From 6cee8e7538d946e1ed8891b35d04282ebf9a7608 Mon Sep 17 00:00:00 2001 From: lghiur Date: Wed, 26 Jun 2024 23:00:03 +0300 Subject: [PATCH 1/4] [TUI-67] Added icons weight regular --- src/common/css/fontawesome/regular.css | 19 ++++++++++++++++++ .../fonts/fontawesome/fa-regular-400.ttf | Bin 0 -> 1141248 bytes .../fonts/fontawesome/fa-regular-400.woff2 | Bin 0 -> 421248 bytes src/components/Card/Readme.md | 10 ++++----- src/components/Icon/Icon.test.js | 4 ++-- src/components/Icon/index.js | 4 ++-- src/components/Message/index.js | 6 +++--- src/components/Modal/index.js | 6 +++--- src/components/Pill/Readme.md | 8 ++++---- src/components/Tooltip/Tooltip.test.js | 2 +- src/components/Tooltip/index.js | 5 ++--- src/form/components/Combobox/index.js | 6 +++--- src/form/components/Combobox2/index.js | 4 ++-- .../components/Dropdown2/DropdownTrigger.js | 4 ++-- .../components/EditableList2/FieldsList.js | 2 +- src/form/components/FileInput/index.js | 2 +- .../Multiselect/js/MultiselectPanel.js | 2 +- src/index.css | 1 + 18 files changed, 52 insertions(+), 33 deletions(-) create mode 100644 src/common/css/fontawesome/regular.css create mode 100644 src/common/fonts/fontawesome/fa-regular-400.ttf create mode 100644 src/common/fonts/fontawesome/fa-regular-400.woff2 diff --git a/src/common/css/fontawesome/regular.css b/src/common/css/fontawesome/regular.css new file mode 100644 index 00000000..c0a7ea55 --- /dev/null +++ b/src/common/css/fontawesome/regular.css @@ -0,0 +1,19 @@ +/*! + * Font Awesome Pro 6.5.2 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license (Commercial License) + * Copyright 2024 Fonticons, Inc. + */ +:root, :host { + --fa-style-family-classic: 'Font Awesome 6 Pro'; + --fa-font-regular: normal 400 1em/1 'Font Awesome 6 Pro'; } + +@font-face { + font-family: 'Font Awesome 6 Pro'; + font-style: normal; + font-weight: 400; + font-display: block; + src: url("../../fonts/fontawesome/fa-regular-400.woff2") format("woff2"), url("../../fonts/fontawesome/fa-regular-400.ttf") format("truetype"); } + +.far, +.fa-regular { + font-weight: 400; } diff --git a/src/common/fonts/fontawesome/fa-regular-400.ttf b/src/common/fonts/fontawesome/fa-regular-400.ttf new file mode 100644 index 0000000000000000000000000000000000000000..dea07d6b9b6ff2037bd65333d2531d8bc4c188b8 GIT binary patch literal 1141248 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%0Al+79`rwq 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%0ASk_fRKc<-V}LJkElIPF!r998XJS4m>V0La@MYx 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

P91;KhZk=axn#ci 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Π=A# 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%0A-n>+j? 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 bz!lkQ+bu~lHcWW`UE$nhmh7MJeCPXrNZC>q literal 0 HcmV?d00001 diff --git a/src/common/fonts/fontawesome/fa-regular-400.woff2 b/src/common/fonts/fontawesome/fa-regular-400.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..2d6e8f927d583bea539c005777ec379306853755 GIT binary patch literal 421248 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

ur;_rMl*R6 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

  • _)VWlT$hGm^O2_J@#lM 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
    xBc7q6qo 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 <> - + Is Active @@ -46,7 +46,7 @@ import Row from '../../layout/Row'; )} > <> - + Is Active @@ -76,7 +76,7 @@ import Row from '../../layout/Row'; )} > <> - + Is Active @@ -103,7 +103,7 @@ import Row from '../../layout/Row'; )} > <> - + Is Active @@ -173,7 +173,7 @@ import Row from '../../layout/Row'; )} > <> - + Is Active diff --git a/src/components/Icon/Icon.test.js b/src/components/Icon/Icon.test.js index c0e2401a..12316666 100644 --- a/src/components/Icon/Icon.test.js +++ b/src/components/Icon/Icon.test.js @@ -2,14 +2,14 @@ import React from 'react'; import Icon from './index'; describe('Icon', () => { - const faFamily = 'fa-light'; + const faFamily = 'fa-regular'; const faFamilySolid = 'fa-solid'; const tykonFamily = 'tykon'; const selectors = { icon: '.tyk-icon', }; - it('renders an icon and the default family is "fa-light"', () => { + it('renders an icon and the default family is "fa-regular"', () => { cy.mount() .get(selectors.icon) .should('exist') diff --git a/src/components/Icon/index.js b/src/components/Icon/index.js index df6046e2..76b5f55a 100644 --- a/src/components/Icon/index.js +++ b/src/components/Icon/index.js @@ -10,7 +10,7 @@ function Icon({ }) { function getCSSClasses() { const fontFamily = family || 'fa'; - const fontWeight = fontFamily === 'fa' ? `fa-${weight || 'light'}` : ''; + const fontWeight = fontFamily === 'fa' ? `fa-${weight || 'regular'}` : ''; return [ 'tyk-icon', @@ -31,7 +31,7 @@ Icon.propTypes = { family: PropTypes.string, // Icon type to use type: PropTypes.string.isRequired, - // Icon weight to use. Only applicable for Font Awesome icons. Default is 'light'. Also supports 'solid' + // Icon weight to use. Only applicable for Font Awesome icons. Default is 'regular'. Also supports 'light' and 'solid' weight: PropTypes.string }; diff --git a/src/components/Message/index.js b/src/components/Message/index.js index 77ac1efe..e8680ab2 100644 --- a/src/components/Message/index.js +++ b/src/components/Message/index.js @@ -21,16 +21,16 @@ function Message({ ].filter(Boolean).join(' '); } - const iconType = theme === 'success' ? 'check' : 'warning'; + const iconType = theme === 'success' ? 'check' : 'exclamation'; return (
    - +
    { children }
    {onClose && ( - + )}
    ); diff --git a/src/components/Modal/index.js b/src/components/Modal/index.js index a2b99e59..52c0de42 100644 --- a/src/components/Modal/index.js +++ b/src/components/Modal/index.js @@ -36,8 +36,8 @@ function Modal({ const themeIcon = { success: 'check', - warning: 'warning', - danger: 'delete', + warning: 'exclamation', + danger: 'exclamation', }[theme]; return ( @@ -54,7 +54,7 @@ function Modal({
    {theme !== 'none' && (
    - +
    )} { children } diff --git a/src/components/Pill/Readme.md b/src/components/Pill/Readme.md index 070d3e56..a6364270 100644 --- a/src/components/Pill/Readme.md +++ b/src/components/Pill/Readme.md @@ -11,7 +11,7 @@ import Button from '../Button'; Pill Two - Pill Three { value.name }
  • @@ -634,7 +634,7 @@ class Combobox extends Component { {filteredValues.length > 0 && ( ) : null diff --git a/src/form/components/Multiselect/js/MultiselectPanel.js b/src/form/components/Multiselect/js/MultiselectPanel.js index 19fff612..c2505985 100644 --- a/src/form/components/Multiselect/js/MultiselectPanel.js +++ b/src/form/components/Multiselect/js/MultiselectPanel.js @@ -87,7 +87,7 @@ function MultiselectPanel({
    + } name="search" onChange={searchOnChange} diff --git a/src/index.css b/src/index.css index 5ac2dd45..6edb18d3 100644 --- a/src/index.css +++ b/src/index.css @@ -3,6 +3,7 @@ @import './common/css/grid.css'; @import './common/css/fonts.css'; @import './common/css/fontawesome/light.css'; +@import './common/css/fontawesome/regular.css'; @import './common/css/fontawesome/solid.css'; @import './common/css/fontawesome/fontawesome.css'; @import './common/css/tykon.css'; From c3d454d0f7749a6c5a766411cdffda0fc32f060f Mon Sep 17 00:00:00 2001 From: lghiur Date: Wed, 26 Jun 2024 23:04:22 +0300 Subject: [PATCH 2/4] wip --- lib/fonts/fontawesome/fa-regular-400.ttf | Bin 0 -> 1141248 bytes lib/fonts/fontawesome/fa-regular-400.woff2 | Bin 0 -> 421248 bytes lib/index.css | 6 ++++++ lib/index.css.map | 2 +- lib/index.js | 2 +- lib/index.js.map | 2 +- lib/tyk-ui.css | 6 ++++++ lib/tyk-ui.css.map | 2 +- lib/tyk-ui.js | 2 +- lib/tyk-ui.js.map | 2 +- package.json | 2 +- 11 files changed, 19 insertions(+), 7 deletions(-) create mode 100644 lib/fonts/fontawesome/fa-regular-400.ttf create mode 100644 lib/fonts/fontawesome/fa-regular-400.woff2 diff --git a/lib/fonts/fontawesome/fa-regular-400.ttf b/lib/fonts/fontawesome/fa-regular-400.ttf new file mode 100644 index 0000000000000000000000000000000000000000..dea07d6b9b6ff2037bd65333d2531d8bc4c188b8 GIT binary patch literal 1141248 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%0Al+79`rwq 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%0ASk_fRKc<-V}LJkElIPF!r998XJS4m>V0La@MYx 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

    P91;KhZk=axn#ci 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Π=A# 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%0A-n>+j? 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 bz!lkQ+bu~lHcWW`UE$nhmh7MJeCPXrNZC>q literal 0 HcmV?d00001 diff --git a/lib/fonts/fontawesome/fa-regular-400.woff2 b/lib/fonts/fontawesome/fa-regular-400.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..2d6e8f927d583bea539c005777ec379306853755 GIT binary patch literal 421248 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

    ur;_rMl*R6 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

  • _)VWlT$hGm^O2_J@#lM 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
    xBc7q6qo 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 1248px) {\n .tyk-col--lg-0 {\n flex-basis: calc(0% - 20px);\n max-inline-size: calc(0% - 20px);\n }\n\n .tyk-col--offset-lg-0 {\n margin-inline-start: 0%;\n }\n\n .tyk-col--lg-1 {\n flex-basis: calc(8.3333333333% - 20px);\n max-inline-size: calc(8.3333333333% - 20px);\n }\n\n .tyk-col--offset-lg-1 {\n margin-inline-start: 8.3333333333%;\n }\n\n .tyk-col--lg-2 {\n flex-basis: calc(16.6666666667% - 20px);\n max-inline-size: calc(16.6666666667% - 20px);\n }\n\n .tyk-col--offset-lg-2 {\n margin-inline-start: 16.6666666667%;\n }\n\n .tyk-col--lg-3 {\n flex-basis: calc(25% - 20px);\n max-inline-size: calc(25% - 20px);\n }\n\n .tyk-col--offset-lg-3 {\n margin-inline-start: 25%;\n }\n\n .tyk-col--lg-4 {\n flex-basis: calc(33.3333333333% - 20px);\n max-inline-size: calc(33.3333333333% - 20px);\n }\n\n .tyk-col--offset-lg-4 {\n margin-inline-start: 33.3333333333%;\n }\n\n .tyk-col--lg-5 {\n flex-basis: calc(41.6666666667% - 20px);\n max-inline-size: calc(41.6666666667% - 20px);\n }\n\n .tyk-col--offset-lg-5 {\n margin-inline-start: 41.6666666667%;\n }\n\n .tyk-col--lg-6 {\n flex-basis: calc(50% - 20px);\n max-inline-size: calc(50% - 20px);\n }\n\n .tyk-col--offset-lg-6 {\n margin-inline-start: 50%;\n }\n\n .tyk-col--lg-7 {\n flex-basis: calc(58.3333333333% - 20px);\n max-inline-size: calc(58.3333333333% - 20px);\n }\n\n .tyk-col--offset-lg-7 {\n margin-inline-start: 58.3333333333%;\n }\n\n .tyk-col--lg-8 {\n flex-basis: calc(66.6666666667% - 20px);\n max-inline-size: calc(66.6666666667% - 20px);\n }\n\n .tyk-col--offset-lg-8 {\n margin-inline-start: 66.6666666667%;\n }\n\n .tyk-col--lg-9 {\n flex-basis: calc(75% - 20px);\n max-inline-size: calc(75% - 20px);\n }\n\n .tyk-col--offset-lg-9 {\n margin-inline-start: 75%;\n }\n\n .tyk-col--lg-10 {\n flex-basis: calc(83.3333333333% - 20px);\n max-inline-size: calc(83.3333333333% - 20px);\n }\n\n .tyk-col--offset-lg-10 {\n margin-inline-start: 83.3333333333%;\n }\n\n .tyk-col--lg-11 {\n flex-basis: calc(91.6666666667% - 20px);\n max-inline-size: calc(91.6666666667% - 20px);\n }\n\n .tyk-col--offset-lg-11 {\n margin-inline-start: 91.6666666667%;\n }\n\n .tyk-col--lg-12 {\n flex-basis: calc(100% - 20px);\n max-inline-size: calc(100% - 20px);\n }\n\n .tyk-col--offset-lg-12 {\n margin-inline-start: 100%;\n }\n}\n\n@media screen and (1024px <= width < 1248px) {\n .tyk-col--md-0 {\n flex-basis: calc(0% - 20px);\n max-inline-size: calc(0% - 20px);\n }\n\n .tyk-col--offset-md-0 {\n margin-inline-start: 0%;\n }\n\n .tyk-col--md-1 {\n flex-basis: calc(8.3333333333% - 20px);\n max-inline-size: calc(8.3333333333% - 20px);\n }\n\n .tyk-col--offset-md-1 {\n margin-inline-start: 8.3333333333%;\n }\n\n .tyk-col--md-2 {\n flex-basis: calc(16.6666666667% - 20px);\n max-inline-size: calc(16.6666666667% - 20px);\n }\n\n .tyk-col--offset-md-2 {\n margin-inline-start: 16.6666666667%;\n }\n\n .tyk-col--md-3 {\n flex-basis: calc(25% - 20px);\n max-inline-size: calc(25% - 20px);\n }\n\n .tyk-col--offset-md-3 {\n margin-inline-start: 25%;\n }\n\n .tyk-col--md-4 {\n flex-basis: calc(33.3333333333% - 20px);\n max-inline-size: calc(33.3333333333% - 20px);\n }\n\n .tyk-col--offset-md-4 {\n margin-inline-start: 33.3333333333%;\n }\n\n .tyk-col--md-5 {\n flex-basis: calc(41.6666666667% - 20px);\n max-inline-size: calc(41.6666666667% - 20px);\n }\n\n .tyk-col--offset-md-5 {\n margin-inline-start: 41.6666666667%;\n }\n\n .tyk-col--md-6 {\n flex-basis: calc(50% - 20px);\n max-inline-size: calc(50% - 20px);\n }\n\n .tyk-col--offset-md-6 {\n margin-inline-start: 50%;\n }\n\n .tyk-col--md-7 {\n flex-basis: calc(58.3333333333% - 20px);\n max-inline-size: calc(58.3333333333% - 20px);\n }\n\n .tyk-col--offset-md-7 {\n margin-inline-start: 58.3333333333%;\n }\n\n .tyk-col--md-8 {\n flex-basis: calc(66.6666666667% - 20px);\n max-inline-size: calc(66.6666666667% - 20px);\n }\n\n .tyk-col--offset-md-8 {\n margin-inline-start: 66.6666666667%;\n }\n\n .tyk-col--md-9 {\n flex-basis: calc(75% - 20px);\n max-inline-size: calc(75% - 20px);\n }\n\n .tyk-col--offset-md-9 {\n margin-inline-start: 75%;\n }\n\n .tyk-col--md-10 {\n flex-basis: calc(83.3333333333% - 20px);\n max-inline-size: calc(83.3333333333% - 20px);\n }\n\n .tyk-col--offset-md-10 {\n margin-inline-start: 83.3333333333%;\n }\n\n .tyk-col--md-11 {\n flex-basis: calc(91.6666666667% - 20px);\n max-inline-size: calc(91.6666666667% - 20px);\n }\n\n .tyk-col--offset-md-11 {\n margin-inline-start: 91.6666666667%;\n }\n\n .tyk-col--md-12 {\n flex-basis: calc(100% - 20px);\n max-inline-size: calc(100% - 20px);\n }\n\n .tyk-col--offset-md-12 {\n margin-inline-start: 100%;\n }\n}\n\n@media screen and (768px < width < 1024px) {\n .tyk-col--sm-0 {\n flex-basis: calc(0% - 20px);\n max-inline-size: calc(0% - 20px);\n }\n\n .tyk-col--offset-sm-0 {\n margin-inline-start: 0%;\n }\n\n .tyk-col--sm-1 {\n flex-basis: calc(8.3333333333% - 20px);\n max-inline-size: calc(8.3333333333% - 20px);\n }\n\n .tyk-col--offset-sm-1 {\n margin-inline-start: 8.3333333333%;\n }\n\n .tyk-col--sm-2 {\n flex-basis: calc(16.6666666667% - 20px);\n max-inline-size: calc(16.6666666667% - 20px);\n }\n\n .tyk-col--offset-sm-2 {\n margin-inline-start: 16.6666666667%;\n }\n\n .tyk-col--sm-3 {\n flex-basis: calc(25% - 20px);\n max-inline-size: calc(25% - 20px);\n }\n\n .tyk-col--offset-sm-3 {\n margin-inline-start: 25%;\n }\n\n .tyk-col--sm-4 {\n flex-basis: calc(33.3333333333% - 20px);\n max-inline-size: calc(33.3333333333% - 20px);\n }\n\n .tyk-col--offset-sm-4 {\n margin-inline-start: 33.3333333333%;\n }\n\n .tyk-col--sm-5 {\n flex-basis: calc(41.6666666667% - 20px);\n max-inline-size: calc(41.6666666667% - 20px);\n }\n\n .tyk-col--offset-sm-5 {\n margin-inline-start: 41.6666666667%;\n }\n\n .tyk-col--sm-6 {\n flex-basis: calc(50% - 20px);\n max-inline-size: calc(50% - 20px);\n }\n\n .tyk-col--offset-sm-6 {\n margin-inline-start: 50%;\n }\n\n .tyk-col--sm-7 {\n flex-basis: calc(58.3333333333% - 20px);\n max-inline-size: calc(58.3333333333% - 20px);\n }\n\n .tyk-col--offset-sm-7 {\n margin-inline-start: 58.3333333333%;\n }\n\n .tyk-col--sm-8 {\n flex-basis: calc(66.6666666667% - 20px);\n max-inline-size: calc(66.6666666667% - 20px);\n }\n\n .tyk-col--offset-sm-8 {\n margin-inline-start: 66.6666666667%;\n }\n\n .tyk-col--sm-9 {\n flex-basis: calc(75% - 20px);\n max-inline-size: calc(75% - 20px);\n }\n\n .tyk-col--offset-sm-9 {\n margin-inline-start: 75%;\n }\n\n .tyk-col--sm-10 {\n flex-basis: calc(83.3333333333% - 20px);\n max-inline-size: calc(83.3333333333% - 20px);\n }\n\n .tyk-col--offset-sm-10 {\n margin-inline-start: 83.3333333333%;\n }\n\n .tyk-col--sm-11 {\n flex-basis: calc(91.6666666667% - 20px);\n max-inline-size: calc(91.6666666667% - 20px);\n }\n\n .tyk-col--offset-sm-11 {\n margin-inline-start: 91.6666666667%;\n }\n\n .tyk-col--sm-12 {\n flex-basis: calc(100% - 20px);\n max-inline-size: calc(100% - 20px);\n }\n\n .tyk-col--offset-sm-12 {\n margin-inline-start: 100%;\n }\n}\n\n@media screen and (width <= 768px) {\n .tyk-col--xs-0 {\n flex-basis: calc(0% - 20px);\n max-inline-size: calc(0% - 20px);\n }\n\n .tyk-col--offset-xs-0 {\n margin-inline-start: 0%;\n }\n\n .tyk-col--xs-1 {\n flex-basis: calc(8.3333333333% - 20px);\n max-inline-size: calc(8.3333333333% - 20px);\n }\n\n .tyk-col--offset-xs-1 {\n margin-inline-start: 8.3333333333%;\n }\n\n .tyk-col--xs-2 {\n flex-basis: calc(16.6666666667% - 20px);\n max-inline-size: calc(16.6666666667% - 20px);\n }\n\n .tyk-col--offset-xs-2 {\n margin-inline-start: 16.6666666667%;\n }\n\n .tyk-col--xs-3 {\n flex-basis: calc(25% - 20px);\n max-inline-size: calc(25% - 20px);\n }\n\n .tyk-col--offset-xs-3 {\n margin-inline-start: 25%;\n }\n\n .tyk-col--xs-4 {\n flex-basis: calc(33.3333333333% - 20px);\n max-inline-size: calc(33.3333333333% - 20px);\n }\n\n .tyk-col--offset-xs-4 {\n margin-inline-start: 33.3333333333%;\n }\n\n .tyk-col--xs-5 {\n flex-basis: calc(41.6666666667% - 20px);\n max-inline-size: calc(41.6666666667% - 20px);\n }\n\n .tyk-col--offset-xs-5 {\n margin-inline-start: 41.6666666667%;\n }\n\n .tyk-col--xs-6 {\n flex-basis: calc(50% - 20px);\n max-inline-size: calc(50% - 20px);\n }\n\n .tyk-col--offset-xs-6 {\n margin-inline-start: 50%;\n }\n\n .tyk-col--xs-7 {\n flex-basis: calc(58.3333333333% - 20px);\n max-inline-size: calc(58.3333333333% - 20px);\n }\n\n .tyk-col--offset-xs-7 {\n margin-inline-start: 58.3333333333%;\n }\n\n .tyk-col--xs-8 {\n flex-basis: calc(66.6666666667% - 20px);\n max-inline-size: calc(66.6666666667% - 20px);\n }\n\n .tyk-col--offset-xs-8 {\n margin-inline-start: 66.6666666667%;\n }\n\n .tyk-col--xs-9 {\n flex-basis: calc(75% - 20px);\n max-inline-size: calc(75% - 20px);\n }\n\n .tyk-col--offset-xs-9 {\n margin-inline-start: 75%;\n }\n\n .tyk-col--xs-10 {\n flex-basis: calc(83.3333333333% - 20px);\n max-inline-size: calc(83.3333333333% - 20px);\n }\n\n .tyk-col--offset-xs-10 {\n margin-inline-start: 83.3333333333%;\n }\n\n .tyk-col--xs-11 {\n flex-basis: calc(91.6666666667% - 20px);\n max-inline-size: calc(91.6666666667% - 20px);\n }\n\n .tyk-col--offset-xs-11 {\n margin-inline-start: 91.6666666667%;\n }\n\n .tyk-col--xs-12 {\n flex-basis: calc(100% - 20px);\n max-inline-size: calc(100% - 20px);\n }\n\n .tyk-col--offset-xs-12 {\n margin-inline-start: 100%;\n }\n}\n","@font-face {\n font-family: Inter-Bold;\n src: url('../fonts/inter/Inter-Bold.woff2') format('woff2'),\n url('../fonts/inter/Inter-Bold.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: Inter-Light;\n src: url('../fonts/inter/Inter-Light.woff2') format('woff2'),\n url('../fonts/inter/Inter-Light.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: Inter-Medium;\n src: url('../fonts/inter/Inter-Medium.woff2') format('woff2'),\n url('../fonts/inter/Inter-Medium.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: Inter-Regular;\n src: url('../fonts/inter/Inter-Regular.woff2') format('woff2'),\n url('../fonts/inter/Inter-Regular.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: Inter-SemiBold;\n src: url('../fonts/inter/Inter-SemiBold.woff2') format('woff2'),\n url('../fonts/inter/Inter-SemiBold.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: OpenSans-Bold;\n src: url('../fonts/OpenSans-Bold.woff2') format('woff2'),\n url('../fonts/OpenSans-Bold.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: OpenSans-SemiBold;\n src: url('../fonts/OpenSans-SemiBold.woff2') format('woff2'),\n url('../fonts/OpenSans-SemiBold.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: OpenSans-Regular;\n src: url('../fonts/OpenSans-Regular.woff2') format('woff2'),\n url('../fonts/OpenSans-Regular.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'smoolthan_bold';\n src: url('../fonts/smoolthan_bold-webfont.woff2') format('woff2'),\n url('../fonts/smoolthan_bold-webfont.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'smoolthan_medium';\n src: url('../fonts/smoolthan_medium-webfont.woff2') format('woff2'),\n url('../fonts/smoolthan_medium-webfont.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'smoolthan_regular';\n src: url('../fonts/smoolthan_regular-webfont.woff2') format('woff2'),\n url('../fonts/smoolthan_regular-webfont.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: tykon;\n src: url('../fonts/tykon.woff2') format('woff2'),\n url('../fonts/tykon.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n","/*!\n * Font Awesome Pro 6.5.2 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license (Commercial License)\n * Copyright 2024 Fonticons, Inc.\n */\n:root, :host {\n --fa-style-family-classic: 'Font Awesome 6 Pro';\n --fa-font-light: normal 300 1em/1 'Font Awesome 6 Pro'; }\n\n@font-face {\n font-family: 'Font Awesome 6 Pro';\n font-style: normal;\n font-weight: 300;\n font-display: block;\n src: url(\"../../fonts/fontawesome/fa-light-300.woff2\") format(\"woff2\"), url(\"../../fonts/fontawesome/fa-light-300.ttf\") format(\"truetype\"); }\n\n.fal,\n.fa-light {\n font-weight: 300; }\n","/*!\n * Font Awesome Pro 6.5.2 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license (Commercial License)\n * Copyright 2024 Fonticons, Inc.\n */\n:root, :host {\n --fa-style-family-classic: 'Font Awesome 6 Pro';\n --fa-font-solid: normal 900 1em/1 'Font Awesome 6 Pro'; }\n\n@font-face {\n font-family: 'Font Awesome 6 Pro';\n font-style: normal;\n font-weight: 900;\n font-display: block;\n src: url(\"../../fonts/fontawesome/fa-solid-900.woff2\") format(\"woff2\"), url(\"../../fonts/fontawesome/fa-solid-900.ttf\") format(\"truetype\"); }\n\n.fas,\n.fa-solid {\n font-weight: 900; }\n","/*!\n * Font Awesome Pro 6.5.2 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license (Commercial License)\n * Copyright 2024 Fonticons, Inc.\n */\n.fa {\n font-family: var(--fa-style-family, \"Font Awesome 6 Pro\");\n font-weight: var(--fa-style, 900); }\n\n.fa,\n.fa-classic,\n.fa-sharp,\n.fas,\n.fa-solid,\n.far,\n.fa-regular,\n.fasr,\n.fal,\n.fa-light,\n.fasl,\n.fat,\n.fa-thin,\n.fast,\n.fad,\n.fa-duotone,\n.fass,\n.fa-sharp-solid,\n.fab,\n.fa-brands {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n display: var(--fa-display, inline-block);\n font-style: normal;\n font-variant: normal;\n line-height: 1;\n text-rendering: auto; }\n\n.fas,\n.fa-classic,\n.fa-solid,\n.far,\n.fa-regular,\n.fal,\n.fa-light,\n.fat,\n.fa-thin {\n font-family: 'Font Awesome 6 Pro'; }\n\n.fab,\n.fa-brands {\n font-family: 'Font Awesome 6 Brands'; }\n\n.fad,\n.fa-classic.fa-duotone,\n.fa-duotone {\n font-family: 'Font Awesome 6 Duotone'; }\n\n.fass,\n.fasr,\n.fasl,\n.fast,\n.fa-sharp {\n font-family: 'Font Awesome 6 Sharp'; }\n\n.fass,\n.fa-sharp {\n font-weight: 900; }\n\n.fa-1x {\n font-size: 1em; }\n\n.fa-2x {\n font-size: 2em; }\n\n.fa-3x {\n font-size: 3em; }\n\n.fa-4x {\n font-size: 4em; }\n\n.fa-5x {\n font-size: 5em; }\n\n.fa-6x {\n font-size: 6em; }\n\n.fa-7x {\n font-size: 7em; }\n\n.fa-8x {\n font-size: 8em; }\n\n.fa-9x {\n font-size: 9em; }\n\n.fa-10x {\n font-size: 10em; }\n\n.fa-2xs {\n font-size: 0.625em;\n line-height: 0.1em;\n vertical-align: 0.225em; }\n\n.fa-xs {\n font-size: 0.75em;\n line-height: 0.08333em;\n vertical-align: 0.125em; }\n\n.fa-sm {\n font-size: 0.875em;\n line-height: 0.07143em;\n vertical-align: 0.05357em; }\n\n.fa-lg {\n font-size: 1.25em;\n line-height: 0.05em;\n vertical-align: -0.075em; }\n\n.fa-xl {\n font-size: 1.5em;\n line-height: 0.04167em;\n vertical-align: -0.125em; }\n\n.fa-2xl {\n font-size: 2em;\n line-height: 0.03125em;\n vertical-align: -0.1875em; }\n\n.fa-fw {\n text-align: center;\n width: 1.25em; }\n\n.fa-ul {\n list-style-type: none;\n margin-left: var(--fa-li-margin, 2.5em);\n padding-left: 0; }\n .fa-ul > li {\n position: relative; }\n\n.fa-li {\n left: calc(var(--fa-li-width, 2em) * -1);\n position: absolute;\n text-align: center;\n width: var(--fa-li-width, 2em);\n line-height: inherit; }\n\n.fa-border {\n border-color: var(--fa-border-color, #eee);\n border-radius: var(--fa-border-radius, 0.1em);\n border-style: var(--fa-border-style, solid);\n border-width: var(--fa-border-width, 0.08em);\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); }\n\n.fa-pull-left {\n float: left;\n margin-right: var(--fa-pull-margin, 0.3em); }\n\n.fa-pull-right {\n float: right;\n margin-left: var(--fa-pull-margin, 0.3em); }\n\n.fa-beat {\n -webkit-animation-name: fa-beat;\n animation-name: fa-beat;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out); }\n\n.fa-bounce {\n -webkit-animation-name: fa-bounce;\n animation-name: fa-bounce;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); }\n\n.fa-fade {\n -webkit-animation-name: fa-fade;\n animation-name: fa-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); }\n\n.fa-beat-fade {\n -webkit-animation-name: fa-beat-fade;\n animation-name: fa-beat-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); }\n\n.fa-flip {\n -webkit-animation-name: fa-flip;\n animation-name: fa-flip;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out); }\n\n.fa-shake {\n -webkit-animation-name: fa-shake;\n animation-name: fa-shake;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear); }\n\n.fa-spin {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 2s);\n animation-duration: var(--fa-animation-duration, 2s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear); }\n\n.fa-spin-reverse {\n --fa-animation-direction: reverse; }\n\n.fa-pulse,\n.fa-spin-pulse {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, steps(8));\n animation-timing-function: var(--fa-animation-timing, steps(8)); }\n\n@media (prefers-reduced-motion: reduce) {\n .fa-beat,\n .fa-bounce,\n .fa-fade,\n .fa-beat-fade,\n .fa-flip,\n .fa-pulse,\n .fa-shake,\n .fa-spin,\n .fa-spin-pulse {\n -webkit-animation-delay: -1ms;\n animation-delay: -1ms;\n -webkit-animation-duration: 1ms;\n animation-duration: 1ms;\n -webkit-animation-iteration-count: 1;\n animation-iteration-count: 1;\n -webkit-transition-delay: 0s;\n transition-delay: 0s;\n -webkit-transition-duration: 0s;\n transition-duration: 0s; } }\n\n@-webkit-keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1); }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25)); } }\n\n@keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1); }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25)); } }\n\n@-webkit-keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); } }\n\n@keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); } }\n\n@-webkit-keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4); } }\n\n@keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4); } }\n\n@-webkit-keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1); }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125)); } }\n\n@keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1); }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125)); } }\n\n@-webkit-keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } }\n\n@keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } }\n\n@-webkit-keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg); }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg); }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg); }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg); }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg); }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg); }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg); }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg); }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); } }\n\n@keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg); }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg); }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg); }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg); }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg); }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg); }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg); }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg); }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); } }\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n.fa-rotate-90 {\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg); }\n\n.fa-rotate-180 {\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg); }\n\n.fa-rotate-270 {\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg); }\n\n.fa-flip-horizontal {\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1); }\n\n.fa-flip-vertical {\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1); }\n\n.fa-flip-both,\n.fa-flip-horizontal.fa-flip-vertical {\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1); }\n\n.fa-rotate-by {\n -webkit-transform: rotate(var(--fa-rotate-angle, 0));\n transform: rotate(var(--fa-rotate-angle, 0)); }\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n line-height: 2em;\n position: relative;\n vertical-align: middle;\n width: 2.5em; }\n\n.fa-stack-1x,\n.fa-stack-2x {\n left: 0;\n position: absolute;\n text-align: center;\n width: 100%;\n z-index: var(--fa-stack-z-index, auto); }\n\n.fa-stack-1x {\n line-height: inherit; }\n\n.fa-stack-2x {\n font-size: 2em; }\n\n.fa-inverse {\n color: var(--fa-inverse, #fff); }\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\nreaders do not read off random characters that represent icons */\n\n.fa-0::before {\n content: \"\\30\"; }\n\n.fa-1::before {\n content: \"\\31\"; }\n\n.fa-2::before {\n content: \"\\32\"; }\n\n.fa-3::before {\n content: \"\\33\"; }\n\n.fa-4::before {\n content: \"\\34\"; }\n\n.fa-5::before {\n content: \"\\35\"; }\n\n.fa-6::before {\n content: \"\\36\"; }\n\n.fa-7::before {\n content: \"\\37\"; }\n\n.fa-8::before {\n content: \"\\38\"; }\n\n.fa-9::before {\n content: \"\\39\"; }\n\n.fa-fill-drip::before {\n content: \"\\f576\"; }\n\n.fa-arrows-to-circle::before {\n content: \"\\e4bd\"; }\n\n.fa-circle-chevron-right::before {\n content: \"\\f138\"; }\n\n.fa-chevron-circle-right::before {\n content: \"\\f138\"; }\n\n.fa-wagon-covered::before {\n content: \"\\f8ee\"; }\n\n.fa-line-height::before {\n content: \"\\f871\"; }\n\n.fa-bagel::before {\n content: \"\\e3d7\"; }\n\n.fa-transporter-7::before {\n content: \"\\e2a8\"; }\n\n.fa-at::before {\n content: \"\\40\"; }\n\n.fa-rectangles-mixed::before {\n content: \"\\e323\"; }\n\n.fa-phone-arrow-up-right::before {\n content: \"\\e224\"; }\n\n.fa-phone-arrow-up::before {\n content: \"\\e224\"; }\n\n.fa-phone-outgoing::before {\n content: \"\\e224\"; }\n\n.fa-trash-can::before {\n content: \"\\f2ed\"; }\n\n.fa-trash-alt::before {\n content: \"\\f2ed\"; }\n\n.fa-circle-l::before {\n content: \"\\e114\"; }\n\n.fa-head-side-goggles::before {\n content: \"\\f6ea\"; }\n\n.fa-head-vr::before {\n content: \"\\f6ea\"; }\n\n.fa-text-height::before {\n content: \"\\f034\"; }\n\n.fa-user-xmark::before {\n content: \"\\f235\"; }\n\n.fa-user-times::before {\n content: \"\\f235\"; }\n\n.fa-face-hand-yawn::before {\n content: \"\\e379\"; }\n\n.fa-gauge-simple-min::before {\n content: \"\\f62d\"; }\n\n.fa-tachometer-slowest::before {\n content: \"\\f62d\"; }\n\n.fa-stethoscope::before {\n content: \"\\f0f1\"; }\n\n.fa-coffin::before {\n content: \"\\f6c6\"; }\n\n.fa-message::before {\n content: \"\\f27a\"; }\n\n.fa-comment-alt::before {\n content: \"\\f27a\"; }\n\n.fa-salad::before {\n content: \"\\f81e\"; }\n\n.fa-bowl-salad::before {\n content: \"\\f81e\"; }\n\n.fa-info::before {\n content: \"\\f129\"; }\n\n.fa-robot-astromech::before {\n content: \"\\e2d2\"; }\n\n.fa-ring-diamond::before {\n content: \"\\e5ab\"; }\n\n.fa-fondue-pot::before {\n content: \"\\e40d\"; }\n\n.fa-theta::before {\n content: \"\\f69e\"; }\n\n.fa-face-hand-peeking::before {\n content: \"\\e481\"; }\n\n.fa-square-user::before {\n content: \"\\e283\"; }\n\n.fa-down-left-and-up-right-to-center::before {\n content: \"\\f422\"; }\n\n.fa-compress-alt::before {\n content: \"\\f422\"; }\n\n.fa-explosion::before {\n content: \"\\e4e9\"; }\n\n.fa-file-lines::before {\n content: \"\\f15c\"; }\n\n.fa-file-alt::before {\n content: \"\\f15c\"; }\n\n.fa-file-text::before {\n content: \"\\f15c\"; }\n\n.fa-wave-square::before {\n content: \"\\f83e\"; }\n\n.fa-ring::before {\n content: \"\\f70b\"; }\n\n.fa-building-un::before {\n content: \"\\e4d9\"; }\n\n.fa-dice-three::before {\n content: \"\\f527\"; }\n\n.fa-tire-pressure-warning::before {\n content: \"\\f633\"; }\n\n.fa-wifi-fair::before {\n content: \"\\f6ab\"; }\n\n.fa-wifi-2::before {\n content: \"\\f6ab\"; }\n\n.fa-calendar-days::before {\n content: \"\\f073\"; }\n\n.fa-calendar-alt::before {\n content: \"\\f073\"; }\n\n.fa-mp3-player::before {\n content: \"\\f8ce\"; }\n\n.fa-anchor-circle-check::before {\n content: \"\\e4aa\"; }\n\n.fa-tally-4::before {\n content: \"\\e297\"; }\n\n.fa-rectangle-history::before {\n content: \"\\e4a2\"; }\n\n.fa-building-circle-arrow-right::before {\n content: \"\\e4d1\"; }\n\n.fa-volleyball::before {\n content: \"\\f45f\"; }\n\n.fa-volleyball-ball::before {\n content: \"\\f45f\"; }\n\n.fa-sun-haze::before {\n content: \"\\f765\"; }\n\n.fa-text-size::before {\n content: \"\\f894\"; }\n\n.fa-ufo::before {\n content: \"\\e047\"; }\n\n.fa-fork::before {\n content: \"\\f2e3\"; }\n\n.fa-utensil-fork::before {\n content: \"\\f2e3\"; }\n\n.fa-arrows-up-to-line::before {\n content: \"\\e4c2\"; }\n\n.fa-mobile-signal::before {\n content: \"\\e1ef\"; }\n\n.fa-barcode-scan::before {\n content: \"\\f465\"; }\n\n.fa-sort-down::before {\n content: \"\\f0dd\"; }\n\n.fa-sort-desc::before {\n content: \"\\f0dd\"; }\n\n.fa-folder-arrow-down::before {\n content: \"\\e053\"; }\n\n.fa-folder-download::before {\n content: \"\\e053\"; }\n\n.fa-circle-minus::before {\n content: \"\\f056\"; }\n\n.fa-minus-circle::before {\n content: \"\\f056\"; }\n\n.fa-face-icicles::before {\n content: \"\\e37c\"; }\n\n.fa-shovel::before {\n content: \"\\f713\"; }\n\n.fa-door-open::before {\n content: \"\\f52b\"; }\n\n.fa-films::before {\n content: \"\\e17a\"; }\n\n.fa-right-from-bracket::before {\n content: \"\\f2f5\"; }\n\n.fa-sign-out-alt::before {\n content: \"\\f2f5\"; }\n\n.fa-face-glasses::before {\n content: \"\\e377\"; }\n\n.fa-nfc::before {\n content: \"\\e1f7\"; }\n\n.fa-atom::before {\n content: \"\\f5d2\"; }\n\n.fa-soap::before {\n content: \"\\e06e\"; }\n\n.fa-icons::before {\n content: \"\\f86d\"; }\n\n.fa-heart-music-camera-bolt::before {\n content: \"\\f86d\"; }\n\n.fa-microphone-lines-slash::before {\n content: \"\\f539\"; }\n\n.fa-microphone-alt-slash::before {\n content: \"\\f539\"; }\n\n.fa-closed-captioning-slash::before {\n content: \"\\e135\"; }\n\n.fa-calculator-simple::before {\n content: \"\\f64c\"; }\n\n.fa-calculator-alt::before {\n content: \"\\f64c\"; }\n\n.fa-bridge-circle-check::before {\n content: \"\\e4c9\"; }\n\n.fa-sliders-up::before {\n content: \"\\f3f1\"; }\n\n.fa-sliders-v::before {\n content: \"\\f3f1\"; }\n\n.fa-location-minus::before {\n content: \"\\f609\"; }\n\n.fa-map-marker-minus::before {\n content: \"\\f609\"; }\n\n.fa-pump-medical::before {\n content: \"\\e06a\"; }\n\n.fa-fingerprint::before {\n content: \"\\f577\"; }\n\n.fa-ski-boot::before {\n content: \"\\e3cc\"; }\n\n.fa-standard-definition::before {\n content: \"\\e28a\"; }\n\n.fa-rectangle-sd::before {\n content: \"\\e28a\"; }\n\n.fa-h1::before {\n content: \"\\f313\"; }\n\n.fa-hand-point-right::before {\n content: \"\\f0a4\"; }\n\n.fa-magnifying-glass-location::before {\n content: \"\\f689\"; }\n\n.fa-search-location::before {\n content: \"\\f689\"; }\n\n.fa-message-bot::before {\n content: \"\\e3b8\"; }\n\n.fa-forward-step::before {\n content: \"\\f051\"; }\n\n.fa-step-forward::before {\n content: \"\\f051\"; }\n\n.fa-face-smile-beam::before {\n content: \"\\f5b8\"; }\n\n.fa-smile-beam::before {\n content: \"\\f5b8\"; }\n\n.fa-light-ceiling::before {\n content: \"\\e016\"; }\n\n.fa-message-exclamation::before {\n content: \"\\f4a5\"; }\n\n.fa-comment-alt-exclamation::before {\n content: \"\\f4a5\"; }\n\n.fa-bowl-scoop::before {\n content: \"\\e3de\"; }\n\n.fa-bowl-shaved-ice::before {\n content: \"\\e3de\"; }\n\n.fa-square-x::before {\n content: \"\\e286\"; }\n\n.fa-building-memo::before {\n content: \"\\e61e\"; }\n\n.fa-utility-pole-double::before {\n content: \"\\e2c4\"; }\n\n.fa-flag-checkered::before {\n content: \"\\f11e\"; }\n\n.fa-chevrons-up::before {\n content: \"\\f325\"; }\n\n.fa-chevron-double-up::before {\n content: \"\\f325\"; }\n\n.fa-football::before {\n content: \"\\f44e\"; }\n\n.fa-football-ball::before {\n content: \"\\f44e\"; }\n\n.fa-user-vneck::before {\n content: \"\\e461\"; }\n\n.fa-school-circle-exclamation::before {\n content: \"\\e56c\"; }\n\n.fa-crop::before {\n content: \"\\f125\"; }\n\n.fa-angles-down::before {\n content: \"\\f103\"; }\n\n.fa-angle-double-down::before {\n content: \"\\f103\"; }\n\n.fa-users-rectangle::before {\n content: \"\\e594\"; }\n\n.fa-people-roof::before {\n content: \"\\e537\"; }\n\n.fa-square-arrow-right::before {\n content: \"\\f33b\"; }\n\n.fa-arrow-square-right::before {\n content: \"\\f33b\"; }\n\n.fa-location-plus::before {\n content: \"\\f60a\"; }\n\n.fa-map-marker-plus::before {\n content: \"\\f60a\"; }\n\n.fa-lightbulb-exclamation-on::before {\n content: \"\\e1ca\"; }\n\n.fa-people-line::before {\n content: \"\\e534\"; }\n\n.fa-beer-mug-empty::before {\n content: \"\\f0fc\"; }\n\n.fa-beer::before {\n content: \"\\f0fc\"; }\n\n.fa-crate-empty::before {\n content: \"\\e151\"; }\n\n.fa-diagram-predecessor::before {\n content: \"\\e477\"; }\n\n.fa-transporter::before {\n content: \"\\e042\"; }\n\n.fa-calendar-circle-user::before {\n content: \"\\e471\"; }\n\n.fa-arrow-up-long::before {\n content: \"\\f176\"; }\n\n.fa-long-arrow-up::before {\n content: \"\\f176\"; }\n\n.fa-person-carry-box::before {\n content: \"\\f4cf\"; }\n\n.fa-person-carry::before {\n content: \"\\f4cf\"; }\n\n.fa-fire-flame-simple::before {\n content: \"\\f46a\"; }\n\n.fa-burn::before {\n content: \"\\f46a\"; }\n\n.fa-person::before {\n content: \"\\f183\"; }\n\n.fa-male::before {\n content: \"\\f183\"; }\n\n.fa-laptop::before {\n content: \"\\f109\"; }\n\n.fa-file-csv::before {\n content: \"\\f6dd\"; }\n\n.fa-menorah::before {\n content: \"\\f676\"; }\n\n.fa-union::before {\n content: \"\\f6a2\"; }\n\n.fa-chevrons-left::before {\n content: \"\\f323\"; }\n\n.fa-chevron-double-left::before {\n content: \"\\f323\"; }\n\n.fa-circle-heart::before {\n content: \"\\f4c7\"; }\n\n.fa-heart-circle::before {\n content: \"\\f4c7\"; }\n\n.fa-truck-plane::before {\n content: \"\\e58f\"; }\n\n.fa-record-vinyl::before {\n content: \"\\f8d9\"; }\n\n.fa-bring-forward::before {\n content: \"\\f856\"; }\n\n.fa-square-p::before {\n content: \"\\e279\"; }\n\n.fa-face-grin-stars::before {\n content: \"\\f587\"; }\n\n.fa-grin-stars::before {\n content: \"\\f587\"; }\n\n.fa-sigma::before {\n content: \"\\f68b\"; }\n\n.fa-camera-movie::before {\n content: \"\\f8a9\"; }\n\n.fa-bong::before {\n content: \"\\f55c\"; }\n\n.fa-clarinet::before {\n content: \"\\f8ad\"; }\n\n.fa-truck-flatbed::before {\n content: \"\\e2b6\"; }\n\n.fa-spaghetti-monster-flying::before {\n content: \"\\f67b\"; }\n\n.fa-pastafarianism::before {\n content: \"\\f67b\"; }\n\n.fa-arrow-down-up-across-line::before {\n content: \"\\e4af\"; }\n\n.fa-arrows-rotate-reverse::before {\n content: \"\\e630\"; }\n\n.fa-leaf-heart::before {\n content: \"\\f4cb\"; }\n\n.fa-house-building::before {\n content: \"\\e1b1\"; }\n\n.fa-cheese-swiss::before {\n content: \"\\f7f0\"; }\n\n.fa-spoon::before {\n content: \"\\f2e5\"; }\n\n.fa-utensil-spoon::before {\n content: \"\\f2e5\"; }\n\n.fa-jar-wheat::before {\n content: \"\\e517\"; }\n\n.fa-envelopes-bulk::before {\n content: \"\\f674\"; }\n\n.fa-mail-bulk::before {\n content: \"\\f674\"; }\n\n.fa-file-circle-exclamation::before {\n content: \"\\e4eb\"; }\n\n.fa-bow-arrow::before {\n content: \"\\f6b9\"; }\n\n.fa-cart-xmark::before {\n content: \"\\e0dd\"; }\n\n.fa-hexagon-xmark::before {\n content: \"\\f2ee\"; }\n\n.fa-times-hexagon::before {\n content: \"\\f2ee\"; }\n\n.fa-xmark-hexagon::before {\n content: \"\\f2ee\"; }\n\n.fa-circle-h::before {\n content: \"\\f47e\"; }\n\n.fa-hospital-symbol::before {\n content: \"\\f47e\"; }\n\n.fa-merge::before {\n content: \"\\e526\"; }\n\n.fa-pager::before {\n content: \"\\f815\"; }\n\n.fa-cart-minus::before {\n content: \"\\e0db\"; }\n\n.fa-address-book::before {\n content: \"\\f2b9\"; }\n\n.fa-contact-book::before {\n content: \"\\f2b9\"; }\n\n.fa-pan-frying::before {\n content: \"\\e42c\"; }\n\n.fa-grid::before {\n content: \"\\e195\"; }\n\n.fa-grid-3::before {\n content: \"\\e195\"; }\n\n.fa-football-helmet::before {\n content: \"\\f44f\"; }\n\n.fa-hand-love::before {\n content: \"\\e1a5\"; }\n\n.fa-trees::before {\n content: \"\\f724\"; }\n\n.fa-strikethrough::before {\n content: \"\\f0cc\"; }\n\n.fa-page::before {\n content: \"\\e428\"; }\n\n.fa-k::before {\n content: \"\\4b\"; }\n\n.fa-diagram-previous::before {\n content: \"\\e478\"; }\n\n.fa-gauge-min::before {\n content: \"\\f628\"; }\n\n.fa-tachometer-alt-slowest::before {\n content: \"\\f628\"; }\n\n.fa-folder-grid::before {\n content: \"\\e188\"; }\n\n.fa-eggplant::before {\n content: \"\\e16c\"; }\n\n.fa-excavator::before {\n content: \"\\e656\"; }\n\n.fa-ram::before {\n content: \"\\f70a\"; }\n\n.fa-landmark-flag::before {\n content: \"\\e51c\"; }\n\n.fa-lips::before {\n content: \"\\f600\"; }\n\n.fa-pencil::before {\n content: \"\\f303\"; }\n\n.fa-pencil-alt::before {\n content: \"\\f303\"; }\n\n.fa-backward::before {\n content: \"\\f04a\"; }\n\n.fa-caret-right::before {\n content: \"\\f0da\"; }\n\n.fa-comments::before {\n content: \"\\f086\"; }\n\n.fa-paste::before {\n content: \"\\f0ea\"; }\n\n.fa-file-clipboard::before {\n content: \"\\f0ea\"; }\n\n.fa-desktop-arrow-down::before {\n content: \"\\e155\"; }\n\n.fa-code-pull-request::before {\n content: \"\\e13c\"; }\n\n.fa-pumpkin::before {\n content: \"\\f707\"; }\n\n.fa-clipboard-list::before {\n content: \"\\f46d\"; }\n\n.fa-pen-field::before {\n content: \"\\e211\"; }\n\n.fa-blueberries::before {\n content: \"\\e2e8\"; }\n\n.fa-truck-ramp-box::before {\n content: \"\\f4de\"; }\n\n.fa-truck-loading::before {\n content: \"\\f4de\"; }\n\n.fa-note::before {\n content: \"\\e1ff\"; }\n\n.fa-arrow-down-to-square::before {\n content: \"\\e096\"; }\n\n.fa-user-check::before {\n content: \"\\f4fc\"; }\n\n.fa-cloud-xmark::before {\n content: \"\\e35f\"; }\n\n.fa-vial-virus::before {\n content: \"\\e597\"; }\n\n.fa-book-blank::before {\n content: \"\\f5d9\"; }\n\n.fa-book-alt::before {\n content: \"\\f5d9\"; }\n\n.fa-golf-flag-hole::before {\n content: \"\\e3ac\"; }\n\n.fa-message-arrow-down::before {\n content: \"\\e1db\"; }\n\n.fa-comment-alt-arrow-down::before {\n content: \"\\e1db\"; }\n\n.fa-face-unamused::before {\n content: \"\\e39f\"; }\n\n.fa-sheet-plastic::before {\n content: \"\\e571\"; }\n\n.fa-circle-9::before {\n content: \"\\e0f6\"; }\n\n.fa-blog::before {\n content: \"\\f781\"; }\n\n.fa-user-ninja::before {\n content: \"\\f504\"; }\n\n.fa-pencil-slash::before {\n content: \"\\e215\"; }\n\n.fa-bowling-pins::before {\n content: \"\\f437\"; }\n\n.fa-person-arrow-up-from-line::before {\n content: \"\\e539\"; }\n\n.fa-down-right::before {\n content: \"\\e16b\"; }\n\n.fa-scroll-torah::before {\n content: \"\\f6a0\"; }\n\n.fa-torah::before {\n content: \"\\f6a0\"; }\n\n.fa-webhook::before {\n content: \"\\e5d5\"; }\n\n.fa-blinds-open::before {\n content: \"\\f8fc\"; }\n\n.fa-fence::before {\n content: \"\\e303\"; }\n\n.fa-up::before {\n content: \"\\f357\"; }\n\n.fa-arrow-alt-up::before {\n content: \"\\f357\"; }\n\n.fa-broom-ball::before {\n content: \"\\f458\"; }\n\n.fa-quidditch::before {\n content: \"\\f458\"; }\n\n.fa-quidditch-broom-ball::before {\n content: \"\\f458\"; }\n\n.fa-drumstick::before {\n content: \"\\f6d6\"; }\n\n.fa-square-v::before {\n content: \"\\e284\"; }\n\n.fa-face-awesome::before {\n content: \"\\e409\"; }\n\n.fa-gave-dandy::before {\n content: \"\\e409\"; }\n\n.fa-dial-off::before {\n content: \"\\e162\"; }\n\n.fa-toggle-off::before {\n content: \"\\f204\"; }\n\n.fa-face-smile-horns::before {\n content: \"\\e391\"; }\n\n.fa-box-archive::before {\n content: \"\\f187\"; }\n\n.fa-archive::before {\n content: \"\\f187\"; }\n\n.fa-grapes::before {\n content: \"\\e306\"; }\n\n.fa-person-drowning::before {\n content: \"\\e545\"; }\n\n.fa-dial-max::before {\n content: \"\\e15e\"; }\n\n.fa-circle-m::before {\n content: \"\\e115\"; }\n\n.fa-calendar-image::before {\n content: \"\\e0d4\"; }\n\n.fa-circle-caret-down::before {\n content: \"\\f32d\"; }\n\n.fa-caret-circle-down::before {\n content: \"\\f32d\"; }\n\n.fa-arrow-down-9-1::before {\n content: \"\\f886\"; }\n\n.fa-sort-numeric-desc::before {\n content: \"\\f886\"; }\n\n.fa-sort-numeric-down-alt::before {\n content: \"\\f886\"; }\n\n.fa-face-grin-tongue-squint::before {\n content: \"\\f58a\"; }\n\n.fa-grin-tongue-squint::before {\n content: \"\\f58a\"; }\n\n.fa-shish-kebab::before {\n content: \"\\f821\"; }\n\n.fa-spray-can::before {\n content: \"\\f5bd\"; }\n\n.fa-alarm-snooze::before {\n content: \"\\f845\"; }\n\n.fa-scarecrow::before {\n content: \"\\f70d\"; }\n\n.fa-truck-monster::before {\n content: \"\\f63b\"; }\n\n.fa-gift-card::before {\n content: \"\\f663\"; }\n\n.fa-w::before {\n content: \"\\57\"; }\n\n.fa-code-pull-request-draft::before {\n content: \"\\e3fa\"; }\n\n.fa-square-b::before {\n content: \"\\e264\"; }\n\n.fa-elephant::before {\n content: \"\\f6da\"; }\n\n.fa-earth-africa::before {\n content: \"\\f57c\"; }\n\n.fa-globe-africa::before {\n content: \"\\f57c\"; }\n\n.fa-rainbow::before {\n content: \"\\f75b\"; }\n\n.fa-circle-notch::before {\n content: \"\\f1ce\"; }\n\n.fa-tablet-screen-button::before {\n content: \"\\f3fa\"; }\n\n.fa-tablet-alt::before {\n content: \"\\f3fa\"; }\n\n.fa-paw::before {\n content: \"\\f1b0\"; }\n\n.fa-message-question::before {\n content: \"\\e1e3\"; }\n\n.fa-cloud::before {\n content: \"\\f0c2\"; }\n\n.fa-trowel-bricks::before {\n content: \"\\e58a\"; }\n\n.fa-square-3::before {\n content: \"\\e258\"; }\n\n.fa-face-flushed::before {\n content: \"\\f579\"; }\n\n.fa-flushed::before {\n content: \"\\f579\"; }\n\n.fa-hospital-user::before {\n content: \"\\f80d\"; }\n\n.fa-microwave::before {\n content: \"\\e01b\"; }\n\n.fa-chf-sign::before {\n content: \"\\e602\"; }\n\n.fa-tent-arrow-left-right::before {\n content: \"\\e57f\"; }\n\n.fa-cart-circle-arrow-up::before {\n content: \"\\e3f0\"; }\n\n.fa-trash-clock::before {\n content: \"\\e2b0\"; }\n\n.fa-reflect-both::before {\n content: \"\\e66f\"; }\n\n.fa-gavel::before {\n content: \"\\f0e3\"; }\n\n.fa-legal::before {\n content: \"\\f0e3\"; }\n\n.fa-sprinkler-ceiling::before {\n content: \"\\e44c\"; }\n\n.fa-browsers::before {\n content: \"\\e0cb\"; }\n\n.fa-trillium::before {\n content: \"\\e588\"; }\n\n.fa-music-slash::before {\n content: \"\\f8d1\"; }\n\n.fa-truck-ramp::before {\n content: \"\\f4e0\"; }\n\n.fa-binoculars::before {\n content: \"\\f1e5\"; }\n\n.fa-microphone-slash::before {\n content: \"\\f131\"; }\n\n.fa-box-tissue::before {\n content: \"\\e05b\"; }\n\n.fa-circle-c::before {\n content: \"\\e101\"; }\n\n.fa-star-christmas::before {\n content: \"\\f7d4\"; }\n\n.fa-chart-bullet::before {\n content: \"\\e0e1\"; }\n\n.fa-motorcycle::before {\n content: \"\\f21c\"; }\n\n.fa-tree-christmas::before {\n content: \"\\f7db\"; }\n\n.fa-tire-flat::before {\n content: \"\\f632\"; }\n\n.fa-sunglasses::before {\n content: \"\\f892\"; }\n\n.fa-badge::before {\n content: \"\\f335\"; }\n\n.fa-message-pen::before {\n content: \"\\f4a4\"; }\n\n.fa-comment-alt-edit::before {\n content: \"\\f4a4\"; }\n\n.fa-message-edit::before {\n content: \"\\f4a4\"; }\n\n.fa-bell-concierge::before {\n content: \"\\f562\"; }\n\n.fa-concierge-bell::before {\n content: \"\\f562\"; }\n\n.fa-pen-ruler::before {\n content: \"\\f5ae\"; }\n\n.fa-pencil-ruler::before {\n content: \"\\f5ae\"; }\n\n.fa-file-mp3::before {\n content: \"\\e648\"; }\n\n.fa-arrow-progress::before {\n content: \"\\e5df\"; }\n\n.fa-chess-rook-piece::before {\n content: \"\\f448\"; }\n\n.fa-chess-rook-alt::before {\n content: \"\\f448\"; }\n\n.fa-square-root::before {\n content: \"\\f697\"; }\n\n.fa-album-collection-circle-plus::before {\n content: \"\\e48e\"; }\n\n.fa-people-arrows::before {\n content: \"\\e068\"; }\n\n.fa-people-arrows-left-right::before {\n content: \"\\e068\"; }\n\n.fa-sign-post::before {\n content: \"\\e624\"; }\n\n.fa-face-angry-horns::before {\n content: \"\\e368\"; }\n\n.fa-mars-and-venus-burst::before {\n content: \"\\e523\"; }\n\n.fa-tombstone::before {\n content: \"\\f720\"; }\n\n.fa-square-caret-right::before {\n content: \"\\f152\"; }\n\n.fa-caret-square-right::before {\n content: \"\\f152\"; }\n\n.fa-scissors::before {\n content: \"\\f0c4\"; }\n\n.fa-cut::before {\n content: \"\\f0c4\"; }\n\n.fa-list-music::before {\n content: \"\\f8c9\"; }\n\n.fa-sun-plant-wilt::before {\n content: \"\\e57a\"; }\n\n.fa-toilets-portable::before {\n content: \"\\e584\"; }\n\n.fa-hockey-puck::before {\n content: \"\\f453\"; }\n\n.fa-mustache::before {\n content: \"\\e5bc\"; }\n\n.fa-hyphen::before {\n content: \"\\2d\"; }\n\n.fa-table::before {\n content: \"\\f0ce\"; }\n\n.fa-user-chef::before {\n content: \"\\e3d2\"; }\n\n.fa-message-image::before {\n content: \"\\e1e0\"; }\n\n.fa-comment-alt-image::before {\n content: \"\\e1e0\"; }\n\n.fa-users-medical::before {\n content: \"\\f830\"; }\n\n.fa-sensor-triangle-exclamation::before {\n content: \"\\e029\"; }\n\n.fa-sensor-alert::before {\n content: \"\\e029\"; }\n\n.fa-magnifying-glass-arrow-right::before {\n content: \"\\e521\"; }\n\n.fa-tachograph-digital::before {\n content: \"\\f566\"; }\n\n.fa-digital-tachograph::before {\n content: \"\\f566\"; }\n\n.fa-face-mask::before {\n content: \"\\e37f\"; }\n\n.fa-pickleball::before {\n content: \"\\e435\"; }\n\n.fa-star-sharp-half::before {\n content: \"\\e28c\"; }\n\n.fa-users-slash::before {\n content: \"\\e073\"; }\n\n.fa-clover::before {\n content: \"\\e139\"; }\n\n.fa-meat::before {\n content: \"\\f814\"; }\n\n.fa-reply::before {\n content: \"\\f3e5\"; }\n\n.fa-mail-reply::before {\n content: \"\\f3e5\"; }\n\n.fa-star-and-crescent::before {\n content: \"\\f699\"; }\n\n.fa-empty-set::before {\n content: \"\\f656\"; }\n\n.fa-house-fire::before {\n content: \"\\e50c\"; }\n\n.fa-square-minus::before {\n content: \"\\f146\"; }\n\n.fa-minus-square::before {\n content: \"\\f146\"; }\n\n.fa-helicopter::before {\n content: \"\\f533\"; }\n\n.fa-bird::before {\n content: \"\\e469\"; }\n\n.fa-compass::before {\n content: \"\\f14e\"; }\n\n.fa-square-caret-down::before {\n content: \"\\f150\"; }\n\n.fa-caret-square-down::before {\n content: \"\\f150\"; }\n\n.fa-heart-half-stroke::before {\n content: \"\\e1ac\"; }\n\n.fa-heart-half-alt::before {\n content: \"\\e1ac\"; }\n\n.fa-file-circle-question::before {\n content: \"\\e4ef\"; }\n\n.fa-truck-utensils::before {\n content: \"\\e628\"; }\n\n.fa-laptop-code::before {\n content: \"\\f5fc\"; }\n\n.fa-joystick::before {\n content: \"\\f8c5\"; }\n\n.fa-grill-fire::before {\n content: \"\\e5a4\"; }\n\n.fa-rectangle-vertical-history::before {\n content: \"\\e237\"; }\n\n.fa-swatchbook::before {\n content: \"\\f5c3\"; }\n\n.fa-prescription-bottle::before {\n content: \"\\f485\"; }\n\n.fa-bars::before {\n content: \"\\f0c9\"; }\n\n.fa-navicon::before {\n content: \"\\f0c9\"; }\n\n.fa-keyboard-left::before {\n content: \"\\e1c3\"; }\n\n.fa-people-group::before {\n content: \"\\e533\"; }\n\n.fa-hourglass-end::before {\n content: \"\\f253\"; }\n\n.fa-hourglass-3::before {\n content: \"\\f253\"; }\n\n.fa-heart-crack::before {\n content: \"\\f7a9\"; }\n\n.fa-heart-broken::before {\n content: \"\\f7a9\"; }\n\n.fa-face-beam-hand-over-mouth::before {\n content: \"\\e47c\"; }\n\n.fa-droplet-percent::before {\n content: \"\\f750\"; }\n\n.fa-humidity::before {\n content: \"\\f750\"; }\n\n.fa-square-up-right::before {\n content: \"\\f360\"; }\n\n.fa-external-link-square-alt::before {\n content: \"\\f360\"; }\n\n.fa-face-kiss-beam::before {\n content: \"\\f597\"; }\n\n.fa-kiss-beam::before {\n content: \"\\f597\"; }\n\n.fa-corn::before {\n content: \"\\f6c7\"; }\n\n.fa-roller-coaster::before {\n content: \"\\e324\"; }\n\n.fa-photo-film-music::before {\n content: \"\\e228\"; }\n\n.fa-radar::before {\n content: \"\\e024\"; }\n\n.fa-sickle::before {\n content: \"\\f822\"; }\n\n.fa-film::before {\n content: \"\\f008\"; }\n\n.fa-coconut::before {\n content: \"\\e2f6\"; }\n\n.fa-ruler-horizontal::before {\n content: \"\\f547\"; }\n\n.fa-shield-cross::before {\n content: \"\\f712\"; }\n\n.fa-cassette-tape::before {\n content: \"\\f8ab\"; }\n\n.fa-square-terminal::before {\n content: \"\\e32a\"; }\n\n.fa-people-robbery::before {\n content: \"\\e536\"; }\n\n.fa-lightbulb::before {\n content: \"\\f0eb\"; }\n\n.fa-caret-left::before {\n content: \"\\f0d9\"; }\n\n.fa-comment-middle::before {\n content: \"\\e149\"; }\n\n.fa-trash-can-list::before {\n content: \"\\e2ab\"; }\n\n.fa-block::before {\n content: \"\\e46a\"; }\n\n.fa-circle-exclamation::before {\n content: \"\\f06a\"; }\n\n.fa-exclamation-circle::before {\n content: \"\\f06a\"; }\n\n.fa-school-circle-xmark::before {\n content: \"\\e56d\"; }\n\n.fa-arrow-right-from-bracket::before {\n content: \"\\f08b\"; }\n\n.fa-sign-out::before {\n content: \"\\f08b\"; }\n\n.fa-face-frown-slight::before {\n content: \"\\e376\"; }\n\n.fa-circle-chevron-down::before {\n content: \"\\f13a\"; }\n\n.fa-chevron-circle-down::before {\n content: \"\\f13a\"; }\n\n.fa-sidebar-flip::before {\n content: \"\\e24f\"; }\n\n.fa-unlock-keyhole::before {\n content: \"\\f13e\"; }\n\n.fa-unlock-alt::before {\n content: \"\\f13e\"; }\n\n.fa-temperature-list::before {\n content: \"\\e299\"; }\n\n.fa-cloud-showers-heavy::before {\n content: \"\\f740\"; }\n\n.fa-headphones-simple::before {\n content: \"\\f58f\"; }\n\n.fa-headphones-alt::before {\n content: \"\\f58f\"; }\n\n.fa-sitemap::before {\n content: \"\\f0e8\"; }\n\n.fa-pipe-section::before {\n content: \"\\e438\"; }\n\n.fa-space-station-moon-construction::before {\n content: \"\\e034\"; }\n\n.fa-space-station-moon-alt::before {\n content: \"\\e034\"; }\n\n.fa-circle-dollar-to-slot::before {\n content: \"\\f4b9\"; }\n\n.fa-donate::before {\n content: \"\\f4b9\"; }\n\n.fa-memory::before {\n content: \"\\f538\"; }\n\n.fa-face-sleeping::before {\n content: \"\\e38d\"; }\n\n.fa-road-spikes::before {\n content: \"\\e568\"; }\n\n.fa-fire-burner::before {\n content: \"\\e4f1\"; }\n\n.fa-squirrel::before {\n content: \"\\f71a\"; }\n\n.fa-arrow-up-to-line::before {\n content: \"\\f341\"; }\n\n.fa-arrow-to-top::before {\n content: \"\\f341\"; }\n\n.fa-flag::before {\n content: \"\\f024\"; }\n\n.fa-face-cowboy-hat::before {\n content: \"\\e36e\"; }\n\n.fa-hanukiah::before {\n content: \"\\f6e6\"; }\n\n.fa-chart-scatter-3d::before {\n content: \"\\e0e8\"; }\n\n.fa-display-chart-up::before {\n content: \"\\e5e3\"; }\n\n.fa-square-code::before {\n content: \"\\e267\"; }\n\n.fa-feather::before {\n content: \"\\f52d\"; }\n\n.fa-volume-low::before {\n content: \"\\f027\"; }\n\n.fa-volume-down::before {\n content: \"\\f027\"; }\n\n.fa-xmark-to-slot::before {\n content: \"\\f771\"; }\n\n.fa-times-to-slot::before {\n content: \"\\f771\"; }\n\n.fa-vote-nay::before {\n content: \"\\f771\"; }\n\n.fa-box-taped::before {\n content: \"\\f49a\"; }\n\n.fa-box-alt::before {\n content: \"\\f49a\"; }\n\n.fa-comment-slash::before {\n content: \"\\f4b3\"; }\n\n.fa-swords::before {\n content: \"\\f71d\"; }\n\n.fa-cloud-sun-rain::before {\n content: \"\\f743\"; }\n\n.fa-album::before {\n content: \"\\f89f\"; }\n\n.fa-circle-n::before {\n content: \"\\e118\"; }\n\n.fa-compress::before {\n content: \"\\f066\"; }\n\n.fa-wheat-awn::before {\n content: \"\\e2cd\"; }\n\n.fa-wheat-alt::before {\n content: \"\\e2cd\"; }\n\n.fa-ankh::before {\n content: \"\\f644\"; }\n\n.fa-hands-holding-child::before {\n content: \"\\e4fa\"; }\n\n.fa-asterisk::before {\n content: \"\\2a\"; }\n\n.fa-key-skeleton-left-right::before {\n content: \"\\e3b4\"; }\n\n.fa-comment-lines::before {\n content: \"\\f4b0\"; }\n\n.fa-luchador-mask::before {\n content: \"\\f455\"; }\n\n.fa-luchador::before {\n content: \"\\f455\"; }\n\n.fa-mask-luchador::before {\n content: \"\\f455\"; }\n\n.fa-square-check::before {\n content: \"\\f14a\"; }\n\n.fa-check-square::before {\n content: \"\\f14a\"; }\n\n.fa-shredder::before {\n content: \"\\f68a\"; }\n\n.fa-book-open-cover::before {\n content: \"\\e0c0\"; }\n\n.fa-book-open-alt::before {\n content: \"\\e0c0\"; }\n\n.fa-sandwich::before {\n content: \"\\f81f\"; }\n\n.fa-peseta-sign::before {\n content: \"\\e221\"; }\n\n.fa-square-parking-slash::before {\n content: \"\\f617\"; }\n\n.fa-parking-slash::before {\n content: \"\\f617\"; }\n\n.fa-train-tunnel::before {\n content: \"\\e454\"; }\n\n.fa-heading::before {\n content: \"\\f1dc\"; }\n\n.fa-header::before {\n content: \"\\f1dc\"; }\n\n.fa-ghost::before {\n content: \"\\f6e2\"; }\n\n.fa-face-anguished::before {\n content: \"\\e369\"; }\n\n.fa-hockey-sticks::before {\n content: \"\\f454\"; }\n\n.fa-abacus::before {\n content: \"\\f640\"; }\n\n.fa-film-simple::before {\n content: \"\\f3a0\"; }\n\n.fa-film-alt::before {\n content: \"\\f3a0\"; }\n\n.fa-list::before {\n content: \"\\f03a\"; }\n\n.fa-list-squares::before {\n content: \"\\f03a\"; }\n\n.fa-tree-palm::before {\n content: \"\\f82b\"; }\n\n.fa-square-phone-flip::before {\n content: \"\\f87b\"; }\n\n.fa-phone-square-alt::before {\n content: \"\\f87b\"; }\n\n.fa-cart-plus::before {\n content: \"\\f217\"; }\n\n.fa-gamepad::before {\n content: \"\\f11b\"; }\n\n.fa-border-center-v::before {\n content: \"\\f89d\"; }\n\n.fa-circle-dot::before {\n content: \"\\f192\"; }\n\n.fa-dot-circle::before {\n content: \"\\f192\"; }\n\n.fa-clipboard-medical::before {\n content: \"\\e133\"; }\n\n.fa-face-dizzy::before {\n content: \"\\f567\"; }\n\n.fa-dizzy::before {\n content: \"\\f567\"; }\n\n.fa-egg::before {\n content: \"\\f7fb\"; }\n\n.fa-up-to-line::before {\n content: \"\\f34d\"; }\n\n.fa-arrow-alt-to-top::before {\n content: \"\\f34d\"; }\n\n.fa-house-medical-circle-xmark::before {\n content: \"\\e513\"; }\n\n.fa-watch-fitness::before {\n content: \"\\f63e\"; }\n\n.fa-clock-nine-thirty::before {\n content: \"\\e34d\"; }\n\n.fa-campground::before {\n content: \"\\f6bb\"; }\n\n.fa-folder-plus::before {\n content: \"\\f65e\"; }\n\n.fa-jug::before {\n content: \"\\f8c6\"; }\n\n.fa-futbol::before {\n content: \"\\f1e3\"; }\n\n.fa-futbol-ball::before {\n content: \"\\f1e3\"; }\n\n.fa-soccer-ball::before {\n content: \"\\f1e3\"; }\n\n.fa-snow-blowing::before {\n content: \"\\f761\"; }\n\n.fa-paintbrush::before {\n content: \"\\f1fc\"; }\n\n.fa-paint-brush::before {\n content: \"\\f1fc\"; }\n\n.fa-lock::before {\n content: \"\\f023\"; }\n\n.fa-arrow-down-from-line::before {\n content: \"\\f345\"; }\n\n.fa-arrow-from-top::before {\n content: \"\\f345\"; }\n\n.fa-gas-pump::before {\n content: \"\\f52f\"; }\n\n.fa-signal-bars-slash::before {\n content: \"\\f694\"; }\n\n.fa-signal-alt-slash::before {\n content: \"\\f694\"; }\n\n.fa-monkey::before {\n content: \"\\f6fb\"; }\n\n.fa-rectangle-pro::before {\n content: \"\\e235\"; }\n\n.fa-pro::before {\n content: \"\\e235\"; }\n\n.fa-house-night::before {\n content: \"\\e010\"; }\n\n.fa-hot-tub-person::before {\n content: \"\\f593\"; }\n\n.fa-hot-tub::before {\n content: \"\\f593\"; }\n\n.fa-globe-pointer::before {\n content: \"\\e60e\"; }\n\n.fa-blanket::before {\n content: \"\\f498\"; }\n\n.fa-map-location::before {\n content: \"\\f59f\"; }\n\n.fa-map-marked::before {\n content: \"\\f59f\"; }\n\n.fa-house-flood-water::before {\n content: \"\\e50e\"; }\n\n.fa-comments-question-check::before {\n content: \"\\e14f\"; }\n\n.fa-tree::before {\n content: \"\\f1bb\"; }\n\n.fa-arrows-cross::before {\n content: \"\\e0a2\"; }\n\n.fa-backpack::before {\n content: \"\\f5d4\"; }\n\n.fa-square-small::before {\n content: \"\\e27e\"; }\n\n.fa-folder-arrow-up::before {\n content: \"\\e054\"; }\n\n.fa-folder-upload::before {\n content: \"\\e054\"; }\n\n.fa-bridge-lock::before {\n content: \"\\e4cc\"; }\n\n.fa-crosshairs-simple::before {\n content: \"\\e59f\"; }\n\n.fa-sack-dollar::before {\n content: \"\\f81d\"; }\n\n.fa-pen-to-square::before {\n content: \"\\f044\"; }\n\n.fa-edit::before {\n content: \"\\f044\"; }\n\n.fa-square-sliders::before {\n content: \"\\f3f0\"; }\n\n.fa-sliders-h-square::before {\n content: \"\\f3f0\"; }\n\n.fa-car-side::before {\n content: \"\\f5e4\"; }\n\n.fa-message-middle-top::before {\n content: \"\\e1e2\"; }\n\n.fa-comment-middle-top-alt::before {\n content: \"\\e1e2\"; }\n\n.fa-lightbulb-on::before {\n content: \"\\f672\"; }\n\n.fa-knife::before {\n content: \"\\f2e4\"; }\n\n.fa-utensil-knife::before {\n content: \"\\f2e4\"; }\n\n.fa-share-nodes::before {\n content: \"\\f1e0\"; }\n\n.fa-share-alt::before {\n content: \"\\f1e0\"; }\n\n.fa-display-chart-up-circle-dollar::before {\n content: \"\\e5e6\"; }\n\n.fa-wave-sine::before {\n content: \"\\f899\"; }\n\n.fa-heart-circle-minus::before {\n content: \"\\e4ff\"; }\n\n.fa-circle-w::before {\n content: \"\\e12c\"; }\n\n.fa-circle-calendar::before {\n content: \"\\e102\"; }\n\n.fa-calendar-circle::before {\n content: \"\\e102\"; }\n\n.fa-hourglass-half::before {\n content: \"\\f252\"; }\n\n.fa-hourglass-2::before {\n content: \"\\f252\"; }\n\n.fa-microscope::before {\n content: \"\\f610\"; }\n\n.fa-sunset::before {\n content: \"\\f767\"; }\n\n.fa-sink::before {\n content: \"\\e06d\"; }\n\n.fa-calendar-exclamation::before {\n content: \"\\f334\"; }\n\n.fa-truck-container-empty::before {\n content: \"\\e2b5\"; }\n\n.fa-hand-heart::before {\n content: \"\\f4bc\"; }\n\n.fa-bag-shopping::before {\n content: \"\\f290\"; }\n\n.fa-shopping-bag::before {\n content: \"\\f290\"; }\n\n.fa-arrow-down-z-a::before {\n content: \"\\f881\"; }\n\n.fa-sort-alpha-desc::before {\n content: \"\\f881\"; }\n\n.fa-sort-alpha-down-alt::before {\n content: \"\\f881\"; }\n\n.fa-mitten::before {\n content: \"\\f7b5\"; }\n\n.fa-reply-clock::before {\n content: \"\\e239\"; }\n\n.fa-reply-time::before {\n content: \"\\e239\"; }\n\n.fa-person-rays::before {\n content: \"\\e54d\"; }\n\n.fa-right::before {\n content: \"\\f356\"; }\n\n.fa-arrow-alt-right::before {\n content: \"\\f356\"; }\n\n.fa-circle-f::before {\n content: \"\\e10e\"; }\n\n.fa-users::before {\n content: \"\\f0c0\"; }\n\n.fa-face-pleading::before {\n content: \"\\e386\"; }\n\n.fa-eye-slash::before {\n content: \"\\f070\"; }\n\n.fa-flask-vial::before {\n content: \"\\e4f3\"; }\n\n.fa-police-box::before {\n content: \"\\e021\"; }\n\n.fa-cucumber::before {\n content: \"\\e401\"; }\n\n.fa-head-side-brain::before {\n content: \"\\f808\"; }\n\n.fa-hand::before {\n content: \"\\f256\"; }\n\n.fa-hand-paper::before {\n content: \"\\f256\"; }\n\n.fa-person-biking-mountain::before {\n content: \"\\f84b\"; }\n\n.fa-biking-mountain::before {\n content: \"\\f84b\"; }\n\n.fa-utensils-slash::before {\n content: \"\\e464\"; }\n\n.fa-print-magnifying-glass::before {\n content: \"\\f81a\"; }\n\n.fa-print-search::before {\n content: \"\\f81a\"; }\n\n.fa-turn-right::before {\n content: \"\\e639\"; }\n\n.fa-folder-bookmark::before {\n content: \"\\e186\"; }\n\n.fa-arrow-turn-left-down::before {\n content: \"\\e633\"; }\n\n.fa-om::before {\n content: \"\\f679\"; }\n\n.fa-pi::before {\n content: \"\\f67e\"; }\n\n.fa-flask-round-potion::before {\n content: \"\\f6e1\"; }\n\n.fa-flask-potion::before {\n content: \"\\f6e1\"; }\n\n.fa-face-shush::before {\n content: \"\\e38c\"; }\n\n.fa-worm::before {\n content: \"\\e599\"; }\n\n.fa-house-circle-xmark::before {\n content: \"\\e50b\"; }\n\n.fa-plug::before {\n content: \"\\f1e6\"; }\n\n.fa-calendar-circle-exclamation::before {\n content: \"\\e46e\"; }\n\n.fa-square-i::before {\n content: \"\\e272\"; }\n\n.fa-chevron-up::before {\n content: \"\\f077\"; }\n\n.fa-face-saluting::before {\n content: \"\\e484\"; }\n\n.fa-gauge-simple-low::before {\n content: \"\\f62c\"; }\n\n.fa-tachometer-slow::before {\n content: \"\\f62c\"; }\n\n.fa-face-persevering::before {\n content: \"\\e385\"; }\n\n.fa-circle-camera::before {\n content: \"\\e103\"; }\n\n.fa-camera-circle::before {\n content: \"\\e103\"; }\n\n.fa-hand-spock::before {\n content: \"\\f259\"; }\n\n.fa-spider-web::before {\n content: \"\\f719\"; }\n\n.fa-circle-microphone::before {\n content: \"\\e116\"; }\n\n.fa-microphone-circle::before {\n content: \"\\e116\"; }\n\n.fa-book-arrow-up::before {\n content: \"\\e0ba\"; }\n\n.fa-popsicle::before {\n content: \"\\e43e\"; }\n\n.fa-command::before {\n content: \"\\e142\"; }\n\n.fa-blinds::before {\n content: \"\\f8fb\"; }\n\n.fa-stopwatch::before {\n content: \"\\f2f2\"; }\n\n.fa-saxophone::before {\n content: \"\\f8dc\"; }\n\n.fa-square-2::before {\n content: \"\\e257\"; }\n\n.fa-field-hockey-stick-ball::before {\n content: \"\\f44c\"; }\n\n.fa-field-hockey::before {\n content: \"\\f44c\"; }\n\n.fa-arrow-up-square-triangle::before {\n content: \"\\f88b\"; }\n\n.fa-sort-shapes-up-alt::before {\n content: \"\\f88b\"; }\n\n.fa-face-scream::before {\n content: \"\\e38b\"; }\n\n.fa-square-m::before {\n content: \"\\e276\"; }\n\n.fa-camera-web::before {\n content: \"\\f832\"; }\n\n.fa-webcam::before {\n content: \"\\f832\"; }\n\n.fa-comment-arrow-down::before {\n content: \"\\e143\"; }\n\n.fa-lightbulb-cfl::before {\n content: \"\\e5a6\"; }\n\n.fa-window-frame-open::before {\n content: \"\\e050\"; }\n\n.fa-face-kiss::before {\n content: \"\\f596\"; }\n\n.fa-kiss::before {\n content: \"\\f596\"; }\n\n.fa-bridge-circle-xmark::before {\n content: \"\\e4cb\"; }\n\n.fa-period::before {\n content: \"\\2e\"; }\n\n.fa-face-grin-tongue::before {\n content: \"\\f589\"; }\n\n.fa-grin-tongue::before {\n content: \"\\f589\"; }\n\n.fa-up-to-dotted-line::before {\n content: \"\\e457\"; }\n\n.fa-thought-bubble::before {\n content: \"\\e32e\"; }\n\n.fa-skeleton-ribs::before {\n content: \"\\e5cb\"; }\n\n.fa-raygun::before {\n content: \"\\e025\"; }\n\n.fa-flute::before {\n content: \"\\f8b9\"; }\n\n.fa-acorn::before {\n content: \"\\f6ae\"; }\n\n.fa-video-arrow-up-right::before {\n content: \"\\e2c9\"; }\n\n.fa-grate-droplet::before {\n content: \"\\e194\"; }\n\n.fa-seal-exclamation::before {\n content: \"\\e242\"; }\n\n.fa-chess-bishop::before {\n content: \"\\f43a\"; }\n\n.fa-message-sms::before {\n content: \"\\e1e5\"; }\n\n.fa-coffee-beans::before {\n content: \"\\e13f\"; }\n\n.fa-hat-witch::before {\n content: \"\\f6e7\"; }\n\n.fa-face-grin-wink::before {\n content: \"\\f58c\"; }\n\n.fa-grin-wink::before {\n content: \"\\f58c\"; }\n\n.fa-clock-three-thirty::before {\n content: \"\\e357\"; }\n\n.fa-ear-deaf::before {\n content: \"\\f2a4\"; }\n\n.fa-deaf::before {\n content: \"\\f2a4\"; }\n\n.fa-deafness::before {\n content: \"\\f2a4\"; }\n\n.fa-hard-of-hearing::before {\n content: \"\\f2a4\"; }\n\n.fa-alarm-clock::before {\n content: \"\\f34e\"; }\n\n.fa-eclipse::before {\n content: \"\\f749\"; }\n\n.fa-face-relieved::before {\n content: \"\\e389\"; }\n\n.fa-road-circle-check::before {\n content: \"\\e564\"; }\n\n.fa-dice-five::before {\n content: \"\\f523\"; }\n\n.fa-octagon-minus::before {\n content: \"\\f308\"; }\n\n.fa-minus-octagon::before {\n content: \"\\f308\"; }\n\n.fa-square-rss::before {\n content: \"\\f143\"; }\n\n.fa-rss-square::before {\n content: \"\\f143\"; }\n\n.fa-face-zany::before {\n content: \"\\e3a4\"; }\n\n.fa-tricycle::before {\n content: \"\\e5c3\"; }\n\n.fa-land-mine-on::before {\n content: \"\\e51b\"; }\n\n.fa-square-arrow-up-left::before {\n content: \"\\e263\"; }\n\n.fa-i-cursor::before {\n content: \"\\f246\"; }\n\n.fa-chart-mixed-up-circle-dollar::before {\n content: \"\\e5d9\"; }\n\n.fa-salt-shaker::before {\n content: \"\\e446\"; }\n\n.fa-stamp::before {\n content: \"\\f5bf\"; }\n\n.fa-file-plus::before {\n content: \"\\f319\"; }\n\n.fa-draw-square::before {\n content: \"\\f5ef\"; }\n\n.fa-toilet-paper-under-slash::before {\n content: \"\\e2a1\"; }\n\n.fa-toilet-paper-reverse-slash::before {\n content: \"\\e2a1\"; }\n\n.fa-stairs::before {\n content: \"\\e289\"; }\n\n.fa-drone-front::before {\n content: \"\\f860\"; }\n\n.fa-drone-alt::before {\n content: \"\\f860\"; }\n\n.fa-glass-empty::before {\n content: \"\\e191\"; }\n\n.fa-dial-high::before {\n content: \"\\e15c\"; }\n\n.fa-user-helmet-safety::before {\n content: \"\\f82c\"; }\n\n.fa-user-construction::before {\n content: \"\\f82c\"; }\n\n.fa-user-hard-hat::before {\n content: \"\\f82c\"; }\n\n.fa-i::before {\n content: \"\\49\"; }\n\n.fa-hryvnia-sign::before {\n content: \"\\f6f2\"; }\n\n.fa-hryvnia::before {\n content: \"\\f6f2\"; }\n\n.fa-arrow-down-left-and-arrow-up-right-to-center::before {\n content: \"\\e092\"; }\n\n.fa-pills::before {\n content: \"\\f484\"; }\n\n.fa-face-grin-wide::before {\n content: \"\\f581\"; }\n\n.fa-grin-alt::before {\n content: \"\\f581\"; }\n\n.fa-tooth::before {\n content: \"\\f5c9\"; }\n\n.fa-basketball-hoop::before {\n content: \"\\f435\"; }\n\n.fa-objects-align-bottom::before {\n content: \"\\e3bb\"; }\n\n.fa-v::before {\n content: \"\\56\"; }\n\n.fa-sparkles::before {\n content: \"\\f890\"; }\n\n.fa-squid::before {\n content: \"\\e450\"; }\n\n.fa-leafy-green::before {\n content: \"\\e41d\"; }\n\n.fa-circle-arrow-up-right::before {\n content: \"\\e0fc\"; }\n\n.fa-calendars::before {\n content: \"\\e0d7\"; }\n\n.fa-bangladeshi-taka-sign::before {\n content: \"\\e2e6\"; }\n\n.fa-bicycle::before {\n content: \"\\f206\"; }\n\n.fa-hammer-war::before {\n content: \"\\f6e4\"; }\n\n.fa-circle-d::before {\n content: \"\\e104\"; }\n\n.fa-spider-black-widow::before {\n content: \"\\f718\"; }\n\n.fa-staff-snake::before {\n content: \"\\e579\"; }\n\n.fa-rod-asclepius::before {\n content: \"\\e579\"; }\n\n.fa-rod-snake::before {\n content: \"\\e579\"; }\n\n.fa-staff-aesculapius::before {\n content: \"\\e579\"; }\n\n.fa-pear::before {\n content: \"\\e20c\"; }\n\n.fa-head-side-cough-slash::before {\n content: \"\\e062\"; }\n\n.fa-file-mov::before {\n content: \"\\e647\"; }\n\n.fa-triangle::before {\n content: \"\\f2ec\"; }\n\n.fa-apartment::before {\n content: \"\\e468\"; }\n\n.fa-truck-medical::before {\n content: \"\\f0f9\"; }\n\n.fa-ambulance::before {\n content: \"\\f0f9\"; }\n\n.fa-pepper::before {\n content: \"\\e432\"; }\n\n.fa-piano::before {\n content: \"\\f8d4\"; }\n\n.fa-gun-squirt::before {\n content: \"\\e19d\"; }\n\n.fa-wheat-awn-circle-exclamation::before {\n content: \"\\e598\"; }\n\n.fa-snowman::before {\n content: \"\\f7d0\"; }\n\n.fa-user-alien::before {\n content: \"\\e04a\"; }\n\n.fa-shield-check::before {\n content: \"\\f2f7\"; }\n\n.fa-mortar-pestle::before {\n content: \"\\f5a7\"; }\n\n.fa-road-barrier::before {\n content: \"\\e562\"; }\n\n.fa-chart-candlestick::before {\n content: \"\\e0e2\"; }\n\n.fa-briefcase-blank::before {\n content: \"\\e0c8\"; }\n\n.fa-school::before {\n content: \"\\f549\"; }\n\n.fa-igloo::before {\n content: \"\\f7ae\"; }\n\n.fa-bracket-round::before {\n content: \"\\28\"; }\n\n.fa-parenthesis::before {\n content: \"\\28\"; }\n\n.fa-joint::before {\n content: \"\\f595\"; }\n\n.fa-horse-saddle::before {\n content: \"\\f8c3\"; }\n\n.fa-mug-marshmallows::before {\n content: \"\\f7b7\"; }\n\n.fa-filters::before {\n content: \"\\e17e\"; }\n\n.fa-bell-on::before {\n content: \"\\f8fa\"; }\n\n.fa-angle-right::before {\n content: \"\\f105\"; }\n\n.fa-dial-med::before {\n content: \"\\e15f\"; }\n\n.fa-horse::before {\n content: \"\\f6f0\"; }\n\n.fa-q::before {\n content: \"\\51\"; }\n\n.fa-monitor-waveform::before {\n content: \"\\f611\"; }\n\n.fa-monitor-heart-rate::before {\n content: \"\\f611\"; }\n\n.fa-link-simple::before {\n content: \"\\e1cd\"; }\n\n.fa-whistle::before {\n content: \"\\f460\"; }\n\n.fa-g::before {\n content: \"\\47\"; }\n\n.fa-wine-glass-crack::before {\n content: \"\\f4bb\"; }\n\n.fa-fragile::before {\n content: \"\\f4bb\"; }\n\n.fa-slot-machine::before {\n content: \"\\e3ce\"; }\n\n.fa-notes-medical::before {\n content: \"\\f481\"; }\n\n.fa-car-wash::before {\n content: \"\\f5e6\"; }\n\n.fa-escalator::before {\n content: \"\\e171\"; }\n\n.fa-comment-image::before {\n content: \"\\e148\"; }\n\n.fa-temperature-half::before {\n content: \"\\f2c9\"; }\n\n.fa-temperature-2::before {\n content: \"\\f2c9\"; }\n\n.fa-thermometer-2::before {\n content: \"\\f2c9\"; }\n\n.fa-thermometer-half::before {\n content: \"\\f2c9\"; }\n\n.fa-dong-sign::before {\n content: \"\\e169\"; }\n\n.fa-donut::before {\n content: \"\\e406\"; }\n\n.fa-doughnut::before {\n content: \"\\e406\"; }\n\n.fa-capsules::before {\n content: \"\\f46b\"; }\n\n.fa-poo-storm::before {\n content: \"\\f75a\"; }\n\n.fa-poo-bolt::before {\n content: \"\\f75a\"; }\n\n.fa-tally-1::before {\n content: \"\\e294\"; }\n\n.fa-file-vector::before {\n content: \"\\e64c\"; }\n\n.fa-face-frown-open::before {\n content: \"\\f57a\"; }\n\n.fa-frown-open::before {\n content: \"\\f57a\"; }\n\n.fa-square-dashed::before {\n content: \"\\e269\"; }\n\n.fa-bag-shopping-plus::before {\n content: \"\\e651\"; }\n\n.fa-square-j::before {\n content: \"\\e273\"; }\n\n.fa-hand-point-up::before {\n content: \"\\f0a6\"; }\n\n.fa-money-bill::before {\n content: \"\\f0d6\"; }\n\n.fa-arrow-up-big-small::before {\n content: \"\\f88e\"; }\n\n.fa-sort-size-up::before {\n content: \"\\f88e\"; }\n\n.fa-barcode-read::before {\n content: \"\\f464\"; }\n\n.fa-baguette::before {\n content: \"\\e3d8\"; }\n\n.fa-bowl-soft-serve::before {\n content: \"\\e46b\"; }\n\n.fa-face-holding-back-tears::before {\n content: \"\\e482\"; }\n\n.fa-square-up::before {\n content: \"\\f353\"; }\n\n.fa-arrow-alt-square-up::before {\n content: \"\\f353\"; }\n\n.fa-train-subway-tunnel::before {\n content: \"\\e2a3\"; }\n\n.fa-subway-tunnel::before {\n content: \"\\e2a3\"; }\n\n.fa-square-exclamation::before {\n content: \"\\f321\"; }\n\n.fa-exclamation-square::before {\n content: \"\\f321\"; }\n\n.fa-semicolon::before {\n content: \"\\3b\"; }\n\n.fa-bookmark::before {\n content: \"\\f02e\"; }\n\n.fa-fan-table::before {\n content: \"\\e004\"; }\n\n.fa-align-justify::before {\n content: \"\\f039\"; }\n\n.fa-battery-low::before {\n content: \"\\e0b1\"; }\n\n.fa-battery-1::before {\n content: \"\\e0b1\"; }\n\n.fa-credit-card-front::before {\n content: \"\\f38a\"; }\n\n.fa-brain-arrow-curved-right::before {\n content: \"\\f677\"; }\n\n.fa-mind-share::before {\n content: \"\\f677\"; }\n\n.fa-umbrella-beach::before {\n content: \"\\f5ca\"; }\n\n.fa-helmet-un::before {\n content: \"\\e503\"; }\n\n.fa-location-smile::before {\n content: \"\\f60d\"; }\n\n.fa-map-marker-smile::before {\n content: \"\\f60d\"; }\n\n.fa-arrow-left-to-line::before {\n content: \"\\f33e\"; }\n\n.fa-arrow-to-left::before {\n content: \"\\f33e\"; }\n\n.fa-bullseye::before {\n content: \"\\f140\"; }\n\n.fa-sushi::before {\n content: \"\\e48a\"; }\n\n.fa-nigiri::before {\n content: \"\\e48a\"; }\n\n.fa-message-captions::before {\n content: \"\\e1de\"; }\n\n.fa-comment-alt-captions::before {\n content: \"\\e1de\"; }\n\n.fa-trash-list::before {\n content: \"\\e2b1\"; }\n\n.fa-bacon::before {\n content: \"\\f7e5\"; }\n\n.fa-option::before {\n content: \"\\e318\"; }\n\n.fa-raccoon::before {\n content: \"\\e613\"; }\n\n.fa-hand-point-down::before {\n content: \"\\f0a7\"; }\n\n.fa-arrow-up-from-bracket::before {\n content: \"\\e09a\"; }\n\n.fa-head-side-gear::before {\n content: \"\\e611\"; }\n\n.fa-trash-plus::before {\n content: \"\\e2b2\"; }\n\n.fa-file-cad::before {\n content: \"\\e672\"; }\n\n.fa-objects-align-top::before {\n content: \"\\e3c0\"; }\n\n.fa-folder::before {\n content: \"\\f07b\"; }\n\n.fa-folder-blank::before {\n content: \"\\f07b\"; }\n\n.fa-face-anxious-sweat::before {\n content: \"\\e36a\"; }\n\n.fa-credit-card-blank::before {\n content: \"\\f389\"; }\n\n.fa-file-waveform::before {\n content: \"\\f478\"; }\n\n.fa-file-medical-alt::before {\n content: \"\\f478\"; }\n\n.fa-microchip-ai::before {\n content: \"\\e1ec\"; }\n\n.fa-mug::before {\n content: \"\\f874\"; }\n\n.fa-plane-up-slash::before {\n content: \"\\e22e\"; }\n\n.fa-radiation::before {\n content: \"\\f7b9\"; }\n\n.fa-pen-circle::before {\n content: \"\\e20e\"; }\n\n.fa-bag-seedling::before {\n content: \"\\e5f2\"; }\n\n.fa-chart-simple::before {\n content: \"\\e473\"; }\n\n.fa-crutches::before {\n content: \"\\f7f8\"; }\n\n.fa-circle-parking::before {\n content: \"\\f615\"; }\n\n.fa-parking-circle::before {\n content: \"\\f615\"; }\n\n.fa-mars-stroke::before {\n content: \"\\f229\"; }\n\n.fa-leaf-oak::before {\n content: \"\\f6f7\"; }\n\n.fa-square-bolt::before {\n content: \"\\e265\"; }\n\n.fa-vial::before {\n content: \"\\f492\"; }\n\n.fa-gauge::before {\n content: \"\\f624\"; }\n\n.fa-dashboard::before {\n content: \"\\f624\"; }\n\n.fa-gauge-med::before {\n content: \"\\f624\"; }\n\n.fa-tachometer-alt-average::before {\n content: \"\\f624\"; }\n\n.fa-wand-magic-sparkles::before {\n content: \"\\e2ca\"; }\n\n.fa-magic-wand-sparkles::before {\n content: \"\\e2ca\"; }\n\n.fa-lambda::before {\n content: \"\\f66e\"; }\n\n.fa-e::before {\n content: \"\\45\"; }\n\n.fa-pizza::before {\n content: \"\\f817\"; }\n\n.fa-bowl-chopsticks-noodles::before {\n content: \"\\e2ea\"; }\n\n.fa-h3::before {\n content: \"\\f315\"; }\n\n.fa-pen-clip::before {\n content: \"\\f305\"; }\n\n.fa-pen-alt::before {\n content: \"\\f305\"; }\n\n.fa-bridge-circle-exclamation::before {\n content: \"\\e4ca\"; }\n\n.fa-badge-percent::before {\n content: \"\\f646\"; }\n\n.fa-rotate-reverse::before {\n content: \"\\e631\"; }\n\n.fa-user::before {\n content: \"\\f007\"; }\n\n.fa-sensor::before {\n content: \"\\e028\"; }\n\n.fa-comma::before {\n content: \"\\2c\"; }\n\n.fa-school-circle-check::before {\n content: \"\\e56b\"; }\n\n.fa-toilet-paper-under::before {\n content: \"\\e2a0\"; }\n\n.fa-toilet-paper-reverse::before {\n content: \"\\e2a0\"; }\n\n.fa-light-emergency::before {\n content: \"\\e41f\"; }\n\n.fa-arrow-down-to-arc::before {\n content: \"\\e4ae\"; }\n\n.fa-dumpster::before {\n content: \"\\f793\"; }\n\n.fa-van-shuttle::before {\n content: \"\\f5b6\"; }\n\n.fa-shuttle-van::before {\n content: \"\\f5b6\"; }\n\n.fa-building-user::before {\n content: \"\\e4da\"; }\n\n.fa-light-switch::before {\n content: \"\\e017\"; }\n\n.fa-square-caret-left::before {\n content: \"\\f191\"; }\n\n.fa-caret-square-left::before {\n content: \"\\f191\"; }\n\n.fa-highlighter::before {\n content: \"\\f591\"; }\n\n.fa-wave-pulse::before {\n content: \"\\f5f8\"; }\n\n.fa-heart-rate::before {\n content: \"\\f5f8\"; }\n\n.fa-key::before {\n content: \"\\f084\"; }\n\n.fa-arrow-left-to-bracket::before {\n content: \"\\e669\"; }\n\n.fa-hat-santa::before {\n content: \"\\f7a7\"; }\n\n.fa-tamale::before {\n content: \"\\e451\"; }\n\n.fa-box-check::before {\n content: \"\\f467\"; }\n\n.fa-bullhorn::before {\n content: \"\\f0a1\"; }\n\n.fa-steak::before {\n content: \"\\f824\"; }\n\n.fa-location-crosshairs-slash::before {\n content: \"\\f603\"; }\n\n.fa-location-slash::before {\n content: \"\\f603\"; }\n\n.fa-person-dolly::before {\n content: \"\\f4d0\"; }\n\n.fa-globe::before {\n content: \"\\f0ac\"; }\n\n.fa-synagogue::before {\n content: \"\\f69b\"; }\n\n.fa-file-chart-column::before {\n content: \"\\f659\"; }\n\n.fa-file-chart-line::before {\n content: \"\\f659\"; }\n\n.fa-person-half-dress::before {\n content: \"\\e548\"; }\n\n.fa-folder-image::before {\n content: \"\\e18a\"; }\n\n.fa-calendar-pen::before {\n content: \"\\f333\"; }\n\n.fa-calendar-edit::before {\n content: \"\\f333\"; }\n\n.fa-road-bridge::before {\n content: \"\\e563\"; }\n\n.fa-face-smile-tear::before {\n content: \"\\e393\"; }\n\n.fa-message-plus::before {\n content: \"\\f4a8\"; }\n\n.fa-comment-alt-plus::before {\n content: \"\\f4a8\"; }\n\n.fa-location-arrow::before {\n content: \"\\f124\"; }\n\n.fa-c::before {\n content: \"\\43\"; }\n\n.fa-tablet-button::before {\n content: \"\\f10a\"; }\n\n.fa-person-dress-fairy::before {\n content: \"\\e607\"; }\n\n.fa-rectangle-history-circle-user::before {\n content: \"\\e4a4\"; }\n\n.fa-building-lock::before {\n content: \"\\e4d6\"; }\n\n.fa-chart-line-up::before {\n content: \"\\e0e5\"; }\n\n.fa-mailbox::before {\n content: \"\\f813\"; }\n\n.fa-sign-posts::before {\n content: \"\\e625\"; }\n\n.fa-truck-bolt::before {\n content: \"\\e3d0\"; }\n\n.fa-pizza-slice::before {\n content: \"\\f818\"; }\n\n.fa-money-bill-wave::before {\n content: \"\\f53a\"; }\n\n.fa-chart-area::before {\n content: \"\\f1fe\"; }\n\n.fa-area-chart::before {\n content: \"\\f1fe\"; }\n\n.fa-house-flag::before {\n content: \"\\e50d\"; }\n\n.fa-circle-three-quarters-stroke::before {\n content: \"\\e5d4\"; }\n\n.fa-person-circle-minus::before {\n content: \"\\e540\"; }\n\n.fa-scalpel::before {\n content: \"\\f61d\"; }\n\n.fa-ban::before {\n content: \"\\f05e\"; }\n\n.fa-cancel::before {\n content: \"\\f05e\"; }\n\n.fa-bell-exclamation::before {\n content: \"\\f848\"; }\n\n.fa-circle-bookmark::before {\n content: \"\\e100\"; }\n\n.fa-bookmark-circle::before {\n content: \"\\e100\"; }\n\n.fa-egg-fried::before {\n content: \"\\f7fc\"; }\n\n.fa-face-weary::before {\n content: \"\\e3a1\"; }\n\n.fa-uniform-martial-arts::before {\n content: \"\\e3d1\"; }\n\n.fa-camera-rotate::before {\n content: \"\\e0d8\"; }\n\n.fa-sun-dust::before {\n content: \"\\f764\"; }\n\n.fa-comment-text::before {\n content: \"\\e14d\"; }\n\n.fa-spray-can-sparkles::before {\n content: \"\\f5d0\"; }\n\n.fa-air-freshener::before {\n content: \"\\f5d0\"; }\n\n.fa-signal-bars::before {\n content: \"\\f690\"; }\n\n.fa-signal-alt::before {\n content: \"\\f690\"; }\n\n.fa-signal-alt-4::before {\n content: \"\\f690\"; }\n\n.fa-signal-bars-strong::before {\n content: \"\\f690\"; }\n\n.fa-diamond-exclamation::before {\n content: \"\\e405\"; }\n\n.fa-star::before {\n content: \"\\f005\"; }\n\n.fa-dial-min::before {\n content: \"\\e161\"; }\n\n.fa-repeat::before {\n content: \"\\f363\"; }\n\n.fa-cross::before {\n content: \"\\f654\"; }\n\n.fa-page-caret-down::before {\n content: \"\\e429\"; }\n\n.fa-file-caret-down::before {\n content: \"\\e429\"; }\n\n.fa-box::before {\n content: \"\\f466\"; }\n\n.fa-venus-mars::before {\n content: \"\\f228\"; }\n\n.fa-clock-seven-thirty::before {\n content: \"\\e351\"; }\n\n.fa-arrow-pointer::before {\n content: \"\\f245\"; }\n\n.fa-mouse-pointer::before {\n content: \"\\f245\"; }\n\n.fa-clock-four-thirty::before {\n content: \"\\e34b\"; }\n\n.fa-signal-bars-good::before {\n content: \"\\f693\"; }\n\n.fa-signal-alt-3::before {\n content: \"\\f693\"; }\n\n.fa-cactus::before {\n content: \"\\f8a7\"; }\n\n.fa-lightbulb-gear::before {\n content: \"\\e5fd\"; }\n\n.fa-maximize::before {\n content: \"\\f31e\"; }\n\n.fa-expand-arrows-alt::before {\n content: \"\\f31e\"; }\n\n.fa-charging-station::before {\n content: \"\\f5e7\"; }\n\n.fa-shapes::before {\n content: \"\\f61f\"; }\n\n.fa-triangle-circle-square::before {\n content: \"\\f61f\"; }\n\n.fa-plane-tail::before {\n content: \"\\e22c\"; }\n\n.fa-gauge-simple-max::before {\n content: \"\\f62b\"; }\n\n.fa-tachometer-fastest::before {\n content: \"\\f62b\"; }\n\n.fa-circle-u::before {\n content: \"\\e127\"; }\n\n.fa-shield-slash::before {\n content: \"\\e24b\"; }\n\n.fa-square-phone-hangup::before {\n content: \"\\e27a\"; }\n\n.fa-phone-square-down::before {\n content: \"\\e27a\"; }\n\n.fa-arrow-up-left::before {\n content: \"\\e09d\"; }\n\n.fa-transporter-1::before {\n content: \"\\e043\"; }\n\n.fa-peanuts::before {\n content: \"\\e431\"; }\n\n.fa-shuffle::before {\n content: \"\\f074\"; }\n\n.fa-random::before {\n content: \"\\f074\"; }\n\n.fa-person-running::before {\n content: \"\\f70c\"; }\n\n.fa-running::before {\n content: \"\\f70c\"; }\n\n.fa-mobile-retro::before {\n content: \"\\e527\"; }\n\n.fa-grip-lines-vertical::before {\n content: \"\\f7a5\"; }\n\n.fa-bin-bottles-recycle::before {\n content: \"\\e5f6\"; }\n\n.fa-arrow-up-from-square::before {\n content: \"\\e09c\"; }\n\n.fa-file-dashed-line::before {\n content: \"\\f877\"; }\n\n.fa-page-break::before {\n content: \"\\f877\"; }\n\n.fa-bracket-curly-right::before {\n content: \"\\7d\"; }\n\n.fa-spider::before {\n content: \"\\f717\"; }\n\n.fa-clock-three::before {\n content: \"\\e356\"; }\n\n.fa-hands-bound::before {\n content: \"\\e4f9\"; }\n\n.fa-scalpel-line-dashed::before {\n content: \"\\f61e\"; }\n\n.fa-scalpel-path::before {\n content: \"\\f61e\"; }\n\n.fa-file-invoice-dollar::before {\n content: \"\\f571\"; }\n\n.fa-pipe-smoking::before {\n content: \"\\e3c4\"; }\n\n.fa-face-astonished::before {\n content: \"\\e36b\"; }\n\n.fa-window::before {\n content: \"\\f40e\"; }\n\n.fa-plane-circle-exclamation::before {\n content: \"\\e556\"; }\n\n.fa-ear::before {\n content: \"\\f5f0\"; }\n\n.fa-file-lock::before {\n content: \"\\e3a6\"; }\n\n.fa-diagram-venn::before {\n content: \"\\e15a\"; }\n\n.fa-arrow-down-from-bracket::before {\n content: \"\\e667\"; }\n\n.fa-x-ray::before {\n content: \"\\f497\"; }\n\n.fa-goal-net::before {\n content: \"\\e3ab\"; }\n\n.fa-coffin-cross::before {\n content: \"\\e051\"; }\n\n.fa-spell-check::before {\n content: \"\\f891\"; }\n\n.fa-location-xmark::before {\n content: \"\\f60e\"; }\n\n.fa-map-marker-times::before {\n content: \"\\f60e\"; }\n\n.fa-map-marker-xmark::before {\n content: \"\\f60e\"; }\n\n.fa-circle-quarter-stroke::before {\n content: \"\\e5d3\"; }\n\n.fa-lasso::before {\n content: \"\\f8c8\"; }\n\n.fa-slash::before {\n content: \"\\f715\"; }\n\n.fa-person-to-portal::before {\n content: \"\\e022\"; }\n\n.fa-portal-enter::before {\n content: \"\\e022\"; }\n\n.fa-calendar-star::before {\n content: \"\\f736\"; }\n\n.fa-computer-mouse::before {\n content: \"\\f8cc\"; }\n\n.fa-mouse::before {\n content: \"\\f8cc\"; }\n\n.fa-arrow-right-to-bracket::before {\n content: \"\\f090\"; }\n\n.fa-sign-in::before {\n content: \"\\f090\"; }\n\n.fa-pegasus::before {\n content: \"\\f703\"; }\n\n.fa-files-medical::before {\n content: \"\\f7fd\"; }\n\n.fa-cannon::before {\n content: \"\\e642\"; }\n\n.fa-nfc-lock::before {\n content: \"\\e1f8\"; }\n\n.fa-person-ski-lift::before {\n content: \"\\f7c8\"; }\n\n.fa-ski-lift::before {\n content: \"\\f7c8\"; }\n\n.fa-square-6::before {\n content: \"\\e25b\"; }\n\n.fa-shop-slash::before {\n content: \"\\e070\"; }\n\n.fa-store-alt-slash::before {\n content: \"\\e070\"; }\n\n.fa-wind-turbine::before {\n content: \"\\f89b\"; }\n\n.fa-sliders-simple::before {\n content: \"\\e253\"; }\n\n.fa-grid-round::before {\n content: \"\\e5da\"; }\n\n.fa-badge-sheriff::before {\n content: \"\\f8a2\"; }\n\n.fa-server::before {\n content: \"\\f233\"; }\n\n.fa-virus-covid-slash::before {\n content: \"\\e4a9\"; }\n\n.fa-intersection::before {\n content: \"\\f668\"; }\n\n.fa-shop-lock::before {\n content: \"\\e4a5\"; }\n\n.fa-family::before {\n content: \"\\e300\"; }\n\n.fa-hourglass-start::before {\n content: \"\\f251\"; }\n\n.fa-hourglass-1::before {\n content: \"\\f251\"; }\n\n.fa-user-hair-buns::before {\n content: \"\\e3d3\"; }\n\n.fa-blender-phone::before {\n content: \"\\f6b6\"; }\n\n.fa-hourglass-clock::before {\n content: \"\\e41b\"; }\n\n.fa-person-seat-reclined::before {\n content: \"\\e21f\"; }\n\n.fa-paper-plane-top::before {\n content: \"\\e20a\"; }\n\n.fa-paper-plane-alt::before {\n content: \"\\e20a\"; }\n\n.fa-send::before {\n content: \"\\e20a\"; }\n\n.fa-message-arrow-up::before {\n content: \"\\e1dc\"; }\n\n.fa-comment-alt-arrow-up::before {\n content: \"\\e1dc\"; }\n\n.fa-lightbulb-exclamation::before {\n content: \"\\f671\"; }\n\n.fa-layer-minus::before {\n content: \"\\f5fe\"; }\n\n.fa-layer-group-minus::before {\n content: \"\\f5fe\"; }\n\n.fa-chart-pie-simple-circle-currency::before {\n content: \"\\e604\"; }\n\n.fa-circle-e::before {\n content: \"\\e109\"; }\n\n.fa-building-wheat::before {\n content: \"\\e4db\"; }\n\n.fa-gauge-max::before {\n content: \"\\f626\"; }\n\n.fa-tachometer-alt-fastest::before {\n content: \"\\f626\"; }\n\n.fa-person-breastfeeding::before {\n content: \"\\e53a\"; }\n\n.fa-apostrophe::before {\n content: \"\\27\"; }\n\n.fa-file-png::before {\n content: \"\\e666\"; }\n\n.fa-fire-hydrant::before {\n content: \"\\e17f\"; }\n\n.fa-right-to-bracket::before {\n content: \"\\f2f6\"; }\n\n.fa-sign-in-alt::before {\n content: \"\\f2f6\"; }\n\n.fa-video-plus::before {\n content: \"\\f4e1\"; }\n\n.fa-square-right::before {\n content: \"\\f352\"; }\n\n.fa-arrow-alt-square-right::before {\n content: \"\\f352\"; }\n\n.fa-comment-smile::before {\n content: \"\\f4b4\"; }\n\n.fa-venus::before {\n content: \"\\f221\"; }\n\n.fa-passport::before {\n content: \"\\f5ab\"; }\n\n.fa-inbox-in::before {\n content: \"\\f310\"; }\n\n.fa-inbox-arrow-down::before {\n content: \"\\f310\"; }\n\n.fa-heart-pulse::before {\n content: \"\\f21e\"; }\n\n.fa-heartbeat::before {\n content: \"\\f21e\"; }\n\n.fa-circle-8::before {\n content: \"\\e0f5\"; }\n\n.fa-clouds-moon::before {\n content: \"\\f745\"; }\n\n.fa-clock-ten-thirty::before {\n content: \"\\e355\"; }\n\n.fa-people-carry-box::before {\n content: \"\\f4ce\"; }\n\n.fa-people-carry::before {\n content: \"\\f4ce\"; }\n\n.fa-folder-user::before {\n content: \"\\e18e\"; }\n\n.fa-trash-can-xmark::before {\n content: \"\\e2ae\"; }\n\n.fa-temperature-high::before {\n content: \"\\f769\"; }\n\n.fa-microchip::before {\n content: \"\\f2db\"; }\n\n.fa-left-long-to-line::before {\n content: \"\\e41e\"; }\n\n.fa-crown::before {\n content: \"\\f521\"; }\n\n.fa-weight-hanging::before {\n content: \"\\f5cd\"; }\n\n.fa-xmarks-lines::before {\n content: \"\\e59a\"; }\n\n.fa-file-prescription::before {\n content: \"\\f572\"; }\n\n.fa-table-cells-lock::before {\n content: \"\\e679\"; }\n\n.fa-calendar-range::before {\n content: \"\\e0d6\"; }\n\n.fa-flower-daffodil::before {\n content: \"\\f800\"; }\n\n.fa-hand-back-point-up::before {\n content: \"\\e1a2\"; }\n\n.fa-weight-scale::before {\n content: \"\\f496\"; }\n\n.fa-weight::before {\n content: \"\\f496\"; }\n\n.fa-arrow-up-to-arc::before {\n content: \"\\e617\"; }\n\n.fa-star-exclamation::before {\n content: \"\\f2f3\"; }\n\n.fa-books::before {\n content: \"\\f5db\"; }\n\n.fa-user-group::before {\n content: \"\\f500\"; }\n\n.fa-user-friends::before {\n content: \"\\f500\"; }\n\n.fa-arrow-up-a-z::before {\n content: \"\\f15e\"; }\n\n.fa-sort-alpha-up::before {\n content: \"\\f15e\"; }\n\n.fa-layer-plus::before {\n content: \"\\f5ff\"; }\n\n.fa-layer-group-plus::before {\n content: \"\\f5ff\"; }\n\n.fa-play-pause::before {\n content: \"\\e22f\"; }\n\n.fa-block-question::before {\n content: \"\\e3dd\"; }\n\n.fa-snooze::before {\n content: \"\\f880\"; }\n\n.fa-zzz::before {\n content: \"\\f880\"; }\n\n.fa-scanner-image::before {\n content: \"\\f8f3\"; }\n\n.fa-tv-retro::before {\n content: \"\\f401\"; }\n\n.fa-square-t::before {\n content: \"\\e280\"; }\n\n.fa-farm::before {\n content: \"\\f864\"; }\n\n.fa-barn-silo::before {\n content: \"\\f864\"; }\n\n.fa-chess-knight::before {\n content: \"\\f441\"; }\n\n.fa-bars-sort::before {\n content: \"\\e0ae\"; }\n\n.fa-pallet-boxes::before {\n content: \"\\f483\"; }\n\n.fa-palette-boxes::before {\n content: \"\\f483\"; }\n\n.fa-pallet-alt::before {\n content: \"\\f483\"; }\n\n.fa-face-laugh-squint::before {\n content: \"\\f59b\"; }\n\n.fa-laugh-squint::before {\n content: \"\\f59b\"; }\n\n.fa-code-simple::before {\n content: \"\\e13d\"; }\n\n.fa-bolt-slash::before {\n content: \"\\e0b8\"; }\n\n.fa-panel-fire::before {\n content: \"\\e42f\"; }\n\n.fa-binary-circle-check::before {\n content: \"\\e33c\"; }\n\n.fa-comment-minus::before {\n content: \"\\f4b1\"; }\n\n.fa-burrito::before {\n content: \"\\f7ed\"; }\n\n.fa-violin::before {\n content: \"\\f8ed\"; }\n\n.fa-objects-column::before {\n content: \"\\e3c1\"; }\n\n.fa-square-chevron-down::before {\n content: \"\\f329\"; }\n\n.fa-chevron-square-down::before {\n content: \"\\f329\"; }\n\n.fa-comment-plus::before {\n content: \"\\f4b2\"; }\n\n.fa-triangle-instrument::before {\n content: \"\\f8e2\"; }\n\n.fa-triangle-music::before {\n content: \"\\f8e2\"; }\n\n.fa-wheelchair::before {\n content: \"\\f193\"; }\n\n.fa-user-pilot-tie::before {\n content: \"\\e2c1\"; }\n\n.fa-piano-keyboard::before {\n content: \"\\f8d5\"; }\n\n.fa-bed-empty::before {\n content: \"\\f8f9\"; }\n\n.fa-circle-arrow-up::before {\n content: \"\\f0aa\"; }\n\n.fa-arrow-circle-up::before {\n content: \"\\f0aa\"; }\n\n.fa-toggle-on::before {\n content: \"\\f205\"; }\n\n.fa-rectangle-vertical::before {\n content: \"\\f2fb\"; }\n\n.fa-rectangle-portrait::before {\n content: \"\\f2fb\"; }\n\n.fa-person-walking::before {\n content: \"\\f554\"; }\n\n.fa-walking::before {\n content: \"\\f554\"; }\n\n.fa-l::before {\n content: \"\\4c\"; }\n\n.fa-signal-stream::before {\n content: \"\\f8dd\"; }\n\n.fa-down-to-bracket::before {\n content: \"\\e4e7\"; }\n\n.fa-circle-z::before {\n content: \"\\e130\"; }\n\n.fa-stars::before {\n content: \"\\f762\"; }\n\n.fa-fire::before {\n content: \"\\f06d\"; }\n\n.fa-bed-pulse::before {\n content: \"\\f487\"; }\n\n.fa-procedures::before {\n content: \"\\f487\"; }\n\n.fa-house-day::before {\n content: \"\\e00e\"; }\n\n.fa-shuttle-space::before {\n content: \"\\f197\"; }\n\n.fa-space-shuttle::before {\n content: \"\\f197\"; }\n\n.fa-shirt-long-sleeve::before {\n content: \"\\e3c7\"; }\n\n.fa-chart-pie-simple::before {\n content: \"\\f64e\"; }\n\n.fa-chart-pie-alt::before {\n content: \"\\f64e\"; }\n\n.fa-face-laugh::before {\n content: \"\\f599\"; }\n\n.fa-laugh::before {\n content: \"\\f599\"; }\n\n.fa-folder-open::before {\n content: \"\\f07c\"; }\n\n.fa-album-collection-circle-user::before {\n content: \"\\e48f\"; }\n\n.fa-candy::before {\n content: \"\\e3e7\"; }\n\n.fa-bowl-hot::before {\n content: \"\\f823\"; }\n\n.fa-soup::before {\n content: \"\\f823\"; }\n\n.fa-flatbread::before {\n content: \"\\e40b\"; }\n\n.fa-heart-circle-plus::before {\n content: \"\\e500\"; }\n\n.fa-code-fork::before {\n content: \"\\e13b\"; }\n\n.fa-city::before {\n content: \"\\f64f\"; }\n\n.fa-signal-bars-weak::before {\n content: \"\\f691\"; }\n\n.fa-signal-alt-1::before {\n content: \"\\f691\"; }\n\n.fa-microphone-lines::before {\n content: \"\\f3c9\"; }\n\n.fa-microphone-alt::before {\n content: \"\\f3c9\"; }\n\n.fa-clock-twelve::before {\n content: \"\\e358\"; }\n\n.fa-pepper-hot::before {\n content: \"\\f816\"; }\n\n.fa-citrus-slice::before {\n content: \"\\e2f5\"; }\n\n.fa-sheep::before {\n content: \"\\f711\"; }\n\n.fa-unlock::before {\n content: \"\\f09c\"; }\n\n.fa-colon-sign::before {\n content: \"\\e140\"; }\n\n.fa-headset::before {\n content: \"\\f590\"; }\n\n.fa-badger-honey::before {\n content: \"\\f6b4\"; }\n\n.fa-h4::before {\n content: \"\\f86a\"; }\n\n.fa-store-slash::before {\n content: \"\\e071\"; }\n\n.fa-road-circle-xmark::before {\n content: \"\\e566\"; }\n\n.fa-signal-slash::before {\n content: \"\\f695\"; }\n\n.fa-user-minus::before {\n content: \"\\f503\"; }\n\n.fa-mars-stroke-up::before {\n content: \"\\f22a\"; }\n\n.fa-mars-stroke-v::before {\n content: \"\\f22a\"; }\n\n.fa-champagne-glasses::before {\n content: \"\\f79f\"; }\n\n.fa-glass-cheers::before {\n content: \"\\f79f\"; }\n\n.fa-taco::before {\n content: \"\\f826\"; }\n\n.fa-hexagon-plus::before {\n content: \"\\f300\"; }\n\n.fa-plus-hexagon::before {\n content: \"\\f300\"; }\n\n.fa-clipboard::before {\n content: \"\\f328\"; }\n\n.fa-house-circle-exclamation::before {\n content: \"\\e50a\"; }\n\n.fa-file-arrow-up::before {\n content: \"\\f574\"; }\n\n.fa-file-upload::before {\n content: \"\\f574\"; }\n\n.fa-wifi::before {\n content: \"\\f1eb\"; }\n\n.fa-wifi-3::before {\n content: \"\\f1eb\"; }\n\n.fa-wifi-strong::before {\n content: \"\\f1eb\"; }\n\n.fa-messages::before {\n content: \"\\f4b6\"; }\n\n.fa-comments-alt::before {\n content: \"\\f4b6\"; }\n\n.fa-bath::before {\n content: \"\\f2cd\"; }\n\n.fa-bathtub::before {\n content: \"\\f2cd\"; }\n\n.fa-umbrella-simple::before {\n content: \"\\e2bc\"; }\n\n.fa-umbrella-alt::before {\n content: \"\\e2bc\"; }\n\n.fa-rectangle-history-circle-plus::before {\n content: \"\\e4a3\"; }\n\n.fa-underline::before {\n content: \"\\f0cd\"; }\n\n.fa-prescription-bottle-pill::before {\n content: \"\\e5c0\"; }\n\n.fa-user-pen::before {\n content: \"\\f4ff\"; }\n\n.fa-user-edit::before {\n content: \"\\f4ff\"; }\n\n.fa-binary-slash::before {\n content: \"\\e33e\"; }\n\n.fa-square-o::before {\n content: \"\\e278\"; }\n\n.fa-caduceus::before {\n content: \"\\e681\"; }\n\n.fa-signature::before {\n content: \"\\f5b7\"; }\n\n.fa-stroopwafel::before {\n content: \"\\f551\"; }\n\n.fa-bold::before {\n content: \"\\f032\"; }\n\n.fa-anchor-lock::before {\n content: \"\\e4ad\"; }\n\n.fa-building-ngo::before {\n content: \"\\e4d7\"; }\n\n.fa-transporter-3::before {\n content: \"\\e045\"; }\n\n.fa-engine-warning::before {\n content: \"\\f5f2\"; }\n\n.fa-engine-exclamation::before {\n content: \"\\f5f2\"; }\n\n.fa-circle-down-right::before {\n content: \"\\e108\"; }\n\n.fa-square-k::before {\n content: \"\\e274\"; }\n\n.fa-manat-sign::before {\n content: \"\\e1d5\"; }\n\n.fa-money-check-pen::before {\n content: \"\\f872\"; }\n\n.fa-money-check-edit::before {\n content: \"\\f872\"; }\n\n.fa-not-equal::before {\n content: \"\\f53e\"; }\n\n.fa-border-top-left::before {\n content: \"\\f853\"; }\n\n.fa-border-style::before {\n content: \"\\f853\"; }\n\n.fa-map-location-dot::before {\n content: \"\\f5a0\"; }\n\n.fa-map-marked-alt::before {\n content: \"\\f5a0\"; }\n\n.fa-tilde::before {\n content: \"\\7e\"; }\n\n.fa-jedi::before {\n content: \"\\f669\"; }\n\n.fa-square-poll-vertical::before {\n content: \"\\f681\"; }\n\n.fa-poll::before {\n content: \"\\f681\"; }\n\n.fa-arrow-down-square-triangle::before {\n content: \"\\f889\"; }\n\n.fa-sort-shapes-down-alt::before {\n content: \"\\f889\"; }\n\n.fa-mug-hot::before {\n content: \"\\f7b6\"; }\n\n.fa-dog-leashed::before {\n content: \"\\f6d4\"; }\n\n.fa-car-battery::before {\n content: \"\\f5df\"; }\n\n.fa-battery-car::before {\n content: \"\\f5df\"; }\n\n.fa-face-downcast-sweat::before {\n content: \"\\e371\"; }\n\n.fa-mailbox-flag-up::before {\n content: \"\\e5bb\"; }\n\n.fa-memo-circle-info::before {\n content: \"\\e49a\"; }\n\n.fa-gift::before {\n content: \"\\f06b\"; }\n\n.fa-dice-two::before {\n content: \"\\f528\"; }\n\n.fa-volume::before {\n content: \"\\f6a8\"; }\n\n.fa-volume-medium::before {\n content: \"\\f6a8\"; }\n\n.fa-transporter-5::before {\n content: \"\\e2a6\"; }\n\n.fa-gauge-circle-bolt::before {\n content: \"\\e496\"; }\n\n.fa-coin-front::before {\n content: \"\\e3fc\"; }\n\n.fa-file-slash::before {\n content: \"\\e3a7\"; }\n\n.fa-message-arrow-up-right::before {\n content: \"\\e1dd\"; }\n\n.fa-treasure-chest::before {\n content: \"\\f723\"; }\n\n.fa-chess-queen::before {\n content: \"\\f445\"; }\n\n.fa-paintbrush-fine::before {\n content: \"\\f5a9\"; }\n\n.fa-paint-brush-alt::before {\n content: \"\\f5a9\"; }\n\n.fa-paint-brush-fine::before {\n content: \"\\f5a9\"; }\n\n.fa-paintbrush-alt::before {\n content: \"\\f5a9\"; }\n\n.fa-glasses::before {\n content: \"\\f530\"; }\n\n.fa-hood-cloak::before {\n content: \"\\f6ef\"; }\n\n.fa-square-quote::before {\n content: \"\\e329\"; }\n\n.fa-up-left::before {\n content: \"\\e2bd\"; }\n\n.fa-bring-front::before {\n content: \"\\f857\"; }\n\n.fa-chess-board::before {\n content: \"\\f43c\"; }\n\n.fa-burger-cheese::before {\n content: \"\\f7f1\"; }\n\n.fa-cheeseburger::before {\n content: \"\\f7f1\"; }\n\n.fa-building-circle-check::before {\n content: \"\\e4d2\"; }\n\n.fa-repeat-1::before {\n content: \"\\f365\"; }\n\n.fa-arrow-down-to-line::before {\n content: \"\\f33d\"; }\n\n.fa-arrow-to-bottom::before {\n content: \"\\f33d\"; }\n\n.fa-grid-5::before {\n content: \"\\e199\"; }\n\n.fa-swap-arrows::before {\n content: \"\\e60a\"; }\n\n.fa-right-long-to-line::before {\n content: \"\\e444\"; }\n\n.fa-person-chalkboard::before {\n content: \"\\e53d\"; }\n\n.fa-mars-stroke-right::before {\n content: \"\\f22b\"; }\n\n.fa-mars-stroke-h::before {\n content: \"\\f22b\"; }\n\n.fa-hand-back-fist::before {\n content: \"\\f255\"; }\n\n.fa-hand-rock::before {\n content: \"\\f255\"; }\n\n.fa-grid-round-5::before {\n content: \"\\e5de\"; }\n\n.fa-tally::before {\n content: \"\\f69c\"; }\n\n.fa-tally-5::before {\n content: \"\\f69c\"; }\n\n.fa-square-caret-up::before {\n content: \"\\f151\"; }\n\n.fa-caret-square-up::before {\n content: \"\\f151\"; }\n\n.fa-cloud-showers-water::before {\n content: \"\\e4e4\"; }\n\n.fa-chart-bar::before {\n content: \"\\f080\"; }\n\n.fa-bar-chart::before {\n content: \"\\f080\"; }\n\n.fa-hands-bubbles::before {\n content: \"\\e05e\"; }\n\n.fa-hands-wash::before {\n content: \"\\e05e\"; }\n\n.fa-less-than-equal::before {\n content: \"\\f537\"; }\n\n.fa-train::before {\n content: \"\\f238\"; }\n\n.fa-up-from-dotted-line::before {\n content: \"\\e456\"; }\n\n.fa-eye-low-vision::before {\n content: \"\\f2a8\"; }\n\n.fa-low-vision::before {\n content: \"\\f2a8\"; }\n\n.fa-traffic-light-go::before {\n content: \"\\f638\"; }\n\n.fa-face-exhaling::before {\n content: \"\\e480\"; }\n\n.fa-sensor-fire::before {\n content: \"\\e02a\"; }\n\n.fa-user-unlock::before {\n content: \"\\e058\"; }\n\n.fa-hexagon-divide::before {\n content: \"\\e1ad\"; }\n\n.fa-00::before {\n content: \"\\e467\"; }\n\n.fa-crow::before {\n content: \"\\f520\"; }\n\n.fa-cassette-betamax::before {\n content: \"\\f8a4\"; }\n\n.fa-betamax::before {\n content: \"\\f8a4\"; }\n\n.fa-sailboat::before {\n content: \"\\e445\"; }\n\n.fa-window-restore::before {\n content: \"\\f2d2\"; }\n\n.fa-nfc-magnifying-glass::before {\n content: \"\\e1f9\"; }\n\n.fa-file-binary::before {\n content: \"\\e175\"; }\n\n.fa-circle-v::before {\n content: \"\\e12a\"; }\n\n.fa-square-plus::before {\n content: \"\\f0fe\"; }\n\n.fa-plus-square::before {\n content: \"\\f0fe\"; }\n\n.fa-bowl-scoops::before {\n content: \"\\e3df\"; }\n\n.fa-mistletoe::before {\n content: \"\\f7b4\"; }\n\n.fa-custard::before {\n content: \"\\e403\"; }\n\n.fa-lacrosse-stick::before {\n content: \"\\e3b5\"; }\n\n.fa-hockey-mask::before {\n content: \"\\f6ee\"; }\n\n.fa-sunrise::before {\n content: \"\\f766\"; }\n\n.fa-subtitles::before {\n content: \"\\e60f\"; }\n\n.fa-panel-ews::before {\n content: \"\\e42e\"; }\n\n.fa-torii-gate::before {\n content: \"\\f6a1\"; }\n\n.fa-cloud-exclamation::before {\n content: \"\\e491\"; }\n\n.fa-message-lines::before {\n content: \"\\f4a6\"; }\n\n.fa-comment-alt-lines::before {\n content: \"\\f4a6\"; }\n\n.fa-frog::before {\n content: \"\\f52e\"; }\n\n.fa-bucket::before {\n content: \"\\e4cf\"; }\n\n.fa-floppy-disk-pen::before {\n content: \"\\e182\"; }\n\n.fa-image::before {\n content: \"\\f03e\"; }\n\n.fa-window-frame::before {\n content: \"\\e04f\"; }\n\n.fa-microphone::before {\n content: \"\\f130\"; }\n\n.fa-cow::before {\n content: \"\\f6c8\"; }\n\n.fa-file-zip::before {\n content: \"\\e5ee\"; }\n\n.fa-square-ring::before {\n content: \"\\e44f\"; }\n\n.fa-down-from-line::before {\n content: \"\\f349\"; }\n\n.fa-arrow-alt-from-top::before {\n content: \"\\f349\"; }\n\n.fa-caret-up::before {\n content: \"\\f0d8\"; }\n\n.fa-shield-xmark::before {\n content: \"\\e24c\"; }\n\n.fa-shield-times::before {\n content: \"\\e24c\"; }\n\n.fa-screwdriver::before {\n content: \"\\f54a\"; }\n\n.fa-circle-sort-down::before {\n content: \"\\e031\"; }\n\n.fa-sort-circle-down::before {\n content: \"\\e031\"; }\n\n.fa-folder-closed::before {\n content: \"\\e185\"; }\n\n.fa-house-tsunami::before {\n content: \"\\e515\"; }\n\n.fa-square-nfi::before {\n content: \"\\e576\"; }\n\n.fa-forklift::before {\n content: \"\\f47a\"; }\n\n.fa-arrow-up-from-ground-water::before {\n content: \"\\e4b5\"; }\n\n.fa-bracket-square-right::before {\n content: \"\\5d\"; }\n\n.fa-martini-glass::before {\n content: \"\\f57b\"; }\n\n.fa-glass-martini-alt::before {\n content: \"\\f57b\"; }\n\n.fa-rotate-left::before {\n content: \"\\f2ea\"; }\n\n.fa-rotate-back::before {\n content: \"\\f2ea\"; }\n\n.fa-rotate-backward::before {\n content: \"\\f2ea\"; }\n\n.fa-undo-alt::before {\n content: \"\\f2ea\"; }\n\n.fa-table-columns::before {\n content: \"\\f0db\"; }\n\n.fa-columns::before {\n content: \"\\f0db\"; }\n\n.fa-square-a::before {\n content: \"\\e25f\"; }\n\n.fa-tick::before {\n content: \"\\e32f\"; }\n\n.fa-lemon::before {\n content: \"\\f094\"; }\n\n.fa-head-side-mask::before {\n content: \"\\e063\"; }\n\n.fa-handshake::before {\n content: \"\\f2b5\"; }\n\n.fa-gem::before {\n content: \"\\f3a5\"; }\n\n.fa-dolly::before {\n content: \"\\f472\"; }\n\n.fa-dolly-box::before {\n content: \"\\f472\"; }\n\n.fa-smoking::before {\n content: \"\\f48d\"; }\n\n.fa-minimize::before {\n content: \"\\f78c\"; }\n\n.fa-compress-arrows-alt::before {\n content: \"\\f78c\"; }\n\n.fa-refrigerator::before {\n content: \"\\e026\"; }\n\n.fa-monument::before {\n content: \"\\f5a6\"; }\n\n.fa-octagon-xmark::before {\n content: \"\\f2f0\"; }\n\n.fa-times-octagon::before {\n content: \"\\f2f0\"; }\n\n.fa-xmark-octagon::before {\n content: \"\\f2f0\"; }\n\n.fa-align-slash::before {\n content: \"\\f846\"; }\n\n.fa-snowplow::before {\n content: \"\\f7d2\"; }\n\n.fa-angles-right::before {\n content: \"\\f101\"; }\n\n.fa-angle-double-right::before {\n content: \"\\f101\"; }\n\n.fa-truck-ramp-couch::before {\n content: \"\\f4dd\"; }\n\n.fa-truck-couch::before {\n content: \"\\f4dd\"; }\n\n.fa-cannabis::before {\n content: \"\\f55f\"; }\n\n.fa-circle-play::before {\n content: \"\\f144\"; }\n\n.fa-play-circle::before {\n content: \"\\f144\"; }\n\n.fa-arrow-up-right-and-arrow-down-left-from-center::before {\n content: \"\\e0a0\"; }\n\n.fa-location-arrow-up::before {\n content: \"\\e63a\"; }\n\n.fa-tablets::before {\n content: \"\\f490\"; }\n\n.fa-360-degrees::before {\n content: \"\\e2dc\"; }\n\n.fa-ethernet::before {\n content: \"\\f796\"; }\n\n.fa-euro-sign::before {\n content: \"\\f153\"; }\n\n.fa-eur::before {\n content: \"\\f153\"; }\n\n.fa-euro::before {\n content: \"\\f153\"; }\n\n.fa-chair::before {\n content: \"\\f6c0\"; }\n\n.fa-circle-check::before {\n content: \"\\f058\"; }\n\n.fa-check-circle::before {\n content: \"\\f058\"; }\n\n.fa-square-dashed-circle-plus::before {\n content: \"\\e5c2\"; }\n\n.fa-hand-holding-circle-dollar::before {\n content: \"\\e621\"; }\n\n.fa-money-simple-from-bracket::before {\n content: \"\\e313\"; }\n\n.fa-bat::before {\n content: \"\\f6b5\"; }\n\n.fa-circle-stop::before {\n content: \"\\f28d\"; }\n\n.fa-stop-circle::before {\n content: \"\\f28d\"; }\n\n.fa-head-side-headphones::before {\n content: \"\\f8c2\"; }\n\n.fa-phone-rotary::before {\n content: \"\\f8d3\"; }\n\n.fa-arrow-up-to-bracket::before {\n content: \"\\e66a\"; }\n\n.fa-compass-drafting::before {\n content: \"\\f568\"; }\n\n.fa-drafting-compass::before {\n content: \"\\f568\"; }\n\n.fa-plate-wheat::before {\n content: \"\\e55a\"; }\n\n.fa-calendar-circle-minus::before {\n content: \"\\e46f\"; }\n\n.fa-chopsticks::before {\n content: \"\\e3f7\"; }\n\n.fa-car-wrench::before {\n content: \"\\f5e3\"; }\n\n.fa-car-mechanic::before {\n content: \"\\f5e3\"; }\n\n.fa-icicles::before {\n content: \"\\f7ad\"; }\n\n.fa-person-shelter::before {\n content: \"\\e54f\"; }\n\n.fa-neuter::before {\n content: \"\\f22c\"; }\n\n.fa-id-badge::before {\n content: \"\\f2c1\"; }\n\n.fa-kazoo::before {\n content: \"\\f8c7\"; }\n\n.fa-marker::before {\n content: \"\\f5a1\"; }\n\n.fa-bin-bottles::before {\n content: \"\\e5f5\"; }\n\n.fa-face-laugh-beam::before {\n content: \"\\f59a\"; }\n\n.fa-laugh-beam::before {\n content: \"\\f59a\"; }\n\n.fa-square-arrow-down-left::before {\n content: \"\\e261\"; }\n\n.fa-battery-bolt::before {\n content: \"\\f376\"; }\n\n.fa-tree-large::before {\n content: \"\\f7dd\"; }\n\n.fa-helicopter-symbol::before {\n content: \"\\e502\"; }\n\n.fa-aperture::before {\n content: \"\\e2df\"; }\n\n.fa-universal-access::before {\n content: \"\\f29a\"; }\n\n.fa-gear-complex::before {\n content: \"\\e5e9\"; }\n\n.fa-file-magnifying-glass::before {\n content: \"\\f865\"; }\n\n.fa-file-search::before {\n content: \"\\f865\"; }\n\n.fa-up-right::before {\n content: \"\\e2be\"; }\n\n.fa-circle-chevron-up::before {\n content: \"\\f139\"; }\n\n.fa-chevron-circle-up::before {\n content: \"\\f139\"; }\n\n.fa-user-police::before {\n content: \"\\e333\"; }\n\n.fa-lari-sign::before {\n content: \"\\e1c8\"; }\n\n.fa-volcano::before {\n content: \"\\f770\"; }\n\n.fa-teddy-bear::before {\n content: \"\\e3cf\"; }\n\n.fa-stocking::before {\n content: \"\\f7d5\"; }\n\n.fa-person-walking-dashed-line-arrow-right::before {\n content: \"\\e553\"; }\n\n.fa-image-slash::before {\n content: \"\\e1b7\"; }\n\n.fa-mask-snorkel::before {\n content: \"\\e3b7\"; }\n\n.fa-smoke::before {\n content: \"\\f760\"; }\n\n.fa-sterling-sign::before {\n content: \"\\f154\"; }\n\n.fa-gbp::before {\n content: \"\\f154\"; }\n\n.fa-pound-sign::before {\n content: \"\\f154\"; }\n\n.fa-battery-exclamation::before {\n content: \"\\e0b0\"; }\n\n.fa-viruses::before {\n content: \"\\e076\"; }\n\n.fa-square-person-confined::before {\n content: \"\\e577\"; }\n\n.fa-user-tie::before {\n content: \"\\f508\"; }\n\n.fa-up-to-bracket::before {\n content: \"\\e66e\"; }\n\n.fa-arrow-down-long::before {\n content: \"\\f175\"; }\n\n.fa-long-arrow-down::before {\n content: \"\\f175\"; }\n\n.fa-tent-arrow-down-to-line::before {\n content: \"\\e57e\"; }\n\n.fa-certificate::before {\n content: \"\\f0a3\"; }\n\n.fa-crystal-ball::before {\n content: \"\\e362\"; }\n\n.fa-reply-all::before {\n content: \"\\f122\"; }\n\n.fa-mail-reply-all::before {\n content: \"\\f122\"; }\n\n.fa-suitcase::before {\n content: \"\\f0f2\"; }\n\n.fa-person-skating::before {\n content: \"\\f7c5\"; }\n\n.fa-skating::before {\n content: \"\\f7c5\"; }\n\n.fa-star-shooting::before {\n content: \"\\e036\"; }\n\n.fa-binary-lock::before {\n content: \"\\e33d\"; }\n\n.fa-filter-circle-dollar::before {\n content: \"\\f662\"; }\n\n.fa-funnel-dollar::before {\n content: \"\\f662\"; }\n\n.fa-camera-retro::before {\n content: \"\\f083\"; }\n\n.fa-circle-arrow-down::before {\n content: \"\\f0ab\"; }\n\n.fa-arrow-circle-down::before {\n content: \"\\f0ab\"; }\n\n.fa-comment-pen::before {\n content: \"\\f4ae\"; }\n\n.fa-comment-edit::before {\n content: \"\\f4ae\"; }\n\n.fa-file-import::before {\n content: \"\\f56f\"; }\n\n.fa-arrow-right-to-file::before {\n content: \"\\f56f\"; }\n\n.fa-banjo::before {\n content: \"\\f8a3\"; }\n\n.fa-square-arrow-up-right::before {\n content: \"\\f14c\"; }\n\n.fa-external-link-square::before {\n content: \"\\f14c\"; }\n\n.fa-light-emergency-on::before {\n content: \"\\e420\"; }\n\n.fa-kerning::before {\n content: \"\\f86f\"; }\n\n.fa-box-open::before {\n content: \"\\f49e\"; }\n\n.fa-square-f::before {\n content: \"\\e270\"; }\n\n.fa-scroll::before {\n content: \"\\f70e\"; }\n\n.fa-spa::before {\n content: \"\\f5bb\"; }\n\n.fa-arrow-left-from-line::before {\n content: \"\\f344\"; }\n\n.fa-arrow-from-right::before {\n content: \"\\f344\"; }\n\n.fa-strawberry::before {\n content: \"\\e32b\"; }\n\n.fa-location-pin-lock::before {\n content: \"\\e51f\"; }\n\n.fa-pause::before {\n content: \"\\f04c\"; }\n\n.fa-clock-eight-thirty::before {\n content: \"\\e346\"; }\n\n.fa-plane-engines::before {\n content: \"\\f3de\"; }\n\n.fa-plane-alt::before {\n content: \"\\f3de\"; }\n\n.fa-hill-avalanche::before {\n content: \"\\e507\"; }\n\n.fa-temperature-empty::before {\n content: \"\\f2cb\"; }\n\n.fa-temperature-0::before {\n content: \"\\f2cb\"; }\n\n.fa-thermometer-0::before {\n content: \"\\f2cb\"; }\n\n.fa-thermometer-empty::before {\n content: \"\\f2cb\"; }\n\n.fa-bomb::before {\n content: \"\\f1e2\"; }\n\n.fa-gauge-low::before {\n content: \"\\f627\"; }\n\n.fa-tachometer-alt-slow::before {\n content: \"\\f627\"; }\n\n.fa-registered::before {\n content: \"\\f25d\"; }\n\n.fa-trash-can-plus::before {\n content: \"\\e2ac\"; }\n\n.fa-address-card::before {\n content: \"\\f2bb\"; }\n\n.fa-contact-card::before {\n content: \"\\f2bb\"; }\n\n.fa-vcard::before {\n content: \"\\f2bb\"; }\n\n.fa-scale-unbalanced-flip::before {\n content: \"\\f516\"; }\n\n.fa-balance-scale-right::before {\n content: \"\\f516\"; }\n\n.fa-globe-snow::before {\n content: \"\\f7a3\"; }\n\n.fa-subscript::before {\n content: \"\\f12c\"; }\n\n.fa-diamond-turn-right::before {\n content: \"\\f5eb\"; }\n\n.fa-directions::before {\n content: \"\\f5eb\"; }\n\n.fa-integral::before {\n content: \"\\f667\"; }\n\n.fa-burst::before {\n content: \"\\e4dc\"; }\n\n.fa-house-laptop::before {\n content: \"\\e066\"; }\n\n.fa-laptop-house::before {\n content: \"\\e066\"; }\n\n.fa-face-tired::before {\n content: \"\\f5c8\"; }\n\n.fa-tired::before {\n content: \"\\f5c8\"; }\n\n.fa-money-bills::before {\n content: \"\\e1f3\"; }\n\n.fa-blinds-raised::before {\n content: \"\\f8fd\"; }\n\n.fa-smog::before {\n content: \"\\f75f\"; }\n\n.fa-ufo-beam::before {\n content: \"\\e048\"; }\n\n.fa-circle-caret-up::before {\n content: \"\\f331\"; }\n\n.fa-caret-circle-up::before {\n content: \"\\f331\"; }\n\n.fa-user-vneck-hair-long::before {\n content: \"\\e463\"; }\n\n.fa-square-a-lock::before {\n content: \"\\e44d\"; }\n\n.fa-crutch::before {\n content: \"\\f7f7\"; }\n\n.fa-gas-pump-slash::before {\n content: \"\\f5f4\"; }\n\n.fa-cloud-arrow-up::before {\n content: \"\\f0ee\"; }\n\n.fa-cloud-upload::before {\n content: \"\\f0ee\"; }\n\n.fa-cloud-upload-alt::before {\n content: \"\\f0ee\"; }\n\n.fa-palette::before {\n content: \"\\f53f\"; }\n\n.fa-transporter-4::before {\n content: \"\\e2a5\"; }\n\n.fa-chart-mixed-up-circle-currency::before {\n content: \"\\e5d8\"; }\n\n.fa-objects-align-right::before {\n content: \"\\e3bf\"; }\n\n.fa-arrows-turn-right::before {\n content: \"\\e4c0\"; }\n\n.fa-vest::before {\n content: \"\\e085\"; }\n\n.fa-pig::before {\n content: \"\\f706\"; }\n\n.fa-inbox-full::before {\n content: \"\\e1ba\"; }\n\n.fa-circle-envelope::before {\n content: \"\\e10c\"; }\n\n.fa-envelope-circle::before {\n content: \"\\e10c\"; }\n\n.fa-triangle-person-digging::before {\n content: \"\\f85d\"; }\n\n.fa-construction::before {\n content: \"\\f85d\"; }\n\n.fa-ferry::before {\n content: \"\\e4ea\"; }\n\n.fa-bullseye-arrow::before {\n content: \"\\f648\"; }\n\n.fa-arrows-down-to-people::before {\n content: \"\\e4b9\"; }\n\n.fa-seedling::before {\n content: \"\\f4d8\"; }\n\n.fa-sprout::before {\n content: \"\\f4d8\"; }\n\n.fa-clock-seven::before {\n content: \"\\e350\"; }\n\n.fa-left-right::before {\n content: \"\\f337\"; }\n\n.fa-arrows-alt-h::before {\n content: \"\\f337\"; }\n\n.fa-boxes-packing::before {\n content: \"\\e4c7\"; }\n\n.fa-circle-arrow-left::before {\n content: \"\\f0a8\"; }\n\n.fa-arrow-circle-left::before {\n content: \"\\f0a8\"; }\n\n.fa-flashlight::before {\n content: \"\\f8b8\"; }\n\n.fa-file-jpg::before {\n content: \"\\e646\"; }\n\n.fa-group-arrows-rotate::before {\n content: \"\\e4f6\"; }\n\n.fa-bowl-food::before {\n content: \"\\e4c6\"; }\n\n.fa-square-9::before {\n content: \"\\e25e\"; }\n\n.fa-candy-cane::before {\n content: \"\\f786\"; }\n\n.fa-arrow-down-wide-short::before {\n content: \"\\f160\"; }\n\n.fa-sort-amount-asc::before {\n content: \"\\f160\"; }\n\n.fa-sort-amount-down::before {\n content: \"\\f160\"; }\n\n.fa-square-dollar::before {\n content: \"\\f2e9\"; }\n\n.fa-dollar-square::before {\n content: \"\\f2e9\"; }\n\n.fa-usd-square::before {\n content: \"\\f2e9\"; }\n\n.fa-phone-arrow-right::before {\n content: \"\\e5be\"; }\n\n.fa-hand-holding-seedling::before {\n content: \"\\f4bf\"; }\n\n.fa-message-check::before {\n content: \"\\f4a2\"; }\n\n.fa-comment-alt-check::before {\n content: \"\\f4a2\"; }\n\n.fa-cloud-bolt::before {\n content: \"\\f76c\"; }\n\n.fa-thunderstorm::before {\n content: \"\\f76c\"; }\n\n.fa-chart-line-up-down::before {\n content: \"\\e5d7\"; }\n\n.fa-text-slash::before {\n content: \"\\f87d\"; }\n\n.fa-remove-format::before {\n content: \"\\f87d\"; }\n\n.fa-watch::before {\n content: \"\\f2e1\"; }\n\n.fa-circle-down-left::before {\n content: \"\\e107\"; }\n\n.fa-text::before {\n content: \"\\f893\"; }\n\n.fa-projector::before {\n content: \"\\f8d6\"; }\n\n.fa-face-smile-wink::before {\n content: \"\\f4da\"; }\n\n.fa-smile-wink::before {\n content: \"\\f4da\"; }\n\n.fa-tombstone-blank::before {\n content: \"\\f721\"; }\n\n.fa-tombstone-alt::before {\n content: \"\\f721\"; }\n\n.fa-chess-king-piece::before {\n content: \"\\f440\"; }\n\n.fa-chess-king-alt::before {\n content: \"\\f440\"; }\n\n.fa-circle-6::before {\n content: \"\\e0f3\"; }\n\n.fa-waves-sine::before {\n content: \"\\e65d\"; }\n\n.fa-left::before {\n content: \"\\f355\"; }\n\n.fa-arrow-alt-left::before {\n content: \"\\f355\"; }\n\n.fa-file-word::before {\n content: \"\\f1c2\"; }\n\n.fa-file-powerpoint::before {\n content: \"\\f1c4\"; }\n\n.fa-square-down::before {\n content: \"\\f350\"; }\n\n.fa-arrow-alt-square-down::before {\n content: \"\\f350\"; }\n\n.fa-objects-align-center-vertical::before {\n content: \"\\e3bd\"; }\n\n.fa-arrows-left-right::before {\n content: \"\\f07e\"; }\n\n.fa-arrows-h::before {\n content: \"\\f07e\"; }\n\n.fa-house-lock::before {\n content: \"\\e510\"; }\n\n.fa-cloud-arrow-down::before {\n content: \"\\f0ed\"; }\n\n.fa-cloud-download::before {\n content: \"\\f0ed\"; }\n\n.fa-cloud-download-alt::before {\n content: \"\\f0ed\"; }\n\n.fa-wreath::before {\n content: \"\\f7e2\"; }\n\n.fa-children::before {\n content: \"\\e4e1\"; }\n\n.fa-meter-droplet::before {\n content: \"\\e1ea\"; }\n\n.fa-chalkboard::before {\n content: \"\\f51b\"; }\n\n.fa-blackboard::before {\n content: \"\\f51b\"; }\n\n.fa-user-large-slash::before {\n content: \"\\f4fa\"; }\n\n.fa-user-alt-slash::before {\n content: \"\\f4fa\"; }\n\n.fa-signal-strong::before {\n content: \"\\f68f\"; }\n\n.fa-signal-4::before {\n content: \"\\f68f\"; }\n\n.fa-lollipop::before {\n content: \"\\e424\"; }\n\n.fa-lollypop::before {\n content: \"\\e424\"; }\n\n.fa-list-tree::before {\n content: \"\\e1d2\"; }\n\n.fa-envelope-open::before {\n content: \"\\f2b6\"; }\n\n.fa-draw-circle::before {\n content: \"\\f5ed\"; }\n\n.fa-cat-space::before {\n content: \"\\e001\"; }\n\n.fa-handshake-simple-slash::before {\n content: \"\\e05f\"; }\n\n.fa-handshake-alt-slash::before {\n content: \"\\e05f\"; }\n\n.fa-rabbit-running::before {\n content: \"\\f709\"; }\n\n.fa-rabbit-fast::before {\n content: \"\\f709\"; }\n\n.fa-memo-pad::before {\n content: \"\\e1da\"; }\n\n.fa-mattress-pillow::before {\n content: \"\\e525\"; }\n\n.fa-alarm-plus::before {\n content: \"\\f844\"; }\n\n.fa-alicorn::before {\n content: \"\\f6b0\"; }\n\n.fa-comment-question::before {\n content: \"\\e14b\"; }\n\n.fa-gingerbread-man::before {\n content: \"\\f79d\"; }\n\n.fa-guarani-sign::before {\n content: \"\\e19a\"; }\n\n.fa-burger-fries::before {\n content: \"\\e0cd\"; }\n\n.fa-mug-tea::before {\n content: \"\\f875\"; }\n\n.fa-border-top::before {\n content: \"\\f855\"; }\n\n.fa-arrows-rotate::before {\n content: \"\\f021\"; }\n\n.fa-refresh::before {\n content: \"\\f021\"; }\n\n.fa-sync::before {\n content: \"\\f021\"; }\n\n.fa-circle-book-open::before {\n content: \"\\e0ff\"; }\n\n.fa-book-circle::before {\n content: \"\\e0ff\"; }\n\n.fa-arrows-to-dotted-line::before {\n content: \"\\e0a6\"; }\n\n.fa-fire-extinguisher::before {\n content: \"\\f134\"; }\n\n.fa-magnifying-glass-arrows-rotate::before {\n content: \"\\e65e\"; }\n\n.fa-garage-open::before {\n content: \"\\e00b\"; }\n\n.fa-shelves-empty::before {\n content: \"\\e246\"; }\n\n.fa-cruzeiro-sign::before {\n content: \"\\e152\"; }\n\n.fa-watch-apple::before {\n content: \"\\e2cb\"; }\n\n.fa-watch-calculator::before {\n content: \"\\f8f0\"; }\n\n.fa-list-dropdown::before {\n content: \"\\e1cf\"; }\n\n.fa-cabinet-filing::before {\n content: \"\\f64b\"; }\n\n.fa-burger-soda::before {\n content: \"\\f858\"; }\n\n.fa-square-arrow-up::before {\n content: \"\\f33c\"; }\n\n.fa-arrow-square-up::before {\n content: \"\\f33c\"; }\n\n.fa-greater-than-equal::before {\n content: \"\\f532\"; }\n\n.fa-pallet-box::before {\n content: \"\\e208\"; }\n\n.fa-face-confounded::before {\n content: \"\\e36c\"; }\n\n.fa-shield-halved::before {\n content: \"\\f3ed\"; }\n\n.fa-shield-alt::before {\n content: \"\\f3ed\"; }\n\n.fa-truck-plow::before {\n content: \"\\f7de\"; }\n\n.fa-book-atlas::before {\n content: \"\\f558\"; }\n\n.fa-atlas::before {\n content: \"\\f558\"; }\n\n.fa-virus::before {\n content: \"\\e074\"; }\n\n.fa-grid-round-2::before {\n content: \"\\e5db\"; }\n\n.fa-comment-middle-top::before {\n content: \"\\e14a\"; }\n\n.fa-wave::before {\n content: \"\\e65b\"; }\n\n.fa-envelope-circle-check::before {\n content: \"\\e4e8\"; }\n\n.fa-layer-group::before {\n content: \"\\f5fd\"; }\n\n.fa-restroom-simple::before {\n content: \"\\e23a\"; }\n\n.fa-arrows-to-dot::before {\n content: \"\\e4be\"; }\n\n.fa-border-outer::before {\n content: \"\\f851\"; }\n\n.fa-hashtag-lock::before {\n content: \"\\e415\"; }\n\n.fa-clock-two-thirty::before {\n content: \"\\e35b\"; }\n\n.fa-archway::before {\n content: \"\\f557\"; }\n\n.fa-heart-circle-check::before {\n content: \"\\e4fd\"; }\n\n.fa-house-chimney-crack::before {\n content: \"\\f6f1\"; }\n\n.fa-house-damage::before {\n content: \"\\f6f1\"; }\n\n.fa-file-zipper::before {\n content: \"\\f1c6\"; }\n\n.fa-file-archive::before {\n content: \"\\f1c6\"; }\n\n.fa-ticket-perforated::before {\n content: \"\\e63e\"; }\n\n.fa-heart-half::before {\n content: \"\\e1ab\"; }\n\n.fa-comment-check::before {\n content: \"\\f4ac\"; }\n\n.fa-square::before {\n content: \"\\f0c8\"; }\n\n.fa-memo::before {\n content: \"\\e1d8\"; }\n\n.fa-martini-glass-empty::before {\n content: \"\\f000\"; }\n\n.fa-glass-martini::before {\n content: \"\\f000\"; }\n\n.fa-couch::before {\n content: \"\\f4b8\"; }\n\n.fa-cedi-sign::before {\n content: \"\\e0df\"; }\n\n.fa-italic::before {\n content: \"\\f033\"; }\n\n.fa-glass-citrus::before {\n content: \"\\f869\"; }\n\n.fa-calendar-lines-pen::before {\n content: \"\\e472\"; }\n\n.fa-table-cells-column-lock::before {\n content: \"\\e678\"; }\n\n.fa-church::before {\n content: \"\\f51d\"; }\n\n.fa-person-snowmobiling::before {\n content: \"\\f7d1\"; }\n\n.fa-snowmobile::before {\n content: \"\\f7d1\"; }\n\n.fa-face-hushed::before {\n content: \"\\e37b\"; }\n\n.fa-comments-dollar::before {\n content: \"\\f653\"; }\n\n.fa-tickets-simple::before {\n content: \"\\e659\"; }\n\n.fa-pickaxe::before {\n content: \"\\e5bf\"; }\n\n.fa-link-simple-slash::before {\n content: \"\\e1ce\"; }\n\n.fa-democrat::before {\n content: \"\\f747\"; }\n\n.fa-face-confused::before {\n content: \"\\e36d\"; }\n\n.fa-pinball::before {\n content: \"\\e229\"; }\n\n.fa-z::before {\n content: \"\\5a\"; }\n\n.fa-person-skiing::before {\n content: \"\\f7c9\"; }\n\n.fa-skiing::before {\n content: \"\\f7c9\"; }\n\n.fa-deer::before {\n content: \"\\f78e\"; }\n\n.fa-input-pipe::before {\n content: \"\\e1be\"; }\n\n.fa-road-lock::before {\n content: \"\\e567\"; }\n\n.fa-a::before {\n content: \"\\41\"; }\n\n.fa-bookmark-slash::before {\n content: \"\\e0c2\"; }\n\n.fa-temperature-arrow-down::before {\n content: \"\\e03f\"; }\n\n.fa-temperature-down::before {\n content: \"\\e03f\"; }\n\n.fa-mace::before {\n content: \"\\f6f8\"; }\n\n.fa-feather-pointed::before {\n content: \"\\f56b\"; }\n\n.fa-feather-alt::before {\n content: \"\\f56b\"; }\n\n.fa-sausage::before {\n content: \"\\f820\"; }\n\n.fa-trash-can-clock::before {\n content: \"\\e2aa\"; }\n\n.fa-p::before {\n content: \"\\50\"; }\n\n.fa-broom-wide::before {\n content: \"\\e5d1\"; }\n\n.fa-snowflake::before {\n content: \"\\f2dc\"; }\n\n.fa-stomach::before {\n content: \"\\f623\"; }\n\n.fa-newspaper::before {\n content: \"\\f1ea\"; }\n\n.fa-rectangle-ad::before {\n content: \"\\f641\"; }\n\n.fa-ad::before {\n content: \"\\f641\"; }\n\n.fa-guitar-electric::before {\n content: \"\\f8be\"; }\n\n.fa-arrow-turn-down-right::before {\n content: \"\\e3d6\"; }\n\n.fa-moon-cloud::before {\n content: \"\\f754\"; }\n\n.fa-bread-slice-butter::before {\n content: \"\\e3e1\"; }\n\n.fa-circle-arrow-right::before {\n content: \"\\f0a9\"; }\n\n.fa-arrow-circle-right::before {\n content: \"\\f0a9\"; }\n\n.fa-user-group-crown::before {\n content: \"\\f6a5\"; }\n\n.fa-users-crown::before {\n content: \"\\f6a5\"; }\n\n.fa-circle-i::before {\n content: \"\\e111\"; }\n\n.fa-toilet-paper-check::before {\n content: \"\\e5b2\"; }\n\n.fa-filter-circle-xmark::before {\n content: \"\\e17b\"; }\n\n.fa-locust::before {\n content: \"\\e520\"; }\n\n.fa-sort::before {\n content: \"\\f0dc\"; }\n\n.fa-unsorted::before {\n content: \"\\f0dc\"; }\n\n.fa-list-ol::before {\n content: \"\\f0cb\"; }\n\n.fa-list-1-2::before {\n content: \"\\f0cb\"; }\n\n.fa-list-numeric::before {\n content: \"\\f0cb\"; }\n\n.fa-chart-waterfall::before {\n content: \"\\e0eb\"; }\n\n.fa-sparkle::before {\n content: \"\\e5d6\"; }\n\n.fa-face-party::before {\n content: \"\\e383\"; }\n\n.fa-kidneys::before {\n content: \"\\f5fb\"; }\n\n.fa-wifi-exclamation::before {\n content: \"\\e2cf\"; }\n\n.fa-chart-network::before {\n content: \"\\f78a\"; }\n\n.fa-person-dress-burst::before {\n content: \"\\e544\"; }\n\n.fa-dice-d4::before {\n content: \"\\f6d0\"; }\n\n.fa-money-check-dollar::before {\n content: \"\\f53d\"; }\n\n.fa-money-check-alt::before {\n content: \"\\f53d\"; }\n\n.fa-vector-square::before {\n content: \"\\f5cb\"; }\n\n.fa-bread-slice::before {\n content: \"\\f7ec\"; }\n\n.fa-language::before {\n content: \"\\f1ab\"; }\n\n.fa-wheat-awn-slash::before {\n content: \"\\e338\"; }\n\n.fa-face-kiss-wink-heart::before {\n content: \"\\f598\"; }\n\n.fa-kiss-wink-heart::before {\n content: \"\\f598\"; }\n\n.fa-dagger::before {\n content: \"\\f6cb\"; }\n\n.fa-podium::before {\n content: \"\\f680\"; }\n\n.fa-memo-circle-check::before {\n content: \"\\e1d9\"; }\n\n.fa-route-highway::before {\n content: \"\\f61a\"; }\n\n.fa-down-to-line::before {\n content: \"\\f34a\"; }\n\n.fa-arrow-alt-to-bottom::before {\n content: \"\\f34a\"; }\n\n.fa-filter::before {\n content: \"\\f0b0\"; }\n\n.fa-square-g::before {\n content: \"\\e271\"; }\n\n.fa-circle-phone::before {\n content: \"\\e11b\"; }\n\n.fa-phone-circle::before {\n content: \"\\e11b\"; }\n\n.fa-clipboard-prescription::before {\n content: \"\\f5e8\"; }\n\n.fa-user-nurse-hair::before {\n content: \"\\e45d\"; }\n\n.fa-question::before {\n content: \"\\3f\"; }\n\n.fa-file-signature::before {\n content: \"\\f573\"; }\n\n.fa-toggle-large-on::before {\n content: \"\\e5b1\"; }\n\n.fa-up-down-left-right::before {\n content: \"\\f0b2\"; }\n\n.fa-arrows-alt::before {\n content: \"\\f0b2\"; }\n\n.fa-dryer-heat::before {\n content: \"\\f862\"; }\n\n.fa-dryer-alt::before {\n content: \"\\f862\"; }\n\n.fa-house-chimney-user::before {\n content: \"\\e065\"; }\n\n.fa-hand-holding-heart::before {\n content: \"\\f4be\"; }\n\n.fa-arrow-up-small-big::before {\n content: \"\\f88f\"; }\n\n.fa-sort-size-up-alt::before {\n content: \"\\f88f\"; }\n\n.fa-train-track::before {\n content: \"\\e453\"; }\n\n.fa-puzzle-piece::before {\n content: \"\\f12e\"; }\n\n.fa-money-check::before {\n content: \"\\f53c\"; }\n\n.fa-star-half-stroke::before {\n content: \"\\f5c0\"; }\n\n.fa-star-half-alt::before {\n content: \"\\f5c0\"; }\n\n.fa-file-exclamation::before {\n content: \"\\f31a\"; }\n\n.fa-code::before {\n content: \"\\f121\"; }\n\n.fa-whiskey-glass::before {\n content: \"\\f7a0\"; }\n\n.fa-glass-whiskey::before {\n content: \"\\f7a0\"; }\n\n.fa-moon-stars::before {\n content: \"\\f755\"; }\n\n.fa-building-circle-exclamation::before {\n content: \"\\e4d3\"; }\n\n.fa-clothes-hanger::before {\n content: \"\\e136\"; }\n\n.fa-mobile-notch::before {\n content: \"\\e1ee\"; }\n\n.fa-mobile-iphone::before {\n content: \"\\e1ee\"; }\n\n.fa-magnifying-glass-chart::before {\n content: \"\\e522\"; }\n\n.fa-arrow-up-right-from-square::before {\n content: \"\\f08e\"; }\n\n.fa-external-link::before {\n content: \"\\f08e\"; }\n\n.fa-cubes-stacked::before {\n content: \"\\e4e6\"; }\n\n.fa-images-user::before {\n content: \"\\e1b9\"; }\n\n.fa-won-sign::before {\n content: \"\\f159\"; }\n\n.fa-krw::before {\n content: \"\\f159\"; }\n\n.fa-won::before {\n content: \"\\f159\"; }\n\n.fa-image-polaroid-user::before {\n content: \"\\e1b6\"; }\n\n.fa-virus-covid::before {\n content: \"\\e4a8\"; }\n\n.fa-square-ellipsis::before {\n content: \"\\e26e\"; }\n\n.fa-pie::before {\n content: \"\\f705\"; }\n\n.fa-chess-knight-piece::before {\n content: \"\\f442\"; }\n\n.fa-chess-knight-alt::before {\n content: \"\\f442\"; }\n\n.fa-austral-sign::before {\n content: \"\\e0a9\"; }\n\n.fa-cloud-plus::before {\n content: \"\\e35e\"; }\n\n.fa-f::before {\n content: \"\\46\"; }\n\n.fa-leaf::before {\n content: \"\\f06c\"; }\n\n.fa-bed-bunk::before {\n content: \"\\f8f8\"; }\n\n.fa-road::before {\n content: \"\\f018\"; }\n\n.fa-taxi::before {\n content: \"\\f1ba\"; }\n\n.fa-cab::before {\n content: \"\\f1ba\"; }\n\n.fa-person-circle-plus::before {\n content: \"\\e541\"; }\n\n.fa-chart-pie::before {\n content: \"\\f200\"; }\n\n.fa-pie-chart::before {\n content: \"\\f200\"; }\n\n.fa-bolt-lightning::before {\n content: \"\\e0b7\"; }\n\n.fa-clock-eight::before {\n content: \"\\e345\"; }\n\n.fa-sack-xmark::before {\n content: \"\\e56a\"; }\n\n.fa-file-xls::before {\n content: \"\\e64d\"; }\n\n.fa-file-excel::before {\n content: \"\\f1c3\"; }\n\n.fa-file-contract::before {\n content: \"\\f56c\"; }\n\n.fa-fish-fins::before {\n content: \"\\e4f2\"; }\n\n.fa-circle-q::before {\n content: \"\\e11e\"; }\n\n.fa-building-flag::before {\n content: \"\\e4d5\"; }\n\n.fa-face-grin-beam::before {\n content: \"\\f582\"; }\n\n.fa-grin-beam::before {\n content: \"\\f582\"; }\n\n.fa-object-ungroup::before {\n content: \"\\f248\"; }\n\n.fa-face-disguise::before {\n content: \"\\e370\"; }\n\n.fa-circle-arrow-down-right::before {\n content: \"\\e0fa\"; }\n\n.fa-alien-8bit::before {\n content: \"\\f8f6\"; }\n\n.fa-alien-monster::before {\n content: \"\\f8f6\"; }\n\n.fa-hand-point-ribbon::before {\n content: \"\\e1a6\"; }\n\n.fa-poop::before {\n content: \"\\f619\"; }\n\n.fa-object-exclude::before {\n content: \"\\e49c\"; }\n\n.fa-telescope::before {\n content: \"\\e03e\"; }\n\n.fa-location-pin::before {\n content: \"\\f041\"; }\n\n.fa-map-marker::before {\n content: \"\\f041\"; }\n\n.fa-square-list::before {\n content: \"\\e489\"; }\n\n.fa-kaaba::before {\n content: \"\\f66b\"; }\n\n.fa-toilet-paper::before {\n content: \"\\f71e\"; }\n\n.fa-helmet-safety::before {\n content: \"\\f807\"; }\n\n.fa-hard-hat::before {\n content: \"\\f807\"; }\n\n.fa-hat-hard::before {\n content: \"\\f807\"; }\n\n.fa-comment-code::before {\n content: \"\\e147\"; }\n\n.fa-sim-cards::before {\n content: \"\\e251\"; }\n\n.fa-starship::before {\n content: \"\\e039\"; }\n\n.fa-eject::before {\n content: \"\\f052\"; }\n\n.fa-circle-right::before {\n content: \"\\f35a\"; }\n\n.fa-arrow-alt-circle-right::before {\n content: \"\\f35a\"; }\n\n.fa-plane-circle-check::before {\n content: \"\\e555\"; }\n\n.fa-seal::before {\n content: \"\\e241\"; }\n\n.fa-user-cowboy::before {\n content: \"\\f8ea\"; }\n\n.fa-hexagon-vertical-nft::before {\n content: \"\\e505\"; }\n\n.fa-face-rolling-eyes::before {\n content: \"\\f5a5\"; }\n\n.fa-meh-rolling-eyes::before {\n content: \"\\f5a5\"; }\n\n.fa-bread-loaf::before {\n content: \"\\f7eb\"; }\n\n.fa-rings-wedding::before {\n content: \"\\f81b\"; }\n\n.fa-object-group::before {\n content: \"\\f247\"; }\n\n.fa-french-fries::before {\n content: \"\\f803\"; }\n\n.fa-chart-line::before {\n content: \"\\f201\"; }\n\n.fa-line-chart::before {\n content: \"\\f201\"; }\n\n.fa-calendar-arrow-down::before {\n content: \"\\e0d0\"; }\n\n.fa-calendar-download::before {\n content: \"\\e0d0\"; }\n\n.fa-send-back::before {\n content: \"\\f87e\"; }\n\n.fa-mask-ventilator::before {\n content: \"\\e524\"; }\n\n.fa-tickets::before {\n content: \"\\e658\"; }\n\n.fa-signature-lock::before {\n content: \"\\e3ca\"; }\n\n.fa-arrow-right::before {\n content: \"\\f061\"; }\n\n.fa-signs-post::before {\n content: \"\\f277\"; }\n\n.fa-map-signs::before {\n content: \"\\f277\"; }\n\n.fa-octagon-plus::before {\n content: \"\\f301\"; }\n\n.fa-plus-octagon::before {\n content: \"\\f301\"; }\n\n.fa-cash-register::before {\n content: \"\\f788\"; }\n\n.fa-person-circle-question::before {\n content: \"\\e542\"; }\n\n.fa-melon-slice::before {\n content: \"\\e311\"; }\n\n.fa-space-station-moon::before {\n content: \"\\e033\"; }\n\n.fa-message-smile::before {\n content: \"\\f4aa\"; }\n\n.fa-comment-alt-smile::before {\n content: \"\\f4aa\"; }\n\n.fa-cup-straw::before {\n content: \"\\e363\"; }\n\n.fa-left-from-line::before {\n content: \"\\f348\"; }\n\n.fa-arrow-alt-from-right::before {\n content: \"\\f348\"; }\n\n.fa-h::before {\n content: \"\\48\"; }\n\n.fa-basket-shopping-simple::before {\n content: \"\\e0af\"; }\n\n.fa-shopping-basket-alt::before {\n content: \"\\e0af\"; }\n\n.fa-hands-holding-heart::before {\n content: \"\\f4c3\"; }\n\n.fa-hands-heart::before {\n content: \"\\f4c3\"; }\n\n.fa-clock-nine::before {\n content: \"\\e34c\"; }\n\n.fa-hammer-brush::before {\n content: \"\\e620\"; }\n\n.fa-tarp::before {\n content: \"\\e57b\"; }\n\n.fa-face-sleepy::before {\n content: \"\\e38e\"; }\n\n.fa-hand-horns::before {\n content: \"\\e1a9\"; }\n\n.fa-screwdriver-wrench::before {\n content: \"\\f7d9\"; }\n\n.fa-tools::before {\n content: \"\\f7d9\"; }\n\n.fa-arrows-to-eye::before {\n content: \"\\e4bf\"; }\n\n.fa-circle-three-quarters::before {\n content: \"\\e125\"; }\n\n.fa-trophy-star::before {\n content: \"\\f2eb\"; }\n\n.fa-trophy-alt::before {\n content: \"\\f2eb\"; }\n\n.fa-plug-circle-bolt::before {\n content: \"\\e55b\"; }\n\n.fa-face-thermometer::before {\n content: \"\\e39a\"; }\n\n.fa-grid-round-4::before {\n content: \"\\e5dd\"; }\n\n.fa-sign-posts-wrench::before {\n content: \"\\e626\"; }\n\n.fa-shirt-running::before {\n content: \"\\e3c8\"; }\n\n.fa-book-circle-arrow-up::before {\n content: \"\\e0bd\"; }\n\n.fa-face-nauseated::before {\n content: \"\\e381\"; }\n\n.fa-heart::before {\n content: \"\\f004\"; }\n\n.fa-file-chart-pie::before {\n content: \"\\f65a\"; }\n\n.fa-mars-and-venus::before {\n content: \"\\f224\"; }\n\n.fa-house-user::before {\n content: \"\\e1b0\"; }\n\n.fa-home-user::before {\n content: \"\\e1b0\"; }\n\n.fa-circle-arrow-down-left::before {\n content: \"\\e0f9\"; }\n\n.fa-dumpster-fire::before {\n content: \"\\f794\"; }\n\n.fa-hexagon-minus::before {\n content: \"\\f307\"; }\n\n.fa-minus-hexagon::before {\n content: \"\\f307\"; }\n\n.fa-left-to-line::before {\n content: \"\\f34b\"; }\n\n.fa-arrow-alt-to-left::before {\n content: \"\\f34b\"; }\n\n.fa-house-crack::before {\n content: \"\\e3b1\"; }\n\n.fa-paw-simple::before {\n content: \"\\f701\"; }\n\n.fa-paw-alt::before {\n content: \"\\f701\"; }\n\n.fa-arrow-left-long-to-line::before {\n content: \"\\e3d4\"; }\n\n.fa-brackets-round::before {\n content: \"\\e0c5\"; }\n\n.fa-parentheses::before {\n content: \"\\e0c5\"; }\n\n.fa-martini-glass-citrus::before {\n content: \"\\f561\"; }\n\n.fa-cocktail::before {\n content: \"\\f561\"; }\n\n.fa-user-shakespeare::before {\n content: \"\\e2c2\"; }\n\n.fa-arrow-right-to-arc::before {\n content: \"\\e4b2\"; }\n\n.fa-face-surprise::before {\n content: \"\\f5c2\"; }\n\n.fa-surprise::before {\n content: \"\\f5c2\"; }\n\n.fa-bottle-water::before {\n content: \"\\e4c5\"; }\n\n.fa-circle-pause::before {\n content: \"\\f28b\"; }\n\n.fa-pause-circle::before {\n content: \"\\f28b\"; }\n\n.fa-gauge-circle-plus::before {\n content: \"\\e498\"; }\n\n.fa-folders::before {\n content: \"\\f660\"; }\n\n.fa-angel::before {\n content: \"\\f779\"; }\n\n.fa-value-absolute::before {\n content: \"\\f6a6\"; }\n\n.fa-rabbit::before {\n content: \"\\f708\"; }\n\n.fa-toilet-paper-slash::before {\n content: \"\\e072\"; }\n\n.fa-circle-euro::before {\n content: \"\\e5ce\"; }\n\n.fa-apple-whole::before {\n content: \"\\f5d1\"; }\n\n.fa-apple-alt::before {\n content: \"\\f5d1\"; }\n\n.fa-kitchen-set::before {\n content: \"\\e51a\"; }\n\n.fa-diamond-half::before {\n content: \"\\e5b7\"; }\n\n.fa-lock-keyhole::before {\n content: \"\\f30d\"; }\n\n.fa-lock-alt::before {\n content: \"\\f30d\"; }\n\n.fa-r::before {\n content: \"\\52\"; }\n\n.fa-temperature-quarter::before {\n content: \"\\f2ca\"; }\n\n.fa-temperature-1::before {\n content: \"\\f2ca\"; }\n\n.fa-thermometer-1::before {\n content: \"\\f2ca\"; }\n\n.fa-thermometer-quarter::before {\n content: \"\\f2ca\"; }\n\n.fa-square-info::before {\n content: \"\\f30f\"; }\n\n.fa-info-square::before {\n content: \"\\f30f\"; }\n\n.fa-wifi-slash::before {\n content: \"\\f6ac\"; }\n\n.fa-toilet-paper-xmark::before {\n content: \"\\e5b3\"; }\n\n.fa-hands-holding-dollar::before {\n content: \"\\f4c5\"; }\n\n.fa-hands-usd::before {\n content: \"\\f4c5\"; }\n\n.fa-cube::before {\n content: \"\\f1b2\"; }\n\n.fa-arrow-down-triangle-square::before {\n content: \"\\f888\"; }\n\n.fa-sort-shapes-down::before {\n content: \"\\f888\"; }\n\n.fa-bitcoin-sign::before {\n content: \"\\e0b4\"; }\n\n.fa-shutters::before {\n content: \"\\e449\"; }\n\n.fa-shield-dog::before {\n content: \"\\e573\"; }\n\n.fa-solar-panel::before {\n content: \"\\f5ba\"; }\n\n.fa-lock-open::before {\n content: \"\\f3c1\"; }\n\n.fa-table-tree::before {\n content: \"\\e293\"; }\n\n.fa-house-chimney-heart::before {\n content: \"\\e1b2\"; }\n\n.fa-tally-3::before {\n content: \"\\e296\"; }\n\n.fa-elevator::before {\n content: \"\\e16d\"; }\n\n.fa-money-bill-transfer::before {\n content: \"\\e528\"; }\n\n.fa-money-bill-trend-up::before {\n content: \"\\e529\"; }\n\n.fa-house-flood-water-circle-arrow-right::before {\n content: \"\\e50f\"; }\n\n.fa-square-poll-horizontal::before {\n content: \"\\f682\"; }\n\n.fa-poll-h::before {\n content: \"\\f682\"; }\n\n.fa-circle::before {\n content: \"\\f111\"; }\n\n.fa-left-to-bracket::before {\n content: \"\\e66d\"; }\n\n.fa-cart-circle-exclamation::before {\n content: \"\\e3f2\"; }\n\n.fa-sword::before {\n content: \"\\f71c\"; }\n\n.fa-backward-fast::before {\n content: \"\\f049\"; }\n\n.fa-fast-backward::before {\n content: \"\\f049\"; }\n\n.fa-recycle::before {\n content: \"\\f1b8\"; }\n\n.fa-user-astronaut::before {\n content: \"\\f4fb\"; }\n\n.fa-interrobang::before {\n content: \"\\e5ba\"; }\n\n.fa-plane-slash::before {\n content: \"\\e069\"; }\n\n.fa-circle-dashed::before {\n content: \"\\e105\"; }\n\n.fa-trademark::before {\n content: \"\\f25c\"; }\n\n.fa-basketball::before {\n content: \"\\f434\"; }\n\n.fa-basketball-ball::before {\n content: \"\\f434\"; }\n\n.fa-fork-knife::before {\n content: \"\\f2e6\"; }\n\n.fa-utensils-alt::before {\n content: \"\\f2e6\"; }\n\n.fa-satellite-dish::before {\n content: \"\\f7c0\"; }\n\n.fa-badge-check::before {\n content: \"\\f336\"; }\n\n.fa-circle-up::before {\n content: \"\\f35b\"; }\n\n.fa-arrow-alt-circle-up::before {\n content: \"\\f35b\"; }\n\n.fa-slider::before {\n content: \"\\e252\"; }\n\n.fa-mobile-screen-button::before {\n content: \"\\f3cd\"; }\n\n.fa-mobile-alt::before {\n content: \"\\f3cd\"; }\n\n.fa-clock-one-thirty::before {\n content: \"\\e34f\"; }\n\n.fa-inbox-out::before {\n content: \"\\f311\"; }\n\n.fa-inbox-arrow-up::before {\n content: \"\\f311\"; }\n\n.fa-cloud-slash::before {\n content: \"\\e137\"; }\n\n.fa-volume-high::before {\n content: \"\\f028\"; }\n\n.fa-volume-up::before {\n content: \"\\f028\"; }\n\n.fa-users-rays::before {\n content: \"\\e593\"; }\n\n.fa-wallet::before {\n content: \"\\f555\"; }\n\n.fa-octagon-check::before {\n content: \"\\e426\"; }\n\n.fa-flatbread-stuffed::before {\n content: \"\\e40c\"; }\n\n.fa-clipboard-check::before {\n content: \"\\f46c\"; }\n\n.fa-cart-circle-plus::before {\n content: \"\\e3f3\"; }\n\n.fa-truck-clock::before {\n content: \"\\f48c\"; }\n\n.fa-shipping-timed::before {\n content: \"\\f48c\"; }\n\n.fa-pool-8-ball::before {\n content: \"\\e3c5\"; }\n\n.fa-file-audio::before {\n content: \"\\f1c7\"; }\n\n.fa-turn-down-left::before {\n content: \"\\e331\"; }\n\n.fa-lock-hashtag::before {\n content: \"\\e423\"; }\n\n.fa-chart-radar::before {\n content: \"\\e0e7\"; }\n\n.fa-staff::before {\n content: \"\\f71b\"; }\n\n.fa-burger::before {\n content: \"\\f805\"; }\n\n.fa-hamburger::before {\n content: \"\\f805\"; }\n\n.fa-utility-pole::before {\n content: \"\\e2c3\"; }\n\n.fa-transporter-6::before {\n content: \"\\e2a7\"; }\n\n.fa-arrow-turn-left::before {\n content: \"\\e632\"; }\n\n.fa-wrench::before {\n content: \"\\f0ad\"; }\n\n.fa-bugs::before {\n content: \"\\e4d0\"; }\n\n.fa-vector-polygon::before {\n content: \"\\e2c7\"; }\n\n.fa-diagram-nested::before {\n content: \"\\e157\"; }\n\n.fa-rupee-sign::before {\n content: \"\\f156\"; }\n\n.fa-rupee::before {\n content: \"\\f156\"; }\n\n.fa-file-image::before {\n content: \"\\f1c5\"; }\n\n.fa-circle-question::before {\n content: \"\\f059\"; }\n\n.fa-question-circle::before {\n content: \"\\f059\"; }\n\n.fa-tickets-perforated::before {\n content: \"\\e63f\"; }\n\n.fa-image-user::before {\n content: \"\\e1b8\"; }\n\n.fa-buoy::before {\n content: \"\\e5b5\"; }\n\n.fa-plane-departure::before {\n content: \"\\f5b0\"; }\n\n.fa-handshake-slash::before {\n content: \"\\e060\"; }\n\n.fa-book-bookmark::before {\n content: \"\\e0bb\"; }\n\n.fa-border-center-h::before {\n content: \"\\f89c\"; }\n\n.fa-can-food::before {\n content: \"\\e3e6\"; }\n\n.fa-typewriter::before {\n content: \"\\f8e7\"; }\n\n.fa-arrow-right-from-arc::before {\n content: \"\\e4b1\"; }\n\n.fa-circle-k::before {\n content: \"\\e113\"; }\n\n.fa-face-hand-over-mouth::before {\n content: \"\\e378\"; }\n\n.fa-popcorn::before {\n content: \"\\f819\"; }\n\n.fa-house-water::before {\n content: \"\\f74f\"; }\n\n.fa-house-flood::before {\n content: \"\\f74f\"; }\n\n.fa-object-subtract::before {\n content: \"\\e49e\"; }\n\n.fa-code-branch::before {\n content: \"\\f126\"; }\n\n.fa-warehouse-full::before {\n content: \"\\f495\"; }\n\n.fa-warehouse-alt::before {\n content: \"\\f495\"; }\n\n.fa-hat-cowboy::before {\n content: \"\\f8c0\"; }\n\n.fa-bridge::before {\n content: \"\\e4c8\"; }\n\n.fa-phone-flip::before {\n content: \"\\f879\"; }\n\n.fa-phone-alt::before {\n content: \"\\f879\"; }\n\n.fa-arrow-down-from-dotted-line::before {\n content: \"\\e090\"; }\n\n.fa-file-doc::before {\n content: \"\\e5ed\"; }\n\n.fa-square-quarters::before {\n content: \"\\e44e\"; }\n\n.fa-truck-front::before {\n content: \"\\e2b7\"; }\n\n.fa-cat::before {\n content: \"\\f6be\"; }\n\n.fa-trash-xmark::before {\n content: \"\\e2b4\"; }\n\n.fa-circle-caret-left::before {\n content: \"\\f32e\"; }\n\n.fa-caret-circle-left::before {\n content: \"\\f32e\"; }\n\n.fa-files::before {\n content: \"\\e178\"; }\n\n.fa-anchor-circle-exclamation::before {\n content: \"\\e4ab\"; }\n\n.fa-face-clouds::before {\n content: \"\\e47d\"; }\n\n.fa-user-crown::before {\n content: \"\\f6a4\"; }\n\n.fa-basket-shopping-plus::before {\n content: \"\\e653\"; }\n\n.fa-truck-field::before {\n content: \"\\e58d\"; }\n\n.fa-route::before {\n content: \"\\f4d7\"; }\n\n.fa-cart-circle-check::before {\n content: \"\\e3f1\"; }\n\n.fa-clipboard-question::before {\n content: \"\\e4e3\"; }\n\n.fa-panorama::before {\n content: \"\\e209\"; }\n\n.fa-comment-medical::before {\n content: \"\\f7f5\"; }\n\n.fa-teeth-open::before {\n content: \"\\f62f\"; }\n\n.fa-user-tie-hair-long::before {\n content: \"\\e460\"; }\n\n.fa-file-circle-minus::before {\n content: \"\\e4ed\"; }\n\n.fa-head-side-medical::before {\n content: \"\\f809\"; }\n\n.fa-arrow-turn-right::before {\n content: \"\\e635\"; }\n\n.fa-tags::before {\n content: \"\\f02c\"; }\n\n.fa-wine-glass::before {\n content: \"\\f4e3\"; }\n\n.fa-forward-fast::before {\n content: \"\\f050\"; }\n\n.fa-fast-forward::before {\n content: \"\\f050\"; }\n\n.fa-face-meh-blank::before {\n content: \"\\f5a4\"; }\n\n.fa-meh-blank::before {\n content: \"\\f5a4\"; }\n\n.fa-user-robot::before {\n content: \"\\e04b\"; }\n\n.fa-square-parking::before {\n content: \"\\f540\"; }\n\n.fa-parking::before {\n content: \"\\f540\"; }\n\n.fa-card-diamond::before {\n content: \"\\e3ea\"; }\n\n.fa-face-zipper::before {\n content: \"\\e3a5\"; }\n\n.fa-face-raised-eyebrow::before {\n content: \"\\e388\"; }\n\n.fa-house-signal::before {\n content: \"\\e012\"; }\n\n.fa-square-chevron-up::before {\n content: \"\\f32c\"; }\n\n.fa-chevron-square-up::before {\n content: \"\\f32c\"; }\n\n.fa-bars-progress::before {\n content: \"\\f828\"; }\n\n.fa-tasks-alt::before {\n content: \"\\f828\"; }\n\n.fa-faucet-drip::before {\n content: \"\\e006\"; }\n\n.fa-arrows-to-line::before {\n content: \"\\e0a7\"; }\n\n.fa-dolphin::before {\n content: \"\\e168\"; }\n\n.fa-arrow-up-right::before {\n content: \"\\e09f\"; }\n\n.fa-circle-r::before {\n content: \"\\e120\"; }\n\n.fa-cart-flatbed::before {\n content: \"\\f474\"; }\n\n.fa-dolly-flatbed::before {\n content: \"\\f474\"; }\n\n.fa-ban-smoking::before {\n content: \"\\f54d\"; }\n\n.fa-smoking-ban::before {\n content: \"\\f54d\"; }\n\n.fa-circle-sort-up::before {\n content: \"\\e032\"; }\n\n.fa-sort-circle-up::before {\n content: \"\\e032\"; }\n\n.fa-terminal::before {\n content: \"\\f120\"; }\n\n.fa-mobile-button::before {\n content: \"\\f10b\"; }\n\n.fa-house-medical-flag::before {\n content: \"\\e514\"; }\n\n.fa-basket-shopping::before {\n content: \"\\f291\"; }\n\n.fa-shopping-basket::before {\n content: \"\\f291\"; }\n\n.fa-tape::before {\n content: \"\\f4db\"; }\n\n.fa-chestnut::before {\n content: \"\\e3f6\"; }\n\n.fa-bus-simple::before {\n content: \"\\f55e\"; }\n\n.fa-bus-alt::before {\n content: \"\\f55e\"; }\n\n.fa-eye::before {\n content: \"\\f06e\"; }\n\n.fa-face-sad-cry::before {\n content: \"\\f5b3\"; }\n\n.fa-sad-cry::before {\n content: \"\\f5b3\"; }\n\n.fa-heat::before {\n content: \"\\e00c\"; }\n\n.fa-ticket-airline::before {\n content: \"\\e29a\"; }\n\n.fa-ticket-perforated-plane::before {\n content: \"\\e29a\"; }\n\n.fa-ticket-plane::before {\n content: \"\\e29a\"; }\n\n.fa-boot-heeled::before {\n content: \"\\e33f\"; }\n\n.fa-arrows-minimize::before {\n content: \"\\e0a5\"; }\n\n.fa-compress-arrows::before {\n content: \"\\e0a5\"; }\n\n.fa-audio-description::before {\n content: \"\\f29e\"; }\n\n.fa-person-military-to-person::before {\n content: \"\\e54c\"; }\n\n.fa-file-shield::before {\n content: \"\\e4f0\"; }\n\n.fa-hexagon::before {\n content: \"\\f312\"; }\n\n.fa-manhole::before {\n content: \"\\e1d6\"; }\n\n.fa-user-slash::before {\n content: \"\\f506\"; }\n\n.fa-pen::before {\n content: \"\\f304\"; }\n\n.fa-tower-observation::before {\n content: \"\\e586\"; }\n\n.fa-floppy-disks::before {\n content: \"\\e183\"; }\n\n.fa-toilet-paper-blank-under::before {\n content: \"\\e29f\"; }\n\n.fa-toilet-paper-reverse-alt::before {\n content: \"\\e29f\"; }\n\n.fa-file-code::before {\n content: \"\\f1c9\"; }\n\n.fa-signal::before {\n content: \"\\f012\"; }\n\n.fa-signal-5::before {\n content: \"\\f012\"; }\n\n.fa-signal-perfect::before {\n content: \"\\f012\"; }\n\n.fa-pump::before {\n content: \"\\e442\"; }\n\n.fa-bus::before {\n content: \"\\f207\"; }\n\n.fa-heart-circle-xmark::before {\n content: \"\\e501\"; }\n\n.fa-arrow-up-left-from-circle::before {\n content: \"\\e09e\"; }\n\n.fa-house-chimney::before {\n content: \"\\e3af\"; }\n\n.fa-home-lg::before {\n content: \"\\e3af\"; }\n\n.fa-window-maximize::before {\n content: \"\\f2d0\"; }\n\n.fa-dryer::before {\n content: \"\\f861\"; }\n\n.fa-face-frown::before {\n content: \"\\f119\"; }\n\n.fa-frown::before {\n content: \"\\f119\"; }\n\n.fa-chess-bishop-piece::before {\n content: \"\\f43b\"; }\n\n.fa-chess-bishop-alt::before {\n content: \"\\f43b\"; }\n\n.fa-shirt-tank-top::before {\n content: \"\\e3c9\"; }\n\n.fa-diploma::before {\n content: \"\\f5ea\"; }\n\n.fa-scroll-ribbon::before {\n content: \"\\f5ea\"; }\n\n.fa-screencast::before {\n content: \"\\e23e\"; }\n\n.fa-walker::before {\n content: \"\\f831\"; }\n\n.fa-prescription::before {\n content: \"\\f5b1\"; }\n\n.fa-shop::before {\n content: \"\\f54f\"; }\n\n.fa-store-alt::before {\n content: \"\\f54f\"; }\n\n.fa-floppy-disk::before {\n content: \"\\f0c7\"; }\n\n.fa-save::before {\n content: \"\\f0c7\"; }\n\n.fa-vihara::before {\n content: \"\\f6a7\"; }\n\n.fa-face-kiss-closed-eyes::before {\n content: \"\\e37d\"; }\n\n.fa-scale-unbalanced::before {\n content: \"\\f515\"; }\n\n.fa-balance-scale-left::before {\n content: \"\\f515\"; }\n\n.fa-file-user::before {\n content: \"\\f65c\"; }\n\n.fa-user-police-tie::before {\n content: \"\\e334\"; }\n\n.fa-face-tongue-money::before {\n content: \"\\e39d\"; }\n\n.fa-tennis-ball::before {\n content: \"\\f45e\"; }\n\n.fa-square-l::before {\n content: \"\\e275\"; }\n\n.fa-sort-up::before {\n content: \"\\f0de\"; }\n\n.fa-sort-asc::before {\n content: \"\\f0de\"; }\n\n.fa-calendar-arrow-up::before {\n content: \"\\e0d1\"; }\n\n.fa-calendar-upload::before {\n content: \"\\e0d1\"; }\n\n.fa-comment-dots::before {\n content: \"\\f4ad\"; }\n\n.fa-commenting::before {\n content: \"\\f4ad\"; }\n\n.fa-plant-wilt::before {\n content: \"\\e5aa\"; }\n\n.fa-scarf::before {\n content: \"\\f7c1\"; }\n\n.fa-album-circle-plus::before {\n content: \"\\e48c\"; }\n\n.fa-user-nurse-hair-long::before {\n content: \"\\e45e\"; }\n\n.fa-diamond::before {\n content: \"\\f219\"; }\n\n.fa-square-left::before {\n content: \"\\f351\"; }\n\n.fa-arrow-alt-square-left::before {\n content: \"\\f351\"; }\n\n.fa-face-grin-squint::before {\n content: \"\\f585\"; }\n\n.fa-grin-squint::before {\n content: \"\\f585\"; }\n\n.fa-circle-ellipsis-vertical::before {\n content: \"\\e10b\"; }\n\n.fa-hand-holding-dollar::before {\n content: \"\\f4c0\"; }\n\n.fa-hand-holding-usd::before {\n content: \"\\f4c0\"; }\n\n.fa-grid-dividers::before {\n content: \"\\e3ad\"; }\n\n.fa-bacterium::before {\n content: \"\\e05a\"; }\n\n.fa-hand-pointer::before {\n content: \"\\f25a\"; }\n\n.fa-drum-steelpan::before {\n content: \"\\f56a\"; }\n\n.fa-hand-scissors::before {\n content: \"\\f257\"; }\n\n.fa-hands-praying::before {\n content: \"\\f684\"; }\n\n.fa-praying-hands::before {\n content: \"\\f684\"; }\n\n.fa-face-pensive::before {\n content: \"\\e384\"; }\n\n.fa-user-music::before {\n content: \"\\f8eb\"; }\n\n.fa-arrow-rotate-right::before {\n content: \"\\f01e\"; }\n\n.fa-arrow-right-rotate::before {\n content: \"\\f01e\"; }\n\n.fa-arrow-rotate-forward::before {\n content: \"\\f01e\"; }\n\n.fa-redo::before {\n content: \"\\f01e\"; }\n\n.fa-messages-dollar::before {\n content: \"\\f652\"; }\n\n.fa-comments-alt-dollar::before {\n content: \"\\f652\"; }\n\n.fa-sensor-on::before {\n content: \"\\e02b\"; }\n\n.fa-balloon::before {\n content: \"\\e2e3\"; }\n\n.fa-biohazard::before {\n content: \"\\f780\"; }\n\n.fa-chess-queen-piece::before {\n content: \"\\f446\"; }\n\n.fa-chess-queen-alt::before {\n content: \"\\f446\"; }\n\n.fa-location-crosshairs::before {\n content: \"\\f601\"; }\n\n.fa-location::before {\n content: \"\\f601\"; }\n\n.fa-mars-double::before {\n content: \"\\f227\"; }\n\n.fa-left-from-bracket::before {\n content: \"\\e66c\"; }\n\n.fa-house-person-leave::before {\n content: \"\\e00f\"; }\n\n.fa-house-leave::before {\n content: \"\\e00f\"; }\n\n.fa-house-person-depart::before {\n content: \"\\e00f\"; }\n\n.fa-ruler-triangle::before {\n content: \"\\f61c\"; }\n\n.fa-card-club::before {\n content: \"\\e3e9\"; }\n\n.fa-child-dress::before {\n content: \"\\e59c\"; }\n\n.fa-users-between-lines::before {\n content: \"\\e591\"; }\n\n.fa-lungs-virus::before {\n content: \"\\e067\"; }\n\n.fa-spinner-third::before {\n content: \"\\f3f4\"; }\n\n.fa-face-grin-tears::before {\n content: \"\\f588\"; }\n\n.fa-grin-tears::before {\n content: \"\\f588\"; }\n\n.fa-phone::before {\n content: \"\\f095\"; }\n\n.fa-computer-mouse-scrollwheel::before {\n content: \"\\f8cd\"; }\n\n.fa-mouse-alt::before {\n content: \"\\f8cd\"; }\n\n.fa-calendar-xmark::before {\n content: \"\\f273\"; }\n\n.fa-calendar-times::before {\n content: \"\\f273\"; }\n\n.fa-child-reaching::before {\n content: \"\\e59d\"; }\n\n.fa-table-layout::before {\n content: \"\\e290\"; }\n\n.fa-narwhal::before {\n content: \"\\f6fe\"; }\n\n.fa-ramp-loading::before {\n content: \"\\f4d4\"; }\n\n.fa-calendar-circle-plus::before {\n content: \"\\e470\"; }\n\n.fa-toothbrush::before {\n content: \"\\f635\"; }\n\n.fa-border-inner::before {\n content: \"\\f84e\"; }\n\n.fa-paw-claws::before {\n content: \"\\f702\"; }\n\n.fa-kiwi-fruit::before {\n content: \"\\e30c\"; }\n\n.fa-traffic-light-slow::before {\n content: \"\\f639\"; }\n\n.fa-rectangle-code::before {\n content: \"\\e322\"; }\n\n.fa-head-side-virus::before {\n content: \"\\e064\"; }\n\n.fa-keyboard-brightness::before {\n content: \"\\e1c0\"; }\n\n.fa-books-medical::before {\n content: \"\\f7e8\"; }\n\n.fa-lightbulb-slash::before {\n content: \"\\f673\"; }\n\n.fa-house-blank::before {\n content: \"\\e487\"; }\n\n.fa-home-blank::before {\n content: \"\\e487\"; }\n\n.fa-square-5::before {\n content: \"\\e25a\"; }\n\n.fa-square-heart::before {\n content: \"\\f4c8\"; }\n\n.fa-heart-square::before {\n content: \"\\f4c8\"; }\n\n.fa-puzzle::before {\n content: \"\\e443\"; }\n\n.fa-user-gear::before {\n content: \"\\f4fe\"; }\n\n.fa-user-cog::before {\n content: \"\\f4fe\"; }\n\n.fa-pipe-circle-check::before {\n content: \"\\e436\"; }\n\n.fa-arrow-up-1-9::before {\n content: \"\\f163\"; }\n\n.fa-sort-numeric-up::before {\n content: \"\\f163\"; }\n\n.fa-octagon-exclamation::before {\n content: \"\\e204\"; }\n\n.fa-dial-low::before {\n content: \"\\e15d\"; }\n\n.fa-door-closed::before {\n content: \"\\f52a\"; }\n\n.fa-laptop-mobile::before {\n content: \"\\f87a\"; }\n\n.fa-phone-laptop::before {\n content: \"\\f87a\"; }\n\n.fa-conveyor-belt-boxes::before {\n content: \"\\f46f\"; }\n\n.fa-conveyor-belt-alt::before {\n content: \"\\f46f\"; }\n\n.fa-shield-virus::before {\n content: \"\\e06c\"; }\n\n.fa-starfighter-twin-ion-engine-advanced::before {\n content: \"\\e28e\"; }\n\n.fa-starfighter-alt-advanced::before {\n content: \"\\e28e\"; }\n\n.fa-dice-six::before {\n content: \"\\f526\"; }\n\n.fa-starfighter-twin-ion-engine::before {\n content: \"\\e038\"; }\n\n.fa-starfighter-alt::before {\n content: \"\\e038\"; }\n\n.fa-rocket-launch::before {\n content: \"\\e027\"; }\n\n.fa-mosquito-net::before {\n content: \"\\e52c\"; }\n\n.fa-vent-damper::before {\n content: \"\\e465\"; }\n\n.fa-bridge-water::before {\n content: \"\\e4ce\"; }\n\n.fa-ban-bug::before {\n content: \"\\f7f9\"; }\n\n.fa-debug::before {\n content: \"\\f7f9\"; }\n\n.fa-person-booth::before {\n content: \"\\f756\"; }\n\n.fa-text-width::before {\n content: \"\\f035\"; }\n\n.fa-garage-car::before {\n content: \"\\e00a\"; }\n\n.fa-square-kanban::before {\n content: \"\\e488\"; }\n\n.fa-hat-wizard::before {\n content: \"\\f6e8\"; }\n\n.fa-chart-kanban::before {\n content: \"\\e64f\"; }\n\n.fa-pen-fancy::before {\n content: \"\\f5ac\"; }\n\n.fa-coffee-pot::before {\n content: \"\\e002\"; }\n\n.fa-mouse-field::before {\n content: \"\\e5a8\"; }\n\n.fa-person-digging::before {\n content: \"\\f85e\"; }\n\n.fa-digging::before {\n content: \"\\f85e\"; }\n\n.fa-shower-down::before {\n content: \"\\e24d\"; }\n\n.fa-shower-alt::before {\n content: \"\\e24d\"; }\n\n.fa-box-circle-check::before {\n content: \"\\e0c4\"; }\n\n.fa-brightness::before {\n content: \"\\e0c9\"; }\n\n.fa-car-side-bolt::before {\n content: \"\\e344\"; }\n\n.fa-file-xml::before {\n content: \"\\e654\"; }\n\n.fa-ornament::before {\n content: \"\\f7b8\"; }\n\n.fa-phone-arrow-down-left::before {\n content: \"\\e223\"; }\n\n.fa-phone-arrow-down::before {\n content: \"\\e223\"; }\n\n.fa-phone-incoming::before {\n content: \"\\e223\"; }\n\n.fa-cloud-word::before {\n content: \"\\e138\"; }\n\n.fa-hand-fingers-crossed::before {\n content: \"\\e1a3\"; }\n\n.fa-trash::before {\n content: \"\\f1f8\"; }\n\n.fa-gauge-simple::before {\n content: \"\\f629\"; }\n\n.fa-gauge-simple-med::before {\n content: \"\\f629\"; }\n\n.fa-tachometer-average::before {\n content: \"\\f629\"; }\n\n.fa-arrow-down-small-big::before {\n content: \"\\f88d\"; }\n\n.fa-sort-size-down-alt::before {\n content: \"\\f88d\"; }\n\n.fa-book-medical::before {\n content: \"\\f7e6\"; }\n\n.fa-face-melting::before {\n content: \"\\e483\"; }\n\n.fa-poo::before {\n content: \"\\f2fe\"; }\n\n.fa-pen-clip-slash::before {\n content: \"\\e20f\"; }\n\n.fa-pen-alt-slash::before {\n content: \"\\e20f\"; }\n\n.fa-quote-right::before {\n content: \"\\f10e\"; }\n\n.fa-quote-right-alt::before {\n content: \"\\f10e\"; }\n\n.fa-scroll-old::before {\n content: \"\\f70f\"; }\n\n.fa-guitars::before {\n content: \"\\f8bf\"; }\n\n.fa-phone-xmark::before {\n content: \"\\e227\"; }\n\n.fa-hose::before {\n content: \"\\e419\"; }\n\n.fa-clock-six::before {\n content: \"\\e352\"; }\n\n.fa-shirt::before {\n content: \"\\f553\"; }\n\n.fa-t-shirt::before {\n content: \"\\f553\"; }\n\n.fa-tshirt::before {\n content: \"\\f553\"; }\n\n.fa-billboard::before {\n content: \"\\e5cd\"; }\n\n.fa-square-r::before {\n content: \"\\e27c\"; }\n\n.fa-cubes::before {\n content: \"\\f1b3\"; }\n\n.fa-envelope-open-dollar::before {\n content: \"\\f657\"; }\n\n.fa-divide::before {\n content: \"\\f529\"; }\n\n.fa-sun-cloud::before {\n content: \"\\f763\"; }\n\n.fa-lamp-floor::before {\n content: \"\\e015\"; }\n\n.fa-square-7::before {\n content: \"\\e25c\"; }\n\n.fa-tenge-sign::before {\n content: \"\\f7d7\"; }\n\n.fa-tenge::before {\n content: \"\\f7d7\"; }\n\n.fa-headphones::before {\n content: \"\\f025\"; }\n\n.fa-hands-holding::before {\n content: \"\\f4c2\"; }\n\n.fa-campfire::before {\n content: \"\\f6ba\"; }\n\n.fa-circle-ampersand::before {\n content: \"\\e0f8\"; }\n\n.fa-snowflakes::before {\n content: \"\\f7cf\"; }\n\n.fa-hands-clapping::before {\n content: \"\\e1a8\"; }\n\n.fa-republican::before {\n content: \"\\f75e\"; }\n\n.fa-leaf-maple::before {\n content: \"\\f6f6\"; }\n\n.fa-arrow-left::before {\n content: \"\\f060\"; }\n\n.fa-person-circle-xmark::before {\n content: \"\\e543\"; }\n\n.fa-ruler::before {\n content: \"\\f545\"; }\n\n.fa-arrow-left-from-bracket::before {\n content: \"\\e668\"; }\n\n.fa-cup-straw-swoosh::before {\n content: \"\\e364\"; }\n\n.fa-temperature-sun::before {\n content: \"\\f76a\"; }\n\n.fa-temperature-hot::before {\n content: \"\\f76a\"; }\n\n.fa-align-left::before {\n content: \"\\f036\"; }\n\n.fa-dice-d6::before {\n content: \"\\f6d1\"; }\n\n.fa-restroom::before {\n content: \"\\f7bd\"; }\n\n.fa-high-definition::before {\n content: \"\\e1ae\"; }\n\n.fa-rectangle-hd::before {\n content: \"\\e1ae\"; }\n\n.fa-j::before {\n content: \"\\4a\"; }\n\n.fa-galaxy::before {\n content: \"\\e008\"; }\n\n.fa-users-viewfinder::before {\n content: \"\\e595\"; }\n\n.fa-file-video::before {\n content: \"\\f1c8\"; }\n\n.fa-cherries::before {\n content: \"\\e0ec\"; }\n\n.fa-up-right-from-square::before {\n content: \"\\f35d\"; }\n\n.fa-external-link-alt::before {\n content: \"\\f35d\"; }\n\n.fa-circle-sort::before {\n content: \"\\e030\"; }\n\n.fa-sort-circle::before {\n content: \"\\e030\"; }\n\n.fa-table-cells::before {\n content: \"\\f00a\"; }\n\n.fa-th::before {\n content: \"\\f00a\"; }\n\n.fa-bag-shopping-minus::before {\n content: \"\\e650\"; }\n\n.fa-file-pdf::before {\n content: \"\\f1c1\"; }\n\n.fa-siren::before {\n content: \"\\e02d\"; }\n\n.fa-arrow-up-to-dotted-line::before {\n content: \"\\e0a1\"; }\n\n.fa-image-landscape::before {\n content: \"\\e1b5\"; }\n\n.fa-landscape::before {\n content: \"\\e1b5\"; }\n\n.fa-tank-water::before {\n content: \"\\e452\"; }\n\n.fa-curling-stone::before {\n content: \"\\f44a\"; }\n\n.fa-curling::before {\n content: \"\\f44a\"; }\n\n.fa-gamepad-modern::before {\n content: \"\\e5a2\"; }\n\n.fa-gamepad-alt::before {\n content: \"\\e5a2\"; }\n\n.fa-messages-question::before {\n content: \"\\e1e7\"; }\n\n.fa-book-bible::before {\n content: \"\\f647\"; }\n\n.fa-bible::before {\n content: \"\\f647\"; }\n\n.fa-o::before {\n content: \"\\4f\"; }\n\n.fa-suitcase-medical::before {\n content: \"\\f0fa\"; }\n\n.fa-medkit::before {\n content: \"\\f0fa\"; }\n\n.fa-briefcase-arrow-right::before {\n content: \"\\e2f2\"; }\n\n.fa-expand-wide::before {\n content: \"\\f320\"; }\n\n.fa-clock-eleven-thirty::before {\n content: \"\\e348\"; }\n\n.fa-rv::before {\n content: \"\\f7be\"; }\n\n.fa-user-secret::before {\n content: \"\\f21b\"; }\n\n.fa-otter::before {\n content: \"\\f700\"; }\n\n.fa-dreidel::before {\n content: \"\\f792\"; }\n\n.fa-person-dress::before {\n content: \"\\f182\"; }\n\n.fa-female::before {\n content: \"\\f182\"; }\n\n.fa-comment-dollar::before {\n content: \"\\f651\"; }\n\n.fa-business-time::before {\n content: \"\\f64a\"; }\n\n.fa-briefcase-clock::before {\n content: \"\\f64a\"; }\n\n.fa-flower-tulip::before {\n content: \"\\f801\"; }\n\n.fa-people-pants-simple::before {\n content: \"\\e21a\"; }\n\n.fa-cloud-drizzle::before {\n content: \"\\f738\"; }\n\n.fa-table-cells-large::before {\n content: \"\\f009\"; }\n\n.fa-th-large::before {\n content: \"\\f009\"; }\n\n.fa-book-tanakh::before {\n content: \"\\f827\"; }\n\n.fa-tanakh::before {\n content: \"\\f827\"; }\n\n.fa-solar-system::before {\n content: \"\\e02f\"; }\n\n.fa-seal-question::before {\n content: \"\\e243\"; }\n\n.fa-phone-volume::before {\n content: \"\\f2a0\"; }\n\n.fa-volume-control-phone::before {\n content: \"\\f2a0\"; }\n\n.fa-disc-drive::before {\n content: \"\\f8b5\"; }\n\n.fa-hat-cowboy-side::before {\n content: \"\\f8c1\"; }\n\n.fa-table-rows::before {\n content: \"\\e292\"; }\n\n.fa-rows::before {\n content: \"\\e292\"; }\n\n.fa-location-exclamation::before {\n content: \"\\f608\"; }\n\n.fa-map-marker-exclamation::before {\n content: \"\\f608\"; }\n\n.fa-face-fearful::before {\n content: \"\\e375\"; }\n\n.fa-clipboard-user::before {\n content: \"\\f7f3\"; }\n\n.fa-bus-school::before {\n content: \"\\f5dd\"; }\n\n.fa-film-slash::before {\n content: \"\\e179\"; }\n\n.fa-square-arrow-down-right::before {\n content: \"\\e262\"; }\n\n.fa-book-sparkles::before {\n content: \"\\f6b8\"; }\n\n.fa-book-spells::before {\n content: \"\\f6b8\"; }\n\n.fa-washing-machine::before {\n content: \"\\f898\"; }\n\n.fa-washer::before {\n content: \"\\f898\"; }\n\n.fa-child::before {\n content: \"\\f1ae\"; }\n\n.fa-lira-sign::before {\n content: \"\\f195\"; }\n\n.fa-user-visor::before {\n content: \"\\e04c\"; }\n\n.fa-file-plus-minus::before {\n content: \"\\e177\"; }\n\n.fa-chess-clock-flip::before {\n content: \"\\f43e\"; }\n\n.fa-chess-clock-alt::before {\n content: \"\\f43e\"; }\n\n.fa-satellite::before {\n content: \"\\f7bf\"; }\n\n.fa-truck-fire::before {\n content: \"\\e65a\"; }\n\n.fa-plane-lock::before {\n content: \"\\e558\"; }\n\n.fa-steering-wheel::before {\n content: \"\\f622\"; }\n\n.fa-tag::before {\n content: \"\\f02b\"; }\n\n.fa-stretcher::before {\n content: \"\\f825\"; }\n\n.fa-book-section::before {\n content: \"\\e0c1\"; }\n\n.fa-book-law::before {\n content: \"\\e0c1\"; }\n\n.fa-inboxes::before {\n content: \"\\e1bb\"; }\n\n.fa-coffee-bean::before {\n content: \"\\e13e\"; }\n\n.fa-circle-yen::before {\n content: \"\\e5d0\"; }\n\n.fa-brackets-curly::before {\n content: \"\\f7ea\"; }\n\n.fa-ellipsis-stroke-vertical::before {\n content: \"\\f39c\"; }\n\n.fa-ellipsis-v-alt::before {\n content: \"\\f39c\"; }\n\n.fa-comment::before {\n content: \"\\f075\"; }\n\n.fa-square-1::before {\n content: \"\\e256\"; }\n\n.fa-cake-candles::before {\n content: \"\\f1fd\"; }\n\n.fa-birthday-cake::before {\n content: \"\\f1fd\"; }\n\n.fa-cake::before {\n content: \"\\f1fd\"; }\n\n.fa-head-side::before {\n content: \"\\f6e9\"; }\n\n.fa-truck-ladder::before {\n content: \"\\e657\"; }\n\n.fa-envelope::before {\n content: \"\\f0e0\"; }\n\n.fa-dolly-empty::before {\n content: \"\\f473\"; }\n\n.fa-face-tissue::before {\n content: \"\\e39c\"; }\n\n.fa-angles-up::before {\n content: \"\\f102\"; }\n\n.fa-angle-double-up::before {\n content: \"\\f102\"; }\n\n.fa-bin-recycle::before {\n content: \"\\e5f7\"; }\n\n.fa-paperclip::before {\n content: \"\\f0c6\"; }\n\n.fa-chart-line-down::before {\n content: \"\\f64d\"; }\n\n.fa-arrow-right-to-city::before {\n content: \"\\e4b3\"; }\n\n.fa-lock-a::before {\n content: \"\\e422\"; }\n\n.fa-ribbon::before {\n content: \"\\f4d6\"; }\n\n.fa-lungs::before {\n content: \"\\f604\"; }\n\n.fa-person-pinball::before {\n content: \"\\e21d\"; }\n\n.fa-arrow-up-9-1::before {\n content: \"\\f887\"; }\n\n.fa-sort-numeric-up-alt::before {\n content: \"\\f887\"; }\n\n.fa-apple-core::before {\n content: \"\\e08f\"; }\n\n.fa-circle-y::before {\n content: \"\\e12f\"; }\n\n.fa-h6::before {\n content: \"\\e413\"; }\n\n.fa-litecoin-sign::before {\n content: \"\\e1d3\"; }\n\n.fa-bottle-baby::before {\n content: \"\\e673\"; }\n\n.fa-circle-small::before {\n content: \"\\e122\"; }\n\n.fa-border-none::before {\n content: \"\\f850\"; }\n\n.fa-arrow-turn-down-left::before {\n content: \"\\e2e1\"; }\n\n.fa-circle-wifi-circle-wifi::before {\n content: \"\\e67e\"; }\n\n.fa-circle-wifi-group::before {\n content: \"\\e67e\"; }\n\n.fa-circle-nodes::before {\n content: \"\\e4e2\"; }\n\n.fa-parachute-box::before {\n content: \"\\f4cd\"; }\n\n.fa-reflect-horizontal::before {\n content: \"\\e664\"; }\n\n.fa-message-medical::before {\n content: \"\\f7f4\"; }\n\n.fa-comment-alt-medical::before {\n content: \"\\f7f4\"; }\n\n.fa-rugby-ball::before {\n content: \"\\e3c6\"; }\n\n.fa-comment-music::before {\n content: \"\\f8b0\"; }\n\n.fa-indent::before {\n content: \"\\f03c\"; }\n\n.fa-tree-deciduous::before {\n content: \"\\f400\"; }\n\n.fa-tree-alt::before {\n content: \"\\f400\"; }\n\n.fa-puzzle-piece-simple::before {\n content: \"\\e231\"; }\n\n.fa-puzzle-piece-alt::before {\n content: \"\\e231\"; }\n\n.fa-truck-field-un::before {\n content: \"\\e58e\"; }\n\n.fa-nfc-trash::before {\n content: \"\\e1fd\"; }\n\n.fa-hourglass::before {\n content: \"\\f254\"; }\n\n.fa-hourglass-empty::before {\n content: \"\\f254\"; }\n\n.fa-mountain::before {\n content: \"\\f6fc\"; }\n\n.fa-file-xmark::before {\n content: \"\\f317\"; }\n\n.fa-file-times::before {\n content: \"\\f317\"; }\n\n.fa-house-heart::before {\n content: \"\\f4c9\"; }\n\n.fa-home-heart::before {\n content: \"\\f4c9\"; }\n\n.fa-house-chimney-blank::before {\n content: \"\\e3b0\"; }\n\n.fa-meter-bolt::before {\n content: \"\\e1e9\"; }\n\n.fa-user-doctor::before {\n content: \"\\f0f0\"; }\n\n.fa-user-md::before {\n content: \"\\f0f0\"; }\n\n.fa-slash-back::before {\n content: \"\\5c\"; }\n\n.fa-circle-info::before {\n content: \"\\f05a\"; }\n\n.fa-info-circle::before {\n content: \"\\f05a\"; }\n\n.fa-fishing-rod::before {\n content: \"\\e3a8\"; }\n\n.fa-hammer-crash::before {\n content: \"\\e414\"; }\n\n.fa-message-heart::before {\n content: \"\\e5c9\"; }\n\n.fa-cloud-meatball::before {\n content: \"\\f73b\"; }\n\n.fa-camera-polaroid::before {\n content: \"\\f8aa\"; }\n\n.fa-camera::before {\n content: \"\\f030\"; }\n\n.fa-camera-alt::before {\n content: \"\\f030\"; }\n\n.fa-square-virus::before {\n content: \"\\e578\"; }\n\n.fa-cart-arrow-up::before {\n content: \"\\e3ee\"; }\n\n.fa-meteor::before {\n content: \"\\f753\"; }\n\n.fa-car-on::before {\n content: \"\\e4dd\"; }\n\n.fa-sleigh::before {\n content: \"\\f7cc\"; }\n\n.fa-arrow-down-1-9::before {\n content: \"\\f162\"; }\n\n.fa-sort-numeric-asc::before {\n content: \"\\f162\"; }\n\n.fa-sort-numeric-down::before {\n content: \"\\f162\"; }\n\n.fa-buoy-mooring::before {\n content: \"\\e5b6\"; }\n\n.fa-square-4::before {\n content: \"\\e259\"; }\n\n.fa-hand-holding-droplet::before {\n content: \"\\f4c1\"; }\n\n.fa-hand-holding-water::before {\n content: \"\\f4c1\"; }\n\n.fa-file-eps::before {\n content: \"\\e644\"; }\n\n.fa-tricycle-adult::before {\n content: \"\\e5c4\"; }\n\n.fa-waveform::before {\n content: \"\\f8f1\"; }\n\n.fa-water::before {\n content: \"\\f773\"; }\n\n.fa-star-sharp-half-stroke::before {\n content: \"\\e28d\"; }\n\n.fa-star-sharp-half-alt::before {\n content: \"\\e28d\"; }\n\n.fa-nfc-signal::before {\n content: \"\\e1fb\"; }\n\n.fa-plane-prop::before {\n content: \"\\e22b\"; }\n\n.fa-calendar-check::before {\n content: \"\\f274\"; }\n\n.fa-clock-desk::before {\n content: \"\\e134\"; }\n\n.fa-calendar-clock::before {\n content: \"\\e0d2\"; }\n\n.fa-calendar-time::before {\n content: \"\\e0d2\"; }\n\n.fa-braille::before {\n content: \"\\f2a1\"; }\n\n.fa-prescription-bottle-medical::before {\n content: \"\\f486\"; }\n\n.fa-prescription-bottle-alt::before {\n content: \"\\f486\"; }\n\n.fa-plate-utensils::before {\n content: \"\\e43b\"; }\n\n.fa-family-pants::before {\n content: \"\\e302\"; }\n\n.fa-hose-reel::before {\n content: \"\\e41a\"; }\n\n.fa-house-window::before {\n content: \"\\e3b3\"; }\n\n.fa-landmark::before {\n content: \"\\f66f\"; }\n\n.fa-truck::before {\n content: \"\\f0d1\"; }\n\n.fa-music-magnifying-glass::before {\n content: \"\\e662\"; }\n\n.fa-crosshairs::before {\n content: \"\\f05b\"; }\n\n.fa-cloud-rainbow::before {\n content: \"\\f73e\"; }\n\n.fa-person-cane::before {\n content: \"\\e53c\"; }\n\n.fa-alien::before {\n content: \"\\f8f5\"; }\n\n.fa-tent::before {\n content: \"\\e57d\"; }\n\n.fa-laptop-binary::before {\n content: \"\\e5e7\"; }\n\n.fa-vest-patches::before {\n content: \"\\e086\"; }\n\n.fa-people-dress-simple::before {\n content: \"\\e218\"; }\n\n.fa-check-double::before {\n content: \"\\f560\"; }\n\n.fa-arrow-down-a-z::before {\n content: \"\\f15d\"; }\n\n.fa-sort-alpha-asc::before {\n content: \"\\f15d\"; }\n\n.fa-sort-alpha-down::before {\n content: \"\\f15d\"; }\n\n.fa-bowling-ball-pin::before {\n content: \"\\e0c3\"; }\n\n.fa-bell-school-slash::before {\n content: \"\\f5d6\"; }\n\n.fa-plus-large::before {\n content: \"\\e59e\"; }\n\n.fa-money-bill-wheat::before {\n content: \"\\e52a\"; }\n\n.fa-camera-viewfinder::before {\n content: \"\\e0da\"; }\n\n.fa-screenshot::before {\n content: \"\\e0da\"; }\n\n.fa-message-music::before {\n content: \"\\f8af\"; }\n\n.fa-comment-alt-music::before {\n content: \"\\f8af\"; }\n\n.fa-car-building::before {\n content: \"\\f859\"; }\n\n.fa-border-bottom-right::before {\n content: \"\\f854\"; }\n\n.fa-border-style-alt::before {\n content: \"\\f854\"; }\n\n.fa-octagon::before {\n content: \"\\f306\"; }\n\n.fa-comment-arrow-up-right::before {\n content: \"\\e145\"; }\n\n.fa-octagon-divide::before {\n content: \"\\e203\"; }\n\n.fa-cookie::before {\n content: \"\\f563\"; }\n\n.fa-arrow-rotate-left::before {\n content: \"\\f0e2\"; }\n\n.fa-arrow-left-rotate::before {\n content: \"\\f0e2\"; }\n\n.fa-arrow-rotate-back::before {\n content: \"\\f0e2\"; }\n\n.fa-arrow-rotate-backward::before {\n content: \"\\f0e2\"; }\n\n.fa-undo::before {\n content: \"\\f0e2\"; }\n\n.fa-tv-music::before {\n content: \"\\f8e6\"; }\n\n.fa-hard-drive::before {\n content: \"\\f0a0\"; }\n\n.fa-hdd::before {\n content: \"\\f0a0\"; }\n\n.fa-reel::before {\n content: \"\\e238\"; }\n\n.fa-face-grin-squint-tears::before {\n content: \"\\f586\"; }\n\n.fa-grin-squint-tears::before {\n content: \"\\f586\"; }\n\n.fa-dumbbell::before {\n content: \"\\f44b\"; }\n\n.fa-rectangle-list::before {\n content: \"\\f022\"; }\n\n.fa-list-alt::before {\n content: \"\\f022\"; }\n\n.fa-tarp-droplet::before {\n content: \"\\e57c\"; }\n\n.fa-alarm-exclamation::before {\n content: \"\\f843\"; }\n\n.fa-house-medical-circle-check::before {\n content: \"\\e511\"; }\n\n.fa-traffic-cone::before {\n content: \"\\f636\"; }\n\n.fa-grate::before {\n content: \"\\e193\"; }\n\n.fa-arrow-down-right::before {\n content: \"\\e093\"; }\n\n.fa-person-skiing-nordic::before {\n content: \"\\f7ca\"; }\n\n.fa-skiing-nordic::before {\n content: \"\\f7ca\"; }\n\n.fa-calendar-plus::before {\n content: \"\\f271\"; }\n\n.fa-person-from-portal::before {\n content: \"\\e023\"; }\n\n.fa-portal-exit::before {\n content: \"\\e023\"; }\n\n.fa-plane-arrival::before {\n content: \"\\f5af\"; }\n\n.fa-cowbell-circle-plus::before {\n content: \"\\f8b4\"; }\n\n.fa-cowbell-more::before {\n content: \"\\f8b4\"; }\n\n.fa-circle-left::before {\n content: \"\\f359\"; }\n\n.fa-arrow-alt-circle-left::before {\n content: \"\\f359\"; }\n\n.fa-distribute-spacing-vertical::before {\n content: \"\\e366\"; }\n\n.fa-signal-bars-fair::before {\n content: \"\\f692\"; }\n\n.fa-signal-alt-2::before {\n content: \"\\f692\"; }\n\n.fa-sportsball::before {\n content: \"\\e44b\"; }\n\n.fa-game-console-handheld-crank::before {\n content: \"\\e5b9\"; }\n\n.fa-train-subway::before {\n content: \"\\f239\"; }\n\n.fa-subway::before {\n content: \"\\f239\"; }\n\n.fa-chart-gantt::before {\n content: \"\\e0e4\"; }\n\n.fa-face-smile-upside-down::before {\n content: \"\\e395\"; }\n\n.fa-ball-pile::before {\n content: \"\\f77e\"; }\n\n.fa-badge-dollar::before {\n content: \"\\f645\"; }\n\n.fa-money-bills-simple::before {\n content: \"\\e1f4\"; }\n\n.fa-money-bills-alt::before {\n content: \"\\e1f4\"; }\n\n.fa-list-timeline::before {\n content: \"\\e1d1\"; }\n\n.fa-indian-rupee-sign::before {\n content: \"\\e1bc\"; }\n\n.fa-indian-rupee::before {\n content: \"\\e1bc\"; }\n\n.fa-inr::before {\n content: \"\\e1bc\"; }\n\n.fa-crop-simple::before {\n content: \"\\f565\"; }\n\n.fa-crop-alt::before {\n content: \"\\f565\"; }\n\n.fa-money-bill-1::before {\n content: \"\\f3d1\"; }\n\n.fa-money-bill-alt::before {\n content: \"\\f3d1\"; }\n\n.fa-left-long::before {\n content: \"\\f30a\"; }\n\n.fa-long-arrow-alt-left::before {\n content: \"\\f30a\"; }\n\n.fa-keyboard-down::before {\n content: \"\\e1c2\"; }\n\n.fa-circle-up-right::before {\n content: \"\\e129\"; }\n\n.fa-cloud-bolt-moon::before {\n content: \"\\f76d\"; }\n\n.fa-thunderstorm-moon::before {\n content: \"\\f76d\"; }\n\n.fa-turn-left-up::before {\n content: \"\\e638\"; }\n\n.fa-dna::before {\n content: \"\\f471\"; }\n\n.fa-virus-slash::before {\n content: \"\\e075\"; }\n\n.fa-bracket-round-right::before {\n content: \"\\29\"; }\n\n.fa-circle-sterling::before {\n content: \"\\e5cf\"; }\n\n.fa-circle-5::before {\n content: \"\\e0f2\"; }\n\n.fa-minus::before {\n content: \"\\f068\"; }\n\n.fa-subtract::before {\n content: \"\\f068\"; }\n\n.fa-fire-flame::before {\n content: \"\\f6df\"; }\n\n.fa-flame::before {\n content: \"\\f6df\"; }\n\n.fa-right-to-line::before {\n content: \"\\f34c\"; }\n\n.fa-arrow-alt-to-right::before {\n content: \"\\f34c\"; }\n\n.fa-gif::before {\n content: \"\\e190\"; }\n\n.fa-chess::before {\n content: \"\\f439\"; }\n\n.fa-trash-slash::before {\n content: \"\\e2b3\"; }\n\n.fa-arrow-left-long::before {\n content: \"\\f177\"; }\n\n.fa-long-arrow-left::before {\n content: \"\\f177\"; }\n\n.fa-plug-circle-check::before {\n content: \"\\e55c\"; }\n\n.fa-font-case::before {\n content: \"\\f866\"; }\n\n.fa-street-view::before {\n content: \"\\f21d\"; }\n\n.fa-arrow-down-left::before {\n content: \"\\e091\"; }\n\n.fa-franc-sign::before {\n content: \"\\e18f\"; }\n\n.fa-flask-round-poison::before {\n content: \"\\f6e0\"; }\n\n.fa-flask-poison::before {\n content: \"\\f6e0\"; }\n\n.fa-volume-off::before {\n content: \"\\f026\"; }\n\n.fa-book-circle-arrow-right::before {\n content: \"\\e0bc\"; }\n\n.fa-chart-user::before {\n content: \"\\f6a3\"; }\n\n.fa-user-chart::before {\n content: \"\\f6a3\"; }\n\n.fa-hands-asl-interpreting::before {\n content: \"\\f2a3\"; }\n\n.fa-american-sign-language-interpreting::before {\n content: \"\\f2a3\"; }\n\n.fa-asl-interpreting::before {\n content: \"\\f2a3\"; }\n\n.fa-hands-american-sign-language-interpreting::before {\n content: \"\\f2a3\"; }\n\n.fa-presentation-screen::before {\n content: \"\\f685\"; }\n\n.fa-presentation::before {\n content: \"\\f685\"; }\n\n.fa-circle-bolt::before {\n content: \"\\e0fe\"; }\n\n.fa-face-smile-halo::before {\n content: \"\\e38f\"; }\n\n.fa-cart-circle-arrow-down::before {\n content: \"\\e3ef\"; }\n\n.fa-house-person-return::before {\n content: \"\\e011\"; }\n\n.fa-house-person-arrive::before {\n content: \"\\e011\"; }\n\n.fa-house-return::before {\n content: \"\\e011\"; }\n\n.fa-message-xmark::before {\n content: \"\\f4ab\"; }\n\n.fa-comment-alt-times::before {\n content: \"\\f4ab\"; }\n\n.fa-message-times::before {\n content: \"\\f4ab\"; }\n\n.fa-file-certificate::before {\n content: \"\\f5f3\"; }\n\n.fa-file-award::before {\n content: \"\\f5f3\"; }\n\n.fa-user-doctor-hair-long::before {\n content: \"\\e459\"; }\n\n.fa-camera-security::before {\n content: \"\\f8fe\"; }\n\n.fa-camera-home::before {\n content: \"\\f8fe\"; }\n\n.fa-gear::before {\n content: \"\\f013\"; }\n\n.fa-cog::before {\n content: \"\\f013\"; }\n\n.fa-droplet-slash::before {\n content: \"\\f5c7\"; }\n\n.fa-tint-slash::before {\n content: \"\\f5c7\"; }\n\n.fa-book-heart::before {\n content: \"\\f499\"; }\n\n.fa-mosque::before {\n content: \"\\f678\"; }\n\n.fa-duck::before {\n content: \"\\f6d8\"; }\n\n.fa-mosquito::before {\n content: \"\\e52b\"; }\n\n.fa-star-of-david::before {\n content: \"\\f69a\"; }\n\n.fa-flag-swallowtail::before {\n content: \"\\f74c\"; }\n\n.fa-flag-alt::before {\n content: \"\\f74c\"; }\n\n.fa-person-military-rifle::before {\n content: \"\\e54b\"; }\n\n.fa-car-garage::before {\n content: \"\\f5e2\"; }\n\n.fa-cart-shopping::before {\n content: \"\\f07a\"; }\n\n.fa-shopping-cart::before {\n content: \"\\f07a\"; }\n\n.fa-book-font::before {\n content: \"\\e0bf\"; }\n\n.fa-shield-plus::before {\n content: \"\\e24a\"; }\n\n.fa-vials::before {\n content: \"\\f493\"; }\n\n.fa-eye-dropper-full::before {\n content: \"\\e172\"; }\n\n.fa-distribute-spacing-horizontal::before {\n content: \"\\e365\"; }\n\n.fa-tablet-rugged::before {\n content: \"\\f48f\"; }\n\n.fa-temperature-snow::before {\n content: \"\\f768\"; }\n\n.fa-temperature-frigid::before {\n content: \"\\f768\"; }\n\n.fa-moped::before {\n content: \"\\e3b9\"; }\n\n.fa-face-smile-plus::before {\n content: \"\\f5b9\"; }\n\n.fa-smile-plus::before {\n content: \"\\f5b9\"; }\n\n.fa-radio-tuner::before {\n content: \"\\f8d8\"; }\n\n.fa-radio-alt::before {\n content: \"\\f8d8\"; }\n\n.fa-face-swear::before {\n content: \"\\e399\"; }\n\n.fa-water-arrow-down::before {\n content: \"\\f774\"; }\n\n.fa-water-lower::before {\n content: \"\\f774\"; }\n\n.fa-scanner-touchscreen::before {\n content: \"\\f48a\"; }\n\n.fa-circle-7::before {\n content: \"\\e0f4\"; }\n\n.fa-plug-circle-plus::before {\n content: \"\\e55f\"; }\n\n.fa-person-ski-jumping::before {\n content: \"\\f7c7\"; }\n\n.fa-ski-jump::before {\n content: \"\\f7c7\"; }\n\n.fa-place-of-worship::before {\n content: \"\\f67f\"; }\n\n.fa-water-arrow-up::before {\n content: \"\\f775\"; }\n\n.fa-water-rise::before {\n content: \"\\f775\"; }\n\n.fa-waveform-lines::before {\n content: \"\\f8f2\"; }\n\n.fa-waveform-path::before {\n content: \"\\f8f2\"; }\n\n.fa-split::before {\n content: \"\\e254\"; }\n\n.fa-film-canister::before {\n content: \"\\f8b7\"; }\n\n.fa-film-cannister::before {\n content: \"\\f8b7\"; }\n\n.fa-folder-xmark::before {\n content: \"\\f65f\"; }\n\n.fa-folder-times::before {\n content: \"\\f65f\"; }\n\n.fa-toilet-paper-blank::before {\n content: \"\\f71f\"; }\n\n.fa-toilet-paper-alt::before {\n content: \"\\f71f\"; }\n\n.fa-tablet-screen::before {\n content: \"\\f3fc\"; }\n\n.fa-tablet-android-alt::before {\n content: \"\\f3fc\"; }\n\n.fa-hexagon-vertical-nft-slanted::before {\n content: \"\\e506\"; }\n\n.fa-folder-music::before {\n content: \"\\e18d\"; }\n\n.fa-display-medical::before {\n content: \"\\e166\"; }\n\n.fa-desktop-medical::before {\n content: \"\\e166\"; }\n\n.fa-share-all::before {\n content: \"\\f367\"; }\n\n.fa-peapod::before {\n content: \"\\e31c\"; }\n\n.fa-chess-clock::before {\n content: \"\\f43d\"; }\n\n.fa-axe::before {\n content: \"\\f6b2\"; }\n\n.fa-square-d::before {\n content: \"\\e268\"; }\n\n.fa-grip-vertical::before {\n content: \"\\f58e\"; }\n\n.fa-mobile-signal-out::before {\n content: \"\\e1f0\"; }\n\n.fa-arrow-turn-up::before {\n content: \"\\f148\"; }\n\n.fa-level-up::before {\n content: \"\\f148\"; }\n\n.fa-u::before {\n content: \"\\55\"; }\n\n.fa-arrow-up-from-dotted-line::before {\n content: \"\\e09b\"; }\n\n.fa-square-root-variable::before {\n content: \"\\f698\"; }\n\n.fa-square-root-alt::before {\n content: \"\\f698\"; }\n\n.fa-light-switch-on::before {\n content: \"\\e019\"; }\n\n.fa-arrow-down-arrow-up::before {\n content: \"\\f883\"; }\n\n.fa-sort-alt::before {\n content: \"\\f883\"; }\n\n.fa-raindrops::before {\n content: \"\\f75c\"; }\n\n.fa-dash::before {\n content: \"\\e404\"; }\n\n.fa-minus-large::before {\n content: \"\\e404\"; }\n\n.fa-clock::before {\n content: \"\\f017\"; }\n\n.fa-clock-four::before {\n content: \"\\f017\"; }\n\n.fa-input-numeric::before {\n content: \"\\e1bd\"; }\n\n.fa-truck-tow::before {\n content: \"\\e2b8\"; }\n\n.fa-backward-step::before {\n content: \"\\f048\"; }\n\n.fa-step-backward::before {\n content: \"\\f048\"; }\n\n.fa-pallet::before {\n content: \"\\f482\"; }\n\n.fa-car-bolt::before {\n content: \"\\e341\"; }\n\n.fa-arrows-maximize::before {\n content: \"\\f31d\"; }\n\n.fa-expand-arrows::before {\n content: \"\\f31d\"; }\n\n.fa-faucet::before {\n content: \"\\e005\"; }\n\n.fa-cloud-sleet::before {\n content: \"\\f741\"; }\n\n.fa-lamp-street::before {\n content: \"\\e1c5\"; }\n\n.fa-list-radio::before {\n content: \"\\e1d0\"; }\n\n.fa-pen-nib-slash::before {\n content: \"\\e4a1\"; }\n\n.fa-baseball-bat-ball::before {\n content: \"\\f432\"; }\n\n.fa-square-up-left::before {\n content: \"\\e282\"; }\n\n.fa-overline::before {\n content: \"\\f876\"; }\n\n.fa-s::before {\n content: \"\\53\"; }\n\n.fa-timeline::before {\n content: \"\\e29c\"; }\n\n.fa-keyboard::before {\n content: \"\\f11c\"; }\n\n.fa-arrows-from-dotted-line::before {\n content: \"\\e0a3\"; }\n\n.fa-usb-drive::before {\n content: \"\\f8e9\"; }\n\n.fa-ballot::before {\n content: \"\\f732\"; }\n\n.fa-caret-down::before {\n content: \"\\f0d7\"; }\n\n.fa-location-dot-slash::before {\n content: \"\\f605\"; }\n\n.fa-map-marker-alt-slash::before {\n content: \"\\f605\"; }\n\n.fa-cards::before {\n content: \"\\e3ed\"; }\n\n.fa-house-chimney-medical::before {\n content: \"\\f7f2\"; }\n\n.fa-clinic-medical::before {\n content: \"\\f7f2\"; }\n\n.fa-boxing-glove::before {\n content: \"\\f438\"; }\n\n.fa-glove-boxing::before {\n content: \"\\f438\"; }\n\n.fa-temperature-three-quarters::before {\n content: \"\\f2c8\"; }\n\n.fa-temperature-3::before {\n content: \"\\f2c8\"; }\n\n.fa-thermometer-3::before {\n content: \"\\f2c8\"; }\n\n.fa-thermometer-three-quarters::before {\n content: \"\\f2c8\"; }\n\n.fa-bell-school::before {\n content: \"\\f5d5\"; }\n\n.fa-mobile-screen::before {\n content: \"\\f3cf\"; }\n\n.fa-mobile-android-alt::before {\n content: \"\\f3cf\"; }\n\n.fa-plane-up::before {\n content: \"\\e22d\"; }\n\n.fa-folder-heart::before {\n content: \"\\e189\"; }\n\n.fa-circle-location-arrow::before {\n content: \"\\f602\"; }\n\n.fa-location-circle::before {\n content: \"\\f602\"; }\n\n.fa-face-head-bandage::before {\n content: \"\\e37a\"; }\n\n.fa-sushi-roll::before {\n content: \"\\e48b\"; }\n\n.fa-maki-roll::before {\n content: \"\\e48b\"; }\n\n.fa-makizushi::before {\n content: \"\\e48b\"; }\n\n.fa-car-bump::before {\n content: \"\\f5e0\"; }\n\n.fa-piggy-bank::before {\n content: \"\\f4d3\"; }\n\n.fa-racquet::before {\n content: \"\\f45a\"; }\n\n.fa-car-mirrors::before {\n content: \"\\e343\"; }\n\n.fa-industry-windows::before {\n content: \"\\f3b3\"; }\n\n.fa-industry-alt::before {\n content: \"\\f3b3\"; }\n\n.fa-bolt-auto::before {\n content: \"\\e0b6\"; }\n\n.fa-battery-half::before {\n content: \"\\f242\"; }\n\n.fa-battery-3::before {\n content: \"\\f242\"; }\n\n.fa-flux-capacitor::before {\n content: \"\\f8ba\"; }\n\n.fa-mountain-city::before {\n content: \"\\e52e\"; }\n\n.fa-coins::before {\n content: \"\\f51e\"; }\n\n.fa-honey-pot::before {\n content: \"\\e418\"; }\n\n.fa-olive::before {\n content: \"\\e316\"; }\n\n.fa-khanda::before {\n content: \"\\f66d\"; }\n\n.fa-filter-list::before {\n content: \"\\e17c\"; }\n\n.fa-outlet::before {\n content: \"\\e01c\"; }\n\n.fa-sliders::before {\n content: \"\\f1de\"; }\n\n.fa-sliders-h::before {\n content: \"\\f1de\"; }\n\n.fa-cauldron::before {\n content: \"\\f6bf\"; }\n\n.fa-people::before {\n content: \"\\e216\"; }\n\n.fa-folder-tree::before {\n content: \"\\f802\"; }\n\n.fa-network-wired::before {\n content: \"\\f6ff\"; }\n\n.fa-croissant::before {\n content: \"\\f7f6\"; }\n\n.fa-map-pin::before {\n content: \"\\f276\"; }\n\n.fa-hamsa::before {\n content: \"\\f665\"; }\n\n.fa-cent-sign::before {\n content: \"\\e3f5\"; }\n\n.fa-swords-laser::before {\n content: \"\\e03d\"; }\n\n.fa-flask::before {\n content: \"\\f0c3\"; }\n\n.fa-person-pregnant::before {\n content: \"\\e31e\"; }\n\n.fa-square-u::before {\n content: \"\\e281\"; }\n\n.fa-wand-sparkles::before {\n content: \"\\f72b\"; }\n\n.fa-router::before {\n content: \"\\f8da\"; }\n\n.fa-ellipsis-vertical::before {\n content: \"\\f142\"; }\n\n.fa-ellipsis-v::before {\n content: \"\\f142\"; }\n\n.fa-sword-laser-alt::before {\n content: \"\\e03c\"; }\n\n.fa-ticket::before {\n content: \"\\f145\"; }\n\n.fa-power-off::before {\n content: \"\\f011\"; }\n\n.fa-coin::before {\n content: \"\\f85c\"; }\n\n.fa-laptop-slash::before {\n content: \"\\e1c7\"; }\n\n.fa-right-long::before {\n content: \"\\f30b\"; }\n\n.fa-long-arrow-alt-right::before {\n content: \"\\f30b\"; }\n\n.fa-circle-b::before {\n content: \"\\e0fd\"; }\n\n.fa-person-dress-simple::before {\n content: \"\\e21c\"; }\n\n.fa-pipe-collar::before {\n content: \"\\e437\"; }\n\n.fa-lights-holiday::before {\n content: \"\\f7b2\"; }\n\n.fa-citrus::before {\n content: \"\\e2f4\"; }\n\n.fa-flag-usa::before {\n content: \"\\f74d\"; }\n\n.fa-laptop-file::before {\n content: \"\\e51d\"; }\n\n.fa-tty::before {\n content: \"\\f1e4\"; }\n\n.fa-teletype::before {\n content: \"\\f1e4\"; }\n\n.fa-chart-tree-map::before {\n content: \"\\e0ea\"; }\n\n.fa-diagram-next::before {\n content: \"\\e476\"; }\n\n.fa-person-rifle::before {\n content: \"\\e54e\"; }\n\n.fa-clock-five-thirty::before {\n content: \"\\e34a\"; }\n\n.fa-pipe-valve::before {\n content: \"\\e439\"; }\n\n.fa-arrow-up-from-arc::before {\n content: \"\\e4b4\"; }\n\n.fa-face-spiral-eyes::before {\n content: \"\\e485\"; }\n\n.fa-compress-wide::before {\n content: \"\\f326\"; }\n\n.fa-circle-phone-hangup::before {\n content: \"\\e11d\"; }\n\n.fa-phone-circle-down::before {\n content: \"\\e11d\"; }\n\n.fa-gear-complex-code::before {\n content: \"\\e5eb\"; }\n\n.fa-house-medical-circle-exclamation::before {\n content: \"\\e512\"; }\n\n.fa-badminton::before {\n content: \"\\e33a\"; }\n\n.fa-closed-captioning::before {\n content: \"\\f20a\"; }\n\n.fa-person-hiking::before {\n content: \"\\f6ec\"; }\n\n.fa-hiking::before {\n content: \"\\f6ec\"; }\n\n.fa-right-from-line::before {\n content: \"\\f347\"; }\n\n.fa-arrow-alt-from-left::before {\n content: \"\\f347\"; }\n\n.fa-venus-double::before {\n content: \"\\f226\"; }\n\n.fa-images::before {\n content: \"\\f302\"; }\n\n.fa-calculator::before {\n content: \"\\f1ec\"; }\n\n.fa-shuttlecock::before {\n content: \"\\f45b\"; }\n\n.fa-user-hair::before {\n content: \"\\e45a\"; }\n\n.fa-eye-evil::before {\n content: \"\\f6db\"; }\n\n.fa-people-pulling::before {\n content: \"\\e535\"; }\n\n.fa-n::before {\n content: \"\\4e\"; }\n\n.fa-swap::before {\n content: \"\\e609\"; }\n\n.fa-garage::before {\n content: \"\\e009\"; }\n\n.fa-cable-car::before {\n content: \"\\f7da\"; }\n\n.fa-tram::before {\n content: \"\\f7da\"; }\n\n.fa-shovel-snow::before {\n content: \"\\f7c3\"; }\n\n.fa-cloud-rain::before {\n content: \"\\f73d\"; }\n\n.fa-face-lying::before {\n content: \"\\e37e\"; }\n\n.fa-sprinkler::before {\n content: \"\\e035\"; }\n\n.fa-building-circle-xmark::before {\n content: \"\\e4d4\"; }\n\n.fa-person-sledding::before {\n content: \"\\f7cb\"; }\n\n.fa-sledding::before {\n content: \"\\f7cb\"; }\n\n.fa-game-console-handheld::before {\n content: \"\\f8bb\"; }\n\n.fa-ship::before {\n content: \"\\f21a\"; }\n\n.fa-clock-six-thirty::before {\n content: \"\\e353\"; }\n\n.fa-battery-slash::before {\n content: \"\\f377\"; }\n\n.fa-tugrik-sign::before {\n content: \"\\e2ba\"; }\n\n.fa-arrows-down-to-line::before {\n content: \"\\e4b8\"; }\n\n.fa-download::before {\n content: \"\\f019\"; }\n\n.fa-angles-up-down::before {\n content: \"\\e60d\"; }\n\n.fa-shelves::before {\n content: \"\\f480\"; }\n\n.fa-inventory::before {\n content: \"\\f480\"; }\n\n.fa-cloud-snow::before {\n content: \"\\f742\"; }\n\n.fa-face-grin::before {\n content: \"\\f580\"; }\n\n.fa-grin::before {\n content: \"\\f580\"; }\n\n.fa-delete-left::before {\n content: \"\\f55a\"; }\n\n.fa-backspace::before {\n content: \"\\f55a\"; }\n\n.fa-oven::before {\n content: \"\\e01d\"; }\n\n.fa-cloud-binary::before {\n content: \"\\e601\"; }\n\n.fa-eye-dropper::before {\n content: \"\\f1fb\"; }\n\n.fa-eye-dropper-empty::before {\n content: \"\\f1fb\"; }\n\n.fa-eyedropper::before {\n content: \"\\f1fb\"; }\n\n.fa-comment-captions::before {\n content: \"\\e146\"; }\n\n.fa-comments-question::before {\n content: \"\\e14e\"; }\n\n.fa-scribble::before {\n content: \"\\e23f\"; }\n\n.fa-rotate-exclamation::before {\n content: \"\\e23c\"; }\n\n.fa-file-circle-check::before {\n content: \"\\e5a0\"; }\n\n.fa-glass::before {\n content: \"\\f804\"; }\n\n.fa-loader::before {\n content: \"\\e1d4\"; }\n\n.fa-forward::before {\n content: \"\\f04e\"; }\n\n.fa-user-pilot::before {\n content: \"\\e2c0\"; }\n\n.fa-mobile::before {\n content: \"\\f3ce\"; }\n\n.fa-mobile-android::before {\n content: \"\\f3ce\"; }\n\n.fa-mobile-phone::before {\n content: \"\\f3ce\"; }\n\n.fa-code-pull-request-closed::before {\n content: \"\\e3f9\"; }\n\n.fa-face-meh::before {\n content: \"\\f11a\"; }\n\n.fa-meh::before {\n content: \"\\f11a\"; }\n\n.fa-align-center::before {\n content: \"\\f037\"; }\n\n.fa-book-skull::before {\n content: \"\\f6b7\"; }\n\n.fa-book-dead::before {\n content: \"\\f6b7\"; }\n\n.fa-id-card::before {\n content: \"\\f2c2\"; }\n\n.fa-drivers-license::before {\n content: \"\\f2c2\"; }\n\n.fa-face-dotted::before {\n content: \"\\e47f\"; }\n\n.fa-face-worried::before {\n content: \"\\e3a3\"; }\n\n.fa-outdent::before {\n content: \"\\f03b\"; }\n\n.fa-dedent::before {\n content: \"\\f03b\"; }\n\n.fa-court-sport::before {\n content: \"\\e643\"; }\n\n.fa-heart-circle-exclamation::before {\n content: \"\\e4fe\"; }\n\n.fa-house::before {\n content: \"\\f015\"; }\n\n.fa-home::before {\n content: \"\\f015\"; }\n\n.fa-home-alt::before {\n content: \"\\f015\"; }\n\n.fa-home-lg-alt::before {\n content: \"\\f015\"; }\n\n.fa-vector-circle::before {\n content: \"\\e2c6\"; }\n\n.fa-car-circle-bolt::before {\n content: \"\\e342\"; }\n\n.fa-calendar-week::before {\n content: \"\\f784\"; }\n\n.fa-flying-disc::before {\n content: \"\\e3a9\"; }\n\n.fa-laptop-medical::before {\n content: \"\\f812\"; }\n\n.fa-square-down-right::before {\n content: \"\\e26c\"; }\n\n.fa-b::before {\n content: \"\\42\"; }\n\n.fa-seat-airline::before {\n content: \"\\e244\"; }\n\n.fa-moon-over-sun::before {\n content: \"\\f74a\"; }\n\n.fa-eclipse-alt::before {\n content: \"\\f74a\"; }\n\n.fa-pipe::before {\n content: \"\\7c\"; }\n\n.fa-file-medical::before {\n content: \"\\f477\"; }\n\n.fa-potato::before {\n content: \"\\e440\"; }\n\n.fa-dice-one::before {\n content: \"\\f525\"; }\n\n.fa-circle-a::before {\n content: \"\\e0f7\"; }\n\n.fa-helmet-battle::before {\n content: \"\\f6eb\"; }\n\n.fa-butter::before {\n content: \"\\e3e4\"; }\n\n.fa-blanket-fire::before {\n content: \"\\e3da\"; }\n\n.fa-kiwi-bird::before {\n content: \"\\f535\"; }\n\n.fa-castle::before {\n content: \"\\e0de\"; }\n\n.fa-golf-club::before {\n content: \"\\f451\"; }\n\n.fa-arrow-right-arrow-left::before {\n content: \"\\f0ec\"; }\n\n.fa-exchange::before {\n content: \"\\f0ec\"; }\n\n.fa-rotate-right::before {\n content: \"\\f2f9\"; }\n\n.fa-redo-alt::before {\n content: \"\\f2f9\"; }\n\n.fa-rotate-forward::before {\n content: \"\\f2f9\"; }\n\n.fa-utensils::before {\n content: \"\\f2e7\"; }\n\n.fa-cutlery::before {\n content: \"\\f2e7\"; }\n\n.fa-arrow-up-wide-short::before {\n content: \"\\f161\"; }\n\n.fa-sort-amount-up::before {\n content: \"\\f161\"; }\n\n.fa-chart-pie-simple-circle-dollar::before {\n content: \"\\e605\"; }\n\n.fa-balloons::before {\n content: \"\\e2e4\"; }\n\n.fa-mill-sign::before {\n content: \"\\e1ed\"; }\n\n.fa-bowl-rice::before {\n content: \"\\e2eb\"; }\n\n.fa-timeline-arrow::before {\n content: \"\\e29d\"; }\n\n.fa-skull::before {\n content: \"\\f54c\"; }\n\n.fa-game-board-simple::before {\n content: \"\\f868\"; }\n\n.fa-game-board-alt::before {\n content: \"\\f868\"; }\n\n.fa-circle-video::before {\n content: \"\\e12b\"; }\n\n.fa-video-circle::before {\n content: \"\\e12b\"; }\n\n.fa-chart-scatter-bubble::before {\n content: \"\\e0e9\"; }\n\n.fa-house-turret::before {\n content: \"\\e1b4\"; }\n\n.fa-banana::before {\n content: \"\\e2e5\"; }\n\n.fa-hand-holding-skull::before {\n content: \"\\e1a4\"; }\n\n.fa-people-dress::before {\n content: \"\\e217\"; }\n\n.fa-loveseat::before {\n content: \"\\f4cc\"; }\n\n.fa-couch-small::before {\n content: \"\\f4cc\"; }\n\n.fa-tower-broadcast::before {\n content: \"\\f519\"; }\n\n.fa-broadcast-tower::before {\n content: \"\\f519\"; }\n\n.fa-truck-pickup::before {\n content: \"\\f63c\"; }\n\n.fa-block-quote::before {\n content: \"\\e0b5\"; }\n\n.fa-up-long::before {\n content: \"\\f30c\"; }\n\n.fa-long-arrow-alt-up::before {\n content: \"\\f30c\"; }\n\n.fa-stop::before {\n content: \"\\f04d\"; }\n\n.fa-code-merge::before {\n content: \"\\f387\"; }\n\n.fa-money-check-dollar-pen::before {\n content: \"\\f873\"; }\n\n.fa-money-check-edit-alt::before {\n content: \"\\f873\"; }\n\n.fa-up-from-line::before {\n content: \"\\f346\"; }\n\n.fa-arrow-alt-from-bottom::before {\n content: \"\\f346\"; }\n\n.fa-upload::before {\n content: \"\\f093\"; }\n\n.fa-hurricane::before {\n content: \"\\f751\"; }\n\n.fa-grid-round-2-plus::before {\n content: \"\\e5dc\"; }\n\n.fa-people-pants::before {\n content: \"\\e219\"; }\n\n.fa-mound::before {\n content: \"\\e52d\"; }\n\n.fa-windsock::before {\n content: \"\\f777\"; }\n\n.fa-circle-half::before {\n content: \"\\e110\"; }\n\n.fa-brake-warning::before {\n content: \"\\e0c7\"; }\n\n.fa-toilet-portable::before {\n content: \"\\e583\"; }\n\n.fa-compact-disc::before {\n content: \"\\f51f\"; }\n\n.fa-file-arrow-down::before {\n content: \"\\f56d\"; }\n\n.fa-file-download::before {\n content: \"\\f56d\"; }\n\n.fa-saxophone-fire::before {\n content: \"\\f8db\"; }\n\n.fa-sax-hot::before {\n content: \"\\f8db\"; }\n\n.fa-camera-web-slash::before {\n content: \"\\f833\"; }\n\n.fa-webcam-slash::before {\n content: \"\\f833\"; }\n\n.fa-folder-medical::before {\n content: \"\\e18c\"; }\n\n.fa-folder-gear::before {\n content: \"\\e187\"; }\n\n.fa-folder-cog::before {\n content: \"\\e187\"; }\n\n.fa-hand-wave::before {\n content: \"\\e1a7\"; }\n\n.fa-arrow-up-arrow-down::before {\n content: \"\\e099\"; }\n\n.fa-sort-up-down::before {\n content: \"\\e099\"; }\n\n.fa-caravan::before {\n content: \"\\f8ff\"; }\n\n.fa-shield-cat::before {\n content: \"\\e572\"; }\n\n.fa-message-slash::before {\n content: \"\\f4a9\"; }\n\n.fa-comment-alt-slash::before {\n content: \"\\f4a9\"; }\n\n.fa-bolt::before {\n content: \"\\f0e7\"; }\n\n.fa-zap::before {\n content: \"\\f0e7\"; }\n\n.fa-trash-can-check::before {\n content: \"\\e2a9\"; }\n\n.fa-glass-water::before {\n content: \"\\e4f4\"; }\n\n.fa-oil-well::before {\n content: \"\\e532\"; }\n\n.fa-person-simple::before {\n content: \"\\e220\"; }\n\n.fa-arrow-turn-left-up::before {\n content: \"\\e634\"; }\n\n.fa-vault::before {\n content: \"\\e2c5\"; }\n\n.fa-mars::before {\n content: \"\\f222\"; }\n\n.fa-toilet::before {\n content: \"\\f7d8\"; }\n\n.fa-plane-circle-xmark::before {\n content: \"\\e557\"; }\n\n.fa-yen-sign::before {\n content: \"\\f157\"; }\n\n.fa-cny::before {\n content: \"\\f157\"; }\n\n.fa-jpy::before {\n content: \"\\f157\"; }\n\n.fa-rmb::before {\n content: \"\\f157\"; }\n\n.fa-yen::before {\n content: \"\\f157\"; }\n\n.fa-gear-code::before {\n content: \"\\e5e8\"; }\n\n.fa-notes::before {\n content: \"\\e202\"; }\n\n.fa-ruble-sign::before {\n content: \"\\f158\"; }\n\n.fa-rouble::before {\n content: \"\\f158\"; }\n\n.fa-rub::before {\n content: \"\\f158\"; }\n\n.fa-ruble::before {\n content: \"\\f158\"; }\n\n.fa-trash-undo::before {\n content: \"\\f895\"; }\n\n.fa-trash-arrow-turn-left::before {\n content: \"\\f895\"; }\n\n.fa-champagne-glass::before {\n content: \"\\f79e\"; }\n\n.fa-glass-champagne::before {\n content: \"\\f79e\"; }\n\n.fa-objects-align-center-horizontal::before {\n content: \"\\e3bc\"; }\n\n.fa-sun::before {\n content: \"\\f185\"; }\n\n.fa-trash-can-slash::before {\n content: \"\\e2ad\"; }\n\n.fa-trash-alt-slash::before {\n content: \"\\e2ad\"; }\n\n.fa-screen-users::before {\n content: \"\\f63d\"; }\n\n.fa-users-class::before {\n content: \"\\f63d\"; }\n\n.fa-guitar::before {\n content: \"\\f7a6\"; }\n\n.fa-square-arrow-left::before {\n content: \"\\f33a\"; }\n\n.fa-arrow-square-left::before {\n content: \"\\f33a\"; }\n\n.fa-square-8::before {\n content: \"\\e25d\"; }\n\n.fa-face-smile-hearts::before {\n content: \"\\e390\"; }\n\n.fa-brackets-square::before {\n content: \"\\f7e9\"; }\n\n.fa-brackets::before {\n content: \"\\f7e9\"; }\n\n.fa-laptop-arrow-down::before {\n content: \"\\e1c6\"; }\n\n.fa-hockey-stick-puck::before {\n content: \"\\e3ae\"; }\n\n.fa-house-tree::before {\n content: \"\\e1b3\"; }\n\n.fa-signal-fair::before {\n content: \"\\f68d\"; }\n\n.fa-signal-2::before {\n content: \"\\f68d\"; }\n\n.fa-face-laugh-wink::before {\n content: \"\\f59c\"; }\n\n.fa-laugh-wink::before {\n content: \"\\f59c\"; }\n\n.fa-circle-dollar::before {\n content: \"\\f2e8\"; }\n\n.fa-dollar-circle::before {\n content: \"\\f2e8\"; }\n\n.fa-usd-circle::before {\n content: \"\\f2e8\"; }\n\n.fa-horse-head::before {\n content: \"\\f7ab\"; }\n\n.fa-arrows-repeat::before {\n content: \"\\f364\"; }\n\n.fa-repeat-alt::before {\n content: \"\\f364\"; }\n\n.fa-bore-hole::before {\n content: \"\\e4c3\"; }\n\n.fa-industry::before {\n content: \"\\f275\"; }\n\n.fa-image-polaroid::before {\n content: \"\\f8c4\"; }\n\n.fa-wave-triangle::before {\n content: \"\\f89a\"; }\n\n.fa-turn-left-down::before {\n content: \"\\e637\"; }\n\n.fa-person-running-fast::before {\n content: \"\\e5ff\"; }\n\n.fa-circle-down::before {\n content: \"\\f358\"; }\n\n.fa-arrow-alt-circle-down::before {\n content: \"\\f358\"; }\n\n.fa-grill::before {\n content: \"\\e5a3\"; }\n\n.fa-arrows-turn-to-dots::before {\n content: \"\\e4c1\"; }\n\n.fa-chart-mixed::before {\n content: \"\\f643\"; }\n\n.fa-analytics::before {\n content: \"\\f643\"; }\n\n.fa-florin-sign::before {\n content: \"\\e184\"; }\n\n.fa-arrow-down-short-wide::before {\n content: \"\\f884\"; }\n\n.fa-sort-amount-desc::before {\n content: \"\\f884\"; }\n\n.fa-sort-amount-down-alt::before {\n content: \"\\f884\"; }\n\n.fa-less-than::before {\n content: \"\\3c\"; }\n\n.fa-display-code::before {\n content: \"\\e165\"; }\n\n.fa-desktop-code::before {\n content: \"\\e165\"; }\n\n.fa-face-drooling::before {\n content: \"\\e372\"; }\n\n.fa-oil-temperature::before {\n content: \"\\f614\"; }\n\n.fa-oil-temp::before {\n content: \"\\f614\"; }\n\n.fa-square-question::before {\n content: \"\\f2fd\"; }\n\n.fa-question-square::before {\n content: \"\\f2fd\"; }\n\n.fa-air-conditioner::before {\n content: \"\\f8f4\"; }\n\n.fa-angle-down::before {\n content: \"\\f107\"; }\n\n.fa-mountains::before {\n content: \"\\f6fd\"; }\n\n.fa-omega::before {\n content: \"\\f67a\"; }\n\n.fa-car-tunnel::before {\n content: \"\\e4de\"; }\n\n.fa-person-dolly-empty::before {\n content: \"\\f4d1\"; }\n\n.fa-pan-food::before {\n content: \"\\e42b\"; }\n\n.fa-head-side-cough::before {\n content: \"\\e061\"; }\n\n.fa-grip-lines::before {\n content: \"\\f7a4\"; }\n\n.fa-thumbs-down::before {\n content: \"\\f165\"; }\n\n.fa-user-lock::before {\n content: \"\\f502\"; }\n\n.fa-arrow-right-long::before {\n content: \"\\f178\"; }\n\n.fa-long-arrow-right::before {\n content: \"\\f178\"; }\n\n.fa-tickets-airline::before {\n content: \"\\e29b\"; }\n\n.fa-tickets-perforated-plane::before {\n content: \"\\e29b\"; }\n\n.fa-tickets-plane::before {\n content: \"\\e29b\"; }\n\n.fa-tent-double-peak::before {\n content: \"\\e627\"; }\n\n.fa-anchor-circle-xmark::before {\n content: \"\\e4ac\"; }\n\n.fa-ellipsis::before {\n content: \"\\f141\"; }\n\n.fa-ellipsis-h::before {\n content: \"\\f141\"; }\n\n.fa-nfc-slash::before {\n content: \"\\e1fc\"; }\n\n.fa-chess-pawn::before {\n content: \"\\f443\"; }\n\n.fa-kit-medical::before {\n content: \"\\f479\"; }\n\n.fa-first-aid::before {\n content: \"\\f479\"; }\n\n.fa-grid-2-plus::before {\n content: \"\\e197\"; }\n\n.fa-bells::before {\n content: \"\\f77f\"; }\n\n.fa-person-through-window::before {\n content: \"\\e5a9\"; }\n\n.fa-toolbox::before {\n content: \"\\f552\"; }\n\n.fa-envelope-dot::before {\n content: \"\\e16f\"; }\n\n.fa-envelope-badge::before {\n content: \"\\e16f\"; }\n\n.fa-magnifying-glass-waveform::before {\n content: \"\\e661\"; }\n\n.fa-hands-holding-circle::before {\n content: \"\\e4fb\"; }\n\n.fa-bug::before {\n content: \"\\f188\"; }\n\n.fa-bowl-chopsticks::before {\n content: \"\\e2e9\"; }\n\n.fa-credit-card::before {\n content: \"\\f09d\"; }\n\n.fa-credit-card-alt::before {\n content: \"\\f09d\"; }\n\n.fa-circle-s::before {\n content: \"\\e121\"; }\n\n.fa-box-ballot::before {\n content: \"\\f735\"; }\n\n.fa-car::before {\n content: \"\\f1b9\"; }\n\n.fa-automobile::before {\n content: \"\\f1b9\"; }\n\n.fa-hand-holding-hand::before {\n content: \"\\e4f7\"; }\n\n.fa-user-tie-hair::before {\n content: \"\\e45f\"; }\n\n.fa-podium-star::before {\n content: \"\\f758\"; }\n\n.fa-user-hair-mullet::before {\n content: \"\\e45c\"; }\n\n.fa-business-front::before {\n content: \"\\e45c\"; }\n\n.fa-party-back::before {\n content: \"\\e45c\"; }\n\n.fa-trian-balbot::before {\n content: \"\\e45c\"; }\n\n.fa-microphone-stand::before {\n content: \"\\f8cb\"; }\n\n.fa-book-open-reader::before {\n content: \"\\f5da\"; }\n\n.fa-book-reader::before {\n content: \"\\f5da\"; }\n\n.fa-family-dress::before {\n content: \"\\e301\"; }\n\n.fa-circle-x::before {\n content: \"\\e12e\"; }\n\n.fa-cabin::before {\n content: \"\\e46d\"; }\n\n.fa-mountain-sun::before {\n content: \"\\e52f\"; }\n\n.fa-chart-simple-horizontal::before {\n content: \"\\e474\"; }\n\n.fa-arrows-left-right-to-line::before {\n content: \"\\e4ba\"; }\n\n.fa-hand-back-point-left::before {\n content: \"\\e19f\"; }\n\n.fa-message-dots::before {\n content: \"\\f4a3\"; }\n\n.fa-comment-alt-dots::before {\n content: \"\\f4a3\"; }\n\n.fa-messaging::before {\n content: \"\\f4a3\"; }\n\n.fa-file-heart::before {\n content: \"\\e176\"; }\n\n.fa-beer-mug::before {\n content: \"\\e0b3\"; }\n\n.fa-beer-foam::before {\n content: \"\\e0b3\"; }\n\n.fa-dice-d20::before {\n content: \"\\f6cf\"; }\n\n.fa-drone::before {\n content: \"\\f85f\"; }\n\n.fa-truck-droplet::before {\n content: \"\\e58c\"; }\n\n.fa-file-circle-xmark::before {\n content: \"\\e5a1\"; }\n\n.fa-temperature-arrow-up::before {\n content: \"\\e040\"; }\n\n.fa-temperature-up::before {\n content: \"\\e040\"; }\n\n.fa-medal::before {\n content: \"\\f5a2\"; }\n\n.fa-person-fairy::before {\n content: \"\\e608\"; }\n\n.fa-bed::before {\n content: \"\\f236\"; }\n\n.fa-book-copy::before {\n content: \"\\e0be\"; }\n\n.fa-square-h::before {\n content: \"\\f0fd\"; }\n\n.fa-h-square::before {\n content: \"\\f0fd\"; }\n\n.fa-square-c::before {\n content: \"\\e266\"; }\n\n.fa-clock-two::before {\n content: \"\\e35a\"; }\n\n.fa-square-ellipsis-vertical::before {\n content: \"\\e26f\"; }\n\n.fa-calendar-users::before {\n content: \"\\e5e2\"; }\n\n.fa-podcast::before {\n content: \"\\f2ce\"; }\n\n.fa-bee::before {\n content: \"\\e0b2\"; }\n\n.fa-temperature-full::before {\n content: \"\\f2c7\"; }\n\n.fa-temperature-4::before {\n content: \"\\f2c7\"; }\n\n.fa-thermometer-4::before {\n content: \"\\f2c7\"; }\n\n.fa-thermometer-full::before {\n content: \"\\f2c7\"; }\n\n.fa-bell::before {\n content: \"\\f0f3\"; }\n\n.fa-candy-bar::before {\n content: \"\\e3e8\"; }\n\n.fa-chocolate-bar::before {\n content: \"\\e3e8\"; }\n\n.fa-xmark-large::before {\n content: \"\\e59b\"; }\n\n.fa-pinata::before {\n content: \"\\e3c3\"; }\n\n.fa-file-ppt::before {\n content: \"\\e64a\"; }\n\n.fa-arrows-from-line::before {\n content: \"\\e0a4\"; }\n\n.fa-superscript::before {\n content: \"\\f12b\"; }\n\n.fa-bowl-spoon::before {\n content: \"\\e3e0\"; }\n\n.fa-hexagon-check::before {\n content: \"\\e416\"; }\n\n.fa-plug-circle-xmark::before {\n content: \"\\e560\"; }\n\n.fa-star-of-life::before {\n content: \"\\f621\"; }\n\n.fa-phone-slash::before {\n content: \"\\f3dd\"; }\n\n.fa-traffic-light-stop::before {\n content: \"\\f63a\"; }\n\n.fa-paint-roller::before {\n content: \"\\f5aa\"; }\n\n.fa-accent-grave::before {\n content: \"\\60\"; }\n\n.fa-handshake-angle::before {\n content: \"\\f4c4\"; }\n\n.fa-hands-helping::before {\n content: \"\\f4c4\"; }\n\n.fa-circle-0::before {\n content: \"\\e0ed\"; }\n\n.fa-dial-med-low::before {\n content: \"\\e160\"; }\n\n.fa-location-dot::before {\n content: \"\\f3c5\"; }\n\n.fa-map-marker-alt::before {\n content: \"\\f3c5\"; }\n\n.fa-crab::before {\n content: \"\\e3ff\"; }\n\n.fa-box-open-full::before {\n content: \"\\f49c\"; }\n\n.fa-box-full::before {\n content: \"\\f49c\"; }\n\n.fa-file::before {\n content: \"\\f15b\"; }\n\n.fa-greater-than::before {\n content: \"\\3e\"; }\n\n.fa-quotes::before {\n content: \"\\e234\"; }\n\n.fa-pretzel::before {\n content: \"\\e441\"; }\n\n.fa-t-rex::before {\n content: \"\\e629\"; }\n\n.fa-person-swimming::before {\n content: \"\\f5c4\"; }\n\n.fa-swimmer::before {\n content: \"\\f5c4\"; }\n\n.fa-arrow-down::before {\n content: \"\\f063\"; }\n\n.fa-user-robot-xmarks::before {\n content: \"\\e4a7\"; }\n\n.fa-message-quote::before {\n content: \"\\e1e4\"; }\n\n.fa-comment-alt-quote::before {\n content: \"\\e1e4\"; }\n\n.fa-candy-corn::before {\n content: \"\\f6bd\"; }\n\n.fa-folder-magnifying-glass::before {\n content: \"\\e18b\"; }\n\n.fa-folder-search::before {\n content: \"\\e18b\"; }\n\n.fa-notebook::before {\n content: \"\\e201\"; }\n\n.fa-circle-wifi::before {\n content: \"\\e67d\"; }\n\n.fa-droplet::before {\n content: \"\\f043\"; }\n\n.fa-tint::before {\n content: \"\\f043\"; }\n\n.fa-bullseye-pointer::before {\n content: \"\\f649\"; }\n\n.fa-eraser::before {\n content: \"\\f12d\"; }\n\n.fa-hexagon-image::before {\n content: \"\\e504\"; }\n\n.fa-earth-americas::before {\n content: \"\\f57d\"; }\n\n.fa-earth::before {\n content: \"\\f57d\"; }\n\n.fa-earth-america::before {\n content: \"\\f57d\"; }\n\n.fa-globe-americas::before {\n content: \"\\f57d\"; }\n\n.fa-file-svg::before {\n content: \"\\e64b\"; }\n\n.fa-crate-apple::before {\n content: \"\\f6b1\"; }\n\n.fa-apple-crate::before {\n content: \"\\f6b1\"; }\n\n.fa-person-burst::before {\n content: \"\\e53b\"; }\n\n.fa-game-board::before {\n content: \"\\f867\"; }\n\n.fa-hat-chef::before {\n content: \"\\f86b\"; }\n\n.fa-hand-back-point-right::before {\n content: \"\\e1a1\"; }\n\n.fa-dove::before {\n content: \"\\f4ba\"; }\n\n.fa-snowflake-droplets::before {\n content: \"\\e5c1\"; }\n\n.fa-battery-empty::before {\n content: \"\\f244\"; }\n\n.fa-battery-0::before {\n content: \"\\f244\"; }\n\n.fa-grid-4::before {\n content: \"\\e198\"; }\n\n.fa-socks::before {\n content: \"\\f696\"; }\n\n.fa-face-sunglasses::before {\n content: \"\\e398\"; }\n\n.fa-inbox::before {\n content: \"\\f01c\"; }\n\n.fa-square-0::before {\n content: \"\\e255\"; }\n\n.fa-section::before {\n content: \"\\e447\"; }\n\n.fa-square-this-way-up::before {\n content: \"\\f49f\"; }\n\n.fa-box-up::before {\n content: \"\\f49f\"; }\n\n.fa-gauge-high::before {\n content: \"\\f625\"; }\n\n.fa-tachometer-alt::before {\n content: \"\\f625\"; }\n\n.fa-tachometer-alt-fast::before {\n content: \"\\f625\"; }\n\n.fa-square-ampersand::before {\n content: \"\\e260\"; }\n\n.fa-envelope-open-text::before {\n content: \"\\f658\"; }\n\n.fa-lamp-desk::before {\n content: \"\\e014\"; }\n\n.fa-hospital::before {\n content: \"\\f0f8\"; }\n\n.fa-hospital-alt::before {\n content: \"\\f0f8\"; }\n\n.fa-hospital-wide::before {\n content: \"\\f0f8\"; }\n\n.fa-poll-people::before {\n content: \"\\f759\"; }\n\n.fa-whiskey-glass-ice::before {\n content: \"\\f7a1\"; }\n\n.fa-glass-whiskey-rocks::before {\n content: \"\\f7a1\"; }\n\n.fa-wine-bottle::before {\n content: \"\\f72f\"; }\n\n.fa-chess-rook::before {\n content: \"\\f447\"; }\n\n.fa-user-bounty-hunter::before {\n content: \"\\e2bf\"; }\n\n.fa-bars-staggered::before {\n content: \"\\f550\"; }\n\n.fa-reorder::before {\n content: \"\\f550\"; }\n\n.fa-stream::before {\n content: \"\\f550\"; }\n\n.fa-diagram-sankey::before {\n content: \"\\e158\"; }\n\n.fa-cloud-hail-mixed::before {\n content: \"\\f73a\"; }\n\n.fa-circle-up-left::before {\n content: \"\\e128\"; }\n\n.fa-dharmachakra::before {\n content: \"\\f655\"; }\n\n.fa-objects-align-left::before {\n content: \"\\e3be\"; }\n\n.fa-oil-can-drip::before {\n content: \"\\e205\"; }\n\n.fa-face-smiling-hands::before {\n content: \"\\e396\"; }\n\n.fa-broccoli::before {\n content: \"\\e3e2\"; }\n\n.fa-route-interstate::before {\n content: \"\\f61b\"; }\n\n.fa-ear-muffs::before {\n content: \"\\f795\"; }\n\n.fa-hotdog::before {\n content: \"\\f80f\"; }\n\n.fa-transporter-empty::before {\n content: \"\\e046\"; }\n\n.fa-person-walking-with-cane::before {\n content: \"\\f29d\"; }\n\n.fa-blind::before {\n content: \"\\f29d\"; }\n\n.fa-angle-90::before {\n content: \"\\e08d\"; }\n\n.fa-rectangle-terminal::before {\n content: \"\\e236\"; }\n\n.fa-kite::before {\n content: \"\\f6f4\"; }\n\n.fa-drum::before {\n content: \"\\f569\"; }\n\n.fa-scrubber::before {\n content: \"\\f2f8\"; }\n\n.fa-ice-cream::before {\n content: \"\\f810\"; }\n\n.fa-heart-circle-bolt::before {\n content: \"\\e4fc\"; }\n\n.fa-fish-bones::before {\n content: \"\\e304\"; }\n\n.fa-deer-rudolph::before {\n content: \"\\f78f\"; }\n\n.fa-fax::before {\n content: \"\\f1ac\"; }\n\n.fa-paragraph::before {\n content: \"\\f1dd\"; }\n\n.fa-head-side-heart::before {\n content: \"\\e1aa\"; }\n\n.fa-square-e::before {\n content: \"\\e26d\"; }\n\n.fa-meter-fire::before {\n content: \"\\e1eb\"; }\n\n.fa-cloud-hail::before {\n content: \"\\f739\"; }\n\n.fa-check-to-slot::before {\n content: \"\\f772\"; }\n\n.fa-vote-yea::before {\n content: \"\\f772\"; }\n\n.fa-money-from-bracket::before {\n content: \"\\e312\"; }\n\n.fa-star-half::before {\n content: \"\\f089\"; }\n\n.fa-car-bus::before {\n content: \"\\f85a\"; }\n\n.fa-speaker::before {\n content: \"\\f8df\"; }\n\n.fa-timer::before {\n content: \"\\e29e\"; }\n\n.fa-boxes-stacked::before {\n content: \"\\f468\"; }\n\n.fa-boxes::before {\n content: \"\\f468\"; }\n\n.fa-boxes-alt::before {\n content: \"\\f468\"; }\n\n.fa-landmark-magnifying-glass::before {\n content: \"\\e622\"; }\n\n.fa-grill-hot::before {\n content: \"\\e5a5\"; }\n\n.fa-ballot-check::before {\n content: \"\\f733\"; }\n\n.fa-link::before {\n content: \"\\f0c1\"; }\n\n.fa-chain::before {\n content: \"\\f0c1\"; }\n\n.fa-ear-listen::before {\n content: \"\\f2a2\"; }\n\n.fa-assistive-listening-systems::before {\n content: \"\\f2a2\"; }\n\n.fa-file-minus::before {\n content: \"\\f318\"; }\n\n.fa-tree-city::before {\n content: \"\\e587\"; }\n\n.fa-play::before {\n content: \"\\f04b\"; }\n\n.fa-font::before {\n content: \"\\f031\"; }\n\n.fa-cup-togo::before {\n content: \"\\f6c5\"; }\n\n.fa-coffee-togo::before {\n content: \"\\f6c5\"; }\n\n.fa-square-down-left::before {\n content: \"\\e26b\"; }\n\n.fa-burger-lettuce::before {\n content: \"\\e3e3\"; }\n\n.fa-table-cells-row-lock::before {\n content: \"\\e67a\"; }\n\n.fa-rupiah-sign::before {\n content: \"\\e23d\"; }\n\n.fa-magnifying-glass::before {\n content: \"\\f002\"; }\n\n.fa-search::before {\n content: \"\\f002\"; }\n\n.fa-table-tennis-paddle-ball::before {\n content: \"\\f45d\"; }\n\n.fa-ping-pong-paddle-ball::before {\n content: \"\\f45d\"; }\n\n.fa-table-tennis::before {\n content: \"\\f45d\"; }\n\n.fa-person-dots-from-line::before {\n content: \"\\f470\"; }\n\n.fa-diagnoses::before {\n content: \"\\f470\"; }\n\n.fa-chevrons-down::before {\n content: \"\\f322\"; }\n\n.fa-chevron-double-down::before {\n content: \"\\f322\"; }\n\n.fa-trash-can-arrow-up::before {\n content: \"\\f82a\"; }\n\n.fa-trash-restore-alt::before {\n content: \"\\f82a\"; }\n\n.fa-signal-good::before {\n content: \"\\f68e\"; }\n\n.fa-signal-3::before {\n content: \"\\f68e\"; }\n\n.fa-location-question::before {\n content: \"\\f60b\"; }\n\n.fa-map-marker-question::before {\n content: \"\\f60b\"; }\n\n.fa-floppy-disk-circle-xmark::before {\n content: \"\\e181\"; }\n\n.fa-floppy-disk-times::before {\n content: \"\\e181\"; }\n\n.fa-save-circle-xmark::before {\n content: \"\\e181\"; }\n\n.fa-save-times::before {\n content: \"\\e181\"; }\n\n.fa-naira-sign::before {\n content: \"\\e1f6\"; }\n\n.fa-peach::before {\n content: \"\\e20b\"; }\n\n.fa-taxi-bus::before {\n content: \"\\e298\"; }\n\n.fa-bracket-curly::before {\n content: \"\\7b\"; }\n\n.fa-bracket-curly-left::before {\n content: \"\\7b\"; }\n\n.fa-lobster::before {\n content: \"\\e421\"; }\n\n.fa-cart-flatbed-empty::before {\n content: \"\\f476\"; }\n\n.fa-dolly-flatbed-empty::before {\n content: \"\\f476\"; }\n\n.fa-colon::before {\n content: \"\\3a\"; }\n\n.fa-cart-arrow-down::before {\n content: \"\\f218\"; }\n\n.fa-wand::before {\n content: \"\\f72a\"; }\n\n.fa-walkie-talkie::before {\n content: \"\\f8ef\"; }\n\n.fa-file-pen::before {\n content: \"\\f31c\"; }\n\n.fa-file-edit::before {\n content: \"\\f31c\"; }\n\n.fa-receipt::before {\n content: \"\\f543\"; }\n\n.fa-table-picnic::before {\n content: \"\\e32d\"; }\n\n.fa-square-pen::before {\n content: \"\\f14b\"; }\n\n.fa-pen-square::before {\n content: \"\\f14b\"; }\n\n.fa-pencil-square::before {\n content: \"\\f14b\"; }\n\n.fa-circle-microphone-lines::before {\n content: \"\\e117\"; }\n\n.fa-microphone-circle-alt::before {\n content: \"\\e117\"; }\n\n.fa-display-slash::before {\n content: \"\\e2fa\"; }\n\n.fa-desktop-slash::before {\n content: \"\\e2fa\"; }\n\n.fa-suitcase-rolling::before {\n content: \"\\f5c1\"; }\n\n.fa-person-circle-exclamation::before {\n content: \"\\e53f\"; }\n\n.fa-transporter-2::before {\n content: \"\\e044\"; }\n\n.fa-hands-holding-diamond::before {\n content: \"\\f47c\"; }\n\n.fa-hand-receiving::before {\n content: \"\\f47c\"; }\n\n.fa-money-bill-simple-wave::before {\n content: \"\\e1f2\"; }\n\n.fa-chevron-down::before {\n content: \"\\f078\"; }\n\n.fa-battery-full::before {\n content: \"\\f240\"; }\n\n.fa-battery::before {\n content: \"\\f240\"; }\n\n.fa-battery-5::before {\n content: \"\\f240\"; }\n\n.fa-bell-plus::before {\n content: \"\\f849\"; }\n\n.fa-book-arrow-right::before {\n content: \"\\e0b9\"; }\n\n.fa-hospitals::before {\n content: \"\\f80e\"; }\n\n.fa-club::before {\n content: \"\\f327\"; }\n\n.fa-skull-crossbones::before {\n content: \"\\f714\"; }\n\n.fa-droplet-degree::before {\n content: \"\\f748\"; }\n\n.fa-dewpoint::before {\n content: \"\\f748\"; }\n\n.fa-code-compare::before {\n content: \"\\e13a\"; }\n\n.fa-list-ul::before {\n content: \"\\f0ca\"; }\n\n.fa-list-dots::before {\n content: \"\\f0ca\"; }\n\n.fa-hand-holding-magic::before {\n content: \"\\f6e5\"; }\n\n.fa-watermelon-slice::before {\n content: \"\\e337\"; }\n\n.fa-circle-ellipsis::before {\n content: \"\\e10a\"; }\n\n.fa-school-lock::before {\n content: \"\\e56f\"; }\n\n.fa-tower-cell::before {\n content: \"\\e585\"; }\n\n.fa-sd-cards::before {\n content: \"\\e240\"; }\n\n.fa-jug-bottle::before {\n content: \"\\e5fb\"; }\n\n.fa-down-long::before {\n content: \"\\f309\"; }\n\n.fa-long-arrow-alt-down::before {\n content: \"\\f309\"; }\n\n.fa-envelopes::before {\n content: \"\\e170\"; }\n\n.fa-phone-office::before {\n content: \"\\f67d\"; }\n\n.fa-ranking-star::before {\n content: \"\\e561\"; }\n\n.fa-chess-king::before {\n content: \"\\f43f\"; }\n\n.fa-nfc-pen::before {\n content: \"\\e1fa\"; }\n\n.fa-person-harassing::before {\n content: \"\\e549\"; }\n\n.fa-magnifying-glass-play::before {\n content: \"\\e660\"; }\n\n.fa-hat-winter::before {\n content: \"\\f7a8\"; }\n\n.fa-brazilian-real-sign::before {\n content: \"\\e46c\"; }\n\n.fa-landmark-dome::before {\n content: \"\\f752\"; }\n\n.fa-landmark-alt::before {\n content: \"\\f752\"; }\n\n.fa-bone-break::before {\n content: \"\\f5d8\"; }\n\n.fa-arrow-up::before {\n content: \"\\f062\"; }\n\n.fa-down-from-dotted-line::before {\n content: \"\\e407\"; }\n\n.fa-tv::before {\n content: \"\\f26c\"; }\n\n.fa-television::before {\n content: \"\\f26c\"; }\n\n.fa-tv-alt::before {\n content: \"\\f26c\"; }\n\n.fa-border-left::before {\n content: \"\\f84f\"; }\n\n.fa-circle-divide::before {\n content: \"\\e106\"; }\n\n.fa-shrimp::before {\n content: \"\\e448\"; }\n\n.fa-list-check::before {\n content: \"\\f0ae\"; }\n\n.fa-tasks::before {\n content: \"\\f0ae\"; }\n\n.fa-diagram-subtask::before {\n content: \"\\e479\"; }\n\n.fa-jug-detergent::before {\n content: \"\\e519\"; }\n\n.fa-circle-user::before {\n content: \"\\f2bd\"; }\n\n.fa-user-circle::before {\n content: \"\\f2bd\"; }\n\n.fa-square-y::before {\n content: \"\\e287\"; }\n\n.fa-user-doctor-hair::before {\n content: \"\\e458\"; }\n\n.fa-planet-ringed::before {\n content: \"\\e020\"; }\n\n.fa-mushroom::before {\n content: \"\\e425\"; }\n\n.fa-user-shield::before {\n content: \"\\f505\"; }\n\n.fa-megaphone::before {\n content: \"\\f675\"; }\n\n.fa-wreath-laurel::before {\n content: \"\\e5d2\"; }\n\n.fa-circle-exclamation-check::before {\n content: \"\\e10d\"; }\n\n.fa-wind::before {\n content: \"\\f72e\"; }\n\n.fa-box-dollar::before {\n content: \"\\f4a0\"; }\n\n.fa-box-usd::before {\n content: \"\\f4a0\"; }\n\n.fa-car-burst::before {\n content: \"\\f5e1\"; }\n\n.fa-car-crash::before {\n content: \"\\f5e1\"; }\n\n.fa-y::before {\n content: \"\\59\"; }\n\n.fa-user-headset::before {\n content: \"\\f82d\"; }\n\n.fa-arrows-retweet::before {\n content: \"\\f361\"; }\n\n.fa-retweet-alt::before {\n content: \"\\f361\"; }\n\n.fa-person-snowboarding::before {\n content: \"\\f7ce\"; }\n\n.fa-snowboarding::before {\n content: \"\\f7ce\"; }\n\n.fa-square-chevron-right::before {\n content: \"\\f32b\"; }\n\n.fa-chevron-square-right::before {\n content: \"\\f32b\"; }\n\n.fa-lacrosse-stick-ball::before {\n content: \"\\e3b6\"; }\n\n.fa-truck-fast::before {\n content: \"\\f48b\"; }\n\n.fa-shipping-fast::before {\n content: \"\\f48b\"; }\n\n.fa-user-magnifying-glass::before {\n content: \"\\e5c5\"; }\n\n.fa-star-sharp::before {\n content: \"\\e28b\"; }\n\n.fa-comment-heart::before {\n content: \"\\e5c8\"; }\n\n.fa-circle-1::before {\n content: \"\\e0ee\"; }\n\n.fa-circle-star::before {\n content: \"\\e123\"; }\n\n.fa-star-circle::before {\n content: \"\\e123\"; }\n\n.fa-fish::before {\n content: \"\\f578\"; }\n\n.fa-cloud-fog::before {\n content: \"\\f74e\"; }\n\n.fa-fog::before {\n content: \"\\f74e\"; }\n\n.fa-waffle::before {\n content: \"\\e466\"; }\n\n.fa-music-note::before {\n content: \"\\f8cf\"; }\n\n.fa-music-alt::before {\n content: \"\\f8cf\"; }\n\n.fa-hexagon-exclamation::before {\n content: \"\\e417\"; }\n\n.fa-cart-shopping-fast::before {\n content: \"\\e0dc\"; }\n\n.fa-object-union::before {\n content: \"\\e49f\"; }\n\n.fa-user-graduate::before {\n content: \"\\f501\"; }\n\n.fa-starfighter::before {\n content: \"\\e037\"; }\n\n.fa-circle-half-stroke::before {\n content: \"\\f042\"; }\n\n.fa-adjust::before {\n content: \"\\f042\"; }\n\n.fa-arrow-right-long-to-line::before {\n content: \"\\e3d5\"; }\n\n.fa-square-arrow-down::before {\n content: \"\\f339\"; }\n\n.fa-arrow-square-down::before {\n content: \"\\f339\"; }\n\n.fa-diamond-half-stroke::before {\n content: \"\\e5b8\"; }\n\n.fa-clapperboard::before {\n content: \"\\e131\"; }\n\n.fa-square-chevron-left::before {\n content: \"\\f32a\"; }\n\n.fa-chevron-square-left::before {\n content: \"\\f32a\"; }\n\n.fa-phone-intercom::before {\n content: \"\\e434\"; }\n\n.fa-link-horizontal::before {\n content: \"\\e1cb\"; }\n\n.fa-chain-horizontal::before {\n content: \"\\e1cb\"; }\n\n.fa-mango::before {\n content: \"\\e30f\"; }\n\n.fa-music-note-slash::before {\n content: \"\\f8d0\"; }\n\n.fa-music-alt-slash::before {\n content: \"\\f8d0\"; }\n\n.fa-circle-radiation::before {\n content: \"\\f7ba\"; }\n\n.fa-radiation-alt::before {\n content: \"\\f7ba\"; }\n\n.fa-face-tongue-sweat::before {\n content: \"\\e39e\"; }\n\n.fa-globe-stand::before {\n content: \"\\f5f6\"; }\n\n.fa-baseball::before {\n content: \"\\f433\"; }\n\n.fa-baseball-ball::before {\n content: \"\\f433\"; }\n\n.fa-circle-p::before {\n content: \"\\e11a\"; }\n\n.fa-award-simple::before {\n content: \"\\e0ab\"; }\n\n.fa-jet-fighter-up::before {\n content: \"\\e518\"; }\n\n.fa-diagram-project::before {\n content: \"\\f542\"; }\n\n.fa-project-diagram::before {\n content: \"\\f542\"; }\n\n.fa-pedestal::before {\n content: \"\\e20d\"; }\n\n.fa-chart-pyramid::before {\n content: \"\\e0e6\"; }\n\n.fa-sidebar::before {\n content: \"\\e24e\"; }\n\n.fa-snowman-head::before {\n content: \"\\f79b\"; }\n\n.fa-frosty-head::before {\n content: \"\\f79b\"; }\n\n.fa-copy::before {\n content: \"\\f0c5\"; }\n\n.fa-burger-glass::before {\n content: \"\\e0ce\"; }\n\n.fa-volume-xmark::before {\n content: \"\\f6a9\"; }\n\n.fa-volume-mute::before {\n content: \"\\f6a9\"; }\n\n.fa-volume-times::before {\n content: \"\\f6a9\"; }\n\n.fa-hand-sparkles::before {\n content: \"\\e05d\"; }\n\n.fa-bars-filter::before {\n content: \"\\e0ad\"; }\n\n.fa-paintbrush-pencil::before {\n content: \"\\e206\"; }\n\n.fa-party-bell::before {\n content: \"\\e31a\"; }\n\n.fa-user-vneck-hair::before {\n content: \"\\e462\"; }\n\n.fa-jack-o-lantern::before {\n content: \"\\f30e\"; }\n\n.fa-grip::before {\n content: \"\\f58d\"; }\n\n.fa-grip-horizontal::before {\n content: \"\\f58d\"; }\n\n.fa-share-from-square::before {\n content: \"\\f14d\"; }\n\n.fa-share-square::before {\n content: \"\\f14d\"; }\n\n.fa-keynote::before {\n content: \"\\f66c\"; }\n\n.fa-child-combatant::before {\n content: \"\\e4e0\"; }\n\n.fa-child-rifle::before {\n content: \"\\e4e0\"; }\n\n.fa-gun::before {\n content: \"\\e19b\"; }\n\n.fa-square-phone::before {\n content: \"\\f098\"; }\n\n.fa-phone-square::before {\n content: \"\\f098\"; }\n\n.fa-hat-beach::before {\n content: \"\\e606\"; }\n\n.fa-plus::before {\n content: \"\\2b\"; }\n\n.fa-add::before {\n content: \"\\2b\"; }\n\n.fa-expand::before {\n content: \"\\f065\"; }\n\n.fa-computer::before {\n content: \"\\e4e5\"; }\n\n.fa-fort::before {\n content: \"\\e486\"; }\n\n.fa-cloud-check::before {\n content: \"\\e35c\"; }\n\n.fa-xmark::before {\n content: \"\\f00d\"; }\n\n.fa-close::before {\n content: \"\\f00d\"; }\n\n.fa-multiply::before {\n content: \"\\f00d\"; }\n\n.fa-remove::before {\n content: \"\\f00d\"; }\n\n.fa-times::before {\n content: \"\\f00d\"; }\n\n.fa-face-smirking::before {\n content: \"\\e397\"; }\n\n.fa-arrows-up-down-left-right::before {\n content: \"\\f047\"; }\n\n.fa-arrows::before {\n content: \"\\f047\"; }\n\n.fa-chalkboard-user::before {\n content: \"\\f51c\"; }\n\n.fa-chalkboard-teacher::before {\n content: \"\\f51c\"; }\n\n.fa-rhombus::before {\n content: \"\\e23b\"; }\n\n.fa-claw-marks::before {\n content: \"\\f6c2\"; }\n\n.fa-peso-sign::before {\n content: \"\\e222\"; }\n\n.fa-face-smile-tongue::before {\n content: \"\\e394\"; }\n\n.fa-cart-circle-xmark::before {\n content: \"\\e3f4\"; }\n\n.fa-building-shield::before {\n content: \"\\e4d8\"; }\n\n.fa-circle-phone-flip::before {\n content: \"\\e11c\"; }\n\n.fa-phone-circle-alt::before {\n content: \"\\e11c\"; }\n\n.fa-baby::before {\n content: \"\\f77c\"; }\n\n.fa-users-line::before {\n content: \"\\e592\"; }\n\n.fa-quote-left::before {\n content: \"\\f10d\"; }\n\n.fa-quote-left-alt::before {\n content: \"\\f10d\"; }\n\n.fa-tractor::before {\n content: \"\\f722\"; }\n\n.fa-down-from-bracket::before {\n content: \"\\e66b\"; }\n\n.fa-key-skeleton::before {\n content: \"\\f6f3\"; }\n\n.fa-trash-arrow-up::before {\n content: \"\\f829\"; }\n\n.fa-trash-restore::before {\n content: \"\\f829\"; }\n\n.fa-arrow-down-up-lock::before {\n content: \"\\e4b0\"; }\n\n.fa-arrow-down-to-bracket::before {\n content: \"\\e094\"; }\n\n.fa-lines-leaning::before {\n content: \"\\e51e\"; }\n\n.fa-square-q::before {\n content: \"\\e27b\"; }\n\n.fa-ruler-combined::before {\n content: \"\\f546\"; }\n\n.fa-symbols::before {\n content: \"\\f86e\"; }\n\n.fa-icons-alt::before {\n content: \"\\f86e\"; }\n\n.fa-copyright::before {\n content: \"\\f1f9\"; }\n\n.fa-flask-gear::before {\n content: \"\\e5f1\"; }\n\n.fa-highlighter-line::before {\n content: \"\\e1af\"; }\n\n.fa-bracket-square::before {\n content: \"\\5b\"; }\n\n.fa-bracket::before {\n content: \"\\5b\"; }\n\n.fa-bracket-left::before {\n content: \"\\5b\"; }\n\n.fa-island-tropical::before {\n content: \"\\f811\"; }\n\n.fa-island-tree-palm::before {\n content: \"\\f811\"; }\n\n.fa-arrow-right-from-line::before {\n content: \"\\f343\"; }\n\n.fa-arrow-from-left::before {\n content: \"\\f343\"; }\n\n.fa-h2::before {\n content: \"\\f314\"; }\n\n.fa-equals::before {\n content: \"\\3d\"; }\n\n.fa-cake-slice::before {\n content: \"\\e3e5\"; }\n\n.fa-shortcake::before {\n content: \"\\e3e5\"; }\n\n.fa-building-magnifying-glass::before {\n content: \"\\e61c\"; }\n\n.fa-peanut::before {\n content: \"\\e430\"; }\n\n.fa-wrench-simple::before {\n content: \"\\e2d1\"; }\n\n.fa-blender::before {\n content: \"\\f517\"; }\n\n.fa-teeth::before {\n content: \"\\f62e\"; }\n\n.fa-tally-2::before {\n content: \"\\e295\"; }\n\n.fa-shekel-sign::before {\n content: \"\\f20b\"; }\n\n.fa-ils::before {\n content: \"\\f20b\"; }\n\n.fa-shekel::before {\n content: \"\\f20b\"; }\n\n.fa-sheqel::before {\n content: \"\\f20b\"; }\n\n.fa-sheqel-sign::before {\n content: \"\\f20b\"; }\n\n.fa-cars::before {\n content: \"\\f85b\"; }\n\n.fa-axe-battle::before {\n content: \"\\f6b3\"; }\n\n.fa-user-hair-long::before {\n content: \"\\e45b\"; }\n\n.fa-map::before {\n content: \"\\f279\"; }\n\n.fa-arrow-left-from-arc::before {\n content: \"\\e615\"; }\n\n.fa-file-circle-info::before {\n content: \"\\e493\"; }\n\n.fa-face-disappointed::before {\n content: \"\\e36f\"; }\n\n.fa-lasso-sparkles::before {\n content: \"\\e1c9\"; }\n\n.fa-clock-eleven::before {\n content: \"\\e347\"; }\n\n.fa-rocket::before {\n content: \"\\f135\"; }\n\n.fa-siren-on::before {\n content: \"\\e02e\"; }\n\n.fa-clock-ten::before {\n content: \"\\e354\"; }\n\n.fa-candle-holder::before {\n content: \"\\f6bc\"; }\n\n.fa-video-arrow-down-left::before {\n content: \"\\e2c8\"; }\n\n.fa-photo-film::before {\n content: \"\\f87c\"; }\n\n.fa-photo-video::before {\n content: \"\\f87c\"; }\n\n.fa-floppy-disk-circle-arrow-right::before {\n content: \"\\e180\"; }\n\n.fa-save-circle-arrow-right::before {\n content: \"\\e180\"; }\n\n.fa-folder-minus::before {\n content: \"\\f65d\"; }\n\n.fa-planet-moon::before {\n content: \"\\e01f\"; }\n\n.fa-face-eyes-xmarks::before {\n content: \"\\e374\"; }\n\n.fa-chart-scatter::before {\n content: \"\\f7ee\"; }\n\n.fa-circle-gf::before {\n content: \"\\e67f\"; }\n\n.fa-display-arrow-down::before {\n content: \"\\e164\"; }\n\n.fa-store::before {\n content: \"\\f54e\"; }\n\n.fa-arrow-trend-up::before {\n content: \"\\e098\"; }\n\n.fa-plug-circle-minus::before {\n content: \"\\e55e\"; }\n\n.fa-olive-branch::before {\n content: \"\\e317\"; }\n\n.fa-angle::before {\n content: \"\\e08c\"; }\n\n.fa-vacuum-robot::before {\n content: \"\\e04e\"; }\n\n.fa-sign-hanging::before {\n content: \"\\f4d9\"; }\n\n.fa-sign::before {\n content: \"\\f4d9\"; }\n\n.fa-square-divide::before {\n content: \"\\e26a\"; }\n\n.fa-folder-check::before {\n content: \"\\e64e\"; }\n\n.fa-signal-stream-slash::before {\n content: \"\\e250\"; }\n\n.fa-bezier-curve::before {\n content: \"\\f55b\"; }\n\n.fa-eye-dropper-half::before {\n content: \"\\e173\"; }\n\n.fa-store-lock::before {\n content: \"\\e4a6\"; }\n\n.fa-bell-slash::before {\n content: \"\\f1f6\"; }\n\n.fa-cloud-bolt-sun::before {\n content: \"\\f76e\"; }\n\n.fa-thunderstorm-sun::before {\n content: \"\\f76e\"; }\n\n.fa-camera-slash::before {\n content: \"\\e0d9\"; }\n\n.fa-comment-quote::before {\n content: \"\\e14c\"; }\n\n.fa-tablet::before {\n content: \"\\f3fb\"; }\n\n.fa-tablet-android::before {\n content: \"\\f3fb\"; }\n\n.fa-school-flag::before {\n content: \"\\e56e\"; }\n\n.fa-message-code::before {\n content: \"\\e1df\"; }\n\n.fa-glass-half::before {\n content: \"\\e192\"; }\n\n.fa-glass-half-empty::before {\n content: \"\\e192\"; }\n\n.fa-glass-half-full::before {\n content: \"\\e192\"; }\n\n.fa-fill::before {\n content: \"\\f575\"; }\n\n.fa-message-minus::before {\n content: \"\\f4a7\"; }\n\n.fa-comment-alt-minus::before {\n content: \"\\f4a7\"; }\n\n.fa-angle-up::before {\n content: \"\\f106\"; }\n\n.fa-dinosaur::before {\n content: \"\\e5fe\"; }\n\n.fa-drumstick-bite::before {\n content: \"\\f6d7\"; }\n\n.fa-link-horizontal-slash::before {\n content: \"\\e1cc\"; }\n\n.fa-chain-horizontal-slash::before {\n content: \"\\e1cc\"; }\n\n.fa-holly-berry::before {\n content: \"\\f7aa\"; }\n\n.fa-nose::before {\n content: \"\\e5bd\"; }\n\n.fa-arrow-left-to-arc::before {\n content: \"\\e616\"; }\n\n.fa-chevron-left::before {\n content: \"\\f053\"; }\n\n.fa-bacteria::before {\n content: \"\\e059\"; }\n\n.fa-clouds::before {\n content: \"\\f744\"; }\n\n.fa-money-bill-simple::before {\n content: \"\\e1f1\"; }\n\n.fa-hand-lizard::before {\n content: \"\\f258\"; }\n\n.fa-table-pivot::before {\n content: \"\\e291\"; }\n\n.fa-filter-slash::before {\n content: \"\\e17d\"; }\n\n.fa-trash-can-undo::before {\n content: \"\\f896\"; }\n\n.fa-trash-can-arrow-turn-left::before {\n content: \"\\f896\"; }\n\n.fa-trash-undo-alt::before {\n content: \"\\f896\"; }\n\n.fa-notdef::before {\n content: \"\\e1fe\"; }\n\n.fa-disease::before {\n content: \"\\f7fa\"; }\n\n.fa-person-to-door::before {\n content: \"\\e433\"; }\n\n.fa-turntable::before {\n content: \"\\f8e4\"; }\n\n.fa-briefcase-medical::before {\n content: \"\\f469\"; }\n\n.fa-genderless::before {\n content: \"\\f22d\"; }\n\n.fa-chevron-right::before {\n content: \"\\f054\"; }\n\n.fa-signal-weak::before {\n content: \"\\f68c\"; }\n\n.fa-signal-1::before {\n content: \"\\f68c\"; }\n\n.fa-clock-five::before {\n content: \"\\e349\"; }\n\n.fa-retweet::before {\n content: \"\\f079\"; }\n\n.fa-car-rear::before {\n content: \"\\f5de\"; }\n\n.fa-car-alt::before {\n content: \"\\f5de\"; }\n\n.fa-pump-soap::before {\n content: \"\\e06b\"; }\n\n.fa-computer-classic::before {\n content: \"\\f8b1\"; }\n\n.fa-frame::before {\n content: \"\\e495\"; }\n\n.fa-video-slash::before {\n content: \"\\f4e2\"; }\n\n.fa-battery-quarter::before {\n content: \"\\f243\"; }\n\n.fa-battery-2::before {\n content: \"\\f243\"; }\n\n.fa-ellipsis-stroke::before {\n content: \"\\f39b\"; }\n\n.fa-ellipsis-h-alt::before {\n content: \"\\f39b\"; }\n\n.fa-radio::before {\n content: \"\\f8d7\"; }\n\n.fa-baby-carriage::before {\n content: \"\\f77d\"; }\n\n.fa-carriage-baby::before {\n content: \"\\f77d\"; }\n\n.fa-face-expressionless::before {\n content: \"\\e373\"; }\n\n.fa-down-to-dotted-line::before {\n content: \"\\e408\"; }\n\n.fa-cloud-music::before {\n content: \"\\f8ae\"; }\n\n.fa-traffic-light::before {\n content: \"\\f637\"; }\n\n.fa-cloud-minus::before {\n content: \"\\e35d\"; }\n\n.fa-thermometer::before {\n content: \"\\f491\"; }\n\n.fa-shield-minus::before {\n content: \"\\e249\"; }\n\n.fa-vr-cardboard::before {\n content: \"\\f729\"; }\n\n.fa-car-tilt::before {\n content: \"\\f5e5\"; }\n\n.fa-gauge-circle-minus::before {\n content: \"\\e497\"; }\n\n.fa-brightness-low::before {\n content: \"\\e0ca\"; }\n\n.fa-hand-middle-finger::before {\n content: \"\\f806\"; }\n\n.fa-percent::before {\n content: \"\\25\"; }\n\n.fa-percentage::before {\n content: \"\\25\"; }\n\n.fa-truck-moving::before {\n content: \"\\f4df\"; }\n\n.fa-glass-water-droplet::before {\n content: \"\\e4f5\"; }\n\n.fa-conveyor-belt::before {\n content: \"\\f46e\"; }\n\n.fa-location-check::before {\n content: \"\\f606\"; }\n\n.fa-map-marker-check::before {\n content: \"\\f606\"; }\n\n.fa-coin-vertical::before {\n content: \"\\e3fd\"; }\n\n.fa-display::before {\n content: \"\\e163\"; }\n\n.fa-person-sign::before {\n content: \"\\f757\"; }\n\n.fa-face-smile::before {\n content: \"\\f118\"; }\n\n.fa-smile::before {\n content: \"\\f118\"; }\n\n.fa-phone-hangup::before {\n content: \"\\e225\"; }\n\n.fa-signature-slash::before {\n content: \"\\e3cb\"; }\n\n.fa-thumbtack::before {\n content: \"\\f08d\"; }\n\n.fa-thumb-tack::before {\n content: \"\\f08d\"; }\n\n.fa-wheat-slash::before {\n content: \"\\e339\"; }\n\n.fa-trophy::before {\n content: \"\\f091\"; }\n\n.fa-clouds-sun::before {\n content: \"\\f746\"; }\n\n.fa-person-praying::before {\n content: \"\\f683\"; }\n\n.fa-pray::before {\n content: \"\\f683\"; }\n\n.fa-hammer::before {\n content: \"\\f6e3\"; }\n\n.fa-face-vomit::before {\n content: \"\\e3a0\"; }\n\n.fa-speakers::before {\n content: \"\\f8e0\"; }\n\n.fa-tty-answer::before {\n content: \"\\e2b9\"; }\n\n.fa-teletype-answer::before {\n content: \"\\e2b9\"; }\n\n.fa-mug-tea-saucer::before {\n content: \"\\e1f5\"; }\n\n.fa-diagram-lean-canvas::before {\n content: \"\\e156\"; }\n\n.fa-alt::before {\n content: \"\\e08a\"; }\n\n.fa-dial::before {\n content: \"\\e15b\"; }\n\n.fa-dial-med-high::before {\n content: \"\\e15b\"; }\n\n.fa-hand-peace::before {\n content: \"\\f25b\"; }\n\n.fa-circle-trash::before {\n content: \"\\e126\"; }\n\n.fa-trash-circle::before {\n content: \"\\e126\"; }\n\n.fa-rotate::before {\n content: \"\\f2f1\"; }\n\n.fa-sync-alt::before {\n content: \"\\f2f1\"; }\n\n.fa-circle-quarters::before {\n content: \"\\e3f8\"; }\n\n.fa-spinner::before {\n content: \"\\f110\"; }\n\n.fa-tower-control::before {\n content: \"\\e2a2\"; }\n\n.fa-arrow-up-triangle-square::before {\n content: \"\\f88a\"; }\n\n.fa-sort-shapes-up::before {\n content: \"\\f88a\"; }\n\n.fa-whale::before {\n content: \"\\f72c\"; }\n\n.fa-robot::before {\n content: \"\\f544\"; }\n\n.fa-peace::before {\n content: \"\\f67c\"; }\n\n.fa-party-horn::before {\n content: \"\\e31b\"; }\n\n.fa-gears::before {\n content: \"\\f085\"; }\n\n.fa-cogs::before {\n content: \"\\f085\"; }\n\n.fa-sun-bright::before {\n content: \"\\e28f\"; }\n\n.fa-sun-alt::before {\n content: \"\\e28f\"; }\n\n.fa-warehouse::before {\n content: \"\\f494\"; }\n\n.fa-conveyor-belt-arm::before {\n content: \"\\e5f8\"; }\n\n.fa-lock-keyhole-open::before {\n content: \"\\f3c2\"; }\n\n.fa-lock-open-alt::before {\n content: \"\\f3c2\"; }\n\n.fa-square-fragile::before {\n content: \"\\f49b\"; }\n\n.fa-box-fragile::before {\n content: \"\\f49b\"; }\n\n.fa-square-wine-glass-crack::before {\n content: \"\\f49b\"; }\n\n.fa-arrow-up-right-dots::before {\n content: \"\\e4b7\"; }\n\n.fa-square-n::before {\n content: \"\\e277\"; }\n\n.fa-splotch::before {\n content: \"\\f5bc\"; }\n\n.fa-face-grin-hearts::before {\n content: \"\\f584\"; }\n\n.fa-grin-hearts::before {\n content: \"\\f584\"; }\n\n.fa-meter::before {\n content: \"\\e1e8\"; }\n\n.fa-mandolin::before {\n content: \"\\f6f9\"; }\n\n.fa-dice-four::before {\n content: \"\\f524\"; }\n\n.fa-sim-card::before {\n content: \"\\f7c4\"; }\n\n.fa-transgender::before {\n content: \"\\f225\"; }\n\n.fa-transgender-alt::before {\n content: \"\\f225\"; }\n\n.fa-mercury::before {\n content: \"\\f223\"; }\n\n.fa-up-from-bracket::before {\n content: \"\\e590\"; }\n\n.fa-knife-kitchen::before {\n content: \"\\f6f5\"; }\n\n.fa-border-right::before {\n content: \"\\f852\"; }\n\n.fa-arrow-turn-down::before {\n content: \"\\f149\"; }\n\n.fa-level-down::before {\n content: \"\\f149\"; }\n\n.fa-spade::before {\n content: \"\\f2f4\"; }\n\n.fa-card-spade::before {\n content: \"\\e3ec\"; }\n\n.fa-line-columns::before {\n content: \"\\f870\"; }\n\n.fa-ant::before {\n content: \"\\e680\"; }\n\n.fa-arrow-right-to-line::before {\n content: \"\\f340\"; }\n\n.fa-arrow-to-right::before {\n content: \"\\f340\"; }\n\n.fa-person-falling-burst::before {\n content: \"\\e547\"; }\n\n.fa-flag-pennant::before {\n content: \"\\f456\"; }\n\n.fa-pennant::before {\n content: \"\\f456\"; }\n\n.fa-conveyor-belt-empty::before {\n content: \"\\e150\"; }\n\n.fa-user-group-simple::before {\n content: \"\\e603\"; }\n\n.fa-award::before {\n content: \"\\f559\"; }\n\n.fa-ticket-simple::before {\n content: \"\\f3ff\"; }\n\n.fa-ticket-alt::before {\n content: \"\\f3ff\"; }\n\n.fa-building::before {\n content: \"\\f1ad\"; }\n\n.fa-angles-left::before {\n content: \"\\f100\"; }\n\n.fa-angle-double-left::before {\n content: \"\\f100\"; }\n\n.fa-camcorder::before {\n content: \"\\f8a8\"; }\n\n.fa-video-handheld::before {\n content: \"\\f8a8\"; }\n\n.fa-pancakes::before {\n content: \"\\e42d\"; }\n\n.fa-album-circle-user::before {\n content: \"\\e48d\"; }\n\n.fa-subtitles-slash::before {\n content: \"\\e610\"; }\n\n.fa-qrcode::before {\n content: \"\\f029\"; }\n\n.fa-dice-d10::before {\n content: \"\\f6cd\"; }\n\n.fa-fireplace::before {\n content: \"\\f79a\"; }\n\n.fa-browser::before {\n content: \"\\f37e\"; }\n\n.fa-pen-paintbrush::before {\n content: \"\\f618\"; }\n\n.fa-pencil-paintbrush::before {\n content: \"\\f618\"; }\n\n.fa-fish-cooked::before {\n content: \"\\f7fe\"; }\n\n.fa-chair-office::before {\n content: \"\\f6c1\"; }\n\n.fa-magnifying-glass-music::before {\n content: \"\\e65f\"; }\n\n.fa-nesting-dolls::before {\n content: \"\\e3ba\"; }\n\n.fa-clock-rotate-left::before {\n content: \"\\f1da\"; }\n\n.fa-history::before {\n content: \"\\f1da\"; }\n\n.fa-trumpet::before {\n content: \"\\f8e3\"; }\n\n.fa-face-grin-beam-sweat::before {\n content: \"\\f583\"; }\n\n.fa-grin-beam-sweat::before {\n content: \"\\f583\"; }\n\n.fa-fire-smoke::before {\n content: \"\\f74b\"; }\n\n.fa-phone-missed::before {\n content: \"\\e226\"; }\n\n.fa-file-export::before {\n content: \"\\f56e\"; }\n\n.fa-arrow-right-from-file::before {\n content: \"\\f56e\"; }\n\n.fa-shield::before {\n content: \"\\f132\"; }\n\n.fa-shield-blank::before {\n content: \"\\f132\"; }\n\n.fa-arrow-up-short-wide::before {\n content: \"\\f885\"; }\n\n.fa-sort-amount-up-alt::before {\n content: \"\\f885\"; }\n\n.fa-arrows-repeat-1::before {\n content: \"\\f366\"; }\n\n.fa-repeat-1-alt::before {\n content: \"\\f366\"; }\n\n.fa-gun-slash::before {\n content: \"\\e19c\"; }\n\n.fa-avocado::before {\n content: \"\\e0aa\"; }\n\n.fa-binary::before {\n content: \"\\e33b\"; }\n\n.fa-glasses-round::before {\n content: \"\\f5f5\"; }\n\n.fa-glasses-alt::before {\n content: \"\\f5f5\"; }\n\n.fa-phone-plus::before {\n content: \"\\f4d2\"; }\n\n.fa-ditto::before {\n content: \"\\22\"; }\n\n.fa-person-seat::before {\n content: \"\\e21e\"; }\n\n.fa-house-medical::before {\n content: \"\\e3b2\"; }\n\n.fa-golf-ball-tee::before {\n content: \"\\f450\"; }\n\n.fa-golf-ball::before {\n content: \"\\f450\"; }\n\n.fa-circle-chevron-left::before {\n content: \"\\f137\"; }\n\n.fa-chevron-circle-left::before {\n content: \"\\f137\"; }\n\n.fa-house-chimney-window::before {\n content: \"\\e00d\"; }\n\n.fa-scythe::before {\n content: \"\\f710\"; }\n\n.fa-pen-nib::before {\n content: \"\\f5ad\"; }\n\n.fa-ban-parking::before {\n content: \"\\f616\"; }\n\n.fa-parking-circle-slash::before {\n content: \"\\f616\"; }\n\n.fa-tent-arrow-turn-left::before {\n content: \"\\e580\"; }\n\n.fa-face-diagonal-mouth::before {\n content: \"\\e47e\"; }\n\n.fa-diagram-cells::before {\n content: \"\\e475\"; }\n\n.fa-cricket-bat-ball::before {\n content: \"\\f449\"; }\n\n.fa-cricket::before {\n content: \"\\f449\"; }\n\n.fa-tents::before {\n content: \"\\e582\"; }\n\n.fa-wand-magic::before {\n content: \"\\f0d0\"; }\n\n.fa-magic::before {\n content: \"\\f0d0\"; }\n\n.fa-dog::before {\n content: \"\\f6d3\"; }\n\n.fa-pen-line::before {\n content: \"\\e212\"; }\n\n.fa-atom-simple::before {\n content: \"\\f5d3\"; }\n\n.fa-atom-alt::before {\n content: \"\\f5d3\"; }\n\n.fa-ampersand::before {\n content: \"\\26\"; }\n\n.fa-carrot::before {\n content: \"\\f787\"; }\n\n.fa-arrow-up-from-line::before {\n content: \"\\f342\"; }\n\n.fa-arrow-from-bottom::before {\n content: \"\\f342\"; }\n\n.fa-moon::before {\n content: \"\\f186\"; }\n\n.fa-pen-slash::before {\n content: \"\\e213\"; }\n\n.fa-wine-glass-empty::before {\n content: \"\\f5ce\"; }\n\n.fa-wine-glass-alt::before {\n content: \"\\f5ce\"; }\n\n.fa-square-star::before {\n content: \"\\e27f\"; }\n\n.fa-cheese::before {\n content: \"\\f7ef\"; }\n\n.fa-send-backward::before {\n content: \"\\f87f\"; }\n\n.fa-yin-yang::before {\n content: \"\\f6ad\"; }\n\n.fa-music::before {\n content: \"\\f001\"; }\n\n.fa-compass-slash::before {\n content: \"\\f5e9\"; }\n\n.fa-clock-one::before {\n content: \"\\e34e\"; }\n\n.fa-file-music::before {\n content: \"\\f8b6\"; }\n\n.fa-code-commit::before {\n content: \"\\f386\"; }\n\n.fa-temperature-low::before {\n content: \"\\f76b\"; }\n\n.fa-person-biking::before {\n content: \"\\f84a\"; }\n\n.fa-biking::before {\n content: \"\\f84a\"; }\n\n.fa-display-chart-up-circle-currency::before {\n content: \"\\e5e5\"; }\n\n.fa-skeleton::before {\n content: \"\\f620\"; }\n\n.fa-circle-g::before {\n content: \"\\e10f\"; }\n\n.fa-circle-arrow-up-left::before {\n content: \"\\e0fb\"; }\n\n.fa-coin-blank::before {\n content: \"\\e3fb\"; }\n\n.fa-broom::before {\n content: \"\\f51a\"; }\n\n.fa-vacuum::before {\n content: \"\\e04d\"; }\n\n.fa-shield-heart::before {\n content: \"\\e574\"; }\n\n.fa-card-heart::before {\n content: \"\\e3eb\"; }\n\n.fa-lightbulb-cfl-on::before {\n content: \"\\e5a7\"; }\n\n.fa-melon::before {\n content: \"\\e310\"; }\n\n.fa-gopuram::before {\n content: \"\\f664\"; }\n\n.fa-earth-oceania::before {\n content: \"\\e47b\"; }\n\n.fa-globe-oceania::before {\n content: \"\\e47b\"; }\n\n.fa-container-storage::before {\n content: \"\\f4b7\"; }\n\n.fa-face-pouting::before {\n content: \"\\e387\"; }\n\n.fa-square-xmark::before {\n content: \"\\f2d3\"; }\n\n.fa-times-square::before {\n content: \"\\f2d3\"; }\n\n.fa-xmark-square::before {\n content: \"\\f2d3\"; }\n\n.fa-face-explode::before {\n content: \"\\e2fe\"; }\n\n.fa-exploding-head::before {\n content: \"\\e2fe\"; }\n\n.fa-hashtag::before {\n content: \"\\23\"; }\n\n.fa-up-right-and-down-left-from-center::before {\n content: \"\\f424\"; }\n\n.fa-expand-alt::before {\n content: \"\\f424\"; }\n\n.fa-oil-can::before {\n content: \"\\f613\"; }\n\n.fa-t::before {\n content: \"\\54\"; }\n\n.fa-transformer-bolt::before {\n content: \"\\e2a4\"; }\n\n.fa-hippo::before {\n content: \"\\f6ed\"; }\n\n.fa-chart-column::before {\n content: \"\\e0e3\"; }\n\n.fa-cassette-vhs::before {\n content: \"\\f8ec\"; }\n\n.fa-vhs::before {\n content: \"\\f8ec\"; }\n\n.fa-infinity::before {\n content: \"\\f534\"; }\n\n.fa-vial-circle-check::before {\n content: \"\\e596\"; }\n\n.fa-chimney::before {\n content: \"\\f78b\"; }\n\n.fa-object-intersect::before {\n content: \"\\e49d\"; }\n\n.fa-person-arrow-down-to-line::before {\n content: \"\\e538\"; }\n\n.fa-voicemail::before {\n content: \"\\f897\"; }\n\n.fa-block-brick::before {\n content: \"\\e3db\"; }\n\n.fa-wall-brick::before {\n content: \"\\e3db\"; }\n\n.fa-fan::before {\n content: \"\\f863\"; }\n\n.fa-bags-shopping::before {\n content: \"\\f847\"; }\n\n.fa-paragraph-left::before {\n content: \"\\f878\"; }\n\n.fa-paragraph-rtl::before {\n content: \"\\f878\"; }\n\n.fa-person-walking-luggage::before {\n content: \"\\e554\"; }\n\n.fa-caravan-simple::before {\n content: \"\\e000\"; }\n\n.fa-caravan-alt::before {\n content: \"\\e000\"; }\n\n.fa-turtle::before {\n content: \"\\f726\"; }\n\n.fa-pencil-mechanical::before {\n content: \"\\e5ca\"; }\n\n.fa-up-down::before {\n content: \"\\f338\"; }\n\n.fa-arrows-alt-v::before {\n content: \"\\f338\"; }\n\n.fa-cloud-moon-rain::before {\n content: \"\\f73c\"; }\n\n.fa-booth-curtain::before {\n content: \"\\f734\"; }\n\n.fa-calendar::before {\n content: \"\\f133\"; }\n\n.fa-box-heart::before {\n content: \"\\f49d\"; }\n\n.fa-trailer::before {\n content: \"\\e041\"; }\n\n.fa-user-doctor-message::before {\n content: \"\\f82e\"; }\n\n.fa-user-md-chat::before {\n content: \"\\f82e\"; }\n\n.fa-bahai::before {\n content: \"\\f666\"; }\n\n.fa-haykal::before {\n content: \"\\f666\"; }\n\n.fa-lighthouse::before {\n content: \"\\e612\"; }\n\n.fa-amp-guitar::before {\n content: \"\\f8a1\"; }\n\n.fa-sd-card::before {\n content: \"\\f7c2\"; }\n\n.fa-volume-slash::before {\n content: \"\\f2e2\"; }\n\n.fa-border-bottom::before {\n content: \"\\f84d\"; }\n\n.fa-wifi-weak::before {\n content: \"\\f6aa\"; }\n\n.fa-wifi-1::before {\n content: \"\\f6aa\"; }\n\n.fa-dragon::before {\n content: \"\\f6d5\"; }\n\n.fa-shoe-prints::before {\n content: \"\\f54b\"; }\n\n.fa-circle-plus::before {\n content: \"\\f055\"; }\n\n.fa-plus-circle::before {\n content: \"\\f055\"; }\n\n.fa-face-grin-tongue-wink::before {\n content: \"\\f58b\"; }\n\n.fa-grin-tongue-wink::before {\n content: \"\\f58b\"; }\n\n.fa-hand-holding::before {\n content: \"\\f4bd\"; }\n\n.fa-plug-circle-exclamation::before {\n content: \"\\e55d\"; }\n\n.fa-link-slash::before {\n content: \"\\f127\"; }\n\n.fa-chain-broken::before {\n content: \"\\f127\"; }\n\n.fa-chain-slash::before {\n content: \"\\f127\"; }\n\n.fa-unlink::before {\n content: \"\\f127\"; }\n\n.fa-clone::before {\n content: \"\\f24d\"; }\n\n.fa-person-walking-arrow-loop-left::before {\n content: \"\\e551\"; }\n\n.fa-arrow-up-z-a::before {\n content: \"\\f882\"; }\n\n.fa-sort-alpha-up-alt::before {\n content: \"\\f882\"; }\n\n.fa-fire-flame-curved::before {\n content: \"\\f7e4\"; }\n\n.fa-fire-alt::before {\n content: \"\\f7e4\"; }\n\n.fa-tornado::before {\n content: \"\\f76f\"; }\n\n.fa-file-circle-plus::before {\n content: \"\\e494\"; }\n\n.fa-delete-right::before {\n content: \"\\e154\"; }\n\n.fa-book-quran::before {\n content: \"\\f687\"; }\n\n.fa-quran::before {\n content: \"\\f687\"; }\n\n.fa-circle-quarter::before {\n content: \"\\e11f\"; }\n\n.fa-anchor::before {\n content: \"\\f13d\"; }\n\n.fa-border-all::before {\n content: \"\\f84c\"; }\n\n.fa-function::before {\n content: \"\\f661\"; }\n\n.fa-face-angry::before {\n content: \"\\f556\"; }\n\n.fa-angry::before {\n content: \"\\f556\"; }\n\n.fa-people-simple::before {\n content: \"\\e21b\"; }\n\n.fa-cookie-bite::before {\n content: \"\\f564\"; }\n\n.fa-arrow-trend-down::before {\n content: \"\\e097\"; }\n\n.fa-rss::before {\n content: \"\\f09e\"; }\n\n.fa-feed::before {\n content: \"\\f09e\"; }\n\n.fa-face-monocle::before {\n content: \"\\e380\"; }\n\n.fa-draw-polygon::before {\n content: \"\\f5ee\"; }\n\n.fa-scale-balanced::before {\n content: \"\\f24e\"; }\n\n.fa-balance-scale::before {\n content: \"\\f24e\"; }\n\n.fa-calendar-lines::before {\n content: \"\\e0d5\"; }\n\n.fa-calendar-note::before {\n content: \"\\e0d5\"; }\n\n.fa-arrow-down-big-small::before {\n content: \"\\f88c\"; }\n\n.fa-sort-size-down::before {\n content: \"\\f88c\"; }\n\n.fa-gauge-simple-high::before {\n content: \"\\f62a\"; }\n\n.fa-tachometer::before {\n content: \"\\f62a\"; }\n\n.fa-tachometer-fast::before {\n content: \"\\f62a\"; }\n\n.fa-do-not-enter::before {\n content: \"\\f5ec\"; }\n\n.fa-shower::before {\n content: \"\\f2cc\"; }\n\n.fa-dice-d8::before {\n content: \"\\f6d2\"; }\n\n.fa-desktop::before {\n content: \"\\f390\"; }\n\n.fa-desktop-alt::before {\n content: \"\\f390\"; }\n\n.fa-m::before {\n content: \"\\4d\"; }\n\n.fa-spinner-scale::before {\n content: \"\\e62a\"; }\n\n.fa-grip-dots-vertical::before {\n content: \"\\e411\"; }\n\n.fa-face-viewfinder::before {\n content: \"\\e2ff\"; }\n\n.fa-soft-serve::before {\n content: \"\\e400\"; }\n\n.fa-creemee::before {\n content: \"\\e400\"; }\n\n.fa-h5::before {\n content: \"\\e412\"; }\n\n.fa-hand-back-point-down::before {\n content: \"\\e19e\"; }\n\n.fa-table-list::before {\n content: \"\\f00b\"; }\n\n.fa-th-list::before {\n content: \"\\f00b\"; }\n\n.fa-basket-shopping-minus::before {\n content: \"\\e652\"; }\n\n.fa-comment-sms::before {\n content: \"\\f7cd\"; }\n\n.fa-sms::before {\n content: \"\\f7cd\"; }\n\n.fa-rectangle::before {\n content: \"\\f2fa\"; }\n\n.fa-rectangle-landscape::before {\n content: \"\\f2fa\"; }\n\n.fa-clipboard-list-check::before {\n content: \"\\f737\"; }\n\n.fa-turkey::before {\n content: \"\\f725\"; }\n\n.fa-book::before {\n content: \"\\f02d\"; }\n\n.fa-user-plus::before {\n content: \"\\f234\"; }\n\n.fa-ice-skate::before {\n content: \"\\f7ac\"; }\n\n.fa-check::before {\n content: \"\\f00c\"; }\n\n.fa-battery-three-quarters::before {\n content: \"\\f241\"; }\n\n.fa-battery-4::before {\n content: \"\\f241\"; }\n\n.fa-tomato::before {\n content: \"\\e330\"; }\n\n.fa-sword-laser::before {\n content: \"\\e03b\"; }\n\n.fa-house-circle-check::before {\n content: \"\\e509\"; }\n\n.fa-buildings::before {\n content: \"\\e0cc\"; }\n\n.fa-angle-left::before {\n content: \"\\f104\"; }\n\n.fa-cart-flatbed-boxes::before {\n content: \"\\f475\"; }\n\n.fa-dolly-flatbed-alt::before {\n content: \"\\f475\"; }\n\n.fa-diagram-successor::before {\n content: \"\\e47a\"; }\n\n.fa-truck-arrow-right::before {\n content: \"\\e58b\"; }\n\n.fa-square-w::before {\n content: \"\\e285\"; }\n\n.fa-arrows-split-up-and-left::before {\n content: \"\\e4bc\"; }\n\n.fa-lamp::before {\n content: \"\\f4ca\"; }\n\n.fa-airplay::before {\n content: \"\\e089\"; }\n\n.fa-hand-fist::before {\n content: \"\\f6de\"; }\n\n.fa-fist-raised::before {\n content: \"\\f6de\"; }\n\n.fa-shield-quartered::before {\n content: \"\\e575\"; }\n\n.fa-slash-forward::before {\n content: \"\\2f\"; }\n\n.fa-location-pen::before {\n content: \"\\f607\"; }\n\n.fa-map-marker-edit::before {\n content: \"\\f607\"; }\n\n.fa-cloud-moon::before {\n content: \"\\f6c3\"; }\n\n.fa-pot-food::before {\n content: \"\\e43f\"; }\n\n.fa-briefcase::before {\n content: \"\\f0b1\"; }\n\n.fa-person-falling::before {\n content: \"\\e546\"; }\n\n.fa-image-portrait::before {\n content: \"\\f3e0\"; }\n\n.fa-portrait::before {\n content: \"\\f3e0\"; }\n\n.fa-user-tag::before {\n content: \"\\f507\"; }\n\n.fa-rug::before {\n content: \"\\e569\"; }\n\n.fa-print-slash::before {\n content: \"\\f686\"; }\n\n.fa-earth-europe::before {\n content: \"\\f7a2\"; }\n\n.fa-globe-europe::before {\n content: \"\\f7a2\"; }\n\n.fa-cart-flatbed-suitcase::before {\n content: \"\\f59d\"; }\n\n.fa-luggage-cart::before {\n content: \"\\f59d\"; }\n\n.fa-hand-back-point-ribbon::before {\n content: \"\\e1a0\"; }\n\n.fa-rectangle-xmark::before {\n content: \"\\f410\"; }\n\n.fa-rectangle-times::before {\n content: \"\\f410\"; }\n\n.fa-times-rectangle::before {\n content: \"\\f410\"; }\n\n.fa-window-close::before {\n content: \"\\f410\"; }\n\n.fa-tire-rugged::before {\n content: \"\\f634\"; }\n\n.fa-lightbulb-dollar::before {\n content: \"\\f670\"; }\n\n.fa-cowbell::before {\n content: \"\\f8b3\"; }\n\n.fa-baht-sign::before {\n content: \"\\e0ac\"; }\n\n.fa-corner::before {\n content: \"\\e3fe\"; }\n\n.fa-chevrons-right::before {\n content: \"\\f324\"; }\n\n.fa-chevron-double-right::before {\n content: \"\\f324\"; }\n\n.fa-book-open::before {\n content: \"\\f518\"; }\n\n.fa-book-journal-whills::before {\n content: \"\\f66a\"; }\n\n.fa-journal-whills::before {\n content: \"\\f66a\"; }\n\n.fa-inhaler::before {\n content: \"\\f5f9\"; }\n\n.fa-handcuffs::before {\n content: \"\\e4f8\"; }\n\n.fa-snake::before {\n content: \"\\f716\"; }\n\n.fa-triangle-exclamation::before {\n content: \"\\f071\"; }\n\n.fa-exclamation-triangle::before {\n content: \"\\f071\"; }\n\n.fa-warning::before {\n content: \"\\f071\"; }\n\n.fa-note-medical::before {\n content: \"\\e200\"; }\n\n.fa-database::before {\n content: \"\\f1c0\"; }\n\n.fa-down-left::before {\n content: \"\\e16a\"; }\n\n.fa-share::before {\n content: \"\\f064\"; }\n\n.fa-mail-forward::before {\n content: \"\\f064\"; }\n\n.fa-face-thinking::before {\n content: \"\\e39b\"; }\n\n.fa-turn-down-right::before {\n content: \"\\e455\"; }\n\n.fa-bottle-droplet::before {\n content: \"\\e4c4\"; }\n\n.fa-mask-face::before {\n content: \"\\e1d7\"; }\n\n.fa-hill-rockslide::before {\n content: \"\\e508\"; }\n\n.fa-scanner-keyboard::before {\n content: \"\\f489\"; }\n\n.fa-circle-o::before {\n content: \"\\e119\"; }\n\n.fa-grid-horizontal::before {\n content: \"\\e307\"; }\n\n.fa-message-dollar::before {\n content: \"\\f650\"; }\n\n.fa-comment-alt-dollar::before {\n content: \"\\f650\"; }\n\n.fa-right-left::before {\n content: \"\\f362\"; }\n\n.fa-exchange-alt::before {\n content: \"\\f362\"; }\n\n.fa-columns-3::before {\n content: \"\\e361\"; }\n\n.fa-paper-plane::before {\n content: \"\\f1d8\"; }\n\n.fa-road-circle-exclamation::before {\n content: \"\\e565\"; }\n\n.fa-dungeon::before {\n content: \"\\f6d9\"; }\n\n.fa-hand-holding-box::before {\n content: \"\\f47b\"; }\n\n.fa-input-text::before {\n content: \"\\e1bf\"; }\n\n.fa-window-flip::before {\n content: \"\\f40f\"; }\n\n.fa-window-alt::before {\n content: \"\\f40f\"; }\n\n.fa-align-right::before {\n content: \"\\f038\"; }\n\n.fa-scanner-gun::before {\n content: \"\\f488\"; }\n\n.fa-scanner::before {\n content: \"\\f488\"; }\n\n.fa-tire::before {\n content: \"\\f631\"; }\n\n.fa-engine::before {\n content: \"\\e16e\"; }\n\n.fa-money-bill-1-wave::before {\n content: \"\\f53b\"; }\n\n.fa-money-bill-wave-alt::before {\n content: \"\\f53b\"; }\n\n.fa-life-ring::before {\n content: \"\\f1cd\"; }\n\n.fa-hands::before {\n content: \"\\f2a7\"; }\n\n.fa-sign-language::before {\n content: \"\\f2a7\"; }\n\n.fa-signing::before {\n content: \"\\f2a7\"; }\n\n.fa-circle-caret-right::before {\n content: \"\\f330\"; }\n\n.fa-caret-circle-right::before {\n content: \"\\f330\"; }\n\n.fa-turn-left::before {\n content: \"\\e636\"; }\n\n.fa-wheat::before {\n content: \"\\f72d\"; }\n\n.fa-file-spreadsheet::before {\n content: \"\\f65b\"; }\n\n.fa-audio-description-slash::before {\n content: \"\\e0a8\"; }\n\n.fa-bell-ring::before {\n content: \"\\e62c\"; }\n\n.fa-calendar-day::before {\n content: \"\\f783\"; }\n\n.fa-water-ladder::before {\n content: \"\\f5c5\"; }\n\n.fa-ladder-water::before {\n content: \"\\f5c5\"; }\n\n.fa-swimming-pool::before {\n content: \"\\f5c5\"; }\n\n.fa-arrows-up-down::before {\n content: \"\\f07d\"; }\n\n.fa-arrows-v::before {\n content: \"\\f07d\"; }\n\n.fa-chess-pawn-piece::before {\n content: \"\\f444\"; }\n\n.fa-chess-pawn-alt::before {\n content: \"\\f444\"; }\n\n.fa-face-grimace::before {\n content: \"\\f57f\"; }\n\n.fa-grimace::before {\n content: \"\\f57f\"; }\n\n.fa-wheelchair-move::before {\n content: \"\\e2ce\"; }\n\n.fa-wheelchair-alt::before {\n content: \"\\e2ce\"; }\n\n.fa-turn-down::before {\n content: \"\\f3be\"; }\n\n.fa-level-down-alt::before {\n content: \"\\f3be\"; }\n\n.fa-square-s::before {\n content: \"\\e27d\"; }\n\n.fa-rectangle-barcode::before {\n content: \"\\f463\"; }\n\n.fa-barcode-alt::before {\n content: \"\\f463\"; }\n\n.fa-person-walking-arrow-right::before {\n content: \"\\e552\"; }\n\n.fa-square-envelope::before {\n content: \"\\f199\"; }\n\n.fa-envelope-square::before {\n content: \"\\f199\"; }\n\n.fa-dice::before {\n content: \"\\f522\"; }\n\n.fa-unicorn::before {\n content: \"\\f727\"; }\n\n.fa-bowling-ball::before {\n content: \"\\f436\"; }\n\n.fa-pompebled::before {\n content: \"\\e43d\"; }\n\n.fa-brain::before {\n content: \"\\f5dc\"; }\n\n.fa-watch-smart::before {\n content: \"\\e2cc\"; }\n\n.fa-book-user::before {\n content: \"\\f7e7\"; }\n\n.fa-sensor-cloud::before {\n content: \"\\e02c\"; }\n\n.fa-sensor-smoke::before {\n content: \"\\e02c\"; }\n\n.fa-clapperboard-play::before {\n content: \"\\e132\"; }\n\n.fa-bandage::before {\n content: \"\\f462\"; }\n\n.fa-band-aid::before {\n content: \"\\f462\"; }\n\n.fa-calendar-minus::before {\n content: \"\\f272\"; }\n\n.fa-circle-xmark::before {\n content: \"\\f057\"; }\n\n.fa-times-circle::before {\n content: \"\\f057\"; }\n\n.fa-xmark-circle::before {\n content: \"\\f057\"; }\n\n.fa-circle-4::before {\n content: \"\\e0f1\"; }\n\n.fa-gifts::before {\n content: \"\\f79c\"; }\n\n.fa-album-collection::before {\n content: \"\\f8a0\"; }\n\n.fa-hotel::before {\n content: \"\\f594\"; }\n\n.fa-earth-asia::before {\n content: \"\\f57e\"; }\n\n.fa-globe-asia::before {\n content: \"\\f57e\"; }\n\n.fa-id-card-clip::before {\n content: \"\\f47f\"; }\n\n.fa-id-card-alt::before {\n content: \"\\f47f\"; }\n\n.fa-magnifying-glass-plus::before {\n content: \"\\f00e\"; }\n\n.fa-search-plus::before {\n content: \"\\f00e\"; }\n\n.fa-thumbs-up::before {\n content: \"\\f164\"; }\n\n.fa-cloud-showers::before {\n content: \"\\f73f\"; }\n\n.fa-user-clock::before {\n content: \"\\f4fd\"; }\n\n.fa-onion::before {\n content: \"\\e427\"; }\n\n.fa-clock-twelve-thirty::before {\n content: \"\\e359\"; }\n\n.fa-arrow-down-to-dotted-line::before {\n content: \"\\e095\"; }\n\n.fa-hand-dots::before {\n content: \"\\f461\"; }\n\n.fa-allergies::before {\n content: \"\\f461\"; }\n\n.fa-file-invoice::before {\n content: \"\\f570\"; }\n\n.fa-window-minimize::before {\n content: \"\\f2d1\"; }\n\n.fa-rectangle-wide::before {\n content: \"\\f2fc\"; }\n\n.fa-comment-arrow-up::before {\n content: \"\\e144\"; }\n\n.fa-garlic::before {\n content: \"\\e40e\"; }\n\n.fa-mug-saucer::before {\n content: \"\\f0f4\"; }\n\n.fa-coffee::before {\n content: \"\\f0f4\"; }\n\n.fa-brush::before {\n content: \"\\f55d\"; }\n\n.fa-tree-decorated::before {\n content: \"\\f7dc\"; }\n\n.fa-mask::before {\n content: \"\\f6fa\"; }\n\n.fa-calendar-heart::before {\n content: \"\\e0d3\"; }\n\n.fa-magnifying-glass-minus::before {\n content: \"\\f010\"; }\n\n.fa-search-minus::before {\n content: \"\\f010\"; }\n\n.fa-flower::before {\n content: \"\\f7ff\"; }\n\n.fa-arrow-down-from-arc::before {\n content: \"\\e614\"; }\n\n.fa-right-left-large::before {\n content: \"\\e5e1\"; }\n\n.fa-ruler-vertical::before {\n content: \"\\f548\"; }\n\n.fa-circles-overlap::before {\n content: \"\\e600\"; }\n\n.fa-user-large::before {\n content: \"\\f406\"; }\n\n.fa-user-alt::before {\n content: \"\\f406\"; }\n\n.fa-starship-freighter::before {\n content: \"\\e03a\"; }\n\n.fa-train-tram::before {\n content: \"\\e5b4\"; }\n\n.fa-bridge-suspension::before {\n content: \"\\e4cd\"; }\n\n.fa-trash-check::before {\n content: \"\\e2af\"; }\n\n.fa-user-nurse::before {\n content: \"\\f82f\"; }\n\n.fa-boombox::before {\n content: \"\\f8a5\"; }\n\n.fa-syringe::before {\n content: \"\\f48e\"; }\n\n.fa-cloud-sun::before {\n content: \"\\f6c4\"; }\n\n.fa-shield-exclamation::before {\n content: \"\\e247\"; }\n\n.fa-stopwatch-20::before {\n content: \"\\e06f\"; }\n\n.fa-square-full::before {\n content: \"\\f45c\"; }\n\n.fa-grip-dots::before {\n content: \"\\e410\"; }\n\n.fa-comment-exclamation::before {\n content: \"\\f4af\"; }\n\n.fa-pen-swirl::before {\n content: \"\\e214\"; }\n\n.fa-falafel::before {\n content: \"\\e40a\"; }\n\n.fa-circle-2::before {\n content: \"\\e0ef\"; }\n\n.fa-magnet::before {\n content: \"\\f076\"; }\n\n.fa-jar::before {\n content: \"\\e516\"; }\n\n.fa-gramophone::before {\n content: \"\\f8bd\"; }\n\n.fa-dice-d12::before {\n content: \"\\f6ce\"; }\n\n.fa-note-sticky::before {\n content: \"\\f249\"; }\n\n.fa-sticky-note::before {\n content: \"\\f249\"; }\n\n.fa-down::before {\n content: \"\\f354\"; }\n\n.fa-arrow-alt-down::before {\n content: \"\\f354\"; }\n\n.fa-hundred-points::before {\n content: \"\\e41c\"; }\n\n.fa-100::before {\n content: \"\\e41c\"; }\n\n.fa-paperclip-vertical::before {\n content: \"\\e3c2\"; }\n\n.fa-wind-warning::before {\n content: \"\\f776\"; }\n\n.fa-wind-circle-exclamation::before {\n content: \"\\f776\"; }\n\n.fa-location-pin-slash::before {\n content: \"\\f60c\"; }\n\n.fa-map-marker-slash::before {\n content: \"\\f60c\"; }\n\n.fa-face-sad-sweat::before {\n content: \"\\e38a\"; }\n\n.fa-bug-slash::before {\n content: \"\\e490\"; }\n\n.fa-cupcake::before {\n content: \"\\e402\"; }\n\n.fa-light-switch-off::before {\n content: \"\\e018\"; }\n\n.fa-toggle-large-off::before {\n content: \"\\e5b0\"; }\n\n.fa-pen-fancy-slash::before {\n content: \"\\e210\"; }\n\n.fa-truck-container::before {\n content: \"\\f4dc\"; }\n\n.fa-boot::before {\n content: \"\\f782\"; }\n\n.fa-arrow-up-from-water-pump::before {\n content: \"\\e4b6\"; }\n\n.fa-file-check::before {\n content: \"\\f316\"; }\n\n.fa-bone::before {\n content: \"\\f5d7\"; }\n\n.fa-cards-blank::before {\n content: \"\\e4df\"; }\n\n.fa-circle-3::before {\n content: \"\\e0f0\"; }\n\n.fa-bench-tree::before {\n content: \"\\e2e7\"; }\n\n.fa-keyboard-brightness-low::before {\n content: \"\\e1c1\"; }\n\n.fa-ski-boot-ski::before {\n content: \"\\e3cd\"; }\n\n.fa-brain-circuit::before {\n content: \"\\e0c6\"; }\n\n.fa-user-injured::before {\n content: \"\\f728\"; }\n\n.fa-block-brick-fire::before {\n content: \"\\e3dc\"; }\n\n.fa-firewall::before {\n content: \"\\e3dc\"; }\n\n.fa-face-sad-tear::before {\n content: \"\\f5b4\"; }\n\n.fa-sad-tear::before {\n content: \"\\f5b4\"; }\n\n.fa-plane::before {\n content: \"\\f072\"; }\n\n.fa-tent-arrows-down::before {\n content: \"\\e581\"; }\n\n.fa-exclamation::before {\n content: \"\\21\"; }\n\n.fa-arrows-spin::before {\n content: \"\\e4bb\"; }\n\n.fa-face-smile-relaxed::before {\n content: \"\\e392\"; }\n\n.fa-comment-xmark::before {\n content: \"\\f4b5\"; }\n\n.fa-comment-times::before {\n content: \"\\f4b5\"; }\n\n.fa-print::before {\n content: \"\\f02f\"; }\n\n.fa-turkish-lira-sign::before {\n content: \"\\e2bb\"; }\n\n.fa-try::before {\n content: \"\\e2bb\"; }\n\n.fa-turkish-lira::before {\n content: \"\\e2bb\"; }\n\n.fa-face-nose-steam::before {\n content: \"\\e382\"; }\n\n.fa-circle-waveform-lines::before {\n content: \"\\e12d\"; }\n\n.fa-waveform-circle::before {\n content: \"\\e12d\"; }\n\n.fa-dollar-sign::before {\n content: \"\\24\"; }\n\n.fa-dollar::before {\n content: \"\\24\"; }\n\n.fa-usd::before {\n content: \"\\24\"; }\n\n.fa-ferris-wheel::before {\n content: \"\\e174\"; }\n\n.fa-computer-speaker::before {\n content: \"\\f8b2\"; }\n\n.fa-skull-cow::before {\n content: \"\\f8de\"; }\n\n.fa-x::before {\n content: \"\\58\"; }\n\n.fa-magnifying-glass-dollar::before {\n content: \"\\f688\"; }\n\n.fa-search-dollar::before {\n content: \"\\f688\"; }\n\n.fa-users-gear::before {\n content: \"\\f509\"; }\n\n.fa-users-cog::before {\n content: \"\\f509\"; }\n\n.fa-person-military-pointing::before {\n content: \"\\e54a\"; }\n\n.fa-building-columns::before {\n content: \"\\f19c\"; }\n\n.fa-bank::before {\n content: \"\\f19c\"; }\n\n.fa-institution::before {\n content: \"\\f19c\"; }\n\n.fa-museum::before {\n content: \"\\f19c\"; }\n\n.fa-university::before {\n content: \"\\f19c\"; }\n\n.fa-circle-t::before {\n content: \"\\e124\"; }\n\n.fa-sack::before {\n content: \"\\f81c\"; }\n\n.fa-grid-2::before {\n content: \"\\e196\"; }\n\n.fa-camera-cctv::before {\n content: \"\\f8ac\"; }\n\n.fa-cctv::before {\n content: \"\\f8ac\"; }\n\n.fa-umbrella::before {\n content: \"\\f0e9\"; }\n\n.fa-trowel::before {\n content: \"\\e589\"; }\n\n.fa-horizontal-rule::before {\n content: \"\\f86c\"; }\n\n.fa-bed-front::before {\n content: \"\\f8f7\"; }\n\n.fa-bed-alt::before {\n content: \"\\f8f7\"; }\n\n.fa-d::before {\n content: \"\\44\"; }\n\n.fa-stapler::before {\n content: \"\\e5af\"; }\n\n.fa-masks-theater::before {\n content: \"\\f630\"; }\n\n.fa-theater-masks::before {\n content: \"\\f630\"; }\n\n.fa-file-gif::before {\n content: \"\\e645\"; }\n\n.fa-kip-sign::before {\n content: \"\\e1c4\"; }\n\n.fa-face-woozy::before {\n content: \"\\e3a2\"; }\n\n.fa-cloud-question::before {\n content: \"\\e492\"; }\n\n.fa-pineapple::before {\n content: \"\\e31f\"; }\n\n.fa-hand-point-left::before {\n content: \"\\f0a5\"; }\n\n.fa-gallery-thumbnails::before {\n content: \"\\e3aa\"; }\n\n.fa-circle-j::before {\n content: \"\\e112\"; }\n\n.fa-eyes::before {\n content: \"\\e367\"; }\n\n.fa-handshake-simple::before {\n content: \"\\f4c6\"; }\n\n.fa-handshake-alt::before {\n content: \"\\f4c6\"; }\n\n.fa-page-caret-up::before {\n content: \"\\e42a\"; }\n\n.fa-file-caret-up::before {\n content: \"\\e42a\"; }\n\n.fa-jet-fighter::before {\n content: \"\\f0fb\"; }\n\n.fa-fighter-jet::before {\n content: \"\\f0fb\"; }\n\n.fa-comet::before {\n content: \"\\e003\"; }\n\n.fa-square-share-nodes::before {\n content: \"\\f1e1\"; }\n\n.fa-share-alt-square::before {\n content: \"\\f1e1\"; }\n\n.fa-reflect-vertical::before {\n content: \"\\e665\"; }\n\n.fa-shield-keyhole::before {\n content: \"\\e248\"; }\n\n.fa-file-mp4::before {\n content: \"\\e649\"; }\n\n.fa-barcode::before {\n content: \"\\f02a\"; }\n\n.fa-bulldozer::before {\n content: \"\\e655\"; }\n\n.fa-plus-minus::before {\n content: \"\\e43c\"; }\n\n.fa-square-sliders-vertical::before {\n content: \"\\f3f2\"; }\n\n.fa-sliders-v-square::before {\n content: \"\\f3f2\"; }\n\n.fa-video::before {\n content: \"\\f03d\"; }\n\n.fa-video-camera::before {\n content: \"\\f03d\"; }\n\n.fa-message-middle::before {\n content: \"\\e1e1\"; }\n\n.fa-comment-middle-alt::before {\n content: \"\\e1e1\"; }\n\n.fa-graduation-cap::before {\n content: \"\\f19d\"; }\n\n.fa-mortar-board::before {\n content: \"\\f19d\"; }\n\n.fa-hand-holding-medical::before {\n content: \"\\e05c\"; }\n\n.fa-person-circle-check::before {\n content: \"\\e53e\"; }\n\n.fa-square-z::before {\n content: \"\\e288\"; }\n\n.fa-message-text::before {\n content: \"\\e1e6\"; }\n\n.fa-comment-alt-text::before {\n content: \"\\e1e6\"; }\n\n.fa-turn-up::before {\n content: \"\\f3bf\"; }\n\n.fa-level-up-alt::before {\n content: \"\\f3bf\"; }\n\n.sr-only,\n.fa-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0; }\n\n.sr-only-focusable:not(:focus),\n.fa-sr-only-focusable:not(:focus) {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0; }\n",".tykon::before {\n font-family: tykon, sans-serif !important;\n font-style: normal !important;\n font-weight: normal !important;\n font-variant: normal !important;\n text-transform: none !important;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.tykon-arrowdown::before {\n content: \"\\61\";\n}\n\n.tykon-arrowleft::before {\n content: \"\\62\";\n}\n\n.tykon-arrowright::before {\n content: \"\\63\";\n}\n\n.tykon-arrowup::before {\n content: \"\\64\";\n}\n\n.tykon-doublearrowdown::before {\n content: \"\\65\";\n}\n\n.tykon-filter::before {\n content: \"\\66\";\n}\n\n.tykon-graph1::before {\n content: \"\\67\";\n}\n\n.tykon-graph2::before {\n content: \"\\68\";\n}\n\n.tykon-label::before {\n content: \"\\69\";\n}\n\n.tykon-reload::before {\n content: \"\\6a\";\n}\n\n.tykon-select::before {\n content: \"\\6b\";\n}\n\n.tykon-target::before {\n content: \"\\6c\";\n}\n\n.tykon-undo::before {\n content: \"\\6d\";\n}\n\n.tykon-deployment::before {\n content: \"\\6e\";\n}\n\n.tykon-team::before {\n content: \"\\6f\";\n}\n\n.tykon-overview::before {\n content: \"\\70\";\n}\n\n.tykon-loadout::before {\n content: \"\\71\";\n}\n\n.tykon-entitlement::before {\n content: \"\\72\";\n}\n\n.tykon-users::before {\n content: \"\\73\";\n}\n\n.tykon-arrowsort::before {\n content: \"\\57\";\n}\n\n.tykon-check::before {\n content: \"\\56\";\n}\n\n.tykon-copy::before {\n content: \"\\43\";\n}\n\n.tykon-delete::before {\n content: \"\\55\";\n}\n\n.tykon-download::before {\n content: \"\\4c\";\n}\n\n.tykon-draft::before {\n content: \"\\44\";\n}\n\n.tykon-edit::before {\n content: \"\\45\";\n}\n\n.tykon-graphq2::before {\n content: \"\\68\";\n}\n\n.tykon-help::before {\n content: \"\\3f\";\n}\n\n.tykon-link::before {\n content: \"\\52\";\n}\n\n.tykon-lock1::before {\n content: \"\\59\";\n}\n\n.tykon-lock2::before {\n content: \"\\5A\";\n}\n\n.tykon-notifications::before {\n content: \"\\4E\";\n}\n\n.tykon-plus::before {\n content: \"\\2B\";\n}\n\n.tykon-profile::before {\n content: \"\\50\";\n}\n\n.tykon-search::before {\n content: \"\\4F\";\n}\n\n.tykon-settings::before {\n content: \"\\53\";\n}\n\n.tykon-warning::before {\n content: \"\\21\";\n}\n\n.tykon-x::before {\n content: \"\\58\";\n}\n\n.tykon-waiting::before {\n content: \"\\54\";\n}\n\n.tykon-fullscreen::before {\n content: \"\\e000\";\n}\n\n.tykon-fullscreen-exit::before {\n content: \"\\e001\";\n}\n\n.tykon-time::before {\n content: \"\\74\";\n}\n","h1, h2, h3, h4, h5, h6 {\n margin-block-end: var(--headings-margin-bottom);\n font-family: var(--headings-font-family);\n font-weight: var(--headings-font-weight);\n color: var(--headings-color);\n}\n\nlabel {\n display: inline-block;\n max-inline-size: 100%;\n margin-block-end: 5px;\n color: var(--label-color);\n}\n\nh1 {\n font-size: var(--xxl-font-size);\n line-height: var(--xxl-line-height);\n}\n\nh2 {\n font-size: var(--xl-font-size);\n line-height: var(--xl-line-height);\n}\n\nh3 {\n font-size: var(--lg-font-size);\n line-height: var(--lg-line-height);\n}\n\nh4 {\n font-size: var(--md-font-size);\n line-height: var(--md-line-height);\n}\n\nh5 {\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n}\n\nh6 {\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n}\n\np,\nlabel {\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-regular);\n\n a {\n font-size: var(--sm-font-size);\n text-decoration: underline;\n }\n}\n\nstrong {\n font-family: var(--font-family-bold);\n}\n\na:not(.tyk-button) {\n cursor: pointer;\n color: var(--text-color);\n font-family: var(--font-family-regular);\n\n &.link--bold {\n font-family: var(--font-family-bold);\n }\n\n + a {\n margin-inline-start: 5px;\n }\n\n i {\n font-size: 9px\n }\n}\n\n.font-family-regular {\n font-family: var(--font-family-regular);\n}\n\n.font-family-medium {\n font-family: var(--font-family-medium);\n}\n\n.font-family-bold {\n font-family: var(--font-family-bold);\n}\n\n.heading-font-family-regular {\n font-family: var(--headings-font-family-regular);\n}\n\n.heading-font-family-medium {\n font-family: var(--headings-font-family-medium);\n}\n\n.heading-font-family-bold {\n font-family: var(--headings-font-family-bold);\n}\n\n.text--info {\n color: var(--color-info-base);\n}\n\n.text--medium {\n font-family: var(--font-family-medium);\n}\n\n.text--bold {\n font-family: var(--font-family-bold);\n}\n\n.text--uppercase {\n text-transform: uppercase;\n}\n\n.text--ellipsis {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.text--underline {\n text-decoration: underline;\n}\n\n.text--default-light {\n color: var(--color-default-light) !important;\n}\n\n.text--default {\n color: var(--color-default-base) !important;\n}\n\n.text--primary {\n color: var(--color-primary-base) !important;\n}\n\n.text--danger {\n color: var(--color-danger-base) !important;\n}\n\n.text--success {\n color: var(--color-success-base) !important;\n}\n\n.text--warning {\n color: var(--color-warning-base) !important;\n}\n\ntd.text-ellipsis {\n max-inline-size: 250px;\n}\n\n.section-title {\n font-family: var(--headings-font-family-bold);\n margin-block-end: 5px;\n\n .tyk-icon {\n margin-inline-start: 5px;\n }\n}\n\n.sub-section-title {\n margin-block-end: 5px;\n font-family: var(--font-family-medium);\n font-size: var(--md-font-size);\n line-height: var(--md-line-height);\n\n .tyk-icon {\n margin-inline-start: 5px;\n }\n}\n\n.section-group-title {\n margin-block-end: 5px;\n font-family: var(--font-family-bold);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n text-transform: uppercase;\n\n .tyk-icon {\n margin-inline-start: 5px;\n }\n}\n",".tyk-form-section__title {\n font-size: var(--base-font-size);\n margin-block: var(--spacing-xs) var(--spacing-base);\n margin-inline: 0;\n}\n\n.tyk-form-section__title--light {\n color: var(--color-background-dark);\n}\n\n.tyk-form-group {\n margin-block-end: var(--form-group-margin-bottom);\n\n &.has-error > .tyk-form-control__wrapper > .tyk-form-control,\n &.has-error > .tyk-form-control__wrapper > .tyk-input-group > .tyk-form-control,\n &.has-error .tyk-file-input__wrapper > .tyk-form-control {\n border: var(--error-border);\n border-inline-start: var(--error-border-left);\n outline: none;\n\n &:focus {\n border-inline-start: 2px solid var(--color-danger-dark);\n border-color: var(--color-danger-dark);\n outline: none;\n }\n }\n\n label {\n font-family: var(--font-family-medium);\n }\n}\n\n.tyk-form-group--inline {\n align-items: stretch;\n display: flex;\n flex-wrap: nowrap;\n\n .tyk-form-control__wrapper {\n flex: 1;\n }\n\n label {\n display: flex;\n white-space: nowrap;\n margin-inline-end: var(--spacing-md);\n margin-block-start: 14px;\n }\n\n input,\n select {\n display: flex;\n }\n\n .tyk-form-control__help-block {\n display: flex;\n margin-inline-start: auto;\n }\n}\n\n.tyk-form-group--default {\n color: var(--text-color);\n\n > .tyk-form-control__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-file-input__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-input-group > .tyk-form-control {\n border: var(--general-border-width) solid var(--form-default-color);\n color: var(--text-color);\n\n &[disabled] {\n border: var(--general-border-width) solid var(--form-default-color);\n background-color: var(--form-control-disabled-background-color);\n color: var(--form-control-disabled-color);\n cursor: not-allowed;\n\n + .tyk-input-group__addon {\n background-color: var(--form-control-disabled-background-color);\n }\n }\n\n &::placeholder {\n opacity: 0.8;\n }\n\n &:-ms-input-placeholder {\n opacity: 0.8;\n }\n }\n\n &.tyk-form-group--addon-left {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-default-color);\n border-inline-start: 2px solid var(--form-default-color);\n color: var(--text-color);\n }\n }\n\n &.tyk-form-group--addon-right {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-default-color);\n border-inline-end: 2px solid var(--form-default-color);\n color: var(--text-color);\n }\n }\n}\n\n.tyk-form-group--primary {\n color: var(--text-color);\n\n > .tyk-form-control__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-file-input__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-input-group > .tyk-form-control {\n border: var(--general-border-width) solid var(--form-primary-color);\n color: var(--text-color);\n\n &[disabled] {\n border: var(--general-border-width) solid var(--form-primary-color);\n background-color: var(--form-control-disabled-background-color);\n color: var(--form-control-disabled-color);\n cursor: not-allowed;\n\n + .tyk-input-group__addon {\n background-color: var(--form-control-disabled-background-color);\n }\n }\n\n &::placeholder {\n opacity: 0.8;\n }\n\n &:-ms-input-placeholder {\n opacity: 0.8;\n }\n }\n\n &.tyk-form-group--addon-left {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-primary-color);\n border-inline-start: 2px solid var(--form-primary-color);\n color: var(--form-primary-color);\n }\n }\n\n &.tyk-form-group--addon-right {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-primary-color);\n border-inline-end: 2px solid var(--form-primary-color);\n color: var(--form-primary-color);\n }\n }\n}\n\n.tyk-form-group--success {\n color: var(--text-color);\n\n > .tyk-form-control__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-file-input__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-input-group > .tyk-form-control {\n border: var(--general-border-width) solid var(--form-success-color);\n color: var(--text-color);\n\n &[disabled] {\n border: var(--general-border-width) solid var(--form-success-color);\n background-color: var(--form-control-disabled-background-color);\n color: var(--form-control-disabled-color);\n cursor: not-allowed;\n\n + .tyk-input-group__addon {\n background-color: var(--form-control-disabled-background-color);\n }\n }\n\n &::placeholder {\n opacity: 0.8;\n }\n\n &:-ms-input-placeholder {\n opacity: 0.8;\n }\n }\n\n &.tyk-form-group--addon-left {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-success-color);\n border-inline-start: 2px solid var(--form-success-color);\n color: var(--form-success-color);\n }\n }\n\n &.tyk-form-group--addon-right {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-success-color);\n border-inline-end: 2px solid var(--form-success-color);\n color: var(--form-success-color);\n }\n }\n}\n\n.tyk-form-group--rounded-corners {\n &.has-error > .tyk-form-control__wrapper > .tyk-form-control {\n border-inline-start: var(--error-border);\n\n &:focus {\n border-inline-start: var(--error-border);\n outline: none;\n }\n }\n\n .tyk-form-control {\n border-radius: var(--general-border-radius);\n }\n}\n\n.tyk-form-group--addon-right input {\n border-inline-end: 0 !important;\n padding-inline-end: 0;\n}\n\n.tyk-form-group--addon-left input {\n border-inline-start: 0 !important;\n padding-inline-start: 0;\n}\n\n.tyk-form-group--rounded-corners.tyk-form-group--addon-right {\n input {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n\n .tyk-input-group__addon {\n background: var(--form-control-addon-background-color);\n border-start-end-radius: var(--general-border-radius);\n border-end-end-radius: var(--general-border-radius);\n color: var(--text-color);\n }\n}\n\n.tyk-form-group--rounded-corners.tyk-form-group--addon-left {\n input {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n border-inline-start: 0 !important;\n }\n\n .tyk-input-group__addon {\n background: var(--form-control-addon-background-color);\n border-start-start-radius: var(--general-border-radius);\n border-end-start-radius: var(--general-border-radius);\n color: var(--text-color);\n }\n}\n\n.tyk-form-control__error-message {\n font-family: var(--font-family-regular);\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n margin-block-start: 5px;\n padding: var(--error-message-padding);\n position: relative;\n\n &::before {\n content: '!';\n background: var(--color-danger-base);\n color: white;\n font-family: var(--font-family-bold);\n border-radius: 8px;\n display: inline-block;\n margin-inline-end: 5px;\n padding-block: 0;\n padding-inline: 7px;\n }\n}\n\n.tyk-input-group {\n align-items: center;\n display: flex;\n outline: none;\n}\n\n.tyk-input-group__addon {\n align-items: center;\n background-color: var(--form-control-addon-background-color);\n border: var(--form-control-border);\n display: flex;\n block-size: var(--form-control-height);\n padding-block: var(--form-control-addon-padding-top) var(--form-control-addon-padding-bottom);\n padding-inline: var(--form-control-addon-padding-left) var(--form-control-addon-padding-right);\n\n &:first-child {\n border-inline-end: 0;\n }\n\n &:last-child {\n border-inline-start: 0;\n }\n}\n\n.tyk-form-control {\n font-family: var(--font-family-medium);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n border: var(--form-control-border);\n background-color: white;\n color: var(--text-color);\n display: block;\n block-size: var(--form-control-height);\n padding-block: var(--form-control-padding-top) var(--form-control-padding-bottom);\n padding-inline: var(--form-control-padding-left) var(--form-control-padding-right);\n transition: all .2s linear;\n inline-size: 100%;\n\n &[disabled] {\n background-color: var(--form-control-disabled-background-color);\n\n .tyk-input-group__addon {\n background-color: var(--form-control-disabled-background-color);\n }\n\n cursor: not-allowed;\n }\n\n &::placeholder {\n font-family: var(--form-control-placeholder-font-family);\n color: var(--form-control-placeholder-color);\n }\n\n &:focus,\n &:active {\n outline: none;\n border: var(--form-control-border-focus) !important;\n\n + .tyk-input-group__addon {\n border: var(--form-control-border-focus) !important;\n border-inline-start: none !important;\n }\n }\n}\n\n.tyk-form-control__help-block {\n color: var(--help-block-color);\n font-style: var(--help-block-font-style);\n font-family: var(--font-family-regular);\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n padding: var(--help-block-padding);\n margin-block: 5px 0;\n margin-inline: 0;\n}\n\nselect {\n border-radius: 0;\n appearance: none;\n}\n\n.inline-form-wrapper {\n align-items: center;\n display: flex;\n inline-size: 100%;\n\n .inline-form {\n inline-size: 100%;\n }\n\n > button {\n margin-inline-start: 10px;\n margin-block-end: var(--spacing-base);\n }\n}\n\n.tyk-checkbox,\n.tyk-radio {\n margin-block: 10px;\n margin-inline: 0;\n\n label {\n font-family: var(--font-family-medium);\n }\n\n input {\n margin-block: 0;\n margin-inline: 0 5px;\n }\n}\n\n.tyk-checkbox--inline,\n.tyk-radio--inline {\n display: inline-flex;\n margin-inline-start: var(--spacing-base);\n\n &:first-child {\n margin-inline-start: 0;\n }\n}\n\n.tyk-inline-form {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n\n .tyk-form-group {\n flex: 1;\n margin-inline-start: var(--spacing-md);\n min-inline-size: 200px;\n\n &:first-child {\n margin-inline-start:0\n }\n }\n\n > .tyk-button {\n margin-inline-start: var(--spacing-md);\n margin-block-end: var(--spacing-base);\n }\n}\n",":root {\n --accordion-item-header-padding-y: var(--spacing-base);\n --accordion-item-header-padding-x: var(--spacing-base);\n --accordion-item-header-font-size: var(--base-font-size);\n --accordion-item-outside-trigger-width: var(--spacing-xxl);\n}\n\n.tyk-accordion__item {\n display: grid;\n}\n\n.tyk-accordion__item--trigger-position-left {\n grid-template-columns: var(--accordion-item-outside-trigger-width) auto;\n grid-template-areas:\n \"trigger header\"\n \"trigger content\";\n}\n\n.tyk-accordion__item--trigger-position-right {\n grid-template-columns: auto var(--accordion-item-outside-trigger-width);\n grid-template-areas:\n \"header trigger\"\n \"content trigger\";\n}\n\n.tyk-accordion__item--trigger-in-header {\n grid-template-columns: auto;\n grid-template-areas:\n \"header\"\n \"content\";\n}\n\n.tyk-accordion__trigger-wrapper {\n grid-area: trigger;\n display: flex;\n align-items: flex-start;\n justify-content: center;\n\n .tyk-icon {\n margin-inline: auto;\n }\n}\n\n.tyk-accordion__trigger,\n.tyk-accordion__item-header > button {\n background: none;\n border: none;\n cursor: pointer;\n display: flex;\n font-size: var(--accordion-item-header-font-size);\n outline: none;\n padding-inline: var(--accordion-item-header-padding-x);\n padding-block: var(--accordion-item-header-padding-y);\n inline-size: 100%;\n\n .tyk-icon {\n margin-inline-start: auto;\n }\n}\n\n.tyk-accordion__item-header {\n grid-area: header;\n}\n\n.tyk-accordion__trigger--disabled {\n color: var(--color-background-base);\n}\n\n.tyk-accordion__item-header.tyk-accordion__arrow-trigger {\n align-items: center;\n display: flex;\n\n > div {\n flex: 1;\n }\n\n > button {\n margin-inline-start: auto;\n inline-size: auto;\n }\n}\n\n.tyk-accordion__item-content {\n grid-area: content;\n}\n",":root {\n --button-font-family: var(--font-family-bold);\n --button-border-radius: var(--spacing-md);\n\n --padding-y-button-sm: 3px;\n --padding-x-button-sm: var(--spacing-base);\n --padding-y-button-md: 8px;\n --padding-x-button-md: 23px;\n --padding-y-button-lg: 13px;\n --padding-x-button-lg: 23px;\n\n --line-height-button-sm: var(--xs-line-height);\n --line-height-button-md: var(--md-line-height);\n --line-height-button-lg: var(--lg-line-height);\n\n --button-default-color: var(--color-default-base);\n --button-default-hover-color: var(--color-default-dark);\n --button-default-gradient-start-color: var(--color-default-base);\n --button-default-gradient-end-color: var(--color-default-dark);\n\n --button-primary-color: var(--color-default-base-light);\n --button-primary-hover-color: var(--color-default-dark);\n --button-primary-text-color: white;\n --button-primary-gradient-start-color: var(--color-primary-base);\n --button-primary-gradient-end-color: var(--color-primary-dark);\n\n --button-success-color: var(--color-success-base);\n --button-success-hover-color: var(--color-success-dark);\n --button-success-gradient-start-color: var(--color-success-base);\n --button-success-gradient-end-color: var(--color-success-dark);\n\n --button-danger-color: var(--color-danger-base);\n --button-danger-hover-color: var(--color-danger-dark);\n --button-danger-gradient-start-color: var(--color-danger-base);\n --button-danger-gradient-end-color: var(--color-danger-dark);\n\n --button-warning-color: var(--color-warning-base);\n --button-warning-font-color: white;\n --button-warning-gradient-start-color: var(--color-warning-base);\n --button-warning-gradient-end-color: var(--color-warning-light);\n\n --button-info-color: var(--color-info-base);\n --button-info-font-color: var(--text-color);\n --button-info-gradient-start-color: var(--color-info-base);\n --button-info-gradient-end-color: var(--color-info-light);\n\n --button-icon-only-background-hover: var(--color-background-light);\n}\n\n.tyk-button {\n --button-padding-y: var(--padding-y-button-md);\n --button-padding-x: var(--padding-x-button-md);\n --button-font-size: var(--sm-font-size);\n --button-line-height: var(--line-height-button-md);\n\n background-color: transparent;\n border: none;\n color: white;\n cursor: pointer;\n display: inline-block;\n font-family: var(--button-font-family);\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n transition: all .2s linear;\n user-select: none;\n vertical-align: middle;\n white-space: nowrap;\n\n + .tyk-button,\n + .tyk-dropdown,\n + .tyk-toggle {\n margin-inline-start: var(--spacing-sm);\n }\n\n span + i {\n margin-inline-start: var(--spacing-sm);\n }\n\n i + span {\n margin-inline-start: var(--spacing-sm);\n }\n\n &.disabled {\n cursor: not-allowed;\n opacity: 0.7;\n }\n\n &:hover {\n color: white;\n text-decoration: none;\n }\n\n &:focus {\n outline: none;\n }\n}\n\n.tyk-button--white {\n --button-variant-background: white;\n --button-variant-border: transparent;\n --button-variant-color: var(--color-default-base);\n --button-variant-hover-background: var(--color-background-dark);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--primary {\n --button-variant-background: var(--button-primary-color);\n --button-variant-border: var(--button-primary-color);\n --button-variant-color: var(--button-primary-text-color);\n --button-variant-hover-background: var(--button-primary-hover-color);\n --button-variant-hover-color: var(--button-primary-text-color);\n}\n\n.tyk-button--success {\n --button-variant-background: var(--button-success-color);\n --button-variant-border: var(--button-success-color);\n --button-variant-color: white;\n --button-variant-hover-background: var(--button-success-hover-color);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--danger {\n --button-variant-background: var(--button-danger-color);\n --button-variant-border: var(--button-danger-color);\n --button-variant-color: white;\n --button-variant-hover-background: var(--button-danger-hover-color);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--warning {\n --button-variant-background: var(--button-warning-color);\n --button-variant-border: transparent;\n --button-variant-color: var(--button-warning-font-color);\n --button-variant-hover-background: color-mix(in srgb, var(--button-variant-background), black 15%);\n --button-variant-hover-color: var(--button-warning-font-color);\n}\n\n.tyk-button--info {\n --button-variant-background: var(--button-info-color);\n --button-variant-border: var(--button-info-color);\n --button-variant-color: white;\n --button-variant-hover-background: color-mix(in srgb, var(--button-variant-background), black 15%);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--default {\n --button-variant-background: var(--button-default-color);\n --button-variant-border: var(--button-default-color);\n --button-variant-color: white;\n --button-variant-hover-background: var(--button-default-hover-color);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--white,\n.tyk-button--primary,\n.tyk-button--success,\n.tyk-button--danger,\n.tyk-button--warning,\n.tyk-button--info,\n.tyk-button--default {\n background-color: var(--button-variant-background);\n color: var(--button-variant-color);\n border: var(--general-border-width) solid var(--button-variant-border);\n\n &:hover {\n background-color: var(--button-variant-hover-background);\n color: var(--button-variant-hover-color);\n }\n}\n\n.tyk-button--primary-link {\n --button-variant-link-color: var(--button-primary-color);\n}\n\n.tyk-button--success-link {\n --button-variant-link-color: var(--button-success-color);\n}\n\n.tyk-button--danger-link {\n --button-variant-link-color: var(--button-danger-color);\n}\n\n.tyk-button--warning-link {\n --button-variant-link-color: var(--button-warning-color);\n}\n\n.tyk-button--info-link {\n --button-variant-link-color: var(--button-info-color);\n}\n\n.tyk-button--default-link {\n --button-variant-link-color: var(--text-color);\n}\n\n.tyk-button--primary-link,\n.tyk-button--success-link,\n.tyk-button--danger-link,\n.tyk-button--warning-link,\n.tyk-button--info-link,\n.tyk-button--default-link {\n background-color: transparent;\n border: var(--general-border-width) solid transparent;\n color: var(--button-variant-link-color);\n\n &:hover {\n background-color: transparent;\n color: var(--button-variant-link-color);\n border-color: var(--button-variant-link-color);\n text-decoration: underline;\n }\n}\n\n.tyk-button--primary-outline {\n --button-variant-outline-border: var(--button-primary-color);\n --button-variant-outline-color: var(--button-primary-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--success-outline {\n --button-variant-outline-border: var(--button-success-color);\n --button-variant-outline-color: var(--button-success-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--danger-outline {\n --button-variant-outline-border: var(--button-danger-color);\n --button-variant-outline-color: var(--button-danger-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--warning-outline {\n --button-variant-outline-border: var(--button-warning-color);\n --button-variant-outline-color: var(--button-warning-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--info-outline {\n --button-variant-outline-border: var(--button-info-color);\n --button-variant-outline-color: var(--button-info-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--default-outline {\n --button-variant-outline-border: var(--button-default-color);\n --button-variant-outline-color: var(--button-default-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--primary-outline,\n.tyk-button--success-outline,\n.tyk-button--danger-outline,\n.tyk-button--warning-outline,\n.tyk-button--info-outline,\n.tyk-button--default-outline {\n border: var(--general-border-width) solid var(--button-variant-outline-border);\n background-color: transparent;\n color: var(--button-variant-outline-color);\n\n &:hover {\n background-color: var(--button-variant-outline-border);\n color: var(--button-variant-outline-hover-color);\n }\n\n &.disabled {\n color: var(--button-variant-outline-border);\n\n &:hover {\n background-color: transparent;\n color: var(--button-variant-outline-border);\n }\n }\n}\n\n.tyk-button--primary-gradient {\n --button-variant-gradient-left-color: var(--button-primary-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-primary-gradient-end-color);\n}\n\n.tyk-button--success-gradient {\n --button-variant-gradient-left-color: var(--button-success-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-success-gradient-end-color);\n}\n\n.tyk-button--danger-gradient {\n --button-variant-gradient-left-color: var(--button-danger-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-danger-gradient-end-color);\n}\n\n.tyk-button--warning-gradient {\n --button-variant-gradient-left-color: var(--button-warning-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-warning-gradient-end-color);\n --button-variant-gradient-color: var(--button-warning-font-color);\n}\n\n.tyk-button--info-gradient {\n --button-variant-gradient-left-color: var(--button-info-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-info-gradient-end-color);\n --button-variant-gradient-color: var(--button-info-font-color);\n}\n\n.tyk-button--default-gradient {\n --button-variant-gradient-left-color: var(--button-default-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-default-gradient-end-color);\n}\n\n.tyk-button--primary-gradient,\n.tyk-button--success-gradient,\n.tyk-button--danger-gradient,\n.tyk-button--warning-gradient,\n.tyk-button--info-gradient,\n.tyk-button--default-gradient {\n border-image: linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color)) 0 round;\n background: transparent linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: var(--button-variant-gradient-color, white);\n\n &:hover,\n &:active,\n &:active:focus {\n border-image: linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color)) 0 round;\n background: transparent linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color));\n background-position: 100% 0;\n background-size: 200% auto;\n background-clip: border-box;\n\n &.disabled {\n border-image: linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color)) 0 round;\n background: transparent linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: var(--button-variant-gradient-color, white);\n }\n }\n}\n\n.tyk-button--sm {\n --button-padding-y: var(--padding-y-button-sm);\n --button-padding-x: var(--padding-x-button-sm);\n --button-font-size: var(--xs-font-size);\n --button-line-height: var(--xs-line-height);\n}\n\n.tyk-button--md {\n --button-padding-y: var(--padding-y-button-md);\n --button-padding-x: var(--padding-x-button-md);\n --button-font-size: var(--sm-font-size);\n --button-line-height: var(--sm-line-height);\n}\n\n.tyk-button--lg {\n --button-padding-y: var(--padding-y-button-lg);\n --button-padding-x: var(--padding-x-button-lg);\n --button-font-size: var(--md-font-size);\n --button-line-height: var(--line-height-button-md);\n}\n\n.tyk-button,\n.tyk-button--sm,\n.tyk-button--md,\n.tyk-button--lg {\n padding-block: var(--button-padding-y);\n padding-inline: var(--button-padding-x);\n font-size: var(--button-font-size);\n line-height: var(--button-line-height);\n border-radius: var(--button-border-radius);\n}\n\n.tyk-button--icon-only {\n border-radius: var(--general-border-radius);\n padding: 0;\n line-height: var(--spacing-md);\n inline-size: 24px;\n\n &:hover {\n border-radius: var(--general-border-radius);\n }\n}\n\n.tyk-button--fit {\n block-size: auto;\n inline-size: auto;\n line-height: normal;\n}\n\n.tyk-button--no-style {\n background: transparent;\n border: none;\n color: var(--text-color);\n\n &:hover {\n background: transparent;\n border: none;\n color: var(--text-color);\n }\n}\n",".tyk-button-group__wrapper {\n display: inline-block;\n position: relative;\n vertical-align: middle;\n\n label {\n font-family: var(--font-family-medium);\n }\n\n + .tyk-button,\n + .tyk-dropdown,\n + .tyk-toggle,\n + .tyk-button-group__wrapper {\n margin-inline-start: var(--spacing-sm);\n }\n\n .tyk-button-group {\n display: flex;\n\n > .tyk-button-group:not(:first-child) {\n > .tyk-button {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n }\n\n > .tyk-button-group:not(:last-child) {\n > .tyk-button {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n }\n\n .tyk-button {\n border-radius: 0;\n\n + .tyk-button {\n margin-inline-start: 0;\n }\n\n + .tyk-dropdown {\n margin-inline-start: 0;\n }\n\n &:first-child {\n border-start-start-radius: var(--spacing-md);\n border-end-start-radius: var(--spacing-md);\n }\n\n &:last-child {\n border-start-end-radius: var(--spacing-md);\n border-end-end-radius: var(--spacing-md);\n\n &.tyk-button--icon-only {\n inline-size: 42px;\n }\n }\n }\n }\n}\n",".tyk-card {\n background-color: white;\n border: 1px solid var(--color-background-base);\n border-radius: 8px;\n box-shadow: 2px 2px 3px var(--color-background-base);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.tyk-card__header {\n align-items: center;\n display: flex;\n font-family: var(--font-inter-regular);\n font-size: var(--sm-font-size);\n padding-block: var(--spacing-base) 0;\n padding-inline: var(--spacing-base);\n}\n\n.tyk-card__header-right {\n margin-inline-start: auto;\n}\n\n.tyk-card__title-group {\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: center;\n\n .tyk-card__title-icon {\n align-items: center;\n display: flex;\n inline-size: 42px;\n block-size: 42px;\n justify-content: center;\n margin-inline-end: 10px;\n grid-row: span 2;\n }\n}\n\n.tyk-card__title {\n font-family: var(--font-inter-bold);\n font-size: var(--lg-font-size);\n display: -webkit-box;\n -webkit-box-orient: vertical;\n overflow: hidden;\n margin: 0;\n text-overflow: ellipsis;\n}\n\n.tyk-card__title--max-1-lines {\n -webkit-line-clamp: 1;\n}\n\n.tyk-card__title--max-2-lines {\n -webkit-line-clamp: 2;\n}\n\n.tyk-card__sub-title {\n font-family: var(--font-inter-medium);\n font-size: var(--xs-font-size);\n margin: 0;\n}\n\n.tyk-card__title-group + .tyk-card__summary,\n.tyk-card__sub-title + .tyk-card__summary,\n.tyk-card__title + .tyk-card__summary {\n margin-block-start: var(--spacing-sm);\n}\n\n.tyk-card__summary {\n color: var(--text-color);\n font-family: var(--font-inter-regular);\n font-size: var(--sm-font-size);\n display: -webkit-box;\n -webkit-box-orient: vertical;\n overflow: hidden;\n margin: 0;\n text-overflow: ellipsis;\n}\n\n.tyk-card__summary--max-1-lines {\n -webkit-line-clamp: 1;\n}\n\n.tyk-card__summary--max-2-lines {\n -webkit-line-clamp: 2;\n}\n\n.tyk-card__summary--max-3-lines {\n -webkit-line-clamp: 3;\n}\n\n.tyk-card__summary--max-4-lines {\n -webkit-line-clamp: 4;\n}\n\n.tyk-card__summary--max-5-lines {\n -webkit-line-clamp: 5;\n}\n\n.tyk-card__body {\n display: flex;\n flex: 1 0 auto;\n flex-grow: 1;\n padding: var(--spacing-base);\n}\n\n.tyk-card__body--align-top {\n align-items: flex-start;\n}\n\n.tyk-card__body--align-center {\n align-items: center;\n}\n\n.tyk-card__body--align-bottom {\n align-items: flex-end;\n}\n\n.tyk-card__footer {\n display: flex;\n justify-content: end;\n border-block-start: 1px solid var(--color-background-base);\n padding: var(--spacing-base);\n}",".tyk-chart__wrapper {\n position: relative;\n}\n\n.tyk-chart--no-data,\n.tyk-chart--loading-chart {\n filter: blur(var(--spacing-sm));\n}\n",".collapse-exit,\n.collapse-exit-active,\n.collapse-exit-done {\n block-size: 0;\n}\n\n.collapse-wrapper {\n overflow: hidden;\n transition: all .2s;\n}\n\n.collapse-horizontal-exit,\n.collapse-horizontal-exit-active,\n.collapse-horizontal-exit-done {\n inline-size: 0;\n}\n\n.collapse-horizontal-enter,\n.collapse-horizontal-enter-active,\n.collapse-horizontal-enter-done {\n inline-size: 100%;\n}\n",".tyk-copy-to-clipboard {\n position: absolute;\n inset-inline-start: -1000px;\n inset-block-start: -1000px;\n}",":root {\n --fixed-wrapper-top: 0;\n --fixed-wrapper-left: 0;\n --fixed-wrapper-right: 0;\n}\n\n.tyk-fixed-wrapper {\n inset-inline-start: var(--fixed-wrapper-left);\n inset-inline-end: var(--fixed-wrapper-right);\n position: sticky;\n inset-block-start: var(--fixed-wrapper-top);\n z-index: 8;\n}\n\n.tyk-fixed-wrapper--scrolled {\n box-shadow: 2px 2px 5px rgba(0 0 0 / 10%);\n}\n",".floating-container {\n position: fixed;\n inset-block-start: -9999px;\n overflow: auto;\n z-index: var(--modal-z-index, 1080);\n}\n\n.floating-container__content-wrapper {\n block-size: 100%;\n}",".tyk-icon {\n + .tyk-icon {\n margin-inline-start: var(--spacing-sm);\n }\n}\n",".tyk-infinite-scroller {\n block-size: 100%;\n overflow: hidden;\n position: relative;\n\n .loading {\n background: linear-gradient(180deg, rgba(255 255 255 / 0%), rgba(255 255 255 / 100%));\n justify-content: center;\n display: flex;\n inset-inline: 0;\n inset-block-start: auto;\n inset-block-end: 0;\n padding-block: var(--spacing-base);\n padding-inline: 0;\n inline-size: 100%;\n }\n}\n\n.tyk-infinite-scroller__wrapper {\n block-size: 100%;\n overflow-y: auto;\n}\n",".tyk-info-note {\n border-radius: 0;\n position: relative;\n\n p + p {\n margin-block-start: var(--spacing-base);\n }\n\n &::after {\n content: '';\n border-style: solid;\n border-width: 0 var(--spacing-md) var(--spacing-md) 0;\n border-color: transparent var(--color-info-base) transparent transparent;\n block-size: 0;\n position: absolute;\n inset-inline-end: 0;\n inset-block-start: 0;\n inline-size: 0;\n }\n\n .tyk-message {\n border-radius: 0;\n padding-block: 40px;\n }\n}\n",".tyk-loading__wrapper {\n background: rgba(255 255 255 / 60%);\n position: absolute;\n inset: 0;\n z-index: 99;\n}\n\n.loader-wrapper {\n min-block-size: 100px;\n position: relative;\n}\n\n.loading {\n position: absolute;\n inset-block-start: calc(50% - var(--spacing-sm));\n inset-inline-start: 50%;\n\n &.relative {\n inset-inline-start: auto;\n padding: 25px;\n position: relative;\n text-align: center;\n inset-block-start: auto;\n inline-size: 100%;\n }\n}\n\n.loading-bar {\n display: inline-block;\n inline-size: 4px;\n block-size: var(--spacing-md);\n border-radius: 4px;\n animation: loading 1s ease-in-out infinite;\n margin-inline-start: 2px;\n}\n\n.loading-bar:nth-child(1) {\n animation-delay: 0;\n background-color: var(--color-success-base);\n opacity: 1;\n}\n\n.loading-bar:nth-child(2) {\n animation-delay: 0.09s;\n background-color: var(--color-success-base);\n opacity: 0.80;\n}\n\n.loading-bar:nth-child(3) {\n animation-delay: .18s;\n background-color: var(--color-success-base);\n opacity: 0.60;\n}\n\n.loading-bar:nth-child(4) {\n animation-delay: .27s;\n background-color: var(--color-success-base);\n opacity: 0.40;\n}\n\n@keyframes loading {\n 0% {\n transform: scale(1);\n }\n\n 20% {\n transform: scale(1, 2.2);\n }\n\n 40% {\n transform: scale(1);\n }\n}\n",".tyk-list {\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n font-size: var(--sm-font-size);\n list-style-type: none;\n margin: 0;\n max-block-size: 191px;\n padding: 0;\n overflow: auto;\n\n li {\n border-block-end: 1px solid var(--color-default-light);\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-md);\n font-family: var(--font-family-medium);\n\n &.tyk-list__item--selected {\n background-color: var(--color-default-light);\n }\n\n &:last-child {\n border: none;\n }\n }\n}\n\n.tyk-list--with-inline-label {\n display: flex;\n\n > label {\n margin-inline-end: var(--spacing-md);\n }\n}\n\n.tyk-list--default {\n border-color: var(--color-default-light);\n}\n\n.tyk-list--primary {\n border-color: var(--color-primary-base);\n\n li {\n border-color: var(--color-primary-light);\n color: var(--text-color);\n\n &.tyk-list__item--selected {\n background-color: var(--color-primary-light);\n }\n }\n}\n\n.tyk-list--primary-light {\n border-color: var(--color-primary-light);\n\n li {\n border-color: var(--color-primary-light);\n color: var(--text-color);\n\n &.tyk-list__item--selected {\n background-color: var(--color-primary-light);\n }\n }\n}\n\n.tyk-list--success {\n border-color: var(--color-success-base);\n color: var(--color-success-base);\n\n li {\n border-color: var(--color-success-base);\n\n &.tyk-list__item--selected {\n background-color: var(--color-success-light);\n }\n }\n}\n\n.tyk-list--danger {\n border-color: var(--color-danger-base);\n color: var(--text-color);\n\n li {\n border-color: var(--color-danger-light);\n\n &.tyk-list__item--selected {\n background-color: var(--color-danger-light);\n }\n }\n}\n\nul.tyk-list--inline {\n align-items: center;\n display: flex;\n\n li {\n padding-block: 0;\n padding-inline: var(--spacing-sm);\n }\n\n &.tyk-list--with-separator {\n li:not(:first-child) {\n border-inline-start: 1px solid var(--color-default-base);\n }\n }\n}\n",":root {\n --tyk-message-padding-top: var(--spacing-md);\n --tyk-message-padding-right: var(--spacing-md);\n --tyk-message-padding-bottom: var(--spacing-md);\n --tyk-message-padding-left: var(--spacing-md);\n --tyk-message-border-radius: var(--general-border-radius);\n --tyk-message-default-background: var(--color-primary-light);\n --tyk-message-default-border: var(--color-default-dark);\n --tyk-message-default-text-color: var(--color-default-dark);\n --tyk-message-info-background: var(--color-info-light);\n --tyk-message-info-border: var(--color-info-base);\n --tyk-message-info-text-color: var(--color-info-base);\n --tyk-message-success-background: var(--color-success-light);\n --tyk-message-success-border: var(--color-success-dark);\n --tyk-message-success-text-color: var(--color-success-dark);\n --tyk-message-warning-background: var(--color-warning-light);\n --tyk-message-warning-border: var(--color-warning-base);\n --tyk-message-warning-text-color: var(--color-warning-dark);\n --tyk-message-danger-background: var(--color-danger-extra-light);\n --tyk-message-danger-border: var(--color-danger-base);\n --tyk-message-danger-text-color: var(--color-danger-dark);\n}\n\n.tyk-message {\n display: flex;\n align-items: center;\n border-radius: var(--tyk-message-border-radius);\n margin-block-end: var(--spacing-md);\n padding-block: var(--tyk-message-padding-top) var(--tyk-message-padding-bottom);\n padding-inline: var(--tyk-message-padding-left) var(--tyk-message-padding-right);\n\n > .tyk-icon:first-child {\n inline-size: 32px;\n block-size: 32px;\n flex-shrink: 0;\n border-radius: 50%;\n color: white;\n\n &::before {\n display: flex;\n inline-size: 100%;\n block-size: 100%;\n align-items: center;\n justify-content: center;\n }\n }\n\n > .tyk-icon:last-child {\n cursor: pointer;\n }\n\n /* &--default {\n @include message-variant(\n $tyk-message-default-background,\n $tyk-message-default-border,\n $tyk-message-default-text-color\n );\n\n > .tyk-icon:first-child {\n transform: rotate(180deg);\n }\n }\n\n &--info {\n @include message-variant(\n $tyk-message-info-background,\n $tyk-message-info-border,\n $tyk-message-info-text-color\n );\n }\n\n &--success {\n @include message-variant(\n $tyk-message-success-background,\n $tyk-message-success-border,\n $tyk-message-success-text-color\n );\n }\n\n &--warning {\n @include message-variant(\n $tyk-message-warning-background,\n $tyk-message-warning-border,\n $tyk-message-warning-text-color\n );\n }\n\n &--danger {\n @include message-variant(\n $tyk-message-danger-background,\n $tyk-message-danger-border,\n $tyk-message-danger-text-color\n );\n } */\n}\n\n.tyk-message__content {\n flex-grow: 1;\n margin-inline: var(--spacing-md);\n color: var(--tyk-message-default-text-color);\n font-weight: bold;\n}\n\n.tyk-message--default {\n --message-variant-background: var(--tyk-message-default-background);\n --message-variant-border: var(--tyk-message-default-border);\n --message-variant-color: var(--tyk-message-default-text-color);\n\n > .tyk-icon:first-child {\n transform: rotate(180deg);\n }\n}\n\n.tyk-message--info {\n --message-variant-background: var(--tyk-message-info-background);\n --message-variant-border: var(--tyk-message-info-border);\n --message-variant-color: var(--tyk-message-info-text-color);\n}\n\n.tyk-message--success {\n --message-variant-background: var(--tyk-message-success-background);\n --message-variant-border: var(--tyk-message-success-border);\n --message-variant-color: var(--tyk-message-success-text-color);\n}\n\n.tyk-message--warning {\n --message-variant-background: var(--tyk-message-warning-background);\n --message-variant-border: var(--tyk-message-warning-border);\n --message-variant-color: var(--tyk-message-warning-text-color);\n}\n\n.tyk-message--danger {\n --message-variant-background: var(--tyk-message-danger-background);\n --message-variant-border: var(--tyk-message-danger-border);\n --message-variant-color: var(--tyk-message-danger-text-color);\n}\n\n.tyk-message--default,\n.tyk-message--info,\n.tyk-message--success,\n.tyk-message--warning,\n.tyk-message--danger {\n background-color: var(--message-variant-background);\n border: var(--general-border-width) solid var(--message-variant-border);\n color: var(--message-variant-color);\n\n & > .tyk-icon:first-child {\n background-color: var(--message-variant-border);\n }\n}\n",":root {\n --tyk-modal-body-padding: var(--spacing-lg);\n --tyk-modal-footer-padding: var(--spacing-lg);\n\n /* Deprecated Modal.Header and Modal.Title */\n --tyk-modal-header-padding: var(--spacing-lg);\n --tyk-modal-borders-color: var(--color-background-light);\n\n /* End of deprecated styles */\n}\n\n.tyk-modal {\n --theme-header-height: 15px;\n --theme-header-icon-size: 65px;\n\n align-items: center;\n pointer-events: none;\n position: fixed;\n inset: 0;\n z-index: -1;\n\n .tyk-panel {\n border: var(--general-border-width) solid var(--color-background-dark);\n box-shadow: none;\n }\n\n .tyk-modal__dialog {\n opacity: 0;\n transition: all .2s ease;\n }\n\n &.opened {\n display: flex;\n z-index: var(--modal-z-index);\n\n .tyk-modal__dialog {\n display: flex;\n max-block-size: 92vh;\n opacity: 1;\n pointer-events: all;\n }\n }\n\n &.appear-enter-done {\n .tyk-modal__dialog {\n opacity: 1;\n margin-block-start: 0;\n }\n }\n}\n\n.tyk-modal__theme-header {\n position: absolute;\n inset-block-start: -1px;\n inset-inline: 0;\n block-size: var(--theme-header-height);\n border-start-start-radius: var(--general-border-radius);\n border-start-end-radius: var(--general-border-radius);\n\n .tyk-icon {\n position: absolute;\n inset-inline-start: calc(50% - var(--theme-header-icon-size) / 2);\n inset-block-start: calc((var(--theme-header-icon-size) - var(--theme-header-height)) / -2);\n inline-size: var(--theme-header-icon-size);\n block-size: var(--theme-header-icon-size);\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: var(--xxl-font-size);\n color: white;\n }\n}\n\n.tyk-modal--theme-success {\n .tyk-modal__theme-header {\n background-color: var(--color-success-base);\n\n .tyk-icon {\n background-color: var(--color-success-base);\n }\n }\n}\n\n.tyk-modal--theme-warning {\n .tyk-modal__theme-header {\n background-color: var(--color-warning-base);\n\n .tyk-icon {\n background-color: var(--color-warning-base);\n }\n }\n}\n\n.tyk-modal--theme-danger {\n .tyk-modal__theme-header {\n background-color: var(--color-danger-base);\n\n .tyk-icon {\n background-color: var(--color-danger-base);\n }\n }\n}\n\n.tyk-modal__dialog {\n opacity: 0;\n margin-inline: auto;\n margin-block-start: -5%;\n margin-block-end: 0;\n pointer-events: all;\n transition: all .2s linear;\n inline-size: 85%;\n}\n\n@media only screen and (width >= 768px) {\n .tyk-modal__dialog {\n inline-size: 600px;\n\n &.tyk-modal--lg {\n inline-size: 800px;\n }\n }\n}\n\n.tyk-modal__content {\n background: white;\n border-radius: var(--general-border-radius);\n display: flex;\n flex-direction: column;\n position: relative;\n inline-size: 100%;\n}\n\n.tyk-modal__body {\n flex: 1;\n overflow: auto;\n padding-block-start: calc(var(--tyk-modal-body-padding) + (var(--theme-header-icon-size) - var(--theme-header-height)) / 2);\n padding-block-end: var(--tyk-modal-body-padding);\n padding-inline: var(--tyk-modal-body-padding);\n\n &.no-padding {\n padding: 0;\n }\n}\n\n.tyk-modal__footer {\n align-items: center;\n display: flex;\n justify-content: flex-end;\n padding: var(--tyk-modal-footer-padding);\n\n >:not(:first-child) {\n margin-inline-start: var(--spacing-xs);\n }\n}\n\n.tyk-modal__backdrop {\n background-color: var(--color-default-dark);\n border: none;\n display: none;\n position: fixed;\n inset: 0;\n inline-size: 100%;\n z-index: var(--modal-z-index) - 1;\n\n &.opened {\n display: block;\n opacity: 0.5;\n transition: opacity .2s ease;\n }\n\n &.fade-enter-done {\n opacity: 0.5;\n z-index: 9;\n }\n}\n\n/* Deprecated Modal.Header and Modal.Title */\n.tyk-modal__header {\n padding-block-start: calc(var(--tyk-modal-header-padding) + (var(--theme-header-icon-size) - var(--theme-header-height)) / 2);\n padding-block-end: var(--tyk-modal-header-padding);\n padding-inline: var(--tyk-modal-header-padding);\n align-items: center;\n border-block-end: 1px solid var(--tyk-modal-borders-color);\n display: flex;\n inline-size: 100%;\n\n .tyk-modal--theme-none & {\n padding-block-start: var(--tyk-modal-header-padding);\n }\n\n button {\n margin-inline-start: auto;\n padding-block: 0;\n padding-inline: 5px;\n }\n\n + .tyk-modal__body {\n padding-block-start: var(--tyk-modal-body-padding);\n }\n}\n\n.tyk-modal__title {\n font-family: var(--font-family-medium);\n font-weight: 500;\n margin: 0;\n inline-size: 100%;\n}\n\n/* End of deprecated styles */\n",":root {\n --navigation-background-color: white;\n --navigation-item-padding-y: var(--spacing-sm);\n --navigation-item-padding-x: var(--spacing-md);\n --navigation-item-background-color: white;\n --navigation-item-color: var(--text-color);\n --navigation-item-hover-background-color: var(--color-primary-base);\n --navigation-item-hover-color: white;\n --navigation-item-active-background-color: var(--color-primary-dark);\n --navigation-item-active-color: white;\n --navigation-padding: 0;\n}\n\n.tyk-navigation {\n background-color: var(--navigation-background-color);\n block-size: 100%;\n overflow: auto;\n padding: var(--navigation-padding);\n inline-size: 100%;\n\n .tyk-navigation-item {\n inline-size: 100%;\n\n a {\n color: var(--navigation-item-color);\n display: flex;\n padding-block: var(--navigation-item-padding-y);\n padding-inline: var(--navigation-item-padding-x);\n text-decoration: none;\n transition: all .2s ease;\n\n &:hover {\n background-color: var(--navigation-item-hover-background-color);\n color: var(--navigation-item-hover-color);\n }\n\n &.active {\n background-color: var(--navigation-item-active-background-color);\n color: var(--navigation-item-active-color);\n }\n }\n }\n}\n",":root {\n --nav-bar-background-color: white;\n --nav-bar-text-color: var(--color-default-base);\n --nav-bar-padding-left: 265px;\n --nav-bar-animate-left: 245px;\n --nav-bar-top-padding: var(--spacing-sm);\n --nav-bar-bottom-padding: 0;\n --nav-bar-left-padding: var(--spacing-md);\n --nav-bar-right-padding: var(--spacing-md);\n --nav-bar-padding: 0 var(--nav-bar-right-padding) 0 var(--nav-bar-left-padding);\n --nav-bar-top: 51px;\n --nav-bar-header-font-size: var(--xxl-font-size);\n --nav-bar-header-font-family: var(--headings-font-family-bold);\n --nav-bar-header-line-height: var(--xxl-line-height);\n --nav-bar-height: 92px;\n --nav-bar-font-family: var(--font-family-regular);\n}\n\n.tyk-nav-bar {\n align-items: center;\n border: none;\n background-color: var(--nav-bar-background-color);\n font-family: var(--nav-bar-font-family);\n color: var(--nav-bar-text-color);\n margin: 0;\n padding: var(--nav-bar-padding);\n inline-size: 100%;\n z-index: 8;\n transition: all .2s linear;\n\n &.tyk-nav-bar__with-tabs .tyk-tabs--default > ul li button {\n padding-block-start: 0;\n }\n\n @media screen and (width <= 1024px) {\n padding-inline-start: var(--spacing-md);\n\n .menu-opened & {\n transform: translate(var(--nav-bar-animate-left));\n }\n }\n\n h1 {\n color: var(--nav-bar-text-color);\n }\n\n h4 {\n margin: 0;\n }\n\n .tyk-nav-bar__wrapper {\n align-items: center;\n padding-block-end: var(--nav-bar-bottom-padding);\n display: flex;\n flex-wrap: wrap;\n block-size: var(--nav-bar-height);\n\n &.tyk-nav-bar--align-top {\n align-items: flex-start;\n }\n\n @media screen and (width <= 1024px) {\n padding-inline-start: 0;\n }\n\n h1 {\n font-size: var(--nav-bar-header-font-size);\n font-family: var(--nav-bar-header-font-family);\n line-height: var(--nav-bar-header-line-height);\n margin: 0;\n padding-inline-end: var(--spacing-sm);\n }\n\n h4 {\n padding-inline-end: var(--spacing-sm);\n }\n\n .tyk-nav-bar__container {\n align-items: center;\n display: flex;\n flex-grow: 1;\n justify-content: space-between;\n }\n\n .tyk-nav-bar__left {\n flex-grow: 1;\n }\n\n .tyk-nav-bar__right {\n margin-inline-start: auto;\n }\n }\n}\n\n.tyk-nav-bar__pre {\n align-self: flex-end;\n color: var(--text-color);\n flex-basis: 100%;\n\n a {\n font-family: var(--font-family-bold);\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n color: var(--text-color);\n }\n}\n",":root {\n --padding-y-panel-header: var(--spacing-sm);\n --padding-x-panel-header: 25px;\n --padding-y-blank-panel-header: var(--spacing-md);\n --padding-panel-body: 25px;\n --padding-x-right-panel-collapsable: 48px;\n --padding-x-left-panel-collapsable: var(--padding-x-right-panel-collapsable);\n --panel-border-radius: 0;\n --panel-default-border-bottom-color: var(--color-background-base);\n --panel-header-font-size: var(--base-font-size);\n --panel-header-font-family: var(--font-family-medium);\n --panel-primary-header-color: var(--color-primary-base);\n --panel-primary-body-color: white;\n --panel-primary-header-text-color: white;\n --panel-primary-body-text-color: var(--text-color);\n --panel-primary-label-color: var(--text-color);\n --panel-primary-border-color: none;\n}\n\n.tyk-panel {\n background: white;\n border-radius: var(--panel-border-radius);\n margin-block-end: 20px;\n font-family: var(--font-family-medium);\n position: relative;\n\n &.has-error,\n & &.has-error {\n border: var(--general-border-width) solid var(--color-danger-base);\n }\n\n .tyk-panel {\n border: var(--general-border-width) solid var(--color-default-light);\n box-shadow: none;\n }\n}\n\n.tyk-panel--blank,\n.tyk-panel--primary,\n.tyk-panel--success,\n.tyk-panel--danger,\n.tyk-panel--warning {\n .tyk-panel__header {\n border: none;\n font-size: var(--lg-font-size);\n line-height: var(--lg-line-height);\n }\n}\n\n.tyk-panel--blank {\n &.tyk-panel--collapsed {\n margin-block-end: 20px;\n\n .tyk-panel__header {\n margin-block-end: 0;\n }\n }\n\n .tyk-panel__header {\n margin-block-end: -20px;\n padding-block: var(--padding-y-blank-panel-header);\n padding-inline: var(--padding-x-panel-header);\n background-color: white;\n color: var(--color-default-base);\n }\n}\n\n.tyk-panel--primary {\n background-color: transparent;\n\n .tyk-panel__header {\n background-color: var(--panel-primary-header-color);\n color: var(--panel-primary-header-text-color);\n border: var(--panel-primary-border-color);\n }\n\n .tyk-panel__body {\n background-color: var(--panel-primary-body-color);\n color: var(--panel-primary-body-text-color);\n }\n\n & .tyk-form-group {\n label {\n color: var(--panel-primary-label-color);\n }\n }\n\n .tyk-toggle {\n .tyk-toggle__label {\n color: var(--panel-primary-label-color);\n }\n }\n}\n\n.tyk-panel--success {\n .tyk-panel__header {\n background-color: var(--color-success-base);\n color: white;\n }\n}\n\n.tyk-panel--danger {\n .tyk-panel__header {\n background-color: var(--color-danger-base);\n color: white;\n }\n}\n\n.tyk-panel--warning {\n .tyk-panel__header {\n background-color: var(--color-warning-base);\n color: white;\n }\n}\n\n.tyk-panel__body {\n background-color: white;\n border-radius: var(--panel-border-radius);\n font-family: var(--font-family-regular);\n padding: var(--padding-panel-body);\n position: relative;\n transition: block-size .2s;\n\n & ~ .tyk-panel__header {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n\n &.no-padding {\n padding: 0;\n }\n}\n\n.tyk-panel__header {\n display: flex;\n align-items: center;\n border-block-end: 1px solid var(--panel-default-border-bottom-color);\n border-radius: var(--panel-border-radius);\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n font-family: var(--panel-header-font-family);\n overflow: hidden;\n padding-block: var(--padding-y-panel-header);\n padding-inline: var(--padding-x-panel-header);\n position: relative;\n\n > .tyk-icon,\n > .tyk-tooltip__wrapper {\n margin-inline-start: 5px;\n }\n\n .tyk-panel--collapsed & {\n border-end-start-radius: var(--panel-border-radius);\n border-end-end-radius: var(--panel-border-radius);\n }\n\n & ~ .tyk-panel__body {\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n\n & h3 {\n margin: 0;\n }\n\n ng-transclude {\n vertical-align: middle;\n }\n\n &.collapsable {\n cursor: pointer;\n\n .tyk-panel__icon-collapse--right & {\n padding-inline-end: var(--padding-x-right-panel-collapsable);\n }\n\n .tyk-panel__icon-collapse--left & {\n padding-inline-start: var(--padding-x-left-panel-collapsable);\n }\n }\n\n .collapsable__arrow-right {\n font-size: var(--sm-font-size);\n position: absolute;\n padding: var(--spacing-sm);\n inset-inline-end: var(--spacing-sm);\n inset-block-start: calc(50% - 21px);\n }\n\n .collapsable__arrow-left {\n font-size: var(--sm-font-size);\n position: absolute;\n padding-block: 8px var(--spacing-sm);\n padding-inline: 20px 0;\n inset-inline-start: 0;\n inset-block-start: calc(50% - 21px);\n }\n}\n\n.tyk-panel__footer {\n align-items: center;\n border-block-start: 1px solid var(--color-background-light);\n display: flex;\n justify-content: flex-end;\n padding: var(--spacing-lg);\n\n >:not(:first-child) {\n margin-inline-start: 5px;\n }\n}\n",".tyk-pill {\n align-items: center;\n border-radius: var(--general-border-radius);\n display: inline-flex;\n font-size: var(--xs-font-size);\n line-height: 19px;\n margin: var(--pill-margin);\n padding-block: 6px;\n padding-inline: var(--spacing-base);\n font-family: var(--font-family-medium);\n\n i {\n font-size: var(--xs-font-size);\n }\n\n + .tyk-pill {\n margin-inline-end: var(--spacing-sm);\n }\n\n button + span {\n margin-inline-start: var(--spacing-sm);\n }\n\n span + button {\n margin-inline-start: var(--spacing-sm);\n }\n\n &:first-child {\n margin-inline-end: var(--spacing-sm);\n }\n\n &:last-child {\n margin-inline-end: 0;\n }\n}\n\n.tyk-pill--square {\n border-radius: 8px;\n}\n\n.tyk-pill--default {\n background-color: var(--default-pill-background-color);\n color: var(--default-pill-color);\n\n i {\n color: var(--default-pill-color);\n }\n}\n\n.tyk-pill--default-outline {\n box-shadow: var(--default-outline-pill-box-shadow);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--primary {\n background-color: var(--color-primary-base);\n color: white;\n\n i {\n color: var(--default-pill-color);\n }\n}\n\n.tyk-pill--primary-outline {\n box-shadow: inset 0 0 0 2px var(--color-primary-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--success {\n background-color: var(--color-success-base);\n color: white;\n\n i {\n color: white;\n }\n}\n\n.tyk-pill--success-outline {\n box-shadow: inset 0 0 0 2px var(--color-success-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--danger {\n background-color: var(--color-danger-base);\n color: white;\n\n i {\n color: white;\n }\n}\n\n.tyk-pill--danger-outline {\n box-shadow: inset 0 0 0 2px var(--color-danger-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--warning {\n background-color: var(--color-warning-base);\n color: white;\n\n i {\n color: white;\n }\n}\n\n.tyk-pill--warning-outline {\n box-shadow: inset 0 0 0 2px var(--color-warning-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--info {\n background-color: var(--color-info-base);\n color: white;\n\n i {\n color: white;\n }\n}\n\n.tyk-pill--info-outline {\n box-shadow: inset 0 0 0 2px var(--color-info-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n",".tyk-ui-reveal-wrapper {\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n align-items: stretch;\n inline-size: 100%;\n block-size: 100%;\n z-index: 1000;\n position: absolute;\n inset-block-end: 0;\n inset-inline-start: 0;\n pointer-events: none;\n}\n\n.tyk-ui-reveal-wrapper__panel {\n max-block-size: calc(100% - 2rem);\n background-color: white;\n padding: 0;\n margin: 0;\n display: flex;\n flex-direction: column;\n pointer-events: all;\n flex-shrink: 0;\n overflow: auto;\n}\n\n.tyk-ui-reveal-wrapper__hole {\n flex-grow: 1;\n opacity: 0;\n inline-size: 100%;\n background-color: green;\n -webkit-user-select: none;\n user-select: none;\n pointer-events: none;\n z-index: -1;\n}\n\n.tyk-ui-reveal-wrapper__gutter {\n block-size: 2rem;\n inline-size: 100%;\n cursor: row-resize;\n display: flex;\n background-color: var(--color-primary-base);\n z-index: 2;\n pointer-events: all;\n justify-content: space-between;\n align-items: stretch;\n position: relative;\n box-shadow: 0 5px 10px rgba(0 0 0 / 30%);\n}\n\n.tyk-ui-reveal-wrapper__gutter__headerleft,\n.tyk-ui-reveal-wrapper__gutter__headerright {\n display: flex;\n align-items: center;\n flex: 1;\n}\n\n.tyk-ui-reveal-wrapper__gutter__headerleft {\n justify-content: flex-start;\n}\n\n.tyk-ui-reveal-wrapper__gutter__headerright {\n justify-content: flex-end;\n}\n\n.tyk-ui-reveal-wrapper__gutter__logo {\n inline-size: 1rem;\n block-size: 1rem;\n -webkit-user-select: none;\n user-select: none;\n pointer-events: none;\n padding: 0.2rem;\n z-index: 2;\n background-image: url('./images/drag.svg');\n align-self: center;\n\n &:hover {\n border: dashed;\n }\n}\n",":root {\n --sidebar-background-color: white;\n --sidebar-top: 58px;\n --sidebar-height: calc(100vh - 58px);\n --sidebar-width: 280px;\n --sidebar-padding: 0;\n}\n\n.tyk-sidebar {\n background-color: var(--sidebar-background-color);\n block-size: var(--sidebar-height);\n flex: 0 0 var(--sidebar-width);\n padding: var(--sidebar-padding);\n position: sticky;\n overflow: auto;\n inset-block-start: var(--sidebar-top);\n}\n",":root {\n --table-th-padding: var(--spacing-base) var(--spacing-sm);\n --table-td-padding-y: var(--spacing-xs);\n --table-td-padding-x: var(--spacing-sm);\n --table-first-last-padding: 20px;\n --table-pagination-padding: var(--spacing-md) 25px;\n}\n\n.tyk-table {\n border-collapse: collapse;\n border-spacing: 0;\n background-color: white;\n border-radius: var(--general-border-radius);\n inline-size: 100%;\n\n > thead th {\n border-inline-end: 1px solid var(--color-default-light);\n color: var(--text-color);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-bold);\n text-transform: uppercase;\n padding: var(--table-th-padding);\n\n &:last-child {\n border-inline-end: none;\n }\n\n i {\n font-size: var(--xs-font-size);\n }\n\n .tyk-button {\n background: none;\n color: var(--color-default-base);\n padding: 0;\n }\n }\n\n > tbody tr:hover {\n background: rgba(var(--color-background-light) / 40%);\n }\n\n > tbody td {\n border-inline-end: 1px solid var(--color-default-light);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-regular);\n padding-block: var(--table-td-padding-y);\n padding-inline: var(--table-td-padding-x);\n vertical-align: middle;\n\n &:last-child {\n border-inline-end: none;\n }\n\n &.fit {\n white-space: nowrap;\n inline-size: 1%;\n }\n\n input:not([type='checkbox'], [type='radio']) {\n margin-block-start: var(--spacing-base);\n }\n\n a {\n color: var(--text-color);\n font-family: var(--font-family-medium);\n }\n\n label {\n margin: 0;\n }\n\n input[type='checkbox'] {\n margin: 0;\n }\n }\n\n tbody > tr {\n border-block-start: 1px solid var(--color-default-light);\n transition: all .4s linear;\n border-radius: var(--general-border-radius);\n\n &.clickable {\n cursor: pointer;\n }\n }\n\n > tbody tr td:first-child,\n > thead tr th:first-child {\n padding-inline-start: var(--table-first-last-padding);\n\n &.with-icon {\n padding-inline-start: var(--spacing-base);\n }\n }\n\n > tbody tr td:last-child,\n > thead tr th:last-child {\n padding-inline-end: var(--table-first-last-padding);\n\n &.with-icon {\n padding-inline-end: var(--spacing-base);\n }\n }\n\n .tyk-pagination {\n padding: var(--table-pagination-padding);\n\n li:first-child {\n margin-inline-start: auto;\n }\n }\n\n .nowrap {\n white-space: nowrap;\n }\n\n .wrap {\n word-break: break-all;\n }\n}\n\n.tyk-table__wrapper {\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n overflow: auto;\n\n &.no-innner-horizontal-borders {\n & .tyk-table > thead th,\n & .tyk-table > tbody td {\n border-inline-end: none;\n }\n }\n}\n\n.tyk-table__wrapper--no-border {\n border: none\n}\n\n.tyk-table-search {\n padding-block: var(--spacing-sm) 0;\n padding-inline: 25px;\n\n label {\n font-size: var(--sm-font-size);\n text-transform: uppercase;\n }\n}\n\n.header-sort {\n padding-inline-start: 3px;\n padding-block-start: var(--spacing-xs);\n vertical-align: middle;\n}\n\n.new-table-pagination {\n float: inline-end;\n}\n\n.selectable > div {\n margin-inline-start: var(--spacing-md);\n}\n\n.scrollable {\n display: block;\n overflow: auto;\n}\n\n.fixed-header {\n background: white;\n position: sticky;\n inset-block-start: 0;\n}\n\n.tyk-table.has-error,\n.tyk-table__wrapper.has-error {\n border: var(--general-border-width) solid var(--color-danger-base) !important;\n}",":root {\n --tabs-default-content-padding: 25px;\n --tab-button-padding: var(--spacing-sm) 2px 3px 2px;\n --tab-button-margin: 0;\n --tabs-font-familly: var(--font-family-medium);\n --tab-button-color: var(--text-color);\n --tab-active-button-color: var(--text-color);\n --tab-border-color: var(--color-success-base);\n}\n\n.tyk-tabs--default {\n > ul {\n display: flex;\n list-style-type: none;\n margin: 0;\n padding: 0;\n overflow: auto;\n\n li {\n display: flex;\n white-space: nowrap;\n margin-inline-end: var(--tab-button-margin);\n\n &:last-child {\n margin-inline-end: 0;\n }\n\n &.active button,\n button:hover {\n border-block-end-color: var(--tab-border-color);\n color: var(--tab-active-button-color);\n opacity: 1;\n }\n\n button {\n background: none;\n border: none;\n border-block-end: 4px solid transparent;\n color: var(--tab-button-color);\n cursor: pointer;\n font-size: var(--sm-font-size);\n font-family: var(--tabs-font-familly);\n padding: var(--tab-button-padding);\n margin-inline-end: var(--spacing-md);\n transition: all .2s linear;\n opacity: 0.7;\n\n &:focus {\n outline: none;\n }\n }\n }\n }\n}\n\n.tyk-tab__content {\n padding: var(--tabs-default-content-padding);\n}\n",".tyk-toast__container {\n inset-block-end: 0;\n min-inline-size: 300px;\n position: fixed;\n inset-inline-end: var(--spacing-md);\n z-index: 11;\n}\n\n.tyk-toast__message {\n position: relative;\n}\n\n.tyk-toast-message__button {\n color: var(--text-color);\n block-size: var(--spacing-md);\n line-height: 1;\n padding: var(--spacing-xs);\n position: absolute;\n inset-inline-end: var(--spacing-xs);\n inset-block-start: var(--spacing-xs);\n inline-size: var(--spacing-md);\n\n &:hover {\n background: rgba(255 255 255 / 30%);\n color: var(--text-color);\n }\n}\n",":root {\n --tooltip-max-width: 450px;\n}\n\n.tyk-tooltip {\n display: flex;\n align-items: center;\n background-color: var(--color-primary-light);\n border: 2px solid var(--color-primary-base);\n border-radius: var(--general-border-radius);\n max-inline-size: var(--tooltip-max-width);\n padding: var(--spacing-md);\n\n > .tyk-icon:first-child {\n inline-size: 32px;\n block-size: 32px;\n border-radius: 50%;\n color: white;\n background-color: var(--color-default-base-light);\n\n &::before {\n display: flex;\n inline-size: 100%;\n block-size: 100%;\n align-items: center;\n justify-content: center;\n }\n }\n\n > .tyk-icon + .tyk-tooltip__content {\n margin-inline-start: var(--spacing-md);\n }\n\n > .tyk-icon:last-child {\n cursor: pointer;\n }\n}\n\n.tyk-tooltip__content {\n color: var(--color-default-dark);\n word-break: break-word;\n word-wrap: break-word;\n\n + .tyk-icon {\n margin-inline-start: var(--spacing-md);\n }\n}\n",":root {\n --tyk-combobox-pill-background: #F0F0F0;\n --tyk-combobox-pill-color: var(--text-color);\n --tyk-combobox-list-item-hover-color: var(--form-default-color);\n --tyk-combobox-list-item-disabled-color: var(--form-default-color);\n}\n\n.tyk-combobox2 {\n --container-trigger-width: 40px;\n --values-default-height: 38px;\n\n outline: none;\n\n &.disabled {\n .tyk-form-control {\n border: var(--form-control-disabled-border) !important;\n background-color: var(--form-control-disabled-background-color);\n color: var(--form-control-disabled-color);\n cursor: not-allowed;\n }\n\n .tyk-combobox2__current-values .tyk-pill--combobox button {\n cursor: not-allowed;\n }\n\n &:not(.is-expand-mode) .tyk-combobox2__values-container-trigger {\n cursor: not-allowed;\n }\n\n .tyk-combobox2__entry-field {\n background-color: transparent;\n cursor: not-allowed;\n }\n }\n\n .tyk-form-control {\n display: flex;\n flex-direction: row;\n position: relative;\n min-block-size: 40px;\n block-size: auto;\n padding: 0;\n\n &:focus-within {\n outline: none;\n border: var(--form-control-border-focus);\n }\n }\n}\n\n.tyk-combobox2__current-values {\n display: flex;\n flex-grow: 1;\n flex-wrap: wrap;\n padding-block: 2px;\n padding-inline-start: var(--spacing-sm);\n max-inline-size: calc(100% - var(--container-trigger-width));\n\n &.expand-mode {\n max-block-size: 1000px;\n overflow: hidden;\n transition: max-block-size 1s ease;\n }\n\n .tyk-pill--combobox {\n margin-block: 3px;\n background-color: var(--tyk-combobox-pill-background);\n border-radius: var(--spacing-sm);\n color: var(--tyk-combobox-pill-color);\n padding-block: var(--spacing-xs);\n padding-inline: var(--spacing-sm);\n max-inline-size: 100%;\n max-block-size: 26px;\n\n button {\n background: none;\n border: none;\n cursor: pointer;\n inline-size: 23px;\n outline: none;\n\n + span {\n margin-inline-start: 0;\n }\n }\n\n span {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n i {\n margin-inline-end: var(--spacing-xs);\n }\n }\n}\n\n.tyk-combobox2__current-values--collapsed.expand-mode {\n max-block-size: var(--values-default-height);\n transition: max-block-size .2s ease;\n}\n\n.tyk-combobox2__entry-field {\n border: none;\n line-height: 30px;\n\n &:focus,\n &:active {\n border: none;\n outline: none;\n }\n\n &::placeholder {\n color: var(--form-control-placeholder-color);\n font-family: var(--form-control-placeholder-font-family);\n }\n}\n\n.tyk-combobox2__text-value {\n font-family: var(--font-family-medium);\n font-size: var(--sm-font-size);\n padding-block: 9px;\n padding-inline: 5px;\n inline-size: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 1;\n outline: none;\n\n &.overflow-single {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n &.is-placeholder {\n color: var(--form-control-placeholder-color);\n font-family: var(--form-control-placeholder-font-family);\n }\n}\n\n.tyk-combobox2__values-container-trigger {\n position: relative;\n flex-basis: var(--container-trigger-width);\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n outline: none;\n transition: all .2s;\n color: var(--text-color);\n\n .tyk-icon {\n block-size: 14px;\n }\n}\n\n.tyk-combobox2__values-container-trigger--expanded {\n transform: rotate(180deg);\n}\n\n.tyk-form-group--rounded-corners .tyk-combobox2-disabled-overlay {\n border-radius: calc(var(--general-border-radius) - 2px);\n}\n\n.tyk-combobox2__combobox-dropdown {\n display: flex;\n flex-direction: column;\n border: var(--general-border-width) solid var(--form-default-color);\n background-color: white;\n\n &.tyk-form-group--rounded-corners {\n border-radius: var(--general-border-radius);\n z-index: 1081;\n }\n\n .tyk-combobox2__combobox-search {\n background-color: white;\n position: sticky;\n inset-block-start: 0;\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-md);\n\n + .combobox-list {\n border-block-start: 1px solid var(--form-default-color);\n }\n }\n\n .tyk-combobox2__combobox-list {\n max-block-size: 255px;\n\n li {\n display: flex;\n cursor: pointer;\n padding-block: 9px;\n padding-inline: var(--spacing-md);\n transition: all .2s;\n font-family: var(--font-family-medium);\n\n &:hover,\n &.active {\n background-color: var(--tyk-combobox-list-item-hover-color);\n }\n\n &.disabled {\n color: var(--tyk-combobox-list-item-disabled-color);\n background-color: initial;\n }\n\n + li {\n border-block-start: 1px solid var(--form-default-color);\n }\n\n i {\n margin-inline-end: var(--spacing-xs);\n }\n\n .item-name {\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 16px;\n }\n }\n }\n}\n",":root {\n --tyk-checkbox-theme-light-label-color: white;\n --tyk-checkbox-theme-light-label-disabled-color: white;\n --tyk-checkbox-theme-dark-label-color: var(--text-color);\n --tyk-checkbox-theme-dark-label-disabled-color: var(--text-color);\n}\n\n.tyk-checkbox {\n label {\n --label-indent: 20px;\n\n display: flex;\n align-items: flex-start;\n padding-inline-start: var(--label-indent);\n\n input {\n margin-inline-start: calc(-1 * var(--label-indent));\n margin-block-start: 5px;\n }\n }\n}\n\n.tyk-checkbox--theme-light {\n label {\n color: var(--tyk-checkbox-theme-light-label-color);\n }\n\n &.tyk-checkbox--is-disabled {\n label {\n color: var(--tyk-checkbox-theme-light-label-disabled-color);\n }\n }\n}\n\n.tyk-checkbox--is-disabled {\n label, p {\n cursor: not-allowed;\n opacity: 0.5;\n }\n}",".flatpickr-calendar{background:transparent;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;-webkit-animation:none;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;background:#fff;-webkit-box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,0.08);box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,0.08)}.flatpickr-calendar.open,.flatpickr-calendar.inline{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1);animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none !important;box-shadow:none !important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-calendar .hasWeeks .dayContainer,.flatpickr-calendar .hasTime .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:before,.flatpickr-calendar:after{position:absolute;display:block;pointer-events:none;border:solid transparent;content:'';height:0;width:0;left:22px}.flatpickr-calendar.rightMost:before,.flatpickr-calendar.arrowRight:before,.flatpickr-calendar.rightMost:after,.flatpickr-calendar.arrowRight:after{left:auto;right:22px}.flatpickr-calendar.arrowCenter:before,.flatpickr-calendar.arrowCenter:after{left:50%;right:50%}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-months .flatpickr-month{background:transparent;color:rgba(0,0,0,0.9);fill:rgba(0,0,0,0.9);height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:rgba(0,0,0,0.9);fill:rgba(0,0,0,0.9)}.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,.flatpickr-months .flatpickr-next-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-prev-month i,.flatpickr-months .flatpickr-next-month i{position:relative}.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,.flatpickr-months .flatpickr-next-month.flatpickr-prev-month{/*\n /*rtl:begin:ignore*/left:0/*\n /*rtl:end:ignore*/}/*\n /*rtl:begin:ignore*/\n/*\n /*rtl:end:ignore*/\n.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,.flatpickr-months .flatpickr-next-month.flatpickr-next-month{/*\n /*rtl:begin:ignore*/right:0/*\n /*rtl:end:ignore*/}/*\n /*rtl:begin:ignore*/\n/*\n /*rtl:end:ignore*/\n.flatpickr-months .flatpickr-prev-month:hover,.flatpickr-months .flatpickr-next-month:hover{color:#959ea9}.flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-outer-spin-button,.numInputWrapper input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,0.15);-webkit-box-sizing:border-box;box-sizing:border-box}.numInputWrapper span:hover{background:rgba(0,0,0,0.1)}.numInputWrapper span:active{background:rgba(0,0,0,0.2)}.numInputWrapper span:after{display:block;content:\"\";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,0.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,0.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:rgba(0,0,0,0.5)}.numInputWrapper:hover{background:rgba(0,0,0,0.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0 0;line-height:1;height:34px;display:inline-block;text-align:center;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,0.05)}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\\0;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:rgba(0,0,0,0.9)}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:rgba(0,0,0,0.9)}.flatpickr-current-month input.cur-year{background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:initial;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:rgba(0,0,0,0.5);background:transparent;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:transparent;border:none;border-radius:0;box-sizing:border-box;color:inherit;cursor:pointer;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0 0;outline:none;padding:0 0 0 .5ch;position:relative;vertical-align:initial;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:focus,.flatpickr-current-month .flatpickr-monthDropdown-months:active{outline:none}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,0.05)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:none;padding:0}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:transparent;color:rgba(0,0,0,0.54);line-height:1;margin:0;text-align:center;display:block;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0 0}.flatpickr-days{position:relative;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.dayContainer + .dayContainer{-webkit-box-shadow:-1px 0 0 #e6e6e6;box-shadow:-1px 0 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;-webkit-flex-basis:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.today.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day:hover,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover,.flatpickr-day:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.nextMonthDay:focus{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:hover,.flatpickr-day.today:focus{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:#569ff7;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 0 #569ff7}.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange,.flatpickr-day.endRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.notAllowed.nextMonthDay{color:rgba(57,57,57,0.3);background:transparent;border-color:transparent;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:rgba(57,57,57,0.1)}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;-webkit-box-shadow:1px 0 0 #e6e6e6;box-shadow:1px 0 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:rgba(57,57,57,0.3);background:transparent;cursor:default;border:none}.flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-time:after{content:\"\";display:table;clear:both}.flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;width:40%;height:40px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:transparent;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:14px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-time input.flatpickr-hour{font-weight:bold}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-time-separator,.flatpickr-time .flatpickr-am-pm{height:inherit;float:left;line-height:inherit;color:#393939;font-weight:bold;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time input:hover,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time .flatpickr-am-pm:focus{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}","@import 'flatpickr/dist/flatpickr.min.css';\n\n.flatpickr-day.selected,\n.flatpickr-day.startRange,\n.flatpickr-day.endRange,\n.flatpickr-day.selected.inRange,\n.flatpickr-day.startRange.inRange,\n.flatpickr-day.endRange.inRange,\n.flatpickr-day.selected:focus,\n.flatpickr-day.startRange:focus,\n.flatpickr-day.endRange:focus,\n.flatpickr-day.selected:hover,\n.flatpickr-day.startRange:hover,\n.flatpickr-day.endRange:hover,\n.flatpickr-day.selected.prevMonthDay,\n.flatpickr-day.startRange.prevMonthDay,\n.flatpickr-day.endRange.prevMonthDay,\n.flatpickr-day.selected.nextMonthDay,\n.flatpickr-day.startRange.nextMonthDay,\n.flatpickr-day.endRange.nextMonthDay {\n background: var(--color-success-base) !important;\n border-color: var(--color-success-base) !important;\n}",":root {\n --tyk-dropdown-item-background: white;\n --tyk-dropdown-item-background-hover: var(--color-background-light);\n --tyk-dropdown-item-border-color: white;\n --tyk-dropdown-item-text-color: var(--text-color);\n --tyk-dropdown-item-hover-text-color: var(--text-color);\n}\n\n.tyk-dropdown {\n display: inline-block;\n\n + .tyk-button,\n + .tyk-dropdown,\n + .tyk-toggle {\n margin-inline-start: var(--spacing-sm)\n }\n\n label {\n display: block;\n }\n\n &.theme-list .tyk-button {\n background: white;\n border: var(--general-border-width) solid var(--color-default-base);\n border-radius: var(--general-border-radius);\n color: var(--text-color);\n\n &:hover,\n &:active,\n &:active:focus,\n &:focus {\n background: white;\n border-color: var(--color-background-dark);\n color: var(--text-color);\n }\n }\n}\n\n.tyk-dropdown--block {\n inset-inline: var(--spacing-md);\n}\n\n.tyk-dropdown--relative {\n inset-inline: auto;\n}\n\n.tyk-dropdown--custom {\n padding-block: var(--spacing-md);\n padding-inline: 25px;\n}\n\n.tyk-dropdown__trigger {\n position: relative;\n}\n\n.tyk-dropdown-menu {\n background: var(--tyk-dropdown-item-background);\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n filter: drop-shadow(1px 2px 1px rgba(0 0 0 / 10%));\n list-style-type: none;\n margin-inline: 0;\n margin-block: 3px 0;\n overflow: hidden;\n padding: 0;\n z-index: 1081;\n\n &.tyk-dropdown--scrollable {\n overflow: auto;\n }\n\n .tyk-panel {\n margin: 0;\n }\n\n &.opened {\n display: flex;\n flex-direction: column;\n position: absolute;\n }\n\n > li {\n background: var(--tyk-dropdown-item-background);\n border-block-end: 1px solid var(--tyk-dropdown-item-border-color);\n display: flex;\n position: relative;\n z-index: 7;\n\n &:last-child {\n border: none;\n }\n\n i {\n position: absolute;\n inset-inline-start: 7px;\n inset-block-start: 9px;\n }\n }\n}\n\n.tyk-dropdown-menu > li > a {\n cursor: pointer;\n color: var(--tyk-dropdown-item-text-color);\n display: flex;\n font-size: 12px;\n padding-block: 7px;\n padding-inline: 24px;\n text-transform: uppercase;\n text-decoration: none;\n inline-size: 100%;\n\n &:hover {\n color: var(--tyk-dropdown-item-hover-text-color);\n background-color: var(--tyk-dropdown-item-background-hover);\n text-decoration: none;\n }\n\n .badge {\n background: var(--text-color);\n color: white;\n font-size: var(--spacing-sm);\n margin-block-start: -4px;\n margin-inline-start: 6px;\n }\n}\n\n.tyk-dropdown--relative.opened {\n position: relative;\n}\n",".dropdown__menu {\n .tyk-list {\n background: white;\n max-block-size: none;\n\n li {\n padding: 0;\n\n &:hover {\n background: var(--primary-light);\n }\n\n a {\n cursor: pointer;\n display: block;\n padding-block: 10px;\n padding-inline: 20px;\n text-decoration: none;\n }\n }\n }\n}",".tyk-editable-list__submit-btn {\n white-space: nowrap;\n}\n\n.tyk-editable-list__form {\n align-items: center;\n display: flex;\n\n .tyk-form-group {\n margin-block-end: 0;\n }\n\n span.inline {\n margin-block-start: 0;\n }\n\n > span {\n margin-inline-start: var(--spacing-base);\n\n &.inline-with-label {\n align-self: flex-end;\n }\n }\n}\n\n.tyk-editable-list__form--sticked {\n margin-inline-start: 0;\n\n button {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n border-start-end-radius: 3px;\n border-end-end-radius: 3px;\n padding-block: var(--spacing-sm) 11px;\n padding-inline: var(--spacing-base);\n }\n}\n\n.tyk-editable-list__header {\n padding-block: var(--spacing-base);\n font-size: 11px;\n text-transform: uppercase;\n background-color: white;\n border-start-start-radius: var(--general-border-radius);\n border-start-end-radius: var(--general-border-radius);\n border: var(--general-border-width) solid var(--color-default-light);\n border-block-end: 1px solid var(--color-default-light) !important;\n color: var(--text-color) !important;\n font-family: var(--font-family-bold);\n margin-block-start: var(--spacing-sm);\n\n & + .tyk-editable-list-items.table {\n border-block-start: none;\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n\n .tyk-row {\n margin: 0;\n }\n}\n\n.tyk-editable-list-items {\n overflow: hidden;\n list-style: none;\n padding-block: var(--spacing-md) 0;\n padding-inline: 0;\n\n .edit-mode-wrapper.table button {\n margin-block-start: 23px;\n }\n\n .tyk-row {\n margin: 0;\n }\n\n button[disabled] {\n cursor: not-allowed;\n }\n\n &.tyk-editable-list-items--inline {\n align-items: center;\n color: var(--text-color);\n display: flex;\n flex-wrap: wrap;\n }\n\n li {\n border-block-start: 1px solid var(--color-default-light);\n transition: all .2s linear;\n\n &.tyk-editable-list-item--inline {\n background-color: var(--color-default-light);\n border-radius: 25px;\n border: none;\n color: white;\n float: inline-start;\n font-family: var(--font-family-medium);\n margin-block-end: var(--spacing-sm);\n margin-inline-end: var(--spacing-base);\n padding-block: 0;\n padding-inline: var(--spacing-base);\n white-space: nowrap;\n\n .tyk-editable-list-item__text {\n color: var(--text-color);\n padding-block: var(--spacing-xs);\n padding-inline: 0;\n }\n\n .tyk-editable-list-action__button.on-edit {\n margin-block-start: 0;\n }\n }\n\n &:first-child {\n border-block-start: none;\n }\n\n .tyk-editable-list-item__text {\n display: flex;\n padding-block: var(--spacing-sm);\n padding-inline: 0;\n\n > span {\n flex-grow: 1;\n }\n\n > div:first-child {\n flex-grow: 1;\n\n .error-message {\n margin: 0;\n }\n }\n }\n\n .tyk-editable-list-items {\n overflow: hidden;\n padding-block-end: var(--spacing-sm);\n }\n\n .tyk-editable-list {\n border-block-start: var(--spacing-xs) solid var(--background-dark);\n background: var(--background-light);\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-base);\n }\n }\n\n .tyk-editable-list-item__text {\n display: block;\n word-wrap: break-word;\n word-break:break-all;\n }\n\n .tyk-editable-list-action__button {\n border: none;\n background: transparent;\n\n &.on-edit {\n margin-inline-start: var(--spacing-sm);\n }\n }\n\n .tyk-editable-list-item-controls {\n flex-grow: 0;\n text-align: end;\n }\n}\n\n.tyk-editable-list-item__controls {\n text-align: end;\n}\n\n.tyk-editable-list-items.table {\n background-color: white;\n border-radius: var(--general-border-radius);\n border: var(--general-border-width) solid var(--color-default-light);\n padding: 0 !important;\n\n li {\n border-color: var(--color-default-light);\n\n &:hover {\n background: var(--color-background-light);\n }\n }\n\n .tyk-editable-list-item__text {\n background: transparent;\n }\n\n .tyk-editable-list-action__button {\n border-radius: 6px;\n cursor: pointer;\n margin-inline-end: var(--spacing-sm);\n }\n}\n","/* stylelint-disable number-max-precision */\n\n.editable-list__header {\n align-items: center;\n display: flex;\n margin-block-end: 10px;\n\n .tyk-button {\n margin-inline-start: auto;\n }\n}\n\n.editable-list__wrapper.has-error .editable-list__list{\n border: var(--general-border-width) solid var(--color-danger-base);\n}\n\n.editable-list__list {\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n display: flex;\n flex-direction: column-reverse;\n}\n\n.editable-list__item {\n border-block-end: 1px solid var(--color-default-light);\n display: flex;\n flex-wrap: nowrap;\n inline-size: 100%;\n\n &:first-child {\n border-block-end: none;\n }\n}\n\n.editable-list__item-header {\n border-block-end: 1px solid var(--color-default-light);\n color: var(--text-color);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-bold);\n text-transform: uppercase;\n\n .editable-list__item-cell {\n padding: 10px;\n }\n}\n\n.editable-list__item-cell {\n border-inline-start: 1px solid var(--color-default-light);\n overflow: hidden;\n padding-block: 0;\n padding-inline: 10px;\n\n .tyk-form-control--readonly {\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: break-all;\n }\n\n &:first-child {\n border-inline-start: none;\n padding-inline-start: 15px;\n }\n\n &:last-child {\n padding-inline-end: 15px;\n }\n\n .tyk-form-group {\n margin-block: 10px;\n margin-inline: 0;\n inline-size: 100%;\n }\n}\n\n.editable-list__item--size-1 {\n display: flex;\n flex-grow: 2;\n inline-size: 8.3333333333%;\n}\n\n.editable-list__item--size-2 {\n display: flex;\n flex-grow: 3;\n inline-size: 16.6666666667%;\n}\n\n.editable-list__item--size-3 {\n display: flex;\n flex-grow: 4;\n inline-size: 25%;\n}\n\n.editable-list__item--size-4 {\n display: flex;\n flex-grow: 5;\n inline-size: 33.3333333333%;\n}\n\n.editable-list__item--size-5 {\n display: flex;\n flex-grow: 6;\n inline-size: 41.6666666667%;\n}\n\n.editable-list__item--size-6 {\n display: flex;\n flex-grow: 7;\n inline-size: 50%;\n}\n\n.editable-list__item--size-7 {\n display: flex;\n flex-grow: 8;\n inline-size: 58.3333333333%;\n}\n\n.editable-list__item--size-8 {\n display: flex;\n flex-grow: 9;\n inline-size: 66.6666666667%;\n}\n\n.editable-list__item--size-9 {\n display: flex;\n flex-grow: 10;\n inline-size: 75%;\n}\n\n.editable-list__item--size-10 {\n display: flex;\n flex-grow: 11;\n inline-size: 83.3333333333%;\n}\n\n.editable-list__item--size-11 {\n display: flex;\n flex-grow: 12;\n inline-size: 91.6666666667%;\n}\n\n.editable-list__item--size-12 {\n display: flex;\n flex-grow: 13;\n inline-size: 100%;\n}\n\n.editable-list__item--size-fit {\n inline-size: fit-content;\n}\n\n.editable-list__item-action {\n align-items: flex-start;\n display: flex;\n justify-content: center;\n inline-size: 100px;\n\n .tyk-button {\n margin-block-start: 20px;\n }\n}\n\n.editable-list__item-action--read-only {\n color: var(--color-default-light);\n align-items: center;\n\n .tyk-button {\n margin-block-start: 0;\n }\n}",".tyk-file-input__wrapper {\n position: relative;\n\n > input {\n padding-block: 6px;\n padding-inline: var(--spacing-md);\n }\n\n > button {\n background: none;\n border: none;\n cursor: pointer;\n position: absolute;\n inset-inline-end: var(--spacing-base);\n inset-block-start: 9px;\n }\n}\n",".tyk-multiselect {\n align-items: flex-start;\n border-radius: var(--general-border-radius);\n flex-wrap: wrap;\n display: flex;\n margin-block-end: var(--spacing-md);\n inline-size: 100%;\n\n /* FALLBACK FOR ANGULAR COMPONENTS */\n .input-group .input-group-addon + .form-control {\n border-width: 1px !important;\n border-inline-start: none !important;\n border-start-start-radius: 0 !important;\n border-start-end-radius: 0 !important;\n border-end-start-radius: 0 !important;\n border-end-end-radius: 0 !important;\n }\n\n .input-group .input-group-addon {\n background: transparent !important;\n border-width: 1px !important;\n border-inline-end: 0 !important;\n border-start-start-radius: 0 !important;\n border-start-end-radius: 0 !important;\n border-end-start-radius: 0 !important;\n border-end-end-radius: 0 !important;\n }\n\n /* END FALLBACK FOR ANGULAR COMPONENTS */\n\n &.has-error {\n border: var(--general-border-width) solid var(--color-danger-base);\n }\n\n .tyk-form-group {\n margin: 0;\n }\n\n .tyk-multiselect-item__controls {\n display: flex;\n margin-inline-start: auto;\n flex-wrap: nowrap;\n\n .tyk-button {\n color: var(--text-color);\n margin-inline-start: var(--spacing-xs);\n\n &:last-child {\n margin-inline-start: 0;\n }\n }\n }\n}\n\n.tyk-multiselect__header {\n background-color: var(--color-default-base);\n border-start-start-radius: var(--general-border-radius);\n border-start-end-radius: var(--general-border-radius);\n color: white;\n display: flex;\n inline-size: 100%;\n\n > div {\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-base);\n inline-size: 50%;\n }\n}\n\n.tyk-multiselect__panel-wrapper {\n border: var(--form-control-border);\n border-block-start: none;\n border-end-start-radius: var(--general-border-radius);\n border-end-end-radius: var(--general-border-radius);\n display: flex;\n flex: 1;\n block-size: 265px;\n inline-size: 100%;\n}\n\n.tyk-multiselect__panel {\n display: flex;\n flex-direction: column;\n margin-block: 0;\n margin-inline: -1px 0;\n position: relative;\n inline-size: calc(50% + 1px);\n\n &:last-child {\n border-inline-start: var(--form-control-border);\n\n .tyk-form-group {\n margin-inline-start: -1px;\n inline-size: calc(100% + 2px);\n }\n }\n\n .tyk-message {\n margin-block: var(--spacing-md) 0;\n margin-inline: var(--spacing-md);\n }\n}\n\n.tyk-multiselect__list {\n list-style-type: none;\n margin: 0;\n padding: 0;\n\n > li {\n border-block-end: var(--form-control-border);\n display: flex;\n flex-direction: column;\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-base);\n\n > div {\n align-items: start;\n display: flex;\n inline-size: 100%;\n }\n\n .loading {\n justify-content: center;\n }\n\n &:last-child {\n border-block-end: none;\n }\n }\n}\n\n.tyk-multiselect__list--scroll {\n block-size: 100%;\n overflow-y: auto;\n}\n\n.tyk-multiselect-item__name {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n",":root {\n --pagination-border-radius: var(--general-border-radius);\n --pagination-button-padding: var(--spacing-sm) var(--spacing-base);\n}\n\n.tyk-pagination {\n display: flex;\n list-style-type: none;\n margin-block: var(--spacing-sm);\n margin-inline: 0;\n padding: 0;\n\n li {\n align-items: center;\n display: flex;\n }\n\n li:first-child button {\n border-start-start-radius: var(--pagination-border-radius);\n border-end-start-radius: var(--pagination-border-radius);\n }\n\n li:last-child button {\n border-start-end-radius: var(--pagination-border-radius);\n border-end-end-radius: var(--pagination-border-radius);\n }\n\n span {\n margin-block: 0;\n margin-inline: var(--spacing-sm);\n }\n\n button {\n background: white;\n border: none;\n font-size: var(--sm-font-size);\n font-family: var(--font-family-bold);\n cursor: pointer;\n color: var(--color-default-base);\n margin-inline-start: -1px;\n padding: var(--pagination-button-padding);\n\n &:hover {\n background-color: var(--color-success-light);\n }\n }\n\n .active button {\n background-color: var(--color-success-base);\n color: white;\n }\n}\n",":root {\n --radio-description-text-padding: 0 0 0 20px;\n}\n\n.tyk-radio {\n label {\n align-items: center;\n display: flex;\n }\n}\n\n.tyk-radio--is-disabled {\n label, p {\n cursor: not-allowed;\n opacity: 0.5;\n }\n}\n\n.tyk-radio__description-text {\n padding: var(--radio-description-text-padding);\n}",".tyk-select {\n background: transparent url('./images/arrow_down.svg') no-repeat calc(100% - 15px) center;\n background-size: var(--spacing-base) var(--spacing-base);\n}",".tyk-selectable-list {\n margin-block-end: var(--spacing-md);\n inline-size: 100%;\n\n li:not(.tyk-selectable-list__no-items-message) {\n font-family: var(--font-family-medium);\n padding: 0;\n\n .tyk-message {\n margin-block-end: 0;\n }\n\n label {\n font-family: var(--font-family-medium);\n margin: 0;\n }\n\n > label {\n align-items: center;\n cursor: pointer;\n display: flex;\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-md);\n\n input[type=\"checkbox\"] {\n margin-inline-start: auto;\n }\n }\n }\n}\n\n.tyk-selectable-list__item--with-icon {\n & input[type=\"checkbox\"] {\n visibility: hidden;\n }\n}\n","textarea.tyk-form-control {\n block-size: auto;\n}\n",":root {\n --toggle-font-family: var(--font-family-bold);\n --toggle-list-background-color: var(--color-background-light);\n --toggle-list-text-color: white;\n --toggle-list-background-color-on-dark: white;\n --toggle-list-text-color-on-dark: var(--text-color);\n --toggle-top: 4px;\n --toggle-bottom: 4px;\n --toggle-label-font-size: var(--sm-font-size);\n --toggle-label-font-family: var(--font-family-medium);\n --toggle-label-color: var(--label-color);\n --toggle-padding: 0;\n}\n\n.tyk-toggle {\n display: inline-flex;\n flex-wrap: wrap;\n font-family: var(--toggle-font-family);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n white-space: nowrap;\n\n &.block {\n margin-block-end: var(--spacing-md);\n inline-size: 100%;\n\n + .tyk-toggle {\n margin-inline-start: 0;\n }\n }\n\n &.inline-label {\n align-items: center;\n flex-wrap: nowrap;\n }\n\n + .tyk-button,\n + .tyk-dropdown,\n + .tyk-toggle {\n margin-inline-start: var(--spacing-sm)\n }\n}\n\n.tyk-toggle__list--has-error {\n border: var(--error-border);\n}\n\n.tyk-toggle .tyk-toggle__label {\n display: block;\n font-family: var(--toggle-label-font-family);\n font-size: var(--toggle-label-font-size);\n padding: var(--toggle-padding);\n inline-size: 100%;\n color: var(--toggle-label-color);\n}\n\n.tyk-toggle.inline-label .tyk-toggle__label {\n margin-inline-end: var(--spacing-sm);\n inline-size: auto;\n}\n\n.tyk-toggle--disabled-true {\n cursor: not-allowed;\n opacity: 0.7;\n}\n\n.tyk-toggle--column {\n .tyk-toggle__list--separated {\n display: flex;\n flex-direction: column;\n margin-inline-end: var(--spacing-md);\n\n .tyk-toggle__item {\n background-color: var(--toggle-list-background-color);\n margin-inline-end: auto;\n }\n }\n}\n\n.tyk-toggle__list {\n background: var(--toggle-list-background-color);\n border-radius: 25px;\n display: flex;\n list-style-type: none;\n margin: 0;\n padding: 0;\n position: relative;\n}\n\n.tyk-toggle__list--separated {\n background: transparent;\n flex-wrap: wrap;\n}\n\n.tyk-toggle--on-dark .tyk-toggle__list {\n background: var(--toggle-list-background-color-on-dark);\n}\n\n.tyk-toggle--default .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--default .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--default .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--button-default-color);\n color: white;\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--button-default-color);\n color: white;\n }\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle--primary .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--primary .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--primary .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--color-primary-base);\n color: white;\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--color-primary-base);\n color: white;\n }\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle--success .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--success .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--success .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--color-success-dark);\n color: white;\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--color-success-dark);\n color: white;\n }\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle--danger .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--danger .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--danger .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--color-danger-base);\n color: white;\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--color-danger-base);\n color: white;\n }\n}\n\n.tyk-toggle--warning .tyk-toggle__item--active span {\n color: var(--text-color);\n}\n\n.tyk-toggle--warning .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--warning .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--color-warning-base);\n color: var(--text-color);\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--color-warning-base);\n color: var(--text-color);\n }\n}\n\n\n.tyk-toggle--primary-gradient .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--primary-gradient .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--primary-gradient .tyk-toggle__list--separated .tyk-toggle__item--active {\n border-image: linear-gradient(to right, var(--color-primary-base), var(--color-primary-dark), var(--color-primary-base)) 0 round;\n background: transparent linear-gradient(to right, var(--color-primary-base), var(--color-primary-dark), var(--color-primary-base));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: white;\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle--success-gradient .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--success-gradient .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--success-gradient .tyk-toggle__list--separated .tyk-toggle__item--active {\n border-image: linear-gradient(to right, var(--color-success-base), var(--color-success-dark), var(--color-success-base)) 0 round;\n background: transparent linear-gradient(to right, var(--color-success-base), var(--color-success-dark), var(--color-success-base));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: white;\n\n span {\n color: white;\n }\n}\n\n\n.tyk-toggle--danger-gradient .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--danger-gradient .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--danger-gradient .tyk-toggle__list--separated .tyk-toggle__item--active {\n border-image: linear-gradient(to right, var(--color-danger-base), var(--color-danger-dark), var(--color-danger-base)) 0 round;\n background: transparent linear-gradient(to right, var(--color-danger-base), var(--color-danger-dark), var(--color-danger-base));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: white;\n\n span {\n color: white;\n }\n}\n\n\n.tyk-toggle--warning-gradient .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--warning-gradient .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--warning-gradient .tyk-toggle__list--separated .tyk-toggle__item--active {\n border-image: linear-gradient(to right, var(--color-warning-light), var(--color-warning-base), var(--color-warning-light)) 0 round;\n background: transparent linear-gradient(to right, var(--color-warning-light), var(--color-warning-base), var(--color-warning-light));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: var(--text-color);\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle__item {\n color: var(--toggle-list-text-color);\n text-transform: uppercase;\n z-index: 2;\n border: 2px solid transparent;\n\n &:first-child {\n border-start-start-radius: 25px;\n border-end-start-radius: 25px;\n }\n\n &:last-child {\n border-start-end-radius: 25px;\n border-end-end-radius: 25px;\n }\n\n .tyk-toggle__list--separated & {\n border-radius: 25px;\n margin-block: var(--spacing-xs);\n margin-inline-end: var(--spacing-sm);\n\n &:last-child {\n margin-inline-end: 0;\n }\n }\n\n input {\n display: none;\n }\n\n label {\n cursor: pointer;\n font-family: var(--toggle-font-family);\n position: relative;\n margin: 0;\n transition: all .2s ease;\n\n .tyk-toggle__list--single & {\n padding-inline-start: 45px;\n }\n }\n}\n\n.tyk-toggle__list--single .tyk-toggle__item--active {\n label {\n padding-inline-start: 25px;\n padding-inline-end: 45px;\n\n .tyk-toggle__item-notch {\n inset-inline-start: calc(100% - 35px);\n }\n }\n}\n\n.tyk-toggle--on-dark .tyk-toggle__item:not(.tyk-toggle__item--active) {\n color: var(--toggle-list-text-color-on-dark);\n}\n\n.tyk-toggle--on-dark .tyk-toggle__item-notch--single {\n background: var(--color-background-light);\n}\n\n.tyk-toggle--sm label {\n padding-block: calc(var(--padding-y-button-sm) + 2px);\n padding-inline: calc(var(--padding-x-button-sm) + 2px);\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n border-radius: var(--button-border-radius);\n}\n\n.tyk-toggle--sm .tyk-toggle__list--single label {\n padding-inline-start: 35px;\n}\n\n.tyk-toggle--sm .tyk-toggle__list--single .tyk-toggle__item--active label {\n padding-inline-start: 17px;\n padding-inline-end: 35px;\n\n .tyk-toggle__item-notch {\n inset-inline-start: calc(100% - 27px);\n }\n}\n\n.tyk-toggle--md label {\n padding-block: calc(var(--padding-y-button-md) + 2px);\n padding-inline: calc(var(--padding-x-button-md) + 2px);\n font-size: var(--sm-font-size);\n line-height: var(--line-height-button-sm);\n border-radius: var(--button-border-radius);\n}\n\n.tyk-toggle--lg label {\n padding-block: calc(var(--padding-y-button-lg) + 2px);\n padding-inline: calc(var(--padding-x-button-lg) + 2px);\n font-size: var(--sm-font-size);\n line-height: var(--line-height-button-sm);\n border-radius: var(--button-border-radius);\n}\n\n.tyk-toggle--lg .tyk-toggle__list--single label {\n padding-inline-start: 45px;\n}\n\n.tyk-toggle--lg .tyk-toggle__list--single .tyk-toggle__item--active label {\n padding-inline-start: 25px;\n padding-inline-end: 45px;\n\n .tyk-toggle__item-notch {\n inset-inline-start: calc(100% - 43px);\n }\n}\n\n.tyk-toggle__item-notch {\n border-radius: 25px;\n inset-block: 2px;\n position: absolute;\n transition: all .2s ease;\n}\n\n.tyk-toggle__item-notch--single {\n background: white;\n inset-inline-start: 2px;\n inline-size: 32px;\n}\n\n.tyk-toggle--sm .tyk-toggle__item-notch--single {\n inline-size: 24px;\n}\n\n.tyk-toggle--lg .tyk-toggle__item-notch--single {\n inline-size: 40px;\n}\n\n.tyk-toggle__notch {\n border-radius: 25px;\n inset-inline-start: 0;\n position: absolute;\n inset-block-start: var(--toggle-top);\n inset-block-end: var(--toggle-bottom);\n transition: all .2s ease;\n inline-size: 100px;\n z-index: 1;\n}\n\n.tyk-toggle--default .tyk-toggle__notch {\n --toggle-notch-background: var(--button-default-color);\n --toggle-notch-border: transparent;\n --toggle-notch-color: white;\n --toggle-notch-hover-background: var(--button-default-color);\n --toggle-notch-hover-color: white;\n}\n\n.tyk-toggle--primary .tyk-toggle__notch {\n --toggle-notch-background: var(--primary-base);\n --toggle-notch-border: transparent;\n --toggle-notch-color: white;\n --toggle-notch-hover-background: var(--primary-base);\n --toggle-notch-hover-color: white;\n}\n\n.tyk-toggle--success .tyk-toggle__notch {\n --toggle-notch-background: var(--success-base);\n --toggle-notch-border: transparent;\n --toggle-notch-color: white;\n --toggle-notch-hover-background: var(--success-base);\n --toggle-notch-hover-color: white;\n}\n\n.tyk-toggle--danger .tyk-toggle__notch {\n --toggle-notch-background: var(--color-danger-base);\n --toggle-notch-border: transparent;\n --toggle-notch-color: white;\n --toggle-notch-hover-background: var(--color-danger-base);\n --toggle-notch-hover-color: white;\n}\n\n.tyk-toggle--warning .tyk-toggle__notch {\n --toggle-notch-background: var(--color-warning-base);\n --toggle-notch-border: transparent;\n --toggle-notch-color: var(--text-color);\n --toggle-notch-hover-background: var(--color-warning-base);\n --toggle-notch-hover-color: var(--text-color);\n}\n\n.tyk-toggle--default .tyk-toggle__notch,\n.tyk-toggle--primary .tyk-toggle__notch,\n.tyk-toggle--success .tyk-toggle__notch,\n.tyk-toggle--danger .tyk-toggle__notch,\n.tyk-toggle--warning .tyk-toggle__notch {\n background-color: var(--toggle-notch-background);\n color: var(--toggle-notch-color);\n border: var(--general-border-width) solid var(--toggle-notch-border);\n\n &:hover {\n background-color: var(--toggle-notch-hover-background);\n color: var(--toggle-notch-hover-color);\n }\n}\n\n.tyk-toggle--primary-gradient .tyk-toggle__notch {\n --toggle-notch-gradient-left-color: var(--color-primary-base);\n --toggle-notch-gradient-right-color: var(--color-primary-dark);\n --toggle-notch-gradient-color: white;\n}\n\n.tyk-toggle--success-gradient .tyk-toggle__notch {\n --toggle-notch-gradient-left-color: var(--color-success-base);\n --toggle-notch-gradient-right-color: var(--color-success-dark);\n --toggle-notch-gradient-color: white;\n}\n\n.tyk-toggle--danger-gradient .tyk-toggle__notch {\n --toggle-notch-gradient-left-color: var(--color-danger-base);\n --toggle-notch-gradient-right-color: var(--color-danger-dark);\n --toggle-notch-gradient-color: white;\n}\n\n.tyk-toggle--warning-gradient .tyk-toggle__notch {\n --toggle-notch-gradient-left-color: var(--color-warning-light);\n --toggle-notch-gradient-right-color: var(--color-warning-base);\n --toggle-notch-gradient-color: var(--text-color);\n}\n\n.tyk-toggle--primary-gradient .tyk-toggle__notch,\n.tyk-toggle--success-gradient .tyk-toggle__notch,\n.tyk-toggle--danger-gradient .tyk-toggle__notch,\n.tyk-toggle--warning-gradient .tyk-toggle__notch {\n border-image: linear-gradient(to right, var(--toggle-notch-gradient-left-color), var(--toggle-notch-gradient-right-color), var(--toggle-notch-gradient-left-color)) 0 round;\n background: transparent linear-gradient(to right, var(--toggle-notch-gradient-left-color), var(--toggle-notch-gradient-right-color), var(--toggle-notch-gradient-left-color));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: var(--toggle-notch-gradient-color);\n}\n\n.empty-toggle {\n padding: 1px;\n}","* {\n box-sizing: border-box;\n}\n\nbody {\n background-color: var(--color-background-base);\n color: var(--text-color);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-regular);\n}\n\n.tyk-main-wrapper {\n display: flex;\n flex-wrap: nowrap;\n}\n\n.tyk-main-content-wrapper {\n flex: 1;\n}\n\n.well {\n background: transparent;\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n box-shadow: none;\n\n &.has-error {\n border-color: var(--color-danger-base);\n }\n}\n",".title-medium {\n font-family: var(--font-family-medium);\n color: var(--label-color);\n font-size: var(--title-medium-font-size);\n}",".right-align {\n text-align: end !important;\n}\n\n.left-align {\n text-align: start !important;\n}\n\n.center-align {\n text-align: center !important;\n}\n\n.left {\n float: inline-start !important;\n}\n\n.right {\n float: inline-end !important;\n}\n\n.hide {\n display: none !important;\n}\n\n.no-margin {\n margin: 0 !important;\n}\n\n.no-margin-bottom {\n margin-block-end: 0 !important;\n}\n\n.no-margin-top {\n margin-block-start: 0 !important;\n}\n\n.no-margin-right {\n margin-inline-end: 0 !important;\n}\n\n.no-margin-left {\n margin-inline-start: 0 !important;\n}\n\n.disabled-section {\n color: var(--color-default-light);\n}\n\n.top-buffer-large {\n margin-block-start: var(--top-buffer-large) !important;\n}\n\n.top-buffer-small {\n margin-block-start: var(--top-buffer-small) !important;\n}\n\n.top-buffer-medium {\n margin-block-start: var(--top-buffer-medium) !important;\n}\n\n.bottom-buffer-large {\n margin-block-end: var(--bottom-buffer-large) !important;\n}\n\n.bottom-buffer-small {\n margin-block-end: var(--bottom-buffer-small) !important;\n}\n\n.bottom-buffer-medium {\n margin-block-end: var(--bottom-buffer-medium) !important;\n}\n\n.right-buffer-large {\n margin-inline-end: var(--right-buffer-large) !important;\n}\n\n.right-buffer-small {\n margin-inline-end: var(--right-buffer-small) !important;\n}\n\n.right-buffer-medium {\n margin-inline-end: var(--right-buffer-medium) !important;\n}\n\n.left-buffer-large {\n margin-inline-start: var(--left-buffer-large) !important;\n}\n\n.left-buffer-small {\n margin-inline-start: var(--left-buffer-small) !important;\n}\n\n.left-buffer-medium {\n margin-inline-start: var(--left-buffer-medium) !important;\n}\n\n.word-wrap {\n word-wrap: break-word;\n word-break: break-all;\n}\n\n.clear-left {\n clear: inline-start;\n}\n\n.flex-container {\n display: flex;\n}\n\n.vertical-center-align {\n align-items: center;\n}\n\n\n.right-align-controls {\n align-items: center;\n display: flex;\n margin-inline-start: auto;\n}\n\n.inline-label {\n margin-inline-end: 15px;\n}\n\n.nowrap {\n white-space: nowrap;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"index.css","mappings":"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,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,4BAA6B,CAC7B,iCACF,CAEA,uBACE,wBACF,CACF,CAEA,6CACE,eACE,gBAA2B,CAC3B,qBACF,CAEA,sBACE,qBACF,CAEA,eACE,gCAAsC,CACtC,qCACF,CAEA,sBACE,iCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,4BAA6B,CAC7B,iCACF,CAEA,uBACE,wBACF,CACF,CAEA,2CACE,eACE,gBAA2B,CAC3B,qBACF,CAEA,sBACE,qBACF,CAEA,eACE,gCAAsC,CACtC,qCACF,CAEA,sBACE,iCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,4BAA6B,CAC7B,iCACF,CAEA,uBACE,wBACF,CACF,CAEA,mCACE,eACE,gBAA2B,CAC3B,qBACF,CAEA,sBACE,qBACF,CAEA,eACE,gCAAsC,CACtC,qCACF,CAEA,sBACE,iCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,4BAA6B,CAC7B,iCACF,CAEA,uBACE,wBACF,CACF,CC1iBA,WACE,sBAAuB,CAIvB,iBAAkB,CADlB,eAAmB,CAFnB,qGAIF,CAEA,WACE,uBAAwB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A,wBACE,aACF,CAEA,yBACE,aACF,CAEA,sBACE,aACF,CAEA,8BACE,aACF,CAEA,qBACE,aACF,CAEA,qBACE,aACF,CAEA,qBACE,aACF,CAEA,oBACE,aACF,CAEA,qBACE,aACF,CAEA,qBACE,aACF,CAEA,qBACE,aACF,CAEA,mBACE,aACF,CAEA,yBACE,aACF,CAEA,mBACE,aACF,CAEA,uBACE,aACF,CAEA,sBACE,aACF,CAEA,0BACE,aACF,CAEA,oBACE,aACF,CAEA,wBACE,aACF,CAEA,oBACE,aACF,CAEA,mBACE,aACF,CAEA,qBACE,aACF,CAEA,uBACE,aACF,CAEA,oBACE,aACF,CAEA,mBACE,aACF,CAEA,sBACE,aACF,CAEA,mBACE,aACF,CAEA,mBACE,aACF,CAEA,oBACE,aACF,CAEA,oBACE,aACF,CAEA,4BACE,aACF,CAEA,mBACE,aACF,CAEA,sBACE,aACF,CAEA,qBACE,aACF,CAEA,uBACE,aACF,CAEA,sBACE,aACF,CAEA,gBACE,aACF,CAEA,sBACE,aACF,CAEA,yBACE,eACF,CAEA,8BACE,eACF,CAEA,mBACE,aACF,CCjLA,kBAIE,2BAA4B,CAF5B,uCAAwC,CACxC,uCAAwC,CAFxC,8CAIF,CAEA,MAIE,wBAAyB,CAHzB,oBAAqB,CAErB,oBAAqB,CADrB,oBAGF,CAEA,GACE,8BAA+B,CAC/B,kCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,QAIE,sCAAuC,CAFvC,6BAA8B,CAC9B,iCAAkC,CAGlC,EACE,6BAA8B,CAC9B,yBACF,CACF,CAEA,OACE,mCACF,CAEA,mBAEE,uBAAwB,CADxB,cAAe,CAEf,sCAAuC,CAEvC,aACE,mCACF,CAEA,GACE,uBACF,CAEA,EACE,aACF,CACF,CAEA,qBACE,sCACF,CAEA,oBACE,qCACF,CAEA,kBACE,mCACF,CAEA,6BACE,+CACF,CAEA,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B,CAG7B,uBAAwB,CADxB,yBAA0B,CAJ1B,uKAA2K,CAM3K,wCACF,CAEA,cACE,WACF,CC3fA,EACE,qBACF,CAEA,KACE,6CAA8C,CAC9C,uBAAwB,CAGxB,sCAAuC,CAFvC,6BAA8B,CAC9B,iCAEF,CAEA,kBACE,YAAa,CACb,gBACF,CAEA,0BACE,MACF,CAEA,MACE,sBAAuB,CACvB,mEAAoE,CACpE,0CAA2C,CAC3C,eAAgB,CAEhB,YACE,qCACF,CACF,CC9BA,cAEE,wBAAyB,CADzB,qCAAsC,CAEtC,uCACF,CCJA,aACE,wBACF,CAEA,YACE,0BACF,CAEA,cACE,2BACF,CAEA,MACE,4BACF,CAEA,OACE,0BACF,CAEA,MACE,sBACF,CAEA,WACE,kBACF,CAEA,kBACE,4BACF,CAEA,eACE,8BACF,CAEA,iBACE,6BACF,CAEA,gBACE,+BACF,CAEA,kBACE,gCACF,CAEA,kBACE,oDACF,CAEA,kBACE,oDACF,CAEA,mBACE,qDACF,CAEA,qBACE,qDACF,CAEA,qBACE,qDACF,CAEA,sBACE,sDACF,CAEA,oBACE,qDACF,CAEA,oBACE,qDACF,CAEA,qBACE,sDACF,CAEA,mBACE,sDACF,CAEA,mBACE,sDACF,CAEA,oBACE,uDACF,CAEA,WACE,oBAAqB,CACrB,oBACF,CAEA,YACE,kBACF,CAEA,gBACE,YACF,CAEA,uBACE,kBACF,CAGA,sBACE,kBAAmB,CACnB,YAAa,CACb,wBACF,CAEA,cACE,sBACF,CAEA,QACE,kBACF","sources":["webpack://@tyk-technologies/tyk-ui/./src/common/css/reset.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/variables.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/grid.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/fonts.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/fontawesome/light.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/fontawesome/regular.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/fontawesome/solid.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/fontawesome/fontawesome.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/tykon.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/typography.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/form.css","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/Accordion.css","webpack://@tyk-technologies/tyk-ui/./src/components/Button/Button.css","webpack://@tyk-technologies/tyk-ui/./src/components/ButtonGroup/ButtonGroup.css","webpack://@tyk-technologies/tyk-ui/./src/components/Card/Card.css","webpack://@tyk-technologies/tyk-ui/./src/components/Chart/Chart.css","webpack://@tyk-technologies/tyk-ui/./src/components/Collapsible/Collapsible.css","webpack://@tyk-technologies/tyk-ui/./src/components/CopyToClipboard/CopyToClipboard.css","webpack://@tyk-technologies/tyk-ui/./src/components/FixedWrapper/FixedWrapper.css","webpack://@tyk-technologies/tyk-ui/./src/components/FloatingContainer/FloatingContainer.css","webpack://@tyk-technologies/tyk-ui/./src/components/Icon/Icon.css","webpack://@tyk-technologies/tyk-ui/./src/components/InfiniteScroller/InfiniteScroller.css","webpack://@tyk-technologies/tyk-ui/./src/components/InfoNote/InfoNote.css","webpack://@tyk-technologies/tyk-ui/./src/components/Loader/Loader.css","webpack://@tyk-technologies/tyk-ui/./src/components/List/List.css","webpack://@tyk-technologies/tyk-ui/./src/components/Message/Message.css","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/Modal.css","webpack://@tyk-technologies/tyk-ui/./src/components/Navigation/Navigation.css","webpack://@tyk-technologies/tyk-ui/./src/components/NavBar/NavBar.css","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/Panel.css","webpack://@tyk-technologies/tyk-ui/./src/components/Pill/Pill.css","webpack://@tyk-technologies/tyk-ui/./src/components/RevealPanel/RevealPanel.css","webpack://@tyk-technologies/tyk-ui/./src/components/Sidebar/Sidebar.css","webpack://@tyk-technologies/tyk-ui/./src/components/Table/Table.css","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/Tabs.css","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/Toast.css","webpack://@tyk-technologies/tyk-ui/./src/components/Tooltip/Tooltip.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/Combobox.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Checkbox/Checkbox.css","webpack://@tyk-technologies/tyk-ui/./node_modules/flatpickr/dist/flatpickr.min.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/DatePicker/DatePicker.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/Dropdown.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/Dropdown.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList/EditableList.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/EditableList2.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/FileInput/FileInput.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/Multiselect.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Pagination/Pagination.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Radio/Radio.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Select/Select.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/SelectableList/SelectableList.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Textarea/Textarea.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/Toggle.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/layout.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/texts.css","webpack://@tyk-technologies/tyk-ui/./src/utils/css-helpers/helpers.css"],"sourcesContent":["html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font: inherit;\n font-size: 100%;\n vertical-align: baseline;\n}\n\n/* HTML5 display-role reset for older browsers */\n\narticle, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {\n display: block; }\n\nbody {\n line-height: 1; }\n\nol, ul {\n list-style: none; }\n\nblockquote, q {\n quotes: none; }\n\nblockquote {\n &::before, &::after {\n content: '';\n content: none; } }\n\nq {\n &::before, &::after {\n content: '';\n content: none; } }\n\ntable {\n border-collapse: collapse;\n border-spacing: 0; }\n",":root {\n --general-border-radius: 18px;\n --general-border-width: 2px;\n\n --color-default-base: #36364C;\n --color-default-base-light: #7A79A1;\n --color-default-light: #C3C3E5;\n --color-default-dark: #505071;\n --color-primary-base: #A2A2CC;\n --color-primary-light: #EDEDF9;\n --color-primary-dark: #505071;\n --color-success-base: #00d9ba;\n --color-success-light: #C2F2E9;\n --color-success-dark: #00B798;\n --color-info-base: #82BBC6;\n --color-info-light: #D3EBEF;\n --color-danger-base: #FF6C7D;\n --color-danger-extra-light: #F5CCD1;\n --color-danger-light: #FFBBC5;\n --color-danger-dark: #EA4766;\n --color-warning-base: #D6B218;\n --color-warning-light: #FFE885;\n --color-warning-dark: #C58C11;\n --color-foreground-base: #393939;\n --color-foreground-base-dark: #22272B;\n --color-foreground-light: #5a5a68;\n --color-foreground-dark: #161B20;\n --color-foreground-extra-dark: #0A0D10;\n --color-background-base: #E1E1E1;\n --color-background-light: #EDEDF9;\n --color-background-dark: #43435B;\n --color-background-extra-dark: #0A0D10;\n\n --text-color: var(--color-default-dark);\n --label-color: var(--color-default-base);\n\n --xs-line-height: 16px;\n --sm-line-height: 19px;\n --md-line-height: 22px;\n --lg-line-height: 23px;\n --xl-line-height: 24px;\n --xxl-line-height: 30px;\n\n --xs-font-size: 13px;\n --sm-font-size: 14px;\n --md-font-size: 16px;\n --lg-font-size: 18px;\n --xl-font-size: 20px;\n --xxl-font-size: 25px;\n\n --base-font-size: var(--sm-font-size);\n --base-line-height: var(--sm-line-height);\n\n --spacing-xs: 5px;\n --spacing-sm: 10px;\n --spacing-base: 15px;\n --spacing-md: 20px;\n --spacing-lg: 25px;\n --spacing-xl: 30px;\n --spacing-xxl: 40px;\n\n --grid-gutter: var(--spacing-md);\n --grid-max-width: calc(1200px + var(--grid-gutter) * 2);\n\n --breakpoint-xs: 420px;\n --breakpoint-sm: 768px;\n --breakpoint-md: 1024px;\n --breakpoint-lg: 1248px;\n\n --font-inter-light: 'Inter-Light';\n --font-inter-medium: 'Inter-Medium';\n --font-inter-regular: 'Inter-Regular';\n --font-inter-bold: 'Inter-Bold';\n\n --font-family-regular: 'OpenSans-regular';\n --font-family-medium: 'OpenSans-SemiBold';\n --font-family-bold: 'OpenSans-Bold';\n\n --headings-color: var(--color-default-base);\n --headings-font-family-regular: 'smoolthan_regular';\n --headings-font-family-medium: 'smoolthan_medium';\n --headings-font-family-bold: 'smoolthan_bold';\n\n --headings-margin-bottom: 15px;\n --headings-font-family: var(--headings-font-family-medium);\n --headings-font-weight: 500;\n --headings-line-height: var(--base-line-height);\n\n --form-group-margin-bottom: 15px;\n --form-control-height: 39px;\n --form-control-padding-left: var(--spacing-md);\n --form-control-padding-right: var(--spacing-md);\n --form-control-padding-top: 10px;\n --form-control-padding-bottom: 10px;\n --form-control-addon-background-color: white;\n --form-control-addon-padding-top: 10px;\n --form-control-addon-padding-bottom: 10px;\n --form-control-addon-padding-left: 10px;\n --form-control-addon-padding-right: 10px;\n --form-control-border: var(--general-border-width) solid var(--color-default-light);\n --form-control-disabled-border: var(--general-border-width) solid var(--color-default-light);\n --form-control-placeholder-color: var(--color-primary-base);\n --form-control-disabled-background-color: var(--color-background-light);\n --form-control-disabled-color:var(--text-color);\n --form-control-border-focus: 2px solid var(--color-success-base);\n --form-control-placeholder-font-family: var(--font-family-medium);\n --form-control-error-colour: var(--color-danger-dark);\n --form-default-color: var(--color-default-light);\n --form-primary-color: var(--color-primary-base);\n --form-success-color: var(--color-success-base);\n\n --error-border: var(--general-border-width) solid var(--color-danger-base);\n --error-border-left: 2px solid var(--color-danger-dark);\n --help-block-color: var(--color-default-base);\n --help-block-font-style: normal;\n --help-block-padding: 0 0 0 var(--form-control-padding-left);\n --error-message-padding: 0 0 0 var(--form-control-padding-left);\n --default-pill-background-color: var(--color-default-base);\n --default-pill-color: white;\n --pill-margin: 0 0 10px 0;\n --default-outline-pill-box-shadow: inset 0 0 0 2px var(--color-default-base);\n --default-outline-pill-color: var(--text-color);\n\n --title-medium-font-size: 16px;\n\n --bottom-buffer-large: var(--spacing-md);\n --bottom-buffer-medium: 10px;\n --bottom-buffer-small: 5px;\n --top-buffer-large: var(--spacing-md);\n --top-buffer-medium: 10px;\n --top-buffer-small: 5px;\n --right-buffer-large: var(--spacing-md);\n --right-buffer-medium: 10px;\n --right-buffer-small: 5px;\n --left-buffer-large: var(--spacing-md);\n --left-buffer-medium: 10px;\n --left-buffer-small: 5px;\n\n --modal-z-index: 1080;\n}\n","/* stylelint-disable number-max-precision */\n\n.container {\n max-inline-size: var(--grid-max-width);\n margin-block: 0;\n margin-inline: auto;\n}\n\n.container,\n.container-fluid {\n padding-block: 0;\n padding-inline: var(--grid-gutter);\n}\n\n.tyk-row {\n display: flex;\n box-sizing: border-box;\n list-style: none;\n flex: 0 1 auto;\n flex-direction: row;\n flex-wrap: wrap;\n margin-inline-start: calc(-1 * var(--grid-gutter));\n inline-size: calc(100% + var(--grid-gutter));\n\n &.no-gutters {\n margin: 0;\n }\n\n &.tyk-row--gutterless {\n margin: 0;\n inline-size: 100%;\n }\n\n &.tyk-row--reverse {\n flex-direction: row-reverse;\n }\n}\n\n.tyk-col {\n max-inline-size: calc(100% - var(--grid-gutter));\n box-sizing: border-box;\n flex: 0 0 auto;\n flex-grow: 1;\n flex-basis: calc(100% - var(--grid-gutter));\n margin-inline-start: var(--grid-gutter);\n inline-size: calc(100% - var(--grid-gutter));\n\n &:last-child {\n margin-inline-end: 0;\n }\n\n .tyk-row--gutterless & {\n margin: 0;\n }\n\n &.tyk-col--reverse {\n flex-direction: column-reverse;\n }\n\n &.tyk-col--align-bottom {\n align-self: flex-end;\n }\n\n &.tyk-col--align-top {\n align-self: flex-start;\n }\n\n &.tyk-col--align-center {\n align-self: center;\n }\n\n &.tyk-col--align-baseline {\n align-self: baseline;\n }\n\n &.tyk-col--align-stretch {\n align-self: stretch;\n }\n}\n\n@media screen and (width >= 1248px) {\n .tyk-col--lg-0 {\n flex-basis: calc(0% - 20px);\n max-inline-size: calc(0% - 20px);\n }\n\n .tyk-col--offset-lg-0 {\n margin-inline-start: 0%;\n }\n\n .tyk-col--lg-1 {\n flex-basis: calc(8.3333333333% - 20px);\n max-inline-size: calc(8.3333333333% - 20px);\n }\n\n .tyk-col--offset-lg-1 {\n margin-inline-start: 8.3333333333%;\n }\n\n .tyk-col--lg-2 {\n flex-basis: calc(16.6666666667% - 20px);\n max-inline-size: calc(16.6666666667% - 20px);\n }\n\n .tyk-col--offset-lg-2 {\n margin-inline-start: 16.6666666667%;\n }\n\n .tyk-col--lg-3 {\n flex-basis: calc(25% - 20px);\n max-inline-size: calc(25% - 20px);\n }\n\n .tyk-col--offset-lg-3 {\n margin-inline-start: 25%;\n }\n\n .tyk-col--lg-4 {\n flex-basis: calc(33.3333333333% - 20px);\n max-inline-size: calc(33.3333333333% - 20px);\n }\n\n .tyk-col--offset-lg-4 {\n margin-inline-start: 33.3333333333%;\n }\n\n .tyk-col--lg-5 {\n flex-basis: calc(41.6666666667% - 20px);\n max-inline-size: calc(41.6666666667% - 20px);\n }\n\n .tyk-col--offset-lg-5 {\n margin-inline-start: 41.6666666667%;\n }\n\n .tyk-col--lg-6 {\n flex-basis: calc(50% - 20px);\n max-inline-size: calc(50% - 20px);\n }\n\n .tyk-col--offset-lg-6 {\n margin-inline-start: 50%;\n }\n\n .tyk-col--lg-7 {\n flex-basis: calc(58.3333333333% - 20px);\n max-inline-size: calc(58.3333333333% - 20px);\n }\n\n .tyk-col--offset-lg-7 {\n margin-inline-start: 58.3333333333%;\n }\n\n .tyk-col--lg-8 {\n flex-basis: calc(66.6666666667% - 20px);\n max-inline-size: calc(66.6666666667% - 20px);\n }\n\n .tyk-col--offset-lg-8 {\n margin-inline-start: 66.6666666667%;\n }\n\n .tyk-col--lg-9 {\n flex-basis: calc(75% - 20px);\n max-inline-size: calc(75% - 20px);\n }\n\n .tyk-col--offset-lg-9 {\n margin-inline-start: 75%;\n }\n\n .tyk-col--lg-10 {\n flex-basis: calc(83.3333333333% - 20px);\n max-inline-size: calc(83.3333333333% - 20px);\n }\n\n .tyk-col--offset-lg-10 {\n margin-inline-start: 83.3333333333%;\n }\n\n .tyk-col--lg-11 {\n flex-basis: calc(91.6666666667% - 20px);\n max-inline-size: calc(91.6666666667% - 20px);\n }\n\n .tyk-col--offset-lg-11 {\n margin-inline-start: 91.6666666667%;\n }\n\n .tyk-col--lg-12 {\n flex-basis: calc(100% - 20px);\n max-inline-size: calc(100% - 20px);\n }\n\n .tyk-col--offset-lg-12 {\n margin-inline-start: 100%;\n }\n}\n\n@media screen and (1024px <= width < 1248px) {\n .tyk-col--md-0 {\n flex-basis: calc(0% - 20px);\n max-inline-size: calc(0% - 20px);\n }\n\n .tyk-col--offset-md-0 {\n margin-inline-start: 0%;\n }\n\n .tyk-col--md-1 {\n flex-basis: calc(8.3333333333% - 20px);\n max-inline-size: calc(8.3333333333% - 20px);\n }\n\n .tyk-col--offset-md-1 {\n margin-inline-start: 8.3333333333%;\n }\n\n .tyk-col--md-2 {\n flex-basis: calc(16.6666666667% - 20px);\n max-inline-size: calc(16.6666666667% - 20px);\n }\n\n .tyk-col--offset-md-2 {\n margin-inline-start: 16.6666666667%;\n }\n\n .tyk-col--md-3 {\n flex-basis: calc(25% - 20px);\n max-inline-size: calc(25% - 20px);\n }\n\n .tyk-col--offset-md-3 {\n margin-inline-start: 25%;\n }\n\n .tyk-col--md-4 {\n flex-basis: calc(33.3333333333% - 20px);\n max-inline-size: calc(33.3333333333% - 20px);\n }\n\n .tyk-col--offset-md-4 {\n margin-inline-start: 33.3333333333%;\n }\n\n .tyk-col--md-5 {\n flex-basis: calc(41.6666666667% - 20px);\n max-inline-size: calc(41.6666666667% - 20px);\n }\n\n .tyk-col--offset-md-5 {\n margin-inline-start: 41.6666666667%;\n }\n\n .tyk-col--md-6 {\n flex-basis: calc(50% - 20px);\n max-inline-size: calc(50% - 20px);\n }\n\n .tyk-col--offset-md-6 {\n margin-inline-start: 50%;\n }\n\n .tyk-col--md-7 {\n flex-basis: calc(58.3333333333% - 20px);\n max-inline-size: calc(58.3333333333% - 20px);\n }\n\n .tyk-col--offset-md-7 {\n margin-inline-start: 58.3333333333%;\n }\n\n .tyk-col--md-8 {\n flex-basis: calc(66.6666666667% - 20px);\n max-inline-size: calc(66.6666666667% - 20px);\n }\n\n .tyk-col--offset-md-8 {\n margin-inline-start: 66.6666666667%;\n }\n\n .tyk-col--md-9 {\n flex-basis: calc(75% - 20px);\n max-inline-size: calc(75% - 20px);\n }\n\n .tyk-col--offset-md-9 {\n margin-inline-start: 75%;\n }\n\n .tyk-col--md-10 {\n flex-basis: calc(83.3333333333% - 20px);\n max-inline-size: calc(83.3333333333% - 20px);\n }\n\n .tyk-col--offset-md-10 {\n margin-inline-start: 83.3333333333%;\n }\n\n .tyk-col--md-11 {\n flex-basis: calc(91.6666666667% - 20px);\n max-inline-size: calc(91.6666666667% - 20px);\n }\n\n .tyk-col--offset-md-11 {\n margin-inline-start: 91.6666666667%;\n }\n\n .tyk-col--md-12 {\n flex-basis: calc(100% - 20px);\n max-inline-size: calc(100% - 20px);\n }\n\n .tyk-col--offset-md-12 {\n margin-inline-start: 100%;\n }\n}\n\n@media screen and (768px < width < 1024px) {\n .tyk-col--sm-0 {\n flex-basis: calc(0% - 20px);\n max-inline-size: calc(0% - 20px);\n }\n\n .tyk-col--offset-sm-0 {\n margin-inline-start: 0%;\n }\n\n .tyk-col--sm-1 {\n flex-basis: calc(8.3333333333% - 20px);\n max-inline-size: calc(8.3333333333% - 20px);\n }\n\n .tyk-col--offset-sm-1 {\n margin-inline-start: 8.3333333333%;\n }\n\n .tyk-col--sm-2 {\n flex-basis: calc(16.6666666667% - 20px);\n max-inline-size: calc(16.6666666667% - 20px);\n }\n\n .tyk-col--offset-sm-2 {\n margin-inline-start: 16.6666666667%;\n }\n\n .tyk-col--sm-3 {\n flex-basis: calc(25% - 20px);\n max-inline-size: calc(25% - 20px);\n }\n\n .tyk-col--offset-sm-3 {\n margin-inline-start: 25%;\n }\n\n .tyk-col--sm-4 {\n flex-basis: calc(33.3333333333% - 20px);\n max-inline-size: calc(33.3333333333% - 20px);\n }\n\n .tyk-col--offset-sm-4 {\n margin-inline-start: 33.3333333333%;\n }\n\n .tyk-col--sm-5 {\n flex-basis: calc(41.6666666667% - 20px);\n max-inline-size: calc(41.6666666667% - 20px);\n }\n\n .tyk-col--offset-sm-5 {\n margin-inline-start: 41.6666666667%;\n }\n\n .tyk-col--sm-6 {\n flex-basis: calc(50% - 20px);\n max-inline-size: calc(50% - 20px);\n }\n\n .tyk-col--offset-sm-6 {\n margin-inline-start: 50%;\n }\n\n .tyk-col--sm-7 {\n flex-basis: calc(58.3333333333% - 20px);\n max-inline-size: calc(58.3333333333% - 20px);\n }\n\n .tyk-col--offset-sm-7 {\n margin-inline-start: 58.3333333333%;\n }\n\n .tyk-col--sm-8 {\n flex-basis: calc(66.6666666667% - 20px);\n max-inline-size: calc(66.6666666667% - 20px);\n }\n\n .tyk-col--offset-sm-8 {\n margin-inline-start: 66.6666666667%;\n }\n\n .tyk-col--sm-9 {\n flex-basis: calc(75% - 20px);\n max-inline-size: calc(75% - 20px);\n }\n\n .tyk-col--offset-sm-9 {\n margin-inline-start: 75%;\n }\n\n .tyk-col--sm-10 {\n flex-basis: calc(83.3333333333% - 20px);\n max-inline-size: calc(83.3333333333% - 20px);\n }\n\n .tyk-col--offset-sm-10 {\n margin-inline-start: 83.3333333333%;\n }\n\n .tyk-col--sm-11 {\n flex-basis: calc(91.6666666667% - 20px);\n max-inline-size: calc(91.6666666667% - 20px);\n }\n\n .tyk-col--offset-sm-11 {\n margin-inline-start: 91.6666666667%;\n }\n\n .tyk-col--sm-12 {\n flex-basis: calc(100% - 20px);\n max-inline-size: calc(100% - 20px);\n }\n\n .tyk-col--offset-sm-12 {\n margin-inline-start: 100%;\n }\n}\n\n@media screen and (width <= 768px) {\n .tyk-col--xs-0 {\n flex-basis: calc(0% - 20px);\n max-inline-size: calc(0% - 20px);\n }\n\n .tyk-col--offset-xs-0 {\n margin-inline-start: 0%;\n }\n\n .tyk-col--xs-1 {\n flex-basis: calc(8.3333333333% - 20px);\n max-inline-size: calc(8.3333333333% - 20px);\n }\n\n .tyk-col--offset-xs-1 {\n margin-inline-start: 8.3333333333%;\n }\n\n .tyk-col--xs-2 {\n flex-basis: calc(16.6666666667% - 20px);\n max-inline-size: calc(16.6666666667% - 20px);\n }\n\n .tyk-col--offset-xs-2 {\n margin-inline-start: 16.6666666667%;\n }\n\n .tyk-col--xs-3 {\n flex-basis: calc(25% - 20px);\n max-inline-size: calc(25% - 20px);\n }\n\n .tyk-col--offset-xs-3 {\n margin-inline-start: 25%;\n }\n\n .tyk-col--xs-4 {\n flex-basis: calc(33.3333333333% - 20px);\n max-inline-size: calc(33.3333333333% - 20px);\n }\n\n .tyk-col--offset-xs-4 {\n margin-inline-start: 33.3333333333%;\n }\n\n .tyk-col--xs-5 {\n flex-basis: calc(41.6666666667% - 20px);\n max-inline-size: calc(41.6666666667% - 20px);\n }\n\n .tyk-col--offset-xs-5 {\n margin-inline-start: 41.6666666667%;\n }\n\n .tyk-col--xs-6 {\n flex-basis: calc(50% - 20px);\n max-inline-size: calc(50% - 20px);\n }\n\n .tyk-col--offset-xs-6 {\n margin-inline-start: 50%;\n }\n\n .tyk-col--xs-7 {\n flex-basis: calc(58.3333333333% - 20px);\n max-inline-size: calc(58.3333333333% - 20px);\n }\n\n .tyk-col--offset-xs-7 {\n margin-inline-start: 58.3333333333%;\n }\n\n .tyk-col--xs-8 {\n flex-basis: calc(66.6666666667% - 20px);\n max-inline-size: calc(66.6666666667% - 20px);\n }\n\n .tyk-col--offset-xs-8 {\n margin-inline-start: 66.6666666667%;\n }\n\n .tyk-col--xs-9 {\n flex-basis: calc(75% - 20px);\n max-inline-size: calc(75% - 20px);\n }\n\n .tyk-col--offset-xs-9 {\n margin-inline-start: 75%;\n }\n\n .tyk-col--xs-10 {\n flex-basis: calc(83.3333333333% - 20px);\n max-inline-size: calc(83.3333333333% - 20px);\n }\n\n .tyk-col--offset-xs-10 {\n margin-inline-start: 83.3333333333%;\n }\n\n .tyk-col--xs-11 {\n flex-basis: calc(91.6666666667% - 20px);\n max-inline-size: calc(91.6666666667% - 20px);\n }\n\n .tyk-col--offset-xs-11 {\n margin-inline-start: 91.6666666667%;\n }\n\n .tyk-col--xs-12 {\n flex-basis: calc(100% - 20px);\n max-inline-size: calc(100% - 20px);\n }\n\n .tyk-col--offset-xs-12 {\n margin-inline-start: 100%;\n }\n}\n","@font-face {\n font-family: Inter-Bold;\n src: url('../fonts/inter/Inter-Bold.woff2') format('woff2'),\n url('../fonts/inter/Inter-Bold.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: Inter-Light;\n src: url('../fonts/inter/Inter-Light.woff2') format('woff2'),\n url('../fonts/inter/Inter-Light.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: Inter-Medium;\n src: url('../fonts/inter/Inter-Medium.woff2') format('woff2'),\n url('../fonts/inter/Inter-Medium.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: Inter-Regular;\n src: url('../fonts/inter/Inter-Regular.woff2') format('woff2'),\n url('../fonts/inter/Inter-Regular.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: Inter-SemiBold;\n src: url('../fonts/inter/Inter-SemiBold.woff2') format('woff2'),\n url('../fonts/inter/Inter-SemiBold.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: OpenSans-Bold;\n src: url('../fonts/OpenSans-Bold.woff2') format('woff2'),\n url('../fonts/OpenSans-Bold.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: OpenSans-SemiBold;\n src: url('../fonts/OpenSans-SemiBold.woff2') format('woff2'),\n url('../fonts/OpenSans-SemiBold.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: OpenSans-Regular;\n src: url('../fonts/OpenSans-Regular.woff2') format('woff2'),\n url('../fonts/OpenSans-Regular.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'smoolthan_bold';\n src: url('../fonts/smoolthan_bold-webfont.woff2') format('woff2'),\n url('../fonts/smoolthan_bold-webfont.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'smoolthan_medium';\n src: url('../fonts/smoolthan_medium-webfont.woff2') format('woff2'),\n url('../fonts/smoolthan_medium-webfont.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'smoolthan_regular';\n src: url('../fonts/smoolthan_regular-webfont.woff2') format('woff2'),\n url('../fonts/smoolthan_regular-webfont.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: tykon;\n src: url('../fonts/tykon.woff2') format('woff2'),\n url('../fonts/tykon.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n","/*!\n * Font Awesome Pro 6.5.2 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license (Commercial License)\n * Copyright 2024 Fonticons, Inc.\n */\n:root, :host {\n --fa-style-family-classic: 'Font Awesome 6 Pro';\n --fa-font-light: normal 300 1em/1 'Font Awesome 6 Pro'; }\n\n@font-face {\n font-family: 'Font Awesome 6 Pro';\n font-style: normal;\n font-weight: 300;\n font-display: block;\n src: url(\"../../fonts/fontawesome/fa-light-300.woff2\") format(\"woff2\"), url(\"../../fonts/fontawesome/fa-light-300.ttf\") format(\"truetype\"); }\n\n.fal,\n.fa-light {\n font-weight: 300; }\n","/*!\n * Font Awesome Pro 6.5.2 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license (Commercial License)\n * Copyright 2024 Fonticons, Inc.\n */\n:root, :host {\n --fa-style-family-classic: 'Font Awesome 6 Pro';\n --fa-font-regular: normal 400 1em/1 'Font Awesome 6 Pro'; }\n\n@font-face {\n font-family: 'Font Awesome 6 Pro';\n font-style: normal;\n font-weight: 400;\n font-display: block;\n src: url(\"../../fonts/fontawesome/fa-regular-400.woff2\") format(\"woff2\"), url(\"../../fonts/fontawesome/fa-regular-400.ttf\") format(\"truetype\"); }\n\n.far,\n.fa-regular {\n font-weight: 400; }\n","/*!\n * Font Awesome Pro 6.5.2 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license (Commercial License)\n * Copyright 2024 Fonticons, Inc.\n */\n:root, :host {\n --fa-style-family-classic: 'Font Awesome 6 Pro';\n --fa-font-solid: normal 900 1em/1 'Font Awesome 6 Pro'; }\n\n@font-face {\n font-family: 'Font Awesome 6 Pro';\n font-style: normal;\n font-weight: 900;\n font-display: block;\n src: url(\"../../fonts/fontawesome/fa-solid-900.woff2\") format(\"woff2\"), url(\"../../fonts/fontawesome/fa-solid-900.ttf\") format(\"truetype\"); }\n\n.fas,\n.fa-solid {\n font-weight: 900; }\n","/*!\n * Font Awesome Pro 6.5.2 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license (Commercial License)\n * Copyright 2024 Fonticons, Inc.\n */\n.fa {\n font-family: var(--fa-style-family, \"Font Awesome 6 Pro\");\n font-weight: var(--fa-style, 900); }\n\n.fa,\n.fa-classic,\n.fa-sharp,\n.fas,\n.fa-solid,\n.far,\n.fa-regular,\n.fasr,\n.fal,\n.fa-light,\n.fasl,\n.fat,\n.fa-thin,\n.fast,\n.fad,\n.fa-duotone,\n.fass,\n.fa-sharp-solid,\n.fab,\n.fa-brands {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n display: var(--fa-display, inline-block);\n font-style: normal;\n font-variant: normal;\n line-height: 1;\n text-rendering: auto; }\n\n.fas,\n.fa-classic,\n.fa-solid,\n.far,\n.fa-regular,\n.fal,\n.fa-light,\n.fat,\n.fa-thin {\n font-family: 'Font Awesome 6 Pro'; }\n\n.fab,\n.fa-brands {\n font-family: 'Font Awesome 6 Brands'; }\n\n.fad,\n.fa-classic.fa-duotone,\n.fa-duotone {\n font-family: 'Font Awesome 6 Duotone'; }\n\n.fass,\n.fasr,\n.fasl,\n.fast,\n.fa-sharp {\n font-family: 'Font Awesome 6 Sharp'; }\n\n.fass,\n.fa-sharp {\n font-weight: 900; }\n\n.fa-1x {\n font-size: 1em; }\n\n.fa-2x {\n font-size: 2em; }\n\n.fa-3x {\n font-size: 3em; }\n\n.fa-4x {\n font-size: 4em; }\n\n.fa-5x {\n font-size: 5em; }\n\n.fa-6x {\n font-size: 6em; }\n\n.fa-7x {\n font-size: 7em; }\n\n.fa-8x {\n font-size: 8em; }\n\n.fa-9x {\n font-size: 9em; }\n\n.fa-10x {\n font-size: 10em; }\n\n.fa-2xs {\n font-size: 0.625em;\n line-height: 0.1em;\n vertical-align: 0.225em; }\n\n.fa-xs {\n font-size: 0.75em;\n line-height: 0.08333em;\n vertical-align: 0.125em; }\n\n.fa-sm {\n font-size: 0.875em;\n line-height: 0.07143em;\n vertical-align: 0.05357em; }\n\n.fa-lg {\n font-size: 1.25em;\n line-height: 0.05em;\n vertical-align: -0.075em; }\n\n.fa-xl {\n font-size: 1.5em;\n line-height: 0.04167em;\n vertical-align: -0.125em; }\n\n.fa-2xl {\n font-size: 2em;\n line-height: 0.03125em;\n vertical-align: -0.1875em; }\n\n.fa-fw {\n text-align: center;\n width: 1.25em; }\n\n.fa-ul {\n list-style-type: none;\n margin-left: var(--fa-li-margin, 2.5em);\n padding-left: 0; }\n .fa-ul > li {\n position: relative; }\n\n.fa-li {\n left: calc(var(--fa-li-width, 2em) * -1);\n position: absolute;\n text-align: center;\n width: var(--fa-li-width, 2em);\n line-height: inherit; }\n\n.fa-border {\n border-color: var(--fa-border-color, #eee);\n border-radius: var(--fa-border-radius, 0.1em);\n border-style: var(--fa-border-style, solid);\n border-width: var(--fa-border-width, 0.08em);\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); }\n\n.fa-pull-left {\n float: left;\n margin-right: var(--fa-pull-margin, 0.3em); }\n\n.fa-pull-right {\n float: right;\n margin-left: var(--fa-pull-margin, 0.3em); }\n\n.fa-beat {\n -webkit-animation-name: fa-beat;\n animation-name: fa-beat;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out); }\n\n.fa-bounce {\n -webkit-animation-name: fa-bounce;\n animation-name: fa-bounce;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); }\n\n.fa-fade {\n -webkit-animation-name: fa-fade;\n animation-name: fa-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); }\n\n.fa-beat-fade {\n -webkit-animation-name: fa-beat-fade;\n animation-name: fa-beat-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); }\n\n.fa-flip {\n -webkit-animation-name: fa-flip;\n animation-name: fa-flip;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out); }\n\n.fa-shake {\n -webkit-animation-name: fa-shake;\n animation-name: fa-shake;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear); }\n\n.fa-spin {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 2s);\n animation-duration: var(--fa-animation-duration, 2s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear); }\n\n.fa-spin-reverse {\n --fa-animation-direction: reverse; }\n\n.fa-pulse,\n.fa-spin-pulse {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, steps(8));\n animation-timing-function: var(--fa-animation-timing, steps(8)); }\n\n@media (prefers-reduced-motion: reduce) {\n .fa-beat,\n .fa-bounce,\n .fa-fade,\n .fa-beat-fade,\n .fa-flip,\n .fa-pulse,\n .fa-shake,\n .fa-spin,\n .fa-spin-pulse {\n -webkit-animation-delay: -1ms;\n animation-delay: -1ms;\n -webkit-animation-duration: 1ms;\n animation-duration: 1ms;\n -webkit-animation-iteration-count: 1;\n animation-iteration-count: 1;\n -webkit-transition-delay: 0s;\n transition-delay: 0s;\n -webkit-transition-duration: 0s;\n transition-duration: 0s; } }\n\n@-webkit-keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1); }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25)); } }\n\n@keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1); }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25)); } }\n\n@-webkit-keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); } }\n\n@keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); } }\n\n@-webkit-keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4); } }\n\n@keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4); } }\n\n@-webkit-keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1); }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125)); } }\n\n@keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1); }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125)); } }\n\n@-webkit-keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } }\n\n@keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } }\n\n@-webkit-keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg); }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg); }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg); }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg); }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg); }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg); }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg); }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg); }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); } }\n\n@keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg); }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg); }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg); }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg); }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg); }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg); }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg); }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg); }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); } }\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n.fa-rotate-90 {\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg); }\n\n.fa-rotate-180 {\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg); }\n\n.fa-rotate-270 {\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg); }\n\n.fa-flip-horizontal {\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1); }\n\n.fa-flip-vertical {\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1); }\n\n.fa-flip-both,\n.fa-flip-horizontal.fa-flip-vertical {\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1); }\n\n.fa-rotate-by {\n -webkit-transform: rotate(var(--fa-rotate-angle, 0));\n transform: rotate(var(--fa-rotate-angle, 0)); }\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n line-height: 2em;\n position: relative;\n vertical-align: middle;\n width: 2.5em; }\n\n.fa-stack-1x,\n.fa-stack-2x {\n left: 0;\n position: absolute;\n text-align: center;\n width: 100%;\n z-index: var(--fa-stack-z-index, auto); }\n\n.fa-stack-1x {\n line-height: inherit; }\n\n.fa-stack-2x {\n font-size: 2em; }\n\n.fa-inverse {\n color: var(--fa-inverse, #fff); }\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\nreaders do not read off random characters that represent icons */\n\n.fa-0::before {\n content: \"\\30\"; }\n\n.fa-1::before {\n content: \"\\31\"; }\n\n.fa-2::before {\n content: \"\\32\"; }\n\n.fa-3::before {\n content: \"\\33\"; }\n\n.fa-4::before {\n content: \"\\34\"; }\n\n.fa-5::before {\n content: \"\\35\"; }\n\n.fa-6::before {\n content: \"\\36\"; }\n\n.fa-7::before {\n content: \"\\37\"; }\n\n.fa-8::before {\n content: \"\\38\"; }\n\n.fa-9::before {\n content: \"\\39\"; }\n\n.fa-fill-drip::before {\n content: \"\\f576\"; }\n\n.fa-arrows-to-circle::before {\n content: \"\\e4bd\"; }\n\n.fa-circle-chevron-right::before {\n content: \"\\f138\"; }\n\n.fa-chevron-circle-right::before {\n content: \"\\f138\"; }\n\n.fa-wagon-covered::before {\n content: \"\\f8ee\"; }\n\n.fa-line-height::before {\n content: \"\\f871\"; }\n\n.fa-bagel::before {\n content: \"\\e3d7\"; }\n\n.fa-transporter-7::before {\n content: \"\\e2a8\"; }\n\n.fa-at::before {\n content: \"\\40\"; }\n\n.fa-rectangles-mixed::before {\n content: \"\\e323\"; }\n\n.fa-phone-arrow-up-right::before {\n content: \"\\e224\"; }\n\n.fa-phone-arrow-up::before {\n content: \"\\e224\"; }\n\n.fa-phone-outgoing::before {\n content: \"\\e224\"; }\n\n.fa-trash-can::before {\n content: \"\\f2ed\"; }\n\n.fa-trash-alt::before {\n content: \"\\f2ed\"; }\n\n.fa-circle-l::before {\n content: \"\\e114\"; }\n\n.fa-head-side-goggles::before {\n content: \"\\f6ea\"; }\n\n.fa-head-vr::before {\n content: \"\\f6ea\"; }\n\n.fa-text-height::before {\n content: \"\\f034\"; }\n\n.fa-user-xmark::before {\n content: \"\\f235\"; }\n\n.fa-user-times::before {\n content: \"\\f235\"; }\n\n.fa-face-hand-yawn::before {\n content: \"\\e379\"; }\n\n.fa-gauge-simple-min::before {\n content: \"\\f62d\"; }\n\n.fa-tachometer-slowest::before {\n content: \"\\f62d\"; }\n\n.fa-stethoscope::before {\n content: \"\\f0f1\"; }\n\n.fa-coffin::before {\n content: \"\\f6c6\"; }\n\n.fa-message::before {\n content: \"\\f27a\"; }\n\n.fa-comment-alt::before {\n content: \"\\f27a\"; }\n\n.fa-salad::before {\n content: \"\\f81e\"; }\n\n.fa-bowl-salad::before {\n content: \"\\f81e\"; }\n\n.fa-info::before {\n content: \"\\f129\"; }\n\n.fa-robot-astromech::before {\n content: \"\\e2d2\"; }\n\n.fa-ring-diamond::before {\n content: \"\\e5ab\"; }\n\n.fa-fondue-pot::before {\n content: \"\\e40d\"; }\n\n.fa-theta::before {\n content: \"\\f69e\"; }\n\n.fa-face-hand-peeking::before {\n content: \"\\e481\"; }\n\n.fa-square-user::before {\n content: \"\\e283\"; }\n\n.fa-down-left-and-up-right-to-center::before {\n content: \"\\f422\"; }\n\n.fa-compress-alt::before {\n content: \"\\f422\"; }\n\n.fa-explosion::before {\n content: \"\\e4e9\"; }\n\n.fa-file-lines::before {\n content: \"\\f15c\"; }\n\n.fa-file-alt::before {\n content: \"\\f15c\"; }\n\n.fa-file-text::before {\n content: \"\\f15c\"; }\n\n.fa-wave-square::before {\n content: \"\\f83e\"; }\n\n.fa-ring::before {\n content: \"\\f70b\"; }\n\n.fa-building-un::before {\n content: \"\\e4d9\"; }\n\n.fa-dice-three::before {\n content: \"\\f527\"; }\n\n.fa-tire-pressure-warning::before {\n content: \"\\f633\"; }\n\n.fa-wifi-fair::before {\n content: \"\\f6ab\"; }\n\n.fa-wifi-2::before {\n content: \"\\f6ab\"; }\n\n.fa-calendar-days::before {\n content: \"\\f073\"; }\n\n.fa-calendar-alt::before {\n content: \"\\f073\"; }\n\n.fa-mp3-player::before {\n content: \"\\f8ce\"; }\n\n.fa-anchor-circle-check::before {\n content: \"\\e4aa\"; }\n\n.fa-tally-4::before {\n content: \"\\e297\"; }\n\n.fa-rectangle-history::before {\n content: \"\\e4a2\"; }\n\n.fa-building-circle-arrow-right::before {\n content: \"\\e4d1\"; }\n\n.fa-volleyball::before {\n content: \"\\f45f\"; }\n\n.fa-volleyball-ball::before {\n content: \"\\f45f\"; }\n\n.fa-sun-haze::before {\n content: \"\\f765\"; }\n\n.fa-text-size::before {\n content: \"\\f894\"; }\n\n.fa-ufo::before {\n content: \"\\e047\"; }\n\n.fa-fork::before {\n content: \"\\f2e3\"; }\n\n.fa-utensil-fork::before {\n content: \"\\f2e3\"; }\n\n.fa-arrows-up-to-line::before {\n content: \"\\e4c2\"; }\n\n.fa-mobile-signal::before {\n content: \"\\e1ef\"; }\n\n.fa-barcode-scan::before {\n content: \"\\f465\"; }\n\n.fa-sort-down::before {\n content: \"\\f0dd\"; }\n\n.fa-sort-desc::before {\n content: \"\\f0dd\"; }\n\n.fa-folder-arrow-down::before {\n content: \"\\e053\"; }\n\n.fa-folder-download::before {\n content: \"\\e053\"; }\n\n.fa-circle-minus::before {\n content: \"\\f056\"; }\n\n.fa-minus-circle::before {\n content: \"\\f056\"; }\n\n.fa-face-icicles::before {\n content: \"\\e37c\"; }\n\n.fa-shovel::before {\n content: \"\\f713\"; }\n\n.fa-door-open::before {\n content: \"\\f52b\"; }\n\n.fa-films::before {\n content: \"\\e17a\"; }\n\n.fa-right-from-bracket::before {\n content: \"\\f2f5\"; }\n\n.fa-sign-out-alt::before {\n content: \"\\f2f5\"; }\n\n.fa-face-glasses::before {\n content: \"\\e377\"; }\n\n.fa-nfc::before {\n content: \"\\e1f7\"; }\n\n.fa-atom::before {\n content: \"\\f5d2\"; }\n\n.fa-soap::before {\n content: \"\\e06e\"; }\n\n.fa-icons::before {\n content: \"\\f86d\"; }\n\n.fa-heart-music-camera-bolt::before {\n content: \"\\f86d\"; }\n\n.fa-microphone-lines-slash::before {\n content: \"\\f539\"; }\n\n.fa-microphone-alt-slash::before {\n content: \"\\f539\"; }\n\n.fa-closed-captioning-slash::before {\n content: \"\\e135\"; }\n\n.fa-calculator-simple::before {\n content: \"\\f64c\"; }\n\n.fa-calculator-alt::before {\n content: \"\\f64c\"; }\n\n.fa-bridge-circle-check::before {\n content: \"\\e4c9\"; }\n\n.fa-sliders-up::before {\n content: \"\\f3f1\"; }\n\n.fa-sliders-v::before {\n content: \"\\f3f1\"; }\n\n.fa-location-minus::before {\n content: \"\\f609\"; }\n\n.fa-map-marker-minus::before {\n content: \"\\f609\"; }\n\n.fa-pump-medical::before {\n content: \"\\e06a\"; }\n\n.fa-fingerprint::before {\n content: \"\\f577\"; }\n\n.fa-ski-boot::before {\n content: \"\\e3cc\"; }\n\n.fa-standard-definition::before {\n content: \"\\e28a\"; }\n\n.fa-rectangle-sd::before {\n content: \"\\e28a\"; }\n\n.fa-h1::before {\n content: \"\\f313\"; }\n\n.fa-hand-point-right::before {\n content: \"\\f0a4\"; }\n\n.fa-magnifying-glass-location::before {\n content: \"\\f689\"; }\n\n.fa-search-location::before {\n content: \"\\f689\"; }\n\n.fa-message-bot::before {\n content: \"\\e3b8\"; }\n\n.fa-forward-step::before {\n content: \"\\f051\"; }\n\n.fa-step-forward::before {\n content: \"\\f051\"; }\n\n.fa-face-smile-beam::before {\n content: \"\\f5b8\"; }\n\n.fa-smile-beam::before {\n content: \"\\f5b8\"; }\n\n.fa-light-ceiling::before {\n content: \"\\e016\"; }\n\n.fa-message-exclamation::before {\n content: \"\\f4a5\"; }\n\n.fa-comment-alt-exclamation::before {\n content: \"\\f4a5\"; }\n\n.fa-bowl-scoop::before {\n content: \"\\e3de\"; }\n\n.fa-bowl-shaved-ice::before {\n content: \"\\e3de\"; }\n\n.fa-square-x::before {\n content: \"\\e286\"; }\n\n.fa-building-memo::before {\n content: \"\\e61e\"; }\n\n.fa-utility-pole-double::before {\n content: \"\\e2c4\"; }\n\n.fa-flag-checkered::before {\n content: \"\\f11e\"; }\n\n.fa-chevrons-up::before {\n content: \"\\f325\"; }\n\n.fa-chevron-double-up::before {\n content: \"\\f325\"; }\n\n.fa-football::before {\n content: \"\\f44e\"; }\n\n.fa-football-ball::before {\n content: \"\\f44e\"; }\n\n.fa-user-vneck::before {\n content: \"\\e461\"; }\n\n.fa-school-circle-exclamation::before {\n content: \"\\e56c\"; }\n\n.fa-crop::before {\n content: \"\\f125\"; }\n\n.fa-angles-down::before {\n content: \"\\f103\"; }\n\n.fa-angle-double-down::before {\n content: \"\\f103\"; }\n\n.fa-users-rectangle::before {\n content: \"\\e594\"; }\n\n.fa-people-roof::before {\n content: \"\\e537\"; }\n\n.fa-square-arrow-right::before {\n content: \"\\f33b\"; }\n\n.fa-arrow-square-right::before {\n content: \"\\f33b\"; }\n\n.fa-location-plus::before {\n content: \"\\f60a\"; }\n\n.fa-map-marker-plus::before {\n content: \"\\f60a\"; }\n\n.fa-lightbulb-exclamation-on::before {\n content: \"\\e1ca\"; }\n\n.fa-people-line::before {\n content: \"\\e534\"; }\n\n.fa-beer-mug-empty::before {\n content: \"\\f0fc\"; }\n\n.fa-beer::before {\n content: \"\\f0fc\"; }\n\n.fa-crate-empty::before {\n content: \"\\e151\"; }\n\n.fa-diagram-predecessor::before {\n content: \"\\e477\"; }\n\n.fa-transporter::before {\n content: \"\\e042\"; }\n\n.fa-calendar-circle-user::before {\n content: \"\\e471\"; }\n\n.fa-arrow-up-long::before {\n content: \"\\f176\"; }\n\n.fa-long-arrow-up::before {\n content: \"\\f176\"; }\n\n.fa-person-carry-box::before {\n content: \"\\f4cf\"; }\n\n.fa-person-carry::before {\n content: \"\\f4cf\"; }\n\n.fa-fire-flame-simple::before {\n content: \"\\f46a\"; }\n\n.fa-burn::before {\n content: \"\\f46a\"; }\n\n.fa-person::before {\n content: \"\\f183\"; }\n\n.fa-male::before {\n content: \"\\f183\"; }\n\n.fa-laptop::before {\n content: \"\\f109\"; }\n\n.fa-file-csv::before {\n content: \"\\f6dd\"; }\n\n.fa-menorah::before {\n content: \"\\f676\"; }\n\n.fa-union::before {\n content: \"\\f6a2\"; }\n\n.fa-chevrons-left::before {\n content: \"\\f323\"; }\n\n.fa-chevron-double-left::before {\n content: \"\\f323\"; }\n\n.fa-circle-heart::before {\n content: \"\\f4c7\"; }\n\n.fa-heart-circle::before {\n content: \"\\f4c7\"; }\n\n.fa-truck-plane::before {\n content: \"\\e58f\"; }\n\n.fa-record-vinyl::before {\n content: \"\\f8d9\"; }\n\n.fa-bring-forward::before {\n content: \"\\f856\"; }\n\n.fa-square-p::before {\n content: \"\\e279\"; }\n\n.fa-face-grin-stars::before {\n content: \"\\f587\"; }\n\n.fa-grin-stars::before {\n content: \"\\f587\"; }\n\n.fa-sigma::before {\n content: \"\\f68b\"; }\n\n.fa-camera-movie::before {\n content: \"\\f8a9\"; }\n\n.fa-bong::before {\n content: \"\\f55c\"; }\n\n.fa-clarinet::before {\n content: \"\\f8ad\"; }\n\n.fa-truck-flatbed::before {\n content: \"\\e2b6\"; }\n\n.fa-spaghetti-monster-flying::before {\n content: \"\\f67b\"; }\n\n.fa-pastafarianism::before {\n content: \"\\f67b\"; }\n\n.fa-arrow-down-up-across-line::before {\n content: \"\\e4af\"; }\n\n.fa-arrows-rotate-reverse::before {\n content: \"\\e630\"; }\n\n.fa-leaf-heart::before {\n content: \"\\f4cb\"; }\n\n.fa-house-building::before {\n content: \"\\e1b1\"; }\n\n.fa-cheese-swiss::before {\n content: \"\\f7f0\"; }\n\n.fa-spoon::before {\n content: \"\\f2e5\"; }\n\n.fa-utensil-spoon::before {\n content: \"\\f2e5\"; }\n\n.fa-jar-wheat::before {\n content: \"\\e517\"; }\n\n.fa-envelopes-bulk::before {\n content: \"\\f674\"; }\n\n.fa-mail-bulk::before {\n content: \"\\f674\"; }\n\n.fa-file-circle-exclamation::before {\n content: \"\\e4eb\"; }\n\n.fa-bow-arrow::before {\n content: \"\\f6b9\"; }\n\n.fa-cart-xmark::before {\n content: \"\\e0dd\"; }\n\n.fa-hexagon-xmark::before {\n content: \"\\f2ee\"; }\n\n.fa-times-hexagon::before {\n content: \"\\f2ee\"; }\n\n.fa-xmark-hexagon::before {\n content: \"\\f2ee\"; }\n\n.fa-circle-h::before {\n content: \"\\f47e\"; }\n\n.fa-hospital-symbol::before {\n content: \"\\f47e\"; }\n\n.fa-merge::before {\n content: \"\\e526\"; }\n\n.fa-pager::before {\n content: \"\\f815\"; }\n\n.fa-cart-minus::before {\n content: \"\\e0db\"; }\n\n.fa-address-book::before {\n content: \"\\f2b9\"; }\n\n.fa-contact-book::before {\n content: \"\\f2b9\"; }\n\n.fa-pan-frying::before {\n content: \"\\e42c\"; }\n\n.fa-grid::before {\n content: \"\\e195\"; }\n\n.fa-grid-3::before {\n content: \"\\e195\"; }\n\n.fa-football-helmet::before {\n content: \"\\f44f\"; }\n\n.fa-hand-love::before {\n content: \"\\e1a5\"; }\n\n.fa-trees::before {\n content: \"\\f724\"; }\n\n.fa-strikethrough::before {\n content: \"\\f0cc\"; }\n\n.fa-page::before {\n content: \"\\e428\"; }\n\n.fa-k::before {\n content: \"\\4b\"; }\n\n.fa-diagram-previous::before {\n content: \"\\e478\"; }\n\n.fa-gauge-min::before {\n content: \"\\f628\"; }\n\n.fa-tachometer-alt-slowest::before {\n content: \"\\f628\"; }\n\n.fa-folder-grid::before {\n content: \"\\e188\"; }\n\n.fa-eggplant::before {\n content: \"\\e16c\"; }\n\n.fa-excavator::before {\n content: \"\\e656\"; }\n\n.fa-ram::before {\n content: \"\\f70a\"; }\n\n.fa-landmark-flag::before {\n content: \"\\e51c\"; }\n\n.fa-lips::before {\n content: \"\\f600\"; }\n\n.fa-pencil::before {\n content: \"\\f303\"; }\n\n.fa-pencil-alt::before {\n content: \"\\f303\"; }\n\n.fa-backward::before {\n content: \"\\f04a\"; }\n\n.fa-caret-right::before {\n content: \"\\f0da\"; }\n\n.fa-comments::before {\n content: \"\\f086\"; }\n\n.fa-paste::before {\n content: \"\\f0ea\"; }\n\n.fa-file-clipboard::before {\n content: \"\\f0ea\"; }\n\n.fa-desktop-arrow-down::before {\n content: \"\\e155\"; }\n\n.fa-code-pull-request::before {\n content: \"\\e13c\"; }\n\n.fa-pumpkin::before {\n content: \"\\f707\"; }\n\n.fa-clipboard-list::before {\n content: \"\\f46d\"; }\n\n.fa-pen-field::before {\n content: \"\\e211\"; }\n\n.fa-blueberries::before {\n content: \"\\e2e8\"; }\n\n.fa-truck-ramp-box::before {\n content: \"\\f4de\"; }\n\n.fa-truck-loading::before {\n content: \"\\f4de\"; }\n\n.fa-note::before {\n content: \"\\e1ff\"; }\n\n.fa-arrow-down-to-square::before {\n content: \"\\e096\"; }\n\n.fa-user-check::before {\n content: \"\\f4fc\"; }\n\n.fa-cloud-xmark::before {\n content: \"\\e35f\"; }\n\n.fa-vial-virus::before {\n content: \"\\e597\"; }\n\n.fa-book-blank::before {\n content: \"\\f5d9\"; }\n\n.fa-book-alt::before {\n content: \"\\f5d9\"; }\n\n.fa-golf-flag-hole::before {\n content: \"\\e3ac\"; }\n\n.fa-message-arrow-down::before {\n content: \"\\e1db\"; }\n\n.fa-comment-alt-arrow-down::before {\n content: \"\\e1db\"; }\n\n.fa-face-unamused::before {\n content: \"\\e39f\"; }\n\n.fa-sheet-plastic::before {\n content: \"\\e571\"; }\n\n.fa-circle-9::before {\n content: \"\\e0f6\"; }\n\n.fa-blog::before {\n content: \"\\f781\"; }\n\n.fa-user-ninja::before {\n content: \"\\f504\"; }\n\n.fa-pencil-slash::before {\n content: \"\\e215\"; }\n\n.fa-bowling-pins::before {\n content: \"\\f437\"; }\n\n.fa-person-arrow-up-from-line::before {\n content: \"\\e539\"; }\n\n.fa-down-right::before {\n content: \"\\e16b\"; }\n\n.fa-scroll-torah::before {\n content: \"\\f6a0\"; }\n\n.fa-torah::before {\n content: \"\\f6a0\"; }\n\n.fa-webhook::before {\n content: \"\\e5d5\"; }\n\n.fa-blinds-open::before {\n content: \"\\f8fc\"; }\n\n.fa-fence::before {\n content: \"\\e303\"; }\n\n.fa-up::before {\n content: \"\\f357\"; }\n\n.fa-arrow-alt-up::before {\n content: \"\\f357\"; }\n\n.fa-broom-ball::before {\n content: \"\\f458\"; }\n\n.fa-quidditch::before {\n content: \"\\f458\"; }\n\n.fa-quidditch-broom-ball::before {\n content: \"\\f458\"; }\n\n.fa-drumstick::before {\n content: \"\\f6d6\"; }\n\n.fa-square-v::before {\n content: \"\\e284\"; }\n\n.fa-face-awesome::before {\n content: \"\\e409\"; }\n\n.fa-gave-dandy::before {\n content: \"\\e409\"; }\n\n.fa-dial-off::before {\n content: \"\\e162\"; }\n\n.fa-toggle-off::before {\n content: \"\\f204\"; }\n\n.fa-face-smile-horns::before {\n content: \"\\e391\"; }\n\n.fa-box-archive::before {\n content: \"\\f187\"; }\n\n.fa-archive::before {\n content: \"\\f187\"; }\n\n.fa-grapes::before {\n content: \"\\e306\"; }\n\n.fa-person-drowning::before {\n content: \"\\e545\"; }\n\n.fa-dial-max::before {\n content: \"\\e15e\"; }\n\n.fa-circle-m::before {\n content: \"\\e115\"; }\n\n.fa-calendar-image::before {\n content: \"\\e0d4\"; }\n\n.fa-circle-caret-down::before {\n content: \"\\f32d\"; }\n\n.fa-caret-circle-down::before {\n content: \"\\f32d\"; }\n\n.fa-arrow-down-9-1::before {\n content: \"\\f886\"; }\n\n.fa-sort-numeric-desc::before {\n content: \"\\f886\"; }\n\n.fa-sort-numeric-down-alt::before {\n content: \"\\f886\"; }\n\n.fa-face-grin-tongue-squint::before {\n content: \"\\f58a\"; }\n\n.fa-grin-tongue-squint::before {\n content: \"\\f58a\"; }\n\n.fa-shish-kebab::before {\n content: \"\\f821\"; }\n\n.fa-spray-can::before {\n content: \"\\f5bd\"; }\n\n.fa-alarm-snooze::before {\n content: \"\\f845\"; }\n\n.fa-scarecrow::before {\n content: \"\\f70d\"; }\n\n.fa-truck-monster::before {\n content: \"\\f63b\"; }\n\n.fa-gift-card::before {\n content: \"\\f663\"; }\n\n.fa-w::before {\n content: \"\\57\"; }\n\n.fa-code-pull-request-draft::before {\n content: \"\\e3fa\"; }\n\n.fa-square-b::before {\n content: \"\\e264\"; }\n\n.fa-elephant::before {\n content: \"\\f6da\"; }\n\n.fa-earth-africa::before {\n content: \"\\f57c\"; }\n\n.fa-globe-africa::before {\n content: \"\\f57c\"; }\n\n.fa-rainbow::before {\n content: \"\\f75b\"; }\n\n.fa-circle-notch::before {\n content: \"\\f1ce\"; }\n\n.fa-tablet-screen-button::before {\n content: \"\\f3fa\"; }\n\n.fa-tablet-alt::before {\n content: \"\\f3fa\"; }\n\n.fa-paw::before {\n content: \"\\f1b0\"; }\n\n.fa-message-question::before {\n content: \"\\e1e3\"; }\n\n.fa-cloud::before {\n content: \"\\f0c2\"; }\n\n.fa-trowel-bricks::before {\n content: \"\\e58a\"; }\n\n.fa-square-3::before {\n content: \"\\e258\"; }\n\n.fa-face-flushed::before {\n content: \"\\f579\"; }\n\n.fa-flushed::before {\n content: \"\\f579\"; }\n\n.fa-hospital-user::before {\n content: \"\\f80d\"; }\n\n.fa-microwave::before {\n content: \"\\e01b\"; }\n\n.fa-chf-sign::before {\n content: \"\\e602\"; }\n\n.fa-tent-arrow-left-right::before {\n content: \"\\e57f\"; }\n\n.fa-cart-circle-arrow-up::before {\n content: \"\\e3f0\"; }\n\n.fa-trash-clock::before {\n content: \"\\e2b0\"; }\n\n.fa-reflect-both::before {\n content: \"\\e66f\"; }\n\n.fa-gavel::before {\n content: \"\\f0e3\"; }\n\n.fa-legal::before {\n content: \"\\f0e3\"; }\n\n.fa-sprinkler-ceiling::before {\n content: \"\\e44c\"; }\n\n.fa-browsers::before {\n content: \"\\e0cb\"; }\n\n.fa-trillium::before {\n content: \"\\e588\"; }\n\n.fa-music-slash::before {\n content: \"\\f8d1\"; }\n\n.fa-truck-ramp::before {\n content: \"\\f4e0\"; }\n\n.fa-binoculars::before {\n content: \"\\f1e5\"; }\n\n.fa-microphone-slash::before {\n content: \"\\f131\"; }\n\n.fa-box-tissue::before {\n content: \"\\e05b\"; }\n\n.fa-circle-c::before {\n content: \"\\e101\"; }\n\n.fa-star-christmas::before {\n content: \"\\f7d4\"; }\n\n.fa-chart-bullet::before {\n content: \"\\e0e1\"; }\n\n.fa-motorcycle::before {\n content: \"\\f21c\"; }\n\n.fa-tree-christmas::before {\n content: \"\\f7db\"; }\n\n.fa-tire-flat::before {\n content: \"\\f632\"; }\n\n.fa-sunglasses::before {\n content: \"\\f892\"; }\n\n.fa-badge::before {\n content: \"\\f335\"; }\n\n.fa-message-pen::before {\n content: \"\\f4a4\"; }\n\n.fa-comment-alt-edit::before {\n content: \"\\f4a4\"; }\n\n.fa-message-edit::before {\n content: \"\\f4a4\"; }\n\n.fa-bell-concierge::before {\n content: \"\\f562\"; }\n\n.fa-concierge-bell::before {\n content: \"\\f562\"; }\n\n.fa-pen-ruler::before {\n content: \"\\f5ae\"; }\n\n.fa-pencil-ruler::before {\n content: \"\\f5ae\"; }\n\n.fa-file-mp3::before {\n content: \"\\e648\"; }\n\n.fa-arrow-progress::before {\n content: \"\\e5df\"; }\n\n.fa-chess-rook-piece::before {\n content: \"\\f448\"; }\n\n.fa-chess-rook-alt::before {\n content: \"\\f448\"; }\n\n.fa-square-root::before {\n content: \"\\f697\"; }\n\n.fa-album-collection-circle-plus::before {\n content: \"\\e48e\"; }\n\n.fa-people-arrows::before {\n content: \"\\e068\"; }\n\n.fa-people-arrows-left-right::before {\n content: \"\\e068\"; }\n\n.fa-sign-post::before {\n content: \"\\e624\"; }\n\n.fa-face-angry-horns::before {\n content: \"\\e368\"; }\n\n.fa-mars-and-venus-burst::before {\n content: \"\\e523\"; }\n\n.fa-tombstone::before {\n content: \"\\f720\"; }\n\n.fa-square-caret-right::before {\n content: \"\\f152\"; }\n\n.fa-caret-square-right::before {\n content: \"\\f152\"; }\n\n.fa-scissors::before {\n content: \"\\f0c4\"; }\n\n.fa-cut::before {\n content: \"\\f0c4\"; }\n\n.fa-list-music::before {\n content: \"\\f8c9\"; }\n\n.fa-sun-plant-wilt::before {\n content: \"\\e57a\"; }\n\n.fa-toilets-portable::before {\n content: \"\\e584\"; }\n\n.fa-hockey-puck::before {\n content: \"\\f453\"; }\n\n.fa-mustache::before {\n content: \"\\e5bc\"; }\n\n.fa-hyphen::before {\n content: \"\\2d\"; }\n\n.fa-table::before {\n content: \"\\f0ce\"; }\n\n.fa-user-chef::before {\n content: \"\\e3d2\"; }\n\n.fa-message-image::before {\n content: \"\\e1e0\"; }\n\n.fa-comment-alt-image::before {\n content: \"\\e1e0\"; }\n\n.fa-users-medical::before {\n content: \"\\f830\"; }\n\n.fa-sensor-triangle-exclamation::before {\n content: \"\\e029\"; }\n\n.fa-sensor-alert::before {\n content: \"\\e029\"; }\n\n.fa-magnifying-glass-arrow-right::before {\n content: \"\\e521\"; }\n\n.fa-tachograph-digital::before {\n content: \"\\f566\"; }\n\n.fa-digital-tachograph::before {\n content: \"\\f566\"; }\n\n.fa-face-mask::before {\n content: \"\\e37f\"; }\n\n.fa-pickleball::before {\n content: \"\\e435\"; }\n\n.fa-star-sharp-half::before {\n content: \"\\e28c\"; }\n\n.fa-users-slash::before {\n content: \"\\e073\"; }\n\n.fa-clover::before {\n content: \"\\e139\"; }\n\n.fa-meat::before {\n content: \"\\f814\"; }\n\n.fa-reply::before {\n content: \"\\f3e5\"; }\n\n.fa-mail-reply::before {\n content: \"\\f3e5\"; }\n\n.fa-star-and-crescent::before {\n content: \"\\f699\"; }\n\n.fa-empty-set::before {\n content: \"\\f656\"; }\n\n.fa-house-fire::before {\n content: \"\\e50c\"; }\n\n.fa-square-minus::before {\n content: \"\\f146\"; }\n\n.fa-minus-square::before {\n content: \"\\f146\"; }\n\n.fa-helicopter::before {\n content: \"\\f533\"; }\n\n.fa-bird::before {\n content: \"\\e469\"; }\n\n.fa-compass::before {\n content: \"\\f14e\"; }\n\n.fa-square-caret-down::before {\n content: \"\\f150\"; }\n\n.fa-caret-square-down::before {\n content: \"\\f150\"; }\n\n.fa-heart-half-stroke::before {\n content: \"\\e1ac\"; }\n\n.fa-heart-half-alt::before {\n content: \"\\e1ac\"; }\n\n.fa-file-circle-question::before {\n content: \"\\e4ef\"; }\n\n.fa-truck-utensils::before {\n content: \"\\e628\"; }\n\n.fa-laptop-code::before {\n content: \"\\f5fc\"; }\n\n.fa-joystick::before {\n content: \"\\f8c5\"; }\n\n.fa-grill-fire::before {\n content: \"\\e5a4\"; }\n\n.fa-rectangle-vertical-history::before {\n content: \"\\e237\"; }\n\n.fa-swatchbook::before {\n content: \"\\f5c3\"; }\n\n.fa-prescription-bottle::before {\n content: \"\\f485\"; }\n\n.fa-bars::before {\n content: \"\\f0c9\"; }\n\n.fa-navicon::before {\n content: \"\\f0c9\"; }\n\n.fa-keyboard-left::before {\n content: \"\\e1c3\"; }\n\n.fa-people-group::before {\n content: \"\\e533\"; }\n\n.fa-hourglass-end::before {\n content: \"\\f253\"; }\n\n.fa-hourglass-3::before {\n content: \"\\f253\"; }\n\n.fa-heart-crack::before {\n content: \"\\f7a9\"; }\n\n.fa-heart-broken::before {\n content: \"\\f7a9\"; }\n\n.fa-face-beam-hand-over-mouth::before {\n content: \"\\e47c\"; }\n\n.fa-droplet-percent::before {\n content: \"\\f750\"; }\n\n.fa-humidity::before {\n content: \"\\f750\"; }\n\n.fa-square-up-right::before {\n content: \"\\f360\"; }\n\n.fa-external-link-square-alt::before {\n content: \"\\f360\"; }\n\n.fa-face-kiss-beam::before {\n content: \"\\f597\"; }\n\n.fa-kiss-beam::before {\n content: \"\\f597\"; }\n\n.fa-corn::before {\n content: \"\\f6c7\"; }\n\n.fa-roller-coaster::before {\n content: \"\\e324\"; }\n\n.fa-photo-film-music::before {\n content: \"\\e228\"; }\n\n.fa-radar::before {\n content: \"\\e024\"; }\n\n.fa-sickle::before {\n content: \"\\f822\"; }\n\n.fa-film::before {\n content: \"\\f008\"; }\n\n.fa-coconut::before {\n content: \"\\e2f6\"; }\n\n.fa-ruler-horizontal::before {\n content: \"\\f547\"; }\n\n.fa-shield-cross::before {\n content: \"\\f712\"; }\n\n.fa-cassette-tape::before {\n content: \"\\f8ab\"; }\n\n.fa-square-terminal::before {\n content: \"\\e32a\"; }\n\n.fa-people-robbery::before {\n content: \"\\e536\"; }\n\n.fa-lightbulb::before {\n content: \"\\f0eb\"; }\n\n.fa-caret-left::before {\n content: \"\\f0d9\"; }\n\n.fa-comment-middle::before {\n content: \"\\e149\"; }\n\n.fa-trash-can-list::before {\n content: \"\\e2ab\"; }\n\n.fa-block::before {\n content: \"\\e46a\"; }\n\n.fa-circle-exclamation::before {\n content: \"\\f06a\"; }\n\n.fa-exclamation-circle::before {\n content: \"\\f06a\"; }\n\n.fa-school-circle-xmark::before {\n content: \"\\e56d\"; }\n\n.fa-arrow-right-from-bracket::before {\n content: \"\\f08b\"; }\n\n.fa-sign-out::before {\n content: \"\\f08b\"; }\n\n.fa-face-frown-slight::before {\n content: \"\\e376\"; }\n\n.fa-circle-chevron-down::before {\n content: \"\\f13a\"; }\n\n.fa-chevron-circle-down::before {\n content: \"\\f13a\"; }\n\n.fa-sidebar-flip::before {\n content: \"\\e24f\"; }\n\n.fa-unlock-keyhole::before {\n content: \"\\f13e\"; }\n\n.fa-unlock-alt::before {\n content: \"\\f13e\"; }\n\n.fa-temperature-list::before {\n content: \"\\e299\"; }\n\n.fa-cloud-showers-heavy::before {\n content: \"\\f740\"; }\n\n.fa-headphones-simple::before {\n content: \"\\f58f\"; }\n\n.fa-headphones-alt::before {\n content: \"\\f58f\"; }\n\n.fa-sitemap::before {\n content: \"\\f0e8\"; }\n\n.fa-pipe-section::before {\n content: \"\\e438\"; }\n\n.fa-space-station-moon-construction::before {\n content: \"\\e034\"; }\n\n.fa-space-station-moon-alt::before {\n content: \"\\e034\"; }\n\n.fa-circle-dollar-to-slot::before {\n content: \"\\f4b9\"; }\n\n.fa-donate::before {\n content: \"\\f4b9\"; }\n\n.fa-memory::before {\n content: \"\\f538\"; }\n\n.fa-face-sleeping::before {\n content: \"\\e38d\"; }\n\n.fa-road-spikes::before {\n content: \"\\e568\"; }\n\n.fa-fire-burner::before {\n content: \"\\e4f1\"; }\n\n.fa-squirrel::before {\n content: \"\\f71a\"; }\n\n.fa-arrow-up-to-line::before {\n content: \"\\f341\"; }\n\n.fa-arrow-to-top::before {\n content: \"\\f341\"; }\n\n.fa-flag::before {\n content: \"\\f024\"; }\n\n.fa-face-cowboy-hat::before {\n content: \"\\e36e\"; }\n\n.fa-hanukiah::before {\n content: \"\\f6e6\"; }\n\n.fa-chart-scatter-3d::before {\n content: \"\\e0e8\"; }\n\n.fa-display-chart-up::before {\n content: \"\\e5e3\"; }\n\n.fa-square-code::before {\n content: \"\\e267\"; }\n\n.fa-feather::before {\n content: \"\\f52d\"; }\n\n.fa-volume-low::before {\n content: \"\\f027\"; }\n\n.fa-volume-down::before {\n content: \"\\f027\"; }\n\n.fa-xmark-to-slot::before {\n content: \"\\f771\"; }\n\n.fa-times-to-slot::before {\n content: \"\\f771\"; }\n\n.fa-vote-nay::before {\n content: \"\\f771\"; }\n\n.fa-box-taped::before {\n content: \"\\f49a\"; }\n\n.fa-box-alt::before {\n content: \"\\f49a\"; }\n\n.fa-comment-slash::before {\n content: \"\\f4b3\"; }\n\n.fa-swords::before {\n content: \"\\f71d\"; }\n\n.fa-cloud-sun-rain::before {\n content: \"\\f743\"; }\n\n.fa-album::before {\n content: \"\\f89f\"; }\n\n.fa-circle-n::before {\n content: \"\\e118\"; }\n\n.fa-compress::before {\n content: \"\\f066\"; }\n\n.fa-wheat-awn::before {\n content: \"\\e2cd\"; }\n\n.fa-wheat-alt::before {\n content: \"\\e2cd\"; }\n\n.fa-ankh::before {\n content: \"\\f644\"; }\n\n.fa-hands-holding-child::before {\n content: \"\\e4fa\"; }\n\n.fa-asterisk::before {\n content: \"\\2a\"; }\n\n.fa-key-skeleton-left-right::before {\n content: \"\\e3b4\"; }\n\n.fa-comment-lines::before {\n content: \"\\f4b0\"; }\n\n.fa-luchador-mask::before {\n content: \"\\f455\"; }\n\n.fa-luchador::before {\n content: \"\\f455\"; }\n\n.fa-mask-luchador::before {\n content: \"\\f455\"; }\n\n.fa-square-check::before {\n content: \"\\f14a\"; }\n\n.fa-check-square::before {\n content: \"\\f14a\"; }\n\n.fa-shredder::before {\n content: \"\\f68a\"; }\n\n.fa-book-open-cover::before {\n content: \"\\e0c0\"; }\n\n.fa-book-open-alt::before {\n content: \"\\e0c0\"; }\n\n.fa-sandwich::before {\n content: \"\\f81f\"; }\n\n.fa-peseta-sign::before {\n content: \"\\e221\"; }\n\n.fa-square-parking-slash::before {\n content: \"\\f617\"; }\n\n.fa-parking-slash::before {\n content: \"\\f617\"; }\n\n.fa-train-tunnel::before {\n content: \"\\e454\"; }\n\n.fa-heading::before {\n content: \"\\f1dc\"; }\n\n.fa-header::before {\n content: \"\\f1dc\"; }\n\n.fa-ghost::before {\n content: \"\\f6e2\"; }\n\n.fa-face-anguished::before {\n content: \"\\e369\"; }\n\n.fa-hockey-sticks::before {\n content: \"\\f454\"; }\n\n.fa-abacus::before {\n content: \"\\f640\"; }\n\n.fa-film-simple::before {\n content: \"\\f3a0\"; }\n\n.fa-film-alt::before {\n content: \"\\f3a0\"; }\n\n.fa-list::before {\n content: \"\\f03a\"; }\n\n.fa-list-squares::before {\n content: \"\\f03a\"; }\n\n.fa-tree-palm::before {\n content: \"\\f82b\"; }\n\n.fa-square-phone-flip::before {\n content: \"\\f87b\"; }\n\n.fa-phone-square-alt::before {\n content: \"\\f87b\"; }\n\n.fa-cart-plus::before {\n content: \"\\f217\"; }\n\n.fa-gamepad::before {\n content: \"\\f11b\"; }\n\n.fa-border-center-v::before {\n content: \"\\f89d\"; }\n\n.fa-circle-dot::before {\n content: \"\\f192\"; }\n\n.fa-dot-circle::before {\n content: \"\\f192\"; }\n\n.fa-clipboard-medical::before {\n content: \"\\e133\"; }\n\n.fa-face-dizzy::before {\n content: \"\\f567\"; }\n\n.fa-dizzy::before {\n content: \"\\f567\"; }\n\n.fa-egg::before {\n content: \"\\f7fb\"; }\n\n.fa-up-to-line::before {\n content: \"\\f34d\"; }\n\n.fa-arrow-alt-to-top::before {\n content: \"\\f34d\"; }\n\n.fa-house-medical-circle-xmark::before {\n content: \"\\e513\"; }\n\n.fa-watch-fitness::before {\n content: \"\\f63e\"; }\n\n.fa-clock-nine-thirty::before {\n content: \"\\e34d\"; }\n\n.fa-campground::before {\n content: \"\\f6bb\"; }\n\n.fa-folder-plus::before {\n content: \"\\f65e\"; }\n\n.fa-jug::before {\n content: \"\\f8c6\"; }\n\n.fa-futbol::before {\n content: \"\\f1e3\"; }\n\n.fa-futbol-ball::before {\n content: \"\\f1e3\"; }\n\n.fa-soccer-ball::before {\n content: \"\\f1e3\"; }\n\n.fa-snow-blowing::before {\n content: \"\\f761\"; }\n\n.fa-paintbrush::before {\n content: \"\\f1fc\"; }\n\n.fa-paint-brush::before {\n content: \"\\f1fc\"; }\n\n.fa-lock::before {\n content: \"\\f023\"; }\n\n.fa-arrow-down-from-line::before {\n content: \"\\f345\"; }\n\n.fa-arrow-from-top::before {\n content: \"\\f345\"; }\n\n.fa-gas-pump::before {\n content: \"\\f52f\"; }\n\n.fa-signal-bars-slash::before {\n content: \"\\f694\"; }\n\n.fa-signal-alt-slash::before {\n content: \"\\f694\"; }\n\n.fa-monkey::before {\n content: \"\\f6fb\"; }\n\n.fa-rectangle-pro::before {\n content: \"\\e235\"; }\n\n.fa-pro::before {\n content: \"\\e235\"; }\n\n.fa-house-night::before {\n content: \"\\e010\"; }\n\n.fa-hot-tub-person::before {\n content: \"\\f593\"; }\n\n.fa-hot-tub::before {\n content: \"\\f593\"; }\n\n.fa-globe-pointer::before {\n content: \"\\e60e\"; }\n\n.fa-blanket::before {\n content: \"\\f498\"; }\n\n.fa-map-location::before {\n content: \"\\f59f\"; }\n\n.fa-map-marked::before {\n content: \"\\f59f\"; }\n\n.fa-house-flood-water::before {\n content: \"\\e50e\"; }\n\n.fa-comments-question-check::before {\n content: \"\\e14f\"; }\n\n.fa-tree::before {\n content: \"\\f1bb\"; }\n\n.fa-arrows-cross::before {\n content: \"\\e0a2\"; }\n\n.fa-backpack::before {\n content: \"\\f5d4\"; }\n\n.fa-square-small::before {\n content: \"\\e27e\"; }\n\n.fa-folder-arrow-up::before {\n content: \"\\e054\"; }\n\n.fa-folder-upload::before {\n content: \"\\e054\"; }\n\n.fa-bridge-lock::before {\n content: \"\\e4cc\"; }\n\n.fa-crosshairs-simple::before {\n content: \"\\e59f\"; }\n\n.fa-sack-dollar::before {\n content: \"\\f81d\"; }\n\n.fa-pen-to-square::before {\n content: \"\\f044\"; }\n\n.fa-edit::before {\n content: \"\\f044\"; }\n\n.fa-square-sliders::before {\n content: \"\\f3f0\"; }\n\n.fa-sliders-h-square::before {\n content: \"\\f3f0\"; }\n\n.fa-car-side::before {\n content: \"\\f5e4\"; }\n\n.fa-message-middle-top::before {\n content: \"\\e1e2\"; }\n\n.fa-comment-middle-top-alt::before {\n content: \"\\e1e2\"; }\n\n.fa-lightbulb-on::before {\n content: \"\\f672\"; }\n\n.fa-knife::before {\n content: \"\\f2e4\"; }\n\n.fa-utensil-knife::before {\n content: \"\\f2e4\"; }\n\n.fa-share-nodes::before {\n content: \"\\f1e0\"; }\n\n.fa-share-alt::before {\n content: \"\\f1e0\"; }\n\n.fa-display-chart-up-circle-dollar::before {\n content: \"\\e5e6\"; }\n\n.fa-wave-sine::before {\n content: \"\\f899\"; }\n\n.fa-heart-circle-minus::before {\n content: \"\\e4ff\"; }\n\n.fa-circle-w::before {\n content: \"\\e12c\"; }\n\n.fa-circle-calendar::before {\n content: \"\\e102\"; }\n\n.fa-calendar-circle::before {\n content: \"\\e102\"; }\n\n.fa-hourglass-half::before {\n content: \"\\f252\"; }\n\n.fa-hourglass-2::before {\n content: \"\\f252\"; }\n\n.fa-microscope::before {\n content: \"\\f610\"; }\n\n.fa-sunset::before {\n content: \"\\f767\"; }\n\n.fa-sink::before {\n content: \"\\e06d\"; }\n\n.fa-calendar-exclamation::before {\n content: \"\\f334\"; }\n\n.fa-truck-container-empty::before {\n content: \"\\e2b5\"; }\n\n.fa-hand-heart::before {\n content: \"\\f4bc\"; }\n\n.fa-bag-shopping::before {\n content: \"\\f290\"; }\n\n.fa-shopping-bag::before {\n content: \"\\f290\"; }\n\n.fa-arrow-down-z-a::before {\n content: \"\\f881\"; }\n\n.fa-sort-alpha-desc::before {\n content: \"\\f881\"; }\n\n.fa-sort-alpha-down-alt::before {\n content: \"\\f881\"; }\n\n.fa-mitten::before {\n content: \"\\f7b5\"; }\n\n.fa-reply-clock::before {\n content: \"\\e239\"; }\n\n.fa-reply-time::before {\n content: \"\\e239\"; }\n\n.fa-person-rays::before {\n content: \"\\e54d\"; }\n\n.fa-right::before {\n content: \"\\f356\"; }\n\n.fa-arrow-alt-right::before {\n content: \"\\f356\"; }\n\n.fa-circle-f::before {\n content: \"\\e10e\"; }\n\n.fa-users::before {\n content: \"\\f0c0\"; }\n\n.fa-face-pleading::before {\n content: \"\\e386\"; }\n\n.fa-eye-slash::before {\n content: \"\\f070\"; }\n\n.fa-flask-vial::before {\n content: \"\\e4f3\"; }\n\n.fa-police-box::before {\n content: \"\\e021\"; }\n\n.fa-cucumber::before {\n content: \"\\e401\"; }\n\n.fa-head-side-brain::before {\n content: \"\\f808\"; }\n\n.fa-hand::before {\n content: \"\\f256\"; }\n\n.fa-hand-paper::before {\n content: \"\\f256\"; }\n\n.fa-person-biking-mountain::before {\n content: \"\\f84b\"; }\n\n.fa-biking-mountain::before {\n content: \"\\f84b\"; }\n\n.fa-utensils-slash::before {\n content: \"\\e464\"; }\n\n.fa-print-magnifying-glass::before {\n content: \"\\f81a\"; }\n\n.fa-print-search::before {\n content: \"\\f81a\"; }\n\n.fa-turn-right::before {\n content: \"\\e639\"; }\n\n.fa-folder-bookmark::before {\n content: \"\\e186\"; }\n\n.fa-arrow-turn-left-down::before {\n content: \"\\e633\"; }\n\n.fa-om::before {\n content: \"\\f679\"; }\n\n.fa-pi::before {\n content: \"\\f67e\"; }\n\n.fa-flask-round-potion::before {\n content: \"\\f6e1\"; }\n\n.fa-flask-potion::before {\n content: \"\\f6e1\"; }\n\n.fa-face-shush::before {\n content: \"\\e38c\"; }\n\n.fa-worm::before {\n content: \"\\e599\"; }\n\n.fa-house-circle-xmark::before {\n content: \"\\e50b\"; }\n\n.fa-plug::before {\n content: \"\\f1e6\"; }\n\n.fa-calendar-circle-exclamation::before {\n content: \"\\e46e\"; }\n\n.fa-square-i::before {\n content: \"\\e272\"; }\n\n.fa-chevron-up::before {\n content: \"\\f077\"; }\n\n.fa-face-saluting::before {\n content: \"\\e484\"; }\n\n.fa-gauge-simple-low::before {\n content: \"\\f62c\"; }\n\n.fa-tachometer-slow::before {\n content: \"\\f62c\"; }\n\n.fa-face-persevering::before {\n content: \"\\e385\"; }\n\n.fa-circle-camera::before {\n content: \"\\e103\"; }\n\n.fa-camera-circle::before {\n content: \"\\e103\"; }\n\n.fa-hand-spock::before {\n content: \"\\f259\"; }\n\n.fa-spider-web::before {\n content: \"\\f719\"; }\n\n.fa-circle-microphone::before {\n content: \"\\e116\"; }\n\n.fa-microphone-circle::before {\n content: \"\\e116\"; }\n\n.fa-book-arrow-up::before {\n content: \"\\e0ba\"; }\n\n.fa-popsicle::before {\n content: \"\\e43e\"; }\n\n.fa-command::before {\n content: \"\\e142\"; }\n\n.fa-blinds::before {\n content: \"\\f8fb\"; }\n\n.fa-stopwatch::before {\n content: \"\\f2f2\"; }\n\n.fa-saxophone::before {\n content: \"\\f8dc\"; }\n\n.fa-square-2::before {\n content: \"\\e257\"; }\n\n.fa-field-hockey-stick-ball::before {\n content: \"\\f44c\"; }\n\n.fa-field-hockey::before {\n content: \"\\f44c\"; }\n\n.fa-arrow-up-square-triangle::before {\n content: \"\\f88b\"; }\n\n.fa-sort-shapes-up-alt::before {\n content: \"\\f88b\"; }\n\n.fa-face-scream::before {\n content: \"\\e38b\"; }\n\n.fa-square-m::before {\n content: \"\\e276\"; }\n\n.fa-camera-web::before {\n content: \"\\f832\"; }\n\n.fa-webcam::before {\n content: \"\\f832\"; }\n\n.fa-comment-arrow-down::before {\n content: \"\\e143\"; }\n\n.fa-lightbulb-cfl::before {\n content: \"\\e5a6\"; }\n\n.fa-window-frame-open::before {\n content: \"\\e050\"; }\n\n.fa-face-kiss::before {\n content: \"\\f596\"; }\n\n.fa-kiss::before {\n content: \"\\f596\"; }\n\n.fa-bridge-circle-xmark::before {\n content: \"\\e4cb\"; }\n\n.fa-period::before {\n content: \"\\2e\"; }\n\n.fa-face-grin-tongue::before {\n content: \"\\f589\"; }\n\n.fa-grin-tongue::before {\n content: \"\\f589\"; }\n\n.fa-up-to-dotted-line::before {\n content: \"\\e457\"; }\n\n.fa-thought-bubble::before {\n content: \"\\e32e\"; }\n\n.fa-skeleton-ribs::before {\n content: \"\\e5cb\"; }\n\n.fa-raygun::before {\n content: \"\\e025\"; }\n\n.fa-flute::before {\n content: \"\\f8b9\"; }\n\n.fa-acorn::before {\n content: \"\\f6ae\"; }\n\n.fa-video-arrow-up-right::before {\n content: \"\\e2c9\"; }\n\n.fa-grate-droplet::before {\n content: \"\\e194\"; }\n\n.fa-seal-exclamation::before {\n content: \"\\e242\"; }\n\n.fa-chess-bishop::before {\n content: \"\\f43a\"; }\n\n.fa-message-sms::before {\n content: \"\\e1e5\"; }\n\n.fa-coffee-beans::before {\n content: \"\\e13f\"; }\n\n.fa-hat-witch::before {\n content: \"\\f6e7\"; }\n\n.fa-face-grin-wink::before {\n content: \"\\f58c\"; }\n\n.fa-grin-wink::before {\n content: \"\\f58c\"; }\n\n.fa-clock-three-thirty::before {\n content: \"\\e357\"; }\n\n.fa-ear-deaf::before {\n content: \"\\f2a4\"; }\n\n.fa-deaf::before {\n content: \"\\f2a4\"; }\n\n.fa-deafness::before {\n content: \"\\f2a4\"; }\n\n.fa-hard-of-hearing::before {\n content: \"\\f2a4\"; }\n\n.fa-alarm-clock::before {\n content: \"\\f34e\"; }\n\n.fa-eclipse::before {\n content: \"\\f749\"; }\n\n.fa-face-relieved::before {\n content: \"\\e389\"; }\n\n.fa-road-circle-check::before {\n content: \"\\e564\"; }\n\n.fa-dice-five::before {\n content: \"\\f523\"; }\n\n.fa-octagon-minus::before {\n content: \"\\f308\"; }\n\n.fa-minus-octagon::before {\n content: \"\\f308\"; }\n\n.fa-square-rss::before {\n content: \"\\f143\"; }\n\n.fa-rss-square::before {\n content: \"\\f143\"; }\n\n.fa-face-zany::before {\n content: \"\\e3a4\"; }\n\n.fa-tricycle::before {\n content: \"\\e5c3\"; }\n\n.fa-land-mine-on::before {\n content: \"\\e51b\"; }\n\n.fa-square-arrow-up-left::before {\n content: \"\\e263\"; }\n\n.fa-i-cursor::before {\n content: \"\\f246\"; }\n\n.fa-chart-mixed-up-circle-dollar::before {\n content: \"\\e5d9\"; }\n\n.fa-salt-shaker::before {\n content: \"\\e446\"; }\n\n.fa-stamp::before {\n content: \"\\f5bf\"; }\n\n.fa-file-plus::before {\n content: \"\\f319\"; }\n\n.fa-draw-square::before {\n content: \"\\f5ef\"; }\n\n.fa-toilet-paper-under-slash::before {\n content: \"\\e2a1\"; }\n\n.fa-toilet-paper-reverse-slash::before {\n content: \"\\e2a1\"; }\n\n.fa-stairs::before {\n content: \"\\e289\"; }\n\n.fa-drone-front::before {\n content: \"\\f860\"; }\n\n.fa-drone-alt::before {\n content: \"\\f860\"; }\n\n.fa-glass-empty::before {\n content: \"\\e191\"; }\n\n.fa-dial-high::before {\n content: \"\\e15c\"; }\n\n.fa-user-helmet-safety::before {\n content: \"\\f82c\"; }\n\n.fa-user-construction::before {\n content: \"\\f82c\"; }\n\n.fa-user-hard-hat::before {\n content: \"\\f82c\"; }\n\n.fa-i::before {\n content: \"\\49\"; }\n\n.fa-hryvnia-sign::before {\n content: \"\\f6f2\"; }\n\n.fa-hryvnia::before {\n content: \"\\f6f2\"; }\n\n.fa-arrow-down-left-and-arrow-up-right-to-center::before {\n content: \"\\e092\"; }\n\n.fa-pills::before {\n content: \"\\f484\"; }\n\n.fa-face-grin-wide::before {\n content: \"\\f581\"; }\n\n.fa-grin-alt::before {\n content: \"\\f581\"; }\n\n.fa-tooth::before {\n content: \"\\f5c9\"; }\n\n.fa-basketball-hoop::before {\n content: \"\\f435\"; }\n\n.fa-objects-align-bottom::before {\n content: \"\\e3bb\"; }\n\n.fa-v::before {\n content: \"\\56\"; }\n\n.fa-sparkles::before {\n content: \"\\f890\"; }\n\n.fa-squid::before {\n content: \"\\e450\"; }\n\n.fa-leafy-green::before {\n content: \"\\e41d\"; }\n\n.fa-circle-arrow-up-right::before {\n content: \"\\e0fc\"; }\n\n.fa-calendars::before {\n content: \"\\e0d7\"; }\n\n.fa-bangladeshi-taka-sign::before {\n content: \"\\e2e6\"; }\n\n.fa-bicycle::before {\n content: \"\\f206\"; }\n\n.fa-hammer-war::before {\n content: \"\\f6e4\"; }\n\n.fa-circle-d::before {\n content: \"\\e104\"; }\n\n.fa-spider-black-widow::before {\n content: \"\\f718\"; }\n\n.fa-staff-snake::before {\n content: \"\\e579\"; }\n\n.fa-rod-asclepius::before {\n content: \"\\e579\"; }\n\n.fa-rod-snake::before {\n content: \"\\e579\"; }\n\n.fa-staff-aesculapius::before {\n content: \"\\e579\"; }\n\n.fa-pear::before {\n content: \"\\e20c\"; }\n\n.fa-head-side-cough-slash::before {\n content: \"\\e062\"; }\n\n.fa-file-mov::before {\n content: \"\\e647\"; }\n\n.fa-triangle::before {\n content: \"\\f2ec\"; }\n\n.fa-apartment::before {\n content: \"\\e468\"; }\n\n.fa-truck-medical::before {\n content: \"\\f0f9\"; }\n\n.fa-ambulance::before {\n content: \"\\f0f9\"; }\n\n.fa-pepper::before {\n content: \"\\e432\"; }\n\n.fa-piano::before {\n content: \"\\f8d4\"; }\n\n.fa-gun-squirt::before {\n content: \"\\e19d\"; }\n\n.fa-wheat-awn-circle-exclamation::before {\n content: \"\\e598\"; }\n\n.fa-snowman::before {\n content: \"\\f7d0\"; }\n\n.fa-user-alien::before {\n content: \"\\e04a\"; }\n\n.fa-shield-check::before {\n content: \"\\f2f7\"; }\n\n.fa-mortar-pestle::before {\n content: \"\\f5a7\"; }\n\n.fa-road-barrier::before {\n content: \"\\e562\"; }\n\n.fa-chart-candlestick::before {\n content: \"\\e0e2\"; }\n\n.fa-briefcase-blank::before {\n content: \"\\e0c8\"; }\n\n.fa-school::before {\n content: \"\\f549\"; }\n\n.fa-igloo::before {\n content: \"\\f7ae\"; }\n\n.fa-bracket-round::before {\n content: \"\\28\"; }\n\n.fa-parenthesis::before {\n content: \"\\28\"; }\n\n.fa-joint::before {\n content: \"\\f595\"; }\n\n.fa-horse-saddle::before {\n content: \"\\f8c3\"; }\n\n.fa-mug-marshmallows::before {\n content: \"\\f7b7\"; }\n\n.fa-filters::before {\n content: \"\\e17e\"; }\n\n.fa-bell-on::before {\n content: \"\\f8fa\"; }\n\n.fa-angle-right::before {\n content: \"\\f105\"; }\n\n.fa-dial-med::before {\n content: \"\\e15f\"; }\n\n.fa-horse::before {\n content: \"\\f6f0\"; }\n\n.fa-q::before {\n content: \"\\51\"; }\n\n.fa-monitor-waveform::before {\n content: \"\\f611\"; }\n\n.fa-monitor-heart-rate::before {\n content: \"\\f611\"; }\n\n.fa-link-simple::before {\n content: \"\\e1cd\"; }\n\n.fa-whistle::before {\n content: \"\\f460\"; }\n\n.fa-g::before {\n content: \"\\47\"; }\n\n.fa-wine-glass-crack::before {\n content: \"\\f4bb\"; }\n\n.fa-fragile::before {\n content: \"\\f4bb\"; }\n\n.fa-slot-machine::before {\n content: \"\\e3ce\"; }\n\n.fa-notes-medical::before {\n content: \"\\f481\"; }\n\n.fa-car-wash::before {\n content: \"\\f5e6\"; }\n\n.fa-escalator::before {\n content: \"\\e171\"; }\n\n.fa-comment-image::before {\n content: \"\\e148\"; }\n\n.fa-temperature-half::before {\n content: \"\\f2c9\"; }\n\n.fa-temperature-2::before {\n content: \"\\f2c9\"; }\n\n.fa-thermometer-2::before {\n content: \"\\f2c9\"; }\n\n.fa-thermometer-half::before {\n content: \"\\f2c9\"; }\n\n.fa-dong-sign::before {\n content: \"\\e169\"; }\n\n.fa-donut::before {\n content: \"\\e406\"; }\n\n.fa-doughnut::before {\n content: \"\\e406\"; }\n\n.fa-capsules::before {\n content: \"\\f46b\"; }\n\n.fa-poo-storm::before {\n content: \"\\f75a\"; }\n\n.fa-poo-bolt::before {\n content: \"\\f75a\"; }\n\n.fa-tally-1::before {\n content: \"\\e294\"; }\n\n.fa-file-vector::before {\n content: \"\\e64c\"; }\n\n.fa-face-frown-open::before {\n content: \"\\f57a\"; }\n\n.fa-frown-open::before {\n content: \"\\f57a\"; }\n\n.fa-square-dashed::before {\n content: \"\\e269\"; }\n\n.fa-bag-shopping-plus::before {\n content: \"\\e651\"; }\n\n.fa-square-j::before {\n content: \"\\e273\"; }\n\n.fa-hand-point-up::before {\n content: \"\\f0a6\"; }\n\n.fa-money-bill::before {\n content: \"\\f0d6\"; }\n\n.fa-arrow-up-big-small::before {\n content: \"\\f88e\"; }\n\n.fa-sort-size-up::before {\n content: \"\\f88e\"; }\n\n.fa-barcode-read::before {\n content: \"\\f464\"; }\n\n.fa-baguette::before {\n content: \"\\e3d8\"; }\n\n.fa-bowl-soft-serve::before {\n content: \"\\e46b\"; }\n\n.fa-face-holding-back-tears::before {\n content: \"\\e482\"; }\n\n.fa-square-up::before {\n content: \"\\f353\"; }\n\n.fa-arrow-alt-square-up::before {\n content: \"\\f353\"; }\n\n.fa-train-subway-tunnel::before {\n content: \"\\e2a3\"; }\n\n.fa-subway-tunnel::before {\n content: \"\\e2a3\"; }\n\n.fa-square-exclamation::before {\n content: \"\\f321\"; }\n\n.fa-exclamation-square::before {\n content: \"\\f321\"; }\n\n.fa-semicolon::before {\n content: \"\\3b\"; }\n\n.fa-bookmark::before {\n content: \"\\f02e\"; }\n\n.fa-fan-table::before {\n content: \"\\e004\"; }\n\n.fa-align-justify::before {\n content: \"\\f039\"; }\n\n.fa-battery-low::before {\n content: \"\\e0b1\"; }\n\n.fa-battery-1::before {\n content: \"\\e0b1\"; }\n\n.fa-credit-card-front::before {\n content: \"\\f38a\"; }\n\n.fa-brain-arrow-curved-right::before {\n content: \"\\f677\"; }\n\n.fa-mind-share::before {\n content: \"\\f677\"; }\n\n.fa-umbrella-beach::before {\n content: \"\\f5ca\"; }\n\n.fa-helmet-un::before {\n content: \"\\e503\"; }\n\n.fa-location-smile::before {\n content: \"\\f60d\"; }\n\n.fa-map-marker-smile::before {\n content: \"\\f60d\"; }\n\n.fa-arrow-left-to-line::before {\n content: \"\\f33e\"; }\n\n.fa-arrow-to-left::before {\n content: \"\\f33e\"; }\n\n.fa-bullseye::before {\n content: \"\\f140\"; }\n\n.fa-sushi::before {\n content: \"\\e48a\"; }\n\n.fa-nigiri::before {\n content: \"\\e48a\"; }\n\n.fa-message-captions::before {\n content: \"\\e1de\"; }\n\n.fa-comment-alt-captions::before {\n content: \"\\e1de\"; }\n\n.fa-trash-list::before {\n content: \"\\e2b1\"; }\n\n.fa-bacon::before {\n content: \"\\f7e5\"; }\n\n.fa-option::before {\n content: \"\\e318\"; }\n\n.fa-raccoon::before {\n content: \"\\e613\"; }\n\n.fa-hand-point-down::before {\n content: \"\\f0a7\"; }\n\n.fa-arrow-up-from-bracket::before {\n content: \"\\e09a\"; }\n\n.fa-head-side-gear::before {\n content: \"\\e611\"; }\n\n.fa-trash-plus::before {\n content: \"\\e2b2\"; }\n\n.fa-file-cad::before {\n content: \"\\e672\"; }\n\n.fa-objects-align-top::before {\n content: \"\\e3c0\"; }\n\n.fa-folder::before {\n content: \"\\f07b\"; }\n\n.fa-folder-blank::before {\n content: \"\\f07b\"; }\n\n.fa-face-anxious-sweat::before {\n content: \"\\e36a\"; }\n\n.fa-credit-card-blank::before {\n content: \"\\f389\"; }\n\n.fa-file-waveform::before {\n content: \"\\f478\"; }\n\n.fa-file-medical-alt::before {\n content: \"\\f478\"; }\n\n.fa-microchip-ai::before {\n content: \"\\e1ec\"; }\n\n.fa-mug::before {\n content: \"\\f874\"; }\n\n.fa-plane-up-slash::before {\n content: \"\\e22e\"; }\n\n.fa-radiation::before {\n content: \"\\f7b9\"; }\n\n.fa-pen-circle::before {\n content: \"\\e20e\"; }\n\n.fa-bag-seedling::before {\n content: \"\\e5f2\"; }\n\n.fa-chart-simple::before {\n content: \"\\e473\"; }\n\n.fa-crutches::before {\n content: \"\\f7f8\"; }\n\n.fa-circle-parking::before {\n content: \"\\f615\"; }\n\n.fa-parking-circle::before {\n content: \"\\f615\"; }\n\n.fa-mars-stroke::before {\n content: \"\\f229\"; }\n\n.fa-leaf-oak::before {\n content: \"\\f6f7\"; }\n\n.fa-square-bolt::before {\n content: \"\\e265\"; }\n\n.fa-vial::before {\n content: \"\\f492\"; }\n\n.fa-gauge::before {\n content: \"\\f624\"; }\n\n.fa-dashboard::before {\n content: \"\\f624\"; }\n\n.fa-gauge-med::before {\n content: \"\\f624\"; }\n\n.fa-tachometer-alt-average::before {\n content: \"\\f624\"; }\n\n.fa-wand-magic-sparkles::before {\n content: \"\\e2ca\"; }\n\n.fa-magic-wand-sparkles::before {\n content: \"\\e2ca\"; }\n\n.fa-lambda::before {\n content: \"\\f66e\"; }\n\n.fa-e::before {\n content: \"\\45\"; }\n\n.fa-pizza::before {\n content: \"\\f817\"; }\n\n.fa-bowl-chopsticks-noodles::before {\n content: \"\\e2ea\"; }\n\n.fa-h3::before {\n content: \"\\f315\"; }\n\n.fa-pen-clip::before {\n content: \"\\f305\"; }\n\n.fa-pen-alt::before {\n content: \"\\f305\"; }\n\n.fa-bridge-circle-exclamation::before {\n content: \"\\e4ca\"; }\n\n.fa-badge-percent::before {\n content: \"\\f646\"; }\n\n.fa-rotate-reverse::before {\n content: \"\\e631\"; }\n\n.fa-user::before {\n content: \"\\f007\"; }\n\n.fa-sensor::before {\n content: \"\\e028\"; }\n\n.fa-comma::before {\n content: \"\\2c\"; }\n\n.fa-school-circle-check::before {\n content: \"\\e56b\"; }\n\n.fa-toilet-paper-under::before {\n content: \"\\e2a0\"; }\n\n.fa-toilet-paper-reverse::before {\n content: \"\\e2a0\"; }\n\n.fa-light-emergency::before {\n content: \"\\e41f\"; }\n\n.fa-arrow-down-to-arc::before {\n content: \"\\e4ae\"; }\n\n.fa-dumpster::before {\n content: \"\\f793\"; }\n\n.fa-van-shuttle::before {\n content: \"\\f5b6\"; }\n\n.fa-shuttle-van::before {\n content: \"\\f5b6\"; }\n\n.fa-building-user::before {\n content: \"\\e4da\"; }\n\n.fa-light-switch::before {\n content: \"\\e017\"; }\n\n.fa-square-caret-left::before {\n content: \"\\f191\"; }\n\n.fa-caret-square-left::before {\n content: \"\\f191\"; }\n\n.fa-highlighter::before {\n content: \"\\f591\"; }\n\n.fa-wave-pulse::before {\n content: \"\\f5f8\"; }\n\n.fa-heart-rate::before {\n content: \"\\f5f8\"; }\n\n.fa-key::before {\n content: \"\\f084\"; }\n\n.fa-arrow-left-to-bracket::before {\n content: \"\\e669\"; }\n\n.fa-hat-santa::before {\n content: \"\\f7a7\"; }\n\n.fa-tamale::before {\n content: \"\\e451\"; }\n\n.fa-box-check::before {\n content: \"\\f467\"; }\n\n.fa-bullhorn::before {\n content: \"\\f0a1\"; }\n\n.fa-steak::before {\n content: \"\\f824\"; }\n\n.fa-location-crosshairs-slash::before {\n content: \"\\f603\"; }\n\n.fa-location-slash::before {\n content: \"\\f603\"; }\n\n.fa-person-dolly::before {\n content: \"\\f4d0\"; }\n\n.fa-globe::before {\n content: \"\\f0ac\"; }\n\n.fa-synagogue::before {\n content: \"\\f69b\"; }\n\n.fa-file-chart-column::before {\n content: \"\\f659\"; }\n\n.fa-file-chart-line::before {\n content: \"\\f659\"; }\n\n.fa-person-half-dress::before {\n content: \"\\e548\"; }\n\n.fa-folder-image::before {\n content: \"\\e18a\"; }\n\n.fa-calendar-pen::before {\n content: \"\\f333\"; }\n\n.fa-calendar-edit::before {\n content: \"\\f333\"; }\n\n.fa-road-bridge::before {\n content: \"\\e563\"; }\n\n.fa-face-smile-tear::before {\n content: \"\\e393\"; }\n\n.fa-message-plus::before {\n content: \"\\f4a8\"; }\n\n.fa-comment-alt-plus::before {\n content: \"\\f4a8\"; }\n\n.fa-location-arrow::before {\n content: \"\\f124\"; }\n\n.fa-c::before {\n content: \"\\43\"; }\n\n.fa-tablet-button::before {\n content: \"\\f10a\"; }\n\n.fa-person-dress-fairy::before {\n content: \"\\e607\"; }\n\n.fa-rectangle-history-circle-user::before {\n content: \"\\e4a4\"; }\n\n.fa-building-lock::before {\n content: \"\\e4d6\"; }\n\n.fa-chart-line-up::before {\n content: \"\\e0e5\"; }\n\n.fa-mailbox::before {\n content: \"\\f813\"; }\n\n.fa-sign-posts::before {\n content: \"\\e625\"; }\n\n.fa-truck-bolt::before {\n content: \"\\e3d0\"; }\n\n.fa-pizza-slice::before {\n content: \"\\f818\"; }\n\n.fa-money-bill-wave::before {\n content: \"\\f53a\"; }\n\n.fa-chart-area::before {\n content: \"\\f1fe\"; }\n\n.fa-area-chart::before {\n content: \"\\f1fe\"; }\n\n.fa-house-flag::before {\n content: \"\\e50d\"; }\n\n.fa-circle-three-quarters-stroke::before {\n content: \"\\e5d4\"; }\n\n.fa-person-circle-minus::before {\n content: \"\\e540\"; }\n\n.fa-scalpel::before {\n content: \"\\f61d\"; }\n\n.fa-ban::before {\n content: \"\\f05e\"; }\n\n.fa-cancel::before {\n content: \"\\f05e\"; }\n\n.fa-bell-exclamation::before {\n content: \"\\f848\"; }\n\n.fa-circle-bookmark::before {\n content: \"\\e100\"; }\n\n.fa-bookmark-circle::before {\n content: \"\\e100\"; }\n\n.fa-egg-fried::before {\n content: \"\\f7fc\"; }\n\n.fa-face-weary::before {\n content: \"\\e3a1\"; }\n\n.fa-uniform-martial-arts::before {\n content: \"\\e3d1\"; }\n\n.fa-camera-rotate::before {\n content: \"\\e0d8\"; }\n\n.fa-sun-dust::before {\n content: \"\\f764\"; }\n\n.fa-comment-text::before {\n content: \"\\e14d\"; }\n\n.fa-spray-can-sparkles::before {\n content: \"\\f5d0\"; }\n\n.fa-air-freshener::before {\n content: \"\\f5d0\"; }\n\n.fa-signal-bars::before {\n content: \"\\f690\"; }\n\n.fa-signal-alt::before {\n content: \"\\f690\"; }\n\n.fa-signal-alt-4::before {\n content: \"\\f690\"; }\n\n.fa-signal-bars-strong::before {\n content: \"\\f690\"; }\n\n.fa-diamond-exclamation::before {\n content: \"\\e405\"; }\n\n.fa-star::before {\n content: \"\\f005\"; }\n\n.fa-dial-min::before {\n content: \"\\e161\"; }\n\n.fa-repeat::before {\n content: \"\\f363\"; }\n\n.fa-cross::before {\n content: \"\\f654\"; }\n\n.fa-page-caret-down::before {\n content: \"\\e429\"; }\n\n.fa-file-caret-down::before {\n content: \"\\e429\"; }\n\n.fa-box::before {\n content: \"\\f466\"; }\n\n.fa-venus-mars::before {\n content: \"\\f228\"; }\n\n.fa-clock-seven-thirty::before {\n content: \"\\e351\"; }\n\n.fa-arrow-pointer::before {\n content: \"\\f245\"; }\n\n.fa-mouse-pointer::before {\n content: \"\\f245\"; }\n\n.fa-clock-four-thirty::before {\n content: \"\\e34b\"; }\n\n.fa-signal-bars-good::before {\n content: \"\\f693\"; }\n\n.fa-signal-alt-3::before {\n content: \"\\f693\"; }\n\n.fa-cactus::before {\n content: \"\\f8a7\"; }\n\n.fa-lightbulb-gear::before {\n content: \"\\e5fd\"; }\n\n.fa-maximize::before {\n content: \"\\f31e\"; }\n\n.fa-expand-arrows-alt::before {\n content: \"\\f31e\"; }\n\n.fa-charging-station::before {\n content: \"\\f5e7\"; }\n\n.fa-shapes::before {\n content: \"\\f61f\"; }\n\n.fa-triangle-circle-square::before {\n content: \"\\f61f\"; }\n\n.fa-plane-tail::before {\n content: \"\\e22c\"; }\n\n.fa-gauge-simple-max::before {\n content: \"\\f62b\"; }\n\n.fa-tachometer-fastest::before {\n content: \"\\f62b\"; }\n\n.fa-circle-u::before {\n content: \"\\e127\"; }\n\n.fa-shield-slash::before {\n content: \"\\e24b\"; }\n\n.fa-square-phone-hangup::before {\n content: \"\\e27a\"; }\n\n.fa-phone-square-down::before {\n content: \"\\e27a\"; }\n\n.fa-arrow-up-left::before {\n content: \"\\e09d\"; }\n\n.fa-transporter-1::before {\n content: \"\\e043\"; }\n\n.fa-peanuts::before {\n content: \"\\e431\"; }\n\n.fa-shuffle::before {\n content: \"\\f074\"; }\n\n.fa-random::before {\n content: \"\\f074\"; }\n\n.fa-person-running::before {\n content: \"\\f70c\"; }\n\n.fa-running::before {\n content: \"\\f70c\"; }\n\n.fa-mobile-retro::before {\n content: \"\\e527\"; }\n\n.fa-grip-lines-vertical::before {\n content: \"\\f7a5\"; }\n\n.fa-bin-bottles-recycle::before {\n content: \"\\e5f6\"; }\n\n.fa-arrow-up-from-square::before {\n content: \"\\e09c\"; }\n\n.fa-file-dashed-line::before {\n content: \"\\f877\"; }\n\n.fa-page-break::before {\n content: \"\\f877\"; }\n\n.fa-bracket-curly-right::before {\n content: \"\\7d\"; }\n\n.fa-spider::before {\n content: \"\\f717\"; }\n\n.fa-clock-three::before {\n content: \"\\e356\"; }\n\n.fa-hands-bound::before {\n content: \"\\e4f9\"; }\n\n.fa-scalpel-line-dashed::before {\n content: \"\\f61e\"; }\n\n.fa-scalpel-path::before {\n content: \"\\f61e\"; }\n\n.fa-file-invoice-dollar::before {\n content: \"\\f571\"; }\n\n.fa-pipe-smoking::before {\n content: \"\\e3c4\"; }\n\n.fa-face-astonished::before {\n content: \"\\e36b\"; }\n\n.fa-window::before {\n content: \"\\f40e\"; }\n\n.fa-plane-circle-exclamation::before {\n content: \"\\e556\"; }\n\n.fa-ear::before {\n content: \"\\f5f0\"; }\n\n.fa-file-lock::before {\n content: \"\\e3a6\"; }\n\n.fa-diagram-venn::before {\n content: \"\\e15a\"; }\n\n.fa-arrow-down-from-bracket::before {\n content: \"\\e667\"; }\n\n.fa-x-ray::before {\n content: \"\\f497\"; }\n\n.fa-goal-net::before {\n content: \"\\e3ab\"; }\n\n.fa-coffin-cross::before {\n content: \"\\e051\"; }\n\n.fa-spell-check::before {\n content: \"\\f891\"; }\n\n.fa-location-xmark::before {\n content: \"\\f60e\"; }\n\n.fa-map-marker-times::before {\n content: \"\\f60e\"; }\n\n.fa-map-marker-xmark::before {\n content: \"\\f60e\"; }\n\n.fa-circle-quarter-stroke::before {\n content: \"\\e5d3\"; }\n\n.fa-lasso::before {\n content: \"\\f8c8\"; }\n\n.fa-slash::before {\n content: \"\\f715\"; }\n\n.fa-person-to-portal::before {\n content: \"\\e022\"; }\n\n.fa-portal-enter::before {\n content: \"\\e022\"; }\n\n.fa-calendar-star::before {\n content: \"\\f736\"; }\n\n.fa-computer-mouse::before {\n content: \"\\f8cc\"; }\n\n.fa-mouse::before {\n content: \"\\f8cc\"; }\n\n.fa-arrow-right-to-bracket::before {\n content: \"\\f090\"; }\n\n.fa-sign-in::before {\n content: \"\\f090\"; }\n\n.fa-pegasus::before {\n content: \"\\f703\"; }\n\n.fa-files-medical::before {\n content: \"\\f7fd\"; }\n\n.fa-cannon::before {\n content: \"\\e642\"; }\n\n.fa-nfc-lock::before {\n content: \"\\e1f8\"; }\n\n.fa-person-ski-lift::before {\n content: \"\\f7c8\"; }\n\n.fa-ski-lift::before {\n content: \"\\f7c8\"; }\n\n.fa-square-6::before {\n content: \"\\e25b\"; }\n\n.fa-shop-slash::before {\n content: \"\\e070\"; }\n\n.fa-store-alt-slash::before {\n content: \"\\e070\"; }\n\n.fa-wind-turbine::before {\n content: \"\\f89b\"; }\n\n.fa-sliders-simple::before {\n content: \"\\e253\"; }\n\n.fa-grid-round::before {\n content: \"\\e5da\"; }\n\n.fa-badge-sheriff::before {\n content: \"\\f8a2\"; }\n\n.fa-server::before {\n content: \"\\f233\"; }\n\n.fa-virus-covid-slash::before {\n content: \"\\e4a9\"; }\n\n.fa-intersection::before {\n content: \"\\f668\"; }\n\n.fa-shop-lock::before {\n content: \"\\e4a5\"; }\n\n.fa-family::before {\n content: \"\\e300\"; }\n\n.fa-hourglass-start::before {\n content: \"\\f251\"; }\n\n.fa-hourglass-1::before {\n content: \"\\f251\"; }\n\n.fa-user-hair-buns::before {\n content: \"\\e3d3\"; }\n\n.fa-blender-phone::before {\n content: \"\\f6b6\"; }\n\n.fa-hourglass-clock::before {\n content: \"\\e41b\"; }\n\n.fa-person-seat-reclined::before {\n content: \"\\e21f\"; }\n\n.fa-paper-plane-top::before {\n content: \"\\e20a\"; }\n\n.fa-paper-plane-alt::before {\n content: \"\\e20a\"; }\n\n.fa-send::before {\n content: \"\\e20a\"; }\n\n.fa-message-arrow-up::before {\n content: \"\\e1dc\"; }\n\n.fa-comment-alt-arrow-up::before {\n content: \"\\e1dc\"; }\n\n.fa-lightbulb-exclamation::before {\n content: \"\\f671\"; }\n\n.fa-layer-minus::before {\n content: \"\\f5fe\"; }\n\n.fa-layer-group-minus::before {\n content: \"\\f5fe\"; }\n\n.fa-chart-pie-simple-circle-currency::before {\n content: \"\\e604\"; }\n\n.fa-circle-e::before {\n content: \"\\e109\"; }\n\n.fa-building-wheat::before {\n content: \"\\e4db\"; }\n\n.fa-gauge-max::before {\n content: \"\\f626\"; }\n\n.fa-tachometer-alt-fastest::before {\n content: \"\\f626\"; }\n\n.fa-person-breastfeeding::before {\n content: \"\\e53a\"; }\n\n.fa-apostrophe::before {\n content: \"\\27\"; }\n\n.fa-file-png::before {\n content: \"\\e666\"; }\n\n.fa-fire-hydrant::before {\n content: \"\\e17f\"; }\n\n.fa-right-to-bracket::before {\n content: \"\\f2f6\"; }\n\n.fa-sign-in-alt::before {\n content: \"\\f2f6\"; }\n\n.fa-video-plus::before {\n content: \"\\f4e1\"; }\n\n.fa-square-right::before {\n content: \"\\f352\"; }\n\n.fa-arrow-alt-square-right::before {\n content: \"\\f352\"; }\n\n.fa-comment-smile::before {\n content: \"\\f4b4\"; }\n\n.fa-venus::before {\n content: \"\\f221\"; }\n\n.fa-passport::before {\n content: \"\\f5ab\"; }\n\n.fa-inbox-in::before {\n content: \"\\f310\"; }\n\n.fa-inbox-arrow-down::before {\n content: \"\\f310\"; }\n\n.fa-heart-pulse::before {\n content: \"\\f21e\"; }\n\n.fa-heartbeat::before {\n content: \"\\f21e\"; }\n\n.fa-circle-8::before {\n content: \"\\e0f5\"; }\n\n.fa-clouds-moon::before {\n content: \"\\f745\"; }\n\n.fa-clock-ten-thirty::before {\n content: \"\\e355\"; }\n\n.fa-people-carry-box::before {\n content: \"\\f4ce\"; }\n\n.fa-people-carry::before {\n content: \"\\f4ce\"; }\n\n.fa-folder-user::before {\n content: \"\\e18e\"; }\n\n.fa-trash-can-xmark::before {\n content: \"\\e2ae\"; }\n\n.fa-temperature-high::before {\n content: \"\\f769\"; }\n\n.fa-microchip::before {\n content: \"\\f2db\"; }\n\n.fa-left-long-to-line::before {\n content: \"\\e41e\"; }\n\n.fa-crown::before {\n content: \"\\f521\"; }\n\n.fa-weight-hanging::before {\n content: \"\\f5cd\"; }\n\n.fa-xmarks-lines::before {\n content: \"\\e59a\"; }\n\n.fa-file-prescription::before {\n content: \"\\f572\"; }\n\n.fa-table-cells-lock::before {\n content: \"\\e679\"; }\n\n.fa-calendar-range::before {\n content: \"\\e0d6\"; }\n\n.fa-flower-daffodil::before {\n content: \"\\f800\"; }\n\n.fa-hand-back-point-up::before {\n content: \"\\e1a2\"; }\n\n.fa-weight-scale::before {\n content: \"\\f496\"; }\n\n.fa-weight::before {\n content: \"\\f496\"; }\n\n.fa-arrow-up-to-arc::before {\n content: \"\\e617\"; }\n\n.fa-star-exclamation::before {\n content: \"\\f2f3\"; }\n\n.fa-books::before {\n content: \"\\f5db\"; }\n\n.fa-user-group::before {\n content: \"\\f500\"; }\n\n.fa-user-friends::before {\n content: \"\\f500\"; }\n\n.fa-arrow-up-a-z::before {\n content: \"\\f15e\"; }\n\n.fa-sort-alpha-up::before {\n content: \"\\f15e\"; }\n\n.fa-layer-plus::before {\n content: \"\\f5ff\"; }\n\n.fa-layer-group-plus::before {\n content: \"\\f5ff\"; }\n\n.fa-play-pause::before {\n content: \"\\e22f\"; }\n\n.fa-block-question::before {\n content: \"\\e3dd\"; }\n\n.fa-snooze::before {\n content: \"\\f880\"; }\n\n.fa-zzz::before {\n content: \"\\f880\"; }\n\n.fa-scanner-image::before {\n content: \"\\f8f3\"; }\n\n.fa-tv-retro::before {\n content: \"\\f401\"; }\n\n.fa-square-t::before {\n content: \"\\e280\"; }\n\n.fa-farm::before {\n content: \"\\f864\"; }\n\n.fa-barn-silo::before {\n content: \"\\f864\"; }\n\n.fa-chess-knight::before {\n content: \"\\f441\"; }\n\n.fa-bars-sort::before {\n content: \"\\e0ae\"; }\n\n.fa-pallet-boxes::before {\n content: \"\\f483\"; }\n\n.fa-palette-boxes::before {\n content: \"\\f483\"; }\n\n.fa-pallet-alt::before {\n content: \"\\f483\"; }\n\n.fa-face-laugh-squint::before {\n content: \"\\f59b\"; }\n\n.fa-laugh-squint::before {\n content: \"\\f59b\"; }\n\n.fa-code-simple::before {\n content: \"\\e13d\"; }\n\n.fa-bolt-slash::before {\n content: \"\\e0b8\"; }\n\n.fa-panel-fire::before {\n content: \"\\e42f\"; }\n\n.fa-binary-circle-check::before {\n content: \"\\e33c\"; }\n\n.fa-comment-minus::before {\n content: \"\\f4b1\"; }\n\n.fa-burrito::before {\n content: \"\\f7ed\"; }\n\n.fa-violin::before {\n content: \"\\f8ed\"; }\n\n.fa-objects-column::before {\n content: \"\\e3c1\"; }\n\n.fa-square-chevron-down::before {\n content: \"\\f329\"; }\n\n.fa-chevron-square-down::before {\n content: \"\\f329\"; }\n\n.fa-comment-plus::before {\n content: \"\\f4b2\"; }\n\n.fa-triangle-instrument::before {\n content: \"\\f8e2\"; }\n\n.fa-triangle-music::before {\n content: \"\\f8e2\"; }\n\n.fa-wheelchair::before {\n content: \"\\f193\"; }\n\n.fa-user-pilot-tie::before {\n content: \"\\e2c1\"; }\n\n.fa-piano-keyboard::before {\n content: \"\\f8d5\"; }\n\n.fa-bed-empty::before {\n content: \"\\f8f9\"; }\n\n.fa-circle-arrow-up::before {\n content: \"\\f0aa\"; }\n\n.fa-arrow-circle-up::before {\n content: \"\\f0aa\"; }\n\n.fa-toggle-on::before {\n content: \"\\f205\"; }\n\n.fa-rectangle-vertical::before {\n content: \"\\f2fb\"; }\n\n.fa-rectangle-portrait::before {\n content: \"\\f2fb\"; }\n\n.fa-person-walking::before {\n content: \"\\f554\"; }\n\n.fa-walking::before {\n content: \"\\f554\"; }\n\n.fa-l::before {\n content: \"\\4c\"; }\n\n.fa-signal-stream::before {\n content: \"\\f8dd\"; }\n\n.fa-down-to-bracket::before {\n content: \"\\e4e7\"; }\n\n.fa-circle-z::before {\n content: \"\\e130\"; }\n\n.fa-stars::before {\n content: \"\\f762\"; }\n\n.fa-fire::before {\n content: \"\\f06d\"; }\n\n.fa-bed-pulse::before {\n content: \"\\f487\"; }\n\n.fa-procedures::before {\n content: \"\\f487\"; }\n\n.fa-house-day::before {\n content: \"\\e00e\"; }\n\n.fa-shuttle-space::before {\n content: \"\\f197\"; }\n\n.fa-space-shuttle::before {\n content: \"\\f197\"; }\n\n.fa-shirt-long-sleeve::before {\n content: \"\\e3c7\"; }\n\n.fa-chart-pie-simple::before {\n content: \"\\f64e\"; }\n\n.fa-chart-pie-alt::before {\n content: \"\\f64e\"; }\n\n.fa-face-laugh::before {\n content: \"\\f599\"; }\n\n.fa-laugh::before {\n content: \"\\f599\"; }\n\n.fa-folder-open::before {\n content: \"\\f07c\"; }\n\n.fa-album-collection-circle-user::before {\n content: \"\\e48f\"; }\n\n.fa-candy::before {\n content: \"\\e3e7\"; }\n\n.fa-bowl-hot::before {\n content: \"\\f823\"; }\n\n.fa-soup::before {\n content: \"\\f823\"; }\n\n.fa-flatbread::before {\n content: \"\\e40b\"; }\n\n.fa-heart-circle-plus::before {\n content: \"\\e500\"; }\n\n.fa-code-fork::before {\n content: \"\\e13b\"; }\n\n.fa-city::before {\n content: \"\\f64f\"; }\n\n.fa-signal-bars-weak::before {\n content: \"\\f691\"; }\n\n.fa-signal-alt-1::before {\n content: \"\\f691\"; }\n\n.fa-microphone-lines::before {\n content: \"\\f3c9\"; }\n\n.fa-microphone-alt::before {\n content: \"\\f3c9\"; }\n\n.fa-clock-twelve::before {\n content: \"\\e358\"; }\n\n.fa-pepper-hot::before {\n content: \"\\f816\"; }\n\n.fa-citrus-slice::before {\n content: \"\\e2f5\"; }\n\n.fa-sheep::before {\n content: \"\\f711\"; }\n\n.fa-unlock::before {\n content: \"\\f09c\"; }\n\n.fa-colon-sign::before {\n content: \"\\e140\"; }\n\n.fa-headset::before {\n content: \"\\f590\"; }\n\n.fa-badger-honey::before {\n content: \"\\f6b4\"; }\n\n.fa-h4::before {\n content: \"\\f86a\"; }\n\n.fa-store-slash::before {\n content: \"\\e071\"; }\n\n.fa-road-circle-xmark::before {\n content: \"\\e566\"; }\n\n.fa-signal-slash::before {\n content: \"\\f695\"; }\n\n.fa-user-minus::before {\n content: \"\\f503\"; }\n\n.fa-mars-stroke-up::before {\n content: \"\\f22a\"; }\n\n.fa-mars-stroke-v::before {\n content: \"\\f22a\"; }\n\n.fa-champagne-glasses::before {\n content: \"\\f79f\"; }\n\n.fa-glass-cheers::before {\n content: \"\\f79f\"; }\n\n.fa-taco::before {\n content: \"\\f826\"; }\n\n.fa-hexagon-plus::before {\n content: \"\\f300\"; }\n\n.fa-plus-hexagon::before {\n content: \"\\f300\"; }\n\n.fa-clipboard::before {\n content: \"\\f328\"; }\n\n.fa-house-circle-exclamation::before {\n content: \"\\e50a\"; }\n\n.fa-file-arrow-up::before {\n content: \"\\f574\"; }\n\n.fa-file-upload::before {\n content: \"\\f574\"; }\n\n.fa-wifi::before {\n content: \"\\f1eb\"; }\n\n.fa-wifi-3::before {\n content: \"\\f1eb\"; }\n\n.fa-wifi-strong::before {\n content: \"\\f1eb\"; }\n\n.fa-messages::before {\n content: \"\\f4b6\"; }\n\n.fa-comments-alt::before {\n content: \"\\f4b6\"; }\n\n.fa-bath::before {\n content: \"\\f2cd\"; }\n\n.fa-bathtub::before {\n content: \"\\f2cd\"; }\n\n.fa-umbrella-simple::before {\n content: \"\\e2bc\"; }\n\n.fa-umbrella-alt::before {\n content: \"\\e2bc\"; }\n\n.fa-rectangle-history-circle-plus::before {\n content: \"\\e4a3\"; }\n\n.fa-underline::before {\n content: \"\\f0cd\"; }\n\n.fa-prescription-bottle-pill::before {\n content: \"\\e5c0\"; }\n\n.fa-user-pen::before {\n content: \"\\f4ff\"; }\n\n.fa-user-edit::before {\n content: \"\\f4ff\"; }\n\n.fa-binary-slash::before {\n content: \"\\e33e\"; }\n\n.fa-square-o::before {\n content: \"\\e278\"; }\n\n.fa-caduceus::before {\n content: \"\\e681\"; }\n\n.fa-signature::before {\n content: \"\\f5b7\"; }\n\n.fa-stroopwafel::before {\n content: \"\\f551\"; }\n\n.fa-bold::before {\n content: \"\\f032\"; }\n\n.fa-anchor-lock::before {\n content: \"\\e4ad\"; }\n\n.fa-building-ngo::before {\n content: \"\\e4d7\"; }\n\n.fa-transporter-3::before {\n content: \"\\e045\"; }\n\n.fa-engine-warning::before {\n content: \"\\f5f2\"; }\n\n.fa-engine-exclamation::before {\n content: \"\\f5f2\"; }\n\n.fa-circle-down-right::before {\n content: \"\\e108\"; }\n\n.fa-square-k::before {\n content: \"\\e274\"; }\n\n.fa-manat-sign::before {\n content: \"\\e1d5\"; }\n\n.fa-money-check-pen::before {\n content: \"\\f872\"; }\n\n.fa-money-check-edit::before {\n content: \"\\f872\"; }\n\n.fa-not-equal::before {\n content: \"\\f53e\"; }\n\n.fa-border-top-left::before {\n content: \"\\f853\"; }\n\n.fa-border-style::before {\n content: \"\\f853\"; }\n\n.fa-map-location-dot::before {\n content: \"\\f5a0\"; }\n\n.fa-map-marked-alt::before {\n content: \"\\f5a0\"; }\n\n.fa-tilde::before {\n content: \"\\7e\"; }\n\n.fa-jedi::before {\n content: \"\\f669\"; }\n\n.fa-square-poll-vertical::before {\n content: \"\\f681\"; }\n\n.fa-poll::before {\n content: \"\\f681\"; }\n\n.fa-arrow-down-square-triangle::before {\n content: \"\\f889\"; }\n\n.fa-sort-shapes-down-alt::before {\n content: \"\\f889\"; }\n\n.fa-mug-hot::before {\n content: \"\\f7b6\"; }\n\n.fa-dog-leashed::before {\n content: \"\\f6d4\"; }\n\n.fa-car-battery::before {\n content: \"\\f5df\"; }\n\n.fa-battery-car::before {\n content: \"\\f5df\"; }\n\n.fa-face-downcast-sweat::before {\n content: \"\\e371\"; }\n\n.fa-mailbox-flag-up::before {\n content: \"\\e5bb\"; }\n\n.fa-memo-circle-info::before {\n content: \"\\e49a\"; }\n\n.fa-gift::before {\n content: \"\\f06b\"; }\n\n.fa-dice-two::before {\n content: \"\\f528\"; }\n\n.fa-volume::before {\n content: \"\\f6a8\"; }\n\n.fa-volume-medium::before {\n content: \"\\f6a8\"; }\n\n.fa-transporter-5::before {\n content: \"\\e2a6\"; }\n\n.fa-gauge-circle-bolt::before {\n content: \"\\e496\"; }\n\n.fa-coin-front::before {\n content: \"\\e3fc\"; }\n\n.fa-file-slash::before {\n content: \"\\e3a7\"; }\n\n.fa-message-arrow-up-right::before {\n content: \"\\e1dd\"; }\n\n.fa-treasure-chest::before {\n content: \"\\f723\"; }\n\n.fa-chess-queen::before {\n content: \"\\f445\"; }\n\n.fa-paintbrush-fine::before {\n content: \"\\f5a9\"; }\n\n.fa-paint-brush-alt::before {\n content: \"\\f5a9\"; }\n\n.fa-paint-brush-fine::before {\n content: \"\\f5a9\"; }\n\n.fa-paintbrush-alt::before {\n content: \"\\f5a9\"; }\n\n.fa-glasses::before {\n content: \"\\f530\"; }\n\n.fa-hood-cloak::before {\n content: \"\\f6ef\"; }\n\n.fa-square-quote::before {\n content: \"\\e329\"; }\n\n.fa-up-left::before {\n content: \"\\e2bd\"; }\n\n.fa-bring-front::before {\n content: \"\\f857\"; }\n\n.fa-chess-board::before {\n content: \"\\f43c\"; }\n\n.fa-burger-cheese::before {\n content: \"\\f7f1\"; }\n\n.fa-cheeseburger::before {\n content: \"\\f7f1\"; }\n\n.fa-building-circle-check::before {\n content: \"\\e4d2\"; }\n\n.fa-repeat-1::before {\n content: \"\\f365\"; }\n\n.fa-arrow-down-to-line::before {\n content: \"\\f33d\"; }\n\n.fa-arrow-to-bottom::before {\n content: \"\\f33d\"; }\n\n.fa-grid-5::before {\n content: \"\\e199\"; }\n\n.fa-swap-arrows::before {\n content: \"\\e60a\"; }\n\n.fa-right-long-to-line::before {\n content: \"\\e444\"; }\n\n.fa-person-chalkboard::before {\n content: \"\\e53d\"; }\n\n.fa-mars-stroke-right::before {\n content: \"\\f22b\"; }\n\n.fa-mars-stroke-h::before {\n content: \"\\f22b\"; }\n\n.fa-hand-back-fist::before {\n content: \"\\f255\"; }\n\n.fa-hand-rock::before {\n content: \"\\f255\"; }\n\n.fa-grid-round-5::before {\n content: \"\\e5de\"; }\n\n.fa-tally::before {\n content: \"\\f69c\"; }\n\n.fa-tally-5::before {\n content: \"\\f69c\"; }\n\n.fa-square-caret-up::before {\n content: \"\\f151\"; }\n\n.fa-caret-square-up::before {\n content: \"\\f151\"; }\n\n.fa-cloud-showers-water::before {\n content: \"\\e4e4\"; }\n\n.fa-chart-bar::before {\n content: \"\\f080\"; }\n\n.fa-bar-chart::before {\n content: \"\\f080\"; }\n\n.fa-hands-bubbles::before {\n content: \"\\e05e\"; }\n\n.fa-hands-wash::before {\n content: \"\\e05e\"; }\n\n.fa-less-than-equal::before {\n content: \"\\f537\"; }\n\n.fa-train::before {\n content: \"\\f238\"; }\n\n.fa-up-from-dotted-line::before {\n content: \"\\e456\"; }\n\n.fa-eye-low-vision::before {\n content: \"\\f2a8\"; }\n\n.fa-low-vision::before {\n content: \"\\f2a8\"; }\n\n.fa-traffic-light-go::before {\n content: \"\\f638\"; }\n\n.fa-face-exhaling::before {\n content: \"\\e480\"; }\n\n.fa-sensor-fire::before {\n content: \"\\e02a\"; }\n\n.fa-user-unlock::before {\n content: \"\\e058\"; }\n\n.fa-hexagon-divide::before {\n content: \"\\e1ad\"; }\n\n.fa-00::before {\n content: \"\\e467\"; }\n\n.fa-crow::before {\n content: \"\\f520\"; }\n\n.fa-cassette-betamax::before {\n content: \"\\f8a4\"; }\n\n.fa-betamax::before {\n content: \"\\f8a4\"; }\n\n.fa-sailboat::before {\n content: \"\\e445\"; }\n\n.fa-window-restore::before {\n content: \"\\f2d2\"; }\n\n.fa-nfc-magnifying-glass::before {\n content: \"\\e1f9\"; }\n\n.fa-file-binary::before {\n content: \"\\e175\"; }\n\n.fa-circle-v::before {\n content: \"\\e12a\"; }\n\n.fa-square-plus::before {\n content: \"\\f0fe\"; }\n\n.fa-plus-square::before {\n content: \"\\f0fe\"; }\n\n.fa-bowl-scoops::before {\n content: \"\\e3df\"; }\n\n.fa-mistletoe::before {\n content: \"\\f7b4\"; }\n\n.fa-custard::before {\n content: \"\\e403\"; }\n\n.fa-lacrosse-stick::before {\n content: \"\\e3b5\"; }\n\n.fa-hockey-mask::before {\n content: \"\\f6ee\"; }\n\n.fa-sunrise::before {\n content: \"\\f766\"; }\n\n.fa-subtitles::before {\n content: \"\\e60f\"; }\n\n.fa-panel-ews::before {\n content: \"\\e42e\"; }\n\n.fa-torii-gate::before {\n content: \"\\f6a1\"; }\n\n.fa-cloud-exclamation::before {\n content: \"\\e491\"; }\n\n.fa-message-lines::before {\n content: \"\\f4a6\"; }\n\n.fa-comment-alt-lines::before {\n content: \"\\f4a6\"; }\n\n.fa-frog::before {\n content: \"\\f52e\"; }\n\n.fa-bucket::before {\n content: \"\\e4cf\"; }\n\n.fa-floppy-disk-pen::before {\n content: \"\\e182\"; }\n\n.fa-image::before {\n content: \"\\f03e\"; }\n\n.fa-window-frame::before {\n content: \"\\e04f\"; }\n\n.fa-microphone::before {\n content: \"\\f130\"; }\n\n.fa-cow::before {\n content: \"\\f6c8\"; }\n\n.fa-file-zip::before {\n content: \"\\e5ee\"; }\n\n.fa-square-ring::before {\n content: \"\\e44f\"; }\n\n.fa-down-from-line::before {\n content: \"\\f349\"; }\n\n.fa-arrow-alt-from-top::before {\n content: \"\\f349\"; }\n\n.fa-caret-up::before {\n content: \"\\f0d8\"; }\n\n.fa-shield-xmark::before {\n content: \"\\e24c\"; }\n\n.fa-shield-times::before {\n content: \"\\e24c\"; }\n\n.fa-screwdriver::before {\n content: \"\\f54a\"; }\n\n.fa-circle-sort-down::before {\n content: \"\\e031\"; }\n\n.fa-sort-circle-down::before {\n content: \"\\e031\"; }\n\n.fa-folder-closed::before {\n content: \"\\e185\"; }\n\n.fa-house-tsunami::before {\n content: \"\\e515\"; }\n\n.fa-square-nfi::before {\n content: \"\\e576\"; }\n\n.fa-forklift::before {\n content: \"\\f47a\"; }\n\n.fa-arrow-up-from-ground-water::before {\n content: \"\\e4b5\"; }\n\n.fa-bracket-square-right::before {\n content: \"\\5d\"; }\n\n.fa-martini-glass::before {\n content: \"\\f57b\"; }\n\n.fa-glass-martini-alt::before {\n content: \"\\f57b\"; }\n\n.fa-rotate-left::before {\n content: \"\\f2ea\"; }\n\n.fa-rotate-back::before {\n content: \"\\f2ea\"; }\n\n.fa-rotate-backward::before {\n content: \"\\f2ea\"; }\n\n.fa-undo-alt::before {\n content: \"\\f2ea\"; }\n\n.fa-table-columns::before {\n content: \"\\f0db\"; }\n\n.fa-columns::before {\n content: \"\\f0db\"; }\n\n.fa-square-a::before {\n content: \"\\e25f\"; }\n\n.fa-tick::before {\n content: \"\\e32f\"; }\n\n.fa-lemon::before {\n content: \"\\f094\"; }\n\n.fa-head-side-mask::before {\n content: \"\\e063\"; }\n\n.fa-handshake::before {\n content: \"\\f2b5\"; }\n\n.fa-gem::before {\n content: \"\\f3a5\"; }\n\n.fa-dolly::before {\n content: \"\\f472\"; }\n\n.fa-dolly-box::before {\n content: \"\\f472\"; }\n\n.fa-smoking::before {\n content: \"\\f48d\"; }\n\n.fa-minimize::before {\n content: \"\\f78c\"; }\n\n.fa-compress-arrows-alt::before {\n content: \"\\f78c\"; }\n\n.fa-refrigerator::before {\n content: \"\\e026\"; }\n\n.fa-monument::before {\n content: \"\\f5a6\"; }\n\n.fa-octagon-xmark::before {\n content: \"\\f2f0\"; }\n\n.fa-times-octagon::before {\n content: \"\\f2f0\"; }\n\n.fa-xmark-octagon::before {\n content: \"\\f2f0\"; }\n\n.fa-align-slash::before {\n content: \"\\f846\"; }\n\n.fa-snowplow::before {\n content: \"\\f7d2\"; }\n\n.fa-angles-right::before {\n content: \"\\f101\"; }\n\n.fa-angle-double-right::before {\n content: \"\\f101\"; }\n\n.fa-truck-ramp-couch::before {\n content: \"\\f4dd\"; }\n\n.fa-truck-couch::before {\n content: \"\\f4dd\"; }\n\n.fa-cannabis::before {\n content: \"\\f55f\"; }\n\n.fa-circle-play::before {\n content: \"\\f144\"; }\n\n.fa-play-circle::before {\n content: \"\\f144\"; }\n\n.fa-arrow-up-right-and-arrow-down-left-from-center::before {\n content: \"\\e0a0\"; }\n\n.fa-location-arrow-up::before {\n content: \"\\e63a\"; }\n\n.fa-tablets::before {\n content: \"\\f490\"; }\n\n.fa-360-degrees::before {\n content: \"\\e2dc\"; }\n\n.fa-ethernet::before {\n content: \"\\f796\"; }\n\n.fa-euro-sign::before {\n content: \"\\f153\"; }\n\n.fa-eur::before {\n content: \"\\f153\"; }\n\n.fa-euro::before {\n content: \"\\f153\"; }\n\n.fa-chair::before {\n content: \"\\f6c0\"; }\n\n.fa-circle-check::before {\n content: \"\\f058\"; }\n\n.fa-check-circle::before {\n content: \"\\f058\"; }\n\n.fa-square-dashed-circle-plus::before {\n content: \"\\e5c2\"; }\n\n.fa-hand-holding-circle-dollar::before {\n content: \"\\e621\"; }\n\n.fa-money-simple-from-bracket::before {\n content: \"\\e313\"; }\n\n.fa-bat::before {\n content: \"\\f6b5\"; }\n\n.fa-circle-stop::before {\n content: \"\\f28d\"; }\n\n.fa-stop-circle::before {\n content: \"\\f28d\"; }\n\n.fa-head-side-headphones::before {\n content: \"\\f8c2\"; }\n\n.fa-phone-rotary::before {\n content: \"\\f8d3\"; }\n\n.fa-arrow-up-to-bracket::before {\n content: \"\\e66a\"; }\n\n.fa-compass-drafting::before {\n content: \"\\f568\"; }\n\n.fa-drafting-compass::before {\n content: \"\\f568\"; }\n\n.fa-plate-wheat::before {\n content: \"\\e55a\"; }\n\n.fa-calendar-circle-minus::before {\n content: \"\\e46f\"; }\n\n.fa-chopsticks::before {\n content: \"\\e3f7\"; }\n\n.fa-car-wrench::before {\n content: \"\\f5e3\"; }\n\n.fa-car-mechanic::before {\n content: \"\\f5e3\"; }\n\n.fa-icicles::before {\n content: \"\\f7ad\"; }\n\n.fa-person-shelter::before {\n content: \"\\e54f\"; }\n\n.fa-neuter::before {\n content: \"\\f22c\"; }\n\n.fa-id-badge::before {\n content: \"\\f2c1\"; }\n\n.fa-kazoo::before {\n content: \"\\f8c7\"; }\n\n.fa-marker::before {\n content: \"\\f5a1\"; }\n\n.fa-bin-bottles::before {\n content: \"\\e5f5\"; }\n\n.fa-face-laugh-beam::before {\n content: \"\\f59a\"; }\n\n.fa-laugh-beam::before {\n content: \"\\f59a\"; }\n\n.fa-square-arrow-down-left::before {\n content: \"\\e261\"; }\n\n.fa-battery-bolt::before {\n content: \"\\f376\"; }\n\n.fa-tree-large::before {\n content: \"\\f7dd\"; }\n\n.fa-helicopter-symbol::before {\n content: \"\\e502\"; }\n\n.fa-aperture::before {\n content: \"\\e2df\"; }\n\n.fa-universal-access::before {\n content: \"\\f29a\"; }\n\n.fa-gear-complex::before {\n content: \"\\e5e9\"; }\n\n.fa-file-magnifying-glass::before {\n content: \"\\f865\"; }\n\n.fa-file-search::before {\n content: \"\\f865\"; }\n\n.fa-up-right::before {\n content: \"\\e2be\"; }\n\n.fa-circle-chevron-up::before {\n content: \"\\f139\"; }\n\n.fa-chevron-circle-up::before {\n content: \"\\f139\"; }\n\n.fa-user-police::before {\n content: \"\\e333\"; }\n\n.fa-lari-sign::before {\n content: \"\\e1c8\"; }\n\n.fa-volcano::before {\n content: \"\\f770\"; }\n\n.fa-teddy-bear::before {\n content: \"\\e3cf\"; }\n\n.fa-stocking::before {\n content: \"\\f7d5\"; }\n\n.fa-person-walking-dashed-line-arrow-right::before {\n content: \"\\e553\"; }\n\n.fa-image-slash::before {\n content: \"\\e1b7\"; }\n\n.fa-mask-snorkel::before {\n content: \"\\e3b7\"; }\n\n.fa-smoke::before {\n content: \"\\f760\"; }\n\n.fa-sterling-sign::before {\n content: \"\\f154\"; }\n\n.fa-gbp::before {\n content: \"\\f154\"; }\n\n.fa-pound-sign::before {\n content: \"\\f154\"; }\n\n.fa-battery-exclamation::before {\n content: \"\\e0b0\"; }\n\n.fa-viruses::before {\n content: \"\\e076\"; }\n\n.fa-square-person-confined::before {\n content: \"\\e577\"; }\n\n.fa-user-tie::before {\n content: \"\\f508\"; }\n\n.fa-up-to-bracket::before {\n content: \"\\e66e\"; }\n\n.fa-arrow-down-long::before {\n content: \"\\f175\"; }\n\n.fa-long-arrow-down::before {\n content: \"\\f175\"; }\n\n.fa-tent-arrow-down-to-line::before {\n content: \"\\e57e\"; }\n\n.fa-certificate::before {\n content: \"\\f0a3\"; }\n\n.fa-crystal-ball::before {\n content: \"\\e362\"; }\n\n.fa-reply-all::before {\n content: \"\\f122\"; }\n\n.fa-mail-reply-all::before {\n content: \"\\f122\"; }\n\n.fa-suitcase::before {\n content: \"\\f0f2\"; }\n\n.fa-person-skating::before {\n content: \"\\f7c5\"; }\n\n.fa-skating::before {\n content: \"\\f7c5\"; }\n\n.fa-star-shooting::before {\n content: \"\\e036\"; }\n\n.fa-binary-lock::before {\n content: \"\\e33d\"; }\n\n.fa-filter-circle-dollar::before {\n content: \"\\f662\"; }\n\n.fa-funnel-dollar::before {\n content: \"\\f662\"; }\n\n.fa-camera-retro::before {\n content: \"\\f083\"; }\n\n.fa-circle-arrow-down::before {\n content: \"\\f0ab\"; }\n\n.fa-arrow-circle-down::before {\n content: \"\\f0ab\"; }\n\n.fa-comment-pen::before {\n content: \"\\f4ae\"; }\n\n.fa-comment-edit::before {\n content: \"\\f4ae\"; }\n\n.fa-file-import::before {\n content: \"\\f56f\"; }\n\n.fa-arrow-right-to-file::before {\n content: \"\\f56f\"; }\n\n.fa-banjo::before {\n content: \"\\f8a3\"; }\n\n.fa-square-arrow-up-right::before {\n content: \"\\f14c\"; }\n\n.fa-external-link-square::before {\n content: \"\\f14c\"; }\n\n.fa-light-emergency-on::before {\n content: \"\\e420\"; }\n\n.fa-kerning::before {\n content: \"\\f86f\"; }\n\n.fa-box-open::before {\n content: \"\\f49e\"; }\n\n.fa-square-f::before {\n content: \"\\e270\"; }\n\n.fa-scroll::before {\n content: \"\\f70e\"; }\n\n.fa-spa::before {\n content: \"\\f5bb\"; }\n\n.fa-arrow-left-from-line::before {\n content: \"\\f344\"; }\n\n.fa-arrow-from-right::before {\n content: \"\\f344\"; }\n\n.fa-strawberry::before {\n content: \"\\e32b\"; }\n\n.fa-location-pin-lock::before {\n content: \"\\e51f\"; }\n\n.fa-pause::before {\n content: \"\\f04c\"; }\n\n.fa-clock-eight-thirty::before {\n content: \"\\e346\"; }\n\n.fa-plane-engines::before {\n content: \"\\f3de\"; }\n\n.fa-plane-alt::before {\n content: \"\\f3de\"; }\n\n.fa-hill-avalanche::before {\n content: \"\\e507\"; }\n\n.fa-temperature-empty::before {\n content: \"\\f2cb\"; }\n\n.fa-temperature-0::before {\n content: \"\\f2cb\"; }\n\n.fa-thermometer-0::before {\n content: \"\\f2cb\"; }\n\n.fa-thermometer-empty::before {\n content: \"\\f2cb\"; }\n\n.fa-bomb::before {\n content: \"\\f1e2\"; }\n\n.fa-gauge-low::before {\n content: \"\\f627\"; }\n\n.fa-tachometer-alt-slow::before {\n content: \"\\f627\"; }\n\n.fa-registered::before {\n content: \"\\f25d\"; }\n\n.fa-trash-can-plus::before {\n content: \"\\e2ac\"; }\n\n.fa-address-card::before {\n content: \"\\f2bb\"; }\n\n.fa-contact-card::before {\n content: \"\\f2bb\"; }\n\n.fa-vcard::before {\n content: \"\\f2bb\"; }\n\n.fa-scale-unbalanced-flip::before {\n content: \"\\f516\"; }\n\n.fa-balance-scale-right::before {\n content: \"\\f516\"; }\n\n.fa-globe-snow::before {\n content: \"\\f7a3\"; }\n\n.fa-subscript::before {\n content: \"\\f12c\"; }\n\n.fa-diamond-turn-right::before {\n content: \"\\f5eb\"; }\n\n.fa-directions::before {\n content: \"\\f5eb\"; }\n\n.fa-integral::before {\n content: \"\\f667\"; }\n\n.fa-burst::before {\n content: \"\\e4dc\"; }\n\n.fa-house-laptop::before {\n content: \"\\e066\"; }\n\n.fa-laptop-house::before {\n content: \"\\e066\"; }\n\n.fa-face-tired::before {\n content: \"\\f5c8\"; }\n\n.fa-tired::before {\n content: \"\\f5c8\"; }\n\n.fa-money-bills::before {\n content: \"\\e1f3\"; }\n\n.fa-blinds-raised::before {\n content: \"\\f8fd\"; }\n\n.fa-smog::before {\n content: \"\\f75f\"; }\n\n.fa-ufo-beam::before {\n content: \"\\e048\"; }\n\n.fa-circle-caret-up::before {\n content: \"\\f331\"; }\n\n.fa-caret-circle-up::before {\n content: \"\\f331\"; }\n\n.fa-user-vneck-hair-long::before {\n content: \"\\e463\"; }\n\n.fa-square-a-lock::before {\n content: \"\\e44d\"; }\n\n.fa-crutch::before {\n content: \"\\f7f7\"; }\n\n.fa-gas-pump-slash::before {\n content: \"\\f5f4\"; }\n\n.fa-cloud-arrow-up::before {\n content: \"\\f0ee\"; }\n\n.fa-cloud-upload::before {\n content: \"\\f0ee\"; }\n\n.fa-cloud-upload-alt::before {\n content: \"\\f0ee\"; }\n\n.fa-palette::before {\n content: \"\\f53f\"; }\n\n.fa-transporter-4::before {\n content: \"\\e2a5\"; }\n\n.fa-chart-mixed-up-circle-currency::before {\n content: \"\\e5d8\"; }\n\n.fa-objects-align-right::before {\n content: \"\\e3bf\"; }\n\n.fa-arrows-turn-right::before {\n content: \"\\e4c0\"; }\n\n.fa-vest::before {\n content: \"\\e085\"; }\n\n.fa-pig::before {\n content: \"\\f706\"; }\n\n.fa-inbox-full::before {\n content: \"\\e1ba\"; }\n\n.fa-circle-envelope::before {\n content: \"\\e10c\"; }\n\n.fa-envelope-circle::before {\n content: \"\\e10c\"; }\n\n.fa-triangle-person-digging::before {\n content: \"\\f85d\"; }\n\n.fa-construction::before {\n content: \"\\f85d\"; }\n\n.fa-ferry::before {\n content: \"\\e4ea\"; }\n\n.fa-bullseye-arrow::before {\n content: \"\\f648\"; }\n\n.fa-arrows-down-to-people::before {\n content: \"\\e4b9\"; }\n\n.fa-seedling::before {\n content: \"\\f4d8\"; }\n\n.fa-sprout::before {\n content: \"\\f4d8\"; }\n\n.fa-clock-seven::before {\n content: \"\\e350\"; }\n\n.fa-left-right::before {\n content: \"\\f337\"; }\n\n.fa-arrows-alt-h::before {\n content: \"\\f337\"; }\n\n.fa-boxes-packing::before {\n content: \"\\e4c7\"; }\n\n.fa-circle-arrow-left::before {\n content: \"\\f0a8\"; }\n\n.fa-arrow-circle-left::before {\n content: \"\\f0a8\"; }\n\n.fa-flashlight::before {\n content: \"\\f8b8\"; }\n\n.fa-file-jpg::before {\n content: \"\\e646\"; }\n\n.fa-group-arrows-rotate::before {\n content: \"\\e4f6\"; }\n\n.fa-bowl-food::before {\n content: \"\\e4c6\"; }\n\n.fa-square-9::before {\n content: \"\\e25e\"; }\n\n.fa-candy-cane::before {\n content: \"\\f786\"; }\n\n.fa-arrow-down-wide-short::before {\n content: \"\\f160\"; }\n\n.fa-sort-amount-asc::before {\n content: \"\\f160\"; }\n\n.fa-sort-amount-down::before {\n content: \"\\f160\"; }\n\n.fa-square-dollar::before {\n content: \"\\f2e9\"; }\n\n.fa-dollar-square::before {\n content: \"\\f2e9\"; }\n\n.fa-usd-square::before {\n content: \"\\f2e9\"; }\n\n.fa-phone-arrow-right::before {\n content: \"\\e5be\"; }\n\n.fa-hand-holding-seedling::before {\n content: \"\\f4bf\"; }\n\n.fa-message-check::before {\n content: \"\\f4a2\"; }\n\n.fa-comment-alt-check::before {\n content: \"\\f4a2\"; }\n\n.fa-cloud-bolt::before {\n content: \"\\f76c\"; }\n\n.fa-thunderstorm::before {\n content: \"\\f76c\"; }\n\n.fa-chart-line-up-down::before {\n content: \"\\e5d7\"; }\n\n.fa-text-slash::before {\n content: \"\\f87d\"; }\n\n.fa-remove-format::before {\n content: \"\\f87d\"; }\n\n.fa-watch::before {\n content: \"\\f2e1\"; }\n\n.fa-circle-down-left::before {\n content: \"\\e107\"; }\n\n.fa-text::before {\n content: \"\\f893\"; }\n\n.fa-projector::before {\n content: \"\\f8d6\"; }\n\n.fa-face-smile-wink::before {\n content: \"\\f4da\"; }\n\n.fa-smile-wink::before {\n content: \"\\f4da\"; }\n\n.fa-tombstone-blank::before {\n content: \"\\f721\"; }\n\n.fa-tombstone-alt::before {\n content: \"\\f721\"; }\n\n.fa-chess-king-piece::before {\n content: \"\\f440\"; }\n\n.fa-chess-king-alt::before {\n content: \"\\f440\"; }\n\n.fa-circle-6::before {\n content: \"\\e0f3\"; }\n\n.fa-waves-sine::before {\n content: \"\\e65d\"; }\n\n.fa-left::before {\n content: \"\\f355\"; }\n\n.fa-arrow-alt-left::before {\n content: \"\\f355\"; }\n\n.fa-file-word::before {\n content: \"\\f1c2\"; }\n\n.fa-file-powerpoint::before {\n content: \"\\f1c4\"; }\n\n.fa-square-down::before {\n content: \"\\f350\"; }\n\n.fa-arrow-alt-square-down::before {\n content: \"\\f350\"; }\n\n.fa-objects-align-center-vertical::before {\n content: \"\\e3bd\"; }\n\n.fa-arrows-left-right::before {\n content: \"\\f07e\"; }\n\n.fa-arrows-h::before {\n content: \"\\f07e\"; }\n\n.fa-house-lock::before {\n content: \"\\e510\"; }\n\n.fa-cloud-arrow-down::before {\n content: \"\\f0ed\"; }\n\n.fa-cloud-download::before {\n content: \"\\f0ed\"; }\n\n.fa-cloud-download-alt::before {\n content: \"\\f0ed\"; }\n\n.fa-wreath::before {\n content: \"\\f7e2\"; }\n\n.fa-children::before {\n content: \"\\e4e1\"; }\n\n.fa-meter-droplet::before {\n content: \"\\e1ea\"; }\n\n.fa-chalkboard::before {\n content: \"\\f51b\"; }\n\n.fa-blackboard::before {\n content: \"\\f51b\"; }\n\n.fa-user-large-slash::before {\n content: \"\\f4fa\"; }\n\n.fa-user-alt-slash::before {\n content: \"\\f4fa\"; }\n\n.fa-signal-strong::before {\n content: \"\\f68f\"; }\n\n.fa-signal-4::before {\n content: \"\\f68f\"; }\n\n.fa-lollipop::before {\n content: \"\\e424\"; }\n\n.fa-lollypop::before {\n content: \"\\e424\"; }\n\n.fa-list-tree::before {\n content: \"\\e1d2\"; }\n\n.fa-envelope-open::before {\n content: \"\\f2b6\"; }\n\n.fa-draw-circle::before {\n content: \"\\f5ed\"; }\n\n.fa-cat-space::before {\n content: \"\\e001\"; }\n\n.fa-handshake-simple-slash::before {\n content: \"\\e05f\"; }\n\n.fa-handshake-alt-slash::before {\n content: \"\\e05f\"; }\n\n.fa-rabbit-running::before {\n content: \"\\f709\"; }\n\n.fa-rabbit-fast::before {\n content: \"\\f709\"; }\n\n.fa-memo-pad::before {\n content: \"\\e1da\"; }\n\n.fa-mattress-pillow::before {\n content: \"\\e525\"; }\n\n.fa-alarm-plus::before {\n content: \"\\f844\"; }\n\n.fa-alicorn::before {\n content: \"\\f6b0\"; }\n\n.fa-comment-question::before {\n content: \"\\e14b\"; }\n\n.fa-gingerbread-man::before {\n content: \"\\f79d\"; }\n\n.fa-guarani-sign::before {\n content: \"\\e19a\"; }\n\n.fa-burger-fries::before {\n content: \"\\e0cd\"; }\n\n.fa-mug-tea::before {\n content: \"\\f875\"; }\n\n.fa-border-top::before {\n content: \"\\f855\"; }\n\n.fa-arrows-rotate::before {\n content: \"\\f021\"; }\n\n.fa-refresh::before {\n content: \"\\f021\"; }\n\n.fa-sync::before {\n content: \"\\f021\"; }\n\n.fa-circle-book-open::before {\n content: \"\\e0ff\"; }\n\n.fa-book-circle::before {\n content: \"\\e0ff\"; }\n\n.fa-arrows-to-dotted-line::before {\n content: \"\\e0a6\"; }\n\n.fa-fire-extinguisher::before {\n content: \"\\f134\"; }\n\n.fa-magnifying-glass-arrows-rotate::before {\n content: \"\\e65e\"; }\n\n.fa-garage-open::before {\n content: \"\\e00b\"; }\n\n.fa-shelves-empty::before {\n content: \"\\e246\"; }\n\n.fa-cruzeiro-sign::before {\n content: \"\\e152\"; }\n\n.fa-watch-apple::before {\n content: \"\\e2cb\"; }\n\n.fa-watch-calculator::before {\n content: \"\\f8f0\"; }\n\n.fa-list-dropdown::before {\n content: \"\\e1cf\"; }\n\n.fa-cabinet-filing::before {\n content: \"\\f64b\"; }\n\n.fa-burger-soda::before {\n content: \"\\f858\"; }\n\n.fa-square-arrow-up::before {\n content: \"\\f33c\"; }\n\n.fa-arrow-square-up::before {\n content: \"\\f33c\"; }\n\n.fa-greater-than-equal::before {\n content: \"\\f532\"; }\n\n.fa-pallet-box::before {\n content: \"\\e208\"; }\n\n.fa-face-confounded::before {\n content: \"\\e36c\"; }\n\n.fa-shield-halved::before {\n content: \"\\f3ed\"; }\n\n.fa-shield-alt::before {\n content: \"\\f3ed\"; }\n\n.fa-truck-plow::before {\n content: \"\\f7de\"; }\n\n.fa-book-atlas::before {\n content: \"\\f558\"; }\n\n.fa-atlas::before {\n content: \"\\f558\"; }\n\n.fa-virus::before {\n content: \"\\e074\"; }\n\n.fa-grid-round-2::before {\n content: \"\\e5db\"; }\n\n.fa-comment-middle-top::before {\n content: \"\\e14a\"; }\n\n.fa-wave::before {\n content: \"\\e65b\"; }\n\n.fa-envelope-circle-check::before {\n content: \"\\e4e8\"; }\n\n.fa-layer-group::before {\n content: \"\\f5fd\"; }\n\n.fa-restroom-simple::before {\n content: \"\\e23a\"; }\n\n.fa-arrows-to-dot::before {\n content: \"\\e4be\"; }\n\n.fa-border-outer::before {\n content: \"\\f851\"; }\n\n.fa-hashtag-lock::before {\n content: \"\\e415\"; }\n\n.fa-clock-two-thirty::before {\n content: \"\\e35b\"; }\n\n.fa-archway::before {\n content: \"\\f557\"; }\n\n.fa-heart-circle-check::before {\n content: \"\\e4fd\"; }\n\n.fa-house-chimney-crack::before {\n content: \"\\f6f1\"; }\n\n.fa-house-damage::before {\n content: \"\\f6f1\"; }\n\n.fa-file-zipper::before {\n content: \"\\f1c6\"; }\n\n.fa-file-archive::before {\n content: \"\\f1c6\"; }\n\n.fa-ticket-perforated::before {\n content: \"\\e63e\"; }\n\n.fa-heart-half::before {\n content: \"\\e1ab\"; }\n\n.fa-comment-check::before {\n content: \"\\f4ac\"; }\n\n.fa-square::before {\n content: \"\\f0c8\"; }\n\n.fa-memo::before {\n content: \"\\e1d8\"; }\n\n.fa-martini-glass-empty::before {\n content: \"\\f000\"; }\n\n.fa-glass-martini::before {\n content: \"\\f000\"; }\n\n.fa-couch::before {\n content: \"\\f4b8\"; }\n\n.fa-cedi-sign::before {\n content: \"\\e0df\"; }\n\n.fa-italic::before {\n content: \"\\f033\"; }\n\n.fa-glass-citrus::before {\n content: \"\\f869\"; }\n\n.fa-calendar-lines-pen::before {\n content: \"\\e472\"; }\n\n.fa-table-cells-column-lock::before {\n content: \"\\e678\"; }\n\n.fa-church::before {\n content: \"\\f51d\"; }\n\n.fa-person-snowmobiling::before {\n content: \"\\f7d1\"; }\n\n.fa-snowmobile::before {\n content: \"\\f7d1\"; }\n\n.fa-face-hushed::before {\n content: \"\\e37b\"; }\n\n.fa-comments-dollar::before {\n content: \"\\f653\"; }\n\n.fa-tickets-simple::before {\n content: \"\\e659\"; }\n\n.fa-pickaxe::before {\n content: \"\\e5bf\"; }\n\n.fa-link-simple-slash::before {\n content: \"\\e1ce\"; }\n\n.fa-democrat::before {\n content: \"\\f747\"; }\n\n.fa-face-confused::before {\n content: \"\\e36d\"; }\n\n.fa-pinball::before {\n content: \"\\e229\"; }\n\n.fa-z::before {\n content: \"\\5a\"; }\n\n.fa-person-skiing::before {\n content: \"\\f7c9\"; }\n\n.fa-skiing::before {\n content: \"\\f7c9\"; }\n\n.fa-deer::before {\n content: \"\\f78e\"; }\n\n.fa-input-pipe::before {\n content: \"\\e1be\"; }\n\n.fa-road-lock::before {\n content: \"\\e567\"; }\n\n.fa-a::before {\n content: \"\\41\"; }\n\n.fa-bookmark-slash::before {\n content: \"\\e0c2\"; }\n\n.fa-temperature-arrow-down::before {\n content: \"\\e03f\"; }\n\n.fa-temperature-down::before {\n content: \"\\e03f\"; }\n\n.fa-mace::before {\n content: \"\\f6f8\"; }\n\n.fa-feather-pointed::before {\n content: \"\\f56b\"; }\n\n.fa-feather-alt::before {\n content: \"\\f56b\"; }\n\n.fa-sausage::before {\n content: \"\\f820\"; }\n\n.fa-trash-can-clock::before {\n content: \"\\e2aa\"; }\n\n.fa-p::before {\n content: \"\\50\"; }\n\n.fa-broom-wide::before {\n content: \"\\e5d1\"; }\n\n.fa-snowflake::before {\n content: \"\\f2dc\"; }\n\n.fa-stomach::before {\n content: \"\\f623\"; }\n\n.fa-newspaper::before {\n content: \"\\f1ea\"; }\n\n.fa-rectangle-ad::before {\n content: \"\\f641\"; }\n\n.fa-ad::before {\n content: \"\\f641\"; }\n\n.fa-guitar-electric::before {\n content: \"\\f8be\"; }\n\n.fa-arrow-turn-down-right::before {\n content: \"\\e3d6\"; }\n\n.fa-moon-cloud::before {\n content: \"\\f754\"; }\n\n.fa-bread-slice-butter::before {\n content: \"\\e3e1\"; }\n\n.fa-circle-arrow-right::before {\n content: \"\\f0a9\"; }\n\n.fa-arrow-circle-right::before {\n content: \"\\f0a9\"; }\n\n.fa-user-group-crown::before {\n content: \"\\f6a5\"; }\n\n.fa-users-crown::before {\n content: \"\\f6a5\"; }\n\n.fa-circle-i::before {\n content: \"\\e111\"; }\n\n.fa-toilet-paper-check::before {\n content: \"\\e5b2\"; }\n\n.fa-filter-circle-xmark::before {\n content: \"\\e17b\"; }\n\n.fa-locust::before {\n content: \"\\e520\"; }\n\n.fa-sort::before {\n content: \"\\f0dc\"; }\n\n.fa-unsorted::before {\n content: \"\\f0dc\"; }\n\n.fa-list-ol::before {\n content: \"\\f0cb\"; }\n\n.fa-list-1-2::before {\n content: \"\\f0cb\"; }\n\n.fa-list-numeric::before {\n content: \"\\f0cb\"; }\n\n.fa-chart-waterfall::before {\n content: \"\\e0eb\"; }\n\n.fa-sparkle::before {\n content: \"\\e5d6\"; }\n\n.fa-face-party::before {\n content: \"\\e383\"; }\n\n.fa-kidneys::before {\n content: \"\\f5fb\"; }\n\n.fa-wifi-exclamation::before {\n content: \"\\e2cf\"; }\n\n.fa-chart-network::before {\n content: \"\\f78a\"; }\n\n.fa-person-dress-burst::before {\n content: \"\\e544\"; }\n\n.fa-dice-d4::before {\n content: \"\\f6d0\"; }\n\n.fa-money-check-dollar::before {\n content: \"\\f53d\"; }\n\n.fa-money-check-alt::before {\n content: \"\\f53d\"; }\n\n.fa-vector-square::before {\n content: \"\\f5cb\"; }\n\n.fa-bread-slice::before {\n content: \"\\f7ec\"; }\n\n.fa-language::before {\n content: \"\\f1ab\"; }\n\n.fa-wheat-awn-slash::before {\n content: \"\\e338\"; }\n\n.fa-face-kiss-wink-heart::before {\n content: \"\\f598\"; }\n\n.fa-kiss-wink-heart::before {\n content: \"\\f598\"; }\n\n.fa-dagger::before {\n content: \"\\f6cb\"; }\n\n.fa-podium::before {\n content: \"\\f680\"; }\n\n.fa-memo-circle-check::before {\n content: \"\\e1d9\"; }\n\n.fa-route-highway::before {\n content: \"\\f61a\"; }\n\n.fa-down-to-line::before {\n content: \"\\f34a\"; }\n\n.fa-arrow-alt-to-bottom::before {\n content: \"\\f34a\"; }\n\n.fa-filter::before {\n content: \"\\f0b0\"; }\n\n.fa-square-g::before {\n content: \"\\e271\"; }\n\n.fa-circle-phone::before {\n content: \"\\e11b\"; }\n\n.fa-phone-circle::before {\n content: \"\\e11b\"; }\n\n.fa-clipboard-prescription::before {\n content: \"\\f5e8\"; }\n\n.fa-user-nurse-hair::before {\n content: \"\\e45d\"; }\n\n.fa-question::before {\n content: \"\\3f\"; }\n\n.fa-file-signature::before {\n content: \"\\f573\"; }\n\n.fa-toggle-large-on::before {\n content: \"\\e5b1\"; }\n\n.fa-up-down-left-right::before {\n content: \"\\f0b2\"; }\n\n.fa-arrows-alt::before {\n content: \"\\f0b2\"; }\n\n.fa-dryer-heat::before {\n content: \"\\f862\"; }\n\n.fa-dryer-alt::before {\n content: \"\\f862\"; }\n\n.fa-house-chimney-user::before {\n content: \"\\e065\"; }\n\n.fa-hand-holding-heart::before {\n content: \"\\f4be\"; }\n\n.fa-arrow-up-small-big::before {\n content: \"\\f88f\"; }\n\n.fa-sort-size-up-alt::before {\n content: \"\\f88f\"; }\n\n.fa-train-track::before {\n content: \"\\e453\"; }\n\n.fa-puzzle-piece::before {\n content: \"\\f12e\"; }\n\n.fa-money-check::before {\n content: \"\\f53c\"; }\n\n.fa-star-half-stroke::before {\n content: \"\\f5c0\"; }\n\n.fa-star-half-alt::before {\n content: \"\\f5c0\"; }\n\n.fa-file-exclamation::before {\n content: \"\\f31a\"; }\n\n.fa-code::before {\n content: \"\\f121\"; }\n\n.fa-whiskey-glass::before {\n content: \"\\f7a0\"; }\n\n.fa-glass-whiskey::before {\n content: \"\\f7a0\"; }\n\n.fa-moon-stars::before {\n content: \"\\f755\"; }\n\n.fa-building-circle-exclamation::before {\n content: \"\\e4d3\"; }\n\n.fa-clothes-hanger::before {\n content: \"\\e136\"; }\n\n.fa-mobile-notch::before {\n content: \"\\e1ee\"; }\n\n.fa-mobile-iphone::before {\n content: \"\\e1ee\"; }\n\n.fa-magnifying-glass-chart::before {\n content: \"\\e522\"; }\n\n.fa-arrow-up-right-from-square::before {\n content: \"\\f08e\"; }\n\n.fa-external-link::before {\n content: \"\\f08e\"; }\n\n.fa-cubes-stacked::before {\n content: \"\\e4e6\"; }\n\n.fa-images-user::before {\n content: \"\\e1b9\"; }\n\n.fa-won-sign::before {\n content: \"\\f159\"; }\n\n.fa-krw::before {\n content: \"\\f159\"; }\n\n.fa-won::before {\n content: \"\\f159\"; }\n\n.fa-image-polaroid-user::before {\n content: \"\\e1b6\"; }\n\n.fa-virus-covid::before {\n content: \"\\e4a8\"; }\n\n.fa-square-ellipsis::before {\n content: \"\\e26e\"; }\n\n.fa-pie::before {\n content: \"\\f705\"; }\n\n.fa-chess-knight-piece::before {\n content: \"\\f442\"; }\n\n.fa-chess-knight-alt::before {\n content: \"\\f442\"; }\n\n.fa-austral-sign::before {\n content: \"\\e0a9\"; }\n\n.fa-cloud-plus::before {\n content: \"\\e35e\"; }\n\n.fa-f::before {\n content: \"\\46\"; }\n\n.fa-leaf::before {\n content: \"\\f06c\"; }\n\n.fa-bed-bunk::before {\n content: \"\\f8f8\"; }\n\n.fa-road::before {\n content: \"\\f018\"; }\n\n.fa-taxi::before {\n content: \"\\f1ba\"; }\n\n.fa-cab::before {\n content: \"\\f1ba\"; }\n\n.fa-person-circle-plus::before {\n content: \"\\e541\"; }\n\n.fa-chart-pie::before {\n content: \"\\f200\"; }\n\n.fa-pie-chart::before {\n content: \"\\f200\"; }\n\n.fa-bolt-lightning::before {\n content: \"\\e0b7\"; }\n\n.fa-clock-eight::before {\n content: \"\\e345\"; }\n\n.fa-sack-xmark::before {\n content: \"\\e56a\"; }\n\n.fa-file-xls::before {\n content: \"\\e64d\"; }\n\n.fa-file-excel::before {\n content: \"\\f1c3\"; }\n\n.fa-file-contract::before {\n content: \"\\f56c\"; }\n\n.fa-fish-fins::before {\n content: \"\\e4f2\"; }\n\n.fa-circle-q::before {\n content: \"\\e11e\"; }\n\n.fa-building-flag::before {\n content: \"\\e4d5\"; }\n\n.fa-face-grin-beam::before {\n content: \"\\f582\"; }\n\n.fa-grin-beam::before {\n content: \"\\f582\"; }\n\n.fa-object-ungroup::before {\n content: \"\\f248\"; }\n\n.fa-face-disguise::before {\n content: \"\\e370\"; }\n\n.fa-circle-arrow-down-right::before {\n content: \"\\e0fa\"; }\n\n.fa-alien-8bit::before {\n content: \"\\f8f6\"; }\n\n.fa-alien-monster::before {\n content: \"\\f8f6\"; }\n\n.fa-hand-point-ribbon::before {\n content: \"\\e1a6\"; }\n\n.fa-poop::before {\n content: \"\\f619\"; }\n\n.fa-object-exclude::before {\n content: \"\\e49c\"; }\n\n.fa-telescope::before {\n content: \"\\e03e\"; }\n\n.fa-location-pin::before {\n content: \"\\f041\"; }\n\n.fa-map-marker::before {\n content: \"\\f041\"; }\n\n.fa-square-list::before {\n content: \"\\e489\"; }\n\n.fa-kaaba::before {\n content: \"\\f66b\"; }\n\n.fa-toilet-paper::before {\n content: \"\\f71e\"; }\n\n.fa-helmet-safety::before {\n content: \"\\f807\"; }\n\n.fa-hard-hat::before {\n content: \"\\f807\"; }\n\n.fa-hat-hard::before {\n content: \"\\f807\"; }\n\n.fa-comment-code::before {\n content: \"\\e147\"; }\n\n.fa-sim-cards::before {\n content: \"\\e251\"; }\n\n.fa-starship::before {\n content: \"\\e039\"; }\n\n.fa-eject::before {\n content: \"\\f052\"; }\n\n.fa-circle-right::before {\n content: \"\\f35a\"; }\n\n.fa-arrow-alt-circle-right::before {\n content: \"\\f35a\"; }\n\n.fa-plane-circle-check::before {\n content: \"\\e555\"; }\n\n.fa-seal::before {\n content: \"\\e241\"; }\n\n.fa-user-cowboy::before {\n content: \"\\f8ea\"; }\n\n.fa-hexagon-vertical-nft::before {\n content: \"\\e505\"; }\n\n.fa-face-rolling-eyes::before {\n content: \"\\f5a5\"; }\n\n.fa-meh-rolling-eyes::before {\n content: \"\\f5a5\"; }\n\n.fa-bread-loaf::before {\n content: \"\\f7eb\"; }\n\n.fa-rings-wedding::before {\n content: \"\\f81b\"; }\n\n.fa-object-group::before {\n content: \"\\f247\"; }\n\n.fa-french-fries::before {\n content: \"\\f803\"; }\n\n.fa-chart-line::before {\n content: \"\\f201\"; }\n\n.fa-line-chart::before {\n content: \"\\f201\"; }\n\n.fa-calendar-arrow-down::before {\n content: \"\\e0d0\"; }\n\n.fa-calendar-download::before {\n content: \"\\e0d0\"; }\n\n.fa-send-back::before {\n content: \"\\f87e\"; }\n\n.fa-mask-ventilator::before {\n content: \"\\e524\"; }\n\n.fa-tickets::before {\n content: \"\\e658\"; }\n\n.fa-signature-lock::before {\n content: \"\\e3ca\"; }\n\n.fa-arrow-right::before {\n content: \"\\f061\"; }\n\n.fa-signs-post::before {\n content: \"\\f277\"; }\n\n.fa-map-signs::before {\n content: \"\\f277\"; }\n\n.fa-octagon-plus::before {\n content: \"\\f301\"; }\n\n.fa-plus-octagon::before {\n content: \"\\f301\"; }\n\n.fa-cash-register::before {\n content: \"\\f788\"; }\n\n.fa-person-circle-question::before {\n content: \"\\e542\"; }\n\n.fa-melon-slice::before {\n content: \"\\e311\"; }\n\n.fa-space-station-moon::before {\n content: \"\\e033\"; }\n\n.fa-message-smile::before {\n content: \"\\f4aa\"; }\n\n.fa-comment-alt-smile::before {\n content: \"\\f4aa\"; }\n\n.fa-cup-straw::before {\n content: \"\\e363\"; }\n\n.fa-left-from-line::before {\n content: \"\\f348\"; }\n\n.fa-arrow-alt-from-right::before {\n content: \"\\f348\"; }\n\n.fa-h::before {\n content: \"\\48\"; }\n\n.fa-basket-shopping-simple::before {\n content: \"\\e0af\"; }\n\n.fa-shopping-basket-alt::before {\n content: \"\\e0af\"; }\n\n.fa-hands-holding-heart::before {\n content: \"\\f4c3\"; }\n\n.fa-hands-heart::before {\n content: \"\\f4c3\"; }\n\n.fa-clock-nine::before {\n content: \"\\e34c\"; }\n\n.fa-hammer-brush::before {\n content: \"\\e620\"; }\n\n.fa-tarp::before {\n content: \"\\e57b\"; }\n\n.fa-face-sleepy::before {\n content: \"\\e38e\"; }\n\n.fa-hand-horns::before {\n content: \"\\e1a9\"; }\n\n.fa-screwdriver-wrench::before {\n content: \"\\f7d9\"; }\n\n.fa-tools::before {\n content: \"\\f7d9\"; }\n\n.fa-arrows-to-eye::before {\n content: \"\\e4bf\"; }\n\n.fa-circle-three-quarters::before {\n content: \"\\e125\"; }\n\n.fa-trophy-star::before {\n content: \"\\f2eb\"; }\n\n.fa-trophy-alt::before {\n content: \"\\f2eb\"; }\n\n.fa-plug-circle-bolt::before {\n content: \"\\e55b\"; }\n\n.fa-face-thermometer::before {\n content: \"\\e39a\"; }\n\n.fa-grid-round-4::before {\n content: \"\\e5dd\"; }\n\n.fa-sign-posts-wrench::before {\n content: \"\\e626\"; }\n\n.fa-shirt-running::before {\n content: \"\\e3c8\"; }\n\n.fa-book-circle-arrow-up::before {\n content: \"\\e0bd\"; }\n\n.fa-face-nauseated::before {\n content: \"\\e381\"; }\n\n.fa-heart::before {\n content: \"\\f004\"; }\n\n.fa-file-chart-pie::before {\n content: \"\\f65a\"; }\n\n.fa-mars-and-venus::before {\n content: \"\\f224\"; }\n\n.fa-house-user::before {\n content: \"\\e1b0\"; }\n\n.fa-home-user::before {\n content: \"\\e1b0\"; }\n\n.fa-circle-arrow-down-left::before {\n content: \"\\e0f9\"; }\n\n.fa-dumpster-fire::before {\n content: \"\\f794\"; }\n\n.fa-hexagon-minus::before {\n content: \"\\f307\"; }\n\n.fa-minus-hexagon::before {\n content: \"\\f307\"; }\n\n.fa-left-to-line::before {\n content: \"\\f34b\"; }\n\n.fa-arrow-alt-to-left::before {\n content: \"\\f34b\"; }\n\n.fa-house-crack::before {\n content: \"\\e3b1\"; }\n\n.fa-paw-simple::before {\n content: \"\\f701\"; }\n\n.fa-paw-alt::before {\n content: \"\\f701\"; }\n\n.fa-arrow-left-long-to-line::before {\n content: \"\\e3d4\"; }\n\n.fa-brackets-round::before {\n content: \"\\e0c5\"; }\n\n.fa-parentheses::before {\n content: \"\\e0c5\"; }\n\n.fa-martini-glass-citrus::before {\n content: \"\\f561\"; }\n\n.fa-cocktail::before {\n content: \"\\f561\"; }\n\n.fa-user-shakespeare::before {\n content: \"\\e2c2\"; }\n\n.fa-arrow-right-to-arc::before {\n content: \"\\e4b2\"; }\n\n.fa-face-surprise::before {\n content: \"\\f5c2\"; }\n\n.fa-surprise::before {\n content: \"\\f5c2\"; }\n\n.fa-bottle-water::before {\n content: \"\\e4c5\"; }\n\n.fa-circle-pause::before {\n content: \"\\f28b\"; }\n\n.fa-pause-circle::before {\n content: \"\\f28b\"; }\n\n.fa-gauge-circle-plus::before {\n content: \"\\e498\"; }\n\n.fa-folders::before {\n content: \"\\f660\"; }\n\n.fa-angel::before {\n content: \"\\f779\"; }\n\n.fa-value-absolute::before {\n content: \"\\f6a6\"; }\n\n.fa-rabbit::before {\n content: \"\\f708\"; }\n\n.fa-toilet-paper-slash::before {\n content: \"\\e072\"; }\n\n.fa-circle-euro::before {\n content: \"\\e5ce\"; }\n\n.fa-apple-whole::before {\n content: \"\\f5d1\"; }\n\n.fa-apple-alt::before {\n content: \"\\f5d1\"; }\n\n.fa-kitchen-set::before {\n content: \"\\e51a\"; }\n\n.fa-diamond-half::before {\n content: \"\\e5b7\"; }\n\n.fa-lock-keyhole::before {\n content: \"\\f30d\"; }\n\n.fa-lock-alt::before {\n content: \"\\f30d\"; }\n\n.fa-r::before {\n content: \"\\52\"; }\n\n.fa-temperature-quarter::before {\n content: \"\\f2ca\"; }\n\n.fa-temperature-1::before {\n content: \"\\f2ca\"; }\n\n.fa-thermometer-1::before {\n content: \"\\f2ca\"; }\n\n.fa-thermometer-quarter::before {\n content: \"\\f2ca\"; }\n\n.fa-square-info::before {\n content: \"\\f30f\"; }\n\n.fa-info-square::before {\n content: \"\\f30f\"; }\n\n.fa-wifi-slash::before {\n content: \"\\f6ac\"; }\n\n.fa-toilet-paper-xmark::before {\n content: \"\\e5b3\"; }\n\n.fa-hands-holding-dollar::before {\n content: \"\\f4c5\"; }\n\n.fa-hands-usd::before {\n content: \"\\f4c5\"; }\n\n.fa-cube::before {\n content: \"\\f1b2\"; }\n\n.fa-arrow-down-triangle-square::before {\n content: \"\\f888\"; }\n\n.fa-sort-shapes-down::before {\n content: \"\\f888\"; }\n\n.fa-bitcoin-sign::before {\n content: \"\\e0b4\"; }\n\n.fa-shutters::before {\n content: \"\\e449\"; }\n\n.fa-shield-dog::before {\n content: \"\\e573\"; }\n\n.fa-solar-panel::before {\n content: \"\\f5ba\"; }\n\n.fa-lock-open::before {\n content: \"\\f3c1\"; }\n\n.fa-table-tree::before {\n content: \"\\e293\"; }\n\n.fa-house-chimney-heart::before {\n content: \"\\e1b2\"; }\n\n.fa-tally-3::before {\n content: \"\\e296\"; }\n\n.fa-elevator::before {\n content: \"\\e16d\"; }\n\n.fa-money-bill-transfer::before {\n content: \"\\e528\"; }\n\n.fa-money-bill-trend-up::before {\n content: \"\\e529\"; }\n\n.fa-house-flood-water-circle-arrow-right::before {\n content: \"\\e50f\"; }\n\n.fa-square-poll-horizontal::before {\n content: \"\\f682\"; }\n\n.fa-poll-h::before {\n content: \"\\f682\"; }\n\n.fa-circle::before {\n content: \"\\f111\"; }\n\n.fa-left-to-bracket::before {\n content: \"\\e66d\"; }\n\n.fa-cart-circle-exclamation::before {\n content: \"\\e3f2\"; }\n\n.fa-sword::before {\n content: \"\\f71c\"; }\n\n.fa-backward-fast::before {\n content: \"\\f049\"; }\n\n.fa-fast-backward::before {\n content: \"\\f049\"; }\n\n.fa-recycle::before {\n content: \"\\f1b8\"; }\n\n.fa-user-astronaut::before {\n content: \"\\f4fb\"; }\n\n.fa-interrobang::before {\n content: \"\\e5ba\"; }\n\n.fa-plane-slash::before {\n content: \"\\e069\"; }\n\n.fa-circle-dashed::before {\n content: \"\\e105\"; }\n\n.fa-trademark::before {\n content: \"\\f25c\"; }\n\n.fa-basketball::before {\n content: \"\\f434\"; }\n\n.fa-basketball-ball::before {\n content: \"\\f434\"; }\n\n.fa-fork-knife::before {\n content: \"\\f2e6\"; }\n\n.fa-utensils-alt::before {\n content: \"\\f2e6\"; }\n\n.fa-satellite-dish::before {\n content: \"\\f7c0\"; }\n\n.fa-badge-check::before {\n content: \"\\f336\"; }\n\n.fa-circle-up::before {\n content: \"\\f35b\"; }\n\n.fa-arrow-alt-circle-up::before {\n content: \"\\f35b\"; }\n\n.fa-slider::before {\n content: \"\\e252\"; }\n\n.fa-mobile-screen-button::before {\n content: \"\\f3cd\"; }\n\n.fa-mobile-alt::before {\n content: \"\\f3cd\"; }\n\n.fa-clock-one-thirty::before {\n content: \"\\e34f\"; }\n\n.fa-inbox-out::before {\n content: \"\\f311\"; }\n\n.fa-inbox-arrow-up::before {\n content: \"\\f311\"; }\n\n.fa-cloud-slash::before {\n content: \"\\e137\"; }\n\n.fa-volume-high::before {\n content: \"\\f028\"; }\n\n.fa-volume-up::before {\n content: \"\\f028\"; }\n\n.fa-users-rays::before {\n content: \"\\e593\"; }\n\n.fa-wallet::before {\n content: \"\\f555\"; }\n\n.fa-octagon-check::before {\n content: \"\\e426\"; }\n\n.fa-flatbread-stuffed::before {\n content: \"\\e40c\"; }\n\n.fa-clipboard-check::before {\n content: \"\\f46c\"; }\n\n.fa-cart-circle-plus::before {\n content: \"\\e3f3\"; }\n\n.fa-truck-clock::before {\n content: \"\\f48c\"; }\n\n.fa-shipping-timed::before {\n content: \"\\f48c\"; }\n\n.fa-pool-8-ball::before {\n content: \"\\e3c5\"; }\n\n.fa-file-audio::before {\n content: \"\\f1c7\"; }\n\n.fa-turn-down-left::before {\n content: \"\\e331\"; }\n\n.fa-lock-hashtag::before {\n content: \"\\e423\"; }\n\n.fa-chart-radar::before {\n content: \"\\e0e7\"; }\n\n.fa-staff::before {\n content: \"\\f71b\"; }\n\n.fa-burger::before {\n content: \"\\f805\"; }\n\n.fa-hamburger::before {\n content: \"\\f805\"; }\n\n.fa-utility-pole::before {\n content: \"\\e2c3\"; }\n\n.fa-transporter-6::before {\n content: \"\\e2a7\"; }\n\n.fa-arrow-turn-left::before {\n content: \"\\e632\"; }\n\n.fa-wrench::before {\n content: \"\\f0ad\"; }\n\n.fa-bugs::before {\n content: \"\\e4d0\"; }\n\n.fa-vector-polygon::before {\n content: \"\\e2c7\"; }\n\n.fa-diagram-nested::before {\n content: \"\\e157\"; }\n\n.fa-rupee-sign::before {\n content: \"\\f156\"; }\n\n.fa-rupee::before {\n content: \"\\f156\"; }\n\n.fa-file-image::before {\n content: \"\\f1c5\"; }\n\n.fa-circle-question::before {\n content: \"\\f059\"; }\n\n.fa-question-circle::before {\n content: \"\\f059\"; }\n\n.fa-tickets-perforated::before {\n content: \"\\e63f\"; }\n\n.fa-image-user::before {\n content: \"\\e1b8\"; }\n\n.fa-buoy::before {\n content: \"\\e5b5\"; }\n\n.fa-plane-departure::before {\n content: \"\\f5b0\"; }\n\n.fa-handshake-slash::before {\n content: \"\\e060\"; }\n\n.fa-book-bookmark::before {\n content: \"\\e0bb\"; }\n\n.fa-border-center-h::before {\n content: \"\\f89c\"; }\n\n.fa-can-food::before {\n content: \"\\e3e6\"; }\n\n.fa-typewriter::before {\n content: \"\\f8e7\"; }\n\n.fa-arrow-right-from-arc::before {\n content: \"\\e4b1\"; }\n\n.fa-circle-k::before {\n content: \"\\e113\"; }\n\n.fa-face-hand-over-mouth::before {\n content: \"\\e378\"; }\n\n.fa-popcorn::before {\n content: \"\\f819\"; }\n\n.fa-house-water::before {\n content: \"\\f74f\"; }\n\n.fa-house-flood::before {\n content: \"\\f74f\"; }\n\n.fa-object-subtract::before {\n content: \"\\e49e\"; }\n\n.fa-code-branch::before {\n content: \"\\f126\"; }\n\n.fa-warehouse-full::before {\n content: \"\\f495\"; }\n\n.fa-warehouse-alt::before {\n content: \"\\f495\"; }\n\n.fa-hat-cowboy::before {\n content: \"\\f8c0\"; }\n\n.fa-bridge::before {\n content: \"\\e4c8\"; }\n\n.fa-phone-flip::before {\n content: \"\\f879\"; }\n\n.fa-phone-alt::before {\n content: \"\\f879\"; }\n\n.fa-arrow-down-from-dotted-line::before {\n content: \"\\e090\"; }\n\n.fa-file-doc::before {\n content: \"\\e5ed\"; }\n\n.fa-square-quarters::before {\n content: \"\\e44e\"; }\n\n.fa-truck-front::before {\n content: \"\\e2b7\"; }\n\n.fa-cat::before {\n content: \"\\f6be\"; }\n\n.fa-trash-xmark::before {\n content: \"\\e2b4\"; }\n\n.fa-circle-caret-left::before {\n content: \"\\f32e\"; }\n\n.fa-caret-circle-left::before {\n content: \"\\f32e\"; }\n\n.fa-files::before {\n content: \"\\e178\"; }\n\n.fa-anchor-circle-exclamation::before {\n content: \"\\e4ab\"; }\n\n.fa-face-clouds::before {\n content: \"\\e47d\"; }\n\n.fa-user-crown::before {\n content: \"\\f6a4\"; }\n\n.fa-basket-shopping-plus::before {\n content: \"\\e653\"; }\n\n.fa-truck-field::before {\n content: \"\\e58d\"; }\n\n.fa-route::before {\n content: \"\\f4d7\"; }\n\n.fa-cart-circle-check::before {\n content: \"\\e3f1\"; }\n\n.fa-clipboard-question::before {\n content: \"\\e4e3\"; }\n\n.fa-panorama::before {\n content: \"\\e209\"; }\n\n.fa-comment-medical::before {\n content: \"\\f7f5\"; }\n\n.fa-teeth-open::before {\n content: \"\\f62f\"; }\n\n.fa-user-tie-hair-long::before {\n content: \"\\e460\"; }\n\n.fa-file-circle-minus::before {\n content: \"\\e4ed\"; }\n\n.fa-head-side-medical::before {\n content: \"\\f809\"; }\n\n.fa-arrow-turn-right::before {\n content: \"\\e635\"; }\n\n.fa-tags::before {\n content: \"\\f02c\"; }\n\n.fa-wine-glass::before {\n content: \"\\f4e3\"; }\n\n.fa-forward-fast::before {\n content: \"\\f050\"; }\n\n.fa-fast-forward::before {\n content: \"\\f050\"; }\n\n.fa-face-meh-blank::before {\n content: \"\\f5a4\"; }\n\n.fa-meh-blank::before {\n content: \"\\f5a4\"; }\n\n.fa-user-robot::before {\n content: \"\\e04b\"; }\n\n.fa-square-parking::before {\n content: \"\\f540\"; }\n\n.fa-parking::before {\n content: \"\\f540\"; }\n\n.fa-card-diamond::before {\n content: \"\\e3ea\"; }\n\n.fa-face-zipper::before {\n content: \"\\e3a5\"; }\n\n.fa-face-raised-eyebrow::before {\n content: \"\\e388\"; }\n\n.fa-house-signal::before {\n content: \"\\e012\"; }\n\n.fa-square-chevron-up::before {\n content: \"\\f32c\"; }\n\n.fa-chevron-square-up::before {\n content: \"\\f32c\"; }\n\n.fa-bars-progress::before {\n content: \"\\f828\"; }\n\n.fa-tasks-alt::before {\n content: \"\\f828\"; }\n\n.fa-faucet-drip::before {\n content: \"\\e006\"; }\n\n.fa-arrows-to-line::before {\n content: \"\\e0a7\"; }\n\n.fa-dolphin::before {\n content: \"\\e168\"; }\n\n.fa-arrow-up-right::before {\n content: \"\\e09f\"; }\n\n.fa-circle-r::before {\n content: \"\\e120\"; }\n\n.fa-cart-flatbed::before {\n content: \"\\f474\"; }\n\n.fa-dolly-flatbed::before {\n content: \"\\f474\"; }\n\n.fa-ban-smoking::before {\n content: \"\\f54d\"; }\n\n.fa-smoking-ban::before {\n content: \"\\f54d\"; }\n\n.fa-circle-sort-up::before {\n content: \"\\e032\"; }\n\n.fa-sort-circle-up::before {\n content: \"\\e032\"; }\n\n.fa-terminal::before {\n content: \"\\f120\"; }\n\n.fa-mobile-button::before {\n content: \"\\f10b\"; }\n\n.fa-house-medical-flag::before {\n content: \"\\e514\"; }\n\n.fa-basket-shopping::before {\n content: \"\\f291\"; }\n\n.fa-shopping-basket::before {\n content: \"\\f291\"; }\n\n.fa-tape::before {\n content: \"\\f4db\"; }\n\n.fa-chestnut::before {\n content: \"\\e3f6\"; }\n\n.fa-bus-simple::before {\n content: \"\\f55e\"; }\n\n.fa-bus-alt::before {\n content: \"\\f55e\"; }\n\n.fa-eye::before {\n content: \"\\f06e\"; }\n\n.fa-face-sad-cry::before {\n content: \"\\f5b3\"; }\n\n.fa-sad-cry::before {\n content: \"\\f5b3\"; }\n\n.fa-heat::before {\n content: \"\\e00c\"; }\n\n.fa-ticket-airline::before {\n content: \"\\e29a\"; }\n\n.fa-ticket-perforated-plane::before {\n content: \"\\e29a\"; }\n\n.fa-ticket-plane::before {\n content: \"\\e29a\"; }\n\n.fa-boot-heeled::before {\n content: \"\\e33f\"; }\n\n.fa-arrows-minimize::before {\n content: \"\\e0a5\"; }\n\n.fa-compress-arrows::before {\n content: \"\\e0a5\"; }\n\n.fa-audio-description::before {\n content: \"\\f29e\"; }\n\n.fa-person-military-to-person::before {\n content: \"\\e54c\"; }\n\n.fa-file-shield::before {\n content: \"\\e4f0\"; }\n\n.fa-hexagon::before {\n content: \"\\f312\"; }\n\n.fa-manhole::before {\n content: \"\\e1d6\"; }\n\n.fa-user-slash::before {\n content: \"\\f506\"; }\n\n.fa-pen::before {\n content: \"\\f304\"; }\n\n.fa-tower-observation::before {\n content: \"\\e586\"; }\n\n.fa-floppy-disks::before {\n content: \"\\e183\"; }\n\n.fa-toilet-paper-blank-under::before {\n content: \"\\e29f\"; }\n\n.fa-toilet-paper-reverse-alt::before {\n content: \"\\e29f\"; }\n\n.fa-file-code::before {\n content: \"\\f1c9\"; }\n\n.fa-signal::before {\n content: \"\\f012\"; }\n\n.fa-signal-5::before {\n content: \"\\f012\"; }\n\n.fa-signal-perfect::before {\n content: \"\\f012\"; }\n\n.fa-pump::before {\n content: \"\\e442\"; }\n\n.fa-bus::before {\n content: \"\\f207\"; }\n\n.fa-heart-circle-xmark::before {\n content: \"\\e501\"; }\n\n.fa-arrow-up-left-from-circle::before {\n content: \"\\e09e\"; }\n\n.fa-house-chimney::before {\n content: \"\\e3af\"; }\n\n.fa-home-lg::before {\n content: \"\\e3af\"; }\n\n.fa-window-maximize::before {\n content: \"\\f2d0\"; }\n\n.fa-dryer::before {\n content: \"\\f861\"; }\n\n.fa-face-frown::before {\n content: \"\\f119\"; }\n\n.fa-frown::before {\n content: \"\\f119\"; }\n\n.fa-chess-bishop-piece::before {\n content: \"\\f43b\"; }\n\n.fa-chess-bishop-alt::before {\n content: \"\\f43b\"; }\n\n.fa-shirt-tank-top::before {\n content: \"\\e3c9\"; }\n\n.fa-diploma::before {\n content: \"\\f5ea\"; }\n\n.fa-scroll-ribbon::before {\n content: \"\\f5ea\"; }\n\n.fa-screencast::before {\n content: \"\\e23e\"; }\n\n.fa-walker::before {\n content: \"\\f831\"; }\n\n.fa-prescription::before {\n content: \"\\f5b1\"; }\n\n.fa-shop::before {\n content: \"\\f54f\"; }\n\n.fa-store-alt::before {\n content: \"\\f54f\"; }\n\n.fa-floppy-disk::before {\n content: \"\\f0c7\"; }\n\n.fa-save::before {\n content: \"\\f0c7\"; }\n\n.fa-vihara::before {\n content: \"\\f6a7\"; }\n\n.fa-face-kiss-closed-eyes::before {\n content: \"\\e37d\"; }\n\n.fa-scale-unbalanced::before {\n content: \"\\f515\"; }\n\n.fa-balance-scale-left::before {\n content: \"\\f515\"; }\n\n.fa-file-user::before {\n content: \"\\f65c\"; }\n\n.fa-user-police-tie::before {\n content: \"\\e334\"; }\n\n.fa-face-tongue-money::before {\n content: \"\\e39d\"; }\n\n.fa-tennis-ball::before {\n content: \"\\f45e\"; }\n\n.fa-square-l::before {\n content: \"\\e275\"; }\n\n.fa-sort-up::before {\n content: \"\\f0de\"; }\n\n.fa-sort-asc::before {\n content: \"\\f0de\"; }\n\n.fa-calendar-arrow-up::before {\n content: \"\\e0d1\"; }\n\n.fa-calendar-upload::before {\n content: \"\\e0d1\"; }\n\n.fa-comment-dots::before {\n content: \"\\f4ad\"; }\n\n.fa-commenting::before {\n content: \"\\f4ad\"; }\n\n.fa-plant-wilt::before {\n content: \"\\e5aa\"; }\n\n.fa-scarf::before {\n content: \"\\f7c1\"; }\n\n.fa-album-circle-plus::before {\n content: \"\\e48c\"; }\n\n.fa-user-nurse-hair-long::before {\n content: \"\\e45e\"; }\n\n.fa-diamond::before {\n content: \"\\f219\"; }\n\n.fa-square-left::before {\n content: \"\\f351\"; }\n\n.fa-arrow-alt-square-left::before {\n content: \"\\f351\"; }\n\n.fa-face-grin-squint::before {\n content: \"\\f585\"; }\n\n.fa-grin-squint::before {\n content: \"\\f585\"; }\n\n.fa-circle-ellipsis-vertical::before {\n content: \"\\e10b\"; }\n\n.fa-hand-holding-dollar::before {\n content: \"\\f4c0\"; }\n\n.fa-hand-holding-usd::before {\n content: \"\\f4c0\"; }\n\n.fa-grid-dividers::before {\n content: \"\\e3ad\"; }\n\n.fa-bacterium::before {\n content: \"\\e05a\"; }\n\n.fa-hand-pointer::before {\n content: \"\\f25a\"; }\n\n.fa-drum-steelpan::before {\n content: \"\\f56a\"; }\n\n.fa-hand-scissors::before {\n content: \"\\f257\"; }\n\n.fa-hands-praying::before {\n content: \"\\f684\"; }\n\n.fa-praying-hands::before {\n content: \"\\f684\"; }\n\n.fa-face-pensive::before {\n content: \"\\e384\"; }\n\n.fa-user-music::before {\n content: \"\\f8eb\"; }\n\n.fa-arrow-rotate-right::before {\n content: \"\\f01e\"; }\n\n.fa-arrow-right-rotate::before {\n content: \"\\f01e\"; }\n\n.fa-arrow-rotate-forward::before {\n content: \"\\f01e\"; }\n\n.fa-redo::before {\n content: \"\\f01e\"; }\n\n.fa-messages-dollar::before {\n content: \"\\f652\"; }\n\n.fa-comments-alt-dollar::before {\n content: \"\\f652\"; }\n\n.fa-sensor-on::before {\n content: \"\\e02b\"; }\n\n.fa-balloon::before {\n content: \"\\e2e3\"; }\n\n.fa-biohazard::before {\n content: \"\\f780\"; }\n\n.fa-chess-queen-piece::before {\n content: \"\\f446\"; }\n\n.fa-chess-queen-alt::before {\n content: \"\\f446\"; }\n\n.fa-location-crosshairs::before {\n content: \"\\f601\"; }\n\n.fa-location::before {\n content: \"\\f601\"; }\n\n.fa-mars-double::before {\n content: \"\\f227\"; }\n\n.fa-left-from-bracket::before {\n content: \"\\e66c\"; }\n\n.fa-house-person-leave::before {\n content: \"\\e00f\"; }\n\n.fa-house-leave::before {\n content: \"\\e00f\"; }\n\n.fa-house-person-depart::before {\n content: \"\\e00f\"; }\n\n.fa-ruler-triangle::before {\n content: \"\\f61c\"; }\n\n.fa-card-club::before {\n content: \"\\e3e9\"; }\n\n.fa-child-dress::before {\n content: \"\\e59c\"; }\n\n.fa-users-between-lines::before {\n content: \"\\e591\"; }\n\n.fa-lungs-virus::before {\n content: \"\\e067\"; }\n\n.fa-spinner-third::before {\n content: \"\\f3f4\"; }\n\n.fa-face-grin-tears::before {\n content: \"\\f588\"; }\n\n.fa-grin-tears::before {\n content: \"\\f588\"; }\n\n.fa-phone::before {\n content: \"\\f095\"; }\n\n.fa-computer-mouse-scrollwheel::before {\n content: \"\\f8cd\"; }\n\n.fa-mouse-alt::before {\n content: \"\\f8cd\"; }\n\n.fa-calendar-xmark::before {\n content: \"\\f273\"; }\n\n.fa-calendar-times::before {\n content: \"\\f273\"; }\n\n.fa-child-reaching::before {\n content: \"\\e59d\"; }\n\n.fa-table-layout::before {\n content: \"\\e290\"; }\n\n.fa-narwhal::before {\n content: \"\\f6fe\"; }\n\n.fa-ramp-loading::before {\n content: \"\\f4d4\"; }\n\n.fa-calendar-circle-plus::before {\n content: \"\\e470\"; }\n\n.fa-toothbrush::before {\n content: \"\\f635\"; }\n\n.fa-border-inner::before {\n content: \"\\f84e\"; }\n\n.fa-paw-claws::before {\n content: \"\\f702\"; }\n\n.fa-kiwi-fruit::before {\n content: \"\\e30c\"; }\n\n.fa-traffic-light-slow::before {\n content: \"\\f639\"; }\n\n.fa-rectangle-code::before {\n content: \"\\e322\"; }\n\n.fa-head-side-virus::before {\n content: \"\\e064\"; }\n\n.fa-keyboard-brightness::before {\n content: \"\\e1c0\"; }\n\n.fa-books-medical::before {\n content: \"\\f7e8\"; }\n\n.fa-lightbulb-slash::before {\n content: \"\\f673\"; }\n\n.fa-house-blank::before {\n content: \"\\e487\"; }\n\n.fa-home-blank::before {\n content: \"\\e487\"; }\n\n.fa-square-5::before {\n content: \"\\e25a\"; }\n\n.fa-square-heart::before {\n content: \"\\f4c8\"; }\n\n.fa-heart-square::before {\n content: \"\\f4c8\"; }\n\n.fa-puzzle::before {\n content: \"\\e443\"; }\n\n.fa-user-gear::before {\n content: \"\\f4fe\"; }\n\n.fa-user-cog::before {\n content: \"\\f4fe\"; }\n\n.fa-pipe-circle-check::before {\n content: \"\\e436\"; }\n\n.fa-arrow-up-1-9::before {\n content: \"\\f163\"; }\n\n.fa-sort-numeric-up::before {\n content: \"\\f163\"; }\n\n.fa-octagon-exclamation::before {\n content: \"\\e204\"; }\n\n.fa-dial-low::before {\n content: \"\\e15d\"; }\n\n.fa-door-closed::before {\n content: \"\\f52a\"; }\n\n.fa-laptop-mobile::before {\n content: \"\\f87a\"; }\n\n.fa-phone-laptop::before {\n content: \"\\f87a\"; }\n\n.fa-conveyor-belt-boxes::before {\n content: \"\\f46f\"; }\n\n.fa-conveyor-belt-alt::before {\n content: \"\\f46f\"; }\n\n.fa-shield-virus::before {\n content: \"\\e06c\"; }\n\n.fa-starfighter-twin-ion-engine-advanced::before {\n content: \"\\e28e\"; }\n\n.fa-starfighter-alt-advanced::before {\n content: \"\\e28e\"; }\n\n.fa-dice-six::before {\n content: \"\\f526\"; }\n\n.fa-starfighter-twin-ion-engine::before {\n content: \"\\e038\"; }\n\n.fa-starfighter-alt::before {\n content: \"\\e038\"; }\n\n.fa-rocket-launch::before {\n content: \"\\e027\"; }\n\n.fa-mosquito-net::before {\n content: \"\\e52c\"; }\n\n.fa-vent-damper::before {\n content: \"\\e465\"; }\n\n.fa-bridge-water::before {\n content: \"\\e4ce\"; }\n\n.fa-ban-bug::before {\n content: \"\\f7f9\"; }\n\n.fa-debug::before {\n content: \"\\f7f9\"; }\n\n.fa-person-booth::before {\n content: \"\\f756\"; }\n\n.fa-text-width::before {\n content: \"\\f035\"; }\n\n.fa-garage-car::before {\n content: \"\\e00a\"; }\n\n.fa-square-kanban::before {\n content: \"\\e488\"; }\n\n.fa-hat-wizard::before {\n content: \"\\f6e8\"; }\n\n.fa-chart-kanban::before {\n content: \"\\e64f\"; }\n\n.fa-pen-fancy::before {\n content: \"\\f5ac\"; }\n\n.fa-coffee-pot::before {\n content: \"\\e002\"; }\n\n.fa-mouse-field::before {\n content: \"\\e5a8\"; }\n\n.fa-person-digging::before {\n content: \"\\f85e\"; }\n\n.fa-digging::before {\n content: \"\\f85e\"; }\n\n.fa-shower-down::before {\n content: \"\\e24d\"; }\n\n.fa-shower-alt::before {\n content: \"\\e24d\"; }\n\n.fa-box-circle-check::before {\n content: \"\\e0c4\"; }\n\n.fa-brightness::before {\n content: \"\\e0c9\"; }\n\n.fa-car-side-bolt::before {\n content: \"\\e344\"; }\n\n.fa-file-xml::before {\n content: \"\\e654\"; }\n\n.fa-ornament::before {\n content: \"\\f7b8\"; }\n\n.fa-phone-arrow-down-left::before {\n content: \"\\e223\"; }\n\n.fa-phone-arrow-down::before {\n content: \"\\e223\"; }\n\n.fa-phone-incoming::before {\n content: \"\\e223\"; }\n\n.fa-cloud-word::before {\n content: \"\\e138\"; }\n\n.fa-hand-fingers-crossed::before {\n content: \"\\e1a3\"; }\n\n.fa-trash::before {\n content: \"\\f1f8\"; }\n\n.fa-gauge-simple::before {\n content: \"\\f629\"; }\n\n.fa-gauge-simple-med::before {\n content: \"\\f629\"; }\n\n.fa-tachometer-average::before {\n content: \"\\f629\"; }\n\n.fa-arrow-down-small-big::before {\n content: \"\\f88d\"; }\n\n.fa-sort-size-down-alt::before {\n content: \"\\f88d\"; }\n\n.fa-book-medical::before {\n content: \"\\f7e6\"; }\n\n.fa-face-melting::before {\n content: \"\\e483\"; }\n\n.fa-poo::before {\n content: \"\\f2fe\"; }\n\n.fa-pen-clip-slash::before {\n content: \"\\e20f\"; }\n\n.fa-pen-alt-slash::before {\n content: \"\\e20f\"; }\n\n.fa-quote-right::before {\n content: \"\\f10e\"; }\n\n.fa-quote-right-alt::before {\n content: \"\\f10e\"; }\n\n.fa-scroll-old::before {\n content: \"\\f70f\"; }\n\n.fa-guitars::before {\n content: \"\\f8bf\"; }\n\n.fa-phone-xmark::before {\n content: \"\\e227\"; }\n\n.fa-hose::before {\n content: \"\\e419\"; }\n\n.fa-clock-six::before {\n content: \"\\e352\"; }\n\n.fa-shirt::before {\n content: \"\\f553\"; }\n\n.fa-t-shirt::before {\n content: \"\\f553\"; }\n\n.fa-tshirt::before {\n content: \"\\f553\"; }\n\n.fa-billboard::before {\n content: \"\\e5cd\"; }\n\n.fa-square-r::before {\n content: \"\\e27c\"; }\n\n.fa-cubes::before {\n content: \"\\f1b3\"; }\n\n.fa-envelope-open-dollar::before {\n content: \"\\f657\"; }\n\n.fa-divide::before {\n content: \"\\f529\"; }\n\n.fa-sun-cloud::before {\n content: \"\\f763\"; }\n\n.fa-lamp-floor::before {\n content: \"\\e015\"; }\n\n.fa-square-7::before {\n content: \"\\e25c\"; }\n\n.fa-tenge-sign::before {\n content: \"\\f7d7\"; }\n\n.fa-tenge::before {\n content: \"\\f7d7\"; }\n\n.fa-headphones::before {\n content: \"\\f025\"; }\n\n.fa-hands-holding::before {\n content: \"\\f4c2\"; }\n\n.fa-campfire::before {\n content: \"\\f6ba\"; }\n\n.fa-circle-ampersand::before {\n content: \"\\e0f8\"; }\n\n.fa-snowflakes::before {\n content: \"\\f7cf\"; }\n\n.fa-hands-clapping::before {\n content: \"\\e1a8\"; }\n\n.fa-republican::before {\n content: \"\\f75e\"; }\n\n.fa-leaf-maple::before {\n content: \"\\f6f6\"; }\n\n.fa-arrow-left::before {\n content: \"\\f060\"; }\n\n.fa-person-circle-xmark::before {\n content: \"\\e543\"; }\n\n.fa-ruler::before {\n content: \"\\f545\"; }\n\n.fa-arrow-left-from-bracket::before {\n content: \"\\e668\"; }\n\n.fa-cup-straw-swoosh::before {\n content: \"\\e364\"; }\n\n.fa-temperature-sun::before {\n content: \"\\f76a\"; }\n\n.fa-temperature-hot::before {\n content: \"\\f76a\"; }\n\n.fa-align-left::before {\n content: \"\\f036\"; }\n\n.fa-dice-d6::before {\n content: \"\\f6d1\"; }\n\n.fa-restroom::before {\n content: \"\\f7bd\"; }\n\n.fa-high-definition::before {\n content: \"\\e1ae\"; }\n\n.fa-rectangle-hd::before {\n content: \"\\e1ae\"; }\n\n.fa-j::before {\n content: \"\\4a\"; }\n\n.fa-galaxy::before {\n content: \"\\e008\"; }\n\n.fa-users-viewfinder::before {\n content: \"\\e595\"; }\n\n.fa-file-video::before {\n content: \"\\f1c8\"; }\n\n.fa-cherries::before {\n content: \"\\e0ec\"; }\n\n.fa-up-right-from-square::before {\n content: \"\\f35d\"; }\n\n.fa-external-link-alt::before {\n content: \"\\f35d\"; }\n\n.fa-circle-sort::before {\n content: \"\\e030\"; }\n\n.fa-sort-circle::before {\n content: \"\\e030\"; }\n\n.fa-table-cells::before {\n content: \"\\f00a\"; }\n\n.fa-th::before {\n content: \"\\f00a\"; }\n\n.fa-bag-shopping-minus::before {\n content: \"\\e650\"; }\n\n.fa-file-pdf::before {\n content: \"\\f1c1\"; }\n\n.fa-siren::before {\n content: \"\\e02d\"; }\n\n.fa-arrow-up-to-dotted-line::before {\n content: \"\\e0a1\"; }\n\n.fa-image-landscape::before {\n content: \"\\e1b5\"; }\n\n.fa-landscape::before {\n content: \"\\e1b5\"; }\n\n.fa-tank-water::before {\n content: \"\\e452\"; }\n\n.fa-curling-stone::before {\n content: \"\\f44a\"; }\n\n.fa-curling::before {\n content: \"\\f44a\"; }\n\n.fa-gamepad-modern::before {\n content: \"\\e5a2\"; }\n\n.fa-gamepad-alt::before {\n content: \"\\e5a2\"; }\n\n.fa-messages-question::before {\n content: \"\\e1e7\"; }\n\n.fa-book-bible::before {\n content: \"\\f647\"; }\n\n.fa-bible::before {\n content: \"\\f647\"; }\n\n.fa-o::before {\n content: \"\\4f\"; }\n\n.fa-suitcase-medical::before {\n content: \"\\f0fa\"; }\n\n.fa-medkit::before {\n content: \"\\f0fa\"; }\n\n.fa-briefcase-arrow-right::before {\n content: \"\\e2f2\"; }\n\n.fa-expand-wide::before {\n content: \"\\f320\"; }\n\n.fa-clock-eleven-thirty::before {\n content: \"\\e348\"; }\n\n.fa-rv::before {\n content: \"\\f7be\"; }\n\n.fa-user-secret::before {\n content: \"\\f21b\"; }\n\n.fa-otter::before {\n content: \"\\f700\"; }\n\n.fa-dreidel::before {\n content: \"\\f792\"; }\n\n.fa-person-dress::before {\n content: \"\\f182\"; }\n\n.fa-female::before {\n content: \"\\f182\"; }\n\n.fa-comment-dollar::before {\n content: \"\\f651\"; }\n\n.fa-business-time::before {\n content: \"\\f64a\"; }\n\n.fa-briefcase-clock::before {\n content: \"\\f64a\"; }\n\n.fa-flower-tulip::before {\n content: \"\\f801\"; }\n\n.fa-people-pants-simple::before {\n content: \"\\e21a\"; }\n\n.fa-cloud-drizzle::before {\n content: \"\\f738\"; }\n\n.fa-table-cells-large::before {\n content: \"\\f009\"; }\n\n.fa-th-large::before {\n content: \"\\f009\"; }\n\n.fa-book-tanakh::before {\n content: \"\\f827\"; }\n\n.fa-tanakh::before {\n content: \"\\f827\"; }\n\n.fa-solar-system::before {\n content: \"\\e02f\"; }\n\n.fa-seal-question::before {\n content: \"\\e243\"; }\n\n.fa-phone-volume::before {\n content: \"\\f2a0\"; }\n\n.fa-volume-control-phone::before {\n content: \"\\f2a0\"; }\n\n.fa-disc-drive::before {\n content: \"\\f8b5\"; }\n\n.fa-hat-cowboy-side::before {\n content: \"\\f8c1\"; }\n\n.fa-table-rows::before {\n content: \"\\e292\"; }\n\n.fa-rows::before {\n content: \"\\e292\"; }\n\n.fa-location-exclamation::before {\n content: \"\\f608\"; }\n\n.fa-map-marker-exclamation::before {\n content: \"\\f608\"; }\n\n.fa-face-fearful::before {\n content: \"\\e375\"; }\n\n.fa-clipboard-user::before {\n content: \"\\f7f3\"; }\n\n.fa-bus-school::before {\n content: \"\\f5dd\"; }\n\n.fa-film-slash::before {\n content: \"\\e179\"; }\n\n.fa-square-arrow-down-right::before {\n content: \"\\e262\"; }\n\n.fa-book-sparkles::before {\n content: \"\\f6b8\"; }\n\n.fa-book-spells::before {\n content: \"\\f6b8\"; }\n\n.fa-washing-machine::before {\n content: \"\\f898\"; }\n\n.fa-washer::before {\n content: \"\\f898\"; }\n\n.fa-child::before {\n content: \"\\f1ae\"; }\n\n.fa-lira-sign::before {\n content: \"\\f195\"; }\n\n.fa-user-visor::before {\n content: \"\\e04c\"; }\n\n.fa-file-plus-minus::before {\n content: \"\\e177\"; }\n\n.fa-chess-clock-flip::before {\n content: \"\\f43e\"; }\n\n.fa-chess-clock-alt::before {\n content: \"\\f43e\"; }\n\n.fa-satellite::before {\n content: \"\\f7bf\"; }\n\n.fa-truck-fire::before {\n content: \"\\e65a\"; }\n\n.fa-plane-lock::before {\n content: \"\\e558\"; }\n\n.fa-steering-wheel::before {\n content: \"\\f622\"; }\n\n.fa-tag::before {\n content: \"\\f02b\"; }\n\n.fa-stretcher::before {\n content: \"\\f825\"; }\n\n.fa-book-section::before {\n content: \"\\e0c1\"; }\n\n.fa-book-law::before {\n content: \"\\e0c1\"; }\n\n.fa-inboxes::before {\n content: \"\\e1bb\"; }\n\n.fa-coffee-bean::before {\n content: \"\\e13e\"; }\n\n.fa-circle-yen::before {\n content: \"\\e5d0\"; }\n\n.fa-brackets-curly::before {\n content: \"\\f7ea\"; }\n\n.fa-ellipsis-stroke-vertical::before {\n content: \"\\f39c\"; }\n\n.fa-ellipsis-v-alt::before {\n content: \"\\f39c\"; }\n\n.fa-comment::before {\n content: \"\\f075\"; }\n\n.fa-square-1::before {\n content: \"\\e256\"; }\n\n.fa-cake-candles::before {\n content: \"\\f1fd\"; }\n\n.fa-birthday-cake::before {\n content: \"\\f1fd\"; }\n\n.fa-cake::before {\n content: \"\\f1fd\"; }\n\n.fa-head-side::before {\n content: \"\\f6e9\"; }\n\n.fa-truck-ladder::before {\n content: \"\\e657\"; }\n\n.fa-envelope::before {\n content: \"\\f0e0\"; }\n\n.fa-dolly-empty::before {\n content: \"\\f473\"; }\n\n.fa-face-tissue::before {\n content: \"\\e39c\"; }\n\n.fa-angles-up::before {\n content: \"\\f102\"; }\n\n.fa-angle-double-up::before {\n content: \"\\f102\"; }\n\n.fa-bin-recycle::before {\n content: \"\\e5f7\"; }\n\n.fa-paperclip::before {\n content: \"\\f0c6\"; }\n\n.fa-chart-line-down::before {\n content: \"\\f64d\"; }\n\n.fa-arrow-right-to-city::before {\n content: \"\\e4b3\"; }\n\n.fa-lock-a::before {\n content: \"\\e422\"; }\n\n.fa-ribbon::before {\n content: \"\\f4d6\"; }\n\n.fa-lungs::before {\n content: \"\\f604\"; }\n\n.fa-person-pinball::before {\n content: \"\\e21d\"; }\n\n.fa-arrow-up-9-1::before {\n content: \"\\f887\"; }\n\n.fa-sort-numeric-up-alt::before {\n content: \"\\f887\"; }\n\n.fa-apple-core::before {\n content: \"\\e08f\"; }\n\n.fa-circle-y::before {\n content: \"\\e12f\"; }\n\n.fa-h6::before {\n content: \"\\e413\"; }\n\n.fa-litecoin-sign::before {\n content: \"\\e1d3\"; }\n\n.fa-bottle-baby::before {\n content: \"\\e673\"; }\n\n.fa-circle-small::before {\n content: \"\\e122\"; }\n\n.fa-border-none::before {\n content: \"\\f850\"; }\n\n.fa-arrow-turn-down-left::before {\n content: \"\\e2e1\"; }\n\n.fa-circle-wifi-circle-wifi::before {\n content: \"\\e67e\"; }\n\n.fa-circle-wifi-group::before {\n content: \"\\e67e\"; }\n\n.fa-circle-nodes::before {\n content: \"\\e4e2\"; }\n\n.fa-parachute-box::before {\n content: \"\\f4cd\"; }\n\n.fa-reflect-horizontal::before {\n content: \"\\e664\"; }\n\n.fa-message-medical::before {\n content: \"\\f7f4\"; }\n\n.fa-comment-alt-medical::before {\n content: \"\\f7f4\"; }\n\n.fa-rugby-ball::before {\n content: \"\\e3c6\"; }\n\n.fa-comment-music::before {\n content: \"\\f8b0\"; }\n\n.fa-indent::before {\n content: \"\\f03c\"; }\n\n.fa-tree-deciduous::before {\n content: \"\\f400\"; }\n\n.fa-tree-alt::before {\n content: \"\\f400\"; }\n\n.fa-puzzle-piece-simple::before {\n content: \"\\e231\"; }\n\n.fa-puzzle-piece-alt::before {\n content: \"\\e231\"; }\n\n.fa-truck-field-un::before {\n content: \"\\e58e\"; }\n\n.fa-nfc-trash::before {\n content: \"\\e1fd\"; }\n\n.fa-hourglass::before {\n content: \"\\f254\"; }\n\n.fa-hourglass-empty::before {\n content: \"\\f254\"; }\n\n.fa-mountain::before {\n content: \"\\f6fc\"; }\n\n.fa-file-xmark::before {\n content: \"\\f317\"; }\n\n.fa-file-times::before {\n content: \"\\f317\"; }\n\n.fa-house-heart::before {\n content: \"\\f4c9\"; }\n\n.fa-home-heart::before {\n content: \"\\f4c9\"; }\n\n.fa-house-chimney-blank::before {\n content: \"\\e3b0\"; }\n\n.fa-meter-bolt::before {\n content: \"\\e1e9\"; }\n\n.fa-user-doctor::before {\n content: \"\\f0f0\"; }\n\n.fa-user-md::before {\n content: \"\\f0f0\"; }\n\n.fa-slash-back::before {\n content: \"\\5c\"; }\n\n.fa-circle-info::before {\n content: \"\\f05a\"; }\n\n.fa-info-circle::before {\n content: \"\\f05a\"; }\n\n.fa-fishing-rod::before {\n content: \"\\e3a8\"; }\n\n.fa-hammer-crash::before {\n content: \"\\e414\"; }\n\n.fa-message-heart::before {\n content: \"\\e5c9\"; }\n\n.fa-cloud-meatball::before {\n content: \"\\f73b\"; }\n\n.fa-camera-polaroid::before {\n content: \"\\f8aa\"; }\n\n.fa-camera::before {\n content: \"\\f030\"; }\n\n.fa-camera-alt::before {\n content: \"\\f030\"; }\n\n.fa-square-virus::before {\n content: \"\\e578\"; }\n\n.fa-cart-arrow-up::before {\n content: \"\\e3ee\"; }\n\n.fa-meteor::before {\n content: \"\\f753\"; }\n\n.fa-car-on::before {\n content: \"\\e4dd\"; }\n\n.fa-sleigh::before {\n content: \"\\f7cc\"; }\n\n.fa-arrow-down-1-9::before {\n content: \"\\f162\"; }\n\n.fa-sort-numeric-asc::before {\n content: \"\\f162\"; }\n\n.fa-sort-numeric-down::before {\n content: \"\\f162\"; }\n\n.fa-buoy-mooring::before {\n content: \"\\e5b6\"; }\n\n.fa-square-4::before {\n content: \"\\e259\"; }\n\n.fa-hand-holding-droplet::before {\n content: \"\\f4c1\"; }\n\n.fa-hand-holding-water::before {\n content: \"\\f4c1\"; }\n\n.fa-file-eps::before {\n content: \"\\e644\"; }\n\n.fa-tricycle-adult::before {\n content: \"\\e5c4\"; }\n\n.fa-waveform::before {\n content: \"\\f8f1\"; }\n\n.fa-water::before {\n content: \"\\f773\"; }\n\n.fa-star-sharp-half-stroke::before {\n content: \"\\e28d\"; }\n\n.fa-star-sharp-half-alt::before {\n content: \"\\e28d\"; }\n\n.fa-nfc-signal::before {\n content: \"\\e1fb\"; }\n\n.fa-plane-prop::before {\n content: \"\\e22b\"; }\n\n.fa-calendar-check::before {\n content: \"\\f274\"; }\n\n.fa-clock-desk::before {\n content: \"\\e134\"; }\n\n.fa-calendar-clock::before {\n content: \"\\e0d2\"; }\n\n.fa-calendar-time::before {\n content: \"\\e0d2\"; }\n\n.fa-braille::before {\n content: \"\\f2a1\"; }\n\n.fa-prescription-bottle-medical::before {\n content: \"\\f486\"; }\n\n.fa-prescription-bottle-alt::before {\n content: \"\\f486\"; }\n\n.fa-plate-utensils::before {\n content: \"\\e43b\"; }\n\n.fa-family-pants::before {\n content: \"\\e302\"; }\n\n.fa-hose-reel::before {\n content: \"\\e41a\"; }\n\n.fa-house-window::before {\n content: \"\\e3b3\"; }\n\n.fa-landmark::before {\n content: \"\\f66f\"; }\n\n.fa-truck::before {\n content: \"\\f0d1\"; }\n\n.fa-music-magnifying-glass::before {\n content: \"\\e662\"; }\n\n.fa-crosshairs::before {\n content: \"\\f05b\"; }\n\n.fa-cloud-rainbow::before {\n content: \"\\f73e\"; }\n\n.fa-person-cane::before {\n content: \"\\e53c\"; }\n\n.fa-alien::before {\n content: \"\\f8f5\"; }\n\n.fa-tent::before {\n content: \"\\e57d\"; }\n\n.fa-laptop-binary::before {\n content: \"\\e5e7\"; }\n\n.fa-vest-patches::before {\n content: \"\\e086\"; }\n\n.fa-people-dress-simple::before {\n content: \"\\e218\"; }\n\n.fa-check-double::before {\n content: \"\\f560\"; }\n\n.fa-arrow-down-a-z::before {\n content: \"\\f15d\"; }\n\n.fa-sort-alpha-asc::before {\n content: \"\\f15d\"; }\n\n.fa-sort-alpha-down::before {\n content: \"\\f15d\"; }\n\n.fa-bowling-ball-pin::before {\n content: \"\\e0c3\"; }\n\n.fa-bell-school-slash::before {\n content: \"\\f5d6\"; }\n\n.fa-plus-large::before {\n content: \"\\e59e\"; }\n\n.fa-money-bill-wheat::before {\n content: \"\\e52a\"; }\n\n.fa-camera-viewfinder::before {\n content: \"\\e0da\"; }\n\n.fa-screenshot::before {\n content: \"\\e0da\"; }\n\n.fa-message-music::before {\n content: \"\\f8af\"; }\n\n.fa-comment-alt-music::before {\n content: \"\\f8af\"; }\n\n.fa-car-building::before {\n content: \"\\f859\"; }\n\n.fa-border-bottom-right::before {\n content: \"\\f854\"; }\n\n.fa-border-style-alt::before {\n content: \"\\f854\"; }\n\n.fa-octagon::before {\n content: \"\\f306\"; }\n\n.fa-comment-arrow-up-right::before {\n content: \"\\e145\"; }\n\n.fa-octagon-divide::before {\n content: \"\\e203\"; }\n\n.fa-cookie::before {\n content: \"\\f563\"; }\n\n.fa-arrow-rotate-left::before {\n content: \"\\f0e2\"; }\n\n.fa-arrow-left-rotate::before {\n content: \"\\f0e2\"; }\n\n.fa-arrow-rotate-back::before {\n content: \"\\f0e2\"; }\n\n.fa-arrow-rotate-backward::before {\n content: \"\\f0e2\"; }\n\n.fa-undo::before {\n content: \"\\f0e2\"; }\n\n.fa-tv-music::before {\n content: \"\\f8e6\"; }\n\n.fa-hard-drive::before {\n content: \"\\f0a0\"; }\n\n.fa-hdd::before {\n content: \"\\f0a0\"; }\n\n.fa-reel::before {\n content: \"\\e238\"; }\n\n.fa-face-grin-squint-tears::before {\n content: \"\\f586\"; }\n\n.fa-grin-squint-tears::before {\n content: \"\\f586\"; }\n\n.fa-dumbbell::before {\n content: \"\\f44b\"; }\n\n.fa-rectangle-list::before {\n content: \"\\f022\"; }\n\n.fa-list-alt::before {\n content: \"\\f022\"; }\n\n.fa-tarp-droplet::before {\n content: \"\\e57c\"; }\n\n.fa-alarm-exclamation::before {\n content: \"\\f843\"; }\n\n.fa-house-medical-circle-check::before {\n content: \"\\e511\"; }\n\n.fa-traffic-cone::before {\n content: \"\\f636\"; }\n\n.fa-grate::before {\n content: \"\\e193\"; }\n\n.fa-arrow-down-right::before {\n content: \"\\e093\"; }\n\n.fa-person-skiing-nordic::before {\n content: \"\\f7ca\"; }\n\n.fa-skiing-nordic::before {\n content: \"\\f7ca\"; }\n\n.fa-calendar-plus::before {\n content: \"\\f271\"; }\n\n.fa-person-from-portal::before {\n content: \"\\e023\"; }\n\n.fa-portal-exit::before {\n content: \"\\e023\"; }\n\n.fa-plane-arrival::before {\n content: \"\\f5af\"; }\n\n.fa-cowbell-circle-plus::before {\n content: \"\\f8b4\"; }\n\n.fa-cowbell-more::before {\n content: \"\\f8b4\"; }\n\n.fa-circle-left::before {\n content: \"\\f359\"; }\n\n.fa-arrow-alt-circle-left::before {\n content: \"\\f359\"; }\n\n.fa-distribute-spacing-vertical::before {\n content: \"\\e366\"; }\n\n.fa-signal-bars-fair::before {\n content: \"\\f692\"; }\n\n.fa-signal-alt-2::before {\n content: \"\\f692\"; }\n\n.fa-sportsball::before {\n content: \"\\e44b\"; }\n\n.fa-game-console-handheld-crank::before {\n content: \"\\e5b9\"; }\n\n.fa-train-subway::before {\n content: \"\\f239\"; }\n\n.fa-subway::before {\n content: \"\\f239\"; }\n\n.fa-chart-gantt::before {\n content: \"\\e0e4\"; }\n\n.fa-face-smile-upside-down::before {\n content: \"\\e395\"; }\n\n.fa-ball-pile::before {\n content: \"\\f77e\"; }\n\n.fa-badge-dollar::before {\n content: \"\\f645\"; }\n\n.fa-money-bills-simple::before {\n content: \"\\e1f4\"; }\n\n.fa-money-bills-alt::before {\n content: \"\\e1f4\"; }\n\n.fa-list-timeline::before {\n content: \"\\e1d1\"; }\n\n.fa-indian-rupee-sign::before {\n content: \"\\e1bc\"; }\n\n.fa-indian-rupee::before {\n content: \"\\e1bc\"; }\n\n.fa-inr::before {\n content: \"\\e1bc\"; }\n\n.fa-crop-simple::before {\n content: \"\\f565\"; }\n\n.fa-crop-alt::before {\n content: \"\\f565\"; }\n\n.fa-money-bill-1::before {\n content: \"\\f3d1\"; }\n\n.fa-money-bill-alt::before {\n content: \"\\f3d1\"; }\n\n.fa-left-long::before {\n content: \"\\f30a\"; }\n\n.fa-long-arrow-alt-left::before {\n content: \"\\f30a\"; }\n\n.fa-keyboard-down::before {\n content: \"\\e1c2\"; }\n\n.fa-circle-up-right::before {\n content: \"\\e129\"; }\n\n.fa-cloud-bolt-moon::before {\n content: \"\\f76d\"; }\n\n.fa-thunderstorm-moon::before {\n content: \"\\f76d\"; }\n\n.fa-turn-left-up::before {\n content: \"\\e638\"; }\n\n.fa-dna::before {\n content: \"\\f471\"; }\n\n.fa-virus-slash::before {\n content: \"\\e075\"; }\n\n.fa-bracket-round-right::before {\n content: \"\\29\"; }\n\n.fa-circle-sterling::before {\n content: \"\\e5cf\"; }\n\n.fa-circle-5::before {\n content: \"\\e0f2\"; }\n\n.fa-minus::before {\n content: \"\\f068\"; }\n\n.fa-subtract::before {\n content: \"\\f068\"; }\n\n.fa-fire-flame::before {\n content: \"\\f6df\"; }\n\n.fa-flame::before {\n content: \"\\f6df\"; }\n\n.fa-right-to-line::before {\n content: \"\\f34c\"; }\n\n.fa-arrow-alt-to-right::before {\n content: \"\\f34c\"; }\n\n.fa-gif::before {\n content: \"\\e190\"; }\n\n.fa-chess::before {\n content: \"\\f439\"; }\n\n.fa-trash-slash::before {\n content: \"\\e2b3\"; }\n\n.fa-arrow-left-long::before {\n content: \"\\f177\"; }\n\n.fa-long-arrow-left::before {\n content: \"\\f177\"; }\n\n.fa-plug-circle-check::before {\n content: \"\\e55c\"; }\n\n.fa-font-case::before {\n content: \"\\f866\"; }\n\n.fa-street-view::before {\n content: \"\\f21d\"; }\n\n.fa-arrow-down-left::before {\n content: \"\\e091\"; }\n\n.fa-franc-sign::before {\n content: \"\\e18f\"; }\n\n.fa-flask-round-poison::before {\n content: \"\\f6e0\"; }\n\n.fa-flask-poison::before {\n content: \"\\f6e0\"; }\n\n.fa-volume-off::before {\n content: \"\\f026\"; }\n\n.fa-book-circle-arrow-right::before {\n content: \"\\e0bc\"; }\n\n.fa-chart-user::before {\n content: \"\\f6a3\"; }\n\n.fa-user-chart::before {\n content: \"\\f6a3\"; }\n\n.fa-hands-asl-interpreting::before {\n content: \"\\f2a3\"; }\n\n.fa-american-sign-language-interpreting::before {\n content: \"\\f2a3\"; }\n\n.fa-asl-interpreting::before {\n content: \"\\f2a3\"; }\n\n.fa-hands-american-sign-language-interpreting::before {\n content: \"\\f2a3\"; }\n\n.fa-presentation-screen::before {\n content: \"\\f685\"; }\n\n.fa-presentation::before {\n content: \"\\f685\"; }\n\n.fa-circle-bolt::before {\n content: \"\\e0fe\"; }\n\n.fa-face-smile-halo::before {\n content: \"\\e38f\"; }\n\n.fa-cart-circle-arrow-down::before {\n content: \"\\e3ef\"; }\n\n.fa-house-person-return::before {\n content: \"\\e011\"; }\n\n.fa-house-person-arrive::before {\n content: \"\\e011\"; }\n\n.fa-house-return::before {\n content: \"\\e011\"; }\n\n.fa-message-xmark::before {\n content: \"\\f4ab\"; }\n\n.fa-comment-alt-times::before {\n content: \"\\f4ab\"; }\n\n.fa-message-times::before {\n content: \"\\f4ab\"; }\n\n.fa-file-certificate::before {\n content: \"\\f5f3\"; }\n\n.fa-file-award::before {\n content: \"\\f5f3\"; }\n\n.fa-user-doctor-hair-long::before {\n content: \"\\e459\"; }\n\n.fa-camera-security::before {\n content: \"\\f8fe\"; }\n\n.fa-camera-home::before {\n content: \"\\f8fe\"; }\n\n.fa-gear::before {\n content: \"\\f013\"; }\n\n.fa-cog::before {\n content: \"\\f013\"; }\n\n.fa-droplet-slash::before {\n content: \"\\f5c7\"; }\n\n.fa-tint-slash::before {\n content: \"\\f5c7\"; }\n\n.fa-book-heart::before {\n content: \"\\f499\"; }\n\n.fa-mosque::before {\n content: \"\\f678\"; }\n\n.fa-duck::before {\n content: \"\\f6d8\"; }\n\n.fa-mosquito::before {\n content: \"\\e52b\"; }\n\n.fa-star-of-david::before {\n content: \"\\f69a\"; }\n\n.fa-flag-swallowtail::before {\n content: \"\\f74c\"; }\n\n.fa-flag-alt::before {\n content: \"\\f74c\"; }\n\n.fa-person-military-rifle::before {\n content: \"\\e54b\"; }\n\n.fa-car-garage::before {\n content: \"\\f5e2\"; }\n\n.fa-cart-shopping::before {\n content: \"\\f07a\"; }\n\n.fa-shopping-cart::before {\n content: \"\\f07a\"; }\n\n.fa-book-font::before {\n content: \"\\e0bf\"; }\n\n.fa-shield-plus::before {\n content: \"\\e24a\"; }\n\n.fa-vials::before {\n content: \"\\f493\"; }\n\n.fa-eye-dropper-full::before {\n content: \"\\e172\"; }\n\n.fa-distribute-spacing-horizontal::before {\n content: \"\\e365\"; }\n\n.fa-tablet-rugged::before {\n content: \"\\f48f\"; }\n\n.fa-temperature-snow::before {\n content: \"\\f768\"; }\n\n.fa-temperature-frigid::before {\n content: \"\\f768\"; }\n\n.fa-moped::before {\n content: \"\\e3b9\"; }\n\n.fa-face-smile-plus::before {\n content: \"\\f5b9\"; }\n\n.fa-smile-plus::before {\n content: \"\\f5b9\"; }\n\n.fa-radio-tuner::before {\n content: \"\\f8d8\"; }\n\n.fa-radio-alt::before {\n content: \"\\f8d8\"; }\n\n.fa-face-swear::before {\n content: \"\\e399\"; }\n\n.fa-water-arrow-down::before {\n content: \"\\f774\"; }\n\n.fa-water-lower::before {\n content: \"\\f774\"; }\n\n.fa-scanner-touchscreen::before {\n content: \"\\f48a\"; }\n\n.fa-circle-7::before {\n content: \"\\e0f4\"; }\n\n.fa-plug-circle-plus::before {\n content: \"\\e55f\"; }\n\n.fa-person-ski-jumping::before {\n content: \"\\f7c7\"; }\n\n.fa-ski-jump::before {\n content: \"\\f7c7\"; }\n\n.fa-place-of-worship::before {\n content: \"\\f67f\"; }\n\n.fa-water-arrow-up::before {\n content: \"\\f775\"; }\n\n.fa-water-rise::before {\n content: \"\\f775\"; }\n\n.fa-waveform-lines::before {\n content: \"\\f8f2\"; }\n\n.fa-waveform-path::before {\n content: \"\\f8f2\"; }\n\n.fa-split::before {\n content: \"\\e254\"; }\n\n.fa-film-canister::before {\n content: \"\\f8b7\"; }\n\n.fa-film-cannister::before {\n content: \"\\f8b7\"; }\n\n.fa-folder-xmark::before {\n content: \"\\f65f\"; }\n\n.fa-folder-times::before {\n content: \"\\f65f\"; }\n\n.fa-toilet-paper-blank::before {\n content: \"\\f71f\"; }\n\n.fa-toilet-paper-alt::before {\n content: \"\\f71f\"; }\n\n.fa-tablet-screen::before {\n content: \"\\f3fc\"; }\n\n.fa-tablet-android-alt::before {\n content: \"\\f3fc\"; }\n\n.fa-hexagon-vertical-nft-slanted::before {\n content: \"\\e506\"; }\n\n.fa-folder-music::before {\n content: \"\\e18d\"; }\n\n.fa-display-medical::before {\n content: \"\\e166\"; }\n\n.fa-desktop-medical::before {\n content: \"\\e166\"; }\n\n.fa-share-all::before {\n content: \"\\f367\"; }\n\n.fa-peapod::before {\n content: \"\\e31c\"; }\n\n.fa-chess-clock::before {\n content: \"\\f43d\"; }\n\n.fa-axe::before {\n content: \"\\f6b2\"; }\n\n.fa-square-d::before {\n content: \"\\e268\"; }\n\n.fa-grip-vertical::before {\n content: \"\\f58e\"; }\n\n.fa-mobile-signal-out::before {\n content: \"\\e1f0\"; }\n\n.fa-arrow-turn-up::before {\n content: \"\\f148\"; }\n\n.fa-level-up::before {\n content: \"\\f148\"; }\n\n.fa-u::before {\n content: \"\\55\"; }\n\n.fa-arrow-up-from-dotted-line::before {\n content: \"\\e09b\"; }\n\n.fa-square-root-variable::before {\n content: \"\\f698\"; }\n\n.fa-square-root-alt::before {\n content: \"\\f698\"; }\n\n.fa-light-switch-on::before {\n content: \"\\e019\"; }\n\n.fa-arrow-down-arrow-up::before {\n content: \"\\f883\"; }\n\n.fa-sort-alt::before {\n content: \"\\f883\"; }\n\n.fa-raindrops::before {\n content: \"\\f75c\"; }\n\n.fa-dash::before {\n content: \"\\e404\"; }\n\n.fa-minus-large::before {\n content: \"\\e404\"; }\n\n.fa-clock::before {\n content: \"\\f017\"; }\n\n.fa-clock-four::before {\n content: \"\\f017\"; }\n\n.fa-input-numeric::before {\n content: \"\\e1bd\"; }\n\n.fa-truck-tow::before {\n content: \"\\e2b8\"; }\n\n.fa-backward-step::before {\n content: \"\\f048\"; }\n\n.fa-step-backward::before {\n content: \"\\f048\"; }\n\n.fa-pallet::before {\n content: \"\\f482\"; }\n\n.fa-car-bolt::before {\n content: \"\\e341\"; }\n\n.fa-arrows-maximize::before {\n content: \"\\f31d\"; }\n\n.fa-expand-arrows::before {\n content: \"\\f31d\"; }\n\n.fa-faucet::before {\n content: \"\\e005\"; }\n\n.fa-cloud-sleet::before {\n content: \"\\f741\"; }\n\n.fa-lamp-street::before {\n content: \"\\e1c5\"; }\n\n.fa-list-radio::before {\n content: \"\\e1d0\"; }\n\n.fa-pen-nib-slash::before {\n content: \"\\e4a1\"; }\n\n.fa-baseball-bat-ball::before {\n content: \"\\f432\"; }\n\n.fa-square-up-left::before {\n content: \"\\e282\"; }\n\n.fa-overline::before {\n content: \"\\f876\"; }\n\n.fa-s::before {\n content: \"\\53\"; }\n\n.fa-timeline::before {\n content: \"\\e29c\"; }\n\n.fa-keyboard::before {\n content: \"\\f11c\"; }\n\n.fa-arrows-from-dotted-line::before {\n content: \"\\e0a3\"; }\n\n.fa-usb-drive::before {\n content: \"\\f8e9\"; }\n\n.fa-ballot::before {\n content: \"\\f732\"; }\n\n.fa-caret-down::before {\n content: \"\\f0d7\"; }\n\n.fa-location-dot-slash::before {\n content: \"\\f605\"; }\n\n.fa-map-marker-alt-slash::before {\n content: \"\\f605\"; }\n\n.fa-cards::before {\n content: \"\\e3ed\"; }\n\n.fa-house-chimney-medical::before {\n content: \"\\f7f2\"; }\n\n.fa-clinic-medical::before {\n content: \"\\f7f2\"; }\n\n.fa-boxing-glove::before {\n content: \"\\f438\"; }\n\n.fa-glove-boxing::before {\n content: \"\\f438\"; }\n\n.fa-temperature-three-quarters::before {\n content: \"\\f2c8\"; }\n\n.fa-temperature-3::before {\n content: \"\\f2c8\"; }\n\n.fa-thermometer-3::before {\n content: \"\\f2c8\"; }\n\n.fa-thermometer-three-quarters::before {\n content: \"\\f2c8\"; }\n\n.fa-bell-school::before {\n content: \"\\f5d5\"; }\n\n.fa-mobile-screen::before {\n content: \"\\f3cf\"; }\n\n.fa-mobile-android-alt::before {\n content: \"\\f3cf\"; }\n\n.fa-plane-up::before {\n content: \"\\e22d\"; }\n\n.fa-folder-heart::before {\n content: \"\\e189\"; }\n\n.fa-circle-location-arrow::before {\n content: \"\\f602\"; }\n\n.fa-location-circle::before {\n content: \"\\f602\"; }\n\n.fa-face-head-bandage::before {\n content: \"\\e37a\"; }\n\n.fa-sushi-roll::before {\n content: \"\\e48b\"; }\n\n.fa-maki-roll::before {\n content: \"\\e48b\"; }\n\n.fa-makizushi::before {\n content: \"\\e48b\"; }\n\n.fa-car-bump::before {\n content: \"\\f5e0\"; }\n\n.fa-piggy-bank::before {\n content: \"\\f4d3\"; }\n\n.fa-racquet::before {\n content: \"\\f45a\"; }\n\n.fa-car-mirrors::before {\n content: \"\\e343\"; }\n\n.fa-industry-windows::before {\n content: \"\\f3b3\"; }\n\n.fa-industry-alt::before {\n content: \"\\f3b3\"; }\n\n.fa-bolt-auto::before {\n content: \"\\e0b6\"; }\n\n.fa-battery-half::before {\n content: \"\\f242\"; }\n\n.fa-battery-3::before {\n content: \"\\f242\"; }\n\n.fa-flux-capacitor::before {\n content: \"\\f8ba\"; }\n\n.fa-mountain-city::before {\n content: \"\\e52e\"; }\n\n.fa-coins::before {\n content: \"\\f51e\"; }\n\n.fa-honey-pot::before {\n content: \"\\e418\"; }\n\n.fa-olive::before {\n content: \"\\e316\"; }\n\n.fa-khanda::before {\n content: \"\\f66d\"; }\n\n.fa-filter-list::before {\n content: \"\\e17c\"; }\n\n.fa-outlet::before {\n content: \"\\e01c\"; }\n\n.fa-sliders::before {\n content: \"\\f1de\"; }\n\n.fa-sliders-h::before {\n content: \"\\f1de\"; }\n\n.fa-cauldron::before {\n content: \"\\f6bf\"; }\n\n.fa-people::before {\n content: \"\\e216\"; }\n\n.fa-folder-tree::before {\n content: \"\\f802\"; }\n\n.fa-network-wired::before {\n content: \"\\f6ff\"; }\n\n.fa-croissant::before {\n content: \"\\f7f6\"; }\n\n.fa-map-pin::before {\n content: \"\\f276\"; }\n\n.fa-hamsa::before {\n content: \"\\f665\"; }\n\n.fa-cent-sign::before {\n content: \"\\e3f5\"; }\n\n.fa-swords-laser::before {\n content: \"\\e03d\"; }\n\n.fa-flask::before {\n content: \"\\f0c3\"; }\n\n.fa-person-pregnant::before {\n content: \"\\e31e\"; }\n\n.fa-square-u::before {\n content: \"\\e281\"; }\n\n.fa-wand-sparkles::before {\n content: \"\\f72b\"; }\n\n.fa-router::before {\n content: \"\\f8da\"; }\n\n.fa-ellipsis-vertical::before {\n content: \"\\f142\"; }\n\n.fa-ellipsis-v::before {\n content: \"\\f142\"; }\n\n.fa-sword-laser-alt::before {\n content: \"\\e03c\"; }\n\n.fa-ticket::before {\n content: \"\\f145\"; }\n\n.fa-power-off::before {\n content: \"\\f011\"; }\n\n.fa-coin::before {\n content: \"\\f85c\"; }\n\n.fa-laptop-slash::before {\n content: \"\\e1c7\"; }\n\n.fa-right-long::before {\n content: \"\\f30b\"; }\n\n.fa-long-arrow-alt-right::before {\n content: \"\\f30b\"; }\n\n.fa-circle-b::before {\n content: \"\\e0fd\"; }\n\n.fa-person-dress-simple::before {\n content: \"\\e21c\"; }\n\n.fa-pipe-collar::before {\n content: \"\\e437\"; }\n\n.fa-lights-holiday::before {\n content: \"\\f7b2\"; }\n\n.fa-citrus::before {\n content: \"\\e2f4\"; }\n\n.fa-flag-usa::before {\n content: \"\\f74d\"; }\n\n.fa-laptop-file::before {\n content: \"\\e51d\"; }\n\n.fa-tty::before {\n content: \"\\f1e4\"; }\n\n.fa-teletype::before {\n content: \"\\f1e4\"; }\n\n.fa-chart-tree-map::before {\n content: \"\\e0ea\"; }\n\n.fa-diagram-next::before {\n content: \"\\e476\"; }\n\n.fa-person-rifle::before {\n content: \"\\e54e\"; }\n\n.fa-clock-five-thirty::before {\n content: \"\\e34a\"; }\n\n.fa-pipe-valve::before {\n content: \"\\e439\"; }\n\n.fa-arrow-up-from-arc::before {\n content: \"\\e4b4\"; }\n\n.fa-face-spiral-eyes::before {\n content: \"\\e485\"; }\n\n.fa-compress-wide::before {\n content: \"\\f326\"; }\n\n.fa-circle-phone-hangup::before {\n content: \"\\e11d\"; }\n\n.fa-phone-circle-down::before {\n content: \"\\e11d\"; }\n\n.fa-gear-complex-code::before {\n content: \"\\e5eb\"; }\n\n.fa-house-medical-circle-exclamation::before {\n content: \"\\e512\"; }\n\n.fa-badminton::before {\n content: \"\\e33a\"; }\n\n.fa-closed-captioning::before {\n content: \"\\f20a\"; }\n\n.fa-person-hiking::before {\n content: \"\\f6ec\"; }\n\n.fa-hiking::before {\n content: \"\\f6ec\"; }\n\n.fa-right-from-line::before {\n content: \"\\f347\"; }\n\n.fa-arrow-alt-from-left::before {\n content: \"\\f347\"; }\n\n.fa-venus-double::before {\n content: \"\\f226\"; }\n\n.fa-images::before {\n content: \"\\f302\"; }\n\n.fa-calculator::before {\n content: \"\\f1ec\"; }\n\n.fa-shuttlecock::before {\n content: \"\\f45b\"; }\n\n.fa-user-hair::before {\n content: \"\\e45a\"; }\n\n.fa-eye-evil::before {\n content: \"\\f6db\"; }\n\n.fa-people-pulling::before {\n content: \"\\e535\"; }\n\n.fa-n::before {\n content: \"\\4e\"; }\n\n.fa-swap::before {\n content: \"\\e609\"; }\n\n.fa-garage::before {\n content: \"\\e009\"; }\n\n.fa-cable-car::before {\n content: \"\\f7da\"; }\n\n.fa-tram::before {\n content: \"\\f7da\"; }\n\n.fa-shovel-snow::before {\n content: \"\\f7c3\"; }\n\n.fa-cloud-rain::before {\n content: \"\\f73d\"; }\n\n.fa-face-lying::before {\n content: \"\\e37e\"; }\n\n.fa-sprinkler::before {\n content: \"\\e035\"; }\n\n.fa-building-circle-xmark::before {\n content: \"\\e4d4\"; }\n\n.fa-person-sledding::before {\n content: \"\\f7cb\"; }\n\n.fa-sledding::before {\n content: \"\\f7cb\"; }\n\n.fa-game-console-handheld::before {\n content: \"\\f8bb\"; }\n\n.fa-ship::before {\n content: \"\\f21a\"; }\n\n.fa-clock-six-thirty::before {\n content: \"\\e353\"; }\n\n.fa-battery-slash::before {\n content: \"\\f377\"; }\n\n.fa-tugrik-sign::before {\n content: \"\\e2ba\"; }\n\n.fa-arrows-down-to-line::before {\n content: \"\\e4b8\"; }\n\n.fa-download::before {\n content: \"\\f019\"; }\n\n.fa-angles-up-down::before {\n content: \"\\e60d\"; }\n\n.fa-shelves::before {\n content: \"\\f480\"; }\n\n.fa-inventory::before {\n content: \"\\f480\"; }\n\n.fa-cloud-snow::before {\n content: \"\\f742\"; }\n\n.fa-face-grin::before {\n content: \"\\f580\"; }\n\n.fa-grin::before {\n content: \"\\f580\"; }\n\n.fa-delete-left::before {\n content: \"\\f55a\"; }\n\n.fa-backspace::before {\n content: \"\\f55a\"; }\n\n.fa-oven::before {\n content: \"\\e01d\"; }\n\n.fa-cloud-binary::before {\n content: \"\\e601\"; }\n\n.fa-eye-dropper::before {\n content: \"\\f1fb\"; }\n\n.fa-eye-dropper-empty::before {\n content: \"\\f1fb\"; }\n\n.fa-eyedropper::before {\n content: \"\\f1fb\"; }\n\n.fa-comment-captions::before {\n content: \"\\e146\"; }\n\n.fa-comments-question::before {\n content: \"\\e14e\"; }\n\n.fa-scribble::before {\n content: \"\\e23f\"; }\n\n.fa-rotate-exclamation::before {\n content: \"\\e23c\"; }\n\n.fa-file-circle-check::before {\n content: \"\\e5a0\"; }\n\n.fa-glass::before {\n content: \"\\f804\"; }\n\n.fa-loader::before {\n content: \"\\e1d4\"; }\n\n.fa-forward::before {\n content: \"\\f04e\"; }\n\n.fa-user-pilot::before {\n content: \"\\e2c0\"; }\n\n.fa-mobile::before {\n content: \"\\f3ce\"; }\n\n.fa-mobile-android::before {\n content: \"\\f3ce\"; }\n\n.fa-mobile-phone::before {\n content: \"\\f3ce\"; }\n\n.fa-code-pull-request-closed::before {\n content: \"\\e3f9\"; }\n\n.fa-face-meh::before {\n content: \"\\f11a\"; }\n\n.fa-meh::before {\n content: \"\\f11a\"; }\n\n.fa-align-center::before {\n content: \"\\f037\"; }\n\n.fa-book-skull::before {\n content: \"\\f6b7\"; }\n\n.fa-book-dead::before {\n content: \"\\f6b7\"; }\n\n.fa-id-card::before {\n content: \"\\f2c2\"; }\n\n.fa-drivers-license::before {\n content: \"\\f2c2\"; }\n\n.fa-face-dotted::before {\n content: \"\\e47f\"; }\n\n.fa-face-worried::before {\n content: \"\\e3a3\"; }\n\n.fa-outdent::before {\n content: \"\\f03b\"; }\n\n.fa-dedent::before {\n content: \"\\f03b\"; }\n\n.fa-court-sport::before {\n content: \"\\e643\"; }\n\n.fa-heart-circle-exclamation::before {\n content: \"\\e4fe\"; }\n\n.fa-house::before {\n content: \"\\f015\"; }\n\n.fa-home::before {\n content: \"\\f015\"; }\n\n.fa-home-alt::before {\n content: \"\\f015\"; }\n\n.fa-home-lg-alt::before {\n content: \"\\f015\"; }\n\n.fa-vector-circle::before {\n content: \"\\e2c6\"; }\n\n.fa-car-circle-bolt::before {\n content: \"\\e342\"; }\n\n.fa-calendar-week::before {\n content: \"\\f784\"; }\n\n.fa-flying-disc::before {\n content: \"\\e3a9\"; }\n\n.fa-laptop-medical::before {\n content: \"\\f812\"; }\n\n.fa-square-down-right::before {\n content: \"\\e26c\"; }\n\n.fa-b::before {\n content: \"\\42\"; }\n\n.fa-seat-airline::before {\n content: \"\\e244\"; }\n\n.fa-moon-over-sun::before {\n content: \"\\f74a\"; }\n\n.fa-eclipse-alt::before {\n content: \"\\f74a\"; }\n\n.fa-pipe::before {\n content: \"\\7c\"; }\n\n.fa-file-medical::before {\n content: \"\\f477\"; }\n\n.fa-potato::before {\n content: \"\\e440\"; }\n\n.fa-dice-one::before {\n content: \"\\f525\"; }\n\n.fa-circle-a::before {\n content: \"\\e0f7\"; }\n\n.fa-helmet-battle::before {\n content: \"\\f6eb\"; }\n\n.fa-butter::before {\n content: \"\\e3e4\"; }\n\n.fa-blanket-fire::before {\n content: \"\\e3da\"; }\n\n.fa-kiwi-bird::before {\n content: \"\\f535\"; }\n\n.fa-castle::before {\n content: \"\\e0de\"; }\n\n.fa-golf-club::before {\n content: \"\\f451\"; }\n\n.fa-arrow-right-arrow-left::before {\n content: \"\\f0ec\"; }\n\n.fa-exchange::before {\n content: \"\\f0ec\"; }\n\n.fa-rotate-right::before {\n content: \"\\f2f9\"; }\n\n.fa-redo-alt::before {\n content: \"\\f2f9\"; }\n\n.fa-rotate-forward::before {\n content: \"\\f2f9\"; }\n\n.fa-utensils::before {\n content: \"\\f2e7\"; }\n\n.fa-cutlery::before {\n content: \"\\f2e7\"; }\n\n.fa-arrow-up-wide-short::before {\n content: \"\\f161\"; }\n\n.fa-sort-amount-up::before {\n content: \"\\f161\"; }\n\n.fa-chart-pie-simple-circle-dollar::before {\n content: \"\\e605\"; }\n\n.fa-balloons::before {\n content: \"\\e2e4\"; }\n\n.fa-mill-sign::before {\n content: \"\\e1ed\"; }\n\n.fa-bowl-rice::before {\n content: \"\\e2eb\"; }\n\n.fa-timeline-arrow::before {\n content: \"\\e29d\"; }\n\n.fa-skull::before {\n content: \"\\f54c\"; }\n\n.fa-game-board-simple::before {\n content: \"\\f868\"; }\n\n.fa-game-board-alt::before {\n content: \"\\f868\"; }\n\n.fa-circle-video::before {\n content: \"\\e12b\"; }\n\n.fa-video-circle::before {\n content: \"\\e12b\"; }\n\n.fa-chart-scatter-bubble::before {\n content: \"\\e0e9\"; }\n\n.fa-house-turret::before {\n content: \"\\e1b4\"; }\n\n.fa-banana::before {\n content: \"\\e2e5\"; }\n\n.fa-hand-holding-skull::before {\n content: \"\\e1a4\"; }\n\n.fa-people-dress::before {\n content: \"\\e217\"; }\n\n.fa-loveseat::before {\n content: \"\\f4cc\"; }\n\n.fa-couch-small::before {\n content: \"\\f4cc\"; }\n\n.fa-tower-broadcast::before {\n content: \"\\f519\"; }\n\n.fa-broadcast-tower::before {\n content: \"\\f519\"; }\n\n.fa-truck-pickup::before {\n content: \"\\f63c\"; }\n\n.fa-block-quote::before {\n content: \"\\e0b5\"; }\n\n.fa-up-long::before {\n content: \"\\f30c\"; }\n\n.fa-long-arrow-alt-up::before {\n content: \"\\f30c\"; }\n\n.fa-stop::before {\n content: \"\\f04d\"; }\n\n.fa-code-merge::before {\n content: \"\\f387\"; }\n\n.fa-money-check-dollar-pen::before {\n content: \"\\f873\"; }\n\n.fa-money-check-edit-alt::before {\n content: \"\\f873\"; }\n\n.fa-up-from-line::before {\n content: \"\\f346\"; }\n\n.fa-arrow-alt-from-bottom::before {\n content: \"\\f346\"; }\n\n.fa-upload::before {\n content: \"\\f093\"; }\n\n.fa-hurricane::before {\n content: \"\\f751\"; }\n\n.fa-grid-round-2-plus::before {\n content: \"\\e5dc\"; }\n\n.fa-people-pants::before {\n content: \"\\e219\"; }\n\n.fa-mound::before {\n content: \"\\e52d\"; }\n\n.fa-windsock::before {\n content: \"\\f777\"; }\n\n.fa-circle-half::before {\n content: \"\\e110\"; }\n\n.fa-brake-warning::before {\n content: \"\\e0c7\"; }\n\n.fa-toilet-portable::before {\n content: \"\\e583\"; }\n\n.fa-compact-disc::before {\n content: \"\\f51f\"; }\n\n.fa-file-arrow-down::before {\n content: \"\\f56d\"; }\n\n.fa-file-download::before {\n content: \"\\f56d\"; }\n\n.fa-saxophone-fire::before {\n content: \"\\f8db\"; }\n\n.fa-sax-hot::before {\n content: \"\\f8db\"; }\n\n.fa-camera-web-slash::before {\n content: \"\\f833\"; }\n\n.fa-webcam-slash::before {\n content: \"\\f833\"; }\n\n.fa-folder-medical::before {\n content: \"\\e18c\"; }\n\n.fa-folder-gear::before {\n content: \"\\e187\"; }\n\n.fa-folder-cog::before {\n content: \"\\e187\"; }\n\n.fa-hand-wave::before {\n content: \"\\e1a7\"; }\n\n.fa-arrow-up-arrow-down::before {\n content: \"\\e099\"; }\n\n.fa-sort-up-down::before {\n content: \"\\e099\"; }\n\n.fa-caravan::before {\n content: \"\\f8ff\"; }\n\n.fa-shield-cat::before {\n content: \"\\e572\"; }\n\n.fa-message-slash::before {\n content: \"\\f4a9\"; }\n\n.fa-comment-alt-slash::before {\n content: \"\\f4a9\"; }\n\n.fa-bolt::before {\n content: \"\\f0e7\"; }\n\n.fa-zap::before {\n content: \"\\f0e7\"; }\n\n.fa-trash-can-check::before {\n content: \"\\e2a9\"; }\n\n.fa-glass-water::before {\n content: \"\\e4f4\"; }\n\n.fa-oil-well::before {\n content: \"\\e532\"; }\n\n.fa-person-simple::before {\n content: \"\\e220\"; }\n\n.fa-arrow-turn-left-up::before {\n content: \"\\e634\"; }\n\n.fa-vault::before {\n content: \"\\e2c5\"; }\n\n.fa-mars::before {\n content: \"\\f222\"; }\n\n.fa-toilet::before {\n content: \"\\f7d8\"; }\n\n.fa-plane-circle-xmark::before {\n content: \"\\e557\"; }\n\n.fa-yen-sign::before {\n content: \"\\f157\"; }\n\n.fa-cny::before {\n content: \"\\f157\"; }\n\n.fa-jpy::before {\n content: \"\\f157\"; }\n\n.fa-rmb::before {\n content: \"\\f157\"; }\n\n.fa-yen::before {\n content: \"\\f157\"; }\n\n.fa-gear-code::before {\n content: \"\\e5e8\"; }\n\n.fa-notes::before {\n content: \"\\e202\"; }\n\n.fa-ruble-sign::before {\n content: \"\\f158\"; }\n\n.fa-rouble::before {\n content: \"\\f158\"; }\n\n.fa-rub::before {\n content: \"\\f158\"; }\n\n.fa-ruble::before {\n content: \"\\f158\"; }\n\n.fa-trash-undo::before {\n content: \"\\f895\"; }\n\n.fa-trash-arrow-turn-left::before {\n content: \"\\f895\"; }\n\n.fa-champagne-glass::before {\n content: \"\\f79e\"; }\n\n.fa-glass-champagne::before {\n content: \"\\f79e\"; }\n\n.fa-objects-align-center-horizontal::before {\n content: \"\\e3bc\"; }\n\n.fa-sun::before {\n content: \"\\f185\"; }\n\n.fa-trash-can-slash::before {\n content: \"\\e2ad\"; }\n\n.fa-trash-alt-slash::before {\n content: \"\\e2ad\"; }\n\n.fa-screen-users::before {\n content: \"\\f63d\"; }\n\n.fa-users-class::before {\n content: \"\\f63d\"; }\n\n.fa-guitar::before {\n content: \"\\f7a6\"; }\n\n.fa-square-arrow-left::before {\n content: \"\\f33a\"; }\n\n.fa-arrow-square-left::before {\n content: \"\\f33a\"; }\n\n.fa-square-8::before {\n content: \"\\e25d\"; }\n\n.fa-face-smile-hearts::before {\n content: \"\\e390\"; }\n\n.fa-brackets-square::before {\n content: \"\\f7e9\"; }\n\n.fa-brackets::before {\n content: \"\\f7e9\"; }\n\n.fa-laptop-arrow-down::before {\n content: \"\\e1c6\"; }\n\n.fa-hockey-stick-puck::before {\n content: \"\\e3ae\"; }\n\n.fa-house-tree::before {\n content: \"\\e1b3\"; }\n\n.fa-signal-fair::before {\n content: \"\\f68d\"; }\n\n.fa-signal-2::before {\n content: \"\\f68d\"; }\n\n.fa-face-laugh-wink::before {\n content: \"\\f59c\"; }\n\n.fa-laugh-wink::before {\n content: \"\\f59c\"; }\n\n.fa-circle-dollar::before {\n content: \"\\f2e8\"; }\n\n.fa-dollar-circle::before {\n content: \"\\f2e8\"; }\n\n.fa-usd-circle::before {\n content: \"\\f2e8\"; }\n\n.fa-horse-head::before {\n content: \"\\f7ab\"; }\n\n.fa-arrows-repeat::before {\n content: \"\\f364\"; }\n\n.fa-repeat-alt::before {\n content: \"\\f364\"; }\n\n.fa-bore-hole::before {\n content: \"\\e4c3\"; }\n\n.fa-industry::before {\n content: \"\\f275\"; }\n\n.fa-image-polaroid::before {\n content: \"\\f8c4\"; }\n\n.fa-wave-triangle::before {\n content: \"\\f89a\"; }\n\n.fa-turn-left-down::before {\n content: \"\\e637\"; }\n\n.fa-person-running-fast::before {\n content: \"\\e5ff\"; }\n\n.fa-circle-down::before {\n content: \"\\f358\"; }\n\n.fa-arrow-alt-circle-down::before {\n content: \"\\f358\"; }\n\n.fa-grill::before {\n content: \"\\e5a3\"; }\n\n.fa-arrows-turn-to-dots::before {\n content: \"\\e4c1\"; }\n\n.fa-chart-mixed::before {\n content: \"\\f643\"; }\n\n.fa-analytics::before {\n content: \"\\f643\"; }\n\n.fa-florin-sign::before {\n content: \"\\e184\"; }\n\n.fa-arrow-down-short-wide::before {\n content: \"\\f884\"; }\n\n.fa-sort-amount-desc::before {\n content: \"\\f884\"; }\n\n.fa-sort-amount-down-alt::before {\n content: \"\\f884\"; }\n\n.fa-less-than::before {\n content: \"\\3c\"; }\n\n.fa-display-code::before {\n content: \"\\e165\"; }\n\n.fa-desktop-code::before {\n content: \"\\e165\"; }\n\n.fa-face-drooling::before {\n content: \"\\e372\"; }\n\n.fa-oil-temperature::before {\n content: \"\\f614\"; }\n\n.fa-oil-temp::before {\n content: \"\\f614\"; }\n\n.fa-square-question::before {\n content: \"\\f2fd\"; }\n\n.fa-question-square::before {\n content: \"\\f2fd\"; }\n\n.fa-air-conditioner::before {\n content: \"\\f8f4\"; }\n\n.fa-angle-down::before {\n content: \"\\f107\"; }\n\n.fa-mountains::before {\n content: \"\\f6fd\"; }\n\n.fa-omega::before {\n content: \"\\f67a\"; }\n\n.fa-car-tunnel::before {\n content: \"\\e4de\"; }\n\n.fa-person-dolly-empty::before {\n content: \"\\f4d1\"; }\n\n.fa-pan-food::before {\n content: \"\\e42b\"; }\n\n.fa-head-side-cough::before {\n content: \"\\e061\"; }\n\n.fa-grip-lines::before {\n content: \"\\f7a4\"; }\n\n.fa-thumbs-down::before {\n content: \"\\f165\"; }\n\n.fa-user-lock::before {\n content: \"\\f502\"; }\n\n.fa-arrow-right-long::before {\n content: \"\\f178\"; }\n\n.fa-long-arrow-right::before {\n content: \"\\f178\"; }\n\n.fa-tickets-airline::before {\n content: \"\\e29b\"; }\n\n.fa-tickets-perforated-plane::before {\n content: \"\\e29b\"; }\n\n.fa-tickets-plane::before {\n content: \"\\e29b\"; }\n\n.fa-tent-double-peak::before {\n content: \"\\e627\"; }\n\n.fa-anchor-circle-xmark::before {\n content: \"\\e4ac\"; }\n\n.fa-ellipsis::before {\n content: \"\\f141\"; }\n\n.fa-ellipsis-h::before {\n content: \"\\f141\"; }\n\n.fa-nfc-slash::before {\n content: \"\\e1fc\"; }\n\n.fa-chess-pawn::before {\n content: \"\\f443\"; }\n\n.fa-kit-medical::before {\n content: \"\\f479\"; }\n\n.fa-first-aid::before {\n content: \"\\f479\"; }\n\n.fa-grid-2-plus::before {\n content: \"\\e197\"; }\n\n.fa-bells::before {\n content: \"\\f77f\"; }\n\n.fa-person-through-window::before {\n content: \"\\e5a9\"; }\n\n.fa-toolbox::before {\n content: \"\\f552\"; }\n\n.fa-envelope-dot::before {\n content: \"\\e16f\"; }\n\n.fa-envelope-badge::before {\n content: \"\\e16f\"; }\n\n.fa-magnifying-glass-waveform::before {\n content: \"\\e661\"; }\n\n.fa-hands-holding-circle::before {\n content: \"\\e4fb\"; }\n\n.fa-bug::before {\n content: \"\\f188\"; }\n\n.fa-bowl-chopsticks::before {\n content: \"\\e2e9\"; }\n\n.fa-credit-card::before {\n content: \"\\f09d\"; }\n\n.fa-credit-card-alt::before {\n content: \"\\f09d\"; }\n\n.fa-circle-s::before {\n content: \"\\e121\"; }\n\n.fa-box-ballot::before {\n content: \"\\f735\"; }\n\n.fa-car::before {\n content: \"\\f1b9\"; }\n\n.fa-automobile::before {\n content: \"\\f1b9\"; }\n\n.fa-hand-holding-hand::before {\n content: \"\\e4f7\"; }\n\n.fa-user-tie-hair::before {\n content: \"\\e45f\"; }\n\n.fa-podium-star::before {\n content: \"\\f758\"; }\n\n.fa-user-hair-mullet::before {\n content: \"\\e45c\"; }\n\n.fa-business-front::before {\n content: \"\\e45c\"; }\n\n.fa-party-back::before {\n content: \"\\e45c\"; }\n\n.fa-trian-balbot::before {\n content: \"\\e45c\"; }\n\n.fa-microphone-stand::before {\n content: \"\\f8cb\"; }\n\n.fa-book-open-reader::before {\n content: \"\\f5da\"; }\n\n.fa-book-reader::before {\n content: \"\\f5da\"; }\n\n.fa-family-dress::before {\n content: \"\\e301\"; }\n\n.fa-circle-x::before {\n content: \"\\e12e\"; }\n\n.fa-cabin::before {\n content: \"\\e46d\"; }\n\n.fa-mountain-sun::before {\n content: \"\\e52f\"; }\n\n.fa-chart-simple-horizontal::before {\n content: \"\\e474\"; }\n\n.fa-arrows-left-right-to-line::before {\n content: \"\\e4ba\"; }\n\n.fa-hand-back-point-left::before {\n content: \"\\e19f\"; }\n\n.fa-message-dots::before {\n content: \"\\f4a3\"; }\n\n.fa-comment-alt-dots::before {\n content: \"\\f4a3\"; }\n\n.fa-messaging::before {\n content: \"\\f4a3\"; }\n\n.fa-file-heart::before {\n content: \"\\e176\"; }\n\n.fa-beer-mug::before {\n content: \"\\e0b3\"; }\n\n.fa-beer-foam::before {\n content: \"\\e0b3\"; }\n\n.fa-dice-d20::before {\n content: \"\\f6cf\"; }\n\n.fa-drone::before {\n content: \"\\f85f\"; }\n\n.fa-truck-droplet::before {\n content: \"\\e58c\"; }\n\n.fa-file-circle-xmark::before {\n content: \"\\e5a1\"; }\n\n.fa-temperature-arrow-up::before {\n content: \"\\e040\"; }\n\n.fa-temperature-up::before {\n content: \"\\e040\"; }\n\n.fa-medal::before {\n content: \"\\f5a2\"; }\n\n.fa-person-fairy::before {\n content: \"\\e608\"; }\n\n.fa-bed::before {\n content: \"\\f236\"; }\n\n.fa-book-copy::before {\n content: \"\\e0be\"; }\n\n.fa-square-h::before {\n content: \"\\f0fd\"; }\n\n.fa-h-square::before {\n content: \"\\f0fd\"; }\n\n.fa-square-c::before {\n content: \"\\e266\"; }\n\n.fa-clock-two::before {\n content: \"\\e35a\"; }\n\n.fa-square-ellipsis-vertical::before {\n content: \"\\e26f\"; }\n\n.fa-calendar-users::before {\n content: \"\\e5e2\"; }\n\n.fa-podcast::before {\n content: \"\\f2ce\"; }\n\n.fa-bee::before {\n content: \"\\e0b2\"; }\n\n.fa-temperature-full::before {\n content: \"\\f2c7\"; }\n\n.fa-temperature-4::before {\n content: \"\\f2c7\"; }\n\n.fa-thermometer-4::before {\n content: \"\\f2c7\"; }\n\n.fa-thermometer-full::before {\n content: \"\\f2c7\"; }\n\n.fa-bell::before {\n content: \"\\f0f3\"; }\n\n.fa-candy-bar::before {\n content: \"\\e3e8\"; }\n\n.fa-chocolate-bar::before {\n content: \"\\e3e8\"; }\n\n.fa-xmark-large::before {\n content: \"\\e59b\"; }\n\n.fa-pinata::before {\n content: \"\\e3c3\"; }\n\n.fa-file-ppt::before {\n content: \"\\e64a\"; }\n\n.fa-arrows-from-line::before {\n content: \"\\e0a4\"; }\n\n.fa-superscript::before {\n content: \"\\f12b\"; }\n\n.fa-bowl-spoon::before {\n content: \"\\e3e0\"; }\n\n.fa-hexagon-check::before {\n content: \"\\e416\"; }\n\n.fa-plug-circle-xmark::before {\n content: \"\\e560\"; }\n\n.fa-star-of-life::before {\n content: \"\\f621\"; }\n\n.fa-phone-slash::before {\n content: \"\\f3dd\"; }\n\n.fa-traffic-light-stop::before {\n content: \"\\f63a\"; }\n\n.fa-paint-roller::before {\n content: \"\\f5aa\"; }\n\n.fa-accent-grave::before {\n content: \"\\60\"; }\n\n.fa-handshake-angle::before {\n content: \"\\f4c4\"; }\n\n.fa-hands-helping::before {\n content: \"\\f4c4\"; }\n\n.fa-circle-0::before {\n content: \"\\e0ed\"; }\n\n.fa-dial-med-low::before {\n content: \"\\e160\"; }\n\n.fa-location-dot::before {\n content: \"\\f3c5\"; }\n\n.fa-map-marker-alt::before {\n content: \"\\f3c5\"; }\n\n.fa-crab::before {\n content: \"\\e3ff\"; }\n\n.fa-box-open-full::before {\n content: \"\\f49c\"; }\n\n.fa-box-full::before {\n content: \"\\f49c\"; }\n\n.fa-file::before {\n content: \"\\f15b\"; }\n\n.fa-greater-than::before {\n content: \"\\3e\"; }\n\n.fa-quotes::before {\n content: \"\\e234\"; }\n\n.fa-pretzel::before {\n content: \"\\e441\"; }\n\n.fa-t-rex::before {\n content: \"\\e629\"; }\n\n.fa-person-swimming::before {\n content: \"\\f5c4\"; }\n\n.fa-swimmer::before {\n content: \"\\f5c4\"; }\n\n.fa-arrow-down::before {\n content: \"\\f063\"; }\n\n.fa-user-robot-xmarks::before {\n content: \"\\e4a7\"; }\n\n.fa-message-quote::before {\n content: \"\\e1e4\"; }\n\n.fa-comment-alt-quote::before {\n content: \"\\e1e4\"; }\n\n.fa-candy-corn::before {\n content: \"\\f6bd\"; }\n\n.fa-folder-magnifying-glass::before {\n content: \"\\e18b\"; }\n\n.fa-folder-search::before {\n content: \"\\e18b\"; }\n\n.fa-notebook::before {\n content: \"\\e201\"; }\n\n.fa-circle-wifi::before {\n content: \"\\e67d\"; }\n\n.fa-droplet::before {\n content: \"\\f043\"; }\n\n.fa-tint::before {\n content: \"\\f043\"; }\n\n.fa-bullseye-pointer::before {\n content: \"\\f649\"; }\n\n.fa-eraser::before {\n content: \"\\f12d\"; }\n\n.fa-hexagon-image::before {\n content: \"\\e504\"; }\n\n.fa-earth-americas::before {\n content: \"\\f57d\"; }\n\n.fa-earth::before {\n content: \"\\f57d\"; }\n\n.fa-earth-america::before {\n content: \"\\f57d\"; }\n\n.fa-globe-americas::before {\n content: \"\\f57d\"; }\n\n.fa-file-svg::before {\n content: \"\\e64b\"; }\n\n.fa-crate-apple::before {\n content: \"\\f6b1\"; }\n\n.fa-apple-crate::before {\n content: \"\\f6b1\"; }\n\n.fa-person-burst::before {\n content: \"\\e53b\"; }\n\n.fa-game-board::before {\n content: \"\\f867\"; }\n\n.fa-hat-chef::before {\n content: \"\\f86b\"; }\n\n.fa-hand-back-point-right::before {\n content: \"\\e1a1\"; }\n\n.fa-dove::before {\n content: \"\\f4ba\"; }\n\n.fa-snowflake-droplets::before {\n content: \"\\e5c1\"; }\n\n.fa-battery-empty::before {\n content: \"\\f244\"; }\n\n.fa-battery-0::before {\n content: \"\\f244\"; }\n\n.fa-grid-4::before {\n content: \"\\e198\"; }\n\n.fa-socks::before {\n content: \"\\f696\"; }\n\n.fa-face-sunglasses::before {\n content: \"\\e398\"; }\n\n.fa-inbox::before {\n content: \"\\f01c\"; }\n\n.fa-square-0::before {\n content: \"\\e255\"; }\n\n.fa-section::before {\n content: \"\\e447\"; }\n\n.fa-square-this-way-up::before {\n content: \"\\f49f\"; }\n\n.fa-box-up::before {\n content: \"\\f49f\"; }\n\n.fa-gauge-high::before {\n content: \"\\f625\"; }\n\n.fa-tachometer-alt::before {\n content: \"\\f625\"; }\n\n.fa-tachometer-alt-fast::before {\n content: \"\\f625\"; }\n\n.fa-square-ampersand::before {\n content: \"\\e260\"; }\n\n.fa-envelope-open-text::before {\n content: \"\\f658\"; }\n\n.fa-lamp-desk::before {\n content: \"\\e014\"; }\n\n.fa-hospital::before {\n content: \"\\f0f8\"; }\n\n.fa-hospital-alt::before {\n content: \"\\f0f8\"; }\n\n.fa-hospital-wide::before {\n content: \"\\f0f8\"; }\n\n.fa-poll-people::before {\n content: \"\\f759\"; }\n\n.fa-whiskey-glass-ice::before {\n content: \"\\f7a1\"; }\n\n.fa-glass-whiskey-rocks::before {\n content: \"\\f7a1\"; }\n\n.fa-wine-bottle::before {\n content: \"\\f72f\"; }\n\n.fa-chess-rook::before {\n content: \"\\f447\"; }\n\n.fa-user-bounty-hunter::before {\n content: \"\\e2bf\"; }\n\n.fa-bars-staggered::before {\n content: \"\\f550\"; }\n\n.fa-reorder::before {\n content: \"\\f550\"; }\n\n.fa-stream::before {\n content: \"\\f550\"; }\n\n.fa-diagram-sankey::before {\n content: \"\\e158\"; }\n\n.fa-cloud-hail-mixed::before {\n content: \"\\f73a\"; }\n\n.fa-circle-up-left::before {\n content: \"\\e128\"; }\n\n.fa-dharmachakra::before {\n content: \"\\f655\"; }\n\n.fa-objects-align-left::before {\n content: \"\\e3be\"; }\n\n.fa-oil-can-drip::before {\n content: \"\\e205\"; }\n\n.fa-face-smiling-hands::before {\n content: \"\\e396\"; }\n\n.fa-broccoli::before {\n content: \"\\e3e2\"; }\n\n.fa-route-interstate::before {\n content: \"\\f61b\"; }\n\n.fa-ear-muffs::before {\n content: \"\\f795\"; }\n\n.fa-hotdog::before {\n content: \"\\f80f\"; }\n\n.fa-transporter-empty::before {\n content: \"\\e046\"; }\n\n.fa-person-walking-with-cane::before {\n content: \"\\f29d\"; }\n\n.fa-blind::before {\n content: \"\\f29d\"; }\n\n.fa-angle-90::before {\n content: \"\\e08d\"; }\n\n.fa-rectangle-terminal::before {\n content: \"\\e236\"; }\n\n.fa-kite::before {\n content: \"\\f6f4\"; }\n\n.fa-drum::before {\n content: \"\\f569\"; }\n\n.fa-scrubber::before {\n content: \"\\f2f8\"; }\n\n.fa-ice-cream::before {\n content: \"\\f810\"; }\n\n.fa-heart-circle-bolt::before {\n content: \"\\e4fc\"; }\n\n.fa-fish-bones::before {\n content: \"\\e304\"; }\n\n.fa-deer-rudolph::before {\n content: \"\\f78f\"; }\n\n.fa-fax::before {\n content: \"\\f1ac\"; }\n\n.fa-paragraph::before {\n content: \"\\f1dd\"; }\n\n.fa-head-side-heart::before {\n content: \"\\e1aa\"; }\n\n.fa-square-e::before {\n content: \"\\e26d\"; }\n\n.fa-meter-fire::before {\n content: \"\\e1eb\"; }\n\n.fa-cloud-hail::before {\n content: \"\\f739\"; }\n\n.fa-check-to-slot::before {\n content: \"\\f772\"; }\n\n.fa-vote-yea::before {\n content: \"\\f772\"; }\n\n.fa-money-from-bracket::before {\n content: \"\\e312\"; }\n\n.fa-star-half::before {\n content: \"\\f089\"; }\n\n.fa-car-bus::before {\n content: \"\\f85a\"; }\n\n.fa-speaker::before {\n content: \"\\f8df\"; }\n\n.fa-timer::before {\n content: \"\\e29e\"; }\n\n.fa-boxes-stacked::before {\n content: \"\\f468\"; }\n\n.fa-boxes::before {\n content: \"\\f468\"; }\n\n.fa-boxes-alt::before {\n content: \"\\f468\"; }\n\n.fa-landmark-magnifying-glass::before {\n content: \"\\e622\"; }\n\n.fa-grill-hot::before {\n content: \"\\e5a5\"; }\n\n.fa-ballot-check::before {\n content: \"\\f733\"; }\n\n.fa-link::before {\n content: \"\\f0c1\"; }\n\n.fa-chain::before {\n content: \"\\f0c1\"; }\n\n.fa-ear-listen::before {\n content: \"\\f2a2\"; }\n\n.fa-assistive-listening-systems::before {\n content: \"\\f2a2\"; }\n\n.fa-file-minus::before {\n content: \"\\f318\"; }\n\n.fa-tree-city::before {\n content: \"\\e587\"; }\n\n.fa-play::before {\n content: \"\\f04b\"; }\n\n.fa-font::before {\n content: \"\\f031\"; }\n\n.fa-cup-togo::before {\n content: \"\\f6c5\"; }\n\n.fa-coffee-togo::before {\n content: \"\\f6c5\"; }\n\n.fa-square-down-left::before {\n content: \"\\e26b\"; }\n\n.fa-burger-lettuce::before {\n content: \"\\e3e3\"; }\n\n.fa-table-cells-row-lock::before {\n content: \"\\e67a\"; }\n\n.fa-rupiah-sign::before {\n content: \"\\e23d\"; }\n\n.fa-magnifying-glass::before {\n content: \"\\f002\"; }\n\n.fa-search::before {\n content: \"\\f002\"; }\n\n.fa-table-tennis-paddle-ball::before {\n content: \"\\f45d\"; }\n\n.fa-ping-pong-paddle-ball::before {\n content: \"\\f45d\"; }\n\n.fa-table-tennis::before {\n content: \"\\f45d\"; }\n\n.fa-person-dots-from-line::before {\n content: \"\\f470\"; }\n\n.fa-diagnoses::before {\n content: \"\\f470\"; }\n\n.fa-chevrons-down::before {\n content: \"\\f322\"; }\n\n.fa-chevron-double-down::before {\n content: \"\\f322\"; }\n\n.fa-trash-can-arrow-up::before {\n content: \"\\f82a\"; }\n\n.fa-trash-restore-alt::before {\n content: \"\\f82a\"; }\n\n.fa-signal-good::before {\n content: \"\\f68e\"; }\n\n.fa-signal-3::before {\n content: \"\\f68e\"; }\n\n.fa-location-question::before {\n content: \"\\f60b\"; }\n\n.fa-map-marker-question::before {\n content: \"\\f60b\"; }\n\n.fa-floppy-disk-circle-xmark::before {\n content: \"\\e181\"; }\n\n.fa-floppy-disk-times::before {\n content: \"\\e181\"; }\n\n.fa-save-circle-xmark::before {\n content: \"\\e181\"; }\n\n.fa-save-times::before {\n content: \"\\e181\"; }\n\n.fa-naira-sign::before {\n content: \"\\e1f6\"; }\n\n.fa-peach::before {\n content: \"\\e20b\"; }\n\n.fa-taxi-bus::before {\n content: \"\\e298\"; }\n\n.fa-bracket-curly::before {\n content: \"\\7b\"; }\n\n.fa-bracket-curly-left::before {\n content: \"\\7b\"; }\n\n.fa-lobster::before {\n content: \"\\e421\"; }\n\n.fa-cart-flatbed-empty::before {\n content: \"\\f476\"; }\n\n.fa-dolly-flatbed-empty::before {\n content: \"\\f476\"; }\n\n.fa-colon::before {\n content: \"\\3a\"; }\n\n.fa-cart-arrow-down::before {\n content: \"\\f218\"; }\n\n.fa-wand::before {\n content: \"\\f72a\"; }\n\n.fa-walkie-talkie::before {\n content: \"\\f8ef\"; }\n\n.fa-file-pen::before {\n content: \"\\f31c\"; }\n\n.fa-file-edit::before {\n content: \"\\f31c\"; }\n\n.fa-receipt::before {\n content: \"\\f543\"; }\n\n.fa-table-picnic::before {\n content: \"\\e32d\"; }\n\n.fa-square-pen::before {\n content: \"\\f14b\"; }\n\n.fa-pen-square::before {\n content: \"\\f14b\"; }\n\n.fa-pencil-square::before {\n content: \"\\f14b\"; }\n\n.fa-circle-microphone-lines::before {\n content: \"\\e117\"; }\n\n.fa-microphone-circle-alt::before {\n content: \"\\e117\"; }\n\n.fa-display-slash::before {\n content: \"\\e2fa\"; }\n\n.fa-desktop-slash::before {\n content: \"\\e2fa\"; }\n\n.fa-suitcase-rolling::before {\n content: \"\\f5c1\"; }\n\n.fa-person-circle-exclamation::before {\n content: \"\\e53f\"; }\n\n.fa-transporter-2::before {\n content: \"\\e044\"; }\n\n.fa-hands-holding-diamond::before {\n content: \"\\f47c\"; }\n\n.fa-hand-receiving::before {\n content: \"\\f47c\"; }\n\n.fa-money-bill-simple-wave::before {\n content: \"\\e1f2\"; }\n\n.fa-chevron-down::before {\n content: \"\\f078\"; }\n\n.fa-battery-full::before {\n content: \"\\f240\"; }\n\n.fa-battery::before {\n content: \"\\f240\"; }\n\n.fa-battery-5::before {\n content: \"\\f240\"; }\n\n.fa-bell-plus::before {\n content: \"\\f849\"; }\n\n.fa-book-arrow-right::before {\n content: \"\\e0b9\"; }\n\n.fa-hospitals::before {\n content: \"\\f80e\"; }\n\n.fa-club::before {\n content: \"\\f327\"; }\n\n.fa-skull-crossbones::before {\n content: \"\\f714\"; }\n\n.fa-droplet-degree::before {\n content: \"\\f748\"; }\n\n.fa-dewpoint::before {\n content: \"\\f748\"; }\n\n.fa-code-compare::before {\n content: \"\\e13a\"; }\n\n.fa-list-ul::before {\n content: \"\\f0ca\"; }\n\n.fa-list-dots::before {\n content: \"\\f0ca\"; }\n\n.fa-hand-holding-magic::before {\n content: \"\\f6e5\"; }\n\n.fa-watermelon-slice::before {\n content: \"\\e337\"; }\n\n.fa-circle-ellipsis::before {\n content: \"\\e10a\"; }\n\n.fa-school-lock::before {\n content: \"\\e56f\"; }\n\n.fa-tower-cell::before {\n content: \"\\e585\"; }\n\n.fa-sd-cards::before {\n content: \"\\e240\"; }\n\n.fa-jug-bottle::before {\n content: \"\\e5fb\"; }\n\n.fa-down-long::before {\n content: \"\\f309\"; }\n\n.fa-long-arrow-alt-down::before {\n content: \"\\f309\"; }\n\n.fa-envelopes::before {\n content: \"\\e170\"; }\n\n.fa-phone-office::before {\n content: \"\\f67d\"; }\n\n.fa-ranking-star::before {\n content: \"\\e561\"; }\n\n.fa-chess-king::before {\n content: \"\\f43f\"; }\n\n.fa-nfc-pen::before {\n content: \"\\e1fa\"; }\n\n.fa-person-harassing::before {\n content: \"\\e549\"; }\n\n.fa-magnifying-glass-play::before {\n content: \"\\e660\"; }\n\n.fa-hat-winter::before {\n content: \"\\f7a8\"; }\n\n.fa-brazilian-real-sign::before {\n content: \"\\e46c\"; }\n\n.fa-landmark-dome::before {\n content: \"\\f752\"; }\n\n.fa-landmark-alt::before {\n content: \"\\f752\"; }\n\n.fa-bone-break::before {\n content: \"\\f5d8\"; }\n\n.fa-arrow-up::before {\n content: \"\\f062\"; }\n\n.fa-down-from-dotted-line::before {\n content: \"\\e407\"; }\n\n.fa-tv::before {\n content: \"\\f26c\"; }\n\n.fa-television::before {\n content: \"\\f26c\"; }\n\n.fa-tv-alt::before {\n content: \"\\f26c\"; }\n\n.fa-border-left::before {\n content: \"\\f84f\"; }\n\n.fa-circle-divide::before {\n content: \"\\e106\"; }\n\n.fa-shrimp::before {\n content: \"\\e448\"; }\n\n.fa-list-check::before {\n content: \"\\f0ae\"; }\n\n.fa-tasks::before {\n content: \"\\f0ae\"; }\n\n.fa-diagram-subtask::before {\n content: \"\\e479\"; }\n\n.fa-jug-detergent::before {\n content: \"\\e519\"; }\n\n.fa-circle-user::before {\n content: \"\\f2bd\"; }\n\n.fa-user-circle::before {\n content: \"\\f2bd\"; }\n\n.fa-square-y::before {\n content: \"\\e287\"; }\n\n.fa-user-doctor-hair::before {\n content: \"\\e458\"; }\n\n.fa-planet-ringed::before {\n content: \"\\e020\"; }\n\n.fa-mushroom::before {\n content: \"\\e425\"; }\n\n.fa-user-shield::before {\n content: \"\\f505\"; }\n\n.fa-megaphone::before {\n content: \"\\f675\"; }\n\n.fa-wreath-laurel::before {\n content: \"\\e5d2\"; }\n\n.fa-circle-exclamation-check::before {\n content: \"\\e10d\"; }\n\n.fa-wind::before {\n content: \"\\f72e\"; }\n\n.fa-box-dollar::before {\n content: \"\\f4a0\"; }\n\n.fa-box-usd::before {\n content: \"\\f4a0\"; }\n\n.fa-car-burst::before {\n content: \"\\f5e1\"; }\n\n.fa-car-crash::before {\n content: \"\\f5e1\"; }\n\n.fa-y::before {\n content: \"\\59\"; }\n\n.fa-user-headset::before {\n content: \"\\f82d\"; }\n\n.fa-arrows-retweet::before {\n content: \"\\f361\"; }\n\n.fa-retweet-alt::before {\n content: \"\\f361\"; }\n\n.fa-person-snowboarding::before {\n content: \"\\f7ce\"; }\n\n.fa-snowboarding::before {\n content: \"\\f7ce\"; }\n\n.fa-square-chevron-right::before {\n content: \"\\f32b\"; }\n\n.fa-chevron-square-right::before {\n content: \"\\f32b\"; }\n\n.fa-lacrosse-stick-ball::before {\n content: \"\\e3b6\"; }\n\n.fa-truck-fast::before {\n content: \"\\f48b\"; }\n\n.fa-shipping-fast::before {\n content: \"\\f48b\"; }\n\n.fa-user-magnifying-glass::before {\n content: \"\\e5c5\"; }\n\n.fa-star-sharp::before {\n content: \"\\e28b\"; }\n\n.fa-comment-heart::before {\n content: \"\\e5c8\"; }\n\n.fa-circle-1::before {\n content: \"\\e0ee\"; }\n\n.fa-circle-star::before {\n content: \"\\e123\"; }\n\n.fa-star-circle::before {\n content: \"\\e123\"; }\n\n.fa-fish::before {\n content: \"\\f578\"; }\n\n.fa-cloud-fog::before {\n content: \"\\f74e\"; }\n\n.fa-fog::before {\n content: \"\\f74e\"; }\n\n.fa-waffle::before {\n content: \"\\e466\"; }\n\n.fa-music-note::before {\n content: \"\\f8cf\"; }\n\n.fa-music-alt::before {\n content: \"\\f8cf\"; }\n\n.fa-hexagon-exclamation::before {\n content: \"\\e417\"; }\n\n.fa-cart-shopping-fast::before {\n content: \"\\e0dc\"; }\n\n.fa-object-union::before {\n content: \"\\e49f\"; }\n\n.fa-user-graduate::before {\n content: \"\\f501\"; }\n\n.fa-starfighter::before {\n content: \"\\e037\"; }\n\n.fa-circle-half-stroke::before {\n content: \"\\f042\"; }\n\n.fa-adjust::before {\n content: \"\\f042\"; }\n\n.fa-arrow-right-long-to-line::before {\n content: \"\\e3d5\"; }\n\n.fa-square-arrow-down::before {\n content: \"\\f339\"; }\n\n.fa-arrow-square-down::before {\n content: \"\\f339\"; }\n\n.fa-diamond-half-stroke::before {\n content: \"\\e5b8\"; }\n\n.fa-clapperboard::before {\n content: \"\\e131\"; }\n\n.fa-square-chevron-left::before {\n content: \"\\f32a\"; }\n\n.fa-chevron-square-left::before {\n content: \"\\f32a\"; }\n\n.fa-phone-intercom::before {\n content: \"\\e434\"; }\n\n.fa-link-horizontal::before {\n content: \"\\e1cb\"; }\n\n.fa-chain-horizontal::before {\n content: \"\\e1cb\"; }\n\n.fa-mango::before {\n content: \"\\e30f\"; }\n\n.fa-music-note-slash::before {\n content: \"\\f8d0\"; }\n\n.fa-music-alt-slash::before {\n content: \"\\f8d0\"; }\n\n.fa-circle-radiation::before {\n content: \"\\f7ba\"; }\n\n.fa-radiation-alt::before {\n content: \"\\f7ba\"; }\n\n.fa-face-tongue-sweat::before {\n content: \"\\e39e\"; }\n\n.fa-globe-stand::before {\n content: \"\\f5f6\"; }\n\n.fa-baseball::before {\n content: \"\\f433\"; }\n\n.fa-baseball-ball::before {\n content: \"\\f433\"; }\n\n.fa-circle-p::before {\n content: \"\\e11a\"; }\n\n.fa-award-simple::before {\n content: \"\\e0ab\"; }\n\n.fa-jet-fighter-up::before {\n content: \"\\e518\"; }\n\n.fa-diagram-project::before {\n content: \"\\f542\"; }\n\n.fa-project-diagram::before {\n content: \"\\f542\"; }\n\n.fa-pedestal::before {\n content: \"\\e20d\"; }\n\n.fa-chart-pyramid::before {\n content: \"\\e0e6\"; }\n\n.fa-sidebar::before {\n content: \"\\e24e\"; }\n\n.fa-snowman-head::before {\n content: \"\\f79b\"; }\n\n.fa-frosty-head::before {\n content: \"\\f79b\"; }\n\n.fa-copy::before {\n content: \"\\f0c5\"; }\n\n.fa-burger-glass::before {\n content: \"\\e0ce\"; }\n\n.fa-volume-xmark::before {\n content: \"\\f6a9\"; }\n\n.fa-volume-mute::before {\n content: \"\\f6a9\"; }\n\n.fa-volume-times::before {\n content: \"\\f6a9\"; }\n\n.fa-hand-sparkles::before {\n content: \"\\e05d\"; }\n\n.fa-bars-filter::before {\n content: \"\\e0ad\"; }\n\n.fa-paintbrush-pencil::before {\n content: \"\\e206\"; }\n\n.fa-party-bell::before {\n content: \"\\e31a\"; }\n\n.fa-user-vneck-hair::before {\n content: \"\\e462\"; }\n\n.fa-jack-o-lantern::before {\n content: \"\\f30e\"; }\n\n.fa-grip::before {\n content: \"\\f58d\"; }\n\n.fa-grip-horizontal::before {\n content: \"\\f58d\"; }\n\n.fa-share-from-square::before {\n content: \"\\f14d\"; }\n\n.fa-share-square::before {\n content: \"\\f14d\"; }\n\n.fa-keynote::before {\n content: \"\\f66c\"; }\n\n.fa-child-combatant::before {\n content: \"\\e4e0\"; }\n\n.fa-child-rifle::before {\n content: \"\\e4e0\"; }\n\n.fa-gun::before {\n content: \"\\e19b\"; }\n\n.fa-square-phone::before {\n content: \"\\f098\"; }\n\n.fa-phone-square::before {\n content: \"\\f098\"; }\n\n.fa-hat-beach::before {\n content: \"\\e606\"; }\n\n.fa-plus::before {\n content: \"\\2b\"; }\n\n.fa-add::before {\n content: \"\\2b\"; }\n\n.fa-expand::before {\n content: \"\\f065\"; }\n\n.fa-computer::before {\n content: \"\\e4e5\"; }\n\n.fa-fort::before {\n content: \"\\e486\"; }\n\n.fa-cloud-check::before {\n content: \"\\e35c\"; }\n\n.fa-xmark::before {\n content: \"\\f00d\"; }\n\n.fa-close::before {\n content: \"\\f00d\"; }\n\n.fa-multiply::before {\n content: \"\\f00d\"; }\n\n.fa-remove::before {\n content: \"\\f00d\"; }\n\n.fa-times::before {\n content: \"\\f00d\"; }\n\n.fa-face-smirking::before {\n content: \"\\e397\"; }\n\n.fa-arrows-up-down-left-right::before {\n content: \"\\f047\"; }\n\n.fa-arrows::before {\n content: \"\\f047\"; }\n\n.fa-chalkboard-user::before {\n content: \"\\f51c\"; }\n\n.fa-chalkboard-teacher::before {\n content: \"\\f51c\"; }\n\n.fa-rhombus::before {\n content: \"\\e23b\"; }\n\n.fa-claw-marks::before {\n content: \"\\f6c2\"; }\n\n.fa-peso-sign::before {\n content: \"\\e222\"; }\n\n.fa-face-smile-tongue::before {\n content: \"\\e394\"; }\n\n.fa-cart-circle-xmark::before {\n content: \"\\e3f4\"; }\n\n.fa-building-shield::before {\n content: \"\\e4d8\"; }\n\n.fa-circle-phone-flip::before {\n content: \"\\e11c\"; }\n\n.fa-phone-circle-alt::before {\n content: \"\\e11c\"; }\n\n.fa-baby::before {\n content: \"\\f77c\"; }\n\n.fa-users-line::before {\n content: \"\\e592\"; }\n\n.fa-quote-left::before {\n content: \"\\f10d\"; }\n\n.fa-quote-left-alt::before {\n content: \"\\f10d\"; }\n\n.fa-tractor::before {\n content: \"\\f722\"; }\n\n.fa-down-from-bracket::before {\n content: \"\\e66b\"; }\n\n.fa-key-skeleton::before {\n content: \"\\f6f3\"; }\n\n.fa-trash-arrow-up::before {\n content: \"\\f829\"; }\n\n.fa-trash-restore::before {\n content: \"\\f829\"; }\n\n.fa-arrow-down-up-lock::before {\n content: \"\\e4b0\"; }\n\n.fa-arrow-down-to-bracket::before {\n content: \"\\e094\"; }\n\n.fa-lines-leaning::before {\n content: \"\\e51e\"; }\n\n.fa-square-q::before {\n content: \"\\e27b\"; }\n\n.fa-ruler-combined::before {\n content: \"\\f546\"; }\n\n.fa-symbols::before {\n content: \"\\f86e\"; }\n\n.fa-icons-alt::before {\n content: \"\\f86e\"; }\n\n.fa-copyright::before {\n content: \"\\f1f9\"; }\n\n.fa-flask-gear::before {\n content: \"\\e5f1\"; }\n\n.fa-highlighter-line::before {\n content: \"\\e1af\"; }\n\n.fa-bracket-square::before {\n content: \"\\5b\"; }\n\n.fa-bracket::before {\n content: \"\\5b\"; }\n\n.fa-bracket-left::before {\n content: \"\\5b\"; }\n\n.fa-island-tropical::before {\n content: \"\\f811\"; }\n\n.fa-island-tree-palm::before {\n content: \"\\f811\"; }\n\n.fa-arrow-right-from-line::before {\n content: \"\\f343\"; }\n\n.fa-arrow-from-left::before {\n content: \"\\f343\"; }\n\n.fa-h2::before {\n content: \"\\f314\"; }\n\n.fa-equals::before {\n content: \"\\3d\"; }\n\n.fa-cake-slice::before {\n content: \"\\e3e5\"; }\n\n.fa-shortcake::before {\n content: \"\\e3e5\"; }\n\n.fa-building-magnifying-glass::before {\n content: \"\\e61c\"; }\n\n.fa-peanut::before {\n content: \"\\e430\"; }\n\n.fa-wrench-simple::before {\n content: \"\\e2d1\"; }\n\n.fa-blender::before {\n content: \"\\f517\"; }\n\n.fa-teeth::before {\n content: \"\\f62e\"; }\n\n.fa-tally-2::before {\n content: \"\\e295\"; }\n\n.fa-shekel-sign::before {\n content: \"\\f20b\"; }\n\n.fa-ils::before {\n content: \"\\f20b\"; }\n\n.fa-shekel::before {\n content: \"\\f20b\"; }\n\n.fa-sheqel::before {\n content: \"\\f20b\"; }\n\n.fa-sheqel-sign::before {\n content: \"\\f20b\"; }\n\n.fa-cars::before {\n content: \"\\f85b\"; }\n\n.fa-axe-battle::before {\n content: \"\\f6b3\"; }\n\n.fa-user-hair-long::before {\n content: \"\\e45b\"; }\n\n.fa-map::before {\n content: \"\\f279\"; }\n\n.fa-arrow-left-from-arc::before {\n content: \"\\e615\"; }\n\n.fa-file-circle-info::before {\n content: \"\\e493\"; }\n\n.fa-face-disappointed::before {\n content: \"\\e36f\"; }\n\n.fa-lasso-sparkles::before {\n content: \"\\e1c9\"; }\n\n.fa-clock-eleven::before {\n content: \"\\e347\"; }\n\n.fa-rocket::before {\n content: \"\\f135\"; }\n\n.fa-siren-on::before {\n content: \"\\e02e\"; }\n\n.fa-clock-ten::before {\n content: \"\\e354\"; }\n\n.fa-candle-holder::before {\n content: \"\\f6bc\"; }\n\n.fa-video-arrow-down-left::before {\n content: \"\\e2c8\"; }\n\n.fa-photo-film::before {\n content: \"\\f87c\"; }\n\n.fa-photo-video::before {\n content: \"\\f87c\"; }\n\n.fa-floppy-disk-circle-arrow-right::before {\n content: \"\\e180\"; }\n\n.fa-save-circle-arrow-right::before {\n content: \"\\e180\"; }\n\n.fa-folder-minus::before {\n content: \"\\f65d\"; }\n\n.fa-planet-moon::before {\n content: \"\\e01f\"; }\n\n.fa-face-eyes-xmarks::before {\n content: \"\\e374\"; }\n\n.fa-chart-scatter::before {\n content: \"\\f7ee\"; }\n\n.fa-circle-gf::before {\n content: \"\\e67f\"; }\n\n.fa-display-arrow-down::before {\n content: \"\\e164\"; }\n\n.fa-store::before {\n content: \"\\f54e\"; }\n\n.fa-arrow-trend-up::before {\n content: \"\\e098\"; }\n\n.fa-plug-circle-minus::before {\n content: \"\\e55e\"; }\n\n.fa-olive-branch::before {\n content: \"\\e317\"; }\n\n.fa-angle::before {\n content: \"\\e08c\"; }\n\n.fa-vacuum-robot::before {\n content: \"\\e04e\"; }\n\n.fa-sign-hanging::before {\n content: \"\\f4d9\"; }\n\n.fa-sign::before {\n content: \"\\f4d9\"; }\n\n.fa-square-divide::before {\n content: \"\\e26a\"; }\n\n.fa-folder-check::before {\n content: \"\\e64e\"; }\n\n.fa-signal-stream-slash::before {\n content: \"\\e250\"; }\n\n.fa-bezier-curve::before {\n content: \"\\f55b\"; }\n\n.fa-eye-dropper-half::before {\n content: \"\\e173\"; }\n\n.fa-store-lock::before {\n content: \"\\e4a6\"; }\n\n.fa-bell-slash::before {\n content: \"\\f1f6\"; }\n\n.fa-cloud-bolt-sun::before {\n content: \"\\f76e\"; }\n\n.fa-thunderstorm-sun::before {\n content: \"\\f76e\"; }\n\n.fa-camera-slash::before {\n content: \"\\e0d9\"; }\n\n.fa-comment-quote::before {\n content: \"\\e14c\"; }\n\n.fa-tablet::before {\n content: \"\\f3fb\"; }\n\n.fa-tablet-android::before {\n content: \"\\f3fb\"; }\n\n.fa-school-flag::before {\n content: \"\\e56e\"; }\n\n.fa-message-code::before {\n content: \"\\e1df\"; }\n\n.fa-glass-half::before {\n content: \"\\e192\"; }\n\n.fa-glass-half-empty::before {\n content: \"\\e192\"; }\n\n.fa-glass-half-full::before {\n content: \"\\e192\"; }\n\n.fa-fill::before {\n content: \"\\f575\"; }\n\n.fa-message-minus::before {\n content: \"\\f4a7\"; }\n\n.fa-comment-alt-minus::before {\n content: \"\\f4a7\"; }\n\n.fa-angle-up::before {\n content: \"\\f106\"; }\n\n.fa-dinosaur::before {\n content: \"\\e5fe\"; }\n\n.fa-drumstick-bite::before {\n content: \"\\f6d7\"; }\n\n.fa-link-horizontal-slash::before {\n content: \"\\e1cc\"; }\n\n.fa-chain-horizontal-slash::before {\n content: \"\\e1cc\"; }\n\n.fa-holly-berry::before {\n content: \"\\f7aa\"; }\n\n.fa-nose::before {\n content: \"\\e5bd\"; }\n\n.fa-arrow-left-to-arc::before {\n content: \"\\e616\"; }\n\n.fa-chevron-left::before {\n content: \"\\f053\"; }\n\n.fa-bacteria::before {\n content: \"\\e059\"; }\n\n.fa-clouds::before {\n content: \"\\f744\"; }\n\n.fa-money-bill-simple::before {\n content: \"\\e1f1\"; }\n\n.fa-hand-lizard::before {\n content: \"\\f258\"; }\n\n.fa-table-pivot::before {\n content: \"\\e291\"; }\n\n.fa-filter-slash::before {\n content: \"\\e17d\"; }\n\n.fa-trash-can-undo::before {\n content: \"\\f896\"; }\n\n.fa-trash-can-arrow-turn-left::before {\n content: \"\\f896\"; }\n\n.fa-trash-undo-alt::before {\n content: \"\\f896\"; }\n\n.fa-notdef::before {\n content: \"\\e1fe\"; }\n\n.fa-disease::before {\n content: \"\\f7fa\"; }\n\n.fa-person-to-door::before {\n content: \"\\e433\"; }\n\n.fa-turntable::before {\n content: \"\\f8e4\"; }\n\n.fa-briefcase-medical::before {\n content: \"\\f469\"; }\n\n.fa-genderless::before {\n content: \"\\f22d\"; }\n\n.fa-chevron-right::before {\n content: \"\\f054\"; }\n\n.fa-signal-weak::before {\n content: \"\\f68c\"; }\n\n.fa-signal-1::before {\n content: \"\\f68c\"; }\n\n.fa-clock-five::before {\n content: \"\\e349\"; }\n\n.fa-retweet::before {\n content: \"\\f079\"; }\n\n.fa-car-rear::before {\n content: \"\\f5de\"; }\n\n.fa-car-alt::before {\n content: \"\\f5de\"; }\n\n.fa-pump-soap::before {\n content: \"\\e06b\"; }\n\n.fa-computer-classic::before {\n content: \"\\f8b1\"; }\n\n.fa-frame::before {\n content: \"\\e495\"; }\n\n.fa-video-slash::before {\n content: \"\\f4e2\"; }\n\n.fa-battery-quarter::before {\n content: \"\\f243\"; }\n\n.fa-battery-2::before {\n content: \"\\f243\"; }\n\n.fa-ellipsis-stroke::before {\n content: \"\\f39b\"; }\n\n.fa-ellipsis-h-alt::before {\n content: \"\\f39b\"; }\n\n.fa-radio::before {\n content: \"\\f8d7\"; }\n\n.fa-baby-carriage::before {\n content: \"\\f77d\"; }\n\n.fa-carriage-baby::before {\n content: \"\\f77d\"; }\n\n.fa-face-expressionless::before {\n content: \"\\e373\"; }\n\n.fa-down-to-dotted-line::before {\n content: \"\\e408\"; }\n\n.fa-cloud-music::before {\n content: \"\\f8ae\"; }\n\n.fa-traffic-light::before {\n content: \"\\f637\"; }\n\n.fa-cloud-minus::before {\n content: \"\\e35d\"; }\n\n.fa-thermometer::before {\n content: \"\\f491\"; }\n\n.fa-shield-minus::before {\n content: \"\\e249\"; }\n\n.fa-vr-cardboard::before {\n content: \"\\f729\"; }\n\n.fa-car-tilt::before {\n content: \"\\f5e5\"; }\n\n.fa-gauge-circle-minus::before {\n content: \"\\e497\"; }\n\n.fa-brightness-low::before {\n content: \"\\e0ca\"; }\n\n.fa-hand-middle-finger::before {\n content: \"\\f806\"; }\n\n.fa-percent::before {\n content: \"\\25\"; }\n\n.fa-percentage::before {\n content: \"\\25\"; }\n\n.fa-truck-moving::before {\n content: \"\\f4df\"; }\n\n.fa-glass-water-droplet::before {\n content: \"\\e4f5\"; }\n\n.fa-conveyor-belt::before {\n content: \"\\f46e\"; }\n\n.fa-location-check::before {\n content: \"\\f606\"; }\n\n.fa-map-marker-check::before {\n content: \"\\f606\"; }\n\n.fa-coin-vertical::before {\n content: \"\\e3fd\"; }\n\n.fa-display::before {\n content: \"\\e163\"; }\n\n.fa-person-sign::before {\n content: \"\\f757\"; }\n\n.fa-face-smile::before {\n content: \"\\f118\"; }\n\n.fa-smile::before {\n content: \"\\f118\"; }\n\n.fa-phone-hangup::before {\n content: \"\\e225\"; }\n\n.fa-signature-slash::before {\n content: \"\\e3cb\"; }\n\n.fa-thumbtack::before {\n content: \"\\f08d\"; }\n\n.fa-thumb-tack::before {\n content: \"\\f08d\"; }\n\n.fa-wheat-slash::before {\n content: \"\\e339\"; }\n\n.fa-trophy::before {\n content: \"\\f091\"; }\n\n.fa-clouds-sun::before {\n content: \"\\f746\"; }\n\n.fa-person-praying::before {\n content: \"\\f683\"; }\n\n.fa-pray::before {\n content: \"\\f683\"; }\n\n.fa-hammer::before {\n content: \"\\f6e3\"; }\n\n.fa-face-vomit::before {\n content: \"\\e3a0\"; }\n\n.fa-speakers::before {\n content: \"\\f8e0\"; }\n\n.fa-tty-answer::before {\n content: \"\\e2b9\"; }\n\n.fa-teletype-answer::before {\n content: \"\\e2b9\"; }\n\n.fa-mug-tea-saucer::before {\n content: \"\\e1f5\"; }\n\n.fa-diagram-lean-canvas::before {\n content: \"\\e156\"; }\n\n.fa-alt::before {\n content: \"\\e08a\"; }\n\n.fa-dial::before {\n content: \"\\e15b\"; }\n\n.fa-dial-med-high::before {\n content: \"\\e15b\"; }\n\n.fa-hand-peace::before {\n content: \"\\f25b\"; }\n\n.fa-circle-trash::before {\n content: \"\\e126\"; }\n\n.fa-trash-circle::before {\n content: \"\\e126\"; }\n\n.fa-rotate::before {\n content: \"\\f2f1\"; }\n\n.fa-sync-alt::before {\n content: \"\\f2f1\"; }\n\n.fa-circle-quarters::before {\n content: \"\\e3f8\"; }\n\n.fa-spinner::before {\n content: \"\\f110\"; }\n\n.fa-tower-control::before {\n content: \"\\e2a2\"; }\n\n.fa-arrow-up-triangle-square::before {\n content: \"\\f88a\"; }\n\n.fa-sort-shapes-up::before {\n content: \"\\f88a\"; }\n\n.fa-whale::before {\n content: \"\\f72c\"; }\n\n.fa-robot::before {\n content: \"\\f544\"; }\n\n.fa-peace::before {\n content: \"\\f67c\"; }\n\n.fa-party-horn::before {\n content: \"\\e31b\"; }\n\n.fa-gears::before {\n content: \"\\f085\"; }\n\n.fa-cogs::before {\n content: \"\\f085\"; }\n\n.fa-sun-bright::before {\n content: \"\\e28f\"; }\n\n.fa-sun-alt::before {\n content: \"\\e28f\"; }\n\n.fa-warehouse::before {\n content: \"\\f494\"; }\n\n.fa-conveyor-belt-arm::before {\n content: \"\\e5f8\"; }\n\n.fa-lock-keyhole-open::before {\n content: \"\\f3c2\"; }\n\n.fa-lock-open-alt::before {\n content: \"\\f3c2\"; }\n\n.fa-square-fragile::before {\n content: \"\\f49b\"; }\n\n.fa-box-fragile::before {\n content: \"\\f49b\"; }\n\n.fa-square-wine-glass-crack::before {\n content: \"\\f49b\"; }\n\n.fa-arrow-up-right-dots::before {\n content: \"\\e4b7\"; }\n\n.fa-square-n::before {\n content: \"\\e277\"; }\n\n.fa-splotch::before {\n content: \"\\f5bc\"; }\n\n.fa-face-grin-hearts::before {\n content: \"\\f584\"; }\n\n.fa-grin-hearts::before {\n content: \"\\f584\"; }\n\n.fa-meter::before {\n content: \"\\e1e8\"; }\n\n.fa-mandolin::before {\n content: \"\\f6f9\"; }\n\n.fa-dice-four::before {\n content: \"\\f524\"; }\n\n.fa-sim-card::before {\n content: \"\\f7c4\"; }\n\n.fa-transgender::before {\n content: \"\\f225\"; }\n\n.fa-transgender-alt::before {\n content: \"\\f225\"; }\n\n.fa-mercury::before {\n content: \"\\f223\"; }\n\n.fa-up-from-bracket::before {\n content: \"\\e590\"; }\n\n.fa-knife-kitchen::before {\n content: \"\\f6f5\"; }\n\n.fa-border-right::before {\n content: \"\\f852\"; }\n\n.fa-arrow-turn-down::before {\n content: \"\\f149\"; }\n\n.fa-level-down::before {\n content: \"\\f149\"; }\n\n.fa-spade::before {\n content: \"\\f2f4\"; }\n\n.fa-card-spade::before {\n content: \"\\e3ec\"; }\n\n.fa-line-columns::before {\n content: \"\\f870\"; }\n\n.fa-ant::before {\n content: \"\\e680\"; }\n\n.fa-arrow-right-to-line::before {\n content: \"\\f340\"; }\n\n.fa-arrow-to-right::before {\n content: \"\\f340\"; }\n\n.fa-person-falling-burst::before {\n content: \"\\e547\"; }\n\n.fa-flag-pennant::before {\n content: \"\\f456\"; }\n\n.fa-pennant::before {\n content: \"\\f456\"; }\n\n.fa-conveyor-belt-empty::before {\n content: \"\\e150\"; }\n\n.fa-user-group-simple::before {\n content: \"\\e603\"; }\n\n.fa-award::before {\n content: \"\\f559\"; }\n\n.fa-ticket-simple::before {\n content: \"\\f3ff\"; }\n\n.fa-ticket-alt::before {\n content: \"\\f3ff\"; }\n\n.fa-building::before {\n content: \"\\f1ad\"; }\n\n.fa-angles-left::before {\n content: \"\\f100\"; }\n\n.fa-angle-double-left::before {\n content: \"\\f100\"; }\n\n.fa-camcorder::before {\n content: \"\\f8a8\"; }\n\n.fa-video-handheld::before {\n content: \"\\f8a8\"; }\n\n.fa-pancakes::before {\n content: \"\\e42d\"; }\n\n.fa-album-circle-user::before {\n content: \"\\e48d\"; }\n\n.fa-subtitles-slash::before {\n content: \"\\e610\"; }\n\n.fa-qrcode::before {\n content: \"\\f029\"; }\n\n.fa-dice-d10::before {\n content: \"\\f6cd\"; }\n\n.fa-fireplace::before {\n content: \"\\f79a\"; }\n\n.fa-browser::before {\n content: \"\\f37e\"; }\n\n.fa-pen-paintbrush::before {\n content: \"\\f618\"; }\n\n.fa-pencil-paintbrush::before {\n content: \"\\f618\"; }\n\n.fa-fish-cooked::before {\n content: \"\\f7fe\"; }\n\n.fa-chair-office::before {\n content: \"\\f6c1\"; }\n\n.fa-magnifying-glass-music::before {\n content: \"\\e65f\"; }\n\n.fa-nesting-dolls::before {\n content: \"\\e3ba\"; }\n\n.fa-clock-rotate-left::before {\n content: \"\\f1da\"; }\n\n.fa-history::before {\n content: \"\\f1da\"; }\n\n.fa-trumpet::before {\n content: \"\\f8e3\"; }\n\n.fa-face-grin-beam-sweat::before {\n content: \"\\f583\"; }\n\n.fa-grin-beam-sweat::before {\n content: \"\\f583\"; }\n\n.fa-fire-smoke::before {\n content: \"\\f74b\"; }\n\n.fa-phone-missed::before {\n content: \"\\e226\"; }\n\n.fa-file-export::before {\n content: \"\\f56e\"; }\n\n.fa-arrow-right-from-file::before {\n content: \"\\f56e\"; }\n\n.fa-shield::before {\n content: \"\\f132\"; }\n\n.fa-shield-blank::before {\n content: \"\\f132\"; }\n\n.fa-arrow-up-short-wide::before {\n content: \"\\f885\"; }\n\n.fa-sort-amount-up-alt::before {\n content: \"\\f885\"; }\n\n.fa-arrows-repeat-1::before {\n content: \"\\f366\"; }\n\n.fa-repeat-1-alt::before {\n content: \"\\f366\"; }\n\n.fa-gun-slash::before {\n content: \"\\e19c\"; }\n\n.fa-avocado::before {\n content: \"\\e0aa\"; }\n\n.fa-binary::before {\n content: \"\\e33b\"; }\n\n.fa-glasses-round::before {\n content: \"\\f5f5\"; }\n\n.fa-glasses-alt::before {\n content: \"\\f5f5\"; }\n\n.fa-phone-plus::before {\n content: \"\\f4d2\"; }\n\n.fa-ditto::before {\n content: \"\\22\"; }\n\n.fa-person-seat::before {\n content: \"\\e21e\"; }\n\n.fa-house-medical::before {\n content: \"\\e3b2\"; }\n\n.fa-golf-ball-tee::before {\n content: \"\\f450\"; }\n\n.fa-golf-ball::before {\n content: \"\\f450\"; }\n\n.fa-circle-chevron-left::before {\n content: \"\\f137\"; }\n\n.fa-chevron-circle-left::before {\n content: \"\\f137\"; }\n\n.fa-house-chimney-window::before {\n content: \"\\e00d\"; }\n\n.fa-scythe::before {\n content: \"\\f710\"; }\n\n.fa-pen-nib::before {\n content: \"\\f5ad\"; }\n\n.fa-ban-parking::before {\n content: \"\\f616\"; }\n\n.fa-parking-circle-slash::before {\n content: \"\\f616\"; }\n\n.fa-tent-arrow-turn-left::before {\n content: \"\\e580\"; }\n\n.fa-face-diagonal-mouth::before {\n content: \"\\e47e\"; }\n\n.fa-diagram-cells::before {\n content: \"\\e475\"; }\n\n.fa-cricket-bat-ball::before {\n content: \"\\f449\"; }\n\n.fa-cricket::before {\n content: \"\\f449\"; }\n\n.fa-tents::before {\n content: \"\\e582\"; }\n\n.fa-wand-magic::before {\n content: \"\\f0d0\"; }\n\n.fa-magic::before {\n content: \"\\f0d0\"; }\n\n.fa-dog::before {\n content: \"\\f6d3\"; }\n\n.fa-pen-line::before {\n content: \"\\e212\"; }\n\n.fa-atom-simple::before {\n content: \"\\f5d3\"; }\n\n.fa-atom-alt::before {\n content: \"\\f5d3\"; }\n\n.fa-ampersand::before {\n content: \"\\26\"; }\n\n.fa-carrot::before {\n content: \"\\f787\"; }\n\n.fa-arrow-up-from-line::before {\n content: \"\\f342\"; }\n\n.fa-arrow-from-bottom::before {\n content: \"\\f342\"; }\n\n.fa-moon::before {\n content: \"\\f186\"; }\n\n.fa-pen-slash::before {\n content: \"\\e213\"; }\n\n.fa-wine-glass-empty::before {\n content: \"\\f5ce\"; }\n\n.fa-wine-glass-alt::before {\n content: \"\\f5ce\"; }\n\n.fa-square-star::before {\n content: \"\\e27f\"; }\n\n.fa-cheese::before {\n content: \"\\f7ef\"; }\n\n.fa-send-backward::before {\n content: \"\\f87f\"; }\n\n.fa-yin-yang::before {\n content: \"\\f6ad\"; }\n\n.fa-music::before {\n content: \"\\f001\"; }\n\n.fa-compass-slash::before {\n content: \"\\f5e9\"; }\n\n.fa-clock-one::before {\n content: \"\\e34e\"; }\n\n.fa-file-music::before {\n content: \"\\f8b6\"; }\n\n.fa-code-commit::before {\n content: \"\\f386\"; }\n\n.fa-temperature-low::before {\n content: \"\\f76b\"; }\n\n.fa-person-biking::before {\n content: \"\\f84a\"; }\n\n.fa-biking::before {\n content: \"\\f84a\"; }\n\n.fa-display-chart-up-circle-currency::before {\n content: \"\\e5e5\"; }\n\n.fa-skeleton::before {\n content: \"\\f620\"; }\n\n.fa-circle-g::before {\n content: \"\\e10f\"; }\n\n.fa-circle-arrow-up-left::before {\n content: \"\\e0fb\"; }\n\n.fa-coin-blank::before {\n content: \"\\e3fb\"; }\n\n.fa-broom::before {\n content: \"\\f51a\"; }\n\n.fa-vacuum::before {\n content: \"\\e04d\"; }\n\n.fa-shield-heart::before {\n content: \"\\e574\"; }\n\n.fa-card-heart::before {\n content: \"\\e3eb\"; }\n\n.fa-lightbulb-cfl-on::before {\n content: \"\\e5a7\"; }\n\n.fa-melon::before {\n content: \"\\e310\"; }\n\n.fa-gopuram::before {\n content: \"\\f664\"; }\n\n.fa-earth-oceania::before {\n content: \"\\e47b\"; }\n\n.fa-globe-oceania::before {\n content: \"\\e47b\"; }\n\n.fa-container-storage::before {\n content: \"\\f4b7\"; }\n\n.fa-face-pouting::before {\n content: \"\\e387\"; }\n\n.fa-square-xmark::before {\n content: \"\\f2d3\"; }\n\n.fa-times-square::before {\n content: \"\\f2d3\"; }\n\n.fa-xmark-square::before {\n content: \"\\f2d3\"; }\n\n.fa-face-explode::before {\n content: \"\\e2fe\"; }\n\n.fa-exploding-head::before {\n content: \"\\e2fe\"; }\n\n.fa-hashtag::before {\n content: \"\\23\"; }\n\n.fa-up-right-and-down-left-from-center::before {\n content: \"\\f424\"; }\n\n.fa-expand-alt::before {\n content: \"\\f424\"; }\n\n.fa-oil-can::before {\n content: \"\\f613\"; }\n\n.fa-t::before {\n content: \"\\54\"; }\n\n.fa-transformer-bolt::before {\n content: \"\\e2a4\"; }\n\n.fa-hippo::before {\n content: \"\\f6ed\"; }\n\n.fa-chart-column::before {\n content: \"\\e0e3\"; }\n\n.fa-cassette-vhs::before {\n content: \"\\f8ec\"; }\n\n.fa-vhs::before {\n content: \"\\f8ec\"; }\n\n.fa-infinity::before {\n content: \"\\f534\"; }\n\n.fa-vial-circle-check::before {\n content: \"\\e596\"; }\n\n.fa-chimney::before {\n content: \"\\f78b\"; }\n\n.fa-object-intersect::before {\n content: \"\\e49d\"; }\n\n.fa-person-arrow-down-to-line::before {\n content: \"\\e538\"; }\n\n.fa-voicemail::before {\n content: \"\\f897\"; }\n\n.fa-block-brick::before {\n content: \"\\e3db\"; }\n\n.fa-wall-brick::before {\n content: \"\\e3db\"; }\n\n.fa-fan::before {\n content: \"\\f863\"; }\n\n.fa-bags-shopping::before {\n content: \"\\f847\"; }\n\n.fa-paragraph-left::before {\n content: \"\\f878\"; }\n\n.fa-paragraph-rtl::before {\n content: \"\\f878\"; }\n\n.fa-person-walking-luggage::before {\n content: \"\\e554\"; }\n\n.fa-caravan-simple::before {\n content: \"\\e000\"; }\n\n.fa-caravan-alt::before {\n content: \"\\e000\"; }\n\n.fa-turtle::before {\n content: \"\\f726\"; }\n\n.fa-pencil-mechanical::before {\n content: \"\\e5ca\"; }\n\n.fa-up-down::before {\n content: \"\\f338\"; }\n\n.fa-arrows-alt-v::before {\n content: \"\\f338\"; }\n\n.fa-cloud-moon-rain::before {\n content: \"\\f73c\"; }\n\n.fa-booth-curtain::before {\n content: \"\\f734\"; }\n\n.fa-calendar::before {\n content: \"\\f133\"; }\n\n.fa-box-heart::before {\n content: \"\\f49d\"; }\n\n.fa-trailer::before {\n content: \"\\e041\"; }\n\n.fa-user-doctor-message::before {\n content: \"\\f82e\"; }\n\n.fa-user-md-chat::before {\n content: \"\\f82e\"; }\n\n.fa-bahai::before {\n content: \"\\f666\"; }\n\n.fa-haykal::before {\n content: \"\\f666\"; }\n\n.fa-lighthouse::before {\n content: \"\\e612\"; }\n\n.fa-amp-guitar::before {\n content: \"\\f8a1\"; }\n\n.fa-sd-card::before {\n content: \"\\f7c2\"; }\n\n.fa-volume-slash::before {\n content: \"\\f2e2\"; }\n\n.fa-border-bottom::before {\n content: \"\\f84d\"; }\n\n.fa-wifi-weak::before {\n content: \"\\f6aa\"; }\n\n.fa-wifi-1::before {\n content: \"\\f6aa\"; }\n\n.fa-dragon::before {\n content: \"\\f6d5\"; }\n\n.fa-shoe-prints::before {\n content: \"\\f54b\"; }\n\n.fa-circle-plus::before {\n content: \"\\f055\"; }\n\n.fa-plus-circle::before {\n content: \"\\f055\"; }\n\n.fa-face-grin-tongue-wink::before {\n content: \"\\f58b\"; }\n\n.fa-grin-tongue-wink::before {\n content: \"\\f58b\"; }\n\n.fa-hand-holding::before {\n content: \"\\f4bd\"; }\n\n.fa-plug-circle-exclamation::before {\n content: \"\\e55d\"; }\n\n.fa-link-slash::before {\n content: \"\\f127\"; }\n\n.fa-chain-broken::before {\n content: \"\\f127\"; }\n\n.fa-chain-slash::before {\n content: \"\\f127\"; }\n\n.fa-unlink::before {\n content: \"\\f127\"; }\n\n.fa-clone::before {\n content: \"\\f24d\"; }\n\n.fa-person-walking-arrow-loop-left::before {\n content: \"\\e551\"; }\n\n.fa-arrow-up-z-a::before {\n content: \"\\f882\"; }\n\n.fa-sort-alpha-up-alt::before {\n content: \"\\f882\"; }\n\n.fa-fire-flame-curved::before {\n content: \"\\f7e4\"; }\n\n.fa-fire-alt::before {\n content: \"\\f7e4\"; }\n\n.fa-tornado::before {\n content: \"\\f76f\"; }\n\n.fa-file-circle-plus::before {\n content: \"\\e494\"; }\n\n.fa-delete-right::before {\n content: \"\\e154\"; }\n\n.fa-book-quran::before {\n content: \"\\f687\"; }\n\n.fa-quran::before {\n content: \"\\f687\"; }\n\n.fa-circle-quarter::before {\n content: \"\\e11f\"; }\n\n.fa-anchor::before {\n content: \"\\f13d\"; }\n\n.fa-border-all::before {\n content: \"\\f84c\"; }\n\n.fa-function::before {\n content: \"\\f661\"; }\n\n.fa-face-angry::before {\n content: \"\\f556\"; }\n\n.fa-angry::before {\n content: \"\\f556\"; }\n\n.fa-people-simple::before {\n content: \"\\e21b\"; }\n\n.fa-cookie-bite::before {\n content: \"\\f564\"; }\n\n.fa-arrow-trend-down::before {\n content: \"\\e097\"; }\n\n.fa-rss::before {\n content: \"\\f09e\"; }\n\n.fa-feed::before {\n content: \"\\f09e\"; }\n\n.fa-face-monocle::before {\n content: \"\\e380\"; }\n\n.fa-draw-polygon::before {\n content: \"\\f5ee\"; }\n\n.fa-scale-balanced::before {\n content: \"\\f24e\"; }\n\n.fa-balance-scale::before {\n content: \"\\f24e\"; }\n\n.fa-calendar-lines::before {\n content: \"\\e0d5\"; }\n\n.fa-calendar-note::before {\n content: \"\\e0d5\"; }\n\n.fa-arrow-down-big-small::before {\n content: \"\\f88c\"; }\n\n.fa-sort-size-down::before {\n content: \"\\f88c\"; }\n\n.fa-gauge-simple-high::before {\n content: \"\\f62a\"; }\n\n.fa-tachometer::before {\n content: \"\\f62a\"; }\n\n.fa-tachometer-fast::before {\n content: \"\\f62a\"; }\n\n.fa-do-not-enter::before {\n content: \"\\f5ec\"; }\n\n.fa-shower::before {\n content: \"\\f2cc\"; }\n\n.fa-dice-d8::before {\n content: \"\\f6d2\"; }\n\n.fa-desktop::before {\n content: \"\\f390\"; }\n\n.fa-desktop-alt::before {\n content: \"\\f390\"; }\n\n.fa-m::before {\n content: \"\\4d\"; }\n\n.fa-spinner-scale::before {\n content: \"\\e62a\"; }\n\n.fa-grip-dots-vertical::before {\n content: \"\\e411\"; }\n\n.fa-face-viewfinder::before {\n content: \"\\e2ff\"; }\n\n.fa-soft-serve::before {\n content: \"\\e400\"; }\n\n.fa-creemee::before {\n content: \"\\e400\"; }\n\n.fa-h5::before {\n content: \"\\e412\"; }\n\n.fa-hand-back-point-down::before {\n content: \"\\e19e\"; }\n\n.fa-table-list::before {\n content: \"\\f00b\"; }\n\n.fa-th-list::before {\n content: \"\\f00b\"; }\n\n.fa-basket-shopping-minus::before {\n content: \"\\e652\"; }\n\n.fa-comment-sms::before {\n content: \"\\f7cd\"; }\n\n.fa-sms::before {\n content: \"\\f7cd\"; }\n\n.fa-rectangle::before {\n content: \"\\f2fa\"; }\n\n.fa-rectangle-landscape::before {\n content: \"\\f2fa\"; }\n\n.fa-clipboard-list-check::before {\n content: \"\\f737\"; }\n\n.fa-turkey::before {\n content: \"\\f725\"; }\n\n.fa-book::before {\n content: \"\\f02d\"; }\n\n.fa-user-plus::before {\n content: \"\\f234\"; }\n\n.fa-ice-skate::before {\n content: \"\\f7ac\"; }\n\n.fa-check::before {\n content: \"\\f00c\"; }\n\n.fa-battery-three-quarters::before {\n content: \"\\f241\"; }\n\n.fa-battery-4::before {\n content: \"\\f241\"; }\n\n.fa-tomato::before {\n content: \"\\e330\"; }\n\n.fa-sword-laser::before {\n content: \"\\e03b\"; }\n\n.fa-house-circle-check::before {\n content: \"\\e509\"; }\n\n.fa-buildings::before {\n content: \"\\e0cc\"; }\n\n.fa-angle-left::before {\n content: \"\\f104\"; }\n\n.fa-cart-flatbed-boxes::before {\n content: \"\\f475\"; }\n\n.fa-dolly-flatbed-alt::before {\n content: \"\\f475\"; }\n\n.fa-diagram-successor::before {\n content: \"\\e47a\"; }\n\n.fa-truck-arrow-right::before {\n content: \"\\e58b\"; }\n\n.fa-square-w::before {\n content: \"\\e285\"; }\n\n.fa-arrows-split-up-and-left::before {\n content: \"\\e4bc\"; }\n\n.fa-lamp::before {\n content: \"\\f4ca\"; }\n\n.fa-airplay::before {\n content: \"\\e089\"; }\n\n.fa-hand-fist::before {\n content: \"\\f6de\"; }\n\n.fa-fist-raised::before {\n content: \"\\f6de\"; }\n\n.fa-shield-quartered::before {\n content: \"\\e575\"; }\n\n.fa-slash-forward::before {\n content: \"\\2f\"; }\n\n.fa-location-pen::before {\n content: \"\\f607\"; }\n\n.fa-map-marker-edit::before {\n content: \"\\f607\"; }\n\n.fa-cloud-moon::before {\n content: \"\\f6c3\"; }\n\n.fa-pot-food::before {\n content: \"\\e43f\"; }\n\n.fa-briefcase::before {\n content: \"\\f0b1\"; }\n\n.fa-person-falling::before {\n content: \"\\e546\"; }\n\n.fa-image-portrait::before {\n content: \"\\f3e0\"; }\n\n.fa-portrait::before {\n content: \"\\f3e0\"; }\n\n.fa-user-tag::before {\n content: \"\\f507\"; }\n\n.fa-rug::before {\n content: \"\\e569\"; }\n\n.fa-print-slash::before {\n content: \"\\f686\"; }\n\n.fa-earth-europe::before {\n content: \"\\f7a2\"; }\n\n.fa-globe-europe::before {\n content: \"\\f7a2\"; }\n\n.fa-cart-flatbed-suitcase::before {\n content: \"\\f59d\"; }\n\n.fa-luggage-cart::before {\n content: \"\\f59d\"; }\n\n.fa-hand-back-point-ribbon::before {\n content: \"\\e1a0\"; }\n\n.fa-rectangle-xmark::before {\n content: \"\\f410\"; }\n\n.fa-rectangle-times::before {\n content: \"\\f410\"; }\n\n.fa-times-rectangle::before {\n content: \"\\f410\"; }\n\n.fa-window-close::before {\n content: \"\\f410\"; }\n\n.fa-tire-rugged::before {\n content: \"\\f634\"; }\n\n.fa-lightbulb-dollar::before {\n content: \"\\f670\"; }\n\n.fa-cowbell::before {\n content: \"\\f8b3\"; }\n\n.fa-baht-sign::before {\n content: \"\\e0ac\"; }\n\n.fa-corner::before {\n content: \"\\e3fe\"; }\n\n.fa-chevrons-right::before {\n content: \"\\f324\"; }\n\n.fa-chevron-double-right::before {\n content: \"\\f324\"; }\n\n.fa-book-open::before {\n content: \"\\f518\"; }\n\n.fa-book-journal-whills::before {\n content: \"\\f66a\"; }\n\n.fa-journal-whills::before {\n content: \"\\f66a\"; }\n\n.fa-inhaler::before {\n content: \"\\f5f9\"; }\n\n.fa-handcuffs::before {\n content: \"\\e4f8\"; }\n\n.fa-snake::before {\n content: \"\\f716\"; }\n\n.fa-triangle-exclamation::before {\n content: \"\\f071\"; }\n\n.fa-exclamation-triangle::before {\n content: \"\\f071\"; }\n\n.fa-warning::before {\n content: \"\\f071\"; }\n\n.fa-note-medical::before {\n content: \"\\e200\"; }\n\n.fa-database::before {\n content: \"\\f1c0\"; }\n\n.fa-down-left::before {\n content: \"\\e16a\"; }\n\n.fa-share::before {\n content: \"\\f064\"; }\n\n.fa-mail-forward::before {\n content: \"\\f064\"; }\n\n.fa-face-thinking::before {\n content: \"\\e39b\"; }\n\n.fa-turn-down-right::before {\n content: \"\\e455\"; }\n\n.fa-bottle-droplet::before {\n content: \"\\e4c4\"; }\n\n.fa-mask-face::before {\n content: \"\\e1d7\"; }\n\n.fa-hill-rockslide::before {\n content: \"\\e508\"; }\n\n.fa-scanner-keyboard::before {\n content: \"\\f489\"; }\n\n.fa-circle-o::before {\n content: \"\\e119\"; }\n\n.fa-grid-horizontal::before {\n content: \"\\e307\"; }\n\n.fa-message-dollar::before {\n content: \"\\f650\"; }\n\n.fa-comment-alt-dollar::before {\n content: \"\\f650\"; }\n\n.fa-right-left::before {\n content: \"\\f362\"; }\n\n.fa-exchange-alt::before {\n content: \"\\f362\"; }\n\n.fa-columns-3::before {\n content: \"\\e361\"; }\n\n.fa-paper-plane::before {\n content: \"\\f1d8\"; }\n\n.fa-road-circle-exclamation::before {\n content: \"\\e565\"; }\n\n.fa-dungeon::before {\n content: \"\\f6d9\"; }\n\n.fa-hand-holding-box::before {\n content: \"\\f47b\"; }\n\n.fa-input-text::before {\n content: \"\\e1bf\"; }\n\n.fa-window-flip::before {\n content: \"\\f40f\"; }\n\n.fa-window-alt::before {\n content: \"\\f40f\"; }\n\n.fa-align-right::before {\n content: \"\\f038\"; }\n\n.fa-scanner-gun::before {\n content: \"\\f488\"; }\n\n.fa-scanner::before {\n content: \"\\f488\"; }\n\n.fa-tire::before {\n content: \"\\f631\"; }\n\n.fa-engine::before {\n content: \"\\e16e\"; }\n\n.fa-money-bill-1-wave::before {\n content: \"\\f53b\"; }\n\n.fa-money-bill-wave-alt::before {\n content: \"\\f53b\"; }\n\n.fa-life-ring::before {\n content: \"\\f1cd\"; }\n\n.fa-hands::before {\n content: \"\\f2a7\"; }\n\n.fa-sign-language::before {\n content: \"\\f2a7\"; }\n\n.fa-signing::before {\n content: \"\\f2a7\"; }\n\n.fa-circle-caret-right::before {\n content: \"\\f330\"; }\n\n.fa-caret-circle-right::before {\n content: \"\\f330\"; }\n\n.fa-turn-left::before {\n content: \"\\e636\"; }\n\n.fa-wheat::before {\n content: \"\\f72d\"; }\n\n.fa-file-spreadsheet::before {\n content: \"\\f65b\"; }\n\n.fa-audio-description-slash::before {\n content: \"\\e0a8\"; }\n\n.fa-bell-ring::before {\n content: \"\\e62c\"; }\n\n.fa-calendar-day::before {\n content: \"\\f783\"; }\n\n.fa-water-ladder::before {\n content: \"\\f5c5\"; }\n\n.fa-ladder-water::before {\n content: \"\\f5c5\"; }\n\n.fa-swimming-pool::before {\n content: \"\\f5c5\"; }\n\n.fa-arrows-up-down::before {\n content: \"\\f07d\"; }\n\n.fa-arrows-v::before {\n content: \"\\f07d\"; }\n\n.fa-chess-pawn-piece::before {\n content: \"\\f444\"; }\n\n.fa-chess-pawn-alt::before {\n content: \"\\f444\"; }\n\n.fa-face-grimace::before {\n content: \"\\f57f\"; }\n\n.fa-grimace::before {\n content: \"\\f57f\"; }\n\n.fa-wheelchair-move::before {\n content: \"\\e2ce\"; }\n\n.fa-wheelchair-alt::before {\n content: \"\\e2ce\"; }\n\n.fa-turn-down::before {\n content: \"\\f3be\"; }\n\n.fa-level-down-alt::before {\n content: \"\\f3be\"; }\n\n.fa-square-s::before {\n content: \"\\e27d\"; }\n\n.fa-rectangle-barcode::before {\n content: \"\\f463\"; }\n\n.fa-barcode-alt::before {\n content: \"\\f463\"; }\n\n.fa-person-walking-arrow-right::before {\n content: \"\\e552\"; }\n\n.fa-square-envelope::before {\n content: \"\\f199\"; }\n\n.fa-envelope-square::before {\n content: \"\\f199\"; }\n\n.fa-dice::before {\n content: \"\\f522\"; }\n\n.fa-unicorn::before {\n content: \"\\f727\"; }\n\n.fa-bowling-ball::before {\n content: \"\\f436\"; }\n\n.fa-pompebled::before {\n content: \"\\e43d\"; }\n\n.fa-brain::before {\n content: \"\\f5dc\"; }\n\n.fa-watch-smart::before {\n content: \"\\e2cc\"; }\n\n.fa-book-user::before {\n content: \"\\f7e7\"; }\n\n.fa-sensor-cloud::before {\n content: \"\\e02c\"; }\n\n.fa-sensor-smoke::before {\n content: \"\\e02c\"; }\n\n.fa-clapperboard-play::before {\n content: \"\\e132\"; }\n\n.fa-bandage::before {\n content: \"\\f462\"; }\n\n.fa-band-aid::before {\n content: \"\\f462\"; }\n\n.fa-calendar-minus::before {\n content: \"\\f272\"; }\n\n.fa-circle-xmark::before {\n content: \"\\f057\"; }\n\n.fa-times-circle::before {\n content: \"\\f057\"; }\n\n.fa-xmark-circle::before {\n content: \"\\f057\"; }\n\n.fa-circle-4::before {\n content: \"\\e0f1\"; }\n\n.fa-gifts::before {\n content: \"\\f79c\"; }\n\n.fa-album-collection::before {\n content: \"\\f8a0\"; }\n\n.fa-hotel::before {\n content: \"\\f594\"; }\n\n.fa-earth-asia::before {\n content: \"\\f57e\"; }\n\n.fa-globe-asia::before {\n content: \"\\f57e\"; }\n\n.fa-id-card-clip::before {\n content: \"\\f47f\"; }\n\n.fa-id-card-alt::before {\n content: \"\\f47f\"; }\n\n.fa-magnifying-glass-plus::before {\n content: \"\\f00e\"; }\n\n.fa-search-plus::before {\n content: \"\\f00e\"; }\n\n.fa-thumbs-up::before {\n content: \"\\f164\"; }\n\n.fa-cloud-showers::before {\n content: \"\\f73f\"; }\n\n.fa-user-clock::before {\n content: \"\\f4fd\"; }\n\n.fa-onion::before {\n content: \"\\e427\"; }\n\n.fa-clock-twelve-thirty::before {\n content: \"\\e359\"; }\n\n.fa-arrow-down-to-dotted-line::before {\n content: \"\\e095\"; }\n\n.fa-hand-dots::before {\n content: \"\\f461\"; }\n\n.fa-allergies::before {\n content: \"\\f461\"; }\n\n.fa-file-invoice::before {\n content: \"\\f570\"; }\n\n.fa-window-minimize::before {\n content: \"\\f2d1\"; }\n\n.fa-rectangle-wide::before {\n content: \"\\f2fc\"; }\n\n.fa-comment-arrow-up::before {\n content: \"\\e144\"; }\n\n.fa-garlic::before {\n content: \"\\e40e\"; }\n\n.fa-mug-saucer::before {\n content: \"\\f0f4\"; }\n\n.fa-coffee::before {\n content: \"\\f0f4\"; }\n\n.fa-brush::before {\n content: \"\\f55d\"; }\n\n.fa-tree-decorated::before {\n content: \"\\f7dc\"; }\n\n.fa-mask::before {\n content: \"\\f6fa\"; }\n\n.fa-calendar-heart::before {\n content: \"\\e0d3\"; }\n\n.fa-magnifying-glass-minus::before {\n content: \"\\f010\"; }\n\n.fa-search-minus::before {\n content: \"\\f010\"; }\n\n.fa-flower::before {\n content: \"\\f7ff\"; }\n\n.fa-arrow-down-from-arc::before {\n content: \"\\e614\"; }\n\n.fa-right-left-large::before {\n content: \"\\e5e1\"; }\n\n.fa-ruler-vertical::before {\n content: \"\\f548\"; }\n\n.fa-circles-overlap::before {\n content: \"\\e600\"; }\n\n.fa-user-large::before {\n content: \"\\f406\"; }\n\n.fa-user-alt::before {\n content: \"\\f406\"; }\n\n.fa-starship-freighter::before {\n content: \"\\e03a\"; }\n\n.fa-train-tram::before {\n content: \"\\e5b4\"; }\n\n.fa-bridge-suspension::before {\n content: \"\\e4cd\"; }\n\n.fa-trash-check::before {\n content: \"\\e2af\"; }\n\n.fa-user-nurse::before {\n content: \"\\f82f\"; }\n\n.fa-boombox::before {\n content: \"\\f8a5\"; }\n\n.fa-syringe::before {\n content: \"\\f48e\"; }\n\n.fa-cloud-sun::before {\n content: \"\\f6c4\"; }\n\n.fa-shield-exclamation::before {\n content: \"\\e247\"; }\n\n.fa-stopwatch-20::before {\n content: \"\\e06f\"; }\n\n.fa-square-full::before {\n content: \"\\f45c\"; }\n\n.fa-grip-dots::before {\n content: \"\\e410\"; }\n\n.fa-comment-exclamation::before {\n content: \"\\f4af\"; }\n\n.fa-pen-swirl::before {\n content: \"\\e214\"; }\n\n.fa-falafel::before {\n content: \"\\e40a\"; }\n\n.fa-circle-2::before {\n content: \"\\e0ef\"; }\n\n.fa-magnet::before {\n content: \"\\f076\"; }\n\n.fa-jar::before {\n content: \"\\e516\"; }\n\n.fa-gramophone::before {\n content: \"\\f8bd\"; }\n\n.fa-dice-d12::before {\n content: \"\\f6ce\"; }\n\n.fa-note-sticky::before {\n content: \"\\f249\"; }\n\n.fa-sticky-note::before {\n content: \"\\f249\"; }\n\n.fa-down::before {\n content: \"\\f354\"; }\n\n.fa-arrow-alt-down::before {\n content: \"\\f354\"; }\n\n.fa-hundred-points::before {\n content: \"\\e41c\"; }\n\n.fa-100::before {\n content: \"\\e41c\"; }\n\n.fa-paperclip-vertical::before {\n content: \"\\e3c2\"; }\n\n.fa-wind-warning::before {\n content: \"\\f776\"; }\n\n.fa-wind-circle-exclamation::before {\n content: \"\\f776\"; }\n\n.fa-location-pin-slash::before {\n content: \"\\f60c\"; }\n\n.fa-map-marker-slash::before {\n content: \"\\f60c\"; }\n\n.fa-face-sad-sweat::before {\n content: \"\\e38a\"; }\n\n.fa-bug-slash::before {\n content: \"\\e490\"; }\n\n.fa-cupcake::before {\n content: \"\\e402\"; }\n\n.fa-light-switch-off::before {\n content: \"\\e018\"; }\n\n.fa-toggle-large-off::before {\n content: \"\\e5b0\"; }\n\n.fa-pen-fancy-slash::before {\n content: \"\\e210\"; }\n\n.fa-truck-container::before {\n content: \"\\f4dc\"; }\n\n.fa-boot::before {\n content: \"\\f782\"; }\n\n.fa-arrow-up-from-water-pump::before {\n content: \"\\e4b6\"; }\n\n.fa-file-check::before {\n content: \"\\f316\"; }\n\n.fa-bone::before {\n content: \"\\f5d7\"; }\n\n.fa-cards-blank::before {\n content: \"\\e4df\"; }\n\n.fa-circle-3::before {\n content: \"\\e0f0\"; }\n\n.fa-bench-tree::before {\n content: \"\\e2e7\"; }\n\n.fa-keyboard-brightness-low::before {\n content: \"\\e1c1\"; }\n\n.fa-ski-boot-ski::before {\n content: \"\\e3cd\"; }\n\n.fa-brain-circuit::before {\n content: \"\\e0c6\"; }\n\n.fa-user-injured::before {\n content: \"\\f728\"; }\n\n.fa-block-brick-fire::before {\n content: \"\\e3dc\"; }\n\n.fa-firewall::before {\n content: \"\\e3dc\"; }\n\n.fa-face-sad-tear::before {\n content: \"\\f5b4\"; }\n\n.fa-sad-tear::before {\n content: \"\\f5b4\"; }\n\n.fa-plane::before {\n content: \"\\f072\"; }\n\n.fa-tent-arrows-down::before {\n content: \"\\e581\"; }\n\n.fa-exclamation::before {\n content: \"\\21\"; }\n\n.fa-arrows-spin::before {\n content: \"\\e4bb\"; }\n\n.fa-face-smile-relaxed::before {\n content: \"\\e392\"; }\n\n.fa-comment-xmark::before {\n content: \"\\f4b5\"; }\n\n.fa-comment-times::before {\n content: \"\\f4b5\"; }\n\n.fa-print::before {\n content: \"\\f02f\"; }\n\n.fa-turkish-lira-sign::before {\n content: \"\\e2bb\"; }\n\n.fa-try::before {\n content: \"\\e2bb\"; }\n\n.fa-turkish-lira::before {\n content: \"\\e2bb\"; }\n\n.fa-face-nose-steam::before {\n content: \"\\e382\"; }\n\n.fa-circle-waveform-lines::before {\n content: \"\\e12d\"; }\n\n.fa-waveform-circle::before {\n content: \"\\e12d\"; }\n\n.fa-dollar-sign::before {\n content: \"\\24\"; }\n\n.fa-dollar::before {\n content: \"\\24\"; }\n\n.fa-usd::before {\n content: \"\\24\"; }\n\n.fa-ferris-wheel::before {\n content: \"\\e174\"; }\n\n.fa-computer-speaker::before {\n content: \"\\f8b2\"; }\n\n.fa-skull-cow::before {\n content: \"\\f8de\"; }\n\n.fa-x::before {\n content: \"\\58\"; }\n\n.fa-magnifying-glass-dollar::before {\n content: \"\\f688\"; }\n\n.fa-search-dollar::before {\n content: \"\\f688\"; }\n\n.fa-users-gear::before {\n content: \"\\f509\"; }\n\n.fa-users-cog::before {\n content: \"\\f509\"; }\n\n.fa-person-military-pointing::before {\n content: \"\\e54a\"; }\n\n.fa-building-columns::before {\n content: \"\\f19c\"; }\n\n.fa-bank::before {\n content: \"\\f19c\"; }\n\n.fa-institution::before {\n content: \"\\f19c\"; }\n\n.fa-museum::before {\n content: \"\\f19c\"; }\n\n.fa-university::before {\n content: \"\\f19c\"; }\n\n.fa-circle-t::before {\n content: \"\\e124\"; }\n\n.fa-sack::before {\n content: \"\\f81c\"; }\n\n.fa-grid-2::before {\n content: \"\\e196\"; }\n\n.fa-camera-cctv::before {\n content: \"\\f8ac\"; }\n\n.fa-cctv::before {\n content: \"\\f8ac\"; }\n\n.fa-umbrella::before {\n content: \"\\f0e9\"; }\n\n.fa-trowel::before {\n content: \"\\e589\"; }\n\n.fa-horizontal-rule::before {\n content: \"\\f86c\"; }\n\n.fa-bed-front::before {\n content: \"\\f8f7\"; }\n\n.fa-bed-alt::before {\n content: \"\\f8f7\"; }\n\n.fa-d::before {\n content: \"\\44\"; }\n\n.fa-stapler::before {\n content: \"\\e5af\"; }\n\n.fa-masks-theater::before {\n content: \"\\f630\"; }\n\n.fa-theater-masks::before {\n content: \"\\f630\"; }\n\n.fa-file-gif::before {\n content: \"\\e645\"; }\n\n.fa-kip-sign::before {\n content: \"\\e1c4\"; }\n\n.fa-face-woozy::before {\n content: \"\\e3a2\"; }\n\n.fa-cloud-question::before {\n content: \"\\e492\"; }\n\n.fa-pineapple::before {\n content: \"\\e31f\"; }\n\n.fa-hand-point-left::before {\n content: \"\\f0a5\"; }\n\n.fa-gallery-thumbnails::before {\n content: \"\\e3aa\"; }\n\n.fa-circle-j::before {\n content: \"\\e112\"; }\n\n.fa-eyes::before {\n content: \"\\e367\"; }\n\n.fa-handshake-simple::before {\n content: \"\\f4c6\"; }\n\n.fa-handshake-alt::before {\n content: \"\\f4c6\"; }\n\n.fa-page-caret-up::before {\n content: \"\\e42a\"; }\n\n.fa-file-caret-up::before {\n content: \"\\e42a\"; }\n\n.fa-jet-fighter::before {\n content: \"\\f0fb\"; }\n\n.fa-fighter-jet::before {\n content: \"\\f0fb\"; }\n\n.fa-comet::before {\n content: \"\\e003\"; }\n\n.fa-square-share-nodes::before {\n content: \"\\f1e1\"; }\n\n.fa-share-alt-square::before {\n content: \"\\f1e1\"; }\n\n.fa-reflect-vertical::before {\n content: \"\\e665\"; }\n\n.fa-shield-keyhole::before {\n content: \"\\e248\"; }\n\n.fa-file-mp4::before {\n content: \"\\e649\"; }\n\n.fa-barcode::before {\n content: \"\\f02a\"; }\n\n.fa-bulldozer::before {\n content: \"\\e655\"; }\n\n.fa-plus-minus::before {\n content: \"\\e43c\"; }\n\n.fa-square-sliders-vertical::before {\n content: \"\\f3f2\"; }\n\n.fa-sliders-v-square::before {\n content: \"\\f3f2\"; }\n\n.fa-video::before {\n content: \"\\f03d\"; }\n\n.fa-video-camera::before {\n content: \"\\f03d\"; }\n\n.fa-message-middle::before {\n content: \"\\e1e1\"; }\n\n.fa-comment-middle-alt::before {\n content: \"\\e1e1\"; }\n\n.fa-graduation-cap::before {\n content: \"\\f19d\"; }\n\n.fa-mortar-board::before {\n content: \"\\f19d\"; }\n\n.fa-hand-holding-medical::before {\n content: \"\\e05c\"; }\n\n.fa-person-circle-check::before {\n content: \"\\e53e\"; }\n\n.fa-square-z::before {\n content: \"\\e288\"; }\n\n.fa-message-text::before {\n content: \"\\e1e6\"; }\n\n.fa-comment-alt-text::before {\n content: \"\\e1e6\"; }\n\n.fa-turn-up::before {\n content: \"\\f3bf\"; }\n\n.fa-level-up-alt::before {\n content: \"\\f3bf\"; }\n\n.sr-only,\n.fa-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0; }\n\n.sr-only-focusable:not(:focus),\n.fa-sr-only-focusable:not(:focus) {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0; }\n",".tykon::before {\n font-family: tykon, sans-serif !important;\n font-style: normal !important;\n font-weight: normal !important;\n font-variant: normal !important;\n text-transform: none !important;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.tykon-arrowdown::before {\n content: \"\\61\";\n}\n\n.tykon-arrowleft::before {\n content: \"\\62\";\n}\n\n.tykon-arrowright::before {\n content: \"\\63\";\n}\n\n.tykon-arrowup::before {\n content: \"\\64\";\n}\n\n.tykon-doublearrowdown::before {\n content: \"\\65\";\n}\n\n.tykon-filter::before {\n content: \"\\66\";\n}\n\n.tykon-graph1::before {\n content: \"\\67\";\n}\n\n.tykon-graph2::before {\n content: \"\\68\";\n}\n\n.tykon-label::before {\n content: \"\\69\";\n}\n\n.tykon-reload::before {\n content: \"\\6a\";\n}\n\n.tykon-select::before {\n content: \"\\6b\";\n}\n\n.tykon-target::before {\n content: \"\\6c\";\n}\n\n.tykon-undo::before {\n content: \"\\6d\";\n}\n\n.tykon-deployment::before {\n content: \"\\6e\";\n}\n\n.tykon-team::before {\n content: \"\\6f\";\n}\n\n.tykon-overview::before {\n content: \"\\70\";\n}\n\n.tykon-loadout::before {\n content: \"\\71\";\n}\n\n.tykon-entitlement::before {\n content: \"\\72\";\n}\n\n.tykon-users::before {\n content: \"\\73\";\n}\n\n.tykon-arrowsort::before {\n content: \"\\57\";\n}\n\n.tykon-check::before {\n content: \"\\56\";\n}\n\n.tykon-copy::before {\n content: \"\\43\";\n}\n\n.tykon-delete::before {\n content: \"\\55\";\n}\n\n.tykon-download::before {\n content: \"\\4c\";\n}\n\n.tykon-draft::before {\n content: \"\\44\";\n}\n\n.tykon-edit::before {\n content: \"\\45\";\n}\n\n.tykon-graphq2::before {\n content: \"\\68\";\n}\n\n.tykon-help::before {\n content: \"\\3f\";\n}\n\n.tykon-link::before {\n content: \"\\52\";\n}\n\n.tykon-lock1::before {\n content: \"\\59\";\n}\n\n.tykon-lock2::before {\n content: \"\\5A\";\n}\n\n.tykon-notifications::before {\n content: \"\\4E\";\n}\n\n.tykon-plus::before {\n content: \"\\2B\";\n}\n\n.tykon-profile::before {\n content: \"\\50\";\n}\n\n.tykon-search::before {\n content: \"\\4F\";\n}\n\n.tykon-settings::before {\n content: \"\\53\";\n}\n\n.tykon-warning::before {\n content: \"\\21\";\n}\n\n.tykon-x::before {\n content: \"\\58\";\n}\n\n.tykon-waiting::before {\n content: \"\\54\";\n}\n\n.tykon-fullscreen::before {\n content: \"\\e000\";\n}\n\n.tykon-fullscreen-exit::before {\n content: \"\\e001\";\n}\n\n.tykon-time::before {\n content: \"\\74\";\n}\n","h1, h2, h3, h4, h5, h6 {\n margin-block-end: var(--headings-margin-bottom);\n font-family: var(--headings-font-family);\n font-weight: var(--headings-font-weight);\n color: var(--headings-color);\n}\n\nlabel {\n display: inline-block;\n max-inline-size: 100%;\n margin-block-end: 5px;\n color: var(--label-color);\n}\n\nh1 {\n font-size: var(--xxl-font-size);\n line-height: var(--xxl-line-height);\n}\n\nh2 {\n font-size: var(--xl-font-size);\n line-height: var(--xl-line-height);\n}\n\nh3 {\n font-size: var(--lg-font-size);\n line-height: var(--lg-line-height);\n}\n\nh4 {\n font-size: var(--md-font-size);\n line-height: var(--md-line-height);\n}\n\nh5 {\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n}\n\nh6 {\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n}\n\np,\nlabel {\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-regular);\n\n a {\n font-size: var(--sm-font-size);\n text-decoration: underline;\n }\n}\n\nstrong {\n font-family: var(--font-family-bold);\n}\n\na:not(.tyk-button) {\n cursor: pointer;\n color: var(--text-color);\n font-family: var(--font-family-regular);\n\n &.link--bold {\n font-family: var(--font-family-bold);\n }\n\n + a {\n margin-inline-start: 5px;\n }\n\n i {\n font-size: 9px\n }\n}\n\n.font-family-regular {\n font-family: var(--font-family-regular);\n}\n\n.font-family-medium {\n font-family: var(--font-family-medium);\n}\n\n.font-family-bold {\n font-family: var(--font-family-bold);\n}\n\n.heading-font-family-regular {\n font-family: var(--headings-font-family-regular);\n}\n\n.heading-font-family-medium {\n font-family: var(--headings-font-family-medium);\n}\n\n.heading-font-family-bold {\n font-family: var(--headings-font-family-bold);\n}\n\n.text--info {\n color: var(--color-info-base);\n}\n\n.text--medium {\n font-family: var(--font-family-medium);\n}\n\n.text--bold {\n font-family: var(--font-family-bold);\n}\n\n.text--uppercase {\n text-transform: uppercase;\n}\n\n.text--ellipsis {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.text--underline {\n text-decoration: underline;\n}\n\n.text--default-light {\n color: var(--color-default-light) !important;\n}\n\n.text--default {\n color: var(--color-default-base) !important;\n}\n\n.text--primary {\n color: var(--color-primary-base) !important;\n}\n\n.text--danger {\n color: var(--color-danger-base) !important;\n}\n\n.text--success {\n color: var(--color-success-base) !important;\n}\n\n.text--warning {\n color: var(--color-warning-base) !important;\n}\n\ntd.text-ellipsis {\n max-inline-size: 250px;\n}\n\n.section-title {\n font-family: var(--headings-font-family-bold);\n margin-block-end: 5px;\n\n .tyk-icon {\n margin-inline-start: 5px;\n }\n}\n\n.sub-section-title {\n margin-block-end: 5px;\n font-family: var(--font-family-medium);\n font-size: var(--md-font-size);\n line-height: var(--md-line-height);\n\n .tyk-icon {\n margin-inline-start: 5px;\n }\n}\n\n.section-group-title {\n margin-block-end: 5px;\n font-family: var(--font-family-bold);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n text-transform: uppercase;\n\n .tyk-icon {\n margin-inline-start: 5px;\n }\n}\n",".tyk-form-section__title {\n font-size: var(--base-font-size);\n margin-block: var(--spacing-xs) var(--spacing-base);\n margin-inline: 0;\n}\n\n.tyk-form-section__title--light {\n color: var(--color-background-dark);\n}\n\n.tyk-form-group {\n margin-block-end: var(--form-group-margin-bottom);\n\n &.has-error > .tyk-form-control__wrapper > .tyk-form-control,\n &.has-error > .tyk-form-control__wrapper > .tyk-input-group > .tyk-form-control,\n &.has-error .tyk-file-input__wrapper > .tyk-form-control {\n border: var(--error-border);\n border-inline-start: var(--error-border-left);\n outline: none;\n\n &:focus {\n border-inline-start: 2px solid var(--color-danger-dark);\n border-color: var(--color-danger-dark);\n outline: none;\n }\n }\n\n label {\n font-family: var(--font-family-medium);\n }\n}\n\n.tyk-form-group--inline {\n align-items: stretch;\n display: flex;\n flex-wrap: nowrap;\n\n .tyk-form-control__wrapper {\n flex: 1;\n }\n\n label {\n display: flex;\n white-space: nowrap;\n margin-inline-end: var(--spacing-md);\n margin-block-start: 14px;\n }\n\n input,\n select {\n display: flex;\n }\n\n .tyk-form-control__help-block {\n display: flex;\n margin-inline-start: auto;\n }\n}\n\n.tyk-form-group--default {\n color: var(--text-color);\n\n > .tyk-form-control__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-file-input__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-input-group > .tyk-form-control {\n border: var(--general-border-width) solid var(--form-default-color);\n color: var(--text-color);\n\n &[disabled] {\n border: var(--general-border-width) solid var(--form-default-color);\n background-color: var(--form-control-disabled-background-color);\n color: var(--form-control-disabled-color);\n cursor: not-allowed;\n\n + .tyk-input-group__addon {\n background-color: var(--form-control-disabled-background-color);\n }\n }\n\n &::placeholder {\n opacity: 0.8;\n }\n\n &:-ms-input-placeholder {\n opacity: 0.8;\n }\n }\n\n &.tyk-form-group--addon-left {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-default-color);\n border-inline-start: 2px solid var(--form-default-color);\n color: var(--text-color);\n }\n }\n\n &.tyk-form-group--addon-right {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-default-color);\n border-inline-end: 2px solid var(--form-default-color);\n color: var(--text-color);\n }\n }\n}\n\n.tyk-form-group--primary {\n color: var(--text-color);\n\n > .tyk-form-control__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-file-input__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-input-group > .tyk-form-control {\n border: var(--general-border-width) solid var(--form-primary-color);\n color: var(--text-color);\n\n &[disabled] {\n border: var(--general-border-width) solid var(--form-primary-color);\n background-color: var(--form-control-disabled-background-color);\n color: var(--form-control-disabled-color);\n cursor: not-allowed;\n\n + .tyk-input-group__addon {\n background-color: var(--form-control-disabled-background-color);\n }\n }\n\n &::placeholder {\n opacity: 0.8;\n }\n\n &:-ms-input-placeholder {\n opacity: 0.8;\n }\n }\n\n &.tyk-form-group--addon-left {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-primary-color);\n border-inline-start: 2px solid var(--form-primary-color);\n color: var(--form-primary-color);\n }\n }\n\n &.tyk-form-group--addon-right {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-primary-color);\n border-inline-end: 2px solid var(--form-primary-color);\n color: var(--form-primary-color);\n }\n }\n}\n\n.tyk-form-group--success {\n color: var(--text-color);\n\n > .tyk-form-control__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-file-input__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-input-group > .tyk-form-control {\n border: var(--general-border-width) solid var(--form-success-color);\n color: var(--text-color);\n\n &[disabled] {\n border: var(--general-border-width) solid var(--form-success-color);\n background-color: var(--form-control-disabled-background-color);\n color: var(--form-control-disabled-color);\n cursor: not-allowed;\n\n + .tyk-input-group__addon {\n background-color: var(--form-control-disabled-background-color);\n }\n }\n\n &::placeholder {\n opacity: 0.8;\n }\n\n &:-ms-input-placeholder {\n opacity: 0.8;\n }\n }\n\n &.tyk-form-group--addon-left {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-success-color);\n border-inline-start: 2px solid var(--form-success-color);\n color: var(--form-success-color);\n }\n }\n\n &.tyk-form-group--addon-right {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-success-color);\n border-inline-end: 2px solid var(--form-success-color);\n color: var(--form-success-color);\n }\n }\n}\n\n.tyk-form-group--rounded-corners {\n &.has-error > .tyk-form-control__wrapper > .tyk-form-control {\n border-inline-start: var(--error-border);\n\n &:focus {\n border-inline-start: var(--error-border);\n outline: none;\n }\n }\n\n .tyk-form-control {\n border-radius: var(--general-border-radius);\n }\n}\n\n.tyk-form-group--addon-right input {\n border-inline-end: 0 !important;\n padding-inline-end: 0;\n}\n\n.tyk-form-group--addon-left input {\n border-inline-start: 0 !important;\n padding-inline-start: 0;\n}\n\n.tyk-form-group--rounded-corners.tyk-form-group--addon-right {\n input {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n\n .tyk-input-group__addon {\n background: var(--form-control-addon-background-color);\n border-start-end-radius: var(--general-border-radius);\n border-end-end-radius: var(--general-border-radius);\n color: var(--text-color);\n }\n}\n\n.tyk-form-group--rounded-corners.tyk-form-group--addon-left {\n input {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n border-inline-start: 0 !important;\n }\n\n .tyk-input-group__addon {\n background: var(--form-control-addon-background-color);\n border-start-start-radius: var(--general-border-radius);\n border-end-start-radius: var(--general-border-radius);\n color: var(--text-color);\n }\n}\n\n.tyk-form-control__error-message {\n font-family: var(--font-family-regular);\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n margin-block-start: 5px;\n padding: var(--error-message-padding);\n position: relative;\n\n &::before {\n content: '!';\n background: var(--color-danger-base);\n color: white;\n font-family: var(--font-family-bold);\n border-radius: 8px;\n display: inline-block;\n margin-inline-end: 5px;\n padding-block: 0;\n padding-inline: 7px;\n }\n}\n\n.tyk-input-group {\n align-items: center;\n display: flex;\n outline: none;\n}\n\n.tyk-input-group__addon {\n align-items: center;\n background-color: var(--form-control-addon-background-color);\n border: var(--form-control-border);\n display: flex;\n block-size: var(--form-control-height);\n padding-block: var(--form-control-addon-padding-top) var(--form-control-addon-padding-bottom);\n padding-inline: var(--form-control-addon-padding-left) var(--form-control-addon-padding-right);\n\n &:first-child {\n border-inline-end: 0;\n }\n\n &:last-child {\n border-inline-start: 0;\n }\n}\n\n.tyk-form-control {\n font-family: var(--font-family-medium);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n border: var(--form-control-border);\n background-color: white;\n color: var(--text-color);\n display: block;\n block-size: var(--form-control-height);\n padding-block: var(--form-control-padding-top) var(--form-control-padding-bottom);\n padding-inline: var(--form-control-padding-left) var(--form-control-padding-right);\n transition: all .2s linear;\n inline-size: 100%;\n\n &[disabled] {\n background-color: var(--form-control-disabled-background-color);\n\n .tyk-input-group__addon {\n background-color: var(--form-control-disabled-background-color);\n }\n\n cursor: not-allowed;\n }\n\n &::placeholder {\n font-family: var(--form-control-placeholder-font-family);\n color: var(--form-control-placeholder-color);\n }\n\n &:focus,\n &:active {\n outline: none;\n border: var(--form-control-border-focus) !important;\n\n + .tyk-input-group__addon {\n border: var(--form-control-border-focus) !important;\n border-inline-start: none !important;\n }\n }\n}\n\n.tyk-form-control__help-block {\n color: var(--help-block-color);\n font-style: var(--help-block-font-style);\n font-family: var(--font-family-regular);\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n padding: var(--help-block-padding);\n margin-block: 5px 0;\n margin-inline: 0;\n}\n\nselect {\n border-radius: 0;\n appearance: none;\n}\n\n.inline-form-wrapper {\n align-items: center;\n display: flex;\n inline-size: 100%;\n\n .inline-form {\n inline-size: 100%;\n }\n\n > button {\n margin-inline-start: 10px;\n margin-block-end: var(--spacing-base);\n }\n}\n\n.tyk-checkbox,\n.tyk-radio {\n margin-block: 10px;\n margin-inline: 0;\n\n label {\n font-family: var(--font-family-medium);\n }\n\n input {\n margin-block: 0;\n margin-inline: 0 5px;\n }\n}\n\n.tyk-checkbox--inline,\n.tyk-radio--inline {\n display: inline-flex;\n margin-inline-start: var(--spacing-base);\n\n &:first-child {\n margin-inline-start: 0;\n }\n}\n\n.tyk-inline-form {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n\n .tyk-form-group {\n flex: 1;\n margin-inline-start: var(--spacing-md);\n min-inline-size: 200px;\n\n &:first-child {\n margin-inline-start:0\n }\n }\n\n > .tyk-button {\n margin-inline-start: var(--spacing-md);\n margin-block-end: var(--spacing-base);\n }\n}\n",":root {\n --accordion-item-header-padding-y: var(--spacing-base);\n --accordion-item-header-padding-x: var(--spacing-base);\n --accordion-item-header-font-size: var(--base-font-size);\n --accordion-item-outside-trigger-width: var(--spacing-xxl);\n}\n\n.tyk-accordion__item {\n display: grid;\n}\n\n.tyk-accordion__item--trigger-position-left {\n grid-template-columns: var(--accordion-item-outside-trigger-width) auto;\n grid-template-areas:\n \"trigger header\"\n \"trigger content\";\n}\n\n.tyk-accordion__item--trigger-position-right {\n grid-template-columns: auto var(--accordion-item-outside-trigger-width);\n grid-template-areas:\n \"header trigger\"\n \"content trigger\";\n}\n\n.tyk-accordion__item--trigger-in-header {\n grid-template-columns: auto;\n grid-template-areas:\n \"header\"\n \"content\";\n}\n\n.tyk-accordion__trigger-wrapper {\n grid-area: trigger;\n display: flex;\n align-items: flex-start;\n justify-content: center;\n\n .tyk-icon {\n margin-inline: auto;\n }\n}\n\n.tyk-accordion__trigger,\n.tyk-accordion__item-header > button {\n background: none;\n border: none;\n cursor: pointer;\n display: flex;\n font-size: var(--accordion-item-header-font-size);\n outline: none;\n padding-inline: var(--accordion-item-header-padding-x);\n padding-block: var(--accordion-item-header-padding-y);\n inline-size: 100%;\n\n .tyk-icon {\n margin-inline-start: auto;\n }\n}\n\n.tyk-accordion__item-header {\n grid-area: header;\n}\n\n.tyk-accordion__trigger--disabled {\n color: var(--color-background-base);\n}\n\n.tyk-accordion__item-header.tyk-accordion__arrow-trigger {\n align-items: center;\n display: flex;\n\n > div {\n flex: 1;\n }\n\n > button {\n margin-inline-start: auto;\n inline-size: auto;\n }\n}\n\n.tyk-accordion__item-content {\n grid-area: content;\n}\n",":root {\n --button-font-family: var(--font-family-bold);\n --button-border-radius: var(--spacing-md);\n\n --padding-y-button-sm: 3px;\n --padding-x-button-sm: var(--spacing-base);\n --padding-y-button-md: 8px;\n --padding-x-button-md: 23px;\n --padding-y-button-lg: 13px;\n --padding-x-button-lg: 23px;\n\n --line-height-button-sm: var(--xs-line-height);\n --line-height-button-md: var(--md-line-height);\n --line-height-button-lg: var(--lg-line-height);\n\n --button-default-color: var(--color-default-base);\n --button-default-hover-color: var(--color-default-dark);\n --button-default-gradient-start-color: var(--color-default-base);\n --button-default-gradient-end-color: var(--color-default-dark);\n\n --button-primary-color: var(--color-default-base-light);\n --button-primary-hover-color: var(--color-default-dark);\n --button-primary-text-color: white;\n --button-primary-gradient-start-color: var(--color-primary-base);\n --button-primary-gradient-end-color: var(--color-primary-dark);\n\n --button-success-color: var(--color-success-base);\n --button-success-hover-color: var(--color-success-dark);\n --button-success-gradient-start-color: var(--color-success-base);\n --button-success-gradient-end-color: var(--color-success-dark);\n\n --button-danger-color: var(--color-danger-base);\n --button-danger-hover-color: var(--color-danger-dark);\n --button-danger-gradient-start-color: var(--color-danger-base);\n --button-danger-gradient-end-color: var(--color-danger-dark);\n\n --button-warning-color: var(--color-warning-base);\n --button-warning-font-color: white;\n --button-warning-gradient-start-color: var(--color-warning-base);\n --button-warning-gradient-end-color: var(--color-warning-light);\n\n --button-info-color: var(--color-info-base);\n --button-info-font-color: var(--text-color);\n --button-info-gradient-start-color: var(--color-info-base);\n --button-info-gradient-end-color: var(--color-info-light);\n\n --button-icon-only-background-hover: var(--color-background-light);\n}\n\n.tyk-button {\n --button-padding-y: var(--padding-y-button-md);\n --button-padding-x: var(--padding-x-button-md);\n --button-font-size: var(--sm-font-size);\n --button-line-height: var(--line-height-button-md);\n\n background-color: transparent;\n border: none;\n color: white;\n cursor: pointer;\n display: inline-block;\n font-family: var(--button-font-family);\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n transition: all .2s linear;\n user-select: none;\n vertical-align: middle;\n white-space: nowrap;\n\n + .tyk-button,\n + .tyk-dropdown,\n + .tyk-toggle {\n margin-inline-start: var(--spacing-sm);\n }\n\n span + i {\n margin-inline-start: var(--spacing-sm);\n }\n\n i + span {\n margin-inline-start: var(--spacing-sm);\n }\n\n &.disabled {\n cursor: not-allowed;\n opacity: 0.7;\n }\n\n &:hover {\n color: white;\n text-decoration: none;\n }\n\n &:focus {\n outline: none;\n }\n}\n\n.tyk-button--white {\n --button-variant-background: white;\n --button-variant-border: transparent;\n --button-variant-color: var(--color-default-base);\n --button-variant-hover-background: var(--color-background-dark);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--primary {\n --button-variant-background: var(--button-primary-color);\n --button-variant-border: var(--button-primary-color);\n --button-variant-color: var(--button-primary-text-color);\n --button-variant-hover-background: var(--button-primary-hover-color);\n --button-variant-hover-color: var(--button-primary-text-color);\n}\n\n.tyk-button--success {\n --button-variant-background: var(--button-success-color);\n --button-variant-border: var(--button-success-color);\n --button-variant-color: white;\n --button-variant-hover-background: var(--button-success-hover-color);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--danger {\n --button-variant-background: var(--button-danger-color);\n --button-variant-border: var(--button-danger-color);\n --button-variant-color: white;\n --button-variant-hover-background: var(--button-danger-hover-color);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--warning {\n --button-variant-background: var(--button-warning-color);\n --button-variant-border: transparent;\n --button-variant-color: var(--button-warning-font-color);\n --button-variant-hover-background: color-mix(in srgb, var(--button-variant-background), black 15%);\n --button-variant-hover-color: var(--button-warning-font-color);\n}\n\n.tyk-button--info {\n --button-variant-background: var(--button-info-color);\n --button-variant-border: var(--button-info-color);\n --button-variant-color: white;\n --button-variant-hover-background: color-mix(in srgb, var(--button-variant-background), black 15%);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--default {\n --button-variant-background: var(--button-default-color);\n --button-variant-border: var(--button-default-color);\n --button-variant-color: white;\n --button-variant-hover-background: var(--button-default-hover-color);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--white,\n.tyk-button--primary,\n.tyk-button--success,\n.tyk-button--danger,\n.tyk-button--warning,\n.tyk-button--info,\n.tyk-button--default {\n background-color: var(--button-variant-background);\n color: var(--button-variant-color);\n border: var(--general-border-width) solid var(--button-variant-border);\n\n &:hover {\n background-color: var(--button-variant-hover-background);\n color: var(--button-variant-hover-color);\n }\n}\n\n.tyk-button--primary-link {\n --button-variant-link-color: var(--button-primary-color);\n}\n\n.tyk-button--success-link {\n --button-variant-link-color: var(--button-success-color);\n}\n\n.tyk-button--danger-link {\n --button-variant-link-color: var(--button-danger-color);\n}\n\n.tyk-button--warning-link {\n --button-variant-link-color: var(--button-warning-color);\n}\n\n.tyk-button--info-link {\n --button-variant-link-color: var(--button-info-color);\n}\n\n.tyk-button--default-link {\n --button-variant-link-color: var(--text-color);\n}\n\n.tyk-button--primary-link,\n.tyk-button--success-link,\n.tyk-button--danger-link,\n.tyk-button--warning-link,\n.tyk-button--info-link,\n.tyk-button--default-link {\n background-color: transparent;\n border: var(--general-border-width) solid transparent;\n color: var(--button-variant-link-color);\n\n &:hover {\n background-color: transparent;\n color: var(--button-variant-link-color);\n border-color: var(--button-variant-link-color);\n text-decoration: underline;\n }\n}\n\n.tyk-button--primary-outline {\n --button-variant-outline-border: var(--button-primary-color);\n --button-variant-outline-color: var(--button-primary-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--success-outline {\n --button-variant-outline-border: var(--button-success-color);\n --button-variant-outline-color: var(--button-success-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--danger-outline {\n --button-variant-outline-border: var(--button-danger-color);\n --button-variant-outline-color: var(--button-danger-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--warning-outline {\n --button-variant-outline-border: var(--button-warning-color);\n --button-variant-outline-color: var(--button-warning-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--info-outline {\n --button-variant-outline-border: var(--button-info-color);\n --button-variant-outline-color: var(--button-info-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--default-outline {\n --button-variant-outline-border: var(--button-default-color);\n --button-variant-outline-color: var(--button-default-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--primary-outline,\n.tyk-button--success-outline,\n.tyk-button--danger-outline,\n.tyk-button--warning-outline,\n.tyk-button--info-outline,\n.tyk-button--default-outline {\n border: var(--general-border-width) solid var(--button-variant-outline-border);\n background-color: transparent;\n color: var(--button-variant-outline-color);\n\n &:hover {\n background-color: var(--button-variant-outline-border);\n color: var(--button-variant-outline-hover-color);\n }\n\n &.disabled {\n color: var(--button-variant-outline-border);\n\n &:hover {\n background-color: transparent;\n color: var(--button-variant-outline-border);\n }\n }\n}\n\n.tyk-button--primary-gradient {\n --button-variant-gradient-left-color: var(--button-primary-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-primary-gradient-end-color);\n}\n\n.tyk-button--success-gradient {\n --button-variant-gradient-left-color: var(--button-success-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-success-gradient-end-color);\n}\n\n.tyk-button--danger-gradient {\n --button-variant-gradient-left-color: var(--button-danger-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-danger-gradient-end-color);\n}\n\n.tyk-button--warning-gradient {\n --button-variant-gradient-left-color: var(--button-warning-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-warning-gradient-end-color);\n --button-variant-gradient-color: var(--button-warning-font-color);\n}\n\n.tyk-button--info-gradient {\n --button-variant-gradient-left-color: var(--button-info-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-info-gradient-end-color);\n --button-variant-gradient-color: var(--button-info-font-color);\n}\n\n.tyk-button--default-gradient {\n --button-variant-gradient-left-color: var(--button-default-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-default-gradient-end-color);\n}\n\n.tyk-button--primary-gradient,\n.tyk-button--success-gradient,\n.tyk-button--danger-gradient,\n.tyk-button--warning-gradient,\n.tyk-button--info-gradient,\n.tyk-button--default-gradient {\n border-image: linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color)) 0 round;\n background: transparent linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: var(--button-variant-gradient-color, white);\n\n &:hover,\n &:active,\n &:active:focus {\n border-image: linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color)) 0 round;\n background: transparent linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color));\n background-position: 100% 0;\n background-size: 200% auto;\n background-clip: border-box;\n\n &.disabled {\n border-image: linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color)) 0 round;\n background: transparent linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: var(--button-variant-gradient-color, white);\n }\n }\n}\n\n.tyk-button--sm {\n --button-padding-y: var(--padding-y-button-sm);\n --button-padding-x: var(--padding-x-button-sm);\n --button-font-size: var(--xs-font-size);\n --button-line-height: var(--xs-line-height);\n}\n\n.tyk-button--md {\n --button-padding-y: var(--padding-y-button-md);\n --button-padding-x: var(--padding-x-button-md);\n --button-font-size: var(--sm-font-size);\n --button-line-height: var(--sm-line-height);\n}\n\n.tyk-button--lg {\n --button-padding-y: var(--padding-y-button-lg);\n --button-padding-x: var(--padding-x-button-lg);\n --button-font-size: var(--md-font-size);\n --button-line-height: var(--line-height-button-md);\n}\n\n.tyk-button,\n.tyk-button--sm,\n.tyk-button--md,\n.tyk-button--lg {\n padding-block: var(--button-padding-y);\n padding-inline: var(--button-padding-x);\n font-size: var(--button-font-size);\n line-height: var(--button-line-height);\n border-radius: var(--button-border-radius);\n}\n\n.tyk-button--icon-only {\n border-radius: var(--general-border-radius);\n padding: 0;\n line-height: var(--spacing-md);\n inline-size: 24px;\n\n &:hover {\n border-radius: var(--general-border-radius);\n }\n}\n\n.tyk-button--fit {\n block-size: auto;\n inline-size: auto;\n line-height: normal;\n}\n\n.tyk-button--no-style {\n background: transparent;\n border: none;\n color: var(--text-color);\n\n &:hover {\n background: transparent;\n border: none;\n color: var(--text-color);\n }\n}\n",".tyk-button-group__wrapper {\n display: inline-block;\n position: relative;\n vertical-align: middle;\n\n label {\n font-family: var(--font-family-medium);\n }\n\n + .tyk-button,\n + .tyk-dropdown,\n + .tyk-toggle,\n + .tyk-button-group__wrapper {\n margin-inline-start: var(--spacing-sm);\n }\n\n .tyk-button-group {\n display: flex;\n\n > .tyk-button-group:not(:first-child) {\n > .tyk-button {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n }\n\n > .tyk-button-group:not(:last-child) {\n > .tyk-button {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n }\n\n .tyk-button {\n border-radius: 0;\n\n + .tyk-button {\n margin-inline-start: 0;\n }\n\n + .tyk-dropdown {\n margin-inline-start: 0;\n }\n\n &:first-child {\n border-start-start-radius: var(--spacing-md);\n border-end-start-radius: var(--spacing-md);\n }\n\n &:last-child {\n border-start-end-radius: var(--spacing-md);\n border-end-end-radius: var(--spacing-md);\n\n &.tyk-button--icon-only {\n inline-size: 42px;\n }\n }\n }\n }\n}\n",".tyk-card {\n background-color: white;\n border: 1px solid var(--color-background-base);\n border-radius: 8px;\n box-shadow: 2px 2px 3px var(--color-background-base);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.tyk-card__header {\n align-items: center;\n display: flex;\n font-family: var(--font-inter-regular);\n font-size: var(--sm-font-size);\n padding-block: var(--spacing-base) 0;\n padding-inline: var(--spacing-base);\n}\n\n.tyk-card__header-right {\n margin-inline-start: auto;\n}\n\n.tyk-card__title-group {\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: center;\n\n .tyk-card__title-icon {\n align-items: center;\n display: flex;\n inline-size: 42px;\n block-size: 42px;\n justify-content: center;\n margin-inline-end: 10px;\n grid-row: span 2;\n }\n}\n\n.tyk-card__title {\n font-family: var(--font-inter-bold);\n font-size: var(--lg-font-size);\n display: -webkit-box;\n -webkit-box-orient: vertical;\n overflow: hidden;\n margin: 0;\n text-overflow: ellipsis;\n}\n\n.tyk-card__title--max-1-lines {\n -webkit-line-clamp: 1;\n}\n\n.tyk-card__title--max-2-lines {\n -webkit-line-clamp: 2;\n}\n\n.tyk-card__sub-title {\n font-family: var(--font-inter-medium);\n font-size: var(--xs-font-size);\n margin: 0;\n}\n\n.tyk-card__title-group + .tyk-card__summary,\n.tyk-card__sub-title + .tyk-card__summary,\n.tyk-card__title + .tyk-card__summary {\n margin-block-start: var(--spacing-sm);\n}\n\n.tyk-card__summary {\n color: var(--text-color);\n font-family: var(--font-inter-regular);\n font-size: var(--sm-font-size);\n display: -webkit-box;\n -webkit-box-orient: vertical;\n overflow: hidden;\n margin: 0;\n text-overflow: ellipsis;\n}\n\n.tyk-card__summary--max-1-lines {\n -webkit-line-clamp: 1;\n}\n\n.tyk-card__summary--max-2-lines {\n -webkit-line-clamp: 2;\n}\n\n.tyk-card__summary--max-3-lines {\n -webkit-line-clamp: 3;\n}\n\n.tyk-card__summary--max-4-lines {\n -webkit-line-clamp: 4;\n}\n\n.tyk-card__summary--max-5-lines {\n -webkit-line-clamp: 5;\n}\n\n.tyk-card__body {\n display: flex;\n flex: 1 0 auto;\n flex-grow: 1;\n padding: var(--spacing-base);\n}\n\n.tyk-card__body--align-top {\n align-items: flex-start;\n}\n\n.tyk-card__body--align-center {\n align-items: center;\n}\n\n.tyk-card__body--align-bottom {\n align-items: flex-end;\n}\n\n.tyk-card__footer {\n display: flex;\n justify-content: end;\n border-block-start: 1px solid var(--color-background-base);\n padding: var(--spacing-base);\n}",".tyk-chart__wrapper {\n position: relative;\n}\n\n.tyk-chart--no-data,\n.tyk-chart--loading-chart {\n filter: blur(var(--spacing-sm));\n}\n",".collapse-exit,\n.collapse-exit-active,\n.collapse-exit-done {\n block-size: 0;\n}\n\n.collapse-wrapper {\n overflow: hidden;\n transition: all .2s;\n}\n\n.collapse-horizontal-exit,\n.collapse-horizontal-exit-active,\n.collapse-horizontal-exit-done {\n inline-size: 0;\n}\n\n.collapse-horizontal-enter,\n.collapse-horizontal-enter-active,\n.collapse-horizontal-enter-done {\n inline-size: 100%;\n}\n",".tyk-copy-to-clipboard {\n position: absolute;\n inset-inline-start: -1000px;\n inset-block-start: -1000px;\n}",":root {\n --fixed-wrapper-top: 0;\n --fixed-wrapper-left: 0;\n --fixed-wrapper-right: 0;\n}\n\n.tyk-fixed-wrapper {\n inset-inline-start: var(--fixed-wrapper-left);\n inset-inline-end: var(--fixed-wrapper-right);\n position: sticky;\n inset-block-start: var(--fixed-wrapper-top);\n z-index: 8;\n}\n\n.tyk-fixed-wrapper--scrolled {\n box-shadow: 2px 2px 5px rgba(0 0 0 / 10%);\n}\n",".floating-container {\n position: fixed;\n inset-block-start: -9999px;\n overflow: auto;\n z-index: var(--modal-z-index, 1080);\n}\n\n.floating-container__content-wrapper {\n block-size: 100%;\n}",".tyk-icon {\n + .tyk-icon {\n margin-inline-start: var(--spacing-sm);\n }\n}\n",".tyk-infinite-scroller {\n block-size: 100%;\n overflow: hidden;\n position: relative;\n\n .loading {\n background: linear-gradient(180deg, rgba(255 255 255 / 0%), rgba(255 255 255 / 100%));\n justify-content: center;\n display: flex;\n inset-inline: 0;\n inset-block-start: auto;\n inset-block-end: 0;\n padding-block: var(--spacing-base);\n padding-inline: 0;\n inline-size: 100%;\n }\n}\n\n.tyk-infinite-scroller__wrapper {\n block-size: 100%;\n overflow-y: auto;\n}\n",".tyk-info-note {\n border-radius: 0;\n position: relative;\n\n p + p {\n margin-block-start: var(--spacing-base);\n }\n\n &::after {\n content: '';\n border-style: solid;\n border-width: 0 var(--spacing-md) var(--spacing-md) 0;\n border-color: transparent var(--color-info-base) transparent transparent;\n block-size: 0;\n position: absolute;\n inset-inline-end: 0;\n inset-block-start: 0;\n inline-size: 0;\n }\n\n .tyk-message {\n border-radius: 0;\n padding-block: 40px;\n }\n}\n",".tyk-loading__wrapper {\n background: rgba(255 255 255 / 60%);\n position: absolute;\n inset: 0;\n z-index: 99;\n}\n\n.loader-wrapper {\n min-block-size: 100px;\n position: relative;\n}\n\n.loading {\n position: absolute;\n inset-block-start: calc(50% - var(--spacing-sm));\n inset-inline-start: 50%;\n\n &.relative {\n inset-inline-start: auto;\n padding: 25px;\n position: relative;\n text-align: center;\n inset-block-start: auto;\n inline-size: 100%;\n }\n}\n\n.loading-bar {\n display: inline-block;\n inline-size: 4px;\n block-size: var(--spacing-md);\n border-radius: 4px;\n animation: loading 1s ease-in-out infinite;\n margin-inline-start: 2px;\n}\n\n.loading-bar:nth-child(1) {\n animation-delay: 0;\n background-color: var(--color-success-base);\n opacity: 1;\n}\n\n.loading-bar:nth-child(2) {\n animation-delay: 0.09s;\n background-color: var(--color-success-base);\n opacity: 0.80;\n}\n\n.loading-bar:nth-child(3) {\n animation-delay: .18s;\n background-color: var(--color-success-base);\n opacity: 0.60;\n}\n\n.loading-bar:nth-child(4) {\n animation-delay: .27s;\n background-color: var(--color-success-base);\n opacity: 0.40;\n}\n\n@keyframes loading {\n 0% {\n transform: scale(1);\n }\n\n 20% {\n transform: scale(1, 2.2);\n }\n\n 40% {\n transform: scale(1);\n }\n}\n",".tyk-list {\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n font-size: var(--sm-font-size);\n list-style-type: none;\n margin: 0;\n max-block-size: 191px;\n padding: 0;\n overflow: auto;\n\n li {\n border-block-end: 1px solid var(--color-default-light);\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-md);\n font-family: var(--font-family-medium);\n\n &.tyk-list__item--selected {\n background-color: var(--color-default-light);\n }\n\n &:last-child {\n border: none;\n }\n }\n}\n\n.tyk-list--with-inline-label {\n display: flex;\n\n > label {\n margin-inline-end: var(--spacing-md);\n }\n}\n\n.tyk-list--default {\n border-color: var(--color-default-light);\n}\n\n.tyk-list--primary {\n border-color: var(--color-primary-base);\n\n li {\n border-color: var(--color-primary-light);\n color: var(--text-color);\n\n &.tyk-list__item--selected {\n background-color: var(--color-primary-light);\n }\n }\n}\n\n.tyk-list--primary-light {\n border-color: var(--color-primary-light);\n\n li {\n border-color: var(--color-primary-light);\n color: var(--text-color);\n\n &.tyk-list__item--selected {\n background-color: var(--color-primary-light);\n }\n }\n}\n\n.tyk-list--success {\n border-color: var(--color-success-base);\n color: var(--color-success-base);\n\n li {\n border-color: var(--color-success-base);\n\n &.tyk-list__item--selected {\n background-color: var(--color-success-light);\n }\n }\n}\n\n.tyk-list--danger {\n border-color: var(--color-danger-base);\n color: var(--text-color);\n\n li {\n border-color: var(--color-danger-light);\n\n &.tyk-list__item--selected {\n background-color: var(--color-danger-light);\n }\n }\n}\n\nul.tyk-list--inline {\n align-items: center;\n display: flex;\n\n li {\n padding-block: 0;\n padding-inline: var(--spacing-sm);\n }\n\n &.tyk-list--with-separator {\n li:not(:first-child) {\n border-inline-start: 1px solid var(--color-default-base);\n }\n }\n}\n",":root {\n --tyk-message-padding-top: var(--spacing-md);\n --tyk-message-padding-right: var(--spacing-md);\n --tyk-message-padding-bottom: var(--spacing-md);\n --tyk-message-padding-left: var(--spacing-md);\n --tyk-message-border-radius: var(--general-border-radius);\n --tyk-message-default-background: var(--color-primary-light);\n --tyk-message-default-border: var(--color-default-dark);\n --tyk-message-default-text-color: var(--color-default-dark);\n --tyk-message-info-background: var(--color-info-light);\n --tyk-message-info-border: var(--color-info-base);\n --tyk-message-info-text-color: var(--color-info-base);\n --tyk-message-success-background: var(--color-success-light);\n --tyk-message-success-border: var(--color-success-dark);\n --tyk-message-success-text-color: var(--color-success-dark);\n --tyk-message-warning-background: var(--color-warning-light);\n --tyk-message-warning-border: var(--color-warning-base);\n --tyk-message-warning-text-color: var(--color-warning-dark);\n --tyk-message-danger-background: var(--color-danger-extra-light);\n --tyk-message-danger-border: var(--color-danger-base);\n --tyk-message-danger-text-color: var(--color-danger-dark);\n}\n\n.tyk-message {\n display: flex;\n align-items: center;\n border-radius: var(--tyk-message-border-radius);\n margin-block-end: var(--spacing-md);\n padding-block: var(--tyk-message-padding-top) var(--tyk-message-padding-bottom);\n padding-inline: var(--tyk-message-padding-left) var(--tyk-message-padding-right);\n\n > .tyk-icon:first-child {\n inline-size: 32px;\n block-size: 32px;\n flex-shrink: 0;\n border-radius: 50%;\n color: white;\n\n &::before {\n display: flex;\n inline-size: 100%;\n block-size: 100%;\n align-items: center;\n justify-content: center;\n }\n }\n\n > .tyk-icon:last-child {\n cursor: pointer;\n }\n\n /* &--default {\n @include message-variant(\n $tyk-message-default-background,\n $tyk-message-default-border,\n $tyk-message-default-text-color\n );\n\n > .tyk-icon:first-child {\n transform: rotate(180deg);\n }\n }\n\n &--info {\n @include message-variant(\n $tyk-message-info-background,\n $tyk-message-info-border,\n $tyk-message-info-text-color\n );\n }\n\n &--success {\n @include message-variant(\n $tyk-message-success-background,\n $tyk-message-success-border,\n $tyk-message-success-text-color\n );\n }\n\n &--warning {\n @include message-variant(\n $tyk-message-warning-background,\n $tyk-message-warning-border,\n $tyk-message-warning-text-color\n );\n }\n\n &--danger {\n @include message-variant(\n $tyk-message-danger-background,\n $tyk-message-danger-border,\n $tyk-message-danger-text-color\n );\n } */\n}\n\n.tyk-message__content {\n flex-grow: 1;\n margin-inline: var(--spacing-md);\n color: var(--tyk-message-default-text-color);\n font-weight: bold;\n}\n\n.tyk-message--default {\n --message-variant-background: var(--tyk-message-default-background);\n --message-variant-border: var(--tyk-message-default-border);\n --message-variant-color: var(--tyk-message-default-text-color);\n\n > .tyk-icon:first-child {\n transform: rotate(180deg);\n }\n}\n\n.tyk-message--info {\n --message-variant-background: var(--tyk-message-info-background);\n --message-variant-border: var(--tyk-message-info-border);\n --message-variant-color: var(--tyk-message-info-text-color);\n}\n\n.tyk-message--success {\n --message-variant-background: var(--tyk-message-success-background);\n --message-variant-border: var(--tyk-message-success-border);\n --message-variant-color: var(--tyk-message-success-text-color);\n}\n\n.tyk-message--warning {\n --message-variant-background: var(--tyk-message-warning-background);\n --message-variant-border: var(--tyk-message-warning-border);\n --message-variant-color: var(--tyk-message-warning-text-color);\n}\n\n.tyk-message--danger {\n --message-variant-background: var(--tyk-message-danger-background);\n --message-variant-border: var(--tyk-message-danger-border);\n --message-variant-color: var(--tyk-message-danger-text-color);\n}\n\n.tyk-message--default,\n.tyk-message--info,\n.tyk-message--success,\n.tyk-message--warning,\n.tyk-message--danger {\n background-color: var(--message-variant-background);\n border: var(--general-border-width) solid var(--message-variant-border);\n color: var(--message-variant-color);\n\n & > .tyk-icon:first-child {\n background-color: var(--message-variant-border);\n }\n}\n",":root {\n --tyk-modal-body-padding: var(--spacing-lg);\n --tyk-modal-footer-padding: var(--spacing-lg);\n\n /* Deprecated Modal.Header and Modal.Title */\n --tyk-modal-header-padding: var(--spacing-lg);\n --tyk-modal-borders-color: var(--color-background-light);\n\n /* End of deprecated styles */\n}\n\n.tyk-modal {\n --theme-header-height: 15px;\n --theme-header-icon-size: 65px;\n\n align-items: center;\n pointer-events: none;\n position: fixed;\n inset: 0;\n z-index: -1;\n\n .tyk-panel {\n border: var(--general-border-width) solid var(--color-background-dark);\n box-shadow: none;\n }\n\n .tyk-modal__dialog {\n opacity: 0;\n transition: all .2s ease;\n }\n\n &.opened {\n display: flex;\n z-index: var(--modal-z-index);\n\n .tyk-modal__dialog {\n display: flex;\n max-block-size: 92vh;\n opacity: 1;\n pointer-events: all;\n }\n }\n\n &.appear-enter-done {\n .tyk-modal__dialog {\n opacity: 1;\n margin-block-start: 0;\n }\n }\n}\n\n.tyk-modal__theme-header {\n position: absolute;\n inset-block-start: -1px;\n inset-inline: 0;\n block-size: var(--theme-header-height);\n border-start-start-radius: var(--general-border-radius);\n border-start-end-radius: var(--general-border-radius);\n\n .tyk-icon {\n position: absolute;\n inset-inline-start: calc(50% - var(--theme-header-icon-size) / 2);\n inset-block-start: calc((var(--theme-header-icon-size) - var(--theme-header-height)) / -2);\n inline-size: var(--theme-header-icon-size);\n block-size: var(--theme-header-icon-size);\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: var(--xxl-font-size);\n color: white;\n }\n}\n\n.tyk-modal--theme-success {\n .tyk-modal__theme-header {\n background-color: var(--color-success-base);\n\n .tyk-icon {\n background-color: var(--color-success-base);\n }\n }\n}\n\n.tyk-modal--theme-warning {\n .tyk-modal__theme-header {\n background-color: var(--color-warning-base);\n\n .tyk-icon {\n background-color: var(--color-warning-base);\n }\n }\n}\n\n.tyk-modal--theme-danger {\n .tyk-modal__theme-header {\n background-color: var(--color-danger-base);\n\n .tyk-icon {\n background-color: var(--color-danger-base);\n }\n }\n}\n\n.tyk-modal__dialog {\n opacity: 0;\n margin-inline: auto;\n margin-block-start: -5%;\n margin-block-end: 0;\n pointer-events: all;\n transition: all .2s linear;\n inline-size: 85%;\n}\n\n@media only screen and (width >= 768px) {\n .tyk-modal__dialog {\n inline-size: 600px;\n\n &.tyk-modal--lg {\n inline-size: 800px;\n }\n }\n}\n\n.tyk-modal__content {\n background: white;\n border-radius: var(--general-border-radius);\n display: flex;\n flex-direction: column;\n position: relative;\n inline-size: 100%;\n}\n\n.tyk-modal__body {\n flex: 1;\n overflow: auto;\n padding-block-start: calc(var(--tyk-modal-body-padding) + (var(--theme-header-icon-size) - var(--theme-header-height)) / 2);\n padding-block-end: var(--tyk-modal-body-padding);\n padding-inline: var(--tyk-modal-body-padding);\n\n &.no-padding {\n padding: 0;\n }\n}\n\n.tyk-modal__footer {\n align-items: center;\n display: flex;\n justify-content: flex-end;\n padding: var(--tyk-modal-footer-padding);\n\n >:not(:first-child) {\n margin-inline-start: var(--spacing-xs);\n }\n}\n\n.tyk-modal__backdrop {\n background-color: var(--color-default-dark);\n border: none;\n display: none;\n position: fixed;\n inset: 0;\n inline-size: 100%;\n z-index: var(--modal-z-index) - 1;\n\n &.opened {\n display: block;\n opacity: 0.5;\n transition: opacity .2s ease;\n }\n\n &.fade-enter-done {\n opacity: 0.5;\n z-index: 9;\n }\n}\n\n/* Deprecated Modal.Header and Modal.Title */\n.tyk-modal__header {\n padding-block-start: calc(var(--tyk-modal-header-padding) + (var(--theme-header-icon-size) - var(--theme-header-height)) / 2);\n padding-block-end: var(--tyk-modal-header-padding);\n padding-inline: var(--tyk-modal-header-padding);\n align-items: center;\n border-block-end: 1px solid var(--tyk-modal-borders-color);\n display: flex;\n inline-size: 100%;\n\n .tyk-modal--theme-none & {\n padding-block-start: var(--tyk-modal-header-padding);\n }\n\n button {\n margin-inline-start: auto;\n padding-block: 0;\n padding-inline: 5px;\n }\n\n + .tyk-modal__body {\n padding-block-start: var(--tyk-modal-body-padding);\n }\n}\n\n.tyk-modal__title {\n font-family: var(--font-family-medium);\n font-weight: 500;\n margin: 0;\n inline-size: 100%;\n}\n\n/* End of deprecated styles */\n",":root {\n --navigation-background-color: white;\n --navigation-item-padding-y: var(--spacing-sm);\n --navigation-item-padding-x: var(--spacing-md);\n --navigation-item-background-color: white;\n --navigation-item-color: var(--text-color);\n --navigation-item-hover-background-color: var(--color-primary-base);\n --navigation-item-hover-color: white;\n --navigation-item-active-background-color: var(--color-primary-dark);\n --navigation-item-active-color: white;\n --navigation-padding: 0;\n}\n\n.tyk-navigation {\n background-color: var(--navigation-background-color);\n block-size: 100%;\n overflow: auto;\n padding: var(--navigation-padding);\n inline-size: 100%;\n\n .tyk-navigation-item {\n inline-size: 100%;\n\n a {\n color: var(--navigation-item-color);\n display: flex;\n padding-block: var(--navigation-item-padding-y);\n padding-inline: var(--navigation-item-padding-x);\n text-decoration: none;\n transition: all .2s ease;\n\n &:hover {\n background-color: var(--navigation-item-hover-background-color);\n color: var(--navigation-item-hover-color);\n }\n\n &.active {\n background-color: var(--navigation-item-active-background-color);\n color: var(--navigation-item-active-color);\n }\n }\n }\n}\n",":root {\n --nav-bar-background-color: white;\n --nav-bar-text-color: var(--color-default-base);\n --nav-bar-padding-left: 265px;\n --nav-bar-animate-left: 245px;\n --nav-bar-top-padding: var(--spacing-sm);\n --nav-bar-bottom-padding: 0;\n --nav-bar-left-padding: var(--spacing-md);\n --nav-bar-right-padding: var(--spacing-md);\n --nav-bar-padding: 0 var(--nav-bar-right-padding) 0 var(--nav-bar-left-padding);\n --nav-bar-top: 51px;\n --nav-bar-header-font-size: var(--xxl-font-size);\n --nav-bar-header-font-family: var(--headings-font-family-bold);\n --nav-bar-header-line-height: var(--xxl-line-height);\n --nav-bar-height: 92px;\n --nav-bar-font-family: var(--font-family-regular);\n}\n\n.tyk-nav-bar {\n align-items: center;\n border: none;\n background-color: var(--nav-bar-background-color);\n font-family: var(--nav-bar-font-family);\n color: var(--nav-bar-text-color);\n margin: 0;\n padding: var(--nav-bar-padding);\n inline-size: 100%;\n z-index: 8;\n transition: all .2s linear;\n\n &.tyk-nav-bar__with-tabs .tyk-tabs--default > ul li button {\n padding-block-start: 0;\n }\n\n @media screen and (width <= 1024px) {\n padding-inline-start: var(--spacing-md);\n\n .menu-opened & {\n transform: translate(var(--nav-bar-animate-left));\n }\n }\n\n h1 {\n color: var(--nav-bar-text-color);\n }\n\n h4 {\n margin: 0;\n }\n\n .tyk-nav-bar__wrapper {\n align-items: center;\n padding-block-end: var(--nav-bar-bottom-padding);\n display: flex;\n flex-wrap: wrap;\n block-size: var(--nav-bar-height);\n\n &.tyk-nav-bar--align-top {\n align-items: flex-start;\n }\n\n @media screen and (width <= 1024px) {\n padding-inline-start: 0;\n }\n\n h1 {\n font-size: var(--nav-bar-header-font-size);\n font-family: var(--nav-bar-header-font-family);\n line-height: var(--nav-bar-header-line-height);\n margin: 0;\n padding-inline-end: var(--spacing-sm);\n }\n\n h4 {\n padding-inline-end: var(--spacing-sm);\n }\n\n .tyk-nav-bar__container {\n align-items: center;\n display: flex;\n flex-grow: 1;\n justify-content: space-between;\n }\n\n .tyk-nav-bar__left {\n flex-grow: 1;\n }\n\n .tyk-nav-bar__right {\n margin-inline-start: auto;\n }\n }\n}\n\n.tyk-nav-bar__pre {\n align-self: flex-end;\n color: var(--text-color);\n flex-basis: 100%;\n\n a {\n font-family: var(--font-family-bold);\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n color: var(--text-color);\n }\n}\n",":root {\n --padding-y-panel-header: var(--spacing-sm);\n --padding-x-panel-header: 25px;\n --padding-y-blank-panel-header: var(--spacing-md);\n --padding-panel-body: 25px;\n --padding-x-right-panel-collapsable: 48px;\n --padding-x-left-panel-collapsable: var(--padding-x-right-panel-collapsable);\n --panel-border-radius: 0;\n --panel-default-border-bottom-color: var(--color-background-base);\n --panel-header-font-size: var(--base-font-size);\n --panel-header-font-family: var(--font-family-medium);\n --panel-primary-header-color: var(--color-primary-base);\n --panel-primary-body-color: white;\n --panel-primary-header-text-color: white;\n --panel-primary-body-text-color: var(--text-color);\n --panel-primary-label-color: var(--text-color);\n --panel-primary-border-color: none;\n}\n\n.tyk-panel {\n background: white;\n border-radius: var(--panel-border-radius);\n margin-block-end: 20px;\n font-family: var(--font-family-medium);\n position: relative;\n\n &.has-error,\n & &.has-error {\n border: var(--general-border-width) solid var(--color-danger-base);\n }\n\n .tyk-panel {\n border: var(--general-border-width) solid var(--color-default-light);\n box-shadow: none;\n }\n}\n\n.tyk-panel--blank,\n.tyk-panel--primary,\n.tyk-panel--success,\n.tyk-panel--danger,\n.tyk-panel--warning {\n .tyk-panel__header {\n border: none;\n font-size: var(--lg-font-size);\n line-height: var(--lg-line-height);\n }\n}\n\n.tyk-panel--blank {\n &.tyk-panel--collapsed {\n margin-block-end: 20px;\n\n .tyk-panel__header {\n margin-block-end: 0;\n }\n }\n\n .tyk-panel__header {\n margin-block-end: -20px;\n padding-block: var(--padding-y-blank-panel-header);\n padding-inline: var(--padding-x-panel-header);\n background-color: white;\n color: var(--color-default-base);\n }\n}\n\n.tyk-panel--primary {\n background-color: transparent;\n\n .tyk-panel__header {\n background-color: var(--panel-primary-header-color);\n color: var(--panel-primary-header-text-color);\n border: var(--panel-primary-border-color);\n }\n\n .tyk-panel__body {\n background-color: var(--panel-primary-body-color);\n color: var(--panel-primary-body-text-color);\n }\n\n & .tyk-form-group {\n label {\n color: var(--panel-primary-label-color);\n }\n }\n\n .tyk-toggle {\n .tyk-toggle__label {\n color: var(--panel-primary-label-color);\n }\n }\n}\n\n.tyk-panel--success {\n .tyk-panel__header {\n background-color: var(--color-success-base);\n color: white;\n }\n}\n\n.tyk-panel--danger {\n .tyk-panel__header {\n background-color: var(--color-danger-base);\n color: white;\n }\n}\n\n.tyk-panel--warning {\n .tyk-panel__header {\n background-color: var(--color-warning-base);\n color: white;\n }\n}\n\n.tyk-panel__body {\n background-color: white;\n border-radius: var(--panel-border-radius);\n font-family: var(--font-family-regular);\n padding: var(--padding-panel-body);\n position: relative;\n transition: block-size .2s;\n\n & ~ .tyk-panel__header {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n\n &.no-padding {\n padding: 0;\n }\n}\n\n.tyk-panel__header {\n display: flex;\n align-items: center;\n border-block-end: 1px solid var(--panel-default-border-bottom-color);\n border-radius: var(--panel-border-radius);\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n font-family: var(--panel-header-font-family);\n overflow: hidden;\n padding-block: var(--padding-y-panel-header);\n padding-inline: var(--padding-x-panel-header);\n position: relative;\n\n > .tyk-icon,\n > .tyk-tooltip__wrapper {\n margin-inline-start: 5px;\n }\n\n .tyk-panel--collapsed & {\n border-end-start-radius: var(--panel-border-radius);\n border-end-end-radius: var(--panel-border-radius);\n }\n\n & ~ .tyk-panel__body {\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n\n & h3 {\n margin: 0;\n }\n\n ng-transclude {\n vertical-align: middle;\n }\n\n &.collapsable {\n cursor: pointer;\n\n .tyk-panel__icon-collapse--right & {\n padding-inline-end: var(--padding-x-right-panel-collapsable);\n }\n\n .tyk-panel__icon-collapse--left & {\n padding-inline-start: var(--padding-x-left-panel-collapsable);\n }\n }\n\n .collapsable__arrow-right {\n font-size: var(--sm-font-size);\n position: absolute;\n padding: var(--spacing-sm);\n inset-inline-end: var(--spacing-sm);\n inset-block-start: calc(50% - 21px);\n }\n\n .collapsable__arrow-left {\n font-size: var(--sm-font-size);\n position: absolute;\n padding-block: 8px var(--spacing-sm);\n padding-inline: 20px 0;\n inset-inline-start: 0;\n inset-block-start: calc(50% - 21px);\n }\n}\n\n.tyk-panel__footer {\n align-items: center;\n border-block-start: 1px solid var(--color-background-light);\n display: flex;\n justify-content: flex-end;\n padding: var(--spacing-lg);\n\n >:not(:first-child) {\n margin-inline-start: 5px;\n }\n}\n",".tyk-pill {\n align-items: center;\n border-radius: var(--general-border-radius);\n display: inline-flex;\n font-size: var(--xs-font-size);\n line-height: 19px;\n margin: var(--pill-margin);\n padding-block: 6px;\n padding-inline: var(--spacing-base);\n font-family: var(--font-family-medium);\n\n i {\n font-size: var(--xs-font-size);\n }\n\n + .tyk-pill {\n margin-inline-end: var(--spacing-sm);\n }\n\n button + span {\n margin-inline-start: var(--spacing-sm);\n }\n\n span + button {\n margin-inline-start: var(--spacing-sm);\n }\n\n &:first-child {\n margin-inline-end: var(--spacing-sm);\n }\n\n &:last-child {\n margin-inline-end: 0;\n }\n}\n\n.tyk-pill--square {\n border-radius: 8px;\n}\n\n.tyk-pill--default {\n background-color: var(--default-pill-background-color);\n color: var(--default-pill-color);\n\n i {\n color: var(--default-pill-color);\n }\n}\n\n.tyk-pill--default-outline {\n box-shadow: var(--default-outline-pill-box-shadow);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--primary {\n background-color: var(--color-primary-base);\n color: white;\n\n i {\n color: var(--default-pill-color);\n }\n}\n\n.tyk-pill--primary-outline {\n box-shadow: inset 0 0 0 2px var(--color-primary-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--success {\n background-color: var(--color-success-base);\n color: white;\n\n i {\n color: white;\n }\n}\n\n.tyk-pill--success-outline {\n box-shadow: inset 0 0 0 2px var(--color-success-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--danger {\n background-color: var(--color-danger-base);\n color: white;\n\n i {\n color: white;\n }\n}\n\n.tyk-pill--danger-outline {\n box-shadow: inset 0 0 0 2px var(--color-danger-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--warning {\n background-color: var(--color-warning-base);\n color: white;\n\n i {\n color: white;\n }\n}\n\n.tyk-pill--warning-outline {\n box-shadow: inset 0 0 0 2px var(--color-warning-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--info {\n background-color: var(--color-info-base);\n color: white;\n\n i {\n color: white;\n }\n}\n\n.tyk-pill--info-outline {\n box-shadow: inset 0 0 0 2px var(--color-info-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n",".tyk-ui-reveal-wrapper {\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n align-items: stretch;\n inline-size: 100%;\n block-size: 100%;\n z-index: 1000;\n position: absolute;\n inset-block-end: 0;\n inset-inline-start: 0;\n pointer-events: none;\n}\n\n.tyk-ui-reveal-wrapper__panel {\n max-block-size: calc(100% - 2rem);\n background-color: white;\n padding: 0;\n margin: 0;\n display: flex;\n flex-direction: column;\n pointer-events: all;\n flex-shrink: 0;\n overflow: auto;\n}\n\n.tyk-ui-reveal-wrapper__hole {\n flex-grow: 1;\n opacity: 0;\n inline-size: 100%;\n background-color: green;\n -webkit-user-select: none;\n user-select: none;\n pointer-events: none;\n z-index: -1;\n}\n\n.tyk-ui-reveal-wrapper__gutter {\n block-size: 2rem;\n inline-size: 100%;\n cursor: row-resize;\n display: flex;\n background-color: var(--color-primary-base);\n z-index: 2;\n pointer-events: all;\n justify-content: space-between;\n align-items: stretch;\n position: relative;\n box-shadow: 0 5px 10px rgba(0 0 0 / 30%);\n}\n\n.tyk-ui-reveal-wrapper__gutter__headerleft,\n.tyk-ui-reveal-wrapper__gutter__headerright {\n display: flex;\n align-items: center;\n flex: 1;\n}\n\n.tyk-ui-reveal-wrapper__gutter__headerleft {\n justify-content: flex-start;\n}\n\n.tyk-ui-reveal-wrapper__gutter__headerright {\n justify-content: flex-end;\n}\n\n.tyk-ui-reveal-wrapper__gutter__logo {\n inline-size: 1rem;\n block-size: 1rem;\n -webkit-user-select: none;\n user-select: none;\n pointer-events: none;\n padding: 0.2rem;\n z-index: 2;\n background-image: url('./images/drag.svg');\n align-self: center;\n\n &:hover {\n border: dashed;\n }\n}\n",":root {\n --sidebar-background-color: white;\n --sidebar-top: 58px;\n --sidebar-height: calc(100vh - 58px);\n --sidebar-width: 280px;\n --sidebar-padding: 0;\n}\n\n.tyk-sidebar {\n background-color: var(--sidebar-background-color);\n block-size: var(--sidebar-height);\n flex: 0 0 var(--sidebar-width);\n padding: var(--sidebar-padding);\n position: sticky;\n overflow: auto;\n inset-block-start: var(--sidebar-top);\n}\n",":root {\n --table-th-padding: var(--spacing-base) var(--spacing-sm);\n --table-td-padding-y: var(--spacing-xs);\n --table-td-padding-x: var(--spacing-sm);\n --table-first-last-padding: 20px;\n --table-pagination-padding: var(--spacing-md) 25px;\n}\n\n.tyk-table {\n border-collapse: collapse;\n border-spacing: 0;\n background-color: white;\n border-radius: var(--general-border-radius);\n inline-size: 100%;\n\n > thead th {\n border-inline-end: 1px solid var(--color-default-light);\n color: var(--text-color);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-bold);\n text-transform: uppercase;\n padding: var(--table-th-padding);\n\n &:last-child {\n border-inline-end: none;\n }\n\n i {\n font-size: var(--xs-font-size);\n }\n\n .tyk-button {\n background: none;\n color: var(--color-default-base);\n padding: 0;\n }\n }\n\n > tbody tr:hover {\n background: rgba(var(--color-background-light) / 40%);\n }\n\n > tbody td {\n border-inline-end: 1px solid var(--color-default-light);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-regular);\n padding-block: var(--table-td-padding-y);\n padding-inline: var(--table-td-padding-x);\n vertical-align: middle;\n\n &:last-child {\n border-inline-end: none;\n }\n\n &.fit {\n white-space: nowrap;\n inline-size: 1%;\n }\n\n input:not([type='checkbox'], [type='radio']) {\n margin-block-start: var(--spacing-base);\n }\n\n a {\n color: var(--text-color);\n font-family: var(--font-family-medium);\n }\n\n label {\n margin: 0;\n }\n\n input[type='checkbox'] {\n margin: 0;\n }\n }\n\n tbody > tr {\n border-block-start: 1px solid var(--color-default-light);\n transition: all .4s linear;\n border-radius: var(--general-border-radius);\n\n &.clickable {\n cursor: pointer;\n }\n }\n\n > tbody tr td:first-child,\n > thead tr th:first-child {\n padding-inline-start: var(--table-first-last-padding);\n\n &.with-icon {\n padding-inline-start: var(--spacing-base);\n }\n }\n\n > tbody tr td:last-child,\n > thead tr th:last-child {\n padding-inline-end: var(--table-first-last-padding);\n\n &.with-icon {\n padding-inline-end: var(--spacing-base);\n }\n }\n\n .tyk-pagination {\n padding: var(--table-pagination-padding);\n\n li:first-child {\n margin-inline-start: auto;\n }\n }\n\n .nowrap {\n white-space: nowrap;\n }\n\n .wrap {\n word-break: break-all;\n }\n}\n\n.tyk-table__wrapper {\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n overflow: auto;\n\n &.no-innner-horizontal-borders {\n & .tyk-table > thead th,\n & .tyk-table > tbody td {\n border-inline-end: none;\n }\n }\n}\n\n.tyk-table__wrapper--no-border {\n border: none\n}\n\n.tyk-table-search {\n padding-block: var(--spacing-sm) 0;\n padding-inline: 25px;\n\n label {\n font-size: var(--sm-font-size);\n text-transform: uppercase;\n }\n}\n\n.header-sort {\n padding-inline-start: 3px;\n padding-block-start: var(--spacing-xs);\n vertical-align: middle;\n}\n\n.new-table-pagination {\n float: inline-end;\n}\n\n.selectable > div {\n margin-inline-start: var(--spacing-md);\n}\n\n.scrollable {\n display: block;\n overflow: auto;\n}\n\n.fixed-header {\n background: white;\n position: sticky;\n inset-block-start: 0;\n}\n\n.tyk-table.has-error,\n.tyk-table__wrapper.has-error {\n border: var(--general-border-width) solid var(--color-danger-base) !important;\n}",":root {\n --tabs-default-content-padding: 25px;\n --tab-button-padding: var(--spacing-sm) 2px 3px 2px;\n --tab-button-margin: 0;\n --tabs-font-familly: var(--font-family-medium);\n --tab-button-color: var(--text-color);\n --tab-active-button-color: var(--text-color);\n --tab-border-color: var(--color-success-base);\n}\n\n.tyk-tabs--default {\n > ul {\n display: flex;\n list-style-type: none;\n margin: 0;\n padding: 0;\n overflow: auto;\n\n li {\n display: flex;\n white-space: nowrap;\n margin-inline-end: var(--tab-button-margin);\n\n &:last-child {\n margin-inline-end: 0;\n }\n\n &.active button,\n button:hover {\n border-block-end-color: var(--tab-border-color);\n color: var(--tab-active-button-color);\n opacity: 1;\n }\n\n button {\n background: none;\n border: none;\n border-block-end: 4px solid transparent;\n color: var(--tab-button-color);\n cursor: pointer;\n font-size: var(--sm-font-size);\n font-family: var(--tabs-font-familly);\n padding: var(--tab-button-padding);\n margin-inline-end: var(--spacing-md);\n transition: all .2s linear;\n opacity: 0.7;\n\n &:focus {\n outline: none;\n }\n }\n }\n }\n}\n\n.tyk-tab__content {\n padding: var(--tabs-default-content-padding);\n}\n",".tyk-toast__container {\n inset-block-end: 0;\n min-inline-size: 300px;\n position: fixed;\n inset-inline-end: var(--spacing-md);\n z-index: 11;\n}\n\n.tyk-toast__message {\n position: relative;\n}\n\n.tyk-toast-message__button {\n color: var(--text-color);\n block-size: var(--spacing-md);\n line-height: 1;\n padding: var(--spacing-xs);\n position: absolute;\n inset-inline-end: var(--spacing-xs);\n inset-block-start: var(--spacing-xs);\n inline-size: var(--spacing-md);\n\n &:hover {\n background: rgba(255 255 255 / 30%);\n color: var(--text-color);\n }\n}\n",":root {\n --tooltip-max-width: 450px;\n}\n\n.tyk-tooltip {\n display: flex;\n align-items: center;\n background-color: var(--color-primary-light);\n border: 2px solid var(--color-primary-base);\n border-radius: var(--general-border-radius);\n max-inline-size: var(--tooltip-max-width);\n padding: var(--spacing-md);\n\n > .tyk-icon:first-child {\n inline-size: 32px;\n block-size: 32px;\n border-radius: 50%;\n color: white;\n background-color: var(--color-default-base-light);\n\n &::before {\n display: flex;\n inline-size: 100%;\n block-size: 100%;\n align-items: center;\n justify-content: center;\n }\n }\n\n > .tyk-icon + .tyk-tooltip__content {\n margin-inline-start: var(--spacing-md);\n }\n\n > .tyk-icon:last-child {\n cursor: pointer;\n }\n}\n\n.tyk-tooltip__content {\n color: var(--color-default-dark);\n word-break: break-word;\n word-wrap: break-word;\n\n + .tyk-icon {\n margin-inline-start: var(--spacing-md);\n }\n}\n",":root {\n --tyk-combobox-pill-background: #F0F0F0;\n --tyk-combobox-pill-color: var(--text-color);\n --tyk-combobox-list-item-hover-color: var(--form-default-color);\n --tyk-combobox-list-item-disabled-color: var(--form-default-color);\n}\n\n.tyk-combobox2 {\n --container-trigger-width: 40px;\n --values-default-height: 38px;\n\n outline: none;\n\n &.disabled {\n .tyk-form-control {\n border: var(--form-control-disabled-border) !important;\n background-color: var(--form-control-disabled-background-color);\n color: var(--form-control-disabled-color);\n cursor: not-allowed;\n }\n\n .tyk-combobox2__current-values .tyk-pill--combobox button {\n cursor: not-allowed;\n }\n\n &:not(.is-expand-mode) .tyk-combobox2__values-container-trigger {\n cursor: not-allowed;\n }\n\n .tyk-combobox2__entry-field {\n background-color: transparent;\n cursor: not-allowed;\n }\n }\n\n .tyk-form-control {\n display: flex;\n flex-direction: row;\n position: relative;\n min-block-size: 40px;\n block-size: auto;\n padding: 0;\n\n &:focus-within {\n outline: none;\n border: var(--form-control-border-focus);\n }\n }\n}\n\n.tyk-combobox2__current-values {\n display: flex;\n flex-grow: 1;\n flex-wrap: wrap;\n padding-block: 2px;\n padding-inline-start: var(--spacing-sm);\n max-inline-size: calc(100% - var(--container-trigger-width));\n\n &.expand-mode {\n max-block-size: 1000px;\n overflow: hidden;\n transition: max-block-size 1s ease;\n }\n\n .tyk-pill--combobox {\n margin-block: 3px;\n background-color: var(--tyk-combobox-pill-background);\n border-radius: var(--spacing-sm);\n color: var(--tyk-combobox-pill-color);\n padding-block: var(--spacing-xs);\n padding-inline: var(--spacing-sm);\n max-inline-size: 100%;\n max-block-size: 26px;\n\n button {\n background: none;\n border: none;\n cursor: pointer;\n inline-size: 23px;\n outline: none;\n\n + span {\n margin-inline-start: 0;\n }\n }\n\n span {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n i {\n margin-inline-end: var(--spacing-xs);\n }\n }\n}\n\n.tyk-combobox2__current-values--collapsed.expand-mode {\n max-block-size: var(--values-default-height);\n transition: max-block-size .2s ease;\n}\n\n.tyk-combobox2__entry-field {\n border: none;\n line-height: 30px;\n\n &:focus,\n &:active {\n border: none;\n outline: none;\n }\n\n &::placeholder {\n color: var(--form-control-placeholder-color);\n font-family: var(--form-control-placeholder-font-family);\n }\n}\n\n.tyk-combobox2__text-value {\n font-family: var(--font-family-medium);\n font-size: var(--sm-font-size);\n padding-block: 9px;\n padding-inline: 5px;\n inline-size: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 1;\n outline: none;\n\n &.overflow-single {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n &.is-placeholder {\n color: var(--form-control-placeholder-color);\n font-family: var(--form-control-placeholder-font-family);\n }\n}\n\n.tyk-combobox2__values-container-trigger {\n position: relative;\n flex-basis: var(--container-trigger-width);\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n outline: none;\n transition: all .2s;\n color: var(--text-color);\n\n .tyk-icon {\n block-size: 14px;\n }\n}\n\n.tyk-combobox2__values-container-trigger--expanded {\n transform: rotate(180deg);\n}\n\n.tyk-form-group--rounded-corners .tyk-combobox2-disabled-overlay {\n border-radius: calc(var(--general-border-radius) - 2px);\n}\n\n.tyk-combobox2__combobox-dropdown {\n display: flex;\n flex-direction: column;\n border: var(--general-border-width) solid var(--form-default-color);\n background-color: white;\n\n &.tyk-form-group--rounded-corners {\n border-radius: var(--general-border-radius);\n z-index: 1081;\n }\n\n .tyk-combobox2__combobox-search {\n background-color: white;\n position: sticky;\n inset-block-start: 0;\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-md);\n\n + .combobox-list {\n border-block-start: 1px solid var(--form-default-color);\n }\n }\n\n .tyk-combobox2__combobox-list {\n max-block-size: 255px;\n\n li {\n display: flex;\n cursor: pointer;\n padding-block: 9px;\n padding-inline: var(--spacing-md);\n transition: all .2s;\n font-family: var(--font-family-medium);\n\n &:hover,\n &.active {\n background-color: var(--tyk-combobox-list-item-hover-color);\n }\n\n &.disabled {\n color: var(--tyk-combobox-list-item-disabled-color);\n background-color: initial;\n }\n\n + li {\n border-block-start: 1px solid var(--form-default-color);\n }\n\n i {\n margin-inline-end: var(--spacing-xs);\n }\n\n .item-name {\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 16px;\n }\n }\n }\n}\n",":root {\n --tyk-checkbox-theme-light-label-color: white;\n --tyk-checkbox-theme-light-label-disabled-color: white;\n --tyk-checkbox-theme-dark-label-color: var(--text-color);\n --tyk-checkbox-theme-dark-label-disabled-color: var(--text-color);\n}\n\n.tyk-checkbox {\n label {\n --label-indent: 20px;\n\n display: flex;\n align-items: flex-start;\n padding-inline-start: var(--label-indent);\n\n input {\n margin-inline-start: calc(-1 * var(--label-indent));\n margin-block-start: 5px;\n }\n }\n}\n\n.tyk-checkbox--theme-light {\n label {\n color: var(--tyk-checkbox-theme-light-label-color);\n }\n\n &.tyk-checkbox--is-disabled {\n label {\n color: var(--tyk-checkbox-theme-light-label-disabled-color);\n }\n }\n}\n\n.tyk-checkbox--is-disabled {\n label, p {\n cursor: not-allowed;\n opacity: 0.5;\n }\n}",".flatpickr-calendar{background:transparent;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;-webkit-animation:none;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;background:#fff;-webkit-box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,0.08);box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,0.08)}.flatpickr-calendar.open,.flatpickr-calendar.inline{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1);animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none !important;box-shadow:none !important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-calendar .hasWeeks .dayContainer,.flatpickr-calendar .hasTime .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:before,.flatpickr-calendar:after{position:absolute;display:block;pointer-events:none;border:solid transparent;content:'';height:0;width:0;left:22px}.flatpickr-calendar.rightMost:before,.flatpickr-calendar.arrowRight:before,.flatpickr-calendar.rightMost:after,.flatpickr-calendar.arrowRight:after{left:auto;right:22px}.flatpickr-calendar.arrowCenter:before,.flatpickr-calendar.arrowCenter:after{left:50%;right:50%}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-months .flatpickr-month{background:transparent;color:rgba(0,0,0,0.9);fill:rgba(0,0,0,0.9);height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:rgba(0,0,0,0.9);fill:rgba(0,0,0,0.9)}.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,.flatpickr-months .flatpickr-next-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-prev-month i,.flatpickr-months .flatpickr-next-month i{position:relative}.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,.flatpickr-months .flatpickr-next-month.flatpickr-prev-month{/*\n /*rtl:begin:ignore*/left:0/*\n /*rtl:end:ignore*/}/*\n /*rtl:begin:ignore*/\n/*\n /*rtl:end:ignore*/\n.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,.flatpickr-months .flatpickr-next-month.flatpickr-next-month{/*\n /*rtl:begin:ignore*/right:0/*\n /*rtl:end:ignore*/}/*\n /*rtl:begin:ignore*/\n/*\n /*rtl:end:ignore*/\n.flatpickr-months .flatpickr-prev-month:hover,.flatpickr-months .flatpickr-next-month:hover{color:#959ea9}.flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-outer-spin-button,.numInputWrapper input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,0.15);-webkit-box-sizing:border-box;box-sizing:border-box}.numInputWrapper span:hover{background:rgba(0,0,0,0.1)}.numInputWrapper span:active{background:rgba(0,0,0,0.2)}.numInputWrapper span:after{display:block;content:\"\";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,0.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,0.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:rgba(0,0,0,0.5)}.numInputWrapper:hover{background:rgba(0,0,0,0.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0 0;line-height:1;height:34px;display:inline-block;text-align:center;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,0.05)}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\\0;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:rgba(0,0,0,0.9)}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:rgba(0,0,0,0.9)}.flatpickr-current-month input.cur-year{background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:initial;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:rgba(0,0,0,0.5);background:transparent;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:transparent;border:none;border-radius:0;box-sizing:border-box;color:inherit;cursor:pointer;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0 0;outline:none;padding:0 0 0 .5ch;position:relative;vertical-align:initial;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:focus,.flatpickr-current-month .flatpickr-monthDropdown-months:active{outline:none}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,0.05)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:none;padding:0}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:transparent;color:rgba(0,0,0,0.54);line-height:1;margin:0;text-align:center;display:block;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0 0}.flatpickr-days{position:relative;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.dayContainer + .dayContainer{-webkit-box-shadow:-1px 0 0 #e6e6e6;box-shadow:-1px 0 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;-webkit-flex-basis:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.today.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day:hover,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover,.flatpickr-day:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.nextMonthDay:focus{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:hover,.flatpickr-day.today:focus{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:#569ff7;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 0 #569ff7}.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange,.flatpickr-day.endRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.notAllowed.nextMonthDay{color:rgba(57,57,57,0.3);background:transparent;border-color:transparent;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:rgba(57,57,57,0.1)}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;-webkit-box-shadow:1px 0 0 #e6e6e6;box-shadow:1px 0 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:rgba(57,57,57,0.3);background:transparent;cursor:default;border:none}.flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-time:after{content:\"\";display:table;clear:both}.flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;width:40%;height:40px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:transparent;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:14px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-time input.flatpickr-hour{font-weight:bold}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-time-separator,.flatpickr-time .flatpickr-am-pm{height:inherit;float:left;line-height:inherit;color:#393939;font-weight:bold;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time input:hover,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time .flatpickr-am-pm:focus{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}","@import 'flatpickr/dist/flatpickr.min.css';\n\n.flatpickr-day.selected,\n.flatpickr-day.startRange,\n.flatpickr-day.endRange,\n.flatpickr-day.selected.inRange,\n.flatpickr-day.startRange.inRange,\n.flatpickr-day.endRange.inRange,\n.flatpickr-day.selected:focus,\n.flatpickr-day.startRange:focus,\n.flatpickr-day.endRange:focus,\n.flatpickr-day.selected:hover,\n.flatpickr-day.startRange:hover,\n.flatpickr-day.endRange:hover,\n.flatpickr-day.selected.prevMonthDay,\n.flatpickr-day.startRange.prevMonthDay,\n.flatpickr-day.endRange.prevMonthDay,\n.flatpickr-day.selected.nextMonthDay,\n.flatpickr-day.startRange.nextMonthDay,\n.flatpickr-day.endRange.nextMonthDay {\n background: var(--color-success-base) !important;\n border-color: var(--color-success-base) !important;\n}",":root {\n --tyk-dropdown-item-background: white;\n --tyk-dropdown-item-background-hover: var(--color-background-light);\n --tyk-dropdown-item-border-color: white;\n --tyk-dropdown-item-text-color: var(--text-color);\n --tyk-dropdown-item-hover-text-color: var(--text-color);\n}\n\n.tyk-dropdown {\n display: inline-block;\n\n + .tyk-button,\n + .tyk-dropdown,\n + .tyk-toggle {\n margin-inline-start: var(--spacing-sm)\n }\n\n label {\n display: block;\n }\n\n &.theme-list .tyk-button {\n background: white;\n border: var(--general-border-width) solid var(--color-default-base);\n border-radius: var(--general-border-radius);\n color: var(--text-color);\n\n &:hover,\n &:active,\n &:active:focus,\n &:focus {\n background: white;\n border-color: var(--color-background-dark);\n color: var(--text-color);\n }\n }\n}\n\n.tyk-dropdown--block {\n inset-inline: var(--spacing-md);\n}\n\n.tyk-dropdown--relative {\n inset-inline: auto;\n}\n\n.tyk-dropdown--custom {\n padding-block: var(--spacing-md);\n padding-inline: 25px;\n}\n\n.tyk-dropdown__trigger {\n position: relative;\n}\n\n.tyk-dropdown-menu {\n background: var(--tyk-dropdown-item-background);\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n filter: drop-shadow(1px 2px 1px rgba(0 0 0 / 10%));\n list-style-type: none;\n margin-inline: 0;\n margin-block: 3px 0;\n overflow: hidden;\n padding: 0;\n z-index: 1081;\n\n &.tyk-dropdown--scrollable {\n overflow: auto;\n }\n\n .tyk-panel {\n margin: 0;\n }\n\n &.opened {\n display: flex;\n flex-direction: column;\n position: absolute;\n }\n\n > li {\n background: var(--tyk-dropdown-item-background);\n border-block-end: 1px solid var(--tyk-dropdown-item-border-color);\n display: flex;\n position: relative;\n z-index: 7;\n\n &:last-child {\n border: none;\n }\n\n i {\n position: absolute;\n inset-inline-start: 7px;\n inset-block-start: 9px;\n }\n }\n}\n\n.tyk-dropdown-menu > li > a {\n cursor: pointer;\n color: var(--tyk-dropdown-item-text-color);\n display: flex;\n font-size: 12px;\n padding-block: 7px;\n padding-inline: 24px;\n text-transform: uppercase;\n text-decoration: none;\n inline-size: 100%;\n\n &:hover {\n color: var(--tyk-dropdown-item-hover-text-color);\n background-color: var(--tyk-dropdown-item-background-hover);\n text-decoration: none;\n }\n\n .badge {\n background: var(--text-color);\n color: white;\n font-size: var(--spacing-sm);\n margin-block-start: -4px;\n margin-inline-start: 6px;\n }\n}\n\n.tyk-dropdown--relative.opened {\n position: relative;\n}\n",".dropdown__menu {\n .tyk-list {\n background: white;\n max-block-size: none;\n\n li {\n padding: 0;\n\n &:hover {\n background: var(--primary-light);\n }\n\n a {\n cursor: pointer;\n display: block;\n padding-block: 10px;\n padding-inline: 20px;\n text-decoration: none;\n }\n }\n }\n}",".tyk-editable-list__submit-btn {\n white-space: nowrap;\n}\n\n.tyk-editable-list__form {\n align-items: center;\n display: flex;\n\n .tyk-form-group {\n margin-block-end: 0;\n }\n\n span.inline {\n margin-block-start: 0;\n }\n\n > span {\n margin-inline-start: var(--spacing-base);\n\n &.inline-with-label {\n align-self: flex-end;\n }\n }\n}\n\n.tyk-editable-list__form--sticked {\n margin-inline-start: 0;\n\n button {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n border-start-end-radius: 3px;\n border-end-end-radius: 3px;\n padding-block: var(--spacing-sm) 11px;\n padding-inline: var(--spacing-base);\n }\n}\n\n.tyk-editable-list__header {\n padding-block: var(--spacing-base);\n font-size: 11px;\n text-transform: uppercase;\n background-color: white;\n border-start-start-radius: var(--general-border-radius);\n border-start-end-radius: var(--general-border-radius);\n border: var(--general-border-width) solid var(--color-default-light);\n border-block-end: 1px solid var(--color-default-light) !important;\n color: var(--text-color) !important;\n font-family: var(--font-family-bold);\n margin-block-start: var(--spacing-sm);\n\n & + .tyk-editable-list-items.table {\n border-block-start: none;\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n\n .tyk-row {\n margin: 0;\n }\n}\n\n.tyk-editable-list-items {\n overflow: hidden;\n list-style: none;\n padding-block: var(--spacing-md) 0;\n padding-inline: 0;\n\n .edit-mode-wrapper.table button {\n margin-block-start: 23px;\n }\n\n .tyk-row {\n margin: 0;\n }\n\n button[disabled] {\n cursor: not-allowed;\n }\n\n &.tyk-editable-list-items--inline {\n align-items: center;\n color: var(--text-color);\n display: flex;\n flex-wrap: wrap;\n }\n\n li {\n border-block-start: 1px solid var(--color-default-light);\n transition: all .2s linear;\n\n &.tyk-editable-list-item--inline {\n background-color: var(--color-default-light);\n border-radius: 25px;\n border: none;\n color: white;\n float: inline-start;\n font-family: var(--font-family-medium);\n margin-block-end: var(--spacing-sm);\n margin-inline-end: var(--spacing-base);\n padding-block: 0;\n padding-inline: var(--spacing-base);\n white-space: nowrap;\n\n .tyk-editable-list-item__text {\n color: var(--text-color);\n padding-block: var(--spacing-xs);\n padding-inline: 0;\n }\n\n .tyk-editable-list-action__button.on-edit {\n margin-block-start: 0;\n }\n }\n\n &:first-child {\n border-block-start: none;\n }\n\n .tyk-editable-list-item__text {\n display: flex;\n padding-block: var(--spacing-sm);\n padding-inline: 0;\n\n > span {\n flex-grow: 1;\n }\n\n > div:first-child {\n flex-grow: 1;\n\n .error-message {\n margin: 0;\n }\n }\n }\n\n .tyk-editable-list-items {\n overflow: hidden;\n padding-block-end: var(--spacing-sm);\n }\n\n .tyk-editable-list {\n border-block-start: var(--spacing-xs) solid var(--background-dark);\n background: var(--background-light);\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-base);\n }\n }\n\n .tyk-editable-list-item__text {\n display: block;\n word-wrap: break-word;\n word-break:break-all;\n }\n\n .tyk-editable-list-action__button {\n border: none;\n background: transparent;\n\n &.on-edit {\n margin-inline-start: var(--spacing-sm);\n }\n }\n\n .tyk-editable-list-item-controls {\n flex-grow: 0;\n text-align: end;\n }\n}\n\n.tyk-editable-list-item__controls {\n text-align: end;\n}\n\n.tyk-editable-list-items.table {\n background-color: white;\n border-radius: var(--general-border-radius);\n border: var(--general-border-width) solid var(--color-default-light);\n padding: 0 !important;\n\n li {\n border-color: var(--color-default-light);\n\n &:hover {\n background: var(--color-background-light);\n }\n }\n\n .tyk-editable-list-item__text {\n background: transparent;\n }\n\n .tyk-editable-list-action__button {\n border-radius: 6px;\n cursor: pointer;\n margin-inline-end: var(--spacing-sm);\n }\n}\n","/* stylelint-disable number-max-precision */\n\n.editable-list__header {\n align-items: center;\n display: flex;\n margin-block-end: 10px;\n\n .tyk-button {\n margin-inline-start: auto;\n }\n}\n\n.editable-list__wrapper.has-error .editable-list__list{\n border: var(--general-border-width) solid var(--color-danger-base);\n}\n\n.editable-list__list {\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n display: flex;\n flex-direction: column-reverse;\n}\n\n.editable-list__item {\n border-block-end: 1px solid var(--color-default-light);\n display: flex;\n flex-wrap: nowrap;\n inline-size: 100%;\n\n &:first-child {\n border-block-end: none;\n }\n}\n\n.editable-list__item-header {\n border-block-end: 1px solid var(--color-default-light);\n color: var(--text-color);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-bold);\n text-transform: uppercase;\n\n .editable-list__item-cell {\n padding: 10px;\n }\n}\n\n.editable-list__item-cell {\n border-inline-start: 1px solid var(--color-default-light);\n overflow: hidden;\n padding-block: 0;\n padding-inline: 10px;\n\n .tyk-form-control--readonly {\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: break-all;\n }\n\n &:first-child {\n border-inline-start: none;\n padding-inline-start: 15px;\n }\n\n &:last-child {\n padding-inline-end: 15px;\n }\n\n .tyk-form-group {\n margin-block: 10px;\n margin-inline: 0;\n inline-size: 100%;\n }\n}\n\n.editable-list__item--size-1 {\n display: flex;\n flex-grow: 2;\n inline-size: 8.3333333333%;\n}\n\n.editable-list__item--size-2 {\n display: flex;\n flex-grow: 3;\n inline-size: 16.6666666667%;\n}\n\n.editable-list__item--size-3 {\n display: flex;\n flex-grow: 4;\n inline-size: 25%;\n}\n\n.editable-list__item--size-4 {\n display: flex;\n flex-grow: 5;\n inline-size: 33.3333333333%;\n}\n\n.editable-list__item--size-5 {\n display: flex;\n flex-grow: 6;\n inline-size: 41.6666666667%;\n}\n\n.editable-list__item--size-6 {\n display: flex;\n flex-grow: 7;\n inline-size: 50%;\n}\n\n.editable-list__item--size-7 {\n display: flex;\n flex-grow: 8;\n inline-size: 58.3333333333%;\n}\n\n.editable-list__item--size-8 {\n display: flex;\n flex-grow: 9;\n inline-size: 66.6666666667%;\n}\n\n.editable-list__item--size-9 {\n display: flex;\n flex-grow: 10;\n inline-size: 75%;\n}\n\n.editable-list__item--size-10 {\n display: flex;\n flex-grow: 11;\n inline-size: 83.3333333333%;\n}\n\n.editable-list__item--size-11 {\n display: flex;\n flex-grow: 12;\n inline-size: 91.6666666667%;\n}\n\n.editable-list__item--size-12 {\n display: flex;\n flex-grow: 13;\n inline-size: 100%;\n}\n\n.editable-list__item--size-fit {\n inline-size: fit-content;\n}\n\n.editable-list__item-action {\n align-items: flex-start;\n display: flex;\n justify-content: center;\n inline-size: 100px;\n\n .tyk-button {\n margin-block-start: 20px;\n }\n}\n\n.editable-list__item-action--read-only {\n color: var(--color-default-light);\n align-items: center;\n\n .tyk-button {\n margin-block-start: 0;\n }\n}",".tyk-file-input__wrapper {\n position: relative;\n\n > input {\n padding-block: 6px;\n padding-inline: var(--spacing-md);\n }\n\n > button {\n background: none;\n border: none;\n cursor: pointer;\n position: absolute;\n inset-inline-end: var(--spacing-base);\n inset-block-start: 9px;\n }\n}\n",".tyk-multiselect {\n align-items: flex-start;\n border-radius: var(--general-border-radius);\n flex-wrap: wrap;\n display: flex;\n margin-block-end: var(--spacing-md);\n inline-size: 100%;\n\n /* FALLBACK FOR ANGULAR COMPONENTS */\n .input-group .input-group-addon + .form-control {\n border-width: 1px !important;\n border-inline-start: none !important;\n border-start-start-radius: 0 !important;\n border-start-end-radius: 0 !important;\n border-end-start-radius: 0 !important;\n border-end-end-radius: 0 !important;\n }\n\n .input-group .input-group-addon {\n background: transparent !important;\n border-width: 1px !important;\n border-inline-end: 0 !important;\n border-start-start-radius: 0 !important;\n border-start-end-radius: 0 !important;\n border-end-start-radius: 0 !important;\n border-end-end-radius: 0 !important;\n }\n\n /* END FALLBACK FOR ANGULAR COMPONENTS */\n\n &.has-error {\n border: var(--general-border-width) solid var(--color-danger-base);\n }\n\n .tyk-form-group {\n margin: 0;\n }\n\n .tyk-multiselect-item__controls {\n display: flex;\n margin-inline-start: auto;\n flex-wrap: nowrap;\n\n .tyk-button {\n color: var(--text-color);\n margin-inline-start: var(--spacing-xs);\n\n &:last-child {\n margin-inline-start: 0;\n }\n }\n }\n}\n\n.tyk-multiselect__header {\n background-color: var(--color-default-base);\n border-start-start-radius: var(--general-border-radius);\n border-start-end-radius: var(--general-border-radius);\n color: white;\n display: flex;\n inline-size: 100%;\n\n > div {\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-base);\n inline-size: 50%;\n }\n}\n\n.tyk-multiselect__panel-wrapper {\n border: var(--form-control-border);\n border-block-start: none;\n border-end-start-radius: var(--general-border-radius);\n border-end-end-radius: var(--general-border-radius);\n display: flex;\n flex: 1;\n block-size: 265px;\n inline-size: 100%;\n}\n\n.tyk-multiselect__panel {\n display: flex;\n flex-direction: column;\n margin-block: 0;\n margin-inline: -1px 0;\n position: relative;\n inline-size: calc(50% + 1px);\n\n &:last-child {\n border-inline-start: var(--form-control-border);\n\n .tyk-form-group {\n margin-inline-start: -1px;\n inline-size: calc(100% + 2px);\n }\n }\n\n .tyk-message {\n margin-block: var(--spacing-md) 0;\n margin-inline: var(--spacing-md);\n }\n}\n\n.tyk-multiselect__list {\n list-style-type: none;\n margin: 0;\n padding: 0;\n\n > li {\n border-block-end: var(--form-control-border);\n display: flex;\n flex-direction: column;\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-base);\n\n > div {\n align-items: start;\n display: flex;\n inline-size: 100%;\n }\n\n .loading {\n justify-content: center;\n }\n\n &:last-child {\n border-block-end: none;\n }\n }\n}\n\n.tyk-multiselect__list--scroll {\n block-size: 100%;\n overflow-y: auto;\n}\n\n.tyk-multiselect-item__name {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n",":root {\n --pagination-border-radius: var(--general-border-radius);\n --pagination-button-padding: var(--spacing-sm) var(--spacing-base);\n}\n\n.tyk-pagination {\n display: flex;\n list-style-type: none;\n margin-block: var(--spacing-sm);\n margin-inline: 0;\n padding: 0;\n\n li {\n align-items: center;\n display: flex;\n }\n\n li:first-child button {\n border-start-start-radius: var(--pagination-border-radius);\n border-end-start-radius: var(--pagination-border-radius);\n }\n\n li:last-child button {\n border-start-end-radius: var(--pagination-border-radius);\n border-end-end-radius: var(--pagination-border-radius);\n }\n\n span {\n margin-block: 0;\n margin-inline: var(--spacing-sm);\n }\n\n button {\n background: white;\n border: none;\n font-size: var(--sm-font-size);\n font-family: var(--font-family-bold);\n cursor: pointer;\n color: var(--color-default-base);\n margin-inline-start: -1px;\n padding: var(--pagination-button-padding);\n\n &:hover {\n background-color: var(--color-success-light);\n }\n }\n\n .active button {\n background-color: var(--color-success-base);\n color: white;\n }\n}\n",":root {\n --radio-description-text-padding: 0 0 0 20px;\n}\n\n.tyk-radio {\n label {\n align-items: center;\n display: flex;\n }\n}\n\n.tyk-radio--is-disabled {\n label, p {\n cursor: not-allowed;\n opacity: 0.5;\n }\n}\n\n.tyk-radio__description-text {\n padding: var(--radio-description-text-padding);\n}",".tyk-select {\n background: transparent url('./images/arrow_down.svg') no-repeat calc(100% - 15px) center;\n background-size: var(--spacing-base) var(--spacing-base);\n}",".tyk-selectable-list {\n margin-block-end: var(--spacing-md);\n inline-size: 100%;\n\n li:not(.tyk-selectable-list__no-items-message) {\n font-family: var(--font-family-medium);\n padding: 0;\n\n .tyk-message {\n margin-block-end: 0;\n }\n\n label {\n font-family: var(--font-family-medium);\n margin: 0;\n }\n\n > label {\n align-items: center;\n cursor: pointer;\n display: flex;\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-md);\n\n input[type=\"checkbox\"] {\n margin-inline-start: auto;\n }\n }\n }\n}\n\n.tyk-selectable-list__item--with-icon {\n & input[type=\"checkbox\"] {\n visibility: hidden;\n }\n}\n","textarea.tyk-form-control {\n block-size: auto;\n}\n",":root {\n --toggle-font-family: var(--font-family-bold);\n --toggle-list-background-color: var(--color-background-light);\n --toggle-list-text-color: white;\n --toggle-list-background-color-on-dark: white;\n --toggle-list-text-color-on-dark: var(--text-color);\n --toggle-top: 4px;\n --toggle-bottom: 4px;\n --toggle-label-font-size: var(--sm-font-size);\n --toggle-label-font-family: var(--font-family-medium);\n --toggle-label-color: var(--label-color);\n --toggle-padding: 0;\n}\n\n.tyk-toggle {\n display: inline-flex;\n flex-wrap: wrap;\n font-family: var(--toggle-font-family);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n white-space: nowrap;\n\n &.block {\n margin-block-end: var(--spacing-md);\n inline-size: 100%;\n\n + .tyk-toggle {\n margin-inline-start: 0;\n }\n }\n\n &.inline-label {\n align-items: center;\n flex-wrap: nowrap;\n }\n\n + .tyk-button,\n + .tyk-dropdown,\n + .tyk-toggle {\n margin-inline-start: var(--spacing-sm)\n }\n}\n\n.tyk-toggle__list--has-error {\n border: var(--error-border);\n}\n\n.tyk-toggle .tyk-toggle__label {\n display: block;\n font-family: var(--toggle-label-font-family);\n font-size: var(--toggle-label-font-size);\n padding: var(--toggle-padding);\n inline-size: 100%;\n color: var(--toggle-label-color);\n}\n\n.tyk-toggle.inline-label .tyk-toggle__label {\n margin-inline-end: var(--spacing-sm);\n inline-size: auto;\n}\n\n.tyk-toggle--disabled-true {\n cursor: not-allowed;\n opacity: 0.7;\n}\n\n.tyk-toggle--column {\n .tyk-toggle__list--separated {\n display: flex;\n flex-direction: column;\n margin-inline-end: var(--spacing-md);\n\n .tyk-toggle__item {\n background-color: var(--toggle-list-background-color);\n margin-inline-end: auto;\n }\n }\n}\n\n.tyk-toggle__list {\n background: var(--toggle-list-background-color);\n border-radius: 25px;\n display: flex;\n list-style-type: none;\n margin: 0;\n padding: 0;\n position: relative;\n}\n\n.tyk-toggle__list--separated {\n background: transparent;\n flex-wrap: wrap;\n}\n\n.tyk-toggle--on-dark .tyk-toggle__list {\n background: var(--toggle-list-background-color-on-dark);\n}\n\n.tyk-toggle--default .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--default .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--default .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--button-default-color);\n color: white;\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--button-default-color);\n color: white;\n }\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle--primary .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--primary .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--primary .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--color-primary-base);\n color: white;\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--color-primary-base);\n color: white;\n }\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle--success .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--success .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--success .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--color-success-dark);\n color: white;\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--color-success-dark);\n color: white;\n }\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle--danger .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--danger .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--danger .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--color-danger-base);\n color: white;\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--color-danger-base);\n color: white;\n }\n}\n\n.tyk-toggle--warning .tyk-toggle__item--active span {\n color: var(--text-color);\n}\n\n.tyk-toggle--warning .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--warning .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--color-warning-base);\n color: var(--text-color);\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--color-warning-base);\n color: var(--text-color);\n }\n}\n\n\n.tyk-toggle--primary-gradient .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--primary-gradient .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--primary-gradient .tyk-toggle__list--separated .tyk-toggle__item--active {\n border-image: linear-gradient(to right, var(--color-primary-base), var(--color-primary-dark), var(--color-primary-base)) 0 round;\n background: transparent linear-gradient(to right, var(--color-primary-base), var(--color-primary-dark), var(--color-primary-base));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: white;\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle--success-gradient .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--success-gradient .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--success-gradient .tyk-toggle__list--separated .tyk-toggle__item--active {\n border-image: linear-gradient(to right, var(--color-success-base), var(--color-success-dark), var(--color-success-base)) 0 round;\n background: transparent linear-gradient(to right, var(--color-success-base), var(--color-success-dark), var(--color-success-base));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: white;\n\n span {\n color: white;\n }\n}\n\n\n.tyk-toggle--danger-gradient .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--danger-gradient .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--danger-gradient .tyk-toggle__list--separated .tyk-toggle__item--active {\n border-image: linear-gradient(to right, var(--color-danger-base), var(--color-danger-dark), var(--color-danger-base)) 0 round;\n background: transparent linear-gradient(to right, var(--color-danger-base), var(--color-danger-dark), var(--color-danger-base));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: white;\n\n span {\n color: white;\n }\n}\n\n\n.tyk-toggle--warning-gradient .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--warning-gradient .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--warning-gradient .tyk-toggle__list--separated .tyk-toggle__item--active {\n border-image: linear-gradient(to right, var(--color-warning-light), var(--color-warning-base), var(--color-warning-light)) 0 round;\n background: transparent linear-gradient(to right, var(--color-warning-light), var(--color-warning-base), var(--color-warning-light));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: var(--text-color);\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle__item {\n color: var(--toggle-list-text-color);\n text-transform: uppercase;\n z-index: 2;\n border: 2px solid transparent;\n\n &:first-child {\n border-start-start-radius: 25px;\n border-end-start-radius: 25px;\n }\n\n &:last-child {\n border-start-end-radius: 25px;\n border-end-end-radius: 25px;\n }\n\n .tyk-toggle__list--separated & {\n border-radius: 25px;\n margin-block: var(--spacing-xs);\n margin-inline-end: var(--spacing-sm);\n\n &:last-child {\n margin-inline-end: 0;\n }\n }\n\n input {\n display: none;\n }\n\n label {\n cursor: pointer;\n font-family: var(--toggle-font-family);\n position: relative;\n margin: 0;\n transition: all .2s ease;\n\n .tyk-toggle__list--single & {\n padding-inline-start: 45px;\n }\n }\n}\n\n.tyk-toggle__list--single .tyk-toggle__item--active {\n label {\n padding-inline-start: 25px;\n padding-inline-end: 45px;\n\n .tyk-toggle__item-notch {\n inset-inline-start: calc(100% - 35px);\n }\n }\n}\n\n.tyk-toggle--on-dark .tyk-toggle__item:not(.tyk-toggle__item--active) {\n color: var(--toggle-list-text-color-on-dark);\n}\n\n.tyk-toggle--on-dark .tyk-toggle__item-notch--single {\n background: var(--color-background-light);\n}\n\n.tyk-toggle--sm label {\n padding-block: calc(var(--padding-y-button-sm) + 2px);\n padding-inline: calc(var(--padding-x-button-sm) + 2px);\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n border-radius: var(--button-border-radius);\n}\n\n.tyk-toggle--sm .tyk-toggle__list--single label {\n padding-inline-start: 35px;\n}\n\n.tyk-toggle--sm .tyk-toggle__list--single .tyk-toggle__item--active label {\n padding-inline-start: 17px;\n padding-inline-end: 35px;\n\n .tyk-toggle__item-notch {\n inset-inline-start: calc(100% - 27px);\n }\n}\n\n.tyk-toggle--md label {\n padding-block: calc(var(--padding-y-button-md) + 2px);\n padding-inline: calc(var(--padding-x-button-md) + 2px);\n font-size: var(--sm-font-size);\n line-height: var(--line-height-button-sm);\n border-radius: var(--button-border-radius);\n}\n\n.tyk-toggle--lg label {\n padding-block: calc(var(--padding-y-button-lg) + 2px);\n padding-inline: calc(var(--padding-x-button-lg) + 2px);\n font-size: var(--sm-font-size);\n line-height: var(--line-height-button-sm);\n border-radius: var(--button-border-radius);\n}\n\n.tyk-toggle--lg .tyk-toggle__list--single label {\n padding-inline-start: 45px;\n}\n\n.tyk-toggle--lg .tyk-toggle__list--single .tyk-toggle__item--active label {\n padding-inline-start: 25px;\n padding-inline-end: 45px;\n\n .tyk-toggle__item-notch {\n inset-inline-start: calc(100% - 43px);\n }\n}\n\n.tyk-toggle__item-notch {\n border-radius: 25px;\n inset-block: 2px;\n position: absolute;\n transition: all .2s ease;\n}\n\n.tyk-toggle__item-notch--single {\n background: white;\n inset-inline-start: 2px;\n inline-size: 32px;\n}\n\n.tyk-toggle--sm .tyk-toggle__item-notch--single {\n inline-size: 24px;\n}\n\n.tyk-toggle--lg .tyk-toggle__item-notch--single {\n inline-size: 40px;\n}\n\n.tyk-toggle__notch {\n border-radius: 25px;\n inset-inline-start: 0;\n position: absolute;\n inset-block-start: var(--toggle-top);\n inset-block-end: var(--toggle-bottom);\n transition: all .2s ease;\n inline-size: 100px;\n z-index: 1;\n}\n\n.tyk-toggle--default .tyk-toggle__notch {\n --toggle-notch-background: var(--button-default-color);\n --toggle-notch-border: transparent;\n --toggle-notch-color: white;\n --toggle-notch-hover-background: var(--button-default-color);\n --toggle-notch-hover-color: white;\n}\n\n.tyk-toggle--primary .tyk-toggle__notch {\n --toggle-notch-background: var(--primary-base);\n --toggle-notch-border: transparent;\n --toggle-notch-color: white;\n --toggle-notch-hover-background: var(--primary-base);\n --toggle-notch-hover-color: white;\n}\n\n.tyk-toggle--success .tyk-toggle__notch {\n --toggle-notch-background: var(--success-base);\n --toggle-notch-border: transparent;\n --toggle-notch-color: white;\n --toggle-notch-hover-background: var(--success-base);\n --toggle-notch-hover-color: white;\n}\n\n.tyk-toggle--danger .tyk-toggle__notch {\n --toggle-notch-background: var(--color-danger-base);\n --toggle-notch-border: transparent;\n --toggle-notch-color: white;\n --toggle-notch-hover-background: var(--color-danger-base);\n --toggle-notch-hover-color: white;\n}\n\n.tyk-toggle--warning .tyk-toggle__notch {\n --toggle-notch-background: var(--color-warning-base);\n --toggle-notch-border: transparent;\n --toggle-notch-color: var(--text-color);\n --toggle-notch-hover-background: var(--color-warning-base);\n --toggle-notch-hover-color: var(--text-color);\n}\n\n.tyk-toggle--default .tyk-toggle__notch,\n.tyk-toggle--primary .tyk-toggle__notch,\n.tyk-toggle--success .tyk-toggle__notch,\n.tyk-toggle--danger .tyk-toggle__notch,\n.tyk-toggle--warning .tyk-toggle__notch {\n background-color: var(--toggle-notch-background);\n color: var(--toggle-notch-color);\n border: var(--general-border-width) solid var(--toggle-notch-border);\n\n &:hover {\n background-color: var(--toggle-notch-hover-background);\n color: var(--toggle-notch-hover-color);\n }\n}\n\n.tyk-toggle--primary-gradient .tyk-toggle__notch {\n --toggle-notch-gradient-left-color: var(--color-primary-base);\n --toggle-notch-gradient-right-color: var(--color-primary-dark);\n --toggle-notch-gradient-color: white;\n}\n\n.tyk-toggle--success-gradient .tyk-toggle__notch {\n --toggle-notch-gradient-left-color: var(--color-success-base);\n --toggle-notch-gradient-right-color: var(--color-success-dark);\n --toggle-notch-gradient-color: white;\n}\n\n.tyk-toggle--danger-gradient .tyk-toggle__notch {\n --toggle-notch-gradient-left-color: var(--color-danger-base);\n --toggle-notch-gradient-right-color: var(--color-danger-dark);\n --toggle-notch-gradient-color: white;\n}\n\n.tyk-toggle--warning-gradient .tyk-toggle__notch {\n --toggle-notch-gradient-left-color: var(--color-warning-light);\n --toggle-notch-gradient-right-color: var(--color-warning-base);\n --toggle-notch-gradient-color: var(--text-color);\n}\n\n.tyk-toggle--primary-gradient .tyk-toggle__notch,\n.tyk-toggle--success-gradient .tyk-toggle__notch,\n.tyk-toggle--danger-gradient .tyk-toggle__notch,\n.tyk-toggle--warning-gradient .tyk-toggle__notch {\n border-image: linear-gradient(to right, var(--toggle-notch-gradient-left-color), var(--toggle-notch-gradient-right-color), var(--toggle-notch-gradient-left-color)) 0 round;\n background: transparent linear-gradient(to right, var(--toggle-notch-gradient-left-color), var(--toggle-notch-gradient-right-color), var(--toggle-notch-gradient-left-color));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: var(--toggle-notch-gradient-color);\n}\n\n.empty-toggle {\n padding: 1px;\n}","* {\n box-sizing: border-box;\n}\n\nbody {\n background-color: var(--color-background-base);\n color: var(--text-color);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-regular);\n}\n\n.tyk-main-wrapper {\n display: flex;\n flex-wrap: nowrap;\n}\n\n.tyk-main-content-wrapper {\n flex: 1;\n}\n\n.well {\n background: transparent;\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n box-shadow: none;\n\n &.has-error {\n border-color: var(--color-danger-base);\n }\n}\n",".title-medium {\n font-family: var(--font-family-medium);\n color: var(--label-color);\n font-size: var(--title-medium-font-size);\n}",".right-align {\n text-align: end !important;\n}\n\n.left-align {\n text-align: start !important;\n}\n\n.center-align {\n text-align: center !important;\n}\n\n.left {\n float: inline-start !important;\n}\n\n.right {\n float: inline-end !important;\n}\n\n.hide {\n display: none !important;\n}\n\n.no-margin {\n margin: 0 !important;\n}\n\n.no-margin-bottom {\n margin-block-end: 0 !important;\n}\n\n.no-margin-top {\n margin-block-start: 0 !important;\n}\n\n.no-margin-right {\n margin-inline-end: 0 !important;\n}\n\n.no-margin-left {\n margin-inline-start: 0 !important;\n}\n\n.disabled-section {\n color: var(--color-default-light);\n}\n\n.top-buffer-large {\n margin-block-start: var(--top-buffer-large) !important;\n}\n\n.top-buffer-small {\n margin-block-start: var(--top-buffer-small) !important;\n}\n\n.top-buffer-medium {\n margin-block-start: var(--top-buffer-medium) !important;\n}\n\n.bottom-buffer-large {\n margin-block-end: var(--bottom-buffer-large) !important;\n}\n\n.bottom-buffer-small {\n margin-block-end: var(--bottom-buffer-small) !important;\n}\n\n.bottom-buffer-medium {\n margin-block-end: var(--bottom-buffer-medium) !important;\n}\n\n.right-buffer-large {\n margin-inline-end: var(--right-buffer-large) !important;\n}\n\n.right-buffer-small {\n margin-inline-end: var(--right-buffer-small) !important;\n}\n\n.right-buffer-medium {\n margin-inline-end: var(--right-buffer-medium) !important;\n}\n\n.left-buffer-large {\n margin-inline-start: var(--left-buffer-large) !important;\n}\n\n.left-buffer-small {\n margin-inline-start: var(--left-buffer-small) !important;\n}\n\n.left-buffer-medium {\n margin-inline-start: var(--left-buffer-medium) !important;\n}\n\n.word-wrap {\n word-wrap: break-word;\n word-break: break-all;\n}\n\n.clear-left {\n clear: inline-start;\n}\n\n.flex-container {\n display: flex;\n}\n\n.vertical-center-align {\n align-items: center;\n}\n\n\n.right-align-controls {\n align-items: center;\n display: flex;\n margin-inline-start: auto;\n}\n\n.inline-label {\n margin-inline-end: 15px;\n}\n\n.nowrap {\n white-space: nowrap;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js index 504bea60..7b70be02 100644 --- a/lib/index.js +++ b/lib/index.js @@ -1,3 +1,3 @@ /*! For license information please see index.js.LICENSE.txt */ -(()=>{var e={239:(e,t,n)=>{e=n.nmd(e),function(){var e=function(){return this}();e||"undefined"==typeof window||(e=window);var t=function(e,n,o){"string"==typeof e?(2==arguments.length&&(o=n),t.modules[e]||(t.payloads[e]=o,t.modules[e]=null)):t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace())};t.modules={},t.payloads={};var n,o,i=function(e,t,n){if("string"==typeof t){var o=a(e,t);if(null!=o)return n&&n(),o}else if("[object Array]"===Object.prototype.toString.call(t)){for(var i=[],s=0,l=t.length;sn.length)&&(t=n.length),t-=e.length;var o=n.indexOf(e,t);return-1!==o&&o===t})),String.prototype.repeat||o(String.prototype,"repeat",(function(e){for(var t="",n=this;e>0;)1&e&&(t+=n),(e>>=1)&&(n+=n);return t})),String.prototype.includes||o(String.prototype,"includes",(function(e,t){return-1!=this.indexOf(e,t)})),Object.assign||(Object.assign=function(e){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),n=1;n>>0,o=0|arguments[1],i=o<0?Math.max(n+o,0):Math.min(o,n),r=arguments[2],s=void 0===r?n:0|r,a=s<0?Math.max(n+s,0):Math.min(s,n);i0;)1&t&&(n+=e),(t>>=1)&&(e+=e);return n};var o=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(o,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){for(var t=[],n=0,o=e.length;n65535?2:1}})),ace.define("ace/lib/useragent",["require","exports","module"],(function(e,t,n){"use strict";t.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},t.getOS=function(){return t.isMac?t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS};var o="object"==typeof navigator?navigator:{},i=(/mac|win|linux/i.exec(o.platform)||["other"])[0].toLowerCase(),r=o.userAgent||"",s=o.appName||"";t.isWin="win"==i,t.isMac="mac"==i,t.isLinux="linux"==i,t.isIE="Microsoft Internet Explorer"==s||s.indexOf("MSAppHost")>=0?parseFloat((r.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((r.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=r.match(/ Gecko\/\d+/),t.isOpera="object"==typeof opera&&"[object Opera]"==Object.prototype.toString.call(window.opera),t.isWebKit=parseFloat(r.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(r.split(" Chrome/")[1])||void 0,t.isSafari=parseFloat(r.split(" Safari/")[1])&&!t.isChrome||void 0,t.isEdge=parseFloat(r.split(" Edge/")[1])||void 0,t.isAIR=r.indexOf("AdobeAIR")>=0,t.isAndroid=r.indexOf("Android")>=0,t.isChromeOS=r.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(r)&&!window.MSStream,t.isIOS&&(t.isMac=!0),t.isMobile=t.isIOS||t.isAndroid})),ace.define("ace/lib/dom",["require","exports","module","ace/lib/useragent"],(function(e,t,n){"use strict";var o,i=e("./useragent");t.buildDom=function e(t,n,o){if("string"==typeof t&&t){var i=document.createTextNode(t);return n&&n.appendChild(i),i}if(!Array.isArray(t))return t&&t.appendChild&&n&&n.appendChild(t),t;if("string"!=typeof t[0]||!t[0]){for(var r=[],s=0;s=1.5,i.isChromeOS&&(t.HI_DPI=!1),"undefined"!=typeof document){var l=document.createElement("div");t.HI_DPI&&void 0!==l.style.transform&&(t.HAS_CSS_TRANSFORMS=!0),i.isEdge||void 0===l.style.animationName||(t.HAS_CSS_ANIMATION=!0),l=null}t.HAS_CSS_TRANSFORMS?t.translate=function(e,t,n){e.style.transform="translate("+Math.round(t)+"px, "+Math.round(n)+"px)"}:t.translate=function(e,t,n){e.style.top=Math.round(n)+"px",e.style.left=Math.round(t)+"px"}})),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("./dom");t.get=function(e,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.onreadystatechange=function(){4===n.readyState&&t(n.responseText)},n.send(null)},t.loadScript=function(e,t){var n=o.getDocumentHead(),i=document.createElement("script");i.src=e,n.appendChild(i),i.onload=i.onreadystatechange=function(e,n){!n&&i.readyState&&"loaded"!=i.readyState&&"complete"!=i.readyState||(i=i.onload=i.onreadystatechange=null,n||t())}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}})),ace.define("ace/lib/oop",["require","exports","module"],(function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}})),ace.define("ace/lib/event_emitter",["require","exports","module"],(function(e,t,n){"use strict";var o={},i=function(){this.propagationStopped=!0},r=function(){this.defaultPrevented=!0};o._emit=o._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],o=this._defaultHandlers[e];if(n.length||o){"object"==typeof t&&t||(t={}),t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=r),n=n.slice();for(var s=0;s1&&(i=n[n.length-2]);var s=l[t+"Path"];return null==s?s=l.basePath:"/"==o&&(t=o=""),s&&"/"!=s.slice(-1)&&(s+="/"),s+t+o+i+this.get("suffix")},t.setModuleUrl=function(e,t){return l.$moduleUrls[e]=t},t.setLoader=function(e){a=e},t.dynamicModules=Object.create(null),t.$loading={},t.$loaded={},t.loadModule=function(n,o){var r,s;Array.isArray(n)&&(s=n[0],n=n[1]);var l=function(r){if(r&&!t.$loading[n])return o&&o(r);if(t.$loading[n]||(t.$loading[n]=[]),t.$loading[n].push(o),!(t.$loading[n].length>1)){var l=function(){!function(t,n){"ace/theme/textmate"===t||"./theme/textmate"===t?n(0,e("./theme/textmate")):a?a(t,n):console.error("loader is not configured")}(n,(function(e,o){o&&(t.$loaded[n]=o),t._emit("load.module",{name:n,module:o});var i=t.$loading[n];t.$loading[n]=null,i.forEach((function(e){e&&e(o)}))}))};if(!t.get("packaged"))return l();i.loadScript(t.moduleUrl(n,s),l),c()}};if(t.dynamicModules[n])t.dynamicModules[n]().then((function(e){e.default?l(e.default):l(e)}));else{try{r=this.$require(n)}catch(e){}l(r||t.$loaded[n])}},t.$require=function(e){if("function"==typeof n.require)return n.require(e)},t.setModuleLoader=function(e,n){t.dynamicModules[e]=n};var c=function(){l.basePath||l.workerPath||l.modePath||l.themePath||Object.keys(l.$moduleUrls).length||(console.error("Unable to infer path to ace from script src,","use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes","or with webpack use ace/webpack-resolver"),c=function(){})};t.version="1.32.0"})),ace.define("ace/loader_build",["require","exports","module","ace/lib/fixoldbrowsers","ace/config"],(function(e,t,o){"use strict";e("./lib/fixoldbrowsers");var i=e("./config");i.setLoader((function(t,n){e([t],(function(e){n(null,e)}))}));var r=function(){return this||"undefined"!=typeof window&&window}();function s(t){if(r&&r.document){i.set("packaged",t||e.packaged||o.packaged||r.define&&n.amdD.packaged);var s={},a="",l=document.currentScript||document._currentScript,c=l&&l.ownerDocument||document;l&&l.src&&(a=l.src.split(/[?#]/)[0].split("/").slice(0,-1).join("/")||"");for(var u,h=c.getElementsByTagName("script"),d=0;d ["+this.end.row+"/"+this.end.column+"]"},e.prototype.contains=function(e,t){return 0==this.compare(e,t)},e.prototype.compareRange=function(e){var t,n=e.end,o=e.start;return 1==(t=this.compare(n.row,n.column))?1==(t=this.compare(o.row,o.column))?2:0==t?1:0:-1==t?-2:-1==(t=this.compare(o.row,o.column))?-1:1==t?42:0},e.prototype.comparePoint=function(e){return this.compare(e.row,e.column)},e.prototype.containsRange=function(e){return 0==this.comparePoint(e.start)&&0==this.comparePoint(e.end)},e.prototype.intersects=function(e){var t=this.compareRange(e);return-1==t||0==t||1==t},e.prototype.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},e.prototype.isStart=function(e,t){return this.start.row==e&&this.start.column==t},e.prototype.setStart=function(e,t){"object"==typeof e?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},e.prototype.setEnd=function(e,t){"object"==typeof e?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},e.prototype.inside=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)&&!this.isStart(e,t)},e.prototype.insideStart=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)},e.prototype.insideEnd=function(e,t){return 0==this.compare(e,t)&&!this.isStart(e,t)},e.prototype.compare=function(e,t){return this.isMultiLine()||e!==this.start.row?ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0:tthis.end.column?1:0},e.prototype.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},e.prototype.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},e.prototype.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},e.prototype.clipRows=function(t,n){if(this.end.row>n)var o={row:n+1,column:0};else this.end.rown)var i={row:n+1,column:0};else this.start.row1?++h>4&&(h=1):h=1,r.isIE){var s=Math.abs(e.clientX-a)>5||Math.abs(e.clientY-l)>5;c&&!s||(h=1),c&&clearTimeout(c),c=setTimeout((function(){c=null}),n[h-1]||600),1==h&&(a=e.clientX,l=e.clientY)}if(e._clicks=h,o[i]("mousedown",e),h>4)h=0;else if(h>1)return o[i](d[h],e)}Array.isArray(e)||(e=[e]),e.forEach((function(e){u(e,"mousedown",p,s)}))};var d=function(e){return(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)};function p(e,t,n){var o=d(t);if(!r.isMac&&s){if(t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(o|=8),s.altGr){if(!(3&~o))return;s.altGr=0}if(18===n||17===n){var l="location"in t?t.location:t.keyLocation;17===n&&1===l?1==s[n]&&(a=t.timeStamp):18===n&&3===o&&2===l&&t.timeStamp-a<50&&(s.altGr=!0)}}if(n in i.MODIFIER_KEYS&&(n=-1),o||13!==n||3!==(l="location"in t?t.location:t.keyLocation)||(e(t,o,-n),!t.defaultPrevented)){if(r.isChromeOS&&8&o){if(e(t,o,n),t.defaultPrevented)return;o&=-9}return!!(o||n in i.FUNCTION_KEYS||n in i.PRINTABLE_KEYS)&&e(t,o,n)}}function g(){s=Object.create(null)}if(t.getModifierString=function(e){return i.KEY_MODS[d(e)]},t.addCommandKeyListener=function(e,n,o){if(r.isOldGecko||r.isOpera&&!("KeyboardEvent"in window)){var i=null;u(e,"keydown",(function(e){i=e.keyCode}),o),u(e,"keypress",(function(e){return p(n,e,i)}),o)}else{var a=null;u(e,"keydown",(function(e){s[e.keyCode]=(s[e.keyCode]||0)+1;var t=p(n,e,e.keyCode);return a=e.defaultPrevented,t}),o),u(e,"keypress",(function(e){a&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),a=null)}),o),u(e,"keyup",(function(e){s[e.keyCode]=null}),o),s||(g(),u(window,"focus",g))}},"object"==typeof window&&window.postMessage&&!r.isOldIE){var m=1;t.nextTick=function(e,n){n=n||window;var o="zero-timeout-message-"+m++,i=function(r){r.data==o&&(t.stopPropagation(r),h(n,"message",i),e())};u(n,"message",i),n.postMessage(o,"*")}}t.$idleBlocked=!1,t.onIdle=function(e,n){return setTimeout((function n(){t.$idleBlocked?setTimeout(n,100):e()}),n)},t.$idleBlockId=null,t.blockIdle=function(e){t.$idleBlockId&&clearTimeout(t.$idleBlockId),t.$idleBlocked=!0,t.$idleBlockId=setTimeout((function(){t.$idleBlocked=!1}),e||100)},t.nextFrame="object"==typeof window&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}})),ace.define("ace/clipboard",["require","exports","module"],(function(e,t,n){"use strict";var o;n.exports={lineMode:!1,pasteCancelled:function(){return!!(o&&o>Date.now()-50)||(o=!1)},cancel:function(){o=Date.now()}}})),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/config","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/clipboard","ace/lib/keys"],(function(e,t,n){"use strict";var o=e("../lib/event"),i=e("../config").nls,r=e("../lib/useragent"),s=e("../lib/dom"),a=e("../lib/lang"),l=e("../clipboard"),c=r.isChrome<18,u=r.isIE,h=r.isChrome>63,d=400,p=e("../lib/keys"),g=p.KEY_MODS,m=r.isIOS,f=m?/\s/:/\n/,y=r.isMobile;t.TextInput=function(e,t){var n=s.createElement("textarea");n.className="ace_text-input",n.setAttribute("wrap","off"),n.setAttribute("autocorrect","off"),n.setAttribute("autocapitalize","off"),n.setAttribute("spellcheck",!1),n.style.opacity="0",e.insertBefore(n,e.firstChild);var v=!1,b=!1,w=!1,x=!1,k="";y||(n.style.fontSize="1px");var C=!1,$=!1,S="",E=0,O=0,T=0,A=Number.MAX_SAFE_INTEGER,_=Number.MIN_SAFE_INTEGER,L=0;try{var M=document.activeElement===n}catch(e){}this.setNumberOfExtraLines=function(e){A=Number.MAX_SAFE_INTEGER,_=Number.MIN_SAFE_INTEGER,L=e<0?0:e},this.setAriaOptions=function(e){if(e.activeDescendant?(n.setAttribute("aria-haspopup","true"),n.setAttribute("aria-autocomplete",e.inline?"both":"list"),n.setAttribute("aria-activedescendant",e.activeDescendant)):(n.setAttribute("aria-haspopup","false"),n.setAttribute("aria-autocomplete","both"),n.removeAttribute("aria-activedescendant")),e.role&&n.setAttribute("role",e.role),e.setLabel&&(n.setAttribute("aria-roledescription",i("editor")),t.session)){var o=t.session.selection.cursor.row;n.setAttribute("aria-label",i("Cursor at row $0",[o+1]))}},this.setAriaOptions({role:"textbox"}),o.addListener(n,"blur",(function(e){$||(t.onBlur(e),M=!1)}),t),o.addListener(n,"focus",(function(e){if(!$){if(M=!0,r.isEdge)try{if(!document.hasFocus())return}catch(e){}t.onFocus(e),r.isEdge?setTimeout(N):N()}}),t),this.$focusScroll=!1,this.focus=function(){if(this.setAriaOptions({setLabel:t.renderer.enableKeyboardAccessibility}),k||h||"browser"==this.$focusScroll)return n.focus({preventScroll:!0});var e=n.style.top;n.style.position="fixed",n.style.top="0px";try{var o=0!=n.getBoundingClientRect().top}catch(e){return}var i=[];if(o)for(var r=n.parentElement;r&&1==r.nodeType;)i.push(r),r.setAttribute("ace_nocontext",!0),r=!r.parentElement&&r.getRootNode?r.getRootNode().host:r.parentElement;n.focus({preventScroll:!0}),o&&i.forEach((function(e){e.removeAttribute("ace_nocontext")})),setTimeout((function(){n.style.position="","0px"==n.style.top&&(n.style.top=e)}),0)},this.blur=function(){n.blur()},this.isFocused=function(){return M},t.on("beforeEndOperation",(function(){var e=t.curOp,o=e&&e.command&&e.command.name;if("insertstring"!=o){var i=o&&(e.docChanged||e.selectionChanged);w&&i&&(S=n.value="",U()),N()}}));var R=function(e,n){for(var o=n,i=1;i<=e-A&&i<2*L+1;i++)o+=t.session.getLine(e-i).length+1;return o},N=m?function(e){if(M&&(!v||e)&&!x){e||(e="");var o="\n ab"+e+"cde fg\n";o!=n.value&&(n.value=S=o);var i=4+(e.length||(t.selection.isEmpty()?0:1));4==E&&O==i||n.setSelectionRange(4,i),E=4,O=i}}:function(){if(!w&&!x&&(M||P)){w=!0;var e=0,o=0,i="";if(t.session){var r=t.selection,s=r.getRange(),a=r.cursor.row;a===_+1?_=(A=_+1)+2*L:a===A-1?A=(_=A-1)-2*L:(a_+1)&&(A=a>L?a-L:0,_=a>L?a+L:2*L);for(var l=[],c=A;c<=_;c++)l.push(t.session.getLine(c));if(i=l.join("\n"),e=R(s.start.row,s.start.column),o=R(s.end.row,s.end.column),s.start.row_){var h=t.session.getLine(_+1);o=s.end.row>_+1?h.length:s.end.column,o+=i.length+1,i=i+"\n"+h}else y&&a>0&&(i="\n"+i,o+=1,e+=1);i.length>d&&(e0&&S[d]==e[d];)d++,a--;for(c=c.slice(d),d=1;l>0&&S.length-d>E-1&&S[S.length-d]==e[e.length-d];)d++,l--;u-=d-1,h-=d-1;var p=c.length-d+1;if(p<0&&(a=-p,p=0),c=c.slice(0,p),!(o||c||u||a||l||h))return"";x=!0;var g=!1;return r.isAndroid&&". "==c&&(c=" ",g=!0),c&&!a&&!l&&!u&&!h||C?t.onTextInput(c):t.onTextInput(c,{extendLeft:a,extendRight:l,restoreStart:u,restoreEnd:h}),x=!1,S=e,E=i,O=s,T=h,g?"\n":c},F=function(e){if(w)return V();if(e&&e.inputType){if("historyUndo"==e.inputType)return t.execCommand("undo");if("historyRedo"==e.inputType)return t.execCommand("redo")}var o=n.value,i=D(o,!0);(o.length>500||f.test(i)||y&&E<1&&E==O)&&N()},B=function(e,t,n){var o=e.clipboardData||window.clipboardData;if(o&&!c){var i=u||n?"Text":"text/plain";try{return t?!1!==o.setData(i,t):o.getData(i)}catch(e){if(!n)return B(e,t,!0)}}},W=function(e,i){var r=t.getCopyText();if(!r)return o.preventDefault(e);B(e,r)?(m&&(N(r),v=r,setTimeout((function(){v=!1}),10)),i?t.onCut():t.onCopy(),o.preventDefault(e)):(v=!0,n.value=r,n.select(),setTimeout((function(){v=!1,N(),i?t.onCut():t.onCopy()})))},H=function(e){W(e,!0)},j=function(e){W(e,!1)},z=function(e){var i=B(e);l.pasteCancelled()||("string"==typeof i?(i&&t.onPaste(i,e),r.isIE&&setTimeout(N),o.preventDefault(e)):(n.value="",b=!0))};o.addCommandKeyListener(n,t.onCommandKey.bind(t),t),o.addListener(n,"select",(function(e){w||(v?v=!1:function(e){return 0===e.selectionStart&&e.selectionEnd>=S.length&&e.value===S&&S&&e.selectionEnd!==O}(n)?(t.selectAll(),N()):y&&n.selectionStart!=E&&N())}),t),o.addListener(n,"input",F,t),o.addListener(n,"cut",H,t),o.addListener(n,"copy",j,t),o.addListener(n,"paste",z,t),"oncut"in n&&"oncopy"in n&&"onpaste"in n||o.addListener(e,"keydown",(function(e){if((!r.isMac||e.metaKey)&&e.ctrlKey)switch(e.keyCode){case 67:j(e);break;case 86:z(e);break;case 88:H(e)}}),t);var V=function(){if(w&&t.onCompositionUpdate&&!t.$readOnly){if(C)return G();if(w.useTextareaForIME)t.onCompositionUpdate(n.value);else{var e=n.value;D(e),w.markerRange&&(w.context&&(w.markerRange.start.column=w.selectionStart=w.context.compositionStartOffset),w.markerRange.end.column=w.markerRange.start.column+O-w.selectionStart+T)}}},U=function(e){t.onCompositionEnd&&!t.$readOnly&&(w=!1,t.onCompositionEnd(),t.off("mousedown",G),e&&F())};function G(){$=!0,n.blur(),n.focus(),$=!1}var K,q=a.delayedCall(V,50).schedule.bind(null,null);function Y(){clearTimeout(K),K=setTimeout((function(){k&&(n.style.cssText=k,k=""),t.renderer.$isMousePressed=!1,t.renderer.$keepTextAreaAtCursor&&t.renderer.$moveTextAreaToCursor()}),0)}o.addListener(n,"compositionstart",(function(e){if(!w&&t.onCompositionStart&&!t.$readOnly&&(w={},!C)){e.data&&(w.useTextareaForIME=!1),setTimeout(V,0),t._signal("compositionStart"),t.on("mousedown",G);var o=t.getSelectionRange();o.end.row=o.start.row,o.end.column=o.start.column,w.markerRange=o,w.selectionStart=E,t.onCompositionStart(w),w.useTextareaForIME?(S=n.value="",E=0,O=0):(n.msGetInputContext&&(w.context=n.msGetInputContext()),n.getInputContext&&(w.context=n.getInputContext()))}}),t),o.addListener(n,"compositionupdate",V,t),o.addListener(n,"keyup",(function(e){27==e.keyCode&&n.value.lengthO&&"\n"==S[r]?s=p.end:oO&&S.slice(0,r).split("\n").length>2?s=p.down:r>O&&" "==S[r-1]?(s=p.right,a=g.option):(r>O||r==O&&O!=E&&o==r)&&(s=p.right),o!==r&&(a|=g.shift),s){if(!t.onCommandKey({},a,s)&&t.commands){s=p.keyCodeToString(s);var l=t.commands.findKeyCommand(a,s);l&&t.execCommand(l)}E=o,O=r,N("")}}};document.addEventListener("selectionchange",r),t.on("destroy",(function(){document.removeEventListener("selectionchange",r)}))}(0,t,n),this.destroy=function(){n.parentElement&&n.parentElement.removeChild(n)}},t.$setUserAgentForTests=function(e,t){y=e,m=t}})),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("../lib/useragent"),i=function(){function e(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e)),["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"].forEach((function(t){e[t]=this[t]}),this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}return e.prototype.onMouseDown=function(e){var t=e.inSelection(),n=e.getDocumentPosition();this.mousedownEvent=e;var i=this.editor,r=e.getButton();return 0!==r?((i.getSelectionRange().isEmpty()||1==r)&&i.selection.moveToPosition(n),void(2==r&&(i.textInput.onContextMenu(e.domEvent),o.isMozilla||e.preventDefault()))):(this.mousedownEvent.time=Date.now(),!t||i.isFocused()||(i.focus(),!this.$focusTimeout||this.$clickSelection||i.inMultiSelectMode)?(this.captureMouse(e),this.startSelect(n,e.domEvent._clicks>1),e.preventDefault()):(this.setState("focusWait"),void this.captureMouse(e)))},e.prototype.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var n=this.editor;this.mousedownEvent&&(this.mousedownEvent.getShiftKey()?n.selection.selectToPosition(e):t||n.selection.moveToPosition(e),t||this.select(),n.setStyle("ace_selecting"),this.setState("select"))},e.prototype.select=function(){var e,t=this.editor,n=t.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var o=this.$clickSelection.comparePoint(n);if(-1==o)e=this.$clickSelection.end;else if(1==o)e=this.$clickSelection.start;else{var i=r(this.$clickSelection,n);n=i.cursor,e=i.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(n),t.renderer.scrollCursorIntoView()},e.prototype.extendSelectionBy=function(e){var t,n=this.editor,o=n.renderer.screenToTextCoordinates(this.x,this.y),i=n.selection[e](o.row,o.column);if(this.$clickSelection){var s=this.$clickSelection.comparePoint(i.start),a=this.$clickSelection.comparePoint(i.end);if(-1==s&&a<=0)t=this.$clickSelection.end,i.end.row==o.row&&i.end.column==o.column||(o=i.start);else if(1==a&&s>=0)t=this.$clickSelection.start,i.start.row==o.row&&i.start.column==o.column||(o=i.end);else if(-1==s&&1==a)o=i.end,t=i.start;else{var l=r(this.$clickSelection,o);o=l.cursor,t=l.anchor}n.selection.setSelectionAnchor(t.row,t.column)}n.selection.selectToPosition(o),n.renderer.scrollCursorIntoView()},e.prototype.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting")},e.prototype.focusWait=function(){var e,t,n,o,i=(e=this.mousedownEvent.x,t=this.mousedownEvent.y,n=this.x,o=this.y,Math.sqrt(Math.pow(n-e,2)+Math.pow(o-t,2))),r=Date.now();(i>0||r-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},e.prototype.onDoubleClick=function(e){var t=e.getDocumentPosition(),n=this.editor,o=n.session.getBracketRange(t);o?(o.isEmpty()&&(o.start.column--,o.end.column++),this.setState("select")):(o=n.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=o,this.select()},e.prototype.onTripleClick=function(e){var t=e.getDocumentPosition(),n=this.editor;this.setState("selectByLines");var o=n.getSelectionRange();o.isMultiLine()&&o.contains(t.row,t.column)?(this.$clickSelection=n.selection.getLineRange(o.start.row),this.$clickSelection.end=n.selection.getLineRange(o.end.row).end):this.$clickSelection=n.selection.getLineRange(t.row),this.select()},e.prototype.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},e.prototype.onMouseWheel=function(e){if(!e.getAccelKey()){e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var n=this.$lastScroll,o=e.domEvent.timeStamp,i=o-n.t,r=i?e.wheelX/i:n.vx,s=i?e.wheelY/i:n.vy;i<550&&(r=(r+n.vx)/2,s=(s+n.vy)/2);var a=Math.abs(r/s),l=!1;return a>=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(l=!0),a<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(l=!0),l?n.allowed=o:o-n.allowed<550&&(Math.abs(r)<=1.5*Math.abs(n.vx)&&Math.abs(s)<=1.5*Math.abs(n.vy)?(l=!0,n.allowed=o):n.allowed=0),n.t=o,n.vx=r,n.vy=s,l?(t.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()):void 0}},e}();function r(e,t){if(e.start.row==e.end.row)var n=2*t.column-e.start.column-e.end.column;else if(e.start.row!=e.end.row-1||e.start.column||e.end.column)n=2*t.row-e.start.row-e.end.row;else n=t.column-4;return n<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}i.prototype.selectEnd=i.prototype.selectByLinesEnd,i.prototype.selectAllEnd=i.prototype.selectByLinesEnd,i.prototype.selectByWordsEnd=i.prototype.selectByLinesEnd,t.DefaultHandlers=i})),ace.define("ace/tooltip",["require","exports","module","ace/lib/dom","ace/lib/event","ace/range"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],o=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&o>=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},s=e("./lib/dom"),a=e("./lib/event"),l=e("./range").Range,c="ace_tooltip",u=function(){function e(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}return e.prototype.$init=function(){return this.$element=s.createElement("div"),this.$element.className=c,this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},e.prototype.getElement=function(){return this.$element||this.$init()},e.prototype.setText=function(e){this.getElement().textContent=e},e.prototype.setHtml=function(e){this.getElement().innerHTML=e},e.prototype.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},e.prototype.setClassName=function(e){s.addCssClass(this.getElement(),e)},e.prototype.setTheme=function(e){this.$element.className=c+" "+(e.isDark?"ace_dark ":"")+(e.cssClass||"")},e.prototype.show=function(e,t,n){null!=e&&this.setText(e),null!=t&&null!=n&&this.setPosition(t,n),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},e.prototype.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.getElement().className=c,this.isOpen=!1)},e.prototype.getHeight=function(){return this.getElement().offsetHeight},e.prototype.getWidth=function(){return this.getElement().offsetWidth},e.prototype.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)},e}(),h=new(function(){function e(){this.popups=[]}return e.prototype.addPopup=function(e){this.popups.push(e),this.updatePopups()},e.prototype.removePopup=function(e){var t=this.popups.indexOf(e);-1!==t&&(this.popups.splice(t,1),this.updatePopups())},e.prototype.updatePopups=function(){var e,t,n,o;this.popups.sort((function(e,t){return t.priority-e.priority}));var i=[];try{for(var s=r(this.popups),a=s.next();!a.done;a=s.next()){var l=a.value,c=!0;try{for(var u=(n=void 0,r(i)),h=u.next();!h.done;h=u.next()){var d=h.value;if(this.doPopupsOverlap(d,l)){c=!1;break}}}catch(e){n={error:e}}finally{try{h&&!h.done&&(o=u.return)&&o.call(u)}finally{if(n)throw n.error}}c?i.push(l):l.hide()}}catch(t){e={error:t}}finally{try{a&&!a.done&&(t=s.return)&&t.call(s)}finally{if(e)throw e.error}}},e.prototype.doPopupsOverlap=function(e,t){var n=e.getElement().getBoundingClientRect(),o=t.getElement().getBoundingClientRect();return n.lefto.left&&n.topo.top},e}());t.popupManager=h,t.Tooltip=u;var d=function(e){function t(t){void 0===t&&(t=document.body);var n=e.call(this,t)||this;n.timeout=void 0,n.lastT=0,n.idleTime=350,n.lastEvent=void 0,n.onMouseOut=n.onMouseOut.bind(n),n.onMouseMove=n.onMouseMove.bind(n),n.waitForHover=n.waitForHover.bind(n),n.hide=n.hide.bind(n);var o=n.getElement();return o.style.whiteSpace="pre-wrap",o.style.pointerEvents="auto",o.addEventListener("mouseout",n.onMouseOut),o.tabIndex=-1,o.addEventListener("blur",function(){o.contains(document.activeElement)||this.hide()}.bind(n)),o.addEventListener("wheel",a.stopPropagation),n}return i(t,e),t.prototype.addToEditor=function(e){e.on("mousemove",this.onMouseMove),e.on("mousedown",this.hide),e.renderer.getMouseEventTarget().addEventListener("mouseout",this.onMouseOut,!0)},t.prototype.removeFromEditor=function(e){e.off("mousemove",this.onMouseMove),e.off("mousedown",this.hide),e.renderer.getMouseEventTarget().removeEventListener("mouseout",this.onMouseOut,!0),this.timeout&&(clearTimeout(this.timeout),this.timeout=null)},t.prototype.onMouseMove=function(e,t){this.lastEvent=e,this.lastT=Date.now();var n=t.$mouseHandler.isMousePressed;if(this.isOpen){var o=this.lastEvent&&this.lastEvent.getDocumentPosition();this.range&&this.range.contains(o.row,o.column)&&!n&&!this.isOutsideOfText(this.lastEvent)||this.hide()}this.timeout||n||(this.lastEvent=e,this.timeout=setTimeout(this.waitForHover,this.idleTime))},t.prototype.waitForHover=function(){this.timeout&&clearTimeout(this.timeout);var e=Date.now()-this.lastT;this.idleTime-e>10?this.timeout=setTimeout(this.waitForHover,this.idleTime-e):(this.timeout=null,this.lastEvent&&!this.isOutsideOfText(this.lastEvent)&&this.$gatherData(this.lastEvent,this.lastEvent.editor))},t.prototype.isOutsideOfText=function(e){var t=e.editor,n=e.getDocumentPosition(),o=t.session.getLine(n.row);if(n.column==o.length){var i=t.renderer.pixelToScreenCoordinates(e.clientX,e.clientY),r=t.session.documentToScreenPosition(n.row,n.column);if(r.column!=i.column||r.row!=i.row)return!0}return!1},t.prototype.setDataProvider=function(e){this.$gatherData=e},t.prototype.showForRange=function(e,t,n,o){if(!(o&&o!=this.lastEvent||this.isOpen&&document.activeElement==this.getElement())){var i=e.renderer;this.isOpen||(h.addPopup(this),this.$registerCloseEvents(),this.setTheme(i.theme)),this.isOpen=!0,this.addMarker(t,e.session),this.range=l.fromPoints(t.start,t.end);var r=i.textToScreenCoordinates(t.start.row,t.start.column),s=i.scroller.getBoundingClientRect();r.pageX=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},s=e("../lib/dom"),a=e("../lib/event"),l=e("../tooltip").Tooltip,c=e("../config").nls;t.GutterHandler=function(e){var t,n,o=e.editor,i=o.renderer.$gutterLayer,r=new u(o);function l(){t&&(t=clearTimeout(t)),r.isOpen&&(r.hideTooltip(),o.off("mousewheel",l))}function c(e){r.setPosition(e.x,e.y)}e.editor.setDefaultHandler("guttermousedown",(function(t){if(o.isFocused()&&0==t.getButton()&&"foldWidgets"!=i.getRegion(t)){var n=t.getDocumentPosition().row,r=o.session.selection;if(t.getShiftKey())r.selectTo(n,0);else{if(2==t.domEvent.detail)return o.selectAll(),t.preventDefault();e.$clickSelection=o.selection.getLineRange(n)}return e.setState("selectByLines"),e.captureMouse(t),t.preventDefault()}})),e.editor.setDefaultHandler("guttermousemove",(function(a){var u=a.domEvent.target||a.domEvent.srcElement;if(s.hasCssClass(u,"ace_fold-widget"))return l();r.isOpen&&e.$tooltipFollowsMouse&&c(a),n=a,t||(t=setTimeout((function(){t=null,n&&!e.isMousePressed?function(){var t=n.getDocumentPosition().row;if(t==o.session.getLength()){var s=o.renderer.pixelToScreenCoordinates(0,n.y).row,a=n.$pos;if(s>o.session.documentToScreenRow(a.row,a.column))return l()}if(r.showTooltip(t),r.isOpen)if(o.on("mousewheel",l),e.$tooltipFollowsMouse)c(n);else{var u=n.getGutterRow(),h=i.$lines.get(u);if(h){var d=h.element.querySelector(".ace_gutter_annotation").getBoundingClientRect(),p=r.getElement().style;p.left=d.right+"px",p.top=d.bottom+"px"}else c(n)}}():l()}),50))})),a.addListener(o.renderer.$gutter,"mouseout",(function(e){n=null,r.isOpen&&!t&&(t=setTimeout((function(){t=null,l()}),50))}),o),o.on("changeSession",l),o.on("input",l)};var u=function(e){function t(t){var n=e.call(this,t.container)||this;return n.editor=t,n}return i(t,e),t.prototype.setPosition=function(e,t){var n=window.innerWidth||document.documentElement.clientWidth,o=window.innerHeight||document.documentElement.clientHeight,i=this.getWidth(),r=this.getHeight();(e+=15)+i>n&&(e-=e+i-n),(t+=15)+r>o&&(t-=20+r),l.prototype.setPosition.call(this,e,t)},Object.defineProperty(t,"annotationLabels",{get:function(){return{error:{singular:c("error"),plural:c("errors")},warning:{singular:c("warning"),plural:c("warnings")},info:{singular:c("information message"),plural:c("information messages")}}},enumerable:!1,configurable:!0}),t.prototype.showTooltip=function(e){var n,o=this.editor.renderer.$gutterLayer,i=o.$annotations[e];n=i?{text:Array.from(i.text),type:Array.from(i.type)}:{text:[],type:[]};var r=o.session.getFoldLine(e);if(r&&o.$showFoldedAnnotations){for(var s,a={error:[],warning:[],info:[]},l=e+1;l<=r.end.row;l++)if(o.$annotations[l])for(var c=0;c ").concat(n.text[l]);d[n.type[l].replace("_fold","")].push(g)}var m=[].concat(d.error,d.warning,d.info).join("
    ");this.setHtml(m),this.$element.setAttribute("aria-live","polite"),this.isOpen||(this.setTheme(this.editor.renderer.theme),this.setClassName("ace_gutter-tooltip")),this.show(),this.editor._signal("showGutterTooltip",this)},t.prototype.hideTooltip=function(){this.$element.removeAttribute("aria-live"),this.hide(),this.editor._signal("hideGutterTooltip",this)},t.annotationsToSummaryString=function(e){var n,o,i=[];try{for(var s=r(["error","warning","info"]),a=s.next();!a.done;a=s.next()){var l=a.value;if(e[l].length){var c=1===e[l].length?t.annotationLabels[l].singular:t.annotationLabels[l].plural;i.push("".concat(e[l].length," ").concat(c))}}}catch(e){n={error:e}}finally{try{a&&!a.done&&(o=s.return)&&o.call(s)}finally{if(n)throw n.error}}return i.join(", ")},t}(l);t.GutterTooltip=u})),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("../lib/event"),i=e("../lib/useragent"),r=function(){function e(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1}return e.prototype.stopPropagation=function(){o.stopPropagation(this.domEvent),this.propagationStopped=!0},e.prototype.preventDefault=function(){o.preventDefault(this.domEvent),this.defaultPrevented=!0},e.prototype.stop=function(){this.stopPropagation(),this.preventDefault()},e.prototype.getDocumentPosition=function(){return this.$pos||(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY)),this.$pos},e.prototype.getGutterRow=function(){var e=this.getDocumentPosition().row;return this.editor.session.documentToScreenRow(e,0)-this.editor.session.documentToScreenRow(this.editor.renderer.$gutterLayer.$lines.get(0).row,0)},e.prototype.inSelection=function(){if(null!==this.$inSelection)return this.$inSelection;var e=this.editor.getSelectionRange();if(e.isEmpty())this.$inSelection=!1;else{var t=this.getDocumentPosition();this.$inSelection=e.contains(t.row,t.column)}return this.$inSelection},e.prototype.getButton=function(){return o.getButton(this.domEvent)},e.prototype.getShiftKey=function(){return this.domEvent.shiftKey},e.prototype.getAccelKey=function(){return i.isMac?this.domEvent.metaKey:this.domEvent.ctrlKey},e}();t.MouseEvent=r})),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=e("../lib/event"),r=e("../lib/useragent");function s(e){var t=e.editor,n=o.createElement("div");n.style.cssText="top:-100px;position:absolute;z-index:2147483647;opacity:0.5",n.textContent=" ",["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"].forEach((function(t){e[t]=this[t]}),this),t.on("mousedown",this.onMouseDown.bind(e));var s,l,c,u,h,d,p,g,m,f,y,v=t.container,b=0;function w(){var e=d;(function(e,n){var o=Date.now(),i=!n||e.row!=n.row,r=!n||e.column!=n.column;!f||i||r?(t.moveCursorToPosition(e),f=o,y={x:l,y:c}):a(y.x,y.y,l,c)>5?f=null:o-f>=200&&(t.renderer.scrollCursorIntoView(),f=null)})(d=t.renderer.screenToTextCoordinates(l,c),e),function(e,n){var o=Date.now(),i=t.renderer.layerConfig.lineHeight,r=t.renderer.layerConfig.characterWidth,s=t.renderer.scroller.getBoundingClientRect(),a={x:{left:l-s.left,right:s.right-l},y:{top:c-s.top,bottom:s.bottom-c}},u=Math.min(a.x.left,a.x.right),h=Math.min(a.y.top,a.y.bottom),d={row:e.row,column:e.column};u/r<=2&&(d.column+=a.x.left=200&&t.renderer.scrollCursorIntoView(d):m=o:m=null}(d,e)}function x(){h=t.selection.toOrientedRange(),s=t.session.addMarker(h,"ace_selection",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(u),w(),u=setInterval(w,20),b=0,i.addListener(document,"mousemove",$)}function k(){clearInterval(u),t.session.removeMarker(s),s=null,t.selection.fromOrientedRange(h),t.isFocused()&&!g&&t.$resetCursorStyle(),h=null,d=null,b=0,m=null,f=null,i.removeListener(document,"mousemove",$)}this.onDragStart=function(e){if(this.cancelDrag||!v.draggable){var o=this;return setTimeout((function(){o.startSelect(),o.captureMouse(e)}),0),e.preventDefault()}h=t.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=t.getReadOnly()?"copy":"copyMove",t.container.appendChild(n),i.setDragImage&&i.setDragImage(n,0,0),setTimeout((function(){t.container.removeChild(n)})),i.clearData(),i.setData("Text",t.session.getTextRange()),g=!0,this.setState("drag")},this.onDragEnd=function(e){if(v.draggable=!1,g=!1,this.setState(null),!t.getReadOnly()){var n=e.dataTransfer.dropEffect;p||"move"!=n||t.session.remove(t.getSelectionRange()),t.$resetCursorStyle()}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(!t.getReadOnly()&&S(e.dataTransfer))return l=e.clientX,c=e.clientY,s||x(),b++,e.dataTransfer.dropEffect=p=E(e),i.preventDefault(e)},this.onDragOver=function(e){if(!t.getReadOnly()&&S(e.dataTransfer))return l=e.clientX,c=e.clientY,s||(x(),b++),null!==C&&(C=null),e.dataTransfer.dropEffect=p=E(e),i.preventDefault(e)},this.onDragLeave=function(e){if(--b<=0&&s)return k(),p=null,i.preventDefault(e)},this.onDrop=function(e){if(d){var n=e.dataTransfer;if(g)switch(p){case"move":h=h.contains(d.row,d.column)?{start:d,end:d}:t.moveText(h,d);break;case"copy":h=t.moveText(h,d,!0)}else{var o=n.getData("Text");h={start:d,end:t.session.insert(d,o)},t.focus(),p=null}return k(),i.preventDefault(e)}},i.addListener(v,"dragstart",this.onDragStart.bind(e),t),i.addListener(v,"dragend",this.onDragEnd.bind(e),t),i.addListener(v,"dragenter",this.onDragEnter.bind(e),t),i.addListener(v,"dragover",this.onDragOver.bind(e),t),i.addListener(v,"dragleave",this.onDragLeave.bind(e),t),i.addListener(v,"drop",this.onDrop.bind(e),t);var C=null;function $(){null==C&&(C=setTimeout((function(){null!=C&&s&&k()}),20))}function S(e){var t=e.types;return!t||Array.prototype.some.call(t,(function(e){return"text/plain"==e||"Text"==e}))}function E(e){var t=["copy","copymove","all","uninitialized"],n=r.isMac?e.altKey:e.ctrlKey,o="uninitialized";try{o=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var i="none";return n&&t.indexOf(o)>=0?i="copy":["move","copymove","linkmove","all","uninitialized"].indexOf(o)>=0?i="move":t.indexOf(o)>=0&&(i="copy"),i}}function a(e,t,n,o){return Math.sqrt(Math.pow(n-e,2)+Math.pow(o-t,2))}(function(){this.dragWait=function(){Date.now()-this.mousedownEvent.time>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){this.editor.container.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor;e.container.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var t=r.isWin?"default":"move";e.renderer.setCursorStyle(t),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;r.isIE&&"dragReady"==this.state&&a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>3&&t.dragDrop(),"dragWait"===this.state&&a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))},this.onMouseDown=function(e){if(this.$dragEnabled){this.mousedownEvent=e;var t=this.editor,n=e.inSelection(),o=e.getButton();if(1===(e.domEvent.detail||1)&&0===o&&n){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var i=e.domEvent.target||e.domEvent.srcElement;"unselectable"in i&&(i.unselectable="on"),t.getDragDelay()?(r.isWebKit&&(this.cancelDrag=!0,t.container.draggable=!0),this.setState("dragWait")):this.startDrag(),this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}}).call(s.prototype),t.DragdropHandler=s})),ace.define("ace/mouse/touch_handler",["require","exports","module","ace/mouse/mouse_event","ace/lib/event","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("./mouse_event").MouseEvent,i=e("../lib/event"),r=e("../lib/dom");t.addTouchListeners=function(e,t){var n,s,a,l,c,u,h,d,p,g="scroll",m=0,f=0,y=0,v=0;function b(){var e,n,o;p||(e=window.navigator&&window.navigator.clipboard,n=!1,o=function(o){var i,s,a=o.target.getAttribute("action");if("more"==a||!n)return n=!n,i=t.getCopyText(),s=t.session.getUndoManager().hasUndo(),void p.replaceChild(r.buildDom(n?["span",!i&&["span",{class:"ace_mobile-button",action:"selectall"},"Select All"],i&&["span",{class:"ace_mobile-button",action:"copy"},"Copy"],i&&["span",{class:"ace_mobile-button",action:"cut"},"Cut"],e&&["span",{class:"ace_mobile-button",action:"paste"},"Paste"],s&&["span",{class:"ace_mobile-button",action:"undo"},"Undo"],["span",{class:"ace_mobile-button",action:"find"},"Find"],["span",{class:"ace_mobile-button",action:"openCommandPalette"},"Palette"]]:["span"]),p.firstChild);"paste"==a?e.readText().then((function(e){t.execCommand(a,e)})):a&&("cut"!=a&&"copy"!=a||(e?e.writeText(t.getCopyText()):document.execCommand("copy")),t.execCommand(a)),p.firstChild.style.display="none",n=!1,"openCommandPalette"!=a&&t.focus()},p=r.buildDom(["div",{class:"ace_mobile-menu",ontouchstart:function(e){g="menu",e.stopPropagation(),e.preventDefault(),t.textInput.focus()},ontouchend:function(e){e.stopPropagation(),e.preventDefault(),o(e)},onclick:o},["span"],["span",{class:"ace_mobile-button",action:"more"},"..."]],t.container));var i=t.selection.cursor,s=t.renderer.textToScreenCoordinates(i.row,i.column),a=t.renderer.textToScreenCoordinates(0,0).pageX,l=t.renderer.scrollLeft,c=t.container.getBoundingClientRect();p.style.top=s.pageY-c.top-3+"px",s.pageX-c.left1)return clearTimeout(c),c=null,a=-1,void(g="zoom");d=t.$mouseHandler.isMousePressed=!0;var r=t.renderer.layerConfig.lineHeight,u=t.renderer.layerConfig.lineHeight,p=e.timeStamp;l=p;var b=i[0],w=b.clientX,k=b.clientY;Math.abs(n-w)+Math.abs(s-k)>r&&(a=-1),n=e.clientX=w,s=e.clientY=k,y=v=0;var C=new o(e,t);if(h=C.getDocumentPosition(),p-a<500&&1==i.length&&!m)f++,e.preventDefault(),e.button=0,function(){c=null,clearTimeout(c),t.selection.moveToPosition(h);var e=f>=2?t.selection.getLineRange(h.row):t.session.getBracketRange(h);e&&!e.isEmpty()?t.selection.setRange(e):t.selection.selectWord(),g="wait"}();else{f=0;var $=t.selection.cursor,S=t.selection.isEmpty()?$:t.selection.anchor,E=t.renderer.$cursorLayer.getPixelPosition($,!0),O=t.renderer.$cursorLayer.getPixelPosition(S,!0),T=t.renderer.scroller.getBoundingClientRect(),A=t.renderer.layerConfig.offset,_=t.renderer.scrollLeft,L=function(e,t){return(e/=u)*e+(t=t/r-.75)*t};if(e.clientXR?"cursor":"anchor"),g=R<3.5?"anchor":M<3.5?"cursor":"scroll",c=setTimeout(x,450)}a=p}),t),i.addListener(e,"touchend",(function(e){d=t.$mouseHandler.isMousePressed=!1,u&&clearInterval(u),"zoom"==g?(g="",m=0):c?(t.selection.moveToPosition(h),m=0,b()):"scroll"==g?(m+=60,u=setInterval((function(){m--<=0&&(clearInterval(u),u=null),Math.abs(y)<.01&&(y=0),Math.abs(v)<.01&&(v=0),m<20&&(y*=.9),m<20&&(v*=.9);var e=t.session.getScrollTop();t.renderer.scrollBy(10*y,10*v),e==t.session.getScrollTop()&&(m=0)}),10),w()):b(),clearTimeout(c),c=null}),t),i.addListener(e,"touchmove",(function(e){c&&(clearTimeout(c),c=null);var i=e.touches;if(!(i.length>1||"zoom"==g)){var r=i[0],a=n-r.clientX,u=s-r.clientY;if("wait"==g){if(!(a*a+u*u>4))return e.preventDefault();g="cursor"}n=r.clientX,s=r.clientY,e.clientX=r.clientX,e.clientY=r.clientY;var h=e.timeStamp,d=h-l;if(l=h,"scroll"==g){var p=new o(e,t);p.speed=1,p.wheelX=a,p.wheelY=u,10*Math.abs(a)=e){for(r=h+1;r=e;)r++;for(a=h,l=r-1;a=t.length||2!=(l=n[i-1])&&3!=l||2!=(c=t[i+1])&&3!=c?4:(r&&(c=3),c==l?c:4);case 10:return 2==(l=i>0?n[i-1]:5)&&i+10&&2==n[i-1])return 2;if(r)return 4;for(p=i+1,d=t.length;p=1425&&m<=2303||64286==m;if(l=t[p],f&&(1==l||7==l))return 1}return i<1||5==(l=t[i-1])?4:n[i-1];case 5:return r=!1,s=!0,o;case 6:return a=!0,4;case 13:case 14:case 16:case 17:case 15:r=!1;case h:return 4}}function f(e){var t=e.charCodeAt(0),n=t>>8;return 0==n?t>191?0:d[t]:5==n?/[\u0591-\u05f4]/.test(e)?1:0:6==n?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?12:/[\u0660-\u0669\u066b-\u066c]/.test(e)?3:1642==t?u:/[\u06f0-\u06f9]/.test(e)?2:7:32==n&&t<=8287?p[255&t]:254==n&&t>=65136?7:4}t.L=0,t.R=1,t.EN=2,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.RLE=7,t.DOT="·",t.doBidiReorder=function(e,n,u){if(e.length<2)return{};var d=e.split(""),p=new Array(d.length),y=new Array(d.length),v=[];o=u?1:0,function(e,t,n,u){var h=o?c:l,d=null,p=null,g=null,y=0,v=null,b=-1,w=null,x=null,k=[];if(!u)for(w=0,u=[];w0)if(16==v){for(w=b;w-1){for(w=b;w=0&&8==u[C];C--)t[C]=o}}(d,v,d.length,n);for(var b=0;b7&&n[b]<13||4===n[b]||n[b]===h)?v[b]=t.ON_R:b>0&&"ل"===d[b-1]&&/\u0622|\u0623|\u0625|\u0627/.test(d[b])&&(v[b-1]=v[b]=t.R_H,b++);for(d[d.length-1]===t.DOT&&(v[d.length-1]=t.B),"‫"===d[0]&&(v[0]=t.RLE),b=0;b=0&&(e=this.session.$docRowCache[n])}return e},e.prototype.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length)for(var n,o=this.session.$getRowCacheIndex(t,this.currentRow);this.currentRow-e>0&&(n=this.session.$getRowCacheIndex(t,this.currentRow-e-1))===o;)o=n,e++;else e=this.currentRow;return e},e.prototype.updateRowLine=function(e,t){void 0===e&&(e=this.getDocumentRow());var n=e===this.session.getLength()-1?this.EOF:this.EOL;if(this.wrapIndent=0,this.line=this.session.getLine(e),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE,this.session.$useWrapMode){var r=this.session.$wrapData[e];r&&(void 0===t&&(t=this.getSplitIndex()),t>0&&r.length?(this.wrapIndent=r.indent,this.wrapOffset=this.wrapIndent*this.charWidths[o.L],this.line=tt?this.session.getOverwrite()?e:e-1:t,i=o.getVisualFromLogicalIdx(n,this.bidiMap),r=this.bidiMap.bidiLevels,s=0;!this.session.getOverwrite()&&e<=t&&r[i]%2!=0&&i++;for(var a=0;at&&r[i]%2==0&&(s+=this.charWidths[r[i]]),this.wrapIndent&&(s+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(s+=this.rtlLineOffset),s},e.prototype.getSelections=function(e,t){var n,o=this.bidiMap,i=o.bidiLevels,r=[],s=0,a=Math.min(e,t)-this.wrapIndent,l=Math.max(e,t)-this.wrapIndent,c=!1,u=!1,h=0;this.wrapIndent&&(s+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var d,p=0;p=a&&dn+r/2;){if(n+=r,o===i.length-1){r=0;break}r=this.charWidths[i[++o]]}return o>0&&i[o-1]%2!=0&&i[o]%2==0?(e0&&i[o-1]%2==0&&i[o]%2!=0?t=1+(e>n?this.bidiMap.logicalFromVisual[o]:this.bidiMap.logicalFromVisual[o-1]):this.isRtlDir&&o===i.length-1&&0===r&&i[o-1]%2==0||!this.isRtlDir&&0===o&&i[o]%2!=0?t=1+this.bidiMap.logicalFromVisual[o]:(o>0&&i[o-1]%2!=0&&0!==r&&o--,t=this.bidiMap.logicalFromVisual[o]),0===t&&this.isRtlDir&&t++,t+this.wrapIndent},e}();t.BidiHandler=s})),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],(function(e,t,n){"use strict";var o=e("./lib/oop"),i=e("./lib/lang"),r=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,a=function(){function e(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var t=this;this.cursor.on("change",(function(e){t.$cursorChanged=!0,t.$silent||t._emit("changeCursor"),t.$isEmpty||t.$silent||t._emit("changeSelection"),t.$keepDesiredColumnOnChange||e.old.column==e.value.column||(t.$desiredColumn=null)})),this.anchor.on("change",(function(){t.$anchorChanged=!0,t.$isEmpty||t.$silent||t._emit("changeSelection")}))}return e.prototype.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},e.prototype.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},e.prototype.getCursor=function(){return this.lead.getPosition()},e.prototype.setAnchor=function(e,t){this.$isEmpty=!1,this.anchor.setPosition(e,t)},e.prototype.getAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},e.prototype.getSelectionLead=function(){return this.lead.getPosition()},e.prototype.isBackwards=function(){var e=this.anchor,t=this.lead;return e.row>t.row||e.row==t.row&&e.column>t.column},e.prototype.getRange=function(){var e=this.anchor,t=this.lead;return this.$isEmpty?s.fromPoints(t,t):this.isBackwards()?s.fromPoints(t,e):s.fromPoints(e,t)},e.prototype.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},e.prototype.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},e.prototype.setRange=function(e,t){var n=t?e.end:e.start,o=t?e.start:e.end;this.$setSelection(n.row,n.column,o.row,o.column)},e.prototype.$setSelection=function(e,t,n,o){if(!this.$silent){var i=this.$isEmpty,r=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(e,t),this.cursor.setPosition(n,o),this.$isEmpty=!s.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),(this.$cursorChanged||this.$anchorChanged||i!=this.$isEmpty||r)&&this._emit("changeSelection")}},e.prototype.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},e.prototype.selectTo=function(e,t){this.$moveSelection((function(){this.moveCursorTo(e,t)}))},e.prototype.selectToPosition=function(e){this.$moveSelection((function(){this.moveCursorToPosition(e)}))},e.prototype.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},e.prototype.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},e.prototype.selectUp=function(){this.$moveSelection(this.moveCursorUp)},e.prototype.selectDown=function(){this.$moveSelection(this.moveCursorDown)},e.prototype.selectRight=function(){this.$moveSelection(this.moveCursorRight)},e.prototype.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},e.prototype.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},e.prototype.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},e.prototype.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},e.prototype.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},e.prototype.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},e.prototype.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},e.prototype.getWordRange=function(e,t){if(void 0===t){var n=e||this.lead;e=n.row,t=n.column}return this.session.getWordRange(e,t)},e.prototype.selectWord=function(){this.setSelectionRange(this.getWordRange())},e.prototype.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},e.prototype.getLineRange=function(e,t){var n,o="number"==typeof e?e:this.lead.row,i=this.session.getFoldLine(o);return i?(o=i.start.row,n=i.end.row):n=o,!0===t?new s(o,0,n,this.session.getLine(n).length):new s(o,0,n+1,0)},e.prototype.selectLine=function(){this.setSelectionRange(this.getLineRange())},e.prototype.moveCursorUp=function(){this.moveCursorBy(-1,0)},e.prototype.moveCursorDown=function(){this.moveCursorBy(1,0)},e.prototype.wouldMoveIntoSoftTab=function(e,t,n){var o=e.column,i=e.column+t;return n<0&&(o=e.column-t,i=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(o,i).split(" ").length-1==t},e.prototype.moveCursorLeft=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(0===t.column)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var n=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,n,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},e.prototype.moveCursorRight=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(e.end.row,e.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=o)}}this.moveCursorTo(t.row,t.column)},e.prototype.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},e.prototype.moveCursorFileStart=function(){this.moveCursorTo(0,0)},e.prototype.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),o=n.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var i=this.session.getFoldAt(e,t,1);if(i)this.moveCursorTo(i.end.row,i.end.column);else{if(this.session.nonTokenRe.exec(o)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,o=n.substring(t)),t>=n.length)return this.moveCursorTo(e,n.length),this.moveCursorRight(),void(e0&&this.moveCursorWordLeft());this.session.tokenRe.exec(r)&&(n-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,n)}},e.prototype.$shortWordEndIndex=function(e){var t,n=0,o=/\s/,i=this.session.tokenRe;if(i.lastIndex=0,this.session.tokenRe.exec(e))n=this.session.tokenRe.lastIndex;else{for(;(t=e[n])&&o.test(t);)n++;if(n<1)for(i.lastIndex=0;(t=e[n])&&!i.test(t);)if(i.lastIndex=0,n++,o.test(t)){if(n>2){n--;break}for(;(t=e[n])&&o.test(t);)n++;if(n>2)break}}return i.lastIndex=0,n},e.prototype.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),o=n.substring(t),i=this.session.getFoldAt(e,t,1);if(i)return this.moveCursorTo(i.end.row,i.end.column);if(t==n.length){var r=this.doc.getLength();do{e++,o=this.doc.getLine(e)}while(e0&&/^\s*$/.test(o));n=o.length,/\s+$/.test(o)||(o="")}var r=i.stringReverse(o),s=this.$shortWordEndIndex(r);return this.moveCursorTo(t,n-s)},e.prototype.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},e.prototype.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},e.prototype.moveCursorBy=function(e,t){var n,o=this.session.documentToScreenPosition(this.lead.row,this.lead.column);if(0===t&&(0!==e&&(this.session.$bidiHandler.isBidiRow(o.row,this.lead.row)?(n=this.session.$bidiHandler.getPosLeft(o.column),o.column=Math.round(n/this.session.$bidiHandler.charWidths[0])):n=o.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?o.column=this.$desiredColumn:this.$desiredColumn=o.column),0!=e&&this.session.lineWidgets&&this.session.lineWidgets[this.lead.row]){var i=this.session.lineWidgets[this.lead.row];e<0?e-=i.rowsAbove||0:e>0&&(e+=i.rowCount-(i.rowsAbove||0))}var r=this.session.screenToDocumentPosition(o.row+e,o.column,n);0!==e&&0===t&&r.row===this.lead.row&&(r.column,this.lead.column),this.moveCursorTo(r.row,r.column+t,0===t)},e.prototype.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},e.prototype.moveCursorTo=function(e,t,n){var o=this.session.getFoldAt(e,t,1);o&&(e=o.start.row,t=o.start.column),this.$keepDesiredColumnOnChange=!0;var i=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(i.charAt(t))&&i.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},e.prototype.moveCursorToScreen=function(e,t,n){var o=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(o.row,o.column,n)},e.prototype.detach=function(){this.lead.detach(),this.anchor.detach()},e.prototype.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},e.prototype.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},e.prototype.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var n=this.getCursor();return s.fromPoints(t,n)}catch(e){return s.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},e.prototype.toJSON=function(){if(this.rangeCount)var e=this.ranges.map((function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t}));else(e=this.getRange()).isBackwards=this.isBackwards();return e},e.prototype.fromJSON=function(e){if(null==e.start){if(this.rangeList&&e.length>1){this.toSingleRange(e[0]);for(var t=e.length;t--;){var n=s.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},e.prototype.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0},e}();a.prototype.setSelectionAnchor=a.prototype.setAnchor,a.prototype.getSelectionAnchor=a.prototype.getAnchor,a.prototype.setSelectionRange=a.prototype.setRange,o.implement(a.prototype,r),t.Selection=a})),ace.define("ace/tokenizer",["require","exports","module","ace/lib/report_error"],(function(e,t,n){"use strict";var o=e("./lib/report_error").reportError,i=2e3,r=function(){function e(e){for(var t in this.states=e,this.regExps={},this.matchMappings={},this.states){for(var n=this.states[t],o=[],i=0,r=this.matchMappings[t]={defaultToken:"text"},s="g",a=[],l=0;l1?this.$applyToken:c.token),h>1&&(/\\\d/.test(c.regex)?u=c.regex.replace(/\\([0-9]+)/g,(function(e,t){return"\\"+(parseInt(t,10)+i+1)})):(h=1,u=this.removeCapturingGroups(c.regex)),c.splitRegex||"string"==typeof c.token||a.push(c)),r[i]=l,i+=h,o.push(u),c.onMatch||(c.onMatch=null)}}o.length||(r[0]=0,o.push("$")),a.forEach((function(e){e.splitRegex=this.createSplitterRegexp(e.regex,s)}),this),this.regExps[t]=new RegExp("("+o.join(")|(")+")|($)",s)}}return e.prototype.$setMaxTokenCount=function(e){i=0|e},e.prototype.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),n=this.token.apply(this,t);if("string"==typeof n)return[{type:n,value:e}];for(var o=[],i=0,r=n.length;iu){var y=e.substring(u,f-m.length);d.type==p?d.value+=y:(d.type&&c.push(d),d={type:p,value:y})}for(var v=0;vi){for(h>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});u1&&n[0]!==o&&n.unshift("#tmp",o),{tokens:c,state:n.length?n:o}},e}();r.prototype.reportError=o,t.Tokenizer=r})),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/deep_copy"],(function(e,t,n){"use strict";var o=e("../lib/deep_copy").deepCopy,i=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(t)for(var n in e){for(var o=e[n],i=0;i=this.$rowTokens.length;){if(this.$row+=1,e||(e=this.$session.getLength()),this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},e.prototype.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},e.prototype.getCurrentTokenRow=function(){return this.$row},e.prototype.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,n=e[t].start;if(void 0!==n)return n;for(n=0;t>0;)n+=e[t-=1].value.length;return n},e.prototype.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},e.prototype.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new o(this.$row,t,this.$row,t+e.value.length)},e}();t.TokenIterator=i})),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],(function(e,t,n){"use strict";var o,i=e("../../lib/oop"),r=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,a=e("../../lib/lang"),l=["text","paren.rparen","rparen","paren","punctuation.operator"],c=["text","paren.rparen","rparen","paren","punctuation.operator","comment"],u={},h={'"':'"',"'":"'"},d=function(e){var t=-1;if(e.multiSelect&&(t=e.selection.index,u.rangeCount!=e.multiSelect.rangeCount&&(u={rangeCount:e.multiSelect.rangeCount})),u[t])return o=u[t];o=u[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},p=function(e,t,n,o){var i=e.end.row-e.start.row;return{text:n+t+o,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},g=function(e){e=e||{},this.add("braces","insertion",(function(t,n,i,r,s){var l=i.getCursorPosition(),c=r.doc.getLine(l.row);if("{"==s){d(i);var u=i.getSelectionRange(),h=r.doc.getTextRange(u);if(""!==h&&"{"!==h&&i.getWrapBehavioursEnabled())return p(u,h,"{","}");if(g.isSaneInsertion(i,r))return/[\]\}\)]/.test(c[l.column])||i.inMultiSelectMode||e.braces?(g.recordAutoInsert(i,r,"}"),{text:"{}",selection:[1,1]}):(g.recordMaybeInsert(i,r,"{"),{text:"{",selection:[1,1]})}else if("}"==s){if(d(i),"}"==c.substring(l.column,l.column+1)&&null!==r.$findOpeningBracket("}",{column:l.column+1,row:l.row})&&g.isAutoInsertedClosing(l,c,s))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}else{if("\n"==s||"\r\n"==s){d(i);var m="";if(g.isMaybeInsertedClosing(l,c)&&(m=a.stringRepeat("}",o.maybeInsertedBrackets),g.clearMaybeInsertedClosing()),"}"===c.substring(l.column,l.column+1)){var f=r.findMatchingBracket({row:l.row,column:l.column+1},"}");if(!f)return null;var y=this.$getIndent(r.getLine(f.row))}else{if(!m)return void g.clearMaybeInsertedClosing();y=this.$getIndent(c)}var v=y+r.getTabString();return{text:"\n"+v+"\n"+y+m,selection:[1,v.length,1,v.length]}}g.clearMaybeInsertedClosing()}})),this.add("braces","deletion",(function(e,t,n,i,r){var s=i.doc.getTextRange(r);if(!r.isMultiLine()&&"{"==s){if(d(n),"}"==i.doc.getLine(r.start.row).substring(r.end.column,r.end.column+1))return r.end.column++,r;o.maybeInsertedBrackets--}})),this.add("parens","insertion",(function(e,t,n,o,i){if("("==i){d(n);var r=n.getSelectionRange(),s=o.doc.getTextRange(r);if(""!==s&&n.getWrapBehavioursEnabled())return p(r,s,"(",")");if(g.isSaneInsertion(n,o))return g.recordAutoInsert(n,o,")"),{text:"()",selection:[1,1]}}else if(")"==i){d(n);var a=n.getCursorPosition(),l=o.doc.getLine(a.row);if(")"==l.substring(a.column,a.column+1)&&null!==o.$findOpeningBracket(")",{column:a.column+1,row:a.row})&&g.isAutoInsertedClosing(a,l,i))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}})),this.add("parens","deletion",(function(e,t,n,o,i){var r=o.doc.getTextRange(i);if(!i.isMultiLine()&&"("==r&&(d(n),")"==o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)))return i.end.column++,i})),this.add("brackets","insertion",(function(e,t,n,o,i){if("["==i){d(n);var r=n.getSelectionRange(),s=o.doc.getTextRange(r);if(""!==s&&n.getWrapBehavioursEnabled())return p(r,s,"[","]");if(g.isSaneInsertion(n,o))return g.recordAutoInsert(n,o,"]"),{text:"[]",selection:[1,1]}}else if("]"==i){d(n);var a=n.getCursorPosition(),l=o.doc.getLine(a.row);if("]"==l.substring(a.column,a.column+1)&&null!==o.$findOpeningBracket("]",{column:a.column+1,row:a.row})&&g.isAutoInsertedClosing(a,l,i))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}})),this.add("brackets","deletion",(function(e,t,n,o,i){var r=o.doc.getTextRange(i);if(!i.isMultiLine()&&"["==r&&(d(n),"]"==o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)))return i.end.column++,i})),this.add("string_dquotes","insertion",(function(e,t,n,o,i){var r=o.$mode.$quotes||h;if(1==i.length&&r[i]){if(this.lineCommentStart&&-1!=this.lineCommentStart.indexOf(i))return;d(n);var s=i,a=n.getSelectionRange(),l=o.doc.getTextRange(a);if(!(""===l||1==l.length&&r[l])&&n.getWrapBehavioursEnabled())return p(a,l,s,s);if(!l){var c=n.getCursorPosition(),u=o.doc.getLine(c.row),g=u.substring(c.column-1,c.column),m=u.substring(c.column,c.column+1),f=o.getTokenAt(c.row,c.column),y=o.getTokenAt(c.row,c.column+1);if("\\"==g&&f&&/escape/.test(f.type))return null;var v,b=f&&/string|escape/.test(f.type),w=!y||/string|escape/.test(y.type);if(m==s)(v=b!==w)&&/string\.end/.test(y.type)&&(v=!1);else{if(b&&!w)return null;if(b&&w)return null;var x=o.$mode.tokenRe;x.lastIndex=0;var k=x.test(g);x.lastIndex=0;var C=x.test(m),$=o.$mode.$pairQuotesAfter;if(!($&&$[s]&&$[s].test(g))&&k||C)return null;if(m&&!/[\s;,.})\]\\]/.test(m))return null;var S=u[c.column-2];if(g==s&&(S==s||x.test(S)))return null;v=!0}return{text:v?s+s:"",selection:[1,1]}}}})),this.add("string_dquotes","deletion",(function(e,t,n,o,i){var r=o.$mode.$quotes||h,s=o.doc.getTextRange(i);if(!i.isMultiLine()&&r.hasOwnProperty(s)&&(d(n),o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)==s))return i.end.column++,i})),!1!==e.closeDocComment&&this.add("doc comment end","insertion",(function(e,t,n,o,i){if("doc-start"===e&&("\n"===i||"\r\n"===i)&&n.selection.isEmpty()){var r=n.getCursorPosition(),s=o.doc.getLine(r.row),a=o.doc.getLine(r.row+1),l=this.$getIndent(s);if(/\s*\*/.test(a))return/^\s*\*/.test(s)?{text:i+l+"* ",selection:[1,3+l.length,1,3+l.length]}:{text:i+l+" * ",selection:[1,3+l.length,1,3+l.length]};if(/\/\*\*/.test(s.substring(0,r.column)))return{text:i+l+" * "+i+" "+l+"*/",selection:[1,4+l.length,1,4+l.length]}}}))};g.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),o=new s(t,n.row,n.column);if(!this.$matchTokenType(o.getCurrentToken()||"text",l)){if(/[)}\]]/.test(e.session.getLine(n.row)[n.column]))return!0;var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",l))return!1}return o.stepForward(),o.getCurrentTokenRow()!==n.row||this.$matchTokenType(o.getCurrentToken()||"text",c)},g.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},g.recordAutoInsert=function(e,t,n){var i=e.getCursorPosition(),r=t.doc.getLine(i.row);this.isAutoInsertedClosing(i,r,o.autoInsertedLineEnd[0])||(o.autoInsertedBrackets=0),o.autoInsertedRow=i.row,o.autoInsertedLineEnd=n+r.substr(i.column),o.autoInsertedBrackets++},g.recordMaybeInsert=function(e,t,n){var i=e.getCursorPosition(),r=t.doc.getLine(i.row);this.isMaybeInsertedClosing(i,r)||(o.maybeInsertedBrackets=0),o.maybeInsertedRow=i.row,o.maybeInsertedLineStart=r.substr(0,i.column)+n,o.maybeInsertedLineEnd=r.substr(i.column),o.maybeInsertedBrackets++},g.isAutoInsertedClosing=function(e,t,n){return o.autoInsertedBrackets>0&&e.row===o.autoInsertedRow&&n===o.autoInsertedLineEnd[0]&&t.substr(e.column)===o.autoInsertedLineEnd},g.isMaybeInsertedClosing=function(e,t){return o.maybeInsertedBrackets>0&&e.row===o.maybeInsertedRow&&t.substr(e.column)===o.maybeInsertedLineEnd&&t.substr(0,e.column)==o.maybeInsertedLineStart},g.popAutoInsertedClosing=function(){o.autoInsertedLineEnd=o.autoInsertedLineEnd.substr(1),o.autoInsertedBrackets--},g.clearMaybeInsertedClosing=function(){o&&(o.maybeInsertedBrackets=0,o.maybeInsertedRow=-1)},i.inherits(g,r),t.CstyleBehaviour=g})),ace.define("ace/unicode",["require","exports","module"],(function(e,t,n){"use strict";for(var o=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],i=0,r=[],s=0;s2?o%c!=c-1:o%c==0})}else{if(!this.blockComment)return!1;var p=this.blockComment.start,g=this.blockComment.end,m=new RegExp("^(\\s*)(?:"+l.escapeRegExp(p)+")"),f=new RegExp("(?:"+l.escapeRegExp(g)+")\\s*$"),y=function(e,t){b(e,t)||r&&!/\S/.test(e)||(i.insertInLine({row:t,column:e.length},g),i.insertInLine({row:t,column:a},p))},v=function(e,t){var n;(n=e.match(f))&&i.removeInLine(t,e.length-n[0].length,e.length),(n=e.match(m))&&i.removeInLine(t,n[1].length,n[0].length)},b=function(e,n){if(m.test(e))return!0;for(var o=t.getTokens(n),i=0;ie.length&&(x=e.length)})),a==1/0&&(a=x,r=!1,s=!1),u&&a%c!=0&&(a=Math.floor(a/c)*c),w(s?v:y)},this.toggleBlockComment=function(e,t,n,o){var i=this.blockComment;if(i){!i.start&&i[0]&&(i=i[0]);var r,s,a=(m=new c(t,o.row,o.column)).getCurrentToken(),l=(t.selection,t.selection.toOrientedRange());if(a&&/comment/.test(a.type)){for(var h,d;a&&/comment/.test(a.type);){if(-1!=(f=a.value.indexOf(i.start))){var p=m.getCurrentTokenRow(),g=m.getCurrentTokenColumn()+f;h=new u(p,g,p,g+i.start.length);break}a=m.stepBackward()}var m;for(a=(m=new c(t,o.row,o.column)).getCurrentToken();a&&/comment/.test(a.type);){var f;if(-1!=(f=a.value.indexOf(i.end))){p=m.getCurrentTokenRow(),g=m.getCurrentTokenColumn()+f,d=new u(p,g,p,g+i.end.length);break}a=m.stepForward()}d&&t.remove(d),h&&(t.remove(h),r=h.start.row,s=-i.start.length)}else s=i.start.length,r=n.start.row,t.insert(n.end,i.end),t.insert(n.start,i.start);l.start.row==r&&(l.start.column+=s),l.end.row==r&&(l.end.column+=s),t.selection.fromOrientedRange(l)}},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.autoOutdent=function(e,t,n){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){for(var t in this.$embeds=[],this.$modes={},e)if(e[t]){var n=e[t],i=n.prototype.$id,r=o.$modes[i];r||(o.$modes[i]=r=new n),o.$modes[t]||(o.$modes[t]=r),this.$embeds.push(t),this.$modes[t]=r}var s=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"];for(t=0;tthis.row)){var t=function(e,t,n){var o="insert"==e.action,i=(o?1:-1)*(e.end.row-e.start.row),r=(o?1:-1)*(e.end.column-e.start.column),a=e.start,l=o?a:e.end;return s(t,a,n)?{row:t.row,column:t.column}:s(l,t,!n)?{row:t.row+i,column:t.column+(t.row==l.row?r:0)}:{row:a.row,column:a.column}}(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(t.row,t.column,!0)}},e.prototype.setPosition=function(e,t,n){var o;if(o=n?{row:e,column:t}:this.$clipPositionToDocument(e,t),this.row!=o.row||this.column!=o.column){var i={row:this.row,column:this.column};this.row=o.row,this.column=o.column,this._signal("change",{old:i,value:o})}},e.prototype.detach=function(){this.document.off("change",this.$onChange)},e.prototype.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},e.prototype.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n},e}();function s(e,t,n){var o=n?e.column<=t.column:e.column=n&&(e=n-1,t=void 0);var o=this.getLine(e);return null==t&&(t=o.length),{row:e,column:t=Math.min(Math.max(t,0),o.length)}},e.prototype.clonePos=function(e){return{row:e.row,column:e.column}},e.prototype.pos=function(e,t){return{row:e,column:t}},e.prototype.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},e.prototype.insertFullLines=function(e,t){var n=0;(e=Math.min(Math.max(e,0),this.getLength()))0,o=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},e.prototype.replace=function(e,t){return e instanceof s||(e=s.fromPoints(e.start,e.end)),0===t.length&&e.isEmpty()?e.start:t==this.getTextRange(e)?e.end:(this.remove(e),t?this.insert(e.start,t):e.start)},e.prototype.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},e.prototype.applyDelta=function(e,t){var n="insert"==e.action;(n?e.lines.length<=1&&!e.lines[0]:!s.comparePoints(e.start,e.end))||(n&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(i(this.$lines,e,t),this._signal("change",e)))},e.prototype.$safeApplyDelta=function(e){var t=this.$lines.length;("remove"==e.action&&e.start.row20){n.running=setTimeout(n.$worker,20);break}}n.currentLine=t,-1==o&&(o=t),r<=o&&n.fireUpdateEvent(r,o)}}}return e.prototype.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},e.prototype.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},e.prototype.fireUpdateEvent=function(e,t){var n={first:e,last:t};this._signal("update",{data:n})},e.prototype.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},e.prototype.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},e.prototype.$updateOnChange=function(e){var t=e.start.row,n=e.end.row-t;if(0===n)this.lines[t]=null;else if("remove"==e.action)this.lines.splice(t,n+1,null),this.states.splice(t,n+1,null);else{var o=Array(n+1);o.unshift(t,1),this.lines.splice.apply(this.lines,o),this.states.splice.apply(this.states,o)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},e.prototype.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},e.prototype.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},e.prototype.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},e.prototype.$tokenizeRow=function(e){var t=this.doc.getLine(e),n=this.states[e-1],o=this.tokenizer.getLineTokens(t,n,e);return this.states[e]+""!=o.state+""?(this.states[e]=o.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=o.tokens},e.prototype.cleanup=function(){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.removeAllListeners()},e}();o.implement(r.prototype,i),t.BackgroundTokenizer=r})),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/range"],(function(e,t,n){"use strict";var o=e("./lib/lang"),i=e("./range").Range,r=function(){function e(e,t,n){void 0===n&&(n="text"),this.setRegexp(e),this.clazz=t,this.type=n}return e.prototype.setRegexp=function(e){this.regExp+""!=e+""&&(this.regExp=e,this.cache=[])},e.prototype.update=function(e,t,n,r){if(this.regExp)for(var s=r.firstRow,a=r.lastRow,l={},c=s;c<=a;c++){var u=this.cache[c];null==u&&((u=o.getMatchOffsets(n.getLine(c),this.regExp)).length>this.MAX_RANGES&&(u=u.slice(0,this.MAX_RANGES)),u=u.map((function(e){return new i(c,e.offset,c,e.offset+e.length)})),this.cache[c]=u.length?u:"");for(var h=u.length;h--;){var d=u[h].toScreenRange(n),p=d.toString();l[p]||(l[p]=!0,t.drawSingleLineMarker(e,d,this.clazz,r))}}},e}();r.prototype.MAX_RANGES=500,t.SearchHighlight=r})),ace.define("ace/undomanager",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=function(){function e(){this.$maxRev=0,this.$fromUndo=!1,this.$undoDepth=1/0,this.reset()}return e.prototype.addSession=function(e){this.$session=e},e.prototype.add=function(e,t,n){if(!this.$fromUndo&&e!=this.$lastDelta){if(this.$keepRedoStack||(this.$redoStack.length=0),!1===t||!this.lastDeltas){this.lastDeltas=[];var o=this.$undoStack.length;o>this.$undoDepth-1&&this.$undoStack.splice(0,o-this.$undoDepth+1),this.$undoStack.push(this.lastDeltas),e.id=this.$rev=++this.$maxRev}"remove"!=e.action&&"insert"!=e.action||(this.$lastDelta=e),this.lastDeltas.push(e)}},e.prototype.addSelection=function(e,t){this.selections.push({value:e,rev:t||this.$rev})},e.prototype.startNewGroup=function(){return this.lastDeltas=null,this.$rev},e.prototype.markIgnored=function(e,t){null==t&&(t=this.$rev+1);for(var n=this.$undoStack,o=n.length;o--;){var i=n[o][0];if(i.id<=e)break;i.id0},e.prototype.canRedo=function(){return this.$redoStack.length>0},e.prototype.bookmark=function(e){null==e&&(e=this.$rev),this.mark=e},e.prototype.isAtBookmark=function(){return this.$rev===this.mark},e.prototype.toJSON=function(){return{$redoStack:this.$redoStack,$undoStack:this.$undoStack}},e.prototype.fromJSON=function(e){this.reset(),this.$undoStack=e.$undoStack,this.$redoStack=e.$redoStack},e.prototype.$prettyPrint=function(e){return e?a(e):a(this.$undoStack)+"\n---\n"+a(this.$redoStack)},e}();o.prototype.hasUndo=o.prototype.canUndo,o.prototype.hasRedo=o.prototype.canRedo,o.prototype.isClean=o.prototype.isAtBookmark,o.prototype.markClean=o.prototype.bookmark;var i=e("./range").Range,r=i.comparePoints;function s(e){return{row:e.row,column:e.column}}function a(e){if(e=e||this,Array.isArray(e))return e.map(a).join("\n");var t="";return e.action?(t="insert"==e.action?"+":"-",t+="["+e.lines+"]"):e.value&&(t=Array.isArray(e.value)?e.value.map(l).join("\n"):l(e.value)),e.start&&(t+=l(e)),(e.id||e.rev)&&(t+="\t("+(e.id||e.rev)+")"),t}function l(e){return e.start.row+":"+e.start.column+"=>"+e.end.row+":"+e.end.column}function c(e,t){var n="insert"==e.action,o="insert"==t.action;if(n&&o)if(r(t.start,e.end)>=0)d(t,e,-1);else{if(!(r(t.start,e.start)<=0))return null;d(e,t,1)}else if(n&&!o)if(r(t.start,e.end)>=0)d(t,e,-1);else{if(!(r(t.end,e.start)<=0))return null;d(e,t,-1)}else if(!n&&o)if(r(t.start,e.start)>=0)d(t,e,1);else{if(!(r(t.start,e.start)<=0))return null;d(e,t,1)}else if(!n&&!o)if(r(t.start,e.start)>=0)d(t,e,1);else{if(!(r(t.end,e.start)<=0))return null;d(e,t,-1)}return[t,e]}function u(e,t){for(var n=e.length;n--;)for(var o=0;o=0?d(e,t,-1):(r(e.start,t.start)<=0||d(e,i.fromPoints(t.start,e.start),-1),d(t,e,1));else if(!n&&o)r(t.start,e.end)>=0?d(t,e,-1):(r(t.start,e.start)<=0||d(t,i.fromPoints(e.start,t.start),-1),d(e,t,1));else if(!n&&!o)if(r(t.start,e.end)>=0)d(t,e,-1);else{var s,a;if(!(r(t.end,e.start)<=0))return r(e.start,t.start)<0&&(s=e,e=g(e,t.start)),r(e.end,t.end)>0&&(a=g(e,t.end)),p(t.end,e.start,e.end,-1),a&&!s&&(e.lines=a.lines,e.start=a.start,e.end=a.end,a=e),[t,s,a].filter(Boolean);d(e,t,-1)}return[t,e]}function d(e,t,n){p(e.start,t.start,t.end,n),p(e.end,t.start,t.end,n)}function p(e,t,n,o){e.row==(1==o?t:n).row&&(e.column+=o*(n.column-t.column)),e.row+=o*(n.row-t.row)}function g(e,t){var n=e.lines,o=e.end;e.end=s(t);var i=e.end.row-e.start.row,r=n.splice(i,n.length),a=i?t.column:t.column-e.start.column;return n.push(r[0].substring(0,a)),r[0]=r[0].substr(a),{start:s(t),end:o,lines:r,action:e.action}}function m(e,t){t=function(e){return{start:s(e.start),end:s(e.end),action:e.action,lines:e.lines.slice()}}(t);for(var n=e.length;n--;){for(var o=e[n],i=0;ithis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort((function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)})),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},e.prototype.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},e.prototype.walk=function(e,t,n){var o,i,r=0,s=this.folds,a=!0;null==t&&(t=this.end.row,n=this.end.column);for(var l=0;l0)){var l=o(e,s.start);return 0===a?t&&0!==l?-r-2:r:l>0||0===l&&!t?r:-r-1}}return-r-1},e.prototype.add=function(e){var t=!e.isEmpty(),n=this.pointIndex(e.start,t);n<0&&(n=-n-1);var o=this.pointIndex(e.end,t,n);return o<0?o=-o-1:o++,this.ranges.splice(n,o-n,e)},e.prototype.addList=function(e){for(var t=[],n=e.length;n--;)t.push.apply(t,this.add(e[n]));return t},e.prototype.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},e.prototype.merge=function(){for(var e,t=[],n=this.ranges,i=(n=n.sort((function(e,t){return o(e.start,t.start)})))[0],r=1;r=0},e.prototype.containsPoint=function(e){return this.pointIndex(e)>=0},e.prototype.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},e.prototype.clipRows=function(e,t){var n=this.ranges;if(n[0].start.row>t||n[n.length-1].start.row=o);s++);if("insert"==e.action){for(var l=i-o,c=-t.column+n.column;so);s++)if(u.start.row==o&&u.start.column>=t.column&&(u.start.column==t.column&&this.$bias<=0||(u.start.column+=c,u.start.row+=l)),u.end.row==o&&u.end.column>=t.column){if(u.end.column==t.column&&this.$bias<0)continue;u.end.column==t.column&&c>0&&su.start.column&&u.end.column==r[s+1].start.column&&(u.end.column-=c),u.end.column+=c,u.end.row+=l}}else for(l=o-i,c=t.column-n.column;si);s++)u.end.rowt.column)&&(u.end.column=t.column,u.end.row=t.row):(u.end.column+=c,u.end.row+=l):u.end.row>i&&(u.end.row+=l),u.start.rowt.column)&&(u.start.column=t.column,u.start.row=t.row):(u.start.column+=c,u.start.row+=l):u.start.row>i&&(u.start.row+=l);if(0!=l&&s=e)return i;if(i.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var n=this.$foldData,o=0;for(t&&(o=n.indexOf(t)),-1==o&&(o=0);o=e)return i}return null},this.getFoldedRowCount=function(e,t){for(var n=this.$foldData,o=t-e+1,i=0;i=t){a=e?o-=t-a:o=0);break}s>=e&&(o-=a>=e?s-a:s-e+1)}return o},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort((function(e,t){return e.start.row-t.start.row})),e},this.addFold=function(e,t){var n,o=this.$foldData,s=!1;e instanceof r?n=e:(n=new r(t,e)).collapseChildren=t.collapseChildren,this.$clipRangeToDocument(n.range);var a=n.start.row,l=n.start.column,c=n.end.row,u=n.end.column,h=this.getFoldAt(a,l,1),d=this.getFoldAt(c,u,-1);if(h&&d==h)return h.addSubFold(n);h&&!h.range.isStart(a,l)&&this.removeFold(h),d&&!d.range.isEnd(c,u)&&this.removeFold(d);var p=this.getFoldsInRange(n.range);p.length>0&&(this.removeFolds(p),n.collapseChildren||p.forEach((function(e){n.addSubFold(e)})));for(var g=0;g0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach((function(e){this.expandFold(e)}),this)},this.unfold=function(e,t){var n,i;if(null==e)n=new o(0,0,this.getLength(),0),null==t&&(t=!0);else if("number"==typeof e)n=new o(e,0,e,this.getLine(e).length);else if("row"in e)n=o.fromPoints(e,e);else{if(Array.isArray(e))return i=[],e.forEach((function(e){i=i.concat(this.unfold(e))}),this),i;n=e}for(var r=i=this.getFoldsInRangeList(n);1==i.length&&o.comparePoints(i[0].start,n.start)<0&&o.comparePoints(i[0].end,n.end)>0;)this.expandFolds(i),i=this.getFoldsInRangeList(n);if(0!=t?this.removeFolds(i):this.expandFolds(i),r.length)return r},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var n=this.getFoldLine(e,t);return n?n.end.row:e},this.getRowFoldStart=function(e,t){var n=this.getFoldLine(e,t);return n?n.start.row:e},this.getFoldDisplayLine=function(e,t,n,o,i){null==o&&(o=e.start.row),null==i&&(i=0),null==t&&(t=e.end.row),null==n&&(n=this.getLine(t).length);var r=this.doc,s="";return e.walk((function(e,t,n,a){if(!(tu)break}while(r&&l.test(r.type)&&!/^comment.start/.test(r.type));r=i.stepBackward()}else r=i.getCurrentToken();return c.end.row=i.getCurrentTokenRow(),c.end.column=i.getCurrentTokenColumn(),/^comment.end/.test(r.type)||(c.end.column+=r.value.length-2),c}},this.foldAll=function(e,t,n,o){null==n&&(n=1e5);var i=this.foldWidgets;if(i){t=t||this.getLength();for(var r=e=e||0;r=e&&(r=s.end.row,s.collapseChildren=n,this.addFold("...",s))}}},this.foldToLevel=function(e){for(this.foldAll();e-- >0;)this.unfold(null,!1)},this.foldAllComments=function(){var e=this;this.foldAll(null,null,null,(function(t){for(var n=e.getTokens(t),o=0;o=0;){var r=n[i];if(null==r&&(r=n[i]=this.getFoldWidget(i)),"start"==r){var s=this.getFoldWidgetRange(i);if(o||(o=s),s&&s.end.row>=e)break}i--}return{range:-1!==i&&s,firstRange:o}},this.onFoldWidgetClick=function(e,t){t instanceof a&&(t=t.domEvent);var n={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey};if(!this.$toggleFoldWidget(e,n)){var o=t.target||t.srcElement;o&&/ace_fold-widget/.test(o.className)&&(o.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(this.getFoldWidget){var n=this.getFoldWidget(e),o=this.getLine(e),i="end"===n?-1:1,r=this.getFoldAt(e,-1===i?0:o.length,i);if(r)return t.children||t.all?this.removeFold(r):this.expandFold(r),r;var s=this.getFoldWidgetRange(e,!0);if(s&&!s.isMultiLine()&&(r=this.getFoldAt(s.start.row,s.start.column,1))&&s.isEqual(r.range))return this.removeFold(r),r;if(t.siblings){var a=this.getParentFoldRangeData(e);if(a.range)var l=a.range.start.row+1,c=a.range.end.row;this.foldAll(l,c,t.all?1e4:0)}else t.children?(c=s?s.end.row:this.getLength(),this.foldAll(e+1,c,t.all?1e4:0)):s&&(t.all&&(s.collapseChildren=1e4),this.addFold("...",s));return s}},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var n=this.$toggleFoldWidget(t,{});if(!n){var o=this.getParentFoldRangeData(t,!0);if(n=o.range||o.firstRange){t=n.start.row;var i=this.getFoldAt(t,this.getLine(t).length,1);i?this.removeFold(i):this.addFold("...",n)}}},this.updateFoldWidgets=function(e){var t=e.start.row,n=e.end.row-t;if(0===n)this.foldWidgets[t]=null;else if("remove"==e.action)this.foldWidgets.splice(t,n+1,null);else{var o=Array(n+1);o.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,o)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}})),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],(function(e,t,n){"use strict";var o=e("../token_iterator").TokenIterator,i=e("../range").Range;t.BracketMatch=function(){this.findMatchingBracket=function(e,t){if(0==e.column)return null;var n=t||this.getLine(e.row).charAt(e.column-1);if(""==n)return null;var o=n.match(/([\(\[\{])|([\)\]\}])/);return o?o[1]?this.$findClosingBracket(o[1],e):this.$findOpeningBracket(o[2],e):null},this.getBracketRange=function(e){var t,n=this.getLine(e.row),o=!0,r=n.charAt(e.column-1),s=r&&r.match(/([\(\[\{])|([\)\]\}])/);if(s||(r=n.charAt(e.column),e={row:e.row,column:e.column+1},s=r&&r.match(/([\(\[\{])|([\)\]\}])/),o=!1),!s)return null;if(s[1]){if(!(a=this.$findClosingBracket(s[1],e)))return null;t=i.fromPoints(e,a),o||(t.end.column++,t.start.column--),t.cursor=t.end}else{var a;if(!(a=this.$findOpeningBracket(s[2],e)))return null;t=i.fromPoints(a,e),o||(t.start.column++,t.end.column--),t.cursor=t.start}return t},this.getMatchingBracketRanges=function(e,t){var n=this.getLine(e.row),o=/([\(\[\{])|([\)\]\}])/,r=!t&&n.charAt(e.column-1),s=r&&r.match(o);if(s||(r=(void 0===t||t)&&n.charAt(e.column),e={row:e.row,column:e.column+1},s=r&&r.match(o)),!s)return null;var a=new i(e.row,e.column-1,e.row,e.column),l=s[1]?this.$findClosingBracket(s[1],e):this.$findOpeningBracket(s[2],e);return l?[a,new i(l.row,l.column,l.row,l.column+1)]:[a]},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(e,t,n){var i=this.$brackets[e],r=1,s=new o(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){n||(n=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)").replace(/-close\b/,"-(close|open)")+")+"));for(var l=t.column-s.getCurrentTokenColumn()-2,c=a.value;;){for(;l>=0;){var u=c.charAt(l);if(u==i){if(0==(r-=1))return{row:s.getCurrentTokenRow(),column:l+s.getCurrentTokenColumn()}}else u==e&&(r+=1);l-=1}do{a=s.stepBackward()}while(a&&!n.test(a.type));if(null==a)break;l=(c=a.value).length-1}return null}},this.$findClosingBracket=function(e,t,n){var i=this.$brackets[e],r=1,s=new o(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){n||(n=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)").replace(/-open\b/,"-(close|open)")+")+"));for(var l=t.column-s.getCurrentTokenColumn();;){for(var c=a.value,u=c.length;l"===t.value?o=!0:-1!==t.type.indexOf("tag-name")&&(n=!0))}while(t&&!n);return t},this.$findClosingTag=function(e,t){var n,o=t.value,r=t.value,s=0,a=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);t=e.stepForward();var l=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length),c=!1;do{if(n=t,t=e.stepForward()){if(">"===t.value&&!c){var u=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);c=!0}if(-1!==t.type.indexOf("tag-name")){if(r===(o=t.value))if("<"===n.value)s++;else if(""!==t.value)return;var p=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1)}}else r===o&&"/>"===t.value&&--s<0&&(p=d=h=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+2),u=new i(l.end.row,l.end.column,l.end.row,l.end.column+1))}}while(t&&s>=0);if(a&&u&&h&&p&&l&&d)return{openTag:new i(a.start.row,a.start.column,u.end.row,u.end.column),closeTag:new i(h.start.row,h.start.column,p.end.row,p.end.column),openTagName:l,closeTagName:d}},this.$findOpeningTag=function(e,t){var n=e.getCurrentToken(),o=t.value,r=0,s=e.getCurrentTokenRow(),a=e.getCurrentTokenColumn(),l=a+2,c=new i(s,a,s,l);e.stepForward();var u=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length);if((t=e.stepForward())&&">"===t.value){var h=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);e.stepBackward(),e.stepBackward();do{if(t=n,s=e.getCurrentTokenRow(),l=(a=e.getCurrentTokenColumn())+t.value.length,n=e.stepBackward(),t)if(-1!==t.type.indexOf("tag-name")){if(o===t.value)if("<"===n.value){if(++r>0){var d=new i(s,a,s,l),p=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);do{t=e.stepForward()}while(t&&">"!==t.value);var g=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1)}}else""===t.value){for(var m=0,f=n;f;){if(-1!==f.type.indexOf("tag-name")&&f.value===o){r--;break}if("<"===f.value)break;f=e.stepBackward(),m++}for(var y=0;yn&&(this.$docRowCache.splice(n,t),this.$screenRowCache.splice(n,t))},e.prototype.$getRowCacheIndex=function(e,t){for(var n=0,o=e.length-1;n<=o;){var i=n+o>>1,r=e[i];if(t>r)n=i+1;else{if(!(t=t);r++);return(n=o[r])?(n.index=r,n.start=i-n.value.length,n):null},e.prototype.setUndoManager=function(e){if(this.$undoManager=e,this.$informUndoManager&&this.$informUndoManager.cancel(),e){var t=this;e.addSession(this),this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.mergeUndoDeltas=!1},this.$informUndoManager=i.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},e.prototype.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},e.prototype.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},e.prototype.getTabString=function(){return this.getUseSoftTabs()?i.stringRepeat(" ",this.getTabSize()):"\t"},e.prototype.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},e.prototype.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},e.prototype.setTabSize=function(e){this.setOption("tabSize",e)},e.prototype.getTabSize=function(){return this.$tabSize},e.prototype.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize==0},e.prototype.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},e.prototype.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},e.prototype.setOverwrite=function(e){this.setOption("overwrite",e)},e.prototype.getOverwrite=function(){return this.$overwrite},e.prototype.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},e.prototype.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},e.prototype.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},e.prototype.getBreakpoints=function(){return this.$breakpoints},e.prototype.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(o=!!n.charAt(t-1).match(this.tokenRe)),o||(o=!!n.charAt(t).match(this.tokenRe)),o)var i=this.tokenRe;else i=/^\s+$/.test(n.slice(t-1,t+1))?/\s/:this.nonTokenRe;var r=t;if(r>0){do{r--}while(r>=0&&n.charAt(r).match(i));r++}for(var s=t;se&&(e=t.screenWidth)})),this.lineWidgetWidth=e},e.prototype.$computeWidth=function(e){if(this.$modified||e){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var t=this.doc.getAllLines(),n=this.$rowLengthCache,o=0,i=0,r=this.$foldData[i],s=r?r.start.row:1/0,a=t.length,l=0;ls){if((l=r.end.row+1)>=a)break;s=(r=this.$foldData[i++])?r.start.row:1/0}null==n[l]&&(n[l]=this.$getStringScreenWidth(t[l])[0]),n[l]>o&&(o=n[l])}this.screenWidth=o}},e.prototype.getLine=function(e){return this.doc.getLine(e)},e.prototype.getLines=function(e,t){return this.doc.getLines(e,t)},e.prototype.getLength=function(){return this.doc.getLength()},e.prototype.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},e.prototype.insert=function(e,t){return this.doc.insert(e,t)},e.prototype.remove=function(e){return this.doc.remove(e)},e.prototype.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},e.prototype.undoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var n=e.length-1;-1!=n;n--){var o=e[n];"insert"==o.action||"remove"==o.action?this.doc.revertDelta(o):o.folds&&this.addFolds(o.folds)}!t&&this.$undoSelect&&(e.selectionBefore?this.selection.fromJSON(e.selectionBefore):this.selection.setRange(this.$getUndoSelection(e,!0))),this.$fromUndo=!1}},e.prototype.redoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var n=0;ne.end.column&&(r.start.column+=c),r.end.row==e.end.row&&r.end.column>e.end.column&&(r.end.column+=c)),s&&r.start.row>=e.end.row&&(r.start.row+=s,r.end.row+=s)}if(r.end=this.insert(r.start,o),i.length){var a=e.start,l=r.start,c=(s=l.row-a.row,l.column-a.column);this.addFolds(i.map((function(e){return(e=e.clone()).start.row==a.row&&(e.start.column+=c),e.end.row==a.row&&(e.end.column+=c),e.start.row+=s,e.end.row+=s,e})))}return r},e.prototype.indentRows=function(e,t,n){n=n.replace(/\t/g,this.getTabString());for(var o=e;o<=t;o++)this.doc.insertInLine({row:o,column:0},n)},e.prototype.outdentRows=function(e){for(var t=e.collapseRows(),n=new u(0,0,0,0),o=this.getTabSize(),i=t.start.row;i<=t.end.row;++i){var r=this.getLine(i);n.start.row=i,n.end.row=i;for(var s=0;s0){var i;if((i=this.getRowFoldEnd(t+n))>this.doc.getLength()-1)return 0;o=i-t}else e=this.$clipRowToDocument(e),o=(t=this.$clipRowToDocument(t))-e+1;var r=new u(e,0,t,Number.MAX_VALUE),s=this.getFoldsInRange(r).map((function(e){return(e=e.clone()).start.row+=o,e.end.row+=o,e})),a=0==n?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+o,a),s.length&&this.addFolds(s),o},e.prototype.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},e.prototype.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},e.prototype.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},e.prototype.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},e.prototype.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},e.prototype.$clipPositionToDocument=function(e,t){if(t=Math.max(0,t),e<0)e=0,t=0;else{var n=this.doc.getLength();e>=n?(e=n-1,t=this.doc.getLine(n-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},e.prototype.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},e.prototype.setUseWrapMode=function(e){if(e!=this.$useWrapMode){if(this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0),e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},e.prototype.getUseWrapMode=function(){return this.$useWrapMode},e.prototype.setWrapLimitRange=function(e,t){this.$wrapLimitRange.min===e&&this.$wrapLimitRange.max===t||(this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},e.prototype.adjustWrapLimit=function(e,t){var n=this.$wrapLimitRange;n.max<0&&(n={min:t,max:t});var o=this.$constrainWrapLimit(e,n.min,n.max);return o!=this.$wrapLimit&&o>1&&(this.$wrapLimit=o,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0)},e.prototype.$constrainWrapLimit=function(e,t,n){return t&&(e=Math.max(t,e)),n&&(e=Math.min(n,e)),e},e.prototype.getWrapLimit=function(){return this.$wrapLimit},e.prototype.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},e.prototype.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},e.prototype.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,n=e.action,o=e.start,i=e.end,r=o.row,s=i.row,a=s-r,l=null;if(this.$updating=!0,0!=a)if("remove"===n){this[t?"$wrapData":"$rowLengthCache"].splice(r,a);var c=this.$foldData;l=this.getFoldsInRange(e),this.removeFolds(l);var u=0;if(m=this.getFoldLine(i.row)){m.addRemoveChars(i.row,i.column,o.column-i.column),m.shiftRow(-a);var h=this.getFoldLine(r);h&&h!==m&&(h.merge(m),m=h),u=c.indexOf(m)+1}for(;u=i.row&&m.shiftRow(-a);s=r}else{var d=Array(a);d.unshift(r,0);var p=t?this.$wrapData:this.$rowLengthCache;if(p.splice.apply(p,d),c=this.$foldData,u=0,m=this.getFoldLine(r)){var g=m.range.compareInside(o.row,o.column);0==g?(m=m.split(o.row,o.column))&&(m.shiftRow(a),m.addRemoveChars(s,0,i.column-o.column)):-1==g&&(m.addRemoveChars(r,0,i.column-o.column),m.shiftRow(a)),u=c.indexOf(m)+1}for(;u=r&&m.shiftRow(a)}}else a=Math.abs(e.start.column-e.end.column),"remove"===n&&(l=this.getFoldsInRange(e),this.removeFolds(l),a=-a),(m=this.getFoldLine(r))&&m.addRemoveChars(r,o.column,a);return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(r,s):this.$updateRowLengthCache(r,s),l},e.prototype.$updateRowLengthCache=function(e,t,n){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},e.prototype.$updateWrapData=function(e,t){var n,o,i=this.doc.getAllLines(),r=this.getTabSize(),s=this.$wrapData,a=this.$wrapLimit,l=e;for(t=Math.min(t,i.length-1);l<=t;)(o=this.getFoldLine(l,o))?(n=[],o.walk(function(e,t,o,r){var s;if(null!=e){(s=this.$getDisplayTokens(e,n.length))[0]=v;for(var a=1;at-h;){var d=r+t-h;if(e[d-1]>=x&&e[d]>=x)u(d);else if(e[d]!=v&&e[d]!=b){for(var p=Math.max(d-(t-(t>>2)),r-1);d>p&&e[d]p&&e[d]p&&e[d]==w;)d--}else for(;d>p&&e[d]p?u(++d):(e[d=r+t]==y&&d--,u(d-h))}else{for(;d!=r-1&&e[d]!=v;d--);if(d>r){u(d);continue}for(d=r+t;d39&&r<48||r>57&&r<64?o.push(w):r>=4352&&$(r)?o.push(f,y):o.push(f)}return o},e.prototype.$getStringScreenWidth=function(e,t,n){if(0==t)return[0,0];var o,i;for(null==t&&(t=1/0),n=n||0,i=0;i=4352&&$(o)?n+=2:n+=1,!(n>t));i++);return[n,i]},e.prototype.getRowLength=function(e){var t=1;return this.lineWidgets&&(t+=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0),this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+t:t},e.prototype.getRowLineCount=function(e){return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1:1},e.prototype.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),n=this.$wrapData[t.row];return n.length&&n[0]=0){a=c[u],r=this.$docRowCache[u];var d=e>c[h-1]}else d=!h;for(var p=this.getLength()-1,g=this.getNextFoldLine(r),m=g?g.start.row:1/0;a<=e&&!(a+(l=this.getRowLength(r))>e||r>=p);)a+=l,++r>m&&(r=g.end.row+1,m=(g=this.getNextFoldLine(r,g))?g.start.row:1/0),d&&(this.$docRowCache.push(r),this.$screenRowCache.push(a));if(g&&g.start.row<=r)o=this.getFoldDisplayLine(g),r=g.start.row;else{if(a+l<=e||r>p)return{row:p,column:this.getLine(p).length};o=this.getLine(r),g=null}var f=0,y=Math.floor(e-a);if(this.$useWrapMode){var v=this.$wrapData[r];v&&(i=v[y],y>0&&v.length&&(f=v.indent,s=v[y-1]||v[v.length-1],o=o.substring(s)))}return void 0!==n&&this.$bidiHandler.isBidiRow(a+y,r,y)&&(t=this.$bidiHandler.offsetToCol(n)),s+=this.$getStringScreenWidth(o,t-f)[1],this.$useWrapMode&&s>=i&&(s=i-1),g?g.idxToPosition(s):{row:r,column:s}},e.prototype.documentToScreenPosition=function(e,t){if(void 0===t)var n=this.$clipPositionToDocument(e.row,e.column);else n=this.$clipPositionToDocument(e,t);e=n.row,t=n.column;var o,i=0,r=null;(o=this.getFoldAt(e,t,1))&&(e=o.start.row,t=o.start.column);var s,a=0,l=this.$docRowCache,c=this.$getRowCacheIndex(l,e),u=l.length;if(u&&c>=0){a=l[c],i=this.$screenRowCache[c];var h=e>l[u-1]}else h=!u;for(var d=this.getNextFoldLine(a),p=d?d.start.row:1/0;a=p){if((s=d.end.row+1)>e)break;p=(d=this.getNextFoldLine(s,d))?d.start.row:1/0}else s=a+1;i+=this.getRowLength(a),a=s,h&&(this.$docRowCache.push(a),this.$screenRowCache.push(i))}var g="";d&&a>=p?(g=this.getFoldDisplayLine(d,e,t),r=d.start.row):(g=this.getLine(e).substring(0,t),r=e);var m=0;if(this.$useWrapMode){var f=this.$wrapData[r];if(f){for(var y=0;g.length>=f[y];)i++,y++;g=g.substring(f[y-1]||0,g.length),m=y>0?f.indent:0}}return this.lineWidgets&&this.lineWidgets[a]&&this.lineWidgets[a].rowsAbove&&(i+=this.lineWidgets[a].rowsAbove),{row:i,column:m+this.$getStringScreenWidth(g)[0]}},e.prototype.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},e.prototype.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},e.prototype.getScreenLength=function(){var e=0,t=null;if(this.$useWrapMode)for(var n=this.$wrapData.length,o=0,i=(a=0,(t=this.$foldData[a++])?t.start.row:1/0);oi&&(o=t.end.row+1,i=(t=this.$foldData[a++])?t.start.row:1/0)}else{e=this.getLength();for(var s=this.$foldData,a=0;an);r++);return[o,r]})},e.prototype.destroy=function(){this.destroyed||(this.bgTokenizer.setDocument(null),this.bgTokenizer.cleanup(),this.destroyed=!0),this.$stopWorker(),this.removeAllListeners(),this.doc&&this.doc.off("change",this.$onChange),this.selection.detach()},e}();m.$uid=0,m.prototype.$modes=s.$modes,m.prototype.getValue=m.prototype.toString,m.prototype.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},m.prototype.$overwrite=!1,m.prototype.$mode=null,m.prototype.$modeId=null,m.prototype.$scrollTop=0,m.prototype.$scrollLeft=0,m.prototype.$wrapLimit=80,m.prototype.$useWrapMode=!1,m.prototype.$wrapLimitRange={min:null,max:null},m.prototype.lineWidgets=null,m.prototype.isFullWidth=$,o.implement(m.prototype,a);var f=1,y=2,v=3,b=4,w=9,x=10,k=11,C=12;function $(e){return!(e<4352)&&(e>=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510)}e("./edit_session/folding").Folding.call(m.prototype),e("./edit_session/bracket_match").BracketMatch.call(m.prototype),s.defineOptions(m.prototype,"session",{wrap:{set:function(e){if(e&&"off"!=e?"free"==e?e=!0:"printMargin"==e?e=-1:"string"==typeof e&&(e=parseInt(e,10)||!1):e=!1,this.$wrap!=e)if(this.$wrap=e,e){var t="number"==typeof e?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}else this.setUseWrapMode(!1)},get:function(){return this.getUseWrapMode()?-1==this.$wrap?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){(e="auto"==e?"text"!=this.$mode.type:"text"!=e)!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){(e=parseInt(e))>0&&this.$tabSize!==e&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function(e){this.setFoldStyle(e)},handlesSet:!0},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId},handlesSet:!0}}),t.EditSession=m})),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],(function(e,t,n){"use strict";var o=e("./lib/lang"),i=e("./lib/oop"),r=e("./range").Range,s=function(){function e(){this.$options={}}return e.prototype.set=function(e){return i.mixin(this.$options,e),this},e.prototype.getOptions=function(){return o.copyObject(this.$options)},e.prototype.setOptions=function(e){this.$options=e},e.prototype.find=function(e){var t=this.$options,n=this.$matchIterator(e,t);if(!n)return!1;var o=null;return n.forEach((function(e,n,i,s){return o=new r(e,n,i,s),!(n==s&&t.start&&t.start.start&&0!=t.skipCurrent&&o.isEqual(t.start)&&(o=null,1))})),o},e.prototype.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var n=t.range,i=n?e.getLines(n.start.row,n.end.row):e.doc.getAllLines(),s=[],a=t.re;if(t.$isMultiLine){var l,c=a.length,u=i.length-c;e:for(var h=a.offset||0;h<=u;h++){for(var d=0;dm||(s.push(l=new r(h,m,h+c-1,f)),c>2&&(h=h+c-2))}}else for(var y=0;yx&&s[d].end.row==k;)d--;for(s=s.slice(y,d+1),y=0,d=s.length;y=c;n--)if(p(n,Number.MAX_VALUE,e))return;if(0!=t.wrap)for(n=u,c=l.row;n>=c;n--)if(p(n,Number.MAX_VALUE,e))return}};else h=function(e){var n=l.row;if(!p(n,l.column,e)){for(n+=1;n<=u;n++)if(p(n,0,e))return;if(0!=t.wrap)for(n=c,u=l.row;n<=u;n++)if(p(n,0,e))return}};if(t.$isMultiLine)var d=n.length,p=function(t,o,r){var s=i?t-d+1:t;if(!(s<0||s+d>e.getLength())){var a=e.getLine(s),l=a.search(n[0]);if(!(!i&&lo))return!!r(s,l,s+d-1,u)||void 0}}};else p=i?function(t,i,r){var a,l=e.getLine(t),c=[],u=0;for(n.lastIndex=0;a=n.exec(l);){var h=a[0].length;if(u=a.index,!h){if(u>=l.length)break;n.lastIndex=u+=o.skipEmptyMatch(l,u,s)}if(a.index+h>i)break;c.push(a.index,h)}for(var d=c.length-1;d>=0;d-=2){var p=c[d-1];if(r(t,p,t,p+(h=c[d])))return!0}}:function(t,i,r){var a,l,c=e.getLine(t);for(n.lastIndex=i;l=n.exec(c);){var u=l[0].length;if(r(t,a=l.index,t,a+u))return!0;if(!u&&(n.lastIndex=a+=o.skipEmptyMatch(c,a,s),a>=c.length))return!1}};return{forEach:h}},e}();t.Search=s})),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("../lib/keys"),s=e("../lib/useragent"),a=r.KEY_MODS,l=function(){function e(e,t){this.$init(e,t,!1)}return e.prototype.$init=function(e,t,n){this.platform=t||(s.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=n},e.prototype.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},e.prototype.removeCommand=function(e,t){var n=e&&("string"==typeof e?e:e.name);e=this.commands[n],t||delete this.commands[n];var o=this.commandKeyBinding;for(var i in o){var r=o[i];if(r==e)delete o[i];else if(Array.isArray(r)){var s=r.indexOf(e);-1!=s&&(r.splice(s,1),1==r.length&&(o[i]=r[0]))}}},e.prototype.bindKey=function(e,t,n){if("object"==typeof e&&e&&(null==n&&(n=e.position),e=e[this.platform]),e)return"function"==typeof t?this.addCommand({exec:t,bindKey:e,name:t.name||e}):void e.split("|").forEach((function(e){var o="";if(-1!=e.indexOf(" ")){var i=e.split(/\s+/);e=i.pop(),i.forEach((function(e){var t=this.parseKeys(e),n=a[t.hashId]+t.key;o+=(o?" ":"")+n,this._addCommandToBinding(o,"chainKeys")}),this),o+=" "}var r=this.parseKeys(e),s=a[r.hashId]+r.key;this._addCommandToBinding(o+s,t,n)}),this)},e.prototype._addCommandToBinding=function(e,t,n){var o,i=this.commandKeyBinding;if(t)if(!i[e]||this.$singleCommand)i[e]=t;else{Array.isArray(i[e])?-1!=(o=i[e].indexOf(t))&&i[e].splice(o,1):i[e]=[i[e]],"number"!=typeof n&&(n=c(t));var r=i[e];for(o=0;on);o++);r.splice(o,0,t)}else delete i[e]},e.prototype.addCommands=function(e){e&&Object.keys(e).forEach((function(t){var n=e[t];if(n){if("string"==typeof n)return this.bindKey(n,t);"function"==typeof n&&(n={exec:n}),"object"==typeof n&&(n.name||(n.name=t),this.addCommand(n))}}),this)},e.prototype.removeCommands=function(e){Object.keys(e).forEach((function(t){this.removeCommand(e[t])}),this)},e.prototype.bindKeys=function(e){Object.keys(e).forEach((function(t){this.bindKey(t,e[t])}),this)},e.prototype._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},e.prototype.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter((function(e){return e})),n=t.pop(),o=r[n];if(r.FUNCTION_KEYS[o])n=r.FUNCTION_KEYS[o].toLowerCase();else{if(!t.length)return{key:n,hashId:-1};if(1==t.length&&"shift"==t[0])return{key:n.toUpperCase(),hashId:-1}}for(var i=0,s=t.length;s--;){var a=r.KEY_MODS[t[s]];if(null==a)return"undefined"!=typeof console&&console.error("invalid modifier "+t[s]+" in "+e),!1;i|=a}return{key:n,hashId:i}},e.prototype.findKeyCommand=function(e,t){var n=a[e]+t;return this.commandKeyBinding[n]},e.prototype.handleKeyboard=function(e,t,n,o){if(!(o<0)){var i=a[t]+n,r=this.commandKeyBinding[i];return e.$keyChain&&(e.$keyChain+=" "+i,r=this.commandKeyBinding[e.$keyChain]||r),!r||"chainKeys"!=r&&"chainKeys"!=r[r.length-1]?(e.$keyChain&&(t&&4!=t||1!=n.length?(-1==t||o>0)&&(e.$keyChain=""):e.$keyChain=e.$keyChain.slice(0,-i.length-1)),{command:r}):(e.$keyChain=e.$keyChain||i,{command:"null"})}},e.prototype.getStatusText=function(e,t){return t.$keyChain||""},e}();function c(e){return"object"==typeof e&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}var u=function(e){function t(t,n){var o=e.call(this,t,n)||this;return o.$singleCommand=!0,o}return i(t,e),t}(l);u.call=function(e,t,n){l.prototype.$init.call(e,t,n,!0)},l.call=function(e,t,n){l.prototype.$init.call(e,t,n,!1)},t.HashHandler=u,t.MultiHashHandler=l})),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("../lib/oop"),s=e("../keyboard/hash_handler").MultiHashHandler,a=e("../lib/event_emitter").EventEmitter,l=function(e){function t(t,n){var o=e.call(this,n,t)||this;return o.byName=o.commands,o.setDefaultHandler("exec",(function(e){return e.args?e.command.exec(e.editor,e.args,e.event,!1):e.command.exec(e.editor,{},e.event,!0)})),o}return i(t,e),t.prototype.exec=function(e,t,n){if(Array.isArray(e)){for(var o=e.length;o--;)if(this.exec(e[o],t,n))return!0;return!1}if("string"==typeof e&&(e=this.commands[e]),!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;if(0!=this.$checkCommandState&&e.isAvailable&&!e.isAvailable(t))return!1;var i={editor:t,command:e,args:n};return i.returnValue=this._emit("exec",i),this._signal("afterExec",i),!1!==i.returnValue},t.prototype.toggleRecording=function(e){if(!this.$inReplay)return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.off("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},t.prototype.replay=function(e){if(!this.$inReplay&&this.macro){if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach((function(t){"string"==typeof t?this.exec(t,e):this.exec(t[0],e,t[1])}),this)}finally{this.$inReplay=!1}}},t.prototype.trimMacro=function(e){return e.map((function(e){return"string"!=typeof e[0]&&(e[0]=e[0].name),e[1]||(e=e[0]),e}))},t}(s);r.implement(l.prototype,a),t.CommandManager=l})),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],(function(e,t,n){"use strict";var o=e("../lib/lang"),i=e("../config"),r=e("../range").Range;function s(e,t){return{win:e,mac:t}}t.commands=[{name:"showSettingsMenu",description:"Show settings menu",bindKey:s("Ctrl-,","Command-,"),exec:function(e){i.loadModule("ace/ext/settings_menu",(function(t){t.init(e),e.showSettingsMenu()}))},readOnly:!0},{name:"goToNextError",description:"Go to next error",bindKey:s("Alt-E","F4"),exec:function(e){i.loadModule("ace/ext/error_marker",(function(t){t.showErrorMarker(e,1)}))},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",description:"Go to previous error",bindKey:s("Alt-Shift-E","Shift-F4"),exec:function(e){i.loadModule("ace/ext/error_marker",(function(t){t.showErrorMarker(e,-1)}))},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:s("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:s(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:s("Ctrl-L","Command-L"),exec:function(e,t){"number"!=typeof t||isNaN(t)||e.gotoLine(t),e.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:s("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:s("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",description:"Toggle fold widget",bindKey:s("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",description:"Toggle parent fold widget",bindKey:s("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:s(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldAllComments",description:"Fold all comments",bindKey:s(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAllComments()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:s("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:s("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:s("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:s("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:s("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:s("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:s("Ctrl-F","Command-F"),exec:function(e){i.loadModule("ace/ext/searchbox",(function(t){t.Search(e)}))},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:s("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:s("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:s("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:s("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:s("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:s("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:s("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:s("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:s("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:s("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:s("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:s("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:s("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:s("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:s("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:s("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:s("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:s("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:s("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:s("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:s(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:s("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:s(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:s("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:s("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:s("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:s("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:s("Ctrl-\\|Ctrl-P","Command-\\"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:s("Ctrl-Shift-\\|Ctrl-Shift-P","Command-Shift-\\"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:s("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:s(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(e){},readOnly:!0},{name:"cut",description:"Cut",exec:function(e){var t=e.$copyWithEmptySelection&&e.selection.isEmpty()?e.selection.getLineRange():e.selection.getRange();e._emit("cut",t),t.isEmpty()||e.session.remove(t),e.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:s("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:s("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:s("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:s("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:s("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:s("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:s("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:s("Ctrl-H","Command-Option-F"),exec:function(e){i.loadModule("ace/ext/searchbox",(function(t){t.Search(e,!0)}))}},{name:"undo",description:"Undo",bindKey:s("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",description:"Redo",bindKey:s("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:s("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:s("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:s("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:s("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:s("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:s("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:s("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:s("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:s("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:s("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:s("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:s("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:s("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:s("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:s("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:s("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:s("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(e,t){e.insert(o.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:s(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:s("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:s("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:s("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"autoindent",description:"Auto Indent",bindKey:s(null,null),exec:function(e){e.autoIndent()},multiSelectAction:"forEachLine",scrollIntoView:"animate"},{name:"expandtoline",description:"Expand to line",bindKey:s("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"openlink",bindKey:s("Ctrl+F3","F3"),exec:function(e){e.openLink()}},{name:"joinlines",description:"Join lines",bindKey:s(null,null),exec:function(e){for(var t=e.selection.isBackwards(),n=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),i=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),s=e.session.doc.getLine(n.row).length,a=e.session.doc.getTextRange(e.selection.getRange()).replace(/\n\s*/," ").length,l=e.session.doc.getLine(n.row),c=n.row+1;c<=i.row+1;c++){var u=o.stringTrimLeft(o.stringTrimRight(e.session.doc.getLine(c)));0!==u.length&&(u=" "+u),l+=u}i.row+10?(e.selection.moveCursorTo(n.row,n.column),e.selection.selectTo(n.row,n.column+a)):(s=e.session.doc.getLine(n.row).length>s?s+1:s,e.selection.moveCursorTo(n.row,s))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:s(null,null),exec:function(e){var t=e.session.doc.getLength()-1,n=e.session.doc.getLine(t).length,o=e.selection.rangeList.ranges,i=[];o.length<1&&(o=[e.selection.getRange()]);for(var s=0;st[n].column&&n++,r.unshift(n,0),t.splice.apply(t,r),this.$updateRows()}}},e.prototype.$updateRows=function(){var e=this.session.lineWidgets;if(e){var t=!0;e.forEach((function(e,n){if(e)for(t=!1,e.row=n;e.$oldWidget;)e.$oldWidget.row=n,e=e.$oldWidget})),t&&(this.session.lineWidgets=null)}},e.prototype.$registerLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var t=this.session.lineWidgets[e.row];return t&&(e.$oldWidget=t,t.el&&t.el.parentNode&&(t.el.parentNode.removeChild(t.el),t._inDocument=!1)),this.session.lineWidgets[e.row]=e,e},e.prototype.addLineWidget=function(e){if(this.$registerLineWidget(e),e.session=this.session,!this.editor)return e;var t=this.editor.renderer;e.html&&!e.el&&(e.el=o.createElement("div"),e.el.innerHTML=e.html),e.text&&!e.el&&(e.el=o.createElement("div"),e.el.textContent=e.text),e.el&&(o.addCssClass(e.el,"ace_lineWidgetContainer"),e.className&&o.addCssClass(e.el,e.className),e.el.style.position="absolute",e.el.style.zIndex=5,t.container.appendChild(e.el),e._inDocument=!0,e.coverGutter||(e.el.style.zIndex=3),null==e.pixelHeight&&(e.pixelHeight=e.el.offsetHeight)),null==e.rowCount&&(e.rowCount=e.pixelHeight/t.layerConfig.lineHeight);var n=this.session.getFoldAt(e.row,0);if(e.$fold=n,n){var i=this.session.lineWidgets;e.row!=n.end.row||i[n.start.row]?e.hidden=!0:i[n.start.row]=e}return this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,t),this.onWidgetChanged(e),e},e.prototype.removeLineWidget=function(e){if(e._inDocument=!1,e.session=null,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el),e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(e){}if(this.session.lineWidgets){var t=this.session.lineWidgets[e.row];if(t==e)this.session.lineWidgets[e.row]=e.$oldWidget,e.$oldWidget&&this.onWidgetChanged(e.$oldWidget);else for(;t;){if(t.$oldWidget==e){t.$oldWidget=e.$oldWidget;break}t=t.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows()},e.prototype.getWidgetsAtRow=function(e){for(var t=this.session.lineWidgets,n=t&&t[e],o=[];n;)o.push(n),n=n.$oldWidget;return o},e.prototype.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},e.prototype.measureWidgets=function(e,t){var n=this.session._changedWidgets,o=t.layerConfig;if(n&&n.length){for(var i=1/0,r=0;r0&&!o[i];)i--;this.firstRow=n.firstRow,this.lastRow=n.lastRow,t.$cursorLayer.config=n;for(var s=i;s<=r;s++){var a=o[s];if(a&&a.el)if(a.hidden)a.el.style.top=-100-(a.pixelHeight||0)+"px";else{a._inDocument||(a._inDocument=!0,t.container.appendChild(a.el));var l=t.$cursorLayer.getPixelPosition({row:s,column:0},!0).top;a.coverLine||(l+=n.lineHeight*this.session.getRowLineCount(a.row)),a.el.style.top=l-n.offset+"px";var c=a.coverGutter?0:t.gutterWidth;a.fixedWidth||(c-=t.scrollLeft),a.el.style.left=c+"px",a.fullWidth&&a.screenWidth&&(a.el.style.minWidth=n.width+2*n.padding+"px"),a.fixedWidth?a.el.style.right=t.scrollBar.getWidth()+"px":a.el.style.right=""}}}},e}();t.LineWidgets=i})),ace.define("ace/keyboard/gutter_handler",["require","exports","module","ace/lib/keys","ace/mouse/default_gutter_handler"],(function(e,t,n){"use strict";var o=e("../lib/keys"),i=e("../mouse/default_gutter_handler").GutterTooltip,r=function(){function e(e){this.editor=e,this.gutterLayer=e.renderer.$gutterLayer,this.element=e.renderer.$gutter,this.lines=e.renderer.$gutterLayer.$lines,this.activeRowIndex=null,this.activeLane=null,this.annotationTooltip=new i(this.editor)}return e.prototype.addListener=function(){this.element.addEventListener("keydown",this.$onGutterKeyDown.bind(this)),this.element.addEventListener("focusout",this.$blurGutter.bind(this)),this.editor.on("mousewheel",this.$blurGutter.bind(this))},e.prototype.removeListener=function(){this.element.removeEventListener("keydown",this.$onGutterKeyDown.bind(this)),this.element.removeEventListener("focusout",this.$blurGutter.bind(this)),this.editor.off("mousewheel",this.$blurGutter.bind(this))},e.prototype.$onGutterKeyDown=function(e){if(this.annotationTooltip.isOpen)return e.preventDefault(),void(e.keyCode===o.escape&&this.annotationTooltip.hideTooltip());if(e.target===this.element){if(e.keyCode!=o.enter)return;e.preventDefault();var t=this.editor.getCursorPosition().row;return this.editor.isRowVisible(t)||this.editor.scrollToLine(t,!0,!0),void setTimeout(function(){var e=this.$rowToRowIndex(this.gutterLayer.$cursorCell.row),t=this.$findNearestFoldWidget(e),n=this.$findNearestAnnotation(e);if(null!==t||null!==n)return null===t&&null!==n?(this.activeRowIndex=n,this.activeLane="annotation",void this.$focusAnnotation(this.activeRowIndex)):null!==t&&null===n?(this.activeRowIndex=t,this.activeLane="fold",void this.$focusFoldWidget(this.activeRowIndex)):Math.abs(n-e)0||e+t=0&&this.$isFoldWidgetVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isFoldWidgetVisible(e+t))return e+t}return null},e.prototype.$findNearestAnnotation=function(e){if(this.$isAnnotationVisible(e))return e;for(var t=0;e-t>0||e+t=0&&this.$isAnnotationVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isAnnotationVisible(e+t))return e+t}return null},e.prototype.$focusFoldWidget=function(e){if(null!=e){var t=this.$getFoldWidget(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()}},e.prototype.$focusAnnotation=function(e){if(null!=e){var t=this.$getAnnotation(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()}},e.prototype.$blurFoldWidget=function(e){var t=this.$getFoldWidget(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},e.prototype.$blurAnnotation=function(e){var t=this.$getAnnotation(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},e.prototype.$moveFoldWidgetUp=function(){for(var e=this.activeRowIndex;e>0;)if(e--,this.$isFoldWidgetVisible(e))return this.$blurFoldWidget(this.activeRowIndex),this.activeRowIndex=e,void this.$focusFoldWidget(this.activeRowIndex)},e.prototype.$moveFoldWidgetDown=function(){for(var e=this.activeRowIndex;e0;)if(e--,this.$isAnnotationVisible(e))return this.$blurAnnotation(this.activeRowIndex),this.activeRowIndex=e,void this.$focusAnnotation(this.activeRowIndex)},e.prototype.$moveAnnotationDown=function(){for(var e=this.activeRowIndex;e=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},i=e("./lib/oop"),r=e("./lib/dom"),s=e("./lib/lang"),a=e("./lib/useragent"),l=e("./keyboard/textinput").TextInput,c=e("./mouse/mouse_handler").MouseHandler,u=e("./mouse/fold_handler").FoldHandler,h=e("./keyboard/keybinding").KeyBinding,d=e("./edit_session").EditSession,p=e("./search").Search,g=e("./range").Range,m=e("./lib/event_emitter").EventEmitter,f=e("./commands/command_manager").CommandManager,y=e("./commands/default_commands").commands,v=e("./config"),b=e("./token_iterator").TokenIterator,w=e("./line_widgets").LineWidgets,x=e("./keyboard/gutter_handler").GutterKeyboardHandler,k=e("./config").nls,C=e("./clipboard"),$=e("./lib/keys"),S=function(){function e(t,n,o){this.$toDestroy=[];var i=t.getContainerElement();this.container=i,this.renderer=t,this.id="editor"+ ++e.$uid,this.commands=new f(a.isMac?"mac":"win",y),"object"==typeof document&&(this.textInput=new l(t.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new c(this),new u(this)),this.keyBinding=new h(this),this.$search=(new p).set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=s.delayedCall(function(){this._signal("input",{}),this.session&&!this.session.destroyed&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",(function(e,t){t._$emitInputEvent.schedule(31)})),this.setSession(n||o&&o.session||new d("")),v.resetOptions(this),o&&this.setOptions(o),v._signal("editor",this)}return e.prototype.$initOperationListeners=function(){this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0),this.$opResetTimer=s.delayedCall(this.endOperation.bind(this,!0)),this.on("change",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.docChanged=!0}.bind(this),!0),this.on("changeSelection",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.selectionChanged=!0}.bind(this),!0)},e.prototype.startOperation=function(e){if(this.curOp){if(!e||this.curOp.command)return;this.prevOp=this.curOp}e||(this.previousCommand=null,e={}),this.$opResetTimer.schedule(),this.curOp=this.session.curOp={command:e.command||{},args:e.args,scrollTop:this.renderer.scrollTop},this.curOp.selectionBefore=this.selection.toJSON()},e.prototype.endOperation=function(e){if(this.curOp&&this.session){if(e&&!1===e.returnValue||!this.session)return this.curOp=null;if(1==e&&this.curOp.command&&"mouse"==this.curOp.command.name)return;if(this._signal("beforeEndOperation"),!this.curOp)return;var t=this.curOp.command,n=t&&t.scrollIntoView;if(n){switch(n){case"center-animate":n="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var o=this.selection.getRange(),i=this.renderer.layerConfig;(o.start.row>=i.lastRow||o.end.row<=i.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead)}"animate"==n&&this.renderer.animateScrolling(this.curOp.scrollTop)}var r=this.selection.toJSON();this.curOp.selectionAfter=r,this.$lastSel=this.selection.toJSON(),this.session.getUndoManager().addSelection(r),this.prevOp=this.curOp,this.curOp=null}},e.prototype.$historyTracker=function(e){if(this.$mergeUndoDeltas){var t=this.prevOp,n=this.$mergeableCommands,o=t.command&&e.command.name==t.command.name;if("insertstring"==e.command.name){var i=e.args;void 0===this.mergeNextCommand&&(this.mergeNextCommand=!0),o=o&&this.mergeNextCommand&&(!/\s/.test(i)||/\s/.test(t.args)),this.mergeNextCommand=!0}else o=o&&-1!==n.indexOf(e.command.name);"always"!=this.$mergeUndoDeltas&&Date.now()-this.sequenceStartTime>2e3&&(o=!1),o?this.session.mergeUndoDeltas=!0:-1!==n.indexOf(e.command.name)&&(this.sequenceStartTime=Date.now())}},e.prototype.setKeyboardHandler=function(e,t){if(e&&"string"==typeof e&&"ace"!=e){this.$keybindingId=e;var n=this;v.loadModule(["keybinding",e],(function(o){n.$keybindingId==e&&n.keyBinding.setKeyboardHandler(o&&o.handler),t&&t()}))}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},e.prototype.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},e.prototype.setSession=function(e){if(this.session!=e){this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var n=this.session.getSelection();n.off("changeCursor",this.$onCursorChange),n.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this}),e&&!e.destroyed&&e.bgTokenizer.scheduleStart()}},e.prototype.getSession=function(){return this.session},e.prototype.setValue=function(e,t){return this.session.doc.setValue(e),t?1==t?this.navigateFileEnd():-1==t&&this.navigateFileStart():this.selectAll(),e},e.prototype.getValue=function(){return this.session.getValue()},e.prototype.getSelection=function(){return this.selection},e.prototype.resize=function(e){this.renderer.onResize(e)},e.prototype.setTheme=function(e,t){this.renderer.setTheme(e,t)},e.prototype.getTheme=function(){return this.renderer.getTheme()},e.prototype.setStyle=function(e){this.renderer.setStyle(e)},e.prototype.unsetStyle=function(e){this.renderer.unsetStyle(e)},e.prototype.getFontSize=function(){return this.getOption("fontSize")||r.computedStyle(this.container).fontSize},e.prototype.setFontSize=function(e){this.setOption("fontSize",e)},e.prototype.$highlightBrackets=function(){if(!this.$highlightPending){var e=this;this.$highlightPending=!0,setTimeout((function(){e.$highlightPending=!1;var t=e.session;if(t&&!t.destroyed){t.$bracketHighlight&&(t.$bracketHighlight.markerIds.forEach((function(e){t.removeMarker(e)})),t.$bracketHighlight=null);var n=e.getCursorPosition(),o=e.getKeyboardHandler(),i=o&&o.$getDirectionForHighlight&&o.$getDirectionForHighlight(e),r=t.getMatchingBracketRanges(n,i);if(!r){var s=new b(t,n.row,n.column).getCurrentToken();if(s&&/\b(?:tag-open|tag-name)/.test(s.type)){var a=t.getMatchingTags(n);a&&(r=[a.openTagName,a.closeTagName])}}if(!r&&t.$mode.getMatching&&(r=t.$mode.getMatching(e.session)),r){var l="ace_bracket";Array.isArray(r)?1==r.length&&(l="ace_error_bracket"):r=[r],2==r.length&&(0==g.comparePoints(r[0].end,r[1].start)?r=[g.fromPoints(r[0].start,r[1].end)]:0==g.comparePoints(r[0].start,r[1].end)&&(r=[g.fromPoints(r[1].start,r[0].end)])),t.$bracketHighlight={ranges:r,markerIds:r.map((function(e){return t.addMarker(e,l,"text")}))},e.getHighlightIndentGuides()&&e.renderer.$textLayer.$highlightIndentGuide()}else e.getHighlightIndentGuides()&&e.renderer.$textLayer.$highlightIndentGuide()}}),50)}},e.prototype.focus=function(){this.textInput.focus()},e.prototype.isFocused=function(){return this.textInput.isFocused()},e.prototype.blur=function(){this.textInput.blur()},e.prototype.onFocus=function(e){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",e))},e.prototype.onBlur=function(e){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",e))},e.prototype.$cursorChange=function(){this.renderer.updateCursor(),this.$highlightBrackets(),this.$updateHighlightActiveLine()},e.prototype.onDocumentChange=function(e){var t=this.session.$useWrapMode,n=e.start.row==e.end.row?e.end.row:1/0;this.renderer.updateLines(e.start.row,n,t),this._signal("change",e),this.$cursorChange()},e.prototype.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},e.prototype.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},e.prototype.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},e.prototype.onCursorChange=function(){this.$cursorChange(),this._signal("changeSelection")},e.prototype.$updateHighlightActiveLine=function(){var e,t=this.getSession();if(this.$highlightActiveLine&&("line"==this.$selectionStyle&&this.selection.isMultiLine()||(e=this.getCursorPosition()),this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(e=!1),!this.renderer.$maxLines||1!==this.session.getLength()||this.renderer.$minLines>1||(e=!1)),t.$highlightLineMarker&&!e)t.removeMarker(t.$highlightLineMarker.id),t.$highlightLineMarker=null;else if(!t.$highlightLineMarker&&e){var n=new g(e.row,e.column,e.row,1/0);n.id=t.addMarker(n,"ace_active-line","screenLine"),t.$highlightLineMarker=n}else e&&(t.$highlightLineMarker.start.row=e.row,t.$highlightLineMarker.end.row=e.row,t.$highlightLineMarker.start.column=e.column,t._signal("changeBackMarker"))},e.prototype.onSelectionChange=function(e){var t=this.session;if(t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var n=this.selection.getRange(),o=this.getSelectionStyle();t.$selectionMarker=t.addMarker(n,"ace_selection",o)}var i=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(i),this._signal("changeSelection")},e.prototype.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(!t.isEmpty()&&!t.isMultiLine()){var n=t.start.column,o=t.end.column,i=e.getLine(t.start.row),r=i.substring(n,o);if(!(r.length>5e3)&&/[\w\d]/.test(r)){var s=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:r}),a=i.substring(n-1,o+1);if(s.test(a))return s}}},e.prototype.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},e.prototype.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},e.prototype.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},e.prototype.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},e.prototype.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},e.prototype.onChangeWrapLimit=function(){this.renderer.updateFull()},e.prototype.onChangeWrapMode=function(){this.renderer.onResize(!0)},e.prototype.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},e.prototype.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},e.prototype.getCopyText=function(){var e=this.getSelectedText(),t=this.session.doc.getNewLineCharacter(),n=!1;if(!e&&this.$copyWithEmptySelection){n=!0;for(var o=this.selection.getAllRanges(),i=0;ia.search(/\S|$/)){var l=a.substr(i.column).search(/\S|$/);n.doc.removeInLine(i.row,i.column,i.column+l)}}this.clearSelection();var c=i.column,u=n.getState(i.row),h=(a=n.getLine(i.row),o.checkOutdent(u,a,e));if(n.insert(i,e),r&&r.selection&&(2==r.selection.length?this.selection.setSelectionRange(new g(i.row,c+r.selection[0],i.row,c+r.selection[1])):this.selection.setSelectionRange(new g(i.row+r.selection[0],r.selection[1],i.row+r.selection[2],r.selection[3]))),this.$enableAutoIndent){if(n.getDocument().isNewLine(e)){var d=o.getNextLineIndent(u,a.slice(0,i.column),n.getTabString());n.insert({row:i.row+1,column:0},d)}h&&o.autoOutdent(u,n,i.row)}},e.prototype.autoIndent=function(){var e,t,n=this.session,o=n.getMode();if(this.selection.isEmpty())e=0,t=n.doc.getLength()-1;else{var i=this.getSelectionRange();e=i.start.row,t=i.end.row}for(var r,s,a,l="",c="",u="",h=n.getTabString(),d=e;d<=t;d++)d>0&&(l=n.getState(d-1),c=n.getLine(d-1),u=o.getNextLineIndent(l,c,h)),r=n.getLine(d),u!==(s=o.$getIndent(r))&&(s.length>0&&(a=new g(d,0,d,s.length),n.remove(a)),u.length>0&&n.insert({row:d,column:0},u)),o.autoOutdent(l,n,d)},e.prototype.onTextInput=function(e,t){if(!t)return this.keyBinding.onTextInput(e);this.startOperation({command:{name:"insertstring"}});var n=this.applyComposition.bind(this,e,t);this.selection.rangeCount?this.forEachSelection(n):n(),this.endOperation()},e.prototype.applyComposition=function(e,t){var n;(t.extendLeft||t.extendRight)&&((n=this.selection.getRange()).start.column-=t.extendLeft,n.end.column+=t.extendRight,n.start.column<0&&(n.start.row--,n.start.column+=this.session.getLine(n.start.row).length+1),this.selection.setRange(n),e||n.isEmpty()||this.remove()),!e&&this.selection.isEmpty()||this.insert(e,!0),(t.restoreStart||t.restoreEnd)&&((n=this.selection.getRange()).start.column-=t.restoreStart,n.end.column-=t.restoreEnd,this.selection.setRange(n))},e.prototype.onCommandKey=function(e,t,n){return this.keyBinding.onCommandKey(e,t,n)},e.prototype.setOverwrite=function(e){this.session.setOverwrite(e)},e.prototype.getOverwrite=function(){return this.session.getOverwrite()},e.prototype.toggleOverwrite=function(){this.session.toggleOverwrite()},e.prototype.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},e.prototype.getScrollSpeed=function(){return this.getOption("scrollSpeed")},e.prototype.setDragDelay=function(e){this.setOption("dragDelay",e)},e.prototype.getDragDelay=function(){return this.getOption("dragDelay")},e.prototype.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},e.prototype.getSelectionStyle=function(){return this.getOption("selectionStyle")},e.prototype.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},e.prototype.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},e.prototype.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},e.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},e.prototype.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},e.prototype.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},e.prototype.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},e.prototype.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},e.prototype.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},e.prototype.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},e.prototype.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},e.prototype.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},e.prototype.setHighlightIndentGuides=function(e){this.renderer.setHighlightIndentGuides(e)},e.prototype.getHighlightIndentGuides=function(){return this.renderer.getHighlightIndentGuides()},e.prototype.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},e.prototype.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},e.prototype.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},e.prototype.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},e.prototype.setReadOnly=function(e){this.setOption("readOnly",e)},e.prototype.getReadOnly=function(){return this.getOption("readOnly")},e.prototype.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},e.prototype.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},e.prototype.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},e.prototype.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},e.prototype.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},e.prototype.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},e.prototype.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},e.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},e.prototype.remove=function(e){this.selection.isEmpty()&&("left"==e?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var n=this.session,o=n.getState(t.start.row),i=n.getMode().transformAction(o,"deletion",this,n,t);if(0===t.end.column){var r=n.getTextRange(t);if("\n"==r[r.length-1]){var s=n.getLine(t.end.row);/^\s+$/.test(s)&&(t.end.column=s.length)}}i&&(t=i)}this.session.remove(t),this.clearSelection()},e.prototype.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},e.prototype.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},e.prototype.setGhostText=function(e,t){this.session.widgetManager||(this.session.widgetManager=new w(this.session),this.session.widgetManager.attach(this)),this.renderer.setGhostText(e,t)},e.prototype.removeGhostText=function(){this.session.widgetManager&&this.renderer.removeGhostText()},e.prototype.transposeLetters=function(){if(this.selection.isEmpty()){var e=this.getCursorPosition(),t=e.column;if(0!==t){var n,o,i=this.session.getLine(e.row);tt.toLowerCase()?1:0}));var i=new g(0,0,0,0);for(o=e.first;o<=e.last;o++){var r=t.getLine(o);i.start.row=o,i.end.row=o,i.end.column=r.length,t.replace(i,n[o-e.first])}},e.prototype.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},e.prototype.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),n=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,n,e)},e.prototype.getNumberAt=function(e,t){var n=/[\-]?[0-9]+(?:\.[0-9]+)?/g;n.lastIndex=0;for(var o=this.session.getLine(e);n.lastIndex=t)return{value:i[0],start:i.index,end:i.index+i[0].length}}return null},e.prototype.modifyNumber=function(e){var t=this.selection.getCursor().row,n=this.selection.getCursor().column,o=new g(t,n-1,t,n),i=this.session.getTextRange(o);if(!isNaN(parseFloat(i))&&isFinite(i)){var r=this.getNumberAt(t,n);if(r){var s=r.value.indexOf(".")>=0?r.start+r.value.indexOf(".")+1:r.end,a=r.start+r.value.length-s,l=parseFloat(r.value);l*=Math.pow(10,a),s!==r.end&&n=a&&r<=l&&(n=t,c.selection.clearSelection(),c.moveCursorTo(e,a+o),c.selection.selectTo(e,l+o)),a=l}));for(var u,h=this.$toggleWordPairs,d=0;d=l&&s<=c&&d.match(/((?:https?|ftp):\/\/[\S]+)/)){a=d.replace(/[\s:.,'";}\]]+$/,"");break}l=c}}catch(e){n={error:e}}finally{try{h&&!h.done&&(i=u.return)&&i.call(u)}finally{if(n)throw n.error}}return a},e.prototype.openLink=function(){var e=this.selection.getCursor(),t=this.findLinkAt(e.row,e.column);return t&&window.open(t,"_blank"),null!=t},e.prototype.removeLines=function(){var e=this.$getSelectedRows();this.session.removeFullLines(e.first,e.last),this.clearSelection()},e.prototype.duplicateSelection=function(){var e=this.selection,t=this.session,n=e.getRange(),o=e.isBackwards();if(n.isEmpty()){var i=n.start.row;t.duplicateLines(i,i)}else{var r=o?n.start:n.end,s=t.insert(r,t.getTextRange(n),!1);n.start=r,n.end=s,e.setSelectionRange(n,o)}},e.prototype.moveLinesDown=function(){this.$moveLines(1,!1)},e.prototype.moveLinesUp=function(){this.$moveLines(-1,!1)},e.prototype.moveText=function(e,t,n){return this.session.moveText(e,t,n)},e.prototype.copyLinesUp=function(){this.$moveLines(-1,!0)},e.prototype.copyLinesDown=function(){this.$moveLines(1,!0)},e.prototype.$moveLines=function(e,t){var n,o,i=this.selection;if(!i.inMultiSelectMode||this.inVirtualSelectionMode){var r=i.toOrientedRange();n=this.$getSelectedRows(r),o=this.session.$moveLines(n.first,n.last,t?0:e),t&&-1==e&&(o=0),r.moveBy(o,0),i.fromOrientedRange(r)}else{var s=i.rangeList.ranges;i.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;for(var a=0,l=0,c=s.length,u=0;up+1)break;p=g.last}for(u--,a=this.session.$moveLines(d,p,t?0:e),t&&-1==e&&(h=u+1);h<=u;)s[h].moveBy(a,0),h++;t||(a=0),l+=a}i.fromOrientedRange(i.ranges[0]),i.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},e.prototype.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},e.prototype.onCompositionStart=function(e){this.renderer.showComposition(e)},e.prototype.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},e.prototype.onCompositionEnd=function(){this.renderer.hideComposition()},e.prototype.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},e.prototype.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},e.prototype.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},e.prototype.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},e.prototype.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},e.prototype.$moveByPage=function(e,t){var n=this.renderer,o=this.renderer.layerConfig,i=e*Math.floor(o.height/o.lineHeight);!0===t?this.selection.$moveSelection((function(){this.moveCursorBy(i,0)})):!1===t&&(this.selection.moveCursorBy(i,0),this.selection.clearSelection());var r=n.scrollTop;n.scrollBy(0,i*o.lineHeight),null!=t&&n.scrollCursorIntoView(null,.5),n.animateScrolling(r)},e.prototype.selectPageDown=function(){this.$moveByPage(1,!0)},e.prototype.selectPageUp=function(){this.$moveByPage(-1,!0)},e.prototype.gotoPageDown=function(){this.$moveByPage(1,!1)},e.prototype.gotoPageUp=function(){this.$moveByPage(-1,!1)},e.prototype.scrollPageDown=function(){this.$moveByPage(1)},e.prototype.scrollPageUp=function(){this.$moveByPage(-1)},e.prototype.scrollToRow=function(e){this.renderer.scrollToRow(e)},e.prototype.scrollToLine=function(e,t,n,o){this.renderer.scrollToLine(e,t,n,o)},e.prototype.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},e.prototype.getCursorPosition=function(){return this.selection.getCursor()},e.prototype.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},e.prototype.getSelectionRange=function(){return this.selection.getRange()},e.prototype.selectAll=function(){this.selection.selectAll()},e.prototype.clearSelection=function(){this.selection.clearSelection()},e.prototype.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},e.prototype.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},e.prototype.jumpToMatching=function(e,t){var n=this.getCursorPosition(),o=new b(this.session,n.row,n.column),i=o.getCurrentToken(),r=0;i&&-1!==i.type.indexOf("tag-name")&&(i=o.stepBackward());var s=i||o.stepForward();if(s){var a,l,c=!1,u={},h=n.column-s.start,d={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(s.value.match(/[{}()\[\]]/g)){for(;h1?u[s.value]++:"=0;--r)this.$tryReplace(n[r],e)&&o++;return this.selection.setSelectionRange(i),o},e.prototype.$tryReplace=function(e,t){var n=this.session.getTextRange(e);return null!==(t=this.$search.replace(n,t))?(e.end=this.session.replace(e,t),e):null},e.prototype.getLastSearchOptions=function(){return this.$search.getOptions()},e.prototype.find=function(e,t,n){t||(t={}),"string"==typeof e||e instanceof RegExp?t.needle=e:"object"==typeof e&&i.mixin(t,e);var o=this.selection.getRange();null==t.needle&&((e=this.session.getTextRange(o)||this.$search.$options.needle)||(o=this.session.getWordRange(o.start.row,o.start.column),e=this.session.getTextRange(o)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:o});var r=this.$search.find(this.session);return t.preventScroll?r:r?(this.revealRange(r,n),r):(t.backwards?o.start=o.end:o.end=o.start,void this.selection.setRange(o))},e.prototype.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},e.prototype.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},e.prototype.revealRange=function(e,t){this.session.unfold(e),this.selection.setSelectionRange(e);var n=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),!1!==t&&this.renderer.animateScrolling(n)},e.prototype.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},e.prototype.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},e.prototype.destroy=function(){this.$toDestroy&&(this.$toDestroy.forEach((function(e){e.destroy()})),this.$toDestroy=null),this.$mouseHandler&&this.$mouseHandler.destroy(),this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy(),this._$emitInputEvent&&this._$emitInputEvent.cancel(),this.removeAllListeners()},e.prototype.setAutoScrollEditorIntoView=function(e){if(e){var t,n=this,o=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var i=this.$scrollAnchor;i.style.cssText="position:absolute",this.container.insertBefore(i,this.container.firstChild);var r=this.on("changeSelection",(function(){o=!0})),s=this.renderer.on("beforeRender",(function(){o&&(t=n.renderer.container.getBoundingClientRect())})),a=this.renderer.on("afterRender",(function(){if(o&&t&&(n.isFocused()||n.searchBox&&n.searchBox.isFocused())){var e=n.renderer,r=e.$cursorLayer.$pixelPos,s=e.layerConfig,a=r.top-s.offset;null!=(o=r.top>=0&&a+t.top<0||!(r.topwindow.innerHeight)&&null)&&(i.style.top=a+"px",i.style.left=r.left+"px",i.style.height=s.lineHeight+"px",i.scrollIntoView(o)),o=t=null}}));this.setAutoScrollEditorIntoView=function(e){e||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",r),this.renderer.off("afterRender",a),this.renderer.off("beforeRender",s))}}},e.prototype.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;t&&(t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&"wide"!=e,r.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e)))},e.prototype.prompt=function(e,t,n){var o=this;v.loadModule("ace/ext/prompt",(function(i){i.prompt(o,e,t,n)}))},e}();S.$uid=0,S.prototype.curOp=null,S.prototype.prevOp={},S.prototype.$mergeableCommands=["backspace","del","insertstring"],S.prototype.$toggleWordPairs=[["first","last"],["true","false"],["yes","no"],["width","height"],["top","bottom"],["right","left"],["on","off"],["x","y"],["get","set"],["max","min"],["horizontal","vertical"],["show","hide"],["add","remove"],["up","down"],["before","after"],["even","odd"],["in","out"],["inside","outside"],["next","previous"],["increase","decrease"],["attach","detach"],["&&","||"],["==","!="]],i.implement(S.prototype,m),v.defineOptions(S.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.textInput.setReadOnly(e),this.$resetCursorStyle()},initialValue:!1},copyWithEmptySelection:{set:function(e){this.textInput.setCopyWithEmptySelection(e)},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},enableAutoIndent:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(e){this.session.setValue(e)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(e){this.setSession(e)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(e){this.renderer.$gutterLayer.setShowLineNumbers(e),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),e&&this.$relativeLineNumbers?E.attach(this):E.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(e){this.$showLineNumbers&&e?E.attach(this):E.detach(this)}},placeholder:{set:function(e){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var e=this.session&&(this.renderer.$composition||this.session.getLength()>1||this.session.getLine(0).length>0);if(e&&this.renderer.placeholderNode)this.renderer.off("afterRender",this.$updatePlaceholder),r.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(e||this.renderer.placeholderNode)!e&&this.renderer.placeholderNode&&(this.renderer.placeholderNode.textContent=this.$placeholder||"");else{this.renderer.on("afterRender",this.$updatePlaceholder),r.addCssClass(this.container,"ace_hasPlaceholder");var t=r.createElement("div");t.className="ace_placeholder",t.textContent=this.$placeholder||"",this.renderer.placeholderNode=t,this.renderer.content.appendChild(this.renderer.placeholderNode)}}.bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},enableKeyboardAccessibility:{set:function(e){var t,n={name:"blurTextInput",description:"Set focus to the editor content div to allow tabbing through the page",bindKey:"Esc",exec:function(e){e.blur(),e.renderer.scroller.focus()},readOnly:!0},o=function(e){if(e.target==this.renderer.scroller&&e.keyCode===$.enter){e.preventDefault();var t=this.getCursorPosition().row;this.isRowVisible(t)||this.scrollToLine(t,!0,!0),this.focus()}};e?(this.renderer.enableKeyboardAccessibility=!0,this.renderer.keyboardFocusClassName="ace_keyboard-focus",this.textInput.getElement().setAttribute("tabindex",-1),this.textInput.setNumberOfExtraLines(a.isWin?3:0),this.renderer.scroller.setAttribute("tabindex",0),this.renderer.scroller.setAttribute("role","group"),this.renderer.scroller.setAttribute("aria-roledescription",k("editor")),this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName),this.renderer.scroller.setAttribute("aria-label",k("Editor content, press Enter to start editing, press Escape to exit")),this.renderer.scroller.addEventListener("keyup",o.bind(this)),this.commands.addCommand(n),this.renderer.$gutter.setAttribute("tabindex",0),this.renderer.$gutter.setAttribute("aria-hidden",!1),this.renderer.$gutter.setAttribute("role","group"),this.renderer.$gutter.setAttribute("aria-roledescription",k("editor")),this.renderer.$gutter.setAttribute("aria-label",k("Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit")),this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName),this.renderer.content.setAttribute("aria-hidden",!0),t||(t=new x(this)),t.addListener()):(this.renderer.enableKeyboardAccessibility=!1,this.textInput.getElement().setAttribute("tabindex",0),this.textInput.setNumberOfExtraLines(0),this.renderer.scroller.setAttribute("tabindex",-1),this.renderer.scroller.removeAttribute("role"),this.renderer.scroller.removeAttribute("aria-roledescription"),this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName),this.renderer.scroller.removeAttribute("aria-label"),this.renderer.scroller.removeEventListener("keyup",o.bind(this)),this.commands.removeCommand(n),this.renderer.content.removeAttribute("aria-hidden"),this.renderer.$gutter.setAttribute("tabindex",-1),this.renderer.$gutter.setAttribute("aria-hidden",!0),this.renderer.$gutter.removeAttribute("role"),this.renderer.$gutter.removeAttribute("aria-roledescription"),this.renderer.$gutter.removeAttribute("aria-label"),this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName),t&&t.removeListener())},initialValue:!1},customScrollbar:"renderer",hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",highlightIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",useResizeObserver:"renderer",useSvgGutterIcons:"renderer",showFoldedAnnotations:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimeout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var E={getText:function(e,t){return(Math.abs(e.selection.lead.row-t)||t+1+(t<9?"·":""))+""},getWidth:function(e,t,n){return Math.max(t.toString().length,(n.lastRow+1).toString().length,2)*n.characterWidth},update:function(e,t){t.renderer.$loop.schedule(t.renderer.CHANGE_GUTTER)},attach:function(e){e.renderer.$gutterLayer.$renderer=this,e.on("changeSelection",this.update),this.update(null,e)},detach:function(e){e.renderer.$gutterLayer.$renderer==this&&(e.renderer.$gutterLayer.$renderer=null),e.off("changeSelection",this.update),this.update(null,e)}};t.Editor=S})),ace.define("ace/layer/lines",["require","exports","module","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=function(){function e(e,t){this.element=e,this.canvasHeight=t||5e5,this.element.style.height=2*this.canvasHeight+"px",this.cells=[],this.cellCache=[],this.$offsetCoefficient=0}return e.prototype.moveContainer=function(e){o.translate(this.element,0,-e.firstRowScreen*e.lineHeight%this.canvasHeight-e.offset*this.$offsetCoefficient)},e.prototype.pageChanged=function(e,t){return Math.floor(e.firstRowScreen*e.lineHeight/this.canvasHeight)!==Math.floor(t.firstRowScreen*t.lineHeight/this.canvasHeight)},e.prototype.computeLineTop=function(e,t,n){var o=t.firstRowScreen*t.lineHeight,i=Math.floor(o/this.canvasHeight);return n.documentToScreenRow(e,0)*t.lineHeight-i*this.canvasHeight},e.prototype.computeLineHeight=function(e,t,n){return t.lineHeight*n.getRowLineCount(e)},e.prototype.getLength=function(){return this.cells.length},e.prototype.get=function(e){return this.cells[e]},e.prototype.shift=function(){this.$cacheCell(this.cells.shift())},e.prototype.pop=function(){this.$cacheCell(this.cells.pop())},e.prototype.push=function(e){if(Array.isArray(e)){this.cells.push.apply(this.cells,e);for(var t=o.createFragment(this.element),n=0;nr&&(l=i.end.row+1,r=(i=t.getNextFoldLine(l,i))?i.start.row:1/0),l>o){for(;this.$lines.getLength()>a+1;)this.$lines.pop();break}(s=this.$lines.get(++a))?s.row=l:(s=this.$lines.createCell(l,e,this.session,u),this.$lines.push(s)),this.$renderCell(s,e,i,l),l++}this._signal("afterRender"),this.$updateGutterWidth(e)},e.prototype.$updateGutterWidth=function(e){var t=this.session,n=t.gutterRenderer||this.$renderer,o=t.$firstLineNumber,i=this.$lines.last()?this.$lines.last().text:"";(this.$fixedWidth||t.$useWrapMode)&&(i=t.getLength()+o-1);var r=n?n.getWidth(t,i,e):i.toString().length*e.characterWidth,s=this.$padding||this.$computePadding();(r+=s.left+s.right)===this.gutterWidth||isNaN(r)||(this.gutterWidth=r,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",r))},e.prototype.$updateCursorRow=function(){if(this.$highlightGutterLine){var e=this.session.selection.getCursor();this.$cursorRow!==e.row&&(this.$cursorRow=e.row)}},e.prototype.updateLineHighlight=function(){if(this.$highlightGutterLine){var e=this.session.selection.cursor.row;if(this.$cursorRow=e,!this.$cursorCell||this.$cursorCell.row!=e){this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var t=this.$lines.cells;this.$cursorCell=null;for(var n=0;n=this.$cursorRow){if(o.row>this.$cursorRow){var i=this.session.getFoldLine(this.$cursorRow);if(!(n>0&&i&&i.start.row==t[n-1].row))break;o=t[n-1]}o.element.className="ace_gutter-active-line "+o.element.className,this.$cursorCell=o;break}}}}},e.prototype.scrollLines=function(e){var t=this.config;if(this.config=e,this.$updateCursorRow(),this.$lines.pageChanged(t,e))return this.update(e);this.$lines.moveContainer(e);var n=Math.min(e.lastRow+e.gutterOffset,this.session.getLength()-1),o=this.oldLastRow;if(this.oldLastRow=n,!t||o0;i--)this.$lines.shift();if(o>n)for(i=this.session.getFoldedRowCount(n+1,o);i>0;i--)this.$lines.pop();e.firstRowo&&this.$lines.push(this.$renderLines(e,o+1,n)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(e)},e.prototype.$renderLines=function(e,t,n){for(var o=[],i=t,r=this.session.getNextFoldLine(i),s=r?r.start.row:1/0;i>s&&(i=r.end.row+1,s=(r=this.session.getNextFoldLine(i,r))?r.start.row:1/0),!(i>n);){var a=this.$lines.createCell(i,e,this.session,u);this.$renderCell(a,e,r,i),o.push(a),i++}return o},e.prototype.$renderCell=function(e,t,n,i){var r=e.element,s=this.session,a=r.childNodes[0],c=r.childNodes[1],u=r.childNodes[2],h=u.firstChild,d=s.$firstLineNumber,p=s.$breakpoints,g=s.$decorations,m=s.gutterRenderer||this.$renderer,f=this.$showFoldWidgets&&s.foldWidgets,y=n?n.start.row:Number.MAX_VALUE,v=t.lineHeight+"px",b=this.$useSvgGutterIcons?"ace_gutter-cell_svg-icons ":"ace_gutter-cell ",w=this.$useSvgGutterIcons?"ace_icon_svg":"ace_icon",x=(m?m.getText(s,i):i+d).toString();if(this.$highlightGutterLine&&(i==this.$cursorRow||n&&i=y&&this.$cursorRow<=n.end.row)&&(b+="ace_gutter-active-line ",this.$cursorCell!=e&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=e)),p[i]&&(b+=p[i]),g[i]&&(b+=g[i]),this.$annotations[i]&&i!==y&&(b+=this.$annotations[i].className),f){var k=f[i];null==k&&(k=f[i]=s.getFoldWidget(i))}if(k){var C="ace_fold-widget ace_"+k,$="start"==k&&i==y&&in.right-t.right?"foldWidgets":void 0},e}();function u(e){var t=document.createTextNode("");e.appendChild(t);var n=o.createElement("span");e.appendChild(n);var i=o.createElement("span");e.appendChild(i);var r=o.createElement("span");return i.appendChild(r),e}c.prototype.$fixedWidth=!1,c.prototype.$highlightGutterLine=!0,c.prototype.$renderer="",c.prototype.$showLineNumbers=!0,c.prototype.$showFoldWidgets=!0,i.implement(c.prototype,s),t.Gutter=c})),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("../range").Range,i=e("../lib/dom"),r=function(){function e(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)}return e.prototype.setPadding=function(e){this.$padding=e},e.prototype.setSession=function(e){this.session=e},e.prototype.setMarkers=function(e){this.markers=e},e.prototype.elt=function(e,t){var n=-1!=this.i&&this.element.childNodes[this.i];n?this.i++:(n=document.createElement("div"),this.element.appendChild(n),this.i=-1),n.style.cssText=t,n.className=e},e.prototype.update=function(e){if(e){var t;for(var n in this.config=e,this.i=0,this.markers){var o=this.markers[n];if(o.range){var i=o.range.clipRows(e.firstRow,e.lastRow);if(!i.isEmpty())if(i=i.toScreenRange(this.session),o.renderer){var r=this.$getTop(i.start.row,e),s=this.$padding+i.start.column*e.characterWidth;o.renderer(t,i,s,r,e)}else"fullLine"==o.type?this.drawFullLineMarker(t,i,o.clazz,e):"screenLine"==o.type?this.drawScreenLineMarker(t,i,o.clazz,e):i.isMultiLine()?"text"==o.type?this.drawTextMarker(t,i,o.clazz,e):this.drawMultiLineMarker(t,i,o.clazz,e):this.drawSingleLineMarker(t,i,o.clazz+" ace_start ace_br15",e)}else o.update(t,this,this.session,e)}if(-1!=this.i)for(;this.id?4:0)|(c==l?8:0)),i,c==l?0:1,r)},e.prototype.drawMultiLineMarker=function(e,t,n,o,i){var r=this.$padding,s=o.lineHeight,a=this.$getTop(t.start.row,o),l=r+t.start.column*o.characterWidth;if(i=i||"",this.session.$bidiHandler.isBidiRow(t.start.row)?((c=t.clone()).end.row=c.start.row,c.end.column=this.session.getLine(c.start.row).length,this.drawBidiSingleLineMarker(e,c,n+" ace_br1 ace_start",o,null,i)):this.elt(n+" ace_br1 ace_start","height:"+s+"px;right:0;top:"+a+"px;left:"+l+"px;"+(i||"")),this.session.$bidiHandler.isBidiRow(t.end.row)){var c;(c=t.clone()).start.row=c.end.row,c.start.column=0,this.drawBidiSingleLineMarker(e,c,n+" ace_br12",o,null,i)}else{a=this.$getTop(t.end.row,o);var u=t.end.column*o.characterWidth;this.elt(n+" ace_br12","height:"+s+"px;width:"+u+"px;top:"+a+"px;left:"+r+"px;"+(i||""))}if(!((s=(t.end.row-t.start.row-1)*o.lineHeight)<=0)){a=this.$getTop(t.start.row+1,o);var h=(t.start.column?1:0)|(t.end.column?0:8);this.elt(n+(h?" ace_br"+h:""),"height:"+s+"px;right:0;top:"+a+"px;left:"+r+"px;"+(i||""))}},e.prototype.drawSingleLineMarker=function(e,t,n,o,i,r){if(this.session.$bidiHandler.isBidiRow(t.start.row))return this.drawBidiSingleLineMarker(e,t,n,o,i,r);var s=o.lineHeight,a=(t.end.column+(i||0)-t.start.column)*o.characterWidth,l=this.$getTop(t.start.row,o),c=this.$padding+t.start.column*o.characterWidth;this.elt(n,"height:"+s+"px;width:"+a+"px;top:"+l+"px;left:"+c+"px;"+(r||""))},e.prototype.drawBidiSingleLineMarker=function(e,t,n,o,i,r){var s=o.lineHeight,a=this.$getTop(t.start.row,o),l=this.$padding;this.session.$bidiHandler.getSelections(t.start.column,t.end.column).forEach((function(e){this.elt(n,"height:"+s+"px;width:"+(e.width+(i||0))+"px;top:"+a+"px;left:"+(l+e.left)+"px;"+(r||""))}),this)},e.prototype.drawFullLineMarker=function(e,t,n,o,i){var r=this.$getTop(t.start.row,o),s=o.lineHeight;t.start.row!=t.end.row&&(s+=this.$getTop(t.end.row,o)-r),this.elt(n,"height:"+s+"px;top:"+r+"px;left:0;right:0;"+(i||""))},e.prototype.drawScreenLineMarker=function(e,t,n,o,i){var r=this.$getTop(t.start.row,o),s=o.lineHeight;this.elt(n,"height:"+s+"px;top:"+r+"px;left:0;right:0;"+(i||""))},e}();r.prototype.$padding=0,t.Marker=r})),ace.define("ace/layer/text_util",["require","exports","module"],(function(e,t,n){var o=new Set(["text","rparen","lparen"]);t.isTextToken=function(e){return o.has(e)}})),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter","ace/config","ace/layer/text_util"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("../lib/dom"),r=e("../lib/lang"),s=e("./lines").Lines,a=e("../lib/event_emitter").EventEmitter,l=e("../config").nls,c=e("./text_util").isTextToken,u=function(){function e(e){this.dom=i,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new s(this.element)}return e.prototype.$updateEolChar=function(){var e=this.session.doc,t="\n"==e.getNewLineCharacter()&&"windows"!=e.getNewLineMode()?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=t)return this.EOL_CHAR=t,!0},e.prototype.setPadding=function(e){this.$padding=e,this.element.style.margin="0 "+e+"px"},e.prototype.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},e.prototype.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},e.prototype.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},e.prototype.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},e.prototype.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},e.prototype.setSession=function(e){this.session=e,e&&this.$computeTabString()},e.prototype.setShowInvisibles=function(e){return this.showInvisibles!=e&&(this.showInvisibles=e,"string"==typeof e?(this.showSpaces=/tab/i.test(e),this.showTabs=/space/i.test(e),this.showEOL=/eol/i.test(e)):this.showSpaces=this.showTabs=this.showEOL=e,this.$computeTabString(),!0)},e.prototype.setDisplayIndentGuides=function(e){return this.displayIndentGuides!=e&&(this.displayIndentGuides=e,this.$computeTabString(),!0)},e.prototype.setHighlightIndentGuides=function(e){return this.$highlightIndentGuides!==e&&(this.$highlightIndentGuides=e,e)},e.prototype.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var t=this.$tabStrings=[0],n=1;nu&&(a=l.end.row+1,u=(l=this.session.getNextFoldLine(a,l))?l.start.row:1/0),!(a>i);){var h=r[s++];if(h){this.dom.removeChildren(h),this.$renderLine(h,a,a==u&&l),c&&(h.style.top=this.$lines.computeLineTop(a,e,this.session)+"px");var d=e.lineHeight*this.session.getRowLength(a)+"px";h.style.height!=d&&(c=!0,h.style.height=d)}a++}if(c)for(;s0;i--)this.$lines.shift();if(t.lastRow>e.lastRow)for(i=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);i>0;i--)this.$lines.pop();e.firstRowt.lastRow&&this.$lines.push(this.$renderLinesFragment(e,t.lastRow+1,e.lastRow)),this.$highlightIndentGuide()},e.prototype.$renderLinesFragment=function(e,t,n){for(var o=[],r=t,s=this.session.getNextFoldLine(r),a=s?s.start.row:1/0;r>a&&(r=s.end.row+1,a=(s=this.session.getNextFoldLine(r,s))?s.start.row:1/0),!(r>n);){var l=this.$lines.createCell(r,e,this.session),c=l.element;this.dom.removeChildren(c),i.setStyle(c.style,"height",this.$lines.computeLineHeight(r,e,this.session)+"px"),i.setStyle(c.style,"top",this.$lines.computeLineTop(r,e,this.session)+"px"),this.$renderLine(c,r,r==a&&s),this.$useLineGroups()?c.className="ace_line_group":c.className="ace_line",o.push(l),r++}return o},e.prototype.update=function(e){this.$lines.moveContainer(e),this.config=e;for(var t=e.firstRow,n=e.lastRow,o=this.$lines;o.getLength();)o.pop();o.push(this.$renderLinesFragment(e,t,n))},e.prototype.$renderToken=function(e,t,n,o){for(var i,s=this,a=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC\u2066\u2067\u2068\u202A\u202B\u202D\u202E\u202C\u2069]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,u=this.dom.createFragment(this.element),h=0;i=a.exec(o);){var d=i[1],p=i[2],g=i[3],m=i[4],f=i[5];if(s.showSpaces||!p){var y=h!=i.index?o.slice(h,i.index):"";if(h=i.index+i[0].length,y&&u.appendChild(this.dom.createTextNode(y,this.element)),d){var v=s.session.getScreenTabSize(t+i.index);u.appendChild(s.$tabStrings[v].cloneNode(!0)),t+=v-1}else p?s.showSpaces?((w=this.dom.createElement("span")).className="ace_invisible ace_invisible_space",w.textContent=r.stringRepeat(s.SPACE_CHAR,p.length),u.appendChild(w)):u.appendChild(this.dom.createTextNode(p,this.element)):g?((w=this.dom.createElement("span")).className="ace_invisible ace_invisible_space ace_invalid",w.textContent=r.stringRepeat(s.SPACE_CHAR,g.length),u.appendChild(w)):m?(t+=1,(w=this.dom.createElement("span")).style.width=2*s.config.characterWidth+"px",w.className=s.showSpaces?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",w.textContent=s.showSpaces?s.SPACE_CHAR:m,u.appendChild(w)):f&&(t+=1,(w=this.dom.createElement("span")).style.width=2*s.config.characterWidth+"px",w.className="ace_cjk",w.textContent=f,u.appendChild(w))}}if(u.appendChild(this.dom.createTextNode(h?o.slice(h):o,this.element)),c(n.type))e.appendChild(u);else{var b="ace_"+n.type.replace(/\./g," ace_"),w=this.dom.createElement("span");"fold"==n.type&&(w.style.width=n.value.length*this.config.characterWidth+"px",w.setAttribute("title",l("Unfold code"))),w.className=b,w.appendChild(u),e.appendChild(w)}return t+o.length},e.prototype.renderIndentGuide=function(e,t,n){var o=t.search(this.$indentGuideRe);if(o<=0||o>=n)return t;if(" "==t[0]){for(var i=(o-=o%this.tabSize)/this.tabSize,r=0;ri[r].start.row?this.$highlightIndentGuideMarker.dir=-1:this.$highlightIndentGuideMarker.dir=1;break}if(!this.$highlightIndentGuideMarker.end&&""!==e[t.row]&&t.column===e[t.row].length)for(this.$highlightIndentGuideMarker.dir=1,r=t.row+1;r0)for(var o=0;o=this.$highlightIndentGuideMarker.start+1){if(o.row>=this.$highlightIndentGuideMarker.end)break;this.$setIndentGuideActive(o,t)}}else for(n=e.length-1;n>=0;n--)if(o=e[n],this.$highlightIndentGuideMarker.end&&o.row=s;)a=this.$renderToken(l,a,u,h.substring(0,s-o)),h=h.substring(s-o),o=s,l=this.$createLineElement(),e.appendChild(l),l.appendChild(this.dom.createTextNode(r.stringRepeat(" ",n.indent),this.element)),a=0,s=n[++i]||Number.MAX_VALUE;0!=h.length&&(o+=h.length,a=this.$renderToken(l,a,u,h))}}n[n.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(l,a,null,"",!0)},e.prototype.$renderSimpleLine=function(e,t){for(var n=0,o=0;othis.MAX_LINE_LENGTH)return this.$renderOverflowMessage(e,n,i,r);n=this.$renderToken(e,n,i,r)}}},e.prototype.$renderOverflowMessage=function(e,t,n,o,i){n&&this.$renderToken(e,t,n,o.slice(0,this.MAX_LINE_LENGTH-t));var r=this.dom.createElement("span");r.className="ace_inline_button ace_keyword ace_toggle_wrap",r.textContent=i?"":"",e.appendChild(r)},e.prototype.$renderLine=function(e,t,n){if(n||0==n||(n=this.session.getFoldLine(t)),n)var o=this.$getFoldLineTokens(t,n);else o=this.session.getTokens(t);var i=e;if(o.length){var r=this.session.getRowSplitData(t);r&&r.length?(this.$renderWrappedLine(e,o,r),i=e.lastChild):(i=e,this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i)),this.$renderSimpleLine(i,o))}else this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i));if(this.showEOL&&i){n&&(t=n.end.row);var s=this.dom.createElement("span");s.className="ace_invisible ace_invisible_eol",s.textContent=t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,i.appendChild(s)}},e.prototype.$getFoldLineTokens=function(e,t){var n=this.session,o=[],i=n.getTokens(e);return t.walk((function(e,t,r,s,a){null!=e?o.push({type:"fold",value:e}):(a&&(i=n.getTokens(t)),i.length&&function(e,t,n){for(var i=0,r=0;r+e[i].value.lengthn-t&&(s=s.substring(0,n-t)),o.push({type:e[i].type,value:s}),r=t+s.length,i+=1);rn?o.push({type:e[i].type,value:s.substring(0,n-r)}):o.push(e[i]),r+=s.length,i+=1}}(i,s,r))}),t.end.row,this.session.getLine(t.end.row).length),o},e.prototype.$useLineGroups=function(){return this.session.getUseWrapMode()},e}();u.prototype.EOF_CHAR="¶",u.prototype.EOL_CHAR_LF="¬",u.prototype.EOL_CHAR_CRLF="¤",u.prototype.EOL_CHAR=u.prototype.EOL_CHAR_LF,u.prototype.TAB_CHAR="—",u.prototype.SPACE_CHAR="·",u.prototype.$padding=0,u.prototype.MAX_LINE_LENGTH=1e4,u.prototype.showInvisibles=!1,u.prototype.showSpaces=!1,u.prototype.showTabs=!1,u.prototype.showEOL=!1,u.prototype.displayIndentGuides=!0,u.prototype.$highlightIndentGuides=!0,u.prototype.$tabStrings=[],u.prototype.destroy={},u.prototype.onChangeTabSize=u.prototype.$computeTabString,o.implement(u.prototype,a),t.Text=u})),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=function(){function e(e){this.element=o.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),o.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)}return e.prototype.$updateOpacity=function(e){for(var t=this.cursors,n=t.length;n--;)o.setStyle(t[n].style,"opacity",e?"":"0")},e.prototype.$startCssAnimation=function(){for(var e=this.cursors,t=e.length;t--;)e[t].style.animationDuration=this.blinkInterval+"ms";this.$isAnimating=!0,setTimeout(function(){this.$isAnimating&&o.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},e.prototype.$stopCssAnimation=function(){this.$isAnimating=!1,o.removeCssClass(this.element,"ace_animate-blinking")},e.prototype.setPadding=function(e){this.$padding=e},e.prototype.setSession=function(e){this.session=e},e.prototype.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},e.prototype.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},e.prototype.setSmoothBlinking=function(e){e!=this.smoothBlinking&&(this.smoothBlinking=e,o.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.restartTimer())},e.prototype.addCursor=function(){var e=o.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},e.prototype.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},e.prototype.hideCursor=function(){this.isVisible=!1,o.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},e.prototype.showCursor=function(){this.isVisible=!0,o.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},e.prototype.restartTimer=function(){var e=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&(this.$isSmoothBlinking=!1,o.removeCssClass(this.element,"ace_smooth-blinking")),e(!0),this.isBlinking&&this.blinkInterval&&this.isVisible)if(this.smoothBlinking&&(this.$isSmoothBlinking=!0,setTimeout(function(){this.$isSmoothBlinking&&o.addCssClass(this.element,"ace_smooth-blinking")}.bind(this))),o.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var t=function(){this.timeoutId=setTimeout((function(){e(!1)}),.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval((function(){e(!0),t()}),this.blinkInterval),t()}else this.$stopCssAnimation()},e.prototype.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var n=this.session.documentToScreenPosition(e);return{left:this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e.row)?this.session.$bidiHandler.getPosLeft(n.column):n.column*this.config.characterWidth),top:(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight}},e.prototype.isCursorInView=function(e,t){return e.top>=0&&e.tope.height+e.offset||s.top<0)&&n>1)){var a=this.cursors[i++]||this.addCursor(),l=a.style;this.drawCursor?this.drawCursor(a,s,e,t[n],this.session):this.isCursorInView(s,e)?(o.setStyle(l,"display","block"),o.translate(a,s.left,s.top),o.setStyle(l,"width",Math.round(e.characterWidth)+"px"),o.setStyle(l,"height",e.lineHeight+"px")):o.setStyle(l,"display","none")}}for(;this.cursors.length>i;)this.removeCursor();var c=this.session.getOverwrite();this.$setOverwrite(c),this.$pixelPos=s,this.restartTimer()},e.prototype.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?o.addCssClass(this.element,"ace_overwrite-cursors"):o.removeCssClass(this.element,"ace_overwrite-cursors"))},e.prototype.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)},e}();i.prototype.$padding=0,i.prototype.drawCursor=null,t.Cursor=i})),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("./lib/oop"),s=e("./lib/dom"),a=e("./lib/event"),l=e("./lib/event_emitter").EventEmitter,c=32768,u=function(){function e(e,t){this.element=s.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+t,this.inner=s.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent=" ",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addListener(this.element,"scroll",this.onScroll.bind(this)),a.addListener(this.element,"mousedown",a.preventDefault)}return e.prototype.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1},e}();r.implement(u.prototype,l);var h=function(e){function t(t,n){var o=e.call(this,t,"-v")||this;return o.scrollTop=0,o.scrollHeight=0,n.$scrollbarWidth=o.width=s.scrollbarWidth(t.ownerDocument),o.inner.style.width=o.element.style.width=(o.width||15)+5+"px",o.$minWidth=0,o}return i(t,e),t.prototype.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,1!=this.coeff){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},t.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},t.prototype.setHeight=function(e){this.element.style.height=e+"px"},t.prototype.setScrollHeight=function(e){this.scrollHeight=e,e>c?(this.coeff=c/e,e=c):1!=this.coeff&&(this.coeff=1),this.inner.style.height=e+"px"},t.prototype.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)},t}(u);h.prototype.setInnerHeight=h.prototype.setScrollHeight;var d=function(e){function t(t,n){var o=e.call(this,t,"-h")||this;return o.scrollLeft=0,o.height=n.$scrollbarWidth,o.inner.style.height=o.element.style.height=(o.height||15)+5+"px",o}return i(t,e),t.prototype.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},t.prototype.getHeight=function(){return this.isVisible?this.height:0},t.prototype.setWidth=function(e){this.element.style.width=e+"px"},t.prototype.setInnerWidth=function(e){this.inner.style.width=e+"px"},t.prototype.setScrollWidth=function(e){this.inner.style.width=e+"px"},t.prototype.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)},t}(u);t.ScrollBar=h,t.ScrollBarV=h,t.ScrollBarH=d,t.VScrollBar=h,t.HScrollBar=d})),ace.define("ace/scrollbar_custom",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("./lib/oop"),s=e("./lib/dom"),a=e("./lib/event"),l=e("./lib/event_emitter").EventEmitter;s.importCssString(".ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{\n position: absolute;\n background: rgba(128, 128, 128, 0.6);\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n border: 1px solid #bbb;\n border-radius: 2px;\n z-index: 8;\n}\n.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h {\n position: absolute;\n z-index: 6;\n background: none;\n overflow: hidden!important;\n}\n.ace_editor>.ace_sb-v {\n z-index: 6;\n right: 0;\n top: 0;\n width: 12px;\n}\n.ace_editor>.ace_sb-v div {\n z-index: 8;\n right: 0;\n width: 100%;\n}\n.ace_editor>.ace_sb-h {\n bottom: 0;\n left: 0;\n height: 12px;\n}\n.ace_editor>.ace_sb-h div {\n bottom: 0;\n height: 100%;\n}\n.ace_editor>.ace_sb_grabbed {\n z-index: 8;\n background: #000;\n}","ace_scrollbar.css",!1);var c=function(){function e(e,t){this.element=s.createElement("div"),this.element.className="ace_sb"+t,this.inner=s.createElement("div"),this.inner.className="",this.element.appendChild(this.inner),this.VScrollWidth=12,this.HScrollHeight=12,e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addMultiMouseDownListener(this.element,[500,300,300],this,"onMouseDown")}return e.prototype.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1},e}();r.implement(c.prototype,l);var u=function(e){function t(t,n){var o=e.call(this,t,"-v")||this;return o.scrollTop=0,o.scrollHeight=0,o.parent=t,o.width=o.VScrollWidth,o.renderer=n,o.inner.style.width=o.element.style.width=(o.width||15)+"px",o.$minWidth=0,o}return i(t,e),t.prototype.onMouseDown=function(e,t){if("mousedown"===e&&0===a.getButton(t)&&2!==t.detail){if(t.target===this.inner){var n=this,o=t.clientY,i=t.clientY,r=this.thumbTop;a.capture(this.inner,(function(e){o=e.clientY}),(function(){clearInterval(s)}));var s=setInterval((function(){if(void 0!==o){var e=n.scrollTopFromThumbTop(r+o-i);e!==n.scrollTop&&n._emit("scroll",{data:e})}}),20);return a.preventDefault(t)}var l=t.clientY-this.element.getBoundingClientRect().top-this.thumbHeight/2;return this._emit("scroll",{data:this.scrollTopFromThumbTop(l)}),a.preventDefault(t)}},t.prototype.getHeight=function(){return this.height},t.prototype.scrollTopFromThumbTop=function(e){var t=e*(this.pageHeight-this.viewHeight)/(this.slideHeight-this.thumbHeight);return(t|=0)<0?t=0:t>this.pageHeight-this.viewHeight&&(t=this.pageHeight-this.viewHeight),t},t.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},t.prototype.setHeight=function(e){this.height=Math.max(0,e),this.slideHeight=this.height,this.viewHeight=this.height,this.setScrollHeight(this.pageHeight,!0)},t.prototype.setScrollHeight=function(e,t){(this.pageHeight!==e||t)&&(this.pageHeight=e,this.thumbHeight=this.slideHeight*this.viewHeight/this.pageHeight,this.thumbHeight>this.slideHeight&&(this.thumbHeight=this.slideHeight),this.thumbHeight<15&&(this.thumbHeight=15),this.inner.style.height=this.thumbHeight+"px",this.scrollTop>this.pageHeight-this.viewHeight&&(this.scrollTop=this.pageHeight-this.viewHeight,this.scrollTop<0&&(this.scrollTop=0),this._emit("scroll",{data:this.scrollTop})))},t.prototype.setScrollTop=function(e){this.scrollTop=e,e<0&&(e=0),this.thumbTop=e*(this.slideHeight-this.thumbHeight)/(this.pageHeight-this.viewHeight),this.inner.style.top=this.thumbTop+"px"},t}(c);u.prototype.setInnerHeight=u.prototype.setScrollHeight;var h=function(e){function t(t,n){var o=e.call(this,t,"-h")||this;return o.scrollLeft=0,o.scrollWidth=0,o.height=o.HScrollHeight,o.inner.style.height=o.element.style.height=(o.height||12)+"px",o.renderer=n,o}return i(t,e),t.prototype.onMouseDown=function(e,t){if("mousedown"===e&&0===a.getButton(t)&&2!==t.detail){if(t.target===this.inner){var n=this,o=t.clientX,i=t.clientX,r=this.thumbLeft;a.capture(this.inner,(function(e){o=e.clientX}),(function(){clearInterval(s)}));var s=setInterval((function(){if(void 0!==o){var e=n.scrollLeftFromThumbLeft(r+o-i);e!==n.scrollLeft&&n._emit("scroll",{data:e})}}),20);return a.preventDefault(t)}var l=t.clientX-this.element.getBoundingClientRect().left-this.thumbWidth/2;return this._emit("scroll",{data:this.scrollLeftFromThumbLeft(l)}),a.preventDefault(t)}},t.prototype.getHeight=function(){return this.isVisible?this.height:0},t.prototype.scrollLeftFromThumbLeft=function(e){var t=e*(this.pageWidth-this.viewWidth)/(this.slideWidth-this.thumbWidth);return(t|=0)<0?t=0:t>this.pageWidth-this.viewWidth&&(t=this.pageWidth-this.viewWidth),t},t.prototype.setWidth=function(e){this.width=Math.max(0,e),this.element.style.width=this.width+"px",this.slideWidth=this.width,this.viewWidth=this.width,this.setScrollWidth(this.pageWidth,!0)},t.prototype.setScrollWidth=function(e,t){(this.pageWidth!==e||t)&&(this.pageWidth=e,this.thumbWidth=this.slideWidth*this.viewWidth/this.pageWidth,this.thumbWidth>this.slideWidth&&(this.thumbWidth=this.slideWidth),this.thumbWidth<15&&(this.thumbWidth=15),this.inner.style.width=this.thumbWidth+"px",this.scrollLeft>this.pageWidth-this.viewWidth&&(this.scrollLeft=this.pageWidth-this.viewWidth,this.scrollLeft<0&&(this.scrollLeft=0),this._emit("scroll",{data:this.scrollLeft})))},t.prototype.setScrollLeft=function(e){this.scrollLeft=e,e<0&&(e=0),this.thumbLeft=e*(this.slideWidth-this.thumbWidth)/(this.pageWidth-this.viewWidth),this.inner.style.left=this.thumbLeft+"px"},t}(c);h.prototype.setInnerWidth=h.prototype.setScrollWidth,t.ScrollBar=u,t.ScrollBarV=u,t.ScrollBarH=h,t.VScrollBar=u,t.HScrollBar=h})),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],(function(e,t,n){"use strict";var o=e("./lib/event"),i=function(){function e(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=t||window;var n=this;this._flush=function(e){n.pending=!1;var t=n.changes;if(t&&(o.blockIdle(100),n.changes=0,n.onRender(t)),n.changes){if(n.$recursionLimit--<0)return;n.schedule()}else n.$recursionLimit=2}}return e.prototype.schedule=function(e){this.changes=this.changes|e,this.changes&&!this.pending&&(o.nextFrame(this._flush),this.pending=!0)},e.prototype.clear=function(e){var t=this.changes;return this.changes=0,t},e}();t.RenderLoop=i})),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],(function(e,t,n){var o=e("../lib/oop"),i=e("../lib/dom"),r=e("../lib/lang"),s=e("../lib/event"),a=e("../lib/useragent"),l=e("../lib/event_emitter").EventEmitter,c=512,u="function"==typeof ResizeObserver,h=200,d=function(){function e(e){this.el=i.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=i.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=i.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),this.$measureNode.textContent=r.stringRepeat("X",c),this.$characterSize={width:0,height:0},u?this.$addObserver():this.checkForSizeChanges()}return e.prototype.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",a.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},e.prototype.checkForSizeChanges=function(e){if(void 0===e&&(e=this.$measureSizes()),e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},e.prototype.$addObserver=function(){var e=this;this.$observer=new window.ResizeObserver((function(t){e.checkForSizeChanges()})),this.$observer.observe(this.$measureNode)},e.prototype.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=s.onIdle((function t(){e.checkForSizeChanges(),s.onIdle(t,500)}),500)},e.prototype.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},e.prototype.$measureSizes=function(e){var t={height:(e||this.$measureNode).clientHeight,width:(e||this.$measureNode).clientWidth/c};return 0===t.width||0===t.height?null:t},e.prototype.$measureCharWidth=function(e){return this.$main.textContent=r.stringRepeat(e,c),this.$main.getBoundingClientRect().width/c},e.prototype.getCharacterWidth=function(e){var t=this.charSizes[e];return void 0===t&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},e.prototype.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},e.prototype.$getZoom=function(e){return e&&e.parentElement?(window.getComputedStyle(e).zoom||1)*this.$getZoom(e.parentElement):1},e.prototype.$initTransformMeasureNodes=function(){var e=function(e,t){return["div",{style:"position: absolute;top:"+e+"px;left:"+t+"px;"}]};this.els=i.buildDom([e(0,0),e(h,0),e(0,h),e(h,h)],this.el)},e.prototype.transformCoordinates=function(e,t){function n(e,t,n){var o=e[1]*t[0]-e[0]*t[1];return[(-t[1]*n[0]+t[0]*n[1])/o,(+e[1]*n[0]-e[0]*n[1])/o]}function o(e,t){return[e[0]-t[0],e[1]-t[1]]}function i(e,t){return[e[0]+t[0],e[1]+t[1]]}function r(e,t){return[e*t[0],e*t[1]]}function s(e){var t=e.getBoundingClientRect();return[t.left,t.top]}e&&(e=r(1/this.$getZoom(this.el),e)),this.els||this.$initTransformMeasureNodes();var a=s(this.els[0]),l=s(this.els[1]),c=s(this.els[2]),u=s(this.els[3]),d=n(o(u,l),o(u,c),o(i(l,c),i(u,a))),p=r(1+d[0],o(l,a)),g=r(1+d[1],o(c,a));if(t){var m=t,f=d[0]*m[0]/h+d[1]*m[1]/h+1,y=i(r(m[0],p),r(m[1],g));return i(r(1/f/h,y),a)}var v=o(e,a),b=n(o(p,r(d[0],v)),o(g,r(d[1],v)),v);return r(h,b)},e}();d.prototype.$characterSize={width:0,height:0},o.implement(d.prototype,l),t.FontMetrics=d})),ace.define("ace/css/editor-css",["require","exports","module"],(function(e,t,n){n.exports='\n.ace_br1 {border-top-left-radius : 3px;}\n.ace_br2 {border-top-right-radius : 3px;}\n.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\n.ace_br4 {border-bottom-right-radius: 3px;}\n.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\n.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\n.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\n.ace_br8 {border-bottom-left-radius : 3px;}\n.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\n.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\n.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n\n\n.ace_editor {\n position: relative;\n overflow: hidden;\n padding: 0;\n font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'Source Code Pro\', \'source-code-pro\', monospace;\n direction: ltr;\n text-align: left;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\n.ace_scroller {\n position: absolute;\n overflow: hidden;\n top: 0;\n bottom: 0;\n background-color: inherit;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n cursor: text;\n}\n\n.ace_content {\n position: absolute;\n box-sizing: border-box;\n min-width: 100%;\n contain: style size layout;\n font-variant-ligatures: no-common-ligatures;\n}\n\n.ace_keyboard-focus:focus {\n box-shadow: inset 0 0 0 2px #5E9ED6;\n outline: none;\n}\n\n.ace_dragging .ace_scroller:before{\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n content: \'\';\n background: rgba(250, 250, 250, 0.01);\n z-index: 1000;\n}\n.ace_dragging.ace_dark .ace_scroller:before{\n background: rgba(0, 0, 0, 0.01);\n}\n\n.ace_gutter {\n position: absolute;\n overflow : hidden;\n width: auto;\n top: 0;\n bottom: 0;\n left: 0;\n cursor: default;\n z-index: 4;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n contain: style size layout;\n}\n\n.ace_gutter-active-line {\n position: absolute;\n left: 0;\n right: 0;\n}\n\n.ace_scroller.ace_scroll-left:after {\n content: "";\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\n pointer-events: none;\n}\n\n.ace_gutter-cell, .ace_gutter-cell_svg-icons {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n padding-left: 19px;\n padding-right: 6px;\n background-repeat: no-repeat;\n}\n\n.ace_gutter-cell_svg-icons .ace_gutter_annotation {\n margin-left: -14px;\n float: left;\n}\n\n.ace_gutter-cell .ace_gutter_annotation {\n margin-left: -19px;\n float: left;\n}\n\n.ace_gutter-cell.ace_error, .ace_icon.ace_error, .ace_icon.ace_error_fold {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_warning, .ace_icon.ace_warning, .ace_icon.ace_warning_fold {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_info, .ace_icon.ace_info {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n.ace_dark .ace_gutter-cell.ace_info, .ace_dark .ace_icon.ace_info {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");\n}\n\n.ace_icon_svg.ace_error {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJyZWQiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KPGNpcmNsZSBmaWxsPSJub25lIiBjeD0iOCIgY3k9IjgiIHI9IjciIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPGxpbmUgeDE9IjExIiB5MT0iNSIgeDI9IjUiIHkyPSIxMSIvPgo8bGluZSB4MT0iMTEiIHkxPSIxMSIgeDI9IjUiIHkyPSI1Ii8+CjwvZz4KPC9zdmc+");\n background-color: crimson;\n}\n.ace_icon_svg.ace_warning {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJkYXJrb3JhbmdlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+Cjxwb2x5Z29uIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGZpbGw9Im5vbmUiIHBvaW50cz0iOCAxIDE1IDE1IDEgMTUgOCAxIi8+CjxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iMC4wMSIgaGVpZ2h0PSIwLjAxIi8+CjxsaW5lIHgxPSI4IiB5MT0iNiIgeDI9IjgiIHkyPSIxMCIvPgo8L2c+Cjwvc3ZnPg==");\n background-color: darkorange;\n}\n.ace_icon_svg.ace_info {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJibHVlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CjxjaXJjbGUgZmlsbD0ibm9uZSIgY3g9IjgiIGN5PSI4IiByPSI3IiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjxwb2x5bGluZSBwb2ludHM9IjggMTEgOCA4Ii8+Cjxwb2x5bGluZSBwb2ludHM9IjkgOCA2IDgiLz4KPGxpbmUgeDE9IjEwIiB5MT0iMTEiIHgyPSI2IiB5Mj0iMTEiLz4KPHJlY3QgeD0iOCIgeT0iNSIgd2lkdGg9IjAuMDEiIGhlaWdodD0iMC4wMSIvPgo8L2c+Cjwvc3ZnPg==");\n background-color: royalblue;\n}\n\n.ace_icon_svg.ace_error_fold {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSI+CiAgPHBhdGggZD0ibSAxOC45Mjk4NTEsNy44Mjk4MDc2IGMgMC4xNDYzNTMsNi4zMzc0NjA0IC02LjMyMzE0Nyw3Ljc3Nzg0NDQgLTcuNDc3OTEyLDcuNzc3ODQ0NCAtMi4xMDcyNzI2LC0wLjEyODc1IDUuMTE3Njc4LDAuMzU2MjQ5IDUuMDUxNjk4LC03Ljg3MDA2MTggLTAuNjA0NjcyLC04LjAwMzk3MzQ5IC03LjA3NzI3MDYsLTcuNTYzMTE4OSAtNC44NTczLC03LjQzMDM5NTU2IDEuNjA2LC0wLjExNTE0MjI1IDYuODk3NDg1LDEuMjYyNTQ1OTYgNy4yODM1MTQsNy41MjI2MTI5NiB6IiBmaWxsPSJjcmltc29uIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0ibSA4LjExNDc1NjIsMi4wNTI5ODI4IGMgMy4zNDkxNjk4LDAgNi4wNjQxMzI4LDIuNjc2ODYyNyA2LjA2NDEzMjgsNS45Nzg5NTMgMCwzLjMwMjExMjIgLTIuNzE0OTYzLDUuOTc4OTIwMiAtNi4wNjQxMzI4LDUuOTc4OTIwMiAtMy4zNDkxNDczLDAgLTYuMDY0MTc3MiwtMi42NzY4MDggLTYuMDY0MTc3MiwtNS45Nzg5MjAyIDAuMDA1MzksLTMuMjk5ODg2MSAyLjcxNzI2NTYsLTUuOTczNjQwOCA2LjA2NDE3NzIsLTUuOTc4OTUzIHogbSAwLC0xLjczNTgyNzE5IGMgLTQuMzIxNDgzNiwwIC03LjgyNDc0MDM4LDMuNDU0MDE4NDkgLTcuODI0NzQwMzgsNy43MTQ3ODAxOSAwLDQuMjYwNzI4MiAzLjUwMzI1Njc4LDcuNzE0NzQ1MiA3LjgyNDc0MDM4LDcuNzE0NzQ1MiA0LjMyMTQ0OTgsMCA3LjgyNDY5OTgsLTMuNDU0MDE3IDcuODI0Njk5OCwtNy43MTQ3NDUyIDAsLTIuMDQ2MDkxNCAtMC44MjQzOTIsLTQuMDA4MzY3MiAtMi4yOTE3NTYsLTUuNDU1MTc0NiBDIDEyLjE4MDIyNSwxLjEyOTk2NDggMTAuMTkwMDEzLDAuMzE3MTU1NjEgOC4xMTQ3NTYyLDAuMzE3MTU1NjEgWiBNIDYuOTM3NDU2Myw4LjI0MDU5ODUgNC42NzE4Njg1LDEwLjQ4NTg1MiA2LjAwODY4MTQsMTEuODc2NzI4IDguMzE3MDAzNSw5LjYwMDc5MTEgMTAuNjI1MzM3LDExLjg3NjcyOCAxMS45NjIxMzgsMTAuNDg1ODUyIDkuNjk2NTUwOCw4LjI0MDU5ODUgMTEuOTYyMTM4LDYuMDA2ODA2NiAxMC41NzMyNDYsNC42Mzc0MzM1IDguMzE3MDAzNSw2Ljg3MzQyOTcgNi4wNjA3NjA3LDQuNjM3NDMzNSA0LjY3MTg2ODUsNi4wMDY4MDY2IFoiIGZpbGw9ImNyaW1zb24iIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4=");\n background-color: crimson;\n}\n.ace_icon_svg.ace_warning_fold {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNC43NzY5IDE0LjczMzdMOC42NTE5MiAyLjQ4MzY5QzguMzI5NDYgMS44Mzg3NyA3LjQwOTEzIDEuODM4NzcgNy4wODY2NyAyLjQ4MzY5TDAuOTYxNjY5IDE0LjczMzdDMC42NzA3NzUgMTUuMzE1NSAxLjA5MzgzIDE2IDEuNzQ0MjkgMTZIMTMuOTk0M0MxNC42NDQ4IDE2IDE1LjA2NzggMTUuMzE1NSAxNC43NzY5IDE0LjczMzdaTTMuMTYwMDcgMTQuMjVMNy44NjkyOSA0LjgzMTU2TDEyLjU3ODUgMTQuMjVIMy4xNjAwN1pNOC43NDQyOSAxMS42MjVWMTMuMzc1SDYuOTk0MjlWMTEuNjI1SDguNzQ0MjlaTTYuOTk0MjkgMTAuNzVWNy4yNUg4Ljc0NDI5VjEwLjc1SDYuOTk0MjlaIiBmaWxsPSIjRUM3MjExIi8+CjxwYXRoIGQ9Ik0xMS4xOTkxIDIuOTUyMzhDMTAuODgwOSAyLjMxNDY3IDEwLjM1MzcgMS44MDUyNiA5LjcwNTUgMS41MDlMMTEuMDQxIDEuMDY5NzhDMTEuNjg4MyAwLjk0OTgxNCAxMi4zMzcgMS4yNzI2MyAxMi42MzE3IDEuODYxNDFMMTcuNjEzNiAxMS44MTYxQzE4LjM1MjcgMTMuMjkyOSAxNy41OTM4IDE1LjA4MDQgMTYuMDE4IDE1LjU3NDVDMTYuNDA0NCAxNC40NTA3IDE2LjMyMzEgMTMuMjE4OCAxNS43OTI0IDEyLjE1NTVMMTEuMTk5MSAyLjk1MjM4WiIgZmlsbD0iI0VDNzIxMSIvPgo8L3N2Zz4=");\n background-color: darkorange;\n}\n\n.ace_scrollbar {\n contain: strict;\n position: absolute;\n right: 0;\n bottom: 0;\n z-index: 6;\n}\n\n.ace_scrollbar-inner {\n position: absolute;\n cursor: text;\n left: 0;\n top: 0;\n}\n\n.ace_scrollbar-v{\n overflow-x: hidden;\n overflow-y: scroll;\n top: 0;\n}\n\n.ace_scrollbar-h {\n overflow-x: scroll;\n overflow-y: hidden;\n left: 0;\n}\n\n.ace_print-margin {\n position: absolute;\n height: 100%;\n}\n\n.ace_text-input {\n position: absolute;\n z-index: 0;\n width: 0.5em;\n height: 1em;\n opacity: 0;\n background: transparent;\n -moz-appearance: none;\n appearance: none;\n border: none;\n resize: none;\n outline: none;\n overflow: hidden;\n font: inherit;\n padding: 0 1px;\n margin: 0 -1px;\n contain: strict;\n -ms-user-select: text;\n -moz-user-select: text;\n -webkit-user-select: text;\n user-select: text;\n /*with `pre-line` chrome inserts   instead of space*/\n white-space: pre!important;\n}\n.ace_text-input.ace_composition {\n background: transparent;\n color: inherit;\n z-index: 1000;\n opacity: 1;\n}\n.ace_composition_placeholder { color: transparent }\n.ace_composition_marker { \n border-bottom: 1px solid;\n position: absolute;\n border-radius: 0;\n margin-top: 1px;\n}\n\n[ace_nocontext=true] {\n transform: none!important;\n filter: none!important;\n clip-path: none!important;\n mask : none!important;\n contain: none!important;\n perspective: none!important;\n mix-blend-mode: initial!important;\n z-index: auto;\n}\n\n.ace_layer {\n z-index: 1;\n position: absolute;\n overflow: hidden;\n /* workaround for chrome bug https://github.com/ajaxorg/ace/issues/2312*/\n word-wrap: normal;\n white-space: pre;\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n /* setting pointer-events: auto; on node under the mouse, which changes\n during scroll, will break mouse wheel scrolling in Safari */\n pointer-events: none;\n}\n\n.ace_gutter-layer {\n position: relative;\n width: auto;\n text-align: right;\n pointer-events: auto;\n height: 1000000px;\n contain: style size layout;\n}\n\n.ace_text-layer {\n font: inherit !important;\n position: absolute;\n height: 1000000px;\n width: 1000000px;\n contain: style size layout;\n}\n\n.ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group {\n contain: style size layout;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n}\n\n.ace_hidpi .ace_text-layer,\n.ace_hidpi .ace_gutter-layer,\n.ace_hidpi .ace_content,\n.ace_hidpi .ace_gutter {\n contain: strict;\n}\n.ace_hidpi .ace_text-layer > .ace_line, \n.ace_hidpi .ace_text-layer > .ace_line_group {\n contain: strict;\n}\n\n.ace_cjk {\n display: inline-block;\n text-align: center;\n}\n\n.ace_cursor-layer {\n z-index: 4;\n}\n\n.ace_cursor {\n z-index: 4;\n position: absolute;\n box-sizing: border-box;\n border-left: 2px solid;\n /* workaround for smooth cursor repaintng whole screen in chrome */\n transform: translatez(0);\n}\n\n.ace_multiselect .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_slim-cursors .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_overwrite-cursors .ace_cursor {\n border-left-width: 0;\n border-bottom: 1px solid;\n}\n\n.ace_hidden-cursors .ace_cursor {\n opacity: 0.2;\n}\n\n.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {\n opacity: 0;\n}\n\n.ace_smooth-blinking .ace_cursor {\n transition: opacity 0.18s;\n}\n\n.ace_animate-blinking .ace_cursor {\n animation-duration: 1000ms;\n animation-timing-function: step-end;\n animation-name: blink-ace-animate;\n animation-iteration-count: infinite;\n}\n\n.ace_animate-blinking.ace_smooth-blinking .ace_cursor {\n animation-duration: 1000ms;\n animation-timing-function: ease-in-out;\n animation-name: blink-ace-animate-smooth;\n}\n \n@keyframes blink-ace-animate {\n from, to { opacity: 1; }\n 60% { opacity: 0; }\n}\n\n@keyframes blink-ace-animate-smooth {\n from, to { opacity: 1; }\n 45% { opacity: 1; }\n 60% { opacity: 0; }\n 85% { opacity: 0; }\n}\n\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\n position: absolute;\n z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n position: absolute;\n z-index: 5;\n}\n\n.ace_marker-layer .ace_bracket {\n position: absolute;\n z-index: 6;\n}\n\n.ace_marker-layer .ace_error_bracket {\n position: absolute;\n border-bottom: 1px solid #DE5555;\n border-radius: 0;\n}\n\n.ace_marker-layer .ace_active-line {\n position: absolute;\n z-index: 2;\n}\n\n.ace_marker-layer .ace_selected-word {\n position: absolute;\n z-index: 4;\n box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n box-sizing: border-box;\n\n display: inline-block;\n height: 11px;\n margin-top: -2px;\n vertical-align: middle;\n\n background-image:\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");\n background-repeat: no-repeat, repeat-x;\n background-position: center center, top left;\n color: transparent;\n\n border: 1px solid black;\n border-radius: 2px;\n\n cursor: pointer;\n pointer-events: auto;\n}\n\n.ace_dark .ace_fold {\n}\n\n.ace_fold:hover{\n background-image:\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");\n}\n\n.ace_tooltip {\n background-color: #f5f5f5;\n border: 1px solid gray;\n border-radius: 1px;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\n color: black;\n max-width: 100%;\n padding: 3px 4px;\n position: fixed;\n z-index: 999999;\n box-sizing: border-box;\n cursor: default;\n white-space: pre-wrap;\n word-wrap: break-word;\n line-height: normal;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n pointer-events: none;\n overflow: auto;\n max-width: min(60em, 66vw);\n}\n.ace_tooltip pre {\n white-space: pre-wrap;\n}\n\n.ace_tooltip.ace_dark {\n background-color: #636363;\n color: #fff;\n}\n\n.ace_tooltip:focus {\n outline: 1px solid #5E9ED6;\n}\n\n.ace_icon {\n display: inline-block;\n width: 18px;\n vertical-align: top;\n}\n\n.ace_icon_svg {\n display: inline-block;\n width: 12px;\n vertical-align: top;\n -webkit-mask-repeat: no-repeat;\n -webkit-mask-size: 12px;\n -webkit-mask-position: center;\n}\n\n.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons {\n padding-right: 13px;\n}\n\n.ace_fold-widget {\n box-sizing: border-box;\n\n margin: 0 -12px 0 1px;\n display: none;\n width: 11px;\n vertical-align: top;\n\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: center;\n\n border-radius: 3px;\n \n border: 1px solid transparent;\n cursor: pointer;\n}\n\n.ace_folding-enabled .ace_fold-widget {\n display: inline-block; \n}\n\n.ace_fold-widget.ace_end {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");\n}\n\n.ace_fold-widget.ace_closed {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");\n}\n\n.ace_fold-widget:hover {\n border: 1px solid rgba(0, 0, 0, 0.3);\n background-color: rgba(255, 255, 255, 0.2);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n}\n\n.ace_fold-widget:active {\n border: 1px solid rgba(0, 0, 0, 0.4);\n background-color: rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n}\n/**\n * Dark version for fold widgets\n */\n.ace_dark .ace_fold-widget {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");\n}\n.ace_dark .ace_fold-widget.ace_end {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");\n}\n.ace_dark .ace_fold-widget.ace_closed {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");\n}\n.ace_dark .ace_fold-widget:hover {\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n background-color: rgba(255, 255, 255, 0.1);\n}\n.ace_dark .ace_fold-widget:active {\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n}\n\n.ace_inline_button {\n border: 1px solid lightgray;\n display: inline-block;\n margin: -1px 8px;\n padding: 0 5px;\n pointer-events: auto;\n cursor: pointer;\n}\n.ace_inline_button:hover {\n border-color: gray;\n background: rgba(200,200,200,0.2);\n display: inline-block;\n pointer-events: auto;\n}\n\n.ace_fold-widget.ace_invalid {\n background-color: #FFB4B4;\n border-color: #DE5555;\n}\n\n.ace_fade-fold-widgets .ace_fold-widget {\n transition: opacity 0.4s ease 0.05s;\n opacity: 0;\n}\n\n.ace_fade-fold-widgets:hover .ace_fold-widget {\n transition: opacity 0.05s ease 0.05s;\n opacity:1;\n}\n\n.ace_underline {\n text-decoration: underline;\n}\n\n.ace_bold {\n font-weight: bold;\n}\n\n.ace_nobold .ace_bold {\n font-weight: normal;\n}\n\n.ace_italic {\n font-style: italic;\n}\n\n\n.ace_error-marker {\n background-color: rgba(255, 0, 0,0.2);\n position: absolute;\n z-index: 9;\n}\n\n.ace_highlight-marker {\n background-color: rgba(255, 255, 0,0.2);\n position: absolute;\n z-index: 8;\n}\n\n.ace_mobile-menu {\n position: absolute;\n line-height: 1.5;\n border-radius: 4px;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n background: white;\n box-shadow: 1px 3px 2px grey;\n border: 1px solid #dcdcdc;\n color: black;\n}\n.ace_dark > .ace_mobile-menu {\n background: #333;\n color: #ccc;\n box-shadow: 1px 3px 2px grey;\n border: 1px solid #444;\n\n}\n.ace_mobile-button {\n padding: 2px;\n cursor: pointer;\n overflow: hidden;\n}\n.ace_mobile-button:hover {\n background-color: #eee;\n opacity:1;\n}\n.ace_mobile-button:active {\n background-color: #ddd;\n}\n\n.ace_placeholder {\n font-family: arial;\n transform: scale(0.9);\n transform-origin: left;\n white-space: pre;\n opacity: 0.7;\n margin: 0 10px;\n}\n\n.ace_ghost_text {\n opacity: 0.5;\n font-style: italic;\n white-space: pre;\n}\n\n.ace_screenreader-only {\n position:absolute;\n left:-10000px;\n top:auto;\n width:1px;\n height:1px;\n overflow:hidden;\n}'})),ace.define("ace/layer/decorators",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=e("../lib/oop"),r=e("../lib/event_emitter").EventEmitter,s=function(){function e(e,t){this.canvas=o.createElement("canvas"),this.renderer=t,this.pixelRatio=1,this.maxHeight=t.layerConfig.maxHeight,this.lineHeight=t.layerConfig.lineHeight,this.canvasHeight=e.parent.scrollHeight,this.heightRatio=this.canvasHeight/this.maxHeight,this.canvasWidth=e.width,this.minDecorationHeight=2*this.pixelRatio|0,this.halfMinDecorationHeight=this.minDecorationHeight/2|0,this.canvas.width=this.canvasWidth,this.canvas.height=this.canvasHeight,this.canvas.style.top="0px",this.canvas.style.right="0px",this.canvas.style.zIndex="7px",this.canvas.style.position="absolute",this.colors={},this.colors.dark={error:"rgba(255, 18, 18, 1)",warning:"rgba(18, 136, 18, 1)",info:"rgba(18, 18, 136, 1)"},this.colors.light={error:"rgb(255,51,51)",warning:"rgb(32,133,72)",info:"rgb(35,68,138)"},e.element.appendChild(this.canvas)}return e.prototype.$updateDecorators=function(e){var t=!0===this.renderer.theme.isDark?this.colors.dark:this.colors.light;e&&(this.maxHeight=e.maxHeight,this.lineHeight=e.lineHeight,this.canvasHeight=e.height,(e.lastRow+1)*this.lineHeightt.priority?1:0}));for(var r=this.renderer.session.$foldData,s=0;sthis.canvasHeight&&(d=this.canvasHeight-this.halfMinDecorationHeight),u=Math.round(d-this.halfMinDecorationHeight),h=Math.round(d+this.halfMinDecorationHeight)}n.fillStyle=t[o[s].type]||null,n.fillRect(0,c,this.canvasWidth,h-u)}}var p=this.renderer.session.selection.getCursor();p&&(l=this.compensateFoldRows(p.row,r),c=Math.round((p.row-l)*this.lineHeight*this.heightRatio),n.fillStyle="rgba(0, 0, 0, 0.5)",n.fillRect(0,c,this.canvasWidth,2))},e.prototype.compensateFoldRows=function(e,t){var n=0;if(t&&t.length>0)for(var o=0;ot[o].start.row&&e=t[o].end.row&&(n+=t[o].end.row-t[o].start.row);return n},e}();i.implement(s.prototype,r),t.Decorator=s})),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/config","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/scrollbar_custom","ace/scrollbar_custom","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter","ace/css/editor-css","ace/layer/decorators","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("./lib/oop"),i=e("./lib/dom"),r=e("./lib/lang"),s=e("./config"),a=e("./layer/gutter").Gutter,l=e("./layer/marker").Marker,c=e("./layer/text").Text,u=e("./layer/cursor").Cursor,h=e("./scrollbar").HScrollBar,d=e("./scrollbar").VScrollBar,p=e("./scrollbar_custom").HScrollBar,g=e("./scrollbar_custom").VScrollBar,m=e("./renderloop").RenderLoop,f=e("./layer/font_metrics").FontMetrics,y=e("./lib/event_emitter").EventEmitter,v=e("./css/editor-css"),b=e("./layer/decorators").Decorator,w=e("./lib/useragent");i.importCssString(v,"ace_editor.css",!1);var x=function(){function e(e,t){var n=this;this.container=e||i.createElement("div"),i.addCssClass(this.container,"ace_editor"),i.HI_DPI&&i.addCssClass(this.container,"ace_hidpi"),this.setTheme(t),null==s.get("useStrictCSP")&&s.set("useStrictCSP",!1),this.$gutter=i.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=i.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=i.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new a(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new l(this.content);var o=this.$textLayer=new c(this.content);this.canvas=o.element,this.$markerFront=new l(this.content),this.$cursorLayer=new u(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new d(this.container,this),this.scrollBarH=new h(this.container,this),this.scrollBarV.on("scroll",(function(e){n.$scrollAnimation||n.session.setScrollTop(e.data-n.scrollMargin.top)})),this.scrollBarH.on("scroll",(function(e){n.$scrollAnimation||n.session.setScrollLeft(e.data-n.scrollMargin.left)})),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new f(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.on("changeCharacterSize",(function(e){n.updateCharacterSize(),n.onResize(!0,n.gutterWidth,n.$size.width,n.$size.height),n._signal("changeCharacterSize",e)})),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.margin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$keepTextAreaAtCursor=!w.isIOS,this.$loop=new m(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),this.$addResizeObserver(),s.resetOptions(this),s._signal("renderer",this)}return e.prototype.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin(),i.setStyle(this.scroller.style,"line-height",this.lineHeight+"px")},e.prototype.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e),e&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},e.prototype.updateLines=function(e,t,n){if(void 0===t&&(t=1/0),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},e.prototype.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},e.prototype.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},e.prototype.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},e.prototype.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},e.prototype.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},e.prototype.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},e.prototype.onResize=function(e,t,n,o){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=e?1:0;var i=this.container;o||(o=i.clientHeight||i.scrollHeight),n||(n=i.clientWidth||i.scrollWidth);var r=this.$updateCachedSize(e,t,n,o);if(this.$resizeTimer&&this.$resizeTimer.cancel(),!this.$size.scrollerHeight||!n&&!o)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(r|this.$changes,!0):this.$loop.schedule(r|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.$customScrollbar&&this.$updateCustomScrollbar(!0)}},e.prototype.$updateCachedSize=function(e,t,n,o){o-=this.$extraHeight||0;var r=0,s=this.$size,a={width:s.width,height:s.height,scrollerHeight:s.scrollerHeight,scrollerWidth:s.scrollerWidth};if(o&&(e||s.height!=o)&&(s.height=o,r|=this.CHANGE_SIZE,s.scrollerHeight=s.height,this.$horizScroll&&(s.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.setHeight(s.scrollerHeight),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",r|=this.CHANGE_SCROLL),n&&(e||s.width!=n)){r|=this.CHANGE_SIZE,s.width=n,null==t&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,i.setStyle(this.scrollBarH.element.style,"left",t+"px"),i.setStyle(this.scroller.style,"left",t+this.margin.left+"px"),s.scrollerWidth=Math.max(0,n-t-this.scrollBarV.getWidth()-this.margin.h),i.setStyle(this.$gutter.style,"left",this.margin.left+"px");var l=this.scrollBarV.getWidth()+"px";i.setStyle(this.scrollBarH.element.style,"right",l),i.setStyle(this.scroller.style,"right",l),i.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight()),this.scrollBarH.setWidth(s.scrollerWidth),(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)&&(r|=this.CHANGE_FULL)}return s.$dirty=!n||!o,r&&this._signal("resize",a),r},e.prototype.onGutterResize=function(e){var t=this.$showGutter?e:0;t!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,t,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()||this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},e.prototype.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-2*this.$padding,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},e.prototype.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},e.prototype.getAnimatedScroll=function(){return this.$animatedScroll},e.prototype.setShowInvisibles=function(e){this.setOption("showInvisibles",e),this.session.$bidiHandler.setShowInvisibles(e)},e.prototype.getShowInvisibles=function(){return this.getOption("showInvisibles")},e.prototype.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},e.prototype.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},e.prototype.getHighlightIndentGuides=function(){return this.getOption("highlightIndentGuides")},e.prototype.setHighlightIndentGuides=function(e){this.setOption("highlightIndentGuides",e)},e.prototype.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},e.prototype.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},e.prototype.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},e.prototype.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},e.prototype.getShowGutter=function(){return this.getOption("showGutter")},e.prototype.setShowGutter=function(e){return this.setOption("showGutter",e)},e.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},e.prototype.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},e.prototype.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},e.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},e.prototype.$updatePrintMargin=function(){if(this.$showPrintMargin||this.$printMarginEl){if(!this.$printMarginEl){var e=i.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=i.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&-1==this.session.$wrap&&this.adjustWrapLimit()}},e.prototype.getContainerElement=function(){return this.container},e.prototype.getMouseEventTarget=function(){return this.scroller},e.prototype.getTextAreaContainer=function(){return this.container},e.prototype.$moveTextAreaToCursor=function(){if(!this.$isMousePressed){var e=this.textarea.style,t=this.$composition;if(this.$keepTextAreaAtCursor||t){var n=this.$cursorLayer.$pixelPos;if(n){t&&t.markerRange&&(n=this.$cursorLayer.getPixelPosition(t.markerRange.start,!0));var o=this.layerConfig,r=n.top,s=n.left;r-=o.offset;var a=t&&t.useTextareaForIME||w.isMobile?this.lineHeight:1;if(r<0||r>o.height-a)i.translate(this.textarea,0,0);else{var l=1,c=this.$size.height-a;if(t)if(t.useTextareaForIME){var u=this.textarea.value;l=this.characterWidth*this.session.$getStringScreenWidth(u)[0]}else r+=this.lineHeight+2;else r+=this.lineHeight;(s-=this.scrollLeft)>this.$size.scrollerWidth-l&&(s=this.$size.scrollerWidth-l),s+=this.gutterWidth+this.margin.left,i.setStyle(e,"height",a+"px"),i.setStyle(e,"width",l+"px"),i.translate(this.textarea,Math.min(s,this.$size.scrollerWidth-l),Math.min(r,c))}}}else i.translate(this.textarea,-100,0)}},e.prototype.getFirstVisibleRow=function(){return this.layerConfig.firstRow},e.prototype.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(0===this.layerConfig.offset?0:1)},e.prototype.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow;return this.session.documentToScreenRow(t,0)*e.lineHeight-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},e.prototype.getLastVisibleRow=function(){return this.layerConfig.lastRow},e.prototype.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},e.prototype.setScrollMargin=function(e,t,n,o){var i=this.scrollMargin;i.top=0|e,i.bottom=0|t,i.right=0|o,i.left=0|n,i.v=i.top+i.bottom,i.h=i.left+i.right,i.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-i.top),this.updateFull()},e.prototype.setMargin=function(e,t,n,o){var i=this.margin;i.top=0|e,i.bottom=0|t,i.right=0|o,i.left=0|n,i.v=i.top+i.bottom,i.h=i.left+i.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},e.prototype.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},e.prototype.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},e.prototype.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},e.prototype.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},e.prototype.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},e.prototype.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},e.prototype.freeze=function(){this.$frozen=!0},e.prototype.unfreeze=function(){this.$frozen=!1},e.prototype.$renderChanges=function(e,t){if(this.$changes&&(e|=this.$changes,this.$changes=0),this.session&&this.container.offsetWidth&&!this.$frozen&&(e||t)){if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender",e),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var n=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){if(e|=this.$computeLayerConfig()|this.$loop.clear(),n.firstRow!=this.layerConfig.firstRow&&n.firstRowScreen==this.layerConfig.firstRowScreen){var o=this.scrollTop+(n.firstRow-Math.max(this.layerConfig.firstRow,0))*this.lineHeight;o>0&&(this.scrollTop=o,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig()|this.$loop.clear())}n=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),i.translate(this.content,-this.scrollLeft,-n.offset);var r=n.width+2*this.$padding+"px",s=n.minHeight+"px";i.setStyle(this.content.style,"width",r),i.setStyle(this.content.style,"height",s)}if(e&this.CHANGE_H_SCROLL&&(i.translate(this.content,-this.scrollLeft,-n.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller ":"ace_scroller ace_scroll-left ",this.enableKeyboardAccessibility&&(this.scroller.className+=this.keyboardFocusClassName)),e&this.CHANGE_FULL)return this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),void this._signal("afterRender",e);if(e&this.CHANGE_SCROLL)return this.$changedLines=null,e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(n):this.$textLayer.scrollLines(n),this.$showGutter&&(e&this.CHANGE_GUTTER||e&this.CHANGE_LINES?this.$gutterLayer.update(n):this.$gutterLayer.scrollLines(n)),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),void this._signal("afterRender",e);e&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_LINES?((this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER?(this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_CURSOR&&(this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(n),this.$moveTextAreaToCursor()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(n),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(n),this._signal("afterRender",e)}else this.$changes|=e},e.prototype.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,n=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(n+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&n>this.$maxPixelHeight&&(n=this.$maxPixelHeight);var o=!(n<=2*this.lineHeight)&&e>t;if(n!=this.desiredHeight||this.$size.height!=this.desiredHeight||o!=this.$vScroll){o!=this.$vScroll&&(this.$vScroll=o,this.scrollBarV.setVisible(o));var i=this.container.clientWidth;this.container.style.height=n+"px",this.$updateCachedSize(!0,this.$gutterWidth,i,n),this.desiredHeight=n,this._signal("autosize")}},e.prototype.$computeLayerConfig=function(){var e=this.session,t=this.$size,n=t.height<=2*this.lineHeight,o=this.session.getScreenLength()*this.lineHeight,i=this.$getLongestLine(),r=!n&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-i-2*this.$padding<0),s=this.$horizScroll!==r;s&&(this.$horizScroll=r,this.scrollBarH.setVisible(r));var a=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var l=t.scrollerHeight+this.lineHeight,c=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;o+=c;var u=this.scrollMargin;this.session.setScrollTop(Math.max(-u.top,Math.min(this.scrollTop,o-t.scrollerHeight+u.bottom))),this.session.setScrollLeft(Math.max(-u.left,Math.min(this.scrollLeft,i+2*this.$padding-t.scrollerWidth+u.right)));var h=!n&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-o+c<0||this.scrollTop>u.top),d=a!==h;d&&(this.$vScroll=h,this.scrollBarV.setVisible(h));var p,g,m=this.scrollTop%this.lineHeight,f=Math.ceil(l/this.lineHeight)-1,y=Math.max(0,Math.round((this.scrollTop-m)/this.lineHeight)),v=y+f,b=this.lineHeight;y=e.screenToDocumentRow(y,0);var w=e.getFoldLine(y);w&&(y=w.start.row),p=e.documentToScreenRow(y,0),g=e.getRowLength(y)*b,v=Math.min(e.screenToDocumentRow(v,0),e.getLength()-1),l=t.scrollerHeight+e.getRowLength(v)*b+g,m=this.scrollTop-p*b;var x=0;return(this.layerConfig.width!=i||s)&&(x=this.CHANGE_H_SCROLL),(s||d)&&(x|=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),d&&(i=this.$getLongestLine())),this.layerConfig={width:i,padding:this.$padding,firstRow:y,firstRowScreen:p,lastRow:v,lineHeight:b,characterWidth:this.characterWidth,minHeight:l,maxHeight:o,offset:m,gutterOffset:b?Math.max(0,Math.ceil((m+t.height-t.scrollerHeight)/b)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(i-this.$padding),x},e.prototype.$updateLines=function(){if(this.$changedLines){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var n=this.layerConfig;if(!(e>n.lastRow+1||tthis.$textLayer.MAX_LINE_LENGTH&&(e=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(e*this.characterWidth))},e.prototype.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},e.prototype.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},e.prototype.addGutterDecoration=function(e,t){this.$gutterLayer.addGutterDecoration(e,t)},e.prototype.removeGutterDecoration=function(e,t){this.$gutterLayer.removeGutterDecoration(e,t)},e.prototype.updateBreakpoints=function(e){this.$loop.schedule(this.CHANGE_GUTTER)},e.prototype.setAnnotations=function(e){this.$gutterLayer.setAnnotations(e),this.$loop.schedule(this.CHANGE_GUTTER)},e.prototype.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},e.prototype.hideCursor=function(){this.$cursorLayer.hideCursor()},e.prototype.showCursor=function(){this.$cursorLayer.showCursor()},e.prototype.scrollSelectionIntoView=function(e,t,n){this.scrollCursorIntoView(e,n),this.scrollCursorIntoView(t,n)},e.prototype.scrollCursorIntoView=function(e,t,n){if(0!==this.$size.scrollerHeight){var o=this.$cursorLayer.getPixelPosition(e),i=o.left,r=o.top,s=n&&n.top||0,a=n&&n.bottom||0;this.$scrollAnimation&&(this.$stopAnimation=!0);var l=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;l+s>r?(t&&l+s>r+this.lineHeight&&(r-=t*this.$size.scrollerHeight),0===r&&(r=-this.scrollMargin.top),this.session.setScrollTop(r)):l+this.$size.scrollerHeight-a=1-this.scrollMargin.top||t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right||void 0},e.prototype.pixelToScreenCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var o=this.$fontMetrics.transformCoordinates([e,t]);e=o[1]-this.gutterWidth-this.margin.left,t=o[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,r=i/this.characterWidth,s=Math.floor((t+this.scrollTop-n.top)/this.lineHeight),a=this.$blockCursor?Math.floor(r):Math.round(r);return{row:s,column:a,side:r-a>0?1:-1,offsetX:i}},e.prototype.screenToTextCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var o=this.$fontMetrics.transformCoordinates([e,t]);e=o[1]-this.gutterWidth-this.margin.left,t=o[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,r=i/this.characterWidth,s=this.$blockCursor?Math.floor(r):Math.round(r),a=Math.floor((t+this.scrollTop-n.top)/this.lineHeight);return this.session.screenToDocumentPosition(a,Math.max(s,0),i)},e.prototype.textToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),o=this.session.documentToScreenPosition(e,t),i=this.$padding+(this.session.$bidiHandler.isBidiRow(o.row,e)?this.session.$bidiHandler.getPosLeft(o.column):Math.round(o.column*this.characterWidth)),r=o.row*this.lineHeight;return{pageX:n.left+i-this.scrollLeft,pageY:n.top+r-this.scrollTop}},e.prototype.visualizeFocus=function(){i.addCssClass(this.container,"ace_focus")},e.prototype.visualizeBlur=function(){i.removeCssClass(this.container,"ace_focus")},e.prototype.showComposition=function(e){this.$composition=e,e.cssText||(e.cssText=this.textarea.style.cssText),null==e.useTextareaForIME&&(e.useTextareaForIME=this.$useTextareaForIME),this.$useTextareaForIME?(i.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display="none"):e.markerId=this.session.addMarker(e.markerRange,"ace_composition_marker","text")},e.prototype.setCompositionText=function(e){var t=this.session.selection.cursor;this.addToken(e,"composition_placeholder",t.row,t.column),this.$moveTextAreaToCursor()},e.prototype.hideComposition=function(){if(this.$composition){this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),i.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText;var e=this.session.selection.cursor;this.removeExtraToken(e.row,e.column),this.$composition=null,this.$cursorLayer.element.style.display=""}},e.prototype.setGhostText=function(e,t){var n=this.session.selection.cursor,o=t||{row:n.row,column:n.column};this.removeGhostText();var i=e.split("\n");if(this.addToken(i[0],"ghost_text",o.row,o.column),this.$ghostText={text:e,position:{row:o.row,column:o.column}},i.length>1){this.$ghostTextWidget={text:i.slice(1).join("\n"),row:o.row,column:o.column,className:"ace_ghost_text"},this.session.widgetManager.addLineWidget(this.$ghostTextWidget);var r=this.$cursorLayer.getPixelPosition(o,!0),s=this.container.getBoundingClientRect().height,a=i.length*this.lineHeight;if(a1||Math.abs(e.$size.height-o)>1?e.$resizeTimer.delay():e.$resizeTimer.cancel()})),this.$resizeObserver.observe(this.container)}},e}();x.prototype.CHANGE_CURSOR=1,x.prototype.CHANGE_MARKER=2,x.prototype.CHANGE_GUTTER=4,x.prototype.CHANGE_SCROLL=8,x.prototype.CHANGE_LINES=16,x.prototype.CHANGE_TEXT=32,x.prototype.CHANGE_SIZE=64,x.prototype.CHANGE_MARKER_BACK=128,x.prototype.CHANGE_MARKER_FRONT=256,x.prototype.CHANGE_FULL=512,x.prototype.CHANGE_H_SCROLL=1024,x.prototype.$changes=0,x.prototype.$padding=null,x.prototype.$frozen=!1,x.prototype.STEPS=8,o.implement(x.prototype,y),s.defineOptions(x.prototype,"renderer",{useResizeObserver:{set:function(e){!e&&this.$resizeObserver?(this.$resizeObserver.disconnect(),this.$resizeTimer.cancel(),this.$resizeTimer=this.$resizeObserver=null):e&&!this.$resizeObserver&&this.$addResizeObserver()}},animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){"number"==typeof e&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},useSvgGutterIcons:{set:function(e){this.$gutterLayer.$useSvgGutterIcons=e},initialValue:!1},showFoldedAnnotations:{set:function(e){this.$gutterLayer.$showFoldedAnnotations=e},initialValue:!1},fadeFoldWidgets:{set:function(e){i.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightIndentGuides:{set:function(e){1==this.$textLayer.setHighlightIndentGuides(e)?this.$textLayer.$highlightIndentGuide():this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells)},initialValue:!0},highlightGutterLine:{set:function(e){this.$gutterLayer.setHighlightGutterLine(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},hScrollBarAlwaysVisible:{set:function(e){this.$hScrollBarAlwaysVisible&&this.$horizScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){this.$vScrollBarAlwaysVisible&&this.$vScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){"number"==typeof e&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.$minLines<562949953421311||(this.$minLines=0),this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0,this.$scrollPastEnd!=e&&(this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},customScrollbar:{set:function(e){this.$updateCustomScrollbar(e)},initialValue:!1},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0},hasCssTransforms:{},useTextareaForIME:{initialValue:!w.isMobile&&!w.isIE}}),t.VirtualRenderer=x})),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("../lib/net"),r=e("../lib/event_emitter").EventEmitter,s=e("../config");function a(e){if("undefined"==typeof Worker)return{postMessage:function(){},terminate:function(){}};if(s.get("loadWorkerFromBlob")){var t=function(e){var t="importScripts('"+i.qualifyURL(e)+"');";try{return new Blob([t],{type:"application/javascript"})}catch(e){var n=new(window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder);return n.append(t),n.getBlob("application/javascript")}}(e),n=(window.URL||window.webkitURL).createObjectURL(t);return new Worker(n)}return new Worker(e)}var l=function(e){e.postMessage||(e=this.$createWorkerFromOldConfig.apply(this,arguments)),this.$worker=e,this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){o.implement(this,r),this.$createWorkerFromOldConfig=function(t,n,o,i,r){if(e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl),s.get("packaged")||!e.toUrl)i=i||s.moduleUrl(n,"worker");else{var l=this.$normalizePath;i=i||l(e.toUrl("ace/worker/worker.js",null,"_"));var c={};t.forEach((function(t){c[t]=l(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))}))}return this.$worker=a(i),r&&this.send("importScripts",r),this.$worker.postMessage({init:!0,tlns:c,module:n,classname:o}),this.$worker},this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var n=this.callbacks[t.id];n&&(n(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return i.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker.onerror=function(e){e.preventDefault()},this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,n){if(n){var o=this.callbackId++;this.callbacks[o]=n,t.push(o)}this.send(e,t)},this.emit=function(e,t){try{t.data&&t.data.err&&(t.data.err={message:t.data.err.message,stack:t.data.err.stack,code:t.data.err.code}),this.$worker&&this.$worker.postMessage({event:e,data:{data:t.data}})}catch(e){console.error(e.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener,!0)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),"insert"==e.action?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;e&&(this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e}))}}).call(l.prototype),t.UIWorkerClient=function(e,t,n){var o=null,i=!1,a=Object.create(r),c=[],u=new l({messageBuffer:c,terminate:function(){},postMessage:function(e){c.push(e),o&&(i?setTimeout(h):h())}});u.setEmitSync=function(e){i=e};var h=function(){var e=c.shift();e.command?o[e.command].apply(o,e.args):e.event&&a._signal(e.event,e.data)};return a.postMessage=function(e){u.onMessage({data:e})},a.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},a.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},s.loadModule(["worker",t],(function(e){for(o=new e[n](a);c.length;)h()})),u},t.WorkerClient=l,t.createWorker=a})),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],(function(e,t,n){"use strict";var o=e("./range").Range,i=e("./lib/event_emitter").EventEmitter,r=e("./lib/oop"),s=function(){function e(e,t,n,o,i,r){var s=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=i,this.othersClass=r,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate,!0),this.$others=o,this.$onCursorChange=function(){setTimeout((function(){s.onCursorChange()}))},this.$pos=n;var a=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=a.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)}return e.prototype.setup=function(){var e=this,t=this.doc,n=this.session;this.selectionBefore=n.selection.toJSON(),n.selection.inMultiSelectMode&&n.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var i=this.pos;i.$insertRight=!0,i.detach(),i.markerId=n.addMarker(new o(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach((function(n){var o=t.createAnchor(n.row,n.column);o.$insertRight=!0,o.detach(),e.others.push(o)})),n.setUndoSelect(!1)},e.prototype.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach((function(n){n.markerId=e.addMarker(new o(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1)}))}},e.prototype.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,r=t.start.column-this.pos.column;if(this.updateAnchors(e),i&&(this.length+=n),i&&!this.session.$fromUndo)if("insert"===e.action)for(var s=this.others.length-1;s>=0;s--){var a={row:(l=this.others[s]).row,column:l.column+r};this.doc.insertMergedLines(a,e.lines)}else if("remove"===e.action)for(s=this.others.length-1;s>=0;s--){var l;a={row:(l=this.others[s]).row,column:l.column+r},this.doc.remove(new o(a.row,a.column,a.row,a.column-n))}this.$updating=!1,this.updateMarkers()}},e.prototype.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},e.prototype.updateMarkers=function(){if(!this.$updating){var e=this,t=this.session,n=function(n,i){t.removeMarker(n.markerId),n.markerId=t.addMarker(new o(n.row,n.column,n.row,n.column+e.length),i,null,!1)};n(this.pos,this.mainClass);for(var i=this.others.length;i--;)n(this.others[i],this.othersClass)}},e.prototype.onCursorChange=function(e){if(!this.$updating&&this.session){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))}},e.prototype.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.off("change",this.$onUpdate),this.session.selection.off("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},e.prototype.cancel=function(){if(-1!==this.$undoStackDepth){for(var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth,n=0;n1?e.multiSelect.joinSelections():e.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"splitSelectionIntoLines",description:"Split into lines",exec:function(e){e.multiSelect.splitIntoLines()},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(e){e.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(e){e.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],t.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(e){e.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(e){return e&&e.inMultiSelectMode}}];var o=e("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new o(t.multiSelectCommands)})),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],(function(e,t,n){var o=e("./range_list").RangeList,i=e("./range").Range,r=e("./selection").Selection,s=e("./mouse/multi_select_handler").onMouseDown,a=e("./lib/event"),l=e("./lib/lang"),c=e("./commands/multi_select_commands");t.commands=c.defaultCommands.concat(c.multiSelectCommands);var u=new(0,e("./search").Search),h=e("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(h.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(e){if(!this.inMultiSelectMode&&0===this.rangeCount){var n=this.toOrientedRange();if(this.rangeList.add(n),this.rangeList.add(e),2!=this.rangeList.ranges.length)return this.rangeList.removeAll(),t||this.fromOrientedRange(e);this.rangeList.removeAll(),this.rangeList.add(n),this.$onAddRange(n)}e.cursor||(e.cursor=e.end);var o=this.rangeList.add(e);return this.$onAddRange(e),o.length&&this.$onRemoveRange(o),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)}},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length&&this.$onRemoveRange(e)},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){if(this.rangeCount=this.rangeList.ranges.length,1==this.rangeCount&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var o=this.ranges.indexOf(e[n]);this.ranges.splice(o,1)}this._signal("removeRange",{ranges:e}),0===this.rangeCount&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),(t=t||this.ranges[0])&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new o,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){for(var e=this.ranges.length?this.ranges:[this.getRange()],t=[],n=0;n1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var o=this.session.documentToScreenPosition(this.cursor),r=this.session.documentToScreenPosition(this.anchor);this.rectangularRangeBlock(o,r).forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var o=[],r=e.column0;)v--;if(v>0)for(var b=0;o[b].isEmpty();)b++;for(var w=v;w>=b;w--)o[w].isEmpty()&&o.splice(w,1)}return o}}.call(r.prototype);var d=e("./editor").Editor;function p(e){e.$multiselectOnSessionChange||(e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on("changeSession",e.$multiselectOnSessionChange),e.on("mousedown",s),e.commands.addCommands(c.defaultCommands),function(e){if(e.textInput){var t=e.textInput.getElement(),n=!1;a.addListener(t,"keydown",(function(t){var i=18==t.keyCode&&!(t.ctrlKey||t.shiftKey||t.metaKey);e.$blockSelectEnabled&&i?n||(e.renderer.setMouseCursor("crosshair"),n=!0):n&&o()}),e),a.addListener(t,"keyup",o,e),a.addListener(t,"blur",o,e)}function o(t){n&&(e.renderer.setMouseCursor(""),n=!1)}}(e))}(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(e.marker){this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);-1!=t&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(e){for(var t=this.session.$selectionMarkers,n=e.length;n--;){var o=e[n];if(o.marker){this.session.removeMarker(o.marker);var i=t.indexOf(o);-1!=i&&t.splice(i,1)}}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(c.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(e){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(c.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(n.multiSelect){if(t.multiSelectAction)"forEach"==t.multiSelectAction?o=n.forEachSelection(t,e.args):"forEachLine"==t.multiSelectAction?o=n.forEachSelection(t,e.args,!0):"single"==t.multiSelectAction?(n.exitMultiSelectMode(),o=t.exec(n,e.args||{})):o=t.multiSelectAction(n,e.args||{});else{var o=t.exec(n,e.args||{});n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()}return o}},this.forEachSelection=function(e,t,n){if(!this.inVirtualSelectionMode){var o,i=n&&n.keepOrder,s=1==n||n&&n.$byLines,a=this.session,l=this.selection,c=l.rangeList,u=(i?l:c).ranges;if(!u.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var h=l._eventRegistry;l._eventRegistry={};var d=new r(a);this.inVirtualSelectionMode=!0;for(var p=u.length;p--;){if(s)for(;p>0&&u[p].start.row==u[p-1].end.row;)p--;d.fromOrientedRange(u[p]),d.index=p,this.selection=a.selection=d;var g=e.exec?e.exec(this,t||{}):e(this,t||{});o||void 0===g||(o=g),d.toOrientedRange(u[p])}d.detach(),this.selection=a.selection=l,this.inVirtualSelectionMode=!1,l._eventRegistry=h,l.mergeOverlappingRanges(),l.ranges[0]&&l.fromOrientedRange(l.ranges[0]);var m=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),m&&m.from==m.to&&this.renderer.animateScrolling(m.from),o}},this.exitMultiSelectMode=function(){this.inMultiSelectMode&&!this.inVirtualSelectionMode&&this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var t=this.multiSelect.rangeList.ranges,n=[],o=0;os&&(s=n.column),ou?e.insert(o,l.stringRepeat(" ",r-u)):e.remove(new i(o.row,o.column,o.row,o.column-r+u)),t.start.column=t.end.column=s,t.start.row=t.end.row=o.row,t.cursor=t.end})),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}else{var u=this.selection.getRange(),h=u.start.row,d=u.end.row,p=h==d;if(p){var g,m=this.session.getLength();do{g=this.session.getLine(d)}while(/[=:]/.test(g)&&++d0);h<0&&(h=0),d>=m&&(d=m-1)}var f=this.session.removeFullLines(h,d);f=this.$reAlignText(f,p),this.session.insert({row:h,column:0},f.join("\n")+"\n"),p||(u.start.column=0,u.end.column=f[f.length-1].length),this.selection.setRange(u)}},this.$reAlignText=function(e,t){var n,o,i,r=!0,s=!0;return e.map((function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?null==n?(n=t[1].length,o=t[2].length,i=t[3].length,t):(n+o+i!=t[1].length+t[2].length+t[3].length&&(s=!1),n!=t[1].length&&(r=!1),n>t[1].length&&(n=t[1].length),ot[3].length&&(i=t[3].length),t):[e]})).map(t?c:r?s?function(e){return e[2]?a(n+o-e[2].length)+e[2]+a(i)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}:c:function(e){return e[2]?a(n)+e[2]+a(i)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]});function a(e){return l.stringRepeat(" ",e)}function c(e){return e[2]?a(n)+e[2]+a(o-e[2].length+i)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}}}).call(d.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var n=e.oldSession;n&&(n.multiSelect.off("addRange",this.$onAddRange),n.multiSelect.off("removeRange",this.$onRemoveRange),n.multiSelect.off("multiSelect",this.$onMultiSelect),n.multiSelect.off("singleSelect",this.$onSingleSelect),n.multiSelect.lead.off("change",this.$checkMultiselectChange),n.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=p,e("./config").defineOptions(d.prototype,"editor",{enableMultiselect:{set:function(e){p(this),e?this.on("mousedown",s):this.off("mousedown",s)},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})})),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../../range").Range,i=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);return this.foldingStartMarker.test(o)?"start":"markbeginend"==t&&this.foldingStopMarker&&this.foldingStopMarker.test(o)?"end":""},this.getFoldWidgetRange=function(e,t,n){return null},this.indentationBlock=function(e,t,n){var i=/\S/,r=e.getLine(t),s=r.search(i);if(-1!=s){for(var a=n||r.length,l=e.getLength(),c=t,u=t;++tc){var p=e.getLine(u).length;return new o(c,a,u,p)}}},this.openingBracketBlock=function(e,t,n,i,r){var s={row:n,column:i+1},a=e.$findClosingBracket(t,s,r);if(a){var l=e.foldWidgets[a.row];return null==l&&(l=e.getFoldWidget(a.row)),"start"==l&&a.row>s.row&&(a.row--,a.column=e.getLine(a.row).length),o.fromPoints(s,a)}},this.closingBracketBlock=function(e,t,n,i,r){var s={row:n,column:i},a=e.$findOpeningBracket(t,s);if(a)return a.column++,s.column--,o.fromPoints(a,s)}}).call(i.prototype)})),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range","ace/config"],(function(e,t,n){"use strict";var o=e("../line_widgets").LineWidgets,i=e("../lib/dom"),r=e("../range").Range,s=e("../config").nls;t.showErrorMarker=function(e,t){var n=e.session;n.widgetManager||(n.widgetManager=new o(n),n.widgetManager.attach(e));var a=e.getCursorPosition(),l=a.row,c=n.widgetManager.getWidgetsAtRow(l).filter((function(e){return"errorMarker"==e.type}))[0];c?c.destroy():l-=t;var u,h=function(e,t,n){var o=e.getAnnotations().sort(r.comparePoints);if(o.length){var i=function(e,t,n){for(var o=0,i=e.length-1;o<=i;){var r=o+i>>1,s=n(t,e[r]);if(s>0)o=r+1;else{if(!(s<0))return r;i=r-1}}return-(o+1)}(o,{row:t,column:-1},r.comparePoints);i<0&&(i=-i-1),i>=o.length?i=n>0?0:o.length-1:0===i&&n<0&&(i=o.length-1);var s=o[i];if(s&&n){if(s.row===t){do{s=o[i+=n]}while(s&&s.row===t);if(!s)return o.slice()}var a=[];t=s.row;do{a[n<0?"unshift":"push"](s),s=o[i+=n]}while(s&&s.row==t);return a.length&&a}}}(n,l,t);if(h){var d=h[0];a.column=(d.pos&&"number"!=typeof d.column?d.pos.sc:d.column)||0,a.row=d.row,u=e.renderer.$gutterLayer.$annotations[a.row]}else{if(c)return;u={text:[s("Looks good!")],className:"ace_ok"}}e.session.unfold(a.row),e.selection.moveToPosition(a);var p={row:a.row,fixedWidth:!0,coverGutter:!0,el:i.createElement("div"),type:"errorMarker"},g=p.el.appendChild(i.createElement("div")),m=p.el.appendChild(i.createElement("div"));m.className="error_widget_arrow "+u.className;var f=e.renderer.$cursorLayer.getPixelPosition(a).left;m.style.left=f+e.renderer.gutterWidth-5+"px",p.el.className="error_widget_wrapper",g.className="error_widget "+u.className,g.innerHTML=u.text.join("
    "),g.appendChild(i.createElement("div"));var y=function(e,t,n){if(0===t&&("esc"===n||"return"===n))return p.destroy(),{command:"null"}};p.destroy=function(){e.$mouseHandler.isMousePressed||(e.keyBinding.removeKeyboardHandler(y),n.widgetManager.removeLineWidget(p),e.off("changeSelection",p.destroy),e.off("changeSession",p.destroy),e.off("mouseup",p.destroy),e.off("change",p.destroy))},e.keyBinding.addKeyboardHandler(y),e.on("changeSelection",p.destroy),e.on("changeSession",p.destroy),e.on("mouseup",p.destroy),e.on("change",p.destroy),e.session.widgetManager.addLineWidget(p),p.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:p.el.offsetHeight})},i.importCssString("\n .error_widget_wrapper {\n background: inherit;\n color: inherit;\n border:none\n }\n .error_widget {\n border-top: solid 2px;\n border-bottom: solid 2px;\n margin: 5px 0;\n padding: 10px 40px;\n white-space: pre-wrap;\n }\n .error_widget.ace_error, .error_widget_arrow.ace_error{\n border-color: #ff5a5a\n }\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\n border-color: #F1D817\n }\n .error_widget.ace_info, .error_widget_arrow.ace_info{\n border-color: #5a5a5a\n }\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\n border-color: #5aaa5a\n }\n .error_widget_arrow {\n position: absolute;\n border: solid 5px;\n border-top-color: transparent!important;\n border-right-color: transparent!important;\n border-left-color: transparent!important;\n top: -5px;\n }\n","error_marker.css",!1)})),ace.define("ace/ace",["require","exports","module","ace/lib/dom","ace/range","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config","ace/loader_build"],(function(e,t,n){"use strict";e("./loader_build")(t);var o=e("./lib/dom"),i=e("./range").Range,r=e("./editor").Editor,s=e("./edit_session").EditSession,a=e("./undomanager").UndoManager,l=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.edit=function(e,n){if("string"==typeof e){var i=e;if(!(e=document.getElementById(i)))throw new Error("ace.edit can't find div #"+i)}if(e&&e.env&&e.env.editor instanceof r)return e.env.editor;var s="";if(e&&/input|textarea/i.test(e.tagName)){var a=e;s=a.value,e=o.createElement("pre"),a.parentNode.replaceChild(e,a)}else e&&(s=e.textContent,e.innerHTML="");var c=t.createEditSession(s),u=new r(new l(e),c,n),h={document:c,editor:u,onResize:u.resize.bind(u,null)};return a&&(h.textarea=a),u.on("destroy",(function(){h.editor.container.env=null})),u.container.env=u.env=h,u},t.createEditSession=function(e,t){var n=new s(e,t);return n.setUndoManager(new a),n},t.Range=i,t.Editor=r,t.EditSession=s,t.UndoManager=a,t.VirtualRenderer=l,t.version=t.config.version})),ace.require(["ace/ace"],(function(t){t&&(t.config.init(!0),t.define=ace.define);var n=function(){return this}();for(var o in n||"undefined"==typeof window||(n=window),n||"undefined"==typeof self||(n=self),n.ace||(n.ace=t),t)t.hasOwnProperty(o)&&(n.ace[o]=t[o]);n.ace.default=n.ace,e&&(e.exports=n.ace)}))},134:(e,t,n)=>{e=n.nmd(e),ace.define("ace/ext/beautify",["require","exports","module","ace/token_iterator"],(function(e,t,n){"use strict";var o=e("../token_iterator").TokenIterator;function i(e,t){return e.type.lastIndexOf(t+".xml")>-1}t.singletonTags=["area","base","br","col","command","embed","hr","html","img","input","keygen","link","meta","param","source","track","wbr"],t.blockTags=["article","aside","blockquote","body","div","dl","fieldset","footer","form","head","header","html","nav","ol","p","script","section","style","table","tbody","tfoot","thead","ul"],t.formatOptions={lineBreaksAfterCommasInCurlyBlock:!0},t.beautify=function(e){for(var n,r,s,a=new o(e,0,0),l=a.getCurrentToken(),c=e.getTabString(),u=t.singletonTags,h=t.blockTags,d=t.formatOptions||{},p=!1,g=!1,m=!1,f="",y="",v="",b=0,w=0,x=0,k=0,C=0,$=0,S=0,E=0,O=0,T=!1,A=!1,_=!1,L=!1,M={0:0},R=[],N=!1,I=function(){n&&n.value&&"string.regexp"!==n.type&&(n.value=n.value.replace(/^\s*/,""))},P=function(){for(var e=f.length-1;0!=e&&" "===f[e];)e-=1;f=f.slice(0,e+1)},D=function(){f=f.trimRight(),p=!1};null!==l;){if(E=a.getCurrentTokenRow(),a.$rowTokens,n=a.stepForward(),void 0!==l){if(y=l.value,C=0,_="style"===v||"ace/mode/css"===e.$modeId,i(l,"tag-open")?(A=!0,n&&(L=-1!==h.indexOf(n.value)),"0;O--)f+="\n";p=!0,i(l,"comment")||l.type.match(/^(comment|string)$/)||(y=y.trimLeft())}if(y){if("keyword"===l.type&&y.match(/^(if|else|elseif|for|foreach|while|switch)$/)?(R[b]=y,I(),m=!0,y.match(/^(else|elseif)$/)&&f.match(/\}[\s]*$/)&&(D(),g=!0)):"paren.lparen"===l.type?(I(),"{"===y.substr(-1)&&(m=!0,T=!1,A||(O=1)),"{"===y.substr(0,1)&&(g=!0,"["!==f.substr(-1)&&"["===f.trimRight().substr(-1)?(D(),g=!1):")"===f.trimRight().substr(-1)?D():P())):"paren.rparen"===l.type?(C=1,"}"===y.substr(0,1)&&("case"===R[b-1]&&C++,"{"===f.trimRight().substr(-1)?D():(g=!0,_&&(O+=2))),"]"===y.substr(0,1)&&"}"!==f.substr(-1)&&"}"===f.trimRight().substr(-1)&&(g=!1,k++,D()),")"===y.substr(0,1)&&"("!==f.substr(-1)&&"("===f.trimRight().substr(-1)&&(g=!1,k++,D()),P()):"keyword.operator"!==l.type&&"keyword"!==l.type||!y.match(/^(=|==|===|!=|!==|&&|\|\||and|or|xor|\+=|.=|>|>=|<|<=|=>)$/)?"punctuation.operator"===l.type&&";"===y?(D(),I(),m=!0,_&&O++):"punctuation.operator"===l.type&&y.match(/^(:|,)$/)?(D(),I(),y.match(/^(,)$/)&&S>0&&0===$&&d.lineBreaksAfterCommasInCurlyBlock?O++:(m=!0,p=!1)):"support.php_tag"!==l.type||"?>"!==y||p?i(l,"attribute-name")&&f.substr(-1).match(/^\s$/)?g=!0:i(l,"attribute-equals")?(P(),I()):i(l,"tag-close")?(P(),"/>"===y&&(g=!0)):"keyword"===l.type&&y.match(/^(case|default)$/)&&N&&(C=1):(D(),g=!0):(D(),I(),g=!0,m=!0),p&&(!l.type.match(/^(comment)$/)||y.substr(0,1).match(/^[/#]$/))&&(!l.type.match(/^(string)$/)||y.substr(0,1).match(/^['"@]$/))){if(k=x,b>w)for(k++,s=b;s>w;s--)M[s]=k;else b"===y)&&(O=L&&n&&""===y&&b--),i(l,"tag-name")&&(v=y),r=E}}l=n}f=f.trim(),e.doc.setValue(f)},t.commands=[{name:"beautify",description:"Format selection (Beautify)",exec:function(e){t.beautify(e.session)},bindKey:"Ctrl-Shift-B"}]})),ace.require(["ace/ext/beautify"],(function(t){e&&(e.exports=t)}))},604:(e,t,n)=>{e=n.nmd(e),ace.define("ace/ext/searchbox-css",["require","exports","module"],(function(e,t,n){n.exports='\n\n/* ------------------------------------------------------------------------------------------\n * Editor Search Form\n * --------------------------------------------------------------------------------------- */\n.ace_search {\n background-color: #ddd;\n color: #666;\n border: 1px solid #cbcbcb;\n border-top: 0 none;\n overflow: hidden;\n margin: 0;\n padding: 4px 6px 0 4px;\n position: absolute;\n top: 0;\n z-index: 99;\n white-space: normal;\n}\n.ace_search.left {\n border-left: 0 none;\n border-radius: 0px 0px 5px 0px;\n left: 0;\n}\n.ace_search.right {\n border-radius: 0px 0px 0px 5px;\n border-right: 0 none;\n right: 0;\n}\n\n.ace_search_form, .ace_replace_form {\n margin: 0 20px 4px 0;\n overflow: hidden;\n line-height: 1.9;\n}\n.ace_replace_form {\n margin-right: 0;\n}\n.ace_search_form.ace_nomatch {\n outline: 1px solid red;\n}\n\n.ace_search_field {\n border-radius: 3px 0 0 3px;\n background-color: white;\n color: black;\n border: 1px solid #cbcbcb;\n border-right: 0 none;\n outline: 0;\n padding: 0;\n font-size: inherit;\n margin: 0;\n line-height: inherit;\n padding: 0 6px;\n min-width: 17em;\n vertical-align: top;\n min-height: 1.8em;\n box-sizing: content-box;\n}\n.ace_searchbtn {\n border: 1px solid #cbcbcb;\n line-height: inherit;\n display: inline-block;\n padding: 0 6px;\n background: #fff;\n border-right: 0 none;\n border-left: 1px solid #dcdcdc;\n cursor: pointer;\n margin: 0;\n position: relative;\n color: #666;\n}\n.ace_searchbtn:last-child {\n border-radius: 0 3px 3px 0;\n border-right: 1px solid #cbcbcb;\n}\n.ace_searchbtn:disabled {\n background: none;\n cursor: default;\n}\n.ace_searchbtn:hover {\n background-color: #eef1f6;\n}\n.ace_searchbtn.prev, .ace_searchbtn.next {\n padding: 0px 0.7em\n}\n.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\n content: "";\n border: solid 2px #888;\n width: 0.5em;\n height: 0.5em;\n border-width: 2px 0 0 2px;\n display:inline-block;\n transform: rotate(-45deg);\n}\n.ace_searchbtn.next:after {\n border-width: 0 2px 2px 0 ;\n}\n.ace_searchbtn_close {\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\n border-radius: 50%;\n border: 0 none;\n color: #656565;\n cursor: pointer;\n font: 16px/16px Arial;\n padding: 0;\n height: 14px;\n width: 14px;\n top: 9px;\n right: 7px;\n position: absolute;\n}\n.ace_searchbtn_close:hover {\n background-color: #656565;\n background-position: 50% 100%;\n color: white;\n}\n\n.ace_button {\n margin-left: 2px;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -o-user-select: none;\n -ms-user-select: none;\n user-select: none;\n overflow: hidden;\n opacity: 0.7;\n border: 1px solid rgba(100,100,100,0.23);\n padding: 1px;\n box-sizing: border-box!important;\n color: black;\n}\n\n.ace_button:hover {\n background-color: #eee;\n opacity:1;\n}\n.ace_button:active {\n background-color: #ddd;\n}\n\n.ace_button.checked {\n border-color: #3399ff;\n opacity:1;\n}\n\n.ace_search_options{\n margin-bottom: 3px;\n text-align: right;\n -webkit-user-select: none;\n -moz-user-select: none;\n -o-user-select: none;\n -ms-user-select: none;\n user-select: none;\n clear: both;\n}\n\n.ace_search_counter {\n float: left;\n font-family: arial;\n padding: 0 8px;\n}'})),ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/ext/searchbox-css","ace/keyboard/hash_handler","ace/lib/keys","ace/config"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=e("../lib/lang"),r=e("../lib/event"),s=e("./searchbox-css"),a=e("../keyboard/hash_handler").HashHandler,l=e("../lib/keys"),c=e("../config").nls;o.importCssString(s,"ace_searchbox",!1);var u=function(){function e(e,t,n){var i=o.createElement("div");o.buildDom(["div",{class:"ace_search right"},["span",{action:"hide",class:"ace_searchbtn_close"}],["div",{class:"ace_search_form"},["input",{class:"ace_search_field",placeholder:c("Search for"),spellcheck:"false"}],["span",{action:"findPrev",class:"ace_searchbtn prev"},"​"],["span",{action:"findNext",class:"ace_searchbtn next"},"​"],["span",{action:"findAll",class:"ace_searchbtn",title:"Alt-Enter"},c("All")]],["div",{class:"ace_replace_form"},["input",{class:"ace_search_field",placeholder:c("Replace with"),spellcheck:"false"}],["span",{action:"replaceAndFindNext",class:"ace_searchbtn"},c("Replace")],["span",{action:"replaceAll",class:"ace_searchbtn"},c("All")]],["div",{class:"ace_search_options"},["span",{action:"toggleReplace",class:"ace_button",title:c("Toggle Replace mode"),style:"float:left;margin-top:-2px;padding:0 5px;"},"+"],["span",{class:"ace_search_counter"}],["span",{action:"toggleRegexpMode",class:"ace_button",title:c("RegExp Search")},".*"],["span",{action:"toggleCaseSensitive",class:"ace_button",title:c("CaseSensitive Search")},"Aa"],["span",{action:"toggleWholeWords",class:"ace_button",title:c("Whole Word Search")},"\\b"],["span",{action:"searchInSelection",class:"ace_button",title:c("Search In Selection")},"S"]]],i),this.element=i.firstChild,this.setSession=this.setSession.bind(this),this.$init(),this.setEditor(e),o.importCssString(s,"ace_searchbox",e.container)}return e.prototype.setEditor=function(e){e.searchBox=this,e.renderer.scroller.appendChild(this.element),this.editor=e},e.prototype.setSession=function(e){this.searchRange=null,this.$syncOptions(!0)},e.prototype.$initElements=function(e){this.searchBox=e.querySelector(".ace_search_form"),this.replaceBox=e.querySelector(".ace_replace_form"),this.searchOption=e.querySelector("[action=searchInSelection]"),this.replaceOption=e.querySelector("[action=toggleReplace]"),this.regExpOption=e.querySelector("[action=toggleRegexpMode]"),this.caseSensitiveOption=e.querySelector("[action=toggleCaseSensitive]"),this.wholeWordOption=e.querySelector("[action=toggleWholeWords]"),this.searchInput=this.searchBox.querySelector(".ace_search_field"),this.replaceInput=this.replaceBox.querySelector(".ace_search_field"),this.searchCounter=e.querySelector(".ace_search_counter")},e.prototype.$init=function(){var e=this.element;this.$initElements(e);var t=this;r.addListener(e,"mousedown",(function(e){setTimeout((function(){t.activeInput.focus()}),0),r.stopPropagation(e)})),r.addListener(e,"click",(function(e){var n=(e.target||e.srcElement).getAttribute("action");n&&t[n]?t[n]():t.$searchBarKb.commands[n]&&t.$searchBarKb.commands[n].exec(t),r.stopPropagation(e)})),r.addCommandKeyListener(e,(function(e,n,o){var i=l.keyCodeToString(o),s=t.$searchBarKb.findKeyCommand(n,i);s&&s.exec&&(s.exec(t),r.stopEvent(e))})),this.$onChange=i.delayedCall((function(){t.find(!1,!1)})),r.addListener(this.searchInput,"input",(function(){t.$onChange.schedule(20)})),r.addListener(this.searchInput,"focus",(function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()})),r.addListener(this.replaceInput,"focus",(function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()}))},e.prototype.setSearchRange=function(e){this.searchRange=e,e?this.searchRangeMarker=this.editor.session.addMarker(e,"ace_active-line"):this.searchRangeMarker&&(this.editor.session.removeMarker(this.searchRangeMarker),this.searchRangeMarker=null)},e.prototype.$syncOptions=function(e){o.setCssClass(this.replaceOption,"checked",this.searchRange),o.setCssClass(this.searchOption,"checked",this.searchOption.checked),this.replaceOption.textContent=this.replaceOption.checked?"-":"+",o.setCssClass(this.regExpOption,"checked",this.regExpOption.checked),o.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked),o.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked);var t=this.editor.getReadOnly();this.replaceOption.style.display=t?"none":"",this.replaceBox.style.display=this.replaceOption.checked&&!t?"":"none",this.find(!1,!1,e)},e.prototype.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},e.prototype.find=function(e,t,n){var i=!this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:n,range:this.searchRange})&&this.searchInput.value;o.setCssClass(this.searchBox,"ace_nomatch",i),this.editor._emit("findSearchBox",{match:!i}),this.highlight(),this.updateCounter()},e.prototype.updateCounter=function(){var e=this.editor,t=e.$search.$options.re,n=t.unicode,o=0,r=0;if(t){var s=this.searchRange?e.session.getTextRange(this.searchRange):e.getValue(),a=e.session.doc.positionToIndex(e.selection.anchor);this.searchRange&&(a-=e.session.doc.positionToIndex(this.searchRange.start));for(var l,u=t.lastIndex=0;(l=t.exec(s))&&(o++,(u=l.index)<=a&&r++,!(o>999))&&(l[0]||(t.lastIndex=u+=i.skipEmptyMatch(s,u,n),!(u>=s.length))););}this.searchCounter.textContent=c("$0 of $1",[r,o>999?"999+":o])},e.prototype.findNext=function(){this.find(!0,!1)},e.prototype.findPrev=function(){this.find(!0,!0)},e.prototype.findAll=function(){var e=!this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked})&&this.searchInput.value;o.setCssClass(this.searchBox,"ace_nomatch",e),this.editor._emit("findSearchBox",{match:!e}),this.highlight(),this.hide()},e.prototype.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},e.prototype.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},e.prototype.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},e.prototype.hide=function(){this.active=!1,this.setSearchRange(null),this.editor.off("changeSession",this.setSession),this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},e.prototype.show=function(e,t){this.active=!0,this.editor.on("changeSession",this.setSession),this.element.style.display="",this.replaceOption.checked=t,e&&(this.searchInput.value=e),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb),this.$syncOptions(!0)},e.prototype.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput},e}(),h=new a;h.bindKeys({"Ctrl-f|Command-f":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?"":"none",e.replaceOption.checked=!1,e.$syncOptions(),e.searchInput.focus()},"Ctrl-H|Command-Option-F":function(e){e.editor.getReadOnly()||(e.replaceOption.checked=!0,e.$syncOptions(),e.replaceInput.focus())},"Ctrl-G|Command-G":function(e){e.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(e){e.findPrev()},esc:function(e){setTimeout((function(){e.hide()}))},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},"Shift-Return":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},"Alt-Return":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),h.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}},{name:"toggleReplace",exec:function(e){e.replaceOption.checked=!e.replaceOption.checked,e.$syncOptions()}},{name:"searchInSelection",exec:function(e){e.searchOption.checked=!e.searchRange,e.setSearchRange(e.searchOption.checked&&e.editor.getSelectionRange()),e.$syncOptions()}}]);var d=new a([{bindKey:"Esc",name:"closeSearchBar",exec:function(e){e.searchBox.hide()}}]);u.prototype.$searchBarKb=h,u.prototype.$closeSearchBarKb=d,t.SearchBox=u,t.Search=function(e,t){(e.searchBox||new u(e)).show(e.session.getTextRange(),t)}})),ace.require(["ace/ext/searchbox"],(function(t){e&&(e.exports=t)}))},549:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=(e("../lib/lang"),e("./text_highlight_rules").TextHighlightRules),r=t.supportType="align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index",s=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|flex-end|flex-start|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom",l=t.supportConstantColor="aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen",c=t.supportConstantFonts="arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",u=t.numRe="\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",d=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",p=function(){var e=this.createKeywordMapper({"support.function":s,"support.constant":a,"support.type":r,"support.constant.color":l,"support.constant.fonts":c},"text",!0);this.$rules={start:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"paren.rparen",regex:"\\}"},{token:"string",regex:"@(?!viewport)",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"keyword",regex:"%"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant.numeric",regex:u},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"start"},{token:"paren.rparen",regex:"\\}",next:"start"},{token:"string",regex:";",next:"start"},{token:"keyword",regex:"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)"}],comments:[{token:"comment",regex:"\\/\\*",push:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}]}],ruleset:[{regex:"-(webkit|ms|moz|o)-",token:"text"},{token:"punctuation.operator",regex:"[:;]"},{token:"paren.rparen",regex:"\\}",next:"start"},{include:["strings","url","comments"]},{token:["constant.numeric","keyword"],regex:"("+u+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"},{token:"constant.numeric",regex:u},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:d},{include:"url"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}],url:[{token:"support.function",regex:"(?:url(:?-prefix)?|domain|regexp)\\(",push:[{token:"support.function",regex:"\\)",next:"pop"},{defaultToken:"string"}]}],strings:[{token:"string.start",regex:"'",push:[{token:"string.end",regex:"'|$",next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]},{token:"string.start",regex:'"',push:[{token:"string.end",regex:'"|$',next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]}],escapes:[{token:"constant.language.escape",regex:/\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/}]},this.normalizeRules()};o.inherits(p,i),t.CssHighlightRules=p})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/css_completions",["require","exports","module"],(function(e,t,n){"use strict";var o={background:{"#$0":1},"background-color":{"#$0":1,transparent:1,fixed:1},"background-image":{"url('/$0')":1},"background-repeat":{repeat:1,"repeat-x":1,"repeat-y":1,"no-repeat":1,inherit:1},"background-position":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},"background-attachment":{scroll:1,fixed:1},"background-size":{cover:1,contain:1},"background-clip":{"border-box":1,"padding-box":1,"content-box":1},"background-origin":{"border-box":1,"padding-box":1,"content-box":1},border:{"solid $0":1,"dashed $0":1,"dotted $0":1,"#$0":1},"border-color":{"#$0":1},"border-style":{solid:2,dashed:2,dotted:2,double:2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},"border-collapse":{collapse:1,separate:1},bottom:{px:1,em:1,"%":1},clear:{left:1,right:1,both:1,none:1},color:{"#$0":1,"rgb(#$00,0,0)":1},cursor:{default:1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,"n-resize":1,"ne-resize":1,"e-resize":1,"se-resize":1,"s-resize":1,"sw-resize":1,"w-resize":1,"nw-resize":1},display:{none:1,block:1,inline:1,"inline-block":1,"table-cell":1},"empty-cells":{show:1,hide:1},float:{left:1,right:1,none:1},"font-family":{Arial:2,"Comic Sans MS":2,Consolas:2,"Courier New":2,Courier:2,Georgia:2,Monospace:2,"Sans-Serif":2,"Segoe UI":2,Tahoma:2,"Times New Roman":2,"Trebuchet MS":2,Verdana:1},"font-size":{px:1,em:1,"%":1},"font-weight":{bold:1,normal:1},"font-style":{italic:1,normal:1},"font-variant":{normal:1,"small-caps":1},height:{px:1,em:1,"%":1},left:{px:1,em:1,"%":1},"letter-spacing":{normal:1},"line-height":{normal:1},"list-style-type":{none:1,disc:1,circle:1,square:1,decimal:1,"decimal-leading-zero":1,"lower-roman":1,"upper-roman":1,"lower-greek":1,"lower-latin":1,"upper-latin":1,georgian:1,"lower-alpha":1,"upper-alpha":1},margin:{px:1,em:1,"%":1},"margin-right":{px:1,em:1,"%":1},"margin-left":{px:1,em:1,"%":1},"margin-top":{px:1,em:1,"%":1},"margin-bottom":{px:1,em:1,"%":1},"max-height":{px:1,em:1,"%":1},"max-width":{px:1,em:1,"%":1},"min-height":{px:1,em:1,"%":1},"min-width":{px:1,em:1,"%":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},"overflow-x":{hidden:1,visible:1,auto:1,scroll:1},"overflow-y":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,"%":1},"padding-top":{px:1,em:1,"%":1},"padding-right":{px:1,em:1,"%":1},"padding-bottom":{px:1,em:1,"%":1},"padding-left":{px:1,em:1,"%":1},"page-break-after":{auto:1,always:1,avoid:1,left:1,right:1},"page-break-before":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,static:1},right:{px:1,em:1,"%":1},"table-layout":{fixed:1,auto:1},"text-decoration":{none:1,underline:1,"line-through":1,blink:1},"text-align":{left:1,right:1,center:1,justify:1},"text-transform":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,"%":1},"vertical-align":{top:1,bottom:1},visibility:{hidden:1,visible:1},"white-space":{nowrap:1,normal:1,pre:1,"pre-line":1,"pre-wrap":1},width:{px:1,em:1,"%":1},"word-spacing":{normal:1},filter:{"alpha(opacity=$0100)":1},"text-shadow":{"$02px 2px 2px #777":1},"text-overflow":{"ellipsis-word":1,clip:1,ellipsis:1},"-moz-border-radius":1,"-moz-border-radius-topright":1,"-moz-border-radius-bottomright":1,"-moz-border-radius-topleft":1,"-moz-border-radius-bottomleft":1,"-webkit-border-radius":1,"-webkit-border-top-right-radius":1,"-webkit-border-top-left-radius":1,"-webkit-border-bottom-right-radius":1,"-webkit-border-bottom-left-radius":1,"-moz-box-shadow":1,"-webkit-box-shadow":1,transform:{"rotate($00deg)":1,"skew($00deg)":1},"-moz-transform":{"rotate($00deg)":1,"skew($00deg)":1},"-webkit-transform":{"rotate($00deg)":1,"skew($00deg)":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement("c").style;for(var t in e)if("string"==typeof e[t]){var n=t.replace(/[A-Z]/g,(function(e){return"-"+e.toLowerCase()}));o.hasOwnProperty(n)||(o[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,o){if(this.completionsDefined||this.defineCompletions(),"ruleset"===e||"ace/mode/scss"==t.$mode.$id){var i=t.getLine(n.row).substr(0,n.column),r=/\([^)]*$/.test(i);return r&&(i=i.substr(i.lastIndexOf("(")+1)),/:[^;]+$/.test(i)?(/([\w\-]+):[^:]*$/.test(i),this.getPropertyValueCompletions(e,t,n,o)):this.getPropertyCompletions(e,t,n,o,r)}return[]},this.getPropertyCompletions=function(e,t,n,i,r){return r=r||!1,Object.keys(o).map((function(e){return{caption:e,snippet:e+": $0"+(r?"":";"),meta:"property",score:1e6}}))},this.getPropertyValueCompletions=function(e,t,n,i){var r=t.getLine(n.row).substr(0,n.column),s=(/([\w\-]+):[^:]*$/.exec(r)||{})[1];if(!s)return[];var a=[];return s in o&&"object"==typeof o[s]&&(a=Object.keys(o[s])),a.map((function(e){return{caption:e,snippet:e,meta:"property value",score:1e6}}))}}).call(i.prototype),t.CssCompletions=i})),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=(e("../behaviour").Behaviour,e("./cstyle").CstyleBehaviour),r=e("../../token_iterator").TokenIterator,s=function(){this.inherit(i),this.add("colon","insertion",(function(e,t,n,o,i){if(":"===i&&n.selection.isEmpty()){var s=n.getCursorPosition(),a=new r(o,s.row,s.column),l=a.getCurrentToken();if(l&&l.value.match(/\s+/)&&(l=a.stepBackward()),l&&"support.type"===l.type){var c=o.doc.getLine(s.row);if(":"===c.substring(s.column,s.column+1))return{text:"",selection:[1,1]};if(/^(\s+[^;]|\s*$)/.test(c.substring(s.column)))return{text:":;",selection:[1,1]}}}})),this.add("colon","deletion",(function(e,t,n,o,i){var s=o.doc.getTextRange(i);if(!i.isMultiLine()&&":"===s){var a=n.getCursorPosition(),l=new r(o,a.row,a.column),c=l.getCurrentToken();if(c&&c.value.match(/\s+/)&&(c=l.stepBackward()),c&&"support.type"===c.type&&";"===o.doc.getLine(i.start.row).substring(i.end.column,i.end.column+1))return i.end.column++,i}})),this.add("semicolon","insertion",(function(e,t,n,o,i){if(";"===i&&n.selection.isEmpty()){var r=n.getCursorPosition();if(";"===o.doc.getLine(r.row).substring(r.column,r.column+1))return{text:"",selection:[1,1]}}})),this.add("!important","insertion",(function(e,t,n,o,i){if("!"===i&&n.selection.isEmpty()){var r=n.getCursorPosition(),s=o.doc.getLine(r.row);if(/^\s*(;|}|$)/.test(s.substring(r.column)))return{text:"!important",selection:[10,10]}}}))};o.inherits(s,i),t.CssBehaviour=s})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./css_highlight_rules").CssHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../worker/worker_client").WorkerClient,l=e("./css_completions").CssCompletions,c=e("./behaviour/css").CssBehaviour,u=e("./folding/cstyle").FoldMode,h=function(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=new c,this.$completer=new l,this.foldingRules=new u};o.inherits(h,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;return i.length&&"comment"==i[i.length-1].type||t.match(/^.*\{\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,o){return this.$completer.getCompletions(e,t,n,o)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/css",this.snippetFileId="ace/snippets/css"}.call(h.prototype),t.Mode=h})),ace.require(["ace/mode/css"],(function(t){e&&(e.exports=t)}))},576:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},r.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};o.inherits(r,i),r.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},r.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},r.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=r})),ace.define("ace/mode/golang_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],(function(e,t,n){var o=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,r=e("./text_highlight_rules").TextHighlightRules,s=function(){var e=this.createKeywordMapper({keyword:"else|break|case|return|goto|if|const|select|continue|struct|default|switch|for|range|func|import|package|chan|defer|fallthrough|go|interface|map|range|select|type|var","constant.language":"nil|true|false|iota","support.function":"new|close|cap|copy|panic|panicln|print|println|len|make|delete|real|recover|imag|append","support.type":"string|uint8|uint16|uint32|uint64|int8|int16|int32|int64|float32|float64|complex64|complex128|byte|rune|uint|int|uintptr|bool|error"},""),t="\\\\(?:[0-7]{3}|x\\h{2}|u{4}|U\\h{6}|[abfnrtv'\"\\\\])".replace(/\\h/g,"[a-fA-F\\d]");this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},i.getStartRule("doc-start"),{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"string",regex:/"(?:[^"\\]|\\.)*?"/},{token:"string",regex:"`",next:"bqstring"},{token:"constant.numeric",regex:"'(?:[^\\'\ud800-\udbff]|[\ud800-\udbff][\udc00-\udfff]|"+t.replace('"',"")+")'"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:["keyword","text","entity.name.function"],regex:"(func)(\\s+)([a-zA-Z_$][a-zA-Z0-9_$]*)\\b"},{token:function(t){return"("==t[t.length-1]?[{type:e(t.slice(0,-1))||"support.function",value:t.slice(0,-1)},{type:"paren.lparen",value:t.slice(-1)}]:e(t)||"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b\\(?"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^="},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}],bqstring:[{token:"string",regex:"`",next:"start"},{defaultToken:"string"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};o.inherits(s,r),t.GolangHighlightRules=s})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/golang",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/golang_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle"],(function(e,t,n){var o=e("../lib/oop"),i=e("./text").Mode,r=e("./golang_highlight_rules").GolangHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=r,this.$outdent=new s,this.foldingRules=new a,this.$behaviour=this.$defaultBehaviour};o.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),r=i.tokens;return i.state,r.length&&"comment"==r[r.length-1].type||"start"==e&&t.match(/^.*[\{\(\[]\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/golang"}.call(l.prototype),t.Mode=l})),ace.require(["ace/mode/golang"],(function(t){e&&(e.exports=t)}))},395:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/jsdoc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:["comment.doc.tag","comment.doc.text","lparen.doc"],regex:"(@(?:param|member|typedef|property|namespace|var|const|callback))(\\s*)({)",push:[{token:"lparen.doc",regex:"{",push:[{include:"doc-syntax"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"}]},{token:["rparen.doc","text.doc","variable.parameter.doc","lparen.doc","variable.parameter.doc","rparen.doc"],regex:/(})(\s*)(?:([\w=:\/\.]+)|(?:(\[)([\w=:\/\.]+)(\])))/,next:"pop"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"},{include:"doc-syntax"},{defaultToken:"text.doc"}]},{token:["comment.doc.tag","text.doc","lparen.doc"],regex:"(@(?:returns?|yields|type|this|suppress|public|protected|private|package|modifies|implements|external|exception|throws|enum|define|extends))(\\s*)({)",push:[{token:"lparen.doc",regex:"{",push:[{include:"doc-syntax"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"}]},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"},{include:"doc-syntax"},{defaultToken:"text.doc"}]},{token:["comment.doc.tag","text.doc","variable.parameter.doc"],regex:'(@(?:alias|memberof|instance|module|name|lends|namespace|external|this|template|requires|param|implements|function|extends|typedef|mixes|constructor|var|memberof\\!|event|listens|exports|class|constructs|interface|emits|fires|throws|const|callback|borrows|augments))(\\s+)(\\w[\\w#.:/~"\\-]*)?'},{token:["comment.doc.tag","text.doc","variable.parameter.doc"],regex:"(@method)(\\s+)(\\w[\\w.\\(\\)]*)"},{token:"comment.doc.tag",regex:"@access\\s+(?:private|public|protected)"},{token:"comment.doc.tag",regex:"@kind\\s+(?:class|constant|event|external|file|function|member|mixin|module|namespace|typedef)"},{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},r.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}],"doc-syntax":[{token:"operator.doc",regex:/[|:]/},{token:"paren.doc",regex:/[\[\]]/}]},this.normalizeRules()};o.inherits(r,i),r.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},r.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},r.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.JsDocCommentHighlightRules=r})),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/jsdoc_comment_highlight_rules","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./jsdoc_comment_highlight_rules").JsDocCommentHighlightRules,r=e("./text_highlight_rules").TextHighlightRules,s="[a-zA-Z\\$_¡-￿][a-zA-Z\\d\\$_¡-￿]*",a=function(e){var t=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static|constructor","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},"identifier"),n="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)";this.$rules={no_regex:[i.getStartRule("doc-start"),c("no_regex"),{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+s+")(\\.)(prototype)(\\.)("+s+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+s+")(\\.)("+s+")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+s+")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+s+")(\\.)("+s+")(\\s*)(=)(\\s*)(function\\*?)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function\\*?)(\\s+)("+s+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+s+")(\\s*)(:)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:"keyword",regex:"from(?=\\s*('|\"))"},{token:"keyword",regex:"(?:case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void)\\b",next:"start"},{token:"support.constant",regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:s},{token:"punctuation.operator",regex:/[.](?![.])/,next:"property"},{token:"storage.type",regex:/=>/,next:"start"},{token:"keyword.operator",regex:/--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],property:[{token:"text",regex:"\\s+"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+s+")(\\.)("+s+")(\\s*)(=)(\\s*)(function\\*?)(?:(\\s+)(\\w+))?(\\s*)(\\()",next:"function_arguments"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"support.function",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|lter|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward|rEach)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:"support.function.dom",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:"support.constant",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:"identifier",regex:s},{regex:"",token:"empty",next:"no_regex"}],start:[i.getStartRule("doc-start"),c("start"),{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+|^$",next:"start"},{token:"empty",regex:"",next:"no_regex"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/[sxngimy]*",next:"no_regex"},{token:"invalid",regex:/\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/},{token:"constant.language.delimiter",regex:/\|/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp"}],regex_character_class:[{token:"regexp.charclass.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp.charachterclass"}],default_parameter:[{token:"string",regex:"'(?=.)",push:[{token:"string",regex:"'|$",next:"pop"},{include:"qstring"}]},{token:"string",regex:'"(?=.)',push:[{token:"string",regex:'"|$',next:"pop"},{include:"qqstring"}]},{token:"constant.language",regex:"null|Infinity|NaN|undefined"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:"punctuation.operator",regex:",",next:"function_arguments"},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],function_arguments:[c("function_arguments"),{token:"variable.parameter",regex:s},{token:"punctuation.operator",regex:","},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],qqstring:[{token:"constant.language.escape",regex:n},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:n},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},e&&e.noES6||(this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){if(this.next="{"==e?this.nextState:"","{"==e&&n.length)n.unshift("start",t);else if("}"==e&&n.length&&(n.shift(),this.next=n.shift(),-1!=this.next.indexOf("string")||-1!=this.next.indexOf("jsx")))return"paren.quasi.end";return"{"==e?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:n},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]},{token:["variable.parameter","text"],regex:"("+s+")(\\s*)(?=\\=>)"},{token:"paren.lparen",regex:"(\\()(?=.+\\s*=>)",next:"function_arguments"},{token:"variable.language",regex:"(?:(?:(?:Weak)?(?:Set|Map))|Promise)\\b"}),this.$rules.function_arguments.unshift({token:"keyword.operator",regex:"=",next:"default_parameter"},{token:"keyword.operator",regex:"\\.{3}"}),this.$rules.property.unshift({token:"support.function",regex:"(findIndex|repeat|startsWith|endsWith|includes|isSafeInteger|trunc|cbrt|log2|log10|sign|then|catch|finally|resolve|reject|race|any|all|allSettled|keys|entries|isInteger)\\b(?=\\()"},{token:"constant.language",regex:"(?:MAX_SAFE_INTEGER|MIN_SAFE_INTEGER|EPSILON)\\b"}),e&&0==e.jsx||l.call(this)),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};function l(){var e=s.replace("\\d","\\d\\-"),t={onMatch:function(e,t,n){var o="/"==e.charAt(1)?2:1;return 1==o?(t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++):2==o&&t==this.nextState&&(n[1]--,(!n[1]||n[1]<0)&&(n.shift(),n.shift())),[{type:"meta.tag.punctuation."+(1==o?"":"end-")+"tag-open.xml",value:e.slice(0,o)},{type:"meta.tag.tag-name.xml",value:e.substr(o)}]},regex:"",onMatch:function(e,t,n){return t==n[0]&&n.shift(),2==e.length&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||"start",[{type:this.token,value:e}]},nextState:"jsx"},n,c("jsxAttributes"),{token:"entity.other.attribute-name.xml",regex:e},{token:"keyword.operator.attribute-equals.xml",regex:"="},{token:"text.tag-whitespace.xml",regex:"\\s+"},{token:"string.attribute-value.xml",regex:"'",stateName:"jsx_attr_q",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',stateName:"jsx_attr_qq",push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},t],this.$rules.reference=[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}]}function c(e){return[{token:"comment",regex:/\/\*/,next:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]},{token:"comment",regex:"\\/\\/",next:[i.getTagRule(),{token:"comment",regex:"$|^",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]}]}o.inherits(a,r),t.JavaScriptHighlightRules=a})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./javascript_highlight_rules").JavaScriptHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../worker/worker_client").WorkerClient,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,u=function(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=new l,this.foldingRules=new c};o.inherits(u,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$quotes={'"':'"',"'":"'","`":"`"},this.$pairQuotesAfter={"`":/\w/},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),r=i.tokens,s=i.state;if(r.length&&"comment"==r[r.length-1].type)return o;if("start"==e||"no_regex"==e)(a=t.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/))&&(o+=n);else if("doc-start"==e){if("start"==s||"no_regex"==s)return"";var a;(a=t.match(/^\s*(\/?)\*/))&&(a[1]&&(o+=" "),o+="* ")}return o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/javascript",this.snippetFileId="ace/snippets/javascript"}.call(u.prototype),t.Mode=u})),ace.require(["ace/mode/javascript"],(function(t){e&&(e.exports=t)}))},252:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"punctuation.operator",regex:/[,]/},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};o.inherits(r,i),t.JsonHighlightRules=r})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle","ace/worker/worker_client"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./json_highlight_rules").JsonHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./folding/cstyle").FoldMode,l=e("../worker/worker_client").WorkerClient,c=function(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new a};o.inherits(c,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t);return"start"==e&&t.match(/^.*[\{\(\[]\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new l(["ace"],"ace/mode/json_worker","JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/json"}.call(c.prototype),t.Mode=c})),ace.require(["ace/mode/json"],(function(t){e&&(e.exports=t)}))},711:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},r.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};o.inherits(r,i),r.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},r.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},r.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=r})),ace.define("ace/mode/jsx_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],(function(e,t,n){var o=e("../lib/oop"),i=e("../lib/lang"),r=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,a=function(){var e=i.arrayToMap("break|do|instanceof|typeof|case|else|new|var|catch|finally|return|void|continue|for|switch|default|while|function|this|if|throw|delete|in|try|class|extends|super|import|from|into|implements|interface|static|mixin|override|abstract|final|number|int|string|boolean|variant|log|assert".split("|")),t=i.arrayToMap("null|true|false|NaN|Infinity|__FILE__|__LINE__|undefined".split("|")),n=i.arrayToMap("debugger|with|const|export|let|private|public|yield|protected|extern|native|as|operator|__fake__|__readonly__".split("|")),o="[a-zA-Z_][a-zA-Z0-9_]*\\b";this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},r.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:["storage.type","text","entity.name.function"],regex:"(function)(\\s+)("+o+")"},{token:function(o){return"this"==o?"variable.language":"function"==o?"storage.type":e.hasOwnProperty(o)||n.hasOwnProperty(o)?"keyword":t.hasOwnProperty(o)?"constant.language":/^_?[A-Z][a-zA-Z0-9_]*$/.test(o)?"language.support.class":"identifier"},regex:o},{token:"keyword.operator",regex:"!|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({<]"},{token:"paren.rparen",regex:"[\\])}>]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]},this.embedRules(r,"doc-",[r.getEndRule("start")])};o.inherits(a,s),t.JsxHighlightRules=a})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/jsx",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/jsx_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./jsx_highlight_rules").JsxHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./folding/cstyle").FoldMode;function l(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new a}o.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;return i.length&&"comment"==i[i.length-1].type||"start"==e&&t.match(/^.*[\{\(\[]\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/jsx"}.call(l.prototype),t.Mode=l})),ace.require(["ace/mode/jsx"],(function(t){e&&(e.exports=t)}))},7:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/python_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){var e=this.createKeywordMapper({"invalid.deprecated":"debugger","support.function":"abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|binfile|bin|iter|property|tuple|bool|filter|len|range|type|bytearray|float|list|raw_input|unichr|callable|format|locals|reduce|unicode|chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|__import__|complex|hash|min|apply|delattr|help|next|setattr|set|buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern|ascii|breakpoint|bytes","variable.language":"self|cls","constant.language":"True|False|None|NotImplemented|Ellipsis|__debug__",keyword:"and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield|async|await|nonlocal"},"identifier"),t="[uU]?",n="[rR]",o="[fF]",i="(?:[rR][fF]|[fF][rR])",r="(?:(?:(?:[1-9]\\d*)|(?:0))|(?:0[oO]?[0-7]+)|(?:0[xX][\\dA-Fa-f]+)|(?:0[bB][01]+))",s="(?:\\d+)",a="(?:(?:"+s+"?(?:\\.\\d+))|(?:"+s+"\\.))",l="(?:(?:(?:"+a+"|"+s+")(?:[eE][+-]?\\d+))|"+a+")",c="\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\abfnrtv'\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})";this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string",regex:t+'"{3}',next:"qqstring3"},{token:"string",regex:t+'"(?=.)',next:"qqstring"},{token:"string",regex:t+"'{3}",next:"qstring3"},{token:"string",regex:t+"'(?=.)",next:"qstring"},{token:"string",regex:n+'"{3}',next:"rawqqstring3"},{token:"string",regex:n+'"(?=.)',next:"rawqqstring"},{token:"string",regex:n+"'{3}",next:"rawqstring3"},{token:"string",regex:n+"'(?=.)",next:"rawqstring"},{token:"string",regex:o+'"{3}',next:"fqqstring3"},{token:"string",regex:o+'"(?=.)',next:"fqqstring"},{token:"string",regex:o+"'{3}",next:"fqstring3"},{token:"string",regex:o+"'(?=.)",next:"fqstring"},{token:"string",regex:i+'"{3}',next:"rfqqstring3"},{token:"string",regex:i+'"(?=.)',next:"rfqqstring"},{token:"string",regex:i+"'{3}",next:"rfqstring3"},{token:"string",regex:i+"'(?=.)",next:"rfqstring"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|%|@|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"punctuation",regex:",|:|;|\\->|\\+=|\\-=|\\*=|\\/=|\\/\\/=|%=|@=|&=|\\|=|^=|>>=|<<=|\\*\\*="},{token:"paren.lparen",regex:"[\\[\\(\\{]"},{token:"paren.rparen",regex:"[\\]\\)\\}]"},{token:["keyword","text","entity.name.function"],regex:"(def|class)(\\s+)([\\u00BF-\\u1FFF\\u2C00-\\uD7FF\\w]+)"},{token:"text",regex:"\\s+"},{include:"constants"}],qqstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:'"{3}',next:"start"},{defaultToken:"string"}],qstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:"'{3}",next:"start"},{defaultToken:"string"}],qqstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"start"},{defaultToken:"string"}],rawqqstring3:[{token:"string",regex:'"{3}',next:"start"},{defaultToken:"string"}],rawqstring3:[{token:"string",regex:"'{3}",next:"start"},{defaultToken:"string"}],rawqqstring:[{token:"string",regex:"\\\\$",next:"rawqqstring"},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],rawqstring:[{token:"string",regex:"\\\\$",next:"rawqstring"},{token:"string",regex:"'|$",next:"start"},{defaultToken:"string"}],fqqstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:'"{3}',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:"'{3}",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqqstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"\\\\$",next:"fqqstring"},{token:"string",regex:'"|$',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"'|$",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqqstring3:[{token:"string",regex:'"{3}',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqstring3:[{token:"string",regex:"'{3}",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqqstring:[{token:"string",regex:"\\\\$",next:"rfqqstring"},{token:"string",regex:'"|$',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqstring:[{token:"string",regex:"'|$",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqstringParRules:[{token:"paren.lparen",regex:"[\\[\\(]"},{token:"paren.rparen",regex:"[\\]\\)]"},{token:"string",regex:"\\s+"},{token:"string",regex:"'[^']*'"},{token:"string",regex:'"[^"]*"'},{token:"function.support",regex:"(!s|!r|!a)"},{include:"constants"},{token:"paren.rparen",regex:"}",next:"pop"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"}],constants:[{token:"constant.numeric",regex:"(?:"+l+"|\\d+)[jJ]\\b"},{token:"constant.numeric",regex:l},{token:"constant.numeric",regex:r+"[lL]\\b"},{token:"constant.numeric",regex:r+"\\b"},{token:["punctuation","function.support"],regex:"(\\.)([a-zA-Z_]+)\\b"},{token:e,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"}]},this.normalizeRules()};o.inherits(r,i),t.PythonHighlightRules=r})),ace.define("ace/mode/folding/pythonic",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("./fold_mode").FoldMode,r=t.FoldMode=function(e){this.foldingStartMarker=new RegExp("([\\[{])(?:\\s*)$|("+e+")(?:\\s*)(?:#.*)?$")};o.inherits(r,i),function(){this.getFoldWidgetRange=function(e,t,n){var o=e.getLine(n).match(this.foldingStartMarker);if(o)return o[1]?this.openingBracketBlock(e,o[1],n,o.index):o[2]?this.indentationBlock(e,n,o.index+o[2].length):this.indentationBlock(e,n)}}.call(r.prototype)})),ace.define("ace/mode/python",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/python_highlight_rules","ace/mode/folding/pythonic","ace/range"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./python_highlight_rules").PythonHighlightRules,s=e("./folding/pythonic").FoldMode,a=e("../range").Range,l=function(){this.HighlightRules=r,this.foldingRules=new s("\\:"),this.$behaviour=this.$defaultBehaviour};o.inherits(l,i),function(){this.lineCommentStart="#",this.$pairQuotesAfter={"'":/[ruf]/i,'"':/[ruf]/i},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;return i.length&&"comment"==i[i.length-1].type||"start"==e&&t.match(/^.*[\{\(\[:]\s*$/)&&(o+=n),o};var e={pass:1,return:1,raise:1,break:1,continue:1};this.checkOutdent=function(t,n,o){if("\r\n"!==o&&"\r"!==o&&"\n"!==o)return!1;var i=this.getTokenizer().getLineTokens(n.trim(),t).tokens;if(!i)return!1;do{var r=i.pop()}while(r&&("comment"==r.type||"text"==r.type&&r.value.match(/^\s+$/)));return!!r&&"keyword"==r.type&&e[r.value]},this.autoOutdent=function(e,t,n){n+=1;var o=this.$getIndent(t.getLine(n)),i=t.getTabString();o.slice(-i.length)==i&&t.remove(new a(n,o.length-i.length,n,o.length))},this.$id="ace/mode/python",this.snippetFileId="ace/snippets/python"}.call(l.prototype),t.Mode=l})),ace.require(["ace/mode/python"],(function(t){e&&(e.exports=t)}))},202:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(e){var t="[_:a-zA-ZÀ-￿][-_:.a-zA-Z0-9À-￿]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.start.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"",next:"start"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.end.xml",regex:"--\x3e",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:t},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===r&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),o.inherits(r,i),t.XmlHighlightRules=r})),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../behaviour").Behaviour,r=e("../../token_iterator").TokenIterator;function s(e,t){return e&&e.type.lastIndexOf(t+".xml")>-1}e("../../lib/lang");var a=function(){this.add("string_dquotes","insertion",(function(e,t,n,o,i){if('"'==i||"'"==i){var a=i,l=o.doc.getTextRange(n.getSelectionRange());if(""!==l&&"'"!==l&&'"'!=l&&n.getWrapBehavioursEnabled())return{text:a+l+a,selection:!1};var c=n.getCursorPosition(),u=o.doc.getLine(c.row).substring(c.column,c.column+1),h=new r(o,c.row,c.column),d=h.getCurrentToken();if(u==a&&(s(d,"attribute-value")||s(d,"string")))return{text:"",selection:[1,1]};if(d||(d=h.stepBackward()),!d)return;for(;s(d,"tag-whitespace")||s(d,"whitespace");)d=h.stepBackward();var p=!u||u.match(/\s/);if(s(d,"attribute-equals")&&(p||">"==u)||s(d,"decl-attribute-equals")&&(p||"?"==u))return{text:a+a,selection:[1,1]}}})),this.add("string_dquotes","deletion",(function(e,t,n,o,i){var r=o.doc.getTextRange(i);if(!i.isMultiLine()&&('"'==r||"'"==r)&&o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)==r)return i.end.column++,i})),this.add("autoclosing","insertion",(function(e,t,n,o,i){if(">"==i){var a=n.getSelectionRange().start,l=new r(o,a.row,a.column),c=l.getCurrentToken()||l.stepBackward();if(!c||!(s(c,"tag-name")||s(c,"tag-whitespace")||s(c,"attribute-name")||s(c,"attribute-equals")||s(c,"attribute-value")))return;if(s(c,"reference.attribute-value"))return;if(s(c,"attribute-value")){var u=l.getCurrentTokenColumn()+c.value.length;if(a.column/.test(o.getLine(a.row).slice(a.column)))return;for(;!s(c,"tag-name");)if("<"==(c=l.stepBackward()).value){c=l.stepForward();break}var d=l.getCurrentTokenRow(),p=l.getCurrentTokenColumn();if(s(l.stepBackward(),"end-tag-open"))return;var g=c.value;if(d==a.row&&(g=g.substring(0,a.column-p)),this.voidElements.hasOwnProperty(g.toLowerCase()))return;return{text:">",selection:[1,1]}}})),this.add("autoindent","insertion",(function(e,t,n,o,i){if("\n"==i){var s=n.getCursorPosition(),a=o.getLine(s.row),l=new r(o,s.row,s.column),c=l.getCurrentToken();if(c&&-1!==c.type.indexOf("tag-close")){if("/>"==c.value)return;for(;c&&-1===c.type.indexOf("tag-name");)c=l.stepBackward();if(!c)return;var u=c.value,h=l.getCurrentTokenRow();if(!(c=l.stepBackward())||-1!==c.type.indexOf("end-tag"))return;if(this.voidElements&&!this.voidElements[u]){var d=o.getTokenAt(s.row,s.column+1),p=(a=o.getLine(h),this.$getIndent(a)),g=p+o.getTabString();return d&&"-1}(function(){this.getFoldWidget=function(e,t,n){var o=this._getFirstTagInLine(e,n);return o?o.closing||!o.tagName&&o.selfClosing?"markbeginend"===t?"end":"":!o.tagName||o.selfClosing||this.voidElements.hasOwnProperty(o.tagName.toLowerCase())||this._findEndTagInLine(e,n,o.tagName,o.end.column)?"":"start":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/"==r.value;break}return o}if(l(r,"tag-close"))return o.selfClosing="/>"==r.value,o;o.start.column+=r.value.length}return null},this._findEndTagInLine=function(e,t,n,o){for(var i=e.getTokens(t),r=0,s=0;s{e=n.nmd(e),ace.define("ace/theme/github-css",["require","exports","module"],(function(e,t,n){n.exports='/* CSS style content from github\'s default pygments highlighter template.\n Cursor and selection styles from textmate.css. */\n.ace-github .ace_gutter {\n background: #e8e8e8;\n color: #AAA;\n}\n\n.ace-github {\n background: #fff;\n color: #000;\n}\n\n.ace-github .ace_keyword {\n font-weight: bold;\n}\n\n.ace-github .ace_string {\n color: #D14;\n}\n\n.ace-github .ace_variable.ace_class {\n color: teal;\n}\n\n.ace-github .ace_constant.ace_numeric {\n color: #099;\n}\n\n.ace-github .ace_constant.ace_buildin {\n color: #0086B3;\n}\n\n.ace-github .ace_support.ace_function {\n color: #0086B3;\n}\n\n.ace-github .ace_comment {\n color: #998;\n font-style: italic;\n}\n\n.ace-github .ace_variable.ace_language {\n color: #0086B3;\n}\n\n.ace-github .ace_paren {\n font-weight: bold;\n}\n\n.ace-github .ace_boolean {\n font-weight: bold;\n}\n\n.ace-github .ace_string.ace_regexp {\n color: #009926;\n font-weight: normal;\n}\n\n.ace-github .ace_variable.ace_instance {\n color: teal;\n}\n\n.ace-github .ace_constant.ace_language {\n font-weight: bold;\n}\n\n.ace-github .ace_cursor {\n color: black;\n}\n\n.ace-github.ace_focus .ace_marker-layer .ace_active-line {\n background: rgb(255, 255, 204);\n}\n.ace-github .ace_marker-layer .ace_active-line {\n background: rgb(245, 245, 245);\n}\n\n.ace-github .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-github.ace_multiselect .ace_selection.ace_start {\n box-shadow: 0 0 3px 0px white;\n}\n/* bold keywords cause cursor issues for some fonts */\n/* this disables bold style for editor and keeps for static highlighter */\n.ace-github.ace_nobold .ace_line > span {\n font-weight: normal !important;\n}\n\n.ace-github .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-github .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-github .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-github .ace_gutter-active-line {\n background-color : rgba(0, 0, 0, 0.07);\n}\n\n.ace-github .ace_marker-layer .ace_selected-word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-github .ace_invisible {\n color: #BFBFBF\n}\n\n.ace-github .ace_print-margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-github .ace_indent-guide {\n background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;\n}\n\n.ace-github .ace_indent-guide-active {\n background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC") right repeat-y;\n}\n'})),ace.define("ace/theme/github",["require","exports","module","ace/theme/github-css","ace/lib/dom"],(function(e,t,n){t.isDark=!1,t.cssClass="ace-github",t.cssText=e("./github-css"),e("../lib/dom").importCssString(t.cssText,t.cssClass,!1)})),ace.require(["ace/theme/github"],(function(t){e&&(e.exports=t)}))},745:(e,t,n)=>{"use strict";var o=n(137);t.s=o.createRoot,o.hydrateRoot},590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,o="function"==typeof Set,i="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function r(e,s){if(e===s)return!0;if(e&&s&&"object"==typeof e&&"object"==typeof s){if(e.constructor!==s.constructor)return!1;var a,l,c,u;if(Array.isArray(e)){if((a=e.length)!=s.length)return!1;for(l=a;0!=l--;)if(!r(e[l],s[l]))return!1;return!0}if(n&&e instanceof Map&&s instanceof Map){if(e.size!==s.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!s.has(l.value[0]))return!1;for(u=e.entries();!(l=u.next()).done;)if(!r(l.value[1],s.get(l.value[0])))return!1;return!0}if(o&&e instanceof Set&&s instanceof Set){if(e.size!==s.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!s.has(l.value[0]))return!1;return!0}if(i&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(s)){if((a=e.length)!=s.length)return!1;for(l=a;0!=l--;)if(e[l]!==s[l])return!1;return!0}if(e.constructor===RegExp)return e.source===s.source&&e.flags===s.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof s.valueOf)return e.valueOf()===s.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof s.toString)return e.toString()===s.toString();if((a=(c=Object.keys(e)).length)!==Object.keys(s).length)return!1;for(l=a;0!=l--;)if(!Object.prototype.hasOwnProperty.call(s,c[l]))return!1;if(t&&e instanceof Element)return!1;for(l=a;0!=l--;)if(("_owner"!==c[l]&&"__v"!==c[l]&&"__o"!==c[l]||!e.$$typeof)&&!r(e[c[l]],s[c[l]]))return!1;return!0}return e!=e&&s!=s}e.exports=function(e,t){try{return r(e,t)}catch(e){if((e.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw e}}},137:e=>{"use strict";e.exports=require("react-dom")}},t={};function n(o){var i=t[o];if(void 0!==i)return i.exports;var r=t[o]={id:o,loaded:!1,exports:{}};return e[o](r,r.exports,n),r.loaded=!0,r.exports}n.amdD=function(){throw new Error("define cannot be used indirect")},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n.p="";var o={};(()=>{"use strict";n.r(o),n.d(o,{Accordion:()=>D,Button:()=>U,ButtonGroup:()=>K,Card:()=>he,Chart:()=>Te,Checkbox:()=>Io,CodeEditor:()=>gr,Collapsible:()=>R,Column:()=>li,Combobox:()=>Sr,Combobox2:()=>Wr,Confirm:()=>St,CopyToClipboard:()=>ut,DatePicker:()=>Zr,Dropdown:()=>Oi,Dropdown2:()=>Zi,EditableList:()=>ha,EditableList2:()=>Na,FieldCodeEditor:()=>ru,FieldCombobox:()=>gu,FieldCombobox2:()=>ju,FieldDatePicker:()=>Xu,FieldDropdown:()=>Cu,FieldEditableList:()=>sh,FieldFileInput:()=>fh,FieldInput:()=>Eh,FieldMultiselect:()=>Ih,FieldPagination:()=>Ru,FieldSelect:()=>Uh,FieldSelectableList:()=>ed,FieldToggle:()=>cd,FileInput:()=>za,FixedWrapper:()=>Ot,FloatingContainer:()=>Pt,FormikCheckbox:()=>Nc,FormikCodeEditor:()=>Ic,FormikCombobox:()=>Pc,FormikCombobox2:()=>Dc,FormikDatePicker:()=>Fc,FormikEditableList:()=>Bc,FormikEditableList2:()=>Wc,FormikFileInput:()=>Hc,FormikInput:()=>jc,FormikInput2:()=>zc,FormikMultiselect:()=>Vc,FormikRadio:()=>Uc,FormikSelect:()=>Gc,FormikSelectableList:()=>Kc,FormikTextarea:()=>qc,FormikToggle:()=>Yc,FormikWrapper:()=>Rc,Icon:()=>g,InfiniteScroller:()=>At,InfoNote:()=>Ft,Input:()=>Qa,Input2:()=>ll,List:()=>jt,Loader:()=>ye,Message:()=>be,Modal:()=>Ct,Multiselect:()=>Cl,NavBar:()=>Vt,Navigation:()=>qt,Pagination:()=>po,Panel:()=>pn,Pill:()=>mn,Radio:()=>Rl,RevealPanel:()=>Nn,Row:()=>yi,Select:()=>jl,SelectableList:()=>Xl,Table:()=>ti,Tabs:()=>eo,TextEllipsis:()=>uo,Textarea:()=>rc,Toggle:()=>bc,Tooltip:()=>lo,setConfig:()=>xc,toast:()=>ot,useComponentSize:()=>C,useEventListener:()=>$,useInterval:()=>ud,usePrevious:()=>me,useTimeout:()=>_e});const e=require("react");var t=n.n(e);const i=require("prop-types");var r=n.n(i);const s=(0,e.createContext)(),a=(0,e.createContext)();var l=Object.defineProperty,c=Object.getOwnPropertySymbols,u=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable,d=(e,t,n)=>t in e?l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function p(e){var n=e,{className:o,family:i,type:r,weight:s}=n,a=((e,t)=>{var n={};for(var o in e)u.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&c)for(var o of c(e))t.indexOf(o)<0&&h.call(e,o)&&(n[o]=e[o]);return n})(n,["className","family","type","weight"]);return t().createElement("i",((e,t)=>{for(var n in t||(t={}))u.call(t,n)&&d(e,n,t[n]);if(c)for(var n of c(t))h.call(t,n)&&d(e,n,t[n]);return e})({className:function(){const e=i||"fa";return["tyk-icon","fa"!==e&&e,`${e}-${r}`,"fa"===e?`fa-${s||"light"}`:"",o].filter(Boolean).join(" ")}()},a))}p.propTypes={className:r().string,family:r().string,type:r().string.isRequired,weight:r().string};const g=p;function m({wrap:n}){const{collapsed:o,disabled:i,toggleChange:r}=(0,e.useContext)(a),s=o?"chevron-down":"chevron-up",l=["tyk-accordion__trigger",i&&"tyk-accordion__trigger--disabled"].filter(Boolean).join(" "),c=t().createElement("button",{className:l,onClick:r,type:"button","aria-label":"collapse/expand"},t().createElement(g,{className:"collapsable__arrow",type:s}));return n?t().createElement("div",{className:"tyk-accordion__trigger-wrapper"},c):c}m.propTypes={wrap:r().bool};const f=m;function y({collapsed:n,children:o,className:i,disabled:r},l){const{arrow:c}=(0,e.useContext)(s),[u,h]=(0,e.useState)(n),d=()=>{r||h(!u)},p=(0,e.useMemo)((()=>["tyk-accordion__item",c.expandToContent?`tyk-accordion__item--trigger-position-${c.position}`:"tyk-accordion__item--trigger-in-header",i,!1===u&&"tyk-accordion__item--active"].filter(Boolean).join(" ")),[c,i,u]),g=(0,e.useMemo)((()=>({collapsed:u,disabled:r,toggleChange:d})),[u,r,d]);return t().createElement("div",{ref:l,className:p},t().createElement(a.Provider,{value:g},c.expandToContent&&t().createElement(f,{wrap:!0}),o))}y.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),collapsed:r().bool,className:r().string,disabled:r().bool},y.defaultProps={collapsed:!1};const v=(0,e.forwardRef)(y);function b({className:n,children:o}){const{collapsed:i,disabled:r,toggleChange:l}=(0,e.useContext)(a),{usearrowastrigger:c,arrow:u}=(0,e.useContext)(s),h=i?"chevron-down":"chevron-up",d=["tyk-accordion__item-header",c&&"tyk-accordion__arrow-trigger",n].filter(Boolean).join(" ");return t().createElement("div",{className:d},c?t().createElement(t().Fragment,null,!u.expandToContent&&"left"===u.position&&t().createElement(f,null),t().createElement("div",null,o),!u.expandToContent&&"right"===u.position&&t().createElement(f,null)):t().createElement("button",{className:r?"tyk-accordion__trigger--disabled":"",onClick:l,type:"button"},t().createElement("span",null,o),t().createElement(g,{className:"collapsable__arrow",type:h})))}b.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string};const w=b,x=require("react-transition-group"),k=e=>e?{width:e.offsetWidth,height:e.offsetHeight}:{width:0,height:0},C=t=>{const[n,o]=(0,e.useState)(k(t?t.current:{})),i=(0,e.useCallback)((()=>{t.current&&o(k(t.current))}),[t]);return(0,e.useLayoutEffect)((()=>{i();let e=new ResizeObserver((()=>{i()}));return e.observe(t.current),()=>{e.disconnect(t.current),e=null}}),[t.current]),n},$=(t,n,o)=>{const i=(0,e.useRef)();(0,e.useEffect)((()=>{i.current=n}),[n]),(0,e.useEffect)((()=>{if(!(null==o?void 0:o.addEventListener))return;const e=e=>i.current(e);return o.addEventListener(t,e),()=>{o.removeEventListener(t,e)}}),[t,o])};var S=Object.defineProperty,E=Object.defineProperties,O=Object.getOwnPropertyDescriptors,T=Object.getOwnPropertySymbols,A=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable,L=(e,t,n)=>t in e?S(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function M(n){var o=n,{className:i,collapsed:r,children:s}=o,a=((e,t)=>{var n={};for(var o in e)A.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&T)for(var o of T(e))t.indexOf(o)<0&&_.call(e,o)&&(n[o]=e[o]);return n})(o,["className","collapsed","children"]);const l=(0,e.useRef)(null),c=(0,e.useRef)(null),u=C(l),[h,d]=(0,e.useState)({height:r?0:"auto"}),p=e=>{d({height:`${e}px`})},g=()=>l.current?l.current.clientHeight:0;(0,e.useEffect)((()=>{!r&&(null==u?void 0:u.height)&&h.height!==(null==u?void 0:u.height)&&p(u.height)}),[u.height]);const m=(0,e.useCallback)((()=>{!r&&l.current&&(p(g()),c.current.style.height=`${g()}px`)}),[r,l.current]);return $("resize",m,window),t().createElement(x.CSSTransition,{onEnter:()=>{p(g())},onExit:()=>{p(0)},in:!r,timeout:0,classNames:"collapse"},t().createElement("div",{className:"collapse-wrapper",ref:c,style:h},t().createElement("div",(f=((e,t)=>{for(var n in t||(t={}))A.call(t,n)&&L(e,n,t[n]);if(T)for(var n of T(t))_.call(t,n)&&L(e,n,t[n]);return e})({},a),E(f,O({className:i,ref:l}))),s)));var f}M.propTypes={children:r().oneOfType([r().element,r().node,r().string]),collapsed:r().bool,className:r().string};const R=M;function N({children:n,className:o}){const{collapsed:i}=(0,e.useContext)(a),r=["tyk-accordion__item-content",o].filter(Boolean).join(" ");return t().createElement("div",{className:r},t().createElement(R,{collapsed:i},n))}N.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string};const I=N;function P({className:n,children:o,usearrowastrigger:i,arrow:r={position:"right",expandToContent:!1}}){const a=["tyk-accordion",n].filter(Boolean).join(" "),l=(0,e.useMemo)((()=>({usearrowastrigger:i,arrow:r})),[i,r]);return t().createElement("div",{className:a},t().createElement(s.Provider,{value:l},o))}P.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,usearrowastrigger:r().bool,arrow:r().shape({position:r().oneOf(["left","right"]),expandToContent:r().bool})},P.defaultProps={usearrowastrigger:!1},P.Item=v,P.Item.Header=w,P.Item.Content=I;const D=P;var F=Object.defineProperty,B=Object.getOwnPropertySymbols,W=Object.prototype.hasOwnProperty,H=Object.prototype.propertyIsEnumerable,j=(e,t,n)=>t in e?F(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,z=(e,t)=>{for(var n in t||(t={}))W.call(t,n)&&j(e,n,t[n]);if(B)for(var n of B(t))H.call(t,n)&&j(e,n,t[n]);return e};function V(n,o){const i=n,{customButton:r,children:s,iconType:a,iconFamily:l,iconPosition:c,iconOnly:u,id:h,className:d,disabled:p,display:m,href:f,onClick:y,noStyle:v,size:b,theme:w,type:x}=i,k=((e,t)=>{var n={};for(var o in e)W.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&B)for(var o of B(e))t.indexOf(o)<0&&H.call(e,o)&&(n[o]=e[o]);return n})(i,["customButton","children","iconType","iconFamily","iconPosition","iconOnly","id","className","disabled","display","href","onClick","noStyle","size","theme","type"]),C=()=>{const e=["tyk-button"].concat(d?d.split(" "):[]),t=b?`tyk-button--${b}`:"tyk-button--md",n=p?"disabled":"",o=m||"",i=w?`tyk-button--${w}`:"",r=u?"tyk-button--icon-only":"",s=v?"tyk-button--no-style":"";return e.push(r),e.push(i),e.push(t),e.push(n),e.push(o),e.push(s),a&&e.push(`icon-${c||"left"}`),e.join(" ")},$=e=>a&&(c||"left")===e?t().createElement(g,{family:l,type:a}):null;return(()=>{let n;return r?t().createElement(t().Fragment,null,(0,e.cloneElement)(r,{className:C(),disabled:p})):(n=f?t().createElement("a",z({id:h,className:C(),disabled:p,onClick:y,href:f,ref:o},k),$("left"),s,$("right")):t().createElement("button",z({id:h,className:C(),disabled:p,onClick:y,type:x||"button",ref:o},k),$("left"),s&&t().createElement("span",null,s),$("right")),n)})()}V.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),customButton:r().oneOfType([r().arrayOf(r().node),r().node,r().element]),className:r().string,display:r().string,disabled:r().bool,id:r().string,href:r().string,iconPosition:r().string,iconFamily:r().string,iconOnly:r().bool,iconType:r().string,noStyle:r().bool,onClick:r().func,theme:r().string,type:r().string,size:r().string},V.defaultProps={theme:"",type:"button"};const U=(0,e.forwardRef)(V);function G({className:e,children:n,label:o},i){return t().createElement("div",{ref:i,className:`tyk-button-group__wrapper ${e}`},Boolean(o)&&t().createElement("label",null,o),t().createElement("div",{className:"tyk-button-group"},n))}G.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string.isRequired,label:r().string.isRequired};const K=(0,e.forwardRef)(G);function q({right:e=null,children:n}){return t().createElement("div",{className:"tyk-card__header"},n&&t().createElement("div",{className:"tyk-card__header-content"},n),e&&t().createElement("div",{className:"tyk-card__header-right"},e))}q.propTypes={right:r().oneOfType([r().element,r().node,r().string]),children:r().oneOfType([r().element,r().node,r().string])};const Y=q;function J({align:e="top",children:n}){return t().createElement("div",{className:`tyk-card__body tyk-card__body--align-${e}`},t().createElement("div",null,n))}J.propTypes={align:r().oneOf(["top","center","bottom"]),children:r().oneOfType([r().element,r().node,r().string])};const X=J;function Q({children:e}){return t().createElement("div",{className:"tyk-card__footer"},e)}Q.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const Z=Q;function ee({maxLines:e=1,children:n}){return t().createElement("h4",{className:`tyk-card__title tyk-card__title--max-${e}-lines`},n)}ee.propTypes={maxLines:r().number,children:r().oneOfType([r().element,r().node,r().string])};const te=ee;function ne({children:e}){return t().createElement("div",{className:"tyk-card__title-group"},e)}ne.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const oe=ne;function ie({children:e}){return t().createElement("h5",{className:"tyk-card__sub-title"},e)}ie.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const re=ie;function se({maxLines:e=2,children:n}){return t().createElement("p",{className:`tyk-card__summary tyk-card__summary--max-${e}-lines`},n)}se.propTypes={maxLines:r().number,children:r().oneOfType([r().element,r().node,r().string])};const ae=se;function le({children:e}){return t().createElement("div",{className:"tyk-card__title-icon"},e)}le.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const ce=le;function ue({className:e="",height:n="auto",children:o}){return t().createElement("div",{style:{height:n},className:`tyk-card ${e}`},o)}ue.propTypes={className:r().string,height:r().oneOfType([r().number,r().string]),children:r().oneOfType([r().element,r().node,r().string])},ue.Header=Y,ue.Body=X,ue.Footer=Z,ue.Title=te,ue.TitleGroup=oe,ue.Icon=ce,ue.SubTitle=re,ue.Summary=ae;const he=ue,de=require("echarts"),pe=require("immutable"),ge=(e,t,n)=>{let o;return function(...i){const r=this,s=n&&!o;clearTimeout(o),o=setTimeout((()=>{o=null,n||e.apply(r,i)}),t),s&&e.apply(r,i)}},me=t=>{const n=(0,e.useRef)();return(0,e.useEffect)((()=>{n.current=t}),[t]),n.current};function fe({className:e,position:n="relative",withbackground:o=!1}){const i=["loading",n,e].filter(Boolean).join(" "),r=t().createElement("div",{className:i},t().createElement("div",{className:"loading-bar"}),t().createElement("div",{className:"loading-bar"}),t().createElement("div",{className:"loading-bar"}),t().createElement("div",{className:"loading-bar"}));return o?t().createElement("div",{className:"tyk-loading__wrapper"},r):r}fe.propTypes={className:r().string,position:r().string,withbackground:r().bool};const ye=fe;function ve({children:e,theme:n,onClose:o,noMargin:i,className:r}){const s="success"===n?"check":"warning";return t().createElement("div",{className:["tyk-message",`tyk-message--${n||"info"}`,i&&"no-margin",r].filter(Boolean).join(" ")},t().createElement(g,{family:"tykon",type:s}),t().createElement("div",{className:"tyk-message__content"},e),o&&t().createElement(g,{family:"tykon",type:"x",onClick:o}))}ve.propTypes={theme:r().string,children:r().oneOfType([r().element,r().node,r().string]),className:r().string,noMargin:r().bool,onClose:r().func};const be=ve,we=JSON.parse('{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:OGC:1.3:CRS84"}},"features":[{"geometry":{"type":"Polygon","coordinates":[[[47.97822265625001,7.9970703125],[46.97822265625001,7.9970703125],[43.98378906250002,9.008837890624989],[43.482519531250006,9.379492187499991],[43.181640625,9.879980468749991],[42.84160156250002,10.203076171874997],[42.65644531250001,10.6],[42.92275390625002,10.999316406249989],[43.24599609375002,11.499804687499989],[43.85273437500001,10.784277343749991],[44.38652343750002,10.430224609374989],[44.94296875,10.43671875],[45.81669921875002,10.835888671874997],[46.565039062500006,10.745996093749994],[47.40498046875001,11.174023437499997],[48.01923828125001,11.139355468749997],[48.57255859375002,11.320507812499997],[48.938574218750006,11.258447265624994],[50.11005859375001,11.529296875],[50.79228515625002,11.983691406249989],[51.2548828125,11.830712890624994],[51.08427734375002,11.335644531249997],[51.140625,10.656884765624994],[51.031835937500006,10.444775390624997],[51.19296875,10.554638671874997],[51.390234375,10.422607421875],[50.93007812500002,10.33554687499999],[50.825,9.428173828124997],[50.10283203125002,8.199804687499991],[49.85205078125,7.962548828124994],[49.234960937500006,6.77734375],[49.04931640625,6.173632812499989],[47.97529296875001,4.497021484374997],[46.87880859375002,3.28564453125],[46.05117187500002,2.475146484374989],[44.92021484375002,1.81015625],[43.71757812500002,0.857861328124997],[41.97988281250002,-0.973046875],[41.53271484375,-1.6953125],[41.521875,-1.572265625],[41.42695312500001,-1.449511718750003],[41.24980468750002,-1.220507812500003],[40.97871093750001,-0.870312500000011],[40.964453125,2.814648437499997],[41.341796875,3.20166015625],[41.61347656250001,3.590478515624994],[41.88398437500001,3.977734375],[41.91533203125002,4.031298828124989],[42.02412109375001,4.137939453125],[42.85664062500001,4.32421875],[43.12568359375001,4.644482421874997],[43.58349609375,4.85498046875],[43.988867187500006,4.950537109374991],[44.940527343750006,4.912011718749994],[47.97822265625001,7.9970703125]]]},"properties":{"name":"Somalia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[9.579979133936737,47.05856388629306],[9.409458596647225,47.02019676540292],[9.46249431093294,47.09010747968864],[9.46249431093294,47.19858962254578],[9.527658197470123,47.27026989773668],[9.579979133936737,47.05856388629306]]]},"properties":{"name":"Liechtenstein","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-8.683349609375,27.77800740805682],[-13.038761787013554,27.81190166624856],[-12.948925781249926,27.914160156250034],[-11.552685546874955,28.31010742187496],[-10.486474609374994,29.06494140625],[-10.200585937499994,29.380371093750057],[-9.667089843749949,30.10927734375005],[-9.652929687499977,30.447558593750045],[-9.875488281249943,30.717919921874966],[-9.80869140624992,31.42460937499996],[-9.347460937499932,32.086376953124955],[-9.245849609375,32.572460937499955],[-8.512841796874994,33.25244140625003],[-6.900976562499949,33.96904296874999],[-6.353125,34.77607421875001],[-5.924804687499943,35.78579101562502],[-5.277832031249943,35.90273437500002],[-5.252685546874972,35.61474609374997],[-4.628320312499966,35.206396484375006],[-4.329980468749937,35.161474609375006],[-3.693261718749994,35.27998046874998],[-3.394726562499926,35.21181640625005],[-2.972216796874989,35.40727539062499],[-2.839941406249949,35.127832031249994],[-2.731396484374955,35.13520507812498],[-2.636816406249977,35.11269531250002],[-2.423730468749994,35.12348632812498],[-2.219628906249966,35.10419921874998],[-1.795605468749926,34.751904296874955],[-1.67919921875,33.31865234375002],[-1.550732421874955,33.073583984375006],[-1.510009765625,32.877636718749955],[-1.45,32.784814453124966],[-1.352148437499977,32.70336914062497],[-1.29638671875,32.67568359375002],[-1.188232421875,32.608496093750006],[-1.111035156249983,32.55229492187502],[-1.065527343749949,32.46831054687496],[-1.16259765625,32.399169921875],[-1.275341796874983,32.089013671874966],[-2.863427734374937,32.07470703124997],[-2.930859374999926,32.04252929687499],[-2.988232421874983,31.874218749999983],[-3.01738281249996,31.834277343750017],[-3.439794921874949,31.704541015624983],[-3.604589843749949,31.686767578125],[-3.700244140624989,31.70009765625005],[-3.768164062499977,31.689550781250034],[-3.837109374999983,31.512353515624994],[-3.833398437499937,31.197802734375045],[-3.626904296874955,31.000927734374983],[-4.148779296874977,30.8095703125],[-4.322851562500006,30.698876953124994],[-4.52915039062492,30.62553710937499],[-4.778515624999926,30.552392578124994],[-4.968261718749943,30.465380859375045],[-5.061914062499937,30.326416015625057],[-5.180126953124955,30.166162109374994],[-5.293652343749983,30.058642578125045],[-5.44877929687496,29.956933593750023],[-6.00429687499999,29.83125],[-6.479736328124943,29.82036132812499],[-6.520556640624989,29.659863281249983],[-6.59775390624992,29.578955078125006],[-6.635351562499949,29.568798828124983],[-6.755126953125,29.583837890625034],[-6.855566406249949,29.601611328125017],[-7.142431640624949,29.61958007812504],[-7.427685546874983,29.425],[-7.485742187499994,29.392236328124994],[-8.659912109375,28.718603515625063],[-8.683349609375,27.900390625],[-8.683349609375,27.77800740805682]]]},"properties":{"name":"Morocco","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-13.038761787013554,27.81190166624856],[-8.683349609375,27.77800740805682],[-8.683349609375,27.65644531250004],[-8.817822265624955,27.65644531250004],[-8.817822265624951,27.656445312499997],[-8.683349609375,27.656445312499997],[-8.683349609375,27.2859375],[-8.682861328125,26.921337890624997],[-8.6826171875,26.72314453125],[-8.682324218749983,26.497705078124994],[-8.68212890625,26.273193359375],[-8.68212890625,26.10947265625],[-8.682226562499977,25.995507812499994],[-12.016308593749983,25.995410156250003],[-12.016308593749983,25.740136718749994],[-12.016308593749983,25.331689453124994],[-12.016308593749983,25.059375],[-12.016308593749983,24.923242187499994],[-12.016308593749983,24.378662109375],[-12.016308593749983,23.97021484375],[-12.0234375,23.467578125],[-12.372900390624977,23.318017578124994],[-12.559375,23.290820312500003],[-12.620410156249989,23.27133789062499],[-13.031494140625,23.000244140625],[-13.153271484374983,22.820507812499997],[-13.12702845982141,22.703770926339278],[-13.136540684091575,22.708182548616723],[-13.094335937499977,22.495996093749994],[-13.051220703124983,21.854785156250003],[-13.041748046875,21.713818359374997],[-13.0322265625,21.572070312500003],[-13.025097656249983,21.466796875],[-13.016210937499977,21.333935546874997],[-15.231201171875,21.331298828125],[-16.964550781249983,21.329248046874994],[-17.06396484375,20.89882812499999],[-17.048046874999983,20.80615234375],[-17.098779296874994,20.856884765624997],[-16.930859374999983,21.9],[-16.35874023437495,22.594531250000045],[-16.21025390624999,23.097900390625],[-15.789257812499926,23.792871093750023],[-15.980712890624943,23.670312500000023],[-15.899316406249966,23.844433593749955],[-14.904296875000028,24.719775390625017],[-14.794921874999943,25.404150390625006],[-14.413867187499932,26.25371093749999],[-13.57578125,26.735107421875],[-13.175976562499983,27.655712890624983],[-13.038761787013554,27.81190166624856]],[[-8.774365234374983,27.460546875],[-8.794873046874983,27.120703125000034],[-8.794873046874983,27.120703125],[-8.774365234374983,27.460546875]]]},"properties":{"name":"W. Sahara","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[21.5625,42.247509765625],[21.560839843750017,42.24765625],[21.389550781250023,42.21982421875],[21.28662109375,42.100390625],[21.05976562500001,42.171289062499994],[20.778125,42.071044921875],[20.725,41.87353515625],[20.566210937500017,41.873681640624994],[20.485449218750006,42.223388671875],[20.06396484375,42.54726562499999],[20.054296875,42.760058593749996],[20.344335937500006,42.827929687499996],[20.40996305279786,42.84373166741877],[20.344335937500063,42.82792968750002],[19.670996093750006,43.163964843749994],[19.21875,43.449951171875],[19.196484375000068,43.48500976562502],[19.19160156250004,43.52104492187499],[19.19433593749997,43.533300781250006],[19.495117187500057,43.642871093750045],[19.245019531249994,43.96503906250004],[19.583789062500017,44.04345703125003],[19.118457031250074,44.359960937500006],[19.348632812500057,44.88090820312502],[19.007128906250045,44.86918945312502],[19.062890625000023,45.13720703125],[19.4,45.2125],[19.004687500000074,45.39951171875006],[19.064257812500045,45.51499023437506],[18.839062499999983,45.83574218750002],[18.905371093750006,45.931738281250034],[19.421289062500023,46.064453125],[19.61347656250001,46.169189453125],[19.84443359375001,46.145898437499966],[19.934082031250057,46.161474609375034],[20.161425781250017,46.14189453124996],[20.210156250000068,46.12602539062502],[20.241796875000034,46.10859375000001],[20.301367187500006,46.05068359375002],[20.35859375000004,45.975488281249994],[20.581152343749977,45.86948242187506],[20.65273437499999,45.779394531250006],[20.709277343750074,45.735253906249994],[20.727832031250017,45.73740234374998],[20.746875,45.74897460937501],[20.76015625000005,45.75810546875002],[20.775,45.74980468750002],[20.794042968750006,45.467871093750034],[21.431445312500017,45.192529296874994],[21.465429687500006,45.171875],[21.357031250000034,44.99077148437502],[21.532324218750063,44.900683593750045],[21.519921875000023,44.88081054687498],[21.442187500000074,44.87338867187498],[21.384375,44.87006835937501],[21.357910156250057,44.86181640625003],[21.36005859375004,44.82666015624997],[21.52314453125004,44.79008789062499],[21.63613281250005,44.71044921875],[21.909277343750034,44.666113281250034],[22.026953125,44.61987304687503],[22.093066406250074,44.541943359374955],[22.200976562500017,44.560693359374966],[22.350683593750063,44.676123046875034],[22.497656249999977,44.70625],[22.64208984375,44.65097656249998],[22.720898437499983,44.605517578125045],[22.734375,44.56992187499998],[22.700781250000063,44.55551757812498],[22.620117187500057,44.562353515625034],[22.554003906250017,44.54033203124999],[22.49453125000005,44.43544921875002],[22.687890625000023,44.248291015625],[22.42080078125005,44.00742187500006],[22.399023437500063,43.96953125],[22.36542968750004,43.86210937500002],[22.36962890625003,43.78129882812499],[22.55458984375005,43.45449218750002],[22.767578125,43.35415039062502],[22.81972656250005,43.300732421874955],[22.85957031250001,43.252343749999966],[22.97685546874999,43.18798828125],[22.799902343750006,42.985742187499994],[22.706152343750006,42.88393554687505],[22.466796875,42.842480468749955],[22.53242187500004,42.48120117187497],[22.523535156250006,42.440966796875045],[22.44570312500005,42.35913085937497],[22.42207031250004,42.32885742187503],[22.344042968750045,42.31396484375003],[22.23974609375003,42.303110028468716],[21.81464843750001,42.303125],[21.5625,42.24750976562498],[21.5625,42.247509765625]]]},"properties":{"name":"Serbia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[74.54140625000002,37.02216796875],[74.03886718750002,36.825732421874996],[73.116796875,36.868554687499994],[72.24980468750002,36.734716796875],[71.23291015625,36.12177734375],[71.18505859375,36.04208984375],[71.57197265625001,35.546826171875],[71.62050781250002,35.183007812499994],[70.965625,34.53037109375],[71.095703125,34.369433593749996],[71.05156250000002,34.049707031249994],[70.65400390625001,33.952294921874994],[69.8896484375,34.007275390625],[70.26113281250002,33.289013671875],[69.5015625,33.020068359374996],[69.24140625000001,32.433544921875],[69.279296875,31.936816406249996],[68.86894531250002,31.634228515624997],[68.59765625,31.802978515625],[68.16103515625002,31.802978515625],[67.57822265625,31.506494140624994],[67.737890625,31.343945312499997],[67.45283203125001,31.234619140625],[66.82929687500001,31.263671875],[66.346875,30.802783203124996],[66.23125,29.86572265625],[65.09550781250002,29.559472656249994],[64.39375,29.544335937499994],[64.09873046875,29.391943359375],[63.56757812500001,29.497998046874997],[62.4765625,29.408349609374994],[62.0009765625,29.530419921874994],[61.22441406250002,29.749414062499994],[60.843359375,29.858691406249996],[61.331640625,30.363720703124997],[61.55947265625002,30.599365234375],[61.7841796875,30.831933593749994],[61.81083984375002,30.91328125],[61.81425781250002,31.072558593749996],[61.75507812500001,31.285302734374994],[61.66015625,31.382421875],[61.34648437500002,31.421630859375],[61.11074218750002,31.451123046874997],[60.854101562500006,31.483251953125],[60.82070312500002,31.495166015624996],[60.791601562500006,31.660595703124997],[60.804296875,31.73447265625],[60.7875,31.877197265625],[60.78994140625002,31.987109375],[60.827246093750006,32.16796875],[60.82929687500001,32.249414062499994],[60.71044921875,32.6],[60.57656250000002,32.994873046875],[60.560546875,33.137841796874994],[60.9169921875,33.505224609375],[60.573828125,33.588330078125],[60.4859375,33.7119140625],[60.48574218750002,34.094775390624996],[60.642675781250006,34.307177734374996],[60.88945312500002,34.31943359375],[60.80390625000001,34.418017578124996],[60.76259765625002,34.475244140624994],[60.73613281250002,34.491796875],[60.72626953125001,34.51826171875],[60.73945312500001,34.544726562499996],[60.80234375,34.554638671875],[60.8453125,34.587695312499996],[60.91474609375001,34.633984375],[60.951171875,34.653857421874996],[61.080078125,34.855615234374994],[61.1,35.272314453125],[61.18925781250002,35.31201171875],[61.24550781250002,35.474072265625],[61.27851562500001,35.51376953125],[61.281835937500006,35.55341796875],[61.26201171875002,35.619580078125],[61.3447265625,35.6294921875],[61.62099609375002,35.43232421875],[62.08964843750002,35.3796875],[62.30781250000001,35.170800781249994],[62.688085937500006,35.255322265625],[63.056640625,35.44580078125],[63.08417968750001,35.56806640625],[63.16972656250002,35.678125],[63.129980468750006,35.84619140625],[63.8625,36.012353515624994],[64.184375,36.14892578125],[64.51103515625002,36.340673828125],[64.56582031250002,36.427587890625],[64.6025390625,36.554541015625],[64.78242187500001,37.05927734375],[64.81630859375002,37.132080078125],[64.95156250000002,37.1935546875],[65.08964843750002,37.237939453124994],[65.30361328125002,37.24677734375],[65.55498046875002,37.251171875],[65.76503906250002,37.569140625],[66.471875,37.3447265625],[66.52226562500002,37.348486328125],[66.827734375,37.3712890625],[67.06884765625,37.334814453125],[67.19550781250001,37.235205078125],[67.31972656250002,37.2095703125],[67.44169921875002,37.2580078125],[67.51728515625001,37.266650390624996],[67.546484375,37.235644531249996],[67.607421875,37.222509765625],[67.7,37.22724609375],[67.7529296875,37.1998046875],[67.75898437500001,37.172216796875],[67.76601562500002,37.14013671875],[67.83447265625,37.064208984375],[67.9580078125,36.972021484375],[68.06777343750002,36.9498046875],[68.26093750000001,37.013085937499994],[68.284765625,37.036328125],[68.29951171875001,37.088427734374996],[68.38691406250001,37.1375],[68.66914062500001,37.2583984375],[68.7232421875,37.268017578125],[68.78203125000002,37.2580078125],[68.82373046875,37.270703125],[68.8384765625,37.30283203125],[68.85537109375002,37.316845703125],[68.88525390625,37.328076171875],[68.91181640625001,37.333935546875],[68.96044921875,37.325048828125],[69.18017578125,37.15830078125],[69.26484375000001,37.1083984375],[69.30390625000001,37.116943359375],[69.35380859375002,37.150048828124994],[69.41445312500002,37.207763671875],[69.4296875,37.290869140625],[69.39921875000002,37.399316406249994],[69.42011718750001,37.48671875],[69.49208984375002,37.553076171875],[69.62578125000002,37.594042968749996],[69.8208984375,37.6095703125],[69.9849609375,37.566162109375],[70.18867187500001,37.582470703125],[70.25146484375,37.66416015625],[70.25498046875,37.765380859375],[70.19941406250001,37.886035156249996],[70.21464843750002,37.9244140625],[70.41777343750002,38.075439453125],[70.7359375,38.42255859375],[71.255859375,38.306982421875],[71.33271484375001,38.170263671875],[71.27851562500001,37.918408203125],[71.319921875,37.90185546875],[71.3896484375,37.906298828124996],[71.48779296875,37.931884765625],[71.55195312500001,37.933154296874996],[71.58222656250001,37.910107421875],[71.43291015625002,37.1275390625],[71.530859375,36.845117187499994],[71.665625,36.696923828124994],[72.65742187500001,37.029052734375],[72.8955078125,37.267529296875],[73.21113281250001,37.408496093749996],[73.38291015625,37.462255859375],[73.48134765625002,37.4716796875],[73.60468750000001,37.446044921875],[73.65712890625002,37.43046875],[73.72060546875002,37.41875],[73.73378906250002,37.37578125],[73.71728515625,37.329443359375],[73.6275390625,37.261572265625],[73.65351562500001,37.23935546875],[73.749609375,37.231787109375],[74.16708984375,37.329443359375],[74.20351562500002,37.372460937499994],[74.25966796875002,37.415429687499994],[74.659375,37.394482421875],[74.73056640625,37.35703125],[74.83046875000002,37.2859375],[74.89130859375001,37.231640625],[74.84023437500002,37.225048828125],[74.76738281250002,37.249169921874994],[74.73896484375001,37.28564453125],[74.72666015625,37.29072265625],[74.6689453125,37.26669921875],[74.55898437500002,37.236621093749996],[74.37216796875,37.15771484375],[74.37617187500001,37.137353515624994],[74.49794921875002,37.0572265625],[74.52646484375,37.030664062499994],[74.54140625000002,37.02216796875]]]},"properties":{"name":"Afghanistan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[17.57958984375,-8.099023437500009],[17.643359375000017,-8.090722656250009],[18.00878906250003,-8.107617187499983],[18.56269531250001,-7.9359375],[18.944433593750063,-8.001464843750028],[19.142675781250034,-8.001464843750028],[19.34082031249997,-7.966601562500031],[19.369921875000045,-7.706542968749986],[19.371679687500063,-7.655078124999989],[19.47988281250008,-7.472167968750028],[19.48378906250008,-7.279492187500026],[19.527636718750017,-7.144433593749952],[19.87519531250004,-6.986328124999986],[19.99746093750008,-6.976464843750023],[20.190039062500063,-6.9462890625],[20.482226562500074,-6.915820312500017],[20.59003906250001,-6.919921874999957],[20.598730468750006,-6.935156249999949],[20.536914062500045,-7.121777343749955],[20.535839843749983,-7.182812499999955],[20.558398437500045,-7.244433593749989],[20.60781250000008,-7.277734375000023],[20.910937500000017,-7.281445312499983],[21.190332031250023,-7.284960937499989],[21.751074218750034,-7.305468749999989],[21.80605468750005,-7.32861328125],[21.905371093750034,-8.693359374999943],[21.813183593750068,-9.46875],[22.19775390625,-10.040625],[22.30703125000005,-10.691308593750023],[22.203515625000023,-10.829492187500009],[22.226171875,-11.121972656250009],[22.27880859375,-11.19414062499996],[22.314941406250057,-11.198632812499994],[22.39296875000005,-11.159472656250003],[22.486132812500045,-11.086718750000017],[22.56103515625003,-11.05585937500004],[22.814746093750017,-11.08027343750004],[23.076269531250006,-11.087890624999986],[23.463964843750034,-10.969335937499991],[23.83388671875008,-11.013671874999972],[23.96650390625001,-10.871777343750011],[23.98388671875,-11.725],[23.909375,-12.636132812500009],[23.886523437500045,-12.743261718749991],[23.882421875,-12.799023437499983],[23.968066406250045,-12.956933593749994],[23.962988281250006,-12.988476562500026],[23.843164062500023,-13.0009765625],[22.209570312500006,-13.0009765625],[21.97890625000008,-13.0009765625],[21.979101562500034,-13.798730468749994],[21.979296875000074,-14.11962890625],[21.979394531249994,-14.440527343750006],[21.97978515624999,-15.955566406250014],[22.193945312500006,-16.628125],[23.380664062500017,-17.640625],[22.32421875,-17.8375],[20.74550781250008,-18.019726562499983],[20.194335937500057,-17.86367187499999],[18.95527343750004,-17.80351562499999],[18.39638671875005,-17.3994140625],[16.14843750000003,-17.39023437499999],[14.017480468750023,-17.40888671874997],[13.475976562500023,-17.04003906249997],[13.179492187500017,-16.971679687499986],[12.548144531250017,-17.212695312499974],[12.35927734375008,-17.205859375],[12.318457031250006,-17.21337890625003],[12.213378906250028,-17.209960937500043],[12.013964843750074,-17.168554687500034],[11.902539062500011,-17.226562499999957],[11.743066406250023,-17.24921875000004],[11.780078125000017,-16.87128906249997],[11.818945312500034,-16.704101562500014],[11.750878906250023,-15.831933593749966],[12.016113281250057,-15.513671874999957],[12.55048828125004,-13.437792968750003],[12.983203124999989,-12.775683593750017],[13.4169921875,-12.52041015624998],[13.597949218750017,-12.286132812500028],[13.785351562499983,-11.81279296874996],[13.833593750000063,-10.9296875],[13.33222656250004,-9.998925781250009],[12.99853515625,-9.048046875],[13.358984375,-8.687207031250026],[13.378515625000063,-8.369726562500006],[12.82343750000004,-6.954785156249955],[12.283300781250063,-6.12431640624996],[13.184375,-5.85625],[13.346484375000017,-5.863378906250006],[13.978515625,-5.857226562500003],[16.315234375000074,-5.865625],[16.431445312500045,-5.90019531249996],[16.53710937499997,-5.9658203125],[16.697265625,-6.164257812500026],[16.74296874999999,-6.618457031250003],[16.813085937500063,-6.772558593749963],[16.919433593750057,-6.93398437499998],[16.98476562500005,-7.257421874999977],[17.57958984375,-8.099023437500009]]],[[[12.50146484375,-4.5875],[12.848144531250028,-4.428906249999983],[12.881054687500068,-4.445117187499989],[12.971386718750068,-4.551757812499957],[13.048046875000068,-4.619238281250034],[13.072753906250028,-4.634765625],[13.057324218750011,-4.651074218750026],[12.947460937500011,-4.695312499999986],[12.829687499999977,-4.73662109374996],[12.451464843750017,-5.071484374999969],[12.453222656250034,-5.090625],[12.52236328125008,-5.148925781250028],[12.484570312500011,-5.71875],[12.213671875000074,-5.758691406249994],[12.177148437499994,-5.324804687499977],[12.018359375000074,-5.004296874999966],[12.50146484375,-4.5875]]]]},"properties":{"name":"Angola","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[20.06396484375,42.54726562499999],[20.485449218750006,42.223388671875],[20.566210937500017,41.873681640624994],[20.48896484375001,41.272607421874994],[20.709277343750017,40.928369140624994],[20.964257812500023,40.849902343749996],[20.95576171875001,40.775292968749994],[21.030859375,40.622460937499994],[20.881640625000017,40.467919921874994],[20.65742187500001,40.1173828125],[20.4560546875,40.065576171874994],[20.408007812500017,40.049462890624994],[20.383691406250023,40.0171875],[20.338476562500006,39.991064453125],[20.311132812500006,39.979443359375],[20.311328125000017,39.95078125],[20.381640625000017,39.841796875],[20.382421875,39.802636718749994],[20.206835937500017,39.653515625],[20.13105468750001,39.66162109375],[20.05976562500001,39.699121093749994],[20.022558593750006,39.710693359375],[20.001269531250017,39.709423828125],[19.851855468750017,40.0435546875],[19.322265625,40.407080078125],[19.45917968750001,40.40537109375],[19.3375,40.663818359375],[19.57568359375,41.640429687499996],[19.577539062500023,41.7875],[19.342382812500006,41.869091796875],[19.280664062500023,42.17255859375],[19.65449218750001,42.628564453124994],[19.78828125000001,42.476171875],[20.06396484375,42.54726562499999]]]},"properties":{"name":"Albania","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[19.66230468750001,60.187158203124994],[19.53652343750005,60.14497070312501],[19.551367187500063,60.24384765625001],[19.66230468750001,60.187158203124994]]],[[[19.989550781250074,60.351171875],[20.258886718750063,60.26127929687499],[19.799804687500057,60.08173828125001],[19.68691406250005,60.267626953125045],[19.84765625000003,60.22055664062506],[19.823046875000074,60.390185546875045],[19.989550781250074,60.351171875]]]]},"properties":{"name":"Aland","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[1.7060546875,42.503320312499994],[1.534082031250023,42.441699218749996],[1.448828125,42.437451171875],[1.428125,42.46132812499999],[1.414843750000017,42.548388671874996],[1.428320312500006,42.5958984375],[1.501367187500023,42.642724609374994],[1.568164062500017,42.635009765625],[1.709863281250023,42.604443359375],[1.739453125000011,42.575927734375],[1.740234375,42.55673828125],[1.713964843750006,42.525634765625],[1.7060546875,42.503320312499994]]]},"properties":{"name":"Andorra","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[53.927832031250006,24.177197265624983],[53.63447265625004,24.169775390624977],[53.83378906250002,24.258935546875023],[53.927832031250006,24.177197265624983]]],[[[53.3322265625001,24.258593750000045],[53.19091796874997,24.290917968749966],[53.412402343750074,24.411035156250023],[53.3322265625001,24.258593750000045]]],[[[56.29785156250003,25.650683593750045],[56.38798828125002,24.97919921875004],[56.06386718750005,24.73876953125],[56.00058593750006,24.953222656249977],[55.795703125000074,24.868115234374955],[55.76083984375006,24.24267578125],[55.92861328125005,24.215136718750074],[55.98515625000002,24.063378906249966],[55.4684570312501,23.94111328125001],[55.53164062499999,23.81904296875001],[55.1999023437501,23.034765625000034],[55.185839843750074,22.7041015625],[55.104296875000074,22.621484375000023],[52.55507812500005,22.932812499999955],[51.592578125000074,24.07885742187503],[51.56835937500003,24.286181640625074],[51.76757812500003,24.25439453125],[51.84316406250005,24.010888671875023],[52.118554687499994,23.97109375],[52.64824218750002,24.154638671875006],[53.80175781249997,24.069482421874966],[54.14794921875003,24.17119140624999],[54.39707031250006,24.278173828125034],[54.74677734375004,24.810449218750023],[55.94121093750002,25.793994140625017],[56.08046875,26.06264648437505],[56.16748046875003,26.047460937499977],[56.144628906250006,25.690527343750006],[56.29785156250003,25.650683593750045]]]]},"properties":{"name":"United Arab Emirates","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-64.54916992187498,-54.71621093749998],[-63.81542968749997,-54.725097656250014],[-64.637353515625,-54.90253906250001],[-64.75732421875,-54.82656249999999],[-64.54916992187498,-54.71621093749998]]],[[[-68.65322265624994,-54.85361328124999],[-68.62993164062499,-52.65263671875004],[-68.24013671875,-53.08183593749999],[-68.43115234375,-53.0552734375],[-68.48852539062497,-53.260937499999976],[-68.16113281249997,-53.30644531250001],[-68.00849609374995,-53.5640625],[-67.29423828125002,-54.049804687500014],[-66.23564453124999,-54.53349609374997],[-65.17900390624993,-54.678125],[-65.47114257812495,-54.91464843749999],[-66.5111328125,-55.032128906249945],[-67.127099609375,-54.90380859375001],[-68.65322265624994,-54.85361328124999]]],[[[-61.084716796875,-23.65644531250001],[-60.83984375000003,-23.85810546874997],[-59.89248046874994,-24.093554687499974],[-59.18725585937497,-24.56230468749999],[-57.82167968749994,-25.136425781249983],[-57.56313476562494,-25.473730468749963],[-57.943115234375,-26.05292968750001],[-58.18149414062498,-26.30742187499999],[-58.222070312499994,-26.65],[-58.618603515624955,-27.13212890624996],[-58.64174804687494,-27.196093750000017],[-58.60483398437498,-27.314355468750037],[-58.16826171874993,-27.27343749999997],[-56.437158203124966,-27.553808593749977],[-56.16406250000003,-27.321484374999983],[-55.95146484374996,-27.325683593749957],[-55.789990234374926,-27.416406249999966],[-55.71464843749996,-27.41484375],[-55.632910156250006,-27.35712890624997],[-55.59379882812502,-27.288085937500014],[-55.597265625,-27.207617187499963],[-55.56489257812498,-27.15],[-55.496728515624966,-27.11533203124999],[-55.45063476562498,-27.068359375000014],[-55.426660156249994,-27.00927734374997],[-55.13593750000001,-26.931152343749957],[-54.934472656249994,-26.70253906250001],[-54.677734375,-26.308789062499997],[-54.631933593750006,-26.005761718749994],[-54.615869140624994,-25.576074218750023],[-54.44394531249998,-25.625],[-54.15458984374999,-25.523046874999963],[-53.89116210937499,-25.66884765625001],[-53.668554687500006,-26.288183593749977],[-53.83818359375002,-27.121093750000014],[-54.32700195312495,-27.423535156249997],[-54.82910156250003,-27.55058593750003],[-55.10151367187501,-27.866796874999963],[-55.72548828125002,-28.20410156250003],[-55.68725585937497,-28.38164062499996],[-55.890527343749994,-28.370019531249994],[-56.938623046874994,-29.594824218750034],[-57.22465820312499,-29.782128906249994],[-57.40522460937501,-30.03388671875004],[-57.563867187499994,-30.139941406249974],[-57.60888671875003,-30.187792968750045],[-57.65087890624997,-30.295019531250034],[-57.71269531249996,-30.38447265624997],[-57.83120117187502,-30.495214843749963],[-57.87250976562501,-30.591015625000026],[-57.81059570312499,-30.85859375000001],[-57.88632812499998,-30.937402343749994],[-57.86840820312497,-31.104394531249994],[-57.89335937499999,-31.195312499999957],[-58.03339843750001,-31.416601562500006],[-58.053857421874994,-31.494921874999974],[-58.009667968749966,-31.534375],[-57.98798828124998,-31.576171875],[-58.00698242187494,-31.684960937499966],[-58.04233398437495,-31.769238281249997],[-58.16748046874997,-31.87265625],[-58.18901367187499,-31.924218750000037],[-58.16040039062503,-31.986523437500026],[-58.156347656250006,-32.0515625],[-58.17700195312494,-32.11904296875002],[-58.16479492187494,-32.18486328125002],[-58.119726562500006,-32.24892578125002],[-58.12304687499997,-32.321875],[-58.201171875,-32.471679687500014],[-58.219970703125,-32.563964843749986],[-58.17099609374998,-32.95927734374996],[-58.424462890624994,-33.11152343749998],[-58.54721679687498,-33.66347656249998],[-58.392480468749966,-34.192968750000034],[-58.52548828124998,-34.29619140625002],[-58.28334960937494,-34.68349609375005],[-57.54785156250003,-35.018945312499994],[-57.170654296875,-35.3625],[-57.35390624999994,-35.72031249999998],[-57.33544921875,-36.026757812499966],[-57.07617187499994,-36.296777343749994],[-56.74946289062501,-36.346484375],[-56.67202148437494,-36.85126953124998],[-57.546972656250034,-38.085644531250026],[-58.17919921874994,-38.435839843750045],[-59.82832031250001,-38.83818359375003],[-61.112207031249994,-38.99296875000003],[-61.84790039062497,-38.961816406249994],[-62.33476562499993,-38.80009765625],[-62.29506835937502,-39.24326171874996],[-62.053662109374955,-39.373828125],[-62.179345703124994,-39.38046875000002],[-62.076806640624966,-39.46152343750002],[-62.131542968749926,-39.82539062499998],[-62.28691406249996,-39.89531250000002],[-62.40185546875003,-40.19658203125002],[-62.24633789062494,-40.674609374999974],[-62.39501953124997,-40.89082031249997],[-62.95903320312493,-41.10966796875006],[-63.621777343749955,-41.15976562499996],[-64.86948242187503,-40.735839843750014],[-65.13339843749998,-40.88066406250003],[-64.98637695312496,-42.102050781249986],[-64.53774414062494,-42.25458984374998],[-64.57099609374998,-42.416015625],[-64.42041015625003,-42.43378906249998],[-64.10087890624993,-42.395117187500006],[-64.06118164062494,-42.266113281250014],[-64.228515625,-42.21826171874996],[-63.795556640624994,-42.113867187500006],[-63.6298828125,-42.28271484375003],[-63.61733398437502,-42.695800781249986],[-64.03476562499998,-42.88125],[-64.48784179687499,-42.51347656250006],[-64.97070312499997,-42.66630859375002],[-65.02690429687496,-42.75888671874996],[-64.31914062499999,-42.968945312500026],[-64.83994140624998,-43.18886718749998],[-65.25234374999997,-43.571875],[-65.26552734375,-44.2796875],[-65.64760742187502,-44.661425781250045],[-65.63876953125,-45.0078125],[-66.19013671874995,-44.96474609375002],[-66.94140625,-45.25732421875003],[-67.59956054687495,-46.05253906250003],[-67.5064453125,-46.44277343749995],[-66.77685546874994,-47.005859375],[-65.99853515625,-47.09375],[-65.73808593749999,-47.34492187499998],[-65.81430664062495,-47.63818359374996],[-66.22524414062502,-47.826757812500006],[-65.93422851562497,-47.826757812500006],[-65.81005859374997,-47.941113281250026],[-67.46630859375,-48.95175781250004],[-67.68486328125002,-49.2466796875],[-67.82597656249999,-49.91962890625005],[-68.2572265625,-50.104589843749984],[-68.66757812500003,-49.75253906250003],[-68.66162109374997,-49.93574218750005],[-68.97958984375,-50.003027343749984],[-68.59794921874996,-50.00947265624997],[-68.421875,-50.15791015625001],[-69.04477539062495,-50.49912109374998],[-69.35859374999993,-51.028125],[-69.20102539062498,-50.99365234375001],[-69.03530273437497,-51.48896484375002],[-69.46542968750003,-51.58447265625003],[-68.96533203125003,-51.67714843749999],[-68.443359375,-52.35664062500004],[-69.96025390624993,-52.00820312500002],[-71.91865234374995,-51.98955078125004],[-72.40766601562501,-51.54082031250002],[-72.34023437499997,-50.68183593749999],[-72.50981445312496,-50.607519531250034],[-73.15292968749998,-50.73828125000003],[-73.50126953124996,-50.125292968750024],[-73.55419921875,-49.463867187500014],[-73.46157226562497,-49.31386718750001],[-73.13525390625,-49.30068359374999],[-73.03364257812501,-49.014355468750004],[-72.65126953125,-48.84160156249998],[-72.582861328125,-48.47539062499999],[-72.35473632812497,-48.36582031250005],[-72.32832031250001,-48.11005859374998],[-72.517919921875,-47.87636718749998],[-72.34594726562497,-47.49267578124997],[-71.90498046875001,-47.201660156250014],[-71.94023437499999,-46.83125],[-71.69965820312501,-46.6513671875],[-71.87568359374998,-46.160546875],[-71.63154296874998,-45.95371093749998],[-71.74619140624998,-45.57890625],[-71.34931640624995,-45.33193359374995],[-71.5962890625,-44.97919921875004],[-72.04169921874998,-44.90419921875004],[-72.06372070312503,-44.771875],[-71.26113281250002,-44.763085937499966],[-71.15971679687496,-44.56025390625004],[-71.21259765624998,-44.44121093750003],[-71.82001953124993,-44.38310546875],[-71.68007812500002,-43.92958984374998],[-71.90498046875001,-43.34755859374998],[-71.750634765625,-43.237304687499986],[-72.14643554687498,-42.990039062499974],[-72.10820312499993,-42.25185546874995],[-71.75,-42.04677734375001],[-71.91127929687497,-41.650390624999986],[-71.93212890624994,-40.69169921874999],[-71.70898437499997,-40.381738281249994],[-71.81831054687493,-40.17666015624995],[-71.65976562499998,-40.02080078125],[-71.71992187499995,-39.63525390624997],[-71.53945312499997,-39.60244140624995],[-71.40156249999995,-38.93505859374996],[-70.858642578125,-38.60449218750003],[-71.16757812499998,-37.76230468749996],[-71.19218750000002,-36.84365234375004],[-71.05551757812498,-36.52373046874996],[-70.40478515625,-36.06171874999998],[-70.41572265625001,-35.52304687500002],[-70.55517578125,-35.246875],[-70.39316406250003,-35.146875],[-70.05205078124999,-34.30078124999997],[-69.85244140625,-34.224316406250026],[-69.81962890624999,-33.28378906249999],[-70.08486328125002,-33.20175781249998],[-70.02197265625,-32.88457031250002],[-70.36376953125,-32.08349609374997],[-70.25439453125,-31.957714843750026],[-70.585205078125,-31.569433593749963],[-70.51958007812493,-31.1484375],[-70.30908203124994,-31.02265625000004],[-70.15322265625,-30.360937499999963],[-69.95634765624996,-30.35820312500003],[-69.84428710937493,-30.175],[-69.95996093749997,-30.078320312500026],[-70.02680664062501,-29.324023437500017],[-69.82788085937497,-29.10322265624997],[-69.65693359374995,-28.413574218749986],[-69.17441406249998,-27.924707031250037],[-68.84633789062494,-27.153710937499994],[-68.59208984375002,-27.140039062499966],[-68.31865234374999,-26.973242187500006],[-68.59160156249999,-26.47041015624997],[-68.41450195312498,-26.153710937500023],[-68.59208984375002,-25.420019531250034],[-68.38422851562495,-25.091894531249977],[-68.56201171875,-24.74736328125003],[-68.25029296875002,-24.391992187500023],[-67.35620117187503,-24.033789062499963],[-67.00878906249994,-23.00136718750005],[-67.19487304687493,-22.821679687500037],[-66.99111328125,-22.509863281250006],[-66.71171874999999,-22.216308593749986],[-66.36518554687501,-22.113769531249957],[-66.32246093750001,-22.053125],[-66.28212890624997,-21.94746093750001],[-66.24760742187496,-21.83046875],[-66.22016601562495,-21.802539062499974],[-66.174658203125,-21.805664062499986],[-66.09858398437495,-21.83505859375002],[-66.05859375,-21.87949218750002],[-65.86015624999999,-22.019726562499983],[-65.77104492187493,-22.099609375000014],[-65.68618164062497,-22.11025390625005],[-65.51879882812497,-22.094531250000045],[-64.99262695312498,-22.109667968750017],[-64.60551757812499,-22.228808593750045],[-64.52363281250001,-22.37158203125],[-64.47773437499998,-22.485351562499986],[-64.44550781249998,-22.585351562500023],[-64.37397460937498,-22.761035156250017],[-64.32529296875,-22.82763671875],[-64.30791015624993,-22.7953125],[-64.26640625000002,-22.60332031249996],[-63.97612304687502,-22.072558593750003],[-63.92167968749993,-22.028613281250017],[-62.843359375,-21.997265625000026],[-62.62597656250003,-22.29042968749998],[-62.54155273437496,-22.349609374999957],[-62.37250976562498,-22.439160156249997],[-62.21416015624996,-22.612402343750034],[-61.798535156249955,-23.18203125],[-61.084716796875,-23.65644531250001]]]]},"properties":{"name":"Argentina","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[46.490625,38.90668945312498],[46.1144531250001,38.877783203125034],[45.977441406249994,39.24389648437503],[45.76630859375004,39.37846679687499],[45.78447265625002,39.54560546875001],[45.456835937500074,39.494482421875006],[45.15283203125003,39.58266601562502],[45.03164062500005,39.76513671874997],[44.76826171875004,39.70351562500005],[44.28925781250004,40.040380859375006],[43.66621093750004,40.12636718750002],[43.56933593750003,40.48237304687498],[43.72265624999997,40.71953124999999],[43.43945312500003,41.10712890625001],[44.077246093750006,41.182519531249994],[44.81132812500002,41.259375],[45.001367187499994,41.29096679687498],[45.188574218750006,41.14741210937504],[45.07050781250004,41.075585937499966],[45.5875,40.846923828125],[45.37890624999997,40.67358398437506],[45.45439453125002,40.532373046874966],[45.96464843750002,40.233789062499966],[45.8859375000001,40.024853515624955],[45.57978515625004,39.9775390625],[46.202050781249994,39.59448242187503],[46.48144531249997,39.55517578125003],[46.36523437500003,39.402490234374994],[46.584765625000074,39.22368164062499],[46.400292968749994,39.1921875],[46.490625,38.90668945312498]]]},"properties":{"name":"Armenia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-170.72626953125,-14.351171875],[-170.8205078125,-14.312109375],[-170.568115234375,-14.266796875000011],[-170.72626953125,-14.351171875]]]},"properties":{"name":"American Samoa","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[69.2824218750001,-49.05888671875002],[69.16718750000004,-48.88291015624996],[69.36875,-48.89042968749998],[69.2824218750001,-49.05888671875002]]],[[[69.18486328125002,-49.10957031250004],[69.59277343749997,-48.97099609375005],[69.64404296875003,-49.11738281250003],[69.40507812500002,-49.18173828125],[69.5423828125,-49.25566406250005],[70.32021484375005,-49.05859374999996],[70.55546875000007,-49.201464843750024],[70.38613281250005,-49.433984374999966],[70.16582031250002,-49.34296874999998],[69.75996093750004,-49.430175781249986],[69.98642578125006,-49.58164062500003],[70.2477539062501,-49.53066406250003],[70.12431640625002,-49.70439453124999],[69.153125,-49.5296875],[68.99296875000007,-49.704980468750016],[68.81474609375002,-49.69960937499999],[68.88339843750006,-49.16494140624995],[68.76953125000003,-49.06591796875003],[69.00244140624997,-48.661230468750006],[69.13613281250005,-48.86103515625003],[69.05214843750005,-49.08193359375001],[69.18486328125002,-49.10957031250004]]],[[[51.83457031250006,-46.43994140625],[51.65927734375006,-46.37363281249999],[51.7418945312501,-46.32685546874997],[51.83457031250006,-46.43994140625]]]]},"properties":{"name":"Fr. S. Antarctic Lands","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[-61.71606445312503,17.037011718749994],[-61.85966796874996,17.013330078124966],[-61.887109374999966,17.09814453125],[-61.81728515624994,17.168945312500057],[-61.71606445312503,17.037011718749994]]]},"properties":{"name":"Antigua and Barb.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[147.35605468750006,-43.396972656250014],[147.30888671875007,-43.50078125000002],[147.10498046875003,-43.43115234374996],[147.28388671875004,-43.278906250000034],[147.35605468750006,-43.396972656250014]]],[[[145.04296875000003,-40.78671875],[145.28300781250002,-40.76992187500002],[146.31748046875006,-41.16347656250001],[146.72343750000002,-41.07802734375001],[146.84814453124997,-41.16806640624996],[146.98984375000006,-40.99238281249997],[147.45478515625004,-41.00166015624998],[147.62167968750012,-40.844726562499986],[147.87294921875005,-40.87255859374997],[147.96875,-40.779589843750045],[148.215234375,-40.85488281250002],[148.34257812500007,-42.21533203124997],[148.21367187500002,-41.97001953125],[147.92441406250006,-42.5724609375],[147.94541015625006,-43.18183593749997],[147.7858398437501,-43.22001953125002],[147.69892578125004,-43.12255859374997],[147.64794921874997,-43.02060546874999],[147.8,-42.928125],[147.57382812500006,-42.84570312499997],[147.4523437500001,-43.03339843750001],[147.29794921875006,-42.790917968749994],[147.24501953125005,-43.21591796874999],[146.99697265625005,-43.15634765625002],[147.07734375000004,-43.27587890625003],[146.87392578125,-43.6125],[146.54853515625004,-43.50888671874999],[146.04316406250004,-43.547167968749974],[145.99443359375007,-43.37607421875002],[146.20800781249997,-43.31621093749999],[145.8732421875001,-43.29238281250002],[145.48759765625002,-42.92666015625004],[145.19882812500006,-42.23085937500004],[145.46826171874997,-42.492871093750026],[145.51660156249997,-42.3544921875],[145.33105468750003,-42.14707031250002],[145.23486328124997,-42.19697265624997],[145.23818359375,-42.01962890624999],[144.76611328125003,-41.39003906249998],[144.64609375000006,-40.980859375],[144.71855468750002,-40.67226562500002],[145.04296875000003,-40.78671875]]],[[[148.23691406250006,-40.515136718749986],[148.18779296875007,-40.592578125000045],[148.11728515625012,-40.52148437499996],[148.23691406250006,-40.515136718749986]]],[[[144.784375,-40.506738281249966],[144.74804687499997,-40.589453125000034],[144.7833984375001,-40.434863281249974],[144.784375,-40.506738281249966]]],[[[148.32626953125006,-40.30693359375003],[148.40400390625004,-40.486523437500026],[148.02011718750012,-40.40419921874995],[148.32626953125006,-40.30693359375003]]],[[[148.000390625,-39.75761718750003],[148.29736328125003,-39.985742187499966],[148.31357421875012,-40.173535156250026],[148.10566406250004,-40.26210937499995],[147.76718750000012,-39.87031249999998],[148.000390625,-39.75761718750003]]],[[[143.92792968750004,-40.116113281249966],[143.83857421875004,-39.90410156250003],[144.00078125000007,-39.580175781250034],[144.14101562500005,-39.953808593750026],[143.92792968750004,-40.116113281249966]]],[[[145.31445312500003,-38.49082031249996],[145.35507812500012,-38.55703124999995],[145.12841796875003,-38.52763671875],[145.31445312500003,-38.49082031249996]]],[[[137.59648437500007,-35.73867187499998],[137.92890625000004,-35.72607421875],[138.12343750000005,-35.85234375],[137.67089843749997,-35.897949218750014],[137.44843750000004,-36.07480468749999],[137.20957031250012,-35.982421875],[136.7550781250001,-36.03310546875002],[136.540625,-35.89013671875003],[136.63867187499997,-35.74882812500002],[137.33408203125006,-35.59248046875004],[137.58496093749997,-35.620214843750006],[137.59648437500007,-35.73867187499998]]],[[[153.53876953125004,-27.436425781250037],[153.42656250000002,-27.70644531249998],[153.43544921875,-27.40537109375002],[153.53876953125004,-27.436425781250037]]],[[[113.18300781250005,-26.053125],[112.96425781250005,-25.78310546875001],[112.94707031250002,-25.531542968750017],[113.18300781250005,-26.053125]]],[[[153.07744140625002,-25.75078125],[152.97666015625012,-25.551367187499963],[153.03808593750003,-25.193164062500003],[153.22753906249997,-25.00576171875001],[153.14375,-24.814843750000023],[153.25693359375012,-24.72890625],[153.35019531250012,-25.063085937499963],[153.07744140625002,-25.75078125]]],[[[151.14658203125006,-23.49082031250002],[151.24013671875,-23.529687500000037],[151.23828124999997,-23.77578125],[151.03330078125006,-23.530175781250037],[151.14658203125006,-23.49082031250002]]],[[[115.44619140625005,-20.78779296875001],[115.31806640625004,-20.850585937500014],[115.43457031249997,-20.66796875000003],[115.44619140625005,-20.78779296875001]]],[[[149.04375,-20.29150390624997],[148.93886718750005,-20.283691406249986],[148.98105468750012,-20.153515625000026],[149.04375,-20.29150390624997]]],[[[146.27832031249997,-18.23125],[146.29882812499997,-18.48476562500005],[146.09882812500004,-18.251757812500003],[146.27832031249997,-18.23125]]],[[[139.45917968750004,-17.11455078124996],[139.49277343750006,-16.990429687499983],[139.57089843750006,-17.09443359375004],[139.45917968750004,-17.11455078124996]]],[[[139.50781250000003,-16.57304687499996],[139.1595703125,-16.74169921875003],[139.29296875000003,-16.467285156249986],[139.58789062499997,-16.39521484374997],[139.69775390624997,-16.514941406250017],[139.50781250000003,-16.57304687499996]]],[[[137.09365234375005,-15.778125],[136.94267578125002,-15.711718749999989],[137.00957031250007,-15.594824218749977],[137.09365234375005,-15.778125]]],[[[124.59726562500006,-15.40195312500002],[124.52421875000002,-15.421484375],[124.51933593750002,-15.26748046874998],[124.59726562500006,-15.40195312500002]]],[[[125.19882812500006,-14.57949218749998],[125.0912109375,-14.59169921874998],[125.15996093750002,-14.456054687499972],[125.19882812500006,-14.57949218749998]]],[[[136.71464843750002,-13.803906249999983],[136.89082031250004,-13.786621093750014],[136.74531250000004,-14.072656250000023],[136.95078125000006,-14.184277343750026],[136.89433593750002,-14.293066406249977],[136.33544921875003,-14.211816406250037],[136.42470703125,-13.864843749999963],[136.6556640625,-13.675878906250006],[136.71464843750002,-13.803906249999983]]],[[[136.23740234375006,-13.824511718750003],[136.12265625000012,-13.816601562499983],[136.21542968750012,-13.664746093750054],[136.23740234375006,-13.824511718750003]]],[[[136.33867187500007,-11.602343749999989],[136.18027343750006,-11.676757812499957],[136.47929687500002,-11.465917968749991],[136.33867187500007,-11.602343749999989]]],[[[130.45927734375007,-11.679296875000034],[130.60625,-11.816601562500026],[130.04326171875007,-11.787304687500011],[130.19755859375007,-11.658203125],[130.15283203124997,-11.477539062499972],[130.29492187499997,-11.33681640624998],[130.45927734375007,-11.679296875000034]]],[[[130.6188476562501,-11.376074218749991],[131.02304687500006,-11.334375],[131.26826171875004,-11.18984375],[131.53857421874997,-11.436914062500037],[130.95097656250007,-11.926464843750026],[130.51191406250004,-11.617871093749955],[130.38457031250002,-11.1921875],[130.6188476562501,-11.376074218749991]]],[[[136.59853515625,-11.378906249999943],[136.52656250000004,-11.438867187499994],[136.78027343749997,-11.0125],[136.59853515625,-11.378906249999943]]],[[[132.59335937500006,-11.302832031249991],[132.48378906250005,-11.037304687499983],[132.57880859375004,-10.968847656249977],[132.59335937500006,-11.302832031249991]]],[[[143.17890625000004,-11.954492187499966],[143.11025390625,-12.303515625000017],[143.40156250000004,-12.639941406249989],[143.5866210937501,-13.443652343750031],[143.54843750000012,-13.74101562499996],[143.75634765625003,-14.348828124999969],[143.96181640625005,-14.462890625000028],[144.473046875,-14.231835937500023],[144.64804687500006,-14.492480468750017],[145.28769531250006,-14.943164062499989],[145.42607421875002,-16.406152343749966],[145.75478515625,-16.879492187500034],[145.91210937499997,-16.9125],[146.12587890625005,-17.63525390625],[146.03222656249997,-18.272851562500037],[146.3332031250001,-18.55371093749997],[146.38339843750006,-18.97705078124997],[147.13876953125006,-19.39316406250002],[147.41855468750012,-19.378125],[147.7423828125001,-19.770117187499977],[148.759375,-20.28955078125003],[148.88476562499997,-20.480859375],[148.72998046874997,-20.4677734375],[148.68369140625012,-20.58017578124999],[149.20488281250007,-21.125097656249977],[149.45410156249997,-21.57871093750002],[149.70390625000002,-22.440527343750006],[149.82246093750004,-22.389843749999983],[149.97441406250007,-22.55068359374998],[149.94189453125003,-22.30810546875003],[150.07617187500003,-22.16445312499998],[150.54130859375002,-22.55908203125],[150.56855468750004,-22.38398437500004],[150.67246093750012,-22.418164062499983],[150.84316406250005,-23.4580078125],[151.15380859375003,-23.784082031249994],[151.83164062500006,-24.12294921875001],[152.12988281250003,-24.59755859374998],[152.45634765625007,-24.802441406249983],[152.65429687499997,-25.201953125000017],[152.91347656250005,-25.432128906250014],[152.98496093750012,-25.816210937500003],[153.16494140625,-25.964160156250045],[153.11679687500006,-27.194433593750034],[153.57568359375003,-28.24052734374999],[153.6168945312501,-28.673046875],[153.03056640625002,-30.563378906249994],[152.94394531250012,-31.43486328124999],[152.5592773437501,-32.045703125],[152.4704101562501,-32.439062500000034],[152.13652343750002,-32.678125],[152.1642578125001,-32.75742187499996],[151.812890625,-32.90107421875001],[151.29208984375012,-33.580957031249966],[151.28027343750003,-33.92666015625005],[151.12480468750007,-34.00527343749998],[151.23154296875006,-34.0296875],[150.8712890625001,-34.49912109374996],[150.80458984375,-35.01289062500001],[150.19531249999997,-35.83359374999996],[149.93271484375012,-37.528515625000026],[149.480859375,-37.77119140625],[147.87675781250002,-37.93417968749998],[146.8568359375,-38.663476562499966],[146.21748046875004,-38.72744140625004],[146.33662109375004,-38.89423828125],[146.46660156250007,-38.84033203125003],[146.40000000000012,-39.14550781250003],[146.1583984375001,-38.86572265624996],[145.93535156250002,-38.90175781250002],[145.79082031250007,-38.66699218749997],[145.39726562500002,-38.53535156249998],[145.54218750000004,-38.39384765625002],[145.4757812500001,-38.24375],[145.29277343750002,-38.237597656249974],[144.95957031250012,-38.500781250000045],[144.71777343749997,-38.34033203125004],[144.91142578125007,-38.34404296874999],[145.11992187500007,-38.091308593750014],[144.89130859375004,-37.899804687499994],[144.39550781250003,-38.13691406249998],[144.6652343750001,-38.20996093750003],[143.53896484375005,-38.82089843749998],[142.45585937500002,-38.38632812499999],[141.725,-38.27138671875002],[141.5939453125001,-38.38779296875002],[141.42421875,-38.36347656250004],[141.0109375000001,-38.07695312500003],[140.39042968750007,-37.89667968749998],[139.78427734375012,-37.24580078124998],[139.85732421875,-36.662109375],[139.72900390625003,-36.37138671875002],[138.9689453125001,-35.58076171874997],[139.17802734375007,-35.52304687500002],[139.289453125,-35.61132812499997],[139.28251953125002,-35.375390624999966],[138.521875,-35.6423828125],[138.184375,-35.612695312499994],[138.5111328125,-35.02441406249996],[138.48994140625004,-34.76357421875002],[138.0892578125,-34.16982421875002],[137.69169921875002,-35.14296875000004],[136.88359375000007,-35.23974609375004],[137.01425781250012,-34.91582031250003],[137.39101562500005,-34.91328124999997],[137.49384765625004,-34.16113281250003],[137.9318359375001,-33.57910156250003],[137.85234375000007,-33.20078124999996],[137.99257812500005,-33.094238281250014],[137.78320312500003,-32.578125],[137.79091796875,-32.82324218749996],[137.44228515625,-33.1935546875],[137.23730468750003,-33.62949218749999],[136.43066406249997,-34.02998046875004],[135.891015625,-34.660937499999974],[135.96972656249997,-34.98183593749998],[135.7923828125,-34.863281249999986],[135.64755859375006,-34.93964843750001],[135.12304687499997,-34.58574218750003],[135.21679687499997,-34.48730468749996],[135.45,-34.58105468749996],[135.21894531250004,-33.959765625000045],[134.88876953125012,-33.62636718749998],[134.79101562499997,-33.32832031250001],[134.60771484375002,-33.19013671875001],[134.30126953124997,-33.16503906249996],[134.17353515625004,-32.979101562500006],[134.10039062500007,-32.748632812500034],[134.22714843750006,-32.73056640624999],[134.23417968750007,-32.54853515625004],[133.66533203125007,-32.207226562500054],[133.21210937500004,-32.18378906249998],[132.75742187500012,-31.95625],[132.21464843750002,-32.00712890624996],[131.14365234375006,-31.49570312500005],[130.78300781250002,-31.604003906249986],[129.1876953125001,-31.659960937500017],[127.31982421874997,-32.2640625],[125.91718750000004,-32.296972656250034],[124.75878906250003,-32.882714843749994],[124.24375,-33.01523437499999],[123.50683593749997,-33.916210937500054],[122.15097656250006,-33.99179687499999],[122.06113281250006,-33.874414062499966],[121.40507812500007,-33.826757812500034],[119.85410156250012,-33.97470703124998],[119.45058593750005,-34.368261718750034],[118.89531250000007,-34.47988281250004],[118.13554687500002,-34.98662109374999],[117.58193359375005,-35.09775390624998],[116.51718750000012,-34.98789062499998],[115.98671875000005,-34.795019531250034],[115.56503906250012,-34.42578125000003],[115.00878906250003,-34.25585937499997],[114.9938476562501,-33.51533203125],[115.3587890625,-33.63994140624999],[115.68300781250005,-33.19287109375003],[115.6984375000001,-31.694531250000054],[115.07792968750007,-30.560449218750023],[114.85683593750005,-29.14296875],[114.16513671875012,-28.08066406250002],[114.028125,-27.34726562499999],[113.18476562500004,-26.182226562499963],[113.32324218749997,-26.243847656249997],[113.35605468750012,-26.080468750000023],[113.58164062500006,-26.558105468749986],[113.73369140625002,-26.59511718749998],[113.83642578125003,-26.50058593749999],[113.85283203125007,-26.33212890625005],[113.39531250000002,-25.71328125],[113.4513671875001,-25.599121093750014],[113.7130859375001,-25.83076171875004],[113.72373046875006,-26.129785156250037],[113.85390625,-26.01445312499999],[113.99199218750007,-26.32148437500001],[114.09033203124997,-26.393652343749963],[114.21572265625,-26.289453124999966],[114.2142578125,-25.851562500000014],[113.41767578125004,-24.435644531250034],[113.48984375000012,-23.869628906250014],[113.7570312500001,-23.418164062500054],[113.79511718750004,-22.91455078125003],[113.68281250000004,-22.637792968749963],[114.02285156250005,-21.881445312499977],[114.12392578125005,-21.828613281249957],[114.14160156250003,-22.483105468749983],[114.37773437500007,-22.341503906249997],[114.70927734375002,-21.82343749999997],[115.45615234375012,-21.49169921874997],[116.0109375000001,-21.030371093749963],[116.7067382812501,-20.653808593749986],[117.40625,-20.72119140625003],[118.19921875000003,-20.37519531249997],[118.75146484374997,-20.261914062499983],[119.10449218749997,-19.995312500000026],[119.58593750000003,-20.03828125],[120.99794921875,-19.604394531249966],[121.33769531250002,-19.31992187500002],[121.83378906250002,-18.477050781249986],[122.34541015625004,-18.11191406250002],[122.14746093749997,-17.54902343750001],[122.2609375000001,-17.135742187500014],[122.72041015625004,-16.78769531249999],[122.97070312499997,-16.436816406250003],[123.56308593750006,-17.520898437499966],[123.59355468750007,-17.03037109375005],[123.83105468750003,-17.120800781249997],[123.8744140625,-16.918652343750026],[123.4904296875001,-16.49072265624997],[123.62597656249997,-16.416308593750003],[123.60703125000006,-16.224023437499994],[123.72890625,-16.192480468749963],[123.85917968750007,-16.38232421875],[124.04443359374997,-16.264941406249974],[124.30039062500006,-16.388281249999977],[124.77197265624997,-16.40263671874996],[124.40488281250006,-16.298925781249977],[124.41640625,-16.133496093750026],[124.5768554687501,-16.11367187499998],[124.64853515625012,-15.870214843750034],[124.50429687500005,-15.972460937499989],[124.38164062500002,-15.758203125000037],[124.43955078125012,-15.493554687500037],[124.56162109375012,-15.496289062499969],[124.69257812500004,-15.273632812499997],[125.06298828125003,-15.44228515624998],[125.0729492187501,-15.306738281249991],[124.90917968750003,-15.310058593749957],[124.83906250000004,-15.160742187500006],[125.03818359375012,-15.004101562499969],[125.35566406250004,-15.119824218750011],[125.17871093749997,-14.714746093749994],[125.57978515625004,-14.483203124999989],[125.62773437500002,-14.256640625000017],[125.70458984374997,-14.29140625],[125.66162109375003,-14.529492187500011],[125.81953125000004,-14.469140624999966],[125.890625,-14.61796875],[126.0207031250001,-14.49453125],[126.0539062500001,-13.977246093750026],[126.1842773437501,-14.00205078125002],[126.25849609375004,-14.163574218749972],[126.403125,-14.018945312499994],[126.5697265625,-14.160937499999974],[126.7806640625,-13.955175781249977],[126.77558593750004,-13.788476562500037],[126.90322265625,-13.744140624999972],[127.45761718750006,-14.031445312499969],[128.18046875000007,-14.711621093749983],[128.06943359375012,-15.329296874999969],[128.15546875000004,-15.225585937499972],[128.25468750000002,-15.298535156250011],[128.175,-15.043164062500026],[128.57578125000006,-14.774511718750006],[129.05820312500012,-14.884375],[129.21582031249997,-15.160253906249991],[129.26757812500003,-14.871484375000051],[129.63476562499997,-15.139746093749991],[129.637109375,-14.850976562500037],[129.84873046875012,-14.828906249999989],[129.60468750000004,-14.647070312499977],[129.69794921875004,-14.557421875000017],[129.37871093750002,-14.39248046874998],[129.70986328125,-13.979980468749972],[129.83886718749997,-13.572949218749997],[130.25976562500003,-13.30224609375],[130.1349609375001,-13.145507812499957],[130.1681640625001,-12.957421875],[130.39990234374997,-12.68789062499999],[130.61748046875007,-12.646875],[130.62265625000006,-12.43105468749998],[130.8673828125001,-12.557812499999955],[130.87382812500007,-12.367187500000028],[131.29160156250006,-12.067871093749972],[131.43828125000002,-12.27695312500002],[132.06406250000006,-12.28076171875],[132.25322265625007,-12.186035156249972],[132.41103515625,-12.295117187499997],[132.51054687500002,-12.134863281250034],[132.71279296875,-12.1234375],[132.63046875000012,-12.035156249999972],[132.67421875000005,-11.649023437499991],[132.47519531250006,-11.491503906249974],[132.07285156250006,-11.474707031250006],[131.82246093750004,-11.302441406249997],[131.96152343750006,-11.180859375000011],[132.15546875000004,-11.311132812499991],[132.33398437499997,-11.223535156249994],[132.6828125000001,-11.505566406249997],[132.96103515625012,-11.407324218749963],[133.18525390625004,-11.705664062499991],[133.90419921875,-11.832031249999972],[134.4173828125,-12.052734375],[134.73027343750002,-11.984375],[135.02968750000005,-12.19375],[135.2179687500001,-12.221679687499957],[135.92246093750012,-11.825781250000034],[135.70439453125007,-12.209863281250037],[136.00849609375004,-12.19140625],[136.08183593750007,-12.422460937500006],[136.26064453125,-12.433789062499997],[136.32851562500005,-12.305566406249994],[136.24990234375,-12.173046875],[136.44335937499997,-11.951464843749974],[136.7194335937501,-12.226464843749952],[136.89746093749997,-12.243554687499966],[136.94746093750004,-12.34990234374996],[136.53701171875,-12.784277343749991],[136.59433593750012,-13.003808593750051],[136.46103515625006,-13.225195312500034],[136.29414062500004,-13.137988281250031],[135.92734375000012,-13.304296874999977],[135.95449218750005,-13.934863281250017],[135.40517578125005,-14.758203124999966],[135.4533203125001,-14.923144531250003],[136.20537109375002,-15.403417968749963],[136.29140625000005,-15.570117187500003],[136.70488281250007,-15.685253906250011],[136.78466796874997,-15.89423828125004],[137.00214843750004,-15.878320312499994],[137.70371093750006,-16.233007812499963],[138.24501953125005,-16.718359374999977],[139.00986328125006,-16.899316406249994],[139.2484375,-17.328613281249957],[140.03583984375004,-17.702636718749957],[140.51113281250005,-17.62451171875003],[140.83046875,-17.414453125000037],[141.29140625,-16.46347656250002],[141.62548828124997,-15.056640625000014],[141.52294921875003,-14.470117187499994],[141.59433593750006,-14.152832031250014],[141.47255859375,-13.797558593750011],[141.64541015625,-13.259082031250003],[141.61357421875002,-12.943457031250006],[141.92978515625006,-12.73984375],[141.67773437500003,-12.491406250000011],[141.68857421875012,-12.351074218750028],[141.87050781250005,-11.9755859375],[141.96113281250004,-12.054296874999963],[142.168359375,-10.946582031249974],[142.45644531250005,-10.707324218749989],[142.60507812500012,-10.748242187499983],[142.55273437500003,-10.874414062500023],[142.7796875,-11.115332031249977],[142.87255859374997,-11.821386718750034],[143.17890625000004,-11.954492187499966]]],[[[142.2748046875,-10.704785156250011],[142.19140624999997,-10.762011718750031],[142.1310546875001,-10.640625],[142.19794921875004,-10.59199218750004],[142.2748046875,-10.704785156250011]]]]},"properties":{"name":"Australia","childNum":30}},{"geometry":{"type":"Polygon","coordinates":[[[16.953125,48.598828125],[16.86542968750001,48.3869140625],[17.147363281250023,48.00595703125],[17.06660156250001,47.707568359374996],[16.421289062500023,47.674462890624994],[16.676562500000017,47.536035156249994],[16.44287109375,47.39951171875],[16.453417968750017,47.006787109375],[16.093066406250017,46.86328125],[15.957617187500006,46.677636718749994],[14.893261718750011,46.605908203125],[14.5498046875,46.399707031249996],[13.7,46.520263671875],[13.490039062500017,46.555566406249994],[13.3515625,46.557910156249996],[13.16875,46.57265625],[12.479199218750011,46.672509765624994],[12.38828125,46.70263671875],[12.330078125,46.759814453124996],[12.267968750000023,46.835888671875],[12.154101562500017,46.93525390625],[12.130761718750023,46.98476562499999],[12.16552734375,47.028173828125],[12.201269531250006,47.060888671875],[12.197167968750023,47.075],[12.16943359375,47.08212890625],[11.775683593750017,46.986083984375],[11.527539062500011,46.997412109375],[11.433203125,46.983056640624994],[11.244433593750017,46.97568359375],[11.133886718750006,46.936181640624994],[11.0634765625,46.859130859375],[11.025097656250011,46.79697265625],[10.993261718750006,46.777001953124994],[10.92734375,46.769482421875],[10.828906250000017,46.775244140625],[10.759765625,46.793310546875],[10.689257812500017,46.84638671875],[10.579785156250011,46.8537109375],[10.479394531250023,46.855126953124994],[10.452832031250011,46.86494140625],[10.45458984375,46.8994140625],[10.414941406250023,46.964404296874996],[10.349414062500017,46.98476562499999],[10.133496093750011,46.851513671875],[9.580273437500011,47.057373046875],[9.527539062500011,47.270751953125],[9.625878906250023,47.467041015625],[9.524023437500006,47.52421875],[9.748925781250023,47.575537109375],[9.839160156250017,47.552294921874996],[9.971582031250023,47.505322265625],[10.034082031250023,47.473583984375],[10.059863281250017,47.449072265625],[10.066308593750023,47.393359375],[10.200292968750006,47.363427734374994],[10.183007812500023,47.27880859375],[10.369140625,47.366064453125],[10.40390625,47.4169921875],[10.439453125,47.5515625],[10.482812500000023,47.541796875],[10.65869140625,47.547216796875],[10.741601562500023,47.52412109375],[10.873046875,47.52021484375],[11.0419921875,47.393115234374996],[12.185644531250006,47.61953125],[12.203808593750011,47.646728515625],[12.196875,47.70908203125],[12.209277343750017,47.71826171875],[12.268359375000017,47.702734375],[12.353540736607165,47.70264787946429],[12.492553013392856,47.68551897321428],[12.685839843750017,47.669335937499994],[12.771386718750023,47.639404296875],[12.796191406250017,47.60703125],[12.781152343750023,47.5904296875],[12.7828125,47.56416015625],[12.809375,47.5421875],[12.87890625,47.5064453125],[12.968066406250017,47.47568359375],[13.014355468750011,47.478076171874996],[13.031542968750017,47.5080078125],[13.047949218750006,47.579150390624996],[13.054101562500023,47.655126953125],[12.897656250000011,47.721875],[12.953515625000023,47.890625],[12.760351562500006,48.106982421874996],[13.215234375000023,48.301904296874994],[13.322851562500006,48.33125],[13.409375,48.394140625],[13.459863281250023,48.56455078125],[13.4716796875,48.571826171874996],[13.486621093750017,48.581835937499996],[13.636623883928596,48.580904017857144],[13.785351562500011,48.587451171874996],[13.798828125,48.6216796875],[13.802929687500011,48.747509765625],[13.814746093750017,48.766943359375],[14.049121093750017,48.602490234375],[14.691308593750023,48.59921875],[15.066796875000023,48.997851562499996],[16.057226562500006,48.754785156249994],[16.543554687500006,48.796240234375],[16.953125,48.598828125]]]},"properties":{"name":"Austria","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[46.1144531250001,38.877783203125034],[45.4796875000001,39.00625],[44.81718750000002,39.65043945312496],[44.76826171875004,39.70351562500005],[45.03164062500005,39.76513671874997],[45.15283203125003,39.58266601562502],[45.456835937500074,39.494482421875006],[45.78447265625002,39.54560546875001],[45.76630859375004,39.37846679687499],[45.977441406249994,39.24389648437503],[46.1144531250001,38.877783203125034]]],[[[48.572851562500006,41.84448242187503],[49.45673828125004,40.79985351562502],[49.77597656250006,40.583984375],[50.18251953125005,40.50478515625002],[50.3659179687501,40.279492187499955],[49.91884765625005,40.31640625000003],[49.55117187499999,40.19414062499999],[49.3244140625001,39.60834960937501],[49.36279296875003,39.349560546874955],[49.16533203125002,39.03027343750003],[49.013476562500074,39.13398437500001],[48.85449218750003,38.83881835937501],[48.86875,38.43549804687498],[48.59267578125005,38.41108398437498],[47.99648437499999,38.85375976562503],[48.292089843750006,39.01884765624999],[48.10439453125005,39.241113281249994],[48.322167968749994,39.39907226562502],[47.995898437500074,39.683935546875034],[46.490625,38.90668945312498],[46.400292968749994,39.1921875],[46.584765625000074,39.22368164062499],[46.36523437500003,39.402490234374994],[46.48144531249997,39.55517578125003],[46.202050781249994,39.59448242187503],[45.57978515625004,39.9775390625],[45.8859375000001,40.024853515624955],[45.96464843750002,40.233789062499966],[45.45439453125002,40.532373046874966],[45.37890624999997,40.67358398437506],[45.5875,40.846923828125],[45.07050781250004,41.075585937499966],[45.188574218750006,41.14741210937504],[45.001367187499994,41.29096679687498],[45.2171875,41.423193359375006],[45.28095703125004,41.449560546875034],[46.086523437500006,41.183837890625],[46.43095703125002,41.077050781249994],[46.534375,41.08857421875004],[46.62636718750005,41.15966796875006],[46.66240234375002,41.24550781250002],[46.67255859375004,41.28681640625001],[46.61894531250002,41.34375],[46.30546875000002,41.507714843749994],[46.18427734375004,41.70214843749997],[46.42988281250004,41.890966796875006],[46.74931640625002,41.812597656250006],[47.31767578125002,41.28242187500001],[47.79101562499997,41.19926757812502],[48.572851562500006,41.84448242187503]]]]},"properties":{"name":"Azerbaijan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[30.553613281250023,-2.400097656250011],[30.53369140625,-2.42626953125],[30.441992187500006,-2.613476562500011],[30.424218750000023,-2.6416015625],[30.47333984375001,-2.6943359375],[30.42402343750001,-2.824023437500003],[30.433496093750023,-2.87451171875],[30.515039062500023,-2.917578125],[30.604296875000017,-2.935253906250011],[30.70947265625,-2.977246093750011],[30.7802734375,-2.98486328125],[30.811132812500006,-3.116406250000011],[30.79023437500001,-3.274609375000011],[30.4,-3.65390625],[29.947265625,-4.307324218750011],[29.7177734375,-4.455859375],[29.403222656250023,-4.449316406250006],[29.211816406250023,-3.833789062500003],[29.224414062500017,-3.053515625],[29.01435546875001,-2.72021484375],[29.10205078125,-2.595703125],[29.390234375,-2.80859375],[29.698046875000017,-2.794726562500003],[29.8681640625,-2.71640625],[29.93017578125,-2.339550781250011],[30.117285156250006,-2.416601562500006],[30.408496093750017,-2.31298828125],[30.553613281250023,-2.400097656250011]]]},"properties":{"name":"Burundi","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[5.693554687500011,50.774755859375006],[5.993945312500017,50.75043945312504],[6.340917968750006,50.451757812500034],[6.116503906250045,50.120996093749966],[6.08906250000004,50.15458984374996],[6.054785156249977,50.154296875],[5.976269531250068,50.167187499999955],[5.866894531250068,50.08281250000002],[5.817382812500028,50.01269531250003],[5.7880859375,49.96123046875002],[5.744042968749994,49.91962890624998],[5.789746093749983,49.53828125000001],[5.50732421875,49.51088867187502],[4.867578125000051,49.78813476562502],[4.818652343750045,50.153173828125034],[4.545019531250063,49.96025390624999],[4.149316406250023,49.971582031249994],[4.174609375000017,50.24648437500005],[3.689355468750023,50.30605468750002],[3.595410156250068,50.47734374999999],[3.27333984375008,50.53154296875002],[3.10683593750008,50.779443359374994],[2.759375,50.750634765624994],[2.52490234375,51.097119140624955],[3.35009765625,51.37768554687503],[3.43251953125008,51.24575195312505],[3.902050781250011,51.20766601562502],[4.226171875000034,51.38647460937503],[5.03095703125004,51.46909179687498],[5.214160156250045,51.278955078124966],[5.796484375000034,51.153076171875],[5.693554687500011,50.774755859375006]]]},"properties":{"name":"Belgium","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[3.595410156250011,11.6962890625],[3.553906250000011,11.631884765624989],[3.490527343750017,11.49921875],[3.48779296875,11.395410156249994],[3.638867187500011,11.176855468749991],[3.65625,11.154589843749989],[3.6953125,11.1203125],[3.71640625,11.07958984375],[3.7568359375,10.76875],[3.83447265625,10.607421875],[3.771777343750017,10.417626953124994],[3.646582031250006,10.408984374999989],[3.60205078125,10.004541015624994],[3.3251953125,9.778466796874994],[3.044921875,9.083837890624991],[2.774804687500023,9.048535156249997],[2.703125,8.371826171875],[2.68603515625,7.873730468749997],[2.719335937500006,7.616259765624989],[2.7509765625,7.541894531249994],[2.78515625,7.476855468749989],[2.783984375000017,7.443408203124989],[2.765820312500011,7.422509765624994],[2.75048828125,7.395068359374989],[2.756738281250023,7.067919921874989],[2.721386718750011,6.980273437499989],[2.731738281250017,6.852832031249989],[2.7529296875,6.771630859374994],[2.774609375000011,6.711718749999989],[2.753710937500017,6.661767578124994],[2.735644531250017,6.595703125],[2.706445312500023,6.369238281249991],[1.62265625,6.216796875],[1.777929687500006,6.294628906249997],[1.530957031250011,6.992431640625],[1.624707031250011,6.997314453125],[1.600195312500006,9.050048828125],[1.3857421875,9.361669921874991],[1.330078125,9.996972656249994],[0.763378906250011,10.386669921874997],[0.900488281250006,10.993261718749991],[1.4267578125,11.447119140624991],[1.980371093750023,11.418408203124997],[2.38916015625,11.897070312499991],[2.366015625000017,12.221923828125],[2.805273437500006,12.383837890624989],[3.595410156250011,11.6962890625]]]},"properties":{"name":"Benin","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[0.217480468750011,14.911474609374991],[0.163867187500017,14.497216796874994],[0.382519531250011,14.245800781249997],[0.42919921875,13.972119140624997],[0.6181640625,13.703417968750003],[1.201171875,13.357519531249991],[0.988476562500011,13.36484375],[0.9873046875,13.041894531249994],[1.56494140625,12.635400390624994],[2.104589843750006,12.701269531249991],[2.226269531250011,12.466064453125],[2.072949218750011,12.309375],[2.38916015625,11.897070312499991],[1.980371093750023,11.418408203124997],[1.4267578125,11.447119140624991],[0.900488281250006,10.993261718749991],[0.49267578125,10.954980468749994],[-0.068603515625,11.115625],[-0.299462890624994,11.166894531249994],[-0.627148437499983,10.927392578124994],[-1.04248046875,11.010058593749989],[-2.829931640624977,10.998388671874991],[-2.914892578124977,10.592333984374989],[-2.791162109374994,10.432421874999989],[-2.780517578125,9.745849609375],[-2.765966796874977,9.658056640624991],[-2.706201171874994,9.533935546875],[-2.695849609374989,9.481347656249994],[-2.7171875,9.457128906249991],[-2.7666015625,9.424707031249994],[-2.816748046874977,9.425830078124989],[-2.875146484374994,9.500927734374997],[-2.90087890625,9.534619140624997],[-2.948144531249994,9.610742187499994],[-2.98828125,9.687353515624991],[-3.042626953124994,9.720898437499997],[-3.095800781249977,9.752099609374994],[-3.160693359374989,9.849169921874989],[-3.223535156249994,9.895458984374997],[-3.289697265624994,9.882226562499994],[-3.581152343749977,9.92431640625],[-3.790625,9.9171875],[-4.18115234375,9.78173828125],[-4.267187499999977,9.743261718749991],[-4.332226562499983,9.645703125],[-4.406201171874983,9.647998046874989],[-4.526611328125,9.723486328124991],[-4.625830078124977,9.713574218749997],[-4.721777343749977,9.756542968749997],[-5.262304687499977,10.319677734374991],[-5.523535156249977,10.426025390625],[-5.490478515625,11.042382812499994],[-5.250244140625,11.375781249999989],[-5.288134765624989,11.827929687499989],[-4.699316406249977,12.076171875],[-4.4287109375,12.337597656249997],[-4.480615234374994,12.672216796874991],[-4.227099609374989,12.793701171875],[-4.328710937499977,13.119042968749994],[-4.151025390624994,13.306201171875003],[-3.947314453124989,13.402197265624991],[-3.527636718749989,13.182714843749991],[-3.3017578125,13.28076171875],[-3.248632812499977,13.658349609374994],[-2.950830078124994,13.6484375],[-2.873925781249994,13.950732421875003],[-2.586718749999989,14.227587890625003],[-2.113232421874983,14.16845703125],[-1.97304687499999,14.45654296875],[-1.049560546875,14.81953125],[-0.760449218749983,15.047753906249994],[-0.235888671874989,15.059423828124991],[0.217480468750011,14.911474609374991]]]},"properties":{"name":"Burkina Faso","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[91.94921875000003,21.50805664062503],[91.85947265625012,21.532958984375057],[91.90771484374997,21.722949218750017],[91.94921875000003,21.50805664062503]]],[[[91.87382812500002,21.832128906249977],[91.8375976562501,21.750244140625],[91.85068359375012,21.927050781250045],[91.87382812500002,21.832128906249977]]],[[[91.15078125000005,22.175195312499966],[91.04472656250002,22.10517578125001],[91.0794921875,22.519726562499983],[91.15078125000005,22.175195312499966]]],[[[91.55673828125006,22.38222656250005],[91.41132812500004,22.475683593750006],[91.45605468749997,22.61650390624999],[91.55673828125006,22.38222656250005]]],[[[90.77763671875007,22.089306640624983],[90.51503906250005,22.06513671875001],[90.68046875000007,22.327490234375006],[90.50292968749997,22.835351562499994],[90.59648437500002,22.863525390625057],[90.86816406250003,22.48486328125],[90.77763671875007,22.089306640624983]]],[[[88.94072265625002,26.24536132812497],[88.97041015625004,26.250878906250023],[88.95195312500002,26.412109375],[89.01865234375012,26.410253906249977],[89.28925781250004,26.03759765625],[89.54990234375006,26.005273437499994],[89.57275390625003,26.13232421875003],[89.67089843750003,26.21381835937504],[89.8229492187501,25.94140625000003],[89.82490234375004,25.56015625],[89.80087890625012,25.33613281250001],[89.81406250000006,25.305371093749955],[89.86630859375012,25.293164062499955],[90.11962890625003,25.21997070312497],[90.61308593750002,25.16772460937497],[92.04970703125005,25.16948242187499],[92.46835937500006,24.94414062499999],[92.38496093750004,24.848779296875023],[92.25126953125007,24.895068359375045],[92.22832031250002,24.88134765625],[92.22666015625012,24.77099609374997],[92.11748046875002,24.493945312500017],[92.06416015625004,24.374365234375006],[91.84619140624997,24.17529296875003],[91.72656250000003,24.20507812499997],[91.35019531250012,24.06049804687501],[91.16044921875007,23.66064453125],[91.359375,23.06835937500003],[91.43623046875004,23.19990234375001],[91.55351562500002,22.991552734375006],[91.61953125,22.97968750000001],[91.75097656250003,23.053515625000017],[91.75419921875007,23.287304687499955],[91.79003906249997,23.361035156249983],[91.937890625,23.504687500000017],[91.92949218750007,23.598242187499977],[91.92958984375,23.68598632812501],[91.97851562500003,23.691992187499977],[92.04404296875006,23.677783203125017],[92.24609375000003,23.683593750000057],[92.33378906250002,23.242382812499955],[92.36162109375002,22.929003906250074],[92.46445312500006,22.734423828125045],[92.49140625000004,22.685400390625006],[92.5612304687501,22.04804687500001],[92.57490234375004,21.978076171875045],[92.58281250000002,21.940332031249994],[92.5934570312501,21.46733398437499],[92.63164062500002,21.306201171875045],[92.33056640624997,21.439794921874977],[92.17958984375005,21.293115234375023],[92.32412109375,20.791845703125063],[92.0560546875,21.1748046875],[91.86337890625012,22.350488281249966],[91.7970703125001,22.297460937500006],[91.48007812500006,22.884814453125045],[91.2162109375,22.642236328124994],[90.94560546875002,22.597021484375034],[90.65625,23.025488281250006],[90.60400390624997,23.59135742187499],[90.55566406249997,23.42153320312505],[90.26914062500012,23.455859375000017],[90.59091796875012,23.266406250000045],[90.43505859374997,22.751904296874955],[90.61611328125,22.362158203125034],[90.23056640625006,21.82978515625004],[90.07119140625005,21.887255859375017],[90.20957031250006,22.156591796875006],[89.95419921875006,22.022851562500023],[89.91806640625012,22.11616210937501],[89.98515625000002,22.466406250000063],[89.81191406250005,21.983496093750006],[89.56855468750004,21.767431640625034],[89.48320312500007,22.275537109374994],[89.50058593750006,21.914355468750045],[89.35371093750004,21.72109375],[89.09394531250004,21.872753906249983],[89.05,22.274609374999983],[88.92070312500002,22.632031249999955],[88.89970703125002,22.843505859375057],[88.85058593749997,23.040527343750057],[88.928125,23.186621093750063],[88.72441406250002,23.254980468750034],[88.69765625,23.493017578125034],[88.63574218749997,23.55],[88.56738281249997,23.674414062500034],[88.69980468750006,24.002539062500006],[88.71376953125,24.069628906250017],[88.72656250000003,24.186230468749955],[88.7335937500001,24.23090820312501],[88.72353515625,24.27490234375],[88.64228515625004,24.325976562500017],[88.49853515625003,24.34663085937504],[88.3375,24.45385742187503],[88.225,24.460644531249983],[88.14550781250003,24.485791015624955],[88.07910156249997,24.549902343750063],[88.02343750000003,24.62783203125005],[88.03027343749997,24.66445312500005],[88.0451171875001,24.713037109374994],[88.1498046875,24.914648437500034],[88.1888671875,24.92060546875001],[88.27949218750004,24.881933593750034],[88.31337890625005,24.8818359375],[88.37294921875,24.961523437499977],[88.45625,25.18842773437504],[88.57382812500006,25.18789062499999],[88.92978515625012,25.222998046875063],[88.94414062500002,25.290771484375],[88.85478515625002,25.333544921875017],[88.76914062500006,25.490478515625],[88.50244140624997,25.537011718749994],[88.14746093749997,25.811425781250023],[88.1066406250001,25.841113281250045],[88.15078125000005,26.08715820312497],[88.33398437499997,26.257519531249955],[88.44042968749997,26.369482421875034],[88.38623046875003,26.471533203125034],[88.35146484375005,26.482568359374966],[88.36992187500002,26.564111328124994],[88.51826171875004,26.517773437499955],[88.68281250000004,26.291699218749983],[88.94072265625002,26.24536132812497]]]]},"properties":{"name":"Bangladesh","childNum":6}},{"geometry":{"type":"Polygon","coordinates":[[[28.585351562500023,43.742236328124996],[28.465429687500006,43.389306640624994],[28.133691406250023,43.39560546875],[27.92890625000001,43.1861328125],[27.88886718750001,42.74970703125],[27.484765625000023,42.468066406249996],[28.014453125000017,41.969042968749996],[27.47480468750001,41.946875],[27.294921875,42.079541015625],[27.24433593750001,42.09326171875],[27.01171875,42.058642578124996],[26.96875,42.02685546875],[26.884863281250006,41.991845703124994],[26.615332031250006,41.964892578124996],[26.549707031250023,41.896728515625],[26.51142578125001,41.8263671875],[26.3603515625,41.8015625],[26.327246093750006,41.772802734375],[26.31796875,41.744677734374996],[26.320898437500006,41.716552734375],[26.200585937500023,41.743798828124994],[26.107421875,41.72568359375],[26.085546875,41.704150390624996],[26.066015625,41.673242187499994],[26.1435546875,41.521533203124996],[26.155175781250023,41.434863281249996],[26.135351562500006,41.3857421875],[26.06640625,41.35068359375],[25.92333984375,41.311914062499994],[25.784960937500017,41.330419921875],[25.52705078125001,41.2998046875],[25.381933593750006,41.26435546875],[25.25117187500001,41.243554687499994],[24.773730468750017,41.356103515624994],[24.595996093750017,41.442724609375],[24.5693359375,41.4673828125],[24.51826171875001,41.552539062499996],[24.487890625,41.555224609374996],[24.056054687500023,41.527246093749994],[24.03291015625001,41.469091796875],[24.011328125,41.46005859375],[23.635156250000023,41.386767578124996],[23.53583984375001,41.386035156249996],[23.433398437500017,41.398730468749996],[23.3720703125,41.3896484375],[23.23984375,41.3849609375],[23.15595703125001,41.322070312499996],[22.916015625,41.336279296875],[23.00361328125001,41.73984375],[22.836816406250023,41.993603515625],[22.344042968750017,42.31396484375],[22.42207031250001,42.328857421875],[22.445703125000023,42.359130859375],[22.523535156250006,42.440966796874996],[22.53242187500001,42.481201171875],[22.524218750000017,42.50390625],[22.43623046875001,42.6291015625],[22.466796875,42.84248046875],[22.799902343750006,42.985742187499994],[22.976855468750017,43.18798828125],[22.85957031250001,43.25234375],[22.819726562500023,43.300732421875],[22.767578125,43.354150390624994],[22.554589843750023,43.454492187499994],[22.36962890625,43.781298828124996],[22.36542968750001,43.862109375],[22.399023437500006,43.96953125],[22.420800781250023,44.007421875],[22.452529688228115,44.0510441391688],[22.547921095934313,44.113823956634434],[22.688564844478098,44.254306249271906],[23.02851562500001,44.077978515625],[22.868261718750006,43.947900390624994],[22.919042968750006,43.83447265625],[25.4970703125,43.670800781249994],[26.2158203125,44.007275390625],[27.0869140625,44.167382812499994],[27.425390625,44.0205078125],[27.88427734375,43.987353515624996],[28.221972656250017,43.772851562499994],[28.585351562500023,43.742236328124996]]]},"properties":{"name":"Bulgaria","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[50.60722656250002,25.883105468750003],[50.57490234375001,25.806787109374994],[50.465917968750006,25.965527343749997],[50.46992187500001,26.228955078124997],[50.5859375,26.24072265625],[50.60722656250002,25.883105468750003]]]},"properties":{"name":"Bahrain","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-73.02685546874994,21.19238281250003],[-73.16455078125003,20.979150390625023],[-73.68115234375003,20.9755859375],[-73.68037109374995,21.103320312500017],[-73.52309570312497,21.190820312499966],[-73.23535156249997,21.15449218750004],[-73.05849609375,21.313378906249994],[-73.02685546874994,21.19238281250003]]],[[[-73.041015625,22.429052734375006],[-72.74726562500001,22.32739257812497],[-73.16191406250002,22.380712890625006],[-73.041015625,22.429052734375006]]],[[[-74.20673828124998,22.213769531250023],[-74.27690429687499,22.183691406250006],[-73.906396484375,22.527441406250063],[-73.95419921874995,22.71552734375001],[-73.84995117187503,22.731054687500063],[-73.83652343749998,22.538427734374977],[-74.20673828124998,22.213769531250023]]],[[[-74.05751953124997,22.723486328125034],[-74.27460937499995,22.71166992187503],[-74.30703125,22.83959960937497],[-74.05751953124997,22.723486328125034]]],[[[-74.84047851562494,22.894335937500017],[-75.22333984374995,23.165332031250074],[-75.13056640624998,23.267919921875006],[-75.31596679687502,23.668359374999966],[-74.84047851562494,22.894335937500017]]],[[[-75.66455078124997,23.45014648437501],[-76.03710937500003,23.60278320312503],[-76.01044921875001,23.671386718750057],[-75.66455078124997,23.45014648437501]]],[[[-74.42944335937497,24.068066406249955],[-74.55092773437502,23.96894531250001],[-74.52690429687502,24.105078125000034],[-74.42944335937497,24.068066406249955]]],[[[-77.65771484374994,24.249462890624955],[-77.75527343750002,24.163476562500023],[-77.61538085937494,24.216357421875045],[-77.5615234375,24.136816406250006],[-77.57373046875,23.739160156249994],[-77.77128906249999,23.752539062499977],[-77.99990234374994,24.219824218750063],[-77.65771484374994,24.249462890624955]]],[[[-75.30839843749999,24.2],[-75.50322265624996,24.139062500000023],[-75.40893554687503,24.265771484374994],[-75.72666015625,24.68935546875005],[-75.30839843749999,24.2]]],[[[-77.34755859375,25.013867187499983],[-77.56191406249997,25.030029296875],[-77.27558593750001,25.055761718750006],[-77.34755859375,25.013867187499983]]],[[[-77.74384765625001,24.70742187499999],[-77.74521484375,24.463476562500034],[-78.04492187499997,24.287451171875063],[-78.14580078125002,24.493457031250017],[-78.36650390624993,24.544189453125057],[-78.435302734375,24.627587890624994],[-78.24272460937493,24.65380859375],[-78.21137695312495,25.191259765624977],[-77.97529296874998,25.084814453125063],[-77.74384765625001,24.70742187499999]]],[[[-76.64882812499994,25.487402343750006],[-76.34379882812496,25.33203124999997],[-76.12661132812497,25.14052734375005],[-76.16953125,24.6494140625],[-76.319970703125,24.81767578124999],[-76.21376953124994,24.822460937499983],[-76.160400390625,25.119335937499983],[-76.36928710937502,25.312597656250006],[-76.62070312499998,25.43164062500003],[-76.78066406249997,25.426855468750006],[-76.71083984374997,25.564892578124983],[-76.64882812499994,25.487402343750006]]],[[[-78.49287109375001,26.729052734375017],[-77.92246093749998,26.69111328125001],[-78.74365234374994,26.50068359375004],[-78.98564453124996,26.689501953125045],[-78.79804687500001,26.58242187499999],[-78.59711914062493,26.797949218750006],[-78.49287109375001,26.729052734375017]]],[[[-77.22563476562496,25.904199218750023],[-77.40317382812498,26.02470703124996],[-77.24677734374998,26.156347656250034],[-77.238623046875,26.561132812500006],[-77.510595703125,26.845996093750045],[-77.94375,26.90356445312503],[-77.53388671874995,26.903417968750006],[-77.06635742187501,26.530175781249994],[-77.03828124999998,26.333447265624983],[-77.16728515624996,26.240332031250006],[-77.22563476562496,25.904199218750023]]]]},"properties":{"name":"Bahamas","childNum":14}},{"geometry":{"type":"Polygon","coordinates":[[[19.007128906250045,44.86918945312502],[19.348632812500057,44.88090820312502],[19.118457031250074,44.359960937500006],[19.583789062500017,44.04345703125003],[19.245019531249994,43.96503906250004],[19.495117187500057,43.642871093750045],[19.19433593749997,43.533300781250006],[19.164355468750017,43.53544921874999],[19.11279296874997,43.52773437500002],[19.080078125000057,43.51772460937502],[19.0283203125,43.53251953125002],[18.97421875,43.54233398437498],[18.95068359375,43.52666015624999],[19.036718750000034,43.35732421875002],[19.026660156250017,43.292431640624955],[18.97871093750001,43.28540039062503],[18.934667968750006,43.339453125000034],[18.85107421875003,43.34633789062502],[18.749218750000068,43.283544921875006],[18.67421875000008,43.230810546875006],[18.623632812500063,43.027685546875034],[18.488476562500068,43.01215820312498],[18.44384765625003,42.96845703125004],[18.46601562500001,42.777246093749994],[18.54589843750003,42.64160156249997],[18.436328125000017,42.559716796874994],[17.667578125000063,42.897119140624994],[17.585156250000068,42.93837890625005],[17.650488281250063,43.006591796875],[17.27382812500005,43.44575195312501],[16.300097656250017,44.12451171875],[16.10341796875008,44.52099609375006],[15.736621093750045,44.76582031250001],[15.788085937500057,45.17895507812497],[16.028320312500057,45.18959960937502],[16.29335937500005,45.00883789062496],[16.53066406250008,45.21669921875002],[16.918652343749983,45.27656249999998],[17.812792968750074,45.078125],[18.66259765625,45.07744140624999],[18.83642578125,44.883251953124955],[19.007128906250045,44.86918945312502]]]},"properties":{"name":"Bosnia and Herz.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.14794921875,56.142919921875],[28.284277343750006,56.055908203125],[29.375,55.938720703125],[29.353417968750023,55.784375],[29.412988281250023,55.724853515625],[29.482226562500017,55.6845703125],[29.63007812500001,55.751171875],[29.6845703125,55.7697265625],[29.744140625,55.77041015625],[29.82392578125001,55.7951171875],[29.881640625000017,55.832324218749996],[29.93701171875,55.845263671874996],[30.04267578125001,55.83642578125],[30.23359375000001,55.84521484375],[30.625585937500006,55.666259765625],[30.906835937500006,55.57001953125],[30.90058593750001,55.397412109375],[30.82099609375001,55.3302734375],[30.810546875,55.306982421875],[30.814453125,55.2787109375],[30.87744140625,55.2234375],[30.958886718750023,55.13759765625],[30.97773437500001,55.08779296875],[30.97773437500001,55.05048828125],[30.829882812500017,54.914990234375],[30.804492187500017,54.8609375],[30.791015625,54.806005859375],[30.798828125,54.783251953124996],[30.984179687500017,54.6958984375],[31.12128906250001,54.648486328124996],[31.152148437500017,54.625341796875],[31.074804687500006,54.491796875],[31.18476562500001,54.452978515625],[31.299121093750017,54.29169921875],[31.403613281250017,54.195947265625],[31.62841796875,54.111181640625],[31.7919921875,54.055908203125],[31.825976562500017,54.030712890625],[31.837792968750023,54.00078125],[31.825292968750006,53.935009765625],[31.783007812500017,53.85498046875],[31.754199218750017,53.81044921875],[31.82080078125,53.791943359375],[31.9921875,53.796875],[32.20039062500001,53.78125],[32.45097656250002,53.6533203125],[32.70429687500001,53.336328125],[32.64443359375002,53.32890625],[32.57802734375002,53.31240234375],[32.469335937500006,53.2703125],[32.14199218750002,53.091162109375],[31.849707031250006,53.106201171875],[31.668261718750017,53.200927734375],[31.417871093750023,53.196044921875],[31.38837890625001,53.184814453125],[31.364550781250017,53.138964843749996],[31.30292968750001,53.060888671875],[31.2587890625,53.01669921875],[31.29511718750001,52.989794921874996],[31.35302734375,52.933447265625],[31.442773437500023,52.86181640625],[31.53515625,52.7982421875],[31.564843750000023,52.759228515625],[31.585546875,52.532470703125],[31.57734375000001,52.312304687499996],[31.6015625,52.284814453125],[31.64990234375,52.26220703125],[31.690625,52.220654296875],[31.758593750000017,52.125830078125],[31.76337890625001,52.10107421875],[31.57373046875,52.10810546875],[31.345996093750017,52.10537109375],[31.21796875000001,52.050244140625],[30.98066406250001,52.046191406249996],[30.845703125,51.953076171875],[30.755273437500023,51.895166015625],[30.667285156250017,51.814111328125],[30.583886718750023,51.68896484375],[30.533007812500017,51.596337890624994],[30.56074218750001,51.531494140625],[30.602343750000017,51.471240234374996],[30.611718750000023,51.40634765625],[30.63251953125001,51.355419921875],[30.449511718750017,51.274316406249994],[30.160742187500006,51.477880859375],[29.346484375000017,51.382568359375],[29.10205078125,51.6275390625],[29.06074218750001,51.625439453125],[29.013085937500023,51.598925781249996],[28.97773437500001,51.57177734375],[28.927539062500017,51.562158203124994],[28.849511718750023,51.540185546874994],[28.73125,51.433398437499996],[28.690234375000017,51.438867187499994],[28.647753906250017,51.45654296875],[28.599023437500023,51.542626953124994],[28.532031250000017,51.562451171875],[27.85859375000001,51.5923828125],[27.7,51.477978515625],[27.689746093750017,51.572412109374994],[27.296289062500023,51.597412109375],[27.270117187500006,51.613574218749996],[27.141992187500023,51.75205078125],[27.074121093750023,51.76083984375],[26.95283203125001,51.75400390625],[26.7734375,51.770703125],[25.785742187500006,51.923828125],[24.361914062500006,51.867529296875],[24.280078125000017,51.774707031249996],[24.126855468750023,51.6646484375],[23.978320312500017,51.59130859375],[23.951171875,51.58505859375],[23.8642578125,51.623974609375],[23.79169921875001,51.637109375],[23.706835937500017,51.64130859375],[23.61376953125,51.525390625],[23.605273437500017,51.517919921875],[23.652441406250006,52.040380859375],[23.175097656250017,52.28662109375],[23.915429687500023,52.770263671875],[23.484667968750017,53.939794921875],[23.55908203125,53.91982421875],[23.733691406250017,53.912255859375],[24.191308593750023,53.950439453125],[24.236621093750017,53.919970703124996],[24.31796875,53.89296875],[24.620703125,53.979833984375],[24.768164062500006,53.974658203124996],[24.78925781250001,53.9982421875],[24.82568359375,54.118994140625],[24.869531250000023,54.145166015625],[25.04609375000001,54.133056640625],[25.111425781250006,54.154931640625],[25.179492187500017,54.2142578125],[25.46113281250001,54.292773437499996],[25.505664062500017,54.264941406249996],[25.52734375,54.215136718749996],[25.497363281250017,54.175244140625],[25.573046875000017,54.139892578125],[25.765234375,54.17978515625],[25.702539062500023,54.29296875],[25.61689453125001,54.310107421874996],[25.557519531250023,54.310693359375],[25.54736328125,54.331835937499996],[25.56757812500001,54.37705078125],[25.62031250000001,54.460400390625],[25.68515625,54.535791015625],[25.72480468750001,54.564257812499996],[25.73164062500001,54.590380859374996],[25.722460937500017,54.71787109375],[25.859277343750023,54.919287109375],[25.964453125,54.94716796875],[26.09296875000001,54.9623046875],[26.175195312500023,55.003271484375],[26.250781250000017,55.12451171875],[26.291796875000017,55.139599609375],[26.601171875,55.130175781249996],[26.6484375,55.20419921875],[26.775683593750017,55.273095703125],[26.760156250000023,55.293359375],[26.68125,55.306445312499996],[26.49531250000001,55.318017578125],[26.457617187500006,55.34248046875],[26.469531250000017,55.371923828125],[26.51923828125001,55.44814453125],[26.56660156250001,55.546484375],[26.5908203125,55.62265625],[26.593554687500017,55.667529296874996],[27.052539062500017,55.83056640625],[27.576757812500006,55.798779296875],[28.14794921875,56.142919921875]]]},"properties":{"name":"Belarus","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-87.8529296875,17.4228515625],[-87.92998046874996,17.283007812500017],[-87.826416015625,17.546289062499994],[-87.8529296875,17.4228515625]]],[[[-88.89404296875,15.890625],[-89.2328125,15.888671875],[-89.16147460937503,17.81484375],[-89.13354492187503,17.970800781249977],[-88.80634765624998,17.965527343749983],[-88.52299804687499,18.445898437500063],[-88.29565429687494,18.47241210937503],[-88.34926757812494,18.358837890624983],[-88.1302734375,18.350732421875023],[-88.08525390624999,18.226123046875045],[-88.27172851562494,17.60986328125],[-88.203466796875,17.5166015625],[-88.31342773437501,16.632763671874983],[-88.89404296875,15.890625]]]]},"properties":{"name":"Belize","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-64.73027343749999,32.29345703125],[-64.86284179687499,32.273876953125],[-64.66831054687499,32.38193359375],[-64.73027343749999,32.29345703125]]]},"properties":{"name":"Bermuda","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-58.15976562499999,-20.164648437500006],[-58.18017578125,-19.81787109375],[-59.09052734375,-19.286230468750006],[-60.00737304687499,-19.29755859375001],[-61.7568359375,-19.6453125],[-62.276318359375,-20.5625],[-62.27666015624999,-21.066015625],[-62.65097656249999,-22.233691406250003],[-62.84335937499999,-21.99726562500001],[-63.92167968749999,-22.028613281250003],[-63.97612304687499,-22.072558593750003],[-64.26640624999999,-22.603320312500003],[-64.30791015624999,-22.7953125],[-64.32529296874999,-22.82763671875],[-64.373974609375,-22.761035156250003],[-64.4455078125,-22.58535156250001],[-64.477734375,-22.4853515625],[-64.5236328125,-22.37158203125],[-64.60551757812499,-22.228808593750003],[-64.992626953125,-22.109667968750003],[-65.518798828125,-22.09453125],[-65.686181640625,-22.11025390625001],[-65.77104492187499,-22.099609375],[-65.86015624999999,-22.01972656250001],[-66.05859375,-21.879492187500006],[-66.098583984375,-21.835058593750006],[-66.17465820312499,-21.8056640625],[-66.220166015625,-21.802539062500003],[-66.24760742187499,-21.83046875],[-66.28212890625,-21.94746093750001],[-66.3224609375,-22.053125],[-66.365185546875,-22.11376953125],[-66.71171874999999,-22.21630859375],[-66.99111328125,-22.509863281250006],[-67.19487304687499,-22.82167968750001],[-67.362255859375,-22.85517578125001],[-67.57993164062499,-22.891699218750006],[-67.79443359375,-22.879492187500006],[-67.87944335937499,-22.82294921875001],[-67.88173828125,-22.49335937500001],[-68.18642578125,-21.61855468750001],[-68.197021484375,-21.30029296875],[-68.558251953125,-20.901953125],[-68.484326171875,-20.62841796875],[-68.74516601562499,-20.45859375],[-68.75932617187499,-20.115527343750003],[-68.560693359375,-19.967089843750003],[-68.559375,-19.90234375],[-68.578271484375,-19.856542968750006],[-68.69619140625,-19.74072265625],[-68.69829101562499,-19.72109375],[-68.57529296874999,-19.56015625],[-68.462890625,-19.43281250000001],[-68.470166015625,-19.409960937500003],[-68.49199218749999,-19.381933593750006],[-68.85795898437499,-19.093359375],[-68.96831054687499,-18.96796875000001],[-68.97885742187499,-18.81298828125],[-69.026806640625,-18.65625],[-69.09228515625,-18.28242187500001],[-69.145458984375,-18.14404296875],[-69.0939453125,-18.05048828125001],[-69.28232421874999,-17.96484375],[-69.31337890625,-17.943164062500003],[-69.5109375,-17.50605468750001],[-69.51108398437499,-17.5048828125],[-69.510986328125,-17.46035156250001],[-69.521923828125,-17.388964843750003],[-69.645703125,-17.24853515625],[-69.62485351562499,-17.2001953125],[-69.020703125,-16.6421875],[-69.03291015625,-16.47597656250001],[-68.8427734375,-16.337890625],[-69.21757812499999,-16.14912109375001],[-69.4208984375,-15.640625],[-69.17246093749999,-15.236621093750003],[-69.37470703125,-14.962988281250006],[-69.35947265624999,-14.7953125],[-68.87089843749999,-14.169726562500003],[-69.07412109375,-13.682812500000011],[-68.97861328124999,-12.880078125000011],[-68.68525390625,-12.501953125],[-69.57861328125,-10.951757812500006],[-69.228515625,-10.955664062500006],[-68.84833984375,-11.011132812500009],[-68.678369140625,-11.11279296875],[-68.39799804687499,-11.01875],[-68.0716796875,-10.703125],[-67.99169921875,-10.674414062500006],[-67.83500976562499,-10.662792968750011],[-67.72177734374999,-10.68310546875],[-67.416943359375,-10.389843750000011],[-66.575341796875,-9.89990234375],[-65.396142578125,-9.71240234375],[-65.298583984375,-10.146777343750003],[-65.31308593749999,-10.253027343750006],[-65.395458984375,-10.392285156250011],[-65.4369140625,-10.449023437500003],[-65.44711914062499,-10.507421875],[-65.33403320312499,-10.892773437500011],[-65.32377929687499,-11.024804687500009],[-65.389892578125,-11.246289062500011],[-65.1857421875,-11.74951171875],[-64.783447265625,-12.059375],[-64.42050781249999,-12.439746093750003],[-63.68857421874999,-12.47802734375],[-63.3466796875,-12.680078125],[-63.06748046874999,-12.669140625000011],[-62.76547851562499,-12.997265625000011],[-62.11801757812499,-13.159765625],[-62.09477539062499,-13.241992187500003],[-61.944726562499994,-13.40625],[-61.87412109374999,-13.470410156250011],[-61.789941406249994,-13.525585937500011],[-61.57568359375,-13.524804687500009],[-61.51157226562499,-13.541210937500011],[-61.41606445312499,-13.526562500000011],[-61.129150390625,-13.49853515625],[-61.07700195312499,-13.48974609375],[-60.506591796875,-13.78984375],[-60.372705078124994,-14.41875],[-60.273339843749994,-15.088769531250009],[-60.402001953124994,-15.0927734375],[-60.583203125,-15.098339843750011],[-60.53046875,-15.143164062500006],[-60.38046875,-15.318261718750009],[-60.242333984374994,-15.479589843750006],[-60.20664062499999,-15.901953125],[-60.18720703125,-16.132128906250003],[-60.17558593749999,-16.269335937500003],[-58.53793945312499,-16.328222656250006],[-58.49658203125,-16.32666015625],[-58.42368164062499,-16.307910156250003],[-58.37539062499999,-16.28359375],[-58.345605468749994,-16.284375],[-58.35039062499999,-16.490820312500006],[-58.470605468749994,-16.650195312500003],[-58.478125,-16.70068359375],[-58.45981445312499,-16.910742187500006],[-58.417382812499994,-17.08056640625],[-58.39599609375,-17.23427734375001],[-58.34775390624999,-17.28212890625001],[-57.99091796875,-17.51289062500001],[-57.905029296875,-17.532324218750006],[-57.832470703125,-17.512109375],[-57.78886718749999,-17.573046875],[-57.780175781249994,-17.67177734375001],[-57.66166992187499,-17.947363281250006],[-57.58647460937499,-18.12226562500001],[-57.49565429687499,-18.214648437500003],[-57.57402343749999,-18.279296875],[-57.725,-18.733203125],[-57.783105468749994,-18.91425781250001],[-57.716796875,-19.044042968750006],[-58.131494140624994,-19.74453125],[-57.860742187499994,-19.979589843750006],[-57.887597656249994,-20.02041015625001],[-57.96015625,-20.04072265625001],[-58.021142578124994,-20.05517578125],[-58.09375,-20.15107421875001],[-58.15976562499999,-20.164648437500006]]]},"properties":{"name":"Bolivia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-48.48588867187493,-27.76699218749998],[-48.554589843749994,-27.81220703125004],[-48.542187499999955,-27.57480468749999],[-48.41489257812495,-27.399609375],[-48.48588867187493,-27.76699218749998]]],[[[-48.584423828124955,-26.401562499999983],[-48.665771484375,-26.289648437500006],[-48.53974609374998,-26.170312500000023],[-48.584423828124955,-26.401562499999983]]],[[[-45.26025390624997,-23.889160156249986],[-45.451416015625,-23.895605468749977],[-45.30234375,-23.727539062500014],[-45.26025390624997,-23.889160156249986]]],[[[-44.12929687499994,-23.14189453124999],[-44.36015624999999,-23.17207031250001],[-44.24287109374998,-23.074121093750037],[-44.12929687499994,-23.14189453124999]]],[[[-38.90356445312497,-13.473437499999974],[-38.97758789062496,-13.523535156249963],[-39.02216796874998,-13.445605468749989],[-38.907128906249994,-13.401074218749983],[-38.90356445312497,-13.473437499999974]]],[[[-38.743847656249955,-13.097070312500037],[-38.668115234374966,-12.880175781249989],[-38.601171875,-12.99257812499998],[-38.743847656249955,-13.097070312500037]]],[[[-44.49931640625002,-2.939648437499983],[-44.597753906250006,-3.037597656249943],[-44.4814453125,-2.717578125000031],[-44.49931640625002,-2.939648437499983]]],[[[-44.88310546874996,-1.317871093749986],[-45.020849609375034,-1.372363281249974],[-44.978662109374966,-1.267285156249983],[-44.88310546874996,-1.317871093749986]]],[[[-51.83251953124997,-1.433789062499969],[-51.938378906249966,-1.452636718749986],[-51.680029296875006,-1.086132812500026],[-51.546044921874966,-0.649609375],[-51.25400390624998,-0.54140625],[-51.16074218749998,-0.666699218750011],[-51.27631835937498,-1.02177734374996],[-51.83251953124997,-1.433789062499969]]],[[[-49.62866210937497,-0.229199218749969],[-49.11699218749999,-0.163574218750014],[-48.39267578124995,-0.29736328125],[-48.83359375,-1.390039062500023],[-49.038476562499994,-1.5140625],[-49.17270507812498,-1.41259765625],[-49.233984375000034,-1.59951171874998],[-49.50664062499999,-1.511621093750023],[-49.587890625,-1.712402343749972],[-49.805126953124955,-1.790234375000026],[-50.06572265625002,-1.703808593749997],[-50.50761718749999,-1.787988281250009],[-50.759765625,-1.240234374999972],[-50.72949218749997,-1.126757812499946],[-50.57695312499999,-1.103125],[-50.709619140624994,-1.07773437499999],[-50.796093749999955,-0.90625],[-50.6455078125,-0.27285156249998],[-50.24824218749998,-0.11640625],[-49.62866210937497,-0.229199218749969]]],[[[-50.65288085937499,-0.131640624999989],[-50.926367187500034,-0.327343749999983],[-51.03808593749994,-0.225878906250003],[-50.84218750000002,-0.050195312500009],[-50.65288085937499,-0.131640624999989]]],[[[-49.44389648437499,-0.112402343749977],[-49.83007812499997,-0.093896484375023],[-49.50346679687496,0.083691406250011],[-49.37231445312497,0.001074218749963],[-49.44389648437499,-0.112402343749977]]],[[[-49.73823242187498,0.26816406250002],[-49.917089843750006,-0.023193359375014],[-50.339453125,0.043359375000051],[-50.27265624999998,0.231738281249974],[-49.73823242187498,0.26816406250002]]],[[[-50.42612304687498,0.139257812500048],[-50.44394531249998,-0.007666015624949],[-50.623925781249966,0.054394531249983],[-50.372753906249955,0.590869140625031],[-50.33227539062497,0.259033203125028],[-50.42612304687498,0.139257812500048]]],[[[-50.152929687500006,0.393017578125054],[-50.26132812499998,0.359179687500003],[-50.281689453124955,0.51650390624998],[-50.05883789062503,0.638037109374963],[-50.152929687500006,0.393017578125054]]],[[[-50.29897460937502,1.93852539062496],[-50.45610351562496,1.910498046875034],[-50.49101562499996,2.128613281249969],[-50.34199218749998,2.14174804687498],[-50.29897460937502,1.93852539062496]]],[[[-59.69970703125,4.353515625],[-59.73857421874993,4.226757812500026],[-59.62021484374998,4.023144531250026],[-59.557763671874966,3.960009765625031],[-59.551123046875034,3.933544921874969],[-59.854394531249994,3.5875],[-59.99433593749998,2.689990234375031],[-59.88964843749997,2.362939453125009],[-59.75522460937495,2.27412109375004],[-59.74350585937498,2.12163085937496],[-59.75175781249996,1.962402343750028],[-59.75620117187498,1.900634765624972],[-59.666601562500006,1.746289062499969],[-59.53569335937499,1.7],[-59.23120117187494,1.376025390625031],[-58.82177734374994,1.201220703125031],[-58.787207031250006,1.208496093750014],[-58.73032226562498,1.247509765625054],[-58.68461914062499,1.28105468749996],[-58.511865234374966,1.284667968749986],[-58.506054687499926,1.438671875000011],[-58.39580078124993,1.481738281249989],[-58.38037109375,1.530224609375011],[-58.34067382812498,1.587548828125051],[-58.03466796875,1.520263671875014],[-57.9828125,1.648437500000014],[-57.87343750000002,1.667285156250045],[-57.79565429687497,1.7],[-57.59443359375001,1.704101562499986],[-57.54575195312495,1.726074218750028],[-57.31748046874998,1.963476562499991],[-57.27558593749998,1.959228515625014],[-57.189599609374966,1.981591796875037],[-57.11889648437494,2.013964843749974],[-57.09267578125002,2.005810546874997],[-57.03759765625,1.936474609374997],[-56.96953124999999,1.91640625],[-56.48281249999994,1.942138671874986],[-56.019921874999966,1.842236328124983],[-55.96333007812498,1.85708007812498],[-55.929638671874955,1.8875],[-55.92163085937503,1.976660156250006],[-55.91533203124999,2.039550781250028],[-55.96196289062496,2.09511718749998],[-56.02006835937499,2.15815429687504],[-56.073632812499994,2.236767578124969],[-56.13769531249997,2.259033203124986],[-56.12939453124997,2.299511718749969],[-56.08779296875002,2.341308593750043],[-56.045117187499955,2.364404296875037],[-56.02036132812498,2.392773437500054],[-55.993505859375006,2.497509765624983],[-55.9755859375,2.515966796875006],[-55.957470703124955,2.52045898437504],[-55.730566406250006,2.406152343750023],[-55.385351562500006,2.440625],[-55.34399414062503,2.488769531249972],[-55.28603515625002,2.49965820312498],[-55.18769531249998,2.547509765625037],[-55.114111328125006,2.539208984375037],[-55.07031249999994,2.548339843750028],[-55.005810546874955,2.592968749999983],[-54.97866210937502,2.597656250000043],[-54.968408203124966,2.548339843750028],[-54.92656249999999,2.497363281250045],[-54.876074218750006,2.450390624999969],[-54.72221679687499,2.441650390624972],[-54.69741210937502,2.359814453124997],[-54.66186523437497,2.327539062499994],[-54.61625976562499,2.326757812500006],[-54.59194335937502,2.313769531250031],[-54.55048828125001,2.293066406249991],[-54.51508789062498,2.245458984374963],[-54.43310546875,2.207519531250057],[-54.13007812499998,2.121044921875026],[-53.76777343749998,2.354833984375048],[-52.90346679687502,2.211523437499977],[-52.58300781250003,2.528906249999977],[-52.327880859375,3.18173828125002],[-51.65253906249998,4.061279296874972],[-51.54707031250001,4.31088867187502],[-51.219921874999955,4.093603515624991],[-50.71440429687502,2.134033203125],[-50.458886718749994,1.829589843749972],[-49.957128906250006,1.65986328125004],[-49.898876953124955,1.16298828124998],[-50.29443359374997,0.835742187500003],[-50.755078124999955,0.222558593749966],[-51.28291015625001,-0.085205078125028],[-51.98081054687498,-1.367968749999974],[-52.22924804687497,-1.3625],[-52.664160156250034,-1.551757812500028],[-51.94755859374996,-1.586718749999946],[-50.89492187500002,-0.937597656249963],[-50.690039062500006,-1.761718749999986],[-50.40322265625002,-2.015527343750009],[-49.999218749999955,-1.831835937499974],[-49.71953125000002,-1.926367187499963],[-49.31367187500001,-1.731738281250003],[-49.63652343749996,-2.656933593750026],[-49.45751953125,-2.504589843749983],[-49.21103515624998,-1.916503906249986],[-48.99130859374998,-1.829785156249997],[-48.71000976562496,-1.487695312500023],[-48.46293945312499,-1.613964843749997],[-48.349804687499926,-1.482128906249955],[-48.46806640624996,-1.393847656250003],[-48.44980468749998,-1.145507812499943],[-48.11508789062498,-0.7375],[-47.557324218749955,-0.669921874999957],[-47.418652343749955,-0.765917968749974],[-47.39809570312502,-0.626660156250026],[-45.45859374999995,-1.35625],[-45.32915039062496,-1.71728515625],[-45.07636718749998,-1.466406249999949],[-44.72114257812498,-1.733496093750006],[-44.778515624999955,-1.798828125],[-44.651269531249966,-1.745800781250026],[-44.537792968749955,-2.052734374999943],[-44.75634765624997,-2.265527343749952],[-44.66240234375002,-2.373242187499955],[-44.435449218749966,-2.168066406249991],[-44.38183593749997,-2.365527343749989],[-44.52011718749998,-2.40546875000004],[-44.589013671874994,-2.573437499999983],[-44.72304687500002,-3.204785156249997],[-44.43754882812496,-2.944433593749977],[-44.228613281250006,-2.471289062499949],[-44.105566406250006,-2.493457031250031],[-44.19267578124999,-2.809570312499943],[-43.93291015624999,-2.583496093749986],[-43.45512695312499,-2.502050781250006],[-43.38007812499998,-2.376074218750006],[-42.93671874999998,-2.465039062500011],[-42.24960937499998,-2.7919921875],[-41.876171874999926,-2.746582031249986],[-41.479931640624955,-2.916503906249972],[-40.474560546874926,-2.795605468750026],[-39.96469726562498,-2.861523437499955],[-38.475781249999955,-3.717480468749997],[-38.04882812500003,-4.216406250000034],[-37.626318359375006,-4.592089843750003],[-37.30146484375001,-4.713085937499969],[-37.174658203125006,-4.912402343749974],[-36.590722656249966,-5.097558593749952],[-35.549414062500006,-5.129394531249957],[-35.39257812499994,-5.250878906250009],[-34.833886718749994,-7.024414062500014],[-34.83466796874998,-7.97148437499996],[-35.34086914062499,-9.230664062499983],[-35.76396484374993,-9.702539062500023],[-35.890820312499926,-9.687011718749957],[-35.88544921875001,-9.84765625],[-36.39833984374994,-10.484082031249983],[-36.768310546875,-10.671679687500017],[-37.18281249999998,-11.06845703125002],[-37.35600585937502,-11.403906249999977],[-37.35922851562495,-11.252539062499963],[-37.68872070312503,-12.1],[-38.019238281249955,-12.591308593750028],[-38.401757812499994,-12.966210937500023],[-38.69096679687502,-12.623925781250009],[-38.85175781250001,-12.790136718750034],[-38.76372070312502,-12.9072265625],[-38.835302734375034,-13.147167968750026],[-39.030908203124994,-13.365136718750023],[-39.08935546875,-13.588183593749989],[-38.988623046875006,-13.61503906249996],[-39.04814453124996,-14.043945312500028],[-38.94233398437498,-14.030664062499994],[-39.05957031249997,-14.654785156249957],[-38.88061523437503,-15.864257812499972],[-39.20288085937503,-17.178125],[-39.154003906249926,-17.70390625000003],[-39.650781249999966,-18.252343750000037],[-39.78330078124998,-19.571777343749986],[-40.001367187499994,-19.74199218750003],[-40.39594726562501,-20.56943359375002],[-40.78925781250001,-20.90605468750003],[-40.954541015624926,-21.237890624999963],[-41.04726562499999,-21.505664062499974],[-41.00029296875002,-21.99902343750003],[-41.70551757812498,-22.30966796874999],[-41.980419921874955,-22.580664062499963],[-42.042382812499966,-22.947070312500003],[-42.95830078124996,-22.96708984374999],[-43.154296875,-22.725195312500006],[-43.22416992187502,-22.991210937500014],[-43.898828124999966,-23.10146484375001],[-43.97382812499998,-23.057324218749983],[-43.675976562499955,-23.00947265625001],[-43.86616210937498,-22.910546875000023],[-44.63725585937496,-23.05546875],[-44.67382812499994,-23.206640625000034],[-44.56967773437495,-23.27402343749999],[-45.32539062499998,-23.59970703124999],[-45.464306640624955,-23.802539062500017],[-45.97207031250002,-23.795507812500006],[-46.86728515624998,-24.236328125000014],[-47.989160156249994,-25.03574218749999],[-47.92939453124998,-25.16826171874999],[-48.20273437499998,-25.41650390625003],[-48.18593749999994,-25.309863281249974],[-48.402490234374994,-25.27207031249999],[-48.47612304687499,-25.44296875],[-48.73173828124993,-25.36875],[-48.6921875,-25.49150390625003],[-48.40117187500002,-25.59736328125001],[-48.665771484375,-25.844335937499963],[-48.576318359374994,-25.935449218749966],[-48.61943359374996,-26.17939453125001],[-48.74829101562503,-26.26865234374999],[-48.55415039062498,-27.195996093749997],[-48.62080078124998,-28.075585937499966],[-48.799658203125006,-28.575292968749977],[-49.27128906249999,-28.87119140625005],[-49.745996093749966,-29.363183593749994],[-50.299511718749955,-30.42578125000003],[-50.92138671874997,-31.25839843750002],[-52.039208984374994,-32.11484374999996],[-52.063232421875,-31.830371093750017],[-51.68066406249994,-31.774609375000026],[-51.272167968749955,-31.476953125000037],[-51.16142578124996,-31.11884765625001],[-50.980078125000034,-31.09423828124997],[-50.94082031249994,-30.903710937499966],[-50.68930664062495,-30.70419921874999],[-50.71630859374994,-30.425976562499983],[-50.58193359375002,-30.438867187500037],[-50.56352539062499,-30.25361328125004],[-51.02495117187493,-30.36865234375003],[-51.29804687499998,-30.03486328124997],[-51.15727539062499,-30.364257812500014],[-51.283056640625034,-30.751562499999963],[-51.35908203124998,-30.674511718749983],[-51.506298828124955,-31.104492187500014],[-51.97246093749999,-31.383789062499986],[-52.19355468749998,-31.885546874999974],[-52.12739257812501,-32.1677734375],[-52.652246093749994,-33.137792968750006],[-53.37060546874997,-33.74218750000003],[-53.39755859374995,-33.737304687500014],[-53.46357421875001,-33.70986328125002],[-53.531347656250034,-33.65546875000004],[-53.531347656250034,-33.1708984375],[-53.511865234374966,-33.10869140625003],[-53.482861328124926,-33.068554687500026],[-53.39521484375001,-33.01035156249998],[-53.31010742187499,-32.927050781249974],[-53.21406249999998,-32.82109375],[-53.12558593749998,-32.73671875],[-53.15727539062496,-32.680078125],[-53.601708984374994,-32.40302734374997],[-53.76171875,-32.05683593749997],[-53.920605468749926,-31.95234375],[-54.220556640625034,-31.855175781249997],[-54.58764648437503,-31.48515625000003],[-55.036035156249994,-31.27900390625004],[-55.091162109375034,-31.31396484374997],[-55.173535156249926,-31.279589843749974],[-55.557324218749955,-30.8759765625],[-55.60302734375003,-30.85078125000001],[-55.62714843749998,-30.858105468749997],[-55.650488281250034,-30.89208984375],[-55.66523437500001,-30.92490234375002],[-55.807763671874994,-31.036718749999977],[-55.87368164062502,-31.069628906250017],[-55.95200195312498,-31.08085937499999],[-56.0046875,-31.079199218750006],[-56.01845703125002,-30.991894531249983],[-55.998974609374955,-30.837207031250003],[-56.4072265625,-30.44746093750001],[-56.83271484374998,-30.107226562499974],[-57.120507812499994,-30.144433593749994],[-57.21445312499995,-30.283398437499983],[-57.55229492187496,-30.261230468749986],[-57.60888671875003,-30.187792968750045],[-57.563867187499994,-30.139941406249974],[-57.40522460937501,-30.03388671875004],[-57.22465820312499,-29.782128906249994],[-56.938623046874994,-29.594824218750034],[-55.890527343749994,-28.370019531249994],[-55.68725585937497,-28.38164062499996],[-55.72548828125002,-28.20410156250003],[-55.10151367187501,-27.866796874999963],[-54.82910156250003,-27.55058593750003],[-54.32700195312495,-27.423535156249997],[-53.83818359375002,-27.121093750000014],[-53.668554687500006,-26.288183593749977],[-53.89116210937499,-25.66884765625001],[-54.15458984374999,-25.523046874999963],[-54.44394531249998,-25.625],[-54.615869140624994,-25.576074218750023],[-54.61054687499998,-25.432714843750034],[-54.47314453124997,-25.22021484375],[-54.43623046875001,-25.12128906250001],[-54.281005859375,-24.30605468750001],[-54.31826171874994,-24.128125],[-54.26689453124996,-24.06582031250001],[-54.241796875,-24.047265624999966],[-54.44023437500002,-23.90175781249998],[-54.62548828125,-23.8125],[-54.98266601562494,-23.974511718749966],[-55.081884765625006,-23.997656249999977],[-55.1943359375,-24.017480468750023],[-55.28691406249993,-24.00429687499999],[-55.366308593750034,-23.99101562499996],[-55.41591796875002,-23.95136718749997],[-55.4423828125,-23.86533203125002],[-55.4423828125,-23.792578125000034],[-55.458886718749966,-23.686718750000054],[-55.51845703124994,-23.627246093750017],[-55.53828124999998,-23.580957031249994],[-55.61767578125,-22.67148437499999],[-55.74663085937499,-22.51269531249997],[-55.753271484375006,-22.410156250000043],[-55.84916992187499,-22.307617187500014],[-55.991406249999926,-22.28115234375005],[-56.18984374999994,-22.28115234375005],[-56.246044921874926,-22.26464843749997],[-56.39487304687498,-22.092675781250023],[-56.44780273437502,-22.07617187500003],[-56.77519531249999,-22.261328125],[-57.955908203125034,-22.109179687500003],[-57.94267578124999,-21.79833984375],[-57.830224609374994,-20.99794921875001],[-57.91513671874998,-20.690332031249966],[-57.97905273437493,-20.65732421874999],[-58.00224609374996,-20.465429687499977],[-58.02539062499997,-20.41582031249999],[-58.05844726562495,-20.38613281249998],[-58.091503906249926,-20.33320312500004],[-58.124609375000034,-20.293457031250014],[-58.13779296874995,-20.237304687500043],[-58.15976562499998,-20.164648437499977],[-58.09375,-20.15107421874997],[-58.021142578124994,-20.05517578124997],[-57.96015625000001,-20.04072265625004],[-57.887597656249966,-20.020410156249994],[-57.860742187499994,-19.97958984375002],[-58.029931640624994,-19.83271484375004],[-58.131494140624994,-19.74453125],[-57.71679687499997,-19.044042968750034],[-57.73085937499999,-18.91718750000004],[-57.783105468749994,-18.91425781249997],[-57.725,-18.73320312500003],[-57.57402343749993,-18.279296875000014],[-57.49565429687496,-18.21464843749999],[-57.58647460937499,-18.122265625],[-57.66166992187493,-17.94736328124999],[-57.78017578125002,-17.67177734374998],[-57.78886718750002,-17.573046875000017],[-57.83247070312501,-17.512109375000037],[-57.90502929687497,-17.53232421874999],[-57.990917968749955,-17.512890625000026],[-58.20556640625,-17.363085937499974],[-58.347753906250006,-17.282128906249994],[-58.39599609374997,-17.234277343750023],[-58.417382812499994,-17.08056640624997],[-58.459814453125006,-16.910742187500006],[-58.478125,-16.70068359375003],[-58.470605468749994,-16.650195312500045],[-58.35039062500002,-16.49082031249999],[-58.34560546875002,-16.284375],[-58.375390624999966,-16.283593749999966],[-58.423681640625034,-16.30791015625003],[-58.49658203124994,-16.32666015625003],[-58.537939453125034,-16.32822265624999],[-60.17558593749996,-16.26933593749999],[-60.187207031249955,-16.132128906250017],[-60.206640625,-15.90195312500002],[-60.242333984374994,-15.479589843750034],[-60.38046874999998,-15.318261718750023],[-60.53046874999998,-15.143164062499977],[-60.58320312499998,-15.098339843749983],[-60.273339843749994,-15.088769531249994],[-60.372705078124994,-14.41875],[-60.506591796875,-13.78984375],[-61.077001953125034,-13.489746093750014],[-61.129150390625,-13.498535156250028],[-61.41606445312502,-13.526562499999969],[-61.511572265625006,-13.541210937500011],[-61.789941406249966,-13.525585937500026],[-61.87412109374998,-13.470410156249983],[-61.944726562499966,-13.40625],[-62.09477539062499,-13.241992187499989],[-62.118017578125006,-13.15976562500002],[-62.765478515625034,-12.99726562500004],[-63.01518554687502,-12.80556640624998],[-63.067480468750006,-12.669140624999983],[-63.34667968749994,-12.68007812499999],[-63.68857421874998,-12.478027343749957],[-64.42050781249995,-12.439746093749974],[-64.783447265625,-12.059375],[-65.18574218749998,-11.749511718749957],[-65.389892578125,-11.246289062500011],[-65.33403320312499,-10.892773437500026],[-65.44711914062503,-10.507421875000034],[-65.4369140625,-10.449023437499946],[-65.39545898437498,-10.392285156250026],[-65.31308593749998,-10.253027343749991],[-65.29858398437497,-10.146777343750017],[-65.39614257812494,-9.712402343749986],[-66.57534179687502,-9.899902343749986],[-67.41694335937495,-10.389843749999969],[-67.72177734374998,-10.683105468749943],[-67.83500976562496,-10.662792968749983],[-67.99169921875,-10.674414062499949],[-68.07167968749994,-10.703125],[-68.39799804687499,-11.01875],[-68.678369140625,-11.11279296875],[-68.84833984374998,-11.01113281249998],[-69.228515625,-10.955664062499963],[-69.46254882812497,-10.948144531250023],[-69.57861328125,-10.951757812499963],[-69.67402343749998,-10.9541015625],[-69.83979492187501,-10.93339843749996],[-69.96035156249997,-10.92988281250004],[-70.06630859374997,-10.982421875],[-70.22006835937503,-11.04765625],[-70.29038085937498,-11.064257812499974],[-70.34199218750001,-11.066699218750017],[-70.39228515624995,-11.058593749999972],[-70.45087890624998,-11.024804687500009],[-70.53325195312496,-10.946875],[-70.59653320312498,-10.976855468750017],[-70.642333984375,-11.010253906249986],[-70.59916992187499,-9.620507812500009],[-70.54111328124998,-9.4375],[-70.60791015625,-9.463671875000031],[-70.63691406249995,-9.478222656249969],[-71.041748046875,-9.81875],[-71.11528320312499,-9.852441406250009],[-71.33940429687499,-9.988574218750031],[-72.18159179687495,-10.003710937500003],[-72.37905273437497,-9.51015625],[-73.20942382812493,-9.411425781249946],[-73.08984375,-9.26572265625002],[-72.970361328125,-9.120117187500028],[-72.97402343750002,-8.9931640625],[-73.07050781249995,-8.8828125],[-73.203125,-8.719335937499991],[-73.30244140624995,-8.654003906250011],[-73.36040039062496,-8.479296875000031],[-73.39814453125001,-8.458984374999986],[-73.54912109374993,-8.34580078125002],[-73.73203125,-7.875390625],[-73.72041015624993,-7.782519531250017],[-73.76689453124999,-7.753515624999963],[-73.82207031249996,-7.738964843750026],[-73.89462890624998,-7.654785156250014],[-73.946875,-7.611230468750023],[-73.98173828124996,-7.58505859375002],[-74.00205078125003,-7.556054687499966],[-73.98173828124996,-7.535742187500006],[-73.95849609374994,-7.506640625000031],[-73.96430664062498,-7.378906250000028],[-73.74946289062498,-7.335351562500037],[-73.72041015624993,-7.309277343749969],[-73.758203125,-7.172753906249952],[-73.79301757812499,-7.135058593750003],[-73.75810546874999,-6.90576171875],[-73.137353515625,-6.4658203125],[-73.23554687500001,-6.098437500000017],[-73.209375,-6.028710937500023],[-73.16289062499996,-5.933398437499974],[-72.97988281249997,-5.634863281249991],[-72.88706054687498,-5.122753906250026],[-72.83193359374994,-5.09375],[-72.69873046874997,-5.067187499999989],[-72.60834960937495,-5.009570312499974],[-72.46899414062497,-4.901269531250023],[-72.35283203124993,-4.786035156249994],[-72.25678710937501,-4.74892578124998],[-71.8447265625,-4.504394531249986],[-70.97368164062499,-4.350488281249994],[-70.86601562499999,-4.229589843749963],[-70.79951171874995,-4.173339843749957],[-70.72158203124997,-4.15888671875004],[-70.53066406249997,-4.167578125000034],[-70.40463867187498,-4.150097656250026],[-70.34365234375,-4.193652343750017],[-70.31689453124994,-4.246972656250037],[-70.23916015625002,-4.30117187499998],[-70.12880859375,-4.286621093749943],[-70.05332031249998,-4.333105468750006],[-70.00395507812496,-4.327246093749963],[-69.97202148437503,-4.30117187499998],[-69.96591796875003,-4.2359375],[-69.94819335937498,-4.200585937500009],[-69.66904296875003,-2.667675781249997],[-69.40024414062498,-1.194921874999977],[-69.63398437500001,-0.50927734375],[-70.07050781249993,-0.13886718750004],[-70.05390624999993,0.578613281250028],[-69.47211914062498,0.72993164062504],[-69.15332031249994,0.65878906250002],[-69.31181640624999,1.050488281249969],[-69.85214843750003,1.05952148437504],[-69.84858398437493,1.708740234375043],[-68.17656249999999,1.719824218749991],[-68.25595703125,1.845507812500017],[-68.19379882812495,1.987011718749983],[-67.93623046874998,1.748486328124969],[-67.40043945312499,2.116699218750028],[-67.11923828124998,1.703613281249986],[-67.082275390625,1.185400390625006],[-66.87602539062499,1.223046875000037],[-66.34711914062498,0.7671875],[-66.06005859375003,0.78535156250004],[-65.68144531249999,0.983447265624989],[-65.52299804687493,0.843408203124966],[-65.55605468750002,0.687988281250014],[-65.47338867187497,0.691259765624977],[-65.10375976562497,1.108105468749983],[-64.20502929687493,1.52949218750004],[-64.00849609374995,1.931591796874969],[-63.43251953124994,2.155566406250045],[-63.389257812500006,2.411914062500045],[-64.04658203124998,2.502392578124997],[-64.22109375000002,3.587402343749972],[-64.66899414062496,4.01181640625002],[-64.788671875,4.276025390625023],[-64.57636718750001,4.139892578125],[-64.19248046874995,4.126855468750009],[-64.02148437500003,3.929101562500051],[-63.33867187500002,3.943896484375045],[-62.85698242187502,3.593457031249969],[-62.71210937499998,4.01791992187502],[-62.41064453124994,4.156738281249972],[-62.153125,4.098388671874986],[-61.82084960937496,4.197021484375],[-61.28007812500002,4.516894531249974],[-61.00283203125002,4.535253906249991],[-60.603857421875006,4.94936523437498],[-60.671972656250034,5.164355468749989],[-60.71196289062499,5.191552734375023],[-60.742138671874926,5.202050781250037],[-60.6513671875,5.221142578125011],[-60.45952148437499,5.188085937500034],[-60.40878906249998,5.21015625],[-60.33520507812497,5.199316406250006],[-60.241650390624926,5.257958984374966],[-60.14204101562498,5.238818359374974],[-59.990673828124955,5.082861328124991],[-60.14863281249998,4.533251953125031],[-59.69970703125,4.353515625]]]]},"properties":{"name":"Brazil","childNum":17}},{"geometry":{"type":"Polygon","coordinates":[[[-59.493310546874994,13.081982421874997],[-59.611328125,13.102099609374989],[-59.6466796875,13.303125],[-59.427636718749994,13.152783203124997],[-59.493310546874994,13.081982421874997]]]},"properties":{"name":"Barbados","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[115.02675781250005,4.899707031249989],[115.1400390625,4.899755859374991],[115.290625,4.352587890624989],[115.10703125000006,4.390429687499974],[115.02675781250005,4.899707031249989]]],[[[115.02675781250005,4.899707031249989],[114.74667968750006,4.718066406250017],[114.84023437500005,4.393212890625009],[114.65410156250007,4.037646484375045],[114.0638671875,4.592675781249966],[114.42441406250006,4.660400390625],[114.99541015625002,5.022363281250023],[115.02675781250005,4.899707031249989]]]]},"properties":{"name":"Brunei","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[91.63193359375003,27.759960937499997],[91.5947265625,27.557666015624996],[91.74306640625002,27.442529296874994],[91.85126953125001,27.438623046874994],[91.95097656249999,27.458300781249996],[91.99082031250003,27.4501953125],[92.044921875,27.364697265624997],[92.08339843750002,27.290625],[92.03115234375002,27.214306640624997],[92.00253906250003,27.147363281249994],[91.99228515625003,27.099902343749996],[91.99863281250003,27.079296875],[92.03085937500003,27.040820312499996],[92.06816406249999,26.9751953125],[92.07343750000001,26.91484375],[92.04970703125002,26.874853515625],[91.99833984374999,26.85498046875],[91.84208984374999,26.852978515624997],[91.67158203125001,26.802001953125],[91.517578125,26.807324218749997],[91.45585937499999,26.866894531249997],[91.4267578125,26.867089843749994],[91.28652343750002,26.789941406249994],[90.73964843750002,26.771679687499997],[90.34589843750001,26.890332031249997],[90.2060546875,26.847509765625],[90.12294921875002,26.754589843749997],[89.94316406249999,26.723925781249996],[89.76386718750001,26.7015625],[89.60996093750003,26.719433593749997],[89.58613281250001,26.778955078124994],[89.33212890625003,26.8486328125],[89.14824218749999,26.816162109375],[89.04091796875002,26.865039062499996],[88.85761718750001,26.961474609374996],[88.73876953125,27.175585937499996],[88.76035156250003,27.218115234375],[88.88164062499999,27.2974609375],[88.89140624999999,27.316064453124994],[88.94755859374999,27.464013671874994],[89.48066406250001,28.059960937499994],[89.53691406249999,28.107421875],[89.65273437500002,28.15830078125],[89.74980468749999,28.188183593749997],[89.81689453125,28.256298828124997],[89.89785156250002,28.294140625],[89.98105468750003,28.311181640624994],[90.34824218750003,28.243945312499996],[90.36298828125001,28.216503906249997],[90.33310546875003,28.093994140625],[90.35273437500001,28.080224609374994],[90.47734374999999,28.070849609374996],[90.63007812500001,28.078564453124997],[90.71572265625002,28.071728515624997],[91.02080078124999,27.970068359375],[91.07773437500003,27.974462890625],[91.22587890624999,28.071240234374997],[91.27304687500003,28.078369140625],[91.30683593750001,28.064013671874996],[91.36757812500002,28.021630859374994],[91.64189453124999,27.923242187499994],[91.63193359375003,27.759960937499997]]]},"properties":{"name":"Bhutan","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[25.2587890625,-17.793554687500006],[25.242285156250006,-17.969042968750003],[25.939355468750023,-18.93867187500001],[26.168066406250006,-19.53828125000001],[27.17822265625,-20.10097656250001],[27.28076171875,-20.47871093750001],[27.679296875,-20.503027343750006],[27.66943359375,-21.064257812500003],[28.014062500000023,-21.55419921875],[29.02558593750001,-21.796875],[29.042382812500023,-22.018359375],[29.237207031250023,-22.07949218750001],[29.315234375000017,-22.15771484375],[29.36484375,-22.193945312500006],[29.1298828125,-22.21328125],[29.013476562500017,-22.278417968750006],[28.94580078125,-22.395117187500006],[28.83984375,-22.480859375],[28.21015625000001,-22.693652343750003],[27.812597656250006,-23.108007812500006],[27.7685546875,-23.14892578125],[27.085546875,-23.577929687500003],[26.835058593750006,-24.240820312500006],[26.617773437500006,-24.3955078125],[26.451757812500006,-24.58271484375001],[26.39716796875001,-24.613574218750003],[26.130859375,-24.671484375],[26.031835937500006,-24.702441406250003],[25.912109375,-24.74746093750001],[25.518164062500006,-25.66279296875001],[25.21337890625,-25.75625],[24.33056640625,-25.74287109375001],[24.19296875,-25.632910156250006],[23.969531250000017,-25.626074218750006],[23.89375,-25.600878906250003],[23.389257812500006,-25.29140625],[23.148730468750017,-25.288671875],[22.878808593750023,-25.45791015625001],[22.59765625,-26.13271484375001],[22.548632812500017,-26.17841796875001],[22.47089843750001,-26.219042968750003],[22.217578125000017,-26.38886718750001],[22.090917968750006,-26.580175781250006],[22.01093750000001,-26.635839843750006],[21.78828125000001,-26.710058593750006],[21.738085937500017,-26.80683593750001],[21.694726562500023,-26.840917968750006],[20.73984375,-26.84882812500001],[20.641406250000017,-26.7421875],[20.79316406250001,-25.915625],[20.4306640625,-25.147070312500006],[19.98046875,-24.77675781250001],[19.977343750000017,-22.00019531250001],[20.9794921875,-21.9619140625],[20.97412109375,-18.31884765625],[23.219335937500006,-17.99970703125001],[23.599707031250006,-18.4599609375],[24.243945312500017,-18.0234375],[24.530566406250017,-18.052734375],[24.909082031250023,-17.821386718750006],[25.2587890625,-17.793554687500006]]]},"properties":{"name":"Botswana","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[22.86005859375001,10.919677734375],[23.646289062500017,9.822900390624994],[23.62265625,9.340625],[23.46826171875,9.11474609375],[23.53730468750001,8.815820312499994],[24.147363281250023,8.665625],[24.291406250000023,8.29140625],[24.853320312500017,8.137548828124991],[25.20039062500001,7.807910156249989],[25.18134765625001,7.557226562499991],[25.27890625,7.427490234375],[26.36181640625,6.635302734374989],[26.30859375,6.455322265625],[26.514257812500006,6.069238281249994],[27.143945312500023,5.722949218749989],[27.4033203125,5.109179687499989],[27.071875,5.199755859374989],[26.822070312500017,5.062402343749994],[25.52509765625001,5.31210937499999],[25.065234375000017,4.967431640624994],[24.31982421875,4.994140625],[23.41718750000001,4.663134765624989],[22.864550781250017,4.723876953125],[22.422167968750017,4.134960937499997],[20.55810546875,4.462695312499989],[20.226367187500017,4.829638671874989],[19.806542968750023,5.089306640624997],[19.5009765625,5.127490234374989],[19.06855468750001,4.891406249999989],[18.594140625000023,4.346240234374989],[18.6103515625,3.478417968749994],[18.474414062500017,3.622998046874997],[18.160937500000017,3.499804687499989],[17.491601562500023,3.687304687499989],[16.610742187500023,3.50537109375],[16.468554687500017,2.831738281249997],[16.183398437500017,2.270068359374989],[16.0634765625,2.90859375],[15.128710937500017,3.826904296875],[15.063574218750006,4.284863281249997],[14.73125,4.602392578124991],[14.56298828125,5.279931640624994],[14.616894531250011,5.865136718749994],[14.43115234375,6.038720703124994],[14.7392578125,6.27978515625],[15.206738281250011,7.206152343749991],[15.480078125,7.523779296874991],[15.957617187500006,7.507568359375],[16.37890625,7.683544921874997],[16.545312500000023,7.865478515625],[16.784765625,7.550976562499997],[17.6494140625,7.98359375],[18.56416015625001,8.0458984375],[19.108691406250017,8.656152343749994],[18.886035156250017,8.836035156249991],[18.95625,8.938867187499994],[20.342089843750017,9.127099609374994],[20.773242187500017,9.405664062499994],[21.682714843750006,10.289843749999989],[21.771484375,10.642822265625],[22.49384765625001,10.996240234374994],[22.86005859375001,10.919677734375]]]},"properties":{"name":"Central African Rep.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-59.78759765624997,43.939599609374994],[-60.11748046874996,43.95336914062506],[-59.727148437500006,44.002832031249994],[-59.78759765624997,43.939599609374994]]],[[[-66.7625,44.68178710937502],[-66.8970703125,44.62890625],[-66.80214843749994,44.80537109374998],[-66.7625,44.68178710937502]]],[[[-60.961572265624966,45.48994140625001],[-61.081738281249926,45.55781249999998],[-60.91245117187498,45.56728515625005],[-60.961572265624966,45.48994140625001]]],[[[-73.69531249999997,45.58549804687502],[-73.85771484375002,45.573583984375006],[-73.57236328124998,45.69448242187502],[-73.69531249999997,45.58549804687502]]],[[[-73.56650390625003,45.469091796875034],[-73.960546875,45.44140624999997],[-73.68745117187498,45.561425781249994],[-73.47607421874997,45.704736328124994],[-73.56650390625003,45.469091796875034]]],[[[-61.10517578124998,45.94472656250002],[-60.86523437499997,45.983496093750006],[-61.05903320312501,45.70336914062497],[-60.73789062499995,45.75141601562498],[-60.46059570312494,45.96870117187501],[-60.733300781249994,45.956591796875045],[-60.297949218750034,46.31123046874998],[-60.22646484374994,46.19555664062506],[-59.86503906249993,46.159521484375006],[-59.8421875,45.941552734374994],[-60.67294921874995,45.59082031250006],[-61.28369140624994,45.573876953124966],[-61.44980468749995,45.71621093750002],[-61.40864257812501,46.17036132812498],[-60.87016601562499,46.796777343749966],[-60.40820312500003,47.00351562499998],[-60.332910156249966,46.737011718749955],[-60.49453125000002,46.270263671875],[-61.10517578124998,45.94472656250002]]],[[[-63.811279296875,46.46870117187501],[-63.68144531249993,46.561914062499994],[-63.12939453125,46.422216796875034],[-62.02373046874999,46.42158203125001],[-62.52607421875001,46.20288085937503],[-62.531347656250034,45.977294921875],[-63.02207031249998,46.06660156249998],[-62.89453125000003,46.12358398437496],[-63.056347656249955,46.22392578124996],[-62.97846679687498,46.31635742187498],[-63.21347656249998,46.15986328124998],[-63.641015624999966,46.23046874999997],[-63.758642578125034,46.397607421874994],[-64.11083984375003,46.425439453124994],[-64.13603515624999,46.59970703125006],[-64.388037109375,46.640869140625],[-63.99355468750002,47.06157226562502],[-64.08789062499997,46.77543945312499],[-63.811279296875,46.46870117187501]]],[[[-61.91411132812496,47.284521484375034],[-61.77255859374998,47.25981445312499],[-62.00830078124994,47.23427734375002],[-61.924707031249966,47.425146484375006],[-61.3955078125,47.63764648437504],[-61.91411132812496,47.284521484375034]]],[[[-54.227148437500034,47.44135742187501],[-54.32597656250002,47.408105468749994],[-54.12817382812494,47.646826171875034],[-54.227148437500034,47.44135742187501]]],[[[-74.70888671874997,45.0038574218751],[-73.55810546875,45.425097656250045],[-73.1595703125,46.01005859375002],[-72.10927734374997,46.55122070312504],[-71.26118164062495,46.75625],[-70.51948242187501,47.032519531250045],[-69.47104492187503,47.96728515625006],[-68.23818359374994,48.62641601562504],[-66.17817382812493,49.21313476562503],[-64.83632812499994,49.191748046875006],[-64.2162109375,48.873632812500034],[-64.51372070312493,48.84111328124999],[-64.24609374999994,48.69111328124998],[-64.34882812500001,48.423193359375034],[-65.259423828125,48.02124023437503],[-65.92670898437495,48.188867187499994],[-66.70439453125002,48.0224609375],[-66.35961914062494,48.06064453125006],[-65.84941406250002,47.91103515625005],[-65.60722656249996,47.67001953125006],[-65.00166015624995,47.84682617187502],[-64.70322265625,47.72485351562503],[-64.91220703125003,47.36865234375003],[-65.31889648437502,47.101220703124994],[-64.831396484375,47.06079101562503],[-64.88251953124993,46.822851562500034],[-64.54150390625,46.240332031250034],[-63.91591796875002,46.165820312500045],[-63.831933593749966,46.107177734375],[-64.05639648437503,46.021337890625006],[-63.70288085937494,45.858007812500034],[-62.70068359374997,45.740576171875006],[-62.750097656250006,45.64824218750002],[-62.483056640624966,45.62182617187506],[-61.955517578124955,45.86816406249997],[-61.776513671874994,45.655615234375006],[-61.49228515624998,45.68701171875],[-61.350488281249966,45.57368164062501],[-61.28198242187494,45.441064453124994],[-61.46098632812502,45.36669921875003],[-61.03154296875002,45.29174804687506],[-63.306298828124994,44.64257812500003],[-63.60400390624997,44.68320312500006],[-63.60976562499999,44.47998046875006],[-63.999707031249926,44.64492187499999],[-64.10087890624993,44.487451171874966],[-64.1669921875,44.58666992187503],[-64.28608398437493,44.55034179687499],[-64.27568359374993,44.33408203124998],[-65.48168945312497,43.51806640625],[-65.73813476562498,43.56074218750001],[-65.88691406250001,43.79521484374999],[-66.125732421875,43.813818359375034],[-66.19306640624995,44.143847656250045],[-65.86801757812498,44.56879882812501],[-66.14638671875002,44.43593750000005],[-66.090625,44.50493164062499],[-64.44814453125,45.33745117187502],[-64.13549804687497,45.023046875],[-64.09316406249997,45.21708984375002],[-63.368017578125034,45.36479492187502],[-64.87314453124998,45.35458984375006],[-64.31464843749998,45.83569335937503],[-64.48222656250002,45.80634765624998],[-64.63271484375002,45.94663085937506],[-64.77851562499998,45.63842773437497],[-65.88447265624995,45.22290039062506],[-66.10976562500002,45.316601562499955],[-66.02656249999995,45.417578125],[-66.43984374999994,45.09589843750001],[-66.87246093749997,45.067285156249966],[-67.12485351562498,45.16943359375],[-67.366943359375,45.17377929687498],[-67.43266601562496,45.603125],[-67.80224609374994,45.7275390625],[-67.806787109375,47.08281249999999],[-68.23549804687502,47.34594726562503],[-68.93720703124998,47.21123046875002],[-69.0501953125,47.426611328125034],[-69.24287109374998,47.46298828124998],[-70.00771484375002,46.70893554687501],[-70.296240234375,45.90610351562506],[-70.86503906249999,45.27070312500001],[-71.327294921875,45.29008789062496],[-71.51752929687495,45.00756835937497],[-74.663232421875,45.00390625000003],[-74.70888671874997,45.0038574218751]]],[[[-126.09208984374995,49.35400390625003],[-126.06401367187499,49.26362304687501],[-126.22963867187498,49.29565429687506],[-126.09208984374995,49.35400390625003]]],[[[-54.55439453125001,49.5888671875],[-54.786523437499966,49.496142578125045],[-54.86357421875002,49.576074218749966],[-54.55439453125001,49.5888671875]]],[[[-54.093701171874955,49.74443359374999],[-53.98066406250001,49.66196289062498],[-54.28613281249997,49.595361328124994],[-54.27763671875002,49.71147460937502],[-54.093701171874955,49.74443359374999]]],[[[-126.64121093749999,49.605810546875006],[-126.93857421874999,49.71845703125004],[-126.92583007812497,49.837744140625006],[-126.73813476562502,49.84365234375005],[-126.64121093749999,49.605810546875006]]],[[[-61.801123046875034,49.093896484374966],[-63.04150390624994,49.224951171875034],[-64.485205078125,49.88696289062497],[-64.13144531249995,49.94165039062503],[-62.858544921874966,49.70546875000005],[-61.817138671875,49.28354492187498],[-61.69614257812495,49.139013671875006],[-61.801123046875034,49.093896484374966]]],[[[-125.18413085937497,50.09711914062498],[-125.301171875,50.4140625],[-125.07402343750002,50.22065429687501],[-125.18413085937497,50.09711914062498]]],[[[-127.19731445312495,50.640380859375],[-125.48208007812501,50.316796874999966],[-124.83061523437499,49.53007812500002],[-123.99580078125,49.22402343750002],[-123.49702148437498,48.58208007812499],[-123.38989257812501,48.67021484374999],[-123.31064453125003,48.41103515625002],[-123.57314453124995,48.32280273437499],[-123.91694335937501,48.386572265625034],[-125.12070312500002,48.76079101562496],[-124.84965820312496,49.02827148437501],[-124.81264648437497,49.212646484375],[-124.92734374999998,49.01420898437499],[-125.489453125,48.933789062499955],[-125.82851562499998,49.09184570312499],[-125.64423828125001,49.18579101562506],[-125.95166015625001,49.24804687500003],[-125.93540039062499,49.401464843750006],[-126.51914062499999,49.396777343750045],[-126.54189453125001,49.590478515624966],[-126.13408203124997,49.672314453124955],[-126.52524414062499,49.71958007812498],[-126.90332031250001,49.94414062499999],[-127.114306640625,49.879736328125034],[-127.24980468749999,50.13798828124996],[-127.34941406249995,50.05195312500001],[-127.46713867187503,50.163427734375006],[-127.86391601562495,50.12773437500002],[-127.90585937499998,50.44521484375002],[-127.48652343749998,50.404638671875034],[-127.46591796874996,50.58310546875006],[-128.05834960937494,50.498486328124955],[-128.34604492187503,50.744238281250006],[-127.91806640624998,50.86054687500001],[-127.19731445312495,50.640380859375]]],[[[-55.45874023437494,51.53652343750005],[-55.58339843749994,51.38857421875002],[-56.031103515625034,51.328369140625],[-55.8,51.033300781250034],[-56.732324218749966,50.007714843749994],[-56.822167968749966,49.613476562499955],[-56.179394531249955,50.114990234375],[-56.161279296874994,49.94013671874998],[-55.50292968749997,49.98315429687503],[-56.14018554687496,49.61914062500006],[-55.869824218749955,49.67016601562506],[-56.08730468750002,49.45195312499999],[-55.375927734374955,49.48974609374997],[-55.34384765624998,49.37290039062506],[-55.22954101562496,49.508154296875006],[-55.35317382812502,49.07944335937506],[-54.50219726562503,49.52734375],[-54.44824218749997,49.329443359375006],[-53.957714843749955,49.44184570312498],[-53.61943359374996,49.321630859375006],[-53.57343750000001,49.141210937500034],[-54.16127929687494,48.787695312500034],[-53.852880859375006,48.81132812499996],[-53.966015624999955,48.70668945312505],[-53.70634765624999,48.65551757812503],[-54.11445312499998,48.393603515625045],[-53.027587890625,48.634716796874955],[-53.1357421875,48.40185546875003],[-53.60976562500002,48.20771484375001],[-53.56943359374998,48.088085937499955],[-53.869580078124926,48.019677734374966],[-53.63823242187496,48.01464843750003],[-53.863671874999966,47.787011718749994],[-53.67236328125,47.64824218749999],[-53.28271484375,47.99785156249996],[-52.86601562499993,48.11298828124998],[-53.16982421875002,47.51210937500005],[-52.945019531249955,47.55283203124998],[-52.782421874999955,47.769433593749966],[-52.653662109375034,47.549414062500006],[-53.11484375,46.65581054687502],[-53.32304687499996,46.71835937499998],[-53.589794921874955,46.638867187499955],[-53.59736328124998,47.14599609374997],[-54.00957031249993,46.839599609375],[-54.173730468749994,46.88037109375003],[-53.84951171875002,47.440332031249994],[-53.98901367187503,47.756201171875034],[-54.191845703124955,47.85981445312501],[-54.488134765625006,47.40385742187502],[-54.47392578124996,47.54707031249998],[-54.856640624999955,47.385009765625],[-55.31572265624993,46.905712890624955],[-55.78852539062498,46.86723632812502],[-55.91923828124996,47.01689453124996],[-55.49150390624996,47.16064453125003],[-54.78461914062501,47.664746093749955],[-55.366308593750034,47.66108398437501],[-55.57612304687498,47.46523437499999],[-56.12724609374999,47.50283203125002],[-55.867089843749994,47.592333984375045],[-55.85791015625,47.81918945312498],[-56.774121093749955,47.56499023437499],[-58.33686523437501,47.73085937500002],[-59.11694335937494,47.57070312499999],[-59.32065429687498,47.736914062500006],[-59.272070312500034,47.99555664062504],[-58.330224609374994,48.52211914062502],[-59.16767578124998,48.558496093749966],[-58.84179687500003,48.74643554687498],[-58.906445312499955,48.65019531249999],[-58.716455078124994,48.59804687500002],[-58.403662109375034,49.08432617187498],[-57.99052734374996,48.987939453124966],[-58.09892578124993,49.07744140624999],[-57.98007812499998,49.229638671874994],[-58.19091796875003,49.25874023437498],[-58.21337890625,49.38666992187501],[-58.01582031249998,49.54248046874997],[-57.79130859374999,49.48999023437503],[-57.92617187499999,49.700830078124994],[-57.4326171875,50.50581054687504],[-57.179589843749966,50.614843750000034],[-57.29799804687502,50.69873046874997],[-57.03593750000002,51.01083984374998],[-56.68242187500002,51.332763671875],[-56.025585937499955,51.56835937500006],[-55.6904296875,51.471337890624994],[-55.666406249999966,51.57890624999999],[-55.45874023437494,51.53652343750005]]],[[[-127.92465820312498,51.47387695312497],[-128.14877929687498,51.62670898437503],[-128.03173828125006,51.708398437499966],[-127.92465820312498,51.47387695312497]]],[[[-79.38427734374997,51.951953125000045],[-79.64375,52.01005859374996],[-79.27128906249996,52.086816406249966],[-79.38427734374997,51.951953125000045]]],[[[-128.36875,52.40087890625],[-128.43979492187503,52.696386718750006],[-128.24726562499998,52.784375],[-128.36875,52.40087890625]]],[[[-80.73168945312494,52.74726562499998],[-82.03925781249998,53.04990234374998],[-81.84731445312494,53.18627929687497],[-81.135595703125,53.20581054687503],[-80.73168945312494,52.74726562499998]]],[[[-131.7537109375,53.195556640625],[-131.63466796874997,52.92216796874999],[-131.97177734374998,52.87983398437498],[-131.45522460937502,52.70170898437502],[-131.59057617187494,52.578222656250006],[-131.25971679687495,52.415917968749966],[-131.31992187499998,52.30307617187498],[-131.142626953125,52.291113281250034],[-131.221533203125,52.15361328124999],[-132.16508789062493,52.783300781250034],[-132.14375,52.99931640624999],[-132.54677734374997,53.1375],[-131.7537109375,53.195556640625]]],[[[-128.55244140624998,52.93974609375002],[-128.50991210937502,52.51860351562502],[-128.678955078125,52.289648437500006],[-128.74633789062494,52.763378906249955],[-128.89980468749997,52.67382812500003],[-129.175927734375,52.964941406250006],[-129.033251953125,53.27993164062505],[-128.63266601562498,53.1125],[-128.55244140624998,52.93974609375002]]],[[[-129.167724609375,53.11787109374998],[-129.32387695312502,53.142138671875045],[-129.23818359374997,53.33007812500006],[-129.167724609375,53.11787109374998]]],[[[-129.84858398437498,53.167919921874955],[-130.51757812500003,53.54423828124999],[-130.45200195312498,53.63115234375002],[-129.94472656250002,53.436376953125034],[-129.75483398437498,53.244775390624994],[-129.84858398437498,53.167919921874955]]],[[[-130.236279296875,53.95854492187502],[-130.38422851562504,53.84394531250001],[-130.703173828125,53.892236328124994],[-130.44799804687497,54.08901367187502],[-130.236279296875,53.95854492187502]]],[[[-132.65551757812503,54.12749023437496],[-132.30336914062497,54.098876953125],[-132.16611328124998,53.95522460937505],[-132.53466796875,53.651708984375034],[-132.18696289062504,53.68481445312503],[-132.134423828125,54.03427734374998],[-131.66762695312502,54.14135742187503],[-131.957421875,53.308691406250034],[-132.34726562500003,53.18920898437503],[-132.747509765625,53.310498046874955],[-132.425,53.33696289062502],[-132.84501953125,53.507714843749994],[-133.07949218749997,53.837011718750034],[-133.04838867187493,54.15893554687497],[-132.65551757812503,54.12749023437496]]],[[[-130.92714843749997,54.47905273437499],[-130.90683593750003,54.63178710937504],[-130.75800781249998,54.61376953125],[-130.92714843749997,54.47905273437499]]],[[[-130.57534179687497,54.769677734374966],[-130.2140625,55.02587890625003],[-130.34941406249996,54.814550781250034],[-130.57534179687497,54.769677734374966]]],[[[-79.97758789062499,56.20703125000006],[-80.057470703125,56.28735351562497],[-79.57973632812502,56.466357421875045],[-79.97758789062499,56.20703125000006]]],[[[-78.93559570312496,56.26606445312498],[-79.17548828124998,55.88505859374999],[-79.18212890625,56.21215820312503],[-79.4951171875,55.87475585937503],[-79.76474609374995,55.80678710937505],[-79.54472656249999,56.12836914062501],[-79.9875,55.89213867187502],[-79.45888671875,56.53974609374998],[-79.53632812499995,56.180078124999966],[-79.27241210937493,56.600439453125006],[-78.93559570312496,56.26606445312498]]],[[[-61.743603515624955,57.55458984375005],[-61.6375,57.41606445312499],[-62.01123046875003,57.54848632812505],[-61.743603515624955,57.55458984375005]]],[[[-79.71650390624998,57.515527343749994],[-79.80844726562498,57.44243164062502],[-79.74257812499997,57.60795898437499],[-79.71650390624998,57.515527343749994]]],[[[-69.16005859375,59.04023437500001],[-69.35283203125002,58.96074218749999],[-69.30322265625003,59.144873046875006],[-69.16005859375,59.04023437500001]]],[[[-64.40703125,60.367089843749966],[-64.44194335937496,60.2978515625],[-64.73793945312497,60.37563476562502],[-64.83642578124997,60.50102539062499],[-64.40703125,60.367089843749966]]],[[[-68.23378906250002,60.24091796875001],[-68.36787109374998,60.314746093750045],[-68.08759765624998,60.58784179687501],[-67.81884765624994,60.449511718750074],[-68.23378906250002,60.24091796875001]]],[[[-78.531640625,60.72856445312499],[-78.66889648437498,60.716894531250006],[-78.24169921875,60.818652343750045],[-78.531640625,60.72856445312499]]],[[[-64.83261718749998,61.366064453125006],[-65.43212890625,61.649511718750034],[-64.78964843750003,61.662207031250034],[-64.83261718749998,61.366064453125006]]],[[[-65.03056640624999,61.879052734374966],[-64.89658203124995,61.73330078125005],[-65.23535156249997,61.89770507812506],[-65.03056640624999,61.879052734374966]]],[[[-79.54531250000002,62.41171875000006],[-79.28647460937495,62.247656250000034],[-79.32392578124995,62.02607421875001],[-79.81611328124995,61.59462890625002],[-80.26518554687496,61.818212890625006],[-80.26005859374996,62.10903320312502],[-79.9267578125,62.39287109375002],[-79.54531250000002,62.41171875000006]]],[[[-64.82382812499998,62.558740234374994],[-64.46503906249998,62.535937500000045],[-64.47832031250002,62.417871093749966],[-64.901220703125,62.421044921874994],[-64.82382812499998,62.558740234374994]]],[[[-70.33706054687497,62.548730468749994],[-70.76606445312498,62.596875],[-71.22011718750002,62.873925781249966],[-70.44262695312497,62.73378906250002],[-70.33706054687497,62.548730468749994]]],[[[-82.00048828124997,62.95419921874998],[-82.02583007812498,62.73007812499998],[-82.56826171875002,62.403222656249994],[-83.01582031249998,62.20991210937498],[-83.69887695312497,62.16025390624998],[-83.91049804687498,62.45415039062499],[-83.37641601562498,62.904931640624994],[-82.00048828124997,62.95419921874998]]],[[[-77.87670898437497,63.470556640625034],[-77.53271484374997,63.233642578125],[-77.94243164062496,63.11440429687502],[-78.536767578125,63.423730468749994],[-77.87670898437497,63.470556640625034]]],[[[-76.67758789062503,63.393945312499966],[-77.36474609374994,63.588330078124955],[-77.13369140624997,63.68203125000002],[-76.65244140624998,63.503564453124994],[-76.67758789062503,63.393945312499966]]],[[[-84.91962890624995,65.26108398437503],[-84.50112304687497,65.45844726562501],[-84.08486328125,65.21782226562502],[-82.05,64.64428710937506],[-81.67612304687498,64.21264648437503],[-81.88710937499997,64.01640625000002],[-80.82895507812495,64.08994140625],[-80.30205078124999,63.76220703125003],[-81.04638671875003,63.461572265624966],[-82.378125,63.706787109375],[-82.46708984375002,63.92695312500001],[-83.30395507812497,64.14379882812506],[-84.63291015625,63.30922851562502],[-85.39262695312496,63.119677734375045],[-85.76894531249997,63.70034179687502],[-87.15190429687499,63.58564453125001],[-86.93203124999997,63.90166015625002],[-86.252099609375,64.13686523437497],[-86.37426757812503,64.56582031249997],[-86.074609375,65.533837890625],[-85.55468750000003,65.91865234374995],[-85.17622070312501,65.746875],[-85.23994140624993,65.51030273437499],[-84.91962890624995,65.26108398437503]]],[[[-84.67475585937498,65.575],[-85.096337890625,65.756201171875],[-85.14960937500001,66.01538085937506],[-84.75737304687496,65.85893554687505],[-84.67475585937498,65.575]]],[[[-83.72597656249997,65.796728515625],[-83.23374023437495,65.71503906249995],[-83.332421875,65.63105468749998],[-84.11826171874995,65.77177734375007],[-84.40717773437501,66.13100585937497],[-83.78696289062495,65.96577148437498],[-83.72597656249997,65.796728515625]]],[[[-108.09272460937501,67.00517578124999],[-107.80551757812493,66.99858398437507],[-107.94394531249999,66.8578125],[-108.09272460937501,67.00517578124999]]],[[[-62.681542968749966,67.05629882812502],[-62.87163085937499,67.06259765625006],[-62.41679687499996,67.18847656250003],[-62.681542968749966,67.05629882812502]]],[[[-107.89985351562497,67.40180664062495],[-107.95024414062503,67.31821289062498],[-108.15224609374997,67.429443359375],[-108.04897460937498,67.664892578125],[-107.89985351562497,67.40180664062495]]],[[[-73.621728515625,67.783837890625],[-74.573388671875,67.82866210937507],[-74.70654296875003,68.06708984374995],[-73.49375,68.00063476562502],[-73.40717773437498,67.79306640625],[-73.621728515625,67.783837890625]]],[[[-86.59555664062498,67.7359375],[-86.89252929687498,67.836572265625],[-86.95981445312503,68.10024414062497],[-86.70209960937501,68.30561523437498],[-86.42114257812497,68.18344726562503],[-86.59555664062498,67.7359375]]],[[[-75.67587890624998,68.32250976562506],[-75.078125,68.17314453124999],[-75.20195312499996,67.45917968750001],[-75.78007812499996,67.28354492187503],[-76.94418945312498,67.25029296875002],[-77.30439453125001,67.68510742187505],[-77.12587890624997,67.94707031250002],[-76.59580078124998,68.27895507812497],[-75.67587890624998,68.32250976562506]]],[[[-78.98271484374999,68.19282226562501],[-79.17475585937493,68.26445312500002],[-78.95258789062495,68.35302734375006],[-78.98271484374999,68.19282226562501]]],[[[-104.54067382812497,68.405908203125],[-105.05136718749999,68.55903320312501],[-104.60200195312503,68.56152343749997],[-104.54067382812497,68.405908203125]]],[[[-74.880859375,68.34868164062505],[-75.40024414062503,68.52548828125],[-75.28740234374996,68.68774414062503],[-74.98364257812497,68.64760742187502],[-74.880859375,68.34868164062505]]],[[[-101.84589843749994,68.58632812499997],[-102.30815429687497,68.681982421875],[-102.01337890624995,68.82539062500001],[-101.73295898437495,68.75341796875],[-101.84589843749994,68.58632812499997]]],[[[-100.21723632812497,68.80668945312502],[-100.59653320312496,68.76640625000007],[-100.56547851562495,69.02680664062501],[-100.21723632812497,68.80668945312502]]],[[[-99.99467773437502,69.01352539062503],[-100.19570312500002,68.991455078125],[-100.153125,69.12949218750003],[-99.99467773437502,69.01352539062503]]],[[[-79.21064453124995,68.845458984375],[-79.24267578125,69.04926757812495],[-78.33256835937496,69.38603515624999],[-78.77919921875,68.95048828124999],[-79.21064453124995,68.845458984375]]],[[[-90.1998046875,69.419091796875],[-90.33027343749993,69.252197265625],[-90.49204101562503,69.369873046875],[-90.1998046875,69.419091796875]]],[[[-76.99536132812503,69.14375],[-77.37939453125,69.2740234375],[-77.18754882812502,69.440087890625],[-76.66884765625002,69.36616210937504],[-76.99536132812503,69.14375]]],[[[-101.171728515625,69.39707031250003],[-101.31289062499998,69.57607421875],[-101.00063476562497,69.4619140625],[-101.171728515625,69.39707031250003]]],[[[-95.51367187499997,69.57363281250002],[-95.43745117187498,69.37846679687505],[-95.73012695312502,69.34755859374997],[-95.80620117187499,69.56049804687501],[-95.89345703125,69.35175781250004],[-95.87583007812495,69.60600585937505],[-95.51367187499997,69.57363281250002]]],[[[-67.91469726562494,69.54096679687504],[-68.22138671874998,69.61674804687502],[-67.908837890625,69.68183593749995],[-67.91469726562494,69.54096679687504]]],[[[-78.02910156249993,69.71489257812502],[-78.03999023437495,69.6083984375],[-78.84819335937502,69.4828125],[-78.02910156249993,69.71489257812502]]],[[[-79.43066406250003,69.78779296874995],[-79.55283203124995,69.63085937500006],[-80.04750976562502,69.63432617187505],[-79.97783203124993,69.50966796874997],[-80.794775390625,69.68925781250005],[-80.42421875000002,69.797607421875],[-79.43066406250003,69.78779296874995]]],[[[-97.439453125,69.64267578125006],[-96.29995117187494,69.34438476562505],[-95.7513671875,68.89765624999998],[-95.26777343749998,68.82607421874997],[-96.40156249999995,68.47070312500003],[-97.47202148437498,68.543701171875],[-98.320556640625,68.84272460937498],[-98.70380859374993,68.80278320312502],[-98.90449218749995,68.93242187500005],[-99.25400390625002,68.86318359374997],[-99.49467773437493,68.95957031249998],[-99.455712890625,69.13120117187503],[-98.45595703124997,69.33466796875001],[-98.54599609375,69.57290039062497],[-98.04135742187498,69.456640625],[-98.20048828124996,69.79697265625006],[-97.79072265624998,69.86162109374999],[-97.439453125,69.64267578125006]]],[[[-86.91303710937501,70.11323242187501],[-86.55766601562499,69.99531249999995],[-87.3232421875,70.08012695312502],[-86.91303710937501,70.11323242187501]]],[[[-74.70888671874997,45.0038574218751],[-74.76245117187494,44.99907226562502],[-74.99614257812496,44.970117187499966],[-75.40126953124997,44.77226562499999],[-75.81933593749997,44.468017578125],[-76.18579101562503,44.24223632812502],[-76.819970703125,43.62880859375011],[-77.59653320312492,43.62861328125007],[-78.45825195312497,43.63149414062511],[-78.72041015624993,43.62495117187501],[-78.84555664062492,43.58334960937506],[-79.171875,43.466552734375085],[-79.0830566406249,43.33139648437509],[-79.05922851562494,43.27807617187506],[-79.066064453125,43.10610351562502],[-79.02617187499996,43.01733398437506],[-78.98076171874993,42.98061523437502],[-78.91508789062496,42.90913085937504],[-79.17373046875,42.74853515625],[-80.24755859374991,42.366015625000045],[-81.02822265624997,42.247167968750006],[-81.50732421874997,42.10346679687504],[-81.97416992187496,41.88872070312499],[-82.43906249999989,41.6748535156251],[-82.69003906249995,41.675195312499994],[-83.141943359375,41.97587890624996],[-83.10952148437497,42.25068359375001],[-82.54531249999997,42.62470703124998],[-82.19038085937495,43.47407226562501],[-82.137841796875,43.570898437500034],[-82.48505859374993,45.08374023437503],[-82.55107421874987,45.3473632812501],[-82.91933593749994,45.51796875000002],[-83.59267578125,45.81713867187506],[-83.46948242187503,45.99467773437499],[-83.61596679687503,46.116845703124994],[-83.97778320312494,46.08491210937507],[-84.12319335937497,46.50292968749997],[-84.44047851562496,46.49814453125006],[-84.66577148437503,46.54326171875002],[-84.87597656249994,46.89990234375003],[-85.07006835937497,46.97993164062498],[-85.65224609375,47.21997070312503],[-86.67216796874996,47.636425781249955],[-87.20800781249997,47.848486328125006],[-87.74389648437497,48.06054687500003],[-88.37817382812497,48.30307617187506],[-89.45566406249992,47.99624023437508],[-90.79731445312495,48.13105468750001],[-91.04345703124991,48.19370117187498],[-91.38720703124997,48.05854492187498],[-92.00517578125002,48.301855468750006],[-92.3484375,48.276611328125],[-92.41459960937493,48.276611328125],[-92.50058593749995,48.43535156250002],[-92.83671875,48.567773437499994],[-93.25795898437497,48.62885742187501],[-93.37788085937498,48.61655273437498],[-93.70771484374995,48.525439453125074],[-93.85161132812496,48.607275390625034],[-94.6208984374999,48.7426269531251],[-94.71279296874997,48.863427734374994],[-94.80346679687497,49.0029296875],[-94.86040039062493,49.258593750000045],[-94.85434570312495,49.304589843749994],[-95.15527343749997,49.3696777343751],[-95.16206054687493,48.991748046875045],[-95.39790039062493,48.99316406249997],[-96.25068359374993,48.99316406249997],[-96.67705078124993,48.99316406249997],[-97.52983398437493,48.99316406249997],[-98.80898437499995,48.99316406249997],[-104.77832031249997,48.993115234375125],[-110.7476562499999,48.993066406250136],[-116.71704101562493,48.993066406250136],[-118.84892578124993,48.993066406250136],[-119.27534179687494,48.993066406250136],[-119.70170898437495,48.99301757812495],[-120.98085937499995,48.99301757812495],[-122.78876953124994,48.99301757812495],[-122.82670898437495,49.028417968750034],[-122.9241699218749,49.07465820312504],[-122.96269531249993,49.07460937500005],[-123.06328125,48.97773437500001],[-123.22944335937493,49.260498046875085],[-122.87910156249995,49.39892578125003],[-123.27675781249997,49.34394531250001],[-123.1875,49.680322265624994],[-123.53056640624989,49.39731445312506],[-124.02861328125002,49.602880859375006],[-123.99262695312497,49.736181640625006],[-123.81718749999993,49.58657226562508],[-123.58247070312498,49.68125],[-123.87441406250005,49.736816406250114],[-123.82543945312493,50.14423828124998],[-123.94589843749995,50.18393554687509],[-123.9849121093749,49.87558593749998],[-124.28125,49.77211914062502],[-124.78237304687492,50.02011718749992],[-125.05668945312495,50.418652343750125],[-124.8598632812499,50.872412109375006],[-125.05878906249993,50.51386718749998],[-125.4763183593749,50.49716796874995],[-125.53935546874996,50.64902343749998],[-125.64130859374994,50.46621093750005],[-126.09433593749995,50.497607421875045],[-126.44746093750004,50.58774414062492],[-125.90410156250002,50.704931640625006],[-126.51435546875,50.679394531250125],[-126.37460937499995,50.83735351562498],[-126.5217773437499,50.86606445312498],[-126.51733398437497,51.0568359375001],[-126.63178710937494,50.915136718750006],[-127.057568359375,50.86752929687509],[-127.70810546875,51.15117187499996],[-127.41967773437496,51.608056640625136],[-126.69145507812502,51.70341796875002],[-127.33872070312489,51.70737304687495],[-127.66870117187497,51.47758789062502],[-127.85053710937498,51.67319335937509],[-127.79536132812493,52.19101562500006],[-127.43793945312504,52.356152343750125],[-127.24223632812496,52.39511718750009],[-126.71396484374989,52.060693359374994],[-127.19399414062498,52.45766601562502],[-126.95136718749994,52.7510253906251],[-127.01933593750002,52.8424804687501],[-127.06621093749989,52.65268554687498],[-127.79189453124994,52.28935546875002],[-128.10224609374993,51.78842773437495],[-128.3576171875,52.1588867187501],[-128.0375,52.318164062500045],[-127.94023437499996,52.545166015625085],[-128.27153320312493,52.3629882812501],[-128.05327148437487,52.91069335937496],[-128.3650390624999,52.82578125000006],[-128.52470703125002,53.1406738281251],[-129.08090820312492,53.36728515625006],[-129.1715820312499,53.53359375000002],[-128.8545898437499,53.70454101562504],[-128.90561523437492,53.559326171875114],[-128.5421386718749,53.420654296875114],[-128.13271484375002,53.417773437500045],[-127.92783203125,53.274707031250045],[-128.2072265624999,53.483203125000074],[-128.67553710937494,53.55458984375005],[-128.76367187500003,53.746875],[-128.5321289062499,53.85810546875007],[-128.959375,53.84145507812505],[-129.2578613281249,53.417968750000085],[-129.56372070312506,53.251464843750114],[-130.33525390625002,53.723925781250074],[-130.04331054687495,54.13354492187503],[-129.62602539062493,54.23027343750002],[-130.08422851562503,54.18139648437503],[-130.4302734375,54.42099609374998],[-129.56064453124995,55.46254882812508],[-129.79516601562503,55.559570312500114],[-130.04848632812494,55.05727539062511],[-130.01406249999997,55.950537109375006],[-130.09785156249995,56.10927734375002],[-130.41313476562487,56.12250976562507],[-130.47709960937496,56.230566406250034],[-130.649072265625,56.26367187500003],[-131.471875,56.55673828125006],[-131.82426757812496,56.58999023437508],[-131.86616210937495,56.792822265625006],[-132.1042968749999,56.85678710937509],[-132.062890625,56.95336914062503],[-132.33798828124992,57.07944335937498],[-132.27939453124998,57.14536132812506],[-132.23217773437494,57.198535156250074],[-132.30166015625005,57.2763183593751],[-132.44248046874986,57.40673828125003],[-132.55048828124995,57.499902343749994],[-133.00141601562495,57.948974609375],[-133.27529296875,58.22285156250004],[-133.54638671874997,58.50346679687499],[-134.21850585937503,58.849902343750045],[-134.32963867187505,58.93969726562506],[-134.39306640625,59.009179687499994],[-134.67724609374997,59.19926757812499],[-134.94375,59.28828125000001],[-135.05102539062491,59.57866210937502],[-135.36787109374998,59.743310546874994],[-135.70258789062504,59.72875976562506],[-136.3218261718749,59.604833984375034],[-136.27797851562494,59.48032226562506],[-136.46635742187493,59.459082031250006],[-136.57875976562494,59.15224609375002],[-136.81328125000002,59.15004882812511],[-137.12622070312491,59.04096679687507],[-137.2775390624999,58.988183593749994],[-137.43857421874995,58.903125],[-137.52089843749994,58.91538085937506],[-137.59331054687493,59.22626953124998],[-138.317626953125,59.611132812500074],[-138.86875,59.94575195312501],[-139.18515624999986,60.083593750000034],[-139.13696289062494,60.17270507812506],[-139.07924804687497,60.279443359375136],[-139.07924804687497,60.3437011718751],[-139.23476562499997,60.339746093749994],[-139.67631835937505,60.32832031249998],[-139.97329101562497,60.183154296875074],[-140.45283203125004,60.29970703125002],[-140.5254394531249,60.21835937499995],[-140.76274414062505,60.25913085937509],[-141.00214843750004,60.300244140625125],[-141.00214843750004,60.884667968749994],[-141.00214843750004,61.761279296875045],[-141.00214843750004,63.22226562499998],[-141.00214843750004,64.09887695312506],[-141.00214843750004,65.55991210937498],[-141.00214843750004,66.43652343750006],[-141.00214843750004,67.89755859374998],[-141.00214843750004,68.77416992187506],[-141.00214843750004,69.65078125000011],[-139.18154296874997,69.51552734375008],[-137.25996093749998,68.96411132812503],[-136.12236328124993,68.88222656250002],[-135.258837890625,68.68432617187503],[-135.93901367187487,68.9741699218751],[-135.575537109375,69.02695312500003],[-135.91020507812487,69.11147460937502],[-135.6914550781249,69.31118164062502],[-135.29282226562486,69.30786132812506],[-135.1408203124999,69.46782226562496],[-134.45683593749993,69.47763671875],[-134.40893554687494,69.68178710937502],[-133.87978515624997,69.50771484375011],[-134.17431640624991,69.25283203125005],[-133.16313476562496,69.43388671874999],[-132.91533203125002,69.62963867187506],[-132.40390625,69.65874023437496],[-132.48847656249993,69.73808593749996],[-132.16342773437498,69.70498046875014],[-131.13637695312497,69.90688476562505],[-130.66547851562495,70.12705078124998],[-129.944970703125,70.09091796875006],[-129.675634765625,70.19296875000009],[-129.64829101562495,69.9977539062501],[-130.83208007812487,69.65146484375006],[-131.9377929687499,69.5347167968751],[-132.8174804687499,69.20576171875004],[-133.41831054687492,68.84428710937493],[-133.138037109375,68.74658203125011],[-133.33666992187497,68.83525390625005],[-132.57763671874997,68.84780273437514],[-132.71894531249998,69.07919921875],[-131.78837890625002,69.43198242187495],[-131.32470703124997,69.36118164062509],[-131.06342773437504,69.45068359375003],[-130.97065429687495,69.20908203125],[-130.1176269531249,69.720068359375],[-128.89892578124994,69.96616210937506],[-129.15791015624995,69.80009765624999],[-129.05434570312502,69.70107421875005],[-128.85302734375003,69.7510253906251],[-127.68378906249994,70.26035156249995],[-128.17011718749998,70.41845703125],[-127.99101562499992,70.57382812500003],[-127.22597656249992,70.29614257812497],[-126.25043945312495,69.54526367187492],[-125.52495117187495,69.35156250000009],[-125.171875,69.42797851562503],[-125.35693359374991,69.62597656250003],[-124.767919921875,69.99003906249996],[-124.99038085937494,70.02661132812511],[-124.55502929687488,70.15122070312509],[-124.40693359374991,69.76743164062506],[-124.12460937499995,69.6899902343751],[-124.33808593749991,69.36484374999995],[-123.5284179687499,69.38935546874995],[-123.02578125,69.81000976562504],[-122.07006835937499,69.81616210937506],[-120.96245117187502,69.66040039062511],[-120.13999023437488,69.38056640625013],[-117.22695312499998,68.913427734375],[-116.05947265625,68.83701171875006],[-116.2434082031249,68.9740722656251],[-115.44228515624994,68.94091796875009],[-114.62016601562496,68.74609375],[-113.96440429687495,68.39907226562502],[-114.09594726562491,68.26679687500007],[-114.76528320312494,68.27021484375004],[-115.12705078124992,68.13203124999995],[-115.43447265624994,67.90234375000006],[-115.13320312499994,67.819189453125],[-112.50302734374993,67.6819335937501],[-110.9900390624999,67.79082031250007],[-110.07392578124995,67.99291992187506],[-109.63037109374991,67.73271484374996],[-109.03803710937504,67.69116210937503],[-108.85200195312497,67.42197265625009],[-108.61333007812493,67.59804687500008],[-107.98872070312495,67.2563964843751],[-107.99130859374995,67.09516601562513],[-108.49604492187493,67.09228515625006],[-107.25947265624998,66.39853515624995],[-107.71035156250001,66.74003906250007],[-107.7250976562499,66.98413085937506],[-107.15649414062497,66.88173828124997],[-107.9583984375,67.81860351562506],[-107.79829101562498,68.03691406249996],[-106.42426757812491,68.20058593750008],[-105.7501953125,68.59228515625011],[-106.45805664062496,68.51645507812495],[-106.60849609374988,68.35737304687504],[-107.61933593749994,68.3310546875],[-107.73417968749989,68.17373046875011],[-108.3228027343749,68.15410156250002],[-108.71811523437488,68.29746093750009],[-108.31347656249996,68.61079101562498],[-106.16445312499992,68.91987304687507],[-105.68559570312489,68.82817382812505],[-105.3774414062499,68.413818359375],[-104.65317382812488,68.23007812500003],[-104.48681640624991,68.06318359374998],[-103.47412109374993,68.11503906250005],[-102.32036132812489,67.73564453125005],[-101.55498046874992,67.69316406250007],[-100.21293945312489,67.83857421875004],[-98.92045898437502,67.72578124999998],[-98.41210937499991,67.80717773437505],[-98.63154296875004,68.0725585937501],[-97.45493164062486,67.61699218750002],[-97.20654296874989,67.85507812500003],[-97.73911132812495,67.97817382812505],[-98.19252929687494,67.92299804687502],[-98.65048828124989,68.36352539062506],[-98.21855468750002,68.31743164062507],[-97.7942382812499,68.38759765625],[-97.9250976562499,68.523681640625],[-97.41035156249993,68.49653320312498],[-96.97670898437497,68.25541992187505],[-96.43066406249991,68.3105957031251],[-96.72207031250005,68.03876953124998],[-95.9703125,68.24912109375],[-96.36914062499991,67.50976562500003],[-96.14145507812489,67.27182617187503],[-95.71992187499998,67.31679687500014],[-95.77768554687495,67.18461914062505],[-95.41591796875005,67.15556640624999],[-95.41889648437504,67.01323242187493],[-96.42255859374995,67.05175781249997],[-95.7875488281249,66.616796875],[-96.03686523437489,66.9375],[-95.39965820312503,66.94946289062509],[-95.25874023437493,67.26254882812492],[-95.65048828124986,67.73745117187505],[-95.46069335937503,68.02138671875],[-94.74443359374993,68.07089843749995],[-93.44892578124998,68.61889648437503],[-93.85244140624994,69.00034179687495],[-94.06489257812495,68.78476562500006],[-94.600439453125,68.80322265625011],[-94.08364257812497,69.12309570312507],[-94.254736328125,69.31376953125002],[-93.61948242187492,69.41699218750009],[-93.74853515624991,69.2261230468751],[-93.5322753906249,69.48090820312495],[-94.2708007812499,69.45512695312505],[-94.63383789062496,69.64965820312506],[-94.82250976562494,69.577783203125],[-95.96494140624989,69.80278320312499],[-96.5513671875,70.21030273437506],[-96.29770507812492,70.51137695312511],[-95.87861328124998,70.54897460937514],[-95.88632812499986,70.69428710937507],[-96.25800781249993,70.64228515625013],[-96.54892578124995,70.80874023437511],[-96.44658203124996,71.23989257812502],[-96.06201171874997,71.41386718749993],[-95.5642578124999,71.33676757812503],[-95.40625,71.49165039062498],[-95.87231445312494,71.57314453125005],[-94.73486328124994,71.98295898437507],[-94.30834960937491,71.76489257812506],[-93.74628906249998,71.742822265625],[-92.94868164062493,71.26210937500011],[-92.98144531249994,70.8522460937501],[-91.56406249999995,70.1782714843751],[-92.32050781250004,70.2353515625],[-92.51186523437494,70.10385742187503],[-91.976708984375,70.03867187500009],[-92.88779296874989,69.66821289062511],[-92.31166992187494,69.67290039062499],[-91.91196289062495,69.53125],[-91.20180664062494,69.64477539062494],[-91.43994140624997,69.52568359375002],[-90.4155761718749,69.45698242187507],[-90.89228515625004,69.26728515624995],[-91.23720703125005,69.28554687500014],[-90.47900390624994,68.88115234374999],[-90.57363281250005,68.47470703124998],[-90.20478515625004,68.25747070312511],[-89.27954101562491,69.25546875000003],[-88.22353515625,68.91503906249997],[-87.81357421874986,68.34570312499997],[-87.89267578125,68.24814453125],[-88.34697265624993,68.28828125000001],[-88.313818359375,67.95034179687508],[-87.359375,67.17724609374997],[-86.56079101562491,67.48212890625007],[-85.64316406249992,68.69970703124997],[-84.86757812499994,68.77333984375005],[-85.10664062499995,68.84404296875007],[-84.86220703125,69.07397460937503],[-85.38676757812493,69.23188476562504],[-85.50737304687487,69.84526367187493],[-82.61835937499993,69.69106445312514],[-82.39023437499989,69.60087890625007],[-82.75483398437493,69.49438476562506],[-82.30986328124996,69.41000976562509],[-82.22753906249997,69.24887695312495],[-81.37783203125005,69.18564453125003],[-81.95791015624991,68.88364257812498],[-81.38090820312496,68.85004882812504],[-81.28154296874987,68.65722656250003],[-81.91484374999993,68.4587890625001],[-82.55268554687504,68.44648437500007],[-82.22241210937489,68.145263671875],[-82.0125,68.19389648437496],[-81.97646484374997,67.86201171875001],[-81.2943359375,67.497412109375],[-81.46757812499996,67.0698730468751],[-83.40644531249998,66.37124023437508],[-84.53847656249994,66.97280273437505],[-84.84575195312502,67.02871093750008],[-85.11372070312498,66.90693359375013],[-84.73774414062504,66.93359375000006],[-84.223046875,66.68247070312506],[-83.86904296875,66.2135742187501],[-84.29306640624995,66.29179687500005],[-84.628076171875,66.20771484374998],[-85.603857421875,66.56826171875005],[-86.708154296875,66.52304687500009],[-86.68510742187502,66.36040039062499],[-85.95874023437491,66.11904296875002],[-87.45288085937503,65.33896484375009],[-87.96997070312503,65.34892578124999],[-89.7494140625,65.93603515625006],[-89.88969726562487,65.86855468749997],[-91.42724609374994,65.94790039062497],[-91.04111328124989,65.82983398437509],[-90.98344726562496,65.91923828124999],[-89.92407226562497,65.78027343750011],[-88.97402343749994,65.34829101562502],[-87.02753906249995,65.19809570312498],[-88.10561523437497,64.18330078125001],[-88.81772460937489,63.99223632812499],[-89.20063476562493,64.11376953125006],[-89.13154296874998,63.96850585937494],[-89.61582031249995,64.030615234375],[-89.8113281249999,64.18056640625],[-90.04165039062494,64.14086914062509],[-89.85571289062497,63.9569824218751],[-90.16816406250004,63.978759765625085],[-90.15473632812498,63.68964843749998],[-90.81191406249991,63.580908203125034],[-91.98222656249996,63.82241210937502],[-92.33842773437496,63.787646484375045],[-93.69633789062493,64.14716796875013],[-93.55981445312491,63.865283203125074],[-93.27021484374998,63.840869140625074],[-93.37851562499992,63.94848632812497],[-92.15688476562491,63.691699218750045],[-92.46508789062491,63.55507812500011],[-91.84184570312496,63.69755859374999],[-90.97006835937489,63.442773437500136],[-90.69858398437492,63.06386718750005],[-91.44897460937503,62.804052734375034],[-92.3612792968749,62.81938476562496],[-91.93583984374993,62.59238281250009],[-92.55141601562491,62.546728515625034],[-92.76596679687492,62.34995117187509],[-92.52797851562494,62.16840820312504],[-93.20537109374993,62.364941406250125],[-92.90551757812503,62.21513671874996],[-93.3330566406249,61.93291015625002],[-93.58178710937494,61.94204101562511],[-93.31201171874997,61.76728515625004],[-93.91274414062497,61.48144531250006],[-94.509375,60.60454101562493],[-94.76171874999991,60.498242187500125],[-94.78828124999998,59.26787109374993],[-94.95732421874996,59.068847656250085],[-94.28706054687493,58.716015625000125],[-94.33222656249998,58.297363281250114],[-94.12319335937494,58.73671875000008],[-93.1787597656249,58.72563476562496],[-92.43281249999993,57.3203125],[-92.7981445312499,56.921972656250034],[-90.89746093750003,57.25693359375006],[-88.94848632812489,56.85131835937503],[-88.07509765624997,56.46728515624994],[-87.48242187499991,56.021289062500045],[-85.55932617187491,55.54018554687508],[-85.21801757812491,55.348974609375034],[-85.3652832031249,55.07929687499998],[-85.06093749999997,55.285644531250085],[-83.91059570312493,55.314648437499955],[-82.39326171874998,55.067822265625125],[-82.219384765625,54.8134765625],[-82.42416992187486,54.2445800781251],[-82.14145507812492,53.81762695312497],[-82.29155273437496,53.03071289062507],[-81.5994140624999,52.432617187500085],[-81.82788085937489,52.22421875000009],[-81.46621093749994,52.204492187500136],[-80.588037109375,51.667236328125114],[-80.4433105468749,51.38857421875002],[-80.85122070312497,51.125],[-80.47832031249993,51.30732421874998],[-80.10356445312487,51.282861328125136],[-79.34790039062494,50.76264648437504],[-79.737451171875,51.186279296875],[-79.33867187500002,51.62817382812497],[-79.04052734375003,51.46376953125005],[-78.90317382812495,51.200292968750034],[-78.73134765624994,51.497460937499994],[-78.98164062499993,51.774560546875136],[-78.44809570312495,52.26137695312502],[-78.74414062499994,52.65537109374998],[-79.10034179687497,53.65664062500005],[-78.99604492187493,54.00249023437499],[-79.241796875,54.098876953125085],[-79.14672851562491,54.16923828125002],[-79.71235351562495,54.6718261718751],[-77.77529296874994,55.291259765625],[-76.60405273437496,56.19956054687495],[-76.52558593749998,56.8917968750001],[-76.80981445312497,57.65795898437506],[-77.15678710937496,58.018896484375034],[-78.51508789062493,58.68237304687503],[-77.76069335937498,59.38002929687505],[-77.72617187499995,59.67587890624992],[-77.34907226562495,59.57895507812509],[-77.48530273437493,59.684570312500114],[-77.28920898437494,60.0220214843751],[-77.58588867187498,60.088183593750074],[-77.45288085937497,60.1458007812501],[-77.6814453124999,60.427099609375034],[-77.503564453125,60.54272460937497],[-77.7908203124999,60.63984375000004],[-77.58955078124993,60.808593750000114],[-78.18134765624995,60.81914062499996],[-77.51435546874998,61.55629882812505],[-78.02138671874997,61.8320800781251],[-78.13339843749986,62.28227539062496],[-77.372412109375,62.572509765625114],[-75.81689453124991,62.31586914062507],[-75.7898437499999,62.17958984375002],[-75.3412109375,62.312109375],[-74.63256835937497,62.115673828125125],[-74.6458007812499,62.21113281250004],[-73.70507812499991,62.47314453124994],[-72.68696289062498,62.12456054687499],[-72.771630859375,61.840429687500006],[-72.50556640624998,61.922656250000074],[-72.22612304687487,61.83159179687499],[-72.04003906249991,61.68027343750006],[-72.21586914062502,61.58725585937495],[-71.86611328125,61.68852539062499],[-71.63828124999995,61.6171875],[-71.85439453124991,61.43979492187492],[-71.42270507812489,61.158935546875085],[-70.27929687499991,61.06865234374999],[-69.99243164062491,60.8564941406251],[-69.50332031249994,61.04042968750011],[-69.40473632812493,60.84677734375009],[-69.75947265624998,60.440234375000045],[-69.67373046874994,60.07587890625007],[-70.65483398437496,60.02622070312506],[-69.73393554687493,59.918017578125045],[-69.68188476562489,59.34174804687507],[-69.3440429687499,59.303076171875006],[-69.53164062499994,58.86923828125009],[-69.64838867187493,58.82080078125],[-69.78417968749994,58.95571289062511],[-70.15434570312496,58.76059570312498],[-69.78989257812486,58.689306640625034],[-69.27109374999986,58.88393554687505],[-68.69819335937495,58.904541015625],[-68.38115234374993,58.74350585937506],[-68.22939453124994,58.48457031250007],[-68.35654296874989,58.163232421875136],[-69.04082031249996,57.902490234375136],[-68.41357421874997,58.0517578125],[-68.02104492187493,58.48530273437504],[-67.88828124999989,58.29575195312495],[-68.06386718750005,58.13896484374999],[-67.75595703124992,58.4045898437501],[-67.6782714843749,57.99111328125008],[-67.5696289062499,58.21347656250006],[-66.72216796874991,58.49101562499996],[-66.36240234374989,58.791162109374994],[-66.0023925781249,58.43120117187502],[-66.04306640624995,58.82065429687495],[-65.72099609374996,59.02377929687495],[-65.38354492187494,59.06020507812508],[-65.7,59.21333007812501],[-65.4117187499999,59.31499023437496],[-65.47509765624994,59.47031249999998],[-65.03823242187494,59.38789062500007],[-65.40742187499993,59.53935546875002],[-65.4333984374999,59.776513671874994],[-65.02817382812495,59.77070312500007],[-65.17172851562489,59.90800781249996],[-64.81733398437498,60.3310546875],[-64.49941406250005,60.26826171875001],[-64.41958007812494,60.17138671874997],[-64.76845703124997,60.01210937500005],[-64.28349609374993,60.06406249999998],[-64.22631835937491,59.741210937500085],[-64.05605468750005,59.82255859374996],[-63.7501953124999,59.51259765625005],[-63.945458984374994,59.380175781250074],[-63.775878906249915,59.277148437500045],[-63.539892578124864,59.332861328125034],[-63.41513671874995,59.194384765625074],[-63.97114257812498,59.053808593750034],[-63.24843749999991,59.068310546874955],[-63.28212890624994,58.86738281250007],[-63.05029296874997,58.87817382812494],[-62.87387695312489,58.67246093749998],[-63.537060546874926,58.329931640625006],[-63.209960937499886,58.46694335937502],[-62.593847656249864,58.47402343750005],[-62.81206054687502,58.20039062500007],[-63.26152343749993,58.014697265625074],[-62.486230468749966,58.15405273437506],[-62.30566406249997,57.97226562499995],[-61.95864257812505,57.91176757812508],[-61.9679687499999,57.61191406250009],[-62.495556640624926,57.489208984375125],[-61.92114257812497,57.42080078125005],[-61.977441406249966,57.24794921875002],[-61.33374023437494,57.01059570312498],[-61.37163085937502,56.68081054687511],[-62.497265624999926,56.80170898437504],[-61.73774414062498,56.52602539062502],[-61.940429687499886,56.423583984375114],[-61.42529296874994,56.360644531250074],[-61.713085937499955,56.230957031250114],[-61.364697265624926,56.2160156250001],[-61.30112304687495,56.04716796874999],[-61.4495117187499,55.99570312499998],[-61.08935546874997,55.86635742187511],[-60.74326171874989,55.94145507812493],[-60.56210937499995,55.727001953125125],[-60.341015624999926,55.78466796874997],[-60.40830078124995,55.649560546874994],[-60.19238281249994,55.4809082031251],[-60.617138671874955,55.060205078124994],[-59.75878906249997,55.3095703125],[-59.68906249999989,55.19633789062502],[-59.43789062500005,55.175927734375136],[-59.837792968749994,54.813964843750114],[-59.25957031249996,55.19995117187506],[-58.99711914062496,55.149462890625074],[-58.780175781249994,54.838378906250114],[-58.39814453124998,54.77412109374998],[-57.96245117187493,54.875732421875085],[-57.40449218750004,54.59086914062496],[-57.69926757812496,54.38657226562506],[-58.435205078124966,54.228125],[-58.63320312499999,54.04956054687497],[-59.8230468749999,53.83442382812504],[-60.14492187499994,53.59614257812498],[-60.395410156249994,53.653320312500085],[-60.1002929687499,53.48696289062511],[-60.329492187499966,53.26611328125006],[-58.652050781249926,53.97788085937495],[-57.935986328124955,54.09116210937492],[-58.31748046874989,54.11445312500007],[-58.192089843749926,54.228173828125136],[-57.4160644531249,54.162744140625136],[-57.134960937499926,53.79184570312506],[-57.524072265624966,53.61142578125006],[-57.331738281249955,53.469091796875034],[-56.84086914062496,53.73945312500004],[-56.46499023437505,53.76503906250011],[-55.96611328125002,53.4711425781251],[-55.79794921874995,53.211962890625045],[-55.80283203124989,52.64316406249998],[-56.324902343749926,52.54453124999998],[-55.74648437499994,52.4745605468751],[-55.7771484374999,52.3642578125],[-56.01171874999997,52.394482421875125],[-55.695214843749994,52.13779296875006],[-56.97597656250005,51.45766601562505],[-58.510351562500006,51.295068359375136],[-59.88632812499992,50.316406250000085],[-61.72485351562503,50.10405273437499],[-61.91953124999989,50.2328613281251],[-62.71542968749995,50.30166015625008],[-66.49550781249991,50.2118652343751],[-66.94116210937503,49.993701171875045],[-67.37202148437495,49.348437500000045],[-68.28193359374998,49.197167968750136],[-69.67387695312496,48.19916992187504],[-71.01826171874993,48.455615234375045],[-69.86552734374993,48.17226562500005],[-69.775,48.09809570312504],[-69.9944335937499,47.73989257812508],[-70.70585937499996,47.13979492187505],[-71.26777343749995,46.79594726562499],[-71.87958984374998,46.68681640624996],[-72.98100585937493,46.209716796875085],[-73.4766113281249,45.738232421874955],[-74.03784179687494,45.501855468750136],[-74.31508789062494,45.531054687500045],[-73.97382812499995,45.345117187499994],[-74.70888671874997,45.0038574218751]]],[[[-96.78232421874998,72.93662109375],[-97.0927734375,72.99692382812503],[-96.86240234374995,73.18881835937506],[-96.78232421874998,72.93662109375]]],[[[-114.52153320312502,72.592919921875],[-113.57807617187501,72.65209960937506],[-113.2923828125,72.94980468750003],[-112.75361328125001,72.98603515624995],[-111.26972656249994,72.71372070312498],[-111.895166015625,72.35610351562497],[-111.67509765625002,72.30014648437503],[-110.20512695312495,72.66127929687497],[-110.66083984374998,73.00820312500002],[-110.00844726562494,72.983642578125],[-108.75498046875002,72.55107421874999],[-108.18823242187501,71.72377929687502],[-107.812841796875,71.62617187500004],[-107.30600585937496,71.89467773437502],[-108.23740234374999,73.14990234375003],[-108.029052734375,73.34873046875003],[-106.48212890624998,73.19619140624997],[-105.41513671874995,72.788330078125],[-104.38593749999997,71.57695312500005],[-104.51479492187502,71.06425781250005],[-103.58457031249995,70.63085937500003],[-103.07719726562497,70.50883789062505],[-103.04956054687503,70.65507812499999],[-101.67631835937495,70.27827148437495],[-101.56240234375001,70.135009765625],[-101.04267578125,70.11079101562504],[-100.98237304687497,69.67988281250001],[-101.483837890625,69.85019531250006],[-101.64765624999997,69.69853515625007],[-102.18212890624997,69.845947265625],[-102.59589843749997,69.71791992187502],[-102.62109374999996,69.55151367187506],[-103.464892578125,69.64448242187498],[-103.04892578124999,69.47177734375006],[-103.12021484374995,69.20458984374997],[-102.44677734374997,69.476318359375],[-102.04594726562493,69.46484374999997],[-101.85712890625001,69.02397460937505],[-102.89506835937499,68.8236328125],[-104.57143554687501,68.87211914062502],[-105.105859375,68.92041015625],[-105.019580078125,69.08125],[-106.27016601562497,69.19458007812497],[-106.65908203124997,69.439599609375],[-107.43989257812497,69.00214843749995],[-108.36499023437497,68.93476562499998],[-109.47211914062501,68.67670898437498],[-113.12773437500002,68.49414062500003],[-113.61684570312501,68.8384765625],[-113.69414062499995,69.19501953124998],[-115.61811523437495,69.28295898437506],[-116.51347656249993,69.42460937500005],[-117.19541015624995,70.05405273437503],[-114.59233398437497,70.31245117187498],[-112.63789062499997,70.225244140625],[-111.63256835937497,70.30883789062497],[-113.75727539062503,70.69072265625005],[-115.99091796874997,70.586279296875],[-117.58706054687498,70.62954101562502],[-118.2640625,70.888330078125],[-118.26909179687493,71.03471679687505],[-115.30341796874997,71.49370117187505],[-117.93564453125003,71.39208984375003],[-118.22646484374995,71.46708984375005],[-117.742333984375,71.65932617187502],[-118.58300781250003,71.64902343749998],[-118.98769531249997,71.7642578125],[-118.94462890624997,71.98554687499995],[-118.21347656249998,72.26289062499998],[-118.481298828125,72.42768554687498],[-118.13310546874995,72.63281250000003],[-114.63823242187499,73.37265625000003],[-114.20639648437495,73.29780273437495],[-114.05170898437497,73.07099609375004],[-114.52153320312502,72.592919921875]]],[[[-105.28891601562499,72.919921875],[-106.92153320312497,73.479833984375],[-106.61396484375001,73.69560546875002],[-105.31796874999995,73.76713867187502],[-104.5875,73.57807617187495],[-104.62172851562495,73.3111328125],[-105.28891601562499,72.919921875]]],[[[-79.53730468749998,73.65449218749998],[-78.2865234375,73.66582031250007],[-77.20654296874997,73.49956054687505],[-76.18339843749999,72.84306640625005],[-77.83593750000003,72.89682617187498],[-79.3193359375,72.75771484375],[-79.820703125,72.82631835937502],[-80.18330078124995,73.22465820312499],[-80.77641601562502,73.33417968750001],[-80.84887695312503,73.72124023437499],[-79.53730468749998,73.65449218749998]]],[[[-86.58935546874997,71.01079101562507],[-85.64384765624999,71.15244140624998],[-85.09487304687497,71.15195312500006],[-84.82373046874997,71.02861328125005],[-84.69941406249995,71.63144531250003],[-85.33906249999998,71.69726562500003],[-85.91162109375,71.98652343749998],[-85.321875,72.23315429687506],[-84.28374023437499,72.04448242187499],[-84.84199218749995,72.30815429687505],[-84.62304687500003,72.37656250000003],[-85.34111328124993,72.42153320312497],[-85.64990234374997,72.72216796875003],[-85.26210937500002,72.95400390625],[-84.25664062499999,72.79672851562503],[-85.454736328125,73.10546875000003],[-84.41606445312496,73.45649414062495],[-83.781884765625,73.41689453125],[-83.72983398437495,73.57587890624995],[-81.946142578125,73.72983398437506],[-81.40615234374997,73.634521484375],[-80.27724609375,72.77016601562502],[-81.229345703125,72.31171874999998],[-80.61147460937497,72.450830078125],[-80.925146484375,71.90766601562501],[-80.18193359374996,72.20878906250007],[-79.884375,72.17719726562501],[-80.10893554687499,72.33217773437497],[-79.83129882812503,72.44628906250003],[-79.000244140625,72.27202148437507],[-79.00781250000003,72.04291992187501],[-78.58510742187497,71.880615234375],[-78.86274414062495,72.100830078125],[-78.69926757812496,72.35141601562498],[-77.51650390624997,72.17778320312505],[-78.48427734374994,72.47060546875002],[-77.75322265624996,72.72475585937502],[-75.70429687499998,72.57153320312497],[-75.05268554687493,72.22636718749999],[-75.92280273437501,71.71723632812501],[-74.90317382812503,72.10048828125002],[-74.20932617187498,71.978662109375],[-74.31572265624999,71.84267578125],[-75.20478515625001,71.70913085937497],[-74.70078125,71.67558593750005],[-74.99619140624998,71.21811523437503],[-74.48808593750002,71.64838867187501],[-73.8140625,71.77143554687495],[-74.197265625,71.404150390625],[-73.71284179687498,71.58759765624998],[-73.18061523437501,71.282861328125],[-73.27822265625,71.53798828125],[-72.901953125,71.67778320312507],[-71.64067382812499,71.51625976562502],[-71.22939453124997,71.33876953125],[-71.49501953124997,71.10512695312502],[-71.93793945312498,71.09428710937502],[-72.63271484374994,70.83076171874998],[-71.74252929687495,71.046875],[-71.370849609375,70.97514648437499],[-70.82607421874994,71.10874023437503],[-70.67265625,71.05219726562498],[-70.76171874999997,70.79223632812503],[-71.89018554687502,70.43154296875002],[-71.27587890625,70.50029296874999],[-71.42944335937503,70.12778320312503],[-70.97978515624999,70.5810546875],[-69.94980468750003,70.84501953125005],[-68.49575195312502,70.61025390625],[-68.363525390625,70.48125],[-70.05771484375,70.042626953125],[-68.77822265625,70.20356445312501],[-69.00830078124997,69.97895507812501],[-68.74404296874997,69.94140625],[-68.05908203124997,70.317236328125],[-67.36367187499994,70.03442382812503],[-67.22163085937495,69.73071289062506],[-68.02041015625,69.77006835937499],[-69.25078124999999,69.51191406249998],[-68.51303710937498,69.57729492187497],[-67.236962890625,69.460107421875],[-66.71674804687495,69.31186523437498],[-66.70742187500002,69.16821289062503],[-68.40629882812499,69.23222656250002],[-69.040625,69.09799804687503],[-68.41552734375,69.17207031250001],[-67.8326171875,69.06596679687499],[-67.88320312500002,68.78398437499999],[-69.31909179687497,68.85698242187505],[-68.21040039062495,68.702978515625],[-67.9384765625,68.524169921875],[-66.74272460937502,68.45776367187497],[-67.032958984375,68.32607421874997],[-66.923095703125,68.06572265625005],[-66.72900390624997,68.12900390625006],[-66.66269531249995,68.03442382812497],[-66.63095703124998,68.21064453124998],[-66.21240234374997,68.280419921875],[-66.44394531249998,67.83383789062506],[-65.94238281250003,68.07094726562505],[-65.86435546875003,67.92285156249997],[-65.50908203124996,67.96826171875],[-65.40126953125002,67.67485351562499],[-65.41533203124996,67.87924804687498],[-64.92231445312495,68.03164062500002],[-65.02109375,67.78754882812495],[-64.63779296875,67.84023437500002],[-63.850195312500034,67.56606445312502],[-64.00795898437502,67.34731445312497],[-64.69995117187494,67.35053710937501],[-63.83623046874993,67.26411132812498],[-63.59160156250002,67.3775390625],[-63.040136718750034,67.235009765625],[-63.70156249999994,66.82236328125003],[-62.962304687499966,66.94926757812505],[-62.37973632812495,66.90537109375],[-62.12358398437499,67.046728515625],[-61.35341796874994,66.689208984375],[-61.52783203124994,66.55810546875003],[-62.12333984374993,66.64306640625003],[-61.57080078125,66.37290039062506],[-61.95634765624993,66.30932617187497],[-62.553125,66.40683593750003],[-62.53359374999994,66.22700195312498],[-61.99160156250002,66.03530273437502],[-62.624121093750006,66.01625976562505],[-62.381982421874966,65.83330078124999],[-62.65888671874998,65.63994140625002],[-63.16894531249997,65.65732421875],[-63.45874023437494,65.85302734375],[-63.42089843749997,65.70859374999998],[-63.651074218749955,65.66098632812506],[-63.33745117187493,65.61674804687502],[-63.36337890624998,65.22973632812503],[-63.606591796874966,64.92807617187503],[-64.345703125,65.17241210937499],[-64.26967773437497,65.40078124999997],[-64.55507812500002,65.1166015625],[-65.401611328125,65.764013671875],[-64.44536132812496,66.31713867187497],[-65.0044921875,66.07773437500003],[-65.82573242187499,65.996923828125],[-65.65634765625003,66.204736328125],[-66.06372070312497,66.13271484374997],[-66.986328125,66.62749023437505],[-67.07685546874995,66.52548828125006],[-67.30732421874993,66.5697265625],[-67.22539062499993,66.31025390624998],[-67.88339843749995,66.46743164062502],[-67.18320312499995,66.03442382812503],[-67.350439453125,65.92973632812502],[-67.82802734374997,65.96518554687503],[-68.45991210937498,66.249267578125],[-68.74892578125,66.200048828125],[-68.21718750000002,66.078857421875],[-68.18671874999993,65.87099609375002],[-67.86645507812497,65.773681640625],[-67.936767578125,65.56489257812501],[-67.56962890624999,65.64355468749997],[-67.11796874999999,65.44038085937495],[-67.3365234375,65.34658203125005],[-66.69741210937502,64.81518554687506],[-66.63549804687503,65.00034179687503],[-66.21464843749999,64.72241210937497],[-65.93852539062496,64.88574218750003],[-65.2748046875,64.63154296875004],[-65.52934570312499,64.50478515624997],[-65.074609375,64.43666992187502],[-65.21298828125003,64.30327148437502],[-65.580322265625,64.29384765624997],[-65.16987304687495,64.02817382812503],[-64.67846679687503,64.027978515625],[-64.79814453124999,63.91596679687498],[-64.4109375,63.70634765625002],[-64.66464843749995,63.24536132812497],[-65.19184570312498,63.764257812500006],[-65.06894531249998,63.26347656250002],[-64.67236328125003,62.921972656250006],[-65.16279296875001,62.93261718750003],[-65.10849609374998,62.62646484375],[-66.22402343749994,63.10717773437497],[-66.228662109375,62.99096679687503],[-66.41445312500002,63.027197265625034],[-66.65498046874998,63.264746093750006],[-66.69746093749993,63.069531249999955],[-67.89326171874993,63.733740234375006],[-67.72255859374997,63.422753906249966],[-68.49375,63.725488281249994],[-68.91108398437498,63.703222656250006],[-68.141259765625,63.17231445312501],[-67.67597656249998,63.093554687500045],[-67.73696289062497,63.00957031249999],[-65.98017578125001,62.20888671875002],[-66.12387695312498,61.89306640625],[-68.53588867187503,62.25561523437506],[-69.12558593749998,62.423974609374966],[-69.604736328125,62.76772460937502],[-70.23613281250002,62.76337890625001],[-70.801416015625,62.91049804687506],[-71.10576171874999,63.00224609375002],[-70.94604492187497,63.12070312499998],[-71.34726562499998,63.066113281249955],[-71.99223632812493,63.41616210937505],[-71.380859375,63.580322265625],[-72.29013671874995,63.72797851562498],[-72.17426757812498,63.893408203125006],[-72.49843749999994,63.82348632812497],[-73.45454101562495,64.39926757812503],[-73.27128906250002,64.58251953125],[-73.91035156249998,64.578125],[-74.064794921875,64.42465820312498],[-74.13046874999998,64.6078125],[-74.46123046874996,64.64467773437505],[-74.68139648437497,64.8306640625],[-74.91943359374997,64.76552734374997],[-74.69472656250002,64.49658203124997],[-75.71503906249995,64.52436523437495],[-75.76669921875,64.39194335937498],[-76.85615234374998,64.23764648437498],[-77.76049804687503,64.36015624999999],[-78.04521484374993,64.499267578125],[-78.09560546875,64.93925781250002],[-77.36088867187496,65.19653320312503],[-77.32670898437493,65.453125],[-75.82832031249993,65.22705078125003],[-75.45209960937495,64.84160156250002],[-75.35712890624995,65.00874023437495],[-75.79868164062503,65.297509765625],[-75.16630859374999,65.28393554687497],[-74.13847656250002,65.50346679687502],[-73.55078125000003,65.48525390625005],[-74.41640624999997,66.16708984375003],[-73.03325195312502,66.72817382812505],[-72.78881835937494,67.030615234375],[-72.22001953124999,67.25429687500002],[-73.28447265624993,68.35698242187505],[-73.82050781249998,68.36293945312502],[-73.82211914062495,68.68598632812501],[-74.11796875000002,68.70092773437506],[-73.9892578125,68.54863281250002],[-74.2701171875,68.54121093750001],[-74.89296875,68.80815429687505],[-74.71669921874997,69.04550781249998],[-76.58505859375,68.69873046875003],[-76.55722656250003,69.00947265625001],[-75.9537109375,69.03081054687502],[-75.64775390625002,69.212548828125],[-76.46494140624995,69.46943359375001],[-76.23408203125001,69.66210937500003],[-76.742333984375,69.57290039062497],[-77.08994140625,69.63510742187503],[-76.85859374999995,69.775390625],[-77.591650390625,69.84560546875002],[-77.77402343750003,70.23852539062503],[-78.28281250000003,70.229150390625],[-79.06640624999997,70.60356445312507],[-79.40522460937498,70.40073242187503],[-78.86284179687499,70.24189453125001],[-78.88964843750003,69.97749023437495],[-79.51542968749996,69.88759765625005],[-81.65195312500003,70.09462890625002],[-80.92172851562503,69.73090820312501],[-81.56469726562503,69.94272460937498],[-82.29384765624997,69.83691406250003],[-83.14995117187493,70.00908203125002],[-83.85908203124998,69.96274414062498],[-85.43237304687497,70.11137695312507],[-85.780029296875,70.03666992187505],[-86.32202148437503,70.14541015625],[-86.396875,70.46533203124997],[-87.838134765625,70.24658203125],[-88.78271484374997,70.49448242187503],[-89.45590820312498,71.06171874999995],[-87.84492187499995,70.94438476562505],[-87.14008789062498,71.01162109374997],[-89.80537109374993,71.46230468750005],[-89.86152343750001,72.41191406250005],[-88.70517578124998,73.40327148437495],[-87.71977539062496,73.72290039062497],[-85.95078124999998,73.85014648437505],[-84.94677734375,73.72163085937498],[-86.00053710937499,73.31254882812505],[-86.65629882812502,72.72402343750005],[-86.21845703124998,71.89912109375004],[-85.02338867187495,71.35322265625001],[-86.58935546874997,71.01079101562507]]],[[[-100.00190429687497,73.9458984375],[-99.15795898437499,73.73159179687497],[-97.66997070312499,73.88774414062499],[-97.1705078125,73.82485351562497],[-97.001708984375,73.66650390625003],[-97.62587890624997,73.50229492187498],[-97.27250976562502,73.38681640624998],[-98.42177734375002,72.94101562500003],[-97.63632812499998,73.02763671874999],[-97.128125,72.62758789062502],[-96.59208984374996,72.71025390624999],[-96.44560546874996,72.55244140624998],[-96.80146484374998,72.32241210937502],[-96.61342773437494,71.83383789062506],[-97.58227539062497,71.62968750000005],[-98.18134765624998,71.66245117187503],[-98.32270507812501,71.85234375000002],[-98.19863281249994,71.44086914062501],[-98.66289062499993,71.302099609375],[-99.22363281249996,71.387109375],[-100.594482421875,72.15234375000003],[-101.20854492187495,72.31699218749998],[-101.72392578124996,72.31489257812501],[-102.70874023437496,72.76450195312503],[-102.20400390624998,73.077294921875],[-101.27319335937497,72.7216796875],[-100.48476562500002,72.77294921874997],[-100.395703125,72.97700195312498],[-100.128125,72.90668945312495],[-100.53637695312497,73.19785156250003],[-99.82514648437503,73.2138671875],[-100.36611328125001,73.359033203125],[-100.88935546875003,73.27534179687501],[-101.52319335937501,73.48637695312502],[-100.97578124999995,73.59975585937502],[-100.5216796875,73.44931640625],[-100.96298828125002,73.79140625],[-99.99111328125,73.79516601562503],[-100.00190429687497,73.9458984375]]],[[[-98.270361328125,73.86850585937498],[-98.97392578124997,73.81206054687502],[-99.4169921875,73.89541015625002],[-97.69824218749997,74.10869140625005],[-98.270361328125,73.86850585937498]]],[[[-93.17084960937498,74.16098632812506],[-92.22270507812502,73.97236328124998],[-90.62744140625,73.95170898437505],[-90.38139648437496,73.82475585937502],[-92.11791992187497,72.75380859375],[-94.21132812499997,72.75693359375],[-93.77055664062496,72.66821289062506],[-93.55517578124994,72.42114257812497],[-94.03754882812498,72.02875976562498],[-95.00786132812496,72.01279296875],[-95.60214843749998,72.88447265624995],[-95.63291015625003,73.69545898437497],[-94.697607421875,73.66357421874997],[-95.134130859375,73.88125],[-94.97353515625,74.04140625000002],[-93.17084960937498,74.16098632812506]]],[[[-119.73632812499997,74.11264648437498],[-119.20595703125002,74.19799804687503],[-119.11796874999995,74.01552734375],[-118.54399414062499,74.24462890625003],[-117.51484375000001,74.23173828124999],[-115.51069335937501,73.61875],[-115.446875,73.43886718750002],[-118.96157226562497,72.68413085937499],[-119.51284179687501,72.30268554687501],[-120.17988281250001,72.21264648437506],[-120.61933593750001,71.50576171875002],[-121.47216796875003,71.38901367187503],[-121.74936523437502,71.44477539062501],[-123.09565429687503,71.09379882812502],[-124.00776367187494,71.67744140624998],[-125.29667968749999,71.973046875],[-125.84531250000002,71.978662109375],[-123.79726562499997,73.76816406250003],[-124.69624023437497,74.34819335937499],[-121.50415039062497,74.54511718749998],[-119.56264648437494,74.23281250000002],[-119.73632812499997,74.11264648437498]]],[[[-97.35551757812496,74.52631835937495],[-97.75,74.51054687500005],[-97.41650390624994,74.62656250000003],[-97.35551757812496,74.52631835937495]]],[[[-95.306640625,74.50541992187505],[-95.850732421875,74.58247070312504],[-95.51020507812498,74.63676757812499],[-95.306640625,74.50541992187505]]],[[[-104.11992187499995,75.03632812500004],[-104.88740234374998,75.14775390624999],[-104.34619140624996,75.42993164062503],[-103.64350585937497,75.18657226562499],[-104.11992187499995,75.03632812500004]]],[[[-93.54257812499995,75.0279296875],[-93.57309570312495,74.66884765625005],[-94.53452148437498,74.63671874999997],[-96.59960937499997,75.03178710937499],[-95.95463867187493,75.44379882812501],[-94.878173828125,75.63002929687502],[-93.90908203125002,75.42250976562502],[-93.54257812499995,75.0279296875]]],[[[-96.07856445312495,75.510107421875],[-96.91513671875003,75.37968749999999],[-96.98281249999997,75.50981445312505],[-96.367822265625,75.65463867187506],[-96.07856445312495,75.510107421875]]],[[[-94.52656249999995,75.74931640624999],[-94.901220703125,75.93076171875],[-94.53789062499996,75.99643554687506],[-94.52656249999995,75.74931640624999]]],[[[-118.328125,75.57968749999998],[-118.81713867187503,75.52211914062497],[-119.39458007812499,75.617333984375],[-117.63369140624998,76.11508789062498],[-118.328125,75.57968749999998]]],[[[-79.0630859375,75.92587890624998],[-79.63876953124995,75.84291992187505],[-79.00932617187499,76.14589843750005],[-79.0630859375,75.92587890624998]]],[[[-102.22734374999995,76.014892578125],[-102.00800781250003,75.93940429687498],[-102.57958984375003,75.78022460937498],[-103.31474609374996,75.76420898437499],[-103.04150390624999,75.91884765624997],[-103.98525390624997,75.93310546875003],[-103.80078124999994,76.03701171874997],[-104.24248046874996,76.04697265625006],[-104.35063476562497,76.18232421875001],[-102.72802734374999,76.30703125],[-102.22734374999995,76.014892578125]]],[[[-104.02285156249998,76.58310546875003],[-103.05131835937495,76.44985351562497],[-103.31137695312499,76.34755859375],[-104.35751953124995,76.33461914062502],[-104.58569335937499,76.60649414062499],[-104.07451171875003,76.66611328124998],[-104.02285156249998,76.58310546875003]]],[[[-97.70092773437497,76.46650390624998],[-97.89052734374997,75.7603515625],[-97.40751953124999,75.67250976562497],[-97.33603515624998,75.41982421875],[-97.65332031249997,75.50776367187498],[-97.87822265624996,75.41611328125003],[-97.67431640624997,75.127294921875],[-98.04531249999997,75.20083007812497],[-98.12094726562503,75.03271484375],[-100.234375,75.00771484374997],[-100.48349609374995,75.18842773437501],[-100.14570312499995,75.24614257812505],[-100.71191406250003,75.40634765625],[-99.19458007812499,75.698388671875],[-102.58740234375001,75.51367187500003],[-102.79750976562501,75.59965820312505],[-102.14472656249998,75.87504882812502],[-100.97280273437498,75.79843750000003],[-101.414990234375,75.84584960937502],[-101.87211914062496,76.08310546875003],[-101.52895507812495,76.21728515625003],[-102.1046875,76.33120117187505],[-101.41518554687495,76.42490234375003],[-99.86547851562499,75.92421875],[-100.11284179687502,76.11723632812507],[-99.54106445312497,76.14628906250005],[-100.41420898437495,76.242529296875],[-99.97773437500003,76.31245117187495],[-100.82973632812497,76.52387695312495],[-99.8140625,76.6322265625],[-98.89033203125,76.46557617187497],[-98.71083984374994,76.69384765625003],[-97.70092773437497,76.46650390624998]]],[[[-101.22612304687497,76.57934570312497],[-101.61308593749995,76.60458984375006],[-100.26914062499998,76.73413085937497],[-101.22612304687497,76.57934570312497]]],[[[-108.29238281250001,76.05712890625],[-107.72348632812502,75.99541015625002],[-108.020703125,75.80478515625],[-107.21621093749997,75.89155273437501],[-106.91352539062503,75.67963867187501],[-106.67700195312499,76.02373046875002],[-105.63266601562493,75.94536132812505],[-105.51948242187497,75.63237304687505],[-106.09262695312495,75.08945312500003],[-107.15341796874996,74.9271484375],[-108.47475585937495,74.94721679687501],[-108.83129882812501,75.06489257812498],[-112.51933593749997,74.41684570312503],[-113.67158203124997,74.45302734375005],[-114.31269531250003,74.71508789062506],[-112.835986328125,74.9755859375],[-111.67109375,75.01943359374997],[-111.09345703125001,75.25629882812498],[-113.71176757812499,75.06860351562503],[-113.85332031249996,75.259375],[-113.46708984374996,75.41611328125003],[-114.01650390624998,75.43427734375001],[-114.16845703124994,75.23950195312503],[-114.51381835937497,75.27548828125],[-114.45175781250002,75.08789062499997],[-115.02011718749999,74.97617187500003],[-115.41318359374995,75.11499023437497],[-115.72885742187496,74.968115234375],[-116.47607421874996,75.17177734375],[-117.56523437499997,75.23334960937504],[-117.25761718750002,75.45952148437502],[-116.07714843749996,75.49296874999999],[-115.14184570312501,75.67851562500005],[-116.42563476562498,75.58535156249997],[-117.16362304687496,75.64487304687503],[-116.80214843749995,75.77158203124998],[-114.99150390625002,75.896337890625],[-116.66455078124999,75.95756835937505],[-116.20986328125,76.19443359374998],[-114.77861328124999,76.17260742187497],[-115.82216796874997,76.27001953125003],[-114.99848632812503,76.4974609375],[-114.19394531249999,76.45146484375005],[-113.82348632812501,76.20683593750002],[-112.69760742187496,76.20170898437505],[-111.05268554687495,75.54853515625001],[-108.94716796875,75.54179687499999],[-108.94477539062495,75.69897460937503],[-109.8705078125,75.929052734375],[-109.48681640624999,76.14467773437497],[-110.31445312500001,76.369384765625],[-109.09824218749996,76.811865234375],[-108.46699218749997,76.73759765625007],[-108.29238281250001,76.05712890625]]],[[[-89.72646484374994,76.50742187499998],[-90.55625,76.73457031249998],[-90.13632812499995,76.83696289062505],[-89.69541015625,76.74116210937498],[-89.72646484374994,76.50742187499998]]],[[[-113.56069335937494,76.74326171874998],[-114.83525390624999,76.79467773437497],[-113.89165039062495,76.89487304687503],[-113.56069335937494,76.74326171874998]]],[[[-94.29497070312493,76.91245117187498],[-93.23002929687496,76.77026367187497],[-93.53457031250002,76.44770507812498],[-92.99536132812494,76.62041015624999],[-91.305029296875,76.68076171875003],[-90.54262695312494,76.495751953125],[-91.41508789062496,76.45585937500005],[-89.28452148437498,76.30161132812506],[-89.40659179687498,76.18916015624998],[-91.40732421874998,76.22006835937506],[-89.27758789062497,75.79506835937497],[-89.64604492187499,75.5650390625],[-88.91669921874998,75.45395507812503],[-88.64497070312495,75.65844726562503],[-88.201318359375,75.51201171875005],[-87.72973632812503,75.57563476562495],[-87.53911132812502,75.48486328125003],[-87.25693359374998,75.61772460937499],[-85.95146484374993,75.39501953125],[-85.97299804687498,75.5287109375],[-83.931982421875,75.81894531250003],[-83.23710937499993,75.75083007812503],[-82.153662109375,75.83105468750003],[-80.32197265624998,75.62910156250001],[-79.50908203125002,75.25981445312499],[-80.38198242187494,75.03417968750003],[-79.40141601562502,74.91762695312502],[-79.944482421875,74.83364257812505],[-80.34775390624998,74.90297851562505],[-80.26274414062499,74.58447265625],[-81.94018554687494,74.47270507812505],[-82.73579101562495,74.53027343749997],[-83.5220703125,74.90146484375],[-83.53188476562494,74.58569335937497],[-84.42553710937503,74.50810546875007],[-85.06142578125,74.60693359375003],[-85.133447265625,74.517431640625],[-85.44233398437495,74.6005859375],[-85.80800781249994,74.49897460937498],[-88.42304687499995,74.49414062499997],[-88.53496093749993,74.83173828125001],[-89.55869140624995,74.55473632812507],[-90.55327148437499,74.61274414062498],[-90.88022460937498,74.8177734375],[-91.13457031250002,74.64985351562498],[-91.54912109375002,74.65556640624999],[-92.3892578125,75.263330078125],[-92.18510742187499,75.84653320312498],[-93.09174804687495,76.35400390624997],[-95.27387695312498,76.26440429687503],[-96.03969726562494,76.48671875000002],[-95.65097656249998,76.58466796874998],[-96.88071289062495,76.73833007812505],[-96.40156249999995,76.79721679687503],[-96.75830078124997,76.97177734374998],[-95.84951171875002,77.06621093750005],[-94.29497070312493,76.91245117187498]]],[[[-115.55126953125001,77.36328125],[-116.32919921874996,77.137060546875],[-115.81005859374999,76.939111328125],[-116.25273437500002,76.90141601562505],[-115.94628906250003,76.71127929687503],[-116.99921874999995,76.531591796875],[-117.23359375000001,76.28154296875005],[-117.99296874999999,76.40581054687505],[-117.88081054687497,76.80507812500005],[-118.79140624999994,76.51298828125005],[-119.080712890625,76.12407226562505],[-119.58037109375,76.32651367187498],[-119.52612304687496,75.99721679687505],[-119.91289062499997,75.85883789062501],[-120.40888671874995,75.82563476562498],[-120.84838867187496,76.18266601562499],[-121.21347656249999,75.98369140625005],[-122.53305664062498,75.95092773437503],[-122.59272460937497,76.16206054687495],[-122.90278320312498,76.13471679687498],[-122.51938476562503,76.353173828125],[-121.56113281250003,76.453466796875],[-119.09018554687496,77.30507812500002],[-116.84355468749995,77.33955078124995],[-117.03974609374995,77.46513671875005],[-116.51132812500003,77.54760742187497],[-115.55126953125001,77.36328125]]],[[[-89.83325195312503,77.26762695312505],[-90.22827148437503,77.21245117187499],[-90.99321289062499,77.32949218750002],[-91.01904296875003,77.64389648437503],[-89.83896484375003,77.49140624999998],[-89.83325195312503,77.26762695312505]]],[[[-104.55815429687497,77.14174804687497],[-105.21508789062496,77.18208007812501],[-106.03559570312495,77.73984375000006],[-105.58789062499997,77.73598632812497],[-104.54223632812501,77.33774414062503],[-104.55815429687497,77.14174804687497]]],[[[-95.484375,77.79199218750003],[-93.30097656249995,77.73979492187505],[-93.54394531249997,77.466650390625],[-95.98706054687497,77.484130859375],[-96.19458007812497,77.70053710937503],[-95.484375,77.79199218750003]]],[[[-101.6935546875,77.69658203125005],[-102.37783203124995,77.728125],[-102.44770507812498,77.88061523437506],[-101.19321289062493,77.82978515624998],[-101.00205078124998,77.73510742187497],[-101.6935546875,77.69658203125005]]],[[[-113.83247070312497,77.75463867187506],[-114.28720703124998,77.72148437500005],[-114.98041992187498,77.91542968750002],[-114.33037109374997,78.07753906250002],[-113.83247070312497,77.75463867187506]]],[[[-110.45805664062496,78.10322265625001],[-109.62226562499995,78.07475585937499],[-110.865625,77.834130859375],[-110.15273437500002,77.76293945312506],[-110.19848632812501,77.52451171874998],[-112.37265625000002,77.36411132812498],[-113.16435546875002,77.5302734375],[-113.21518554687498,77.90351562500001],[-110.45805664062496,78.10322265625001]]],[[[-109.81596679687499,78.65039062500003],[-109.48447265624995,78.31640625],[-111.16918945312499,78.38627929687505],[-111.51748046874997,78.27470703125005],[-112.13125,78.366064453125],[-113.22304687499998,78.29790039062505],[-112.85585937499997,78.46684570312502],[-110.877587890625,78.73505859375004],[-109.81596679687499,78.65039062500003]]],[[[-96.20449218749994,78.53129882812499],[-94.91538085937495,78.39052734375002],[-95.32924804687497,78.22504882812495],[-94.93427734374998,78.07563476562498],[-96.98964843749994,77.80600585937503],[-97.65815429687498,78.090625],[-96.944677734375,78.15185546874997],[-98.04951171874995,78.325927734375],[-98.33261718749998,78.77353515625006],[-97.38232421875,78.78291015625001],[-96.20449218749994,78.53129882812499]]],[[[-103.42602539062499,79.315625],[-102.57617187499996,78.87939453125003],[-101.70366210937502,79.07890625000002],[-101.128125,78.80166015625002],[-100.43549804687503,78.8203125],[-99.60942382812495,78.58305664062507],[-99.16640625000002,77.85693359375003],[-100.27465820312503,77.83271484374995],[-101.07412109375001,78.19384765625],[-102.60698242187502,78.24892578125002],[-102.73134765624995,78.37104492187495],[-103.94658203124999,78.26000976562497],[-104.76357421874998,78.35166015625],[-104.90961914062498,78.55263671875],[-103.57050781250003,78.53984375000005],[-104.02084960937502,78.63491210937497],[-103.37158203125,78.73632812500003],[-104.18500976562498,78.78129882812505],[-104.15195312499999,78.989892578125],[-104.89550781249996,78.80815429687502],[-104.74677734375003,79.02709960937503],[-105.53564453124999,79.03251953125007],[-105.51455078124995,79.24248046875002],[-105.38769531249994,79.32358398437503],[-103.42602539062499,79.315625]]],[[[-98.79160156249995,79.98110351562505],[-98.94521484375,79.72407226562498],[-100.05683593749997,79.89824218750005],[-100.05327148437496,80.093359375],[-99.15322265625001,80.12421874999998],[-98.79160156249995,79.98110351562505]]],[[[-91.88554687499999,81.13286132812505],[-90.64301757812498,80.59370117187498],[-89.23559570312494,80.51064453125002],[-88.85732421874997,80.16621093750001],[-88.19990234374998,80.11147460937497],[-88.5248046875,80.41801757812507],[-87.675,80.37211914062505],[-87.92231445312501,80.09770507812499],[-86.97719726562502,79.89423828125001],[-87.29516601562494,79.58017578124998],[-86.33696289062496,79.63496093749995],[-86.00703124999998,79.47944335937498],[-85.6478515625,79.61142578125006],[-85.04213867187497,79.2845703125],[-86.95717773437502,78.97490234375005],[-87.61738281249995,78.67631835937505],[-88.04018554687494,78.99531250000004],[-87.98286132812498,78.53706054687501],[-88.74160156250002,78.58403320312499],[-88.82241210937497,78.18588867187498],[-90.037109375,78.60683593750002],[-89.52568359374999,78.15961914062495],[-90.29721679687495,78.32802734374997],[-90.614404296875,78.14985351562501],[-92.35126953125001,78.312890625],[-92.8482421875,78.46010742187497],[-91.86689453124998,78.54267578125001],[-93.26660156249997,78.60830078124997],[-93.63442382812502,78.75092773437498],[-93.15986328124998,78.77563476562503],[-94.11459960937498,78.92890625000001],[-92.54721679687495,79.28261718750002],[-91.29990234375003,79.372705078125],[-92.82192382812497,79.44990234375001],[-93.93315429687496,79.29072265624998],[-94.11030273437498,79.40156250000001],[-95.10317382812502,79.289892578125],[-95.66289062500002,79.52734374999997],[-94.40185546874997,79.736328125],[-95.73935546874995,79.66015625000003],[-96.58906249999995,79.91665039062497],[-96.77324218749999,80.13579101562502],[-94.64589843749994,80.04873046874997],[-94.26259765625002,80.19487304687499],[-95.40507812499996,80.13500976562506],[-96.39409179687493,80.31503906250003],[-95.549072265625,80.36660156249997],[-95.92695312499998,80.72065429687498],[-93.92792968749995,80.55917968750003],[-95.51474609375003,80.83813476562503],[-94.98051757812499,81.04965820312503],[-93.28671874999998,81.10029296874998],[-94.22011718749997,81.33076171875004],[-93.03466796874997,81.3462890625],[-91.88554687499999,81.13286132812505]]],[[[-69.4888671875,83.01679687499998],[-66.42255859374998,82.92685546875003],[-68.46933593749995,82.65336914062502],[-65.29902343749995,82.79960937500005],[-64.98388671874997,82.90229492187501],[-64.50400390625,82.77841796874998],[-63.641015624999966,82.81259765625003],[-63.246777343749926,82.4501953125],[-62.47519531249995,82.51958007812502],[-61.392480468749994,82.44189453125],[-61.61538085937502,82.18442382812503],[-64.43579101562497,81.74262695312501],[-66.62573242187497,81.61640624999995],[-68.68852539062493,81.29331054687503],[-64.78007812499993,81.49287109375001],[-69.55068359375,80.38325195312498],[-70.71259765625001,80.53959960937505],[-70.264892578125,80.23359374999998],[-72.05595703124996,80.12324218749995],[-70.56840820312493,80.09370117187498],[-71.387841796875,79.76176757812505],[-72.43652343750003,79.69438476562499],[-74.39448242187495,79.87407226562499],[-73.47246093749996,79.7564453125],[-73.36152343750001,79.50400390625],[-75.50341796875,79.41416015625],[-76.898828125,79.5123046875],[-75.60273437499998,79.23955078125005],[-74.48120117187503,79.22949218750006],[-74.64091796874996,79.03554687499997],[-78.58164062499998,79.075],[-77.88276367187498,78.9423828125],[-76.255859375,79.00683593749997],[-74.486328125,78.75009765624998],[-74.87861328124998,78.54482421875],[-76.41611328124995,78.51152343750005],[-75.19345703125,78.327734375],[-75.86596679687497,78.00981445312499],[-78.01259765624997,77.94604492187506],[-78.07617187500003,77.51904296875],[-78.70849609374997,77.34213867187503],[-80.57304687499996,77.31479492187506],[-81.65908203124997,77.52543945312499],[-81.3013671875,77.34404296875007],[-82.056787109375,77.29653320312497],[-81.75634765624997,77.20400390625005],[-79.49726562500001,77.19609375000005],[-78.97919921874998,76.89287109374999],[-78.28886718750002,76.97797851562501],[-77.98330078124994,76.75498046875006],[-78.284326171875,76.57124023437501],[-80.79970703124997,76.173583984375],[-80.97451171874994,76.470068359375],[-81.71738281250003,76.494970703125],[-82.52983398437499,76.723291015625],[-82.23315429687494,76.46582031250003],[-83.88569335937501,76.453125],[-84.22377929687497,76.67534179687499],[-84.27534179687498,76.35654296875006],[-85.141259765625,76.30458984375005],[-86.45371093750003,76.58486328125002],[-86.68022460937499,76.37661132812497],[-87.35419921874998,76.44804687500005],[-87.48979492187499,76.58583984374997],[-87.49755859374997,76.38627929687499],[-88.39599609374997,76.40527343750003],[-88.49584960937497,76.77285156249997],[-88.54580078125002,76.42089843750003],[-89.36962890624997,76.474462890625],[-89.49975585937503,76.82680664062502],[-88.39814453124995,77.10395507812501],[-86.81225585937497,77.18491210937498],[-87.68144531249996,77.43637695312503],[-88.01699218750002,77.78471679687505],[-86.75507812499998,77.86372070312498],[-85.58847656249998,77.46113281250004],[-84.73867187499997,77.36103515624998],[-83.72128906249998,77.41420898437497],[-82.7103515625,77.84951171875002],[-82.5953125,77.99213867187504],[-83.77939453125,77.53261718750002],[-85.28935546874996,77.55903320312498],[-85.54755859374998,77.92768554687495],[-84.61542968749998,78.19570312500002],[-84.22270507812499,78.176025390625],[-84.91035156249993,78.23969726562501],[-84.78320312499997,78.52758789062506],[-85.5859375,78.10957031249998],[-86.21777343750003,78.08120117187497],[-85.92006835937494,78.34287109374998],[-86.91323242187494,78.126806640625],[-87.5517578125,78.17661132812503],[-86.80791015624999,78.77436523437495],[-85.00375976562495,78.912255859375],[-83.27143554687501,78.77031250000002],[-81.75009765624995,78.97578124999995],[-82.43876953125002,78.903662109375],[-84.41201171875002,78.99658203125003],[-84.38359375000002,79.1185546875],[-83.57587890624995,79.05366210937501],[-86.42075195312498,79.84521484374997],[-86.49853515625003,80.25825195312501],[-83.72363281250003,80.22895507812501],[-81.68837890625,79.685791015625],[-80.47592773437498,79.60625],[-80.12446289062495,79.66948242187507],[-81.01015625000002,79.693115234375],[-82.98701171874995,80.32260742187498],[-76.86298828124995,80.86479492187505],[-78.71621093749994,80.95166015624997],[-76.88510742187503,81.43027343750006],[-81.00703125000001,80.6548828125],[-82.88432617187502,80.57753906249997],[-82.22236328124998,80.77231445312503],[-84.41782226562495,80.52675781250002],[-86.250341796875,80.56577148437506],[-86.60307617187499,80.66401367187498],[-85.63930664062494,80.92460937500007],[-83.288818359375,81.14794921875],[-85.780859375,81.03505859375],[-87.32988281250002,80.669775390625],[-88.00366210937497,80.675390625],[-89.16689453125,80.94130859375],[-86.47675781249993,81.03574218750006],[-84.94121093750002,81.28623046875],[-87.27509765624995,81.080810546875],[-89.623046875,81.032470703125],[-89.94731445312499,81.17265625000005],[-89.20869140624998,81.25009765625003],[-89.67368164062503,81.32861328125003],[-87.59702148437498,81.52583007812498],[-88.47905273437502,81.56464843749998],[-90.41630859374996,81.40537109375003],[-89.82167968749997,81.63486328124998],[-91.29238281250002,81.57124023437498],[-91.64755859374998,81.68383789062503],[-88.06318359375001,82.09648437500007],[-87.01821289062502,81.95874023437497],[-86.62680664062495,82.05102539062503],[-85.04482421874997,81.9828125],[-86.615625,82.21855468750007],[-84.89682617187503,82.44941406250001],[-82.63369140625002,82.07729492187497],[-82.53691406250002,82.24726562499995],[-79.465625,81.85112304687499],[-82.44755859374993,82.39501953125003],[-81.68115234375003,82.51865234375],[-82.11684570312497,82.62866210937503],[-80.8625,82.57153320312503],[-81.01015625000002,82.77905273437503],[-78.748779296875,82.67939453124998],[-80.15493164062497,82.91113281250003],[-77.61806640624997,82.89584960937503],[-76.009375,82.53515625],[-75.565625,82.60854492187502],[-77.12490234374994,83.00854492187497],[-74.41416015624995,83.01313476562501],[-72.65869140625,82.72163085937495],[-73.44189453124994,82.90483398437499],[-72.811669921875,83.08120117187502],[-71.98320312499996,83.10141601562498],[-70.94038085937495,82.90224609375],[-71.08481445312498,83.08266601562497],[-69.96992187499995,83.11611328125005],[-69.4888671875,83.01679687499998]]]]},"properties":{"name":"Canada","childNum":110}},{"geometry":{"type":"Polygon","coordinates":[[[9.527658197470123,47.27026989773668],[9.46249431093294,47.19858962254578],[9.46249431093294,47.09010747968864],[9.409458596647225,47.02019676540292],[9.579979133936737,47.05856388629306],[9.580273437500011,47.057373046875],[10.133496093750011,46.851513671875],[10.349414062500017,46.98476562499999],[10.414941406250023,46.964404296874996],[10.45458984375,46.8994140625],[10.452832031250011,46.86494140625],[10.406054687500017,46.73486328125],[10.39794921875,46.6650390625],[10.4306640625,46.550048828125],[10.195507812500011,46.62109375],[10.1375,46.61435546875],[10.087011718750006,46.599902343749996],[10.061230468750011,46.546777343749994],[10.038281250000011,46.483203125],[10.045605468750011,46.447900390624994],[10.081933593750023,46.420751953125],[10.109667968750017,46.362841796874996],[10.128320312500023,46.238232421875],[10.08056640625,46.227978515625],[10.041015625,46.238085937499996],[9.939257812500017,46.36181640625],[9.884472656250011,46.3677734375],[9.787792968750011,46.346044921875],[9.639453125000017,46.2958984375],[9.57958984375,46.29609375],[9.528710937500023,46.306201171874996],[9.427636718750023,46.482324218749994],[9.399316406250023,46.4806640625],[9.304394531250011,46.495556640625],[9.203417968750017,46.21923828125],[9.11874162946429,46.014892578125],[8.97551618303573,45.81677455357143],[8.74961495535715,46.02246372767857],[8.818554687500011,46.0771484375],[8.458398437500023,46.245898437499996],[8.370703125,46.445117187499996],[8.298535156250011,46.40341796875],[8.23193359375,46.341210937499994],[8.08154296875,46.256005859374994],[7.9931640625,46.015917968749996],[7.327929687500017,45.912353515625],[7.129003906250006,45.880419921874996],[7.055761718750006,45.90380859375],[7.02109375,45.92578125],[6.953710937500006,46.017138671874996],[6.897265625000017,46.0517578125],[6.772070312500006,46.16513671875],[6.758105468750017,46.415771484375],[6.578222656250006,46.437353515625],[6.428906250000011,46.430517578125],[6.321875,46.393701171874994],[6.234667968750017,46.3326171875],[6.199414062500011,46.19306640625],[6.086621093750011,46.147021484374996],[6.006640625000017,46.142333984375],[5.971484375000017,46.151220703125],[5.970019531250017,46.214697265625],[6.0361328125,46.238085937499996],[6.095898437500011,46.27939453125],[6.129687500000017,46.5669921875],[6.41015625,46.755419921874996],[6.429003906250017,46.832275390625],[6.45625,46.94833984375],[6.624804687500017,47.004345703125],[6.666894531250023,47.026513671874994],[6.688085937500006,47.058251953124994],[6.820703125000023,47.16318359375],[6.952050781250023,47.2671875],[6.978515625,47.302050781249996],[7.000585937500006,47.322509765625],[7.000585937500006,47.339453125],[6.900390625,47.39423828125],[6.968359375,47.45322265625],[7.136035156250017,47.48984375],[7.343164062500023,47.43310546875],[7.615625,47.592724609375],[8.454003906250023,47.59619140625],[8.559472656250023,47.6240234375],[8.570507812500011,47.63779296875],[8.567089843750011,47.651904296874996],[8.55234375,47.659130859375],[8.451757812500006,47.651806640625],[8.413281250000011,47.6626953125],[8.403417968750006,47.687792968749996],[8.435742187500011,47.731347656249994],[8.572656250000023,47.775634765625],[9.524023437500006,47.52421875],[9.625878906250023,47.467041015625],[9.527539062500011,47.270751953125],[9.527658197470123,47.27026989773668]]]},"properties":{"name":"Switzerland","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-67.28886718749999,-55.776855468749964],[-67.55996093749997,-55.72480468750002],[-67.39736328124997,-55.58515625],[-67.28886718749999,-55.776855468749964]]],[[[-67.07993164062498,-55.15380859374996],[-67.33969726562495,-55.292578124999984],[-67.4947265625,-55.177441406249976],[-68.07001953124995,-55.22109374999999],[-68.30136718750003,-54.98066406250003],[-67.245263671875,-54.977636718750034],[-67.07993164062498,-55.15380859374996]]],[[[-69.70297851562503,-54.91904296875],[-68.90078125000002,-55.01777343750004],[-68.45800781249997,-54.95966796875002],[-68.61328124999997,-55.155566406250045],[-68.28266601562495,-55.25517578125],[-68.04833984375,-55.6431640625],[-68.86704101562498,-55.45019531250003],[-68.89008789062498,-55.2412109375],[-69.19262695312497,-55.171875],[-69.35922851562498,-55.300683593749945],[-69.18085937499995,-55.47480468749998],[-69.41181640624995,-55.44423828124997],[-69.97978515625002,-55.14746093749999],[-69.88442382812494,-54.88203125000001],[-69.70297851562503,-54.91904296875]]],[[[-70.9916015625,-54.86796874999999],[-70.80483398437497,-54.96767578124996],[-70.41752929687493,-54.908886718749976],[-70.29785156249997,-55.11376953124997],[-70.47558593749994,-55.17705078124998],[-71.43720703125001,-54.88925781249997],[-70.9916015625,-54.86796874999999]]],[[[-71.390478515625,-54.03281250000002],[-71.02192382812495,-54.111816406250036],[-71.14326171874998,-54.374023437499986],[-71.473291015625,-54.23115234375001],[-71.94853515624999,-54.300878906250006],[-72.21044921874997,-54.04775390624995],[-71.996484375,-53.884863281249984],[-71.390478515625,-54.03281250000002]]],[[[-72.92324218749997,-53.481640625],[-72.88222656249997,-53.578320312499976],[-72.48227539062503,-53.58808593750001],[-72.20541992187503,-53.80742187500002],[-72.408544921875,-54.00380859374997],[-72.87099609375,-54.12656250000002],[-72.76376953125,-53.86484375],[-73.03945312499994,-53.83281250000004],[-73.08076171875001,-53.99804687499995],[-73.21064453125001,-53.98583984374995],[-73.31435546875,-53.72919921874998],[-73.845458984375,-53.54580078125001],[-73.44707031249993,-53.41005859374998],[-72.92324218749997,-53.481640625]]],[[[-74.38574218749994,-52.92236328125001],[-73.65400390624998,-53.06982421875003],[-73.13520507812498,-53.35390625],[-73.56728515625,-53.3068359375],[-73.86694335937494,-53.096875],[-74.27021484374995,-53.08154296875002],[-74.71201171874998,-52.74873046874998],[-74.38574218749994,-52.92236328125001]]],[[[-68.62993164062499,-52.65263671875004],[-68.65322265624994,-54.85361328124999],[-69.48627929687493,-54.85888671875],[-69.72343750000002,-54.71210937500003],[-70.49716796875,-54.80957031249999],[-71.83154296874997,-54.62617187500002],[-71.92773437500003,-54.52871093749997],[-71.80014648437498,-54.433984374999945],[-71.07993164062498,-54.444238281249994],[-70.79726562500002,-54.32724609374996],[-70.70112304687498,-54.48544921875004],[-70.31098632812498,-54.52851562500002],[-70.86308593749993,-54.11044921875003],[-70.86772460937499,-53.88417968750002],[-70.53129882812502,-53.627343750000016],[-70.37973632812495,-53.98671874999995],[-70.62983398437493,-54.005566406249976],[-70.53530273437494,-54.136132812500016],[-70.16899414062502,-54.37929687499999],[-69.74184570312494,-54.30585937500005],[-69.25317382812494,-54.557421875000045],[-69.04433593749997,-54.40673828124999],[-69.98813476562503,-54.10908203125001],[-70.15112304687503,-53.88808593750002],[-70.09111328124996,-53.72177734374998],[-69.35595703125003,-53.41630859375001],[-69.63701171874999,-53.33408203125004],[-70.32929687499998,-53.37763671875003],[-70.44335937499994,-53.085546875000034],[-70.130615234375,-52.942773437499994],[-70.38012695312494,-52.75195312500002],[-69.93544921874997,-52.82109374999998],[-69.41406249999997,-52.48623046874997],[-69.16704101562499,-52.66757812499997],[-68.78979492187497,-52.576757812500034],[-68.62993164062499,-52.65263671875004]]],[[[-74.82294921874993,-51.63017578125001],[-74.53681640624998,-51.96513671875004],[-74.69448242187497,-52.27919921874999],[-74.85180664062494,-52.27070312500003],[-75.10537109375,-51.78886718750001],[-74.82294921874993,-51.63017578125001]]],[[[-74.55864257812499,-51.27705078125001],[-74.62036132812497,-51.395703125000026],[-75.04736328125,-51.39833984375003],[-75.28911132812496,-51.625390625000016],[-75.15366210937498,-51.278808593750014],[-74.73666992187503,-51.20761718749999],[-74.55864257812499,-51.27705078125001]]],[[[-75.302001953125,-50.67998046875005],[-75.411376953125,-50.76435546875001],[-75.42763671875002,-50.48056640625002],[-75.11533203124998,-50.510449218749976],[-75.302001953125,-50.67998046875005]]],[[[-75.05478515625,-50.29609375],[-75.44912109374997,-50.34335937500004],[-75.32666015624997,-50.01181640625],[-74.8759765625,-50.10996093750001],[-75.05478515625,-50.29609375]]],[[[-75.106689453125,-48.83652343750001],[-75.38994140624999,-49.15917968750002],[-75.64116210937499,-49.195410156250034],[-75.48764648437498,-49.082421875000016],[-75.58310546874998,-48.85888671874995],[-75.106689453125,-48.83652343750001]]],[[[-74.47617187499998,-49.14785156250002],[-74.59472656249997,-50.00664062500001],[-74.76298828124996,-50.01142578125001],[-74.88041992187502,-49.72587890625001],[-74.72382812499998,-49.42382812500003],[-74.960107421875,-49.533007812499974],[-75.06601562499998,-49.85234375000002],[-75.54980468749994,-49.79130859375002],[-75.30585937499998,-49.49404296875003],[-75.46748046874995,-49.35888671875003],[-75.08603515624998,-49.27021484375],[-75.21015624999995,-49.14804687499998],[-74.94921875,-48.960156249999976],[-74.89624023437503,-48.73320312500002],[-74.54609374999993,-48.76689453125004],[-74.47617187499998,-49.14785156250002]]],[[[-75.51025390624997,-48.76347656250005],[-75.65092773437496,-48.58632812500002],[-75.57148437499993,-48.095898437500026],[-75.39140625000002,-48.01972656249997],[-75.15849609374999,-48.62265624999996],[-75.51025390624997,-48.76347656250005]]],[[[-74.56728515625,-48.591992187500026],[-74.92304687499998,-48.62646484375003],[-75.21289062499997,-48.141699218750034],[-75.19829101562502,-47.974609375000014],[-74.895654296875,-47.839355468749986],[-74.56728515625,-48.591992187500026]]],[[[-75.11220703124997,-47.8376953125],[-75.26103515625002,-47.76386718749998],[-74.92646484374998,-47.72314453125003],[-75.11220703124997,-47.8376953125]]],[[[-74.31289062500002,-45.69150390625002],[-74.46552734374995,-45.757226562499994],[-74.68984375,-45.66259765625],[-74.310546875,-45.17265625000002],[-74.31289062500002,-45.69150390625002]]],[[[-73.63217773437498,-44.82148437499997],[-73.81845703125,-44.65214843750002],[-73.72392578124993,-44.544238281249974],[-73.63217773437498,-44.82148437499997]]],[[[-72.98613281249999,-44.780078124999974],[-73.22846679687498,-44.85996093749999],[-73.39707031249998,-44.77431640624995],[-73.44506835937497,-44.641015624999966],[-73.20771484374993,-44.33496093749997],[-72.7763671875,-44.50859374999999],[-72.98613281249999,-44.780078124999974]]],[[[-73.73535156249997,-44.39453125000003],[-74.00205078125003,-44.59091796874998],[-73.728173828125,-45.195898437500034],[-74.016259765625,-45.344921875000026],[-74.61777343749998,-44.64794921874996],[-74.50180664062498,-44.47353515624995],[-74.09721679687496,-44.38935546875004],[-73.99492187499999,-44.140234375],[-73.70322265624998,-44.27412109375001],[-73.73535156249997,-44.39453125000003]]],[[[-73.81064453125003,-43.827246093750006],[-73.95566406249998,-43.921972656250034],[-74.14296874999997,-43.872167968750006],[-73.81064453125003,-43.827246093750006]]],[[[-73.77338867187498,-43.3458984375],[-74.114404296875,-43.35791015624996],[-74.387353515625,-43.231640625],[-74.03666992187496,-41.79550781249998],[-73.52783203124997,-41.89628906249999],[-73.42290039062499,-42.192871093750014],[-73.47080078124998,-42.46630859375004],[-73.78925781249993,-42.58574218750003],[-73.43632812499996,-42.9365234375],[-73.74965820312494,-43.15908203124995],[-73.77338867187498,-43.3458984375]]],[[[-78.80415039062501,-33.646484374999986],[-78.98945312499993,-33.66171874999998],[-78.87744140625003,-33.57519531250003],[-78.80415039062501,-33.646484374999986]]],[[[-109.27998046874994,-27.14042968749996],[-109.434130859375,-27.171289062500023],[-109.39047851562499,-27.068359375000014],[-109.27998046874994,-27.14042968749996]]],[[[-67.19487304687493,-22.821679687500037],[-67.00878906249994,-23.00136718750005],[-67.35620117187503,-24.033789062499963],[-68.25029296875002,-24.391992187500023],[-68.56201171875,-24.74736328125003],[-68.38422851562495,-25.091894531249977],[-68.59208984375002,-25.420019531250034],[-68.41450195312498,-26.153710937500023],[-68.59160156249999,-26.47041015624997],[-68.31865234374999,-26.973242187500006],[-68.59208984375002,-27.140039062499966],[-68.84633789062494,-27.153710937499994],[-69.17441406249998,-27.924707031250037],[-69.65693359374995,-28.413574218749986],[-69.82788085937497,-29.10322265624997],[-70.02680664062501,-29.324023437500017],[-69.95996093749997,-30.078320312500026],[-69.84428710937493,-30.175],[-69.95634765624996,-30.35820312500003],[-70.15322265625,-30.360937499999963],[-70.30908203124994,-31.02265625000004],[-70.51958007812493,-31.1484375],[-70.585205078125,-31.569433593749963],[-70.25439453125,-31.957714843750026],[-70.36376953125,-32.08349609374997],[-70.02197265625,-32.88457031250002],[-70.08486328125002,-33.20175781249998],[-69.81962890624999,-33.28378906249999],[-69.85244140625,-34.224316406250026],[-70.05205078124999,-34.30078124999997],[-70.39316406250003,-35.146875],[-70.55517578125,-35.246875],[-70.41572265625001,-35.52304687500002],[-70.40478515625,-36.06171874999998],[-71.05551757812498,-36.52373046874996],[-71.19218750000002,-36.84365234375004],[-71.16757812499998,-37.76230468749996],[-70.858642578125,-38.60449218750003],[-71.40156249999995,-38.93505859374996],[-71.53945312499997,-39.60244140624995],[-71.71992187499995,-39.63525390624997],[-71.65976562499998,-40.02080078125],[-71.81831054687493,-40.17666015624995],[-71.70898437499997,-40.381738281249994],[-71.93212890624994,-40.69169921874999],[-71.91127929687497,-41.650390624999986],[-71.75,-42.04677734375001],[-72.10820312499993,-42.25185546874995],[-72.14643554687498,-42.990039062499974],[-71.750634765625,-43.237304687499986],[-71.90498046875001,-43.34755859374998],[-71.68007812500002,-43.92958984374998],[-71.82001953124993,-44.38310546875],[-71.21259765624998,-44.44121093750003],[-71.15971679687496,-44.56025390625004],[-71.26113281250002,-44.763085937499966],[-72.06372070312503,-44.771875],[-72.04169921874998,-44.90419921875004],[-71.5962890625,-44.97919921875004],[-71.34931640624995,-45.33193359374995],[-71.74619140624998,-45.57890625],[-71.63154296874998,-45.95371093749998],[-71.87568359374998,-46.160546875],[-71.69965820312501,-46.6513671875],[-71.94023437499999,-46.83125],[-71.90498046875001,-47.201660156250014],[-72.34594726562497,-47.49267578124997],[-72.517919921875,-47.87636718749998],[-72.32832031250001,-48.11005859374998],[-72.35473632812497,-48.36582031250005],[-72.582861328125,-48.47539062499999],[-72.65126953125,-48.84160156249998],[-73.03364257812501,-49.014355468750004],[-73.13525390625,-49.30068359374999],[-73.46157226562497,-49.31386718750001],[-73.55419921875,-49.463867187500014],[-73.50126953124996,-50.125292968750024],[-73.15292968749998,-50.73828125000003],[-72.50981445312496,-50.607519531250034],[-72.34023437499997,-50.68183593749999],[-72.40766601562501,-51.54082031250002],[-71.91865234374995,-51.98955078125004],[-69.96025390624993,-52.00820312500002],[-68.443359375,-52.35664062500004],[-69.24101562499996,-52.20546874999997],[-69.62031249999995,-52.46474609374995],[-70.79511718749995,-52.76875],[-70.99584960937497,-53.77929687499997],[-71.29775390625002,-53.88339843750004],[-72.1744140625,-53.632324218749964],[-72.41289062500002,-53.35019531250004],[-71.94169921874993,-53.23408203125001],[-71.89169921874998,-53.523535156250006],[-71.79145507812498,-53.48457031249997],[-71.74052734374999,-53.232617187499976],[-71.28896484375002,-53.03369140624995],[-71.22714843750003,-52.810644531249984],[-71.38774414062496,-52.76425781250004],[-72.27802734374998,-53.13232421874997],[-72.54892578125,-53.4607421875],[-73.05273437499997,-53.24345703125005],[-72.72768554687502,-52.7623046875],[-72.453466796875,-52.814453124999964],[-72.11757812499997,-52.65],[-71.51127929687502,-52.60537109375],[-72.22568359374998,-52.52099609374995],[-72.43769531250001,-52.62578124999998],[-72.71210937499995,-52.53554687499999],[-73.12246093749997,-53.073925781249976],[-73.64521484374998,-52.83701171875003],[-73.2408203125,-52.707128906250034],[-73.12392578125,-52.487988281249976],[-73.24414062499997,-52.62402343749998],[-73.58569335937503,-52.68574218750003],[-74.01445312499999,-52.63935546875],[-74.26494140624993,-52.1048828125],[-73.83447265625,-52.23398437500001],[-73.68432617187494,-52.07773437499998],[-73.26044921874993,-52.157812500000034],[-72.79501953124998,-51.94951171875005],[-72.57084960937496,-52.200097656249945],[-72.67705078125002,-52.38466796874998],[-72.52333984374997,-52.255468750000034],[-72.62460937499998,-51.94648437499997],[-72.48964843750002,-51.76367187500003],[-72.76123046875,-51.57324218749996],[-73.16875,-51.45390624999998],[-72.60004882812495,-51.79912109374997],[-73.51816406250003,-52.04101562499996],[-73.75263671874993,-51.795507812500034],[-74.19667968749997,-51.68056640624997],[-73.92978515624995,-51.61787109374999],[-73.93950195312499,-51.26630859375005],[-74.81474609374996,-51.06289062499999],[-75.09467773437495,-50.68125],[-74.68574218749995,-50.662011718749945],[-74.77587890625003,-50.46992187499998],[-74.64448242187498,-50.360937499999984],[-74.365576171875,-50.487890625],[-74.13940429687503,-50.81777343749997],[-73.80654296875,-50.93837890625003],[-73.654443359375,-50.49267578125],[-73.97802734375003,-50.827050781249994],[-74.18559570312493,-50.485351562500014],[-73.95034179687497,-50.510546875],[-74.62958984374998,-50.19404296875],[-74.333740234375,-49.97460937499997],[-73.95859374999998,-49.994726562499984],[-74.32392578124995,-49.783398437500004],[-74.29082031249996,-49.604101562499984],[-73.83637695312493,-49.609375],[-74.09443359374993,-49.42968749999998],[-73.93496093749994,-49.02089843750001],[-74.2212890625,-49.500585937500034],[-74.36655273437503,-49.40048828124998],[-74.34101562499998,-48.59570312499998],[-74.00908203124996,-48.475],[-74.47441406249999,-48.46396484374996],[-74.58466796874998,-47.999023437500014],[-73.39106445312498,-48.14589843750001],[-73.60991210937499,-47.993945312500045],[-73.71586914062499,-47.65546875000001],[-73.94086914062498,-47.92939453125004],[-74.22705078124994,-47.96894531250001],[-74.654931640625,-47.702246093750034],[-74.5337890625,-47.567675781249974],[-74.24296874999999,-47.67929687499998],[-74.13408203125002,-47.590820312499986],[-74.48266601562497,-47.43046875],[-74.15839843749998,-47.18251953125002],[-74.31357421874998,-46.78818359374998],[-74.45419921875003,-46.76679687499997],[-74.51225585937496,-46.88515625000002],[-75.00595703125,-46.74111328124998],[-74.98417968750002,-46.51210937499995],[-75.54033203124999,-46.69873046874996],[-75.43037109374995,-46.93457031249996],[-75.70639648437498,-46.70527343749997],[-74.924462890625,-46.159667968750014],[-75.06669921874993,-45.874902343749994],[-74.15786132812497,-45.7671875],[-74.122705078125,-45.49619140625002],[-73.95717773437494,-45.40439453124998],[-73.825,-45.446875],[-74.01992187500002,-46.055859375],[-74.39296875,-46.21738281250005],[-73.96757812500002,-46.15410156250003],[-73.87871093749993,-45.846875],[-73.73525390624994,-45.81171875],[-73.70815429687502,-46.070312500000014],[-73.94863281249997,-46.533105468749966],[-73.845361328125,-46.56601562500002],[-73.59184570312493,-45.89912109375004],[-73.73076171874999,-45.47998046875],[-73.26621093749995,-45.346191406250014],[-72.933837890625,-45.45234374999997],[-73.44497070312497,-45.23818359374995],[-73.36245117187502,-44.97822265625001],[-72.73896484375001,-44.73417968750003],[-72.680078125,-44.59394531249997],[-72.66386718749999,-44.43642578124995],[-73.26508789062498,-44.16865234375001],[-73.22446289062498,-43.89794921875003],[-73.06879882812495,-43.86201171874998],[-72.99658203125,-43.63154296875001],[-73.07597656250002,-43.323632812499994],[-72.75800781249998,-43.039453125],[-72.84804687500002,-42.66914062499997],[-72.77392578125003,-42.505175781250045],[-72.63183593750003,-42.509667968749994],[-72.77324218749996,-42.257714843749994],[-72.63105468749995,-42.199804687500006],[-72.412353515625,-42.388183593750014],[-72.49941406249997,-41.98085937499999],[-72.82407226562503,-41.90878906249996],[-72.36040039062499,-41.64912109375],[-72.31826171875,-41.49902343749997],[-72.54238281250002,-41.690625],[-72.95283203124995,-41.51474609374998],[-73.24179687499995,-41.78085937500002],[-73.62402343750003,-41.77363281249997],[-73.73515625000002,-41.74248046875002],[-73.62392578125,-41.581347656250045],[-73.81074218749995,-41.51748046875001],[-73.96586914062493,-41.118261718750034],[-73.67099609375,-39.96318359374999],[-73.41040039062503,-39.78916015624998],[-73.22646484375002,-39.22441406250003],[-73.52021484375001,-38.509375],[-73.46479492187498,-38.04033203125003],[-73.66181640624998,-37.69853515625003],[-73.66240234375002,-37.341015625000026],[-73.60166015624998,-37.18847656250003],[-73.21596679687502,-37.16689453124998],[-73.11806640624997,-36.68837890625002],[-72.58735351562493,-35.759667968749994],[-72.62392578125002,-35.5857421875],[-72.22377929687494,-35.096191406250014],[-72.00283203124997,-34.16533203125],[-71.66435546875002,-33.65263671875],[-71.74296875,-33.09511718750001],[-71.45224609374998,-32.65957031250001],[-71.70893554687495,-30.62802734375002],[-71.66948242187499,-30.33037109374996],[-71.40039062499997,-30.142968749999966],[-71.31572265624996,-29.649707031250017],[-71.51923828124993,-28.926464843750026],[-71.30673828124998,-28.672460937499963],[-71.08652343749998,-27.814453124999957],[-70.92578125,-27.588671874999974],[-70.64658203124998,-26.329394531250017],[-70.71372070312498,-25.78417968749997],[-70.44536132812502,-25.17265624999999],[-70.57412109374994,-24.644335937500003],[-70.39233398437494,-23.565917968749957],[-70.59335937499995,-23.255468750000034],[-70.56318359374995,-23.057031250000023],[-70.33168945312494,-22.848632812500014],[-70.08002929687501,-21.356835937500037],[-70.19702148437494,-20.725390625],[-70.15742187499995,-19.70585937500003],[-70.41826171874999,-18.345605468750023],[-69.92636718749998,-18.206054687500014],[-69.80258789062498,-17.990234375000014],[-69.85209960937493,-17.70380859375001],[-69.68476562499995,-17.649804687500023],[-69.58642578125,-17.57324218749997],[-69.51093749999998,-17.50605468749997],[-69.31337890624997,-17.943164062500017],[-69.28232421875003,-17.96484375],[-69.09394531249993,-18.05048828125004],[-69.14545898437495,-18.14404296875],[-69.09228515624994,-18.28242187500004],[-69.02680664062493,-18.65625],[-68.97885742187503,-18.81298828125003],[-68.96831054687502,-18.967968749999983],[-68.85795898437499,-19.09335937500005],[-68.62055664062495,-19.29667968749999],[-68.54785156249997,-19.341113281249974],[-68.49199218749996,-19.381933593750034],[-68.47016601562495,-19.409960937499974],[-68.46289062499997,-19.43281250000001],[-68.57529296874998,-19.56015625000002],[-68.69829101562499,-19.721093750000037],[-68.69619140625,-19.74072265625003],[-68.57827148437494,-19.856542968750006],[-68.559375,-19.902343750000014],[-68.56069335937502,-19.96708984374996],[-68.75932617187499,-20.115527343750003],[-68.74516601562493,-20.45859375],[-68.48432617187498,-20.628417968749957],[-68.55825195312497,-20.90195312499999],[-68.197021484375,-21.30029296874997],[-68.18642578124997,-21.618554687499966],[-67.88173828124997,-22.493359375000026],[-67.87944335937496,-22.822949218750026],[-67.57993164062495,-22.89169921874999],[-67.36225585937493,-22.85517578125001],[-67.19487304687493,-22.821679687500037]]]]},"properties":{"name":"Chile","childNum":26}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[110.88876953125006,19.99194335937497],[111.01367187500003,19.65546875000001],[110.64091796875002,19.291210937499955],[110.45126953125012,18.747949218750023],[110.06738281249997,18.447558593750045],[109.51933593750007,18.21826171875003],[108.7015625,18.535253906250034],[108.66552734375003,19.304101562499994],[109.27666015625002,19.761132812500023],[109.17744140625004,19.768457031250023],[109.26347656250007,19.882666015625006],[110.1715820312501,20.053710937500057],[110.58818359375002,19.976367187500017],[110.6517578125,20.137744140625017],[110.88876953125006,19.99194335937497]]],[[[110.38515625000005,21.093164062499966],[110.52158203125006,21.083105468750063],[110.50390625000003,20.96772460937501],[110.28095703125004,21.001171874999983],[110.38515625000005,21.093164062499966]]],[[[112.64375,21.63964843750003],[112.525,21.62304687500003],[112.64765625000004,21.710253906250017],[112.64375,21.63964843750003]]],[[[112.79023437500004,21.601855468750045],[112.78203125000007,21.772265625000045],[112.86259765625002,21.75263671875004],[112.79023437500004,21.601855468750045]]],[[[118.1830078125,24.496289062499983],[118.0905273437501,24.446142578125063],[118.10380859375002,24.552343750000034],[118.1830078125,24.496289062499983]]],[[[119.82089843750006,25.45698242187504],[119.70029296875012,25.432714843750063],[119.72255859375005,25.638818359375023],[119.83837890625003,25.591064453125],[119.82089843750006,25.45698242187504]]],[[[121.2513671875,28.086425781250057],[121.13154296875004,28.062597656250006],[121.20546875,28.204394531250017],[121.2513671875,28.086425781250057]]],[[[122.29589843750003,29.96342773437499],[122.02402343750012,30.01333007812505],[121.96943359375004,30.143115234375017],[122.28447265625007,30.068017578124994],[122.29589843750003,29.96342773437499]]],[[[121.86269531250005,31.492285156249977],[121.519921875,31.549609375000017],[121.2111328125001,31.80537109375001],[121.86269531250005,31.492285156249977]]],[[[130.52695312500012,42.535400390625],[130.24667968750012,42.744824218749955],[130.24033203125006,42.891796874999955],[129.89824218750002,42.998144531250034],[129.69785156250012,42.448144531249994],[129.3136718750001,42.41357421874997],[128.92343750000006,42.038232421874966],[128.04521484375007,41.9875],[128.28925781250004,41.60742187500006],[128.14941406249997,41.38774414062496],[127.17968750000003,41.531347656250006],[126.95478515625004,41.76948242187501],[126.74306640625,41.724853515625],[125.98906250000002,40.904638671875034],[124.8893554687501,40.459814453125006],[124.36210937500002,40.004052734374994],[124.10576171875002,39.84101562499998],[123.65087890625003,39.881591796875],[122.8400390625001,39.600830078125],[121.98232421875,39.05317382812498],[121.67724609374997,39.00341796875006],[121.64990234375003,38.865087890625034],[121.16357421874997,38.73164062500001],[121.10673828125002,38.920800781249994],[121.6798828125001,39.10869140625002],[121.62763671875004,39.22016601562498],[121.81845703125006,39.38652343750002],[121.27548828125006,39.38476562500003],[121.26748046875,39.544677734375],[121.51757812499997,39.638964843750045],[121.51738281250002,39.84482421875006],[121.8009765625001,39.950537109375006],[122.27500000000012,40.541845703125034],[121.83486328125005,40.97426757812502],[121.72929687500002,40.84614257812504],[121.1745117187501,40.901269531249994],[120.47910156250006,40.23095703125003],[119.39111328125003,39.75249023437499],[118.976953125,39.182568359374955],[118.29785156249997,39.067089843749955],[118.04091796875,39.22675781249998],[117.86572265625003,39.191259765625034],[117.61669921875003,38.852880859375034],[117.5578125000001,38.625146484374994],[117.76669921875012,38.311669921874994],[118.01494140625007,38.18339843749996],[118.94003906250006,38.04277343750002],[119.08916015625007,37.70073242187496],[118.95263671875003,37.33115234374998],[119.28740234375002,37.138281250000034],[119.76054687500007,37.15507812499999],[120.31152343750003,37.62270507812505],[120.2572265625,37.67900390624996],[120.75,37.83393554687501],[121.64023437500012,37.46035156250002],[122.05664062500003,37.528906250000034],[122.66699218750003,37.40283203125003],[122.4466796875,37.06811523437503],[122.51972656250004,36.94682617187502],[122.34091796875012,36.83222656250004],[121.93271484375006,36.95947265625003],[121.05380859375006,36.61137695312499],[120.81083984375007,36.6328125],[120.89580078125007,36.44414062500002],[120.71152343750006,36.41328125000004],[120.6378906250001,36.129931640625045],[120.39306640625003,36.053857421874994],[120.32773437500006,36.228173828124994],[120.18330078125004,36.20244140624999],[120.094140625,36.11889648437503],[120.28476562500006,35.98442382812499],[119.42968749999997,35.301416015624994],[119.16533203125002,34.84882812499998],[119.20097656250002,34.748437499999966],[120.26669921875006,34.274023437500034],[120.87109374999997,33.016503906249994],[120.8532226562501,32.66137695312503],[121.34169921875005,32.42504882812503],[121.40390625000006,32.20625],[121.85634765625,31.816455078125045],[121.86630859375006,31.703564453124955],[121.68085937500004,31.71215820312503],[121.351953125,31.85878906250005],[120.97353515625,31.86938476562497],[120.52011718750006,32.10585937500002],[120.03593750000002,31.93627929687503],[120.7155273437501,31.983740234375006],[120.7877929687501,31.81977539062501],[121.66064453124997,31.319726562499994],[121.87792968750003,30.91699218750003],[121.41894531249997,30.789794921875057],[120.8214843750001,30.354638671875023],[120.44980468750006,30.38784179687505],[120.19462890625002,30.241308593750034],[120.49453125,30.303076171875006],[120.63339843750006,30.133154296875034],[121.25800781250004,30.30410156250005],[121.67792968750004,29.979101562500006],[122.08291015625005,29.870361328125057],[121.50625,29.484570312499955],[121.94121093750002,29.605908203124983],[121.91777343750007,29.13500976562497],[121.71748046875004,29.25634765625],[121.48710937500007,29.193164062500017],[121.67968749999997,28.953125],[121.54003906250003,28.931884765625],[121.6625,28.851416015625034],[121.47519531250006,28.64140625],[121.60996093750006,28.29213867187505],[121.27226562500002,28.222119140624983],[121.14570312500004,28.32666015624997],[120.95859375000006,28.037011718750023],[120.74765625000006,28.00996093750001],[120.83300781249997,27.891455078125034],[120.58750000000012,27.580761718749983],[120.60751953125012,27.41240234374996],[120.2787109375,27.097070312500023],[120.08671875000007,26.67158203125004],[119.88222656250005,26.610449218750006],[119.82421874999997,26.84638671875001],[119.71044921874997,26.728662109375023],[119.58818359375002,26.784960937500045],[119.8810546875001,26.33417968750004],[119.46308593750004,26.05468750000003],[119.13945312500007,26.12177734375001],[119.33203124999997,25.94873046875003],[119.61875000000012,26.003564453124994],[119.53945312500005,25.59125976562504],[119.6224609375,25.391162109375017],[119.180078125,25.449804687499977],[119.285546875,25.232226562500074],[118.97753906249997,25.209277343750017],[118.90908203125005,24.92890625000001],[118.63691406250004,24.835546874999977],[118.65703125000002,24.621435546874977],[118.0871093750001,24.627001953125045],[118.00595703125006,24.48198242187499],[117.84267578125005,24.47431640625004],[118.0560546875,24.24609374999997],[117.62822265625002,23.836718750000074],[117.46640625000012,23.84057617187497],[117.36767578124997,23.58862304687497],[117.29082031250007,23.71435546875],[117.08251953124997,23.578759765625023],[116.91064453124997,23.646679687499983],[116.86093750000006,23.453076171874983],[116.62939453124997,23.353857421875034],[116.69882812500006,23.277783203124983],[116.53828125000004,23.17968749999997],[116.47070312499997,22.945898437500034],[116.25185546875005,22.981347656249994],[115.85214843750006,22.801562500000045],[115.64042968750002,22.853417968750023],[115.49833984375002,22.718847656250063],[115.19580078125003,22.81728515625005],[114.85380859375007,22.616796875000063],[114.65166015625002,22.755273437500023],[114.55419921874997,22.52890625],[114.26601562500005,22.540966796874983],[114.01542968750007,22.51191406250001],[113.61962890624997,22.861425781249977],[113.6205078125,23.12749023437499],[113.51972656250004,23.102099609375074],[113.33105468749997,22.912011718749966],[113.55302734375002,22.594042968750045],[113.54912109375002,22.225195312500034],[113.14902343750012,22.075],[113.08876953125,22.207958984374983],[112.95390625000007,21.907324218750034],[112.80859374999997,21.944628906250074],[112.58632812500005,21.77685546875],[112.35966796875007,21.97802734375003],[112.30498046875002,21.74169921875003],[111.94394531250012,21.84965820312499],[111.60273437500004,21.55908203125003],[111.01689453125007,21.51171874999997],[110.56718750000002,21.21406250000001],[110.41093750000007,21.33813476562497],[110.15400390625004,20.944628906250017],[110.36542968750004,20.837597656249955],[110.31308593750012,20.67167968749999],[110.51152343750007,20.51826171875001],[110.34472656249997,20.29482421875005],[109.88251953125004,20.364062500000045],[109.96835937500006,20.448144531250023],[109.66259765625003,20.91689453125005],[109.68125000000012,21.13164062499999],[109.93076171875012,21.480566406250034],[109.6869140625,21.52460937500004],[109.56640624999997,21.690576171874994],[109.54404296875012,21.537939453125006],[109.14863281250004,21.425537109375],[109.1017578125001,21.59047851562505],[108.77167968750004,21.63046875],[108.59375,21.901025390624994],[108.47988281250005,21.904638671875006],[108.50214843750004,21.633447265624994],[108.32480468750006,21.693505859374994],[108.24628906250004,21.55839843749999],[107.97265624999997,21.507958984375023],[107.75927734374997,21.655029296875057],[107.35117187500012,21.60888671874997],[106.97099609375002,21.923925781250034],[106.66357421875003,21.97890625000005],[106.55039062500006,22.501367187499994],[106.78027343749997,22.778906250000034],[106.54179687500007,22.908349609375023],[106.2790039062501,22.857470703125045],[106.14843749999997,22.970068359375006],[105.8429687500001,22.922802734374955],[105.27539062500003,23.34521484375003],[104.86474609375003,23.136376953125023],[104.68730468750002,22.822216796874983],[104.37177734375004,22.704052734374983],[104.14306640624997,22.800146484375006],[103.94150390625006,22.540087890625045],[103.62021484375006,22.782031250000045],[103.49296875000007,22.587988281250034],[103.32666015625003,22.769775390625057],[102.98193359374997,22.4482421875],[102.47089843750004,22.75092773437501],[102.40644531250004,22.70800781249997],[102.2370117187501,22.466015624999983],[102.1759765625001,22.414648437500006],[102.12744140624997,22.379199218750045],[101.84179687500003,22.38847656249999],[101.75996093750004,22.490332031250034],[101.73876953124997,22.495263671874994],[101.70751953125003,22.486572265625],[101.67148437500006,22.462304687500023],[101.64619140625004,22.405419921874966],[101.61992187500002,22.32744140624999],[101.56787109374997,22.27636718749997],[101.52451171875006,22.25366210937497],[101.7365234375001,21.826513671874977],[101.74394531250007,21.77797851562505],[101.74726562500004,21.605761718750045],[101.72294921875007,21.31494140625003],[101.80058593750007,21.212597656249983],[101.78349609375007,21.204150390625017],[101.728125,21.156396484374994],[101.7047851562501,21.15014648437503],[101.54238281250005,21.23427734375005],[101.2814453125001,21.184130859375045],[101.24785156250007,21.197314453125045],[101.22441406250002,21.223730468750034],[101.21181640625,21.278222656250023],[101.2199218750001,21.34243164062505],[101.17539062500006,21.407519531250074],[101.19667968750005,21.522070312500063],[101.1388671875001,21.567480468749977],[101.07978515625004,21.75585937499997],[100.60458984375012,21.471777343750006],[100.14765625000004,21.480517578125017],[99.94072265625007,21.75874023437504],[99.9176757812501,22.02802734375001],[99.19296875000006,22.12597656249997],[99.50712890625002,22.959130859374994],[99.41806640625006,23.069238281250023],[98.86376953125003,23.191259765625034],[98.8322265625001,23.624365234374977],[98.67675781250003,23.905078125000045],[98.83505859375006,24.121191406250034],[98.2125,24.110644531250017],[97.56455078125012,23.911035156250023],[97.7082031250001,24.228759765625],[97.53144531250004,24.49169921875003],[97.58330078125002,24.77480468750005],[97.73789062500006,24.869873046875057],[97.8195312500001,25.251855468749994],[98.01074218749997,25.292529296875017],[98.14287109375007,25.571093750000017],[98.33378906250007,25.586767578125006],[98.65625,25.86357421874999],[98.56406250000006,26.072412109374994],[98.68554687499997,26.189355468750023],[98.7384765625001,26.785742187500006],[98.65117187500007,27.572460937499983],[98.4525390625,27.6572265625],[98.29882812499997,27.550097656250045],[98.06162109375012,28.185888671874977],[97.59921875000006,28.51704101562504],[97.53789062500002,28.510205078124983],[97.43144531250002,28.353906250000023],[97.35644531249997,28.254492187500006],[97.32158929493812,28.217097107438057],[97.3027336276825,28.08710519614969],[97.34382779482424,27.982305259167095],[97.04929369561631,27.76000444316393],[96.96494598325154,27.699301564540924],[96.19423412199573,28.04146177926422],[95.73730002295082,28.117613231051525],[95.11298892962586,27.748338353239472],[94.07167814294401,27.588707868507477],[93.61247595136224,27.323800298697016],[93.30681393470121,26.786120363519142],[92.74319481218781,26.833531317384058],[92.04974640832253,26.874866505386724],[92.07342257335648,26.915311275859864],[92.06813426293174,26.9752569185349],[92.02985139563152,27.03987087331446],[91.99856592104459,27.079255842602592],[91.99177981607339,27.100605151743654],[92.0025114452454,27.147290053160265],[92.03101585307499,27.214271359861193],[92.08387457645458,27.29090135496722],[92.04520857607581,27.364442429033787],[91.99069061380867,27.450181624174498],[91.95099838734396,27.45828799115413],[91.85276579410389,27.438593286730903],[91.74366351462741,27.442853010105477],[91.59505352446729,27.557262710287986],[91.63193359375012,27.759960937499983],[91.64189453125002,27.923242187500023],[91.36259958579089,28.02438066407592],[91.27304687500012,28.078369140625],[91.22587890625007,28.071240234374983],[91.07773437500012,27.974462890624977],[91.02080078125002,27.970068359374977],[90.71572265625,28.071728515624983],[90.63007812500004,28.078564453124955],[90.47734375000007,28.07084960937499],[90.3527343750001,28.080224609375023],[90.33310546875012,28.093994140625],[90.36298828125004,28.21650390625001],[90.34824218750006,28.24394531249999],[90.22080078125006,28.27773437500005],[90.10449218749997,28.302050781250017],[89.98105468750006,28.311181640625023],[89.8978515625,28.29414062500001],[89.81689453125003,28.25629882812501],[89.74980468750002,28.18818359375001],[89.65273437500005,28.158300781250034],[89.53691406250007,28.10742187499997],[89.4806640625001,28.059960937499994],[88.89140625000002,27.316064453124966],[88.83251953125003,27.36284179687499],[88.7648437500001,27.429882812499983],[88.74902343749997,27.521875],[88.82988281250002,27.76738281249999],[88.84882812500004,27.86865234375],[88.80371093750003,28.006933593750034],[88.57792968750002,28.093359375000034],[88.42597656250004,28.01166992187501],[88.27519531250007,27.968847656250006],[88.14111328125003,27.94892578125001],[88.10898437500006,27.933007812499966],[88.10976562500005,27.870605468750057],[87.8607421875,27.886083984375006],[87.62255859374997,27.81518554687503],[87.29072265625004,27.821923828124994],[87.14140625000002,27.838330078124955],[87.02011718750006,27.928662109374983],[86.9337890625001,27.96845703125001],[86.84238281250012,27.99916992187505],[86.750390625,28.022070312500006],[86.71962890625005,28.070654296875034],[86.69052734375006,28.09492187500001],[86.61445312500004,28.10302734374997],[86.55449218750007,28.08520507812497],[86.51689453125007,27.963525390624966],[86.40869140625003,27.928662109374983],[86.32861328124997,27.95952148437496],[86.2179687500001,28.022070312500006],[86.13701171875002,28.114355468750063],[86.07871093750006,28.08359375],[86.0641601562501,27.934716796874966],[85.99453125000005,27.910400390625],[85.95410156249997,27.92822265624997],[85.92167968750002,27.989697265624983],[85.84023437500005,28.135351562499977],[85.75947265625004,28.220654296874955],[85.67832031250012,28.277441406249977],[85.41064453125003,28.27602539062505],[85.21210937500004,28.292626953124966],[85.1224609375,28.315966796875017],[85.08857421875004,28.37226562500001],[85.121484375,28.484277343750023],[85.16015624999997,28.571875],[85.15908203125,28.592236328124983],[85.1263671875,28.602636718750063],[85.06914062500007,28.60966796874999],[84.85507812500006,28.553613281250023],[84.796875,28.560205078125023],[84.2287109375001,28.911767578124966],[84.17558593750002,29.036376953125057],[84.12783203125005,29.15629882812496],[84.10136718750002,29.21997070312497],[84.02197265624997,29.25385742187504],[83.93593750000005,29.27949218750001],[83.58349609375003,29.18359375000003],[83.15546875000004,29.612646484375034],[82.22070312500003,30.063867187500023],[82.04335937500005,30.326757812500034],[81.8548828125,30.362402343750006],[81.64189453125007,30.3875],[81.4171875000001,30.33759765625001],[81.25507812500004,30.09331054687499],[81.17714843750005,30.039892578125034],[80.98544921875006,30.23710937499999],[80.87353515625003,30.290576171875045],[80.19121093750002,30.56840820312496],[80.20712890625006,30.683740234375023],[79.92451171875004,30.888769531250034],[79.66425781250004,30.96523437499999],[79.38847656250007,31.064208984375],[79.10712890625004,31.402636718750017],[78.74355468750005,31.323779296875017],[78.7550781250001,31.55029296875],[78.69345703125006,31.740380859374994],[78.72558593750003,31.983789062500023],[78.49589843750002,32.21577148437504],[78.4552734375001,32.30034179687502],[78.41748046874997,32.466699218749994],[78.38964843749997,32.51987304687498],[78.73671875,32.55839843750002],[78.75351562500012,32.49926757812506],[78.91894531249997,32.35820312500002],[79.16992187500003,32.497216796874994],[79.14550781250003,33.00146484375006],[79.10283203125007,33.05253906249996],[79.13515625000005,33.17192382812496],[79.1125,33.22626953125001],[78.94843750000004,33.346533203125006],[78.86503906250002,33.43110351562501],[78.78378906250006,33.80878906250004],[78.72666015625006,34.013378906249955],[78.97060546875,34.22822265625004],[78.93642578125,34.35195312500002],[78.86484375000006,34.39033203125001],[78.32695312500007,34.60639648437498],[78.15849609375002,34.94648437499998],[78.07578125000006,35.13491210937502],[78.0426757812501,35.47978515625002],[77.79941406250006,35.49589843750002],[77.44648437500004,35.47558593750006],[77.29482421875005,35.508154296875034],[77.09003906250004,35.55205078124999],[76.87890625000003,35.61328125000003],[76.76689453125002,35.661718750000034],[76.72753906250003,35.67866210937504],[76.63183593749997,35.729394531249966],[76.56347656249997,35.77299804687499],[76.55126953124997,35.887060546875034],[76.50205078125006,35.87822265625002],[76.38574218750003,35.837158203125],[76.25166015625004,35.8109375],[76.17783203125012,35.810546875],[76.14785156250005,35.82900390625002],[76.07089843750006,35.983007812500034],[75.91230468750004,36.048974609374994],[75.97441406250007,36.38242187500006],[75.9518554687501,36.458105468750034],[75.9330078125,36.52158203124998],[75.840234375,36.64970703124999],[75.7721679687501,36.694921875000034],[75.6671875000001,36.741992187500045],[75.57373046874997,36.75932617187502],[75.46025390625002,36.725048828124955],[75.42421875000005,36.73823242187498],[75.37685546875,36.88369140625005],[75.34667968749997,36.913476562499966],[75.05390625000004,36.98715820312498],[74.94912109375,36.96835937500006],[74.88925781250006,36.95244140625002],[74.69218750000007,37.035742187500006],[74.60058593749997,37.03666992187502],[74.54140625,37.02216796875001],[74.52646484375006,37.03066406250005],[74.49794921875,37.057226562500034],[74.37617187500004,37.13735351562502],[74.37216796875006,37.15771484375],[74.558984375,37.23662109374999],[74.66894531250003,37.266699218750006],[74.72666015625006,37.29072265625001],[74.7389648437501,37.28564453125003],[74.76738281250002,37.249169921874966],[74.840234375,37.22504882812504],[74.89130859375004,37.231640624999955],[75.11875,37.38569335937498],[74.8942382812501,37.60141601562498],[74.81230468750002,38.46030273437498],[74.27744140625,38.659765625000034],[74.02558593750004,38.53984375000002],[73.80166015625,38.60688476562501],[73.69609375000007,38.85429687499996],[73.8052734375,38.968652343749994],[73.60732421875,39.229199218749955],[73.63632812500006,39.396679687499955],[73.63164062500007,39.44887695312502],[73.82294921875004,39.48896484375004],[73.90712890625,39.578515624999966],[73.9146484375,39.60649414062499],[73.88251953125004,39.71455078124998],[73.83974609375005,39.76284179687505],[73.8353515625,39.800146484375006],[73.85625,39.828662109375045],[73.88457031250002,39.87792968750006],[73.93876953125002,39.97880859374999],[73.99160156250005,40.04311523437502],[74.83046875,40.32851562499999],[74.80126953124997,40.428515625000045],[74.83515625000004,40.482617187499955],[74.865625,40.493505859375034],[75.0044921875,40.44951171874996],[75.11132812499997,40.4541015625],[75.24101562500002,40.48027343750002],[75.52080078125002,40.627539062500006],[75.55556640625,40.625195312499955],[75.6771484375,40.305810546874994],[75.87197265625,40.30322265625],[76.25830078124997,40.43076171875006],[76.3185546875001,40.352246093749955],[76.39638671875005,40.389794921874966],[76.4801757812501,40.44951171874996],[76.57792968750002,40.577880859375],[76.62216796875006,40.66235351562497],[76.6398437500001,40.74223632812499],[76.66113281249997,40.77963867187498],[76.70839843750005,40.818115234375],[76.82402343750002,40.982324218749966],[76.90771484374997,41.02416992187497],[76.98662109375002,41.039160156250006],[77.58173828125004,40.99277343750006],[77.71933593750012,41.024316406249994],[77.81523437500002,41.05561523437498],[77.9564453125,41.05068359375005],[78.1234375,41.07563476562498],[78.34628906250012,41.28144531249998],[78.36240234375012,41.37163085937496],[78.44287109374997,41.41752929687499],[78.742578125,41.56005859375],[79.29355468750006,41.78281249999998],[79.76611328124997,41.89887695312501],[79.84042968750012,41.99575195312502],[79.90966796875003,42.014990234375034],[80.21621093750005,42.03242187500004],[80.23515625000007,42.04345703124997],[80.24619140625012,42.05981445312503],[80.209375,42.190039062500006],[80.20224609375012,42.73447265624998],[80.53896484375005,42.873486328124955],[80.39023437500006,43.043115234374966],[80.78574218750006,43.16157226562504],[80.35527343750002,44.09726562500006],[80.48154296875006,44.71464843749999],[79.871875,44.88378906249997],[80.05917968750012,45.006445312500006],[81.69199218750012,45.34936523437497],[81.94492187500006,45.16083984375001],[82.26660156249997,45.21909179687498],[82.52148437500003,45.12548828125],[82.61162109375007,45.424267578124955],[82.31523437500002,45.59492187499998],[83.02949218750004,47.18593750000002],[84.016015625,46.97050781250002],[84.66660156250006,46.97236328125004],[84.78613281249997,46.83071289062505],[85.484765625,47.06352539062496],[85.65664062500005,47.254638671875],[85.52597656250006,47.915625],[85.7494140625,48.38505859374999],[86.54941406250012,48.52861328125002],[86.8083007812501,49.04970703125002],[87.32285156250012,49.085791015625006],[87.41669921875004,49.07661132812501],[87.5158203125001,49.122412109375006],[87.7625,49.16582031249996],[87.81425781250002,49.162304687499955],[87.87216796875012,49.000146484374966],[87.74316406250003,48.88164062499999],[87.83183593750007,48.79165039062505],[88.02792968750006,48.735595703125],[88.06005859375003,48.707177734374966],[87.9796875000001,48.55512695312498],[88.30996093750005,48.47207031250002],[88.41396484375,48.403417968750006],[88.51708984374997,48.384472656249955],[88.56679687500005,48.31743164062496],[88.57597656250007,48.220166015624955],[88.68183593750004,48.170556640624994],[88.83828125000005,48.101708984374994],[88.91777343750007,48.089013671874966],[89.04765625000007,48.002539062500034],[89.47919921875004,48.02905273437503],[89.5609375,48.00395507812496],[89.778125,47.82700195312498],[89.83134765625002,47.82329101562502],[89.91044921875007,47.844335937500034],[89.95869140625004,47.88632812499998],[90.02792968750012,47.877685546875],[90.1032226562501,47.74541015624996],[90.19101562500012,47.70209960937501],[90.31328125000007,47.67617187499999],[90.33066406250006,47.655175781249966],[90.42519531250005,47.50410156250001],[90.49619140625012,47.28515625],[90.64335937500007,47.10029296874998],[90.71552734375004,47.00385742187498],[90.7990234375001,46.98515624999999],[90.86992187500002,46.95449218750005],[90.91054687500005,46.88325195312501],[90.9857421875,46.7490234375],[90.9115234375,46.270654296874994],[90.94755859375002,46.17729492187499],[90.99677734375004,46.10498046875],[91.00175781250007,46.03579101562502],[90.6618164062501,45.525244140625006],[90.87724609375002,45.19609375000002],[91.05,45.217431640624994],[91.584375,45.07651367187498],[92.42382812499997,45.008935546874994],[92.57890625000002,45.01098632812506],[92.78789062500007,45.035742187500034],[93.51621093750012,44.944482421874994],[94.71201171875012,44.35083007812503],[95.35029296875004,44.27807617187503],[95.32558593750005,44.03935546874999],[95.52558593750004,43.953955078125006],[95.85957031250004,43.27597656249998],[96.38544921875004,42.72036132812502],[97.20566406250012,42.78979492187506],[99.46787109375012,42.568212890625034],[99.98378906250005,42.67734375000006],[100.08632812500005,42.67075195312506],[100.51904296875003,42.61679687499998],[101.09199218750004,42.55131835937496],[101.49531250000004,42.53876953124998],[101.57910156249997,42.52353515624998],[101.65996093750002,42.50004882812499],[101.97294921875002,42.21586914062502],[102.15664062500005,42.158105468749966],[102.57519531249997,42.09208984375002],[103.07285156250006,42.00595703125006],[103.7111328125001,41.75131835937506],[103.99726562500004,41.796972656250034],[104.30517578124997,41.84614257812501],[104.49824218750004,41.87700195312499],[104.49824218750004,41.65869140625],[104.86035156250003,41.64375],[104.98203125000012,41.59550781250002],[105.05058593750002,41.61591796875001],[105.1154296875001,41.66328124999998],[105.19707031250002,41.738037109375],[105.31435546875005,41.77089843750005],[105.86757812500005,41.993994140625034],[106.77001953125003,42.28872070312502],[108.17119140625002,42.44731445312502],[108.68730468750002,42.416113281250034],[109.33984374999997,42.43837890625005],[109.44316406250002,42.455957031249994],[110.40039062499997,42.77368164062497],[111.00722656250005,43.34140624999998],[111.878125,43.68017578125],[111.93173828125012,43.81494140625],[111.40224609375005,44.367285156250006],[111.89804687500006,45.064062500000034],[112.03261718750005,45.08164062500006],[112.11289062500006,45.06293945312498],[112.41132812500004,45.05820312499998],[112.49931640625002,45.01093750000004],[112.59677734375006,44.917675781249955],[112.7067382812501,44.883447265624994],[113.04941406250006,44.81035156250002],[113.3009765625001,44.79165039062502],[113.50791015625006,44.76235351562502],[113.58701171875006,44.745703125],[113.65263671875002,44.76347656249999],[113.87705078125012,44.89619140625001],[114.03027343749997,44.942578124999955],[114.08027343750004,44.97114257812501],[114.41914062500004,45.20258789062501],[114.56015625000012,45.38999023437498],[114.73876953124997,45.41962890624998],[114.91923828125007,45.378271484375006],[115.16259765624997,45.390234375000034],[115.6810546875,45.45825195312503],[116.19765625,45.739355468750006],[116.240625,45.795996093750006],[116.22910156250012,45.84575195312502],[116.21298828125012,45.88691406249998],[116.56259765625012,46.28979492187497],[116.85908203125004,46.387939453125],[117.3333984375,46.36201171875004],[117.35693359375003,46.391308593749955],[117.35634765625,46.436669921874966],[117.39218750000012,46.53759765625003],[117.40556640625007,46.57089843750006],[117.43808593750012,46.58623046874999],[117.546875,46.58828125000005],[117.74121093749997,46.51816406250006],[118.07128906249997,46.666601562500006],[118.15683593750006,46.678564453125034],[118.30869140625012,46.71704101562497],[118.40439453125006,46.70317382812499],[118.58046875,46.69189453125],[118.64873046875002,46.70166015625006],[118.72294921875007,46.69189453125],[118.8439453125001,46.76020507812498],[118.95712890625006,46.73486328124997],[119.16210937499997,46.638671875],[119.33183593750002,46.61381835937499],[119.47402343750005,46.626660156249955],[119.62021484375006,46.60395507812504],[119.70664062500006,46.60600585937502],[119.74746093750005,46.62719726562497],[119.86718750000003,46.67216796874999],[119.89785156250005,46.857812499999966],[119.71113281250004,47.15],[119.08193359375,47.654150390625034],[119.01757812500003,47.68535156249999],[118.88027343750005,47.72509765625],[118.75996093750004,47.75761718749996],[118.69052734375012,47.822265625],[118.56777343750005,47.94326171875005],[118.49843750000005,47.98398437499998],[117.76835937500002,47.98789062499998],[117.3507812500001,47.65219726562498],[117.28593750000002,47.666357421875034],[117.06972656250005,47.80639648437506],[116.95166015624997,47.836572265624966],[116.90117187500007,47.85307617187496],[116.76054687500002,47.869775390624994],[116.65195312500012,47.86450195312497],[116.51347656250007,47.839550781249955],[116.37822265625002,47.84404296874999],[116.31718750000002,47.85986328125],[116.2311523437501,47.85820312500002],[116.07480468750012,47.78955078125],[115.99384765625004,47.71132812500005],[115.89824218750002,47.68691406250005],[115.6164062500001,47.874804687500045],[115.52509765625004,48.13085937499997],[115.63945312500007,48.18623046874998],[115.785546875,48.24824218750001],[115.7965820312501,48.346337890624994],[115.7916992187501,48.455712890624994],[115.8205078125001,48.57724609375006],[116.6833007812501,49.82377929687499],[117.8734375,49.51347656250002],[118.4515625,49.84448242187503],[119.25986328125012,50.06640625000003],[119.34628906250012,50.278955078124994],[119.16367187500006,50.40600585937503],[120.06689453125003,51.60068359375006],[120.74980468750007,52.096533203125006],[120.65615234375,52.56665039062503],[120.0675781250001,52.632910156250034],[120.09453125000007,52.787207031250034],[120.98544921875012,53.28457031250002],[123.6078125,53.546533203124994],[124.81230468750002,53.133837890625045],[125.075,53.20366210937496],[125.64902343750012,53.042285156250045],[126.34169921875,52.36201171875001],[126.92480468749997,51.10014648437496],[127.30703125000005,50.70795898437501],[127.33720703125007,50.35014648437502],[127.590234375,50.20898437500003],[127.55078124999997,49.801806640625045],[127.99960937500006,49.56860351562506],[128.70400390625,49.60014648437499],[129.0651367187501,49.374658203124966],[129.49814453125012,49.38881835937502],[130.1959960937501,48.89165039062499],[130.553125,48.861181640625006],[130.5521484375,48.602490234374955],[130.80429687500012,48.34150390624998],[130.7326171875001,48.01923828124998],[130.96191406249997,47.70932617187498],[132.47626953125004,47.714990234374994],[132.7072265625001,47.94726562500006],[133.14404296875003,48.10566406249998],[133.46835937500006,48.09716796875003],[134.29335937500005,48.37343750000002],[134.66523437500004,48.25390625],[134.56601562500006,48.02250976562502],[134.75234375,47.71542968749998],[134.1676757812501,47.30219726562501],[133.86132812500003,46.24775390625004],[133.43642578125,45.60468750000004],[133.18603515625003,45.49482421875004],[133.1134765625001,45.130712890625006],[132.93603515624997,45.029931640624994],[131.85185546875002,45.32685546875001],[131.44687500000012,44.984033203124966],[130.9816406250001,44.844335937500034],[131.2552734375,44.07158203124999],[131.25732421875003,43.378076171874994],[131.06855468750004,42.90224609375005],[130.42480468749997,42.72705078124997],[130.52695312500012,42.535400390625]]],[[[113.9977539062501,22.210498046875045],[113.83886718749997,22.24169921875003],[114.04394531250003,22.33339843750005],[113.9977539062501,22.210498046875045]]],[[[114.01542968750007,22.51191406250001],[114.26601562500005,22.540966796874983],[114.26796875,22.295556640624966],[113.93730468750002,22.364990234375],[114.01542968750007,22.51191406250001]]],[],[[[118.4074218750001,24.522119140624994],[118.43271484375006,24.414355468750074],[118.29511718750004,24.436328125000017],[118.4074218750001,24.522119140624994]]],[[[121.00878906249997,22.62036132812497],[120.83984375000003,21.925],[120.2328125,22.71791992187505],[120.0724609375001,23.149755859375006],[120.13212890625007,23.652929687500034],[121.040625,25.032812500000034],[121.59365234375,25.275341796874983],[121.92900390625002,24.973730468749977],[121.39746093750003,23.172509765625023],[121.00878906249997,22.62036132812497]]]]},"properties":{"name":"China","childNum":15}},{"geometry":{"type":"Polygon","coordinates":[[[-5.262304687499977,10.319677734374991],[-4.72177734374992,9.756542968750026],[-4.625830078125006,9.713574218749969],[-4.526611328124943,9.723486328125034],[-4.406201171874926,9.647998046875031],[-4.332226562499955,9.645703125],[-4.18115234375,9.78173828125],[-3.790625,9.917187499999983],[-3.581152343749977,9.924316406250014],[-3.289697265625023,9.882226562500051],[-3.223535156249937,9.895458984374997],[-3.160693359374932,9.849169921874974],[-3.095800781249949,9.752099609375009],[-3.042626953124937,9.72089843750004],[-2.988281249999972,9.687353515624963],[-2.900878906249943,9.534619140625026],[-2.875146484374937,9.500927734374997],[-2.816748046874949,9.425830078124974],[-2.766601562499943,9.424707031250009],[-2.7171875,9.457128906250048],[-2.695849609374989,9.481347656250009],[-2.686132812499977,9.43173828125002],[-2.705761718749983,9.351367187499989],[-2.74692382812492,9.04511718750004],[-2.689892578124955,9.02509765625004],[-2.649218750000017,8.956591796875031],[-2.600390625000017,8.800439453125023],[-2.505859375000028,8.208740234375],[-2.538281249999955,8.171630859374986],[-2.61171875,8.147558593749963],[-2.619970703125006,8.12109375],[-2.600976562499937,8.082226562499983],[-2.613378906249977,8.046679687500017],[-2.668847656249994,8.022216796875014],[-2.789746093749955,7.931933593750003],[-2.959082031249977,7.454541015624997],[-3.227148437499977,6.749121093749991],[-2.998291015624972,5.711328125000051],[-2.793652343749955,5.600097656250028],[-2.754980468749977,5.432519531249994],[-2.815673828125,5.153027343749997],[-3.168701171874972,5.203027343749966],[-3.199951171874943,5.3544921875],[-3.347558593749994,5.13066406249996],[-4.120166015625017,5.309716796875023],[-4.60888671875,5.235888671875003],[-4.037207031249977,5.23012695312498],[-4.899707031249932,5.138330078125023],[-5.282373046874994,5.210253906250017],[-5.36752929687492,5.15078125],[-5.061816406249989,5.13066406249996],[-5.913769531249926,5.0109375],[-7.544970703124989,4.351318359375],[-7.574658203124983,4.572314453124989],[-7.585058593749977,4.916748046875],[-7.39990234375,5.550585937499989],[-7.454394531249989,5.841308593749972],[-7.636132812499994,5.90771484375],[-7.730371093749994,5.919042968749991],[-7.800927734374994,6.038916015624991],[-7.833251953125,6.076367187499983],[-7.855517578125017,6.150146484375],[-7.888623046875011,6.234863281250028],[-7.981591796874937,6.2861328125],[-8.287109375,6.31904296875004],[-8.587890625,6.490527343749989],[-8.324511718749989,6.920019531249991],[-8.408740234374989,7.411816406249997],[-8.429980468749989,7.601855468749989],[-8.351757812499926,7.590576171875],[-8.231884765624955,7.556738281250034],[-8.205957031249994,7.590234375000023],[-8.115429687499926,7.760742187500028],[-8.126855468749937,7.867724609374974],[-8.00986328124992,8.078515625000023],[-8.048583984375,8.169726562500045],[-8.140625,8.181445312500031],[-8.217138671874949,8.219677734375011],[-8.256103515625,8.253710937500017],[-8.244140624999943,8.407910156249983],[-8.236962890624994,8.455664062500034],[-7.953125,8.477734375],[-7.823583984374977,8.467675781249994],[-7.738964843749983,8.375244140624986],[-7.696093749999932,8.375585937499977],[-7.71958007812492,8.643017578125011],[-7.950976562499989,8.786816406249997],[-7.938183593749983,8.97978515624996],[-7.902099609375,9.017089843750014],[-7.777978515624937,9.080859375000031],[-7.799804687499943,9.115039062499989],[-7.839404296875017,9.151611328124972],[-7.918066406249949,9.188525390625031],[-7.896191406249955,9.415869140624991],[-8.136962890624972,9.49570312499999],[-8.155175781249937,9.973193359375017],[-7.990625,10.1625],[-7.661132812500028,10.427441406250011],[-7.385058593749989,10.340136718749989],[-7.01708984375,10.143261718750026],[-6.950341796874994,10.342333984374989],[-6.693261718750023,10.34946289062502],[-6.669335937499937,10.39218750000002],[-6.69199218749992,10.512011718750017],[-6.686132812499977,10.578027343750051],[-6.676367187499949,10.633789062500043],[-6.654150390624949,10.65644531250004],[-6.482617187499983,10.561230468749997],[-6.250244140625,10.717919921875037],[-6.190673828124943,10.400292968749994],[-6.192626953124972,10.369433593750003],[-6.241308593749949,10.279199218750009],[-6.238378906249977,10.26162109374998],[-6.117187499999972,10.201904296874986],[-6.034570312499937,10.194824218750057],[-5.907568359375006,10.307226562500034],[-5.896191406249983,10.354736328125028],[-5.843847656249977,10.389550781250023],[-5.694287109374983,10.433203125000034],[-5.556591796874983,10.439941406249986],[-5.382275390625011,10.314013671875003],[-5.262304687499977,10.319677734374991]]]},"properties":{"name":"Côte d\'Ivoire","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[15.480078125,7.523779296874991],[15.206738281250011,7.206152343749991],[14.7392578125,6.27978515625],[14.43115234375,6.038720703124994],[14.616894531250011,5.865136718749994],[14.56298828125,5.279931640624994],[14.73125,4.602392578124991],[15.063574218750006,4.284863281249997],[15.128710937500017,3.826904296875],[16.0634765625,2.90859375],[16.183398437500017,2.270068359374989],[16.059375,1.676220703124997],[15.741601562500023,1.914990234374997],[14.902441406250006,2.012304687499991],[14.578906250000017,2.199121093749994],[13.293554687500006,2.161572265624997],[13.2203125,2.256445312499991],[11.558984375000023,2.302197265624997],[11.348437500000017,2.299707031249994],[11.328710937500006,2.167431640624997],[11.096582031250023,2.16748046875],[10.790917968750023,2.16757812499999],[9.979882812500023,2.167773437499989],[9.8701171875,2.21328125],[9.8369140625,2.242382812499997],[9.830371093750017,2.275488281249991],[9.826171875,2.297802734374997],[9.80078125,2.304443359375],[9.82177734375,2.539257812499997],[9.948437500000011,3.079052734374997],[9.672070312500011,3.53759765625],[9.765722656250006,3.623828124999989],[9.642382812500017,3.611767578124997],[9.55615234375,3.798046875],[9.739648437500023,3.852929687499994],[9.639941406250017,3.96533203125],[9.688867187500023,4.056396484375],[9.483691406250017,4.066113281249997],[9.42529296875,3.922314453124997],[9.000097656250006,4.091601562499989],[8.918261718750017,4.553759765624989],[8.660351562500011,4.670996093749991],[8.65625,4.516357421875],[8.53955078125,4.571875],[8.715625,5.046875],[8.997167968750006,5.917724609375],[9.490234375,6.418652343749997],[9.779882812500006,6.76015625],[9.820703125000023,6.783935546875],[9.874218750000011,6.803271484374989],[10.038867187500017,6.92138671875],[10.1435546875,6.996435546874991],[10.167773437500017,6.959179687499997],[10.185546875,6.912792968749997],[10.205468750000023,6.8916015625],[10.293066406250006,6.876757812499989],[10.413183593750006,6.877734374999989],[10.60625,7.063085937499991],[10.954199218750006,6.7765625],[11.032519531250017,6.697900390624994],[11.1064453125,6.457714843749997],[11.1533203125,6.437939453124997],[11.2373046875,6.450537109374991],[11.401757812500023,6.533935546875],[11.551660156250023,6.697265625],[11.580078125,6.888867187499997],[11.657519531250017,6.9515625],[11.861425781250006,7.11640625],[11.767382812500017,7.272265624999989],[11.809179687500006,7.345068359374991],[12.016015625000023,7.589746093749994],[12.2333984375,8.282324218749991],[12.403515625000011,8.595556640624991],[12.582714843750011,8.624121093749991],[12.651562500000011,8.667773437499989],[12.7822265625,8.81787109375],[12.806542968750023,8.886621093749994],[12.875683593750011,9.303515624999989],[12.929492187500017,9.42626953125],[13.19873046875,9.563769531249989],[13.269921875000023,10.036181640624989],[13.41455078125,10.171435546874989],[13.535351562500011,10.60507812499999],[13.699902343750011,10.873144531249991],[13.89208984375,11.140087890624997],[13.9814453125,11.211865234374997],[14.056738281250006,11.245019531249994],[14.143261718750011,11.24853515625],[14.202343750000011,11.268164062499991],[14.559765625000011,11.492285156249991],[14.619726562500006,12.150976562499991],[14.518945312500023,12.298242187499994],[14.272851562500023,12.356494140624989],[14.184863281250017,12.447216796874997],[14.06396484375,13.07851562499999],[14.244824218750011,13.07734375],[14.461718750000017,13.021777343749989],[14.847070312500023,12.502099609374994],[15.08125,11.845507812499989],[15.029882812500006,11.11367187499999],[15.132226562500023,10.648486328124989],[15.276074218750011,10.357373046874997],[15.654882812500006,10.0078125],[14.243261718750006,9.979736328125],[13.977246093750011,9.691552734374994],[14.332324218750017,9.20351562499999],[15.1162109375,8.557324218749997],[15.5498046875,7.787890624999989],[15.480078125,7.523779296874991]]]},"properties":{"name":"Cameroon","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[27.4033203125,5.109179687499989],[27.7880859375,4.644677734374994],[28.19208984375001,4.350244140624994],[28.427539062500017,4.324169921874997],[28.72705078125,4.504980468749991],[29.224902343750017,4.391894531249989],[29.469628906250023,4.61181640625],[29.676855468750006,4.5869140625],[30.194921875,3.98193359375],[30.50830078125,3.835693359375],[30.586718750000017,3.62421875],[30.757226562500023,3.62421875],[30.83857421875001,3.49072265625],[30.90644531250001,3.408935546875],[30.754003906250006,3.041796874999989],[30.8466796875,2.847021484374991],[30.728613281250006,2.455371093749989],[31.176367187500006,2.270068359374989],[31.252734375000017,2.044580078124994],[29.94287109375,0.819238281249994],[29.934472656250023,0.4990234375],[29.717675781250023,0.098339843749997],[29.576953125000017,-1.387890625000011],[29.196582031250017,-1.719921875000011],[29.13154296875001,-2.195117187500003],[28.876367187500023,-2.400292968750009],[28.893945312500023,-2.635058593750003],[29.01435546875001,-2.72021484375],[29.224414062500017,-3.053515625],[29.211816406250023,-3.833789062500003],[29.403222656250023,-4.449316406250006],[29.404199218750023,-4.496679687500006],[29.32568359375,-4.835644531250011],[29.32343750000001,-4.898828125],[29.3427734375,-4.983105468750011],[29.542382812500023,-5.499804687500003],[29.594140625000023,-5.65078125],[29.60703125,-5.72265625],[29.59638671875001,-5.775976562500006],[29.490820312500006,-5.965429687500006],[29.480078125,-6.025],[29.50625,-6.172070312500011],[29.540820312500017,-6.313867187500009],[29.590625,-6.394433593750009],[29.70966796875001,-6.616894531250011],[29.798144531250017,-6.69189453125],[29.961816406250023,-6.803125],[30.10625,-6.9150390625],[30.212695312500017,-7.037890625],[30.31318359375001,-7.203710937500006],[30.40673828125,-7.460644531250011],[30.75117187500001,-8.193652343750003],[28.89814453125001,-8.485449218750006],[28.869531250000023,-8.785839843750011],[28.400683593750017,-9.224804687500011],[28.60419921875001,-9.678808593750006],[28.6455078125,-10.550195312500009],[28.383398437500006,-11.566699218750003],[28.482519531250006,-11.812109375],[29.064355468750023,-12.348828125000011],[29.48554687500001,-12.41845703125],[29.508203125000023,-12.228222656250011],[29.79511718750001,-12.155468750000011],[29.775195312500017,-13.438085937500006],[29.55419921875,-13.248925781250009],[29.20185546875001,-13.398339843750009],[29.014257812500006,-13.368847656250011],[28.730078125,-12.925488281250011],[28.550878906250006,-12.836132812500011],[28.412890625000017,-12.51806640625],[27.573828125,-12.22705078125],[27.1591796875,-11.579199218750006],[26.824023437500017,-11.965234375],[26.025976562500006,-11.89013671875],[25.349414062500017,-11.623046875],[25.28876953125001,-11.21240234375],[24.3779296875,-11.417089843750006],[24.36572265625,-11.1298828125],[23.96650390625001,-10.871777343750011],[23.901171875000017,-10.983203125],[23.833886718750023,-11.013671875],[23.463964843750006,-10.969335937500006],[23.076269531250006,-11.087890625],[22.814746093750017,-11.080273437500011],[22.56103515625,-11.055859375000011],[22.486132812500017,-11.08671875],[22.392968750000023,-11.159472656250003],[22.31494140625,-11.198632812500009],[22.27880859375,-11.194140625],[22.226171875,-11.121972656250009],[22.203515625000023,-10.829492187500009],[22.307031250000023,-10.691308593750009],[22.19775390625,-10.040625],[21.81318359375001,-9.46875],[21.905371093750006,-8.693359375],[21.806054687500023,-7.32861328125],[21.751074218750006,-7.30546875],[21.190332031250023,-7.284960937500003],[20.910937500000017,-7.281445312500011],[20.607812500000023,-7.277734375],[20.558398437500017,-7.244433593750003],[20.53583984375001,-7.182812500000011],[20.536914062500017,-7.121777343750011],[20.598730468750006,-6.93515625],[20.59003906250001,-6.919921875],[20.482226562500017,-6.915820312500003],[20.190039062500006,-6.9462890625],[19.997460937500023,-6.976464843750009],[19.87519531250001,-6.986328125],[19.527636718750017,-7.144433593750009],[19.483789062500023,-7.279492187500011],[19.479882812500023,-7.47216796875],[19.371679687500006,-7.655078125],[19.369921875000017,-7.70654296875],[19.3408203125,-7.966601562500003],[19.142675781250006,-8.00146484375],[18.944433593750006,-8.00146484375],[18.56269531250001,-7.9359375],[18.0087890625,-8.107617187500011],[17.643359375000017,-8.090722656250009],[17.57958984375,-8.099023437500009],[16.984765625000023,-7.257421875],[16.91943359375,-6.933984375],[16.813085937500006,-6.772558593750006],[16.742968750000017,-6.618457031250003],[16.697265625,-6.164257812500011],[16.537109375,-5.9658203125],[16.431445312500017,-5.900195312500003],[16.315234375000017,-5.865625],[13.978515625,-5.857226562500003],[13.346484375000017,-5.863378906250006],[13.184375,-5.85625],[12.452929687500017,-6.00048828125],[12.213671875000017,-5.758691406250009],[12.484570312500011,-5.71875],[12.451464843750017,-5.071484375000011],[12.502734375000017,-5.036914062500003],[12.573535156250017,-4.99658203125],[12.59619140625,-4.978417968750009],[12.8296875,-4.736621093750003],[12.947460937500011,-4.6953125],[13.057324218750011,-4.651074218750011],[13.07275390625,-4.634765625],[13.08740234375,-4.601953125],[13.136621093750023,-4.604296875],[13.414941406250023,-4.83740234375],[13.659570312500023,-4.721484375],[13.717089843750017,-4.454492187500009],[13.94091796875,-4.484667968750003],[14.358300781250023,-4.299414062500006],[14.449804687500006,-4.449511718750003],[14.365429687500011,-4.585546875],[14.410742187500006,-4.83125],[14.707910156250023,-4.881738281250009],[15.990039062500017,-3.766210937500006],[16.217382812500006,-3.0302734375],[16.21533203125,-2.177832031250006],[16.54072265625001,-1.840136718750003],[16.8798828125,-1.225878906250003],[17.752832031250023,-0.549023437500011],[18.072167968750023,2.01328125],[18.49091796875001,2.924414062499991],[18.6103515625,3.478417968749994],[18.594140625000023,4.346240234374989],[19.06855468750001,4.891406249999989],[19.5009765625,5.127490234374989],[19.806542968750023,5.089306640624997],[20.226367187500017,4.829638671874989],[20.55810546875,4.462695312499989],[22.422167968750017,4.134960937499997],[22.864550781250017,4.723876953125],[23.41718750000001,4.663134765624989],[24.31982421875,4.994140625],[25.065234375000017,4.967431640624994],[25.52509765625001,5.31210937499999],[26.822070312500017,5.062402343749994],[27.071875,5.199755859374989],[27.4033203125,5.109179687499989]]]},"properties":{"name":"Dem. Rep. Congo","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[18.6103515625,3.478417968749994],[18.49091796875001,2.924414062499991],[18.072167968750023,2.01328125],[17.752832031250023,-0.549023437500011],[16.8798828125,-1.225878906250003],[16.54072265625001,-1.840136718750003],[16.21533203125,-2.177832031250006],[16.217382812500006,-3.0302734375],[15.990039062500017,-3.766210937500006],[14.707910156250023,-4.881738281250009],[14.410742187500006,-4.83125],[14.365429687500011,-4.585546875],[14.449804687500006,-4.449511718750003],[14.358300781250023,-4.299414062500006],[13.94091796875,-4.484667968750003],[13.717089843750017,-4.454492187500009],[13.659570312500023,-4.721484375],[13.414941406250023,-4.83740234375],[13.136621093750023,-4.604296875],[13.08740234375,-4.601953125],[13.07275390625,-4.634765625],[13.048046875000011,-4.619238281250006],[12.971386718750011,-4.5517578125],[12.881054687500011,-4.445117187500003],[12.84814453125,-4.428906250000011],[12.50146484375,-4.5875],[12.018359375000017,-5.004296875],[11.777539062500011,-4.565820312500009],[11.130175781250017,-3.916308593750003],[11.234472656250006,-3.690820312500009],[11.504296875000023,-3.5203125],[11.685742187500011,-3.68203125],[11.8798828125,-3.665917968750009],[11.934179687500006,-3.318554687500011],[11.715429687500006,-3.176953125000011],[11.760156250000023,-2.983105468750011],[11.537792968750011,-2.83671875],[11.60546875,-2.342578125],[12.064453125,-2.41259765625],[12.446386718750006,-2.329980468750009],[12.43212890625,-1.928906250000011],[12.590429687500006,-1.826855468750011],[12.793554687500006,-1.931835937500011],[12.991992187500017,-2.313378906250009],[13.464941406250006,-2.395410156250009],[13.733789062500023,-2.138476562500003],[13.886914062500011,-2.465429687500006],[13.993847656250011,-2.490625],[14.199804687500006,-2.354199218750011],[14.162890625000017,-2.217578125],[14.383984375000011,-1.890039062500009],[14.47412109375,-0.573437500000011],[13.860058593750011,-0.203320312500011],[13.949609375000023,0.353808593749989],[14.32421875,0.62421875],[14.429882812500011,0.901464843749991],[14.180859375000011,1.370214843749991],[13.851367187500017,1.41875],[13.21630859375,1.2484375],[13.172167968750017,1.78857421875],[13.293554687500006,2.161572265624997],[14.578906250000017,2.199121093749994],[14.902441406250006,2.012304687499991],[15.741601562500023,1.914990234374997],[16.059375,1.676220703124997],[16.183398437500017,2.270068359374989],[16.468554687500017,2.831738281249997],[16.610742187500023,3.50537109375],[17.491601562500023,3.687304687499989],[18.160937500000017,3.499804687499989],[18.474414062500017,3.622998046874997],[18.6103515625,3.478417968749994]]]},"properties":{"name":"Congo","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-71.31972656249997,11.861914062500048],[-71.95810546875,11.66640625],[-72.24848632812501,11.196435546875009],[-72.690087890625,10.835839843749994],[-72.86933593750001,10.49125976562496],[-73.00654296874998,9.789160156250006],[-73.36621093749997,9.194140625000017],[-73.05839843749999,9.259570312500031],[-72.79638671874997,9.10898437499999],[-72.66542968749994,8.62758789062498],[-72.39033203124995,8.287060546874969],[-72.47197265624996,7.524267578124991],[-72.20771484374995,7.37026367187498],[-72.00664062499993,7.032617187500023],[-71.12861328124993,6.98671875],[-70.73715820312503,7.090039062499997],[-70.12919921874999,6.95361328125],[-69.42714843749997,6.123974609374997],[-68.47177734375,6.156542968749974],[-67.85917968749999,6.289892578124963],[-67.48198242187499,6.18027343750002],[-67.47387695312503,5.929980468750003],[-67.82490234374995,5.270458984375026],[-67.85527343750002,4.506884765624989],[-67.66162109375,3.864257812499986],[-67.3111328125,3.41586914062502],[-67.85908203124998,2.793603515624994],[-67.61870117187496,2.793603515624994],[-67.21083984375,2.390136718750043],[-66.87602539062499,1.223046875000037],[-67.082275390625,1.185400390625006],[-67.11923828124998,1.703613281249986],[-67.40043945312499,2.116699218750028],[-67.93623046874998,1.748486328124969],[-68.19379882812495,1.987011718749983],[-68.25595703125,1.845507812500017],[-68.17656249999999,1.719824218749991],[-69.84858398437493,1.708740234375043],[-69.85214843750003,1.05952148437504],[-69.31181640624999,1.050488281249969],[-69.15332031249994,0.65878906250002],[-69.47211914062498,0.72993164062504],[-70.05390624999993,0.578613281250028],[-70.07050781249993,-0.13886718750004],[-69.63398437500001,-0.50927734375],[-69.40024414062498,-1.194921874999977],[-69.66904296875003,-2.667675781249997],[-69.94819335937498,-4.200585937500009],[-69.96591796875003,-4.2359375],[-70.16752929687499,-4.050195312500009],[-70.24028320312496,-3.882714843749994],[-70.2984375,-3.844238281249972],[-70.33950195312502,-3.814355468750009],[-70.73510742187497,-3.781542968749989],[-70.09584960937494,-2.658203125000014],[-70.16474609374995,-2.639843750000011],[-70.24443359375002,-2.606542968749977],[-70.29462890624995,-2.552539062499989],[-70.57587890624995,-2.418261718749989],[-70.64799804687499,-2.405761718750014],[-70.70537109374996,-2.341992187499983],[-70.91455078125003,-2.218554687499974],[-70.96855468750002,-2.206835937499989],[-71.02729492187498,-2.225781250000026],[-71.11337890625003,-2.245410156250031],[-71.19638671874998,-2.313085937499963],[-71.39697265625,-2.334082031249977],[-71.55947265624997,-2.224218749999977],[-71.75253906249995,-2.15273437499998],[-71.80273437499997,-2.166308593749989],[-71.86728515624998,-2.227734374999983],[-71.932470703125,-2.288671874999963],[-71.98427734375,-2.326562499999952],[-72.21845703125001,-2.400488281250006],[-72.94111328124998,-2.394042968750028],[-72.9896484375,-2.33974609374998],[-73.15449218749993,-2.278222656249966],[-73.19697265624995,-1.830273437500011],[-73.49628906249993,-1.69306640625004],[-73.66430664062497,-1.248828124999946],[-73.86318359374997,-1.19667968749998],[-73.92695312500001,-1.125195312499983],[-73.98681640625003,-1.098144531249986],[-74.05439453124995,-1.028613281250031],[-74.18076171875,-0.997753906249955],[-74.24638671874999,-0.970605468750023],[-74.28388671874998,-0.927832031250006],[-74.33442382812498,-0.85087890624996],[-74.41787109375,-0.580664062499977],[-74.46518554687498,-0.517675781250034],[-74.51386718749993,-0.470117187500023],[-74.555078125,-0.429882812499997],[-74.61635742187494,-0.370019531249966],[-74.691650390625,-0.335253906249989],[-74.75537109375003,-0.298632812499989],[-74.78046874999998,-0.24453125],[-74.80175781249997,-0.200097656249994],[-75.13837890624998,-0.050488281249969],[-75.28447265624999,-0.10654296875002],[-75.77666015624999,0.08925781249998],[-76.27060546874998,0.439404296874997],[-76.49462890624997,0.23544921875002],[-77.396337890625,0.393896484374963],[-77.46767578124997,0.636523437500017],[-77.702880859375,0.837841796874997],[-78.1806640625,0.968554687499974],[-78.85966796874996,1.455371093750031],[-79.02543945312499,1.623681640625037],[-78.79296874999994,1.848730468749963],[-78.576904296875,1.773779296874977],[-78.59169921875,2.356640624999969],[-78.41689453125,2.483496093749963],[-78.06665039062494,2.509130859375034],[-77.81357421875,2.716357421874974],[-77.076806640625,3.913281250000026],[-77.26352539062503,3.893212890625023],[-77.27802734374995,4.058496093750023],[-77.35820312499996,3.944726562500037],[-77.40874023437496,4.24775390625004],[-77.52070312499993,4.212792968750023],[-77.35351562499997,4.398291015624977],[-77.28632812499995,4.72172851562496],[-77.373291015625,5.323974609375],[-77.53442382812497,5.537109374999986],[-77.24926757812497,5.780175781250037],[-77.46943359374995,6.176757812500014],[-77.368798828125,6.575585937499994],[-77.90117187499999,7.229345703125048],[-77.76191406249995,7.698828125000034],[-77.53828124999995,7.56625976562502],[-77.19599609374995,7.972460937500003],[-77.47851562499994,8.498437500000037],[-77.37421874999993,8.65830078125002],[-76.85185546875002,8.09047851562498],[-76.924658203125,7.973193359374974],[-76.78657226562493,7.931591796875026],[-76.7720703125,8.310546875000043],[-76.92045898437496,8.573730468750014],[-76.27685546875,8.989111328124991],[-76.02724609374997,9.365771484374989],[-75.63935546874998,9.450439453125014],[-75.680029296875,9.729785156249989],[-75.53857421874997,10.205175781250034],[-75.708349609375,10.143408203124963],[-75.44599609374995,10.610888671874989],[-74.84458007812498,11.109716796875006],[-74.330224609375,10.996679687499991],[-74.51625976562497,10.8625],[-74.40087890625,10.76523437499999],[-74.14291992187503,11.320849609375031],[-73.31337890624997,11.295751953124991],[-72.275,11.88925781250002],[-72.13574218749994,12.188574218749977],[-71.71455078124993,12.41997070312496],[-71.26210937499997,12.335302734375034],[-71.13730468750003,12.04633789062504],[-71.31972656249997,11.861914062500048]]]},"properties":{"name":"Colombia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[43.788671875,-12.307031250000023],[43.85898437500006,-12.368261718749977],[43.66367187500006,-12.342871093749949],[43.63134765624997,-12.247070312499972],[43.788671875,-12.307031250000023]]],[[[44.476367187500074,-12.08154296875],[44.504980468750006,-12.356542968749991],[44.220117187499994,-12.171386718750014],[44.476367187500074,-12.08154296875]]],[[[43.46582031249997,-11.901269531249966],[43.226660156250006,-11.75185546874998],[43.2990234375001,-11.374511718750028],[43.39296875000005,-11.408593749999952],[43.46582031249997,-11.901269531249966]]]]},"properties":{"name":"Comoros","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-24.308251953124966,14.856298828124991],[-24.44052734374992,14.834814453124963],[-24.496875,14.980273437500017],[-24.329492187499937,15.019482421875011],[-24.308251953124966,14.856298828124991]]],[[[-23.18212890624997,15.136767578125017],[-23.210253906250017,15.32353515625006],[-23.119335937499955,15.26840820312502],[-23.18212890624997,15.136767578125017]]],[[[-23.444238281249994,15.00795898437498],[-23.5046875,14.916113281250006],[-23.70537109374999,14.96132812499998],[-23.74809570312499,15.328515625],[-23.444238281249994,15.00795898437498]]],[[[-22.917724609375,16.237255859374955],[-22.69262695312497,16.169042968750006],[-22.710107421874994,16.043359374999966],[-22.95927734374996,16.045117187499983],[-22.917724609375,16.237255859374955]]],[[[-24.08769531249999,16.62250976562501],[-24.03271484374997,16.57202148437503],[-24.243066406250023,16.599414062500017],[-24.32236328124992,16.49311523437504],[-24.398095703124966,16.61840820312497],[-24.08769531249999,16.62250976562501]]],[[[-22.888330078124966,16.659082031249994],[-22.980615234374937,16.700878906249983],[-22.93291015624999,16.84101562500004],[-22.888330078124966,16.659082031249994]]],[[[-24.88706054687495,16.81811523437497],[-25.09306640624999,16.83251953125],[-24.936474609374983,16.92211914062503],[-24.88706054687495,16.81811523437497]]],[[[-25.169824218749994,16.94648437500001],[-25.308300781249955,16.93583984374999],[-25.337109374999955,17.091015624999983],[-25.03466796875,17.176464843749983],[-24.979687499999983,17.09472656250003],[-25.169824218749994,16.94648437500001]]]]},"properties":{"name":"Cape Verde","childNum":8}},{"geometry":{"type":"Polygon","coordinates":[[[-83.6419921875,10.917236328125],[-83.346826171875,10.315380859374997],[-82.77841796874999,9.66953125],[-82.56357421874999,9.57666015625],[-82.56923828125,9.55820312499999],[-82.58652343749999,9.538818359375],[-82.64409179687499,9.505859375],[-82.801025390625,9.591796875],[-82.843994140625,9.57080078125],[-82.86015624999999,9.511474609375],[-82.88896484374999,9.481005859374989],[-82.925048828125,9.469042968749989],[-82.93984375,9.449169921874997],[-82.94033203125,9.060107421874989],[-82.88134765625,9.055859375],[-82.78305664062499,8.990283203124989],[-82.741162109375,8.951708984374989],[-82.72783203124999,8.916064453124989],[-82.91704101562499,8.740332031249991],[-82.855712890625,8.635302734374989],[-82.84477539062499,8.489355468749991],[-82.86162109374999,8.45351562499999],[-83.02734375,8.337744140624991],[-82.879345703125,8.070654296874991],[-83.12333984374999,8.353076171874989],[-83.16240234374999,8.588183593749989],[-83.4697265625,8.706835937499989],[-83.29150390625,8.406005859375],[-83.54375,8.445849609374989],[-83.73408203125,8.614453125],[-83.613720703125,8.804052734374991],[-83.73691406249999,9.150292968749994],[-84.58159179687499,9.568359375],[-84.71494140624999,9.8994140625],[-85.23564453124999,10.242089843749994],[-85.2365234375,10.107373046874997],[-84.88642578125,9.820947265624994],[-85.07705078125,9.60195312499999],[-85.31455078124999,9.8109375],[-85.62485351562499,9.902441406249991],[-85.84965820312499,10.292041015624989],[-85.667236328125,10.745019531249994],[-85.90800781249999,10.897558593749991],[-85.7443359375,11.06210937499999],[-85.5841796875,11.189453125],[-84.9091796875,10.9453125],[-84.6341796875,11.045605468749997],[-83.91928710937499,10.7353515625],[-83.71293945312499,10.785888671875],[-83.6419921875,10.917236328125]]]},"properties":{"name":"Costa Rica","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-82.56176757812503,21.571679687500023],[-82.959619140625,21.441308593750023],[-83.18378906250001,21.59345703125004],[-82.97358398437498,21.592285156250057],[-83.08251953124997,21.791406250000023],[-82.99121093750003,21.942724609375034],[-82.71455078124998,21.890283203125023],[-82.56176757812503,21.571679687500023]]],[[[-77.66899414062493,21.951953125000045],[-77.91855468749998,22.088085937499983],[-77.63369140624994,22.054003906250074],[-77.66899414062493,21.951953125000045]]],[[[-77.87939453125,22.127539062500034],[-78.04165039062502,22.201269531250034],[-77.99921874999998,22.298730468749994],[-77.87939453125,22.127539062500034]]],[[[-81.83745117187499,23.163037109374955],[-81.26235351562497,23.156835937500034],[-81.14462890624998,23.054931640625057],[-80.65014648437494,23.10307617187499],[-80.36489257812502,22.943408203125074],[-79.82026367187498,22.887011718750045],[-79.27568359374999,22.407617187499994],[-78.68647460937493,22.366845703125023],[-77.63681640624995,21.79736328125],[-77.49711914062502,21.78833007812503],[-77.58315429687497,21.889257812499977],[-77.49726562499995,21.871630859375045],[-77.14414062499995,21.643603515625017],[-77.36616210937498,21.612646484375034],[-77.25288085937498,21.483496093750006],[-77.0986328125,21.589013671875023],[-76.86743164062497,21.330419921875006],[-75.72294921874996,21.111035156249983],[-75.59580078125,20.99467773437499],[-75.72456054687493,20.71455078125004],[-74.882568359375,20.65063476562497],[-74.51313476562495,20.384570312500045],[-74.16748046874997,20.292187499999955],[-74.15371093750002,20.168554687500006],[-75.11640624999995,19.901416015625017],[-75.151611328125,20.008349609375045],[-75.29047851562495,19.893115234375017],[-76.15844726562497,19.98974609374997],[-77.715087890625,19.85546874999997],[-77.10380859374999,20.407519531250017],[-77.22958984374995,20.64375],[-78.11635742187497,20.761865234374994],[-78.49077148437493,21.05371093750003],[-78.72768554687497,21.592724609374955],[-79.35742187500003,21.58515625000001],[-80.23134765625,21.872167968750063],[-80.48544921874998,22.1234375],[-81.03564453124997,22.073583984375063],[-81.18549804687495,22.26796875000005],[-81.284375,22.109423828125074],[-81.84941406249993,22.21367187499999],[-82.077734375,22.3876953125],[-81.71035156250002,22.496679687500006],[-81.83881835937498,22.672460937500034],[-82.73803710937497,22.689257812500074],[-83.37963867187503,22.222998046875034],[-83.90073242187495,22.17011718750001],[-84.03095703124993,21.94311523437503],[-84.502587890625,21.776171875000045],[-84.50136718750002,21.930273437499977],[-84.88720703125003,21.856982421875074],[-84.32636718749998,22.074316406250034],[-84.36127929687498,22.37890625],[-84.04492187500003,22.666015625000057],[-83.25781249999997,22.967578125000017],[-81.83745117187499,23.163037109374955]]]]},"properties":{"name":"Cuba","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[-68.75107421874999,12.059765625],[-68.9951171875,12.141845703125],[-69.15888671875,12.380273437499994],[-68.75107421874999,12.059765625]]]},"properties":{"name":"Curaçao","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-81.36953124999997,19.34887695312497],[-81.10712890624995,19.305175781250057],[-81.40478515624994,19.278417968750006],[-81.36953124999997,19.34887695312497]]],[[[-79.823388671875,19.711914062500057],[-79.90620117187501,19.702539062499994],[-79.74228515625,19.757128906250017],[-79.823388671875,19.711914062500057]]]]},"properties":{"name":"Cayman Is.","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[34.004492187500006,35.065234375],[33.47578125000001,35.000341796875],[33.3837890625,35.1626953125],[32.91953125,35.087841796875],[32.71269531250002,35.171044921874994],[32.8798828125,35.180566406249994],[32.94160156250001,35.390429687499996],[33.60761718750001,35.354150390624994],[34.55605468750002,35.662060546875],[33.941992187500006,35.292041015624996],[34.004492187500006,35.065234375]]]},"properties":{"name":"N. Cyprus","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[32.71269531250002,35.171044921874994],[32.91953125,35.087841796875],[33.3837890625,35.1626953125],[33.47578125000001,35.000341796875],[34.004492187500006,35.065234375],[34.05019531250002,34.98837890625],[33.69941406250001,34.969873046874994],[33.007910156250006,34.569580078125],[32.44902343750002,34.729443359375],[32.31718750000002,34.9533203125],[32.30097656250001,35.082958984375],[32.71269531250002,35.171044921874994]]]},"properties":{"name":"Cyprus","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[14.809375,50.858984375],[14.895800781250017,50.861376953124996],[14.98291015625,50.886572265625],[14.99375,51.01435546875],[16.007226562500023,50.611621093749996],[16.2822265625,50.655615234375],[16.419726562500017,50.573632812499994],[16.210351562500023,50.423730468749994],[16.63916015625,50.1021484375],[16.989648437500023,50.2369140625],[16.88007812500001,50.427050781249996],[17.41523437500001,50.254785156249994],[17.702246093750006,50.307177734374996],[17.627050781250006,50.11640625],[17.874804687500017,49.972265625],[18.0283203125,50.03525390625],[18.562402343750023,49.879345703125],[18.83222656250001,49.510791015624996],[18.160937500000017,49.257373046874996],[18.0859375,49.06513671875],[17.75849609375001,48.888134765625],[17.135644531250023,48.841064453125],[16.953125,48.598828125],[16.543554687500006,48.796240234375],[16.057226562500006,48.754785156249994],[15.066796875000023,48.997851562499996],[14.691308593750023,48.59921875],[14.049121093750017,48.602490234375],[13.814746093750017,48.766943359375],[13.769921875000023,48.815966796874996],[13.684960937500023,48.876708984375],[13.547656250000017,48.95966796875],[13.440722656250017,48.95556640625],[13.401171875000017,48.977587890624996],[12.916699218750011,49.33046875],[12.68115234375,49.414501953125],[12.390527343750023,49.739648437499994],[12.5125,49.87744140625],[12.09921875,50.310986328125],[12.134863281250006,50.3109375],[12.1748046875,50.288378906249996],[12.231152343750011,50.244873046875],[12.27734375,50.181445312499996],[12.3056640625,50.205712890624994],[12.549023437500011,50.393408203125],[13.016406250000017,50.490380859374994],[13.18115234375,50.510498046875],[14.369042968750023,50.898730468749996],[14.319726562500023,51.03779296875],[14.545703125000017,50.993945312499996],[14.559667968750006,50.954931640625],[14.59521484375,50.918603515624994],[14.623828125000017,50.91474609375],[14.613574218750017,50.85556640625],[14.658203125,50.8326171875],[14.723339843750011,50.814697265625],[14.766503906250023,50.818310546875],[14.797460937500006,50.842333984374996],[14.809375,50.858984375]]]},"properties":{"name":"Czech Rep.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[14.1982421875,53.919042968750034],[13.92578125,53.879052734374966],[13.827734375,54.12724609374999],[14.1982421875,53.919042968750034]]],[[[13.709179687500011,54.382714843749994],[13.707324218750074,54.281152343749994],[13.190039062500034,54.32563476562501],[13.336816406249994,54.697119140625006],[13.65761718750008,54.55957031249997],[13.709179687500011,54.382714843749994]]],[[[9.739746093750028,54.82553710937498],[10.022167968750011,54.673925781250006],[9.86865234375,54.47246093749999],[10.731542968750006,54.31625976562506],[11.013378906250068,54.37915039062497],[11.008593750000074,54.18115234374997],[10.810742187500068,54.075146484374955],[10.917773437500045,53.99531250000004],[11.39960937500004,53.94462890625002],[12.111328125,54.168310546875006],[12.57539062500004,54.467382812500006],[13.028613281250017,54.411035156249994],[13.448046875000017,54.14086914062503],[13.724218750000063,54.153222656249966],[13.865527343750074,53.85336914062498],[14.258886718750006,53.729638671874994],[14.298730468750051,53.55644531249999],[14.41455078125,53.28349609374996],[14.412304687500011,53.216748046874955],[14.410937500000074,53.19902343749999],[14.368554687500051,53.105566406250034],[14.293164062500068,53.026757812499966],[14.138867187500068,52.93286132812503],[14.128613281250011,52.87822265625002],[14.253710937500017,52.78251953124996],[14.514062500000023,52.645605468750034],[14.619433593750017,52.52851562499998],[14.569726562499994,52.431103515624955],[14.554589843750023,52.35966796874996],[14.573925781250068,52.31416015625001],[14.615625,52.277636718750045],[14.679882812500068,52.25],[14.752539062500034,52.08183593750002],[14.601660156250034,51.832373046875006],[14.738671875000051,51.62714843750004],[14.7109375,51.54492187499997],[14.724707031250063,51.523876953124955],[14.90595703125004,51.463330078124955],[14.935546875000028,51.435351562500045],[14.9638671875,51.095117187499994],[14.917480468750057,51.00874023437498],[14.814257812499989,50.871630859375045],[14.809375,50.858984375000034],[14.797460937500034,50.84233398437502],[14.766503906250051,50.81831054687501],[14.72333984375004,50.81469726562497],[14.658203125,50.832617187500006],[14.613574218750045,50.85556640625006],[14.623828125000017,50.91474609375004],[14.595214843750057,50.91860351562502],[14.559667968750006,50.954931640625034],[14.545703124999989,50.99394531249999],[14.319726562500051,51.037792968749955],[14.36904296875008,50.89873046874996],[13.18115234375,50.510498046875],[13.016406250000017,50.490380859374994],[12.549023437500011,50.393408203125034],[12.3056640625,50.205712890624994],[12.27734375,50.18144531250002],[12.231152343749983,50.24487304687497],[12.174804687500057,50.28837890624996],[12.134863281250006,50.31093750000002],[12.099218750000034,50.31098632812504],[12.089843749999972,50.30175781250003],[12.089746093750051,50.2685546875],[12.294598214285761,50.13608119419641],[12.5125,49.87744140625],[12.390527343750051,49.739648437499994],[12.68115234375,49.41450195312501],[12.91669921875004,49.33046875000002],[13.401171875000074,48.97758789062499],[13.440722656250045,48.95556640625003],[13.547656250000074,48.95966796874998],[13.684960937500051,48.87670898437506],[13.769921875000051,48.81596679687502],[13.814746093750017,48.76694335937498],[13.802929687500011,48.74750976562501],[13.798828124999972,48.62167968750006],[13.785351562499983,48.58745117187502],[13.486621093750074,48.58183593750002],[13.471679687500028,48.57182617187502],[13.459863281250023,48.564550781250034],[13.409375,48.39414062500006],[13.322851562500006,48.33125],[13.215234375000023,48.301904296874994],[12.760351562500063,48.10698242187499],[12.95351562500008,47.890625],[12.897656250000068,47.721875],[13.054101562500051,47.655126953125034],[13.047949218750034,47.57915039062502],[13.031542968750074,47.50800781250001],[13.01435546875004,47.478076171875045],[12.968066406250017,47.475683593750006],[12.878906250000057,47.506445312500034],[12.809375,47.542187499999955],[12.782812500000034,47.56416015624998],[12.781152343750051,47.590429687500006],[12.796191406249989,47.60703125],[12.771386718750023,47.63940429687503],[12.685839843750074,47.66933593750002],[12.209277343750074,47.71826171875003],[12.196875,47.709082031250034],[12.203808593750011,47.64672851562503],[12.185644531250063,47.61953125],[11.041992187500028,47.39311523437496],[10.98085937499999,47.39814453125001],[10.893945312500051,47.470458984375],[10.870605468750028,47.500781250000045],[10.873046874999972,47.52021484375001],[10.741601562500023,47.52412109375001],[10.65869140625,47.547216796875006],[10.482812500000051,47.54179687499996],[10.439453125000028,47.55156249999999],[10.403906250000063,47.41699218750003],[10.369140625,47.366064453125034],[10.18300781250008,47.27880859375003],[10.200292968750063,47.36342773437505],[10.066308593750023,47.39335937500002],[10.064575892857171,47.42369419642856],[10.059863281250045,47.44907226562498],[10.034082031250023,47.47358398437501],[9.971582031249994,47.50532226562498],[9.839160156250017,47.55229492187496],[9.748925781250023,47.575537109375006],[9.524023437500034,47.52421875000002],[8.572656250000023,47.775634765625],[8.435742187500011,47.73134765625002],[8.403417968750006,47.687792968750045],[8.413281250000068,47.66269531249998],[8.451757812500006,47.65180664062498],[8.552343750000063,47.65913085937498],[8.56708984375004,47.65190429687502],[8.57050781250004,47.63779296874998],[8.55947265625008,47.62402343750003],[8.477636718750034,47.61269531250002],[8.454003906249994,47.59619140625003],[7.615625,47.59272460937504],[7.616601562500023,48.15678710937502],[8.134863281250006,48.97358398437498],[7.450585937500051,49.152197265625034],[6.735449218750006,49.16059570312498],[6.344335937500006,49.45273437499998],[6.4873046875,49.798486328124994],[6.204882812500017,49.915136718750034],[6.13818359375,49.97431640625001],[6.10976562500008,50.034375],[6.116503906250045,50.120996093749966],[6.340917968750006,50.451757812500034],[5.993945312500017,50.75043945312504],[6.048437500000034,50.90488281250006],[5.857519531250034,51.030126953125006],[6.129980468750034,51.14741210937501],[6.198828125000034,51.45],[5.948730468750057,51.80268554687501],[6.800390625,51.96738281249998],[6.724511718749994,52.080224609374966],[7.035156250000057,52.38022460937498],[6.748828125000074,52.464013671874994],[6.710742187500045,52.61787109374998],[7.033007812500045,52.65136718749997],[7.197265625000028,53.28227539062499],[7.074316406250034,53.477636718750006],[7.285253906250034,53.68134765625001],[8.00927734375,53.69072265624999],[8.108496093750063,53.46767578125002],[8.245214843750006,53.44531249999997],[8.333886718750051,53.606201171875],[8.495214843750063,53.39423828124998],[8.618945312500045,53.875],[9.20556640625,53.85595703124997],[9.783984375000074,53.554638671874955],[9.31201171875,53.859130859375],[8.92041015625,53.96533203125006],[8.906640625000023,54.26079101562502],[8.625781250000017,54.35395507812501],[8.951855468750011,54.46757812499996],[8.670312500000023,54.903417968750034],[9.739746093750028,54.82553710937498]]],[[[8.307714843750034,54.786962890625034],[8.451464843750017,55.05537109374998],[8.3798828125,54.89985351562501],[8.629589843750068,54.891748046874966],[8.307714843750034,54.786962890625034]]]]},"properties":{"name":"Germany","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[43.24599609375002,11.499804687499989],[42.92275390625002,10.999316406249989],[42.557714843750006,11.080761718749997],[41.79824218750002,10.98046875],[41.79267578125001,11.68603515625],[42.378515625,12.46640625],[42.40859375000002,12.494384765625],[42.45,12.521337890624991],[42.47939453125002,12.513623046874997],[42.703710937500006,12.380322265624997],[42.76748046875002,12.4228515625],[42.825292968750006,12.5693359375],[42.86591796875001,12.622802734375],[42.88330078125,12.621289062499997],[43.00566406250002,12.662304687499997],[43.11669921875,12.70859375],[43.353515625,12.367041015624991],[43.38027343750002,12.091259765624997],[42.64003906250002,11.560107421874989],[42.52177734375002,11.572167968749994],[42.58378906250002,11.496777343749997],[43.04277343750002,11.588476562499991],[43.24599609375002,11.499804687499989]]]},"properties":{"name":"Djibouti","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-61.281689453125,15.2490234375],[-61.37539062499999,15.227294921875],[-61.45810546874999,15.633105468750003],[-61.277246093749994,15.526708984374991],[-61.281689453125,15.2490234375]]]},"properties":{"name":"Dominica","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[11.361425781250006,54.891650390625045],[11.739550781250017,54.80742187500002],[11.765917968750074,54.67944335937506],[11.457421875000023,54.628857421874955],[11.035546875000051,54.77309570312505],[11.058593750000028,54.940576171874966],[11.361425781250006,54.891650390625045]]],[[[12.549218750000051,54.96577148437504],[12.11884765625004,54.91440429687506],[12.274023437500034,55.064111328124994],[12.549218750000051,54.96577148437504]]],[[[10.061230468750068,54.88637695312502],[9.80625,54.90600585937503],[9.78125,55.06904296875001],[10.061230468750068,54.88637695312502]]],[[[10.734082031250011,54.750732421875],[10.621679687500006,54.851416015625006],[10.95107421875008,55.15620117187501],[10.734082031250011,54.750732421875]]],[[[15.087695312500017,55.021875],[14.684179687500063,55.10224609375004],[14.765332031250068,55.296728515625034],[15.132617187500017,55.14453125000003],[15.087695312500017,55.021875]]],[[[10.645117187500006,55.60981445312498],[10.785253906250034,55.13339843749998],[10.44277343750008,55.04877929687498],[9.988769531250028,55.163183593750006],[9.860644531250045,55.515478515625034],[10.645117187500006,55.60981445312498]]],[[[12.665722656250068,55.596533203125006],[12.550878906250034,55.55625],[12.59921875,55.68022460937502],[12.665722656250068,55.596533203125006]]],[[[12.56875,55.785058593749966],[12.215039062500011,55.46650390624998],[12.413085937500028,55.28618164062502],[12.089941406250006,55.18813476562505],[12.050390625000034,54.81533203125002],[11.8623046875,54.77260742187502],[11.653808593750057,55.186914062499966],[11.286328125000068,55.20444335937498],[10.978906250000051,55.721533203125006],[11.322265625000028,55.752539062500006],[11.627734375000074,55.95688476562498],[11.819726562500023,55.69765625000002],[11.86640625000004,55.968164062499966],[12.218945312499983,56.11865234374997],[12.578710937500006,56.06406250000006],[12.56875,55.785058593749966]]],[[[11.052148437500051,57.25253906250006],[10.873828125000045,57.26225585937499],[11.174511718750011,57.322900390624994],[11.052148437500051,57.25253906250006]]],[[[9.739746093750028,54.82553710937498],[8.670312500000023,54.903417968750034],[8.61591796875004,55.41821289062503],[8.132128906250074,55.59980468749998],[8.16396484375008,56.60688476562498],[8.671679687500045,56.49565429687496],[8.88808593750008,56.73505859374998],[9.06708984375004,56.79384765625005],[9.196386718750006,56.70166015625],[9.2548828125,57.01171875000003],[8.992773437499977,57.01611328125003],[8.771972656250028,56.72529296875004],[8.468359375,56.66455078125],[8.284082031250023,56.85234374999999],[8.618554687500051,57.11127929687498],[9.43359375,57.17431640625003],[9.96230468750008,57.580957031249994],[10.609960937500034,57.73691406249998],[10.282714843750057,56.620507812499994],[10.926171875000051,56.44326171875002],[10.753417968750028,56.24199218749999],[10.31875,56.212890625],[10.18300781250008,55.86518554687504],[9.903710937500023,55.84282226562502],[10.02363281250004,55.76142578125004],[9.591113281250017,55.49321289062502],[9.670996093750063,55.26640624999999],[9.453710937500006,55.03955078125006],[9.732324218750023,54.96801757812506],[9.739746093750028,54.82553710937498]]]]},"properties":{"name":"Denmark","childNum":10,"cp":[10.2768332,56.1773879]}},{"geometry":{"type":"Polygon","coordinates":[[[-71.647216796875,19.195947265624994],[-71.746484375,19.285839843749997],[-71.71147460937499,19.486572265625],[-71.75742187499999,19.688183593749997],[-71.779248046875,19.718164062499994],[-71.6673828125,19.8486328125],[-70.95415039062499,19.913964843749994],[-70.19384765625,19.63803710937499],[-69.95683593749999,19.671875],[-69.739404296875,19.29921875],[-69.23247070312499,19.27182617187499],[-69.60595703125,19.206494140624997],[-69.62363281249999,19.117822265624994],[-68.684765625,18.90478515625],[-68.33916015624999,18.611523437499997],[-68.68740234375,18.21494140624999],[-68.9349609375,18.408007812500003],[-69.27451171874999,18.43984375],[-69.770654296875,18.443554687499997],[-70.479931640625,18.21728515625],[-70.644677734375,18.336230468750003],[-71.02783203125,18.273193359375],[-71.43896484375,17.63559570312499],[-71.63173828125,17.773632812499997],[-71.768310546875,18.03916015624999],[-71.76376953124999,18.20395507812499],[-71.737255859375,18.270800781250003],[-71.7619140625,18.34130859375],[-71.87255859375,18.416210937499997],[-71.940380859375,18.512597656249994],[-72.000390625,18.597900390625],[-71.98686523437499,18.6103515625],[-71.86650390624999,18.614160156249994],[-71.74321289062499,18.73291015625],[-71.72705078125,18.80322265625],[-71.733642578125,18.856396484374997],[-71.80712890625,18.987011718749997],[-71.647216796875,19.195947265624994]]]},"properties":{"name":"Dominican Rep.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[8.207617187500006,36.518945312499994],[8.348730468750006,36.36796875],[8.318066406250011,35.654931640624994],[8.31640625,35.403125],[8.35986328125,35.299609375],[8.394238281250011,35.203857421875],[8.312109375,35.084619140624994],[8.27685546875,34.9794921875],[8.24560546875,34.73408203125],[7.513867187500011,34.080517578125],[7.534375,33.717919921874994],[7.877246093750017,33.172119140625],[8.1125,33.055322265624994],[8.333398437500023,32.543603515624994],[9.044042968750006,32.07236328125],[9.160253906250006,31.621337890625],[9.224023437500023,31.373681640624994],[9.51875,30.229394531249994],[9.310253906250011,30.115234375],[9.805273437500006,29.176953125],[9.916015625,27.785693359374996],[9.74755859375,27.330859375],[9.883203125000023,26.630810546874997],[9.491406250000011,26.333740234375],[9.4482421875,26.067138671875],[10.000683593750011,25.332080078125003],[10.255859375,24.591015625],[10.395898437500023,24.485595703125],[10.686132812500006,24.55136718749999],[11.507617187500017,24.314355468749994],[11.967871093750006,23.517871093750003],[7.481738281250017,20.873095703125003],[5.836621093750011,19.479150390624994],[4.227636718750006,19.142773437499997],[3.3564453125,18.986621093750003],[3.119726562500006,19.103173828124994],[3.255859375,19.4109375],[3.130273437500023,19.85019531249999],[1.685449218750023,20.378369140624997],[1.610644531250017,20.555566406249994],[1.165722656250011,20.817431640625003],[1.1455078125,21.102246093749997],[-1.947900390624994,23.124804687500003],[-4.822607421874977,24.99560546875],[-8.683349609375,27.2859375],[-8.683349609375,27.656445312499997],[-8.683349609375,27.900390625],[-8.659912109375,28.718603515625],[-7.485742187499994,29.392236328124994],[-7.427685546874983,29.425],[-7.142431640624977,29.619580078124997],[-6.855566406249977,29.601611328124996],[-6.755126953125,29.583837890625],[-6.635351562499977,29.568798828124997],[-6.597753906249977,29.578955078125],[-6.520556640624989,29.659863281249997],[-6.479736328125,29.820361328124996],[-6.00429687499999,29.83125],[-5.448779296874989,29.956933593749994],[-5.293652343749983,30.058642578124996],[-5.180126953124983,30.166162109374994],[-4.96826171875,30.465380859374996],[-4.778515624999983,30.552392578124994],[-4.529150390624977,30.625537109374996],[-4.322851562499977,30.698876953124994],[-4.148779296874977,30.8095703125],[-3.626904296874983,31.000927734374997],[-3.833398437499994,31.197802734374996],[-3.837109374999983,31.512353515624994],[-3.768164062499977,31.68955078125],[-3.700244140624989,31.700097656249994],[-3.604589843749977,31.686767578125],[-3.439794921874977,31.704541015624997],[-3.017382812499989,31.834277343749996],[-2.988232421874983,31.87421875],[-2.930859374999983,32.042529296874996],[-2.863427734374994,32.07470703125],[-1.275341796874983,32.089013671874994],[-1.16259765625,32.399169921875],[-1.111035156249983,32.552294921874996],[-1.188232421875,32.60849609375],[-1.29638671875,32.675683593749994],[-1.352148437499977,32.703369140625],[-1.45,32.784814453124994],[-1.510009765625,32.87763671875],[-1.550732421874983,33.073583984375],[-1.67919921875,33.318652343749996],[-1.795605468749983,34.751904296875],[-2.131787109374983,34.970849609374994],[-2.190771484374977,35.02978515625],[-2.219628906249994,35.10419921875],[-1.673632812499989,35.18310546875],[-0.426123046874977,35.8615234375],[-0.048242187499994,35.8328125],[0.312207031250011,36.162353515625],[0.9716796875,36.4439453125],[2.593359375,36.60068359375],[2.972851562500011,36.784472656249996],[3.779003906250011,36.89619140625],[4.758105468750017,36.896337890625],[5.29541015625,36.648242187499996],[6.486523437500011,37.085742187499996],[6.927539062500017,36.91943359375],[7.238476562500011,36.968505859375],[7.204296875000011,37.0923828125],[7.910449218750017,36.856347656249994],[8.576562500000023,36.93720703125],[8.601269531250011,36.833935546875],[8.207617187500006,36.518945312499994]]]},"properties":{"name":"Algeria","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-80.131591796875,-2.973144531249957],[-80.27294921875003,-2.995898437499974],[-80.22368164062502,-2.753125],[-80.08076171874995,-2.668847656249966],[-79.90903320312495,-2.725585937499972],[-80.131591796875,-2.973144531249957]]],[[[-90.42392578125,-1.339941406250034],[-90.51953124999994,-1.299121093749974],[-90.47719726562494,-1.22099609374996],[-90.42392578125,-1.339941406250034]]],[[[-89.41889648437498,-0.911035156249966],[-89.60859374999998,-0.888574218750009],[-89.28784179687503,-0.689843750000023],[-89.41889648437498,-0.911035156249966]]],[[[-90.33486328125,-0.771582031249977],[-90.54213867187502,-0.676464843749955],[-90.53168945312493,-0.581445312499966],[-90.26938476562498,-0.48466796874996],[-90.19272460937498,-0.658789062500006],[-90.33486328125,-0.771582031249977]]],[[[-91.42597656249995,-0.460839843749994],[-91.61074218749994,-0.44394531250002],[-91.64667968749998,-0.284472656249946],[-91.46015625000001,-0.255664062500031],[-91.42597656249995,-0.460839843749994]]],[[[-90.57392578124993,-0.333984375],[-90.8677734375,-0.271386718750037],[-90.78037109374998,-0.160449218749989],[-90.57392578124993,-0.333984375]]],[[[-91.27216796874998,0.025146484374986],[-90.799658203125,-0.752050781249991],[-90.90551757812497,-0.94052734375002],[-91.13105468750001,-1.019628906249977],[-91.41904296874998,-0.996679687500006],[-91.49541015624999,-0.860937499999977],[-91.120947265625,-0.559082031250028],[-91.36918945312493,-0.287207031249977],[-91.42885742187502,-0.023388671874955],[-91.59682617187497,0.002099609374994],[-91.36137695312496,0.125830078124977],[-91.27216796874998,0.025146484374986]]],[[[-78.90922851562502,1.252783203124977],[-78.99169921875003,1.293212890625043],[-78.89980468749997,1.359765625],[-78.90922851562502,1.252783203124977]]],[[[-75.28447265624999,-0.10654296875002],[-75.62626953124999,-0.122851562499974],[-75.63203125000001,-0.157617187500037],[-75.56059570312502,-0.200097656249994],[-75.49106445312498,-0.24833984374996],[-75.42470703124997,-0.408886718749983],[-75.259375,-0.59013671874996],[-75.24960937499998,-0.951855468750026],[-75.34819335937499,-0.966796874999957],[-75.38012695312503,-0.94023437499996],[-75.40805664062503,-0.92431640625],[-75.42041015624997,-0.962207031250003],[-75.570556640625,-1.53125],[-76.08979492187501,-2.133105468749974],[-76.6791015625,-2.562597656249991],[-77.860595703125,-2.981640625000011],[-78.240380859375,-3.472558593750009],[-78.345361328125,-3.397363281249966],[-78.64799804687499,-4.248144531250006],[-78.68603515625003,-4.562402343749994],[-78.86152343749998,-4.665039062499943],[-78.90761718749997,-4.714453124999977],[-78.92578125,-4.770703124999983],[-78.91420898437497,-4.818652343749974],[-78.919189453125,-4.858398437499986],[-78.97539062499999,-4.873242187499997],[-78.99526367187497,-4.908007812499974],[-79.03330078124998,-4.96914062499999],[-79.07626953125003,-4.990625],[-79.18666992187497,-4.958203124999983],[-79.26811523437493,-4.957617187499949],[-79.33095703124997,-4.92783203125002],[-79.39941406249997,-4.840039062499983],[-79.45576171874998,-4.766210937499949],[-79.50190429687495,-4.670605468750011],[-79.51616210937493,-4.539160156249963],[-79.57768554687496,-4.50058593750002],[-79.638525390625,-4.454882812500031],[-79.71098632812502,-4.467578124999946],[-79.79726562500002,-4.47636718749996],[-79.8451171875,-4.445898437499977],[-79.962890625,-4.390332031250026],[-80.06352539062499,-4.327539062500023],[-80.13955078125002,-4.296093750000011],[-80.19746093750001,-4.311035156249943],[-80.293359375,-4.416796875],[-80.38349609374998,-4.46367187499996],[-80.424169921875,-4.461425781250028],[-80.47856445312499,-4.430078125000037],[-80.48847656249995,-4.393652343749991],[-80.44384765625003,-4.335839843750023],[-80.35288085937495,-4.208496093750014],[-80.453759765625,-4.205175781249963],[-80.48847656249995,-4.165527343749972],[-80.49345703124999,-4.119140625000014],[-80.510009765625,-4.06953125000004],[-80.49013671874994,-4.010058593750003],[-80.43720703125001,-3.978613281249991],[-80.30327148437499,-4.005078124999969],[-80.26689453124993,-3.948828124999963],[-80.23051757812499,-3.924023437499969],[-80.19414062499996,-3.905859375],[-80.24375,-3.576757812500006],[-80.32465820312498,-3.387890625],[-79.96333007812501,-3.15771484375],[-79.72988281249997,-2.579101562499972],[-79.842138671875,-2.0673828125],[-79.92558593749996,-2.548535156249969],[-80.03017578124994,-2.556738281249949],[-80.00664062499993,-2.353808593750003],[-80.28471679687502,-2.706738281249955],[-80.93217773437493,-2.269140624999977],[-80.76059570312498,-1.934570312500028],[-80.90239257812499,-1.078906249999974],[-80.55390624999998,-0.847949218749989],[-80.45546875,-0.585449218749986],[-80.282373046875,-0.620507812500023],[-80.48227539062503,-0.368261718749963],[-80.046142578125,0.155371093750048],[-80.08828124999997,0.78476562500002],[-78.89965820312503,1.20625],[-78.85966796874996,1.455371093750031],[-78.1806640625,0.968554687499974],[-77.702880859375,0.837841796874997],[-77.46767578124997,0.636523437500017],[-77.396337890625,0.393896484374963],[-76.49462890624997,0.23544921875002],[-76.27060546874998,0.439404296874997],[-75.77666015624999,0.08925781249998],[-75.28447265624999,-0.10654296875002]]]]},"properties":{"name":"Ecuador","childNum":9}},{"geometry":{"type":"Polygon","coordinates":[[[34.24531250000001,31.208300781249996],[34.904296875,29.47734375],[34.736425781250006,29.27060546875],[34.39970703125002,28.01601562499999],[34.22011718750002,27.764306640624994],[33.76025390625,28.04765625],[33.24775390625001,28.567724609375],[32.56572265625002,29.973974609375],[32.35976562500002,29.630664062499996],[32.89824218750002,28.565234375],[33.54707031250001,27.898144531249997],[33.5498046875,27.607373046874997],[33.84931640625001,27.184912109375],[33.959082031250006,26.6490234375],[35.19414062500002,24.475146484375003],[35.78388671875001,23.937792968750003],[35.54082031250002,23.920654296875],[35.50439453125,23.779296875],[35.697851562500006,22.946191406249994],[36.22968750000001,22.628808593749994],[36.87138671875002,21.996728515624994],[31.434472656250023,21.995849609375],[31.486132812500017,22.14780273437499],[31.400292968750023,22.202441406250003],[31.260644531250023,22.00229492187499],[31.092675781250023,21.994873046875],[28.036425781250017,21.995361328125],[24.980273437500017,21.995849609375],[24.980273437500017,25.5888671875],[24.980273437500017,29.181884765625],[24.703222656250006,30.201074218749994],[24.96142578125,30.678515625],[24.85273437500001,31.334814453125],[25.150488281250006,31.654980468749997],[25.382226562500023,31.51279296875],[25.89326171875001,31.620898437499996],[27.248046875,31.377880859374997],[27.5400390625,31.212695312499996],[28.51484375000001,31.050439453124994],[29.072070312500017,30.830273437499997],[29.929785156250006,31.227490234374997],[30.22265625,31.2583984375],[30.395117187500006,31.4576171875],[30.92353515625001,31.566845703124997],[30.56298828125,31.4169921875],[31.001757812500017,31.462792968749994],[31.082910156250023,31.603320312499996],[31.5244140625,31.458251953125],[31.888964843750017,31.54140625],[32.13603515625002,31.341064453125],[31.8921875,31.482470703124996],[31.77109375,31.292578125],[32.10175781250001,31.092822265624996],[32.281835937500006,31.200878906249997],[32.21621093750002,31.29375],[32.60332031250002,31.06875],[33.66650390625,31.130419921874996],[34.19814453125002,31.322607421875],[34.24531250000001,31.208300781249996]]]},"properties":{"name":"Egypt","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[40.141210937500006,15.696142578125034],[40.399023437500006,15.579882812500045],[39.975195312500006,15.612451171875023],[39.94746093750004,15.696142578125034],[40.07050781250004,15.676611328125034],[39.93994140625003,15.744531250000023],[39.9567382812501,15.889404296875057],[40.141210937500006,15.696142578125034]]],[[[40.07646484375002,16.082421875000023],[40.11005859375004,15.985742187500051],[39.99609375000003,16.04267578125001],[40.07646484375002,16.082421875000023]]],[[[40.938574218750006,13.983105468749997],[40.82011718750002,14.111669921874991],[40.22148437500002,14.431152343749972],[39.531835937500006,14.53671875],[39.198046875000074,14.479394531250037],[39.1354492187501,14.581884765625034],[39.07421874999997,14.628222656249974],[39.02382812499999,14.628222656249974],[38.99570312500006,14.586865234374983],[38.81201171875003,14.482324218750009],[38.50439453124997,14.42441406250002],[38.43144531250002,14.428613281249994],[38.221484375000074,14.649658203124986],[38.002539062500006,14.737109375000045],[37.94345703125006,14.810546875],[37.884179687499994,14.852294921874972],[37.82031250000003,14.708496093749986],[37.70839843750005,14.45722656250004],[37.64843750000003,14.32255859375006],[37.571191406249994,14.149072265624966],[37.546777343749994,14.143847656249974],[37.507226562499994,14.156396484375037],[37.257226562499994,14.453759765625051],[37.024511718750006,14.271972656250057],[36.81191406250005,14.315039062500034],[36.67910156250005,14.307568359375026],[36.542382812499994,14.25820312499999],[36.52431640625005,14.256835937499986],[36.492285156250006,14.544335937500023],[36.470800781250006,14.736474609375009],[36.448144531249994,14.940087890625009],[36.42675781249997,15.132080078125043],[36.566015625,15.362109375],[36.9137695312501,16.296191406250045],[36.887792968750006,16.624658203124994],[36.9787109375001,16.800585937500045],[36.9757812500001,16.866552734375006],[36.99521484375006,17.020556640625017],[37.00898437500004,17.058886718750017],[37.06152343749997,17.061279296875057],[37.16953125000006,17.04140625],[37.41103515625005,17.061718749999955],[37.452929687500074,17.108691406250017],[37.51015625,17.28813476562499],[37.54746093750006,17.32412109375005],[37.78242187500004,17.458007812500057],[38.253515625,17.584765625000017],[38.26728515625004,17.616699218750057],[38.28984375000002,17.637011718750017],[38.34736328125004,17.68359375],[38.37373046875004,17.717333984375045],[38.42246093750006,17.823925781249983],[38.60947265625006,18.00507812500004],[39.03447265625002,17.085546875000034],[39.298925781250006,15.921093750000011],[39.78554687499999,15.124853515624991],[39.86376953124997,15.470312500000034],[40.20410156250003,15.014111328124983],[41.17646484375004,14.620312500000054],[41.65820312499997,13.983056640624994],[42.24511718749997,13.587646484374986],[42.39931640625005,13.212597656249969],[42.522851562499994,13.221484375],[42.796191406250074,12.864257812500057],[42.96953125000002,12.808349609375028],[42.99902343750003,12.899511718750048],[43.08291015625005,12.824609374999966],[43.11669921874997,12.708593749999963],[43.00566406250002,12.66230468750004],[42.88330078124997,12.621289062500026],[42.86591796875004,12.622802734374986],[42.82529296875006,12.569335937500014],[42.767480468749994,12.422851562500014],[42.70371093750006,12.380322265625054],[42.479394531249994,12.513623046875026],[42.45,12.521337890625006],[42.40859375,12.494384765625014],[42.37851562500006,12.46640625],[42.28994140625005,12.570214843750009],[42.225,12.661962890624963],[42.13427734374997,12.771435546874969],[41.95214843749997,12.88232421875],[41.85957031250004,13.025878906250028],[41.76503906250005,13.183935546874991],[41.362890625,13.499804687500031],[40.938574218750006,13.983105468749997]]]]},"properties":{"name":"Eritrea","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-17.887939453125,27.809570312500057],[-17.984765625000023,27.646386718750023],[-18.160546874999937,27.76147460937503],[-17.887939453125,27.809570312500057]]],[[[-15.400585937499955,28.147363281250023],[-15.436767578124972,27.810693359375023],[-15.71030273437492,27.784082031250023],[-15.809472656249966,27.994482421874977],[-15.682763671874994,28.15405273437497],[-15.400585937499955,28.147363281250023]]],[[[-17.184667968749977,28.02197265624997],[-17.324902343749955,28.11767578125003],[-17.25859375,28.203173828125045],[-17.103759765624943,28.111132812500017],[-17.184667968749977,28.02197265624997]]],[[[-16.33447265624997,28.37993164062499],[-16.41821289062497,28.15141601562496],[-16.65800781249999,28.007177734374977],[-16.905322265625017,28.33959960937503],[-16.12363281249992,28.57597656249996],[-16.33447265624997,28.37993164062499]]],[[[-14.196777343749943,28.169287109375063],[-14.332617187500006,28.056005859374977],[-14.49179687499992,28.100927734374977],[-14.231982421875017,28.21582031250003],[-14.003369140624983,28.706689453125023],[-13.85722656249996,28.73803710937503],[-13.928027343749989,28.25346679687499],[-14.196777343749943,28.169287109375063]]],[[[-17.83427734374999,28.49321289062496],[-18.00078124999999,28.758251953124955],[-17.928808593749977,28.844580078125063],[-17.7265625,28.724462890625006],[-17.83427734374999,28.49321289062496]]],[[[-13.715966796874966,28.911230468750034],[-13.85991210937496,28.869091796874983],[-13.823632812499966,29.013330078124966],[-13.463574218749955,29.237207031250023],[-13.477929687499966,29.00659179687503],[-13.715966796874966,28.911230468750034]]],[[[1.593945312500068,38.672070312499955],[1.40576171875,38.670996093750006],[1.436328125000017,38.768212890624994],[1.593945312500068,38.672070312499955]]],[[[1.445214843750051,38.91870117187503],[1.223339843750068,38.90385742187502],[1.3486328125,39.080810546875],[1.564453125,39.12104492187504],[1.623632812499977,39.03881835937497],[1.445214843750051,38.91870117187503]]],[[[3.145312500000017,39.79008789062499],[3.461816406250023,39.69775390625003],[3.072851562500006,39.30126953124997],[2.799804687500057,39.38505859374999],[2.700585937500023,39.54213867187502],[2.49951171875,39.47788085937498],[2.37001953125008,39.57207031249999],[3.15869140625,39.97050781249999],[3.145312500000017,39.79008789062499]]],[[[4.293652343750011,39.84184570312499],[3.8671875,39.958740234375],[3.853417968750051,40.06303710937502],[4.22578125000004,40.032373046874966],[4.293652343750011,39.84184570312499]]],[[[-1.794042968749949,43.407324218750006],[-1.410693359374932,43.240087890625034],[-1.460839843749937,43.05175781250006],[-1.300048828124943,43.10097656250002],[-0.586425781249943,42.798974609374966],[0.631640625000045,42.689599609374994],[0.696875,42.84511718750005],[1.428320312499977,42.59589843749998],[1.414843750000074,42.54838867187499],[1.448828124999977,42.43745117187504],[1.534082031250051,42.44169921875002],[1.7060546875,42.50332031250005],[1.859765625000051,42.457080078125045],[1.927929687500068,42.42631835937499],[2.032714843750028,42.353515625],[3.21142578125,42.43115234375],[3.248046875,41.94423828125002],[3.0048828125,41.76743164062506],[2.082617187500063,41.287402343750045],[1.032910156250068,41.06206054687496],[0.714648437500074,40.822851562500006],[0.891113281250057,40.72236328125004],[0.59609375000008,40.614501953125],[-0.327001953124949,39.519873046875006],[-0.204931640624949,39.062597656250034],[0.20156250000008,38.75917968750002],[-0.520800781249989,38.317285156249966],[-0.814648437500011,37.76992187500002],[-0.721582031249966,37.63105468749998],[-1.327539062499937,37.561132812500034],[-1.640966796874949,37.38696289062497],[-2.111523437499983,36.77666015624999],[-4.366845703124994,36.71811523437506],[-4.67412109374996,36.506445312500006],[-5.171484374999949,36.423779296874955],[-5.3609375,36.134912109374994],[-5.62548828125,36.02592773437499],[-6.040673828124937,36.18842773437498],[-6.38413085937492,36.63701171874996],[-6.216796875000028,36.91357421875],[-6.396191406249983,36.831640625],[-6.863769531250028,37.27890625],[-7.406152343749937,37.17944335937497],[-7.44394531249992,37.72827148437497],[-6.957568359374932,38.18789062499999],[-7.106396484374983,38.181005859375006],[-7.343017578124943,38.45742187500002],[-6.997949218749994,39.05644531250002],[-7.53569335937496,39.66157226562501],[-7.117675781249972,39.681689453125045],[-6.975390624999932,39.79838867187502],[-6.896093749999949,40.02182617187506],[-7.032617187499966,40.16791992187498],[-6.8101562499999,40.343115234375034],[-6.928466796874972,41.009130859375006],[-6.2125,41.53203125],[-6.542187499999955,41.672509765624994],[-6.61826171874992,41.9423828125],[-7.147119140625023,41.98115234374998],[-7.40361328124996,41.833691406249955],[-8.152490234374937,41.81196289062498],[-8.266064453124983,42.13740234375001],[-8.777148437500017,41.941064453124994],[-8.887207031249943,42.105273437500045],[-8.690917968749943,42.274169921875],[-8.815820312499966,42.285253906250034],[-8.730029296874989,42.411718750000034],[-8.8115234375,42.64033203124998],[-9.033105468750023,42.593847656250006],[-8.927197265624926,42.79858398437497],[-9.235205078124977,42.97690429687498],[-9.178076171874977,43.17402343749998],[-8.248925781249937,43.43940429687498],[-8.256738281249937,43.57988281249999],[-8.004687499999932,43.69438476562496],[-7.503613281249983,43.73994140625001],[-7.060986328124955,43.55395507812503],[-5.846679687499943,43.645068359375045],[-4.52304687499992,43.41572265625004],[-3.604638671874966,43.51948242187504],[-3.045605468749926,43.37158203125],[-2.875048828125017,43.454443359375006],[-2.337109374999926,43.32802734375002],[-1.794042968749949,43.407324218750006]]]]},"properties":{"name":"Spain","childNum":12,"cp":[-2.9366964,40.3438963]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[22.61738281250004,58.62124023437502],[23.323242187500057,58.45083007812502],[22.730273437500045,58.23066406250001],[22.371679687499977,58.217138671875006],[21.996875,57.93134765624998],[22.187695312500068,58.15434570312502],[21.88212890624999,58.262353515624994],[21.862304687500057,58.497167968750034],[22.61738281250004,58.62124023437502]]],[[[23.343554687500017,58.550341796875045],[23.10908203125004,58.65922851562502],[23.332812500000045,58.648583984374994],[23.343554687500017,58.550341796875045]]],[[[22.923730468750023,58.826904296875],[22.54218750000001,58.68999023437499],[22.411035156250023,58.863378906250034],[22.05625,58.94360351562506],[22.6494140625,59.08710937499998],[22.90986328125004,58.99121093749997],[22.923730468750023,58.826904296875]]],[[[28.0125,59.484277343749966],[28.15107421875004,59.374414062499966],[27.434179687500006,58.787255859374994],[27.502441406250057,58.221337890624994],[27.778515625000068,57.87070312500006],[27.542089843750063,57.799414062500006],[27.4,57.66679687499999],[27.35195312500005,57.528125],[26.96601562500001,57.60913085937506],[26.532617187499994,57.53100585937503],[26.29804687500001,57.60107421875],[25.66015625,57.920166015625],[25.27265625000001,58.009375],[25.11103515625004,58.06342773437498],[24.45888671875005,57.907861328124994],[24.3625,57.86616210937501],[24.322558593750074,57.87060546875003],[24.529101562500045,58.35424804687497],[24.114843750000034,58.26611328125006],[23.767578125000057,58.36083984374997],[23.50927734375003,58.65854492187498],[23.680761718750063,58.787158203125074],[23.43203125,58.920654296875],[23.494433593750017,59.19565429687498],[24.083398437500023,59.29189453125005],[24.38037109375003,59.47265625],[25.44375,59.52114257812502],[25.50927734374997,59.63901367187506],[26.974707031250006,59.450634765624955],[28.0125,59.484277343749966]]]]},"properties":{"name":"Estonia","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[38.43144531250002,14.428613281249994],[38.50439453125,14.424414062499991],[38.81201171875,14.482324218749994],[38.995703125,14.586865234374997],[39.02382812500002,14.628222656250003],[39.07421875,14.628222656250003],[39.13544921875001,14.581884765624991],[39.19804687500002,14.479394531249994],[39.531835937500006,14.53671875],[40.22148437500002,14.43115234375],[40.82011718750002,14.111669921874991],[40.938574218750006,13.983105468749997],[41.362890625,13.499804687500003],[41.76503906250002,13.183935546874991],[41.85957031250001,13.02587890625],[41.9521484375,12.88232421875],[42.13427734375,12.771435546874997],[42.225,12.661962890624991],[42.28994140625002,12.570214843749994],[42.378515625,12.46640625],[41.79267578125001,11.68603515625],[41.79824218750002,10.98046875],[42.557714843750006,11.080761718749997],[42.92275390625002,10.999316406249989],[42.65644531250001,10.6],[42.84160156250002,10.203076171874997],[43.181640625,9.879980468749991],[43.482519531250006,9.379492187499991],[43.98378906250002,9.008837890624989],[46.97822265625001,7.9970703125],[47.97822265625001,7.9970703125],[44.940527343750006,4.912011718749994],[43.988867187500006,4.950537109374991],[43.58349609375,4.85498046875],[43.12568359375001,4.644482421874997],[42.85664062500001,4.32421875],[42.02412109375001,4.137939453125],[41.91533203125002,4.031298828124989],[41.88398437500001,3.977734375],[41.73769531250002,3.979052734374989],[41.48193359375,3.96328125],[41.37246093750002,3.946191406249994],[41.22089843750001,3.943554687499997],[41.02080078125002,4.057470703124991],[40.765234375,4.27304687499999],[39.84218750000002,3.851464843749994],[39.79033203125002,3.754248046874991],[39.65751953125002,3.577832031249997],[39.49443359375002,3.456103515624989],[38.608007812500006,3.60009765625],[38.45156250000002,3.604833984374991],[38.22529296875001,3.618994140624991],[38.08613281250001,3.64882812499999],[37.15458984375002,4.254541015624994],[36.90556640625002,4.411474609374991],[36.02197265625,4.468115234374991],[35.76308593750002,4.808007812499994],[35.75615234375002,4.950488281249989],[35.779296875,5.105566406249991],[35.80029296875,5.156933593749997],[35.74501953125002,5.343994140625],[35.325292968750006,5.364892578124994],[35.2646484375,5.412060546874997],[35.26386718750001,5.457910156249994],[35.26835937500002,5.492285156249991],[34.98359375000001,5.858300781249994],[34.71064453125001,6.660302734374994],[34.06425781250002,7.225732421874994],[33.902441406250006,7.509521484375],[32.99892578125002,7.899511718749991],[33.28105468750002,8.437255859375],[33.95332031250001,8.443505859374994],[34.07275390625,8.545263671874991],[34.078125,9.461523437499991],[34.31123046875001,10.190869140624997],[34.34394531250001,10.658642578124997],[34.571875,10.880175781249989],[34.77128906250002,10.746191406249991],[34.93144531250002,10.864794921874989],[35.1123046875,11.816552734374994],[35.67021484375002,12.623730468749997],[36.12519531250001,12.75703125],[36.52431640625002,14.2568359375],[36.54238281250002,14.25820312499999],[36.67910156250002,14.307568359374997],[36.81191406250002,14.315039062499991],[37.024511718750006,14.27197265625],[37.25722656250002,14.453759765624994],[37.50722656250002,14.156396484374994],[37.54677734375002,14.143847656250003],[37.57119140625002,14.149072265624994],[37.6484375,14.322558593750003],[37.70839843750002,14.457226562499997],[37.8203125,14.70849609375],[37.88417968750002,14.852294921875],[37.943457031250006,14.810546875],[38.002539062500006,14.737109375],[38.22148437500002,14.649658203125],[38.43144531250002,14.428613281249994]]]},"properties":{"name":"Ethiopia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[22.17509765624999,60.370751953124994],[22.41552734375003,60.30336914062505],[22.36054687500004,60.165576171875045],[22.07714843750003,60.286328124999955],[22.17509765624999,60.370751953124994]]],[[[21.450878906250068,60.529589843750045],[21.3,60.47978515625002],[21.224707031250006,60.62060546875003],[21.450878906250068,60.529589843750045]]],[[[21.2177734375,63.241308593750034],[21.415625,63.19736328125006],[21.25341796875,63.152001953124966],[21.08388671875008,63.277539062499955],[21.2177734375,63.241308593750034]]],[[[24.848242187500034,64.99101562499999],[24.576562500000023,65.04287109375],[24.970605468750023,65.05532226562502],[24.848242187500034,64.99101562499999]]],[[[28.96582031250003,69.02197265625],[28.414062500000057,68.90415039062506],[28.77285156250005,68.84003906249995],[28.470703125000057,68.48837890625],[28.685156250000034,68.189794921875],[29.343847656250006,68.06186523437506],[29.988085937500017,67.66826171874999],[29.066210937500045,66.89174804687497],[30.102734375000097,65.72626953125004],[29.715917968750063,65.62456054687502],[29.608007812500006,65.248681640625],[29.826953125000017,65.14506835937502],[29.60419921875004,64.968408203125],[30.072851562500063,64.76503906250005],[30.04189453125005,64.44335937499997],[30.513769531250006,64.2],[30.50390625000003,64.02060546875],[29.991503906250074,63.73515625000002],[31.180859375000097,63.208300781250074],[31.533984375000017,62.885400390624994],[31.18671875000004,62.48139648437504],[29.69013671875004,61.54609375000001],[27.797656250000074,60.53613281250003],[26.53466796874997,60.412890625000074],[26.56933593750003,60.62456054687502],[26.377734375000074,60.42407226562503],[25.955957031250023,60.474218750000034],[26.03583984375004,60.34150390625001],[25.75800781250004,60.26752929687504],[25.65644531250004,60.33320312499998],[24.44560546874999,60.021289062500045],[23.46357421875004,59.986230468749994],[23.021289062500074,59.81601562500006],[23.19843750000001,60.02182617187498],[22.911718750000063,60.20971679687497],[22.749804687500017,60.057275390624994],[22.462695312500045,60.029199218749966],[22.5849609375,60.380566406249955],[21.436035156250057,60.596386718749955],[21.605957031250057,61.59155273437503],[21.255957031250063,61.98964843750005],[21.143847656250045,62.73999023437506],[21.650976562500063,63.039306640625],[21.545117187499983,63.204296874999955],[22.31972656250005,63.310449218749994],[22.532324218750034,63.647851562499994],[23.598925781250074,64.04091796874997],[24.557910156250045,64.801025390625],[25.288183593750063,64.8603515625],[25.34785156250004,65.47924804687497],[24.674902343750006,65.67070312499999],[24.628027343750034,65.85917968750002],[24.15546875000004,65.80527343750006],[23.700292968750034,66.25263671874998],[23.988574218750045,66.81054687500003],[23.64150390625005,67.12939453124997],[23.733593750000068,67.42290039062499],[23.454882812500045,67.46025390625007],[23.63886718750004,67.95439453125002],[22.854101562500034,68.36733398437502],[21.99746093750005,68.52060546874998],[20.622167968750006,69.036865234375],[21.065722656250017,69.04174804687503],[21.06611328125001,69.21411132812497],[21.59375,69.273583984375],[22.410937500000074,68.719873046875],[23.324023437500017,68.64897460937502],[23.85400390625,68.80590820312503],[24.94140625000003,68.59326171875006],[25.748339843750017,68.99013671875],[26.07246093750004,69.69155273437497],[26.525390625000057,69.91503906250003],[27.127539062500063,69.90649414062497],[27.747851562500045,70.06484375],[29.14160156250003,69.67143554687505],[29.33339843750005,69.47299804687503],[28.846289062500006,69.17690429687502],[28.96582031250003,69.02197265625]]]]},"properties":{"name":"Finland","childNum":5}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[178.48789062500018,-18.97412109375],[177.95869140624998,-19.121582031250014],[178.33427734375013,-18.93447265625001],[178.48789062500018,-18.97412109375]]],[[[179.34931640625015,-18.10234375000003],[179.25351562500018,-18.030566406249974],[179.30644531250013,-17.944042968750026],[179.34931640625015,-18.10234375000003]]],[[[178.28017578124994,-17.37197265625001],[178.59160156249996,-17.651464843750006],[178.66767578125004,-18.080859375],[177.95546875000005,-18.264062500000023],[177.32138671875,-18.077539062500037],[177.26396484375007,-17.86347656250004],[177.5044921875,-17.539550781250043],[177.81796875000012,-17.38847656249999],[178.28017578124994,-17.37197265625001]]],[[[180,-16.96308593750001],[179.89697265625003,-16.96406250000004],[180,-16.785742187500034],[180,-16.96308593750001]]],[[[-179.97490234374996,-16.92480468750003],[-180,-16.96298828124999],[-180,-16.907812500000034],[-180,-16.82431640624999],[-180,-16.78554687499999],[-179.86098632812502,-16.68828124999999],[-179.97490234374996,-16.92480468750003]]],[[[-179.92944335937503,-16.502832031250037],[-179.999951171875,-16.540039062499986],[-179.900927734375,-16.431542968749994],[-179.92944335937503,-16.502832031250037]]],[[[179.99921875000004,-16.168554687499977],[179.56416015625004,-16.636914062499997],[179.56816406249996,-16.747460937499966],[179.93037109375004,-16.51943359375005],[179.9279296875001,-16.74443359374996],[179.41933593750005,-16.80654296875001],[179.20234375000004,-16.71269531249999],[179.00683593750003,-16.90019531249999],[178.70664062500018,-16.97617187500002],[178.4974609375,-16.78789062500003],[178.58359375000012,-16.621875],[178.80507812499994,-16.631445312500034],[179.55175781250003,-16.249902343750023],[180,-16.15292968749999],[179.99921875000004,-16.168554687499977]]]]},"properties":{"name":"Fiji","childNum":7}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-61.01875,-51.7857421875],[-60.87597656250003,-51.79423828125004],[-60.94755859374996,-51.94628906250002],[-61.14501953125003,-51.83945312500001],[-61.01875,-51.7857421875]]],[[[-60.28623046874995,-51.461914062500014],[-59.38759765625002,-51.35996093750003],[-59.26806640625,-51.42753906250003],[-59.92138671874997,-51.969531250000045],[-60.246337890625,-51.98642578125003],[-60.35346679687498,-52.13994140625004],[-60.686376953125034,-52.18837890624996],[-60.96142578125003,-52.05732421874999],[-60.23847656249998,-51.771972656250036],[-60.58251953125,-51.71269531250004],[-60.24516601562493,-51.638867187500004],[-60.56845703124998,-51.357812499999945],[-60.28623046874995,-51.461914062500014]]],[[[-60.11171875000002,-51.39589843749998],[-60.275341796874955,-51.28056640625002],[-60.06982421875,-51.307910156249996],[-60.11171875000002,-51.39589843749998]]],[[[-58.85019531249995,-51.26992187499998],[-58.42583007812502,-51.32421875000003],[-58.508935546874994,-51.48359375],[-58.271582031250034,-51.57470703124999],[-58.25922851562501,-51.417089843750034],[-57.976513671874955,-51.384375],[-57.80849609375002,-51.51796875],[-57.96044921874997,-51.58320312500003],[-57.79179687499999,-51.63613281249998],[-58.68349609375002,-51.93623046875001],[-58.65278320312498,-52.09921875],[-59.19584960937496,-52.01767578125],[-59.06801757812502,-52.17304687500003],[-59.341503906249955,-52.19599609375],[-59.395654296874966,-52.308007812499994],[-59.64873046875002,-52.134375],[-59.57080078124994,-51.92539062500003],[-59.05952148437498,-51.685449218749994],[-59.09663085937498,-51.49140624999998],[-58.85019531249995,-51.26992187499998]]]]},"properties":{"name":"Falkland Is.","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[55.79736328125003,-21.33935546875003],[55.36269531250005,-21.27363281250004],[55.23281250000005,-21.05839843749999],[55.311328125000074,-20.90410156249999],[55.661914062500074,-20.90625],[55.8390625000001,-21.13857421874998],[55.79736328125003,-21.33935546875003]]],[[[45.180273437500006,-12.97675781250004],[45.069433593750006,-12.895605468750034],[45.09238281250006,-12.653027343749997],[45.22314453124997,-12.752148437500026],[45.180273437500006,-12.97675781250004]]],[[[-51.65253906249998,4.061279296874972],[-52.327880859375,3.18173828125002],[-52.58300781250003,2.528906249999977],[-52.90346679687502,2.211523437499977],[-53.76777343749998,2.354833984375048],[-54.13007812499998,2.121044921875026],[-54.43310546875,2.207519531250057],[-54.51508789062498,2.245458984374963],[-54.55048828125001,2.293066406249991],[-54.59194335937502,2.313769531250031],[-54.61625976562499,2.326757812500006],[-54.60473632812497,2.335791015624991],[-54.56840820312502,2.342578125000031],[-54.53593749999999,2.343310546875003],[-54.48554687500001,2.416113281250006],[-54.402001953124966,2.46152343750002],[-54.25673828125002,2.713720703124977],[-54.19550781249998,2.817871093750057],[-54.17070312499999,2.993603515624969],[-54.203125,3.138183593750028],[-54.18803710937499,3.178759765625031],[-54.063183593749955,3.353320312499989],[-54.00957031249993,3.448535156250017],[-54.03422851562499,3.62939453125],[-54.350732421874994,4.054101562500023],[-54.47968749999998,4.836523437499991],[-53.91992187499997,5.768994140624983],[-52.899316406249966,5.425048828124986],[-52.29052734375003,4.942187500000031],[-52.324609374999966,4.770898437500037],[-52.21997070312494,4.862792968750014],[-52.05810546875003,4.717382812499963],[-52.00292968749997,4.352294921875014],[-51.82753906250002,4.635693359375026],[-51.65253906249998,4.061279296874972]]],[[[-60.826269531250006,14.494482421874991],[-61.063720703125,14.467089843750017],[-61.01132812499998,14.601904296875034],[-61.21333007812501,14.848583984375011],[-60.927148437499966,14.755175781249989],[-60.826269531250006,14.494482421874991]]],[[[-61.23046875000003,15.889941406250074],[-61.310742187499955,15.894677734374966],[-61.25,16.006298828124983],[-61.23046875000003,15.889941406250074]]],[[[-61.58955078125001,16.006933593750006],[-61.759423828124966,16.062060546875045],[-61.74804687499997,16.355273437500017],[-61.55234374999998,16.270898437499966],[-61.58955078125001,16.006933593750006]]],[[[-61.3271484375,16.230419921874983],[-61.522167968749955,16.22802734375003],[-61.47119140624994,16.506640625000045],[-61.17260742187497,16.25610351562497],[-61.3271484375,16.230419921874983]]],[[[9.480371093750023,42.80541992187503],[9.550683593750051,42.12973632812506],[9.186132812500034,41.38491210937502],[8.80751953125008,41.58837890625],[8.886816406249977,41.70068359375003],[8.621875,41.93071289062502],[8.700976562500045,42.09560546875002],[8.565625,42.35771484374996],[8.81484375000008,42.60791015625003],[9.313378906250023,42.71318359374999],[9.363183593750051,43.01738281249996],[9.480371093750023,42.80541992187503]]],[[[-1.17832031249992,45.904052734375],[-1.213574218750011,45.81660156250004],[-1.388671874999972,46.05039062500006],[-1.17832031249992,45.904052734375]]],[[[5.789746093749983,49.53828125000001],[5.823437500000011,49.50507812499998],[5.9013671875,49.48974609374997],[5.928906250000011,49.47753906249997],[5.959472656250028,49.45463867187502],[6.01142578125004,49.44545898437502],[6.074121093750023,49.45463867187502],[6.119921875000017,49.485205078125034],[6.181054687500051,49.498925781249966],[6.344335937500006,49.45273437499998],[6.735449218750006,49.16059570312498],[7.450585937500051,49.152197265625034],[8.134863281250006,48.97358398437498],[7.616601562500023,48.15678710937502],[7.615625,47.59272460937504],[7.343164062499994,47.43310546875003],[7.136035156249989,47.489843750000034],[6.968359375000034,47.453222656250034],[6.900390625000028,47.39423828125001],[7.000585937500034,47.339453125000034],[7.000585937500034,47.32250976562506],[6.978515625000057,47.30205078124996],[6.95205078125008,47.26718750000006],[6.820703125000051,47.163183593750006],[6.688085937500034,47.05825195312505],[6.66689453125008,47.026513671874966],[6.624804687500017,47.00434570312498],[6.45625,46.948339843750034],[6.438646763392874,46.774418247767855],[6.129687500000045,46.56699218750006],[6.118111049107182,46.447459542410726],[6.095898437500011,46.279394531250006],[5.970019531250045,46.214697265625034],[5.971484375000074,46.151220703125006],[6.006640625000045,46.14233398437506],[6.086621093750068,46.14702148437502],[6.19941406250004,46.19306640624998],[6.234667968750045,46.332617187500006],[6.321875,46.39370117187502],[6.428906250000011,46.43051757812506],[6.578222656250034,46.437353515625034],[6.758105468750017,46.41577148437497],[6.772070312500006,46.16513671874998],[6.897265625000017,46.05175781249997],[6.953710937500063,46.017138671875045],[7.00390625,45.95883789062506],[7.021093750000034,45.92578124999997],[6.790917968750023,45.740869140624966],[7.146386718750051,45.381738281249994],[7.07832031250004,45.23994140624998],[6.634765625000028,45.06816406249996],[6.99267578125,44.82729492187502],[6.900195312499989,44.33574218749996],[7.318554687500068,44.13798828125002],[7.637207031250057,44.16484375],[7.4931640625,43.767138671875045],[6.570214843750023,43.199072265625034],[6.115917968750011,43.07236328124998],[5.406542968750074,43.228515625],[5.05976562500004,43.44453125000004],[4.712109375000011,43.373291015625],[3.910839843750011,43.563085937500034],[3.258886718750063,43.193212890625006],[3.051757812500057,42.915136718750006],[3.21142578125,42.43115234375],[2.032714843750028,42.353515625],[1.927929687500068,42.42631835937499],[1.859765625000051,42.457080078125045],[1.7060546875,42.50332031250005],[1.709863281250051,42.604443359374955],[1.568164062500045,42.63500976562506],[1.501367187500023,42.64272460937502],[1.428320312499977,42.59589843749998],[0.696875,42.84511718750005],[0.631640625000045,42.689599609374994],[-0.586425781249943,42.798974609374966],[-1.300048828124943,43.10097656250002],[-1.460839843749937,43.05175781250006],[-1.410693359374932,43.240087890625034],[-1.794042968749949,43.407324218750006],[-1.484863281249943,43.56376953124999],[-1.245507812499937,44.55986328124999],[-1.07695312499996,44.68984375],[-1.152880859374989,44.764013671875006],[-1.245214843749977,44.66669921874998],[-1.081005859374983,45.532421874999955],[-0.548486328124966,45.00058593750006],[-0.790771484375028,45.46801757812497],[-1.195996093749983,45.714453125],[-1.03173828125,45.741064453125006],[-1.14628906249996,46.311376953125034],[-1.786523437499937,46.51484375000001],[-2.059375,46.81030273437497],[-2.01889648437492,47.03764648437502],[-2.197070312499989,47.16293945312506],[-2.027587890625028,47.27358398437502],[-1.742529296874949,47.21596679687502],[-1.97539062499996,47.31069335937505],[-2.503125,47.31206054687496],[-2.427685546874983,47.47089843749998],[-2.770312499999989,47.513867187499955],[-2.787207031249949,47.62553710937496],[-4.312109374999949,47.82290039062502],[-4.678808593749949,48.03950195312501],[-4.32944335937492,48.169970703125045],[-4.577148437499943,48.2900390625],[-4.241406249999926,48.30366210937501],[-4.719384765624966,48.363134765625034],[-4.7625,48.45024414062502],[-4.531201171874983,48.61997070312506],[-3.231445312499972,48.84082031250003],[-2.692333984374983,48.53681640624998],[-2.446191406249937,48.64829101562506],[-2.00371093749996,48.58208007812499],[-1.905712890624955,48.69711914062506],[-1.376464843749972,48.65258789062503],[-1.565478515624932,48.805517578125034],[-1.583105468749977,49.20239257812506],[-1.856445312499972,49.68378906249998],[-1.258642578124949,49.68017578125006],[-1.138525390624977,49.38789062500001],[-0.163476562499937,49.296777343749994],[0.41689453125008,49.448388671874994],[0.129394531250028,49.508447265624966],[0.186718749999983,49.703027343749994],[1.245507812500051,49.99824218750001],[1.5927734375,50.25219726562506],[1.672265625000023,50.885009765625],[2.52490234375,51.097119140624955],[2.759375,50.750634765624994],[3.10683593750008,50.779443359374994],[3.27333984375008,50.53154296875002],[3.595410156250068,50.47734374999999],[3.689355468750023,50.30605468750002],[4.174609375000017,50.24648437500005],[4.149316406250023,49.971582031249994],[4.545019531250063,49.96025390624999],[4.818652343750045,50.153173828125034],[4.867578125000051,49.78813476562502],[5.50732421875,49.51088867187502],[5.789746093749983,49.53828125000001]]]]},"properties":{"name":"France","childNum":10,"cp":[2.8719426,46.8222422]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-7.186865234374949,62.139306640624966],[-7.116796874999977,62.046826171874955],[-7.379101562499926,62.07480468749998],[-7.186865234374949,62.139306640624966]]],[[[-6.631054687499955,62.22788085937498],[-6.655810546874932,62.09360351562498],[-6.840527343749983,62.119287109374994],[-6.725195312499949,61.95146484374999],[-7.17216796874996,62.28559570312501],[-6.631054687499955,62.22788085937498]]],[[[-6.406054687499932,62.258642578125034],[-6.544140624999926,62.20561523437499],[-6.554589843749994,62.35566406250001],[-6.406054687499932,62.258642578125034]]]]},"properties":{"name":"Faeroe Is.","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[158.31484375,6.813671875],[158.18339843750002,6.801269531250057],[158.13476562499997,6.944824218749986],[158.29462890625004,6.951074218750023],[158.31484375,6.813671875]]],[[[138.14267578125006,9.50068359375004],[138.06708984375004,9.419042968750006],[138.18583984375007,9.593310546874989],[138.14267578125006,9.50068359375004]]]]},"properties":{"name":"Micronesia","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[13.293554687500006,2.161572265624997],[13.172167968750017,1.78857421875],[13.21630859375,1.2484375],[13.851367187500017,1.41875],[14.180859375000011,1.370214843749991],[14.429882812500011,0.901464843749991],[14.32421875,0.62421875],[13.949609375000023,0.353808593749989],[13.860058593750011,-0.203320312500011],[14.47412109375,-0.573437500000011],[14.383984375000011,-1.890039062500009],[14.162890625000017,-2.217578125],[14.199804687500006,-2.354199218750011],[13.993847656250011,-2.490625],[13.886914062500011,-2.465429687500006],[13.733789062500023,-2.138476562500003],[13.464941406250006,-2.395410156250009],[12.991992187500017,-2.313378906250009],[12.793554687500006,-1.931835937500011],[12.590429687500006,-1.826855468750011],[12.43212890625,-1.928906250000011],[12.446386718750006,-2.329980468750009],[12.064453125,-2.41259765625],[11.60546875,-2.342578125],[11.537792968750011,-2.83671875],[11.760156250000023,-2.983105468750011],[11.715429687500006,-3.176953125000011],[11.934179687500006,-3.318554687500011],[11.8798828125,-3.665917968750009],[11.685742187500011,-3.68203125],[11.504296875000023,-3.5203125],[11.234472656250006,-3.690820312500009],[11.130175781250017,-3.916308593750003],[10.34765625,-3.013085937500009],[9.722070312500023,-2.467578125],[10.06201171875,-2.549902343750006],[9.624609375,-2.367089843750009],[9.298925781250006,-1.903027343750011],[9.483203125000017,-1.894628906250006],[9.265625,-1.825097656250009],[9.036328125000011,-1.308886718750003],[9.31884765625,-1.632031250000011],[9.501074218750006,-1.55517578125],[9.295800781250023,-1.515234375],[9.3466796875,-1.325],[9.203808593750011,-1.382421875],[9.064648437500011,-1.29833984375],[8.703125,-0.591015625000011],[8.946386718750006,-0.688769531250003],[9.296679687500017,-0.351269531250011],[9.354882812500023,0.343603515624991],[9.468164062500023,0.15976562499999],[9.796777343750023,0.044238281249989],[10.00146484375,0.194970703124994],[9.546484375,0.295947265624989],[9.324804687500006,0.552099609374991],[9.495312500000011,0.664843749999989],[9.617968750000017,0.576513671874991],[9.5908203125,1.031982421875],[9.636132812500023,1.046679687499989],[9.676464843750011,1.07470703125],[9.70458984375,1.079980468749994],[9.760546875000017,1.07470703125],[9.788671875,1.025683593749989],[9.803906250000011,0.998730468749997],[9.90673828125,0.960107421874994],[11.335351562500023,0.999707031249997],[11.332324218750017,1.528369140624989],[11.328710937500006,2.167431640624997],[11.348437500000017,2.299707031249994],[11.558984375000023,2.302197265624997],[13.2203125,2.256445312499991],[13.293554687500006,2.161572265624997]]]},"properties":{"name":"Gabon","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-1.065576171874966,50.69023437500002],[-1.25146484375,50.58881835937498],[-1.563427734374955,50.666113281250006],[-1.31279296874996,50.77348632812502],[-1.065576171874966,50.69023437500002]]],[[[-4.196777343749972,53.321435546874966],[-4.04936523437496,53.30576171874998],[-4.373046875,53.13417968750002],[-4.56787109375,53.386474609375],[-4.315087890625023,53.41723632812503],[-4.196777343749972,53.321435546874966]]],[[[-6.218017578125,54.08872070312506],[-6.649804687499937,54.05864257812496],[-7.007714843749937,54.40668945312501],[-7.324511718750017,54.13344726562502],[-7.606542968750006,54.14384765625002],[-8.118261718749977,54.41425781250004],[-7.75439453125,54.59492187499998],[-7.910595703124955,54.698339843750006],[-7.55039062499992,54.767968749999966],[-7.218652343749937,55.09199218749998],[-6.475048828124955,55.24101562499999],[-6.035791015624994,55.14453125000003],[-5.71684570312496,54.817480468750034],[-5.878613281249955,54.64130859375001],[-5.582519531249943,54.66342773437498],[-5.470410156249926,54.500195312499955],[-5.671093749999955,54.54975585937501],[-5.60678710937492,54.272558593750034],[-6.019042968749972,54.05126953124997],[-6.218017578125,54.08872070312506]]],[[[-5.105419921875011,55.448828125000034],[-5.331494140624955,55.481054687500034],[-5.318115234375,55.709179687499955],[-5.105419921875011,55.448828125000034]]],[[[-6.128906249999972,55.93056640625002],[-6.055322265624994,55.69531249999997],[-6.305078124999966,55.60693359375],[-6.286425781249989,55.77250976562499],[-6.491357421874994,55.697314453125045],[-6.462841796874955,55.808251953124994],[-6.128906249999972,55.93056640625002]]],[[[-5.970068359374949,55.814550781250034],[-6.071972656250011,55.893115234375045],[-5.72514648437496,56.118554687499966],[-5.970068359374949,55.814550781250034]]],[[[-5.77788085937496,56.344335937500034],[-6.313427734374983,56.29365234375001],[-6.138867187499955,56.490625],[-6.286328124999983,56.61186523437502],[-6.102734374999955,56.645654296874966],[-5.760839843749949,56.49067382812501],[-5.77788085937496,56.344335937500034]]],[[[-7.249853515624977,57.115332031250006],[-7.410546874999937,57.38110351562506],[-7.26713867187496,57.37177734375001],[-7.249853515624977,57.115332031250006]]],[[[-6.144726562499983,57.50498046874998],[-6.135546874999989,57.31425781250002],[-5.672460937499977,57.252685546875],[-5.94907226562492,57.045166015625],[-6.034375,57.20122070312499],[-6.322705078124926,57.20249023437498],[-6.761132812499994,57.4423828125],[-6.305957031249989,57.67197265624998],[-6.144726562499983,57.50498046874998]]],[[[-7.205566406250028,57.682958984375006],[-7.182617187499972,57.53330078125006],[-7.514746093749949,57.60195312500002],[-7.205566406250028,57.682958984375006]]],[[[-6.198681640624983,58.36328125000003],[-6.554589843749994,58.092871093750006],[-6.425195312499937,58.02128906249999],[-6.983105468749983,57.75],[-7.083447265624926,57.81376953124999],[-6.856835937499937,57.92353515624998],[-7.085253906249932,58.18217773437499],[-6.726464843749937,58.189404296874955],[-6.776464843750006,58.30151367187497],[-6.237451171874966,58.50283203125005],[-6.198681640624983,58.36328125000003]]],[[[-3.109667968749932,58.515478515625034],[-3.212353515624983,58.32124023437501],[-3.99003906249996,57.95903320312502],[-4.035595703124926,57.85200195312498],[-3.857128906249983,57.81855468750001],[-4.134521484375,57.57773437500006],[-3.402783203124955,57.708251953125],[-2.074072265624977,57.70239257812506],[-1.780664062499994,57.474023437499966],[-2.592675781249937,56.56157226562499],[-3.309960937499966,56.36347656250004],[-2.885156249999937,56.397509765625045],[-2.674267578124955,56.25341796875],[-3.362255859374955,56.02763671875002],[-3.789062499999972,56.09521484375],[-3.048730468749937,55.951953125000045],[-2.599316406249955,56.02729492187501],[-2.14707031249992,55.90297851562502],[-1.655371093749949,55.57036132812502],[-1.232421874999943,54.703710937500034],[-0.084375,54.118066406249994],[-0.20556640625,54.021728515625],[0.115332031250006,53.609277343749994],[-0.270019531249972,53.73676757812504],[-0.659912109375,53.72402343750002],[-0.293701171875,53.69233398437504],[0.270996093750028,53.33549804687499],[0.355761718750045,53.15996093750002],[0.0458984375,52.90561523437498],[0.279785156250028,52.80869140625006],[0.55878906250004,52.96694335937505],[1.05556640625008,52.95898437500003],[1.656738281249972,52.753710937500045],[1.74658203125,52.46899414062503],[1.59140625,52.11977539062502],[1.232421875000057,51.97124023437496],[1.188476562500057,51.803369140624966],[0.752246093750017,51.729589843750034],[0.890917968750017,51.571435546874966],[0.42451171875004,51.465625],[1.414941406250023,51.36328125],[1.397558593750034,51.18203125000002],[0.960156250000011,50.92587890624998],[0.299707031249994,50.775976562500006],[-0.785253906249949,50.76542968749999],[-1.416455078124955,50.896875],[-1.334472656249943,50.82080078124997],[-1.516748046874937,50.747460937499966],[-2.031054687499932,50.72539062499999],[-2.035839843749926,50.603076171875045],[-2.999414062499937,50.71660156249999],[-3.40458984374996,50.63242187499998],[-3.679785156250006,50.239941406249955],[-4.194580078124972,50.39331054687503],[-4.727978515624926,50.29047851562504],[-5.11850585937492,50.038330078125],[-5.622119140624932,50.05068359375002],[-4.188183593749926,51.18852539062502],[-3.135986328124972,51.20502929687501],[-2.433056640624926,51.74072265625],[-3.293115234374994,51.390429687500045],[-3.890771484374994,51.591650390625006],[-4.234570312499955,51.56909179687503],[-4.091015624999926,51.65991210937506],[-4.38627929687496,51.74106445312506],[-4.902294921874926,51.626269531250045],[-5.168359374999937,51.74072265625],[-5.183349609374972,51.94965820312501],[-4.217724609374983,52.277441406250006],[-3.980322265624949,52.54174804687503],[-4.101464843750023,52.915478515624955],[-4.683056640624926,52.80615234374997],[-4.268554687499943,53.14453125],[-3.427734374999972,53.34067382812498],[-3.097558593749937,53.260302734375045],[-3.064746093749932,53.426855468750034],[-2.74951171875,53.310205078124994],[-3.064599609374994,53.512841796874966],[-2.84648437499996,54.135302734375045],[-3.165966796874955,54.12792968750006],[-3.56938476562496,54.46757812499996],[-3.464599609374943,54.77309570312505],[-3.036230468749977,54.95307617187501],[-3.550439453124937,54.94741210937502],[-3.957910156249994,54.780957031249955],[-4.818066406249983,54.84614257812501],[-4.911230468749949,54.68945312500006],[-5.032324218749949,54.76137695312505],[-5.172705078124949,54.98588867187496],[-4.676757812499972,55.50131835937498],[-4.871679687499977,55.87392578125005],[-4.58408203124992,55.93867187500001],[-4.844091796874949,56.05117187499999],[-4.80029296875,56.158349609374994],[-5.228222656249983,55.886328125],[-5.084326171874977,56.197460937499955],[-5.41044921874996,55.995361328125],[-5.55644531249996,55.389599609374955],[-5.730664062499926,55.33413085937502],[-5.504492187499949,55.80239257812502],[-5.609570312499955,56.055273437500034],[-5.188378906249937,56.75805664062503],[-5.652441406249977,56.531982421875],[-6.133691406249966,56.706689453124966],[-5.730615234374994,56.853076171875045],[-5.86142578124992,56.902685546875006],[-5.561914062499994,57.23271484375002],[-5.794921874999972,57.37880859375002],[-5.581787109374972,57.546777343749966],[-5.744921874999989,57.668310546875034],[-5.608349609374955,57.88134765625],[-5.157226562499972,57.88134765625],[-5.413183593750006,58.06972656250002],[-5.338281250000023,58.23872070312498],[-5.008300781250028,58.262646484374955],[-5.016748046874966,58.566552734374966],[-4.433251953124937,58.51284179687505],[-3.25913085937492,58.65],[-3.053076171874949,58.63481445312502],[-3.109667968749932,58.515478515625034]]],[[[-3.057421874999932,59.02963867187498],[-2.793017578124989,58.906933593749955],[-3.331640624999949,58.97124023437499],[-3.31035156249996,59.13081054687498],[-3.057421874999932,59.02963867187498]]],[[[-1.30810546875,60.5375],[-1.052441406249955,60.44448242187502],[-1.299462890624994,59.87866210937503],[-1.290917968749937,60.153466796874966],[-1.663769531249983,60.282519531250074],[-1.374609374999949,60.33291015625002],[-1.571777343749972,60.494433593750074],[-1.363964843750011,60.60957031249998],[-1.30810546875,60.5375]]]]},"properties":{"name":"United Kingdom","childNum":14,"cp":[-2.5830348,54.4598409]}},{"geometry":{"type":"Polygon","coordinates":[[[46.30546875000002,41.507714843749994],[46.61894531250002,41.34375],[46.67255859375001,41.28681640625],[46.66240234375002,41.245507812499994],[46.62636718750002,41.15966796875],[46.534375,41.08857421875],[46.43095703125002,41.077050781249994],[46.086523437500006,41.183837890625],[45.28095703125001,41.449560546875],[45.21718750000002,41.423193359375],[45.00136718750002,41.290966796875],[44.97587890625002,41.277490234374994],[44.81132812500002,41.259375],[44.077246093750006,41.182519531249994],[43.43339843750002,41.155517578125],[43.20546875000002,41.199169921875],[43.15283203125,41.23642578125],[43.14101562500002,41.26484375],[43.17128906250002,41.287939453125],[43.149023437500006,41.30712890625],[43.05712890625,41.352832031249996],[42.90673828125,41.466845703124996],[42.82167968750002,41.4923828125],[42.78789062500002,41.563720703125],[42.75410156250001,41.57890625],[42.68242187500002,41.585742187499996],[42.60683593750002,41.57880859375],[42.590429687500006,41.57070312499999],[42.5673828125,41.55927734375],[42.46640625,41.43984375],[41.92578125,41.495654296874996],[41.82353515625002,41.432373046875],[41.779394531250006,41.44052734375],[41.701757812500006,41.471582031249994],[41.57656250000002,41.497314453125],[41.51005859375002,41.517480468749994],[41.701757812500006,41.705419921875],[41.76298828125002,41.970019531249996],[41.48876953125,42.659326171874994],[40.83662109375001,43.0634765625],[40.46210937500001,43.145703125],[39.97832031250002,43.419824218749994],[40.02373046875002,43.48486328125],[40.084570312500006,43.553125],[40.648046875,43.53388671875],[40.941992187500006,43.41806640625],[41.083105468750006,43.374462890625],[41.35820312500002,43.333398437499994],[41.46074218750002,43.276318359375],[41.58056640625,43.21923828125],[42.76064453125002,43.169580078124994],[42.99160156250002,43.09150390625],[43.00019531250001,43.049658203125],[43.08916015625002,42.9890625],[43.55781250000001,42.844482421875],[43.623046875,42.80771484375],[43.78261718750002,42.747021484375],[43.79873046875002,42.727783203125],[43.79541015625,42.702978515625],[43.74990234375002,42.657519531249996],[43.738378906250006,42.616992187499996],[43.759863281250006,42.59384765625],[43.82597656250002,42.571533203125],[43.95742187500002,42.566552734374994],[44.00468750000002,42.595605468749994],[44.10273437500001,42.616357421874994],[44.32949218750002,42.70351562499999],[44.505859375,42.7486328125],[44.77109375,42.616796875],[44.85048828125002,42.746826171875],[44.87099609375002,42.756396484374996],[44.943359375,42.730273437499996],[45.07158203125002,42.694140625],[45.160253906250006,42.675],[45.34375,42.52978515625],[45.56289062500002,42.5357421875],[45.70527343750001,42.498095703124996],[45.7275390625,42.475048828125],[45.63427734375,42.234716796875],[45.63857421875002,42.205078125],[46.21269531250002,41.989892578124994],[46.42988281250001,41.890966796875],[46.18427734375001,41.7021484375],[46.30546875000002,41.507714843749994]]]},"properties":{"name":"Georgia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-0.068603515625,11.115625],[0.009423828125023,11.02099609375],[-0.08632812499999,10.673046875],[0.380859375,10.291845703124991],[0.264550781250023,9.644726562499997],[0.342578125000017,9.604150390624994],[0.2333984375,9.463525390624994],[0.525683593750017,9.398486328124989],[0.48876953125,8.851464843749994],[0.37255859375,8.75927734375],[0.686328125000017,8.354882812499994],[0.5,7.546875],[0.634765625,7.353662109374994],[0.525585937500011,6.850927734374991],[0.736914062500006,6.452587890624997],[1.187207031250011,6.089404296874989],[0.94970703125,5.810253906249997],[0.259667968750023,5.75732421875],[-2.001855468749994,4.762451171875],[-3.114013671875,5.088671874999989],[-2.815673828125,5.153027343749997],[-2.754980468749977,5.432519531249994],[-2.793652343749983,5.60009765625],[-2.998291015625,5.71132812499999],[-3.227148437499977,6.749121093749991],[-2.959082031249977,7.454541015624997],[-2.789746093749983,7.931933593749989],[-2.668847656249994,8.022216796875],[-2.613378906249977,8.046679687499989],[-2.600976562499994,8.082226562499997],[-2.619970703124977,8.12109375],[-2.61171875,8.147558593749991],[-2.538281249999983,8.171630859375],[-2.505859375,8.208740234375],[-2.600390624999989,8.800439453124994],[-2.649218749999989,8.956591796874989],[-2.689892578124983,9.025097656249997],[-2.746923828124977,9.045117187499997],[-2.705761718749983,9.351367187499989],[-2.695849609374989,9.481347656249994],[-2.706201171874994,9.533935546875],[-2.765966796874977,9.658056640624991],[-2.780517578125,9.745849609375],[-2.791162109374994,10.432421874999989],[-2.914892578124977,10.592333984374989],[-2.829931640624977,10.998388671874991],[-1.04248046875,11.010058593749989],[-0.627148437499983,10.927392578124994],[-0.299462890624994,11.166894531249994],[-0.068603515625,11.115625]]]},"properties":{"name":"Ghana","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-11.389404296875,12.404394531249991],[-11.502197265625,12.198632812499994],[-11.30517578125,12.015429687499989],[-10.933203124999977,12.205175781249991],[-10.709228515625,11.898730468749989],[-10.274853515624983,12.212646484375],[-9.754003906249977,12.029931640624994],[-9.358105468749983,12.255419921874989],[-9.395361328124977,12.464648437499989],[-9.043066406249977,12.40234375],[-8.818310546874983,11.922509765624994],[-8.822021484375,11.673242187499994],[-8.398535156249977,11.366552734374991],[-8.666699218749983,11.009472656249997],[-8.33740234375,10.990625],[-8.266650390624989,10.485986328124994],[-8.007275390624983,10.321875],[-7.990625,10.1625],[-8.155175781249994,9.973193359374989],[-8.136962890625,9.49570312499999],[-7.896191406249983,9.415869140624991],[-7.918066406249977,9.188525390624989],[-7.839404296874989,9.151611328125],[-7.7998046875,9.115039062499989],[-7.777978515624994,9.080859374999989],[-7.902099609375,9.01708984375],[-7.938183593749983,8.979785156249989],[-7.950976562499989,8.786816406249997],[-7.719580078124977,8.643017578124997],[-7.696093749999989,8.375585937499991],[-7.823583984374977,8.467675781249994],[-7.953125,8.477734375],[-8.236962890624994,8.455664062499991],[-8.244140625,8.407910156249997],[-8.256103515625,8.253710937499989],[-8.217138671874977,8.219677734374997],[-8.140625,8.181445312499989],[-8.048583984375,8.169726562499989],[-8.009863281249977,8.07851562499999],[-8.126855468749994,7.867724609374989],[-8.115429687499983,7.7607421875],[-8.205957031249994,7.59023437499999],[-8.231884765624983,7.556738281249991],[-8.429980468749989,7.601855468749989],[-8.486425781249977,7.558496093749994],[-8.659765624999977,7.688378906249994],[-8.8896484375,7.2626953125],[-9.11757812499999,7.215917968749991],[-9.463818359374983,7.415869140624991],[-9.369140625,7.703808593749997],[-9.518261718749983,8.34609375],[-9.781982421875,8.537695312499991],[-10.064355468749994,8.429882812499997],[-10.147412109374983,8.519726562499997],[-10.233056640624994,8.488818359374989],[-10.283203125,8.485156249999989],[-10.360058593749983,8.495507812499994],[-10.394433593749994,8.48095703125],[-10.496435546874977,8.362109374999989],[-10.557714843749977,8.315673828125],[-10.686962890624983,8.321679687499994],[-10.712109374999983,8.335253906249989],[-10.677343749999977,8.400585937499997],[-10.500537109374989,8.687548828124989],[-10.615966796875,9.059179687499991],[-10.726855468749989,9.081689453124994],[-10.747021484374983,9.095263671874989],[-10.749951171874983,9.122363281249989],[-10.687646484374994,9.261132812499994],[-10.682714843749977,9.289355468749989],[-10.758593749999989,9.385351562499991],[-11.047460937499977,9.786328125],[-11.180859374999983,9.925341796874989],[-11.205664062499977,9.977734375],[-11.273632812499983,9.996533203124997],[-11.911083984374983,9.993017578124991],[-12.142333984375,9.87539062499999],[-12.427978515625,9.898144531249997],[-12.557861328125,9.704980468749994],[-12.755859375,9.373583984374989],[-12.958789062499989,9.263330078124994],[-13.077294921874994,9.069628906249989],[-13.292675781249983,9.04921875],[-13.436279296875,9.4203125],[-13.691357421874983,9.535791015624994],[-13.689794921874977,9.927783203124989],[-13.820117187499989,9.88720703125],[-14.045019531249977,10.141259765624994],[-14.426904296874994,10.248339843749989],[-14.609570312499983,10.549853515624989],[-14.593505859375,10.766699218749991],[-14.677343749999977,10.68896484375],[-14.775927734374989,10.931640625],[-14.88671875,10.968066406249989],[-14.975,10.803417968749997],[-15.051220703124983,10.834570312499991],[-15.043017578124989,10.940136718749997],[-14.9990234375,10.9921875],[-14.944433593749977,11.072167968749994],[-14.779296875,11.405517578125],[-14.720263671874989,11.48193359375],[-14.682958984374977,11.508496093749997],[-14.604785156249989,11.511621093749994],[-14.452441406249989,11.556201171874989],[-14.327832031249983,11.629785156249994],[-14.265576171874983,11.659912109375],[-14.122314453125,11.65195312499999],[-13.953222656249977,11.664599609374989],[-13.732763671874977,11.736035156249997],[-13.730664062499983,11.959863281249994],[-13.737988281249983,12.009667968749994],[-13.816308593749994,12.054492187499989],[-13.948876953124994,12.178173828124997],[-13.8875,12.246875],[-13.759765625,12.262353515624994],[-13.673535156249983,12.478515625],[-13.732617187499983,12.592822265624989],[-13.729248046875,12.673925781249991],[-13.082910156249994,12.633544921875],[-13.061279296875,12.489990234375],[-12.930712890624989,12.532275390624989],[-12.399072265624994,12.340087890625],[-11.389404296875,12.404394531249991]]]},"properties":{"name":"Guinea","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-16.763330078124994,13.064160156249997],[-16.824804687499977,13.341064453125],[-16.669335937499994,13.475],[-16.41337890624999,13.269726562499997],[-15.427490234375,13.46835937499999],[-16.135449218749983,13.4482421875],[-16.351806640625,13.34335937499999],[-16.56230468749999,13.587304687499994],[-15.509667968749994,13.586230468750003],[-15.426855468749977,13.727001953124997],[-15.108349609374983,13.81210937499999],[-14.405468749999983,13.503710937500003],[-13.977392578124977,13.54345703125],[-13.826708984374989,13.4078125],[-14.246777343749983,13.23583984375],[-15.151123046875,13.556494140624991],[-15.286230468749977,13.39599609375],[-15.814404296874983,13.325146484374997],[-15.834277343749989,13.156445312499997],[-16.648779296874977,13.154150390624991],[-16.763330078124994,13.064160156249997]]]},"properties":{"name":"Gambia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-15.895898437499966,11.082470703124969],[-15.963964843749977,11.05898437499998],[-15.937695312499955,11.192773437499966],[-15.895898437499966,11.082470703124969]]],[[[-16.11450195312503,11.059423828124977],[-16.236425781249977,11.113427734374966],[-16.06733398437501,11.197216796874983],[-16.11450195312503,11.059423828124977]]],[[[-15.901806640624926,11.4658203125],[-16.02319335937497,11.477148437499991],[-15.964550781249926,11.59829101562498],[-15.901806640624926,11.4658203125]]],[[[-15.986425781249949,11.882031249999969],[-16.038330078124943,11.759716796875011],[-16.15244140624992,11.876806640624963],[-15.986425781249949,11.882031249999969]]],[[[-13.759765625,12.262353515624994],[-13.8875,12.246875],[-13.948876953124966,12.178173828124997],[-13.737988281250011,12.009667968750037],[-13.730664062499926,11.959863281250009],[-13.73276367187492,11.736035156249983],[-13.953222656249977,11.664599609374989],[-14.265576171874926,11.659912109375014],[-14.327832031250011,11.629785156250009],[-14.452441406249989,11.556201171875017],[-14.604785156249932,11.511621093749994],[-14.682958984374949,11.508496093749983],[-14.720263671875017,11.481933593749986],[-14.779296874999972,11.405517578125057],[-14.944433593749949,11.072167968749994],[-14.999023437499972,10.992187500000043],[-15.04301757812496,10.940136718750011],[-15.09375,11.011035156249974],[-15.054589843749994,11.141943359375006],[-15.222119140624926,11.030908203125037],[-15.216699218749994,11.15625],[-15.39311523437496,11.217236328124983],[-15.354687499999955,11.396337890624963],[-15.479492187499972,11.410302734374966],[-15.072656249999937,11.597802734374966],[-15.230371093750023,11.686767578124972],[-15.412988281249994,11.615234374999972],[-15.501904296875011,11.723779296874966],[-15.467187499999937,11.842822265624974],[-15.078271484374937,11.968994140625014],[-15.941748046875006,11.786621093749986],[-15.92021484374996,11.93779296874996],[-16.138427734375,11.917285156250045],[-16.32807617187501,12.051611328124963],[-16.244580078124955,12.237109375],[-16.43681640624996,12.204150390625045],[-16.711816406249937,12.354833984375006],[-16.656933593749955,12.364355468749991],[-16.52133789062495,12.348632812499986],[-16.41630859374996,12.367675781250057],[-16.24150390624996,12.443310546875011],[-16.144189453124937,12.457421875000037],[-15.839550781249955,12.437890624999966],[-15.57480468749992,12.490380859375009],[-15.19609375,12.679931640624986],[-14.3492187499999,12.67641601562498],[-14.064843749999966,12.675292968750014],[-13.729248046875,12.673925781250006],[-13.732617187499983,12.592822265625003],[-13.673535156249926,12.478515624999986],[-13.759765625,12.262353515624994]]]]},"properties":{"name":"Guinea-Bissau","childNum":5}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[11.332324218750017,1.528369140624989],[11.335351562500023,0.999707031250011],[9.906738281250028,0.960107421875037],[9.80390625000004,0.998730468749997],[9.788671875000034,1.025683593749974],[9.760546874999989,1.074707031250014],[9.704589843750057,1.079980468750023],[9.676464843750011,1.074707031250014],[9.636132812500051,1.046679687499989],[9.590820312500057,1.031982421875014],[9.599414062500045,1.054443359374972],[9.509863281250006,1.114794921875017],[9.385937500000068,1.13925781250002],[9.807031250000051,1.927490234375028],[9.77968750000008,2.068212890625006],[9.800781250000028,2.304443359375],[9.826171875000057,2.297802734374969],[9.8369140625,2.242382812500054],[9.870117187500028,2.21328125],[9.979882812499994,2.167773437500045],[10.790917968750023,2.167578125],[11.096582031250051,2.167480468749986],[11.328710937500006,2.167431640624969],[11.332324218750017,1.528369140624989]]],[[[8.735742187500023,3.758300781249972],[8.910058593750023,3.758203125000051],[8.946093750000074,3.627539062499977],[8.704003906250051,3.223632812500028],[8.474902343749989,3.264648437500043],[8.464648437500045,3.450585937499994],[8.735742187500023,3.758300781249972]]]]},"properties":{"name":"Eq. Guinea","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[23.852246093749983,35.53544921874999],[24.166015625000057,35.59521484375],[24.108984374999977,35.49580078124998],[24.35400390625,35.359472656250034],[25.73017578125004,35.34858398437501],[25.791308593750074,35.122851562500045],[26.32021484375008,35.315136718749955],[26.165625,35.018603515625045],[24.79980468750003,34.93447265625002],[24.70888671875008,35.08906250000001],[24.463671875000045,35.160351562499955],[23.59277343749997,35.257226562499966],[23.56982421875,35.534765625000034],[23.67265624999999,35.51391601562506],[23.736914062500034,35.65551757812503],[23.852246093749983,35.53544921874999]]],[[[27.17607421874999,35.46528320312498],[27.070703125000023,35.59775390624998],[27.22314453125,35.820458984374966],[27.17607421874999,35.46528320312498]]],[[[23.053808593750034,36.18979492187498],[22.91083984375004,36.220996093750045],[22.950488281250045,36.38393554687502],[23.053808593750034,36.18979492187498]]],[[[27.84277343750003,35.929296875000034],[27.71552734375004,35.95732421874996],[27.71630859375003,36.17158203125001],[28.23183593750005,36.43364257812502],[28.087792968750023,36.06533203125002],[27.84277343750003,35.929296875000034]]],[[[25.48242187500003,36.39262695312502],[25.37050781250005,36.35893554687499],[25.408984375000074,36.473730468750006],[25.48242187500003,36.39262695312502]]],[[[26.46064453125001,36.58540039062501],[26.270019531250057,36.54692382812499],[26.370019531250023,36.63857421875002],[26.46064453125001,36.58540039062501]]],[[[26.94960937500005,36.72709960937502],[27.214941406250006,36.89863281249998],[27.352148437499977,36.86889648437506],[26.94960937500005,36.72709960937502]]],[[[25.859375,36.79042968750005],[25.74316406250003,36.78974609374998],[26.06445312500003,36.90273437500002],[25.859375,36.79042968750005]]],[[[27.01972656250004,36.95903320312502],[26.91992187500003,36.94521484375005],[26.88867187499997,37.087255859375034],[27.01972656250004,36.95903320312502]]],[[[25.278906250000034,37.06840820312502],[25.105468750000057,37.034960937500045],[25.235058593750068,37.148535156250006],[25.278906250000034,37.06840820312502]]],[[[25.54589843749997,36.96757812499999],[25.45673828125001,36.9296875],[25.361914062500063,37.07041015624998],[25.52529296875005,37.19638671875006],[25.54589843749997,36.96757812499999]]],[[[24.523535156250063,37.125097656250006],[24.42480468750003,37.131982421874994],[24.48378906250005,37.21020507812503],[24.523535156250063,37.125097656250006]]],[[[25.402734375000023,37.419140624999955],[25.312695312500068,37.48930664062496],[25.462988281250063,37.47109375],[25.402734375000023,37.419140624999955]]],[[[26.029296875000057,37.529394531250034],[26.086328125000023,37.63491210937505],[26.351367187500017,37.67431640625],[26.029296875000057,37.529394531250034]]],[[[25.255859375000057,37.59960937500006],[25.156347656250034,37.54506835937505],[24.99648437500005,37.676904296874994],[25.255859375000057,37.59960937500006]]],[[[24.35595703125003,37.57685546875004],[24.28896484375005,37.52827148437498],[24.37910156250004,37.682714843750006],[24.35595703125003,37.57685546875004]]],[[[26.82441406250004,37.81142578125005],[27.05507812500005,37.70927734375002],[26.84492187500004,37.64472656250001],[26.58105468750003,37.723730468750034],[26.82441406250004,37.81142578125005]]],[[[20.888476562500074,37.805371093749955],[20.993945312500074,37.70800781250003],[20.81855468750004,37.66474609375001],[20.61953125000008,37.855029296875045],[20.691503906250006,37.929541015625034],[20.888476562500074,37.805371093749955]]],[[[24.991699218750057,37.75961914062506],[24.962207031250074,37.69238281250003],[24.7001953125,37.961669921875],[24.956347656250045,37.90478515625006],[24.991699218750057,37.75961914062506]]],[[[20.61230468750003,38.38334960937502],[20.761328125,38.07055664062497],[20.523535156250063,38.106640624999955],[20.4521484375,38.23417968750002],[20.35253906250003,38.179882812499955],[20.563183593750068,38.474951171875034],[20.61230468750003,38.38334960937502]]],[[[26.094042968750017,38.21806640625002],[25.891894531250045,38.243310546874994],[25.991406250000068,38.353515625],[25.846093750000023,38.57402343749996],[26.16035156250001,38.54072265625001],[26.094042968750017,38.21806640625002]]],[[[20.68671875000001,38.60869140625002],[20.5546875,38.58256835937502],[20.69414062499999,38.84423828125003],[20.68671875000001,38.60869140625002]]],[[[24.67470703125005,38.80922851562502],[24.54101562499997,38.788671875],[24.485644531250074,38.980273437500045],[24.67470703125005,38.80922851562502]]],[[[23.41542968750008,38.958642578124994],[23.525,38.8134765625],[24.127539062500034,38.648486328125045],[24.27578125000005,38.22001953124996],[24.58837890625003,38.12397460937504],[24.53652343750005,37.97973632812506],[24.212011718750006,38.11752929687506],[24.040136718750006,38.389990234375034],[23.65078125000008,38.44306640625001],[23.25214843750004,38.80122070312498],[22.870312500000068,38.870507812499966],[23.258203125000023,39.03134765625006],[23.41542968750008,38.958642578124994]]],[[[26.41015625000003,39.329443359375034],[26.59560546875005,39.04882812499997],[26.488671875000023,39.074804687500034],[26.46875,38.97280273437502],[26.10791015625,39.08105468749997],[26.273144531249983,39.19755859374999],[26.072363281250034,39.095605468749994],[25.84414062500008,39.20004882812506],[26.16542968750008,39.37353515625006],[26.41015625000003,39.329443359375034]]],[[[20.077929687500045,39.432714843750034],[19.883984375000068,39.461523437500034],[19.646484375,39.76708984375003],[19.926074218750017,39.773730468750045],[19.8466796875,39.66811523437502],[20.077929687500045,39.432714843750034]]],[[[25.43769531250004,39.98330078125002],[25.357031250000063,39.80810546875003],[25.24941406250005,39.89414062500006],[25.06220703125004,39.852392578125006],[25.05800781250005,39.999658203124966],[25.43769531250004,39.98330078125002]]],[[[24.774218750000074,40.615185546874955],[24.515527343750023,40.64702148437496],[24.623339843750045,40.79291992187501],[24.774218750000074,40.615185546874955]]],[[[26.03896484375008,40.726757812499955],[25.10449218750003,40.994726562500006],[24.792968750000057,40.857519531250034],[24.47705078125,40.94775390625003],[24.082324218750074,40.72407226562504],[23.762792968750063,40.74780273437497],[23.866796875000034,40.41855468750006],[24.21279296875008,40.32778320312502],[24.343359375000034,40.14770507812503],[23.913183593750063,40.35878906250005],[23.72792968750008,40.329736328124994],[23.96748046875001,40.11455078125002],[23.947070312500045,39.96557617187506],[23.66455078125003,40.22382812499998],[23.42626953125,40.26396484374999],[23.62734375,39.92407226562503],[22.896484375000057,40.39990234374997],[22.92226562500008,40.59086914062499],[22.629492187500034,40.49555664062501],[22.59218750000005,40.03691406250002],[23.327734374999977,39.174902343750006],[23.15468750000008,39.10146484375005],[23.16171875,39.25776367187501],[22.92138671874997,39.30634765625004],[22.886035156250074,39.16997070312496],[23.066699218750017,39.03793945312498],[22.569140625000074,38.86748046874999],[23.25292968750003,38.66123046875006],[23.68398437500008,38.35244140625002],[23.96699218750001,38.275],[24.024511718750006,38.139794921874966],[24.01972656250001,37.67773437499997],[23.50175781249999,38.03486328124998],[23.03632812500004,37.87836914062501],[23.48925781250003,37.440185546875],[23.16152343750005,37.333837890625006],[22.725390625000017,37.542138671874966],[23.16015625000003,36.448095703125034],[22.717187500000023,36.79394531250006],[22.42773437500003,36.47578124999998],[22.08046875000008,37.028955078124966],[21.95556640625003,36.990087890625034],[21.892382812500045,36.73730468749997],[21.58291015625005,37.080957031249994],[21.678906250000068,37.38720703125003],[21.124707031250068,37.89160156250003],[21.40371093750005,38.19667968750002],[21.658398437500068,38.17509765624996],[21.82470703125003,38.328125],[22.846386718750068,37.96757812499996],[23.18349609375008,38.133691406249966],[22.421679687500045,38.43852539062499],[22.319921875,38.35683593750005],[21.96533203124997,38.412451171875006],[21.47255859375005,38.321386718750006],[21.3310546875,38.48730468749997],[21.303320312500034,38.373925781249966],[21.113183593750023,38.38466796875002],[20.768554687500057,38.874414062499966],[21.111621093750045,38.89628906249999],[21.11835937500001,39.029980468749955],[20.71337890625,39.03515625000003],[20.300781250000057,39.32709960937501],[20.19140625,39.545800781249966],[20.099414062500074,39.641259765624966],[20.001269531250074,39.70942382812501],[20.022558593750063,39.710693359375],[20.059765624999983,39.69912109375002],[20.13105468750004,39.66162109375003],[20.206835937500017,39.65351562499998],[20.382421875,39.802636718749994],[20.381640625000017,39.84179687500006],[20.311328125000074,39.95078125000006],[20.311132812500034,39.97944335937504],[20.338476562500006,39.991064453125006],[20.38369140625008,40.0171875],[20.408007812500074,40.049462890624994],[20.4560546875,40.065576171874994],[20.657421875000068,40.11738281249998],[20.881640625000017,40.467919921874994],[21.030859375000034,40.62246093750002],[20.95576171875001,40.775292968749994],[20.96425781250005,40.84990234374999],[21.575781250000034,40.86894531249996],[21.627539062500006,40.896337890625034],[21.77949218750004,40.95043945312506],[21.99335937500001,41.13095703125006],[22.18447265625005,41.15864257812501],[22.49355468750005,41.118505859375006],[22.603613281249977,41.14018554687499],[22.724804687500068,41.17851562499999],[22.78388671875004,41.33198242187498],[23.155957031250068,41.32207031249999],[23.239843750000034,41.38496093750001],[23.372070312500057,41.3896484375],[23.433398437500017,41.39873046874999],[23.53583984375001,41.38603515624999],[23.63515625000008,41.386767578125045],[24.011328124999977,41.460058593750034],[24.03291015625004,41.469091796875034],[24.05605468750005,41.527246093749966],[24.38671875,41.523535156250006],[24.487890625,41.55522460937499],[24.518261718750068,41.55253906249996],[24.773730468750045,41.356103515624994],[24.99355468750008,41.36499023437503],[25.133398437500063,41.31577148437506],[25.251171875000068,41.243554687499994],[25.923339843750057,41.311914062499966],[26.066406250000057,41.35068359375006],[26.135351562499977,41.3857421875],[26.155175781250023,41.43486328124999],[26.143554687500057,41.52153320312496],[26.085546875000063,41.704150390625045],[26.10742187499997,41.72568359374998],[26.20058593750005,41.74379882812502],[26.320898437500034,41.716552734375],[26.581347656250074,41.60126953125004],[26.62490234375008,41.401757812499994],[26.330664062499977,41.23876953125],[26.331054687500057,40.954492187499994],[26.03896484375008,40.726757812499955]]]]},"properties":{"name":"Greece","childNum":29}},{"geometry":{"type":"Polygon","coordinates":[[[-61.71552734375,12.012646484374997],[-61.714990234374994,12.18515625],[-61.60703125,12.223291015624994],[-61.71552734375,12.012646484374997]]]},"properties":{"name":"Grenada","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-46.266699218750006,60.781396484374994],[-46.381542968749955,60.66030273437502],[-46.7880859375,60.758398437500034],[-46.205224609374994,60.943505859374994],[-46.266699218750006,60.781396484374994]]],[[[-37.03125,65.53198242187497],[-37.23842773437494,65.60986328125003],[-37.047509765624966,65.722265625],[-37.03125,65.53198242187497]]],[[[-51.01367187499994,69.55249023437497],[-51.202050781249966,69.525],[-51.33886718749994,69.73203125000006],[-51.094580078125006,69.92416992187503],[-50.67900390624999,69.84853515625],[-51.01367187499994,69.55249023437497]]],[[[-52.73115234375001,69.94472656250005],[-52.0453125,69.8072265625],[-51.90019531249999,69.60478515625007],[-53.57841796874996,69.25664062500002],[-54.18271484374995,69.40351562500001],[-53.65830078124998,69.46513671875005],[-53.825,69.54033203124999],[-54.91914062499998,69.71362304687503],[-54.78789062499996,69.94985351562502],[-54.322607421875034,69.94189453125],[-54.83076171875001,70.13295898437502],[-54.37163085937499,70.31728515625],[-53.296728515625034,70.20537109375002],[-52.73115234375001,69.94472656250005]]],[[[-51.67514648437498,70.855224609375],[-52.11938476562497,70.87065429687502],[-52.10673828124999,70.96801757812497],[-51.67514648437498,70.855224609375]]],[[[-25.43232421875001,70.92133789062495],[-25.402246093749994,70.65268554687503],[-26.217871093749977,70.45405273437498],[-26.604687499999926,70.55336914062497],[-28.03525390624995,70.48681640625],[-27.61723632812496,70.91376953125001],[-26.621777343749955,70.87563476562497],[-25.81889648437499,71.04365234375001],[-25.43232421875001,70.92133789062495]]],[[[-53.53520507812493,71.04082031250005],[-53.9578125,71.12773437499999],[-53.58447265625003,71.29707031249995],[-53.53520507812493,71.04082031250005]]],[[[-55.01689453124999,72.79111328125003],[-55.56660156249998,72.56435546875002],[-56.214794921874955,72.71918945312495],[-55.01689453124999,72.79111328125003]]],[[[-18.000537109374932,75.40732421875003],[-17.391992187499937,75.03691406250007],[-18.670800781249966,75.00166015624998],[-18.856054687499977,75.31914062500002],[-18.000537109374932,75.40732421875003]]],[[[-18.58261718749995,76.042333984375],[-19.085351562499966,76.43037109375001],[-18.882470703124937,76.70380859375001],[-18.58261718749995,76.042333984375]]],[[[-71.667333984375,77.32529296874998],[-72.48955078124999,77.43164062499997],[-71.43344726562495,77.394384765625],[-71.667333984375,77.32529296874998]]],[[[-17.6125,79.82587890624995],[-18.662011718749966,79.72001953125005],[-19.13828125,79.85234375000002],[-17.98291015625,80.05517578125003],[-17.471386718749955,80.02871093749997],[-17.6125,79.82587890624995]]],[[[-44.86455078124999,82.08364257812502],[-46.75190429687501,82.34819335937502],[-47.27226562499996,82.65693359375001],[-46.399169921875,82.692138671875],[-44.91748046875003,82.48051757812505],[-44.86455078124999,82.08364257812502]]],[[[-29.952880859375,83.56484374999997],[-25.795068359374994,83.26098632812497],[-31.99267578125,83.0853515625],[-32.03271484374997,82.98344726562502],[-25.12338867187495,83.15961914062501],[-24.47031249999995,82.87739257812498],[-21.582519531249943,82.6341796875],[-23.118066406249966,82.32470703125003],[-29.57939453124996,82.16118164062502],[-29.887402343749983,82.05483398437502],[-29.543847656249994,81.93994140624997],[-27.839501953124966,82.04887695312505],[-25.148828124999966,82.001123046875],[-24.293066406249977,81.70097656250005],[-23.103710937499983,82.01181640625003],[-21.337988281249977,82.068701171875],[-21.230517578125017,81.60136718749999],[-23.11772460937499,80.77817382812498],[-19.62993164062499,81.63989257812503],[-17.456054687499943,81.397705078125],[-16.12070312499995,81.776611328125],[-14.241992187500017,81.81386718750005],[-12.434423828125006,81.68251953125002],[-11.430664062499972,81.45683593750005],[-13.126220703124972,81.08779296875],[-14.452343749999955,80.99311523437498],[-14.503564453124994,80.76328125000006],[-16.76059570312492,80.573388671875],[-15.937255859374972,80.42763671874997],[-16.48876953124997,80.25195312499997],[-18.070947265624994,80.17207031249995],[-19.429199218749943,80.25771484375],[-20.150146484375,80.01123046874997],[-18.99199218749996,79.17836914062502],[-21.133740234374926,78.65864257812501],[-21.729589843749977,77.70854492187499],[-20.862597656249932,77.91186523437503],[-19.490429687499983,77.71889648437497],[-19.46752929687503,77.56582031250005],[-20.162060546874926,77.68984375],[-20.680810546875023,77.61899414062503],[-20.23193359374997,77.36840820312497],[-19.30029296874997,77.22236328124995],[-18.442626953124943,77.259375],[-18.51030273437496,76.77817382812498],[-20.48671875,76.92080078125],[-21.614697265624926,76.68789062499997],[-22.18525390625001,76.79409179687502],[-22.609326171874983,76.70429687500004],[-21.877343749999966,76.57348632812503],[-21.488232421874926,76.271875],[-20.10361328124992,76.21909179687503],[-19.508984374999926,75.75751953124995],[-19.52636718750003,75.18022460937505],[-20.484960937500006,75.31425781249999],[-21.649316406249966,75.02343749999997],[-22.232861328124926,75.11972656249998],[-21.69511718749999,74.96445312500003],[-20.985791015624983,75.07436523437497],[-20.86157226562497,74.63593750000001],[-20.41708984374995,74.9751953125],[-19.98491210937499,74.9751953125],[-19.287011718750023,74.54638671875006],[-19.36914062499997,74.28403320312498],[-20.256445312499977,74.2828125],[-20.653125,74.13735351562502],[-21.954931640624977,74.24428710937497],[-21.942919921874932,74.56572265624999],[-22.32158203124999,74.30253906250002],[-22.134814453124932,73.99047851562503],[-20.36728515624992,73.8482421875],[-20.509667968749966,73.49287109375001],[-22.346875,73.26923828125001],[-23.23320312499999,73.39770507812497],[-24.157714843749943,73.76445312499999],[-24.67724609375,73.602197265625],[-25.521289062500017,73.85161132812499],[-24.79125976562497,73.51127929687502],[-26.062304687500017,73.25302734375],[-27.270410156250023,73.43627929687503],[-26.541845703125006,73.24897460937495],[-27.561621093750006,73.13847656250002],[-27.348046875000023,73.06782226562501],[-25.057031250000023,73.396484375],[-24.132666015625006,73.409375],[-22.036328124999955,72.91845703125006],[-22.29321289062497,72.11953125],[-24.06904296875001,72.49873046874998],[-24.629980468749977,73.03764648437499],[-26.657617187499966,72.71582031249997],[-24.81333007812492,72.90151367187497],[-24.65,72.58251953125],[-25.117871093749983,72.34697265625005],[-24.66684570312492,72.437353515625],[-21.959667968749955,71.74467773437502],[-22.479638671874937,71.38344726562497],[-22.417578125,71.24868164062505],[-22.29902343750001,71.43232421874998],[-21.75224609374999,71.47832031250002],[-21.522656249999926,70.52622070312503],[-22.38413085937492,70.46240234375],[-22.437011718749943,70.860009765625],[-22.690673828124943,70.43730468750002],[-23.327832031249983,70.45097656250007],[-23.97138671875001,70.64946289062499],[-24.562207031249926,71.22353515624997],[-25.885156249999966,71.571923828125],[-27.08720703124999,71.6265625],[-27.107031250000034,71.53266601562498],[-25.842724609374955,71.48017578124995],[-25.74223632812499,71.18359375],[-26.717919921874994,70.95048828125005],[-28.39843749999997,70.99291992187497],[-27.99218749999997,70.89521484374998],[-28.06987304687499,70.69902343750005],[-29.07207031249999,70.444970703125],[-26.621777343749955,70.46337890625],[-26.576806640625023,70.35708007812502],[-27.560839843749932,70.12446289062498],[-27.384179687500023,69.9916015625],[-27.027734374999966,70.20122070312499],[-25.529882812499977,70.35317382812502],[-23.66733398437495,70.139306640625],[-22.28447265624996,70.12583007812498],[-22.287060546874955,70.03339843749998],[-23.03364257812501,69.90083007812498],[-23.04956054687497,69.79272460937497],[-23.86572265624997,69.73671875000002],[-23.739404296874994,69.58862304687497],[-24.296679687500017,69.58554687500006],[-24.295556640624966,69.439306640625],[-25.188574218750006,69.26054687500002],[-25.092431640624937,69.16518554687502],[-25.697998046874943,68.889892578125],[-26.48291015624997,68.67592773437502],[-29.24951171874997,68.29877929687501],[-29.86850585937495,68.31157226562505],[-30.318115234375,68.19331054687501],[-30.72001953124999,68.25117187499998],[-30.610742187499994,68.11791992187503],[-30.97856445312499,68.06132812500005],[-32.32744140624999,68.43730468749999],[-32.16455078125,67.99111328125002],[-33.15698242187497,67.62670898437506],[-34.1982421875,66.65507812499999],[-35.18857421874995,66.25029296875002],[-35.86723632812502,66.44140624999997],[-35.630078124999926,66.13994140625002],[-36.37919921874996,65.830810546875],[-36.52724609375002,66.00771484375],[-36.665185546874966,65.79008789062507],[-37.06279296874996,65.87143554687503],[-37.410058593749994,65.65634765625],[-37.954785156249955,65.63359375000007],[-37.278710937499994,66.30439453124995],[-38.156640624999966,66.38559570312498],[-37.75234375000002,66.26152343750002],[-38.13994140625002,65.90351562499998],[-38.52036132812498,66.00966796875002],[-38.20336914062497,65.71171874999999],[-40.17353515624998,65.55615234375],[-39.57792968749996,65.34077148437501],[-39.937255859375,65.14160156250003],[-40.253125,65.04887695312505],[-41.08442382812501,65.10083007812497],[-40.966015624999955,64.86884765624995],[-40.655468749999926,64.91533203125002],[-40.18222656249998,64.47993164062495],[-40.78173828125,64.22177734375003],[-41.581005859374926,64.29833984375],[-41.03056640624996,64.12104492187504],[-40.61777343749998,64.13173828125],[-40.550390625000034,63.72524414062505],[-40.77519531249999,63.53364257812501],[-41.04873046875002,63.51381835937505],[-41.387890624999926,63.06186523437498],[-41.84448242187497,63.07026367187501],[-42.174511718749955,63.20878906249999],[-41.63447265624998,62.972460937500074],[-41.90898437499996,62.73710937499999],[-42.94165039062503,62.72021484375003],[-42.15297851562502,62.568457031250006],[-42.32148437499998,62.15273437500005],[-42.110205078125006,61.857226562500074],[-42.58530273437498,61.71748046875001],[-42.34736328125001,61.61743164062497],[-42.717041015625,60.767480468749994],[-43.04409179687502,60.523681640625],[-43.92270507812495,60.59536132812502],[-43.21298828124998,60.390673828125074],[-43.122900390625006,60.06123046875001],[-43.32011718749993,59.928125],[-43.95502929687498,60.025488281250006],[-43.65791015625001,59.85864257812503],[-43.90654296874996,59.815478515625045],[-44.11699218750002,59.83193359375002],[-44.06547851562499,59.92480468750003],[-44.412939453125006,59.922607421875],[-44.22436523437494,60.273535156250006],[-44.61328124999997,60.01665039062499],[-45.37924804687495,60.20292968750002],[-45.367773437500006,60.37294921875002],[-44.97470703124995,60.457226562499955],[-44.756738281249966,60.66459960937502],[-45.38051757812494,60.444921875],[-46.04663085937503,60.61572265625],[-46.141943359375006,60.776513671874994],[-45.87021484374998,61.21831054687502],[-46.87446289062501,60.81640625000003],[-48.180810546874966,60.76923828125001],[-47.77031249999999,60.99775390625001],[-48.386425781249926,61.004736328125034],[-48.42817382812501,61.18740234375002],[-48.92207031249998,61.27744140624998],[-49.28906249999997,61.58994140625006],[-49.380273437499994,61.89018554687502],[-48.82871093749998,62.0796875],[-49.62377929687494,61.99858398437499],[-49.553466796875,62.23271484374999],[-50.319238281249966,62.473193359375045],[-50.298730468749966,62.72197265625002],[-49.793115234374994,63.04462890625004],[-50.39008789062501,62.82202148437497],[-51.46884765624995,63.64228515625001],[-51.547509765624994,64.00610351562497],[-50.260693359374955,64.21425781250002],[-50.48662109374996,64.20888671875],[-50.43706054687499,64.31284179687503],[-51.58491210937498,64.10317382812502],[-51.70786132812498,64.205078125],[-51.403759765624926,64.46318359375002],[-50.49208984375002,64.69316406250005],[-50.00898437500001,64.44726562499997],[-50.12163085937493,64.703759765625],[-50.51699218750002,64.76650390625],[-50.96064453124998,65.20112304687498],[-50.721582031249966,64.79760742187503],[-51.22060546875002,64.62846679687502],[-51.25537109375,64.75810546875005],[-51.92260742187503,64.21875],[-52.259033203125,65.154931640625],[-52.537695312500034,65.32880859374998],[-51.61914062500003,65.71318359375002],[-51.091894531250006,65.77578125],[-51.7234375,65.723486328125],[-52.55126953125003,65.46137695312498],[-52.760937499999926,65.59082031249997],[-53.198974609375,65.59404296875002],[-53.106347656249966,65.97714843749998],[-53.39204101562498,66.04833984375],[-51.225,66.88154296875001],[-53.035791015624966,66.20141601562503],[-53.538769531249955,66.13935546874998],[-53.41875,66.64853515624998],[-53.038281249999955,66.82680664062497],[-52.38686523437502,66.88115234375005],[-53.44360351562503,66.924658203125],[-53.88442382812502,67.13554687499999],[-53.79858398437494,67.41816406250001],[-52.666455078124955,67.74970703124995],[-50.613476562499955,67.5279296875],[-51.171044921874966,67.693603515625],[-50.96884765624998,67.80664062500003],[-51.765234375000034,67.73784179687505],[-52.34482421874998,67.83691406249997],[-53.735205078125006,67.54902343750004],[-53.151562499999926,68.20776367187503],[-51.779980468749926,68.05673828124998],[-51.456494140624926,68.116064453125],[-51.21015625000001,68.419921875],[-52.19853515624993,68.22080078125],[-53.38315429687495,68.29736328124997],[-53.03945312500002,68.61088867187499],[-52.60458984374998,68.70874023437503],[-51.62314453124995,68.53481445312505],[-50.945703124999966,68.68266601562505],[-50.807714843750006,68.81699218749998],[-51.24941406250002,68.73994140625001],[-51.084863281249994,69.12827148437498],[-50.29736328124994,69.17060546874998],[-51.07695312499996,69.20947265625],[-50.291699218749955,70.01445312500005],[-52.254638671875,70.05893554687503],[-53.02304687499995,70.30190429687497],[-54.01445312499996,70.42167968750005],[-54.53076171875,70.69926757812502],[-54.16582031249999,70.82011718750005],[-52.801953124999955,70.7505859375],[-50.87236328124993,70.36489257812502],[-50.66328124999998,70.417578125],[-51.32285156249998,70.58876953124997],[-51.25659179687497,70.85268554687502],[-51.77431640625002,71.01044921875001],[-51.018945312499966,71.001318359375],[-51.37666015625001,71.11904296875],[-53.007568359375,71.17998046874999],[-52.89184570312497,71.457666015625],[-51.76992187500002,71.67172851562498],[-53.44008789062502,71.57900390625002],[-53.14453125000003,71.80742187500002],[-53.65214843749996,72.36264648437506],[-53.92773437499997,72.31879882812501],[-53.47758789062502,71.84995117187506],[-54.01992187500002,71.657861328125],[-53.96298828124995,71.45898437499997],[-54.6890625,71.36723632812505],[-55.59404296874999,71.55351562500005],[-55.315576171874994,72.11069335937498],[-54.84013671874996,72.35610351562497],[-55.581445312499994,72.178857421875],[-55.63583984374998,72.300439453125],[-55.29570312499996,72.35439453124997],[-55.60170898437494,72.453466796875],[-54.924951171874994,72.57197265624998],[-54.737939453124994,72.87250976562501],[-55.07309570312498,73.01513671875003],[-55.28891601562498,72.93320312500003],[-55.66855468749998,73.00791015624998],[-55.288281249999955,73.32709960937498],[-56.10405273437496,73.55815429687499],[-55.83828125,73.75971679687501],[-56.22539062499999,74.12910156249995],[-57.23056640624995,74.12529296875007],[-56.70634765625002,74.21918945312501],[-56.717675781249994,74.42924804687499],[-56.25546874999998,74.52680664062498],[-58.56552734374998,75.35273437500001],[-58.249658203124994,75.50668945312503],[-58.51621093749995,75.68906250000006],[-61.18823242187494,76.157861328125],[-63.29130859374996,76.35205078125003],[-63.84306640624999,76.21713867187498],[-64.307275390625,76.31650390624998],[-65.36992187499993,76.13056640625004],[-65.87573242187494,76.23833007812505],[-66.46577148437498,76.13916015625],[-66.99257812500002,76.21293945312502],[-66.67480468750003,75.977392578125],[-68.14873046875002,76.06704101562497],[-69.48408203125001,76.39916992187503],[-68.1142578125,76.65063476562503],[-69.67382812499994,76.73588867187507],[-69.69423828125002,76.98945312500004],[-70.613134765625,76.82182617187499],[-71.14145507812498,77.02866210937503],[-70.86284179687496,77.175439453125],[-68.97832031250002,77.19531250000006],[-68.13554687499999,77.37958984375001],[-66.38945312499999,77.28027343750003],[-66.69121093749999,77.68120117187502],[-67.68808593749995,77.523779296875],[-68.62153320312498,77.60185546875002],[-69.35136718749999,77.467138671875],[-70.53540039062497,77.699560546875],[-70.11445312500001,77.84135742187505],[-71.27163085937494,77.81313476562497],[-72.81806640624995,78.1943359375],[-72.47250976562498,78.48203125],[-71.65131835937493,78.62314453124998],[-68.99345703124999,78.857421875],[-68.37705078124998,79.037841796875],[-65.82553710937503,79.17373046874997],[-64.79228515624993,80.00063476562502],[-64.17915039062498,80.09926757812497],[-66.84365234374997,80.07622070312507],[-67.05063476562503,80.384521484375],[-64.51552734374997,81],[-63.72197265624993,81.05732421875001],[-63.028662109375006,80.88955078125002],[-62.90336914062496,81.21835937500003],[-61.43598632812498,81.13359375000002],[-60.842871093750034,81.85537109374997],[-59.28193359374998,81.88403320312503],[-56.615136718749994,81.362890625],[-59.26181640624998,82.00664062500005],[-54.54887695312496,82.35063476562505],[-53.671337890624955,82.16406249999997],[-53.55566406250003,81.65327148437501],[-53.022558593750034,82.32172851562504],[-50.894433593749994,81.89521484375001],[-49.54106445312496,81.91806640625003],[-50.93554687500003,82.38281250000003],[-50.03710937499994,82.472412109375],[-44.7294921875,81.77983398437505],[-44.23886718749998,82.3681640625],[-45.55654296875002,82.74702148437498],[-41.87646484375,82.680322265625],[-41.36962890625003,82.75],[-46.136816406250006,82.85883789062504],[-46.169042968750006,83.06386718749997],[-45.41459960937496,83.01767578124998],[-43.00927734375003,83.26459960937501],[-41.300146484375006,83.10078125000004],[-40.35683593750002,83.332177734375],[-38.15625,82.9986328125],[-38.74956054687496,83.37084960937497],[-37.72333984374998,83.49775390624998],[-29.952880859375,83.56484374999997]]]]},"properties":{"name":"Greenland","childNum":14}},{"geometry":{"type":"Polygon","coordinates":[[[-89.2328125,15.888671875],[-88.89404296875,15.890625],[-88.60336914062499,15.76416015625],[-88.5939453125,15.950292968749991],[-88.22832031249999,15.72900390625],[-88.271435546875,15.694873046875003],[-88.36455078124999,15.616015625],[-88.68447265625,15.360498046874994],[-88.96098632812499,15.152441406249991],[-89.142578125,15.072314453125003],[-89.22236328125,14.866064453124991],[-89.16220703124999,14.669238281250003],[-89.17177734375,14.606884765624997],[-89.28671875,14.529980468749997],[-89.36259765624999,14.416015625],[-89.5736328125,14.390087890624997],[-89.54716796874999,14.241259765625003],[-90.04814453124999,13.904052734375],[-90.09521484375,13.736523437499997],[-90.60693359375,13.929003906250003],[-91.37734375,13.990185546874997],[-92.23515624999999,14.54541015625],[-92.15854492187499,14.963574218749997],[-92.14423828125,15.001953125],[-92.09873046874999,15.026757812499994],[-92.07480468749999,15.07421875],[-92.187158203125,15.320898437499991],[-92.08212890624999,15.495556640624997],[-91.9572265625,15.703222656249991],[-91.736572265625,16.07016601562499],[-91.433984375,16.070458984374994],[-90.97958984374999,16.07080078125],[-90.70322265624999,16.071044921875],[-90.52197265625,16.071191406249994],[-90.44716796875,16.072705078124997],[-90.45986328125,16.162353515625],[-90.450146484375,16.261376953124994],[-90.4169921875,16.351318359375],[-90.4169921875,16.39101562499999],[-90.47109375,16.43955078124999],[-90.57578125,16.467822265625003],[-90.63408203124999,16.5107421875],[-90.634375,16.565136718749997],[-90.65996093749999,16.630908203125003],[-90.710693359375,16.70810546874999],[-90.975830078125,16.867822265624994],[-91.409619140625,17.255859375],[-91.1955078125,17.254101562499997],[-90.99296874999999,17.25244140625],[-90.98916015625,17.81640625],[-89.16147460937499,17.81484375],[-89.2328125,15.888671875]]]},"properties":{"name":"Guatemala","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[144.74179687500003,13.25927734375],[144.64931640625002,13.4287109375],[144.87539062500002,13.614648437499994],[144.94082031250002,13.5703125],[144.74179687500003,13.25927734375]]]},"properties":{"name":"Guam","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-57.194775390625,5.5484375],[-57.3185546875,5.335351562499994],[-57.20981445312499,5.195410156249991],[-57.331005859375,5.020166015624994],[-57.711083984374994,4.991064453124991],[-57.91704101562499,4.820410156249991],[-57.84599609374999,4.668164062499997],[-58.05429687499999,4.101660156249991],[-57.646728515625,3.39453125],[-57.303662109375,3.377099609374994],[-57.19736328124999,2.853271484375],[-56.704345703125,2.036474609374991],[-56.4828125,1.942138671875],[-56.96953124999999,1.91640625],[-57.03759765625,1.936474609374997],[-57.092675781249994,2.005810546874997],[-57.118896484375,2.013964843749989],[-57.31748046874999,1.963476562499991],[-57.41269531249999,1.908935546875],[-57.500439453125,1.77382812499999],[-57.54575195312499,1.72607421875],[-57.59443359375,1.7041015625],[-57.795654296875,1.7],[-57.8734375,1.667285156249989],[-57.9828125,1.6484375],[-58.03466796875,1.520263671875],[-58.34067382812499,1.587548828124994],[-58.38037109375,1.530224609374997],[-58.39580078124999,1.481738281249989],[-58.5060546875,1.438671875],[-58.511865234374994,1.28466796875],[-58.68461914062499,1.281054687499989],[-58.73032226562499,1.247509765624997],[-58.78720703124999,1.20849609375],[-58.82177734375,1.201220703124989],[-59.231201171875,1.376025390624989],[-59.53569335937499,1.7],[-59.66660156249999,1.746289062499997],[-59.66850585937499,1.842333984374989],[-59.74072265625,1.874169921874994],[-59.75620117187499,1.900634765625],[-59.75522460937499,2.274121093749997],[-59.8896484375,2.362939453124994],[-59.9943359375,2.689990234374989],[-59.854394531249994,3.5875],[-59.55112304687499,3.933544921874997],[-59.557763671874994,3.960009765624989],[-59.62021484374999,4.023144531249997],[-59.73857421874999,4.226757812499997],[-59.69970703125,4.353515625],[-60.1486328125,4.533251953124989],[-59.990673828125,5.082861328124991],[-60.142041015625,5.238818359374989],[-60.241650390625,5.257958984374994],[-60.335205078125,5.199316406249991],[-60.45952148437499,5.188085937499991],[-60.6513671875,5.221142578124997],[-60.742138671875,5.202050781249994],[-61.37680664062499,5.906982421875],[-61.3908203125,5.938769531249989],[-61.303125,6.049511718749997],[-61.22495117187499,6.129199218749989],[-61.15947265624999,6.174414062499991],[-61.12871093749999,6.214306640624997],[-61.152294921875,6.385107421874991],[-61.151025390624994,6.446533203125],[-61.181591796875,6.513378906249997],[-61.20361328125,6.58837890625],[-61.14560546874999,6.69453125],[-60.717919921874994,6.768310546875],[-60.35209960937499,7.002880859374997],[-60.32207031249999,7.092041015625],[-60.32548828124999,7.133984375],[-60.34506835937499,7.15],[-60.46494140624999,7.166552734374989],[-60.523193359375,7.143701171874994],[-60.583203125,7.156201171874997],[-60.63330078125,7.211083984374994],[-60.718652343749994,7.535937499999989],[-60.513623046875,7.813183593749997],[-60.032421875,8.053564453124991],[-59.99072265625,8.162011718749994],[-59.96484375,8.191601562499997],[-59.849072265625,8.248681640624994],[-59.83164062499999,8.305957031249989],[-60.017529296875,8.54931640625],[-59.20024414062499,8.07460937499999],[-58.51108398437499,7.39804687499999],[-58.48056640624999,7.038134765624989],[-58.67294921874999,6.390771484374994],[-58.414990234375,6.85117187499999],[-57.982568359374994,6.785888671875],[-57.54013671874999,6.33154296875],[-57.2275390625,6.178417968749997],[-57.194775390625,5.5484375]]]},"properties":{"name":"Guyana","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[73.70742187500002,-53.13710937499999],[73.46513671875002,-53.184179687500006],[73.25117187500001,-52.97578125000001],[73.83779296875002,-53.11279296875],[73.70742187500002,-53.13710937499999]]]},"properties":{"name":"Heard I. and McDonald Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-83.635498046875,14.876416015624997],[-84.53764648437496,14.633398437499963],[-84.64594726562498,14.661083984375011],[-84.86044921874998,14.809765625000011],[-84.98515624999999,14.752441406249972],[-85.059375,14.582958984374997],[-85.20834960937498,14.311816406250003],[-85.73393554687496,13.85869140625006],[-85.75341796875,13.852050781250028],[-85.78671874999995,13.844433593749997],[-85.98378906249997,13.965673828125006],[-86.04038085937503,14.050146484374977],[-86.33173828124995,13.770068359375031],[-86.37695312500003,13.755664062500031],[-86.61025390624997,13.774853515625026],[-86.73364257812494,13.763476562500017],[-86.75898437499995,13.746142578125045],[-86.77060546875003,13.698730468749972],[-86.763525390625,13.635253906250014],[-86.72958984375,13.4072265625],[-86.710693359375,13.31337890624998],[-86.72929687499996,13.284375],[-86.79213867187497,13.279785156249972],[-86.87353515624994,13.266503906250023],[-86.918212890625,13.223583984374983],[-87.00932617187499,13.007812499999986],[-87.0591796875,12.991455078125028],[-87.337255859375,12.979248046875028],[-87.48911132812503,13.352929687500051],[-87.814208984375,13.399169921875057],[-87.781884765625,13.521386718749994],[-87.71533203125003,13.812695312500011],[-87.73144531250003,13.841064453125014],[-87.80224609374997,13.889990234375034],[-87.89199218749997,13.894970703124983],[-87.99101562499996,13.879638671874972],[-88.15102539062497,13.987353515624974],[-88.44912109374994,13.850976562499994],[-88.48266601562503,13.854248046875043],[-88.49765624999998,13.904541015624986],[-88.50434570312501,13.964208984374963],[-88.51254882812498,13.97895507812504],[-89.12050781249994,14.370214843749991],[-89.36259765624996,14.416015625],[-89.17177734375,14.606884765624983],[-89.16220703125,14.669238281249989],[-89.22236328125001,14.86606445312502],[-89.142578125,15.072314453125031],[-88.96098632812496,15.15244140625002],[-88.68447265625002,15.360498046875037],[-88.36455078124996,15.616015625000045],[-88.27143554687498,15.694873046875045],[-88.22832031249999,15.729003906249972],[-88.131103515625,15.701025390625034],[-87.87495117187495,15.879345703124955],[-86.35664062499998,15.783203125],[-85.93627929687497,15.953417968750045],[-85.98564453124999,16.02416992187497],[-85.48369140624996,15.899511718749977],[-84.97373046874998,15.989892578124994],[-84.55966796875,15.802001953125],[-84.26142578124998,15.822607421875034],[-83.765283203125,15.405468750000054],[-83.972802734375,15.519628906250034],[-84.11132812499997,15.492431640625],[-84.09506835937503,15.400927734375017],[-83.92744140624998,15.394042968750028],[-83.76044921874998,15.220361328124994],[-83.49794921874997,15.222119140624997],[-83.64638671875,15.368408203125043],[-83.36918945312493,15.239990234375],[-83.29086914062498,15.078906250000045],[-83.2255859375,15.042285156250045],[-83.15751953124999,14.993066406249966],[-83.41503906249994,15.008056640625],[-83.5365234375,14.977001953124983],[-83.635498046875,14.876416015624997]]]},"properties":{"name":"Honduras","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[17.60781250000005,42.76904296875],[17.744238281250063,42.70034179687505],[17.34414062500008,42.790380859375006],[17.60781250000005,42.76904296875]]],[[[16.650683593750017,42.99658203125],[17.188281250000045,42.917041015625045],[16.850683593750006,42.8955078125],[16.650683593750017,42.99658203125]]],[[[17.667578125000063,42.897119140624994],[18.436328125000017,42.559716796874994],[18.517480468750023,42.43291015624999],[17.823828125,42.79741210937502],[17.045410156250057,43.014892578125],[17.667578125000063,42.897119140624994]]],[[[16.785253906250006,43.270654296874966],[16.490332031250034,43.28618164062502],[16.44892578125004,43.38706054687506],[16.89130859375001,43.314648437499955],[16.785253906250006,43.270654296874966]]],[[[15.371386718750074,43.973828124999955],[15.437207031250068,43.899511718750006],[15.270019531250028,44.01074218750003],[15.371386718750074,43.973828124999955]]],[[[14.488085937500074,44.66005859375005],[14.31240234375008,44.90039062499997],[14.33125,45.16499023437498],[14.488085937500074,44.66005859375005]]],[[[14.810253906250068,44.97705078124997],[14.45039062500004,45.079199218750006],[14.571093750000017,45.224755859374994],[14.810253906250068,44.97705078124997]]],[[[18.905371093750006,45.931738281250034],[18.839062499999983,45.83574218750002],[19.064257812500045,45.51499023437506],[19.004687500000074,45.39951171875006],[19.4,45.2125],[19.062890625000023,45.13720703125],[19.007128906250045,44.86918945312502],[18.83642578125,44.883251953124955],[18.66259765625,45.07744140624999],[17.812792968750074,45.078125],[16.918652343749983,45.27656249999998],[16.53066406250008,45.21669921875002],[16.29335937500005,45.00883789062496],[16.028320312500057,45.18959960937502],[15.788085937500057,45.17895507812497],[15.736621093750045,44.76582031250001],[16.10341796875008,44.52099609375006],[16.300097656250017,44.12451171875],[17.27382812500005,43.44575195312501],[17.650488281250063,43.006591796875],[17.585156250000068,42.93837890625005],[16.903125,43.392431640625006],[16.393945312500023,43.54335937500002],[15.985546875000068,43.519775390625],[15.185839843750017,44.17211914062503],[15.122949218749994,44.256787109374955],[15.470996093750045,44.27197265625003],[14.981347656250023,44.60292968750005],[14.854589843750034,45.08100585937501],[14.550488281249983,45.297705078125006],[14.31269531250004,45.33779296875002],[13.86074218750008,44.83740234375003],[13.517187500000063,45.481787109375034],[13.878710937500017,45.428369140624994],[14.369921875000074,45.48144531250006],[14.427343750000034,45.50576171875002],[14.56884765625,45.65722656249997],[14.591796875000057,45.65126953125002],[14.649511718750006,45.57148437500001],[14.793066406250034,45.47822265625001],[14.95458984375,45.499902343749994],[15.110449218750034,45.450781250000034],[15.242089843750023,45.44140624999997],[15.339453125000063,45.46704101562506],[15.326660156250028,45.502294921875034],[15.291210937500011,45.541552734375045],[15.283593750000051,45.5796875],[15.35371093750004,45.659912109375],[15.27705078125004,45.73261718749998],[15.652148437500074,45.86215820312498],[15.675585937500045,45.98369140624996],[15.666210937500011,46.04848632812502],[15.596875,46.10922851562506],[15.592578125000017,46.139990234375006],[15.608984374999977,46.171923828125045],[16.1064453125,46.382226562499994],[16.32119140625005,46.53461914062504],[16.42763671875005,46.5244140625],[16.516210937499977,46.499902343749966],[16.569921875,46.48500976562505],[16.748046875000057,46.41640625000002],[16.87148437500008,46.33930664062504],[17.310644531250006,45.99614257812502],[17.80712890625,45.79042968750002],[18.358300781250023,45.75302734375006],[18.533593750000023,45.79614257812503],[18.56464843750004,45.81328124999999],[18.666015625,45.90747070312497],[18.905371093750006,45.931738281250034]]]]},"properties":{"name":"Croatia","childNum":8}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-72.80458984374997,18.777685546875063],[-72.82221679687501,18.707128906249977],[-73.07797851562498,18.790917968749994],[-73.27641601562499,18.95405273437501],[-72.80458984374997,18.777685546875063]]],[[[-71.647216796875,19.195947265624994],[-71.80712890624997,18.987011718749983],[-71.733642578125,18.85639648437501],[-71.72705078125,18.80322265625003],[-71.74321289062502,18.73291015625],[-71.86650390624999,18.61416015625005],[-71.98686523437499,18.61035156249997],[-72.000390625,18.59790039062503],[-71.94038085937493,18.51259765625005],[-71.87255859374997,18.416210937499955],[-71.76191406249998,18.34130859374997],[-71.73725585937495,18.27080078124999],[-71.76831054687497,18.039160156250063],[-71.85292968749997,18.119140625],[-71.94609375,18.186083984375045],[-72.05986328124993,18.228564453125017],[-72.87666015624998,18.151757812499994],[-73.38515625000002,18.251171874999983],[-73.747314453125,18.190234375000017],[-73.88496093749998,18.041894531249994],[-74.478125,18.45],[-74.3875,18.624707031249983],[-74.22773437499998,18.662695312499977],[-72.78935546874996,18.434814453125],[-72.37607421874998,18.57446289062503],[-72.34765624999994,18.674951171874994],[-72.81108398437496,19.071582031250074],[-72.70322265625,19.441064453125023],[-73.43837890624994,19.722119140624983],[-73.21777343750003,19.88369140625005],[-72.63701171875002,19.90087890625],[-72.21982421875003,19.744628906250057],[-71.834716796875,19.696728515624983],[-71.77924804687498,19.718164062499994],[-71.75742187499998,19.68818359375001],[-71.71147460937493,19.486572265625057],[-71.74648437499997,19.28583984375001],[-71.647216796875,19.195947265624994]]]]},"properties":{"name":"Haiti","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[22.1318359375,48.405322265624996],[22.253710937500017,48.407373046874994],[22.582421875000023,48.134033203125],[22.769140625,48.109619140625],[22.87666015625001,47.947265625],[21.99970703125001,47.505029296874994],[21.121679687500006,46.282421875],[20.76025390625,46.246240234374994],[20.613671875000023,46.13349609375],[20.508105468750017,46.166943359375],[20.28095703125001,46.1330078125],[20.241796875,46.10859375],[20.21015625000001,46.126025390624996],[20.161425781250017,46.141894531249996],[19.93408203125,46.161474609375],[19.84443359375001,46.145898437499994],[19.61347656250001,46.169189453125],[19.421289062500023,46.064453125],[18.666015625,45.907470703125],[18.56464843750001,45.81328125],[18.533593750000023,45.796142578125],[18.358300781250023,45.75302734375],[17.80712890625,45.790429687499994],[17.310644531250006,45.996142578124996],[16.871484375000023,46.339306640625],[16.748046875,46.41640625],[16.569921875,46.485009765624994],[16.516210937500006,46.499902343749994],[16.283593750000023,46.857275390625],[16.093066406250017,46.86328125],[16.453417968750017,47.006787109375],[16.44287109375,47.39951171875],[16.676562500000017,47.536035156249994],[16.421289062500023,47.674462890624994],[17.06660156250001,47.707568359374996],[17.147363281250023,48.00595703125],[17.76191406250001,47.770166015624994],[18.72421875,47.787158203124996],[18.791894531250023,48.000292968749996],[19.625390625000023,48.223095703125],[19.95039062500001,48.146630859374994],[20.333789062500017,48.295556640624994],[20.490039062500017,48.526904296874996],[21.45136718750001,48.55224609375],[21.766992187500023,48.3380859375],[22.1318359375,48.405322265624996]]]},"properties":{"name":"Hungary","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[122.9489257812501,-10.90927734375002],[122.82617187500003,-10.899121093749983],[122.84570312500003,-10.761816406249991],[123.37109375000003,-10.474902343749989],[123.41816406250004,-10.651269531250037],[122.9489257812501,-10.90927734375002]]],[[[121.8830078125001,-10.590332031249957],[121.70468750000006,-10.5556640625],[121.99833984375002,-10.446972656249983],[121.8830078125001,-10.590332031249957]]],[[[123.41621093750004,-10.302636718749966],[123.3255859375,-10.264160156249943],[123.45878906250002,-10.13994140624996],[123.41621093750004,-10.302636718749966]]],[[[120.0125,-9.374707031250026],[120.78447265625002,-9.95703125],[120.83261718750006,-10.0375],[120.69804687500002,-10.206640624999949],[120.4391601562501,-10.294042968749991],[120.14482421875002,-10.200097656249952],[119.60107421874997,-9.773535156250006],[119.08544921875003,-9.706933593750023],[118.95878906250002,-9.519335937500003],[119.29589843749997,-9.3671875],[119.9420898437501,-9.301464843750026],[120.0125,-9.374707031250026]]],[[[125.06816406250002,-9.511914062499997],[124.42753906250002,-10.14863281250004],[123.7472656250001,-10.347167968749986],[123.60478515625002,-10.270117187500006],[123.71640625000012,-10.078613281249986],[123.5892578125,-9.966796875000028],[123.709375,-9.61484375],[124.0363281250001,-9.341601562500031],[124.28232421875012,-9.427929687500026],[124.44443359375012,-9.190332031250023],[124.92226562500005,-8.942480468749977],[124.93681640625007,-9.053417968750026],[125.14902343750012,-9.042578125000034],[125.10048828125,-9.189843750000023],[124.96015625000004,-9.213769531250009],[125.06816406250002,-9.511914062499997]]],[[[115.60996093750012,-8.769824218749974],[115.48046875000003,-8.715429687500006],[115.56142578125,-8.669921874999972],[115.60996093750012,-8.769824218749974]]],[[[122.97734375000002,-8.54521484374996],[122.88779296875006,-8.587304687500009],[123.01054687500002,-8.448339843750034],[123.153125,-8.475781250000026],[122.97734375000002,-8.54521484374996]]],[[[119.46406250000004,-8.741015624999974],[119.38554687500002,-8.736035156250026],[119.4464843750001,-8.429199218749957],[119.55722656250012,-8.518847656250003],[119.46406250000004,-8.741015624999974]]],[[[123.31748046875012,-8.354785156249974],[123.02500000000012,-8.395507812500014],[123.21708984375002,-8.235449218750006],[123.33603515625006,-8.269042968750014],[123.31748046875012,-8.354785156249974]]],[[[116.64082031250004,-8.613867187500006],[116.51425781250012,-8.820996093750011],[116.58652343750012,-8.886132812499966],[116.23935546875006,-8.912109375000014],[115.85732421875005,-8.787890625000017],[116.07646484375002,-8.744921874999974],[116.06113281250006,-8.437402343750023],[116.4015625000001,-8.204199218750034],[116.7189453125001,-8.336035156249977],[116.64082031250004,-8.613867187500006]]],[[[124.28662109375003,-8.32949218749998],[124.14667968750004,-8.531445312499997],[123.92773437500003,-8.448925781249969],[124.23955078125002,-8.20341796874996],[124.28662109375003,-8.32949218749998]]],[[[123.92480468750003,-8.2724609375],[123.55302734375007,-8.566796875],[123.23007812500006,-8.530664062500023],[123.47587890625007,-8.322265625000014],[123.39121093750012,-8.280468750000026],[123.77597656250006,-8.190429687499986],[123.92480468750003,-8.2724609375]]],[[[138.89511718750006,-8.388671874999957],[138.56337890625,-8.30908203125],[138.79619140625007,-8.173632812500017],[138.89511718750006,-8.388671874999957]]],[[[117.55634765625004,-8.367285156249949],[117.49052734375007,-8.183398437499974],[117.66503906249997,-8.148242187500003],[117.55634765625004,-8.367285156249949]]],[[[124.5755859375,-8.140820312499997],[125.05029296874997,-8.179589843749994],[125.13173828125,-8.326464843749989],[124.38066406250002,-8.41513671875002],[124.43066406249997,-8.18320312500002],[124.5755859375,-8.140820312499997]]],[[[127.8234375000001,-8.098828124999969],[128.11923828125012,-8.17070312499996],[128.02353515625006,-8.255371093749972],[127.82089843750012,-8.190234375000031],[127.8234375000001,-8.098828124999969]]],[[[122.7829101562501,-8.61171875],[121.65136718749997,-8.898730468749946],[121.41464843750006,-8.81484375],[121.32832031250004,-8.916894531250009],[121.03525390625012,-8.935449218749966],[120.55048828125004,-8.80185546875002],[119.909375,-8.857617187500011],[119.80791015625002,-8.697656250000023],[119.87480468750007,-8.419824218749994],[120.61025390625005,-8.24042968750004],[121.44453125000004,-8.57783203125004],[121.96650390625004,-8.455175781250006],[122.32324218749997,-8.628320312500023],[122.85048828125,-8.304394531250011],[122.91914062500004,-8.221875],[122.75859375000002,-8.185937499999952],[122.91699218749997,-8.105566406250006],[123.00595703125006,-8.329101562499986],[122.7829101562501,-8.61171875]]],[[[130.86220703125,-8.31875],[130.77519531250002,-8.34990234374996],[131.02011718750012,-8.091308593749943],[131.17636718750006,-8.130761718749994],[130.86220703125,-8.31875]]],[[[118.24238281250004,-8.317773437499994],[118.61191406250006,-8.28066406249998],[118.71386718749997,-8.41494140624998],[118.926171875,-8.297656249999974],[119.12968750000002,-8.668164062499969],[118.74589843750002,-8.735449218749991],[118.83261718750012,-8.833398437499966],[118.47861328125012,-8.856445312499957],[118.37890625000003,-8.674609375000031],[118.18994140624997,-8.840527343749997],[117.06132812500002,-9.099023437499994],[116.78847656250005,-9.006347656250028],[116.83505859375012,-8.532421875000026],[117.16484375000007,-8.367187500000014],[117.56708984375004,-8.426367187499991],[117.80605468750005,-8.711132812500011],[117.96953125000002,-8.728027343749986],[118.23486328124997,-8.591894531249963],[117.81484375000005,-8.342089843749974],[117.7552734375,-8.149511718749991],[118.11748046875007,-8.12226562500004],[118.24238281250004,-8.317773437499994]]],[[[115.44785156250012,-8.155175781249994],[115.70429687500004,-8.40712890624998],[115.14492187500005,-8.849023437500037],[115.05507812500005,-8.573046874999946],[114.61318359375,-8.37832031249998],[114.46757812500007,-8.166308593749946],[114.93847656249997,-8.18710937500002],[115.15400390625004,-8.065722656249974],[115.44785156250012,-8.155175781249994]]],[[[129.83886718749997,-7.954589843749986],[129.71347656250012,-8.04072265625004],[129.60898437500006,-7.803417968750011],[129.81298828124997,-7.819726562499952],[129.83886718749997,-7.954589843749986]]],[[[126.80097656250004,-7.667871093750009],[126.4720703125,-7.950390625000011],[126.04003906250003,-7.885839843750006],[125.79824218750005,-7.984570312499969],[125.97529296875004,-7.663378906249989],[126.21367187500002,-7.706738281250026],[126.60957031250004,-7.571777343749972],[126.80097656250004,-7.667871093750009]]],[[[127.41943359375003,-7.623046875000028],[127.37070312500012,-7.512792968749949],[127.47519531250012,-7.531054687500031],[127.41943359375003,-7.623046875000028]]],[[[138.53535156250004,-8.273632812499969],[138.2962890625,-8.405175781250037],[137.65039062499997,-8.386132812499966],[138.08183593750002,-7.566210937500003],[138.29550781250012,-7.4384765625],[138.76982421875002,-7.390429687499974],[138.98906250000002,-7.696093749999989],[138.53535156250004,-8.273632812499969]]],[[[131.3255859375,-7.999511718749986],[131.11376953125003,-7.997363281249989],[131.13779296875012,-7.684863281250017],[131.64345703125,-7.11279296875],[131.73613281250007,-7.197070312500017],[131.64384765625002,-7.266894531249946],[131.62441406250005,-7.626171874999955],[131.3255859375,-7.999511718749986]]],[[[131.98203125000006,-7.202050781249966],[131.75078125000002,-7.116796875],[131.92226562500005,-7.104492187499986],[131.98203125000006,-7.202050781249966]]],[[[128.6701171875001,-7.183300781249969],[128.52978515625003,-7.134570312499989],[128.62773437500007,-7.06875],[128.6701171875001,-7.183300781249969]]],[[[120.77441406250003,-7.118945312500003],[120.64082031250004,-7.115820312499991],[120.63339843750006,-7.018261718750011],[120.77441406250003,-7.118945312500003]]],[[[113.84453125000007,-7.105371093749994],[113.12695312499997,-7.224121093750028],[112.72587890625007,-7.072753906250014],[112.86806640625,-6.899902343749972],[113.06738281250003,-6.879980468749991],[113.97470703125012,-6.873046875],[114.0736328125,-6.960156249999983],[113.84453125000007,-7.105371093749994]]],[[[115.37705078125006,-6.97080078125002],[115.22031250000012,-6.952539062500037],[115.24052734375007,-6.861230468749994],[115.54609375000004,-6.938671874999955],[115.37705078125006,-6.97080078125002]]],[[[105.25283203125005,-6.640429687499946],[105.12138671875007,-6.614941406249997],[105.26054687500002,-6.523925781250014],[105.25283203125005,-6.640429687499946]]],[[[134.53681640625004,-6.442285156249994],[134.32275390624997,-6.84873046875002],[134.09082031249997,-6.833789062500003],[134.10703125000006,-6.471582031250009],[134.19462890625007,-6.459765625],[134.11464843750005,-6.190820312500009],[134.53681640625004,-6.442285156249994]]],[[[107.37392578125005,-6.007617187499989],[107.66679687500002,-6.215820312499957],[108.33017578125012,-6.286035156249966],[108.67783203125006,-6.790527343749972],[110.42626953124997,-6.947265625000028],[110.83476562500002,-6.424218749999952],[110.97226562500012,-6.435644531249977],[111.18154296875005,-6.686718749999969],[111.54033203125002,-6.648242187500031],[112.0873046875,-6.89335937499996],[112.53925781250004,-6.926464843749955],[112.64873046875007,-7.221289062499977],[112.7943359375,-7.304492187499974],[112.79453125000012,-7.55244140625004],[113.01357421875005,-7.657714843749986],[113.49765625000006,-7.723828124999955],[114.07070312500005,-7.633007812500011],[114.40927734375012,-7.79248046875],[114.38691406250004,-8.405175781250037],[114.58378906250002,-8.769628906250034],[113.25332031250005,-8.286718749999963],[112.67880859375006,-8.409179687499957],[111.50996093750004,-8.30507812499998],[110.60722656250002,-8.149414062499972],[109.28164062500005,-7.704882812500003],[108.74121093749997,-7.667089843750034],[108.45175781250006,-7.79697265625002],[107.91748046875003,-7.724121093750014],[107.28496093750007,-7.471679687500014],[106.45527343750004,-7.368652343749986],[106.51972656250004,-7.053710937499943],[106.19824218749997,-6.927832031249977],[105.25546875000012,-6.835253906250031],[105.37089843750002,-6.664355468750031],[105.48369140625007,-6.781542968750017],[105.65507812500002,-6.469531249999946],[105.78691406250002,-6.456933593749966],[105.86826171875006,-6.11640625000004],[106.075,-5.914160156249963],[106.82519531249997,-6.098242187499977],[107.0462890625,-5.90419921874998],[107.37392578125005,-6.007617187499989]]],[[[120.52832031249997,-6.2984375],[120.48730468749997,-6.464843749999972],[120.47734375000007,-5.775292968750009],[120.52832031249997,-6.2984375]]],[[[112.7194335937501,-5.81103515625],[112.58603515625006,-5.803613281249994],[112.69003906250006,-5.726171875000034],[112.7194335937501,-5.81103515625]]],[[[132.80712890625003,-5.850781250000011],[132.68144531250002,-5.91259765625],[132.63017578125002,-5.60703125],[132.80712890625003,-5.850781250000011]]],[[[134.74697265625,-5.707031249999957],[134.71416015625007,-6.29511718750004],[134.44111328125004,-6.334863281249966],[134.15488281250006,-6.06289062499998],[134.3019531250001,-6.009765624999986],[134.34306640625002,-5.833007812499943],[134.20537109375002,-5.707226562499997],[134.34130859375003,-5.712890624999986],[134.57080078124997,-5.42734375],[134.74697265625,-5.707031249999957]]],[[[132.92626953124997,-5.902050781249983],[132.84501953125002,-5.987988281249997],[133.13847656250002,-5.317871093749986],[133.11962890625003,-5.575976562499989],[132.92626953124997,-5.902050781249983]]],[[[102.36718750000003,-5.478710937499983],[102.1107421875,-5.32255859374996],[102.3717773437501,-5.366406250000011],[102.36718750000003,-5.478710937499983]]],[[[123.62675781250007,-5.271582031249963],[123.58261718750006,-5.36738281250004],[123.54277343750002,-5.271093749999963],[123.62675781250007,-5.271582031249963]]],[[[122.04296874999997,-5.437988281250028],[121.80849609375,-5.256152343750017],[121.91367187500012,-5.072265624999957],[122.04101562500003,-5.158789062499991],[122.04296874999997,-5.437988281250028]]],[[[122.64511718750012,-5.26943359374998],[122.5638671875,-5.3875],[122.28310546875,-5.319531249999969],[122.39628906250002,-5.069824218749986],[122.36894531250007,-4.767187499999977],[122.70195312500002,-4.61865234375],[122.75986328125012,-4.933886718750003],[122.61406250000007,-5.138671874999986],[122.64511718750012,-5.26943359374998]]],[[[123.17978515625006,-4.551171875000023],[123.195703125,-4.82265625],[123.05517578124997,-4.748242187500026],[122.97167968750003,-5.138476562500031],[123.18730468750007,-5.333007812499957],[122.96875,-5.405761718749943],[122.81210937500012,-5.671289062499952],[122.64501953124997,-5.663378906250031],[122.58642578124997,-5.488867187500006],[122.76650390625005,-5.210156249999983],[122.85332031250007,-4.618359375000026],[123.074609375,-4.38691406250004],[123.17978515625006,-4.551171875000023]]],[[[133.57080078124997,-4.245898437500003],[133.621875,-4.299316406249957],[133.32089843750006,-4.111035156249969],[133.57080078124997,-4.245898437500003]]],[[[123.2423828125001,-4.112988281250011],[123.07617187499997,-4.227148437499991],[122.96904296875002,-4.029980468749969],[123.21191406250003,-3.997558593750028],[123.2423828125001,-4.112988281250011]]],[[[128.56259765625012,-3.58544921875],[128.39160156250003,-3.637890625000026],[128.45156250000005,-3.514746093749991],[128.56259765625012,-3.58544921875]]],[[[128.2755859375001,-3.67460937499996],[127.97802734374997,-3.770996093749972],[127.925,-3.69931640625002],[128.32910156249997,-3.51591796874996],[128.2755859375001,-3.67460937499996]]],[[[116.42412109375007,-3.464453124999963],[116.38779296875012,-3.636718749999972],[116.3265625,-3.539062499999972],[116.42412109375007,-3.464453124999963]]],[[[116.30332031250006,-3.868164062499957],[116.05878906250004,-4.006933593749991],[116.06357421875006,-3.457910156249952],[116.26972656250004,-3.251074218750006],[116.30332031250006,-3.868164062499957]]],[[[126.86113281250007,-3.087890624999986],[127.22734375000007,-3.391015625],[127.22958984375006,-3.633007812500011],[126.68632812500007,-3.823632812500037],[126.21455078125004,-3.605175781250026],[126.05654296875,-3.420996093749991],[126.08828125,-3.105468750000014],[126.86113281250007,-3.087890624999986]]],[[[106.88642578125004,-3.005273437500023],[106.7428710937501,-2.932812500000011],[106.91064453124997,-2.93398437499998],[106.88642578125004,-3.005273437500023]]],[[[129.75468750000007,-2.865820312500034],[130.3791015625001,-2.989355468749977],[130.56992187500006,-3.130859375000028],[130.85996093750006,-3.570312500000028],[130.805078125,-3.85771484374996],[129.844140625,-3.327148437499957],[129.51171875000003,-3.32851562499998],[129.46767578125005,-3.453222656249977],[128.8625,-3.234960937500006],[128.51660156249997,-3.449121093750037],[128.13203125000004,-3.157421875000026],[127.90234374999997,-3.496289062499955],[127.87792968749997,-3.222070312499966],[128.19853515625002,-2.865917968749969],[128.99111328125,-2.82851562499998],[129.17441406250006,-2.933496093749966],[129.48417968750002,-2.785742187499977],[129.75468750000007,-2.865820312500034]]],[[[100.42509765625007,-3.182910156249974],[100.46513671875007,-3.32851562499998],[100.20429687500004,-2.98681640625],[100.19853515625002,-2.785546875000023],[100.45458984375003,-3.001953124999972],[100.42509765625007,-3.182910156249974]]],[[[108.2072265625001,-2.997656249999977],[108.05527343750006,-3.22685546874996],[107.85820312500002,-3.086328125000023],[107.61445312500004,-3.209375],[107.56347656250003,-2.920117187499997],[107.66630859375002,-2.566308593750037],[107.83779296875005,-2.530273437499972],[108.21513671875002,-2.696972656250011],[108.29062500000012,-2.829980468750023],[108.2072265625001,-2.997656249999977]]],[[[100.20410156249997,-2.741015625000017],[100.01494140625007,-2.819726562499966],[99.98789062500006,-2.525390624999957],[100.20410156249997,-2.741015625000017]]],[[[99.84306640625007,-2.343066406250031],[99.60703125000012,-2.257519531250011],[99.57216796875005,-2.025781249999966],[99.84306640625007,-2.343066406250031]]],[[[126.055078125,-2.451269531249963],[125.86289062500006,-2.077148437499943],[125.92275390625,-1.974804687499969],[126.055078125,-2.451269531249963]]],[[[126.02421875000007,-1.789746093750011],[126.33173828125004,-1.822851562500006],[125.47919921875004,-1.940039062499991],[125.38720703124997,-1.843066406249946],[126.02421875000007,-1.789746093750011]]],[[[130.35332031250007,-1.690527343749963],[130.41884765625,-1.971289062499963],[130.24804687500003,-2.047753906249994],[129.7376953125,-1.866894531250011],[130.35332031250007,-1.690527343749963]]],[[[124.96953125000007,-1.70546875],[125.18789062500005,-1.712890624999986],[125.31406250000006,-1.877148437499969],[124.41777343750002,-2.005175781250031],[124.32968750000012,-1.858886718749972],[124.41757812500006,-1.659277343749991],[124.96953125000007,-1.70546875]]],[[[135.47421875000006,-1.591796875000014],[136.89257812500003,-1.799707031249994],[136.22812500000012,-1.893652343749949],[135.47421875000006,-1.591796875000014]]],[[[108.953125,-1.61962890625],[108.83789062499997,-1.661621093750028],[108.80371093750003,-1.567773437499994],[108.953125,-1.61962890625]]],[[[106.04570312500002,-1.669433593750014],[106.36591796875004,-2.464843749999972],[106.81845703125006,-2.573339843749963],[106.6120117187501,-2.895507812499957],[106.66718750000004,-3.071777343749986],[105.99873046875004,-2.824902343749955],[105.7858398437501,-2.18134765625004],[105.13339843750012,-2.042578125],[105.45957031250006,-1.574707031249986],[105.58544921875003,-1.526757812499994],[105.7008789062501,-1.731054687499963],[105.7204101562501,-1.533886718750026],[105.91005859375,-1.504980468749991],[106.04570312500002,-1.669433593750014]]],[[[123.59755859375,-1.704296875000011],[123.48251953125006,-1.681445312499974],[123.52851562500004,-1.502832031250009],[123.59755859375,-1.704296875000011]]],[[[128.1530273437501,-1.66054687499998],[127.56162109375012,-1.728515624999972],[127.39501953125003,-1.589843749999972],[127.64667968750004,-1.332421875],[128.1530273437501,-1.66054687499998]]],[[[123.2123046875,-1.171289062499966],[123.23779296874997,-1.389355468749983],[123.43476562500004,-1.236816406249986],[123.54726562500005,-1.337402343749957],[123.51191406250004,-1.447363281249977],[123.27490234374997,-1.437207031249955],[123.17294921875006,-1.616015624999974],[123.15039062500003,-1.304492187500003],[122.89042968750007,-1.58720703124996],[122.81083984375002,-1.432128906249986],[122.90800781250002,-1.182226562499963],[123.2123046875,-1.171289062499966]]],[[[109.71025390625007,-1.1806640625],[109.46367187500002,-1.277539062500026],[109.4759765625,-0.9853515625],[109.74335937500004,-1.039355468749989],[109.71025390625007,-1.1806640625]]],[[[134.96533203124997,-1.116015624999974],[134.86171875,-1.114160156249952],[134.82792968750002,-0.978808593750003],[134.99628906250004,-1.03408203124998],[134.96533203124997,-1.116015624999974]]],[[[99.16386718750007,-1.777929687500006],[98.82773437500006,-1.609960937499977],[98.60175781250004,-1.197851562499949],[98.67607421875007,-0.970507812500003],[98.93261718750003,-0.954003906250009],[99.2672851562501,-1.62773437499996],[99.16386718750007,-1.777929687500006]]],[[[131.00185546875005,-1.315527343750034],[130.78232421875006,-1.255468749999963],[130.67294921875006,-0.959765625000031],[131.03300781250007,-0.917578124999963],[131.00185546875005,-1.315527343750034]]],[[[135.38300781250004,-0.6513671875],[135.89355468749997,-0.725781249999969],[136.37529296875007,-1.094042968750031],[136.1647460937501,-1.214746093750023],[135.91503906250003,-1.178417968749997],[135.74707031249997,-0.823046874999974],[135.64570312500004,-0.881933593749991],[135.38300781250004,-0.6513671875]]],[[[127.30039062500012,-0.780957031250026],[127.1564453125001,-0.760937500000026],[127.20908203125006,-0.619335937499955],[127.30039062500012,-0.780957031250026]]],[[[130.6266601562501,-0.528710937499966],[130.46542968750006,-0.486523437499983],[130.6159179687501,-0.417285156250003],[130.6266601562501,-0.528710937499966]]],[[[121.86435546875012,-0.406835937500006],[121.88125,-0.502636718749983],[121.65527343749997,-0.526171874999989],[121.86435546875012,-0.406835937500006]]],[[[140.97343750000007,-2.609765625],[140.97353515625,-2.803417968750026],[140.975,-6.346093750000023],[140.86230468749997,-6.740039062499989],[140.97519531250006,-6.90537109375002],[140.97617187500012,-9.11875],[140.00292968749997,-8.19550781250004],[140.11699218750002,-7.923730468750009],[139.93476562500004,-8.101171875],[139.38564453125,-8.189062499999963],[139.24882812500002,-7.982421874999972],[138.890625,-8.237792968749943],[139.08798828125012,-7.587207031250017],[138.74794921875,-7.25146484375],[139.17685546875006,-7.1904296875],[138.84570312500003,-7.13632812499999],[138.60136718750007,-6.936523437499972],[138.86455078125007,-6.858398437499943],[138.43867187500004,-6.343359375],[138.2962890625,-5.94902343749996],[138.37460937500006,-5.84365234374998],[138.19960937500005,-5.80703125],[138.33964843750007,-5.675683593749966],[138.08710937500004,-5.70917968750004],[138.06083984375002,-5.46523437499998],[137.27978515624997,-4.945410156249949],[136.61884765625004,-4.81875],[135.97968750000004,-4.530859374999963],[135.19560546875007,-4.450683593749972],[134.67968749999997,-4.079101562499943],[134.70654296875003,-3.954785156250026],[134.88652343750007,-3.938476562499986],[134.26621093750012,-3.945800781249972],[134.14707031250006,-3.79677734374998],[133.97382812500004,-3.817968750000034],[133.67832031250006,-3.4794921875],[133.8415039062501,-3.054785156249991],[133.70039062500004,-3.0875],[133.653125,-3.364355468749991],[133.51816406250012,-3.411914062500003],[133.40087890625003,-3.899023437500034],[133.24873046875004,-4.062304687499989],[132.91445312500005,-4.05693359374996],[132.75390625000003,-3.703613281250014],[132.86972656250006,-3.550976562499997],[132.75136718750005,-3.294628906249997],[131.97119140624997,-2.788574218750014],[132.2306640625001,-2.680371093749997],[132.725,-2.789062500000028],[133.19101562500006,-2.43779296874996],[133.70009765625005,-2.624609375],[133.75332031250005,-2.450683593750014],[133.90488281250012,-2.390917968750003],[133.79101562500003,-2.293652343749997],[133.92158203125004,-2.102050781249957],[132.96279296875005,-2.272558593749963],[132.30761718749997,-2.24228515625002],[132.02343749999997,-1.99033203125002],[131.93037109375004,-1.559667968750034],[131.29375,-1.393457031250009],[130.99589843750007,-1.42470703124998],[131.1908203125,-1.165820312500003],[131.2572265625,-0.855468750000014],[131.80429687500006,-0.703808593750026],[132.39375,-0.355468750000028],[132.85644531250003,-0.417382812500023],[133.47265624999997,-0.726171874999963],[133.97451171875,-0.744335937500026],[134.11152343750004,-0.84677734375002],[134.07197265625004,-1.001855468749994],[134.25957031250007,-1.362988281250026],[134.105859375,-1.720996093749946],[134.19482421875003,-2.309082031249943],[134.45996093749997,-2.83232421874996],[134.48330078125,-2.583007812499972],[134.62744140624997,-2.536718749999963],[134.70214843749997,-2.933593749999986],[134.84335937500006,-2.909179687499986],[134.88681640625006,-3.209863281249966],[135.25156250000012,-3.368554687499966],[135.48662109375002,-3.34511718749998],[135.85917968750002,-2.99531250000004],[136.38994140625002,-2.273339843750037],[137.07207031250002,-2.105078124999949],[137.1710937500001,-2.025488281249991],[137.1234375,-1.840917968749963],[137.80625000000012,-1.483203125],[139.78955078125003,-2.34824218750002],[140.62255859374997,-2.44580078125],[140.74746093750005,-2.607128906249997],[140.97343750000007,-2.609765625]]],[[[104.47421875000012,-0.334667968749955],[104.59013671875002,-0.466601562500017],[104.36318359375,-0.658593749999966],[104.25712890625002,-0.463281249999966],[104.47421875000012,-0.334667968749955]]],[[[127.56699218750006,-0.318945312499949],[127.68242187500002,-0.46835937500002],[127.60498046874997,-0.610156249999946],[127.88017578125002,-0.808691406249991],[127.7611328125,-0.883691406249994],[127.62382812500002,-0.76601562499999],[127.46269531250002,-0.80595703124996],[127.46865234375,-0.64296875],[127.3,-0.500292968749946],[127.32509765625,-0.335839843750023],[127.45517578125012,-0.406347656249991],[127.56699218750006,-0.318945312499949]]],[[[127.24990234375005,-0.4953125],[127.11914062500003,-0.520507812499986],[127.12646484375003,-0.278613281250003],[127.29003906250003,-0.284375],[127.24990234375005,-0.4953125]]],[[[103.73652343750004,-0.347949218750003],[103.461328125,-0.357617187500011],[103.54892578125006,-0.227539062499986],[103.73652343750004,-0.347949218750003]]],[[[130.81328125000007,-0.004101562500026],[131.27685546875003,-0.149804687499952],[131.33974609375005,-0.290332031249989],[131.00537109374997,-0.360742187500037],[130.62216796875006,-0.0859375],[130.89921875000002,-0.344433593749997],[130.7501953125001,-0.44384765625],[130.6886718750001,-0.296582031250011],[130.55078124999997,-0.366406250000026],[130.23662109375002,-0.209667968749983],[130.3625,-0.072851562500006],[130.81328125000007,-0.004101562500026]]],[[[98.45927734375007,-0.530468749999969],[98.30966796875012,-0.531835937499977],[98.4271484375,-0.226464843750037],[98.3229492187501,-0.000781249999974],[98.54414062500004,-0.257617187499989],[98.45927734375007,-0.530468749999969]]],[[[104.77861328125007,-0.175976562499955],[105.00537109374997,-0.282812499999963],[104.44707031250002,-0.189160156249983],[104.54267578125004,0.01772460937498],[104.77861328125007,-0.175976562499955]]],[[[103.28447265625002,0.541943359375011],[103.13955078125,0.549072265625043],[103.18740234375,0.699755859375017],[103.28447265625002,0.541943359375011]]],[[[103.0275390625001,0.746630859374974],[102.4904296875001,0.856640625],[102.50664062500002,1.088769531250037],[103.00244140624997,0.859277343750009],[103.0275390625001,0.746630859374974]]],[[[103.42392578125012,1.048339843749972],[103.31542968750003,1.071289062500028],[103.37998046875006,1.133642578125034],[103.42392578125012,1.048339843749972]]],[[[103.16640625000005,0.870166015625003],[102.7018554687501,1.0537109375],[102.72558593749997,1.158837890625023],[102.99941406250005,1.067773437500023],[103.16640625000005,0.870166015625003]]],[[[104.02480468750005,1.180566406250009],[104.13984375000004,1.165576171874974],[104.06611328125004,0.989550781249989],[103.93222656250012,1.071386718749963],[104.02480468750005,1.180566406250009]]],[[[104.58535156250005,1.21611328124996],[104.66289062500002,1.04951171875004],[104.57519531250003,0.831933593750037],[104.43925781250002,1.050439453125051],[104.25195312499997,1.014892578125],[104.36181640624997,1.18149414062502],[104.58535156250005,1.21611328124996]]],[[[102.4271484375,0.990136718750023],[102.27958984375002,1.075683593750043],[102.25634765625003,1.397070312499963],[102.44287109374997,1.234228515625006],[102.4271484375,0.990136718750023]]],[[[97.48154296875006,1.465087890624972],[97.93193359375002,0.973925781250003],[97.82041015625012,0.564453124999986],[97.683984375,0.596093750000037],[97.60390625000005,0.83388671874998],[97.40537109375012,0.946972656250026],[97.07919921875006,1.425488281249983],[97.35595703124997,1.539746093749997],[97.48154296875006,1.465087890624972]]],[[[102.49189453125004,1.459179687500011],[102.49941406250005,1.330908203124991],[102.02402343750012,1.607958984375031],[102.49189453125004,1.459179687500011]]],[[[124.88886718750004,0.995312500000011],[124.42753906250002,0.470605468750051],[123.75380859375,0.305517578124991],[123.26542968750007,0.326611328125026],[122.996875,0.493505859375006],[121.01298828125002,0.441699218750017],[120.57900390625,0.5283203125],[120.19228515625,0.268505859374997],[120.01328125000012,-0.196191406249994],[120.062890625,-0.555566406250023],[120.240625,-0.868261718749949],[120.51757812499997,-1.039453125],[120.66738281250005,-1.370117187499972],[121.14853515625012,-1.33945312500002],[121.5755859375,-0.828515625000023],[121.96962890625005,-0.933300781249969],[122.27998046875004,-0.757031250000026],[122.88876953125006,-0.755175781250003],[122.8294921875,-0.658886718750026],[123.17148437500012,-0.57070312499999],[123.37968750000002,-0.648535156249949],[123.43417968750006,-0.778222656249994],[123.37792968749997,-1.004101562500011],[122.90283203125003,-0.900976562499963],[122.25068359375004,-1.555273437500034],[121.8585937500001,-1.69326171874998],[121.65097656250006,-1.895410156249952],[121.35546874999997,-1.878222656250003],[122.29169921875004,-2.907617187500023],[122.39902343750006,-3.200878906249997],[122.25292968749997,-3.620410156250017],[122.68964843750004,-4.084472656249972],[122.84794921875002,-4.064550781250006],[122.8722656250001,-4.391992187500009],[122.71972656250003,-4.340722656249952],[122.11425781250003,-4.540234375000011],[122.03808593749997,-4.832421875000023],[121.58867187500007,-4.759570312500017],[121.48652343750004,-4.581054687499972],[121.61806640625,-4.092675781249952],[120.89179687500004,-3.520605468750034],[121.05429687500012,-3.167089843749949],[121.0521484375,-2.751660156249955],[120.87939453124997,-2.64560546875002],[120.65361328125002,-2.667578124999977],[120.26103515625007,-2.949316406249991],[120.43662109375012,-3.70732421874996],[120.42011718750004,-4.617382812500011],[120.27929687499997,-5.146093749999977],[120.4303710937501,-5.591015625000026],[119.9515625,-5.577636718749972],[119.71728515625003,-5.693359375000014],[119.55742187500007,-5.611035156250026],[119.36035156249997,-5.314160156250026],[119.59404296875007,-4.523144531249997],[119.62363281250006,-4.034375],[119.46748046875004,-3.512988281249989],[118.99462890624997,-3.537597656250028],[118.86767578124997,-3.39804687500002],[118.78330078125006,-2.720800781249977],[119.09218750000005,-2.482910156250014],[119.32187500000012,-1.929687500000014],[119.308984375,-1.408203125],[119.508203125,-0.906738281249972],[119.71132812500005,-0.680761718750034],[119.84433593750006,-0.861914062499991],[119.721875,-0.088476562499991],[119.865625,0.040087890625003],[119.80927734375004,0.238671875000051],[119.9132812500001,0.445068359375],[120.26953125000003,0.970800781249991],[120.60253906249997,0.854394531249994],[120.86796875000007,1.25283203124998],[121.0817382812501,1.327636718750028],[121.40410156250002,1.243603515624969],[121.59179687499997,1.067968749999977],[122.43662109375006,1.018066406250028],[122.83828125,0.845703125],[123.06650390625006,0.941796875000037],[123.93076171875006,0.850439453124977],[124.53369140624997,1.230468750000043],[124.94707031250002,1.672167968749974],[125.11093750000012,1.685693359374966],[125.2337890625,1.502294921875006],[124.88886718750004,0.995312500000011]]],[[[101.70810546875006,2.078417968750045],[101.71943359375004,1.789160156250006],[101.50078125000002,1.733203124999974],[101.40966796875003,2.021679687500026],[101.70810546875006,2.078417968750045]]],[[[127.73271484375007,0.848144531250043],[127.8810546875001,0.832128906249977],[127.96728515624997,1.042578125000048],[128.16074218750006,1.1578125],[128.22246093750002,1.400634765624986],[128.68837890625,1.572558593750017],[128.70263671874997,1.106396484374997],[128.29882812500003,0.87680664062502],[128.26064453125,0.733789062500023],[128.61123046875,0.549951171875051],[128.89960937500004,0.216259765625011],[127.9831054687501,0.471875],[127.88740234375004,0.298339843750043],[127.97783203125002,-0.24833984374996],[128.4254882812501,-0.892675781249949],[128.04638671875003,-0.706054687499943],[127.69160156250004,-0.241894531249983],[127.70869140625004,0.288085937499986],[127.53710937500003,0.610888671875031],[127.60800781250006,0.848242187499977],[127.42851562500002,1.139990234374991],[127.63173828125,1.843701171875011],[128.03642578125002,2.199023437500017],[127.88681640625012,1.83295898437504],[128.0109375000001,1.701220703125031],[128.01171874999997,1.331738281249983],[127.65283203124997,1.013867187499969],[127.73271484375007,0.848144531250043]]],[[[97.3341796875001,2.075634765625011],[97.10830078125,2.216894531250006],[97.29140625,2.200830078125023],[97.3341796875001,2.075634765625011]]],[[[128.45390625000002,2.051757812500028],[128.29589843749997,2.034716796875017],[128.2179687500001,2.297460937499991],[128.60214843750012,2.59760742187504],[128.68847656250003,2.473681640625017],[128.62324218750004,2.224414062500031],[128.45390625000002,2.051757812500028]]],[[[96.46367187500002,2.360009765625037],[95.80859374999997,2.655615234375034],[95.7171875,2.825976562500017],[95.89580078125007,2.8890625],[96.41728515625007,2.515185546875031],[96.46367187500002,2.360009765625037]]],[[[108.8875,2.905419921875037],[108.7865234375,2.885644531250009],[108.88574218750003,2.998974609374997],[108.8875,2.905419921875037]]],[[[105.76035156250006,2.863037109375014],[105.69218750000002,3.0625],[105.83671875000007,2.97651367187504],[105.76035156250006,2.863037109375014]]],[[[106.28525390625006,3.15712890624998],[106.28369140624997,3.088232421874977],[106.20097656250002,3.204882812500031],[106.28525390625006,3.15712890624998]]],[[[117.65839843750004,3.280517578124986],[117.54785156250003,3.43198242187502],[117.68085937500004,3.407519531250017],[117.65839843750004,3.280517578124986]]],[[[125.65810546875,3.436035156250043],[125.51152343750007,3.461132812500011],[125.46884765625006,3.73325195312502],[125.65810546875,3.436035156250043]]],[[[117.88476562499997,4.186132812500006],[117.92285156250003,4.054296874999977],[117.73681640624997,4.004003906250034],[117.64902343750012,4.168994140624974],[117.88476562499997,4.186132812500006]]],[[[108.31601562500006,3.689648437500026],[108.10039062500002,3.70454101562504],[108.24326171875006,3.810351562500017],[108.00234375,3.982861328124983],[108.24833984375002,4.21713867187502],[108.39287109375007,3.986181640625034],[108.31601562500006,3.689648437500026]]],[[[117.5744140625001,4.17060546875004],[117.46533203124997,4.076074218749966],[117.77724609375005,3.689257812500031],[117.05595703125007,3.622656249999963],[117.34628906250006,3.426611328124991],[117.35244140625,3.19375],[117.61064453125002,3.064355468749994],[117.56914062500002,2.92929687500002],[117.69765625,2.887304687499991],[117.6388671875001,2.825292968749963],[118.0666015625001,2.317822265624969],[117.7892578125001,2.026855468750014],[118.98496093750006,0.982128906249983],[118.53476562500006,0.813525390625017],[118.19609375000002,0.874365234374977],[117.91162109374997,1.098681640625017],[117.96425781250005,0.889550781250051],[117.74511718749997,0.72963867187498],[117.52216796875004,0.235888671875017],[117.46289062500003,-0.323730468749957],[117.5625,-0.770898437500009],[116.91396484375,-1.223632812499972],[116.73984375000006,-1.044238281250017],[116.75341796874997,-1.327343749999955],[116.27548828125006,-1.784863281249997],[116.42431640625003,-1.784863281249997],[116.45195312500002,-1.923144531250017],[116.31396484374997,-2.139843750000011],[116.56542968749997,-2.299707031249994],[116.52929687499997,-2.51054687499996],[116.31679687500005,-2.55185546875002],[116.33066406250012,-2.902148437499974],[116.16630859375002,-2.934570312500014],[116.2572265625,-3.126367187500009],[115.95615234375012,-3.595019531250003],[114.6935546875001,-4.169726562500017],[114.5255859375001,-3.376660156250011],[114.44599609375004,-3.481835937500037],[114.34433593750012,-3.444433593749963],[114.34433593750012,-3.23515625],[114.23632812500003,-3.36113281249996],[114.0822265625001,-3.27890625],[113.70507812499997,-3.45527343750004],[113.6100585937501,-3.195703125],[113.34316406250005,-3.246484374999966],[113.03398437500002,-2.933496093749966],[112.97148437500002,-3.187109375000034],[112.75800781250004,-3.322167968750009],[112.60029296875004,-3.400488281249977],[112.28496093750002,-3.32099609375004],[111.85810546875004,-3.551855468750006],[111.82304687500007,-3.057226562499949],[111.69472656250005,-2.88945312499996],[110.93007812500005,-3.071093750000017],[110.82968750000012,-2.9951171875],[110.89931640625,-2.908593749999952],[110.703125,-3.020898437500009],[110.57402343750007,-2.89140625],[110.25605468750004,-2.966113281249946],[110.09658203125,-2.001367187499966],[109.95986328125,-1.862792968749972],[109.98330078125,-1.274804687499994],[109.78740234375007,-1.011328124999963],[109.25878906250003,-0.807421874999989],[109.37275390625004,-0.638183593749972],[109.12109375000003,-0.39091796874996],[109.2575195312501,0.031152343750051],[108.94453125000004,0.355664062499997],[108.91679687500007,0.912646484375045],[108.95859375000006,1.134619140624963],[109.1315429687501,1.253857421875011],[109.01025390624997,1.239648437500051],[109.07587890625004,1.495898437500031],[109.37851562500006,1.922705078125034],[109.62890625000003,2.027539062499983],[109.53896484375,1.89619140625004],[109.65400390625004,1.614892578125023],[110.50576171875005,0.861962890625023],[111.10136718750002,1.050537109374986],[111.80898437500005,1.011669921874969],[112.078515625,1.143359374999974],[112.1857421875001,1.4390625],[112.47617187500006,1.559082031250028],[112.94296875000006,1.566992187500034],[113.00654296875004,1.433886718750003],[113.6222656250001,1.2359375],[113.90234375000003,1.434277343749997],[114.5125,1.452001953124963],[114.83056640625003,1.980029296874989],[114.78642578125002,2.250488281250014],[115.1791015625,2.523193359374972],[115.08076171875004,2.63422851562504],[115.117578125,2.89487304687502],[115.24697265625005,3.025927734374989],[115.45439453125002,3.034326171875009],[115.67880859375006,4.193017578124994],[115.86074218750005,4.348046875000037],[116.51474609375006,4.370800781249969],[117.10058593750003,4.337060546875023],[117.5744140625001,4.17060546875004]]],[[[126.81660156250004,4.033496093750003],[126.70449218750005,4.070996093749997],[126.81357421875006,4.258496093750011],[126.72207031250005,4.344189453124969],[126.75732421874997,4.547900390624989],[126.9210937500001,4.291015624999972],[126.81660156250004,4.033496093750003]]],[[[96.49257812500005,5.229345703124991],[97.54716796875002,5.205859375],[98.2484375,4.41455078125],[98.3073242187501,4.09287109375002],[99.73232421875005,3.183056640625026],[100.523828125,2.18916015625004],[100.88789062500004,1.948242187499986],[100.82822265625012,2.242578125],[101.04619140625002,2.257470703125023],[101.47666015625006,1.693066406250054],[102.019921875,1.442138671875],[102.38994140625007,0.84199218750004],[103.03183593750006,0.57890625],[103.0075195312501,0.415332031249974],[102.55,0.216455078124966],[103.33896484375012,0.513720703125045],[103.67265625000007,0.288916015624977],[103.78671875000012,0.046972656249991],[103.42851562500007,-0.19179687499998],[103.40517578125005,-0.36220703124998],[103.5091796875,-0.465527343749969],[103.43857421875006,-0.575585937500009],[103.72109375,-0.886718749999986],[104.36054687500004,-1.038378906249974],[104.51591796875002,-1.81943359375002],[104.84521484375003,-2.092968749999969],[104.65078125000005,-2.595214843749972],[104.97080078125012,-2.370898437500017],[105.39697265624997,-2.380175781249946],[106.0443359375,-3.10625],[105.84375,-3.61367187499998],[105.93046875000007,-3.833007812499986],[105.83144531250005,-4.16289062499996],[105.88720703124997,-5.009570312499974],[105.74833984375007,-5.818261718749966],[105.34941406250007,-5.549511718750011],[105.08134765625002,-5.74550781249998],[104.63955078125005,-5.520410156250037],[104.68398437500005,-5.89267578125002],[104.60156249999997,-5.90458984374996],[103.8314453125,-5.079589843750028],[102.53769531250006,-4.152148437499989],[102.12753906250006,-3.599218749999963],[101.57861328124997,-3.166992187500014],[100.88955078125,-2.248535156249957],[100.85527343750002,-1.934179687499949],[100.30820312500006,-0.82666015625],[99.66982421875005,0.045068359375037],[99.15917968749997,0.351757812499997],[98.59531250000006,1.864599609375006],[97.70078125000006,2.358544921875009],[97.59082031249997,2.846582031250037],[97.3913085937501,2.975292968749969],[96.9689453125001,3.575146484374969],[96.44472656250005,3.81630859374998],[95.57861328125003,4.661962890625048],[95.20664062500006,5.284033203125034],[95.22783203125002,5.564794921875034],[95.62890625000003,5.609082031249997],[96.13330078125003,5.294287109374991],[96.49257812500005,5.229345703124991]]]]},"properties":{"name":"Indonesia","childNum":107}},{"geometry":{"type":"Polygon","coordinates":[[[-4.412060546874983,54.185351562499996],[-4.785351562499983,54.073046875],[-4.424707031249994,54.407177734375],[-4.412060546874983,54.185351562499996]]]},"properties":{"name":"Isle of Man","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[75.32221348233018,32.28516356678968],[75.62496871116024,32.28516356678968],[75.73585997688717,32.78417426256088],[76.32728006076415,32.87658365066666],[76.62299010270264,33.32014871357439],[77.06655516561037,33.301666835953235],[77.71342088235082,32.6917648744551],[78.10154031239509,32.87658365066666],[78.49194250885338,32.53122786149202],[78.38964843749997,32.51987304687498],[78.41748046874997,32.466699218749994],[78.4552734375001,32.30034179687502],[78.49589843750002,32.21577148437504],[78.72558593750009,31.983789062500023],[78.71972656250009,31.887646484374983],[78.69345703125006,31.740380859374994],[78.7550781250001,31.55029296875],[78.74355468750005,31.323779296875017],[79.10712890625004,31.402636718750102],[79.38847656250013,31.064208984375085],[79.66425781250004,30.96523437499999],[79.92451171875004,30.888769531250034],[80.20712890625006,30.683740234375023],[80.19121093750002,30.56840820312496],[80.87353515625003,30.290576171875045],[80.98544921875006,30.23710937499999],[81.01025390625014,30.164501953125097],[80.96611328125002,30.180029296875063],[80.90761718750005,30.171923828125017],[80.84814453125009,30.139746093750034],[80.81992187500012,30.119335937499955],[80.68408203125014,29.994335937500068],[80.54902343750015,29.899804687499994],[80.40185546875003,29.730273437500102],[80.31689453125014,29.572070312500017],[80.25488281250009,29.423339843750114],[80.25595703125006,29.318017578125136],[80.23300781250006,29.194628906250045],[80.16953125000012,29.124316406250102],[80.13046875000006,29.100390625000045],[80.08457031249995,28.994189453125074],[80.05166015625,28.870312500000068],[80.07070312500005,28.830175781250063],[80.22656250000003,28.723339843750125],[80.32480468750012,28.66640625000008],[80.41855468749995,28.61201171875001],[80.47910156250012,28.604882812499994],[80.49580078125015,28.635791015625074],[80.51787109375002,28.665185546875023],[80.58701171875006,28.64960937500004],[81.16894531250014,28.335009765625074],[81.85263671875018,27.867089843750136],[81.89687500000011,27.87446289062504],[81.94521484375005,27.89926757812495],[81.98769531250016,27.91376953125004],[82.03701171875,27.90058593750004],[82.11191406250006,27.86494140625004],[82.28769531250018,27.756542968749983],[82.45136718750004,27.671826171874955],[82.62988281249997,27.687060546875045],[82.67734375000006,27.67343749999995],[82.71083984375005,27.596679687500114],[82.73339843750003,27.518994140625097],[83.28974609375004,27.370996093750136],[83.36943359375002,27.410253906249977],[83.38398437500004,27.444824218750085],[83.44716796875011,27.46533203125],[83.55166015625011,27.456347656249932],[83.74697265625011,27.395947265625068],[83.8288085937501,27.377832031250108],[84.09101562499993,27.491357421875136],[84.22978515625007,27.427832031250006],[84.48085937500005,27.348193359375102],[84.61015625000002,27.298681640624977],[84.64072265625012,27.249853515624977],[84.65478515625014,27.20366210937499],[84.65380859375009,27.09169921875008],[84.68535156250013,27.041015625000057],[85.19179687500011,26.766552734375097],[85.29296875000009,26.741015625000045],[85.56845703125012,26.839843750000114],[85.64843749999997,26.829003906250023],[85.69990234375004,26.781640624999966],[85.73730468750003,26.639746093750034],[85.79453125000006,26.60415039062505],[86.00732421875009,26.64936523437504],[86.70136718750015,26.435058593750057],[87.01640625000002,26.555419921875085],[87.2874023437499,26.360302734375125],[87.41357421875014,26.42294921875009],[87.84921875000006,26.43691406250008],[87.99511718750014,26.38237304687499],[88.02695312500023,26.395019531250085],[88.05488281250004,26.43002929687492],[88.11152343750004,26.58642578125],[88.1615234375,26.724804687500125],[88.15722656250009,26.807324218750068],[88.1110351562501,26.928466796875057],[87.99316406250009,27.086083984374994],[87.984375,27.133935546874994],[88.14697265625014,27.749218750000097],[88.15029296875011,27.843310546875074],[88.10976562500005,27.87060546874997],[88.10898437499995,27.93300781250005],[88.14111328125003,27.948925781250097],[88.27519531250013,27.96884765625009],[88.42597656250015,28.011669921875097],[88.57792968750002,28.093359375000034],[88.80371093750003,28.006933593750034],[88.74902343749997,27.521875000000136],[88.7648437500001,27.429882812500068],[88.83251953125003,27.362841796875074],[88.89140625000002,27.316064453125136],[88.88164062500007,27.29746093750009],[88.76035156250006,27.21811523437509],[88.73876953125009,27.175585937499932],[88.85761718750015,26.961474609375017],[89.14824218750002,26.816162109375085],[89.33212890625018,26.848632812500114],[89.58613281250004,26.778955078125136],[89.60996093750012,26.719433593750097],[89.71093750000009,26.713916015625045],[89.76386718750004,26.7015625],[89.94316406250013,26.723925781249932],[90.12294921875011,26.754589843749983],[90.20605468749997,26.847509765625063],[90.34589843750004,26.890332031250097],[90.73964843750005,26.771679687500068],[91.2865234375,26.78994140625008],[91.42675781249997,26.867089843749966],[91.45585937500013,26.866894531250125],[91.51757812500009,26.807324218750068],[91.67158203124993,26.80200195312503],[91.84208984375013,26.852978515625125],[91.94375,26.860839843750114],[91.99833984375013,26.85498046875],[92.04970703125016,26.87485351562495],[92.73155507489682,26.833697862861648],[93.30975376159499,26.784950522650554],[93.61047043679247,27.32239435188504],[94.06979001484449,27.589407158584788],[95.10800937321915,27.749636881153737],[95.74000740838363,28.116850432722256],[96.19577594042592,28.04291597700983],[96.96279296875,27.698291015625017],[96.88359375000013,27.514843750000125],[96.90195312500012,27.43959960937508],[97.10371093749993,27.163330078125114],[97.10205078125003,27.115429687500125],[96.95341796875013,27.13330078125003],[96.79785156249997,27.29619140624999],[96.19082031250005,27.26127929687499],[95.20146484375007,26.641406250000017],[95.05976562500015,26.473974609375006],[95.06894531250006,26.191113281250097],[95.10839843750014,26.091406250000034],[95.12929687500011,26.070410156250034],[95.13242187500006,26.041259765624943],[94.99199218750002,25.77045898437504],[94.66777343750007,25.458886718749966],[94.55302734375013,25.215722656249994],[94.70371093750012,25.097851562499955],[94.49316406250003,24.637646484374983],[94.37724609375002,24.473730468750006],[94.29306640625012,24.321875],[94.07480468750006,23.8720703125],[93.68339843750007,24.00654296875004],[93.45214843750003,23.987402343750034],[93.32626953125006,24.064208984375057],[93.36601562500007,23.132519531249955],[93.34941406250007,23.08496093750003],[93.20390625000002,23.03701171875005],[93.07871093750018,22.718212890625097],[93.16201171875,22.360205078125006],[93.07060546875002,22.20942382812501],[92.96455078125015,22.003759765625034],[92.90947265625013,21.988916015625023],[92.85429687500002,22.010156250000108],[92.77138671875,22.104785156250017],[92.68896484375009,22.130957031250006],[92.63037109375014,22.011328124999977],[92.57490234374993,21.97807617187496],[92.5612304687501,22.04804687500001],[92.49140625000004,22.685400390625006],[92.46445312500006,22.734423828125045],[92.36162109375002,22.929003906250074],[92.33378906250002,23.242382812499955],[92.24609375000003,23.68359374999997],[92.04404296875006,23.677783203125017],[91.97851562500003,23.691992187500063],[91.92958984375011,23.685986328125097],[91.92949218750019,23.598242187499977],[91.93789062500011,23.504687500000102],[91.75419921875013,23.28730468750004],[91.75097656250003,23.053515625000017],[91.55351562500013,22.991552734375006],[91.43623046875004,23.19990234375001],[91.359375,23.06835937500003],[91.16044921875019,23.660644531250085],[91.35019531250012,24.06049804687501],[91.72656250000003,24.20507812499997],[91.84619140624997,24.175292968749943],[92.06416015625004,24.374365234375006],[92.11748046875002,24.493945312500017],[92.22666015625012,24.77099609374997],[92.22832031250002,24.881347656250085],[92.2512695312499,24.895068359375045],[92.38496093750004,24.848779296875023],[92.46835937500018,24.944140625000074],[92.04970703125016,25.16948242187499],[90.61308593750002,25.16772460937497],[90.11962890625003,25.21997070312497],[89.86630859375012,25.293164062499955],[89.81406250000006,25.305371093749955],[89.80087890625012,25.33613281250001],[89.82490234375004,25.56015625],[89.82294921875015,25.94140625000003],[89.67089843750009,26.213818359375125],[89.57275390625003,26.13232421875003],[89.54990234375006,26.00527343750008],[89.28925781250015,26.037597656250085],[89.01865234375012,26.410253906249977],[88.95195312500002,26.412109375],[88.97041015625004,26.250878906250023],[88.94072265625002,26.24536132812497],[88.68281250000004,26.291699218749983],[88.51826171875004,26.51777343750004],[88.36992187500002,26.56411132812508],[88.35146484375005,26.482568359374966],[88.38623046875003,26.471533203125034],[88.44042968749997,26.369482421875034],[88.33398437499997,26.257519531249955],[88.15078125000005,26.087158203125057],[88.1066406250001,25.841113281250045],[88.14746093749997,25.811425781250023],[88.50244140625009,25.53701171875008],[88.76914062500006,25.490478515625],[88.85478515625002,25.333544921875017],[88.94414062500002,25.290771484375],[88.92978515625012,25.222998046875063],[88.57382812500006,25.18789062499999],[88.45625,25.188427734375125],[88.37294921875016,24.961523437500063],[88.31337890625011,24.8818359375],[88.27949218750015,24.881933593750034],[88.18886718750016,24.920605468750097],[88.14980468750011,24.91464843749995],[88.04511718750015,24.71303710937508],[88.03027343750009,24.664453125000136],[88.02343750000003,24.627832031250136],[88.07910156250009,24.549902343750063],[88.14550781250003,24.485791015624955],[88.225,24.460644531249983],[88.3375,24.45385742187503],[88.49853515625003,24.34663085937504],[88.64228515625015,24.325976562500102],[88.72353515625011,24.27490234375],[88.7335937500001,24.230908203125097],[88.72656250000009,24.18623046875004],[88.71376953125016,24.069628906250102],[88.69980468750006,24.00253906249992],[88.56738281250009,23.674414062500034],[88.63574218749997,23.55],[88.69765625,23.493017578125034],[88.72441406250002,23.254980468750034],[88.89707031250018,23.21040039062501],[88.92812500000011,23.186621093749977],[88.89970703125002,22.843505859375057],[88.92070312500002,22.632031249999955],[89.05,22.274609374999983],[89.02792968750023,21.937207031249983],[88.94931640625018,21.937939453125125],[89.05166015625,21.654101562500045],[88.85751953125012,21.744677734375017],[88.74501953125011,21.584375],[88.74023437500003,22.005419921875017],[88.64160156250003,22.121972656250136],[88.58466796875015,21.659716796874932],[88.44599609375004,21.614257812500085],[88.28750000000016,21.758203125000108],[88.25371093750002,21.622314453124943],[88.0568359375001,21.694140625000017],[88.19628906249997,22.139550781249994],[87.94140625000003,22.374316406250045],[88.15927734375018,22.12172851562508],[87.82373046875003,21.727343750000045],[87.20068359375009,21.544873046874983],[86.95410156250014,21.365332031250006],[86.84228515625009,21.106347656249994],[86.97548828125005,20.70014648437501],[86.75039062500011,20.313232421875057],[86.37656250000006,20.006738281249966],[86.24521484375012,20.05302734374999],[86.27949218750021,19.919433593749943],[85.575,19.69291992187499],[85.496875,19.696923828125108],[85.50410156250004,19.887695312500057],[85.24863281250006,19.757666015625034],[85.18076171875018,19.59487304687508],[85.44160156249993,19.626562499999977],[84.77099609375009,19.125390625000023],[84.10410156250018,18.29267578125001],[82.35957031250004,17.09619140624997],[82.25878906250014,16.55986328124996],[81.76191406250015,16.32949218750008],[81.28613281249997,16.337060546875023],[80.97871093750004,15.758349609375074],[80.64658203125006,15.895019531250028],[80.29345703125014,15.710742187499989],[80.0534179687501,15.074023437499932],[80.17871093750003,14.478320312500074],[80.11171875000005,14.212207031250045],[80.30654296875016,13.485058593750054],[80.15625,13.713769531250108],[80.06210937500006,13.60625],[80.34238281250006,13.361328125000071],[80.22910156250018,12.690332031249966],[79.85849609375018,11.988769531250043],[79.69316406250007,11.312548828124946],[79.79902343750004,11.338671874999932],[79.84863281250009,11.196875],[79.83818359375002,10.322558593750045],[79.31455078125018,10.256689453124949],[78.93994140625009,9.565771484375063],[79.01992187500005,9.333349609374963],[79.41142578125002,9.192382812500014],[78.97958984375018,9.268554687500085],[78.42148437500006,9.105029296874989],[78.19248046874995,8.890869140625057],[78.06015625000006,8.384570312499932],[77.51757812500003,8.078320312500068],[77.06591796875003,8.315917968749986],[76.5534179687501,8.902783203124997],[76.32460937500016,9.452099609374997],[76.24238281250004,9.927099609374949],[76.37558593750006,9.539892578124935],[76.45878906250013,9.536230468750077],[76.34648437500002,9.922119140625],[76.19560546875002,10.086132812500026],[75.72382812500015,11.361767578125026],[74.94550781250004,12.56455078124992],[74.38222656250005,14.494726562500048],[73.94921875000014,15.074755859375088],[73.80078125000009,15.39697265625],[73.93193359375013,15.39697265625],[73.77177734375013,15.573046874999989],[73.83281250000013,15.659375],[73.67988281250015,15.708886718750136],[73.47607421875003,16.05424804687496],[72.87548828124997,18.642822265625114],[72.97207031250011,19.15332031250003],[72.8346679687501,18.975585937500057],[72.80302734375013,19.07929687500004],[72.81162109375,19.298925781250006],[72.98720703125,19.27744140625009],[72.78789062500013,19.362988281250097],[72.66777343750019,19.83095703125005],[72.89375,20.672753906250136],[72.81386718750011,21.117187500000085],[72.62382812500002,21.371972656250108],[72.73476562500016,21.470800781250006],[72.61328125000009,21.461816406250108],[73.1125,21.750439453125125],[72.54306640625,21.69658203124999],[72.70019531250003,21.971923828124943],[72.52226562500013,21.976220703125108],[72.55302734375007,22.159960937500074],[72.80917968749995,22.23330078125008],[72.18281250000015,22.26972656250004],[72.30644531250002,22.18920898437497],[72.27441406250009,22.089746093749966],[72.03720703125006,21.82304687499999],[72.2103515625,21.72822265625004],[72.25400390625006,21.531005859375],[72.01523437500012,21.155712890625097],[71.0246093750001,20.73886718750009],[70.71933593750006,20.740429687500068],[70.12734375,21.094677734375097],[68.96992187500021,22.29028320312497],[69.05166015625016,22.437304687500074],[69.27656250000004,22.285498046875063],[70.17724609375014,22.57275390624997],[70.48925781250009,23.08950195312508],[70.33945312500012,22.939746093749932],[69.66464843750006,22.759082031250074],[69.23593749999995,22.848535156250023],[68.64072265625006,23.189941406250114],[68.41748046875009,23.57148437500004],[68.7767578125,23.852099609375017],[68.23496093749995,23.596972656250074],[68.16503906250009,23.857324218749994],[68.28251953125013,23.927978515625],[68.38125000000016,23.950878906250068],[68.48867187500011,23.96723632812501],[68.5866210937501,23.966601562500074],[68.72412109375003,23.964697265625034],[68.72812500000012,24.265625],[68.73964843750016,24.291992187500085],[68.75898437499993,24.307226562500006],[68.78115234375011,24.313720703125085],[68.8,24.30908203125003],[68.82832031250004,24.26401367187509],[68.86347656250015,24.26650390625005],[68.90078125000011,24.29243164062501],[68.98457031250015,24.273095703124966],[69.05156250000013,24.28632812500001],[69.11953125000011,24.26865234374995],[69.23505859374993,24.268261718750068],[69.44345703124995,24.275390625000085],[69.55917968750006,24.273095703124966],[69.80517578125009,24.16523437500004],[70.0982421875,24.2875],[70.28906250000009,24.356298828125063],[70.54677734375,24.418310546875063],[70.56503906250006,24.385791015625017],[70.55585937500015,24.331103515625074],[70.57929687500015,24.279052734374943],[70.65947265625013,24.24609374999997],[70.71630859375009,24.237988281250097],[70.7672851562501,24.245410156250017],[70.80507812500011,24.26196289062503],[70.88623046875014,24.34375],[70.92812500000016,24.362353515625045],[70.98281250000011,24.361035156250125],[71.04404296875006,24.400097656250097],[71.04531250000005,24.42998046874996],[70.96982421875012,24.571875],[70.97636718750013,24.61875],[71.00234375000016,24.6539062499999],[71.04785156250003,24.687744140625085],[71.02070312500021,24.75766601562492],[70.95087890625015,24.89160156250003],[70.87773437500019,25.06298828124997],[70.65205078125004,25.422900390625102],[70.64843750000003,25.666943359375068],[70.5695312500001,25.705957031250023],[70.50585937500009,25.685302734375085],[70.44853515625013,25.681347656249983],[70.26464843750009,25.70654296874997],[70.10019531250006,25.91005859375005],[70.14921875000002,26.347558593749994],[70.11464843750016,26.548046874999983],[69.47001953125002,26.804443359375],[69.56796875,27.174609375000102],[69.89628906250007,27.473632812500085],[70.04980468750009,27.694726562500023],[70.14453125000003,27.849023437499994],[70.19394531250006,27.89487304687492],[70.24433593750004,27.934130859375102],[70.4037109375,28.025048828124994],[70.48857421875013,28.023144531250125],[70.62910156250015,27.937451171875068],[70.6916015625001,27.76899414062504],[70.79794921875012,27.709619140625023],[70.87490234375016,27.71445312499995],[71.18476562500004,27.831640625],[71.54296875000003,27.869873046875],[71.8703125000001,27.9625],[71.88886718750004,28.04746093749992],[71.94804687500002,28.177294921875102],[72.12851562500012,28.34633789062508],[72.29199218750003,28.69726562499997],[72.34189453125006,28.751904296875097],[72.90332031250003,29.02875976562501],[73.38164062500013,29.934375],[73.8091796875,30.093359375],[73.88652343750013,30.162011718750136],[73.93339843750002,30.222070312500108],[73.92460937500007,30.28164062499999],[73.88271484375,30.352148437499977],[73.89931640625,30.435351562500045],[74.00898437500004,30.519677734374994],[74.33935546875003,30.893554687499943],[74.38037109375003,30.89340820312509],[74.50976562500009,30.959667968750097],[74.63281250000014,31.034667968750114],[74.62578125000002,31.068750000000108],[74.61035156250009,31.112841796875045],[74.51767578125012,31.185595703124932],[74.53496093750007,31.261376953125108],[74.59394531249993,31.465380859375102],[74.58183593750013,31.523925781250114],[74.50996093750015,31.712939453125074],[74.52597656249995,31.765136718750057],[74.55556640625011,31.818554687500097],[74.63574218750003,31.889746093750034],[74.73945312500015,31.948828125],[75.07148437500015,32.08935546875003],[75.13876953125,32.10478515624999],[75.25410156250004,32.140332031250125],[75.33349609374997,32.279199218749994],[75.32221348233018,32.28516356678968]]]]},"properties":{"name":"India","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[72.49199218750002,-7.37744140625],[72.42910156250002,-7.435351562500003],[72.34970703125,-7.263378906250011],[72.447265625,-7.395703125000011],[72.44560546875002,-7.220410156250011],[72.49199218750002,-7.37744140625]]]},"properties":{"name":"Br. Indian Ocean Ter.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-9.948193359374926,53.91313476562499],[-10.265722656249949,53.977685546874994],[-9.99638671874996,54.00361328125004],[-9.948193359374926,53.91313476562499]]],[[[-6.218017578125,54.08872070312506],[-6.347607421874926,53.94130859375005],[-6.027392578124989,52.927099609375006],[-6.463183593749932,52.345361328124994],[-6.325,52.246679687500034],[-6.890234375,52.15922851562499],[-6.965771484374926,52.24951171875],[-8.057812499999926,51.82558593750005],[-8.4091796875,51.888769531250034],[-8.349121093749943,51.73930664062496],[-8.813427734374926,51.584912109374955],[-9.737304687499943,51.473730468750034],[-9.524902343750028,51.68110351562501],[-10.120751953124994,51.60068359375006],[-9.598828124999983,51.87441406250005],[-10.341064453124943,51.798925781250034],[-9.909667968749972,52.122949218749966],[-10.39023437499992,52.134912109374994],[-10.356689453125,52.20693359375002],[-9.772119140624937,52.250097656250034],[-9.90605468749996,52.403710937499966],[-9.632226562499937,52.54692382812502],[-8.783447265624943,52.679638671874955],[-8.990283203124989,52.755419921875045],[-9.175390624999949,52.634912109374994],[-9.916601562499977,52.56972656250005],[-9.46489257812496,52.82319335937498],[-9.299218749999966,53.09755859375002],[-8.930126953124983,53.207080078125045],[-9.51420898437496,53.23823242187498],[-10.091259765624926,53.41284179687503],[-10.116992187499932,53.548535156249955],[-9.720654296874926,53.6044921875],[-9.901611328124943,53.72719726562502],[-9.578222656249949,53.80541992187497],[-9.578857421875,53.879833984374955],[-9.9140625,53.863720703124955],[-9.856445312499972,54.095361328124994],[-10.092675781249966,54.15576171875003],[-10.056396484374943,54.25781250000006],[-8.545556640624994,54.24121093750003],[-8.623144531249977,54.346875],[-8.133447265624966,54.64082031250001],[-8.763916015624972,54.68120117187496],[-8.377294921874977,54.88945312500002],[-8.274609374999955,55.146289062500045],[-7.667089843749977,55.25649414062502],[-7.65874023437496,54.97094726562503],[-7.308789062500011,55.365820312500006],[-6.961669921874972,55.23789062500006],[-7.218652343749937,55.09199218749998],[-7.55039062499992,54.767968749999966],[-7.910595703124955,54.698339843750006],[-7.75439453125,54.59492187499998],[-8.118261718749977,54.41425781250004],[-7.606542968750006,54.14384765625002],[-7.324511718750017,54.13344726562502],[-7.007714843749937,54.40668945312501],[-6.649804687499937,54.05864257812496],[-6.218017578125,54.08872070312506]]]]},"properties":{"name":"Ireland","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[56.18798828125003,26.92114257812497],[55.95429687500004,26.70112304687501],[55.31152343749997,26.592626953125006],[55.76259765625005,26.81196289062504],[55.75761718750002,26.94765625000005],[56.279394531250006,26.952099609374983],[56.18798828125003,26.92114257812497]]],[[[46.1144531250001,38.877783203125034],[46.490625,38.90668945312498],[47.995898437500074,39.683935546875034],[48.322167968749994,39.39907226562502],[48.10439453125005,39.241113281249994],[48.292089843750006,39.01884765624999],[47.99648437499999,38.85375976562503],[48.59267578125005,38.41108398437498],[48.86875,38.43549804687498],[48.95996093750003,37.89013671875],[49.171191406250074,37.60058593749997],[50.13046875,37.407128906249994],[50.53320312499997,37.01367187500006],[51.11855468750005,36.742578124999966],[52.19013671875004,36.62172851562505],[53.76767578125006,36.93032226562502],[53.91542968750005,36.93032226562502],[53.67949218750002,36.853125],[53.970117187499994,36.818310546874955],[53.91416015625006,37.34355468750002],[54.6994140625001,37.47016601562498],[54.90009765625004,37.77792968750006],[55.38085937500003,38.051123046875034],[56.272070312500006,38.080419921875034],[56.440625,38.249414062499994],[57.1935546875001,38.216406250000034],[57.35371093750004,37.97333984374998],[58.261621093749994,37.665820312500045],[58.81542968750003,37.683496093749994],[59.30175781249997,37.51064453125005],[59.454980468749994,37.25283203125002],[60.06279296875002,36.962890625],[60.34130859375003,36.63764648437501],[61.11962890625003,36.64257812500003],[61.212011718750006,36.190527343750034],[61.15292968750006,35.97675781250001],[61.25214843750004,35.86762695312498],[61.26201171875002,35.61958007812498],[61.28183593750006,35.55341796875001],[61.2785156250001,35.513769531250006],[61.245507812499994,35.47407226562501],[61.18925781250002,35.31201171875003],[61.1,35.272314453125034],[61.08007812499997,34.85561523437505],[60.95117187499997,34.65385742187499],[60.91474609375004,34.63398437500001],[60.80234375000006,34.55463867187501],[60.73945312500004,34.544726562500045],[60.7262695312501,34.51826171874998],[60.736132812500074,34.491796875],[60.76259765625005,34.475244140624994],[60.88945312500002,34.31943359375006],[60.642675781250006,34.30717773437496],[60.48574218750005,34.09477539062502],[60.4859375,33.7119140625],[60.57382812500006,33.58833007812498],[60.91699218749997,33.505224609375006],[60.56054687499997,33.13784179687502],[60.5765625,32.99487304687503],[60.71044921874997,32.6],[60.82929687500004,32.24941406250005],[60.82724609375006,32.16796874999997],[60.789941406249994,31.98710937499999],[60.7875,31.87719726562497],[60.791601562500006,31.660595703124983],[60.82070312499999,31.495166015625045],[60.854101562500006,31.483251953125006],[61.110742187499994,31.45112304687504],[61.346484375000074,31.42163085937497],[61.66015625000003,31.382421874999977],[61.7550781250001,31.285302734374994],[61.814257812500074,31.072558593750017],[61.810839843750074,30.913281249999983],[61.78417968749997,30.831933593750023],[61.55947265625005,30.59936523437497],[61.33164062500006,30.36372070312501],[60.84335937500006,29.85869140624999],[61.03417968750003,29.663427734374977],[61.15214843750002,29.542724609375],[61.8898437500001,28.546533203124994],[62.7625,28.202050781249994],[62.782324218750006,27.800537109375],[62.75273437500002,27.265625],[63.16679687500002,27.25249023437499],[63.19609375000002,27.243945312500017],[63.25625,27.20791015625005],[63.30156250000002,27.151464843750006],[63.30517578124997,27.124560546875017],[63.242089843749994,27.07768554687499],[63.25039062499999,26.879248046875063],[63.24160156250005,26.86474609375003],[63.18613281250006,26.83759765625001],[63.168066406250006,26.66557617187496],[62.31230468750002,26.490869140624994],[62.23935546875006,26.357031249999977],[62.12597656249997,26.368994140625034],[61.842382812500006,26.225927734375006],[61.809960937499994,26.165283203125],[61.78076171874997,25.99584960937503],[61.75439453125003,25.843359375000063],[61.737695312499994,25.821093750000045],[61.66865234375004,25.76899414062501],[61.6618164062501,25.751269531250017],[61.67138671874997,25.69238281250003],[61.64013671875003,25.584619140624994],[61.61542968750004,25.28613281250003],[61.58789062499997,25.20234375000001],[61.533105468749994,25.195507812499955],[61.41220703125006,25.102099609375017],[60.66386718750002,25.28222656250003],[60.51054687500002,25.437060546875045],[60.40019531250002,25.311572265625074],[59.45605468749997,25.481494140625045],[59.0460937500001,25.417285156250017],[58.79785156249997,25.554589843750023],[57.334570312500006,25.791552734375074],[57.03603515625005,26.80068359375005],[56.728125,27.127685546875057],[56.118066406249994,27.14311523437499],[54.75927734375003,26.50507812500004],[54.24707031250003,26.696630859374977],[53.70576171875004,26.72558593750003],[52.69160156250004,27.323388671875023],[52.475878906250074,27.61650390624999],[52.03076171874997,27.824414062499955],[51.58906250000004,27.864208984374983],[51.27890625,28.13134765624997],[51.06201171874997,28.72612304687499],[50.86699218750002,28.870166015625017],[50.87578125000002,29.062695312499983],[50.67519531250005,29.146582031250034],[50.64960937500004,29.420068359374966],[50.16894531250003,29.921240234375034],[50.071582031250074,30.198535156250017],[49.55488281250004,30.028955078125023],[49.028125,30.333447265624983],[49.224511718749994,30.472314453125023],[49.00195312500003,30.506542968749983],[48.91914062500004,30.120898437500017],[48.54648437500006,29.962353515624955],[48.47851562499997,30.003808593749966],[48.43457031249997,30.03759765625],[48.33105468749997,30.28544921874996],[48.01494140625002,30.465625],[48.01064453125005,30.989794921875017],[47.679492187500074,31.00239257812501],[47.679492187500074,31.400585937499955],[47.75390624999997,31.601367187500017],[47.829980468749994,31.79443359375],[47.71455078125004,31.936425781249966],[47.5915039062501,32.087988281250034],[47.51191406250004,32.15083007812504],[47.3297851562501,32.45551757812501],[47.28515625000003,32.474023437499966],[47.121386718750074,32.46660156249996],[46.569921875,32.83393554687501],[46.37705078125006,32.92924804687499],[46.29824218750005,32.95024414062502],[46.11279296875003,32.957666015624994],[46.09306640625002,32.97587890624999],[46.08046875,33.028222656249994],[46.0807617187501,33.08652343750006],[46.14111328125003,33.174414062500034],[46.145898437499994,33.229638671874994],[46.01992187500005,33.41572265624998],[45.39707031250006,33.970849609374994],[45.542773437500074,34.21552734375004],[45.459375,34.470361328124994],[45.50078125000002,34.58159179687499],[45.6375,34.573828125],[45.678125,34.798437500000034],[45.92089843750003,35.02851562500001],[46.04179687500002,35.08017578125006],[46.13378906249997,35.127636718749955],[46.15468750000005,35.19672851562498],[46.112109375000074,35.32167968750005],[45.97109375000005,35.524169921875],[46.03740234375002,35.67314453124999],[46.180957031250074,35.71137695312504],[46.2625,35.74414062500006],[46.27343749999997,35.77324218750002],[46.16748046874997,35.820556640625],[45.77636718749997,35.82182617187499],[45.36162109375002,36.015332031249955],[45.241113281249994,36.35595703125],[45.20654296874997,36.397167968749955],[45.15527343749997,36.407373046874994],[45.11240234375006,36.409277343750034],[45.053125,36.47163085937501],[44.76513671875003,37.142431640625006],[44.79414062500004,37.290380859375034],[44.574023437500074,37.435400390625006],[44.589941406250006,37.710351562499966],[44.21132812499999,37.908056640625006],[44.4499023437501,38.33422851562506],[44.2985351562501,38.38627929687499],[44.27167968750004,38.83603515625006],[44.02324218750002,39.37744140625006],[44.3893554687501,39.422119140625],[44.58710937500004,39.76855468750006],[44.81718750000002,39.65043945312496],[45.4796875000001,39.00625],[46.1144531250001,38.877783203125034]]]]},"properties":{"name":"Iran","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[45.6375,34.573828125],[45.50078125000002,34.581591796874996],[45.459375,34.470361328124994],[45.54277343750002,34.21552734375],[45.397070312500006,33.970849609374994],[46.01992187500002,33.41572265625],[46.14589843750002,33.229638671874994],[46.14111328125,33.1744140625],[46.08076171875001,33.0865234375],[46.08046875000002,33.028222656249994],[46.09306640625002,32.975878906249996],[46.11279296875,32.957666015624994],[46.377050781250006,32.929248046874996],[46.569921875,32.833935546875],[47.12138671875002,32.466601562499996],[47.28515625,32.474023437499994],[47.32978515625001,32.455517578125],[47.51191406250001,32.150830078125],[47.59150390625001,32.08798828125],[47.71455078125001,31.936425781249994],[47.82998046875002,31.79443359375],[47.75390625,31.601367187499996],[47.67949218750002,31.400585937499997],[47.67949218750002,31.002392578124997],[48.01064453125002,30.989794921874996],[48.01494140625002,30.465625],[48.3310546875,30.285449218749996],[48.546484375,29.962353515624997],[48.454199218750006,29.9384765625],[48.354589843750006,29.956738281249997],[48.141699218750006,30.040917968749994],[47.982519531250006,30.011328125],[47.97871093750001,29.9828125],[47.64375,30.097314453124994],[47.14824218750002,30.0009765625],[46.905859375,29.5375],[46.76933593750002,29.347460937499996],[46.69375,29.259667968749994],[46.53144531250001,29.096240234374996],[46.3564453125,29.063671875],[44.71650390625001,29.193603515625],[43.77373046875002,29.84921875],[42.07441406250001,31.080371093749996],[40.47890625000002,31.893359375],[40.36933593750001,31.93896484375],[40.02783203125,31.995019531249994],[39.7041015625,32.042529296874996],[39.14541015625002,32.12451171875],[39.29277343750002,32.24384765625],[39.24746093750002,32.350976562499994],[39.04140625000002,32.3056640625],[38.773535156250006,33.372216796874994],[40.98701171875001,34.429052734375],[41.19472656250002,34.768994140625],[41.354101562500006,35.640429687499996],[41.295996093750006,36.383349609374996],[41.41679687500002,36.5146484375],[41.78857421875,36.59716796875],[42.358984375,37.10859375],[42.45585937500002,37.128710937499996],[42.63544921875001,37.249267578125],[42.74111328125002,37.3619140625],[42.77460937500001,37.371875],[42.869140625,37.334912109375],[42.936621093750006,37.324755859374996],[43.09248046875001,37.3673828125],[43.67578125,37.22724609375],[43.83642578125,37.223535156249994],[44.01318359375,37.313525390624996],[44.11445312500001,37.30185546875],[44.15625,37.282958984375],[44.19179687500002,37.249853515625],[44.20839843750002,37.20263671875],[44.20166015625,37.051806640624996],[44.281835937500006,36.97802734375],[44.32558593750002,37.0107421875],[44.401953125,37.058496093749994],[44.60595703125,37.176025390625],[44.66933593750002,37.173583984375],[44.73095703125,37.165283203125],[44.76513671875,37.142431640625],[45.053125,36.471630859375],[45.112402343750006,36.40927734375],[45.1552734375,36.407373046874994],[45.20654296875,36.39716796875],[45.24111328125002,36.35595703125],[45.36162109375002,36.01533203125],[45.7763671875,35.821826171874996],[46.16748046875,35.820556640625],[46.2734375,35.773242187499996],[46.2625,35.744140625],[46.18095703125002,35.711376953125],[46.03740234375002,35.673144531249996],[45.97109375000002,35.524169921875],[46.11210937500002,35.321679687499994],[46.15468750000002,35.196728515625],[46.1337890625,35.12763671875],[46.04179687500002,35.08017578125],[45.9208984375,35.028515625],[45.678125,34.7984375],[45.6375,34.573828125]]]},"properties":{"name":"Iraq","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-15.543115234374994,66.228515625],[-14.595849609374994,66.38154296875],[-15.117382812499983,66.125634765625],[-14.698193359374983,66.02021484375],[-14.827099609374983,65.7642578125],[-14.391845703125,65.78740234375],[-14.473388671875,65.575341796875],[-14.166943359374983,65.64228515625],[-13.617871093749983,65.5193359375],[-13.804785156249977,65.35478515625],[-13.599316406249983,65.0359375],[-14.04443359375,64.74189453125],[-14.385107421874977,64.74521484375],[-14.475390624999989,64.493994140625],[-14.927392578124994,64.319677734375],[-15.832910156249994,64.17666015625],[-16.640332031249983,63.865478515625],[-17.81572265624999,63.71298828125],[-17.946923828124994,63.5357421875],[-18.65361328124999,63.406689453125],[-20.198144531249994,63.555810546874994],[-20.494042968749994,63.687353515625],[-20.413964843749994,63.80517578125],[-20.65092773437499,63.73740234375],[-21.15239257812499,63.94453125],[-22.652197265624977,63.827734375],[-22.701171875,64.083203125],[-22.51005859374999,63.991455078125],[-22.187597656249977,64.039208984375],[-21.463330078124983,64.379150390625],[-22.053369140624994,64.313916015625],[-21.950341796874994,64.514990234375],[-21.590625,64.6263671875],[-22.10600585937499,64.533056640625],[-22.467041015625,64.794970703125],[-23.818994140624994,64.73916015625],[-24.02617187499999,64.863427734375],[-22.7880859375,65.046484375],[-21.89213867187499,65.048779296875],[-21.779980468749983,65.1876953125],[-22.50908203124999,65.19677734375],[-21.844384765624994,65.44736328125],[-22.902490234374994,65.58046875],[-23.89990234375,65.407568359375],[-24.475683593749977,65.5251953125],[-24.248925781249994,65.614990234375],[-23.85673828124999,65.53837890625],[-24.092626953124977,65.77646484375],[-23.615917968749983,65.67958984375],[-23.285351562499983,65.75],[-23.832617187499977,65.84921875],[-23.52495117187499,65.880029296875],[-23.77734375,66.017578125],[-23.434472656249994,66.02421875],[-23.452539062499994,66.181005859375],[-23.018994140624983,65.98212890625],[-22.659863281249983,66.025927734375],[-22.61601562499999,65.86748046875],[-22.44169921874999,65.90830078125],[-22.4453125,66.07001953125],[-22.947900390624994,66.212744140625],[-22.48442382812499,66.26630859375],[-23.116943359375,66.338720703125],[-22.9443359375,66.429443359375],[-22.426123046874977,66.430126953125],[-21.406884765624994,66.0255859375],[-21.374902343749994,65.74189453125],[-21.658447265625,65.723583984375],[-21.12968749999999,65.2666015625],[-20.804345703124994,65.63642578125],[-20.454833984375,65.571044921875],[-20.20751953125,66.10009765625],[-19.489697265624983,65.76806640625],[-19.382958984374994,66.07568359375],[-18.845898437499983,66.183935546875],[-18.141943359374977,65.73408203125],[-18.29716796874999,66.157421875],[-17.906982421875,66.143310546875],[-17.550439453124994,65.964404296875],[-17.153027343749983,66.20283203125],[-16.838037109374994,66.125244140625],[-16.485009765624994,66.195947265625],[-16.540673828124994,66.446728515625],[-16.24931640624999,66.522900390625],[-15.985400390624989,66.5146484375],[-15.543115234374994,66.228515625]]]},"properties":{"name":"Iceland","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[35.78730468750001,32.734912109374996],[35.572851562500006,32.640869140625],[35.56904296875001,32.619873046875],[35.55146484375001,32.3955078125],[35.484375,32.401660156249996],[35.40263671875002,32.450634765625],[35.38671875,32.493017578125],[35.303808593750006,32.512939453125],[35.19326171875002,32.534423828125],[35.065039062500006,32.46044921875],[35.01054687500002,32.338183593749996],[34.95595703125002,32.1609375],[34.98974609375,31.91328125],[34.97832031250002,31.86640625],[34.95380859375001,31.841259765624997],[34.96113281250001,31.82333984375],[34.983007812500006,31.81679687499999],[35.05322265625,31.837939453124996],[35.12714843750001,31.816748046875],[35.203710937500006,31.75],[34.95097656250002,31.602294921875],[34.88046875,31.3681640625],[35.45058593750002,31.479296875],[34.97343750000002,29.555029296875],[34.904296875,29.47734375],[34.24531250000001,31.208300781249996],[34.34833984375001,31.292919921874997],[34.350195312500006,31.362744140624997],[34.52558593750001,31.525634765625],[34.47734375000002,31.584863281249994],[34.483984375,31.59228515625],[34.67841796875001,31.895703125],[35.10859375000001,33.08369140625],[35.411230468750006,33.07568359375],[35.869140625,33.43173828125],[35.91347656250002,32.94960937499999],[35.78730468750001,32.734912109374996]]]},"properties":{"name":"Israel","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[15.576562500000051,38.220312500000034],[15.099511718750023,37.45859375],[15.295703125000017,37.05517578124997],[15.112597656250017,36.687841796875006],[14.501855468750023,36.798681640625034],[14.142968750000023,37.103662109374994],[13.90546875000004,37.10063476562502],[13.169921875000028,37.47929687499996],[12.640234375000034,37.594335937500034],[12.435546874999972,37.819775390624955],[12.734375,38.18305664062498],[12.902734375000023,38.03486328124998],[13.291113281250034,38.19145507812502],[13.788867187499989,37.981201171875],[15.11875,38.15273437500002],[15.498730468750011,38.290869140625006],[15.576562500000051,38.220312500000034]]],[[[8.478906250000023,39.067529296874966],[8.421484375000034,38.968652343749994],[8.366796875,39.115917968749955],[8.478906250000023,39.067529296874966]]],[[[8.28603515625008,41.03984375],[8.205664062500034,40.99746093750005],[8.320214843750023,41.121875],[8.28603515625008,41.03984375]]],[[[9.632031250000011,40.88203124999998],[9.805273437500063,40.499560546875045],[9.642968750000023,40.268408203125006],[9.5625,39.16601562500006],[9.056347656250068,39.23916015625002],[8.966601562500074,38.963720703125034],[8.648535156250034,38.92656250000002],[8.418164062500068,39.205712890624966],[8.547753906250023,39.83920898437506],[8.4078125,39.91723632812497],[8.471289062500063,40.29267578124998],[8.189941406250028,40.651611328125],[8.22421875,40.91333007812503],[8.571875,40.85019531250006],[9.228417968750023,41.257080078125],[9.615332031249977,41.01728515624998],[9.632031250000011,40.88203124999998]]],[[[10.395117187500034,42.85815429687503],[10.419335937499994,42.71318359374999],[10.13125,42.742041015625006],[10.395117187500034,42.85815429687503]]],[[[13.420996093750006,46.212304687499994],[13.63251953125004,46.17705078125002],[13.634960937499983,46.15776367187499],[13.61660156250008,46.133105468750045],[13.54804687500004,46.08911132812503],[13.486425781250034,46.03955078124997],[13.480273437500017,46.00922851562501],[13.487695312500023,45.987109375000045],[13.509179687500051,45.973779296874994],[13.6005859375,45.97978515624996],[13.663476562500023,45.7919921875],[13.831152343750006,45.680419921875],[13.719824218750063,45.58759765625001],[13.628320312500051,45.77094726562498],[13.206347656250074,45.771386718749966],[12.27431640625008,45.44604492187503],[12.225683593750034,45.24150390625002],[12.523437500000028,44.96796874999998],[12.248339843750045,44.72250976562498],[12.396289062500074,44.223876953125],[13.56416015625004,43.57128906250003],[14.010449218750011,42.68955078125006],[14.54072265625004,42.24428710937502],[15.16875,41.93403320312498],[16.164648437500034,41.89619140624998],[15.900488281250034,41.51206054687498],[17.954980468749994,40.65517578125002],[18.460644531249983,40.221044921875034],[18.34375,39.82138671874998],[18.077929687500017,39.93696289062498],[17.865039062500074,40.28017578125002],[17.395800781250045,40.34023437499999],[17.179980468750045,40.50278320312498],[16.92822265625,40.45805664062502],[16.521875,39.74755859375003],[17.114550781250017,39.38061523437497],[17.174609375000017,38.998095703125045],[16.61669921875003,38.800146484375034],[16.54560546875001,38.40908203125002],[16.05683593750001,37.941845703124955],[15.72451171875008,37.93911132812502],[15.645800781250017,38.034228515625045],[15.87890625,38.61391601562502],[16.19677734375,38.759228515624955],[16.20996093750003,38.94111328124998],[15.692773437499994,39.99018554687501],[14.95087890625004,40.23901367187497],[14.94765625000008,40.469335937500006],[14.765722656250063,40.66840820312498],[14.339941406250006,40.59882812500001],[14.460546875000063,40.72871093750001],[14.04433593750008,40.81225585937506],[13.733398437500057,41.23564453124999],[13.088671875000074,41.243847656249955],[12.630859374999972,41.469677734374955],[11.637304687500063,42.287548828124955],[11.141210937499977,42.38989257812503],[11.167773437500074,42.53515625000006],[10.708398437500023,42.93632812499999],[10.514843750000011,42.96752929687503],[10.188085937500063,43.947509765625],[8.76582031250004,44.42231445312501],[8.004980468750006,43.87675781249999],[7.4931640625,43.767138671875045],[7.637207031250057,44.16484375],[7.318554687500068,44.13798828125002],[6.900195312499989,44.33574218749996],[6.99267578125,44.82729492187502],[6.634765625000028,45.06816406249996],[7.07832031250004,45.23994140624998],[7.146386718750051,45.381738281249994],[6.790917968750023,45.740869140624966],[7.021093750000034,45.92578124999997],[7.055761718749977,45.90380859375003],[7.129003906249977,45.88041992187499],[7.327929687500017,45.912353515625],[7.9931640625,46.01591796874996],[8.081542968750057,46.25600585937502],[8.231933593750057,46.341210937499966],[8.29853515625004,46.403417968750034],[8.370703125,46.44511718750002],[8.458398437500023,46.24589843750002],[8.818554687500011,46.0771484375],[8.826757812500006,46.06103515625],[8.77802734375004,45.996191406250034],[8.953710937500034,45.83002929687501],[9.023730468750074,45.845703125],[9.203417968750017,46.21923828125],[9.304394531250068,46.49555664062498],[9.399316406250023,46.480664062499955],[9.427636718750023,46.48232421875002],[9.528710937500023,46.306201171875045],[9.57958984375,46.29609375000001],[9.639453125000017,46.29589843749997],[9.78779296875004,46.34604492187498],[9.884472656250011,46.36777343750006],[9.939257812500074,46.36181640625],[10.041015625000028,46.23808593750002],[10.08056640625,46.22797851562501],[10.128320312500051,46.238232421874955],[10.109667968750074,46.36284179687502],[10.081933593750023,46.420751953125006],[10.045605468750068,46.44790039062505],[10.038281250000011,46.483203125000045],[10.061230468750068,46.54677734375002],[10.087011718750063,46.59990234375002],[10.1375,46.614355468750034],[10.195507812500068,46.62109374999997],[10.4306640625,46.55004882812497],[10.409352678571473,46.6092047991071],[10.39794921875,46.66503906250006],[10.406054687500045,46.73486328124997],[10.452832031249983,46.86494140625001],[10.47939453125008,46.85512695312505],[10.579785156250011,46.85371093750001],[10.689257812500017,46.846386718749955],[10.759765625,46.79331054687498],[10.828906250000045,46.775244140625034],[10.927343750000034,46.76948242187501],[10.993261718750034,46.77700195312502],[11.02509765625004,46.796972656250006],[11.063476562500057,46.85913085937497],[11.133886718750006,46.93618164062505],[11.244433593750045,46.975683593750006],[11.433203125000063,46.983056640624994],[11.527539062500011,46.99741210937498],[11.775683593750017,46.986083984375],[12.169433593750028,47.082128906250006],[12.19716796875008,47.075],[12.201269531250034,47.060888671875034],[12.165527343750028,47.028173828125034],[12.130761718750051,46.98476562499999],[12.154101562500017,46.93525390625004],[12.267968750000023,46.83588867187504],[12.330078125,46.75981445312499],[12.388281250000034,46.70263671874997],[12.479199218749983,46.672509765624966],[13.16875,46.572656249999966],[13.3515625,46.55791015624999],[13.490039062500045,46.55556640625002],[13.7,46.52026367187503],[13.679687500000057,46.46289062499997],[13.63710937500008,46.44853515624999],[13.563281250000045,46.41508789062502],[13.399511718749977,46.31752929687502],[13.420996093750006,46.212304687499994]]]]},"properties":{"name":"Italy","childNum":6}},{"geometry":{"type":"Polygon","coordinates":[[[-77.261474609375,18.45742187499999],[-76.349853515625,18.15185546875],[-76.21079101562499,17.913525390624997],[-76.524609375,17.8662109375],[-76.85322265625,17.97373046874999],[-76.94414062499999,17.848779296874994],[-77.11948242187499,17.880078125],[-77.20498046875,17.71494140624999],[-77.36142578124999,17.833691406249997],[-77.76816406249999,17.877392578124997],[-78.04448242187499,18.173828125],[-78.339501953125,18.28720703124999],[-78.21669921875,18.44809570312499],[-77.8734375,18.522216796875],[-77.261474609375,18.45742187499999]]]},"properties":{"name":"Jamaica","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-2.018652343749977,49.23125],[-2.23583984375,49.1763671875],[-2.220507812499989,49.266357421875],[-2.018652343749977,49.23125]]]},"properties":{"name":"Jersey","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[39.14541015625002,32.12451171875],[38.9970703125,32.007470703124994],[38.96230468750002,31.994921875],[38.37548828125,31.847460937499996],[38.111425781250006,31.781152343749994],[37.49335937500001,31.625878906249994],[37.215625,31.556103515624997],[36.95859375,31.491503906249996],[37.980078125,30.5],[37.862890625,30.442626953125],[37.66972656250002,30.34814453125],[37.64990234375,30.330957031249994],[37.63359375000002,30.31328125],[37.55361328125002,30.144580078124996],[37.49072265625,30.01171875],[37.46923828125,29.995068359374997],[36.75527343750002,29.866015625],[36.70390625000002,29.831640625],[36.591796875,29.66611328125],[36.47607421875,29.4951171875],[36.2828125,29.355371093749994],[36.068457031250006,29.200537109375],[34.95078125,29.353515625],[34.97343750000002,29.555029296875],[35.45058593750002,31.479296875],[35.57207031250002,32.237890625],[35.55146484375001,32.3955078125],[35.56904296875001,32.619873046875],[35.572851562500006,32.640869140625],[35.78730468750001,32.734912109374996],[36.3720703125,32.3869140625],[36.818359375,32.317285156249994],[38.773535156250006,33.372216796874994],[39.04140625000002,32.3056640625],[39.24746093750002,32.350976562499994],[39.29277343750002,32.24384765625],[39.14541015625002,32.12451171875]]]},"properties":{"name":"Jordan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[123.88867187499997,24.280126953124977],[123.67978515625012,24.317773437500023],[123.77148437499997,24.41445312499999],[123.93486328125002,24.362011718749983],[123.88867187499997,24.280126953124977]]],[[[124.29316406250004,24.515917968750074],[124.13574218750003,24.347607421874983],[124.08476562500002,24.435839843750017],[124.30195312500004,24.58710937500001],[124.29316406250004,24.515917968750074]]],[[[125.44414062500002,24.7431640625],[125.26894531250005,24.732519531250063],[125.28359375,24.871923828125034],[125.44414062500002,24.7431640625]]],[[[128.25878906249997,26.65278320312501],[127.86708984375,26.442480468749977],[127.80361328125005,26.152539062499983],[127.653125,26.0947265625],[127.90722656250003,26.69360351562497],[128.09765624999997,26.66777343749996],[128.25488281249997,26.88188476562496],[128.25878906249997,26.65278320312501]]],[[[128.99814453125012,27.720800781250006],[128.90000000000012,27.727783203125],[128.9076171875,27.897998046875045],[128.99814453125012,27.720800781250006]]],[[[129.45253906250005,28.20898437499997],[129.3664062500001,28.127734375000045],[129.16464843750012,28.24975585937503],[129.68955078125012,28.517480468750023],[129.45253906250005,28.20898437499997]]],[[[130.6227539062501,30.262988281250017],[130.44560546875002,30.264697265625017],[130.38808593750005,30.38818359375003],[130.49716796875006,30.465527343749983],[130.64355468749997,30.388964843750017],[130.6227539062501,30.262988281250017]]],[[[130.95976562500007,30.39692382812504],[130.87031250000004,30.444238281249994],[131.06035156250007,30.828466796875006],[130.95976562500007,30.39692382812504]]],[[[130.38105468750004,32.42373046875002],[130.24169921874997,32.462792968749994],[130.46142578124997,32.515722656250034],[130.38105468750004,32.42373046875002]]],[[[130.08251953124997,32.22968750000001],[129.9601562500001,32.24375],[130.00976562499997,32.521630859374994],[130.16777343750002,32.54121093749998],[130.19951171875002,32.34057617187506],[130.08251953124997,32.22968750000001]]],[[[128.66533203125002,32.783886718749955],[128.89453124999997,32.65214843750002],[128.69296875000012,32.60473632812506],[128.66533203125002,32.783886718749955]]],[[[129.07695312500002,32.84028320312498],[128.99726562500004,32.95185546874998],[129.10976562500005,33.13256835937503],[129.18193359375002,32.99311523437504],[129.07695312500002,32.84028320312498]]],[[[129.49179687500006,33.22304687499999],[129.37041015625002,33.176025390625],[129.56992187500006,33.36103515625004],[129.49179687500006,33.22304687499999]]],[[[129.79570312500007,33.74882812499999],[129.67480468749997,33.73969726562498],[129.71728515624997,33.8583984375],[129.79570312500007,33.74882812499999]]],[[[131.17460937500007,33.602587890625045],[131.69628906250003,33.60283203124999],[131.53740234375007,33.274072265624994],[131.89658203125006,33.25458984375001],[131.8478515625001,33.118066406249994],[132.0021484375001,32.882373046875045],[131.6603515625001,32.465625],[131.33720703125007,31.4046875],[131.07080078124997,31.436865234374977],[131.09843750000002,31.256152343750017],[130.68574218750004,31.01513671875003],[130.77626953125,31.70629882812497],[130.65507812500002,31.71840820312505],[130.5560546875,31.563085937500034],[130.58876953125,31.178515625000017],[130.20068359374997,31.291894531250023],[130.14726562500002,31.40849609374996],[130.2941406250001,31.45068359375003],[130.3219726562501,31.601464843750023],[130.18789062500005,31.768847656250017],[130.19443359375012,32.090771484374955],[130.64052734375005,32.61923828124998],[130.49785156250002,32.65693359375001],[130.547265625,32.83159179687499],[130.2375,33.177636718749966],[130.12685546875005,33.10483398437506],[130.175,32.851318359375],[130.32646484375002,32.852636718750006],[130.34042968750012,32.70185546875004],[130.05410156250005,32.770800781250045],[129.76855468749997,32.57099609375001],[129.82675781250006,32.72534179687503],[129.67910156250005,33.059960937499966],[129.99169921875003,32.85156249999997],[129.58007812500003,33.23627929687501],[129.61015625000002,33.34365234375005],[129.844140625,33.32177734375003],[129.82568359374997,33.43701171875006],[130.36503906250007,33.634472656249955],[130.4837890625,33.834619140624966],[130.715625,33.92778320312502],[130.953125,33.87202148437504],[131.17460937500007,33.602587890625045]]],[[[132.266015625,33.945166015625006],[132.44492187500006,33.91318359374998],[132.20878906250007,33.87285156250002],[132.266015625,33.945166015625006]]],[[[129.27949218750004,34.123388671875006],[129.18642578125,34.14501953125006],[129.21484374999997,34.320654296875034],[129.3371093750001,34.284765625],[129.27949218750004,34.123388671875006]]],[[[134.35742187500003,34.25634765625],[134.6375,34.22661132812499],[134.73886718750012,33.82050781250001],[134.37705078125012,33.60839843749997],[134.18164062500003,33.24721679687502],[133.95869140625004,33.44833984375006],[133.63203125000004,33.51098632812503],[133.28593750000007,33.35996093749998],[132.97724609375004,32.84199218749998],[132.80429687500006,32.75200195312502],[132.6417968750001,32.76245117187503],[132.70898437500003,32.90249023437505],[132.49511718749997,32.91660156249998],[132.41279296875004,33.43046875],[132.0326171875,33.339990234374994],[132.64306640624997,33.68994140624997],[132.93515625000006,34.09531250000006],[133.19306640625004,33.93320312499998],[133.58203124999997,34.01713867187502],[133.60263671875006,34.24384765625001],[133.94833984375006,34.34804687500002],[134.35742187500003,34.25634765625]]],[[[134.35185546875002,34.48364257812503],[134.25185546875,34.42304687500004],[134.18212890625003,34.51923828124998],[134.35185546875002,34.48364257812503]]],[[[134.9328125000001,34.28813476562499],[134.82441406250004,34.202929687500045],[134.66787109375005,34.294140624999955],[135.00468750000002,34.54404296874998],[134.9328125000001,34.28813476562499]]],[[[129.38564453125,34.35366210937502],[129.26669921875012,34.37045898437506],[129.45107421875005,34.68657226562499],[129.38564453125,34.35366210937502]]],[[[133.37050781250005,36.203857421875],[133.23925781249997,36.178759765625045],[133.20615234375006,36.293408203124955],[133.29570312500002,36.34013671874996],[133.37050781250005,36.203857421875]]],[[[138.34404296875007,37.822119140625006],[138.22519531250006,37.82939453124996],[138.25,38.078466796875006],[138.50361328125004,38.31591796875006],[138.45361328124997,38.07568359375006],[138.57519531249997,38.065527343750034],[138.34404296875007,37.822119140625006]]],[[[141.22929687500007,41.37265625],[141.45546875000005,41.404736328124955],[141.43046875000002,40.72333984374998],[141.7970703125001,40.29116210937502],[141.97695312500005,39.428808593750034],[141.90078125,39.111328125],[141.5462890625,38.762841796874966],[141.4674804687501,38.404150390625006],[141.10839843750003,38.33793945312502],[140.9621093750001,38.148876953124955],[141.00166015625004,37.11464843750002],[140.57353515625007,36.23134765625002],[140.87402343749997,35.72495117187506],[140.457421875,35.51025390625],[140.35468750000004,35.18144531249999],[139.8439453125001,34.914892578125034],[139.82646484375002,35.29667968750002],[140.096875,35.58515624999998],[139.83476562500002,35.658056640625006],[139.65000000000012,35.40913085937501],[139.675,35.149267578125006],[139.47441406250002,35.298535156249955],[139.24941406250005,35.27802734375004],[139.08603515625006,34.83916015624999],[138.8375,34.619238281250034],[138.80273437499997,34.97480468749998],[138.90361328125002,35.02524414062506],[138.71962890625,35.12407226562502],[138.18906250000012,34.596337890624994],[137.543359375,34.66420898437505],[137.06171875000004,34.58281249999999],[137.27519531250002,34.77250976562499],[136.96328125000005,34.83491210937501],[136.87128906250004,34.733105468749955],[136.89707031250006,35.03554687500002],[136.80419921874997,35.05029296875],[136.53300781250007,34.678369140624994],[136.8802734375,34.43359375000006],[136.8537109375001,34.324072265625034],[136.32988281250007,34.17685546875006],[135.91621093750004,33.561718749999955],[135.69531250000003,33.48696289062502],[135.4528320312501,33.55336914062505],[135.12792968749997,34.006982421874994],[135.10009765624997,34.288378906250045],[135.41591796875,34.61748046875002],[134.74003906250007,34.765234375],[134.246875,34.71386718750003],[133.96826171874997,34.52729492187504],[133.14238281250002,34.30244140624998],[132.65654296875007,34.24609375000003],[132.31259765625006,34.32495117187503],[132.14648437499997,33.83876953125002],[131.74052734375007,34.05205078125002],[130.91884765625,33.97573242187502],[130.88925781250012,34.261816406250034],[131.00419921875007,34.39257812500003],[131.35439453125,34.41318359375006],[132.92294921875006,35.511279296875045],[133.98125,35.50722656250002],[135.17431640625003,35.74707031250003],[135.32695312500002,35.52553710937502],[135.68027343750006,35.503125],[135.903125,35.60688476562498],[136.09531250000006,35.767626953125045],[136.06748046875006,36.11684570312505],[136.69814453125005,36.742041015625034],[136.84345703125004,37.38212890624999],[137.32265625,37.52207031249998],[136.89990234375003,37.11767578125],[137.01669921875006,36.83720703124999],[137.24628906250004,36.753173828125],[137.5140625,36.95156250000002],[138.31992187500012,37.21840820312502],[138.88505859375007,37.84394531250001],[139.36386718750006,38.09902343750002],[139.80195312500004,38.881591796875],[140.06474609375002,39.624414062499994],[139.99472656250006,39.855078125],[139.74150390625002,39.92084960937498],[140.01113281250005,40.26035156250006],[139.92285156250003,40.59843750000002],[140.28125,40.84609375000002],[140.3444335937501,41.203320312499955],[140.62763671875004,41.195410156250034],[140.74863281250012,40.830322265625],[140.93603515625003,40.940771484375034],[141.1185546875,40.88227539062501],[141.24423828125006,41.20561523437499],[140.80058593750002,41.138818359374966],[140.80185546875012,41.253662109375],[140.9369140625,41.50556640624998],[141.22929687500007,41.37265625]]],[[[139.48125,42.08100585937498],[139.43134765625004,42.19956054687498],[139.55839843750002,42.235205078125034],[139.48125,42.08100585937498]]],[[[141.29541015625003,45.11933593750001],[141.14531250000002,45.153906250000034],[141.19375,45.24785156249999],[141.29541015625003,45.11933593750001]]],[[[141.07275390624997,45.33286132812498],[141.03398437500007,45.26933593750002],[140.97167968749997,45.465478515624994],[141.07275390624997,45.33286132812498]]],[[[143.82431640625012,44.11699218749999],[144.71523437500005,43.92797851562503],[145.36953125000005,44.32739257812506],[145.13964843750003,43.6625],[145.34082031249997,43.30253906249999],[145.83300781249997,43.38593750000001],[144.92138671874997,43.00092773437498],[143.96933593750006,42.88139648437499],[143.42949218750002,42.41889648437498],[143.2365234375001,42.000195312499955],[141.85136718750007,42.57905273437501],[141.40664062500005,42.54692382812496],[140.98613281250002,42.34213867187498],[140.70976562500002,42.555615234374955],[140.48046875000003,42.559375],[140.32666015625003,42.29335937499999],[141.15097656250012,41.80507812499999],[140.99951171874997,41.73740234375006],[140.65986328125004,41.815576171874994],[140.3849609375001,41.51928710937503],[140.08515625000004,41.43408203125],[139.99531250000004,41.57641601562503],[140.10839843749997,41.912939453125034],[139.83544921874997,42.278076171875],[139.86015625000002,42.58173828125004],[140.43222656250012,42.95410156250006],[140.39238281250002,43.303125],[141.13818359374997,43.17993164062506],[141.37412109375006,43.279638671875006],[141.7609375000001,44.482519531250034],[141.58300781250003,45.15595703125001],[141.66796874999997,45.401269531249966],[141.93769531250004,45.509521484375],[142.88476562499997,44.670117187499955],[143.82431640625012,44.11699218749999]]]]},"properties":{"name":"Japan","childNum":28}},{"geometry":{"type":"Polygon","coordinates":[[[77.04863281249999,35.109912109374996],[76.927734375,35.346630859375],[76.88222656250002,35.4357421875],[76.81279296874999,35.571826171874996],[76.76689453124999,35.66171875],[76.87890625,35.61328125],[77.09003906250001,35.552050781249996],[77.29482421875002,35.508154296875],[77.44648437500001,35.4755859375],[77.57255859374999,35.471826171874994],[77.72402343750002,35.48056640625],[77.79941406250003,35.495898437499996],[77.42343750000003,35.302587890625],[77.16855468750003,35.171533203124994],[77.04863281249999,35.109912109374996]]]},"properties":{"name":"Siachen Glacier","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[50.184472656249994,44.854638671874994],[49.99511718750003,44.93696289062498],[50.10986328124997,45.08193359375002],[50.038867187500074,44.949121093749966],[50.184472656249994,44.854638671874994]]],[[[87.32285156250012,49.085791015625006],[86.8083007812501,49.04970703125002],[86.54941406250012,48.52861328125002],[85.7494140625,48.38505859374999],[85.52597656250006,47.915625],[85.65664062500005,47.254638671875],[85.484765625,47.06352539062496],[84.78613281249997,46.83071289062505],[84.66660156250006,46.97236328125004],[84.016015625,46.97050781250002],[83.02949218750004,47.18593750000002],[82.31523437500002,45.59492187499998],[82.61162109375007,45.424267578124955],[82.52148437500003,45.12548828125],[82.26660156249997,45.21909179687498],[81.94492187500006,45.16083984375001],[81.69199218750012,45.34936523437497],[80.05917968750012,45.006445312500006],[79.871875,44.88378906249997],[80.48154296875006,44.71464843749999],[80.35527343750002,44.09726562500006],[80.78574218750006,43.16157226562504],[80.39023437500006,43.043115234374966],[80.53896484375005,42.873486328124955],[80.20224609375012,42.73447265624998],[80.209375,42.190039062500006],[80.07128906249997,42.302978515625],[79.92109375000004,42.41313476562496],[79.49013671875,42.45756835937496],[79.42822265624997,42.483496093750006],[79.20302734375005,42.66601562499997],[79.16484375000007,42.759033203125],[79.1266601562501,42.775732421875034],[76.98808593750007,42.97358398437501],[76.64648437500003,42.928808593750034],[76.50917968750005,42.91889648437498],[75.9322265625,42.92851562499999],[75.84033203125003,42.9375],[75.78955078124997,42.93291015624999],[75.68173828125,42.83046875],[75.04765625000007,42.904394531250034],[74.20908203125006,43.24038085937502],[73.88603515625002,43.132568359375],[73.55625,43.002783203125006],[73.45019531249997,42.703027343749966],[73.421875,42.59350585937503],[73.49296875000007,42.409033203125034],[73.41162109375003,42.41977539062498],[73.316015625,42.46699218750001],[73.2829101562501,42.50410156250004],[72.85507812500006,42.561132812500006],[72.75292968750003,42.63789062500001],[72.54316406250004,42.67773437500006],[72.27578125,42.757666015625006],[71.76054687500002,42.82148437500004],[71.5142578125,42.766943359375006],[71.42207031250004,42.78315429687504],[71.25664062500002,42.733544921874966],[70.89287109375007,42.339990234374994],[70.94677734374997,42.24868164062505],[69.15361328125002,41.42524414062498],[68.58408203125,40.876269531250045],[68.57265625,40.62265624999998],[68.29189453125,40.656103515625034],[68.04765625000007,40.80927734374998],[68.11308593750007,41.02861328124999],[67.9357421875001,41.19658203125002],[66.70966796875004,41.17915039062501],[66.49863281250006,41.99487304687503],[66.00957031250007,42.00488281250003],[66.1002929687501,42.99082031249998],[65.80302734375002,42.87695312500006],[65.49619140625,43.310546875],[64.9054687500001,43.714697265625006],[64.44316406250007,43.55117187499999],[63.20703125000003,43.62797851562502],[61.99023437500003,43.492138671874955],[61.007910156250006,44.39379882812497],[58.555273437500006,45.55537109375001],[55.97568359375006,44.99492187499996],[55.97744140625005,41.32221679687504],[55.434375,41.296289062499994],[54.85380859375002,41.965185546875006],[54.120996093749994,42.335205078125],[53.0558593750001,42.14775390624999],[52.4938476562501,41.780371093750034],[52.59658203125005,42.760156249999966],[51.898242187500074,42.86962890624997],[51.61601562500002,43.15844726562503],[51.29541015624997,43.17412109375002],[51.30175781249997,43.48237304687501],[50.8307617187501,44.192773437499966],[50.331152343750006,44.32548828125002],[50.25292968749997,44.461523437500006],[50.409472656250074,44.6240234375],[51.543554687500006,44.53100585937506],[51.009375,44.92182617187501],[51.4157226562501,45.35786132812501],[53.20039062500004,45.33198242187498],[52.77382812499999,45.57275390625],[53.13525390625003,46.19165039062497],[53.069433593750006,46.85605468750006],[52.48320312500002,46.99067382812504],[52.13828125,46.82861328124997],[51.178027343750074,47.110156250000045],[49.886328125,46.59565429687504],[49.347460937500074,46.51914062499998],[49.232226562500074,46.33715820312503],[48.54121093750004,46.60561523437502],[48.558398437500074,46.75712890624999],[48.959375,46.77460937499998],[48.16699218750003,47.70878906249996],[47.48193359374997,47.80390624999998],[47.292382812499994,47.74091796875004],[47.06464843750004,48.23247070312499],[46.660937500000074,48.41225585937502],[46.70263671875003,48.80556640625002],[47.031347656250006,49.150292968749994],[46.80205078125002,49.36708984375002],[46.889550781249994,49.69697265625001],[47.42919921874997,50.35795898437502],[47.7057617187501,50.37797851562502],[48.33496093750003,49.858251953125006],[48.7589843750001,49.92832031250006],[48.625097656250006,50.61269531250005],[49.32343750000004,50.851708984374966],[49.49804687500003,51.08359375000006],[50.246875,51.28950195312498],[50.79394531249997,51.729199218749955],[51.16347656250005,51.6474609375],[51.344531250000074,51.47534179687503],[52.21914062499999,51.709375],[52.57119140625005,51.481640624999955],[53.33808593750004,51.48237304687504],[54.139746093750006,51.04077148437503],[54.555273437500006,50.535791015624994],[54.64160156250003,51.011572265625034],[55.68623046875004,50.582861328125006],[56.49140625000004,51.01953124999997],[57.01171874999997,51.06518554687503],[57.44218750000002,50.88886718749998],[57.83886718750003,51.091650390625006],[58.359179687500074,51.063818359375034],[58.88369140625005,50.694433593750006],[59.4523437500001,50.62041015625002],[59.523046875,50.492871093749955],[59.812402343749994,50.58203125],[60.05859374999997,50.850292968749955],[60.42480468749997,50.67915039062498],[60.94228515625005,50.69550781250004],[61.38945312500002,50.86103515625001],[61.55468750000003,51.32460937500005],[60.464746093749994,51.651171875000045],[60.03027343749997,51.93325195312505],[60.99453125000005,52.33686523437504],[60.77441406249997,52.67578124999997],[61.047460937500006,52.97246093750002],[62.08271484375004,53.00541992187499],[61.65986328125004,53.22846679687504],[61.19921874999997,53.28715820312502],[61.22890625,53.445898437500006],[61.53496093750002,53.52329101562506],[60.97949218749997,53.62172851562505],[61.231054687500006,54.01948242187498],[61.92871093750003,53.94648437500004],[64.46123046875002,54.38417968750002],[65.08837890624997,54.340185546875034],[65.476953125,54.62329101562497],[68.15585937500006,54.97670898437505],[68.20625,55.16093750000002],[68.9772460937501,55.389599609374955],[70.18242187500002,55.162451171875034],[70.73808593750007,55.30517578125],[71.18554687500003,54.59931640624998],[71.09316406250005,54.21220703124999],[72.00449218750006,54.20566406249998],[72.18603515625003,54.32563476562501],[72.44677734375003,53.94184570312498],[72.62226562500004,54.13432617187502],[73.22988281250005,53.957812500000045],[73.71240234375003,54.04238281250002],[73.30566406250003,53.707226562499955],[73.40693359375004,53.44755859374999],[73.85898437500006,53.61972656249998],[74.35156250000003,53.487646484375006],[74.45195312500007,53.64726562500002],[75.22021484374997,53.89379882812506],[75.43720703125004,54.08964843749999],[76.8373046875,54.4423828125],[76.65458984375007,54.14526367187503],[76.42167968750007,54.151513671874966],[76.48476562500005,54.02255859374998],[77.85996093750006,53.269189453124994],[79.98623046875,50.774560546874966],[80.42363281250002,50.94628906249997],[80.44804687500002,51.18334960937503],[80.73525390625,51.29340820312498],[81.12724609375002,51.19106445312502],[81.0714843750001,50.96875],[81.38828125000006,50.95649414062501],[81.46591796875006,50.73984375],[82.49394531250007,50.72758789062499],[82.76083984375012,50.89335937500002],[83.35732421875005,50.99458007812504],[83.94511718750007,50.774658203125],[84.32324218749997,50.239160156249966],[84.9894531250001,50.061425781249994],[85.2326171875001,49.61582031249998],[86.1808593750001,49.49931640624996],[86.67548828125004,49.77729492187501],[86.62646484374997,49.56269531250001],[87.32285156250012,49.085791015625006]]]]},"properties":{"name":"Kazakhstan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[35.325292968750006,5.364892578124994],[35.745019531249994,5.343994140625],[35.80029296874997,5.156933593749983],[35.77929687499997,5.105566406250006],[35.756152343750074,4.950488281250031],[35.76308593750005,4.808007812500051],[36.02197265625003,4.468115234374991],[36.90556640625002,4.411474609374991],[37.15458984375002,4.254541015624994],[37.944921875,3.746728515625023],[38.0861328125001,3.648828124999966],[38.22529296875004,3.61899414062502],[38.45156250000005,3.604833984374977],[38.608007812500006,3.600097656249986],[39.49443359375002,3.45610351562496],[39.65751953125002,3.577832031249983],[39.79033203125002,3.754248046875034],[39.8421875,3.851464843750037],[40.765234375,4.273046875000034],[41.02080078125002,4.057470703124991],[41.22089843750004,3.943554687499969],[41.372460937499994,3.94619140624998],[41.48193359375003,3.96328125],[41.737695312499994,3.979052734375003],[41.88398437500004,3.977734375000011],[41.6134765625001,3.59047851562498],[41.34179687499997,3.20166015625],[40.964453125,2.814648437500026],[40.9787109375001,-0.870312500000011],[41.249804687500074,-1.220507812499946],[41.4269531250001,-1.449511718749974],[41.521875,-1.572265625000028],[41.53271484374997,-1.695312499999957],[41.26748046875005,-1.945019531250026],[40.889746093750006,-2.023535156250034],[40.89824218750002,-2.269921874999966],[40.64414062500006,-2.53945312499998],[40.22246093750002,-2.688378906250037],[40.1154296875001,-3.250585937499991],[39.8609375,-3.576757812500006],[39.49091796875004,-4.478417968750023],[39.221777343750006,-4.692382812500014],[37.608203125000074,-3.497070312500028],[37.643847656250074,-3.045410156250028],[33.90322265625005,-1.002050781250034],[33.94316406250002,0.173779296874969],[34.160937500000074,0.605175781250026],[34.4108398437501,0.867285156250034],[34.48173828125002,1.042138671875051],[34.79863281250002,1.24453125],[34.976464843749994,1.719628906250051],[34.97753906249997,1.861914062499991],[34.9640625000001,2.06240234374998],[34.8830078125001,2.417919921875026],[34.90576171875003,2.4796875],[34.44785156250006,3.163476562500037],[34.40722656249997,3.357519531250034],[34.39941406249997,3.412695312500006],[34.44179687499999,3.60625],[34.43769531250004,3.650585937499969],[34.392871093750074,3.691503906250048],[34.26708984375003,3.733154296875],[34.16503906250003,3.812988281250014],[34.18574218750004,3.869775390625037],[34.13203125000004,3.889160156249986],[33.97607421874997,4.220214843750028],[34.176855468750006,4.419091796875037],[34.38017578125002,4.620654296874974],[34.6398437500001,4.875488281250028],[34.878320312499994,5.109570312500026],[35.08447265624997,5.31186523437502],[35.268359375000074,5.492285156250006],[35.325292968750006,5.364892578124994]]]},"properties":{"name":"Kenya","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[72.63994140625002,39.385986328125],[72.22998046875,39.20751953125],[72.14736328125002,39.2607421875],[72.08417968750001,39.31064453125],[72.04277343750002,39.3521484375],[71.77861328125002,39.277978515624994],[71.73222656250002,39.422998046874994],[71.50332031250002,39.478808593749996],[71.51738281250002,39.553857421874994],[71.50302734375,39.582177734374994],[71.4703125,39.603662109374994],[70.79931640625,39.3947265625],[70.50117187500001,39.587353515625],[69.29765625000002,39.524804687499994],[69.2447265625,39.827099609375],[69.27880859375,39.917773437499996],[69.3072265625,39.968554687499996],[69.36542968750001,39.947070312499996],[69.43193359375002,39.909765625],[69.47626953125001,39.919726562499996],[69.47099609375002,39.990625],[69.46875,40.020751953125],[69.966796875,40.20224609375],[70.59921875,39.974511718749994],[70.990625,40.2548828125],[71.3046875,40.286914062499996],[71.69248046875,40.15234375],[72.13125,40.438623046874994],[72.3892578125,40.427392578124994],[72.40205078125001,40.578076171875],[72.6041015625,40.525439453124996],[73.13212890625002,40.82851562499999],[72.65830078125,40.869921875],[72.36406250000002,41.04345703125],[72.294921875,41.039941406249994],[72.21308593750001,41.0142578125],[72.18730468750002,41.025927734374996],[72.18095703125002,41.118457031249996],[72.16425781250001,41.173730468749994],[72.11542968750001,41.186572265624996],[72.05244140625001,41.16474609375],[71.95849609375,41.187060546874996],[71.87861328125001,41.19501953125],[71.8580078125,41.311376953125],[71.79248046875,41.413134765624996],[71.75771484375002,41.428027343749996],[71.70068359375,41.454003906249994],[71.66494140625002,41.5412109375],[71.6375,41.5341796875],[71.60224609375001,41.503271484375],[71.60625,41.367431640625],[71.54560546875001,41.308056640625],[71.5,41.307470703125],[71.4208984375,41.34189453125],[71.40839843750001,41.136035156249996],[71.39306640625,41.123388671875],[71.11074218750002,41.152636718749996],[70.86044921875,41.224902343749996],[70.734375,41.400537109374994],[70.18095703125002,41.571435546874994],[70.85664062500001,42.030810546874996],[71.0322265625,42.077783203124994],[71.228515625,42.162890625],[71.23232421875002,42.186279296875],[71.21269531250002,42.206445312499994],[71.12998046875,42.25],[71.03603515625002,42.28466796875],[70.97900390625,42.266552734375],[70.94677734375,42.248681640624994],[70.89287109375002,42.339990234374994],[71.25664062500002,42.733544921874994],[71.42207031250001,42.783154296875],[71.5142578125,42.766943359375],[71.76054687500002,42.821484375],[72.16181640625001,42.760693359375],[72.27578125000002,42.757666015625],[72.54316406250001,42.677734375],[72.7529296875,42.637890625],[72.855078125,42.5611328125],[73.28291015625001,42.5041015625],[73.316015625,42.4669921875],[73.41162109375,42.419775390625],[73.49296875000002,42.409033203125],[73.421875,42.593505859375],[73.4501953125,42.703027343749994],[73.55625,43.002783203125],[73.88603515625002,43.132568359375],[74.20908203125,43.240380859374994],[75.04765625000002,42.90439453125],[75.68173828125,42.83046875],[75.78955078125,42.932910156249996],[75.84033203125,42.9375],[75.9322265625,42.928515625],[76.50917968750002,42.918896484375],[76.646484375,42.92880859375],[76.98808593749999,42.973583984375],[79.12666015625001,42.775732421875],[79.20302734375002,42.666015625],[79.29550781250003,42.604833984375],[79.36777343750003,42.547216796875],[79.42822265625,42.48349609375],[79.92109375000001,42.413134765624996],[80.0712890625,42.302978515625],[80.209375,42.1900390625],[80.24619140625003,42.059814453125],[80.23515624999999,42.04345703125],[80.21621093750002,42.032421875],[79.90966796875,42.014990234375],[79.84042968750003,41.995751953124994],[79.76611328125,41.898876953125],[78.74257812500002,41.56005859375],[78.54316406250001,41.4595703125],[78.44287109375,41.417529296874996],[78.36240234375003,41.371630859374996],[78.34628906250003,41.2814453125],[78.12343750000002,41.075634765625],[77.95644531250002,41.050683593749994],[77.81523437499999,41.055615234375],[77.71933593750003,41.024316406249994],[77.58173828125001,40.9927734375],[76.98662109374999,41.03916015625],[76.90771484375,41.024169921875],[76.82402343749999,40.982324218749994],[76.70839843750002,40.818115234375],[76.6611328125,40.779638671875],[76.63984375000001,40.742236328124996],[76.62216796875003,40.662353515625],[76.57792968749999,40.577880859375],[76.48017578125001,40.449511718749996],[76.39638671875002,40.389794921874994],[76.31855468750001,40.35224609375],[76.25830078125,40.43076171875],[75.87197265625002,40.30322265625],[75.67714843750002,40.305810546874994],[75.55556640625002,40.6251953125],[75.52080078125002,40.6275390625],[75.24101562500002,40.480273437499996],[75.111328125,40.4541015625],[75.0044921875,40.449511718749996],[74.865625,40.493505859375],[74.80126953125,40.428515625],[74.83046875000002,40.32851562499999],[74.41191406250002,40.13720703125],[74.24267578125,40.092041015625],[74.08515625000001,40.07431640625],[73.99160156250002,40.043115234374994],[73.93876953125002,39.978808593749996],[73.88457031250002,39.8779296875],[73.85625,39.828662109374996],[73.83535156250002,39.800146484375],[73.83974609375002,39.762841796874994],[73.88251953125001,39.71455078125],[73.9146484375,39.606494140624996],[73.90712890625002,39.57851562499999],[73.87275390625001,39.53330078125],[73.82294921875001,39.48896484375],[73.71572265625002,39.462255859375],[73.63164062500002,39.448876953124994],[73.47041015625001,39.460595703124994],[73.38740234375001,39.442724609375],[73.33613281250001,39.412353515625],[73.2349609375,39.374560546874996],[73.10927734375002,39.3619140625],[72.63994140625002,39.385986328125]],[[70.66416015625,39.85546875],[70.56708984375001,39.866601562499994],[70.49775390625001,39.882421875],[70.48281250000002,39.882714843749994],[70.4892578125,39.863037109375],[70.5595703125,39.790917968749994],[70.61210937500002,39.786767578124994],[70.70166015625,39.82529296875],[70.66416015625,39.85546875]],[[71.20615234375,39.892578125],[71.22871093750001,40.048144531249996],[71.08037109375002,40.079882812499996],[71.02412109375001,40.149169921875],[71.00546875,40.152294921875],[70.96064453125001,40.08798828125],[71.04482421875002,39.992529296875],[71.04365234375001,39.976318359375],[71.01171875,39.8951171875],[71.06425781250002,39.884912109374994],[71.15625,39.883447265624994],[71.20615234375,39.892578125]]]},"properties":{"name":"Kyrgyzstan","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[104.42636718750006,10.411230468749991],[103.87050781250005,10.655126953125034],[103.58710937500004,10.552197265625026],[103.54042968750005,10.668701171875043],[103.721875,10.890136718750043],[103.5324218750001,11.146679687499997],[103.35361328125006,10.921582031250054],[103.15283203124997,10.913720703125051],[103.12548828124997,11.460644531250011],[102.9486328125,11.773486328124974],[102.93388671875002,11.706689453125037],[102.73662109375007,12.089794921875011],[102.75566406250002,12.42626953125],[102.49960937500012,12.669970703125003],[102.33632812500005,13.560302734375014],[102.546875,13.585693359375043],[102.90927734375006,14.136718750000028],[103.19941406250004,14.332617187499977],[104.77900390625004,14.427832031250006],[105.07412109375005,14.227441406250037],[105.12597656250003,14.280957031250011],[105.16914062500004,14.336083984374966],[105.1833007812501,14.346240234374989],[105.18554687500003,14.319091796874972],[105.20703125000003,14.259375],[105.24570312500006,14.200537109374977],[105.35019531250006,14.109570312500011],[105.53154296875007,14.156152343749994],[105.73974609375003,14.084960937500057],[105.83144531250005,13.976611328125003],[105.9044921875001,13.924511718750054],[106.06679687500005,13.921191406250003],[106.12470703125004,14.049121093750031],[106.09667968749997,14.127099609375023],[106.00410156250004,14.262890624999983],[105.97890625,14.343017578125043],[106.00839843750012,14.357177734375],[106.1652343750001,14.372363281249989],[106.19072265625007,14.388134765624997],[106.22539062500002,14.476220703125009],[106.26796875,14.466210937500009],[106.35498046875003,14.454785156249997],[106.44697265625004,14.515039062500009],[106.50146484375003,14.578222656250006],[106.53115234375005,14.549414062499991],[106.5636718750001,14.505078125000026],[106.59921875000006,14.479394531250037],[106.66542968750005,14.441308593749994],[106.73818359375005,14.387744140625017],[106.78349609375002,14.335107421875037],[106.81992187500006,14.314697265625057],[106.91318359375006,14.329394531250031],[106.93808593750006,14.327343750000054],[106.99218750000003,14.391015624999966],[107.03017578125,14.425683593750009],[107.06240234375,14.415771484375043],[107.109375,14.416699218750054],[107.29267578125004,14.592382812500048],[107.37988281250003,14.555322265625051],[107.41474609375004,14.56289062499999],[107.51943359375005,14.705078125],[107.3314453125,14.126611328125009],[107.60546874999997,13.437792968750017],[107.47539062500002,13.030371093749963],[107.50644531250006,12.364550781250031],[107.39335937500002,12.260498046874972],[107.21210937500004,12.30400390624996],[106.70009765625,11.979296874999974],[106.41386718750002,11.9484375],[106.39921875000007,11.687011718750028],[106.0060546875001,11.758007812500011],[105.85146484375005,11.635009765625],[105.85605468750006,11.294287109375048],[106.16093750000002,11.037109375000057],[106.16396484375005,10.794921875],[105.85332031250007,10.86357421874996],[105.75507812500004,10.989990234375043],[105.40576171875003,10.95161132812504],[105.3146484375001,10.845166015625026],[105.04570312500002,10.911376953125014],[105.04638671874997,10.701660156250014],[104.85058593749997,10.534472656249974],[104.42636718750006,10.411230468749991]]]},"properties":{"name":"Cambodia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-157.34213867187503,1.855566406250034],[-157.17578125,1.73984375],[-157.57895507812498,1.902050781249997],[-157.43583984374993,1.84726562500002],[-157.365185546875,1.94609375],[-157.44189453125003,2.025048828125009],[-157.321875,1.968554687500045],[-157.34213867187503,1.855566406250034]]],[[[-159.3390625,3.923535156249983],[-159.27475585937503,3.796582031250054],[-159.40903320312503,3.87324218750004],[-159.3390625,3.923535156249983]]]]},"properties":{"name":"Kiribati","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[126.32695312500002,33.2236328125],[126.16562500000012,33.31201171875],[126.33769531250002,33.46040039062501],[126.90117187500002,33.51513671874997],[126.87285156250002,33.34116210937498],[126.32695312500002,33.2236328125]]],[[[126.23369140625002,34.370507812499994],[126.12285156250002,34.443945312500034],[126.34384765625012,34.544921875],[126.23369140625002,34.370507812499994]]],[[[126.17197265625006,34.73115234375001],[126.00751953125004,34.86748046874999],[126.07841796875002,34.914843750000045],[126.17197265625006,34.73115234375001]]],[[[128.0658203125,34.80585937500004],[128.05468750000003,34.70805664062502],[127.87343750000005,34.73496093749998],[127.8322265625001,34.87451171875],[128.0658203125,34.80585937500004]]],[[[128.74101562500007,34.798535156249955],[128.64667968750004,34.73686523437502],[128.48925781250003,34.86528320312496],[128.66796875000003,35.0087890625],[128.74101562500007,34.798535156249955]]],[[[126.52070312500004,37.73681640625003],[126.516015625,37.60468750000001],[126.42333984375003,37.62363281250006],[126.41162109374997,37.82265625000002],[126.52070312500004,37.73681640625003]]],[[[128.37460937500012,38.6234375],[129.41826171875002,37.059033203124955],[129.40351562500004,36.052148437499994],[129.57285156250006,36.05053710937503],[129.4191406250001,35.49785156249996],[129.07675781250006,35.12270507812502],[128.5109375000001,35.10097656250002],[128.44394531250012,34.87036132812503],[128.03623046875006,35.02197265625],[127.71484374999997,34.95468749999998],[127.71542968750012,34.72104492187498],[127.40429687499997,34.823095703125006],[127.47910156250012,34.625244140625],[127.324609375,34.463281249999966],[127.17343750000006,34.54614257812497],[127.24707031249997,34.755126953125],[126.89746093749997,34.438867187499966],[126.75478515625005,34.511865234374994],[126.53144531250004,34.31425781249999],[126.26445312500002,34.67324218750002],[126.52451171875006,34.697900390624966],[126.59335937500012,34.824365234374994],[126.42070312500002,34.823388671874966],[126.29111328125012,35.154150390625034],[126.61406250000007,35.57099609375004],[126.4884765625001,35.647070312500006],[126.75302734375006,35.871972656249994],[126.5404296875,36.166162109374966],[126.4876953125,36.69379882812498],[126.18085937500004,36.69160156249998],[126.16054687500005,36.77192382812501],[126.48701171875004,37.00747070312502],[126.78447265625007,36.94843749999998],[126.87207031249997,36.82446289062506],[126.97685546875002,36.93940429687501],[126.74638671875002,37.19355468750001],[126.63388671875012,37.78183593750006],[127.09033203125003,38.28388671875001],[128.03896484375,38.30854492187498],[128.37460937500012,38.6234375]]]]},"properties":{"name":"Korea","childNum":7}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[48.27539062499997,29.624316406250017],[48.17968750000003,29.611425781250063],[48.081445312499994,29.798925781250063],[48.1847656250001,29.978857421875034],[48.348242187500006,29.78266601562504],[48.27539062499997,29.624316406250017]]],[[[48.442480468750006,28.542919921874983],[47.671289062499994,28.53315429687504],[47.433203125,28.989550781250017],[46.53144531250004,29.09624023437499],[46.69375,29.259667968749966],[46.76933593750002,29.347460937500017],[46.90585937500006,29.5375],[47.14824218750002,30.0009765625],[47.64375,30.097314453125023],[47.75390624999997,30.076611328124955],[47.97871093750004,29.98281250000005],[48.00566406250002,29.835791015625034],[48.143457031249994,29.57246093750001],[47.96962890625005,29.61669921874997],[47.72265624999997,29.393017578124955],[48.0514648437501,29.355371093750023],[48.442480468750006,28.542919921874983]]]]},"properties":{"name":"Kuwait","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[102.12744140625011,22.37919921874999],[102.58251953125006,21.904296875000057],[102.66201171875008,21.676025390625057],[102.73857421875005,21.677929687500125],[102.77109375000015,21.70966796875001],[102.79824218750014,21.797949218750034],[102.81591796875,21.807373046875],[102.94960937500008,21.681347656250068],[102.85117187500009,21.26591796874999],[102.8837890625,21.202587890625068],[103.1044921875,20.89165039062499],[103.21074218749999,20.840625],[103.46357421874995,20.779833984375102],[103.6350585937501,20.697070312500102],[104.10136718750005,20.945507812500125],[104.1953125,20.91396484375008],[104.349609375,20.82109374999999],[104.58320312500001,20.646679687499955],[104.53271484375,20.554882812500125],[104.47861328124998,20.529589843750102],[104.40781250000015,20.485742187500023],[104.36777343750015,20.441406250000057],[104.39218750000015,20.424755859375068],[104.49619140625003,20.41367187499992],[104.61884765624995,20.374511718750114],[104.65644531250001,20.328515624999966],[104.66191406250005,20.289013671875125],[104.67695312500007,20.224707031249977],[104.69873046875006,20.205322265625114],[104.84785156250007,20.202441406250045],[104.88867187500006,20.169091796875023],[104.92919921874994,20.082812500000045],[104.92792968750007,20.01811523437499],[104.81513671875001,19.90400390625001],[104.80175781250011,19.836132812500068],[104.74316406250006,19.754736328124977],[104.58789062500006,19.61875],[104.54628906250014,19.610546875000068],[104.25986328125003,19.685498046875068],[104.06279296875005,19.678417968750068],[104.03203124999999,19.67514648437492],[104.0134765625001,19.646484374999943],[104.05156250000005,19.564160156250068],[104.06289062500002,19.482568359375136],[104.02753906250013,19.420458984375102],[103.93203125000002,19.366064453125034],[103.89638671875002,19.339990234375023],[103.89160156249994,19.30498046874999],[105.146484375,18.650976562499977],[105.14541015625014,18.616796874999977],[105.08701171875015,18.49624023437508],[105.11455078125005,18.405273437500057],[105.45820312500007,18.154296875000057],[105.51855468750011,18.077441406250045],[105.58847656250015,17.983691406249932],[105.69140625,17.737841796874932],[106.00625,17.415283203124943],[106.26953125,17.216796875000057],[106.33339843750002,17.14370117187508],[106.42597656250007,17.00253906250009],[106.50224609374999,16.9541015625],[106.52597656250003,16.876611328125023],[106.53369140625,16.821044921875057],[106.54619140625005,16.650732421874977],[106.65644531250013,16.492626953125125],[106.73955078124999,16.452539062500136],[106.79160156250015,16.490332031249977],[106.83242187500008,16.526269531250023],[106.85107421875,16.515625],[106.89277343750013,16.396533203125102],[106.93066406250006,16.353125],[107.39638671875008,16.04301757812499],[107.39199218750008,15.951660156250057],[107.36064453125005,15.921728515624977],[107.18886718750008,15.838623046875114],[107.16591796875002,15.802490234375],[107.27939453125003,15.618701171875045],[107.33876953125002,15.560498046875125],[107.56425781249999,15.3916015625],[107.62167968750015,15.309863281250045],[107.653125,15.255224609375091],[107.63369140625008,15.18984375000008],[107.58964843749999,15.118457031250102],[107.55527343750009,15.057031250000023],[107.48037109375014,14.979882812500136],[107.5046875000001,14.91591796875008],[107.52451171875003,14.871826171874943],[107.51376953124998,14.817382812500057],[107.51943359375008,14.705078125000114],[107.46513671875005,14.664990234375125],[107.41474609375007,14.56289062500008],[107.37988281250006,14.555322265625136],[107.29267578125007,14.592382812500034],[107.109375,14.416699218749955],[107.06240234375008,14.415771484374943],[107.03017578125008,14.425683593750023],[106.99218749999994,14.39101562500008],[106.93808593750015,14.327343750000068],[106.91318359375003,14.329394531249932],[106.81992187500003,14.314697265624943],[106.7834960937501,14.335107421875023],[106.73818359375008,14.387744140625102],[106.66542968750002,14.441308593750023],[106.59921875000003,14.479394531250136],[106.56367187500007,14.505078125000011],[106.53115234375002,14.549414062499977],[106.50146484375,14.578222656250034],[106.22539062500005,14.476220703125023],[106.1907226562501,14.388134765625011],[106.16523437500007,14.372363281249989],[106.00839843750009,14.357177734375114],[105.97890625000014,14.343017578125057],[106.00410156250013,14.262890625000068],[106.09667968750011,14.127099609375136],[106.12470703124995,14.049121093750045],[106.06679687500008,13.921191406250102],[105.90449218750007,13.924511718750068],[105.83144531250008,13.976611328124989],[105.73974609375006,14.084960937500057],[105.5315429687501,14.156152343750023],[105.35019531250009,14.109570312500125],[105.24570312500015,14.200537109374977],[105.20703125000006,14.259375],[105.18554687499994,14.319091796875],[105.18330078125001,14.346240234374989],[105.24365234375006,14.367871093749955],[105.34218750000008,14.416699218749955],[105.42265624999993,14.471630859374955],[105.47558593750006,14.530126953124977],[105.49736328125005,14.590673828125034],[105.52304687500015,14.843310546874989],[105.54667968749999,14.932470703125034],[105.53339843750013,15.041601562500091],[105.49042968750007,15.127587890625023],[105.49042968750007,15.256591796875],[105.615625,15.488281249999943],[105.63886718750013,15.585937499999943],[105.64101562500002,15.656542968749932],[105.62207031250006,15.699951171875114],[105.39892578125011,15.829882812500102],[105.40625,15.987451171875023],[105.33066406250003,16.037890625000045],[105.1487304687501,16.09355468749999],[105.04716796874999,16.16025390625009],[104.81933593749994,16.466064453125057],[104.75058593750015,16.647558593750034],[104.74355468750014,16.884375],[104.75898437500013,17.0771484375],[104.81601562499998,17.30029296875],[104.73964843750008,17.461669921875],[104.428125,17.698974609375057],[104.32265625000002,17.815820312500023],[104.19619140625002,17.988378906250034],[104.04873046875002,18.216699218749966],[103.94960937500008,18.318994140625023],[103.89882812500002,18.295312500000023],[103.79228515624999,18.31650390625009],[103.62968750000005,18.382568359375057],[103.48798828124995,18.41816406250001],[103.36699218750005,18.42333984375],[103.28828124999995,18.408398437499955],[103.25175781249999,18.373486328125125],[103.24892578125014,18.338964843750034],[103.27958984374999,18.304980468750045],[103.26318359375,18.278466796875136],[103.19970703125006,18.25947265625001],[103.14853515625009,18.221728515624932],[103.09121093750014,18.13823242187499],[103.05136718750003,18.02851562500001],[102.80742187500005,17.945556640625],[102.71757812500005,17.892236328125136],[102.67519531250014,17.851757812500068],[102.68007812500008,17.824121093750136],[102.66064453125,17.8179687499999],[102.61679687500015,17.833349609375034],[102.59824218750009,17.926757812500057],[102.55253906249999,17.965087890625057],[102.4587890625001,17.984619140624943],[102.35185546874999,18.045947265625045],[102.14824218750005,18.203857421875057],[102.10146484375014,18.21064453125001],[102.03457031250002,18.169824218750023],[101.94746093750001,18.081494140624955],[101.87548828125011,18.046435546874932],[101.81865234375005,18.064648437500125],[101.77480468750002,18.033398437500125],[101.6875,17.889404296875114],[101.56367187500001,17.820507812500125],[101.55507812500002,17.812353515625034],[101.41367187500015,17.71875],[101.16748046875011,17.4990234375],[101.10517578125001,17.479541015625102],[100.9084960937501,17.583886718750023],[101.14394531250008,18.14262695312499],[101.1375,18.286865234375057],[101.0505859375001,18.407031250000045],[101.04697265625003,18.441992187500034],[101.28632812499995,18.977148437500034],[101.19755859374999,19.327929687500045],[101.22080078125015,19.486621093750045],[101.21191406250011,19.548339843750057],[100.51357421875008,19.553466796875],[100.39765625000013,19.756103515625057],[100.51953125000006,20.177929687500068],[100.31796875000003,20.385888671875136],[100.2180664062501,20.339599609375114],[100.13974609375015,20.245410156250102],[100.11494140625007,20.25766601562492],[100.12246093750002,20.316650390625057],[100.12968750000005,20.372216796875023],[100.1838867187501,20.589111328124943],[100.2493164062501,20.730273437499932],[100.32607421875008,20.795703124999932],[100.40742187499995,20.823242187500057],[100.56513671875013,20.82509765625008],[100.62294921875002,20.85957031250001],[100.61767578125,20.87924804687509],[100.54931640625011,20.884228515625068],[100.5222656250001,20.921923828125102],[100.53613281250006,20.992382812500068],[100.703125,21.25136718750008],[101.0803710937501,21.46865234375008],[101.13886718750013,21.567480468749977],[101.19667968750002,21.522070312499977],[101.17539062500009,21.407519531250102],[101.21992187500013,21.342431640625136],[101.21181640625008,21.278222656250023],[101.22441406249999,21.22373046874992],[101.24785156249993,21.197314453125045],[101.28144531250007,21.184130859375045],[101.44355468750001,21.230810546874977],[101.54238281250008,21.234277343750136],[101.70478515625013,21.150146484375057],[101.728125,21.15639648437508],[101.78349609374999,21.204150390625045],[101.8005859375001,21.212597656249955],[101.7229492187501,21.314941406250057],[101.74726562500007,21.60576171874999],[101.7439453125001,21.77797851562508],[101.73652343750001,21.826513671874977],[101.52451171874998,22.253662109375],[101.56787109375011,22.2763671875],[101.6199218750001,22.327441406250102],[101.67148437500009,22.462304687500023],[101.70751953125,22.486572265625],[101.73876953125011,22.495263671874966],[101.75996093750001,22.490332031250034],[101.841796875,22.388476562500102],[102.02441406250006,22.439208984375114],[102.09150390625007,22.412255859375136],[102.12744140625011,22.37919921874999]]]},"properties":{"name":"Lao PDR","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[35.869140625,33.43173828125],[35.411230468750006,33.07568359375],[35.10859375000001,33.08369140625],[35.64785156250002,34.2482421875],[35.97626953125001,34.629199218749996],[36.383886718750006,34.65791015625],[36.32988281250002,34.499609375],[36.50439453125,34.432373046875],[36.5849609375,34.221240234374996],[36.27783203125,33.92529296875],[36.36503906250002,33.83935546875],[35.98613281250002,33.75263671875],[36.03447265625002,33.58505859375],[35.869140625,33.43173828125]]]},"properties":{"name":"Lebanon","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-8.486425781249977,7.558496093749994],[-8.408740234374989,7.411816406249997],[-8.324511718749989,6.920019531249991],[-8.587890625,6.490527343749989],[-8.287109375,6.319042968749997],[-7.981591796874994,6.2861328125],[-7.888623046874983,6.23486328125],[-7.800927734374994,6.038916015624991],[-7.730371093749994,5.919042968749991],[-7.636132812499994,5.90771484375],[-7.454394531249989,5.84130859375],[-7.39990234375,5.550585937499989],[-7.585058593749977,4.916748046875],[-7.574658203124983,4.572314453124989],[-7.544970703124989,4.351318359375],[-8.259033203125,4.589990234374994],[-9.132177734374977,5.054638671874997],[-10.2763671875,6.07763671875],[-11.291601562499977,6.688232421875],[-11.507519531249983,6.906542968749989],[-11.267675781249977,7.232617187499997],[-10.878076171874994,7.538232421874994],[-10.6474609375,7.759375],[-10.570849609374989,8.071142578124991],[-10.516748046874994,8.125292968749989],[-10.359814453124983,8.187939453124997],[-10.283203125,8.485156249999989],[-10.233056640624994,8.488818359374989],[-10.147412109374983,8.519726562499997],[-10.064355468749994,8.429882812499997],[-9.781982421875,8.537695312499991],[-9.518261718749983,8.34609375],[-9.369140625,7.703808593749997],[-9.463818359374983,7.415869140624991],[-9.11757812499999,7.215917968749991],[-8.8896484375,7.2626953125],[-8.659765624999977,7.688378906249994],[-8.486425781249977,7.558496093749994]]]},"properties":{"name":"Liberia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[25.150488281250006,31.654980468749997],[24.85273437500001,31.334814453125],[24.96142578125,30.678515625],[24.703222656250006,30.201074218749994],[24.980273437500017,29.181884765625],[24.980273437500017,25.5888671875],[24.980273437500017,21.995849609375],[24.9794921875,20.002587890624994],[23.980273437500017,19.99594726562499],[23.980273437500017,19.496630859375003],[20.14765625000001,21.38925781249999],[15.984082031250011,23.445214843749994],[14.97900390625,22.99619140624999],[14.215527343750011,22.619677734375003],[13.48125,23.18017578125],[11.967871093750006,23.517871093750003],[11.507617187500017,24.314355468749994],[10.686132812500006,24.55136718749999],[10.395898437500023,24.485595703125],[10.255859375,24.591015625],[10.000683593750011,25.332080078125003],[9.4482421875,26.067138671875],[9.491406250000011,26.333740234375],[9.883203125000023,26.630810546874997],[9.74755859375,27.330859375],[9.916015625,27.785693359374996],[9.805273437500006,29.176953125],[9.310253906250011,30.115234375],[9.51875,30.229394531249994],[9.89501953125,30.3873046875],[9.932519531250023,30.425341796874996],[10.059765625000011,30.580078125],[10.21640625,30.783203125],[10.114941406250011,31.463769531249994],[10.274609375000011,31.684960937499994],[10.475781250000011,31.736035156249997],[10.60888671875,31.929541015625],[10.826367187500011,32.0806640625],[11.005175781250017,32.172705078125],[11.168261718750017,32.256738281249994],[11.358007812500006,32.34521484375],[11.504980468750006,32.413671875],[11.535937500000017,32.47333984375],[11.533789062500006,32.524951171874996],[11.453906250000017,32.642578125],[11.453906250000017,32.781689453125],[11.459179687500011,32.897363281249994],[11.467187500000023,32.965722656249994],[11.504589843750011,33.181933593749996],[11.657128906250023,33.118896484375],[11.8134765625,33.093701171875],[12.279882812500006,32.858544921874994],[12.753515625,32.801074218749996],[13.283496093750017,32.9146484375],[15.176562500000017,32.391162109374996],[15.705957031250023,31.426416015624994],[17.830468750000023,30.927587890625],[18.669824218750023,30.415673828124994],[19.12373046875001,30.26611328125],[19.713281250000023,30.48837890625],[20.11152343750001,30.963720703125],[19.926367187500006,31.817529296874994],[20.121484375000023,32.21875],[20.62109375,32.58017578125],[21.63593750000001,32.937304687499996],[22.187402343750023,32.918261718749996],[23.090625,32.61875],[23.10625,32.331445312499994],[23.28632812500001,32.213818359375],[24.129687500000017,32.009228515625],[24.878515625,31.984277343749994],[25.150488281250006,31.654980468749997]]]},"properties":{"name":"Libya","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-60.89521484375,13.821972656249997],[-60.951416015625,13.717578125],[-61.073144531249994,13.865576171874991],[-60.908105468749994,14.09335937499999],[-60.89521484375,13.821972656249997]]]},"properties":{"name":"Saint Lucia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[79.87480468750002,9.050732421875026],[79.90371093750005,8.975],[79.74765625000006,9.104589843749991],[79.87480468750002,9.050732421875026]]],[[[79.98232421875,9.812695312500011],[80.25283203125005,9.796337890625054],[80.71113281250004,9.366357421875023],[81.226953125,8.50551757812498],[81.37285156250002,8.431445312499989],[81.42216796875007,8.147851562500023],[81.87412109375012,7.288330078124986],[81.86142578125012,6.901269531249994],[81.63740234375004,6.425146484374991],[80.72412109375003,5.97905273437496],[80.26738281250007,6.009765625],[80.09531250000012,6.153173828125006],[79.859375,6.829296874999983],[79.71298828125012,8.18232421875004],[79.74980468750007,8.294238281250003],[79.78349609375007,8.018457031250051],[79.92890625000004,8.899218749999974],[80.09960937499997,9.209960937500043],[80.08632812500005,9.577832031250026],[80.42832031250006,9.480957031250014],[80.04580078125005,9.649902343749972],[79.98232421875,9.812695312500011]]]]},"properties":{"name":"Sri Lanka","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[28.646875,-30.1265625],[28.39208984375,-30.147558593750006],[28.128710937500017,-30.52509765625001],[28.05683593750001,-30.63105468750001],[27.753125,-30.6],[27.364062500000017,-30.27919921875001],[27.19355468750001,-29.94130859375001],[27.056933593750017,-29.625585937500006],[27.29453125,-29.519335937500003],[27.73554687500001,-28.940039062500006],[27.959863281250023,-28.873339843750003],[28.084375,-28.77998046875001],[28.23261718750001,-28.701269531250006],[28.471875,-28.615820312500006],[28.583398437500023,-28.594140625],[28.625781250000017,-28.58173828125001],[29.301367187500006,-29.08984375],[29.38671875,-29.31972656250001],[29.34882812500001,-29.441992187500006],[29.293554687500006,-29.56689453125],[29.1421875,-29.700976562500003],[29.098046875000023,-29.919042968750006],[28.646875,-30.1265625]]]},"properties":{"name":"Lesotho","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[20.957812500000074,55.27890625000006],[20.89980468750008,55.286669921875045],[21.11484375,55.61650390624999],[20.957812500000074,55.27890625000006]]],[[[25.573046875000017,54.139892578125],[25.497363281250045,54.17524414062501],[25.52734375000003,54.21513671874996],[25.505664062500045,54.26494140624999],[25.46113281250004,54.29277343749996],[25.179492187500017,54.214257812499966],[25.111425781250006,54.15493164062505],[25.04609375000004,54.13305664062503],[24.869531250000023,54.14516601562502],[24.82568359374997,54.118994140625006],[24.78925781250001,53.99824218750001],[24.768164062499977,53.97465820312499],[24.31796875,53.892968749999966],[24.236621093750045,53.91997070312496],[24.19130859375005,53.95043945312503],[23.559082031250057,53.91982421875002],[23.484667968750074,53.939794921875006],[23.453613281250057,54.14345703125002],[23.3701171875,54.20048828124999],[23.282324218750063,54.240332031250034],[23.17031250000008,54.28144531249998],[23.0875,54.299462890624994],[23.042187500000068,54.30419921875],[23.01552734375005,54.34833984375001],[22.976757812500068,54.36635742187505],[22.89394531250008,54.390527343749994],[22.82373046874997,54.39580078124999],[22.766210937499977,54.356787109375034],[22.679882812500068,54.493017578125006],[22.684472656250023,54.56293945312504],[22.82470703125,54.87128906249998],[22.56728515625005,55.05913085937496],[22.072363281250034,55.06367187499998],[21.235742187500023,55.26411132812498],[21.237890625000034,55.455029296874955],[21.06191406250005,55.81342773437498],[21.053808593750006,56.02294921875003],[21.04609375000004,56.07006835937503],[21.31464843750004,56.18813476562502],[21.65351562500004,56.314550781250006],[22.084570312500034,56.40673828125006],[22.875585937500063,56.39643554687501],[22.96826171875003,56.38041992187502],[23.042968750000057,56.324072265625006],[23.119824218749983,56.330664062500006],[23.195898437500034,56.36713867187498],[24.120703125000063,56.26425781249998],[24.90302734375001,56.398193359375],[25.069921875,56.20039062500004],[25.663183593750063,56.104833984375006],[26.593554687500074,55.66752929687502],[26.590820312500057,55.62265625],[26.56660156250001,55.546484375000034],[26.51923828125004,55.448144531249994],[26.469531250000045,55.371923828125006],[26.457617187500006,55.342480468749955],[26.49531250000004,55.31801757812502],[26.68125,55.30644531249999],[26.76015625000008,55.29335937499999],[26.775683593750045,55.27309570312502],[26.601171875000034,55.130175781250045],[26.291796875000074,55.13959960937501],[26.250781250000045,55.12451171875006],[26.175195312500023,55.003271484375034],[26.092968750000068,54.96230468750005],[25.964453124999977,54.947167968749966],[25.85927734375005,54.91928710937498],[25.722460937500074,54.71787109374998],[25.731640625000068,54.59038085937502],[25.72480468750001,54.564257812500045],[25.68515625,54.53579101562502],[25.62031250000004,54.46040039062501],[25.56757812500004,54.377050781250006],[25.54736328125,54.33183593750002],[25.55751953125005,54.310693359374994],[25.702539062499994,54.29296875],[25.765234374999977,54.179785156250034],[25.573046875000017,54.139892578125]]]]},"properties":{"name":"Lithuania","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[6.4873046875,49.798486328124994],[6.344335937500006,49.452734375],[6.181054687500023,49.498925781249994],[6.119921875000017,49.485205078125],[6.074121093750023,49.454638671874996],[6.011425781250011,49.445458984374994],[5.95947265625,49.454638671874996],[5.928906250000011,49.4775390625],[5.9013671875,49.48974609375],[5.823437500000011,49.505078125],[5.789746093750011,49.53828125],[5.776710379464286,49.639953962053575],[5.744042968750023,49.91962890625],[5.7880859375,49.961230468749996],[5.8173828125,50.0126953125],[5.866894531250011,50.0828125],[5.976269531250011,50.1671875],[6.089062500000011,50.154589843749996],[6.110058593750011,50.123779296875],[6.116503906250017,50.120996093749994],[6.109765625000023,50.034375],[6.13818359375,49.97431640625],[6.204882812500017,49.91513671875],[6.272327008928583,49.887234933035714],[6.4873046875,49.798486328124994]]]},"properties":{"name":"Luxembourg","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.14794921875,56.142919921875],[27.576757812500006,55.798779296875],[27.052539062500017,55.83056640625],[26.593554687500017,55.667529296874996],[25.663183593750006,56.104833984375],[25.069921875,56.200390625],[24.90302734375001,56.398193359375],[24.120703125,56.2642578125],[23.81269531250001,56.329248046875],[23.195898437500006,56.367138671875],[23.11982421875001,56.3306640625],[23.04296875,56.324072265625],[22.875585937500006,56.396435546875],[22.084570312500006,56.40673828125],[21.730566406250006,56.325976562499996],[21.65351562500001,56.31455078125],[21.31464843750001,56.188134765625],[21.04609375000001,56.070068359375],[21.0712890625,56.82373046875],[21.72871093750001,57.57099609375],[22.554589843750023,57.724267578125],[23.28730468750001,57.08974609375],[23.647753906250017,56.971044921875],[24.382617187500017,57.250048828124996],[24.322558593750017,57.87060546875],[24.3625,57.866162109375],[24.458886718750023,57.907861328125],[25.11103515625001,58.063427734375],[25.27265625000001,58.009375],[25.66015625,57.920166015625],[26.29804687500001,57.60107421875],[26.532617187500023,57.531005859375],[26.96601562500001,57.609130859375],[27.187109375,57.538330078125],[27.326562500000023,57.52548828125],[27.4697265625,57.5240234375],[27.538671875,57.42978515625],[27.796875,57.316943359374996],[27.82861328125,57.293310546875],[27.838281250000023,57.247705078125],[27.83027343750001,57.194482421875],[27.639453125000017,56.845654296875],[27.806054687500023,56.86708984375],[27.8486328125,56.85341796875],[27.89208984375,56.741064453125],[28.00751953125001,56.599853515625],[28.103125,56.545703125],[28.11083984375,56.510693359375],[28.169238281250017,56.386865234375],[28.191699218750017,56.315576171875],[28.202050781250023,56.260400390625],[28.14794921875,56.142919921875]]]},"properties":{"name":"Latvia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.2125,45.450439453125],[28.07470703125,45.598974609375],[28.23945312500001,46.6408203125],[28.07177734375,46.978417968749994],[27.614062500000017,47.34052734375],[26.980761718750017,48.155029296875],[26.618945312500017,48.25986328125],[26.640429687500017,48.294140625],[26.847070312500023,48.387158203125],[26.90058593750001,48.371923828125],[27.228515625,48.371435546875],[27.549218750000023,48.477734375],[28.34052734375001,48.144433593749994],[28.42304687500001,48.146875],[29.125390625000023,47.96455078125],[29.134863281250006,47.489697265625],[29.455664062500006,47.292626953124994],[29.57197265625001,46.964013671874994],[29.7197265625,46.88291015625],[29.877832031250023,46.82890625],[29.942480468750006,46.723779296874994],[29.93476562500001,46.625],[29.92431640625,46.538867187499996],[30.13105468750001,46.423095703125],[30.07568359375,46.377832031249994],[29.878027343750006,46.360205078125],[29.837890625,46.350537109375],[29.458789062500017,46.453759765624994],[29.30488281250001,46.466601562499996],[29.22382812500001,46.376953125],[29.20458984375,46.379345703125],[29.20078125,46.50498046875],[29.18623046875001,46.523974609374996],[29.146289062500017,46.526904296874996],[28.958398437500023,46.45849609375],[28.92744140625001,46.424121093749996],[28.930566406250023,46.362255859375],[28.94375,46.288427734375],[29.00625,46.17646484375],[28.971875,46.12763671875],[28.94775390625,46.049951171874994],[28.849511718750023,45.978662109374994],[28.73876953125,45.937158203124994],[28.729296875000017,45.852001953125],[28.667578125,45.793847656249994],[28.562304687500017,45.735791015625],[28.491601562500023,45.665771484375],[28.4990234375,45.517724609374994],[28.310351562500017,45.498583984374996],[28.26484375000001,45.48388671875],[28.2125,45.450439453125]]]},"properties":{"name":"Moldova","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[49.936425781249994,-16.90292968750002],[49.82402343750002,-17.08652343750002],[50.02304687500006,-16.6953125],[49.936425781249994,-16.90292968750002]]],[[[48.3421875,-13.363867187500034],[48.21191406250003,-13.385253906249957],[48.191210937500074,-13.259960937500011],[48.308886718750074,-13.198242187499957],[48.3421875,-13.363867187500034]]],[[[49.53828125000004,-12.432128906250014],[49.9375,-13.072265624999957],[50.23535156249997,-14.732031249999963],[50.482714843750074,-15.385644531249994],[50.20898437499997,-15.960449218750028],[50.02041015625005,-15.801757812500028],[49.89257812500003,-15.457714843750011],[49.664355468750074,-15.521582031249977],[49.83906250000004,-16.486523437499997],[49.76718750000006,-16.815136718749983],[49.44931640625006,-17.240625],[49.477832031250074,-17.89853515624999],[49.362890625,-18.336328125],[47.934472656249994,-22.393945312500023],[47.55800781250005,-23.874609374999963],[47.17734375,-24.787207031249977],[46.72851562499997,-25.14990234374997],[46.15869140624997,-25.230371093750023],[45.5080078125001,-25.56318359374997],[45.2057617187501,-25.57050781250004],[44.0353515625001,-24.995703125],[43.670019531250006,-24.30029296875],[43.722265625,-23.529687500000037],[43.2648437500001,-22.38359375],[43.29052734374997,-21.93251953124998],[43.50185546875005,-21.356445312499957],[43.800195312499994,-21.179199218749986],[44.40468750000005,-19.922070312500026],[44.44882812500006,-19.42871093749997],[44.23876953124997,-19.075195312499986],[44.23310546875004,-18.740625],[44.04003906249997,-18.288476562500023],[43.979394531249994,-17.3916015625],[44.42138671874997,-16.70263671874997],[44.476171875,-16.217285156249957],[44.90917968749997,-16.174511718750026],[45.2228515625001,-15.95048828124996],[45.3421875,-16.03671875000002],[45.598242187500006,-15.992578125],[45.70019531249997,-15.813769531249989],[46.157519531250074,-15.738281249999972],[46.3996093750001,-15.924609375000017],[46.331445312499994,-15.713671875000031],[46.47509765625003,-15.513476562500003],[46.942285156249994,-15.219042968749974],[47.09921875,-15.43417968750002],[47.092578125000074,-15.150097656249969],[47.35195312500005,-14.766113281249986],[47.46474609375005,-14.713281249999966],[47.47832031250002,-15.009375],[47.77402343750006,-14.63671875],[47.964160156250074,-14.672558593750026],[47.773339843749994,-14.369921875],[47.995507812499994,-13.960449218749986],[47.88359375000002,-13.807519531250009],[47.94101562500006,-13.662402343750017],[48.03984375000002,-13.596289062499963],[48.25527343750005,-13.719335937499977],[48.796484375,-13.267480468750023],[48.91943359375003,-12.839062499999969],[48.78632812500004,-12.470898437500011],[48.931738281250006,-12.4390625],[49.20703124999997,-12.079589843749957],[49.53828125000004,-12.432128906250014]]]]},"properties":{"name":"Madagascar","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-91.68369140624998,18.677343750000034],[-91.81611328124995,18.675878906250006],[-91.53671874999998,18.760009765625],[-91.68369140624998,18.677343750000034]]],[[[-86.93964843750001,20.303320312500006],[-86.97797851562498,20.489794921875074],[-86.76328124999995,20.579052734374955],[-86.93964843750001,20.303320312500006]]],[[[-106.50224609374999,21.61083984375003],[-106.60703124999993,21.561474609374983],[-106.63935546874995,21.697851562499977],[-106.50224609374999,21.61083984375003]]],[[[-110.56738281249994,25.003466796875017],[-110.5388671875,24.89155273437504],[-110.69926757812499,25.081445312499994],[-110.56738281249994,25.003466796875017]]],[[[-112.05727539062498,24.545703125000017],[-112.29677734375002,24.789648437500063],[-112.15942382812501,25.28564453125003],[-112.19501953124998,24.841064453125057],[-112.05727539062498,24.545703125000017]]],[[[-111.10029296874998,26.020605468750006],[-111.224658203125,25.83588867187504],[-111.18291015625002,26.040625],[-111.10029296874998,26.020605468750006]]],[[[-115.17060546875001,28.06938476562496],[-115.35292968750002,28.103955078124983],[-115.23354492187495,28.36835937500004],[-115.17060546875001,28.06938476562496]]],[[[-112.20307617187503,29.00532226562504],[-112.27841796875,28.769335937500017],[-112.51406249999997,28.847607421874955],[-112.42353515625,29.203662109375017],[-112.28505859374994,29.240429687499955],[-112.20307617187503,29.00532226562504]]],[[[-113.15561523437502,29.05224609375],[-113.49633789062497,29.30761718749997],[-113.58720703125002,29.57304687499996],[-113.20214843749999,29.301855468750034],[-113.15561523437502,29.05224609375]]],[[[-97.14624023437494,25.961474609375045],[-97.66767578124995,24.389990234374977],[-97.84248046874995,22.510302734375017],[-97.76328124999998,22.105859374999966],[-97.31450195312496,21.56420898437503],[-97.40917968749997,21.272558593750034],[-97.38344726562497,21.56669921874999],[-97.75380859375002,22.02666015624999],[-97.18632812499996,20.717041015625],[-96.45605468749994,19.869775390624966],[-96.28955078124994,19.34375],[-95.778125,18.805517578125034],[-95.92036132812495,18.81958007812497],[-95.62680664062503,18.690576171874994],[-95.71982421874998,18.768359375000017],[-95.18183593749995,18.700732421875017],[-94.79814453124996,18.51459960937501],[-94.45976562499993,18.166650390624994],[-93.55234375,18.430468750000017],[-92.88476562499997,18.468652343749966],[-92.44101562499998,18.67529296874997],[-91.97377929687502,18.715869140625074],[-91.91357421875,18.52851562500001],[-91.53398437499993,18.45654296875],[-91.27524414062498,18.62446289062501],[-91.34306640624996,18.900585937499955],[-91.43666992187502,18.889794921874966],[-90.73925781249994,19.352246093749955],[-90.69316406249996,19.729882812499966],[-90.49169921874997,19.94677734375003],[-90.353125,21.009423828124966],[-89.81977539062495,21.274609374999983],[-88.46669921874997,21.569384765625017],[-88.0068359375,21.604052734375045],[-87.25087890625,21.44697265625004],[-87.18828124999993,21.546435546875045],[-87.36850585937498,21.57373046875],[-87.034765625,21.592236328124955],[-86.824072265625,21.421679687500017],[-86.77177734374999,21.150537109375023],[-86.92622070312493,20.786474609375034],[-87.42138671875,20.23139648437501],[-87.44174804687498,19.861523437499983],[-87.68769531249998,19.63710937499999],[-87.6453125,19.55390625000001],[-87.42475585937498,19.583349609375063],[-87.65869140625003,19.352343750000074],[-87.65576171874997,19.25786132812499],[-87.50107421874998,19.287792968749983],[-87.76181640624998,18.446142578125006],[-87.88198242187497,18.27387695312501],[-88.05644531249996,18.524462890625074],[-88.03173828125,18.838916015625017],[-88.29565429687494,18.47241210937503],[-88.52299804687499,18.445898437500063],[-88.80634765624998,17.965527343749983],[-89.13354492187503,17.970800781249977],[-89.16147460937503,17.81484375],[-90.98916015624997,17.81640624999997],[-90.99296874999993,17.25244140625],[-91.19550781249998,17.254101562499983],[-91.40961914062501,17.255859375],[-90.975830078125,16.867822265624994],[-90.710693359375,16.708105468750034],[-90.65996093749996,16.630908203125045],[-90.634375,16.565136718749955],[-90.63408203125002,16.51074218749997],[-90.57578124999995,16.467822265625017],[-90.47109374999994,16.439550781250034],[-90.41699218750003,16.391015625000023],[-90.41699218750003,16.351318359375],[-90.45014648437493,16.261376953124994],[-90.45986328124997,16.16235351562497],[-90.44716796874994,16.07270507812501],[-90.52197265625,16.07119140625005],[-90.70322265624998,16.07104492187503],[-90.97958984374998,16.07080078124997],[-91.433984375,16.070458984374994],[-91.736572265625,16.070166015625006],[-91.95722656250001,15.703222656250034],[-92.08212890624998,15.495556640625011],[-92.18715820312497,15.320898437499963],[-92.07480468749998,15.074218749999972],[-92.09873046874998,15.026757812499994],[-92.14423828125001,15.001953125],[-92.158544921875,14.963574218749997],[-92.23515625,14.545410156249986],[-93.91606445312493,16.053564453125006],[-94.374169921875,16.284765625000034],[-94.426416015625,16.22626953125001],[-94.00126953124996,16.018945312499966],[-94.66152343750002,16.20190429687503],[-94.58710937499995,16.315820312499966],[-94.79082031249999,16.28715820312499],[-94.85869140624996,16.41972656249999],[-95.02084960937503,16.277636718750017],[-94.79941406249995,16.20966796875001],[-95.134375,16.17695312500001],[-96.21357421874993,15.693066406250011],[-96.80795898437495,15.726416015624977],[-97.18466796874998,15.909277343750006],[-97.75478515624994,15.966845703125017],[-98.52031249999993,16.30483398437505],[-98.76220703125,16.534765624999977],[-99.69067382812499,16.719628906249994],[-100.847802734375,17.20048828124999],[-101.91870117187494,17.959765625000045],[-102.69956054687495,18.062841796875006],[-103.44160156249995,18.32539062500001],[-103.91245117187496,18.828466796875006],[-104.9384765625,19.309375],[-105.482080078125,19.97607421875003],[-105.66943359374997,20.385595703124977],[-105.26015625,20.579052734374955],[-105.32705078124994,20.752978515625045],[-105.51083984374999,20.808740234375023],[-105.23706054687499,21.119189453125045],[-105.20869140624998,21.490820312499977],[-105.43144531249997,21.618261718750006],[-105.64912109375001,21.988085937500045],[-105.64550781249999,22.32690429687497],[-105.79179687500003,22.627490234375017],[-106.93549804687497,23.88125],[-107.76494140625002,24.47192382812497],[-107.52724609375001,24.36005859375001],[-107.51191406249998,24.489160156250023],[-107.95117187499994,24.614892578124966],[-108.28076171874994,25.08154296875],[-108.05146484374995,25.067041015624994],[-108.69638671874998,25.382910156250034],[-108.78725585937502,25.53803710937501],[-109.02880859375003,25.48046875000003],[-108.886572265625,25.733447265625045],[-109.19648437499998,25.59252929687503],[-109.38496093750001,25.727148437500006],[-109.42563476562495,26.032568359375063],[-109.19970703125003,26.30522460937499],[-109.11669921874999,26.25273437499996],[-109.27626953125,26.533886718749955],[-109.48286132812498,26.710351562500023],[-109.75478515624995,26.702929687500017],[-109.94399414062495,27.079345703125057],[-110.37729492187495,27.233300781249966],[-110.59267578124995,27.544335937500023],[-110.52988281249995,27.864208984374983],[-111.12138671875002,27.966992187499983],[-112.16176757812495,29.018896484375034],[-113.05766601562496,30.651025390625023],[-113.04672851562495,31.17924804687499],[-113.62348632812494,31.34589843750001],[-113.75942382812501,31.557763671874994],[-113.94775390625001,31.62934570312501],[-114.14931640624995,31.507373046875045],[-114.93359374999994,31.900732421874977],[-114.78989257812498,31.647119140624994],[-114.88188476562499,31.156396484375023],[-114.55048828124997,30.02226562499999],[-113.75546875,29.367480468750017],[-113.49970703124995,28.92670898437501],[-113.20556640624997,28.798779296874955],[-113.09365234375001,28.511767578125017],[-112.870849609375,28.42421875000005],[-112.73403320312501,27.825976562500017],[-112.32919921874996,27.52343750000003],[-111.86264648437495,26.678515625000017],[-111.6994140625,26.58095703125005],[-111.79526367187499,26.8796875],[-111.56967773437495,26.707617187500006],[-111.29160156249996,25.78979492187497],[-110.68676757812501,24.867675781250057],[-110.65932617187502,24.34145507812505],[-110.36743164062497,24.100488281249994],[-110.30375976562497,24.339453125],[-110.02280273437502,24.17460937499999],[-109.6765625,23.66157226562501],[-109.42084960937495,23.480126953124994],[-109.49570312500002,23.159814453125023],[-110.00625,22.894042968750057],[-110.3626953125,23.60493164062501],[-111.68291015625002,24.555810546875023],[-111.80249023437494,24.542529296875074],[-112.07255859374999,24.84003906250001],[-112.06987304687497,25.572851562500006],[-112.37724609374997,26.21391601562496],[-113.02075195312499,26.58325195312497],[-113.15581054687496,26.94624023437504],[-113.27226562499997,26.79096679687501],[-113.59853515625001,26.721289062500034],[-113.84096679687502,26.966503906249983],[-114.44526367187503,27.218164062499994],[-114.53989257812495,27.431103515624955],[-114.99350585937499,27.736035156249983],[-115.03647460937495,27.84184570312496],[-114.57001953124995,27.78393554687497],[-114.30058593749995,27.87299804687501],[-114.30224609375003,27.775732421875006],[-114.0693359375,27.67568359375005],[-114.15839843750003,27.919677734375],[-114.26586914062499,27.934472656249994],[-114.04848632812502,28.42617187499999],[-114.93730468749999,29.35161132812496],[-115.67382812500003,29.756396484375017],[-116.06215820312501,30.80415039062504],[-116.29628906250001,30.97050781249999],[-116.33344726562494,31.202783203124994],[-116.66215820312495,31.56489257812504],[-116.72207031249998,31.734570312499955],[-116.62080078124995,31.85107421874997],[-116.84799804687496,31.997363281250045],[-117.12827148437495,32.533349609374994],[-114.72475585937495,32.71533203125003],[-114.83593749999994,32.50830078125003],[-111.0419921875,31.32421875000003],[-108.21445312499993,31.329443359375034],[-108.21181640625002,31.779345703125017],[-106.44541015624996,31.768408203125006],[-106.14804687499995,31.450927734375],[-104.97880859374996,30.645947265624955],[-104.50400390624995,29.677685546874955],[-104.110595703125,29.386132812499994],[-103.16831054687498,28.998193359374994],[-102.8919921875,29.216406250000034],[-102.61494140624994,29.75234375],[-102.26894531249998,29.871191406250034],[-101.44038085937503,29.77685546875],[-100.75458984375001,29.182519531249994],[-100.29604492187495,28.32768554687499],[-99.50532226562497,27.54833984375003],[-99.45654296874999,27.05668945312496],[-99.10776367187498,26.446923828124994],[-97.37563476562497,25.871826171875],[-97.14624023437494,25.961474609375045]]]]},"properties":{"name":"Mexico","childNum":10}},{"geometry":{"type":"Polygon","coordinates":[[[22.344042968750017,42.31396484375],[22.836816406250023,41.993603515625],[23.00361328125001,41.73984375],[22.916015625,41.336279296875],[22.78388671875001,41.331982421875],[22.72480468750001,41.178515625],[22.603613281250006,41.140185546874996],[22.493554687500023,41.118505859375],[22.184472656250023,41.158642578125],[21.99335937500001,41.13095703125],[21.77949218750001,40.950439453125],[21.627539062500006,40.896337890625],[21.57578125,40.868945312499996],[20.964257812500023,40.849902343749996],[20.709277343750017,40.928369140624994],[20.48896484375001,41.272607421874994],[20.566210937500017,41.873681640624994],[20.725,41.87353515625],[20.778125,42.071044921875],[21.05976562500001,42.171289062499994],[21.28662109375,42.100390625],[21.389550781250023,42.21982421875],[21.560839843750017,42.24765625],[21.5625,42.247509765625],[21.81464843750001,42.303125],[22.344042968750017,42.31396484375]]]},"properties":{"name":"Macedonia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[4.227636718750006,19.142773437499997],[4.234667968750017,16.996386718750003],[4.121289062500011,16.357714843750003],[3.842968750000011,15.701708984375003],[3.5205078125,15.483105468749997],[3.504296875000023,15.356347656249994],[3.06015625,15.427197265624997],[3.001074218750006,15.340966796874994],[1.300195312500023,15.272265625],[0.947460937500011,14.982128906249997],[0.217480468750011,14.911474609374991],[-0.235888671874989,15.059423828124991],[-0.760449218749983,15.047753906249994],[-1.049560546875,14.81953125],[-1.97304687499999,14.45654296875],[-2.113232421874983,14.16845703125],[-2.586718749999989,14.227587890625003],[-2.873925781249994,13.950732421875003],[-2.950830078124994,13.6484375],[-3.248632812499977,13.658349609374994],[-3.3017578125,13.28076171875],[-3.527636718749989,13.182714843749991],[-3.947314453124989,13.402197265624991],[-4.151025390624994,13.306201171875003],[-4.328710937499977,13.119042968749994],[-4.227099609374989,12.793701171875],[-4.480615234374994,12.672216796874991],[-4.4287109375,12.337597656249997],[-4.699316406249977,12.076171875],[-5.288134765624989,11.827929687499989],[-5.250244140625,11.375781249999989],[-5.490478515625,11.042382812499994],[-5.523535156249977,10.426025390625],[-5.556591796874983,10.43994140625],[-5.694287109374983,10.43320312499999],[-5.843847656249977,10.389550781249994],[-5.896191406249983,10.354736328125],[-5.907568359374977,10.307226562499991],[-6.034570312499994,10.19482421875],[-6.1171875,10.201904296875],[-6.238378906249977,10.261621093749994],[-6.241308593749977,10.279199218749994],[-6.192626953125,10.369433593749989],[-6.190673828125,10.400292968749994],[-6.250244140625,10.717919921874994],[-6.482617187499983,10.561230468749997],[-6.564599609374994,10.58642578125],[-6.654150390624977,10.656445312499997],[-6.676367187499977,10.6337890625],[-6.686132812499977,10.578027343749994],[-6.691992187499977,10.512011718749989],[-6.669335937499994,10.3921875],[-6.693261718749994,10.349462890624991],[-6.950341796874994,10.342333984374989],[-7.01708984375,10.143261718749997],[-7.385058593749989,10.340136718749989],[-7.6611328125,10.427441406249997],[-7.990625,10.1625],[-8.007275390624983,10.321875],[-8.266650390624989,10.485986328124994],[-8.33740234375,10.990625],[-8.666699218749983,11.009472656249997],[-8.398535156249977,11.366552734374991],[-8.822021484375,11.673242187499994],[-8.818310546874983,11.922509765624994],[-9.043066406249977,12.40234375],[-9.395361328124977,12.464648437499989],[-9.358105468749983,12.255419921874989],[-9.754003906249977,12.029931640624994],[-10.274853515624983,12.212646484375],[-10.709228515625,11.898730468749989],[-10.933203124999977,12.205175781249991],[-11.30517578125,12.015429687499989],[-11.502197265625,12.198632812499994],[-11.389404296875,12.404394531249991],[-11.390380859375,12.941992187499991],[-11.634960937499983,13.369873046875],[-11.831689453124994,13.315820312499994],[-12.05419921875,13.633056640625],[-11.960888671874983,13.875292968750003],[-12.019189453124994,14.206494140624997],[-12.228417968749994,14.45859375],[-12.280615234374977,14.809033203124997],[-12.104687499999983,14.745361328125],[-12.08154296875,14.766357421875],[-12.021582031249977,14.804931640625],[-11.76015625,15.425537109375],[-11.675878906249977,15.512060546874991],[-11.502685546875,15.636816406249991],[-11.455224609374994,15.62539062499999],[-10.9482421875,15.151123046875],[-10.696582031249989,15.42265625],[-9.94140625,15.373779296875],[-9.446923828124994,15.458203125],[-9.447705078124983,15.574853515624994],[-9.426562499999989,15.623046875],[-9.3505859375,15.677392578124994],[-9.33544921875,15.525683593750003],[-9.293701171875,15.502832031249994],[-5.5125,15.496289062499997],[-5.359912109374989,16.282861328124994],[-5.509619140624977,16.442041015624994],[-5.628662109375,16.568652343750003],[-5.65625,16.8095703125],[-5.684765624999983,17.058251953124994],[-5.713183593749989,17.306884765625],[-5.74169921875,17.555566406249994],[-5.827099609374983,18.3015625],[-6.026416015624989,20.0421875],[-6.396582031249977,23.274804687499994],[-6.482031249999977,24.020800781250003],[-6.538964843749994,24.51816406249999],[-6.5673828125,24.766796875],[-6.594091796874977,24.99462890625],[-6.287207031249977,24.994824218749997],[-5.959814453124977,24.99497070312499],[-5.640771484374994,24.995166015625003],[-4.822607421874977,24.99560546875],[-1.947900390624994,23.124804687500003],[1.1455078125,21.102246093749997],[1.165722656250011,20.817431640625003],[1.610644531250017,20.555566406249994],[1.685449218750023,20.378369140624997],[3.130273437500023,19.85019531249999],[3.255859375,19.4109375],[3.119726562500006,19.103173828124994],[3.3564453125,18.986621093750003],[4.227636718750006,19.142773437499997]]]},"properties":{"name":"Mali","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[14.566210937499989,35.85273437499998],[14.436425781250023,35.82167968750005],[14.351269531250011,35.978417968749994],[14.566210937499989,35.85273437499998]]]},"properties":{"name":"Malta","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[98.18261718749997,9.933447265625006],[98.11806640625,9.877880859375054],[98.2916992187501,10.051318359375031],[98.18261718749997,9.933447265625006]]],[[[98.20976562500002,10.952734375],[98.27148437499997,10.73989257812498],[98.08046875000005,10.886621093750037],[98.20976562500002,10.952734375]]],[[[98.55380859375012,11.744873046875],[98.52841796875012,11.538671875],[98.43476562500004,11.567089843750026],[98.37646484374997,11.79150390625],[98.55380859375012,11.744873046875]]],[[[98.516015625,11.905029296875028],[98.46621093750005,12.08427734374996],[98.60957031250004,11.956640624999977],[98.516015625,11.905029296875028]]],[[[98.06611328125004,12.389794921875023],[98.00234375000005,12.279003906250011],[97.93867187500004,12.34609375],[98.06611328125004,12.389794921875023]]],[[[98.41396484375005,12.597949218749974],[98.45947265625003,12.473730468749991],[98.3138671875,12.335986328124989],[98.31210937500006,12.678173828124983],[98.41396484375005,12.597949218749974]]],[[[98.31542968749997,13.099072265625026],[98.30917968750012,12.934716796875023],[98.26533203125004,13.202246093749991],[98.31542968749997,13.099072265625026]]],[[[94.80488281250004,15.8193359375],[94.73349609375006,15.823046875000045],[94.82802734375005,15.933007812499966],[94.80488281250004,15.8193359375]]],[[[94.47675781250004,15.945947265625023],[94.41191406250007,15.848388671875057],[94.3878906250001,15.994140624999972],[94.60126953125004,16.205517578124983],[94.47675781250004,15.945947265625023]]],[[[97.575,16.253222656250017],[97.48037109375,16.305712890625045],[97.54199218749997,16.505078124999983],[97.575,16.253222656250017]]],[[[93.6908203125,18.68427734375004],[93.4875,18.867529296875063],[93.74472656250006,18.865527343750017],[93.6908203125,18.68427734375004]]],[[[93.71484374999997,19.558251953124994],[93.94570312500005,19.428613281249966],[93.90195312500012,19.33203125],[93.75585937500003,19.325683593750057],[93.64404296874997,19.49506835937501],[93.71484374999997,19.558251953124994]]],[[[93.49179687500012,19.892578125],[93.51328125000006,19.754785156249994],[93.41289062500002,19.950341796875023],[93.49179687500012,19.892578125]]],[[[93.01015625000005,19.923925781249977],[93.02324218750007,19.82885742187497],[92.91464843750006,20.086474609375045],[93.01015625000005,19.923925781249977]]],[[[101.1388671875001,21.567480468749977],[101.08037109375007,21.468652343749994],[100.703125,21.251367187499966],[100.613671875,21.059326171875],[100.56660156250004,21.038183593750063],[100.53613281250003,20.992382812499955],[100.52226562500007,20.92192382812499],[100.54931640624997,20.884228515624955],[100.61767578125003,20.879248046875006],[100.62294921875005,20.859570312499983],[100.5651367187501,20.825097656249994],[100.4074218750001,20.823242187500057],[100.32607421875005,20.795703125000045],[100.24931640625002,20.730273437500045],[100.18388671875002,20.589111328125057],[100.12968750000002,20.372216796874994],[100.12246093750005,20.316650390625057],[100.0036132812501,20.37958984375001],[99.9542968750001,20.415429687500023],[99.8903320312501,20.424414062499977],[99.72011718750005,20.32543945312497],[99.45888671875005,20.363037109375],[99.48593750000006,20.14985351562501],[99.07421875000003,20.09936523437503],[98.9166992187501,19.77290039062504],[98.37128906250004,19.68916015625004],[98.01503906250005,19.74951171874997],[97.816796875,19.459960937500057],[97.74589843750002,18.58818359374999],[97.37392578125,18.51796875],[97.63222656250005,18.290332031250074],[97.7064453125,17.79711914062503],[98.4388671875,16.975683593750034],[98.66074218750006,16.330419921875006],[98.83544921875003,16.417578125],[98.88828125000006,16.351904296875034],[98.81796875000012,16.180810546874994],[98.59238281250006,16.05068359375005],[98.55693359375007,15.367675781249986],[98.19101562500012,15.204101562499972],[98.20214843749997,14.97592773437502],[98.57001953125004,14.359912109375031],[99.13681640625006,13.716699218749994],[99.12392578125,13.030761718750043],[99.40507812500002,12.547900390625003],[99.61474609374997,11.781201171875026],[99.1901367187501,11.105273437499989],[98.7572265625,10.660937499999974],[98.70253906250005,10.19038085937504],[98.56259765625006,10.034960937499989],[98.46494140625006,10.675830078124989],[98.67558593750007,10.986914062500034],[98.74140625000004,11.591699218749966],[98.87597656250003,11.719726562500028],[98.63632812500006,11.738378906250006],[98.69628906250003,12.225244140624994],[98.6002929687501,12.2453125],[98.67871093749997,12.348486328124963],[98.57597656250002,13.161914062500031],[98.20039062500004,13.980175781250026],[98.14951171875012,13.647607421875037],[98.11064453125007,13.712890625000014],[98.10019531250006,14.161523437500023],[97.90976562500012,14.652685546874991],[98.01875,14.652587890625057],[97.81230468750007,14.858935546874989],[97.7103515625,15.875537109375074],[97.58427734375007,16.019580078125017],[97.72597656250005,16.56855468750004],[97.37587890625005,16.52294921874997],[97.20019531249997,17.095410156249983],[96.85146484375005,17.401025390624994],[96.90859375000005,17.03095703125001],[96.76542968750002,16.710351562499966],[96.43115234374997,16.504931640625045],[96.18906250000012,16.768310546875057],[96.32431640625006,16.444433593750063],[95.76328125000006,16.169042968750006],[95.38955078125005,15.722753906250034],[95.30146484375004,15.756152343749989],[95.34677734375012,16.09760742187501],[95.17695312500004,15.825683593750028],[94.9425781250001,15.818261718750023],[94.89316406250006,16.182812499999955],[94.66152343750005,15.904394531250006],[94.70332031250004,16.511914062499955],[94.4416015625001,16.094384765624966],[94.22382812500004,16.016455078125006],[94.58896484375006,17.5693359375],[94.17070312500007,18.73242187499997],[94.24570312500006,18.741162109374983],[94.07001953125004,18.893408203125006],[94.04492187500003,19.287402343750074],[93.92919921874997,18.89965820312503],[93.70546875000005,19.026904296875017],[93.49306640625005,19.369482421875006],[93.82490234375004,19.238476562499955],[93.99814453125006,19.440869140624983],[93.61171875000005,19.776074218749983],[93.70703125000003,19.912158203125074],[93.25,20.070117187500017],[93.12949218750012,19.858007812500063],[93.00195312499997,20.074853515624994],[93.06679687500005,20.377636718749955],[92.82832031250004,20.177587890625063],[92.89111328124997,20.34033203125],[92.73564453125007,20.56269531250001],[92.72285156250004,20.29560546875004],[92.32412109375,20.791845703125063],[92.17958984375005,21.293115234375023],[92.33056640624997,21.439794921874977],[92.63164062500002,21.306201171875045],[92.5934570312501,21.46733398437499],[92.58281250000002,21.940332031249994],[92.57490234375004,21.978076171875045],[92.68896484374997,22.130957031250006],[92.72099609375002,22.132421875000063],[92.77138671875,22.104785156250017],[92.9645507812501,22.003759765625034],[93.07060546875002,22.20942382812501],[93.16201171875,22.360205078125006],[93.07871093750006,22.71821289062501],[93.20390625000002,23.03701171875005],[93.34941406250007,23.08496093750003],[93.36601562500007,23.132519531249955],[93.32626953125006,24.064208984375057],[93.45214843750003,23.987402343750034],[93.68339843750007,24.00654296875004],[94.07480468750006,23.8720703125],[94.29306640625012,24.321875],[94.37724609375002,24.473730468750006],[94.49316406250003,24.637646484374983],[94.70371093750012,25.097851562499955],[94.55302734375007,25.215722656249994],[94.66777343750007,25.458886718749966],[94.99199218750002,25.77045898437504],[95.01523437500006,25.912939453125006],[95.0929687500001,25.98730468749997],[95.13242187500006,26.041259765625057],[95.12929687500005,26.070410156250034],[95.10839843749997,26.091406250000034],[95.06894531250006,26.19111328125001],[95.0597656250001,26.473974609375006],[95.20146484375007,26.641406250000017],[96.19082031250005,27.26127929687499],[96.79785156249997,27.29619140624999],[96.95341796875002,27.13330078125003],[97.10205078125003,27.11542968750004],[97.10371093750004,27.16333007812503],[96.90195312500012,27.439599609374994],[96.88359375000002,27.514843749999955],[96.96279296875,27.698291015625017],[97.04970703125005,27.760009765625],[97.34355468750002,27.982324218749994],[97.30273437499997,28.08598632812496],[97.3224609375001,28.21796875000004],[97.35644531249997,28.254492187500006],[97.43144531250002,28.353906250000023],[97.53789062500002,28.510205078124983],[97.59921875000006,28.51704101562504],[98.06162109375012,28.185888671874977],[98.29882812499997,27.550097656250045],[98.4525390625,27.6572265625],[98.65117187500007,27.572460937499983],[98.7384765625001,26.785742187500006],[98.68554687499997,26.189355468750023],[98.56406250000006,26.072412109374994],[98.65625,25.86357421874999],[98.33378906250007,25.586767578125006],[98.14287109375007,25.571093750000017],[98.01074218749997,25.292529296875017],[97.8195312500001,25.251855468749994],[97.73789062500006,24.869873046875057],[97.58330078125002,24.77480468750005],[97.53144531250004,24.49169921875003],[97.7082031250001,24.228759765625],[97.56455078125012,23.911035156250023],[98.2125,24.110644531250017],[98.83505859375006,24.121191406250034],[98.67675781250003,23.905078125000045],[98.8322265625001,23.624365234374977],[98.86376953125003,23.191259765625034],[99.41806640625006,23.069238281250023],[99.50712890625002,22.959130859374994],[99.19296875000006,22.12597656249997],[99.9176757812501,22.02802734375001],[99.94072265625007,21.75874023437504],[100.14765625000004,21.480517578125017],[100.60458984375012,21.471777343750006],[101.07978515625004,21.75585937499997],[101.1388671875001,21.567480468749977]]]]},"properties":{"name":"Myanmar","childNum":15}},{"geometry":{"type":"Polygon","coordinates":[[[19.21875,43.449951171875],[19.670996093750006,43.163964843749994],[20.344335937500006,42.827929687499996],[20.054296875,42.760058593749996],[20.06396484375,42.54726562499999],[19.78828125000001,42.476171875],[19.65449218750001,42.628564453124994],[19.280664062500023,42.17255859375],[19.342382812500006,41.869091796875],[18.436328125000017,42.559716796874994],[18.5458984375,42.6416015625],[18.46601562500001,42.777246093749994],[18.44384765625,42.96845703125],[18.46015625000001,42.997900390625],[18.48847656250001,43.012158203125],[18.623632812500006,43.027685546875],[18.621875,43.124609375],[18.674218750000023,43.230810546875],[18.74921875000001,43.283544921875],[18.85107421875,43.346337890624994],[18.934667968750006,43.339453125],[18.97871093750001,43.285400390625],[19.026660156250017,43.292431640625],[19.03671875,43.357324218749994],[18.940234375000017,43.496728515624994],[18.95068359375,43.526660156249996],[18.97421875,43.542333984375],[19.0283203125,43.532519531249996],[19.080078125,43.517724609374994],[19.11279296875,43.52773437499999],[19.164355468750017,43.535449218749996],[19.1943359375,43.53330078125],[19.21875,43.449951171875]]]},"properties":{"name":"Montenegro","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[111.878125,43.68017578125],[111.00722656250002,43.34140625],[110.400390625,42.773681640625],[109.44316406249999,42.455957031249994],[109.33984375,42.438378906249994],[108.68730468749999,42.41611328125],[108.17119140624999,42.447314453124996],[106.77001953125,42.288720703124994],[105.86757812500002,41.993994140625],[105.31435546875002,41.770898437499994],[105.19707031249999,41.738037109375],[105.11542968750001,41.66328125],[105.05058593749999,41.61591796875],[104.98203125000003,41.595507812499996],[104.49824218750001,41.65869140625],[104.49824218750001,41.877001953124996],[104.30517578125,41.846142578125],[103.99726562500001,41.79697265625],[103.71113281250001,41.751318359375],[103.07285156250003,42.00595703125],[102.5751953125,42.092089843749996],[102.15664062500002,42.158105468749994],[101.97294921874999,42.215869140624996],[101.65996093749999,42.500048828124996],[101.5791015625,42.52353515625],[101.49531250000001,42.53876953125],[101.09199218750001,42.551318359374996],[100.51904296875,42.616796875],[100.08632812500002,42.670751953125],[99.98378906250002,42.67734375],[99.46787109375003,42.568212890625],[97.20566406250003,42.789794921875],[96.38544921875001,42.720361328124994],[95.85957031250001,43.2759765625],[95.52558593750001,43.953955078125],[95.32558593750002,44.039355468749996],[95.35029296875001,44.278076171875],[94.71201171875003,44.350830078125],[93.51621093750003,44.944482421874994],[92.78789062499999,45.0357421875],[92.57890624999999,45.010986328125],[92.423828125,45.008935546874994],[92.17265624999999,45.03525390625],[92.02978515625,45.068505859374994],[91.584375,45.076513671875],[91.05,45.217431640624994],[90.87724609374999,45.19609375],[90.66181640625001,45.525244140625],[91.00175781249999,46.035791015624994],[90.99677734375001,46.10498046875],[90.94755859374999,46.177294921874996],[90.91152343750002,46.270654296874994],[90.98574218750002,46.7490234375],[90.91054687500002,46.883251953125],[90.86992187499999,46.954492187499994],[90.79902343750001,46.98515625],[90.71552734375001,47.003857421875],[90.49619140625003,47.28515625],[90.42519531250002,47.5041015625],[90.34746093749999,47.596972656249996],[90.33066406250003,47.655175781249994],[90.31328124999999,47.67617187499999],[90.19101562500003,47.702099609375],[90.10322265625001,47.745410156249996],[90.02792968750003,47.877685546875],[89.95869140625001,47.886328125],[89.91044921874999,47.8443359375],[89.83134765624999,47.823291015624996],[89.778125,47.827001953125],[89.56093750000002,48.003955078124996],[89.47919921875001,48.029052734375],[89.04765624999999,48.0025390625],[88.97109375000002,48.049951171874994],[88.91777343749999,48.089013671874994],[88.83828125000002,48.101708984374994],[88.68183593750001,48.170556640624994],[88.57597656249999,48.220166015625],[88.56679687500002,48.317431640624996],[88.51708984375,48.38447265625],[88.41396484375002,48.40341796875],[88.30996093750002,48.472070312499994],[87.97968750000001,48.555126953125],[88.06005859375,48.707177734374994],[87.83183593749999,48.791650390624994],[87.7431640625,48.881640625],[87.87216796875003,49.000146484374994],[87.81630859375002,49.0802734375],[87.8251953125,49.11630859375],[87.81425781249999,49.1623046875],[87.93476562500001,49.16455078125],[87.98808593749999,49.186914062499994],[88.02851562500001,49.219775390624996],[88.11572265625,49.256298828125],[88.19257812500001,49.451708984374996],[88.63320312500002,49.486132812499996],[88.83164062500003,49.4484375],[88.86386718750003,49.527636718749996],[88.90019531249999,49.539697265624994],[88.94541015625003,49.507666015625],[88.97060546875002,49.483740234375],[89.00839843750003,49.472802734374994],[89.10947265625003,49.501367187499994],[89.17998046874999,49.5322265625],[89.20292968749999,49.595703125],[89.24394531249999,49.62705078125],[89.39560546875003,49.6115234375],[89.475,49.66054687499999],[89.57919921875003,49.69970703125],[89.65410156249999,49.71748046875],[89.64384765624999,49.90302734375],[90.0537109375,50.09375],[90.65507812499999,50.22236328125],[90.71435546875,50.259423828124994],[90.7607421875,50.305957031249996],[91.02158203125003,50.415478515625],[91.23378906250002,50.452392578125],[91.30058593749999,50.46337890625],[91.3408203125,50.470068359375],[91.4150390625,50.468017578125],[91.44648437500001,50.52216796875],[91.80429687500003,50.693603515625],[92.10400390625,50.6919921875],[92.1923828125,50.700585937499994],[92.35478515624999,50.864160156249994],[92.42636718750003,50.803076171875],[92.62666015625001,50.68828125],[92.68134765625001,50.683203125],[92.73867187500002,50.7109375],[92.779296875,50.778662109375],[92.8564453125,50.789111328124996],[92.94130859375002,50.778222656249994],[93.103125,50.60390625],[94.25107421875003,50.556396484375],[94.35468750000001,50.221826171874994],[94.61474609375,50.023730468749996],[94.67548828125001,50.028076171875],[94.71806640624999,50.043261718749996],[94.93027343750003,50.04375],[95.11142578125003,49.935449218749994],[95.52265625000001,49.91123046875],[96.06552734375003,49.99873046875],[96.31503906250003,49.901123046875],[96.98574218750002,49.8828125],[97.20859375000003,49.730810546875],[97.35976562500002,49.741455078125],[97.58935546875,49.911474609375],[98.00390625,50.0142578125],[98.25029296874999,50.30244140625],[98.27949218750001,50.533251953124996],[98.14501953125,50.5685546875],[98.07890624999999,50.603808593749996],[98.02978515625,50.64462890625],[97.82529296875003,50.985253906249994],[98.103125,51.483544921874994],[98.64052734375002,51.801171875],[98.89316406250003,52.11728515625],[99.92167968749999,51.755517578125],[100.03457031250002,51.737109375],[100.23037109375002,51.729833984375],[100.46894531250001,51.72607421875],[100.53623046875003,51.7134765625],[101.38125,51.45263671875],[101.57089843750003,51.4671875],[101.82119140625002,51.421044921874994],[102.11152343750001,51.353466796875],[102.15566406250002,51.313769531249996],[102.16005859375002,51.26083984375],[102.14238281249999,51.216064453125],[102.15195312500003,51.10751953125],[102.19453125000001,51.050683593749994],[102.21503906250001,50.829443359375],[102.31660156250001,50.71845703125],[102.28837890624999,50.585107421874994],[103.30439453125001,50.20029296875],[103.63291015625003,50.138574218749994],[103.72324218750003,50.153857421874996],[103.80263671875002,50.176074218749996],[104.07871093750003,50.154248046875],[105.38359374999999,50.47373046875],[106.21787109375003,50.304589843749994],[106.36845703124999,50.317578125],[106.57441406250001,50.32880859375],[106.71113281250001,50.31259765625],[106.94130859375002,50.196679687499994],[107.04023437500001,50.086474609374996],[107.14306640625,50.033007812499996],[107.23330078125002,49.989404296874994],[107.34707031250002,49.986669921875],[107.63095703125003,49.98310546875],[107.91660156250003,49.947802734374996],[107.96542968750003,49.653515625],[108.40693359375001,49.396386718749994],[108.5224609375,49.34150390625],[108.61367187500002,49.322802734374996],[109.23671875000002,49.334912109375],[109.45371093750003,49.296337890625],[109.52871093750002,49.269873046875],[110.19990234375001,49.17041015625],[110.42783203125003,49.219970703125],[110.70976562499999,49.14296875],[110.82792968749999,49.166162109374994],[111.20419921875003,49.304296875],[111.33662109375001,49.35585937499999],[111.42929687500003,49.342626953125],[112.07968750000003,49.42421875],[112.49492187499999,49.53232421875],[112.69736328125003,49.507275390625],[112.80644531249999,49.523583984374994],[112.91484374999999,49.569238281249994],[113.05556640625002,49.616259765624996],[113.09208984374999,49.692529296874994],[113.16416015625003,49.797167968749996],[113.31904296875001,49.874316406249996],[113.44550781250001,49.9416015625],[113.57421875,50.00703125],[114.29707031250001,50.2744140625],[114.7431640625,50.233691406249996],[115.00332031250002,50.138574218749994],[115.27451171875003,49.948876953124994],[115.36503906249999,49.911767578124994],[115.42919921875,49.896484375],[115.58798828125003,49.886035156249996],[115.7177734375,49.880615234375],[115.79521484374999,49.905908203124994],[115.92597656250001,49.9521484375],[116.13457031249999,50.010791015624996],[116.216796875,50.00927734375],[116.35117187500003,49.978076171874996],[116.55117187500002,49.9203125],[116.68330078125001,49.823779296874996],[115.82050781250001,48.57724609375],[115.79169921875001,48.455712890624994],[115.79658203125001,48.346337890624994],[115.78554687500002,48.2482421875],[115.63945312499999,48.18623046875],[115.52509765625001,48.130859375],[115.61640625000001,47.874804687499996],[115.89824218749999,47.686914062499994],[115.99384765625001,47.71132812499999],[116.07480468750003,47.78955078125],[116.23115234375001,47.858203125],[116.31718749999999,47.85986328125],[116.37822265624999,47.844042968749996],[116.51347656249999,47.83955078125],[116.65195312500003,47.864501953125],[116.76054687499999,47.869775390624994],[116.90117187499999,47.853076171874996],[116.95166015625,47.836572265624994],[117.06972656250002,47.806396484375],[117.28593749999999,47.666357421875],[117.35078125000001,47.652197265625],[117.76835937499999,47.987890625],[118.49843750000002,47.983984375],[118.56777343750002,47.943261718749994],[118.69052734375003,47.822265625],[118.75996093750001,47.757617187499996],[118.88027343750002,47.72509765625],[119.017578125,47.685351562499996],[119.08193359375002,47.654150390625],[119.71113281250001,47.15],[119.89785156250002,46.8578125],[119.8671875,46.672167968749996],[119.74746093750002,46.627197265625],[119.70664062500003,46.606005859374996],[119.62021484375003,46.603955078125],[119.47402343750002,46.62666015625],[119.33183593749999,46.613818359374996],[119.162109375,46.638671875],[118.95712890625003,46.73486328125],[118.84394531250001,46.760205078125],[118.79033203124999,46.7470703125],[118.72294921874999,46.69189453125],[118.64873046874999,46.70166015625],[118.58046875000002,46.69189453125],[118.40439453125003,46.703173828124996],[118.30869140625003,46.717041015625],[118.15683593750003,46.678564453125],[118.0712890625,46.6666015625],[117.7412109375,46.5181640625],[117.546875,46.58828125],[117.43808593750003,46.586230468749996],[117.40556640624999,46.5708984375],[117.39218750000003,46.53759765625],[117.35634765625002,46.436669921874994],[117.35693359375,46.39130859375],[117.33339843750002,46.36201171875],[116.85908203125001,46.387939453125],[116.56259765625003,46.289794921875],[116.21298828125003,45.8869140625],[116.22910156250003,45.845751953124996],[116.240625,45.79599609375],[116.19765625000002,45.73935546875],[115.68105468750002,45.458251953125],[115.16259765625,45.390234375],[114.91923828124999,45.378271484375],[114.73876953125,45.41962890625],[114.56015625000003,45.389990234375],[114.41914062500001,45.202587890625],[114.16738281250002,45.049853515624996],[114.08027343750001,44.971142578125],[113.87705078125003,44.89619140625],[113.65263671874999,44.763476562499996],[113.58701171875003,44.745703125],[113.04941406250003,44.810351562499996],[112.70673828125001,44.883447265624994],[112.59677734375003,44.91767578125],[112.49931640624999,45.0109375],[112.41132812500001,45.058203125],[112.11289062500003,45.062939453125],[112.03261718750002,45.081640625],[111.89804687500003,45.0640625],[111.40224609375002,44.36728515625],[111.93173828125003,43.81494140625],[111.878125,43.68017578125]]]},"properties":{"name":"Mongolia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[145.75195312499997,15.133154296874991],[145.71318359375007,15.215283203125026],[145.821875,15.265380859375014],[145.75195312499997,15.133154296874991]]]},"properties":{"name":"N. Mariana Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[32.112890625,-26.839453125],[32.10595703125,-26.52001953125],[32.04140625000002,-26.28125],[32.060546875,-26.018359375],[31.9482421875,-25.957617187500006],[31.98583984375,-24.46064453125001],[31.799609375000017,-23.8921875],[31.54560546875001,-23.48232421875001],[31.287890625000017,-22.40205078125001],[31.429492187500017,-22.298828125],[32.429785156250006,-21.29707031250001],[32.353613281250006,-21.136523437500003],[32.49238281250001,-20.659765625],[32.992773437500006,-19.98486328125],[32.77763671875002,-19.388769531250006],[32.84980468750001,-19.10439453125001],[32.69970703125,-18.94091796875],[32.99306640625002,-18.35957031250001],[32.87626953125002,-16.88359375],[32.94804687500002,-16.71230468750001],[31.939843750000023,-16.428808593750006],[31.236230468750023,-16.02363281250001],[30.437792968750017,-15.995312500000011],[30.39609375,-15.64306640625],[30.231835937500023,-14.990332031250006],[33.201757812500006,-14.013378906250011],[33.63642578125001,-14.568164062500003],[34.375,-14.4248046875],[34.50527343750002,-14.59814453125],[34.54082031250002,-15.297265625],[34.24609375,-15.829394531250003],[34.528125,-16.319140625],[34.93339843750002,-16.760351562500006],[35.11210937500002,-16.898535156250006],[35.06464843750001,-17.07861328125],[35.124609375,-17.127246093750003],[35.20136718750001,-17.13105468750001],[35.272558593750006,-17.118457031250003],[35.29042968750002,-17.096972656250003],[35.28115234375002,-16.80781250000001],[35.22978515625002,-16.639257812500006],[35.178320312500006,-16.573339843750006],[35.16718750000001,-16.56025390625001],[35.242773437500006,-16.375390625],[35.358496093750006,-16.160546875],[35.59931640625001,-16.12587890625001],[35.70888671875002,-16.095800781250006],[35.75527343750002,-16.05830078125001],[35.79121093750001,-15.958691406250011],[35.89277343750001,-14.891796875000011],[35.86669921875,-14.86376953125],[35.84716796875,-14.6708984375],[35.6904296875,-14.465527343750011],[35.48847656250001,-14.201074218750009],[35.37578125000002,-14.058691406250006],[35.24746093750002,-13.896875],[35.01386718750001,-13.643457031250009],[34.61152343750001,-13.437890625],[34.54570312500002,-13.21630859375],[34.542578125,-13.108691406250003],[34.35781250000002,-12.164746093750011],[34.60625,-11.690039062500006],[34.65957031250002,-11.588671875],[34.82656250000002,-11.57568359375],[34.95947265625,-11.578125],[35.1826171875,-11.574804687500006],[35.41826171875002,-11.583203125000011],[35.50439453125,-11.604785156250003],[35.56435546875002,-11.60234375],[35.630957031250006,-11.58203125],[35.78544921875002,-11.452929687500003],[35.91132812500001,-11.4546875],[36.08222656250001,-11.537304687500011],[36.17548828125001,-11.609277343750009],[36.19130859375002,-11.670703125],[36.3056640625,-11.706347656250003],[36.97890625000002,-11.566992187500006],[37.37285156250002,-11.71044921875],[37.54169921875001,-11.675097656250003],[37.72480468750001,-11.580664062500006],[37.92021484375002,-11.294726562500003],[38.491796875,-11.413281250000011],[38.9875,-11.167285156250003],[39.81708984375001,-10.912402343750003],[39.98867187500002,-10.82080078125],[40.46357421875001,-10.46435546875],[40.61171875000002,-10.661523437500009],[40.48662109375002,-10.76513671875],[40.59716796875,-10.830664062500006],[40.40283203125,-11.33203125],[40.53154296875002,-12.004589843750011],[40.48710937500002,-12.4921875],[40.58085937500002,-12.635546875],[40.43681640625002,-12.983105468750011],[40.56875,-12.984667968750003],[40.595703125,-14.122851562500003],[40.715625,-14.214453125],[40.64609375,-14.538671875],[40.775,-14.421289062500009],[40.84453125000002,-14.718652343750009],[40.617773437500006,-15.115527343750003],[40.650976562500006,-15.260937500000011],[39.98359375000001,-16.22548828125001],[39.79091796875002,-16.29453125],[39.84462890625002,-16.435644531250006],[39.084375,-16.97285156250001],[38.14492187500002,-17.242773437500006],[37.24453125000002,-17.73994140625001],[36.93935546875002,-17.993457031250003],[36.40371093750002,-18.76972656250001],[36.26289062500001,-18.71962890625001],[36.23564453125002,-18.861328125],[35.85371093750001,-18.99335937500001],[34.947851562500006,-19.81269531250001],[34.6494140625,-19.70136718750001],[34.75576171875002,-19.82197265625001],[34.705078125,-20.473046875],[34.98232421875002,-20.80625],[35.267675781250006,-21.650976562500006],[35.31572265625002,-22.396875],[35.38300781250001,-22.45458984375],[35.45634765625002,-22.11591796875001],[35.53007812500002,-22.248144531250006],[35.57539062500001,-22.96308593750001],[35.37041015625002,-23.79824218750001],[35.5419921875,-23.82441406250001],[35.48964843750002,-24.065527343750006],[34.99208984375002,-24.65058593750001],[32.96113281250001,-25.49042968750001],[32.590429687500006,-26.00410156250001],[32.84882812500001,-26.26806640625],[32.95488281250002,-26.08359375],[32.93359375,-26.25234375],[32.88916015625,-26.83046875],[32.88613281250002,-26.84931640625001],[32.353515625,-26.861621093750003],[32.19960937500002,-26.83349609375],[32.112890625,-26.839453125]]]},"properties":{"name":"Mozambique","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-16.37333984374999,19.706445312499994],[-16.437548828124932,19.609277343749994],[-16.477001953124983,19.710351562499994],[-16.343652343749994,19.86621093750003],[-16.37333984374999,19.706445312499994]]],[[[-5.359912109374989,16.282861328124994],[-5.5125,15.496289062499983],[-9.293701171875,15.502832031249994],[-9.350585937499943,15.677392578125023],[-9.38535156249992,15.667626953124994],[-9.4265625,15.623046875000057],[-9.447705078124926,15.574853515624994],[-9.446923828124937,15.458203124999955],[-9.941406249999972,15.373779296874986],[-10.696582031249989,15.42265625],[-10.9482421875,15.151123046875014],[-11.455224609374994,15.62539062499999],[-11.760156249999937,15.425537109375057],[-11.828759765624966,15.244873046875014],[-11.872851562499989,14.995166015625031],[-12.02158203124992,14.804931640625],[-12.081542968749972,14.766357421875057],[-12.104687499999955,14.745361328125043],[-12.40869140625,14.889013671874991],[-12.735253906249994,15.13125],[-13.105273437499989,15.57177734375],[-13.40966796875,16.059179687500006],[-13.756640624999989,16.172509765624994],[-13.868457031249932,16.14814453125001],[-14.300097656249932,16.58027343750001],[-14.990625,16.676904296874994],[-15.768212890624994,16.485107421875],[-16.23901367187497,16.53129882812499],[-16.44101562499992,16.20454101562504],[-16.480078124999977,16.097216796875017],[-16.50205078124992,15.917333984375063],[-16.53525390624995,15.838378906250057],[-16.53574218749995,16.28681640625001],[-16.463623046875,16.60151367187501],[-16.030322265625017,17.88793945312497],[-16.213085937499926,19.003320312500023],[-16.51445312499996,19.361962890624994],[-16.305273437499977,19.51264648437504],[-16.44487304687499,19.47314453124997],[-16.21044921875003,20.227929687500023],[-16.42978515624995,20.652343750000057],[-16.622509765624955,20.634179687499994],[-16.87607421874992,21.086132812499955],[-16.998242187499926,21.039697265625023],[-17.048046874999955,20.80615234375003],[-17.06396484375,20.89882812499999],[-16.96455078125001,21.329248046875023],[-15.231201171875,21.331298828125],[-14.084667968749926,21.33271484375001],[-13.626025390624932,21.33325195312503],[-13.396728515624943,21.333544921875017],[-13.167431640624926,21.333789062500074],[-13.016210937499949,21.33393554687501],[-13.025097656249983,21.46679687499997],[-13.032226562500028,21.572070312500017],[-13.041748046875,21.71381835937504],[-13.051220703124983,21.854785156250074],[-13.094335937499977,22.49599609375005],[-13.153271484374983,22.820507812499983],[-13.031494140624943,23.000244140625],[-12.895996093749972,23.08955078125001],[-12.739599609375006,23.192724609375063],[-12.62041015624996,23.271337890625006],[-12.559375,23.290820312500045],[-12.372900390624977,23.318017578124994],[-12.023437499999943,23.467578125000017],[-12.016308593749983,23.97021484375],[-12.016308593749983,24.378662109375],[-12.016308593749983,24.923242187499994],[-12.016308593749983,25.059375],[-12.016308593749983,25.331689453124994],[-12.016308593749983,25.740136718749994],[-12.016308593749983,25.995410156250017],[-10.376123046874966,25.995458984375034],[-9.444531249999983,25.99550781250005],[-9.071923828124937,25.99550781250005],[-8.885644531249994,25.99550781250005],[-8.682226562499949,25.99550781250005],[-8.68212890625,26.109472656250006],[-8.68212890625,26.273193359375057],[-8.682324218749955,26.49770507812505],[-8.682617187500028,26.723144531250057],[-8.682861328124972,26.92133789062501],[-8.683349609375,27.285937500000045],[-4.822607421874949,24.99560546875],[-5.640771484374994,24.99516601562499],[-5.959814453124977,24.994970703125063],[-6.287207031249977,24.99482421875001],[-6.594091796874977,24.99462890624997],[-6.396582031249977,23.274804687499994],[-6.02641601562496,20.04218750000001],[-5.827099609374955,18.301562500000045],[-5.741699218749943,17.555566406250023],[-5.713183593750017,17.306884765625],[-5.684765624999983,17.058251953124966],[-5.628662109375028,16.568652343750045],[-5.50961914062492,16.442041015625023],[-5.359912109374989,16.282861328124994]]]]},"properties":{"name":"Mauritania","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-62.1484375,16.74033203124999],[-62.221630859375,16.699511718750003],[-62.191357421875,16.804394531249997],[-62.1484375,16.74033203124999]]]},"properties":{"name":"Montserrat","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[57.65126953125002,-20.48486328125],[57.31767578125002,-20.42763671875001],[57.416015625,-20.18378906250001],[57.65654296875002,-19.98994140625001],[57.7919921875,-20.21259765625001],[57.65126953125002,-20.48486328125]]]},"properties":{"name":"Mauritius","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[34.95947265625003,-11.578125],[34.82656250000005,-11.575683593749972],[34.65957031250005,-11.58867187499996],[34.61855468750005,-11.620214843749991],[34.60625,-11.690039062500006],[34.3578125,-12.164746093749997],[34.542578125,-13.108691406250003],[34.54570312500002,-13.21630859375],[34.6115234375001,-13.437890625000023],[35.0138671875001,-13.64345703124998],[35.247460937499994,-13.896875],[35.37578125000002,-14.05869140625002],[35.48847656250004,-14.20107421874998],[35.69042968749997,-14.465527343750026],[35.84716796875003,-14.670898437500043],[35.8927734375001,-14.891796875000011],[35.7912109375001,-15.958691406250026],[35.75527343750005,-16.058300781249983],[35.708886718749994,-16.095800781249977],[35.5993164062501,-16.12587890624998],[35.35849609375006,-16.160546875000023],[35.242773437500006,-16.375390625],[35.16718750000004,-16.56025390625001],[35.178320312500006,-16.57333984375002],[35.22978515625002,-16.639257812500034],[35.281152343749994,-16.8078125],[35.29042968750005,-17.096972656250017],[35.27255859375006,-17.11845703124996],[35.2013671875001,-17.13105468750004],[35.124609375,-17.127246093749974],[35.06464843750004,-17.078613281250014],[35.11210937500002,-16.898535156250006],[34.93339843750002,-16.760351562500006],[34.528125,-16.319140625],[34.24609374999997,-15.829394531249974],[34.54082031250002,-15.297265625],[34.50527343750005,-14.598144531249957],[34.375,-14.4248046875],[33.63642578125004,-14.568164062499974],[33.148046875,-13.94091796875],[32.98125,-14.009375],[32.797460937500006,-13.6884765625],[32.67041015624997,-13.590429687500006],[32.96757812500002,-13.225],[32.97519531250006,-12.701367187499983],[33.51230468750006,-12.347753906249977],[33.340136718750074,-12.308300781250011],[33.25234375000005,-12.112597656250031],[33.3039062500001,-11.69082031249998],[33.23271484375002,-11.417675781250026],[33.26835937500002,-11.403906249999977],[33.379785156249994,-11.15791015625004],[33.29277343750002,-10.85234375],[33.661523437499994,-10.553125],[33.55371093749997,-10.391308593750011],[33.53759765624997,-10.351562499999986],[33.52890625,-10.234667968749974],[33.31152343750003,-10.037988281249966],[33.3371093750001,-9.954003906249994],[33.350976562499994,-9.862207031250037],[33.25,-9.759570312500003],[33.148046875,-9.603515625],[32.99599609375005,-9.622851562499946],[32.91992187500003,-9.407421875000026],[33.88886718750004,-9.670117187499983],[33.99560546875003,-9.495410156250003],[34.32089843750006,-9.731542968749977],[34.56992187500006,-10.241113281249966],[34.66708984375006,-10.792480468750028],[34.60791015624997,-11.08046875],[34.77382812500005,-11.341699218750009],[34.890625,-11.3935546875],[34.93701171874997,-11.463476562500034],[34.95947265625003,-11.578125]]]},"properties":{"name":"Malawi","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[111.38925781250006,2.415332031250031],[111.31152343749997,2.437597656250034],[111.33349609374997,2.768310546875],[111.38925781250006,2.415332031250031]]],[[[104.22158203125,2.731738281250003],[104.1291015625001,2.767236328125037],[104.18476562500004,2.871728515625009],[104.22158203125,2.731738281250003]]],[[[117.88476562499997,4.186132812500006],[117.64902343750012,4.168994140624974],[117.70800781249997,4.262402343749997],[117.88476562499997,4.186132812500006]]],[[[100.28896484375005,5.294726562499989],[100.19101562500006,5.28286132812498],[100.2455078125,5.467773437499986],[100.33886718749997,5.410058593750037],[100.28896484375005,5.294726562499989]]],[[[99.848046875,6.465722656249994],[99.9186523437501,6.358593750000011],[99.74375,6.263281249999963],[99.64628906250002,6.418359375000023],[99.848046875,6.465722656249994]]],[[[102.10107421874997,6.242236328125031],[102.34013671875002,6.172021484375023],[102.534375,5.862548828125028],[103.09707031250005,5.408447265624986],[103.41582031250007,4.85029296875004],[103.43945312499997,2.93310546875],[103.8122070312501,2.58046875],[104.21855468750002,1.722851562499997],[104.25009765625012,1.388574218750009],[104.11494140625004,1.412255859375037],[103.98144531250003,1.623632812500034],[103.99150390625002,1.454785156249997],[103.6945312500001,1.449658203125026],[103.48027343750007,1.329492187499966],[103.35683593750005,1.546142578125057],[102.72714843750012,1.855566406250034],[101.29550781250012,2.885205078125011],[101.29990234375012,3.253271484375034],[100.71542968750006,3.966210937499966],[100.79550781250012,4.023388671874983],[100.61455078125002,4.3734375],[100.34326171874997,5.984179687500031],[100.11914062499997,6.441992187500048],[100.26142578125004,6.682714843749963],[100.3454101562501,6.549902343750006],[100.75449218750012,6.460058593749991],[100.87392578125,6.24541015624996],[101.05351562500002,6.242578125],[100.98164062500004,5.771044921875045],[101.1139648437501,5.636767578125045],[101.5560546875,5.907763671875003],[101.67841796875004,5.778808593750028],[101.87363281250012,5.825292968749991],[102.10107421874997,6.242236328125031]]],[[[117.5744140625001,4.17060546875004],[117.10058593750003,4.337060546875023],[116.51474609375006,4.370800781249969],[115.86074218750005,4.348046875000037],[115.67880859375006,4.193017578124994],[115.45439453125002,3.034326171875009],[115.24697265625005,3.025927734374989],[115.117578125,2.89487304687502],[115.08076171875004,2.63422851562504],[115.1791015625,2.523193359374972],[114.78642578125002,2.250488281250014],[114.83056640625003,1.980029296874989],[114.5125,1.452001953124963],[113.90234375000003,1.434277343749997],[113.6222656250001,1.2359375],[113.00654296875004,1.433886718750003],[112.94296875000006,1.566992187500034],[112.47617187500006,1.559082031250028],[112.1857421875001,1.4390625],[112.078515625,1.143359374999974],[111.80898437500005,1.011669921874969],[111.10136718750002,1.050537109374986],[110.50576171875005,0.861962890625023],[109.65400390625004,1.614892578125023],[109.53896484375,1.89619140625004],[109.62890625000003,2.027539062499983],[109.86484375000012,1.764453125000031],[110.34921875000012,1.719726562499972],[111.22324218750012,1.395849609374991],[111.0287109375,1.557812500000026],[111.26816406250012,2.13974609375002],[111.20859375000012,2.379638671875043],[111.44384765625003,2.381542968749983],[111.5125,2.743017578124991],[112.98789062500006,3.161914062499974],[113.92392578125006,4.243212890625003],[114.0638671875,4.592675781249966],[114.65410156250007,4.037646484375045],[114.84023437500005,4.393212890625009],[114.74667968750006,4.718066406250017],[115.02675781250005,4.899707031249989],[115.10703125000006,4.390429687499974],[115.290625,4.352587890624989],[115.1400390625,4.899755859374991],[115.37490234375,4.932763671874966],[115.55449218750007,5.093554687500045],[115.41904296875012,5.413183593749963],[115.60390625,5.603417968749994],[115.74082031250012,5.533007812500045],[115.8771484375001,5.613525390625014],[116.74980468750007,6.977099609374989],[116.8498046875001,6.826708984374989],[116.78808593749997,6.606103515624994],[117.12851562500012,6.968896484375009],[117.2298828125,6.939990234374974],[117.29404296875006,6.676904296875023],[117.60966796875002,6.512646484375054],[117.69375,6.35],[117.64453124999997,6.001855468749994],[117.5011718750001,5.884667968750009],[118.00380859375,6.053320312499991],[118.11582031250006,5.8625],[117.93476562500004,5.7875],[117.97363281249997,5.70625],[118.35312500000012,5.80605468749998],[118.59482421875006,5.592089843750003],[119.22343750000007,5.412646484375031],[119.2663085937501,5.308105468750057],[119.21962890625,5.159814453125037],[118.9125,5.02290039062504],[118.26054687500007,4.988867187500034],[118.18535156250002,4.828515625000051],[118.5625,4.502148437499997],[118.54833984375003,4.379248046875006],[118.008203125,4.250244140625014],[117.6964843750001,4.342822265625045],[117.5744140625001,4.17060546875004]]],[[[117.14160156250003,7.168212890625028],[117.08066406250006,7.115283203124989],[117.06425781250007,7.26069335937504],[117.2640625,7.351660156250006],[117.26679687500004,7.220800781249991],[117.14160156250003,7.168212890625028]]]]},"properties":{"name":"Malaysia","childNum":8}},{"geometry":{"type":"Polygon","coordinates":[[[23.380664062500017,-17.640625],[24.27490234375,-17.481054687500006],[24.73291015625,-17.51777343750001],[25.001757812500017,-17.56855468750001],[25.2587890625,-17.793554687500006],[24.909082031250023,-17.821386718750006],[24.530566406250017,-18.052734375],[24.243945312500017,-18.0234375],[23.599707031250006,-18.4599609375],[23.219335937500006,-17.99970703125001],[20.97412109375,-18.31884765625],[20.9794921875,-21.9619140625],[19.977343750000017,-22.00019531250001],[19.98046875,-24.77675781250001],[19.98046875,-28.310351562500003],[19.98046875,-28.451269531250006],[19.539843750000017,-28.574609375],[19.31269531250001,-28.73330078125001],[19.24580078125001,-28.901660156250003],[19.16171875,-28.938769531250003],[18.310839843750017,-28.88623046875],[17.44794921875001,-28.69814453125001],[17.34785156250001,-28.50117187500001],[17.358691406250017,-28.26943359375001],[17.1884765625,-28.13251953125001],[17.05625,-28.031054687500003],[16.93330078125001,-28.069628906250003],[16.875292968750017,-28.1279296875],[16.841210937500023,-28.21894531250001],[16.81015625,-28.26455078125001],[16.7875,-28.39472656250001],[16.755761718750023,-28.4521484375],[16.62617187500001,-28.487890625],[16.487109375000017,-28.572851562500006],[16.447558593750017,-28.617578125],[15.719042968750017,-27.9658203125],[15.341503906250011,-27.386523437500003],[15.139062500000023,-26.50800781250001],[14.9677734375,-26.31806640625001],[14.837109375000011,-25.033203125],[14.5015625,-24.201953125],[14.462792968750023,-22.44912109375001],[13.450585937500023,-20.91669921875001],[13.168359375000023,-20.184667968750006],[12.458203125000011,-18.9267578125],[11.77587890625,-18.001757812500003],[11.733496093750006,-17.7509765625],[11.743066406250023,-17.24921875000001],[11.902539062500011,-17.2265625],[12.013964843750017,-17.168554687500006],[12.21337890625,-17.2099609375],[12.318457031250006,-17.21337890625],[12.359277343750023,-17.205859375],[12.548144531250017,-17.212695312500003],[13.179492187500017,-16.9716796875],[13.475976562500023,-17.0400390625],[14.017480468750023,-17.40888671875001],[16.1484375,-17.390234375],[18.396386718750023,-17.3994140625],[18.95527343750001,-17.803515625],[20.1943359375,-17.863671875],[20.745507812500023,-18.01972656250001],[22.32421875,-17.8375],[23.380664062500017,-17.640625]]]},"properties":{"name":"Namibia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[167.54443359375003,-22.62324218750001],[167.44375,-22.63916015624997],[167.44345703125006,-22.541406250000037],[167.54443359375003,-22.62324218750001]]],[[[168.01093750000004,-21.429980468750017],[168.1390625,-21.44521484375001],[168.12070312500012,-21.615820312500034],[167.96679687500003,-21.641601562499957],[167.81542968749997,-21.392675781249963],[167.9884765625001,-21.337890624999986],[168.01093750000004,-21.429980468750017]]],[[[167.40087890625003,-21.16064453125003],[167.07265625,-20.99726562499997],[167.03271484374997,-20.922558593750026],[167.18945312500003,-20.803515625000017],[167.05576171875012,-20.720214843750014],[167.29794921875006,-20.732519531250034],[167.40087890625003,-21.16064453125003]]],[[[164.20234375000004,-20.246093749999957],[164.4359375,-20.282226562499957],[165.191796875,-20.768847656249974],[165.66279296875004,-21.267187499999977],[166.94238281250003,-22.09013671875003],[166.97031250000012,-22.32285156250002],[166.77412109375004,-22.37617187500004],[166.4679687500001,-22.256054687499997],[164.92744140625004,-21.289843749999974],[164.16972656250007,-20.48017578125004],[164.05966796875012,-20.141503906249966],[164.20234375000004,-20.246093749999957]]]]},"properties":{"name":"New Caledonia","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[14.97900390625,22.99619140624999],[15.181835937500011,21.523388671874997],[15.607324218750023,20.954394531250003],[15.587109375000011,20.733300781249994],[15.963183593750017,20.34619140625],[15.735058593750011,19.904052734375],[15.474316406250011,16.908398437499997],[14.367968750000017,15.750146484374994],[13.4482421875,14.380664062500003],[13.505761718750023,14.134423828124994],[13.606347656250023,13.70458984375],[13.426953125000011,13.701757812499991],[13.323828125,13.670849609374997],[12.871679687500006,13.449023437500003],[12.65478515625,13.3265625],[12.463183593750017,13.09375],[10.958886718750023,13.371533203124997],[10.475878906250017,13.330224609374994],[10.229589843750006,13.281005859375],[10.184667968750006,13.270117187499991],[9.615917968750011,12.810644531249991],[9.201562500000023,12.821484375],[8.750585937500006,12.908154296874997],[8.4560546875,13.059667968749991],[8.095019531250017,13.291162109374994],[7.955761718750011,13.32275390625],[7.788671875,13.337890625],[7.056738281250006,13.000195312499997],[6.804296875,13.107666015625],[6.2998046875,13.658789062499991],[6.184277343750011,13.66367187499999],[5.838183593750017,13.765380859375],[5.491992187500017,13.872851562500003],[5.415820312500017,13.859179687500003],[5.361621093750017,13.836865234374997],[5.241894531250011,13.757226562499994],[4.664843750000017,13.733203125],[4.147558593750006,13.457714843749997],[3.947851562500006,12.775048828124994],[3.646679687500011,12.529980468749997],[3.595410156250011,11.6962890625],[2.805273437500006,12.383837890624989],[2.366015625000017,12.221923828125],[2.38916015625,11.897070312499991],[2.072949218750011,12.309375],[2.226269531250011,12.466064453125],[2.104589843750006,12.701269531249991],[1.56494140625,12.635400390624994],[0.9873046875,13.041894531249994],[0.988476562500011,13.36484375],[1.201171875,13.357519531249991],[0.6181640625,13.703417968750003],[0.42919921875,13.972119140624997],[0.382519531250011,14.245800781249997],[0.163867187500017,14.497216796874994],[0.217480468750011,14.911474609374991],[0.947460937500011,14.982128906249997],[1.300195312500023,15.272265625],[3.001074218750006,15.340966796874994],[3.06015625,15.427197265624997],[3.504296875000023,15.356347656249994],[3.5205078125,15.483105468749997],[3.842968750000011,15.701708984375003],[4.121289062500011,16.357714843750003],[4.234667968750017,16.996386718750003],[4.227636718750006,19.142773437499997],[5.836621093750011,19.479150390624994],[7.481738281250017,20.873095703125003],[11.967871093750006,23.517871093750003],[13.48125,23.18017578125],[14.215527343750011,22.619677734375003],[14.97900390625,22.99619140624999]]]},"properties":{"name":"Niger","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[7.30078125,4.418164062500026],[7.140429687500017,4.395117187500034],[7.227343750000045,4.527343749999972],[7.30078125,4.418164062500026]]],[[[6.804296875,13.107666015625],[7.056738281250006,13.00019531250004],[7.788671875,13.337890625],[7.955761718750011,13.322753906250028],[8.095019531250045,13.29116210937498],[8.750585937500034,12.908154296875026],[9.20156250000008,12.82148437500004],[9.615917968750011,12.810644531249963],[10.184667968750063,13.270117187499963],[10.229589843749977,13.281005859375043],[10.475878906250074,13.330224609375037],[10.958886718750051,13.371533203125011],[12.463183593750017,13.09375],[12.654785156250057,13.3265625],[13.426953125000068,13.701757812499963],[13.606347656250023,13.704589843750014],[13.932324218750011,13.258496093749997],[14.06396484375,13.078515625],[14.160058593750023,12.612792968749986],[14.184863281250017,12.447216796874997],[14.272851562500023,12.356494140624989],[14.518945312500051,12.298242187500023],[14.619726562500063,12.150976562500048],[14.559765625000011,11.492285156249963],[14.20234375000004,11.268164062499963],[14.143261718750068,11.248535156250043],[14.056738281250034,11.245019531250037],[13.981445312500057,11.21186523437504],[13.892089843750057,11.140087890624983],[13.699902343749983,10.873144531250048],[13.53535156250004,10.605078124999963],[13.414550781250028,10.171435546874989],[13.269921875000051,10.036181640624974],[13.198730468750028,9.563769531250003],[12.929492187500074,9.426269531249972],[12.87568359375004,9.303515625000017],[12.80654296875008,8.886621093749994],[12.7822265625,8.817871093750014],[12.651562500000011,8.667773437499989],[12.40351562500004,8.59555664062502],[12.311328125000074,8.419726562499989],[12.2333984375,8.282324218749977],[12.016015625000051,7.589746093750009],[11.809179687500006,7.345068359374991],[11.767382812500017,7.272265624999989],[11.861425781249977,7.11640625000004],[11.657519531250017,6.951562500000023],[11.580078125000057,6.88886718750004],[11.551660156250023,6.697265625],[11.153320312500057,6.437939453125011],[11.1064453125,6.457714843750054],[11.032519531250045,6.697900390625037],[10.954199218750006,6.7765625],[10.60625,7.063085937500006],[10.413183593750006,6.877734375],[10.293066406250034,6.876757812499974],[10.205468750000051,6.891601562499986],[10.185546874999972,6.91279296875004],[10.167773437500017,6.959179687499983],[10.143554687500057,6.99643554687502],[10.038867187500045,6.921386718750014],[9.874218750000068,6.803271484375017],[9.82070312500008,6.783935546874986],[9.779882812500034,6.760156250000023],[9.725585937499972,6.65],[9.659960937500017,6.531982421874986],[9.490234375,6.418652343749997],[8.997167968750006,5.917724609375],[8.715625,5.046875],[8.514843750000068,4.724707031250034],[8.23378906250008,4.907470703124972],[8.293066406250006,4.557617187500014],[7.644238281250068,4.525341796875011],[7.530761718750028,4.655175781249994],[7.284375,4.547656250000031],[7.076562500000051,4.716162109374991],[7.15468750000008,4.514404296875],[6.92324218750008,4.390673828125017],[6.767675781250006,4.724707031250034],[6.860351562500057,4.373339843750045],[6.633007812500011,4.340234375000051],[6.579980468750051,4.475976562499994],[6.554589843750023,4.34140625000002],[6.263671875,4.309423828124991],[6.270996093749972,4.432128906250028],[6.173339843749972,4.277392578125031],[5.970703125,4.338574218749983],[5.587792968750051,4.647216796874972],[5.448144531250023,4.945849609374974],[5.383300781250057,5.129003906249977],[5.475976562500023,5.153857421874989],[5.370019531250023,5.195019531250026],[5.367968750000045,5.337744140624963],[5.549707031250023,5.474218749999963],[5.385839843750034,5.401757812500037],[5.199218750000028,5.533544921874977],[5.456640624999977,5.61171875],[5.327343750000011,5.707519531249986],[5.112402343750034,5.64155273437504],[4.861035156250068,6.026318359374997],[4.431347656250011,6.348583984375026],[3.450781249999977,6.427050781250017],[3.71699218750004,6.597949218750017],[3.430175781250057,6.525],[3.335546875000063,6.396923828125011],[2.706445312500051,6.369238281249963],[2.735644531250045,6.595703125],[2.753710937499989,6.661767578124966],[2.774609374999983,6.711718750000017],[2.752929687500028,6.771630859374966],[2.731738281250045,6.852832031249989],[2.721386718750068,6.980273437500017],[2.75673828125008,7.067919921875017],[2.750488281250057,7.39506835937496],[2.765820312500068,7.422509765625051],[2.783984375000045,7.443408203125045],[2.78515625,7.476855468750017],[2.703125,8.371826171875],[2.774804687500023,9.048535156250026],[3.044921875,9.08383789062502],[3.325195312499972,9.778466796875051],[3.60205078125,10.004541015625009],[3.646582031250006,10.408984374999989],[3.771777343750017,10.417626953124966],[3.83447265625,10.607421875],[3.7568359375,10.76875],[3.71640625,11.07958984375],[3.695312499999972,11.12031250000004],[3.63886718750004,11.176855468750006],[3.487792968749972,11.395410156250037],[3.490527343750017,11.499218750000054],[3.55390625000004,11.631884765624989],[3.595410156250068,11.696289062500057],[3.664746093750068,11.762451171875028],[3.646679687500011,12.529980468749983],[3.947851562500006,12.775048828124994],[4.147558593750006,13.457714843749983],[4.664843750000045,13.733203124999974],[5.241894531250011,13.757226562499994],[5.361621093750074,13.836865234375054],[5.415820312500017,13.859179687499974],[5.491992187500074,13.872851562500003],[6.2998046875,13.658789062500006],[6.804296875,13.107666015625]]]]},"properties":{"name":"Nigeria","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-83.6419921875,10.917236328125],[-83.71293945312499,10.785888671875],[-83.91928710937499,10.7353515625],[-84.6341796875,11.045605468749997],[-84.9091796875,10.9453125],[-85.5841796875,11.189453125],[-85.7443359375,11.06210937499999],[-87.670166015625,12.965673828124991],[-87.58505859374999,13.043310546874991],[-87.42436523437499,12.921142578125],[-87.33725585937499,12.979248046875],[-87.05917968749999,12.991455078125],[-87.00932617187499,13.0078125],[-86.918212890625,13.223583984374997],[-86.87353515625,13.266503906249994],[-86.792138671875,13.27978515625],[-86.72929687499999,13.284375],[-86.710693359375,13.313378906249994],[-86.76352539062499,13.63525390625],[-86.77060546874999,13.69873046875],[-86.758984375,13.746142578125003],[-86.733642578125,13.763476562500003],[-86.61025390625,13.774853515624997],[-86.376953125,13.755664062500003],[-86.33173828125,13.770068359375003],[-86.238232421875,13.899462890625003],[-86.15122070312499,13.994580078124997],[-86.0892578125,14.037207031249991],[-86.04038085937499,14.050146484374991],[-85.9837890625,13.965673828124991],[-85.78671875,13.844433593749997],[-85.75341796875,13.85205078125],[-85.73393554687499,13.858691406250003],[-85.727734375,13.876074218749991],[-85.731201171875,13.931835937499997],[-85.68193359374999,13.982568359374994],[-85.20834960937499,14.311816406250003],[-85.059375,14.582958984374997],[-84.86044921874999,14.809765625],[-84.645947265625,14.661083984374997],[-84.53764648437499,14.633398437499991],[-83.635498046875,14.876416015624997],[-83.5365234375,14.977001953124997],[-83.4150390625,15.008056640625],[-83.15751953124999,14.993066406249994],[-83.18535156249999,14.956396484374991],[-83.21591796874999,14.932373046875],[-83.27988281249999,14.812792968750003],[-83.344384765625,14.902099609375],[-83.413720703125,14.825341796874994],[-83.29921875,14.7490234375],[-83.187744140625,14.340087890625],[-83.4123046875,13.99648437499999],[-83.567333984375,13.3203125],[-83.5109375,12.411816406249997],[-83.627197265625,12.459326171874991],[-83.59335937499999,12.713085937499997],[-83.75424804687499,12.501953125],[-83.680419921875,12.024316406249994],[-83.7671875,12.059277343749997],[-83.82890624999999,11.861035156249997],[-83.70458984375,11.824560546874991],[-83.6517578125,11.642041015624997],[-83.86787109375,11.300048828125],[-83.6419921875,10.917236328125]]]},"properties":{"name":"Nicaragua","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-169.80341796875,-19.0830078125],[-169.94833984375,-19.072851562500006],[-169.834033203125,-18.96601562500001],[-169.80341796875,-19.0830078125]]]},"properties":{"name":"Niue","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-68.205810546875,12.144580078124989],[-68.25434570312495,12.032080078124977],[-68.36923828125,12.301953124999983],[-68.205810546875,12.144580078124989]]],[[[4.226171875000034,51.38647460937503],[3.902050781250011,51.20766601562502],[3.43251953125008,51.24575195312505],[3.35009765625,51.37768554687503],[4.226171875000034,51.38647460937503]]],[[[3.94912109375008,51.73945312500001],[4.07509765625008,51.648779296875006],[3.699023437500017,51.70991210937501],[3.94912109375008,51.73945312500001]]],[[[4.886132812500023,53.07070312500005],[4.70917968750004,53.036035156249994],[4.886425781249983,53.18330078124998],[4.886132812500023,53.07070312500005]]],[[[4.226171875000034,51.38647460937503],[3.448925781250068,51.54077148437503],[3.743945312500017,51.596044921875006],[4.27412109375004,51.47163085937498],[4.004785156250051,51.595849609374966],[4.182617187500057,51.61030273437498],[3.946875,51.810546875],[4.482812500000023,52.30917968749998],[4.76875,52.941308593749966],[5.061230468750068,52.96064453125001],[5.532031250000074,53.268701171874966],[6.062207031250068,53.407080078125006],[6.816210937500045,53.44116210937503],[7.197265625000028,53.28227539062499],[7.033007812500045,52.65136718749997],[6.710742187500045,52.61787109374998],[6.748828125000074,52.464013671874994],[7.035156250000057,52.38022460937498],[6.724511718749994,52.080224609374966],[6.800390625,51.96738281249998],[5.948730468750057,51.80268554687501],[6.198828125000034,51.45],[6.129980468750034,51.14741210937501],[5.857519531250034,51.030126953125006],[6.048437500000034,50.90488281250006],[5.993945312500017,50.75043945312504],[5.693554687500011,50.774755859375006],[5.796484375000034,51.153076171875],[5.214160156250045,51.278955078124966],[5.03095703125004,51.46909179687498],[4.226171875000034,51.38647460937503]]],[[[5.325781250000063,53.38574218750003],[5.190234375000074,53.39179687500001],[5.582617187500063,53.438085937500034],[5.325781250000063,53.38574218750003]]]]},"properties":{"name":"Netherlands","childNum":6,"cp":[5.0752777,52.358465]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[5.085839843750023,60.30756835937501],[5.089062500000068,60.188769531250045],[4.95722656250004,60.44726562500006],[5.085839843750023,60.30756835937501]]],[[[4.958691406250068,61.084570312500034],[4.79902343750004,61.08271484375001],[4.861621093749989,61.19384765625],[4.958691406250068,61.084570312500034]]],[[[8.10273437500004,63.33759765625004],[7.804003906250017,63.413916015625034],[8.073535156250045,63.47080078124998],[8.10273437500004,63.33759765625004]]],[[[8.470800781250063,63.66713867187502],[8.287109375000028,63.68715820312502],[8.764648437500057,63.804638671874955],[8.78652343750008,63.703466796875034],[8.470800781250063,63.66713867187502]]],[[[11.2314453125,64.865869140625],[10.739843750000034,64.87031250000001],[11.02099609375,64.97871093749995],[11.2314453125,64.865869140625]]],[[[12.971777343750063,67.87412109375],[12.824023437500074,67.82124023437498],[13.068066406250068,68.07133789062505],[12.971777343750063,67.87412109375]]],[[[13.872851562500045,68.26533203125004],[14.096777343750034,68.218603515625],[13.229394531250051,67.995361328125],[13.300195312499994,68.16044921875007],[13.872851562500045,68.26533203125004]]],[[[15.207128906250006,68.943115234375],[15.222070312500023,68.61630859375003],[14.404687500000051,68.663232421875],[15.037792968750068,69.00053710937507],[15.207128906250006,68.943115234375]]],[[[15.760351562500006,68.56123046875001],[16.328906250000017,68.87631835937498],[16.519238281250068,68.63300781249998],[15.975292968750011,68.402490234375],[14.257519531249983,68.19077148437503],[15.412597656250028,68.61582031250003],[15.483007812500006,69.04345703125003],[16.04804687500001,69.30205078125002],[15.760351562500006,68.56123046875001]]],[[[17.503027343750034,69.59624023437502],[18.004101562500068,69.50498046874998],[17.95068359375003,69.19814453125],[17.487890625000063,69.19682617187499],[17.08251953124997,69.013671875],[16.81044921875008,69.07070312499997],[17.001757812500045,69.36191406250006],[17.36083984375003,69.38149414062497],[17.503027343750034,69.59624023437502]]],[[[29.956152343750006,69.79677734375002],[29.766210937500006,69.76752929687501],[29.835839843749994,69.90556640625005],[29.956152343750006,69.79677734375002]]],[[[20.779199218750023,70.08974609375002],[20.46425781250005,70.0765625],[20.492773437500006,70.20332031249995],[20.78603515625008,70.21953124999999],[20.779199218750023,70.08974609375002]]],[[[19.25507812500001,70.06640625000006],[19.607812500000023,70.019140625],[19.334765625000074,69.82026367187501],[18.784765625000034,69.57900390624997],[18.12988281250003,69.557861328125],[18.34931640625004,69.76787109374999],[18.67402343750004,69.78164062500002],[19.13271484375005,70.24414062500003],[19.25507812500001,70.06640625000006]]],[[[19.76748046875005,70.21669921875002],[20.005957031250034,70.07622070312502],[19.599023437499994,70.26616210937507],[19.76748046875005,70.21669921875002]]],[[[23.615332031250034,70.54931640625003],[23.15917968750003,70.28261718750005],[22.941015625000063,70.444580078125],[23.546679687500017,70.61708984374997],[23.615332031250034,70.54931640625003]]],[[[24.01757812500003,70.56738281249997],[23.716601562500074,70.561865234375],[23.778417968750063,70.74736328125005],[24.01757812500003,70.56738281249997]]],[[[23.440527343750063,70.81577148437503],[22.8291015625,70.54155273437505],[22.358691406250017,70.514794921875],[21.99453125000008,70.65712890624997],[23.440527343750063,70.81577148437503]]],[[[30.869726562500006,69.78344726562506],[30.860742187499994,69.53842773437503],[30.18017578124997,69.63583984375],[30.08730468750005,69.43286132812503],[29.38828125,69.29814453125005],[28.96582031250003,69.02197265625],[28.846289062500006,69.17690429687502],[29.33339843750005,69.47299804687503],[29.14160156250003,69.67143554687505],[27.747851562500045,70.06484375],[27.127539062500063,69.90649414062497],[26.525390625000057,69.91503906250003],[26.07246093750004,69.69155273437497],[25.748339843750017,68.99013671875],[24.94140625000003,68.59326171875006],[23.85400390625,68.80590820312503],[23.324023437500017,68.64897460937502],[22.410937500000074,68.719873046875],[21.59375,69.273583984375],[21.06611328125001,69.21411132812497],[21.065722656250017,69.04174804687503],[20.622167968750006,69.036865234375],[20.116699218750057,69.02089843750005],[20.348046875000023,68.84873046875003],[19.969824218750063,68.35639648437501],[18.303027343750045,68.55541992187497],[17.91669921875001,67.96489257812502],[17.324609375000023,68.10380859374999],[16.783593750000023,67.89501953125],[16.12744140625,67.42583007812507],[16.40351562500004,67.05498046875002],[15.422949218750006,66.48984374999998],[15.483789062500051,66.30595703124999],[14.543261718750045,66.12934570312498],[14.47968750000004,65.30146484374998],[13.650292968750023,64.58154296874997],[14.077636718750028,64.464013671875],[14.141210937500006,64.17353515624998],[13.960546875000063,64.01401367187498],[13.203515625000023,64.07509765625],[12.792773437500017,64],[12.175195312500051,63.595947265625],[11.999902343750051,63.29169921875001],[12.303515625000074,62.28559570312501],[12.155371093750006,61.720751953125045],[12.88076171875008,61.35229492187506],[12.706054687500028,61.059863281250074],[12.29414062500004,61.00268554687506],[12.588671874999989,60.450732421875045],[12.486132812500074,60.10678710937506],[11.680761718750034,59.59228515625003],[11.798144531250074,59.28989257812498],[11.64277343750004,58.92607421875002],[11.470703125000057,58.909521484375034],[11.388281250000063,59.036523437499966],[10.834472656250028,59.18393554687498],[10.595312500000063,59.764550781249966],[10.179394531250068,59.00927734375003],[9.842578125000017,58.95849609374997],[9.557226562500063,59.11269531250002],[9.65693359375004,58.97119140624997],[8.166113281250063,58.145312500000045],[7.0048828125,58.024218750000074],[6.877050781250006,58.15073242187498],[6.590527343750068,58.09731445312502],[6.659863281250068,58.26274414062499],[5.706835937500074,58.52363281250001],[5.55556640625008,58.975195312500006],[6.099023437500023,58.87026367187502],[6.363281250000028,59.00092773437501],[6.099414062500017,58.951953125000074],[5.88916015625,59.097949218750045],[5.951855468750068,59.299072265625],[6.415332031250074,59.547119140625],[5.17324218750008,59.16254882812498],[5.2421875,59.564306640625034],[5.472460937500017,59.713085937499955],[5.77216796875004,59.66093749999999],[6.216601562499989,59.818359375],[5.73046875,59.863085937500045],[6.348730468750006,60.35297851562504],[6.57363281250008,60.36059570312497],[6.526855468750057,60.152929687500034],[6.995703125,60.511962890625],[6.1533203125,60.34624023437499],[5.145800781250074,59.63881835937502],[5.205664062500006,60.087939453125045],[5.688574218749977,60.12319335937502],[5.285839843750011,60.20571289062505],[5.13710937500008,60.445605468750074],[5.648339843750051,60.68798828124997],[5.244042968750023,60.569580078125],[5.115820312500006,60.63598632812503],[5.008593750000017,61.038183593750006],[6.777832031250028,61.142431640625006],[7.038671875000063,60.952929687500045],[7.040136718750006,61.091162109375034],[7.604492187500057,61.210546875000034],[7.34658203125008,61.30058593749999],[7.442578125000011,61.43461914062502],[7.173535156250011,61.16596679687501],[6.599902343750017,61.28964843749998],[6.383496093750068,61.133886718750034],[5.451269531250034,61.10234375000002],[5.106738281250017,61.187548828125045],[5.002734375000074,61.43359375],[5.338671875000017,61.485498046874994],[4.927832031249977,61.71069335937506],[4.93007812499999,61.878320312499994],[6.01582031250004,61.7875],[6.730761718750045,61.86977539062505],[5.266894531250045,61.935595703125045],[5.143164062500063,62.159912109375],[5.908300781249977,62.41601562500003],[6.083496093750057,62.349609375],[6.580078125000057,62.407275390625045],[6.692382812500028,62.46806640624999],[6.136132812500051,62.40747070312497],[6.352929687500051,62.61113281249999],[7.653125,62.56401367187499],[7.538378906250074,62.67207031249998],[8.045507812500006,62.77124023437503],[6.734960937500006,62.72070312500003],[6.940429687500028,62.930468750000045],[7.571875,63.09951171875002],[8.100585937500028,63.090966796874966],[8.623144531250006,62.84624023437502],[8.158007812500017,63.16152343750005],[8.635546875000045,63.34233398437502],[8.360742187500023,63.498876953125034],[8.576171875000028,63.60117187499998],[9.135839843750006,63.593652343749966],[9.156054687500045,63.459326171875034],[9.696875,63.624560546875045],[10.020996093750028,63.39082031250004],[10.76015625000008,63.461279296875006],[10.725292968750068,63.625],[11.370703125000034,63.804833984374994],[11.175585937500074,63.89887695312498],[11.457617187500063,64.00297851562505],[11.306640625000028,64.04887695312499],[10.91425781250004,63.92109374999998],[10.934863281250045,63.770214843749955],[10.055078125000051,63.5126953125],[9.567285156250051,63.70615234374998],[10.565625,64.418310546875],[11.523828125000051,64.744384765625],[11.632910156250063,64.81391601562495],[11.296777343750051,64.75478515625],[11.489355468750034,64.975830078125],[12.15966796875,65.178955078125],[12.508398437499977,65.09941406250005],[12.915527343750057,65.33925781249997],[12.417578125000063,65.18408203124997],[12.133886718749977,65.27915039062498],[12.68886718750008,65.90219726562498],[13.033105468750051,65.95625],[12.783789062500063,66.10043945312506],[14.034179687500057,66.29755859374998],[13.118847656250011,66.23066406250004],[13.211425781250028,66.64082031250001],[13.959472656250028,66.79433593750002],[13.651562500000011,66.90708007812498],[14.10878906250008,67.11923828125003],[15.41572265625004,67.20244140625002],[14.441699218750045,67.27138671875005],[14.961914062500057,67.57426757812502],[15.59443359375004,67.34853515625005],[15.691503906250006,67.52138671875],[15.24873046875004,67.6021484375],[15.303906250000011,67.76528320312502],[14.854687500000068,67.66333007812506],[14.798925781250063,67.80932617187503],[15.13427734375,67.97270507812502],[15.621386718750017,67.94829101562502],[15.316015624999977,68.06875],[16.007910156250006,68.22871093750004],[16.312304687500017,67.88144531249998],[16.20380859375001,68.31674804687503],[17.552832031250063,68.42626953125006],[16.51435546875004,68.53256835937503],[18.101464843749994,69.15629882812499],[18.259765625,69.47060546875],[18.915917968750023,69.33559570312502],[18.614453125000068,69.49057617187498],[19.197265625000057,69.74785156249999],[19.722460937500017,69.78164062500002],[19.64150390625005,69.42402343750001],[20.324218750000057,69.94531249999997],[20.054492187500074,69.33266601562497],[20.486718750000023,69.54208984375],[20.739453124999983,69.52050781250003],[20.622070312500057,69.91391601562498],[21.163085937500057,69.88950195312498],[21.432910156250045,70.01318359375006],[21.974707031250034,69.83457031249998],[21.355761718750045,70.23339843749997],[22.321972656250068,70.264501953125],[22.684570312500057,70.374755859375],[23.35390625000008,69.98339843750003],[23.3291015625,70.20722656249995],[24.420019531250034,70.70200195312503],[24.263476562500017,70.82631835937497],[24.658007812500017,71.00102539062505],[25.264648437500057,70.843505859375],[25.768164062500063,70.85317382812502],[25.043847656250023,70.10903320312502],[26.66132812500004,70.93974609374999],[26.585058593750034,70.41000976562498],[26.989355468750063,70.51137695312502],[27.183691406250034,70.74404296875],[27.546484375000063,70.80400390625005],[27.23525390625008,70.94721679687498],[27.59707031250005,71.09130859375003],[28.392285156250068,70.97529296875004],[27.898046875,70.67792968750001],[28.271777343750017,70.66796875000003],[28.192968750000034,70.24858398437505],[28.83154296875003,70.86396484375001],[29.7375,70.646826171875],[30.065136718750097,70.70297851562498],[30.944140625000017,70.27441406249997],[30.262988281250074,70.12470703125004],[28.804296875000063,70.09252929687506],[29.601367187500017,69.97675781249998],[29.792089843750063,69.727880859375],[30.08828125,69.71757812500005],[30.237597656250017,69.86220703125002],[30.428320312500006,69.722265625],[30.869726562500006,69.78344726562506]]],[[[25.58632812500005,71.14208984375],[26.13378906250003,70.99580078125004],[25.582031250000057,70.960791015625],[25.31494140625,71.03413085937504],[25.58632812500005,71.14208984375]]],[[[-8.953564453124983,70.83916015625002],[-8.001367187499966,71.17768554687495],[-8.002099609374937,71.04125976562497],[-8.953564453124983,70.83916015625002]]],[[[19.219335937500006,74.39101562500002],[18.86123046875008,74.51416015624997],[19.182910156250045,74.51791992187503],[19.219335937500006,74.39101562500002]]],[[[21.60810546875004,78.59570312499997],[22.04316406250004,78.57695312500007],[22.29951171875004,78.22817382812497],[23.451953125000074,78.14946289062502],[23.11669921874997,77.99150390624999],[24.901855468750057,77.756591796875],[22.55371093750003,77.26665039062502],[22.685351562500045,77.55351562500002],[20.928125,77.45966796874998],[21.653125,77.92353515624998],[20.22792968750005,78.47783203125005],[21.60810546875004,78.59570312499997]]],[[[11.250292968750017,78.610693359375],[12.116406250000068,78.232568359375],[11.121289062500011,78.46328125],[10.558203125000063,78.90292968750003],[11.250292968750017,78.610693359375]]],[[[29.047070312500068,78.91206054687504],[29.69667968750005,78.90473632812495],[27.88906250000005,78.8521484375],[28.511132812500023,78.96733398437502],[29.047070312500068,78.91206054687504]]],[[[16.786718750000034,79.90673828125],[17.834570312499977,79.80004882812503],[17.66875,79.38593750000004],[18.39736328125008,79.60517578125001],[18.677832031250006,79.26171875000003],[19.893554687500057,79.05620117187499],[20.61103515625004,79.10664062499998],[21.388769531250034,78.74042968749998],[19.67675781250003,78.60957031249995],[16.700488281250045,76.57929687499995],[14.365820312500034,77.23447265625003],[13.995703125000034,77.50820312500002],[14.69501953125004,77.525048828125],[14.920800781250023,77.68881835937506],[17.033300781250006,77.79770507812503],[16.91406250000003,77.89799804687505],[14.089941406250063,77.77138671875],[13.680566406250051,78.028125],[14.307226562500006,78.00507812500001],[15.783886718750011,78.32705078125005],[17.00292968750003,78.36938476562497],[16.44863281250008,78.50356445312502],[16.78261718750008,78.66362304687505],[15.417382812500023,78.47324218749998],[15.384179687500023,78.77119140625001],[15.01630859375004,78.63012695312497],[14.689257812500017,78.720947265625],[14.638281250000034,78.41459960937502],[14.110449218750063,78.27089843749997],[13.150195312499989,78.2375],[11.365429687500011,78.95039062500004],[12.323437500000068,78.91425781249995],[12.083984375000028,79.26752929687498],[11.579785156250068,79.28349609375005],[11.208105468750034,79.12963867187503],[10.737597656250017,79.52016601562502],[10.804003906250045,79.79877929687504],[11.150390625,79.71699218749998],[11.702343750000011,79.82060546875005],[12.287792968750068,79.713134765625],[12.279980468749983,79.81596679687507],[13.692871093749972,79.860986328125],[13.777539062500011,79.71528320312498],[12.555371093750068,79.56948242187502],[13.333789062500017,79.57480468750006],[14.029589843750017,79.34414062500005],[14.59365234375008,79.79873046875002],[16.34375,78.97612304687502],[15.816113281250011,79.68183593750001],[16.245703125000034,80.04946289062502],[16.786718750000034,79.90673828125]]],[[[32.52597656250006,80.119140625],[31.48193359374997,80.10791015625003],[33.62929687499999,80.21743164062497],[32.52597656250006,80.119140625]]],[[[20.897851562500023,80.24995117187501],[22.289746093749983,80.04921874999997],[22.450781250000034,80.40224609375005],[23.00800781250004,80.473974609375],[23.114550781250074,80.18696289062498],[24.29755859375004,80.36040039062505],[26.86083984375,80.16000976562498],[27.19863281250008,79.90659179687506],[25.641210937500034,79.40302734374995],[23.94775390625,79.19428710937498],[22.903710937500023,79.23066406250001],[22.865527343750045,79.41186523437497],[20.861132812500017,79.39785156249997],[20.128222656250074,79.489599609375],[19.674609375000045,79.591162109375],[20.784082031250023,79.74858398437502],[18.725,79.7607421875],[18.25537109375,79.92919921875003],[18.855957031250057,80.03662109375],[17.91689453125005,80.14311523437502],[19.343359375000063,80.11640624999998],[19.733300781249994,80.47783203124999],[20.897851562500023,80.24995117187501]]]]},"properties":{"name":"Norway","childNum":27}},{"geometry":{"type":"Polygon","coordinates":[[[87.984375,27.133935546874994],[87.9931640625,27.086083984374994],[88.11103515625001,26.928466796875],[88.1572265625,26.807324218749997],[88.16152343750002,26.724804687499997],[88.11152343750001,26.58642578125],[88.05488281250001,26.430029296875],[88.02695312500003,26.39501953125],[87.9951171875,26.382373046874996],[87.28740234374999,26.360302734374997],[87.01640624999999,26.555419921875],[86.70136718750001,26.43505859375],[86.00732421875,26.649365234374997],[85.79453125000003,26.604150390624994],[85.7373046875,26.63974609375],[85.6484375,26.829003906249994],[85.56845703125003,26.83984375],[85.29296875,26.741015625],[85.19179687500002,26.766552734374997],[84.68535156249999,27.041015625],[84.65380859375,27.091699218749994],[84.65478515625,27.203662109374996],[84.64072265625003,27.249853515625],[84.61015624999999,27.298681640625],[84.48085937500002,27.348193359374996],[84.22978515624999,27.42783203125],[84.09101562500001,27.491357421874994],[83.82880859375001,27.377832031249994],[83.74697265625002,27.395947265624997],[83.55166015625002,27.456347656249996],[83.44716796875002,27.46533203125],[83.38398437500001,27.44482421875],[83.36943359374999,27.41025390625],[83.28974609375001,27.370996093749994],[82.7333984375,27.518994140624997],[82.71083984375002,27.5966796875],[82.67734375000003,27.6734375],[82.6298828125,27.687060546874996],[82.45136718750001,27.671826171874997],[82.28769531250003,27.756542968749997],[82.11191406250003,27.864941406249997],[82.03701171875002,27.900585937499997],[81.98769531250002,27.913769531249997],[81.94521484375002,27.899267578125],[81.896875,27.874462890624997],[81.85263671875003,27.867089843749994],[81.1689453125,28.335009765624996],[80.58701171875003,28.649609375],[80.51787109374999,28.665185546874994],[80.49580078125001,28.635791015624996],[80.47910156250003,28.604882812499994],[80.41855468750003,28.612011718749997],[80.32480468750003,28.66640625],[80.2265625,28.723339843749997],[80.07070312500002,28.83017578125],[80.05166015625002,28.8703125],[80.08457031250003,28.994189453124996],[80.13046875000003,29.100390625],[80.16953125000003,29.124316406249996],[80.23300781250003,29.194628906249996],[80.25595703125003,29.318017578124994],[80.2548828125,29.42333984375],[80.31689453125,29.572070312499996],[80.40185546875,29.730273437499996],[80.54902343750001,29.899804687499994],[80.81992187500003,30.119335937499997],[80.84814453125,30.13974609375],[80.90761718750002,30.171923828124996],[80.96611328124999,30.180029296875],[81.17714843750002,30.039892578125],[81.25507812500001,30.093310546874996],[81.41718750000001,30.337597656249997],[81.64189453124999,30.3875],[81.85488281250002,30.36240234375],[82.04335937500002,30.3267578125],[82.220703125,30.063867187499994],[83.15546875000001,29.612646484375],[83.58349609375,29.18359375],[83.93593750000002,29.279492187499997],[84.02197265625,29.253857421874997],[84.10136718749999,29.219970703125],[84.12783203125002,29.156298828124996],[84.17558593749999,29.036376953125],[84.22871093750001,28.911767578124994],[84.796875,28.560205078124994],[84.85507812500003,28.553613281249994],[85.06914062499999,28.609667968749996],[85.12636718750002,28.60263671875],[85.15908203125002,28.592236328124997],[85.16015625,28.571875],[85.12148437500002,28.484277343749994],[85.08857421875001,28.372265625],[85.12246093750002,28.315966796874996],[85.21210937500001,28.292626953124994],[85.41064453125,28.276025390624994],[85.67832031250003,28.27744140625],[85.75947265625001,28.220654296874997],[85.84023437500002,28.1353515625],[85.92167968749999,27.989697265624997],[85.9541015625,27.92822265625],[85.99453125000002,27.910400390625],[86.06416015625001,27.934716796874994],[86.07871093750003,28.08359375],[86.13701171874999,28.11435546875],[86.21796875000001,28.0220703125],[86.32861328125,27.959521484374996],[86.40869140625,27.928662109374997],[86.51689453124999,27.963525390624994],[86.55449218749999,28.085205078125],[86.61445312500001,28.10302734375],[86.69052734375003,28.094921875],[86.71962890625002,28.070654296875],[86.75039062500002,28.0220703125],[86.93378906250001,27.968457031249997],[87.02011718750003,27.928662109374997],[87.14140624999999,27.838330078124997],[87.29072265625001,27.821923828124994],[87.62255859375,27.815185546875],[87.86074218750002,27.886083984375],[88.10976562500002,27.87060546875],[87.984375,27.133935546874994]]]},"properties":{"name":"Nepal","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[169.17822265624997,-52.497265625],[169.12753906250006,-52.570312499999964],[169.02177734375002,-52.49541015624998],[169.17822265624997,-52.497265625]]],[[[166.22109375,-50.76152343749997],[166.2428710937501,-50.84570312499998],[165.88916015624997,-50.80771484374996],[166.10136718750002,-50.538964843750016],[166.26748046875005,-50.558593750000014],[166.22109375,-50.76152343749997]]],[[[168.14492187500005,-46.862207031249966],[168.04316406250004,-46.9326171875],[168.2409179687501,-47.070019531250026],[167.52197265624997,-47.258691406249994],[167.80078125000003,-46.90654296875002],[167.78398437500007,-46.699804687500006],[167.9557617187501,-46.69443359374998],[168.14492187500005,-46.862207031249966]]],[[[166.97949218749997,-45.17968750000003],[167.02265625000004,-45.299804687499986],[166.89267578125012,-45.24052734374999],[166.97949218749997,-45.17968750000003]]],[[[-176.17763671874997,-43.74033203124998],[-176.38173828124997,-43.86679687499998],[-176.40737304687497,-43.7609375],[-176.516552734375,-43.78476562499996],[-176.33359375000003,-44.02529296875004],[-176.51552734374997,-44.11660156249998],[-176.62934570312495,-44.036132812500014],[-176.55512695312504,-43.85195312499998],[-176.84765625000003,-43.82392578125004],[-176.56611328124995,-43.717578125000045],[-176.17763671874997,-43.74033203124998]]],[[[173.91464843750018,-40.86367187500004],[173.78085937500012,-40.921777343749966],[173.964453125,-40.71298828124998],[173.91464843750018,-40.86367187500004]]],[[[173.11533203125006,-41.27929687499997],[173.94716796875005,-40.92412109375],[173.79785156250003,-41.271972656249986],[173.99941406250005,-40.99326171874996],[174.30253906249996,-41.019531249999986],[174.03857421875003,-41.24189453125],[174.37011718750009,-41.1037109375],[174.06933593750009,-41.42949218750002],[174.08369140625015,-41.67080078124998],[174.2831054687501,-41.740625],[173.22119140624997,-42.976562499999986],[172.62402343749997,-43.27246093749996],[172.73476562500005,-43.35478515625003],[172.52666015625002,-43.464746093749966],[172.69345703125006,-43.444335937499986],[172.80703125000005,-43.620996093749994],[173.07324218750003,-43.676171874999966],[173.065625,-43.87460937499998],[172.50273437500002,-43.84365234374998],[172.48037109375,-43.726660156250034],[172.29658203125004,-43.867871093750026],[172.035546875,-43.70175781250002],[172.17978515625006,-43.895996093749986],[171.24072265624997,-44.26416015625003],[171.14628906250002,-44.9123046875],[170.99902343750003,-44.91142578124999],[171.11328125000003,-45.03925781250001],[170.7005859375,-45.68427734374997],[170.77626953125005,-45.870898437499974],[170.4191406250001,-45.94101562499996],[169.68662109375006,-46.55166015625002],[169.34228515625003,-46.62050781250001],[168.38212890625007,-46.60537109374995],[168.1891601562501,-46.362207031249966],[167.8419921875001,-46.366210937499986],[167.539453125,-46.14853515624996],[167.36894531250007,-46.24150390624999],[166.73154296875006,-46.19785156249998],[166.91669921875004,-45.95722656249998],[166.64990234374997,-46.04169921875004],[166.71796875000004,-45.88935546875001],[166.49316406249997,-45.9638671875],[166.48828124999997,-45.83183593750002],[167.0033203125,-45.71210937500004],[166.79765625000002,-45.64560546874999],[166.99082031250012,-45.531738281249986],[166.73398437500012,-45.54355468749999],[166.74306640625,-45.46845703124997],[166.91992187499997,-45.40791015624998],[166.86923828125006,-45.31123046875],[167.15566406250005,-45.410937499999974],[167.23007812500012,-45.29033203125],[167.02587890624997,-45.12363281249998],[167.25947265625004,-45.08222656249997],[167.19453125000004,-44.963476562500034],[167.41074218750006,-44.82792968750003],[167.4662109375,-44.958300781250045],[167.48496093750006,-44.77138671874998],[167.78701171875,-44.59501953125002],[167.90898437500002,-44.66474609375001],[167.85654296875012,-44.50068359374998],[168.45742187500005,-44.030566406250045],[169.17890625000004,-43.9130859375],[169.16953125000006,-43.77705078125],[169.83388671875,-43.53701171875004],[170.24023437499997,-43.163867187500045],[170.39609375000012,-43.18222656249996],[170.30283203125012,-43.10761718750004],[170.61181640625003,-43.091796875000014],[170.5236328125001,-43.00898437500001],[170.6654296875,-42.961230468749974],[170.73525390625005,-43.029785156249986],[170.96992187500004,-42.71835937499996],[171.01171875000003,-42.88505859374999],[171.027734375,-42.696093750000045],[171.31337890625005,-42.460156250000026],[171.48623046875,-41.7947265625],[171.94804687500002,-41.53867187499996],[172.13945312500002,-40.947265625000014],[172.640625,-40.51826171875001],[172.94365234375007,-40.51875],[172.73261718750004,-40.54375],[172.70439453125002,-40.6677734375],[172.988671875,-40.84824218749999],[173.11533203125006,-41.27929687499997]]],[[[175.54316406250015,-36.279296874999986],[175.34619140624997,-36.217773437499986],[175.3895507812501,-36.07773437499996],[175.54316406250015,-36.279296874999986]]],[[[173.26943359375,-34.93476562499998],[173.44785156250012,-34.844335937500034],[173.47265625000003,-34.94697265624998],[174.10400390625003,-35.14287109375002],[174.1431640625,-35.3],[174.32031250000003,-35.246679687500034],[174.58066406250018,-35.78554687500004],[174.39580078124996,-35.79736328124996],[174.8021484375,-36.30947265625001],[174.72246093750007,-36.84121093749998],[175.29951171875004,-36.99326171874996],[175.38535156250012,-37.206933593749966],[175.54248046874997,-37.2013671875],[175.46083984375005,-36.475683593750034],[175.77216796875004,-36.73515625],[176.10839843749997,-37.64511718749998],[177.27402343750012,-37.993457031249974],[178.0091796875,-37.55488281249998],[178.53623046875006,-37.69208984375004],[178.26767578125006,-38.551171875],[177.976171875,-38.72226562500005],[177.90878906250012,-39.23955078125],[177.52294921875003,-39.07382812499999],[177.07675781250012,-39.22177734375002],[176.93925781249996,-39.55527343750002],[177.10986328125009,-39.673144531250045],[176.8421875000001,-40.15781250000002],[175.98291015625003,-41.21328125000002],[175.30976562499998,-41.610644531249974],[175.16562500000012,-41.41738281249995],[174.88134765624997,-41.42402343749997],[174.8656250000001,-41.223046874999966],[174.63535156250012,-41.28945312499999],[175.1625,-40.62158203125],[175.25410156250004,-40.28935546875],[175.1559570312501,-40.11494140625],[175.00927734375009,-39.95214843749996],[173.93437500000013,-39.50908203125002],[173.76367187499997,-39.31875],[173.84433593750006,-39.13935546875001],[174.39843749999997,-38.96259765624998],[174.59736328124998,-38.78505859374995],[174.80166015625005,-37.895507812500014],[174.92802734375002,-37.80449218750003],[174.58583984374994,-37.09775390625002],[174.73427734375,-37.21523437499998],[174.92890625000004,-37.084765625000045],[174.78203125000013,-36.94375],[174.47558593750009,-36.94189453124997],[174.1888671875001,-36.492285156250034],[174.4015625000001,-36.60195312499999],[174.39277343750004,-36.24003906249999],[174.26787109375002,-36.16308593750003],[174.25371093749996,-36.24912109374998],[174.03642578125013,-36.12246093750001],[173.91445312499994,-35.908691406249986],[173.91728515625002,-36.01816406249999],[174.16640624999994,-36.327636718749986],[174.05468749999991,-36.35976562500004],[173.41220703125012,-35.542578125],[173.62617187500004,-35.31914062499996],[173.3763671875001,-35.50009765624996],[173.31396484375003,-35.44335937499996],[173.11669921874997,-35.205273437500026],[173.190625,-35.01621093749998],[172.70595703125005,-34.45517578124998],[173.04394531249997,-34.429101562499994],[172.96376953125,-34.53515625000003],[173.26943359375,-34.93476562499998]]]]},"properties":{"name":"New Zealand","childNum":9}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[58.722070312499994,20.21875],[58.640917968750074,20.210693359375057],[58.64121093750006,20.33735351562501],[58.884375,20.680566406250023],[58.95078125000006,20.516162109375017],[58.722070312499994,20.21875]]],[[[56.38798828125002,24.97919921875004],[56.640625,24.4703125],[57.12304687500003,23.980712890625],[58.773046875,23.517187499999977],[59.42939453125004,22.660839843749955],[59.82324218749997,22.50898437500004],[59.8,22.21992187500001],[59.37148437500005,21.498828125000017],[58.89570312500004,21.11279296874997],[58.47421875000006,20.406884765624966],[58.20898437500003,20.423974609374994],[58.245019531249994,20.599218749999977],[58.16943359375003,20.58950195312505],[57.86181640624997,20.24414062500003],[57.71416015625002,19.678417968749983],[57.81162109375006,19.01708984374997],[56.825976562500074,18.753515625],[56.3834960937501,17.98798828125001],[55.479101562500006,17.84326171875003],[55.25537109375003,17.58564453125004],[55.275195312500074,17.320898437500006],[55.06416015625004,17.038916015625034],[54.06816406250002,17.005517578124966],[53.60986328124997,16.75996093750004],[53.08564453125004,16.648388671874955],[51.977636718750006,18.996142578125074],[54.97734375000002,19.995947265625006],[55.64101562499999,22.001855468749994],[55.185839843750074,22.7041015625],[55.1999023437501,23.034765625000034],[55.53164062499999,23.81904296875001],[55.4684570312501,23.94111328125001],[55.98515625000002,24.063378906249966],[55.92861328125005,24.215136718750074],[55.76083984375006,24.24267578125],[55.795703125000074,24.868115234374955],[56.00058593750006,24.953222656249977],[56.06386718750005,24.73876953125],[56.38798828125002,24.97919921875004]]],[[[56.29785156250003,25.650683593750045],[56.144628906250006,25.690527343750006],[56.16748046875003,26.047460937499977],[56.08046875,26.06264648437505],[56.41308593749997,26.351171875000034],[56.29785156250003,25.650683593750045]]]]},"properties":{"name":"Oman","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[73.08961802927895,36.86435907947333],[73.08203125000107,36.43949943991182],[72.31128647748268,35.77290936638241],[73.13410859949555,34.82510160558277],[73.19895048106557,33.88770931468204],[74.00809389139292,33.25375789331485],[73.98984375,33.22119140625],[74.30361328125002,32.991796875],[74.30546875000002,32.810449218749994],[74.35458984375,32.768701171874994],[74.58828125000002,32.753222656249996],[74.632421875,32.770898437499994],[74.66328125000001,32.757666015625],[74.64335937500002,32.607714843749996],[74.68574218750001,32.493798828124994],[74.78886718750002,32.4578125],[74.9873046875,32.462207031249996],[75.33349609375,32.279199218749994],[75.25410156250001,32.14033203125],[75.13876953125,32.104785156249996],[75.07148437500001,32.08935546875],[74.73945312500001,31.948828125],[74.6357421875,31.88974609375],[74.55556640625002,31.818554687499997],[74.5259765625,31.76513671875],[74.50996093750001,31.712939453124996],[74.58183593750002,31.52392578125],[74.59394531250001,31.465380859374996],[74.53496093750002,31.261376953124994],[74.51767578125,31.185595703124996],[74.6103515625,31.112841796874996],[74.62578125000002,31.06875],[74.6328125,31.03466796875],[74.509765625,30.959667968749997],[74.38037109375,30.893408203125],[74.33935546875,30.8935546875],[74.00898437500001,30.519677734374994],[73.89931640625002,30.435351562499996],[73.88271484375002,30.3521484375],[73.92460937500002,30.28164062499999],[73.93339843750002,30.222070312499994],[73.88652343750002,30.162011718749994],[73.8091796875,30.093359375],[73.38164062500002,29.934375],[72.9033203125,29.028759765624997],[72.34189453125,28.751904296874997],[72.2919921875,28.697265625],[72.128515625,28.346337890624994],[71.94804687500002,28.177294921874996],[71.88886718750001,28.0474609375],[71.87031250000001,27.9625],[71.54296875,27.869873046875],[71.18476562500001,27.831640625],[70.87490234375002,27.714453125],[70.79794921875,27.709619140624994],[70.69160156250001,27.768994140624997],[70.62910156250001,27.937451171874997],[70.40371093750002,28.025048828124994],[70.24433593750001,27.934130859374996],[70.1939453125,27.894873046875],[70.14453125,27.849023437499994],[70.0498046875,27.694726562499994],[69.89628906250002,27.4736328125],[69.56796875,27.174609375],[69.47001953125002,26.804443359375],[70.11464843750002,26.548046875],[70.14921875000002,26.347558593749994],[70.1001953125,25.910058593749994],[70.2646484375,25.70654296875],[70.3251953125,25.685742187499997],[70.44853515625002,25.681347656249997],[70.505859375,25.685302734375],[70.56953125000001,25.705957031249994],[70.6484375,25.666943359374997],[70.65205078125001,25.422900390625003],[70.87773437500002,25.06298828125],[70.95087890625001,24.8916015625],[71.02070312500001,24.75766601562499],[71.0478515625,24.687744140625],[71.00234375000002,24.65390625],[70.97636718750002,24.61875],[70.96982421875,24.571875],[71.04531250000002,24.429980468750003],[71.04404296875,24.400097656249997],[70.98281250000002,24.361035156249997],[70.928125,24.362353515625003],[70.88623046875,24.34375],[70.80507812500002,24.261962890625],[70.76728515625001,24.245410156250003],[70.71630859375,24.237988281249997],[70.65947265625002,24.24609375],[70.57929687500001,24.279052734375],[70.55585937500001,24.331103515625003],[70.5650390625,24.385791015625003],[70.54677734375002,24.41831054687499],[70.2890625,24.35629882812499],[70.0982421875,24.2875],[69.80517578125,24.165234375],[69.71621093750002,24.172607421875],[69.63417968750002,24.22519531249999],[69.5591796875,24.273095703124994],[69.44345703125,24.275390625],[69.23505859375001,24.268261718749997],[69.11953125000002,24.26865234374999],[69.05156250000002,24.286328125],[68.98457031250001,24.273095703124994],[68.90078125000002,24.292431640624997],[68.86347656250001,24.266503906249994],[68.82832031250001,24.26401367187499],[68.78115234375002,24.313720703125],[68.75898437500001,24.30722656249999],[68.73964843750002,24.2919921875],[68.728125,24.265625],[68.72412109375,23.96469726562499],[68.48867187500002,23.967236328124997],[68.38125,23.950878906249997],[68.28251953125002,23.927978515625],[68.1650390625,23.857324218749994],[68.11552734375002,23.753369140624997],[67.8599609375,23.90268554687499],[67.66845703125,23.810986328124997],[67.309375,24.1748046875],[67.171484375,24.756103515625],[66.70302734375002,24.8609375],[66.69863281250002,25.226318359375],[66.32421875,25.601806640625],[66.13115234375002,25.49326171874999],[66.46767578125002,25.4453125],[64.77666015625002,25.307324218749997],[64.65898437500002,25.18408203125],[64.059375,25.40292968749999],[63.556640625,25.353173828124994],[63.49140625000001,25.210839843749994],[61.56689453125,25.186328125],[61.587890625,25.20234375],[61.61542968750001,25.2861328125],[61.64013671875,25.584619140624994],[61.67138671875,25.6923828125],[61.66181640625001,25.751269531250003],[61.66865234375001,25.768994140624997],[61.73769531250002,25.82109375],[61.75439453125,25.84335937499999],[61.78076171875,25.995849609375],[61.80996093750002,26.165283203125],[61.842382812500006,26.225927734375],[62.1259765625,26.368994140625],[62.239355468750006,26.35703125],[62.31230468750002,26.490869140624994],[63.168066406250006,26.665576171874996],[63.186132812500006,26.837597656249997],[63.24160156250002,26.86474609375],[63.25039062500002,26.879248046875],[63.24208984375002,27.077685546874996],[63.30517578125,27.124560546874996],[63.30156250000002,27.15146484375],[63.25625,27.207910156249994],[63.19609375000002,27.243945312499996],[63.16679687500002,27.252490234374996],[62.75273437500002,27.265625],[62.782324218750006,27.800537109375],[62.7625,28.202050781249994],[61.88984375000001,28.546533203124994],[61.15214843750002,29.542724609375],[61.0341796875,29.663427734375],[60.843359375,29.858691406249996],[61.22441406250002,29.749414062499994],[62.0009765625,29.530419921874994],[62.4765625,29.408349609374994],[63.56757812500001,29.497998046874997],[64.09873046875,29.391943359375],[64.39375,29.544335937499994],[65.09550781250002,29.559472656249994],[66.23125,29.86572265625],[66.346875,30.802783203124996],[66.82929687500001,31.263671875],[67.45283203125001,31.234619140625],[67.737890625,31.343945312499997],[67.57822265625,31.506494140624994],[68.16103515625002,31.802978515625],[68.59765625,31.802978515625],[68.86894531250002,31.634228515624997],[69.279296875,31.936816406249996],[69.24140625000001,32.433544921875],[69.5015625,33.020068359374996],[70.26113281250002,33.289013671875],[69.8896484375,34.007275390625],[70.65400390625001,33.952294921874994],[71.05156250000002,34.049707031249994],[71.095703125,34.369433593749996],[70.965625,34.53037109375],[71.62050781250002,35.183007812499994],[71.57197265625001,35.546826171875],[71.18505859375,36.04208984375],[71.23291015625,36.12177734375],[72.24980468750002,36.734716796875],[73.08961802927895,36.86435907947333]]]},"properties":{"name":"Pakistan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-81.60327148437497,7.332812499999989],[-81.85205078125003,7.453320312500026],[-81.812158203125,7.59238281250002],[-81.72875976562494,7.62119140625002],[-81.60327148437497,7.332812499999989]]],[[[-78.89833984375002,8.27426757812502],[-78.960595703125,8.435839843749989],[-78.88325195312495,8.460253906249989],[-78.89833984375002,8.27426757812502]]],[[[-77.37421874999993,8.65830078125002],[-77.47851562499994,8.498437500000037],[-77.19599609374995,7.972460937500003],[-77.53828124999995,7.56625976562502],[-77.76191406249995,7.698828125000034],[-77.90117187499999,7.229345703125048],[-78.42158203124995,8.060986328125011],[-78.28735351562497,8.091796874999972],[-78.14189453125002,8.386083984374977],[-77.76054687499993,8.133251953124983],[-78.09946289062498,8.496972656250009],[-78.22304687500002,8.396630859374994],[-78.39921874999993,8.505664062500003],[-78.40986328124998,8.35532226562502],[-78.51406249999997,8.628173828125],[-79.08637695312495,8.997167968750034],[-79.50708007812494,8.97006835937502],[-79.68745117187493,8.850976562500009],[-79.81591796875,8.639208984375031],[-79.75043945312498,8.595507812500017],[-80.458984375,8.213867187499972],[-80.45810546875,8.077050781249994],[-80.01123046875,7.500048828125031],[-80.66669921874995,7.225683593750006],[-80.90122070312503,7.277148437500017],[-81.06386718749994,7.89975585937502],[-81.26840820312495,7.625488281250014],[-81.50415039062503,7.721191406249972],[-81.72763671875,8.137548828124977],[-82.15986328124995,8.19482421875],[-82.23544921874998,8.311035156250057],[-82.67954101562503,8.321972656249969],[-82.86611328124994,8.246337890625014],[-82.87934570312498,8.07065429687502],[-83.02734375,8.337744140624991],[-82.86162109374999,8.453515625000037],[-82.84477539062493,8.489355468749963],[-82.85571289062494,8.635302734375031],[-82.91704101562502,8.740332031250034],[-82.88198242187497,8.805322265625037],[-82.72783203125002,8.916064453125031],[-82.78305664062498,8.990283203124974],[-82.88134765625003,9.055859375000011],[-82.94033203124997,9.060107421874989],[-82.93984374999994,9.449169921875026],[-82.92504882812494,9.469042968749989],[-82.88896484374999,9.481005859375017],[-82.86015625,9.511474609375014],[-82.84399414062497,9.570800781250014],[-82.801025390625,9.591796875000028],[-82.64409179687502,9.505859375000028],[-82.56357421875003,9.576660156249972],[-82.50034179687503,9.523242187500017],[-82.37080078124993,9.428564453124991],[-82.33974609375,9.209179687499983],[-82.18813476562502,9.191748046874977],[-82.24418945312499,9.031494140625014],[-82.07788085937503,8.93486328124996],[-81.78022460937495,8.957226562499983],[-81.89448242187495,9.140429687500003],[-81.35478515624996,8.78056640624996],[-80.83867187499999,8.887207031250014],[-80.12709960937497,9.20991210937504],[-79.57729492187497,9.597851562500026],[-78.08276367187494,9.236279296874997],[-77.37421874999993,8.65830078125002]]]]},"properties":{"name":"Panama","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[-73.137353515625,-6.4658203125],[-73.75810546874999,-6.90576171875],[-73.79301757812499,-7.135058593750003],[-73.758203125,-7.172753906250009],[-73.72041015625,-7.309277343750011],[-73.964306640625,-7.37890625],[-73.95849609375,-7.506640625],[-73.98173828124999,-7.535742187500006],[-74.00205078124999,-7.556054687500009],[-73.98173828124999,-7.585058593750006],[-73.946875,-7.611230468750009],[-73.89462890624999,-7.65478515625],[-73.82207031249999,-7.738964843750011],[-73.76689453124999,-7.753515625],[-73.72041015625,-7.782519531250003],[-73.73203125,-7.875390625],[-73.54912109374999,-8.345800781250006],[-73.39814453125,-8.458984375],[-73.36040039062499,-8.479296875],[-73.351708984375,-8.51416015625],[-73.35673828124999,-8.566992187500006],[-73.30244140625,-8.654003906250011],[-73.203125,-8.719335937500006],[-73.0705078125,-8.8828125],[-72.9740234375,-8.9931640625],[-72.970361328125,-9.1201171875],[-73.08984375,-9.265722656250006],[-73.209423828125,-9.411425781250003],[-72.379052734375,-9.51015625],[-72.181591796875,-10.003710937500003],[-71.33940429687499,-9.988574218750003],[-71.11528320312499,-9.852441406250009],[-71.041748046875,-9.81875],[-70.6369140625,-9.478222656250011],[-70.60791015625,-9.463671875],[-70.54111328124999,-9.4375],[-70.57016601562499,-9.48984375],[-70.592236328125,-9.54345703125],[-70.59916992187499,-9.620507812500009],[-70.642333984375,-11.01025390625],[-70.59653320312499,-10.976855468750003],[-70.53325195312499,-10.946875],[-70.45087890625,-11.024804687500009],[-70.39228515625,-11.05859375],[-70.3419921875,-11.066699218750003],[-70.29038085937499,-11.064257812500003],[-70.22006835937499,-11.04765625],[-70.06630859375,-10.982421875],[-69.9603515625,-10.929882812500011],[-69.839794921875,-10.933398437500003],[-69.6740234375,-10.9541015625],[-69.57861328125,-10.951757812500006],[-68.68525390625,-12.501953125],[-68.97861328124999,-12.880078125000011],[-69.07412109375,-13.682812500000011],[-68.87089843749999,-14.169726562500003],[-69.35947265624999,-14.7953125],[-69.37470703125,-14.962988281250006],[-69.17246093749999,-15.236621093750003],[-69.4208984375,-15.640625],[-69.21757812499999,-16.14912109375001],[-68.8427734375,-16.337890625],[-69.03291015625,-16.47597656250001],[-69.020703125,-16.6421875],[-69.62485351562499,-17.2001953125],[-69.645703125,-17.24853515625],[-69.521923828125,-17.388964843750003],[-69.510986328125,-17.46035156250001],[-69.51108398437499,-17.5048828125],[-69.5109375,-17.50605468750001],[-69.58642578125,-17.5732421875],[-69.684765625,-17.64980468750001],[-69.85209960937499,-17.70380859375001],[-69.80258789062499,-17.990234375],[-69.92636718749999,-18.2060546875],[-70.41826171874999,-18.34560546875001],[-71.33696289062499,-17.68251953125001],[-71.5322265625,-17.29433593750001],[-72.46767578125,-16.708105468750006],[-73.727685546875,-16.20166015625],[-75.104248046875,-15.411914062500003],[-75.533642578125,-14.89921875],[-75.93388671874999,-14.63359375],[-76.37646484375,-13.863085937500003],[-76.259228515625,-13.802832031250006],[-76.2236328125,-13.371191406250006],[-76.83212890624999,-12.348730468750006],[-77.152734375,-12.060351562500003],[-77.2203125,-11.663378906250003],[-77.633203125,-11.287792968750011],[-77.736083984375,-10.83671875],[-78.18559570312499,-10.089062500000011],[-78.76225585937499,-8.616992187500003],[-79.37724609374999,-7.835546875],[-79.99497070312499,-6.768945312500009],[-81.142041015625,-6.056738281250006],[-81.164306640625,-5.875292968750003],[-80.9306640625,-5.8408203125],[-80.88193359374999,-5.635058593750003],[-81.33662109375,-4.66953125],[-81.283203125,-4.322265625],[-80.503662109375,-3.49609375],[-80.324658203125,-3.387890625000011],[-80.24375,-3.576757812500006],[-80.19414062499999,-3.905859375],[-80.23051757812499,-3.924023437500011],[-80.26689453124999,-3.948828125],[-80.30327148437499,-4.005078125000011],[-80.43720703125,-3.978613281250006],[-80.49013671875,-4.010058593750003],[-80.510009765625,-4.069531250000011],[-80.49345703124999,-4.119140625],[-80.4884765625,-4.16552734375],[-80.453759765625,-4.205175781250006],[-80.35288085937499,-4.20849609375],[-80.44384765625,-4.335839843750009],[-80.4884765625,-4.393652343750006],[-80.47856445312499,-4.430078125],[-80.42416992187499,-4.46142578125],[-80.38349609375,-4.463671875],[-80.293359375,-4.416796875],[-80.1974609375,-4.31103515625],[-80.13955078125,-4.296093750000011],[-80.06352539062499,-4.327539062500009],[-79.962890625,-4.390332031250011],[-79.8451171875,-4.445898437500006],[-79.797265625,-4.476367187500003],[-79.71098632812499,-4.467578125],[-79.63852539062499,-4.454882812500003],[-79.57768554687499,-4.500585937500006],[-79.51616210937499,-4.539160156250006],[-79.501904296875,-4.670605468750011],[-79.45576171875,-4.766210937500006],[-79.3994140625,-4.840039062500011],[-79.33095703125,-4.927832031250006],[-79.26811523437499,-4.957617187500006],[-79.186669921875,-4.958203125000011],[-79.07626953124999,-4.990625],[-79.03330078124999,-4.969140625],[-78.995263671875,-4.908007812500003],[-78.97539062499999,-4.873242187500011],[-78.919189453125,-4.8583984375],[-78.92578125,-4.770703125000011],[-78.9076171875,-4.714453125],[-78.8615234375,-4.6650390625],[-78.68603515625,-4.562402343750009],[-78.64799804687499,-4.248144531250006],[-78.345361328125,-3.397363281250009],[-78.240380859375,-3.472558593750009],[-77.860595703125,-2.981640625000011],[-76.6791015625,-2.562597656250006],[-76.089794921875,-2.133105468750003],[-75.570556640625,-1.53125],[-75.42041015625,-0.962207031250003],[-75.40805664062499,-0.92431640625],[-75.24960937499999,-0.951855468750011],[-75.259375,-0.590136718750003],[-75.42470703125,-0.408886718750011],[-75.49106445312499,-0.248339843750003],[-75.56059570312499,-0.200097656250009],[-75.63203125,-0.157617187500009],[-75.62626953124999,-0.122851562500003],[-75.340478515625,-0.1421875],[-75.13837890625,-0.050488281250011],[-74.8017578125,-0.200097656250009],[-74.78046875,-0.24453125],[-74.75537109375,-0.298632812500003],[-74.691650390625,-0.335253906250003],[-74.616357421875,-0.370019531250009],[-74.555078125,-0.429882812500011],[-74.5138671875,-0.470117187500009],[-74.46518554687499,-0.517675781250006],[-74.41787109375,-0.580664062500006],[-74.334423828125,-0.850878906250003],[-74.28388671875,-0.927832031250006],[-74.24638671874999,-0.970605468750009],[-74.05439453125,-1.028613281250003],[-73.98681640625,-1.09814453125],[-73.926953125,-1.125195312500011],[-73.86318359375,-1.196679687500009],[-73.664306640625,-1.248828125],[-73.4962890625,-1.693066406250011],[-73.19697265625,-1.830273437500011],[-73.1544921875,-2.278222656250009],[-72.9896484375,-2.339746093750009],[-72.94111328125,-2.39404296875],[-72.21845703125,-2.400488281250006],[-71.98427734375,-2.3265625],[-71.93247070312499,-2.288671875],[-71.86728515624999,-2.227734375000011],[-71.802734375,-2.166308593750003],[-71.75253906249999,-2.152734375],[-71.55947265625,-2.22421875],[-71.39697265625,-2.334082031250006],[-71.19638671874999,-2.313085937500006],[-71.11337890624999,-2.245410156250003],[-71.027294921875,-2.225781250000011],[-70.96855468749999,-2.206835937500003],[-70.70537109374999,-2.341992187500011],[-70.64799804687499,-2.40576171875],[-70.57587890625,-2.418261718750003],[-70.29462890625,-2.552539062500003],[-70.24443359374999,-2.606542968750006],[-70.16474609375,-2.639843750000011],[-70.095849609375,-2.658203125],[-70.735107421875,-3.781542968750003],[-70.5296875,-3.866406250000011],[-70.48583984375,-3.869335937500011],[-70.42109375,-3.849609375],[-70.37919921874999,-3.81875],[-70.339501953125,-3.814355468750009],[-70.2984375,-3.84423828125],[-70.24028320312499,-3.882714843750009],[-70.16752929687499,-4.050195312500009],[-70.0171875,-4.162011718750009],[-69.96591796874999,-4.2359375],[-69.97202148437499,-4.301171875],[-70.00395507812499,-4.327246093750006],[-70.05332031249999,-4.333105468750006],[-70.12880859375,-4.28662109375],[-70.23916015625,-4.301171875],[-70.31689453125,-4.246972656250009],[-70.34365234375,-4.193652343750003],[-70.40463867187499,-4.150097656250011],[-70.5306640625,-4.167578125],[-70.72158203125,-4.158886718750011],[-70.79951171875,-4.17333984375],[-70.97368164062499,-4.350488281250009],[-71.8447265625,-4.50439453125],[-72.256787109375,-4.748925781250009],[-72.35283203124999,-4.786035156250009],[-72.468994140625,-4.901269531250009],[-72.608349609375,-5.009570312500003],[-72.69873046875,-5.0671875],[-72.83193359375,-5.09375],[-72.88706054687499,-5.122753906250011],[-72.9798828125,-5.634863281250006],[-73.16289062499999,-5.933398437500003],[-73.209375,-6.028710937500009],[-73.235546875,-6.0984375],[-73.137353515625,-6.4658203125]]]},"properties":{"name":"Peru","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[120.250390625,5.256591796875043],[119.82148437500004,5.06953125000004],[120.1652343750001,5.332421875000037],[120.250390625,5.256591796875043]]],[[[121.159375,6.075634765625011],[121.41103515625005,5.939843749999966],[121.29443359374997,5.869970703125034],[120.8763671875,5.95263671875],[121.159375,6.075634765625011]]],[[[122.09287109375012,6.428320312500006],[121.95917968750004,6.415820312500045],[121.83203125000003,6.664062499999986],[122.0583007812501,6.740722656249972],[122.32353515625002,6.602246093750011],[122.09287109375012,6.428320312500006]]],[[[122.93710937500006,7.409130859374983],[122.80468750000003,7.315966796875017],[122.82216796875,7.428466796875014],[122.93710937500006,7.409130859374983]]],[[[117.07988281250007,7.883398437499977],[117.02832031249997,7.807519531249966],[116.96953125000007,7.894921875],[116.9935546875,8.050537109375014],[117.07705078125,8.069140624999974],[117.07988281250007,7.883398437499977]]],[[[117.35527343750002,8.21464843749996],[117.28701171875,8.191015625000034],[117.28085937500006,8.314990234374974],[117.35527343750002,8.21464843749996]]],[[[124.80664062500003,9.142626953125003],[124.66582031250002,9.132324218750043],[124.65332031250003,9.225830078125],[124.80664062500003,9.142626953125003]]],[[[123.69765625000005,9.237304687500028],[123.61445312500004,9.103320312499989],[123.49345703125002,9.192089843750054],[123.69765625000005,9.237304687500028]]],[[[126.00595703125006,9.320947265625009],[126.19335937499997,9.276708984374963],[126.30458984375,8.952050781249994],[126.13955078125005,8.59565429687504],[126.36533203125012,8.483886718750014],[126.45869140625004,8.20283203125004],[126.43535156250002,7.832812499999974],[126.57011718750002,7.677246093749986],[126.58154296875003,7.247753906249969],[126.1920898437501,6.852539062500014],[126.18935546875,6.309667968749991],[125.82441406250004,7.333300781249989],[125.68925781250007,7.263037109374977],[125.38066406250007,6.689941406250014],[125.58847656250012,6.465771484374997],[125.66796874999997,5.97866210937498],[125.34648437500002,5.598974609374977],[125.23154296875006,6.069531250000011],[124.92734375000006,5.875341796874977],[124.21279296875,6.233251953124977],[124.078125,6.404443359375037],[123.98525390625,6.993701171875003],[124.20664062500006,7.396435546874983],[123.66582031250002,7.817773437500023],[123.49306640625,7.80791015624996],[123.39091796875007,7.407519531250017],[123.09667968749997,7.700439453125],[122.8429687500001,7.529296875000043],[122.79179687500002,7.72246093749996],[122.61621093749997,7.763134765624983],[122.14248046875,6.949658203124997],[121.96425781250005,6.96821289062504],[121.92460937500002,7.199511718750003],[122.24335937500004,7.945117187500031],[122.91113281250003,8.156445312499997],[123.05058593750002,8.433935546875048],[123.43457031249997,8.70332031250004],[123.84921875000006,8.432714843749977],[123.79941406250006,8.049121093749989],[124.19765625,8.229541015624974],[124.40488281250006,8.599853515625014],[124.7311523437501,8.562988281250043],[124.86894531250002,8.972265625000034],[125.141015625,8.86875],[125.20966796875004,9.027148437500017],[125.49873046875004,9.014746093749977],[125.47128906250006,9.756787109374983],[126.00595703125006,9.320947265625009]]],[[[126.059375,9.766210937500034],[125.99121093750003,9.838525390625023],[126.07382812500006,10.059228515625051],[126.1725585937501,9.79995117187498],[126.059375,9.766210937500034]]],[[[124.59384765625006,9.787207031249963],[124.1224609375,9.599316406249969],[123.93564453125012,9.623974609375011],[123.81718750000002,9.817382812499986],[124.17285156250003,10.135205078124983],[124.33574218750002,10.159912109375043],[124.57714843749997,10.026708984374991],[124.59384765625006,9.787207031249963]]],[[[125.69023437500007,9.914453125000037],[125.49482421875004,10.118701171875003],[125.66679687500002,10.440136718750026],[125.69023437500007,9.914453125000037]]],[[[119.91621093750004,10.485986328125037],[119.79316406250004,10.455273437499997],[119.85205078124997,10.64013671875],[120.00839843750012,10.570117187500031],[119.91621093750004,10.485986328125037]]],[[[122.64951171875012,10.472705078125003],[122.53837890625002,10.424951171875037],[122.5375,10.607568359375023],[122.70126953125006,10.740625],[122.64951171875012,10.472705078125003]]],[[[123.13085937500003,9.064111328124994],[122.99472656250006,9.058837890624986],[122.8666015625,9.319824218750043],[122.5625,9.482812500000037],[122.39951171875006,9.823046874999989],[122.47148437500007,9.961523437500034],[122.85556640625006,10.0869140625],[122.81699218750012,10.503808593750023],[122.98330078125,10.886621093750037],[123.25664062500007,10.99394531249996],[123.51064453125005,10.923046875],[123.5675781250001,10.780761718750057],[123.16201171875,9.864257812500028],[123.1498046875,9.606152343750026],[123.32050781250004,9.27294921875],[123.13085937500003,9.064111328124994]]],[[[123.37031250000004,9.449609375000023],[123.38623046874997,9.967089843750017],[124.03886718750002,11.273535156249991],[124.00498046875012,10.40009765625004],[123.70048828125007,10.128320312500009],[123.37031250000004,9.449609375000023]]],[[[123.75703125000004,11.28330078125002],[123.815625,11.15073242187502],[123.73671875,11.151464843749991],[123.75703125000004,11.28330078125002]]],[[[117.31113281250012,8.439599609375051],[117.21855468750007,8.367285156249963],[117.34990234375002,8.713574218749997],[119.22382812500004,10.477294921875043],[119.30566406250003,10.9736328125],[119.55332031250012,11.31352539062496],[119.52666015625002,10.953173828125003],[119.68691406250005,10.500341796875034],[119.36933593750004,10.327294921875037],[119.19150390625012,10.061083984374989],[118.78212890625005,9.91611328125002],[118.4349609375,9.256005859375009],[117.31113281250012,8.439599609375051]]],[[[119.86142578125006,11.52534179687504],[119.83066406250012,11.375683593750011],[119.72998046874997,11.431933593750017],[119.86142578125006,11.52534179687504]]],[[[124.574609375,11.343066406250031],[124.92998046875002,11.372851562499974],[125.02656250000004,11.21171875],[125.01318359374997,10.785693359374989],[125.26845703125005,10.307714843750048],[125.14257812499997,10.189453125000028],[124.9875,10.36757812499998],[125.02656250000004,10.033105468749966],[124.78076171874997,10.16806640625002],[124.78671875000012,10.781396484375009],[124.66269531250006,10.961962890625017],[124.44550781250004,10.923583984375014],[124.33066406250012,11.535205078125003],[124.574609375,11.343066406250031]]],[[[124.60839843750003,11.492187500000043],[124.48349609375006,11.485839843749986],[124.36035156250003,11.665917968749994],[124.5109375000001,11.687109375000048],[124.60839843750003,11.492187500000043]]],[[[122.49619140625006,11.615087890625034],[122.83808593750004,11.595654296874983],[122.89453125000003,11.44130859374998],[123.15830078125012,11.53554687499999],[123.11953125,11.286816406250026],[122.8029296875001,10.99003906249996],[122.76992187500005,10.823828125000034],[121.95400390625,10.444384765625003],[122.10351562499997,11.64291992187502],[121.91601562499997,11.854345703125006],[122.02919921875005,11.895410156250023],[122.49619140625006,11.615087890625034]]],[[[120.03876953125004,11.703320312499969],[119.94492187500006,11.690722656249989],[119.86093750000006,11.953955078124963],[120.03593750000002,11.917236328125028],[120.03876953125004,11.703320312499969]]],[[[120.1,12.167675781249983],[120.22822265625004,12.219824218750034],[120.31455078125012,12.012402343749969],[120.01054687500002,12.008251953125011],[119.88574218749997,12.299853515625003],[120.1,12.167675781249983]]],[[[122.65449218750004,12.309033203125011],[122.42294921875006,12.455078125],[122.60361328125006,12.49160156249998],[122.65449218750004,12.309033203125011]]],[[[125.23955078125002,12.527880859375003],[125.32021484375,12.321826171875031],[125.53564453125003,12.191406250000028],[125.49179687500006,11.594335937499977],[125.57353515625002,11.238232421874997],[125.73564453125002,11.049609375000017],[125.23339843749997,11.145068359375017],[125.03427734375012,11.341259765625026],[124.91699218750003,11.558398437500031],[124.99501953125,11.764941406250003],[124.445703125,12.152783203124969],[124.29472656250007,12.569335937500014],[125.23955078125002,12.527880859375003]]],[[[123.71660156250007,12.287353515625028],[124.04033203125002,11.966796875],[124.04550781250012,11.752441406250028],[123.47373046875006,12.21665039062502],[123.15781250000012,11.925634765624963],[123.23642578125012,12.583496093750057],[123.71660156250007,12.287353515625028]]],[[[122.09404296875002,12.354882812500023],[122.01396484375002,12.105615234375037],[121.9232421875,12.331298828125014],[122.00156250000006,12.598535156250009],[122.14501953124997,12.652636718750017],[122.09404296875002,12.354882812500023]]],[[[123.77539062499997,12.453906250000031],[123.77910156250002,12.366259765625031],[123.62148437500005,12.67490234375002],[123.77539062499997,12.453906250000031]]],[[[123.28183593750006,12.85341796874998],[123.36718750000003,12.70083007812498],[122.95751953124997,13.107177734374986],[123.28183593750006,12.85341796874998]]],[[[120.70439453125002,13.479492187499986],[121.20273437500006,13.432324218749969],[121.52275390625007,13.131201171874991],[121.540625,12.63818359375],[121.39433593750002,12.300585937499974],[121.23671875000005,12.218798828125003],[120.92216796875002,12.51162109374998],[120.65136718749997,13.169140625],[120.33847656250012,13.412353515624986],[120.40126953125,13.517041015624997],[120.70439453125002,13.479492187499986]]],[[[121.91484375000002,13.540332031250031],[122.11455078125002,13.463183593750031],[122.00488281249997,13.204980468750009],[121.82919921875006,13.328613281249972],[121.91484375000002,13.540332031250031]]],[[[124.35361328125006,13.632226562500009],[124.17539062500012,13.531542968750017],[124.03886718750002,13.663134765625003],[124.22490234375007,14.077587890624969],[124.41718750000004,13.871044921874997],[124.35361328125006,13.632226562500009]]],[[[122.03349609375002,15.005029296875009],[121.93300781250005,14.656054687500045],[121.83984374999997,15.038134765625003],[122.03349609375002,15.005029296875009]]],[[[121.10156249999997,18.615283203125017],[121.84560546875,18.29541015625003],[122.03847656250005,18.32792968749999],[122.14667968750004,18.486572265625],[122.26552734375005,18.458837890625034],[122.15234374999997,17.664404296875006],[122.51914062500012,17.124853515625034],[122.13515625000005,16.18481445312503],[121.59531250000012,15.933251953125023],[121.60703125000006,15.669824218749994],[121.39228515625004,15.324414062499969],[121.69541015625006,14.7373046875],[121.62792968749997,14.581152343749977],[121.76660156249997,14.16806640625002],[122.21171875000002,13.930175781250057],[122.2875,13.996191406250006],[122.19970703125003,14.148046875000034],[122.6271484375001,14.317529296875009],[122.93417968750012,14.18808593750002],[123.101953125,13.750244140624986],[123.29697265625012,13.836425781250043],[123.32031249999997,14.061669921875023],[123.81572265625002,13.837109375000011],[123.80625000000012,13.721728515625045],[123.54960937500007,13.645751953125014],[123.81923828125,13.269482421875011],[123.78515625000003,13.110546875000054],[124.14277343750004,13.035791015625009],[124.0597656250001,12.567089843749997],[123.87783203125005,12.689697265625014],[123.94853515625007,12.916406250000023],[123.31093750000005,13.044091796875009],[123.16328125000004,13.44174804687502],[122.59521484374997,13.90761718749998],[122.46796875000004,13.886718749999986],[122.66787109375,13.395361328124991],[122.59990234375002,13.194140625000031],[122.37656250000012,13.520605468750006],[121.77792968750006,13.93764648437498],[121.50107421875006,13.8421875],[121.344140625,13.649121093749997],[121.09550781250007,13.679492187500045],[120.84072265625,13.884716796875026],[120.637109375,13.804492187500031],[120.61679687500006,14.188037109375003],[120.9220703125001,14.493115234374983],[120.94130859375,14.645068359375031],[120.58369140625004,14.88125],[120.58867187500002,14.483105468749983],[120.43876953125002,14.453369140624972],[120.25078125000002,14.793310546875034],[120.08212890625012,14.851074218749986],[119.77255859375012,16.25512695312503],[119.83076171875004,16.326562500000023],[120.15976562500012,16.047656250000045],[120.36875,16.109570312499955],[120.35839843749997,17.63818359375],[120.59970703125012,18.507861328125074],[121.10156249999997,18.615283203125017]]],[[[121.92167968750007,18.89472656250001],[121.82519531250003,18.842724609374983],[121.94335937500003,19.010449218749955],[121.92167968750007,18.89472656250001]]],[[[121.52089843750005,19.361962890624994],[121.53125,19.271337890625006],[121.37460937500006,19.356298828124977],[121.52089843750005,19.361962890624994]]]]},"properties":{"name":"Philippines","childNum":37}},{"geometry":{"type":"Polygon","coordinates":[[[134.5954101562501,7.382031249999969],[134.51572265625012,7.525781250000037],[134.65117187500002,7.712109374999983],[134.5954101562501,7.382031249999969]]]},"properties":{"name":"Palau","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[153.53613281249997,-11.476171874999949],[153.75986328125006,-11.586328125],[153.55371093749997,-11.630566406249969],[153.28681640625004,-11.516992187500009],[153.20361328124997,-11.32412109374998],[153.53613281249997,-11.476171874999949]]],[[[154.28076171874997,-11.36142578125002],[154.12119140625006,-11.425683593749966],[154.02343750000003,-11.347949218750031],[154.28076171874997,-11.36142578125002]]],[[[150.89873046875002,-10.565332031250023],[150.88466796875,-10.643457031250037],[150.78574218750006,-10.603417968749966],[150.89873046875002,-10.565332031250023]]],[[[151.08095703125,-10.020117187499963],[151.29648437500012,-9.956738281250026],[151.230859375,-10.194726562500009],[150.95917968750004,-10.092578124999989],[150.77607421875004,-9.70908203125002],[151.08095703125,-10.020117187499963]]],[[[150.52841796875006,-9.34658203124998],[150.78867187500006,-9.417968749999957],[150.89404296875003,-9.667480468749986],[150.43623046875004,-9.624609374999949],[150.5084960937501,-9.536132812499957],[150.43730468750007,-9.359960937500034],[150.52841796875006,-9.34658203124998]]],[[[150.3454101562501,-9.493847656249955],[150.10976562500005,-9.361914062499991],[150.20830078125002,-9.206347656250003],[150.32011718750007,-9.264160156249972],[150.3454101562501,-9.493847656249955]]],[[[152.63095703125012,-8.959375],[152.95292968750007,-9.07011718749996],[152.96689453125006,-9.208984375000014],[152.51513671874997,-9.009863281250034],[152.63095703125012,-8.959375]]],[[[151.10683593750005,-8.733496093749949],[151.12412109375012,-8.804882812500011],[151.00498046875006,-8.523828124999952],[151.117578125,-8.41884765624998],[151.10683593750005,-8.733496093749949]]],[[[143.58681640625005,-8.481738281250003],[143.321875,-8.367578125],[143.5814453125,-8.390917968749974],[143.58681640625005,-8.481738281250003]]],[[[148.02578125,-5.826367187500011],[147.78105468750007,-5.627246093749946],[147.7946289062501,-5.492382812500011],[148.05478515625006,-5.61152343750004],[148.02578125,-5.826367187500011]]],[[[155.95761718750006,-6.686816406249989],[155.71933593750012,-6.862792968749957],[155.34404296875007,-6.721679687499986],[155.20214843750003,-6.3076171875],[154.75927734375003,-5.931347656249997],[154.72929687500002,-5.444433593750006],[155.09384765625006,-5.620214843750034],[155.46699218750004,-6.145117187500034],[155.82255859375002,-6.38046875000002],[155.95761718750006,-6.686816406249989]]],[[[147.17626953124997,-5.431933593749946],[147.00585937499997,-5.30703125],[147.1310546875001,-5.190820312500037],[147.17626953124997,-5.431933593749946]]],[[[154.64726562500002,-5.43271484375002],[154.54003906250003,-5.11083984375],[154.63261718750007,-5.013867187499955],[154.72714843750006,-5.218066406249989],[154.64726562500002,-5.43271484375002]]],[[[146.01933593750007,-4.726171874999963],[145.88359375000007,-4.66748046875],[145.9958007812501,-4.539257812499983],[146.01933593750007,-4.726171874999963]]],[[[151.915625,-4.296777343749966],[152.11718749999997,-4.212207031249974],[152.40566406250005,-4.340722656249952],[152.35117187500006,-4.82216796874998],[151.98369140625007,-5.07441406250004],[152.14296875,-5.357031249999963],[152.07705078125,-5.458300781249989],[151.86542968750004,-5.564843750000023],[151.51513671874997,-5.552343749999963],[151.22929687500002,-5.919921874999986],[150.47353515625,-6.263378906249969],[149.65253906250004,-6.290429687499966],[149.38232421874997,-6.078125],[149.0990234375,-6.116992187499989],[148.33720703125007,-5.669433593750014],[148.43203125,-5.471777343749991],[149.35888671875003,-5.583984375000014],[149.8314453125,-5.524121093749997],[149.96279296875,-5.447753906249972],[150.0900390625001,-5.011816406249977],[150.1703125,-5.070605468749974],[150.0724609375001,-5.309570312499986],[150.18310546874997,-5.523632812499983],[150.90029296875005,-5.447167968750037],[151.32656250000005,-4.96035156249998],[151.67119140625007,-4.88330078125],[151.59306640625007,-4.200781249999949],[151.915625,-4.296777343749966]]],[[[152.67060546875004,-3.13339843750002],[152.64619140625004,-3.221191406249957],[152.54326171875002,-3.095605468749952],[152.63876953125012,-3.042773437500031],[152.67060546875004,-3.13339843750002]]],[[[140.97617187500012,-9.11875],[140.97519531250006,-6.90537109375002],[140.86230468749997,-6.740039062499989],[140.975,-6.346093750000023],[140.97353515625,-2.803417968750026],[140.97343750000007,-2.609765625],[142.90517578125,-3.32070312499998],[143.50898437500004,-3.431152343750014],[144.06640625000003,-3.80517578125],[144.4777343750001,-3.82529296875002],[145.08779296875,-4.349121093749972],[145.33457031250012,-4.385253906249972],[145.7669921875,-4.823046874999989],[145.74521484375012,-5.402441406249977],[147.56669921875002,-6.056933593750003],[147.80205078125002,-6.31523437499996],[147.84550781250007,-6.662402343749989],[147.11914062499997,-6.721679687499986],[146.95361328124997,-6.834082031249963],[147.19003906250012,-7.378125],[148.12675781250007,-8.103613281249963],[148.246875,-8.554296875000034],[148.45117187499997,-8.694531250000011],[148.58310546875006,-9.051757812499957],[149.19833984375006,-9.03125],[149.26318359374997,-9.497851562499974],[150.01103515625007,-9.688183593750026],[149.76123046874997,-9.805859375000011],[149.87441406250005,-10.012988281250031],[150.84951171875,-10.236035156249997],[150.44609375000007,-10.30732421875004],[150.6471679687501,-10.517968749999966],[150.31992187500012,-10.654882812499963],[150.0167968750001,-10.577148437500028],[149.75410156250004,-10.353027343750028],[147.76865234375012,-10.070117187500031],[147.01718750000006,-9.38789062500004],[146.96376953125,-9.059570312499943],[146.63085937499997,-8.951171874999972],[146.03320312499997,-8.076367187500011],[144.97382812500004,-7.802148437500009],[144.86425781249997,-7.631542968749983],[144.50986328125006,-7.567382812499972],[144.14287109375007,-7.757226562500009],[143.65488281250012,-7.460351562500009],[143.94228515625005,-7.944238281250009],[143.8333984375,-8.029101562499974],[143.51816406250006,-8.000683593749955],[143.61376953125003,-8.200390624999969],[142.52412109375004,-8.32167968749998],[142.34746093750002,-8.167480468750014],[142.20683593750002,-8.195800781250014],[142.47480468750004,-8.369433593750031],[142.79794921875006,-8.345019531250031],[143.11181640624997,-8.474511718750037],[143.37724609375007,-8.762207031250028],[143.36621093750003,-8.961035156250034],[142.6471679687501,-9.327832031249969],[142.22958984375012,-9.169921874999957],[141.13320312500005,-9.221289062500034],[140.97617187500012,-9.11875]]],[[[152.96582031249997,-4.756347656249986],[152.89169921875006,-4.832421875000023],[152.73994140625004,-4.635839843750034],[152.66816406250004,-4.131835937500028],[152.27939453125006,-3.582421875],[151.06679687500005,-2.829003906249994],[150.74609374999997,-2.73886718750002],[150.8253906250001,-2.572949218749969],[152.03291015625004,-3.25136718749998],[153.01679687500004,-4.105664062500026],[153.1325195312501,-4.352441406250037],[152.96582031249997,-4.756347656249986]]],[[[150.43662109375012,-2.66181640625004],[150.16572265625004,-2.660253906249991],[149.96162109375004,-2.473828125000026],[150.22714843750006,-2.384179687499966],[150.42949218750007,-2.47041015625004],[150.43662109375012,-2.66181640625004]]],[[[147.06757812500004,-1.96015625],[147.43808593750012,-2.05898437499998],[147.20634765625007,-2.181933593749974],[146.54648437500012,-2.20859375],[146.65625,-1.97402343749998],[147.06757812500004,-1.96015625]]],[[[149.76542968750007,-1.553027343750017],[149.54589843749997,-1.471679687499957],[149.58095703125005,-1.353222656249983],[149.76542968750007,-1.553027343750017]]]]},"properties":{"name":"Papua New Guinea","childNum":21}},{"geometry":{"type":"Polygon","coordinates":[[[23.484667968750017,53.939794921875],[23.915429687500023,52.770263671875],[23.175097656250017,52.28662109375],[23.652441406250006,52.040380859375],[23.605273437500017,51.517919921875],[23.664453125000023,51.31005859375],[24.095800781250006,50.87275390625],[23.9970703125,50.809375],[24.089941406250006,50.53046875],[23.97265625,50.410058593749994],[23.711718750000017,50.37734375],[23.03632812500001,49.899072265624994],[22.706152343750006,49.606201171875],[22.6494140625,49.539013671875],[22.66064453125,49.483691406249996],[22.71992187500001,49.353808593749996],[22.732421875,49.295166015625],[22.705664062500006,49.171191406249996],[22.847070312500023,49.08125],[22.538671875,49.072705078125],[22.473046875000023,49.081298828125],[22.020117187500006,49.209521484374996],[21.6396484375,49.411962890625],[21.079394531250017,49.418261718749996],[20.868457031250017,49.314697265625],[20.36298828125001,49.38525390625],[20.0576171875,49.181298828124994],[19.756640625000017,49.204394531249996],[19.77392578125,49.37216796875],[19.44160156250001,49.597705078124996],[19.1494140625,49.4],[18.83222656250001,49.510791015624996],[18.562402343750023,49.879345703125],[18.0283203125,50.03525390625],[17.874804687500017,49.972265625],[17.627050781250006,50.11640625],[17.702246093750006,50.307177734374996],[17.41523437500001,50.254785156249994],[16.88007812500001,50.427050781249996],[16.989648437500023,50.2369140625],[16.63916015625,50.1021484375],[16.210351562500023,50.423730468749994],[16.419726562500017,50.573632812499994],[16.2822265625,50.655615234375],[16.007226562500023,50.611621093749996],[14.99375,51.01435546875],[14.98291015625,50.886572265625],[14.895800781250017,50.861376953124996],[14.809375,50.858984375],[14.814257812500017,50.871630859374996],[14.91748046875,51.008740234375],[14.9638671875,51.095117187499994],[14.935546875,51.435351562499996],[14.905957031250011,51.463330078125],[14.724707031250006,51.523876953125],[14.7109375,51.544921875],[14.738671875000023,51.6271484375],[14.601660156250006,51.832373046875],[14.752539062500006,52.081835937499996],[14.679882812500011,52.25],[14.615625,52.277636718749996],[14.573925781250011,52.31416015625],[14.554589843750023,52.359667968749996],[14.569726562500023,52.431103515625],[14.619433593750017,52.528515625],[14.514062500000023,52.64560546875],[14.253710937500017,52.782519531249996],[14.128613281250011,52.878222656249996],[14.138867187500011,52.932861328125],[14.293164062500011,53.0267578125],[14.368554687500023,53.10556640625],[14.410937500000017,53.199023437499996],[14.412304687500011,53.216748046875],[14.41455078125,53.283496093749996],[14.258886718750006,53.729638671875],[14.58349609375,53.63935546875],[14.558398437500017,53.823193359375],[14.21142578125,53.950341796875],[16.186328125000017,54.290380859375],[16.55976562500001,54.55380859375],[18.32343750000001,54.838183593749996],[18.75927734375,54.6845703125],[18.43623046875001,54.7447265625],[18.83642578125,54.369580078125],[19.604394531250023,54.4591796875],[20.20820312500001,54.420751953125],[22.16845703125,54.35986328125],[22.731835937500023,54.35009765625],[22.766210937500006,54.356787109375],[22.82373046875,54.395800781249996],[22.893945312500023,54.39052734375],[22.97675781250001,54.366357421875],[23.015527343750023,54.34833984375],[23.04218750000001,54.30419921875],[23.0875,54.299462890625],[23.170312500000023,54.2814453125],[23.282324218750006,54.24033203125],[23.3701171875,54.200488281249996],[23.45361328125,54.14345703125],[23.484667968750017,53.939794921875]]]},"properties":{"name":"Poland","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-65.42558593749999,18.105615234374994],[-65.57221679687493,18.137304687499977],[-65.29487304687501,18.133349609375045],[-65.42558593749999,18.105615234374994]]],[[[-66.12939453125003,18.444921875000034],[-65.62880859375,18.381396484375045],[-65.62084960937497,18.242333984374966],[-65.97080078124995,17.974365234375],[-67.196875,17.994189453125045],[-67.2640625,18.364599609375006],[-67.15864257812501,18.499218749999983],[-66.12939453125003,18.444921875000034]]]]},"properties":{"name":"Puerto Rico","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[130.52695312500012,42.535400390625],[130.68730468750007,42.30253906249999],[130.2357421875,42.183203125000034],[129.75634765624997,41.712255859375006],[129.70869140625004,40.857324218749994],[129.34111328125002,40.72631835937506],[128.51123046874997,40.130224609375006],[127.56816406250002,39.78198242187503],[127.39453125000003,39.207910156249966],[127.78613281250003,39.084130859374966],[128.37460937500012,38.6234375],[128.03896484375,38.30854492187498],[127.09033203125003,38.28388671875001],[126.63388671875012,37.78183593750006],[126.36992187500007,37.87836914062501],[126.11669921875003,37.74291992187503],[125.76914062500006,37.98535156250003],[125.35781250000005,37.72480468749998],[125.31074218750004,37.843505859375],[124.98876953124997,37.93144531249999],[125.2067382812501,38.08154296875],[124.69091796874997,38.12919921875002],[125.06738281250003,38.556738281250006],[125.55449218750002,38.68623046875001],[125.16884765625,38.80551757812506],[125.40966796875003,39.28837890625002],[125.36083984375003,39.52661132812497],[124.77529296875,39.75805664062506],[124.63828125000006,39.61508789062506],[124.36210937500002,40.004052734374994],[124.8893554687501,40.459814453125006],[125.98906250000002,40.904638671875034],[126.74306640625,41.724853515625],[126.95478515625004,41.76948242187501],[127.17968750000003,41.531347656250006],[128.14941406249997,41.38774414062496],[128.28925781250004,41.60742187500006],[128.04521484375007,41.9875],[128.92343750000006,42.038232421874966],[129.3136718750001,42.41357421874997],[129.69785156250012,42.448144531249994],[129.89824218750002,42.998144531250034],[130.24033203125006,42.891796874999955],[130.24667968750012,42.744824218749955],[130.52695312500012,42.535400390625]]]},"properties":{"name":"Dem. Rep. Korea","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-17.190869140624926,32.86860351562498],[-16.693261718749966,32.75800781250001],[-17.018261718749926,32.66279296874998],[-17.226025390624983,32.76684570312503],[-17.190869140624926,32.86860351562498]]],[[[-25.64897460937499,37.840917968750006],[-25.18193359374996,37.837890625],[-25.19072265624999,37.764355468749955],[-25.73447265624992,37.76289062500001],[-25.845898437499983,37.89404296875],[-25.64897460937499,37.840917968750006]]],[[[-28.14726562499996,38.45268554687502],[-28.064794921875034,38.412744140624966],[-28.454492187500023,38.40864257812504],[-28.54882812499997,38.51855468750003],[-28.14726562499996,38.45268554687502]]],[[[-28.641308593749983,38.525],[-28.842041015625,38.5984375],[-28.69775390625,38.638476562500045],[-28.641308593749983,38.525]]],[[[-27.07524414062496,38.643457031249994],[-27.38593750000001,38.765820312499955],[-27.127001953125017,38.78984375],[-27.07524414062496,38.643457031249994]]],[[[-31.137109374999937,39.40693359375001],[-31.282958984375,39.39409179687496],[-31.260839843750034,39.49677734375001],[-31.137109374999937,39.40693359375001]]],[[[-7.406152343749937,37.17944335937497],[-7.834130859374994,37.005712890625034],[-8.597656249999943,37.12133789062506],[-8.997802734375028,37.03227539062502],[-8.814160156249983,37.43081054687502],[-8.881103515624943,38.44667968750005],[-8.668310546874949,38.42431640625003],[-8.798876953124989,38.518164062500034],[-9.213281249999937,38.44809570312498],[-9.250390624999966,38.65673828125003],[-9.021484374999943,38.746875],[-8.79160156249992,39.07817382812502],[-9.13579101562496,38.74277343749998],[-9.35673828124996,38.697900390624994],[-9.479736328124972,38.79877929687501],[-9.374755859374972,39.338281249999966],[-8.837841796874926,40.11567382812498],[-8.684619140624989,40.75253906250006],[-8.755419921874932,41.69838867187502],[-8.887597656249937,41.76459960937501],[-8.777148437500017,41.941064453124994],[-8.266064453124983,42.13740234375001],[-8.152490234374937,41.81196289062498],[-7.40361328124996,41.833691406249955],[-7.147119140625023,41.98115234374998],[-6.61826171874992,41.9423828125],[-6.542187499999955,41.672509765624994],[-6.2125,41.53203125],[-6.928466796874972,41.009130859375006],[-6.8101562499999,40.343115234375034],[-7.032617187499966,40.16791992187498],[-6.896093749999949,40.02182617187506],[-6.975390624999932,39.79838867187502],[-7.117675781249972,39.681689453125045],[-7.53569335937496,39.66157226562501],[-6.997949218749994,39.05644531250002],[-7.343017578124943,38.45742187500002],[-7.106396484374983,38.181005859375006],[-6.957568359374932,38.18789062499999],[-7.44394531249992,37.72827148437497],[-7.406152343749937,37.17944335937497]]]]},"properties":{"name":"Portugal","childNum":7,"cp":[-8.7440694,39.9251454]}},{"geometry":{"type":"Polygon","coordinates":[[[-58.15976562499999,-20.164648437500006],[-58.13779296874999,-20.2373046875],[-58.12460937499999,-20.29345703125],[-58.09150390625,-20.33320312500001],[-58.05844726562499,-20.38613281250001],[-58.025390625,-20.415820312500003],[-58.00224609374999,-20.465429687500006],[-57.97905273437499,-20.657324218750006],[-57.91513671874999,-20.69033203125001],[-57.830224609374994,-20.99794921875001],[-57.94267578124999,-21.79833984375],[-57.95590820312499,-22.109179687500003],[-56.77519531249999,-22.261328125],[-56.44780273437499,-22.076171875],[-56.39487304687499,-22.09267578125001],[-56.35185546874999,-22.17861328125001],[-56.246044921875,-22.2646484375],[-56.18984375,-22.28115234375001],[-55.99140625,-22.28115234375001],[-55.84916992187499,-22.3076171875],[-55.75327148437499,-22.41015625],[-55.74663085937499,-22.5126953125],[-55.61767578125,-22.671484375],[-55.53828125,-23.58095703125001],[-55.518457031249994,-23.627246093750003],[-55.458886718749994,-23.68671875000001],[-55.4423828125,-23.792578125],[-55.4423828125,-23.865332031250006],[-55.415917968749994,-23.95136718750001],[-55.36630859374999,-23.991015625],[-55.28691406249999,-24.004296875],[-55.1943359375,-24.01748046875001],[-55.08188476562499,-23.99765625],[-54.982666015625,-23.97451171875001],[-54.62548828125,-23.8125],[-54.44023437499999,-23.90175781250001],[-54.37080078125,-23.97119140625],[-54.24179687499999,-24.047265625],[-54.281005859375,-24.30605468750001],[-54.43623046875,-25.12128906250001],[-54.47314453125,-25.22021484375],[-54.610546875,-25.432714843750006],[-54.615869140624994,-25.57607421875001],[-54.63193359374999,-26.00576171875001],[-54.677734375,-26.30878906250001],[-54.934472656249994,-26.70253906250001],[-55.1359375,-26.93115234375],[-55.426660156249994,-27.00927734375],[-55.450634765625,-27.068359375],[-55.496728515624994,-27.115332031250006],[-55.564892578125,-27.15],[-55.59726562499999,-27.207617187500006],[-55.59379882812499,-27.2880859375],[-55.63291015624999,-27.35712890625001],[-55.71464843749999,-27.41484375],[-55.789990234375,-27.41640625],[-55.95146484374999,-27.32568359375],[-56.1640625,-27.32148437500001],[-56.437158203124994,-27.553808593750006],[-58.16826171874999,-27.2734375],[-58.60483398437499,-27.31435546875001],[-58.641748046874994,-27.19609375],[-58.618603515625,-27.132128906250003],[-58.222070312499994,-26.65],[-58.18149414062499,-26.307421875],[-57.943115234375,-26.05292968750001],[-57.563134765624994,-25.473730468750006],[-57.821679687499994,-25.13642578125001],[-59.187255859375,-24.562304687500003],[-59.892480468749994,-24.093554687500003],[-60.83984375,-23.85810546875001],[-61.084716796875,-23.65644531250001],[-61.79853515625,-23.18203125],[-62.21416015624999,-22.612402343750006],[-62.372509765625,-22.43916015625001],[-62.54155273437499,-22.349609375],[-62.6259765625,-22.29042968750001],[-62.62568359375,-22.261523437500003],[-62.65097656249999,-22.233691406250003],[-62.27666015624999,-21.066015625],[-62.276318359375,-20.5625],[-61.7568359375,-19.6453125],[-60.00737304687499,-19.29755859375001],[-59.09052734375,-19.286230468750006],[-58.18017578125,-19.81787109375],[-58.15976562499999,-20.164648437500006]]]},"properties":{"name":"Paraguay","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[34.34833984375004,31.292919921874955],[34.2453125000001,31.208300781250045],[34.2125,31.292285156250017],[34.198144531249994,31.322607421875063],[34.47734375000002,31.584863281250023],[34.52412109375004,31.541650390624994],[34.5255859375001,31.52563476562503],[34.34833984375004,31.292919921874955]]],[[[34.88046875,31.3681640625],[34.950976562500074,31.60229492187503],[35.20371093750006,31.75],[35.1271484375001,31.816748046875006],[35.05322265625003,31.83793945312496],[34.983007812500006,31.816796875000023],[34.9611328125001,31.823339843750006],[34.95380859375004,31.84125976562504],[34.98974609374997,31.913281249999955],[34.955957031249994,32.1609375],[35.01054687500002,32.33818359375002],[35.06503906250006,32.46044921875006],[35.19326171875005,32.53442382812503],[35.303808593750006,32.512939453125],[35.38671875000003,32.493017578125034],[35.402636718750074,32.45063476562501],[35.484375,32.40166015624999],[35.5514648437501,32.39550781250006],[35.57207031250002,32.237890625],[35.450585937499994,31.479296875000017],[34.88046875,31.3681640625]]]]},"properties":{"name":"Palestine","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-149.321533203125,-17.690039062499963],[-149.177685546875,-17.736621093750045],[-149.18178710937497,-17.86230468749997],[-149.34111328125,-17.732421874999986],[-149.57890624999993,-17.734960937499963],[-149.635009765625,-17.564257812500003],[-149.37919921874993,-17.522363281249994],[-149.321533203125,-17.690039062499963]]],[[[-143.44057617187497,-16.619726562499963],[-143.38618164062498,-16.668847656250023],[-143.55068359375002,-16.62109374999997],[-143.44057617187497,-16.619726562499963]]],[[[-139.02431640624997,-9.695214843750037],[-138.82734375,-9.74160156249998],[-139.13408203124996,-9.829492187500037],[-139.02431640624997,-9.695214843750037]]],[[[-140.075634765625,-9.425976562499983],[-140.14438476562498,-9.359375],[-140.07094726562497,-9.328125],[-140.075634765625,-9.425976562499983]]],[[[-140.07260742187503,-8.910449218750031],[-140.21743164062497,-8.929687499999957],[-140.24003906249993,-8.79755859375004],[-140.057666015625,-8.801464843750026],[-140.07260742187503,-8.910449218750031]]]]},"properties":{"name":"Fr. Polynesia","childNum":5}},{"geometry":{"type":"Polygon","coordinates":[[[51.26796875000002,24.607226562500003],[51.17802734375002,24.58671875],[51.093359375,24.564648437499997],[51.02275390625002,24.565234375],[50.96601562500001,24.573925781249997],[50.928320312500006,24.595117187499994],[50.85566406250001,24.679638671874997],[50.80439453125001,24.789257812499997],[50.8359375,24.850390625],[50.846777343750006,24.888574218749994],[50.75458984375001,25.39926757812499],[51.003125,25.9814453125],[51.262304687500006,26.153271484374997],[51.543066406250006,25.902392578125003],[51.4853515625,25.524707031250003],[51.60888671875,25.052880859374994],[51.42792968750001,24.668261718750003],[51.26796875000002,24.607226562500003]]]},"properties":{"name":"Qatar","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.2125,45.450439453125],[28.317675781250017,45.347119140625],[28.451269531250006,45.2921875],[28.78828125000001,45.240966796875],[28.78173828125,45.309863281249996],[28.894335937500017,45.289941406249994],[29.223535156250023,45.4029296875],[29.403710937500023,45.419677734375],[29.567675781250017,45.37080078125],[29.705859375000017,45.259912109374994],[29.557519531250023,44.843408203124994],[29.048242187500023,44.757568359375],[29.0953125,44.975048828125],[28.891503906250023,44.91865234375],[28.585351562500023,43.742236328124996],[28.221972656250017,43.772851562499994],[27.88427734375,43.987353515624996],[27.425390625,44.0205078125],[27.0869140625,44.167382812499994],[26.2158203125,44.007275390625],[25.4970703125,43.670800781249994],[22.919042968750006,43.83447265625],[22.868261718750006,43.947900390624994],[23.02851562500001,44.077978515625],[22.705078125,44.23779296875],[22.687890625000023,44.248291015625],[22.494531250000023,44.435449218749994],[22.554003906250017,44.540332031249996],[22.6201171875,44.562353515625],[22.70078125,44.555517578125],[22.734375,44.569921875],[22.72089843750001,44.605517578124996],[22.64208984375,44.6509765625],[22.49765625,44.70625],[22.350683593750006,44.676123046875],[22.200976562500017,44.560693359374994],[22.093066406250017,44.541943359375],[21.909277343750006,44.66611328125],[21.636132812500023,44.71044921875],[21.52314453125001,44.790087890624996],[21.36005859375001,44.82666015625],[21.35791015625,44.86181640625],[21.384375,44.870068359375],[21.442187500000017,44.873388671875],[21.519921875000023,44.880810546875],[21.532324218750006,44.900683593749996],[21.35703125,44.990771484374996],[21.465429687500006,45.171875],[21.431445312500017,45.192529296874994],[20.794042968750006,45.46787109375],[20.775,45.749804687499996],[20.760156250000023,45.758105468749996],[20.746875,45.748974609375],[20.727832031250017,45.73740234375],[20.709277343750017,45.735253906249994],[20.652734375000023,45.77939453125],[20.581152343750006,45.869482421875],[20.35859375000001,45.975488281249994],[20.241796875,46.10859375],[20.28095703125001,46.1330078125],[20.508105468750017,46.166943359375],[20.613671875000023,46.13349609375],[20.76025390625,46.246240234374994],[21.121679687500006,46.282421875],[21.99970703125001,47.505029296874994],[22.87666015625001,47.947265625],[23.054785156250006,48.00654296875],[23.139453125000017,48.08740234375],[23.20263671875,48.084521484374996],[23.408203125,47.989990234375],[23.628710937500017,47.995849609375],[24.578906250000017,47.931054687499994],[24.979101562500006,47.72412109375],[25.464257812500023,47.910791015624994],[25.689257812500017,47.932470703125],[25.90869140625,47.967578125],[26.162695312500006,47.992529296875],[26.236230468750023,48.064355468749994],[26.276953125,48.113232421875],[26.3056640625,48.203759765624994],[26.4423828125,48.22998046875],[26.618945312500017,48.25986328125],[26.980761718750017,48.155029296875],[27.614062500000017,47.34052734375],[28.07177734375,46.978417968749994],[28.23945312500001,46.6408203125],[28.07470703125,45.598974609375],[28.2125,45.450439453125]]]},"properties":{"name":"Romania","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[146.71396484375012,43.743798828124994],[146.62197265625,43.81298828125006],[146.88408203125002,43.82915039062496],[146.71396484375012,43.743798828124994]]],[[[146.20761718750006,44.49765625],[146.5677734375,44.44042968749997],[145.91406249999997,44.10371093750004],[145.58681640625,43.84511718750002],[145.5558593750001,43.66459960937502],[145.46171875000007,43.870898437500045],[146.20761718750006,44.49765625]]],[[[148.59951171875,45.317626953125],[147.91376953125004,44.99038085937502],[147.65781250000012,44.97714843749998],[146.89746093750003,44.404296875],[147.24658203124997,44.856054687500006],[147.88554687500007,45.22563476562499],[147.9240234375001,45.38330078125006],[148.05605468750005,45.26210937500005],[148.32421874999997,45.28242187500001],[148.8122070312501,45.510009765625],[148.83710937500004,45.36269531250002],[148.59951171875,45.317626953125]]],[[[149.68769531250004,45.64204101562501],[149.44707031250002,45.593359375000034],[149.9623046875,46.02192382812504],[150.553125,46.208544921875045],[149.68769531250004,45.64204101562501]]],[[[152.00205078125006,46.89716796874998],[151.72343750000007,46.82880859375001],[152.28886718750007,47.1421875],[152.00205078125006,46.89716796874998]]],[[[154.81044921875005,49.31201171875],[154.61093750000006,49.29404296874998],[154.82490234375004,49.64692382812501],[154.81044921875005,49.31201171875]]],[[[155.9210937500001,50.30219726562501],[155.39716796875004,50.04125976562497],[155.24306640625,50.09462890625002],[155.21835937500012,50.29785156250003],[155.68017578124997,50.400732421875034],[156.096875,50.771875],[155.9210937500001,50.30219726562501]]],[[[156.40507812500002,50.65761718750005],[156.16796874999997,50.73188476562498],[156.37646484374997,50.86210937499996],[156.4875,50.84296874999998],[156.40507812500002,50.65761718750005]]],[[[142.76103515625002,54.393945312499966],[143.32470703125003,52.96308593749998],[143.15556640625002,52.08374023437497],[143.29951171875004,51.632373046875045],[143.81601562500006,50.28261718750002],[144.71376953125,48.64028320312502],[144.04873046875,49.249169921874994],[143.73232421875,49.31201171875],[143.10498046875003,49.198828125000034],[142.57421874999997,48.07216796875002],[142.55693359375002,47.737890625000034],[143.21767578125005,46.79487304687504],[143.48564453125002,46.752050781250006],[143.58066406250012,46.360693359375034],[143.43164062500003,46.02866210937498],[143.28232421875006,46.55898437500002],[142.57802734375005,46.700781250000034],[142.07714843749997,45.91704101562499],[141.83037109375002,46.451074218749966],[142.03867187500012,47.140283203124966],[141.9640625000001,47.58745117187502],[142.18173828125012,48.01337890625001],[141.86630859375006,48.750097656250006],[142.1422851562501,49.56914062499999],[142.06601562500006,50.630468750000034],[142.20673828125004,51.22255859375002],[141.72236328125004,51.73632812499997],[141.66083984375004,52.27294921874997],[141.85556640625012,52.79350585937499],[141.82353515625007,53.33950195312502],[142.1419921875,53.49560546875003],[142.52617187500002,53.44746093749998],[142.70595703125,53.89570312499998],[142.33496093749997,54.28071289062501],[142.76103515625002,54.393945312499966]]],[[[137.17861328125005,55.100439453125034],[137.05527343750006,54.9267578125],[136.71464843750002,54.956152343750034],[137.17861328125005,55.100439453125034]]],[[[137.94052734375012,55.092626953125034],[138.20615234375012,55.03354492187498],[137.72148437500007,54.66323242187505],[137.46269531250002,54.873388671875034],[137.23291015624997,54.79057617187496],[137.5773437500001,55.19702148437497],[137.94052734375012,55.092626953125034]]],[[[21.235742187500023,55.26411132812498],[22.072363281250034,55.06367187499998],[22.56728515625005,55.05913085937496],[22.82470703125,54.87128906249998],[22.684472656250023,54.56293945312504],[22.679882812500068,54.493017578125006],[22.766210937499977,54.356787109375034],[22.168457031250057,54.35986328125006],[21.14052734375008,54.39179687499998],[19.604394531250023,54.45917968750004],[19.974511718750023,54.92119140625002],[20.520312500000017,54.994873046875],[20.89980468750008,55.286669921875045],[20.957812500000074,55.27890625000006],[20.594824218750006,54.982373046874955],[20.995898437500017,54.90268554687506],[21.18886718750008,54.93520507812502],[21.235742187500023,55.26411132812498]]],[[[166.65029296875005,54.83906249999998],[166.64511718750006,54.69409179687503],[165.75107421875006,55.294531250000034],[166.27578125000005,55.311962890624955],[166.24804687499997,55.16542968750002],[166.65029296875005,54.83906249999998]]],[[[150.58994140625006,59.01875],[150.47021484375003,59.05405273437498],[150.66621093750004,59.16015625000003],[150.58994140625006,59.01875]]],[[[163.63515625000005,58.603369140625006],[163.47138671875004,58.509375],[163.7609375000001,59.01503906250002],[164.57265625,59.22114257812501],[164.61572265624997,58.885595703125034],[163.63515625000005,58.603369140625006]]],[[[35.8161132812501,65.18208007812501],[35.77871093750005,64.97666015625],[35.52890625000006,65.15107421875001],[35.8161132812501,65.18208007812501]]],[[[70.02070312500004,66.502197265625],[69.65136718750003,66.56533203125],[69.50273437500002,66.75107421875],[70.07666015624997,66.69589843750003],[70.02070312500004,66.502197265625]]],[[[-179.79853515625,68.9404296875],[-178.873876953125,68.75410156249995],[-178.69262695312503,68.54599609375],[-178.09746093750002,68.4248046875],[-178.05581054687497,68.26489257812503],[-177.79677734374997,68.33798828125],[-178.37304687500003,68.56567382812503],[-177.52724609375002,68.29438476562501],[-177.58920898437503,68.22421875],[-175.34521484375,67.67807617187503],[-175.37470703124998,67.35737304687498],[-175.00268554687494,67.4375],[-174.849853515625,67.34887695312503],[-174.92490234375,66.62314453125006],[-174.503759765625,66.537939453125],[-174.39409179687496,66.34423828124997],[-174.084765625,66.47309570312504],[-174.06503906249998,66.22958984374998],[-173.77397460937502,66.43466796875003],[-174.23159179687497,66.63188476562505],[-174.08642578125,66.94287109375],[-174.55009765624993,67.090625],[-173.6796875,67.144775390625],[-173.15781249999998,67.06909179687503],[-173.32353515625,66.95483398437503],[-173.25893554687497,66.84008789062503],[-173.19301757812497,66.99360351562504],[-172.5201171875,66.952490234375],[-173.00751953125,67.06489257812498],[-171.79555664062502,66.93173828125003],[-170.50952148437503,66.34365234375005],[-170.604443359375,66.24892578125002],[-170.30122070312504,66.29404296874998],[-170.24394531250002,66.16928710937503],[-169.777880859375,66.14311523437505],[-169.83168945312497,65.99892578124997],[-170.54067382812497,65.86542968749995],[-170.66630859375,65.62153320312501],[-171.42153320312502,65.81035156250002],[-171.10585937500002,65.51103515625005],[-171.90712890625,65.495947265625],[-172.78330078124998,65.68105468749997],[-172.23281250000002,65.45571289062497],[-172.30927734375004,65.27563476562497],[-172.66191406249993,65.24853515625006],[-172.28603515625002,65.20571289062502],[-172.21318359375,65.04814453124999],[-173.08579101562498,64.81733398437495],[-172.80107421874996,64.79052734375],[-172.90087890624994,64.62885742187501],[-172.40146484374998,64.413916015625],[-172.73916015624997,64.41225585937502],[-172.90317382812498,64.52607421875004],[-172.96005859375003,64.32768554687502],[-173.27548828124998,64.2896484375],[-173.327490234375,64.53955078125003],[-173.72973632812497,64.36450195312497],[-174.57055664062503,64.7177734375],[-175.39511718749998,64.80239257812502],[-175.85385742187498,65.01083984375003],[-176.09326171875,65.471044921875],[-177.05625,65.613623046875],[-177.48876953125,65.50371093749999],[-178.4125,65.49555664062501],[-178.93906249999998,66.03276367187505],[-178.74672851562497,66.01367187500006],[-178.52656250000004,66.40156250000004],[-178.86811523437498,66.18706054687502],[-179.14340820312503,66.37504882812505],[-179.327197265625,66.16259765625003],[-179.68330078124998,66.18413085937505],[-179.78969726562497,65.90087890625],[-179.352099609375,65.51674804687497],[-180,65.06723632812498],[-180,65.31196289062501],[-180,65.55678710937497],[-180,65.80156250000002],[-180,66.04628906250002],[-180,66.29106445312499],[-180,66.53583984375004],[-180,66.78056640625005],[-180,67.02534179687501],[-180,67.27011718750006],[-180,67.51484374999998],[-180,67.75961914062503],[-180,68.00439453124997],[-180,68.24912109375],[-180,68.49389648437497],[-180,68.738671875],[-179.999951171875,68.98344726562505],[-179.79853515625,68.9404296875]]],[[[50.265234375,69.18559570312502],[49.62626953125002,68.85971679687498],[48.91035156250004,68.74306640625002],[48.4390625,68.80488281249998],[48.319921875,69.26923828125001],[48.8449218750001,69.49472656250003],[49.22519531250006,69.51123046875],[50.265234375,69.18559570312502]]],[[[161.46708984375002,68.90097656250003],[161.08281250000007,69.4056640625],[161.50517578125007,69.63945312500002],[161.46708984375002,68.90097656250003]]],[[[169.20078125000006,69.58046875],[168.34804687500005,69.66435546875005],[167.86474609375003,69.90107421875004],[168.35791015625003,70.01567382812502],[169.37480468750007,69.88261718749999],[169.20078125000006,69.58046875]]],[[[60.450488281250074,69.93486328124999],[60.44023437500002,69.72592773437506],[59.637011718750074,69.72104492187503],[59.50263671875004,69.86621093750003],[58.952734375,69.89277343750004],[58.51992187500005,70.31831054687504],[59.04804687500004,70.46049804687505],[60.450488281250074,69.93486328124999]]],[[[52.90332031250003,71.36499023437503],[53.19257812500004,71.21528320312498],[53.0226562500001,70.96870117187501],[52.24960937500006,71.28491210937506],[52.90332031250003,71.36499023437503]]],[[[178.8615234375001,70.826416015625],[178.68388671875013,71.10566406250004],[180,71.53774414062505],[180,70.993017578125],[178.8615234375001,70.826416015625]]],[[[137.95986328125005,71.50766601562503],[137.71181640625005,71.4232421875],[137.06406250000006,71.52988281250003],[137.816796875,71.58789062500006],[137.95986328125005,71.50766601562503]]],[[[-178.87646484375,71.57705078124997],[-178.13388671874998,71.46547851562497],[-177.523583984375,71.16689453125],[-179.415673828125,70.91899414062502],[-179.999951171875,70.993017578125],[-179.999951171875,71.53774414062505],[-178.87646484375,71.57705078124997]]],[[[77.6325195312501,72.291259765625],[76.87109374999997,72.317041015625],[77.74853515625003,72.63120117187506],[78.36513671875005,72.48242187500003],[77.6325195312501,72.291259765625]]],[[[79.50146484374997,72.72192382812497],[78.63320312500005,72.85073242187502],[79.16425781250004,73.0943359375],[79.50146484374997,72.72192382812497]]],[[[74.660546875,72.87343750000002],[74.18066406250003,72.975341796875],[74.19853515625002,73.10908203124998],[74.9615234375,73.0625],[74.660546875,72.87343750000002]]],[[[120.26132812500012,73.08984374999997],[119.79208984375006,73.04541015624997],[119.64042968750002,73.12431640625007],[120.26132812500012,73.08984374999997]]],[[[55.31982421875003,73.30830078124998],[56.42958984375005,73.201171875],[56.121679687500006,72.80659179687498],[55.40332031249997,72.54907226562503],[55.29785156249997,71.93535156250005],[56.45439453125002,71.10737304687504],[57.62539062500005,70.72880859374999],[57.14589843750005,70.58911132812506],[56.38574218749997,70.73413085937503],[56.49970703125004,70.56640625000003],[55.687304687500074,70.69218749999999],[54.60117187500006,70.68007812500002],[53.383593750000074,70.87353515625],[53.670507812500006,71.08691406250003],[54.155664062499994,71.12548828125],[53.40996093750002,71.34013671875002],[53.41162109375003,71.530126953125],[51.93789062500005,71.47470703124998],[51.511328125,71.64809570312497],[51.58251953124997,72.07119140625],[52.252050781250006,72.12973632812503],[52.66191406250002,72.33686523437495],[52.91660156250006,72.66889648437501],[52.5792968750001,72.791357421875],[53.3698242187501,72.91674804687506],[53.2511718750001,73.182958984375],[54.80390625000004,73.38764648437498],[55.31982421875003,73.30830078124998]]],[[[70.67392578125006,73.09501953125005],[70.04072265625004,73.03715820312507],[69.99589843750002,73.359375],[70.94023437500002,73.51440429687503],[71.6261718750001,73.17397460937497],[70.67392578125006,73.09501953125005]]],[[[142.18486328125007,73.89589843750005],[143.34375,73.56875],[143.45146484375007,73.231298828125],[141.59667968750003,73.31083984375005],[140.66279296875004,73.45200195312503],[139.785546875,73.35522460937503],[141.08476562500002,73.86586914062497],[142.18486328125007,73.89589843750005]]],[[[83.5490234375001,74.07177734375],[82.8177734375,74.09160156250005],[83.14980468750005,74.151611328125],[83.5490234375001,74.07177734375]]],[[[141.01025390625003,73.99946289062501],[140.40947265625002,73.92167968750005],[140.1935546875001,74.23671875000002],[141.03857421875003,74.24272460937502],[141.01025390625003,73.99946289062501]]],[[[113.38720703124997,74.40043945312499],[112.78242187500004,74.09506835937503],[111.50341796874997,74.35307617187502],[111.87978515625,74.36381835937499],[112.08447265624997,74.54897460937505],[113.38720703124997,74.40043945312499]]],[[[86.653125,74.981298828125],[87.05214843750005,74.982568359375],[86.92714843750005,74.83076171874998],[86.25859375000002,74.89350585937498],[86.653125,74.981298828125]]],[[[82.17236328125003,75.41938476562501],[81.97851562499997,75.24711914062499],[81.65478515625003,75.28891601562498],[81.71210937500004,75.45141601562506],[82.165625,75.515625],[82.17236328125003,75.41938476562501]]],[[[146.79521484375007,75.37075195312505],[148.43242187500002,75.41352539062495],[148.59013671875007,75.23637695312502],[150.82236328125006,75.15654296875002],[150.64628906250002,74.944580078125],[149.596875,74.77260742187505],[148.296875,74.80043945312502],[146.14853515625012,75.19829101562499],[146.5375,75.58178710937506],[146.79521484375007,75.37075195312505]]],[[[135.9486328125,75.40957031250005],[135.45195312500007,75.38955078124997],[135.6986328125,75.84526367187499],[136.16894531249997,75.60556640625],[135.9486328125,75.40957031250005]]],[[[140.04873046875,75.82895507812503],[140.81591796874997,75.63071289062498],[141.48544921875012,76.13715820312495],[142.66953125000012,75.86342773437497],[143.68583984375002,75.86367187500002],[145.35996093750006,75.53046874999998],[144.01972656250004,75.04467773437506],[143.1703125,75.11689453125001],[142.72949218749997,75.33764648437506],[142.941796875,75.71328125000002],[142.30791015625007,75.69169921875005],[142.19882812500006,75.39267578124998],[143.12792968749997,74.9703125],[142.47275390625006,74.82041015625],[141.98730468750003,74.99125976562499],[140.26787109375002,74.846923828125],[139.68125,74.96406249999995],[139.09912109374997,74.65654296875002],[138.09228515625003,74.79746093750003],[136.94765625000005,75.32553710937498],[137.28974609375004,75.34863281249997],[137.26884765625002,75.7494140625],[137.70654296875003,75.75957031250002],[137.56054687499997,75.95522460937502],[138.20761718750006,76.11494140624995],[138.91953125000006,76.19672851562501],[140.04873046875,75.82895507812503]]],[[[96.5324218750001,76.278125],[96.30058593750002,76.121728515625],[95.31113281250006,76.21474609375002],[95.37988281250003,76.2890625],[96.5324218750001,76.278125]]],[[[112.47802734375003,76.62089843749999],[112.531640625,76.450048828125],[111.96894531250004,76.62617187500001],[112.47802734375003,76.62089843749999]]],[[[149.15019531250002,76.65991210937506],[148.39863281250004,76.64824218750007],[149.4064453125001,76.78208007812498],[149.15019531250002,76.65991210937506]]],[[[67.7653320312501,76.23759765624999],[61.35595703124997,75.31484375000002],[60.27685546875003,75.00756835937503],[60.501367187499994,74.90463867187503],[59.67402343750004,74.61015624999999],[59.24013671875005,74.69296874999998],[59.040429687499994,74.48554687500001],[58.53466796875003,74.49892578124997],[58.6178710937501,74.22739257812498],[57.76738281250002,74.013818359375],[57.755957031250006,73.769189453125],[57.313085937500006,73.838037109375],[57.54257812500006,73.65820312500003],[56.96386718750003,73.36655273437503],[56.43037109375004,73.29721679687503],[55.00683593750003,73.45385742187506],[54.29990234375006,73.35097656249997],[53.7628906250001,73.76616210937499],[54.64267578125006,73.95957031250006],[55.34091796875006,74.41962890624998],[56.13710937500005,74.49609375000003],[55.5822265625001,74.627685546875],[56.4987304687501,74.95708007812505],[55.81005859374997,75.12490234374997],[56.03554687499999,75.19423828124997],[56.57031250000003,75.09775390625003],[56.8444335937501,75.351416015625],[57.606835937499994,75.34125976562498],[58.05830078125004,75.6630859375],[58.88125,75.85478515625007],[60.27929687499997,76.09624023437505],[60.94218750000002,76.07128906250003],[61.20166015624997,76.28203125000007],[62.97148437500002,76.23666992187498],[64.4634765625,76.37817382812503],[67.65185546874997,77.011572265625],[68.48574218750005,76.93369140625003],[68.94169921875002,76.707666015625],[67.7653320312501,76.23759765624999]]],[[[96.28544921875002,77.02666015625007],[95.27031250000007,77.01884765624999],[96.52841796875006,77.20551757812501],[96.28544921875002,77.02666015625007]]],[[[89.51425781250006,77.18881835937498],[89.14169921875012,77.22680664062497],[89.61621093749997,77.31103515625],[89.51425781250006,77.18881835937498]]],[[[130.68730468750007,42.30253906249999],[130.52695312500012,42.535400390625],[130.42480468749997,42.72705078124997],[131.06855468750004,42.90224609375005],[131.25732421875003,43.378076171874994],[131.2552734375,44.07158203124999],[130.9816406250001,44.844335937500034],[131.44687500000012,44.984033203124966],[131.85185546875002,45.32685546875001],[132.93603515624997,45.029931640624994],[133.1134765625001,45.130712890625006],[133.18603515625003,45.49482421875004],[133.43642578125,45.60468750000004],[133.86132812500003,46.24775390625004],[134.1676757812501,47.30219726562501],[134.75234375,47.71542968749998],[134.56601562500006,48.02250976562502],[134.66523437500004,48.25390625],[134.29335937500005,48.37343750000002],[133.46835937500006,48.09716796875003],[133.14404296875003,48.10566406249998],[132.7072265625001,47.94726562500006],[132.47626953125004,47.714990234374994],[130.96191406249997,47.70932617187498],[130.7326171875001,48.01923828124998],[130.80429687500012,48.34150390624998],[130.5521484375,48.602490234374955],[130.553125,48.861181640625006],[130.1959960937501,48.89165039062499],[129.49814453125012,49.38881835937502],[129.0651367187501,49.374658203124966],[128.70400390625,49.60014648437499],[127.99960937500006,49.56860351562506],[127.55078124999997,49.801806640625045],[127.590234375,50.20898437500003],[127.33720703125007,50.35014648437502],[127.30703125000005,50.70795898437501],[126.92480468749997,51.10014648437496],[126.34169921875,52.36201171875001],[125.64902343750012,53.042285156250045],[125.075,53.20366210937496],[124.81230468750002,53.133837890625045],[123.6078125,53.546533203124994],[120.98544921875012,53.28457031250002],[120.09453125000007,52.787207031250034],[120.0675781250001,52.632910156250034],[120.65615234375,52.56665039062503],[120.74980468750007,52.096533203125006],[120.06689453125003,51.60068359375006],[119.16367187500006,50.40600585937503],[119.34628906250012,50.278955078124994],[119.25986328125012,50.06640625000003],[118.4515625,49.84448242187503],[117.8734375,49.51347656250002],[116.6833007812501,49.82377929687499],[116.551171875,49.92031250000002],[116.35117187500012,49.97807617187499],[116.21679687500003,50.00927734375003],[116.13457031250002,50.01079101562499],[115.9259765625001,49.95214843750003],[115.79521484375002,49.90590820312502],[115.71777343750003,49.88061523437503],[115.58798828125006,49.88603515624996],[115.42919921874997,49.89648437499997],[115.36503906250002,49.911767578124966],[115.27451171875006,49.948876953124994],[115.00332031250005,50.138574218749994],[114.74316406249997,50.23369140625002],[114.29707031250004,50.27441406250006],[113.57421874999997,50.00703125000001],[113.44550781250004,49.94160156250001],[113.31904296875004,49.87431640624999],[113.16416015625012,49.79716796874999],[113.09208984375007,49.692529296874994],[113.05556640625,49.61625976562499],[112.91484375000002,49.569238281249994],[112.80644531250007,49.52358398437502],[112.69736328125012,49.50727539062498],[112.49492187500002,49.532324218750034],[112.07968750000006,49.42421875000002],[111.42929687500006,49.342626953125034],[111.3366210937501,49.355859374999966],[111.20419921875012,49.304296875000034],[110.82792968750002,49.16616210937505],[110.70976562500002,49.14296875000002],[110.42783203125006,49.219970703125],[110.32138671875012,49.215869140625045],[110.19990234375004,49.17041015625003],[109.5287109375,49.269873046875034],[109.45371093750012,49.29633789062501],[109.23671875000005,49.334912109374955],[108.61367187500005,49.32280273437499],[108.52246093750003,49.34150390624998],[108.4069335937501,49.39638671875005],[107.96542968750012,49.65351562500004],[107.91660156250012,49.947802734375045],[107.63095703125012,49.98310546875004],[107.3470703125,49.986669921875034],[107.23330078125,49.989404296874994],[107.14306640625003,50.03300781249999],[107.04023437500004,50.086474609375045],[106.94130859375005,50.19667968750002],[106.71113281250004,50.312597656250006],[106.57441406250004,50.32880859375004],[106.36845703125002,50.317578124999955],[106.21787109375006,50.304589843749966],[105.38359375000002,50.47373046874998],[104.07871093750012,50.15424804687498],[103.63291015625006,50.138574218749994],[103.49628906250004,50.16494140625005],[103.42119140625002,50.18706054687502],[103.3043945312501,50.200292968750034],[102.28837890625007,50.58510742187502],[102.31660156250004,50.71845703125001],[102.21503906250004,50.82944335937506],[102.19453125000004,51.05068359375002],[102.15195312500006,51.107519531250034],[102.14238281250007,51.21606445312503],[102.16005859375005,51.260839843750006],[102.1556640625,51.31376953124996],[102.1115234375001,51.353466796874955],[101.97919921875004,51.382226562499966],[101.82119140625,51.421044921874966],[101.57089843750006,51.46718750000005],[101.38125,51.45263671875],[100.53623046875006,51.713476562500034],[100.46894531250004,51.72607421875003],[100.23037109375,51.729833984375006],[100.0345703125,51.73710937499996],[99.92167968750002,51.755517578124994],[99.71923828124997,51.87163085937502],[98.89316406250006,52.11728515625006],[98.64052734375005,51.80117187500005],[98.103125,51.483544921874994],[97.82529296875012,50.985253906249994],[97.953125,50.85517578124998],[98.02978515625003,50.64462890624998],[98.07890625000002,50.60380859375002],[98.14501953124997,50.56855468750001],[98.22050781250007,50.55717773437502],[98.2794921875001,50.53325195312502],[98.25029296875002,50.30244140624998],[98.00390625000003,50.01425781249998],[97.35976562500005,49.741455078125],[97.20859375000006,49.73081054687506],[96.98574218750005,49.88281250000003],[96.31503906250012,49.90112304687503],[96.06552734375006,49.99873046875001],[95.52265625000004,49.911230468750034],[95.11142578125012,49.935449218749994],[94.93027343750006,50.04375],[94.8112304687501,50.04819335937506],[94.71806640625002,50.04326171875002],[94.67548828125004,50.02807617187506],[94.61474609375003,50.02373046874996],[94.56464843750004,50.08793945312499],[94.35468750000004,50.221826171874994],[94.25107421875006,50.55639648437503],[93.103125,50.60390625000002],[92.94130859375005,50.77822265625002],[92.85644531250003,50.78911132812502],[92.77929687500003,50.778662109375006],[92.738671875,50.71093749999997],[92.68134765625004,50.683203125],[92.6266601562501,50.68828124999999],[92.57890625000002,50.725439453125006],[92.42636718750006,50.803076171875006],[92.35478515625002,50.86416015625002],[92.29580078125,50.84980468750004],[92.19238281249997,50.700585937499994],[91.80429687500006,50.693603515625],[91.4464843750001,50.52216796874998],[91.41503906249997,50.46801757812506],[91.34082031249997,50.470068359375034],[91.30058593750002,50.46337890625],[91.2337890625,50.45239257812497],[91.02158203125012,50.41547851562501],[90.83808593750004,50.32373046874997],[90.76074218749997,50.30595703124999],[90.71435546874997,50.25942382812502],[90.65507812500007,50.22236328125001],[90.05371093750003,50.09375],[89.64384765625002,49.90302734374998],[89.65410156250007,49.71748046875001],[89.57919921875006,49.69970703125003],[89.475,49.66054687500005],[89.39560546875006,49.61152343750001],[89.24394531250007,49.62705078125006],[89.20292968750007,49.59570312499997],[89.17998046875002,49.5322265625],[89.10947265625012,49.50136718750002],[89.00839843750006,49.472802734374994],[88.97060546875,49.483740234375006],[88.94541015625012,49.50766601562498],[88.90019531250002,49.53969726562502],[88.86386718750006,49.52763671874996],[88.83164062500012,49.44843749999998],[88.633203125,49.486132812500045],[88.19257812500004,49.451708984375045],[88.13554687500002,49.38149414062502],[88.11572265624997,49.25629882812501],[88.0285156250001,49.219775390625045],[87.98808593750002,49.186914062499994],[87.9347656250001,49.16455078124997],[87.81425781250002,49.162304687499955],[87.7625,49.16582031249996],[87.5158203125001,49.122412109375006],[87.41669921875004,49.07661132812501],[87.32285156250012,49.085791015625006],[86.62646484374997,49.56269531250001],[86.67548828125004,49.77729492187501],[86.1808593750001,49.49931640624996],[85.2326171875001,49.61582031249998],[84.9894531250001,50.061425781249994],[84.32324218749997,50.239160156249966],[83.94511718750007,50.774658203125],[83.35732421875005,50.99458007812504],[82.76083984375012,50.89335937500002],[82.49394531250007,50.72758789062499],[81.46591796875006,50.73984375],[81.38828125000006,50.95649414062501],[81.0714843750001,50.96875],[81.12724609375002,51.19106445312502],[80.73525390625,51.29340820312498],[80.44804687500002,51.18334960937503],[80.42363281250002,50.94628906249997],[79.98623046875,50.774560546874966],[77.85996093750006,53.269189453124994],[76.48476562500005,54.02255859374998],[76.42167968750007,54.151513671874966],[76.65458984375007,54.14526367187503],[76.8373046875,54.4423828125],[75.43720703125004,54.08964843749999],[75.22021484374997,53.89379882812506],[74.45195312500007,53.64726562500002],[74.35156250000003,53.487646484375006],[73.85898437500006,53.61972656249998],[73.40693359375004,53.44755859374999],[73.30566406250003,53.707226562499955],[73.71240234375003,54.04238281250002],[73.22988281250005,53.957812500000045],[72.62226562500004,54.13432617187502],[72.44677734375003,53.94184570312498],[72.18603515625003,54.32563476562501],[72.00449218750006,54.20566406249998],[71.09316406250005,54.21220703124999],[71.18554687500003,54.59931640624998],[70.73808593750007,55.30517578125],[70.18242187500002,55.162451171875034],[68.9772460937501,55.389599609374955],[68.20625,55.16093750000002],[68.15585937500006,54.97670898437505],[65.476953125,54.62329101562497],[65.08837890624997,54.340185546875034],[64.46123046875002,54.38417968750002],[61.92871093750003,53.94648437500004],[61.231054687500006,54.01948242187498],[60.97949218749997,53.62172851562505],[61.53496093750002,53.52329101562506],[61.22890625,53.445898437500006],[61.19921874999997,53.28715820312502],[61.65986328125004,53.22846679687504],[62.08271484375004,53.00541992187499],[61.047460937500006,52.97246093750002],[60.77441406249997,52.67578124999997],[60.99453125000005,52.33686523437504],[60.03027343749997,51.93325195312505],[60.464746093749994,51.651171875000045],[61.55468750000003,51.32460937500005],[61.38945312500002,50.86103515625001],[60.94228515625005,50.69550781250004],[60.42480468749997,50.67915039062498],[60.05859374999997,50.850292968749955],[59.812402343749994,50.58203125],[59.523046875,50.492871093749955],[59.4523437500001,50.62041015625002],[58.88369140625005,50.694433593750006],[58.359179687500074,51.063818359375034],[57.83886718750003,51.091650390625006],[57.44218750000002,50.88886718749998],[57.01171874999997,51.06518554687503],[56.49140625000004,51.01953124999997],[55.68623046875004,50.582861328125006],[54.64160156250003,51.011572265625034],[54.555273437500006,50.535791015624994],[54.139746093750006,51.04077148437503],[53.33808593750004,51.48237304687504],[52.57119140625005,51.481640624999955],[52.21914062499999,51.709375],[51.344531250000074,51.47534179687503],[51.16347656250005,51.6474609375],[50.79394531249997,51.729199218749955],[50.246875,51.28950195312498],[49.49804687500003,51.08359375000006],[49.32343750000004,50.851708984374966],[48.625097656250006,50.61269531250005],[48.7589843750001,49.92832031250006],[48.33496093750003,49.858251953125006],[47.7057617187501,50.37797851562502],[47.42919921874997,50.35795898437502],[46.889550781249994,49.69697265625001],[46.80205078125002,49.36708984375002],[47.031347656250006,49.150292968749994],[46.70263671875003,48.80556640625002],[46.660937500000074,48.41225585937502],[47.06464843750004,48.23247070312499],[47.292382812499994,47.74091796875004],[47.48193359374997,47.80390624999998],[48.16699218750003,47.70878906249996],[48.959375,46.77460937499998],[48.558398437500074,46.75712890624999],[48.54121093750004,46.60561523437502],[49.232226562500074,46.33715820312503],[48.683691406250006,46.08618164062497],[48.72958984375006,45.896826171875034],[48.4870117187501,45.93486328124996],[47.63330078124997,45.58403320312499],[47.46328125,45.67968750000003],[47.5294921875001,45.530224609374955],[47.3512695312501,45.21772460937498],[46.7072265625001,44.503320312499994],[47.30703125000005,44.103125],[47.462792968749994,43.55502929687498],[47.64648437500003,43.88461914062498],[47.463183593750074,43.03505859375002],[48.572851562500006,41.84448242187503],[47.79101562499997,41.19926757812502],[47.31767578125002,41.28242187500001],[46.74931640625002,41.812597656250006],[46.42988281250004,41.890966796875006],[46.21269531250002,41.989892578124994],[45.63857421875005,42.20507812500003],[45.63427734374997,42.234716796875034],[45.72753906249997,42.47504882812498],[45.70527343750004,42.49809570312496],[45.56289062499999,42.53574218749998],[45.34375,42.52978515625003],[45.16025390625006,42.675],[45.07158203125002,42.69414062500002],[44.94335937499997,42.73027343750002],[44.870996093749994,42.75639648437499],[44.850488281249994,42.746826171875],[44.77109375000006,42.61679687499998],[44.69179687499999,42.709619140624966],[44.64433593750002,42.734716796875034],[44.50585937500003,42.748632812500006],[44.329492187499994,42.703515624999966],[44.10273437500004,42.616357421874994],[44.004687500000074,42.59560546875002],[43.95742187500005,42.56655273437505],[43.825976562500074,42.571533203125],[43.759863281250006,42.593847656250006],[43.738378906250006,42.61699218750002],[43.74990234375005,42.65751953125002],[43.79541015624997,42.702978515625034],[43.78261718750005,42.747021484374955],[43.62304687500003,42.80771484374998],[43.5578125000001,42.844482421875],[43.089160156250074,42.9890625],[43.00019531250004,43.04965820312506],[42.991601562499994,43.09150390624998],[42.76064453125005,43.169580078124966],[41.58056640624997,43.21923828124997],[41.460742187500074,43.276318359374955],[41.35820312500002,43.33339843750005],[41.08310546875006,43.37446289062498],[40.94199218750006,43.41806640624998],[40.801660156249994,43.479931640624955],[40.64804687500006,43.53388671875004],[40.084570312500006,43.553125],[40.02373046875002,43.48486328125],[39.873632812500006,43.47280273437502],[38.71728515624997,44.28808593750003],[38.18125,44.41967773437503],[37.851464843749994,44.698828125000034],[37.49511718750003,44.69526367187504],[37.20478515625004,44.97197265624999],[36.62763671875004,45.15131835937504],[36.941210937500074,45.289697265624994],[36.72041015625004,45.371875],[36.8659179687501,45.42705078124999],[37.21357421875004,45.272314453125006],[37.6471679687501,45.37719726562506],[37.61240234375006,45.56469726562506],[37.93310546875003,46.001708984375],[38.014257812500006,46.047753906249966],[38.07958984375003,45.93481445312506],[38.18359374999997,46.09482421875006],[38.49228515625006,46.09052734374998],[37.913867187500074,46.40649414062503],[37.766503906249994,46.63613281250002],[38.50097656249997,46.663671875000034],[38.43867187500004,46.813085937500006],[39.29345703125003,47.105761718750045],[39.19570312499999,47.268847656250045],[39.023730468750074,47.27221679687503],[38.928320312500006,47.175683593749994],[38.55244140625004,47.15034179687498],[38.7619140625001,47.261621093749994],[38.21435546875003,47.091455078124966],[38.36884765625004,47.609960937500006],[38.90029296875005,47.85512695312502],[39.77871093750005,47.88754882812506],[39.95791015625005,48.268896484375034],[39.8356445312501,48.54277343749996],[39.6447265625001,48.591210937499966],[39.792871093749994,48.807714843750034],[40.00361328125004,48.82207031250002],[39.68652343749997,49.007910156250034],[40.10878906250005,49.251562500000034],[40.080664062500006,49.576855468749955],[39.780566406250074,49.57202148437503],[39.17480468750003,49.85595703124997],[38.91835937499999,49.82470703125],[38.258593750000074,50.05234375],[38.046875,49.92001953125006],[37.42285156249997,50.411474609375006],[36.619433593750074,50.209228515625],[36.1164062500001,50.408544921875006],[35.59111328125002,50.36875],[35.31191406250005,51.043896484374955],[35.0640625,51.203417968750045],[34.21386718750003,51.25537109375006],[34.12109375000003,51.67915039062498],[34.397851562499994,51.780419921874994],[33.735253906249994,52.344775390625045],[32.435449218749994,52.307226562500034],[32.12226562500004,52.05058593749996],[31.763378906250097,52.10107421875003],[31.758593750000017,52.125830078125034],[31.690625,52.22065429687498],[31.64990234374997,52.26220703125],[31.60156250000003,52.284814453124994],[31.57734375000004,52.31230468749999],[31.585546875,52.532470703125],[31.56484375,52.75922851562501],[31.53515624999997,52.798242187499966],[31.442773437499994,52.86181640625003],[31.35302734374997,52.93344726562498],[31.295117187500097,52.98979492187499],[31.25878906249997,53.01669921875006],[31.364550781250017,53.13896484375002],[31.388378906250097,53.18481445312503],[31.41787109375005,53.196044921875],[31.849707031250006,53.106201171875],[32.14199218750005,53.091162109375034],[32.46933593750006,53.270312500000045],[32.578027343749994,53.312402343749994],[32.644433593749994,53.32890624999999],[32.70429687500004,53.33632812499999],[32.45097656250002,53.6533203125],[32.20039062500004,53.78125],[31.99218750000003,53.796875],[31.82080078124997,53.79194335937498],[31.754199218750017,53.81044921875002],[31.825292968750006,53.93500976562501],[31.837792968749994,54.00078124999999],[31.825976562500074,54.030712890624955],[31.79199218749997,54.05590820312503],[31.62841796874997,54.111181640625006],[31.403613281250017,54.195947265624966],[31.299121093750017,54.29169921875001],[31.184765625000097,54.452978515625006],[31.074804687500063,54.491796875],[31.154882812500063,54.610937500000034],[31.152148437500017,54.625341796875034],[31.12128906250004,54.64848632812496],[30.984179687500074,54.695898437500034],[30.79882812499997,54.78325195312499],[30.79101562499997,54.806005859375006],[30.804492187500074,54.8609375],[30.829882812500017,54.91499023437498],[30.977734375000097,55.05048828124998],[30.977734375000097,55.08779296875002],[30.958886718749994,55.13759765625005],[30.87744140625003,55.223437500000045],[30.81445312499997,55.27871093750002],[30.81054687499997,55.306982421875006],[30.82099609375004,55.330273437499955],[30.900585937500097,55.397412109374955],[30.906835937500063,55.57001953125004],[30.625585937500006,55.666259765625],[30.23359375000004,55.84521484375006],[30.04267578125004,55.83642578125003],[29.93701171874997,55.84526367187499],[29.881640625000074,55.83232421875002],[29.82392578125004,55.79511718749998],[29.74414062499997,55.770410156249994],[29.630078125000097,55.75117187499998],[29.482226562500074,55.6845703125],[29.412988281249994,55.72485351562506],[29.35341796875005,55.784375],[29.375,55.938720703125],[28.284277343750006,56.055908203125],[28.14794921875003,56.142919921875034],[28.202050781250023,56.260400390624994],[28.191699218750045,56.31557617187505],[28.169238281250017,56.386865234374994],[28.11083984375,56.51069335937501],[28.103125,56.545703125000045],[27.89208984375003,56.741064453125034],[27.88154296875001,56.82416992187501],[27.848632812500057,56.85341796875002],[27.806054687499994,56.86708984375005],[27.639453125000074,56.84565429687504],[27.83027343750004,57.19448242187505],[27.83828125000008,57.247705078124966],[27.82861328124997,57.293310546875006],[27.796875,57.316943359375045],[27.538671875000063,57.429785156250034],[27.51113281250005,57.508154296875006],[27.469726562500057,57.524023437500034],[27.35195312500005,57.528125],[27.4,57.66679687499999],[27.542089843750063,57.799414062500006],[27.778515625000068,57.87070312500006],[27.502441406250057,58.221337890624994],[27.434179687500006,58.787255859374994],[28.15107421875004,59.374414062499966],[28.0125,59.484277343749966],[28.05800781250008,59.781542968750045],[28.334570312500034,59.69252929687502],[28.518164062500034,59.849560546874955],[28.947265625000057,59.828759765624994],[29.147265625000045,59.999755859375],[30.12255859374997,59.873583984375074],[30.172656250000017,59.957128906250034],[29.72119140624997,60.19531249999997],[29.069140625000017,60.19145507812499],[28.643164062500006,60.375292968750045],[28.512792968750006,60.67729492187502],[27.797656250000074,60.53613281250003],[29.69013671875004,61.54609375000001],[31.18671875000004,62.48139648437504],[31.533984375000017,62.885400390624994],[31.180859375000097,63.208300781250074],[29.991503906250074,63.73515625000002],[30.50390625000003,64.02060546875],[30.513769531250006,64.2],[30.04189453125005,64.44335937499997],[30.072851562500063,64.76503906250005],[29.60419921875004,64.968408203125],[29.826953125000017,65.14506835937502],[29.608007812500006,65.248681640625],[29.715917968750063,65.62456054687502],[30.102734375000097,65.72626953125004],[29.066210937500045,66.89174804687497],[29.988085937500017,67.66826171874999],[29.343847656250006,68.06186523437506],[28.685156250000034,68.189794921875],[28.470703125000057,68.48837890625],[28.77285156250005,68.84003906249995],[28.414062500000057,68.90415039062506],[28.96582031250003,69.02197265625],[29.38828125,69.29814453125005],[30.08730468750005,69.43286132812503],[30.18017578124997,69.63583984375],[30.860742187499994,69.53842773437503],[30.869726562500006,69.78344726562506],[31.546972656250063,69.696923828125],[31.997949218749994,69.80991210937503],[31.98457031250004,69.95366210937499],[33.00781249999997,69.72211914062498],[32.91503906249997,69.60170898437497],[32.17675781250003,69.67402343749995],[32.37773437500002,69.47910156250003],[32.99980468750002,69.4701171875],[32.97890625000005,69.367333984375],[33.45429687500004,69.42817382812495],[33.14121093750006,69.068701171875],[33.684375,69.31025390625001],[35.85791015625003,69.19174804687503],[37.73056640625006,68.69213867187503],[38.43017578125003,68.35561523437505],[39.568945312500006,68.07172851562501],[39.82333984375006,68.05859375],[39.80927734375004,68.15083007812498],[40.38066406250002,67.831884765625],[40.96640625000006,67.71347656250003],[41.358789062499994,67.20966796874998],[41.18896484375003,66.82617187500003],[40.10332031250002,66.29995117187502],[38.65390625000006,66.06904296874995],[35.51347656250002,66.39580078125002],[34.82460937499999,66.61113281249999],[34.48261718750004,66.55034179687505],[34.4515625,66.651220703125],[33.15019531250002,66.84394531250001],[32.93046875000002,67.08681640625002],[31.895312500000074,67.16142578125002],[33.65595703125004,66.44262695312506],[33.36054687500004,66.32954101562501],[34.112695312499994,66.225244140625],[34.69179687500005,65.95185546874998],[34.77695312500006,65.76826171874998],[34.40644531250004,65.39575195312503],[35.03535156250004,64.44023437500005],[35.802050781250074,64.3353515625],[36.3649414062501,64.00283203125002],[37.44218750000002,63.813378906249966],[37.9679687500001,63.949121093749994],[38.0622070312501,64.09101562499995],[37.953710937500006,64.32011718749999],[37.183691406250006,64.40849609375007],[36.6242187500001,64.75053710937502],[36.534570312499994,64.93862304687497],[36.88281249999997,65.17236328124997],[39.7580078125001,64.57705078125002],[40.05781250000004,64.77075195312497],[40.44492187500006,64.7787109375],[39.7980468750001,65.349853515625],[39.816503906250006,65.59794921874999],[41.4757812500001,66.12343750000002],[42.21054687500006,66.51967773437502],[43.23320312500002,66.41552734375003],[43.653125,66.2509765625],[43.54189453125005,66.12338867187503],[43.84375,66.14238281249999],[44.10439453125005,66.00859374999999],[44.42929687500006,66.93774414062503],[43.7824218750001,67.25449218749998],[44.20468750000006,68.25375976562498],[43.33320312500004,68.67338867187502],[44.04804687500004,68.54882812499997],[45.891992187499994,68.47968750000001],[46.69042968750003,67.84882812500001],[45.52871093750005,67.75756835937497],[44.90214843750002,67.41313476562505],[45.56220703125004,67.18559570312507],[45.88535156250006,66.89106445312501],[46.4923828125001,66.80019531249997],[47.65585937500006,66.97592773437498],[47.87470703125004,67.58417968749998],[48.83320312500004,67.681494140625],[48.75429687500005,67.89594726562501],[49.15527343750003,67.87041015625005],[51.994726562500006,68.53876953124995],[52.3966796875001,68.35170898437505],[52.72265624999997,68.484033203125],[52.34404296875002,68.60815429687497],[53.80195312500004,68.99589843750002],[54.49121093750003,68.992333984375],[53.797656250000074,68.90747070312503],[53.9308593750001,68.43554687499997],[53.260546875000074,68.26748046875002],[54.476171875,68.29414062499995],[54.86132812500003,68.20185546874998],[55.418066406250006,68.56782226562501],[56.04365234375004,68.64887695312501],[57.126855468749994,68.55400390625005],[58.17304687500004,68.88974609375006],[59.0573242187501,69.00605468750004],[59.37050781250005,68.73837890625003],[59.09902343750005,68.4443359375],[59.725683593750006,68.35161132812502],[59.89599609374997,68.70634765624999],[60.489160156249994,68.72895507812498],[60.93359374999997,68.98676757812501],[60.17060546875004,69.59091796875],[60.90908203125005,69.84711914062495],[64.19042968750003,69.53466796875],[64.89628906250002,69.247802734375],[67.00244140625003,68.87358398437505],[68.37119140625006,68.31425781250005],[69.14052734375005,68.95063476562501],[68.54277343750002,68.96708984374999],[68.00585937499997,69.48002929687505],[67.62412109375,69.58442382812501],[67.06445312500003,69.69370117187498],[66.89667968750004,69.55380859374998],[67.28476562500006,70.73872070312498],[67.14335937500002,70.83754882812502],[66.70224609375006,70.81850585937497],[66.63964843749997,71.08139648437498],[68.2692382812501,71.68281250000001],[69.61181640625003,72.98193359375],[69.73828124999997,72.88496093749998],[71.5001953125001,72.91367187500003],[72.812109375,72.69140624999997],[72.57412109375,72.01254882812506],[71.86728515625,71.457373046875],[72.70449218750005,70.96323242187498],[72.5767578125,68.96870117187498],[73.59169921875005,68.48188476562501],[73.13945312500002,68.18134765624998],[73.06679687500005,67.766943359375],[71.84746093750002,67.00761718750005],[71.36523437500003,66.96152343749998],[71.53955078125003,66.68310546875],[70.72490234375007,66.51943359374997],[70.38281249999997,66.60249023437501],[70.69072265625002,66.74531249999998],[70.2833984375001,66.68579101562503],[69.8771484375001,66.84545898437506],[69.21777343749997,66.82861328125],[69.01347656250002,66.78833007812503],[69.19433593749997,66.57866210937505],[70.33945312500006,66.34238281250006],[71.35800781250006,66.35942382812505],[71.91699218749997,66.24672851562502],[72.32158203125002,66.33212890625],[72.4173828125,66.56079101562506],[73.79208984375,66.99531250000001],[74.07451171875007,67.41411132812499],[74.76953124999997,67.76635742187497],[74.39140625000007,68.42060546874995],[74.57958984375003,68.751220703125],[76.10751953125006,68.975732421875],[76.45917968750004,68.97827148437497],[77.2384765625001,68.46958007812498],[77.17441406250012,67.77851562499998],[77.77158203125006,67.57026367187501],[78.92246093750006,67.58911132812503],[77.58828125000005,67.75190429687498],[77.66484375000002,68.19038085937495],[77.99511718749997,68.25947265624998],[77.65068359375007,68.90302734375001],[76.00097656249997,69.23505859374998],[75.42001953125,69.23862304687498],[74.81484375,69.09057617187503],[73.83603515625006,69.143212890625],[73.578125,69.80297851562503],[74.34335937500006,70.57871093749998],[73.08623046875007,71.44492187500006],[73.67177734375,71.84506835937503],[74.99218749999997,72.14482421874999],[74.78681640625004,72.811865234375],[75.15244140625,72.85273437499998],[75.74140625000004,72.29624023437503],[75.273828125,71.95893554687495],[75.33203125000003,71.34174804687498],[76.92900390625002,71.12788085937504],[77.58964843750007,71.16791992187501],[78.32060546875002,70.93041992187503],[78.94218750000002,70.93378906250001],[79.08388671875,71.00200195312505],[78.58769531250007,70.993896484375],[78.21259765625004,71.26630859374998],[76.43339843750002,71.55249023437503],[76.03242187500004,71.91040039062503],[76.87138671875002,72.03300781250005],[77.77753906250004,71.83642578125006],[78.23242187500003,71.95229492187502],[78.01640625000007,72.092041015625],[77.49287109375004,72.07172851562504],[77.47158203125,72.19213867187506],[78.22539062500007,72.37744140625006],[79.4220703125001,72.38076171875002],[80.7625,72.08916015625002],[81.66162109374997,71.71596679687502],[82.75781250000003,71.76411132812498],[83.23359375000004,71.66816406249995],[82.32285156250006,71.26000976562503],[82.16318359375012,70.59814453125003],[82.22119140625003,70.39570312499998],[82.86914062499997,70.95483398437503],[83.03017578125,70.58051757812498],[82.6823242187501,70.21772460937498],[83.0807617187501,70.09301757812497],[83.07382812500012,70.276708984375],[83.73593750000006,70.54648437499998],[83.15126953125005,71.10361328124998],[83.534375,71.68393554687498],[83.20029296875012,71.87470703125004],[82.64541015625005,71.92524414062504],[82.09365234375,72.26542968750005],[80.82705078125005,72.48828124999997],[80.84160156250007,72.94916992187498],[80.4245117187501,73.23115234374998],[80.5832031250001,73.56845703125003],[85.20058593750005,73.72153320312506],[86.89296875,73.88710937500002],[85.79257812500012,73.438330078125],[86.67705078125002,73.10678710937503],[85.93896484374997,73.45649414062495],[87.12011718750003,73.61503906250002],[87.57119140625,73.81074218750001],[86.57109375000007,74.24375],[86.0013671875,74.316015625],[86.39580078125007,74.45009765624997],[86.89794921874997,74.32534179687497],[87.22968750000004,74.3638671875],[85.79101562499997,74.6451171875],[86.20126953125006,74.81621093750005],[86.65146484375012,74.68242187500005],[87.04179687500007,74.77885742187499],[87.46757812500002,75.01323242187505],[86.93906250000006,75.06811523437503],[87.00595703125012,75.16982421874997],[87.67138671874997,75.12958984375004],[90.18496093750005,75.59106445312497],[94.07519531249997,75.91289062499999],[92.89042968750002,75.90996093750002],[93.25927734375003,76.09877929687502],[95.57871093750012,76.13730468749998],[96.07548828125007,76.08198242187498],[95.65332031250003,75.89218750000003],[96.50859375000002,76.00556640624995],[96.49707031249997,75.89121093750003],[98.66201171875005,76.24267578125003],[99.77041015625,76.02875976562498],[99.5407226562501,75.79858398437497],[99.85136718750007,75.93027343749998],[99.8253906250001,76.13593749999995],[98.80566406250003,76.48066406250004],[100.84375,76.52519531250005],[101.59775390625006,76.43920898437503],[100.92802734375002,76.55673828124998],[100.98994140625004,76.99047851562497],[102.61015625000007,77.508544921875],[104.01455078125,77.73041992187501],[106.05957031249997,77.39052734375002],[104.20244140625002,77.101806640625],[106.9416015625001,77.034375],[107.42978515625006,76.92656250000002],[106.41357421874997,76.51225585937499],[107.72216796875003,76.52231445312498],[108.18164062500003,76.73784179687502],[111.39248046875,76.686669921875],[112.09394531250004,76.48032226562506],[111.94267578125002,76.38046875000003],[112.61953125,76.38354492187506],[112.65625,76.05356445312498],[113.2726562500001,76.25166015625001],[113.5638671875,75.89165039062502],[113.85722656250007,75.92128906250002],[113.56757812500004,75.56840820312499],[112.45302734375,75.83017578125003],[112.95566406250006,75.571923828125],[113.24296875000007,75.61142578125003],[113.72617187500012,75.45063476562498],[112.92490234375012,75.01503906249997],[109.84033203124997,74.32197265624998],[109.8102539062501,74.16918945312503],[108.19951171875002,73.69409179687497],[107.27109375000006,73.62104492187501],[106.67939453125004,73.3306640625],[106.1886718750001,73.3080078125],[105.14394531250005,72.77705078125001],[105.7082031250001,72.836669921875],[106.47792968750005,73.13940429687503],[107.750390625,73.17314453125007],[109.33105468749997,73.48745117187497],[109.85527343750002,73.47246093750002],[110.86816406249997,73.73071289062497],[109.70673828125004,73.74375],[110.2614257812501,74.01743164062503],[111.05625,73.93935546875002],[111.13085937500003,74.05283203125003],[111.55058593750007,74.02851562499998],[111.22812500000012,73.96855468750002],[111.40039062500003,73.827734375],[112.14726562500007,73.70893554687498],[112.79541015625003,73.74609375],[112.83593750000003,73.96206054687502],[113.03281250000006,73.91386718750007],[113.4162109375001,73.647607421875],[113.15693359375004,73.45957031249998],[113.49091796875004,73.34609375000002],[113.12783203125,72.8306640625],[113.66455078124997,72.63452148437503],[113.2155273437501,72.80585937500001],[113.88623046875003,73.34580078124998],[113.51035156250012,73.50498046874998],[115.33769531250007,73.70258789062501],[118.87089843750007,73.53789062500002],[118.45703124999997,73.46440429687507],[118.43027343750012,73.24653320312501],[119.750390625,72.97910156250006],[122.26015625,72.88056640624995],[122.75195312500003,72.906494140625],[122.61523437499997,73.02792968750006],[123.1603515625001,72.95488281250002],[123.62226562500004,73.19326171875],[123.49111328125005,73.666357421875],[124.54121093750004,73.75126953125007],[125.59853515625005,73.447412109375],[126.25449218750012,73.548193359375],[126.55253906250007,73.33491210937498],[127.03134765625006,73.54746093750003],[127.74033203125012,73.48154296875],[129.10058593750003,73.11235351562502],[128.5990234375,72.895166015625],[129.01728515625004,72.8724609375],[129.250390625,72.70517578125003],[128.41826171875002,72.53515625000003],[129.28134765625006,72.43769531249998],[129.41064453124997,72.16630859375002],[128.93496093750005,72.07949218750002],[127.8034179687501,72.43403320312504],[127.84140625000012,72.308251953125],[128.91142578125002,71.75532226562495],[129.21025390625007,71.91694335937501],[129.46083984375,71.73930664062499],[128.84326171875003,71.6634765625],[129.76191406250004,71.11953125000002],[130.53710937500003,70.89252929687495],[130.75712890625002,70.96235351562498],[131.02158203125006,70.74609374999997],[132.0353515625001,71.24404296875],[132.65390625000006,71.92597656250001],[133.6888671875,71.434228515625],[134.70273437500012,71.38681640625003],[135.55917968750006,71.6103515625],[136.09033203125003,71.61958007812501],[137.9396484375001,71.1333984375],[137.84404296875007,71.22680664062503],[138.31406250000006,71.32553710937498],[137.918359375,71.38408203124999],[138.23417968750007,71.596337890625],[138.78017578125,71.62900390624998],[139.209375,71.44477539062501],[139.98417968750007,71.49150390625005],[139.72294921875002,71.88496093749998],[139.35927734375005,71.95136718750001],[140.18769531250004,72.19130859374997],[139.17636718750006,72.16347656249997],[139.14082031250004,72.32973632812502],[139.60117187500012,72.49609374999997],[141.07929687500004,72.5869140625],[140.80820312500006,72.89096679687503],[142.06142578125005,72.72080078125],[146.25292968749997,72.442236328125],[146.234765625,72.34970703125],[144.77636718749997,72.38227539062495],[144.16923828125002,72.25878906250003],[144.29492187499997,72.19262695312497],[146.83183593750007,72.29541015625003],[146.11328125000003,71.94497070312497],[146.23027343750007,72.1375],[145.75859375000007,72.22587890624999],[145.75673828125005,71.94130859375002],[145.06396484374997,71.92607421875002],[145.18857421875012,71.69580078125],[146.07324218749997,71.80834960937503],[147.26181640625006,72.327880859375],[149.50156250000012,72.16430664062497],[150.01689453125002,71.89565429687505],[149.04873046875005,71.79575195312503],[148.9681640625,71.69047851562499],[150.59980468750004,71.5201171875],[150.09765624999997,71.22656249999997],[150.96777343749997,71.38046874999998],[151.58242187500005,71.28696289062503],[152.09277343749997,71.02329101562503],[151.76201171875002,70.98247070312499],[152.50878906250003,70.83447265625003],[156.68457031250003,71.09375],[158.03701171875005,71.03925781250001],[159.35068359375006,70.79072265625001],[160.00644531250006,70.30966796875006],[159.72939453125005,69.87021484375006],[160.91074218750012,69.60634765625002],[161.03554687500005,69.09819335937507],[161.30986328125007,68.98227539062498],[160.85605468750006,68.53833007812506],[161.565625,68.90517578125],[161.53691406250002,69.379541015625],[162.16601562499997,69.61157226562503],[163.20136718750004,69.71474609375],[166.82031250000003,69.49956054687505],[167.8568359375,69.72822265624998],[168.30302734375002,69.27148437500003],[169.31064453125006,69.07954101562498],[169.60986328124997,68.78603515624997],[170.53759765624997,68.82539062500001],[170.99541015625002,69.04531250000005],[170.58222656250004,69.58334960937506],[170.16093750000007,69.62656249999998],[170.48681640625003,70.107568359375],[173.27744140625006,69.823828125],[173.43867187500004,69.94682617187502],[175.92148437500012,69.89531250000002],[179.27265624999998,69.25966796875002],[180,68.98344726562505],[180,65.06723632812498],[178.51953125000003,64.60297851562498],[177.7486328125,64.71704101562503],[176.88085937499997,65.08193359375002],[176.34101562500015,65.04731445312501],[177.03730468750004,64.99965820312497],[177.22285156250004,64.861669921875],[177.06875,64.78666992187502],[176.06113281250012,64.96088867187498],[174.54882812500009,64.68388671875005],[176.0565429687501,64.90473632812498],[176.35097656250005,64.70512695312502],[176.14091796875007,64.58583984375005],[177.42744140625015,64.76337890624998],[177.43291015625002,64.44448242187502],[177.6875,64.30473632812507],[178.04472656250013,64.21958007812503],[178.22949218749991,64.36440429687497],[178.38144531250018,64.26088867187502],[178.73144531250003,63.667089843750006],[178.44042968750009,63.605566406250006],[178.74404296874994,63.39477539062503],[178.79296874999997,63.54033203125002],[179.38857421875,63.14721679687497],[179.25957031250002,63.00830078125],[179.5705078125001,62.6875],[179.12070312500012,62.32036132812499],[177.292578125,62.59902343750002],[177.33896484375006,62.781347656250034],[177.02353515625012,62.777246093749994],[177.15947265625007,62.56098632812498],[174.51435546875015,61.823632812499966],[173.6234375,61.716064453125],[173.13183593749997,61.40664062500002],[172.85654296875006,61.469189453124955],[172.90800781250002,61.311621093750006],[172.39609375000006,61.16738281250002],[172.39277343750004,61.061767578125],[170.60820312500007,60.434912109375034],[170.3509765625,59.965527343749955],[169.9826171875001,60.067089843749955],[169.2267578125001,60.59594726562497],[168.1375,60.57392578125001],[167.22675781250004,60.406298828125045],[166.27304687500012,59.85625],[166.13603515625007,59.979345703125034],[166.35214843750006,60.48481445312498],[165.08457031250006,60.09858398437498],[164.95371093750006,59.843603515625006],[164.52529296875,60.06127929687503],[164.11328125000003,59.89755859374998],[164.13505859375002,59.984375],[163.74384765625004,60.02802734374998],[163.36484375000012,59.78144531250004],[163.27285156250005,59.302587890625006],[162.14160156249997,58.44741210937502],[161.96005859375012,58.07690429687506],[162.39140625000002,57.717236328124955],[162.65429687499997,57.94824218750003],[163.22578125000004,57.790380859375034],[162.77929687500003,57.35761718749998],[162.79111328125012,56.875390624999966],[162.92207031250004,56.72265625000003],[163.2565429687501,56.68803710937499],[163.33554687500012,56.232519531250006],[163.04736328125003,56.044677734375],[162.84033203125003,56.065625],[162.628125,56.232275390625034],[163.03837890625002,56.521875],[162.67148437500006,56.49008789062498],[162.52822265625005,56.260693359374955],[162.08496093749997,56.08964843750002],[161.72392578125002,55.49614257812499],[162.10556640625006,54.75214843750004],[161.62480468750002,54.51625976562502],[160.77265625000004,54.54135742187498],[160.0744140625001,54.18916015625001],[159.84375,53.78364257812498],[160.02509765625004,53.129589843749955],[159.58593750000003,53.237695312499966],[158.74541015625002,52.90893554687506],[158.47207031250005,53.032373046874966],[158.6087890625,52.873632812500034],[158.49316406249997,52.383154296875034],[158.10351562500003,51.80961914062499],[156.84746093750002,51.006591796875],[156.74775390625004,50.969287109375045],[156.52119140625004,51.38027343750002],[156.36474609374997,52.509375],[156.11035156250003,52.86616210937504],[155.62031250000004,54.86455078125002],[155.5548828125001,55.348486328125034],[155.98251953125012,56.69521484375002],[156.8488281250001,57.290185546874994],[156.97675781250004,57.46630859375],[156.82988281250007,57.77963867187498],[157.4503906250001,57.79926757812498],[157.66640625000005,58.01977539062506],[158.27519531250007,58.00898437499998],[159.21064453125004,58.519433593749966],[159.8473632812501,59.127148437499955],[161.75351562500012,60.15229492187501],[162.06816406250002,60.466406250000034],[163.70996093749997,60.916796875000045],[163.55351562500002,61.02563476562503],[164.00546875000006,61.34379882812499],[163.80439453125004,61.46137695312498],[164.20722656250004,62.29223632812506],[164.59833984375004,62.470556640625034],[165.20810546875012,62.37397460937501],[165.41738281250005,62.447070312500045],[164.418359375,62.704638671875045],[163.33173828125004,62.550927734374994],[163.01767578125006,61.89106445312504],[163.25781249999997,61.69946289062497],[163.08525390625002,61.570556640625],[162.85595703125003,61.705029296874955],[162.39257812500003,61.662109375],[160.76660156249997,60.753320312499966],[160.17363281250002,60.638427734375],[160.37890625000003,61.02548828124998],[159.79042968750005,60.956640625],[160.309375,61.894384765625006],[159.55234375000012,61.71948242187497],[159.18925781250007,61.92939453125001],[158.07011718750002,61.75361328125001],[157.46933593750012,61.798925781250006],[157.0841796875001,61.67568359375002],[155.71611328125002,60.682373046875],[154.97080078125012,60.376660156249955],[154.29306640625006,59.833349609375034],[154.1498046875,59.52851562500001],[154.97128906250006,59.44960937500002],[155.16044921875002,59.19013671875001],[154.45800781250003,59.21655273437497],[154.01093750000004,59.075537109375006],[153.69521484375005,59.22475585937505],[153.36113281250002,59.214794921874955],[152.81787109375003,58.92626953124997],[152.31962890625002,59.03076171875003],[152.08789062499997,58.910449218750045],[151.32675781250006,58.875097656250034],[151.12109375000003,59.08251953125003],[152.26064453125,59.22358398437498],[151.34824218750012,59.561132812500006],[150.4835937500001,59.494384765625],[150.66728515625002,59.55634765625001],[149.64257812499997,59.770410156249994],[149.06523437500002,59.63051757812502],[149.20498046875,59.488183593749966],[148.79707031250004,59.532324218750006],[148.74414062499997,59.37353515624997],[148.96464843750007,59.36914062499997],[148.72666015625006,59.257910156250034],[148.25742187500006,59.414208984374994],[147.51445312500002,59.2685546875],[146.53720703125006,59.45698242187501],[146.0495117187501,59.17055664062502],[145.55458984375,59.413525390624955],[143.19218750000002,59.3701171875],[142.58027343750004,59.240136718749966],[140.79023437500004,58.30346679687503],[140.446875,57.81367187499998],[138.66210937500003,56.96552734375004],[137.69150390625006,56.13935546875004],[135.2625,54.94331054687498],[135.25771484375005,54.73149414062499],[135.85156249999997,54.583935546874955],[136.797265625,54.62099609375005],[136.71884765625006,53.804101562499994],[137.15537109375012,53.82167968750002],[137.14160156249997,54.182226562500006],[137.66601562500003,54.283300781250006],[137.3392578125,54.10053710937498],[137.83476562500002,53.94672851562498],[137.25371093750007,53.546142578125],[137.95048828125007,53.60356445312499],[138.52792968750012,53.959863281249994],[138.56914062500002,53.818798828124955],[138.24970703125004,53.524023437500034],[138.45068359375003,53.53701171875002],[138.69941406250004,53.869726562500034],[138.65722656249997,54.29833984375003],[139.31972656250005,54.19296874999998],[139.707421875,54.27714843749999],[140.68759765625012,53.59643554687503],[141.3737304687501,53.29277343749999],[141.18125,53.01528320312505],[140.83964843750002,53.087890625],[141.25585937499997,52.84013671874996],[141.13242187500006,52.435693359374994],[141.48525390625,52.17851562500002],[141.36689453125004,51.92065429687506],[140.93261718750003,51.61992187499999],[140.5208984375,50.80019531250005],[140.62451171874997,50.08242187500002],[140.46269531250002,49.911474609375006],[140.51718750000012,49.59614257812498],[140.17060546875004,48.52368164062497],[138.58681640625005,47.057226562500006],[138.33691406250003,46.543408203124955],[137.68544921875,45.81835937500003],[136.14228515625004,44.489111328125034],[135.87460937500012,44.37353515625003],[135.1310546875001,43.52573242187506],[134.01044921875004,42.94746093750001],[133.15996093750007,42.69697265624998],[132.70898437500003,42.875830078125006],[132.30380859375006,42.88330078125],[132.30957031249997,43.31352539062499],[131.8666015625,43.09516601562501],[131.93896484374997,43.30195312500004],[131.15830078125012,42.62602539062499],[130.709375,42.656396484374966],[130.8341796875001,42.52294921875006],[130.68730468750007,42.30253906249999]]],[[[107.69550781250004,78.13090820312505],[107.48164062500004,78.057763671875],[106.41552734375003,78.13984375000001],[107.69550781250004,78.13090820312505]]],[[[102.88476562499997,79.25395507812505],[102.4123046875001,78.83544921874997],[103.80078124999997,79.14926757812503],[104.45205078125005,78.880029296875],[105.14599609375003,78.81884765625006],[105.31259765625012,78.49990234375],[104.74179687500012,78.33974609374997],[102.79667968750007,78.18789062500002],[101.20410156249997,78.19194335937505],[99.50029296875002,77.97607421875003],[101.590625,79.350439453125],[102.25126953125002,79.25605468749995],[102.40488281250006,79.43320312499998],[102.88476562499997,79.25395507812505]]],[[[76.24892578125005,79.65107421874995],[77.58896484375012,79.50190429687504],[76.64951171875012,79.493408203125],[76.24892578125005,79.65107421874995]]],[[[92.68349609375005,79.685205078125],[91.37626953125007,79.83549804687505],[91.22929687500007,80.03071289062504],[93.803125,79.904541015625],[92.68349609375005,79.685205078125]]],[[[51.409277343750006,79.94423828125],[50.09140625,79.98056640625003],[50.93632812500002,80.09423828125],[51.409277343750006,79.94423828125]]],[[[59.68886718750005,79.95581054687506],[58.91923828125002,79.98461914062506],[59.54453125000006,80.11884765624995],[59.68886718750005,79.95581054687506]]],[[[97.67451171875004,80.15825195312499],[97.65166015625002,79.76064453125],[98.59648437500002,80.05219726562495],[100.0612304687501,79.77709960937506],[99.68066406250003,79.32333984374998],[99.04179687500007,79.29301757812502],[99.92929687500012,78.96142578124997],[98.41113281250003,78.78779296875004],[95.53105468750007,79.09809570312501],[95.02041015625005,79.05268554687498],[94.21875,79.40234375],[93.07080078124997,79.49531250000001],[94.98730468749997,80.096826171875],[95.28134765625012,80.030517578125],[97.67451171875004,80.15825195312499]]],[[[50.05175781250003,80.07431640625003],[49.55605468750005,80.15893554687503],[49.883691406249994,80.230224609375],[50.05175781250003,80.07431640625003]]],[[[57.07871093750006,80.35092773437498],[56.986914062500006,80.07148437499998],[55.811621093750006,80.08715820312497],[56.02441406250003,80.34130859374997],[57.07871093750006,80.35092773437498]]],[[[53.521386718749994,80.18520507812497],[52.34355468750002,80.213232421875],[52.85390625,80.40239257812499],[53.85166015625006,80.26835937500005],[53.521386718749994,80.18520507812497]]],[[[57.95625,80.12324218749995],[57.33232421875002,80.15810546875005],[57.075,80.49394531249999],[59.25546875000006,80.34321289062501],[58.39794921874997,80.31875],[57.95625,80.12324218749995]]],[[[54.41533203125002,80.47280273437502],[53.811914062499994,80.47622070312502],[53.87724609375002,80.60527343750002],[54.41533203125002,80.47280273437502]]],[[[47.441992187500006,80.853662109375],[48.44570312500005,80.80600585937506],[48.68359375000003,80.63325195312504],[47.7052734375001,80.76518554687499],[46.141406250000074,80.44672851562495],[45.969042968750074,80.56948242187502],[44.9049804687501,80.61127929687501],[47.441992187500006,80.853662109375]]],[[[62.167773437500074,80.83476562500005],[62.07578125000006,80.616943359375],[61.05126953124997,80.418603515625],[60.27832031249997,80.49443359374999],[59.649804687499994,80.43125],[59.59228515625003,80.81650390624998],[62.167773437500074,80.83476562500005]]],[[[50.278125,80.92724609374997],[51.70361328125003,80.68764648437502],[48.81103515625003,80.35371093750001],[48.97753906250003,80.16259765624997],[47.73730468749997,80.08168945312502],[47.89296875000005,80.23925781249997],[46.991015625000074,80.182763671875],[46.644433593749994,80.30034179687507],[47.89580078125002,80.52905273437503],[49.087792968749994,80.515771484375],[49.24433593750004,80.82138671875],[50.278125,80.92724609374997]]],[[[80.02666015625007,80.84814453125003],[79.09853515625005,80.81206054687505],[79.21738281250012,80.96035156249997],[80.27958984375007,80.94980468750003],[80.02666015625007,80.84814453125003]]],[[[61.1408203125001,80.95034179687497],[60.0783203125001,80.99916992187497],[61.45742187499999,81.10395507812501],[61.1408203125001,80.95034179687497]]],[[[54.71894531250004,81.11596679687497],[56.47226562500006,80.99824218749995],[57.58037109375002,80.75546874999998],[55.88339843750006,80.62841796875003],[54.66816406250004,80.73867187500002],[54.04541015624997,80.87197265625],[54.71894531250004,81.11596679687497]]],[[[58.62236328125002,81.04165039062502],[58.930566406249994,80.83168945312497],[58.28564453124997,80.76489257812503],[57.21093749999997,81.01708984374997],[58.04951171875004,81.11845703125002],[58.62236328125002,81.04165039062502]]],[[[63.37382812500002,80.70009765624997],[62.59257812500002,80.85302734375006],[64.80205078125002,81.197265625],[65.43740234375005,80.93071289062507],[63.37382812500002,80.70009765624997]]],[[[91.56718750000007,81.14121093750003],[91.2228515625001,81.063818359375],[89.90117187500002,81.17070312500002],[91.56718750000007,81.14121093750003]]],[[[96.52656250000004,81.0755859375],[97.86992187500007,80.76328125000006],[97.02539062499997,80.53554687500002],[97.29843750000006,80.27275390625005],[93.6546875,80.009619140625],[91.52382812500005,80.35854492187502],[93.2625,80.79125976562497],[92.59257812500007,80.780859375],[92.7103515625,80.87216796875003],[95.1595703125,81.27099609375003],[95.80068359375005,81.28046874999998],[96.52656250000004,81.0755859375]]],[[[57.81025390625004,81.54604492187502],[58.563867187499994,81.41840820312504],[57.858691406250074,81.36806640625],[57.76972656250004,81.16972656249999],[55.71669921875005,81.1884765625],[55.46601562500004,81.31118164062502],[57.81025390625004,81.54604492187502]]],[[[63.65097656250006,81.60932617187501],[62.10644531249997,81.679345703125],[63.709570312500006,81.68730468750002],[63.65097656250006,81.60932617187501]]],[[[58.29541015625003,81.715185546875],[58.13457031250002,81.82797851562498],[59.261816406250006,81.85419921874998],[59.35644531250003,81.75898437499995],[58.29541015625003,81.715185546875]]]]},"properties":{"name":"Russia","childNum":73}},{"geometry":{"type":"Polygon","coordinates":[[[30.50996093750001,-1.067285156250009],[30.47705078125,-1.0830078125],[30.47021484375,-1.131152343750003],[30.508105468750017,-1.208203125000011],[30.631933593750006,-1.367480468750003],[30.710742187500017,-1.396777343750003],[30.76220703125,-1.458691406250011],[30.812597656250006,-1.563085937500006],[30.8765625,-2.143359375],[30.85498046875,-2.265429687500003],[30.828710937500006,-2.338476562500006],[30.7625,-2.371679687500006],[30.71484375,-2.363476562500011],[30.656640625000023,-2.373828125],[30.593359375,-2.396777343750003],[30.553613281250023,-2.400097656250011],[30.408496093750017,-2.31298828125],[30.117285156250006,-2.416601562500006],[29.93017578125,-2.339550781250011],[29.8681640625,-2.71640625],[29.698046875000017,-2.794726562500003],[29.390234375,-2.80859375],[29.10205078125,-2.595703125],[29.01435546875001,-2.72021484375],[28.893945312500023,-2.635058593750003],[28.876367187500023,-2.400292968750009],[29.13154296875001,-2.195117187500003],[29.196582031250017,-1.719921875000011],[29.576953125000017,-1.387890625000011],[29.82539062500001,-1.335546875],[29.930078125000023,-1.469921875000011],[30.360253906250023,-1.074609375],[30.41230468750001,-1.063085937500006],[30.46992187500001,-1.066015625],[30.50996093750001,-1.067285156250009]]]},"properties":{"name":"Rwanda","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[41.98769531250005,16.715625],[42.059960937499994,16.803515625000017],[42.15781250000006,16.570703125000023],[41.80156250000002,16.778759765624955],[41.86044921875006,17.002539062499977],[41.98769531250005,16.715625]]],[[[46.53144531250004,29.09624023437499],[47.433203125,28.989550781250017],[47.671289062499994,28.53315429687504],[48.442480468750006,28.542919921874983],[48.80898437499999,27.895898437499966],[48.797167968750074,27.72431640625001],[49.2375,27.49272460937499],[49.17509765625002,27.43764648437505],[49.40527343749997,27.18095703124996],[50.149804687499994,26.66264648437499],[50.00810546875002,26.678515625000017],[50.21386718750003,26.30849609375005],[50.15546875000004,26.100537109374955],[50.03164062499999,26.11098632812505],[50.55791015625002,25.086669921875],[50.66689453125005,24.96381835937501],[50.72558593749997,24.869384765625057],[50.80439453125004,24.789257812499983],[50.928320312500006,24.595117187500023],[50.96601562500004,24.573925781249983],[51.022753906250074,24.56523437499999],[51.09335937500006,24.564648437499955],[51.178027343750074,24.586718750000017],[51.26796875,24.607226562500017],[51.33847656250006,24.564355468749994],[51.41123046875006,24.570800781250057],[51.30986328125002,24.340380859375017],[51.56835937500003,24.286181640625074],[51.592578125000074,24.07885742187503],[52.55507812500005,22.932812499999955],[55.104296875000074,22.621484375000023],[55.185839843750074,22.7041015625],[55.64101562499999,22.001855468749994],[54.97734375000002,19.995947265625006],[51.977636718750006,18.996142578125074],[49.04199218750003,18.58178710937503],[48.17216796875002,18.156933593749983],[47.57958984374997,17.448339843750034],[47.44179687499999,17.111865234375045],[47.14355468749997,16.946679687499966],[46.97568359375006,16.953466796875034],[46.72763671875006,17.26557617187501],[45.5353515625001,17.30205078124999],[45.14804687500006,17.427441406249955],[43.91699218749997,17.32470703124997],[43.41796875000003,17.516259765625023],[43.19091796875003,17.359375],[43.16503906249997,16.689404296874955],[42.79931640624997,16.37177734375001],[42.29394531249997,17.434960937499966],[41.75,17.88574218749997],[41.22949218750003,18.678417968749983],[40.75917968750005,19.755468750000034],[40.080664062500006,20.265917968750017],[39.728320312500074,20.390332031249955],[39.27607421875004,20.973974609375034],[39.093554687500074,21.31035156249999],[39.14707031250006,21.518994140624955],[38.98789062500006,21.88173828125005],[39.06201171874997,22.592187500000023],[38.46416015625002,23.71186523437504],[37.91972656250002,24.185400390625063],[37.54306640625006,24.291650390625023],[37.18085937500004,24.82001953125001],[37.26630859375004,24.960058593750034],[37.14882812499999,25.291113281249977],[35.18046875000002,28.03486328125004],[34.722070312499994,28.130664062500017],[34.625,28.064501953125017],[34.95078125,29.353515625],[36.068457031250006,29.200537109375006],[36.28281250000006,29.355371093750023],[36.47607421874997,29.49511718749997],[36.59179687500003,29.666113281250006],[36.703906250000074,29.831640624999977],[36.75527343750005,29.86601562499996],[37.46923828125003,29.995068359374955],[37.49072265625003,30.01171874999997],[37.55361328125005,30.14458007812496],[37.63359375000002,30.313281250000045],[37.64990234374997,30.330957031249994],[37.669726562500074,30.34814453125003],[37.862890625,30.44262695312503],[37.98007812500006,30.5],[37.47900390624997,31.007763671874955],[37.10527343750002,31.35517578125004],[36.95859375000006,31.491503906250017],[37.215625,31.55610351562501],[37.49335937500004,31.625878906250023],[38.111425781250006,31.78115234375005],[38.37548828124997,31.84746093749996],[38.962304687499994,31.99492187499999],[38.99707031249997,32.00747070312505],[39.145410156249994,32.12451171875],[39.36865234374997,32.09174804687498],[39.70410156250003,32.04252929687499],[40.02783203124997,31.995019531249994],[40.3693359375001,31.93896484375003],[40.47890625000005,31.89335937499999],[42.07441406250004,31.08037109374999],[43.77373046875002,29.84921875],[44.71650390625004,29.19360351562503],[46.35644531250003,29.06367187500001],[46.53144531250004,29.09624023437499]]]]},"properties":{"name":"Saudi Arabia","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[36.87138671875002,21.996728515624994],[36.92695312500001,21.58652343749999],[37.25859375000002,21.108544921874994],[37.25722656250002,21.03940429687499],[37.15058593750001,21.103759765625],[37.14111328125,20.98178710937499],[37.19316406250002,20.12070312499999],[37.471289062500006,18.820117187500003],[38.609472656250006,18.005078125],[38.422460937500006,17.823925781249997],[38.39716796875001,17.778369140625003],[38.38554687500002,17.751269531250003],[38.37373046875001,17.717333984375003],[38.34736328125001,17.68359375],[38.28984375000002,17.637011718750003],[38.26728515625001,17.61669921875],[38.253515625,17.584765625],[37.78242187500001,17.4580078125],[37.547460937500006,17.324121093749994],[37.51015625000002,17.288134765625003],[37.45292968750002,17.108691406250003],[37.41103515625002,17.06171875],[37.24882812500002,17.056884765625],[37.16953125,17.04140625],[37.0615234375,17.061279296875],[37.00898437500001,17.058886718750003],[36.995214843750006,17.020556640625003],[36.97578125000001,16.86655273437499],[36.97871093750001,16.800585937500003],[36.887792968750006,16.624658203124994],[36.91376953125001,16.296191406250003],[36.566015625,15.362109375],[36.4267578125,15.132080078125],[36.44814453125002,14.940087890624994],[36.470800781250006,14.736474609374994],[36.52431640625002,14.2568359375],[36.12519531250001,12.75703125],[35.67021484375002,12.623730468749997],[35.1123046875,11.816552734374994],[34.93144531250002,10.864794921874989],[34.77128906250002,10.746191406249991],[34.571875,10.880175781249989],[34.34394531250001,10.658642578124997],[34.31123046875001,10.190869140624997],[34.078125,9.461523437499991],[33.87148437500002,9.506152343749989],[33.96328125000002,9.861767578124997],[33.90703125000002,10.181445312499989],[33.13007812500001,10.745947265624991],[33.073339843750006,11.606103515624994],[33.199316406250006,12.21728515625],[32.721875,12.223095703124997],[32.73671875000002,12.009667968749994],[32.072265625,12.006738281249994],[32.338476562500006,11.710107421874994],[32.42080078125002,11.089111328125],[31.224902343750017,9.799267578124997],[30.75537109375,9.731201171875],[30.003027343750006,10.277392578124989],[29.60546875,10.065087890624994],[29.47314453125,9.768603515624989],[28.979589843750006,9.594189453124997],[28.844531250000017,9.326074218749994],[28.048925781250006,9.32861328125],[27.880859375,9.601611328124989],[27.07421875,9.613818359374989],[26.65869140625,9.484130859375],[25.91914062500001,10.169335937499994],[25.858203125000017,10.406494140625],[25.211718750000017,10.329931640624991],[25.066992187500006,10.293798828124991],[24.785253906250006,9.774658203125],[24.53193359375001,8.886914062499997],[24.147363281250023,8.665625],[23.53730468750001,8.815820312499994],[23.46826171875,9.11474609375],[23.62265625,9.340625],[23.646289062500017,9.822900390624994],[22.86005859375001,10.919677734375],[22.922656250000017,11.344873046874994],[22.591113281250017,11.579882812499989],[22.580957031250023,11.990136718749994],[22.472460937500017,12.067773437499994],[22.352343750000017,12.660449218749989],[21.928125,12.678125],[21.825292968750006,12.79052734375],[22.228125,13.32958984375],[22.1064453125,13.7998046875],[22.53857421875,14.161865234375],[22.38154296875001,14.550488281249997],[22.6708984375,14.722460937500003],[22.93232421875001,15.162109375],[22.933886718750017,15.533105468749994],[23.10517578125001,15.702539062499994],[23.970800781250006,15.721533203124991],[23.980273437500017,19.496630859375003],[23.980273437500017,19.99594726562499],[24.9794921875,20.002587890624994],[24.980273437500017,21.995849609375],[28.036425781250017,21.995361328125],[31.092675781250023,21.994873046875],[31.260644531250023,22.00229492187499],[31.400292968750023,22.202441406250003],[31.486132812500017,22.14780273437499],[31.434472656250023,21.995849609375],[36.87138671875002,21.996728515624994]]]},"properties":{"name":"Sudan","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[34.078125,9.461523437499991],[34.07275390625,8.545263671874991],[33.95332031250001,8.443505859374994],[33.28105468750002,8.437255859375],[32.99892578125002,7.899511718749991],[33.902441406250006,7.509521484375],[34.06425781250002,7.225732421874994],[34.71064453125001,6.660302734374994],[34.98359375000001,5.858300781249994],[35.26835937500002,5.492285156249991],[35.08447265625,5.311865234374991],[34.87832031250002,5.109570312499997],[34.63984375000001,4.87548828125],[34.38017578125002,4.620654296874989],[34.176855468750006,4.419091796874994],[33.97607421875,4.22021484375],[33.74160156250002,3.985253906249994],[33.568457031250006,3.81171875],[33.489355468750006,3.755078125],[32.99726562500001,3.880175781249989],[32.33574218750002,3.706201171874994],[32.13593750000001,3.519726562499997],[31.79804687500001,3.802636718749994],[31.547167968750017,3.677587890624991],[31.15234375,3.785595703124997],[30.83857421875001,3.49072265625],[30.757226562500023,3.62421875],[30.586718750000017,3.62421875],[30.50830078125,3.835693359375],[30.194921875,3.98193359375],[29.676855468750006,4.5869140625],[29.469628906250023,4.61181640625],[29.224902343750017,4.391894531249989],[28.72705078125,4.504980468749991],[28.427539062500017,4.324169921874997],[28.19208984375001,4.350244140624994],[27.7880859375,4.644677734374994],[27.4033203125,5.109179687499989],[27.143945312500023,5.722949218749989],[26.514257812500006,6.069238281249994],[26.30859375,6.455322265625],[26.36181640625,6.635302734374989],[25.27890625,7.427490234375],[25.18134765625001,7.557226562499991],[25.20039062500001,7.807910156249989],[24.853320312500017,8.137548828124991],[24.291406250000023,8.29140625],[24.147363281250023,8.665625],[24.53193359375001,8.886914062499997],[24.785253906250006,9.774658203125],[25.066992187500006,10.293798828124991],[25.211718750000017,10.329931640624991],[25.858203125000017,10.406494140625],[25.91914062500001,10.169335937499994],[26.65869140625,9.484130859375],[27.07421875,9.613818359374989],[27.880859375,9.601611328124989],[28.048925781250006,9.32861328125],[28.844531250000017,9.326074218749994],[28.979589843750006,9.594189453124997],[29.47314453125,9.768603515624989],[29.60546875,10.065087890624994],[30.003027343750006,10.277392578124989],[30.75537109375,9.731201171875],[31.224902343750017,9.799267578124997],[32.42080078125002,11.089111328125],[32.338476562500006,11.710107421874994],[32.072265625,12.006738281249994],[32.73671875000002,12.009667968749994],[32.721875,12.223095703124997],[33.199316406250006,12.21728515625],[33.073339843750006,11.606103515624994],[33.13007812500001,10.745947265624991],[33.90703125000002,10.181445312499989],[33.96328125000002,9.861767578124997],[33.87148437500002,9.506152343749989],[34.078125,9.461523437499991]]]},"properties":{"name":"S. Sudan","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-12.280615234374977,14.809033203124997],[-12.228417968749994,14.45859375],[-12.019189453124994,14.206494140624997],[-11.960888671874983,13.875292968750003],[-12.05419921875,13.633056640625],[-11.831689453124994,13.315820312499994],[-11.634960937499983,13.369873046875],[-11.390380859375,12.941992187499991],[-11.389404296875,12.404394531249991],[-12.399072265624994,12.340087890625],[-12.930712890624989,12.532275390624989],[-13.061279296875,12.489990234375],[-13.082910156249994,12.633544921875],[-13.729248046875,12.673925781249991],[-14.06484375,12.67529296875],[-14.349218749999977,12.676416015624994],[-15.196093749999989,12.679931640625],[-15.3779296875,12.588964843749991],[-15.574804687499977,12.490380859374994],[-15.839550781249983,12.43789062499999],[-16.144189453124994,12.45742187499999],[-16.24150390624999,12.443310546874997],[-16.41630859374999,12.36767578125],[-16.521337890624977,12.3486328125],[-16.656933593749983,12.364355468749991],[-16.711816406249994,12.354833984374991],[-16.76030273437499,12.52578125],[-16.44287109375,12.609472656249991],[-16.59765625,12.715283203124997],[-16.743896484375,12.58544921875],[-16.763330078124994,13.064160156249997],[-16.648779296874977,13.154150390624991],[-15.834277343749989,13.156445312499997],[-15.814404296874983,13.325146484374997],[-15.286230468749977,13.39599609375],[-15.151123046875,13.556494140624991],[-14.246777343749983,13.23583984375],[-13.826708984374989,13.4078125],[-13.977392578124977,13.54345703125],[-14.405468749999983,13.503710937500003],[-15.108349609374983,13.81210937499999],[-15.426855468749977,13.727001953124997],[-15.509667968749994,13.586230468750003],[-16.56230468749999,13.587304687499994],[-16.766943359374977,13.904931640624994],[-16.618115234374983,14.04052734375],[-16.791748046875,14.004150390625],[-17.168066406249977,14.640625],[-17.345800781249977,14.729296875],[-17.445019531249983,14.651611328125],[-17.53564453125,14.755126953125],[-17.147167968749983,14.922021484374994],[-16.843408203124994,15.293994140625003],[-16.570751953124983,15.734423828125003],[-16.535253906249977,15.83837890625],[-16.502050781249977,15.917333984374991],[-16.480078124999977,16.097216796875003],[-16.441015624999977,16.204541015624997],[-16.239013671875,16.531298828125003],[-15.768212890624994,16.485107421875],[-14.990625,16.676904296874994],[-14.300097656249989,16.580273437499997],[-13.868457031249989,16.148144531249997],[-13.756640624999989,16.172509765624994],[-13.40966796875,16.05917968749999],[-13.105273437499989,15.57177734375],[-12.735253906249994,15.13125],[-12.40869140625,14.889013671874991],[-12.280615234374977,14.809033203124997]]]},"properties":{"name":"Senegal","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[103.9697265625,1.331445312499994],[103.65019531249999,1.325537109374991],[103.81796875000003,1.447070312499989],[103.9697265625,1.331445312499994]]]},"properties":{"name":"Singapore","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-37.10332031249996,-54.065625],[-36.70380859375001,-54.10810546874999],[-36.64741210937498,-54.26230468749996],[-36.32646484374996,-54.251171875],[-35.79858398437497,-54.76347656250002],[-36.08549804687499,-54.86679687500001],[-36.885986328125,-54.33945312499996],[-37.63090820312496,-54.16748046875001],[-37.61884765625001,-54.04208984375004],[-38.017431640625034,-54.008007812500026],[-37.10332031249996,-54.065625]]]},"properties":{"name":"S. Geo. and S. Sandw. Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-5.692138671874972,-15.997753906249997],[-5.782519531250017,-16.00400390625002],[-5.707861328124977,-15.90615234374998],[-5.692138671874972,-15.997753906249997]]]},"properties":{"name":"Saint Helena","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[160.57626953125006,-11.797851562500028],[160.44306640625004,-11.814941406249957],[159.98632812499997,-11.494726562500006],[160.57626953125006,-11.797851562500028]]],[[[166.13320312500005,-10.757812499999972],[165.90400390625004,-10.851464843749966],[165.79101562500003,-10.784765624999963],[166.02382812500005,-10.6611328125],[166.13320312500005,-10.757812499999972]]],[[[161.71533203124997,-10.387304687499991],[162.10537109375005,-10.45380859375004],[162.37333984375002,-10.823242187499986],[161.78681640625004,-10.716894531249991],[161.53789062500007,-10.566406249999972],[161.4870117187501,-10.361425781249963],[161.29394531250003,-10.326464843750031],[161.30478515625012,-10.204394531250031],[161.71533203124997,-10.387304687499991]]],[[[161.54785156249997,-9.625683593749997],[161.55380859375012,-9.769726562500026],[161.40976562500006,-9.681640625000028],[161.36416015625,-9.353417968750037],[161.54785156249997,-9.625683593749997]]],[[[159.75039062500005,-9.272656250000011],[159.97060546875,-9.433300781249969],[160.35458984375006,-9.421582031249983],[160.81894531250006,-9.862792968749986],[160.64921875000002,-9.92861328124998],[159.80273437499997,-9.763476562500003],[159.61230468749997,-9.470703124999943],[159.62558593750012,-9.311230468749969],[159.75039062500005,-9.272656250000011]]],[[[160.1681640625001,-8.995507812500037],[160.40751953125007,-9.140332031249969],[160.10537109375,-9.080761718749997],[160.1681640625001,-8.995507812500037]]],[[[159.18857421875006,-9.123535156250014],[159.03632812500004,-9.075],[159.12978515625,-8.99306640624998],[159.22841796875005,-9.029980468749955],[159.18857421875006,-9.123535156250014]]],[[[158.10791015625003,-8.684179687500034],[157.93759765625006,-8.73642578125002],[157.90927734375006,-8.565625],[158.10546874999997,-8.536816406250026],[158.10791015625003,-8.684179687500034]]],[[[157.38896484375002,-8.713476562499963],[157.2123046875,-8.565039062500006],[157.37949218750012,-8.420898437499943],[157.38896484375002,-8.713476562499963]]],[[[160.7494140625,-8.313964843750014],[160.99765625000006,-8.612011718749983],[160.94433593750003,-8.799023437499983],[161.15869140624997,-8.961816406250009],[161.36738281250004,-9.61123046874998],[160.77207031250012,-8.963867187499986],[160.7140625000001,-8.539257812499997],[160.59042968750006,-8.372753906249997],[160.7494140625,-8.313964843750014]]],[[[157.76347656250002,-8.242187499999957],[157.89843749999997,-8.506347656249943],[157.81933593750003,-8.612011718749983],[157.58789062500003,-8.445410156249963],[157.5580078125,-8.269921875],[157.30244140625004,-8.33330078124996],[157.21757812500002,-8.262792968749977],[157.490625,-7.965722656250037],[157.76347656250002,-8.242187499999957]]],[[[157.171875,-8.108105468749997],[156.95830078125002,-8.014355468749997],[157.02412109375004,-7.867871093749997],[157.18613281250006,-7.941210937500017],[157.171875,-8.108105468749997]]],[[[156.687890625,-7.92304687500004],[156.5109375000001,-7.707812499999974],[156.5609375,-7.574023437499989],[156.80908203124997,-7.722851562500026],[156.687890625,-7.92304687500004]]],[[[159.8791015625001,-8.534277343749949],[158.9440429687501,-8.04072265625004],[158.457421875,-7.544726562499974],[158.734375,-7.604296875000031],[159.43144531250002,-8.029003906249955],[159.84306640625002,-8.326953124999989],[159.8791015625001,-8.534277343749949]]],[[[155.83984374999997,-7.097167968750014],[155.67753906250002,-7.08896484375002],[155.73896484375004,-6.972949218750017],[155.83984374999997,-7.097167968750014]]],[[[157.48671875000005,-7.330371093750003],[157.44130859375,-7.425683593749966],[157.10156249999997,-7.323632812499966],[156.4525390625,-6.638281249999963],[157.03027343750003,-6.891992187499952],[157.19335937499997,-7.160351562499997],[157.48671875000005,-7.330371093750003]]]]},"properties":{"name":"Solomon Is.","childNum":16}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-12.526074218749926,7.436328125000017],[-12.951611328124926,7.570849609374989],[-12.615234374999972,7.63720703125],[-12.5125,7.582421875000037],[-12.526074218749926,7.436328125000017]]],[[[-10.758593749999989,9.385351562499991],[-10.682714843750006,9.289355468749974],[-10.687646484374937,9.261132812499994],[-10.749951171874926,9.12236328124996],[-10.747021484374955,9.095263671875045],[-10.726855468749932,9.081689453125023],[-10.615966796875,9.059179687499977],[-10.500537109375017,8.687548828125017],[-10.677343749999977,8.400585937499997],[-10.712109374999955,8.335253906250017],[-10.686962890624983,8.321679687500009],[-10.652636718749989,8.330273437499983],[-10.604003906249943,8.319482421874994],[-10.55771484374992,8.315673828125028],[-10.496435546874977,8.362109374999974],[-10.394433593749966,8.480957031250028],[-10.360058593749983,8.49550781249998],[-10.283203124999972,8.48515625],[-10.285742187499949,8.454101562499986],[-10.314648437499983,8.310839843750017],[-10.359814453124926,8.187939453125026],[-10.570849609374932,8.071142578125034],[-10.6474609375,7.759375],[-10.878076171874994,7.538232421874994],[-11.267675781249977,7.232617187499997],[-11.507519531249983,6.906542968750003],[-12.48564453124996,7.386279296875045],[-12.480273437499932,7.75327148437502],[-12.697607421874977,7.715869140625045],[-12.850878906249932,7.818701171875034],[-12.956933593749966,8.145312500000045],[-13.148974609374989,8.214599609375043],[-13.272753906249989,8.429736328124989],[-13.085009765624932,8.42475585937504],[-12.894091796874932,8.62978515624998],[-13.181835937499955,8.576904296875043],[-13.206933593749994,8.843115234375006],[-13.059472656249966,8.881152343750031],[-13.292675781249955,9.04921875],[-13.077294921874966,9.069628906249974],[-12.958789062499989,9.263330078124994],[-12.755859374999943,9.373583984374989],[-12.557861328125,9.704980468749994],[-12.427978515625028,9.898144531250011],[-12.142333984375,9.87539062499999],[-11.911083984374955,9.993017578124977],[-11.273632812499955,9.996533203124983],[-11.205664062499949,9.977734374999969],[-11.180859374999955,9.925341796875045],[-11.047460937499977,9.786328125000054],[-10.758593749999989,9.385351562499991]]]]},"properties":{"name":"Sierra Leone","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-89.36259765624999,14.416015625],[-89.1205078125,14.370214843749991],[-88.51254882812499,13.978955078124997],[-88.504345703125,13.964208984374991],[-88.49765625,13.904541015625],[-88.482666015625,13.854248046875],[-88.44912109375,13.850976562499994],[-88.40849609374999,13.87539062499999],[-88.27622070312499,13.942675781250003],[-88.151025390625,13.987353515625003],[-87.99101562499999,13.879638671875],[-87.8919921875,13.894970703124997],[-87.80224609375,13.889990234374991],[-87.7314453125,13.841064453125],[-87.71533203125,13.812695312499997],[-87.781884765625,13.521386718749994],[-87.930859375,13.1806640625],[-88.68564453124999,13.281494140625],[-88.51201171874999,13.183935546874991],[-89.80419921875,13.560107421875003],[-90.09521484375,13.736523437499997],[-90.04814453124999,13.904052734375],[-89.54716796874999,14.241259765625003],[-89.5736328125,14.390087890624997],[-89.36259765624999,14.416015625]]]},"properties":{"name":"El Salvador","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-56.26708984374997,46.838476562500034],[-56.38476562499994,46.81943359375006],[-56.36464843749994,47.09897460937498],[-56.26708984374997,46.838476562500034]]]},"properties":{"name":"St. Pierre and Miquelon","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[6.659960937499989,0.120654296874989],[6.51972656250004,0.066308593750023],[6.468164062499994,0.22734375],[6.68691406250008,0.404394531249977],[6.75,0.24345703124996],[6.659960937499989,0.120654296874989]]],[[[7.423828125,1.567724609375006],[7.330664062500034,1.603369140624991],[7.414453125000051,1.699121093750037],[7.423828125,1.567724609375006]]]]},"properties":{"name":"São Tomé and Principe","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-54.03422851562499,3.62939453125],[-54.00957031249999,3.448535156249989],[-54.06318359375,3.353320312499989],[-54.18803710937499,3.178759765624989],[-54.203125,3.13818359375],[-54.17070312499999,2.993603515624997],[-54.18808593749999,2.874853515624991],[-54.1955078125,2.81787109375],[-54.256738281249994,2.713720703124991],[-54.402001953124994,2.461523437499991],[-54.53593749999999,2.343310546874989],[-54.56840820312499,2.342578124999989],[-54.604736328125,2.335791015624991],[-54.61625976562499,2.326757812499991],[-54.661865234375,2.327539062499994],[-54.697412109374994,2.359814453124997],[-54.72221679687499,2.441650390625],[-54.87607421874999,2.450390625],[-54.92656249999999,2.497363281249989],[-54.968408203124994,2.54833984375],[-54.978662109374994,2.59765625],[-55.005810546875,2.59296875],[-55.0703125,2.54833984375],[-55.11411132812499,2.539208984374994],[-55.1876953125,2.547509765624994],[-55.286035156249994,2.499658203124994],[-55.343994140625,2.48876953125],[-55.38535156249999,2.440625],[-55.73056640624999,2.406152343749994],[-55.957470703125,2.520458984374997],[-55.99350585937499,2.497509765624997],[-56.02036132812499,2.392773437499997],[-56.0451171875,2.364404296874994],[-56.087792968749994,2.34130859375],[-56.12939453125,2.299511718749997],[-56.1376953125,2.259033203125],[-56.073632812499994,2.236767578124997],[-56.02006835937499,2.158154296874997],[-55.96196289062499,2.095117187499994],[-55.91533203124999,2.03955078125],[-55.921630859375,1.976660156249991],[-55.929638671875,1.8875],[-56.01992187499999,1.842236328124997],[-56.4828125,1.942138671875],[-56.704345703125,2.036474609374991],[-57.19736328124999,2.853271484375],[-57.303662109375,3.377099609374994],[-57.646728515625,3.39453125],[-58.05429687499999,4.101660156249991],[-57.84599609374999,4.668164062499997],[-57.91704101562499,4.820410156249991],[-57.711083984374994,4.991064453124991],[-57.331005859375,5.020166015624994],[-57.20981445312499,5.195410156249991],[-57.3185546875,5.335351562499994],[-57.194775390625,5.5484375],[-56.96982421874999,5.992871093749997],[-56.235595703125,5.885351562499991],[-55.897607421874994,5.699316406249991],[-55.909912109375,5.892626953124989],[-55.648339843749994,5.985888671874989],[-54.83369140625,5.988330078124989],[-54.05419921875,5.807910156249989],[-54.08046875,5.502246093749989],[-54.4796875,4.836523437499991],[-54.350732421874994,4.054101562499994],[-54.03422851562499,3.62939453125]]]},"properties":{"name":"Suriname","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[22.538671875,49.072705078125],[22.52412109375001,49.031396484374994],[22.389453125000017,48.873486328125],[22.295214843750017,48.685839843749996],[22.142871093750017,48.568505859374994],[22.1318359375,48.405322265624996],[21.766992187500023,48.3380859375],[21.45136718750001,48.55224609375],[20.490039062500017,48.526904296874996],[20.333789062500017,48.295556640624994],[19.95039062500001,48.146630859374994],[19.625390625000023,48.223095703125],[18.791894531250023,48.000292968749996],[18.72421875,47.787158203124996],[17.76191406250001,47.770166015624994],[17.147363281250023,48.00595703125],[16.86542968750001,48.3869140625],[16.953125,48.598828125],[17.135644531250023,48.841064453125],[17.75849609375001,48.888134765625],[18.0859375,49.06513671875],[18.160937500000017,49.257373046874996],[18.83222656250001,49.510791015624996],[19.1494140625,49.4],[19.44160156250001,49.597705078124996],[19.77392578125,49.37216796875],[19.756640625000017,49.204394531249996],[20.0576171875,49.181298828124994],[20.36298828125001,49.38525390625],[20.868457031250017,49.314697265625],[21.079394531250017,49.418261718749996],[21.6396484375,49.411962890625],[22.020117187500006,49.209521484374996],[22.473046875000023,49.081298828125],[22.538671875,49.072705078125]]]},"properties":{"name":"Slovakia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[16.516210937500006,46.499902343749994],[16.427636718750023,46.5244140625],[16.321191406250023,46.534619140625],[16.1064453125,46.382226562499994],[15.608984375,46.171923828124996],[15.592578125000017,46.139990234375],[15.596875,46.109228515625],[15.675585937500017,45.983691406249996],[15.652148437500017,45.862158203125],[15.277050781250011,45.7326171875],[15.353710937500011,45.659912109375],[15.283593750000023,45.5796875],[15.291210937500011,45.541552734374996],[15.32666015625,45.502294921875],[15.339453125,45.467041015625],[15.242089843750023,45.44140625],[15.110449218750006,45.45078125],[14.95458984375,45.499902343749994],[14.793066406250006,45.47822265625],[14.649511718750006,45.571484375],[14.591796875,45.651269531249994],[14.56884765625,45.6572265625],[14.548448660714302,45.628388671875],[14.507586495535731,45.59039341517857],[14.42734375,45.505761718749994],[14.369921875000017,45.4814453125],[13.878710937500017,45.428369140624994],[13.577929687500017,45.516894531249996],[13.8447265625,45.59287109375],[13.831152343750006,45.680419921875],[13.663476562500023,45.7919921875],[13.6005859375,45.979785156249996],[13.509179687500023,45.973779296874994],[13.487695312500023,45.987109375],[13.480273437500017,46.009228515625],[13.486425781250006,46.03955078125],[13.548046875000011,46.089111328125],[13.616601562500023,46.133105468749996],[13.634960937500011,46.157763671874996],[13.632519531250011,46.177050781249996],[13.420996093750006,46.212304687499994],[13.399511718750006,46.317529296874994],[13.563281250000017,46.415087890624996],[13.637109375000023,46.448535156249996],[13.6796875,46.462890625],[13.7,46.520263671875],[14.5498046875,46.399707031249996],[14.893261718750011,46.605908203125],[15.957617187500006,46.677636718749994],[16.093066406250017,46.86328125],[16.283593750000023,46.857275390625],[16.516210937500006,46.499902343749994]]]},"properties":{"name":"Slovenia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[16.52851562500001,56.29052734375],[16.431640625,56.24375],[16.41230468750004,56.568994140624994],[17.02539062499997,57.345068359375006],[16.52851562500001,56.29052734375]]],[[[19.076464843750045,57.8359375],[18.813867187500023,57.70620117187502],[18.907910156250068,57.39833984375002],[18.146386718749994,56.920507812500006],[18.285351562500068,57.08320312500001],[18.136523437500045,57.55664062500003],[18.53740234374999,57.83056640625006],[18.90058593750001,57.91547851562504],[19.076464843750045,57.8359375]]],[[[19.156347656250063,57.92260742187497],[19.086523437500034,57.86499023437506],[19.134863281250034,57.98134765625002],[19.331445312500023,57.962890625],[19.156347656250063,57.92260742187497]]],[[[24.15546875000004,65.80527343750006],[23.102343750000074,65.73535156250003],[22.400976562500006,65.86210937499999],[22.254003906250006,65.59755859375002],[21.565527343750063,65.40810546874997],[21.609179687500074,65.261376953125],[21.410351562500068,65.31743164062505],[21.57392578125001,65.12578124999999],[21.138183593750057,64.80869140625006],[21.519628906250034,64.46308593749998],[20.76269531250003,63.86782226562505],[18.60644531250003,63.17827148437499],[18.31289062500008,62.996386718750045],[18.46308593750004,62.895849609375006],[18.170019531250034,62.789355468750074],[17.906640625000023,62.88676757812502],[18.037304687500068,62.60053710937498],[17.834472656250057,62.50273437500002],[17.410253906250063,62.508398437500034],[17.633691406249994,62.23300781250006],[17.374511718750057,61.866308593750034],[17.465429687500006,61.68447265625005],[17.196386718750006,61.72456054687504],[17.13076171875005,61.57573242187499],[17.25097656250003,60.70078125],[17.6611328125,60.53515625000003],[17.955761718750068,60.589794921874955],[18.85273437500001,60.02587890625],[18.970507812500045,59.757226562499994],[17.964257812500023,59.359375],[18.56025390625004,59.39448242187498],[18.285351562500068,59.109375],[16.978125,58.65415039062506],[16.214257812500023,58.636669921874955],[16.92382812499997,58.49257812499999],[16.651953125,58.43432617187503],[16.65224609375008,57.50068359374998],[16.348730468750063,56.70927734374996],[15.826660156250028,56.12495117187501],[14.782031250000017,56.16191406250002],[14.754785156250051,56.03315429687498],[14.401953125000034,55.97675781250004],[14.21503906250004,55.83261718749998],[14.341699218749994,55.52773437500002],[14.17373046875008,55.396630859374966],[12.885839843750063,55.41137695312506],[12.973925781250074,55.748144531250006],[12.471191406250057,56.29052734375],[12.801660156250051,56.263916015625],[12.65644531250004,56.44057617187502],[12.857421875000028,56.45239257812503],[12.883691406250051,56.61772460937496],[12.421484375000034,56.906396484374966],[11.449316406250063,58.118359374999955],[11.43154296875008,58.339990234374994],[11.24824218750004,58.369140625],[11.14716796875004,58.98862304687498],[11.19580078125,59.07827148437505],[11.388281250000063,59.036523437499966],[11.470703125000057,58.909521484375034],[11.64277343750004,58.92607421875002],[11.798144531250074,59.28989257812498],[11.680761718750034,59.59228515625003],[12.486132812500074,60.10678710937506],[12.588671874999989,60.450732421875045],[12.29414062500004,61.00268554687506],[12.706054687500028,61.059863281250074],[12.88076171875008,61.35229492187506],[12.155371093750006,61.720751953125045],[12.303515625000074,62.28559570312501],[11.999902343750051,63.29169921875001],[12.175195312500051,63.595947265625],[12.792773437500017,64],[13.203515625000023,64.07509765625],[13.960546875000063,64.01401367187498],[14.141210937500006,64.17353515624998],[14.077636718750028,64.464013671875],[13.650292968750023,64.58154296874997],[14.47968750000004,65.30146484374998],[14.543261718750045,66.12934570312498],[15.483789062500051,66.30595703124999],[15.422949218750006,66.48984374999998],[16.40351562500004,67.05498046875002],[16.12744140625,67.42583007812507],[16.783593750000023,67.89501953125],[17.324609375000023,68.10380859374999],[17.91669921875001,67.96489257812502],[18.303027343750045,68.55541992187497],[19.969824218750063,68.35639648437501],[20.348046875000023,68.84873046875003],[20.116699218750057,69.02089843750005],[20.622167968750006,69.036865234375],[21.99746093750005,68.52060546874998],[22.854101562500034,68.36733398437502],[23.63886718750004,67.95439453125002],[23.454882812500045,67.46025390625007],[23.733593750000068,67.42290039062499],[23.64150390625005,67.12939453124997],[23.988574218750045,66.81054687500003],[23.700292968750034,66.25263671874998],[24.15546875000004,65.80527343750006]]]]},"properties":{"name":"Sweden","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[31.9482421875,-25.957617187500006],[32.060546875,-26.018359375],[32.04140625000002,-26.28125],[32.10595703125,-26.52001953125],[32.112890625,-26.839453125],[32.02480468750002,-26.811132812500006],[31.994726562500006,-26.817480468750006],[31.967187500000023,-26.96064453125001],[31.946093750000017,-27.173632812500003],[31.958398437500023,-27.30585937500001],[31.742578125000023,-27.30996093750001],[31.469531250000017,-27.295507812500006],[31.274023437500006,-27.238378906250006],[31.063378906250023,-27.1123046875],[30.938085937500006,-26.915820312500003],[30.88330078125,-26.79238281250001],[30.806738281250006,-26.785253906250006],[30.794335937500023,-26.764257812500006],[30.803320312500006,-26.41347656250001],[31.08808593750001,-25.98066406250001],[31.207324218750017,-25.843359375],[31.33515625000001,-25.75556640625001],[31.382617187500017,-25.74296875],[31.415136718750006,-25.74658203125],[31.921679687500017,-25.96875],[31.9482421875,-25.957617187500006]]]},"properties":{"name":"Swaziland","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[55.54033203125002,-4.693066406250011],[55.54296875,-4.785546875],[55.383398437500006,-4.609277343750009],[55.45576171875001,-4.558789062500011],[55.54033203125002,-4.693066406250011]]]},"properties":{"name":"Seychelles","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[42.358984375,37.10859375],[41.78857421875,36.59716796875],[41.41679687500002,36.5146484375],[41.295996093750006,36.383349609374996],[41.354101562500006,35.640429687499996],[41.19472656250002,34.768994140625],[40.98701171875001,34.429052734375],[38.773535156250006,33.372216796874994],[36.818359375,32.317285156249994],[36.3720703125,32.3869140625],[35.78730468750001,32.734912109374996],[35.91347656250002,32.94960937499999],[35.869140625,33.43173828125],[36.03447265625002,33.58505859375],[35.98613281250002,33.75263671875],[36.36503906250002,33.83935546875],[36.27783203125,33.92529296875],[36.5849609375,34.221240234374996],[36.50439453125,34.432373046875],[36.32988281250002,34.499609375],[36.383886718750006,34.65791015625],[35.97626953125001,34.629199218749996],[35.902441406250006,35.420703125],[35.76445312500002,35.571582031249996],[35.83964843750002,35.84921875],[35.892675781250006,35.916552734374996],[35.96757812500002,35.910058593749994],[36.12734375000002,35.831445312499994],[36.15361328125002,35.833886718749994],[36.34755859375002,36.003515625],[36.37539062500002,36.171240234375],[36.63671875,36.233984375],[36.64140625000002,36.263525390625],[36.5375,36.45742187499999],[36.54667968750002,36.50634765625],[36.596875,36.7013671875],[36.62841796875,36.777685546875],[36.65859375000002,36.802539062499996],[36.77656250000001,36.79267578125],[36.94179687500002,36.7583984375],[36.9853515625,36.702392578125],[37.06621093750002,36.652636718749996],[37.43632812500002,36.643310546875],[37.523535156250006,36.6783203125],[37.7203125,36.743701171874996],[37.90664062500002,36.79462890625],[38.19169921875002,36.9015625],[38.7666015625,36.693115234375],[38.90644531250001,36.694677734375],[39.1083984375,36.680566406249994],[39.35664062500001,36.681591796875],[39.50146484375,36.70224609375],[39.6865234375,36.738623046875],[40.01640625000002,36.826074218749994],[40.705664062500006,37.097705078124996],[41.886816406250006,37.156396484374994],[42.05986328125002,37.2060546875],[42.16787109375002,37.288623046874996],[42.202734375,37.29726562499999],[42.24755859375,37.2822265625],[42.2685546875,37.2765625],[42.31289062500002,37.22958984375],[42.358984375,37.10859375]]]},"properties":{"name":"Syria","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-72.3328125,21.85136718749999],[-72.14433593750002,21.79272460937503],[-72.33544921874994,21.758007812499983],[-72.3328125,21.85136718749999]]]},"properties":{"name":"Turks and Caicos Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[23.980273437500017,19.496630859375003],[23.970800781250006,15.721533203124991],[23.10517578125001,15.702539062499994],[22.933886718750017,15.533105468749994],[22.93232421875001,15.162109375],[22.6708984375,14.722460937500003],[22.38154296875001,14.550488281249997],[22.53857421875,14.161865234375],[22.1064453125,13.7998046875],[22.228125,13.32958984375],[21.825292968750006,12.79052734375],[21.928125,12.678125],[22.352343750000017,12.660449218749989],[22.472460937500017,12.067773437499994],[22.580957031250023,11.990136718749994],[22.591113281250017,11.579882812499989],[22.922656250000017,11.344873046874994],[22.86005859375001,10.919677734375],[22.49384765625001,10.996240234374994],[21.771484375,10.642822265625],[21.682714843750006,10.289843749999989],[20.773242187500017,9.405664062499994],[20.342089843750017,9.127099609374994],[18.95625,8.938867187499994],[18.886035156250017,8.836035156249991],[19.108691406250017,8.656152343749994],[18.56416015625001,8.0458984375],[17.6494140625,7.98359375],[16.784765625,7.550976562499997],[16.545312500000023,7.865478515625],[16.37890625,7.683544921874997],[15.957617187500006,7.507568359375],[15.480078125,7.523779296874991],[15.5498046875,7.787890624999989],[15.1162109375,8.557324218749997],[14.332324218750017,9.20351562499999],[13.977246093750011,9.691552734374994],[14.243261718750006,9.979736328125],[15.654882812500006,10.0078125],[15.276074218750011,10.357373046874997],[15.132226562500023,10.648486328124989],[15.029882812500006,11.11367187499999],[15.08125,11.845507812499989],[14.847070312500023,12.502099609374994],[14.461718750000017,13.021777343749989],[14.244824218750011,13.07734375],[14.06396484375,13.07851562499999],[13.932324218750011,13.258496093749997],[13.606347656250023,13.70458984375],[13.505761718750023,14.134423828124994],[13.4482421875,14.380664062500003],[14.367968750000017,15.750146484374994],[15.474316406250011,16.908398437499997],[15.735058593750011,19.904052734375],[15.963183593750017,20.34619140625],[15.587109375000011,20.733300781249994],[15.607324218750023,20.954394531250003],[15.181835937500011,21.523388671874997],[14.97900390625,22.99619140624999],[15.984082031250011,23.445214843749994],[20.14765625000001,21.38925781249999],[23.980273437500017,19.496630859375003]]]},"properties":{"name":"Chad","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[0.900488281250006,10.993261718749991],[0.763378906250011,10.386669921874997],[1.330078125,9.996972656249994],[1.3857421875,9.361669921874991],[1.600195312500006,9.050048828125],[1.624707031250011,6.997314453125],[1.530957031250011,6.992431640625],[1.777929687500006,6.294628906249997],[1.62265625,6.216796875],[1.187207031250011,6.089404296874989],[0.736914062500006,6.452587890624997],[0.525585937500011,6.850927734374991],[0.634765625,7.353662109374994],[0.5,7.546875],[0.686328125000017,8.354882812499994],[0.37255859375,8.75927734375],[0.48876953125,8.851464843749994],[0.525683593750017,9.398486328124989],[0.2333984375,9.463525390624994],[0.342578125000017,9.604150390624994],[0.264550781250023,9.644726562499997],[0.380859375,10.291845703124991],[-0.08632812499999,10.673046875],[0.009423828125023,11.02099609375],[-0.068603515625,11.115625],[0.49267578125,10.954980468749994],[0.900488281250006,10.993261718749991]]]},"properties":{"name":"Togo","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[98.40908203125005,7.90205078125004],[98.2962890625,7.776074218750054],[98.32207031250007,8.166308593749974],[98.4349609375,8.085644531249969],[98.40908203125005,7.90205078125004]]],[[[100.070703125,9.58603515625002],[99.96240234375003,9.421630859375],[99.93955078125006,9.559960937500037],[100.070703125,9.58603515625002]]],[[[102.42675781250003,11.988720703125026],[102.30195312500004,11.98081054687502],[102.27744140625006,12.151855468750043],[102.42675781250003,11.988720703125026]]],[[[100.12246093750005,20.316650390625057],[100.11494140625004,20.257666015625034],[100.13974609375012,20.245410156250017],[100.31796875000006,20.38588867187505],[100.51953125000003,20.17792968750004],[100.39765625000004,19.756103515625],[100.51357421875005,19.553466796875],[101.21191406249997,19.54833984375003],[101.22080078125006,19.486621093750074],[101.19755859375007,19.327929687500074],[101.2863281250001,18.977148437500006],[101.04697265625012,18.441992187500063],[101.05058593750002,18.407031250000045],[101.1375,18.28686523437497],[101.14394531250005,18.14262695312499],[100.90849609375002,17.583886718750023],[100.95585937500002,17.541113281250006],[101.10517578125004,17.47954101562499],[101.16748046874997,17.49902343749997],[101.41367187500012,17.71875],[101.55507812500005,17.812353515625034],[101.56367187500004,17.82050781250001],[101.6875,17.889404296875],[101.77480468750005,18.03339843750004],[101.81865234375002,18.06464843750001],[101.87548828124997,18.046435546875017],[101.94746093750004,18.081494140624983],[102.03457031250005,18.169824218750023],[102.10146484375,18.210644531249983],[102.14824218750002,18.20385742187503],[102.35185546875002,18.045947265625017],[102.45878906250002,17.984619140625057],[102.55253906250007,17.96508789062497],[102.61679687500006,17.833349609375034],[102.66064453124997,17.817968750000034],[102.680078125,17.824121093750023],[103.05136718750006,18.02851562500001],[103.0912109375,18.13823242187499],[103.14853515625006,18.221728515625045],[103.19970703124997,18.259472656249983],[103.26318359374997,18.27846679687505],[103.27958984375002,18.304980468750017],[103.24892578125,18.338964843750034],[103.25175781250002,18.373486328124955],[103.2882812500001,18.408398437499955],[103.36699218750007,18.42333984374997],[103.48798828125004,18.418164062499983],[103.62968750000002,18.38256835937503],[103.79228515625002,18.316503906249977],[103.89882812500005,18.295312500000023],[103.949609375,18.31899414062505],[104.04873046875005,18.216699218749994],[104.19619140625005,17.988378906250006],[104.32265625,17.815820312500023],[104.428125,17.69897460937503],[104.7396484375,17.461669921875],[104.81601562500012,17.30029296874997],[104.75898437500004,17.0771484375],[104.7435546875,16.884375],[104.75058593750012,16.647558593750063],[104.81933593750003,16.46606445312503],[105.04716796875007,16.160253906249977],[105.14873046875007,16.09355468749999],[105.33066406250006,16.037890625000017],[105.40625,15.987451171875051],[105.39892578124997,15.829882812500017],[105.62207031250003,15.699951171875],[105.641015625,15.656542968750045],[105.6388671875001,15.585937500000057],[105.615625,15.488281250000057],[105.49042968750004,15.256591796875],[105.49042968750004,15.127587890625009],[105.5333984375001,15.041601562499991],[105.54667968750002,14.932470703124963],[105.52304687500012,14.843310546875003],[105.49736328125002,14.590673828124963],[105.47558593750003,14.530126953124977],[105.42265625000007,14.471630859375054],[105.34218750000005,14.416699218750054],[105.24365234375003,14.367871093750054],[105.1833007812501,14.346240234374989],[105.16914062500004,14.336083984374966],[105.12597656250003,14.280957031250011],[105.07412109375005,14.227441406250037],[104.77900390625004,14.427832031250006],[103.19941406250004,14.332617187499977],[102.90927734375006,14.136718750000028],[102.546875,13.585693359375043],[102.33632812500005,13.560302734375014],[102.49960937500012,12.669970703125003],[102.75566406250002,12.42626953125],[102.73662109375007,12.089794921875011],[102.93388671875002,11.706689453125037],[102.594140625,12.203027343749994],[102.54023437500004,12.109228515624977],[101.83574218750002,12.640380859375014],[100.89775390625007,12.653808593749986],[100.96269531250007,13.431982421874991],[100.60292968750005,13.568164062500017],[100.23564453125002,13.48447265625002],[99.99052734375007,13.243457031250031],[100.08994140625006,13.045654296874972],[99.96396484375006,12.690039062500006],[99.98906250000007,12.170800781249994],[99.16503906250003,10.319824218750028],[99.25390625000003,9.265234375000034],[99.83554687500012,9.288378906250031],[99.98955078125007,8.589208984374977],[100.129296875,8.428076171875006],[100.16347656250005,8.508398437500034],[100.27939453125006,8.268505859375011],[100.54521484375002,7.226904296874991],[100.43935546875005,7.280761718750043],[100.38037109375003,7.541503906250043],[100.28378906250006,7.551513671875043],[100.25664062500002,7.774902343749986],[100.16074218750012,7.599267578124994],[100.4235351562501,7.18784179687502],[101.01787109375002,6.860937500000034],[101.49794921875005,6.865283203125031],[102.10107421874997,6.242236328125031],[101.87363281250012,5.825292968749991],[101.67841796875004,5.778808593750028],[101.5560546875,5.907763671875003],[101.1139648437501,5.636767578125045],[100.98164062500004,5.771044921875045],[101.05351562500002,6.242578125],[100.87392578125,6.24541015624996],[100.75449218750012,6.460058593749991],[100.3454101562501,6.549902343750006],[100.26142578125004,6.682714843749963],[100.11914062499997,6.441992187500048],[99.69599609375004,6.87666015625004],[99.72031250000012,7.106201171875],[99.55302734375002,7.218798828125031],[99.59697265625002,7.355615234375009],[99.35859375000004,7.372216796875023],[99.26367187499997,7.619042968750037],[99.07763671874997,7.718066406250045],[99.05107421875002,7.887841796874994],[98.78867187500012,8.059814453125028],[98.703515625,8.256738281250009],[98.57919921875006,8.344287109374989],[98.42099609375006,8.17822265625],[98.30546875000007,8.226220703125009],[98.24179687500006,8.767871093750045],[98.70253906250005,10.19038085937504],[98.7572265625,10.660937499999974],[99.1901367187501,11.105273437499989],[99.61474609374997,11.781201171875026],[99.40507812500002,12.547900390625003],[99.12392578125,13.030761718750043],[99.13681640625006,13.716699218749994],[98.57001953125004,14.359912109375031],[98.20214843749997,14.97592773437502],[98.19101562500012,15.204101562499972],[98.55693359375007,15.367675781249986],[98.59238281250006,16.05068359375005],[98.81796875000012,16.180810546874994],[98.88828125000006,16.351904296875034],[98.83544921875003,16.417578125],[98.66074218750006,16.330419921875006],[98.4388671875,16.975683593750034],[97.7064453125,17.79711914062503],[97.63222656250005,18.290332031250074],[97.37392578125,18.51796875],[97.74589843750002,18.58818359374999],[97.816796875,19.459960937500057],[98.01503906250005,19.74951171874997],[98.37128906250004,19.68916015625004],[98.9166992187501,19.77290039062504],[99.07421875000003,20.09936523437503],[99.48593750000006,20.14985351562501],[99.45888671875005,20.363037109375],[99.72011718750005,20.32543945312497],[99.8903320312501,20.424414062499977],[99.9542968750001,20.415429687500023],[100.0036132812501,20.37958984375001],[100.12246093750005,20.316650390625057]]]]},"properties":{"name":"Thailand","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[70.66416015625,39.85546875],[70.55957031250003,39.790917968749994],[70.48925781250003,39.86303710937503],[70.48281250000005,39.88271484375005],[70.49775390625004,39.88242187499998],[70.56708984375004,39.86660156250005],[70.66416015625,39.85546875]]],[[[70.95800781250003,40.238867187500034],[70.59921875,39.974511718749994],[69.96679687499997,40.202246093750034],[69.46875,40.020751953125],[69.47099609375002,39.990625],[69.43193359375007,39.909765625000034],[69.36542968750004,39.94707031250002],[69.30722656250006,39.968554687500045],[69.27880859374997,39.91777343749999],[69.24472656250006,39.82709960937498],[69.29765625000007,39.52480468750005],[70.50117187500004,39.58735351562501],[70.79931640625003,39.39472656250001],[71.4703125,39.60366210937502],[71.50302734375006,39.58217773437502],[71.51738281250002,39.55385742187502],[71.50585937499997,39.51708984374997],[71.5033203125,39.47880859374999],[71.73222656250002,39.422998046874994],[71.77861328125007,39.27797851562502],[72.04277343750002,39.352148437500034],[72.08417968750004,39.310644531250034],[72.14736328125005,39.26074218749997],[72.22998046874997,39.20751953124997],[72.63994140625002,39.385986328125],[73.10927734375,39.36191406249998],[73.2349609375,39.37456054687499],[73.3361328125001,39.41235351562506],[73.38740234375004,39.442724609375034],[73.4704101562501,39.46059570312502],[73.63164062500007,39.44887695312502],[73.63632812500006,39.396679687499955],[73.60732421875,39.229199218749955],[73.8052734375,38.968652343749994],[73.69609375000007,38.85429687499996],[73.80166015625,38.60688476562501],[74.02558593750004,38.53984375000002],[74.27744140625,38.659765625000034],[74.81230468750002,38.46030273437498],[74.8942382812501,37.60141601562498],[75.11875,37.38569335937498],[74.89130859375004,37.231640624999955],[74.875390625,37.24199218750002],[74.83046875,37.28593750000002],[74.73056640625006,37.35703125],[74.659375,37.39448242187501],[74.34902343750005,37.41875],[74.25966796875005,37.41542968750002],[74.20351562500005,37.37246093750005],[74.16708984375,37.32944335937498],[73.74960937500006,37.23178710937498],[73.6535156250001,37.239355468750034],[73.62753906250006,37.261572265625006],[73.71728515625003,37.32944335937498],[73.7337890625,37.37578125000002],[73.72060546875,37.41875],[73.65712890625005,37.43046875],[73.6046875000001,37.44604492187503],[73.48134765625,37.4716796875],[73.38291015625006,37.462255859375034],[73.21113281250004,37.40849609375002],[72.89550781250003,37.26752929687498],[72.65742187500004,37.029052734375],[71.665625,36.696923828124994],[71.530859375,36.845117187499994],[71.43291015625007,37.12753906249998],[71.5822265625001,37.91010742187498],[71.55195312500004,37.93315429687496],[71.48779296874997,37.93188476562497],[71.38964843750003,37.90629882812502],[71.31992187500006,37.90185546875],[71.27851562500004,37.91840820312498],[71.33271484375004,38.170263671875034],[71.25585937499997,38.306982421875006],[70.7359375,38.42255859375001],[70.41777343750002,38.075439453125],[70.21464843750002,37.92441406250006],[70.19941406250004,37.88603515624996],[70.25498046875006,37.76538085937497],[70.25146484374997,37.66416015625006],[70.18867187500004,37.58247070312501],[70.11982421875004,37.54350585937499],[69.9849609375,37.566162109375],[69.8208984375,37.60957031250004],[69.62578125000002,37.59404296874999],[69.49208984375,37.55307617187498],[69.42011718750004,37.486718749999966],[69.39921875000007,37.39931640625002],[69.42968749999997,37.290869140625034],[69.414453125,37.20776367187497],[69.35380859375007,37.15004882812502],[69.3039062500001,37.11694335937503],[69.26484375000004,37.1083984375],[69.18017578125003,37.158300781250034],[68.96044921875003,37.32504882812498],[68.9118164062501,37.33393554687501],[68.88525390624997,37.32807617187498],[68.85537109375005,37.31684570312501],[68.83847656250006,37.30283203124998],[68.82373046874997,37.27070312500001],[68.78203125000002,37.25800781250001],[68.7232421875,37.26801757812501],[68.6691406250001,37.258398437500006],[68.3869140625001,37.1375],[68.29951171875004,37.08842773437502],[68.28476562500006,37.036328124999955],[68.2609375000001,37.01308593750002],[68.2121093750001,37.02153320312496],[68.0677734375,36.949804687500006],[67.95800781249997,36.972021484375006],[67.83447265624997,37.06420898437506],[67.75898437500004,37.172216796875034],[67.7980468750001,37.244970703125006],[67.81435546875005,37.48701171875004],[68.3502929687501,38.211035156250006],[68.08720703125002,38.47353515625002],[68.13251953125004,38.927636718749966],[67.69443359375006,38.99462890625003],[67.64833984375005,39.13105468750004],[67.3576171875001,39.216699218749994],[67.426171875,39.46557617187497],[67.71904296875007,39.62138671875002],[68.46328125,39.53671874999998],[68.63896484375007,39.8388671875],[68.86875,39.90747070312503],[68.80468750000003,40.05034179687499],[68.9720703125,40.08994140624998],[68.63066406250007,40.16708984374998],[69.27490234374997,40.19809570312498],[69.20625,40.566552734374994],[69.35722656250002,40.76738281249996],[69.71289062500003,40.65698242187503],[70.40195312500006,41.03510742187498],[70.75107421875006,40.721777343750006],[70.37158203125003,40.38413085937506],[70.653125,40.201171875],[70.95800781250003,40.238867187500034]]]]},"properties":{"name":"Tajikistan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[66.52226562500007,37.34848632812506],[66.471875,37.3447265625],[65.7650390625,37.56914062499996],[65.55498046875002,37.25117187500004],[65.30361328125005,37.24677734375001],[65.08964843750007,37.237939453124994],[64.9515625,37.19355468750001],[64.81630859375005,37.13208007812503],[64.7824218750001,37.05927734375001],[64.60253906250003,36.554541015625034],[64.5658203125,36.427587890625034],[64.51103515625002,36.34067382812498],[64.184375,36.14892578125],[63.8625,36.012353515624994],[63.12998046875006,35.84619140624997],[63.169726562500074,35.678125],[63.05664062500003,35.44580078125003],[62.98027343750002,35.40917968750003],[62.85800781250006,35.34965820312499],[62.688085937500006,35.25532226562504],[62.3078125000001,35.17080078125005],[62.08964843750002,35.3796875],[61.62099609375005,35.43232421875004],[61.34472656249997,35.62949218750006],[61.26201171875002,35.61958007812498],[61.25214843750004,35.86762695312498],[61.15292968750006,35.97675781250001],[61.212011718750006,36.190527343750034],[61.11962890625003,36.64257812500003],[60.34130859375003,36.63764648437501],[60.06279296875002,36.962890625],[59.454980468749994,37.25283203125002],[59.30175781249997,37.51064453125005],[58.81542968750003,37.683496093749994],[58.261621093749994,37.665820312500045],[57.35371093750004,37.97333984374998],[57.1935546875001,38.216406250000034],[56.440625,38.249414062499994],[56.272070312500006,38.080419921875034],[55.38085937500003,38.051123046875034],[54.90009765625004,37.77792968750006],[54.6994140625001,37.47016601562498],[53.91416015625006,37.34355468750002],[53.86865234375003,38.949267578125045],[53.70458984375003,39.209570312500034],[53.33632812500005,39.34082031250006],[53.15664062499999,39.26499023437506],[53.23564453125002,39.608544921874966],[53.603125,39.546972656250034],[53.472265625,39.66879882812498],[53.48730468749997,39.909375],[52.9875,39.98759765625002],[53.03554687500005,39.7744140625],[52.80468749999997,40.054003906250045],[52.73369140625002,40.39873046875002],[52.943457031250006,41.03808593750006],[53.1452148437501,40.82495117187497],[53.61523437500003,40.818505859374994],[53.87001953125005,40.64868164062503],[54.37734375,40.693261718749966],[54.319433593750006,40.83457031249998],[54.68505859375003,40.873046875],[54.70371093750006,41.071142578125034],[54.094824218750006,41.51938476562506],[53.80468749999997,42.11762695312498],[53.16416015625006,42.09379882812502],[52.97001953125002,41.97622070312505],[52.81484375,41.711816406249994],[52.850390625000074,41.20029296875006],[52.4938476562501,41.780371093750034],[53.0558593750001,42.14775390624999],[54.120996093749994,42.335205078125],[54.85380859375002,41.965185546875006],[55.434375,41.296289062499994],[55.97744140625005,41.32221679687504],[57.01796875,41.26347656249996],[57.11884765625004,41.35029296874998],[56.96406250000004,41.856542968750006],[57.290625,42.123779296875],[57.814257812500074,42.18984375000005],[58.02890625,42.48764648437506],[58.474414062500074,42.29936523437496],[58.15156250000004,42.628076171874966],[58.477148437500006,42.66284179687503],[58.5890625000001,42.778466796874966],[59.35429687500002,42.32329101562496],[59.98515625000002,42.21171875],[59.94179687499999,41.97353515625002],[60.20078125000006,41.803125],[60.07558593750005,41.759667968749966],[60.089648437500074,41.39941406250003],[60.454980468749994,41.221630859374955],[61.2423828125001,41.18920898437503],[61.496972656249994,41.276074218749955],[61.90283203124997,41.09370117187501],[62.48320312500002,39.97563476562496],[63.76367187500003,39.16054687499999],[64.3099609375,38.97729492187497],[65.612890625,38.23857421875002],[65.97119140624997,38.244238281250006],[66.60625,37.98671875000005],[66.52558593750004,37.785742187500034],[66.51132812500006,37.59916992187496],[66.51064453125,37.45869140625004],[66.52226562500007,37.34848632812506]]]},"properties":{"name":"Turkmenistan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[124.0363281250001,-9.341601562500031],[124.44443359375012,-9.190332031250023],[124.28232421875012,-9.427929687500026],[124.0363281250001,-9.341601562500031]]],[[[125.06816406250002,-9.511914062499997],[124.96015625000004,-9.213769531250009],[125.10048828125,-9.189843750000023],[125.14902343750012,-9.042578125000034],[124.93681640625007,-9.053417968750026],[124.92226562500005,-8.942480468749977],[125.17802734375002,-8.647851562499994],[125.38183593749997,-8.575390624999983],[126.61972656250006,-8.459472656249986],[126.96640625000012,-8.315722656250017],[127.29609375000004,-8.424511718749969],[126.91523437500004,-8.715234374999966],[125.40800781250002,-9.275781250000023],[125.06816406250002,-9.511914062499997]]],[[[125.64609375000006,-8.139941406250003],[125.5794921875,-8.311816406250017],[125.50712890625007,-8.275097656249997],[125.64609375000006,-8.139941406250003]]]]},"properties":{"name":"Timor-Leste","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-175.1619140625,-21.169335937500023],[-175.07817382812496,-21.129003906249977],[-175.15659179687495,-21.26367187499997],[-175.36235351562496,-21.106835937499994],[-175.1619140625,-21.169335937500023]]],[[[-173.953515625,-18.63935546875001],[-174.06914062500002,-18.640234375],[-173.96806640624993,-18.565332031250023],[-173.953515625,-18.63935546875001]]]]},"properties":{"name":"Tonga","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-61.012109374999966,10.134326171874989],[-61.906103515625006,10.069140625000031],[-61.49931640624999,10.268554687499972],[-61.47827148437497,10.603369140624977],[-61.65117187499993,10.718066406249974],[-60.917626953124966,10.84023437499999],[-61.03374023437502,10.669873046875026],[-61.012109374999966,10.134326171874989]]]},"properties":{"name":"Trinidad and Tobago","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[10.957617187500063,33.72207031250005],[10.722070312500051,33.738916015624994],[10.745214843750063,33.88867187500006],[11.017871093749989,33.82333984374998],[10.957617187500063,33.72207031250005]]],[[[11.278027343750068,34.753808593749994],[11.123632812500063,34.68168945312496],[11.254882812500057,34.82031250000006],[11.278027343750068,34.753808593749994]]],[[[10.274609375000011,31.684960937499994],[10.114941406250068,31.46376953125005],[10.216406250000063,30.78320312500003],[10.05976562500004,30.58007812500003],[9.932519531250051,30.42534179687496],[9.895019531250028,30.387304687500034],[9.51875,30.229394531249994],[9.224023437500023,31.373681640624994],[9.160253906250006,31.621337890625],[9.044042968750034,32.072363281250034],[8.333398437500051,32.54360351562502],[8.1125,33.055322265624994],[7.877246093750017,33.172119140625],[7.534375,33.717919921874994],[7.513867187500068,34.080517578124955],[8.24560546875,34.73408203124998],[8.276855468750057,34.97949218749997],[8.312109375000063,35.084619140624994],[8.394238281250011,35.20385742187503],[8.318066406250011,35.654931640624994],[8.348730468750063,36.367968750000045],[8.207617187500006,36.518945312499994],[8.601269531250068,36.83393554687504],[8.576562500000023,36.93720703125001],[9.687988281250057,37.34038085937499],[9.838476562500063,37.30898437499999],[9.830273437499983,37.13535156250006],[9.875585937499977,37.25415039062503],[10.196386718750063,37.205859375000045],[10.293261718750074,36.781494140625],[10.412304687499983,36.73183593750002],[11.053906250000068,37.07250976562506],[11.12666015625004,36.874072265625045],[10.476562500000028,36.175146484375006],[10.590820312500028,35.88725585937499],[11.00429687500008,35.63383789062496],[11.120117187500057,35.24028320312499],[10.69091796875,34.67846679687503],[10.118359375000068,34.280078125000045],[10.049023437500068,34.056298828124994],[10.305273437500034,33.72827148437497],[10.713183593750017,33.68901367187496],[10.722753906250006,33.514404296875],[10.958007812500057,33.62631835937498],[11.257421875000034,33.30883789062506],[11.202636718749972,33.24921874999998],[11.50458984375004,33.181933593750045],[11.502441406250028,33.15556640624999],[11.467187500000051,32.96572265625005],[11.459179687500011,32.897363281249966],[11.453906250000017,32.64257812500003],[11.533789062500034,32.52495117187496],[11.535937500000017,32.47333984375001],[11.504980468750034,32.413671875000034],[11.358007812500006,32.34521484375003],[11.168261718750074,32.25673828125002],[11.005175781250074,32.17270507812506],[10.826367187500068,32.080664062500034],[10.771582031250006,32.02119140625001],[10.60888671875,31.929541015624977],[10.47578125000004,31.736035156249983],[10.274609375000011,31.684960937499994]]]]},"properties":{"name":"Tunisia","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[25.970019531250045,40.136328125],[25.6689453125,40.13588867187502],[25.918359375000023,40.23798828125004],[25.970019531250045,40.136328125]]],[[[43.43339843750002,41.155517578125],[43.43945312500003,41.10712890625001],[43.72265624999997,40.71953124999999],[43.56933593750003,40.48237304687498],[43.66621093750004,40.12636718750002],[44.28925781250004,40.040380859375006],[44.76826171875004,39.70351562500005],[44.81718750000002,39.65043945312496],[44.58710937500004,39.76855468750006],[44.3893554687501,39.422119140625],[44.02324218750002,39.37744140625006],[44.27167968750004,38.83603515625006],[44.2985351562501,38.38627929687499],[44.4499023437501,38.33422851562506],[44.21132812499999,37.908056640625006],[44.589941406250006,37.710351562499966],[44.574023437500074,37.435400390625006],[44.79414062500004,37.290380859375034],[44.76513671875003,37.142431640625006],[44.73095703124997,37.16528320312503],[44.66933593750005,37.17358398437503],[44.60595703124997,37.176025390625],[44.401953125,37.05849609375002],[44.325585937499994,37.0107421875],[44.28183593750006,36.97802734374997],[44.24570312500006,36.983300781249994],[44.20166015624997,37.05180664062502],[44.208398437499994,37.20263671875],[44.19179687499999,37.249853515625034],[44.15625,37.28295898437503],[44.11445312500004,37.30185546875006],[44.01318359375003,37.313525390625045],[43.83642578124997,37.223535156249994],[43.67578125000003,37.227246093749955],[43.09248046875004,37.36738281249998],[42.936621093750006,37.32475585937502],[42.77460937500004,37.371875],[42.74111328125005,37.361914062500034],[42.6354492187501,37.249267578125],[42.45585937500002,37.128710937500045],[42.358984375,37.10859375000004],[42.31289062499999,37.22958984374998],[42.26855468749997,37.276562499999955],[42.24755859375003,37.28222656250006],[42.20273437500006,37.29726562499999],[42.16787109375005,37.28862304687502],[42.059863281250074,37.2060546875],[41.886816406250006,37.156396484374994],[40.70566406250006,37.09770507812502],[40.4503906250001,37.00888671875006],[40.016406250000074,36.82607421875002],[39.68652343749997,36.73862304687506],[39.50146484374997,36.702246093750034],[39.35664062500004,36.68159179687498],[39.10839843749997,36.68056640625005],[38.90644531250004,36.69467773437498],[38.76660156249997,36.69311523437503],[38.19169921875002,36.90156250000004],[37.90664062500005,36.79462890625001],[37.7203125,36.74370117187502],[37.52353515625006,36.678320312500034],[37.436328125000074,36.643310546875],[37.327050781249994,36.64658203125006],[37.18740234375005,36.655908203124994],[37.066210937500074,36.652636718750045],[36.98535156250003,36.70239257812506],[36.94179687499999,36.758398437500006],[36.77656250000004,36.79267578124998],[36.65859375000005,36.80253906250002],[36.62841796875003,36.777685546875034],[36.596875,36.70136718750001],[36.546679687500074,36.50634765625],[36.5375,36.457421874999966],[36.63671874999997,36.233984375],[36.37539062499999,36.171240234375034],[36.347558593749994,36.003515625000034],[36.20195312500002,35.93754882812502],[36.15361328125002,35.83388671875005],[36.12734375,35.831445312499994],[35.967578125000074,35.91005859375002],[35.89267578125006,35.91655273437502],[35.81093750000005,36.30986328125002],[36.18847656250003,36.65898437499999],[36.048925781250006,36.91059570312501],[35.393164062500006,36.57519531249997],[34.70361328125003,36.81679687499999],[33.694726562499994,36.18198242187498],[32.794824218749994,36.03588867187497],[32.37773437500002,36.18364257812496],[32.02197265625003,36.53530273437502],[31.35253906249997,36.80107421874999],[30.64404296874997,36.86567382812501],[30.446093750000074,36.269873046875034],[29.6890625,36.15668945312498],[29.22363281249997,36.32446289062497],[28.96962890625008,36.71533203125003],[28.303710937500057,36.81196289062498],[28.01943359375005,36.63447265624998],[28.083984375000057,36.75146484375],[27.453906250000017,36.712158203125],[28.00537109375003,36.83198242187498],[28.242382812500068,37.029052734375],[27.262988281250045,36.97656250000003],[27.30019531250005,37.12685546875002],[27.53505859375005,37.16386718750002],[27.06796875,37.65791015625004],[27.224414062500074,37.725439453125006],[27.23242187500003,37.978662109374994],[26.29072265625001,38.27719726562498],[26.44130859375005,38.64121093749998],[26.67421875000008,38.33574218750002],[27.14423828125001,38.45195312499996],[26.906835937500034,38.48173828124999],[26.763671875,38.709619140624966],[27.013671875000057,38.88686523437502],[26.814941406250057,38.96098632812502],[26.853613281250034,39.115625],[26.68183593750004,39.292236328125],[26.89921874999999,39.549658203125034],[26.113085937500074,39.46738281249998],[26.101367187500074,39.56894531249998],[26.18134765625004,39.99008789062498],[26.738085937500045,40.40024414062506],[27.28457031250008,40.45561523437496],[27.4755859375,40.319921875000034],[27.72802734375,40.32880859374998],[27.84853515625005,40.38173828125002],[27.73183593750008,40.48149414062499],[27.87490234375008,40.512939453125],[27.989550781250074,40.48945312500001],[27.96259765625001,40.369873046875],[29.00712890624999,40.389746093750034],[28.787890625000017,40.534033203125034],[28.95800781250003,40.63056640624998],[29.849218750000063,40.760107421875006],[29.113867187499977,40.93784179687506],[29.14814453125004,41.221044921875034],[31.25488281249997,41.10761718750001],[31.45800781249997,41.32001953125004],[32.306445312500074,41.72958984374998],[33.38134765625003,42.01757812500003],[34.75048828124997,41.95683593749999],[35.006445312500006,42.06328125000002],[35.15488281250006,42.02753906250001],[35.12207031250003,41.89111328125003],[35.297753906249994,41.72851562500003],[35.558007812499994,41.63403320312506],[36.05175781249997,41.68256835937498],[36.40537109375006,41.27460937500001],[36.77773437499999,41.36347656250001],[37.066210937500074,41.184423828125034],[38.38105468750004,40.92451171875001],[39.426367187500006,41.10644531250003],[40.26523437500006,40.96132812500005],[41.08359375000006,41.26118164062504],[41.41435546875002,41.42363281249999],[41.510058593750074,41.51748046875002],[41.70175781250006,41.471582031249994],[41.77939453125006,41.44052734374998],[41.823535156250074,41.432373046875],[41.92578125000003,41.49565429687502],[42.46640625,41.43984375000002],[42.56738281249997,41.55927734375001],[42.590429687500006,41.57070312500002],[42.60683593750005,41.57880859374998],[42.682421875000074,41.58574218749999],[42.75410156250004,41.57890625000002],[42.787890625000074,41.56372070312503],[42.82167968750005,41.49238281249998],[42.90673828125003,41.46684570312502],[43.05712890625003,41.35283203124996],[43.149023437500006,41.30712890624997],[43.171289062499994,41.28793945312498],[43.14101562499999,41.26484374999998],[43.15283203124997,41.23642578125006],[43.20546875000005,41.19916992187501],[43.43339843750002,41.155517578125]]],[[[27.47480468750001,41.946875],[28.014453125000017,41.96904296874999],[28.197851562500063,41.55449218750002],[29.057226562500006,41.22973632812503],[28.95625,41.00820312499999],[28.172167968750074,41.08071289062502],[27.49941406250005,40.97314453124997],[27.258007812499983,40.687353515625006],[26.772070312500034,40.498046875],[26.202734375000034,40.07539062500004],[26.25380859375005,40.31469726562503],[26.792089843750034,40.626611328124994],[26.10546875000003,40.61132812499997],[26.03896484375008,40.726757812499955],[26.331054687500057,40.954492187499994],[26.330664062499977,41.23876953125],[26.62490234375008,41.401757812499994],[26.581347656250074,41.60126953125004],[26.320898437500034,41.716552734375],[26.3603515625,41.80156249999999],[26.51142578125004,41.82636718749998],[26.549707031250023,41.896728515625],[26.5796875,41.947949218749955],[26.615332031250063,41.964892578125045],[26.884863281250006,41.99184570312502],[26.96875,42.02685546875006],[27.01171875,42.05864257812496],[27.193359375000057,42.07709960937498],[27.24433593750004,42.09326171875],[27.294921875000057,42.079541015624955],[27.47480468750001,41.946875]]]]},"properties":{"name":"Turkey","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[39.71132812499999,-7.977441406250023],[39.602929687499994,-7.936132812499949],[39.907128906249994,-7.649218750000031],[39.71132812499999,-7.977441406250023]]],[[[39.49648437499999,-6.174609375],[39.573046875000074,-6.387402343750011],[39.48095703124997,-6.45371093750002],[39.18232421875004,-6.172558593750026],[39.30898437499999,-5.721972656249974],[39.49648437499999,-6.174609375]]],[[[39.86503906250002,-4.906152343750037],[39.74931640625002,-5.443847656249986],[39.646777343750074,-5.368554687500009],[39.6734375,-4.927050781250031],[39.86503906250002,-4.906152343750037]]],[[[33.90322265625005,-1.002050781250034],[37.643847656250074,-3.045410156250028],[37.608203125000074,-3.497070312500028],[39.221777343750006,-4.692382812500014],[38.80468750000003,-6.070117187500031],[38.87402343750003,-6.33125],[39.5460937500001,-7.024023437500034],[39.288476562499994,-7.517871093750003],[39.28701171875005,-7.787695312500006],[39.4284179687501,-7.81279296874996],[39.441015625,-8.011523437499946],[39.304003906250074,-8.44384765625],[39.451269531250006,-8.94296875],[39.64130859375004,-9.19248046875002],[39.72519531250006,-10.000488281249972],[40.46357421875004,-10.464355468749972],[39.98867187499999,-10.820800781250014],[39.81708984375004,-10.912402343750031],[38.9875,-11.167285156250003],[38.49179687500006,-11.413281250000026],[37.92021484375002,-11.294726562500031],[37.72480468750004,-11.58066406250002],[37.54169921875004,-11.675097656249974],[37.37285156250002,-11.710449218749986],[36.97890625000005,-11.566992187499977],[36.30566406250003,-11.706347656249946],[36.191308593749994,-11.670703124999974],[36.17548828125004,-11.60927734374998],[36.08222656250004,-11.537304687499969],[35.91132812500004,-11.45468750000002],[35.785449218750074,-11.452929687500017],[35.63095703125006,-11.582031250000028],[35.564355468749994,-11.602343749999989],[35.418261718750074,-11.583203125],[35.18261718750003,-11.574804687499977],[34.95947265625003,-11.578125],[34.93701171874997,-11.463476562500034],[34.890625,-11.3935546875],[34.77382812500005,-11.341699218750009],[34.60791015624997,-11.08046875],[34.66708984375006,-10.792480468750028],[34.56992187500006,-10.241113281249966],[34.32089843750006,-9.731542968749977],[33.99560546875003,-9.495410156250003],[33.88886718750004,-9.670117187499983],[32.91992187500003,-9.407421875000026],[32.75664062500002,-9.322265625],[31.94257812500004,-9.05400390624996],[31.91865234375004,-8.942187500000017],[31.886132812499994,-8.921972656249977],[31.81806640625004,-8.902246093749952],[31.673632812500017,-8.908789062499963],[31.55625,-8.80546875],[31.44921874999997,-8.65390625],[31.35058593750003,-8.607031250000034],[31.07636718750004,-8.611914062499963],[30.968359375000063,-8.550976562499983],[30.89199218750005,-8.473730468749963],[30.830664062500063,-8.385546875000031],[30.720898437500097,-8.104394531250037],[30.40673828125003,-7.460644531249983],[30.313183593750097,-7.203710937499949],[30.212695312500017,-7.037890625000017],[30.10625,-6.915039062500028],[29.961816406249994,-6.803125],[29.798144531250017,-6.691894531249957],[29.70966796875004,-6.61689453125004],[29.590625,-6.394433593750023],[29.540820312500017,-6.313867187500037],[29.50625,-6.172070312500011],[29.480078125,-6.025],[29.490820312500063,-5.96542968750002],[29.59638671875004,-5.775976562499963],[29.60703125,-5.722656250000028],[29.59414062500005,-5.650781250000037],[29.542382812499994,-5.499804687500017],[29.34277343749997,-4.983105468749997],[29.32343750000004,-4.898828124999966],[29.32568359374997,-4.835644531249969],[29.404199218749994,-4.49667968750002],[29.40322265625005,-4.449316406249963],[29.71777343750003,-4.45585937499996],[29.94726562499997,-4.307324218749983],[30.4,-3.65390625],[30.790234375000097,-3.274609375000011],[30.811132812500006,-3.116406250000011],[30.78027343750003,-2.984863281249957],[30.70947265624997,-2.977246093749997],[30.604296875000074,-2.935253906249969],[30.515039062499994,-2.917578125],[30.45556640625003,-2.893164062500006],[30.433496093749994,-2.874511718750028],[30.424023437500097,-2.82402343749996],[30.473339843750097,-2.6943359375],[30.42421875000005,-2.641601562500014],[30.441992187500006,-2.613476562499969],[30.53369140624997,-2.426269531250014],[30.55361328125005,-2.400097656250011],[30.593359375000063,-2.39677734374996],[30.65664062500005,-2.373828124999989],[30.71484375000003,-2.363476562500011],[30.7625,-2.371679687499991],[30.828710937500006,-2.338476562499977],[30.85498046874997,-2.265429687500017],[30.8765625,-2.143359375000017],[30.864648437499994,-2.044042968749949],[30.819140625000017,-1.967480468749983],[30.812597656250006,-1.56308593750002],[30.76220703124997,-1.458691406249983],[30.710742187500074,-1.396777343749974],[30.631933593750006,-1.36748046874996],[30.508105468750074,-1.208203125000026],[30.47021484374997,-1.13115234374996],[30.47705078124997,-1.0830078125],[30.509960937500097,-1.067285156249994],[30.51992187499999,-1.0625],[30.67275390625005,-1.051367187499949],[30.741992187500017,-1.007519531249997],[30.809179687500063,-0.994921875],[30.82363281250005,-0.999023437499943],[30.84472656250003,-1.002050781250034],[32.371875,-1.002050781250034],[33.90322265625005,-1.002050781250034]]]]},"properties":{"name":"Tanzania","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[30.50996093750001,-1.067285156250009],[30.46992187500001,-1.066015625],[30.41230468750001,-1.063085937500006],[30.360253906250023,-1.074609375],[29.930078125000023,-1.469921875000011],[29.82539062500001,-1.335546875],[29.576953125000017,-1.387890625000011],[29.717675781250023,0.098339843749997],[29.934472656250023,0.4990234375],[29.94287109375,0.819238281249994],[31.252734375000017,2.044580078124994],[31.176367187500006,2.270068359374989],[30.728613281250006,2.455371093749989],[30.8466796875,2.847021484374991],[30.754003906250006,3.041796874999989],[30.90644531250001,3.408935546875],[30.83857421875001,3.49072265625],[31.15234375,3.785595703124997],[31.547167968750017,3.677587890624991],[31.79804687500001,3.802636718749994],[32.13593750000001,3.519726562499997],[32.33574218750002,3.706201171874994],[32.99726562500001,3.880175781249989],[33.489355468750006,3.755078125],[33.568457031250006,3.81171875],[33.74160156250002,3.985253906249994],[33.97607421875,4.22021484375],[34.13203125000001,3.88916015625],[34.18574218750001,3.869775390624994],[34.1650390625,3.81298828125],[34.26708984375,3.733154296875],[34.39287109375002,3.691503906249991],[34.43769531250001,3.650585937499997],[34.44179687500002,3.60625],[34.3994140625,3.412695312499991],[34.4072265625,3.357519531249991],[34.447851562500006,3.163476562499994],[34.90576171875,2.4796875],[34.88300781250001,2.417919921874997],[34.96406250000001,2.062402343749994],[34.9775390625,1.861914062499991],[34.97646484375002,1.719628906249994],[34.79863281250002,1.24453125],[34.48173828125002,1.042138671874994],[34.41083984375001,0.867285156249991],[34.16093750000002,0.605175781249997],[33.94316406250002,0.173779296874997],[33.90322265625002,-1.002050781250006],[32.371875,-1.002050781250006],[30.8447265625,-1.002050781250006],[30.823632812500023,-0.9990234375],[30.809179687500006,-0.994921875],[30.741992187500017,-1.007519531250011],[30.672753906250023,-1.051367187500006],[30.598730468750006,-1.069726562500009],[30.519921875000023,-1.0625],[30.50996093750001,-1.067285156250009]]]},"properties":{"name":"Uganda","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[32.01220703124997,46.20390624999999],[32.15009765625004,46.1546875],[31.56386718750005,46.25776367187504],[31.50878906250003,46.373144531250006],[32.01220703124997,46.20390624999999]]],[[[38.21435546875003,47.091455078124966],[37.54335937499999,47.07456054687498],[36.794824218749994,46.71440429687499],[36.55878906250004,46.76269531250006],[35.82714843749997,46.62431640625002],[35.01455078125005,46.10600585937502],[35.280175781249994,46.27949218750001],[35.23037109375005,46.440625],[34.84960937500003,46.189892578124955],[35.02285156250005,45.70097656250002],[35.45751953124997,45.316308593749994],[36.170507812500006,45.453076171874955],[36.575,45.3935546875],[36.39335937500002,45.06538085937501],[35.87011718750003,45.005322265624955],[35.472558593749994,45.098486328125006],[35.08769531250002,44.802636718749966],[34.46992187500004,44.7216796875],[33.909960937500074,44.387597656249966],[33.45068359374997,44.553662109374955],[33.55517578125003,45.09765625000003],[32.5080078125001,45.40380859375006],[33.664843750000074,45.94707031249996],[33.59414062500005,46.09624023437499],[33.42988281250004,46.05761718750003],[33.20224609375006,46.17573242187501],[32.47675781250004,46.08369140625001],[31.83125,46.28168945312501],[32.00849609375004,46.42998046875002],[31.554882812500097,46.554296875000034],[32.36132812499997,46.474951171875034],[32.578027343749994,46.615625],[32.04433593750005,46.642480468749966],[31.75917968750005,47.21284179687501],[31.872851562500017,46.649755859375034],[31.532128906249994,46.66474609374998],[31.56337890625005,46.77729492187501],[31.402929687500063,46.62880859375002],[30.796289062499994,46.55200195312503],[30.219042968750074,45.866748046875045],[29.62841796875003,45.722460937500045],[29.705859375000074,45.25991210937505],[29.567675781250074,45.37080078124998],[29.40371093750005,45.419677734375],[29.22353515625005,45.402929687500034],[28.894335937500017,45.28994140625002],[28.78173828125,45.30986328125002],[28.76660156250003,45.28623046874998],[28.78828125000001,45.240966796875],[28.451269531250006,45.292187499999955],[28.317675781250045,45.347119140624955],[28.2125,45.45043945312506],[28.26484375000004,45.48388671875003],[28.310351562500074,45.49858398437499],[28.499023437500057,45.517724609374994],[28.513769531250034,45.57241210937502],[28.49160156250005,45.66577148437503],[28.562304687500074,45.73579101562501],[28.667578125,45.79384765625002],[28.729296875000074,45.852001953124955],[28.73876953125003,45.937158203124994],[28.84951171875005,45.97866210937502],[28.94775390624997,46.049951171874966],[28.971875,46.12763671874998],[29.00625,46.17646484374998],[28.94375,46.28842773437506],[28.930566406250023,46.36225585937501],[28.92744140625001,46.42412109374999],[28.958398437500023,46.45849609374997],[29.146289062500017,46.52690429687496],[29.186230468750068,46.52397460937499],[29.20078125,46.504980468750034],[29.20458984374997,46.37934570312501],[29.223828125000097,46.37695312499997],[29.458789062500017,46.453759765624994],[29.83789062499997,46.35053710937501],[29.878027343750063,46.360205078125034],[30.07568359375003,46.377832031249966],[30.131054687500097,46.42309570312506],[29.92431640624997,46.53886718750002],[29.934765625000097,46.625],[29.942480468750063,46.72377929687502],[29.918066406250063,46.78242187499998],[29.877832031249994,46.828906250000045],[29.57197265625004,46.96401367187502],[29.455664062500006,47.292626953124994],[29.134863281250006,47.48969726562501],[29.125390625000023,47.96455078125001],[28.42304687500001,48.146875],[28.34052734375001,48.144433593749994],[27.54921875000008,48.47773437500004],[27.22851562500003,48.37143554687506],[26.90058593750001,48.37192382812506],[26.847070312500023,48.387158203124955],[26.640429687500045,48.29414062500001],[26.618945312500017,48.25986328125006],[26.4423828125,48.22998046875],[26.162695312500063,47.992529296875034],[25.90869140625,47.96757812500002],[25.689257812500045,47.93247070312506],[25.46425781250005,47.910791015624994],[24.979101562500063,47.72412109374997],[24.578906250000074,47.93105468750005],[23.628710937500017,47.995849609375],[23.40820312500003,47.98999023437506],[23.20263671875,48.084521484375045],[23.13945312499999,48.08740234375],[22.87666015625001,47.94726562500006],[22.769140625000063,48.109619140625],[22.582421875000023,48.134033203125],[22.253710937500017,48.407373046874994],[22.131835937500057,48.40532226562502],[22.142871093750017,48.568505859374966],[22.295214843750045,48.68583984374999],[22.389453125000045,48.87348632812501],[22.52412109375004,49.03139648437502],[22.538671875,49.07270507812501],[22.847070312500023,49.08125],[22.705664062500006,49.17119140624999],[22.6494140625,49.53901367187498],[22.706152343750006,49.60620117187497],[23.03632812500004,49.899072265624966],[23.711718750000045,50.377343749999966],[23.97265625,50.410058593749966],[24.089941406250006,50.53046874999998],[24.0947265625,50.617041015625034],[23.9970703125,50.809375],[24.095800781250063,50.87275390625001],[23.664453125000023,51.31005859375],[23.61376953125,51.525390625],[23.706835937500045,51.64130859374998],[23.79169921875001,51.63710937500002],[23.864257812500057,51.62397460937501],[23.951171875,51.58505859374998],[23.978320312500017,51.59130859375003],[24.12685546875008,51.664648437500034],[24.280078125000017,51.77470703124999],[24.361914062500006,51.86752929687498],[25.785742187500006,51.923828125],[26.77343750000003,51.77070312499998],[26.952832031249983,51.754003906250034],[27.074121093750023,51.760839843750006],[27.14199218750008,51.75205078124998],[27.29628906250008,51.59741210937503],[27.689746093750017,51.572412109374994],[27.7,51.47797851562501],[27.85859375000004,51.59238281250006],[28.532031250000017,51.56245117187501],[28.59902343750008,51.54262695312505],[28.647753906250074,51.45654296875],[28.690234375000017,51.43886718750005],[28.73125,51.43339843749999],[28.84951171875005,51.540185546874994],[28.927539062500045,51.56215820312502],[28.97773437500004,51.57177734375003],[29.01308593750005,51.59892578124996],[29.06074218750001,51.625439453124955],[29.102050781250057,51.627539062500034],[29.346484375000017,51.38256835937503],[30.160742187500006,51.477880859375006],[30.449511718750017,51.274316406249994],[30.63251953125004,51.35541992187501],[30.61171875000005,51.406347656250006],[30.602343750000017,51.47124023437499],[30.56074218750004,51.531494140625],[30.533007812500017,51.596337890624966],[30.583886718749994,51.68896484375003],[30.667285156250017,51.81411132812502],[30.755273437499994,51.89516601562502],[30.84570312500003,51.95307617187501],[30.980664062500097,52.04619140624996],[31.217968750000097,52.05024414062498],[31.345996093750074,52.10537109375002],[31.57373046875003,52.108105468749955],[31.763378906250097,52.10107421875003],[32.12226562500004,52.05058593749996],[32.435449218749994,52.307226562500034],[33.735253906249994,52.344775390625045],[34.397851562499994,51.780419921874994],[34.12109375000003,51.67915039062498],[34.21386718750003,51.25537109375006],[35.0640625,51.203417968750045],[35.31191406250005,51.043896484374955],[35.59111328125002,50.36875],[36.1164062500001,50.408544921875006],[36.619433593750074,50.209228515625],[37.42285156249997,50.411474609375006],[38.046875,49.92001953125006],[38.258593750000074,50.05234375],[38.91835937499999,49.82470703125],[39.17480468750003,49.85595703124997],[39.780566406250074,49.57202148437503],[40.080664062500006,49.576855468749955],[40.10878906250005,49.251562500000034],[39.68652343749997,49.007910156250034],[40.00361328125004,48.82207031250002],[39.792871093749994,48.807714843750034],[39.6447265625001,48.591210937499966],[39.8356445312501,48.54277343749996],[39.95791015625005,48.268896484375034],[39.77871093750005,47.88754882812506],[38.90029296875005,47.85512695312502],[38.36884765625004,47.609960937500006],[38.21435546875003,47.091455078124966]]]]},"properties":{"name":"Ukraine","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-57.81059570312499,-30.85859375000001],[-57.872509765625,-30.59101562500001],[-57.831201171874994,-30.495214843750006],[-57.71269531249999,-30.38447265625001],[-57.65087890625,-30.295019531250006],[-57.645751953125,-30.226953125],[-57.60888671875,-30.187792968750003],[-57.55229492187499,-30.26123046875],[-57.21445312499999,-30.28339843750001],[-57.186914062499994,-30.26484375000001],[-57.120507812499994,-30.14443359375001],[-56.83271484375,-30.107226562500003],[-56.4072265625,-30.44746093750001],[-55.998974609375,-30.837207031250003],[-56.018457031249994,-30.99189453125001],[-56.00468749999999,-31.079199218750006],[-55.873681640624994,-31.069628906250003],[-55.6271484375,-30.85810546875001],[-55.60302734375,-30.85078125000001],[-55.55732421875,-30.8759765625],[-55.17353515625,-31.279589843750003],[-55.09116210937499,-31.31396484375],[-55.036035156249994,-31.27900390625001],[-54.587646484375,-31.48515625],[-54.22055664062499,-31.85517578125001],[-53.76171875,-32.05683593750001],[-53.601708984374994,-32.40302734375001],[-53.12558593749999,-32.73671875],[-53.2140625,-32.82109375],[-53.31010742187499,-32.92705078125],[-53.39521484375,-33.010351562500006],[-53.482861328125,-33.06855468750001],[-53.511865234374994,-33.10869140625],[-53.53134765624999,-33.1708984375],[-53.53134765624999,-33.65546875000001],[-53.37060546875,-33.7421875],[-53.419580078124994,-33.77919921875001],[-53.47246093749999,-33.84931640625001],[-53.53452148437499,-34.01748046875001],[-53.742919921875,-34.24951171875],[-53.785302734374994,-34.38037109375],[-54.16855468749999,-34.670703125],[-54.902294921875,-34.93281250000001],[-55.67314453124999,-34.77568359375],[-56.249951171875,-34.90126953125001],[-57.17070312499999,-34.45234375000001],[-57.8291015625,-34.47734375],[-58.40019531249999,-33.91240234375],[-58.363525390625,-33.18232421875001],[-58.08232421874999,-32.893652343750006],[-58.12958984375,-32.75722656250001],[-58.16220703124999,-32.566503906250006],[-58.201171875,-32.4716796875],[-58.123046875,-32.321875],[-58.11972656249999,-32.24892578125001],[-58.164794921875,-32.18486328125],[-58.177001953125,-32.11904296875001],[-58.15634765624999,-32.0515625],[-58.160400390625,-31.98652343750001],[-58.18901367187499,-31.92421875],[-58.16748046875,-31.87265625],[-58.04233398437499,-31.76923828125001],[-58.006982421874994,-31.68496093750001],[-58.053857421874994,-31.494921875],[-58.0333984375,-31.416601562500006],[-57.89335937499999,-31.1953125],[-57.868408203125,-31.10439453125001],[-57.88632812499999,-30.93740234375001],[-57.81059570312499,-30.85859375000001]]]},"properties":{"name":"Uruguay","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-155.58134765624996,19.012011718750017],[-155.88129882812495,19.07050781250001],[-156.04868164062498,19.749951171874983],[-155.82031249999997,20.01416015624997],[-155.83164062499998,20.27583007812501],[-155.198779296875,19.99438476562503],[-154.80419921875,19.524462890625045],[-155.58134765624996,19.012011718750017]]],[[[-156.84960937499997,20.772656249999955],[-156.97338867187497,20.757519531249983],[-157.0505859375,20.912451171875034],[-156.88056640624995,20.904833984375074],[-156.84960937499997,20.772656249999955]]],[[[-156.48681640624994,20.93256835937504],[-156.27753906250004,20.951269531250034],[-155.98984374999998,20.75712890624999],[-156.40878906249998,20.60517578125004],[-156.480078125,20.80122070312501],[-156.69775390625003,20.949072265625034],[-156.58540039062495,21.034326171874994],[-156.48681640624994,20.93256835937504]]],[[[-157.21362304687497,21.215380859375017],[-156.71215820312506,21.155078125000074],[-156.85986328125,21.05634765625004],[-157.29033203124996,21.112597656250017],[-157.21362304687497,21.215380859375017]]],[[[-157.79936523437502,21.456640625000034],[-157.63540039062502,21.30761718749997],[-158.11035156249994,21.318603515625],[-158.27314453125,21.585253906250045],[-157.9625,21.701367187499983],[-157.79936523437502,21.456640625000034]]],[[[-159.37275390625,21.93237304687497],[-159.60883789062495,21.909521484375034],[-159.78916015625003,22.041796875000074],[-159.57919921874998,22.22314453124997],[-159.35205078124997,22.219580078125034],[-159.37275390625,21.93237304687497]]],[[[-81.04418945312503,24.716796875000057],[-81.137353515625,24.710498046875017],[-80.93046875,24.75947265625004],[-81.04418945312503,24.716796875000057]]],[[[-80.3818359375,25.142285156249955],[-80.58056640624997,24.954248046875023],[-80.25708007812497,25.34760742187504],[-80.3818359375,25.142285156249955]]],[[[-97.17070312499996,26.159375],[-97.40209960937494,26.820507812499983],[-97.38598632812494,27.19648437500004],[-97.17070312499996,26.159375]]],[[[-80.18676757812497,27.278417968750034],[-80.17050781250003,27.20478515625004],[-80.43691406249994,27.850537109374955],[-80.18676757812497,27.278417968750034]]],[[[-91.793701171875,29.50073242187497],[-92.00664062499996,29.61030273437501],[-91.875244140625,29.640966796875034],[-91.793701171875,29.50073242187497]]],[[[-84.90791015624998,29.642626953125017],[-85.11674804687499,29.63281249999997],[-84.737158203125,29.732421875],[-84.90791015624998,29.642626953125017]]],[[[-89.22397460937498,30.084082031249977],[-89.34199218749995,30.062841796875006],[-89.18466796874995,30.168652343749983],[-89.22397460937498,30.084082031249977]]],[[[-118.34794921875002,33.3857421875],[-118.29746093750003,33.312109375],[-118.44628906249997,33.317089843749955],[-118.56943359375002,33.46416015624999],[-118.34794921875002,33.3857421875]]],[[[-120.04355468749995,33.918847656249994],[-120.25190429687494,34.01386718749998],[-120.07182617187493,34.026513671874966],[-120.04355468749995,33.918847656249994]]],[[[-119.88237304687497,34.07968749999998],[-119.54926757812497,34.02817382812506],[-119.80957031249997,33.9677734375],[-119.88237304687497,34.07968749999998]]],[[[-75.54414062499995,35.240087890625034],[-75.69008789062502,35.221582031249994],[-75.53637695312497,35.27861328124999],[-75.50351562500003,35.769140625],[-75.46474609374994,35.448632812499966],[-75.54414062499995,35.240087890625034]]],[[[-74.13320312500002,39.680761718750034],[-74.25048828125,39.529394531250006],[-74.10673828124996,39.74643554687498],[-74.13320312500002,39.680761718750034]]],[[[-72.50976562500003,40.98603515625001],[-72.58085937499996,40.92133789062498],[-71.90322265625,41.06069335937505],[-73.19428710937495,40.654199218749994],[-74.01489257812497,40.581201171874966],[-73.87924804687498,40.79165039062502],[-73.573828125,40.91962890624998],[-72.62509765624998,40.99184570312505],[-72.27412109374998,41.15302734375001],[-72.50976562500003,40.98603515625001]]],[[[-69.9779296875,41.26557617187504],[-70.23305664062502,41.28632812500001],[-70.04121093750001,41.3974609375],[-69.9779296875,41.26557617187504]]],[[[-70.50991210937502,41.376318359375034],[-70.82919921874995,41.35898437500006],[-70.61601562499996,41.45722656250001],[-70.50991210937502,41.376318359375034]]],[[[-71.24140625000001,41.49194335937497],[-71.34624023437496,41.469384765624994],[-71.23203124999995,41.654296875],[-71.24140625000001,41.49194335937497]]],[[[-68.18725585937497,44.33247070312501],[-68.41171875000003,44.294335937499966],[-68.29941406249998,44.456494140624955],[-68.18725585937497,44.33247070312501]]],[[[-122.394140625,47.39526367187503],[-122.50991210937497,47.358007812500006],[-122.486474609375,47.48876953125],[-122.394140625,47.39526367187503]]],[[[-122.57275390624999,48.15664062499999],[-122.38315429687499,47.923193359375034],[-122.74150390624999,48.22529296875004],[-122.62861328125,48.38422851562498],[-122.54243164062503,48.29399414062499],[-122.69702148437499,48.228662109374994],[-122.57275390624999,48.15664062499999]]],[[[-94.80346679687497,49.0029296875],[-94.71279296874997,48.863427734374994],[-94.62089843749999,48.74262695312501],[-93.85161132812496,48.607275390625034],[-93.70771484374995,48.52543945312499],[-93.37788085937498,48.61655273437498],[-93.25795898437497,48.62885742187501],[-92.83671875,48.567773437499994],[-92.50058593749995,48.43535156250002],[-92.41459960937493,48.276611328125],[-92.3484375,48.276611328125],[-92.00517578125002,48.301855468750006],[-91.38720703124997,48.05854492187498],[-91.04345703125003,48.19370117187498],[-90.84033203125003,48.20053710937506],[-90.79731445312495,48.13105468750001],[-89.4556640625,47.996240234374994],[-88.37817382812497,48.30307617187498],[-87.74389648437497,48.06054687500003],[-87.20800781249997,47.848486328125006],[-86.67216796874996,47.636425781249955],[-85.65224609375,47.21997070312503],[-85.07006835937497,46.97993164062498],[-84.87597656249994,46.89990234375003],[-84.66577148437503,46.54326171875002],[-84.44047851562496,46.49814453125006],[-84.12319335937497,46.50292968749997],[-83.97778320312503,46.08491210937498],[-83.61596679687503,46.116845703124994],[-83.46948242187503,45.99467773437499],[-83.59267578125,45.81713867187506],[-82.91933593749994,45.51796875000002],[-82.55107421874996,45.34736328125001],[-82.48505859374993,45.08374023437503],[-82.137841796875,43.570898437500034],[-82.19038085937495,43.47407226562501],[-82.54531249999997,42.62470703124998],[-83.10952148437497,42.25068359375001],[-83.141943359375,41.97587890624996],[-82.69003906249995,41.675195312499994],[-82.43906249999998,41.67485351562502],[-81.97416992187496,41.88872070312499],[-81.50732421874997,42.10346679687504],[-81.02822265624997,42.247167968750006],[-80.24755859375,42.36601562499996],[-79.17373046875,42.74853515625],[-78.91508789062496,42.90913085937504],[-78.98076171874993,42.98061523437502],[-79.02617187499996,43.01733398437506],[-79.066064453125,43.10610351562502],[-79.171875,43.466552734375],[-79.00249023437502,43.52714843749999],[-78.845556640625,43.58334960937498],[-78.72041015625001,43.62495117187501],[-78.45825195312497,43.63149414062502],[-77.596533203125,43.62861328124998],[-76.819970703125,43.62880859375002],[-76.18579101562503,44.24223632812502],[-75.81933593749997,44.468017578125],[-75.40126953124997,44.77226562499999],[-74.99614257812496,44.970117187499966],[-74.76245117187494,44.99907226562502],[-74.663232421875,45.00390625000003],[-71.51752929687495,45.00756835937497],[-71.327294921875,45.29008789062496],[-70.86503906249999,45.27070312500001],[-70.296240234375,45.90610351562506],[-70.00771484375002,46.70893554687501],[-69.24287109374998,47.46298828124998],[-69.0501953125,47.426611328125034],[-68.93720703124998,47.21123046875002],[-68.23549804687502,47.34594726562503],[-67.806787109375,47.08281249999999],[-67.80224609374994,45.7275390625],[-67.43266601562496,45.603125],[-67.366943359375,45.17377929687498],[-67.12485351562498,45.16943359375],[-66.98701171874995,44.82768554687502],[-67.191259765625,44.67558593750002],[-67.83906249999998,44.576269531250034],[-68.056640625,44.38432617187502],[-68.15205078124998,44.50200195312499],[-68.45058593749997,44.50761718749999],[-68.53251953124996,44.25864257812498],[-68.81191406249994,44.33935546875],[-68.76269531249994,44.57075195312498],[-69.22607421875003,43.98647460937505],[-69.52075195312503,43.89736328125002],[-69.55668945312496,43.982763671875006],[-69.62392578125,43.88061523437497],[-69.65288085937493,43.99389648437506],[-69.808349609375,43.772314453125034],[-69.965234375,43.855078125],[-70.17880859374998,43.76635742187506],[-70.73310546875001,43.07001953125004],[-70.82905273437493,42.82534179687502],[-70.61293945312497,42.623242187499955],[-71.04619140624993,42.331103515625045],[-70.73828125,42.228857421875006],[-70.42666015625002,41.75727539062501],[-70.00141601562498,41.82617187500003],[-70.24106445312495,42.09121093750002],[-70.10893554687496,42.07832031249998],[-69.97788085937498,41.961279296875006],[-69.94863281249997,41.67714843750005],[-70.65712890625,41.53422851562496],[-70.70112304687498,41.71484375],[-71.1685546875,41.489404296874994],[-71.14873046874996,41.74570312499998],[-71.27109375,41.68125],[-71.39013671875003,41.79531250000005],[-71.52285156249997,41.378955078125045],[-72.92470703125002,41.28515625000003],[-73.98710937499999,40.751367187499994],[-73.87197265625,41.05517578124997],[-73.96992187499995,41.24970703125001],[-73.92719726562495,40.914257812499955],[-74.26420898437496,40.52861328124999],[-73.972265625,40.40034179687498],[-74.079931640625,39.78813476562496],[-74.06459960937497,39.99311523437498],[-74.79448242187499,39.00190429687501],[-74.95429687499995,38.949951171875],[-74.89702148437502,39.14545898437504],[-75.52421874999999,39.49018554687501],[-75.421875,39.78969726562502],[-75.07416992187495,39.98349609375006],[-75.40063476562503,39.83159179687502],[-75.58759765625001,39.64077148437505],[-75.3921875,39.09277343750006],[-75.08867187499999,38.777539062499955],[-75.18710937499995,38.59111328124999],[-75.03876953124993,38.426367187500006],[-75.934375,37.15190429687496],[-75.97504882812498,37.3984375],[-75.65927734374995,37.953955078125034],[-75.850830078125,37.971582031249994],[-75.85869140624999,38.36206054687503],[-76.05122070312495,38.27954101562503],[-76.2646484375,38.436425781249994],[-76.26416015625,38.599951171875006],[-76.016943359375,38.62509765624998],[-76.21298828124998,38.75830078125003],[-76.34116210937498,38.70966796874998],[-76.16816406249998,38.85273437499998],[-76.32958984375,38.95278320312505],[-76.13520507812493,39.082128906250006],[-76.23569335937498,39.19160156250001],[-76.153125,39.315039062500034],[-75.87597656249997,39.3759765625],[-76.003125,39.41083984375001],[-75.87294921874997,39.510888671874966],[-75.95893554687498,39.58505859374998],[-76.2763671875,39.32275390625],[-76.330810546875,39.40390625],[-76.42089843749997,39.225],[-76.57041015624995,39.26933593749996],[-76.42758789062498,39.12602539062499],[-76.55854492187493,39.065234375000045],[-76.39409179687502,38.368994140625034],[-76.67734374999998,38.611962890624966],[-76.66855468749998,38.5375],[-76.34116210937498,38.08701171875006],[-76.86811523437495,38.39028320312502],[-76.88974609375,38.292089843750006],[-77.00117187499995,38.44526367187504],[-77.23251953125,38.40771484375003],[-77.03037109374995,38.88925781249998],[-77.26040039062502,38.6],[-77.27324218749996,38.35175781249998],[-77.04677734375002,38.356689453125],[-76.26425781250003,37.89355468749997],[-76.34414062499997,37.675683593749994],[-76.49248046874999,37.682226562500006],[-77.11108398437497,38.165673828124994],[-76.54946289062494,37.66914062500001],[-76.30556640625,37.57148437500001],[-76.26347656249996,37.35703125],[-76.40097656249998,37.386132812499994],[-76.45390624999993,37.27353515625006],[-76.75771484375002,37.50541992187496],[-76.28330078125,37.05268554687501],[-76.40087890624997,36.991308593750034],[-76.63090820312493,37.22172851562499],[-77.25087890624994,37.329199218750034],[-76.671875,37.172949218750006],[-76.48784179687502,36.89702148437499],[-75.99941406249997,36.91264648437499],[-75.53417968749997,35.81909179687506],[-75.94648437499995,36.65908203125002],[-75.99277343749995,36.47377929687502],[-75.82006835937494,36.11284179687502],[-76.14785156250002,36.279296875],[-76.15,36.14575195312497],[-76.27060546874998,36.18989257812501],[-76.22739257812498,36.11601562499996],[-76.559375,36.015332031249955],[-76.733642578125,36.229150390624994],[-76.726220703125,35.957617187500034],[-76.06977539062501,35.970312500000034],[-76.08359374999998,35.69052734375006],[-75.85390625,35.96015625000001],[-75.75883789062499,35.84326171875],[-75.77392578124997,35.64697265624997],[-76.17382812499997,35.354150390624994],[-76.489501953125,35.397021484375045],[-76.57719726562502,35.53232421874998],[-76.74140624999998,35.431494140625034],[-77.03999023437495,35.527392578125045],[-76.51293945312497,35.270410156249994],[-76.77915039062503,34.990332031250034],[-77.07026367187501,35.154638671875034],[-76.97495117187503,35.025195312500045],[-76.74497070312498,34.94096679687502],[-76.45673828124998,34.989355468750034],[-76.36220703125,34.9365234375],[-76.43979492187498,34.84291992187502],[-77.29624023437503,34.602929687499994],[-77.41225585937497,34.730810546875034],[-77.37978515625,34.526611328125],[-77.750732421875,34.28496093749996],[-77.92783203125,33.93974609374999],[-77.95327148437494,34.16899414062496],[-78.01333007812502,33.91181640624998],[-78.40585937499995,33.91757812499998],[-78.84145507812497,33.72407226562501],[-79.19379882812498,33.24414062500003],[-79.22646484375,33.40488281249998],[-79.27602539062497,33.135400390624966],[-79.80498046874999,32.78740234374996],[-79.93310546874997,32.81005859375006],[-79.94072265625002,32.667138671874966],[-80.36284179687496,32.500732421875],[-80.6341796875,32.51171875000003],[-80.474267578125,32.42275390625002],[-80.579345703125,32.28730468750004],[-80.80253906249999,32.44804687500002],[-80.69423828124997,32.21572265625002],[-81.11328124999997,31.87861328125001],[-81.06611328124995,31.787988281250023],[-81.259375,31.538916015624977],[-81.17543945312494,31.531298828125017],[-81.38095703124998,31.353271484375],[-81.28847656249997,31.263916015625],[-81.441748046875,31.19970703124997],[-81.5162109375,30.801806640625017],[-81.24951171875003,29.793798828125006],[-80.52412109374995,28.48608398437503],[-80.5849609375,28.271582031250034],[-80.456884765625,27.90068359374996],[-80.61000976562494,28.177587890624977],[-80.60693359375003,28.522900390624983],[-80.693505859375,28.34497070312497],[-80.68847656250003,28.578515625000023],[-80.83818359374999,28.757666015625034],[-80.74863281250003,28.381005859375023],[-80.050048828125,26.807714843750063],[-80.1263671875,25.83349609375],[-80.48466796874999,25.229833984375034],[-81.11049804687494,25.138037109374977],[-81.13603515624999,25.309667968750034],[-80.94042968750003,25.264208984375017],[-81.11333007812499,25.367236328125045],[-81.36494140625001,25.83105468750003],[-81.715478515625,25.98315429687503],[-81.95893554687495,26.489941406249983],[-81.82866210937496,26.68706054687499],[-82.03959960937496,26.552050781250017],[-82.01328125,26.96157226562505],[-82.24287109374998,26.848876953125],[-82.44135742187501,27.059667968750034],[-82.71459960937497,27.499609375000063],[-82.40576171874994,27.862890624999977],[-82.67519531249994,27.963769531250023],[-82.61098632812502,27.77724609375005],[-82.74287109374995,27.709375],[-82.84350585937494,27.845996093750017],[-82.65146484375,28.8875],[-83.69438476562502,29.92597656250001],[-84.04423828124996,30.10380859374999],[-84.30966796874995,30.064746093750045],[-84.38281250000003,29.90737304687505],[-85.31894531249995,29.680224609375045],[-85.413818359375,29.76757812499997],[-85.413818359375,29.842480468749955],[-85.31489257812493,29.758105468750017],[-85.35361328125,29.875732421875],[-85.67578125,30.121923828125063],[-85.60351562500003,30.286767578124966],[-85.75581054687495,30.1669921875],[-86.454443359375,30.39912109375004],[-86.12382812499999,30.40581054687499],[-86.25737304687502,30.493017578124977],[-87.201171875,30.339257812499994],[-86.98579101562498,30.43085937500001],[-86.99755859375,30.5703125],[-87.17060546874998,30.538769531249983],[-87.28105468750002,30.339257812499994],[-87.47578124999998,30.294287109375006],[-87.44829101562499,30.394140625],[-87.62226562499998,30.264746093750006],[-88.00595703124998,30.230908203124955],[-87.79028320312503,30.291796875000017],[-88.011328125,30.694189453125006],[-88.13544921874998,30.366601562499994],[-88.90522460937495,30.415136718750006],[-89.32055664062503,30.3453125],[-89.58847656249998,30.165966796874955],[-90.12597656249997,30.369091796874955],[-90.33198242187493,30.277587890625057],[-90.41303710937501,30.140332031249983],[-90.17534179687499,30.02910156249996],[-89.73745117187497,30.171972656250034],[-89.66503906249994,30.117041015625034],[-89.81518554687497,30.007275390624955],[-89.631689453125,29.90380859375003],[-89.400732421875,30.04604492187505],[-89.35444335937501,29.82021484375005],[-89.72089843749995,29.619287109374966],[-89.01572265625,29.202880859375057],[-89.15551757812497,29.01660156250003],[-89.23608398437494,29.081103515625017],[-89.37612304687497,28.981347656250023],[-89.44316406249996,29.194140625000045],[-90.15908203124997,29.537158203125017],[-90.05278320312499,29.336816406249966],[-90.21279296875,29.104931640624983],[-90.37919921874996,29.29511718750001],[-90.75102539062496,29.13085937500003],[-91.29013671875,29.288964843749994],[-91.15078124999994,29.317919921875045],[-91.24882812499993,29.56420898437503],[-91.51420898437499,29.55537109375001],[-91.8931640625,29.836035156249977],[-92.135498046875,29.699462890625057],[-92.08403320312499,29.59282226562499],[-92.26083984374995,29.55683593750004],[-93.17568359375,29.778955078124994],[-93.82646484374999,29.725146484375045],[-93.84145507812502,29.97973632812503],[-93.89047851562495,29.689355468750023],[-94.759619140625,29.384277343750057],[-94.52626953125,29.547949218750006],[-94.77827148437498,29.54785156249997],[-94.74194335937497,29.75],[-95.0228515625,29.70234375000001],[-94.88828125000003,29.37055664062501],[-95.27348632812499,28.96386718750003],[-96.23452148437502,28.488964843749983],[-96.01103515624996,28.631933593749977],[-96.44873046874997,28.594482421875],[-96.64003906249994,28.708789062500017],[-96.42109374999993,28.457324218750045],[-96.67636718749998,28.34130859375003],[-96.77353515624998,28.421630859375057],[-96.839501953125,28.194384765625017],[-97.156494140625,28.144335937500045],[-97.141259765625,28.060742187499983],[-97.034326171875,28.093847656250063],[-97.07309570312498,27.98608398437503],[-97.43149414062498,27.83720703124999],[-97.28872070312494,27.670605468749983],[-97.43911132812502,27.328271484374966],[-97.76845703124997,27.45751953125],[-97.69238281250003,27.287158203125017],[-97.48510742187497,27.237402343750006],[-97.55468749999994,26.96733398437496],[-97.43505859375,26.48583984375003],[-97.14624023437494,25.961474609375045],[-97.37563476562497,25.871826171875],[-99.10776367187498,26.446923828124994],[-99.45654296874999,27.05668945312496],[-99.50532226562497,27.54833984375003],[-100.29604492187495,28.32768554687499],[-100.75458984375001,29.182519531249994],[-101.44038085937503,29.77685546875],[-102.26894531249998,29.871191406250034],[-102.61494140624994,29.75234375],[-102.8919921875,29.216406250000034],[-103.16831054687498,28.998193359374994],[-104.110595703125,29.386132812499994],[-104.50400390624995,29.677685546874955],[-104.97880859374996,30.645947265624955],[-106.14804687499995,31.450927734375],[-106.44541015624996,31.768408203125006],[-108.21181640625002,31.779345703125017],[-108.21445312499993,31.329443359375034],[-111.0419921875,31.32421875000003],[-114.83593749999994,32.50830078125003],[-114.72475585937495,32.71533203125003],[-117.12827148437495,32.533349609374994],[-117.46743164062495,33.295507812500006],[-118.08051757812497,33.72216796874997],[-118.41044921874996,33.74394531249996],[-118.506201171875,34.01738281249999],[-119.14375,34.11201171874998],[-119.60605468749999,34.41801757812499],[-120.48120117187503,34.47163085937498],[-120.64467773437502,34.57998046875002],[-120.65908203124994,35.122412109375034],[-120.85737304687501,35.209667968749955],[-120.899609375,35.42509765624999],[-121.28383789062494,35.67631835937499],[-121.87739257812498,36.33105468749997],[-121.80742187499995,36.851220703124994],[-122.394921875,37.20751953125003],[-122.49921875000001,37.542626953124994],[-122.44560546875002,37.797998046874966],[-122.07050781249998,37.47827148437503],[-122.38544921875001,37.960595703124966],[-122.31425781249999,38.00732421874997],[-121.52534179687503,38.05590820312503],[-122.39335937499995,38.14482421875002],[-122.52133789062499,37.82641601562497],[-122.93198242187498,38.05546875000002],[-122.998779296875,37.98862304687498],[-122.90815429687501,38.19658203124999],[-123.701123046875,38.90727539062502],[-123.83291015624994,39.775488281250034],[-124.35654296875003,40.37109374999997],[-124.07192382812497,41.45952148437502],[-124.53964843750003,42.812890624999966],[-124.14873046874997,43.691748046875034],[-123.92934570312495,45.57695312499996],[-123.989306640625,46.21938476562502],[-123.22060546874998,46.153613281250045],[-123.46484375,46.27109374999998],[-124.07275390624996,46.279443359374994],[-124.04433593750002,46.605078125],[-123.946142578125,46.43256835937501],[-123.88916015625003,46.660009765625006],[-124.11254882812497,46.862695312499994],[-123.84287109375002,46.963183593750045],[-124.11171875,47.03520507812496],[-124.1392578125,46.95468749999998],[-124.376025390625,47.658642578124955],[-124.66308593749996,47.97412109375003],[-124.7099609375,48.38037109375],[-123.97578125,48.16845703125],[-122.97387695312499,48.07329101562496],[-122.77861328125,48.13759765625002],[-122.65664062500002,47.88115234374999],[-122.77841796874996,47.738427734374966],[-122.82138671875,47.79316406250001],[-123.1390625,47.386083984375034],[-122.92216796874993,47.40766601562498],[-123.066796875,47.39965820312506],[-123.04863281249995,47.479345703125034],[-122.53281250000002,47.919726562500045],[-122.67548828124995,47.612353515625045],[-122.57788085937496,47.29316406250001],[-122.76777343750001,47.21835937500006],[-122.82846679687503,47.336572265624994],[-123.02758789062501,47.13891601562503],[-122.70195312500002,47.11088867187502],[-122.35380859374996,47.37158203125],[-122.40180664062497,47.78427734374998],[-122.24199218750002,48.01074218750003],[-122.5169921875,48.15966796874997],[-122.40854492187502,48.29389648437498],[-122.66899414062496,48.465234374999966],[-122.49677734374995,48.50556640625001],[-122.51274414062502,48.66943359375],[-122.56201171875001,48.777978515624994],[-122.68593749999995,48.794287109375034],[-122.72246093750002,48.85302734375003],[-122.78876953125003,48.993017578125034],[-121.40722656249994,48.993017578125034],[-119.70170898437495,48.993017578125034],[-119.27534179687494,48.99306640625005],[-118.84892578124993,48.99306640625005],[-117.99619140625002,48.99306640625005],[-116.71704101562501,48.99306640625005],[-110.74765625,48.99306640625005],[-104.77832031249997,48.993115234374955],[-98.80898437499995,48.99316406249997],[-97.52983398437493,48.99316406249997],[-96.67705078124993,48.99316406249997],[-96.25068359374993,48.99316406249997],[-95.39790039062493,48.99316406249997],[-95.16206054687493,48.991748046875045],[-95.15527343749997,49.36967773437502],[-94.85434570312495,49.304589843749994],[-94.86040039062493,49.258593750000045],[-94.80346679687497,49.0029296875]]],[[[-176.28671874999998,51.79199218750006],[-176.34965820312502,51.733300781249994],[-176.41372070312502,51.840576171875],[-176.28671874999998,51.79199218750006]]],[[[-177.87905273437502,51.64970703125002],[-178.05888671875,51.67260742187497],[-177.98637695312493,51.76425781249998],[-178.16826171874996,51.90302734375001],[-177.644482421875,51.826269531250006],[-177.87905273437502,51.64970703125002]]],[[[-177.14819335937497,51.71674804687498],[-177.67021484375002,51.701074218749994],[-177.11005859375,51.92875976562502],[-177.14819335937497,51.71674804687498]]],[[[-176.593310546875,51.86669921875],[-176.45234374999995,51.735693359375034],[-176.96162109374998,51.60366210937505],[-176.69833984374998,51.986035156249955],[-176.593310546875,51.86669921875]]],[[[179.72773437500015,51.905419921874966],[179.50390625000003,51.97958984374998],[179.6271484375001,52.03041992187502],[179.72773437500015,51.905419921874966]]],[[[177.4154296875,51.88281249999997],[177.25029296875013,51.902929687500006],[177.6696289062501,52.10302734375],[177.4154296875,51.88281249999997]]],[[[-173.5533203125,52.13627929687502],[-173.02290039062504,52.07915039062502],[-173.83579101562498,52.048193359375006],[-173.99248046874993,52.12333984374996],[-173.5533203125,52.13627929687502]]],[[[-172.464794921875,52.27226562500002],[-172.61982421874998,52.27285156250005],[-172.47041015625,52.38803710937506],[-172.31362304687497,52.32958984375006],[-172.464794921875,52.27226562500002]]],[[[-174.67739257812502,52.035009765625006],[-175.29555664062502,52.022167968749955],[-174.30615234375,52.216162109375034],[-174.43554687499997,52.317236328125034],[-174.168896484375,52.42016601562503],[-174.04560546875,52.36723632812499],[-174.12065429687493,52.13520507812498],[-174.67739257812502,52.035009765625006]]],[[[173.72275390625018,52.35957031250004],[173.40234375000009,52.40478515625],[173.77607421875004,52.49511718750003],[173.72275390625018,52.35957031250004]]],[[[172.81181640625002,53.01298828125002],[173.43603515625003,52.85205078125],[172.93515625000012,52.752099609374966],[172.49482421875004,52.93789062499999],[172.81181640625002,53.01298828125002]]],[[[-167.96435546875003,53.345117187499994],[-169.088916015625,52.83203125],[-168.68984375000002,53.227246093749955],[-168.38041992187496,53.28344726562506],[-168.28769531249998,53.500146484374966],[-167.82807617187495,53.50795898437505],[-167.96435546875003,53.345117187499994]]],[[[-166.61533203124998,53.90092773437499],[-166.37231445312494,53.99897460937498],[-166.230859375,53.93261718750006],[-166.54560546875,53.726464843749966],[-166.354541015625,53.67353515625004],[-166.85097656249997,53.45288085937503],[-167.78085937500003,53.30024414062501],[-167.13608398437503,53.526464843750006],[-167.01572265625003,53.69838867187502],[-166.80898437500002,53.64614257812505],[-166.741259765625,53.71293945312496],[-167.10561523437497,53.813378906249994],[-167.03808593749997,53.9421875],[-166.67329101562498,54.00595703124998],[-166.61533203124998,53.90092773437499]]],[[[-165.841552734375,54.070654296875006],[-166.05664062500003,54.054345703124994],[-166.08774414062498,54.16914062500001],[-165.89287109375,54.20698242187498],[-165.69287109375,54.09990234375002],[-165.841552734375,54.070654296875006]]],[[[-165.56113281249998,54.13671874999997],[-165.55063476562498,54.28452148437498],[-165.40786132812502,54.19682617187496],[-165.56113281249998,54.13671874999997]]],[[[-162.29814453124993,54.847021484375006],[-162.43388671875,54.931542968749994],[-162.26459960937504,54.983496093750006],[-162.29814453124993,54.847021484375006]]],[[[-163.476025390625,54.98071289062497],[-163.37895507812496,54.81552734374998],[-163.083251953125,54.66899414062496],[-163.35810546874995,54.73569335937506],[-164.82343749999998,54.41909179687505],[-164.887646484375,54.60781250000002],[-164.47861328124998,54.906835937500006],[-163.80712890624997,55.04907226562503],[-163.476025390625,54.98071289062497]]],[[[-159.51513671875,55.15185546875003],[-159.617724609375,55.05732421875004],[-159.54506835937497,55.22597656250002],[-159.51513671875,55.15185546875003]]],[[[-131.33974609375002,55.079833984375],[-131.32954101562498,54.887744140625045],[-131.592236328125,55.02568359374999],[-131.5654296875,55.26411132812498],[-131.33974609375002,55.079833984375]]],[[[-159.87299804687495,55.128759765625034],[-160.22705078124997,54.92270507812506],[-160.17207031249995,55.123046875],[-159.88735351562497,55.27299804687502],[-159.87299804687495,55.128759765625034]]],[[[-132.86225585937504,54.894433593749966],[-132.61723632812493,54.892431640625006],[-132.70581054687497,54.684179687500034],[-133.42905273437498,55.30380859374998],[-133.097412109375,55.213720703125006],[-132.86225585937504,54.894433593749966]]],[[[-160.329296875,55.337695312500045],[-160.34331054687493,55.25878906250006],[-160.51748046875,55.33383789062506],[-160.329296875,55.337695312500045]]],[[[-160.68491210937498,55.314794921875006],[-160.552783203125,55.38076171875002],[-160.48754882812503,55.18486328124999],[-160.79506835937497,55.14521484375001],[-160.72392578124993,55.404638671875006],[-160.68491210937498,55.314794921875006]]],[[[-133.30507812500002,55.54375],[-133.6501953125,55.26928710937506],[-133.73710937500002,55.49692382812498],[-133.30507812500002,55.54375]]],[[[-155.56601562500003,55.82119140625005],[-155.73735351562493,55.82978515625001],[-155.59394531250004,55.92431640625],[-155.56601562500003,55.82119140625005]]],[[[-130.97915039062502,55.489160156249994],[-131.187890625,55.206298828125],[-131.44755859374996,55.40878906250006],[-131.7625,55.16582031250002],[-131.84609374999997,55.41625976562497],[-131.62495117187504,55.831689453124966],[-131.26923828125004,55.95537109375002],[-130.997802734375,55.727636718750006],[-130.97915039062502,55.489160156249994]]],[[[-133.56611328125,56.33920898437498],[-133.202978515625,56.31982421875003],[-133.096630859375,56.09003906250001],[-132.59760742187504,55.89501953125],[-132.17270507812498,55.48061523437502],[-132.51127929687493,55.59394531250001],[-132.63129882812495,55.47319335937502],[-132.41787109375002,55.48291015625006],[-132.20668945312497,55.22441406249996],[-131.97641601562498,55.208593750000034],[-132.06474609375002,54.713134765625],[-133.11855468750002,55.32763671875003],[-132.95888671875002,55.39555664062502],[-133.0333984375,55.589697265625034],[-133.68017578124994,55.78515625],[-133.24150390624993,55.920800781249994],[-133.371240234375,56.035888671875],[-133.74252929687498,55.96484375],[-133.530859375,56.145654296874966],[-133.56611328125,56.33920898437498]]],[[[-132.77988281249998,56.24726562499998],[-133.03500976562498,56.34091796875006],[-132.90205078124998,56.45375976562505],[-132.62910156249995,56.411914062500045],[-132.77988281249998,56.24726562499998]]],[[[-132.11235351562493,56.109375],[-132.13295898437497,55.94326171875005],[-132.28730468749995,55.92939453124998],[-132.65991210937503,56.07817382812499],[-132.379833984375,56.49877929687497],[-132.06689453125,56.24423828124998],[-132.11235351562493,56.109375]]],[[[-154.208642578125,56.51489257812497],[-154.32221679687504,56.570605468750045],[-154.11040039062496,56.602929687499966],[-154.208642578125,56.51489257812497]]],[[[-169.755224609375,56.63505859375002],[-169.47431640624998,56.59404296875002],[-169.6326171875,56.545703125000045],[-169.755224609375,56.63505859375002]]],[[[-132.746875,56.525683593750045],[-132.94804687500002,56.56723632812498],[-132.842529296875,56.79477539062506],[-132.56796875000003,56.57583007812505],[-132.746875,56.525683593750045]]],[[[-133.98959960937503,56.84497070312497],[-133.73837890625,56.65043945312496],[-133.94970703125,56.12773437499996],[-134.18959960937502,56.07695312500002],[-134.084375,56.456347656250045],[-134.37368164062502,56.838671875000045],[-134.14326171874998,56.93232421875001],[-133.98959960937503,56.84497070312497]]],[[[-133.36621093750006,57.003515625000034],[-132.99624023437497,56.93041992187497],[-132.95917968749998,56.67705078124996],[-133.03491210937494,56.62075195312505],[-133.32895507812498,56.83007812499997],[-133.158154296875,56.495166015625045],[-133.4841796875,56.45175781249998],[-133.979443359375,57.009570312500045],[-133.36621093750006,57.003515625000034]]],[[[-153.007080078125,57.12485351562498],[-153.37460937499998,57.05190429687505],[-153.285205078125,57.18505859375],[-152.90839843750004,57.152441406250006],[-153.007080078125,57.12485351562498]]],[[[-134.96977539062496,57.351416015625034],[-134.62070312499998,56.71831054687502],[-134.68188476562503,56.216162109375034],[-134.98056640625003,56.518945312499994],[-134.88344726562497,56.679052734375034],[-135.33061523437505,56.821875],[-135.19960937499997,57.02734375],[-135.45493164062503,57.24941406250005],[-135.81230468750002,57.00952148437503],[-135.82275390625,57.280419921874966],[-135.448681640625,57.534375],[-134.96977539062496,57.351416015625034]]],[[[-152.89804687499998,57.82392578125004],[-152.42875976562493,57.82568359375003],[-152.48261718749998,57.70332031249998],[-152.21621093749997,57.577001953125006],[-152.41220703125003,57.454785156249955],[-152.94077148437498,57.49809570312499],[-152.67905273437503,57.345117187499994],[-153.274365234375,57.22636718749996],[-153.732568359375,57.052343750000034],[-153.643310546875,56.960742187500045],[-154.02734375,56.77797851562502],[-153.793212890625,56.98950195312503],[-154.24375,57.143017578124955],[-154.33896484374998,56.9208984375],[-154.67319335937498,57.44609375],[-154.11616210937498,57.651220703125006],[-153.6876953125,57.30512695312504],[-153.841552734375,57.86284179687496],[-153.48793945312497,57.73095703125],[-153.21748046875004,57.79575195312506],[-153.16044921875,57.97197265624999],[-152.85039062499993,57.896777343750045],[-152.89804687499998,57.82392578125004]]],[[[-135.73037109375002,58.244238281250034],[-135.61323242187507,57.99184570312505],[-135.346630859375,58.12412109374998],[-134.9546875,58.01533203125004],[-134.97065429687495,57.817236328125006],[-135.33847656250003,57.768652343750034],[-134.97885742187503,57.724365234375],[-134.93149414062498,57.48115234375001],[-135.564208984375,57.66640625],[-135.691943359375,57.41992187500006],[-135.91079101562502,57.44658203124999],[-136.568603515625,57.97216796875003],[-136.32197265625,58.21889648437502],[-136.14375,58.098486328125006],[-136.09438476562502,58.198144531249966],[-135.73037109375002,58.244238281250034]]],[[[-134.68027343749998,58.16166992187499],[-134.24008789062498,58.143994140624955],[-133.82275390624997,57.62866210937503],[-134.29233398437498,58.044726562500074],[-133.91113281250003,57.3525390625],[-134.51601562499997,57.042578125],[-134.48676757812495,57.48203125],[-134.92348632812497,58.354638671874966],[-134.68027343749998,58.16166992187499]]],[[[-152.416943359375,58.360205078125034],[-151.974365234375,58.30986328124999],[-152.068896484375,58.17792968750001],[-152.26835937499993,58.25170898437506],[-152.30922851562502,58.133886718750034],[-152.5982421875,58.16259765625],[-152.92841796875004,57.99370117187499],[-153.38134765625003,58.08720703125002],[-152.976123046875,58.29702148437505],[-152.771875,58.278564453125],[-152.84111328125002,58.41640625000002],[-152.416943359375,58.360205078125034]]],[[[-152.486083984375,58.485009765624966],[-152.63662109375002,58.54169921874998],[-152.3955078125,58.619384765625],[-152.486083984375,58.485009765624966]]],[[[-160.918994140625,58.57709960937498],[-161.13149414062502,58.668212890625],[-160.71513671875005,58.79521484375002],[-160.918994140625,58.57709960937498]]],[[[-148.02177734375,60.06533203125005],[-148.271875,60.05327148437499],[-148.07958984375003,60.151660156250045],[-148.02177734375,60.06533203125005]]],[[[-147.735888671875,59.81323242187503],[-147.76806640625,59.94375],[-147.180859375,60.358251953125034],[-147.01987304687498,60.33222656249998],[-147.735888671875,59.81323242187503]]],[[[-166.13544921875,60.38354492187503],[-165.72968750000004,60.31420898437503],[-165.591796875,59.913134765625045],[-166.14873046874996,59.764111328124955],[-167.13886718749998,60.00854492187503],[-167.43642578125002,60.20664062500006],[-166.836328125,60.21699218750004],[-166.47568359374998,60.382763671874955],[-166.13544921875,60.38354492187503]]],[[[-146.3939453125,60.44965820312501],[-146.10224609374998,60.41118164062499],[-146.61831054687497,60.27368164062503],[-146.70253906249997,60.40854492187498],[-146.3939453125,60.44965820312501]]],[[[-147.658251953125,60.45048828124999],[-147.787841796875,60.17792968749998],[-147.89145507812498,60.299414062500034],[-147.658251953125,60.45048828124999]]],[[[-172.74223632812496,60.45737304687498],[-172.23208007812494,60.299121093750074],[-172.63574218750003,60.328857421875],[-173.04765625000002,60.56831054687501],[-172.74223632812496,60.45737304687498]]],[[[-171.46303710937494,63.640039062499994],[-171.03486328125,63.58549804687499],[-170.29936523437502,63.68061523437501],[-169.55454101562498,63.373486328124955],[-168.71601562500004,63.310595703125045],[-168.76132812500003,63.21376953125002],[-169.364697265625,63.17114257812506],[-169.67636718750003,62.95610351562502],[-169.81860351562494,63.122363281250045],[-170.84838867187494,63.44438476562502],[-171.63183593749997,63.351220703124966],[-171.74638671874993,63.703076171874955],[-171.46303710937494,63.640039062499994]]],[[[-141.00214843750004,68.77416992187506],[-141.00214843750004,67.89755859374998],[-141.00214843750004,66.43652343750006],[-141.00214843750004,65.55991210937498],[-141.00214843750004,64.09887695312506],[-141.00214843750004,63.22226562499998],[-141.00214843750004,61.761279296875045],[-141.00214843750004,60.884667968749994],[-141.00214843750004,60.30024414062504],[-140.76274414062505,60.259130859375006],[-140.525439453125,60.218359375000034],[-140.45283203125004,60.29970703125002],[-139.97329101562497,60.183154296875074],[-139.67631835937505,60.32832031249998],[-139.23476562499997,60.339746093749994],[-139.07924804687497,60.34370117187501],[-139.07924804687497,60.279443359374966],[-139.136962890625,60.17270507812498],[-139.18515624999998,60.083593750000034],[-138.86875,59.94575195312501],[-138.317626953125,59.611132812500074],[-137.59331054687493,59.22626953124998],[-137.52089843750002,58.91538085937498],[-137.43857421875003,58.903125],[-137.2775390625,58.988183593749994],[-137.126220703125,59.04096679687498],[-136.81328125000002,59.150048828124994],[-136.57875976562502,59.15224609375002],[-136.46635742187493,59.459082031250006],[-136.27797851562502,59.48032226562506],[-136.321826171875,59.604833984375034],[-135.70258789062504,59.72875976562506],[-135.36787109374998,59.743310546874994],[-135.051025390625,59.57866210937502],[-134.94375,59.28828125000001],[-134.67724609374997,59.19926757812499],[-134.39306640625,59.009179687499994],[-134.32963867187505,58.93969726562506],[-134.21850585937503,58.849902343750045],[-133.54638671874997,58.50346679687499],[-133.27529296875,58.22285156250004],[-133.00141601562495,57.948974609375],[-132.55048828125,57.499902343749994],[-132.44248046874998,57.40673828125003],[-132.30166015624997,57.27631835937501],[-132.232177734375,57.19853515624999],[-132.27939453124998,57.14536132812498],[-132.33798828124998,57.07944335937506],[-132.15703125,57.048193359375006],[-132.03154296875,57.02656250000004],[-132.062890625,56.95336914062503],[-132.104296875,56.856787109375006],[-131.86616210937495,56.792822265625006],[-131.82426757812496,56.589990234374994],[-131.471875,56.55673828125006],[-130.649072265625,56.26367187500003],[-130.47709960937496,56.230566406250034],[-130.413134765625,56.12250976562498],[-130.09785156249995,56.10927734375002],[-130.01406249999997,55.950537109375006],[-130.2140625,55.02587890625003],[-130.57534179687497,54.769677734374966],[-130.849609375,54.80761718750006],[-131.04785156249997,55.157666015624955],[-130.74819335937502,55.31801757812502],[-131.127685546875,55.96015625000001],[-131.032763671875,56.08808593749998],[-131.78417968749997,55.876562500000034],[-131.98339843749994,55.535009765625006],[-132.15541992187502,55.59956054687501],[-132.20751953124997,55.75341796875],[-131.84384765625003,56.16010742187498],[-131.55136718749998,56.206787109375],[-131.88789062500004,56.24165039062498],[-132.18203125000002,56.42065429687506],[-132.82460937500002,57.05581054687505],[-133.465869140625,57.17216796875002],[-133.64873046874993,57.64228515624998],[-133.11704101562498,57.56621093750002],[-133.535205078125,57.83295898437501],[-133.1943359375,57.87768554687506],[-133.559375,57.924462890624994],[-133.72231445312502,57.84423828125],[-134.03110351562498,58.072167968749966],[-133.87675781249996,58.51816406249998],[-134.20883789062503,58.232958984375045],[-134.77612304687506,58.45385742187503],[-135.36367187500002,59.41943359375],[-135.50234375000002,59.202294921874994],[-135.090234375,58.245849609375],[-135.57177734374994,58.41206054687504],[-135.89755859374998,58.40019531250002],[-136.04311523437497,58.82163085937498],[-135.82636718750004,58.89794921874997],[-136.0166015625,58.87397460937498],[-136.150048828125,59.04809570312503],[-136.22583007812497,58.765478515625006],[-136.98901367187503,59.03447265624999],[-137.05903320312498,58.87373046875001],[-136.613916015625,58.809277343749955],[-136.48374023437503,58.61767578125],[-136.224609375,58.602246093749955],[-136.06147460937495,58.45273437500006],[-136.607421875,58.24399414062498],[-137.54399414062502,58.58120117187502],[-138.51489257812503,59.16591796875005],[-139.77329101562498,59.52729492187504],[-139.51303710937498,59.698095703125006],[-139.5123046875,59.95356445312501],[-139.28671874999998,59.610937500000034],[-139.22080078125003,59.819873046875045],[-138.9880859375,59.83500976562502],[-139.43144531249996,60.012255859375074],[-140.41982421874997,59.71074218750002],[-141.40830078125,59.90278320312498],[-141.408740234375,60.11767578125006],[-141.67016601562497,59.969873046874966],[-142.94565429687503,60.09697265625002],[-144.14721679687494,60.01640625000002],[-144.185498046875,60.150732421875034],[-144.901318359375,60.335156249999955],[-144.69111328125,60.66909179687502],[-145.248291015625,60.38012695312506],[-145.898876953125,60.47817382812505],[-145.67490234374998,60.65112304687503],[-146.57045898437497,60.72915039062502],[-146.39199218749997,60.810839843750045],[-146.63842773437497,60.89731445312498],[-146.59912109374994,61.05351562500002],[-146.284912109375,61.11264648437498],[-147.89111328125,60.889892578125],[-148.00512695312494,60.96855468750002],[-147.75185546874997,61.218945312499955],[-148.34189453125,61.060400390625006],[-148.34443359374998,60.853564453125045],[-148.55615234374994,60.82700195312506],[-148.25673828124997,60.67529296874997],[-148.64013671875,60.48945312500004],[-148.11918945312502,60.57514648437498],[-147.96411132812494,60.48486328124997],[-148.430712890625,59.98911132812498],[-149.2666015625,59.99829101562497],[-149.395263671875,60.10576171875002],[-149.59804687500002,59.77045898437501],[-149.7138671875,59.91958007812502],[-149.80126953124994,59.737939453124966],[-150.00532226562507,59.78442382812503],[-150.19804687499996,59.56655273437505],[-150.60737304687504,59.56337890625002],[-150.934521484375,59.249121093750034],[-151.18276367187502,59.30078124999997],[-151.73818359375002,59.18852539062502],[-151.94951171875,59.26508789062498],[-151.88461914062503,59.386328125],[-151.39960937499995,59.51630859375001],[-151.04648437499998,59.771826171875034],[-151.45009765624997,59.65039062499997],[-151.85322265625,59.78208007812498],[-151.39599609375006,60.27446289062502],[-151.35644531249997,60.72294921874999],[-150.44125976562503,61.02358398437505],[-149.07509765624997,60.87641601562498],[-150.05327148437496,61.17109374999998],[-149.433544921875,61.50078125000002],[-149.97568359374998,61.27934570312502],[-150.61225585937495,61.301123046875006],[-151.59350585937494,60.979638671874966],[-152.54091796874997,60.265429687500045],[-153.025,60.29565429687497],[-152.660107421875,59.99721679687502],[-153.21123046875002,59.84272460937498],[-153.09360351562503,59.70913085937505],[-153.65253906250004,59.64702148437499],[-154.17832031250003,59.155566406250074],[-153.41826171875,58.9599609375],[-153.43759765625003,58.754833984374955],[-154.289013671875,58.30434570312502],[-154.247021484375,58.15942382812497],[-155.006884765625,58.01606445312501],[-155.77797851562497,57.56821289062498],[-156.43588867187498,57.359960937500006],[-156.62900390624998,57.00996093750001],[-158.41440429687498,56.435839843750045],[-158.5521484375,56.31269531249998],[-158.27563476562497,56.19624023437498],[-158.5046875,56.062109375],[-158.59116210937503,56.18452148437498],[-158.78984375000002,55.98691406250006],[-159.52324218749993,55.81000976562498],[-159.65966796875003,55.625927734374955],[-159.77138671874997,55.84111328125002],[-160.49931640625002,55.53730468750004],[-161.38193359374998,55.371289062499955],[-161.44379882812495,55.513281250000034],[-161.202099609375,55.54355468750006],[-161.51694335937503,55.61840820312503],[-162.073974609375,55.13930664062505],[-162.38637695312497,55.05234375],[-162.63037109375003,55.24667968749998],[-162.67436523437505,54.99658203125],[-162.86503906249996,54.954541015624955],[-163.11962890624997,55.06469726562503],[-163.131103515625,54.916552734375045],[-163.33530273437503,54.83916015624999],[-163.27880859374997,55.12182617187503],[-162.906591796875,55.19555664062503],[-161.69731445312502,55.9072265625],[-161.215625,56.02143554687498],[-160.8986328125,55.99365234375],[-161.00537109375,55.88715820312498],[-160.80283203125003,55.754443359375045],[-160.70634765625002,55.870458984375034],[-160.29169921875,55.80507812500005],[-160.53906250000006,56.00629882812501],[-160.30205078125,56.31411132812502],[-158.91801757812502,56.882177734375006],[-158.675146484375,56.79487304687498],[-158.66079101562502,57.03940429687498],[-158.32094726562497,57.29790039062499],[-157.84575195312496,57.52807617187497],[-157.4619140625,57.506201171875034],[-157.697216796875,57.679443359375],[-157.610888671875,58.050830078125074],[-157.19370117187498,58.19418945312506],[-157.48837890624998,58.25371093750002],[-157.52363281249998,58.421337890624955],[-156.97465820312496,58.736328125],[-156.80888671875005,59.13427734375],[-157.14204101562504,58.87763671875001],[-158.19091796875003,58.6142578125],[-158.50317382812494,58.85034179687497],[-158.42563476562498,58.99931640625002],[-158.080517578125,58.97744140625002],[-158.422802734375,59.08984375],[-158.67827148437502,58.92939453124998],[-158.80947265625002,58.973876953125],[-158.78862304687493,58.440966796875045],[-158.95068359375,58.404541015625],[-159.67026367187498,58.9111328125],[-159.92021484375,58.819873046875074],[-160.36313476562498,59.05117187500002],[-161.246826171875,58.799462890624994],[-161.36132812499994,58.66953124999998],[-162.144921875,58.64423828124998],[-161.724365234375,58.794287109375006],[-161.64438476562498,59.109667968750045],[-161.9810546875,59.14614257812502],[-161.82871093749998,59.588623046875],[-162.421337890625,60.28398437500002],[-161.96201171875003,60.695361328125045],[-162.68496093749997,60.268945312499966],[-162.57075195312495,59.98974609375],[-163.68037109374998,59.80151367187503],[-164.14282226562497,59.89677734374999],[-165.02651367187497,60.500634765624994],[-165.35380859375002,60.54121093750001],[-164.80517578125,60.89204101562498],[-164.31850585937497,60.77128906249999],[-164.37236328125002,60.59184570312502],[-163.999560546875,60.76606445312498],[-163.72998046874997,60.589990234374994],[-163.420947265625,60.757421875],[-163.90654296874996,60.85380859375002],[-163.58691406249994,60.902978515624994],[-163.74902343750003,60.9697265625],[-163.99462890624997,60.86469726562501],[-165.11484375,60.93281250000004],[-164.86899414062503,61.11176757812498],[-165.27978515624994,61.169628906249955],[-165.27363281250004,61.27485351562498],[-165.56586914062498,61.10234375000002],[-165.86396484375004,61.33569335937503],[-165.84531249999998,61.536230468750034],[-166.152734375,61.545947265625074],[-166.16811523437502,61.65083007812501],[-165.80893554687503,61.69609375000002],[-166.07880859375,61.803125],[-165.61279296875003,61.86928710937502],[-165.707275390625,62.10043945312506],[-165.19453125,62.47353515625002],[-164.75786132812493,62.496728515624966],[-164.589453125,62.709375],[-164.79267578125,62.623193359374966],[-164.79965820312503,62.918066406250006],[-164.384228515625,63.03046874999998],[-164.40903320312503,63.21503906250001],[-163.94287109375,63.247216796874994],[-163.61630859374998,63.125146484374994],[-163.73784179687496,63.016406250000045],[-163.504345703125,63.105859374999966],[-163.28784179687494,63.046435546875045],[-162.621484375,63.26582031249998],[-162.28281250000003,63.529199218749994],[-161.97397460937498,63.45292968749999],[-161.09970703125003,63.557910156250045],[-160.778564453125,63.818945312500034],[-160.987548828125,64.25126953125002],[-161.49072265625003,64.43378906249998],[-160.93193359374996,64.5791015625],[-160.855908203125,64.755615234375],[-161.13017578125005,64.92543945312505],[-161.759375,64.816259765625],[-162.80703124999997,64.37421875000001],[-163.20390625,64.65200195312502],[-163.14433593750002,64.423828125],[-163.71308593749998,64.588232421875],[-164.978759765625,64.45366210937502],[-166.1427734375,64.58276367187503],[-166.48139648437498,64.72807617187507],[-166.415234375,64.926513671875],[-166.92841796875,65.15708007812498],[-166.15703125,65.28583984375001],[-167.40400390625,65.42211914062497],[-168.08837890624997,65.65776367187502],[-166.39873046875002,66.14443359375005],[-165.62993164062496,66.131201171875],[-165.77617187500002,66.31904296875001],[-164.46049804687502,66.58842773437499],[-163.63823242187502,66.57465820312504],[-163.89394531249997,66.57587890625001],[-164.03374023437493,66.21552734374995],[-163.69536132812502,66.08383789062503],[-161.93369140625003,66.04287109374997],[-161.45541992187503,66.28139648437497],[-161.03427734375003,66.18881835937503],[-161.12031249999995,66.334326171875],[-161.91689453124997,66.41181640624998],[-162.54365234375004,66.80512695312501],[-162.36162109375,66.94731445312502],[-161.591015625,66.45952148437502],[-160.23168945312503,66.420263671875],[-160.360888671875,66.6125],[-160.864013671875,66.67084960937501],[-161.39804687499998,66.55185546875],[-161.85668945312497,66.70034179687497],[-161.719921875,67.02055664062502],[-163.5318359375,67.10258789062502],[-164.1251953125,67.60673828125007],[-166.786279296875,68.35961914062497],[-166.38051757812502,68.425146484375],[-166.20908203125,68.88535156250003],[-165.04394531249994,68.882470703125],[-163.867919921875,69.03666992187505],[-161.88095703125003,70.33173828125001],[-162.073876953125,70.16196289062498],[-160.9962890625,70.30458984375],[-160.11713867187495,70.59121093750002],[-159.86567382812498,70.27885742187499],[-159.81499023437496,70.49707031250003],[-159.38676757812493,70.52451171875003],[-160.081591796875,70.63486328125003],[-159.680908203125,70.786767578125],[-159.31450195312496,70.87851562500003],[-159.251171875,70.7484375],[-157.909375,70.860107421875],[-156.47021484374994,71.40766601562501],[-156.469970703125,71.29155273437507],[-155.57944335937503,71.12109374999997],[-156.14658203125,70.92783203125003],[-155.97353515625002,70.84199218749995],[-155.16684570312498,71.09921875000006],[-154.19521484375002,70.80112304687498],[-153.23291015625,70.93256835937504],[-152.49121093749994,70.88095703125],[-152.23291015625,70.81035156249999],[-152.39921875,70.62045898437503],[-151.76904296875,70.56015625],[-151.94467773437498,70.45209960937501],[-149.26943359374997,70.50078124999999],[-147.70537109375,70.21723632812495],[-145.82314453124997,70.16005859375002],[-145.19736328125003,70.00869140625002],[-143.218310546875,70.11625976562499],[-142.70786132812498,70.03378906249998],[-141.40791015625,69.65336914062502],[-141.00214843750004,69.65078125000002],[-141.00214843750004,68.77416992187506]]]]},"properties":{"name":"United States","childNum":76}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[71.20615234375006,39.892578125],[71.15625,39.88344726562502],[71.06425781250002,39.88491210937505],[71.01171874999997,39.895117187500006],[71.04365234375004,39.97631835937503],[71.04482421875005,39.992529296875034],[70.96064453125004,40.087988281250034],[71.00546875,40.15229492187498],[71.0241210937501,40.14916992187497],[71.08037109375007,40.07988281249999],[71.2287109375001,40.04814453124999],[71.20615234375006,39.892578125]]],[[[70.94677734374997,42.24868164062505],[70.97900390625003,42.26655273437504],[71.03603515625,42.28466796875],[71.12998046875006,42.25],[71.21269531250002,42.20644531250005],[71.23232421875005,42.18627929687503],[71.22851562499997,42.16289062499996],[70.18095703125007,41.571435546874994],[70.734375,41.400537109374994],[70.86044921875006,41.22490234375002],[71.11074218750005,41.152636718750045],[71.29882812500003,41.152490234374994],[71.39306640625003,41.123388671875034],[71.40839843750004,41.13603515625002],[71.42089843750003,41.341894531250034],[71.60625,41.367431640625],[71.66494140625,41.54121093749998],[71.70068359374997,41.454003906249966],[71.75771484375005,41.42802734375002],[71.79248046875003,41.41313476562499],[71.85800781250006,41.311376953125034],[71.8786132812501,41.195019531249955],[71.95849609375003,41.18706054687502],[72.05244140625004,41.16474609375001],[72.1154296875001,41.18657226562502],[72.1642578125001,41.173730468749966],[72.18095703125002,41.11845703124999],[72.18730468750002,41.02592773437499],[72.2130859375001,41.014257812500006],[72.36406250000002,41.04345703125],[72.65830078125,40.86992187499999],[73.13212890625002,40.82851562499999],[72.6041015625,40.52543945312499],[72.40205078125004,40.578076171874955],[72.3892578125,40.427392578124994],[72.13125,40.438623046874966],[71.69248046875,40.15234375],[71.30468749999997,40.28691406249996],[70.990625,40.2548828125],[70.95800781250003,40.238867187500034],[70.653125,40.201171875],[70.37158203125003,40.38413085937506],[70.75107421875006,40.721777343750006],[70.40195312500006,41.03510742187498],[69.71289062500003,40.65698242187503],[69.35722656250002,40.76738281249996],[69.20625,40.566552734374994],[69.27490234374997,40.19809570312498],[68.63066406250007,40.16708984374998],[68.9720703125,40.08994140624998],[68.80468750000003,40.05034179687499],[68.86875,39.90747070312503],[68.63896484375007,39.8388671875],[68.46328125,39.53671874999998],[67.71904296875007,39.62138671875002],[67.426171875,39.46557617187497],[67.3576171875001,39.216699218749994],[67.64833984375005,39.13105468750004],[67.69443359375006,38.99462890625003],[68.13251953125004,38.927636718749966],[68.08720703125002,38.47353515625002],[68.3502929687501,38.211035156250006],[67.81435546875005,37.48701171875004],[67.7980468750001,37.244970703125006],[67.75898437500004,37.172216796875034],[67.75292968749997,37.199804687500034],[67.7,37.227246093749955],[67.60742187499997,37.22250976562506],[67.5172851562501,37.26665039062499],[67.44169921875007,37.25800781250001],[67.3197265625,37.209570312500006],[67.1955078125001,37.23520507812498],[67.06884765624997,37.334814453125006],[66.82773437500006,37.37128906249998],[66.52226562500007,37.34848632812506],[66.51064453125,37.45869140625004],[66.51132812500006,37.59916992187496],[66.52558593750004,37.785742187500034],[66.60625,37.98671875000005],[65.97119140624997,38.244238281250006],[65.612890625,38.23857421875002],[64.3099609375,38.97729492187497],[63.76367187500003,39.16054687499999],[62.48320312500002,39.97563476562496],[61.90283203124997,41.09370117187501],[61.496972656249994,41.276074218749955],[61.2423828125001,41.18920898437503],[60.454980468749994,41.221630859374955],[60.089648437500074,41.39941406250003],[60.07558593750005,41.759667968749966],[60.20078125000006,41.803125],[59.94179687499999,41.97353515625002],[59.98515625000002,42.21171875],[59.35429687500002,42.32329101562496],[58.5890625000001,42.778466796874966],[58.477148437500006,42.66284179687503],[58.15156250000004,42.628076171874966],[58.474414062500074,42.29936523437496],[58.02890625,42.48764648437506],[57.814257812500074,42.18984375000005],[57.290625,42.123779296875],[56.96406250000004,41.856542968750006],[57.11884765625004,41.35029296874998],[57.01796875,41.26347656249996],[55.97744140625005,41.32221679687504],[55.97568359375006,44.99492187499996],[58.555273437500006,45.55537109375001],[61.007910156250006,44.39379882812497],[61.99023437500003,43.492138671874955],[63.20703125000003,43.62797851562502],[64.44316406250007,43.55117187499999],[64.9054687500001,43.714697265625006],[65.49619140625,43.310546875],[65.80302734375002,42.87695312500006],[66.1002929687501,42.99082031249998],[66.00957031250007,42.00488281250003],[66.49863281250006,41.99487304687503],[66.70966796875004,41.17915039062501],[67.9357421875001,41.19658203125002],[68.11308593750007,41.02861328124999],[68.04765625000007,40.80927734374998],[68.29189453125,40.656103515625034],[68.57265625,40.62265624999998],[68.58408203125,40.876269531250045],[69.15361328125002,41.42524414062498],[70.94677734374997,42.24868164062505]]]]},"properties":{"name":"Uzbekistan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-61.17451171875001,13.158105468749966],[-61.268457031249966,13.287695312499991],[-61.13896484374996,13.358740234374991],[-61.17451171875001,13.158105468749966]]]},"properties":{"name":"St. Vin. and Gren.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-60.99790039062498,8.867333984374966],[-61.069189453125034,8.947314453125003],[-60.91582031249996,9.070312500000014],[-60.86142578124998,8.949609375000037],[-60.99790039062498,8.867333984374966]]],[[[-60.821191406249966,9.138378906250026],[-60.94140625000003,9.105566406250006],[-60.73583984374997,9.203320312500026],[-60.821191406249966,9.138378906250026]]],[[[-63.84936523437494,11.131005859374994],[-63.917626953124994,10.887548828125048],[-64.40234375,10.981591796875023],[-64.21367187500002,11.086132812499997],[-64.0283203125,11.00185546874998],[-63.84936523437494,11.131005859374994]]],[[[-60.742138671874926,5.202050781250037],[-60.71196289062499,5.191552734375023],[-60.671972656250034,5.164355468749989],[-60.603857421875006,4.94936523437498],[-61.00283203125002,4.535253906249991],[-61.28007812500002,4.516894531249974],[-61.82084960937496,4.197021484375],[-62.153125,4.098388671874986],[-62.41064453124994,4.156738281249972],[-62.71210937499998,4.01791992187502],[-62.85698242187502,3.593457031249969],[-63.33867187500002,3.943896484375045],[-64.02148437500003,3.929101562500051],[-64.19248046874995,4.126855468750009],[-64.57636718750001,4.139892578125],[-64.788671875,4.276025390625023],[-64.66899414062496,4.01181640625002],[-64.22109375000002,3.587402343749972],[-64.04658203124998,2.502392578124997],[-63.389257812500006,2.411914062500045],[-63.43251953124994,2.155566406250045],[-64.00849609374995,1.931591796874969],[-64.20502929687493,1.52949218750004],[-65.10375976562497,1.108105468749983],[-65.47338867187497,0.691259765624977],[-65.55605468750002,0.687988281250014],[-65.52299804687493,0.843408203124966],[-65.68144531249999,0.983447265624989],[-66.06005859375003,0.78535156250004],[-66.34711914062498,0.7671875],[-66.87602539062499,1.223046875000037],[-67.21083984375,2.390136718750043],[-67.61870117187496,2.793603515624994],[-67.85908203124998,2.793603515624994],[-67.3111328125,3.41586914062502],[-67.66162109375,3.864257812499986],[-67.85527343750002,4.506884765624989],[-67.82490234374995,5.270458984375026],[-67.47387695312503,5.929980468750003],[-67.48198242187499,6.18027343750002],[-67.85917968749999,6.289892578124963],[-68.47177734375,6.156542968749974],[-69.42714843749997,6.123974609374997],[-70.12919921874999,6.95361328125],[-70.73715820312503,7.090039062499997],[-71.12861328124993,6.98671875],[-72.00664062499993,7.032617187500023],[-72.20771484374995,7.37026367187498],[-72.47197265624996,7.524267578124991],[-72.39033203124995,8.287060546874969],[-72.66542968749994,8.62758789062498],[-72.79638671874997,9.10898437499999],[-73.05839843749999,9.259570312500031],[-73.36621093749997,9.194140625000017],[-73.00654296874998,9.789160156250006],[-72.86933593750001,10.49125976562496],[-72.690087890625,10.835839843749994],[-72.24848632812501,11.196435546875009],[-71.95810546875,11.66640625],[-71.31972656249997,11.861914062500048],[-71.95693359375002,11.569921874999977],[-71.835107421875,11.190332031250009],[-71.6416015625,11.013525390625048],[-71.73090820312498,10.994677734375017],[-71.59433593749995,10.657373046875051],[-72.11284179687499,9.815576171874966],[-71.61953124999994,9.047949218749991],[-71.24140625000001,9.160449218750003],[-71.08583984375002,9.348242187499977],[-71.05268554687501,9.705810546874986],[-71.49423828125,10.533203124999972],[-71.46953124999993,10.964160156250017],[-70.23251953124998,11.372998046874997],[-70.09711914062493,11.519775390624972],[-69.80478515624998,11.47421875000002],[-69.81733398437495,11.672070312499997],[-70.19257812499993,11.62460937500002],[-70.28652343749997,11.886035156249989],[-70.20278320312497,12.098388671874986],[-70.00395507812496,12.177880859375023],[-69.63159179687494,11.479931640625026],[-68.827978515625,11.431738281249977],[-68.39863281249995,11.160986328124977],[-68.29628906249997,10.689355468749994],[-68.13994140624999,10.492724609374989],[-66.24721679687497,10.632226562499994],[-65.85175781249995,10.257763671874997],[-65.12910156249998,10.070068359375043],[-64.85048828125,10.098095703124969],[-64.188330078125,10.457812499999989],[-63.73188476562501,10.503417968750043],[-64.24750976562498,10.54257812500002],[-64.298193359375,10.635156249999966],[-61.879492187500006,10.741015625000031],[-62.379980468750006,10.546875],[-62.91357421875,10.531494140624986],[-62.68583984374996,10.289794921875043],[-62.740576171875006,10.056152343750043],[-62.55034179687499,10.200439453125043],[-62.320410156250034,9.783056640625006],[-62.22114257812498,9.882568359375028],[-62.15336914062493,9.821777343749986],[-62.15532226562499,9.979248046875014],[-62.077099609374926,9.97504882812504],[-61.73593749999998,9.631201171874977],[-61.76591796874996,9.813818359374963],[-61.58886718749994,9.894531249999986],[-60.79248046874997,9.360742187500037],[-61.02314453124998,9.15458984374996],[-61.24726562499998,8.600341796875014],[-61.61870117187499,8.59746093749996],[-61.30400390624999,8.410400390625043],[-60.800976562499926,8.592138671875034],[-60.16748046875,8.616992187500031],[-60.01752929687501,8.549316406250014],[-59.83164062499998,8.305957031250003],[-59.84907226562498,8.248681640624966],[-59.96484375000003,8.191601562499969],[-59.99072265624997,8.16201171874998],[-60.032421874999926,8.053564453125006],[-60.51362304687501,7.813183593749969],[-60.71865234374994,7.535937499999974],[-60.606542968750006,7.320849609375031],[-60.63330078124997,7.211083984374966],[-60.58320312499998,7.156201171874969],[-60.523193359375,7.143701171875009],[-60.464941406250034,7.166552734375045],[-60.39238281249999,7.164550781249986],[-60.34506835937495,7.15],[-60.32548828124996,7.133984374999983],[-60.32207031249996,7.092041015625043],[-60.35209960937496,7.002880859374997],[-60.39501953125,6.945361328125003],[-60.717919921874966,6.768310546875],[-61.14560546874998,6.694531249999983],[-61.20361328124997,6.588378906250028],[-61.181591796874926,6.513378906250026],[-61.15102539062502,6.446533203124986],[-61.15229492187501,6.385107421875006],[-61.12871093749999,6.214306640625026],[-61.15947265624996,6.174414062499977],[-61.22495117187498,6.129199218750003],[-61.303125,6.049511718750026],[-61.39082031250001,5.938769531250017],[-61.376806640625006,5.906982421875028],[-61.167187499999926,5.674218750000037],[-60.95400390625002,5.437402343750023],[-60.742138671874926,5.202050781250037]]]]},"properties":{"name":"Venezuela","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[-64.765625,17.794335937499994],[-64.58046874999994,17.750195312499983],[-64.88911132812495,17.701708984375045],[-64.765625,17.794335937499994]]]},"properties":{"name":"U.S. Virgin Is.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[104.06396484375003,10.390820312500011],[104.01845703125,10.029199218749966],[103.84951171875005,10.371093749999986],[104.06396484375003,10.390820312500011]]],[[[107.52128906250007,20.926611328124977],[107.39921875000007,20.903466796874966],[107.55126953125003,21.034033203125006],[107.52128906250007,20.926611328124977]]],[[[107.60273437500004,21.21679687500003],[107.40351562500004,21.093652343749994],[107.47626953125004,21.268945312499994],[107.60273437500004,21.21679687500003]]],[[[107.97265624999997,21.507958984375023],[107.40996093750002,21.284814453125023],[107.35429687500007,21.055175781250057],[107.1647460937501,20.94873046875003],[106.68339843750007,21.000292968750074],[106.75341796875003,20.73505859375004],[106.55078124999997,20.52656250000001],[106.57285156250012,20.392187499999977],[105.98408203125004,19.939062500000034],[105.62177734375004,18.96630859375003],[105.88828125000006,18.502490234375045],[106.49902343749997,17.946435546874994],[106.47890625000005,17.719580078125063],[106.3705078125,17.746875],[107.83378906250002,16.322460937499983],[108.02939453125012,16.331103515625074],[108.82128906249997,15.377929687500028],[109.30332031250012,13.856445312500043],[109.271875,13.279345703124974],[109.42392578125006,12.955957031249994],[109.44492187500006,12.599609375000057],[109.33554687500012,12.751904296874997],[109.21894531250004,12.64580078124996],[109.30468750000003,12.391162109375045],[109.20683593750007,12.415380859375006],[109.1986328125,11.724853515625014],[109.03964843750012,11.592675781249994],[108.98671875,11.336376953124997],[108.09492187500004,10.897265624999989],[108.0013671875,10.720361328125009],[107.26152343750007,10.39838867187504],[107.00664062500002,10.66054687499998],[106.94746093750004,10.400341796874997],[106.72734375000007,10.535644531250028],[106.605859375,10.46494140625002],[106.74121093750003,10.444384765625003],[106.75742187500006,10.295800781250023],[106.46406250000004,10.298291015624997],[106.78525390625012,10.116455078124986],[106.59560546875005,9.859863281250028],[106.1364257812501,10.221679687500014],[106.56435546875005,9.715625],[106.48408203125004,9.559423828125006],[105.83095703125005,10.000732421875028],[106.15859375,9.59414062499998],[106.16835937500005,9.396728515625],[105.50097656249997,9.093212890624983],[105.11435546875006,8.629199218750031],[104.77041015625,8.59765625],[104.89628906250007,8.746630859374974],[104.81855468750004,8.801855468750034],[104.84521484375003,9.606152343750026],[105.08447265625003,9.99570312499999],[104.8019531250001,10.202734374999977],[104.66347656250005,10.169921875000043],[104.42636718750006,10.411230468749991],[104.85058593749997,10.534472656249974],[105.04638671874997,10.701660156250014],[105.04570312500002,10.911376953125014],[105.3146484375001,10.845166015625026],[105.40576171875003,10.95161132812504],[105.75507812500004,10.989990234375043],[105.85332031250007,10.86357421874996],[106.16396484375005,10.794921875],[106.16093750000002,11.037109375000057],[105.85605468750006,11.294287109375048],[105.85146484375005,11.635009765625],[106.0060546875001,11.758007812500011],[106.39921875000007,11.687011718750028],[106.41386718750002,11.9484375],[106.70009765625,11.979296874999974],[107.21210937500004,12.30400390624996],[107.39335937500002,12.260498046874972],[107.50644531250006,12.364550781250031],[107.47539062500002,13.030371093749963],[107.60546874999997,13.437792968750017],[107.3314453125,14.126611328125009],[107.51943359375005,14.705078125],[107.51376953125012,14.817382812500057],[107.52451171875012,14.871826171875043],[107.50468750000007,14.915917968749966],[107.48037109375,14.979882812500037],[107.55527343750006,15.057031250000023],[107.58964843750002,15.118457031250017],[107.63369140625005,15.18984375],[107.653125,15.255224609374991],[107.62167968750006,15.309863281250017],[107.56425781250002,15.391601562499972],[107.45957031250012,15.4658203125],[107.33876953125,15.560498046875011],[107.27939453125006,15.618701171875045],[107.16591796875005,15.802490234375028],[107.1888671875,15.838623046875],[107.36064453125002,15.921728515624977],[107.3919921875,15.951660156250028],[107.39638671875,16.04301757812499],[106.93066406249997,16.353125],[106.8927734375001,16.396533203125074],[106.85107421875003,16.515625],[106.83242187500005,16.526269531250023],[106.79160156250006,16.490332031250006],[106.73955078125007,16.452539062500023],[106.6564453125001,16.49262695312501],[106.54619140625002,16.650732421874977],[106.53369140625003,16.821044921875057],[106.52597656250006,16.876611328124994],[106.50224609375002,16.95410156249997],[106.26953125000003,17.21679687500003],[106.00625,17.415283203125057],[105.69140625000003,17.737841796875045],[105.58847656250012,17.983691406250045],[105.51855468749997,18.077441406250045],[105.45820312500004,18.15429687499997],[105.11455078125002,18.40527343750003],[105.08701171875006,18.496240234374994],[105.14541015625,18.616796875000063],[105.14648437500003,18.650976562500006],[103.89160156250003,19.304980468750017],[103.89638671875,19.339990234375023],[103.93203125,19.366064453125006],[104.0275390625001,19.42045898437499],[104.062890625,19.48256835937505],[104.05156250000007,19.564160156249955],[104.01347656250007,19.64648437500003],[104.03203125000002,19.675146484375006],[104.06279296875007,19.678417968749983],[104.25986328125006,19.685498046874983],[104.5462890625,19.61054687500001],[104.58789062500003,19.61875],[104.74316406250003,19.754736328124977],[104.80175781249997,19.83613281250004],[104.81513671875004,19.90400390625001],[104.9279296875001,20.01811523437499],[104.92919921875003,20.082812500000017],[104.88867187500003,20.169091796875023],[104.84785156250004,20.202441406250045],[104.69873046875003,20.20532226562503],[104.67695312500004,20.224707031249977],[104.66191406250007,20.28901367187501],[104.65644531250004,20.32851562499999],[104.6188476562501,20.37451171875003],[104.49619140625006,20.413671875],[104.39218750000012,20.424755859374955],[104.36777343750012,20.44140624999997],[104.40781250000012,20.48574218750005],[104.47861328125006,20.529589843750017],[104.53271484374997,20.55488281250001],[104.58320312500004,20.646679687499955],[104.34960937499997,20.821093750000074],[104.19531249999997,20.913964843749966],[104.10136718750002,20.94550781250001],[103.63505859375007,20.697070312500017],[103.46357421875004,20.779833984375017],[103.21074218750002,20.840625],[103.10449218749997,20.891650390625045],[102.88378906250003,21.202587890624983],[102.85117187500006,21.26591796874999],[102.94960937500005,21.681347656249983],[102.84521484374997,21.73476562500005],[102.81591796874997,21.807373046875],[102.7982421875,21.797949218750034],[102.77109375000006,21.709667968749983],[102.73857421875002,21.67792968750001],[102.66201171875005,21.67602539062497],[102.58251953125003,21.90429687500003],[102.12744140624997,22.379199218750045],[102.1759765625001,22.414648437500006],[102.2370117187501,22.466015624999983],[102.40644531250004,22.70800781249997],[102.47089843750004,22.75092773437501],[102.98193359374997,22.4482421875],[103.32666015625003,22.769775390625057],[103.49296875000007,22.587988281250034],[103.62021484375006,22.782031250000045],[103.94150390625006,22.540087890625045],[104.14306640624997,22.800146484375006],[104.37177734375004,22.704052734374983],[104.68730468750002,22.822216796874983],[104.86474609375003,23.136376953125023],[105.27539062500003,23.34521484375003],[105.8429687500001,22.922802734374955],[106.14843749999997,22.970068359375006],[106.2790039062501,22.857470703125045],[106.54179687500007,22.908349609375023],[106.78027343749997,22.778906250000034],[106.55039062500006,22.501367187499994],[106.66357421875003,21.97890625000005],[106.97099609375002,21.923925781250034],[107.35117187500012,21.60888671874997],[107.75927734374997,21.655029296875057],[107.97265624999997,21.507958984375023]]]]},"properties":{"name":"Vietnam","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[169.49130859375006,-19.54013671875002],[169.34726562500006,-19.623535156249957],[169.2174804687501,-19.476367187500003],[169.24746093750005,-19.3447265625],[169.49130859375006,-19.54013671875002]]],[[[169.334375,-18.940234375000017],[168.98691406250006,-18.87128906250001],[169.01582031250004,-18.64375],[169.14384765625002,-18.63105468750001],[169.334375,-18.940234375000017]]],[[[168.44580078124997,-17.54218750000004],[168.58496093750003,-17.695898437500006],[168.52460937500004,-17.798046875000026],[168.15820312500003,-17.710546874999963],[168.2731445312501,-17.552246093749957],[168.44580078124997,-17.54218750000004]]],[[[168.44677734375003,-16.778808593749957],[168.18144531250002,-16.804003906250017],[168.13535156250006,-16.636914062499997],[168.44677734375003,-16.778808593749957]]],[[[168.29667968750007,-16.33652343749999],[167.92900390625002,-16.22871093749997],[168.16386718750002,-16.081640625000034],[168.29667968750007,-16.33652343749999]]],[[[167.4125,-16.095898437499997],[167.83662109375004,-16.449707031249957],[167.44931640625012,-16.554980468750003],[167.34921875000006,-16.15449218750004],[167.15146484375006,-16.080468749999966],[167.19951171875002,-15.885058593750031],[167.33574218750007,-15.916699218749997],[167.4125,-16.095898437499997]]],[[[167.9113281250001,-15.435937500000023],[167.67421875,-15.4515625],[168.00253906250012,-15.283203124999986],[167.9113281250001,-15.435937500000023]]],[[[166.74580078125004,-14.826855468750011],[166.81015625000012,-15.15742187500004],[167.0755859375,-14.935644531249977],[167.20078125000012,-15.443066406249969],[167.0939453125001,-15.580859374999974],[166.75830078125003,-15.631152343750003],[166.63105468750004,-15.406054687499974],[166.56738281250003,-14.641796874999969],[166.74580078125004,-14.826855468750011]]],[[[167.58486328125,-14.260937500000011],[167.43027343750012,-14.294921875],[167.41074218750006,-14.19746093750004],[167.50644531250012,-14.142187499999977],[167.58486328125,-14.260937500000011]]],[[[167.48886718750006,-13.907226562499972],[167.3917968750001,-13.788378906250017],[167.48105468750006,-13.709472656250014],[167.48886718750006,-13.907226562499972]]]]},"properties":{"name":"Vanuatu","childNum":10}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-171.4541015625,-14.04648437500002],[-171.9119140625,-14.001660156250026],[-172.04589843750003,-13.857128906249983],[-171.60390624999997,-13.879199218750045],[-171.4541015625,-14.04648437500002]]],[[[-172.33349609375,-13.46523437499999],[-172.17685546874998,-13.68466796875002],[-172.224951171875,-13.804296874999963],[-172.535693359375,-13.791699218749983],[-172.77851562499998,-13.516796875000011],[-172.33349609375,-13.46523437499999]]]]},"properties":{"name":"Samoa","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[53.76318359374997,12.636816406249991],[54.18740234375005,12.664013671875026],[54.511132812499994,12.552783203125017],[54.12949218750006,12.360644531250045],[53.71884765625006,12.318994140624994],[53.31582031250005,12.533154296875011],[53.53496093750002,12.715771484374997],[53.76318359374997,12.636816406249991]]],[[[42.75585937500003,13.70429687500004],[42.689746093750074,13.673632812500017],[42.7941406250001,13.766113281250028],[42.75585937500003,13.70429687500004]]],[[[42.787402343750074,13.971484375000031],[42.69404296875004,14.007910156249991],[42.76210937500005,14.067480468750048],[42.787402343750074,13.971484375000031]]],[[[53.08564453125004,16.648388671874955],[52.327734375,16.293554687500063],[52.17402343750004,15.956835937500017],[52.2174804687501,15.655517578125],[51.3224609375001,15.22626953125004],[49.34990234375002,14.637792968749977],[48.66835937499999,14.050146484374977],[47.9899414062501,14.048095703125],[47.40771484374997,13.661621093750057],[46.78886718750002,13.465576171874986],[45.65732421875006,13.338720703124991],[45.03867187500006,12.815869140624969],[44.617773437500006,12.817236328124977],[44.00585937499997,12.607666015625],[43.634375,12.744482421874991],[43.487597656250074,12.69882812500002],[43.23193359375003,13.267089843750057],[43.2824218750001,13.692529296875037],[43.08906250000004,14.010986328125],[42.93642578125005,14.938574218749963],[42.85566406250004,15.132958984375037],[42.65781250000006,15.232812500000051],[42.79902343750004,15.326269531249991],[42.71718750000005,15.654638671875006],[42.83964843750002,16.032031250000074],[42.79931640624997,16.37177734375001],[43.16503906249997,16.689404296874955],[43.19091796875003,17.359375],[43.41796875000003,17.516259765625023],[43.91699218749997,17.32470703124997],[45.14804687500006,17.427441406249955],[45.5353515625001,17.30205078124999],[46.72763671875006,17.26557617187501],[46.97568359375006,16.953466796875034],[47.14355468749997,16.946679687499966],[47.44179687499999,17.111865234375045],[47.57958984374997,17.448339843750034],[48.17216796875002,18.156933593749983],[49.04199218750003,18.58178710937503],[51.977636718750006,18.996142578125074],[53.08564453125004,16.648388671874955]]]]},"properties":{"name":"Yemen","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[37.85693359375003,-46.94423828124998],[37.5900390625001,-46.90800781250006],[37.78955078124997,-46.8375],[37.85693359375003,-46.94423828124998]]],[[[31.799609375000017,-23.8921875],[31.98583984374997,-24.460644531249983],[31.921679687500017,-25.96875],[31.335156250000097,-25.755566406249997],[31.207324218750074,-25.843359375000034],[31.08808593750004,-25.980664062500026],[30.803320312500006,-26.41347656250001],[30.806738281250006,-26.78525390624999],[30.88330078124997,-26.792382812500023],[30.938085937500006,-26.91582031250003],[31.06337890625005,-27.1123046875],[31.274023437500063,-27.23837890625002],[31.469531250000017,-27.29550781250002],[31.74257812500005,-27.309960937500037],[31.95839843750005,-27.305859375],[31.946093750000017,-27.173632812499974],[31.96718750000005,-26.96064453125001],[31.994726562500006,-26.817480468749977],[32.024804687499994,-26.81113281250002],[32.112890625,-26.83945312500002],[32.19960937499999,-26.833496093749957],[32.35351562499997,-26.861621093750003],[32.7765625000001,-26.850976562499966],[32.88613281250005,-26.849316406249983],[32.53476562500006,-28.19970703125003],[32.285742187500006,-28.62148437499998],[31.335156250000097,-29.378125],[29.97119140625003,-31.322070312500017],[28.449414062500068,-32.62460937499999],[27.077441406250074,-33.52119140625004],[26.429492187500045,-33.75957031250002],[25.80585937500001,-33.737109374999974],[25.574218750000057,-34.03535156249998],[25.00292968750003,-33.97363281250003],[24.8271484375,-34.16894531250003],[24.595507812500074,-34.17451171875],[23.697851562500063,-33.99277343750002],[23.268164062500006,-34.08115234374999],[22.553808593750063,-34.01005859374999],[22.24550781250005,-34.06914062500003],[21.788964843750023,-34.37265624999996],[20.529882812500034,-34.4630859375],[20.020605468750006,-34.785742187500006],[19.298242187500023,-34.61503906249996],[19.330761718750068,-34.49238281250001],[19.098339843750068,-34.350097656249986],[18.831347656250017,-34.36406249999999],[18.75214843750004,-34.08261718750002],[18.50039062499999,-34.10927734375004],[18.46162109375001,-34.346875],[18.35205078124997,-34.1884765625],[18.43300781250005,-33.71728515625003],[17.851074218750057,-32.82744140625002],[17.96523437500005,-32.70859374999996],[18.125,-32.74912109374996],[18.325292968750034,-32.50498046874996],[18.21083984375008,-31.74248046874996],[17.34707031250005,-30.44482421875],[16.95,-29.40341796875002],[16.739453124999983,-29.009375],[16.447558593750045,-28.61757812499998],[16.755761718750023,-28.45214843750003],[16.7875,-28.39472656249997],[16.81015625,-28.264550781249994],[16.841210937500023,-28.21894531250004],[16.875292968750045,-28.12792968749997],[16.93330078125004,-28.06962890624999],[17.05625,-28.03105468750003],[17.1884765625,-28.13251953125001],[17.358691406250017,-28.269433593750023],[17.44794921875001,-28.698144531249966],[18.310839843750017,-28.88623046875],[19.16171875,-28.93876953124996],[19.245800781250068,-28.90166015625003],[19.31269531250004,-28.733300781250023],[19.539843750000017,-28.574609375000023],[19.98046875,-28.45126953125002],[19.98046875,-28.310351562500003],[19.98046875,-24.77675781249998],[20.430664062500057,-25.14707031250002],[20.79316406250001,-25.915625],[20.641406250000017,-26.7421875],[20.739843749999977,-26.84882812499997],[21.694726562500023,-26.840917968749963],[21.738085937500045,-26.806835937500026],[21.788281250000068,-26.710058593750034],[22.01093750000004,-26.635839843750006],[22.090917968749977,-26.580175781250034],[22.217578125000045,-26.38886718749997],[22.47089843750004,-26.219042968750003],[22.548632812500074,-26.178417968749997],[22.59765625000003,-26.13271484375001],[22.878808593750023,-25.457910156250023],[23.148730468750017,-25.288671875],[23.389257812500006,-25.291406250000023],[23.89375,-25.600878906250017],[23.96953124999999,-25.62607421874999],[24.192968750000034,-25.632910156249963],[24.33056640625,-25.742871093749983],[25.21337890625,-25.75625],[25.518164062500006,-25.66279296875001],[25.91210937499997,-24.747460937499966],[26.031835937500034,-24.70244140625003],[26.130859375000057,-24.671484375000034],[26.39716796875004,-24.61357421874996],[26.451757812500063,-24.582714843749983],[26.835058593750063,-24.240820312499963],[27.085546875000034,-23.577929687500003],[27.7685546875,-23.14892578125],[27.812597656250006,-23.108007812500006],[28.210156249999983,-22.693652343749974],[28.83984375000003,-22.480859374999966],[28.94580078125003,-22.39511718749999],[29.013476562500045,-22.27841796875002],[29.129882812500057,-22.21328125],[29.364843750000063,-22.19394531250005],[29.37744140625003,-22.19277343749998],[29.66308593749997,-22.146289062500017],[29.90234375000003,-22.184179687500006],[30.19042968750003,-22.291113281250034],[30.460156250000097,-22.329003906250023],[30.71162109375004,-22.297851562499986],[31.07343750000004,-22.30781249999997],[31.19726562499997,-22.344921874999983],[31.287890625000074,-22.402050781249983],[31.54560546875004,-23.48232421874998],[31.799609375000017,-23.8921875]],[[27.19355468750001,-29.94130859375001],[27.364062500000017,-30.27919921875001],[27.753125,-30.6],[28.05683593750001,-30.63105468750001],[28.128710937500017,-30.52509765625001],[28.39208984375003,-30.14755859375002],[28.646875,-30.1265625],[29.09804687500005,-29.919042968750006],[29.142187500000063,-29.70097656249999],[29.293554687500006,-29.56689453125003],[29.348828125000097,-29.441992187499977],[29.38671874999997,-29.319726562500023],[29.301367187500006,-29.08984375],[28.625781250000017,-28.581738281250054],[28.583398437499994,-28.59414062499999],[28.471875,-28.615820312499977],[28.23261718750004,-28.701269531249977],[28.084375,-28.779980468750026],[27.95986328125008,-28.87333984375003],[27.73554687500004,-28.940039062500034],[27.294531250000063,-29.519335937500017],[27.056933593750074,-29.62558593749999],[27.19355468750001,-29.94130859375001]]]]},"properties":{"name":"South Africa","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[33.148046875,-9.603515625],[33.25,-9.759570312500003],[33.35097656250002,-9.862207031250009],[33.33710937500001,-9.954003906250009],[33.3115234375,-10.037988281250009],[33.52890625,-10.234667968750003],[33.53759765625,-10.3515625],[33.5537109375,-10.391308593750011],[33.66152343750002,-10.553125],[33.29277343750002,-10.85234375],[33.37978515625002,-11.157910156250011],[33.26835937500002,-11.40390625],[33.23271484375002,-11.417675781250011],[33.22636718750002,-11.534863281250011],[33.30390625000001,-11.690820312500009],[33.25234375000002,-12.112597656250003],[33.34013671875002,-12.308300781250011],[33.512304687500006,-12.347753906250006],[32.975195312500006,-12.701367187500011],[32.96757812500002,-13.225],[32.67041015625,-13.590429687500006],[32.797460937500006,-13.6884765625],[32.98125,-14.009375],[33.148046875,-13.94091796875],[33.201757812500006,-14.013378906250011],[30.231835937500023,-14.990332031250006],[30.39609375,-15.64306640625],[29.4873046875,-15.69677734375],[28.9130859375,-15.98779296875],[28.760546875000017,-16.53212890625001],[27.932226562500006,-16.89619140625001],[27.020800781250017,-17.95839843750001],[26.779882812500006,-18.04150390625],[26.333398437500023,-17.929296875],[25.995898437500017,-17.969824218750006],[25.2587890625,-17.793554687500006],[25.001757812500017,-17.56855468750001],[24.73291015625,-17.51777343750001],[24.27490234375,-17.481054687500006],[23.380664062500017,-17.640625],[22.193945312500006,-16.628125],[21.979785156250017,-15.95556640625],[21.979394531250023,-14.440527343750006],[21.979296875000017,-14.11962890625],[21.979101562500006,-13.798730468750009],[21.978906250000023,-13.0009765625],[22.209570312500006,-13.0009765625],[23.843164062500023,-13.0009765625],[23.962988281250006,-12.988476562500011],[23.882421875,-12.799023437500011],[23.886523437500017,-12.743261718750006],[23.909375,-12.636132812500009],[23.98388671875,-11.725],[23.96650390625001,-10.871777343750011],[24.36572265625,-11.1298828125],[24.3779296875,-11.417089843750006],[25.28876953125001,-11.21240234375],[25.349414062500017,-11.623046875],[26.025976562500006,-11.89013671875],[26.824023437500017,-11.965234375],[27.1591796875,-11.579199218750006],[27.573828125,-12.22705078125],[28.412890625000017,-12.51806640625],[28.550878906250006,-12.836132812500011],[28.730078125,-12.925488281250011],[29.014257812500006,-13.368847656250011],[29.20185546875001,-13.398339843750009],[29.55419921875,-13.248925781250009],[29.775195312500017,-13.438085937500006],[29.79511718750001,-12.155468750000011],[29.508203125000023,-12.228222656250011],[29.48554687500001,-12.41845703125],[29.064355468750023,-12.348828125000011],[28.482519531250006,-11.812109375],[28.383398437500006,-11.566699218750003],[28.6455078125,-10.550195312500009],[28.60419921875001,-9.678808593750006],[28.400683593750017,-9.224804687500011],[28.869531250000023,-8.785839843750011],[28.89814453125001,-8.485449218750006],[30.75117187500001,-8.193652343750003],[30.830664062500006,-8.385546875],[30.891992187500023,-8.473730468750006],[30.968359375,-8.550976562500011],[31.07636718750001,-8.611914062500006],[31.3505859375,-8.60703125],[31.44921875,-8.65390625],[31.53486328125001,-8.71328125],[31.55625,-8.80546875],[31.673632812500017,-8.908789062500006],[31.91865234375001,-8.9421875],[31.921875,-9.019433593750009],[31.94257812500001,-9.054003906250003],[32.75664062500002,-9.322265625],[32.919921875,-9.407421875000011],[32.99599609375002,-9.622851562500003],[33.148046875,-9.603515625]]]},"properties":{"name":"Zambia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[31.287890625000017,-22.40205078125001],[31.07343750000001,-22.30781250000001],[30.71162109375001,-22.2978515625],[30.46015625000001,-22.32900390625001],[30.1904296875,-22.291113281250006],[29.90234375,-22.184179687500006],[29.6630859375,-22.146289062500003],[29.37744140625,-22.19277343750001],[29.36484375,-22.193945312500006],[29.315234375000017,-22.15771484375],[29.237207031250023,-22.07949218750001],[29.042382812500023,-22.018359375],[29.02558593750001,-21.796875],[28.014062500000023,-21.55419921875],[27.66943359375,-21.064257812500003],[27.679296875,-20.503027343750006],[27.28076171875,-20.47871093750001],[27.17822265625,-20.10097656250001],[26.168066406250006,-19.53828125000001],[25.939355468750023,-18.93867187500001],[25.242285156250006,-17.969042968750003],[25.2587890625,-17.793554687500006],[25.995898437500017,-17.969824218750006],[26.333398437500023,-17.929296875],[26.779882812500006,-18.04150390625],[27.020800781250017,-17.95839843750001],[27.932226562500006,-16.89619140625001],[28.760546875000017,-16.53212890625001],[28.9130859375,-15.98779296875],[29.4873046875,-15.69677734375],[30.39609375,-15.64306640625],[30.437792968750017,-15.995312500000011],[31.236230468750023,-16.02363281250001],[31.939843750000023,-16.428808593750006],[32.94804687500002,-16.71230468750001],[32.87626953125002,-16.88359375],[32.99306640625002,-18.35957031250001],[32.69970703125,-18.94091796875],[32.84980468750001,-19.10439453125001],[32.77763671875002,-19.388769531250006],[32.992773437500006,-19.98486328125],[32.49238281250001,-20.659765625],[32.353613281250006,-21.136523437500003],[32.429785156250006,-21.29707031250001],[31.429492187500017,-22.298828125],[31.287890625000017,-22.40205078125001]]]},"properties":{"name":"Zimbabwe","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[74.00809389139292,33.25375789331485],[73.19660141888893,33.898124784580936],[73.13410859949555,34.82510160558277],[72.31128647748268,35.77290936638241],[73.08203125000107,36.43949943991182],[73.08961802927895,36.86435907947333],[73.116796875,36.868554687499994],[74.03886718750002,36.825732421874996],[74.54140625000002,37.02216796875],[74.69218750000002,37.0357421875],[74.8892578125,36.952441406249996],[74.94912109375002,36.968359375],[75.05390625000001,36.987158203125],[75.14521484375001,36.9732421875],[75.3466796875,36.913476562499994],[75.37685546875002,36.883691406249994],[75.42421875000002,36.738232421875],[75.46025390625002,36.725048828125],[75.57373046875,36.759326171874996],[75.66718750000001,36.741992187499996],[75.77216796875001,36.694921875],[75.84023437500002,36.649707031249996],[75.88496093750001,36.600732421874994],[75.93300781250002,36.52158203125],[75.95185546875001,36.45810546875],[75.97441406250002,36.382421875],[75.91230468750001,36.048974609374994],[76.07089843750003,35.9830078125],[76.14785156250002,35.829003906249994],[76.17783203125003,35.810546875],[76.25166015625001,35.8109375],[76.3857421875,35.837158203125],[76.50205078125003,35.878222656249996],[76.55126953125,35.887060546875],[76.5634765625,35.772998046874996],[76.6318359375,35.729394531249994],[76.7275390625,35.678662109375],[76.76689453124999,35.66171875],[76.81279296874999,35.571826171874996],[76.88222656250002,35.4357421875],[76.927734375,35.346630859375],[77.04863281249999,35.109912109374996],[77.00087890625002,34.991992187499996],[76.78291015625001,34.900195312499996],[76.75751953125001,34.877832031249994],[76.7490234375,34.847558593749994],[76.6962890625,34.786914062499996],[76.59443359375001,34.73583984375],[76.45673828125001,34.756103515625],[76.17246093750003,34.667724609375],[76.041015625,34.669921875],[75.93828125000002,34.612548828125],[75.86210937500002,34.56025390625],[75.70917968750001,34.503076171874994],[74.300390625,34.765380859375],[74.17197265625,34.7208984375],[74.05585937500001,34.6806640625],[73.96123046875002,34.653466796874994],[73.79453125,34.378222656249996],[73.80996093750002,34.325341796874994],[73.92460937500002,34.287841796875],[73.97236328125001,34.236621093749996],[73.9794921875,34.191308593749994],[73.90390625,34.1080078125],[73.94990234375001,34.018798828125],[74.24648437500002,33.990185546875],[73.97646484375002,33.7212890625],[74.15,33.506982421874994],[74.00809389139292,33.25375789331485]]]},"properties":{"name":"","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[78.49194250885338,32.53122786149202],[78.10154031239509,32.87658365066666],[77.71342088235082,32.6917648744551],[77.06655516561037,33.301666835953235],[76.62299010270264,33.32014871357439],[76.32728006076415,32.87658365066666],[75.73585997688717,32.78417426256088],[75.62496871116024,32.28516356678968],[75.32221348233018,32.28516356678968],[74.98730468749997,32.46220703124996],[74.78886718750013,32.4578125],[74.6857421875001,32.493798828124994],[74.66328125000004,32.75766601562495],[74.63242187499995,32.770898437500136],[74.58828125000011,32.7532226562501],[74.35458984375012,32.76870117187505],[74.30546875000007,32.81044921875002],[74.30361328125005,32.991796875000034],[73.98984375000006,33.22119140625006],[74.15,33.506982421874994],[73.97646484375016,33.72128906249998],[74.24648437500011,33.99018554687504],[73.9499023437501,34.018798828125],[73.90390625000012,34.10800781250006],[73.97949218750009,34.191308593749966],[73.97236328125004,34.23662109374996],[73.92460937500007,34.287841796875114],[73.80996093750016,34.32534179687511],[73.79453125000006,34.378222656250045],[73.96123046875007,34.653466796874994],[74.05585937500015,34.68066406250003],[74.17197265624995,34.72089843750004],[74.30039062500006,34.76538085937506],[75.70917968750004,34.50307617187508],[75.86210937500002,34.56025390625001],[75.93828125000019,34.612548828125],[76.04101562500014,34.66992187499997],[76.17246093750006,34.66772460937506],[76.4567382812501,34.756103515625114],[76.5944335937501,34.73583984375006],[76.69628906249997,34.78691406249999],[76.74902343750014,34.84755859375008],[76.7575195312501,34.87783203125005],[76.7829101562501,34.90019531249999],[77.00087890625011,34.99199218750002],[77.03066406250011,35.06235351562498],[77.04863281250007,35.109912109375074],[77.42343749999995,35.30258789062506],[77.57158203125002,35.37875976562495],[77.69697265625015,35.443261718750136],[77.79941406250006,35.49589843750002],[78.0426757812501,35.4797851562501],[78.07578125000006,35.13491210937502],[78.15849609375002,34.94648437499998],[78.32695312500007,34.60639648437498],[78.86484375000006,34.39033203125001],[78.93642578125,34.35195312500002],[78.97060546875011,34.22822265625004],[78.72666015625006,34.013378906249955],[78.78378906250006,33.80878906250004],[78.86503906250002,33.43110351562501],[78.94843750000004,33.346533203125006],[79.1125,33.22626953125001],[79.13515625000005,33.17192382812496],[79.10283203125007,33.05253906249996],[79.14550781250003,33.00146484375006],[79.16992187500003,32.497216796874994],[78.91894531249997,32.3582031250001],[78.75351562500012,32.49926757812506],[78.73671875,32.55839843750002],[78.49194250885338,32.53122786149202]]]]},"properties":{"name":"","childNum":1}}]}');var xe=Object.defineProperty,ke=Object.getOwnPropertySymbols,Ce=Object.prototype.hasOwnProperty,$e=Object.prototype.propertyIsEnumerable,Se=(e,t,n)=>t in e?xe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ee=(e,t)=>{for(var n in t||(t={}))Ce.call(t,n)&&Se(e,n,t[n]);if(ke)for(var n of ke(t))$e.call(t,n)&&Se(e,n,t[n]);return e};function Oe({areaStyleColors:n,dataLoaded:o,hasData:i,highlight:r,type:s,option:a,series:l,onChange:c,zoomStart:u,zoomEnd:h,title:d,seriesConfig:p=[],noDataComponent:g=null,zoomColors:m,style:f}){const[y,v]=(0,e.useState)(null),b=(0,e.useRef)(null),w=()=>{y&&y.resize()},x=(0,e.useMemo)((()=>g?g():t().createElement(be,{theme:"info"},"No data to display")),[g]),k={defaultOpts:(0,pe.fromJS)({title:{show:!0,text:d,left:0},color:[],toolbox:{right:"0",orient:"horizontal",itemSize:15,showTitle:!0,feature:null},dataZoom:[{show:!0,start:0,end:100,orient:"horizontal",dataBackground:{lineStyle:{color:(null==m?void 0:m.lineStyle)||"#368493"},areaStyle:{color:(null==m?void 0:m.areaStyle)||"#368493"}},handleStyle:{color:(null==m?void 0:m.handleStyle)||"#368493"},textStyle:{color:(null==m?void 0:m.textStyle)||"#368493"},borderColor:"transparent",fillerColor:(null==m?void 0:m.fillerColor)||"rgba(54, 132, 147, 0.1)"}],legend:{show:!1},tooltip:{trigger:"axis",axisPointer:{type:"cross"}},grid:{left:"1%",right:"1%",bottom:"50px",top:"40px",containLabel:!0},xAxis:{boundaryGap:!1,type:"category",splitLine:{show:!0,lineStyle:{type:"dotted",color:"#F0F0F0"}},axisLine:{show:!1},axisTick:{show:!1},data:[]},yAxis:{min:"dataMin",boundaryGap:!0,axisPointer:{show:!0},splitLine:{lineStyle:{type:"dotted",color:"#F0F0F0"},show:!0},axisLabel:{show:!0},axisLine:{show:!0},axisTick:{show:!1},type:"value"},textStyle:{color:"#5a5a68"},series:[],animationEasing:"elasticOut"}),seriesDefault:(0,pe.fromJS)({data:[],type:"line",areaStyle:{opacity:1,color:n?new de.graphic.LinearGradient(0,0,1,1,n.map(((e,t)=>({offset:t,color:e})))):[]},smooth:!1,symbolSize:7,name:""})},C={defaultOpts:(0,pe.fromJS)({tooltip:{trigger:"axis",formatter:"{b}: {c} ({d}%)"},legend:{orient:"horizontal",x:"left",y:"top",data:[]},color:[],series:[]}),seriesDefault:(0,pe.fromJS)({type:"pie",center:["50%","55%"],radius:["50%","75%"],avoidLabelOverlap:!1,animationType:"scale",animationEasing:"elasticOut",labelLine:{normal:{show:!0,smooth:.2,length:6,length2:6}},data:[]})},$={defaultOpts:(0,pe.fromJS)({series:[]}),seriesDefault:(0,pe.fromJS)({type:"map",data:[]})};(0,e.useEffect)((()=>(window.addEventListener("resize",w),()=>{window.removeEventListener("resize",w)})),[y]),(0,e.useEffect)((()=>{if(null==b?void 0:b.current)return v(de.init(b.current)),()=>{y&&y.dispose()}}),[b.current]);const S=e=>{c&&c(e)};(0,e.useEffect)((()=>{let e;return y&&(e=ge(S,500),y.on("dataZoom",e),y.on("restore",e),y.on("click",e),y.on("mousemove",(e=>{e.data&&y.getZr().setCursorStyle("pointer")}))),()=>{y&&(y.off("dataZoom",e),y.off("restore",e),y.off("click",e))}}),[y,c]);const E=me(y),O=me(a),T=me(s),A=me(l);(0,e.useEffect)((()=>{var e,t,n,o,i,r;!y||(null==(t=null==(e=(0,pe.fromJS)(E))?void 0:e.equals)?void 0:t.call(e,(0,pe.fromJS)(y)))&&(null==(o=null==(n=(0,pe.fromJS)(O))?void 0:n.equals)?void 0:o.call(n,(0,pe.fromJS)(a)))&&T===s&&(null==(r=(i=(0,pe.fromJS)(A)).equals)?void 0:r.call(i,(0,pe.fromJS)(l)))||(y.clear(),y.setOption(((e,t,n)=>{let o={};switch(e){case"pie":o=C.defaultOpts.mergeDeep((0,pe.fromJS)(t)).toJS(),n.forEach((e=>{o.series.push(C.seriesDefault.mergeDeep((0,pe.fromJS)(e)).toJS())}));break;case"geo":o=$.defaultOpts.mergeDeep((0,pe.fromJS)(t)).toJS(),n.forEach((e=>{o.series.push($.seriesDefault.mergeDeep((0,pe.fromJS)(e)).toJS())}));break;default:o=k.defaultOpts.mergeDeep((0,pe.fromJS)(t)).toJS(),Array.isArray(t.yAxis)&&(o.yAxis=t.yAxis),n.forEach(((e,t)=>{const n=Ee(Ee(Ee({},k.seriesDefault.toJS()),p[t]),e);o.series.push(n)}))}return o})(s,a,l)),y.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:!0}))}),[y,a,l,s]),(0,e.useEffect)((()=>{y&&r&&(y.dispatchAction({type:"highlight",seriesIndex:r.seriesIndex,dataIndex:r.dataIndex}),y.dispatchAction({type:"showTip",seriesIndex:r.seriesIndex,dataIndex:r.dataIndex}))}),[r]);const _=me(u),L=me(h);(0,e.useEffect)((()=>{!y||-1===u||-1===h||_===u&&L===h||y.dispatchAction({type:"dataZoom",startValue:u,endValue:h})}),[u,h]);const M=()=>!o||!1!==i&&!0!==i||i;return t().createElement("div",{className:"tyk-chart__wrapper"},o?null:t().createElement(ye,null),t().createElement("div",{className:(()=>{const e=["tyk-chart"];return o||e.push("tyk-chart--loading-chart"),M()||e.push("tyk-chart--no-data"),e.join(" ")})(),style:(()=>{const e=f||{};return e.height||(e.height="300px"),e.width||(e.width="100%"),e})(),"data-type":s,ref:b}),M()?null:x)}de.registerMap("world",we),Oe.propTypes={areaStyleColors:r().instanceOf(Array),dataLoaded:r().bool,hasData:r().bool,highlight:r().oneOfType([r().number,r().string,r().instanceOf(Array)]),noDataComponent:r().func,zoomStart:r().number,zoomEnd:r().number,zoomColors:r().instanceOf(Object),option:r().instanceOf(Object),onChange:r().func,style:r().instanceOf(Object),type:r().string,title:r().string,series:r().instanceOf(Array),seriesConfig:r().instanceOf(Object)};const Te=(0,e.memo)(Oe);var Ae=n(745);const _e=(t,n)=>{const o=(0,e.useRef)();(0,e.useEffect)((()=>{o.current=t}),[t]),(0,e.useEffect)((()=>{if(null!==n){const e=setTimeout((function(){o.current()}),n);return()=>clearTimeout(e)}return()=>{}}),[n])};var Le=Object.defineProperty,Me=Object.getOwnPropertySymbols,Re=Object.prototype.hasOwnProperty,Ne=Object.prototype.propertyIsEnumerable,Ie=(e,t,n)=>t in e?Le(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Pe(e){const{children:n,options:o,onClose:i,index:r}=e,s=((e,t)=>{for(var n in t||(t={}))Re.call(t,n)&&Ie(e,n,t[n]);if(Me)for(var n of Me(t))Ne.call(t,n)&&Ie(e,n,t[n]);return e})({theme:"success",delay:3e3},o),a=e=>{i(e),clearTimeout(void 0)};return _e((()=>a(r)),s.delay),t().createElement(be,{className:"tyk-toast__message",theme:s.theme,onClose:()=>a(r)},n)}Pe.propTypes={children:r().oneOfType([r().element,r().node,r().string]),options:r().instanceOf(Object),onClose:r().func,index:r().number};const De=Pe;var Fe=Object.defineProperty,Be=Object.defineProperties,We=Object.getOwnPropertyDescriptors,He=Object.getOwnPropertySymbols,je=Object.prototype.hasOwnProperty,ze=Object.prototype.propertyIsEnumerable,Ve=(e,t,n)=>t in e?Fe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ue=(e,t)=>{for(var n in t||(t={}))je.call(t,n)&&Ve(e,n,t[n]);if(He)for(var n of He(t))ze.call(t,n)&&Ve(e,n,t[n]);return e};function Ge(n){const[o,i]=(0,e.useState)({}),{notify:r}=n,s=(e,t)=>{const n=Math.floor(1e6*Math.random());i((o=>{return i=Ue({},o),Be(i,We({[n]:{message:e,options:t}}));var i}))};(0,e.useEffect)((()=>{r(s)}),[o]);const a=e=>{delete Ue({},o)[e],i((t=>{const n=Ue({},t);return delete n[e],n}))};return t().createElement("div",{className:"tyk-toast__container"},Object.keys(o).map((e=>o[e]?t().createElement(De,{options:o[e].options,onClose:a.bind(null,e),index:e,key:e},o[e].message):null)))}Ge.propTypes={notify:r().func};const Ke=Ge;var qe=Object.defineProperty,Ye=Object.defineProperties,Je=Object.getOwnPropertyDescriptors,Xe=Object.getOwnPropertySymbols,Qe=Object.prototype.hasOwnProperty,Ze=Object.prototype.propertyIsEnumerable,et=(e,t,n)=>t in e?qe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,tt=(e,t)=>{for(var n in t||(t={}))Qe.call(t,n)&&et(e,n,t[n]);if(Xe)for(var n of Xe(t))Ze.call(t,n)&&et(e,n,t[n]);return e},nt=(e,t)=>Ye(e,Je(t));const ot=new class{constructor(){var e;et(this,"symbol"!=typeof(e="bindNotify")?e+"":e,(e=>{this.createNotification=e}));const n=document.createElement("div");n.className="tyk-toast",document.body.appendChild(n),(0,Ae.s)(n).render(t().createElement(Ke,{notify:this.bindNotify}))}notify(e,t){this.createNotification&&this.createNotification(e,t)}danger(e,t){this.notify(e,nt(tt({},t),{theme:"danger"}))}success(e,t){this.notify(e,nt(tt({},t),{theme:"success"}))}warning(e,t){this.notify(e,nt(tt({},t),{theme:"warning"}))}info(e,t){this.notify(e,nt(tt({},t),{theme:"info"}))}};var it=Object.defineProperty,rt=Object.getOwnPropertySymbols,st=Object.prototype.hasOwnProperty,at=Object.prototype.propertyIsEnumerable,lt=(e,t,n)=>t in e?it(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function ct(n){const{display:o,copy:i,children:r,onCopy:s,message:a="copied"}=n,l=(0,e.createRef)(),c=(0,e.useCallback)((()=>{if(s&&s(),!window.navigator.clipboard)return l.current.select(),document.execCommand("copy"),void ot.success(a);window.navigator.clipboard.writeText(i),ot.success(a)}),[s,l]);return t().createElement(t().Fragment,null,t().createElement(n.element,((e,t)=>{for(var n in t||(t={}))st.call(t,n)&<(e,n,t[n]);if(rt)for(var n of rt(t))at.call(t,n)&<(e,n,t[n]);return e})({onClick:c,onKeyUp:c},n),r||o),window.navigator.clipboard?null:t().createElement("textarea",{ref:l,className:"tyk-copy-to-clipboard",name:"copy",value:i},i))}ct.propTypes={message:r().string,onCopy:r().func,copy:r().string.isRequired,display:r().string,children:r().oneOfType([r().element,r().string,r().object,r().node])};const ut=ct;var ht=n(137),dt=n.n(ht);function pt({children:e}){return t().createElement("div",{className:"tyk-modal__footer"},e)}pt.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const gt=pt;function mt({children:e}){return t().createElement("div",{className:"tyk-modal__body"},e)}mt.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const ft=mt;var yt=Object.defineProperty,vt=Object.getOwnPropertySymbols,bt=Object.prototype.hasOwnProperty,wt=Object.prototype.propertyIsEnumerable,xt=(e,t,n)=>t in e?yt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function kt(e){var n=e,{children:o,theme:i="none",disableCloseCommands:r=!1,opened:s=!1,onClose:a=(()=>{}),size:l="md",className:c="",showBackdrop:u=!0}=n,h=((e,t)=>{var n={};for(var o in e)bt.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&vt)for(var o of vt(e))t.indexOf(o)<0&&wt.call(e,o)&&(n[o]=e[o]);return n})(n,["children","theme","disableCloseCommands","opened","onClose","size","className","showBackdrop"]);const d=["tyk-modal",`tyk-modal--theme-${i}`,s&&"opened"].concat(c.split(" ")).filter(Boolean).join(" "),p=["tyk-modal__backdrop",s&&"opened"].filter(Boolean).join(" "),m={success:"check",warning:"warning",danger:"delete"}[i];return t().createElement(t().Fragment,null,dt().createPortal(t().createElement(x.CSSTransition,{in:s,timeout:100,classNames:"appear"},t().createElement("div",((e,t)=>{for(var n in t||(t={}))bt.call(t,n)&&xt(e,n,t[n]);if(vt)for(var n of vt(t))wt.call(t,n)&&xt(e,n,t[n]);return e})({className:d},h),t().createElement("div",{className:`tyk-modal__dialog tyk-modal--${l}`},t().createElement("div",{className:"tyk-modal__content"},"none"!==i&&t().createElement("div",{className:"tyk-modal__theme-header"},t().createElement(g,{family:"tykon",type:m})),o)))),document.querySelector("body")),u&&dt().createPortal(t().createElement(x.CSSTransition,{in:s,timeout:100,classNames:"fade"},t().createElement("button",{className:p,onClick:()=>!r&&a(),onKeyDown:()=>{},type:"button","aria-label":"Close"})),document.querySelector("body")))}kt.Body=ft,kt.Footer=gt,kt.Header=({children:e})=>(console.warn("%cModal.Header%c is deprecated.","font-weight: bold",""),t().createElement("div",{className:"tyk-modal__header"},e)),kt.Header.propTypes={children:r().element},kt.Title=({children:e})=>(console.warn("%cModal.Title%c is deprecated.","font-weight: bold",""),t().createElement("h4",{className:"tyk-modal__title"},e)),kt.Title.propTypes={children:r().element},kt.propTypes={children:r().oneOfType([r().element,r().node,r().string]),className:r().string,theme:r().string,disableCloseCommands:r().bool,opened:r().bool,onClose:r().func,size:r().string,showBackdrop:r().bool};const Ct=kt;function $t(n){const{children:o,title:i,description:r,confirmBtnText:s="Confirm",cancelBtnText:a="Cancel"}=n,[l,c]=(0,e.useState)(!1),[u,h]=(0,e.useState)(null),[d,p]=(0,e.useState)(null),g=()=>{c(!1),h(null),p(null)},m=()=>{d&&d(),g()};return t().createElement(t().Fragment,null,o(((e,t,n)=>(...o)=>{n&&n(...o),c(!0),h((()=>()=>e(...o))),t&&p((()=>()=>t(...o)))})),t().createElement(Ct,{opened:l,onClose:m},t().createElement(Ct.Body,null,t().createElement("h4",null,i),r),t().createElement(Ct.Footer,null,t().createElement(U,{onClick:m,theme:"default"},a),t().createElement(U,{onClick:()=>{u(),g()},theme:"success"},s))))}$t.propTypes={confirmBtnText:r().string,cancelBtnText:r().string,title:r().string,description:r().string,children:r().oneOfType([r().element,r().string,r().object,r().node,r().func])};const St=$t;function Et({children:n,className:o,showShadow:i}){const r=(0,e.useRef)(null),s=(0,e.useCallback)((()=>{const e=r.current;e&&(window.scrollY?e.classList.add("tyk-fixed-wrapper--scrolled"):e.classList.remove("tyk-fixed-wrapper--scrolled"))}),[r.current]),a=(0,e.useCallback)(ge(s,100),[s]);return(0,e.useEffect)((()=>(i&&window.addEventListener("scroll",a),()=>{window.removeEventListener("scroll",a)})),[a,i]),t().createElement("div",{className:`tyk-fixed-wrapper ${o}`,ref:r},n)}Et.propTypes={children:r().oneOfType([r().element,r().node,r().string]),className:r().string,showShadow:r().bool},Et.defaultProps={className:""};const Ot=Et;function Tt({children:n,hasMore:o,initialLoad:i,loadMore:r,pageNumber:s,refChild:a}){const[l,c]=(0,e.useState)(!1),u=(0,e.useRef)(null),h=C(a);(0,e.useEffect)((()=>{i&&"function"==typeof r&&(c(!1),r(s))}),[i]);const d=(0,e.useCallback)((()=>{if(!u.current)return!1;const{clientHeight:e,scrollTop:t}=u.current;return o&&(e+Math.round(t)===h.height||e>=h.height)}),[u,h.height]),p=(0,e.useCallback)((()=>{o&&"function"==typeof r?(r(s+1),c(!0)):c(!1)}),[o,s]),g=me(s),m=(0,e.useCallback)(ge((()=>{d()&&g<=s&&p()}),200),[p,d]);(0,e.useEffect)((()=>{var e;return null==(e=u.current)||e.addEventListener("scroll",m),()=>{var e;return null==(e=u.current)?void 0:e.removeEventListener("scroll",m)}}),[u,m]),(0,e.useEffect)((()=>{g>0&&0===s&&(u.current.scrollTop=0)}),[u,s]);const f=me(h);return(0,e.useEffect)((()=>{h&&f&&h.height!==f.height&&!0===l&&c(!1)}),[l,h.height]),(0,e.useEffect)((()=>{a&&h.heightt in e?_t(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function It({element:n,size:o="auto",forceDisplay:i="auto",displayAxis:r="auto",preferredPosition:s,offset:a=0,className:l,children:c,infiniteScrollerConfig:u},h){const d=(0,e.useRef)(null),p=h||d,g=(0,e.useRef)(null),m=(0,e.useRef)(null);return(0,e.useEffect)((()=>{window.requestAnimationFrame((function e(){(function(){var e;const t="auto"!==i?i:function(){const e=n.current,t=p.current;if(!t)return(null!=s?s:"vertical"===r)?"bottom":"right";const{left:o,top:i}=e.getBoundingClientRect(),a=i,l=window.innerHeight-i-e.offsetHeight,c=o,u=window.innerWidth-o-e.offsetWidth,h=a>t.scrollHeight,d=l>t.scrollHeight,g=c>t.offsetWidth,m=u>t.offsetWidth,f=o+e.offsetWidth/2-t.offsetWidth/2>0,y=i+e.offsetHeight/2-t.scrollHeight/2>0;return"vertical"===r||"auto"===r&&(h||d)&&f?function({preferredPosition:e,hasTopSpace:t,hasBottomSpace:n,topSpace:o,bottomSpace:i}){return"top"===e&&t?"top":"bottom"===e&&n||n||i>o?"bottom":"top"}({preferredPosition:s,hasTopSpace:h,hasBottomSpace:d,topSpace:a,bottomSpace:l}):"horizontal"===r?function({preferredPosition:e,hasLeftSpace:t,hasRightSpace:n,leftSpace:o,rightSpace:i}){return"left"===e&&t?"left":"right"===e&&n||n||i>o?"right":"left"}({preferredPosition:s,hasLeftSpace:g,hasRightSpace:m,leftSpace:c,rightSpace:u}):function({preferredPosition:e,hasTopSpace:t,hasBottomSpace:n,hasLeftSpace:o,hasRightSpace:i,positionedHorizontallyFitsInViewport:r,positionedVerticallyFitsInViewport:s}){return t&&s?"top":n&&s?"bottom":i&&r?"right":o&&r?"left":null!=e?e:"bottom"}({preferredPosition:s,hasTopSpace:h,hasBottomSpace:d,hasLeftSpace:g,hasRightSpace:m,positionedHorizontallyFitsInViewport:y,positionedVerticallyFitsInViewport:f})}(),l=n.current,c=p.current;if(!l||!c)return;const u=l.getBoundingClientRect(),{left:h,top:d}=null!=(e=m.current)?e:{left:0,top:0};if("top"===t&&Object.assign(c.style,function({container:e,targetPosition:t,target:n,size:o,offset:i,vpLeft:r,vpTop:s}){const a={},l={auto:t.left+n.offsetWidth/2-e.offsetWidth/2,matchElement:t.left,matchStart:t.left,matchEnd:t.right-e.offsetWidth}[o],c=t.top-e.offsetHeight-i;return a.left=`${l+r}px`,a.top=`${c+s}px`,"matchElement"===o?a.width=`${n.offsetWidth}px`:"matchEnd"===o?a.maxWidth=t.right-5+"px":"function"==typeof o&&(a.width=`${o(n.offsetWidth)}px`),a.maxHeight=t.top-i+"px",a}({container:c,targetPosition:u,target:l,size:o,offset:a,vpLeft:h,vpTop:d})),"bottom"===t&&Object.assign(c.style,function({targetPosition:e,target:t,container:n,size:o,offset:i,vpLeft:r,vpTop:s}){const a={},l={auto:e.left+t.offsetWidth/2-n.offsetWidth/2,matchElement:e.left,matchStart:e.left,matchEnd:e.right-n.offsetWidth}[o],c=e.bottom+i;return a.left=`${l+r}px`,a.top=`${c+s}px`,"matchElement"===o?a.width=`${t.offsetWidth}px`:"matchEnd"===o?a.maxWidth=e.right-5+"px":"function"==typeof o&&(a.width=`${o(t.offsetWidth)}px`),a.maxHeight=window.innerHeight-e.bottom-i+"px",a}({container:c,targetPosition:u,target:l,size:o,offset:a,vpLeft:h,vpTop:d})),"left"===t&&Object.assign(c.style,function({targetPosition:e,target:t,container:n,size:o,offset:i}){const r={},s=e.left-n.offsetWidth-i,a={auto:e.top+t.offsetHeight/2-n.offsetHeight/2,matchElement:e.top,matchStart:e.top,matchEnd:e.bottom-n.offsetHeight}[o];return r.left=`${s}px`,r.top=`${a}px`,"matchElement"===o?r.height=`${t.offsetHeight}px`:"function"==typeof o&&(r.height=`${o(t.offsetHeight)}px`),r.maxWidth=e.left-i+"px",r}({targetPosition:u,target:l,container:c,size:o,offset:a})),"right"===t&&Object.assign(c.style,function({targetPosition:e,target:t,container:n,size:o,offset:i,vpLeft:r,vpTop:s}){const a={},l=e.left+t.offsetWidth+i,c={auto:e.top+t.offsetHeight/2-n.offsetHeight/2,matchElement:e.top,matchStart:e.top,matchEnd:e.bottom-n.offsetHeight}[o];return a.left="auto"===o?`${l+r}px`:`${l}px`,a.top="auto"===o?`${c+s}px`:`${c}px`,"matchElement"===o?a.height=`${t.offsetHeight}px`:"function"==typeof o&&(a.height=`${o(t.offsetHeight)}px`),a.maxWidth=window.innerWidth-e.left-t.offsetWidth-i+"px",a}({targetPosition:u,target:l,container:c,size:o,offset:a,vpLeft:h,vpTop:d})),null===m.current)if("matchEnd"===o)m.current={left:0,top:0};else{const e=Number(c.style.left.replace("px","")),t=Number(c.style.top.replace("px",""));m.current={left:e<0?5-e:0,top:t<0?5-t:0}}})(),window.requestAnimationFrame(e)}))}),[]),(0,ht.createPortal)(t().createElement("div",{className:`floating-container ${l||""}`,ref:p},t().createElement(At,((e,t)=>{for(var n in t||(t={}))Mt.call(t,n)&&Nt(e,n,t[n]);if(Lt)for(var n of Lt(t))Rt.call(t,n)&&Nt(e,n,t[n]);return e})({refChild:g},u),t().createElement("div",{className:"floating-container__content-wrapper",ref:g},c))),document.querySelector("body"))}It.propTypes={element:r().instanceOf(Object),className:r().string,size:r().oneOfType([r().oneOf(["auto","matchElement","matchStart","matchEnd"]),r().func]),offset:r().number,forceDisplay:r().oneOf(["auto","top","bottom","left","right"]),displayAxis:r().oneOf(["auto","vertical","horizontal"]),preferredPosition:r().oneOf(["top","bottom","left","right"]),infiniteScrollerConfig:r().instanceOf(Object)};const Pt=(0,e.forwardRef)(It);function Dt({children:e}){return t().createElement("div",{className:"tyk-info-note"},t().createElement(be,{theme:"info"},e))}Dt.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const Ft=Dt;function Bt(e){const{className:n,children:o,selected:i}=e;return t().createElement("li",{className:`${n} ${i?"tyk-list__item--selected":""}`},o)}Bt.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,selected:r().bool},Bt.defaultProps={className:""};const Wt=Bt;function Ht(e){const{className:n,children:o,label:i,labelwidth:r,theme:s,style:a}=e;return t().createElement("div",{className:"tyk-list__wrapper "+(r?"tyk-list--with-inline-label":"")},void 0!==i?t().createElement("label",{style:{flexBasis:r||"auto"}},i):null,t().createElement("ul",{className:(()=>{let e=["tyk-list"];return s&&e.push(`tyk-list--${s}`),n&&(e=e.concat(n.split(" "))),e.join(" ")})(),style:(()=>{const e=structuredClone(a);return r&&(e.flexBasis=`calc(100% - ${r} - 20px)`),e})()},o))}Ht.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,label:r().string,labelwidth:r().string,theme:r().string,style:r().instanceOf(Object)},Ht.defaultProps={theme:"default",style:{}},Ht.Item=Wt;const jt=Ht;function zt({align:e="center",children:n,left:o,right:i,title:r,pre:s,subtitle:a,withTabs:l}){const c=a?t().createElement("p",{className:"font-family-medium"},a):null;return t().createElement("section",{className:"tyk-nav-bar "+(l?"tyk-nav-bar__with-tabs":"")},t().createElement("div",{className:`tyk-nav-bar__wrapper tyk-nav-bar--align-${e}`},s&&t().createElement("div",{className:"tyk-nav-bar__pre"},s),r?t().createElement("div",null,t().createElement("h1",null,r),c):c,t().createElement("div",{className:"tyk-nav-bar__container"},o&&t().createElement("div",{className:"tyk-nav-bar__left"},o),i&&t().createElement("div",{className:"tyk-nav-bar__right"},i))),n)}zt.propTypes={align:r().string,children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),title:r().string,subtitle:r().string,pre:r().oneOfType([r().element,r().node]),left:r().oneOfType([r().element,r().node]),right:r().oneOfType([r().element,r().node]),withTabs:r().bool};const Vt=zt;function Ut({children:e}){return t().createElement("li",{className:"tyk-navigation-item"},e)}Ut.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string])};const Gt=Ut;function Kt({children:e}){return t().createElement("ul",{className:"tyk-navigation"},e)}Kt.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string])},Kt.Item=Gt;const qt=Kt,Yt=(0,e.createContext)();var Jt=Object.defineProperty,Xt=Object.defineProperties,Qt=Object.getOwnPropertyDescriptors,Zt=Object.getOwnPropertySymbols,en=Object.prototype.hasOwnProperty,tn=Object.prototype.propertyIsEnumerable,nn=(e,t,n)=>t in e?Jt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,on=(e,t)=>{for(var n in t||(t={}))en.call(t,n)&&nn(e,n,t[n]);if(Zt)for(var n of Zt(t))tn.call(t,n)&&nn(e,n,t[n]);return e},rn=(e,t)=>Xt(e,Qt(t));function sn(n){var o=n,{children:i,noPadding:r,className:s}=o,a=((e,t)=>{var n={};for(var o in e)en.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Zt)for(var o of Zt(e))t.indexOf(o)<0&&tn.call(e,o)&&(n[o]=e[o]);return n})(o,["children","noPadding","className"]);const l=(0,e.useCallback)((()=>["tyk-panel__body",s,r&&"no-padding"].filter(Boolean).join(" ")),[s,r]);return t().createElement(Yt.Consumer,null,(e=>e.collapsable?t().createElement(R,rn(on({},a),{collapsed:e.collapsed,className:l()}),i):t().createElement("div",rn(on({},a),{className:l()}),i)))}sn.propTypes={children:r().oneOfType([r().element,r().node,r().string]),noPadding:r().bool,className:r().string};const an=sn;function ln(e){const{children:n}=e;return t().createElement("div",{className:"tyk-panel__footer"},n)}ln.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const cn=ln;class un extends e.Component{getCssClasses(e){const{className:t}=this.props;let n=["tyk-panel__header"];return e.collapsable&&n.push("collapsable"),t&&(n=n.concat(t.split(" "))),n.join(" ")}render(){const{children:e}=this.props;return t().createElement(Yt.Consumer,null,(n=>{const o="blank"===n.theme?"h3":"div",i=n.collapsed?"chevron-down":"chevron-up";return t().createElement(o,{className:this.getCssClasses(n),onClick:n.collapsable?n.onToggle:void 0},e,n.collapsable?t().createElement("div",{className:`collapsable__arrow-${n.collapsibleIconPosition}`},t().createElement(g,{type:i})):null)}))}}un.propTypes={children:r().oneOfType([r().element,r().node,r().string]).isRequired,className:r().string};const hn=un;function dn(n){const{children:o,className:i,collapsed:r,collapsable:s,theme:a,onToggleCollapse:l,collapsibleIconPosition:c="right"}=n,[u,h]=(0,e.useState)(r||!1);(0,e.useEffect)((()=>{r!==u&&h(r)}),[r]);const d=(0,e.useCallback)((()=>{h(!u),l&&l(!u)}),[u,l]),p=(0,e.useMemo)((()=>({collapsable:s,collapsed:u,onToggle:d,theme:a,collapsibleIconPosition:c})),[s,u,c,a,d]);return t().createElement("div",{className:(()=>{let e=["tyk-panel"];const t=`tyk-panel--${a||"default"}`,n=`tyk-panel__icon-collapse--${c}`;return e.push(t),e.push(n),i&&(e=e.concat(i.split(" "))),u&&e.push("tyk-panel--collapsed"),e.join(" ")})()},t().createElement(Yt.Provider,{value:p},"function"==typeof o?o({toggleCollapse:d}):o))}dn.propTypes={children:r().oneOfType([r().func,r().element,r().node,r().string]),className:r().string,collapsable:r().bool,collapsibleIconPosition:r().string,collapsed:r().bool,theme:r().string,onToggleCollapse:r().func},dn.Body=an,dn.Footer=cn,dn.Header=hn;const pn=dn;function gn(e){const{children:n,className:o,theme:i}=e;return t().createElement("div",{className:(()=>{let e=["tyk-pill",...i.split(" ").map((e=>`tyk-pill--${e}`))];return o&&(e=e.concat(o)),e.join(" ")})()},n)}gn.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,theme:r().string},gn.defaultProps={theme:"default"};const mn=gn;var fn,yn,vn,bn,wn,xn,kn,Cn,$n=(e,t,n)=>{if(!t.has(e))throw TypeError("Cannot "+n)},Sn=(e,t,n)=>($n(e,t,"read from private field"),n?n.call(e):t.get(e)),En=(e,t,n)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,n)},On=(e,t,n,o)=>($n(e,t,"write to private field"),o?o.call(e,n):t.set(e,n),n);class Tn{constructor(){En(this,fn,null),En(this,yn,null),En(this,vn,null),En(this,bn,null),En(this,wn,[]),En(this,xn,[]),En(this,kn,[]),En(this,Cn,!1)}on(e,t){let n=null;"onHeightChange"===e?n=Sn(this,wn):"onDragStart"===e?n=Sn(this,xn):"onDragEnd"===e&&(n=Sn(this,kn)),n&&this.addListener(n,t)}off(e,t){let n=null;"onHeightChange"===e?n=Sn(this,wn):"onDragStart"===e?n=Sn(this,xn):"onDragEnd"===e&&(n=Sn(this,kn)),n&&this.removeListener(n,t)}setRefs(e,t,n){(Sn(this,yn)||Sn(this,vn)||Sn(this,bn))&&this.unbindEvents(),On(this,bn,e),On(this,yn,t),On(this,vn,n),On(this,fn,null),this.bindEvents()}bindEvents(){this.ensureRefs("bindEvents"),Sn(this,vn).addEventListener("mousedown",this.onMouseDown.bind(this)),document.addEventListener("mousemove",this.onMouseMove.bind(this)),document.addEventListener("mouseup",this.onMouseUp.bind(this))}getHeight(){return this.ensureRefs("getHeight"),Sn(this,yn).getBoundingClientRect().height}onMouseDown(e){this.ensureRefs("onMouseDown"),On(this,fn,{mouseDown:!0,initialRect:Sn(this,yn).getBoundingClientRect(),initialEvent:e})}onMouseMove(e){if(this.ensureRefs("onMouseMove"),!Sn(this,fn))return;if(!this.isPrimaryMouseButtonDown(e))return void this.onMouseUp();Sn(this,Cn)||(On(this,Cn,!0),this.onDragStart.bind(this)());const t=Sn(this,fn).initialEvent.y-e.y,n=Math.ceil(Sn(this,fn).initialRect.height+t);this.setHeight(`${n}px`,"mousemove")}notifyListeners(e,t){e&&Array.isArray(e)&&e.length&&e.forEach((e=>{"function"==typeof e&&e(t)}))}addListener(e,t){e&&Array.isArray(e)&&"function"==typeof t&&e.push(t)}removeListener(e,t){if(e&&Array.isArray(e)&&"function"==typeof t&&e.length){const n=e.indexOf(t);n>-1&&e.splice(n,1)}}onDragEnd(){Sn(this,Cn)&&this.notifyListeners(Sn(this,kn),this.getHeight())}onDragStart(){this.notifyListeners(Sn(this,xn),this.getHeight())}isPrimaryMouseButtonDown(e){return 1===(void 0!==e.buttons?e.buttons:e.which)}onMouseUp(){On(this,fn,null),this.onDragEnd.bind(this)(),On(this,Cn,!1)}setHeight(e){let t=e;this.ensureRefs("setHeight"),"number"==typeof t&&(t+="px"),Sn(this,yn).style.height=t,this.notifyListeners(Sn(this,wn),this.getHeight())}ensureRefs(e){if(!Sn(this,yn)||!Sn(this,vn)||!Sn(this,bn))throw new Error(`${e}: Wrapper, panel, and gutter elements are required. Use setRefs method first.`)}isHidden(){return this.ensureRefs("isHidden"),"hidden"===Sn(this,bn).style.visibility}hide(){this.ensureRefs("hide"),Sn(this,bn).style.visibility="hidden"}show(){this.ensureRefs("show"),Sn(this,bn).style.visibility="visible"}unbindEvents(){On(this,wn,[]),On(this,xn,[]),On(this,kn,[]),Sn(this,vn).removeEventListener("mousedown",this.onMouseDown.bind(this)),document.removeEventListener("mousemove",this.onMouseMove.bind(this)),document.removeEventListener("mouseup",this.onMouseUp.bind(this))}deinit(){this.unbindEvents()}}function An({children:e}){return t().createElement(t().Fragment,null,e)}function _n({children:e}){return t().createElement(t().Fragment,null,e)}fn=new WeakMap,yn=new WeakMap,vn=new WeakMap,bn=new WeakMap,wn=new WeakMap,xn=new WeakMap,kn=new WeakMap,Cn=new WeakMap,An.propTypes={children:r().instanceOf({})},_n.propTypes={children:r().instanceOf({})};const Ln=(...e)=>e.map((e=>(e||"").trim())).filter(Boolean).join(" ");function Mn({children:n,height:o,onHeightChange:i=null,onDragStart:r=null,onDragEnd:s=null,style:a=null,parentSelector:l=null,contentStyle:c,contentClassName:u,gutterClassName:h,wrapperClassName:d},p){const g=(0,e.useRef)(null),m=(0,e.useRef)(null),f=(0,e.useRef)(null),y=(0,e.useRef)(new Tn).current;(0,e.useEffect)((()=>{if(g.current&&m.current&&f.current&&y)return y.setRefs(f.current,g.current,m.current),y.on("onHeightChange",i),y.on("onDragStart",r),y.on("onDragEnd",s),y.setHeight(o,"initialize"),()=>{y.unbindEvents()}}),[]),(0,e.useImperativeHandle)(p,(()=>{const e=e=>e.bind(y);return{getHeight:e(y.getHeight),setHeight:e(y.setHeight),hide:e(y.hide),show:e(y.show),isHidden:e(y.isHidden),deinit:e(y.deinit),on:e(y.on),off:e(y.off)}}),[]);let v=null,b=null;const w=[];t().Children.forEach(n,(e=>{e&&t().isValidElement(e)&&(e.type===An?v=e:e.type===_n?b=e:w.push(e))}));const x=t().createElement("div",{className:Ln("tyk-ui-reveal-wrapper",d||"cem"),ref:f,style:a},t().createElement("div",{className:"tyk-ui-reveal-wrapper__hole"}),t().createElement("div",{ref:m,className:Ln("tyk-ui-reveal-wrapper__gutter",h)},t().createElement("div",{className:"tyk-ui-reveal-wrapper__gutter__headerleft"},v),t().createElement("div",{className:"tyk-ui-reveal-wrapper__gutter__logo"}," "),t().createElement("div",{className:"tyk-ui-reveal-wrapper__gutter__headerright"},b)),t().createElement("div",{ref:g,className:Ln("tyk-ui-reveal-wrapper__panel",u),style:c},w));if(l)return(0,ht.createPortal)(x,document.querySelector(l))}Mn.propTypes={children:r().instanceOf({}),height:r().string,onHeightChange:r().func,onDragStart:r().func,onDragEnd:r().func,parentSelector:r().string,style:r().instanceOf({}),contentStyle:r().instanceOf({}),contentClassName:r().string,gutterClassName:r().string,wrapperClassName:r().string};const Rn=(0,e.forwardRef)(Mn);Rn.HeaderLeft=An,Rn.HeaderRight=_n;const Nn=Rn,In=(0,e.createContext)(),Pn=(0,e.createContext)();var Dn=Object.defineProperty,Fn=Object.getOwnPropertySymbols,Bn=Object.prototype.hasOwnProperty,Wn=Object.prototype.propertyIsEnumerable,Hn=(e,t,n)=>t in e?Dn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,jn=(e,t)=>{for(var n in t||(t={}))Bn.call(t,n)&&Hn(e,n,t[n]);if(Fn)for(var n of Fn(t))Wn.call(t,n)&&Hn(e,n,t[n]);return e};function zn(n){const{addTab:o,hideTab:i,updateTab:r,showTab:s,children:a,selectedPath:l,tabData:c,tabsId:u,tabExists:h,path:d,rendered:p,hideTabContent:g,tabs:m}=n;(0,e.useEffect)((()=>{const e=jn({},c);h(d)||o(e,d)}),[c,d]);const f=me(c);(0,e.useEffect)((()=>{if(h(d)&&(null==c?void 0:c.title)&&((null==f?void 0:f.title)!==(null==c?void 0:c.title)||(null==f?void 0:f.selected)!==c.selected)){const e=jn({},c);r(e,d)}}),[c,d,f,m]),(0,e.useEffect)((()=>(s(d),()=>i(d))),[]);const y=(0,e.useMemo)((()=>!!Object.keys(m).length&&!g&&!1!==m[c.id].show&&(p?l&&l.indexOf(c.id)>-1:h(d))),[g,p,l,c,m]),v=(0,e.useMemo)((()=>({path:d,tabsId:u})),[d,u]);return y?t().createElement("div",{key:c.id,className:"tyk-tab__content",style:{display:l&&l.indexOf(c.id)>-1?"block":"none"}},t().createElement(Pn.Provider,{value:v},a)):null}zn.propTypes={addTab:r().func,updateTab:r().func,hideTab:r().func,showTab:r().func,children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),path:r().instanceOf(Array),hideTabContent:r().bool,rendered:r().bool,selectedPath:r().instanceOf(Array),tabExists:r().func,tabsId:r().string,tabData:r().instanceOf(Object),tabs:r().instanceOf(Object)};const Vn=zn;function Un(n){const{id:o}=n,i=(0,e.useContext)(In),r=(0,e.useContext)(Pn),{tabExists:s,selectedPath:a,addTab:l,updateTab:c,hideTab:u,showTab:h,rendered:d,hideTabContent:p,tabs:g}=i,{children:m}=n,[f,y]=(0,e.useState)("");return(0,e.useEffect)((()=>{let e;e=r&&f&&r.tabsId===i.id?r.path.concat([o]):[o],y(e)}),[r]),f?t().createElement(Vn,{addTab:l,updateTab:c,hideTab:u,showTab:h,tabExists:s,tabData:n,path:f,tabsId:i.id,selectedPath:a,rendered:d,hideTabContent:p,tabs:g},m):null}Un.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),id:r().string},Un.defaultProps={};const Gn=Un;var Kn=Object.defineProperty,qn=Object.getOwnPropertySymbols,Yn=Object.prototype.hasOwnProperty,Jn=Object.prototype.propertyIsEnumerable,Xn=(e,t,n)=>t in e?Kn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Qn=(e,t)=>{for(var n in t||(t={}))Yn.call(t,n)&&Xn(e,n,t[n]);if(qn)for(var n of qn(t))Jn.call(t,n)&&Xn(e,n,t[n]);return e};function Zn(n){const{children:o,className:i,id:r,onTabChange:s,type:a,hideTabContent:l}=n,[c,u]=(0,e.useState)({}),[h,d]=(0,e.useState)([]),[p,m]=(0,e.useState)(!1),[f,y]=(0,e.useState)(null);(0,e.useEffect)((()=>{d(f)}),[f]);const v=(e,t)=>{const n=e.slice(0);let o=!0;t.collapsible&&(n.push(Object.keys(t.tabs)[0]),o=!1),u((t=>{let n=Qn({},t);return n=((e,t)=>{let n=Qn({},e);const o=t.slice(0);for(;o.length>1;)n=n[o.shift()];const i=o.shift();return void 0===n[i].collapsed?n[i].collapsed=!0:n[i].collapsed=!n[i].collapsed,n})(n,e),n})),d(n),m(o),s&&s(t)},b=e=>{const t=[];return h&&h.indexOf(e)>-1&&t.push("active"),t.join(" ")},w=(e,n)=>e?t().createElement("ul",null,Object.keys(e).map(((o,i)=>{const r=n?n.concat([e[o].id]):[e[o].id],s=e[o].collapsed?"chevron-up":"chevron-down";return!1===e[o].show?null:t().createElement("li",{className:b(e[o].id),key:e[o].id},t().createElement("button",{type:"button",onClick:v.bind(null,r,e[o]),onKeyDown:v.bind(null,r,e[o]),tabIndex:i},e[o].title,e[o].collapsible?t().createElement(g,{className:"collapsable-arrow",type:s}):null),e[o].collapsible?t().createElement(R,{collapsed:e[o].collapsed},w(e[o].tabs,r)):w(e[o].tabs,r))}))):null,x=(e,t)=>{u((n=>((e,t,n)=>{let o=Qn({},e);const i=Qn({},n),r=t.slice(0);for(;r.length>1;)o=o[r.shift()],o||(o={});return i.tempPath=r,o[r.shift()]=i,o})(Qn({},n),t,e))),e.selected&&y(t)},k=(e,t)=>{u((t=>{const n=Qn({},t);return n[e.id]=e,n})),e.selected&&v(t,e)},C=e=>{u((t=>{const n=Qn({},t);return n[e].show=!1,n}))},$=e=>{u((t=>{const n=Qn({},t);return n[e].show=!0,n}))},S=e=>{let t=Qn({},c);const n=e.slice(0);for(;n.length>1;)t=t[n.shift()];const o=n.shift();return Boolean(null==t?void 0:t[o])},E=(0,e.useMemo)((()=>({id:r,addTab:x,hideTab:C,updateTab:k,showTab:$,tabExists:S,selectedPath:h,rendered:p,hideTabContent:l,tabs:c})),[r,x,C,k,$,S,h,p,l,c]);return t().createElement("div",{className:(()=>{let e=["tyk-tabs"];return e.push(`tyk-tabs--${a||"default"}`),i&&(e=e.concat(i.split(" "))),e.join(" ")})()},w(c),t().createElement(In.Provider,{value:E},"function"==typeof o?o({hideTab:C,showTab:$}):o))}Zn.propTypes={className:r().string,children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),hideTabContent:r().bool,id:r().string,onTabChange:r().func,type:r().string},Zn.Tab=Gn;const eo=Zn;var to=Object.defineProperty,no=Object.getOwnPropertySymbols,oo=Object.prototype.hasOwnProperty,io=Object.prototype.propertyIsEnumerable,ro=(e,t,n)=>t in e?to(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,so=(e,t)=>{for(var n in t||(t={}))oo.call(t,n)&&ro(e,n,t[n]);if(no)for(var n of no(t))io.call(t,n)&&ro(e,n,t[n]);return e};function ao(n){var o=n,{render:i,className:r,children:s,position:a="auto",style:l,icon:c=!1,closable:u,isOpened:h=!1,additionalClickParents:d=[]}=o,p=((e,t)=>{var n={};for(var o in e)oo.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&no)for(var o of no(e))t.indexOf(o)<0&&io.call(e,o)&&(n[o]=e[o]);return n})(o,["render","className","children","position","style","icon","closable","isOpened","additionalClickParents"]);const[m,f]=(0,e.useState)(!1),y=(0,e.useRef)(null),v=(0,e.useRef)(null),b=u?{onClick:()=>f(!0)}:{onMouseEnter:()=>f(!0),onMouseLeave:()=>f(!1),onFocus:()=>f(!0),onBlur:()=>f(!1)},w=(0,e.useCallback)((e=>{[...d,v.current].some((t=>{var n;return null==(n=null==t?void 0:t.contains)?void 0:n.call(t,e.target)}))||f(!1)}),[d]);(0,e.useEffect)((()=>(document.addEventListener("click",w,!0),()=>document.removeEventListener("click",w,!0))),[w]),(0,e.useEffect)((()=>{f(h)}),[h]);const x=["tyk-tooltip",r].filter(Boolean).join(" ");return t().createElement("div",so(so({className:"tyk-tooltip__wrapper",style:so({display:"inline-block"},l),ref:y},b),p),s,m&&t().createElement(Pt,{element:y,forceDisplay:a,preferredPosition:"top",offset:20},t().createElement("div",{className:x,ref:v},c&&(!0===c?t().createElement(g,{family:"tykon",type:"help"}):c),t().createElement("div",{className:"tyk-tooltip__content"},i),u&&t().createElement(g,{family:"tykon",type:"x",onClick:e=>{e.stopPropagation(),f(!1)}}))))}ao.propTypes={children:r().node.isRequired,style:r().instanceOf(Object),position:r().string,render:r().oneOfType([r().node,r().string]),className:r().string,icon:r().oneOfType([r().bool,r().node]),closable:r().bool,isOpened:r().bool,additionalClickParents:r().instanceOf(Array)};const lo=ao;function co({text:e,limit:n,position:o}){return e.length>n?t().createElement(lo,{render:e,position:o},e.substring(0,n),"..."):e}co.propTypes={text:r().string,limit:r().number,position:r().string};const uo=co;function ho(n){const{value:o=0,totalNrOfPages:i,onChange:r}=n,[s,a]=(0,e.useState)(o),l=(0,e.useMemo)((()=>function(e,t){let n;const o=[];for(n=0;n<=e;n+=1)i=n,r=t,((s=e)<10||r<5&&i<5||r>s-5&&i>s-5||i>=r-2&&i<=r+2||[0,1,s-1,s].includes(i))&&(n>o.at(-1)&&o.push(`...-${n}`),o.push(n+1));var i,r,s;return o}(i,s)),[s,i]);function c(e){a(e),r&&r(e)}return i?t().createElement("ul",{className:"tyk-pagination"},s>0&&i>5&&t().createElement("li",null,t().createElement("button",{onClick:()=>c(s-1),type:"button"},"Previous")),l.map((e=>t().createElement("li",{key:e,className:s===e-1?"active":""},String(e).startsWith("...")?t().createElement("span",null,"..."):t().createElement("button",{onClick:()=>c(e-1),type:"button"},e)))),s5&&t().createElement("li",null,t().createElement("button",{onClick:()=>c(s+1),type:"button"},"Next"))):null}ho.propTypes={value:r().number,totalNrOfPages:r().number,onChange:r().func};const po=ho,go=(0,e.createContext)();function mo({column:n}){const{sortable:o}=n,[i,r]=(0,e.useState)((null==o?void 0:o.default)||"ASC"),{state:s,sendMessage:a}=(0,e.useContext)(go);return t().createElement("th",{key:n.id,onClick:o?()=>{a("sort",{column:n,sortOrder:i}),r("ASC"===i?"DESC":"ASC")}:null,className:s.maxHeight?"fixed-header":""},n.name,n.sortable&&t().createElement("span",{className:"header-sort"},t().createElement(g,{family:"tykon",type:"arrowsort"})))}mo.propTypes={column:r().instanceOf(Object)};var fo=Object.defineProperty,yo=Object.defineProperties,vo=Object.getOwnPropertyDescriptors,bo=Object.getOwnPropertySymbols,wo=Object.prototype.hasOwnProperty,xo=Object.prototype.propertyIsEnumerable,ko=(e,t,n)=>t in e?fo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Co=(e,t)=>{for(var n in t||(t={}))wo.call(t,n)&&ko(e,n,t[n]);if(bo)for(var n of bo(t))xo.call(t,n)&&ko(e,n,t[n]);return e},$o=(e,t)=>yo(e,vo(t));function So({allRowsSelected:n}){const{state:o,sendMessage:i}=(0,e.useContext)(go),{columns:r,selectable:s}=o,a=()=>{var e;const r=s.type;return t().createElement("th",{className:o.maxHeight?"fixed-header":""},(null==s?void 0:s.allowSelectAll)?t().createElement("div",{className:null==s?void 0:s.style},t().createElement(r,$o(Co({},s.values),{value:n,onChange:e=>{var t,n;const o="input"===(null==(t=null==e?void 0:e.target)?void 0:t.tagName.toLowerCase())&&"checkbox"===(null==(n=null==e?void 0:e.target)?void 0:n.type.toLowerCase());i("header.selectAll.change",o?e.target.checked:Boolean(e))}}),null==(e=s.values)?void 0:e.value)):s.name||"Select")};return t().createElement("thead",null,t().createElement("tr",null,"LEFT"===(null==s?void 0:s.position)&&a(),r.map((e=>t().createElement(mo,{key:e.id,column:e}))),"RIGHT"===(null==s?void 0:s.position)&&a()))}So.propTypes={allRowsSelected:r().bool};var Eo=Object.defineProperty,Oo=Object.defineProperties,To=Object.getOwnPropertyDescriptors,Ao=Object.getOwnPropertySymbols,_o=Object.prototype.hasOwnProperty,Lo=Object.prototype.propertyIsEnumerable,Mo=(e,t,n)=>t in e?Eo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ro=(e,t)=>{for(var n in t||(t={}))_o.call(t,n)&&Mo(e,n,t[n]);if(Ao)for(var n of Ao(t))Lo.call(t,n)&&Mo(e,n,t[n]);return e};class No extends e.Component{getCssClasses(){const{inline:e,disabled:t,readOnly:n,theme:o="",wrapperClassName:i=""}=this.props,r=[i];return r.push("tyk-checkbox"),e&&r.push("tyk-checkbox--inline"),o.trim()&&r.push(...o.split(" ").map((e=>`tyk-checkbox--theme-${e}`))),(t||n)&&r.push("tyk-checkbox--is-disabled"),r.join(" ")}displayError(){const{error:e}=this.props;return e?t().createElement("p",{className:"tyk-form-control__error-message"},e):null}displayNote(){const{note:e}=this.props;return e?t().createElement("p",{className:"tyk-form-control__help-block"},e):null}render(){const e=this.props,{input:n,value:o,label:i}=e,r=((e,t)=>{var n={};for(var o in e)_o.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ao)for(var o of Ao(e))t.indexOf(o)<0&&Lo.call(e,o)&&(n[o]=e[o]);return n})(e,["input","value","label"]);return t().createElement("div",{className:this.getCssClasses()},t().createElement("div",{className:"tyk-form-control__wrapper"},t().createElement("label",null,t().createElement("input",(s=Ro(Ro({checked:n?n.value:o},n),r),Oo(s,To({type:"checkbox"})))),i),this.displayNote(),this.displayError()));var s}}No.propTypes={disabled:r().bool,readOnly:r().bool,inline:r().bool,theme:r().string,error:r().oneOfType([r().string,r().bool]),note:r().string,input:r().instanceOf(Object),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),name:r().string,value:r().oneOfType([r().string,r().bool]),checked:r().oneOfType([r().string,r().bool]),onChange:r().func,wrapperClassName:r().string};const Io=No;var Po=Object.defineProperty,Do=Object.getOwnPropertySymbols,Fo=Object.prototype.hasOwnProperty,Bo=Object.prototype.propertyIsEnumerable,Wo=(e,t,n)=>t in e?Po(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ho=(e,t)=>{for(var n in t||(t={}))Fo.call(t,n)&&Wo(e,n,t[n]);if(Do)for(var n of Do(t))Bo.call(t,n)&&Wo(e,n,t[n]);return e};function jo({col:e,row:n}){var o,i,r,s,a;if(!n.values[e.id])return t().createElement("td",null);if("string"===e.type)return t().createElement("td",Ho({className:(null==(o=n.values[e.id].styling)?void 0:o.className)||null},null==(i=n.values[e.id])?void 0:i.events),null==(r=n.values[e.id])?void 0:r.value);const l=e.type;return t().createElement("td",Ho({className:(null==(s=n.values[e.id].styling)?void 0:s.className)||null},null==(a=n.values[e.id])?void 0:a.events),t().createElement(l,Ho({},n.values[e.id].props),n.values[e.id].children?n.values[e.id].children:null))}function zo({row:n,index:o}){var i,r;const{state:s,sendMessage:a}=(0,e.useContext)(go),{columns:l,selectable:c}=s,u=(0,e.useCallback)((()=>t().createElement("td",null,t().createElement(Io,{value:n.selected,onChange:e=>a("row.selected",{index:o,selected:e.target.checked})}))),[n.selected,o]);return t().createElement("tr",{onClick:null==(i=n.events)?void 0:i.onClick,className:null==(r=n.styling)?void 0:r.className},c&&"LEFT"===c.position&&u(),l.map((e=>t().createElement(jo,{key:e.id,col:e,row:n,index:o}))),c&&"RIGHT"===c.position&&u())}function Vo(){const{state:n}=(0,e.useContext)(go),{rows:o}=n;return t().createElement("tbody",null,o.map(((e,n)=>t().createElement(zo,{key:n,row:e,index:n}))))}jo.propTypes={col:r().instanceOf(Object),row:r().instanceOf(Object),index:r().number},zo.propTypes={row:r().instanceOf(Object),index:r().number};var Uo=Object.defineProperty,Go=Object.defineProperties,Ko=Object.getOwnPropertyDescriptors,qo=Object.getOwnPropertySymbols,Yo=Object.prototype.hasOwnProperty,Jo=Object.prototype.propertyIsEnumerable,Xo=(e,t,n)=>t in e?Uo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Qo=(e,t)=>{for(var n in t||(t={}))Yo.call(t,n)&&Xo(e,n,t[n]);if(qo)for(var n of qo(t))Jo.call(t,n)&&Xo(e,n,t[n]);return e},Zo=(e,t)=>Go(e,Ko(t));function ei({value:n,onChange:o,noDataMessage:i,loading:r,infiniteScrolling:s}){var a;const[l,c]=(0,e.useState)(null),[u,h]=(0,e.useState)("api"),d=(0,e.useRef)(null),p=(0,e.useCallback)(((e,t)=>{c((n=>Zo(Qo({},n),{sort:{order:t,col:e}})))}),[]),g=(0,e.useCallback)((e=>{c((t=>Zo(Qo({},t),{rows:t.rows.map((t=>Zo(Qo({},t),{selected:e})))})))}),[]),m=(0,e.useCallback)((({index:e,selected:t})=>{c((n=>Zo(Qo({},n),{rows:[...n.rows.slice(0,e),Zo(Qo({},n.rows[e]),{selected:t}),...n.rows.slice(e+1)]})))}),[]),f=(0,e.useCallback)((e=>{c((t=>Zo(Qo({},t),{pagination:Zo(Qo({},t.pagination),{current:e+1})})))}),[]),y={getState:()=>l,setState:e=>c(e)},v=(0,e.useCallback)(((e,t)=>{h(e),"sort"===e&&p(t.column.id,t.sortOrder),"header.selectAll.change"===e&&g(t),"row.selected"===e&&m(t),"pagination.change"===e&&f(t)}),[p,g,m,f]),b=(0,e.useMemo)((()=>({state:l,sendMessage:v})),[l,v]);if((0,e.useEffect)((()=>c(n)),[n]),(0,e.useEffect)((()=>{o&&o(u,l,y),h("api")}),[l]),!l)return t().createElement(ye,{position:"absolute"});if(l.rows<=0)return t().createElement(be,{theme:"info"},i||"No Data Available");const w=()=>t().createElement("table",{className:"tyk-table",ref:d},t().createElement(So,{allRowsSelected:l.rows.every((({selected:e})=>e))}),t().createElement(Vo,null));return t().createElement(go.Provider,{value:b},t().createElement("div",{className:`scrollable ${(null==(a=l.styling)?void 0:a.className)||""}`,style:{height:l.maxHeight?l.maxHeight:"auto",position:"relative"}},r&&t().createElement(ye,{position:"absolute",withbackground:!0}),s&&l.pagination?t().createElement(At,{refChild:d,hasMore:l.pagination.totalPages>l.pagination.current,loadMore:e=>v("pagination.change",e),pageNumber:l.pagination.current-1,initialLoad:!1},w()):w()),l.pagination&&!s&&t().createElement("div",{className:"new-table-pagination"},t().createElement(po,{value:l.pagination.current-1,nrItemsOnPage:l.pagination.perPage-1,totalNrOfPages:l.pagination.totalPages-1,onChange:e=>v("pagination.change",e)})))}ei.propTypes={value:r().shape({columns:r().arrayOf(r().shape({id:r().string.isRequired,name:r().string,type:r().oneOfType([r().string,r().element,r().func]),sortable:r().oneOfType([r().bool,r().shape({default:r().string})])})),rows:r().arrayOf(r().shape({})),selectable:r().shape({}),pagination:r().shape({}),maxHeight:r().string,styling:r().shape({className:r().string})}).isRequired,onChange:r().func,noDataMessage:r().string,loading:r().bool,infiniteScrolling:r().bool},ei.defaultProps={loading:!1,infiniteScrolling:!1,noDataMessage:"No Data Available",onChange:null};const ti=ei;var ni=Object.defineProperty,oi=Object.getOwnPropertySymbols,ii=Object.prototype.hasOwnProperty,ri=Object.prototype.propertyIsEnumerable,si=(e,t,n)=>t in e?ni(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function ai(e){var n=e,{children:o,align:i,className:r,offset:s,size:a}=n,l=((e,t)=>{var n={};for(var o in e)ii.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&oi)for(var o of oi(e))t.indexOf(o)<0&&ri.call(e,o)&&(n[o]=e[o]);return n})(n,["children","align","className","offset","size"]);const c=["tyk-col",r,i&&`tyk-col--align-${i}`,...a.split(" ").map((e=>`tyk-col--${e}`)),...(s?s.split(" "):[]).map((e=>`tyk-col--offset-${e}`))].filter(Boolean).join(" ");return t().createElement("div",((e,t)=>{for(var n in t||(t={}))ii.call(t,n)&&si(e,n,t[n]);if(oi)for(var n of oi(t))ri.call(t,n)&&si(e,n,t[n]);return e})({className:c},l),o)}ai.propTypes={align:r().string,className:r().string,size:r().string.isRequired,offset:r().string,children:r().oneOfType([r().element,r().string,r().object,r().node])};const li=ai;var ci=Object.defineProperty,ui=Object.defineProperties,hi=Object.getOwnPropertyDescriptors,di=Object.getOwnPropertySymbols,pi=Object.prototype.hasOwnProperty,gi=Object.prototype.propertyIsEnumerable,mi=(e,t,n)=>t in e?ci(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function fi(e){var n=e,{className:o,nogutters:i,children:r}=n,s=((e,t)=>{var n={};for(var o in e)pi.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&di)for(var o of di(e))t.indexOf(o)<0&&gi.call(e,o)&&(n[o]=e[o]);return n})(n,["className","nogutters","children"]);const a=["tyk-row",o,i&&"no-gutters",i&&"tyk-row--gutterless"].filter(Boolean).join(" ");return t().createElement("div",(l=((e,t)=>{for(var n in t||(t={}))pi.call(t,n)&&mi(e,n,t[n]);if(di)for(var n of di(t))gi.call(t,n)&&mi(e,n,t[n]);return e})({},s),ui(l,hi({className:a}))),r);var l}fi.propTypes={children:r().oneOfType([r().element,r().node]),className:r().string,nogutters:r().bool};const yi=fi,vi=(0,e.createContext)();function bi(n){const{customdropdownitem:o,children:i,eventKey:r,href:s,target:a,title:l,onClick:c}=n,u=(0,e.useCallback)(((e,t)=>{e.onSelectItem(r,t),c&&c(r)}),[]);return t().createElement(vi.Consumer,null,(c=>t().createElement("li",{onClick:()=>u(c,n),onKeyUp:()=>{}},o?(0,e.cloneElement)(o,{}):t().createElement("a",{href:s,target:a},r&&c.selectedItem===r&&c.showCheckmark?t().createElement(g,{type:"check"}):null,t().createElement("span",null,l||i)))))}bi.propTypes={children:r().oneOfType([r().element,r().node,r().string]),customdropdownitem:r().oneOfType([r().arrayOf(r().node),r().node,r().element]),eventKey:r().string,href:r().string,target:r().string,onClick:r().func,title:r().string};const wi=bi;var xi=Object.defineProperty,ki=Object.getOwnPropertySymbols,Ci=Object.prototype.hasOwnProperty,$i=Object.prototype.propertyIsEnumerable,Si=(e,t,n)=>t in e?xi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Ei extends e.Component{static isElemInRightView(e,t){const n=window.innerWidth;return e.getBoundingClientRect().left+t<=n}static isElemInBottomView(e,t){const n=window.innerHeight,o=e.getBoundingClientRect(),i=e.clientHeight;return o.top+i+t<=n}constructor(t){super(t);const{selectedItem:n,open:o}=this.props;this.state={opened:o,selectedItem:n||null},this.dropdownRef=(0,e.createRef)(),this.dropdownListRef=(0,e.createRef)(),this.dropdownButtonRef=(0,e.createRef)(),this.onSelectItem=this.onSelectItem.bind(this),this.toggleDropdown=this.toggleDropdown.bind(this),this.handleClickOutside=this.handleClickOutside.bind(this)}componentDidMount(){document.addEventListener("mousedown",this.handleClickOutside),this.dropdownListRef.current&&this.getStyles()}componentDidUpdate(e){const{open:t}=this.props,{opened:n}=this.state;this.dropdownListRef.current&&this.getStyles(),e.open||!0!==t||n||this.toggleDropdown(),e.open&&!1===t&&n&&this.closeDropdown()}componentWillUnmount(){document.removeEventListener("mousedown",this.handleClickOutside)}handleClickOutside(e){this.dropdownListRef.current&&!this.dropdownListRef.current.contains(e.target)&&this.dropdownRef.current&&!this.dropdownRef.current.contains(e.target)&&this.closeDropdown()}onSelectItem(e,t){const{closeOnSelect:n,onSelect:o}=this.props,i={selectedItem:e,selectedItemProps:t};n&&(i.opened=!1),this.setState(i),o&&"function"==typeof o&&o(e)}getStyles(){const{display:e,position:t,offset:n}=this.props,o=this.dropdownListRef.current;if(n)return o.style.top=`${n.top}`,void(o.style.left=`${n.left}`);const i=Math.max(document.documentElement.scrollTop,document.body.scrollTop,window.scrollY),r=this.dropdownRef.current,s=r.clientHeight,a=o?o.clientHeight:0,l=o?o.clientWidth:0,c=r.getBoundingClientRect(),{left:u,top:h}=c;let d=0,p=u;d=Ei.isElemInBottomView(r,a)?h+i+s:h+i-a-5,Ei.isElemInRightView(r,l)||(p=u+r.clientWidth-l),"relative"!==t&&(o.style.top=`${d}px`,"block"!==e&&(o.style.left=`${p}px`)),"block"!==e&&(o.style.minWidth=`${this.dropdownButtonRef.current.clientWidth}px`)}getWrapperCssClasses(){const{btnGroup:e,btnGroupSize:t,className:n,btnTheme:o,wrapperClassName:i=""}=this.props;let r=[i,"tyk-dropdown"];return r.push(`theme-${o||"default"}`),n&&(r=r.concat(n.split(" "))),e&&(r.push("tyk-button-group"),r.push(t?`tyk-button-group--${t}`:"tyk-button-group--md")),r.join(" ")}getCssClasses(){const{opened:e}=this.state,{hasCustomContent:t,display:n,listclassnames:o,position:i,maxHeight:r}=this.props;let s=["tyk-dropdown-menu","tyk-dropdown"];return r&&s.push("tyk-dropdown--scrollable"),e&&s.push("opened"),o&&(s=s.concat(o.split(" "))),n&&s.push("tyk-dropdown--block"),t&&s.push("tyk-dropdown--custom"),"relative"===i&&s.push("tyk-dropdown--relative"),s.join(" ")}getBtnTitle(){const{btnTitle:e,stopButtonTextChange:t}=this.props,{selectedItemProps:n}=this.state;return!t&&(null==n?void 0:n.title)?n.title:e}closeDropdown(){const{onClose:e}=this.props;this.setState({opened:!1},(()=>{e&&e()}))}toggleDropdown(){const{opened:e}=this.state;e?this.closeDropdown():this.setState({opened:!0})}render(){const{appendTo:e,btnClassName:n,btnSize:o,customBtnTitle:i,hasCustomContent:r,btnTheme:s,children:a,label:l,showDropdownIcon:c,showTriggerButton:u,showCheckmark:h,disabled:d=!1,maxHeight:p}=this.props,{selectedItem:g,opened:m}=this.state,f=r?"div":"ul";return t().createElement("div",{className:this.getWrapperCssClasses(),ref:this.dropdownRef},l?t().createElement("label",{className:"font-family-medium"},l):null,u?t().createElement(U,{className:`tyk-dropdown__trigger ${m?"tyk-dropdown__trigger--opened ":" "} ${n}`,theme:s||"default",onClick:this.toggleDropdown,iconType:c?"chevron-down":null,iconPosition:"right",size:o||"md",type:"button",disabled:d,ref:this.dropdownButtonRef},i||this.getBtnTitle()):null,m?dt().createPortal(t().createElement(vi.Provider,{value:{onSelectItem:this.onSelectItem,selectedItem:g,showCheckmark:h}},m?t().createElement(f,((e,t)=>{for(var n in t||(t={}))Ci.call(t,n)&&Si(e,n,t[n]);if(ki)for(var n of ki(t))$i.call(t,n)&&Si(e,n,t[n]);return e})({className:this.getCssClasses(),ref:this.dropdownListRef},p&&{style:{maxHeight:p}}),"function"==typeof a?a({closeDropdown:this.closeDropdown.bind(this)}):a):null),document.querySelector(e||"body")):null)}}Ei.propTypes={appendTo:r().string,children:r().oneOfType([r().element,r().node,r().string,r().func]),closeOnSelect:r().bool,btnClassName:r().string,btnSize:r().string,btnGroupSize:r().string,btnTheme:r().string,btnTitle:r().oneOfType([r().node,r().element,r().string]),customBtnTitle:r().oneOfType([r().node,r().element,r().string]),btnGroup:r().bool,className:r().string,display:r().string,disabled:r().bool,hasCustomContent:r().bool,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),listclassnames:r().string,onClose:r().func,onSelect:r().func,open:r().bool,offset:r().instanceOf(Object),position:r().string,selectedItem:r().string,showDropdownIcon:r().bool,stopButtonTextChange:r().bool,showTriggerButton:r().bool,showCheckmark:r().bool,maxHeight:r().string,wrapperClassName:r().string},Ei.defaultProps={closeOnSelect:!1,showDropdownIcon:!0,showTriggerButton:!0,showCheckmark:!0,open:!1},Ei.Item=wi;const Oi=Ei;var Ti=Object.defineProperty,Ai=Object.getOwnPropertySymbols,_i=Object.prototype.hasOwnProperty,Li=Object.prototype.propertyIsEnumerable,Mi=(e,t,n)=>t in e?Ti(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Ri({title:e,theme:n="primary",splitTrigger:o,toggle:i,onTriggerClick:r,value:s},a){return o?t().createElement(K,{ref:a},t().createElement(U,((e,t)=>{for(var n in t||(t={}))_i.call(t,n)&&Mi(e,n,t[n]);if(Ai)for(var n of Ai(t))Li.call(t,n)&&Mi(e,n,t[n]);return e})({theme:n},r&&{onClick:()=>r(s)}),e),t().createElement(U,{className:"dropdown__trigger",iconType:"arrowdown",iconFamily:"tykon",iconPosition:"right",theme:n,onClick:i,iconOnly:!0})):t().createElement(U,{className:"dropdown__trigger",iconType:"arrowdown",iconFamily:"tykon",iconPosition:"right",theme:n,ref:a,onClick:i},e)}Ri.propTypes={title:r().string,theme:r().string,splitTrigger:r().bool,toggle:r().func,dropdownRef:r().shape({current:r().instanceOf(Element)}).isRequired,onTriggerClick:r().func,value:r().oneOfType([r().string,r().number])};const Ni=(0,e.forwardRef)(Ri);var Ii=Object.defineProperty,Pi=Object.getOwnPropertySymbols,Di=Object.prototype.hasOwnProperty,Fi=Object.prototype.propertyIsEnumerable,Bi=(e,t,n)=>t in e?Ii(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Wi=(e,t)=>{for(var n in t||(t={}))Di.call(t,n)&&Bi(e,n,t[n]);if(Pi)for(var n of Pi(t))Fi.call(t,n)&&Bi(e,n,t[n]);return e};function Hi({children:e,element:n,maxWidth:o},i){return t().createElement(Pt,{element:n,ref:i,className:"dropdown__menu",position:"bottom",alignment:"auto",offset:5,arrow:!0},t().createElement(jt,{style:Wi({},o&&{maxWidth:o}),theme:"primary"},e))}Hi.propTypes={element:r().shape({current:r().instanceOf(Element)}),children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),maxWidth:r().string};const ji=(0,e.forwardRef)(Hi),zi=(0,e.createContext)();var Vi=Object.defineProperty,Ui=Object.getOwnPropertySymbols,Gi=Object.prototype.hasOwnProperty,Ki=Object.prototype.propertyIsEnumerable,qi=(e,t,n)=>t in e?Vi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Yi=(e,t)=>{for(var n in t||(t={}))Gi.call(t,n)&&qi(e,n,t[n]);if(Ui)for(var n of Ui(t))Ki.call(t,n)&&qi(e,n,t[n]);return e};function Ji({children:n,value:o}){const{onChange:i,value:r}=(0,e.useContext)(zi);return t().createElement(jt.Item,Yi({},o===r&&{selected:!0}),t().createElement("a",Yi({},i&&{onClick:()=>i(o)}),n))}Ji.propTypes={children:r().node,value:r().any};const Xi=Ji;function Qi({children:n,title:o,theme:i,splitTrigger:r,onChange:s,value:a,setSelectedValueAsTitle:l,maxWidth:c,onTriggerClick:u}){const{isOpen:h,toggle:d,dropdownRef:p,dropdownListRef:g}=(({splitTrigger:t})=>{const[n,o]=(0,e.useState)(!1),i=(0,e.useRef)(null),r=(0,e.useRef)(null),s=(0,e.useCallback)((e=>{const s=t?i.current.querySelector(".dropdown__trigger"):i.current;!n||s.contains(e.target)||r.current.contains(e.target)||o(!1)}),[n]);return(0,e.useEffect)((()=>(document.addEventListener("mousedown",s),()=>{document.removeEventListener("mousedown",s)})),[s]),{isOpen:n,toggle:()=>o(!n),dropdownRef:i,dropdownListRef:r}})({splitTrigger:r}),m=(0,e.useMemo)((()=>({onChange:s,value:a})),[s,a]);return t().createElement(zi.Provider,{value:m},t().createElement(Ni,{title:l?a:o,onTriggerClick:u,theme:i,splitTrigger:r,toggle:d,ref:p,value:a}),h&&t().createElement(ji,{element:p,ref:g,maxWidth:c},n))}Qi.propTypes={title:r().string,theme:r().string,children:r().node,splitTrigger:r().bool,onChange:r().func,value:r().oneOfType([r().string,r().number]),setSelectedValueAsTitle:r().bool,maxWidth:r().string,onTriggerClick:r().func},Qi.Item=Xi;const Zi=Qi;var er=n(239),tr=n.n(er);const nr=require("react-ace");var or=n.n(nr);n(395),n(576),n(7),n(549),n(252),n(202),n(711),n(604),n(134),n(203);const ir=n.p+"ee385296b124aae4e5d9.js";var rr=Object.defineProperty,sr=Object.defineProperties,ar=Object.getOwnPropertyDescriptors,lr=Object.getOwnPropertySymbols,cr=Object.prototype.hasOwnProperty,ur=Object.prototype.propertyIsEnumerable,hr=(e,t,n)=>t in e?rr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,dr=(e,t)=>{for(var n in t||(t={}))cr.call(t,n)&&hr(e,n,t[n]);if(lr)for(var n of lr(t))ur.call(t,n)&&hr(e,n,t[n]);return e};function pr(n){const{disabled:o,readOnly:i,disableValidation:r,id:s,error:a,label:l,labelwidth:c,note:u,onBlur:h,onChange:d,theme:p,value:g,setOptions:m,wrapperClassName:f}=n,y=["tyk-form-group",f,...p?p.split(" ").map((e=>`tyk-form-group--${e}`)):[],c&&"tyk-form-group--label-has-width",a&&"has-error"].filter(Boolean).join(" "),v=dr(dr({},m),r&&{useWorker:!1}),b=(0,e.useCallback)((()=>a&&"true"!==a&&"false"!==a?t().createElement("p",{className:"tyk-form-control__error-message"},a):null),[a]),w=(0,e.useCallback)((()=>c?{flexBasis:c}:{}),[c]),x=(0,e.useCallback)((()=>c?{flexBasis:`calc(100% - ${c} - 20px)`}:{}),[c]),k=(0,e.useCallback)((e=>{d&&d(e)}),[d]),C=(0,e.useCallback)((()=>{h&&h(g)}),[h,g]);return t().createElement("div",{className:y},l?t().createElement("label",{htmlFor:s,style:w()},l):null,t().createElement("div",{className:"tyk-form-control__wrapper",style:x()},t().createElement(or(),($=dr({className:"tyk-form-control"},n),sr($,ar({onChange:k,onBlur:C,theme:"github",editorProps:{$blockScrolling:!0},readOnly:i||o,onLoad:e=>{e.container.style.resize="both",document.addEventListener("mouseup",(()=>e.resize()))},setOptions:v})))),u?t().createElement("p",{className:"tyk-form-control__help-block"},u):null,b()));var $}tr().config.setModuleUrl("ace/mode/json_worker",ir),pr.propTypes={disabled:r().bool,readOnly:r().bool,disableValidation:r().bool,id:r().string,error:r().oneOfType([r().string,r().bool]),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,mode:r().string,name:r().string,note:r().string,onBlur:r().func,onChange:r().func,theme:r().string,value:r().string,setOptions:r().instanceOf(Object),wrapperClassName:r().string};const gr=pr;var mr=Object.defineProperty,fr=Object.defineProperties,yr=Object.getOwnPropertyDescriptors,vr=Object.getOwnPropertySymbols,br=Object.prototype.hasOwnProperty,wr=Object.prototype.propertyIsEnumerable,xr=(e,t,n)=>t in e?mr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,kr=(e,t)=>{for(var n in t||(t={}))br.call(t,n)&&xr(e,n,t[n]);if(vr)for(var n of vr(t))wr.call(t,n)&&xr(e,n,t[n]);return e};const Cr=(e,t,n)=>n||(e||t?[]:null);class $r extends e.Component{static closeList(){return{cursor:-1,opened:!1}}static openList(){return{opened:!0}}static filterByName(e,t){return e.name.toLowerCase().indexOf(t)>-1}constructor(t){super(t);const{multiple:n,tags:o,value:i}=t;this.state={cursor:-1,opened:!1,width:50,initialValue:i,stateSelectedValues:Cr(n,o,i),searchText:"",tags:o},this.comboboxRef=(0,e.createRef)(),this.valuesListRef=(0,e.createRef)(),this.inputRef=(0,e.createRef)(),this.textRef=(0,e.createRef)(),this.focusInput=this.focusInput.bind(this),this.onKeyUp=this.onKeyUp.bind(this),$r.openList=$r.openList.bind(this),this.handleClickOutside=this.handleClickOutside.bind(this),this.handleItemsNavigation=this.handleItemsNavigation.bind(this),this.handleComboboxDropdownClick=this.handleComboboxDropdownClick.bind(this),this.handleListItemClick=this.handleListItemClick.bind(this),this.handlePillRemoveClick=this.handlePillRemoveClick.bind(this),this.manageSelectedTags=this.manageSelectedTags.bind(this)}componentDidMount(){const{tags:e}=this.props;e&&this.setInputWidth(),this.bindEvents()}componentWillUnmount(){this.unBindEvents()}static getDerivedStateFromProps(e,t){return JSON.stringify(e.value)!==JSON.stringify(t.initialValue)||e.tags!==t.tags?{initialValue:e.value,stateSelectedValues:Cr(e.multiple,e.tags,e.value),tags:e.tags}:null}handleItemsNavigation(e){const{tags:t}=this.props;if(-1===["ArrowDown","ArrowUp"].indexOf(e.key))return;const{cursor:n}=this.state,o=this.filterValues();let i;if(e.preventDefault(),"ArrowDown"===e.key&&(-1===n||n===o.length-1?i=0:n0?n-1:o.length-1),this.valuesListRef.current&&i>4){const e=38*(i-4);this.valuesListRef.current.scrollTop=t?e:60+e}else this.valuesListRef.current&&(this.valuesListRef.current.scrollTop=0);this.setState((e=>{return t=kr({},e),fr(t,yr({opened:!0,cursor:i}));var t}))}handleListItemClick(e){if(this.props.values[e].disabled)return;const{multiple:t,tags:n}=this.props,o=n?"manageSelectedTags":"manageSelectedValues",i=kr(kr({},this.state),this[o](e));this.setState((e=>(t||n||(i.opened=!1),kr(kr({},e),i))))}handlePillRemoveClick(e){const{disabled:t}=this.props;if(t)return;const n=this.removeSelectedValue(e);this.setState((e=>kr(kr({},e),n)))}handleClickOutside(e){this.valuesListRef.current&&!this.valuesListRef.current.contains(e.target)&&this.comboboxRef.current&&!this.comboboxRef.current.contains(e.target)&&this.setState((e=>kr(kr({},e),$r.closeList())))}handleComboboxDropdownClick(){const{disabled:e}=this.props;e||this.setState((e=>kr(kr({},e),$r.openList())))}onKeyUp(e){const{tags:t,allowCustomValues:n}=this.props,{cursor:o,opened:i}=this.state,r=this.filterValues();let s=this.getSearchText();if(t&&"Escape"!==e.key&&(s=kr(kr({},s),this.setInputWidth())),"Enter"===e.key){const e=t?"manageSelectedTags":"manageSelectedValues";s=kr(kr({},s),this[e](o))}n&&" "!==e.key&&t&&(s=kr(kr({},s),this.manageSelectedTags())),!i&&this.inputRef.current.value&&(null==r?void 0:r.length)&&"Escape"!==e.key&&(s=kr(kr({},s),$r.openList())),"Escape"===e.key&&i&&(s=kr(kr({},s),$r.closeList())),i&&r&&!r.length&&(s=kr(kr({},s),$r.closeList())),this.setState((e=>kr(kr({},e),s)))}getLabelStyles(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=e),t}getNonLabelWidth(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=`calc(100% - ${e} - 20px)`),t}setInputWidth(){return{width:50+this.textRef.current.offsetWidth}}getSelectedIndex(e){const{stateSelectedValues:t}=this.state;let n=-1;return Array.isArray(t)?t.forEach(((t,o)=>{t.id===e.id&&(n=o)})):t&&t.id===e.id&&(n=0),n}getSearchText(){return{searchText:this.inputRef.current.value}}getListItemCssClasses(e,t){const n=[],{cursor:o}=this.state;return o===t&&n.push("active"),e.disabled&&n.push("disabled"),n.join(" ")}getComboboxListCssClass(){const{opened:e}=this.state,{tags:t,theme:n}=this.props,o=n?n.split(" "):[],i=["tyk-combobox__list"];return e&&i.push("tyk-combobox__list--opened"),t&&i.push("tyk-combobox__list--has-tags"),o.length&&o.forEach((e=>{i.push(`tyk-form-group--${e}`)})),i.join(" ")}getCssClasses(){const{error:e,disabled:t,theme:n,labelwidth:o}=this.props,i=["tyk-form-group","tyk-combobox"],r=n?n.split(" "):[];return e&&i.push("has-error"),o&&i.push("tyk-form-group--label-has-width"),r.length&&r.forEach((e=>{i.push(`tyk-form-group--${e}`)})),t&&i.push("disabled"),i.join(" ")}getInputError(){const{error:e}=this.props;return e&&"true"!==e&&"false"!==e?t().createElement("p",{className:"tyk-form-control__error-message"},e):null}getStyles(){const{scrollTop:e}=document.documentElement,t=this.comboboxRef.current,n=t.offsetHeight,o=t.offsetWidth,i=t.getBoundingClientRect(),{left:r}=i;let s=0;return s=i.top+e+n,{top:s-1+"px",left:`${r}px`,width:`${o}px`}}getComboboxDisplayData(){const{stateSelectedValues:e}=this.state,{multiple:t,placeholder:n,values:o}=this.props;return e?e&&Array.isArray(e)&&!e.length?n:!e||Array.isArray(e)||e.id?Array.isArray(e)&&t?e.reduce(((t,n,o)=>t+n.name+(o!==e.length-1?", ":"")),""):!(null==o?void 0:o.length)||Array.isArray(e)||e.name?e.name:o.filter((t=>t.id===e.id))[0].name:n:n}manageSelectedTags(e){const{max:t,allowCustomValues:n}=this.props,{stateSelectedValues:o}=this.state,i=this.filterValues(),r={id:this.inputRef.current.value,name:this.inputRef.current.value};if(!1===n&&-1===e)return null;const s=i[e]||r,a=this.getSelectedIndex(s);let l={};if(this.inputRef.current.value="",a>-1&&this.isInInitialValues(s))l=this.removeSelectedValue(a);else if(-1===a){if(t&&o.length>=t)return l;l=this.addSelectedValue(s)}return l}manageSelectedValues(e){const{stateSelectedValues:t}=this.state,{multiple:n,onChange:o,max:i}=this.props,r=this.filterValues(),s=r[e];let a;const l=this.getSelectedIndex(s);if(s&&n)if(l>-1)a=this.removeSelectedValue(l);else{if(i&&t.length>=i)return a;a=this.addSelectedValue(r[e])}else a={stateSelectedValues:-1===l?s:{id:null}},null==o||o(-1===l?s:null);return a}removeSelectedValue(e){const{stateSelectedValues:t}=this.state,{onChange:n}=this.props,o=JSON.parse(JSON.stringify(t));return o.splice(e,1),n&&"function"==typeof n&&n(o.length?o:null),{stateSelectedValues:o,searchText:""}}addSelectedValue(e){const{stateSelectedValues:t}=this.state,{onChange:n}=this.props,o=JSON.parse(JSON.stringify(t));return o.push(e),n&&"function"==typeof n&&n(o.length?o:null),{stateSelectedValues:o,searchText:""}}isInInitialValues(e){const{values:t}=this.props;let n=!1;return t.forEach((t=>{e.id===t.id&&(n=!0)})),n}filterValues(){const{values:e,searchItem:t}=this.props;return this.inputRef.current?e.filter((e=>t?t(e,this.inputRef.current.value.toLowerCase()):$r.filterByName(e,this.inputRef.current.value.toLowerCase()))):e}bindEvents(){document.addEventListener("mousedown",this.handleClickOutside)}unBindEvents(){document.removeEventListener("mousedown",this.handleClickOutside)}reset(){const{multiple:e,tags:t,value:n}=this.props;this.setState({stateSelectedValues:Cr(e,t,n)})}focusInput(){this.inputRef.current&&this.inputRef.current.focus()}renderInput(e){const{disabled:n,tags:o,max:i,placeholder:r}=this.props,{width:s,searchText:a,stateSelectedValues:l}=this.state;return t().createElement("ul",{className:"tyk-form-control"+(o?" tyk-form-control--with-tags":""),onClick:this.focusInput,onKeyDown:()=>{},ref:this.comboboxRef},o?t().createElement(t().Fragment,null,(l||[]).map(((e,n)=>t().createElement("li",{className:"pill",key:e.id},t().createElement("button",{type:"button",onClick:this.handlePillRemoveClick.bind(this,n),"aria-label":"remove"},t().createElement(g,{type:"times"})),t().createElement("span",null,e.name)))),t().createElement("li",{className:"tyk-combobox__search-box",style:{width:(null==l?void 0:l.length)?"auto":"100%"}},(void 0===i||(null==l?void 0:l.length){"Enter"===e.key&&e.preventDefault(),this.handleItemsNavigation(e)},onKeyUp:this.onKeyUp,placeholder:(null==l?void 0:l.length)?"":r,ref:this.inputRef,style:{width:(null==l?void 0:l.length)?`${s}px`:"100%"}}),t().createElement("span",{ref:this.textRef,style:{visbility:"hidden",position:"absolute",top:"-9999px"}},a)),e.length>0&&t().createElement(U,{className:"tyk-combobox--with-tags__button-down",iconType:"arrow-down",iconOnly:!0,onClick:this.handleComboboxDropdownClick}))):t().createElement("li",{className:"tyk-combobox__placeholder",onClick:this.handleComboboxDropdownClick,onKeyDown:()=>{}},this.getComboboxDisplayData(),t().createElement(g,{family:"tykon",type:"arrowdown"})))}renderDropdown(e){const{tags:n}=this.props,{opened:o}=this.state;return t().createElement("ul",{className:this.getComboboxListCssClass(),ref:this.valuesListRef,style:this.getStyles()},n?null:t().createElement("li",{className:"combobox-search__container"},t().createElement("input",{autoFocus:o,className:"tyk-form-control",onKeyUp:this.onKeyUp,onKeyDown:this.handleItemsNavigation,key:"searchInput",ref:this.inputRef})),e.map(((e,n)=>t().createElement("li",{className:this.getListItemCssClasses(e,n),onClick:this.handleListItemClick.bind(this,n),onKeyDown:()=>{},key:e.id},this.getSelectedIndex(e)>-1?t().createElement(g,{type:"check"}):null,t().createElement("span",null," ",e.name)))))}render(){const{CustomListComponent:e,id:n,label:o,note:i}=this.props,{opened:r}=this.state,s=this.filterValues();return t().createElement(t().Fragment,null,t().createElement("div",{className:this.getCssClasses()},o?t().createElement("label",{htmlFor:n,style:this.getLabelStyles()},o):null,t().createElement("div",{className:"tyk-form-control__wrapper",style:this.getNonLabelWidth()},this.renderInput(s),i?t().createElement("p",{className:"tyk-form-control__help-block"},i):null,this.getInputError())),e?t().createElement(e,{ref:this.valuesListRef,className:this.getComboboxListCssClass(),getListItemCssClasses:this.getListItemCssClasses.bind(this),getSelectedIndex:this.getSelectedIndex.bind(this),filteredValues:s,handleListItemClick:this.handleListItemClick.bind(this)}):r&&s.length?dt().createPortal(this.renderDropdown(s),document.querySelector("body")):null)}}$r.propTypes={allowCustomValues:r().bool,CustomListComponent:r().elementType,searchItem:r().func,disabled:r().bool,error:r().string,id:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,multiple:r().bool,max:r().number,note:r().oneOfType([r().node,r().element,r().string]),onChange:r().func,placeholder:r().string,tags:r().bool,theme:r().string,value:r().oneOfType([r().string,r().instanceOf(Object),r().instanceOf(Array)]),values:r().instanceOf(Array)},$r.defaultProps={allowCustomValues:!0};const Sr=$r;function Er(n){const{value:o,max:i,tags:r,tagSeparators:s,addTagOnBlur:a,placeholder:l,disabled:c,renderValue:u,valueOverflow:h,focus:d,onMessage:p,readOnly:m}=n,f=(0,e.useRef)(null),y=(0,e.useRef)(null),[v,b]=(0,e.useState)(""),[w,x]=(0,e.useState)("70px");function k(e){if(s.some((t=>e.slice(-1)===t)))return;const t=y.current;t.innerHTML=e,x(`${Math.max(t.clientWidth,60)+10}px`),b(e),p("tag.input.change",e)}function C(){p("text-value.click")}function $(e,n=!1){if(m)return e||"-";const o=["tyk-combobox2__text-value",`overflow-${h}`,n&&"is-placeholder"].filter(Boolean).join(" ");return t().createElement("span",{className:o,title:"single"===h?e:void 0,role:"none",tabIndex:c?"-1":"0",onClick:C,onKeyDown:C},e)}function S(e){return u(e,{tags:r,tagSeparators:s,placeholder:l,disabled:c,renderValue:u,sendMessage:p})}return(0,e.useEffect)((()=>{d&&f.current&&f.current.focus()}),[d]),m?t().createElement("div",{className:"tyk-form-control--readonly"},$(o.map((e=>e.name)).join(", "))):r?t().createElement(t().Fragment,null,o.map((function(e){return u?S(e):t().createElement(mn,{key:e.id,theme:"combobox"},t().createElement("button",{type:"button",onClick:t=>{t.stopPropagation(),p("tag.remove",e.id)},"aria-label":"remove"},t().createElement(g,{type:"times"})),t().createElement("span",{title:e.name},e.name))})),o.lengthk(e.target.value),onKeyDown:e=>{"Enter"===e.key&&e.preventDefault(),function(e,t){if(r){if(""!==t||"Backspace"!==e||!o.length)return"Enter"===e?(p("tag.input.enter",t),void k("")):void("ArrowUp"!==e?"ArrowDown"!==e?"Escape"!==e?s.includes(e)&&(p("tag.add",t),k("")):p("tag.input.escape"):p("tag.input.arrowDown"):p("tag.input.arrowUp"));p("tag.remove",o[o.length-1].id)}}(e.key,e.target.value)},onFocus:()=>p("tag.input.focus"),onBlur:e=>{p("tag.input.blur",e.target.value),a&&k("")}}),t().createElement("span",{ref:y,style:{visbility:"hidden",position:"absolute",top:"-9999px"}}))):u?0===o.length?$(l,!0):o.map(S):0===o.length?$(l,!0):$(o.map((e=>e.name)).join(", "))}Er.propTypes={value:r().instanceOf(Array),max:r().number,tags:r().instanceOf(Array),tagSeparators:r().instanceOf(Array),addTagOnBlur:r().bool,placeholder:r().string,disabled:r().bool,renderValue:r().func,valueOverflow:r().string,focus:r().bool,onMessage:r().func,readOnly:r().bool};const Or=Er;function Tr(n){const{listRef:o,tags:i,values:r,searchValue:s,activeItem:a,onMessage:l,renderListItem:c,selectAll:u,showSearch:h}=n;return(0,e.useEffect)((()=>{if(!o.current)return;const e=o.current.querySelector(".active");e&&e.scrollIntoView({block:"end"})}),[a]),t().createElement(t().Fragment,null,!i&&h&&t().createElement("div",{className:"tyk-combobox2__combobox-search"},t().createElement("input",{autoFocus:!0,className:"tyk-form-control",value:s,onChange:e=>l("search.change",e.target.value),onKeyDown:e=>{"Escape"===e.key&&l("search.escape"),"ArrowUp"===e.key&&l("search.arrowUp"),"ArrowDown"===e.key&&l("search.arrowDown"),"Enter"===e.key&&l("search.enter")}})),r.length>0&&t().createElement("ul",{ref:o,className:"tyk-combobox2__combobox-list"},Boolean(u)&&function(){var e,n,o;const i=r.every((e=>e.selected)),s=r.every((e=>!e.selected)),a=null!=(e=null==u?void 0:u.label)?e:"Select All",c=null!=(n=null==u?void 0:u.mode)?n:"select",h=null!=(o=null==u?void 0:u.show)?o:"always",d=null==u?void 0:u.render;return"always"!==h&&("select"===c?i:s)?null:d?d({label:a,mode:c,show:h,isAllSelected:i,isNoneSelected:s},l):t().createElement("li",{onClick:()=>l("value.select-all","select"===c?!i:s),onKeyDown:()=>{}},("select"===c?i:s)&&t().createElement(g,{type:"check"}),a)}(),r.map((function(e){return c?c(e,{tags:i,searchValue:s,sendMessage:l,activeItem:a}):t().createElement("li",{key:e.id,title:e.name,className:[e.disabled&&"disabled",a&&e.id===a.id&&"active"].filter(Boolean).join(" "),onClick:()=>!e.disabled&&l("value.select",{item:e}),onKeyDown:()=>{}},e.selected&&t().createElement(g,{type:"check"}),t().createElement("span",{className:"item-name"},e.name))}))))}Tr.propTypes={listRef:r().instanceOf(Object),tags:r().bool,values:r().instanceOf(Array),searchValue:r().string,activeItem:r().instanceOf(Object),onMessage:r().func,renderListItem:r().func,selectAll:r().oneOfType([r().bool,r().shape({label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),mode:r().oneOf(["select","unselect"]),show:r().oneOf(["always","notSameState"]),render:r().func})]),showSearch:r().bool};const Ar=Tr;var _r=Object.defineProperty,Lr=Object.defineProperties,Mr=Object.getOwnPropertyDescriptors,Rr=Object.getOwnPropertySymbols,Nr=Object.prototype.hasOwnProperty,Ir=Object.prototype.propertyIsEnumerable,Pr=(e,t,n)=>t in e?_r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Dr=(e,t)=>{for(var n in t||(t={}))Nr.call(t,n)&&Pr(e,n,t[n]);if(Rr)for(var n of Rr(t))Ir.call(t,n)&&Pr(e,n,t[n]);return e},Fr=(e,t)=>Lr(e,Mr(t));function Br(n){var o=n,{value:i,values:r=[],valueOverflow:s="single",label:a="",labelwidth:l,tags:c=!1,tagSeparators:u=[" ","Enter"],addTagOnBlur:h=!1,max:d,multiple:p=!1,placeholder:m="",theme:f,note:y="",error:v="",disabled:b=!1,readOnly:w=!1,allowCustomValues:x=!0,searchItem:k,renderValue:C,renderListItem:$,renderList:S,CustomListComponent:E,onBeforeChange:O=(()=>!0),onChange:T=(()=>{}),floatingContainerConfig:A,expandMode:_,infiniteScrollerConfig:L,displayDropdownTrigger:M=!0,selectAll:R,closeOnSelect:N,showSearch:I=!1,required:P=!1,validateOnChange:D=(()=>{}),wrapperClassName:F=""}=o,B=((e,t)=>{var n={};for(var o in e)Nr.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Rr)for(var o of Rr(e))t.indexOf(o)<0&&Ir.call(e,o)&&(n[o]=e[o]);return n})(o,["value","values","valueOverflow","label","labelwidth","tags","tagSeparators","addTagOnBlur","max","multiple","placeholder","theme","note","error","disabled","readOnly","allowCustomValues","searchItem","renderValue","renderListItem","renderList","CustomListComponent","onBeforeChange","onChange","floatingContainerConfig","expandMode","infiniteScrollerConfig","displayDropdownTrigger","selectAll","closeOnSelect","showSearch","required","validateOnChange","wrapperClassName"]);const W=(0,e.useMemo)((()=>p?1/0:d||(c?1/0:1)),[p,d,c]),H=E?(e,{sendMessage:n})=>t().createElement(E,{filteredValues:e,handleListItemClick:t=>n("value.select",{item:e[t]})}):S,j=(0,e.useRef)(null),z=(0,e.useRef)(null),V=(0,e.useRef)(null),U=(0,e.useRef)(null),[G,K]=(0,e.useState)(jr(i,r)),[q,Y]=(0,e.useState)(r.map((e=>Hr(e)))),[J,X]=(0,e.useState)(""),[Q,Z]=(0,e.useState)(null),[ee,te]=(0,e.useState)(!1),[ne,oe]=(0,e.useState)(!1),[ie,re]=(0,e.useState)("");function se(){return(f?f.split(" "):[]).map((e=>`tyk-form-group--${e}`))}function ae(){const e=k||((e,t)=>{var n,o;return null==(o=null==(n=null==e?void 0:e.name)?void 0:n.toLowerCase())?void 0:o.includes(t)});return q.filter((t=>e(t,J.toLowerCase())))}function le(){te(!0)}function ce(){te(!1),c||ue(""),Z(null)}function ue(e){X(e),Q&&ae().every((e=>e.id!==Q.id))&&Z(null),e&&!ee&&le()}function he(e,t){const n=D(e,t);return re(n),void 0===n}function de(e){K(e),T(1!==W||c?e:e[0]||null)}function pe(e){if(!e)return;if(G.length>=W)return;if(G.some((({name:t})=>t===e)))return;const t=q.findIndex((t=>t.name===e));let n,o,i=[...G];-1===t?x&&(n={id:e,name:e},i=[...G,n]):(o=[...q.slice(0,t),Fr(Dr({},q[t]),{selected:!0}),...q.slice(t+1)],n=q[t],i=[...G,q[t]]),he(i,n)&&O(G,i)&&(o&&Y(o),de(i))}function ge({id:e}){const t=q.find((t=>t.id===e)),n=q.findIndex((t=>t.id===e));let o=G,i=q;t.selected?P&&1===W||(o=G.filter((e=>e.id!==t.id)),i=q.with(n,Fr(Dr({},t),{selected:!1}))):G.lengthFr(Dr({},e),{selected:e.id===t.id})))),he(o,t)&&O(G,o)&&(de(o),Y(i)),(1===W||N)&&ce()}function me(e){if(q.length>W)return;const t=e?[...q]:[];O(G,t)&&(de(t),Y(q.map((t=>Fr(Dr({},t),{selected:e})))),N&&ce())}function fe(){const e=ae().filter((e=>!e.disabled));if(0===e.length)return;if(null===Q||1===e.length)return void Z(e[e.length-1]);const t=e.findIndex((e=>e.id===Q.id));Z(e[t>0?t-1:e.length-1])}function ye(){const e=ae().filter((e=>!e.disabled));if(0===e.length)return;if(null===Q||1===e.length)return void Z(e[0]);const t=e.findIndex((e=>e.id===Q.id));Z(e[tt.id===e)),n=G.filter((t=>t.id!==e));O(G,n)&&(-1!==t&&Y([...q.slice(0,t),Fr(Dr({},q[t]),{selected:!1}),...q.slice(t+1)]),de(n))}(t),"input.change"===e&&ue(t),"input.enter"===e&&(Q?ge(Q):u.includes("Enter")&&(pe(t),ue(""))),"input.arrowUp"===e&&(le(),fe()),"input.arrowDown"===e&&(le(),ye()),"input.escape"===e&&ce(),"input.blur"===e&&h&&(pe(t),ue("")),"input.focus"===e&&le()}const xe=(0,e.useCallback)(((e,t)=>{e.startsWith("tag.")&&we(e.slice(4),t),"value.select"===e&&ge(t.item),"value.select-all"===e&&me(t),"text-value.click"===e&&le(),"search.change"===e&&ue(t),"search.escape"===e&&ce(),"search.arrowUp"===e&&fe(),"search.arrowDown"===e&&ye(),"search.enter"===e&&Q&&ge(Q)}),[we,ge,me,le,ue,ce,fe,ye]),ke=(0,e.useCallback)((()=>_?t().createElement(g,{type:ne?"compress-arrows-alt":"expand-arrows-alt"}):t().createElement(g,{family:"tykon",type:"arrowdown"})),[_,ne]);(0,e.useEffect)((()=>(window.addEventListener("click",be,!0),()=>window.removeEventListener("click",be,!0))),[]),(0,e.useEffect)((()=>{if(r.length){const e=r.map((e=>Fr(Dr({},Hr(e)),{selected:G.some((t=>t.id===e.id))})));Y(e),K((t=>t.map((t=>e.find((e=>e.id===t.id))||t))))}else q.length&&Y([])}),[r]),(0,e.useEffect)((()=>{const e=jr(i,q);K(e),Y((t=>t.map((t=>Fr(Dr({},Hr(t)),{selected:e.some((e=>e.id===t.id))})))))}),[i]),(0,e.useEffect)((()=>{if(!_)return()=>{};const e=z.current.querySelector(".tyk-combobox2__current-values"),t=()=>{e.scrollTop=e.scrollHeight},n=new MutationObserver(t),o=new ResizeObserver(t);return n.observe(e,{attributes:!0,childList:!0,subtree:!0}),o.observe(e),()=>{n.disconnect(),o.disconnect()}}));const Ce=ae(),$e=["tyk-combobox2__current-values",_&&"expand-mode","tyk-combobox2__current-values--"+(ne?"expanded":"collapsed")].join(" ");return t().createElement("div",Fr(Dr({ref:j,tabIndex:b?"-1":"0",onClickCapture:function(e){if(!b)return;if(!_)return void e.stopPropagation();const t=j.current.querySelector(".tyk-combobox2__values-container-trigger");t&&(t===e.target||t.contains(e.target)||e.stopPropagation())}},B),{className:[F,"tyk-form-group","tyk-combobox2",...se(),(v||ie)&&"has-error",l&&"tyk-form-group--label-has-width",b&&"disabled",_&&"is-expand-mode"].filter(Boolean).join(" ")}),a&&t().createElement("label",{style:{flexBasis:l||"auto"}},a),!w&&t().createElement("div",{className:"tyk-form-control__wrapper",style:{flexBasis:`calc(100% - ${l} - 20px)`}},t().createElement("div",{className:"tyk-form-control",ref:z},t().createElement("div",{className:$e,onClick:le,role:"none"},t().createElement(Or,{value:G,max:W,tags:c,tagSeparators:u,addTagOnBlur:h,allowCustomValues:x,placeholder:m,disabled:b,valueOverflow:s,renderValue:C,focus:ee,onMessage:xe,readOnly:w})),M&&t().createElement("div",{className:"tyk-combobox2__values-container-trigger"+(ne?" tyk-combobox2__values-container-trigger--expanded":""),role:"button",tabIndex:b?-1:0,onClick:ve,onKeyDown:ve},ke())),ee&&(!c||Ce.length>0)&&t().createElement(Pt,Fr(Dr({element:z,size:"matchElement",className:`tyk-combobox2__combobox-dropdown tyk-form-group ${se().join(" ")}`,ref:V,displayAxis:"vertical"},A),{infiniteScrollerConfig:L}),H?H(Ce,{tags:c,searchValue:J,activeItem:Q,listRef:U,sendMessage:xe}):t().createElement(Ar,{listRef:U,showSearch:I,values:Ce,tags:c,searchValue:J,activeItem:Q,onMessage:xe,renderListItem:$,selectAll:R})),y&&t().createElement("p",{className:"tyk-form-control__help-block"},y),(v&&"true"!==v&&"false"!==v||Boolean(ie))&&t().createElement("p",{className:"tyk-form-control__error-message"},v||ie)),w&&t().createElement("div",null,t().createElement(Or,{value:G,tags:c,renderValue:C,readOnly:w})))}Br.propTypes={allowCustomValues:r().bool,CustomListComponent:r().elementType,searchItem:r().func,renderValue:r().func,renderListItem:r().func,renderList:r().func,disabled:r().bool,readOnly:r().bool,error:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,max:r().number,multiple:r().bool,note:r().oneOfType([r().node,r().element,r().string]),onBeforeChange:r().func,onChange:r().func,placeholder:r().string,tags:r().bool,tagSeparators:r().arrayOf(r().string),addTagOnBlur:r().bool,theme:r().string,value:r().oneOfType([r().string,r().instanceOf(Array),r().instanceOf(Object)]),values:r().instanceOf(Array),floatingContainerConfig:r().instanceOf(Object),valueOverflow:r().oneOf(["single","multiple"]),expandMode:r().bool,infiniteScrollerConfig:r().instanceOf(Object),displayDropdownTrigger:r().bool,selectAll:r().oneOfType([r().bool,r().shape({label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),mode:r().oneOf(["select","unselect"]),show:r().oneOf(["always","notSameState"]),render:r().func})]),closeOnSelect:r().bool,showSearch:r().bool,required:r().bool,validateOnChange:r().func,wrapperClassName:r().string};const Wr=Br;function Hr(e,t){let n=e;if("string"==typeof e?n={id:e,name:e}:e.hasOwnProperty("name")||(n=Fr(Dr({},e),{name:e.id})),!t)return n;const o=t.find((e=>e.id===n.id));return o?Dr(Dr({},n),o):n}function jr(e,t){return e?Array.isArray(e)?e.map((e=>Hr(e,t))):[Hr(e,t)]:[]}const zr=require("flatpickr");var Vr=n.n(zr),Ur=Object.defineProperty,Gr=Object.defineProperties,Kr=Object.getOwnPropertyDescriptors,qr=Object.getOwnPropertySymbols,Yr=Object.prototype.hasOwnProperty,Jr=Object.prototype.propertyIsEnumerable,Xr=(e,t,n)=>t in e?Ur(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Qr({children:n,disabled:o,readOnly:i=!1,error:r,id:s,label:a,labelwidth:l,note:c,onClose:u,onChange:h,onOpen:d,theme:p,config:m={},value:f,wrapperClassName:y=""}){const[v,b]=(0,e.useState)(null),w=(0,e.useRef)(null),x=me(f),k=(0,e.useCallback)(((e,t)=>{if(!e)return!0;if(!Array.isArray(t))return e.getTime()!==t.getTime();let n=t;return e&&t.length&&e.length?(n=t.filter(((t,n)=>t.getTime()!==e[n].getTime())),n.length>0):t.length>0}),[]),C=(0,e.useCallback)((e=>{const t="range"===m.mode?e:e[0]||null;h&&("range"===m.mode?2===t.length&&k(x,t)&&h(t):h(t))}),[x,h,k]);(0,e.useEffect)((()=>{if(w.current&&!v){const t=Vr()(w.current,(e=((e,t)=>{for(var n in t||(t={}))Yr.call(t,n)&&Xr(e,n,t[n]);if(qr)for(var n of qr(t))Jr.call(t,n)&&Xr(e,n,t[n]);return e})({},m),Gr(e,Kr({defaultDate:f,onChange:C,onClose:u,onOpen:d}))));b(t)}var e;return()=>{v&&v.destroy()}}),[v]),(0,e.useEffect)((()=>{if(v){let e=f;"string"==typeof f?e=new Date(f):Array.isArray(f)&&(e=f.map((e=>new Date(e)))),k(x,e)&&(v.set("onChange",C),"range"===m.mode?e&&2===e.length&&v.setDate(e,!0):v.setDate(e,!0))}}),[x,f,v]);const $=["tyk-form-group","tyk-form-group--addon-right",y,...p?p.split(" ").map((e=>`tyk-form-group--${e}`)):[],l&&"tyk-form-group--label-has-width",r&&"has-error"].filter(Boolean).join(" "),S=(0,e.useCallback)((()=>{v&&v.open()}),[v]);return t().createElement(t().Fragment,null,(null==n?void 0:n.length)?n({openCalendar:S,ref:w}):t().createElement("div",{className:$},a?t().createElement("label",{htmlFor:s,style:l?{flexBasis:l}:{}},a):null,!i&&t().createElement("div",{className:"tyk-form-control__wrapper flatpickr",style:l?{flexBasis:`calc(100% - ${l} - 20px)`}:{}},t().createElement("div",{className:"tyk-input-group"},(()=>{let e={},n={};return(null==m?void 0:m.inline)&&(e={height:0,padding:0,width:0,visibility:"hidden"},n={display:"none"}),t().createElement(t().Fragment,null,t().createElement("input",{disabled:o,className:"tyk-form-control","data-input":!0,type:"date",ref:w,style:e}),t().createElement("div",{className:"tyk-input-group__addon",onClick:S,role:"button",onKeyUp:()=>{},tabIndex:0,style:n,"aria-label":"show calendar"},t().createElement(g,{type:"calendar"})))})()),c?t().createElement("p",{className:"tyk-form-control__help-block"},c):null,r&&"true"!==r&&"false"!==r?t().createElement("p",{className:"tyk-form-control__error-message"},r):null)),t().createElement("div",{className:"tyk-form-control--readonly"},i&&!f&&"-",i&&f&&Vr().formatDate(f,m.dateFormat||"d/m/Y")))}Qr.propTypes={config:r().instanceOf(Object),children:r().oneOfType([r().element,r().node,r().string,r().func]),disabled:r().bool,readOnly:r().bool,id:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,note:r().string,onChange:r().oneOfType([r().func,r().instanceOf(Array)]),onClose:r().oneOfType([r().func,r().instanceOf(Array)]),onOpen:r().oneOfType([r().func,r().instanceOf(Array)]),theme:r().string,error:r().string,value:r().oneOfType([r().instanceOf(Array),r().instanceOf(Object),r().string]),wrapperClassName:r().string};const Zr=Qr;function es(e){return es="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},es(e)}function ts(e,t){if(t.length1?"s":"")+" required, but only "+t.length+" present")}function ns(e){return ts(1,arguments),e instanceof Date||"object"===es(e)&&"[object Date]"===Object.prototype.toString.call(e)}function os(e){ts(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||"object"===es(e)&&"[object Date]"===t?new Date(e.getTime()):"number"==typeof e||"[object Number]"===t?new Date(e):("string"!=typeof e&&"[object String]"!==t||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn((new Error).stack)),new Date(NaN))}function is(e){if(null===e||!0===e||!1===e)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function rs(e){ts(1,arguments);var t=os(e),n=t.getUTCDay(),o=(n<1?7:0)+n-1;return t.setUTCDate(t.getUTCDate()-o),t.setUTCHours(0,0,0,0),t}function ss(e){ts(1,arguments);var t=os(e),n=t.getUTCFullYear(),o=new Date(0);o.setUTCFullYear(n+1,0,4),o.setUTCHours(0,0,0,0);var i=rs(o),r=new Date(0);r.setUTCFullYear(n,0,4),r.setUTCHours(0,0,0,0);var s=rs(r);return t.getTime()>=i.getTime()?n+1:t.getTime()>=s.getTime()?n:n-1}var as={};function ls(){return as}function cs(e,t){var n,o,i,r,s,a,l,c;ts(1,arguments);var u=ls(),h=is(null!==(n=null!==(o=null!==(i=null!==(r=null==t?void 0:t.weekStartsOn)&&void 0!==r?r:null==t||null===(s=t.locale)||void 0===s||null===(a=s.options)||void 0===a?void 0:a.weekStartsOn)&&void 0!==i?i:u.weekStartsOn)&&void 0!==o?o:null===(l=u.locale)||void 0===l||null===(c=l.options)||void 0===c?void 0:c.weekStartsOn)&&void 0!==n?n:0);if(!(h>=0&&h<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var d=os(e),p=d.getUTCDay(),g=(p=1&&p<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var g=new Date(0);g.setUTCFullYear(h+1,0,p),g.setUTCHours(0,0,0,0);var m=cs(g,t),f=new Date(0);f.setUTCFullYear(h,0,p),f.setUTCHours(0,0,0,0);var y=cs(f,t);return u.getTime()>=m.getTime()?h+1:u.getTime()>=y.getTime()?h:h-1}function hs(e,t){for(var n=e<0?"-":"",o=Math.abs(e).toString();o.length0?n:1-n;return hs("yy"===t?o%100:o,t.length)},ps=function(e,t){var n=e.getUTCMonth();return"M"===t?String(n+1):hs(n+1,2)},gs=function(e,t){return hs(e.getUTCDate(),t.length)},ms=function(e,t){return hs(e.getUTCHours()%12||12,t.length)},fs=function(e,t){return hs(e.getUTCHours(),t.length)},ys=function(e,t){return hs(e.getUTCMinutes(),t.length)},vs=function(e,t){return hs(e.getUTCSeconds(),t.length)},bs=function(e,t){var n=t.length,o=e.getUTCMilliseconds();return hs(Math.floor(o*Math.pow(10,n-3)),t.length)};var ws={G:function(e,t,n){var o=e.getUTCFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(o,{width:"abbreviated"});case"GGGGG":return n.era(o,{width:"narrow"});default:return n.era(o,{width:"wide"})}},y:function(e,t,n){if("yo"===t){var o=e.getUTCFullYear(),i=o>0?o:1-o;return n.ordinalNumber(i,{unit:"year"})}return ds(e,t)},Y:function(e,t,n,o){var i=us(e,o),r=i>0?i:1-i;return"YY"===t?hs(r%100,2):"Yo"===t?n.ordinalNumber(r,{unit:"year"}):hs(r,t.length)},R:function(e,t){return hs(ss(e),t.length)},u:function(e,t){return hs(e.getUTCFullYear(),t.length)},Q:function(e,t,n){var o=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"Q":return String(o);case"QQ":return hs(o,2);case"Qo":return n.ordinalNumber(o,{unit:"quarter"});case"QQQ":return n.quarter(o,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(o,{width:"narrow",context:"formatting"});default:return n.quarter(o,{width:"wide",context:"formatting"})}},q:function(e,t,n){var o=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"q":return String(o);case"qq":return hs(o,2);case"qo":return n.ordinalNumber(o,{unit:"quarter"});case"qqq":return n.quarter(o,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(o,{width:"narrow",context:"standalone"});default:return n.quarter(o,{width:"wide",context:"standalone"})}},M:function(e,t,n){var o=e.getUTCMonth();switch(t){case"M":case"MM":return ps(e,t);case"Mo":return n.ordinalNumber(o+1,{unit:"month"});case"MMM":return n.month(o,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(o,{width:"narrow",context:"formatting"});default:return n.month(o,{width:"wide",context:"formatting"})}},L:function(e,t,n){var o=e.getUTCMonth();switch(t){case"L":return String(o+1);case"LL":return hs(o+1,2);case"Lo":return n.ordinalNumber(o+1,{unit:"month"});case"LLL":return n.month(o,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(o,{width:"narrow",context:"standalone"});default:return n.month(o,{width:"wide",context:"standalone"})}},w:function(e,t,n,o){var i=function(e,t){ts(1,arguments);var n=os(e),o=cs(n,t).getTime()-function(e,t){var n,o,i,r,s,a,l,c;ts(1,arguments);var u=ls(),h=is(null!==(n=null!==(o=null!==(i=null!==(r=null==t?void 0:t.firstWeekContainsDate)&&void 0!==r?r:null==t||null===(s=t.locale)||void 0===s||null===(a=s.options)||void 0===a?void 0:a.firstWeekContainsDate)&&void 0!==i?i:u.firstWeekContainsDate)&&void 0!==o?o:null===(l=u.locale)||void 0===l||null===(c=l.options)||void 0===c?void 0:c.firstWeekContainsDate)&&void 0!==n?n:1),d=us(e,t),p=new Date(0);return p.setUTCFullYear(d,0,h),p.setUTCHours(0,0,0,0),cs(p,t)}(n,t).getTime();return Math.round(o/6048e5)+1}(e,o);return"wo"===t?n.ordinalNumber(i,{unit:"week"}):hs(i,t.length)},I:function(e,t,n){var o=function(e){ts(1,arguments);var t=os(e),n=rs(t).getTime()-function(e){ts(1,arguments);var t=ss(e),n=new Date(0);return n.setUTCFullYear(t,0,4),n.setUTCHours(0,0,0,0),rs(n)}(t).getTime();return Math.round(n/6048e5)+1}(e);return"Io"===t?n.ordinalNumber(o,{unit:"week"}):hs(o,t.length)},d:function(e,t,n){return"do"===t?n.ordinalNumber(e.getUTCDate(),{unit:"date"}):gs(e,t)},D:function(e,t,n){var o=function(e){ts(1,arguments);var t=os(e),n=t.getTime();t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0);var o=n-t.getTime();return Math.floor(o/864e5)+1}(e);return"Do"===t?n.ordinalNumber(o,{unit:"dayOfYear"}):hs(o,t.length)},E:function(e,t,n){var o=e.getUTCDay();switch(t){case"E":case"EE":case"EEE":return n.day(o,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(o,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(o,{width:"short",context:"formatting"});default:return n.day(o,{width:"wide",context:"formatting"})}},e:function(e,t,n,o){var i=e.getUTCDay(),r=(i-o.weekStartsOn+8)%7||7;switch(t){case"e":return String(r);case"ee":return hs(r,2);case"eo":return n.ordinalNumber(r,{unit:"day"});case"eee":return n.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(i,{width:"short",context:"formatting"});default:return n.day(i,{width:"wide",context:"formatting"})}},c:function(e,t,n,o){var i=e.getUTCDay(),r=(i-o.weekStartsOn+8)%7||7;switch(t){case"c":return String(r);case"cc":return hs(r,t.length);case"co":return n.ordinalNumber(r,{unit:"day"});case"ccc":return n.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(i,{width:"narrow",context:"standalone"});case"cccccc":return n.day(i,{width:"short",context:"standalone"});default:return n.day(i,{width:"wide",context:"standalone"})}},i:function(e,t,n){var o=e.getUTCDay(),i=0===o?7:o;switch(t){case"i":return String(i);case"ii":return hs(i,t.length);case"io":return n.ordinalNumber(i,{unit:"day"});case"iii":return n.day(o,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(o,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(o,{width:"short",context:"formatting"});default:return n.day(o,{width:"wide",context:"formatting"})}},a:function(e,t,n){var o=e.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(o,{width:"narrow",context:"formatting"});default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},b:function(e,t,n){var o,i=e.getUTCHours();switch(o=12===i?"noon":0===i?"midnight":i/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(o,{width:"narrow",context:"formatting"});default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},B:function(e,t,n){var o,i=e.getUTCHours();switch(o=i>=17?"evening":i>=12?"afternoon":i>=4?"morning":"night",t){case"B":case"BB":case"BBB":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(o,{width:"narrow",context:"formatting"});default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},h:function(e,t,n){if("ho"===t){var o=e.getUTCHours()%12;return 0===o&&(o=12),n.ordinalNumber(o,{unit:"hour"})}return ms(e,t)},H:function(e,t,n){return"Ho"===t?n.ordinalNumber(e.getUTCHours(),{unit:"hour"}):fs(e,t)},K:function(e,t,n){var o=e.getUTCHours()%12;return"Ko"===t?n.ordinalNumber(o,{unit:"hour"}):hs(o,t.length)},k:function(e,t,n){var o=e.getUTCHours();return 0===o&&(o=24),"ko"===t?n.ordinalNumber(o,{unit:"hour"}):hs(o,t.length)},m:function(e,t,n){return"mo"===t?n.ordinalNumber(e.getUTCMinutes(),{unit:"minute"}):ys(e,t)},s:function(e,t,n){return"so"===t?n.ordinalNumber(e.getUTCSeconds(),{unit:"second"}):vs(e,t)},S:function(e,t){return bs(e,t)},X:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();if(0===i)return"Z";switch(t){case"X":return ks(i);case"XXXX":case"XX":return Cs(i);default:return Cs(i,":")}},x:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();switch(t){case"x":return ks(i);case"xxxx":case"xx":return Cs(i);default:return Cs(i,":")}},O:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+xs(i,":");default:return"GMT"+Cs(i,":")}},z:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+xs(i,":");default:return"GMT"+Cs(i,":")}},t:function(e,t,n,o){var i=o._originalDate||e;return hs(Math.floor(i.getTime()/1e3),t.length)},T:function(e,t,n,o){return hs((o._originalDate||e).getTime(),t.length)}};function xs(e,t){var n=e>0?"-":"+",o=Math.abs(e),i=Math.floor(o/60),r=o%60;if(0===r)return n+String(i);var s=t||"";return n+String(i)+s+hs(r,2)}function ks(e,t){return e%60==0?(e>0?"-":"+")+hs(Math.abs(e)/60,2):Cs(e,t)}function Cs(e,t){var n=t||"",o=e>0?"-":"+",i=Math.abs(e);return o+hs(Math.floor(i/60),2)+n+hs(i%60,2)}const $s=ws;var Ss=function(e,t){switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},Es=function(e,t){switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},Os={p:Es,P:function(e,t){var n,o=e.match(/(P+)(p+)?/)||[],i=o[1],r=o[2];if(!r)return Ss(e,t);switch(i){case"P":n=t.dateTime({width:"short"});break;case"PP":n=t.dateTime({width:"medium"});break;case"PPP":n=t.dateTime({width:"long"});break;default:n=t.dateTime({width:"full"})}return n.replace("{{date}}",Ss(i,t)).replace("{{time}}",Es(r,t))}};const Ts=Os;var As=["D","DD"],_s=["YY","YYYY"];function Ls(e,t,n){if("YYYY"===e)throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("YY"===e)throw new RangeError("Use `yy` instead of `YY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("D"===e)throw new RangeError("Use `d` instead of `D` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("DD"===e)throw new RangeError("Use `dd` instead of `DD` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))}var Ms={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function Rs(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}var Ns,Is={date:Rs({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:Rs({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:Rs({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},Ps={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function Ds(e){return function(t,n){var o;if("formatting"===(null!=n&&n.context?String(n.context):"standalone")&&e.formattingValues){var i=e.defaultFormattingWidth||e.defaultWidth,r=null!=n&&n.width?String(n.width):i;o=e.formattingValues[r]||e.formattingValues[i]}else{var s=e.defaultWidth,a=null!=n&&n.width?String(n.width):e.defaultWidth;o=e.values[a]||e.values[s]}return o[e.argumentCallback?e.argumentCallback(t):t]}}function Fs(e){return function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=n.width,i=o&&e.matchPatterns[o]||e.matchPatterns[e.defaultMatchWidth],r=t.match(i);if(!r)return null;var s,a=r[0],l=o&&e.parsePatterns[o]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(l)?function(e,t){for(var n=0;n0?"in "+o:o+" ago":o},formatLong:Is,formatRelative:function(e,t,n,o){return Ps[e]},localize:{ordinalNumber:function(e,t){var n=Number(e),o=n%100;if(o>20||o<10)switch(o%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:Ds({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:Ds({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:Ds({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:Ds({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:Ds({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(Ns={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(e){return parseInt(e,10)}},function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.match(Ns.matchPattern);if(!n)return null;var o=n[0],i=e.match(Ns.parsePattern);if(!i)return null;var r=Ns.valueCallback?Ns.valueCallback(i[0]):i[0];return{value:r=t.valueCallback?t.valueCallback(r):r,rest:e.slice(o.length)}}),era:Fs({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:Fs({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:Fs({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:Fs({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:Fs({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};var Ws=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Hs=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,js=/^'([^]*?)'?$/,zs=/''/g,Vs=/[a-zA-Z]/;function Us(e,t,n){var o,i,r,s,a,l,c,u,h,d,p,g,m,f,y,v,b,w;ts(2,arguments);var x=String(t),k=ls(),C=null!==(o=null!==(i=null==n?void 0:n.locale)&&void 0!==i?i:k.locale)&&void 0!==o?o:Bs,$=is(null!==(r=null!==(s=null!==(a=null!==(l=null==n?void 0:n.firstWeekContainsDate)&&void 0!==l?l:null==n||null===(c=n.locale)||void 0===c||null===(u=c.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==a?a:k.firstWeekContainsDate)&&void 0!==s?s:null===(h=k.locale)||void 0===h||null===(d=h.options)||void 0===d?void 0:d.firstWeekContainsDate)&&void 0!==r?r:1);if(!($>=1&&$<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var S=is(null!==(p=null!==(g=null!==(m=null!==(f=null==n?void 0:n.weekStartsOn)&&void 0!==f?f:null==n||null===(y=n.locale)||void 0===y||null===(v=y.options)||void 0===v?void 0:v.weekStartsOn)&&void 0!==m?m:k.weekStartsOn)&&void 0!==g?g:null===(b=k.locale)||void 0===b||null===(w=b.options)||void 0===w?void 0:w.weekStartsOn)&&void 0!==p?p:0);if(!(S>=0&&S<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!C.localize)throw new RangeError("locale must contain localize property");if(!C.formatLong)throw new RangeError("locale must contain formatLong property");var E=os(e);if(!function(e){if(ts(1,arguments),!ns(e)&&"number"!=typeof e)return!1;var t=os(e);return!isNaN(Number(t))}(E))throw new RangeError("Invalid time value");var O=function(e){var t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e.getTime()-t.getTime()}(E),T=function(e,t){return ts(2,arguments),function(e,t){ts(2,arguments);var n=os(e).getTime(),o=is(t);return new Date(n+o)}(e,-is(t))}(E,O),A={firstWeekContainsDate:$,weekStartsOn:S,locale:C,_originalDate:E};return x.match(Hs).map((function(e){var t=e[0];return"p"===t||"P"===t?(0,Ts[t])(e,C.formatLong):e})).join("").match(Ws).map((function(o){if("''"===o)return"'";var i,r,s=o[0];if("'"===s)return(r=(i=o).match(js))?r[1].replace(zs,"'"):i;var a,l=$s[s];if(l)return null!=n&&n.useAdditionalWeekYearTokens||(a=o,-1===_s.indexOf(a))||Ls(o,t,String(e)),null!=n&&n.useAdditionalDayOfYearTokens||!function(e){return-1!==As.indexOf(e)}(o)||Ls(o,t,String(e)),l(T,o,C.localize,A);if(s.match(Vs))throw new RangeError("Format string contains an unescaped latin alphabet character `"+s+"`");return o})).join("")}var Gs=n(590),Ks=n.n(Gs),qs=Object.defineProperty,Ys=Object.defineProperties,Js=Object.getOwnPropertyDescriptors,Xs=Object.getOwnPropertySymbols,Qs=Object.prototype.hasOwnProperty,Zs=Object.prototype.propertyIsEnumerable,ea=(e,t,n)=>t in e?qs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ta=(e,t)=>{for(var n in t||(t={}))Qs.call(t,n)&&ea(e,n,t[n]);if(Xs)for(var n of Xs(t))Zs.call(t,n)&&ea(e,n,t[n]);return e};class na extends e.Component{static getMainFormValue(e){const t=new Array(e.length);return e.forEach(((e,n)=>{t[n]=e.props.value||void 0})),t}constructor(t){super(t);const{components:n}=t;this.submitButtonRef=(0,e.createRef)(),this.handleOnChange=this.handleOnChange.bind(this),this.submitForm=this.submitForm.bind(this),this.state={components:n,errors:{},mainError:null,mainFormValue:na.getMainFormValue(n),refs:[]}}componentDidMount(){const{addValueOnFieldChange:e,getMainFormButtonWidth:t}=this.props;this.createRefs(),t&&t(e?0:this.submitButtonRef.current.clientWidth)}static getDerivedStateFromProps(e,t){const n={},{components:o}=e,{components:i}=t;return Ks()(o,i)||Ks()(na.getMainFormValue(o),na.getMainFormValue(i))||(n.mainFormValue=na.getMainFormValue(o),n.components=o),n}handleOnChange(e,t,n){const{addValueOnFieldChange:o}=this.props;let i=this.state;i=ta(ta({},i),this.validateValue(n,e.props)),i.errors[e.props.name]||(i.mainFormValue[t]=n,e.props.onChange&&e.props.onChange(n)),this.setState((e=>ta(ta({},e),i)),(()=>{o&&this.submitForm()}))}getFormCssClasses(){const{noLabels:e}=this.props,t=["tyk-editable-list__form"];return e&&t.push("no-labels"),t.join(" ")}getButtonClassName(){const{buttonStyle:e,displayType:t}=this.props,n=[];return e&&n.push(e),t&&n.push(t),n.join(" ")}getComponentsError(e){const{error:t,errors:n,mainError:o}=this.state;return t||o?n[e.props.name]="true":t||o||"true"!==n[e.props.name]||delete n[e.props.name],n[e.props.name]?n[e.props.name].toString():void 0}createRefs(){const{components:t}=this.props,n=[];t.forEach((()=>{n.push((0,e.createRef)())})),this.setState({refs:n})}validateValue(e,t){const{mainError:n,errors:o}=this.state,{error:i,errorPersist:r}=this.props,s=t.validate?Object.keys(t.validate):[],a={errors:i||n?{}:ta({},o)};let l=!0;if(r)return a;for(const n of s)if((0,t.validate[n])(e)){a.errors[t.name]=t.validationmessages[n],l=!1;break}return l&&delete a.errors[t.name],a.mainError=null,a}hasMainFormErrors(e){const{components:t,errorPersist:n}=this.props,{mainFormValue:o}=this.state,i={errors:ta({},e)};return(!n||-1!==o.indexOf(void 0))&&(Object.keys(i.errors).length>0||(t.forEach(((e,t)=>{i.errors=ta(ta({},i.errors),this.validateValue(o[t],e.props).errors)})),Object.keys(i.errors).length>0))}resetForm(){const{refs:e}=this.state,{components:t}=this.props;e.forEach((e=>{var t;(null==(t=e.current)?void 0:t.reset)&&e.current.reset()})),this.setState({errors:{},mainError:null,mainFormValue:na.getMainFormValue(t)})}showMainError(e){this.setState({mainError:e})}submitForm(){const{errors:e,mainFormValue:t}=this.state,{errorPersist:n,onSubmit:o,validate:i,validationmessage:r}=this.props;n&&(o(t),this.resetForm()),0===Object.keys(e).length&&o&&"function"==typeof o&&(i&&i(t)?this.showMainError(r):(o(t),this.resetForm()))}render(){const{addValueOnFieldChange:e,components:n,buttonName:o,disabled:i,displayType:r,error:s}=this.props,{mainError:a,refs:l,errors:c}=this.state;return t().createElement("div",null,t().createElement("div",{className:this.getFormCssClasses()},t().createElement(yi,null,n.map(((e,n)=>{const o=e.name;console.log("ComponentName",o);const s=e.props,{onChange:a,value:c}=s,u=((e,t)=>{var n={};for(var o in e)Qs.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Xs)for(var o of Xs(e))t.indexOf(o)<0&&Zs.call(e,o)&&(n[o]=e[o]);return n})(s,["onChange","value"]);return t().createElement(li,{size:`md-${e.size||"12"} lg-${e.size||"12"}`,key:e.props.name},t().createElement(o,(h=ta({disabled:i||e.props.disabled,onChange:this.handleOnChange.bind(this,e,n)},u),d={label:"inline"===r?"":e.props.label,error:this.getComponentsError(e),ref:l[n],value:c},Ys(h,Js(d)))));var h,d}))),e?null:t().createElement("span",{className:this.getButtonClassName(),ref:this.submitButtonRef},t().createElement(U,{disabled:this.hasMainFormErrors(c),className:"tyk-editable-list__submit-btn",onClick:this.submitForm,theme:"default",type:"button",size:"inline"===r?"sm":"md"},o||"ADD"))),s||a?t().createElement("div",{className:"tyk-editable-list-main-error"},t().createElement("p",{className:"error-message"},s||a)):null)}}na.propTypes={addValueOnFieldChange:r().bool,noLabels:r().bool,buttonName:r().string,buttonStyle:r().string,components:r().instanceOf(Array),displayType:r().string,disabled:r().bool,getMainFormButtonWidth:r().func,error:r().string,errorPersist:r().bool,onSubmit:r().func,validate:r().func,validationmessage:r().string};const oa=na;var ia=Object.defineProperty,ra=Object.getOwnPropertySymbols,sa=Object.prototype.hasOwnProperty,aa=Object.prototype.propertyIsEnumerable,la=(e,t,n)=>t in e?ia(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ca=(e,t)=>{for(var n in t||(t={}))sa.call(t,n)&&la(e,n,t[n]);if(ra)for(var n of ra(t))aa.call(t,n)&&la(e,n,t[n]);return e};class ua extends e.Component{static getItemListValue(e){let t=null;return"string"==typeof e&&(t=e),"[object Object]"===Object.prototype.toString.call(e)&&(t=e.name),ns(e)&&(t=Us(e,"dd/MM/yyyy")),t}static getListItemCssClass(e){const t=[];return"inline"===e&&t.push("tyk-editable-list-item--inline"),t.join(" ")}constructor(t){super(t);const{value:n}=this.props;this.state={initialValue:n||"",value:n||[],buttonWidth:0},this.startIndex=1,this.handleFormSubmit=this.handleFormSubmit.bind(this),this.getMainFormButtonWidth=this.getMainFormButtonWidth.bind(this),this.dropdownListItemRef=(0,e.createRef)()}static getDerivedStateFromProps(e,t){const n={};return e.value&&JSON.stringify(e.value)!==JSON.stringify(t.initialValue)&&(n.value=e.value||[],n.initialValue=e.value||""),n.value?n:null}handleFormSubmit(e){const t=this.addValues(e);this.setState((e=>ca(ca({},e),t)),(()=>{this.triggerOnChange(t.value.length-1,null,e)}))}handleItemUpdate(e,t){let n;this.setState((o=>{const i=ca({},o);return n=(0,pe.fromJS)(i.value[e].value).toJS(),i.value[e].value=t,i.value[e].editMode=!1,i}),(()=>{this.triggerOnChange(e,n,t)}))}handleChildrenOnChange(e,t){let n;this.setState((o=>{const i=ca({},o);return n=(0,pe.fromJS)(i.value[e].children).toJS(),i.value[e].children=t,i}),(()=>{this.triggerOnChange(e,n,t)}))}getListItemsCssClass(e){const{config:t}=this.props,n=["tyk-editable-list-items"];return n.push(t.displayType||"table"),"inline"===e&&n.push("tyk-editable-list-items--inline"),n.join(" ")}getFormInputKey(){return this.startIndex+=1,this.startIndex}getListItemText(e){const{config:n}=this.props;let o=null;switch(n.displayType){case"list":case"inline":o=e.value.reduce(((t,n,o)=>{const i=ua.getItemListValue(n);let r=", ";return o===e.value.length-1&&(r=""),t+i+r}),"");break;default:o=t().createElement(yi,null,n.components.map(((n,o)=>t().createElement(li,{key:this.getFormInputKey(),size:`md-${n.size} lg-${n.size}`},ua.getItemListValue(e.value[o])))))}return o}getMainFormButtonWidth(e){this.setState({buttonWidth:e})}setItemEditMode(e){const t=this.closeListItems();this.setState((n=>{const o=ca({},n);return o.value=t,o.value[e].editMode=!o.value[e].editMode,o}))}isInList(e,t){const{value:n}=this.state;let o=!1;return n.forEach(((n,i)=>{JSON.stringify(n.value)===JSON.stringify(t)&&(o=!(e>=0&&i===e))})),o}addValues(e){const{value:t}=this.state,{config:n}=this.props,o={editMode:!1,value:e},i={value:t.slice(0)};return n.children&&(o.children=[]),i.value.push(o),i}removeListItem(e){let t;this.setState((n=>{const o=n.value.slice(0);return t=o.splice(e,1),{value:o}}),(()=>{this.triggerOnChange(e,t,null)}))}closeListItems(){const{value:e}=this.state;return e.map((e=>{const t=ca({},e);return t.editMode?(t.editMode=!1,t):t}))}triggerOnChange(e,t,n){const{onChange:o}=this.props,{value:i}=this.state;o&&"function"==typeof o&&o(i.length?i:null,e,t,n)}genListItem(e,n){var o;const{config:i,disabled:r}=this.props,{buttonWidth:s,value:a}=this.state,l=(0,pe.fromJS)(i.components).toJS();return e.value.forEach(((e,t)=>{l[t].props.value=e})),t().createElement("li",{key:n,className:ua.getListItemCssClass(i.displayType),ref:this.dropdownListItemRef},t().createElement("div",{className:`tyk-editable-list-item__text ${i.displayType||"table"}${e.editMode?" edit-mode-wrapper":""}`},e.editMode?t().createElement(t().Fragment,null,t().createElement(oa,{buttonName:"Update",noLabels:i.noLabels,disabled:r,displayType:i.displayType,components:l,onSubmit:this.handleItemUpdate.bind(this,n),validate:this.isInList.bind(this,n),validationmessage:"This value is already in the list"}),t().createElement("button",{type:"button",className:"tyk-editable-list-action__button on-edit",onClick:this.removeListItem.bind(this,n),"aria-label":"remove"},t().createElement(g,{type:"trash"}))):t().createElement(t().Fragment,null,this.getListItemText(e,n),t().createElement("div",{className:"tyk-editable-list-item__controls",style:{display:"block",width:"inline"===i.displayType?"auto":`${s+60}px`}},t().createElement("button",{disabled:r,type:"button",className:"tyk-editable-list-action__button",onClick:this.setItemEditMode.bind(this,n),"aria-label":"edit"},t().createElement(g,{type:"edit"})),t().createElement("button",{disabled:r,type:"button",className:"tyk-editable-list-action__button",onClick:this.removeListItem.bind(this,n),"aria-label":"remove"},t().createElement(g,{type:"trash"}))))),i.children?t().createElement(ua,{disabled:r,onChange:this.handleChildrenOnChange.bind(this,n),config:i.children.config,value:(null==(o=a[n])?void 0:o.children)||[]}):null)}genList(){const{config:e}=this.props,{buttonWidth:n,value:o}=this.state;return o&&0!==o.length?t().createElement(t().Fragment,null,"table"!==e.displayType&&e.displayType?null:t().createElement("div",{className:"tyk-editable-list__header",style:{paddingRight:`${n+60}px`}},t().createElement(yi,null,e.components.map(((e,n)=>t().createElement(li,{key:e.props.label||n,size:`md-${e.size||12} lg-${e.size||12}`},e.props.label))))),t().createElement("ul",{className:this.getListItemsCssClass(e.displayType)},o.map(((e,t)=>this.genListItem(e,t))))):null}render(){const{addValueOnFieldChange:e,config:n,error:o,disabled:i,label:r}=this.props,s=document.querySelector(n.appendTo)||document.querySelector("body");return t().createElement("div",{className:"tyk-editable-list"},r?t().createElement("label",null,r):null,t().createElement(oa,{addValueOnFieldChange:e,components:n.components,buttonName:n.formButtonTitle,buttonStyle:n.formButtonStyle,disabled:i,error:o,errorPersist:!!o,noLabels:n.noLabels,onSubmit:this.handleFormSubmit,validate:this.isInList.bind(this,-1),validationmessage:"This value is already in the list",getMainFormButtonWidth:this.getMainFormButtonWidth}),n.appendTo?dt().createPortal(this.genList(),s):this.genList())}}ua.propTypes={addValueOnFieldChange:r().bool,disabled:r().bool,error:r().string,config:r().instanceOf(Object),onChange:r().func,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),value:r().oneOfType([r().instanceOf(Array),r().instanceOf(Object)])};const ha=ua;function da({label:e,addButtonName:n,onAddRow:o,disabled:i,readOnly:r}){return t().createElement("div",{className:"editable-list__header"},e?t().createElement("label",null,e):null,!i&&!r&&t().createElement(U,{theme:"primary rounded-corners",onClick:o},n||"Add"))}da.propTypes={disabled:r().bool,readOnly:r().bool,onAddRow:r().func,addButtonName:r().string,label:r().oneOfType([r().string,r().element,r().node])};const pa=da;function ga({fields:e,readOnly:n}){return t().createElement("li",{className:"editable-list__item editable-list__item-header"},e.map((e=>{var n,o;return t().createElement("div",{key:(null==(n=null==e?void 0:e.props)?void 0:n.label)||JSON.stringify(e),className:`editable-list__item-cell editable-list__item--size-${(null==e?void 0:e.size)||12}`},null==(o=null==e?void 0:e.props)?void 0:o.label)})),t().createElement("div",{className:`editable-list__item-cell editable-list__item-action ${n&&"editable-list__item-action--read-only"}`},"Delete"))}ga.propTypes={fields:r().instanceOf(Array),readOnly:r().bool};const ma=ga;var fa=Object.defineProperty,ya=Object.defineProperties,va=Object.getOwnPropertyDescriptors,ba=Object.getOwnPropertySymbols,wa=Object.prototype.hasOwnProperty,xa=Object.prototype.propertyIsEnumerable,ka=(e,t,n)=>t in e?fa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Ca({fields:e,disabled:n,readOnly:o,errors:i,components:r,onChange:s,onDelete:a,value:l,rowIndex:c}){return t().createElement("li",{className:"editable-list__item"},r.map(((r,a)=>{var u,h,d;const p=e[a],g="function"==typeof p?p(c,a):p;return t().createElement("div",{key:`${c}-${a}`,className:`editable-list__item-cell editable-list__item--size-${(null==(u=e[a])?void 0:u.size)||12}`},t().createElement(r,(m=((e,t)=>{for(var n in t||(t={}))wa.call(t,n)&&ka(e,n,t[n]);if(ba)for(var n of ba(t))xa.call(t,n)&&ka(e,n,t[n]);return e})({},null==g?void 0:g.props),f={label:"",value:l[a],onChange:s.bind(null,a),error:null==i?void 0:i[a],disabled:n||(null==(h=null==g?void 0:g.props)?void 0:h.disabled),readOnly:o||(null==(d=null==g?void 0:g.props)?void 0:d.readOnly)},ya(m,va(f)))));var m,f})),t().createElement("div",{className:`editable-list__item-cell editable-list__item-action ${o&&"editable-list__item-action--read-only"}`},t().createElement(U,{iconOnly:!0,iconType:"trash-alt",theme:"primary-link",onClick:a,disabled:o||n})))}Ca.propTypes={disabled:r().bool,readOnly:r().bool,rowIndex:r().oneOfType([r().string,r().number]),fields:r().instanceOf(Array),errors:r().instanceOf(Array),components:r().instanceOf(Array),value:r().instanceOf(Array),onChange:r().func,onDelete:r().func};const $a=Ca;var Sa=Object.defineProperty,Ea=Object.defineProperties,Oa=Object.getOwnPropertyDescriptors,Ta=Object.getOwnPropertySymbols,Aa=Object.prototype.hasOwnProperty,_a=Object.prototype.propertyIsEnumerable,La=(e,t,n)=>t in e?Sa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;let Ma=1;function Ra({addButtonName:n,disabled:o,readOnly:i,fields:r,label:s,error:a,value:l=[],onChange:c=(()=>{}),hideOnEmpty:u=!0,wrapperClassName:h=""}){const[d,p]=(0,e.useState)(null),g=(e,t,n,o)=>{var i;const s=l?[...l]:[];if(l){const o=[...s[e]];o[t]=n,s[e]=o,s[e].id=l[e].id}else s[e]=[...new Array(r.length)],s[e][t]=n;if((null==(i=null==d?void 0:d[e])?void 0:i[t])&&o){const n=[...d],o=[...n[e]];o[t]=null,n[e]=o,p(n)}c(s)},m=(0,e.useMemo)((()=>r.map((n=>{const o="function"==typeof n?n():n;return i=(null==o?void 0:o.component)||null,n=>{var o=n,{onChange:r,validate:s,error:a}=o,l=((e,t)=>{var n={};for(var o in e)Aa.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ta)for(var o of Ta(e))t.indexOf(o)<0&&_a.call(e,o)&&(n[o]=e[o]);return n})(o,["onChange","validate","error"]);const[c,u]=(0,e.useState)(null),h=(0,e.useCallback)((e=>{const t=(null==e?void 0:e.target)?["radio","checkbox"].includes(e.target.type)?e.target.checked:null==e?void 0:e.target.value:e;let n=!0;if(s&&"function"==typeof s){const e=s(t);n=!e,u(e)}r(t,n)}),[s,r]);return t().createElement(i,(d=((e,t)=>{for(var n in t||(t={}))Aa.call(t,n)&&La(e,n,t[n]);if(Ta)for(var n of Ta(t))_a.call(t,n)&&La(e,n,t[n]);return e})({},l),Ea(d,Oa({onChange:h,error:c||a}))));var d};var i}))),[]),f=e=>{if(!l)return;const t=[...l];t.splice(e,1),c(t)};return t().createElement("div",{className:`editable-list__wrapper tyk-form-group tyk-form-group--default ${a?"has-error":""} ${h}`},t().createElement(pa,{disabled:o,readOnly:i,label:s,addButtonName:n,onAddRow:()=>{const e=((e,t)=>{var n;return null==(n=t||[[void 0,void 0]])?void 0:n.map((t=>null==t?void 0:t.map(((t,n)=>{var o,i;return null==(i=(o=e[n].props).validate)?void 0:i.call(o,t)}))))})(r,l);if((e=>{var t;return Boolean(null==(t=null==e?void 0:e.flat())?void 0:t.filter(Boolean).length)})(e))return void p(e);const t=[...new Array(r.length)];t.id="row-"+Ma++,c([...l,t])}}),(null==l?void 0:l.length)||!u?t().createElement("ul",{className:"editable-list__list"},(l||[[]]).map(((e,n)=>t().createElement($a,{key:e.id||n,rowIndex:n,disabled:o,readOnly:i,fields:r,onChange:g.bind(null,n),onDelete:f.bind(null,n),value:e,errors:null==d?void 0:d[n],components:m}))),t().createElement(ma,{fields:r,readOnly:i})):null,a&&"true"!==a&&"false"!==a?t().createElement("p",{className:"tyk-form-control__error-message"},a):null)}Ra.propTypes={disabled:r().bool,readOnly:r().bool,addButtonName:r().string,label:r().oneOfType([r().string,r().element,r().node]),fields:r().instanceOf(Array),onChange:r().func,value:r().oneOfType([r().instanceOf(Object),r().instanceOf(Array)]),error:r().string,hideOnEmpty:r().bool,wrapperClassName:r().string};const Na=Ra;var Ia=Object.defineProperty,Pa=Object.defineProperties,Da=Object.getOwnPropertyDescriptors,Fa=Object.getOwnPropertySymbols,Ba=Object.prototype.hasOwnProperty,Wa=Object.prototype.propertyIsEnumerable,Ha=(e,t,n)=>t in e?Ia(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function ja(n){var o=n,{error:i,theme:r,labelwidth:s,wrapperClassName:a="",id:l,label:c,note:u,accept:h,value:d,onChange:p}=o,m=((e,t)=>{var n={};for(var o in e)Ba.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Fa)for(var o of Fa(e))t.indexOf(o)<0&&Wa.call(e,o)&&(n[o]=e[o]);return n})(o,["error","theme","labelwidth","wrapperClassName","id","label","note","accept","value","onChange"]);const f=(0,e.useRef)();return t().createElement("div",{className:function(){const e=[a,"tyk-form-group"],t=r?r.split(" "):[];return t.length&&t.forEach((t=>{e.push(`tyk-form-group--${t}`)})),s&&e.push("tyk-form-group--label-has-width"),i&&e.push("has-error"),e.join(" ")}()},c?t().createElement("label",{htmlFor:l,style:function(){const e={};return s&&(e.flexBasis=s),e}()},c):null,t().createElement("div",{className:"tyk-form-control__wrapper"},t().createElement("div",{className:"tyk-file-input__wrapper",style:function(){const e={};return s&&(e.flexBasis=`calc(100% - ${s} - 20px)`),e}()},t().createElement("input",(y=((e,t)=>{for(var n in t||(t={}))Ba.call(t,n)&&Ha(e,n,t[n]);if(Fa)for(var n of Fa(t))Wa.call(t,n)&&Ha(e,n,t[n]);return e})({accept:h,className:"tyk-form-control"},m),Pa(y,Da({onChange:function(e){p(e.target.files)},ref:f,type:"file"})))),f.current&&f.current.files.length>0?t().createElement("button",{onClick:function(){f.current.value="",p("")},type:"button","aria-label":"clear value"},t().createElement(g,{type:"times"})):null),u?t().createElement("p",{className:"tyk-form-control__help-block"},u):null),i&&"true"!==i&&"false"!==i?t().createElement("p",{className:"tyk-form-control__error-message"},i):null);var y}ja.propTypes={accept:r().string,disabled:r().bool,id:r().string,error:r().oneOfType([r().string,r().bool]),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,placeholder:r().string,theme:r().string,value:r().instanceOf(Object),wrapperClassName:r().string};const za=ja;var Va=Object.defineProperty,Ua=Object.defineProperties,Ga=Object.getOwnPropertyDescriptors,Ka=Object.getOwnPropertySymbols,qa=Object.prototype.hasOwnProperty,Ya=Object.prototype.propertyIsEnumerable,Ja=(e,t,n)=>t in e?Va(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Xa extends e.Component{static getAddon(e){return t().createElement("div",{className:"tyk-input-group__addon"},e)}constructor(e){super(e);const{value:t}=this.props;this.state={initValue:t,stateValue:t},this.handleOnChange=this.handleOnChange.bind(this)}componentDidUpdate(e){const{isfield:t,value:n,onChange:o}=this.props;t||e.value===n||this.setState({stateValue:n},(()=>{o&&o(n)}))}handleOnChange(e){const{onChange:t,isfield:n}=this.props,o=e.target.value;n?t(o):this.setState({stateValue:o},(()=>{t&&t(o)}))}getLabelStyles(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=e),t}getNonLabelWidth(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=`calc(100% - ${e} - 20px)`),t}getInputError(){const{error:e}=this.props;return e&&"true"!==e&&"false"!==e?t().createElement("p",{className:"tyk-form-control__error-message"},e):null}getCssClasses(){const{error:e,theme:t,labelwidth:n,inputgroupaddonleft:o,inputgroupaddonright:i}=this.props,r=["tyk-form-group"],s=t?t.split(" "):[];return s.length&&s.forEach((e=>{r.push(`tyk-form-group--${e}`)})),o&&r.push("tyk-form-group--addon-left"),i&&r.push("tyk-form-group--addon-right"),n&&r.push("tyk-form-group--label-has-width"),e&&r.push("has-error"),r.join(" ")}getInputGroupAddon(){const{inputgroupaddonleft:e,inputgroupaddonright:n}=this.props;return t().createElement("div",{className:"tyk-input-group"},e?Xa.getAddon(e):null,this.getInputComponent(),n?Xa.getAddon(n):null)}getInputComponent(){const e=this.props,{isfield:n,onChange:o,value:i}=e,r=((e,t)=>{var n={};for(var o in e)qa.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ka)for(var o of Ka(e))t.indexOf(o)<0&&Ya.call(e,o)&&(n[o]=e[o]);return n})(e,["isfield","onChange","value"]),{stateValue:s}=this.state;return t().createElement("input",(a=((e,t)=>{for(var n in t||(t={}))qa.call(t,n)&&Ja(e,n,t[n]);if(Ka)for(var n of Ka(t))Ya.call(t,n)&&Ja(e,n,t[n]);return e})({autoComplete:"off",className:"tyk-form-control"},r),l={onChange:this.handleOnChange,value:n?i:s},Ua(a,Ga(l))));var a,l}reset(){const{initValue:e}=this.state;this.setState({stateValue:e})}render(){const{label:e,id:n,inputgroupaddonleft:o,inputgroupaddonright:i,note:r,readOnly:s,value:a}=this.props;return t().createElement("div",{className:this.getCssClasses()},e?t().createElement("label",{htmlFor:n,style:this.getLabelStyles()},e):null,!s&&t().createElement("div",{className:"tyk-form-control__wrapper",style:this.getNonLabelWidth()},o||i?this.getInputGroupAddon():this.getInputComponent(),r?t().createElement("p",{className:"tyk-form-control__help-block"},r):null,this.getInputError()),s&&t().createElement("div",{className:"tyk-form-control--readonly"},a||"-"))}}Xa.propTypes={disabled:r().bool,readOnly:r().bool,id:r().string,isfield:r().bool,error:r().oneOfType([r().string,r().bool]),inputgroupaddonleft:r().oneOfType([r().element,r().node,r().string]),inputgroupaddonright:r().oneOfType([r().element,r().node,r().string]),label:r().oneOfType([r().string,r().element,r().node]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,placeholder:r().string,theme:r().string,value:r().oneOfType([r().number,r().string])};const Qa=Xa;var Za=Object.defineProperty,el=Object.defineProperties,tl=Object.getOwnPropertyDescriptors,nl=Object.getOwnPropertySymbols,ol=Object.prototype.hasOwnProperty,il=Object.prototype.propertyIsEnumerable,rl=(e,t,n)=>t in e?Za(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,sl=(e,t)=>{for(var n in t||(t={}))ol.call(t,n)&&rl(e,n,t[n]);if(nl)for(var n of nl(t))il.call(t,n)&&rl(e,n,t[n]);return e};function al(n,o){var i=n,{error:r,onChange:s,readOnly:a,id:l,inputgroupaddonleft:c,inputgroupaddonright:u,label:h,labelwidth:d,note:p,theme:g,value:m,wrapperClassName:f=""}=i,y=((e,t)=>{var n={};for(var o in e)ol.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&nl)for(var o of nl(e))t.indexOf(o)<0&&il.call(e,o)&&(n[o]=e[o]);return n})(i,["error","onChange","readOnly","id","inputgroupaddonleft","inputgroupaddonright","label","labelwidth","note","theme","value","wrapperClassName"]);const v=(0,e.useRef)();(0,e.useImperativeHandle)(o,(()=>({focus:()=>{v.current.focus()}})));const b=e=>t().createElement("div",{className:"tyk-input-group__addon"},e),w=e=>{s(e,e.target.value)},x=()=>{return t().createElement("input",(e=sl({autoComplete:"off",className:"tyk-form-control"},y),el(e,tl({onChange:w,value:m,ref:v}))));var e};return t().createElement("div",{className:(()=>{const e=[f,"tyk-form-group"],t=g?g.split(" "):[];return t.length&&t.forEach((t=>{e.push(`tyk-form-group--${t}`)})),c&&e.push("tyk-form-group--addon-left"),u&&e.push("tyk-form-group--addon-right"),d&&e.push("tyk-form-group--label-has-width"),r&&e.push("has-error"),e.join(" ")})()},h?t().createElement("label",{htmlFor:l,style:sl({},d&&{flexBasis:d})},h):null,!a&&t().createElement("div",{className:"tyk-form-control__wrapper",style:sl({},d&&{flexBasis:`calc(100% - ${d} - 20px)`})},c||u?t().createElement("div",{className:"tyk-input-group"},c?b(c):null,x(),u?b(u):null):x(),p?t().createElement("p",{className:"tyk-form-control__help-block"},p):null,r&&"true"!==r&&"false"!==r?t().createElement("p",{className:"tyk-form-control__error-message"},r):null),a&&t().createElement("div",{className:"tyk-form-control--readonly"},m||"-"))}al.propTypes={disabled:r().bool,readOnly:r().bool,id:r().string,error:r().oneOfType([r().string,r().bool]),inputgroupaddonleft:r().oneOfType([r().element,r().node,r().string]),inputgroupaddonright:r().oneOfType([r().element,r().node,r().string]),label:r().oneOfType([r().string,r().element,r().node]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,placeholder:r().string,theme:r().string,value:r().oneOfType([r().number,r().string]),wrapperClassName:r().string};const ll=(0,e.forwardRef)(al),cl=(0,e.createContext)();function ul({item:n,itemType:o,searchValue:i,onChange:r}){const s=(0,e.useCallback)((e=>(null==e?void 0:e.length)>0?e.some((e=>{var t;return null==(t=n[e])?void 0:t.includes(i)})):JSON.stringify(n).includes(i)),[n,i]),a=(0,e.useCallback)((()=>{r(n)}),[r,n]);return t().createElement(cl.Consumer,null,(e=>s(e.fieldsToSearchOn)?t().createElement("li",null,t().createElement("div",null,t().createElement("span",{className:"tyk-multiselect-item__name"},e.itemDisplayTemplate?e.itemDisplayTemplate(n):JSON.stringify(n)),t().createElement("span",{className:"tyk-multiselect-item__controls"},t().createElement(U,{iconType:"normal"===o?"plus":"minus",iconOnly:!0,onClick:a,disabled:e.disabled||e.maxSelections&&e.maxSelections===e.nrSelectedItems&&"normal"===o}),t().createElement(U,{iconType:e.opened[n.id]?"chevron-up":"chevron-down",iconOnly:!0,onClick:()=>e.onGetItemDetails(n)}))),n.details?t().createElement(R,{collapsed:!e.opened[n.id],className:"tyk-multiselect-item__details"},((e,t)=>e.detailsDisplayTemplate?e.detailsDisplayTemplate(t):JSON.stringify(t.details))(e,n)):((e,n)=>{const{opened:o}=e;return o[n.id]?t().createElement(ye,{position:"relative"}):null})(e,n)):null))}ul.propTypes={item:r().instanceOf(Object),itemType:r().string,searchValue:r().string,onChange:r().func};const hl=ul;function dl({inputPlaceholder:n,noItemsMessage:o,items:i,onCustomSearch:r,onChange:s,customSearch:a,panelType:l,serverLoad:c,itemsPageNumber:u,itemsNrPages:h,loadMoreItems:d}){const[p,m]=(0,e.useState)(""),f=(0,e.useRef)(0),y=(0,e.useRef)(),v=(0,e.useCallback)((e=>{r?r(e):m(e)}),[r]),b=(0,e.useCallback)((e=>{let t=structuredClone(i);t=t.filter((t=>e.id!==t.id)),s(t,e)}),[i]);function w(){return t().createElement("ul",{className:"tyk-multiselect__list"+(c?"":" tyk-multiselect__list--scroll"),ref:y},i.map((e=>t().createElement(hl,{itemType:l,key:(f.current+=1,f.current),onChange:b,searchValue:a?"":p,item:e}))))}return t().createElement("div",{className:"tyk-multiselect__panel"},t().createElement(Qa,{inputgroupaddonleft:t().createElement(g,{type:"search"}),name:"search",onChange:v,placeholder:n,value:p}),i.length?c?t().createElement(At,{refChild:y,hasMore:h>u,loadMore:d,pageNumber:u},w()):w():t().createElement(be,{theme:"info"},o))}dl.propTypes={customSearch:r().bool,onCustomSearch:r().func,panelType:r().string,onChange:r().func,items:r().instanceOf(Array),itemsPageNumber:r().number,itemsNrPages:r().number,inputPlaceholder:r().string,loadMoreItems:r().func,noItemsMessage:r().string,serverLoad:r().bool};const pl=dl;var gl=Object.defineProperty,ml=Object.defineProperties,fl=Object.getOwnPropertyDescriptors,yl=Object.getOwnPropertySymbols,vl=Object.prototype.hasOwnProperty,bl=Object.prototype.propertyIsEnumerable,wl=(e,t,n)=>t in e?gl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const xl=(e,t)=>t.filter((t=>!e.find((e=>e.id===t.id))));function kl({customSearch:n,entityNamePlural:o,disabled:i,error:r,getItemDetails:s,itemDisplayTemplate:a,detailsDisplayTemplate:l,fieldsToSearchOn:c,items:u,itemsPageNumber:h,itemsNrPages:d,loadMoreItems:p,maxSelections:g,note:m,value:f,onChange:y,wrapperClassName:v=""}){const[b,w]=(0,e.useState)({}),x=(0,e.useCallback)((e=>{w((t=>{return n=((e,t)=>{for(var n in t||(t={}))vl.call(t,n)&&wl(e,n,t[n]);if(yl)for(var n of yl(t))bl.call(t,n)&&wl(e,n,t[n]);return e})({},t),o={[e.id]:!t[e.id]},ml(n,fl(o));var n,o})),s&&s(e)}),[s]),k=(0,e.useCallback)((()=>[v,"tyk-multiselect",r&&"has-error"].filter(Boolean).join(" ")),[v,r]),C=(0,e.useCallback)(((e,t)=>{const n=structuredClone(f);n.unshift(t),y(n,t,"added")}),[f]),$=(0,e.useCallback)(((e,t)=>{y(e,t,"removed")}),[u]),S=(0,e.useMemo)((()=>({disabled:i,itemDisplayTemplate:a,detailsDisplayTemplate:l,fieldsToSearchOn:c,maxSelections:g,nrSelectedItems:f.length,onGetItemDetails:x,opened:b})),[i,a,l,c,g,f,x,b]);return t().createElement(t().Fragment,null,t().createElement("div",{className:k()},t().createElement(cl.Provider,{value:S},t().createElement("div",{className:"tyk-multiselect__header"},t().createElement("div",null,f.length," ","Selected"," ",o),t().createElement("div",null,"Select from existing",o)),t().createElement("div",{className:"tyk-multiselect__panel-wrapper"},t().createElement(pl,{inputPlaceholder:`Search through selected ${o}`,noItemsMessage:`Selected ${o} will show here`,items:f,onChange:$,panelType:"selected"}),t().createElement(pl,{inputPlaceholder:`Search existing ${o}`,noItemsMessage:`No ${o} to display`,entityNamePlural:o,customSearch:!!n,onCustomSearch:n,items:xl(f,u),onChange:C,serverLoad:!!p,loadMoreItems:p,itemsPageNumber:h,itemsNrPages:d,panelType:"normal"})))),t().createElement("div",null,m?t().createElement("p",{className:"tyk-form-control__help-block"},m):null),r&&"true"!==r&&"false"!==r?t().createElement("p",{className:"tyk-form-control__error-message"},r):null)}kl.propTypes={customSearch:r().func,disabled:r().bool,error:r().string,entityNamePlural:r().string,items:r().instanceOf(Array),itemDisplayTemplate:r().func,detailsDisplayTemplate:r().func,fieldsToSearchOn:r().instanceOf(Array),onChange:r().func,getItemDetails:r().func,itemsPageNumber:r().number,itemsNrPages:r().number,loadMoreItems:r().func,note:r().string,maxSelections:r().number,value:r().instanceOf(Array),wrapperClassName:r().string};const Cl=kl;var $l=Object.defineProperty,Sl=Object.defineProperties,El=Object.getOwnPropertyDescriptors,Ol=Object.getOwnPropertySymbols,Tl=Object.prototype.hasOwnProperty,Al=Object.prototype.propertyIsEnumerable,_l=(e,t,n)=>t in e?$l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ll=(e,t)=>{for(var n in t||(t={}))Tl.call(t,n)&&_l(e,n,t[n]);if(Ol)for(var n of Ol(t))Al.call(t,n)&&_l(e,n,t[n]);return e};function Ml(e){var n=e,{label:o,input:i,note:r,inline:s,nospace:a,theme:l="",disabled:c,readOnly:u,wrapperClassName:h=""}=n,d=((e,t)=>{var n={};for(var o in e)Tl.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ol)for(var o of Ol(e))t.indexOf(o)<0&&Al.call(e,o)&&(n[o]=e[o]);return n})(n,["label","input","note","inline","nospace","theme","disabled","readOnly","wrapperClassName"]);const p=[s?"tyk-radio--inline":"tyk-radio",h,a&&"no-margin",...l?l.split(" ").filter(Boolean).map((e=>`tyk-radio--theme-${e}`)):[],(u||c)&&"tyk-radio--is-disabled"].filter(Boolean).join(" ");return t().createElement("div",{className:p},t().createElement("label",null,t().createElement("input",(g=Ll(Ll({},i),d),Sl(g,El({type:"radio",disabled:u||c})))),o),r&&t().createElement("p",{className:"tyk-form-control__help-block"},r));var g}Ml.propTypes={disabled:r().bool,readOnly:r().bool,inline:r().bool,theme:r().string,input:r().instanceOf(Object),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),name:r().string,nospace:r().bool,value:r().string,note:r().oneOfType([r().string,r().element,r().node]),wrapperClassName:r().string};const Rl=Ml;var Nl=Object.defineProperty,Il=Object.defineProperties,Pl=Object.getOwnPropertyDescriptors,Dl=Object.getOwnPropertySymbols,Fl=Object.prototype.hasOwnProperty,Bl=Object.prototype.propertyIsEnumerable,Wl=(e,t,n)=>t in e?Nl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Hl(n){const o=n,{value:i,onChange:r,onBlur:s,isfield:a,label:l,labelwidth:c,id:u,note:h,readOnly:d,options:p,error:g,theme:m,wrapperClassName:f=""}=o,y=((e,t)=>{var n={};for(var o in e)Fl.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Dl)for(var o of Dl(e))t.indexOf(o)<0&&Bl.call(e,o)&&(n[o]=e[o]);return n})(o,["value","onChange","onBlur","isfield","label","labelwidth","id","note","readOnly","options","error","theme","wrapperClassName"]),[v,b]=(0,e.useState)(i);(0,e.useEffect)((()=>{a||v===i||(b(i),r&&r(i))}),[v,i]);const w=(0,e.useCallback)((e=>{const t=p.find((t=>t.id===e.target.value));a||b(t),r(t.id?t:null)}),[p,a,r]),x=(0,e.useCallback)((()=>{s&&s(i)}),[s]),k=(0,e.useCallback)((()=>g&&"true"!==g&&"false"!==g?t().createElement("p",{className:"tyk-form-control__error-message"},g):null),[g]),C=(0,e.useCallback)((()=>["tyk-form-group",f,...m?m.split(" ").map((e=>`tyk-form-group--${e}`)):[],c&&"tyk-form-group--label-has-width",g&&"has-error"].filter(Boolean).join(" ")),[f,m,c,g]),$=(0,e.useCallback)((()=>c?{flexBasis:c}:{}),[c]),S=(0,e.useCallback)((()=>c?{flexBasis:`calc(100% - ${c} - 20px)`}:{}),[c]),E=(0,e.useCallback)((()=>{const e=a&&i?i:v;return t().createElement("select",(n=((e,t)=>{for(var n in t||(t={}))Fl.call(t,n)&&Wl(e,n,t[n]);if(Dl)for(var n of Dl(t))Bl.call(t,n)&&Wl(e,n,t[n]);return e})({className:"tyk-form-control tyk-select"},y),o={onChange:w,onBlur:x,value:e?e.id:""},Il(n,Pl(o))),p.map((e=>t().createElement("option",{key:e.id,value:e.id},e.name))));var n,o}),[a,i,v,w,x,p,y]);return t().createElement("div",{className:C()},l?t().createElement("label",{htmlFor:u,style:$()},l):null,!d&&t().createElement("div",{className:"tyk-form-control__wrapper",style:S()},E(),h?t().createElement("p",{className:"tyk-form-control__help-block"},h):null,k()),d&&t().createElement("div",{className:"tyk-form-control--readonly"},i||"-"))}Hl.propTypes={disabled:r().bool,readOnly:r().bool,id:r().string,isfield:r().bool,error:r().oneOfType([r().string,r().bool]),options:r().instanceOf(Array),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,name:r().string,note:r().string,onBlur:r().func,onChange:r().func,placeholder:r().string,theme:r().string,value:r().oneOfType([r().string,r().object]),wrapperClassName:r().string};const jl=Hl;var zl=Object.defineProperty,Vl=Object.defineProperties,Ul=Object.getOwnPropertyDescriptors,Gl=Object.getOwnPropertySymbols,Kl=Object.prototype.hasOwnProperty,ql=Object.prototype.propertyIsEnumerable,Yl=(e,t,n)=>t in e?zl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Jl(e){const{checkboxalticon:n,items:o,itemTemplate:i,value:r,noItemsMessage:s="No items in the list",onChange:a,theme:l,primaryKey:c,wrapperClassName:u=""}=e,h=e=>{const t=structuredClone(r),n=t.findIndex((t=>JSON.stringify(t)===JSON.stringify(Array.isArray(t)?e.target.value.split(","):e.target.value)));if(e.target.checked&&-1===n){const n=e.target.value.split(","),o=n.length>1?n:e.target.value;t.push(o)}else!e.target.checked&&n>-1&&t.splice(n,1);a&&a(t)},d=e=>{const t=[];return n&&t.push("tyk-selectable-list__item--with-icon"),e&&t.push("tyk-selectable-list__item--active"),t.join(" ")};return t().createElement(jt,(p=((e,t)=>{for(var n in t||(t={}))Kl.call(t,n)&&Yl(e,n,t[n]);if(Gl)for(var n of Gl(t))ql.call(t,n)&&Yl(e,n,t[n]);return e})({},e),Vl(p,Ul({theme:l||"default",className:`tyk-selectable-list ${u}`}))),o.length?o.map(((e,o)=>{return t().createElement(jt.Item,{key:o,className:d(r.includes(e[c]))},t().createElement("label",null,t().createElement("div",{className:"tyk-selectable-list__item"},i?i(e):e.name),t().createElement("input",{type:"checkbox",checked:(s=r,a=e[c],Boolean(s.find((e=>JSON.stringify(a)===JSON.stringify(e))))),onChange:h.bind(e),value:e[c]}),n?t().createElement(g,{type:n}):null));var s,a})):t().createElement("li",{className:"tyk-selectable-list__no-items-message"},t().createElement(be,{theme:"info"},s)));var p}Jl.propTypes={items:r().instanceOf(Array),itemTemplate:r().oneOfType([r().node,r().element,r().string,r().func]),value:r().instanceOf(Array),onChange:r().func,primaryKey:r().string,noItemsMessage:r().string,checkboxalticon:r().oneOfType([r().node,r().element,r().string]),theme:r().string,wrapperClassName:r().string},Jl.defaultProps={items:[],primaryKey:"id",value:[]};const Xl=Jl;var Ql=Object.defineProperty,Zl=Object.getOwnPropertySymbols,ec=Object.prototype.hasOwnProperty,tc=Object.prototype.propertyIsEnumerable,nc=(e,t,n)=>t in e?Ql(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,oc=(e,t)=>{for(var n in t||(t={}))ec.call(t,n)&&nc(e,n,t[n]);if(Zl)for(var n of Zl(t))tc.call(t,n)&&nc(e,n,t[n]);return e};function ic(e){var n=e,{id:o,input:i,label:r,note:s,error:a,theme:l,labelwidth:c,value:u,readOnly:h,wrapperClassName:d}=n,p=((e,t)=>{var n={};for(var o in e)ec.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Zl)for(var o of Zl(e))t.indexOf(o)<0&&tc.call(e,o)&&(n[o]=e[o]);return n})(n,["id","input","label","note","error","theme","labelwidth","value","readOnly","wrapperClassName"]);const g=["tyk-form-group",d,...l?l.split(" ").map((e=>`tyk-form-group--${e}`)):[],c&&"tyk-form-group--label-has-width",a&&"has-error"].filter(Boolean).join(" ");return t().createElement("div",{className:g},r?t().createElement("label",{htmlFor:o,style:c?{flexBasis:c}:{}},r):null,!h&&t().createElement("div",{className:"tyk-form-control__wrapper",style:c?{flexBasis:`calc(100% - ${c} - 20px)`}:{}},t().createElement("textarea",oc(oc({className:"tyk-form-control"},p),i),u),s?t().createElement("p",{className:"tyk-form-control__help-block"},s):null,a&&"true"!==a&&"false"!==a?t().createElement("p",{className:"tyk-form-control__error-message"},a):null),h&&t().createElement("div",{className:"tyk-form-control--readonly"},u||"-"))}ic.propTypes={disabled:r().bool,readOnly:r().bool,input:r().instanceOf(Object),error:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,id:r().string,theme:r().string,value:r().string,wrapperClassName:r().string};const rc=ic,sc=(0,e.createContext)();class ac extends e.Component{static getNotchCssClasses(e){return["tyk-toggle__item-notch",`tyk-toggle__item-notch--${e.type}`].join(" ")}constructor(t){super(t),this.itemRef=(0,e.createRef)()}componentDidMount(){const{context:e,value:t}=this.props;e.value===t&&e.saveSelectedRef(this.itemRef)}componentDidUpdate(e){const{context:t,value:n}=this.props;e.context.value!==t.value&&t.value===n&&t.saveSelectedRef(this.itemRef)}onChange(e){const{context:t,value:n}=this.props,{disabled:o,readOnly:i}=t;o||i||t.onItemSelected("single"===t.type?!t.value:n,e)}render(){const{context:e,label:n,name:o,value:i}=this.props;return t().createElement("li",{className:"tyk-toggle__item "+(!e.value||"single"!==e.type&&e.value!==i?"":"tyk-toggle__item--active"),ref:this.itemRef},t().createElement("label",null,t().createElement("input",{type:"single"===e.type?"checkbox":"radio",name:o,checked:e.value===i,onChange:this.onChange.bind(this),value:i}),n?t().createElement("span",null,n):t().createElement("span",{className:"empty-toggle"}," "),"single"===e.type?t().createElement("span",{className:ac.getNotchCssClasses(e)}):null))}}ac.propTypes={context:r().instanceOf(Object),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),name:r().string,value:r().string};const lc=ac;var cc=Object.defineProperty,uc=Object.defineProperties,hc=Object.getOwnPropertyDescriptors,dc=Object.getOwnPropertySymbols,pc=Object.prototype.hasOwnProperty,gc=Object.prototype.propertyIsEnumerable,mc=(e,t,n)=>t in e?cc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function fc(e,n){var o=e,{children:i}=o,r=((e,t)=>{var n={};for(var o in e)pc.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&dc)for(var o of dc(e))t.indexOf(o)<0&&gc.call(e,o)&&(n[o]=e[o]);return n})(o,["children"]);return t().createElement(sc.Consumer,null,(e=>{return t().createElement(lc,(o=((e,t)=>{for(var n in t||(t={}))pc.call(t,n)&&mc(e,n,t[n]);if(dc)for(var n of dc(t))gc.call(t,n)&&mc(e,n,t[n]);return e})({},r),uc(o,hc({context:e,ref:n}))),i);var o}))}fc.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string])};const yc=(0,e.forwardRef)(fc);function vc({className:n,disabled:o,readOnly:i,size:r,theme:s,direction:a,onDark:l,wrapperClassName:c="",onChange:u,labelwidth:h,label:d,separated:p,children:g,type:m,value:f,error:y}){const[v,b]=(0,e.useState)(null),w=(0,e.useRef)(),x=(0,e.useRef)(),k=[c,n,"tyk-toggle",`tyk-toggle--disabled-${i||o}`,`tyk-toggle--${r||"md"}`,`tyk-toggle--${s}`,`tyk-toggle--${a}`,l&&"tyk-toggle--on-dark"].filter(Boolean).join(" "),C=(0,e.useCallback)(((e,t)=>{u&&u(e,t)}),[u]),$=(0,e.useCallback)((()=>h?{flexBasis:h}:{}),[h]),S=(0,e.useCallback)((()=>{if(!v||p)return{};const e=v.current.offsetWidth;return{left:v.current.getBoundingClientRect().left-x.current.getBoundingClientRect().left+4+"px",width:e-8+"px"}}),[v,p]),E=(0,e.useMemo)((()=>({disabled:o,readOnly:i,onItemSelected:C,saveSelectedRef:b,separated:p,type:m,value:f})),[o,i,C,p,m,f]);return t().createElement(t().Fragment,null,t().createElement("div",{className:k,ref:x},t().createElement(sc.Provider,{value:E},d?t().createElement("label",{className:"tyk-toggle__label",style:$()},d):null,t().createElement("ul",{className:`tyk-toggle__list tyk-toggle__list--${m} ${y&&"tyk-toggle__list--has-error"} tyk-toggle__list--${p?"separated":"not-separated"}`},g,"multiple"!==m||p?null:t().createElement("li",{className:"tyk-toggle__notch",ref:w,style:S()})))),y&&t().createElement("p",{className:"tyk-form-control__error-message"},y))}vc.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,disabled:r().bool,readOnly:r().bool,error:r().string,onChange:r().func,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,theme:r().string,type:r().string,size:r().string,separated:r().bool,direction:r().string,value:r().oneOfType([r().bool,r().string]),onDark:r().bool,wrapperClassName:r().string},vc.defaultProps={separated:!1,theme:"primary",type:"single",direction:"row"},vc.Item=yc;const bc=vc,wc={FORM_DEBOUNCE:200};function xc(e,t){wc[e]=t}const kc=wc;var Cc=Object.defineProperty,$c=Object.defineProperties,Sc=Object.getOwnPropertyDescriptors,Ec=Object.getOwnPropertySymbols,Oc=Object.prototype.hasOwnProperty,Tc=Object.prototype.propertyIsEnumerable,Ac=(e,t,n)=>t in e?Cc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,_c=(e,t)=>{for(var n in t||(t={}))Oc.call(t,n)&&Ac(e,n,t[n]);if(Ec)for(var n of Ec(t))Tc.call(t,n)&&Ac(e,n,t[n]);return e},Lc=(e,t)=>$c(e,Sc(t));function Mc(e,t){return t.split(/[\][.]/).filter(Boolean).reduce(((e,t)=>e?e[t]:e),e)}const Rc=(n,o)=>i=>{var r,s=i,{field:a,form:l}=s,c=((e,t)=>{var n={};for(var o in e)Oc.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ec)for(var o of Ec(e))t.indexOf(o)<0&&Tc.call(e,o)&&(n[o]=e[o]);return n})(s,["field","form"]);const u="number"==typeof kc.FORM_DEBOUNCE?kc.FORM_DEBOUNCE:200,[h,d]=(0,e.useState)(a.value),p=_c({getOnChangeProps:()=>({}),hasIsFieldProp:!1},o),g=(0,e.useCallback)((()=>{const e=e=>e();return!1===c.debounce||!1===kc.FORM_DEBOUNCE&&!c.debounce?e:function(e,t){let n;return(...o)=>{clearTimeout(n),n=setTimeout(e,t,...o)}}(e,"number"==typeof c.debounce?c.debounce:u)})(),[]),m=e=>{const t=(null==(n=e)?void 0:n.target)?"INPUT"!==n.target.nodeName||"checkbox"!==n.target.type&&"radio"!==n.target.type?n.target.value:n.target.checked:n;var n;const o=p.getOnChangeProps(t,a,l,c),i=o.value||c.value||t;g((()=>{"function"==typeof c.onChange&&c.onChange(i),a.onChange({target:_c({name:a.name,value:i},o)})})),d(i)},f=(Mc(l.touched,a.name)||Boolean(l.submitCount))&&Mc(l.errors,a.name),y="string"==typeof f?f:"";(0,e.useEffect)((()=>{d(a.value)}),[a.value]),(null==(r=l.status)?void 0:r.disabled)&&(c.disabled=!0);const v=_c({},c);return delete v.debounce,Object.hasOwn(v,"className")&&void 0===v.className&&delete v.className,Object.hasOwn(v,"children")&&void 0===v.children&&delete v.children,t().createElement(n,Lc(_c(_c(Lc(_c({},a),{error:y}),p.hasIsFieldProp?{isfield:!0}:{}),v),{checked:"string"==typeof c.value?a.value===c.value:a.value,onChange:m,value:h,input:{value:h,onChange:m}}))},Nc=Rc(Io,{getOnChangeProps:e=>({checked:e})}),Ic=Rc(gr),Pc=Rc(Sr),Dc=Rc(Wr),Fc=Rc(Zr),Bc=Rc(ha,{getOnChangeProps:e=>({value:e||[]})}),Wc=Rc(Na),Hc=Rc(za),jc=Rc(Qa,{hasIsFieldProp:!0}),zc=Rc(ll),Vc=Rc(Cl),Uc=Rc(Rl,{getOnChangeProps:(e,t,n,o)=>({checked:e===o.value,value:o.value})}),Gc=Rc(jl,{hasIsFieldProp:!0}),Kc=Rc(Xl),qc=Rc(rc),Yc=Rc(bc);var Jc=Object.defineProperty,Xc=Object.defineProperties,Qc=Object.getOwnPropertyDescriptors,Zc=Object.getOwnPropertySymbols,eu=Object.prototype.hasOwnProperty,tu=Object.prototype.propertyIsEnumerable,nu=(e,t,n)=>t in e?Jc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ou=(e,t)=>{for(var n in t||(t={}))eu.call(t,n)&&nu(e,n,t[n]);if(Zc)for(var n of Zc(t))tu.call(t,n)&&nu(e,n,t[n]);return e};class iu extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.prop,{onChange:n}=t;n((0,pe.fromJS)(e))}getInputError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)eu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Zc)for(var o of Zc(e))t.indexOf(o)<0&&tu.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(gr,(i=ou(ou({},n),o),r={error:this.getInputError()},Xc(i,Qc(r))));var i,r}}iu.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const ru=iu;var su=Object.defineProperty,au=Object.defineProperties,lu=Object.getOwnPropertyDescriptors,cu=Object.getOwnPropertySymbols,uu=Object.prototype.hasOwnProperty,hu=Object.prototype.propertyIsEnumerable,du=(e,t,n)=>t in e?su(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class pu extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}getComboboxError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=((e,t)=>{var n={};for(var o in e)uu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&cu)for(var o of cu(e))t.indexOf(o)<0&&hu.call(e,o)&&(n[o]=e[o]);return n})(this.props,[]);return t().createElement(Sr,(n=((e,t)=>{for(var n in t||(t={}))uu.call(t,n)&&du(e,n,t[n]);if(cu)for(var n of cu(t))hu.call(t,n)&&du(e,n,t[n]);return e})({},e),o={onChange:this.handleOnChange,value:e.input.value?e.input.value.toJS():e.input.value,error:this.getComboboxError()},au(n,lu(o))));var n,o}}pu.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const gu=pu;var mu=Object.defineProperty,fu=Object.defineProperties,yu=Object.getOwnPropertyDescriptors,vu=Object.getOwnPropertySymbols,bu=Object.prototype.hasOwnProperty,wu=Object.prototype.propertyIsEnumerable,xu=(e,t,n)=>t in e?mu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class ku extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}render(){const e=this.props,{children:n,input:o}=e,i=((e,t)=>{var n={};for(var o in e)bu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&vu)for(var o of vu(e))t.indexOf(o)<0&&wu.call(e,o)&&(n[o]=e[o]);return n})(e,["children","input"]);return t().createElement(Oi,(r=((e,t)=>{for(var n in t||(t={}))bu.call(t,n)&&xu(e,n,t[n]);if(vu)for(var n of vu(t))wu.call(t,n)&&xu(e,n,t[n]);return e})({},i),s={onSelect:this.handleOnChange,selectedItem:o.value},fu(r,yu(s))),n);var r,s}}ku.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),input:r().instanceOf(Object)};const Cu=ku;var $u=Object.defineProperty,Su=Object.defineProperties,Eu=Object.getOwnPropertyDescriptors,Ou=Object.getOwnPropertySymbols,Tu=Object.prototype.hasOwnProperty,Au=Object.prototype.propertyIsEnumerable,_u=(e,t,n)=>t in e?$u(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Lu=(e,t)=>{for(var n in t||(t={}))Tu.call(t,n)&&_u(e,n,t[n]);if(Ou)for(var n of Ou(t))Au.call(t,n)&&_u(e,n,t[n]);return e};function Mu(e){const n=e,{input:o}=n,i=((e,t)=>{var n={};for(var o in e)Tu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ou)for(var o of Ou(e))t.indexOf(o)<0&&Au.call(e,o)&&(n[o]=e[o]);return n})(n,["input"]);return t().createElement(po,(r=Lu(Lu({},o),i),s={onChange:o.onChange,value:o.value?o.value:0},Su(r,Eu(s))));var r,s}Mu.propTypes={input:r().instanceOf(Object)};const Ru=Mu;var Nu=Object.defineProperty,Iu=Object.defineProperties,Pu=Object.getOwnPropertyDescriptors,Du=Object.getOwnPropertySymbols,Fu=Object.prototype.hasOwnProperty,Bu=Object.prototype.propertyIsEnumerable,Wu=(e,t,n)=>t in e?Nu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Hu(e){const{input:n,meta:o,validationmessages:i}=e;return t().createElement(Wr,(r=((e,t)=>{for(var n in t||(t={}))Fu.call(t,n)&&Wu(e,n,t[n]);if(Du)for(var n of Du(t))Bu.call(t,n)&&Wu(e,n,t[n]);return e})({},e),s={onChange:e=>{const{onChange:t}=n;t((0,pe.fromJS)(e))},value:n.value?n.value.toJS():n.value,error:(()=>{const{touched:e,error:t,warning:n}=o;let r=null;return e&&t&&i[t]?r=i[t]:e&&n&&(r="warning"),r})()},Iu(r,Pu(s))));var r,s}Hu.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const ju=Hu;var zu=Object.defineProperty,Vu=Object.defineProperties,Uu=Object.getOwnPropertyDescriptors,Gu=Object.getOwnPropertySymbols,Ku=Object.prototype.hasOwnProperty,qu=Object.prototype.propertyIsEnumerable,Yu=(e,t,n)=>t in e?zu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Ju(e){const n=e,{input:o,meta:i,validationmessages:r}=n,s=((e,t)=>{var n={};for(var o in e)Ku.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Gu)for(var o of Gu(e))t.indexOf(o)<0&&qu.call(e,o)&&(n[o]=e[o]);return n})(n,["input","meta","validationmessages"]);return t().createElement(Zr,(a=((e,t)=>{for(var n in t||(t={}))Ku.call(t,n)&&Yu(e,n,t[n]);if(Gu)for(var n of Gu(t))qu.call(t,n)&&Yu(e,n,t[n]);return e})({},s),l={onChange:e=>{const{onChange:t}=o;t((0,pe.fromJS)(e))},value:o.value?o.value.toJS():o.value,error:(()=>{const{touched:e,error:t}=i;let n=null;return e&&t&&r[t]&&(n=r[t]),n})()},Vu(a,Uu(l))));var a,l}Ju.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Xu=Ju;var Qu=Object.defineProperty,Zu=Object.defineProperties,eh=Object.getOwnPropertyDescriptors,th=Object.getOwnPropertySymbols,nh=Object.prototype.hasOwnProperty,oh=Object.prototype.propertyIsEnumerable,ih=(e,t,n)=>t in e?Qu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class rh extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}getEditableListError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o}=e;let i=null;return n&&o&&t[o]&&(i=t[o]),i}render(){const e=((e,t)=>{var n={};for(var o in e)nh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&th)for(var o of th(e))t.indexOf(o)<0&&oh.call(e,o)&&(n[o]=e[o]);return n})(this.props,[]);return t().createElement(ha,(n=((e,t)=>{for(var n in t||(t={}))nh.call(t,n)&&ih(e,n,t[n]);if(th)for(var n of th(t))oh.call(t,n)&&ih(e,n,t[n]);return e})({},e),o={onChange:this.handleOnChange,value:e.input.value?e.input.value.toJS():null,error:this.getEditableListError()},Zu(n,eh(o))));var n,o}}rh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const sh=rh;var ah=Object.defineProperty,lh=Object.defineProperties,ch=Object.getOwnPropertyDescriptors,uh=Object.getOwnPropertySymbols,hh=Object.prototype.hasOwnProperty,dh=Object.prototype.propertyIsEnumerable,ph=(e,t,n)=>t in e?ah(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,gh=(e,t)=>{for(var n in t||(t={}))hh.call(t,n)&&ph(e,n,t[n]);if(uh)for(var n of uh(t))dh.call(t,n)&&ph(e,n,t[n]);return e};class mh extends e.Component{getInputError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)hh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&uh)for(var o of uh(e))t.indexOf(o)<0&&dh.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(za,(i=gh(gh({},n),o),r={error:this.getInputError()},lh(i,ch(r))));var i,r}}mh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const fh=mh;var yh=Object.defineProperty,vh=Object.defineProperties,bh=Object.getOwnPropertyDescriptors,wh=Object.getOwnPropertySymbols,xh=Object.prototype.hasOwnProperty,kh=Object.prototype.propertyIsEnumerable,Ch=(e,t,n)=>t in e?yh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,$h=(e,t)=>{for(var n in t||(t={}))xh.call(t,n)&&Ch(e,n,t[n]);if(wh)for(var n of wh(t))kh.call(t,n)&&Ch(e,n,t[n]);return e};class Sh extends e.Component{getInputError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)xh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&wh)for(var o of wh(e))t.indexOf(o)<0&&kh.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(Qa,(i=$h($h({},n),o),r={isfield:!0,error:this.getInputError()},vh(i,bh(r))));var i,r}}Sh.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Eh=Sh;var Oh=Object.defineProperty,Th=Object.defineProperties,Ah=Object.getOwnPropertyDescriptors,_h=Object.getOwnPropertySymbols,Lh=Object.prototype.hasOwnProperty,Mh=Object.prototype.propertyIsEnumerable,Rh=(e,t,n)=>t in e?Oh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Nh extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}getMultiselectError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=((e,t)=>{var n={};for(var o in e)Lh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&_h)for(var o of _h(e))t.indexOf(o)<0&&Mh.call(e,o)&&(n[o]=e[o]);return n})(this.props,[]);return t().createElement(Cl,(n=((e,t)=>{for(var n in t||(t={}))Lh.call(t,n)&&Rh(e,n,t[n]);if(_h)for(var n of _h(t))Mh.call(t,n)&&Rh(e,n,t[n]);return e})({},e),o={onChange:this.handleOnChange,value:e.input.value?e.input.value.toJS():e.input.value,error:this.getMultiselectError()},Th(n,Ah(o))));var n,o}}Nh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Ih=Nh;var Ph=Object.defineProperty,Dh=Object.defineProperties,Fh=Object.getOwnPropertyDescriptors,Bh=Object.getOwnPropertySymbols,Wh=Object.prototype.hasOwnProperty,Hh=Object.prototype.propertyIsEnumerable,jh=(e,t,n)=>t in e?Ph(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,zh=(e,t)=>{for(var n in t||(t={}))Wh.call(t,n)&&jh(e,n,t[n]);if(Bh)for(var n of Bh(t))Hh.call(t,n)&&jh(e,n,t[n]);return e};class Vh extends e.Component{constructor(e){super(e),this.handleEvent=this.handleEvent.bind(this)}handleEvent(e){const{input:t}=this.props,{onChange:n,value:o}=t;n((0,pe.fromJS)(void 0!==e?e:o))}getSelectError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)Wh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Bh)for(var o of Bh(e))t.indexOf(o)<0&&Hh.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(jl,(i=zh(zh({},n),o),r={isfield:!0,error:this.getSelectError(),onChange:this.handleEvent,onBlur:this.handleEvent,value:n.value?n.value.toJS():n.value},Dh(i,Fh(r))));var i,r}}Vh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Uh=Vh;var Gh=Object.defineProperty,Kh=Object.defineProperties,qh=Object.getOwnPropertyDescriptors,Yh=Object.getOwnPropertySymbols,Jh=Object.prototype.hasOwnProperty,Xh=Object.prototype.propertyIsEnumerable,Qh=(e,t,n)=>t in e?Gh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Zh extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props;t.onChange((0,pe.fromJS)(e))}render(){const e=this.props,{children:n}=e,o=((e,t)=>{var n={};for(var o in e)Jh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Yh)for(var o of Yh(e))t.indexOf(o)<0&&Xh.call(e,o)&&(n[o]=e[o]);return n})(e,["children"]);return t().createElement(Xl,(i=((e,t)=>{for(var n in t||(t={}))Jh.call(t,n)&&Qh(e,n,t[n]);if(Yh)for(var n of Yh(t))Xh.call(t,n)&&Qh(e,n,t[n]);return e})({},o),r={onChange:this.handleOnChange,value:o.input.value?o.input.value.toJS():[]},Kh(i,qh(r))));var i,r}}Zh.propTypes={children:r().oneOfType([r().node]),onChange:r().func,input:r().instanceOf(Object)};const ed=Zh;var td=Object.defineProperty,nd=Object.defineProperties,od=Object.getOwnPropertyDescriptors,id=Object.getOwnPropertySymbols,rd=Object.prototype.hasOwnProperty,sd=Object.prototype.propertyIsEnumerable,ad=(e,t,n)=>t in e?td(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class ld extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props;t.onChange((0,pe.fromJS)(e))}render(){const e=this.props,{children:n}=e,o=((e,t)=>{var n={};for(var o in e)rd.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&id)for(var o of id(e))t.indexOf(o)<0&&sd.call(e,o)&&(n[o]=e[o]);return n})(e,["children"]);return t().createElement(bc,(i=((e,t)=>{for(var n in t||(t={}))rd.call(t,n)&&ad(e,n,t[n]);if(id)for(var n of id(t))sd.call(t,n)&&ad(e,n,t[n]);return e})({},o),r={onChange:this.handleOnChange,value:o.input.value},nd(i,od(r))),n);var i,r}}ld.propTypes={children:r().oneOfType([r().node]),onChange:r().func,input:r().instanceOf(Object)};const cd=ld;function ud(t,n,...o){const i=(0,e.useRef)();(0,e.useEffect)((()=>{i.current=t}),[t]),(0,e.useEffect)((()=>{if(null!=n){const e=setInterval((function(){i.current(...o)}),n);return()=>clearInterval(e)}}),[n])}})(),module.exports=o})(); +(()=>{var e={239:(e,t,n)=>{e=n.nmd(e),function(){var e=function(){return this}();e||"undefined"==typeof window||(e=window);var t=function(e,n,o){"string"==typeof e?(2==arguments.length&&(o=n),t.modules[e]||(t.payloads[e]=o,t.modules[e]=null)):t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace())};t.modules={},t.payloads={};var n,o,i=function(e,t,n){if("string"==typeof t){var o=a(e,t);if(null!=o)return n&&n(),o}else if("[object Array]"===Object.prototype.toString.call(t)){for(var i=[],s=0,l=t.length;sn.length)&&(t=n.length),t-=e.length;var o=n.indexOf(e,t);return-1!==o&&o===t})),String.prototype.repeat||o(String.prototype,"repeat",(function(e){for(var t="",n=this;e>0;)1&e&&(t+=n),(e>>=1)&&(n+=n);return t})),String.prototype.includes||o(String.prototype,"includes",(function(e,t){return-1!=this.indexOf(e,t)})),Object.assign||(Object.assign=function(e){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),n=1;n>>0,o=0|arguments[1],i=o<0?Math.max(n+o,0):Math.min(o,n),r=arguments[2],s=void 0===r?n:0|r,a=s<0?Math.max(n+s,0):Math.min(s,n);i0;)1&t&&(n+=e),(t>>=1)&&(e+=e);return n};var o=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(o,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){for(var t=[],n=0,o=e.length;n65535?2:1}})),ace.define("ace/lib/useragent",["require","exports","module"],(function(e,t,n){"use strict";t.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},t.getOS=function(){return t.isMac?t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS};var o="object"==typeof navigator?navigator:{},i=(/mac|win|linux/i.exec(o.platform)||["other"])[0].toLowerCase(),r=o.userAgent||"",s=o.appName||"";t.isWin="win"==i,t.isMac="mac"==i,t.isLinux="linux"==i,t.isIE="Microsoft Internet Explorer"==s||s.indexOf("MSAppHost")>=0?parseFloat((r.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((r.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=r.match(/ Gecko\/\d+/),t.isOpera="object"==typeof opera&&"[object Opera]"==Object.prototype.toString.call(window.opera),t.isWebKit=parseFloat(r.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(r.split(" Chrome/")[1])||void 0,t.isSafari=parseFloat(r.split(" Safari/")[1])&&!t.isChrome||void 0,t.isEdge=parseFloat(r.split(" Edge/")[1])||void 0,t.isAIR=r.indexOf("AdobeAIR")>=0,t.isAndroid=r.indexOf("Android")>=0,t.isChromeOS=r.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(r)&&!window.MSStream,t.isIOS&&(t.isMac=!0),t.isMobile=t.isIOS||t.isAndroid})),ace.define("ace/lib/dom",["require","exports","module","ace/lib/useragent"],(function(e,t,n){"use strict";var o,i=e("./useragent");t.buildDom=function e(t,n,o){if("string"==typeof t&&t){var i=document.createTextNode(t);return n&&n.appendChild(i),i}if(!Array.isArray(t))return t&&t.appendChild&&n&&n.appendChild(t),t;if("string"!=typeof t[0]||!t[0]){for(var r=[],s=0;s=1.5,i.isChromeOS&&(t.HI_DPI=!1),"undefined"!=typeof document){var l=document.createElement("div");t.HI_DPI&&void 0!==l.style.transform&&(t.HAS_CSS_TRANSFORMS=!0),i.isEdge||void 0===l.style.animationName||(t.HAS_CSS_ANIMATION=!0),l=null}t.HAS_CSS_TRANSFORMS?t.translate=function(e,t,n){e.style.transform="translate("+Math.round(t)+"px, "+Math.round(n)+"px)"}:t.translate=function(e,t,n){e.style.top=Math.round(n)+"px",e.style.left=Math.round(t)+"px"}})),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("./dom");t.get=function(e,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.onreadystatechange=function(){4===n.readyState&&t(n.responseText)},n.send(null)},t.loadScript=function(e,t){var n=o.getDocumentHead(),i=document.createElement("script");i.src=e,n.appendChild(i),i.onload=i.onreadystatechange=function(e,n){!n&&i.readyState&&"loaded"!=i.readyState&&"complete"!=i.readyState||(i=i.onload=i.onreadystatechange=null,n||t())}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}})),ace.define("ace/lib/oop",["require","exports","module"],(function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}})),ace.define("ace/lib/event_emitter",["require","exports","module"],(function(e,t,n){"use strict";var o={},i=function(){this.propagationStopped=!0},r=function(){this.defaultPrevented=!0};o._emit=o._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],o=this._defaultHandlers[e];if(n.length||o){"object"==typeof t&&t||(t={}),t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=r),n=n.slice();for(var s=0;s1&&(i=n[n.length-2]);var s=l[t+"Path"];return null==s?s=l.basePath:"/"==o&&(t=o=""),s&&"/"!=s.slice(-1)&&(s+="/"),s+t+o+i+this.get("suffix")},t.setModuleUrl=function(e,t){return l.$moduleUrls[e]=t},t.setLoader=function(e){a=e},t.dynamicModules=Object.create(null),t.$loading={},t.$loaded={},t.loadModule=function(n,o){var r,s;Array.isArray(n)&&(s=n[0],n=n[1]);var l=function(r){if(r&&!t.$loading[n])return o&&o(r);if(t.$loading[n]||(t.$loading[n]=[]),t.$loading[n].push(o),!(t.$loading[n].length>1)){var l=function(){!function(t,n){"ace/theme/textmate"===t||"./theme/textmate"===t?n(0,e("./theme/textmate")):a?a(t,n):console.error("loader is not configured")}(n,(function(e,o){o&&(t.$loaded[n]=o),t._emit("load.module",{name:n,module:o});var i=t.$loading[n];t.$loading[n]=null,i.forEach((function(e){e&&e(o)}))}))};if(!t.get("packaged"))return l();i.loadScript(t.moduleUrl(n,s),l),c()}};if(t.dynamicModules[n])t.dynamicModules[n]().then((function(e){e.default?l(e.default):l(e)}));else{try{r=this.$require(n)}catch(e){}l(r||t.$loaded[n])}},t.$require=function(e){if("function"==typeof n.require)return n.require(e)},t.setModuleLoader=function(e,n){t.dynamicModules[e]=n};var c=function(){l.basePath||l.workerPath||l.modePath||l.themePath||Object.keys(l.$moduleUrls).length||(console.error("Unable to infer path to ace from script src,","use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes","or with webpack use ace/webpack-resolver"),c=function(){})};t.version="1.32.0"})),ace.define("ace/loader_build",["require","exports","module","ace/lib/fixoldbrowsers","ace/config"],(function(e,t,o){"use strict";e("./lib/fixoldbrowsers");var i=e("./config");i.setLoader((function(t,n){e([t],(function(e){n(null,e)}))}));var r=function(){return this||"undefined"!=typeof window&&window}();function s(t){if(r&&r.document){i.set("packaged",t||e.packaged||o.packaged||r.define&&n.amdD.packaged);var s={},a="",l=document.currentScript||document._currentScript,c=l&&l.ownerDocument||document;l&&l.src&&(a=l.src.split(/[?#]/)[0].split("/").slice(0,-1).join("/")||"");for(var u,h=c.getElementsByTagName("script"),d=0;d ["+this.end.row+"/"+this.end.column+"]"},e.prototype.contains=function(e,t){return 0==this.compare(e,t)},e.prototype.compareRange=function(e){var t,n=e.end,o=e.start;return 1==(t=this.compare(n.row,n.column))?1==(t=this.compare(o.row,o.column))?2:0==t?1:0:-1==t?-2:-1==(t=this.compare(o.row,o.column))?-1:1==t?42:0},e.prototype.comparePoint=function(e){return this.compare(e.row,e.column)},e.prototype.containsRange=function(e){return 0==this.comparePoint(e.start)&&0==this.comparePoint(e.end)},e.prototype.intersects=function(e){var t=this.compareRange(e);return-1==t||0==t||1==t},e.prototype.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},e.prototype.isStart=function(e,t){return this.start.row==e&&this.start.column==t},e.prototype.setStart=function(e,t){"object"==typeof e?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},e.prototype.setEnd=function(e,t){"object"==typeof e?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},e.prototype.inside=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)&&!this.isStart(e,t)},e.prototype.insideStart=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)},e.prototype.insideEnd=function(e,t){return 0==this.compare(e,t)&&!this.isStart(e,t)},e.prototype.compare=function(e,t){return this.isMultiLine()||e!==this.start.row?ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0:tthis.end.column?1:0},e.prototype.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},e.prototype.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},e.prototype.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},e.prototype.clipRows=function(t,n){if(this.end.row>n)var o={row:n+1,column:0};else this.end.rown)var i={row:n+1,column:0};else this.start.row1?++h>4&&(h=1):h=1,r.isIE){var s=Math.abs(e.clientX-a)>5||Math.abs(e.clientY-l)>5;c&&!s||(h=1),c&&clearTimeout(c),c=setTimeout((function(){c=null}),n[h-1]||600),1==h&&(a=e.clientX,l=e.clientY)}if(e._clicks=h,o[i]("mousedown",e),h>4)h=0;else if(h>1)return o[i](d[h],e)}Array.isArray(e)||(e=[e]),e.forEach((function(e){u(e,"mousedown",p,s)}))};var d=function(e){return(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)};function p(e,t,n){var o=d(t);if(!r.isMac&&s){if(t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(o|=8),s.altGr){if(!(3&~o))return;s.altGr=0}if(18===n||17===n){var l="location"in t?t.location:t.keyLocation;17===n&&1===l?1==s[n]&&(a=t.timeStamp):18===n&&3===o&&2===l&&t.timeStamp-a<50&&(s.altGr=!0)}}if(n in i.MODIFIER_KEYS&&(n=-1),o||13!==n||3!==(l="location"in t?t.location:t.keyLocation)||(e(t,o,-n),!t.defaultPrevented)){if(r.isChromeOS&&8&o){if(e(t,o,n),t.defaultPrevented)return;o&=-9}return!!(o||n in i.FUNCTION_KEYS||n in i.PRINTABLE_KEYS)&&e(t,o,n)}}function g(){s=Object.create(null)}if(t.getModifierString=function(e){return i.KEY_MODS[d(e)]},t.addCommandKeyListener=function(e,n,o){if(r.isOldGecko||r.isOpera&&!("KeyboardEvent"in window)){var i=null;u(e,"keydown",(function(e){i=e.keyCode}),o),u(e,"keypress",(function(e){return p(n,e,i)}),o)}else{var a=null;u(e,"keydown",(function(e){s[e.keyCode]=(s[e.keyCode]||0)+1;var t=p(n,e,e.keyCode);return a=e.defaultPrevented,t}),o),u(e,"keypress",(function(e){a&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),a=null)}),o),u(e,"keyup",(function(e){s[e.keyCode]=null}),o),s||(g(),u(window,"focus",g))}},"object"==typeof window&&window.postMessage&&!r.isOldIE){var m=1;t.nextTick=function(e,n){n=n||window;var o="zero-timeout-message-"+m++,i=function(r){r.data==o&&(t.stopPropagation(r),h(n,"message",i),e())};u(n,"message",i),n.postMessage(o,"*")}}t.$idleBlocked=!1,t.onIdle=function(e,n){return setTimeout((function n(){t.$idleBlocked?setTimeout(n,100):e()}),n)},t.$idleBlockId=null,t.blockIdle=function(e){t.$idleBlockId&&clearTimeout(t.$idleBlockId),t.$idleBlocked=!0,t.$idleBlockId=setTimeout((function(){t.$idleBlocked=!1}),e||100)},t.nextFrame="object"==typeof window&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}})),ace.define("ace/clipboard",["require","exports","module"],(function(e,t,n){"use strict";var o;n.exports={lineMode:!1,pasteCancelled:function(){return!!(o&&o>Date.now()-50)||(o=!1)},cancel:function(){o=Date.now()}}})),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/config","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/clipboard","ace/lib/keys"],(function(e,t,n){"use strict";var o=e("../lib/event"),i=e("../config").nls,r=e("../lib/useragent"),s=e("../lib/dom"),a=e("../lib/lang"),l=e("../clipboard"),c=r.isChrome<18,u=r.isIE,h=r.isChrome>63,d=400,p=e("../lib/keys"),g=p.KEY_MODS,m=r.isIOS,f=m?/\s/:/\n/,y=r.isMobile;t.TextInput=function(e,t){var n=s.createElement("textarea");n.className="ace_text-input",n.setAttribute("wrap","off"),n.setAttribute("autocorrect","off"),n.setAttribute("autocapitalize","off"),n.setAttribute("spellcheck",!1),n.style.opacity="0",e.insertBefore(n,e.firstChild);var v=!1,b=!1,w=!1,x=!1,k="";y||(n.style.fontSize="1px");var C=!1,$=!1,S="",E=0,O=0,T=0,A=Number.MAX_SAFE_INTEGER,_=Number.MIN_SAFE_INTEGER,L=0;try{var M=document.activeElement===n}catch(e){}this.setNumberOfExtraLines=function(e){A=Number.MAX_SAFE_INTEGER,_=Number.MIN_SAFE_INTEGER,L=e<0?0:e},this.setAriaOptions=function(e){if(e.activeDescendant?(n.setAttribute("aria-haspopup","true"),n.setAttribute("aria-autocomplete",e.inline?"both":"list"),n.setAttribute("aria-activedescendant",e.activeDescendant)):(n.setAttribute("aria-haspopup","false"),n.setAttribute("aria-autocomplete","both"),n.removeAttribute("aria-activedescendant")),e.role&&n.setAttribute("role",e.role),e.setLabel&&(n.setAttribute("aria-roledescription",i("editor")),t.session)){var o=t.session.selection.cursor.row;n.setAttribute("aria-label",i("Cursor at row $0",[o+1]))}},this.setAriaOptions({role:"textbox"}),o.addListener(n,"blur",(function(e){$||(t.onBlur(e),M=!1)}),t),o.addListener(n,"focus",(function(e){if(!$){if(M=!0,r.isEdge)try{if(!document.hasFocus())return}catch(e){}t.onFocus(e),r.isEdge?setTimeout(N):N()}}),t),this.$focusScroll=!1,this.focus=function(){if(this.setAriaOptions({setLabel:t.renderer.enableKeyboardAccessibility}),k||h||"browser"==this.$focusScroll)return n.focus({preventScroll:!0});var e=n.style.top;n.style.position="fixed",n.style.top="0px";try{var o=0!=n.getBoundingClientRect().top}catch(e){return}var i=[];if(o)for(var r=n.parentElement;r&&1==r.nodeType;)i.push(r),r.setAttribute("ace_nocontext",!0),r=!r.parentElement&&r.getRootNode?r.getRootNode().host:r.parentElement;n.focus({preventScroll:!0}),o&&i.forEach((function(e){e.removeAttribute("ace_nocontext")})),setTimeout((function(){n.style.position="","0px"==n.style.top&&(n.style.top=e)}),0)},this.blur=function(){n.blur()},this.isFocused=function(){return M},t.on("beforeEndOperation",(function(){var e=t.curOp,o=e&&e.command&&e.command.name;if("insertstring"!=o){var i=o&&(e.docChanged||e.selectionChanged);w&&i&&(S=n.value="",U()),N()}}));var R=function(e,n){for(var o=n,i=1;i<=e-A&&i<2*L+1;i++)o+=t.session.getLine(e-i).length+1;return o},N=m?function(e){if(M&&(!v||e)&&!x){e||(e="");var o="\n ab"+e+"cde fg\n";o!=n.value&&(n.value=S=o);var i=4+(e.length||(t.selection.isEmpty()?0:1));4==E&&O==i||n.setSelectionRange(4,i),E=4,O=i}}:function(){if(!w&&!x&&(M||P)){w=!0;var e=0,o=0,i="";if(t.session){var r=t.selection,s=r.getRange(),a=r.cursor.row;a===_+1?_=(A=_+1)+2*L:a===A-1?A=(_=A-1)-2*L:(a_+1)&&(A=a>L?a-L:0,_=a>L?a+L:2*L);for(var l=[],c=A;c<=_;c++)l.push(t.session.getLine(c));if(i=l.join("\n"),e=R(s.start.row,s.start.column),o=R(s.end.row,s.end.column),s.start.row_){var h=t.session.getLine(_+1);o=s.end.row>_+1?h.length:s.end.column,o+=i.length+1,i=i+"\n"+h}else y&&a>0&&(i="\n"+i,o+=1,e+=1);i.length>d&&(e0&&S[d]==e[d];)d++,a--;for(c=c.slice(d),d=1;l>0&&S.length-d>E-1&&S[S.length-d]==e[e.length-d];)d++,l--;u-=d-1,h-=d-1;var p=c.length-d+1;if(p<0&&(a=-p,p=0),c=c.slice(0,p),!(o||c||u||a||l||h))return"";x=!0;var g=!1;return r.isAndroid&&". "==c&&(c=" ",g=!0),c&&!a&&!l&&!u&&!h||C?t.onTextInput(c):t.onTextInput(c,{extendLeft:a,extendRight:l,restoreStart:u,restoreEnd:h}),x=!1,S=e,E=i,O=s,T=h,g?"\n":c},F=function(e){if(w)return V();if(e&&e.inputType){if("historyUndo"==e.inputType)return t.execCommand("undo");if("historyRedo"==e.inputType)return t.execCommand("redo")}var o=n.value,i=D(o,!0);(o.length>500||f.test(i)||y&&E<1&&E==O)&&N()},B=function(e,t,n){var o=e.clipboardData||window.clipboardData;if(o&&!c){var i=u||n?"Text":"text/plain";try{return t?!1!==o.setData(i,t):o.getData(i)}catch(e){if(!n)return B(e,t,!0)}}},W=function(e,i){var r=t.getCopyText();if(!r)return o.preventDefault(e);B(e,r)?(m&&(N(r),v=r,setTimeout((function(){v=!1}),10)),i?t.onCut():t.onCopy(),o.preventDefault(e)):(v=!0,n.value=r,n.select(),setTimeout((function(){v=!1,N(),i?t.onCut():t.onCopy()})))},H=function(e){W(e,!0)},j=function(e){W(e,!1)},z=function(e){var i=B(e);l.pasteCancelled()||("string"==typeof i?(i&&t.onPaste(i,e),r.isIE&&setTimeout(N),o.preventDefault(e)):(n.value="",b=!0))};o.addCommandKeyListener(n,t.onCommandKey.bind(t),t),o.addListener(n,"select",(function(e){w||(v?v=!1:function(e){return 0===e.selectionStart&&e.selectionEnd>=S.length&&e.value===S&&S&&e.selectionEnd!==O}(n)?(t.selectAll(),N()):y&&n.selectionStart!=E&&N())}),t),o.addListener(n,"input",F,t),o.addListener(n,"cut",H,t),o.addListener(n,"copy",j,t),o.addListener(n,"paste",z,t),"oncut"in n&&"oncopy"in n&&"onpaste"in n||o.addListener(e,"keydown",(function(e){if((!r.isMac||e.metaKey)&&e.ctrlKey)switch(e.keyCode){case 67:j(e);break;case 86:z(e);break;case 88:H(e)}}),t);var V=function(){if(w&&t.onCompositionUpdate&&!t.$readOnly){if(C)return G();if(w.useTextareaForIME)t.onCompositionUpdate(n.value);else{var e=n.value;D(e),w.markerRange&&(w.context&&(w.markerRange.start.column=w.selectionStart=w.context.compositionStartOffset),w.markerRange.end.column=w.markerRange.start.column+O-w.selectionStart+T)}}},U=function(e){t.onCompositionEnd&&!t.$readOnly&&(w=!1,t.onCompositionEnd(),t.off("mousedown",G),e&&F())};function G(){$=!0,n.blur(),n.focus(),$=!1}var K,q=a.delayedCall(V,50).schedule.bind(null,null);function Y(){clearTimeout(K),K=setTimeout((function(){k&&(n.style.cssText=k,k=""),t.renderer.$isMousePressed=!1,t.renderer.$keepTextAreaAtCursor&&t.renderer.$moveTextAreaToCursor()}),0)}o.addListener(n,"compositionstart",(function(e){if(!w&&t.onCompositionStart&&!t.$readOnly&&(w={},!C)){e.data&&(w.useTextareaForIME=!1),setTimeout(V,0),t._signal("compositionStart"),t.on("mousedown",G);var o=t.getSelectionRange();o.end.row=o.start.row,o.end.column=o.start.column,w.markerRange=o,w.selectionStart=E,t.onCompositionStart(w),w.useTextareaForIME?(S=n.value="",E=0,O=0):(n.msGetInputContext&&(w.context=n.msGetInputContext()),n.getInputContext&&(w.context=n.getInputContext()))}}),t),o.addListener(n,"compositionupdate",V,t),o.addListener(n,"keyup",(function(e){27==e.keyCode&&n.value.lengthO&&"\n"==S[r]?s=p.end:oO&&S.slice(0,r).split("\n").length>2?s=p.down:r>O&&" "==S[r-1]?(s=p.right,a=g.option):(r>O||r==O&&O!=E&&o==r)&&(s=p.right),o!==r&&(a|=g.shift),s){if(!t.onCommandKey({},a,s)&&t.commands){s=p.keyCodeToString(s);var l=t.commands.findKeyCommand(a,s);l&&t.execCommand(l)}E=o,O=r,N("")}}};document.addEventListener("selectionchange",r),t.on("destroy",(function(){document.removeEventListener("selectionchange",r)}))}(0,t,n),this.destroy=function(){n.parentElement&&n.parentElement.removeChild(n)}},t.$setUserAgentForTests=function(e,t){y=e,m=t}})),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("../lib/useragent"),i=function(){function e(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e)),["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"].forEach((function(t){e[t]=this[t]}),this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}return e.prototype.onMouseDown=function(e){var t=e.inSelection(),n=e.getDocumentPosition();this.mousedownEvent=e;var i=this.editor,r=e.getButton();return 0!==r?((i.getSelectionRange().isEmpty()||1==r)&&i.selection.moveToPosition(n),void(2==r&&(i.textInput.onContextMenu(e.domEvent),o.isMozilla||e.preventDefault()))):(this.mousedownEvent.time=Date.now(),!t||i.isFocused()||(i.focus(),!this.$focusTimeout||this.$clickSelection||i.inMultiSelectMode)?(this.captureMouse(e),this.startSelect(n,e.domEvent._clicks>1),e.preventDefault()):(this.setState("focusWait"),void this.captureMouse(e)))},e.prototype.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var n=this.editor;this.mousedownEvent&&(this.mousedownEvent.getShiftKey()?n.selection.selectToPosition(e):t||n.selection.moveToPosition(e),t||this.select(),n.setStyle("ace_selecting"),this.setState("select"))},e.prototype.select=function(){var e,t=this.editor,n=t.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var o=this.$clickSelection.comparePoint(n);if(-1==o)e=this.$clickSelection.end;else if(1==o)e=this.$clickSelection.start;else{var i=r(this.$clickSelection,n);n=i.cursor,e=i.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(n),t.renderer.scrollCursorIntoView()},e.prototype.extendSelectionBy=function(e){var t,n=this.editor,o=n.renderer.screenToTextCoordinates(this.x,this.y),i=n.selection[e](o.row,o.column);if(this.$clickSelection){var s=this.$clickSelection.comparePoint(i.start),a=this.$clickSelection.comparePoint(i.end);if(-1==s&&a<=0)t=this.$clickSelection.end,i.end.row==o.row&&i.end.column==o.column||(o=i.start);else if(1==a&&s>=0)t=this.$clickSelection.start,i.start.row==o.row&&i.start.column==o.column||(o=i.end);else if(-1==s&&1==a)o=i.end,t=i.start;else{var l=r(this.$clickSelection,o);o=l.cursor,t=l.anchor}n.selection.setSelectionAnchor(t.row,t.column)}n.selection.selectToPosition(o),n.renderer.scrollCursorIntoView()},e.prototype.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting")},e.prototype.focusWait=function(){var e,t,n,o,i=(e=this.mousedownEvent.x,t=this.mousedownEvent.y,n=this.x,o=this.y,Math.sqrt(Math.pow(n-e,2)+Math.pow(o-t,2))),r=Date.now();(i>0||r-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},e.prototype.onDoubleClick=function(e){var t=e.getDocumentPosition(),n=this.editor,o=n.session.getBracketRange(t);o?(o.isEmpty()&&(o.start.column--,o.end.column++),this.setState("select")):(o=n.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=o,this.select()},e.prototype.onTripleClick=function(e){var t=e.getDocumentPosition(),n=this.editor;this.setState("selectByLines");var o=n.getSelectionRange();o.isMultiLine()&&o.contains(t.row,t.column)?(this.$clickSelection=n.selection.getLineRange(o.start.row),this.$clickSelection.end=n.selection.getLineRange(o.end.row).end):this.$clickSelection=n.selection.getLineRange(t.row),this.select()},e.prototype.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},e.prototype.onMouseWheel=function(e){if(!e.getAccelKey()){e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var n=this.$lastScroll,o=e.domEvent.timeStamp,i=o-n.t,r=i?e.wheelX/i:n.vx,s=i?e.wheelY/i:n.vy;i<550&&(r=(r+n.vx)/2,s=(s+n.vy)/2);var a=Math.abs(r/s),l=!1;return a>=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(l=!0),a<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(l=!0),l?n.allowed=o:o-n.allowed<550&&(Math.abs(r)<=1.5*Math.abs(n.vx)&&Math.abs(s)<=1.5*Math.abs(n.vy)?(l=!0,n.allowed=o):n.allowed=0),n.t=o,n.vx=r,n.vy=s,l?(t.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()):void 0}},e}();function r(e,t){if(e.start.row==e.end.row)var n=2*t.column-e.start.column-e.end.column;else if(e.start.row!=e.end.row-1||e.start.column||e.end.column)n=2*t.row-e.start.row-e.end.row;else n=t.column-4;return n<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}i.prototype.selectEnd=i.prototype.selectByLinesEnd,i.prototype.selectAllEnd=i.prototype.selectByLinesEnd,i.prototype.selectByWordsEnd=i.prototype.selectByLinesEnd,t.DefaultHandlers=i})),ace.define("ace/tooltip",["require","exports","module","ace/lib/dom","ace/lib/event","ace/range"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],o=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&o>=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},s=e("./lib/dom"),a=e("./lib/event"),l=e("./range").Range,c="ace_tooltip",u=function(){function e(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}return e.prototype.$init=function(){return this.$element=s.createElement("div"),this.$element.className=c,this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},e.prototype.getElement=function(){return this.$element||this.$init()},e.prototype.setText=function(e){this.getElement().textContent=e},e.prototype.setHtml=function(e){this.getElement().innerHTML=e},e.prototype.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},e.prototype.setClassName=function(e){s.addCssClass(this.getElement(),e)},e.prototype.setTheme=function(e){this.$element.className=c+" "+(e.isDark?"ace_dark ":"")+(e.cssClass||"")},e.prototype.show=function(e,t,n){null!=e&&this.setText(e),null!=t&&null!=n&&this.setPosition(t,n),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},e.prototype.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.getElement().className=c,this.isOpen=!1)},e.prototype.getHeight=function(){return this.getElement().offsetHeight},e.prototype.getWidth=function(){return this.getElement().offsetWidth},e.prototype.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)},e}(),h=new(function(){function e(){this.popups=[]}return e.prototype.addPopup=function(e){this.popups.push(e),this.updatePopups()},e.prototype.removePopup=function(e){var t=this.popups.indexOf(e);-1!==t&&(this.popups.splice(t,1),this.updatePopups())},e.prototype.updatePopups=function(){var e,t,n,o;this.popups.sort((function(e,t){return t.priority-e.priority}));var i=[];try{for(var s=r(this.popups),a=s.next();!a.done;a=s.next()){var l=a.value,c=!0;try{for(var u=(n=void 0,r(i)),h=u.next();!h.done;h=u.next()){var d=h.value;if(this.doPopupsOverlap(d,l)){c=!1;break}}}catch(e){n={error:e}}finally{try{h&&!h.done&&(o=u.return)&&o.call(u)}finally{if(n)throw n.error}}c?i.push(l):l.hide()}}catch(t){e={error:t}}finally{try{a&&!a.done&&(t=s.return)&&t.call(s)}finally{if(e)throw e.error}}},e.prototype.doPopupsOverlap=function(e,t){var n=e.getElement().getBoundingClientRect(),o=t.getElement().getBoundingClientRect();return n.lefto.left&&n.topo.top},e}());t.popupManager=h,t.Tooltip=u;var d=function(e){function t(t){void 0===t&&(t=document.body);var n=e.call(this,t)||this;n.timeout=void 0,n.lastT=0,n.idleTime=350,n.lastEvent=void 0,n.onMouseOut=n.onMouseOut.bind(n),n.onMouseMove=n.onMouseMove.bind(n),n.waitForHover=n.waitForHover.bind(n),n.hide=n.hide.bind(n);var o=n.getElement();return o.style.whiteSpace="pre-wrap",o.style.pointerEvents="auto",o.addEventListener("mouseout",n.onMouseOut),o.tabIndex=-1,o.addEventListener("blur",function(){o.contains(document.activeElement)||this.hide()}.bind(n)),o.addEventListener("wheel",a.stopPropagation),n}return i(t,e),t.prototype.addToEditor=function(e){e.on("mousemove",this.onMouseMove),e.on("mousedown",this.hide),e.renderer.getMouseEventTarget().addEventListener("mouseout",this.onMouseOut,!0)},t.prototype.removeFromEditor=function(e){e.off("mousemove",this.onMouseMove),e.off("mousedown",this.hide),e.renderer.getMouseEventTarget().removeEventListener("mouseout",this.onMouseOut,!0),this.timeout&&(clearTimeout(this.timeout),this.timeout=null)},t.prototype.onMouseMove=function(e,t){this.lastEvent=e,this.lastT=Date.now();var n=t.$mouseHandler.isMousePressed;if(this.isOpen){var o=this.lastEvent&&this.lastEvent.getDocumentPosition();this.range&&this.range.contains(o.row,o.column)&&!n&&!this.isOutsideOfText(this.lastEvent)||this.hide()}this.timeout||n||(this.lastEvent=e,this.timeout=setTimeout(this.waitForHover,this.idleTime))},t.prototype.waitForHover=function(){this.timeout&&clearTimeout(this.timeout);var e=Date.now()-this.lastT;this.idleTime-e>10?this.timeout=setTimeout(this.waitForHover,this.idleTime-e):(this.timeout=null,this.lastEvent&&!this.isOutsideOfText(this.lastEvent)&&this.$gatherData(this.lastEvent,this.lastEvent.editor))},t.prototype.isOutsideOfText=function(e){var t=e.editor,n=e.getDocumentPosition(),o=t.session.getLine(n.row);if(n.column==o.length){var i=t.renderer.pixelToScreenCoordinates(e.clientX,e.clientY),r=t.session.documentToScreenPosition(n.row,n.column);if(r.column!=i.column||r.row!=i.row)return!0}return!1},t.prototype.setDataProvider=function(e){this.$gatherData=e},t.prototype.showForRange=function(e,t,n,o){if(!(o&&o!=this.lastEvent||this.isOpen&&document.activeElement==this.getElement())){var i=e.renderer;this.isOpen||(h.addPopup(this),this.$registerCloseEvents(),this.setTheme(i.theme)),this.isOpen=!0,this.addMarker(t,e.session),this.range=l.fromPoints(t.start,t.end);var r=i.textToScreenCoordinates(t.start.row,t.start.column),s=i.scroller.getBoundingClientRect();r.pageX=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},s=e("../lib/dom"),a=e("../lib/event"),l=e("../tooltip").Tooltip,c=e("../config").nls;t.GutterHandler=function(e){var t,n,o=e.editor,i=o.renderer.$gutterLayer,r=new u(o);function l(){t&&(t=clearTimeout(t)),r.isOpen&&(r.hideTooltip(),o.off("mousewheel",l))}function c(e){r.setPosition(e.x,e.y)}e.editor.setDefaultHandler("guttermousedown",(function(t){if(o.isFocused()&&0==t.getButton()&&"foldWidgets"!=i.getRegion(t)){var n=t.getDocumentPosition().row,r=o.session.selection;if(t.getShiftKey())r.selectTo(n,0);else{if(2==t.domEvent.detail)return o.selectAll(),t.preventDefault();e.$clickSelection=o.selection.getLineRange(n)}return e.setState("selectByLines"),e.captureMouse(t),t.preventDefault()}})),e.editor.setDefaultHandler("guttermousemove",(function(a){var u=a.domEvent.target||a.domEvent.srcElement;if(s.hasCssClass(u,"ace_fold-widget"))return l();r.isOpen&&e.$tooltipFollowsMouse&&c(a),n=a,t||(t=setTimeout((function(){t=null,n&&!e.isMousePressed?function(){var t=n.getDocumentPosition().row;if(t==o.session.getLength()){var s=o.renderer.pixelToScreenCoordinates(0,n.y).row,a=n.$pos;if(s>o.session.documentToScreenRow(a.row,a.column))return l()}if(r.showTooltip(t),r.isOpen)if(o.on("mousewheel",l),e.$tooltipFollowsMouse)c(n);else{var u=n.getGutterRow(),h=i.$lines.get(u);if(h){var d=h.element.querySelector(".ace_gutter_annotation").getBoundingClientRect(),p=r.getElement().style;p.left=d.right+"px",p.top=d.bottom+"px"}else c(n)}}():l()}),50))})),a.addListener(o.renderer.$gutter,"mouseout",(function(e){n=null,r.isOpen&&!t&&(t=setTimeout((function(){t=null,l()}),50))}),o),o.on("changeSession",l),o.on("input",l)};var u=function(e){function t(t){var n=e.call(this,t.container)||this;return n.editor=t,n}return i(t,e),t.prototype.setPosition=function(e,t){var n=window.innerWidth||document.documentElement.clientWidth,o=window.innerHeight||document.documentElement.clientHeight,i=this.getWidth(),r=this.getHeight();(e+=15)+i>n&&(e-=e+i-n),(t+=15)+r>o&&(t-=20+r),l.prototype.setPosition.call(this,e,t)},Object.defineProperty(t,"annotationLabels",{get:function(){return{error:{singular:c("error"),plural:c("errors")},warning:{singular:c("warning"),plural:c("warnings")},info:{singular:c("information message"),plural:c("information messages")}}},enumerable:!1,configurable:!0}),t.prototype.showTooltip=function(e){var n,o=this.editor.renderer.$gutterLayer,i=o.$annotations[e];n=i?{text:Array.from(i.text),type:Array.from(i.type)}:{text:[],type:[]};var r=o.session.getFoldLine(e);if(r&&o.$showFoldedAnnotations){for(var s,a={error:[],warning:[],info:[]},l=e+1;l<=r.end.row;l++)if(o.$annotations[l])for(var c=0;c ").concat(n.text[l]);d[n.type[l].replace("_fold","")].push(g)}var m=[].concat(d.error,d.warning,d.info).join("
    ");this.setHtml(m),this.$element.setAttribute("aria-live","polite"),this.isOpen||(this.setTheme(this.editor.renderer.theme),this.setClassName("ace_gutter-tooltip")),this.show(),this.editor._signal("showGutterTooltip",this)},t.prototype.hideTooltip=function(){this.$element.removeAttribute("aria-live"),this.hide(),this.editor._signal("hideGutterTooltip",this)},t.annotationsToSummaryString=function(e){var n,o,i=[];try{for(var s=r(["error","warning","info"]),a=s.next();!a.done;a=s.next()){var l=a.value;if(e[l].length){var c=1===e[l].length?t.annotationLabels[l].singular:t.annotationLabels[l].plural;i.push("".concat(e[l].length," ").concat(c))}}}catch(e){n={error:e}}finally{try{a&&!a.done&&(o=s.return)&&o.call(s)}finally{if(n)throw n.error}}return i.join(", ")},t}(l);t.GutterTooltip=u})),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("../lib/event"),i=e("../lib/useragent"),r=function(){function e(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1}return e.prototype.stopPropagation=function(){o.stopPropagation(this.domEvent),this.propagationStopped=!0},e.prototype.preventDefault=function(){o.preventDefault(this.domEvent),this.defaultPrevented=!0},e.prototype.stop=function(){this.stopPropagation(),this.preventDefault()},e.prototype.getDocumentPosition=function(){return this.$pos||(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY)),this.$pos},e.prototype.getGutterRow=function(){var e=this.getDocumentPosition().row;return this.editor.session.documentToScreenRow(e,0)-this.editor.session.documentToScreenRow(this.editor.renderer.$gutterLayer.$lines.get(0).row,0)},e.prototype.inSelection=function(){if(null!==this.$inSelection)return this.$inSelection;var e=this.editor.getSelectionRange();if(e.isEmpty())this.$inSelection=!1;else{var t=this.getDocumentPosition();this.$inSelection=e.contains(t.row,t.column)}return this.$inSelection},e.prototype.getButton=function(){return o.getButton(this.domEvent)},e.prototype.getShiftKey=function(){return this.domEvent.shiftKey},e.prototype.getAccelKey=function(){return i.isMac?this.domEvent.metaKey:this.domEvent.ctrlKey},e}();t.MouseEvent=r})),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=e("../lib/event"),r=e("../lib/useragent");function s(e){var t=e.editor,n=o.createElement("div");n.style.cssText="top:-100px;position:absolute;z-index:2147483647;opacity:0.5",n.textContent=" ",["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"].forEach((function(t){e[t]=this[t]}),this),t.on("mousedown",this.onMouseDown.bind(e));var s,l,c,u,h,d,p,g,m,f,y,v=t.container,b=0;function w(){var e=d;(function(e,n){var o=Date.now(),i=!n||e.row!=n.row,r=!n||e.column!=n.column;!f||i||r?(t.moveCursorToPosition(e),f=o,y={x:l,y:c}):a(y.x,y.y,l,c)>5?f=null:o-f>=200&&(t.renderer.scrollCursorIntoView(),f=null)})(d=t.renderer.screenToTextCoordinates(l,c),e),function(e,n){var o=Date.now(),i=t.renderer.layerConfig.lineHeight,r=t.renderer.layerConfig.characterWidth,s=t.renderer.scroller.getBoundingClientRect(),a={x:{left:l-s.left,right:s.right-l},y:{top:c-s.top,bottom:s.bottom-c}},u=Math.min(a.x.left,a.x.right),h=Math.min(a.y.top,a.y.bottom),d={row:e.row,column:e.column};u/r<=2&&(d.column+=a.x.left=200&&t.renderer.scrollCursorIntoView(d):m=o:m=null}(d,e)}function x(){h=t.selection.toOrientedRange(),s=t.session.addMarker(h,"ace_selection",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(u),w(),u=setInterval(w,20),b=0,i.addListener(document,"mousemove",$)}function k(){clearInterval(u),t.session.removeMarker(s),s=null,t.selection.fromOrientedRange(h),t.isFocused()&&!g&&t.$resetCursorStyle(),h=null,d=null,b=0,m=null,f=null,i.removeListener(document,"mousemove",$)}this.onDragStart=function(e){if(this.cancelDrag||!v.draggable){var o=this;return setTimeout((function(){o.startSelect(),o.captureMouse(e)}),0),e.preventDefault()}h=t.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=t.getReadOnly()?"copy":"copyMove",t.container.appendChild(n),i.setDragImage&&i.setDragImage(n,0,0),setTimeout((function(){t.container.removeChild(n)})),i.clearData(),i.setData("Text",t.session.getTextRange()),g=!0,this.setState("drag")},this.onDragEnd=function(e){if(v.draggable=!1,g=!1,this.setState(null),!t.getReadOnly()){var n=e.dataTransfer.dropEffect;p||"move"!=n||t.session.remove(t.getSelectionRange()),t.$resetCursorStyle()}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(!t.getReadOnly()&&S(e.dataTransfer))return l=e.clientX,c=e.clientY,s||x(),b++,e.dataTransfer.dropEffect=p=E(e),i.preventDefault(e)},this.onDragOver=function(e){if(!t.getReadOnly()&&S(e.dataTransfer))return l=e.clientX,c=e.clientY,s||(x(),b++),null!==C&&(C=null),e.dataTransfer.dropEffect=p=E(e),i.preventDefault(e)},this.onDragLeave=function(e){if(--b<=0&&s)return k(),p=null,i.preventDefault(e)},this.onDrop=function(e){if(d){var n=e.dataTransfer;if(g)switch(p){case"move":h=h.contains(d.row,d.column)?{start:d,end:d}:t.moveText(h,d);break;case"copy":h=t.moveText(h,d,!0)}else{var o=n.getData("Text");h={start:d,end:t.session.insert(d,o)},t.focus(),p=null}return k(),i.preventDefault(e)}},i.addListener(v,"dragstart",this.onDragStart.bind(e),t),i.addListener(v,"dragend",this.onDragEnd.bind(e),t),i.addListener(v,"dragenter",this.onDragEnter.bind(e),t),i.addListener(v,"dragover",this.onDragOver.bind(e),t),i.addListener(v,"dragleave",this.onDragLeave.bind(e),t),i.addListener(v,"drop",this.onDrop.bind(e),t);var C=null;function $(){null==C&&(C=setTimeout((function(){null!=C&&s&&k()}),20))}function S(e){var t=e.types;return!t||Array.prototype.some.call(t,(function(e){return"text/plain"==e||"Text"==e}))}function E(e){var t=["copy","copymove","all","uninitialized"],n=r.isMac?e.altKey:e.ctrlKey,o="uninitialized";try{o=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var i="none";return n&&t.indexOf(o)>=0?i="copy":["move","copymove","linkmove","all","uninitialized"].indexOf(o)>=0?i="move":t.indexOf(o)>=0&&(i="copy"),i}}function a(e,t,n,o){return Math.sqrt(Math.pow(n-e,2)+Math.pow(o-t,2))}(function(){this.dragWait=function(){Date.now()-this.mousedownEvent.time>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){this.editor.container.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor;e.container.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var t=r.isWin?"default":"move";e.renderer.setCursorStyle(t),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;r.isIE&&"dragReady"==this.state&&a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>3&&t.dragDrop(),"dragWait"===this.state&&a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))},this.onMouseDown=function(e){if(this.$dragEnabled){this.mousedownEvent=e;var t=this.editor,n=e.inSelection(),o=e.getButton();if(1===(e.domEvent.detail||1)&&0===o&&n){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var i=e.domEvent.target||e.domEvent.srcElement;"unselectable"in i&&(i.unselectable="on"),t.getDragDelay()?(r.isWebKit&&(this.cancelDrag=!0,t.container.draggable=!0),this.setState("dragWait")):this.startDrag(),this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}}).call(s.prototype),t.DragdropHandler=s})),ace.define("ace/mouse/touch_handler",["require","exports","module","ace/mouse/mouse_event","ace/lib/event","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("./mouse_event").MouseEvent,i=e("../lib/event"),r=e("../lib/dom");t.addTouchListeners=function(e,t){var n,s,a,l,c,u,h,d,p,g="scroll",m=0,f=0,y=0,v=0;function b(){var e,n,o;p||(e=window.navigator&&window.navigator.clipboard,n=!1,o=function(o){var i,s,a=o.target.getAttribute("action");if("more"==a||!n)return n=!n,i=t.getCopyText(),s=t.session.getUndoManager().hasUndo(),void p.replaceChild(r.buildDom(n?["span",!i&&["span",{class:"ace_mobile-button",action:"selectall"},"Select All"],i&&["span",{class:"ace_mobile-button",action:"copy"},"Copy"],i&&["span",{class:"ace_mobile-button",action:"cut"},"Cut"],e&&["span",{class:"ace_mobile-button",action:"paste"},"Paste"],s&&["span",{class:"ace_mobile-button",action:"undo"},"Undo"],["span",{class:"ace_mobile-button",action:"find"},"Find"],["span",{class:"ace_mobile-button",action:"openCommandPalette"},"Palette"]]:["span"]),p.firstChild);"paste"==a?e.readText().then((function(e){t.execCommand(a,e)})):a&&("cut"!=a&&"copy"!=a||(e?e.writeText(t.getCopyText()):document.execCommand("copy")),t.execCommand(a)),p.firstChild.style.display="none",n=!1,"openCommandPalette"!=a&&t.focus()},p=r.buildDom(["div",{class:"ace_mobile-menu",ontouchstart:function(e){g="menu",e.stopPropagation(),e.preventDefault(),t.textInput.focus()},ontouchend:function(e){e.stopPropagation(),e.preventDefault(),o(e)},onclick:o},["span"],["span",{class:"ace_mobile-button",action:"more"},"..."]],t.container));var i=t.selection.cursor,s=t.renderer.textToScreenCoordinates(i.row,i.column),a=t.renderer.textToScreenCoordinates(0,0).pageX,l=t.renderer.scrollLeft,c=t.container.getBoundingClientRect();p.style.top=s.pageY-c.top-3+"px",s.pageX-c.left1)return clearTimeout(c),c=null,a=-1,void(g="zoom");d=t.$mouseHandler.isMousePressed=!0;var r=t.renderer.layerConfig.lineHeight,u=t.renderer.layerConfig.lineHeight,p=e.timeStamp;l=p;var b=i[0],w=b.clientX,k=b.clientY;Math.abs(n-w)+Math.abs(s-k)>r&&(a=-1),n=e.clientX=w,s=e.clientY=k,y=v=0;var C=new o(e,t);if(h=C.getDocumentPosition(),p-a<500&&1==i.length&&!m)f++,e.preventDefault(),e.button=0,function(){c=null,clearTimeout(c),t.selection.moveToPosition(h);var e=f>=2?t.selection.getLineRange(h.row):t.session.getBracketRange(h);e&&!e.isEmpty()?t.selection.setRange(e):t.selection.selectWord(),g="wait"}();else{f=0;var $=t.selection.cursor,S=t.selection.isEmpty()?$:t.selection.anchor,E=t.renderer.$cursorLayer.getPixelPosition($,!0),O=t.renderer.$cursorLayer.getPixelPosition(S,!0),T=t.renderer.scroller.getBoundingClientRect(),A=t.renderer.layerConfig.offset,_=t.renderer.scrollLeft,L=function(e,t){return(e/=u)*e+(t=t/r-.75)*t};if(e.clientXR?"cursor":"anchor"),g=R<3.5?"anchor":M<3.5?"cursor":"scroll",c=setTimeout(x,450)}a=p}),t),i.addListener(e,"touchend",(function(e){d=t.$mouseHandler.isMousePressed=!1,u&&clearInterval(u),"zoom"==g?(g="",m=0):c?(t.selection.moveToPosition(h),m=0,b()):"scroll"==g?(m+=60,u=setInterval((function(){m--<=0&&(clearInterval(u),u=null),Math.abs(y)<.01&&(y=0),Math.abs(v)<.01&&(v=0),m<20&&(y*=.9),m<20&&(v*=.9);var e=t.session.getScrollTop();t.renderer.scrollBy(10*y,10*v),e==t.session.getScrollTop()&&(m=0)}),10),w()):b(),clearTimeout(c),c=null}),t),i.addListener(e,"touchmove",(function(e){c&&(clearTimeout(c),c=null);var i=e.touches;if(!(i.length>1||"zoom"==g)){var r=i[0],a=n-r.clientX,u=s-r.clientY;if("wait"==g){if(!(a*a+u*u>4))return e.preventDefault();g="cursor"}n=r.clientX,s=r.clientY,e.clientX=r.clientX,e.clientY=r.clientY;var h=e.timeStamp,d=h-l;if(l=h,"scroll"==g){var p=new o(e,t);p.speed=1,p.wheelX=a,p.wheelY=u,10*Math.abs(a)=e){for(r=h+1;r=e;)r++;for(a=h,l=r-1;a=t.length||2!=(l=n[i-1])&&3!=l||2!=(c=t[i+1])&&3!=c?4:(r&&(c=3),c==l?c:4);case 10:return 2==(l=i>0?n[i-1]:5)&&i+10&&2==n[i-1])return 2;if(r)return 4;for(p=i+1,d=t.length;p=1425&&m<=2303||64286==m;if(l=t[p],f&&(1==l||7==l))return 1}return i<1||5==(l=t[i-1])?4:n[i-1];case 5:return r=!1,s=!0,o;case 6:return a=!0,4;case 13:case 14:case 16:case 17:case 15:r=!1;case h:return 4}}function f(e){var t=e.charCodeAt(0),n=t>>8;return 0==n?t>191?0:d[t]:5==n?/[\u0591-\u05f4]/.test(e)?1:0:6==n?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?12:/[\u0660-\u0669\u066b-\u066c]/.test(e)?3:1642==t?u:/[\u06f0-\u06f9]/.test(e)?2:7:32==n&&t<=8287?p[255&t]:254==n&&t>=65136?7:4}t.L=0,t.R=1,t.EN=2,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.RLE=7,t.DOT="·",t.doBidiReorder=function(e,n,u){if(e.length<2)return{};var d=e.split(""),p=new Array(d.length),y=new Array(d.length),v=[];o=u?1:0,function(e,t,n,u){var h=o?c:l,d=null,p=null,g=null,y=0,v=null,b=-1,w=null,x=null,k=[];if(!u)for(w=0,u=[];w0)if(16==v){for(w=b;w-1){for(w=b;w=0&&8==u[C];C--)t[C]=o}}(d,v,d.length,n);for(var b=0;b7&&n[b]<13||4===n[b]||n[b]===h)?v[b]=t.ON_R:b>0&&"ل"===d[b-1]&&/\u0622|\u0623|\u0625|\u0627/.test(d[b])&&(v[b-1]=v[b]=t.R_H,b++);for(d[d.length-1]===t.DOT&&(v[d.length-1]=t.B),"‫"===d[0]&&(v[0]=t.RLE),b=0;b=0&&(e=this.session.$docRowCache[n])}return e},e.prototype.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length)for(var n,o=this.session.$getRowCacheIndex(t,this.currentRow);this.currentRow-e>0&&(n=this.session.$getRowCacheIndex(t,this.currentRow-e-1))===o;)o=n,e++;else e=this.currentRow;return e},e.prototype.updateRowLine=function(e,t){void 0===e&&(e=this.getDocumentRow());var n=e===this.session.getLength()-1?this.EOF:this.EOL;if(this.wrapIndent=0,this.line=this.session.getLine(e),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE,this.session.$useWrapMode){var r=this.session.$wrapData[e];r&&(void 0===t&&(t=this.getSplitIndex()),t>0&&r.length?(this.wrapIndent=r.indent,this.wrapOffset=this.wrapIndent*this.charWidths[o.L],this.line=tt?this.session.getOverwrite()?e:e-1:t,i=o.getVisualFromLogicalIdx(n,this.bidiMap),r=this.bidiMap.bidiLevels,s=0;!this.session.getOverwrite()&&e<=t&&r[i]%2!=0&&i++;for(var a=0;at&&r[i]%2==0&&(s+=this.charWidths[r[i]]),this.wrapIndent&&(s+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(s+=this.rtlLineOffset),s},e.prototype.getSelections=function(e,t){var n,o=this.bidiMap,i=o.bidiLevels,r=[],s=0,a=Math.min(e,t)-this.wrapIndent,l=Math.max(e,t)-this.wrapIndent,c=!1,u=!1,h=0;this.wrapIndent&&(s+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var d,p=0;p=a&&dn+r/2;){if(n+=r,o===i.length-1){r=0;break}r=this.charWidths[i[++o]]}return o>0&&i[o-1]%2!=0&&i[o]%2==0?(e0&&i[o-1]%2==0&&i[o]%2!=0?t=1+(e>n?this.bidiMap.logicalFromVisual[o]:this.bidiMap.logicalFromVisual[o-1]):this.isRtlDir&&o===i.length-1&&0===r&&i[o-1]%2==0||!this.isRtlDir&&0===o&&i[o]%2!=0?t=1+this.bidiMap.logicalFromVisual[o]:(o>0&&i[o-1]%2!=0&&0!==r&&o--,t=this.bidiMap.logicalFromVisual[o]),0===t&&this.isRtlDir&&t++,t+this.wrapIndent},e}();t.BidiHandler=s})),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],(function(e,t,n){"use strict";var o=e("./lib/oop"),i=e("./lib/lang"),r=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,a=function(){function e(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var t=this;this.cursor.on("change",(function(e){t.$cursorChanged=!0,t.$silent||t._emit("changeCursor"),t.$isEmpty||t.$silent||t._emit("changeSelection"),t.$keepDesiredColumnOnChange||e.old.column==e.value.column||(t.$desiredColumn=null)})),this.anchor.on("change",(function(){t.$anchorChanged=!0,t.$isEmpty||t.$silent||t._emit("changeSelection")}))}return e.prototype.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},e.prototype.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},e.prototype.getCursor=function(){return this.lead.getPosition()},e.prototype.setAnchor=function(e,t){this.$isEmpty=!1,this.anchor.setPosition(e,t)},e.prototype.getAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},e.prototype.getSelectionLead=function(){return this.lead.getPosition()},e.prototype.isBackwards=function(){var e=this.anchor,t=this.lead;return e.row>t.row||e.row==t.row&&e.column>t.column},e.prototype.getRange=function(){var e=this.anchor,t=this.lead;return this.$isEmpty?s.fromPoints(t,t):this.isBackwards()?s.fromPoints(t,e):s.fromPoints(e,t)},e.prototype.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},e.prototype.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},e.prototype.setRange=function(e,t){var n=t?e.end:e.start,o=t?e.start:e.end;this.$setSelection(n.row,n.column,o.row,o.column)},e.prototype.$setSelection=function(e,t,n,o){if(!this.$silent){var i=this.$isEmpty,r=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(e,t),this.cursor.setPosition(n,o),this.$isEmpty=!s.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),(this.$cursorChanged||this.$anchorChanged||i!=this.$isEmpty||r)&&this._emit("changeSelection")}},e.prototype.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},e.prototype.selectTo=function(e,t){this.$moveSelection((function(){this.moveCursorTo(e,t)}))},e.prototype.selectToPosition=function(e){this.$moveSelection((function(){this.moveCursorToPosition(e)}))},e.prototype.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},e.prototype.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},e.prototype.selectUp=function(){this.$moveSelection(this.moveCursorUp)},e.prototype.selectDown=function(){this.$moveSelection(this.moveCursorDown)},e.prototype.selectRight=function(){this.$moveSelection(this.moveCursorRight)},e.prototype.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},e.prototype.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},e.prototype.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},e.prototype.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},e.prototype.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},e.prototype.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},e.prototype.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},e.prototype.getWordRange=function(e,t){if(void 0===t){var n=e||this.lead;e=n.row,t=n.column}return this.session.getWordRange(e,t)},e.prototype.selectWord=function(){this.setSelectionRange(this.getWordRange())},e.prototype.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},e.prototype.getLineRange=function(e,t){var n,o="number"==typeof e?e:this.lead.row,i=this.session.getFoldLine(o);return i?(o=i.start.row,n=i.end.row):n=o,!0===t?new s(o,0,n,this.session.getLine(n).length):new s(o,0,n+1,0)},e.prototype.selectLine=function(){this.setSelectionRange(this.getLineRange())},e.prototype.moveCursorUp=function(){this.moveCursorBy(-1,0)},e.prototype.moveCursorDown=function(){this.moveCursorBy(1,0)},e.prototype.wouldMoveIntoSoftTab=function(e,t,n){var o=e.column,i=e.column+t;return n<0&&(o=e.column-t,i=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(o,i).split(" ").length-1==t},e.prototype.moveCursorLeft=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(0===t.column)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var n=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,n,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},e.prototype.moveCursorRight=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(e.end.row,e.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=o)}}this.moveCursorTo(t.row,t.column)},e.prototype.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},e.prototype.moveCursorFileStart=function(){this.moveCursorTo(0,0)},e.prototype.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),o=n.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var i=this.session.getFoldAt(e,t,1);if(i)this.moveCursorTo(i.end.row,i.end.column);else{if(this.session.nonTokenRe.exec(o)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,o=n.substring(t)),t>=n.length)return this.moveCursorTo(e,n.length),this.moveCursorRight(),void(e0&&this.moveCursorWordLeft());this.session.tokenRe.exec(r)&&(n-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,n)}},e.prototype.$shortWordEndIndex=function(e){var t,n=0,o=/\s/,i=this.session.tokenRe;if(i.lastIndex=0,this.session.tokenRe.exec(e))n=this.session.tokenRe.lastIndex;else{for(;(t=e[n])&&o.test(t);)n++;if(n<1)for(i.lastIndex=0;(t=e[n])&&!i.test(t);)if(i.lastIndex=0,n++,o.test(t)){if(n>2){n--;break}for(;(t=e[n])&&o.test(t);)n++;if(n>2)break}}return i.lastIndex=0,n},e.prototype.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),o=n.substring(t),i=this.session.getFoldAt(e,t,1);if(i)return this.moveCursorTo(i.end.row,i.end.column);if(t==n.length){var r=this.doc.getLength();do{e++,o=this.doc.getLine(e)}while(e0&&/^\s*$/.test(o));n=o.length,/\s+$/.test(o)||(o="")}var r=i.stringReverse(o),s=this.$shortWordEndIndex(r);return this.moveCursorTo(t,n-s)},e.prototype.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},e.prototype.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},e.prototype.moveCursorBy=function(e,t){var n,o=this.session.documentToScreenPosition(this.lead.row,this.lead.column);if(0===t&&(0!==e&&(this.session.$bidiHandler.isBidiRow(o.row,this.lead.row)?(n=this.session.$bidiHandler.getPosLeft(o.column),o.column=Math.round(n/this.session.$bidiHandler.charWidths[0])):n=o.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?o.column=this.$desiredColumn:this.$desiredColumn=o.column),0!=e&&this.session.lineWidgets&&this.session.lineWidgets[this.lead.row]){var i=this.session.lineWidgets[this.lead.row];e<0?e-=i.rowsAbove||0:e>0&&(e+=i.rowCount-(i.rowsAbove||0))}var r=this.session.screenToDocumentPosition(o.row+e,o.column,n);0!==e&&0===t&&r.row===this.lead.row&&(r.column,this.lead.column),this.moveCursorTo(r.row,r.column+t,0===t)},e.prototype.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},e.prototype.moveCursorTo=function(e,t,n){var o=this.session.getFoldAt(e,t,1);o&&(e=o.start.row,t=o.start.column),this.$keepDesiredColumnOnChange=!0;var i=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(i.charAt(t))&&i.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},e.prototype.moveCursorToScreen=function(e,t,n){var o=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(o.row,o.column,n)},e.prototype.detach=function(){this.lead.detach(),this.anchor.detach()},e.prototype.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},e.prototype.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},e.prototype.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var n=this.getCursor();return s.fromPoints(t,n)}catch(e){return s.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},e.prototype.toJSON=function(){if(this.rangeCount)var e=this.ranges.map((function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t}));else(e=this.getRange()).isBackwards=this.isBackwards();return e},e.prototype.fromJSON=function(e){if(null==e.start){if(this.rangeList&&e.length>1){this.toSingleRange(e[0]);for(var t=e.length;t--;){var n=s.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},e.prototype.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0},e}();a.prototype.setSelectionAnchor=a.prototype.setAnchor,a.prototype.getSelectionAnchor=a.prototype.getAnchor,a.prototype.setSelectionRange=a.prototype.setRange,o.implement(a.prototype,r),t.Selection=a})),ace.define("ace/tokenizer",["require","exports","module","ace/lib/report_error"],(function(e,t,n){"use strict";var o=e("./lib/report_error").reportError,i=2e3,r=function(){function e(e){for(var t in this.states=e,this.regExps={},this.matchMappings={},this.states){for(var n=this.states[t],o=[],i=0,r=this.matchMappings[t]={defaultToken:"text"},s="g",a=[],l=0;l1?this.$applyToken:c.token),h>1&&(/\\\d/.test(c.regex)?u=c.regex.replace(/\\([0-9]+)/g,(function(e,t){return"\\"+(parseInt(t,10)+i+1)})):(h=1,u=this.removeCapturingGroups(c.regex)),c.splitRegex||"string"==typeof c.token||a.push(c)),r[i]=l,i+=h,o.push(u),c.onMatch||(c.onMatch=null)}}o.length||(r[0]=0,o.push("$")),a.forEach((function(e){e.splitRegex=this.createSplitterRegexp(e.regex,s)}),this),this.regExps[t]=new RegExp("("+o.join(")|(")+")|($)",s)}}return e.prototype.$setMaxTokenCount=function(e){i=0|e},e.prototype.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),n=this.token.apply(this,t);if("string"==typeof n)return[{type:n,value:e}];for(var o=[],i=0,r=n.length;iu){var y=e.substring(u,f-m.length);d.type==p?d.value+=y:(d.type&&c.push(d),d={type:p,value:y})}for(var v=0;vi){for(h>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});u1&&n[0]!==o&&n.unshift("#tmp",o),{tokens:c,state:n.length?n:o}},e}();r.prototype.reportError=o,t.Tokenizer=r})),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/deep_copy"],(function(e,t,n){"use strict";var o=e("../lib/deep_copy").deepCopy,i=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(t)for(var n in e){for(var o=e[n],i=0;i=this.$rowTokens.length;){if(this.$row+=1,e||(e=this.$session.getLength()),this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},e.prototype.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},e.prototype.getCurrentTokenRow=function(){return this.$row},e.prototype.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,n=e[t].start;if(void 0!==n)return n;for(n=0;t>0;)n+=e[t-=1].value.length;return n},e.prototype.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},e.prototype.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new o(this.$row,t,this.$row,t+e.value.length)},e}();t.TokenIterator=i})),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],(function(e,t,n){"use strict";var o,i=e("../../lib/oop"),r=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,a=e("../../lib/lang"),l=["text","paren.rparen","rparen","paren","punctuation.operator"],c=["text","paren.rparen","rparen","paren","punctuation.operator","comment"],u={},h={'"':'"',"'":"'"},d=function(e){var t=-1;if(e.multiSelect&&(t=e.selection.index,u.rangeCount!=e.multiSelect.rangeCount&&(u={rangeCount:e.multiSelect.rangeCount})),u[t])return o=u[t];o=u[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},p=function(e,t,n,o){var i=e.end.row-e.start.row;return{text:n+t+o,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},g=function(e){e=e||{},this.add("braces","insertion",(function(t,n,i,r,s){var l=i.getCursorPosition(),c=r.doc.getLine(l.row);if("{"==s){d(i);var u=i.getSelectionRange(),h=r.doc.getTextRange(u);if(""!==h&&"{"!==h&&i.getWrapBehavioursEnabled())return p(u,h,"{","}");if(g.isSaneInsertion(i,r))return/[\]\}\)]/.test(c[l.column])||i.inMultiSelectMode||e.braces?(g.recordAutoInsert(i,r,"}"),{text:"{}",selection:[1,1]}):(g.recordMaybeInsert(i,r,"{"),{text:"{",selection:[1,1]})}else if("}"==s){if(d(i),"}"==c.substring(l.column,l.column+1)&&null!==r.$findOpeningBracket("}",{column:l.column+1,row:l.row})&&g.isAutoInsertedClosing(l,c,s))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}else{if("\n"==s||"\r\n"==s){d(i);var m="";if(g.isMaybeInsertedClosing(l,c)&&(m=a.stringRepeat("}",o.maybeInsertedBrackets),g.clearMaybeInsertedClosing()),"}"===c.substring(l.column,l.column+1)){var f=r.findMatchingBracket({row:l.row,column:l.column+1},"}");if(!f)return null;var y=this.$getIndent(r.getLine(f.row))}else{if(!m)return void g.clearMaybeInsertedClosing();y=this.$getIndent(c)}var v=y+r.getTabString();return{text:"\n"+v+"\n"+y+m,selection:[1,v.length,1,v.length]}}g.clearMaybeInsertedClosing()}})),this.add("braces","deletion",(function(e,t,n,i,r){var s=i.doc.getTextRange(r);if(!r.isMultiLine()&&"{"==s){if(d(n),"}"==i.doc.getLine(r.start.row).substring(r.end.column,r.end.column+1))return r.end.column++,r;o.maybeInsertedBrackets--}})),this.add("parens","insertion",(function(e,t,n,o,i){if("("==i){d(n);var r=n.getSelectionRange(),s=o.doc.getTextRange(r);if(""!==s&&n.getWrapBehavioursEnabled())return p(r,s,"(",")");if(g.isSaneInsertion(n,o))return g.recordAutoInsert(n,o,")"),{text:"()",selection:[1,1]}}else if(")"==i){d(n);var a=n.getCursorPosition(),l=o.doc.getLine(a.row);if(")"==l.substring(a.column,a.column+1)&&null!==o.$findOpeningBracket(")",{column:a.column+1,row:a.row})&&g.isAutoInsertedClosing(a,l,i))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}})),this.add("parens","deletion",(function(e,t,n,o,i){var r=o.doc.getTextRange(i);if(!i.isMultiLine()&&"("==r&&(d(n),")"==o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)))return i.end.column++,i})),this.add("brackets","insertion",(function(e,t,n,o,i){if("["==i){d(n);var r=n.getSelectionRange(),s=o.doc.getTextRange(r);if(""!==s&&n.getWrapBehavioursEnabled())return p(r,s,"[","]");if(g.isSaneInsertion(n,o))return g.recordAutoInsert(n,o,"]"),{text:"[]",selection:[1,1]}}else if("]"==i){d(n);var a=n.getCursorPosition(),l=o.doc.getLine(a.row);if("]"==l.substring(a.column,a.column+1)&&null!==o.$findOpeningBracket("]",{column:a.column+1,row:a.row})&&g.isAutoInsertedClosing(a,l,i))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}})),this.add("brackets","deletion",(function(e,t,n,o,i){var r=o.doc.getTextRange(i);if(!i.isMultiLine()&&"["==r&&(d(n),"]"==o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)))return i.end.column++,i})),this.add("string_dquotes","insertion",(function(e,t,n,o,i){var r=o.$mode.$quotes||h;if(1==i.length&&r[i]){if(this.lineCommentStart&&-1!=this.lineCommentStart.indexOf(i))return;d(n);var s=i,a=n.getSelectionRange(),l=o.doc.getTextRange(a);if(!(""===l||1==l.length&&r[l])&&n.getWrapBehavioursEnabled())return p(a,l,s,s);if(!l){var c=n.getCursorPosition(),u=o.doc.getLine(c.row),g=u.substring(c.column-1,c.column),m=u.substring(c.column,c.column+1),f=o.getTokenAt(c.row,c.column),y=o.getTokenAt(c.row,c.column+1);if("\\"==g&&f&&/escape/.test(f.type))return null;var v,b=f&&/string|escape/.test(f.type),w=!y||/string|escape/.test(y.type);if(m==s)(v=b!==w)&&/string\.end/.test(y.type)&&(v=!1);else{if(b&&!w)return null;if(b&&w)return null;var x=o.$mode.tokenRe;x.lastIndex=0;var k=x.test(g);x.lastIndex=0;var C=x.test(m),$=o.$mode.$pairQuotesAfter;if(!($&&$[s]&&$[s].test(g))&&k||C)return null;if(m&&!/[\s;,.})\]\\]/.test(m))return null;var S=u[c.column-2];if(g==s&&(S==s||x.test(S)))return null;v=!0}return{text:v?s+s:"",selection:[1,1]}}}})),this.add("string_dquotes","deletion",(function(e,t,n,o,i){var r=o.$mode.$quotes||h,s=o.doc.getTextRange(i);if(!i.isMultiLine()&&r.hasOwnProperty(s)&&(d(n),o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)==s))return i.end.column++,i})),!1!==e.closeDocComment&&this.add("doc comment end","insertion",(function(e,t,n,o,i){if("doc-start"===e&&("\n"===i||"\r\n"===i)&&n.selection.isEmpty()){var r=n.getCursorPosition(),s=o.doc.getLine(r.row),a=o.doc.getLine(r.row+1),l=this.$getIndent(s);if(/\s*\*/.test(a))return/^\s*\*/.test(s)?{text:i+l+"* ",selection:[1,3+l.length,1,3+l.length]}:{text:i+l+" * ",selection:[1,3+l.length,1,3+l.length]};if(/\/\*\*/.test(s.substring(0,r.column)))return{text:i+l+" * "+i+" "+l+"*/",selection:[1,4+l.length,1,4+l.length]}}}))};g.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),o=new s(t,n.row,n.column);if(!this.$matchTokenType(o.getCurrentToken()||"text",l)){if(/[)}\]]/.test(e.session.getLine(n.row)[n.column]))return!0;var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",l))return!1}return o.stepForward(),o.getCurrentTokenRow()!==n.row||this.$matchTokenType(o.getCurrentToken()||"text",c)},g.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},g.recordAutoInsert=function(e,t,n){var i=e.getCursorPosition(),r=t.doc.getLine(i.row);this.isAutoInsertedClosing(i,r,o.autoInsertedLineEnd[0])||(o.autoInsertedBrackets=0),o.autoInsertedRow=i.row,o.autoInsertedLineEnd=n+r.substr(i.column),o.autoInsertedBrackets++},g.recordMaybeInsert=function(e,t,n){var i=e.getCursorPosition(),r=t.doc.getLine(i.row);this.isMaybeInsertedClosing(i,r)||(o.maybeInsertedBrackets=0),o.maybeInsertedRow=i.row,o.maybeInsertedLineStart=r.substr(0,i.column)+n,o.maybeInsertedLineEnd=r.substr(i.column),o.maybeInsertedBrackets++},g.isAutoInsertedClosing=function(e,t,n){return o.autoInsertedBrackets>0&&e.row===o.autoInsertedRow&&n===o.autoInsertedLineEnd[0]&&t.substr(e.column)===o.autoInsertedLineEnd},g.isMaybeInsertedClosing=function(e,t){return o.maybeInsertedBrackets>0&&e.row===o.maybeInsertedRow&&t.substr(e.column)===o.maybeInsertedLineEnd&&t.substr(0,e.column)==o.maybeInsertedLineStart},g.popAutoInsertedClosing=function(){o.autoInsertedLineEnd=o.autoInsertedLineEnd.substr(1),o.autoInsertedBrackets--},g.clearMaybeInsertedClosing=function(){o&&(o.maybeInsertedBrackets=0,o.maybeInsertedRow=-1)},i.inherits(g,r),t.CstyleBehaviour=g})),ace.define("ace/unicode",["require","exports","module"],(function(e,t,n){"use strict";for(var o=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],i=0,r=[],s=0;s2?o%c!=c-1:o%c==0})}else{if(!this.blockComment)return!1;var p=this.blockComment.start,g=this.blockComment.end,m=new RegExp("^(\\s*)(?:"+l.escapeRegExp(p)+")"),f=new RegExp("(?:"+l.escapeRegExp(g)+")\\s*$"),y=function(e,t){b(e,t)||r&&!/\S/.test(e)||(i.insertInLine({row:t,column:e.length},g),i.insertInLine({row:t,column:a},p))},v=function(e,t){var n;(n=e.match(f))&&i.removeInLine(t,e.length-n[0].length,e.length),(n=e.match(m))&&i.removeInLine(t,n[1].length,n[0].length)},b=function(e,n){if(m.test(e))return!0;for(var o=t.getTokens(n),i=0;ie.length&&(x=e.length)})),a==1/0&&(a=x,r=!1,s=!1),u&&a%c!=0&&(a=Math.floor(a/c)*c),w(s?v:y)},this.toggleBlockComment=function(e,t,n,o){var i=this.blockComment;if(i){!i.start&&i[0]&&(i=i[0]);var r,s,a=(m=new c(t,o.row,o.column)).getCurrentToken(),l=(t.selection,t.selection.toOrientedRange());if(a&&/comment/.test(a.type)){for(var h,d;a&&/comment/.test(a.type);){if(-1!=(f=a.value.indexOf(i.start))){var p=m.getCurrentTokenRow(),g=m.getCurrentTokenColumn()+f;h=new u(p,g,p,g+i.start.length);break}a=m.stepBackward()}var m;for(a=(m=new c(t,o.row,o.column)).getCurrentToken();a&&/comment/.test(a.type);){var f;if(-1!=(f=a.value.indexOf(i.end))){p=m.getCurrentTokenRow(),g=m.getCurrentTokenColumn()+f,d=new u(p,g,p,g+i.end.length);break}a=m.stepForward()}d&&t.remove(d),h&&(t.remove(h),r=h.start.row,s=-i.start.length)}else s=i.start.length,r=n.start.row,t.insert(n.end,i.end),t.insert(n.start,i.start);l.start.row==r&&(l.start.column+=s),l.end.row==r&&(l.end.column+=s),t.selection.fromOrientedRange(l)}},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.autoOutdent=function(e,t,n){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){for(var t in this.$embeds=[],this.$modes={},e)if(e[t]){var n=e[t],i=n.prototype.$id,r=o.$modes[i];r||(o.$modes[i]=r=new n),o.$modes[t]||(o.$modes[t]=r),this.$embeds.push(t),this.$modes[t]=r}var s=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"];for(t=0;tthis.row)){var t=function(e,t,n){var o="insert"==e.action,i=(o?1:-1)*(e.end.row-e.start.row),r=(o?1:-1)*(e.end.column-e.start.column),a=e.start,l=o?a:e.end;return s(t,a,n)?{row:t.row,column:t.column}:s(l,t,!n)?{row:t.row+i,column:t.column+(t.row==l.row?r:0)}:{row:a.row,column:a.column}}(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(t.row,t.column,!0)}},e.prototype.setPosition=function(e,t,n){var o;if(o=n?{row:e,column:t}:this.$clipPositionToDocument(e,t),this.row!=o.row||this.column!=o.column){var i={row:this.row,column:this.column};this.row=o.row,this.column=o.column,this._signal("change",{old:i,value:o})}},e.prototype.detach=function(){this.document.off("change",this.$onChange)},e.prototype.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},e.prototype.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n},e}();function s(e,t,n){var o=n?e.column<=t.column:e.column=n&&(e=n-1,t=void 0);var o=this.getLine(e);return null==t&&(t=o.length),{row:e,column:t=Math.min(Math.max(t,0),o.length)}},e.prototype.clonePos=function(e){return{row:e.row,column:e.column}},e.prototype.pos=function(e,t){return{row:e,column:t}},e.prototype.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},e.prototype.insertFullLines=function(e,t){var n=0;(e=Math.min(Math.max(e,0),this.getLength()))0,o=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},e.prototype.replace=function(e,t){return e instanceof s||(e=s.fromPoints(e.start,e.end)),0===t.length&&e.isEmpty()?e.start:t==this.getTextRange(e)?e.end:(this.remove(e),t?this.insert(e.start,t):e.start)},e.prototype.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},e.prototype.applyDelta=function(e,t){var n="insert"==e.action;(n?e.lines.length<=1&&!e.lines[0]:!s.comparePoints(e.start,e.end))||(n&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(i(this.$lines,e,t),this._signal("change",e)))},e.prototype.$safeApplyDelta=function(e){var t=this.$lines.length;("remove"==e.action&&e.start.row20){n.running=setTimeout(n.$worker,20);break}}n.currentLine=t,-1==o&&(o=t),r<=o&&n.fireUpdateEvent(r,o)}}}return e.prototype.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},e.prototype.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},e.prototype.fireUpdateEvent=function(e,t){var n={first:e,last:t};this._signal("update",{data:n})},e.prototype.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},e.prototype.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},e.prototype.$updateOnChange=function(e){var t=e.start.row,n=e.end.row-t;if(0===n)this.lines[t]=null;else if("remove"==e.action)this.lines.splice(t,n+1,null),this.states.splice(t,n+1,null);else{var o=Array(n+1);o.unshift(t,1),this.lines.splice.apply(this.lines,o),this.states.splice.apply(this.states,o)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},e.prototype.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},e.prototype.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},e.prototype.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},e.prototype.$tokenizeRow=function(e){var t=this.doc.getLine(e),n=this.states[e-1],o=this.tokenizer.getLineTokens(t,n,e);return this.states[e]+""!=o.state+""?(this.states[e]=o.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=o.tokens},e.prototype.cleanup=function(){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.removeAllListeners()},e}();o.implement(r.prototype,i),t.BackgroundTokenizer=r})),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/range"],(function(e,t,n){"use strict";var o=e("./lib/lang"),i=e("./range").Range,r=function(){function e(e,t,n){void 0===n&&(n="text"),this.setRegexp(e),this.clazz=t,this.type=n}return e.prototype.setRegexp=function(e){this.regExp+""!=e+""&&(this.regExp=e,this.cache=[])},e.prototype.update=function(e,t,n,r){if(this.regExp)for(var s=r.firstRow,a=r.lastRow,l={},c=s;c<=a;c++){var u=this.cache[c];null==u&&((u=o.getMatchOffsets(n.getLine(c),this.regExp)).length>this.MAX_RANGES&&(u=u.slice(0,this.MAX_RANGES)),u=u.map((function(e){return new i(c,e.offset,c,e.offset+e.length)})),this.cache[c]=u.length?u:"");for(var h=u.length;h--;){var d=u[h].toScreenRange(n),p=d.toString();l[p]||(l[p]=!0,t.drawSingleLineMarker(e,d,this.clazz,r))}}},e}();r.prototype.MAX_RANGES=500,t.SearchHighlight=r})),ace.define("ace/undomanager",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=function(){function e(){this.$maxRev=0,this.$fromUndo=!1,this.$undoDepth=1/0,this.reset()}return e.prototype.addSession=function(e){this.$session=e},e.prototype.add=function(e,t,n){if(!this.$fromUndo&&e!=this.$lastDelta){if(this.$keepRedoStack||(this.$redoStack.length=0),!1===t||!this.lastDeltas){this.lastDeltas=[];var o=this.$undoStack.length;o>this.$undoDepth-1&&this.$undoStack.splice(0,o-this.$undoDepth+1),this.$undoStack.push(this.lastDeltas),e.id=this.$rev=++this.$maxRev}"remove"!=e.action&&"insert"!=e.action||(this.$lastDelta=e),this.lastDeltas.push(e)}},e.prototype.addSelection=function(e,t){this.selections.push({value:e,rev:t||this.$rev})},e.prototype.startNewGroup=function(){return this.lastDeltas=null,this.$rev},e.prototype.markIgnored=function(e,t){null==t&&(t=this.$rev+1);for(var n=this.$undoStack,o=n.length;o--;){var i=n[o][0];if(i.id<=e)break;i.id0},e.prototype.canRedo=function(){return this.$redoStack.length>0},e.prototype.bookmark=function(e){null==e&&(e=this.$rev),this.mark=e},e.prototype.isAtBookmark=function(){return this.$rev===this.mark},e.prototype.toJSON=function(){return{$redoStack:this.$redoStack,$undoStack:this.$undoStack}},e.prototype.fromJSON=function(e){this.reset(),this.$undoStack=e.$undoStack,this.$redoStack=e.$redoStack},e.prototype.$prettyPrint=function(e){return e?a(e):a(this.$undoStack)+"\n---\n"+a(this.$redoStack)},e}();o.prototype.hasUndo=o.prototype.canUndo,o.prototype.hasRedo=o.prototype.canRedo,o.prototype.isClean=o.prototype.isAtBookmark,o.prototype.markClean=o.prototype.bookmark;var i=e("./range").Range,r=i.comparePoints;function s(e){return{row:e.row,column:e.column}}function a(e){if(e=e||this,Array.isArray(e))return e.map(a).join("\n");var t="";return e.action?(t="insert"==e.action?"+":"-",t+="["+e.lines+"]"):e.value&&(t=Array.isArray(e.value)?e.value.map(l).join("\n"):l(e.value)),e.start&&(t+=l(e)),(e.id||e.rev)&&(t+="\t("+(e.id||e.rev)+")"),t}function l(e){return e.start.row+":"+e.start.column+"=>"+e.end.row+":"+e.end.column}function c(e,t){var n="insert"==e.action,o="insert"==t.action;if(n&&o)if(r(t.start,e.end)>=0)d(t,e,-1);else{if(!(r(t.start,e.start)<=0))return null;d(e,t,1)}else if(n&&!o)if(r(t.start,e.end)>=0)d(t,e,-1);else{if(!(r(t.end,e.start)<=0))return null;d(e,t,-1)}else if(!n&&o)if(r(t.start,e.start)>=0)d(t,e,1);else{if(!(r(t.start,e.start)<=0))return null;d(e,t,1)}else if(!n&&!o)if(r(t.start,e.start)>=0)d(t,e,1);else{if(!(r(t.end,e.start)<=0))return null;d(e,t,-1)}return[t,e]}function u(e,t){for(var n=e.length;n--;)for(var o=0;o=0?d(e,t,-1):(r(e.start,t.start)<=0||d(e,i.fromPoints(t.start,e.start),-1),d(t,e,1));else if(!n&&o)r(t.start,e.end)>=0?d(t,e,-1):(r(t.start,e.start)<=0||d(t,i.fromPoints(e.start,t.start),-1),d(e,t,1));else if(!n&&!o)if(r(t.start,e.end)>=0)d(t,e,-1);else{var s,a;if(!(r(t.end,e.start)<=0))return r(e.start,t.start)<0&&(s=e,e=g(e,t.start)),r(e.end,t.end)>0&&(a=g(e,t.end)),p(t.end,e.start,e.end,-1),a&&!s&&(e.lines=a.lines,e.start=a.start,e.end=a.end,a=e),[t,s,a].filter(Boolean);d(e,t,-1)}return[t,e]}function d(e,t,n){p(e.start,t.start,t.end,n),p(e.end,t.start,t.end,n)}function p(e,t,n,o){e.row==(1==o?t:n).row&&(e.column+=o*(n.column-t.column)),e.row+=o*(n.row-t.row)}function g(e,t){var n=e.lines,o=e.end;e.end=s(t);var i=e.end.row-e.start.row,r=n.splice(i,n.length),a=i?t.column:t.column-e.start.column;return n.push(r[0].substring(0,a)),r[0]=r[0].substr(a),{start:s(t),end:o,lines:r,action:e.action}}function m(e,t){t=function(e){return{start:s(e.start),end:s(e.end),action:e.action,lines:e.lines.slice()}}(t);for(var n=e.length;n--;){for(var o=e[n],i=0;ithis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort((function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)})),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},e.prototype.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},e.prototype.walk=function(e,t,n){var o,i,r=0,s=this.folds,a=!0;null==t&&(t=this.end.row,n=this.end.column);for(var l=0;l0)){var l=o(e,s.start);return 0===a?t&&0!==l?-r-2:r:l>0||0===l&&!t?r:-r-1}}return-r-1},e.prototype.add=function(e){var t=!e.isEmpty(),n=this.pointIndex(e.start,t);n<0&&(n=-n-1);var o=this.pointIndex(e.end,t,n);return o<0?o=-o-1:o++,this.ranges.splice(n,o-n,e)},e.prototype.addList=function(e){for(var t=[],n=e.length;n--;)t.push.apply(t,this.add(e[n]));return t},e.prototype.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},e.prototype.merge=function(){for(var e,t=[],n=this.ranges,i=(n=n.sort((function(e,t){return o(e.start,t.start)})))[0],r=1;r=0},e.prototype.containsPoint=function(e){return this.pointIndex(e)>=0},e.prototype.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},e.prototype.clipRows=function(e,t){var n=this.ranges;if(n[0].start.row>t||n[n.length-1].start.row=o);s++);if("insert"==e.action){for(var l=i-o,c=-t.column+n.column;so);s++)if(u.start.row==o&&u.start.column>=t.column&&(u.start.column==t.column&&this.$bias<=0||(u.start.column+=c,u.start.row+=l)),u.end.row==o&&u.end.column>=t.column){if(u.end.column==t.column&&this.$bias<0)continue;u.end.column==t.column&&c>0&&su.start.column&&u.end.column==r[s+1].start.column&&(u.end.column-=c),u.end.column+=c,u.end.row+=l}}else for(l=o-i,c=t.column-n.column;si);s++)u.end.rowt.column)&&(u.end.column=t.column,u.end.row=t.row):(u.end.column+=c,u.end.row+=l):u.end.row>i&&(u.end.row+=l),u.start.rowt.column)&&(u.start.column=t.column,u.start.row=t.row):(u.start.column+=c,u.start.row+=l):u.start.row>i&&(u.start.row+=l);if(0!=l&&s=e)return i;if(i.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var n=this.$foldData,o=0;for(t&&(o=n.indexOf(t)),-1==o&&(o=0);o=e)return i}return null},this.getFoldedRowCount=function(e,t){for(var n=this.$foldData,o=t-e+1,i=0;i=t){a=e?o-=t-a:o=0);break}s>=e&&(o-=a>=e?s-a:s-e+1)}return o},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort((function(e,t){return e.start.row-t.start.row})),e},this.addFold=function(e,t){var n,o=this.$foldData,s=!1;e instanceof r?n=e:(n=new r(t,e)).collapseChildren=t.collapseChildren,this.$clipRangeToDocument(n.range);var a=n.start.row,l=n.start.column,c=n.end.row,u=n.end.column,h=this.getFoldAt(a,l,1),d=this.getFoldAt(c,u,-1);if(h&&d==h)return h.addSubFold(n);h&&!h.range.isStart(a,l)&&this.removeFold(h),d&&!d.range.isEnd(c,u)&&this.removeFold(d);var p=this.getFoldsInRange(n.range);p.length>0&&(this.removeFolds(p),n.collapseChildren||p.forEach((function(e){n.addSubFold(e)})));for(var g=0;g0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach((function(e){this.expandFold(e)}),this)},this.unfold=function(e,t){var n,i;if(null==e)n=new o(0,0,this.getLength(),0),null==t&&(t=!0);else if("number"==typeof e)n=new o(e,0,e,this.getLine(e).length);else if("row"in e)n=o.fromPoints(e,e);else{if(Array.isArray(e))return i=[],e.forEach((function(e){i=i.concat(this.unfold(e))}),this),i;n=e}for(var r=i=this.getFoldsInRangeList(n);1==i.length&&o.comparePoints(i[0].start,n.start)<0&&o.comparePoints(i[0].end,n.end)>0;)this.expandFolds(i),i=this.getFoldsInRangeList(n);if(0!=t?this.removeFolds(i):this.expandFolds(i),r.length)return r},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var n=this.getFoldLine(e,t);return n?n.end.row:e},this.getRowFoldStart=function(e,t){var n=this.getFoldLine(e,t);return n?n.start.row:e},this.getFoldDisplayLine=function(e,t,n,o,i){null==o&&(o=e.start.row),null==i&&(i=0),null==t&&(t=e.end.row),null==n&&(n=this.getLine(t).length);var r=this.doc,s="";return e.walk((function(e,t,n,a){if(!(tu)break}while(r&&l.test(r.type)&&!/^comment.start/.test(r.type));r=i.stepBackward()}else r=i.getCurrentToken();return c.end.row=i.getCurrentTokenRow(),c.end.column=i.getCurrentTokenColumn(),/^comment.end/.test(r.type)||(c.end.column+=r.value.length-2),c}},this.foldAll=function(e,t,n,o){null==n&&(n=1e5);var i=this.foldWidgets;if(i){t=t||this.getLength();for(var r=e=e||0;r=e&&(r=s.end.row,s.collapseChildren=n,this.addFold("...",s))}}},this.foldToLevel=function(e){for(this.foldAll();e-- >0;)this.unfold(null,!1)},this.foldAllComments=function(){var e=this;this.foldAll(null,null,null,(function(t){for(var n=e.getTokens(t),o=0;o=0;){var r=n[i];if(null==r&&(r=n[i]=this.getFoldWidget(i)),"start"==r){var s=this.getFoldWidgetRange(i);if(o||(o=s),s&&s.end.row>=e)break}i--}return{range:-1!==i&&s,firstRange:o}},this.onFoldWidgetClick=function(e,t){t instanceof a&&(t=t.domEvent);var n={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey};if(!this.$toggleFoldWidget(e,n)){var o=t.target||t.srcElement;o&&/ace_fold-widget/.test(o.className)&&(o.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(this.getFoldWidget){var n=this.getFoldWidget(e),o=this.getLine(e),i="end"===n?-1:1,r=this.getFoldAt(e,-1===i?0:o.length,i);if(r)return t.children||t.all?this.removeFold(r):this.expandFold(r),r;var s=this.getFoldWidgetRange(e,!0);if(s&&!s.isMultiLine()&&(r=this.getFoldAt(s.start.row,s.start.column,1))&&s.isEqual(r.range))return this.removeFold(r),r;if(t.siblings){var a=this.getParentFoldRangeData(e);if(a.range)var l=a.range.start.row+1,c=a.range.end.row;this.foldAll(l,c,t.all?1e4:0)}else t.children?(c=s?s.end.row:this.getLength(),this.foldAll(e+1,c,t.all?1e4:0)):s&&(t.all&&(s.collapseChildren=1e4),this.addFold("...",s));return s}},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var n=this.$toggleFoldWidget(t,{});if(!n){var o=this.getParentFoldRangeData(t,!0);if(n=o.range||o.firstRange){t=n.start.row;var i=this.getFoldAt(t,this.getLine(t).length,1);i?this.removeFold(i):this.addFold("...",n)}}},this.updateFoldWidgets=function(e){var t=e.start.row,n=e.end.row-t;if(0===n)this.foldWidgets[t]=null;else if("remove"==e.action)this.foldWidgets.splice(t,n+1,null);else{var o=Array(n+1);o.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,o)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}})),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],(function(e,t,n){"use strict";var o=e("../token_iterator").TokenIterator,i=e("../range").Range;t.BracketMatch=function(){this.findMatchingBracket=function(e,t){if(0==e.column)return null;var n=t||this.getLine(e.row).charAt(e.column-1);if(""==n)return null;var o=n.match(/([\(\[\{])|([\)\]\}])/);return o?o[1]?this.$findClosingBracket(o[1],e):this.$findOpeningBracket(o[2],e):null},this.getBracketRange=function(e){var t,n=this.getLine(e.row),o=!0,r=n.charAt(e.column-1),s=r&&r.match(/([\(\[\{])|([\)\]\}])/);if(s||(r=n.charAt(e.column),e={row:e.row,column:e.column+1},s=r&&r.match(/([\(\[\{])|([\)\]\}])/),o=!1),!s)return null;if(s[1]){if(!(a=this.$findClosingBracket(s[1],e)))return null;t=i.fromPoints(e,a),o||(t.end.column++,t.start.column--),t.cursor=t.end}else{var a;if(!(a=this.$findOpeningBracket(s[2],e)))return null;t=i.fromPoints(a,e),o||(t.start.column++,t.end.column--),t.cursor=t.start}return t},this.getMatchingBracketRanges=function(e,t){var n=this.getLine(e.row),o=/([\(\[\{])|([\)\]\}])/,r=!t&&n.charAt(e.column-1),s=r&&r.match(o);if(s||(r=(void 0===t||t)&&n.charAt(e.column),e={row:e.row,column:e.column+1},s=r&&r.match(o)),!s)return null;var a=new i(e.row,e.column-1,e.row,e.column),l=s[1]?this.$findClosingBracket(s[1],e):this.$findOpeningBracket(s[2],e);return l?[a,new i(l.row,l.column,l.row,l.column+1)]:[a]},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(e,t,n){var i=this.$brackets[e],r=1,s=new o(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){n||(n=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)").replace(/-close\b/,"-(close|open)")+")+"));for(var l=t.column-s.getCurrentTokenColumn()-2,c=a.value;;){for(;l>=0;){var u=c.charAt(l);if(u==i){if(0==(r-=1))return{row:s.getCurrentTokenRow(),column:l+s.getCurrentTokenColumn()}}else u==e&&(r+=1);l-=1}do{a=s.stepBackward()}while(a&&!n.test(a.type));if(null==a)break;l=(c=a.value).length-1}return null}},this.$findClosingBracket=function(e,t,n){var i=this.$brackets[e],r=1,s=new o(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){n||(n=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)").replace(/-open\b/,"-(close|open)")+")+"));for(var l=t.column-s.getCurrentTokenColumn();;){for(var c=a.value,u=c.length;l"===t.value?o=!0:-1!==t.type.indexOf("tag-name")&&(n=!0))}while(t&&!n);return t},this.$findClosingTag=function(e,t){var n,o=t.value,r=t.value,s=0,a=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);t=e.stepForward();var l=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length),c=!1;do{if(n=t,t=e.stepForward()){if(">"===t.value&&!c){var u=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);c=!0}if(-1!==t.type.indexOf("tag-name")){if(r===(o=t.value))if("<"===n.value)s++;else if(""!==t.value)return;var p=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1)}}else r===o&&"/>"===t.value&&--s<0&&(p=d=h=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+2),u=new i(l.end.row,l.end.column,l.end.row,l.end.column+1))}}while(t&&s>=0);if(a&&u&&h&&p&&l&&d)return{openTag:new i(a.start.row,a.start.column,u.end.row,u.end.column),closeTag:new i(h.start.row,h.start.column,p.end.row,p.end.column),openTagName:l,closeTagName:d}},this.$findOpeningTag=function(e,t){var n=e.getCurrentToken(),o=t.value,r=0,s=e.getCurrentTokenRow(),a=e.getCurrentTokenColumn(),l=a+2,c=new i(s,a,s,l);e.stepForward();var u=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length);if((t=e.stepForward())&&">"===t.value){var h=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);e.stepBackward(),e.stepBackward();do{if(t=n,s=e.getCurrentTokenRow(),l=(a=e.getCurrentTokenColumn())+t.value.length,n=e.stepBackward(),t)if(-1!==t.type.indexOf("tag-name")){if(o===t.value)if("<"===n.value){if(++r>0){var d=new i(s,a,s,l),p=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);do{t=e.stepForward()}while(t&&">"!==t.value);var g=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1)}}else""===t.value){for(var m=0,f=n;f;){if(-1!==f.type.indexOf("tag-name")&&f.value===o){r--;break}if("<"===f.value)break;f=e.stepBackward(),m++}for(var y=0;yn&&(this.$docRowCache.splice(n,t),this.$screenRowCache.splice(n,t))},e.prototype.$getRowCacheIndex=function(e,t){for(var n=0,o=e.length-1;n<=o;){var i=n+o>>1,r=e[i];if(t>r)n=i+1;else{if(!(t=t);r++);return(n=o[r])?(n.index=r,n.start=i-n.value.length,n):null},e.prototype.setUndoManager=function(e){if(this.$undoManager=e,this.$informUndoManager&&this.$informUndoManager.cancel(),e){var t=this;e.addSession(this),this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.mergeUndoDeltas=!1},this.$informUndoManager=i.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},e.prototype.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},e.prototype.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},e.prototype.getTabString=function(){return this.getUseSoftTabs()?i.stringRepeat(" ",this.getTabSize()):"\t"},e.prototype.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},e.prototype.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},e.prototype.setTabSize=function(e){this.setOption("tabSize",e)},e.prototype.getTabSize=function(){return this.$tabSize},e.prototype.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize==0},e.prototype.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},e.prototype.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},e.prototype.setOverwrite=function(e){this.setOption("overwrite",e)},e.prototype.getOverwrite=function(){return this.$overwrite},e.prototype.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},e.prototype.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},e.prototype.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},e.prototype.getBreakpoints=function(){return this.$breakpoints},e.prototype.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(o=!!n.charAt(t-1).match(this.tokenRe)),o||(o=!!n.charAt(t).match(this.tokenRe)),o)var i=this.tokenRe;else i=/^\s+$/.test(n.slice(t-1,t+1))?/\s/:this.nonTokenRe;var r=t;if(r>0){do{r--}while(r>=0&&n.charAt(r).match(i));r++}for(var s=t;se&&(e=t.screenWidth)})),this.lineWidgetWidth=e},e.prototype.$computeWidth=function(e){if(this.$modified||e){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var t=this.doc.getAllLines(),n=this.$rowLengthCache,o=0,i=0,r=this.$foldData[i],s=r?r.start.row:1/0,a=t.length,l=0;ls){if((l=r.end.row+1)>=a)break;s=(r=this.$foldData[i++])?r.start.row:1/0}null==n[l]&&(n[l]=this.$getStringScreenWidth(t[l])[0]),n[l]>o&&(o=n[l])}this.screenWidth=o}},e.prototype.getLine=function(e){return this.doc.getLine(e)},e.prototype.getLines=function(e,t){return this.doc.getLines(e,t)},e.prototype.getLength=function(){return this.doc.getLength()},e.prototype.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},e.prototype.insert=function(e,t){return this.doc.insert(e,t)},e.prototype.remove=function(e){return this.doc.remove(e)},e.prototype.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},e.prototype.undoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var n=e.length-1;-1!=n;n--){var o=e[n];"insert"==o.action||"remove"==o.action?this.doc.revertDelta(o):o.folds&&this.addFolds(o.folds)}!t&&this.$undoSelect&&(e.selectionBefore?this.selection.fromJSON(e.selectionBefore):this.selection.setRange(this.$getUndoSelection(e,!0))),this.$fromUndo=!1}},e.prototype.redoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var n=0;ne.end.column&&(r.start.column+=c),r.end.row==e.end.row&&r.end.column>e.end.column&&(r.end.column+=c)),s&&r.start.row>=e.end.row&&(r.start.row+=s,r.end.row+=s)}if(r.end=this.insert(r.start,o),i.length){var a=e.start,l=r.start,c=(s=l.row-a.row,l.column-a.column);this.addFolds(i.map((function(e){return(e=e.clone()).start.row==a.row&&(e.start.column+=c),e.end.row==a.row&&(e.end.column+=c),e.start.row+=s,e.end.row+=s,e})))}return r},e.prototype.indentRows=function(e,t,n){n=n.replace(/\t/g,this.getTabString());for(var o=e;o<=t;o++)this.doc.insertInLine({row:o,column:0},n)},e.prototype.outdentRows=function(e){for(var t=e.collapseRows(),n=new u(0,0,0,0),o=this.getTabSize(),i=t.start.row;i<=t.end.row;++i){var r=this.getLine(i);n.start.row=i,n.end.row=i;for(var s=0;s0){var i;if((i=this.getRowFoldEnd(t+n))>this.doc.getLength()-1)return 0;o=i-t}else e=this.$clipRowToDocument(e),o=(t=this.$clipRowToDocument(t))-e+1;var r=new u(e,0,t,Number.MAX_VALUE),s=this.getFoldsInRange(r).map((function(e){return(e=e.clone()).start.row+=o,e.end.row+=o,e})),a=0==n?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+o,a),s.length&&this.addFolds(s),o},e.prototype.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},e.prototype.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},e.prototype.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},e.prototype.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},e.prototype.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},e.prototype.$clipPositionToDocument=function(e,t){if(t=Math.max(0,t),e<0)e=0,t=0;else{var n=this.doc.getLength();e>=n?(e=n-1,t=this.doc.getLine(n-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},e.prototype.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},e.prototype.setUseWrapMode=function(e){if(e!=this.$useWrapMode){if(this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0),e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},e.prototype.getUseWrapMode=function(){return this.$useWrapMode},e.prototype.setWrapLimitRange=function(e,t){this.$wrapLimitRange.min===e&&this.$wrapLimitRange.max===t||(this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},e.prototype.adjustWrapLimit=function(e,t){var n=this.$wrapLimitRange;n.max<0&&(n={min:t,max:t});var o=this.$constrainWrapLimit(e,n.min,n.max);return o!=this.$wrapLimit&&o>1&&(this.$wrapLimit=o,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0)},e.prototype.$constrainWrapLimit=function(e,t,n){return t&&(e=Math.max(t,e)),n&&(e=Math.min(n,e)),e},e.prototype.getWrapLimit=function(){return this.$wrapLimit},e.prototype.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},e.prototype.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},e.prototype.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,n=e.action,o=e.start,i=e.end,r=o.row,s=i.row,a=s-r,l=null;if(this.$updating=!0,0!=a)if("remove"===n){this[t?"$wrapData":"$rowLengthCache"].splice(r,a);var c=this.$foldData;l=this.getFoldsInRange(e),this.removeFolds(l);var u=0;if(m=this.getFoldLine(i.row)){m.addRemoveChars(i.row,i.column,o.column-i.column),m.shiftRow(-a);var h=this.getFoldLine(r);h&&h!==m&&(h.merge(m),m=h),u=c.indexOf(m)+1}for(;u=i.row&&m.shiftRow(-a);s=r}else{var d=Array(a);d.unshift(r,0);var p=t?this.$wrapData:this.$rowLengthCache;if(p.splice.apply(p,d),c=this.$foldData,u=0,m=this.getFoldLine(r)){var g=m.range.compareInside(o.row,o.column);0==g?(m=m.split(o.row,o.column))&&(m.shiftRow(a),m.addRemoveChars(s,0,i.column-o.column)):-1==g&&(m.addRemoveChars(r,0,i.column-o.column),m.shiftRow(a)),u=c.indexOf(m)+1}for(;u=r&&m.shiftRow(a)}}else a=Math.abs(e.start.column-e.end.column),"remove"===n&&(l=this.getFoldsInRange(e),this.removeFolds(l),a=-a),(m=this.getFoldLine(r))&&m.addRemoveChars(r,o.column,a);return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(r,s):this.$updateRowLengthCache(r,s),l},e.prototype.$updateRowLengthCache=function(e,t,n){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},e.prototype.$updateWrapData=function(e,t){var n,o,i=this.doc.getAllLines(),r=this.getTabSize(),s=this.$wrapData,a=this.$wrapLimit,l=e;for(t=Math.min(t,i.length-1);l<=t;)(o=this.getFoldLine(l,o))?(n=[],o.walk(function(e,t,o,r){var s;if(null!=e){(s=this.$getDisplayTokens(e,n.length))[0]=v;for(var a=1;at-h;){var d=r+t-h;if(e[d-1]>=x&&e[d]>=x)u(d);else if(e[d]!=v&&e[d]!=b){for(var p=Math.max(d-(t-(t>>2)),r-1);d>p&&e[d]p&&e[d]p&&e[d]==w;)d--}else for(;d>p&&e[d]p?u(++d):(e[d=r+t]==y&&d--,u(d-h))}else{for(;d!=r-1&&e[d]!=v;d--);if(d>r){u(d);continue}for(d=r+t;d39&&r<48||r>57&&r<64?o.push(w):r>=4352&&$(r)?o.push(f,y):o.push(f)}return o},e.prototype.$getStringScreenWidth=function(e,t,n){if(0==t)return[0,0];var o,i;for(null==t&&(t=1/0),n=n||0,i=0;i=4352&&$(o)?n+=2:n+=1,!(n>t));i++);return[n,i]},e.prototype.getRowLength=function(e){var t=1;return this.lineWidgets&&(t+=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0),this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+t:t},e.prototype.getRowLineCount=function(e){return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1:1},e.prototype.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),n=this.$wrapData[t.row];return n.length&&n[0]=0){a=c[u],r=this.$docRowCache[u];var d=e>c[h-1]}else d=!h;for(var p=this.getLength()-1,g=this.getNextFoldLine(r),m=g?g.start.row:1/0;a<=e&&!(a+(l=this.getRowLength(r))>e||r>=p);)a+=l,++r>m&&(r=g.end.row+1,m=(g=this.getNextFoldLine(r,g))?g.start.row:1/0),d&&(this.$docRowCache.push(r),this.$screenRowCache.push(a));if(g&&g.start.row<=r)o=this.getFoldDisplayLine(g),r=g.start.row;else{if(a+l<=e||r>p)return{row:p,column:this.getLine(p).length};o=this.getLine(r),g=null}var f=0,y=Math.floor(e-a);if(this.$useWrapMode){var v=this.$wrapData[r];v&&(i=v[y],y>0&&v.length&&(f=v.indent,s=v[y-1]||v[v.length-1],o=o.substring(s)))}return void 0!==n&&this.$bidiHandler.isBidiRow(a+y,r,y)&&(t=this.$bidiHandler.offsetToCol(n)),s+=this.$getStringScreenWidth(o,t-f)[1],this.$useWrapMode&&s>=i&&(s=i-1),g?g.idxToPosition(s):{row:r,column:s}},e.prototype.documentToScreenPosition=function(e,t){if(void 0===t)var n=this.$clipPositionToDocument(e.row,e.column);else n=this.$clipPositionToDocument(e,t);e=n.row,t=n.column;var o,i=0,r=null;(o=this.getFoldAt(e,t,1))&&(e=o.start.row,t=o.start.column);var s,a=0,l=this.$docRowCache,c=this.$getRowCacheIndex(l,e),u=l.length;if(u&&c>=0){a=l[c],i=this.$screenRowCache[c];var h=e>l[u-1]}else h=!u;for(var d=this.getNextFoldLine(a),p=d?d.start.row:1/0;a=p){if((s=d.end.row+1)>e)break;p=(d=this.getNextFoldLine(s,d))?d.start.row:1/0}else s=a+1;i+=this.getRowLength(a),a=s,h&&(this.$docRowCache.push(a),this.$screenRowCache.push(i))}var g="";d&&a>=p?(g=this.getFoldDisplayLine(d,e,t),r=d.start.row):(g=this.getLine(e).substring(0,t),r=e);var m=0;if(this.$useWrapMode){var f=this.$wrapData[r];if(f){for(var y=0;g.length>=f[y];)i++,y++;g=g.substring(f[y-1]||0,g.length),m=y>0?f.indent:0}}return this.lineWidgets&&this.lineWidgets[a]&&this.lineWidgets[a].rowsAbove&&(i+=this.lineWidgets[a].rowsAbove),{row:i,column:m+this.$getStringScreenWidth(g)[0]}},e.prototype.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},e.prototype.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},e.prototype.getScreenLength=function(){var e=0,t=null;if(this.$useWrapMode)for(var n=this.$wrapData.length,o=0,i=(a=0,(t=this.$foldData[a++])?t.start.row:1/0);oi&&(o=t.end.row+1,i=(t=this.$foldData[a++])?t.start.row:1/0)}else{e=this.getLength();for(var s=this.$foldData,a=0;an);r++);return[o,r]})},e.prototype.destroy=function(){this.destroyed||(this.bgTokenizer.setDocument(null),this.bgTokenizer.cleanup(),this.destroyed=!0),this.$stopWorker(),this.removeAllListeners(),this.doc&&this.doc.off("change",this.$onChange),this.selection.detach()},e}();m.$uid=0,m.prototype.$modes=s.$modes,m.prototype.getValue=m.prototype.toString,m.prototype.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},m.prototype.$overwrite=!1,m.prototype.$mode=null,m.prototype.$modeId=null,m.prototype.$scrollTop=0,m.prototype.$scrollLeft=0,m.prototype.$wrapLimit=80,m.prototype.$useWrapMode=!1,m.prototype.$wrapLimitRange={min:null,max:null},m.prototype.lineWidgets=null,m.prototype.isFullWidth=$,o.implement(m.prototype,a);var f=1,y=2,v=3,b=4,w=9,x=10,k=11,C=12;function $(e){return!(e<4352)&&(e>=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510)}e("./edit_session/folding").Folding.call(m.prototype),e("./edit_session/bracket_match").BracketMatch.call(m.prototype),s.defineOptions(m.prototype,"session",{wrap:{set:function(e){if(e&&"off"!=e?"free"==e?e=!0:"printMargin"==e?e=-1:"string"==typeof e&&(e=parseInt(e,10)||!1):e=!1,this.$wrap!=e)if(this.$wrap=e,e){var t="number"==typeof e?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}else this.setUseWrapMode(!1)},get:function(){return this.getUseWrapMode()?-1==this.$wrap?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){(e="auto"==e?"text"!=this.$mode.type:"text"!=e)!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){(e=parseInt(e))>0&&this.$tabSize!==e&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function(e){this.setFoldStyle(e)},handlesSet:!0},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId},handlesSet:!0}}),t.EditSession=m})),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],(function(e,t,n){"use strict";var o=e("./lib/lang"),i=e("./lib/oop"),r=e("./range").Range,s=function(){function e(){this.$options={}}return e.prototype.set=function(e){return i.mixin(this.$options,e),this},e.prototype.getOptions=function(){return o.copyObject(this.$options)},e.prototype.setOptions=function(e){this.$options=e},e.prototype.find=function(e){var t=this.$options,n=this.$matchIterator(e,t);if(!n)return!1;var o=null;return n.forEach((function(e,n,i,s){return o=new r(e,n,i,s),!(n==s&&t.start&&t.start.start&&0!=t.skipCurrent&&o.isEqual(t.start)&&(o=null,1))})),o},e.prototype.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var n=t.range,i=n?e.getLines(n.start.row,n.end.row):e.doc.getAllLines(),s=[],a=t.re;if(t.$isMultiLine){var l,c=a.length,u=i.length-c;e:for(var h=a.offset||0;h<=u;h++){for(var d=0;dm||(s.push(l=new r(h,m,h+c-1,f)),c>2&&(h=h+c-2))}}else for(var y=0;yx&&s[d].end.row==k;)d--;for(s=s.slice(y,d+1),y=0,d=s.length;y=c;n--)if(p(n,Number.MAX_VALUE,e))return;if(0!=t.wrap)for(n=u,c=l.row;n>=c;n--)if(p(n,Number.MAX_VALUE,e))return}};else h=function(e){var n=l.row;if(!p(n,l.column,e)){for(n+=1;n<=u;n++)if(p(n,0,e))return;if(0!=t.wrap)for(n=c,u=l.row;n<=u;n++)if(p(n,0,e))return}};if(t.$isMultiLine)var d=n.length,p=function(t,o,r){var s=i?t-d+1:t;if(!(s<0||s+d>e.getLength())){var a=e.getLine(s),l=a.search(n[0]);if(!(!i&&lo))return!!r(s,l,s+d-1,u)||void 0}}};else p=i?function(t,i,r){var a,l=e.getLine(t),c=[],u=0;for(n.lastIndex=0;a=n.exec(l);){var h=a[0].length;if(u=a.index,!h){if(u>=l.length)break;n.lastIndex=u+=o.skipEmptyMatch(l,u,s)}if(a.index+h>i)break;c.push(a.index,h)}for(var d=c.length-1;d>=0;d-=2){var p=c[d-1];if(r(t,p,t,p+(h=c[d])))return!0}}:function(t,i,r){var a,l,c=e.getLine(t);for(n.lastIndex=i;l=n.exec(c);){var u=l[0].length;if(r(t,a=l.index,t,a+u))return!0;if(!u&&(n.lastIndex=a+=o.skipEmptyMatch(c,a,s),a>=c.length))return!1}};return{forEach:h}},e}();t.Search=s})),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("../lib/keys"),s=e("../lib/useragent"),a=r.KEY_MODS,l=function(){function e(e,t){this.$init(e,t,!1)}return e.prototype.$init=function(e,t,n){this.platform=t||(s.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=n},e.prototype.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},e.prototype.removeCommand=function(e,t){var n=e&&("string"==typeof e?e:e.name);e=this.commands[n],t||delete this.commands[n];var o=this.commandKeyBinding;for(var i in o){var r=o[i];if(r==e)delete o[i];else if(Array.isArray(r)){var s=r.indexOf(e);-1!=s&&(r.splice(s,1),1==r.length&&(o[i]=r[0]))}}},e.prototype.bindKey=function(e,t,n){if("object"==typeof e&&e&&(null==n&&(n=e.position),e=e[this.platform]),e)return"function"==typeof t?this.addCommand({exec:t,bindKey:e,name:t.name||e}):void e.split("|").forEach((function(e){var o="";if(-1!=e.indexOf(" ")){var i=e.split(/\s+/);e=i.pop(),i.forEach((function(e){var t=this.parseKeys(e),n=a[t.hashId]+t.key;o+=(o?" ":"")+n,this._addCommandToBinding(o,"chainKeys")}),this),o+=" "}var r=this.parseKeys(e),s=a[r.hashId]+r.key;this._addCommandToBinding(o+s,t,n)}),this)},e.prototype._addCommandToBinding=function(e,t,n){var o,i=this.commandKeyBinding;if(t)if(!i[e]||this.$singleCommand)i[e]=t;else{Array.isArray(i[e])?-1!=(o=i[e].indexOf(t))&&i[e].splice(o,1):i[e]=[i[e]],"number"!=typeof n&&(n=c(t));var r=i[e];for(o=0;on);o++);r.splice(o,0,t)}else delete i[e]},e.prototype.addCommands=function(e){e&&Object.keys(e).forEach((function(t){var n=e[t];if(n){if("string"==typeof n)return this.bindKey(n,t);"function"==typeof n&&(n={exec:n}),"object"==typeof n&&(n.name||(n.name=t),this.addCommand(n))}}),this)},e.prototype.removeCommands=function(e){Object.keys(e).forEach((function(t){this.removeCommand(e[t])}),this)},e.prototype.bindKeys=function(e){Object.keys(e).forEach((function(t){this.bindKey(t,e[t])}),this)},e.prototype._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},e.prototype.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter((function(e){return e})),n=t.pop(),o=r[n];if(r.FUNCTION_KEYS[o])n=r.FUNCTION_KEYS[o].toLowerCase();else{if(!t.length)return{key:n,hashId:-1};if(1==t.length&&"shift"==t[0])return{key:n.toUpperCase(),hashId:-1}}for(var i=0,s=t.length;s--;){var a=r.KEY_MODS[t[s]];if(null==a)return"undefined"!=typeof console&&console.error("invalid modifier "+t[s]+" in "+e),!1;i|=a}return{key:n,hashId:i}},e.prototype.findKeyCommand=function(e,t){var n=a[e]+t;return this.commandKeyBinding[n]},e.prototype.handleKeyboard=function(e,t,n,o){if(!(o<0)){var i=a[t]+n,r=this.commandKeyBinding[i];return e.$keyChain&&(e.$keyChain+=" "+i,r=this.commandKeyBinding[e.$keyChain]||r),!r||"chainKeys"!=r&&"chainKeys"!=r[r.length-1]?(e.$keyChain&&(t&&4!=t||1!=n.length?(-1==t||o>0)&&(e.$keyChain=""):e.$keyChain=e.$keyChain.slice(0,-i.length-1)),{command:r}):(e.$keyChain=e.$keyChain||i,{command:"null"})}},e.prototype.getStatusText=function(e,t){return t.$keyChain||""},e}();function c(e){return"object"==typeof e&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}var u=function(e){function t(t,n){var o=e.call(this,t,n)||this;return o.$singleCommand=!0,o}return i(t,e),t}(l);u.call=function(e,t,n){l.prototype.$init.call(e,t,n,!0)},l.call=function(e,t,n){l.prototype.$init.call(e,t,n,!1)},t.HashHandler=u,t.MultiHashHandler=l})),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("../lib/oop"),s=e("../keyboard/hash_handler").MultiHashHandler,a=e("../lib/event_emitter").EventEmitter,l=function(e){function t(t,n){var o=e.call(this,n,t)||this;return o.byName=o.commands,o.setDefaultHandler("exec",(function(e){return e.args?e.command.exec(e.editor,e.args,e.event,!1):e.command.exec(e.editor,{},e.event,!0)})),o}return i(t,e),t.prototype.exec=function(e,t,n){if(Array.isArray(e)){for(var o=e.length;o--;)if(this.exec(e[o],t,n))return!0;return!1}if("string"==typeof e&&(e=this.commands[e]),!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;if(0!=this.$checkCommandState&&e.isAvailable&&!e.isAvailable(t))return!1;var i={editor:t,command:e,args:n};return i.returnValue=this._emit("exec",i),this._signal("afterExec",i),!1!==i.returnValue},t.prototype.toggleRecording=function(e){if(!this.$inReplay)return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.off("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},t.prototype.replay=function(e){if(!this.$inReplay&&this.macro){if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach((function(t){"string"==typeof t?this.exec(t,e):this.exec(t[0],e,t[1])}),this)}finally{this.$inReplay=!1}}},t.prototype.trimMacro=function(e){return e.map((function(e){return"string"!=typeof e[0]&&(e[0]=e[0].name),e[1]||(e=e[0]),e}))},t}(s);r.implement(l.prototype,a),t.CommandManager=l})),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],(function(e,t,n){"use strict";var o=e("../lib/lang"),i=e("../config"),r=e("../range").Range;function s(e,t){return{win:e,mac:t}}t.commands=[{name:"showSettingsMenu",description:"Show settings menu",bindKey:s("Ctrl-,","Command-,"),exec:function(e){i.loadModule("ace/ext/settings_menu",(function(t){t.init(e),e.showSettingsMenu()}))},readOnly:!0},{name:"goToNextError",description:"Go to next error",bindKey:s("Alt-E","F4"),exec:function(e){i.loadModule("ace/ext/error_marker",(function(t){t.showErrorMarker(e,1)}))},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",description:"Go to previous error",bindKey:s("Alt-Shift-E","Shift-F4"),exec:function(e){i.loadModule("ace/ext/error_marker",(function(t){t.showErrorMarker(e,-1)}))},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:s("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:s(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:s("Ctrl-L","Command-L"),exec:function(e,t){"number"!=typeof t||isNaN(t)||e.gotoLine(t),e.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:s("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:s("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",description:"Toggle fold widget",bindKey:s("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",description:"Toggle parent fold widget",bindKey:s("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:s(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldAllComments",description:"Fold all comments",bindKey:s(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAllComments()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:s("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:s("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:s("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:s("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:s("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:s("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:s("Ctrl-F","Command-F"),exec:function(e){i.loadModule("ace/ext/searchbox",(function(t){t.Search(e)}))},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:s("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:s("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:s("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:s("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:s("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:s("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:s("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:s("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:s("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:s("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:s("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:s("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:s("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:s("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:s("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:s("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:s("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:s("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:s("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:s("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:s(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:s("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:s(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:s("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:s("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:s("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:s("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:s("Ctrl-\\|Ctrl-P","Command-\\"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:s("Ctrl-Shift-\\|Ctrl-Shift-P","Command-Shift-\\"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:s("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:s(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(e){},readOnly:!0},{name:"cut",description:"Cut",exec:function(e){var t=e.$copyWithEmptySelection&&e.selection.isEmpty()?e.selection.getLineRange():e.selection.getRange();e._emit("cut",t),t.isEmpty()||e.session.remove(t),e.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:s("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:s("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:s("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:s("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:s("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:s("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:s("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:s("Ctrl-H","Command-Option-F"),exec:function(e){i.loadModule("ace/ext/searchbox",(function(t){t.Search(e,!0)}))}},{name:"undo",description:"Undo",bindKey:s("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",description:"Redo",bindKey:s("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:s("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:s("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:s("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:s("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:s("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:s("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:s("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:s("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:s("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:s("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:s("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:s("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:s("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:s("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:s("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:s("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:s("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(e,t){e.insert(o.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:s(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:s("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:s("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:s("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"autoindent",description:"Auto Indent",bindKey:s(null,null),exec:function(e){e.autoIndent()},multiSelectAction:"forEachLine",scrollIntoView:"animate"},{name:"expandtoline",description:"Expand to line",bindKey:s("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"openlink",bindKey:s("Ctrl+F3","F3"),exec:function(e){e.openLink()}},{name:"joinlines",description:"Join lines",bindKey:s(null,null),exec:function(e){for(var t=e.selection.isBackwards(),n=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),i=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),s=e.session.doc.getLine(n.row).length,a=e.session.doc.getTextRange(e.selection.getRange()).replace(/\n\s*/," ").length,l=e.session.doc.getLine(n.row),c=n.row+1;c<=i.row+1;c++){var u=o.stringTrimLeft(o.stringTrimRight(e.session.doc.getLine(c)));0!==u.length&&(u=" "+u),l+=u}i.row+10?(e.selection.moveCursorTo(n.row,n.column),e.selection.selectTo(n.row,n.column+a)):(s=e.session.doc.getLine(n.row).length>s?s+1:s,e.selection.moveCursorTo(n.row,s))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:s(null,null),exec:function(e){var t=e.session.doc.getLength()-1,n=e.session.doc.getLine(t).length,o=e.selection.rangeList.ranges,i=[];o.length<1&&(o=[e.selection.getRange()]);for(var s=0;st[n].column&&n++,r.unshift(n,0),t.splice.apply(t,r),this.$updateRows()}}},e.prototype.$updateRows=function(){var e=this.session.lineWidgets;if(e){var t=!0;e.forEach((function(e,n){if(e)for(t=!1,e.row=n;e.$oldWidget;)e.$oldWidget.row=n,e=e.$oldWidget})),t&&(this.session.lineWidgets=null)}},e.prototype.$registerLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var t=this.session.lineWidgets[e.row];return t&&(e.$oldWidget=t,t.el&&t.el.parentNode&&(t.el.parentNode.removeChild(t.el),t._inDocument=!1)),this.session.lineWidgets[e.row]=e,e},e.prototype.addLineWidget=function(e){if(this.$registerLineWidget(e),e.session=this.session,!this.editor)return e;var t=this.editor.renderer;e.html&&!e.el&&(e.el=o.createElement("div"),e.el.innerHTML=e.html),e.text&&!e.el&&(e.el=o.createElement("div"),e.el.textContent=e.text),e.el&&(o.addCssClass(e.el,"ace_lineWidgetContainer"),e.className&&o.addCssClass(e.el,e.className),e.el.style.position="absolute",e.el.style.zIndex=5,t.container.appendChild(e.el),e._inDocument=!0,e.coverGutter||(e.el.style.zIndex=3),null==e.pixelHeight&&(e.pixelHeight=e.el.offsetHeight)),null==e.rowCount&&(e.rowCount=e.pixelHeight/t.layerConfig.lineHeight);var n=this.session.getFoldAt(e.row,0);if(e.$fold=n,n){var i=this.session.lineWidgets;e.row!=n.end.row||i[n.start.row]?e.hidden=!0:i[n.start.row]=e}return this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,t),this.onWidgetChanged(e),e},e.prototype.removeLineWidget=function(e){if(e._inDocument=!1,e.session=null,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el),e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(e){}if(this.session.lineWidgets){var t=this.session.lineWidgets[e.row];if(t==e)this.session.lineWidgets[e.row]=e.$oldWidget,e.$oldWidget&&this.onWidgetChanged(e.$oldWidget);else for(;t;){if(t.$oldWidget==e){t.$oldWidget=e.$oldWidget;break}t=t.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows()},e.prototype.getWidgetsAtRow=function(e){for(var t=this.session.lineWidgets,n=t&&t[e],o=[];n;)o.push(n),n=n.$oldWidget;return o},e.prototype.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},e.prototype.measureWidgets=function(e,t){var n=this.session._changedWidgets,o=t.layerConfig;if(n&&n.length){for(var i=1/0,r=0;r0&&!o[i];)i--;this.firstRow=n.firstRow,this.lastRow=n.lastRow,t.$cursorLayer.config=n;for(var s=i;s<=r;s++){var a=o[s];if(a&&a.el)if(a.hidden)a.el.style.top=-100-(a.pixelHeight||0)+"px";else{a._inDocument||(a._inDocument=!0,t.container.appendChild(a.el));var l=t.$cursorLayer.getPixelPosition({row:s,column:0},!0).top;a.coverLine||(l+=n.lineHeight*this.session.getRowLineCount(a.row)),a.el.style.top=l-n.offset+"px";var c=a.coverGutter?0:t.gutterWidth;a.fixedWidth||(c-=t.scrollLeft),a.el.style.left=c+"px",a.fullWidth&&a.screenWidth&&(a.el.style.minWidth=n.width+2*n.padding+"px"),a.fixedWidth?a.el.style.right=t.scrollBar.getWidth()+"px":a.el.style.right=""}}}},e}();t.LineWidgets=i})),ace.define("ace/keyboard/gutter_handler",["require","exports","module","ace/lib/keys","ace/mouse/default_gutter_handler"],(function(e,t,n){"use strict";var o=e("../lib/keys"),i=e("../mouse/default_gutter_handler").GutterTooltip,r=function(){function e(e){this.editor=e,this.gutterLayer=e.renderer.$gutterLayer,this.element=e.renderer.$gutter,this.lines=e.renderer.$gutterLayer.$lines,this.activeRowIndex=null,this.activeLane=null,this.annotationTooltip=new i(this.editor)}return e.prototype.addListener=function(){this.element.addEventListener("keydown",this.$onGutterKeyDown.bind(this)),this.element.addEventListener("focusout",this.$blurGutter.bind(this)),this.editor.on("mousewheel",this.$blurGutter.bind(this))},e.prototype.removeListener=function(){this.element.removeEventListener("keydown",this.$onGutterKeyDown.bind(this)),this.element.removeEventListener("focusout",this.$blurGutter.bind(this)),this.editor.off("mousewheel",this.$blurGutter.bind(this))},e.prototype.$onGutterKeyDown=function(e){if(this.annotationTooltip.isOpen)return e.preventDefault(),void(e.keyCode===o.escape&&this.annotationTooltip.hideTooltip());if(e.target===this.element){if(e.keyCode!=o.enter)return;e.preventDefault();var t=this.editor.getCursorPosition().row;return this.editor.isRowVisible(t)||this.editor.scrollToLine(t,!0,!0),void setTimeout(function(){var e=this.$rowToRowIndex(this.gutterLayer.$cursorCell.row),t=this.$findNearestFoldWidget(e),n=this.$findNearestAnnotation(e);if(null!==t||null!==n)return null===t&&null!==n?(this.activeRowIndex=n,this.activeLane="annotation",void this.$focusAnnotation(this.activeRowIndex)):null!==t&&null===n?(this.activeRowIndex=t,this.activeLane="fold",void this.$focusFoldWidget(this.activeRowIndex)):Math.abs(n-e)0||e+t=0&&this.$isFoldWidgetVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isFoldWidgetVisible(e+t))return e+t}return null},e.prototype.$findNearestAnnotation=function(e){if(this.$isAnnotationVisible(e))return e;for(var t=0;e-t>0||e+t=0&&this.$isAnnotationVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isAnnotationVisible(e+t))return e+t}return null},e.prototype.$focusFoldWidget=function(e){if(null!=e){var t=this.$getFoldWidget(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()}},e.prototype.$focusAnnotation=function(e){if(null!=e){var t=this.$getAnnotation(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()}},e.prototype.$blurFoldWidget=function(e){var t=this.$getFoldWidget(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},e.prototype.$blurAnnotation=function(e){var t=this.$getAnnotation(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},e.prototype.$moveFoldWidgetUp=function(){for(var e=this.activeRowIndex;e>0;)if(e--,this.$isFoldWidgetVisible(e))return this.$blurFoldWidget(this.activeRowIndex),this.activeRowIndex=e,void this.$focusFoldWidget(this.activeRowIndex)},e.prototype.$moveFoldWidgetDown=function(){for(var e=this.activeRowIndex;e0;)if(e--,this.$isAnnotationVisible(e))return this.$blurAnnotation(this.activeRowIndex),this.activeRowIndex=e,void this.$focusAnnotation(this.activeRowIndex)},e.prototype.$moveAnnotationDown=function(){for(var e=this.activeRowIndex;e=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},i=e("./lib/oop"),r=e("./lib/dom"),s=e("./lib/lang"),a=e("./lib/useragent"),l=e("./keyboard/textinput").TextInput,c=e("./mouse/mouse_handler").MouseHandler,u=e("./mouse/fold_handler").FoldHandler,h=e("./keyboard/keybinding").KeyBinding,d=e("./edit_session").EditSession,p=e("./search").Search,g=e("./range").Range,m=e("./lib/event_emitter").EventEmitter,f=e("./commands/command_manager").CommandManager,y=e("./commands/default_commands").commands,v=e("./config"),b=e("./token_iterator").TokenIterator,w=e("./line_widgets").LineWidgets,x=e("./keyboard/gutter_handler").GutterKeyboardHandler,k=e("./config").nls,C=e("./clipboard"),$=e("./lib/keys"),S=function(){function e(t,n,o){this.$toDestroy=[];var i=t.getContainerElement();this.container=i,this.renderer=t,this.id="editor"+ ++e.$uid,this.commands=new f(a.isMac?"mac":"win",y),"object"==typeof document&&(this.textInput=new l(t.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new c(this),new u(this)),this.keyBinding=new h(this),this.$search=(new p).set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=s.delayedCall(function(){this._signal("input",{}),this.session&&!this.session.destroyed&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",(function(e,t){t._$emitInputEvent.schedule(31)})),this.setSession(n||o&&o.session||new d("")),v.resetOptions(this),o&&this.setOptions(o),v._signal("editor",this)}return e.prototype.$initOperationListeners=function(){this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0),this.$opResetTimer=s.delayedCall(this.endOperation.bind(this,!0)),this.on("change",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.docChanged=!0}.bind(this),!0),this.on("changeSelection",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.selectionChanged=!0}.bind(this),!0)},e.prototype.startOperation=function(e){if(this.curOp){if(!e||this.curOp.command)return;this.prevOp=this.curOp}e||(this.previousCommand=null,e={}),this.$opResetTimer.schedule(),this.curOp=this.session.curOp={command:e.command||{},args:e.args,scrollTop:this.renderer.scrollTop},this.curOp.selectionBefore=this.selection.toJSON()},e.prototype.endOperation=function(e){if(this.curOp&&this.session){if(e&&!1===e.returnValue||!this.session)return this.curOp=null;if(1==e&&this.curOp.command&&"mouse"==this.curOp.command.name)return;if(this._signal("beforeEndOperation"),!this.curOp)return;var t=this.curOp.command,n=t&&t.scrollIntoView;if(n){switch(n){case"center-animate":n="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var o=this.selection.getRange(),i=this.renderer.layerConfig;(o.start.row>=i.lastRow||o.end.row<=i.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead)}"animate"==n&&this.renderer.animateScrolling(this.curOp.scrollTop)}var r=this.selection.toJSON();this.curOp.selectionAfter=r,this.$lastSel=this.selection.toJSON(),this.session.getUndoManager().addSelection(r),this.prevOp=this.curOp,this.curOp=null}},e.prototype.$historyTracker=function(e){if(this.$mergeUndoDeltas){var t=this.prevOp,n=this.$mergeableCommands,o=t.command&&e.command.name==t.command.name;if("insertstring"==e.command.name){var i=e.args;void 0===this.mergeNextCommand&&(this.mergeNextCommand=!0),o=o&&this.mergeNextCommand&&(!/\s/.test(i)||/\s/.test(t.args)),this.mergeNextCommand=!0}else o=o&&-1!==n.indexOf(e.command.name);"always"!=this.$mergeUndoDeltas&&Date.now()-this.sequenceStartTime>2e3&&(o=!1),o?this.session.mergeUndoDeltas=!0:-1!==n.indexOf(e.command.name)&&(this.sequenceStartTime=Date.now())}},e.prototype.setKeyboardHandler=function(e,t){if(e&&"string"==typeof e&&"ace"!=e){this.$keybindingId=e;var n=this;v.loadModule(["keybinding",e],(function(o){n.$keybindingId==e&&n.keyBinding.setKeyboardHandler(o&&o.handler),t&&t()}))}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},e.prototype.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},e.prototype.setSession=function(e){if(this.session!=e){this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var n=this.session.getSelection();n.off("changeCursor",this.$onCursorChange),n.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this}),e&&!e.destroyed&&e.bgTokenizer.scheduleStart()}},e.prototype.getSession=function(){return this.session},e.prototype.setValue=function(e,t){return this.session.doc.setValue(e),t?1==t?this.navigateFileEnd():-1==t&&this.navigateFileStart():this.selectAll(),e},e.prototype.getValue=function(){return this.session.getValue()},e.prototype.getSelection=function(){return this.selection},e.prototype.resize=function(e){this.renderer.onResize(e)},e.prototype.setTheme=function(e,t){this.renderer.setTheme(e,t)},e.prototype.getTheme=function(){return this.renderer.getTheme()},e.prototype.setStyle=function(e){this.renderer.setStyle(e)},e.prototype.unsetStyle=function(e){this.renderer.unsetStyle(e)},e.prototype.getFontSize=function(){return this.getOption("fontSize")||r.computedStyle(this.container).fontSize},e.prototype.setFontSize=function(e){this.setOption("fontSize",e)},e.prototype.$highlightBrackets=function(){if(!this.$highlightPending){var e=this;this.$highlightPending=!0,setTimeout((function(){e.$highlightPending=!1;var t=e.session;if(t&&!t.destroyed){t.$bracketHighlight&&(t.$bracketHighlight.markerIds.forEach((function(e){t.removeMarker(e)})),t.$bracketHighlight=null);var n=e.getCursorPosition(),o=e.getKeyboardHandler(),i=o&&o.$getDirectionForHighlight&&o.$getDirectionForHighlight(e),r=t.getMatchingBracketRanges(n,i);if(!r){var s=new b(t,n.row,n.column).getCurrentToken();if(s&&/\b(?:tag-open|tag-name)/.test(s.type)){var a=t.getMatchingTags(n);a&&(r=[a.openTagName,a.closeTagName])}}if(!r&&t.$mode.getMatching&&(r=t.$mode.getMatching(e.session)),r){var l="ace_bracket";Array.isArray(r)?1==r.length&&(l="ace_error_bracket"):r=[r],2==r.length&&(0==g.comparePoints(r[0].end,r[1].start)?r=[g.fromPoints(r[0].start,r[1].end)]:0==g.comparePoints(r[0].start,r[1].end)&&(r=[g.fromPoints(r[1].start,r[0].end)])),t.$bracketHighlight={ranges:r,markerIds:r.map((function(e){return t.addMarker(e,l,"text")}))},e.getHighlightIndentGuides()&&e.renderer.$textLayer.$highlightIndentGuide()}else e.getHighlightIndentGuides()&&e.renderer.$textLayer.$highlightIndentGuide()}}),50)}},e.prototype.focus=function(){this.textInput.focus()},e.prototype.isFocused=function(){return this.textInput.isFocused()},e.prototype.blur=function(){this.textInput.blur()},e.prototype.onFocus=function(e){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",e))},e.prototype.onBlur=function(e){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",e))},e.prototype.$cursorChange=function(){this.renderer.updateCursor(),this.$highlightBrackets(),this.$updateHighlightActiveLine()},e.prototype.onDocumentChange=function(e){var t=this.session.$useWrapMode,n=e.start.row==e.end.row?e.end.row:1/0;this.renderer.updateLines(e.start.row,n,t),this._signal("change",e),this.$cursorChange()},e.prototype.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},e.prototype.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},e.prototype.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},e.prototype.onCursorChange=function(){this.$cursorChange(),this._signal("changeSelection")},e.prototype.$updateHighlightActiveLine=function(){var e,t=this.getSession();if(this.$highlightActiveLine&&("line"==this.$selectionStyle&&this.selection.isMultiLine()||(e=this.getCursorPosition()),this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(e=!1),!this.renderer.$maxLines||1!==this.session.getLength()||this.renderer.$minLines>1||(e=!1)),t.$highlightLineMarker&&!e)t.removeMarker(t.$highlightLineMarker.id),t.$highlightLineMarker=null;else if(!t.$highlightLineMarker&&e){var n=new g(e.row,e.column,e.row,1/0);n.id=t.addMarker(n,"ace_active-line","screenLine"),t.$highlightLineMarker=n}else e&&(t.$highlightLineMarker.start.row=e.row,t.$highlightLineMarker.end.row=e.row,t.$highlightLineMarker.start.column=e.column,t._signal("changeBackMarker"))},e.prototype.onSelectionChange=function(e){var t=this.session;if(t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var n=this.selection.getRange(),o=this.getSelectionStyle();t.$selectionMarker=t.addMarker(n,"ace_selection",o)}var i=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(i),this._signal("changeSelection")},e.prototype.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(!t.isEmpty()&&!t.isMultiLine()){var n=t.start.column,o=t.end.column,i=e.getLine(t.start.row),r=i.substring(n,o);if(!(r.length>5e3)&&/[\w\d]/.test(r)){var s=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:r}),a=i.substring(n-1,o+1);if(s.test(a))return s}}},e.prototype.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},e.prototype.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},e.prototype.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},e.prototype.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},e.prototype.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},e.prototype.onChangeWrapLimit=function(){this.renderer.updateFull()},e.prototype.onChangeWrapMode=function(){this.renderer.onResize(!0)},e.prototype.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},e.prototype.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},e.prototype.getCopyText=function(){var e=this.getSelectedText(),t=this.session.doc.getNewLineCharacter(),n=!1;if(!e&&this.$copyWithEmptySelection){n=!0;for(var o=this.selection.getAllRanges(),i=0;ia.search(/\S|$/)){var l=a.substr(i.column).search(/\S|$/);n.doc.removeInLine(i.row,i.column,i.column+l)}}this.clearSelection();var c=i.column,u=n.getState(i.row),h=(a=n.getLine(i.row),o.checkOutdent(u,a,e));if(n.insert(i,e),r&&r.selection&&(2==r.selection.length?this.selection.setSelectionRange(new g(i.row,c+r.selection[0],i.row,c+r.selection[1])):this.selection.setSelectionRange(new g(i.row+r.selection[0],r.selection[1],i.row+r.selection[2],r.selection[3]))),this.$enableAutoIndent){if(n.getDocument().isNewLine(e)){var d=o.getNextLineIndent(u,a.slice(0,i.column),n.getTabString());n.insert({row:i.row+1,column:0},d)}h&&o.autoOutdent(u,n,i.row)}},e.prototype.autoIndent=function(){var e,t,n=this.session,o=n.getMode();if(this.selection.isEmpty())e=0,t=n.doc.getLength()-1;else{var i=this.getSelectionRange();e=i.start.row,t=i.end.row}for(var r,s,a,l="",c="",u="",h=n.getTabString(),d=e;d<=t;d++)d>0&&(l=n.getState(d-1),c=n.getLine(d-1),u=o.getNextLineIndent(l,c,h)),r=n.getLine(d),u!==(s=o.$getIndent(r))&&(s.length>0&&(a=new g(d,0,d,s.length),n.remove(a)),u.length>0&&n.insert({row:d,column:0},u)),o.autoOutdent(l,n,d)},e.prototype.onTextInput=function(e,t){if(!t)return this.keyBinding.onTextInput(e);this.startOperation({command:{name:"insertstring"}});var n=this.applyComposition.bind(this,e,t);this.selection.rangeCount?this.forEachSelection(n):n(),this.endOperation()},e.prototype.applyComposition=function(e,t){var n;(t.extendLeft||t.extendRight)&&((n=this.selection.getRange()).start.column-=t.extendLeft,n.end.column+=t.extendRight,n.start.column<0&&(n.start.row--,n.start.column+=this.session.getLine(n.start.row).length+1),this.selection.setRange(n),e||n.isEmpty()||this.remove()),!e&&this.selection.isEmpty()||this.insert(e,!0),(t.restoreStart||t.restoreEnd)&&((n=this.selection.getRange()).start.column-=t.restoreStart,n.end.column-=t.restoreEnd,this.selection.setRange(n))},e.prototype.onCommandKey=function(e,t,n){return this.keyBinding.onCommandKey(e,t,n)},e.prototype.setOverwrite=function(e){this.session.setOverwrite(e)},e.prototype.getOverwrite=function(){return this.session.getOverwrite()},e.prototype.toggleOverwrite=function(){this.session.toggleOverwrite()},e.prototype.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},e.prototype.getScrollSpeed=function(){return this.getOption("scrollSpeed")},e.prototype.setDragDelay=function(e){this.setOption("dragDelay",e)},e.prototype.getDragDelay=function(){return this.getOption("dragDelay")},e.prototype.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},e.prototype.getSelectionStyle=function(){return this.getOption("selectionStyle")},e.prototype.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},e.prototype.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},e.prototype.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},e.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},e.prototype.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},e.prototype.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},e.prototype.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},e.prototype.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},e.prototype.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},e.prototype.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},e.prototype.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},e.prototype.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},e.prototype.setHighlightIndentGuides=function(e){this.renderer.setHighlightIndentGuides(e)},e.prototype.getHighlightIndentGuides=function(){return this.renderer.getHighlightIndentGuides()},e.prototype.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},e.prototype.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},e.prototype.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},e.prototype.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},e.prototype.setReadOnly=function(e){this.setOption("readOnly",e)},e.prototype.getReadOnly=function(){return this.getOption("readOnly")},e.prototype.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},e.prototype.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},e.prototype.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},e.prototype.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},e.prototype.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},e.prototype.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},e.prototype.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},e.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},e.prototype.remove=function(e){this.selection.isEmpty()&&("left"==e?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var n=this.session,o=n.getState(t.start.row),i=n.getMode().transformAction(o,"deletion",this,n,t);if(0===t.end.column){var r=n.getTextRange(t);if("\n"==r[r.length-1]){var s=n.getLine(t.end.row);/^\s+$/.test(s)&&(t.end.column=s.length)}}i&&(t=i)}this.session.remove(t),this.clearSelection()},e.prototype.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},e.prototype.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},e.prototype.setGhostText=function(e,t){this.session.widgetManager||(this.session.widgetManager=new w(this.session),this.session.widgetManager.attach(this)),this.renderer.setGhostText(e,t)},e.prototype.removeGhostText=function(){this.session.widgetManager&&this.renderer.removeGhostText()},e.prototype.transposeLetters=function(){if(this.selection.isEmpty()){var e=this.getCursorPosition(),t=e.column;if(0!==t){var n,o,i=this.session.getLine(e.row);tt.toLowerCase()?1:0}));var i=new g(0,0,0,0);for(o=e.first;o<=e.last;o++){var r=t.getLine(o);i.start.row=o,i.end.row=o,i.end.column=r.length,t.replace(i,n[o-e.first])}},e.prototype.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},e.prototype.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),n=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,n,e)},e.prototype.getNumberAt=function(e,t){var n=/[\-]?[0-9]+(?:\.[0-9]+)?/g;n.lastIndex=0;for(var o=this.session.getLine(e);n.lastIndex=t)return{value:i[0],start:i.index,end:i.index+i[0].length}}return null},e.prototype.modifyNumber=function(e){var t=this.selection.getCursor().row,n=this.selection.getCursor().column,o=new g(t,n-1,t,n),i=this.session.getTextRange(o);if(!isNaN(parseFloat(i))&&isFinite(i)){var r=this.getNumberAt(t,n);if(r){var s=r.value.indexOf(".")>=0?r.start+r.value.indexOf(".")+1:r.end,a=r.start+r.value.length-s,l=parseFloat(r.value);l*=Math.pow(10,a),s!==r.end&&n=a&&r<=l&&(n=t,c.selection.clearSelection(),c.moveCursorTo(e,a+o),c.selection.selectTo(e,l+o)),a=l}));for(var u,h=this.$toggleWordPairs,d=0;d=l&&s<=c&&d.match(/((?:https?|ftp):\/\/[\S]+)/)){a=d.replace(/[\s:.,'";}\]]+$/,"");break}l=c}}catch(e){n={error:e}}finally{try{h&&!h.done&&(i=u.return)&&i.call(u)}finally{if(n)throw n.error}}return a},e.prototype.openLink=function(){var e=this.selection.getCursor(),t=this.findLinkAt(e.row,e.column);return t&&window.open(t,"_blank"),null!=t},e.prototype.removeLines=function(){var e=this.$getSelectedRows();this.session.removeFullLines(e.first,e.last),this.clearSelection()},e.prototype.duplicateSelection=function(){var e=this.selection,t=this.session,n=e.getRange(),o=e.isBackwards();if(n.isEmpty()){var i=n.start.row;t.duplicateLines(i,i)}else{var r=o?n.start:n.end,s=t.insert(r,t.getTextRange(n),!1);n.start=r,n.end=s,e.setSelectionRange(n,o)}},e.prototype.moveLinesDown=function(){this.$moveLines(1,!1)},e.prototype.moveLinesUp=function(){this.$moveLines(-1,!1)},e.prototype.moveText=function(e,t,n){return this.session.moveText(e,t,n)},e.prototype.copyLinesUp=function(){this.$moveLines(-1,!0)},e.prototype.copyLinesDown=function(){this.$moveLines(1,!0)},e.prototype.$moveLines=function(e,t){var n,o,i=this.selection;if(!i.inMultiSelectMode||this.inVirtualSelectionMode){var r=i.toOrientedRange();n=this.$getSelectedRows(r),o=this.session.$moveLines(n.first,n.last,t?0:e),t&&-1==e&&(o=0),r.moveBy(o,0),i.fromOrientedRange(r)}else{var s=i.rangeList.ranges;i.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;for(var a=0,l=0,c=s.length,u=0;up+1)break;p=g.last}for(u--,a=this.session.$moveLines(d,p,t?0:e),t&&-1==e&&(h=u+1);h<=u;)s[h].moveBy(a,0),h++;t||(a=0),l+=a}i.fromOrientedRange(i.ranges[0]),i.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},e.prototype.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},e.prototype.onCompositionStart=function(e){this.renderer.showComposition(e)},e.prototype.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},e.prototype.onCompositionEnd=function(){this.renderer.hideComposition()},e.prototype.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},e.prototype.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},e.prototype.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},e.prototype.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},e.prototype.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},e.prototype.$moveByPage=function(e,t){var n=this.renderer,o=this.renderer.layerConfig,i=e*Math.floor(o.height/o.lineHeight);!0===t?this.selection.$moveSelection((function(){this.moveCursorBy(i,0)})):!1===t&&(this.selection.moveCursorBy(i,0),this.selection.clearSelection());var r=n.scrollTop;n.scrollBy(0,i*o.lineHeight),null!=t&&n.scrollCursorIntoView(null,.5),n.animateScrolling(r)},e.prototype.selectPageDown=function(){this.$moveByPage(1,!0)},e.prototype.selectPageUp=function(){this.$moveByPage(-1,!0)},e.prototype.gotoPageDown=function(){this.$moveByPage(1,!1)},e.prototype.gotoPageUp=function(){this.$moveByPage(-1,!1)},e.prototype.scrollPageDown=function(){this.$moveByPage(1)},e.prototype.scrollPageUp=function(){this.$moveByPage(-1)},e.prototype.scrollToRow=function(e){this.renderer.scrollToRow(e)},e.prototype.scrollToLine=function(e,t,n,o){this.renderer.scrollToLine(e,t,n,o)},e.prototype.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},e.prototype.getCursorPosition=function(){return this.selection.getCursor()},e.prototype.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},e.prototype.getSelectionRange=function(){return this.selection.getRange()},e.prototype.selectAll=function(){this.selection.selectAll()},e.prototype.clearSelection=function(){this.selection.clearSelection()},e.prototype.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},e.prototype.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},e.prototype.jumpToMatching=function(e,t){var n=this.getCursorPosition(),o=new b(this.session,n.row,n.column),i=o.getCurrentToken(),r=0;i&&-1!==i.type.indexOf("tag-name")&&(i=o.stepBackward());var s=i||o.stepForward();if(s){var a,l,c=!1,u={},h=n.column-s.start,d={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(s.value.match(/[{}()\[\]]/g)){for(;h1?u[s.value]++:"=0;--r)this.$tryReplace(n[r],e)&&o++;return this.selection.setSelectionRange(i),o},e.prototype.$tryReplace=function(e,t){var n=this.session.getTextRange(e);return null!==(t=this.$search.replace(n,t))?(e.end=this.session.replace(e,t),e):null},e.prototype.getLastSearchOptions=function(){return this.$search.getOptions()},e.prototype.find=function(e,t,n){t||(t={}),"string"==typeof e||e instanceof RegExp?t.needle=e:"object"==typeof e&&i.mixin(t,e);var o=this.selection.getRange();null==t.needle&&((e=this.session.getTextRange(o)||this.$search.$options.needle)||(o=this.session.getWordRange(o.start.row,o.start.column),e=this.session.getTextRange(o)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:o});var r=this.$search.find(this.session);return t.preventScroll?r:r?(this.revealRange(r,n),r):(t.backwards?o.start=o.end:o.end=o.start,void this.selection.setRange(o))},e.prototype.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},e.prototype.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},e.prototype.revealRange=function(e,t){this.session.unfold(e),this.selection.setSelectionRange(e);var n=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),!1!==t&&this.renderer.animateScrolling(n)},e.prototype.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},e.prototype.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},e.prototype.destroy=function(){this.$toDestroy&&(this.$toDestroy.forEach((function(e){e.destroy()})),this.$toDestroy=null),this.$mouseHandler&&this.$mouseHandler.destroy(),this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy(),this._$emitInputEvent&&this._$emitInputEvent.cancel(),this.removeAllListeners()},e.prototype.setAutoScrollEditorIntoView=function(e){if(e){var t,n=this,o=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var i=this.$scrollAnchor;i.style.cssText="position:absolute",this.container.insertBefore(i,this.container.firstChild);var r=this.on("changeSelection",(function(){o=!0})),s=this.renderer.on("beforeRender",(function(){o&&(t=n.renderer.container.getBoundingClientRect())})),a=this.renderer.on("afterRender",(function(){if(o&&t&&(n.isFocused()||n.searchBox&&n.searchBox.isFocused())){var e=n.renderer,r=e.$cursorLayer.$pixelPos,s=e.layerConfig,a=r.top-s.offset;null!=(o=r.top>=0&&a+t.top<0||!(r.topwindow.innerHeight)&&null)&&(i.style.top=a+"px",i.style.left=r.left+"px",i.style.height=s.lineHeight+"px",i.scrollIntoView(o)),o=t=null}}));this.setAutoScrollEditorIntoView=function(e){e||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",r),this.renderer.off("afterRender",a),this.renderer.off("beforeRender",s))}}},e.prototype.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;t&&(t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&"wide"!=e,r.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e)))},e.prototype.prompt=function(e,t,n){var o=this;v.loadModule("ace/ext/prompt",(function(i){i.prompt(o,e,t,n)}))},e}();S.$uid=0,S.prototype.curOp=null,S.prototype.prevOp={},S.prototype.$mergeableCommands=["backspace","del","insertstring"],S.prototype.$toggleWordPairs=[["first","last"],["true","false"],["yes","no"],["width","height"],["top","bottom"],["right","left"],["on","off"],["x","y"],["get","set"],["max","min"],["horizontal","vertical"],["show","hide"],["add","remove"],["up","down"],["before","after"],["even","odd"],["in","out"],["inside","outside"],["next","previous"],["increase","decrease"],["attach","detach"],["&&","||"],["==","!="]],i.implement(S.prototype,m),v.defineOptions(S.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.textInput.setReadOnly(e),this.$resetCursorStyle()},initialValue:!1},copyWithEmptySelection:{set:function(e){this.textInput.setCopyWithEmptySelection(e)},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},enableAutoIndent:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(e){this.session.setValue(e)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(e){this.setSession(e)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(e){this.renderer.$gutterLayer.setShowLineNumbers(e),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),e&&this.$relativeLineNumbers?E.attach(this):E.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(e){this.$showLineNumbers&&e?E.attach(this):E.detach(this)}},placeholder:{set:function(e){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var e=this.session&&(this.renderer.$composition||this.session.getLength()>1||this.session.getLine(0).length>0);if(e&&this.renderer.placeholderNode)this.renderer.off("afterRender",this.$updatePlaceholder),r.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(e||this.renderer.placeholderNode)!e&&this.renderer.placeholderNode&&(this.renderer.placeholderNode.textContent=this.$placeholder||"");else{this.renderer.on("afterRender",this.$updatePlaceholder),r.addCssClass(this.container,"ace_hasPlaceholder");var t=r.createElement("div");t.className="ace_placeholder",t.textContent=this.$placeholder||"",this.renderer.placeholderNode=t,this.renderer.content.appendChild(this.renderer.placeholderNode)}}.bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},enableKeyboardAccessibility:{set:function(e){var t,n={name:"blurTextInput",description:"Set focus to the editor content div to allow tabbing through the page",bindKey:"Esc",exec:function(e){e.blur(),e.renderer.scroller.focus()},readOnly:!0},o=function(e){if(e.target==this.renderer.scroller&&e.keyCode===$.enter){e.preventDefault();var t=this.getCursorPosition().row;this.isRowVisible(t)||this.scrollToLine(t,!0,!0),this.focus()}};e?(this.renderer.enableKeyboardAccessibility=!0,this.renderer.keyboardFocusClassName="ace_keyboard-focus",this.textInput.getElement().setAttribute("tabindex",-1),this.textInput.setNumberOfExtraLines(a.isWin?3:0),this.renderer.scroller.setAttribute("tabindex",0),this.renderer.scroller.setAttribute("role","group"),this.renderer.scroller.setAttribute("aria-roledescription",k("editor")),this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName),this.renderer.scroller.setAttribute("aria-label",k("Editor content, press Enter to start editing, press Escape to exit")),this.renderer.scroller.addEventListener("keyup",o.bind(this)),this.commands.addCommand(n),this.renderer.$gutter.setAttribute("tabindex",0),this.renderer.$gutter.setAttribute("aria-hidden",!1),this.renderer.$gutter.setAttribute("role","group"),this.renderer.$gutter.setAttribute("aria-roledescription",k("editor")),this.renderer.$gutter.setAttribute("aria-label",k("Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit")),this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName),this.renderer.content.setAttribute("aria-hidden",!0),t||(t=new x(this)),t.addListener()):(this.renderer.enableKeyboardAccessibility=!1,this.textInput.getElement().setAttribute("tabindex",0),this.textInput.setNumberOfExtraLines(0),this.renderer.scroller.setAttribute("tabindex",-1),this.renderer.scroller.removeAttribute("role"),this.renderer.scroller.removeAttribute("aria-roledescription"),this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName),this.renderer.scroller.removeAttribute("aria-label"),this.renderer.scroller.removeEventListener("keyup",o.bind(this)),this.commands.removeCommand(n),this.renderer.content.removeAttribute("aria-hidden"),this.renderer.$gutter.setAttribute("tabindex",-1),this.renderer.$gutter.setAttribute("aria-hidden",!0),this.renderer.$gutter.removeAttribute("role"),this.renderer.$gutter.removeAttribute("aria-roledescription"),this.renderer.$gutter.removeAttribute("aria-label"),this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName),t&&t.removeListener())},initialValue:!1},customScrollbar:"renderer",hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",highlightIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",useResizeObserver:"renderer",useSvgGutterIcons:"renderer",showFoldedAnnotations:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimeout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var E={getText:function(e,t){return(Math.abs(e.selection.lead.row-t)||t+1+(t<9?"·":""))+""},getWidth:function(e,t,n){return Math.max(t.toString().length,(n.lastRow+1).toString().length,2)*n.characterWidth},update:function(e,t){t.renderer.$loop.schedule(t.renderer.CHANGE_GUTTER)},attach:function(e){e.renderer.$gutterLayer.$renderer=this,e.on("changeSelection",this.update),this.update(null,e)},detach:function(e){e.renderer.$gutterLayer.$renderer==this&&(e.renderer.$gutterLayer.$renderer=null),e.off("changeSelection",this.update),this.update(null,e)}};t.Editor=S})),ace.define("ace/layer/lines",["require","exports","module","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=function(){function e(e,t){this.element=e,this.canvasHeight=t||5e5,this.element.style.height=2*this.canvasHeight+"px",this.cells=[],this.cellCache=[],this.$offsetCoefficient=0}return e.prototype.moveContainer=function(e){o.translate(this.element,0,-e.firstRowScreen*e.lineHeight%this.canvasHeight-e.offset*this.$offsetCoefficient)},e.prototype.pageChanged=function(e,t){return Math.floor(e.firstRowScreen*e.lineHeight/this.canvasHeight)!==Math.floor(t.firstRowScreen*t.lineHeight/this.canvasHeight)},e.prototype.computeLineTop=function(e,t,n){var o=t.firstRowScreen*t.lineHeight,i=Math.floor(o/this.canvasHeight);return n.documentToScreenRow(e,0)*t.lineHeight-i*this.canvasHeight},e.prototype.computeLineHeight=function(e,t,n){return t.lineHeight*n.getRowLineCount(e)},e.prototype.getLength=function(){return this.cells.length},e.prototype.get=function(e){return this.cells[e]},e.prototype.shift=function(){this.$cacheCell(this.cells.shift())},e.prototype.pop=function(){this.$cacheCell(this.cells.pop())},e.prototype.push=function(e){if(Array.isArray(e)){this.cells.push.apply(this.cells,e);for(var t=o.createFragment(this.element),n=0;nr&&(l=i.end.row+1,r=(i=t.getNextFoldLine(l,i))?i.start.row:1/0),l>o){for(;this.$lines.getLength()>a+1;)this.$lines.pop();break}(s=this.$lines.get(++a))?s.row=l:(s=this.$lines.createCell(l,e,this.session,u),this.$lines.push(s)),this.$renderCell(s,e,i,l),l++}this._signal("afterRender"),this.$updateGutterWidth(e)},e.prototype.$updateGutterWidth=function(e){var t=this.session,n=t.gutterRenderer||this.$renderer,o=t.$firstLineNumber,i=this.$lines.last()?this.$lines.last().text:"";(this.$fixedWidth||t.$useWrapMode)&&(i=t.getLength()+o-1);var r=n?n.getWidth(t,i,e):i.toString().length*e.characterWidth,s=this.$padding||this.$computePadding();(r+=s.left+s.right)===this.gutterWidth||isNaN(r)||(this.gutterWidth=r,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",r))},e.prototype.$updateCursorRow=function(){if(this.$highlightGutterLine){var e=this.session.selection.getCursor();this.$cursorRow!==e.row&&(this.$cursorRow=e.row)}},e.prototype.updateLineHighlight=function(){if(this.$highlightGutterLine){var e=this.session.selection.cursor.row;if(this.$cursorRow=e,!this.$cursorCell||this.$cursorCell.row!=e){this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var t=this.$lines.cells;this.$cursorCell=null;for(var n=0;n=this.$cursorRow){if(o.row>this.$cursorRow){var i=this.session.getFoldLine(this.$cursorRow);if(!(n>0&&i&&i.start.row==t[n-1].row))break;o=t[n-1]}o.element.className="ace_gutter-active-line "+o.element.className,this.$cursorCell=o;break}}}}},e.prototype.scrollLines=function(e){var t=this.config;if(this.config=e,this.$updateCursorRow(),this.$lines.pageChanged(t,e))return this.update(e);this.$lines.moveContainer(e);var n=Math.min(e.lastRow+e.gutterOffset,this.session.getLength()-1),o=this.oldLastRow;if(this.oldLastRow=n,!t||o0;i--)this.$lines.shift();if(o>n)for(i=this.session.getFoldedRowCount(n+1,o);i>0;i--)this.$lines.pop();e.firstRowo&&this.$lines.push(this.$renderLines(e,o+1,n)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(e)},e.prototype.$renderLines=function(e,t,n){for(var o=[],i=t,r=this.session.getNextFoldLine(i),s=r?r.start.row:1/0;i>s&&(i=r.end.row+1,s=(r=this.session.getNextFoldLine(i,r))?r.start.row:1/0),!(i>n);){var a=this.$lines.createCell(i,e,this.session,u);this.$renderCell(a,e,r,i),o.push(a),i++}return o},e.prototype.$renderCell=function(e,t,n,i){var r=e.element,s=this.session,a=r.childNodes[0],c=r.childNodes[1],u=r.childNodes[2],h=u.firstChild,d=s.$firstLineNumber,p=s.$breakpoints,g=s.$decorations,m=s.gutterRenderer||this.$renderer,f=this.$showFoldWidgets&&s.foldWidgets,y=n?n.start.row:Number.MAX_VALUE,v=t.lineHeight+"px",b=this.$useSvgGutterIcons?"ace_gutter-cell_svg-icons ":"ace_gutter-cell ",w=this.$useSvgGutterIcons?"ace_icon_svg":"ace_icon",x=(m?m.getText(s,i):i+d).toString();if(this.$highlightGutterLine&&(i==this.$cursorRow||n&&i=y&&this.$cursorRow<=n.end.row)&&(b+="ace_gutter-active-line ",this.$cursorCell!=e&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=e)),p[i]&&(b+=p[i]),g[i]&&(b+=g[i]),this.$annotations[i]&&i!==y&&(b+=this.$annotations[i].className),f){var k=f[i];null==k&&(k=f[i]=s.getFoldWidget(i))}if(k){var C="ace_fold-widget ace_"+k,$="start"==k&&i==y&&in.right-t.right?"foldWidgets":void 0},e}();function u(e){var t=document.createTextNode("");e.appendChild(t);var n=o.createElement("span");e.appendChild(n);var i=o.createElement("span");e.appendChild(i);var r=o.createElement("span");return i.appendChild(r),e}c.prototype.$fixedWidth=!1,c.prototype.$highlightGutterLine=!0,c.prototype.$renderer="",c.prototype.$showLineNumbers=!0,c.prototype.$showFoldWidgets=!0,i.implement(c.prototype,s),t.Gutter=c})),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("../range").Range,i=e("../lib/dom"),r=function(){function e(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)}return e.prototype.setPadding=function(e){this.$padding=e},e.prototype.setSession=function(e){this.session=e},e.prototype.setMarkers=function(e){this.markers=e},e.prototype.elt=function(e,t){var n=-1!=this.i&&this.element.childNodes[this.i];n?this.i++:(n=document.createElement("div"),this.element.appendChild(n),this.i=-1),n.style.cssText=t,n.className=e},e.prototype.update=function(e){if(e){var t;for(var n in this.config=e,this.i=0,this.markers){var o=this.markers[n];if(o.range){var i=o.range.clipRows(e.firstRow,e.lastRow);if(!i.isEmpty())if(i=i.toScreenRange(this.session),o.renderer){var r=this.$getTop(i.start.row,e),s=this.$padding+i.start.column*e.characterWidth;o.renderer(t,i,s,r,e)}else"fullLine"==o.type?this.drawFullLineMarker(t,i,o.clazz,e):"screenLine"==o.type?this.drawScreenLineMarker(t,i,o.clazz,e):i.isMultiLine()?"text"==o.type?this.drawTextMarker(t,i,o.clazz,e):this.drawMultiLineMarker(t,i,o.clazz,e):this.drawSingleLineMarker(t,i,o.clazz+" ace_start ace_br15",e)}else o.update(t,this,this.session,e)}if(-1!=this.i)for(;this.id?4:0)|(c==l?8:0)),i,c==l?0:1,r)},e.prototype.drawMultiLineMarker=function(e,t,n,o,i){var r=this.$padding,s=o.lineHeight,a=this.$getTop(t.start.row,o),l=r+t.start.column*o.characterWidth;if(i=i||"",this.session.$bidiHandler.isBidiRow(t.start.row)?((c=t.clone()).end.row=c.start.row,c.end.column=this.session.getLine(c.start.row).length,this.drawBidiSingleLineMarker(e,c,n+" ace_br1 ace_start",o,null,i)):this.elt(n+" ace_br1 ace_start","height:"+s+"px;right:0;top:"+a+"px;left:"+l+"px;"+(i||"")),this.session.$bidiHandler.isBidiRow(t.end.row)){var c;(c=t.clone()).start.row=c.end.row,c.start.column=0,this.drawBidiSingleLineMarker(e,c,n+" ace_br12",o,null,i)}else{a=this.$getTop(t.end.row,o);var u=t.end.column*o.characterWidth;this.elt(n+" ace_br12","height:"+s+"px;width:"+u+"px;top:"+a+"px;left:"+r+"px;"+(i||""))}if(!((s=(t.end.row-t.start.row-1)*o.lineHeight)<=0)){a=this.$getTop(t.start.row+1,o);var h=(t.start.column?1:0)|(t.end.column?0:8);this.elt(n+(h?" ace_br"+h:""),"height:"+s+"px;right:0;top:"+a+"px;left:"+r+"px;"+(i||""))}},e.prototype.drawSingleLineMarker=function(e,t,n,o,i,r){if(this.session.$bidiHandler.isBidiRow(t.start.row))return this.drawBidiSingleLineMarker(e,t,n,o,i,r);var s=o.lineHeight,a=(t.end.column+(i||0)-t.start.column)*o.characterWidth,l=this.$getTop(t.start.row,o),c=this.$padding+t.start.column*o.characterWidth;this.elt(n,"height:"+s+"px;width:"+a+"px;top:"+l+"px;left:"+c+"px;"+(r||""))},e.prototype.drawBidiSingleLineMarker=function(e,t,n,o,i,r){var s=o.lineHeight,a=this.$getTop(t.start.row,o),l=this.$padding;this.session.$bidiHandler.getSelections(t.start.column,t.end.column).forEach((function(e){this.elt(n,"height:"+s+"px;width:"+(e.width+(i||0))+"px;top:"+a+"px;left:"+(l+e.left)+"px;"+(r||""))}),this)},e.prototype.drawFullLineMarker=function(e,t,n,o,i){var r=this.$getTop(t.start.row,o),s=o.lineHeight;t.start.row!=t.end.row&&(s+=this.$getTop(t.end.row,o)-r),this.elt(n,"height:"+s+"px;top:"+r+"px;left:0;right:0;"+(i||""))},e.prototype.drawScreenLineMarker=function(e,t,n,o,i){var r=this.$getTop(t.start.row,o),s=o.lineHeight;this.elt(n,"height:"+s+"px;top:"+r+"px;left:0;right:0;"+(i||""))},e}();r.prototype.$padding=0,t.Marker=r})),ace.define("ace/layer/text_util",["require","exports","module"],(function(e,t,n){var o=new Set(["text","rparen","lparen"]);t.isTextToken=function(e){return o.has(e)}})),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter","ace/config","ace/layer/text_util"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("../lib/dom"),r=e("../lib/lang"),s=e("./lines").Lines,a=e("../lib/event_emitter").EventEmitter,l=e("../config").nls,c=e("./text_util").isTextToken,u=function(){function e(e){this.dom=i,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new s(this.element)}return e.prototype.$updateEolChar=function(){var e=this.session.doc,t="\n"==e.getNewLineCharacter()&&"windows"!=e.getNewLineMode()?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=t)return this.EOL_CHAR=t,!0},e.prototype.setPadding=function(e){this.$padding=e,this.element.style.margin="0 "+e+"px"},e.prototype.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},e.prototype.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},e.prototype.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},e.prototype.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},e.prototype.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},e.prototype.setSession=function(e){this.session=e,e&&this.$computeTabString()},e.prototype.setShowInvisibles=function(e){return this.showInvisibles!=e&&(this.showInvisibles=e,"string"==typeof e?(this.showSpaces=/tab/i.test(e),this.showTabs=/space/i.test(e),this.showEOL=/eol/i.test(e)):this.showSpaces=this.showTabs=this.showEOL=e,this.$computeTabString(),!0)},e.prototype.setDisplayIndentGuides=function(e){return this.displayIndentGuides!=e&&(this.displayIndentGuides=e,this.$computeTabString(),!0)},e.prototype.setHighlightIndentGuides=function(e){return this.$highlightIndentGuides!==e&&(this.$highlightIndentGuides=e,e)},e.prototype.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var t=this.$tabStrings=[0],n=1;nu&&(a=l.end.row+1,u=(l=this.session.getNextFoldLine(a,l))?l.start.row:1/0),!(a>i);){var h=r[s++];if(h){this.dom.removeChildren(h),this.$renderLine(h,a,a==u&&l),c&&(h.style.top=this.$lines.computeLineTop(a,e,this.session)+"px");var d=e.lineHeight*this.session.getRowLength(a)+"px";h.style.height!=d&&(c=!0,h.style.height=d)}a++}if(c)for(;s0;i--)this.$lines.shift();if(t.lastRow>e.lastRow)for(i=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);i>0;i--)this.$lines.pop();e.firstRowt.lastRow&&this.$lines.push(this.$renderLinesFragment(e,t.lastRow+1,e.lastRow)),this.$highlightIndentGuide()},e.prototype.$renderLinesFragment=function(e,t,n){for(var o=[],r=t,s=this.session.getNextFoldLine(r),a=s?s.start.row:1/0;r>a&&(r=s.end.row+1,a=(s=this.session.getNextFoldLine(r,s))?s.start.row:1/0),!(r>n);){var l=this.$lines.createCell(r,e,this.session),c=l.element;this.dom.removeChildren(c),i.setStyle(c.style,"height",this.$lines.computeLineHeight(r,e,this.session)+"px"),i.setStyle(c.style,"top",this.$lines.computeLineTop(r,e,this.session)+"px"),this.$renderLine(c,r,r==a&&s),this.$useLineGroups()?c.className="ace_line_group":c.className="ace_line",o.push(l),r++}return o},e.prototype.update=function(e){this.$lines.moveContainer(e),this.config=e;for(var t=e.firstRow,n=e.lastRow,o=this.$lines;o.getLength();)o.pop();o.push(this.$renderLinesFragment(e,t,n))},e.prototype.$renderToken=function(e,t,n,o){for(var i,s=this,a=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC\u2066\u2067\u2068\u202A\u202B\u202D\u202E\u202C\u2069]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,u=this.dom.createFragment(this.element),h=0;i=a.exec(o);){var d=i[1],p=i[2],g=i[3],m=i[4],f=i[5];if(s.showSpaces||!p){var y=h!=i.index?o.slice(h,i.index):"";if(h=i.index+i[0].length,y&&u.appendChild(this.dom.createTextNode(y,this.element)),d){var v=s.session.getScreenTabSize(t+i.index);u.appendChild(s.$tabStrings[v].cloneNode(!0)),t+=v-1}else p?s.showSpaces?((w=this.dom.createElement("span")).className="ace_invisible ace_invisible_space",w.textContent=r.stringRepeat(s.SPACE_CHAR,p.length),u.appendChild(w)):u.appendChild(this.dom.createTextNode(p,this.element)):g?((w=this.dom.createElement("span")).className="ace_invisible ace_invisible_space ace_invalid",w.textContent=r.stringRepeat(s.SPACE_CHAR,g.length),u.appendChild(w)):m?(t+=1,(w=this.dom.createElement("span")).style.width=2*s.config.characterWidth+"px",w.className=s.showSpaces?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",w.textContent=s.showSpaces?s.SPACE_CHAR:m,u.appendChild(w)):f&&(t+=1,(w=this.dom.createElement("span")).style.width=2*s.config.characterWidth+"px",w.className="ace_cjk",w.textContent=f,u.appendChild(w))}}if(u.appendChild(this.dom.createTextNode(h?o.slice(h):o,this.element)),c(n.type))e.appendChild(u);else{var b="ace_"+n.type.replace(/\./g," ace_"),w=this.dom.createElement("span");"fold"==n.type&&(w.style.width=n.value.length*this.config.characterWidth+"px",w.setAttribute("title",l("Unfold code"))),w.className=b,w.appendChild(u),e.appendChild(w)}return t+o.length},e.prototype.renderIndentGuide=function(e,t,n){var o=t.search(this.$indentGuideRe);if(o<=0||o>=n)return t;if(" "==t[0]){for(var i=(o-=o%this.tabSize)/this.tabSize,r=0;ri[r].start.row?this.$highlightIndentGuideMarker.dir=-1:this.$highlightIndentGuideMarker.dir=1;break}if(!this.$highlightIndentGuideMarker.end&&""!==e[t.row]&&t.column===e[t.row].length)for(this.$highlightIndentGuideMarker.dir=1,r=t.row+1;r0)for(var o=0;o=this.$highlightIndentGuideMarker.start+1){if(o.row>=this.$highlightIndentGuideMarker.end)break;this.$setIndentGuideActive(o,t)}}else for(n=e.length-1;n>=0;n--)if(o=e[n],this.$highlightIndentGuideMarker.end&&o.row=s;)a=this.$renderToken(l,a,u,h.substring(0,s-o)),h=h.substring(s-o),o=s,l=this.$createLineElement(),e.appendChild(l),l.appendChild(this.dom.createTextNode(r.stringRepeat(" ",n.indent),this.element)),a=0,s=n[++i]||Number.MAX_VALUE;0!=h.length&&(o+=h.length,a=this.$renderToken(l,a,u,h))}}n[n.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(l,a,null,"",!0)},e.prototype.$renderSimpleLine=function(e,t){for(var n=0,o=0;othis.MAX_LINE_LENGTH)return this.$renderOverflowMessage(e,n,i,r);n=this.$renderToken(e,n,i,r)}}},e.prototype.$renderOverflowMessage=function(e,t,n,o,i){n&&this.$renderToken(e,t,n,o.slice(0,this.MAX_LINE_LENGTH-t));var r=this.dom.createElement("span");r.className="ace_inline_button ace_keyword ace_toggle_wrap",r.textContent=i?"":"",e.appendChild(r)},e.prototype.$renderLine=function(e,t,n){if(n||0==n||(n=this.session.getFoldLine(t)),n)var o=this.$getFoldLineTokens(t,n);else o=this.session.getTokens(t);var i=e;if(o.length){var r=this.session.getRowSplitData(t);r&&r.length?(this.$renderWrappedLine(e,o,r),i=e.lastChild):(i=e,this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i)),this.$renderSimpleLine(i,o))}else this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i));if(this.showEOL&&i){n&&(t=n.end.row);var s=this.dom.createElement("span");s.className="ace_invisible ace_invisible_eol",s.textContent=t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,i.appendChild(s)}},e.prototype.$getFoldLineTokens=function(e,t){var n=this.session,o=[],i=n.getTokens(e);return t.walk((function(e,t,r,s,a){null!=e?o.push({type:"fold",value:e}):(a&&(i=n.getTokens(t)),i.length&&function(e,t,n){for(var i=0,r=0;r+e[i].value.lengthn-t&&(s=s.substring(0,n-t)),o.push({type:e[i].type,value:s}),r=t+s.length,i+=1);rn?o.push({type:e[i].type,value:s.substring(0,n-r)}):o.push(e[i]),r+=s.length,i+=1}}(i,s,r))}),t.end.row,this.session.getLine(t.end.row).length),o},e.prototype.$useLineGroups=function(){return this.session.getUseWrapMode()},e}();u.prototype.EOF_CHAR="¶",u.prototype.EOL_CHAR_LF="¬",u.prototype.EOL_CHAR_CRLF="¤",u.prototype.EOL_CHAR=u.prototype.EOL_CHAR_LF,u.prototype.TAB_CHAR="—",u.prototype.SPACE_CHAR="·",u.prototype.$padding=0,u.prototype.MAX_LINE_LENGTH=1e4,u.prototype.showInvisibles=!1,u.prototype.showSpaces=!1,u.prototype.showTabs=!1,u.prototype.showEOL=!1,u.prototype.displayIndentGuides=!0,u.prototype.$highlightIndentGuides=!0,u.prototype.$tabStrings=[],u.prototype.destroy={},u.prototype.onChangeTabSize=u.prototype.$computeTabString,o.implement(u.prototype,a),t.Text=u})),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=function(){function e(e){this.element=o.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),o.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)}return e.prototype.$updateOpacity=function(e){for(var t=this.cursors,n=t.length;n--;)o.setStyle(t[n].style,"opacity",e?"":"0")},e.prototype.$startCssAnimation=function(){for(var e=this.cursors,t=e.length;t--;)e[t].style.animationDuration=this.blinkInterval+"ms";this.$isAnimating=!0,setTimeout(function(){this.$isAnimating&&o.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},e.prototype.$stopCssAnimation=function(){this.$isAnimating=!1,o.removeCssClass(this.element,"ace_animate-blinking")},e.prototype.setPadding=function(e){this.$padding=e},e.prototype.setSession=function(e){this.session=e},e.prototype.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},e.prototype.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},e.prototype.setSmoothBlinking=function(e){e!=this.smoothBlinking&&(this.smoothBlinking=e,o.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.restartTimer())},e.prototype.addCursor=function(){var e=o.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},e.prototype.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},e.prototype.hideCursor=function(){this.isVisible=!1,o.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},e.prototype.showCursor=function(){this.isVisible=!0,o.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},e.prototype.restartTimer=function(){var e=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&(this.$isSmoothBlinking=!1,o.removeCssClass(this.element,"ace_smooth-blinking")),e(!0),this.isBlinking&&this.blinkInterval&&this.isVisible)if(this.smoothBlinking&&(this.$isSmoothBlinking=!0,setTimeout(function(){this.$isSmoothBlinking&&o.addCssClass(this.element,"ace_smooth-blinking")}.bind(this))),o.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var t=function(){this.timeoutId=setTimeout((function(){e(!1)}),.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval((function(){e(!0),t()}),this.blinkInterval),t()}else this.$stopCssAnimation()},e.prototype.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var n=this.session.documentToScreenPosition(e);return{left:this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e.row)?this.session.$bidiHandler.getPosLeft(n.column):n.column*this.config.characterWidth),top:(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight}},e.prototype.isCursorInView=function(e,t){return e.top>=0&&e.tope.height+e.offset||s.top<0)&&n>1)){var a=this.cursors[i++]||this.addCursor(),l=a.style;this.drawCursor?this.drawCursor(a,s,e,t[n],this.session):this.isCursorInView(s,e)?(o.setStyle(l,"display","block"),o.translate(a,s.left,s.top),o.setStyle(l,"width",Math.round(e.characterWidth)+"px"),o.setStyle(l,"height",e.lineHeight+"px")):o.setStyle(l,"display","none")}}for(;this.cursors.length>i;)this.removeCursor();var c=this.session.getOverwrite();this.$setOverwrite(c),this.$pixelPos=s,this.restartTimer()},e.prototype.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?o.addCssClass(this.element,"ace_overwrite-cursors"):o.removeCssClass(this.element,"ace_overwrite-cursors"))},e.prototype.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)},e}();i.prototype.$padding=0,i.prototype.drawCursor=null,t.Cursor=i})),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("./lib/oop"),s=e("./lib/dom"),a=e("./lib/event"),l=e("./lib/event_emitter").EventEmitter,c=32768,u=function(){function e(e,t){this.element=s.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+t,this.inner=s.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent=" ",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addListener(this.element,"scroll",this.onScroll.bind(this)),a.addListener(this.element,"mousedown",a.preventDefault)}return e.prototype.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1},e}();r.implement(u.prototype,l);var h=function(e){function t(t,n){var o=e.call(this,t,"-v")||this;return o.scrollTop=0,o.scrollHeight=0,n.$scrollbarWidth=o.width=s.scrollbarWidth(t.ownerDocument),o.inner.style.width=o.element.style.width=(o.width||15)+5+"px",o.$minWidth=0,o}return i(t,e),t.prototype.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,1!=this.coeff){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},t.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},t.prototype.setHeight=function(e){this.element.style.height=e+"px"},t.prototype.setScrollHeight=function(e){this.scrollHeight=e,e>c?(this.coeff=c/e,e=c):1!=this.coeff&&(this.coeff=1),this.inner.style.height=e+"px"},t.prototype.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)},t}(u);h.prototype.setInnerHeight=h.prototype.setScrollHeight;var d=function(e){function t(t,n){var o=e.call(this,t,"-h")||this;return o.scrollLeft=0,o.height=n.$scrollbarWidth,o.inner.style.height=o.element.style.height=(o.height||15)+5+"px",o}return i(t,e),t.prototype.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},t.prototype.getHeight=function(){return this.isVisible?this.height:0},t.prototype.setWidth=function(e){this.element.style.width=e+"px"},t.prototype.setInnerWidth=function(e){this.inner.style.width=e+"px"},t.prototype.setScrollWidth=function(e){this.inner.style.width=e+"px"},t.prototype.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)},t}(u);t.ScrollBar=h,t.ScrollBarV=h,t.ScrollBarH=d,t.VScrollBar=h,t.HScrollBar=d})),ace.define("ace/scrollbar_custom",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("./lib/oop"),s=e("./lib/dom"),a=e("./lib/event"),l=e("./lib/event_emitter").EventEmitter;s.importCssString(".ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{\n position: absolute;\n background: rgba(128, 128, 128, 0.6);\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n border: 1px solid #bbb;\n border-radius: 2px;\n z-index: 8;\n}\n.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h {\n position: absolute;\n z-index: 6;\n background: none;\n overflow: hidden!important;\n}\n.ace_editor>.ace_sb-v {\n z-index: 6;\n right: 0;\n top: 0;\n width: 12px;\n}\n.ace_editor>.ace_sb-v div {\n z-index: 8;\n right: 0;\n width: 100%;\n}\n.ace_editor>.ace_sb-h {\n bottom: 0;\n left: 0;\n height: 12px;\n}\n.ace_editor>.ace_sb-h div {\n bottom: 0;\n height: 100%;\n}\n.ace_editor>.ace_sb_grabbed {\n z-index: 8;\n background: #000;\n}","ace_scrollbar.css",!1);var c=function(){function e(e,t){this.element=s.createElement("div"),this.element.className="ace_sb"+t,this.inner=s.createElement("div"),this.inner.className="",this.element.appendChild(this.inner),this.VScrollWidth=12,this.HScrollHeight=12,e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addMultiMouseDownListener(this.element,[500,300,300],this,"onMouseDown")}return e.prototype.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1},e}();r.implement(c.prototype,l);var u=function(e){function t(t,n){var o=e.call(this,t,"-v")||this;return o.scrollTop=0,o.scrollHeight=0,o.parent=t,o.width=o.VScrollWidth,o.renderer=n,o.inner.style.width=o.element.style.width=(o.width||15)+"px",o.$minWidth=0,o}return i(t,e),t.prototype.onMouseDown=function(e,t){if("mousedown"===e&&0===a.getButton(t)&&2!==t.detail){if(t.target===this.inner){var n=this,o=t.clientY,i=t.clientY,r=this.thumbTop;a.capture(this.inner,(function(e){o=e.clientY}),(function(){clearInterval(s)}));var s=setInterval((function(){if(void 0!==o){var e=n.scrollTopFromThumbTop(r+o-i);e!==n.scrollTop&&n._emit("scroll",{data:e})}}),20);return a.preventDefault(t)}var l=t.clientY-this.element.getBoundingClientRect().top-this.thumbHeight/2;return this._emit("scroll",{data:this.scrollTopFromThumbTop(l)}),a.preventDefault(t)}},t.prototype.getHeight=function(){return this.height},t.prototype.scrollTopFromThumbTop=function(e){var t=e*(this.pageHeight-this.viewHeight)/(this.slideHeight-this.thumbHeight);return(t|=0)<0?t=0:t>this.pageHeight-this.viewHeight&&(t=this.pageHeight-this.viewHeight),t},t.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},t.prototype.setHeight=function(e){this.height=Math.max(0,e),this.slideHeight=this.height,this.viewHeight=this.height,this.setScrollHeight(this.pageHeight,!0)},t.prototype.setScrollHeight=function(e,t){(this.pageHeight!==e||t)&&(this.pageHeight=e,this.thumbHeight=this.slideHeight*this.viewHeight/this.pageHeight,this.thumbHeight>this.slideHeight&&(this.thumbHeight=this.slideHeight),this.thumbHeight<15&&(this.thumbHeight=15),this.inner.style.height=this.thumbHeight+"px",this.scrollTop>this.pageHeight-this.viewHeight&&(this.scrollTop=this.pageHeight-this.viewHeight,this.scrollTop<0&&(this.scrollTop=0),this._emit("scroll",{data:this.scrollTop})))},t.prototype.setScrollTop=function(e){this.scrollTop=e,e<0&&(e=0),this.thumbTop=e*(this.slideHeight-this.thumbHeight)/(this.pageHeight-this.viewHeight),this.inner.style.top=this.thumbTop+"px"},t}(c);u.prototype.setInnerHeight=u.prototype.setScrollHeight;var h=function(e){function t(t,n){var o=e.call(this,t,"-h")||this;return o.scrollLeft=0,o.scrollWidth=0,o.height=o.HScrollHeight,o.inner.style.height=o.element.style.height=(o.height||12)+"px",o.renderer=n,o}return i(t,e),t.prototype.onMouseDown=function(e,t){if("mousedown"===e&&0===a.getButton(t)&&2!==t.detail){if(t.target===this.inner){var n=this,o=t.clientX,i=t.clientX,r=this.thumbLeft;a.capture(this.inner,(function(e){o=e.clientX}),(function(){clearInterval(s)}));var s=setInterval((function(){if(void 0!==o){var e=n.scrollLeftFromThumbLeft(r+o-i);e!==n.scrollLeft&&n._emit("scroll",{data:e})}}),20);return a.preventDefault(t)}var l=t.clientX-this.element.getBoundingClientRect().left-this.thumbWidth/2;return this._emit("scroll",{data:this.scrollLeftFromThumbLeft(l)}),a.preventDefault(t)}},t.prototype.getHeight=function(){return this.isVisible?this.height:0},t.prototype.scrollLeftFromThumbLeft=function(e){var t=e*(this.pageWidth-this.viewWidth)/(this.slideWidth-this.thumbWidth);return(t|=0)<0?t=0:t>this.pageWidth-this.viewWidth&&(t=this.pageWidth-this.viewWidth),t},t.prototype.setWidth=function(e){this.width=Math.max(0,e),this.element.style.width=this.width+"px",this.slideWidth=this.width,this.viewWidth=this.width,this.setScrollWidth(this.pageWidth,!0)},t.prototype.setScrollWidth=function(e,t){(this.pageWidth!==e||t)&&(this.pageWidth=e,this.thumbWidth=this.slideWidth*this.viewWidth/this.pageWidth,this.thumbWidth>this.slideWidth&&(this.thumbWidth=this.slideWidth),this.thumbWidth<15&&(this.thumbWidth=15),this.inner.style.width=this.thumbWidth+"px",this.scrollLeft>this.pageWidth-this.viewWidth&&(this.scrollLeft=this.pageWidth-this.viewWidth,this.scrollLeft<0&&(this.scrollLeft=0),this._emit("scroll",{data:this.scrollLeft})))},t.prototype.setScrollLeft=function(e){this.scrollLeft=e,e<0&&(e=0),this.thumbLeft=e*(this.slideWidth-this.thumbWidth)/(this.pageWidth-this.viewWidth),this.inner.style.left=this.thumbLeft+"px"},t}(c);h.prototype.setInnerWidth=h.prototype.setScrollWidth,t.ScrollBar=u,t.ScrollBarV=u,t.ScrollBarH=h,t.VScrollBar=u,t.HScrollBar=h})),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],(function(e,t,n){"use strict";var o=e("./lib/event"),i=function(){function e(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=t||window;var n=this;this._flush=function(e){n.pending=!1;var t=n.changes;if(t&&(o.blockIdle(100),n.changes=0,n.onRender(t)),n.changes){if(n.$recursionLimit--<0)return;n.schedule()}else n.$recursionLimit=2}}return e.prototype.schedule=function(e){this.changes=this.changes|e,this.changes&&!this.pending&&(o.nextFrame(this._flush),this.pending=!0)},e.prototype.clear=function(e){var t=this.changes;return this.changes=0,t},e}();t.RenderLoop=i})),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],(function(e,t,n){var o=e("../lib/oop"),i=e("../lib/dom"),r=e("../lib/lang"),s=e("../lib/event"),a=e("../lib/useragent"),l=e("../lib/event_emitter").EventEmitter,c=512,u="function"==typeof ResizeObserver,h=200,d=function(){function e(e){this.el=i.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=i.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=i.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),this.$measureNode.textContent=r.stringRepeat("X",c),this.$characterSize={width:0,height:0},u?this.$addObserver():this.checkForSizeChanges()}return e.prototype.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",a.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},e.prototype.checkForSizeChanges=function(e){if(void 0===e&&(e=this.$measureSizes()),e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},e.prototype.$addObserver=function(){var e=this;this.$observer=new window.ResizeObserver((function(t){e.checkForSizeChanges()})),this.$observer.observe(this.$measureNode)},e.prototype.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=s.onIdle((function t(){e.checkForSizeChanges(),s.onIdle(t,500)}),500)},e.prototype.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},e.prototype.$measureSizes=function(e){var t={height:(e||this.$measureNode).clientHeight,width:(e||this.$measureNode).clientWidth/c};return 0===t.width||0===t.height?null:t},e.prototype.$measureCharWidth=function(e){return this.$main.textContent=r.stringRepeat(e,c),this.$main.getBoundingClientRect().width/c},e.prototype.getCharacterWidth=function(e){var t=this.charSizes[e];return void 0===t&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},e.prototype.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},e.prototype.$getZoom=function(e){return e&&e.parentElement?(window.getComputedStyle(e).zoom||1)*this.$getZoom(e.parentElement):1},e.prototype.$initTransformMeasureNodes=function(){var e=function(e,t){return["div",{style:"position: absolute;top:"+e+"px;left:"+t+"px;"}]};this.els=i.buildDom([e(0,0),e(h,0),e(0,h),e(h,h)],this.el)},e.prototype.transformCoordinates=function(e,t){function n(e,t,n){var o=e[1]*t[0]-e[0]*t[1];return[(-t[1]*n[0]+t[0]*n[1])/o,(+e[1]*n[0]-e[0]*n[1])/o]}function o(e,t){return[e[0]-t[0],e[1]-t[1]]}function i(e,t){return[e[0]+t[0],e[1]+t[1]]}function r(e,t){return[e*t[0],e*t[1]]}function s(e){var t=e.getBoundingClientRect();return[t.left,t.top]}e&&(e=r(1/this.$getZoom(this.el),e)),this.els||this.$initTransformMeasureNodes();var a=s(this.els[0]),l=s(this.els[1]),c=s(this.els[2]),u=s(this.els[3]),d=n(o(u,l),o(u,c),o(i(l,c),i(u,a))),p=r(1+d[0],o(l,a)),g=r(1+d[1],o(c,a));if(t){var m=t,f=d[0]*m[0]/h+d[1]*m[1]/h+1,y=i(r(m[0],p),r(m[1],g));return i(r(1/f/h,y),a)}var v=o(e,a),b=n(o(p,r(d[0],v)),o(g,r(d[1],v)),v);return r(h,b)},e}();d.prototype.$characterSize={width:0,height:0},o.implement(d.prototype,l),t.FontMetrics=d})),ace.define("ace/css/editor-css",["require","exports","module"],(function(e,t,n){n.exports='\n.ace_br1 {border-top-left-radius : 3px;}\n.ace_br2 {border-top-right-radius : 3px;}\n.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\n.ace_br4 {border-bottom-right-radius: 3px;}\n.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\n.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\n.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\n.ace_br8 {border-bottom-left-radius : 3px;}\n.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\n.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\n.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n\n\n.ace_editor {\n position: relative;\n overflow: hidden;\n padding: 0;\n font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'Source Code Pro\', \'source-code-pro\', monospace;\n direction: ltr;\n text-align: left;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\n.ace_scroller {\n position: absolute;\n overflow: hidden;\n top: 0;\n bottom: 0;\n background-color: inherit;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n cursor: text;\n}\n\n.ace_content {\n position: absolute;\n box-sizing: border-box;\n min-width: 100%;\n contain: style size layout;\n font-variant-ligatures: no-common-ligatures;\n}\n\n.ace_keyboard-focus:focus {\n box-shadow: inset 0 0 0 2px #5E9ED6;\n outline: none;\n}\n\n.ace_dragging .ace_scroller:before{\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n content: \'\';\n background: rgba(250, 250, 250, 0.01);\n z-index: 1000;\n}\n.ace_dragging.ace_dark .ace_scroller:before{\n background: rgba(0, 0, 0, 0.01);\n}\n\n.ace_gutter {\n position: absolute;\n overflow : hidden;\n width: auto;\n top: 0;\n bottom: 0;\n left: 0;\n cursor: default;\n z-index: 4;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n contain: style size layout;\n}\n\n.ace_gutter-active-line {\n position: absolute;\n left: 0;\n right: 0;\n}\n\n.ace_scroller.ace_scroll-left:after {\n content: "";\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\n pointer-events: none;\n}\n\n.ace_gutter-cell, .ace_gutter-cell_svg-icons {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n padding-left: 19px;\n padding-right: 6px;\n background-repeat: no-repeat;\n}\n\n.ace_gutter-cell_svg-icons .ace_gutter_annotation {\n margin-left: -14px;\n float: left;\n}\n\n.ace_gutter-cell .ace_gutter_annotation {\n margin-left: -19px;\n float: left;\n}\n\n.ace_gutter-cell.ace_error, .ace_icon.ace_error, .ace_icon.ace_error_fold {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_warning, .ace_icon.ace_warning, .ace_icon.ace_warning_fold {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_info, .ace_icon.ace_info {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n.ace_dark .ace_gutter-cell.ace_info, .ace_dark .ace_icon.ace_info {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");\n}\n\n.ace_icon_svg.ace_error {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJyZWQiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KPGNpcmNsZSBmaWxsPSJub25lIiBjeD0iOCIgY3k9IjgiIHI9IjciIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPGxpbmUgeDE9IjExIiB5MT0iNSIgeDI9IjUiIHkyPSIxMSIvPgo8bGluZSB4MT0iMTEiIHkxPSIxMSIgeDI9IjUiIHkyPSI1Ii8+CjwvZz4KPC9zdmc+");\n background-color: crimson;\n}\n.ace_icon_svg.ace_warning {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJkYXJrb3JhbmdlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+Cjxwb2x5Z29uIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGZpbGw9Im5vbmUiIHBvaW50cz0iOCAxIDE1IDE1IDEgMTUgOCAxIi8+CjxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iMC4wMSIgaGVpZ2h0PSIwLjAxIi8+CjxsaW5lIHgxPSI4IiB5MT0iNiIgeDI9IjgiIHkyPSIxMCIvPgo8L2c+Cjwvc3ZnPg==");\n background-color: darkorange;\n}\n.ace_icon_svg.ace_info {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJibHVlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CjxjaXJjbGUgZmlsbD0ibm9uZSIgY3g9IjgiIGN5PSI4IiByPSI3IiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjxwb2x5bGluZSBwb2ludHM9IjggMTEgOCA4Ii8+Cjxwb2x5bGluZSBwb2ludHM9IjkgOCA2IDgiLz4KPGxpbmUgeDE9IjEwIiB5MT0iMTEiIHgyPSI2IiB5Mj0iMTEiLz4KPHJlY3QgeD0iOCIgeT0iNSIgd2lkdGg9IjAuMDEiIGhlaWdodD0iMC4wMSIvPgo8L2c+Cjwvc3ZnPg==");\n background-color: royalblue;\n}\n\n.ace_icon_svg.ace_error_fold {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSI+CiAgPHBhdGggZD0ibSAxOC45Mjk4NTEsNy44Mjk4MDc2IGMgMC4xNDYzNTMsNi4zMzc0NjA0IC02LjMyMzE0Nyw3Ljc3Nzg0NDQgLTcuNDc3OTEyLDcuNzc3ODQ0NCAtMi4xMDcyNzI2LC0wLjEyODc1IDUuMTE3Njc4LDAuMzU2MjQ5IDUuMDUxNjk4LC03Ljg3MDA2MTggLTAuNjA0NjcyLC04LjAwMzk3MzQ5IC03LjA3NzI3MDYsLTcuNTYzMTE4OSAtNC44NTczLC03LjQzMDM5NTU2IDEuNjA2LC0wLjExNTE0MjI1IDYuODk3NDg1LDEuMjYyNTQ1OTYgNy4yODM1MTQsNy41MjI2MTI5NiB6IiBmaWxsPSJjcmltc29uIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0ibSA4LjExNDc1NjIsMi4wNTI5ODI4IGMgMy4zNDkxNjk4LDAgNi4wNjQxMzI4LDIuNjc2ODYyNyA2LjA2NDEzMjgsNS45Nzg5NTMgMCwzLjMwMjExMjIgLTIuNzE0OTYzLDUuOTc4OTIwMiAtNi4wNjQxMzI4LDUuOTc4OTIwMiAtMy4zNDkxNDczLDAgLTYuMDY0MTc3MiwtMi42NzY4MDggLTYuMDY0MTc3MiwtNS45Nzg5MjAyIDAuMDA1MzksLTMuMjk5ODg2MSAyLjcxNzI2NTYsLTUuOTczNjQwOCA2LjA2NDE3NzIsLTUuOTc4OTUzIHogbSAwLC0xLjczNTgyNzE5IGMgLTQuMzIxNDgzNiwwIC03LjgyNDc0MDM4LDMuNDU0MDE4NDkgLTcuODI0NzQwMzgsNy43MTQ3ODAxOSAwLDQuMjYwNzI4MiAzLjUwMzI1Njc4LDcuNzE0NzQ1MiA3LjgyNDc0MDM4LDcuNzE0NzQ1MiA0LjMyMTQ0OTgsMCA3LjgyNDY5OTgsLTMuNDU0MDE3IDcuODI0Njk5OCwtNy43MTQ3NDUyIDAsLTIuMDQ2MDkxNCAtMC44MjQzOTIsLTQuMDA4MzY3MiAtMi4yOTE3NTYsLTUuNDU1MTc0NiBDIDEyLjE4MDIyNSwxLjEyOTk2NDggMTAuMTkwMDEzLDAuMzE3MTU1NjEgOC4xMTQ3NTYyLDAuMzE3MTU1NjEgWiBNIDYuOTM3NDU2Myw4LjI0MDU5ODUgNC42NzE4Njg1LDEwLjQ4NTg1MiA2LjAwODY4MTQsMTEuODc2NzI4IDguMzE3MDAzNSw5LjYwMDc5MTEgMTAuNjI1MzM3LDExLjg3NjcyOCAxMS45NjIxMzgsMTAuNDg1ODUyIDkuNjk2NTUwOCw4LjI0MDU5ODUgMTEuOTYyMTM4LDYuMDA2ODA2NiAxMC41NzMyNDYsNC42Mzc0MzM1IDguMzE3MDAzNSw2Ljg3MzQyOTcgNi4wNjA3NjA3LDQuNjM3NDMzNSA0LjY3MTg2ODUsNi4wMDY4MDY2IFoiIGZpbGw9ImNyaW1zb24iIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4=");\n background-color: crimson;\n}\n.ace_icon_svg.ace_warning_fold {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNC43NzY5IDE0LjczMzdMOC42NTE5MiAyLjQ4MzY5QzguMzI5NDYgMS44Mzg3NyA3LjQwOTEzIDEuODM4NzcgNy4wODY2NyAyLjQ4MzY5TDAuOTYxNjY5IDE0LjczMzdDMC42NzA3NzUgMTUuMzE1NSAxLjA5MzgzIDE2IDEuNzQ0MjkgMTZIMTMuOTk0M0MxNC42NDQ4IDE2IDE1LjA2NzggMTUuMzE1NSAxNC43NzY5IDE0LjczMzdaTTMuMTYwMDcgMTQuMjVMNy44NjkyOSA0LjgzMTU2TDEyLjU3ODUgMTQuMjVIMy4xNjAwN1pNOC43NDQyOSAxMS42MjVWMTMuMzc1SDYuOTk0MjlWMTEuNjI1SDguNzQ0MjlaTTYuOTk0MjkgMTAuNzVWNy4yNUg4Ljc0NDI5VjEwLjc1SDYuOTk0MjlaIiBmaWxsPSIjRUM3MjExIi8+CjxwYXRoIGQ9Ik0xMS4xOTkxIDIuOTUyMzhDMTAuODgwOSAyLjMxNDY3IDEwLjM1MzcgMS44MDUyNiA5LjcwNTUgMS41MDlMMTEuMDQxIDEuMDY5NzhDMTEuNjg4MyAwLjk0OTgxNCAxMi4zMzcgMS4yNzI2MyAxMi42MzE3IDEuODYxNDFMMTcuNjEzNiAxMS44MTYxQzE4LjM1MjcgMTMuMjkyOSAxNy41OTM4IDE1LjA4MDQgMTYuMDE4IDE1LjU3NDVDMTYuNDA0NCAxNC40NTA3IDE2LjMyMzEgMTMuMjE4OCAxNS43OTI0IDEyLjE1NTVMMTEuMTk5MSAyLjk1MjM4WiIgZmlsbD0iI0VDNzIxMSIvPgo8L3N2Zz4=");\n background-color: darkorange;\n}\n\n.ace_scrollbar {\n contain: strict;\n position: absolute;\n right: 0;\n bottom: 0;\n z-index: 6;\n}\n\n.ace_scrollbar-inner {\n position: absolute;\n cursor: text;\n left: 0;\n top: 0;\n}\n\n.ace_scrollbar-v{\n overflow-x: hidden;\n overflow-y: scroll;\n top: 0;\n}\n\n.ace_scrollbar-h {\n overflow-x: scroll;\n overflow-y: hidden;\n left: 0;\n}\n\n.ace_print-margin {\n position: absolute;\n height: 100%;\n}\n\n.ace_text-input {\n position: absolute;\n z-index: 0;\n width: 0.5em;\n height: 1em;\n opacity: 0;\n background: transparent;\n -moz-appearance: none;\n appearance: none;\n border: none;\n resize: none;\n outline: none;\n overflow: hidden;\n font: inherit;\n padding: 0 1px;\n margin: 0 -1px;\n contain: strict;\n -ms-user-select: text;\n -moz-user-select: text;\n -webkit-user-select: text;\n user-select: text;\n /*with `pre-line` chrome inserts   instead of space*/\n white-space: pre!important;\n}\n.ace_text-input.ace_composition {\n background: transparent;\n color: inherit;\n z-index: 1000;\n opacity: 1;\n}\n.ace_composition_placeholder { color: transparent }\n.ace_composition_marker { \n border-bottom: 1px solid;\n position: absolute;\n border-radius: 0;\n margin-top: 1px;\n}\n\n[ace_nocontext=true] {\n transform: none!important;\n filter: none!important;\n clip-path: none!important;\n mask : none!important;\n contain: none!important;\n perspective: none!important;\n mix-blend-mode: initial!important;\n z-index: auto;\n}\n\n.ace_layer {\n z-index: 1;\n position: absolute;\n overflow: hidden;\n /* workaround for chrome bug https://github.com/ajaxorg/ace/issues/2312*/\n word-wrap: normal;\n white-space: pre;\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n /* setting pointer-events: auto; on node under the mouse, which changes\n during scroll, will break mouse wheel scrolling in Safari */\n pointer-events: none;\n}\n\n.ace_gutter-layer {\n position: relative;\n width: auto;\n text-align: right;\n pointer-events: auto;\n height: 1000000px;\n contain: style size layout;\n}\n\n.ace_text-layer {\n font: inherit !important;\n position: absolute;\n height: 1000000px;\n width: 1000000px;\n contain: style size layout;\n}\n\n.ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group {\n contain: style size layout;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n}\n\n.ace_hidpi .ace_text-layer,\n.ace_hidpi .ace_gutter-layer,\n.ace_hidpi .ace_content,\n.ace_hidpi .ace_gutter {\n contain: strict;\n}\n.ace_hidpi .ace_text-layer > .ace_line, \n.ace_hidpi .ace_text-layer > .ace_line_group {\n contain: strict;\n}\n\n.ace_cjk {\n display: inline-block;\n text-align: center;\n}\n\n.ace_cursor-layer {\n z-index: 4;\n}\n\n.ace_cursor {\n z-index: 4;\n position: absolute;\n box-sizing: border-box;\n border-left: 2px solid;\n /* workaround for smooth cursor repaintng whole screen in chrome */\n transform: translatez(0);\n}\n\n.ace_multiselect .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_slim-cursors .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_overwrite-cursors .ace_cursor {\n border-left-width: 0;\n border-bottom: 1px solid;\n}\n\n.ace_hidden-cursors .ace_cursor {\n opacity: 0.2;\n}\n\n.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {\n opacity: 0;\n}\n\n.ace_smooth-blinking .ace_cursor {\n transition: opacity 0.18s;\n}\n\n.ace_animate-blinking .ace_cursor {\n animation-duration: 1000ms;\n animation-timing-function: step-end;\n animation-name: blink-ace-animate;\n animation-iteration-count: infinite;\n}\n\n.ace_animate-blinking.ace_smooth-blinking .ace_cursor {\n animation-duration: 1000ms;\n animation-timing-function: ease-in-out;\n animation-name: blink-ace-animate-smooth;\n}\n \n@keyframes blink-ace-animate {\n from, to { opacity: 1; }\n 60% { opacity: 0; }\n}\n\n@keyframes blink-ace-animate-smooth {\n from, to { opacity: 1; }\n 45% { opacity: 1; }\n 60% { opacity: 0; }\n 85% { opacity: 0; }\n}\n\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\n position: absolute;\n z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n position: absolute;\n z-index: 5;\n}\n\n.ace_marker-layer .ace_bracket {\n position: absolute;\n z-index: 6;\n}\n\n.ace_marker-layer .ace_error_bracket {\n position: absolute;\n border-bottom: 1px solid #DE5555;\n border-radius: 0;\n}\n\n.ace_marker-layer .ace_active-line {\n position: absolute;\n z-index: 2;\n}\n\n.ace_marker-layer .ace_selected-word {\n position: absolute;\n z-index: 4;\n box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n box-sizing: border-box;\n\n display: inline-block;\n height: 11px;\n margin-top: -2px;\n vertical-align: middle;\n\n background-image:\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");\n background-repeat: no-repeat, repeat-x;\n background-position: center center, top left;\n color: transparent;\n\n border: 1px solid black;\n border-radius: 2px;\n\n cursor: pointer;\n pointer-events: auto;\n}\n\n.ace_dark .ace_fold {\n}\n\n.ace_fold:hover{\n background-image:\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");\n}\n\n.ace_tooltip {\n background-color: #f5f5f5;\n border: 1px solid gray;\n border-radius: 1px;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\n color: black;\n max-width: 100%;\n padding: 3px 4px;\n position: fixed;\n z-index: 999999;\n box-sizing: border-box;\n cursor: default;\n white-space: pre-wrap;\n word-wrap: break-word;\n line-height: normal;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n pointer-events: none;\n overflow: auto;\n max-width: min(60em, 66vw);\n}\n.ace_tooltip pre {\n white-space: pre-wrap;\n}\n\n.ace_tooltip.ace_dark {\n background-color: #636363;\n color: #fff;\n}\n\n.ace_tooltip:focus {\n outline: 1px solid #5E9ED6;\n}\n\n.ace_icon {\n display: inline-block;\n width: 18px;\n vertical-align: top;\n}\n\n.ace_icon_svg {\n display: inline-block;\n width: 12px;\n vertical-align: top;\n -webkit-mask-repeat: no-repeat;\n -webkit-mask-size: 12px;\n -webkit-mask-position: center;\n}\n\n.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons {\n padding-right: 13px;\n}\n\n.ace_fold-widget {\n box-sizing: border-box;\n\n margin: 0 -12px 0 1px;\n display: none;\n width: 11px;\n vertical-align: top;\n\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: center;\n\n border-radius: 3px;\n \n border: 1px solid transparent;\n cursor: pointer;\n}\n\n.ace_folding-enabled .ace_fold-widget {\n display: inline-block; \n}\n\n.ace_fold-widget.ace_end {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");\n}\n\n.ace_fold-widget.ace_closed {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");\n}\n\n.ace_fold-widget:hover {\n border: 1px solid rgba(0, 0, 0, 0.3);\n background-color: rgba(255, 255, 255, 0.2);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n}\n\n.ace_fold-widget:active {\n border: 1px solid rgba(0, 0, 0, 0.4);\n background-color: rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n}\n/**\n * Dark version for fold widgets\n */\n.ace_dark .ace_fold-widget {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");\n}\n.ace_dark .ace_fold-widget.ace_end {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");\n}\n.ace_dark .ace_fold-widget.ace_closed {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");\n}\n.ace_dark .ace_fold-widget:hover {\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n background-color: rgba(255, 255, 255, 0.1);\n}\n.ace_dark .ace_fold-widget:active {\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n}\n\n.ace_inline_button {\n border: 1px solid lightgray;\n display: inline-block;\n margin: -1px 8px;\n padding: 0 5px;\n pointer-events: auto;\n cursor: pointer;\n}\n.ace_inline_button:hover {\n border-color: gray;\n background: rgba(200,200,200,0.2);\n display: inline-block;\n pointer-events: auto;\n}\n\n.ace_fold-widget.ace_invalid {\n background-color: #FFB4B4;\n border-color: #DE5555;\n}\n\n.ace_fade-fold-widgets .ace_fold-widget {\n transition: opacity 0.4s ease 0.05s;\n opacity: 0;\n}\n\n.ace_fade-fold-widgets:hover .ace_fold-widget {\n transition: opacity 0.05s ease 0.05s;\n opacity:1;\n}\n\n.ace_underline {\n text-decoration: underline;\n}\n\n.ace_bold {\n font-weight: bold;\n}\n\n.ace_nobold .ace_bold {\n font-weight: normal;\n}\n\n.ace_italic {\n font-style: italic;\n}\n\n\n.ace_error-marker {\n background-color: rgba(255, 0, 0,0.2);\n position: absolute;\n z-index: 9;\n}\n\n.ace_highlight-marker {\n background-color: rgba(255, 255, 0,0.2);\n position: absolute;\n z-index: 8;\n}\n\n.ace_mobile-menu {\n position: absolute;\n line-height: 1.5;\n border-radius: 4px;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n background: white;\n box-shadow: 1px 3px 2px grey;\n border: 1px solid #dcdcdc;\n color: black;\n}\n.ace_dark > .ace_mobile-menu {\n background: #333;\n color: #ccc;\n box-shadow: 1px 3px 2px grey;\n border: 1px solid #444;\n\n}\n.ace_mobile-button {\n padding: 2px;\n cursor: pointer;\n overflow: hidden;\n}\n.ace_mobile-button:hover {\n background-color: #eee;\n opacity:1;\n}\n.ace_mobile-button:active {\n background-color: #ddd;\n}\n\n.ace_placeholder {\n font-family: arial;\n transform: scale(0.9);\n transform-origin: left;\n white-space: pre;\n opacity: 0.7;\n margin: 0 10px;\n}\n\n.ace_ghost_text {\n opacity: 0.5;\n font-style: italic;\n white-space: pre;\n}\n\n.ace_screenreader-only {\n position:absolute;\n left:-10000px;\n top:auto;\n width:1px;\n height:1px;\n overflow:hidden;\n}'})),ace.define("ace/layer/decorators",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=e("../lib/oop"),r=e("../lib/event_emitter").EventEmitter,s=function(){function e(e,t){this.canvas=o.createElement("canvas"),this.renderer=t,this.pixelRatio=1,this.maxHeight=t.layerConfig.maxHeight,this.lineHeight=t.layerConfig.lineHeight,this.canvasHeight=e.parent.scrollHeight,this.heightRatio=this.canvasHeight/this.maxHeight,this.canvasWidth=e.width,this.minDecorationHeight=2*this.pixelRatio|0,this.halfMinDecorationHeight=this.minDecorationHeight/2|0,this.canvas.width=this.canvasWidth,this.canvas.height=this.canvasHeight,this.canvas.style.top="0px",this.canvas.style.right="0px",this.canvas.style.zIndex="7px",this.canvas.style.position="absolute",this.colors={},this.colors.dark={error:"rgba(255, 18, 18, 1)",warning:"rgba(18, 136, 18, 1)",info:"rgba(18, 18, 136, 1)"},this.colors.light={error:"rgb(255,51,51)",warning:"rgb(32,133,72)",info:"rgb(35,68,138)"},e.element.appendChild(this.canvas)}return e.prototype.$updateDecorators=function(e){var t=!0===this.renderer.theme.isDark?this.colors.dark:this.colors.light;e&&(this.maxHeight=e.maxHeight,this.lineHeight=e.lineHeight,this.canvasHeight=e.height,(e.lastRow+1)*this.lineHeightt.priority?1:0}));for(var r=this.renderer.session.$foldData,s=0;sthis.canvasHeight&&(d=this.canvasHeight-this.halfMinDecorationHeight),u=Math.round(d-this.halfMinDecorationHeight),h=Math.round(d+this.halfMinDecorationHeight)}n.fillStyle=t[o[s].type]||null,n.fillRect(0,c,this.canvasWidth,h-u)}}var p=this.renderer.session.selection.getCursor();p&&(l=this.compensateFoldRows(p.row,r),c=Math.round((p.row-l)*this.lineHeight*this.heightRatio),n.fillStyle="rgba(0, 0, 0, 0.5)",n.fillRect(0,c,this.canvasWidth,2))},e.prototype.compensateFoldRows=function(e,t){var n=0;if(t&&t.length>0)for(var o=0;ot[o].start.row&&e=t[o].end.row&&(n+=t[o].end.row-t[o].start.row);return n},e}();i.implement(s.prototype,r),t.Decorator=s})),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/config","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/scrollbar_custom","ace/scrollbar_custom","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter","ace/css/editor-css","ace/layer/decorators","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("./lib/oop"),i=e("./lib/dom"),r=e("./lib/lang"),s=e("./config"),a=e("./layer/gutter").Gutter,l=e("./layer/marker").Marker,c=e("./layer/text").Text,u=e("./layer/cursor").Cursor,h=e("./scrollbar").HScrollBar,d=e("./scrollbar").VScrollBar,p=e("./scrollbar_custom").HScrollBar,g=e("./scrollbar_custom").VScrollBar,m=e("./renderloop").RenderLoop,f=e("./layer/font_metrics").FontMetrics,y=e("./lib/event_emitter").EventEmitter,v=e("./css/editor-css"),b=e("./layer/decorators").Decorator,w=e("./lib/useragent");i.importCssString(v,"ace_editor.css",!1);var x=function(){function e(e,t){var n=this;this.container=e||i.createElement("div"),i.addCssClass(this.container,"ace_editor"),i.HI_DPI&&i.addCssClass(this.container,"ace_hidpi"),this.setTheme(t),null==s.get("useStrictCSP")&&s.set("useStrictCSP",!1),this.$gutter=i.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=i.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=i.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new a(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new l(this.content);var o=this.$textLayer=new c(this.content);this.canvas=o.element,this.$markerFront=new l(this.content),this.$cursorLayer=new u(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new d(this.container,this),this.scrollBarH=new h(this.container,this),this.scrollBarV.on("scroll",(function(e){n.$scrollAnimation||n.session.setScrollTop(e.data-n.scrollMargin.top)})),this.scrollBarH.on("scroll",(function(e){n.$scrollAnimation||n.session.setScrollLeft(e.data-n.scrollMargin.left)})),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new f(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.on("changeCharacterSize",(function(e){n.updateCharacterSize(),n.onResize(!0,n.gutterWidth,n.$size.width,n.$size.height),n._signal("changeCharacterSize",e)})),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.margin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$keepTextAreaAtCursor=!w.isIOS,this.$loop=new m(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),this.$addResizeObserver(),s.resetOptions(this),s._signal("renderer",this)}return e.prototype.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin(),i.setStyle(this.scroller.style,"line-height",this.lineHeight+"px")},e.prototype.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e),e&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},e.prototype.updateLines=function(e,t,n){if(void 0===t&&(t=1/0),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},e.prototype.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},e.prototype.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},e.prototype.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},e.prototype.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},e.prototype.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},e.prototype.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},e.prototype.onResize=function(e,t,n,o){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=e?1:0;var i=this.container;o||(o=i.clientHeight||i.scrollHeight),n||(n=i.clientWidth||i.scrollWidth);var r=this.$updateCachedSize(e,t,n,o);if(this.$resizeTimer&&this.$resizeTimer.cancel(),!this.$size.scrollerHeight||!n&&!o)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(r|this.$changes,!0):this.$loop.schedule(r|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.$customScrollbar&&this.$updateCustomScrollbar(!0)}},e.prototype.$updateCachedSize=function(e,t,n,o){o-=this.$extraHeight||0;var r=0,s=this.$size,a={width:s.width,height:s.height,scrollerHeight:s.scrollerHeight,scrollerWidth:s.scrollerWidth};if(o&&(e||s.height!=o)&&(s.height=o,r|=this.CHANGE_SIZE,s.scrollerHeight=s.height,this.$horizScroll&&(s.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.setHeight(s.scrollerHeight),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",r|=this.CHANGE_SCROLL),n&&(e||s.width!=n)){r|=this.CHANGE_SIZE,s.width=n,null==t&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,i.setStyle(this.scrollBarH.element.style,"left",t+"px"),i.setStyle(this.scroller.style,"left",t+this.margin.left+"px"),s.scrollerWidth=Math.max(0,n-t-this.scrollBarV.getWidth()-this.margin.h),i.setStyle(this.$gutter.style,"left",this.margin.left+"px");var l=this.scrollBarV.getWidth()+"px";i.setStyle(this.scrollBarH.element.style,"right",l),i.setStyle(this.scroller.style,"right",l),i.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight()),this.scrollBarH.setWidth(s.scrollerWidth),(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)&&(r|=this.CHANGE_FULL)}return s.$dirty=!n||!o,r&&this._signal("resize",a),r},e.prototype.onGutterResize=function(e){var t=this.$showGutter?e:0;t!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,t,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()||this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},e.prototype.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-2*this.$padding,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},e.prototype.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},e.prototype.getAnimatedScroll=function(){return this.$animatedScroll},e.prototype.setShowInvisibles=function(e){this.setOption("showInvisibles",e),this.session.$bidiHandler.setShowInvisibles(e)},e.prototype.getShowInvisibles=function(){return this.getOption("showInvisibles")},e.prototype.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},e.prototype.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},e.prototype.getHighlightIndentGuides=function(){return this.getOption("highlightIndentGuides")},e.prototype.setHighlightIndentGuides=function(e){this.setOption("highlightIndentGuides",e)},e.prototype.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},e.prototype.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},e.prototype.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},e.prototype.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},e.prototype.getShowGutter=function(){return this.getOption("showGutter")},e.prototype.setShowGutter=function(e){return this.setOption("showGutter",e)},e.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},e.prototype.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},e.prototype.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},e.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},e.prototype.$updatePrintMargin=function(){if(this.$showPrintMargin||this.$printMarginEl){if(!this.$printMarginEl){var e=i.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=i.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&-1==this.session.$wrap&&this.adjustWrapLimit()}},e.prototype.getContainerElement=function(){return this.container},e.prototype.getMouseEventTarget=function(){return this.scroller},e.prototype.getTextAreaContainer=function(){return this.container},e.prototype.$moveTextAreaToCursor=function(){if(!this.$isMousePressed){var e=this.textarea.style,t=this.$composition;if(this.$keepTextAreaAtCursor||t){var n=this.$cursorLayer.$pixelPos;if(n){t&&t.markerRange&&(n=this.$cursorLayer.getPixelPosition(t.markerRange.start,!0));var o=this.layerConfig,r=n.top,s=n.left;r-=o.offset;var a=t&&t.useTextareaForIME||w.isMobile?this.lineHeight:1;if(r<0||r>o.height-a)i.translate(this.textarea,0,0);else{var l=1,c=this.$size.height-a;if(t)if(t.useTextareaForIME){var u=this.textarea.value;l=this.characterWidth*this.session.$getStringScreenWidth(u)[0]}else r+=this.lineHeight+2;else r+=this.lineHeight;(s-=this.scrollLeft)>this.$size.scrollerWidth-l&&(s=this.$size.scrollerWidth-l),s+=this.gutterWidth+this.margin.left,i.setStyle(e,"height",a+"px"),i.setStyle(e,"width",l+"px"),i.translate(this.textarea,Math.min(s,this.$size.scrollerWidth-l),Math.min(r,c))}}}else i.translate(this.textarea,-100,0)}},e.prototype.getFirstVisibleRow=function(){return this.layerConfig.firstRow},e.prototype.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(0===this.layerConfig.offset?0:1)},e.prototype.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow;return this.session.documentToScreenRow(t,0)*e.lineHeight-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},e.prototype.getLastVisibleRow=function(){return this.layerConfig.lastRow},e.prototype.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},e.prototype.setScrollMargin=function(e,t,n,o){var i=this.scrollMargin;i.top=0|e,i.bottom=0|t,i.right=0|o,i.left=0|n,i.v=i.top+i.bottom,i.h=i.left+i.right,i.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-i.top),this.updateFull()},e.prototype.setMargin=function(e,t,n,o){var i=this.margin;i.top=0|e,i.bottom=0|t,i.right=0|o,i.left=0|n,i.v=i.top+i.bottom,i.h=i.left+i.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},e.prototype.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},e.prototype.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},e.prototype.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},e.prototype.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},e.prototype.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},e.prototype.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},e.prototype.freeze=function(){this.$frozen=!0},e.prototype.unfreeze=function(){this.$frozen=!1},e.prototype.$renderChanges=function(e,t){if(this.$changes&&(e|=this.$changes,this.$changes=0),this.session&&this.container.offsetWidth&&!this.$frozen&&(e||t)){if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender",e),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var n=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){if(e|=this.$computeLayerConfig()|this.$loop.clear(),n.firstRow!=this.layerConfig.firstRow&&n.firstRowScreen==this.layerConfig.firstRowScreen){var o=this.scrollTop+(n.firstRow-Math.max(this.layerConfig.firstRow,0))*this.lineHeight;o>0&&(this.scrollTop=o,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig()|this.$loop.clear())}n=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),i.translate(this.content,-this.scrollLeft,-n.offset);var r=n.width+2*this.$padding+"px",s=n.minHeight+"px";i.setStyle(this.content.style,"width",r),i.setStyle(this.content.style,"height",s)}if(e&this.CHANGE_H_SCROLL&&(i.translate(this.content,-this.scrollLeft,-n.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller ":"ace_scroller ace_scroll-left ",this.enableKeyboardAccessibility&&(this.scroller.className+=this.keyboardFocusClassName)),e&this.CHANGE_FULL)return this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),void this._signal("afterRender",e);if(e&this.CHANGE_SCROLL)return this.$changedLines=null,e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(n):this.$textLayer.scrollLines(n),this.$showGutter&&(e&this.CHANGE_GUTTER||e&this.CHANGE_LINES?this.$gutterLayer.update(n):this.$gutterLayer.scrollLines(n)),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),void this._signal("afterRender",e);e&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_LINES?((this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER?(this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_CURSOR&&(this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(n),this.$moveTextAreaToCursor()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(n),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(n),this._signal("afterRender",e)}else this.$changes|=e},e.prototype.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,n=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(n+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&n>this.$maxPixelHeight&&(n=this.$maxPixelHeight);var o=!(n<=2*this.lineHeight)&&e>t;if(n!=this.desiredHeight||this.$size.height!=this.desiredHeight||o!=this.$vScroll){o!=this.$vScroll&&(this.$vScroll=o,this.scrollBarV.setVisible(o));var i=this.container.clientWidth;this.container.style.height=n+"px",this.$updateCachedSize(!0,this.$gutterWidth,i,n),this.desiredHeight=n,this._signal("autosize")}},e.prototype.$computeLayerConfig=function(){var e=this.session,t=this.$size,n=t.height<=2*this.lineHeight,o=this.session.getScreenLength()*this.lineHeight,i=this.$getLongestLine(),r=!n&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-i-2*this.$padding<0),s=this.$horizScroll!==r;s&&(this.$horizScroll=r,this.scrollBarH.setVisible(r));var a=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var l=t.scrollerHeight+this.lineHeight,c=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;o+=c;var u=this.scrollMargin;this.session.setScrollTop(Math.max(-u.top,Math.min(this.scrollTop,o-t.scrollerHeight+u.bottom))),this.session.setScrollLeft(Math.max(-u.left,Math.min(this.scrollLeft,i+2*this.$padding-t.scrollerWidth+u.right)));var h=!n&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-o+c<0||this.scrollTop>u.top),d=a!==h;d&&(this.$vScroll=h,this.scrollBarV.setVisible(h));var p,g,m=this.scrollTop%this.lineHeight,f=Math.ceil(l/this.lineHeight)-1,y=Math.max(0,Math.round((this.scrollTop-m)/this.lineHeight)),v=y+f,b=this.lineHeight;y=e.screenToDocumentRow(y,0);var w=e.getFoldLine(y);w&&(y=w.start.row),p=e.documentToScreenRow(y,0),g=e.getRowLength(y)*b,v=Math.min(e.screenToDocumentRow(v,0),e.getLength()-1),l=t.scrollerHeight+e.getRowLength(v)*b+g,m=this.scrollTop-p*b;var x=0;return(this.layerConfig.width!=i||s)&&(x=this.CHANGE_H_SCROLL),(s||d)&&(x|=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),d&&(i=this.$getLongestLine())),this.layerConfig={width:i,padding:this.$padding,firstRow:y,firstRowScreen:p,lastRow:v,lineHeight:b,characterWidth:this.characterWidth,minHeight:l,maxHeight:o,offset:m,gutterOffset:b?Math.max(0,Math.ceil((m+t.height-t.scrollerHeight)/b)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(i-this.$padding),x},e.prototype.$updateLines=function(){if(this.$changedLines){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var n=this.layerConfig;if(!(e>n.lastRow+1||tthis.$textLayer.MAX_LINE_LENGTH&&(e=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(e*this.characterWidth))},e.prototype.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},e.prototype.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},e.prototype.addGutterDecoration=function(e,t){this.$gutterLayer.addGutterDecoration(e,t)},e.prototype.removeGutterDecoration=function(e,t){this.$gutterLayer.removeGutterDecoration(e,t)},e.prototype.updateBreakpoints=function(e){this.$loop.schedule(this.CHANGE_GUTTER)},e.prototype.setAnnotations=function(e){this.$gutterLayer.setAnnotations(e),this.$loop.schedule(this.CHANGE_GUTTER)},e.prototype.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},e.prototype.hideCursor=function(){this.$cursorLayer.hideCursor()},e.prototype.showCursor=function(){this.$cursorLayer.showCursor()},e.prototype.scrollSelectionIntoView=function(e,t,n){this.scrollCursorIntoView(e,n),this.scrollCursorIntoView(t,n)},e.prototype.scrollCursorIntoView=function(e,t,n){if(0!==this.$size.scrollerHeight){var o=this.$cursorLayer.getPixelPosition(e),i=o.left,r=o.top,s=n&&n.top||0,a=n&&n.bottom||0;this.$scrollAnimation&&(this.$stopAnimation=!0);var l=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;l+s>r?(t&&l+s>r+this.lineHeight&&(r-=t*this.$size.scrollerHeight),0===r&&(r=-this.scrollMargin.top),this.session.setScrollTop(r)):l+this.$size.scrollerHeight-a=1-this.scrollMargin.top||t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right||void 0},e.prototype.pixelToScreenCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var o=this.$fontMetrics.transformCoordinates([e,t]);e=o[1]-this.gutterWidth-this.margin.left,t=o[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,r=i/this.characterWidth,s=Math.floor((t+this.scrollTop-n.top)/this.lineHeight),a=this.$blockCursor?Math.floor(r):Math.round(r);return{row:s,column:a,side:r-a>0?1:-1,offsetX:i}},e.prototype.screenToTextCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var o=this.$fontMetrics.transformCoordinates([e,t]);e=o[1]-this.gutterWidth-this.margin.left,t=o[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,r=i/this.characterWidth,s=this.$blockCursor?Math.floor(r):Math.round(r),a=Math.floor((t+this.scrollTop-n.top)/this.lineHeight);return this.session.screenToDocumentPosition(a,Math.max(s,0),i)},e.prototype.textToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),o=this.session.documentToScreenPosition(e,t),i=this.$padding+(this.session.$bidiHandler.isBidiRow(o.row,e)?this.session.$bidiHandler.getPosLeft(o.column):Math.round(o.column*this.characterWidth)),r=o.row*this.lineHeight;return{pageX:n.left+i-this.scrollLeft,pageY:n.top+r-this.scrollTop}},e.prototype.visualizeFocus=function(){i.addCssClass(this.container,"ace_focus")},e.prototype.visualizeBlur=function(){i.removeCssClass(this.container,"ace_focus")},e.prototype.showComposition=function(e){this.$composition=e,e.cssText||(e.cssText=this.textarea.style.cssText),null==e.useTextareaForIME&&(e.useTextareaForIME=this.$useTextareaForIME),this.$useTextareaForIME?(i.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display="none"):e.markerId=this.session.addMarker(e.markerRange,"ace_composition_marker","text")},e.prototype.setCompositionText=function(e){var t=this.session.selection.cursor;this.addToken(e,"composition_placeholder",t.row,t.column),this.$moveTextAreaToCursor()},e.prototype.hideComposition=function(){if(this.$composition){this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),i.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText;var e=this.session.selection.cursor;this.removeExtraToken(e.row,e.column),this.$composition=null,this.$cursorLayer.element.style.display=""}},e.prototype.setGhostText=function(e,t){var n=this.session.selection.cursor,o=t||{row:n.row,column:n.column};this.removeGhostText();var i=e.split("\n");if(this.addToken(i[0],"ghost_text",o.row,o.column),this.$ghostText={text:e,position:{row:o.row,column:o.column}},i.length>1){this.$ghostTextWidget={text:i.slice(1).join("\n"),row:o.row,column:o.column,className:"ace_ghost_text"},this.session.widgetManager.addLineWidget(this.$ghostTextWidget);var r=this.$cursorLayer.getPixelPosition(o,!0),s=this.container.getBoundingClientRect().height,a=i.length*this.lineHeight;if(a1||Math.abs(e.$size.height-o)>1?e.$resizeTimer.delay():e.$resizeTimer.cancel()})),this.$resizeObserver.observe(this.container)}},e}();x.prototype.CHANGE_CURSOR=1,x.prototype.CHANGE_MARKER=2,x.prototype.CHANGE_GUTTER=4,x.prototype.CHANGE_SCROLL=8,x.prototype.CHANGE_LINES=16,x.prototype.CHANGE_TEXT=32,x.prototype.CHANGE_SIZE=64,x.prototype.CHANGE_MARKER_BACK=128,x.prototype.CHANGE_MARKER_FRONT=256,x.prototype.CHANGE_FULL=512,x.prototype.CHANGE_H_SCROLL=1024,x.prototype.$changes=0,x.prototype.$padding=null,x.prototype.$frozen=!1,x.prototype.STEPS=8,o.implement(x.prototype,y),s.defineOptions(x.prototype,"renderer",{useResizeObserver:{set:function(e){!e&&this.$resizeObserver?(this.$resizeObserver.disconnect(),this.$resizeTimer.cancel(),this.$resizeTimer=this.$resizeObserver=null):e&&!this.$resizeObserver&&this.$addResizeObserver()}},animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){"number"==typeof e&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},useSvgGutterIcons:{set:function(e){this.$gutterLayer.$useSvgGutterIcons=e},initialValue:!1},showFoldedAnnotations:{set:function(e){this.$gutterLayer.$showFoldedAnnotations=e},initialValue:!1},fadeFoldWidgets:{set:function(e){i.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightIndentGuides:{set:function(e){1==this.$textLayer.setHighlightIndentGuides(e)?this.$textLayer.$highlightIndentGuide():this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells)},initialValue:!0},highlightGutterLine:{set:function(e){this.$gutterLayer.setHighlightGutterLine(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},hScrollBarAlwaysVisible:{set:function(e){this.$hScrollBarAlwaysVisible&&this.$horizScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){this.$vScrollBarAlwaysVisible&&this.$vScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){"number"==typeof e&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.$minLines<562949953421311||(this.$minLines=0),this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0,this.$scrollPastEnd!=e&&(this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},customScrollbar:{set:function(e){this.$updateCustomScrollbar(e)},initialValue:!1},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0},hasCssTransforms:{},useTextareaForIME:{initialValue:!w.isMobile&&!w.isIE}}),t.VirtualRenderer=x})),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("../lib/net"),r=e("../lib/event_emitter").EventEmitter,s=e("../config");function a(e){if("undefined"==typeof Worker)return{postMessage:function(){},terminate:function(){}};if(s.get("loadWorkerFromBlob")){var t=function(e){var t="importScripts('"+i.qualifyURL(e)+"');";try{return new Blob([t],{type:"application/javascript"})}catch(e){var n=new(window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder);return n.append(t),n.getBlob("application/javascript")}}(e),n=(window.URL||window.webkitURL).createObjectURL(t);return new Worker(n)}return new Worker(e)}var l=function(e){e.postMessage||(e=this.$createWorkerFromOldConfig.apply(this,arguments)),this.$worker=e,this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){o.implement(this,r),this.$createWorkerFromOldConfig=function(t,n,o,i,r){if(e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl),s.get("packaged")||!e.toUrl)i=i||s.moduleUrl(n,"worker");else{var l=this.$normalizePath;i=i||l(e.toUrl("ace/worker/worker.js",null,"_"));var c={};t.forEach((function(t){c[t]=l(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))}))}return this.$worker=a(i),r&&this.send("importScripts",r),this.$worker.postMessage({init:!0,tlns:c,module:n,classname:o}),this.$worker},this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var n=this.callbacks[t.id];n&&(n(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return i.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker.onerror=function(e){e.preventDefault()},this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,n){if(n){var o=this.callbackId++;this.callbacks[o]=n,t.push(o)}this.send(e,t)},this.emit=function(e,t){try{t.data&&t.data.err&&(t.data.err={message:t.data.err.message,stack:t.data.err.stack,code:t.data.err.code}),this.$worker&&this.$worker.postMessage({event:e,data:{data:t.data}})}catch(e){console.error(e.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener,!0)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),"insert"==e.action?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;e&&(this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e}))}}).call(l.prototype),t.UIWorkerClient=function(e,t,n){var o=null,i=!1,a=Object.create(r),c=[],u=new l({messageBuffer:c,terminate:function(){},postMessage:function(e){c.push(e),o&&(i?setTimeout(h):h())}});u.setEmitSync=function(e){i=e};var h=function(){var e=c.shift();e.command?o[e.command].apply(o,e.args):e.event&&a._signal(e.event,e.data)};return a.postMessage=function(e){u.onMessage({data:e})},a.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},a.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},s.loadModule(["worker",t],(function(e){for(o=new e[n](a);c.length;)h()})),u},t.WorkerClient=l,t.createWorker=a})),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],(function(e,t,n){"use strict";var o=e("./range").Range,i=e("./lib/event_emitter").EventEmitter,r=e("./lib/oop"),s=function(){function e(e,t,n,o,i,r){var s=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=i,this.othersClass=r,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate,!0),this.$others=o,this.$onCursorChange=function(){setTimeout((function(){s.onCursorChange()}))},this.$pos=n;var a=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=a.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)}return e.prototype.setup=function(){var e=this,t=this.doc,n=this.session;this.selectionBefore=n.selection.toJSON(),n.selection.inMultiSelectMode&&n.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var i=this.pos;i.$insertRight=!0,i.detach(),i.markerId=n.addMarker(new o(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach((function(n){var o=t.createAnchor(n.row,n.column);o.$insertRight=!0,o.detach(),e.others.push(o)})),n.setUndoSelect(!1)},e.prototype.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach((function(n){n.markerId=e.addMarker(new o(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1)}))}},e.prototype.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,r=t.start.column-this.pos.column;if(this.updateAnchors(e),i&&(this.length+=n),i&&!this.session.$fromUndo)if("insert"===e.action)for(var s=this.others.length-1;s>=0;s--){var a={row:(l=this.others[s]).row,column:l.column+r};this.doc.insertMergedLines(a,e.lines)}else if("remove"===e.action)for(s=this.others.length-1;s>=0;s--){var l;a={row:(l=this.others[s]).row,column:l.column+r},this.doc.remove(new o(a.row,a.column,a.row,a.column-n))}this.$updating=!1,this.updateMarkers()}},e.prototype.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},e.prototype.updateMarkers=function(){if(!this.$updating){var e=this,t=this.session,n=function(n,i){t.removeMarker(n.markerId),n.markerId=t.addMarker(new o(n.row,n.column,n.row,n.column+e.length),i,null,!1)};n(this.pos,this.mainClass);for(var i=this.others.length;i--;)n(this.others[i],this.othersClass)}},e.prototype.onCursorChange=function(e){if(!this.$updating&&this.session){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))}},e.prototype.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.off("change",this.$onUpdate),this.session.selection.off("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},e.prototype.cancel=function(){if(-1!==this.$undoStackDepth){for(var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth,n=0;n1?e.multiSelect.joinSelections():e.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"splitSelectionIntoLines",description:"Split into lines",exec:function(e){e.multiSelect.splitIntoLines()},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(e){e.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(e){e.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],t.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(e){e.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(e){return e&&e.inMultiSelectMode}}];var o=e("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new o(t.multiSelectCommands)})),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],(function(e,t,n){var o=e("./range_list").RangeList,i=e("./range").Range,r=e("./selection").Selection,s=e("./mouse/multi_select_handler").onMouseDown,a=e("./lib/event"),l=e("./lib/lang"),c=e("./commands/multi_select_commands");t.commands=c.defaultCommands.concat(c.multiSelectCommands);var u=new(0,e("./search").Search),h=e("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(h.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(e){if(!this.inMultiSelectMode&&0===this.rangeCount){var n=this.toOrientedRange();if(this.rangeList.add(n),this.rangeList.add(e),2!=this.rangeList.ranges.length)return this.rangeList.removeAll(),t||this.fromOrientedRange(e);this.rangeList.removeAll(),this.rangeList.add(n),this.$onAddRange(n)}e.cursor||(e.cursor=e.end);var o=this.rangeList.add(e);return this.$onAddRange(e),o.length&&this.$onRemoveRange(o),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)}},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length&&this.$onRemoveRange(e)},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){if(this.rangeCount=this.rangeList.ranges.length,1==this.rangeCount&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var o=this.ranges.indexOf(e[n]);this.ranges.splice(o,1)}this._signal("removeRange",{ranges:e}),0===this.rangeCount&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),(t=t||this.ranges[0])&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new o,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){for(var e=this.ranges.length?this.ranges:[this.getRange()],t=[],n=0;n1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var o=this.session.documentToScreenPosition(this.cursor),r=this.session.documentToScreenPosition(this.anchor);this.rectangularRangeBlock(o,r).forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var o=[],r=e.column0;)v--;if(v>0)for(var b=0;o[b].isEmpty();)b++;for(var w=v;w>=b;w--)o[w].isEmpty()&&o.splice(w,1)}return o}}.call(r.prototype);var d=e("./editor").Editor;function p(e){e.$multiselectOnSessionChange||(e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on("changeSession",e.$multiselectOnSessionChange),e.on("mousedown",s),e.commands.addCommands(c.defaultCommands),function(e){if(e.textInput){var t=e.textInput.getElement(),n=!1;a.addListener(t,"keydown",(function(t){var i=18==t.keyCode&&!(t.ctrlKey||t.shiftKey||t.metaKey);e.$blockSelectEnabled&&i?n||(e.renderer.setMouseCursor("crosshair"),n=!0):n&&o()}),e),a.addListener(t,"keyup",o,e),a.addListener(t,"blur",o,e)}function o(t){n&&(e.renderer.setMouseCursor(""),n=!1)}}(e))}(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(e.marker){this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);-1!=t&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(e){for(var t=this.session.$selectionMarkers,n=e.length;n--;){var o=e[n];if(o.marker){this.session.removeMarker(o.marker);var i=t.indexOf(o);-1!=i&&t.splice(i,1)}}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(c.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(e){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(c.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(n.multiSelect){if(t.multiSelectAction)"forEach"==t.multiSelectAction?o=n.forEachSelection(t,e.args):"forEachLine"==t.multiSelectAction?o=n.forEachSelection(t,e.args,!0):"single"==t.multiSelectAction?(n.exitMultiSelectMode(),o=t.exec(n,e.args||{})):o=t.multiSelectAction(n,e.args||{});else{var o=t.exec(n,e.args||{});n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()}return o}},this.forEachSelection=function(e,t,n){if(!this.inVirtualSelectionMode){var o,i=n&&n.keepOrder,s=1==n||n&&n.$byLines,a=this.session,l=this.selection,c=l.rangeList,u=(i?l:c).ranges;if(!u.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var h=l._eventRegistry;l._eventRegistry={};var d=new r(a);this.inVirtualSelectionMode=!0;for(var p=u.length;p--;){if(s)for(;p>0&&u[p].start.row==u[p-1].end.row;)p--;d.fromOrientedRange(u[p]),d.index=p,this.selection=a.selection=d;var g=e.exec?e.exec(this,t||{}):e(this,t||{});o||void 0===g||(o=g),d.toOrientedRange(u[p])}d.detach(),this.selection=a.selection=l,this.inVirtualSelectionMode=!1,l._eventRegistry=h,l.mergeOverlappingRanges(),l.ranges[0]&&l.fromOrientedRange(l.ranges[0]);var m=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),m&&m.from==m.to&&this.renderer.animateScrolling(m.from),o}},this.exitMultiSelectMode=function(){this.inMultiSelectMode&&!this.inVirtualSelectionMode&&this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var t=this.multiSelect.rangeList.ranges,n=[],o=0;os&&(s=n.column),ou?e.insert(o,l.stringRepeat(" ",r-u)):e.remove(new i(o.row,o.column,o.row,o.column-r+u)),t.start.column=t.end.column=s,t.start.row=t.end.row=o.row,t.cursor=t.end})),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}else{var u=this.selection.getRange(),h=u.start.row,d=u.end.row,p=h==d;if(p){var g,m=this.session.getLength();do{g=this.session.getLine(d)}while(/[=:]/.test(g)&&++d0);h<0&&(h=0),d>=m&&(d=m-1)}var f=this.session.removeFullLines(h,d);f=this.$reAlignText(f,p),this.session.insert({row:h,column:0},f.join("\n")+"\n"),p||(u.start.column=0,u.end.column=f[f.length-1].length),this.selection.setRange(u)}},this.$reAlignText=function(e,t){var n,o,i,r=!0,s=!0;return e.map((function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?null==n?(n=t[1].length,o=t[2].length,i=t[3].length,t):(n+o+i!=t[1].length+t[2].length+t[3].length&&(s=!1),n!=t[1].length&&(r=!1),n>t[1].length&&(n=t[1].length),ot[3].length&&(i=t[3].length),t):[e]})).map(t?c:r?s?function(e){return e[2]?a(n+o-e[2].length)+e[2]+a(i)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}:c:function(e){return e[2]?a(n)+e[2]+a(i)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]});function a(e){return l.stringRepeat(" ",e)}function c(e){return e[2]?a(n)+e[2]+a(o-e[2].length+i)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}}}).call(d.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var n=e.oldSession;n&&(n.multiSelect.off("addRange",this.$onAddRange),n.multiSelect.off("removeRange",this.$onRemoveRange),n.multiSelect.off("multiSelect",this.$onMultiSelect),n.multiSelect.off("singleSelect",this.$onSingleSelect),n.multiSelect.lead.off("change",this.$checkMultiselectChange),n.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=p,e("./config").defineOptions(d.prototype,"editor",{enableMultiselect:{set:function(e){p(this),e?this.on("mousedown",s):this.off("mousedown",s)},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})})),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../../range").Range,i=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);return this.foldingStartMarker.test(o)?"start":"markbeginend"==t&&this.foldingStopMarker&&this.foldingStopMarker.test(o)?"end":""},this.getFoldWidgetRange=function(e,t,n){return null},this.indentationBlock=function(e,t,n){var i=/\S/,r=e.getLine(t),s=r.search(i);if(-1!=s){for(var a=n||r.length,l=e.getLength(),c=t,u=t;++tc){var p=e.getLine(u).length;return new o(c,a,u,p)}}},this.openingBracketBlock=function(e,t,n,i,r){var s={row:n,column:i+1},a=e.$findClosingBracket(t,s,r);if(a){var l=e.foldWidgets[a.row];return null==l&&(l=e.getFoldWidget(a.row)),"start"==l&&a.row>s.row&&(a.row--,a.column=e.getLine(a.row).length),o.fromPoints(s,a)}},this.closingBracketBlock=function(e,t,n,i,r){var s={row:n,column:i},a=e.$findOpeningBracket(t,s);if(a)return a.column++,s.column--,o.fromPoints(a,s)}}).call(i.prototype)})),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range","ace/config"],(function(e,t,n){"use strict";var o=e("../line_widgets").LineWidgets,i=e("../lib/dom"),r=e("../range").Range,s=e("../config").nls;t.showErrorMarker=function(e,t){var n=e.session;n.widgetManager||(n.widgetManager=new o(n),n.widgetManager.attach(e));var a=e.getCursorPosition(),l=a.row,c=n.widgetManager.getWidgetsAtRow(l).filter((function(e){return"errorMarker"==e.type}))[0];c?c.destroy():l-=t;var u,h=function(e,t,n){var o=e.getAnnotations().sort(r.comparePoints);if(o.length){var i=function(e,t,n){for(var o=0,i=e.length-1;o<=i;){var r=o+i>>1,s=n(t,e[r]);if(s>0)o=r+1;else{if(!(s<0))return r;i=r-1}}return-(o+1)}(o,{row:t,column:-1},r.comparePoints);i<0&&(i=-i-1),i>=o.length?i=n>0?0:o.length-1:0===i&&n<0&&(i=o.length-1);var s=o[i];if(s&&n){if(s.row===t){do{s=o[i+=n]}while(s&&s.row===t);if(!s)return o.slice()}var a=[];t=s.row;do{a[n<0?"unshift":"push"](s),s=o[i+=n]}while(s&&s.row==t);return a.length&&a}}}(n,l,t);if(h){var d=h[0];a.column=(d.pos&&"number"!=typeof d.column?d.pos.sc:d.column)||0,a.row=d.row,u=e.renderer.$gutterLayer.$annotations[a.row]}else{if(c)return;u={text:[s("Looks good!")],className:"ace_ok"}}e.session.unfold(a.row),e.selection.moveToPosition(a);var p={row:a.row,fixedWidth:!0,coverGutter:!0,el:i.createElement("div"),type:"errorMarker"},g=p.el.appendChild(i.createElement("div")),m=p.el.appendChild(i.createElement("div"));m.className="error_widget_arrow "+u.className;var f=e.renderer.$cursorLayer.getPixelPosition(a).left;m.style.left=f+e.renderer.gutterWidth-5+"px",p.el.className="error_widget_wrapper",g.className="error_widget "+u.className,g.innerHTML=u.text.join("
    "),g.appendChild(i.createElement("div"));var y=function(e,t,n){if(0===t&&("esc"===n||"return"===n))return p.destroy(),{command:"null"}};p.destroy=function(){e.$mouseHandler.isMousePressed||(e.keyBinding.removeKeyboardHandler(y),n.widgetManager.removeLineWidget(p),e.off("changeSelection",p.destroy),e.off("changeSession",p.destroy),e.off("mouseup",p.destroy),e.off("change",p.destroy))},e.keyBinding.addKeyboardHandler(y),e.on("changeSelection",p.destroy),e.on("changeSession",p.destroy),e.on("mouseup",p.destroy),e.on("change",p.destroy),e.session.widgetManager.addLineWidget(p),p.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:p.el.offsetHeight})},i.importCssString("\n .error_widget_wrapper {\n background: inherit;\n color: inherit;\n border:none\n }\n .error_widget {\n border-top: solid 2px;\n border-bottom: solid 2px;\n margin: 5px 0;\n padding: 10px 40px;\n white-space: pre-wrap;\n }\n .error_widget.ace_error, .error_widget_arrow.ace_error{\n border-color: #ff5a5a\n }\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\n border-color: #F1D817\n }\n .error_widget.ace_info, .error_widget_arrow.ace_info{\n border-color: #5a5a5a\n }\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\n border-color: #5aaa5a\n }\n .error_widget_arrow {\n position: absolute;\n border: solid 5px;\n border-top-color: transparent!important;\n border-right-color: transparent!important;\n border-left-color: transparent!important;\n top: -5px;\n }\n","error_marker.css",!1)})),ace.define("ace/ace",["require","exports","module","ace/lib/dom","ace/range","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config","ace/loader_build"],(function(e,t,n){"use strict";e("./loader_build")(t);var o=e("./lib/dom"),i=e("./range").Range,r=e("./editor").Editor,s=e("./edit_session").EditSession,a=e("./undomanager").UndoManager,l=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.edit=function(e,n){if("string"==typeof e){var i=e;if(!(e=document.getElementById(i)))throw new Error("ace.edit can't find div #"+i)}if(e&&e.env&&e.env.editor instanceof r)return e.env.editor;var s="";if(e&&/input|textarea/i.test(e.tagName)){var a=e;s=a.value,e=o.createElement("pre"),a.parentNode.replaceChild(e,a)}else e&&(s=e.textContent,e.innerHTML="");var c=t.createEditSession(s),u=new r(new l(e),c,n),h={document:c,editor:u,onResize:u.resize.bind(u,null)};return a&&(h.textarea=a),u.on("destroy",(function(){h.editor.container.env=null})),u.container.env=u.env=h,u},t.createEditSession=function(e,t){var n=new s(e,t);return n.setUndoManager(new a),n},t.Range=i,t.Editor=r,t.EditSession=s,t.UndoManager=a,t.VirtualRenderer=l,t.version=t.config.version})),ace.require(["ace/ace"],(function(t){t&&(t.config.init(!0),t.define=ace.define);var n=function(){return this}();for(var o in n||"undefined"==typeof window||(n=window),n||"undefined"==typeof self||(n=self),n.ace||(n.ace=t),t)t.hasOwnProperty(o)&&(n.ace[o]=t[o]);n.ace.default=n.ace,e&&(e.exports=n.ace)}))},134:(e,t,n)=>{e=n.nmd(e),ace.define("ace/ext/beautify",["require","exports","module","ace/token_iterator"],(function(e,t,n){"use strict";var o=e("../token_iterator").TokenIterator;function i(e,t){return e.type.lastIndexOf(t+".xml")>-1}t.singletonTags=["area","base","br","col","command","embed","hr","html","img","input","keygen","link","meta","param","source","track","wbr"],t.blockTags=["article","aside","blockquote","body","div","dl","fieldset","footer","form","head","header","html","nav","ol","p","script","section","style","table","tbody","tfoot","thead","ul"],t.formatOptions={lineBreaksAfterCommasInCurlyBlock:!0},t.beautify=function(e){for(var n,r,s,a=new o(e,0,0),l=a.getCurrentToken(),c=e.getTabString(),u=t.singletonTags,h=t.blockTags,d=t.formatOptions||{},p=!1,g=!1,m=!1,f="",y="",v="",b=0,w=0,x=0,k=0,C=0,$=0,S=0,E=0,O=0,T=!1,A=!1,_=!1,L=!1,M={0:0},R=[],N=!1,I=function(){n&&n.value&&"string.regexp"!==n.type&&(n.value=n.value.replace(/^\s*/,""))},P=function(){for(var e=f.length-1;0!=e&&" "===f[e];)e-=1;f=f.slice(0,e+1)},D=function(){f=f.trimRight(),p=!1};null!==l;){if(E=a.getCurrentTokenRow(),a.$rowTokens,n=a.stepForward(),void 0!==l){if(y=l.value,C=0,_="style"===v||"ace/mode/css"===e.$modeId,i(l,"tag-open")?(A=!0,n&&(L=-1!==h.indexOf(n.value)),"0;O--)f+="\n";p=!0,i(l,"comment")||l.type.match(/^(comment|string)$/)||(y=y.trimLeft())}if(y){if("keyword"===l.type&&y.match(/^(if|else|elseif|for|foreach|while|switch)$/)?(R[b]=y,I(),m=!0,y.match(/^(else|elseif)$/)&&f.match(/\}[\s]*$/)&&(D(),g=!0)):"paren.lparen"===l.type?(I(),"{"===y.substr(-1)&&(m=!0,T=!1,A||(O=1)),"{"===y.substr(0,1)&&(g=!0,"["!==f.substr(-1)&&"["===f.trimRight().substr(-1)?(D(),g=!1):")"===f.trimRight().substr(-1)?D():P())):"paren.rparen"===l.type?(C=1,"}"===y.substr(0,1)&&("case"===R[b-1]&&C++,"{"===f.trimRight().substr(-1)?D():(g=!0,_&&(O+=2))),"]"===y.substr(0,1)&&"}"!==f.substr(-1)&&"}"===f.trimRight().substr(-1)&&(g=!1,k++,D()),")"===y.substr(0,1)&&"("!==f.substr(-1)&&"("===f.trimRight().substr(-1)&&(g=!1,k++,D()),P()):"keyword.operator"!==l.type&&"keyword"!==l.type||!y.match(/^(=|==|===|!=|!==|&&|\|\||and|or|xor|\+=|.=|>|>=|<|<=|=>)$/)?"punctuation.operator"===l.type&&";"===y?(D(),I(),m=!0,_&&O++):"punctuation.operator"===l.type&&y.match(/^(:|,)$/)?(D(),I(),y.match(/^(,)$/)&&S>0&&0===$&&d.lineBreaksAfterCommasInCurlyBlock?O++:(m=!0,p=!1)):"support.php_tag"!==l.type||"?>"!==y||p?i(l,"attribute-name")&&f.substr(-1).match(/^\s$/)?g=!0:i(l,"attribute-equals")?(P(),I()):i(l,"tag-close")?(P(),"/>"===y&&(g=!0)):"keyword"===l.type&&y.match(/^(case|default)$/)&&N&&(C=1):(D(),g=!0):(D(),I(),g=!0,m=!0),p&&(!l.type.match(/^(comment)$/)||y.substr(0,1).match(/^[/#]$/))&&(!l.type.match(/^(string)$/)||y.substr(0,1).match(/^['"@]$/))){if(k=x,b>w)for(k++,s=b;s>w;s--)M[s]=k;else b"===y)&&(O=L&&n&&""===y&&b--),i(l,"tag-name")&&(v=y),r=E}}l=n}f=f.trim(),e.doc.setValue(f)},t.commands=[{name:"beautify",description:"Format selection (Beautify)",exec:function(e){t.beautify(e.session)},bindKey:"Ctrl-Shift-B"}]})),ace.require(["ace/ext/beautify"],(function(t){e&&(e.exports=t)}))},604:(e,t,n)=>{e=n.nmd(e),ace.define("ace/ext/searchbox-css",["require","exports","module"],(function(e,t,n){n.exports='\n\n/* ------------------------------------------------------------------------------------------\n * Editor Search Form\n * --------------------------------------------------------------------------------------- */\n.ace_search {\n background-color: #ddd;\n color: #666;\n border: 1px solid #cbcbcb;\n border-top: 0 none;\n overflow: hidden;\n margin: 0;\n padding: 4px 6px 0 4px;\n position: absolute;\n top: 0;\n z-index: 99;\n white-space: normal;\n}\n.ace_search.left {\n border-left: 0 none;\n border-radius: 0px 0px 5px 0px;\n left: 0;\n}\n.ace_search.right {\n border-radius: 0px 0px 0px 5px;\n border-right: 0 none;\n right: 0;\n}\n\n.ace_search_form, .ace_replace_form {\n margin: 0 20px 4px 0;\n overflow: hidden;\n line-height: 1.9;\n}\n.ace_replace_form {\n margin-right: 0;\n}\n.ace_search_form.ace_nomatch {\n outline: 1px solid red;\n}\n\n.ace_search_field {\n border-radius: 3px 0 0 3px;\n background-color: white;\n color: black;\n border: 1px solid #cbcbcb;\n border-right: 0 none;\n outline: 0;\n padding: 0;\n font-size: inherit;\n margin: 0;\n line-height: inherit;\n padding: 0 6px;\n min-width: 17em;\n vertical-align: top;\n min-height: 1.8em;\n box-sizing: content-box;\n}\n.ace_searchbtn {\n border: 1px solid #cbcbcb;\n line-height: inherit;\n display: inline-block;\n padding: 0 6px;\n background: #fff;\n border-right: 0 none;\n border-left: 1px solid #dcdcdc;\n cursor: pointer;\n margin: 0;\n position: relative;\n color: #666;\n}\n.ace_searchbtn:last-child {\n border-radius: 0 3px 3px 0;\n border-right: 1px solid #cbcbcb;\n}\n.ace_searchbtn:disabled {\n background: none;\n cursor: default;\n}\n.ace_searchbtn:hover {\n background-color: #eef1f6;\n}\n.ace_searchbtn.prev, .ace_searchbtn.next {\n padding: 0px 0.7em\n}\n.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\n content: "";\n border: solid 2px #888;\n width: 0.5em;\n height: 0.5em;\n border-width: 2px 0 0 2px;\n display:inline-block;\n transform: rotate(-45deg);\n}\n.ace_searchbtn.next:after {\n border-width: 0 2px 2px 0 ;\n}\n.ace_searchbtn_close {\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\n border-radius: 50%;\n border: 0 none;\n color: #656565;\n cursor: pointer;\n font: 16px/16px Arial;\n padding: 0;\n height: 14px;\n width: 14px;\n top: 9px;\n right: 7px;\n position: absolute;\n}\n.ace_searchbtn_close:hover {\n background-color: #656565;\n background-position: 50% 100%;\n color: white;\n}\n\n.ace_button {\n margin-left: 2px;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -o-user-select: none;\n -ms-user-select: none;\n user-select: none;\n overflow: hidden;\n opacity: 0.7;\n border: 1px solid rgba(100,100,100,0.23);\n padding: 1px;\n box-sizing: border-box!important;\n color: black;\n}\n\n.ace_button:hover {\n background-color: #eee;\n opacity:1;\n}\n.ace_button:active {\n background-color: #ddd;\n}\n\n.ace_button.checked {\n border-color: #3399ff;\n opacity:1;\n}\n\n.ace_search_options{\n margin-bottom: 3px;\n text-align: right;\n -webkit-user-select: none;\n -moz-user-select: none;\n -o-user-select: none;\n -ms-user-select: none;\n user-select: none;\n clear: both;\n}\n\n.ace_search_counter {\n float: left;\n font-family: arial;\n padding: 0 8px;\n}'})),ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/ext/searchbox-css","ace/keyboard/hash_handler","ace/lib/keys","ace/config"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=e("../lib/lang"),r=e("../lib/event"),s=e("./searchbox-css"),a=e("../keyboard/hash_handler").HashHandler,l=e("../lib/keys"),c=e("../config").nls;o.importCssString(s,"ace_searchbox",!1);var u=function(){function e(e,t,n){var i=o.createElement("div");o.buildDom(["div",{class:"ace_search right"},["span",{action:"hide",class:"ace_searchbtn_close"}],["div",{class:"ace_search_form"},["input",{class:"ace_search_field",placeholder:c("Search for"),spellcheck:"false"}],["span",{action:"findPrev",class:"ace_searchbtn prev"},"​"],["span",{action:"findNext",class:"ace_searchbtn next"},"​"],["span",{action:"findAll",class:"ace_searchbtn",title:"Alt-Enter"},c("All")]],["div",{class:"ace_replace_form"},["input",{class:"ace_search_field",placeholder:c("Replace with"),spellcheck:"false"}],["span",{action:"replaceAndFindNext",class:"ace_searchbtn"},c("Replace")],["span",{action:"replaceAll",class:"ace_searchbtn"},c("All")]],["div",{class:"ace_search_options"},["span",{action:"toggleReplace",class:"ace_button",title:c("Toggle Replace mode"),style:"float:left;margin-top:-2px;padding:0 5px;"},"+"],["span",{class:"ace_search_counter"}],["span",{action:"toggleRegexpMode",class:"ace_button",title:c("RegExp Search")},".*"],["span",{action:"toggleCaseSensitive",class:"ace_button",title:c("CaseSensitive Search")},"Aa"],["span",{action:"toggleWholeWords",class:"ace_button",title:c("Whole Word Search")},"\\b"],["span",{action:"searchInSelection",class:"ace_button",title:c("Search In Selection")},"S"]]],i),this.element=i.firstChild,this.setSession=this.setSession.bind(this),this.$init(),this.setEditor(e),o.importCssString(s,"ace_searchbox",e.container)}return e.prototype.setEditor=function(e){e.searchBox=this,e.renderer.scroller.appendChild(this.element),this.editor=e},e.prototype.setSession=function(e){this.searchRange=null,this.$syncOptions(!0)},e.prototype.$initElements=function(e){this.searchBox=e.querySelector(".ace_search_form"),this.replaceBox=e.querySelector(".ace_replace_form"),this.searchOption=e.querySelector("[action=searchInSelection]"),this.replaceOption=e.querySelector("[action=toggleReplace]"),this.regExpOption=e.querySelector("[action=toggleRegexpMode]"),this.caseSensitiveOption=e.querySelector("[action=toggleCaseSensitive]"),this.wholeWordOption=e.querySelector("[action=toggleWholeWords]"),this.searchInput=this.searchBox.querySelector(".ace_search_field"),this.replaceInput=this.replaceBox.querySelector(".ace_search_field"),this.searchCounter=e.querySelector(".ace_search_counter")},e.prototype.$init=function(){var e=this.element;this.$initElements(e);var t=this;r.addListener(e,"mousedown",(function(e){setTimeout((function(){t.activeInput.focus()}),0),r.stopPropagation(e)})),r.addListener(e,"click",(function(e){var n=(e.target||e.srcElement).getAttribute("action");n&&t[n]?t[n]():t.$searchBarKb.commands[n]&&t.$searchBarKb.commands[n].exec(t),r.stopPropagation(e)})),r.addCommandKeyListener(e,(function(e,n,o){var i=l.keyCodeToString(o),s=t.$searchBarKb.findKeyCommand(n,i);s&&s.exec&&(s.exec(t),r.stopEvent(e))})),this.$onChange=i.delayedCall((function(){t.find(!1,!1)})),r.addListener(this.searchInput,"input",(function(){t.$onChange.schedule(20)})),r.addListener(this.searchInput,"focus",(function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()})),r.addListener(this.replaceInput,"focus",(function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()}))},e.prototype.setSearchRange=function(e){this.searchRange=e,e?this.searchRangeMarker=this.editor.session.addMarker(e,"ace_active-line"):this.searchRangeMarker&&(this.editor.session.removeMarker(this.searchRangeMarker),this.searchRangeMarker=null)},e.prototype.$syncOptions=function(e){o.setCssClass(this.replaceOption,"checked",this.searchRange),o.setCssClass(this.searchOption,"checked",this.searchOption.checked),this.replaceOption.textContent=this.replaceOption.checked?"-":"+",o.setCssClass(this.regExpOption,"checked",this.regExpOption.checked),o.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked),o.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked);var t=this.editor.getReadOnly();this.replaceOption.style.display=t?"none":"",this.replaceBox.style.display=this.replaceOption.checked&&!t?"":"none",this.find(!1,!1,e)},e.prototype.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},e.prototype.find=function(e,t,n){var i=!this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:n,range:this.searchRange})&&this.searchInput.value;o.setCssClass(this.searchBox,"ace_nomatch",i),this.editor._emit("findSearchBox",{match:!i}),this.highlight(),this.updateCounter()},e.prototype.updateCounter=function(){var e=this.editor,t=e.$search.$options.re,n=t.unicode,o=0,r=0;if(t){var s=this.searchRange?e.session.getTextRange(this.searchRange):e.getValue(),a=e.session.doc.positionToIndex(e.selection.anchor);this.searchRange&&(a-=e.session.doc.positionToIndex(this.searchRange.start));for(var l,u=t.lastIndex=0;(l=t.exec(s))&&(o++,(u=l.index)<=a&&r++,!(o>999))&&(l[0]||(t.lastIndex=u+=i.skipEmptyMatch(s,u,n),!(u>=s.length))););}this.searchCounter.textContent=c("$0 of $1",[r,o>999?"999+":o])},e.prototype.findNext=function(){this.find(!0,!1)},e.prototype.findPrev=function(){this.find(!0,!0)},e.prototype.findAll=function(){var e=!this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked})&&this.searchInput.value;o.setCssClass(this.searchBox,"ace_nomatch",e),this.editor._emit("findSearchBox",{match:!e}),this.highlight(),this.hide()},e.prototype.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},e.prototype.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},e.prototype.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},e.prototype.hide=function(){this.active=!1,this.setSearchRange(null),this.editor.off("changeSession",this.setSession),this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},e.prototype.show=function(e,t){this.active=!0,this.editor.on("changeSession",this.setSession),this.element.style.display="",this.replaceOption.checked=t,e&&(this.searchInput.value=e),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb),this.$syncOptions(!0)},e.prototype.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput},e}(),h=new a;h.bindKeys({"Ctrl-f|Command-f":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?"":"none",e.replaceOption.checked=!1,e.$syncOptions(),e.searchInput.focus()},"Ctrl-H|Command-Option-F":function(e){e.editor.getReadOnly()||(e.replaceOption.checked=!0,e.$syncOptions(),e.replaceInput.focus())},"Ctrl-G|Command-G":function(e){e.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(e){e.findPrev()},esc:function(e){setTimeout((function(){e.hide()}))},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},"Shift-Return":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},"Alt-Return":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),h.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}},{name:"toggleReplace",exec:function(e){e.replaceOption.checked=!e.replaceOption.checked,e.$syncOptions()}},{name:"searchInSelection",exec:function(e){e.searchOption.checked=!e.searchRange,e.setSearchRange(e.searchOption.checked&&e.editor.getSelectionRange()),e.$syncOptions()}}]);var d=new a([{bindKey:"Esc",name:"closeSearchBar",exec:function(e){e.searchBox.hide()}}]);u.prototype.$searchBarKb=h,u.prototype.$closeSearchBarKb=d,t.SearchBox=u,t.Search=function(e,t){(e.searchBox||new u(e)).show(e.session.getTextRange(),t)}})),ace.require(["ace/ext/searchbox"],(function(t){e&&(e.exports=t)}))},549:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=(e("../lib/lang"),e("./text_highlight_rules").TextHighlightRules),r=t.supportType="align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index",s=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|flex-end|flex-start|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom",l=t.supportConstantColor="aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen",c=t.supportConstantFonts="arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",u=t.numRe="\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",d=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",p=function(){var e=this.createKeywordMapper({"support.function":s,"support.constant":a,"support.type":r,"support.constant.color":l,"support.constant.fonts":c},"text",!0);this.$rules={start:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"paren.rparen",regex:"\\}"},{token:"string",regex:"@(?!viewport)",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"keyword",regex:"%"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant.numeric",regex:u},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"start"},{token:"paren.rparen",regex:"\\}",next:"start"},{token:"string",regex:";",next:"start"},{token:"keyword",regex:"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)"}],comments:[{token:"comment",regex:"\\/\\*",push:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}]}],ruleset:[{regex:"-(webkit|ms|moz|o)-",token:"text"},{token:"punctuation.operator",regex:"[:;]"},{token:"paren.rparen",regex:"\\}",next:"start"},{include:["strings","url","comments"]},{token:["constant.numeric","keyword"],regex:"("+u+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"},{token:"constant.numeric",regex:u},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:d},{include:"url"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}],url:[{token:"support.function",regex:"(?:url(:?-prefix)?|domain|regexp)\\(",push:[{token:"support.function",regex:"\\)",next:"pop"},{defaultToken:"string"}]}],strings:[{token:"string.start",regex:"'",push:[{token:"string.end",regex:"'|$",next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]},{token:"string.start",regex:'"',push:[{token:"string.end",regex:'"|$',next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]}],escapes:[{token:"constant.language.escape",regex:/\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/}]},this.normalizeRules()};o.inherits(p,i),t.CssHighlightRules=p})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/css_completions",["require","exports","module"],(function(e,t,n){"use strict";var o={background:{"#$0":1},"background-color":{"#$0":1,transparent:1,fixed:1},"background-image":{"url('/$0')":1},"background-repeat":{repeat:1,"repeat-x":1,"repeat-y":1,"no-repeat":1,inherit:1},"background-position":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},"background-attachment":{scroll:1,fixed:1},"background-size":{cover:1,contain:1},"background-clip":{"border-box":1,"padding-box":1,"content-box":1},"background-origin":{"border-box":1,"padding-box":1,"content-box":1},border:{"solid $0":1,"dashed $0":1,"dotted $0":1,"#$0":1},"border-color":{"#$0":1},"border-style":{solid:2,dashed:2,dotted:2,double:2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},"border-collapse":{collapse:1,separate:1},bottom:{px:1,em:1,"%":1},clear:{left:1,right:1,both:1,none:1},color:{"#$0":1,"rgb(#$00,0,0)":1},cursor:{default:1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,"n-resize":1,"ne-resize":1,"e-resize":1,"se-resize":1,"s-resize":1,"sw-resize":1,"w-resize":1,"nw-resize":1},display:{none:1,block:1,inline:1,"inline-block":1,"table-cell":1},"empty-cells":{show:1,hide:1},float:{left:1,right:1,none:1},"font-family":{Arial:2,"Comic Sans MS":2,Consolas:2,"Courier New":2,Courier:2,Georgia:2,Monospace:2,"Sans-Serif":2,"Segoe UI":2,Tahoma:2,"Times New Roman":2,"Trebuchet MS":2,Verdana:1},"font-size":{px:1,em:1,"%":1},"font-weight":{bold:1,normal:1},"font-style":{italic:1,normal:1},"font-variant":{normal:1,"small-caps":1},height:{px:1,em:1,"%":1},left:{px:1,em:1,"%":1},"letter-spacing":{normal:1},"line-height":{normal:1},"list-style-type":{none:1,disc:1,circle:1,square:1,decimal:1,"decimal-leading-zero":1,"lower-roman":1,"upper-roman":1,"lower-greek":1,"lower-latin":1,"upper-latin":1,georgian:1,"lower-alpha":1,"upper-alpha":1},margin:{px:1,em:1,"%":1},"margin-right":{px:1,em:1,"%":1},"margin-left":{px:1,em:1,"%":1},"margin-top":{px:1,em:1,"%":1},"margin-bottom":{px:1,em:1,"%":1},"max-height":{px:1,em:1,"%":1},"max-width":{px:1,em:1,"%":1},"min-height":{px:1,em:1,"%":1},"min-width":{px:1,em:1,"%":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},"overflow-x":{hidden:1,visible:1,auto:1,scroll:1},"overflow-y":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,"%":1},"padding-top":{px:1,em:1,"%":1},"padding-right":{px:1,em:1,"%":1},"padding-bottom":{px:1,em:1,"%":1},"padding-left":{px:1,em:1,"%":1},"page-break-after":{auto:1,always:1,avoid:1,left:1,right:1},"page-break-before":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,static:1},right:{px:1,em:1,"%":1},"table-layout":{fixed:1,auto:1},"text-decoration":{none:1,underline:1,"line-through":1,blink:1},"text-align":{left:1,right:1,center:1,justify:1},"text-transform":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,"%":1},"vertical-align":{top:1,bottom:1},visibility:{hidden:1,visible:1},"white-space":{nowrap:1,normal:1,pre:1,"pre-line":1,"pre-wrap":1},width:{px:1,em:1,"%":1},"word-spacing":{normal:1},filter:{"alpha(opacity=$0100)":1},"text-shadow":{"$02px 2px 2px #777":1},"text-overflow":{"ellipsis-word":1,clip:1,ellipsis:1},"-moz-border-radius":1,"-moz-border-radius-topright":1,"-moz-border-radius-bottomright":1,"-moz-border-radius-topleft":1,"-moz-border-radius-bottomleft":1,"-webkit-border-radius":1,"-webkit-border-top-right-radius":1,"-webkit-border-top-left-radius":1,"-webkit-border-bottom-right-radius":1,"-webkit-border-bottom-left-radius":1,"-moz-box-shadow":1,"-webkit-box-shadow":1,transform:{"rotate($00deg)":1,"skew($00deg)":1},"-moz-transform":{"rotate($00deg)":1,"skew($00deg)":1},"-webkit-transform":{"rotate($00deg)":1,"skew($00deg)":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement("c").style;for(var t in e)if("string"==typeof e[t]){var n=t.replace(/[A-Z]/g,(function(e){return"-"+e.toLowerCase()}));o.hasOwnProperty(n)||(o[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,o){if(this.completionsDefined||this.defineCompletions(),"ruleset"===e||"ace/mode/scss"==t.$mode.$id){var i=t.getLine(n.row).substr(0,n.column),r=/\([^)]*$/.test(i);return r&&(i=i.substr(i.lastIndexOf("(")+1)),/:[^;]+$/.test(i)?(/([\w\-]+):[^:]*$/.test(i),this.getPropertyValueCompletions(e,t,n,o)):this.getPropertyCompletions(e,t,n,o,r)}return[]},this.getPropertyCompletions=function(e,t,n,i,r){return r=r||!1,Object.keys(o).map((function(e){return{caption:e,snippet:e+": $0"+(r?"":";"),meta:"property",score:1e6}}))},this.getPropertyValueCompletions=function(e,t,n,i){var r=t.getLine(n.row).substr(0,n.column),s=(/([\w\-]+):[^:]*$/.exec(r)||{})[1];if(!s)return[];var a=[];return s in o&&"object"==typeof o[s]&&(a=Object.keys(o[s])),a.map((function(e){return{caption:e,snippet:e,meta:"property value",score:1e6}}))}}).call(i.prototype),t.CssCompletions=i})),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=(e("../behaviour").Behaviour,e("./cstyle").CstyleBehaviour),r=e("../../token_iterator").TokenIterator,s=function(){this.inherit(i),this.add("colon","insertion",(function(e,t,n,o,i){if(":"===i&&n.selection.isEmpty()){var s=n.getCursorPosition(),a=new r(o,s.row,s.column),l=a.getCurrentToken();if(l&&l.value.match(/\s+/)&&(l=a.stepBackward()),l&&"support.type"===l.type){var c=o.doc.getLine(s.row);if(":"===c.substring(s.column,s.column+1))return{text:"",selection:[1,1]};if(/^(\s+[^;]|\s*$)/.test(c.substring(s.column)))return{text:":;",selection:[1,1]}}}})),this.add("colon","deletion",(function(e,t,n,o,i){var s=o.doc.getTextRange(i);if(!i.isMultiLine()&&":"===s){var a=n.getCursorPosition(),l=new r(o,a.row,a.column),c=l.getCurrentToken();if(c&&c.value.match(/\s+/)&&(c=l.stepBackward()),c&&"support.type"===c.type&&";"===o.doc.getLine(i.start.row).substring(i.end.column,i.end.column+1))return i.end.column++,i}})),this.add("semicolon","insertion",(function(e,t,n,o,i){if(";"===i&&n.selection.isEmpty()){var r=n.getCursorPosition();if(";"===o.doc.getLine(r.row).substring(r.column,r.column+1))return{text:"",selection:[1,1]}}})),this.add("!important","insertion",(function(e,t,n,o,i){if("!"===i&&n.selection.isEmpty()){var r=n.getCursorPosition(),s=o.doc.getLine(r.row);if(/^\s*(;|}|$)/.test(s.substring(r.column)))return{text:"!important",selection:[10,10]}}}))};o.inherits(s,i),t.CssBehaviour=s})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./css_highlight_rules").CssHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../worker/worker_client").WorkerClient,l=e("./css_completions").CssCompletions,c=e("./behaviour/css").CssBehaviour,u=e("./folding/cstyle").FoldMode,h=function(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=new c,this.$completer=new l,this.foldingRules=new u};o.inherits(h,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;return i.length&&"comment"==i[i.length-1].type||t.match(/^.*\{\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,o){return this.$completer.getCompletions(e,t,n,o)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/css",this.snippetFileId="ace/snippets/css"}.call(h.prototype),t.Mode=h})),ace.require(["ace/mode/css"],(function(t){e&&(e.exports=t)}))},576:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},r.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};o.inherits(r,i),r.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},r.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},r.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=r})),ace.define("ace/mode/golang_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],(function(e,t,n){var o=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,r=e("./text_highlight_rules").TextHighlightRules,s=function(){var e=this.createKeywordMapper({keyword:"else|break|case|return|goto|if|const|select|continue|struct|default|switch|for|range|func|import|package|chan|defer|fallthrough|go|interface|map|range|select|type|var","constant.language":"nil|true|false|iota","support.function":"new|close|cap|copy|panic|panicln|print|println|len|make|delete|real|recover|imag|append","support.type":"string|uint8|uint16|uint32|uint64|int8|int16|int32|int64|float32|float64|complex64|complex128|byte|rune|uint|int|uintptr|bool|error"},""),t="\\\\(?:[0-7]{3}|x\\h{2}|u{4}|U\\h{6}|[abfnrtv'\"\\\\])".replace(/\\h/g,"[a-fA-F\\d]");this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},i.getStartRule("doc-start"),{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"string",regex:/"(?:[^"\\]|\\.)*?"/},{token:"string",regex:"`",next:"bqstring"},{token:"constant.numeric",regex:"'(?:[^\\'\ud800-\udbff]|[\ud800-\udbff][\udc00-\udfff]|"+t.replace('"',"")+")'"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:["keyword","text","entity.name.function"],regex:"(func)(\\s+)([a-zA-Z_$][a-zA-Z0-9_$]*)\\b"},{token:function(t){return"("==t[t.length-1]?[{type:e(t.slice(0,-1))||"support.function",value:t.slice(0,-1)},{type:"paren.lparen",value:t.slice(-1)}]:e(t)||"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b\\(?"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^="},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}],bqstring:[{token:"string",regex:"`",next:"start"},{defaultToken:"string"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};o.inherits(s,r),t.GolangHighlightRules=s})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/golang",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/golang_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle"],(function(e,t,n){var o=e("../lib/oop"),i=e("./text").Mode,r=e("./golang_highlight_rules").GolangHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=r,this.$outdent=new s,this.foldingRules=new a,this.$behaviour=this.$defaultBehaviour};o.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),r=i.tokens;return i.state,r.length&&"comment"==r[r.length-1].type||"start"==e&&t.match(/^.*[\{\(\[]\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/golang"}.call(l.prototype),t.Mode=l})),ace.require(["ace/mode/golang"],(function(t){e&&(e.exports=t)}))},395:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/jsdoc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:["comment.doc.tag","comment.doc.text","lparen.doc"],regex:"(@(?:param|member|typedef|property|namespace|var|const|callback))(\\s*)({)",push:[{token:"lparen.doc",regex:"{",push:[{include:"doc-syntax"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"}]},{token:["rparen.doc","text.doc","variable.parameter.doc","lparen.doc","variable.parameter.doc","rparen.doc"],regex:/(})(\s*)(?:([\w=:\/\.]+)|(?:(\[)([\w=:\/\.]+)(\])))/,next:"pop"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"},{include:"doc-syntax"},{defaultToken:"text.doc"}]},{token:["comment.doc.tag","text.doc","lparen.doc"],regex:"(@(?:returns?|yields|type|this|suppress|public|protected|private|package|modifies|implements|external|exception|throws|enum|define|extends))(\\s*)({)",push:[{token:"lparen.doc",regex:"{",push:[{include:"doc-syntax"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"}]},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"},{include:"doc-syntax"},{defaultToken:"text.doc"}]},{token:["comment.doc.tag","text.doc","variable.parameter.doc"],regex:'(@(?:alias|memberof|instance|module|name|lends|namespace|external|this|template|requires|param|implements|function|extends|typedef|mixes|constructor|var|memberof\\!|event|listens|exports|class|constructs|interface|emits|fires|throws|const|callback|borrows|augments))(\\s+)(\\w[\\w#.:/~"\\-]*)?'},{token:["comment.doc.tag","text.doc","variable.parameter.doc"],regex:"(@method)(\\s+)(\\w[\\w.\\(\\)]*)"},{token:"comment.doc.tag",regex:"@access\\s+(?:private|public|protected)"},{token:"comment.doc.tag",regex:"@kind\\s+(?:class|constant|event|external|file|function|member|mixin|module|namespace|typedef)"},{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},r.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}],"doc-syntax":[{token:"operator.doc",regex:/[|:]/},{token:"paren.doc",regex:/[\[\]]/}]},this.normalizeRules()};o.inherits(r,i),r.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},r.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},r.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.JsDocCommentHighlightRules=r})),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/jsdoc_comment_highlight_rules","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./jsdoc_comment_highlight_rules").JsDocCommentHighlightRules,r=e("./text_highlight_rules").TextHighlightRules,s="[a-zA-Z\\$_¡-￿][a-zA-Z\\d\\$_¡-￿]*",a=function(e){var t=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static|constructor","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},"identifier"),n="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)";this.$rules={no_regex:[i.getStartRule("doc-start"),c("no_regex"),{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+s+")(\\.)(prototype)(\\.)("+s+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+s+")(\\.)("+s+")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+s+")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+s+")(\\.)("+s+")(\\s*)(=)(\\s*)(function\\*?)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function\\*?)(\\s+)("+s+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+s+")(\\s*)(:)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:"keyword",regex:"from(?=\\s*('|\"))"},{token:"keyword",regex:"(?:case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void)\\b",next:"start"},{token:"support.constant",regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:s},{token:"punctuation.operator",regex:/[.](?![.])/,next:"property"},{token:"storage.type",regex:/=>/,next:"start"},{token:"keyword.operator",regex:/--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],property:[{token:"text",regex:"\\s+"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+s+")(\\.)("+s+")(\\s*)(=)(\\s*)(function\\*?)(?:(\\s+)(\\w+))?(\\s*)(\\()",next:"function_arguments"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"support.function",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|lter|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward|rEach)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:"support.function.dom",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:"support.constant",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:"identifier",regex:s},{regex:"",token:"empty",next:"no_regex"}],start:[i.getStartRule("doc-start"),c("start"),{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+|^$",next:"start"},{token:"empty",regex:"",next:"no_regex"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/[sxngimy]*",next:"no_regex"},{token:"invalid",regex:/\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/},{token:"constant.language.delimiter",regex:/\|/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp"}],regex_character_class:[{token:"regexp.charclass.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp.charachterclass"}],default_parameter:[{token:"string",regex:"'(?=.)",push:[{token:"string",regex:"'|$",next:"pop"},{include:"qstring"}]},{token:"string",regex:'"(?=.)',push:[{token:"string",regex:'"|$',next:"pop"},{include:"qqstring"}]},{token:"constant.language",regex:"null|Infinity|NaN|undefined"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:"punctuation.operator",regex:",",next:"function_arguments"},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],function_arguments:[c("function_arguments"),{token:"variable.parameter",regex:s},{token:"punctuation.operator",regex:","},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],qqstring:[{token:"constant.language.escape",regex:n},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:n},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},e&&e.noES6||(this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){if(this.next="{"==e?this.nextState:"","{"==e&&n.length)n.unshift("start",t);else if("}"==e&&n.length&&(n.shift(),this.next=n.shift(),-1!=this.next.indexOf("string")||-1!=this.next.indexOf("jsx")))return"paren.quasi.end";return"{"==e?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:n},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]},{token:["variable.parameter","text"],regex:"("+s+")(\\s*)(?=\\=>)"},{token:"paren.lparen",regex:"(\\()(?=.+\\s*=>)",next:"function_arguments"},{token:"variable.language",regex:"(?:(?:(?:Weak)?(?:Set|Map))|Promise)\\b"}),this.$rules.function_arguments.unshift({token:"keyword.operator",regex:"=",next:"default_parameter"},{token:"keyword.operator",regex:"\\.{3}"}),this.$rules.property.unshift({token:"support.function",regex:"(findIndex|repeat|startsWith|endsWith|includes|isSafeInteger|trunc|cbrt|log2|log10|sign|then|catch|finally|resolve|reject|race|any|all|allSettled|keys|entries|isInteger)\\b(?=\\()"},{token:"constant.language",regex:"(?:MAX_SAFE_INTEGER|MIN_SAFE_INTEGER|EPSILON)\\b"}),e&&0==e.jsx||l.call(this)),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};function l(){var e=s.replace("\\d","\\d\\-"),t={onMatch:function(e,t,n){var o="/"==e.charAt(1)?2:1;return 1==o?(t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++):2==o&&t==this.nextState&&(n[1]--,(!n[1]||n[1]<0)&&(n.shift(),n.shift())),[{type:"meta.tag.punctuation."+(1==o?"":"end-")+"tag-open.xml",value:e.slice(0,o)},{type:"meta.tag.tag-name.xml",value:e.substr(o)}]},regex:"",onMatch:function(e,t,n){return t==n[0]&&n.shift(),2==e.length&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||"start",[{type:this.token,value:e}]},nextState:"jsx"},n,c("jsxAttributes"),{token:"entity.other.attribute-name.xml",regex:e},{token:"keyword.operator.attribute-equals.xml",regex:"="},{token:"text.tag-whitespace.xml",regex:"\\s+"},{token:"string.attribute-value.xml",regex:"'",stateName:"jsx_attr_q",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',stateName:"jsx_attr_qq",push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},t],this.$rules.reference=[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}]}function c(e){return[{token:"comment",regex:/\/\*/,next:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]},{token:"comment",regex:"\\/\\/",next:[i.getTagRule(),{token:"comment",regex:"$|^",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]}]}o.inherits(a,r),t.JavaScriptHighlightRules=a})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./javascript_highlight_rules").JavaScriptHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../worker/worker_client").WorkerClient,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,u=function(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=new l,this.foldingRules=new c};o.inherits(u,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$quotes={'"':'"',"'":"'","`":"`"},this.$pairQuotesAfter={"`":/\w/},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),r=i.tokens,s=i.state;if(r.length&&"comment"==r[r.length-1].type)return o;if("start"==e||"no_regex"==e)(a=t.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/))&&(o+=n);else if("doc-start"==e){if("start"==s||"no_regex"==s)return"";var a;(a=t.match(/^\s*(\/?)\*/))&&(a[1]&&(o+=" "),o+="* ")}return o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/javascript",this.snippetFileId="ace/snippets/javascript"}.call(u.prototype),t.Mode=u})),ace.require(["ace/mode/javascript"],(function(t){e&&(e.exports=t)}))},252:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"punctuation.operator",regex:/[,]/},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};o.inherits(r,i),t.JsonHighlightRules=r})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle","ace/worker/worker_client"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./json_highlight_rules").JsonHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./folding/cstyle").FoldMode,l=e("../worker/worker_client").WorkerClient,c=function(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new a};o.inherits(c,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t);return"start"==e&&t.match(/^.*[\{\(\[]\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new l(["ace"],"ace/mode/json_worker","JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/json"}.call(c.prototype),t.Mode=c})),ace.require(["ace/mode/json"],(function(t){e&&(e.exports=t)}))},711:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},r.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};o.inherits(r,i),r.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},r.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},r.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=r})),ace.define("ace/mode/jsx_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],(function(e,t,n){var o=e("../lib/oop"),i=e("../lib/lang"),r=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,a=function(){var e=i.arrayToMap("break|do|instanceof|typeof|case|else|new|var|catch|finally|return|void|continue|for|switch|default|while|function|this|if|throw|delete|in|try|class|extends|super|import|from|into|implements|interface|static|mixin|override|abstract|final|number|int|string|boolean|variant|log|assert".split("|")),t=i.arrayToMap("null|true|false|NaN|Infinity|__FILE__|__LINE__|undefined".split("|")),n=i.arrayToMap("debugger|with|const|export|let|private|public|yield|protected|extern|native|as|operator|__fake__|__readonly__".split("|")),o="[a-zA-Z_][a-zA-Z0-9_]*\\b";this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},r.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:["storage.type","text","entity.name.function"],regex:"(function)(\\s+)("+o+")"},{token:function(o){return"this"==o?"variable.language":"function"==o?"storage.type":e.hasOwnProperty(o)||n.hasOwnProperty(o)?"keyword":t.hasOwnProperty(o)?"constant.language":/^_?[A-Z][a-zA-Z0-9_]*$/.test(o)?"language.support.class":"identifier"},regex:o},{token:"keyword.operator",regex:"!|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({<]"},{token:"paren.rparen",regex:"[\\])}>]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]},this.embedRules(r,"doc-",[r.getEndRule("start")])};o.inherits(a,s),t.JsxHighlightRules=a})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/jsx",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/jsx_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./jsx_highlight_rules").JsxHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./folding/cstyle").FoldMode;function l(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new a}o.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;return i.length&&"comment"==i[i.length-1].type||"start"==e&&t.match(/^.*[\{\(\[]\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/jsx"}.call(l.prototype),t.Mode=l})),ace.require(["ace/mode/jsx"],(function(t){e&&(e.exports=t)}))},7:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/python_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){var e=this.createKeywordMapper({"invalid.deprecated":"debugger","support.function":"abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|binfile|bin|iter|property|tuple|bool|filter|len|range|type|bytearray|float|list|raw_input|unichr|callable|format|locals|reduce|unicode|chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|__import__|complex|hash|min|apply|delattr|help|next|setattr|set|buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern|ascii|breakpoint|bytes","variable.language":"self|cls","constant.language":"True|False|None|NotImplemented|Ellipsis|__debug__",keyword:"and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield|async|await|nonlocal"},"identifier"),t="[uU]?",n="[rR]",o="[fF]",i="(?:[rR][fF]|[fF][rR])",r="(?:(?:(?:[1-9]\\d*)|(?:0))|(?:0[oO]?[0-7]+)|(?:0[xX][\\dA-Fa-f]+)|(?:0[bB][01]+))",s="(?:\\d+)",a="(?:(?:"+s+"?(?:\\.\\d+))|(?:"+s+"\\.))",l="(?:(?:(?:"+a+"|"+s+")(?:[eE][+-]?\\d+))|"+a+")",c="\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\abfnrtv'\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})";this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string",regex:t+'"{3}',next:"qqstring3"},{token:"string",regex:t+'"(?=.)',next:"qqstring"},{token:"string",regex:t+"'{3}",next:"qstring3"},{token:"string",regex:t+"'(?=.)",next:"qstring"},{token:"string",regex:n+'"{3}',next:"rawqqstring3"},{token:"string",regex:n+'"(?=.)',next:"rawqqstring"},{token:"string",regex:n+"'{3}",next:"rawqstring3"},{token:"string",regex:n+"'(?=.)",next:"rawqstring"},{token:"string",regex:o+'"{3}',next:"fqqstring3"},{token:"string",regex:o+'"(?=.)',next:"fqqstring"},{token:"string",regex:o+"'{3}",next:"fqstring3"},{token:"string",regex:o+"'(?=.)",next:"fqstring"},{token:"string",regex:i+'"{3}',next:"rfqqstring3"},{token:"string",regex:i+'"(?=.)',next:"rfqqstring"},{token:"string",regex:i+"'{3}",next:"rfqstring3"},{token:"string",regex:i+"'(?=.)",next:"rfqstring"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|%|@|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"punctuation",regex:",|:|;|\\->|\\+=|\\-=|\\*=|\\/=|\\/\\/=|%=|@=|&=|\\|=|^=|>>=|<<=|\\*\\*="},{token:"paren.lparen",regex:"[\\[\\(\\{]"},{token:"paren.rparen",regex:"[\\]\\)\\}]"},{token:["keyword","text","entity.name.function"],regex:"(def|class)(\\s+)([\\u00BF-\\u1FFF\\u2C00-\\uD7FF\\w]+)"},{token:"text",regex:"\\s+"},{include:"constants"}],qqstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:'"{3}',next:"start"},{defaultToken:"string"}],qstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:"'{3}",next:"start"},{defaultToken:"string"}],qqstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"start"},{defaultToken:"string"}],rawqqstring3:[{token:"string",regex:'"{3}',next:"start"},{defaultToken:"string"}],rawqstring3:[{token:"string",regex:"'{3}",next:"start"},{defaultToken:"string"}],rawqqstring:[{token:"string",regex:"\\\\$",next:"rawqqstring"},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],rawqstring:[{token:"string",regex:"\\\\$",next:"rawqstring"},{token:"string",regex:"'|$",next:"start"},{defaultToken:"string"}],fqqstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:'"{3}',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:"'{3}",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqqstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"\\\\$",next:"fqqstring"},{token:"string",regex:'"|$',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"'|$",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqqstring3:[{token:"string",regex:'"{3}',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqstring3:[{token:"string",regex:"'{3}",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqqstring:[{token:"string",regex:"\\\\$",next:"rfqqstring"},{token:"string",regex:'"|$',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqstring:[{token:"string",regex:"'|$",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqstringParRules:[{token:"paren.lparen",regex:"[\\[\\(]"},{token:"paren.rparen",regex:"[\\]\\)]"},{token:"string",regex:"\\s+"},{token:"string",regex:"'[^']*'"},{token:"string",regex:'"[^"]*"'},{token:"function.support",regex:"(!s|!r|!a)"},{include:"constants"},{token:"paren.rparen",regex:"}",next:"pop"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"}],constants:[{token:"constant.numeric",regex:"(?:"+l+"|\\d+)[jJ]\\b"},{token:"constant.numeric",regex:l},{token:"constant.numeric",regex:r+"[lL]\\b"},{token:"constant.numeric",regex:r+"\\b"},{token:["punctuation","function.support"],regex:"(\\.)([a-zA-Z_]+)\\b"},{token:e,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"}]},this.normalizeRules()};o.inherits(r,i),t.PythonHighlightRules=r})),ace.define("ace/mode/folding/pythonic",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("./fold_mode").FoldMode,r=t.FoldMode=function(e){this.foldingStartMarker=new RegExp("([\\[{])(?:\\s*)$|("+e+")(?:\\s*)(?:#.*)?$")};o.inherits(r,i),function(){this.getFoldWidgetRange=function(e,t,n){var o=e.getLine(n).match(this.foldingStartMarker);if(o)return o[1]?this.openingBracketBlock(e,o[1],n,o.index):o[2]?this.indentationBlock(e,n,o.index+o[2].length):this.indentationBlock(e,n)}}.call(r.prototype)})),ace.define("ace/mode/python",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/python_highlight_rules","ace/mode/folding/pythonic","ace/range"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./python_highlight_rules").PythonHighlightRules,s=e("./folding/pythonic").FoldMode,a=e("../range").Range,l=function(){this.HighlightRules=r,this.foldingRules=new s("\\:"),this.$behaviour=this.$defaultBehaviour};o.inherits(l,i),function(){this.lineCommentStart="#",this.$pairQuotesAfter={"'":/[ruf]/i,'"':/[ruf]/i},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;return i.length&&"comment"==i[i.length-1].type||"start"==e&&t.match(/^.*[\{\(\[:]\s*$/)&&(o+=n),o};var e={pass:1,return:1,raise:1,break:1,continue:1};this.checkOutdent=function(t,n,o){if("\r\n"!==o&&"\r"!==o&&"\n"!==o)return!1;var i=this.getTokenizer().getLineTokens(n.trim(),t).tokens;if(!i)return!1;do{var r=i.pop()}while(r&&("comment"==r.type||"text"==r.type&&r.value.match(/^\s+$/)));return!!r&&"keyword"==r.type&&e[r.value]},this.autoOutdent=function(e,t,n){n+=1;var o=this.$getIndent(t.getLine(n)),i=t.getTabString();o.slice(-i.length)==i&&t.remove(new a(n,o.length-i.length,n,o.length))},this.$id="ace/mode/python",this.snippetFileId="ace/snippets/python"}.call(l.prototype),t.Mode=l})),ace.require(["ace/mode/python"],(function(t){e&&(e.exports=t)}))},202:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(e){var t="[_:a-zA-ZÀ-￿][-_:.a-zA-Z0-9À-￿]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.start.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"",next:"start"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.end.xml",regex:"--\x3e",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:t},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===r&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),o.inherits(r,i),t.XmlHighlightRules=r})),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../behaviour").Behaviour,r=e("../../token_iterator").TokenIterator;function s(e,t){return e&&e.type.lastIndexOf(t+".xml")>-1}e("../../lib/lang");var a=function(){this.add("string_dquotes","insertion",(function(e,t,n,o,i){if('"'==i||"'"==i){var a=i,l=o.doc.getTextRange(n.getSelectionRange());if(""!==l&&"'"!==l&&'"'!=l&&n.getWrapBehavioursEnabled())return{text:a+l+a,selection:!1};var c=n.getCursorPosition(),u=o.doc.getLine(c.row).substring(c.column,c.column+1),h=new r(o,c.row,c.column),d=h.getCurrentToken();if(u==a&&(s(d,"attribute-value")||s(d,"string")))return{text:"",selection:[1,1]};if(d||(d=h.stepBackward()),!d)return;for(;s(d,"tag-whitespace")||s(d,"whitespace");)d=h.stepBackward();var p=!u||u.match(/\s/);if(s(d,"attribute-equals")&&(p||">"==u)||s(d,"decl-attribute-equals")&&(p||"?"==u))return{text:a+a,selection:[1,1]}}})),this.add("string_dquotes","deletion",(function(e,t,n,o,i){var r=o.doc.getTextRange(i);if(!i.isMultiLine()&&('"'==r||"'"==r)&&o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)==r)return i.end.column++,i})),this.add("autoclosing","insertion",(function(e,t,n,o,i){if(">"==i){var a=n.getSelectionRange().start,l=new r(o,a.row,a.column),c=l.getCurrentToken()||l.stepBackward();if(!c||!(s(c,"tag-name")||s(c,"tag-whitespace")||s(c,"attribute-name")||s(c,"attribute-equals")||s(c,"attribute-value")))return;if(s(c,"reference.attribute-value"))return;if(s(c,"attribute-value")){var u=l.getCurrentTokenColumn()+c.value.length;if(a.column/.test(o.getLine(a.row).slice(a.column)))return;for(;!s(c,"tag-name");)if("<"==(c=l.stepBackward()).value){c=l.stepForward();break}var d=l.getCurrentTokenRow(),p=l.getCurrentTokenColumn();if(s(l.stepBackward(),"end-tag-open"))return;var g=c.value;if(d==a.row&&(g=g.substring(0,a.column-p)),this.voidElements.hasOwnProperty(g.toLowerCase()))return;return{text:">",selection:[1,1]}}})),this.add("autoindent","insertion",(function(e,t,n,o,i){if("\n"==i){var s=n.getCursorPosition(),a=o.getLine(s.row),l=new r(o,s.row,s.column),c=l.getCurrentToken();if(c&&-1!==c.type.indexOf("tag-close")){if("/>"==c.value)return;for(;c&&-1===c.type.indexOf("tag-name");)c=l.stepBackward();if(!c)return;var u=c.value,h=l.getCurrentTokenRow();if(!(c=l.stepBackward())||-1!==c.type.indexOf("end-tag"))return;if(this.voidElements&&!this.voidElements[u]){var d=o.getTokenAt(s.row,s.column+1),p=(a=o.getLine(h),this.$getIndent(a)),g=p+o.getTabString();return d&&"-1}(function(){this.getFoldWidget=function(e,t,n){var o=this._getFirstTagInLine(e,n);return o?o.closing||!o.tagName&&o.selfClosing?"markbeginend"===t?"end":"":!o.tagName||o.selfClosing||this.voidElements.hasOwnProperty(o.tagName.toLowerCase())||this._findEndTagInLine(e,n,o.tagName,o.end.column)?"":"start":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/"==r.value;break}return o}if(l(r,"tag-close"))return o.selfClosing="/>"==r.value,o;o.start.column+=r.value.length}return null},this._findEndTagInLine=function(e,t,n,o){for(var i=e.getTokens(t),r=0,s=0;s{e=n.nmd(e),ace.define("ace/theme/github-css",["require","exports","module"],(function(e,t,n){n.exports='/* CSS style content from github\'s default pygments highlighter template.\n Cursor and selection styles from textmate.css. */\n.ace-github .ace_gutter {\n background: #e8e8e8;\n color: #AAA;\n}\n\n.ace-github {\n background: #fff;\n color: #000;\n}\n\n.ace-github .ace_keyword {\n font-weight: bold;\n}\n\n.ace-github .ace_string {\n color: #D14;\n}\n\n.ace-github .ace_variable.ace_class {\n color: teal;\n}\n\n.ace-github .ace_constant.ace_numeric {\n color: #099;\n}\n\n.ace-github .ace_constant.ace_buildin {\n color: #0086B3;\n}\n\n.ace-github .ace_support.ace_function {\n color: #0086B3;\n}\n\n.ace-github .ace_comment {\n color: #998;\n font-style: italic;\n}\n\n.ace-github .ace_variable.ace_language {\n color: #0086B3;\n}\n\n.ace-github .ace_paren {\n font-weight: bold;\n}\n\n.ace-github .ace_boolean {\n font-weight: bold;\n}\n\n.ace-github .ace_string.ace_regexp {\n color: #009926;\n font-weight: normal;\n}\n\n.ace-github .ace_variable.ace_instance {\n color: teal;\n}\n\n.ace-github .ace_constant.ace_language {\n font-weight: bold;\n}\n\n.ace-github .ace_cursor {\n color: black;\n}\n\n.ace-github.ace_focus .ace_marker-layer .ace_active-line {\n background: rgb(255, 255, 204);\n}\n.ace-github .ace_marker-layer .ace_active-line {\n background: rgb(245, 245, 245);\n}\n\n.ace-github .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-github.ace_multiselect .ace_selection.ace_start {\n box-shadow: 0 0 3px 0px white;\n}\n/* bold keywords cause cursor issues for some fonts */\n/* this disables bold style for editor and keeps for static highlighter */\n.ace-github.ace_nobold .ace_line > span {\n font-weight: normal !important;\n}\n\n.ace-github .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-github .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-github .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-github .ace_gutter-active-line {\n background-color : rgba(0, 0, 0, 0.07);\n}\n\n.ace-github .ace_marker-layer .ace_selected-word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-github .ace_invisible {\n color: #BFBFBF\n}\n\n.ace-github .ace_print-margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-github .ace_indent-guide {\n background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;\n}\n\n.ace-github .ace_indent-guide-active {\n background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC") right repeat-y;\n}\n'})),ace.define("ace/theme/github",["require","exports","module","ace/theme/github-css","ace/lib/dom"],(function(e,t,n){t.isDark=!1,t.cssClass="ace-github",t.cssText=e("./github-css"),e("../lib/dom").importCssString(t.cssText,t.cssClass,!1)})),ace.require(["ace/theme/github"],(function(t){e&&(e.exports=t)}))},745:(e,t,n)=>{"use strict";var o=n(137);t.s=o.createRoot,o.hydrateRoot},590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,o="function"==typeof Set,i="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function r(e,s){if(e===s)return!0;if(e&&s&&"object"==typeof e&&"object"==typeof s){if(e.constructor!==s.constructor)return!1;var a,l,c,u;if(Array.isArray(e)){if((a=e.length)!=s.length)return!1;for(l=a;0!=l--;)if(!r(e[l],s[l]))return!1;return!0}if(n&&e instanceof Map&&s instanceof Map){if(e.size!==s.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!s.has(l.value[0]))return!1;for(u=e.entries();!(l=u.next()).done;)if(!r(l.value[1],s.get(l.value[0])))return!1;return!0}if(o&&e instanceof Set&&s instanceof Set){if(e.size!==s.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!s.has(l.value[0]))return!1;return!0}if(i&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(s)){if((a=e.length)!=s.length)return!1;for(l=a;0!=l--;)if(e[l]!==s[l])return!1;return!0}if(e.constructor===RegExp)return e.source===s.source&&e.flags===s.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof s.valueOf)return e.valueOf()===s.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof s.toString)return e.toString()===s.toString();if((a=(c=Object.keys(e)).length)!==Object.keys(s).length)return!1;for(l=a;0!=l--;)if(!Object.prototype.hasOwnProperty.call(s,c[l]))return!1;if(t&&e instanceof Element)return!1;for(l=a;0!=l--;)if(("_owner"!==c[l]&&"__v"!==c[l]&&"__o"!==c[l]||!e.$$typeof)&&!r(e[c[l]],s[c[l]]))return!1;return!0}return e!=e&&s!=s}e.exports=function(e,t){try{return r(e,t)}catch(e){if((e.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw e}}},137:e=>{"use strict";e.exports=require("react-dom")}},t={};function n(o){var i=t[o];if(void 0!==i)return i.exports;var r=t[o]={id:o,loaded:!1,exports:{}};return e[o](r,r.exports,n),r.loaded=!0,r.exports}n.amdD=function(){throw new Error("define cannot be used indirect")},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n.p="";var o={};(()=>{"use strict";n.r(o),n.d(o,{Accordion:()=>D,Button:()=>U,ButtonGroup:()=>K,Card:()=>he,Chart:()=>Te,Checkbox:()=>Io,CodeEditor:()=>gr,Collapsible:()=>R,Column:()=>li,Combobox:()=>Sr,Combobox2:()=>Wr,Confirm:()=>St,CopyToClipboard:()=>ut,DatePicker:()=>Zr,Dropdown:()=>Oi,Dropdown2:()=>Zi,EditableList:()=>ha,EditableList2:()=>Na,FieldCodeEditor:()=>ru,FieldCombobox:()=>gu,FieldCombobox2:()=>ju,FieldDatePicker:()=>Xu,FieldDropdown:()=>Cu,FieldEditableList:()=>sh,FieldFileInput:()=>fh,FieldInput:()=>Eh,FieldMultiselect:()=>Ih,FieldPagination:()=>Ru,FieldSelect:()=>Uh,FieldSelectableList:()=>ed,FieldToggle:()=>cd,FileInput:()=>za,FixedWrapper:()=>Ot,FloatingContainer:()=>Pt,FormikCheckbox:()=>Nc,FormikCodeEditor:()=>Ic,FormikCombobox:()=>Pc,FormikCombobox2:()=>Dc,FormikDatePicker:()=>Fc,FormikEditableList:()=>Bc,FormikEditableList2:()=>Wc,FormikFileInput:()=>Hc,FormikInput:()=>jc,FormikInput2:()=>zc,FormikMultiselect:()=>Vc,FormikRadio:()=>Uc,FormikSelect:()=>Gc,FormikSelectableList:()=>Kc,FormikTextarea:()=>qc,FormikToggle:()=>Yc,FormikWrapper:()=>Rc,Icon:()=>g,InfiniteScroller:()=>At,InfoNote:()=>Ft,Input:()=>Qa,Input2:()=>ll,List:()=>jt,Loader:()=>ye,Message:()=>be,Modal:()=>Ct,Multiselect:()=>Cl,NavBar:()=>Vt,Navigation:()=>qt,Pagination:()=>po,Panel:()=>pn,Pill:()=>mn,Radio:()=>Rl,RevealPanel:()=>Nn,Row:()=>yi,Select:()=>jl,SelectableList:()=>Xl,Table:()=>ti,Tabs:()=>eo,TextEllipsis:()=>uo,Textarea:()=>rc,Toggle:()=>bc,Tooltip:()=>lo,setConfig:()=>xc,toast:()=>ot,useComponentSize:()=>C,useEventListener:()=>$,useInterval:()=>ud,usePrevious:()=>me,useTimeout:()=>_e});const e=require("react");var t=n.n(e);const i=require("prop-types");var r=n.n(i);const s=(0,e.createContext)(),a=(0,e.createContext)();var l=Object.defineProperty,c=Object.getOwnPropertySymbols,u=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable,d=(e,t,n)=>t in e?l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function p(e){var n=e,{className:o,family:i,type:r,weight:s}=n,a=((e,t)=>{var n={};for(var o in e)u.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&c)for(var o of c(e))t.indexOf(o)<0&&h.call(e,o)&&(n[o]=e[o]);return n})(n,["className","family","type","weight"]);return t().createElement("i",((e,t)=>{for(var n in t||(t={}))u.call(t,n)&&d(e,n,t[n]);if(c)for(var n of c(t))h.call(t,n)&&d(e,n,t[n]);return e})({className:function(){const e=i||"fa";return["tyk-icon","fa"!==e&&e,`${e}-${r}`,"fa"===e?`fa-${s||"regular"}`:"",o].filter(Boolean).join(" ")}()},a))}p.propTypes={className:r().string,family:r().string,type:r().string.isRequired,weight:r().string};const g=p;function m({wrap:n}){const{collapsed:o,disabled:i,toggleChange:r}=(0,e.useContext)(a),s=o?"chevron-down":"chevron-up",l=["tyk-accordion__trigger",i&&"tyk-accordion__trigger--disabled"].filter(Boolean).join(" "),c=t().createElement("button",{className:l,onClick:r,type:"button","aria-label":"collapse/expand"},t().createElement(g,{className:"collapsable__arrow",type:s}));return n?t().createElement("div",{className:"tyk-accordion__trigger-wrapper"},c):c}m.propTypes={wrap:r().bool};const f=m;function y({collapsed:n,children:o,className:i,disabled:r},l){const{arrow:c}=(0,e.useContext)(s),[u,h]=(0,e.useState)(n),d=()=>{r||h(!u)},p=(0,e.useMemo)((()=>["tyk-accordion__item",c.expandToContent?`tyk-accordion__item--trigger-position-${c.position}`:"tyk-accordion__item--trigger-in-header",i,!1===u&&"tyk-accordion__item--active"].filter(Boolean).join(" ")),[c,i,u]),g=(0,e.useMemo)((()=>({collapsed:u,disabled:r,toggleChange:d})),[u,r,d]);return t().createElement("div",{ref:l,className:p},t().createElement(a.Provider,{value:g},c.expandToContent&&t().createElement(f,{wrap:!0}),o))}y.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),collapsed:r().bool,className:r().string,disabled:r().bool},y.defaultProps={collapsed:!1};const v=(0,e.forwardRef)(y);function b({className:n,children:o}){const{collapsed:i,disabled:r,toggleChange:l}=(0,e.useContext)(a),{usearrowastrigger:c,arrow:u}=(0,e.useContext)(s),h=i?"chevron-down":"chevron-up",d=["tyk-accordion__item-header",c&&"tyk-accordion__arrow-trigger",n].filter(Boolean).join(" ");return t().createElement("div",{className:d},c?t().createElement(t().Fragment,null,!u.expandToContent&&"left"===u.position&&t().createElement(f,null),t().createElement("div",null,o),!u.expandToContent&&"right"===u.position&&t().createElement(f,null)):t().createElement("button",{className:r?"tyk-accordion__trigger--disabled":"",onClick:l,type:"button"},t().createElement("span",null,o),t().createElement(g,{className:"collapsable__arrow",type:h})))}b.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string};const w=b,x=require("react-transition-group"),k=e=>e?{width:e.offsetWidth,height:e.offsetHeight}:{width:0,height:0},C=t=>{const[n,o]=(0,e.useState)(k(t?t.current:{})),i=(0,e.useCallback)((()=>{t.current&&o(k(t.current))}),[t]);return(0,e.useLayoutEffect)((()=>{i();let e=new ResizeObserver((()=>{i()}));return e.observe(t.current),()=>{e.disconnect(t.current),e=null}}),[t.current]),n},$=(t,n,o)=>{const i=(0,e.useRef)();(0,e.useEffect)((()=>{i.current=n}),[n]),(0,e.useEffect)((()=>{if(!(null==o?void 0:o.addEventListener))return;const e=e=>i.current(e);return o.addEventListener(t,e),()=>{o.removeEventListener(t,e)}}),[t,o])};var S=Object.defineProperty,E=Object.defineProperties,O=Object.getOwnPropertyDescriptors,T=Object.getOwnPropertySymbols,A=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable,L=(e,t,n)=>t in e?S(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function M(n){var o=n,{className:i,collapsed:r,children:s}=o,a=((e,t)=>{var n={};for(var o in e)A.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&T)for(var o of T(e))t.indexOf(o)<0&&_.call(e,o)&&(n[o]=e[o]);return n})(o,["className","collapsed","children"]);const l=(0,e.useRef)(null),c=(0,e.useRef)(null),u=C(l),[h,d]=(0,e.useState)({height:r?0:"auto"}),p=e=>{d({height:`${e}px`})},g=()=>l.current?l.current.clientHeight:0;(0,e.useEffect)((()=>{!r&&(null==u?void 0:u.height)&&h.height!==(null==u?void 0:u.height)&&p(u.height)}),[u.height]);const m=(0,e.useCallback)((()=>{!r&&l.current&&(p(g()),c.current.style.height=`${g()}px`)}),[r,l.current]);return $("resize",m,window),t().createElement(x.CSSTransition,{onEnter:()=>{p(g())},onExit:()=>{p(0)},in:!r,timeout:0,classNames:"collapse"},t().createElement("div",{className:"collapse-wrapper",ref:c,style:h},t().createElement("div",(f=((e,t)=>{for(var n in t||(t={}))A.call(t,n)&&L(e,n,t[n]);if(T)for(var n of T(t))_.call(t,n)&&L(e,n,t[n]);return e})({},a),E(f,O({className:i,ref:l}))),s)));var f}M.propTypes={children:r().oneOfType([r().element,r().node,r().string]),collapsed:r().bool,className:r().string};const R=M;function N({children:n,className:o}){const{collapsed:i}=(0,e.useContext)(a),r=["tyk-accordion__item-content",o].filter(Boolean).join(" ");return t().createElement("div",{className:r},t().createElement(R,{collapsed:i},n))}N.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string};const I=N;function P({className:n,children:o,usearrowastrigger:i,arrow:r={position:"right",expandToContent:!1}}){const a=["tyk-accordion",n].filter(Boolean).join(" "),l=(0,e.useMemo)((()=>({usearrowastrigger:i,arrow:r})),[i,r]);return t().createElement("div",{className:a},t().createElement(s.Provider,{value:l},o))}P.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,usearrowastrigger:r().bool,arrow:r().shape({position:r().oneOf(["left","right"]),expandToContent:r().bool})},P.defaultProps={usearrowastrigger:!1},P.Item=v,P.Item.Header=w,P.Item.Content=I;const D=P;var F=Object.defineProperty,B=Object.getOwnPropertySymbols,W=Object.prototype.hasOwnProperty,H=Object.prototype.propertyIsEnumerable,j=(e,t,n)=>t in e?F(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,z=(e,t)=>{for(var n in t||(t={}))W.call(t,n)&&j(e,n,t[n]);if(B)for(var n of B(t))H.call(t,n)&&j(e,n,t[n]);return e};function V(n,o){const i=n,{customButton:r,children:s,iconType:a,iconFamily:l,iconPosition:c,iconOnly:u,id:h,className:d,disabled:p,display:m,href:f,onClick:y,noStyle:v,size:b,theme:w,type:x}=i,k=((e,t)=>{var n={};for(var o in e)W.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&B)for(var o of B(e))t.indexOf(o)<0&&H.call(e,o)&&(n[o]=e[o]);return n})(i,["customButton","children","iconType","iconFamily","iconPosition","iconOnly","id","className","disabled","display","href","onClick","noStyle","size","theme","type"]),C=()=>{const e=["tyk-button"].concat(d?d.split(" "):[]),t=b?`tyk-button--${b}`:"tyk-button--md",n=p?"disabled":"",o=m||"",i=w?`tyk-button--${w}`:"",r=u?"tyk-button--icon-only":"",s=v?"tyk-button--no-style":"";return e.push(r),e.push(i),e.push(t),e.push(n),e.push(o),e.push(s),a&&e.push(`icon-${c||"left"}`),e.join(" ")},$=e=>a&&(c||"left")===e?t().createElement(g,{family:l,type:a}):null;return(()=>{let n;return r?t().createElement(t().Fragment,null,(0,e.cloneElement)(r,{className:C(),disabled:p})):(n=f?t().createElement("a",z({id:h,className:C(),disabled:p,onClick:y,href:f,ref:o},k),$("left"),s,$("right")):t().createElement("button",z({id:h,className:C(),disabled:p,onClick:y,type:x||"button",ref:o},k),$("left"),s&&t().createElement("span",null,s),$("right")),n)})()}V.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),customButton:r().oneOfType([r().arrayOf(r().node),r().node,r().element]),className:r().string,display:r().string,disabled:r().bool,id:r().string,href:r().string,iconPosition:r().string,iconFamily:r().string,iconOnly:r().bool,iconType:r().string,noStyle:r().bool,onClick:r().func,theme:r().string,type:r().string,size:r().string},V.defaultProps={theme:"",type:"button"};const U=(0,e.forwardRef)(V);function G({className:e,children:n,label:o},i){return t().createElement("div",{ref:i,className:`tyk-button-group__wrapper ${e}`},Boolean(o)&&t().createElement("label",null,o),t().createElement("div",{className:"tyk-button-group"},n))}G.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string.isRequired,label:r().string.isRequired};const K=(0,e.forwardRef)(G);function q({right:e=null,children:n}){return t().createElement("div",{className:"tyk-card__header"},n&&t().createElement("div",{className:"tyk-card__header-content"},n),e&&t().createElement("div",{className:"tyk-card__header-right"},e))}q.propTypes={right:r().oneOfType([r().element,r().node,r().string]),children:r().oneOfType([r().element,r().node,r().string])};const Y=q;function J({align:e="top",children:n}){return t().createElement("div",{className:`tyk-card__body tyk-card__body--align-${e}`},t().createElement("div",null,n))}J.propTypes={align:r().oneOf(["top","center","bottom"]),children:r().oneOfType([r().element,r().node,r().string])};const X=J;function Q({children:e}){return t().createElement("div",{className:"tyk-card__footer"},e)}Q.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const Z=Q;function ee({maxLines:e=1,children:n}){return t().createElement("h4",{className:`tyk-card__title tyk-card__title--max-${e}-lines`},n)}ee.propTypes={maxLines:r().number,children:r().oneOfType([r().element,r().node,r().string])};const te=ee;function ne({children:e}){return t().createElement("div",{className:"tyk-card__title-group"},e)}ne.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const oe=ne;function ie({children:e}){return t().createElement("h5",{className:"tyk-card__sub-title"},e)}ie.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const re=ie;function se({maxLines:e=2,children:n}){return t().createElement("p",{className:`tyk-card__summary tyk-card__summary--max-${e}-lines`},n)}se.propTypes={maxLines:r().number,children:r().oneOfType([r().element,r().node,r().string])};const ae=se;function le({children:e}){return t().createElement("div",{className:"tyk-card__title-icon"},e)}le.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const ce=le;function ue({className:e="",height:n="auto",children:o}){return t().createElement("div",{style:{height:n},className:`tyk-card ${e}`},o)}ue.propTypes={className:r().string,height:r().oneOfType([r().number,r().string]),children:r().oneOfType([r().element,r().node,r().string])},ue.Header=Y,ue.Body=X,ue.Footer=Z,ue.Title=te,ue.TitleGroup=oe,ue.Icon=ce,ue.SubTitle=re,ue.Summary=ae;const he=ue,de=require("echarts"),pe=require("immutable"),ge=(e,t,n)=>{let o;return function(...i){const r=this,s=n&&!o;clearTimeout(o),o=setTimeout((()=>{o=null,n||e.apply(r,i)}),t),s&&e.apply(r,i)}},me=t=>{const n=(0,e.useRef)();return(0,e.useEffect)((()=>{n.current=t}),[t]),n.current};function fe({className:e,position:n="relative",withbackground:o=!1}){const i=["loading",n,e].filter(Boolean).join(" "),r=t().createElement("div",{className:i},t().createElement("div",{className:"loading-bar"}),t().createElement("div",{className:"loading-bar"}),t().createElement("div",{className:"loading-bar"}),t().createElement("div",{className:"loading-bar"}));return o?t().createElement("div",{className:"tyk-loading__wrapper"},r):r}fe.propTypes={className:r().string,position:r().string,withbackground:r().bool};const ye=fe;function ve({children:e,theme:n,onClose:o,noMargin:i,className:r}){const s="success"===n?"check":"exclamation";return t().createElement("div",{className:["tyk-message",`tyk-message--${n||"info"}`,i&&"no-margin",r].filter(Boolean).join(" ")},t().createElement(g,{type:s}),t().createElement("div",{className:"tyk-message__content"},e),o&&t().createElement(g,{type:"xmark",onClick:o}))}ve.propTypes={theme:r().string,children:r().oneOfType([r().element,r().node,r().string]),className:r().string,noMargin:r().bool,onClose:r().func};const be=ve,we=JSON.parse('{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:OGC:1.3:CRS84"}},"features":[{"geometry":{"type":"Polygon","coordinates":[[[47.97822265625001,7.9970703125],[46.97822265625001,7.9970703125],[43.98378906250002,9.008837890624989],[43.482519531250006,9.379492187499991],[43.181640625,9.879980468749991],[42.84160156250002,10.203076171874997],[42.65644531250001,10.6],[42.92275390625002,10.999316406249989],[43.24599609375002,11.499804687499989],[43.85273437500001,10.784277343749991],[44.38652343750002,10.430224609374989],[44.94296875,10.43671875],[45.81669921875002,10.835888671874997],[46.565039062500006,10.745996093749994],[47.40498046875001,11.174023437499997],[48.01923828125001,11.139355468749997],[48.57255859375002,11.320507812499997],[48.938574218750006,11.258447265624994],[50.11005859375001,11.529296875],[50.79228515625002,11.983691406249989],[51.2548828125,11.830712890624994],[51.08427734375002,11.335644531249997],[51.140625,10.656884765624994],[51.031835937500006,10.444775390624997],[51.19296875,10.554638671874997],[51.390234375,10.422607421875],[50.93007812500002,10.33554687499999],[50.825,9.428173828124997],[50.10283203125002,8.199804687499991],[49.85205078125,7.962548828124994],[49.234960937500006,6.77734375],[49.04931640625,6.173632812499989],[47.97529296875001,4.497021484374997],[46.87880859375002,3.28564453125],[46.05117187500002,2.475146484374989],[44.92021484375002,1.81015625],[43.71757812500002,0.857861328124997],[41.97988281250002,-0.973046875],[41.53271484375,-1.6953125],[41.521875,-1.572265625],[41.42695312500001,-1.449511718750003],[41.24980468750002,-1.220507812500003],[40.97871093750001,-0.870312500000011],[40.964453125,2.814648437499997],[41.341796875,3.20166015625],[41.61347656250001,3.590478515624994],[41.88398437500001,3.977734375],[41.91533203125002,4.031298828124989],[42.02412109375001,4.137939453125],[42.85664062500001,4.32421875],[43.12568359375001,4.644482421874997],[43.58349609375,4.85498046875],[43.988867187500006,4.950537109374991],[44.940527343750006,4.912011718749994],[47.97822265625001,7.9970703125]]]},"properties":{"name":"Somalia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[9.579979133936737,47.05856388629306],[9.409458596647225,47.02019676540292],[9.46249431093294,47.09010747968864],[9.46249431093294,47.19858962254578],[9.527658197470123,47.27026989773668],[9.579979133936737,47.05856388629306]]]},"properties":{"name":"Liechtenstein","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-8.683349609375,27.77800740805682],[-13.038761787013554,27.81190166624856],[-12.948925781249926,27.914160156250034],[-11.552685546874955,28.31010742187496],[-10.486474609374994,29.06494140625],[-10.200585937499994,29.380371093750057],[-9.667089843749949,30.10927734375005],[-9.652929687499977,30.447558593750045],[-9.875488281249943,30.717919921874966],[-9.80869140624992,31.42460937499996],[-9.347460937499932,32.086376953124955],[-9.245849609375,32.572460937499955],[-8.512841796874994,33.25244140625003],[-6.900976562499949,33.96904296874999],[-6.353125,34.77607421875001],[-5.924804687499943,35.78579101562502],[-5.277832031249943,35.90273437500002],[-5.252685546874972,35.61474609374997],[-4.628320312499966,35.206396484375006],[-4.329980468749937,35.161474609375006],[-3.693261718749994,35.27998046874998],[-3.394726562499926,35.21181640625005],[-2.972216796874989,35.40727539062499],[-2.839941406249949,35.127832031249994],[-2.731396484374955,35.13520507812498],[-2.636816406249977,35.11269531250002],[-2.423730468749994,35.12348632812498],[-2.219628906249966,35.10419921874998],[-1.795605468749926,34.751904296874955],[-1.67919921875,33.31865234375002],[-1.550732421874955,33.073583984375006],[-1.510009765625,32.877636718749955],[-1.45,32.784814453124966],[-1.352148437499977,32.70336914062497],[-1.29638671875,32.67568359375002],[-1.188232421875,32.608496093750006],[-1.111035156249983,32.55229492187502],[-1.065527343749949,32.46831054687496],[-1.16259765625,32.399169921875],[-1.275341796874983,32.089013671874966],[-2.863427734374937,32.07470703124997],[-2.930859374999926,32.04252929687499],[-2.988232421874983,31.874218749999983],[-3.01738281249996,31.834277343750017],[-3.439794921874949,31.704541015624983],[-3.604589843749949,31.686767578125],[-3.700244140624989,31.70009765625005],[-3.768164062499977,31.689550781250034],[-3.837109374999983,31.512353515624994],[-3.833398437499937,31.197802734375045],[-3.626904296874955,31.000927734374983],[-4.148779296874977,30.8095703125],[-4.322851562500006,30.698876953124994],[-4.52915039062492,30.62553710937499],[-4.778515624999926,30.552392578124994],[-4.968261718749943,30.465380859375045],[-5.061914062499937,30.326416015625057],[-5.180126953124955,30.166162109374994],[-5.293652343749983,30.058642578125045],[-5.44877929687496,29.956933593750023],[-6.00429687499999,29.83125],[-6.479736328124943,29.82036132812499],[-6.520556640624989,29.659863281249983],[-6.59775390624992,29.578955078125006],[-6.635351562499949,29.568798828124983],[-6.755126953125,29.583837890625034],[-6.855566406249949,29.601611328125017],[-7.142431640624949,29.61958007812504],[-7.427685546874983,29.425],[-7.485742187499994,29.392236328124994],[-8.659912109375,28.718603515625063],[-8.683349609375,27.900390625],[-8.683349609375,27.77800740805682]]]},"properties":{"name":"Morocco","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-13.038761787013554,27.81190166624856],[-8.683349609375,27.77800740805682],[-8.683349609375,27.65644531250004],[-8.817822265624955,27.65644531250004],[-8.817822265624951,27.656445312499997],[-8.683349609375,27.656445312499997],[-8.683349609375,27.2859375],[-8.682861328125,26.921337890624997],[-8.6826171875,26.72314453125],[-8.682324218749983,26.497705078124994],[-8.68212890625,26.273193359375],[-8.68212890625,26.10947265625],[-8.682226562499977,25.995507812499994],[-12.016308593749983,25.995410156250003],[-12.016308593749983,25.740136718749994],[-12.016308593749983,25.331689453124994],[-12.016308593749983,25.059375],[-12.016308593749983,24.923242187499994],[-12.016308593749983,24.378662109375],[-12.016308593749983,23.97021484375],[-12.0234375,23.467578125],[-12.372900390624977,23.318017578124994],[-12.559375,23.290820312500003],[-12.620410156249989,23.27133789062499],[-13.031494140625,23.000244140625],[-13.153271484374983,22.820507812499997],[-13.12702845982141,22.703770926339278],[-13.136540684091575,22.708182548616723],[-13.094335937499977,22.495996093749994],[-13.051220703124983,21.854785156250003],[-13.041748046875,21.713818359374997],[-13.0322265625,21.572070312500003],[-13.025097656249983,21.466796875],[-13.016210937499977,21.333935546874997],[-15.231201171875,21.331298828125],[-16.964550781249983,21.329248046874994],[-17.06396484375,20.89882812499999],[-17.048046874999983,20.80615234375],[-17.098779296874994,20.856884765624997],[-16.930859374999983,21.9],[-16.35874023437495,22.594531250000045],[-16.21025390624999,23.097900390625],[-15.789257812499926,23.792871093750023],[-15.980712890624943,23.670312500000023],[-15.899316406249966,23.844433593749955],[-14.904296875000028,24.719775390625017],[-14.794921874999943,25.404150390625006],[-14.413867187499932,26.25371093749999],[-13.57578125,26.735107421875],[-13.175976562499983,27.655712890624983],[-13.038761787013554,27.81190166624856]],[[-8.774365234374983,27.460546875],[-8.794873046874983,27.120703125000034],[-8.794873046874983,27.120703125],[-8.774365234374983,27.460546875]]]},"properties":{"name":"W. Sahara","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[21.5625,42.247509765625],[21.560839843750017,42.24765625],[21.389550781250023,42.21982421875],[21.28662109375,42.100390625],[21.05976562500001,42.171289062499994],[20.778125,42.071044921875],[20.725,41.87353515625],[20.566210937500017,41.873681640624994],[20.485449218750006,42.223388671875],[20.06396484375,42.54726562499999],[20.054296875,42.760058593749996],[20.344335937500006,42.827929687499996],[20.40996305279786,42.84373166741877],[20.344335937500063,42.82792968750002],[19.670996093750006,43.163964843749994],[19.21875,43.449951171875],[19.196484375000068,43.48500976562502],[19.19160156250004,43.52104492187499],[19.19433593749997,43.533300781250006],[19.495117187500057,43.642871093750045],[19.245019531249994,43.96503906250004],[19.583789062500017,44.04345703125003],[19.118457031250074,44.359960937500006],[19.348632812500057,44.88090820312502],[19.007128906250045,44.86918945312502],[19.062890625000023,45.13720703125],[19.4,45.2125],[19.004687500000074,45.39951171875006],[19.064257812500045,45.51499023437506],[18.839062499999983,45.83574218750002],[18.905371093750006,45.931738281250034],[19.421289062500023,46.064453125],[19.61347656250001,46.169189453125],[19.84443359375001,46.145898437499966],[19.934082031250057,46.161474609375034],[20.161425781250017,46.14189453124996],[20.210156250000068,46.12602539062502],[20.241796875000034,46.10859375000001],[20.301367187500006,46.05068359375002],[20.35859375000004,45.975488281249994],[20.581152343749977,45.86948242187506],[20.65273437499999,45.779394531250006],[20.709277343750074,45.735253906249994],[20.727832031250017,45.73740234374998],[20.746875,45.74897460937501],[20.76015625000005,45.75810546875002],[20.775,45.74980468750002],[20.794042968750006,45.467871093750034],[21.431445312500017,45.192529296874994],[21.465429687500006,45.171875],[21.357031250000034,44.99077148437502],[21.532324218750063,44.900683593750045],[21.519921875000023,44.88081054687498],[21.442187500000074,44.87338867187498],[21.384375,44.87006835937501],[21.357910156250057,44.86181640625003],[21.36005859375004,44.82666015624997],[21.52314453125004,44.79008789062499],[21.63613281250005,44.71044921875],[21.909277343750034,44.666113281250034],[22.026953125,44.61987304687503],[22.093066406250074,44.541943359374955],[22.200976562500017,44.560693359374966],[22.350683593750063,44.676123046875034],[22.497656249999977,44.70625],[22.64208984375,44.65097656249998],[22.720898437499983,44.605517578125045],[22.734375,44.56992187499998],[22.700781250000063,44.55551757812498],[22.620117187500057,44.562353515625034],[22.554003906250017,44.54033203124999],[22.49453125000005,44.43544921875002],[22.687890625000023,44.248291015625],[22.42080078125005,44.00742187500006],[22.399023437500063,43.96953125],[22.36542968750004,43.86210937500002],[22.36962890625003,43.78129882812499],[22.55458984375005,43.45449218750002],[22.767578125,43.35415039062502],[22.81972656250005,43.300732421874955],[22.85957031250001,43.252343749999966],[22.97685546874999,43.18798828125],[22.799902343750006,42.985742187499994],[22.706152343750006,42.88393554687505],[22.466796875,42.842480468749955],[22.53242187500004,42.48120117187497],[22.523535156250006,42.440966796875045],[22.44570312500005,42.35913085937497],[22.42207031250004,42.32885742187503],[22.344042968750045,42.31396484375003],[22.23974609375003,42.303110028468716],[21.81464843750001,42.303125],[21.5625,42.24750976562498],[21.5625,42.247509765625]]]},"properties":{"name":"Serbia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[74.54140625000002,37.02216796875],[74.03886718750002,36.825732421874996],[73.116796875,36.868554687499994],[72.24980468750002,36.734716796875],[71.23291015625,36.12177734375],[71.18505859375,36.04208984375],[71.57197265625001,35.546826171875],[71.62050781250002,35.183007812499994],[70.965625,34.53037109375],[71.095703125,34.369433593749996],[71.05156250000002,34.049707031249994],[70.65400390625001,33.952294921874994],[69.8896484375,34.007275390625],[70.26113281250002,33.289013671875],[69.5015625,33.020068359374996],[69.24140625000001,32.433544921875],[69.279296875,31.936816406249996],[68.86894531250002,31.634228515624997],[68.59765625,31.802978515625],[68.16103515625002,31.802978515625],[67.57822265625,31.506494140624994],[67.737890625,31.343945312499997],[67.45283203125001,31.234619140625],[66.82929687500001,31.263671875],[66.346875,30.802783203124996],[66.23125,29.86572265625],[65.09550781250002,29.559472656249994],[64.39375,29.544335937499994],[64.09873046875,29.391943359375],[63.56757812500001,29.497998046874997],[62.4765625,29.408349609374994],[62.0009765625,29.530419921874994],[61.22441406250002,29.749414062499994],[60.843359375,29.858691406249996],[61.331640625,30.363720703124997],[61.55947265625002,30.599365234375],[61.7841796875,30.831933593749994],[61.81083984375002,30.91328125],[61.81425781250002,31.072558593749996],[61.75507812500001,31.285302734374994],[61.66015625,31.382421875],[61.34648437500002,31.421630859375],[61.11074218750002,31.451123046874997],[60.854101562500006,31.483251953125],[60.82070312500002,31.495166015624996],[60.791601562500006,31.660595703124997],[60.804296875,31.73447265625],[60.7875,31.877197265625],[60.78994140625002,31.987109375],[60.827246093750006,32.16796875],[60.82929687500001,32.249414062499994],[60.71044921875,32.6],[60.57656250000002,32.994873046875],[60.560546875,33.137841796874994],[60.9169921875,33.505224609375],[60.573828125,33.588330078125],[60.4859375,33.7119140625],[60.48574218750002,34.094775390624996],[60.642675781250006,34.307177734374996],[60.88945312500002,34.31943359375],[60.80390625000001,34.418017578124996],[60.76259765625002,34.475244140624994],[60.73613281250002,34.491796875],[60.72626953125001,34.51826171875],[60.73945312500001,34.544726562499996],[60.80234375,34.554638671875],[60.8453125,34.587695312499996],[60.91474609375001,34.633984375],[60.951171875,34.653857421874996],[61.080078125,34.855615234374994],[61.1,35.272314453125],[61.18925781250002,35.31201171875],[61.24550781250002,35.474072265625],[61.27851562500001,35.51376953125],[61.281835937500006,35.55341796875],[61.26201171875002,35.619580078125],[61.3447265625,35.6294921875],[61.62099609375002,35.43232421875],[62.08964843750002,35.3796875],[62.30781250000001,35.170800781249994],[62.688085937500006,35.255322265625],[63.056640625,35.44580078125],[63.08417968750001,35.56806640625],[63.16972656250002,35.678125],[63.129980468750006,35.84619140625],[63.8625,36.012353515624994],[64.184375,36.14892578125],[64.51103515625002,36.340673828125],[64.56582031250002,36.427587890625],[64.6025390625,36.554541015625],[64.78242187500001,37.05927734375],[64.81630859375002,37.132080078125],[64.95156250000002,37.1935546875],[65.08964843750002,37.237939453124994],[65.30361328125002,37.24677734375],[65.55498046875002,37.251171875],[65.76503906250002,37.569140625],[66.471875,37.3447265625],[66.52226562500002,37.348486328125],[66.827734375,37.3712890625],[67.06884765625,37.334814453125],[67.19550781250001,37.235205078125],[67.31972656250002,37.2095703125],[67.44169921875002,37.2580078125],[67.51728515625001,37.266650390624996],[67.546484375,37.235644531249996],[67.607421875,37.222509765625],[67.7,37.22724609375],[67.7529296875,37.1998046875],[67.75898437500001,37.172216796875],[67.76601562500002,37.14013671875],[67.83447265625,37.064208984375],[67.9580078125,36.972021484375],[68.06777343750002,36.9498046875],[68.26093750000001,37.013085937499994],[68.284765625,37.036328125],[68.29951171875001,37.088427734374996],[68.38691406250001,37.1375],[68.66914062500001,37.2583984375],[68.7232421875,37.268017578125],[68.78203125000002,37.2580078125],[68.82373046875,37.270703125],[68.8384765625,37.30283203125],[68.85537109375002,37.316845703125],[68.88525390625,37.328076171875],[68.91181640625001,37.333935546875],[68.96044921875,37.325048828125],[69.18017578125,37.15830078125],[69.26484375000001,37.1083984375],[69.30390625000001,37.116943359375],[69.35380859375002,37.150048828124994],[69.41445312500002,37.207763671875],[69.4296875,37.290869140625],[69.39921875000002,37.399316406249994],[69.42011718750001,37.48671875],[69.49208984375002,37.553076171875],[69.62578125000002,37.594042968749996],[69.8208984375,37.6095703125],[69.9849609375,37.566162109375],[70.18867187500001,37.582470703125],[70.25146484375,37.66416015625],[70.25498046875,37.765380859375],[70.19941406250001,37.886035156249996],[70.21464843750002,37.9244140625],[70.41777343750002,38.075439453125],[70.7359375,38.42255859375],[71.255859375,38.306982421875],[71.33271484375001,38.170263671875],[71.27851562500001,37.918408203125],[71.319921875,37.90185546875],[71.3896484375,37.906298828124996],[71.48779296875,37.931884765625],[71.55195312500001,37.933154296874996],[71.58222656250001,37.910107421875],[71.43291015625002,37.1275390625],[71.530859375,36.845117187499994],[71.665625,36.696923828124994],[72.65742187500001,37.029052734375],[72.8955078125,37.267529296875],[73.21113281250001,37.408496093749996],[73.38291015625,37.462255859375],[73.48134765625002,37.4716796875],[73.60468750000001,37.446044921875],[73.65712890625002,37.43046875],[73.72060546875002,37.41875],[73.73378906250002,37.37578125],[73.71728515625,37.329443359375],[73.6275390625,37.261572265625],[73.65351562500001,37.23935546875],[73.749609375,37.231787109375],[74.16708984375,37.329443359375],[74.20351562500002,37.372460937499994],[74.25966796875002,37.415429687499994],[74.659375,37.394482421875],[74.73056640625,37.35703125],[74.83046875000002,37.2859375],[74.89130859375001,37.231640625],[74.84023437500002,37.225048828125],[74.76738281250002,37.249169921874994],[74.73896484375001,37.28564453125],[74.72666015625,37.29072265625],[74.6689453125,37.26669921875],[74.55898437500002,37.236621093749996],[74.37216796875,37.15771484375],[74.37617187500001,37.137353515624994],[74.49794921875002,37.0572265625],[74.52646484375,37.030664062499994],[74.54140625000002,37.02216796875]]]},"properties":{"name":"Afghanistan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[17.57958984375,-8.099023437500009],[17.643359375000017,-8.090722656250009],[18.00878906250003,-8.107617187499983],[18.56269531250001,-7.9359375],[18.944433593750063,-8.001464843750028],[19.142675781250034,-8.001464843750028],[19.34082031249997,-7.966601562500031],[19.369921875000045,-7.706542968749986],[19.371679687500063,-7.655078124999989],[19.47988281250008,-7.472167968750028],[19.48378906250008,-7.279492187500026],[19.527636718750017,-7.144433593749952],[19.87519531250004,-6.986328124999986],[19.99746093750008,-6.976464843750023],[20.190039062500063,-6.9462890625],[20.482226562500074,-6.915820312500017],[20.59003906250001,-6.919921874999957],[20.598730468750006,-6.935156249999949],[20.536914062500045,-7.121777343749955],[20.535839843749983,-7.182812499999955],[20.558398437500045,-7.244433593749989],[20.60781250000008,-7.277734375000023],[20.910937500000017,-7.281445312499983],[21.190332031250023,-7.284960937499989],[21.751074218750034,-7.305468749999989],[21.80605468750005,-7.32861328125],[21.905371093750034,-8.693359374999943],[21.813183593750068,-9.46875],[22.19775390625,-10.040625],[22.30703125000005,-10.691308593750023],[22.203515625000023,-10.829492187500009],[22.226171875,-11.121972656250009],[22.27880859375,-11.19414062499996],[22.314941406250057,-11.198632812499994],[22.39296875000005,-11.159472656250003],[22.486132812500045,-11.086718750000017],[22.56103515625003,-11.05585937500004],[22.814746093750017,-11.08027343750004],[23.076269531250006,-11.087890624999986],[23.463964843750034,-10.969335937499991],[23.83388671875008,-11.013671874999972],[23.96650390625001,-10.871777343750011],[23.98388671875,-11.725],[23.909375,-12.636132812500009],[23.886523437500045,-12.743261718749991],[23.882421875,-12.799023437499983],[23.968066406250045,-12.956933593749994],[23.962988281250006,-12.988476562500026],[23.843164062500023,-13.0009765625],[22.209570312500006,-13.0009765625],[21.97890625000008,-13.0009765625],[21.979101562500034,-13.798730468749994],[21.979296875000074,-14.11962890625],[21.979394531249994,-14.440527343750006],[21.97978515624999,-15.955566406250014],[22.193945312500006,-16.628125],[23.380664062500017,-17.640625],[22.32421875,-17.8375],[20.74550781250008,-18.019726562499983],[20.194335937500057,-17.86367187499999],[18.95527343750004,-17.80351562499999],[18.39638671875005,-17.3994140625],[16.14843750000003,-17.39023437499999],[14.017480468750023,-17.40888671874997],[13.475976562500023,-17.04003906249997],[13.179492187500017,-16.971679687499986],[12.548144531250017,-17.212695312499974],[12.35927734375008,-17.205859375],[12.318457031250006,-17.21337890625003],[12.213378906250028,-17.209960937500043],[12.013964843750074,-17.168554687500034],[11.902539062500011,-17.226562499999957],[11.743066406250023,-17.24921875000004],[11.780078125000017,-16.87128906249997],[11.818945312500034,-16.704101562500014],[11.750878906250023,-15.831933593749966],[12.016113281250057,-15.513671874999957],[12.55048828125004,-13.437792968750003],[12.983203124999989,-12.775683593750017],[13.4169921875,-12.52041015624998],[13.597949218750017,-12.286132812500028],[13.785351562499983,-11.81279296874996],[13.833593750000063,-10.9296875],[13.33222656250004,-9.998925781250009],[12.99853515625,-9.048046875],[13.358984375,-8.687207031250026],[13.378515625000063,-8.369726562500006],[12.82343750000004,-6.954785156249955],[12.283300781250063,-6.12431640624996],[13.184375,-5.85625],[13.346484375000017,-5.863378906250006],[13.978515625,-5.857226562500003],[16.315234375000074,-5.865625],[16.431445312500045,-5.90019531249996],[16.53710937499997,-5.9658203125],[16.697265625,-6.164257812500026],[16.74296874999999,-6.618457031250003],[16.813085937500063,-6.772558593749963],[16.919433593750057,-6.93398437499998],[16.98476562500005,-7.257421874999977],[17.57958984375,-8.099023437500009]]],[[[12.50146484375,-4.5875],[12.848144531250028,-4.428906249999983],[12.881054687500068,-4.445117187499989],[12.971386718750068,-4.551757812499957],[13.048046875000068,-4.619238281250034],[13.072753906250028,-4.634765625],[13.057324218750011,-4.651074218750026],[12.947460937500011,-4.695312499999986],[12.829687499999977,-4.73662109374996],[12.451464843750017,-5.071484374999969],[12.453222656250034,-5.090625],[12.52236328125008,-5.148925781250028],[12.484570312500011,-5.71875],[12.213671875000074,-5.758691406249994],[12.177148437499994,-5.324804687499977],[12.018359375000074,-5.004296874999966],[12.50146484375,-4.5875]]]]},"properties":{"name":"Angola","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[20.06396484375,42.54726562499999],[20.485449218750006,42.223388671875],[20.566210937500017,41.873681640624994],[20.48896484375001,41.272607421874994],[20.709277343750017,40.928369140624994],[20.964257812500023,40.849902343749996],[20.95576171875001,40.775292968749994],[21.030859375,40.622460937499994],[20.881640625000017,40.467919921874994],[20.65742187500001,40.1173828125],[20.4560546875,40.065576171874994],[20.408007812500017,40.049462890624994],[20.383691406250023,40.0171875],[20.338476562500006,39.991064453125],[20.311132812500006,39.979443359375],[20.311328125000017,39.95078125],[20.381640625000017,39.841796875],[20.382421875,39.802636718749994],[20.206835937500017,39.653515625],[20.13105468750001,39.66162109375],[20.05976562500001,39.699121093749994],[20.022558593750006,39.710693359375],[20.001269531250017,39.709423828125],[19.851855468750017,40.0435546875],[19.322265625,40.407080078125],[19.45917968750001,40.40537109375],[19.3375,40.663818359375],[19.57568359375,41.640429687499996],[19.577539062500023,41.7875],[19.342382812500006,41.869091796875],[19.280664062500023,42.17255859375],[19.65449218750001,42.628564453124994],[19.78828125000001,42.476171875],[20.06396484375,42.54726562499999]]]},"properties":{"name":"Albania","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[19.66230468750001,60.187158203124994],[19.53652343750005,60.14497070312501],[19.551367187500063,60.24384765625001],[19.66230468750001,60.187158203124994]]],[[[19.989550781250074,60.351171875],[20.258886718750063,60.26127929687499],[19.799804687500057,60.08173828125001],[19.68691406250005,60.267626953125045],[19.84765625000003,60.22055664062506],[19.823046875000074,60.390185546875045],[19.989550781250074,60.351171875]]]]},"properties":{"name":"Aland","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[1.7060546875,42.503320312499994],[1.534082031250023,42.441699218749996],[1.448828125,42.437451171875],[1.428125,42.46132812499999],[1.414843750000017,42.548388671874996],[1.428320312500006,42.5958984375],[1.501367187500023,42.642724609374994],[1.568164062500017,42.635009765625],[1.709863281250023,42.604443359375],[1.739453125000011,42.575927734375],[1.740234375,42.55673828125],[1.713964843750006,42.525634765625],[1.7060546875,42.503320312499994]]]},"properties":{"name":"Andorra","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[53.927832031250006,24.177197265624983],[53.63447265625004,24.169775390624977],[53.83378906250002,24.258935546875023],[53.927832031250006,24.177197265624983]]],[[[53.3322265625001,24.258593750000045],[53.19091796874997,24.290917968749966],[53.412402343750074,24.411035156250023],[53.3322265625001,24.258593750000045]]],[[[56.29785156250003,25.650683593750045],[56.38798828125002,24.97919921875004],[56.06386718750005,24.73876953125],[56.00058593750006,24.953222656249977],[55.795703125000074,24.868115234374955],[55.76083984375006,24.24267578125],[55.92861328125005,24.215136718750074],[55.98515625000002,24.063378906249966],[55.4684570312501,23.94111328125001],[55.53164062499999,23.81904296875001],[55.1999023437501,23.034765625000034],[55.185839843750074,22.7041015625],[55.104296875000074,22.621484375000023],[52.55507812500005,22.932812499999955],[51.592578125000074,24.07885742187503],[51.56835937500003,24.286181640625074],[51.76757812500003,24.25439453125],[51.84316406250005,24.010888671875023],[52.118554687499994,23.97109375],[52.64824218750002,24.154638671875006],[53.80175781249997,24.069482421874966],[54.14794921875003,24.17119140624999],[54.39707031250006,24.278173828125034],[54.74677734375004,24.810449218750023],[55.94121093750002,25.793994140625017],[56.08046875,26.06264648437505],[56.16748046875003,26.047460937499977],[56.144628906250006,25.690527343750006],[56.29785156250003,25.650683593750045]]]]},"properties":{"name":"United Arab Emirates","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-64.54916992187498,-54.71621093749998],[-63.81542968749997,-54.725097656250014],[-64.637353515625,-54.90253906250001],[-64.75732421875,-54.82656249999999],[-64.54916992187498,-54.71621093749998]]],[[[-68.65322265624994,-54.85361328124999],[-68.62993164062499,-52.65263671875004],[-68.24013671875,-53.08183593749999],[-68.43115234375,-53.0552734375],[-68.48852539062497,-53.260937499999976],[-68.16113281249997,-53.30644531250001],[-68.00849609374995,-53.5640625],[-67.29423828125002,-54.049804687500014],[-66.23564453124999,-54.53349609374997],[-65.17900390624993,-54.678125],[-65.47114257812495,-54.91464843749999],[-66.5111328125,-55.032128906249945],[-67.127099609375,-54.90380859375001],[-68.65322265624994,-54.85361328124999]]],[[[-61.084716796875,-23.65644531250001],[-60.83984375000003,-23.85810546874997],[-59.89248046874994,-24.093554687499974],[-59.18725585937497,-24.56230468749999],[-57.82167968749994,-25.136425781249983],[-57.56313476562494,-25.473730468749963],[-57.943115234375,-26.05292968750001],[-58.18149414062498,-26.30742187499999],[-58.222070312499994,-26.65],[-58.618603515624955,-27.13212890624996],[-58.64174804687494,-27.196093750000017],[-58.60483398437498,-27.314355468750037],[-58.16826171874993,-27.27343749999997],[-56.437158203124966,-27.553808593749977],[-56.16406250000003,-27.321484374999983],[-55.95146484374996,-27.325683593749957],[-55.789990234374926,-27.416406249999966],[-55.71464843749996,-27.41484375],[-55.632910156250006,-27.35712890624997],[-55.59379882812502,-27.288085937500014],[-55.597265625,-27.207617187499963],[-55.56489257812498,-27.15],[-55.496728515624966,-27.11533203124999],[-55.45063476562498,-27.068359375000014],[-55.426660156249994,-27.00927734374997],[-55.13593750000001,-26.931152343749957],[-54.934472656249994,-26.70253906250001],[-54.677734375,-26.308789062499997],[-54.631933593750006,-26.005761718749994],[-54.615869140624994,-25.576074218750023],[-54.44394531249998,-25.625],[-54.15458984374999,-25.523046874999963],[-53.89116210937499,-25.66884765625001],[-53.668554687500006,-26.288183593749977],[-53.83818359375002,-27.121093750000014],[-54.32700195312495,-27.423535156249997],[-54.82910156250003,-27.55058593750003],[-55.10151367187501,-27.866796874999963],[-55.72548828125002,-28.20410156250003],[-55.68725585937497,-28.38164062499996],[-55.890527343749994,-28.370019531249994],[-56.938623046874994,-29.594824218750034],[-57.22465820312499,-29.782128906249994],[-57.40522460937501,-30.03388671875004],[-57.563867187499994,-30.139941406249974],[-57.60888671875003,-30.187792968750045],[-57.65087890624997,-30.295019531250034],[-57.71269531249996,-30.38447265624997],[-57.83120117187502,-30.495214843749963],[-57.87250976562501,-30.591015625000026],[-57.81059570312499,-30.85859375000001],[-57.88632812499998,-30.937402343749994],[-57.86840820312497,-31.104394531249994],[-57.89335937499999,-31.195312499999957],[-58.03339843750001,-31.416601562500006],[-58.053857421874994,-31.494921874999974],[-58.009667968749966,-31.534375],[-57.98798828124998,-31.576171875],[-58.00698242187494,-31.684960937499966],[-58.04233398437495,-31.769238281249997],[-58.16748046874997,-31.87265625],[-58.18901367187499,-31.924218750000037],[-58.16040039062503,-31.986523437500026],[-58.156347656250006,-32.0515625],[-58.17700195312494,-32.11904296875002],[-58.16479492187494,-32.18486328125002],[-58.119726562500006,-32.24892578125002],[-58.12304687499997,-32.321875],[-58.201171875,-32.471679687500014],[-58.219970703125,-32.563964843749986],[-58.17099609374998,-32.95927734374996],[-58.424462890624994,-33.11152343749998],[-58.54721679687498,-33.66347656249998],[-58.392480468749966,-34.192968750000034],[-58.52548828124998,-34.29619140625002],[-58.28334960937494,-34.68349609375005],[-57.54785156250003,-35.018945312499994],[-57.170654296875,-35.3625],[-57.35390624999994,-35.72031249999998],[-57.33544921875,-36.026757812499966],[-57.07617187499994,-36.296777343749994],[-56.74946289062501,-36.346484375],[-56.67202148437494,-36.85126953124998],[-57.546972656250034,-38.085644531250026],[-58.17919921874994,-38.435839843750045],[-59.82832031250001,-38.83818359375003],[-61.112207031249994,-38.99296875000003],[-61.84790039062497,-38.961816406249994],[-62.33476562499993,-38.80009765625],[-62.29506835937502,-39.24326171874996],[-62.053662109374955,-39.373828125],[-62.179345703124994,-39.38046875000002],[-62.076806640624966,-39.46152343750002],[-62.131542968749926,-39.82539062499998],[-62.28691406249996,-39.89531250000002],[-62.40185546875003,-40.19658203125002],[-62.24633789062494,-40.674609374999974],[-62.39501953124997,-40.89082031249997],[-62.95903320312493,-41.10966796875006],[-63.621777343749955,-41.15976562499996],[-64.86948242187503,-40.735839843750014],[-65.13339843749998,-40.88066406250003],[-64.98637695312496,-42.102050781249986],[-64.53774414062494,-42.25458984374998],[-64.57099609374998,-42.416015625],[-64.42041015625003,-42.43378906249998],[-64.10087890624993,-42.395117187500006],[-64.06118164062494,-42.266113281250014],[-64.228515625,-42.21826171874996],[-63.795556640624994,-42.113867187500006],[-63.6298828125,-42.28271484375003],[-63.61733398437502,-42.695800781249986],[-64.03476562499998,-42.88125],[-64.48784179687499,-42.51347656250006],[-64.97070312499997,-42.66630859375002],[-65.02690429687496,-42.75888671874996],[-64.31914062499999,-42.968945312500026],[-64.83994140624998,-43.18886718749998],[-65.25234374999997,-43.571875],[-65.26552734375,-44.2796875],[-65.64760742187502,-44.661425781250045],[-65.63876953125,-45.0078125],[-66.19013671874995,-44.96474609375002],[-66.94140625,-45.25732421875003],[-67.59956054687495,-46.05253906250003],[-67.5064453125,-46.44277343749995],[-66.77685546874994,-47.005859375],[-65.99853515625,-47.09375],[-65.73808593749999,-47.34492187499998],[-65.81430664062495,-47.63818359374996],[-66.22524414062502,-47.826757812500006],[-65.93422851562497,-47.826757812500006],[-65.81005859374997,-47.941113281250026],[-67.46630859375,-48.95175781250004],[-67.68486328125002,-49.2466796875],[-67.82597656249999,-49.91962890625005],[-68.2572265625,-50.104589843749984],[-68.66757812500003,-49.75253906250003],[-68.66162109374997,-49.93574218750005],[-68.97958984375,-50.003027343749984],[-68.59794921874996,-50.00947265624997],[-68.421875,-50.15791015625001],[-69.04477539062495,-50.49912109374998],[-69.35859374999993,-51.028125],[-69.20102539062498,-50.99365234375001],[-69.03530273437497,-51.48896484375002],[-69.46542968750003,-51.58447265625003],[-68.96533203125003,-51.67714843749999],[-68.443359375,-52.35664062500004],[-69.96025390624993,-52.00820312500002],[-71.91865234374995,-51.98955078125004],[-72.40766601562501,-51.54082031250002],[-72.34023437499997,-50.68183593749999],[-72.50981445312496,-50.607519531250034],[-73.15292968749998,-50.73828125000003],[-73.50126953124996,-50.125292968750024],[-73.55419921875,-49.463867187500014],[-73.46157226562497,-49.31386718750001],[-73.13525390625,-49.30068359374999],[-73.03364257812501,-49.014355468750004],[-72.65126953125,-48.84160156249998],[-72.582861328125,-48.47539062499999],[-72.35473632812497,-48.36582031250005],[-72.32832031250001,-48.11005859374998],[-72.517919921875,-47.87636718749998],[-72.34594726562497,-47.49267578124997],[-71.90498046875001,-47.201660156250014],[-71.94023437499999,-46.83125],[-71.69965820312501,-46.6513671875],[-71.87568359374998,-46.160546875],[-71.63154296874998,-45.95371093749998],[-71.74619140624998,-45.57890625],[-71.34931640624995,-45.33193359374995],[-71.5962890625,-44.97919921875004],[-72.04169921874998,-44.90419921875004],[-72.06372070312503,-44.771875],[-71.26113281250002,-44.763085937499966],[-71.15971679687496,-44.56025390625004],[-71.21259765624998,-44.44121093750003],[-71.82001953124993,-44.38310546875],[-71.68007812500002,-43.92958984374998],[-71.90498046875001,-43.34755859374998],[-71.750634765625,-43.237304687499986],[-72.14643554687498,-42.990039062499974],[-72.10820312499993,-42.25185546874995],[-71.75,-42.04677734375001],[-71.91127929687497,-41.650390624999986],[-71.93212890624994,-40.69169921874999],[-71.70898437499997,-40.381738281249994],[-71.81831054687493,-40.17666015624995],[-71.65976562499998,-40.02080078125],[-71.71992187499995,-39.63525390624997],[-71.53945312499997,-39.60244140624995],[-71.40156249999995,-38.93505859374996],[-70.858642578125,-38.60449218750003],[-71.16757812499998,-37.76230468749996],[-71.19218750000002,-36.84365234375004],[-71.05551757812498,-36.52373046874996],[-70.40478515625,-36.06171874999998],[-70.41572265625001,-35.52304687500002],[-70.55517578125,-35.246875],[-70.39316406250003,-35.146875],[-70.05205078124999,-34.30078124999997],[-69.85244140625,-34.224316406250026],[-69.81962890624999,-33.28378906249999],[-70.08486328125002,-33.20175781249998],[-70.02197265625,-32.88457031250002],[-70.36376953125,-32.08349609374997],[-70.25439453125,-31.957714843750026],[-70.585205078125,-31.569433593749963],[-70.51958007812493,-31.1484375],[-70.30908203124994,-31.02265625000004],[-70.15322265625,-30.360937499999963],[-69.95634765624996,-30.35820312500003],[-69.84428710937493,-30.175],[-69.95996093749997,-30.078320312500026],[-70.02680664062501,-29.324023437500017],[-69.82788085937497,-29.10322265624997],[-69.65693359374995,-28.413574218749986],[-69.17441406249998,-27.924707031250037],[-68.84633789062494,-27.153710937499994],[-68.59208984375002,-27.140039062499966],[-68.31865234374999,-26.973242187500006],[-68.59160156249999,-26.47041015624997],[-68.41450195312498,-26.153710937500023],[-68.59208984375002,-25.420019531250034],[-68.38422851562495,-25.091894531249977],[-68.56201171875,-24.74736328125003],[-68.25029296875002,-24.391992187500023],[-67.35620117187503,-24.033789062499963],[-67.00878906249994,-23.00136718750005],[-67.19487304687493,-22.821679687500037],[-66.99111328125,-22.509863281250006],[-66.71171874999999,-22.216308593749986],[-66.36518554687501,-22.113769531249957],[-66.32246093750001,-22.053125],[-66.28212890624997,-21.94746093750001],[-66.24760742187496,-21.83046875],[-66.22016601562495,-21.802539062499974],[-66.174658203125,-21.805664062499986],[-66.09858398437495,-21.83505859375002],[-66.05859375,-21.87949218750002],[-65.86015624999999,-22.019726562499983],[-65.77104492187493,-22.099609375000014],[-65.68618164062497,-22.11025390625005],[-65.51879882812497,-22.094531250000045],[-64.99262695312498,-22.109667968750017],[-64.60551757812499,-22.228808593750045],[-64.52363281250001,-22.37158203125],[-64.47773437499998,-22.485351562499986],[-64.44550781249998,-22.585351562500023],[-64.37397460937498,-22.761035156250017],[-64.32529296875,-22.82763671875],[-64.30791015624993,-22.7953125],[-64.26640625000002,-22.60332031249996],[-63.97612304687502,-22.072558593750003],[-63.92167968749993,-22.028613281250017],[-62.843359375,-21.997265625000026],[-62.62597656250003,-22.29042968749998],[-62.54155273437496,-22.349609374999957],[-62.37250976562498,-22.439160156249997],[-62.21416015624996,-22.612402343750034],[-61.798535156249955,-23.18203125],[-61.084716796875,-23.65644531250001]]]]},"properties":{"name":"Argentina","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[46.490625,38.90668945312498],[46.1144531250001,38.877783203125034],[45.977441406249994,39.24389648437503],[45.76630859375004,39.37846679687499],[45.78447265625002,39.54560546875001],[45.456835937500074,39.494482421875006],[45.15283203125003,39.58266601562502],[45.03164062500005,39.76513671874997],[44.76826171875004,39.70351562500005],[44.28925781250004,40.040380859375006],[43.66621093750004,40.12636718750002],[43.56933593750003,40.48237304687498],[43.72265624999997,40.71953124999999],[43.43945312500003,41.10712890625001],[44.077246093750006,41.182519531249994],[44.81132812500002,41.259375],[45.001367187499994,41.29096679687498],[45.188574218750006,41.14741210937504],[45.07050781250004,41.075585937499966],[45.5875,40.846923828125],[45.37890624999997,40.67358398437506],[45.45439453125002,40.532373046874966],[45.96464843750002,40.233789062499966],[45.8859375000001,40.024853515624955],[45.57978515625004,39.9775390625],[46.202050781249994,39.59448242187503],[46.48144531249997,39.55517578125003],[46.36523437500003,39.402490234374994],[46.584765625000074,39.22368164062499],[46.400292968749994,39.1921875],[46.490625,38.90668945312498]]]},"properties":{"name":"Armenia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-170.72626953125,-14.351171875],[-170.8205078125,-14.312109375],[-170.568115234375,-14.266796875000011],[-170.72626953125,-14.351171875]]]},"properties":{"name":"American Samoa","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[69.2824218750001,-49.05888671875002],[69.16718750000004,-48.88291015624996],[69.36875,-48.89042968749998],[69.2824218750001,-49.05888671875002]]],[[[69.18486328125002,-49.10957031250004],[69.59277343749997,-48.97099609375005],[69.64404296875003,-49.11738281250003],[69.40507812500002,-49.18173828125],[69.5423828125,-49.25566406250005],[70.32021484375005,-49.05859374999996],[70.55546875000007,-49.201464843750024],[70.38613281250005,-49.433984374999966],[70.16582031250002,-49.34296874999998],[69.75996093750004,-49.430175781249986],[69.98642578125006,-49.58164062500003],[70.2477539062501,-49.53066406250003],[70.12431640625002,-49.70439453124999],[69.153125,-49.5296875],[68.99296875000007,-49.704980468750016],[68.81474609375002,-49.69960937499999],[68.88339843750006,-49.16494140624995],[68.76953125000003,-49.06591796875003],[69.00244140624997,-48.661230468750006],[69.13613281250005,-48.86103515625003],[69.05214843750005,-49.08193359375001],[69.18486328125002,-49.10957031250004]]],[[[51.83457031250006,-46.43994140625],[51.65927734375006,-46.37363281249999],[51.7418945312501,-46.32685546874997],[51.83457031250006,-46.43994140625]]]]},"properties":{"name":"Fr. S. Antarctic Lands","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[-61.71606445312503,17.037011718749994],[-61.85966796874996,17.013330078124966],[-61.887109374999966,17.09814453125],[-61.81728515624994,17.168945312500057],[-61.71606445312503,17.037011718749994]]]},"properties":{"name":"Antigua and Barb.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[147.35605468750006,-43.396972656250014],[147.30888671875007,-43.50078125000002],[147.10498046875003,-43.43115234374996],[147.28388671875004,-43.278906250000034],[147.35605468750006,-43.396972656250014]]],[[[145.04296875000003,-40.78671875],[145.28300781250002,-40.76992187500002],[146.31748046875006,-41.16347656250001],[146.72343750000002,-41.07802734375001],[146.84814453124997,-41.16806640624996],[146.98984375000006,-40.99238281249997],[147.45478515625004,-41.00166015624998],[147.62167968750012,-40.844726562499986],[147.87294921875005,-40.87255859374997],[147.96875,-40.779589843750045],[148.215234375,-40.85488281250002],[148.34257812500007,-42.21533203124997],[148.21367187500002,-41.97001953125],[147.92441406250006,-42.5724609375],[147.94541015625006,-43.18183593749997],[147.7858398437501,-43.22001953125002],[147.69892578125004,-43.12255859374997],[147.64794921874997,-43.02060546874999],[147.8,-42.928125],[147.57382812500006,-42.84570312499997],[147.4523437500001,-43.03339843750001],[147.29794921875006,-42.790917968749994],[147.24501953125005,-43.21591796874999],[146.99697265625005,-43.15634765625002],[147.07734375000004,-43.27587890625003],[146.87392578125,-43.6125],[146.54853515625004,-43.50888671874999],[146.04316406250004,-43.547167968749974],[145.99443359375007,-43.37607421875002],[146.20800781249997,-43.31621093749999],[145.8732421875001,-43.29238281250002],[145.48759765625002,-42.92666015625004],[145.19882812500006,-42.23085937500004],[145.46826171874997,-42.492871093750026],[145.51660156249997,-42.3544921875],[145.33105468750003,-42.14707031250002],[145.23486328124997,-42.19697265624997],[145.23818359375,-42.01962890624999],[144.76611328125003,-41.39003906249998],[144.64609375000006,-40.980859375],[144.71855468750002,-40.67226562500002],[145.04296875000003,-40.78671875]]],[[[148.23691406250006,-40.515136718749986],[148.18779296875007,-40.592578125000045],[148.11728515625012,-40.52148437499996],[148.23691406250006,-40.515136718749986]]],[[[144.784375,-40.506738281249966],[144.74804687499997,-40.589453125000034],[144.7833984375001,-40.434863281249974],[144.784375,-40.506738281249966]]],[[[148.32626953125006,-40.30693359375003],[148.40400390625004,-40.486523437500026],[148.02011718750012,-40.40419921874995],[148.32626953125006,-40.30693359375003]]],[[[148.000390625,-39.75761718750003],[148.29736328125003,-39.985742187499966],[148.31357421875012,-40.173535156250026],[148.10566406250004,-40.26210937499995],[147.76718750000012,-39.87031249999998],[148.000390625,-39.75761718750003]]],[[[143.92792968750004,-40.116113281249966],[143.83857421875004,-39.90410156250003],[144.00078125000007,-39.580175781250034],[144.14101562500005,-39.953808593750026],[143.92792968750004,-40.116113281249966]]],[[[145.31445312500003,-38.49082031249996],[145.35507812500012,-38.55703124999995],[145.12841796875003,-38.52763671875],[145.31445312500003,-38.49082031249996]]],[[[137.59648437500007,-35.73867187499998],[137.92890625000004,-35.72607421875],[138.12343750000005,-35.85234375],[137.67089843749997,-35.897949218750014],[137.44843750000004,-36.07480468749999],[137.20957031250012,-35.982421875],[136.7550781250001,-36.03310546875002],[136.540625,-35.89013671875003],[136.63867187499997,-35.74882812500002],[137.33408203125006,-35.59248046875004],[137.58496093749997,-35.620214843750006],[137.59648437500007,-35.73867187499998]]],[[[153.53876953125004,-27.436425781250037],[153.42656250000002,-27.70644531249998],[153.43544921875,-27.40537109375002],[153.53876953125004,-27.436425781250037]]],[[[113.18300781250005,-26.053125],[112.96425781250005,-25.78310546875001],[112.94707031250002,-25.531542968750017],[113.18300781250005,-26.053125]]],[[[153.07744140625002,-25.75078125],[152.97666015625012,-25.551367187499963],[153.03808593750003,-25.193164062500003],[153.22753906249997,-25.00576171875001],[153.14375,-24.814843750000023],[153.25693359375012,-24.72890625],[153.35019531250012,-25.063085937499963],[153.07744140625002,-25.75078125]]],[[[151.14658203125006,-23.49082031250002],[151.24013671875,-23.529687500000037],[151.23828124999997,-23.77578125],[151.03330078125006,-23.530175781250037],[151.14658203125006,-23.49082031250002]]],[[[115.44619140625005,-20.78779296875001],[115.31806640625004,-20.850585937500014],[115.43457031249997,-20.66796875000003],[115.44619140625005,-20.78779296875001]]],[[[149.04375,-20.29150390624997],[148.93886718750005,-20.283691406249986],[148.98105468750012,-20.153515625000026],[149.04375,-20.29150390624997]]],[[[146.27832031249997,-18.23125],[146.29882812499997,-18.48476562500005],[146.09882812500004,-18.251757812500003],[146.27832031249997,-18.23125]]],[[[139.45917968750004,-17.11455078124996],[139.49277343750006,-16.990429687499983],[139.57089843750006,-17.09443359375004],[139.45917968750004,-17.11455078124996]]],[[[139.50781250000003,-16.57304687499996],[139.1595703125,-16.74169921875003],[139.29296875000003,-16.467285156249986],[139.58789062499997,-16.39521484374997],[139.69775390624997,-16.514941406250017],[139.50781250000003,-16.57304687499996]]],[[[137.09365234375005,-15.778125],[136.94267578125002,-15.711718749999989],[137.00957031250007,-15.594824218749977],[137.09365234375005,-15.778125]]],[[[124.59726562500006,-15.40195312500002],[124.52421875000002,-15.421484375],[124.51933593750002,-15.26748046874998],[124.59726562500006,-15.40195312500002]]],[[[125.19882812500006,-14.57949218749998],[125.0912109375,-14.59169921874998],[125.15996093750002,-14.456054687499972],[125.19882812500006,-14.57949218749998]]],[[[136.71464843750002,-13.803906249999983],[136.89082031250004,-13.786621093750014],[136.74531250000004,-14.072656250000023],[136.95078125000006,-14.184277343750026],[136.89433593750002,-14.293066406249977],[136.33544921875003,-14.211816406250037],[136.42470703125,-13.864843749999963],[136.6556640625,-13.675878906250006],[136.71464843750002,-13.803906249999983]]],[[[136.23740234375006,-13.824511718750003],[136.12265625000012,-13.816601562499983],[136.21542968750012,-13.664746093750054],[136.23740234375006,-13.824511718750003]]],[[[136.33867187500007,-11.602343749999989],[136.18027343750006,-11.676757812499957],[136.47929687500002,-11.465917968749991],[136.33867187500007,-11.602343749999989]]],[[[130.45927734375007,-11.679296875000034],[130.60625,-11.816601562500026],[130.04326171875007,-11.787304687500011],[130.19755859375007,-11.658203125],[130.15283203124997,-11.477539062499972],[130.29492187499997,-11.33681640624998],[130.45927734375007,-11.679296875000034]]],[[[130.6188476562501,-11.376074218749991],[131.02304687500006,-11.334375],[131.26826171875004,-11.18984375],[131.53857421874997,-11.436914062500037],[130.95097656250007,-11.926464843750026],[130.51191406250004,-11.617871093749955],[130.38457031250002,-11.1921875],[130.6188476562501,-11.376074218749991]]],[[[136.59853515625,-11.378906249999943],[136.52656250000004,-11.438867187499994],[136.78027343749997,-11.0125],[136.59853515625,-11.378906249999943]]],[[[132.59335937500006,-11.302832031249991],[132.48378906250005,-11.037304687499983],[132.57880859375004,-10.968847656249977],[132.59335937500006,-11.302832031249991]]],[[[143.17890625000004,-11.954492187499966],[143.11025390625,-12.303515625000017],[143.40156250000004,-12.639941406249989],[143.5866210937501,-13.443652343750031],[143.54843750000012,-13.74101562499996],[143.75634765625003,-14.348828124999969],[143.96181640625005,-14.462890625000028],[144.473046875,-14.231835937500023],[144.64804687500006,-14.492480468750017],[145.28769531250006,-14.943164062499989],[145.42607421875002,-16.406152343749966],[145.75478515625,-16.879492187500034],[145.91210937499997,-16.9125],[146.12587890625005,-17.63525390625],[146.03222656249997,-18.272851562500037],[146.3332031250001,-18.55371093749997],[146.38339843750006,-18.97705078124997],[147.13876953125006,-19.39316406250002],[147.41855468750012,-19.378125],[147.7423828125001,-19.770117187499977],[148.759375,-20.28955078125003],[148.88476562499997,-20.480859375],[148.72998046874997,-20.4677734375],[148.68369140625012,-20.58017578124999],[149.20488281250007,-21.125097656249977],[149.45410156249997,-21.57871093750002],[149.70390625000002,-22.440527343750006],[149.82246093750004,-22.389843749999983],[149.97441406250007,-22.55068359374998],[149.94189453125003,-22.30810546875003],[150.07617187500003,-22.16445312499998],[150.54130859375002,-22.55908203125],[150.56855468750004,-22.38398437500004],[150.67246093750012,-22.418164062499983],[150.84316406250005,-23.4580078125],[151.15380859375003,-23.784082031249994],[151.83164062500006,-24.12294921875001],[152.12988281250003,-24.59755859374998],[152.45634765625007,-24.802441406249983],[152.65429687499997,-25.201953125000017],[152.91347656250005,-25.432128906250014],[152.98496093750012,-25.816210937500003],[153.16494140625,-25.964160156250045],[153.11679687500006,-27.194433593750034],[153.57568359375003,-28.24052734374999],[153.6168945312501,-28.673046875],[153.03056640625002,-30.563378906249994],[152.94394531250012,-31.43486328124999],[152.5592773437501,-32.045703125],[152.4704101562501,-32.439062500000034],[152.13652343750002,-32.678125],[152.1642578125001,-32.75742187499996],[151.812890625,-32.90107421875001],[151.29208984375012,-33.580957031249966],[151.28027343750003,-33.92666015625005],[151.12480468750007,-34.00527343749998],[151.23154296875006,-34.0296875],[150.8712890625001,-34.49912109374996],[150.80458984375,-35.01289062500001],[150.19531249999997,-35.83359374999996],[149.93271484375012,-37.528515625000026],[149.480859375,-37.77119140625],[147.87675781250002,-37.93417968749998],[146.8568359375,-38.663476562499966],[146.21748046875004,-38.72744140625004],[146.33662109375004,-38.89423828125],[146.46660156250007,-38.84033203125003],[146.40000000000012,-39.14550781250003],[146.1583984375001,-38.86572265624996],[145.93535156250002,-38.90175781250002],[145.79082031250007,-38.66699218749997],[145.39726562500002,-38.53535156249998],[145.54218750000004,-38.39384765625002],[145.4757812500001,-38.24375],[145.29277343750002,-38.237597656249974],[144.95957031250012,-38.500781250000045],[144.71777343749997,-38.34033203125004],[144.91142578125007,-38.34404296874999],[145.11992187500007,-38.091308593750014],[144.89130859375004,-37.899804687499994],[144.39550781250003,-38.13691406249998],[144.6652343750001,-38.20996093750003],[143.53896484375005,-38.82089843749998],[142.45585937500002,-38.38632812499999],[141.725,-38.27138671875002],[141.5939453125001,-38.38779296875002],[141.42421875,-38.36347656250004],[141.0109375000001,-38.07695312500003],[140.39042968750007,-37.89667968749998],[139.78427734375012,-37.24580078124998],[139.85732421875,-36.662109375],[139.72900390625003,-36.37138671875002],[138.9689453125001,-35.58076171874997],[139.17802734375007,-35.52304687500002],[139.289453125,-35.61132812499997],[139.28251953125002,-35.375390624999966],[138.521875,-35.6423828125],[138.184375,-35.612695312499994],[138.5111328125,-35.02441406249996],[138.48994140625004,-34.76357421875002],[138.0892578125,-34.16982421875002],[137.69169921875002,-35.14296875000004],[136.88359375000007,-35.23974609375004],[137.01425781250012,-34.91582031250003],[137.39101562500005,-34.91328124999997],[137.49384765625004,-34.16113281250003],[137.9318359375001,-33.57910156250003],[137.85234375000007,-33.20078124999996],[137.99257812500005,-33.094238281250014],[137.78320312500003,-32.578125],[137.79091796875,-32.82324218749996],[137.44228515625,-33.1935546875],[137.23730468750003,-33.62949218749999],[136.43066406249997,-34.02998046875004],[135.891015625,-34.660937499999974],[135.96972656249997,-34.98183593749998],[135.7923828125,-34.863281249999986],[135.64755859375006,-34.93964843750001],[135.12304687499997,-34.58574218750003],[135.21679687499997,-34.48730468749996],[135.45,-34.58105468749996],[135.21894531250004,-33.959765625000045],[134.88876953125012,-33.62636718749998],[134.79101562499997,-33.32832031250001],[134.60771484375002,-33.19013671875001],[134.30126953124997,-33.16503906249996],[134.17353515625004,-32.979101562500006],[134.10039062500007,-32.748632812500034],[134.22714843750006,-32.73056640624999],[134.23417968750007,-32.54853515625004],[133.66533203125007,-32.207226562500054],[133.21210937500004,-32.18378906249998],[132.75742187500012,-31.95625],[132.21464843750002,-32.00712890624996],[131.14365234375006,-31.49570312500005],[130.78300781250002,-31.604003906249986],[129.1876953125001,-31.659960937500017],[127.31982421874997,-32.2640625],[125.91718750000004,-32.296972656250034],[124.75878906250003,-32.882714843749994],[124.24375,-33.01523437499999],[123.50683593749997,-33.916210937500054],[122.15097656250006,-33.99179687499999],[122.06113281250006,-33.874414062499966],[121.40507812500007,-33.826757812500034],[119.85410156250012,-33.97470703124998],[119.45058593750005,-34.368261718750034],[118.89531250000007,-34.47988281250004],[118.13554687500002,-34.98662109374999],[117.58193359375005,-35.09775390624998],[116.51718750000012,-34.98789062499998],[115.98671875000005,-34.795019531250034],[115.56503906250012,-34.42578125000003],[115.00878906250003,-34.25585937499997],[114.9938476562501,-33.51533203125],[115.3587890625,-33.63994140624999],[115.68300781250005,-33.19287109375003],[115.6984375000001,-31.694531250000054],[115.07792968750007,-30.560449218750023],[114.85683593750005,-29.14296875],[114.16513671875012,-28.08066406250002],[114.028125,-27.34726562499999],[113.18476562500004,-26.182226562499963],[113.32324218749997,-26.243847656249997],[113.35605468750012,-26.080468750000023],[113.58164062500006,-26.558105468749986],[113.73369140625002,-26.59511718749998],[113.83642578125003,-26.50058593749999],[113.85283203125007,-26.33212890625005],[113.39531250000002,-25.71328125],[113.4513671875001,-25.599121093750014],[113.7130859375001,-25.83076171875004],[113.72373046875006,-26.129785156250037],[113.85390625,-26.01445312499999],[113.99199218750007,-26.32148437500001],[114.09033203124997,-26.393652343749963],[114.21572265625,-26.289453124999966],[114.2142578125,-25.851562500000014],[113.41767578125004,-24.435644531250034],[113.48984375000012,-23.869628906250014],[113.7570312500001,-23.418164062500054],[113.79511718750004,-22.91455078125003],[113.68281250000004,-22.637792968749963],[114.02285156250005,-21.881445312499977],[114.12392578125005,-21.828613281249957],[114.14160156250003,-22.483105468749983],[114.37773437500007,-22.341503906249997],[114.70927734375002,-21.82343749999997],[115.45615234375012,-21.49169921874997],[116.0109375000001,-21.030371093749963],[116.7067382812501,-20.653808593749986],[117.40625,-20.72119140625003],[118.19921875000003,-20.37519531249997],[118.75146484374997,-20.261914062499983],[119.10449218749997,-19.995312500000026],[119.58593750000003,-20.03828125],[120.99794921875,-19.604394531249966],[121.33769531250002,-19.31992187500002],[121.83378906250002,-18.477050781249986],[122.34541015625004,-18.11191406250002],[122.14746093749997,-17.54902343750001],[122.2609375000001,-17.135742187500014],[122.72041015625004,-16.78769531249999],[122.97070312499997,-16.436816406250003],[123.56308593750006,-17.520898437499966],[123.59355468750007,-17.03037109375005],[123.83105468750003,-17.120800781249997],[123.8744140625,-16.918652343750026],[123.4904296875001,-16.49072265624997],[123.62597656249997,-16.416308593750003],[123.60703125000006,-16.224023437499994],[123.72890625,-16.192480468749963],[123.85917968750007,-16.38232421875],[124.04443359374997,-16.264941406249974],[124.30039062500006,-16.388281249999977],[124.77197265624997,-16.40263671874996],[124.40488281250006,-16.298925781249977],[124.41640625,-16.133496093750026],[124.5768554687501,-16.11367187499998],[124.64853515625012,-15.870214843750034],[124.50429687500005,-15.972460937499989],[124.38164062500002,-15.758203125000037],[124.43955078125012,-15.493554687500037],[124.56162109375012,-15.496289062499969],[124.69257812500004,-15.273632812499997],[125.06298828125003,-15.44228515624998],[125.0729492187501,-15.306738281249991],[124.90917968750003,-15.310058593749957],[124.83906250000004,-15.160742187500006],[125.03818359375012,-15.004101562499969],[125.35566406250004,-15.119824218750011],[125.17871093749997,-14.714746093749994],[125.57978515625004,-14.483203124999989],[125.62773437500002,-14.256640625000017],[125.70458984374997,-14.29140625],[125.66162109375003,-14.529492187500011],[125.81953125000004,-14.469140624999966],[125.890625,-14.61796875],[126.0207031250001,-14.49453125],[126.0539062500001,-13.977246093750026],[126.1842773437501,-14.00205078125002],[126.25849609375004,-14.163574218749972],[126.403125,-14.018945312499994],[126.5697265625,-14.160937499999974],[126.7806640625,-13.955175781249977],[126.77558593750004,-13.788476562500037],[126.90322265625,-13.744140624999972],[127.45761718750006,-14.031445312499969],[128.18046875000007,-14.711621093749983],[128.06943359375012,-15.329296874999969],[128.15546875000004,-15.225585937499972],[128.25468750000002,-15.298535156250011],[128.175,-15.043164062500026],[128.57578125000006,-14.774511718750006],[129.05820312500012,-14.884375],[129.21582031249997,-15.160253906249991],[129.26757812500003,-14.871484375000051],[129.63476562499997,-15.139746093749991],[129.637109375,-14.850976562500037],[129.84873046875012,-14.828906249999989],[129.60468750000004,-14.647070312499977],[129.69794921875004,-14.557421875000017],[129.37871093750002,-14.39248046874998],[129.70986328125,-13.979980468749972],[129.83886718749997,-13.572949218749997],[130.25976562500003,-13.30224609375],[130.1349609375001,-13.145507812499957],[130.1681640625001,-12.957421875],[130.39990234374997,-12.68789062499999],[130.61748046875007,-12.646875],[130.62265625000006,-12.43105468749998],[130.8673828125001,-12.557812499999955],[130.87382812500007,-12.367187500000028],[131.29160156250006,-12.067871093749972],[131.43828125000002,-12.27695312500002],[132.06406250000006,-12.28076171875],[132.25322265625007,-12.186035156249972],[132.41103515625,-12.295117187499997],[132.51054687500002,-12.134863281250034],[132.71279296875,-12.1234375],[132.63046875000012,-12.035156249999972],[132.67421875000005,-11.649023437499991],[132.47519531250006,-11.491503906249974],[132.07285156250006,-11.474707031250006],[131.82246093750004,-11.302441406249997],[131.96152343750006,-11.180859375000011],[132.15546875000004,-11.311132812499991],[132.33398437499997,-11.223535156249994],[132.6828125000001,-11.505566406249997],[132.96103515625012,-11.407324218749963],[133.18525390625004,-11.705664062499991],[133.90419921875,-11.832031249999972],[134.4173828125,-12.052734375],[134.73027343750002,-11.984375],[135.02968750000005,-12.19375],[135.2179687500001,-12.221679687499957],[135.92246093750012,-11.825781250000034],[135.70439453125007,-12.209863281250037],[136.00849609375004,-12.19140625],[136.08183593750007,-12.422460937500006],[136.26064453125,-12.433789062499997],[136.32851562500005,-12.305566406249994],[136.24990234375,-12.173046875],[136.44335937499997,-11.951464843749974],[136.7194335937501,-12.226464843749952],[136.89746093749997,-12.243554687499966],[136.94746093750004,-12.34990234374996],[136.53701171875,-12.784277343749991],[136.59433593750012,-13.003808593750051],[136.46103515625006,-13.225195312500034],[136.29414062500004,-13.137988281250031],[135.92734375000012,-13.304296874999977],[135.95449218750005,-13.934863281250017],[135.40517578125005,-14.758203124999966],[135.4533203125001,-14.923144531250003],[136.20537109375002,-15.403417968749963],[136.29140625000005,-15.570117187500003],[136.70488281250007,-15.685253906250011],[136.78466796874997,-15.89423828125004],[137.00214843750004,-15.878320312499994],[137.70371093750006,-16.233007812499963],[138.24501953125005,-16.718359374999977],[139.00986328125006,-16.899316406249994],[139.2484375,-17.328613281249957],[140.03583984375004,-17.702636718749957],[140.51113281250005,-17.62451171875003],[140.83046875,-17.414453125000037],[141.29140625,-16.46347656250002],[141.62548828124997,-15.056640625000014],[141.52294921875003,-14.470117187499994],[141.59433593750006,-14.152832031250014],[141.47255859375,-13.797558593750011],[141.64541015625,-13.259082031250003],[141.61357421875002,-12.943457031250006],[141.92978515625006,-12.73984375],[141.67773437500003,-12.491406250000011],[141.68857421875012,-12.351074218750028],[141.87050781250005,-11.9755859375],[141.96113281250004,-12.054296874999963],[142.168359375,-10.946582031249974],[142.45644531250005,-10.707324218749989],[142.60507812500012,-10.748242187499983],[142.55273437500003,-10.874414062500023],[142.7796875,-11.115332031249977],[142.87255859374997,-11.821386718750034],[143.17890625000004,-11.954492187499966]]],[[[142.2748046875,-10.704785156250011],[142.19140624999997,-10.762011718750031],[142.1310546875001,-10.640625],[142.19794921875004,-10.59199218750004],[142.2748046875,-10.704785156250011]]]]},"properties":{"name":"Australia","childNum":30}},{"geometry":{"type":"Polygon","coordinates":[[[16.953125,48.598828125],[16.86542968750001,48.3869140625],[17.147363281250023,48.00595703125],[17.06660156250001,47.707568359374996],[16.421289062500023,47.674462890624994],[16.676562500000017,47.536035156249994],[16.44287109375,47.39951171875],[16.453417968750017,47.006787109375],[16.093066406250017,46.86328125],[15.957617187500006,46.677636718749994],[14.893261718750011,46.605908203125],[14.5498046875,46.399707031249996],[13.7,46.520263671875],[13.490039062500017,46.555566406249994],[13.3515625,46.557910156249996],[13.16875,46.57265625],[12.479199218750011,46.672509765624994],[12.38828125,46.70263671875],[12.330078125,46.759814453124996],[12.267968750000023,46.835888671875],[12.154101562500017,46.93525390625],[12.130761718750023,46.98476562499999],[12.16552734375,47.028173828125],[12.201269531250006,47.060888671875],[12.197167968750023,47.075],[12.16943359375,47.08212890625],[11.775683593750017,46.986083984375],[11.527539062500011,46.997412109375],[11.433203125,46.983056640624994],[11.244433593750017,46.97568359375],[11.133886718750006,46.936181640624994],[11.0634765625,46.859130859375],[11.025097656250011,46.79697265625],[10.993261718750006,46.777001953124994],[10.92734375,46.769482421875],[10.828906250000017,46.775244140625],[10.759765625,46.793310546875],[10.689257812500017,46.84638671875],[10.579785156250011,46.8537109375],[10.479394531250023,46.855126953124994],[10.452832031250011,46.86494140625],[10.45458984375,46.8994140625],[10.414941406250023,46.964404296874996],[10.349414062500017,46.98476562499999],[10.133496093750011,46.851513671875],[9.580273437500011,47.057373046875],[9.527539062500011,47.270751953125],[9.625878906250023,47.467041015625],[9.524023437500006,47.52421875],[9.748925781250023,47.575537109375],[9.839160156250017,47.552294921874996],[9.971582031250023,47.505322265625],[10.034082031250023,47.473583984375],[10.059863281250017,47.449072265625],[10.066308593750023,47.393359375],[10.200292968750006,47.363427734374994],[10.183007812500023,47.27880859375],[10.369140625,47.366064453125],[10.40390625,47.4169921875],[10.439453125,47.5515625],[10.482812500000023,47.541796875],[10.65869140625,47.547216796875],[10.741601562500023,47.52412109375],[10.873046875,47.52021484375],[11.0419921875,47.393115234374996],[12.185644531250006,47.61953125],[12.203808593750011,47.646728515625],[12.196875,47.70908203125],[12.209277343750017,47.71826171875],[12.268359375000017,47.702734375],[12.353540736607165,47.70264787946429],[12.492553013392856,47.68551897321428],[12.685839843750017,47.669335937499994],[12.771386718750023,47.639404296875],[12.796191406250017,47.60703125],[12.781152343750023,47.5904296875],[12.7828125,47.56416015625],[12.809375,47.5421875],[12.87890625,47.5064453125],[12.968066406250017,47.47568359375],[13.014355468750011,47.478076171874996],[13.031542968750017,47.5080078125],[13.047949218750006,47.579150390624996],[13.054101562500023,47.655126953125],[12.897656250000011,47.721875],[12.953515625000023,47.890625],[12.760351562500006,48.106982421874996],[13.215234375000023,48.301904296874994],[13.322851562500006,48.33125],[13.409375,48.394140625],[13.459863281250023,48.56455078125],[13.4716796875,48.571826171874996],[13.486621093750017,48.581835937499996],[13.636623883928596,48.580904017857144],[13.785351562500011,48.587451171874996],[13.798828125,48.6216796875],[13.802929687500011,48.747509765625],[13.814746093750017,48.766943359375],[14.049121093750017,48.602490234375],[14.691308593750023,48.59921875],[15.066796875000023,48.997851562499996],[16.057226562500006,48.754785156249994],[16.543554687500006,48.796240234375],[16.953125,48.598828125]]]},"properties":{"name":"Austria","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[46.1144531250001,38.877783203125034],[45.4796875000001,39.00625],[44.81718750000002,39.65043945312496],[44.76826171875004,39.70351562500005],[45.03164062500005,39.76513671874997],[45.15283203125003,39.58266601562502],[45.456835937500074,39.494482421875006],[45.78447265625002,39.54560546875001],[45.76630859375004,39.37846679687499],[45.977441406249994,39.24389648437503],[46.1144531250001,38.877783203125034]]],[[[48.572851562500006,41.84448242187503],[49.45673828125004,40.79985351562502],[49.77597656250006,40.583984375],[50.18251953125005,40.50478515625002],[50.3659179687501,40.279492187499955],[49.91884765625005,40.31640625000003],[49.55117187499999,40.19414062499999],[49.3244140625001,39.60834960937501],[49.36279296875003,39.349560546874955],[49.16533203125002,39.03027343750003],[49.013476562500074,39.13398437500001],[48.85449218750003,38.83881835937501],[48.86875,38.43549804687498],[48.59267578125005,38.41108398437498],[47.99648437499999,38.85375976562503],[48.292089843750006,39.01884765624999],[48.10439453125005,39.241113281249994],[48.322167968749994,39.39907226562502],[47.995898437500074,39.683935546875034],[46.490625,38.90668945312498],[46.400292968749994,39.1921875],[46.584765625000074,39.22368164062499],[46.36523437500003,39.402490234374994],[46.48144531249997,39.55517578125003],[46.202050781249994,39.59448242187503],[45.57978515625004,39.9775390625],[45.8859375000001,40.024853515624955],[45.96464843750002,40.233789062499966],[45.45439453125002,40.532373046874966],[45.37890624999997,40.67358398437506],[45.5875,40.846923828125],[45.07050781250004,41.075585937499966],[45.188574218750006,41.14741210937504],[45.001367187499994,41.29096679687498],[45.2171875,41.423193359375006],[45.28095703125004,41.449560546875034],[46.086523437500006,41.183837890625],[46.43095703125002,41.077050781249994],[46.534375,41.08857421875004],[46.62636718750005,41.15966796875006],[46.66240234375002,41.24550781250002],[46.67255859375004,41.28681640625001],[46.61894531250002,41.34375],[46.30546875000002,41.507714843749994],[46.18427734375004,41.70214843749997],[46.42988281250004,41.890966796875006],[46.74931640625002,41.812597656250006],[47.31767578125002,41.28242187500001],[47.79101562499997,41.19926757812502],[48.572851562500006,41.84448242187503]]]]},"properties":{"name":"Azerbaijan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[30.553613281250023,-2.400097656250011],[30.53369140625,-2.42626953125],[30.441992187500006,-2.613476562500011],[30.424218750000023,-2.6416015625],[30.47333984375001,-2.6943359375],[30.42402343750001,-2.824023437500003],[30.433496093750023,-2.87451171875],[30.515039062500023,-2.917578125],[30.604296875000017,-2.935253906250011],[30.70947265625,-2.977246093750011],[30.7802734375,-2.98486328125],[30.811132812500006,-3.116406250000011],[30.79023437500001,-3.274609375000011],[30.4,-3.65390625],[29.947265625,-4.307324218750011],[29.7177734375,-4.455859375],[29.403222656250023,-4.449316406250006],[29.211816406250023,-3.833789062500003],[29.224414062500017,-3.053515625],[29.01435546875001,-2.72021484375],[29.10205078125,-2.595703125],[29.390234375,-2.80859375],[29.698046875000017,-2.794726562500003],[29.8681640625,-2.71640625],[29.93017578125,-2.339550781250011],[30.117285156250006,-2.416601562500006],[30.408496093750017,-2.31298828125],[30.553613281250023,-2.400097656250011]]]},"properties":{"name":"Burundi","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[5.693554687500011,50.774755859375006],[5.993945312500017,50.75043945312504],[6.340917968750006,50.451757812500034],[6.116503906250045,50.120996093749966],[6.08906250000004,50.15458984374996],[6.054785156249977,50.154296875],[5.976269531250068,50.167187499999955],[5.866894531250068,50.08281250000002],[5.817382812500028,50.01269531250003],[5.7880859375,49.96123046875002],[5.744042968749994,49.91962890624998],[5.789746093749983,49.53828125000001],[5.50732421875,49.51088867187502],[4.867578125000051,49.78813476562502],[4.818652343750045,50.153173828125034],[4.545019531250063,49.96025390624999],[4.149316406250023,49.971582031249994],[4.174609375000017,50.24648437500005],[3.689355468750023,50.30605468750002],[3.595410156250068,50.47734374999999],[3.27333984375008,50.53154296875002],[3.10683593750008,50.779443359374994],[2.759375,50.750634765624994],[2.52490234375,51.097119140624955],[3.35009765625,51.37768554687503],[3.43251953125008,51.24575195312505],[3.902050781250011,51.20766601562502],[4.226171875000034,51.38647460937503],[5.03095703125004,51.46909179687498],[5.214160156250045,51.278955078124966],[5.796484375000034,51.153076171875],[5.693554687500011,50.774755859375006]]]},"properties":{"name":"Belgium","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[3.595410156250011,11.6962890625],[3.553906250000011,11.631884765624989],[3.490527343750017,11.49921875],[3.48779296875,11.395410156249994],[3.638867187500011,11.176855468749991],[3.65625,11.154589843749989],[3.6953125,11.1203125],[3.71640625,11.07958984375],[3.7568359375,10.76875],[3.83447265625,10.607421875],[3.771777343750017,10.417626953124994],[3.646582031250006,10.408984374999989],[3.60205078125,10.004541015624994],[3.3251953125,9.778466796874994],[3.044921875,9.083837890624991],[2.774804687500023,9.048535156249997],[2.703125,8.371826171875],[2.68603515625,7.873730468749997],[2.719335937500006,7.616259765624989],[2.7509765625,7.541894531249994],[2.78515625,7.476855468749989],[2.783984375000017,7.443408203124989],[2.765820312500011,7.422509765624994],[2.75048828125,7.395068359374989],[2.756738281250023,7.067919921874989],[2.721386718750011,6.980273437499989],[2.731738281250017,6.852832031249989],[2.7529296875,6.771630859374994],[2.774609375000011,6.711718749999989],[2.753710937500017,6.661767578124994],[2.735644531250017,6.595703125],[2.706445312500023,6.369238281249991],[1.62265625,6.216796875],[1.777929687500006,6.294628906249997],[1.530957031250011,6.992431640625],[1.624707031250011,6.997314453125],[1.600195312500006,9.050048828125],[1.3857421875,9.361669921874991],[1.330078125,9.996972656249994],[0.763378906250011,10.386669921874997],[0.900488281250006,10.993261718749991],[1.4267578125,11.447119140624991],[1.980371093750023,11.418408203124997],[2.38916015625,11.897070312499991],[2.366015625000017,12.221923828125],[2.805273437500006,12.383837890624989],[3.595410156250011,11.6962890625]]]},"properties":{"name":"Benin","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[0.217480468750011,14.911474609374991],[0.163867187500017,14.497216796874994],[0.382519531250011,14.245800781249997],[0.42919921875,13.972119140624997],[0.6181640625,13.703417968750003],[1.201171875,13.357519531249991],[0.988476562500011,13.36484375],[0.9873046875,13.041894531249994],[1.56494140625,12.635400390624994],[2.104589843750006,12.701269531249991],[2.226269531250011,12.466064453125],[2.072949218750011,12.309375],[2.38916015625,11.897070312499991],[1.980371093750023,11.418408203124997],[1.4267578125,11.447119140624991],[0.900488281250006,10.993261718749991],[0.49267578125,10.954980468749994],[-0.068603515625,11.115625],[-0.299462890624994,11.166894531249994],[-0.627148437499983,10.927392578124994],[-1.04248046875,11.010058593749989],[-2.829931640624977,10.998388671874991],[-2.914892578124977,10.592333984374989],[-2.791162109374994,10.432421874999989],[-2.780517578125,9.745849609375],[-2.765966796874977,9.658056640624991],[-2.706201171874994,9.533935546875],[-2.695849609374989,9.481347656249994],[-2.7171875,9.457128906249991],[-2.7666015625,9.424707031249994],[-2.816748046874977,9.425830078124989],[-2.875146484374994,9.500927734374997],[-2.90087890625,9.534619140624997],[-2.948144531249994,9.610742187499994],[-2.98828125,9.687353515624991],[-3.042626953124994,9.720898437499997],[-3.095800781249977,9.752099609374994],[-3.160693359374989,9.849169921874989],[-3.223535156249994,9.895458984374997],[-3.289697265624994,9.882226562499994],[-3.581152343749977,9.92431640625],[-3.790625,9.9171875],[-4.18115234375,9.78173828125],[-4.267187499999977,9.743261718749991],[-4.332226562499983,9.645703125],[-4.406201171874983,9.647998046874989],[-4.526611328125,9.723486328124991],[-4.625830078124977,9.713574218749997],[-4.721777343749977,9.756542968749997],[-5.262304687499977,10.319677734374991],[-5.523535156249977,10.426025390625],[-5.490478515625,11.042382812499994],[-5.250244140625,11.375781249999989],[-5.288134765624989,11.827929687499989],[-4.699316406249977,12.076171875],[-4.4287109375,12.337597656249997],[-4.480615234374994,12.672216796874991],[-4.227099609374989,12.793701171875],[-4.328710937499977,13.119042968749994],[-4.151025390624994,13.306201171875003],[-3.947314453124989,13.402197265624991],[-3.527636718749989,13.182714843749991],[-3.3017578125,13.28076171875],[-3.248632812499977,13.658349609374994],[-2.950830078124994,13.6484375],[-2.873925781249994,13.950732421875003],[-2.586718749999989,14.227587890625003],[-2.113232421874983,14.16845703125],[-1.97304687499999,14.45654296875],[-1.049560546875,14.81953125],[-0.760449218749983,15.047753906249994],[-0.235888671874989,15.059423828124991],[0.217480468750011,14.911474609374991]]]},"properties":{"name":"Burkina Faso","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[91.94921875000003,21.50805664062503],[91.85947265625012,21.532958984375057],[91.90771484374997,21.722949218750017],[91.94921875000003,21.50805664062503]]],[[[91.87382812500002,21.832128906249977],[91.8375976562501,21.750244140625],[91.85068359375012,21.927050781250045],[91.87382812500002,21.832128906249977]]],[[[91.15078125000005,22.175195312499966],[91.04472656250002,22.10517578125001],[91.0794921875,22.519726562499983],[91.15078125000005,22.175195312499966]]],[[[91.55673828125006,22.38222656250005],[91.41132812500004,22.475683593750006],[91.45605468749997,22.61650390624999],[91.55673828125006,22.38222656250005]]],[[[90.77763671875007,22.089306640624983],[90.51503906250005,22.06513671875001],[90.68046875000007,22.327490234375006],[90.50292968749997,22.835351562499994],[90.59648437500002,22.863525390625057],[90.86816406250003,22.48486328125],[90.77763671875007,22.089306640624983]]],[[[88.94072265625002,26.24536132812497],[88.97041015625004,26.250878906250023],[88.95195312500002,26.412109375],[89.01865234375012,26.410253906249977],[89.28925781250004,26.03759765625],[89.54990234375006,26.005273437499994],[89.57275390625003,26.13232421875003],[89.67089843750003,26.21381835937504],[89.8229492187501,25.94140625000003],[89.82490234375004,25.56015625],[89.80087890625012,25.33613281250001],[89.81406250000006,25.305371093749955],[89.86630859375012,25.293164062499955],[90.11962890625003,25.21997070312497],[90.61308593750002,25.16772460937497],[92.04970703125005,25.16948242187499],[92.46835937500006,24.94414062499999],[92.38496093750004,24.848779296875023],[92.25126953125007,24.895068359375045],[92.22832031250002,24.88134765625],[92.22666015625012,24.77099609374997],[92.11748046875002,24.493945312500017],[92.06416015625004,24.374365234375006],[91.84619140624997,24.17529296875003],[91.72656250000003,24.20507812499997],[91.35019531250012,24.06049804687501],[91.16044921875007,23.66064453125],[91.359375,23.06835937500003],[91.43623046875004,23.19990234375001],[91.55351562500002,22.991552734375006],[91.61953125,22.97968750000001],[91.75097656250003,23.053515625000017],[91.75419921875007,23.287304687499955],[91.79003906249997,23.361035156249983],[91.937890625,23.504687500000017],[91.92949218750007,23.598242187499977],[91.92958984375,23.68598632812501],[91.97851562500003,23.691992187499977],[92.04404296875006,23.677783203125017],[92.24609375000003,23.683593750000057],[92.33378906250002,23.242382812499955],[92.36162109375002,22.929003906250074],[92.46445312500006,22.734423828125045],[92.49140625000004,22.685400390625006],[92.5612304687501,22.04804687500001],[92.57490234375004,21.978076171875045],[92.58281250000002,21.940332031249994],[92.5934570312501,21.46733398437499],[92.63164062500002,21.306201171875045],[92.33056640624997,21.439794921874977],[92.17958984375005,21.293115234375023],[92.32412109375,20.791845703125063],[92.0560546875,21.1748046875],[91.86337890625012,22.350488281249966],[91.7970703125001,22.297460937500006],[91.48007812500006,22.884814453125045],[91.2162109375,22.642236328124994],[90.94560546875002,22.597021484375034],[90.65625,23.025488281250006],[90.60400390624997,23.59135742187499],[90.55566406249997,23.42153320312505],[90.26914062500012,23.455859375000017],[90.59091796875012,23.266406250000045],[90.43505859374997,22.751904296874955],[90.61611328125,22.362158203125034],[90.23056640625006,21.82978515625004],[90.07119140625005,21.887255859375017],[90.20957031250006,22.156591796875006],[89.95419921875006,22.022851562500023],[89.91806640625012,22.11616210937501],[89.98515625000002,22.466406250000063],[89.81191406250005,21.983496093750006],[89.56855468750004,21.767431640625034],[89.48320312500007,22.275537109374994],[89.50058593750006,21.914355468750045],[89.35371093750004,21.72109375],[89.09394531250004,21.872753906249983],[89.05,22.274609374999983],[88.92070312500002,22.632031249999955],[88.89970703125002,22.843505859375057],[88.85058593749997,23.040527343750057],[88.928125,23.186621093750063],[88.72441406250002,23.254980468750034],[88.69765625,23.493017578125034],[88.63574218749997,23.55],[88.56738281249997,23.674414062500034],[88.69980468750006,24.002539062500006],[88.71376953125,24.069628906250017],[88.72656250000003,24.186230468749955],[88.7335937500001,24.23090820312501],[88.72353515625,24.27490234375],[88.64228515625004,24.325976562500017],[88.49853515625003,24.34663085937504],[88.3375,24.45385742187503],[88.225,24.460644531249983],[88.14550781250003,24.485791015624955],[88.07910156249997,24.549902343750063],[88.02343750000003,24.62783203125005],[88.03027343749997,24.66445312500005],[88.0451171875001,24.713037109374994],[88.1498046875,24.914648437500034],[88.1888671875,24.92060546875001],[88.27949218750004,24.881933593750034],[88.31337890625005,24.8818359375],[88.37294921875,24.961523437499977],[88.45625,25.18842773437504],[88.57382812500006,25.18789062499999],[88.92978515625012,25.222998046875063],[88.94414062500002,25.290771484375],[88.85478515625002,25.333544921875017],[88.76914062500006,25.490478515625],[88.50244140624997,25.537011718749994],[88.14746093749997,25.811425781250023],[88.1066406250001,25.841113281250045],[88.15078125000005,26.08715820312497],[88.33398437499997,26.257519531249955],[88.44042968749997,26.369482421875034],[88.38623046875003,26.471533203125034],[88.35146484375005,26.482568359374966],[88.36992187500002,26.564111328124994],[88.51826171875004,26.517773437499955],[88.68281250000004,26.291699218749983],[88.94072265625002,26.24536132812497]]]]},"properties":{"name":"Bangladesh","childNum":6}},{"geometry":{"type":"Polygon","coordinates":[[[28.585351562500023,43.742236328124996],[28.465429687500006,43.389306640624994],[28.133691406250023,43.39560546875],[27.92890625000001,43.1861328125],[27.88886718750001,42.74970703125],[27.484765625000023,42.468066406249996],[28.014453125000017,41.969042968749996],[27.47480468750001,41.946875],[27.294921875,42.079541015625],[27.24433593750001,42.09326171875],[27.01171875,42.058642578124996],[26.96875,42.02685546875],[26.884863281250006,41.991845703124994],[26.615332031250006,41.964892578124996],[26.549707031250023,41.896728515625],[26.51142578125001,41.8263671875],[26.3603515625,41.8015625],[26.327246093750006,41.772802734375],[26.31796875,41.744677734374996],[26.320898437500006,41.716552734375],[26.200585937500023,41.743798828124994],[26.107421875,41.72568359375],[26.085546875,41.704150390624996],[26.066015625,41.673242187499994],[26.1435546875,41.521533203124996],[26.155175781250023,41.434863281249996],[26.135351562500006,41.3857421875],[26.06640625,41.35068359375],[25.92333984375,41.311914062499994],[25.784960937500017,41.330419921875],[25.52705078125001,41.2998046875],[25.381933593750006,41.26435546875],[25.25117187500001,41.243554687499994],[24.773730468750017,41.356103515624994],[24.595996093750017,41.442724609375],[24.5693359375,41.4673828125],[24.51826171875001,41.552539062499996],[24.487890625,41.555224609374996],[24.056054687500023,41.527246093749994],[24.03291015625001,41.469091796875],[24.011328125,41.46005859375],[23.635156250000023,41.386767578124996],[23.53583984375001,41.386035156249996],[23.433398437500017,41.398730468749996],[23.3720703125,41.3896484375],[23.23984375,41.3849609375],[23.15595703125001,41.322070312499996],[22.916015625,41.336279296875],[23.00361328125001,41.73984375],[22.836816406250023,41.993603515625],[22.344042968750017,42.31396484375],[22.42207031250001,42.328857421875],[22.445703125000023,42.359130859375],[22.523535156250006,42.440966796874996],[22.53242187500001,42.481201171875],[22.524218750000017,42.50390625],[22.43623046875001,42.6291015625],[22.466796875,42.84248046875],[22.799902343750006,42.985742187499994],[22.976855468750017,43.18798828125],[22.85957031250001,43.25234375],[22.819726562500023,43.300732421875],[22.767578125,43.354150390624994],[22.554589843750023,43.454492187499994],[22.36962890625,43.781298828124996],[22.36542968750001,43.862109375],[22.399023437500006,43.96953125],[22.420800781250023,44.007421875],[22.452529688228115,44.0510441391688],[22.547921095934313,44.113823956634434],[22.688564844478098,44.254306249271906],[23.02851562500001,44.077978515625],[22.868261718750006,43.947900390624994],[22.919042968750006,43.83447265625],[25.4970703125,43.670800781249994],[26.2158203125,44.007275390625],[27.0869140625,44.167382812499994],[27.425390625,44.0205078125],[27.88427734375,43.987353515624996],[28.221972656250017,43.772851562499994],[28.585351562500023,43.742236328124996]]]},"properties":{"name":"Bulgaria","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[50.60722656250002,25.883105468750003],[50.57490234375001,25.806787109374994],[50.465917968750006,25.965527343749997],[50.46992187500001,26.228955078124997],[50.5859375,26.24072265625],[50.60722656250002,25.883105468750003]]]},"properties":{"name":"Bahrain","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-73.02685546874994,21.19238281250003],[-73.16455078125003,20.979150390625023],[-73.68115234375003,20.9755859375],[-73.68037109374995,21.103320312500017],[-73.52309570312497,21.190820312499966],[-73.23535156249997,21.15449218750004],[-73.05849609375,21.313378906249994],[-73.02685546874994,21.19238281250003]]],[[[-73.041015625,22.429052734375006],[-72.74726562500001,22.32739257812497],[-73.16191406250002,22.380712890625006],[-73.041015625,22.429052734375006]]],[[[-74.20673828124998,22.213769531250023],[-74.27690429687499,22.183691406250006],[-73.906396484375,22.527441406250063],[-73.95419921874995,22.71552734375001],[-73.84995117187503,22.731054687500063],[-73.83652343749998,22.538427734374977],[-74.20673828124998,22.213769531250023]]],[[[-74.05751953124997,22.723486328125034],[-74.27460937499995,22.71166992187503],[-74.30703125,22.83959960937497],[-74.05751953124997,22.723486328125034]]],[[[-74.84047851562494,22.894335937500017],[-75.22333984374995,23.165332031250074],[-75.13056640624998,23.267919921875006],[-75.31596679687502,23.668359374999966],[-74.84047851562494,22.894335937500017]]],[[[-75.66455078124997,23.45014648437501],[-76.03710937500003,23.60278320312503],[-76.01044921875001,23.671386718750057],[-75.66455078124997,23.45014648437501]]],[[[-74.42944335937497,24.068066406249955],[-74.55092773437502,23.96894531250001],[-74.52690429687502,24.105078125000034],[-74.42944335937497,24.068066406249955]]],[[[-77.65771484374994,24.249462890624955],[-77.75527343750002,24.163476562500023],[-77.61538085937494,24.216357421875045],[-77.5615234375,24.136816406250006],[-77.57373046875,23.739160156249994],[-77.77128906249999,23.752539062499977],[-77.99990234374994,24.219824218750063],[-77.65771484374994,24.249462890624955]]],[[[-75.30839843749999,24.2],[-75.50322265624996,24.139062500000023],[-75.40893554687503,24.265771484374994],[-75.72666015625,24.68935546875005],[-75.30839843749999,24.2]]],[[[-77.34755859375,25.013867187499983],[-77.56191406249997,25.030029296875],[-77.27558593750001,25.055761718750006],[-77.34755859375,25.013867187499983]]],[[[-77.74384765625001,24.70742187499999],[-77.74521484375,24.463476562500034],[-78.04492187499997,24.287451171875063],[-78.14580078125002,24.493457031250017],[-78.36650390624993,24.544189453125057],[-78.435302734375,24.627587890624994],[-78.24272460937493,24.65380859375],[-78.21137695312495,25.191259765624977],[-77.97529296874998,25.084814453125063],[-77.74384765625001,24.70742187499999]]],[[[-76.64882812499994,25.487402343750006],[-76.34379882812496,25.33203124999997],[-76.12661132812497,25.14052734375005],[-76.16953125,24.6494140625],[-76.319970703125,24.81767578124999],[-76.21376953124994,24.822460937499983],[-76.160400390625,25.119335937499983],[-76.36928710937502,25.312597656250006],[-76.62070312499998,25.43164062500003],[-76.78066406249997,25.426855468750006],[-76.71083984374997,25.564892578124983],[-76.64882812499994,25.487402343750006]]],[[[-78.49287109375001,26.729052734375017],[-77.92246093749998,26.69111328125001],[-78.74365234374994,26.50068359375004],[-78.98564453124996,26.689501953125045],[-78.79804687500001,26.58242187499999],[-78.59711914062493,26.797949218750006],[-78.49287109375001,26.729052734375017]]],[[[-77.22563476562496,25.904199218750023],[-77.40317382812498,26.02470703124996],[-77.24677734374998,26.156347656250034],[-77.238623046875,26.561132812500006],[-77.510595703125,26.845996093750045],[-77.94375,26.90356445312503],[-77.53388671874995,26.903417968750006],[-77.06635742187501,26.530175781249994],[-77.03828124999998,26.333447265624983],[-77.16728515624996,26.240332031250006],[-77.22563476562496,25.904199218750023]]]]},"properties":{"name":"Bahamas","childNum":14}},{"geometry":{"type":"Polygon","coordinates":[[[19.007128906250045,44.86918945312502],[19.348632812500057,44.88090820312502],[19.118457031250074,44.359960937500006],[19.583789062500017,44.04345703125003],[19.245019531249994,43.96503906250004],[19.495117187500057,43.642871093750045],[19.19433593749997,43.533300781250006],[19.164355468750017,43.53544921874999],[19.11279296874997,43.52773437500002],[19.080078125000057,43.51772460937502],[19.0283203125,43.53251953125002],[18.97421875,43.54233398437498],[18.95068359375,43.52666015624999],[19.036718750000034,43.35732421875002],[19.026660156250017,43.292431640624955],[18.97871093750001,43.28540039062503],[18.934667968750006,43.339453125000034],[18.85107421875003,43.34633789062502],[18.749218750000068,43.283544921875006],[18.67421875000008,43.230810546875006],[18.623632812500063,43.027685546875034],[18.488476562500068,43.01215820312498],[18.44384765625003,42.96845703125004],[18.46601562500001,42.777246093749994],[18.54589843750003,42.64160156249997],[18.436328125000017,42.559716796874994],[17.667578125000063,42.897119140624994],[17.585156250000068,42.93837890625005],[17.650488281250063,43.006591796875],[17.27382812500005,43.44575195312501],[16.300097656250017,44.12451171875],[16.10341796875008,44.52099609375006],[15.736621093750045,44.76582031250001],[15.788085937500057,45.17895507812497],[16.028320312500057,45.18959960937502],[16.29335937500005,45.00883789062496],[16.53066406250008,45.21669921875002],[16.918652343749983,45.27656249999998],[17.812792968750074,45.078125],[18.66259765625,45.07744140624999],[18.83642578125,44.883251953124955],[19.007128906250045,44.86918945312502]]]},"properties":{"name":"Bosnia and Herz.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.14794921875,56.142919921875],[28.284277343750006,56.055908203125],[29.375,55.938720703125],[29.353417968750023,55.784375],[29.412988281250023,55.724853515625],[29.482226562500017,55.6845703125],[29.63007812500001,55.751171875],[29.6845703125,55.7697265625],[29.744140625,55.77041015625],[29.82392578125001,55.7951171875],[29.881640625000017,55.832324218749996],[29.93701171875,55.845263671874996],[30.04267578125001,55.83642578125],[30.23359375000001,55.84521484375],[30.625585937500006,55.666259765625],[30.906835937500006,55.57001953125],[30.90058593750001,55.397412109375],[30.82099609375001,55.3302734375],[30.810546875,55.306982421875],[30.814453125,55.2787109375],[30.87744140625,55.2234375],[30.958886718750023,55.13759765625],[30.97773437500001,55.08779296875],[30.97773437500001,55.05048828125],[30.829882812500017,54.914990234375],[30.804492187500017,54.8609375],[30.791015625,54.806005859375],[30.798828125,54.783251953124996],[30.984179687500017,54.6958984375],[31.12128906250001,54.648486328124996],[31.152148437500017,54.625341796875],[31.074804687500006,54.491796875],[31.18476562500001,54.452978515625],[31.299121093750017,54.29169921875],[31.403613281250017,54.195947265625],[31.62841796875,54.111181640625],[31.7919921875,54.055908203125],[31.825976562500017,54.030712890625],[31.837792968750023,54.00078125],[31.825292968750006,53.935009765625],[31.783007812500017,53.85498046875],[31.754199218750017,53.81044921875],[31.82080078125,53.791943359375],[31.9921875,53.796875],[32.20039062500001,53.78125],[32.45097656250002,53.6533203125],[32.70429687500001,53.336328125],[32.64443359375002,53.32890625],[32.57802734375002,53.31240234375],[32.469335937500006,53.2703125],[32.14199218750002,53.091162109375],[31.849707031250006,53.106201171875],[31.668261718750017,53.200927734375],[31.417871093750023,53.196044921875],[31.38837890625001,53.184814453125],[31.364550781250017,53.138964843749996],[31.30292968750001,53.060888671875],[31.2587890625,53.01669921875],[31.29511718750001,52.989794921874996],[31.35302734375,52.933447265625],[31.442773437500023,52.86181640625],[31.53515625,52.7982421875],[31.564843750000023,52.759228515625],[31.585546875,52.532470703125],[31.57734375000001,52.312304687499996],[31.6015625,52.284814453125],[31.64990234375,52.26220703125],[31.690625,52.220654296875],[31.758593750000017,52.125830078125],[31.76337890625001,52.10107421875],[31.57373046875,52.10810546875],[31.345996093750017,52.10537109375],[31.21796875000001,52.050244140625],[30.98066406250001,52.046191406249996],[30.845703125,51.953076171875],[30.755273437500023,51.895166015625],[30.667285156250017,51.814111328125],[30.583886718750023,51.68896484375],[30.533007812500017,51.596337890624994],[30.56074218750001,51.531494140625],[30.602343750000017,51.471240234374996],[30.611718750000023,51.40634765625],[30.63251953125001,51.355419921875],[30.449511718750017,51.274316406249994],[30.160742187500006,51.477880859375],[29.346484375000017,51.382568359375],[29.10205078125,51.6275390625],[29.06074218750001,51.625439453125],[29.013085937500023,51.598925781249996],[28.97773437500001,51.57177734375],[28.927539062500017,51.562158203124994],[28.849511718750023,51.540185546874994],[28.73125,51.433398437499996],[28.690234375000017,51.438867187499994],[28.647753906250017,51.45654296875],[28.599023437500023,51.542626953124994],[28.532031250000017,51.562451171875],[27.85859375000001,51.5923828125],[27.7,51.477978515625],[27.689746093750017,51.572412109374994],[27.296289062500023,51.597412109375],[27.270117187500006,51.613574218749996],[27.141992187500023,51.75205078125],[27.074121093750023,51.76083984375],[26.95283203125001,51.75400390625],[26.7734375,51.770703125],[25.785742187500006,51.923828125],[24.361914062500006,51.867529296875],[24.280078125000017,51.774707031249996],[24.126855468750023,51.6646484375],[23.978320312500017,51.59130859375],[23.951171875,51.58505859375],[23.8642578125,51.623974609375],[23.79169921875001,51.637109375],[23.706835937500017,51.64130859375],[23.61376953125,51.525390625],[23.605273437500017,51.517919921875],[23.652441406250006,52.040380859375],[23.175097656250017,52.28662109375],[23.915429687500023,52.770263671875],[23.484667968750017,53.939794921875],[23.55908203125,53.91982421875],[23.733691406250017,53.912255859375],[24.191308593750023,53.950439453125],[24.236621093750017,53.919970703124996],[24.31796875,53.89296875],[24.620703125,53.979833984375],[24.768164062500006,53.974658203124996],[24.78925781250001,53.9982421875],[24.82568359375,54.118994140625],[24.869531250000023,54.145166015625],[25.04609375000001,54.133056640625],[25.111425781250006,54.154931640625],[25.179492187500017,54.2142578125],[25.46113281250001,54.292773437499996],[25.505664062500017,54.264941406249996],[25.52734375,54.215136718749996],[25.497363281250017,54.175244140625],[25.573046875000017,54.139892578125],[25.765234375,54.17978515625],[25.702539062500023,54.29296875],[25.61689453125001,54.310107421874996],[25.557519531250023,54.310693359375],[25.54736328125,54.331835937499996],[25.56757812500001,54.37705078125],[25.62031250000001,54.460400390625],[25.68515625,54.535791015625],[25.72480468750001,54.564257812499996],[25.73164062500001,54.590380859374996],[25.722460937500017,54.71787109375],[25.859277343750023,54.919287109375],[25.964453125,54.94716796875],[26.09296875000001,54.9623046875],[26.175195312500023,55.003271484375],[26.250781250000017,55.12451171875],[26.291796875000017,55.139599609375],[26.601171875,55.130175781249996],[26.6484375,55.20419921875],[26.775683593750017,55.273095703125],[26.760156250000023,55.293359375],[26.68125,55.306445312499996],[26.49531250000001,55.318017578125],[26.457617187500006,55.34248046875],[26.469531250000017,55.371923828125],[26.51923828125001,55.44814453125],[26.56660156250001,55.546484375],[26.5908203125,55.62265625],[26.593554687500017,55.667529296874996],[27.052539062500017,55.83056640625],[27.576757812500006,55.798779296875],[28.14794921875,56.142919921875]]]},"properties":{"name":"Belarus","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-87.8529296875,17.4228515625],[-87.92998046874996,17.283007812500017],[-87.826416015625,17.546289062499994],[-87.8529296875,17.4228515625]]],[[[-88.89404296875,15.890625],[-89.2328125,15.888671875],[-89.16147460937503,17.81484375],[-89.13354492187503,17.970800781249977],[-88.80634765624998,17.965527343749983],[-88.52299804687499,18.445898437500063],[-88.29565429687494,18.47241210937503],[-88.34926757812494,18.358837890624983],[-88.1302734375,18.350732421875023],[-88.08525390624999,18.226123046875045],[-88.27172851562494,17.60986328125],[-88.203466796875,17.5166015625],[-88.31342773437501,16.632763671874983],[-88.89404296875,15.890625]]]]},"properties":{"name":"Belize","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-64.73027343749999,32.29345703125],[-64.86284179687499,32.273876953125],[-64.66831054687499,32.38193359375],[-64.73027343749999,32.29345703125]]]},"properties":{"name":"Bermuda","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-58.15976562499999,-20.164648437500006],[-58.18017578125,-19.81787109375],[-59.09052734375,-19.286230468750006],[-60.00737304687499,-19.29755859375001],[-61.7568359375,-19.6453125],[-62.276318359375,-20.5625],[-62.27666015624999,-21.066015625],[-62.65097656249999,-22.233691406250003],[-62.84335937499999,-21.99726562500001],[-63.92167968749999,-22.028613281250003],[-63.97612304687499,-22.072558593750003],[-64.26640624999999,-22.603320312500003],[-64.30791015624999,-22.7953125],[-64.32529296874999,-22.82763671875],[-64.373974609375,-22.761035156250003],[-64.4455078125,-22.58535156250001],[-64.477734375,-22.4853515625],[-64.5236328125,-22.37158203125],[-64.60551757812499,-22.228808593750003],[-64.992626953125,-22.109667968750003],[-65.518798828125,-22.09453125],[-65.686181640625,-22.11025390625001],[-65.77104492187499,-22.099609375],[-65.86015624999999,-22.01972656250001],[-66.05859375,-21.879492187500006],[-66.098583984375,-21.835058593750006],[-66.17465820312499,-21.8056640625],[-66.220166015625,-21.802539062500003],[-66.24760742187499,-21.83046875],[-66.28212890625,-21.94746093750001],[-66.3224609375,-22.053125],[-66.365185546875,-22.11376953125],[-66.71171874999999,-22.21630859375],[-66.99111328125,-22.509863281250006],[-67.19487304687499,-22.82167968750001],[-67.362255859375,-22.85517578125001],[-67.57993164062499,-22.891699218750006],[-67.79443359375,-22.879492187500006],[-67.87944335937499,-22.82294921875001],[-67.88173828125,-22.49335937500001],[-68.18642578125,-21.61855468750001],[-68.197021484375,-21.30029296875],[-68.558251953125,-20.901953125],[-68.484326171875,-20.62841796875],[-68.74516601562499,-20.45859375],[-68.75932617187499,-20.115527343750003],[-68.560693359375,-19.967089843750003],[-68.559375,-19.90234375],[-68.578271484375,-19.856542968750006],[-68.69619140625,-19.74072265625],[-68.69829101562499,-19.72109375],[-68.57529296874999,-19.56015625],[-68.462890625,-19.43281250000001],[-68.470166015625,-19.409960937500003],[-68.49199218749999,-19.381933593750006],[-68.85795898437499,-19.093359375],[-68.96831054687499,-18.96796875000001],[-68.97885742187499,-18.81298828125],[-69.026806640625,-18.65625],[-69.09228515625,-18.28242187500001],[-69.145458984375,-18.14404296875],[-69.0939453125,-18.05048828125001],[-69.28232421874999,-17.96484375],[-69.31337890625,-17.943164062500003],[-69.5109375,-17.50605468750001],[-69.51108398437499,-17.5048828125],[-69.510986328125,-17.46035156250001],[-69.521923828125,-17.388964843750003],[-69.645703125,-17.24853515625],[-69.62485351562499,-17.2001953125],[-69.020703125,-16.6421875],[-69.03291015625,-16.47597656250001],[-68.8427734375,-16.337890625],[-69.21757812499999,-16.14912109375001],[-69.4208984375,-15.640625],[-69.17246093749999,-15.236621093750003],[-69.37470703125,-14.962988281250006],[-69.35947265624999,-14.7953125],[-68.87089843749999,-14.169726562500003],[-69.07412109375,-13.682812500000011],[-68.97861328124999,-12.880078125000011],[-68.68525390625,-12.501953125],[-69.57861328125,-10.951757812500006],[-69.228515625,-10.955664062500006],[-68.84833984375,-11.011132812500009],[-68.678369140625,-11.11279296875],[-68.39799804687499,-11.01875],[-68.0716796875,-10.703125],[-67.99169921875,-10.674414062500006],[-67.83500976562499,-10.662792968750011],[-67.72177734374999,-10.68310546875],[-67.416943359375,-10.389843750000011],[-66.575341796875,-9.89990234375],[-65.396142578125,-9.71240234375],[-65.298583984375,-10.146777343750003],[-65.31308593749999,-10.253027343750006],[-65.395458984375,-10.392285156250011],[-65.4369140625,-10.449023437500003],[-65.44711914062499,-10.507421875],[-65.33403320312499,-10.892773437500011],[-65.32377929687499,-11.024804687500009],[-65.389892578125,-11.246289062500011],[-65.1857421875,-11.74951171875],[-64.783447265625,-12.059375],[-64.42050781249999,-12.439746093750003],[-63.68857421874999,-12.47802734375],[-63.3466796875,-12.680078125],[-63.06748046874999,-12.669140625000011],[-62.76547851562499,-12.997265625000011],[-62.11801757812499,-13.159765625],[-62.09477539062499,-13.241992187500003],[-61.944726562499994,-13.40625],[-61.87412109374999,-13.470410156250011],[-61.789941406249994,-13.525585937500011],[-61.57568359375,-13.524804687500009],[-61.51157226562499,-13.541210937500011],[-61.41606445312499,-13.526562500000011],[-61.129150390625,-13.49853515625],[-61.07700195312499,-13.48974609375],[-60.506591796875,-13.78984375],[-60.372705078124994,-14.41875],[-60.273339843749994,-15.088769531250009],[-60.402001953124994,-15.0927734375],[-60.583203125,-15.098339843750011],[-60.53046875,-15.143164062500006],[-60.38046875,-15.318261718750009],[-60.242333984374994,-15.479589843750006],[-60.20664062499999,-15.901953125],[-60.18720703125,-16.132128906250003],[-60.17558593749999,-16.269335937500003],[-58.53793945312499,-16.328222656250006],[-58.49658203125,-16.32666015625],[-58.42368164062499,-16.307910156250003],[-58.37539062499999,-16.28359375],[-58.345605468749994,-16.284375],[-58.35039062499999,-16.490820312500006],[-58.470605468749994,-16.650195312500003],[-58.478125,-16.70068359375],[-58.45981445312499,-16.910742187500006],[-58.417382812499994,-17.08056640625],[-58.39599609375,-17.23427734375001],[-58.34775390624999,-17.28212890625001],[-57.99091796875,-17.51289062500001],[-57.905029296875,-17.532324218750006],[-57.832470703125,-17.512109375],[-57.78886718749999,-17.573046875],[-57.780175781249994,-17.67177734375001],[-57.66166992187499,-17.947363281250006],[-57.58647460937499,-18.12226562500001],[-57.49565429687499,-18.214648437500003],[-57.57402343749999,-18.279296875],[-57.725,-18.733203125],[-57.783105468749994,-18.91425781250001],[-57.716796875,-19.044042968750006],[-58.131494140624994,-19.74453125],[-57.860742187499994,-19.979589843750006],[-57.887597656249994,-20.02041015625001],[-57.96015625,-20.04072265625001],[-58.021142578124994,-20.05517578125],[-58.09375,-20.15107421875001],[-58.15976562499999,-20.164648437500006]]]},"properties":{"name":"Bolivia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-48.48588867187493,-27.76699218749998],[-48.554589843749994,-27.81220703125004],[-48.542187499999955,-27.57480468749999],[-48.41489257812495,-27.399609375],[-48.48588867187493,-27.76699218749998]]],[[[-48.584423828124955,-26.401562499999983],[-48.665771484375,-26.289648437500006],[-48.53974609374998,-26.170312500000023],[-48.584423828124955,-26.401562499999983]]],[[[-45.26025390624997,-23.889160156249986],[-45.451416015625,-23.895605468749977],[-45.30234375,-23.727539062500014],[-45.26025390624997,-23.889160156249986]]],[[[-44.12929687499994,-23.14189453124999],[-44.36015624999999,-23.17207031250001],[-44.24287109374998,-23.074121093750037],[-44.12929687499994,-23.14189453124999]]],[[[-38.90356445312497,-13.473437499999974],[-38.97758789062496,-13.523535156249963],[-39.02216796874998,-13.445605468749989],[-38.907128906249994,-13.401074218749983],[-38.90356445312497,-13.473437499999974]]],[[[-38.743847656249955,-13.097070312500037],[-38.668115234374966,-12.880175781249989],[-38.601171875,-12.99257812499998],[-38.743847656249955,-13.097070312500037]]],[[[-44.49931640625002,-2.939648437499983],[-44.597753906250006,-3.037597656249943],[-44.4814453125,-2.717578125000031],[-44.49931640625002,-2.939648437499983]]],[[[-44.88310546874996,-1.317871093749986],[-45.020849609375034,-1.372363281249974],[-44.978662109374966,-1.267285156249983],[-44.88310546874996,-1.317871093749986]]],[[[-51.83251953124997,-1.433789062499969],[-51.938378906249966,-1.452636718749986],[-51.680029296875006,-1.086132812500026],[-51.546044921874966,-0.649609375],[-51.25400390624998,-0.54140625],[-51.16074218749998,-0.666699218750011],[-51.27631835937498,-1.02177734374996],[-51.83251953124997,-1.433789062499969]]],[[[-49.62866210937497,-0.229199218749969],[-49.11699218749999,-0.163574218750014],[-48.39267578124995,-0.29736328125],[-48.83359375,-1.390039062500023],[-49.038476562499994,-1.5140625],[-49.17270507812498,-1.41259765625],[-49.233984375000034,-1.59951171874998],[-49.50664062499999,-1.511621093750023],[-49.587890625,-1.712402343749972],[-49.805126953124955,-1.790234375000026],[-50.06572265625002,-1.703808593749997],[-50.50761718749999,-1.787988281250009],[-50.759765625,-1.240234374999972],[-50.72949218749997,-1.126757812499946],[-50.57695312499999,-1.103125],[-50.709619140624994,-1.07773437499999],[-50.796093749999955,-0.90625],[-50.6455078125,-0.27285156249998],[-50.24824218749998,-0.11640625],[-49.62866210937497,-0.229199218749969]]],[[[-50.65288085937499,-0.131640624999989],[-50.926367187500034,-0.327343749999983],[-51.03808593749994,-0.225878906250003],[-50.84218750000002,-0.050195312500009],[-50.65288085937499,-0.131640624999989]]],[[[-49.44389648437499,-0.112402343749977],[-49.83007812499997,-0.093896484375023],[-49.50346679687496,0.083691406250011],[-49.37231445312497,0.001074218749963],[-49.44389648437499,-0.112402343749977]]],[[[-49.73823242187498,0.26816406250002],[-49.917089843750006,-0.023193359375014],[-50.339453125,0.043359375000051],[-50.27265624999998,0.231738281249974],[-49.73823242187498,0.26816406250002]]],[[[-50.42612304687498,0.139257812500048],[-50.44394531249998,-0.007666015624949],[-50.623925781249966,0.054394531249983],[-50.372753906249955,0.590869140625031],[-50.33227539062497,0.259033203125028],[-50.42612304687498,0.139257812500048]]],[[[-50.152929687500006,0.393017578125054],[-50.26132812499998,0.359179687500003],[-50.281689453124955,0.51650390624998],[-50.05883789062503,0.638037109374963],[-50.152929687500006,0.393017578125054]]],[[[-50.29897460937502,1.93852539062496],[-50.45610351562496,1.910498046875034],[-50.49101562499996,2.128613281249969],[-50.34199218749998,2.14174804687498],[-50.29897460937502,1.93852539062496]]],[[[-59.69970703125,4.353515625],[-59.73857421874993,4.226757812500026],[-59.62021484374998,4.023144531250026],[-59.557763671874966,3.960009765625031],[-59.551123046875034,3.933544921874969],[-59.854394531249994,3.5875],[-59.99433593749998,2.689990234375031],[-59.88964843749997,2.362939453125009],[-59.75522460937495,2.27412109375004],[-59.74350585937498,2.12163085937496],[-59.75175781249996,1.962402343750028],[-59.75620117187498,1.900634765624972],[-59.666601562500006,1.746289062499969],[-59.53569335937499,1.7],[-59.23120117187494,1.376025390625031],[-58.82177734374994,1.201220703125031],[-58.787207031250006,1.208496093750014],[-58.73032226562498,1.247509765625054],[-58.68461914062499,1.28105468749996],[-58.511865234374966,1.284667968749986],[-58.506054687499926,1.438671875000011],[-58.39580078124993,1.481738281249989],[-58.38037109375,1.530224609375011],[-58.34067382812498,1.587548828125051],[-58.03466796875,1.520263671875014],[-57.9828125,1.648437500000014],[-57.87343750000002,1.667285156250045],[-57.79565429687497,1.7],[-57.59443359375001,1.704101562499986],[-57.54575195312495,1.726074218750028],[-57.31748046874998,1.963476562499991],[-57.27558593749998,1.959228515625014],[-57.189599609374966,1.981591796875037],[-57.11889648437494,2.013964843749974],[-57.09267578125002,2.005810546874997],[-57.03759765625,1.936474609374997],[-56.96953124999999,1.91640625],[-56.48281249999994,1.942138671874986],[-56.019921874999966,1.842236328124983],[-55.96333007812498,1.85708007812498],[-55.929638671874955,1.8875],[-55.92163085937503,1.976660156250006],[-55.91533203124999,2.039550781250028],[-55.96196289062496,2.09511718749998],[-56.02006835937499,2.15815429687504],[-56.073632812499994,2.236767578124969],[-56.13769531249997,2.259033203124986],[-56.12939453124997,2.299511718749969],[-56.08779296875002,2.341308593750043],[-56.045117187499955,2.364404296875037],[-56.02036132812498,2.392773437500054],[-55.993505859375006,2.497509765624983],[-55.9755859375,2.515966796875006],[-55.957470703124955,2.52045898437504],[-55.730566406250006,2.406152343750023],[-55.385351562500006,2.440625],[-55.34399414062503,2.488769531249972],[-55.28603515625002,2.49965820312498],[-55.18769531249998,2.547509765625037],[-55.114111328125006,2.539208984375037],[-55.07031249999994,2.548339843750028],[-55.005810546874955,2.592968749999983],[-54.97866210937502,2.597656250000043],[-54.968408203124966,2.548339843750028],[-54.92656249999999,2.497363281250045],[-54.876074218750006,2.450390624999969],[-54.72221679687499,2.441650390624972],[-54.69741210937502,2.359814453124997],[-54.66186523437497,2.327539062499994],[-54.61625976562499,2.326757812500006],[-54.59194335937502,2.313769531250031],[-54.55048828125001,2.293066406249991],[-54.51508789062498,2.245458984374963],[-54.43310546875,2.207519531250057],[-54.13007812499998,2.121044921875026],[-53.76777343749998,2.354833984375048],[-52.90346679687502,2.211523437499977],[-52.58300781250003,2.528906249999977],[-52.327880859375,3.18173828125002],[-51.65253906249998,4.061279296874972],[-51.54707031250001,4.31088867187502],[-51.219921874999955,4.093603515624991],[-50.71440429687502,2.134033203125],[-50.458886718749994,1.829589843749972],[-49.957128906250006,1.65986328125004],[-49.898876953124955,1.16298828124998],[-50.29443359374997,0.835742187500003],[-50.755078124999955,0.222558593749966],[-51.28291015625001,-0.085205078125028],[-51.98081054687498,-1.367968749999974],[-52.22924804687497,-1.3625],[-52.664160156250034,-1.551757812500028],[-51.94755859374996,-1.586718749999946],[-50.89492187500002,-0.937597656249963],[-50.690039062500006,-1.761718749999986],[-50.40322265625002,-2.015527343750009],[-49.999218749999955,-1.831835937499974],[-49.71953125000002,-1.926367187499963],[-49.31367187500001,-1.731738281250003],[-49.63652343749996,-2.656933593750026],[-49.45751953125,-2.504589843749983],[-49.21103515624998,-1.916503906249986],[-48.99130859374998,-1.829785156249997],[-48.71000976562496,-1.487695312500023],[-48.46293945312499,-1.613964843749997],[-48.349804687499926,-1.482128906249955],[-48.46806640624996,-1.393847656250003],[-48.44980468749998,-1.145507812499943],[-48.11508789062498,-0.7375],[-47.557324218749955,-0.669921874999957],[-47.418652343749955,-0.765917968749974],[-47.39809570312502,-0.626660156250026],[-45.45859374999995,-1.35625],[-45.32915039062496,-1.71728515625],[-45.07636718749998,-1.466406249999949],[-44.72114257812498,-1.733496093750006],[-44.778515624999955,-1.798828125],[-44.651269531249966,-1.745800781250026],[-44.537792968749955,-2.052734374999943],[-44.75634765624997,-2.265527343749952],[-44.66240234375002,-2.373242187499955],[-44.435449218749966,-2.168066406249991],[-44.38183593749997,-2.365527343749989],[-44.52011718749998,-2.40546875000004],[-44.589013671874994,-2.573437499999983],[-44.72304687500002,-3.204785156249997],[-44.43754882812496,-2.944433593749977],[-44.228613281250006,-2.471289062499949],[-44.105566406250006,-2.493457031250031],[-44.19267578124999,-2.809570312499943],[-43.93291015624999,-2.583496093749986],[-43.45512695312499,-2.502050781250006],[-43.38007812499998,-2.376074218750006],[-42.93671874999998,-2.465039062500011],[-42.24960937499998,-2.7919921875],[-41.876171874999926,-2.746582031249986],[-41.479931640624955,-2.916503906249972],[-40.474560546874926,-2.795605468750026],[-39.96469726562498,-2.861523437499955],[-38.475781249999955,-3.717480468749997],[-38.04882812500003,-4.216406250000034],[-37.626318359375006,-4.592089843750003],[-37.30146484375001,-4.713085937499969],[-37.174658203125006,-4.912402343749974],[-36.590722656249966,-5.097558593749952],[-35.549414062500006,-5.129394531249957],[-35.39257812499994,-5.250878906250009],[-34.833886718749994,-7.024414062500014],[-34.83466796874998,-7.97148437499996],[-35.34086914062499,-9.230664062499983],[-35.76396484374993,-9.702539062500023],[-35.890820312499926,-9.687011718749957],[-35.88544921875001,-9.84765625],[-36.39833984374994,-10.484082031249983],[-36.768310546875,-10.671679687500017],[-37.18281249999998,-11.06845703125002],[-37.35600585937502,-11.403906249999977],[-37.35922851562495,-11.252539062499963],[-37.68872070312503,-12.1],[-38.019238281249955,-12.591308593750028],[-38.401757812499994,-12.966210937500023],[-38.69096679687502,-12.623925781250009],[-38.85175781250001,-12.790136718750034],[-38.76372070312502,-12.9072265625],[-38.835302734375034,-13.147167968750026],[-39.030908203124994,-13.365136718750023],[-39.08935546875,-13.588183593749989],[-38.988623046875006,-13.61503906249996],[-39.04814453124996,-14.043945312500028],[-38.94233398437498,-14.030664062499994],[-39.05957031249997,-14.654785156249957],[-38.88061523437503,-15.864257812499972],[-39.20288085937503,-17.178125],[-39.154003906249926,-17.70390625000003],[-39.650781249999966,-18.252343750000037],[-39.78330078124998,-19.571777343749986],[-40.001367187499994,-19.74199218750003],[-40.39594726562501,-20.56943359375002],[-40.78925781250001,-20.90605468750003],[-40.954541015624926,-21.237890624999963],[-41.04726562499999,-21.505664062499974],[-41.00029296875002,-21.99902343750003],[-41.70551757812498,-22.30966796874999],[-41.980419921874955,-22.580664062499963],[-42.042382812499966,-22.947070312500003],[-42.95830078124996,-22.96708984374999],[-43.154296875,-22.725195312500006],[-43.22416992187502,-22.991210937500014],[-43.898828124999966,-23.10146484375001],[-43.97382812499998,-23.057324218749983],[-43.675976562499955,-23.00947265625001],[-43.86616210937498,-22.910546875000023],[-44.63725585937496,-23.05546875],[-44.67382812499994,-23.206640625000034],[-44.56967773437495,-23.27402343749999],[-45.32539062499998,-23.59970703124999],[-45.464306640624955,-23.802539062500017],[-45.97207031250002,-23.795507812500006],[-46.86728515624998,-24.236328125000014],[-47.989160156249994,-25.03574218749999],[-47.92939453124998,-25.16826171874999],[-48.20273437499998,-25.41650390625003],[-48.18593749999994,-25.309863281249974],[-48.402490234374994,-25.27207031249999],[-48.47612304687499,-25.44296875],[-48.73173828124993,-25.36875],[-48.6921875,-25.49150390625003],[-48.40117187500002,-25.59736328125001],[-48.665771484375,-25.844335937499963],[-48.576318359374994,-25.935449218749966],[-48.61943359374996,-26.17939453125001],[-48.74829101562503,-26.26865234374999],[-48.55415039062498,-27.195996093749997],[-48.62080078124998,-28.075585937499966],[-48.799658203125006,-28.575292968749977],[-49.27128906249999,-28.87119140625005],[-49.745996093749966,-29.363183593749994],[-50.299511718749955,-30.42578125000003],[-50.92138671874997,-31.25839843750002],[-52.039208984374994,-32.11484374999996],[-52.063232421875,-31.830371093750017],[-51.68066406249994,-31.774609375000026],[-51.272167968749955,-31.476953125000037],[-51.16142578124996,-31.11884765625001],[-50.980078125000034,-31.09423828124997],[-50.94082031249994,-30.903710937499966],[-50.68930664062495,-30.70419921874999],[-50.71630859374994,-30.425976562499983],[-50.58193359375002,-30.438867187500037],[-50.56352539062499,-30.25361328125004],[-51.02495117187493,-30.36865234375003],[-51.29804687499998,-30.03486328124997],[-51.15727539062499,-30.364257812500014],[-51.283056640625034,-30.751562499999963],[-51.35908203124998,-30.674511718749983],[-51.506298828124955,-31.104492187500014],[-51.97246093749999,-31.383789062499986],[-52.19355468749998,-31.885546874999974],[-52.12739257812501,-32.1677734375],[-52.652246093749994,-33.137792968750006],[-53.37060546874997,-33.74218750000003],[-53.39755859374995,-33.737304687500014],[-53.46357421875001,-33.70986328125002],[-53.531347656250034,-33.65546875000004],[-53.531347656250034,-33.1708984375],[-53.511865234374966,-33.10869140625003],[-53.482861328124926,-33.068554687500026],[-53.39521484375001,-33.01035156249998],[-53.31010742187499,-32.927050781249974],[-53.21406249999998,-32.82109375],[-53.12558593749998,-32.73671875],[-53.15727539062496,-32.680078125],[-53.601708984374994,-32.40302734374997],[-53.76171875,-32.05683593749997],[-53.920605468749926,-31.95234375],[-54.220556640625034,-31.855175781249997],[-54.58764648437503,-31.48515625000003],[-55.036035156249994,-31.27900390625004],[-55.091162109375034,-31.31396484374997],[-55.173535156249926,-31.279589843749974],[-55.557324218749955,-30.8759765625],[-55.60302734375003,-30.85078125000001],[-55.62714843749998,-30.858105468749997],[-55.650488281250034,-30.89208984375],[-55.66523437500001,-30.92490234375002],[-55.807763671874994,-31.036718749999977],[-55.87368164062502,-31.069628906250017],[-55.95200195312498,-31.08085937499999],[-56.0046875,-31.079199218750006],[-56.01845703125002,-30.991894531249983],[-55.998974609374955,-30.837207031250003],[-56.4072265625,-30.44746093750001],[-56.83271484374998,-30.107226562499974],[-57.120507812499994,-30.144433593749994],[-57.21445312499995,-30.283398437499983],[-57.55229492187496,-30.261230468749986],[-57.60888671875003,-30.187792968750045],[-57.563867187499994,-30.139941406249974],[-57.40522460937501,-30.03388671875004],[-57.22465820312499,-29.782128906249994],[-56.938623046874994,-29.594824218750034],[-55.890527343749994,-28.370019531249994],[-55.68725585937497,-28.38164062499996],[-55.72548828125002,-28.20410156250003],[-55.10151367187501,-27.866796874999963],[-54.82910156250003,-27.55058593750003],[-54.32700195312495,-27.423535156249997],[-53.83818359375002,-27.121093750000014],[-53.668554687500006,-26.288183593749977],[-53.89116210937499,-25.66884765625001],[-54.15458984374999,-25.523046874999963],[-54.44394531249998,-25.625],[-54.615869140624994,-25.576074218750023],[-54.61054687499998,-25.432714843750034],[-54.47314453124997,-25.22021484375],[-54.43623046875001,-25.12128906250001],[-54.281005859375,-24.30605468750001],[-54.31826171874994,-24.128125],[-54.26689453124996,-24.06582031250001],[-54.241796875,-24.047265624999966],[-54.44023437500002,-23.90175781249998],[-54.62548828125,-23.8125],[-54.98266601562494,-23.974511718749966],[-55.081884765625006,-23.997656249999977],[-55.1943359375,-24.017480468750023],[-55.28691406249993,-24.00429687499999],[-55.366308593750034,-23.99101562499996],[-55.41591796875002,-23.95136718749997],[-55.4423828125,-23.86533203125002],[-55.4423828125,-23.792578125000034],[-55.458886718749966,-23.686718750000054],[-55.51845703124994,-23.627246093750017],[-55.53828124999998,-23.580957031249994],[-55.61767578125,-22.67148437499999],[-55.74663085937499,-22.51269531249997],[-55.753271484375006,-22.410156250000043],[-55.84916992187499,-22.307617187500014],[-55.991406249999926,-22.28115234375005],[-56.18984374999994,-22.28115234375005],[-56.246044921874926,-22.26464843749997],[-56.39487304687498,-22.092675781250023],[-56.44780273437502,-22.07617187500003],[-56.77519531249999,-22.261328125],[-57.955908203125034,-22.109179687500003],[-57.94267578124999,-21.79833984375],[-57.830224609374994,-20.99794921875001],[-57.91513671874998,-20.690332031249966],[-57.97905273437493,-20.65732421874999],[-58.00224609374996,-20.465429687499977],[-58.02539062499997,-20.41582031249999],[-58.05844726562495,-20.38613281249998],[-58.091503906249926,-20.33320312500004],[-58.124609375000034,-20.293457031250014],[-58.13779296874995,-20.237304687500043],[-58.15976562499998,-20.164648437499977],[-58.09375,-20.15107421874997],[-58.021142578124994,-20.05517578124997],[-57.96015625000001,-20.04072265625004],[-57.887597656249966,-20.020410156249994],[-57.860742187499994,-19.97958984375002],[-58.029931640624994,-19.83271484375004],[-58.131494140624994,-19.74453125],[-57.71679687499997,-19.044042968750034],[-57.73085937499999,-18.91718750000004],[-57.783105468749994,-18.91425781249997],[-57.725,-18.73320312500003],[-57.57402343749993,-18.279296875000014],[-57.49565429687496,-18.21464843749999],[-57.58647460937499,-18.122265625],[-57.66166992187493,-17.94736328124999],[-57.78017578125002,-17.67177734374998],[-57.78886718750002,-17.573046875000017],[-57.83247070312501,-17.512109375000037],[-57.90502929687497,-17.53232421874999],[-57.990917968749955,-17.512890625000026],[-58.20556640625,-17.363085937499974],[-58.347753906250006,-17.282128906249994],[-58.39599609374997,-17.234277343750023],[-58.417382812499994,-17.08056640624997],[-58.459814453125006,-16.910742187500006],[-58.478125,-16.70068359375003],[-58.470605468749994,-16.650195312500045],[-58.35039062500002,-16.49082031249999],[-58.34560546875002,-16.284375],[-58.375390624999966,-16.283593749999966],[-58.423681640625034,-16.30791015625003],[-58.49658203124994,-16.32666015625003],[-58.537939453125034,-16.32822265624999],[-60.17558593749996,-16.26933593749999],[-60.187207031249955,-16.132128906250017],[-60.206640625,-15.90195312500002],[-60.242333984374994,-15.479589843750034],[-60.38046874999998,-15.318261718750023],[-60.53046874999998,-15.143164062499977],[-60.58320312499998,-15.098339843749983],[-60.273339843749994,-15.088769531249994],[-60.372705078124994,-14.41875],[-60.506591796875,-13.78984375],[-61.077001953125034,-13.489746093750014],[-61.129150390625,-13.498535156250028],[-61.41606445312502,-13.526562499999969],[-61.511572265625006,-13.541210937500011],[-61.789941406249966,-13.525585937500026],[-61.87412109374998,-13.470410156249983],[-61.944726562499966,-13.40625],[-62.09477539062499,-13.241992187499989],[-62.118017578125006,-13.15976562500002],[-62.765478515625034,-12.99726562500004],[-63.01518554687502,-12.80556640624998],[-63.067480468750006,-12.669140624999983],[-63.34667968749994,-12.68007812499999],[-63.68857421874998,-12.478027343749957],[-64.42050781249995,-12.439746093749974],[-64.783447265625,-12.059375],[-65.18574218749998,-11.749511718749957],[-65.389892578125,-11.246289062500011],[-65.33403320312499,-10.892773437500026],[-65.44711914062503,-10.507421875000034],[-65.4369140625,-10.449023437499946],[-65.39545898437498,-10.392285156250026],[-65.31308593749998,-10.253027343749991],[-65.29858398437497,-10.146777343750017],[-65.39614257812494,-9.712402343749986],[-66.57534179687502,-9.899902343749986],[-67.41694335937495,-10.389843749999969],[-67.72177734374998,-10.683105468749943],[-67.83500976562496,-10.662792968749983],[-67.99169921875,-10.674414062499949],[-68.07167968749994,-10.703125],[-68.39799804687499,-11.01875],[-68.678369140625,-11.11279296875],[-68.84833984374998,-11.01113281249998],[-69.228515625,-10.955664062499963],[-69.46254882812497,-10.948144531250023],[-69.57861328125,-10.951757812499963],[-69.67402343749998,-10.9541015625],[-69.83979492187501,-10.93339843749996],[-69.96035156249997,-10.92988281250004],[-70.06630859374997,-10.982421875],[-70.22006835937503,-11.04765625],[-70.29038085937498,-11.064257812499974],[-70.34199218750001,-11.066699218750017],[-70.39228515624995,-11.058593749999972],[-70.45087890624998,-11.024804687500009],[-70.53325195312496,-10.946875],[-70.59653320312498,-10.976855468750017],[-70.642333984375,-11.010253906249986],[-70.59916992187499,-9.620507812500009],[-70.54111328124998,-9.4375],[-70.60791015625,-9.463671875000031],[-70.63691406249995,-9.478222656249969],[-71.041748046875,-9.81875],[-71.11528320312499,-9.852441406250009],[-71.33940429687499,-9.988574218750031],[-72.18159179687495,-10.003710937500003],[-72.37905273437497,-9.51015625],[-73.20942382812493,-9.411425781249946],[-73.08984375,-9.26572265625002],[-72.970361328125,-9.120117187500028],[-72.97402343750002,-8.9931640625],[-73.07050781249995,-8.8828125],[-73.203125,-8.719335937499991],[-73.30244140624995,-8.654003906250011],[-73.36040039062496,-8.479296875000031],[-73.39814453125001,-8.458984374999986],[-73.54912109374993,-8.34580078125002],[-73.73203125,-7.875390625],[-73.72041015624993,-7.782519531250017],[-73.76689453124999,-7.753515624999963],[-73.82207031249996,-7.738964843750026],[-73.89462890624998,-7.654785156250014],[-73.946875,-7.611230468750023],[-73.98173828124996,-7.58505859375002],[-74.00205078125003,-7.556054687499966],[-73.98173828124996,-7.535742187500006],[-73.95849609374994,-7.506640625000031],[-73.96430664062498,-7.378906250000028],[-73.74946289062498,-7.335351562500037],[-73.72041015624993,-7.309277343749969],[-73.758203125,-7.172753906249952],[-73.79301757812499,-7.135058593750003],[-73.75810546874999,-6.90576171875],[-73.137353515625,-6.4658203125],[-73.23554687500001,-6.098437500000017],[-73.209375,-6.028710937500023],[-73.16289062499996,-5.933398437499974],[-72.97988281249997,-5.634863281249991],[-72.88706054687498,-5.122753906250026],[-72.83193359374994,-5.09375],[-72.69873046874997,-5.067187499999989],[-72.60834960937495,-5.009570312499974],[-72.46899414062497,-4.901269531250023],[-72.35283203124993,-4.786035156249994],[-72.25678710937501,-4.74892578124998],[-71.8447265625,-4.504394531249986],[-70.97368164062499,-4.350488281249994],[-70.86601562499999,-4.229589843749963],[-70.79951171874995,-4.173339843749957],[-70.72158203124997,-4.15888671875004],[-70.53066406249997,-4.167578125000034],[-70.40463867187498,-4.150097656250026],[-70.34365234375,-4.193652343750017],[-70.31689453124994,-4.246972656250037],[-70.23916015625002,-4.30117187499998],[-70.12880859375,-4.286621093749943],[-70.05332031249998,-4.333105468750006],[-70.00395507812496,-4.327246093749963],[-69.97202148437503,-4.30117187499998],[-69.96591796875003,-4.2359375],[-69.94819335937498,-4.200585937500009],[-69.66904296875003,-2.667675781249997],[-69.40024414062498,-1.194921874999977],[-69.63398437500001,-0.50927734375],[-70.07050781249993,-0.13886718750004],[-70.05390624999993,0.578613281250028],[-69.47211914062498,0.72993164062504],[-69.15332031249994,0.65878906250002],[-69.31181640624999,1.050488281249969],[-69.85214843750003,1.05952148437504],[-69.84858398437493,1.708740234375043],[-68.17656249999999,1.719824218749991],[-68.25595703125,1.845507812500017],[-68.19379882812495,1.987011718749983],[-67.93623046874998,1.748486328124969],[-67.40043945312499,2.116699218750028],[-67.11923828124998,1.703613281249986],[-67.082275390625,1.185400390625006],[-66.87602539062499,1.223046875000037],[-66.34711914062498,0.7671875],[-66.06005859375003,0.78535156250004],[-65.68144531249999,0.983447265624989],[-65.52299804687493,0.843408203124966],[-65.55605468750002,0.687988281250014],[-65.47338867187497,0.691259765624977],[-65.10375976562497,1.108105468749983],[-64.20502929687493,1.52949218750004],[-64.00849609374995,1.931591796874969],[-63.43251953124994,2.155566406250045],[-63.389257812500006,2.411914062500045],[-64.04658203124998,2.502392578124997],[-64.22109375000002,3.587402343749972],[-64.66899414062496,4.01181640625002],[-64.788671875,4.276025390625023],[-64.57636718750001,4.139892578125],[-64.19248046874995,4.126855468750009],[-64.02148437500003,3.929101562500051],[-63.33867187500002,3.943896484375045],[-62.85698242187502,3.593457031249969],[-62.71210937499998,4.01791992187502],[-62.41064453124994,4.156738281249972],[-62.153125,4.098388671874986],[-61.82084960937496,4.197021484375],[-61.28007812500002,4.516894531249974],[-61.00283203125002,4.535253906249991],[-60.603857421875006,4.94936523437498],[-60.671972656250034,5.164355468749989],[-60.71196289062499,5.191552734375023],[-60.742138671874926,5.202050781250037],[-60.6513671875,5.221142578125011],[-60.45952148437499,5.188085937500034],[-60.40878906249998,5.21015625],[-60.33520507812497,5.199316406250006],[-60.241650390624926,5.257958984374966],[-60.14204101562498,5.238818359374974],[-59.990673828124955,5.082861328124991],[-60.14863281249998,4.533251953125031],[-59.69970703125,4.353515625]]]]},"properties":{"name":"Brazil","childNum":17}},{"geometry":{"type":"Polygon","coordinates":[[[-59.493310546874994,13.081982421874997],[-59.611328125,13.102099609374989],[-59.6466796875,13.303125],[-59.427636718749994,13.152783203124997],[-59.493310546874994,13.081982421874997]]]},"properties":{"name":"Barbados","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[115.02675781250005,4.899707031249989],[115.1400390625,4.899755859374991],[115.290625,4.352587890624989],[115.10703125000006,4.390429687499974],[115.02675781250005,4.899707031249989]]],[[[115.02675781250005,4.899707031249989],[114.74667968750006,4.718066406250017],[114.84023437500005,4.393212890625009],[114.65410156250007,4.037646484375045],[114.0638671875,4.592675781249966],[114.42441406250006,4.660400390625],[114.99541015625002,5.022363281250023],[115.02675781250005,4.899707031249989]]]]},"properties":{"name":"Brunei","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[91.63193359375003,27.759960937499997],[91.5947265625,27.557666015624996],[91.74306640625002,27.442529296874994],[91.85126953125001,27.438623046874994],[91.95097656249999,27.458300781249996],[91.99082031250003,27.4501953125],[92.044921875,27.364697265624997],[92.08339843750002,27.290625],[92.03115234375002,27.214306640624997],[92.00253906250003,27.147363281249994],[91.99228515625003,27.099902343749996],[91.99863281250003,27.079296875],[92.03085937500003,27.040820312499996],[92.06816406249999,26.9751953125],[92.07343750000001,26.91484375],[92.04970703125002,26.874853515625],[91.99833984374999,26.85498046875],[91.84208984374999,26.852978515624997],[91.67158203125001,26.802001953125],[91.517578125,26.807324218749997],[91.45585937499999,26.866894531249997],[91.4267578125,26.867089843749994],[91.28652343750002,26.789941406249994],[90.73964843750002,26.771679687499997],[90.34589843750001,26.890332031249997],[90.2060546875,26.847509765625],[90.12294921875002,26.754589843749997],[89.94316406249999,26.723925781249996],[89.76386718750001,26.7015625],[89.60996093750003,26.719433593749997],[89.58613281250001,26.778955078124994],[89.33212890625003,26.8486328125],[89.14824218749999,26.816162109375],[89.04091796875002,26.865039062499996],[88.85761718750001,26.961474609374996],[88.73876953125,27.175585937499996],[88.76035156250003,27.218115234375],[88.88164062499999,27.2974609375],[88.89140624999999,27.316064453124994],[88.94755859374999,27.464013671874994],[89.48066406250001,28.059960937499994],[89.53691406249999,28.107421875],[89.65273437500002,28.15830078125],[89.74980468749999,28.188183593749997],[89.81689453125,28.256298828124997],[89.89785156250002,28.294140625],[89.98105468750003,28.311181640624994],[90.34824218750003,28.243945312499996],[90.36298828125001,28.216503906249997],[90.33310546875003,28.093994140625],[90.35273437500001,28.080224609374994],[90.47734374999999,28.070849609374996],[90.63007812500001,28.078564453124997],[90.71572265625002,28.071728515624997],[91.02080078124999,27.970068359375],[91.07773437500003,27.974462890625],[91.22587890624999,28.071240234374997],[91.27304687500003,28.078369140625],[91.30683593750001,28.064013671874996],[91.36757812500002,28.021630859374994],[91.64189453124999,27.923242187499994],[91.63193359375003,27.759960937499997]]]},"properties":{"name":"Bhutan","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[25.2587890625,-17.793554687500006],[25.242285156250006,-17.969042968750003],[25.939355468750023,-18.93867187500001],[26.168066406250006,-19.53828125000001],[27.17822265625,-20.10097656250001],[27.28076171875,-20.47871093750001],[27.679296875,-20.503027343750006],[27.66943359375,-21.064257812500003],[28.014062500000023,-21.55419921875],[29.02558593750001,-21.796875],[29.042382812500023,-22.018359375],[29.237207031250023,-22.07949218750001],[29.315234375000017,-22.15771484375],[29.36484375,-22.193945312500006],[29.1298828125,-22.21328125],[29.013476562500017,-22.278417968750006],[28.94580078125,-22.395117187500006],[28.83984375,-22.480859375],[28.21015625000001,-22.693652343750003],[27.812597656250006,-23.108007812500006],[27.7685546875,-23.14892578125],[27.085546875,-23.577929687500003],[26.835058593750006,-24.240820312500006],[26.617773437500006,-24.3955078125],[26.451757812500006,-24.58271484375001],[26.39716796875001,-24.613574218750003],[26.130859375,-24.671484375],[26.031835937500006,-24.702441406250003],[25.912109375,-24.74746093750001],[25.518164062500006,-25.66279296875001],[25.21337890625,-25.75625],[24.33056640625,-25.74287109375001],[24.19296875,-25.632910156250006],[23.969531250000017,-25.626074218750006],[23.89375,-25.600878906250003],[23.389257812500006,-25.29140625],[23.148730468750017,-25.288671875],[22.878808593750023,-25.45791015625001],[22.59765625,-26.13271484375001],[22.548632812500017,-26.17841796875001],[22.47089843750001,-26.219042968750003],[22.217578125000017,-26.38886718750001],[22.090917968750006,-26.580175781250006],[22.01093750000001,-26.635839843750006],[21.78828125000001,-26.710058593750006],[21.738085937500017,-26.80683593750001],[21.694726562500023,-26.840917968750006],[20.73984375,-26.84882812500001],[20.641406250000017,-26.7421875],[20.79316406250001,-25.915625],[20.4306640625,-25.147070312500006],[19.98046875,-24.77675781250001],[19.977343750000017,-22.00019531250001],[20.9794921875,-21.9619140625],[20.97412109375,-18.31884765625],[23.219335937500006,-17.99970703125001],[23.599707031250006,-18.4599609375],[24.243945312500017,-18.0234375],[24.530566406250017,-18.052734375],[24.909082031250023,-17.821386718750006],[25.2587890625,-17.793554687500006]]]},"properties":{"name":"Botswana","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[22.86005859375001,10.919677734375],[23.646289062500017,9.822900390624994],[23.62265625,9.340625],[23.46826171875,9.11474609375],[23.53730468750001,8.815820312499994],[24.147363281250023,8.665625],[24.291406250000023,8.29140625],[24.853320312500017,8.137548828124991],[25.20039062500001,7.807910156249989],[25.18134765625001,7.557226562499991],[25.27890625,7.427490234375],[26.36181640625,6.635302734374989],[26.30859375,6.455322265625],[26.514257812500006,6.069238281249994],[27.143945312500023,5.722949218749989],[27.4033203125,5.109179687499989],[27.071875,5.199755859374989],[26.822070312500017,5.062402343749994],[25.52509765625001,5.31210937499999],[25.065234375000017,4.967431640624994],[24.31982421875,4.994140625],[23.41718750000001,4.663134765624989],[22.864550781250017,4.723876953125],[22.422167968750017,4.134960937499997],[20.55810546875,4.462695312499989],[20.226367187500017,4.829638671874989],[19.806542968750023,5.089306640624997],[19.5009765625,5.127490234374989],[19.06855468750001,4.891406249999989],[18.594140625000023,4.346240234374989],[18.6103515625,3.478417968749994],[18.474414062500017,3.622998046874997],[18.160937500000017,3.499804687499989],[17.491601562500023,3.687304687499989],[16.610742187500023,3.50537109375],[16.468554687500017,2.831738281249997],[16.183398437500017,2.270068359374989],[16.0634765625,2.90859375],[15.128710937500017,3.826904296875],[15.063574218750006,4.284863281249997],[14.73125,4.602392578124991],[14.56298828125,5.279931640624994],[14.616894531250011,5.865136718749994],[14.43115234375,6.038720703124994],[14.7392578125,6.27978515625],[15.206738281250011,7.206152343749991],[15.480078125,7.523779296874991],[15.957617187500006,7.507568359375],[16.37890625,7.683544921874997],[16.545312500000023,7.865478515625],[16.784765625,7.550976562499997],[17.6494140625,7.98359375],[18.56416015625001,8.0458984375],[19.108691406250017,8.656152343749994],[18.886035156250017,8.836035156249991],[18.95625,8.938867187499994],[20.342089843750017,9.127099609374994],[20.773242187500017,9.405664062499994],[21.682714843750006,10.289843749999989],[21.771484375,10.642822265625],[22.49384765625001,10.996240234374994],[22.86005859375001,10.919677734375]]]},"properties":{"name":"Central African Rep.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-59.78759765624997,43.939599609374994],[-60.11748046874996,43.95336914062506],[-59.727148437500006,44.002832031249994],[-59.78759765624997,43.939599609374994]]],[[[-66.7625,44.68178710937502],[-66.8970703125,44.62890625],[-66.80214843749994,44.80537109374998],[-66.7625,44.68178710937502]]],[[[-60.961572265624966,45.48994140625001],[-61.081738281249926,45.55781249999998],[-60.91245117187498,45.56728515625005],[-60.961572265624966,45.48994140625001]]],[[[-73.69531249999997,45.58549804687502],[-73.85771484375002,45.573583984375006],[-73.57236328124998,45.69448242187502],[-73.69531249999997,45.58549804687502]]],[[[-73.56650390625003,45.469091796875034],[-73.960546875,45.44140624999997],[-73.68745117187498,45.561425781249994],[-73.47607421874997,45.704736328124994],[-73.56650390625003,45.469091796875034]]],[[[-61.10517578124998,45.94472656250002],[-60.86523437499997,45.983496093750006],[-61.05903320312501,45.70336914062497],[-60.73789062499995,45.75141601562498],[-60.46059570312494,45.96870117187501],[-60.733300781249994,45.956591796875045],[-60.297949218750034,46.31123046874998],[-60.22646484374994,46.19555664062506],[-59.86503906249993,46.159521484375006],[-59.8421875,45.941552734374994],[-60.67294921874995,45.59082031250006],[-61.28369140624994,45.573876953124966],[-61.44980468749995,45.71621093750002],[-61.40864257812501,46.17036132812498],[-60.87016601562499,46.796777343749966],[-60.40820312500003,47.00351562499998],[-60.332910156249966,46.737011718749955],[-60.49453125000002,46.270263671875],[-61.10517578124998,45.94472656250002]]],[[[-63.811279296875,46.46870117187501],[-63.68144531249993,46.561914062499994],[-63.12939453125,46.422216796875034],[-62.02373046874999,46.42158203125001],[-62.52607421875001,46.20288085937503],[-62.531347656250034,45.977294921875],[-63.02207031249998,46.06660156249998],[-62.89453125000003,46.12358398437496],[-63.056347656249955,46.22392578124996],[-62.97846679687498,46.31635742187498],[-63.21347656249998,46.15986328124998],[-63.641015624999966,46.23046874999997],[-63.758642578125034,46.397607421874994],[-64.11083984375003,46.425439453124994],[-64.13603515624999,46.59970703125006],[-64.388037109375,46.640869140625],[-63.99355468750002,47.06157226562502],[-64.08789062499997,46.77543945312499],[-63.811279296875,46.46870117187501]]],[[[-61.91411132812496,47.284521484375034],[-61.77255859374998,47.25981445312499],[-62.00830078124994,47.23427734375002],[-61.924707031249966,47.425146484375006],[-61.3955078125,47.63764648437504],[-61.91411132812496,47.284521484375034]]],[[[-54.227148437500034,47.44135742187501],[-54.32597656250002,47.408105468749994],[-54.12817382812494,47.646826171875034],[-54.227148437500034,47.44135742187501]]],[[[-74.70888671874997,45.0038574218751],[-73.55810546875,45.425097656250045],[-73.1595703125,46.01005859375002],[-72.10927734374997,46.55122070312504],[-71.26118164062495,46.75625],[-70.51948242187501,47.032519531250045],[-69.47104492187503,47.96728515625006],[-68.23818359374994,48.62641601562504],[-66.17817382812493,49.21313476562503],[-64.83632812499994,49.191748046875006],[-64.2162109375,48.873632812500034],[-64.51372070312493,48.84111328124999],[-64.24609374999994,48.69111328124998],[-64.34882812500001,48.423193359375034],[-65.259423828125,48.02124023437503],[-65.92670898437495,48.188867187499994],[-66.70439453125002,48.0224609375],[-66.35961914062494,48.06064453125006],[-65.84941406250002,47.91103515625005],[-65.60722656249996,47.67001953125006],[-65.00166015624995,47.84682617187502],[-64.70322265625,47.72485351562503],[-64.91220703125003,47.36865234375003],[-65.31889648437502,47.101220703124994],[-64.831396484375,47.06079101562503],[-64.88251953124993,46.822851562500034],[-64.54150390625,46.240332031250034],[-63.91591796875002,46.165820312500045],[-63.831933593749966,46.107177734375],[-64.05639648437503,46.021337890625006],[-63.70288085937494,45.858007812500034],[-62.70068359374997,45.740576171875006],[-62.750097656250006,45.64824218750002],[-62.483056640624966,45.62182617187506],[-61.955517578124955,45.86816406249997],[-61.776513671874994,45.655615234375006],[-61.49228515624998,45.68701171875],[-61.350488281249966,45.57368164062501],[-61.28198242187494,45.441064453124994],[-61.46098632812502,45.36669921875003],[-61.03154296875002,45.29174804687506],[-63.306298828124994,44.64257812500003],[-63.60400390624997,44.68320312500006],[-63.60976562499999,44.47998046875006],[-63.999707031249926,44.64492187499999],[-64.10087890624993,44.487451171874966],[-64.1669921875,44.58666992187503],[-64.28608398437493,44.55034179687499],[-64.27568359374993,44.33408203124998],[-65.48168945312497,43.51806640625],[-65.73813476562498,43.56074218750001],[-65.88691406250001,43.79521484374999],[-66.125732421875,43.813818359375034],[-66.19306640624995,44.143847656250045],[-65.86801757812498,44.56879882812501],[-66.14638671875002,44.43593750000005],[-66.090625,44.50493164062499],[-64.44814453125,45.33745117187502],[-64.13549804687497,45.023046875],[-64.09316406249997,45.21708984375002],[-63.368017578125034,45.36479492187502],[-64.87314453124998,45.35458984375006],[-64.31464843749998,45.83569335937503],[-64.48222656250002,45.80634765624998],[-64.63271484375002,45.94663085937506],[-64.77851562499998,45.63842773437497],[-65.88447265624995,45.22290039062506],[-66.10976562500002,45.316601562499955],[-66.02656249999995,45.417578125],[-66.43984374999994,45.09589843750001],[-66.87246093749997,45.067285156249966],[-67.12485351562498,45.16943359375],[-67.366943359375,45.17377929687498],[-67.43266601562496,45.603125],[-67.80224609374994,45.7275390625],[-67.806787109375,47.08281249999999],[-68.23549804687502,47.34594726562503],[-68.93720703124998,47.21123046875002],[-69.0501953125,47.426611328125034],[-69.24287109374998,47.46298828124998],[-70.00771484375002,46.70893554687501],[-70.296240234375,45.90610351562506],[-70.86503906249999,45.27070312500001],[-71.327294921875,45.29008789062496],[-71.51752929687495,45.00756835937497],[-74.663232421875,45.00390625000003],[-74.70888671874997,45.0038574218751]]],[[[-126.09208984374995,49.35400390625003],[-126.06401367187499,49.26362304687501],[-126.22963867187498,49.29565429687506],[-126.09208984374995,49.35400390625003]]],[[[-54.55439453125001,49.5888671875],[-54.786523437499966,49.496142578125045],[-54.86357421875002,49.576074218749966],[-54.55439453125001,49.5888671875]]],[[[-54.093701171874955,49.74443359374999],[-53.98066406250001,49.66196289062498],[-54.28613281249997,49.595361328124994],[-54.27763671875002,49.71147460937502],[-54.093701171874955,49.74443359374999]]],[[[-126.64121093749999,49.605810546875006],[-126.93857421874999,49.71845703125004],[-126.92583007812497,49.837744140625006],[-126.73813476562502,49.84365234375005],[-126.64121093749999,49.605810546875006]]],[[[-61.801123046875034,49.093896484374966],[-63.04150390624994,49.224951171875034],[-64.485205078125,49.88696289062497],[-64.13144531249995,49.94165039062503],[-62.858544921874966,49.70546875000005],[-61.817138671875,49.28354492187498],[-61.69614257812495,49.139013671875006],[-61.801123046875034,49.093896484374966]]],[[[-125.18413085937497,50.09711914062498],[-125.301171875,50.4140625],[-125.07402343750002,50.22065429687501],[-125.18413085937497,50.09711914062498]]],[[[-127.19731445312495,50.640380859375],[-125.48208007812501,50.316796874999966],[-124.83061523437499,49.53007812500002],[-123.99580078125,49.22402343750002],[-123.49702148437498,48.58208007812499],[-123.38989257812501,48.67021484374999],[-123.31064453125003,48.41103515625002],[-123.57314453124995,48.32280273437499],[-123.91694335937501,48.386572265625034],[-125.12070312500002,48.76079101562496],[-124.84965820312496,49.02827148437501],[-124.81264648437497,49.212646484375],[-124.92734374999998,49.01420898437499],[-125.489453125,48.933789062499955],[-125.82851562499998,49.09184570312499],[-125.64423828125001,49.18579101562506],[-125.95166015625001,49.24804687500003],[-125.93540039062499,49.401464843750006],[-126.51914062499999,49.396777343750045],[-126.54189453125001,49.590478515624966],[-126.13408203124997,49.672314453124955],[-126.52524414062499,49.71958007812498],[-126.90332031250001,49.94414062499999],[-127.114306640625,49.879736328125034],[-127.24980468749999,50.13798828124996],[-127.34941406249995,50.05195312500001],[-127.46713867187503,50.163427734375006],[-127.86391601562495,50.12773437500002],[-127.90585937499998,50.44521484375002],[-127.48652343749998,50.404638671875034],[-127.46591796874996,50.58310546875006],[-128.05834960937494,50.498486328124955],[-128.34604492187503,50.744238281250006],[-127.91806640624998,50.86054687500001],[-127.19731445312495,50.640380859375]]],[[[-55.45874023437494,51.53652343750005],[-55.58339843749994,51.38857421875002],[-56.031103515625034,51.328369140625],[-55.8,51.033300781250034],[-56.732324218749966,50.007714843749994],[-56.822167968749966,49.613476562499955],[-56.179394531249955,50.114990234375],[-56.161279296874994,49.94013671874998],[-55.50292968749997,49.98315429687503],[-56.14018554687496,49.61914062500006],[-55.869824218749955,49.67016601562506],[-56.08730468750002,49.45195312499999],[-55.375927734374955,49.48974609374997],[-55.34384765624998,49.37290039062506],[-55.22954101562496,49.508154296875006],[-55.35317382812502,49.07944335937506],[-54.50219726562503,49.52734375],[-54.44824218749997,49.329443359375006],[-53.957714843749955,49.44184570312498],[-53.61943359374996,49.321630859375006],[-53.57343750000001,49.141210937500034],[-54.16127929687494,48.787695312500034],[-53.852880859375006,48.81132812499996],[-53.966015624999955,48.70668945312505],[-53.70634765624999,48.65551757812503],[-54.11445312499998,48.393603515625045],[-53.027587890625,48.634716796874955],[-53.1357421875,48.40185546875003],[-53.60976562500002,48.20771484375001],[-53.56943359374998,48.088085937499955],[-53.869580078124926,48.019677734374966],[-53.63823242187496,48.01464843750003],[-53.863671874999966,47.787011718749994],[-53.67236328125,47.64824218749999],[-53.28271484375,47.99785156249996],[-52.86601562499993,48.11298828124998],[-53.16982421875002,47.51210937500005],[-52.945019531249955,47.55283203124998],[-52.782421874999955,47.769433593749966],[-52.653662109375034,47.549414062500006],[-53.11484375,46.65581054687502],[-53.32304687499996,46.71835937499998],[-53.589794921874955,46.638867187499955],[-53.59736328124998,47.14599609374997],[-54.00957031249993,46.839599609375],[-54.173730468749994,46.88037109375003],[-53.84951171875002,47.440332031249994],[-53.98901367187503,47.756201171875034],[-54.191845703124955,47.85981445312501],[-54.488134765625006,47.40385742187502],[-54.47392578124996,47.54707031249998],[-54.856640624999955,47.385009765625],[-55.31572265624993,46.905712890624955],[-55.78852539062498,46.86723632812502],[-55.91923828124996,47.01689453124996],[-55.49150390624996,47.16064453125003],[-54.78461914062501,47.664746093749955],[-55.366308593750034,47.66108398437501],[-55.57612304687498,47.46523437499999],[-56.12724609374999,47.50283203125002],[-55.867089843749994,47.592333984375045],[-55.85791015625,47.81918945312498],[-56.774121093749955,47.56499023437499],[-58.33686523437501,47.73085937500002],[-59.11694335937494,47.57070312499999],[-59.32065429687498,47.736914062500006],[-59.272070312500034,47.99555664062504],[-58.330224609374994,48.52211914062502],[-59.16767578124998,48.558496093749966],[-58.84179687500003,48.74643554687498],[-58.906445312499955,48.65019531249999],[-58.716455078124994,48.59804687500002],[-58.403662109375034,49.08432617187498],[-57.99052734374996,48.987939453124966],[-58.09892578124993,49.07744140624999],[-57.98007812499998,49.229638671874994],[-58.19091796875003,49.25874023437498],[-58.21337890625,49.38666992187501],[-58.01582031249998,49.54248046874997],[-57.79130859374999,49.48999023437503],[-57.92617187499999,49.700830078124994],[-57.4326171875,50.50581054687504],[-57.179589843749966,50.614843750000034],[-57.29799804687502,50.69873046874997],[-57.03593750000002,51.01083984374998],[-56.68242187500002,51.332763671875],[-56.025585937499955,51.56835937500006],[-55.6904296875,51.471337890624994],[-55.666406249999966,51.57890624999999],[-55.45874023437494,51.53652343750005]]],[[[-127.92465820312498,51.47387695312497],[-128.14877929687498,51.62670898437503],[-128.03173828125006,51.708398437499966],[-127.92465820312498,51.47387695312497]]],[[[-79.38427734374997,51.951953125000045],[-79.64375,52.01005859374996],[-79.27128906249996,52.086816406249966],[-79.38427734374997,51.951953125000045]]],[[[-128.36875,52.40087890625],[-128.43979492187503,52.696386718750006],[-128.24726562499998,52.784375],[-128.36875,52.40087890625]]],[[[-80.73168945312494,52.74726562499998],[-82.03925781249998,53.04990234374998],[-81.84731445312494,53.18627929687497],[-81.135595703125,53.20581054687503],[-80.73168945312494,52.74726562499998]]],[[[-131.7537109375,53.195556640625],[-131.63466796874997,52.92216796874999],[-131.97177734374998,52.87983398437498],[-131.45522460937502,52.70170898437502],[-131.59057617187494,52.578222656250006],[-131.25971679687495,52.415917968749966],[-131.31992187499998,52.30307617187498],[-131.142626953125,52.291113281250034],[-131.221533203125,52.15361328124999],[-132.16508789062493,52.783300781250034],[-132.14375,52.99931640624999],[-132.54677734374997,53.1375],[-131.7537109375,53.195556640625]]],[[[-128.55244140624998,52.93974609375002],[-128.50991210937502,52.51860351562502],[-128.678955078125,52.289648437500006],[-128.74633789062494,52.763378906249955],[-128.89980468749997,52.67382812500003],[-129.175927734375,52.964941406250006],[-129.033251953125,53.27993164062505],[-128.63266601562498,53.1125],[-128.55244140624998,52.93974609375002]]],[[[-129.167724609375,53.11787109374998],[-129.32387695312502,53.142138671875045],[-129.23818359374997,53.33007812500006],[-129.167724609375,53.11787109374998]]],[[[-129.84858398437498,53.167919921874955],[-130.51757812500003,53.54423828124999],[-130.45200195312498,53.63115234375002],[-129.94472656250002,53.436376953125034],[-129.75483398437498,53.244775390624994],[-129.84858398437498,53.167919921874955]]],[[[-130.236279296875,53.95854492187502],[-130.38422851562504,53.84394531250001],[-130.703173828125,53.892236328124994],[-130.44799804687497,54.08901367187502],[-130.236279296875,53.95854492187502]]],[[[-132.65551757812503,54.12749023437496],[-132.30336914062497,54.098876953125],[-132.16611328124998,53.95522460937505],[-132.53466796875,53.651708984375034],[-132.18696289062504,53.68481445312503],[-132.134423828125,54.03427734374998],[-131.66762695312502,54.14135742187503],[-131.957421875,53.308691406250034],[-132.34726562500003,53.18920898437503],[-132.747509765625,53.310498046874955],[-132.425,53.33696289062502],[-132.84501953125,53.507714843749994],[-133.07949218749997,53.837011718750034],[-133.04838867187493,54.15893554687497],[-132.65551757812503,54.12749023437496]]],[[[-130.92714843749997,54.47905273437499],[-130.90683593750003,54.63178710937504],[-130.75800781249998,54.61376953125],[-130.92714843749997,54.47905273437499]]],[[[-130.57534179687497,54.769677734374966],[-130.2140625,55.02587890625003],[-130.34941406249996,54.814550781250034],[-130.57534179687497,54.769677734374966]]],[[[-79.97758789062499,56.20703125000006],[-80.057470703125,56.28735351562497],[-79.57973632812502,56.466357421875045],[-79.97758789062499,56.20703125000006]]],[[[-78.93559570312496,56.26606445312498],[-79.17548828124998,55.88505859374999],[-79.18212890625,56.21215820312503],[-79.4951171875,55.87475585937503],[-79.76474609374995,55.80678710937505],[-79.54472656249999,56.12836914062501],[-79.9875,55.89213867187502],[-79.45888671875,56.53974609374998],[-79.53632812499995,56.180078124999966],[-79.27241210937493,56.600439453125006],[-78.93559570312496,56.26606445312498]]],[[[-61.743603515624955,57.55458984375005],[-61.6375,57.41606445312499],[-62.01123046875003,57.54848632812505],[-61.743603515624955,57.55458984375005]]],[[[-79.71650390624998,57.515527343749994],[-79.80844726562498,57.44243164062502],[-79.74257812499997,57.60795898437499],[-79.71650390624998,57.515527343749994]]],[[[-69.16005859375,59.04023437500001],[-69.35283203125002,58.96074218749999],[-69.30322265625003,59.144873046875006],[-69.16005859375,59.04023437500001]]],[[[-64.40703125,60.367089843749966],[-64.44194335937496,60.2978515625],[-64.73793945312497,60.37563476562502],[-64.83642578124997,60.50102539062499],[-64.40703125,60.367089843749966]]],[[[-68.23378906250002,60.24091796875001],[-68.36787109374998,60.314746093750045],[-68.08759765624998,60.58784179687501],[-67.81884765624994,60.449511718750074],[-68.23378906250002,60.24091796875001]]],[[[-78.531640625,60.72856445312499],[-78.66889648437498,60.716894531250006],[-78.24169921875,60.818652343750045],[-78.531640625,60.72856445312499]]],[[[-64.83261718749998,61.366064453125006],[-65.43212890625,61.649511718750034],[-64.78964843750003,61.662207031250034],[-64.83261718749998,61.366064453125006]]],[[[-65.03056640624999,61.879052734374966],[-64.89658203124995,61.73330078125005],[-65.23535156249997,61.89770507812506],[-65.03056640624999,61.879052734374966]]],[[[-79.54531250000002,62.41171875000006],[-79.28647460937495,62.247656250000034],[-79.32392578124995,62.02607421875001],[-79.81611328124995,61.59462890625002],[-80.26518554687496,61.818212890625006],[-80.26005859374996,62.10903320312502],[-79.9267578125,62.39287109375002],[-79.54531250000002,62.41171875000006]]],[[[-64.82382812499998,62.558740234374994],[-64.46503906249998,62.535937500000045],[-64.47832031250002,62.417871093749966],[-64.901220703125,62.421044921874994],[-64.82382812499998,62.558740234374994]]],[[[-70.33706054687497,62.548730468749994],[-70.76606445312498,62.596875],[-71.22011718750002,62.873925781249966],[-70.44262695312497,62.73378906250002],[-70.33706054687497,62.548730468749994]]],[[[-82.00048828124997,62.95419921874998],[-82.02583007812498,62.73007812499998],[-82.56826171875002,62.403222656249994],[-83.01582031249998,62.20991210937498],[-83.69887695312497,62.16025390624998],[-83.91049804687498,62.45415039062499],[-83.37641601562498,62.904931640624994],[-82.00048828124997,62.95419921874998]]],[[[-77.87670898437497,63.470556640625034],[-77.53271484374997,63.233642578125],[-77.94243164062496,63.11440429687502],[-78.536767578125,63.423730468749994],[-77.87670898437497,63.470556640625034]]],[[[-76.67758789062503,63.393945312499966],[-77.36474609374994,63.588330078124955],[-77.13369140624997,63.68203125000002],[-76.65244140624998,63.503564453124994],[-76.67758789062503,63.393945312499966]]],[[[-84.91962890624995,65.26108398437503],[-84.50112304687497,65.45844726562501],[-84.08486328125,65.21782226562502],[-82.05,64.64428710937506],[-81.67612304687498,64.21264648437503],[-81.88710937499997,64.01640625000002],[-80.82895507812495,64.08994140625],[-80.30205078124999,63.76220703125003],[-81.04638671875003,63.461572265624966],[-82.378125,63.706787109375],[-82.46708984375002,63.92695312500001],[-83.30395507812497,64.14379882812506],[-84.63291015625,63.30922851562502],[-85.39262695312496,63.119677734375045],[-85.76894531249997,63.70034179687502],[-87.15190429687499,63.58564453125001],[-86.93203124999997,63.90166015625002],[-86.252099609375,64.13686523437497],[-86.37426757812503,64.56582031249997],[-86.074609375,65.533837890625],[-85.55468750000003,65.91865234374995],[-85.17622070312501,65.746875],[-85.23994140624993,65.51030273437499],[-84.91962890624995,65.26108398437503]]],[[[-84.67475585937498,65.575],[-85.096337890625,65.756201171875],[-85.14960937500001,66.01538085937506],[-84.75737304687496,65.85893554687505],[-84.67475585937498,65.575]]],[[[-83.72597656249997,65.796728515625],[-83.23374023437495,65.71503906249995],[-83.332421875,65.63105468749998],[-84.11826171874995,65.77177734375007],[-84.40717773437501,66.13100585937497],[-83.78696289062495,65.96577148437498],[-83.72597656249997,65.796728515625]]],[[[-108.09272460937501,67.00517578124999],[-107.80551757812493,66.99858398437507],[-107.94394531249999,66.8578125],[-108.09272460937501,67.00517578124999]]],[[[-62.681542968749966,67.05629882812502],[-62.87163085937499,67.06259765625006],[-62.41679687499996,67.18847656250003],[-62.681542968749966,67.05629882812502]]],[[[-107.89985351562497,67.40180664062495],[-107.95024414062503,67.31821289062498],[-108.15224609374997,67.429443359375],[-108.04897460937498,67.664892578125],[-107.89985351562497,67.40180664062495]]],[[[-73.621728515625,67.783837890625],[-74.573388671875,67.82866210937507],[-74.70654296875003,68.06708984374995],[-73.49375,68.00063476562502],[-73.40717773437498,67.79306640625],[-73.621728515625,67.783837890625]]],[[[-86.59555664062498,67.7359375],[-86.89252929687498,67.836572265625],[-86.95981445312503,68.10024414062497],[-86.70209960937501,68.30561523437498],[-86.42114257812497,68.18344726562503],[-86.59555664062498,67.7359375]]],[[[-75.67587890624998,68.32250976562506],[-75.078125,68.17314453124999],[-75.20195312499996,67.45917968750001],[-75.78007812499996,67.28354492187503],[-76.94418945312498,67.25029296875002],[-77.30439453125001,67.68510742187505],[-77.12587890624997,67.94707031250002],[-76.59580078124998,68.27895507812497],[-75.67587890624998,68.32250976562506]]],[[[-78.98271484374999,68.19282226562501],[-79.17475585937493,68.26445312500002],[-78.95258789062495,68.35302734375006],[-78.98271484374999,68.19282226562501]]],[[[-104.54067382812497,68.405908203125],[-105.05136718749999,68.55903320312501],[-104.60200195312503,68.56152343749997],[-104.54067382812497,68.405908203125]]],[[[-74.880859375,68.34868164062505],[-75.40024414062503,68.52548828125],[-75.28740234374996,68.68774414062503],[-74.98364257812497,68.64760742187502],[-74.880859375,68.34868164062505]]],[[[-101.84589843749994,68.58632812499997],[-102.30815429687497,68.681982421875],[-102.01337890624995,68.82539062500001],[-101.73295898437495,68.75341796875],[-101.84589843749994,68.58632812499997]]],[[[-100.21723632812497,68.80668945312502],[-100.59653320312496,68.76640625000007],[-100.56547851562495,69.02680664062501],[-100.21723632812497,68.80668945312502]]],[[[-99.99467773437502,69.01352539062503],[-100.19570312500002,68.991455078125],[-100.153125,69.12949218750003],[-99.99467773437502,69.01352539062503]]],[[[-79.21064453124995,68.845458984375],[-79.24267578125,69.04926757812495],[-78.33256835937496,69.38603515624999],[-78.77919921875,68.95048828124999],[-79.21064453124995,68.845458984375]]],[[[-90.1998046875,69.419091796875],[-90.33027343749993,69.252197265625],[-90.49204101562503,69.369873046875],[-90.1998046875,69.419091796875]]],[[[-76.99536132812503,69.14375],[-77.37939453125,69.2740234375],[-77.18754882812502,69.440087890625],[-76.66884765625002,69.36616210937504],[-76.99536132812503,69.14375]]],[[[-101.171728515625,69.39707031250003],[-101.31289062499998,69.57607421875],[-101.00063476562497,69.4619140625],[-101.171728515625,69.39707031250003]]],[[[-95.51367187499997,69.57363281250002],[-95.43745117187498,69.37846679687505],[-95.73012695312502,69.34755859374997],[-95.80620117187499,69.56049804687501],[-95.89345703125,69.35175781250004],[-95.87583007812495,69.60600585937505],[-95.51367187499997,69.57363281250002]]],[[[-67.91469726562494,69.54096679687504],[-68.22138671874998,69.61674804687502],[-67.908837890625,69.68183593749995],[-67.91469726562494,69.54096679687504]]],[[[-78.02910156249993,69.71489257812502],[-78.03999023437495,69.6083984375],[-78.84819335937502,69.4828125],[-78.02910156249993,69.71489257812502]]],[[[-79.43066406250003,69.78779296874995],[-79.55283203124995,69.63085937500006],[-80.04750976562502,69.63432617187505],[-79.97783203124993,69.50966796874997],[-80.794775390625,69.68925781250005],[-80.42421875000002,69.797607421875],[-79.43066406250003,69.78779296874995]]],[[[-97.439453125,69.64267578125006],[-96.29995117187494,69.34438476562505],[-95.7513671875,68.89765624999998],[-95.26777343749998,68.82607421874997],[-96.40156249999995,68.47070312500003],[-97.47202148437498,68.543701171875],[-98.320556640625,68.84272460937498],[-98.70380859374993,68.80278320312502],[-98.90449218749995,68.93242187500005],[-99.25400390625002,68.86318359374997],[-99.49467773437493,68.95957031249998],[-99.455712890625,69.13120117187503],[-98.45595703124997,69.33466796875001],[-98.54599609375,69.57290039062497],[-98.04135742187498,69.456640625],[-98.20048828124996,69.79697265625006],[-97.79072265624998,69.86162109374999],[-97.439453125,69.64267578125006]]],[[[-86.91303710937501,70.11323242187501],[-86.55766601562499,69.99531249999995],[-87.3232421875,70.08012695312502],[-86.91303710937501,70.11323242187501]]],[[[-74.70888671874997,45.0038574218751],[-74.76245117187494,44.99907226562502],[-74.99614257812496,44.970117187499966],[-75.40126953124997,44.77226562499999],[-75.81933593749997,44.468017578125],[-76.18579101562503,44.24223632812502],[-76.819970703125,43.62880859375011],[-77.59653320312492,43.62861328125007],[-78.45825195312497,43.63149414062511],[-78.72041015624993,43.62495117187501],[-78.84555664062492,43.58334960937506],[-79.171875,43.466552734375085],[-79.0830566406249,43.33139648437509],[-79.05922851562494,43.27807617187506],[-79.066064453125,43.10610351562502],[-79.02617187499996,43.01733398437506],[-78.98076171874993,42.98061523437502],[-78.91508789062496,42.90913085937504],[-79.17373046875,42.74853515625],[-80.24755859374991,42.366015625000045],[-81.02822265624997,42.247167968750006],[-81.50732421874997,42.10346679687504],[-81.97416992187496,41.88872070312499],[-82.43906249999989,41.6748535156251],[-82.69003906249995,41.675195312499994],[-83.141943359375,41.97587890624996],[-83.10952148437497,42.25068359375001],[-82.54531249999997,42.62470703124998],[-82.19038085937495,43.47407226562501],[-82.137841796875,43.570898437500034],[-82.48505859374993,45.08374023437503],[-82.55107421874987,45.3473632812501],[-82.91933593749994,45.51796875000002],[-83.59267578125,45.81713867187506],[-83.46948242187503,45.99467773437499],[-83.61596679687503,46.116845703124994],[-83.97778320312494,46.08491210937507],[-84.12319335937497,46.50292968749997],[-84.44047851562496,46.49814453125006],[-84.66577148437503,46.54326171875002],[-84.87597656249994,46.89990234375003],[-85.07006835937497,46.97993164062498],[-85.65224609375,47.21997070312503],[-86.67216796874996,47.636425781249955],[-87.20800781249997,47.848486328125006],[-87.74389648437497,48.06054687500003],[-88.37817382812497,48.30307617187506],[-89.45566406249992,47.99624023437508],[-90.79731445312495,48.13105468750001],[-91.04345703124991,48.19370117187498],[-91.38720703124997,48.05854492187498],[-92.00517578125002,48.301855468750006],[-92.3484375,48.276611328125],[-92.41459960937493,48.276611328125],[-92.50058593749995,48.43535156250002],[-92.83671875,48.567773437499994],[-93.25795898437497,48.62885742187501],[-93.37788085937498,48.61655273437498],[-93.70771484374995,48.525439453125074],[-93.85161132812496,48.607275390625034],[-94.6208984374999,48.7426269531251],[-94.71279296874997,48.863427734374994],[-94.80346679687497,49.0029296875],[-94.86040039062493,49.258593750000045],[-94.85434570312495,49.304589843749994],[-95.15527343749997,49.3696777343751],[-95.16206054687493,48.991748046875045],[-95.39790039062493,48.99316406249997],[-96.25068359374993,48.99316406249997],[-96.67705078124993,48.99316406249997],[-97.52983398437493,48.99316406249997],[-98.80898437499995,48.99316406249997],[-104.77832031249997,48.993115234375125],[-110.7476562499999,48.993066406250136],[-116.71704101562493,48.993066406250136],[-118.84892578124993,48.993066406250136],[-119.27534179687494,48.993066406250136],[-119.70170898437495,48.99301757812495],[-120.98085937499995,48.99301757812495],[-122.78876953124994,48.99301757812495],[-122.82670898437495,49.028417968750034],[-122.9241699218749,49.07465820312504],[-122.96269531249993,49.07460937500005],[-123.06328125,48.97773437500001],[-123.22944335937493,49.260498046875085],[-122.87910156249995,49.39892578125003],[-123.27675781249997,49.34394531250001],[-123.1875,49.680322265624994],[-123.53056640624989,49.39731445312506],[-124.02861328125002,49.602880859375006],[-123.99262695312497,49.736181640625006],[-123.81718749999993,49.58657226562508],[-123.58247070312498,49.68125],[-123.87441406250005,49.736816406250114],[-123.82543945312493,50.14423828124998],[-123.94589843749995,50.18393554687509],[-123.9849121093749,49.87558593749998],[-124.28125,49.77211914062502],[-124.78237304687492,50.02011718749992],[-125.05668945312495,50.418652343750125],[-124.8598632812499,50.872412109375006],[-125.05878906249993,50.51386718749998],[-125.4763183593749,50.49716796874995],[-125.53935546874996,50.64902343749998],[-125.64130859374994,50.46621093750005],[-126.09433593749995,50.497607421875045],[-126.44746093750004,50.58774414062492],[-125.90410156250002,50.704931640625006],[-126.51435546875,50.679394531250125],[-126.37460937499995,50.83735351562498],[-126.5217773437499,50.86606445312498],[-126.51733398437497,51.0568359375001],[-126.63178710937494,50.915136718750006],[-127.057568359375,50.86752929687509],[-127.70810546875,51.15117187499996],[-127.41967773437496,51.608056640625136],[-126.69145507812502,51.70341796875002],[-127.33872070312489,51.70737304687495],[-127.66870117187497,51.47758789062502],[-127.85053710937498,51.67319335937509],[-127.79536132812493,52.19101562500006],[-127.43793945312504,52.356152343750125],[-127.24223632812496,52.39511718750009],[-126.71396484374989,52.060693359374994],[-127.19399414062498,52.45766601562502],[-126.95136718749994,52.7510253906251],[-127.01933593750002,52.8424804687501],[-127.06621093749989,52.65268554687498],[-127.79189453124994,52.28935546875002],[-128.10224609374993,51.78842773437495],[-128.3576171875,52.1588867187501],[-128.0375,52.318164062500045],[-127.94023437499996,52.545166015625085],[-128.27153320312493,52.3629882812501],[-128.05327148437487,52.91069335937496],[-128.3650390624999,52.82578125000006],[-128.52470703125002,53.1406738281251],[-129.08090820312492,53.36728515625006],[-129.1715820312499,53.53359375000002],[-128.8545898437499,53.70454101562504],[-128.90561523437492,53.559326171875114],[-128.5421386718749,53.420654296875114],[-128.13271484375002,53.417773437500045],[-127.92783203125,53.274707031250045],[-128.2072265624999,53.483203125000074],[-128.67553710937494,53.55458984375005],[-128.76367187500003,53.746875],[-128.5321289062499,53.85810546875007],[-128.959375,53.84145507812505],[-129.2578613281249,53.417968750000085],[-129.56372070312506,53.251464843750114],[-130.33525390625002,53.723925781250074],[-130.04331054687495,54.13354492187503],[-129.62602539062493,54.23027343750002],[-130.08422851562503,54.18139648437503],[-130.4302734375,54.42099609374998],[-129.56064453124995,55.46254882812508],[-129.79516601562503,55.559570312500114],[-130.04848632812494,55.05727539062511],[-130.01406249999997,55.950537109375006],[-130.09785156249995,56.10927734375002],[-130.41313476562487,56.12250976562507],[-130.47709960937496,56.230566406250034],[-130.649072265625,56.26367187500003],[-131.471875,56.55673828125006],[-131.82426757812496,56.58999023437508],[-131.86616210937495,56.792822265625006],[-132.1042968749999,56.85678710937509],[-132.062890625,56.95336914062503],[-132.33798828124992,57.07944335937498],[-132.27939453124998,57.14536132812506],[-132.23217773437494,57.198535156250074],[-132.30166015625005,57.2763183593751],[-132.44248046874986,57.40673828125003],[-132.55048828124995,57.499902343749994],[-133.00141601562495,57.948974609375],[-133.27529296875,58.22285156250004],[-133.54638671874997,58.50346679687499],[-134.21850585937503,58.849902343750045],[-134.32963867187505,58.93969726562506],[-134.39306640625,59.009179687499994],[-134.67724609374997,59.19926757812499],[-134.94375,59.28828125000001],[-135.05102539062491,59.57866210937502],[-135.36787109374998,59.743310546874994],[-135.70258789062504,59.72875976562506],[-136.3218261718749,59.604833984375034],[-136.27797851562494,59.48032226562506],[-136.46635742187493,59.459082031250006],[-136.57875976562494,59.15224609375002],[-136.81328125000002,59.15004882812511],[-137.12622070312491,59.04096679687507],[-137.2775390624999,58.988183593749994],[-137.43857421874995,58.903125],[-137.52089843749994,58.91538085937506],[-137.59331054687493,59.22626953124998],[-138.317626953125,59.611132812500074],[-138.86875,59.94575195312501],[-139.18515624999986,60.083593750000034],[-139.13696289062494,60.17270507812506],[-139.07924804687497,60.279443359375136],[-139.07924804687497,60.3437011718751],[-139.23476562499997,60.339746093749994],[-139.67631835937505,60.32832031249998],[-139.97329101562497,60.183154296875074],[-140.45283203125004,60.29970703125002],[-140.5254394531249,60.21835937499995],[-140.76274414062505,60.25913085937509],[-141.00214843750004,60.300244140625125],[-141.00214843750004,60.884667968749994],[-141.00214843750004,61.761279296875045],[-141.00214843750004,63.22226562499998],[-141.00214843750004,64.09887695312506],[-141.00214843750004,65.55991210937498],[-141.00214843750004,66.43652343750006],[-141.00214843750004,67.89755859374998],[-141.00214843750004,68.77416992187506],[-141.00214843750004,69.65078125000011],[-139.18154296874997,69.51552734375008],[-137.25996093749998,68.96411132812503],[-136.12236328124993,68.88222656250002],[-135.258837890625,68.68432617187503],[-135.93901367187487,68.9741699218751],[-135.575537109375,69.02695312500003],[-135.91020507812487,69.11147460937502],[-135.6914550781249,69.31118164062502],[-135.29282226562486,69.30786132812506],[-135.1408203124999,69.46782226562496],[-134.45683593749993,69.47763671875],[-134.40893554687494,69.68178710937502],[-133.87978515624997,69.50771484375011],[-134.17431640624991,69.25283203125005],[-133.16313476562496,69.43388671874999],[-132.91533203125002,69.62963867187506],[-132.40390625,69.65874023437496],[-132.48847656249993,69.73808593749996],[-132.16342773437498,69.70498046875014],[-131.13637695312497,69.90688476562505],[-130.66547851562495,70.12705078124998],[-129.944970703125,70.09091796875006],[-129.675634765625,70.19296875000009],[-129.64829101562495,69.9977539062501],[-130.83208007812487,69.65146484375006],[-131.9377929687499,69.5347167968751],[-132.8174804687499,69.20576171875004],[-133.41831054687492,68.84428710937493],[-133.138037109375,68.74658203125011],[-133.33666992187497,68.83525390625005],[-132.57763671874997,68.84780273437514],[-132.71894531249998,69.07919921875],[-131.78837890625002,69.43198242187495],[-131.32470703124997,69.36118164062509],[-131.06342773437504,69.45068359375003],[-130.97065429687495,69.20908203125],[-130.1176269531249,69.720068359375],[-128.89892578124994,69.96616210937506],[-129.15791015624995,69.80009765624999],[-129.05434570312502,69.70107421875005],[-128.85302734375003,69.7510253906251],[-127.68378906249994,70.26035156249995],[-128.17011718749998,70.41845703125],[-127.99101562499992,70.57382812500003],[-127.22597656249992,70.29614257812497],[-126.25043945312495,69.54526367187492],[-125.52495117187495,69.35156250000009],[-125.171875,69.42797851562503],[-125.35693359374991,69.62597656250003],[-124.767919921875,69.99003906249996],[-124.99038085937494,70.02661132812511],[-124.55502929687488,70.15122070312509],[-124.40693359374991,69.76743164062506],[-124.12460937499995,69.6899902343751],[-124.33808593749991,69.36484374999995],[-123.5284179687499,69.38935546874995],[-123.02578125,69.81000976562504],[-122.07006835937499,69.81616210937506],[-120.96245117187502,69.66040039062511],[-120.13999023437488,69.38056640625013],[-117.22695312499998,68.913427734375],[-116.05947265625,68.83701171875006],[-116.2434082031249,68.9740722656251],[-115.44228515624994,68.94091796875009],[-114.62016601562496,68.74609375],[-113.96440429687495,68.39907226562502],[-114.09594726562491,68.26679687500007],[-114.76528320312494,68.27021484375004],[-115.12705078124992,68.13203124999995],[-115.43447265624994,67.90234375000006],[-115.13320312499994,67.819189453125],[-112.50302734374993,67.6819335937501],[-110.9900390624999,67.79082031250007],[-110.07392578124995,67.99291992187506],[-109.63037109374991,67.73271484374996],[-109.03803710937504,67.69116210937503],[-108.85200195312497,67.42197265625009],[-108.61333007812493,67.59804687500008],[-107.98872070312495,67.2563964843751],[-107.99130859374995,67.09516601562513],[-108.49604492187493,67.09228515625006],[-107.25947265624998,66.39853515624995],[-107.71035156250001,66.74003906250007],[-107.7250976562499,66.98413085937506],[-107.15649414062497,66.88173828124997],[-107.9583984375,67.81860351562506],[-107.79829101562498,68.03691406249996],[-106.42426757812491,68.20058593750008],[-105.7501953125,68.59228515625011],[-106.45805664062496,68.51645507812495],[-106.60849609374988,68.35737304687504],[-107.61933593749994,68.3310546875],[-107.73417968749989,68.17373046875011],[-108.3228027343749,68.15410156250002],[-108.71811523437488,68.29746093750009],[-108.31347656249996,68.61079101562498],[-106.16445312499992,68.91987304687507],[-105.68559570312489,68.82817382812505],[-105.3774414062499,68.413818359375],[-104.65317382812488,68.23007812500003],[-104.48681640624991,68.06318359374998],[-103.47412109374993,68.11503906250005],[-102.32036132812489,67.73564453125005],[-101.55498046874992,67.69316406250007],[-100.21293945312489,67.83857421875004],[-98.92045898437502,67.72578124999998],[-98.41210937499991,67.80717773437505],[-98.63154296875004,68.0725585937501],[-97.45493164062486,67.61699218750002],[-97.20654296874989,67.85507812500003],[-97.73911132812495,67.97817382812505],[-98.19252929687494,67.92299804687502],[-98.65048828124989,68.36352539062506],[-98.21855468750002,68.31743164062507],[-97.7942382812499,68.38759765625],[-97.9250976562499,68.523681640625],[-97.41035156249993,68.49653320312498],[-96.97670898437497,68.25541992187505],[-96.43066406249991,68.3105957031251],[-96.72207031250005,68.03876953124998],[-95.9703125,68.24912109375],[-96.36914062499991,67.50976562500003],[-96.14145507812489,67.27182617187503],[-95.71992187499998,67.31679687500014],[-95.77768554687495,67.18461914062505],[-95.41591796875005,67.15556640624999],[-95.41889648437504,67.01323242187493],[-96.42255859374995,67.05175781249997],[-95.7875488281249,66.616796875],[-96.03686523437489,66.9375],[-95.39965820312503,66.94946289062509],[-95.25874023437493,67.26254882812492],[-95.65048828124986,67.73745117187505],[-95.46069335937503,68.02138671875],[-94.74443359374993,68.07089843749995],[-93.44892578124998,68.61889648437503],[-93.85244140624994,69.00034179687495],[-94.06489257812495,68.78476562500006],[-94.600439453125,68.80322265625011],[-94.08364257812497,69.12309570312507],[-94.254736328125,69.31376953125002],[-93.61948242187492,69.41699218750009],[-93.74853515624991,69.2261230468751],[-93.5322753906249,69.48090820312495],[-94.2708007812499,69.45512695312505],[-94.63383789062496,69.64965820312506],[-94.82250976562494,69.577783203125],[-95.96494140624989,69.80278320312499],[-96.5513671875,70.21030273437506],[-96.29770507812492,70.51137695312511],[-95.87861328124998,70.54897460937514],[-95.88632812499986,70.69428710937507],[-96.25800781249993,70.64228515625013],[-96.54892578124995,70.80874023437511],[-96.44658203124996,71.23989257812502],[-96.06201171874997,71.41386718749993],[-95.5642578124999,71.33676757812503],[-95.40625,71.49165039062498],[-95.87231445312494,71.57314453125005],[-94.73486328124994,71.98295898437507],[-94.30834960937491,71.76489257812506],[-93.74628906249998,71.742822265625],[-92.94868164062493,71.26210937500011],[-92.98144531249994,70.8522460937501],[-91.56406249999995,70.1782714843751],[-92.32050781250004,70.2353515625],[-92.51186523437494,70.10385742187503],[-91.976708984375,70.03867187500009],[-92.88779296874989,69.66821289062511],[-92.31166992187494,69.67290039062499],[-91.91196289062495,69.53125],[-91.20180664062494,69.64477539062494],[-91.43994140624997,69.52568359375002],[-90.4155761718749,69.45698242187507],[-90.89228515625004,69.26728515624995],[-91.23720703125005,69.28554687500014],[-90.47900390624994,68.88115234374999],[-90.57363281250005,68.47470703124998],[-90.20478515625004,68.25747070312511],[-89.27954101562491,69.25546875000003],[-88.22353515625,68.91503906249997],[-87.81357421874986,68.34570312499997],[-87.89267578125,68.24814453125],[-88.34697265624993,68.28828125000001],[-88.313818359375,67.95034179687508],[-87.359375,67.17724609374997],[-86.56079101562491,67.48212890625007],[-85.64316406249992,68.69970703124997],[-84.86757812499994,68.77333984375005],[-85.10664062499995,68.84404296875007],[-84.86220703125,69.07397460937503],[-85.38676757812493,69.23188476562504],[-85.50737304687487,69.84526367187493],[-82.61835937499993,69.69106445312514],[-82.39023437499989,69.60087890625007],[-82.75483398437493,69.49438476562506],[-82.30986328124996,69.41000976562509],[-82.22753906249997,69.24887695312495],[-81.37783203125005,69.18564453125003],[-81.95791015624991,68.88364257812498],[-81.38090820312496,68.85004882812504],[-81.28154296874987,68.65722656250003],[-81.91484374999993,68.4587890625001],[-82.55268554687504,68.44648437500007],[-82.22241210937489,68.145263671875],[-82.0125,68.19389648437496],[-81.97646484374997,67.86201171875001],[-81.2943359375,67.497412109375],[-81.46757812499996,67.0698730468751],[-83.40644531249998,66.37124023437508],[-84.53847656249994,66.97280273437505],[-84.84575195312502,67.02871093750008],[-85.11372070312498,66.90693359375013],[-84.73774414062504,66.93359375000006],[-84.223046875,66.68247070312506],[-83.86904296875,66.2135742187501],[-84.29306640624995,66.29179687500005],[-84.628076171875,66.20771484374998],[-85.603857421875,66.56826171875005],[-86.708154296875,66.52304687500009],[-86.68510742187502,66.36040039062499],[-85.95874023437491,66.11904296875002],[-87.45288085937503,65.33896484375009],[-87.96997070312503,65.34892578124999],[-89.7494140625,65.93603515625006],[-89.88969726562487,65.86855468749997],[-91.42724609374994,65.94790039062497],[-91.04111328124989,65.82983398437509],[-90.98344726562496,65.91923828124999],[-89.92407226562497,65.78027343750011],[-88.97402343749994,65.34829101562502],[-87.02753906249995,65.19809570312498],[-88.10561523437497,64.18330078125001],[-88.81772460937489,63.99223632812499],[-89.20063476562493,64.11376953125006],[-89.13154296874998,63.96850585937494],[-89.61582031249995,64.030615234375],[-89.8113281249999,64.18056640625],[-90.04165039062494,64.14086914062509],[-89.85571289062497,63.9569824218751],[-90.16816406250004,63.978759765625085],[-90.15473632812498,63.68964843749998],[-90.81191406249991,63.580908203125034],[-91.98222656249996,63.82241210937502],[-92.33842773437496,63.787646484375045],[-93.69633789062493,64.14716796875013],[-93.55981445312491,63.865283203125074],[-93.27021484374998,63.840869140625074],[-93.37851562499992,63.94848632812497],[-92.15688476562491,63.691699218750045],[-92.46508789062491,63.55507812500011],[-91.84184570312496,63.69755859374999],[-90.97006835937489,63.442773437500136],[-90.69858398437492,63.06386718750005],[-91.44897460937503,62.804052734375034],[-92.3612792968749,62.81938476562496],[-91.93583984374993,62.59238281250009],[-92.55141601562491,62.546728515625034],[-92.76596679687492,62.34995117187509],[-92.52797851562494,62.16840820312504],[-93.20537109374993,62.364941406250125],[-92.90551757812503,62.21513671874996],[-93.3330566406249,61.93291015625002],[-93.58178710937494,61.94204101562511],[-93.31201171874997,61.76728515625004],[-93.91274414062497,61.48144531250006],[-94.509375,60.60454101562493],[-94.76171874999991,60.498242187500125],[-94.78828124999998,59.26787109374993],[-94.95732421874996,59.068847656250085],[-94.28706054687493,58.716015625000125],[-94.33222656249998,58.297363281250114],[-94.12319335937494,58.73671875000008],[-93.1787597656249,58.72563476562496],[-92.43281249999993,57.3203125],[-92.7981445312499,56.921972656250034],[-90.89746093750003,57.25693359375006],[-88.94848632812489,56.85131835937503],[-88.07509765624997,56.46728515624994],[-87.48242187499991,56.021289062500045],[-85.55932617187491,55.54018554687508],[-85.21801757812491,55.348974609375034],[-85.3652832031249,55.07929687499998],[-85.06093749999997,55.285644531250085],[-83.91059570312493,55.314648437499955],[-82.39326171874998,55.067822265625125],[-82.219384765625,54.8134765625],[-82.42416992187486,54.2445800781251],[-82.14145507812492,53.81762695312497],[-82.29155273437496,53.03071289062507],[-81.5994140624999,52.432617187500085],[-81.82788085937489,52.22421875000009],[-81.46621093749994,52.204492187500136],[-80.588037109375,51.667236328125114],[-80.4433105468749,51.38857421875002],[-80.85122070312497,51.125],[-80.47832031249993,51.30732421874998],[-80.10356445312487,51.282861328125136],[-79.34790039062494,50.76264648437504],[-79.737451171875,51.186279296875],[-79.33867187500002,51.62817382812497],[-79.04052734375003,51.46376953125005],[-78.90317382812495,51.200292968750034],[-78.73134765624994,51.497460937499994],[-78.98164062499993,51.774560546875136],[-78.44809570312495,52.26137695312502],[-78.74414062499994,52.65537109374998],[-79.10034179687497,53.65664062500005],[-78.99604492187493,54.00249023437499],[-79.241796875,54.098876953125085],[-79.14672851562491,54.16923828125002],[-79.71235351562495,54.6718261718751],[-77.77529296874994,55.291259765625],[-76.60405273437496,56.19956054687495],[-76.52558593749998,56.8917968750001],[-76.80981445312497,57.65795898437506],[-77.15678710937496,58.018896484375034],[-78.51508789062493,58.68237304687503],[-77.76069335937498,59.38002929687505],[-77.72617187499995,59.67587890624992],[-77.34907226562495,59.57895507812509],[-77.48530273437493,59.684570312500114],[-77.28920898437494,60.0220214843751],[-77.58588867187498,60.088183593750074],[-77.45288085937497,60.1458007812501],[-77.6814453124999,60.427099609375034],[-77.503564453125,60.54272460937497],[-77.7908203124999,60.63984375000004],[-77.58955078124993,60.808593750000114],[-78.18134765624995,60.81914062499996],[-77.51435546874998,61.55629882812505],[-78.02138671874997,61.8320800781251],[-78.13339843749986,62.28227539062496],[-77.372412109375,62.572509765625114],[-75.81689453124991,62.31586914062507],[-75.7898437499999,62.17958984375002],[-75.3412109375,62.312109375],[-74.63256835937497,62.115673828125125],[-74.6458007812499,62.21113281250004],[-73.70507812499991,62.47314453124994],[-72.68696289062498,62.12456054687499],[-72.771630859375,61.840429687500006],[-72.50556640624998,61.922656250000074],[-72.22612304687487,61.83159179687499],[-72.04003906249991,61.68027343750006],[-72.21586914062502,61.58725585937495],[-71.86611328125,61.68852539062499],[-71.63828124999995,61.6171875],[-71.85439453124991,61.43979492187492],[-71.42270507812489,61.158935546875085],[-70.27929687499991,61.06865234374999],[-69.99243164062491,60.8564941406251],[-69.50332031249994,61.04042968750011],[-69.40473632812493,60.84677734375009],[-69.75947265624998,60.440234375000045],[-69.67373046874994,60.07587890625007],[-70.65483398437496,60.02622070312506],[-69.73393554687493,59.918017578125045],[-69.68188476562489,59.34174804687507],[-69.3440429687499,59.303076171875006],[-69.53164062499994,58.86923828125009],[-69.64838867187493,58.82080078125],[-69.78417968749994,58.95571289062511],[-70.15434570312496,58.76059570312498],[-69.78989257812486,58.689306640625034],[-69.27109374999986,58.88393554687505],[-68.69819335937495,58.904541015625],[-68.38115234374993,58.74350585937506],[-68.22939453124994,58.48457031250007],[-68.35654296874989,58.163232421875136],[-69.04082031249996,57.902490234375136],[-68.41357421874997,58.0517578125],[-68.02104492187493,58.48530273437504],[-67.88828124999989,58.29575195312495],[-68.06386718750005,58.13896484374999],[-67.75595703124992,58.4045898437501],[-67.6782714843749,57.99111328125008],[-67.5696289062499,58.21347656250006],[-66.72216796874991,58.49101562499996],[-66.36240234374989,58.791162109374994],[-66.0023925781249,58.43120117187502],[-66.04306640624995,58.82065429687495],[-65.72099609374996,59.02377929687495],[-65.38354492187494,59.06020507812508],[-65.7,59.21333007812501],[-65.4117187499999,59.31499023437496],[-65.47509765624994,59.47031249999998],[-65.03823242187494,59.38789062500007],[-65.40742187499993,59.53935546875002],[-65.4333984374999,59.776513671874994],[-65.02817382812495,59.77070312500007],[-65.17172851562489,59.90800781249996],[-64.81733398437498,60.3310546875],[-64.49941406250005,60.26826171875001],[-64.41958007812494,60.17138671874997],[-64.76845703124997,60.01210937500005],[-64.28349609374993,60.06406249999998],[-64.22631835937491,59.741210937500085],[-64.05605468750005,59.82255859374996],[-63.7501953124999,59.51259765625005],[-63.945458984374994,59.380175781250074],[-63.775878906249915,59.277148437500045],[-63.539892578124864,59.332861328125034],[-63.41513671874995,59.194384765625074],[-63.97114257812498,59.053808593750034],[-63.24843749999991,59.068310546874955],[-63.28212890624994,58.86738281250007],[-63.05029296874997,58.87817382812494],[-62.87387695312489,58.67246093749998],[-63.537060546874926,58.329931640625006],[-63.209960937499886,58.46694335937502],[-62.593847656249864,58.47402343750005],[-62.81206054687502,58.20039062500007],[-63.26152343749993,58.014697265625074],[-62.486230468749966,58.15405273437506],[-62.30566406249997,57.97226562499995],[-61.95864257812505,57.91176757812508],[-61.9679687499999,57.61191406250009],[-62.495556640624926,57.489208984375125],[-61.92114257812497,57.42080078125005],[-61.977441406249966,57.24794921875002],[-61.33374023437494,57.01059570312498],[-61.37163085937502,56.68081054687511],[-62.497265624999926,56.80170898437504],[-61.73774414062498,56.52602539062502],[-61.940429687499886,56.423583984375114],[-61.42529296874994,56.360644531250074],[-61.713085937499955,56.230957031250114],[-61.364697265624926,56.2160156250001],[-61.30112304687495,56.04716796874999],[-61.4495117187499,55.99570312499998],[-61.08935546874997,55.86635742187511],[-60.74326171874989,55.94145507812493],[-60.56210937499995,55.727001953125125],[-60.341015624999926,55.78466796874997],[-60.40830078124995,55.649560546874994],[-60.19238281249994,55.4809082031251],[-60.617138671874955,55.060205078124994],[-59.75878906249997,55.3095703125],[-59.68906249999989,55.19633789062502],[-59.43789062500005,55.175927734375136],[-59.837792968749994,54.813964843750114],[-59.25957031249996,55.19995117187506],[-58.99711914062496,55.149462890625074],[-58.780175781249994,54.838378906250114],[-58.39814453124998,54.77412109374998],[-57.96245117187493,54.875732421875085],[-57.40449218750004,54.59086914062496],[-57.69926757812496,54.38657226562506],[-58.435205078124966,54.228125],[-58.63320312499999,54.04956054687497],[-59.8230468749999,53.83442382812504],[-60.14492187499994,53.59614257812498],[-60.395410156249994,53.653320312500085],[-60.1002929687499,53.48696289062511],[-60.329492187499966,53.26611328125006],[-58.652050781249926,53.97788085937495],[-57.935986328124955,54.09116210937492],[-58.31748046874989,54.11445312500007],[-58.192089843749926,54.228173828125136],[-57.4160644531249,54.162744140625136],[-57.134960937499926,53.79184570312506],[-57.524072265624966,53.61142578125006],[-57.331738281249955,53.469091796875034],[-56.84086914062496,53.73945312500004],[-56.46499023437505,53.76503906250011],[-55.96611328125002,53.4711425781251],[-55.79794921874995,53.211962890625045],[-55.80283203124989,52.64316406249998],[-56.324902343749926,52.54453124999998],[-55.74648437499994,52.4745605468751],[-55.7771484374999,52.3642578125],[-56.01171874999997,52.394482421875125],[-55.695214843749994,52.13779296875006],[-56.97597656250005,51.45766601562505],[-58.510351562500006,51.295068359375136],[-59.88632812499992,50.316406250000085],[-61.72485351562503,50.10405273437499],[-61.91953124999989,50.2328613281251],[-62.71542968749995,50.30166015625008],[-66.49550781249991,50.2118652343751],[-66.94116210937503,49.993701171875045],[-67.37202148437495,49.348437500000045],[-68.28193359374998,49.197167968750136],[-69.67387695312496,48.19916992187504],[-71.01826171874993,48.455615234375045],[-69.86552734374993,48.17226562500005],[-69.775,48.09809570312504],[-69.9944335937499,47.73989257812508],[-70.70585937499996,47.13979492187505],[-71.26777343749995,46.79594726562499],[-71.87958984374998,46.68681640624996],[-72.98100585937493,46.209716796875085],[-73.4766113281249,45.738232421874955],[-74.03784179687494,45.501855468750136],[-74.31508789062494,45.531054687500045],[-73.97382812499995,45.345117187499994],[-74.70888671874997,45.0038574218751]]],[[[-96.78232421874998,72.93662109375],[-97.0927734375,72.99692382812503],[-96.86240234374995,73.18881835937506],[-96.78232421874998,72.93662109375]]],[[[-114.52153320312502,72.592919921875],[-113.57807617187501,72.65209960937506],[-113.2923828125,72.94980468750003],[-112.75361328125001,72.98603515624995],[-111.26972656249994,72.71372070312498],[-111.895166015625,72.35610351562497],[-111.67509765625002,72.30014648437503],[-110.20512695312495,72.66127929687497],[-110.66083984374998,73.00820312500002],[-110.00844726562494,72.983642578125],[-108.75498046875002,72.55107421874999],[-108.18823242187501,71.72377929687502],[-107.812841796875,71.62617187500004],[-107.30600585937496,71.89467773437502],[-108.23740234374999,73.14990234375003],[-108.029052734375,73.34873046875003],[-106.48212890624998,73.19619140624997],[-105.41513671874995,72.788330078125],[-104.38593749999997,71.57695312500005],[-104.51479492187502,71.06425781250005],[-103.58457031249995,70.63085937500003],[-103.07719726562497,70.50883789062505],[-103.04956054687503,70.65507812499999],[-101.67631835937495,70.27827148437495],[-101.56240234375001,70.135009765625],[-101.04267578125,70.11079101562504],[-100.98237304687497,69.67988281250001],[-101.483837890625,69.85019531250006],[-101.64765624999997,69.69853515625007],[-102.18212890624997,69.845947265625],[-102.59589843749997,69.71791992187502],[-102.62109374999996,69.55151367187506],[-103.464892578125,69.64448242187498],[-103.04892578124999,69.47177734375006],[-103.12021484374995,69.20458984374997],[-102.44677734374997,69.476318359375],[-102.04594726562493,69.46484374999997],[-101.85712890625001,69.02397460937505],[-102.89506835937499,68.8236328125],[-104.57143554687501,68.87211914062502],[-105.105859375,68.92041015625],[-105.019580078125,69.08125],[-106.27016601562497,69.19458007812497],[-106.65908203124997,69.439599609375],[-107.43989257812497,69.00214843749995],[-108.36499023437497,68.93476562499998],[-109.47211914062501,68.67670898437498],[-113.12773437500002,68.49414062500003],[-113.61684570312501,68.8384765625],[-113.69414062499995,69.19501953124998],[-115.61811523437495,69.28295898437506],[-116.51347656249993,69.42460937500005],[-117.19541015624995,70.05405273437503],[-114.59233398437497,70.31245117187498],[-112.63789062499997,70.225244140625],[-111.63256835937497,70.30883789062497],[-113.75727539062503,70.69072265625005],[-115.99091796874997,70.586279296875],[-117.58706054687498,70.62954101562502],[-118.2640625,70.888330078125],[-118.26909179687493,71.03471679687505],[-115.30341796874997,71.49370117187505],[-117.93564453125003,71.39208984375003],[-118.22646484374995,71.46708984375005],[-117.742333984375,71.65932617187502],[-118.58300781250003,71.64902343749998],[-118.98769531249997,71.7642578125],[-118.94462890624997,71.98554687499995],[-118.21347656249998,72.26289062499998],[-118.481298828125,72.42768554687498],[-118.13310546874995,72.63281250000003],[-114.63823242187499,73.37265625000003],[-114.20639648437495,73.29780273437495],[-114.05170898437497,73.07099609375004],[-114.52153320312502,72.592919921875]]],[[[-105.28891601562499,72.919921875],[-106.92153320312497,73.479833984375],[-106.61396484375001,73.69560546875002],[-105.31796874999995,73.76713867187502],[-104.5875,73.57807617187495],[-104.62172851562495,73.3111328125],[-105.28891601562499,72.919921875]]],[[[-79.53730468749998,73.65449218749998],[-78.2865234375,73.66582031250007],[-77.20654296874997,73.49956054687505],[-76.18339843749999,72.84306640625005],[-77.83593750000003,72.89682617187498],[-79.3193359375,72.75771484375],[-79.820703125,72.82631835937502],[-80.18330078124995,73.22465820312499],[-80.77641601562502,73.33417968750001],[-80.84887695312503,73.72124023437499],[-79.53730468749998,73.65449218749998]]],[[[-86.58935546874997,71.01079101562507],[-85.64384765624999,71.15244140624998],[-85.09487304687497,71.15195312500006],[-84.82373046874997,71.02861328125005],[-84.69941406249995,71.63144531250003],[-85.33906249999998,71.69726562500003],[-85.91162109375,71.98652343749998],[-85.321875,72.23315429687506],[-84.28374023437499,72.04448242187499],[-84.84199218749995,72.30815429687505],[-84.62304687500003,72.37656250000003],[-85.34111328124993,72.42153320312497],[-85.64990234374997,72.72216796875003],[-85.26210937500002,72.95400390625],[-84.25664062499999,72.79672851562503],[-85.454736328125,73.10546875000003],[-84.41606445312496,73.45649414062495],[-83.781884765625,73.41689453125],[-83.72983398437495,73.57587890624995],[-81.946142578125,73.72983398437506],[-81.40615234374997,73.634521484375],[-80.27724609375,72.77016601562502],[-81.229345703125,72.31171874999998],[-80.61147460937497,72.450830078125],[-80.925146484375,71.90766601562501],[-80.18193359374996,72.20878906250007],[-79.884375,72.17719726562501],[-80.10893554687499,72.33217773437497],[-79.83129882812503,72.44628906250003],[-79.000244140625,72.27202148437507],[-79.00781250000003,72.04291992187501],[-78.58510742187497,71.880615234375],[-78.86274414062495,72.100830078125],[-78.69926757812496,72.35141601562498],[-77.51650390624997,72.17778320312505],[-78.48427734374994,72.47060546875002],[-77.75322265624996,72.72475585937502],[-75.70429687499998,72.57153320312497],[-75.05268554687493,72.22636718749999],[-75.92280273437501,71.71723632812501],[-74.90317382812503,72.10048828125002],[-74.20932617187498,71.978662109375],[-74.31572265624999,71.84267578125],[-75.20478515625001,71.70913085937497],[-74.70078125,71.67558593750005],[-74.99619140624998,71.21811523437503],[-74.48808593750002,71.64838867187501],[-73.8140625,71.77143554687495],[-74.197265625,71.404150390625],[-73.71284179687498,71.58759765624998],[-73.18061523437501,71.282861328125],[-73.27822265625,71.53798828125],[-72.901953125,71.67778320312507],[-71.64067382812499,71.51625976562502],[-71.22939453124997,71.33876953125],[-71.49501953124997,71.10512695312502],[-71.93793945312498,71.09428710937502],[-72.63271484374994,70.83076171874998],[-71.74252929687495,71.046875],[-71.370849609375,70.97514648437499],[-70.82607421874994,71.10874023437503],[-70.67265625,71.05219726562498],[-70.76171874999997,70.79223632812503],[-71.89018554687502,70.43154296875002],[-71.27587890625,70.50029296874999],[-71.42944335937503,70.12778320312503],[-70.97978515624999,70.5810546875],[-69.94980468750003,70.84501953125005],[-68.49575195312502,70.61025390625],[-68.363525390625,70.48125],[-70.05771484375,70.042626953125],[-68.77822265625,70.20356445312501],[-69.00830078124997,69.97895507812501],[-68.74404296874997,69.94140625],[-68.05908203124997,70.317236328125],[-67.36367187499994,70.03442382812503],[-67.22163085937495,69.73071289062506],[-68.02041015625,69.77006835937499],[-69.25078124999999,69.51191406249998],[-68.51303710937498,69.57729492187497],[-67.236962890625,69.460107421875],[-66.71674804687495,69.31186523437498],[-66.70742187500002,69.16821289062503],[-68.40629882812499,69.23222656250002],[-69.040625,69.09799804687503],[-68.41552734375,69.17207031250001],[-67.8326171875,69.06596679687499],[-67.88320312500002,68.78398437499999],[-69.31909179687497,68.85698242187505],[-68.21040039062495,68.702978515625],[-67.9384765625,68.524169921875],[-66.74272460937502,68.45776367187497],[-67.032958984375,68.32607421874997],[-66.923095703125,68.06572265625005],[-66.72900390624997,68.12900390625006],[-66.66269531249995,68.03442382812497],[-66.63095703124998,68.21064453124998],[-66.21240234374997,68.280419921875],[-66.44394531249998,67.83383789062506],[-65.94238281250003,68.07094726562505],[-65.86435546875003,67.92285156249997],[-65.50908203124996,67.96826171875],[-65.40126953125002,67.67485351562499],[-65.41533203124996,67.87924804687498],[-64.92231445312495,68.03164062500002],[-65.02109375,67.78754882812495],[-64.63779296875,67.84023437500002],[-63.850195312500034,67.56606445312502],[-64.00795898437502,67.34731445312497],[-64.69995117187494,67.35053710937501],[-63.83623046874993,67.26411132812498],[-63.59160156250002,67.3775390625],[-63.040136718750034,67.235009765625],[-63.70156249999994,66.82236328125003],[-62.962304687499966,66.94926757812505],[-62.37973632812495,66.90537109375],[-62.12358398437499,67.046728515625],[-61.35341796874994,66.689208984375],[-61.52783203124994,66.55810546875003],[-62.12333984374993,66.64306640625003],[-61.57080078125,66.37290039062506],[-61.95634765624993,66.30932617187497],[-62.553125,66.40683593750003],[-62.53359374999994,66.22700195312498],[-61.99160156250002,66.03530273437502],[-62.624121093750006,66.01625976562505],[-62.381982421874966,65.83330078124999],[-62.65888671874998,65.63994140625002],[-63.16894531249997,65.65732421875],[-63.45874023437494,65.85302734375],[-63.42089843749997,65.70859374999998],[-63.651074218749955,65.66098632812506],[-63.33745117187493,65.61674804687502],[-63.36337890624998,65.22973632812503],[-63.606591796874966,64.92807617187503],[-64.345703125,65.17241210937499],[-64.26967773437497,65.40078124999997],[-64.55507812500002,65.1166015625],[-65.401611328125,65.764013671875],[-64.44536132812496,66.31713867187497],[-65.0044921875,66.07773437500003],[-65.82573242187499,65.996923828125],[-65.65634765625003,66.204736328125],[-66.06372070312497,66.13271484374997],[-66.986328125,66.62749023437505],[-67.07685546874995,66.52548828125006],[-67.30732421874993,66.5697265625],[-67.22539062499993,66.31025390624998],[-67.88339843749995,66.46743164062502],[-67.18320312499995,66.03442382812503],[-67.350439453125,65.92973632812502],[-67.82802734374997,65.96518554687503],[-68.45991210937498,66.249267578125],[-68.74892578125,66.200048828125],[-68.21718750000002,66.078857421875],[-68.18671874999993,65.87099609375002],[-67.86645507812497,65.773681640625],[-67.936767578125,65.56489257812501],[-67.56962890624999,65.64355468749997],[-67.11796874999999,65.44038085937495],[-67.3365234375,65.34658203125005],[-66.69741210937502,64.81518554687506],[-66.63549804687503,65.00034179687503],[-66.21464843749999,64.72241210937497],[-65.93852539062496,64.88574218750003],[-65.2748046875,64.63154296875004],[-65.52934570312499,64.50478515624997],[-65.074609375,64.43666992187502],[-65.21298828125003,64.30327148437502],[-65.580322265625,64.29384765624997],[-65.16987304687495,64.02817382812503],[-64.67846679687503,64.027978515625],[-64.79814453124999,63.91596679687498],[-64.4109375,63.70634765625002],[-64.66464843749995,63.24536132812497],[-65.19184570312498,63.764257812500006],[-65.06894531249998,63.26347656250002],[-64.67236328125003,62.921972656250006],[-65.16279296875001,62.93261718750003],[-65.10849609374998,62.62646484375],[-66.22402343749994,63.10717773437497],[-66.228662109375,62.99096679687503],[-66.41445312500002,63.027197265625034],[-66.65498046874998,63.264746093750006],[-66.69746093749993,63.069531249999955],[-67.89326171874993,63.733740234375006],[-67.72255859374997,63.422753906249966],[-68.49375,63.725488281249994],[-68.91108398437498,63.703222656250006],[-68.141259765625,63.17231445312501],[-67.67597656249998,63.093554687500045],[-67.73696289062497,63.00957031249999],[-65.98017578125001,62.20888671875002],[-66.12387695312498,61.89306640625],[-68.53588867187503,62.25561523437506],[-69.12558593749998,62.423974609374966],[-69.604736328125,62.76772460937502],[-70.23613281250002,62.76337890625001],[-70.801416015625,62.91049804687506],[-71.10576171874999,63.00224609375002],[-70.94604492187497,63.12070312499998],[-71.34726562499998,63.066113281249955],[-71.99223632812493,63.41616210937505],[-71.380859375,63.580322265625],[-72.29013671874995,63.72797851562498],[-72.17426757812498,63.893408203125006],[-72.49843749999994,63.82348632812497],[-73.45454101562495,64.39926757812503],[-73.27128906250002,64.58251953125],[-73.91035156249998,64.578125],[-74.064794921875,64.42465820312498],[-74.13046874999998,64.6078125],[-74.46123046874996,64.64467773437505],[-74.68139648437497,64.8306640625],[-74.91943359374997,64.76552734374997],[-74.69472656250002,64.49658203124997],[-75.71503906249995,64.52436523437495],[-75.76669921875,64.39194335937498],[-76.85615234374998,64.23764648437498],[-77.76049804687503,64.36015624999999],[-78.04521484374993,64.499267578125],[-78.09560546875,64.93925781250002],[-77.36088867187496,65.19653320312503],[-77.32670898437493,65.453125],[-75.82832031249993,65.22705078125003],[-75.45209960937495,64.84160156250002],[-75.35712890624995,65.00874023437495],[-75.79868164062503,65.297509765625],[-75.16630859374999,65.28393554687497],[-74.13847656250002,65.50346679687502],[-73.55078125000003,65.48525390625005],[-74.41640624999997,66.16708984375003],[-73.03325195312502,66.72817382812505],[-72.78881835937494,67.030615234375],[-72.22001953124999,67.25429687500002],[-73.28447265624993,68.35698242187505],[-73.82050781249998,68.36293945312502],[-73.82211914062495,68.68598632812501],[-74.11796875000002,68.70092773437506],[-73.9892578125,68.54863281250002],[-74.2701171875,68.54121093750001],[-74.89296875,68.80815429687505],[-74.71669921874997,69.04550781249998],[-76.58505859375,68.69873046875003],[-76.55722656250003,69.00947265625001],[-75.9537109375,69.03081054687502],[-75.64775390625002,69.212548828125],[-76.46494140624995,69.46943359375001],[-76.23408203125001,69.66210937500003],[-76.742333984375,69.57290039062497],[-77.08994140625,69.63510742187503],[-76.85859374999995,69.775390625],[-77.591650390625,69.84560546875002],[-77.77402343750003,70.23852539062503],[-78.28281250000003,70.229150390625],[-79.06640624999997,70.60356445312507],[-79.40522460937498,70.40073242187503],[-78.86284179687499,70.24189453125001],[-78.88964843750003,69.97749023437495],[-79.51542968749996,69.88759765625005],[-81.65195312500003,70.09462890625002],[-80.92172851562503,69.73090820312501],[-81.56469726562503,69.94272460937498],[-82.29384765624997,69.83691406250003],[-83.14995117187493,70.00908203125002],[-83.85908203124998,69.96274414062498],[-85.43237304687497,70.11137695312507],[-85.780029296875,70.03666992187505],[-86.32202148437503,70.14541015625],[-86.396875,70.46533203124997],[-87.838134765625,70.24658203125],[-88.78271484374997,70.49448242187503],[-89.45590820312498,71.06171874999995],[-87.84492187499995,70.94438476562505],[-87.14008789062498,71.01162109374997],[-89.80537109374993,71.46230468750005],[-89.86152343750001,72.41191406250005],[-88.70517578124998,73.40327148437495],[-87.71977539062496,73.72290039062497],[-85.95078124999998,73.85014648437505],[-84.94677734375,73.72163085937498],[-86.00053710937499,73.31254882812505],[-86.65629882812502,72.72402343750005],[-86.21845703124998,71.89912109375004],[-85.02338867187495,71.35322265625001],[-86.58935546874997,71.01079101562507]]],[[[-100.00190429687497,73.9458984375],[-99.15795898437499,73.73159179687497],[-97.66997070312499,73.88774414062499],[-97.1705078125,73.82485351562497],[-97.001708984375,73.66650390625003],[-97.62587890624997,73.50229492187498],[-97.27250976562502,73.38681640624998],[-98.42177734375002,72.94101562500003],[-97.63632812499998,73.02763671874999],[-97.128125,72.62758789062502],[-96.59208984374996,72.71025390624999],[-96.44560546874996,72.55244140624998],[-96.80146484374998,72.32241210937502],[-96.61342773437494,71.83383789062506],[-97.58227539062497,71.62968750000005],[-98.18134765624998,71.66245117187503],[-98.32270507812501,71.85234375000002],[-98.19863281249994,71.44086914062501],[-98.66289062499993,71.302099609375],[-99.22363281249996,71.387109375],[-100.594482421875,72.15234375000003],[-101.20854492187495,72.31699218749998],[-101.72392578124996,72.31489257812501],[-102.70874023437496,72.76450195312503],[-102.20400390624998,73.077294921875],[-101.27319335937497,72.7216796875],[-100.48476562500002,72.77294921874997],[-100.395703125,72.97700195312498],[-100.128125,72.90668945312495],[-100.53637695312497,73.19785156250003],[-99.82514648437503,73.2138671875],[-100.36611328125001,73.359033203125],[-100.88935546875003,73.27534179687501],[-101.52319335937501,73.48637695312502],[-100.97578124999995,73.59975585937502],[-100.5216796875,73.44931640625],[-100.96298828125002,73.79140625],[-99.99111328125,73.79516601562503],[-100.00190429687497,73.9458984375]]],[[[-98.270361328125,73.86850585937498],[-98.97392578124997,73.81206054687502],[-99.4169921875,73.89541015625002],[-97.69824218749997,74.10869140625005],[-98.270361328125,73.86850585937498]]],[[[-93.17084960937498,74.16098632812506],[-92.22270507812502,73.97236328124998],[-90.62744140625,73.95170898437505],[-90.38139648437496,73.82475585937502],[-92.11791992187497,72.75380859375],[-94.21132812499997,72.75693359375],[-93.77055664062496,72.66821289062506],[-93.55517578124994,72.42114257812497],[-94.03754882812498,72.02875976562498],[-95.00786132812496,72.01279296875],[-95.60214843749998,72.88447265624995],[-95.63291015625003,73.69545898437497],[-94.697607421875,73.66357421874997],[-95.134130859375,73.88125],[-94.97353515625,74.04140625000002],[-93.17084960937498,74.16098632812506]]],[[[-119.73632812499997,74.11264648437498],[-119.20595703125002,74.19799804687503],[-119.11796874999995,74.01552734375],[-118.54399414062499,74.24462890625003],[-117.51484375000001,74.23173828124999],[-115.51069335937501,73.61875],[-115.446875,73.43886718750002],[-118.96157226562497,72.68413085937499],[-119.51284179687501,72.30268554687501],[-120.17988281250001,72.21264648437506],[-120.61933593750001,71.50576171875002],[-121.47216796875003,71.38901367187503],[-121.74936523437502,71.44477539062501],[-123.09565429687503,71.09379882812502],[-124.00776367187494,71.67744140624998],[-125.29667968749999,71.973046875],[-125.84531250000002,71.978662109375],[-123.79726562499997,73.76816406250003],[-124.69624023437497,74.34819335937499],[-121.50415039062497,74.54511718749998],[-119.56264648437494,74.23281250000002],[-119.73632812499997,74.11264648437498]]],[[[-97.35551757812496,74.52631835937495],[-97.75,74.51054687500005],[-97.41650390624994,74.62656250000003],[-97.35551757812496,74.52631835937495]]],[[[-95.306640625,74.50541992187505],[-95.850732421875,74.58247070312504],[-95.51020507812498,74.63676757812499],[-95.306640625,74.50541992187505]]],[[[-104.11992187499995,75.03632812500004],[-104.88740234374998,75.14775390624999],[-104.34619140624996,75.42993164062503],[-103.64350585937497,75.18657226562499],[-104.11992187499995,75.03632812500004]]],[[[-93.54257812499995,75.0279296875],[-93.57309570312495,74.66884765625005],[-94.53452148437498,74.63671874999997],[-96.59960937499997,75.03178710937499],[-95.95463867187493,75.44379882812501],[-94.878173828125,75.63002929687502],[-93.90908203125002,75.42250976562502],[-93.54257812499995,75.0279296875]]],[[[-96.07856445312495,75.510107421875],[-96.91513671875003,75.37968749999999],[-96.98281249999997,75.50981445312505],[-96.367822265625,75.65463867187506],[-96.07856445312495,75.510107421875]]],[[[-94.52656249999995,75.74931640624999],[-94.901220703125,75.93076171875],[-94.53789062499996,75.99643554687506],[-94.52656249999995,75.74931640624999]]],[[[-118.328125,75.57968749999998],[-118.81713867187503,75.52211914062497],[-119.39458007812499,75.617333984375],[-117.63369140624998,76.11508789062498],[-118.328125,75.57968749999998]]],[[[-79.0630859375,75.92587890624998],[-79.63876953124995,75.84291992187505],[-79.00932617187499,76.14589843750005],[-79.0630859375,75.92587890624998]]],[[[-102.22734374999995,76.014892578125],[-102.00800781250003,75.93940429687498],[-102.57958984375003,75.78022460937498],[-103.31474609374996,75.76420898437499],[-103.04150390624999,75.91884765624997],[-103.98525390624997,75.93310546875003],[-103.80078124999994,76.03701171874997],[-104.24248046874996,76.04697265625006],[-104.35063476562497,76.18232421875001],[-102.72802734374999,76.30703125],[-102.22734374999995,76.014892578125]]],[[[-104.02285156249998,76.58310546875003],[-103.05131835937495,76.44985351562497],[-103.31137695312499,76.34755859375],[-104.35751953124995,76.33461914062502],[-104.58569335937499,76.60649414062499],[-104.07451171875003,76.66611328124998],[-104.02285156249998,76.58310546875003]]],[[[-97.70092773437497,76.46650390624998],[-97.89052734374997,75.7603515625],[-97.40751953124999,75.67250976562497],[-97.33603515624998,75.41982421875],[-97.65332031249997,75.50776367187498],[-97.87822265624996,75.41611328125003],[-97.67431640624997,75.127294921875],[-98.04531249999997,75.20083007812497],[-98.12094726562503,75.03271484375],[-100.234375,75.00771484374997],[-100.48349609374995,75.18842773437501],[-100.14570312499995,75.24614257812505],[-100.71191406250003,75.40634765625],[-99.19458007812499,75.698388671875],[-102.58740234375001,75.51367187500003],[-102.79750976562501,75.59965820312505],[-102.14472656249998,75.87504882812502],[-100.97280273437498,75.79843750000003],[-101.414990234375,75.84584960937502],[-101.87211914062496,76.08310546875003],[-101.52895507812495,76.21728515625003],[-102.1046875,76.33120117187505],[-101.41518554687495,76.42490234375003],[-99.86547851562499,75.92421875],[-100.11284179687502,76.11723632812507],[-99.54106445312497,76.14628906250005],[-100.41420898437495,76.242529296875],[-99.97773437500003,76.31245117187495],[-100.82973632812497,76.52387695312495],[-99.8140625,76.6322265625],[-98.89033203125,76.46557617187497],[-98.71083984374994,76.69384765625003],[-97.70092773437497,76.46650390624998]]],[[[-101.22612304687497,76.57934570312497],[-101.61308593749995,76.60458984375006],[-100.26914062499998,76.73413085937497],[-101.22612304687497,76.57934570312497]]],[[[-108.29238281250001,76.05712890625],[-107.72348632812502,75.99541015625002],[-108.020703125,75.80478515625],[-107.21621093749997,75.89155273437501],[-106.91352539062503,75.67963867187501],[-106.67700195312499,76.02373046875002],[-105.63266601562493,75.94536132812505],[-105.51948242187497,75.63237304687505],[-106.09262695312495,75.08945312500003],[-107.15341796874996,74.9271484375],[-108.47475585937495,74.94721679687501],[-108.83129882812501,75.06489257812498],[-112.51933593749997,74.41684570312503],[-113.67158203124997,74.45302734375005],[-114.31269531250003,74.71508789062506],[-112.835986328125,74.9755859375],[-111.67109375,75.01943359374997],[-111.09345703125001,75.25629882812498],[-113.71176757812499,75.06860351562503],[-113.85332031249996,75.259375],[-113.46708984374996,75.41611328125003],[-114.01650390624998,75.43427734375001],[-114.16845703124994,75.23950195312503],[-114.51381835937497,75.27548828125],[-114.45175781250002,75.08789062499997],[-115.02011718749999,74.97617187500003],[-115.41318359374995,75.11499023437497],[-115.72885742187496,74.968115234375],[-116.47607421874996,75.17177734375],[-117.56523437499997,75.23334960937504],[-117.25761718750002,75.45952148437502],[-116.07714843749996,75.49296874999999],[-115.14184570312501,75.67851562500005],[-116.42563476562498,75.58535156249997],[-117.16362304687496,75.64487304687503],[-116.80214843749995,75.77158203124998],[-114.99150390625002,75.896337890625],[-116.66455078124999,75.95756835937505],[-116.20986328125,76.19443359374998],[-114.77861328124999,76.17260742187497],[-115.82216796874997,76.27001953125003],[-114.99848632812503,76.4974609375],[-114.19394531249999,76.45146484375005],[-113.82348632812501,76.20683593750002],[-112.69760742187496,76.20170898437505],[-111.05268554687495,75.54853515625001],[-108.94716796875,75.54179687499999],[-108.94477539062495,75.69897460937503],[-109.8705078125,75.929052734375],[-109.48681640624999,76.14467773437497],[-110.31445312500001,76.369384765625],[-109.09824218749996,76.811865234375],[-108.46699218749997,76.73759765625007],[-108.29238281250001,76.05712890625]]],[[[-89.72646484374994,76.50742187499998],[-90.55625,76.73457031249998],[-90.13632812499995,76.83696289062505],[-89.69541015625,76.74116210937498],[-89.72646484374994,76.50742187499998]]],[[[-113.56069335937494,76.74326171874998],[-114.83525390624999,76.79467773437497],[-113.89165039062495,76.89487304687503],[-113.56069335937494,76.74326171874998]]],[[[-94.29497070312493,76.91245117187498],[-93.23002929687496,76.77026367187497],[-93.53457031250002,76.44770507812498],[-92.99536132812494,76.62041015624999],[-91.305029296875,76.68076171875003],[-90.54262695312494,76.495751953125],[-91.41508789062496,76.45585937500005],[-89.28452148437498,76.30161132812506],[-89.40659179687498,76.18916015624998],[-91.40732421874998,76.22006835937506],[-89.27758789062497,75.79506835937497],[-89.64604492187499,75.5650390625],[-88.91669921874998,75.45395507812503],[-88.64497070312495,75.65844726562503],[-88.201318359375,75.51201171875005],[-87.72973632812503,75.57563476562495],[-87.53911132812502,75.48486328125003],[-87.25693359374998,75.61772460937499],[-85.95146484374993,75.39501953125],[-85.97299804687498,75.5287109375],[-83.931982421875,75.81894531250003],[-83.23710937499993,75.75083007812503],[-82.153662109375,75.83105468750003],[-80.32197265624998,75.62910156250001],[-79.50908203125002,75.25981445312499],[-80.38198242187494,75.03417968750003],[-79.40141601562502,74.91762695312502],[-79.944482421875,74.83364257812505],[-80.34775390624998,74.90297851562505],[-80.26274414062499,74.58447265625],[-81.94018554687494,74.47270507812505],[-82.73579101562495,74.53027343749997],[-83.5220703125,74.90146484375],[-83.53188476562494,74.58569335937497],[-84.42553710937503,74.50810546875007],[-85.06142578125,74.60693359375003],[-85.133447265625,74.517431640625],[-85.44233398437495,74.6005859375],[-85.80800781249994,74.49897460937498],[-88.42304687499995,74.49414062499997],[-88.53496093749993,74.83173828125001],[-89.55869140624995,74.55473632812507],[-90.55327148437499,74.61274414062498],[-90.88022460937498,74.8177734375],[-91.13457031250002,74.64985351562498],[-91.54912109375002,74.65556640624999],[-92.3892578125,75.263330078125],[-92.18510742187499,75.84653320312498],[-93.09174804687495,76.35400390624997],[-95.27387695312498,76.26440429687503],[-96.03969726562494,76.48671875000002],[-95.65097656249998,76.58466796874998],[-96.88071289062495,76.73833007812505],[-96.40156249999995,76.79721679687503],[-96.75830078124997,76.97177734374998],[-95.84951171875002,77.06621093750005],[-94.29497070312493,76.91245117187498]]],[[[-115.55126953125001,77.36328125],[-116.32919921874996,77.137060546875],[-115.81005859374999,76.939111328125],[-116.25273437500002,76.90141601562505],[-115.94628906250003,76.71127929687503],[-116.99921874999995,76.531591796875],[-117.23359375000001,76.28154296875005],[-117.99296874999999,76.40581054687505],[-117.88081054687497,76.80507812500005],[-118.79140624999994,76.51298828125005],[-119.080712890625,76.12407226562505],[-119.58037109375,76.32651367187498],[-119.52612304687496,75.99721679687505],[-119.91289062499997,75.85883789062501],[-120.40888671874995,75.82563476562498],[-120.84838867187496,76.18266601562499],[-121.21347656249999,75.98369140625005],[-122.53305664062498,75.95092773437503],[-122.59272460937497,76.16206054687495],[-122.90278320312498,76.13471679687498],[-122.51938476562503,76.353173828125],[-121.56113281250003,76.453466796875],[-119.09018554687496,77.30507812500002],[-116.84355468749995,77.33955078124995],[-117.03974609374995,77.46513671875005],[-116.51132812500003,77.54760742187497],[-115.55126953125001,77.36328125]]],[[[-89.83325195312503,77.26762695312505],[-90.22827148437503,77.21245117187499],[-90.99321289062499,77.32949218750002],[-91.01904296875003,77.64389648437503],[-89.83896484375003,77.49140624999998],[-89.83325195312503,77.26762695312505]]],[[[-104.55815429687497,77.14174804687497],[-105.21508789062496,77.18208007812501],[-106.03559570312495,77.73984375000006],[-105.58789062499997,77.73598632812497],[-104.54223632812501,77.33774414062503],[-104.55815429687497,77.14174804687497]]],[[[-95.484375,77.79199218750003],[-93.30097656249995,77.73979492187505],[-93.54394531249997,77.466650390625],[-95.98706054687497,77.484130859375],[-96.19458007812497,77.70053710937503],[-95.484375,77.79199218750003]]],[[[-101.6935546875,77.69658203125005],[-102.37783203124995,77.728125],[-102.44770507812498,77.88061523437506],[-101.19321289062493,77.82978515624998],[-101.00205078124998,77.73510742187497],[-101.6935546875,77.69658203125005]]],[[[-113.83247070312497,77.75463867187506],[-114.28720703124998,77.72148437500005],[-114.98041992187498,77.91542968750002],[-114.33037109374997,78.07753906250002],[-113.83247070312497,77.75463867187506]]],[[[-110.45805664062496,78.10322265625001],[-109.62226562499995,78.07475585937499],[-110.865625,77.834130859375],[-110.15273437500002,77.76293945312506],[-110.19848632812501,77.52451171874998],[-112.37265625000002,77.36411132812498],[-113.16435546875002,77.5302734375],[-113.21518554687498,77.90351562500001],[-110.45805664062496,78.10322265625001]]],[[[-109.81596679687499,78.65039062500003],[-109.48447265624995,78.31640625],[-111.16918945312499,78.38627929687505],[-111.51748046874997,78.27470703125005],[-112.13125,78.366064453125],[-113.22304687499998,78.29790039062505],[-112.85585937499997,78.46684570312502],[-110.877587890625,78.73505859375004],[-109.81596679687499,78.65039062500003]]],[[[-96.20449218749994,78.53129882812499],[-94.91538085937495,78.39052734375002],[-95.32924804687497,78.22504882812495],[-94.93427734374998,78.07563476562498],[-96.98964843749994,77.80600585937503],[-97.65815429687498,78.090625],[-96.944677734375,78.15185546874997],[-98.04951171874995,78.325927734375],[-98.33261718749998,78.77353515625006],[-97.38232421875,78.78291015625001],[-96.20449218749994,78.53129882812499]]],[[[-103.42602539062499,79.315625],[-102.57617187499996,78.87939453125003],[-101.70366210937502,79.07890625000002],[-101.128125,78.80166015625002],[-100.43549804687503,78.8203125],[-99.60942382812495,78.58305664062507],[-99.16640625000002,77.85693359375003],[-100.27465820312503,77.83271484374995],[-101.07412109375001,78.19384765625],[-102.60698242187502,78.24892578125002],[-102.73134765624995,78.37104492187495],[-103.94658203124999,78.26000976562497],[-104.76357421874998,78.35166015625],[-104.90961914062498,78.55263671875],[-103.57050781250003,78.53984375000005],[-104.02084960937502,78.63491210937497],[-103.37158203125,78.73632812500003],[-104.18500976562498,78.78129882812505],[-104.15195312499999,78.989892578125],[-104.89550781249996,78.80815429687502],[-104.74677734375003,79.02709960937503],[-105.53564453124999,79.03251953125007],[-105.51455078124995,79.24248046875002],[-105.38769531249994,79.32358398437503],[-103.42602539062499,79.315625]]],[[[-98.79160156249995,79.98110351562505],[-98.94521484375,79.72407226562498],[-100.05683593749997,79.89824218750005],[-100.05327148437496,80.093359375],[-99.15322265625001,80.12421874999998],[-98.79160156249995,79.98110351562505]]],[[[-91.88554687499999,81.13286132812505],[-90.64301757812498,80.59370117187498],[-89.23559570312494,80.51064453125002],[-88.85732421874997,80.16621093750001],[-88.19990234374998,80.11147460937497],[-88.5248046875,80.41801757812507],[-87.675,80.37211914062505],[-87.92231445312501,80.09770507812499],[-86.97719726562502,79.89423828125001],[-87.29516601562494,79.58017578124998],[-86.33696289062496,79.63496093749995],[-86.00703124999998,79.47944335937498],[-85.6478515625,79.61142578125006],[-85.04213867187497,79.2845703125],[-86.95717773437502,78.97490234375005],[-87.61738281249995,78.67631835937505],[-88.04018554687494,78.99531250000004],[-87.98286132812498,78.53706054687501],[-88.74160156250002,78.58403320312499],[-88.82241210937497,78.18588867187498],[-90.037109375,78.60683593750002],[-89.52568359374999,78.15961914062495],[-90.29721679687495,78.32802734374997],[-90.614404296875,78.14985351562501],[-92.35126953125001,78.312890625],[-92.8482421875,78.46010742187497],[-91.86689453124998,78.54267578125001],[-93.26660156249997,78.60830078124997],[-93.63442382812502,78.75092773437498],[-93.15986328124998,78.77563476562503],[-94.11459960937498,78.92890625000001],[-92.54721679687495,79.28261718750002],[-91.29990234375003,79.372705078125],[-92.82192382812497,79.44990234375001],[-93.93315429687496,79.29072265624998],[-94.11030273437498,79.40156250000001],[-95.10317382812502,79.289892578125],[-95.66289062500002,79.52734374999997],[-94.40185546874997,79.736328125],[-95.73935546874995,79.66015625000003],[-96.58906249999995,79.91665039062497],[-96.77324218749999,80.13579101562502],[-94.64589843749994,80.04873046874997],[-94.26259765625002,80.19487304687499],[-95.40507812499996,80.13500976562506],[-96.39409179687493,80.31503906250003],[-95.549072265625,80.36660156249997],[-95.92695312499998,80.72065429687498],[-93.92792968749995,80.55917968750003],[-95.51474609375003,80.83813476562503],[-94.98051757812499,81.04965820312503],[-93.28671874999998,81.10029296874998],[-94.22011718749997,81.33076171875004],[-93.03466796874997,81.3462890625],[-91.88554687499999,81.13286132812505]]],[[[-69.4888671875,83.01679687499998],[-66.42255859374998,82.92685546875003],[-68.46933593749995,82.65336914062502],[-65.29902343749995,82.79960937500005],[-64.98388671874997,82.90229492187501],[-64.50400390625,82.77841796874998],[-63.641015624999966,82.81259765625003],[-63.246777343749926,82.4501953125],[-62.47519531249995,82.51958007812502],[-61.392480468749994,82.44189453125],[-61.61538085937502,82.18442382812503],[-64.43579101562497,81.74262695312501],[-66.62573242187497,81.61640624999995],[-68.68852539062493,81.29331054687503],[-64.78007812499993,81.49287109375001],[-69.55068359375,80.38325195312498],[-70.71259765625001,80.53959960937505],[-70.264892578125,80.23359374999998],[-72.05595703124996,80.12324218749995],[-70.56840820312493,80.09370117187498],[-71.387841796875,79.76176757812505],[-72.43652343750003,79.69438476562499],[-74.39448242187495,79.87407226562499],[-73.47246093749996,79.7564453125],[-73.36152343750001,79.50400390625],[-75.50341796875,79.41416015625],[-76.898828125,79.5123046875],[-75.60273437499998,79.23955078125005],[-74.48120117187503,79.22949218750006],[-74.64091796874996,79.03554687499997],[-78.58164062499998,79.075],[-77.88276367187498,78.9423828125],[-76.255859375,79.00683593749997],[-74.486328125,78.75009765624998],[-74.87861328124998,78.54482421875],[-76.41611328124995,78.51152343750005],[-75.19345703125,78.327734375],[-75.86596679687497,78.00981445312499],[-78.01259765624997,77.94604492187506],[-78.07617187500003,77.51904296875],[-78.70849609374997,77.34213867187503],[-80.57304687499996,77.31479492187506],[-81.65908203124997,77.52543945312499],[-81.3013671875,77.34404296875007],[-82.056787109375,77.29653320312497],[-81.75634765624997,77.20400390625005],[-79.49726562500001,77.19609375000005],[-78.97919921874998,76.89287109374999],[-78.28886718750002,76.97797851562501],[-77.98330078124994,76.75498046875006],[-78.284326171875,76.57124023437501],[-80.79970703124997,76.173583984375],[-80.97451171874994,76.470068359375],[-81.71738281250003,76.494970703125],[-82.52983398437499,76.723291015625],[-82.23315429687494,76.46582031250003],[-83.88569335937501,76.453125],[-84.22377929687497,76.67534179687499],[-84.27534179687498,76.35654296875006],[-85.141259765625,76.30458984375005],[-86.45371093750003,76.58486328125002],[-86.68022460937499,76.37661132812497],[-87.35419921874998,76.44804687500005],[-87.48979492187499,76.58583984374997],[-87.49755859374997,76.38627929687499],[-88.39599609374997,76.40527343750003],[-88.49584960937497,76.77285156249997],[-88.54580078125002,76.42089843750003],[-89.36962890624997,76.474462890625],[-89.49975585937503,76.82680664062502],[-88.39814453124995,77.10395507812501],[-86.81225585937497,77.18491210937498],[-87.68144531249996,77.43637695312503],[-88.01699218750002,77.78471679687505],[-86.75507812499998,77.86372070312498],[-85.58847656249998,77.46113281250004],[-84.73867187499997,77.36103515624998],[-83.72128906249998,77.41420898437497],[-82.7103515625,77.84951171875002],[-82.5953125,77.99213867187504],[-83.77939453125,77.53261718750002],[-85.28935546874996,77.55903320312498],[-85.54755859374998,77.92768554687495],[-84.61542968749998,78.19570312500002],[-84.22270507812499,78.176025390625],[-84.91035156249993,78.23969726562501],[-84.78320312499997,78.52758789062506],[-85.5859375,78.10957031249998],[-86.21777343750003,78.08120117187497],[-85.92006835937494,78.34287109374998],[-86.91323242187494,78.126806640625],[-87.5517578125,78.17661132812503],[-86.80791015624999,78.77436523437495],[-85.00375976562495,78.912255859375],[-83.27143554687501,78.77031250000002],[-81.75009765624995,78.97578124999995],[-82.43876953125002,78.903662109375],[-84.41201171875002,78.99658203125003],[-84.38359375000002,79.1185546875],[-83.57587890624995,79.05366210937501],[-86.42075195312498,79.84521484374997],[-86.49853515625003,80.25825195312501],[-83.72363281250003,80.22895507812501],[-81.68837890625,79.685791015625],[-80.47592773437498,79.60625],[-80.12446289062495,79.66948242187507],[-81.01015625000002,79.693115234375],[-82.98701171874995,80.32260742187498],[-76.86298828124995,80.86479492187505],[-78.71621093749994,80.95166015624997],[-76.88510742187503,81.43027343750006],[-81.00703125000001,80.6548828125],[-82.88432617187502,80.57753906249997],[-82.22236328124998,80.77231445312503],[-84.41782226562495,80.52675781250002],[-86.250341796875,80.56577148437506],[-86.60307617187499,80.66401367187498],[-85.63930664062494,80.92460937500007],[-83.288818359375,81.14794921875],[-85.780859375,81.03505859375],[-87.32988281250002,80.669775390625],[-88.00366210937497,80.675390625],[-89.16689453125,80.94130859375],[-86.47675781249993,81.03574218750006],[-84.94121093750002,81.28623046875],[-87.27509765624995,81.080810546875],[-89.623046875,81.032470703125],[-89.94731445312499,81.17265625000005],[-89.20869140624998,81.25009765625003],[-89.67368164062503,81.32861328125003],[-87.59702148437498,81.52583007812498],[-88.47905273437502,81.56464843749998],[-90.41630859374996,81.40537109375003],[-89.82167968749997,81.63486328124998],[-91.29238281250002,81.57124023437498],[-91.64755859374998,81.68383789062503],[-88.06318359375001,82.09648437500007],[-87.01821289062502,81.95874023437497],[-86.62680664062495,82.05102539062503],[-85.04482421874997,81.9828125],[-86.615625,82.21855468750007],[-84.89682617187503,82.44941406250001],[-82.63369140625002,82.07729492187497],[-82.53691406250002,82.24726562499995],[-79.465625,81.85112304687499],[-82.44755859374993,82.39501953125003],[-81.68115234375003,82.51865234375],[-82.11684570312497,82.62866210937503],[-80.8625,82.57153320312503],[-81.01015625000002,82.77905273437503],[-78.748779296875,82.67939453124998],[-80.15493164062497,82.91113281250003],[-77.61806640624997,82.89584960937503],[-76.009375,82.53515625],[-75.565625,82.60854492187502],[-77.12490234374994,83.00854492187497],[-74.41416015624995,83.01313476562501],[-72.65869140625,82.72163085937495],[-73.44189453124994,82.90483398437499],[-72.811669921875,83.08120117187502],[-71.98320312499996,83.10141601562498],[-70.94038085937495,82.90224609375],[-71.08481445312498,83.08266601562497],[-69.96992187499995,83.11611328125005],[-69.4888671875,83.01679687499998]]]]},"properties":{"name":"Canada","childNum":110}},{"geometry":{"type":"Polygon","coordinates":[[[9.527658197470123,47.27026989773668],[9.46249431093294,47.19858962254578],[9.46249431093294,47.09010747968864],[9.409458596647225,47.02019676540292],[9.579979133936737,47.05856388629306],[9.580273437500011,47.057373046875],[10.133496093750011,46.851513671875],[10.349414062500017,46.98476562499999],[10.414941406250023,46.964404296874996],[10.45458984375,46.8994140625],[10.452832031250011,46.86494140625],[10.406054687500017,46.73486328125],[10.39794921875,46.6650390625],[10.4306640625,46.550048828125],[10.195507812500011,46.62109375],[10.1375,46.61435546875],[10.087011718750006,46.599902343749996],[10.061230468750011,46.546777343749994],[10.038281250000011,46.483203125],[10.045605468750011,46.447900390624994],[10.081933593750023,46.420751953125],[10.109667968750017,46.362841796874996],[10.128320312500023,46.238232421875],[10.08056640625,46.227978515625],[10.041015625,46.238085937499996],[9.939257812500017,46.36181640625],[9.884472656250011,46.3677734375],[9.787792968750011,46.346044921875],[9.639453125000017,46.2958984375],[9.57958984375,46.29609375],[9.528710937500023,46.306201171874996],[9.427636718750023,46.482324218749994],[9.399316406250023,46.4806640625],[9.304394531250011,46.495556640625],[9.203417968750017,46.21923828125],[9.11874162946429,46.014892578125],[8.97551618303573,45.81677455357143],[8.74961495535715,46.02246372767857],[8.818554687500011,46.0771484375],[8.458398437500023,46.245898437499996],[8.370703125,46.445117187499996],[8.298535156250011,46.40341796875],[8.23193359375,46.341210937499994],[8.08154296875,46.256005859374994],[7.9931640625,46.015917968749996],[7.327929687500017,45.912353515625],[7.129003906250006,45.880419921874996],[7.055761718750006,45.90380859375],[7.02109375,45.92578125],[6.953710937500006,46.017138671874996],[6.897265625000017,46.0517578125],[6.772070312500006,46.16513671875],[6.758105468750017,46.415771484375],[6.578222656250006,46.437353515625],[6.428906250000011,46.430517578125],[6.321875,46.393701171874994],[6.234667968750017,46.3326171875],[6.199414062500011,46.19306640625],[6.086621093750011,46.147021484374996],[6.006640625000017,46.142333984375],[5.971484375000017,46.151220703125],[5.970019531250017,46.214697265625],[6.0361328125,46.238085937499996],[6.095898437500011,46.27939453125],[6.129687500000017,46.5669921875],[6.41015625,46.755419921874996],[6.429003906250017,46.832275390625],[6.45625,46.94833984375],[6.624804687500017,47.004345703125],[6.666894531250023,47.026513671874994],[6.688085937500006,47.058251953124994],[6.820703125000023,47.16318359375],[6.952050781250023,47.2671875],[6.978515625,47.302050781249996],[7.000585937500006,47.322509765625],[7.000585937500006,47.339453125],[6.900390625,47.39423828125],[6.968359375,47.45322265625],[7.136035156250017,47.48984375],[7.343164062500023,47.43310546875],[7.615625,47.592724609375],[8.454003906250023,47.59619140625],[8.559472656250023,47.6240234375],[8.570507812500011,47.63779296875],[8.567089843750011,47.651904296874996],[8.55234375,47.659130859375],[8.451757812500006,47.651806640625],[8.413281250000011,47.6626953125],[8.403417968750006,47.687792968749996],[8.435742187500011,47.731347656249994],[8.572656250000023,47.775634765625],[9.524023437500006,47.52421875],[9.625878906250023,47.467041015625],[9.527539062500011,47.270751953125],[9.527658197470123,47.27026989773668]]]},"properties":{"name":"Switzerland","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-67.28886718749999,-55.776855468749964],[-67.55996093749997,-55.72480468750002],[-67.39736328124997,-55.58515625],[-67.28886718749999,-55.776855468749964]]],[[[-67.07993164062498,-55.15380859374996],[-67.33969726562495,-55.292578124999984],[-67.4947265625,-55.177441406249976],[-68.07001953124995,-55.22109374999999],[-68.30136718750003,-54.98066406250003],[-67.245263671875,-54.977636718750034],[-67.07993164062498,-55.15380859374996]]],[[[-69.70297851562503,-54.91904296875],[-68.90078125000002,-55.01777343750004],[-68.45800781249997,-54.95966796875002],[-68.61328124999997,-55.155566406250045],[-68.28266601562495,-55.25517578125],[-68.04833984375,-55.6431640625],[-68.86704101562498,-55.45019531250003],[-68.89008789062498,-55.2412109375],[-69.19262695312497,-55.171875],[-69.35922851562498,-55.300683593749945],[-69.18085937499995,-55.47480468749998],[-69.41181640624995,-55.44423828124997],[-69.97978515625002,-55.14746093749999],[-69.88442382812494,-54.88203125000001],[-69.70297851562503,-54.91904296875]]],[[[-70.9916015625,-54.86796874999999],[-70.80483398437497,-54.96767578124996],[-70.41752929687493,-54.908886718749976],[-70.29785156249997,-55.11376953124997],[-70.47558593749994,-55.17705078124998],[-71.43720703125001,-54.88925781249997],[-70.9916015625,-54.86796874999999]]],[[[-71.390478515625,-54.03281250000002],[-71.02192382812495,-54.111816406250036],[-71.14326171874998,-54.374023437499986],[-71.473291015625,-54.23115234375001],[-71.94853515624999,-54.300878906250006],[-72.21044921874997,-54.04775390624995],[-71.996484375,-53.884863281249984],[-71.390478515625,-54.03281250000002]]],[[[-72.92324218749997,-53.481640625],[-72.88222656249997,-53.578320312499976],[-72.48227539062503,-53.58808593750001],[-72.20541992187503,-53.80742187500002],[-72.408544921875,-54.00380859374997],[-72.87099609375,-54.12656250000002],[-72.76376953125,-53.86484375],[-73.03945312499994,-53.83281250000004],[-73.08076171875001,-53.99804687499995],[-73.21064453125001,-53.98583984374995],[-73.31435546875,-53.72919921874998],[-73.845458984375,-53.54580078125001],[-73.44707031249993,-53.41005859374998],[-72.92324218749997,-53.481640625]]],[[[-74.38574218749994,-52.92236328125001],[-73.65400390624998,-53.06982421875003],[-73.13520507812498,-53.35390625],[-73.56728515625,-53.3068359375],[-73.86694335937494,-53.096875],[-74.27021484374995,-53.08154296875002],[-74.71201171874998,-52.74873046874998],[-74.38574218749994,-52.92236328125001]]],[[[-68.62993164062499,-52.65263671875004],[-68.65322265624994,-54.85361328124999],[-69.48627929687493,-54.85888671875],[-69.72343750000002,-54.71210937500003],[-70.49716796875,-54.80957031249999],[-71.83154296874997,-54.62617187500002],[-71.92773437500003,-54.52871093749997],[-71.80014648437498,-54.433984374999945],[-71.07993164062498,-54.444238281249994],[-70.79726562500002,-54.32724609374996],[-70.70112304687498,-54.48544921875004],[-70.31098632812498,-54.52851562500002],[-70.86308593749993,-54.11044921875003],[-70.86772460937499,-53.88417968750002],[-70.53129882812502,-53.627343750000016],[-70.37973632812495,-53.98671874999995],[-70.62983398437493,-54.005566406249976],[-70.53530273437494,-54.136132812500016],[-70.16899414062502,-54.37929687499999],[-69.74184570312494,-54.30585937500005],[-69.25317382812494,-54.557421875000045],[-69.04433593749997,-54.40673828124999],[-69.98813476562503,-54.10908203125001],[-70.15112304687503,-53.88808593750002],[-70.09111328124996,-53.72177734374998],[-69.35595703125003,-53.41630859375001],[-69.63701171874999,-53.33408203125004],[-70.32929687499998,-53.37763671875003],[-70.44335937499994,-53.085546875000034],[-70.130615234375,-52.942773437499994],[-70.38012695312494,-52.75195312500002],[-69.93544921874997,-52.82109374999998],[-69.41406249999997,-52.48623046874997],[-69.16704101562499,-52.66757812499997],[-68.78979492187497,-52.576757812500034],[-68.62993164062499,-52.65263671875004]]],[[[-74.82294921874993,-51.63017578125001],[-74.53681640624998,-51.96513671875004],[-74.69448242187497,-52.27919921874999],[-74.85180664062494,-52.27070312500003],[-75.10537109375,-51.78886718750001],[-74.82294921874993,-51.63017578125001]]],[[[-74.55864257812499,-51.27705078125001],[-74.62036132812497,-51.395703125000026],[-75.04736328125,-51.39833984375003],[-75.28911132812496,-51.625390625000016],[-75.15366210937498,-51.278808593750014],[-74.73666992187503,-51.20761718749999],[-74.55864257812499,-51.27705078125001]]],[[[-75.302001953125,-50.67998046875005],[-75.411376953125,-50.76435546875001],[-75.42763671875002,-50.48056640625002],[-75.11533203124998,-50.510449218749976],[-75.302001953125,-50.67998046875005]]],[[[-75.05478515625,-50.29609375],[-75.44912109374997,-50.34335937500004],[-75.32666015624997,-50.01181640625],[-74.8759765625,-50.10996093750001],[-75.05478515625,-50.29609375]]],[[[-75.106689453125,-48.83652343750001],[-75.38994140624999,-49.15917968750002],[-75.64116210937499,-49.195410156250034],[-75.48764648437498,-49.082421875000016],[-75.58310546874998,-48.85888671874995],[-75.106689453125,-48.83652343750001]]],[[[-74.47617187499998,-49.14785156250002],[-74.59472656249997,-50.00664062500001],[-74.76298828124996,-50.01142578125001],[-74.88041992187502,-49.72587890625001],[-74.72382812499998,-49.42382812500003],[-74.960107421875,-49.533007812499974],[-75.06601562499998,-49.85234375000002],[-75.54980468749994,-49.79130859375002],[-75.30585937499998,-49.49404296875003],[-75.46748046874995,-49.35888671875003],[-75.08603515624998,-49.27021484375],[-75.21015624999995,-49.14804687499998],[-74.94921875,-48.960156249999976],[-74.89624023437503,-48.73320312500002],[-74.54609374999993,-48.76689453125004],[-74.47617187499998,-49.14785156250002]]],[[[-75.51025390624997,-48.76347656250005],[-75.65092773437496,-48.58632812500002],[-75.57148437499993,-48.095898437500026],[-75.39140625000002,-48.01972656249997],[-75.15849609374999,-48.62265624999996],[-75.51025390624997,-48.76347656250005]]],[[[-74.56728515625,-48.591992187500026],[-74.92304687499998,-48.62646484375003],[-75.21289062499997,-48.141699218750034],[-75.19829101562502,-47.974609375000014],[-74.895654296875,-47.839355468749986],[-74.56728515625,-48.591992187500026]]],[[[-75.11220703124997,-47.8376953125],[-75.26103515625002,-47.76386718749998],[-74.92646484374998,-47.72314453125003],[-75.11220703124997,-47.8376953125]]],[[[-74.31289062500002,-45.69150390625002],[-74.46552734374995,-45.757226562499994],[-74.68984375,-45.66259765625],[-74.310546875,-45.17265625000002],[-74.31289062500002,-45.69150390625002]]],[[[-73.63217773437498,-44.82148437499997],[-73.81845703125,-44.65214843750002],[-73.72392578124993,-44.544238281249974],[-73.63217773437498,-44.82148437499997]]],[[[-72.98613281249999,-44.780078124999974],[-73.22846679687498,-44.85996093749999],[-73.39707031249998,-44.77431640624995],[-73.44506835937497,-44.641015624999966],[-73.20771484374993,-44.33496093749997],[-72.7763671875,-44.50859374999999],[-72.98613281249999,-44.780078124999974]]],[[[-73.73535156249997,-44.39453125000003],[-74.00205078125003,-44.59091796874998],[-73.728173828125,-45.195898437500034],[-74.016259765625,-45.344921875000026],[-74.61777343749998,-44.64794921874996],[-74.50180664062498,-44.47353515624995],[-74.09721679687496,-44.38935546875004],[-73.99492187499999,-44.140234375],[-73.70322265624998,-44.27412109375001],[-73.73535156249997,-44.39453125000003]]],[[[-73.81064453125003,-43.827246093750006],[-73.95566406249998,-43.921972656250034],[-74.14296874999997,-43.872167968750006],[-73.81064453125003,-43.827246093750006]]],[[[-73.77338867187498,-43.3458984375],[-74.114404296875,-43.35791015624996],[-74.387353515625,-43.231640625],[-74.03666992187496,-41.79550781249998],[-73.52783203124997,-41.89628906249999],[-73.42290039062499,-42.192871093750014],[-73.47080078124998,-42.46630859375004],[-73.78925781249993,-42.58574218750003],[-73.43632812499996,-42.9365234375],[-73.74965820312494,-43.15908203124995],[-73.77338867187498,-43.3458984375]]],[[[-78.80415039062501,-33.646484374999986],[-78.98945312499993,-33.66171874999998],[-78.87744140625003,-33.57519531250003],[-78.80415039062501,-33.646484374999986]]],[[[-109.27998046874994,-27.14042968749996],[-109.434130859375,-27.171289062500023],[-109.39047851562499,-27.068359375000014],[-109.27998046874994,-27.14042968749996]]],[[[-67.19487304687493,-22.821679687500037],[-67.00878906249994,-23.00136718750005],[-67.35620117187503,-24.033789062499963],[-68.25029296875002,-24.391992187500023],[-68.56201171875,-24.74736328125003],[-68.38422851562495,-25.091894531249977],[-68.59208984375002,-25.420019531250034],[-68.41450195312498,-26.153710937500023],[-68.59160156249999,-26.47041015624997],[-68.31865234374999,-26.973242187500006],[-68.59208984375002,-27.140039062499966],[-68.84633789062494,-27.153710937499994],[-69.17441406249998,-27.924707031250037],[-69.65693359374995,-28.413574218749986],[-69.82788085937497,-29.10322265624997],[-70.02680664062501,-29.324023437500017],[-69.95996093749997,-30.078320312500026],[-69.84428710937493,-30.175],[-69.95634765624996,-30.35820312500003],[-70.15322265625,-30.360937499999963],[-70.30908203124994,-31.02265625000004],[-70.51958007812493,-31.1484375],[-70.585205078125,-31.569433593749963],[-70.25439453125,-31.957714843750026],[-70.36376953125,-32.08349609374997],[-70.02197265625,-32.88457031250002],[-70.08486328125002,-33.20175781249998],[-69.81962890624999,-33.28378906249999],[-69.85244140625,-34.224316406250026],[-70.05205078124999,-34.30078124999997],[-70.39316406250003,-35.146875],[-70.55517578125,-35.246875],[-70.41572265625001,-35.52304687500002],[-70.40478515625,-36.06171874999998],[-71.05551757812498,-36.52373046874996],[-71.19218750000002,-36.84365234375004],[-71.16757812499998,-37.76230468749996],[-70.858642578125,-38.60449218750003],[-71.40156249999995,-38.93505859374996],[-71.53945312499997,-39.60244140624995],[-71.71992187499995,-39.63525390624997],[-71.65976562499998,-40.02080078125],[-71.81831054687493,-40.17666015624995],[-71.70898437499997,-40.381738281249994],[-71.93212890624994,-40.69169921874999],[-71.91127929687497,-41.650390624999986],[-71.75,-42.04677734375001],[-72.10820312499993,-42.25185546874995],[-72.14643554687498,-42.990039062499974],[-71.750634765625,-43.237304687499986],[-71.90498046875001,-43.34755859374998],[-71.68007812500002,-43.92958984374998],[-71.82001953124993,-44.38310546875],[-71.21259765624998,-44.44121093750003],[-71.15971679687496,-44.56025390625004],[-71.26113281250002,-44.763085937499966],[-72.06372070312503,-44.771875],[-72.04169921874998,-44.90419921875004],[-71.5962890625,-44.97919921875004],[-71.34931640624995,-45.33193359374995],[-71.74619140624998,-45.57890625],[-71.63154296874998,-45.95371093749998],[-71.87568359374998,-46.160546875],[-71.69965820312501,-46.6513671875],[-71.94023437499999,-46.83125],[-71.90498046875001,-47.201660156250014],[-72.34594726562497,-47.49267578124997],[-72.517919921875,-47.87636718749998],[-72.32832031250001,-48.11005859374998],[-72.35473632812497,-48.36582031250005],[-72.582861328125,-48.47539062499999],[-72.65126953125,-48.84160156249998],[-73.03364257812501,-49.014355468750004],[-73.13525390625,-49.30068359374999],[-73.46157226562497,-49.31386718750001],[-73.55419921875,-49.463867187500014],[-73.50126953124996,-50.125292968750024],[-73.15292968749998,-50.73828125000003],[-72.50981445312496,-50.607519531250034],[-72.34023437499997,-50.68183593749999],[-72.40766601562501,-51.54082031250002],[-71.91865234374995,-51.98955078125004],[-69.96025390624993,-52.00820312500002],[-68.443359375,-52.35664062500004],[-69.24101562499996,-52.20546874999997],[-69.62031249999995,-52.46474609374995],[-70.79511718749995,-52.76875],[-70.99584960937497,-53.77929687499997],[-71.29775390625002,-53.88339843750004],[-72.1744140625,-53.632324218749964],[-72.41289062500002,-53.35019531250004],[-71.94169921874993,-53.23408203125001],[-71.89169921874998,-53.523535156250006],[-71.79145507812498,-53.48457031249997],[-71.74052734374999,-53.232617187499976],[-71.28896484375002,-53.03369140624995],[-71.22714843750003,-52.810644531249984],[-71.38774414062496,-52.76425781250004],[-72.27802734374998,-53.13232421874997],[-72.54892578125,-53.4607421875],[-73.05273437499997,-53.24345703125005],[-72.72768554687502,-52.7623046875],[-72.453466796875,-52.814453124999964],[-72.11757812499997,-52.65],[-71.51127929687502,-52.60537109375],[-72.22568359374998,-52.52099609374995],[-72.43769531250001,-52.62578124999998],[-72.71210937499995,-52.53554687499999],[-73.12246093749997,-53.073925781249976],[-73.64521484374998,-52.83701171875003],[-73.2408203125,-52.707128906250034],[-73.12392578125,-52.487988281249976],[-73.24414062499997,-52.62402343749998],[-73.58569335937503,-52.68574218750003],[-74.01445312499999,-52.63935546875],[-74.26494140624993,-52.1048828125],[-73.83447265625,-52.23398437500001],[-73.68432617187494,-52.07773437499998],[-73.26044921874993,-52.157812500000034],[-72.79501953124998,-51.94951171875005],[-72.57084960937496,-52.200097656249945],[-72.67705078125002,-52.38466796874998],[-72.52333984374997,-52.255468750000034],[-72.62460937499998,-51.94648437499997],[-72.48964843750002,-51.76367187500003],[-72.76123046875,-51.57324218749996],[-73.16875,-51.45390624999998],[-72.60004882812495,-51.79912109374997],[-73.51816406250003,-52.04101562499996],[-73.75263671874993,-51.795507812500034],[-74.19667968749997,-51.68056640624997],[-73.92978515624995,-51.61787109374999],[-73.93950195312499,-51.26630859375005],[-74.81474609374996,-51.06289062499999],[-75.09467773437495,-50.68125],[-74.68574218749995,-50.662011718749945],[-74.77587890625003,-50.46992187499998],[-74.64448242187498,-50.360937499999984],[-74.365576171875,-50.487890625],[-74.13940429687503,-50.81777343749997],[-73.80654296875,-50.93837890625003],[-73.654443359375,-50.49267578125],[-73.97802734375003,-50.827050781249994],[-74.18559570312493,-50.485351562500014],[-73.95034179687497,-50.510546875],[-74.62958984374998,-50.19404296875],[-74.333740234375,-49.97460937499997],[-73.95859374999998,-49.994726562499984],[-74.32392578124995,-49.783398437500004],[-74.29082031249996,-49.604101562499984],[-73.83637695312493,-49.609375],[-74.09443359374993,-49.42968749999998],[-73.93496093749994,-49.02089843750001],[-74.2212890625,-49.500585937500034],[-74.36655273437503,-49.40048828124998],[-74.34101562499998,-48.59570312499998],[-74.00908203124996,-48.475],[-74.47441406249999,-48.46396484374996],[-74.58466796874998,-47.999023437500014],[-73.39106445312498,-48.14589843750001],[-73.60991210937499,-47.993945312500045],[-73.71586914062499,-47.65546875000001],[-73.94086914062498,-47.92939453125004],[-74.22705078124994,-47.96894531250001],[-74.654931640625,-47.702246093750034],[-74.5337890625,-47.567675781249974],[-74.24296874999999,-47.67929687499998],[-74.13408203125002,-47.590820312499986],[-74.48266601562497,-47.43046875],[-74.15839843749998,-47.18251953125002],[-74.31357421874998,-46.78818359374998],[-74.45419921875003,-46.76679687499997],[-74.51225585937496,-46.88515625000002],[-75.00595703125,-46.74111328124998],[-74.98417968750002,-46.51210937499995],[-75.54033203124999,-46.69873046874996],[-75.43037109374995,-46.93457031249996],[-75.70639648437498,-46.70527343749997],[-74.924462890625,-46.159667968750014],[-75.06669921874993,-45.874902343749994],[-74.15786132812497,-45.7671875],[-74.122705078125,-45.49619140625002],[-73.95717773437494,-45.40439453124998],[-73.825,-45.446875],[-74.01992187500002,-46.055859375],[-74.39296875,-46.21738281250005],[-73.96757812500002,-46.15410156250003],[-73.87871093749993,-45.846875],[-73.73525390624994,-45.81171875],[-73.70815429687502,-46.070312500000014],[-73.94863281249997,-46.533105468749966],[-73.845361328125,-46.56601562500002],[-73.59184570312493,-45.89912109375004],[-73.73076171874999,-45.47998046875],[-73.26621093749995,-45.346191406250014],[-72.933837890625,-45.45234374999997],[-73.44497070312497,-45.23818359374995],[-73.36245117187502,-44.97822265625001],[-72.73896484375001,-44.73417968750003],[-72.680078125,-44.59394531249997],[-72.66386718749999,-44.43642578124995],[-73.26508789062498,-44.16865234375001],[-73.22446289062498,-43.89794921875003],[-73.06879882812495,-43.86201171874998],[-72.99658203125,-43.63154296875001],[-73.07597656250002,-43.323632812499994],[-72.75800781249998,-43.039453125],[-72.84804687500002,-42.66914062499997],[-72.77392578125003,-42.505175781250045],[-72.63183593750003,-42.509667968749994],[-72.77324218749996,-42.257714843749994],[-72.63105468749995,-42.199804687500006],[-72.412353515625,-42.388183593750014],[-72.49941406249997,-41.98085937499999],[-72.82407226562503,-41.90878906249996],[-72.36040039062499,-41.64912109375],[-72.31826171875,-41.49902343749997],[-72.54238281250002,-41.690625],[-72.95283203124995,-41.51474609374998],[-73.24179687499995,-41.78085937500002],[-73.62402343750003,-41.77363281249997],[-73.73515625000002,-41.74248046875002],[-73.62392578125,-41.581347656250045],[-73.81074218749995,-41.51748046875001],[-73.96586914062493,-41.118261718750034],[-73.67099609375,-39.96318359374999],[-73.41040039062503,-39.78916015624998],[-73.22646484375002,-39.22441406250003],[-73.52021484375001,-38.509375],[-73.46479492187498,-38.04033203125003],[-73.66181640624998,-37.69853515625003],[-73.66240234375002,-37.341015625000026],[-73.60166015624998,-37.18847656250003],[-73.21596679687502,-37.16689453124998],[-73.11806640624997,-36.68837890625002],[-72.58735351562493,-35.759667968749994],[-72.62392578125002,-35.5857421875],[-72.22377929687494,-35.096191406250014],[-72.00283203124997,-34.16533203125],[-71.66435546875002,-33.65263671875],[-71.74296875,-33.09511718750001],[-71.45224609374998,-32.65957031250001],[-71.70893554687495,-30.62802734375002],[-71.66948242187499,-30.33037109374996],[-71.40039062499997,-30.142968749999966],[-71.31572265624996,-29.649707031250017],[-71.51923828124993,-28.926464843750026],[-71.30673828124998,-28.672460937499963],[-71.08652343749998,-27.814453124999957],[-70.92578125,-27.588671874999974],[-70.64658203124998,-26.329394531250017],[-70.71372070312498,-25.78417968749997],[-70.44536132812502,-25.17265624999999],[-70.57412109374994,-24.644335937500003],[-70.39233398437494,-23.565917968749957],[-70.59335937499995,-23.255468750000034],[-70.56318359374995,-23.057031250000023],[-70.33168945312494,-22.848632812500014],[-70.08002929687501,-21.356835937500037],[-70.19702148437494,-20.725390625],[-70.15742187499995,-19.70585937500003],[-70.41826171874999,-18.345605468750023],[-69.92636718749998,-18.206054687500014],[-69.80258789062498,-17.990234375000014],[-69.85209960937493,-17.70380859375001],[-69.68476562499995,-17.649804687500023],[-69.58642578125,-17.57324218749997],[-69.51093749999998,-17.50605468749997],[-69.31337890624997,-17.943164062500017],[-69.28232421875003,-17.96484375],[-69.09394531249993,-18.05048828125004],[-69.14545898437495,-18.14404296875],[-69.09228515624994,-18.28242187500004],[-69.02680664062493,-18.65625],[-68.97885742187503,-18.81298828125003],[-68.96831054687502,-18.967968749999983],[-68.85795898437499,-19.09335937500005],[-68.62055664062495,-19.29667968749999],[-68.54785156249997,-19.341113281249974],[-68.49199218749996,-19.381933593750034],[-68.47016601562495,-19.409960937499974],[-68.46289062499997,-19.43281250000001],[-68.57529296874998,-19.56015625000002],[-68.69829101562499,-19.721093750000037],[-68.69619140625,-19.74072265625003],[-68.57827148437494,-19.856542968750006],[-68.559375,-19.902343750000014],[-68.56069335937502,-19.96708984374996],[-68.75932617187499,-20.115527343750003],[-68.74516601562493,-20.45859375],[-68.48432617187498,-20.628417968749957],[-68.55825195312497,-20.90195312499999],[-68.197021484375,-21.30029296874997],[-68.18642578124997,-21.618554687499966],[-67.88173828124997,-22.493359375000026],[-67.87944335937496,-22.822949218750026],[-67.57993164062495,-22.89169921874999],[-67.36225585937493,-22.85517578125001],[-67.19487304687493,-22.821679687500037]]]]},"properties":{"name":"Chile","childNum":26}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[110.88876953125006,19.99194335937497],[111.01367187500003,19.65546875000001],[110.64091796875002,19.291210937499955],[110.45126953125012,18.747949218750023],[110.06738281249997,18.447558593750045],[109.51933593750007,18.21826171875003],[108.7015625,18.535253906250034],[108.66552734375003,19.304101562499994],[109.27666015625002,19.761132812500023],[109.17744140625004,19.768457031250023],[109.26347656250007,19.882666015625006],[110.1715820312501,20.053710937500057],[110.58818359375002,19.976367187500017],[110.6517578125,20.137744140625017],[110.88876953125006,19.99194335937497]]],[[[110.38515625000005,21.093164062499966],[110.52158203125006,21.083105468750063],[110.50390625000003,20.96772460937501],[110.28095703125004,21.001171874999983],[110.38515625000005,21.093164062499966]]],[[[112.64375,21.63964843750003],[112.525,21.62304687500003],[112.64765625000004,21.710253906250017],[112.64375,21.63964843750003]]],[[[112.79023437500004,21.601855468750045],[112.78203125000007,21.772265625000045],[112.86259765625002,21.75263671875004],[112.79023437500004,21.601855468750045]]],[[[118.1830078125,24.496289062499983],[118.0905273437501,24.446142578125063],[118.10380859375002,24.552343750000034],[118.1830078125,24.496289062499983]]],[[[119.82089843750006,25.45698242187504],[119.70029296875012,25.432714843750063],[119.72255859375005,25.638818359375023],[119.83837890625003,25.591064453125],[119.82089843750006,25.45698242187504]]],[[[121.2513671875,28.086425781250057],[121.13154296875004,28.062597656250006],[121.20546875,28.204394531250017],[121.2513671875,28.086425781250057]]],[[[122.29589843750003,29.96342773437499],[122.02402343750012,30.01333007812505],[121.96943359375004,30.143115234375017],[122.28447265625007,30.068017578124994],[122.29589843750003,29.96342773437499]]],[[[121.86269531250005,31.492285156249977],[121.519921875,31.549609375000017],[121.2111328125001,31.80537109375001],[121.86269531250005,31.492285156249977]]],[[[130.52695312500012,42.535400390625],[130.24667968750012,42.744824218749955],[130.24033203125006,42.891796874999955],[129.89824218750002,42.998144531250034],[129.69785156250012,42.448144531249994],[129.3136718750001,42.41357421874997],[128.92343750000006,42.038232421874966],[128.04521484375007,41.9875],[128.28925781250004,41.60742187500006],[128.14941406249997,41.38774414062496],[127.17968750000003,41.531347656250006],[126.95478515625004,41.76948242187501],[126.74306640625,41.724853515625],[125.98906250000002,40.904638671875034],[124.8893554687501,40.459814453125006],[124.36210937500002,40.004052734374994],[124.10576171875002,39.84101562499998],[123.65087890625003,39.881591796875],[122.8400390625001,39.600830078125],[121.98232421875,39.05317382812498],[121.67724609374997,39.00341796875006],[121.64990234375003,38.865087890625034],[121.16357421874997,38.73164062500001],[121.10673828125002,38.920800781249994],[121.6798828125001,39.10869140625002],[121.62763671875004,39.22016601562498],[121.81845703125006,39.38652343750002],[121.27548828125006,39.38476562500003],[121.26748046875,39.544677734375],[121.51757812499997,39.638964843750045],[121.51738281250002,39.84482421875006],[121.8009765625001,39.950537109375006],[122.27500000000012,40.541845703125034],[121.83486328125005,40.97426757812502],[121.72929687500002,40.84614257812504],[121.1745117187501,40.901269531249994],[120.47910156250006,40.23095703125003],[119.39111328125003,39.75249023437499],[118.976953125,39.182568359374955],[118.29785156249997,39.067089843749955],[118.04091796875,39.22675781249998],[117.86572265625003,39.191259765625034],[117.61669921875003,38.852880859375034],[117.5578125000001,38.625146484374994],[117.76669921875012,38.311669921874994],[118.01494140625007,38.18339843749996],[118.94003906250006,38.04277343750002],[119.08916015625007,37.70073242187496],[118.95263671875003,37.33115234374998],[119.28740234375002,37.138281250000034],[119.76054687500007,37.15507812499999],[120.31152343750003,37.62270507812505],[120.2572265625,37.67900390624996],[120.75,37.83393554687501],[121.64023437500012,37.46035156250002],[122.05664062500003,37.528906250000034],[122.66699218750003,37.40283203125003],[122.4466796875,37.06811523437503],[122.51972656250004,36.94682617187502],[122.34091796875012,36.83222656250004],[121.93271484375006,36.95947265625003],[121.05380859375006,36.61137695312499],[120.81083984375007,36.6328125],[120.89580078125007,36.44414062500002],[120.71152343750006,36.41328125000004],[120.6378906250001,36.129931640625045],[120.39306640625003,36.053857421874994],[120.32773437500006,36.228173828124994],[120.18330078125004,36.20244140624999],[120.094140625,36.11889648437503],[120.28476562500006,35.98442382812499],[119.42968749999997,35.301416015624994],[119.16533203125002,34.84882812499998],[119.20097656250002,34.748437499999966],[120.26669921875006,34.274023437500034],[120.87109374999997,33.016503906249994],[120.8532226562501,32.66137695312503],[121.34169921875005,32.42504882812503],[121.40390625000006,32.20625],[121.85634765625,31.816455078125045],[121.86630859375006,31.703564453124955],[121.68085937500004,31.71215820312503],[121.351953125,31.85878906250005],[120.97353515625,31.86938476562497],[120.52011718750006,32.10585937500002],[120.03593750000002,31.93627929687503],[120.7155273437501,31.983740234375006],[120.7877929687501,31.81977539062501],[121.66064453124997,31.319726562499994],[121.87792968750003,30.91699218750003],[121.41894531249997,30.789794921875057],[120.8214843750001,30.354638671875023],[120.44980468750006,30.38784179687505],[120.19462890625002,30.241308593750034],[120.49453125,30.303076171875006],[120.63339843750006,30.133154296875034],[121.25800781250004,30.30410156250005],[121.67792968750004,29.979101562500006],[122.08291015625005,29.870361328125057],[121.50625,29.484570312499955],[121.94121093750002,29.605908203124983],[121.91777343750007,29.13500976562497],[121.71748046875004,29.25634765625],[121.48710937500007,29.193164062500017],[121.67968749999997,28.953125],[121.54003906250003,28.931884765625],[121.6625,28.851416015625034],[121.47519531250006,28.64140625],[121.60996093750006,28.29213867187505],[121.27226562500002,28.222119140624983],[121.14570312500004,28.32666015624997],[120.95859375000006,28.037011718750023],[120.74765625000006,28.00996093750001],[120.83300781249997,27.891455078125034],[120.58750000000012,27.580761718749983],[120.60751953125012,27.41240234374996],[120.2787109375,27.097070312500023],[120.08671875000007,26.67158203125004],[119.88222656250005,26.610449218750006],[119.82421874999997,26.84638671875001],[119.71044921874997,26.728662109375023],[119.58818359375002,26.784960937500045],[119.8810546875001,26.33417968750004],[119.46308593750004,26.05468750000003],[119.13945312500007,26.12177734375001],[119.33203124999997,25.94873046875003],[119.61875000000012,26.003564453124994],[119.53945312500005,25.59125976562504],[119.6224609375,25.391162109375017],[119.180078125,25.449804687499977],[119.285546875,25.232226562500074],[118.97753906249997,25.209277343750017],[118.90908203125005,24.92890625000001],[118.63691406250004,24.835546874999977],[118.65703125000002,24.621435546874977],[118.0871093750001,24.627001953125045],[118.00595703125006,24.48198242187499],[117.84267578125005,24.47431640625004],[118.0560546875,24.24609374999997],[117.62822265625002,23.836718750000074],[117.46640625000012,23.84057617187497],[117.36767578124997,23.58862304687497],[117.29082031250007,23.71435546875],[117.08251953124997,23.578759765625023],[116.91064453124997,23.646679687499983],[116.86093750000006,23.453076171874983],[116.62939453124997,23.353857421875034],[116.69882812500006,23.277783203124983],[116.53828125000004,23.17968749999997],[116.47070312499997,22.945898437500034],[116.25185546875005,22.981347656249994],[115.85214843750006,22.801562500000045],[115.64042968750002,22.853417968750023],[115.49833984375002,22.718847656250063],[115.19580078125003,22.81728515625005],[114.85380859375007,22.616796875000063],[114.65166015625002,22.755273437500023],[114.55419921874997,22.52890625],[114.26601562500005,22.540966796874983],[114.01542968750007,22.51191406250001],[113.61962890624997,22.861425781249977],[113.6205078125,23.12749023437499],[113.51972656250004,23.102099609375074],[113.33105468749997,22.912011718749966],[113.55302734375002,22.594042968750045],[113.54912109375002,22.225195312500034],[113.14902343750012,22.075],[113.08876953125,22.207958984374983],[112.95390625000007,21.907324218750034],[112.80859374999997,21.944628906250074],[112.58632812500005,21.77685546875],[112.35966796875007,21.97802734375003],[112.30498046875002,21.74169921875003],[111.94394531250012,21.84965820312499],[111.60273437500004,21.55908203125003],[111.01689453125007,21.51171874999997],[110.56718750000002,21.21406250000001],[110.41093750000007,21.33813476562497],[110.15400390625004,20.944628906250017],[110.36542968750004,20.837597656249955],[110.31308593750012,20.67167968749999],[110.51152343750007,20.51826171875001],[110.34472656249997,20.29482421875005],[109.88251953125004,20.364062500000045],[109.96835937500006,20.448144531250023],[109.66259765625003,20.91689453125005],[109.68125000000012,21.13164062499999],[109.93076171875012,21.480566406250034],[109.6869140625,21.52460937500004],[109.56640624999997,21.690576171874994],[109.54404296875012,21.537939453125006],[109.14863281250004,21.425537109375],[109.1017578125001,21.59047851562505],[108.77167968750004,21.63046875],[108.59375,21.901025390624994],[108.47988281250005,21.904638671875006],[108.50214843750004,21.633447265624994],[108.32480468750006,21.693505859374994],[108.24628906250004,21.55839843749999],[107.97265624999997,21.507958984375023],[107.75927734374997,21.655029296875057],[107.35117187500012,21.60888671874997],[106.97099609375002,21.923925781250034],[106.66357421875003,21.97890625000005],[106.55039062500006,22.501367187499994],[106.78027343749997,22.778906250000034],[106.54179687500007,22.908349609375023],[106.2790039062501,22.857470703125045],[106.14843749999997,22.970068359375006],[105.8429687500001,22.922802734374955],[105.27539062500003,23.34521484375003],[104.86474609375003,23.136376953125023],[104.68730468750002,22.822216796874983],[104.37177734375004,22.704052734374983],[104.14306640624997,22.800146484375006],[103.94150390625006,22.540087890625045],[103.62021484375006,22.782031250000045],[103.49296875000007,22.587988281250034],[103.32666015625003,22.769775390625057],[102.98193359374997,22.4482421875],[102.47089843750004,22.75092773437501],[102.40644531250004,22.70800781249997],[102.2370117187501,22.466015624999983],[102.1759765625001,22.414648437500006],[102.12744140624997,22.379199218750045],[101.84179687500003,22.38847656249999],[101.75996093750004,22.490332031250034],[101.73876953124997,22.495263671874994],[101.70751953125003,22.486572265625],[101.67148437500006,22.462304687500023],[101.64619140625004,22.405419921874966],[101.61992187500002,22.32744140624999],[101.56787109374997,22.27636718749997],[101.52451171875006,22.25366210937497],[101.7365234375001,21.826513671874977],[101.74394531250007,21.77797851562505],[101.74726562500004,21.605761718750045],[101.72294921875007,21.31494140625003],[101.80058593750007,21.212597656249983],[101.78349609375007,21.204150390625017],[101.728125,21.156396484374994],[101.7047851562501,21.15014648437503],[101.54238281250005,21.23427734375005],[101.2814453125001,21.184130859375045],[101.24785156250007,21.197314453125045],[101.22441406250002,21.223730468750034],[101.21181640625,21.278222656250023],[101.2199218750001,21.34243164062505],[101.17539062500006,21.407519531250074],[101.19667968750005,21.522070312500063],[101.1388671875001,21.567480468749977],[101.07978515625004,21.75585937499997],[100.60458984375012,21.471777343750006],[100.14765625000004,21.480517578125017],[99.94072265625007,21.75874023437504],[99.9176757812501,22.02802734375001],[99.19296875000006,22.12597656249997],[99.50712890625002,22.959130859374994],[99.41806640625006,23.069238281250023],[98.86376953125003,23.191259765625034],[98.8322265625001,23.624365234374977],[98.67675781250003,23.905078125000045],[98.83505859375006,24.121191406250034],[98.2125,24.110644531250017],[97.56455078125012,23.911035156250023],[97.7082031250001,24.228759765625],[97.53144531250004,24.49169921875003],[97.58330078125002,24.77480468750005],[97.73789062500006,24.869873046875057],[97.8195312500001,25.251855468749994],[98.01074218749997,25.292529296875017],[98.14287109375007,25.571093750000017],[98.33378906250007,25.586767578125006],[98.65625,25.86357421874999],[98.56406250000006,26.072412109374994],[98.68554687499997,26.189355468750023],[98.7384765625001,26.785742187500006],[98.65117187500007,27.572460937499983],[98.4525390625,27.6572265625],[98.29882812499997,27.550097656250045],[98.06162109375012,28.185888671874977],[97.59921875000006,28.51704101562504],[97.53789062500002,28.510205078124983],[97.43144531250002,28.353906250000023],[97.35644531249997,28.254492187500006],[97.32158929493812,28.217097107438057],[97.3027336276825,28.08710519614969],[97.34382779482424,27.982305259167095],[97.04929369561631,27.76000444316393],[96.96494598325154,27.699301564540924],[96.19423412199573,28.04146177926422],[95.73730002295082,28.117613231051525],[95.11298892962586,27.748338353239472],[94.07167814294401,27.588707868507477],[93.61247595136224,27.323800298697016],[93.30681393470121,26.786120363519142],[92.74319481218781,26.833531317384058],[92.04974640832253,26.874866505386724],[92.07342257335648,26.915311275859864],[92.06813426293174,26.9752569185349],[92.02985139563152,27.03987087331446],[91.99856592104459,27.079255842602592],[91.99177981607339,27.100605151743654],[92.0025114452454,27.147290053160265],[92.03101585307499,27.214271359861193],[92.08387457645458,27.29090135496722],[92.04520857607581,27.364442429033787],[91.99069061380867,27.450181624174498],[91.95099838734396,27.45828799115413],[91.85276579410389,27.438593286730903],[91.74366351462741,27.442853010105477],[91.59505352446729,27.557262710287986],[91.63193359375012,27.759960937499983],[91.64189453125002,27.923242187500023],[91.36259958579089,28.02438066407592],[91.27304687500012,28.078369140625],[91.22587890625007,28.071240234374983],[91.07773437500012,27.974462890624977],[91.02080078125002,27.970068359374977],[90.71572265625,28.071728515624983],[90.63007812500004,28.078564453124955],[90.47734375000007,28.07084960937499],[90.3527343750001,28.080224609375023],[90.33310546875012,28.093994140625],[90.36298828125004,28.21650390625001],[90.34824218750006,28.24394531249999],[90.22080078125006,28.27773437500005],[90.10449218749997,28.302050781250017],[89.98105468750006,28.311181640625023],[89.8978515625,28.29414062500001],[89.81689453125003,28.25629882812501],[89.74980468750002,28.18818359375001],[89.65273437500005,28.158300781250034],[89.53691406250007,28.10742187499997],[89.4806640625001,28.059960937499994],[88.89140625000002,27.316064453124966],[88.83251953125003,27.36284179687499],[88.7648437500001,27.429882812499983],[88.74902343749997,27.521875],[88.82988281250002,27.76738281249999],[88.84882812500004,27.86865234375],[88.80371093750003,28.006933593750034],[88.57792968750002,28.093359375000034],[88.42597656250004,28.01166992187501],[88.27519531250007,27.968847656250006],[88.14111328125003,27.94892578125001],[88.10898437500006,27.933007812499966],[88.10976562500005,27.870605468750057],[87.8607421875,27.886083984375006],[87.62255859374997,27.81518554687503],[87.29072265625004,27.821923828124994],[87.14140625000002,27.838330078124955],[87.02011718750006,27.928662109374983],[86.9337890625001,27.96845703125001],[86.84238281250012,27.99916992187505],[86.750390625,28.022070312500006],[86.71962890625005,28.070654296875034],[86.69052734375006,28.09492187500001],[86.61445312500004,28.10302734374997],[86.55449218750007,28.08520507812497],[86.51689453125007,27.963525390624966],[86.40869140625003,27.928662109374983],[86.32861328124997,27.95952148437496],[86.2179687500001,28.022070312500006],[86.13701171875002,28.114355468750063],[86.07871093750006,28.08359375],[86.0641601562501,27.934716796874966],[85.99453125000005,27.910400390625],[85.95410156249997,27.92822265624997],[85.92167968750002,27.989697265624983],[85.84023437500005,28.135351562499977],[85.75947265625004,28.220654296874955],[85.67832031250012,28.277441406249977],[85.41064453125003,28.27602539062505],[85.21210937500004,28.292626953124966],[85.1224609375,28.315966796875017],[85.08857421875004,28.37226562500001],[85.121484375,28.484277343750023],[85.16015624999997,28.571875],[85.15908203125,28.592236328124983],[85.1263671875,28.602636718750063],[85.06914062500007,28.60966796874999],[84.85507812500006,28.553613281250023],[84.796875,28.560205078125023],[84.2287109375001,28.911767578124966],[84.17558593750002,29.036376953125057],[84.12783203125005,29.15629882812496],[84.10136718750002,29.21997070312497],[84.02197265624997,29.25385742187504],[83.93593750000005,29.27949218750001],[83.58349609375003,29.18359375000003],[83.15546875000004,29.612646484375034],[82.22070312500003,30.063867187500023],[82.04335937500005,30.326757812500034],[81.8548828125,30.362402343750006],[81.64189453125007,30.3875],[81.4171875000001,30.33759765625001],[81.25507812500004,30.09331054687499],[81.17714843750005,30.039892578125034],[80.98544921875006,30.23710937499999],[80.87353515625003,30.290576171875045],[80.19121093750002,30.56840820312496],[80.20712890625006,30.683740234375023],[79.92451171875004,30.888769531250034],[79.66425781250004,30.96523437499999],[79.38847656250007,31.064208984375],[79.10712890625004,31.402636718750017],[78.74355468750005,31.323779296875017],[78.7550781250001,31.55029296875],[78.69345703125006,31.740380859374994],[78.72558593750003,31.983789062500023],[78.49589843750002,32.21577148437504],[78.4552734375001,32.30034179687502],[78.41748046874997,32.466699218749994],[78.38964843749997,32.51987304687498],[78.73671875,32.55839843750002],[78.75351562500012,32.49926757812506],[78.91894531249997,32.35820312500002],[79.16992187500003,32.497216796874994],[79.14550781250003,33.00146484375006],[79.10283203125007,33.05253906249996],[79.13515625000005,33.17192382812496],[79.1125,33.22626953125001],[78.94843750000004,33.346533203125006],[78.86503906250002,33.43110351562501],[78.78378906250006,33.80878906250004],[78.72666015625006,34.013378906249955],[78.97060546875,34.22822265625004],[78.93642578125,34.35195312500002],[78.86484375000006,34.39033203125001],[78.32695312500007,34.60639648437498],[78.15849609375002,34.94648437499998],[78.07578125000006,35.13491210937502],[78.0426757812501,35.47978515625002],[77.79941406250006,35.49589843750002],[77.44648437500004,35.47558593750006],[77.29482421875005,35.508154296875034],[77.09003906250004,35.55205078124999],[76.87890625000003,35.61328125000003],[76.76689453125002,35.661718750000034],[76.72753906250003,35.67866210937504],[76.63183593749997,35.729394531249966],[76.56347656249997,35.77299804687499],[76.55126953124997,35.887060546875034],[76.50205078125006,35.87822265625002],[76.38574218750003,35.837158203125],[76.25166015625004,35.8109375],[76.17783203125012,35.810546875],[76.14785156250005,35.82900390625002],[76.07089843750006,35.983007812500034],[75.91230468750004,36.048974609374994],[75.97441406250007,36.38242187500006],[75.9518554687501,36.458105468750034],[75.9330078125,36.52158203124998],[75.840234375,36.64970703124999],[75.7721679687501,36.694921875000034],[75.6671875000001,36.741992187500045],[75.57373046874997,36.75932617187502],[75.46025390625002,36.725048828124955],[75.42421875000005,36.73823242187498],[75.37685546875,36.88369140625005],[75.34667968749997,36.913476562499966],[75.05390625000004,36.98715820312498],[74.94912109375,36.96835937500006],[74.88925781250006,36.95244140625002],[74.69218750000007,37.035742187500006],[74.60058593749997,37.03666992187502],[74.54140625,37.02216796875001],[74.52646484375006,37.03066406250005],[74.49794921875,37.057226562500034],[74.37617187500004,37.13735351562502],[74.37216796875006,37.15771484375],[74.558984375,37.23662109374999],[74.66894531250003,37.266699218750006],[74.72666015625006,37.29072265625001],[74.7389648437501,37.28564453125003],[74.76738281250002,37.249169921874966],[74.840234375,37.22504882812504],[74.89130859375004,37.231640624999955],[75.11875,37.38569335937498],[74.8942382812501,37.60141601562498],[74.81230468750002,38.46030273437498],[74.27744140625,38.659765625000034],[74.02558593750004,38.53984375000002],[73.80166015625,38.60688476562501],[73.69609375000007,38.85429687499996],[73.8052734375,38.968652343749994],[73.60732421875,39.229199218749955],[73.63632812500006,39.396679687499955],[73.63164062500007,39.44887695312502],[73.82294921875004,39.48896484375004],[73.90712890625,39.578515624999966],[73.9146484375,39.60649414062499],[73.88251953125004,39.71455078124998],[73.83974609375005,39.76284179687505],[73.8353515625,39.800146484375006],[73.85625,39.828662109375045],[73.88457031250002,39.87792968750006],[73.93876953125002,39.97880859374999],[73.99160156250005,40.04311523437502],[74.83046875,40.32851562499999],[74.80126953124997,40.428515625000045],[74.83515625000004,40.482617187499955],[74.865625,40.493505859375034],[75.0044921875,40.44951171874996],[75.11132812499997,40.4541015625],[75.24101562500002,40.48027343750002],[75.52080078125002,40.627539062500006],[75.55556640625,40.625195312499955],[75.6771484375,40.305810546874994],[75.87197265625,40.30322265625],[76.25830078124997,40.43076171875006],[76.3185546875001,40.352246093749955],[76.39638671875005,40.389794921874966],[76.4801757812501,40.44951171874996],[76.57792968750002,40.577880859375],[76.62216796875006,40.66235351562497],[76.6398437500001,40.74223632812499],[76.66113281249997,40.77963867187498],[76.70839843750005,40.818115234375],[76.82402343750002,40.982324218749966],[76.90771484374997,41.02416992187497],[76.98662109375002,41.039160156250006],[77.58173828125004,40.99277343750006],[77.71933593750012,41.024316406249994],[77.81523437500002,41.05561523437498],[77.9564453125,41.05068359375005],[78.1234375,41.07563476562498],[78.34628906250012,41.28144531249998],[78.36240234375012,41.37163085937496],[78.44287109374997,41.41752929687499],[78.742578125,41.56005859375],[79.29355468750006,41.78281249999998],[79.76611328124997,41.89887695312501],[79.84042968750012,41.99575195312502],[79.90966796875003,42.014990234375034],[80.21621093750005,42.03242187500004],[80.23515625000007,42.04345703124997],[80.24619140625012,42.05981445312503],[80.209375,42.190039062500006],[80.20224609375012,42.73447265624998],[80.53896484375005,42.873486328124955],[80.39023437500006,43.043115234374966],[80.78574218750006,43.16157226562504],[80.35527343750002,44.09726562500006],[80.48154296875006,44.71464843749999],[79.871875,44.88378906249997],[80.05917968750012,45.006445312500006],[81.69199218750012,45.34936523437497],[81.94492187500006,45.16083984375001],[82.26660156249997,45.21909179687498],[82.52148437500003,45.12548828125],[82.61162109375007,45.424267578124955],[82.31523437500002,45.59492187499998],[83.02949218750004,47.18593750000002],[84.016015625,46.97050781250002],[84.66660156250006,46.97236328125004],[84.78613281249997,46.83071289062505],[85.484765625,47.06352539062496],[85.65664062500005,47.254638671875],[85.52597656250006,47.915625],[85.7494140625,48.38505859374999],[86.54941406250012,48.52861328125002],[86.8083007812501,49.04970703125002],[87.32285156250012,49.085791015625006],[87.41669921875004,49.07661132812501],[87.5158203125001,49.122412109375006],[87.7625,49.16582031249996],[87.81425781250002,49.162304687499955],[87.87216796875012,49.000146484374966],[87.74316406250003,48.88164062499999],[87.83183593750007,48.79165039062505],[88.02792968750006,48.735595703125],[88.06005859375003,48.707177734374966],[87.9796875000001,48.55512695312498],[88.30996093750005,48.47207031250002],[88.41396484375,48.403417968750006],[88.51708984374997,48.384472656249955],[88.56679687500005,48.31743164062496],[88.57597656250007,48.220166015624955],[88.68183593750004,48.170556640624994],[88.83828125000005,48.101708984374994],[88.91777343750007,48.089013671874966],[89.04765625000007,48.002539062500034],[89.47919921875004,48.02905273437503],[89.5609375,48.00395507812496],[89.778125,47.82700195312498],[89.83134765625002,47.82329101562502],[89.91044921875007,47.844335937500034],[89.95869140625004,47.88632812499998],[90.02792968750012,47.877685546875],[90.1032226562501,47.74541015624996],[90.19101562500012,47.70209960937501],[90.31328125000007,47.67617187499999],[90.33066406250006,47.655175781249966],[90.42519531250005,47.50410156250001],[90.49619140625012,47.28515625],[90.64335937500007,47.10029296874998],[90.71552734375004,47.00385742187498],[90.7990234375001,46.98515624999999],[90.86992187500002,46.95449218750005],[90.91054687500005,46.88325195312501],[90.9857421875,46.7490234375],[90.9115234375,46.270654296874994],[90.94755859375002,46.17729492187499],[90.99677734375004,46.10498046875],[91.00175781250007,46.03579101562502],[90.6618164062501,45.525244140625006],[90.87724609375002,45.19609375000002],[91.05,45.217431640624994],[91.584375,45.07651367187498],[92.42382812499997,45.008935546874994],[92.57890625000002,45.01098632812506],[92.78789062500007,45.035742187500034],[93.51621093750012,44.944482421874994],[94.71201171875012,44.35083007812503],[95.35029296875004,44.27807617187503],[95.32558593750005,44.03935546874999],[95.52558593750004,43.953955078125006],[95.85957031250004,43.27597656249998],[96.38544921875004,42.72036132812502],[97.20566406250012,42.78979492187506],[99.46787109375012,42.568212890625034],[99.98378906250005,42.67734375000006],[100.08632812500005,42.67075195312506],[100.51904296875003,42.61679687499998],[101.09199218750004,42.55131835937496],[101.49531250000004,42.53876953124998],[101.57910156249997,42.52353515624998],[101.65996093750002,42.50004882812499],[101.97294921875002,42.21586914062502],[102.15664062500005,42.158105468749966],[102.57519531249997,42.09208984375002],[103.07285156250006,42.00595703125006],[103.7111328125001,41.75131835937506],[103.99726562500004,41.796972656250034],[104.30517578124997,41.84614257812501],[104.49824218750004,41.87700195312499],[104.49824218750004,41.65869140625],[104.86035156250003,41.64375],[104.98203125000012,41.59550781250002],[105.05058593750002,41.61591796875001],[105.1154296875001,41.66328124999998],[105.19707031250002,41.738037109375],[105.31435546875005,41.77089843750005],[105.86757812500005,41.993994140625034],[106.77001953125003,42.28872070312502],[108.17119140625002,42.44731445312502],[108.68730468750002,42.416113281250034],[109.33984374999997,42.43837890625005],[109.44316406250002,42.455957031249994],[110.40039062499997,42.77368164062497],[111.00722656250005,43.34140624999998],[111.878125,43.68017578125],[111.93173828125012,43.81494140625],[111.40224609375005,44.367285156250006],[111.89804687500006,45.064062500000034],[112.03261718750005,45.08164062500006],[112.11289062500006,45.06293945312498],[112.41132812500004,45.05820312499998],[112.49931640625002,45.01093750000004],[112.59677734375006,44.917675781249955],[112.7067382812501,44.883447265624994],[113.04941406250006,44.81035156250002],[113.3009765625001,44.79165039062502],[113.50791015625006,44.76235351562502],[113.58701171875006,44.745703125],[113.65263671875002,44.76347656249999],[113.87705078125012,44.89619140625001],[114.03027343749997,44.942578124999955],[114.08027343750004,44.97114257812501],[114.41914062500004,45.20258789062501],[114.56015625000012,45.38999023437498],[114.73876953124997,45.41962890624998],[114.91923828125007,45.378271484375006],[115.16259765624997,45.390234375000034],[115.6810546875,45.45825195312503],[116.19765625,45.739355468750006],[116.240625,45.795996093750006],[116.22910156250012,45.84575195312502],[116.21298828125012,45.88691406249998],[116.56259765625012,46.28979492187497],[116.85908203125004,46.387939453125],[117.3333984375,46.36201171875004],[117.35693359375003,46.391308593749955],[117.35634765625,46.436669921874966],[117.39218750000012,46.53759765625003],[117.40556640625007,46.57089843750006],[117.43808593750012,46.58623046874999],[117.546875,46.58828125000005],[117.74121093749997,46.51816406250006],[118.07128906249997,46.666601562500006],[118.15683593750006,46.678564453125034],[118.30869140625012,46.71704101562497],[118.40439453125006,46.70317382812499],[118.58046875,46.69189453125],[118.64873046875002,46.70166015625006],[118.72294921875007,46.69189453125],[118.8439453125001,46.76020507812498],[118.95712890625006,46.73486328124997],[119.16210937499997,46.638671875],[119.33183593750002,46.61381835937499],[119.47402343750005,46.626660156249955],[119.62021484375006,46.60395507812504],[119.70664062500006,46.60600585937502],[119.74746093750005,46.62719726562497],[119.86718750000003,46.67216796874999],[119.89785156250005,46.857812499999966],[119.71113281250004,47.15],[119.08193359375,47.654150390625034],[119.01757812500003,47.68535156249999],[118.88027343750005,47.72509765625],[118.75996093750004,47.75761718749996],[118.69052734375012,47.822265625],[118.56777343750005,47.94326171875005],[118.49843750000005,47.98398437499998],[117.76835937500002,47.98789062499998],[117.3507812500001,47.65219726562498],[117.28593750000002,47.666357421875034],[117.06972656250005,47.80639648437506],[116.95166015624997,47.836572265624966],[116.90117187500007,47.85307617187496],[116.76054687500002,47.869775390624994],[116.65195312500012,47.86450195312497],[116.51347656250007,47.839550781249955],[116.37822265625002,47.84404296874999],[116.31718750000002,47.85986328125],[116.2311523437501,47.85820312500002],[116.07480468750012,47.78955078125],[115.99384765625004,47.71132812500005],[115.89824218750002,47.68691406250005],[115.6164062500001,47.874804687500045],[115.52509765625004,48.13085937499997],[115.63945312500007,48.18623046874998],[115.785546875,48.24824218750001],[115.7965820312501,48.346337890624994],[115.7916992187501,48.455712890624994],[115.8205078125001,48.57724609375006],[116.6833007812501,49.82377929687499],[117.8734375,49.51347656250002],[118.4515625,49.84448242187503],[119.25986328125012,50.06640625000003],[119.34628906250012,50.278955078124994],[119.16367187500006,50.40600585937503],[120.06689453125003,51.60068359375006],[120.74980468750007,52.096533203125006],[120.65615234375,52.56665039062503],[120.0675781250001,52.632910156250034],[120.09453125000007,52.787207031250034],[120.98544921875012,53.28457031250002],[123.6078125,53.546533203124994],[124.81230468750002,53.133837890625045],[125.075,53.20366210937496],[125.64902343750012,53.042285156250045],[126.34169921875,52.36201171875001],[126.92480468749997,51.10014648437496],[127.30703125000005,50.70795898437501],[127.33720703125007,50.35014648437502],[127.590234375,50.20898437500003],[127.55078124999997,49.801806640625045],[127.99960937500006,49.56860351562506],[128.70400390625,49.60014648437499],[129.0651367187501,49.374658203124966],[129.49814453125012,49.38881835937502],[130.1959960937501,48.89165039062499],[130.553125,48.861181640625006],[130.5521484375,48.602490234374955],[130.80429687500012,48.34150390624998],[130.7326171875001,48.01923828124998],[130.96191406249997,47.70932617187498],[132.47626953125004,47.714990234374994],[132.7072265625001,47.94726562500006],[133.14404296875003,48.10566406249998],[133.46835937500006,48.09716796875003],[134.29335937500005,48.37343750000002],[134.66523437500004,48.25390625],[134.56601562500006,48.02250976562502],[134.75234375,47.71542968749998],[134.1676757812501,47.30219726562501],[133.86132812500003,46.24775390625004],[133.43642578125,45.60468750000004],[133.18603515625003,45.49482421875004],[133.1134765625001,45.130712890625006],[132.93603515624997,45.029931640624994],[131.85185546875002,45.32685546875001],[131.44687500000012,44.984033203124966],[130.9816406250001,44.844335937500034],[131.2552734375,44.07158203124999],[131.25732421875003,43.378076171874994],[131.06855468750004,42.90224609375005],[130.42480468749997,42.72705078124997],[130.52695312500012,42.535400390625]]],[[[113.9977539062501,22.210498046875045],[113.83886718749997,22.24169921875003],[114.04394531250003,22.33339843750005],[113.9977539062501,22.210498046875045]]],[[[114.01542968750007,22.51191406250001],[114.26601562500005,22.540966796874983],[114.26796875,22.295556640624966],[113.93730468750002,22.364990234375],[114.01542968750007,22.51191406250001]]],[],[[[118.4074218750001,24.522119140624994],[118.43271484375006,24.414355468750074],[118.29511718750004,24.436328125000017],[118.4074218750001,24.522119140624994]]],[[[121.00878906249997,22.62036132812497],[120.83984375000003,21.925],[120.2328125,22.71791992187505],[120.0724609375001,23.149755859375006],[120.13212890625007,23.652929687500034],[121.040625,25.032812500000034],[121.59365234375,25.275341796874983],[121.92900390625002,24.973730468749977],[121.39746093750003,23.172509765625023],[121.00878906249997,22.62036132812497]]]]},"properties":{"name":"China","childNum":15}},{"geometry":{"type":"Polygon","coordinates":[[[-5.262304687499977,10.319677734374991],[-4.72177734374992,9.756542968750026],[-4.625830078125006,9.713574218749969],[-4.526611328124943,9.723486328125034],[-4.406201171874926,9.647998046875031],[-4.332226562499955,9.645703125],[-4.18115234375,9.78173828125],[-3.790625,9.917187499999983],[-3.581152343749977,9.924316406250014],[-3.289697265625023,9.882226562500051],[-3.223535156249937,9.895458984374997],[-3.160693359374932,9.849169921874974],[-3.095800781249949,9.752099609375009],[-3.042626953124937,9.72089843750004],[-2.988281249999972,9.687353515624963],[-2.900878906249943,9.534619140625026],[-2.875146484374937,9.500927734374997],[-2.816748046874949,9.425830078124974],[-2.766601562499943,9.424707031250009],[-2.7171875,9.457128906250048],[-2.695849609374989,9.481347656250009],[-2.686132812499977,9.43173828125002],[-2.705761718749983,9.351367187499989],[-2.74692382812492,9.04511718750004],[-2.689892578124955,9.02509765625004],[-2.649218750000017,8.956591796875031],[-2.600390625000017,8.800439453125023],[-2.505859375000028,8.208740234375],[-2.538281249999955,8.171630859374986],[-2.61171875,8.147558593749963],[-2.619970703125006,8.12109375],[-2.600976562499937,8.082226562499983],[-2.613378906249977,8.046679687500017],[-2.668847656249994,8.022216796875014],[-2.789746093749955,7.931933593750003],[-2.959082031249977,7.454541015624997],[-3.227148437499977,6.749121093749991],[-2.998291015624972,5.711328125000051],[-2.793652343749955,5.600097656250028],[-2.754980468749977,5.432519531249994],[-2.815673828125,5.153027343749997],[-3.168701171874972,5.203027343749966],[-3.199951171874943,5.3544921875],[-3.347558593749994,5.13066406249996],[-4.120166015625017,5.309716796875023],[-4.60888671875,5.235888671875003],[-4.037207031249977,5.23012695312498],[-4.899707031249932,5.138330078125023],[-5.282373046874994,5.210253906250017],[-5.36752929687492,5.15078125],[-5.061816406249989,5.13066406249996],[-5.913769531249926,5.0109375],[-7.544970703124989,4.351318359375],[-7.574658203124983,4.572314453124989],[-7.585058593749977,4.916748046875],[-7.39990234375,5.550585937499989],[-7.454394531249989,5.841308593749972],[-7.636132812499994,5.90771484375],[-7.730371093749994,5.919042968749991],[-7.800927734374994,6.038916015624991],[-7.833251953125,6.076367187499983],[-7.855517578125017,6.150146484375],[-7.888623046875011,6.234863281250028],[-7.981591796874937,6.2861328125],[-8.287109375,6.31904296875004],[-8.587890625,6.490527343749989],[-8.324511718749989,6.920019531249991],[-8.408740234374989,7.411816406249997],[-8.429980468749989,7.601855468749989],[-8.351757812499926,7.590576171875],[-8.231884765624955,7.556738281250034],[-8.205957031249994,7.590234375000023],[-8.115429687499926,7.760742187500028],[-8.126855468749937,7.867724609374974],[-8.00986328124992,8.078515625000023],[-8.048583984375,8.169726562500045],[-8.140625,8.181445312500031],[-8.217138671874949,8.219677734375011],[-8.256103515625,8.253710937500017],[-8.244140624999943,8.407910156249983],[-8.236962890624994,8.455664062500034],[-7.953125,8.477734375],[-7.823583984374977,8.467675781249994],[-7.738964843749983,8.375244140624986],[-7.696093749999932,8.375585937499977],[-7.71958007812492,8.643017578125011],[-7.950976562499989,8.786816406249997],[-7.938183593749983,8.97978515624996],[-7.902099609375,9.017089843750014],[-7.777978515624937,9.080859375000031],[-7.799804687499943,9.115039062499989],[-7.839404296875017,9.151611328124972],[-7.918066406249949,9.188525390625031],[-7.896191406249955,9.415869140624991],[-8.136962890624972,9.49570312499999],[-8.155175781249937,9.973193359375017],[-7.990625,10.1625],[-7.661132812500028,10.427441406250011],[-7.385058593749989,10.340136718749989],[-7.01708984375,10.143261718750026],[-6.950341796874994,10.342333984374989],[-6.693261718750023,10.34946289062502],[-6.669335937499937,10.39218750000002],[-6.69199218749992,10.512011718750017],[-6.686132812499977,10.578027343750051],[-6.676367187499949,10.633789062500043],[-6.654150390624949,10.65644531250004],[-6.482617187499983,10.561230468749997],[-6.250244140625,10.717919921875037],[-6.190673828124943,10.400292968749994],[-6.192626953124972,10.369433593750003],[-6.241308593749949,10.279199218750009],[-6.238378906249977,10.26162109374998],[-6.117187499999972,10.201904296874986],[-6.034570312499937,10.194824218750057],[-5.907568359375006,10.307226562500034],[-5.896191406249983,10.354736328125028],[-5.843847656249977,10.389550781250023],[-5.694287109374983,10.433203125000034],[-5.556591796874983,10.439941406249986],[-5.382275390625011,10.314013671875003],[-5.262304687499977,10.319677734374991]]]},"properties":{"name":"Côte d\'Ivoire","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[15.480078125,7.523779296874991],[15.206738281250011,7.206152343749991],[14.7392578125,6.27978515625],[14.43115234375,6.038720703124994],[14.616894531250011,5.865136718749994],[14.56298828125,5.279931640624994],[14.73125,4.602392578124991],[15.063574218750006,4.284863281249997],[15.128710937500017,3.826904296875],[16.0634765625,2.90859375],[16.183398437500017,2.270068359374989],[16.059375,1.676220703124997],[15.741601562500023,1.914990234374997],[14.902441406250006,2.012304687499991],[14.578906250000017,2.199121093749994],[13.293554687500006,2.161572265624997],[13.2203125,2.256445312499991],[11.558984375000023,2.302197265624997],[11.348437500000017,2.299707031249994],[11.328710937500006,2.167431640624997],[11.096582031250023,2.16748046875],[10.790917968750023,2.16757812499999],[9.979882812500023,2.167773437499989],[9.8701171875,2.21328125],[9.8369140625,2.242382812499997],[9.830371093750017,2.275488281249991],[9.826171875,2.297802734374997],[9.80078125,2.304443359375],[9.82177734375,2.539257812499997],[9.948437500000011,3.079052734374997],[9.672070312500011,3.53759765625],[9.765722656250006,3.623828124999989],[9.642382812500017,3.611767578124997],[9.55615234375,3.798046875],[9.739648437500023,3.852929687499994],[9.639941406250017,3.96533203125],[9.688867187500023,4.056396484375],[9.483691406250017,4.066113281249997],[9.42529296875,3.922314453124997],[9.000097656250006,4.091601562499989],[8.918261718750017,4.553759765624989],[8.660351562500011,4.670996093749991],[8.65625,4.516357421875],[8.53955078125,4.571875],[8.715625,5.046875],[8.997167968750006,5.917724609375],[9.490234375,6.418652343749997],[9.779882812500006,6.76015625],[9.820703125000023,6.783935546875],[9.874218750000011,6.803271484374989],[10.038867187500017,6.92138671875],[10.1435546875,6.996435546874991],[10.167773437500017,6.959179687499997],[10.185546875,6.912792968749997],[10.205468750000023,6.8916015625],[10.293066406250006,6.876757812499989],[10.413183593750006,6.877734374999989],[10.60625,7.063085937499991],[10.954199218750006,6.7765625],[11.032519531250017,6.697900390624994],[11.1064453125,6.457714843749997],[11.1533203125,6.437939453124997],[11.2373046875,6.450537109374991],[11.401757812500023,6.533935546875],[11.551660156250023,6.697265625],[11.580078125,6.888867187499997],[11.657519531250017,6.9515625],[11.861425781250006,7.11640625],[11.767382812500017,7.272265624999989],[11.809179687500006,7.345068359374991],[12.016015625000023,7.589746093749994],[12.2333984375,8.282324218749991],[12.403515625000011,8.595556640624991],[12.582714843750011,8.624121093749991],[12.651562500000011,8.667773437499989],[12.7822265625,8.81787109375],[12.806542968750023,8.886621093749994],[12.875683593750011,9.303515624999989],[12.929492187500017,9.42626953125],[13.19873046875,9.563769531249989],[13.269921875000023,10.036181640624989],[13.41455078125,10.171435546874989],[13.535351562500011,10.60507812499999],[13.699902343750011,10.873144531249991],[13.89208984375,11.140087890624997],[13.9814453125,11.211865234374997],[14.056738281250006,11.245019531249994],[14.143261718750011,11.24853515625],[14.202343750000011,11.268164062499991],[14.559765625000011,11.492285156249991],[14.619726562500006,12.150976562499991],[14.518945312500023,12.298242187499994],[14.272851562500023,12.356494140624989],[14.184863281250017,12.447216796874997],[14.06396484375,13.07851562499999],[14.244824218750011,13.07734375],[14.461718750000017,13.021777343749989],[14.847070312500023,12.502099609374994],[15.08125,11.845507812499989],[15.029882812500006,11.11367187499999],[15.132226562500023,10.648486328124989],[15.276074218750011,10.357373046874997],[15.654882812500006,10.0078125],[14.243261718750006,9.979736328125],[13.977246093750011,9.691552734374994],[14.332324218750017,9.20351562499999],[15.1162109375,8.557324218749997],[15.5498046875,7.787890624999989],[15.480078125,7.523779296874991]]]},"properties":{"name":"Cameroon","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[27.4033203125,5.109179687499989],[27.7880859375,4.644677734374994],[28.19208984375001,4.350244140624994],[28.427539062500017,4.324169921874997],[28.72705078125,4.504980468749991],[29.224902343750017,4.391894531249989],[29.469628906250023,4.61181640625],[29.676855468750006,4.5869140625],[30.194921875,3.98193359375],[30.50830078125,3.835693359375],[30.586718750000017,3.62421875],[30.757226562500023,3.62421875],[30.83857421875001,3.49072265625],[30.90644531250001,3.408935546875],[30.754003906250006,3.041796874999989],[30.8466796875,2.847021484374991],[30.728613281250006,2.455371093749989],[31.176367187500006,2.270068359374989],[31.252734375000017,2.044580078124994],[29.94287109375,0.819238281249994],[29.934472656250023,0.4990234375],[29.717675781250023,0.098339843749997],[29.576953125000017,-1.387890625000011],[29.196582031250017,-1.719921875000011],[29.13154296875001,-2.195117187500003],[28.876367187500023,-2.400292968750009],[28.893945312500023,-2.635058593750003],[29.01435546875001,-2.72021484375],[29.224414062500017,-3.053515625],[29.211816406250023,-3.833789062500003],[29.403222656250023,-4.449316406250006],[29.404199218750023,-4.496679687500006],[29.32568359375,-4.835644531250011],[29.32343750000001,-4.898828125],[29.3427734375,-4.983105468750011],[29.542382812500023,-5.499804687500003],[29.594140625000023,-5.65078125],[29.60703125,-5.72265625],[29.59638671875001,-5.775976562500006],[29.490820312500006,-5.965429687500006],[29.480078125,-6.025],[29.50625,-6.172070312500011],[29.540820312500017,-6.313867187500009],[29.590625,-6.394433593750009],[29.70966796875001,-6.616894531250011],[29.798144531250017,-6.69189453125],[29.961816406250023,-6.803125],[30.10625,-6.9150390625],[30.212695312500017,-7.037890625],[30.31318359375001,-7.203710937500006],[30.40673828125,-7.460644531250011],[30.75117187500001,-8.193652343750003],[28.89814453125001,-8.485449218750006],[28.869531250000023,-8.785839843750011],[28.400683593750017,-9.224804687500011],[28.60419921875001,-9.678808593750006],[28.6455078125,-10.550195312500009],[28.383398437500006,-11.566699218750003],[28.482519531250006,-11.812109375],[29.064355468750023,-12.348828125000011],[29.48554687500001,-12.41845703125],[29.508203125000023,-12.228222656250011],[29.79511718750001,-12.155468750000011],[29.775195312500017,-13.438085937500006],[29.55419921875,-13.248925781250009],[29.20185546875001,-13.398339843750009],[29.014257812500006,-13.368847656250011],[28.730078125,-12.925488281250011],[28.550878906250006,-12.836132812500011],[28.412890625000017,-12.51806640625],[27.573828125,-12.22705078125],[27.1591796875,-11.579199218750006],[26.824023437500017,-11.965234375],[26.025976562500006,-11.89013671875],[25.349414062500017,-11.623046875],[25.28876953125001,-11.21240234375],[24.3779296875,-11.417089843750006],[24.36572265625,-11.1298828125],[23.96650390625001,-10.871777343750011],[23.901171875000017,-10.983203125],[23.833886718750023,-11.013671875],[23.463964843750006,-10.969335937500006],[23.076269531250006,-11.087890625],[22.814746093750017,-11.080273437500011],[22.56103515625,-11.055859375000011],[22.486132812500017,-11.08671875],[22.392968750000023,-11.159472656250003],[22.31494140625,-11.198632812500009],[22.27880859375,-11.194140625],[22.226171875,-11.121972656250009],[22.203515625000023,-10.829492187500009],[22.307031250000023,-10.691308593750009],[22.19775390625,-10.040625],[21.81318359375001,-9.46875],[21.905371093750006,-8.693359375],[21.806054687500023,-7.32861328125],[21.751074218750006,-7.30546875],[21.190332031250023,-7.284960937500003],[20.910937500000017,-7.281445312500011],[20.607812500000023,-7.277734375],[20.558398437500017,-7.244433593750003],[20.53583984375001,-7.182812500000011],[20.536914062500017,-7.121777343750011],[20.598730468750006,-6.93515625],[20.59003906250001,-6.919921875],[20.482226562500017,-6.915820312500003],[20.190039062500006,-6.9462890625],[19.997460937500023,-6.976464843750009],[19.87519531250001,-6.986328125],[19.527636718750017,-7.144433593750009],[19.483789062500023,-7.279492187500011],[19.479882812500023,-7.47216796875],[19.371679687500006,-7.655078125],[19.369921875000017,-7.70654296875],[19.3408203125,-7.966601562500003],[19.142675781250006,-8.00146484375],[18.944433593750006,-8.00146484375],[18.56269531250001,-7.9359375],[18.0087890625,-8.107617187500011],[17.643359375000017,-8.090722656250009],[17.57958984375,-8.099023437500009],[16.984765625000023,-7.257421875],[16.91943359375,-6.933984375],[16.813085937500006,-6.772558593750006],[16.742968750000017,-6.618457031250003],[16.697265625,-6.164257812500011],[16.537109375,-5.9658203125],[16.431445312500017,-5.900195312500003],[16.315234375000017,-5.865625],[13.978515625,-5.857226562500003],[13.346484375000017,-5.863378906250006],[13.184375,-5.85625],[12.452929687500017,-6.00048828125],[12.213671875000017,-5.758691406250009],[12.484570312500011,-5.71875],[12.451464843750017,-5.071484375000011],[12.502734375000017,-5.036914062500003],[12.573535156250017,-4.99658203125],[12.59619140625,-4.978417968750009],[12.8296875,-4.736621093750003],[12.947460937500011,-4.6953125],[13.057324218750011,-4.651074218750011],[13.07275390625,-4.634765625],[13.08740234375,-4.601953125],[13.136621093750023,-4.604296875],[13.414941406250023,-4.83740234375],[13.659570312500023,-4.721484375],[13.717089843750017,-4.454492187500009],[13.94091796875,-4.484667968750003],[14.358300781250023,-4.299414062500006],[14.449804687500006,-4.449511718750003],[14.365429687500011,-4.585546875],[14.410742187500006,-4.83125],[14.707910156250023,-4.881738281250009],[15.990039062500017,-3.766210937500006],[16.217382812500006,-3.0302734375],[16.21533203125,-2.177832031250006],[16.54072265625001,-1.840136718750003],[16.8798828125,-1.225878906250003],[17.752832031250023,-0.549023437500011],[18.072167968750023,2.01328125],[18.49091796875001,2.924414062499991],[18.6103515625,3.478417968749994],[18.594140625000023,4.346240234374989],[19.06855468750001,4.891406249999989],[19.5009765625,5.127490234374989],[19.806542968750023,5.089306640624997],[20.226367187500017,4.829638671874989],[20.55810546875,4.462695312499989],[22.422167968750017,4.134960937499997],[22.864550781250017,4.723876953125],[23.41718750000001,4.663134765624989],[24.31982421875,4.994140625],[25.065234375000017,4.967431640624994],[25.52509765625001,5.31210937499999],[26.822070312500017,5.062402343749994],[27.071875,5.199755859374989],[27.4033203125,5.109179687499989]]]},"properties":{"name":"Dem. Rep. Congo","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[18.6103515625,3.478417968749994],[18.49091796875001,2.924414062499991],[18.072167968750023,2.01328125],[17.752832031250023,-0.549023437500011],[16.8798828125,-1.225878906250003],[16.54072265625001,-1.840136718750003],[16.21533203125,-2.177832031250006],[16.217382812500006,-3.0302734375],[15.990039062500017,-3.766210937500006],[14.707910156250023,-4.881738281250009],[14.410742187500006,-4.83125],[14.365429687500011,-4.585546875],[14.449804687500006,-4.449511718750003],[14.358300781250023,-4.299414062500006],[13.94091796875,-4.484667968750003],[13.717089843750017,-4.454492187500009],[13.659570312500023,-4.721484375],[13.414941406250023,-4.83740234375],[13.136621093750023,-4.604296875],[13.08740234375,-4.601953125],[13.07275390625,-4.634765625],[13.048046875000011,-4.619238281250006],[12.971386718750011,-4.5517578125],[12.881054687500011,-4.445117187500003],[12.84814453125,-4.428906250000011],[12.50146484375,-4.5875],[12.018359375000017,-5.004296875],[11.777539062500011,-4.565820312500009],[11.130175781250017,-3.916308593750003],[11.234472656250006,-3.690820312500009],[11.504296875000023,-3.5203125],[11.685742187500011,-3.68203125],[11.8798828125,-3.665917968750009],[11.934179687500006,-3.318554687500011],[11.715429687500006,-3.176953125000011],[11.760156250000023,-2.983105468750011],[11.537792968750011,-2.83671875],[11.60546875,-2.342578125],[12.064453125,-2.41259765625],[12.446386718750006,-2.329980468750009],[12.43212890625,-1.928906250000011],[12.590429687500006,-1.826855468750011],[12.793554687500006,-1.931835937500011],[12.991992187500017,-2.313378906250009],[13.464941406250006,-2.395410156250009],[13.733789062500023,-2.138476562500003],[13.886914062500011,-2.465429687500006],[13.993847656250011,-2.490625],[14.199804687500006,-2.354199218750011],[14.162890625000017,-2.217578125],[14.383984375000011,-1.890039062500009],[14.47412109375,-0.573437500000011],[13.860058593750011,-0.203320312500011],[13.949609375000023,0.353808593749989],[14.32421875,0.62421875],[14.429882812500011,0.901464843749991],[14.180859375000011,1.370214843749991],[13.851367187500017,1.41875],[13.21630859375,1.2484375],[13.172167968750017,1.78857421875],[13.293554687500006,2.161572265624997],[14.578906250000017,2.199121093749994],[14.902441406250006,2.012304687499991],[15.741601562500023,1.914990234374997],[16.059375,1.676220703124997],[16.183398437500017,2.270068359374989],[16.468554687500017,2.831738281249997],[16.610742187500023,3.50537109375],[17.491601562500023,3.687304687499989],[18.160937500000017,3.499804687499989],[18.474414062500017,3.622998046874997],[18.6103515625,3.478417968749994]]]},"properties":{"name":"Congo","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-71.31972656249997,11.861914062500048],[-71.95810546875,11.66640625],[-72.24848632812501,11.196435546875009],[-72.690087890625,10.835839843749994],[-72.86933593750001,10.49125976562496],[-73.00654296874998,9.789160156250006],[-73.36621093749997,9.194140625000017],[-73.05839843749999,9.259570312500031],[-72.79638671874997,9.10898437499999],[-72.66542968749994,8.62758789062498],[-72.39033203124995,8.287060546874969],[-72.47197265624996,7.524267578124991],[-72.20771484374995,7.37026367187498],[-72.00664062499993,7.032617187500023],[-71.12861328124993,6.98671875],[-70.73715820312503,7.090039062499997],[-70.12919921874999,6.95361328125],[-69.42714843749997,6.123974609374997],[-68.47177734375,6.156542968749974],[-67.85917968749999,6.289892578124963],[-67.48198242187499,6.18027343750002],[-67.47387695312503,5.929980468750003],[-67.82490234374995,5.270458984375026],[-67.85527343750002,4.506884765624989],[-67.66162109375,3.864257812499986],[-67.3111328125,3.41586914062502],[-67.85908203124998,2.793603515624994],[-67.61870117187496,2.793603515624994],[-67.21083984375,2.390136718750043],[-66.87602539062499,1.223046875000037],[-67.082275390625,1.185400390625006],[-67.11923828124998,1.703613281249986],[-67.40043945312499,2.116699218750028],[-67.93623046874998,1.748486328124969],[-68.19379882812495,1.987011718749983],[-68.25595703125,1.845507812500017],[-68.17656249999999,1.719824218749991],[-69.84858398437493,1.708740234375043],[-69.85214843750003,1.05952148437504],[-69.31181640624999,1.050488281249969],[-69.15332031249994,0.65878906250002],[-69.47211914062498,0.72993164062504],[-70.05390624999993,0.578613281250028],[-70.07050781249993,-0.13886718750004],[-69.63398437500001,-0.50927734375],[-69.40024414062498,-1.194921874999977],[-69.66904296875003,-2.667675781249997],[-69.94819335937498,-4.200585937500009],[-69.96591796875003,-4.2359375],[-70.16752929687499,-4.050195312500009],[-70.24028320312496,-3.882714843749994],[-70.2984375,-3.844238281249972],[-70.33950195312502,-3.814355468750009],[-70.73510742187497,-3.781542968749989],[-70.09584960937494,-2.658203125000014],[-70.16474609374995,-2.639843750000011],[-70.24443359375002,-2.606542968749977],[-70.29462890624995,-2.552539062499989],[-70.57587890624995,-2.418261718749989],[-70.64799804687499,-2.405761718750014],[-70.70537109374996,-2.341992187499983],[-70.91455078125003,-2.218554687499974],[-70.96855468750002,-2.206835937499989],[-71.02729492187498,-2.225781250000026],[-71.11337890625003,-2.245410156250031],[-71.19638671874998,-2.313085937499963],[-71.39697265625,-2.334082031249977],[-71.55947265624997,-2.224218749999977],[-71.75253906249995,-2.15273437499998],[-71.80273437499997,-2.166308593749989],[-71.86728515624998,-2.227734374999983],[-71.932470703125,-2.288671874999963],[-71.98427734375,-2.326562499999952],[-72.21845703125001,-2.400488281250006],[-72.94111328124998,-2.394042968750028],[-72.9896484375,-2.33974609374998],[-73.15449218749993,-2.278222656249966],[-73.19697265624995,-1.830273437500011],[-73.49628906249993,-1.69306640625004],[-73.66430664062497,-1.248828124999946],[-73.86318359374997,-1.19667968749998],[-73.92695312500001,-1.125195312499983],[-73.98681640625003,-1.098144531249986],[-74.05439453124995,-1.028613281250031],[-74.18076171875,-0.997753906249955],[-74.24638671874999,-0.970605468750023],[-74.28388671874998,-0.927832031250006],[-74.33442382812498,-0.85087890624996],[-74.41787109375,-0.580664062499977],[-74.46518554687498,-0.517675781250034],[-74.51386718749993,-0.470117187500023],[-74.555078125,-0.429882812499997],[-74.61635742187494,-0.370019531249966],[-74.691650390625,-0.335253906249989],[-74.75537109375003,-0.298632812499989],[-74.78046874999998,-0.24453125],[-74.80175781249997,-0.200097656249994],[-75.13837890624998,-0.050488281249969],[-75.28447265624999,-0.10654296875002],[-75.77666015624999,0.08925781249998],[-76.27060546874998,0.439404296874997],[-76.49462890624997,0.23544921875002],[-77.396337890625,0.393896484374963],[-77.46767578124997,0.636523437500017],[-77.702880859375,0.837841796874997],[-78.1806640625,0.968554687499974],[-78.85966796874996,1.455371093750031],[-79.02543945312499,1.623681640625037],[-78.79296874999994,1.848730468749963],[-78.576904296875,1.773779296874977],[-78.59169921875,2.356640624999969],[-78.41689453125,2.483496093749963],[-78.06665039062494,2.509130859375034],[-77.81357421875,2.716357421874974],[-77.076806640625,3.913281250000026],[-77.26352539062503,3.893212890625023],[-77.27802734374995,4.058496093750023],[-77.35820312499996,3.944726562500037],[-77.40874023437496,4.24775390625004],[-77.52070312499993,4.212792968750023],[-77.35351562499997,4.398291015624977],[-77.28632812499995,4.72172851562496],[-77.373291015625,5.323974609375],[-77.53442382812497,5.537109374999986],[-77.24926757812497,5.780175781250037],[-77.46943359374995,6.176757812500014],[-77.368798828125,6.575585937499994],[-77.90117187499999,7.229345703125048],[-77.76191406249995,7.698828125000034],[-77.53828124999995,7.56625976562502],[-77.19599609374995,7.972460937500003],[-77.47851562499994,8.498437500000037],[-77.37421874999993,8.65830078125002],[-76.85185546875002,8.09047851562498],[-76.924658203125,7.973193359374974],[-76.78657226562493,7.931591796875026],[-76.7720703125,8.310546875000043],[-76.92045898437496,8.573730468750014],[-76.27685546875,8.989111328124991],[-76.02724609374997,9.365771484374989],[-75.63935546874998,9.450439453125014],[-75.680029296875,9.729785156249989],[-75.53857421874997,10.205175781250034],[-75.708349609375,10.143408203124963],[-75.44599609374995,10.610888671874989],[-74.84458007812498,11.109716796875006],[-74.330224609375,10.996679687499991],[-74.51625976562497,10.8625],[-74.40087890625,10.76523437499999],[-74.14291992187503,11.320849609375031],[-73.31337890624997,11.295751953124991],[-72.275,11.88925781250002],[-72.13574218749994,12.188574218749977],[-71.71455078124993,12.41997070312496],[-71.26210937499997,12.335302734375034],[-71.13730468750003,12.04633789062504],[-71.31972656249997,11.861914062500048]]]},"properties":{"name":"Colombia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[43.788671875,-12.307031250000023],[43.85898437500006,-12.368261718749977],[43.66367187500006,-12.342871093749949],[43.63134765624997,-12.247070312499972],[43.788671875,-12.307031250000023]]],[[[44.476367187500074,-12.08154296875],[44.504980468750006,-12.356542968749991],[44.220117187499994,-12.171386718750014],[44.476367187500074,-12.08154296875]]],[[[43.46582031249997,-11.901269531249966],[43.226660156250006,-11.75185546874998],[43.2990234375001,-11.374511718750028],[43.39296875000005,-11.408593749999952],[43.46582031249997,-11.901269531249966]]]]},"properties":{"name":"Comoros","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-24.308251953124966,14.856298828124991],[-24.44052734374992,14.834814453124963],[-24.496875,14.980273437500017],[-24.329492187499937,15.019482421875011],[-24.308251953124966,14.856298828124991]]],[[[-23.18212890624997,15.136767578125017],[-23.210253906250017,15.32353515625006],[-23.119335937499955,15.26840820312502],[-23.18212890624997,15.136767578125017]]],[[[-23.444238281249994,15.00795898437498],[-23.5046875,14.916113281250006],[-23.70537109374999,14.96132812499998],[-23.74809570312499,15.328515625],[-23.444238281249994,15.00795898437498]]],[[[-22.917724609375,16.237255859374955],[-22.69262695312497,16.169042968750006],[-22.710107421874994,16.043359374999966],[-22.95927734374996,16.045117187499983],[-22.917724609375,16.237255859374955]]],[[[-24.08769531249999,16.62250976562501],[-24.03271484374997,16.57202148437503],[-24.243066406250023,16.599414062500017],[-24.32236328124992,16.49311523437504],[-24.398095703124966,16.61840820312497],[-24.08769531249999,16.62250976562501]]],[[[-22.888330078124966,16.659082031249994],[-22.980615234374937,16.700878906249983],[-22.93291015624999,16.84101562500004],[-22.888330078124966,16.659082031249994]]],[[[-24.88706054687495,16.81811523437497],[-25.09306640624999,16.83251953125],[-24.936474609374983,16.92211914062503],[-24.88706054687495,16.81811523437497]]],[[[-25.169824218749994,16.94648437500001],[-25.308300781249955,16.93583984374999],[-25.337109374999955,17.091015624999983],[-25.03466796875,17.176464843749983],[-24.979687499999983,17.09472656250003],[-25.169824218749994,16.94648437500001]]]]},"properties":{"name":"Cape Verde","childNum":8}},{"geometry":{"type":"Polygon","coordinates":[[[-83.6419921875,10.917236328125],[-83.346826171875,10.315380859374997],[-82.77841796874999,9.66953125],[-82.56357421874999,9.57666015625],[-82.56923828125,9.55820312499999],[-82.58652343749999,9.538818359375],[-82.64409179687499,9.505859375],[-82.801025390625,9.591796875],[-82.843994140625,9.57080078125],[-82.86015624999999,9.511474609375],[-82.88896484374999,9.481005859374989],[-82.925048828125,9.469042968749989],[-82.93984375,9.449169921874997],[-82.94033203125,9.060107421874989],[-82.88134765625,9.055859375],[-82.78305664062499,8.990283203124989],[-82.741162109375,8.951708984374989],[-82.72783203124999,8.916064453124989],[-82.91704101562499,8.740332031249991],[-82.855712890625,8.635302734374989],[-82.84477539062499,8.489355468749991],[-82.86162109374999,8.45351562499999],[-83.02734375,8.337744140624991],[-82.879345703125,8.070654296874991],[-83.12333984374999,8.353076171874989],[-83.16240234374999,8.588183593749989],[-83.4697265625,8.706835937499989],[-83.29150390625,8.406005859375],[-83.54375,8.445849609374989],[-83.73408203125,8.614453125],[-83.613720703125,8.804052734374991],[-83.73691406249999,9.150292968749994],[-84.58159179687499,9.568359375],[-84.71494140624999,9.8994140625],[-85.23564453124999,10.242089843749994],[-85.2365234375,10.107373046874997],[-84.88642578125,9.820947265624994],[-85.07705078125,9.60195312499999],[-85.31455078124999,9.8109375],[-85.62485351562499,9.902441406249991],[-85.84965820312499,10.292041015624989],[-85.667236328125,10.745019531249994],[-85.90800781249999,10.897558593749991],[-85.7443359375,11.06210937499999],[-85.5841796875,11.189453125],[-84.9091796875,10.9453125],[-84.6341796875,11.045605468749997],[-83.91928710937499,10.7353515625],[-83.71293945312499,10.785888671875],[-83.6419921875,10.917236328125]]]},"properties":{"name":"Costa Rica","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-82.56176757812503,21.571679687500023],[-82.959619140625,21.441308593750023],[-83.18378906250001,21.59345703125004],[-82.97358398437498,21.592285156250057],[-83.08251953124997,21.791406250000023],[-82.99121093750003,21.942724609375034],[-82.71455078124998,21.890283203125023],[-82.56176757812503,21.571679687500023]]],[[[-77.66899414062493,21.951953125000045],[-77.91855468749998,22.088085937499983],[-77.63369140624994,22.054003906250074],[-77.66899414062493,21.951953125000045]]],[[[-77.87939453125,22.127539062500034],[-78.04165039062502,22.201269531250034],[-77.99921874999998,22.298730468749994],[-77.87939453125,22.127539062500034]]],[[[-81.83745117187499,23.163037109374955],[-81.26235351562497,23.156835937500034],[-81.14462890624998,23.054931640625057],[-80.65014648437494,23.10307617187499],[-80.36489257812502,22.943408203125074],[-79.82026367187498,22.887011718750045],[-79.27568359374999,22.407617187499994],[-78.68647460937493,22.366845703125023],[-77.63681640624995,21.79736328125],[-77.49711914062502,21.78833007812503],[-77.58315429687497,21.889257812499977],[-77.49726562499995,21.871630859375045],[-77.14414062499995,21.643603515625017],[-77.36616210937498,21.612646484375034],[-77.25288085937498,21.483496093750006],[-77.0986328125,21.589013671875023],[-76.86743164062497,21.330419921875006],[-75.72294921874996,21.111035156249983],[-75.59580078125,20.99467773437499],[-75.72456054687493,20.71455078125004],[-74.882568359375,20.65063476562497],[-74.51313476562495,20.384570312500045],[-74.16748046874997,20.292187499999955],[-74.15371093750002,20.168554687500006],[-75.11640624999995,19.901416015625017],[-75.151611328125,20.008349609375045],[-75.29047851562495,19.893115234375017],[-76.15844726562497,19.98974609374997],[-77.715087890625,19.85546874999997],[-77.10380859374999,20.407519531250017],[-77.22958984374995,20.64375],[-78.11635742187497,20.761865234374994],[-78.49077148437493,21.05371093750003],[-78.72768554687497,21.592724609374955],[-79.35742187500003,21.58515625000001],[-80.23134765625,21.872167968750063],[-80.48544921874998,22.1234375],[-81.03564453124997,22.073583984375063],[-81.18549804687495,22.26796875000005],[-81.284375,22.109423828125074],[-81.84941406249993,22.21367187499999],[-82.077734375,22.3876953125],[-81.71035156250002,22.496679687500006],[-81.83881835937498,22.672460937500034],[-82.73803710937497,22.689257812500074],[-83.37963867187503,22.222998046875034],[-83.90073242187495,22.17011718750001],[-84.03095703124993,21.94311523437503],[-84.502587890625,21.776171875000045],[-84.50136718750002,21.930273437499977],[-84.88720703125003,21.856982421875074],[-84.32636718749998,22.074316406250034],[-84.36127929687498,22.37890625],[-84.04492187500003,22.666015625000057],[-83.25781249999997,22.967578125000017],[-81.83745117187499,23.163037109374955]]]]},"properties":{"name":"Cuba","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[-68.75107421874999,12.059765625],[-68.9951171875,12.141845703125],[-69.15888671875,12.380273437499994],[-68.75107421874999,12.059765625]]]},"properties":{"name":"Curaçao","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-81.36953124999997,19.34887695312497],[-81.10712890624995,19.305175781250057],[-81.40478515624994,19.278417968750006],[-81.36953124999997,19.34887695312497]]],[[[-79.823388671875,19.711914062500057],[-79.90620117187501,19.702539062499994],[-79.74228515625,19.757128906250017],[-79.823388671875,19.711914062500057]]]]},"properties":{"name":"Cayman Is.","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[34.004492187500006,35.065234375],[33.47578125000001,35.000341796875],[33.3837890625,35.1626953125],[32.91953125,35.087841796875],[32.71269531250002,35.171044921874994],[32.8798828125,35.180566406249994],[32.94160156250001,35.390429687499996],[33.60761718750001,35.354150390624994],[34.55605468750002,35.662060546875],[33.941992187500006,35.292041015624996],[34.004492187500006,35.065234375]]]},"properties":{"name":"N. Cyprus","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[32.71269531250002,35.171044921874994],[32.91953125,35.087841796875],[33.3837890625,35.1626953125],[33.47578125000001,35.000341796875],[34.004492187500006,35.065234375],[34.05019531250002,34.98837890625],[33.69941406250001,34.969873046874994],[33.007910156250006,34.569580078125],[32.44902343750002,34.729443359375],[32.31718750000002,34.9533203125],[32.30097656250001,35.082958984375],[32.71269531250002,35.171044921874994]]]},"properties":{"name":"Cyprus","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[14.809375,50.858984375],[14.895800781250017,50.861376953124996],[14.98291015625,50.886572265625],[14.99375,51.01435546875],[16.007226562500023,50.611621093749996],[16.2822265625,50.655615234375],[16.419726562500017,50.573632812499994],[16.210351562500023,50.423730468749994],[16.63916015625,50.1021484375],[16.989648437500023,50.2369140625],[16.88007812500001,50.427050781249996],[17.41523437500001,50.254785156249994],[17.702246093750006,50.307177734374996],[17.627050781250006,50.11640625],[17.874804687500017,49.972265625],[18.0283203125,50.03525390625],[18.562402343750023,49.879345703125],[18.83222656250001,49.510791015624996],[18.160937500000017,49.257373046874996],[18.0859375,49.06513671875],[17.75849609375001,48.888134765625],[17.135644531250023,48.841064453125],[16.953125,48.598828125],[16.543554687500006,48.796240234375],[16.057226562500006,48.754785156249994],[15.066796875000023,48.997851562499996],[14.691308593750023,48.59921875],[14.049121093750017,48.602490234375],[13.814746093750017,48.766943359375],[13.769921875000023,48.815966796874996],[13.684960937500023,48.876708984375],[13.547656250000017,48.95966796875],[13.440722656250017,48.95556640625],[13.401171875000017,48.977587890624996],[12.916699218750011,49.33046875],[12.68115234375,49.414501953125],[12.390527343750023,49.739648437499994],[12.5125,49.87744140625],[12.09921875,50.310986328125],[12.134863281250006,50.3109375],[12.1748046875,50.288378906249996],[12.231152343750011,50.244873046875],[12.27734375,50.181445312499996],[12.3056640625,50.205712890624994],[12.549023437500011,50.393408203125],[13.016406250000017,50.490380859374994],[13.18115234375,50.510498046875],[14.369042968750023,50.898730468749996],[14.319726562500023,51.03779296875],[14.545703125000017,50.993945312499996],[14.559667968750006,50.954931640625],[14.59521484375,50.918603515624994],[14.623828125000017,50.91474609375],[14.613574218750017,50.85556640625],[14.658203125,50.8326171875],[14.723339843750011,50.814697265625],[14.766503906250023,50.818310546875],[14.797460937500006,50.842333984374996],[14.809375,50.858984375]]]},"properties":{"name":"Czech Rep.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[14.1982421875,53.919042968750034],[13.92578125,53.879052734374966],[13.827734375,54.12724609374999],[14.1982421875,53.919042968750034]]],[[[13.709179687500011,54.382714843749994],[13.707324218750074,54.281152343749994],[13.190039062500034,54.32563476562501],[13.336816406249994,54.697119140625006],[13.65761718750008,54.55957031249997],[13.709179687500011,54.382714843749994]]],[[[9.739746093750028,54.82553710937498],[10.022167968750011,54.673925781250006],[9.86865234375,54.47246093749999],[10.731542968750006,54.31625976562506],[11.013378906250068,54.37915039062497],[11.008593750000074,54.18115234374997],[10.810742187500068,54.075146484374955],[10.917773437500045,53.99531250000004],[11.39960937500004,53.94462890625002],[12.111328125,54.168310546875006],[12.57539062500004,54.467382812500006],[13.028613281250017,54.411035156249994],[13.448046875000017,54.14086914062503],[13.724218750000063,54.153222656249966],[13.865527343750074,53.85336914062498],[14.258886718750006,53.729638671874994],[14.298730468750051,53.55644531249999],[14.41455078125,53.28349609374996],[14.412304687500011,53.216748046874955],[14.410937500000074,53.19902343749999],[14.368554687500051,53.105566406250034],[14.293164062500068,53.026757812499966],[14.138867187500068,52.93286132812503],[14.128613281250011,52.87822265625002],[14.253710937500017,52.78251953124996],[14.514062500000023,52.645605468750034],[14.619433593750017,52.52851562499998],[14.569726562499994,52.431103515624955],[14.554589843750023,52.35966796874996],[14.573925781250068,52.31416015625001],[14.615625,52.277636718750045],[14.679882812500068,52.25],[14.752539062500034,52.08183593750002],[14.601660156250034,51.832373046875006],[14.738671875000051,51.62714843750004],[14.7109375,51.54492187499997],[14.724707031250063,51.523876953124955],[14.90595703125004,51.463330078124955],[14.935546875000028,51.435351562500045],[14.9638671875,51.095117187499994],[14.917480468750057,51.00874023437498],[14.814257812499989,50.871630859375045],[14.809375,50.858984375000034],[14.797460937500034,50.84233398437502],[14.766503906250051,50.81831054687501],[14.72333984375004,50.81469726562497],[14.658203125,50.832617187500006],[14.613574218750045,50.85556640625006],[14.623828125000017,50.91474609375004],[14.595214843750057,50.91860351562502],[14.559667968750006,50.954931640625034],[14.545703124999989,50.99394531249999],[14.319726562500051,51.037792968749955],[14.36904296875008,50.89873046874996],[13.18115234375,50.510498046875],[13.016406250000017,50.490380859374994],[12.549023437500011,50.393408203125034],[12.3056640625,50.205712890624994],[12.27734375,50.18144531250002],[12.231152343749983,50.24487304687497],[12.174804687500057,50.28837890624996],[12.134863281250006,50.31093750000002],[12.099218750000034,50.31098632812504],[12.089843749999972,50.30175781250003],[12.089746093750051,50.2685546875],[12.294598214285761,50.13608119419641],[12.5125,49.87744140625],[12.390527343750051,49.739648437499994],[12.68115234375,49.41450195312501],[12.91669921875004,49.33046875000002],[13.401171875000074,48.97758789062499],[13.440722656250045,48.95556640625003],[13.547656250000074,48.95966796874998],[13.684960937500051,48.87670898437506],[13.769921875000051,48.81596679687502],[13.814746093750017,48.76694335937498],[13.802929687500011,48.74750976562501],[13.798828124999972,48.62167968750006],[13.785351562499983,48.58745117187502],[13.486621093750074,48.58183593750002],[13.471679687500028,48.57182617187502],[13.459863281250023,48.564550781250034],[13.409375,48.39414062500006],[13.322851562500006,48.33125],[13.215234375000023,48.301904296874994],[12.760351562500063,48.10698242187499],[12.95351562500008,47.890625],[12.897656250000068,47.721875],[13.054101562500051,47.655126953125034],[13.047949218750034,47.57915039062502],[13.031542968750074,47.50800781250001],[13.01435546875004,47.478076171875045],[12.968066406250017,47.475683593750006],[12.878906250000057,47.506445312500034],[12.809375,47.542187499999955],[12.782812500000034,47.56416015624998],[12.781152343750051,47.590429687500006],[12.796191406249989,47.60703125],[12.771386718750023,47.63940429687503],[12.685839843750074,47.66933593750002],[12.209277343750074,47.71826171875003],[12.196875,47.709082031250034],[12.203808593750011,47.64672851562503],[12.185644531250063,47.61953125],[11.041992187500028,47.39311523437496],[10.98085937499999,47.39814453125001],[10.893945312500051,47.470458984375],[10.870605468750028,47.500781250000045],[10.873046874999972,47.52021484375001],[10.741601562500023,47.52412109375001],[10.65869140625,47.547216796875006],[10.482812500000051,47.54179687499996],[10.439453125000028,47.55156249999999],[10.403906250000063,47.41699218750003],[10.369140625,47.366064453125034],[10.18300781250008,47.27880859375003],[10.200292968750063,47.36342773437505],[10.066308593750023,47.39335937500002],[10.064575892857171,47.42369419642856],[10.059863281250045,47.44907226562498],[10.034082031250023,47.47358398437501],[9.971582031249994,47.50532226562498],[9.839160156250017,47.55229492187496],[9.748925781250023,47.575537109375006],[9.524023437500034,47.52421875000002],[8.572656250000023,47.775634765625],[8.435742187500011,47.73134765625002],[8.403417968750006,47.687792968750045],[8.413281250000068,47.66269531249998],[8.451757812500006,47.65180664062498],[8.552343750000063,47.65913085937498],[8.56708984375004,47.65190429687502],[8.57050781250004,47.63779296874998],[8.55947265625008,47.62402343750003],[8.477636718750034,47.61269531250002],[8.454003906249994,47.59619140625003],[7.615625,47.59272460937504],[7.616601562500023,48.15678710937502],[8.134863281250006,48.97358398437498],[7.450585937500051,49.152197265625034],[6.735449218750006,49.16059570312498],[6.344335937500006,49.45273437499998],[6.4873046875,49.798486328124994],[6.204882812500017,49.915136718750034],[6.13818359375,49.97431640625001],[6.10976562500008,50.034375],[6.116503906250045,50.120996093749966],[6.340917968750006,50.451757812500034],[5.993945312500017,50.75043945312504],[6.048437500000034,50.90488281250006],[5.857519531250034,51.030126953125006],[6.129980468750034,51.14741210937501],[6.198828125000034,51.45],[5.948730468750057,51.80268554687501],[6.800390625,51.96738281249998],[6.724511718749994,52.080224609374966],[7.035156250000057,52.38022460937498],[6.748828125000074,52.464013671874994],[6.710742187500045,52.61787109374998],[7.033007812500045,52.65136718749997],[7.197265625000028,53.28227539062499],[7.074316406250034,53.477636718750006],[7.285253906250034,53.68134765625001],[8.00927734375,53.69072265624999],[8.108496093750063,53.46767578125002],[8.245214843750006,53.44531249999997],[8.333886718750051,53.606201171875],[8.495214843750063,53.39423828124998],[8.618945312500045,53.875],[9.20556640625,53.85595703124997],[9.783984375000074,53.554638671874955],[9.31201171875,53.859130859375],[8.92041015625,53.96533203125006],[8.906640625000023,54.26079101562502],[8.625781250000017,54.35395507812501],[8.951855468750011,54.46757812499996],[8.670312500000023,54.903417968750034],[9.739746093750028,54.82553710937498]]],[[[8.307714843750034,54.786962890625034],[8.451464843750017,55.05537109374998],[8.3798828125,54.89985351562501],[8.629589843750068,54.891748046874966],[8.307714843750034,54.786962890625034]]]]},"properties":{"name":"Germany","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[43.24599609375002,11.499804687499989],[42.92275390625002,10.999316406249989],[42.557714843750006,11.080761718749997],[41.79824218750002,10.98046875],[41.79267578125001,11.68603515625],[42.378515625,12.46640625],[42.40859375000002,12.494384765625],[42.45,12.521337890624991],[42.47939453125002,12.513623046874997],[42.703710937500006,12.380322265624997],[42.76748046875002,12.4228515625],[42.825292968750006,12.5693359375],[42.86591796875001,12.622802734375],[42.88330078125,12.621289062499997],[43.00566406250002,12.662304687499997],[43.11669921875,12.70859375],[43.353515625,12.367041015624991],[43.38027343750002,12.091259765624997],[42.64003906250002,11.560107421874989],[42.52177734375002,11.572167968749994],[42.58378906250002,11.496777343749997],[43.04277343750002,11.588476562499991],[43.24599609375002,11.499804687499989]]]},"properties":{"name":"Djibouti","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-61.281689453125,15.2490234375],[-61.37539062499999,15.227294921875],[-61.45810546874999,15.633105468750003],[-61.277246093749994,15.526708984374991],[-61.281689453125,15.2490234375]]]},"properties":{"name":"Dominica","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[11.361425781250006,54.891650390625045],[11.739550781250017,54.80742187500002],[11.765917968750074,54.67944335937506],[11.457421875000023,54.628857421874955],[11.035546875000051,54.77309570312505],[11.058593750000028,54.940576171874966],[11.361425781250006,54.891650390625045]]],[[[12.549218750000051,54.96577148437504],[12.11884765625004,54.91440429687506],[12.274023437500034,55.064111328124994],[12.549218750000051,54.96577148437504]]],[[[10.061230468750068,54.88637695312502],[9.80625,54.90600585937503],[9.78125,55.06904296875001],[10.061230468750068,54.88637695312502]]],[[[10.734082031250011,54.750732421875],[10.621679687500006,54.851416015625006],[10.95107421875008,55.15620117187501],[10.734082031250011,54.750732421875]]],[[[15.087695312500017,55.021875],[14.684179687500063,55.10224609375004],[14.765332031250068,55.296728515625034],[15.132617187500017,55.14453125000003],[15.087695312500017,55.021875]]],[[[10.645117187500006,55.60981445312498],[10.785253906250034,55.13339843749998],[10.44277343750008,55.04877929687498],[9.988769531250028,55.163183593750006],[9.860644531250045,55.515478515625034],[10.645117187500006,55.60981445312498]]],[[[12.665722656250068,55.596533203125006],[12.550878906250034,55.55625],[12.59921875,55.68022460937502],[12.665722656250068,55.596533203125006]]],[[[12.56875,55.785058593749966],[12.215039062500011,55.46650390624998],[12.413085937500028,55.28618164062502],[12.089941406250006,55.18813476562505],[12.050390625000034,54.81533203125002],[11.8623046875,54.77260742187502],[11.653808593750057,55.186914062499966],[11.286328125000068,55.20444335937498],[10.978906250000051,55.721533203125006],[11.322265625000028,55.752539062500006],[11.627734375000074,55.95688476562498],[11.819726562500023,55.69765625000002],[11.86640625000004,55.968164062499966],[12.218945312499983,56.11865234374997],[12.578710937500006,56.06406250000006],[12.56875,55.785058593749966]]],[[[11.052148437500051,57.25253906250006],[10.873828125000045,57.26225585937499],[11.174511718750011,57.322900390624994],[11.052148437500051,57.25253906250006]]],[[[9.739746093750028,54.82553710937498],[8.670312500000023,54.903417968750034],[8.61591796875004,55.41821289062503],[8.132128906250074,55.59980468749998],[8.16396484375008,56.60688476562498],[8.671679687500045,56.49565429687496],[8.88808593750008,56.73505859374998],[9.06708984375004,56.79384765625005],[9.196386718750006,56.70166015625],[9.2548828125,57.01171875000003],[8.992773437499977,57.01611328125003],[8.771972656250028,56.72529296875004],[8.468359375,56.66455078125],[8.284082031250023,56.85234374999999],[8.618554687500051,57.11127929687498],[9.43359375,57.17431640625003],[9.96230468750008,57.580957031249994],[10.609960937500034,57.73691406249998],[10.282714843750057,56.620507812499994],[10.926171875000051,56.44326171875002],[10.753417968750028,56.24199218749999],[10.31875,56.212890625],[10.18300781250008,55.86518554687504],[9.903710937500023,55.84282226562502],[10.02363281250004,55.76142578125004],[9.591113281250017,55.49321289062502],[9.670996093750063,55.26640624999999],[9.453710937500006,55.03955078125006],[9.732324218750023,54.96801757812506],[9.739746093750028,54.82553710937498]]]]},"properties":{"name":"Denmark","childNum":10,"cp":[10.2768332,56.1773879]}},{"geometry":{"type":"Polygon","coordinates":[[[-71.647216796875,19.195947265624994],[-71.746484375,19.285839843749997],[-71.71147460937499,19.486572265625],[-71.75742187499999,19.688183593749997],[-71.779248046875,19.718164062499994],[-71.6673828125,19.8486328125],[-70.95415039062499,19.913964843749994],[-70.19384765625,19.63803710937499],[-69.95683593749999,19.671875],[-69.739404296875,19.29921875],[-69.23247070312499,19.27182617187499],[-69.60595703125,19.206494140624997],[-69.62363281249999,19.117822265624994],[-68.684765625,18.90478515625],[-68.33916015624999,18.611523437499997],[-68.68740234375,18.21494140624999],[-68.9349609375,18.408007812500003],[-69.27451171874999,18.43984375],[-69.770654296875,18.443554687499997],[-70.479931640625,18.21728515625],[-70.644677734375,18.336230468750003],[-71.02783203125,18.273193359375],[-71.43896484375,17.63559570312499],[-71.63173828125,17.773632812499997],[-71.768310546875,18.03916015624999],[-71.76376953124999,18.20395507812499],[-71.737255859375,18.270800781250003],[-71.7619140625,18.34130859375],[-71.87255859375,18.416210937499997],[-71.940380859375,18.512597656249994],[-72.000390625,18.597900390625],[-71.98686523437499,18.6103515625],[-71.86650390624999,18.614160156249994],[-71.74321289062499,18.73291015625],[-71.72705078125,18.80322265625],[-71.733642578125,18.856396484374997],[-71.80712890625,18.987011718749997],[-71.647216796875,19.195947265624994]]]},"properties":{"name":"Dominican Rep.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[8.207617187500006,36.518945312499994],[8.348730468750006,36.36796875],[8.318066406250011,35.654931640624994],[8.31640625,35.403125],[8.35986328125,35.299609375],[8.394238281250011,35.203857421875],[8.312109375,35.084619140624994],[8.27685546875,34.9794921875],[8.24560546875,34.73408203125],[7.513867187500011,34.080517578125],[7.534375,33.717919921874994],[7.877246093750017,33.172119140625],[8.1125,33.055322265624994],[8.333398437500023,32.543603515624994],[9.044042968750006,32.07236328125],[9.160253906250006,31.621337890625],[9.224023437500023,31.373681640624994],[9.51875,30.229394531249994],[9.310253906250011,30.115234375],[9.805273437500006,29.176953125],[9.916015625,27.785693359374996],[9.74755859375,27.330859375],[9.883203125000023,26.630810546874997],[9.491406250000011,26.333740234375],[9.4482421875,26.067138671875],[10.000683593750011,25.332080078125003],[10.255859375,24.591015625],[10.395898437500023,24.485595703125],[10.686132812500006,24.55136718749999],[11.507617187500017,24.314355468749994],[11.967871093750006,23.517871093750003],[7.481738281250017,20.873095703125003],[5.836621093750011,19.479150390624994],[4.227636718750006,19.142773437499997],[3.3564453125,18.986621093750003],[3.119726562500006,19.103173828124994],[3.255859375,19.4109375],[3.130273437500023,19.85019531249999],[1.685449218750023,20.378369140624997],[1.610644531250017,20.555566406249994],[1.165722656250011,20.817431640625003],[1.1455078125,21.102246093749997],[-1.947900390624994,23.124804687500003],[-4.822607421874977,24.99560546875],[-8.683349609375,27.2859375],[-8.683349609375,27.656445312499997],[-8.683349609375,27.900390625],[-8.659912109375,28.718603515625],[-7.485742187499994,29.392236328124994],[-7.427685546874983,29.425],[-7.142431640624977,29.619580078124997],[-6.855566406249977,29.601611328124996],[-6.755126953125,29.583837890625],[-6.635351562499977,29.568798828124997],[-6.597753906249977,29.578955078125],[-6.520556640624989,29.659863281249997],[-6.479736328125,29.820361328124996],[-6.00429687499999,29.83125],[-5.448779296874989,29.956933593749994],[-5.293652343749983,30.058642578124996],[-5.180126953124983,30.166162109374994],[-4.96826171875,30.465380859374996],[-4.778515624999983,30.552392578124994],[-4.529150390624977,30.625537109374996],[-4.322851562499977,30.698876953124994],[-4.148779296874977,30.8095703125],[-3.626904296874983,31.000927734374997],[-3.833398437499994,31.197802734374996],[-3.837109374999983,31.512353515624994],[-3.768164062499977,31.68955078125],[-3.700244140624989,31.700097656249994],[-3.604589843749977,31.686767578125],[-3.439794921874977,31.704541015624997],[-3.017382812499989,31.834277343749996],[-2.988232421874983,31.87421875],[-2.930859374999983,32.042529296874996],[-2.863427734374994,32.07470703125],[-1.275341796874983,32.089013671874994],[-1.16259765625,32.399169921875],[-1.111035156249983,32.552294921874996],[-1.188232421875,32.60849609375],[-1.29638671875,32.675683593749994],[-1.352148437499977,32.703369140625],[-1.45,32.784814453124994],[-1.510009765625,32.87763671875],[-1.550732421874983,33.073583984375],[-1.67919921875,33.318652343749996],[-1.795605468749983,34.751904296875],[-2.131787109374983,34.970849609374994],[-2.190771484374977,35.02978515625],[-2.219628906249994,35.10419921875],[-1.673632812499989,35.18310546875],[-0.426123046874977,35.8615234375],[-0.048242187499994,35.8328125],[0.312207031250011,36.162353515625],[0.9716796875,36.4439453125],[2.593359375,36.60068359375],[2.972851562500011,36.784472656249996],[3.779003906250011,36.89619140625],[4.758105468750017,36.896337890625],[5.29541015625,36.648242187499996],[6.486523437500011,37.085742187499996],[6.927539062500017,36.91943359375],[7.238476562500011,36.968505859375],[7.204296875000011,37.0923828125],[7.910449218750017,36.856347656249994],[8.576562500000023,36.93720703125],[8.601269531250011,36.833935546875],[8.207617187500006,36.518945312499994]]]},"properties":{"name":"Algeria","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-80.131591796875,-2.973144531249957],[-80.27294921875003,-2.995898437499974],[-80.22368164062502,-2.753125],[-80.08076171874995,-2.668847656249966],[-79.90903320312495,-2.725585937499972],[-80.131591796875,-2.973144531249957]]],[[[-90.42392578125,-1.339941406250034],[-90.51953124999994,-1.299121093749974],[-90.47719726562494,-1.22099609374996],[-90.42392578125,-1.339941406250034]]],[[[-89.41889648437498,-0.911035156249966],[-89.60859374999998,-0.888574218750009],[-89.28784179687503,-0.689843750000023],[-89.41889648437498,-0.911035156249966]]],[[[-90.33486328125,-0.771582031249977],[-90.54213867187502,-0.676464843749955],[-90.53168945312493,-0.581445312499966],[-90.26938476562498,-0.48466796874996],[-90.19272460937498,-0.658789062500006],[-90.33486328125,-0.771582031249977]]],[[[-91.42597656249995,-0.460839843749994],[-91.61074218749994,-0.44394531250002],[-91.64667968749998,-0.284472656249946],[-91.46015625000001,-0.255664062500031],[-91.42597656249995,-0.460839843749994]]],[[[-90.57392578124993,-0.333984375],[-90.8677734375,-0.271386718750037],[-90.78037109374998,-0.160449218749989],[-90.57392578124993,-0.333984375]]],[[[-91.27216796874998,0.025146484374986],[-90.799658203125,-0.752050781249991],[-90.90551757812497,-0.94052734375002],[-91.13105468750001,-1.019628906249977],[-91.41904296874998,-0.996679687500006],[-91.49541015624999,-0.860937499999977],[-91.120947265625,-0.559082031250028],[-91.36918945312493,-0.287207031249977],[-91.42885742187502,-0.023388671874955],[-91.59682617187497,0.002099609374994],[-91.36137695312496,0.125830078124977],[-91.27216796874998,0.025146484374986]]],[[[-78.90922851562502,1.252783203124977],[-78.99169921875003,1.293212890625043],[-78.89980468749997,1.359765625],[-78.90922851562502,1.252783203124977]]],[[[-75.28447265624999,-0.10654296875002],[-75.62626953124999,-0.122851562499974],[-75.63203125000001,-0.157617187500037],[-75.56059570312502,-0.200097656249994],[-75.49106445312498,-0.24833984374996],[-75.42470703124997,-0.408886718749983],[-75.259375,-0.59013671874996],[-75.24960937499998,-0.951855468750026],[-75.34819335937499,-0.966796874999957],[-75.38012695312503,-0.94023437499996],[-75.40805664062503,-0.92431640625],[-75.42041015624997,-0.962207031250003],[-75.570556640625,-1.53125],[-76.08979492187501,-2.133105468749974],[-76.6791015625,-2.562597656249991],[-77.860595703125,-2.981640625000011],[-78.240380859375,-3.472558593750009],[-78.345361328125,-3.397363281249966],[-78.64799804687499,-4.248144531250006],[-78.68603515625003,-4.562402343749994],[-78.86152343749998,-4.665039062499943],[-78.90761718749997,-4.714453124999977],[-78.92578125,-4.770703124999983],[-78.91420898437497,-4.818652343749974],[-78.919189453125,-4.858398437499986],[-78.97539062499999,-4.873242187499997],[-78.99526367187497,-4.908007812499974],[-79.03330078124998,-4.96914062499999],[-79.07626953125003,-4.990625],[-79.18666992187497,-4.958203124999983],[-79.26811523437493,-4.957617187499949],[-79.33095703124997,-4.92783203125002],[-79.39941406249997,-4.840039062499983],[-79.45576171874998,-4.766210937499949],[-79.50190429687495,-4.670605468750011],[-79.51616210937493,-4.539160156249963],[-79.57768554687496,-4.50058593750002],[-79.638525390625,-4.454882812500031],[-79.71098632812502,-4.467578124999946],[-79.79726562500002,-4.47636718749996],[-79.8451171875,-4.445898437499977],[-79.962890625,-4.390332031250026],[-80.06352539062499,-4.327539062500023],[-80.13955078125002,-4.296093750000011],[-80.19746093750001,-4.311035156249943],[-80.293359375,-4.416796875],[-80.38349609374998,-4.46367187499996],[-80.424169921875,-4.461425781250028],[-80.47856445312499,-4.430078125000037],[-80.48847656249995,-4.393652343749991],[-80.44384765625003,-4.335839843750023],[-80.35288085937495,-4.208496093750014],[-80.453759765625,-4.205175781249963],[-80.48847656249995,-4.165527343749972],[-80.49345703124999,-4.119140625000014],[-80.510009765625,-4.06953125000004],[-80.49013671874994,-4.010058593750003],[-80.43720703125001,-3.978613281249991],[-80.30327148437499,-4.005078124999969],[-80.26689453124993,-3.948828124999963],[-80.23051757812499,-3.924023437499969],[-80.19414062499996,-3.905859375],[-80.24375,-3.576757812500006],[-80.32465820312498,-3.387890625],[-79.96333007812501,-3.15771484375],[-79.72988281249997,-2.579101562499972],[-79.842138671875,-2.0673828125],[-79.92558593749996,-2.548535156249969],[-80.03017578124994,-2.556738281249949],[-80.00664062499993,-2.353808593750003],[-80.28471679687502,-2.706738281249955],[-80.93217773437493,-2.269140624999977],[-80.76059570312498,-1.934570312500028],[-80.90239257812499,-1.078906249999974],[-80.55390624999998,-0.847949218749989],[-80.45546875,-0.585449218749986],[-80.282373046875,-0.620507812500023],[-80.48227539062503,-0.368261718749963],[-80.046142578125,0.155371093750048],[-80.08828124999997,0.78476562500002],[-78.89965820312503,1.20625],[-78.85966796874996,1.455371093750031],[-78.1806640625,0.968554687499974],[-77.702880859375,0.837841796874997],[-77.46767578124997,0.636523437500017],[-77.396337890625,0.393896484374963],[-76.49462890624997,0.23544921875002],[-76.27060546874998,0.439404296874997],[-75.77666015624999,0.08925781249998],[-75.28447265624999,-0.10654296875002]]]]},"properties":{"name":"Ecuador","childNum":9}},{"geometry":{"type":"Polygon","coordinates":[[[34.24531250000001,31.208300781249996],[34.904296875,29.47734375],[34.736425781250006,29.27060546875],[34.39970703125002,28.01601562499999],[34.22011718750002,27.764306640624994],[33.76025390625,28.04765625],[33.24775390625001,28.567724609375],[32.56572265625002,29.973974609375],[32.35976562500002,29.630664062499996],[32.89824218750002,28.565234375],[33.54707031250001,27.898144531249997],[33.5498046875,27.607373046874997],[33.84931640625001,27.184912109375],[33.959082031250006,26.6490234375],[35.19414062500002,24.475146484375003],[35.78388671875001,23.937792968750003],[35.54082031250002,23.920654296875],[35.50439453125,23.779296875],[35.697851562500006,22.946191406249994],[36.22968750000001,22.628808593749994],[36.87138671875002,21.996728515624994],[31.434472656250023,21.995849609375],[31.486132812500017,22.14780273437499],[31.400292968750023,22.202441406250003],[31.260644531250023,22.00229492187499],[31.092675781250023,21.994873046875],[28.036425781250017,21.995361328125],[24.980273437500017,21.995849609375],[24.980273437500017,25.5888671875],[24.980273437500017,29.181884765625],[24.703222656250006,30.201074218749994],[24.96142578125,30.678515625],[24.85273437500001,31.334814453125],[25.150488281250006,31.654980468749997],[25.382226562500023,31.51279296875],[25.89326171875001,31.620898437499996],[27.248046875,31.377880859374997],[27.5400390625,31.212695312499996],[28.51484375000001,31.050439453124994],[29.072070312500017,30.830273437499997],[29.929785156250006,31.227490234374997],[30.22265625,31.2583984375],[30.395117187500006,31.4576171875],[30.92353515625001,31.566845703124997],[30.56298828125,31.4169921875],[31.001757812500017,31.462792968749994],[31.082910156250023,31.603320312499996],[31.5244140625,31.458251953125],[31.888964843750017,31.54140625],[32.13603515625002,31.341064453125],[31.8921875,31.482470703124996],[31.77109375,31.292578125],[32.10175781250001,31.092822265624996],[32.281835937500006,31.200878906249997],[32.21621093750002,31.29375],[32.60332031250002,31.06875],[33.66650390625,31.130419921874996],[34.19814453125002,31.322607421875],[34.24531250000001,31.208300781249996]]]},"properties":{"name":"Egypt","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[40.141210937500006,15.696142578125034],[40.399023437500006,15.579882812500045],[39.975195312500006,15.612451171875023],[39.94746093750004,15.696142578125034],[40.07050781250004,15.676611328125034],[39.93994140625003,15.744531250000023],[39.9567382812501,15.889404296875057],[40.141210937500006,15.696142578125034]]],[[[40.07646484375002,16.082421875000023],[40.11005859375004,15.985742187500051],[39.99609375000003,16.04267578125001],[40.07646484375002,16.082421875000023]]],[[[40.938574218750006,13.983105468749997],[40.82011718750002,14.111669921874991],[40.22148437500002,14.431152343749972],[39.531835937500006,14.53671875],[39.198046875000074,14.479394531250037],[39.1354492187501,14.581884765625034],[39.07421874999997,14.628222656249974],[39.02382812499999,14.628222656249974],[38.99570312500006,14.586865234374983],[38.81201171875003,14.482324218750009],[38.50439453124997,14.42441406250002],[38.43144531250002,14.428613281249994],[38.221484375000074,14.649658203124986],[38.002539062500006,14.737109375000045],[37.94345703125006,14.810546875],[37.884179687499994,14.852294921874972],[37.82031250000003,14.708496093749986],[37.70839843750005,14.45722656250004],[37.64843750000003,14.32255859375006],[37.571191406249994,14.149072265624966],[37.546777343749994,14.143847656249974],[37.507226562499994,14.156396484375037],[37.257226562499994,14.453759765625051],[37.024511718750006,14.271972656250057],[36.81191406250005,14.315039062500034],[36.67910156250005,14.307568359375026],[36.542382812499994,14.25820312499999],[36.52431640625005,14.256835937499986],[36.492285156250006,14.544335937500023],[36.470800781250006,14.736474609375009],[36.448144531249994,14.940087890625009],[36.42675781249997,15.132080078125043],[36.566015625,15.362109375],[36.9137695312501,16.296191406250045],[36.887792968750006,16.624658203124994],[36.9787109375001,16.800585937500045],[36.9757812500001,16.866552734375006],[36.99521484375006,17.020556640625017],[37.00898437500004,17.058886718750017],[37.06152343749997,17.061279296875057],[37.16953125000006,17.04140625],[37.41103515625005,17.061718749999955],[37.452929687500074,17.108691406250017],[37.51015625,17.28813476562499],[37.54746093750006,17.32412109375005],[37.78242187500004,17.458007812500057],[38.253515625,17.584765625000017],[38.26728515625004,17.616699218750057],[38.28984375000002,17.637011718750017],[38.34736328125004,17.68359375],[38.37373046875004,17.717333984375045],[38.42246093750006,17.823925781249983],[38.60947265625006,18.00507812500004],[39.03447265625002,17.085546875000034],[39.298925781250006,15.921093750000011],[39.78554687499999,15.124853515624991],[39.86376953124997,15.470312500000034],[40.20410156250003,15.014111328124983],[41.17646484375004,14.620312500000054],[41.65820312499997,13.983056640624994],[42.24511718749997,13.587646484374986],[42.39931640625005,13.212597656249969],[42.522851562499994,13.221484375],[42.796191406250074,12.864257812500057],[42.96953125000002,12.808349609375028],[42.99902343750003,12.899511718750048],[43.08291015625005,12.824609374999966],[43.11669921874997,12.708593749999963],[43.00566406250002,12.66230468750004],[42.88330078124997,12.621289062500026],[42.86591796875004,12.622802734374986],[42.82529296875006,12.569335937500014],[42.767480468749994,12.422851562500014],[42.70371093750006,12.380322265625054],[42.479394531249994,12.513623046875026],[42.45,12.521337890625006],[42.40859375,12.494384765625014],[42.37851562500006,12.46640625],[42.28994140625005,12.570214843750009],[42.225,12.661962890624963],[42.13427734374997,12.771435546874969],[41.95214843749997,12.88232421875],[41.85957031250004,13.025878906250028],[41.76503906250005,13.183935546874991],[41.362890625,13.499804687500031],[40.938574218750006,13.983105468749997]]]]},"properties":{"name":"Eritrea","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-17.887939453125,27.809570312500057],[-17.984765625000023,27.646386718750023],[-18.160546874999937,27.76147460937503],[-17.887939453125,27.809570312500057]]],[[[-15.400585937499955,28.147363281250023],[-15.436767578124972,27.810693359375023],[-15.71030273437492,27.784082031250023],[-15.809472656249966,27.994482421874977],[-15.682763671874994,28.15405273437497],[-15.400585937499955,28.147363281250023]]],[[[-17.184667968749977,28.02197265624997],[-17.324902343749955,28.11767578125003],[-17.25859375,28.203173828125045],[-17.103759765624943,28.111132812500017],[-17.184667968749977,28.02197265624997]]],[[[-16.33447265624997,28.37993164062499],[-16.41821289062497,28.15141601562496],[-16.65800781249999,28.007177734374977],[-16.905322265625017,28.33959960937503],[-16.12363281249992,28.57597656249996],[-16.33447265624997,28.37993164062499]]],[[[-14.196777343749943,28.169287109375063],[-14.332617187500006,28.056005859374977],[-14.49179687499992,28.100927734374977],[-14.231982421875017,28.21582031250003],[-14.003369140624983,28.706689453125023],[-13.85722656249996,28.73803710937503],[-13.928027343749989,28.25346679687499],[-14.196777343749943,28.169287109375063]]],[[[-17.83427734374999,28.49321289062496],[-18.00078124999999,28.758251953124955],[-17.928808593749977,28.844580078125063],[-17.7265625,28.724462890625006],[-17.83427734374999,28.49321289062496]]],[[[-13.715966796874966,28.911230468750034],[-13.85991210937496,28.869091796874983],[-13.823632812499966,29.013330078124966],[-13.463574218749955,29.237207031250023],[-13.477929687499966,29.00659179687503],[-13.715966796874966,28.911230468750034]]],[[[1.593945312500068,38.672070312499955],[1.40576171875,38.670996093750006],[1.436328125000017,38.768212890624994],[1.593945312500068,38.672070312499955]]],[[[1.445214843750051,38.91870117187503],[1.223339843750068,38.90385742187502],[1.3486328125,39.080810546875],[1.564453125,39.12104492187504],[1.623632812499977,39.03881835937497],[1.445214843750051,38.91870117187503]]],[[[3.145312500000017,39.79008789062499],[3.461816406250023,39.69775390625003],[3.072851562500006,39.30126953124997],[2.799804687500057,39.38505859374999],[2.700585937500023,39.54213867187502],[2.49951171875,39.47788085937498],[2.37001953125008,39.57207031249999],[3.15869140625,39.97050781249999],[3.145312500000017,39.79008789062499]]],[[[4.293652343750011,39.84184570312499],[3.8671875,39.958740234375],[3.853417968750051,40.06303710937502],[4.22578125000004,40.032373046874966],[4.293652343750011,39.84184570312499]]],[[[-1.794042968749949,43.407324218750006],[-1.410693359374932,43.240087890625034],[-1.460839843749937,43.05175781250006],[-1.300048828124943,43.10097656250002],[-0.586425781249943,42.798974609374966],[0.631640625000045,42.689599609374994],[0.696875,42.84511718750005],[1.428320312499977,42.59589843749998],[1.414843750000074,42.54838867187499],[1.448828124999977,42.43745117187504],[1.534082031250051,42.44169921875002],[1.7060546875,42.50332031250005],[1.859765625000051,42.457080078125045],[1.927929687500068,42.42631835937499],[2.032714843750028,42.353515625],[3.21142578125,42.43115234375],[3.248046875,41.94423828125002],[3.0048828125,41.76743164062506],[2.082617187500063,41.287402343750045],[1.032910156250068,41.06206054687496],[0.714648437500074,40.822851562500006],[0.891113281250057,40.72236328125004],[0.59609375000008,40.614501953125],[-0.327001953124949,39.519873046875006],[-0.204931640624949,39.062597656250034],[0.20156250000008,38.75917968750002],[-0.520800781249989,38.317285156249966],[-0.814648437500011,37.76992187500002],[-0.721582031249966,37.63105468749998],[-1.327539062499937,37.561132812500034],[-1.640966796874949,37.38696289062497],[-2.111523437499983,36.77666015624999],[-4.366845703124994,36.71811523437506],[-4.67412109374996,36.506445312500006],[-5.171484374999949,36.423779296874955],[-5.3609375,36.134912109374994],[-5.62548828125,36.02592773437499],[-6.040673828124937,36.18842773437498],[-6.38413085937492,36.63701171874996],[-6.216796875000028,36.91357421875],[-6.396191406249983,36.831640625],[-6.863769531250028,37.27890625],[-7.406152343749937,37.17944335937497],[-7.44394531249992,37.72827148437497],[-6.957568359374932,38.18789062499999],[-7.106396484374983,38.181005859375006],[-7.343017578124943,38.45742187500002],[-6.997949218749994,39.05644531250002],[-7.53569335937496,39.66157226562501],[-7.117675781249972,39.681689453125045],[-6.975390624999932,39.79838867187502],[-6.896093749999949,40.02182617187506],[-7.032617187499966,40.16791992187498],[-6.8101562499999,40.343115234375034],[-6.928466796874972,41.009130859375006],[-6.2125,41.53203125],[-6.542187499999955,41.672509765624994],[-6.61826171874992,41.9423828125],[-7.147119140625023,41.98115234374998],[-7.40361328124996,41.833691406249955],[-8.152490234374937,41.81196289062498],[-8.266064453124983,42.13740234375001],[-8.777148437500017,41.941064453124994],[-8.887207031249943,42.105273437500045],[-8.690917968749943,42.274169921875],[-8.815820312499966,42.285253906250034],[-8.730029296874989,42.411718750000034],[-8.8115234375,42.64033203124998],[-9.033105468750023,42.593847656250006],[-8.927197265624926,42.79858398437497],[-9.235205078124977,42.97690429687498],[-9.178076171874977,43.17402343749998],[-8.248925781249937,43.43940429687498],[-8.256738281249937,43.57988281249999],[-8.004687499999932,43.69438476562496],[-7.503613281249983,43.73994140625001],[-7.060986328124955,43.55395507812503],[-5.846679687499943,43.645068359375045],[-4.52304687499992,43.41572265625004],[-3.604638671874966,43.51948242187504],[-3.045605468749926,43.37158203125],[-2.875048828125017,43.454443359375006],[-2.337109374999926,43.32802734375002],[-1.794042968749949,43.407324218750006]]]]},"properties":{"name":"Spain","childNum":12,"cp":[-2.9366964,40.3438963]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[22.61738281250004,58.62124023437502],[23.323242187500057,58.45083007812502],[22.730273437500045,58.23066406250001],[22.371679687499977,58.217138671875006],[21.996875,57.93134765624998],[22.187695312500068,58.15434570312502],[21.88212890624999,58.262353515624994],[21.862304687500057,58.497167968750034],[22.61738281250004,58.62124023437502]]],[[[23.343554687500017,58.550341796875045],[23.10908203125004,58.65922851562502],[23.332812500000045,58.648583984374994],[23.343554687500017,58.550341796875045]]],[[[22.923730468750023,58.826904296875],[22.54218750000001,58.68999023437499],[22.411035156250023,58.863378906250034],[22.05625,58.94360351562506],[22.6494140625,59.08710937499998],[22.90986328125004,58.99121093749997],[22.923730468750023,58.826904296875]]],[[[28.0125,59.484277343749966],[28.15107421875004,59.374414062499966],[27.434179687500006,58.787255859374994],[27.502441406250057,58.221337890624994],[27.778515625000068,57.87070312500006],[27.542089843750063,57.799414062500006],[27.4,57.66679687499999],[27.35195312500005,57.528125],[26.96601562500001,57.60913085937506],[26.532617187499994,57.53100585937503],[26.29804687500001,57.60107421875],[25.66015625,57.920166015625],[25.27265625000001,58.009375],[25.11103515625004,58.06342773437498],[24.45888671875005,57.907861328124994],[24.3625,57.86616210937501],[24.322558593750074,57.87060546875003],[24.529101562500045,58.35424804687497],[24.114843750000034,58.26611328125006],[23.767578125000057,58.36083984374997],[23.50927734375003,58.65854492187498],[23.680761718750063,58.787158203125074],[23.43203125,58.920654296875],[23.494433593750017,59.19565429687498],[24.083398437500023,59.29189453125005],[24.38037109375003,59.47265625],[25.44375,59.52114257812502],[25.50927734374997,59.63901367187506],[26.974707031250006,59.450634765624955],[28.0125,59.484277343749966]]]]},"properties":{"name":"Estonia","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[38.43144531250002,14.428613281249994],[38.50439453125,14.424414062499991],[38.81201171875,14.482324218749994],[38.995703125,14.586865234374997],[39.02382812500002,14.628222656250003],[39.07421875,14.628222656250003],[39.13544921875001,14.581884765624991],[39.19804687500002,14.479394531249994],[39.531835937500006,14.53671875],[40.22148437500002,14.43115234375],[40.82011718750002,14.111669921874991],[40.938574218750006,13.983105468749997],[41.362890625,13.499804687500003],[41.76503906250002,13.183935546874991],[41.85957031250001,13.02587890625],[41.9521484375,12.88232421875],[42.13427734375,12.771435546874997],[42.225,12.661962890624991],[42.28994140625002,12.570214843749994],[42.378515625,12.46640625],[41.79267578125001,11.68603515625],[41.79824218750002,10.98046875],[42.557714843750006,11.080761718749997],[42.92275390625002,10.999316406249989],[42.65644531250001,10.6],[42.84160156250002,10.203076171874997],[43.181640625,9.879980468749991],[43.482519531250006,9.379492187499991],[43.98378906250002,9.008837890624989],[46.97822265625001,7.9970703125],[47.97822265625001,7.9970703125],[44.940527343750006,4.912011718749994],[43.988867187500006,4.950537109374991],[43.58349609375,4.85498046875],[43.12568359375001,4.644482421874997],[42.85664062500001,4.32421875],[42.02412109375001,4.137939453125],[41.91533203125002,4.031298828124989],[41.88398437500001,3.977734375],[41.73769531250002,3.979052734374989],[41.48193359375,3.96328125],[41.37246093750002,3.946191406249994],[41.22089843750001,3.943554687499997],[41.02080078125002,4.057470703124991],[40.765234375,4.27304687499999],[39.84218750000002,3.851464843749994],[39.79033203125002,3.754248046874991],[39.65751953125002,3.577832031249997],[39.49443359375002,3.456103515624989],[38.608007812500006,3.60009765625],[38.45156250000002,3.604833984374991],[38.22529296875001,3.618994140624991],[38.08613281250001,3.64882812499999],[37.15458984375002,4.254541015624994],[36.90556640625002,4.411474609374991],[36.02197265625,4.468115234374991],[35.76308593750002,4.808007812499994],[35.75615234375002,4.950488281249989],[35.779296875,5.105566406249991],[35.80029296875,5.156933593749997],[35.74501953125002,5.343994140625],[35.325292968750006,5.364892578124994],[35.2646484375,5.412060546874997],[35.26386718750001,5.457910156249994],[35.26835937500002,5.492285156249991],[34.98359375000001,5.858300781249994],[34.71064453125001,6.660302734374994],[34.06425781250002,7.225732421874994],[33.902441406250006,7.509521484375],[32.99892578125002,7.899511718749991],[33.28105468750002,8.437255859375],[33.95332031250001,8.443505859374994],[34.07275390625,8.545263671874991],[34.078125,9.461523437499991],[34.31123046875001,10.190869140624997],[34.34394531250001,10.658642578124997],[34.571875,10.880175781249989],[34.77128906250002,10.746191406249991],[34.93144531250002,10.864794921874989],[35.1123046875,11.816552734374994],[35.67021484375002,12.623730468749997],[36.12519531250001,12.75703125],[36.52431640625002,14.2568359375],[36.54238281250002,14.25820312499999],[36.67910156250002,14.307568359374997],[36.81191406250002,14.315039062499991],[37.024511718750006,14.27197265625],[37.25722656250002,14.453759765624994],[37.50722656250002,14.156396484374994],[37.54677734375002,14.143847656250003],[37.57119140625002,14.149072265624994],[37.6484375,14.322558593750003],[37.70839843750002,14.457226562499997],[37.8203125,14.70849609375],[37.88417968750002,14.852294921875],[37.943457031250006,14.810546875],[38.002539062500006,14.737109375],[38.22148437500002,14.649658203125],[38.43144531250002,14.428613281249994]]]},"properties":{"name":"Ethiopia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[22.17509765624999,60.370751953124994],[22.41552734375003,60.30336914062505],[22.36054687500004,60.165576171875045],[22.07714843750003,60.286328124999955],[22.17509765624999,60.370751953124994]]],[[[21.450878906250068,60.529589843750045],[21.3,60.47978515625002],[21.224707031250006,60.62060546875003],[21.450878906250068,60.529589843750045]]],[[[21.2177734375,63.241308593750034],[21.415625,63.19736328125006],[21.25341796875,63.152001953124966],[21.08388671875008,63.277539062499955],[21.2177734375,63.241308593750034]]],[[[24.848242187500034,64.99101562499999],[24.576562500000023,65.04287109375],[24.970605468750023,65.05532226562502],[24.848242187500034,64.99101562499999]]],[[[28.96582031250003,69.02197265625],[28.414062500000057,68.90415039062506],[28.77285156250005,68.84003906249995],[28.470703125000057,68.48837890625],[28.685156250000034,68.189794921875],[29.343847656250006,68.06186523437506],[29.988085937500017,67.66826171874999],[29.066210937500045,66.89174804687497],[30.102734375000097,65.72626953125004],[29.715917968750063,65.62456054687502],[29.608007812500006,65.248681640625],[29.826953125000017,65.14506835937502],[29.60419921875004,64.968408203125],[30.072851562500063,64.76503906250005],[30.04189453125005,64.44335937499997],[30.513769531250006,64.2],[30.50390625000003,64.02060546875],[29.991503906250074,63.73515625000002],[31.180859375000097,63.208300781250074],[31.533984375000017,62.885400390624994],[31.18671875000004,62.48139648437504],[29.69013671875004,61.54609375000001],[27.797656250000074,60.53613281250003],[26.53466796874997,60.412890625000074],[26.56933593750003,60.62456054687502],[26.377734375000074,60.42407226562503],[25.955957031250023,60.474218750000034],[26.03583984375004,60.34150390625001],[25.75800781250004,60.26752929687504],[25.65644531250004,60.33320312499998],[24.44560546874999,60.021289062500045],[23.46357421875004,59.986230468749994],[23.021289062500074,59.81601562500006],[23.19843750000001,60.02182617187498],[22.911718750000063,60.20971679687497],[22.749804687500017,60.057275390624994],[22.462695312500045,60.029199218749966],[22.5849609375,60.380566406249955],[21.436035156250057,60.596386718749955],[21.605957031250057,61.59155273437503],[21.255957031250063,61.98964843750005],[21.143847656250045,62.73999023437506],[21.650976562500063,63.039306640625],[21.545117187499983,63.204296874999955],[22.31972656250005,63.310449218749994],[22.532324218750034,63.647851562499994],[23.598925781250074,64.04091796874997],[24.557910156250045,64.801025390625],[25.288183593750063,64.8603515625],[25.34785156250004,65.47924804687497],[24.674902343750006,65.67070312499999],[24.628027343750034,65.85917968750002],[24.15546875000004,65.80527343750006],[23.700292968750034,66.25263671874998],[23.988574218750045,66.81054687500003],[23.64150390625005,67.12939453124997],[23.733593750000068,67.42290039062499],[23.454882812500045,67.46025390625007],[23.63886718750004,67.95439453125002],[22.854101562500034,68.36733398437502],[21.99746093750005,68.52060546874998],[20.622167968750006,69.036865234375],[21.065722656250017,69.04174804687503],[21.06611328125001,69.21411132812497],[21.59375,69.273583984375],[22.410937500000074,68.719873046875],[23.324023437500017,68.64897460937502],[23.85400390625,68.80590820312503],[24.94140625000003,68.59326171875006],[25.748339843750017,68.99013671875],[26.07246093750004,69.69155273437497],[26.525390625000057,69.91503906250003],[27.127539062500063,69.90649414062497],[27.747851562500045,70.06484375],[29.14160156250003,69.67143554687505],[29.33339843750005,69.47299804687503],[28.846289062500006,69.17690429687502],[28.96582031250003,69.02197265625]]]]},"properties":{"name":"Finland","childNum":5}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[178.48789062500018,-18.97412109375],[177.95869140624998,-19.121582031250014],[178.33427734375013,-18.93447265625001],[178.48789062500018,-18.97412109375]]],[[[179.34931640625015,-18.10234375000003],[179.25351562500018,-18.030566406249974],[179.30644531250013,-17.944042968750026],[179.34931640625015,-18.10234375000003]]],[[[178.28017578124994,-17.37197265625001],[178.59160156249996,-17.651464843750006],[178.66767578125004,-18.080859375],[177.95546875000005,-18.264062500000023],[177.32138671875,-18.077539062500037],[177.26396484375007,-17.86347656250004],[177.5044921875,-17.539550781250043],[177.81796875000012,-17.38847656249999],[178.28017578124994,-17.37197265625001]]],[[[180,-16.96308593750001],[179.89697265625003,-16.96406250000004],[180,-16.785742187500034],[180,-16.96308593750001]]],[[[-179.97490234374996,-16.92480468750003],[-180,-16.96298828124999],[-180,-16.907812500000034],[-180,-16.82431640624999],[-180,-16.78554687499999],[-179.86098632812502,-16.68828124999999],[-179.97490234374996,-16.92480468750003]]],[[[-179.92944335937503,-16.502832031250037],[-179.999951171875,-16.540039062499986],[-179.900927734375,-16.431542968749994],[-179.92944335937503,-16.502832031250037]]],[[[179.99921875000004,-16.168554687499977],[179.56416015625004,-16.636914062499997],[179.56816406249996,-16.747460937499966],[179.93037109375004,-16.51943359375005],[179.9279296875001,-16.74443359374996],[179.41933593750005,-16.80654296875001],[179.20234375000004,-16.71269531249999],[179.00683593750003,-16.90019531249999],[178.70664062500018,-16.97617187500002],[178.4974609375,-16.78789062500003],[178.58359375000012,-16.621875],[178.80507812499994,-16.631445312500034],[179.55175781250003,-16.249902343750023],[180,-16.15292968749999],[179.99921875000004,-16.168554687499977]]]]},"properties":{"name":"Fiji","childNum":7}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-61.01875,-51.7857421875],[-60.87597656250003,-51.79423828125004],[-60.94755859374996,-51.94628906250002],[-61.14501953125003,-51.83945312500001],[-61.01875,-51.7857421875]]],[[[-60.28623046874995,-51.461914062500014],[-59.38759765625002,-51.35996093750003],[-59.26806640625,-51.42753906250003],[-59.92138671874997,-51.969531250000045],[-60.246337890625,-51.98642578125003],[-60.35346679687498,-52.13994140625004],[-60.686376953125034,-52.18837890624996],[-60.96142578125003,-52.05732421874999],[-60.23847656249998,-51.771972656250036],[-60.58251953125,-51.71269531250004],[-60.24516601562493,-51.638867187500004],[-60.56845703124998,-51.357812499999945],[-60.28623046874995,-51.461914062500014]]],[[[-60.11171875000002,-51.39589843749998],[-60.275341796874955,-51.28056640625002],[-60.06982421875,-51.307910156249996],[-60.11171875000002,-51.39589843749998]]],[[[-58.85019531249995,-51.26992187499998],[-58.42583007812502,-51.32421875000003],[-58.508935546874994,-51.48359375],[-58.271582031250034,-51.57470703124999],[-58.25922851562501,-51.417089843750034],[-57.976513671874955,-51.384375],[-57.80849609375002,-51.51796875],[-57.96044921874997,-51.58320312500003],[-57.79179687499999,-51.63613281249998],[-58.68349609375002,-51.93623046875001],[-58.65278320312498,-52.09921875],[-59.19584960937496,-52.01767578125],[-59.06801757812502,-52.17304687500003],[-59.341503906249955,-52.19599609375],[-59.395654296874966,-52.308007812499994],[-59.64873046875002,-52.134375],[-59.57080078124994,-51.92539062500003],[-59.05952148437498,-51.685449218749994],[-59.09663085937498,-51.49140624999998],[-58.85019531249995,-51.26992187499998]]]]},"properties":{"name":"Falkland Is.","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[55.79736328125003,-21.33935546875003],[55.36269531250005,-21.27363281250004],[55.23281250000005,-21.05839843749999],[55.311328125000074,-20.90410156249999],[55.661914062500074,-20.90625],[55.8390625000001,-21.13857421874998],[55.79736328125003,-21.33935546875003]]],[[[45.180273437500006,-12.97675781250004],[45.069433593750006,-12.895605468750034],[45.09238281250006,-12.653027343749997],[45.22314453124997,-12.752148437500026],[45.180273437500006,-12.97675781250004]]],[[[-51.65253906249998,4.061279296874972],[-52.327880859375,3.18173828125002],[-52.58300781250003,2.528906249999977],[-52.90346679687502,2.211523437499977],[-53.76777343749998,2.354833984375048],[-54.13007812499998,2.121044921875026],[-54.43310546875,2.207519531250057],[-54.51508789062498,2.245458984374963],[-54.55048828125001,2.293066406249991],[-54.59194335937502,2.313769531250031],[-54.61625976562499,2.326757812500006],[-54.60473632812497,2.335791015624991],[-54.56840820312502,2.342578125000031],[-54.53593749999999,2.343310546875003],[-54.48554687500001,2.416113281250006],[-54.402001953124966,2.46152343750002],[-54.25673828125002,2.713720703124977],[-54.19550781249998,2.817871093750057],[-54.17070312499999,2.993603515624969],[-54.203125,3.138183593750028],[-54.18803710937499,3.178759765625031],[-54.063183593749955,3.353320312499989],[-54.00957031249993,3.448535156250017],[-54.03422851562499,3.62939453125],[-54.350732421874994,4.054101562500023],[-54.47968749999998,4.836523437499991],[-53.91992187499997,5.768994140624983],[-52.899316406249966,5.425048828124986],[-52.29052734375003,4.942187500000031],[-52.324609374999966,4.770898437500037],[-52.21997070312494,4.862792968750014],[-52.05810546875003,4.717382812499963],[-52.00292968749997,4.352294921875014],[-51.82753906250002,4.635693359375026],[-51.65253906249998,4.061279296874972]]],[[[-60.826269531250006,14.494482421874991],[-61.063720703125,14.467089843750017],[-61.01132812499998,14.601904296875034],[-61.21333007812501,14.848583984375011],[-60.927148437499966,14.755175781249989],[-60.826269531250006,14.494482421874991]]],[[[-61.23046875000003,15.889941406250074],[-61.310742187499955,15.894677734374966],[-61.25,16.006298828124983],[-61.23046875000003,15.889941406250074]]],[[[-61.58955078125001,16.006933593750006],[-61.759423828124966,16.062060546875045],[-61.74804687499997,16.355273437500017],[-61.55234374999998,16.270898437499966],[-61.58955078125001,16.006933593750006]]],[[[-61.3271484375,16.230419921874983],[-61.522167968749955,16.22802734375003],[-61.47119140624994,16.506640625000045],[-61.17260742187497,16.25610351562497],[-61.3271484375,16.230419921874983]]],[[[9.480371093750023,42.80541992187503],[9.550683593750051,42.12973632812506],[9.186132812500034,41.38491210937502],[8.80751953125008,41.58837890625],[8.886816406249977,41.70068359375003],[8.621875,41.93071289062502],[8.700976562500045,42.09560546875002],[8.565625,42.35771484374996],[8.81484375000008,42.60791015625003],[9.313378906250023,42.71318359374999],[9.363183593750051,43.01738281249996],[9.480371093750023,42.80541992187503]]],[[[-1.17832031249992,45.904052734375],[-1.213574218750011,45.81660156250004],[-1.388671874999972,46.05039062500006],[-1.17832031249992,45.904052734375]]],[[[5.789746093749983,49.53828125000001],[5.823437500000011,49.50507812499998],[5.9013671875,49.48974609374997],[5.928906250000011,49.47753906249997],[5.959472656250028,49.45463867187502],[6.01142578125004,49.44545898437502],[6.074121093750023,49.45463867187502],[6.119921875000017,49.485205078125034],[6.181054687500051,49.498925781249966],[6.344335937500006,49.45273437499998],[6.735449218750006,49.16059570312498],[7.450585937500051,49.152197265625034],[8.134863281250006,48.97358398437498],[7.616601562500023,48.15678710937502],[7.615625,47.59272460937504],[7.343164062499994,47.43310546875003],[7.136035156249989,47.489843750000034],[6.968359375000034,47.453222656250034],[6.900390625000028,47.39423828125001],[7.000585937500034,47.339453125000034],[7.000585937500034,47.32250976562506],[6.978515625000057,47.30205078124996],[6.95205078125008,47.26718750000006],[6.820703125000051,47.163183593750006],[6.688085937500034,47.05825195312505],[6.66689453125008,47.026513671874966],[6.624804687500017,47.00434570312498],[6.45625,46.948339843750034],[6.438646763392874,46.774418247767855],[6.129687500000045,46.56699218750006],[6.118111049107182,46.447459542410726],[6.095898437500011,46.279394531250006],[5.970019531250045,46.214697265625034],[5.971484375000074,46.151220703125006],[6.006640625000045,46.14233398437506],[6.086621093750068,46.14702148437502],[6.19941406250004,46.19306640624998],[6.234667968750045,46.332617187500006],[6.321875,46.39370117187502],[6.428906250000011,46.43051757812506],[6.578222656250034,46.437353515625034],[6.758105468750017,46.41577148437497],[6.772070312500006,46.16513671874998],[6.897265625000017,46.05175781249997],[6.953710937500063,46.017138671875045],[7.00390625,45.95883789062506],[7.021093750000034,45.92578124999997],[6.790917968750023,45.740869140624966],[7.146386718750051,45.381738281249994],[7.07832031250004,45.23994140624998],[6.634765625000028,45.06816406249996],[6.99267578125,44.82729492187502],[6.900195312499989,44.33574218749996],[7.318554687500068,44.13798828125002],[7.637207031250057,44.16484375],[7.4931640625,43.767138671875045],[6.570214843750023,43.199072265625034],[6.115917968750011,43.07236328124998],[5.406542968750074,43.228515625],[5.05976562500004,43.44453125000004],[4.712109375000011,43.373291015625],[3.910839843750011,43.563085937500034],[3.258886718750063,43.193212890625006],[3.051757812500057,42.915136718750006],[3.21142578125,42.43115234375],[2.032714843750028,42.353515625],[1.927929687500068,42.42631835937499],[1.859765625000051,42.457080078125045],[1.7060546875,42.50332031250005],[1.709863281250051,42.604443359374955],[1.568164062500045,42.63500976562506],[1.501367187500023,42.64272460937502],[1.428320312499977,42.59589843749998],[0.696875,42.84511718750005],[0.631640625000045,42.689599609374994],[-0.586425781249943,42.798974609374966],[-1.300048828124943,43.10097656250002],[-1.460839843749937,43.05175781250006],[-1.410693359374932,43.240087890625034],[-1.794042968749949,43.407324218750006],[-1.484863281249943,43.56376953124999],[-1.245507812499937,44.55986328124999],[-1.07695312499996,44.68984375],[-1.152880859374989,44.764013671875006],[-1.245214843749977,44.66669921874998],[-1.081005859374983,45.532421874999955],[-0.548486328124966,45.00058593750006],[-0.790771484375028,45.46801757812497],[-1.195996093749983,45.714453125],[-1.03173828125,45.741064453125006],[-1.14628906249996,46.311376953125034],[-1.786523437499937,46.51484375000001],[-2.059375,46.81030273437497],[-2.01889648437492,47.03764648437502],[-2.197070312499989,47.16293945312506],[-2.027587890625028,47.27358398437502],[-1.742529296874949,47.21596679687502],[-1.97539062499996,47.31069335937505],[-2.503125,47.31206054687496],[-2.427685546874983,47.47089843749998],[-2.770312499999989,47.513867187499955],[-2.787207031249949,47.62553710937496],[-4.312109374999949,47.82290039062502],[-4.678808593749949,48.03950195312501],[-4.32944335937492,48.169970703125045],[-4.577148437499943,48.2900390625],[-4.241406249999926,48.30366210937501],[-4.719384765624966,48.363134765625034],[-4.7625,48.45024414062502],[-4.531201171874983,48.61997070312506],[-3.231445312499972,48.84082031250003],[-2.692333984374983,48.53681640624998],[-2.446191406249937,48.64829101562506],[-2.00371093749996,48.58208007812499],[-1.905712890624955,48.69711914062506],[-1.376464843749972,48.65258789062503],[-1.565478515624932,48.805517578125034],[-1.583105468749977,49.20239257812506],[-1.856445312499972,49.68378906249998],[-1.258642578124949,49.68017578125006],[-1.138525390624977,49.38789062500001],[-0.163476562499937,49.296777343749994],[0.41689453125008,49.448388671874994],[0.129394531250028,49.508447265624966],[0.186718749999983,49.703027343749994],[1.245507812500051,49.99824218750001],[1.5927734375,50.25219726562506],[1.672265625000023,50.885009765625],[2.52490234375,51.097119140624955],[2.759375,50.750634765624994],[3.10683593750008,50.779443359374994],[3.27333984375008,50.53154296875002],[3.595410156250068,50.47734374999999],[3.689355468750023,50.30605468750002],[4.174609375000017,50.24648437500005],[4.149316406250023,49.971582031249994],[4.545019531250063,49.96025390624999],[4.818652343750045,50.153173828125034],[4.867578125000051,49.78813476562502],[5.50732421875,49.51088867187502],[5.789746093749983,49.53828125000001]]]]},"properties":{"name":"France","childNum":10,"cp":[2.8719426,46.8222422]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-7.186865234374949,62.139306640624966],[-7.116796874999977,62.046826171874955],[-7.379101562499926,62.07480468749998],[-7.186865234374949,62.139306640624966]]],[[[-6.631054687499955,62.22788085937498],[-6.655810546874932,62.09360351562498],[-6.840527343749983,62.119287109374994],[-6.725195312499949,61.95146484374999],[-7.17216796874996,62.28559570312501],[-6.631054687499955,62.22788085937498]]],[[[-6.406054687499932,62.258642578125034],[-6.544140624999926,62.20561523437499],[-6.554589843749994,62.35566406250001],[-6.406054687499932,62.258642578125034]]]]},"properties":{"name":"Faeroe Is.","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[158.31484375,6.813671875],[158.18339843750002,6.801269531250057],[158.13476562499997,6.944824218749986],[158.29462890625004,6.951074218750023],[158.31484375,6.813671875]]],[[[138.14267578125006,9.50068359375004],[138.06708984375004,9.419042968750006],[138.18583984375007,9.593310546874989],[138.14267578125006,9.50068359375004]]]]},"properties":{"name":"Micronesia","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[13.293554687500006,2.161572265624997],[13.172167968750017,1.78857421875],[13.21630859375,1.2484375],[13.851367187500017,1.41875],[14.180859375000011,1.370214843749991],[14.429882812500011,0.901464843749991],[14.32421875,0.62421875],[13.949609375000023,0.353808593749989],[13.860058593750011,-0.203320312500011],[14.47412109375,-0.573437500000011],[14.383984375000011,-1.890039062500009],[14.162890625000017,-2.217578125],[14.199804687500006,-2.354199218750011],[13.993847656250011,-2.490625],[13.886914062500011,-2.465429687500006],[13.733789062500023,-2.138476562500003],[13.464941406250006,-2.395410156250009],[12.991992187500017,-2.313378906250009],[12.793554687500006,-1.931835937500011],[12.590429687500006,-1.826855468750011],[12.43212890625,-1.928906250000011],[12.446386718750006,-2.329980468750009],[12.064453125,-2.41259765625],[11.60546875,-2.342578125],[11.537792968750011,-2.83671875],[11.760156250000023,-2.983105468750011],[11.715429687500006,-3.176953125000011],[11.934179687500006,-3.318554687500011],[11.8798828125,-3.665917968750009],[11.685742187500011,-3.68203125],[11.504296875000023,-3.5203125],[11.234472656250006,-3.690820312500009],[11.130175781250017,-3.916308593750003],[10.34765625,-3.013085937500009],[9.722070312500023,-2.467578125],[10.06201171875,-2.549902343750006],[9.624609375,-2.367089843750009],[9.298925781250006,-1.903027343750011],[9.483203125000017,-1.894628906250006],[9.265625,-1.825097656250009],[9.036328125000011,-1.308886718750003],[9.31884765625,-1.632031250000011],[9.501074218750006,-1.55517578125],[9.295800781250023,-1.515234375],[9.3466796875,-1.325],[9.203808593750011,-1.382421875],[9.064648437500011,-1.29833984375],[8.703125,-0.591015625000011],[8.946386718750006,-0.688769531250003],[9.296679687500017,-0.351269531250011],[9.354882812500023,0.343603515624991],[9.468164062500023,0.15976562499999],[9.796777343750023,0.044238281249989],[10.00146484375,0.194970703124994],[9.546484375,0.295947265624989],[9.324804687500006,0.552099609374991],[9.495312500000011,0.664843749999989],[9.617968750000017,0.576513671874991],[9.5908203125,1.031982421875],[9.636132812500023,1.046679687499989],[9.676464843750011,1.07470703125],[9.70458984375,1.079980468749994],[9.760546875000017,1.07470703125],[9.788671875,1.025683593749989],[9.803906250000011,0.998730468749997],[9.90673828125,0.960107421874994],[11.335351562500023,0.999707031249997],[11.332324218750017,1.528369140624989],[11.328710937500006,2.167431640624997],[11.348437500000017,2.299707031249994],[11.558984375000023,2.302197265624997],[13.2203125,2.256445312499991],[13.293554687500006,2.161572265624997]]]},"properties":{"name":"Gabon","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-1.065576171874966,50.69023437500002],[-1.25146484375,50.58881835937498],[-1.563427734374955,50.666113281250006],[-1.31279296874996,50.77348632812502],[-1.065576171874966,50.69023437500002]]],[[[-4.196777343749972,53.321435546874966],[-4.04936523437496,53.30576171874998],[-4.373046875,53.13417968750002],[-4.56787109375,53.386474609375],[-4.315087890625023,53.41723632812503],[-4.196777343749972,53.321435546874966]]],[[[-6.218017578125,54.08872070312506],[-6.649804687499937,54.05864257812496],[-7.007714843749937,54.40668945312501],[-7.324511718750017,54.13344726562502],[-7.606542968750006,54.14384765625002],[-8.118261718749977,54.41425781250004],[-7.75439453125,54.59492187499998],[-7.910595703124955,54.698339843750006],[-7.55039062499992,54.767968749999966],[-7.218652343749937,55.09199218749998],[-6.475048828124955,55.24101562499999],[-6.035791015624994,55.14453125000003],[-5.71684570312496,54.817480468750034],[-5.878613281249955,54.64130859375001],[-5.582519531249943,54.66342773437498],[-5.470410156249926,54.500195312499955],[-5.671093749999955,54.54975585937501],[-5.60678710937492,54.272558593750034],[-6.019042968749972,54.05126953124997],[-6.218017578125,54.08872070312506]]],[[[-5.105419921875011,55.448828125000034],[-5.331494140624955,55.481054687500034],[-5.318115234375,55.709179687499955],[-5.105419921875011,55.448828125000034]]],[[[-6.128906249999972,55.93056640625002],[-6.055322265624994,55.69531249999997],[-6.305078124999966,55.60693359375],[-6.286425781249989,55.77250976562499],[-6.491357421874994,55.697314453125045],[-6.462841796874955,55.808251953124994],[-6.128906249999972,55.93056640625002]]],[[[-5.970068359374949,55.814550781250034],[-6.071972656250011,55.893115234375045],[-5.72514648437496,56.118554687499966],[-5.970068359374949,55.814550781250034]]],[[[-5.77788085937496,56.344335937500034],[-6.313427734374983,56.29365234375001],[-6.138867187499955,56.490625],[-6.286328124999983,56.61186523437502],[-6.102734374999955,56.645654296874966],[-5.760839843749949,56.49067382812501],[-5.77788085937496,56.344335937500034]]],[[[-7.249853515624977,57.115332031250006],[-7.410546874999937,57.38110351562506],[-7.26713867187496,57.37177734375001],[-7.249853515624977,57.115332031250006]]],[[[-6.144726562499983,57.50498046874998],[-6.135546874999989,57.31425781250002],[-5.672460937499977,57.252685546875],[-5.94907226562492,57.045166015625],[-6.034375,57.20122070312499],[-6.322705078124926,57.20249023437498],[-6.761132812499994,57.4423828125],[-6.305957031249989,57.67197265624998],[-6.144726562499983,57.50498046874998]]],[[[-7.205566406250028,57.682958984375006],[-7.182617187499972,57.53330078125006],[-7.514746093749949,57.60195312500002],[-7.205566406250028,57.682958984375006]]],[[[-6.198681640624983,58.36328125000003],[-6.554589843749994,58.092871093750006],[-6.425195312499937,58.02128906249999],[-6.983105468749983,57.75],[-7.083447265624926,57.81376953124999],[-6.856835937499937,57.92353515624998],[-7.085253906249932,58.18217773437499],[-6.726464843749937,58.189404296874955],[-6.776464843750006,58.30151367187497],[-6.237451171874966,58.50283203125005],[-6.198681640624983,58.36328125000003]]],[[[-3.109667968749932,58.515478515625034],[-3.212353515624983,58.32124023437501],[-3.99003906249996,57.95903320312502],[-4.035595703124926,57.85200195312498],[-3.857128906249983,57.81855468750001],[-4.134521484375,57.57773437500006],[-3.402783203124955,57.708251953125],[-2.074072265624977,57.70239257812506],[-1.780664062499994,57.474023437499966],[-2.592675781249937,56.56157226562499],[-3.309960937499966,56.36347656250004],[-2.885156249999937,56.397509765625045],[-2.674267578124955,56.25341796875],[-3.362255859374955,56.02763671875002],[-3.789062499999972,56.09521484375],[-3.048730468749937,55.951953125000045],[-2.599316406249955,56.02729492187501],[-2.14707031249992,55.90297851562502],[-1.655371093749949,55.57036132812502],[-1.232421874999943,54.703710937500034],[-0.084375,54.118066406249994],[-0.20556640625,54.021728515625],[0.115332031250006,53.609277343749994],[-0.270019531249972,53.73676757812504],[-0.659912109375,53.72402343750002],[-0.293701171875,53.69233398437504],[0.270996093750028,53.33549804687499],[0.355761718750045,53.15996093750002],[0.0458984375,52.90561523437498],[0.279785156250028,52.80869140625006],[0.55878906250004,52.96694335937505],[1.05556640625008,52.95898437500003],[1.656738281249972,52.753710937500045],[1.74658203125,52.46899414062503],[1.59140625,52.11977539062502],[1.232421875000057,51.97124023437496],[1.188476562500057,51.803369140624966],[0.752246093750017,51.729589843750034],[0.890917968750017,51.571435546874966],[0.42451171875004,51.465625],[1.414941406250023,51.36328125],[1.397558593750034,51.18203125000002],[0.960156250000011,50.92587890624998],[0.299707031249994,50.775976562500006],[-0.785253906249949,50.76542968749999],[-1.416455078124955,50.896875],[-1.334472656249943,50.82080078124997],[-1.516748046874937,50.747460937499966],[-2.031054687499932,50.72539062499999],[-2.035839843749926,50.603076171875045],[-2.999414062499937,50.71660156249999],[-3.40458984374996,50.63242187499998],[-3.679785156250006,50.239941406249955],[-4.194580078124972,50.39331054687503],[-4.727978515624926,50.29047851562504],[-5.11850585937492,50.038330078125],[-5.622119140624932,50.05068359375002],[-4.188183593749926,51.18852539062502],[-3.135986328124972,51.20502929687501],[-2.433056640624926,51.74072265625],[-3.293115234374994,51.390429687500045],[-3.890771484374994,51.591650390625006],[-4.234570312499955,51.56909179687503],[-4.091015624999926,51.65991210937506],[-4.38627929687496,51.74106445312506],[-4.902294921874926,51.626269531250045],[-5.168359374999937,51.74072265625],[-5.183349609374972,51.94965820312501],[-4.217724609374983,52.277441406250006],[-3.980322265624949,52.54174804687503],[-4.101464843750023,52.915478515624955],[-4.683056640624926,52.80615234374997],[-4.268554687499943,53.14453125],[-3.427734374999972,53.34067382812498],[-3.097558593749937,53.260302734375045],[-3.064746093749932,53.426855468750034],[-2.74951171875,53.310205078124994],[-3.064599609374994,53.512841796874966],[-2.84648437499996,54.135302734375045],[-3.165966796874955,54.12792968750006],[-3.56938476562496,54.46757812499996],[-3.464599609374943,54.77309570312505],[-3.036230468749977,54.95307617187501],[-3.550439453124937,54.94741210937502],[-3.957910156249994,54.780957031249955],[-4.818066406249983,54.84614257812501],[-4.911230468749949,54.68945312500006],[-5.032324218749949,54.76137695312505],[-5.172705078124949,54.98588867187496],[-4.676757812499972,55.50131835937498],[-4.871679687499977,55.87392578125005],[-4.58408203124992,55.93867187500001],[-4.844091796874949,56.05117187499999],[-4.80029296875,56.158349609374994],[-5.228222656249983,55.886328125],[-5.084326171874977,56.197460937499955],[-5.41044921874996,55.995361328125],[-5.55644531249996,55.389599609374955],[-5.730664062499926,55.33413085937502],[-5.504492187499949,55.80239257812502],[-5.609570312499955,56.055273437500034],[-5.188378906249937,56.75805664062503],[-5.652441406249977,56.531982421875],[-6.133691406249966,56.706689453124966],[-5.730615234374994,56.853076171875045],[-5.86142578124992,56.902685546875006],[-5.561914062499994,57.23271484375002],[-5.794921874999972,57.37880859375002],[-5.581787109374972,57.546777343749966],[-5.744921874999989,57.668310546875034],[-5.608349609374955,57.88134765625],[-5.157226562499972,57.88134765625],[-5.413183593750006,58.06972656250002],[-5.338281250000023,58.23872070312498],[-5.008300781250028,58.262646484374955],[-5.016748046874966,58.566552734374966],[-4.433251953124937,58.51284179687505],[-3.25913085937492,58.65],[-3.053076171874949,58.63481445312502],[-3.109667968749932,58.515478515625034]]],[[[-3.057421874999932,59.02963867187498],[-2.793017578124989,58.906933593749955],[-3.331640624999949,58.97124023437499],[-3.31035156249996,59.13081054687498],[-3.057421874999932,59.02963867187498]]],[[[-1.30810546875,60.5375],[-1.052441406249955,60.44448242187502],[-1.299462890624994,59.87866210937503],[-1.290917968749937,60.153466796874966],[-1.663769531249983,60.282519531250074],[-1.374609374999949,60.33291015625002],[-1.571777343749972,60.494433593750074],[-1.363964843750011,60.60957031249998],[-1.30810546875,60.5375]]]]},"properties":{"name":"United Kingdom","childNum":14,"cp":[-2.5830348,54.4598409]}},{"geometry":{"type":"Polygon","coordinates":[[[46.30546875000002,41.507714843749994],[46.61894531250002,41.34375],[46.67255859375001,41.28681640625],[46.66240234375002,41.245507812499994],[46.62636718750002,41.15966796875],[46.534375,41.08857421875],[46.43095703125002,41.077050781249994],[46.086523437500006,41.183837890625],[45.28095703125001,41.449560546875],[45.21718750000002,41.423193359375],[45.00136718750002,41.290966796875],[44.97587890625002,41.277490234374994],[44.81132812500002,41.259375],[44.077246093750006,41.182519531249994],[43.43339843750002,41.155517578125],[43.20546875000002,41.199169921875],[43.15283203125,41.23642578125],[43.14101562500002,41.26484375],[43.17128906250002,41.287939453125],[43.149023437500006,41.30712890625],[43.05712890625,41.352832031249996],[42.90673828125,41.466845703124996],[42.82167968750002,41.4923828125],[42.78789062500002,41.563720703125],[42.75410156250001,41.57890625],[42.68242187500002,41.585742187499996],[42.60683593750002,41.57880859375],[42.590429687500006,41.57070312499999],[42.5673828125,41.55927734375],[42.46640625,41.43984375],[41.92578125,41.495654296874996],[41.82353515625002,41.432373046875],[41.779394531250006,41.44052734375],[41.701757812500006,41.471582031249994],[41.57656250000002,41.497314453125],[41.51005859375002,41.517480468749994],[41.701757812500006,41.705419921875],[41.76298828125002,41.970019531249996],[41.48876953125,42.659326171874994],[40.83662109375001,43.0634765625],[40.46210937500001,43.145703125],[39.97832031250002,43.419824218749994],[40.02373046875002,43.48486328125],[40.084570312500006,43.553125],[40.648046875,43.53388671875],[40.941992187500006,43.41806640625],[41.083105468750006,43.374462890625],[41.35820312500002,43.333398437499994],[41.46074218750002,43.276318359375],[41.58056640625,43.21923828125],[42.76064453125002,43.169580078124994],[42.99160156250002,43.09150390625],[43.00019531250001,43.049658203125],[43.08916015625002,42.9890625],[43.55781250000001,42.844482421875],[43.623046875,42.80771484375],[43.78261718750002,42.747021484375],[43.79873046875002,42.727783203125],[43.79541015625,42.702978515625],[43.74990234375002,42.657519531249996],[43.738378906250006,42.616992187499996],[43.759863281250006,42.59384765625],[43.82597656250002,42.571533203125],[43.95742187500002,42.566552734374994],[44.00468750000002,42.595605468749994],[44.10273437500001,42.616357421874994],[44.32949218750002,42.70351562499999],[44.505859375,42.7486328125],[44.77109375,42.616796875],[44.85048828125002,42.746826171875],[44.87099609375002,42.756396484374996],[44.943359375,42.730273437499996],[45.07158203125002,42.694140625],[45.160253906250006,42.675],[45.34375,42.52978515625],[45.56289062500002,42.5357421875],[45.70527343750001,42.498095703124996],[45.7275390625,42.475048828125],[45.63427734375,42.234716796875],[45.63857421875002,42.205078125],[46.21269531250002,41.989892578124994],[46.42988281250001,41.890966796875],[46.18427734375001,41.7021484375],[46.30546875000002,41.507714843749994]]]},"properties":{"name":"Georgia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-0.068603515625,11.115625],[0.009423828125023,11.02099609375],[-0.08632812499999,10.673046875],[0.380859375,10.291845703124991],[0.264550781250023,9.644726562499997],[0.342578125000017,9.604150390624994],[0.2333984375,9.463525390624994],[0.525683593750017,9.398486328124989],[0.48876953125,8.851464843749994],[0.37255859375,8.75927734375],[0.686328125000017,8.354882812499994],[0.5,7.546875],[0.634765625,7.353662109374994],[0.525585937500011,6.850927734374991],[0.736914062500006,6.452587890624997],[1.187207031250011,6.089404296874989],[0.94970703125,5.810253906249997],[0.259667968750023,5.75732421875],[-2.001855468749994,4.762451171875],[-3.114013671875,5.088671874999989],[-2.815673828125,5.153027343749997],[-2.754980468749977,5.432519531249994],[-2.793652343749983,5.60009765625],[-2.998291015625,5.71132812499999],[-3.227148437499977,6.749121093749991],[-2.959082031249977,7.454541015624997],[-2.789746093749983,7.931933593749989],[-2.668847656249994,8.022216796875],[-2.613378906249977,8.046679687499989],[-2.600976562499994,8.082226562499997],[-2.619970703124977,8.12109375],[-2.61171875,8.147558593749991],[-2.538281249999983,8.171630859375],[-2.505859375,8.208740234375],[-2.600390624999989,8.800439453124994],[-2.649218749999989,8.956591796874989],[-2.689892578124983,9.025097656249997],[-2.746923828124977,9.045117187499997],[-2.705761718749983,9.351367187499989],[-2.695849609374989,9.481347656249994],[-2.706201171874994,9.533935546875],[-2.765966796874977,9.658056640624991],[-2.780517578125,9.745849609375],[-2.791162109374994,10.432421874999989],[-2.914892578124977,10.592333984374989],[-2.829931640624977,10.998388671874991],[-1.04248046875,11.010058593749989],[-0.627148437499983,10.927392578124994],[-0.299462890624994,11.166894531249994],[-0.068603515625,11.115625]]]},"properties":{"name":"Ghana","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-11.389404296875,12.404394531249991],[-11.502197265625,12.198632812499994],[-11.30517578125,12.015429687499989],[-10.933203124999977,12.205175781249991],[-10.709228515625,11.898730468749989],[-10.274853515624983,12.212646484375],[-9.754003906249977,12.029931640624994],[-9.358105468749983,12.255419921874989],[-9.395361328124977,12.464648437499989],[-9.043066406249977,12.40234375],[-8.818310546874983,11.922509765624994],[-8.822021484375,11.673242187499994],[-8.398535156249977,11.366552734374991],[-8.666699218749983,11.009472656249997],[-8.33740234375,10.990625],[-8.266650390624989,10.485986328124994],[-8.007275390624983,10.321875],[-7.990625,10.1625],[-8.155175781249994,9.973193359374989],[-8.136962890625,9.49570312499999],[-7.896191406249983,9.415869140624991],[-7.918066406249977,9.188525390624989],[-7.839404296874989,9.151611328125],[-7.7998046875,9.115039062499989],[-7.777978515624994,9.080859374999989],[-7.902099609375,9.01708984375],[-7.938183593749983,8.979785156249989],[-7.950976562499989,8.786816406249997],[-7.719580078124977,8.643017578124997],[-7.696093749999989,8.375585937499991],[-7.823583984374977,8.467675781249994],[-7.953125,8.477734375],[-8.236962890624994,8.455664062499991],[-8.244140625,8.407910156249997],[-8.256103515625,8.253710937499989],[-8.217138671874977,8.219677734374997],[-8.140625,8.181445312499989],[-8.048583984375,8.169726562499989],[-8.009863281249977,8.07851562499999],[-8.126855468749994,7.867724609374989],[-8.115429687499983,7.7607421875],[-8.205957031249994,7.59023437499999],[-8.231884765624983,7.556738281249991],[-8.429980468749989,7.601855468749989],[-8.486425781249977,7.558496093749994],[-8.659765624999977,7.688378906249994],[-8.8896484375,7.2626953125],[-9.11757812499999,7.215917968749991],[-9.463818359374983,7.415869140624991],[-9.369140625,7.703808593749997],[-9.518261718749983,8.34609375],[-9.781982421875,8.537695312499991],[-10.064355468749994,8.429882812499997],[-10.147412109374983,8.519726562499997],[-10.233056640624994,8.488818359374989],[-10.283203125,8.485156249999989],[-10.360058593749983,8.495507812499994],[-10.394433593749994,8.48095703125],[-10.496435546874977,8.362109374999989],[-10.557714843749977,8.315673828125],[-10.686962890624983,8.321679687499994],[-10.712109374999983,8.335253906249989],[-10.677343749999977,8.400585937499997],[-10.500537109374989,8.687548828124989],[-10.615966796875,9.059179687499991],[-10.726855468749989,9.081689453124994],[-10.747021484374983,9.095263671874989],[-10.749951171874983,9.122363281249989],[-10.687646484374994,9.261132812499994],[-10.682714843749977,9.289355468749989],[-10.758593749999989,9.385351562499991],[-11.047460937499977,9.786328125],[-11.180859374999983,9.925341796874989],[-11.205664062499977,9.977734375],[-11.273632812499983,9.996533203124997],[-11.911083984374983,9.993017578124991],[-12.142333984375,9.87539062499999],[-12.427978515625,9.898144531249997],[-12.557861328125,9.704980468749994],[-12.755859375,9.373583984374989],[-12.958789062499989,9.263330078124994],[-13.077294921874994,9.069628906249989],[-13.292675781249983,9.04921875],[-13.436279296875,9.4203125],[-13.691357421874983,9.535791015624994],[-13.689794921874977,9.927783203124989],[-13.820117187499989,9.88720703125],[-14.045019531249977,10.141259765624994],[-14.426904296874994,10.248339843749989],[-14.609570312499983,10.549853515624989],[-14.593505859375,10.766699218749991],[-14.677343749999977,10.68896484375],[-14.775927734374989,10.931640625],[-14.88671875,10.968066406249989],[-14.975,10.803417968749997],[-15.051220703124983,10.834570312499991],[-15.043017578124989,10.940136718749997],[-14.9990234375,10.9921875],[-14.944433593749977,11.072167968749994],[-14.779296875,11.405517578125],[-14.720263671874989,11.48193359375],[-14.682958984374977,11.508496093749997],[-14.604785156249989,11.511621093749994],[-14.452441406249989,11.556201171874989],[-14.327832031249983,11.629785156249994],[-14.265576171874983,11.659912109375],[-14.122314453125,11.65195312499999],[-13.953222656249977,11.664599609374989],[-13.732763671874977,11.736035156249997],[-13.730664062499983,11.959863281249994],[-13.737988281249983,12.009667968749994],[-13.816308593749994,12.054492187499989],[-13.948876953124994,12.178173828124997],[-13.8875,12.246875],[-13.759765625,12.262353515624994],[-13.673535156249983,12.478515625],[-13.732617187499983,12.592822265624989],[-13.729248046875,12.673925781249991],[-13.082910156249994,12.633544921875],[-13.061279296875,12.489990234375],[-12.930712890624989,12.532275390624989],[-12.399072265624994,12.340087890625],[-11.389404296875,12.404394531249991]]]},"properties":{"name":"Guinea","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-16.763330078124994,13.064160156249997],[-16.824804687499977,13.341064453125],[-16.669335937499994,13.475],[-16.41337890624999,13.269726562499997],[-15.427490234375,13.46835937499999],[-16.135449218749983,13.4482421875],[-16.351806640625,13.34335937499999],[-16.56230468749999,13.587304687499994],[-15.509667968749994,13.586230468750003],[-15.426855468749977,13.727001953124997],[-15.108349609374983,13.81210937499999],[-14.405468749999983,13.503710937500003],[-13.977392578124977,13.54345703125],[-13.826708984374989,13.4078125],[-14.246777343749983,13.23583984375],[-15.151123046875,13.556494140624991],[-15.286230468749977,13.39599609375],[-15.814404296874983,13.325146484374997],[-15.834277343749989,13.156445312499997],[-16.648779296874977,13.154150390624991],[-16.763330078124994,13.064160156249997]]]},"properties":{"name":"Gambia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-15.895898437499966,11.082470703124969],[-15.963964843749977,11.05898437499998],[-15.937695312499955,11.192773437499966],[-15.895898437499966,11.082470703124969]]],[[[-16.11450195312503,11.059423828124977],[-16.236425781249977,11.113427734374966],[-16.06733398437501,11.197216796874983],[-16.11450195312503,11.059423828124977]]],[[[-15.901806640624926,11.4658203125],[-16.02319335937497,11.477148437499991],[-15.964550781249926,11.59829101562498],[-15.901806640624926,11.4658203125]]],[[[-15.986425781249949,11.882031249999969],[-16.038330078124943,11.759716796875011],[-16.15244140624992,11.876806640624963],[-15.986425781249949,11.882031249999969]]],[[[-13.759765625,12.262353515624994],[-13.8875,12.246875],[-13.948876953124966,12.178173828124997],[-13.737988281250011,12.009667968750037],[-13.730664062499926,11.959863281250009],[-13.73276367187492,11.736035156249983],[-13.953222656249977,11.664599609374989],[-14.265576171874926,11.659912109375014],[-14.327832031250011,11.629785156250009],[-14.452441406249989,11.556201171875017],[-14.604785156249932,11.511621093749994],[-14.682958984374949,11.508496093749983],[-14.720263671875017,11.481933593749986],[-14.779296874999972,11.405517578125057],[-14.944433593749949,11.072167968749994],[-14.999023437499972,10.992187500000043],[-15.04301757812496,10.940136718750011],[-15.09375,11.011035156249974],[-15.054589843749994,11.141943359375006],[-15.222119140624926,11.030908203125037],[-15.216699218749994,11.15625],[-15.39311523437496,11.217236328124983],[-15.354687499999955,11.396337890624963],[-15.479492187499972,11.410302734374966],[-15.072656249999937,11.597802734374966],[-15.230371093750023,11.686767578124972],[-15.412988281249994,11.615234374999972],[-15.501904296875011,11.723779296874966],[-15.467187499999937,11.842822265624974],[-15.078271484374937,11.968994140625014],[-15.941748046875006,11.786621093749986],[-15.92021484374996,11.93779296874996],[-16.138427734375,11.917285156250045],[-16.32807617187501,12.051611328124963],[-16.244580078124955,12.237109375],[-16.43681640624996,12.204150390625045],[-16.711816406249937,12.354833984375006],[-16.656933593749955,12.364355468749991],[-16.52133789062495,12.348632812499986],[-16.41630859374996,12.367675781250057],[-16.24150390624996,12.443310546875011],[-16.144189453124937,12.457421875000037],[-15.839550781249955,12.437890624999966],[-15.57480468749992,12.490380859375009],[-15.19609375,12.679931640624986],[-14.3492187499999,12.67641601562498],[-14.064843749999966,12.675292968750014],[-13.729248046875,12.673925781250006],[-13.732617187499983,12.592822265625003],[-13.673535156249926,12.478515624999986],[-13.759765625,12.262353515624994]]]]},"properties":{"name":"Guinea-Bissau","childNum":5}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[11.332324218750017,1.528369140624989],[11.335351562500023,0.999707031250011],[9.906738281250028,0.960107421875037],[9.80390625000004,0.998730468749997],[9.788671875000034,1.025683593749974],[9.760546874999989,1.074707031250014],[9.704589843750057,1.079980468750023],[9.676464843750011,1.074707031250014],[9.636132812500051,1.046679687499989],[9.590820312500057,1.031982421875014],[9.599414062500045,1.054443359374972],[9.509863281250006,1.114794921875017],[9.385937500000068,1.13925781250002],[9.807031250000051,1.927490234375028],[9.77968750000008,2.068212890625006],[9.800781250000028,2.304443359375],[9.826171875000057,2.297802734374969],[9.8369140625,2.242382812500054],[9.870117187500028,2.21328125],[9.979882812499994,2.167773437500045],[10.790917968750023,2.167578125],[11.096582031250051,2.167480468749986],[11.328710937500006,2.167431640624969],[11.332324218750017,1.528369140624989]]],[[[8.735742187500023,3.758300781249972],[8.910058593750023,3.758203125000051],[8.946093750000074,3.627539062499977],[8.704003906250051,3.223632812500028],[8.474902343749989,3.264648437500043],[8.464648437500045,3.450585937499994],[8.735742187500023,3.758300781249972]]]]},"properties":{"name":"Eq. Guinea","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[23.852246093749983,35.53544921874999],[24.166015625000057,35.59521484375],[24.108984374999977,35.49580078124998],[24.35400390625,35.359472656250034],[25.73017578125004,35.34858398437501],[25.791308593750074,35.122851562500045],[26.32021484375008,35.315136718749955],[26.165625,35.018603515625045],[24.79980468750003,34.93447265625002],[24.70888671875008,35.08906250000001],[24.463671875000045,35.160351562499955],[23.59277343749997,35.257226562499966],[23.56982421875,35.534765625000034],[23.67265624999999,35.51391601562506],[23.736914062500034,35.65551757812503],[23.852246093749983,35.53544921874999]]],[[[27.17607421874999,35.46528320312498],[27.070703125000023,35.59775390624998],[27.22314453125,35.820458984374966],[27.17607421874999,35.46528320312498]]],[[[23.053808593750034,36.18979492187498],[22.91083984375004,36.220996093750045],[22.950488281250045,36.38393554687502],[23.053808593750034,36.18979492187498]]],[[[27.84277343750003,35.929296875000034],[27.71552734375004,35.95732421874996],[27.71630859375003,36.17158203125001],[28.23183593750005,36.43364257812502],[28.087792968750023,36.06533203125002],[27.84277343750003,35.929296875000034]]],[[[25.48242187500003,36.39262695312502],[25.37050781250005,36.35893554687499],[25.408984375000074,36.473730468750006],[25.48242187500003,36.39262695312502]]],[[[26.46064453125001,36.58540039062501],[26.270019531250057,36.54692382812499],[26.370019531250023,36.63857421875002],[26.46064453125001,36.58540039062501]]],[[[26.94960937500005,36.72709960937502],[27.214941406250006,36.89863281249998],[27.352148437499977,36.86889648437506],[26.94960937500005,36.72709960937502]]],[[[25.859375,36.79042968750005],[25.74316406250003,36.78974609374998],[26.06445312500003,36.90273437500002],[25.859375,36.79042968750005]]],[[[27.01972656250004,36.95903320312502],[26.91992187500003,36.94521484375005],[26.88867187499997,37.087255859375034],[27.01972656250004,36.95903320312502]]],[[[25.278906250000034,37.06840820312502],[25.105468750000057,37.034960937500045],[25.235058593750068,37.148535156250006],[25.278906250000034,37.06840820312502]]],[[[25.54589843749997,36.96757812499999],[25.45673828125001,36.9296875],[25.361914062500063,37.07041015624998],[25.52529296875005,37.19638671875006],[25.54589843749997,36.96757812499999]]],[[[24.523535156250063,37.125097656250006],[24.42480468750003,37.131982421874994],[24.48378906250005,37.21020507812503],[24.523535156250063,37.125097656250006]]],[[[25.402734375000023,37.419140624999955],[25.312695312500068,37.48930664062496],[25.462988281250063,37.47109375],[25.402734375000023,37.419140624999955]]],[[[26.029296875000057,37.529394531250034],[26.086328125000023,37.63491210937505],[26.351367187500017,37.67431640625],[26.029296875000057,37.529394531250034]]],[[[25.255859375000057,37.59960937500006],[25.156347656250034,37.54506835937505],[24.99648437500005,37.676904296874994],[25.255859375000057,37.59960937500006]]],[[[24.35595703125003,37.57685546875004],[24.28896484375005,37.52827148437498],[24.37910156250004,37.682714843750006],[24.35595703125003,37.57685546875004]]],[[[26.82441406250004,37.81142578125005],[27.05507812500005,37.70927734375002],[26.84492187500004,37.64472656250001],[26.58105468750003,37.723730468750034],[26.82441406250004,37.81142578125005]]],[[[20.888476562500074,37.805371093749955],[20.993945312500074,37.70800781250003],[20.81855468750004,37.66474609375001],[20.61953125000008,37.855029296875045],[20.691503906250006,37.929541015625034],[20.888476562500074,37.805371093749955]]],[[[24.991699218750057,37.75961914062506],[24.962207031250074,37.69238281250003],[24.7001953125,37.961669921875],[24.956347656250045,37.90478515625006],[24.991699218750057,37.75961914062506]]],[[[20.61230468750003,38.38334960937502],[20.761328125,38.07055664062497],[20.523535156250063,38.106640624999955],[20.4521484375,38.23417968750002],[20.35253906250003,38.179882812499955],[20.563183593750068,38.474951171875034],[20.61230468750003,38.38334960937502]]],[[[26.094042968750017,38.21806640625002],[25.891894531250045,38.243310546874994],[25.991406250000068,38.353515625],[25.846093750000023,38.57402343749996],[26.16035156250001,38.54072265625001],[26.094042968750017,38.21806640625002]]],[[[20.68671875000001,38.60869140625002],[20.5546875,38.58256835937502],[20.69414062499999,38.84423828125003],[20.68671875000001,38.60869140625002]]],[[[24.67470703125005,38.80922851562502],[24.54101562499997,38.788671875],[24.485644531250074,38.980273437500045],[24.67470703125005,38.80922851562502]]],[[[23.41542968750008,38.958642578124994],[23.525,38.8134765625],[24.127539062500034,38.648486328125045],[24.27578125000005,38.22001953124996],[24.58837890625003,38.12397460937504],[24.53652343750005,37.97973632812506],[24.212011718750006,38.11752929687506],[24.040136718750006,38.389990234375034],[23.65078125000008,38.44306640625001],[23.25214843750004,38.80122070312498],[22.870312500000068,38.870507812499966],[23.258203125000023,39.03134765625006],[23.41542968750008,38.958642578124994]]],[[[26.41015625000003,39.329443359375034],[26.59560546875005,39.04882812499997],[26.488671875000023,39.074804687500034],[26.46875,38.97280273437502],[26.10791015625,39.08105468749997],[26.273144531249983,39.19755859374999],[26.072363281250034,39.095605468749994],[25.84414062500008,39.20004882812506],[26.16542968750008,39.37353515625006],[26.41015625000003,39.329443359375034]]],[[[20.077929687500045,39.432714843750034],[19.883984375000068,39.461523437500034],[19.646484375,39.76708984375003],[19.926074218750017,39.773730468750045],[19.8466796875,39.66811523437502],[20.077929687500045,39.432714843750034]]],[[[25.43769531250004,39.98330078125002],[25.357031250000063,39.80810546875003],[25.24941406250005,39.89414062500006],[25.06220703125004,39.852392578125006],[25.05800781250005,39.999658203124966],[25.43769531250004,39.98330078125002]]],[[[24.774218750000074,40.615185546874955],[24.515527343750023,40.64702148437496],[24.623339843750045,40.79291992187501],[24.774218750000074,40.615185546874955]]],[[[26.03896484375008,40.726757812499955],[25.10449218750003,40.994726562500006],[24.792968750000057,40.857519531250034],[24.47705078125,40.94775390625003],[24.082324218750074,40.72407226562504],[23.762792968750063,40.74780273437497],[23.866796875000034,40.41855468750006],[24.21279296875008,40.32778320312502],[24.343359375000034,40.14770507812503],[23.913183593750063,40.35878906250005],[23.72792968750008,40.329736328124994],[23.96748046875001,40.11455078125002],[23.947070312500045,39.96557617187506],[23.66455078125003,40.22382812499998],[23.42626953125,40.26396484374999],[23.62734375,39.92407226562503],[22.896484375000057,40.39990234374997],[22.92226562500008,40.59086914062499],[22.629492187500034,40.49555664062501],[22.59218750000005,40.03691406250002],[23.327734374999977,39.174902343750006],[23.15468750000008,39.10146484375005],[23.16171875,39.25776367187501],[22.92138671874997,39.30634765625004],[22.886035156250074,39.16997070312496],[23.066699218750017,39.03793945312498],[22.569140625000074,38.86748046874999],[23.25292968750003,38.66123046875006],[23.68398437500008,38.35244140625002],[23.96699218750001,38.275],[24.024511718750006,38.139794921874966],[24.01972656250001,37.67773437499997],[23.50175781249999,38.03486328124998],[23.03632812500004,37.87836914062501],[23.48925781250003,37.440185546875],[23.16152343750005,37.333837890625006],[22.725390625000017,37.542138671874966],[23.16015625000003,36.448095703125034],[22.717187500000023,36.79394531250006],[22.42773437500003,36.47578124999998],[22.08046875000008,37.028955078124966],[21.95556640625003,36.990087890625034],[21.892382812500045,36.73730468749997],[21.58291015625005,37.080957031249994],[21.678906250000068,37.38720703125003],[21.124707031250068,37.89160156250003],[21.40371093750005,38.19667968750002],[21.658398437500068,38.17509765624996],[21.82470703125003,38.328125],[22.846386718750068,37.96757812499996],[23.18349609375008,38.133691406249966],[22.421679687500045,38.43852539062499],[22.319921875,38.35683593750005],[21.96533203124997,38.412451171875006],[21.47255859375005,38.321386718750006],[21.3310546875,38.48730468749997],[21.303320312500034,38.373925781249966],[21.113183593750023,38.38466796875002],[20.768554687500057,38.874414062499966],[21.111621093750045,38.89628906249999],[21.11835937500001,39.029980468749955],[20.71337890625,39.03515625000003],[20.300781250000057,39.32709960937501],[20.19140625,39.545800781249966],[20.099414062500074,39.641259765624966],[20.001269531250074,39.70942382812501],[20.022558593750063,39.710693359375],[20.059765624999983,39.69912109375002],[20.13105468750004,39.66162109375003],[20.206835937500017,39.65351562499998],[20.382421875,39.802636718749994],[20.381640625000017,39.84179687500006],[20.311328125000074,39.95078125000006],[20.311132812500034,39.97944335937504],[20.338476562500006,39.991064453125006],[20.38369140625008,40.0171875],[20.408007812500074,40.049462890624994],[20.4560546875,40.065576171874994],[20.657421875000068,40.11738281249998],[20.881640625000017,40.467919921874994],[21.030859375000034,40.62246093750002],[20.95576171875001,40.775292968749994],[20.96425781250005,40.84990234374999],[21.575781250000034,40.86894531249996],[21.627539062500006,40.896337890625034],[21.77949218750004,40.95043945312506],[21.99335937500001,41.13095703125006],[22.18447265625005,41.15864257812501],[22.49355468750005,41.118505859375006],[22.603613281249977,41.14018554687499],[22.724804687500068,41.17851562499999],[22.78388671875004,41.33198242187498],[23.155957031250068,41.32207031249999],[23.239843750000034,41.38496093750001],[23.372070312500057,41.3896484375],[23.433398437500017,41.39873046874999],[23.53583984375001,41.38603515624999],[23.63515625000008,41.386767578125045],[24.011328124999977,41.460058593750034],[24.03291015625004,41.469091796875034],[24.05605468750005,41.527246093749966],[24.38671875,41.523535156250006],[24.487890625,41.55522460937499],[24.518261718750068,41.55253906249996],[24.773730468750045,41.356103515624994],[24.99355468750008,41.36499023437503],[25.133398437500063,41.31577148437506],[25.251171875000068,41.243554687499994],[25.923339843750057,41.311914062499966],[26.066406250000057,41.35068359375006],[26.135351562499977,41.3857421875],[26.155175781250023,41.43486328124999],[26.143554687500057,41.52153320312496],[26.085546875000063,41.704150390625045],[26.10742187499997,41.72568359374998],[26.20058593750005,41.74379882812502],[26.320898437500034,41.716552734375],[26.581347656250074,41.60126953125004],[26.62490234375008,41.401757812499994],[26.330664062499977,41.23876953125],[26.331054687500057,40.954492187499994],[26.03896484375008,40.726757812499955]]]]},"properties":{"name":"Greece","childNum":29}},{"geometry":{"type":"Polygon","coordinates":[[[-61.71552734375,12.012646484374997],[-61.714990234374994,12.18515625],[-61.60703125,12.223291015624994],[-61.71552734375,12.012646484374997]]]},"properties":{"name":"Grenada","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-46.266699218750006,60.781396484374994],[-46.381542968749955,60.66030273437502],[-46.7880859375,60.758398437500034],[-46.205224609374994,60.943505859374994],[-46.266699218750006,60.781396484374994]]],[[[-37.03125,65.53198242187497],[-37.23842773437494,65.60986328125003],[-37.047509765624966,65.722265625],[-37.03125,65.53198242187497]]],[[[-51.01367187499994,69.55249023437497],[-51.202050781249966,69.525],[-51.33886718749994,69.73203125000006],[-51.094580078125006,69.92416992187503],[-50.67900390624999,69.84853515625],[-51.01367187499994,69.55249023437497]]],[[[-52.73115234375001,69.94472656250005],[-52.0453125,69.8072265625],[-51.90019531249999,69.60478515625007],[-53.57841796874996,69.25664062500002],[-54.18271484374995,69.40351562500001],[-53.65830078124998,69.46513671875005],[-53.825,69.54033203124999],[-54.91914062499998,69.71362304687503],[-54.78789062499996,69.94985351562502],[-54.322607421875034,69.94189453125],[-54.83076171875001,70.13295898437502],[-54.37163085937499,70.31728515625],[-53.296728515625034,70.20537109375002],[-52.73115234375001,69.94472656250005]]],[[[-51.67514648437498,70.855224609375],[-52.11938476562497,70.87065429687502],[-52.10673828124999,70.96801757812497],[-51.67514648437498,70.855224609375]]],[[[-25.43232421875001,70.92133789062495],[-25.402246093749994,70.65268554687503],[-26.217871093749977,70.45405273437498],[-26.604687499999926,70.55336914062497],[-28.03525390624995,70.48681640625],[-27.61723632812496,70.91376953125001],[-26.621777343749955,70.87563476562497],[-25.81889648437499,71.04365234375001],[-25.43232421875001,70.92133789062495]]],[[[-53.53520507812493,71.04082031250005],[-53.9578125,71.12773437499999],[-53.58447265625003,71.29707031249995],[-53.53520507812493,71.04082031250005]]],[[[-55.01689453124999,72.79111328125003],[-55.56660156249998,72.56435546875002],[-56.214794921874955,72.71918945312495],[-55.01689453124999,72.79111328125003]]],[[[-18.000537109374932,75.40732421875003],[-17.391992187499937,75.03691406250007],[-18.670800781249966,75.00166015624998],[-18.856054687499977,75.31914062500002],[-18.000537109374932,75.40732421875003]]],[[[-18.58261718749995,76.042333984375],[-19.085351562499966,76.43037109375001],[-18.882470703124937,76.70380859375001],[-18.58261718749995,76.042333984375]]],[[[-71.667333984375,77.32529296874998],[-72.48955078124999,77.43164062499997],[-71.43344726562495,77.394384765625],[-71.667333984375,77.32529296874998]]],[[[-17.6125,79.82587890624995],[-18.662011718749966,79.72001953125005],[-19.13828125,79.85234375000002],[-17.98291015625,80.05517578125003],[-17.471386718749955,80.02871093749997],[-17.6125,79.82587890624995]]],[[[-44.86455078124999,82.08364257812502],[-46.75190429687501,82.34819335937502],[-47.27226562499996,82.65693359375001],[-46.399169921875,82.692138671875],[-44.91748046875003,82.48051757812505],[-44.86455078124999,82.08364257812502]]],[[[-29.952880859375,83.56484374999997],[-25.795068359374994,83.26098632812497],[-31.99267578125,83.0853515625],[-32.03271484374997,82.98344726562502],[-25.12338867187495,83.15961914062501],[-24.47031249999995,82.87739257812498],[-21.582519531249943,82.6341796875],[-23.118066406249966,82.32470703125003],[-29.57939453124996,82.16118164062502],[-29.887402343749983,82.05483398437502],[-29.543847656249994,81.93994140624997],[-27.839501953124966,82.04887695312505],[-25.148828124999966,82.001123046875],[-24.293066406249977,81.70097656250005],[-23.103710937499983,82.01181640625003],[-21.337988281249977,82.068701171875],[-21.230517578125017,81.60136718749999],[-23.11772460937499,80.77817382812498],[-19.62993164062499,81.63989257812503],[-17.456054687499943,81.397705078125],[-16.12070312499995,81.776611328125],[-14.241992187500017,81.81386718750005],[-12.434423828125006,81.68251953125002],[-11.430664062499972,81.45683593750005],[-13.126220703124972,81.08779296875],[-14.452343749999955,80.99311523437498],[-14.503564453124994,80.76328125000006],[-16.76059570312492,80.573388671875],[-15.937255859374972,80.42763671874997],[-16.48876953124997,80.25195312499997],[-18.070947265624994,80.17207031249995],[-19.429199218749943,80.25771484375],[-20.150146484375,80.01123046874997],[-18.99199218749996,79.17836914062502],[-21.133740234374926,78.65864257812501],[-21.729589843749977,77.70854492187499],[-20.862597656249932,77.91186523437503],[-19.490429687499983,77.71889648437497],[-19.46752929687503,77.56582031250005],[-20.162060546874926,77.68984375],[-20.680810546875023,77.61899414062503],[-20.23193359374997,77.36840820312497],[-19.30029296874997,77.22236328124995],[-18.442626953124943,77.259375],[-18.51030273437496,76.77817382812498],[-20.48671875,76.92080078125],[-21.614697265624926,76.68789062499997],[-22.18525390625001,76.79409179687502],[-22.609326171874983,76.70429687500004],[-21.877343749999966,76.57348632812503],[-21.488232421874926,76.271875],[-20.10361328124992,76.21909179687503],[-19.508984374999926,75.75751953124995],[-19.52636718750003,75.18022460937505],[-20.484960937500006,75.31425781249999],[-21.649316406249966,75.02343749999997],[-22.232861328124926,75.11972656249998],[-21.69511718749999,74.96445312500003],[-20.985791015624983,75.07436523437497],[-20.86157226562497,74.63593750000001],[-20.41708984374995,74.9751953125],[-19.98491210937499,74.9751953125],[-19.287011718750023,74.54638671875006],[-19.36914062499997,74.28403320312498],[-20.256445312499977,74.2828125],[-20.653125,74.13735351562502],[-21.954931640624977,74.24428710937497],[-21.942919921874932,74.56572265624999],[-22.32158203124999,74.30253906250002],[-22.134814453124932,73.99047851562503],[-20.36728515624992,73.8482421875],[-20.509667968749966,73.49287109375001],[-22.346875,73.26923828125001],[-23.23320312499999,73.39770507812497],[-24.157714843749943,73.76445312499999],[-24.67724609375,73.602197265625],[-25.521289062500017,73.85161132812499],[-24.79125976562497,73.51127929687502],[-26.062304687500017,73.25302734375],[-27.270410156250023,73.43627929687503],[-26.541845703125006,73.24897460937495],[-27.561621093750006,73.13847656250002],[-27.348046875000023,73.06782226562501],[-25.057031250000023,73.396484375],[-24.132666015625006,73.409375],[-22.036328124999955,72.91845703125006],[-22.29321289062497,72.11953125],[-24.06904296875001,72.49873046874998],[-24.629980468749977,73.03764648437499],[-26.657617187499966,72.71582031249997],[-24.81333007812492,72.90151367187497],[-24.65,72.58251953125],[-25.117871093749983,72.34697265625005],[-24.66684570312492,72.437353515625],[-21.959667968749955,71.74467773437502],[-22.479638671874937,71.38344726562497],[-22.417578125,71.24868164062505],[-22.29902343750001,71.43232421874998],[-21.75224609374999,71.47832031250002],[-21.522656249999926,70.52622070312503],[-22.38413085937492,70.46240234375],[-22.437011718749943,70.860009765625],[-22.690673828124943,70.43730468750002],[-23.327832031249983,70.45097656250007],[-23.97138671875001,70.64946289062499],[-24.562207031249926,71.22353515624997],[-25.885156249999966,71.571923828125],[-27.08720703124999,71.6265625],[-27.107031250000034,71.53266601562498],[-25.842724609374955,71.48017578124995],[-25.74223632812499,71.18359375],[-26.717919921874994,70.95048828125005],[-28.39843749999997,70.99291992187497],[-27.99218749999997,70.89521484374998],[-28.06987304687499,70.69902343750005],[-29.07207031249999,70.444970703125],[-26.621777343749955,70.46337890625],[-26.576806640625023,70.35708007812502],[-27.560839843749932,70.12446289062498],[-27.384179687500023,69.9916015625],[-27.027734374999966,70.20122070312499],[-25.529882812499977,70.35317382812502],[-23.66733398437495,70.139306640625],[-22.28447265624996,70.12583007812498],[-22.287060546874955,70.03339843749998],[-23.03364257812501,69.90083007812498],[-23.04956054687497,69.79272460937497],[-23.86572265624997,69.73671875000002],[-23.739404296874994,69.58862304687497],[-24.296679687500017,69.58554687500006],[-24.295556640624966,69.439306640625],[-25.188574218750006,69.26054687500002],[-25.092431640624937,69.16518554687502],[-25.697998046874943,68.889892578125],[-26.48291015624997,68.67592773437502],[-29.24951171874997,68.29877929687501],[-29.86850585937495,68.31157226562505],[-30.318115234375,68.19331054687501],[-30.72001953124999,68.25117187499998],[-30.610742187499994,68.11791992187503],[-30.97856445312499,68.06132812500005],[-32.32744140624999,68.43730468749999],[-32.16455078125,67.99111328125002],[-33.15698242187497,67.62670898437506],[-34.1982421875,66.65507812499999],[-35.18857421874995,66.25029296875002],[-35.86723632812502,66.44140624999997],[-35.630078124999926,66.13994140625002],[-36.37919921874996,65.830810546875],[-36.52724609375002,66.00771484375],[-36.665185546874966,65.79008789062507],[-37.06279296874996,65.87143554687503],[-37.410058593749994,65.65634765625],[-37.954785156249955,65.63359375000007],[-37.278710937499994,66.30439453124995],[-38.156640624999966,66.38559570312498],[-37.75234375000002,66.26152343750002],[-38.13994140625002,65.90351562499998],[-38.52036132812498,66.00966796875002],[-38.20336914062497,65.71171874999999],[-40.17353515624998,65.55615234375],[-39.57792968749996,65.34077148437501],[-39.937255859375,65.14160156250003],[-40.253125,65.04887695312505],[-41.08442382812501,65.10083007812497],[-40.966015624999955,64.86884765624995],[-40.655468749999926,64.91533203125002],[-40.18222656249998,64.47993164062495],[-40.78173828125,64.22177734375003],[-41.581005859374926,64.29833984375],[-41.03056640624996,64.12104492187504],[-40.61777343749998,64.13173828125],[-40.550390625000034,63.72524414062505],[-40.77519531249999,63.53364257812501],[-41.04873046875002,63.51381835937505],[-41.387890624999926,63.06186523437498],[-41.84448242187497,63.07026367187501],[-42.174511718749955,63.20878906249999],[-41.63447265624998,62.972460937500074],[-41.90898437499996,62.73710937499999],[-42.94165039062503,62.72021484375003],[-42.15297851562502,62.568457031250006],[-42.32148437499998,62.15273437500005],[-42.110205078125006,61.857226562500074],[-42.58530273437498,61.71748046875001],[-42.34736328125001,61.61743164062497],[-42.717041015625,60.767480468749994],[-43.04409179687502,60.523681640625],[-43.92270507812495,60.59536132812502],[-43.21298828124998,60.390673828125074],[-43.122900390625006,60.06123046875001],[-43.32011718749993,59.928125],[-43.95502929687498,60.025488281250006],[-43.65791015625001,59.85864257812503],[-43.90654296874996,59.815478515625045],[-44.11699218750002,59.83193359375002],[-44.06547851562499,59.92480468750003],[-44.412939453125006,59.922607421875],[-44.22436523437494,60.273535156250006],[-44.61328124999997,60.01665039062499],[-45.37924804687495,60.20292968750002],[-45.367773437500006,60.37294921875002],[-44.97470703124995,60.457226562499955],[-44.756738281249966,60.66459960937502],[-45.38051757812494,60.444921875],[-46.04663085937503,60.61572265625],[-46.141943359375006,60.776513671874994],[-45.87021484374998,61.21831054687502],[-46.87446289062501,60.81640625000003],[-48.180810546874966,60.76923828125001],[-47.77031249999999,60.99775390625001],[-48.386425781249926,61.004736328125034],[-48.42817382812501,61.18740234375002],[-48.92207031249998,61.27744140624998],[-49.28906249999997,61.58994140625006],[-49.380273437499994,61.89018554687502],[-48.82871093749998,62.0796875],[-49.62377929687494,61.99858398437499],[-49.553466796875,62.23271484374999],[-50.319238281249966,62.473193359375045],[-50.298730468749966,62.72197265625002],[-49.793115234374994,63.04462890625004],[-50.39008789062501,62.82202148437497],[-51.46884765624995,63.64228515625001],[-51.547509765624994,64.00610351562497],[-50.260693359374955,64.21425781250002],[-50.48662109374996,64.20888671875],[-50.43706054687499,64.31284179687503],[-51.58491210937498,64.10317382812502],[-51.70786132812498,64.205078125],[-51.403759765624926,64.46318359375002],[-50.49208984375002,64.69316406250005],[-50.00898437500001,64.44726562499997],[-50.12163085937493,64.703759765625],[-50.51699218750002,64.76650390625],[-50.96064453124998,65.20112304687498],[-50.721582031249966,64.79760742187503],[-51.22060546875002,64.62846679687502],[-51.25537109375,64.75810546875005],[-51.92260742187503,64.21875],[-52.259033203125,65.154931640625],[-52.537695312500034,65.32880859374998],[-51.61914062500003,65.71318359375002],[-51.091894531250006,65.77578125],[-51.7234375,65.723486328125],[-52.55126953125003,65.46137695312498],[-52.760937499999926,65.59082031249997],[-53.198974609375,65.59404296875002],[-53.106347656249966,65.97714843749998],[-53.39204101562498,66.04833984375],[-51.225,66.88154296875001],[-53.035791015624966,66.20141601562503],[-53.538769531249955,66.13935546874998],[-53.41875,66.64853515624998],[-53.038281249999955,66.82680664062497],[-52.38686523437502,66.88115234375005],[-53.44360351562503,66.924658203125],[-53.88442382812502,67.13554687499999],[-53.79858398437494,67.41816406250001],[-52.666455078124955,67.74970703124995],[-50.613476562499955,67.5279296875],[-51.171044921874966,67.693603515625],[-50.96884765624998,67.80664062500003],[-51.765234375000034,67.73784179687505],[-52.34482421874998,67.83691406249997],[-53.735205078125006,67.54902343750004],[-53.151562499999926,68.20776367187503],[-51.779980468749926,68.05673828124998],[-51.456494140624926,68.116064453125],[-51.21015625000001,68.419921875],[-52.19853515624993,68.22080078125],[-53.38315429687495,68.29736328124997],[-53.03945312500002,68.61088867187499],[-52.60458984374998,68.70874023437503],[-51.62314453124995,68.53481445312505],[-50.945703124999966,68.68266601562505],[-50.807714843750006,68.81699218749998],[-51.24941406250002,68.73994140625001],[-51.084863281249994,69.12827148437498],[-50.29736328124994,69.17060546874998],[-51.07695312499996,69.20947265625],[-50.291699218749955,70.01445312500005],[-52.254638671875,70.05893554687503],[-53.02304687499995,70.30190429687497],[-54.01445312499996,70.42167968750005],[-54.53076171875,70.69926757812502],[-54.16582031249999,70.82011718750005],[-52.801953124999955,70.7505859375],[-50.87236328124993,70.36489257812502],[-50.66328124999998,70.417578125],[-51.32285156249998,70.58876953124997],[-51.25659179687497,70.85268554687502],[-51.77431640625002,71.01044921875001],[-51.018945312499966,71.001318359375],[-51.37666015625001,71.11904296875],[-53.007568359375,71.17998046874999],[-52.89184570312497,71.457666015625],[-51.76992187500002,71.67172851562498],[-53.44008789062502,71.57900390625002],[-53.14453125000003,71.80742187500002],[-53.65214843749996,72.36264648437506],[-53.92773437499997,72.31879882812501],[-53.47758789062502,71.84995117187506],[-54.01992187500002,71.657861328125],[-53.96298828124995,71.45898437499997],[-54.6890625,71.36723632812505],[-55.59404296874999,71.55351562500005],[-55.315576171874994,72.11069335937498],[-54.84013671874996,72.35610351562497],[-55.581445312499994,72.178857421875],[-55.63583984374998,72.300439453125],[-55.29570312499996,72.35439453124997],[-55.60170898437494,72.453466796875],[-54.924951171874994,72.57197265624998],[-54.737939453124994,72.87250976562501],[-55.07309570312498,73.01513671875003],[-55.28891601562498,72.93320312500003],[-55.66855468749998,73.00791015624998],[-55.288281249999955,73.32709960937498],[-56.10405273437496,73.55815429687499],[-55.83828125,73.75971679687501],[-56.22539062499999,74.12910156249995],[-57.23056640624995,74.12529296875007],[-56.70634765625002,74.21918945312501],[-56.717675781249994,74.42924804687499],[-56.25546874999998,74.52680664062498],[-58.56552734374998,75.35273437500001],[-58.249658203124994,75.50668945312503],[-58.51621093749995,75.68906250000006],[-61.18823242187494,76.157861328125],[-63.29130859374996,76.35205078125003],[-63.84306640624999,76.21713867187498],[-64.307275390625,76.31650390624998],[-65.36992187499993,76.13056640625004],[-65.87573242187494,76.23833007812505],[-66.46577148437498,76.13916015625],[-66.99257812500002,76.21293945312502],[-66.67480468750003,75.977392578125],[-68.14873046875002,76.06704101562497],[-69.48408203125001,76.39916992187503],[-68.1142578125,76.65063476562503],[-69.67382812499994,76.73588867187507],[-69.69423828125002,76.98945312500004],[-70.613134765625,76.82182617187499],[-71.14145507812498,77.02866210937503],[-70.86284179687496,77.175439453125],[-68.97832031250002,77.19531250000006],[-68.13554687499999,77.37958984375001],[-66.38945312499999,77.28027343750003],[-66.69121093749999,77.68120117187502],[-67.68808593749995,77.523779296875],[-68.62153320312498,77.60185546875002],[-69.35136718749999,77.467138671875],[-70.53540039062497,77.699560546875],[-70.11445312500001,77.84135742187505],[-71.27163085937494,77.81313476562497],[-72.81806640624995,78.1943359375],[-72.47250976562498,78.48203125],[-71.65131835937493,78.62314453124998],[-68.99345703124999,78.857421875],[-68.37705078124998,79.037841796875],[-65.82553710937503,79.17373046874997],[-64.79228515624993,80.00063476562502],[-64.17915039062498,80.09926757812497],[-66.84365234374997,80.07622070312507],[-67.05063476562503,80.384521484375],[-64.51552734374997,81],[-63.72197265624993,81.05732421875001],[-63.028662109375006,80.88955078125002],[-62.90336914062496,81.21835937500003],[-61.43598632812498,81.13359375000002],[-60.842871093750034,81.85537109374997],[-59.28193359374998,81.88403320312503],[-56.615136718749994,81.362890625],[-59.26181640624998,82.00664062500005],[-54.54887695312496,82.35063476562505],[-53.671337890624955,82.16406249999997],[-53.55566406250003,81.65327148437501],[-53.022558593750034,82.32172851562504],[-50.894433593749994,81.89521484375001],[-49.54106445312496,81.91806640625003],[-50.93554687500003,82.38281250000003],[-50.03710937499994,82.472412109375],[-44.7294921875,81.77983398437505],[-44.23886718749998,82.3681640625],[-45.55654296875002,82.74702148437498],[-41.87646484375,82.680322265625],[-41.36962890625003,82.75],[-46.136816406250006,82.85883789062504],[-46.169042968750006,83.06386718749997],[-45.41459960937496,83.01767578124998],[-43.00927734375003,83.26459960937501],[-41.300146484375006,83.10078125000004],[-40.35683593750002,83.332177734375],[-38.15625,82.9986328125],[-38.74956054687496,83.37084960937497],[-37.72333984374998,83.49775390624998],[-29.952880859375,83.56484374999997]]]]},"properties":{"name":"Greenland","childNum":14}},{"geometry":{"type":"Polygon","coordinates":[[[-89.2328125,15.888671875],[-88.89404296875,15.890625],[-88.60336914062499,15.76416015625],[-88.5939453125,15.950292968749991],[-88.22832031249999,15.72900390625],[-88.271435546875,15.694873046875003],[-88.36455078124999,15.616015625],[-88.68447265625,15.360498046874994],[-88.96098632812499,15.152441406249991],[-89.142578125,15.072314453125003],[-89.22236328125,14.866064453124991],[-89.16220703124999,14.669238281250003],[-89.17177734375,14.606884765624997],[-89.28671875,14.529980468749997],[-89.36259765624999,14.416015625],[-89.5736328125,14.390087890624997],[-89.54716796874999,14.241259765625003],[-90.04814453124999,13.904052734375],[-90.09521484375,13.736523437499997],[-90.60693359375,13.929003906250003],[-91.37734375,13.990185546874997],[-92.23515624999999,14.54541015625],[-92.15854492187499,14.963574218749997],[-92.14423828125,15.001953125],[-92.09873046874999,15.026757812499994],[-92.07480468749999,15.07421875],[-92.187158203125,15.320898437499991],[-92.08212890624999,15.495556640624997],[-91.9572265625,15.703222656249991],[-91.736572265625,16.07016601562499],[-91.433984375,16.070458984374994],[-90.97958984374999,16.07080078125],[-90.70322265624999,16.071044921875],[-90.52197265625,16.071191406249994],[-90.44716796875,16.072705078124997],[-90.45986328125,16.162353515625],[-90.450146484375,16.261376953124994],[-90.4169921875,16.351318359375],[-90.4169921875,16.39101562499999],[-90.47109375,16.43955078124999],[-90.57578125,16.467822265625003],[-90.63408203124999,16.5107421875],[-90.634375,16.565136718749997],[-90.65996093749999,16.630908203125003],[-90.710693359375,16.70810546874999],[-90.975830078125,16.867822265624994],[-91.409619140625,17.255859375],[-91.1955078125,17.254101562499997],[-90.99296874999999,17.25244140625],[-90.98916015625,17.81640625],[-89.16147460937499,17.81484375],[-89.2328125,15.888671875]]]},"properties":{"name":"Guatemala","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[144.74179687500003,13.25927734375],[144.64931640625002,13.4287109375],[144.87539062500002,13.614648437499994],[144.94082031250002,13.5703125],[144.74179687500003,13.25927734375]]]},"properties":{"name":"Guam","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-57.194775390625,5.5484375],[-57.3185546875,5.335351562499994],[-57.20981445312499,5.195410156249991],[-57.331005859375,5.020166015624994],[-57.711083984374994,4.991064453124991],[-57.91704101562499,4.820410156249991],[-57.84599609374999,4.668164062499997],[-58.05429687499999,4.101660156249991],[-57.646728515625,3.39453125],[-57.303662109375,3.377099609374994],[-57.19736328124999,2.853271484375],[-56.704345703125,2.036474609374991],[-56.4828125,1.942138671875],[-56.96953124999999,1.91640625],[-57.03759765625,1.936474609374997],[-57.092675781249994,2.005810546874997],[-57.118896484375,2.013964843749989],[-57.31748046874999,1.963476562499991],[-57.41269531249999,1.908935546875],[-57.500439453125,1.77382812499999],[-57.54575195312499,1.72607421875],[-57.59443359375,1.7041015625],[-57.795654296875,1.7],[-57.8734375,1.667285156249989],[-57.9828125,1.6484375],[-58.03466796875,1.520263671875],[-58.34067382812499,1.587548828124994],[-58.38037109375,1.530224609374997],[-58.39580078124999,1.481738281249989],[-58.5060546875,1.438671875],[-58.511865234374994,1.28466796875],[-58.68461914062499,1.281054687499989],[-58.73032226562499,1.247509765624997],[-58.78720703124999,1.20849609375],[-58.82177734375,1.201220703124989],[-59.231201171875,1.376025390624989],[-59.53569335937499,1.7],[-59.66660156249999,1.746289062499997],[-59.66850585937499,1.842333984374989],[-59.74072265625,1.874169921874994],[-59.75620117187499,1.900634765625],[-59.75522460937499,2.274121093749997],[-59.8896484375,2.362939453124994],[-59.9943359375,2.689990234374989],[-59.854394531249994,3.5875],[-59.55112304687499,3.933544921874997],[-59.557763671874994,3.960009765624989],[-59.62021484374999,4.023144531249997],[-59.73857421874999,4.226757812499997],[-59.69970703125,4.353515625],[-60.1486328125,4.533251953124989],[-59.990673828125,5.082861328124991],[-60.142041015625,5.238818359374989],[-60.241650390625,5.257958984374994],[-60.335205078125,5.199316406249991],[-60.45952148437499,5.188085937499991],[-60.6513671875,5.221142578124997],[-60.742138671875,5.202050781249994],[-61.37680664062499,5.906982421875],[-61.3908203125,5.938769531249989],[-61.303125,6.049511718749997],[-61.22495117187499,6.129199218749989],[-61.15947265624999,6.174414062499991],[-61.12871093749999,6.214306640624997],[-61.152294921875,6.385107421874991],[-61.151025390624994,6.446533203125],[-61.181591796875,6.513378906249997],[-61.20361328125,6.58837890625],[-61.14560546874999,6.69453125],[-60.717919921874994,6.768310546875],[-60.35209960937499,7.002880859374997],[-60.32207031249999,7.092041015625],[-60.32548828124999,7.133984375],[-60.34506835937499,7.15],[-60.46494140624999,7.166552734374989],[-60.523193359375,7.143701171874994],[-60.583203125,7.156201171874997],[-60.63330078125,7.211083984374994],[-60.718652343749994,7.535937499999989],[-60.513623046875,7.813183593749997],[-60.032421875,8.053564453124991],[-59.99072265625,8.162011718749994],[-59.96484375,8.191601562499997],[-59.849072265625,8.248681640624994],[-59.83164062499999,8.305957031249989],[-60.017529296875,8.54931640625],[-59.20024414062499,8.07460937499999],[-58.51108398437499,7.39804687499999],[-58.48056640624999,7.038134765624989],[-58.67294921874999,6.390771484374994],[-58.414990234375,6.85117187499999],[-57.982568359374994,6.785888671875],[-57.54013671874999,6.33154296875],[-57.2275390625,6.178417968749997],[-57.194775390625,5.5484375]]]},"properties":{"name":"Guyana","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[73.70742187500002,-53.13710937499999],[73.46513671875002,-53.184179687500006],[73.25117187500001,-52.97578125000001],[73.83779296875002,-53.11279296875],[73.70742187500002,-53.13710937499999]]]},"properties":{"name":"Heard I. and McDonald Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-83.635498046875,14.876416015624997],[-84.53764648437496,14.633398437499963],[-84.64594726562498,14.661083984375011],[-84.86044921874998,14.809765625000011],[-84.98515624999999,14.752441406249972],[-85.059375,14.582958984374997],[-85.20834960937498,14.311816406250003],[-85.73393554687496,13.85869140625006],[-85.75341796875,13.852050781250028],[-85.78671874999995,13.844433593749997],[-85.98378906249997,13.965673828125006],[-86.04038085937503,14.050146484374977],[-86.33173828124995,13.770068359375031],[-86.37695312500003,13.755664062500031],[-86.61025390624997,13.774853515625026],[-86.73364257812494,13.763476562500017],[-86.75898437499995,13.746142578125045],[-86.77060546875003,13.698730468749972],[-86.763525390625,13.635253906250014],[-86.72958984375,13.4072265625],[-86.710693359375,13.31337890624998],[-86.72929687499996,13.284375],[-86.79213867187497,13.279785156249972],[-86.87353515624994,13.266503906250023],[-86.918212890625,13.223583984374983],[-87.00932617187499,13.007812499999986],[-87.0591796875,12.991455078125028],[-87.337255859375,12.979248046875028],[-87.48911132812503,13.352929687500051],[-87.814208984375,13.399169921875057],[-87.781884765625,13.521386718749994],[-87.71533203125003,13.812695312500011],[-87.73144531250003,13.841064453125014],[-87.80224609374997,13.889990234375034],[-87.89199218749997,13.894970703124983],[-87.99101562499996,13.879638671874972],[-88.15102539062497,13.987353515624974],[-88.44912109374994,13.850976562499994],[-88.48266601562503,13.854248046875043],[-88.49765624999998,13.904541015624986],[-88.50434570312501,13.964208984374963],[-88.51254882812498,13.97895507812504],[-89.12050781249994,14.370214843749991],[-89.36259765624996,14.416015625],[-89.17177734375,14.606884765624983],[-89.16220703125,14.669238281249989],[-89.22236328125001,14.86606445312502],[-89.142578125,15.072314453125031],[-88.96098632812496,15.15244140625002],[-88.68447265625002,15.360498046875037],[-88.36455078124996,15.616015625000045],[-88.27143554687498,15.694873046875045],[-88.22832031249999,15.729003906249972],[-88.131103515625,15.701025390625034],[-87.87495117187495,15.879345703124955],[-86.35664062499998,15.783203125],[-85.93627929687497,15.953417968750045],[-85.98564453124999,16.02416992187497],[-85.48369140624996,15.899511718749977],[-84.97373046874998,15.989892578124994],[-84.55966796875,15.802001953125],[-84.26142578124998,15.822607421875034],[-83.765283203125,15.405468750000054],[-83.972802734375,15.519628906250034],[-84.11132812499997,15.492431640625],[-84.09506835937503,15.400927734375017],[-83.92744140624998,15.394042968750028],[-83.76044921874998,15.220361328124994],[-83.49794921874997,15.222119140624997],[-83.64638671875,15.368408203125043],[-83.36918945312493,15.239990234375],[-83.29086914062498,15.078906250000045],[-83.2255859375,15.042285156250045],[-83.15751953124999,14.993066406249966],[-83.41503906249994,15.008056640625],[-83.5365234375,14.977001953124983],[-83.635498046875,14.876416015624997]]]},"properties":{"name":"Honduras","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[17.60781250000005,42.76904296875],[17.744238281250063,42.70034179687505],[17.34414062500008,42.790380859375006],[17.60781250000005,42.76904296875]]],[[[16.650683593750017,42.99658203125],[17.188281250000045,42.917041015625045],[16.850683593750006,42.8955078125],[16.650683593750017,42.99658203125]]],[[[17.667578125000063,42.897119140624994],[18.436328125000017,42.559716796874994],[18.517480468750023,42.43291015624999],[17.823828125,42.79741210937502],[17.045410156250057,43.014892578125],[17.667578125000063,42.897119140624994]]],[[[16.785253906250006,43.270654296874966],[16.490332031250034,43.28618164062502],[16.44892578125004,43.38706054687506],[16.89130859375001,43.314648437499955],[16.785253906250006,43.270654296874966]]],[[[15.371386718750074,43.973828124999955],[15.437207031250068,43.899511718750006],[15.270019531250028,44.01074218750003],[15.371386718750074,43.973828124999955]]],[[[14.488085937500074,44.66005859375005],[14.31240234375008,44.90039062499997],[14.33125,45.16499023437498],[14.488085937500074,44.66005859375005]]],[[[14.810253906250068,44.97705078124997],[14.45039062500004,45.079199218750006],[14.571093750000017,45.224755859374994],[14.810253906250068,44.97705078124997]]],[[[18.905371093750006,45.931738281250034],[18.839062499999983,45.83574218750002],[19.064257812500045,45.51499023437506],[19.004687500000074,45.39951171875006],[19.4,45.2125],[19.062890625000023,45.13720703125],[19.007128906250045,44.86918945312502],[18.83642578125,44.883251953124955],[18.66259765625,45.07744140624999],[17.812792968750074,45.078125],[16.918652343749983,45.27656249999998],[16.53066406250008,45.21669921875002],[16.29335937500005,45.00883789062496],[16.028320312500057,45.18959960937502],[15.788085937500057,45.17895507812497],[15.736621093750045,44.76582031250001],[16.10341796875008,44.52099609375006],[16.300097656250017,44.12451171875],[17.27382812500005,43.44575195312501],[17.650488281250063,43.006591796875],[17.585156250000068,42.93837890625005],[16.903125,43.392431640625006],[16.393945312500023,43.54335937500002],[15.985546875000068,43.519775390625],[15.185839843750017,44.17211914062503],[15.122949218749994,44.256787109374955],[15.470996093750045,44.27197265625003],[14.981347656250023,44.60292968750005],[14.854589843750034,45.08100585937501],[14.550488281249983,45.297705078125006],[14.31269531250004,45.33779296875002],[13.86074218750008,44.83740234375003],[13.517187500000063,45.481787109375034],[13.878710937500017,45.428369140624994],[14.369921875000074,45.48144531250006],[14.427343750000034,45.50576171875002],[14.56884765625,45.65722656249997],[14.591796875000057,45.65126953125002],[14.649511718750006,45.57148437500001],[14.793066406250034,45.47822265625001],[14.95458984375,45.499902343749994],[15.110449218750034,45.450781250000034],[15.242089843750023,45.44140624999997],[15.339453125000063,45.46704101562506],[15.326660156250028,45.502294921875034],[15.291210937500011,45.541552734375045],[15.283593750000051,45.5796875],[15.35371093750004,45.659912109375],[15.27705078125004,45.73261718749998],[15.652148437500074,45.86215820312498],[15.675585937500045,45.98369140624996],[15.666210937500011,46.04848632812502],[15.596875,46.10922851562506],[15.592578125000017,46.139990234375006],[15.608984374999977,46.171923828125045],[16.1064453125,46.382226562499994],[16.32119140625005,46.53461914062504],[16.42763671875005,46.5244140625],[16.516210937499977,46.499902343749966],[16.569921875,46.48500976562505],[16.748046875000057,46.41640625000002],[16.87148437500008,46.33930664062504],[17.310644531250006,45.99614257812502],[17.80712890625,45.79042968750002],[18.358300781250023,45.75302734375006],[18.533593750000023,45.79614257812503],[18.56464843750004,45.81328124999999],[18.666015625,45.90747070312497],[18.905371093750006,45.931738281250034]]]]},"properties":{"name":"Croatia","childNum":8}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-72.80458984374997,18.777685546875063],[-72.82221679687501,18.707128906249977],[-73.07797851562498,18.790917968749994],[-73.27641601562499,18.95405273437501],[-72.80458984374997,18.777685546875063]]],[[[-71.647216796875,19.195947265624994],[-71.80712890624997,18.987011718749983],[-71.733642578125,18.85639648437501],[-71.72705078125,18.80322265625003],[-71.74321289062502,18.73291015625],[-71.86650390624999,18.61416015625005],[-71.98686523437499,18.61035156249997],[-72.000390625,18.59790039062503],[-71.94038085937493,18.51259765625005],[-71.87255859374997,18.416210937499955],[-71.76191406249998,18.34130859374997],[-71.73725585937495,18.27080078124999],[-71.76831054687497,18.039160156250063],[-71.85292968749997,18.119140625],[-71.94609375,18.186083984375045],[-72.05986328124993,18.228564453125017],[-72.87666015624998,18.151757812499994],[-73.38515625000002,18.251171874999983],[-73.747314453125,18.190234375000017],[-73.88496093749998,18.041894531249994],[-74.478125,18.45],[-74.3875,18.624707031249983],[-74.22773437499998,18.662695312499977],[-72.78935546874996,18.434814453125],[-72.37607421874998,18.57446289062503],[-72.34765624999994,18.674951171874994],[-72.81108398437496,19.071582031250074],[-72.70322265625,19.441064453125023],[-73.43837890624994,19.722119140624983],[-73.21777343750003,19.88369140625005],[-72.63701171875002,19.90087890625],[-72.21982421875003,19.744628906250057],[-71.834716796875,19.696728515624983],[-71.77924804687498,19.718164062499994],[-71.75742187499998,19.68818359375001],[-71.71147460937493,19.486572265625057],[-71.74648437499997,19.28583984375001],[-71.647216796875,19.195947265624994]]]]},"properties":{"name":"Haiti","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[22.1318359375,48.405322265624996],[22.253710937500017,48.407373046874994],[22.582421875000023,48.134033203125],[22.769140625,48.109619140625],[22.87666015625001,47.947265625],[21.99970703125001,47.505029296874994],[21.121679687500006,46.282421875],[20.76025390625,46.246240234374994],[20.613671875000023,46.13349609375],[20.508105468750017,46.166943359375],[20.28095703125001,46.1330078125],[20.241796875,46.10859375],[20.21015625000001,46.126025390624996],[20.161425781250017,46.141894531249996],[19.93408203125,46.161474609375],[19.84443359375001,46.145898437499994],[19.61347656250001,46.169189453125],[19.421289062500023,46.064453125],[18.666015625,45.907470703125],[18.56464843750001,45.81328125],[18.533593750000023,45.796142578125],[18.358300781250023,45.75302734375],[17.80712890625,45.790429687499994],[17.310644531250006,45.996142578124996],[16.871484375000023,46.339306640625],[16.748046875,46.41640625],[16.569921875,46.485009765624994],[16.516210937500006,46.499902343749994],[16.283593750000023,46.857275390625],[16.093066406250017,46.86328125],[16.453417968750017,47.006787109375],[16.44287109375,47.39951171875],[16.676562500000017,47.536035156249994],[16.421289062500023,47.674462890624994],[17.06660156250001,47.707568359374996],[17.147363281250023,48.00595703125],[17.76191406250001,47.770166015624994],[18.72421875,47.787158203124996],[18.791894531250023,48.000292968749996],[19.625390625000023,48.223095703125],[19.95039062500001,48.146630859374994],[20.333789062500017,48.295556640624994],[20.490039062500017,48.526904296874996],[21.45136718750001,48.55224609375],[21.766992187500023,48.3380859375],[22.1318359375,48.405322265624996]]]},"properties":{"name":"Hungary","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[122.9489257812501,-10.90927734375002],[122.82617187500003,-10.899121093749983],[122.84570312500003,-10.761816406249991],[123.37109375000003,-10.474902343749989],[123.41816406250004,-10.651269531250037],[122.9489257812501,-10.90927734375002]]],[[[121.8830078125001,-10.590332031249957],[121.70468750000006,-10.5556640625],[121.99833984375002,-10.446972656249983],[121.8830078125001,-10.590332031249957]]],[[[123.41621093750004,-10.302636718749966],[123.3255859375,-10.264160156249943],[123.45878906250002,-10.13994140624996],[123.41621093750004,-10.302636718749966]]],[[[120.0125,-9.374707031250026],[120.78447265625002,-9.95703125],[120.83261718750006,-10.0375],[120.69804687500002,-10.206640624999949],[120.4391601562501,-10.294042968749991],[120.14482421875002,-10.200097656249952],[119.60107421874997,-9.773535156250006],[119.08544921875003,-9.706933593750023],[118.95878906250002,-9.519335937500003],[119.29589843749997,-9.3671875],[119.9420898437501,-9.301464843750026],[120.0125,-9.374707031250026]]],[[[125.06816406250002,-9.511914062499997],[124.42753906250002,-10.14863281250004],[123.7472656250001,-10.347167968749986],[123.60478515625002,-10.270117187500006],[123.71640625000012,-10.078613281249986],[123.5892578125,-9.966796875000028],[123.709375,-9.61484375],[124.0363281250001,-9.341601562500031],[124.28232421875012,-9.427929687500026],[124.44443359375012,-9.190332031250023],[124.92226562500005,-8.942480468749977],[124.93681640625007,-9.053417968750026],[125.14902343750012,-9.042578125000034],[125.10048828125,-9.189843750000023],[124.96015625000004,-9.213769531250009],[125.06816406250002,-9.511914062499997]]],[[[115.60996093750012,-8.769824218749974],[115.48046875000003,-8.715429687500006],[115.56142578125,-8.669921874999972],[115.60996093750012,-8.769824218749974]]],[[[122.97734375000002,-8.54521484374996],[122.88779296875006,-8.587304687500009],[123.01054687500002,-8.448339843750034],[123.153125,-8.475781250000026],[122.97734375000002,-8.54521484374996]]],[[[119.46406250000004,-8.741015624999974],[119.38554687500002,-8.736035156250026],[119.4464843750001,-8.429199218749957],[119.55722656250012,-8.518847656250003],[119.46406250000004,-8.741015624999974]]],[[[123.31748046875012,-8.354785156249974],[123.02500000000012,-8.395507812500014],[123.21708984375002,-8.235449218750006],[123.33603515625006,-8.269042968750014],[123.31748046875012,-8.354785156249974]]],[[[116.64082031250004,-8.613867187500006],[116.51425781250012,-8.820996093750011],[116.58652343750012,-8.886132812499966],[116.23935546875006,-8.912109375000014],[115.85732421875005,-8.787890625000017],[116.07646484375002,-8.744921874999974],[116.06113281250006,-8.437402343750023],[116.4015625000001,-8.204199218750034],[116.7189453125001,-8.336035156249977],[116.64082031250004,-8.613867187500006]]],[[[124.28662109375003,-8.32949218749998],[124.14667968750004,-8.531445312499997],[123.92773437500003,-8.448925781249969],[124.23955078125002,-8.20341796874996],[124.28662109375003,-8.32949218749998]]],[[[123.92480468750003,-8.2724609375],[123.55302734375007,-8.566796875],[123.23007812500006,-8.530664062500023],[123.47587890625007,-8.322265625000014],[123.39121093750012,-8.280468750000026],[123.77597656250006,-8.190429687499986],[123.92480468750003,-8.2724609375]]],[[[138.89511718750006,-8.388671874999957],[138.56337890625,-8.30908203125],[138.79619140625007,-8.173632812500017],[138.89511718750006,-8.388671874999957]]],[[[117.55634765625004,-8.367285156249949],[117.49052734375007,-8.183398437499974],[117.66503906249997,-8.148242187500003],[117.55634765625004,-8.367285156249949]]],[[[124.5755859375,-8.140820312499997],[125.05029296874997,-8.179589843749994],[125.13173828125,-8.326464843749989],[124.38066406250002,-8.41513671875002],[124.43066406249997,-8.18320312500002],[124.5755859375,-8.140820312499997]]],[[[127.8234375000001,-8.098828124999969],[128.11923828125012,-8.17070312499996],[128.02353515625006,-8.255371093749972],[127.82089843750012,-8.190234375000031],[127.8234375000001,-8.098828124999969]]],[[[122.7829101562501,-8.61171875],[121.65136718749997,-8.898730468749946],[121.41464843750006,-8.81484375],[121.32832031250004,-8.916894531250009],[121.03525390625012,-8.935449218749966],[120.55048828125004,-8.80185546875002],[119.909375,-8.857617187500011],[119.80791015625002,-8.697656250000023],[119.87480468750007,-8.419824218749994],[120.61025390625005,-8.24042968750004],[121.44453125000004,-8.57783203125004],[121.96650390625004,-8.455175781250006],[122.32324218749997,-8.628320312500023],[122.85048828125,-8.304394531250011],[122.91914062500004,-8.221875],[122.75859375000002,-8.185937499999952],[122.91699218749997,-8.105566406250006],[123.00595703125006,-8.329101562499986],[122.7829101562501,-8.61171875]]],[[[130.86220703125,-8.31875],[130.77519531250002,-8.34990234374996],[131.02011718750012,-8.091308593749943],[131.17636718750006,-8.130761718749994],[130.86220703125,-8.31875]]],[[[118.24238281250004,-8.317773437499994],[118.61191406250006,-8.28066406249998],[118.71386718749997,-8.41494140624998],[118.926171875,-8.297656249999974],[119.12968750000002,-8.668164062499969],[118.74589843750002,-8.735449218749991],[118.83261718750012,-8.833398437499966],[118.47861328125012,-8.856445312499957],[118.37890625000003,-8.674609375000031],[118.18994140624997,-8.840527343749997],[117.06132812500002,-9.099023437499994],[116.78847656250005,-9.006347656250028],[116.83505859375012,-8.532421875000026],[117.16484375000007,-8.367187500000014],[117.56708984375004,-8.426367187499991],[117.80605468750005,-8.711132812500011],[117.96953125000002,-8.728027343749986],[118.23486328124997,-8.591894531249963],[117.81484375000005,-8.342089843749974],[117.7552734375,-8.149511718749991],[118.11748046875007,-8.12226562500004],[118.24238281250004,-8.317773437499994]]],[[[115.44785156250012,-8.155175781249994],[115.70429687500004,-8.40712890624998],[115.14492187500005,-8.849023437500037],[115.05507812500005,-8.573046874999946],[114.61318359375,-8.37832031249998],[114.46757812500007,-8.166308593749946],[114.93847656249997,-8.18710937500002],[115.15400390625004,-8.065722656249974],[115.44785156250012,-8.155175781249994]]],[[[129.83886718749997,-7.954589843749986],[129.71347656250012,-8.04072265625004],[129.60898437500006,-7.803417968750011],[129.81298828124997,-7.819726562499952],[129.83886718749997,-7.954589843749986]]],[[[126.80097656250004,-7.667871093750009],[126.4720703125,-7.950390625000011],[126.04003906250003,-7.885839843750006],[125.79824218750005,-7.984570312499969],[125.97529296875004,-7.663378906249989],[126.21367187500002,-7.706738281250026],[126.60957031250004,-7.571777343749972],[126.80097656250004,-7.667871093750009]]],[[[127.41943359375003,-7.623046875000028],[127.37070312500012,-7.512792968749949],[127.47519531250012,-7.531054687500031],[127.41943359375003,-7.623046875000028]]],[[[138.53535156250004,-8.273632812499969],[138.2962890625,-8.405175781250037],[137.65039062499997,-8.386132812499966],[138.08183593750002,-7.566210937500003],[138.29550781250012,-7.4384765625],[138.76982421875002,-7.390429687499974],[138.98906250000002,-7.696093749999989],[138.53535156250004,-8.273632812499969]]],[[[131.3255859375,-7.999511718749986],[131.11376953125003,-7.997363281249989],[131.13779296875012,-7.684863281250017],[131.64345703125,-7.11279296875],[131.73613281250007,-7.197070312500017],[131.64384765625002,-7.266894531249946],[131.62441406250005,-7.626171874999955],[131.3255859375,-7.999511718749986]]],[[[131.98203125000006,-7.202050781249966],[131.75078125000002,-7.116796875],[131.92226562500005,-7.104492187499986],[131.98203125000006,-7.202050781249966]]],[[[128.6701171875001,-7.183300781249969],[128.52978515625003,-7.134570312499989],[128.62773437500007,-7.06875],[128.6701171875001,-7.183300781249969]]],[[[120.77441406250003,-7.118945312500003],[120.64082031250004,-7.115820312499991],[120.63339843750006,-7.018261718750011],[120.77441406250003,-7.118945312500003]]],[[[113.84453125000007,-7.105371093749994],[113.12695312499997,-7.224121093750028],[112.72587890625007,-7.072753906250014],[112.86806640625,-6.899902343749972],[113.06738281250003,-6.879980468749991],[113.97470703125012,-6.873046875],[114.0736328125,-6.960156249999983],[113.84453125000007,-7.105371093749994]]],[[[115.37705078125006,-6.97080078125002],[115.22031250000012,-6.952539062500037],[115.24052734375007,-6.861230468749994],[115.54609375000004,-6.938671874999955],[115.37705078125006,-6.97080078125002]]],[[[105.25283203125005,-6.640429687499946],[105.12138671875007,-6.614941406249997],[105.26054687500002,-6.523925781250014],[105.25283203125005,-6.640429687499946]]],[[[134.53681640625004,-6.442285156249994],[134.32275390624997,-6.84873046875002],[134.09082031249997,-6.833789062500003],[134.10703125000006,-6.471582031250009],[134.19462890625007,-6.459765625],[134.11464843750005,-6.190820312500009],[134.53681640625004,-6.442285156249994]]],[[[107.37392578125005,-6.007617187499989],[107.66679687500002,-6.215820312499957],[108.33017578125012,-6.286035156249966],[108.67783203125006,-6.790527343749972],[110.42626953124997,-6.947265625000028],[110.83476562500002,-6.424218749999952],[110.97226562500012,-6.435644531249977],[111.18154296875005,-6.686718749999969],[111.54033203125002,-6.648242187500031],[112.0873046875,-6.89335937499996],[112.53925781250004,-6.926464843749955],[112.64873046875007,-7.221289062499977],[112.7943359375,-7.304492187499974],[112.79453125000012,-7.55244140625004],[113.01357421875005,-7.657714843749986],[113.49765625000006,-7.723828124999955],[114.07070312500005,-7.633007812500011],[114.40927734375012,-7.79248046875],[114.38691406250004,-8.405175781250037],[114.58378906250002,-8.769628906250034],[113.25332031250005,-8.286718749999963],[112.67880859375006,-8.409179687499957],[111.50996093750004,-8.30507812499998],[110.60722656250002,-8.149414062499972],[109.28164062500005,-7.704882812500003],[108.74121093749997,-7.667089843750034],[108.45175781250006,-7.79697265625002],[107.91748046875003,-7.724121093750014],[107.28496093750007,-7.471679687500014],[106.45527343750004,-7.368652343749986],[106.51972656250004,-7.053710937499943],[106.19824218749997,-6.927832031249977],[105.25546875000012,-6.835253906250031],[105.37089843750002,-6.664355468750031],[105.48369140625007,-6.781542968750017],[105.65507812500002,-6.469531249999946],[105.78691406250002,-6.456933593749966],[105.86826171875006,-6.11640625000004],[106.075,-5.914160156249963],[106.82519531249997,-6.098242187499977],[107.0462890625,-5.90419921874998],[107.37392578125005,-6.007617187499989]]],[[[120.52832031249997,-6.2984375],[120.48730468749997,-6.464843749999972],[120.47734375000007,-5.775292968750009],[120.52832031249997,-6.2984375]]],[[[112.7194335937501,-5.81103515625],[112.58603515625006,-5.803613281249994],[112.69003906250006,-5.726171875000034],[112.7194335937501,-5.81103515625]]],[[[132.80712890625003,-5.850781250000011],[132.68144531250002,-5.91259765625],[132.63017578125002,-5.60703125],[132.80712890625003,-5.850781250000011]]],[[[134.74697265625,-5.707031249999957],[134.71416015625007,-6.29511718750004],[134.44111328125004,-6.334863281249966],[134.15488281250006,-6.06289062499998],[134.3019531250001,-6.009765624999986],[134.34306640625002,-5.833007812499943],[134.20537109375002,-5.707226562499997],[134.34130859375003,-5.712890624999986],[134.57080078124997,-5.42734375],[134.74697265625,-5.707031249999957]]],[[[132.92626953124997,-5.902050781249983],[132.84501953125002,-5.987988281249997],[133.13847656250002,-5.317871093749986],[133.11962890625003,-5.575976562499989],[132.92626953124997,-5.902050781249983]]],[[[102.36718750000003,-5.478710937499983],[102.1107421875,-5.32255859374996],[102.3717773437501,-5.366406250000011],[102.36718750000003,-5.478710937499983]]],[[[123.62675781250007,-5.271582031249963],[123.58261718750006,-5.36738281250004],[123.54277343750002,-5.271093749999963],[123.62675781250007,-5.271582031249963]]],[[[122.04296874999997,-5.437988281250028],[121.80849609375,-5.256152343750017],[121.91367187500012,-5.072265624999957],[122.04101562500003,-5.158789062499991],[122.04296874999997,-5.437988281250028]]],[[[122.64511718750012,-5.26943359374998],[122.5638671875,-5.3875],[122.28310546875,-5.319531249999969],[122.39628906250002,-5.069824218749986],[122.36894531250007,-4.767187499999977],[122.70195312500002,-4.61865234375],[122.75986328125012,-4.933886718750003],[122.61406250000007,-5.138671874999986],[122.64511718750012,-5.26943359374998]]],[[[123.17978515625006,-4.551171875000023],[123.195703125,-4.82265625],[123.05517578124997,-4.748242187500026],[122.97167968750003,-5.138476562500031],[123.18730468750007,-5.333007812499957],[122.96875,-5.405761718749943],[122.81210937500012,-5.671289062499952],[122.64501953124997,-5.663378906250031],[122.58642578124997,-5.488867187500006],[122.76650390625005,-5.210156249999983],[122.85332031250007,-4.618359375000026],[123.074609375,-4.38691406250004],[123.17978515625006,-4.551171875000023]]],[[[133.57080078124997,-4.245898437500003],[133.621875,-4.299316406249957],[133.32089843750006,-4.111035156249969],[133.57080078124997,-4.245898437500003]]],[[[123.2423828125001,-4.112988281250011],[123.07617187499997,-4.227148437499991],[122.96904296875002,-4.029980468749969],[123.21191406250003,-3.997558593750028],[123.2423828125001,-4.112988281250011]]],[[[128.56259765625012,-3.58544921875],[128.39160156250003,-3.637890625000026],[128.45156250000005,-3.514746093749991],[128.56259765625012,-3.58544921875]]],[[[128.2755859375001,-3.67460937499996],[127.97802734374997,-3.770996093749972],[127.925,-3.69931640625002],[128.32910156249997,-3.51591796874996],[128.2755859375001,-3.67460937499996]]],[[[116.42412109375007,-3.464453124999963],[116.38779296875012,-3.636718749999972],[116.3265625,-3.539062499999972],[116.42412109375007,-3.464453124999963]]],[[[116.30332031250006,-3.868164062499957],[116.05878906250004,-4.006933593749991],[116.06357421875006,-3.457910156249952],[116.26972656250004,-3.251074218750006],[116.30332031250006,-3.868164062499957]]],[[[126.86113281250007,-3.087890624999986],[127.22734375000007,-3.391015625],[127.22958984375006,-3.633007812500011],[126.68632812500007,-3.823632812500037],[126.21455078125004,-3.605175781250026],[126.05654296875,-3.420996093749991],[126.08828125,-3.105468750000014],[126.86113281250007,-3.087890624999986]]],[[[106.88642578125004,-3.005273437500023],[106.7428710937501,-2.932812500000011],[106.91064453124997,-2.93398437499998],[106.88642578125004,-3.005273437500023]]],[[[129.75468750000007,-2.865820312500034],[130.3791015625001,-2.989355468749977],[130.56992187500006,-3.130859375000028],[130.85996093750006,-3.570312500000028],[130.805078125,-3.85771484374996],[129.844140625,-3.327148437499957],[129.51171875000003,-3.32851562499998],[129.46767578125005,-3.453222656249977],[128.8625,-3.234960937500006],[128.51660156249997,-3.449121093750037],[128.13203125000004,-3.157421875000026],[127.90234374999997,-3.496289062499955],[127.87792968749997,-3.222070312499966],[128.19853515625002,-2.865917968749969],[128.99111328125,-2.82851562499998],[129.17441406250006,-2.933496093749966],[129.48417968750002,-2.785742187499977],[129.75468750000007,-2.865820312500034]]],[[[100.42509765625007,-3.182910156249974],[100.46513671875007,-3.32851562499998],[100.20429687500004,-2.98681640625],[100.19853515625002,-2.785546875000023],[100.45458984375003,-3.001953124999972],[100.42509765625007,-3.182910156249974]]],[[[108.2072265625001,-2.997656249999977],[108.05527343750006,-3.22685546874996],[107.85820312500002,-3.086328125000023],[107.61445312500004,-3.209375],[107.56347656250003,-2.920117187499997],[107.66630859375002,-2.566308593750037],[107.83779296875005,-2.530273437499972],[108.21513671875002,-2.696972656250011],[108.29062500000012,-2.829980468750023],[108.2072265625001,-2.997656249999977]]],[[[100.20410156249997,-2.741015625000017],[100.01494140625007,-2.819726562499966],[99.98789062500006,-2.525390624999957],[100.20410156249997,-2.741015625000017]]],[[[99.84306640625007,-2.343066406250031],[99.60703125000012,-2.257519531250011],[99.57216796875005,-2.025781249999966],[99.84306640625007,-2.343066406250031]]],[[[126.055078125,-2.451269531249963],[125.86289062500006,-2.077148437499943],[125.92275390625,-1.974804687499969],[126.055078125,-2.451269531249963]]],[[[126.02421875000007,-1.789746093750011],[126.33173828125004,-1.822851562500006],[125.47919921875004,-1.940039062499991],[125.38720703124997,-1.843066406249946],[126.02421875000007,-1.789746093750011]]],[[[130.35332031250007,-1.690527343749963],[130.41884765625,-1.971289062499963],[130.24804687500003,-2.047753906249994],[129.7376953125,-1.866894531250011],[130.35332031250007,-1.690527343749963]]],[[[124.96953125000007,-1.70546875],[125.18789062500005,-1.712890624999986],[125.31406250000006,-1.877148437499969],[124.41777343750002,-2.005175781250031],[124.32968750000012,-1.858886718749972],[124.41757812500006,-1.659277343749991],[124.96953125000007,-1.70546875]]],[[[135.47421875000006,-1.591796875000014],[136.89257812500003,-1.799707031249994],[136.22812500000012,-1.893652343749949],[135.47421875000006,-1.591796875000014]]],[[[108.953125,-1.61962890625],[108.83789062499997,-1.661621093750028],[108.80371093750003,-1.567773437499994],[108.953125,-1.61962890625]]],[[[106.04570312500002,-1.669433593750014],[106.36591796875004,-2.464843749999972],[106.81845703125006,-2.573339843749963],[106.6120117187501,-2.895507812499957],[106.66718750000004,-3.071777343749986],[105.99873046875004,-2.824902343749955],[105.7858398437501,-2.18134765625004],[105.13339843750012,-2.042578125],[105.45957031250006,-1.574707031249986],[105.58544921875003,-1.526757812499994],[105.7008789062501,-1.731054687499963],[105.7204101562501,-1.533886718750026],[105.91005859375,-1.504980468749991],[106.04570312500002,-1.669433593750014]]],[[[123.59755859375,-1.704296875000011],[123.48251953125006,-1.681445312499974],[123.52851562500004,-1.502832031250009],[123.59755859375,-1.704296875000011]]],[[[128.1530273437501,-1.66054687499998],[127.56162109375012,-1.728515624999972],[127.39501953125003,-1.589843749999972],[127.64667968750004,-1.332421875],[128.1530273437501,-1.66054687499998]]],[[[123.2123046875,-1.171289062499966],[123.23779296874997,-1.389355468749983],[123.43476562500004,-1.236816406249986],[123.54726562500005,-1.337402343749957],[123.51191406250004,-1.447363281249977],[123.27490234374997,-1.437207031249955],[123.17294921875006,-1.616015624999974],[123.15039062500003,-1.304492187500003],[122.89042968750007,-1.58720703124996],[122.81083984375002,-1.432128906249986],[122.90800781250002,-1.182226562499963],[123.2123046875,-1.171289062499966]]],[[[109.71025390625007,-1.1806640625],[109.46367187500002,-1.277539062500026],[109.4759765625,-0.9853515625],[109.74335937500004,-1.039355468749989],[109.71025390625007,-1.1806640625]]],[[[134.96533203124997,-1.116015624999974],[134.86171875,-1.114160156249952],[134.82792968750002,-0.978808593750003],[134.99628906250004,-1.03408203124998],[134.96533203124997,-1.116015624999974]]],[[[99.16386718750007,-1.777929687500006],[98.82773437500006,-1.609960937499977],[98.60175781250004,-1.197851562499949],[98.67607421875007,-0.970507812500003],[98.93261718750003,-0.954003906250009],[99.2672851562501,-1.62773437499996],[99.16386718750007,-1.777929687500006]]],[[[131.00185546875005,-1.315527343750034],[130.78232421875006,-1.255468749999963],[130.67294921875006,-0.959765625000031],[131.03300781250007,-0.917578124999963],[131.00185546875005,-1.315527343750034]]],[[[135.38300781250004,-0.6513671875],[135.89355468749997,-0.725781249999969],[136.37529296875007,-1.094042968750031],[136.1647460937501,-1.214746093750023],[135.91503906250003,-1.178417968749997],[135.74707031249997,-0.823046874999974],[135.64570312500004,-0.881933593749991],[135.38300781250004,-0.6513671875]]],[[[127.30039062500012,-0.780957031250026],[127.1564453125001,-0.760937500000026],[127.20908203125006,-0.619335937499955],[127.30039062500012,-0.780957031250026]]],[[[130.6266601562501,-0.528710937499966],[130.46542968750006,-0.486523437499983],[130.6159179687501,-0.417285156250003],[130.6266601562501,-0.528710937499966]]],[[[121.86435546875012,-0.406835937500006],[121.88125,-0.502636718749983],[121.65527343749997,-0.526171874999989],[121.86435546875012,-0.406835937500006]]],[[[140.97343750000007,-2.609765625],[140.97353515625,-2.803417968750026],[140.975,-6.346093750000023],[140.86230468749997,-6.740039062499989],[140.97519531250006,-6.90537109375002],[140.97617187500012,-9.11875],[140.00292968749997,-8.19550781250004],[140.11699218750002,-7.923730468750009],[139.93476562500004,-8.101171875],[139.38564453125,-8.189062499999963],[139.24882812500002,-7.982421874999972],[138.890625,-8.237792968749943],[139.08798828125012,-7.587207031250017],[138.74794921875,-7.25146484375],[139.17685546875006,-7.1904296875],[138.84570312500003,-7.13632812499999],[138.60136718750007,-6.936523437499972],[138.86455078125007,-6.858398437499943],[138.43867187500004,-6.343359375],[138.2962890625,-5.94902343749996],[138.37460937500006,-5.84365234374998],[138.19960937500005,-5.80703125],[138.33964843750007,-5.675683593749966],[138.08710937500004,-5.70917968750004],[138.06083984375002,-5.46523437499998],[137.27978515624997,-4.945410156249949],[136.61884765625004,-4.81875],[135.97968750000004,-4.530859374999963],[135.19560546875007,-4.450683593749972],[134.67968749999997,-4.079101562499943],[134.70654296875003,-3.954785156250026],[134.88652343750007,-3.938476562499986],[134.26621093750012,-3.945800781249972],[134.14707031250006,-3.79677734374998],[133.97382812500004,-3.817968750000034],[133.67832031250006,-3.4794921875],[133.8415039062501,-3.054785156249991],[133.70039062500004,-3.0875],[133.653125,-3.364355468749991],[133.51816406250012,-3.411914062500003],[133.40087890625003,-3.899023437500034],[133.24873046875004,-4.062304687499989],[132.91445312500005,-4.05693359374996],[132.75390625000003,-3.703613281250014],[132.86972656250006,-3.550976562499997],[132.75136718750005,-3.294628906249997],[131.97119140624997,-2.788574218750014],[132.2306640625001,-2.680371093749997],[132.725,-2.789062500000028],[133.19101562500006,-2.43779296874996],[133.70009765625005,-2.624609375],[133.75332031250005,-2.450683593750014],[133.90488281250012,-2.390917968750003],[133.79101562500003,-2.293652343749997],[133.92158203125004,-2.102050781249957],[132.96279296875005,-2.272558593749963],[132.30761718749997,-2.24228515625002],[132.02343749999997,-1.99033203125002],[131.93037109375004,-1.559667968750034],[131.29375,-1.393457031250009],[130.99589843750007,-1.42470703124998],[131.1908203125,-1.165820312500003],[131.2572265625,-0.855468750000014],[131.80429687500006,-0.703808593750026],[132.39375,-0.355468750000028],[132.85644531250003,-0.417382812500023],[133.47265624999997,-0.726171874999963],[133.97451171875,-0.744335937500026],[134.11152343750004,-0.84677734375002],[134.07197265625004,-1.001855468749994],[134.25957031250007,-1.362988281250026],[134.105859375,-1.720996093749946],[134.19482421875003,-2.309082031249943],[134.45996093749997,-2.83232421874996],[134.48330078125,-2.583007812499972],[134.62744140624997,-2.536718749999963],[134.70214843749997,-2.933593749999986],[134.84335937500006,-2.909179687499986],[134.88681640625006,-3.209863281249966],[135.25156250000012,-3.368554687499966],[135.48662109375002,-3.34511718749998],[135.85917968750002,-2.99531250000004],[136.38994140625002,-2.273339843750037],[137.07207031250002,-2.105078124999949],[137.1710937500001,-2.025488281249991],[137.1234375,-1.840917968749963],[137.80625000000012,-1.483203125],[139.78955078125003,-2.34824218750002],[140.62255859374997,-2.44580078125],[140.74746093750005,-2.607128906249997],[140.97343750000007,-2.609765625]]],[[[104.47421875000012,-0.334667968749955],[104.59013671875002,-0.466601562500017],[104.36318359375,-0.658593749999966],[104.25712890625002,-0.463281249999966],[104.47421875000012,-0.334667968749955]]],[[[127.56699218750006,-0.318945312499949],[127.68242187500002,-0.46835937500002],[127.60498046874997,-0.610156249999946],[127.88017578125002,-0.808691406249991],[127.7611328125,-0.883691406249994],[127.62382812500002,-0.76601562499999],[127.46269531250002,-0.80595703124996],[127.46865234375,-0.64296875],[127.3,-0.500292968749946],[127.32509765625,-0.335839843750023],[127.45517578125012,-0.406347656249991],[127.56699218750006,-0.318945312499949]]],[[[127.24990234375005,-0.4953125],[127.11914062500003,-0.520507812499986],[127.12646484375003,-0.278613281250003],[127.29003906250003,-0.284375],[127.24990234375005,-0.4953125]]],[[[103.73652343750004,-0.347949218750003],[103.461328125,-0.357617187500011],[103.54892578125006,-0.227539062499986],[103.73652343750004,-0.347949218750003]]],[[[130.81328125000007,-0.004101562500026],[131.27685546875003,-0.149804687499952],[131.33974609375005,-0.290332031249989],[131.00537109374997,-0.360742187500037],[130.62216796875006,-0.0859375],[130.89921875000002,-0.344433593749997],[130.7501953125001,-0.44384765625],[130.6886718750001,-0.296582031250011],[130.55078124999997,-0.366406250000026],[130.23662109375002,-0.209667968749983],[130.3625,-0.072851562500006],[130.81328125000007,-0.004101562500026]]],[[[98.45927734375007,-0.530468749999969],[98.30966796875012,-0.531835937499977],[98.4271484375,-0.226464843750037],[98.3229492187501,-0.000781249999974],[98.54414062500004,-0.257617187499989],[98.45927734375007,-0.530468749999969]]],[[[104.77861328125007,-0.175976562499955],[105.00537109374997,-0.282812499999963],[104.44707031250002,-0.189160156249983],[104.54267578125004,0.01772460937498],[104.77861328125007,-0.175976562499955]]],[[[103.28447265625002,0.541943359375011],[103.13955078125,0.549072265625043],[103.18740234375,0.699755859375017],[103.28447265625002,0.541943359375011]]],[[[103.0275390625001,0.746630859374974],[102.4904296875001,0.856640625],[102.50664062500002,1.088769531250037],[103.00244140624997,0.859277343750009],[103.0275390625001,0.746630859374974]]],[[[103.42392578125012,1.048339843749972],[103.31542968750003,1.071289062500028],[103.37998046875006,1.133642578125034],[103.42392578125012,1.048339843749972]]],[[[103.16640625000005,0.870166015625003],[102.7018554687501,1.0537109375],[102.72558593749997,1.158837890625023],[102.99941406250005,1.067773437500023],[103.16640625000005,0.870166015625003]]],[[[104.02480468750005,1.180566406250009],[104.13984375000004,1.165576171874974],[104.06611328125004,0.989550781249989],[103.93222656250012,1.071386718749963],[104.02480468750005,1.180566406250009]]],[[[104.58535156250005,1.21611328124996],[104.66289062500002,1.04951171875004],[104.57519531250003,0.831933593750037],[104.43925781250002,1.050439453125051],[104.25195312499997,1.014892578125],[104.36181640624997,1.18149414062502],[104.58535156250005,1.21611328124996]]],[[[102.4271484375,0.990136718750023],[102.27958984375002,1.075683593750043],[102.25634765625003,1.397070312499963],[102.44287109374997,1.234228515625006],[102.4271484375,0.990136718750023]]],[[[97.48154296875006,1.465087890624972],[97.93193359375002,0.973925781250003],[97.82041015625012,0.564453124999986],[97.683984375,0.596093750000037],[97.60390625000005,0.83388671874998],[97.40537109375012,0.946972656250026],[97.07919921875006,1.425488281249983],[97.35595703124997,1.539746093749997],[97.48154296875006,1.465087890624972]]],[[[102.49189453125004,1.459179687500011],[102.49941406250005,1.330908203124991],[102.02402343750012,1.607958984375031],[102.49189453125004,1.459179687500011]]],[[[124.88886718750004,0.995312500000011],[124.42753906250002,0.470605468750051],[123.75380859375,0.305517578124991],[123.26542968750007,0.326611328125026],[122.996875,0.493505859375006],[121.01298828125002,0.441699218750017],[120.57900390625,0.5283203125],[120.19228515625,0.268505859374997],[120.01328125000012,-0.196191406249994],[120.062890625,-0.555566406250023],[120.240625,-0.868261718749949],[120.51757812499997,-1.039453125],[120.66738281250005,-1.370117187499972],[121.14853515625012,-1.33945312500002],[121.5755859375,-0.828515625000023],[121.96962890625005,-0.933300781249969],[122.27998046875004,-0.757031250000026],[122.88876953125006,-0.755175781250003],[122.8294921875,-0.658886718750026],[123.17148437500012,-0.57070312499999],[123.37968750000002,-0.648535156249949],[123.43417968750006,-0.778222656249994],[123.37792968749997,-1.004101562500011],[122.90283203125003,-0.900976562499963],[122.25068359375004,-1.555273437500034],[121.8585937500001,-1.69326171874998],[121.65097656250006,-1.895410156249952],[121.35546874999997,-1.878222656250003],[122.29169921875004,-2.907617187500023],[122.39902343750006,-3.200878906249997],[122.25292968749997,-3.620410156250017],[122.68964843750004,-4.084472656249972],[122.84794921875002,-4.064550781250006],[122.8722656250001,-4.391992187500009],[122.71972656250003,-4.340722656249952],[122.11425781250003,-4.540234375000011],[122.03808593749997,-4.832421875000023],[121.58867187500007,-4.759570312500017],[121.48652343750004,-4.581054687499972],[121.61806640625,-4.092675781249952],[120.89179687500004,-3.520605468750034],[121.05429687500012,-3.167089843749949],[121.0521484375,-2.751660156249955],[120.87939453124997,-2.64560546875002],[120.65361328125002,-2.667578124999977],[120.26103515625007,-2.949316406249991],[120.43662109375012,-3.70732421874996],[120.42011718750004,-4.617382812500011],[120.27929687499997,-5.146093749999977],[120.4303710937501,-5.591015625000026],[119.9515625,-5.577636718749972],[119.71728515625003,-5.693359375000014],[119.55742187500007,-5.611035156250026],[119.36035156249997,-5.314160156250026],[119.59404296875007,-4.523144531249997],[119.62363281250006,-4.034375],[119.46748046875004,-3.512988281249989],[118.99462890624997,-3.537597656250028],[118.86767578124997,-3.39804687500002],[118.78330078125006,-2.720800781249977],[119.09218750000005,-2.482910156250014],[119.32187500000012,-1.929687500000014],[119.308984375,-1.408203125],[119.508203125,-0.906738281249972],[119.71132812500005,-0.680761718750034],[119.84433593750006,-0.861914062499991],[119.721875,-0.088476562499991],[119.865625,0.040087890625003],[119.80927734375004,0.238671875000051],[119.9132812500001,0.445068359375],[120.26953125000003,0.970800781249991],[120.60253906249997,0.854394531249994],[120.86796875000007,1.25283203124998],[121.0817382812501,1.327636718750028],[121.40410156250002,1.243603515624969],[121.59179687499997,1.067968749999977],[122.43662109375006,1.018066406250028],[122.83828125,0.845703125],[123.06650390625006,0.941796875000037],[123.93076171875006,0.850439453124977],[124.53369140624997,1.230468750000043],[124.94707031250002,1.672167968749974],[125.11093750000012,1.685693359374966],[125.2337890625,1.502294921875006],[124.88886718750004,0.995312500000011]]],[[[101.70810546875006,2.078417968750045],[101.71943359375004,1.789160156250006],[101.50078125000002,1.733203124999974],[101.40966796875003,2.021679687500026],[101.70810546875006,2.078417968750045]]],[[[127.73271484375007,0.848144531250043],[127.8810546875001,0.832128906249977],[127.96728515624997,1.042578125000048],[128.16074218750006,1.1578125],[128.22246093750002,1.400634765624986],[128.68837890625,1.572558593750017],[128.70263671874997,1.106396484374997],[128.29882812500003,0.87680664062502],[128.26064453125,0.733789062500023],[128.61123046875,0.549951171875051],[128.89960937500004,0.216259765625011],[127.9831054687501,0.471875],[127.88740234375004,0.298339843750043],[127.97783203125002,-0.24833984374996],[128.4254882812501,-0.892675781249949],[128.04638671875003,-0.706054687499943],[127.69160156250004,-0.241894531249983],[127.70869140625004,0.288085937499986],[127.53710937500003,0.610888671875031],[127.60800781250006,0.848242187499977],[127.42851562500002,1.139990234374991],[127.63173828125,1.843701171875011],[128.03642578125002,2.199023437500017],[127.88681640625012,1.83295898437504],[128.0109375000001,1.701220703125031],[128.01171874999997,1.331738281249983],[127.65283203124997,1.013867187499969],[127.73271484375007,0.848144531250043]]],[[[97.3341796875001,2.075634765625011],[97.10830078125,2.216894531250006],[97.29140625,2.200830078125023],[97.3341796875001,2.075634765625011]]],[[[128.45390625000002,2.051757812500028],[128.29589843749997,2.034716796875017],[128.2179687500001,2.297460937499991],[128.60214843750012,2.59760742187504],[128.68847656250003,2.473681640625017],[128.62324218750004,2.224414062500031],[128.45390625000002,2.051757812500028]]],[[[96.46367187500002,2.360009765625037],[95.80859374999997,2.655615234375034],[95.7171875,2.825976562500017],[95.89580078125007,2.8890625],[96.41728515625007,2.515185546875031],[96.46367187500002,2.360009765625037]]],[[[108.8875,2.905419921875037],[108.7865234375,2.885644531250009],[108.88574218750003,2.998974609374997],[108.8875,2.905419921875037]]],[[[105.76035156250006,2.863037109375014],[105.69218750000002,3.0625],[105.83671875000007,2.97651367187504],[105.76035156250006,2.863037109375014]]],[[[106.28525390625006,3.15712890624998],[106.28369140624997,3.088232421874977],[106.20097656250002,3.204882812500031],[106.28525390625006,3.15712890624998]]],[[[117.65839843750004,3.280517578124986],[117.54785156250003,3.43198242187502],[117.68085937500004,3.407519531250017],[117.65839843750004,3.280517578124986]]],[[[125.65810546875,3.436035156250043],[125.51152343750007,3.461132812500011],[125.46884765625006,3.73325195312502],[125.65810546875,3.436035156250043]]],[[[117.88476562499997,4.186132812500006],[117.92285156250003,4.054296874999977],[117.73681640624997,4.004003906250034],[117.64902343750012,4.168994140624974],[117.88476562499997,4.186132812500006]]],[[[108.31601562500006,3.689648437500026],[108.10039062500002,3.70454101562504],[108.24326171875006,3.810351562500017],[108.00234375,3.982861328124983],[108.24833984375002,4.21713867187502],[108.39287109375007,3.986181640625034],[108.31601562500006,3.689648437500026]]],[[[117.5744140625001,4.17060546875004],[117.46533203124997,4.076074218749966],[117.77724609375005,3.689257812500031],[117.05595703125007,3.622656249999963],[117.34628906250006,3.426611328124991],[117.35244140625,3.19375],[117.61064453125002,3.064355468749994],[117.56914062500002,2.92929687500002],[117.69765625,2.887304687499991],[117.6388671875001,2.825292968749963],[118.0666015625001,2.317822265624969],[117.7892578125001,2.026855468750014],[118.98496093750006,0.982128906249983],[118.53476562500006,0.813525390625017],[118.19609375000002,0.874365234374977],[117.91162109374997,1.098681640625017],[117.96425781250005,0.889550781250051],[117.74511718749997,0.72963867187498],[117.52216796875004,0.235888671875017],[117.46289062500003,-0.323730468749957],[117.5625,-0.770898437500009],[116.91396484375,-1.223632812499972],[116.73984375000006,-1.044238281250017],[116.75341796874997,-1.327343749999955],[116.27548828125006,-1.784863281249997],[116.42431640625003,-1.784863281249997],[116.45195312500002,-1.923144531250017],[116.31396484374997,-2.139843750000011],[116.56542968749997,-2.299707031249994],[116.52929687499997,-2.51054687499996],[116.31679687500005,-2.55185546875002],[116.33066406250012,-2.902148437499974],[116.16630859375002,-2.934570312500014],[116.2572265625,-3.126367187500009],[115.95615234375012,-3.595019531250003],[114.6935546875001,-4.169726562500017],[114.5255859375001,-3.376660156250011],[114.44599609375004,-3.481835937500037],[114.34433593750012,-3.444433593749963],[114.34433593750012,-3.23515625],[114.23632812500003,-3.36113281249996],[114.0822265625001,-3.27890625],[113.70507812499997,-3.45527343750004],[113.6100585937501,-3.195703125],[113.34316406250005,-3.246484374999966],[113.03398437500002,-2.933496093749966],[112.97148437500002,-3.187109375000034],[112.75800781250004,-3.322167968750009],[112.60029296875004,-3.400488281249977],[112.28496093750002,-3.32099609375004],[111.85810546875004,-3.551855468750006],[111.82304687500007,-3.057226562499949],[111.69472656250005,-2.88945312499996],[110.93007812500005,-3.071093750000017],[110.82968750000012,-2.9951171875],[110.89931640625,-2.908593749999952],[110.703125,-3.020898437500009],[110.57402343750007,-2.89140625],[110.25605468750004,-2.966113281249946],[110.09658203125,-2.001367187499966],[109.95986328125,-1.862792968749972],[109.98330078125,-1.274804687499994],[109.78740234375007,-1.011328124999963],[109.25878906250003,-0.807421874999989],[109.37275390625004,-0.638183593749972],[109.12109375000003,-0.39091796874996],[109.2575195312501,0.031152343750051],[108.94453125000004,0.355664062499997],[108.91679687500007,0.912646484375045],[108.95859375000006,1.134619140624963],[109.1315429687501,1.253857421875011],[109.01025390624997,1.239648437500051],[109.07587890625004,1.495898437500031],[109.37851562500006,1.922705078125034],[109.62890625000003,2.027539062499983],[109.53896484375,1.89619140625004],[109.65400390625004,1.614892578125023],[110.50576171875005,0.861962890625023],[111.10136718750002,1.050537109374986],[111.80898437500005,1.011669921874969],[112.078515625,1.143359374999974],[112.1857421875001,1.4390625],[112.47617187500006,1.559082031250028],[112.94296875000006,1.566992187500034],[113.00654296875004,1.433886718750003],[113.6222656250001,1.2359375],[113.90234375000003,1.434277343749997],[114.5125,1.452001953124963],[114.83056640625003,1.980029296874989],[114.78642578125002,2.250488281250014],[115.1791015625,2.523193359374972],[115.08076171875004,2.63422851562504],[115.117578125,2.89487304687502],[115.24697265625005,3.025927734374989],[115.45439453125002,3.034326171875009],[115.67880859375006,4.193017578124994],[115.86074218750005,4.348046875000037],[116.51474609375006,4.370800781249969],[117.10058593750003,4.337060546875023],[117.5744140625001,4.17060546875004]]],[[[126.81660156250004,4.033496093750003],[126.70449218750005,4.070996093749997],[126.81357421875006,4.258496093750011],[126.72207031250005,4.344189453124969],[126.75732421874997,4.547900390624989],[126.9210937500001,4.291015624999972],[126.81660156250004,4.033496093750003]]],[[[96.49257812500005,5.229345703124991],[97.54716796875002,5.205859375],[98.2484375,4.41455078125],[98.3073242187501,4.09287109375002],[99.73232421875005,3.183056640625026],[100.523828125,2.18916015625004],[100.88789062500004,1.948242187499986],[100.82822265625012,2.242578125],[101.04619140625002,2.257470703125023],[101.47666015625006,1.693066406250054],[102.019921875,1.442138671875],[102.38994140625007,0.84199218750004],[103.03183593750006,0.57890625],[103.0075195312501,0.415332031249974],[102.55,0.216455078124966],[103.33896484375012,0.513720703125045],[103.67265625000007,0.288916015624977],[103.78671875000012,0.046972656249991],[103.42851562500007,-0.19179687499998],[103.40517578125005,-0.36220703124998],[103.5091796875,-0.465527343749969],[103.43857421875006,-0.575585937500009],[103.72109375,-0.886718749999986],[104.36054687500004,-1.038378906249974],[104.51591796875002,-1.81943359375002],[104.84521484375003,-2.092968749999969],[104.65078125000005,-2.595214843749972],[104.97080078125012,-2.370898437500017],[105.39697265624997,-2.380175781249946],[106.0443359375,-3.10625],[105.84375,-3.61367187499998],[105.93046875000007,-3.833007812499986],[105.83144531250005,-4.16289062499996],[105.88720703124997,-5.009570312499974],[105.74833984375007,-5.818261718749966],[105.34941406250007,-5.549511718750011],[105.08134765625002,-5.74550781249998],[104.63955078125005,-5.520410156250037],[104.68398437500005,-5.89267578125002],[104.60156249999997,-5.90458984374996],[103.8314453125,-5.079589843750028],[102.53769531250006,-4.152148437499989],[102.12753906250006,-3.599218749999963],[101.57861328124997,-3.166992187500014],[100.88955078125,-2.248535156249957],[100.85527343750002,-1.934179687499949],[100.30820312500006,-0.82666015625],[99.66982421875005,0.045068359375037],[99.15917968749997,0.351757812499997],[98.59531250000006,1.864599609375006],[97.70078125000006,2.358544921875009],[97.59082031249997,2.846582031250037],[97.3913085937501,2.975292968749969],[96.9689453125001,3.575146484374969],[96.44472656250005,3.81630859374998],[95.57861328125003,4.661962890625048],[95.20664062500006,5.284033203125034],[95.22783203125002,5.564794921875034],[95.62890625000003,5.609082031249997],[96.13330078125003,5.294287109374991],[96.49257812500005,5.229345703124991]]]]},"properties":{"name":"Indonesia","childNum":107}},{"geometry":{"type":"Polygon","coordinates":[[[-4.412060546874983,54.185351562499996],[-4.785351562499983,54.073046875],[-4.424707031249994,54.407177734375],[-4.412060546874983,54.185351562499996]]]},"properties":{"name":"Isle of Man","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[75.32221348233018,32.28516356678968],[75.62496871116024,32.28516356678968],[75.73585997688717,32.78417426256088],[76.32728006076415,32.87658365066666],[76.62299010270264,33.32014871357439],[77.06655516561037,33.301666835953235],[77.71342088235082,32.6917648744551],[78.10154031239509,32.87658365066666],[78.49194250885338,32.53122786149202],[78.38964843749997,32.51987304687498],[78.41748046874997,32.466699218749994],[78.4552734375001,32.30034179687502],[78.49589843750002,32.21577148437504],[78.72558593750009,31.983789062500023],[78.71972656250009,31.887646484374983],[78.69345703125006,31.740380859374994],[78.7550781250001,31.55029296875],[78.74355468750005,31.323779296875017],[79.10712890625004,31.402636718750102],[79.38847656250013,31.064208984375085],[79.66425781250004,30.96523437499999],[79.92451171875004,30.888769531250034],[80.20712890625006,30.683740234375023],[80.19121093750002,30.56840820312496],[80.87353515625003,30.290576171875045],[80.98544921875006,30.23710937499999],[81.01025390625014,30.164501953125097],[80.96611328125002,30.180029296875063],[80.90761718750005,30.171923828125017],[80.84814453125009,30.139746093750034],[80.81992187500012,30.119335937499955],[80.68408203125014,29.994335937500068],[80.54902343750015,29.899804687499994],[80.40185546875003,29.730273437500102],[80.31689453125014,29.572070312500017],[80.25488281250009,29.423339843750114],[80.25595703125006,29.318017578125136],[80.23300781250006,29.194628906250045],[80.16953125000012,29.124316406250102],[80.13046875000006,29.100390625000045],[80.08457031249995,28.994189453125074],[80.05166015625,28.870312500000068],[80.07070312500005,28.830175781250063],[80.22656250000003,28.723339843750125],[80.32480468750012,28.66640625000008],[80.41855468749995,28.61201171875001],[80.47910156250012,28.604882812499994],[80.49580078125015,28.635791015625074],[80.51787109375002,28.665185546875023],[80.58701171875006,28.64960937500004],[81.16894531250014,28.335009765625074],[81.85263671875018,27.867089843750136],[81.89687500000011,27.87446289062504],[81.94521484375005,27.89926757812495],[81.98769531250016,27.91376953125004],[82.03701171875,27.90058593750004],[82.11191406250006,27.86494140625004],[82.28769531250018,27.756542968749983],[82.45136718750004,27.671826171874955],[82.62988281249997,27.687060546875045],[82.67734375000006,27.67343749999995],[82.71083984375005,27.596679687500114],[82.73339843750003,27.518994140625097],[83.28974609375004,27.370996093750136],[83.36943359375002,27.410253906249977],[83.38398437500004,27.444824218750085],[83.44716796875011,27.46533203125],[83.55166015625011,27.456347656249932],[83.74697265625011,27.395947265625068],[83.8288085937501,27.377832031250108],[84.09101562499993,27.491357421875136],[84.22978515625007,27.427832031250006],[84.48085937500005,27.348193359375102],[84.61015625000002,27.298681640624977],[84.64072265625012,27.249853515624977],[84.65478515625014,27.20366210937499],[84.65380859375009,27.09169921875008],[84.68535156250013,27.041015625000057],[85.19179687500011,26.766552734375097],[85.29296875000009,26.741015625000045],[85.56845703125012,26.839843750000114],[85.64843749999997,26.829003906250023],[85.69990234375004,26.781640624999966],[85.73730468750003,26.639746093750034],[85.79453125000006,26.60415039062505],[86.00732421875009,26.64936523437504],[86.70136718750015,26.435058593750057],[87.01640625000002,26.555419921875085],[87.2874023437499,26.360302734375125],[87.41357421875014,26.42294921875009],[87.84921875000006,26.43691406250008],[87.99511718750014,26.38237304687499],[88.02695312500023,26.395019531250085],[88.05488281250004,26.43002929687492],[88.11152343750004,26.58642578125],[88.1615234375,26.724804687500125],[88.15722656250009,26.807324218750068],[88.1110351562501,26.928466796875057],[87.99316406250009,27.086083984374994],[87.984375,27.133935546874994],[88.14697265625014,27.749218750000097],[88.15029296875011,27.843310546875074],[88.10976562500005,27.87060546874997],[88.10898437499995,27.93300781250005],[88.14111328125003,27.948925781250097],[88.27519531250013,27.96884765625009],[88.42597656250015,28.011669921875097],[88.57792968750002,28.093359375000034],[88.80371093750003,28.006933593750034],[88.74902343749997,27.521875000000136],[88.7648437500001,27.429882812500068],[88.83251953125003,27.362841796875074],[88.89140625000002,27.316064453125136],[88.88164062500007,27.29746093750009],[88.76035156250006,27.21811523437509],[88.73876953125009,27.175585937499932],[88.85761718750015,26.961474609375017],[89.14824218750002,26.816162109375085],[89.33212890625018,26.848632812500114],[89.58613281250004,26.778955078125136],[89.60996093750012,26.719433593750097],[89.71093750000009,26.713916015625045],[89.76386718750004,26.7015625],[89.94316406250013,26.723925781249932],[90.12294921875011,26.754589843749983],[90.20605468749997,26.847509765625063],[90.34589843750004,26.890332031250097],[90.73964843750005,26.771679687500068],[91.2865234375,26.78994140625008],[91.42675781249997,26.867089843749966],[91.45585937500013,26.866894531250125],[91.51757812500009,26.807324218750068],[91.67158203124993,26.80200195312503],[91.84208984375013,26.852978515625125],[91.94375,26.860839843750114],[91.99833984375013,26.85498046875],[92.04970703125016,26.87485351562495],[92.73155507489682,26.833697862861648],[93.30975376159499,26.784950522650554],[93.61047043679247,27.32239435188504],[94.06979001484449,27.589407158584788],[95.10800937321915,27.749636881153737],[95.74000740838363,28.116850432722256],[96.19577594042592,28.04291597700983],[96.96279296875,27.698291015625017],[96.88359375000013,27.514843750000125],[96.90195312500012,27.43959960937508],[97.10371093749993,27.163330078125114],[97.10205078125003,27.115429687500125],[96.95341796875013,27.13330078125003],[96.79785156249997,27.29619140624999],[96.19082031250005,27.26127929687499],[95.20146484375007,26.641406250000017],[95.05976562500015,26.473974609375006],[95.06894531250006,26.191113281250097],[95.10839843750014,26.091406250000034],[95.12929687500011,26.070410156250034],[95.13242187500006,26.041259765624943],[94.99199218750002,25.77045898437504],[94.66777343750007,25.458886718749966],[94.55302734375013,25.215722656249994],[94.70371093750012,25.097851562499955],[94.49316406250003,24.637646484374983],[94.37724609375002,24.473730468750006],[94.29306640625012,24.321875],[94.07480468750006,23.8720703125],[93.68339843750007,24.00654296875004],[93.45214843750003,23.987402343750034],[93.32626953125006,24.064208984375057],[93.36601562500007,23.132519531249955],[93.34941406250007,23.08496093750003],[93.20390625000002,23.03701171875005],[93.07871093750018,22.718212890625097],[93.16201171875,22.360205078125006],[93.07060546875002,22.20942382812501],[92.96455078125015,22.003759765625034],[92.90947265625013,21.988916015625023],[92.85429687500002,22.010156250000108],[92.77138671875,22.104785156250017],[92.68896484375009,22.130957031250006],[92.63037109375014,22.011328124999977],[92.57490234374993,21.97807617187496],[92.5612304687501,22.04804687500001],[92.49140625000004,22.685400390625006],[92.46445312500006,22.734423828125045],[92.36162109375002,22.929003906250074],[92.33378906250002,23.242382812499955],[92.24609375000003,23.68359374999997],[92.04404296875006,23.677783203125017],[91.97851562500003,23.691992187500063],[91.92958984375011,23.685986328125097],[91.92949218750019,23.598242187499977],[91.93789062500011,23.504687500000102],[91.75419921875013,23.28730468750004],[91.75097656250003,23.053515625000017],[91.55351562500013,22.991552734375006],[91.43623046875004,23.19990234375001],[91.359375,23.06835937500003],[91.16044921875019,23.660644531250085],[91.35019531250012,24.06049804687501],[91.72656250000003,24.20507812499997],[91.84619140624997,24.175292968749943],[92.06416015625004,24.374365234375006],[92.11748046875002,24.493945312500017],[92.22666015625012,24.77099609374997],[92.22832031250002,24.881347656250085],[92.2512695312499,24.895068359375045],[92.38496093750004,24.848779296875023],[92.46835937500018,24.944140625000074],[92.04970703125016,25.16948242187499],[90.61308593750002,25.16772460937497],[90.11962890625003,25.21997070312497],[89.86630859375012,25.293164062499955],[89.81406250000006,25.305371093749955],[89.80087890625012,25.33613281250001],[89.82490234375004,25.56015625],[89.82294921875015,25.94140625000003],[89.67089843750009,26.213818359375125],[89.57275390625003,26.13232421875003],[89.54990234375006,26.00527343750008],[89.28925781250015,26.037597656250085],[89.01865234375012,26.410253906249977],[88.95195312500002,26.412109375],[88.97041015625004,26.250878906250023],[88.94072265625002,26.24536132812497],[88.68281250000004,26.291699218749983],[88.51826171875004,26.51777343750004],[88.36992187500002,26.56411132812508],[88.35146484375005,26.482568359374966],[88.38623046875003,26.471533203125034],[88.44042968749997,26.369482421875034],[88.33398437499997,26.257519531249955],[88.15078125000005,26.087158203125057],[88.1066406250001,25.841113281250045],[88.14746093749997,25.811425781250023],[88.50244140625009,25.53701171875008],[88.76914062500006,25.490478515625],[88.85478515625002,25.333544921875017],[88.94414062500002,25.290771484375],[88.92978515625012,25.222998046875063],[88.57382812500006,25.18789062499999],[88.45625,25.188427734375125],[88.37294921875016,24.961523437500063],[88.31337890625011,24.8818359375],[88.27949218750015,24.881933593750034],[88.18886718750016,24.920605468750097],[88.14980468750011,24.91464843749995],[88.04511718750015,24.71303710937508],[88.03027343750009,24.664453125000136],[88.02343750000003,24.627832031250136],[88.07910156250009,24.549902343750063],[88.14550781250003,24.485791015624955],[88.225,24.460644531249983],[88.3375,24.45385742187503],[88.49853515625003,24.34663085937504],[88.64228515625015,24.325976562500102],[88.72353515625011,24.27490234375],[88.7335937500001,24.230908203125097],[88.72656250000009,24.18623046875004],[88.71376953125016,24.069628906250102],[88.69980468750006,24.00253906249992],[88.56738281250009,23.674414062500034],[88.63574218749997,23.55],[88.69765625,23.493017578125034],[88.72441406250002,23.254980468750034],[88.89707031250018,23.21040039062501],[88.92812500000011,23.186621093749977],[88.89970703125002,22.843505859375057],[88.92070312500002,22.632031249999955],[89.05,22.274609374999983],[89.02792968750023,21.937207031249983],[88.94931640625018,21.937939453125125],[89.05166015625,21.654101562500045],[88.85751953125012,21.744677734375017],[88.74501953125011,21.584375],[88.74023437500003,22.005419921875017],[88.64160156250003,22.121972656250136],[88.58466796875015,21.659716796874932],[88.44599609375004,21.614257812500085],[88.28750000000016,21.758203125000108],[88.25371093750002,21.622314453124943],[88.0568359375001,21.694140625000017],[88.19628906249997,22.139550781249994],[87.94140625000003,22.374316406250045],[88.15927734375018,22.12172851562508],[87.82373046875003,21.727343750000045],[87.20068359375009,21.544873046874983],[86.95410156250014,21.365332031250006],[86.84228515625009,21.106347656249994],[86.97548828125005,20.70014648437501],[86.75039062500011,20.313232421875057],[86.37656250000006,20.006738281249966],[86.24521484375012,20.05302734374999],[86.27949218750021,19.919433593749943],[85.575,19.69291992187499],[85.496875,19.696923828125108],[85.50410156250004,19.887695312500057],[85.24863281250006,19.757666015625034],[85.18076171875018,19.59487304687508],[85.44160156249993,19.626562499999977],[84.77099609375009,19.125390625000023],[84.10410156250018,18.29267578125001],[82.35957031250004,17.09619140624997],[82.25878906250014,16.55986328124996],[81.76191406250015,16.32949218750008],[81.28613281249997,16.337060546875023],[80.97871093750004,15.758349609375074],[80.64658203125006,15.895019531250028],[80.29345703125014,15.710742187499989],[80.0534179687501,15.074023437499932],[80.17871093750003,14.478320312500074],[80.11171875000005,14.212207031250045],[80.30654296875016,13.485058593750054],[80.15625,13.713769531250108],[80.06210937500006,13.60625],[80.34238281250006,13.361328125000071],[80.22910156250018,12.690332031249966],[79.85849609375018,11.988769531250043],[79.69316406250007,11.312548828124946],[79.79902343750004,11.338671874999932],[79.84863281250009,11.196875],[79.83818359375002,10.322558593750045],[79.31455078125018,10.256689453124949],[78.93994140625009,9.565771484375063],[79.01992187500005,9.333349609374963],[79.41142578125002,9.192382812500014],[78.97958984375018,9.268554687500085],[78.42148437500006,9.105029296874989],[78.19248046874995,8.890869140625057],[78.06015625000006,8.384570312499932],[77.51757812500003,8.078320312500068],[77.06591796875003,8.315917968749986],[76.5534179687501,8.902783203124997],[76.32460937500016,9.452099609374997],[76.24238281250004,9.927099609374949],[76.37558593750006,9.539892578124935],[76.45878906250013,9.536230468750077],[76.34648437500002,9.922119140625],[76.19560546875002,10.086132812500026],[75.72382812500015,11.361767578125026],[74.94550781250004,12.56455078124992],[74.38222656250005,14.494726562500048],[73.94921875000014,15.074755859375088],[73.80078125000009,15.39697265625],[73.93193359375013,15.39697265625],[73.77177734375013,15.573046874999989],[73.83281250000013,15.659375],[73.67988281250015,15.708886718750136],[73.47607421875003,16.05424804687496],[72.87548828124997,18.642822265625114],[72.97207031250011,19.15332031250003],[72.8346679687501,18.975585937500057],[72.80302734375013,19.07929687500004],[72.81162109375,19.298925781250006],[72.98720703125,19.27744140625009],[72.78789062500013,19.362988281250097],[72.66777343750019,19.83095703125005],[72.89375,20.672753906250136],[72.81386718750011,21.117187500000085],[72.62382812500002,21.371972656250108],[72.73476562500016,21.470800781250006],[72.61328125000009,21.461816406250108],[73.1125,21.750439453125125],[72.54306640625,21.69658203124999],[72.70019531250003,21.971923828124943],[72.52226562500013,21.976220703125108],[72.55302734375007,22.159960937500074],[72.80917968749995,22.23330078125008],[72.18281250000015,22.26972656250004],[72.30644531250002,22.18920898437497],[72.27441406250009,22.089746093749966],[72.03720703125006,21.82304687499999],[72.2103515625,21.72822265625004],[72.25400390625006,21.531005859375],[72.01523437500012,21.155712890625097],[71.0246093750001,20.73886718750009],[70.71933593750006,20.740429687500068],[70.12734375,21.094677734375097],[68.96992187500021,22.29028320312497],[69.05166015625016,22.437304687500074],[69.27656250000004,22.285498046875063],[70.17724609375014,22.57275390624997],[70.48925781250009,23.08950195312508],[70.33945312500012,22.939746093749932],[69.66464843750006,22.759082031250074],[69.23593749999995,22.848535156250023],[68.64072265625006,23.189941406250114],[68.41748046875009,23.57148437500004],[68.7767578125,23.852099609375017],[68.23496093749995,23.596972656250074],[68.16503906250009,23.857324218749994],[68.28251953125013,23.927978515625],[68.38125000000016,23.950878906250068],[68.48867187500011,23.96723632812501],[68.5866210937501,23.966601562500074],[68.72412109375003,23.964697265625034],[68.72812500000012,24.265625],[68.73964843750016,24.291992187500085],[68.75898437499993,24.307226562500006],[68.78115234375011,24.313720703125085],[68.8,24.30908203125003],[68.82832031250004,24.26401367187509],[68.86347656250015,24.26650390625005],[68.90078125000011,24.29243164062501],[68.98457031250015,24.273095703124966],[69.05156250000013,24.28632812500001],[69.11953125000011,24.26865234374995],[69.23505859374993,24.268261718750068],[69.44345703124995,24.275390625000085],[69.55917968750006,24.273095703124966],[69.80517578125009,24.16523437500004],[70.0982421875,24.2875],[70.28906250000009,24.356298828125063],[70.54677734375,24.418310546875063],[70.56503906250006,24.385791015625017],[70.55585937500015,24.331103515625074],[70.57929687500015,24.279052734374943],[70.65947265625013,24.24609374999997],[70.71630859375009,24.237988281250097],[70.7672851562501,24.245410156250017],[70.80507812500011,24.26196289062503],[70.88623046875014,24.34375],[70.92812500000016,24.362353515625045],[70.98281250000011,24.361035156250125],[71.04404296875006,24.400097656250097],[71.04531250000005,24.42998046874996],[70.96982421875012,24.571875],[70.97636718750013,24.61875],[71.00234375000016,24.6539062499999],[71.04785156250003,24.687744140625085],[71.02070312500021,24.75766601562492],[70.95087890625015,24.89160156250003],[70.87773437500019,25.06298828124997],[70.65205078125004,25.422900390625102],[70.64843750000003,25.666943359375068],[70.5695312500001,25.705957031250023],[70.50585937500009,25.685302734375085],[70.44853515625013,25.681347656249983],[70.26464843750009,25.70654296874997],[70.10019531250006,25.91005859375005],[70.14921875000002,26.347558593749994],[70.11464843750016,26.548046874999983],[69.47001953125002,26.804443359375],[69.56796875,27.174609375000102],[69.89628906250007,27.473632812500085],[70.04980468750009,27.694726562500023],[70.14453125000003,27.849023437499994],[70.19394531250006,27.89487304687492],[70.24433593750004,27.934130859375102],[70.4037109375,28.025048828124994],[70.48857421875013,28.023144531250125],[70.62910156250015,27.937451171875068],[70.6916015625001,27.76899414062504],[70.79794921875012,27.709619140625023],[70.87490234375016,27.71445312499995],[71.18476562500004,27.831640625],[71.54296875000003,27.869873046875],[71.8703125000001,27.9625],[71.88886718750004,28.04746093749992],[71.94804687500002,28.177294921875102],[72.12851562500012,28.34633789062508],[72.29199218750003,28.69726562499997],[72.34189453125006,28.751904296875097],[72.90332031250003,29.02875976562501],[73.38164062500013,29.934375],[73.8091796875,30.093359375],[73.88652343750013,30.162011718750136],[73.93339843750002,30.222070312500108],[73.92460937500007,30.28164062499999],[73.88271484375,30.352148437499977],[73.89931640625,30.435351562500045],[74.00898437500004,30.519677734374994],[74.33935546875003,30.893554687499943],[74.38037109375003,30.89340820312509],[74.50976562500009,30.959667968750097],[74.63281250000014,31.034667968750114],[74.62578125000002,31.068750000000108],[74.61035156250009,31.112841796875045],[74.51767578125012,31.185595703124932],[74.53496093750007,31.261376953125108],[74.59394531249993,31.465380859375102],[74.58183593750013,31.523925781250114],[74.50996093750015,31.712939453125074],[74.52597656249995,31.765136718750057],[74.55556640625011,31.818554687500097],[74.63574218750003,31.889746093750034],[74.73945312500015,31.948828125],[75.07148437500015,32.08935546875003],[75.13876953125,32.10478515624999],[75.25410156250004,32.140332031250125],[75.33349609374997,32.279199218749994],[75.32221348233018,32.28516356678968]]]]},"properties":{"name":"India","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[72.49199218750002,-7.37744140625],[72.42910156250002,-7.435351562500003],[72.34970703125,-7.263378906250011],[72.447265625,-7.395703125000011],[72.44560546875002,-7.220410156250011],[72.49199218750002,-7.37744140625]]]},"properties":{"name":"Br. Indian Ocean Ter.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-9.948193359374926,53.91313476562499],[-10.265722656249949,53.977685546874994],[-9.99638671874996,54.00361328125004],[-9.948193359374926,53.91313476562499]]],[[[-6.218017578125,54.08872070312506],[-6.347607421874926,53.94130859375005],[-6.027392578124989,52.927099609375006],[-6.463183593749932,52.345361328124994],[-6.325,52.246679687500034],[-6.890234375,52.15922851562499],[-6.965771484374926,52.24951171875],[-8.057812499999926,51.82558593750005],[-8.4091796875,51.888769531250034],[-8.349121093749943,51.73930664062496],[-8.813427734374926,51.584912109374955],[-9.737304687499943,51.473730468750034],[-9.524902343750028,51.68110351562501],[-10.120751953124994,51.60068359375006],[-9.598828124999983,51.87441406250005],[-10.341064453124943,51.798925781250034],[-9.909667968749972,52.122949218749966],[-10.39023437499992,52.134912109374994],[-10.356689453125,52.20693359375002],[-9.772119140624937,52.250097656250034],[-9.90605468749996,52.403710937499966],[-9.632226562499937,52.54692382812502],[-8.783447265624943,52.679638671874955],[-8.990283203124989,52.755419921875045],[-9.175390624999949,52.634912109374994],[-9.916601562499977,52.56972656250005],[-9.46489257812496,52.82319335937498],[-9.299218749999966,53.09755859375002],[-8.930126953124983,53.207080078125045],[-9.51420898437496,53.23823242187498],[-10.091259765624926,53.41284179687503],[-10.116992187499932,53.548535156249955],[-9.720654296874926,53.6044921875],[-9.901611328124943,53.72719726562502],[-9.578222656249949,53.80541992187497],[-9.578857421875,53.879833984374955],[-9.9140625,53.863720703124955],[-9.856445312499972,54.095361328124994],[-10.092675781249966,54.15576171875003],[-10.056396484374943,54.25781250000006],[-8.545556640624994,54.24121093750003],[-8.623144531249977,54.346875],[-8.133447265624966,54.64082031250001],[-8.763916015624972,54.68120117187496],[-8.377294921874977,54.88945312500002],[-8.274609374999955,55.146289062500045],[-7.667089843749977,55.25649414062502],[-7.65874023437496,54.97094726562503],[-7.308789062500011,55.365820312500006],[-6.961669921874972,55.23789062500006],[-7.218652343749937,55.09199218749998],[-7.55039062499992,54.767968749999966],[-7.910595703124955,54.698339843750006],[-7.75439453125,54.59492187499998],[-8.118261718749977,54.41425781250004],[-7.606542968750006,54.14384765625002],[-7.324511718750017,54.13344726562502],[-7.007714843749937,54.40668945312501],[-6.649804687499937,54.05864257812496],[-6.218017578125,54.08872070312506]]]]},"properties":{"name":"Ireland","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[56.18798828125003,26.92114257812497],[55.95429687500004,26.70112304687501],[55.31152343749997,26.592626953125006],[55.76259765625005,26.81196289062504],[55.75761718750002,26.94765625000005],[56.279394531250006,26.952099609374983],[56.18798828125003,26.92114257812497]]],[[[46.1144531250001,38.877783203125034],[46.490625,38.90668945312498],[47.995898437500074,39.683935546875034],[48.322167968749994,39.39907226562502],[48.10439453125005,39.241113281249994],[48.292089843750006,39.01884765624999],[47.99648437499999,38.85375976562503],[48.59267578125005,38.41108398437498],[48.86875,38.43549804687498],[48.95996093750003,37.89013671875],[49.171191406250074,37.60058593749997],[50.13046875,37.407128906249994],[50.53320312499997,37.01367187500006],[51.11855468750005,36.742578124999966],[52.19013671875004,36.62172851562505],[53.76767578125006,36.93032226562502],[53.91542968750005,36.93032226562502],[53.67949218750002,36.853125],[53.970117187499994,36.818310546874955],[53.91416015625006,37.34355468750002],[54.6994140625001,37.47016601562498],[54.90009765625004,37.77792968750006],[55.38085937500003,38.051123046875034],[56.272070312500006,38.080419921875034],[56.440625,38.249414062499994],[57.1935546875001,38.216406250000034],[57.35371093750004,37.97333984374998],[58.261621093749994,37.665820312500045],[58.81542968750003,37.683496093749994],[59.30175781249997,37.51064453125005],[59.454980468749994,37.25283203125002],[60.06279296875002,36.962890625],[60.34130859375003,36.63764648437501],[61.11962890625003,36.64257812500003],[61.212011718750006,36.190527343750034],[61.15292968750006,35.97675781250001],[61.25214843750004,35.86762695312498],[61.26201171875002,35.61958007812498],[61.28183593750006,35.55341796875001],[61.2785156250001,35.513769531250006],[61.245507812499994,35.47407226562501],[61.18925781250002,35.31201171875003],[61.1,35.272314453125034],[61.08007812499997,34.85561523437505],[60.95117187499997,34.65385742187499],[60.91474609375004,34.63398437500001],[60.80234375000006,34.55463867187501],[60.73945312500004,34.544726562500045],[60.7262695312501,34.51826171874998],[60.736132812500074,34.491796875],[60.76259765625005,34.475244140624994],[60.88945312500002,34.31943359375006],[60.642675781250006,34.30717773437496],[60.48574218750005,34.09477539062502],[60.4859375,33.7119140625],[60.57382812500006,33.58833007812498],[60.91699218749997,33.505224609375006],[60.56054687499997,33.13784179687502],[60.5765625,32.99487304687503],[60.71044921874997,32.6],[60.82929687500004,32.24941406250005],[60.82724609375006,32.16796874999997],[60.789941406249994,31.98710937499999],[60.7875,31.87719726562497],[60.791601562500006,31.660595703124983],[60.82070312499999,31.495166015625045],[60.854101562500006,31.483251953125006],[61.110742187499994,31.45112304687504],[61.346484375000074,31.42163085937497],[61.66015625000003,31.382421874999977],[61.7550781250001,31.285302734374994],[61.814257812500074,31.072558593750017],[61.810839843750074,30.913281249999983],[61.78417968749997,30.831933593750023],[61.55947265625005,30.59936523437497],[61.33164062500006,30.36372070312501],[60.84335937500006,29.85869140624999],[61.03417968750003,29.663427734374977],[61.15214843750002,29.542724609375],[61.8898437500001,28.546533203124994],[62.7625,28.202050781249994],[62.782324218750006,27.800537109375],[62.75273437500002,27.265625],[63.16679687500002,27.25249023437499],[63.19609375000002,27.243945312500017],[63.25625,27.20791015625005],[63.30156250000002,27.151464843750006],[63.30517578124997,27.124560546875017],[63.242089843749994,27.07768554687499],[63.25039062499999,26.879248046875063],[63.24160156250005,26.86474609375003],[63.18613281250006,26.83759765625001],[63.168066406250006,26.66557617187496],[62.31230468750002,26.490869140624994],[62.23935546875006,26.357031249999977],[62.12597656249997,26.368994140625034],[61.842382812500006,26.225927734375006],[61.809960937499994,26.165283203125],[61.78076171874997,25.99584960937503],[61.75439453125003,25.843359375000063],[61.737695312499994,25.821093750000045],[61.66865234375004,25.76899414062501],[61.6618164062501,25.751269531250017],[61.67138671874997,25.69238281250003],[61.64013671875003,25.584619140624994],[61.61542968750004,25.28613281250003],[61.58789062499997,25.20234375000001],[61.533105468749994,25.195507812499955],[61.41220703125006,25.102099609375017],[60.66386718750002,25.28222656250003],[60.51054687500002,25.437060546875045],[60.40019531250002,25.311572265625074],[59.45605468749997,25.481494140625045],[59.0460937500001,25.417285156250017],[58.79785156249997,25.554589843750023],[57.334570312500006,25.791552734375074],[57.03603515625005,26.80068359375005],[56.728125,27.127685546875057],[56.118066406249994,27.14311523437499],[54.75927734375003,26.50507812500004],[54.24707031250003,26.696630859374977],[53.70576171875004,26.72558593750003],[52.69160156250004,27.323388671875023],[52.475878906250074,27.61650390624999],[52.03076171874997,27.824414062499955],[51.58906250000004,27.864208984374983],[51.27890625,28.13134765624997],[51.06201171874997,28.72612304687499],[50.86699218750002,28.870166015625017],[50.87578125000002,29.062695312499983],[50.67519531250005,29.146582031250034],[50.64960937500004,29.420068359374966],[50.16894531250003,29.921240234375034],[50.071582031250074,30.198535156250017],[49.55488281250004,30.028955078125023],[49.028125,30.333447265624983],[49.224511718749994,30.472314453125023],[49.00195312500003,30.506542968749983],[48.91914062500004,30.120898437500017],[48.54648437500006,29.962353515624955],[48.47851562499997,30.003808593749966],[48.43457031249997,30.03759765625],[48.33105468749997,30.28544921874996],[48.01494140625002,30.465625],[48.01064453125005,30.989794921875017],[47.679492187500074,31.00239257812501],[47.679492187500074,31.400585937499955],[47.75390624999997,31.601367187500017],[47.829980468749994,31.79443359375],[47.71455078125004,31.936425781249966],[47.5915039062501,32.087988281250034],[47.51191406250004,32.15083007812504],[47.3297851562501,32.45551757812501],[47.28515625000003,32.474023437499966],[47.121386718750074,32.46660156249996],[46.569921875,32.83393554687501],[46.37705078125006,32.92924804687499],[46.29824218750005,32.95024414062502],[46.11279296875003,32.957666015624994],[46.09306640625002,32.97587890624999],[46.08046875,33.028222656249994],[46.0807617187501,33.08652343750006],[46.14111328125003,33.174414062500034],[46.145898437499994,33.229638671874994],[46.01992187500005,33.41572265624998],[45.39707031250006,33.970849609374994],[45.542773437500074,34.21552734375004],[45.459375,34.470361328124994],[45.50078125000002,34.58159179687499],[45.6375,34.573828125],[45.678125,34.798437500000034],[45.92089843750003,35.02851562500001],[46.04179687500002,35.08017578125006],[46.13378906249997,35.127636718749955],[46.15468750000005,35.19672851562498],[46.112109375000074,35.32167968750005],[45.97109375000005,35.524169921875],[46.03740234375002,35.67314453124999],[46.180957031250074,35.71137695312504],[46.2625,35.74414062500006],[46.27343749999997,35.77324218750002],[46.16748046874997,35.820556640625],[45.77636718749997,35.82182617187499],[45.36162109375002,36.015332031249955],[45.241113281249994,36.35595703125],[45.20654296874997,36.397167968749955],[45.15527343749997,36.407373046874994],[45.11240234375006,36.409277343750034],[45.053125,36.47163085937501],[44.76513671875003,37.142431640625006],[44.79414062500004,37.290380859375034],[44.574023437500074,37.435400390625006],[44.589941406250006,37.710351562499966],[44.21132812499999,37.908056640625006],[44.4499023437501,38.33422851562506],[44.2985351562501,38.38627929687499],[44.27167968750004,38.83603515625006],[44.02324218750002,39.37744140625006],[44.3893554687501,39.422119140625],[44.58710937500004,39.76855468750006],[44.81718750000002,39.65043945312496],[45.4796875000001,39.00625],[46.1144531250001,38.877783203125034]]]]},"properties":{"name":"Iran","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[45.6375,34.573828125],[45.50078125000002,34.581591796874996],[45.459375,34.470361328124994],[45.54277343750002,34.21552734375],[45.397070312500006,33.970849609374994],[46.01992187500002,33.41572265625],[46.14589843750002,33.229638671874994],[46.14111328125,33.1744140625],[46.08076171875001,33.0865234375],[46.08046875000002,33.028222656249994],[46.09306640625002,32.975878906249996],[46.11279296875,32.957666015624994],[46.377050781250006,32.929248046874996],[46.569921875,32.833935546875],[47.12138671875002,32.466601562499996],[47.28515625,32.474023437499994],[47.32978515625001,32.455517578125],[47.51191406250001,32.150830078125],[47.59150390625001,32.08798828125],[47.71455078125001,31.936425781249994],[47.82998046875002,31.79443359375],[47.75390625,31.601367187499996],[47.67949218750002,31.400585937499997],[47.67949218750002,31.002392578124997],[48.01064453125002,30.989794921874996],[48.01494140625002,30.465625],[48.3310546875,30.285449218749996],[48.546484375,29.962353515624997],[48.454199218750006,29.9384765625],[48.354589843750006,29.956738281249997],[48.141699218750006,30.040917968749994],[47.982519531250006,30.011328125],[47.97871093750001,29.9828125],[47.64375,30.097314453124994],[47.14824218750002,30.0009765625],[46.905859375,29.5375],[46.76933593750002,29.347460937499996],[46.69375,29.259667968749994],[46.53144531250001,29.096240234374996],[46.3564453125,29.063671875],[44.71650390625001,29.193603515625],[43.77373046875002,29.84921875],[42.07441406250001,31.080371093749996],[40.47890625000002,31.893359375],[40.36933593750001,31.93896484375],[40.02783203125,31.995019531249994],[39.7041015625,32.042529296874996],[39.14541015625002,32.12451171875],[39.29277343750002,32.24384765625],[39.24746093750002,32.350976562499994],[39.04140625000002,32.3056640625],[38.773535156250006,33.372216796874994],[40.98701171875001,34.429052734375],[41.19472656250002,34.768994140625],[41.354101562500006,35.640429687499996],[41.295996093750006,36.383349609374996],[41.41679687500002,36.5146484375],[41.78857421875,36.59716796875],[42.358984375,37.10859375],[42.45585937500002,37.128710937499996],[42.63544921875001,37.249267578125],[42.74111328125002,37.3619140625],[42.77460937500001,37.371875],[42.869140625,37.334912109375],[42.936621093750006,37.324755859374996],[43.09248046875001,37.3673828125],[43.67578125,37.22724609375],[43.83642578125,37.223535156249994],[44.01318359375,37.313525390624996],[44.11445312500001,37.30185546875],[44.15625,37.282958984375],[44.19179687500002,37.249853515625],[44.20839843750002,37.20263671875],[44.20166015625,37.051806640624996],[44.281835937500006,36.97802734375],[44.32558593750002,37.0107421875],[44.401953125,37.058496093749994],[44.60595703125,37.176025390625],[44.66933593750002,37.173583984375],[44.73095703125,37.165283203125],[44.76513671875,37.142431640625],[45.053125,36.471630859375],[45.112402343750006,36.40927734375],[45.1552734375,36.407373046874994],[45.20654296875,36.39716796875],[45.24111328125002,36.35595703125],[45.36162109375002,36.01533203125],[45.7763671875,35.821826171874996],[46.16748046875,35.820556640625],[46.2734375,35.773242187499996],[46.2625,35.744140625],[46.18095703125002,35.711376953125],[46.03740234375002,35.673144531249996],[45.97109375000002,35.524169921875],[46.11210937500002,35.321679687499994],[46.15468750000002,35.196728515625],[46.1337890625,35.12763671875],[46.04179687500002,35.08017578125],[45.9208984375,35.028515625],[45.678125,34.7984375],[45.6375,34.573828125]]]},"properties":{"name":"Iraq","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-15.543115234374994,66.228515625],[-14.595849609374994,66.38154296875],[-15.117382812499983,66.125634765625],[-14.698193359374983,66.02021484375],[-14.827099609374983,65.7642578125],[-14.391845703125,65.78740234375],[-14.473388671875,65.575341796875],[-14.166943359374983,65.64228515625],[-13.617871093749983,65.5193359375],[-13.804785156249977,65.35478515625],[-13.599316406249983,65.0359375],[-14.04443359375,64.74189453125],[-14.385107421874977,64.74521484375],[-14.475390624999989,64.493994140625],[-14.927392578124994,64.319677734375],[-15.832910156249994,64.17666015625],[-16.640332031249983,63.865478515625],[-17.81572265624999,63.71298828125],[-17.946923828124994,63.5357421875],[-18.65361328124999,63.406689453125],[-20.198144531249994,63.555810546874994],[-20.494042968749994,63.687353515625],[-20.413964843749994,63.80517578125],[-20.65092773437499,63.73740234375],[-21.15239257812499,63.94453125],[-22.652197265624977,63.827734375],[-22.701171875,64.083203125],[-22.51005859374999,63.991455078125],[-22.187597656249977,64.039208984375],[-21.463330078124983,64.379150390625],[-22.053369140624994,64.313916015625],[-21.950341796874994,64.514990234375],[-21.590625,64.6263671875],[-22.10600585937499,64.533056640625],[-22.467041015625,64.794970703125],[-23.818994140624994,64.73916015625],[-24.02617187499999,64.863427734375],[-22.7880859375,65.046484375],[-21.89213867187499,65.048779296875],[-21.779980468749983,65.1876953125],[-22.50908203124999,65.19677734375],[-21.844384765624994,65.44736328125],[-22.902490234374994,65.58046875],[-23.89990234375,65.407568359375],[-24.475683593749977,65.5251953125],[-24.248925781249994,65.614990234375],[-23.85673828124999,65.53837890625],[-24.092626953124977,65.77646484375],[-23.615917968749983,65.67958984375],[-23.285351562499983,65.75],[-23.832617187499977,65.84921875],[-23.52495117187499,65.880029296875],[-23.77734375,66.017578125],[-23.434472656249994,66.02421875],[-23.452539062499994,66.181005859375],[-23.018994140624983,65.98212890625],[-22.659863281249983,66.025927734375],[-22.61601562499999,65.86748046875],[-22.44169921874999,65.90830078125],[-22.4453125,66.07001953125],[-22.947900390624994,66.212744140625],[-22.48442382812499,66.26630859375],[-23.116943359375,66.338720703125],[-22.9443359375,66.429443359375],[-22.426123046874977,66.430126953125],[-21.406884765624994,66.0255859375],[-21.374902343749994,65.74189453125],[-21.658447265625,65.723583984375],[-21.12968749999999,65.2666015625],[-20.804345703124994,65.63642578125],[-20.454833984375,65.571044921875],[-20.20751953125,66.10009765625],[-19.489697265624983,65.76806640625],[-19.382958984374994,66.07568359375],[-18.845898437499983,66.183935546875],[-18.141943359374977,65.73408203125],[-18.29716796874999,66.157421875],[-17.906982421875,66.143310546875],[-17.550439453124994,65.964404296875],[-17.153027343749983,66.20283203125],[-16.838037109374994,66.125244140625],[-16.485009765624994,66.195947265625],[-16.540673828124994,66.446728515625],[-16.24931640624999,66.522900390625],[-15.985400390624989,66.5146484375],[-15.543115234374994,66.228515625]]]},"properties":{"name":"Iceland","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[35.78730468750001,32.734912109374996],[35.572851562500006,32.640869140625],[35.56904296875001,32.619873046875],[35.55146484375001,32.3955078125],[35.484375,32.401660156249996],[35.40263671875002,32.450634765625],[35.38671875,32.493017578125],[35.303808593750006,32.512939453125],[35.19326171875002,32.534423828125],[35.065039062500006,32.46044921875],[35.01054687500002,32.338183593749996],[34.95595703125002,32.1609375],[34.98974609375,31.91328125],[34.97832031250002,31.86640625],[34.95380859375001,31.841259765624997],[34.96113281250001,31.82333984375],[34.983007812500006,31.81679687499999],[35.05322265625,31.837939453124996],[35.12714843750001,31.816748046875],[35.203710937500006,31.75],[34.95097656250002,31.602294921875],[34.88046875,31.3681640625],[35.45058593750002,31.479296875],[34.97343750000002,29.555029296875],[34.904296875,29.47734375],[34.24531250000001,31.208300781249996],[34.34833984375001,31.292919921874997],[34.350195312500006,31.362744140624997],[34.52558593750001,31.525634765625],[34.47734375000002,31.584863281249994],[34.483984375,31.59228515625],[34.67841796875001,31.895703125],[35.10859375000001,33.08369140625],[35.411230468750006,33.07568359375],[35.869140625,33.43173828125],[35.91347656250002,32.94960937499999],[35.78730468750001,32.734912109374996]]]},"properties":{"name":"Israel","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[15.576562500000051,38.220312500000034],[15.099511718750023,37.45859375],[15.295703125000017,37.05517578124997],[15.112597656250017,36.687841796875006],[14.501855468750023,36.798681640625034],[14.142968750000023,37.103662109374994],[13.90546875000004,37.10063476562502],[13.169921875000028,37.47929687499996],[12.640234375000034,37.594335937500034],[12.435546874999972,37.819775390624955],[12.734375,38.18305664062498],[12.902734375000023,38.03486328124998],[13.291113281250034,38.19145507812502],[13.788867187499989,37.981201171875],[15.11875,38.15273437500002],[15.498730468750011,38.290869140625006],[15.576562500000051,38.220312500000034]]],[[[8.478906250000023,39.067529296874966],[8.421484375000034,38.968652343749994],[8.366796875,39.115917968749955],[8.478906250000023,39.067529296874966]]],[[[8.28603515625008,41.03984375],[8.205664062500034,40.99746093750005],[8.320214843750023,41.121875],[8.28603515625008,41.03984375]]],[[[9.632031250000011,40.88203124999998],[9.805273437500063,40.499560546875045],[9.642968750000023,40.268408203125006],[9.5625,39.16601562500006],[9.056347656250068,39.23916015625002],[8.966601562500074,38.963720703125034],[8.648535156250034,38.92656250000002],[8.418164062500068,39.205712890624966],[8.547753906250023,39.83920898437506],[8.4078125,39.91723632812497],[8.471289062500063,40.29267578124998],[8.189941406250028,40.651611328125],[8.22421875,40.91333007812503],[8.571875,40.85019531250006],[9.228417968750023,41.257080078125],[9.615332031249977,41.01728515624998],[9.632031250000011,40.88203124999998]]],[[[10.395117187500034,42.85815429687503],[10.419335937499994,42.71318359374999],[10.13125,42.742041015625006],[10.395117187500034,42.85815429687503]]],[[[13.420996093750006,46.212304687499994],[13.63251953125004,46.17705078125002],[13.634960937499983,46.15776367187499],[13.61660156250008,46.133105468750045],[13.54804687500004,46.08911132812503],[13.486425781250034,46.03955078124997],[13.480273437500017,46.00922851562501],[13.487695312500023,45.987109375000045],[13.509179687500051,45.973779296874994],[13.6005859375,45.97978515624996],[13.663476562500023,45.7919921875],[13.831152343750006,45.680419921875],[13.719824218750063,45.58759765625001],[13.628320312500051,45.77094726562498],[13.206347656250074,45.771386718749966],[12.27431640625008,45.44604492187503],[12.225683593750034,45.24150390625002],[12.523437500000028,44.96796874999998],[12.248339843750045,44.72250976562498],[12.396289062500074,44.223876953125],[13.56416015625004,43.57128906250003],[14.010449218750011,42.68955078125006],[14.54072265625004,42.24428710937502],[15.16875,41.93403320312498],[16.164648437500034,41.89619140624998],[15.900488281250034,41.51206054687498],[17.954980468749994,40.65517578125002],[18.460644531249983,40.221044921875034],[18.34375,39.82138671874998],[18.077929687500017,39.93696289062498],[17.865039062500074,40.28017578125002],[17.395800781250045,40.34023437499999],[17.179980468750045,40.50278320312498],[16.92822265625,40.45805664062502],[16.521875,39.74755859375003],[17.114550781250017,39.38061523437497],[17.174609375000017,38.998095703125045],[16.61669921875003,38.800146484375034],[16.54560546875001,38.40908203125002],[16.05683593750001,37.941845703124955],[15.72451171875008,37.93911132812502],[15.645800781250017,38.034228515625045],[15.87890625,38.61391601562502],[16.19677734375,38.759228515624955],[16.20996093750003,38.94111328124998],[15.692773437499994,39.99018554687501],[14.95087890625004,40.23901367187497],[14.94765625000008,40.469335937500006],[14.765722656250063,40.66840820312498],[14.339941406250006,40.59882812500001],[14.460546875000063,40.72871093750001],[14.04433593750008,40.81225585937506],[13.733398437500057,41.23564453124999],[13.088671875000074,41.243847656249955],[12.630859374999972,41.469677734374955],[11.637304687500063,42.287548828124955],[11.141210937499977,42.38989257812503],[11.167773437500074,42.53515625000006],[10.708398437500023,42.93632812499999],[10.514843750000011,42.96752929687503],[10.188085937500063,43.947509765625],[8.76582031250004,44.42231445312501],[8.004980468750006,43.87675781249999],[7.4931640625,43.767138671875045],[7.637207031250057,44.16484375],[7.318554687500068,44.13798828125002],[6.900195312499989,44.33574218749996],[6.99267578125,44.82729492187502],[6.634765625000028,45.06816406249996],[7.07832031250004,45.23994140624998],[7.146386718750051,45.381738281249994],[6.790917968750023,45.740869140624966],[7.021093750000034,45.92578124999997],[7.055761718749977,45.90380859375003],[7.129003906249977,45.88041992187499],[7.327929687500017,45.912353515625],[7.9931640625,46.01591796874996],[8.081542968750057,46.25600585937502],[8.231933593750057,46.341210937499966],[8.29853515625004,46.403417968750034],[8.370703125,46.44511718750002],[8.458398437500023,46.24589843750002],[8.818554687500011,46.0771484375],[8.826757812500006,46.06103515625],[8.77802734375004,45.996191406250034],[8.953710937500034,45.83002929687501],[9.023730468750074,45.845703125],[9.203417968750017,46.21923828125],[9.304394531250068,46.49555664062498],[9.399316406250023,46.480664062499955],[9.427636718750023,46.48232421875002],[9.528710937500023,46.306201171875045],[9.57958984375,46.29609375000001],[9.639453125000017,46.29589843749997],[9.78779296875004,46.34604492187498],[9.884472656250011,46.36777343750006],[9.939257812500074,46.36181640625],[10.041015625000028,46.23808593750002],[10.08056640625,46.22797851562501],[10.128320312500051,46.238232421874955],[10.109667968750074,46.36284179687502],[10.081933593750023,46.420751953125006],[10.045605468750068,46.44790039062505],[10.038281250000011,46.483203125000045],[10.061230468750068,46.54677734375002],[10.087011718750063,46.59990234375002],[10.1375,46.614355468750034],[10.195507812500068,46.62109374999997],[10.4306640625,46.55004882812497],[10.409352678571473,46.6092047991071],[10.39794921875,46.66503906250006],[10.406054687500045,46.73486328124997],[10.452832031249983,46.86494140625001],[10.47939453125008,46.85512695312505],[10.579785156250011,46.85371093750001],[10.689257812500017,46.846386718749955],[10.759765625,46.79331054687498],[10.828906250000045,46.775244140625034],[10.927343750000034,46.76948242187501],[10.993261718750034,46.77700195312502],[11.02509765625004,46.796972656250006],[11.063476562500057,46.85913085937497],[11.133886718750006,46.93618164062505],[11.244433593750045,46.975683593750006],[11.433203125000063,46.983056640624994],[11.527539062500011,46.99741210937498],[11.775683593750017,46.986083984375],[12.169433593750028,47.082128906250006],[12.19716796875008,47.075],[12.201269531250034,47.060888671875034],[12.165527343750028,47.028173828125034],[12.130761718750051,46.98476562499999],[12.154101562500017,46.93525390625004],[12.267968750000023,46.83588867187504],[12.330078125,46.75981445312499],[12.388281250000034,46.70263671874997],[12.479199218749983,46.672509765624966],[13.16875,46.572656249999966],[13.3515625,46.55791015624999],[13.490039062500045,46.55556640625002],[13.7,46.52026367187503],[13.679687500000057,46.46289062499997],[13.63710937500008,46.44853515624999],[13.563281250000045,46.41508789062502],[13.399511718749977,46.31752929687502],[13.420996093750006,46.212304687499994]]]]},"properties":{"name":"Italy","childNum":6}},{"geometry":{"type":"Polygon","coordinates":[[[-77.261474609375,18.45742187499999],[-76.349853515625,18.15185546875],[-76.21079101562499,17.913525390624997],[-76.524609375,17.8662109375],[-76.85322265625,17.97373046874999],[-76.94414062499999,17.848779296874994],[-77.11948242187499,17.880078125],[-77.20498046875,17.71494140624999],[-77.36142578124999,17.833691406249997],[-77.76816406249999,17.877392578124997],[-78.04448242187499,18.173828125],[-78.339501953125,18.28720703124999],[-78.21669921875,18.44809570312499],[-77.8734375,18.522216796875],[-77.261474609375,18.45742187499999]]]},"properties":{"name":"Jamaica","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-2.018652343749977,49.23125],[-2.23583984375,49.1763671875],[-2.220507812499989,49.266357421875],[-2.018652343749977,49.23125]]]},"properties":{"name":"Jersey","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[39.14541015625002,32.12451171875],[38.9970703125,32.007470703124994],[38.96230468750002,31.994921875],[38.37548828125,31.847460937499996],[38.111425781250006,31.781152343749994],[37.49335937500001,31.625878906249994],[37.215625,31.556103515624997],[36.95859375,31.491503906249996],[37.980078125,30.5],[37.862890625,30.442626953125],[37.66972656250002,30.34814453125],[37.64990234375,30.330957031249994],[37.63359375000002,30.31328125],[37.55361328125002,30.144580078124996],[37.49072265625,30.01171875],[37.46923828125,29.995068359374997],[36.75527343750002,29.866015625],[36.70390625000002,29.831640625],[36.591796875,29.66611328125],[36.47607421875,29.4951171875],[36.2828125,29.355371093749994],[36.068457031250006,29.200537109375],[34.95078125,29.353515625],[34.97343750000002,29.555029296875],[35.45058593750002,31.479296875],[35.57207031250002,32.237890625],[35.55146484375001,32.3955078125],[35.56904296875001,32.619873046875],[35.572851562500006,32.640869140625],[35.78730468750001,32.734912109374996],[36.3720703125,32.3869140625],[36.818359375,32.317285156249994],[38.773535156250006,33.372216796874994],[39.04140625000002,32.3056640625],[39.24746093750002,32.350976562499994],[39.29277343750002,32.24384765625],[39.14541015625002,32.12451171875]]]},"properties":{"name":"Jordan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[123.88867187499997,24.280126953124977],[123.67978515625012,24.317773437500023],[123.77148437499997,24.41445312499999],[123.93486328125002,24.362011718749983],[123.88867187499997,24.280126953124977]]],[[[124.29316406250004,24.515917968750074],[124.13574218750003,24.347607421874983],[124.08476562500002,24.435839843750017],[124.30195312500004,24.58710937500001],[124.29316406250004,24.515917968750074]]],[[[125.44414062500002,24.7431640625],[125.26894531250005,24.732519531250063],[125.28359375,24.871923828125034],[125.44414062500002,24.7431640625]]],[[[128.25878906249997,26.65278320312501],[127.86708984375,26.442480468749977],[127.80361328125005,26.152539062499983],[127.653125,26.0947265625],[127.90722656250003,26.69360351562497],[128.09765624999997,26.66777343749996],[128.25488281249997,26.88188476562496],[128.25878906249997,26.65278320312501]]],[[[128.99814453125012,27.720800781250006],[128.90000000000012,27.727783203125],[128.9076171875,27.897998046875045],[128.99814453125012,27.720800781250006]]],[[[129.45253906250005,28.20898437499997],[129.3664062500001,28.127734375000045],[129.16464843750012,28.24975585937503],[129.68955078125012,28.517480468750023],[129.45253906250005,28.20898437499997]]],[[[130.6227539062501,30.262988281250017],[130.44560546875002,30.264697265625017],[130.38808593750005,30.38818359375003],[130.49716796875006,30.465527343749983],[130.64355468749997,30.388964843750017],[130.6227539062501,30.262988281250017]]],[[[130.95976562500007,30.39692382812504],[130.87031250000004,30.444238281249994],[131.06035156250007,30.828466796875006],[130.95976562500007,30.39692382812504]]],[[[130.38105468750004,32.42373046875002],[130.24169921874997,32.462792968749994],[130.46142578124997,32.515722656250034],[130.38105468750004,32.42373046875002]]],[[[130.08251953124997,32.22968750000001],[129.9601562500001,32.24375],[130.00976562499997,32.521630859374994],[130.16777343750002,32.54121093749998],[130.19951171875002,32.34057617187506],[130.08251953124997,32.22968750000001]]],[[[128.66533203125002,32.783886718749955],[128.89453124999997,32.65214843750002],[128.69296875000012,32.60473632812506],[128.66533203125002,32.783886718749955]]],[[[129.07695312500002,32.84028320312498],[128.99726562500004,32.95185546874998],[129.10976562500005,33.13256835937503],[129.18193359375002,32.99311523437504],[129.07695312500002,32.84028320312498]]],[[[129.49179687500006,33.22304687499999],[129.37041015625002,33.176025390625],[129.56992187500006,33.36103515625004],[129.49179687500006,33.22304687499999]]],[[[129.79570312500007,33.74882812499999],[129.67480468749997,33.73969726562498],[129.71728515624997,33.8583984375],[129.79570312500007,33.74882812499999]]],[[[131.17460937500007,33.602587890625045],[131.69628906250003,33.60283203124999],[131.53740234375007,33.274072265624994],[131.89658203125006,33.25458984375001],[131.8478515625001,33.118066406249994],[132.0021484375001,32.882373046875045],[131.6603515625001,32.465625],[131.33720703125007,31.4046875],[131.07080078124997,31.436865234374977],[131.09843750000002,31.256152343750017],[130.68574218750004,31.01513671875003],[130.77626953125,31.70629882812497],[130.65507812500002,31.71840820312505],[130.5560546875,31.563085937500034],[130.58876953125,31.178515625000017],[130.20068359374997,31.291894531250023],[130.14726562500002,31.40849609374996],[130.2941406250001,31.45068359375003],[130.3219726562501,31.601464843750023],[130.18789062500005,31.768847656250017],[130.19443359375012,32.090771484374955],[130.64052734375005,32.61923828124998],[130.49785156250002,32.65693359375001],[130.547265625,32.83159179687499],[130.2375,33.177636718749966],[130.12685546875005,33.10483398437506],[130.175,32.851318359375],[130.32646484375002,32.852636718750006],[130.34042968750012,32.70185546875004],[130.05410156250005,32.770800781250045],[129.76855468749997,32.57099609375001],[129.82675781250006,32.72534179687503],[129.67910156250005,33.059960937499966],[129.99169921875003,32.85156249999997],[129.58007812500003,33.23627929687501],[129.61015625000002,33.34365234375005],[129.844140625,33.32177734375003],[129.82568359374997,33.43701171875006],[130.36503906250007,33.634472656249955],[130.4837890625,33.834619140624966],[130.715625,33.92778320312502],[130.953125,33.87202148437504],[131.17460937500007,33.602587890625045]]],[[[132.266015625,33.945166015625006],[132.44492187500006,33.91318359374998],[132.20878906250007,33.87285156250002],[132.266015625,33.945166015625006]]],[[[129.27949218750004,34.123388671875006],[129.18642578125,34.14501953125006],[129.21484374999997,34.320654296875034],[129.3371093750001,34.284765625],[129.27949218750004,34.123388671875006]]],[[[134.35742187500003,34.25634765625],[134.6375,34.22661132812499],[134.73886718750012,33.82050781250001],[134.37705078125012,33.60839843749997],[134.18164062500003,33.24721679687502],[133.95869140625004,33.44833984375006],[133.63203125000004,33.51098632812503],[133.28593750000007,33.35996093749998],[132.97724609375004,32.84199218749998],[132.80429687500006,32.75200195312502],[132.6417968750001,32.76245117187503],[132.70898437500003,32.90249023437505],[132.49511718749997,32.91660156249998],[132.41279296875004,33.43046875],[132.0326171875,33.339990234374994],[132.64306640624997,33.68994140624997],[132.93515625000006,34.09531250000006],[133.19306640625004,33.93320312499998],[133.58203124999997,34.01713867187502],[133.60263671875006,34.24384765625001],[133.94833984375006,34.34804687500002],[134.35742187500003,34.25634765625]]],[[[134.35185546875002,34.48364257812503],[134.25185546875,34.42304687500004],[134.18212890625003,34.51923828124998],[134.35185546875002,34.48364257812503]]],[[[134.9328125000001,34.28813476562499],[134.82441406250004,34.202929687500045],[134.66787109375005,34.294140624999955],[135.00468750000002,34.54404296874998],[134.9328125000001,34.28813476562499]]],[[[129.38564453125,34.35366210937502],[129.26669921875012,34.37045898437506],[129.45107421875005,34.68657226562499],[129.38564453125,34.35366210937502]]],[[[133.37050781250005,36.203857421875],[133.23925781249997,36.178759765625045],[133.20615234375006,36.293408203124955],[133.29570312500002,36.34013671874996],[133.37050781250005,36.203857421875]]],[[[138.34404296875007,37.822119140625006],[138.22519531250006,37.82939453124996],[138.25,38.078466796875006],[138.50361328125004,38.31591796875006],[138.45361328124997,38.07568359375006],[138.57519531249997,38.065527343750034],[138.34404296875007,37.822119140625006]]],[[[141.22929687500007,41.37265625],[141.45546875000005,41.404736328124955],[141.43046875000002,40.72333984374998],[141.7970703125001,40.29116210937502],[141.97695312500005,39.428808593750034],[141.90078125,39.111328125],[141.5462890625,38.762841796874966],[141.4674804687501,38.404150390625006],[141.10839843750003,38.33793945312502],[140.9621093750001,38.148876953124955],[141.00166015625004,37.11464843750002],[140.57353515625007,36.23134765625002],[140.87402343749997,35.72495117187506],[140.457421875,35.51025390625],[140.35468750000004,35.18144531249999],[139.8439453125001,34.914892578125034],[139.82646484375002,35.29667968750002],[140.096875,35.58515624999998],[139.83476562500002,35.658056640625006],[139.65000000000012,35.40913085937501],[139.675,35.149267578125006],[139.47441406250002,35.298535156249955],[139.24941406250005,35.27802734375004],[139.08603515625006,34.83916015624999],[138.8375,34.619238281250034],[138.80273437499997,34.97480468749998],[138.90361328125002,35.02524414062506],[138.71962890625,35.12407226562502],[138.18906250000012,34.596337890624994],[137.543359375,34.66420898437505],[137.06171875000004,34.58281249999999],[137.27519531250002,34.77250976562499],[136.96328125000005,34.83491210937501],[136.87128906250004,34.733105468749955],[136.89707031250006,35.03554687500002],[136.80419921874997,35.05029296875],[136.53300781250007,34.678369140624994],[136.8802734375,34.43359375000006],[136.8537109375001,34.324072265625034],[136.32988281250007,34.17685546875006],[135.91621093750004,33.561718749999955],[135.69531250000003,33.48696289062502],[135.4528320312501,33.55336914062505],[135.12792968749997,34.006982421874994],[135.10009765624997,34.288378906250045],[135.41591796875,34.61748046875002],[134.74003906250007,34.765234375],[134.246875,34.71386718750003],[133.96826171874997,34.52729492187504],[133.14238281250002,34.30244140624998],[132.65654296875007,34.24609375000003],[132.31259765625006,34.32495117187503],[132.14648437499997,33.83876953125002],[131.74052734375007,34.05205078125002],[130.91884765625,33.97573242187502],[130.88925781250012,34.261816406250034],[131.00419921875007,34.39257812500003],[131.35439453125,34.41318359375006],[132.92294921875006,35.511279296875045],[133.98125,35.50722656250002],[135.17431640625003,35.74707031250003],[135.32695312500002,35.52553710937502],[135.68027343750006,35.503125],[135.903125,35.60688476562498],[136.09531250000006,35.767626953125045],[136.06748046875006,36.11684570312505],[136.69814453125005,36.742041015625034],[136.84345703125004,37.38212890624999],[137.32265625,37.52207031249998],[136.89990234375003,37.11767578125],[137.01669921875006,36.83720703124999],[137.24628906250004,36.753173828125],[137.5140625,36.95156250000002],[138.31992187500012,37.21840820312502],[138.88505859375007,37.84394531250001],[139.36386718750006,38.09902343750002],[139.80195312500004,38.881591796875],[140.06474609375002,39.624414062499994],[139.99472656250006,39.855078125],[139.74150390625002,39.92084960937498],[140.01113281250005,40.26035156250006],[139.92285156250003,40.59843750000002],[140.28125,40.84609375000002],[140.3444335937501,41.203320312499955],[140.62763671875004,41.195410156250034],[140.74863281250012,40.830322265625],[140.93603515625003,40.940771484375034],[141.1185546875,40.88227539062501],[141.24423828125006,41.20561523437499],[140.80058593750002,41.138818359374966],[140.80185546875012,41.253662109375],[140.9369140625,41.50556640624998],[141.22929687500007,41.37265625]]],[[[139.48125,42.08100585937498],[139.43134765625004,42.19956054687498],[139.55839843750002,42.235205078125034],[139.48125,42.08100585937498]]],[[[141.29541015625003,45.11933593750001],[141.14531250000002,45.153906250000034],[141.19375,45.24785156249999],[141.29541015625003,45.11933593750001]]],[[[141.07275390624997,45.33286132812498],[141.03398437500007,45.26933593750002],[140.97167968749997,45.465478515624994],[141.07275390624997,45.33286132812498]]],[[[143.82431640625012,44.11699218749999],[144.71523437500005,43.92797851562503],[145.36953125000005,44.32739257812506],[145.13964843750003,43.6625],[145.34082031249997,43.30253906249999],[145.83300781249997,43.38593750000001],[144.92138671874997,43.00092773437498],[143.96933593750006,42.88139648437499],[143.42949218750002,42.41889648437498],[143.2365234375001,42.000195312499955],[141.85136718750007,42.57905273437501],[141.40664062500005,42.54692382812496],[140.98613281250002,42.34213867187498],[140.70976562500002,42.555615234374955],[140.48046875000003,42.559375],[140.32666015625003,42.29335937499999],[141.15097656250012,41.80507812499999],[140.99951171874997,41.73740234375006],[140.65986328125004,41.815576171874994],[140.3849609375001,41.51928710937503],[140.08515625000004,41.43408203125],[139.99531250000004,41.57641601562503],[140.10839843749997,41.912939453125034],[139.83544921874997,42.278076171875],[139.86015625000002,42.58173828125004],[140.43222656250012,42.95410156250006],[140.39238281250002,43.303125],[141.13818359374997,43.17993164062506],[141.37412109375006,43.279638671875006],[141.7609375000001,44.482519531250034],[141.58300781250003,45.15595703125001],[141.66796874999997,45.401269531249966],[141.93769531250004,45.509521484375],[142.88476562499997,44.670117187499955],[143.82431640625012,44.11699218749999]]]]},"properties":{"name":"Japan","childNum":28}},{"geometry":{"type":"Polygon","coordinates":[[[77.04863281249999,35.109912109374996],[76.927734375,35.346630859375],[76.88222656250002,35.4357421875],[76.81279296874999,35.571826171874996],[76.76689453124999,35.66171875],[76.87890625,35.61328125],[77.09003906250001,35.552050781249996],[77.29482421875002,35.508154296875],[77.44648437500001,35.4755859375],[77.57255859374999,35.471826171874994],[77.72402343750002,35.48056640625],[77.79941406250003,35.495898437499996],[77.42343750000003,35.302587890625],[77.16855468750003,35.171533203124994],[77.04863281249999,35.109912109374996]]]},"properties":{"name":"Siachen Glacier","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[50.184472656249994,44.854638671874994],[49.99511718750003,44.93696289062498],[50.10986328124997,45.08193359375002],[50.038867187500074,44.949121093749966],[50.184472656249994,44.854638671874994]]],[[[87.32285156250012,49.085791015625006],[86.8083007812501,49.04970703125002],[86.54941406250012,48.52861328125002],[85.7494140625,48.38505859374999],[85.52597656250006,47.915625],[85.65664062500005,47.254638671875],[85.484765625,47.06352539062496],[84.78613281249997,46.83071289062505],[84.66660156250006,46.97236328125004],[84.016015625,46.97050781250002],[83.02949218750004,47.18593750000002],[82.31523437500002,45.59492187499998],[82.61162109375007,45.424267578124955],[82.52148437500003,45.12548828125],[82.26660156249997,45.21909179687498],[81.94492187500006,45.16083984375001],[81.69199218750012,45.34936523437497],[80.05917968750012,45.006445312500006],[79.871875,44.88378906249997],[80.48154296875006,44.71464843749999],[80.35527343750002,44.09726562500006],[80.78574218750006,43.16157226562504],[80.39023437500006,43.043115234374966],[80.53896484375005,42.873486328124955],[80.20224609375012,42.73447265624998],[80.209375,42.190039062500006],[80.07128906249997,42.302978515625],[79.92109375000004,42.41313476562496],[79.49013671875,42.45756835937496],[79.42822265624997,42.483496093750006],[79.20302734375005,42.66601562499997],[79.16484375000007,42.759033203125],[79.1266601562501,42.775732421875034],[76.98808593750007,42.97358398437501],[76.64648437500003,42.928808593750034],[76.50917968750005,42.91889648437498],[75.9322265625,42.92851562499999],[75.84033203125003,42.9375],[75.78955078124997,42.93291015624999],[75.68173828125,42.83046875],[75.04765625000007,42.904394531250034],[74.20908203125006,43.24038085937502],[73.88603515625002,43.132568359375],[73.55625,43.002783203125006],[73.45019531249997,42.703027343749966],[73.421875,42.59350585937503],[73.49296875000007,42.409033203125034],[73.41162109375003,42.41977539062498],[73.316015625,42.46699218750001],[73.2829101562501,42.50410156250004],[72.85507812500006,42.561132812500006],[72.75292968750003,42.63789062500001],[72.54316406250004,42.67773437500006],[72.27578125,42.757666015625006],[71.76054687500002,42.82148437500004],[71.5142578125,42.766943359375006],[71.42207031250004,42.78315429687504],[71.25664062500002,42.733544921874966],[70.89287109375007,42.339990234374994],[70.94677734374997,42.24868164062505],[69.15361328125002,41.42524414062498],[68.58408203125,40.876269531250045],[68.57265625,40.62265624999998],[68.29189453125,40.656103515625034],[68.04765625000007,40.80927734374998],[68.11308593750007,41.02861328124999],[67.9357421875001,41.19658203125002],[66.70966796875004,41.17915039062501],[66.49863281250006,41.99487304687503],[66.00957031250007,42.00488281250003],[66.1002929687501,42.99082031249998],[65.80302734375002,42.87695312500006],[65.49619140625,43.310546875],[64.9054687500001,43.714697265625006],[64.44316406250007,43.55117187499999],[63.20703125000003,43.62797851562502],[61.99023437500003,43.492138671874955],[61.007910156250006,44.39379882812497],[58.555273437500006,45.55537109375001],[55.97568359375006,44.99492187499996],[55.97744140625005,41.32221679687504],[55.434375,41.296289062499994],[54.85380859375002,41.965185546875006],[54.120996093749994,42.335205078125],[53.0558593750001,42.14775390624999],[52.4938476562501,41.780371093750034],[52.59658203125005,42.760156249999966],[51.898242187500074,42.86962890624997],[51.61601562500002,43.15844726562503],[51.29541015624997,43.17412109375002],[51.30175781249997,43.48237304687501],[50.8307617187501,44.192773437499966],[50.331152343750006,44.32548828125002],[50.25292968749997,44.461523437500006],[50.409472656250074,44.6240234375],[51.543554687500006,44.53100585937506],[51.009375,44.92182617187501],[51.4157226562501,45.35786132812501],[53.20039062500004,45.33198242187498],[52.77382812499999,45.57275390625],[53.13525390625003,46.19165039062497],[53.069433593750006,46.85605468750006],[52.48320312500002,46.99067382812504],[52.13828125,46.82861328124997],[51.178027343750074,47.110156250000045],[49.886328125,46.59565429687504],[49.347460937500074,46.51914062499998],[49.232226562500074,46.33715820312503],[48.54121093750004,46.60561523437502],[48.558398437500074,46.75712890624999],[48.959375,46.77460937499998],[48.16699218750003,47.70878906249996],[47.48193359374997,47.80390624999998],[47.292382812499994,47.74091796875004],[47.06464843750004,48.23247070312499],[46.660937500000074,48.41225585937502],[46.70263671875003,48.80556640625002],[47.031347656250006,49.150292968749994],[46.80205078125002,49.36708984375002],[46.889550781249994,49.69697265625001],[47.42919921874997,50.35795898437502],[47.7057617187501,50.37797851562502],[48.33496093750003,49.858251953125006],[48.7589843750001,49.92832031250006],[48.625097656250006,50.61269531250005],[49.32343750000004,50.851708984374966],[49.49804687500003,51.08359375000006],[50.246875,51.28950195312498],[50.79394531249997,51.729199218749955],[51.16347656250005,51.6474609375],[51.344531250000074,51.47534179687503],[52.21914062499999,51.709375],[52.57119140625005,51.481640624999955],[53.33808593750004,51.48237304687504],[54.139746093750006,51.04077148437503],[54.555273437500006,50.535791015624994],[54.64160156250003,51.011572265625034],[55.68623046875004,50.582861328125006],[56.49140625000004,51.01953124999997],[57.01171874999997,51.06518554687503],[57.44218750000002,50.88886718749998],[57.83886718750003,51.091650390625006],[58.359179687500074,51.063818359375034],[58.88369140625005,50.694433593750006],[59.4523437500001,50.62041015625002],[59.523046875,50.492871093749955],[59.812402343749994,50.58203125],[60.05859374999997,50.850292968749955],[60.42480468749997,50.67915039062498],[60.94228515625005,50.69550781250004],[61.38945312500002,50.86103515625001],[61.55468750000003,51.32460937500005],[60.464746093749994,51.651171875000045],[60.03027343749997,51.93325195312505],[60.99453125000005,52.33686523437504],[60.77441406249997,52.67578124999997],[61.047460937500006,52.97246093750002],[62.08271484375004,53.00541992187499],[61.65986328125004,53.22846679687504],[61.19921874999997,53.28715820312502],[61.22890625,53.445898437500006],[61.53496093750002,53.52329101562506],[60.97949218749997,53.62172851562505],[61.231054687500006,54.01948242187498],[61.92871093750003,53.94648437500004],[64.46123046875002,54.38417968750002],[65.08837890624997,54.340185546875034],[65.476953125,54.62329101562497],[68.15585937500006,54.97670898437505],[68.20625,55.16093750000002],[68.9772460937501,55.389599609374955],[70.18242187500002,55.162451171875034],[70.73808593750007,55.30517578125],[71.18554687500003,54.59931640624998],[71.09316406250005,54.21220703124999],[72.00449218750006,54.20566406249998],[72.18603515625003,54.32563476562501],[72.44677734375003,53.94184570312498],[72.62226562500004,54.13432617187502],[73.22988281250005,53.957812500000045],[73.71240234375003,54.04238281250002],[73.30566406250003,53.707226562499955],[73.40693359375004,53.44755859374999],[73.85898437500006,53.61972656249998],[74.35156250000003,53.487646484375006],[74.45195312500007,53.64726562500002],[75.22021484374997,53.89379882812506],[75.43720703125004,54.08964843749999],[76.8373046875,54.4423828125],[76.65458984375007,54.14526367187503],[76.42167968750007,54.151513671874966],[76.48476562500005,54.02255859374998],[77.85996093750006,53.269189453124994],[79.98623046875,50.774560546874966],[80.42363281250002,50.94628906249997],[80.44804687500002,51.18334960937503],[80.73525390625,51.29340820312498],[81.12724609375002,51.19106445312502],[81.0714843750001,50.96875],[81.38828125000006,50.95649414062501],[81.46591796875006,50.73984375],[82.49394531250007,50.72758789062499],[82.76083984375012,50.89335937500002],[83.35732421875005,50.99458007812504],[83.94511718750007,50.774658203125],[84.32324218749997,50.239160156249966],[84.9894531250001,50.061425781249994],[85.2326171875001,49.61582031249998],[86.1808593750001,49.49931640624996],[86.67548828125004,49.77729492187501],[86.62646484374997,49.56269531250001],[87.32285156250012,49.085791015625006]]]]},"properties":{"name":"Kazakhstan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[35.325292968750006,5.364892578124994],[35.745019531249994,5.343994140625],[35.80029296874997,5.156933593749983],[35.77929687499997,5.105566406250006],[35.756152343750074,4.950488281250031],[35.76308593750005,4.808007812500051],[36.02197265625003,4.468115234374991],[36.90556640625002,4.411474609374991],[37.15458984375002,4.254541015624994],[37.944921875,3.746728515625023],[38.0861328125001,3.648828124999966],[38.22529296875004,3.61899414062502],[38.45156250000005,3.604833984374977],[38.608007812500006,3.600097656249986],[39.49443359375002,3.45610351562496],[39.65751953125002,3.577832031249983],[39.79033203125002,3.754248046875034],[39.8421875,3.851464843750037],[40.765234375,4.273046875000034],[41.02080078125002,4.057470703124991],[41.22089843750004,3.943554687499969],[41.372460937499994,3.94619140624998],[41.48193359375003,3.96328125],[41.737695312499994,3.979052734375003],[41.88398437500004,3.977734375000011],[41.6134765625001,3.59047851562498],[41.34179687499997,3.20166015625],[40.964453125,2.814648437500026],[40.9787109375001,-0.870312500000011],[41.249804687500074,-1.220507812499946],[41.4269531250001,-1.449511718749974],[41.521875,-1.572265625000028],[41.53271484374997,-1.695312499999957],[41.26748046875005,-1.945019531250026],[40.889746093750006,-2.023535156250034],[40.89824218750002,-2.269921874999966],[40.64414062500006,-2.53945312499998],[40.22246093750002,-2.688378906250037],[40.1154296875001,-3.250585937499991],[39.8609375,-3.576757812500006],[39.49091796875004,-4.478417968750023],[39.221777343750006,-4.692382812500014],[37.608203125000074,-3.497070312500028],[37.643847656250074,-3.045410156250028],[33.90322265625005,-1.002050781250034],[33.94316406250002,0.173779296874969],[34.160937500000074,0.605175781250026],[34.4108398437501,0.867285156250034],[34.48173828125002,1.042138671875051],[34.79863281250002,1.24453125],[34.976464843749994,1.719628906250051],[34.97753906249997,1.861914062499991],[34.9640625000001,2.06240234374998],[34.8830078125001,2.417919921875026],[34.90576171875003,2.4796875],[34.44785156250006,3.163476562500037],[34.40722656249997,3.357519531250034],[34.39941406249997,3.412695312500006],[34.44179687499999,3.60625],[34.43769531250004,3.650585937499969],[34.392871093750074,3.691503906250048],[34.26708984375003,3.733154296875],[34.16503906250003,3.812988281250014],[34.18574218750004,3.869775390625037],[34.13203125000004,3.889160156249986],[33.97607421874997,4.220214843750028],[34.176855468750006,4.419091796875037],[34.38017578125002,4.620654296874974],[34.6398437500001,4.875488281250028],[34.878320312499994,5.109570312500026],[35.08447265624997,5.31186523437502],[35.268359375000074,5.492285156250006],[35.325292968750006,5.364892578124994]]]},"properties":{"name":"Kenya","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[72.63994140625002,39.385986328125],[72.22998046875,39.20751953125],[72.14736328125002,39.2607421875],[72.08417968750001,39.31064453125],[72.04277343750002,39.3521484375],[71.77861328125002,39.277978515624994],[71.73222656250002,39.422998046874994],[71.50332031250002,39.478808593749996],[71.51738281250002,39.553857421874994],[71.50302734375,39.582177734374994],[71.4703125,39.603662109374994],[70.79931640625,39.3947265625],[70.50117187500001,39.587353515625],[69.29765625000002,39.524804687499994],[69.2447265625,39.827099609375],[69.27880859375,39.917773437499996],[69.3072265625,39.968554687499996],[69.36542968750001,39.947070312499996],[69.43193359375002,39.909765625],[69.47626953125001,39.919726562499996],[69.47099609375002,39.990625],[69.46875,40.020751953125],[69.966796875,40.20224609375],[70.59921875,39.974511718749994],[70.990625,40.2548828125],[71.3046875,40.286914062499996],[71.69248046875,40.15234375],[72.13125,40.438623046874994],[72.3892578125,40.427392578124994],[72.40205078125001,40.578076171875],[72.6041015625,40.525439453124996],[73.13212890625002,40.82851562499999],[72.65830078125,40.869921875],[72.36406250000002,41.04345703125],[72.294921875,41.039941406249994],[72.21308593750001,41.0142578125],[72.18730468750002,41.025927734374996],[72.18095703125002,41.118457031249996],[72.16425781250001,41.173730468749994],[72.11542968750001,41.186572265624996],[72.05244140625001,41.16474609375],[71.95849609375,41.187060546874996],[71.87861328125001,41.19501953125],[71.8580078125,41.311376953125],[71.79248046875,41.413134765624996],[71.75771484375002,41.428027343749996],[71.70068359375,41.454003906249994],[71.66494140625002,41.5412109375],[71.6375,41.5341796875],[71.60224609375001,41.503271484375],[71.60625,41.367431640625],[71.54560546875001,41.308056640625],[71.5,41.307470703125],[71.4208984375,41.34189453125],[71.40839843750001,41.136035156249996],[71.39306640625,41.123388671875],[71.11074218750002,41.152636718749996],[70.86044921875,41.224902343749996],[70.734375,41.400537109374994],[70.18095703125002,41.571435546874994],[70.85664062500001,42.030810546874996],[71.0322265625,42.077783203124994],[71.228515625,42.162890625],[71.23232421875002,42.186279296875],[71.21269531250002,42.206445312499994],[71.12998046875,42.25],[71.03603515625002,42.28466796875],[70.97900390625,42.266552734375],[70.94677734375,42.248681640624994],[70.89287109375002,42.339990234374994],[71.25664062500002,42.733544921874994],[71.42207031250001,42.783154296875],[71.5142578125,42.766943359375],[71.76054687500002,42.821484375],[72.16181640625001,42.760693359375],[72.27578125000002,42.757666015625],[72.54316406250001,42.677734375],[72.7529296875,42.637890625],[72.855078125,42.5611328125],[73.28291015625001,42.5041015625],[73.316015625,42.4669921875],[73.41162109375,42.419775390625],[73.49296875000002,42.409033203125],[73.421875,42.593505859375],[73.4501953125,42.703027343749994],[73.55625,43.002783203125],[73.88603515625002,43.132568359375],[74.20908203125,43.240380859374994],[75.04765625000002,42.90439453125],[75.68173828125,42.83046875],[75.78955078125,42.932910156249996],[75.84033203125,42.9375],[75.9322265625,42.928515625],[76.50917968750002,42.918896484375],[76.646484375,42.92880859375],[76.98808593749999,42.973583984375],[79.12666015625001,42.775732421875],[79.20302734375002,42.666015625],[79.29550781250003,42.604833984375],[79.36777343750003,42.547216796875],[79.42822265625,42.48349609375],[79.92109375000001,42.413134765624996],[80.0712890625,42.302978515625],[80.209375,42.1900390625],[80.24619140625003,42.059814453125],[80.23515624999999,42.04345703125],[80.21621093750002,42.032421875],[79.90966796875,42.014990234375],[79.84042968750003,41.995751953124994],[79.76611328125,41.898876953125],[78.74257812500002,41.56005859375],[78.54316406250001,41.4595703125],[78.44287109375,41.417529296874996],[78.36240234375003,41.371630859374996],[78.34628906250003,41.2814453125],[78.12343750000002,41.075634765625],[77.95644531250002,41.050683593749994],[77.81523437499999,41.055615234375],[77.71933593750003,41.024316406249994],[77.58173828125001,40.9927734375],[76.98662109374999,41.03916015625],[76.90771484375,41.024169921875],[76.82402343749999,40.982324218749994],[76.70839843750002,40.818115234375],[76.6611328125,40.779638671875],[76.63984375000001,40.742236328124996],[76.62216796875003,40.662353515625],[76.57792968749999,40.577880859375],[76.48017578125001,40.449511718749996],[76.39638671875002,40.389794921874994],[76.31855468750001,40.35224609375],[76.25830078125,40.43076171875],[75.87197265625002,40.30322265625],[75.67714843750002,40.305810546874994],[75.55556640625002,40.6251953125],[75.52080078125002,40.6275390625],[75.24101562500002,40.480273437499996],[75.111328125,40.4541015625],[75.0044921875,40.449511718749996],[74.865625,40.493505859375],[74.80126953125,40.428515625],[74.83046875000002,40.32851562499999],[74.41191406250002,40.13720703125],[74.24267578125,40.092041015625],[74.08515625000001,40.07431640625],[73.99160156250002,40.043115234374994],[73.93876953125002,39.978808593749996],[73.88457031250002,39.8779296875],[73.85625,39.828662109374996],[73.83535156250002,39.800146484375],[73.83974609375002,39.762841796874994],[73.88251953125001,39.71455078125],[73.9146484375,39.606494140624996],[73.90712890625002,39.57851562499999],[73.87275390625001,39.53330078125],[73.82294921875001,39.48896484375],[73.71572265625002,39.462255859375],[73.63164062500002,39.448876953124994],[73.47041015625001,39.460595703124994],[73.38740234375001,39.442724609375],[73.33613281250001,39.412353515625],[73.2349609375,39.374560546874996],[73.10927734375002,39.3619140625],[72.63994140625002,39.385986328125]],[[70.66416015625,39.85546875],[70.56708984375001,39.866601562499994],[70.49775390625001,39.882421875],[70.48281250000002,39.882714843749994],[70.4892578125,39.863037109375],[70.5595703125,39.790917968749994],[70.61210937500002,39.786767578124994],[70.70166015625,39.82529296875],[70.66416015625,39.85546875]],[[71.20615234375,39.892578125],[71.22871093750001,40.048144531249996],[71.08037109375002,40.079882812499996],[71.02412109375001,40.149169921875],[71.00546875,40.152294921875],[70.96064453125001,40.08798828125],[71.04482421875002,39.992529296875],[71.04365234375001,39.976318359375],[71.01171875,39.8951171875],[71.06425781250002,39.884912109374994],[71.15625,39.883447265624994],[71.20615234375,39.892578125]]]},"properties":{"name":"Kyrgyzstan","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[104.42636718750006,10.411230468749991],[103.87050781250005,10.655126953125034],[103.58710937500004,10.552197265625026],[103.54042968750005,10.668701171875043],[103.721875,10.890136718750043],[103.5324218750001,11.146679687499997],[103.35361328125006,10.921582031250054],[103.15283203124997,10.913720703125051],[103.12548828124997,11.460644531250011],[102.9486328125,11.773486328124974],[102.93388671875002,11.706689453125037],[102.73662109375007,12.089794921875011],[102.75566406250002,12.42626953125],[102.49960937500012,12.669970703125003],[102.33632812500005,13.560302734375014],[102.546875,13.585693359375043],[102.90927734375006,14.136718750000028],[103.19941406250004,14.332617187499977],[104.77900390625004,14.427832031250006],[105.07412109375005,14.227441406250037],[105.12597656250003,14.280957031250011],[105.16914062500004,14.336083984374966],[105.1833007812501,14.346240234374989],[105.18554687500003,14.319091796874972],[105.20703125000003,14.259375],[105.24570312500006,14.200537109374977],[105.35019531250006,14.109570312500011],[105.53154296875007,14.156152343749994],[105.73974609375003,14.084960937500057],[105.83144531250005,13.976611328125003],[105.9044921875001,13.924511718750054],[106.06679687500005,13.921191406250003],[106.12470703125004,14.049121093750031],[106.09667968749997,14.127099609375023],[106.00410156250004,14.262890624999983],[105.97890625,14.343017578125043],[106.00839843750012,14.357177734375],[106.1652343750001,14.372363281249989],[106.19072265625007,14.388134765624997],[106.22539062500002,14.476220703125009],[106.26796875,14.466210937500009],[106.35498046875003,14.454785156249997],[106.44697265625004,14.515039062500009],[106.50146484375003,14.578222656250006],[106.53115234375005,14.549414062499991],[106.5636718750001,14.505078125000026],[106.59921875000006,14.479394531250037],[106.66542968750005,14.441308593749994],[106.73818359375005,14.387744140625017],[106.78349609375002,14.335107421875037],[106.81992187500006,14.314697265625057],[106.91318359375006,14.329394531250031],[106.93808593750006,14.327343750000054],[106.99218750000003,14.391015624999966],[107.03017578125,14.425683593750009],[107.06240234375,14.415771484375043],[107.109375,14.416699218750054],[107.29267578125004,14.592382812500048],[107.37988281250003,14.555322265625051],[107.41474609375004,14.56289062499999],[107.51943359375005,14.705078125],[107.3314453125,14.126611328125009],[107.60546874999997,13.437792968750017],[107.47539062500002,13.030371093749963],[107.50644531250006,12.364550781250031],[107.39335937500002,12.260498046874972],[107.21210937500004,12.30400390624996],[106.70009765625,11.979296874999974],[106.41386718750002,11.9484375],[106.39921875000007,11.687011718750028],[106.0060546875001,11.758007812500011],[105.85146484375005,11.635009765625],[105.85605468750006,11.294287109375048],[106.16093750000002,11.037109375000057],[106.16396484375005,10.794921875],[105.85332031250007,10.86357421874996],[105.75507812500004,10.989990234375043],[105.40576171875003,10.95161132812504],[105.3146484375001,10.845166015625026],[105.04570312500002,10.911376953125014],[105.04638671874997,10.701660156250014],[104.85058593749997,10.534472656249974],[104.42636718750006,10.411230468749991]]]},"properties":{"name":"Cambodia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-157.34213867187503,1.855566406250034],[-157.17578125,1.73984375],[-157.57895507812498,1.902050781249997],[-157.43583984374993,1.84726562500002],[-157.365185546875,1.94609375],[-157.44189453125003,2.025048828125009],[-157.321875,1.968554687500045],[-157.34213867187503,1.855566406250034]]],[[[-159.3390625,3.923535156249983],[-159.27475585937503,3.796582031250054],[-159.40903320312503,3.87324218750004],[-159.3390625,3.923535156249983]]]]},"properties":{"name":"Kiribati","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[126.32695312500002,33.2236328125],[126.16562500000012,33.31201171875],[126.33769531250002,33.46040039062501],[126.90117187500002,33.51513671874997],[126.87285156250002,33.34116210937498],[126.32695312500002,33.2236328125]]],[[[126.23369140625002,34.370507812499994],[126.12285156250002,34.443945312500034],[126.34384765625012,34.544921875],[126.23369140625002,34.370507812499994]]],[[[126.17197265625006,34.73115234375001],[126.00751953125004,34.86748046874999],[126.07841796875002,34.914843750000045],[126.17197265625006,34.73115234375001]]],[[[128.0658203125,34.80585937500004],[128.05468750000003,34.70805664062502],[127.87343750000005,34.73496093749998],[127.8322265625001,34.87451171875],[128.0658203125,34.80585937500004]]],[[[128.74101562500007,34.798535156249955],[128.64667968750004,34.73686523437502],[128.48925781250003,34.86528320312496],[128.66796875000003,35.0087890625],[128.74101562500007,34.798535156249955]]],[[[126.52070312500004,37.73681640625003],[126.516015625,37.60468750000001],[126.42333984375003,37.62363281250006],[126.41162109374997,37.82265625000002],[126.52070312500004,37.73681640625003]]],[[[128.37460937500012,38.6234375],[129.41826171875002,37.059033203124955],[129.40351562500004,36.052148437499994],[129.57285156250006,36.05053710937503],[129.4191406250001,35.49785156249996],[129.07675781250006,35.12270507812502],[128.5109375000001,35.10097656250002],[128.44394531250012,34.87036132812503],[128.03623046875006,35.02197265625],[127.71484374999997,34.95468749999998],[127.71542968750012,34.72104492187498],[127.40429687499997,34.823095703125006],[127.47910156250012,34.625244140625],[127.324609375,34.463281249999966],[127.17343750000006,34.54614257812497],[127.24707031249997,34.755126953125],[126.89746093749997,34.438867187499966],[126.75478515625005,34.511865234374994],[126.53144531250004,34.31425781249999],[126.26445312500002,34.67324218750002],[126.52451171875006,34.697900390624966],[126.59335937500012,34.824365234374994],[126.42070312500002,34.823388671874966],[126.29111328125012,35.154150390625034],[126.61406250000007,35.57099609375004],[126.4884765625001,35.647070312500006],[126.75302734375006,35.871972656249994],[126.5404296875,36.166162109374966],[126.4876953125,36.69379882812498],[126.18085937500004,36.69160156249998],[126.16054687500005,36.77192382812501],[126.48701171875004,37.00747070312502],[126.78447265625007,36.94843749999998],[126.87207031249997,36.82446289062506],[126.97685546875002,36.93940429687501],[126.74638671875002,37.19355468750001],[126.63388671875012,37.78183593750006],[127.09033203125003,38.28388671875001],[128.03896484375,38.30854492187498],[128.37460937500012,38.6234375]]]]},"properties":{"name":"Korea","childNum":7}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[48.27539062499997,29.624316406250017],[48.17968750000003,29.611425781250063],[48.081445312499994,29.798925781250063],[48.1847656250001,29.978857421875034],[48.348242187500006,29.78266601562504],[48.27539062499997,29.624316406250017]]],[[[48.442480468750006,28.542919921874983],[47.671289062499994,28.53315429687504],[47.433203125,28.989550781250017],[46.53144531250004,29.09624023437499],[46.69375,29.259667968749966],[46.76933593750002,29.347460937500017],[46.90585937500006,29.5375],[47.14824218750002,30.0009765625],[47.64375,30.097314453125023],[47.75390624999997,30.076611328124955],[47.97871093750004,29.98281250000005],[48.00566406250002,29.835791015625034],[48.143457031249994,29.57246093750001],[47.96962890625005,29.61669921874997],[47.72265624999997,29.393017578124955],[48.0514648437501,29.355371093750023],[48.442480468750006,28.542919921874983]]]]},"properties":{"name":"Kuwait","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[102.12744140625011,22.37919921874999],[102.58251953125006,21.904296875000057],[102.66201171875008,21.676025390625057],[102.73857421875005,21.677929687500125],[102.77109375000015,21.70966796875001],[102.79824218750014,21.797949218750034],[102.81591796875,21.807373046875],[102.94960937500008,21.681347656250068],[102.85117187500009,21.26591796874999],[102.8837890625,21.202587890625068],[103.1044921875,20.89165039062499],[103.21074218749999,20.840625],[103.46357421874995,20.779833984375102],[103.6350585937501,20.697070312500102],[104.10136718750005,20.945507812500125],[104.1953125,20.91396484375008],[104.349609375,20.82109374999999],[104.58320312500001,20.646679687499955],[104.53271484375,20.554882812500125],[104.47861328124998,20.529589843750102],[104.40781250000015,20.485742187500023],[104.36777343750015,20.441406250000057],[104.39218750000015,20.424755859375068],[104.49619140625003,20.41367187499992],[104.61884765624995,20.374511718750114],[104.65644531250001,20.328515624999966],[104.66191406250005,20.289013671875125],[104.67695312500007,20.224707031249977],[104.69873046875006,20.205322265625114],[104.84785156250007,20.202441406250045],[104.88867187500006,20.169091796875023],[104.92919921874994,20.082812500000045],[104.92792968750007,20.01811523437499],[104.81513671875001,19.90400390625001],[104.80175781250011,19.836132812500068],[104.74316406250006,19.754736328124977],[104.58789062500006,19.61875],[104.54628906250014,19.610546875000068],[104.25986328125003,19.685498046875068],[104.06279296875005,19.678417968750068],[104.03203124999999,19.67514648437492],[104.0134765625001,19.646484374999943],[104.05156250000005,19.564160156250068],[104.06289062500002,19.482568359375136],[104.02753906250013,19.420458984375102],[103.93203125000002,19.366064453125034],[103.89638671875002,19.339990234375023],[103.89160156249994,19.30498046874999],[105.146484375,18.650976562499977],[105.14541015625014,18.616796874999977],[105.08701171875015,18.49624023437508],[105.11455078125005,18.405273437500057],[105.45820312500007,18.154296875000057],[105.51855468750011,18.077441406250045],[105.58847656250015,17.983691406249932],[105.69140625,17.737841796874932],[106.00625,17.415283203124943],[106.26953125,17.216796875000057],[106.33339843750002,17.14370117187508],[106.42597656250007,17.00253906250009],[106.50224609374999,16.9541015625],[106.52597656250003,16.876611328125023],[106.53369140625,16.821044921875057],[106.54619140625005,16.650732421874977],[106.65644531250013,16.492626953125125],[106.73955078124999,16.452539062500136],[106.79160156250015,16.490332031249977],[106.83242187500008,16.526269531250023],[106.85107421875,16.515625],[106.89277343750013,16.396533203125102],[106.93066406250006,16.353125],[107.39638671875008,16.04301757812499],[107.39199218750008,15.951660156250057],[107.36064453125005,15.921728515624977],[107.18886718750008,15.838623046875114],[107.16591796875002,15.802490234375],[107.27939453125003,15.618701171875045],[107.33876953125002,15.560498046875125],[107.56425781249999,15.3916015625],[107.62167968750015,15.309863281250045],[107.653125,15.255224609375091],[107.63369140625008,15.18984375000008],[107.58964843749999,15.118457031250102],[107.55527343750009,15.057031250000023],[107.48037109375014,14.979882812500136],[107.5046875000001,14.91591796875008],[107.52451171875003,14.871826171874943],[107.51376953124998,14.817382812500057],[107.51943359375008,14.705078125000114],[107.46513671875005,14.664990234375125],[107.41474609375007,14.56289062500008],[107.37988281250006,14.555322265625136],[107.29267578125007,14.592382812500034],[107.109375,14.416699218749955],[107.06240234375008,14.415771484374943],[107.03017578125008,14.425683593750023],[106.99218749999994,14.39101562500008],[106.93808593750015,14.327343750000068],[106.91318359375003,14.329394531249932],[106.81992187500003,14.314697265624943],[106.7834960937501,14.335107421875023],[106.73818359375008,14.387744140625102],[106.66542968750002,14.441308593750023],[106.59921875000003,14.479394531250136],[106.56367187500007,14.505078125000011],[106.53115234375002,14.549414062499977],[106.50146484375,14.578222656250034],[106.22539062500005,14.476220703125023],[106.1907226562501,14.388134765625011],[106.16523437500007,14.372363281249989],[106.00839843750009,14.357177734375114],[105.97890625000014,14.343017578125057],[106.00410156250013,14.262890625000068],[106.09667968750011,14.127099609375136],[106.12470703124995,14.049121093750045],[106.06679687500008,13.921191406250102],[105.90449218750007,13.924511718750068],[105.83144531250008,13.976611328124989],[105.73974609375006,14.084960937500057],[105.5315429687501,14.156152343750023],[105.35019531250009,14.109570312500125],[105.24570312500015,14.200537109374977],[105.20703125000006,14.259375],[105.18554687499994,14.319091796875],[105.18330078125001,14.346240234374989],[105.24365234375006,14.367871093749955],[105.34218750000008,14.416699218749955],[105.42265624999993,14.471630859374955],[105.47558593750006,14.530126953124977],[105.49736328125005,14.590673828125034],[105.52304687500015,14.843310546874989],[105.54667968749999,14.932470703125034],[105.53339843750013,15.041601562500091],[105.49042968750007,15.127587890625023],[105.49042968750007,15.256591796875],[105.615625,15.488281249999943],[105.63886718750013,15.585937499999943],[105.64101562500002,15.656542968749932],[105.62207031250006,15.699951171875114],[105.39892578125011,15.829882812500102],[105.40625,15.987451171875023],[105.33066406250003,16.037890625000045],[105.1487304687501,16.09355468749999],[105.04716796874999,16.16025390625009],[104.81933593749994,16.466064453125057],[104.75058593750015,16.647558593750034],[104.74355468750014,16.884375],[104.75898437500013,17.0771484375],[104.81601562499998,17.30029296875],[104.73964843750008,17.461669921875],[104.428125,17.698974609375057],[104.32265625000002,17.815820312500023],[104.19619140625002,17.988378906250034],[104.04873046875002,18.216699218749966],[103.94960937500008,18.318994140625023],[103.89882812500002,18.295312500000023],[103.79228515624999,18.31650390625009],[103.62968750000005,18.382568359375057],[103.48798828124995,18.41816406250001],[103.36699218750005,18.42333984375],[103.28828124999995,18.408398437499955],[103.25175781249999,18.373486328125125],[103.24892578125014,18.338964843750034],[103.27958984374999,18.304980468750045],[103.26318359375,18.278466796875136],[103.19970703125006,18.25947265625001],[103.14853515625009,18.221728515624932],[103.09121093750014,18.13823242187499],[103.05136718750003,18.02851562500001],[102.80742187500005,17.945556640625],[102.71757812500005,17.892236328125136],[102.67519531250014,17.851757812500068],[102.68007812500008,17.824121093750136],[102.66064453125,17.8179687499999],[102.61679687500015,17.833349609375034],[102.59824218750009,17.926757812500057],[102.55253906249999,17.965087890625057],[102.4587890625001,17.984619140624943],[102.35185546874999,18.045947265625045],[102.14824218750005,18.203857421875057],[102.10146484375014,18.21064453125001],[102.03457031250002,18.169824218750023],[101.94746093750001,18.081494140624955],[101.87548828125011,18.046435546874932],[101.81865234375005,18.064648437500125],[101.77480468750002,18.033398437500125],[101.6875,17.889404296875114],[101.56367187500001,17.820507812500125],[101.55507812500002,17.812353515625034],[101.41367187500015,17.71875],[101.16748046875011,17.4990234375],[101.10517578125001,17.479541015625102],[100.9084960937501,17.583886718750023],[101.14394531250008,18.14262695312499],[101.1375,18.286865234375057],[101.0505859375001,18.407031250000045],[101.04697265625003,18.441992187500034],[101.28632812499995,18.977148437500034],[101.19755859374999,19.327929687500045],[101.22080078125015,19.486621093750045],[101.21191406250011,19.548339843750057],[100.51357421875008,19.553466796875],[100.39765625000013,19.756103515625057],[100.51953125000006,20.177929687500068],[100.31796875000003,20.385888671875136],[100.2180664062501,20.339599609375114],[100.13974609375015,20.245410156250102],[100.11494140625007,20.25766601562492],[100.12246093750002,20.316650390625057],[100.12968750000005,20.372216796875023],[100.1838867187501,20.589111328124943],[100.2493164062501,20.730273437499932],[100.32607421875008,20.795703124999932],[100.40742187499995,20.823242187500057],[100.56513671875013,20.82509765625008],[100.62294921875002,20.85957031250001],[100.61767578125,20.87924804687509],[100.54931640625011,20.884228515625068],[100.5222656250001,20.921923828125102],[100.53613281250006,20.992382812500068],[100.703125,21.25136718750008],[101.0803710937501,21.46865234375008],[101.13886718750013,21.567480468749977],[101.19667968750002,21.522070312499977],[101.17539062500009,21.407519531250102],[101.21992187500013,21.342431640625136],[101.21181640625008,21.278222656250023],[101.22441406249999,21.22373046874992],[101.24785156249993,21.197314453125045],[101.28144531250007,21.184130859375045],[101.44355468750001,21.230810546874977],[101.54238281250008,21.234277343750136],[101.70478515625013,21.150146484375057],[101.728125,21.15639648437508],[101.78349609374999,21.204150390625045],[101.8005859375001,21.212597656249955],[101.7229492187501,21.314941406250057],[101.74726562500007,21.60576171874999],[101.7439453125001,21.77797851562508],[101.73652343750001,21.826513671874977],[101.52451171874998,22.253662109375],[101.56787109375011,22.2763671875],[101.6199218750001,22.327441406250102],[101.67148437500009,22.462304687500023],[101.70751953125,22.486572265625],[101.73876953125011,22.495263671874966],[101.75996093750001,22.490332031250034],[101.841796875,22.388476562500102],[102.02441406250006,22.439208984375114],[102.09150390625007,22.412255859375136],[102.12744140625011,22.37919921874999]]]},"properties":{"name":"Lao PDR","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[35.869140625,33.43173828125],[35.411230468750006,33.07568359375],[35.10859375000001,33.08369140625],[35.64785156250002,34.2482421875],[35.97626953125001,34.629199218749996],[36.383886718750006,34.65791015625],[36.32988281250002,34.499609375],[36.50439453125,34.432373046875],[36.5849609375,34.221240234374996],[36.27783203125,33.92529296875],[36.36503906250002,33.83935546875],[35.98613281250002,33.75263671875],[36.03447265625002,33.58505859375],[35.869140625,33.43173828125]]]},"properties":{"name":"Lebanon","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-8.486425781249977,7.558496093749994],[-8.408740234374989,7.411816406249997],[-8.324511718749989,6.920019531249991],[-8.587890625,6.490527343749989],[-8.287109375,6.319042968749997],[-7.981591796874994,6.2861328125],[-7.888623046874983,6.23486328125],[-7.800927734374994,6.038916015624991],[-7.730371093749994,5.919042968749991],[-7.636132812499994,5.90771484375],[-7.454394531249989,5.84130859375],[-7.39990234375,5.550585937499989],[-7.585058593749977,4.916748046875],[-7.574658203124983,4.572314453124989],[-7.544970703124989,4.351318359375],[-8.259033203125,4.589990234374994],[-9.132177734374977,5.054638671874997],[-10.2763671875,6.07763671875],[-11.291601562499977,6.688232421875],[-11.507519531249983,6.906542968749989],[-11.267675781249977,7.232617187499997],[-10.878076171874994,7.538232421874994],[-10.6474609375,7.759375],[-10.570849609374989,8.071142578124991],[-10.516748046874994,8.125292968749989],[-10.359814453124983,8.187939453124997],[-10.283203125,8.485156249999989],[-10.233056640624994,8.488818359374989],[-10.147412109374983,8.519726562499997],[-10.064355468749994,8.429882812499997],[-9.781982421875,8.537695312499991],[-9.518261718749983,8.34609375],[-9.369140625,7.703808593749997],[-9.463818359374983,7.415869140624991],[-9.11757812499999,7.215917968749991],[-8.8896484375,7.2626953125],[-8.659765624999977,7.688378906249994],[-8.486425781249977,7.558496093749994]]]},"properties":{"name":"Liberia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[25.150488281250006,31.654980468749997],[24.85273437500001,31.334814453125],[24.96142578125,30.678515625],[24.703222656250006,30.201074218749994],[24.980273437500017,29.181884765625],[24.980273437500017,25.5888671875],[24.980273437500017,21.995849609375],[24.9794921875,20.002587890624994],[23.980273437500017,19.99594726562499],[23.980273437500017,19.496630859375003],[20.14765625000001,21.38925781249999],[15.984082031250011,23.445214843749994],[14.97900390625,22.99619140624999],[14.215527343750011,22.619677734375003],[13.48125,23.18017578125],[11.967871093750006,23.517871093750003],[11.507617187500017,24.314355468749994],[10.686132812500006,24.55136718749999],[10.395898437500023,24.485595703125],[10.255859375,24.591015625],[10.000683593750011,25.332080078125003],[9.4482421875,26.067138671875],[9.491406250000011,26.333740234375],[9.883203125000023,26.630810546874997],[9.74755859375,27.330859375],[9.916015625,27.785693359374996],[9.805273437500006,29.176953125],[9.310253906250011,30.115234375],[9.51875,30.229394531249994],[9.89501953125,30.3873046875],[9.932519531250023,30.425341796874996],[10.059765625000011,30.580078125],[10.21640625,30.783203125],[10.114941406250011,31.463769531249994],[10.274609375000011,31.684960937499994],[10.475781250000011,31.736035156249997],[10.60888671875,31.929541015625],[10.826367187500011,32.0806640625],[11.005175781250017,32.172705078125],[11.168261718750017,32.256738281249994],[11.358007812500006,32.34521484375],[11.504980468750006,32.413671875],[11.535937500000017,32.47333984375],[11.533789062500006,32.524951171874996],[11.453906250000017,32.642578125],[11.453906250000017,32.781689453125],[11.459179687500011,32.897363281249994],[11.467187500000023,32.965722656249994],[11.504589843750011,33.181933593749996],[11.657128906250023,33.118896484375],[11.8134765625,33.093701171875],[12.279882812500006,32.858544921874994],[12.753515625,32.801074218749996],[13.283496093750017,32.9146484375],[15.176562500000017,32.391162109374996],[15.705957031250023,31.426416015624994],[17.830468750000023,30.927587890625],[18.669824218750023,30.415673828124994],[19.12373046875001,30.26611328125],[19.713281250000023,30.48837890625],[20.11152343750001,30.963720703125],[19.926367187500006,31.817529296874994],[20.121484375000023,32.21875],[20.62109375,32.58017578125],[21.63593750000001,32.937304687499996],[22.187402343750023,32.918261718749996],[23.090625,32.61875],[23.10625,32.331445312499994],[23.28632812500001,32.213818359375],[24.129687500000017,32.009228515625],[24.878515625,31.984277343749994],[25.150488281250006,31.654980468749997]]]},"properties":{"name":"Libya","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-60.89521484375,13.821972656249997],[-60.951416015625,13.717578125],[-61.073144531249994,13.865576171874991],[-60.908105468749994,14.09335937499999],[-60.89521484375,13.821972656249997]]]},"properties":{"name":"Saint Lucia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[79.87480468750002,9.050732421875026],[79.90371093750005,8.975],[79.74765625000006,9.104589843749991],[79.87480468750002,9.050732421875026]]],[[[79.98232421875,9.812695312500011],[80.25283203125005,9.796337890625054],[80.71113281250004,9.366357421875023],[81.226953125,8.50551757812498],[81.37285156250002,8.431445312499989],[81.42216796875007,8.147851562500023],[81.87412109375012,7.288330078124986],[81.86142578125012,6.901269531249994],[81.63740234375004,6.425146484374991],[80.72412109375003,5.97905273437496],[80.26738281250007,6.009765625],[80.09531250000012,6.153173828125006],[79.859375,6.829296874999983],[79.71298828125012,8.18232421875004],[79.74980468750007,8.294238281250003],[79.78349609375007,8.018457031250051],[79.92890625000004,8.899218749999974],[80.09960937499997,9.209960937500043],[80.08632812500005,9.577832031250026],[80.42832031250006,9.480957031250014],[80.04580078125005,9.649902343749972],[79.98232421875,9.812695312500011]]]]},"properties":{"name":"Sri Lanka","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[28.646875,-30.1265625],[28.39208984375,-30.147558593750006],[28.128710937500017,-30.52509765625001],[28.05683593750001,-30.63105468750001],[27.753125,-30.6],[27.364062500000017,-30.27919921875001],[27.19355468750001,-29.94130859375001],[27.056933593750017,-29.625585937500006],[27.29453125,-29.519335937500003],[27.73554687500001,-28.940039062500006],[27.959863281250023,-28.873339843750003],[28.084375,-28.77998046875001],[28.23261718750001,-28.701269531250006],[28.471875,-28.615820312500006],[28.583398437500023,-28.594140625],[28.625781250000017,-28.58173828125001],[29.301367187500006,-29.08984375],[29.38671875,-29.31972656250001],[29.34882812500001,-29.441992187500006],[29.293554687500006,-29.56689453125],[29.1421875,-29.700976562500003],[29.098046875000023,-29.919042968750006],[28.646875,-30.1265625]]]},"properties":{"name":"Lesotho","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[20.957812500000074,55.27890625000006],[20.89980468750008,55.286669921875045],[21.11484375,55.61650390624999],[20.957812500000074,55.27890625000006]]],[[[25.573046875000017,54.139892578125],[25.497363281250045,54.17524414062501],[25.52734375000003,54.21513671874996],[25.505664062500045,54.26494140624999],[25.46113281250004,54.29277343749996],[25.179492187500017,54.214257812499966],[25.111425781250006,54.15493164062505],[25.04609375000004,54.13305664062503],[24.869531250000023,54.14516601562502],[24.82568359374997,54.118994140625006],[24.78925781250001,53.99824218750001],[24.768164062499977,53.97465820312499],[24.31796875,53.892968749999966],[24.236621093750045,53.91997070312496],[24.19130859375005,53.95043945312503],[23.559082031250057,53.91982421875002],[23.484667968750074,53.939794921875006],[23.453613281250057,54.14345703125002],[23.3701171875,54.20048828124999],[23.282324218750063,54.240332031250034],[23.17031250000008,54.28144531249998],[23.0875,54.299462890624994],[23.042187500000068,54.30419921875],[23.01552734375005,54.34833984375001],[22.976757812500068,54.36635742187505],[22.89394531250008,54.390527343749994],[22.82373046874997,54.39580078124999],[22.766210937499977,54.356787109375034],[22.679882812500068,54.493017578125006],[22.684472656250023,54.56293945312504],[22.82470703125,54.87128906249998],[22.56728515625005,55.05913085937496],[22.072363281250034,55.06367187499998],[21.235742187500023,55.26411132812498],[21.237890625000034,55.455029296874955],[21.06191406250005,55.81342773437498],[21.053808593750006,56.02294921875003],[21.04609375000004,56.07006835937503],[21.31464843750004,56.18813476562502],[21.65351562500004,56.314550781250006],[22.084570312500034,56.40673828125006],[22.875585937500063,56.39643554687501],[22.96826171875003,56.38041992187502],[23.042968750000057,56.324072265625006],[23.119824218749983,56.330664062500006],[23.195898437500034,56.36713867187498],[24.120703125000063,56.26425781249998],[24.90302734375001,56.398193359375],[25.069921875,56.20039062500004],[25.663183593750063,56.104833984375006],[26.593554687500074,55.66752929687502],[26.590820312500057,55.62265625],[26.56660156250001,55.546484375000034],[26.51923828125004,55.448144531249994],[26.469531250000045,55.371923828125006],[26.457617187500006,55.342480468749955],[26.49531250000004,55.31801757812502],[26.68125,55.30644531249999],[26.76015625000008,55.29335937499999],[26.775683593750045,55.27309570312502],[26.601171875000034,55.130175781250045],[26.291796875000074,55.13959960937501],[26.250781250000045,55.12451171875006],[26.175195312500023,55.003271484375034],[26.092968750000068,54.96230468750005],[25.964453124999977,54.947167968749966],[25.85927734375005,54.91928710937498],[25.722460937500074,54.71787109374998],[25.731640625000068,54.59038085937502],[25.72480468750001,54.564257812500045],[25.68515625,54.53579101562502],[25.62031250000004,54.46040039062501],[25.56757812500004,54.377050781250006],[25.54736328125,54.33183593750002],[25.55751953125005,54.310693359374994],[25.702539062499994,54.29296875],[25.765234374999977,54.179785156250034],[25.573046875000017,54.139892578125]]]]},"properties":{"name":"Lithuania","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[6.4873046875,49.798486328124994],[6.344335937500006,49.452734375],[6.181054687500023,49.498925781249994],[6.119921875000017,49.485205078125],[6.074121093750023,49.454638671874996],[6.011425781250011,49.445458984374994],[5.95947265625,49.454638671874996],[5.928906250000011,49.4775390625],[5.9013671875,49.48974609375],[5.823437500000011,49.505078125],[5.789746093750011,49.53828125],[5.776710379464286,49.639953962053575],[5.744042968750023,49.91962890625],[5.7880859375,49.961230468749996],[5.8173828125,50.0126953125],[5.866894531250011,50.0828125],[5.976269531250011,50.1671875],[6.089062500000011,50.154589843749996],[6.110058593750011,50.123779296875],[6.116503906250017,50.120996093749994],[6.109765625000023,50.034375],[6.13818359375,49.97431640625],[6.204882812500017,49.91513671875],[6.272327008928583,49.887234933035714],[6.4873046875,49.798486328124994]]]},"properties":{"name":"Luxembourg","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.14794921875,56.142919921875],[27.576757812500006,55.798779296875],[27.052539062500017,55.83056640625],[26.593554687500017,55.667529296874996],[25.663183593750006,56.104833984375],[25.069921875,56.200390625],[24.90302734375001,56.398193359375],[24.120703125,56.2642578125],[23.81269531250001,56.329248046875],[23.195898437500006,56.367138671875],[23.11982421875001,56.3306640625],[23.04296875,56.324072265625],[22.875585937500006,56.396435546875],[22.084570312500006,56.40673828125],[21.730566406250006,56.325976562499996],[21.65351562500001,56.31455078125],[21.31464843750001,56.188134765625],[21.04609375000001,56.070068359375],[21.0712890625,56.82373046875],[21.72871093750001,57.57099609375],[22.554589843750023,57.724267578125],[23.28730468750001,57.08974609375],[23.647753906250017,56.971044921875],[24.382617187500017,57.250048828124996],[24.322558593750017,57.87060546875],[24.3625,57.866162109375],[24.458886718750023,57.907861328125],[25.11103515625001,58.063427734375],[25.27265625000001,58.009375],[25.66015625,57.920166015625],[26.29804687500001,57.60107421875],[26.532617187500023,57.531005859375],[26.96601562500001,57.609130859375],[27.187109375,57.538330078125],[27.326562500000023,57.52548828125],[27.4697265625,57.5240234375],[27.538671875,57.42978515625],[27.796875,57.316943359374996],[27.82861328125,57.293310546875],[27.838281250000023,57.247705078125],[27.83027343750001,57.194482421875],[27.639453125000017,56.845654296875],[27.806054687500023,56.86708984375],[27.8486328125,56.85341796875],[27.89208984375,56.741064453125],[28.00751953125001,56.599853515625],[28.103125,56.545703125],[28.11083984375,56.510693359375],[28.169238281250017,56.386865234375],[28.191699218750017,56.315576171875],[28.202050781250023,56.260400390625],[28.14794921875,56.142919921875]]]},"properties":{"name":"Latvia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.2125,45.450439453125],[28.07470703125,45.598974609375],[28.23945312500001,46.6408203125],[28.07177734375,46.978417968749994],[27.614062500000017,47.34052734375],[26.980761718750017,48.155029296875],[26.618945312500017,48.25986328125],[26.640429687500017,48.294140625],[26.847070312500023,48.387158203125],[26.90058593750001,48.371923828125],[27.228515625,48.371435546875],[27.549218750000023,48.477734375],[28.34052734375001,48.144433593749994],[28.42304687500001,48.146875],[29.125390625000023,47.96455078125],[29.134863281250006,47.489697265625],[29.455664062500006,47.292626953124994],[29.57197265625001,46.964013671874994],[29.7197265625,46.88291015625],[29.877832031250023,46.82890625],[29.942480468750006,46.723779296874994],[29.93476562500001,46.625],[29.92431640625,46.538867187499996],[30.13105468750001,46.423095703125],[30.07568359375,46.377832031249994],[29.878027343750006,46.360205078125],[29.837890625,46.350537109375],[29.458789062500017,46.453759765624994],[29.30488281250001,46.466601562499996],[29.22382812500001,46.376953125],[29.20458984375,46.379345703125],[29.20078125,46.50498046875],[29.18623046875001,46.523974609374996],[29.146289062500017,46.526904296874996],[28.958398437500023,46.45849609375],[28.92744140625001,46.424121093749996],[28.930566406250023,46.362255859375],[28.94375,46.288427734375],[29.00625,46.17646484375],[28.971875,46.12763671875],[28.94775390625,46.049951171874994],[28.849511718750023,45.978662109374994],[28.73876953125,45.937158203124994],[28.729296875000017,45.852001953125],[28.667578125,45.793847656249994],[28.562304687500017,45.735791015625],[28.491601562500023,45.665771484375],[28.4990234375,45.517724609374994],[28.310351562500017,45.498583984374996],[28.26484375000001,45.48388671875],[28.2125,45.450439453125]]]},"properties":{"name":"Moldova","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[49.936425781249994,-16.90292968750002],[49.82402343750002,-17.08652343750002],[50.02304687500006,-16.6953125],[49.936425781249994,-16.90292968750002]]],[[[48.3421875,-13.363867187500034],[48.21191406250003,-13.385253906249957],[48.191210937500074,-13.259960937500011],[48.308886718750074,-13.198242187499957],[48.3421875,-13.363867187500034]]],[[[49.53828125000004,-12.432128906250014],[49.9375,-13.072265624999957],[50.23535156249997,-14.732031249999963],[50.482714843750074,-15.385644531249994],[50.20898437499997,-15.960449218750028],[50.02041015625005,-15.801757812500028],[49.89257812500003,-15.457714843750011],[49.664355468750074,-15.521582031249977],[49.83906250000004,-16.486523437499997],[49.76718750000006,-16.815136718749983],[49.44931640625006,-17.240625],[49.477832031250074,-17.89853515624999],[49.362890625,-18.336328125],[47.934472656249994,-22.393945312500023],[47.55800781250005,-23.874609374999963],[47.17734375,-24.787207031249977],[46.72851562499997,-25.14990234374997],[46.15869140624997,-25.230371093750023],[45.5080078125001,-25.56318359374997],[45.2057617187501,-25.57050781250004],[44.0353515625001,-24.995703125],[43.670019531250006,-24.30029296875],[43.722265625,-23.529687500000037],[43.2648437500001,-22.38359375],[43.29052734374997,-21.93251953124998],[43.50185546875005,-21.356445312499957],[43.800195312499994,-21.179199218749986],[44.40468750000005,-19.922070312500026],[44.44882812500006,-19.42871093749997],[44.23876953124997,-19.075195312499986],[44.23310546875004,-18.740625],[44.04003906249997,-18.288476562500023],[43.979394531249994,-17.3916015625],[44.42138671874997,-16.70263671874997],[44.476171875,-16.217285156249957],[44.90917968749997,-16.174511718750026],[45.2228515625001,-15.95048828124996],[45.3421875,-16.03671875000002],[45.598242187500006,-15.992578125],[45.70019531249997,-15.813769531249989],[46.157519531250074,-15.738281249999972],[46.3996093750001,-15.924609375000017],[46.331445312499994,-15.713671875000031],[46.47509765625003,-15.513476562500003],[46.942285156249994,-15.219042968749974],[47.09921875,-15.43417968750002],[47.092578125000074,-15.150097656249969],[47.35195312500005,-14.766113281249986],[47.46474609375005,-14.713281249999966],[47.47832031250002,-15.009375],[47.77402343750006,-14.63671875],[47.964160156250074,-14.672558593750026],[47.773339843749994,-14.369921875],[47.995507812499994,-13.960449218749986],[47.88359375000002,-13.807519531250009],[47.94101562500006,-13.662402343750017],[48.03984375000002,-13.596289062499963],[48.25527343750005,-13.719335937499977],[48.796484375,-13.267480468750023],[48.91943359375003,-12.839062499999969],[48.78632812500004,-12.470898437500011],[48.931738281250006,-12.4390625],[49.20703124999997,-12.079589843749957],[49.53828125000004,-12.432128906250014]]]]},"properties":{"name":"Madagascar","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-91.68369140624998,18.677343750000034],[-91.81611328124995,18.675878906250006],[-91.53671874999998,18.760009765625],[-91.68369140624998,18.677343750000034]]],[[[-86.93964843750001,20.303320312500006],[-86.97797851562498,20.489794921875074],[-86.76328124999995,20.579052734374955],[-86.93964843750001,20.303320312500006]]],[[[-106.50224609374999,21.61083984375003],[-106.60703124999993,21.561474609374983],[-106.63935546874995,21.697851562499977],[-106.50224609374999,21.61083984375003]]],[[[-110.56738281249994,25.003466796875017],[-110.5388671875,24.89155273437504],[-110.69926757812499,25.081445312499994],[-110.56738281249994,25.003466796875017]]],[[[-112.05727539062498,24.545703125000017],[-112.29677734375002,24.789648437500063],[-112.15942382812501,25.28564453125003],[-112.19501953124998,24.841064453125057],[-112.05727539062498,24.545703125000017]]],[[[-111.10029296874998,26.020605468750006],[-111.224658203125,25.83588867187504],[-111.18291015625002,26.040625],[-111.10029296874998,26.020605468750006]]],[[[-115.17060546875001,28.06938476562496],[-115.35292968750002,28.103955078124983],[-115.23354492187495,28.36835937500004],[-115.17060546875001,28.06938476562496]]],[[[-112.20307617187503,29.00532226562504],[-112.27841796875,28.769335937500017],[-112.51406249999997,28.847607421874955],[-112.42353515625,29.203662109375017],[-112.28505859374994,29.240429687499955],[-112.20307617187503,29.00532226562504]]],[[[-113.15561523437502,29.05224609375],[-113.49633789062497,29.30761718749997],[-113.58720703125002,29.57304687499996],[-113.20214843749999,29.301855468750034],[-113.15561523437502,29.05224609375]]],[[[-97.14624023437494,25.961474609375045],[-97.66767578124995,24.389990234374977],[-97.84248046874995,22.510302734375017],[-97.76328124999998,22.105859374999966],[-97.31450195312496,21.56420898437503],[-97.40917968749997,21.272558593750034],[-97.38344726562497,21.56669921874999],[-97.75380859375002,22.02666015624999],[-97.18632812499996,20.717041015625],[-96.45605468749994,19.869775390624966],[-96.28955078124994,19.34375],[-95.778125,18.805517578125034],[-95.92036132812495,18.81958007812497],[-95.62680664062503,18.690576171874994],[-95.71982421874998,18.768359375000017],[-95.18183593749995,18.700732421875017],[-94.79814453124996,18.51459960937501],[-94.45976562499993,18.166650390624994],[-93.55234375,18.430468750000017],[-92.88476562499997,18.468652343749966],[-92.44101562499998,18.67529296874997],[-91.97377929687502,18.715869140625074],[-91.91357421875,18.52851562500001],[-91.53398437499993,18.45654296875],[-91.27524414062498,18.62446289062501],[-91.34306640624996,18.900585937499955],[-91.43666992187502,18.889794921874966],[-90.73925781249994,19.352246093749955],[-90.69316406249996,19.729882812499966],[-90.49169921874997,19.94677734375003],[-90.353125,21.009423828124966],[-89.81977539062495,21.274609374999983],[-88.46669921874997,21.569384765625017],[-88.0068359375,21.604052734375045],[-87.25087890625,21.44697265625004],[-87.18828124999993,21.546435546875045],[-87.36850585937498,21.57373046875],[-87.034765625,21.592236328124955],[-86.824072265625,21.421679687500017],[-86.77177734374999,21.150537109375023],[-86.92622070312493,20.786474609375034],[-87.42138671875,20.23139648437501],[-87.44174804687498,19.861523437499983],[-87.68769531249998,19.63710937499999],[-87.6453125,19.55390625000001],[-87.42475585937498,19.583349609375063],[-87.65869140625003,19.352343750000074],[-87.65576171874997,19.25786132812499],[-87.50107421874998,19.287792968749983],[-87.76181640624998,18.446142578125006],[-87.88198242187497,18.27387695312501],[-88.05644531249996,18.524462890625074],[-88.03173828125,18.838916015625017],[-88.29565429687494,18.47241210937503],[-88.52299804687499,18.445898437500063],[-88.80634765624998,17.965527343749983],[-89.13354492187503,17.970800781249977],[-89.16147460937503,17.81484375],[-90.98916015624997,17.81640624999997],[-90.99296874999993,17.25244140625],[-91.19550781249998,17.254101562499983],[-91.40961914062501,17.255859375],[-90.975830078125,16.867822265624994],[-90.710693359375,16.708105468750034],[-90.65996093749996,16.630908203125045],[-90.634375,16.565136718749955],[-90.63408203125002,16.51074218749997],[-90.57578124999995,16.467822265625017],[-90.47109374999994,16.439550781250034],[-90.41699218750003,16.391015625000023],[-90.41699218750003,16.351318359375],[-90.45014648437493,16.261376953124994],[-90.45986328124997,16.16235351562497],[-90.44716796874994,16.07270507812501],[-90.52197265625,16.07119140625005],[-90.70322265624998,16.07104492187503],[-90.97958984374998,16.07080078124997],[-91.433984375,16.070458984374994],[-91.736572265625,16.070166015625006],[-91.95722656250001,15.703222656250034],[-92.08212890624998,15.495556640625011],[-92.18715820312497,15.320898437499963],[-92.07480468749998,15.074218749999972],[-92.09873046874998,15.026757812499994],[-92.14423828125001,15.001953125],[-92.158544921875,14.963574218749997],[-92.23515625,14.545410156249986],[-93.91606445312493,16.053564453125006],[-94.374169921875,16.284765625000034],[-94.426416015625,16.22626953125001],[-94.00126953124996,16.018945312499966],[-94.66152343750002,16.20190429687503],[-94.58710937499995,16.315820312499966],[-94.79082031249999,16.28715820312499],[-94.85869140624996,16.41972656249999],[-95.02084960937503,16.277636718750017],[-94.79941406249995,16.20966796875001],[-95.134375,16.17695312500001],[-96.21357421874993,15.693066406250011],[-96.80795898437495,15.726416015624977],[-97.18466796874998,15.909277343750006],[-97.75478515624994,15.966845703125017],[-98.52031249999993,16.30483398437505],[-98.76220703125,16.534765624999977],[-99.69067382812499,16.719628906249994],[-100.847802734375,17.20048828124999],[-101.91870117187494,17.959765625000045],[-102.69956054687495,18.062841796875006],[-103.44160156249995,18.32539062500001],[-103.91245117187496,18.828466796875006],[-104.9384765625,19.309375],[-105.482080078125,19.97607421875003],[-105.66943359374997,20.385595703124977],[-105.26015625,20.579052734374955],[-105.32705078124994,20.752978515625045],[-105.51083984374999,20.808740234375023],[-105.23706054687499,21.119189453125045],[-105.20869140624998,21.490820312499977],[-105.43144531249997,21.618261718750006],[-105.64912109375001,21.988085937500045],[-105.64550781249999,22.32690429687497],[-105.79179687500003,22.627490234375017],[-106.93549804687497,23.88125],[-107.76494140625002,24.47192382812497],[-107.52724609375001,24.36005859375001],[-107.51191406249998,24.489160156250023],[-107.95117187499994,24.614892578124966],[-108.28076171874994,25.08154296875],[-108.05146484374995,25.067041015624994],[-108.69638671874998,25.382910156250034],[-108.78725585937502,25.53803710937501],[-109.02880859375003,25.48046875000003],[-108.886572265625,25.733447265625045],[-109.19648437499998,25.59252929687503],[-109.38496093750001,25.727148437500006],[-109.42563476562495,26.032568359375063],[-109.19970703125003,26.30522460937499],[-109.11669921874999,26.25273437499996],[-109.27626953125,26.533886718749955],[-109.48286132812498,26.710351562500023],[-109.75478515624995,26.702929687500017],[-109.94399414062495,27.079345703125057],[-110.37729492187495,27.233300781249966],[-110.59267578124995,27.544335937500023],[-110.52988281249995,27.864208984374983],[-111.12138671875002,27.966992187499983],[-112.16176757812495,29.018896484375034],[-113.05766601562496,30.651025390625023],[-113.04672851562495,31.17924804687499],[-113.62348632812494,31.34589843750001],[-113.75942382812501,31.557763671874994],[-113.94775390625001,31.62934570312501],[-114.14931640624995,31.507373046875045],[-114.93359374999994,31.900732421874977],[-114.78989257812498,31.647119140624994],[-114.88188476562499,31.156396484375023],[-114.55048828124997,30.02226562499999],[-113.75546875,29.367480468750017],[-113.49970703124995,28.92670898437501],[-113.20556640624997,28.798779296874955],[-113.09365234375001,28.511767578125017],[-112.870849609375,28.42421875000005],[-112.73403320312501,27.825976562500017],[-112.32919921874996,27.52343750000003],[-111.86264648437495,26.678515625000017],[-111.6994140625,26.58095703125005],[-111.79526367187499,26.8796875],[-111.56967773437495,26.707617187500006],[-111.29160156249996,25.78979492187497],[-110.68676757812501,24.867675781250057],[-110.65932617187502,24.34145507812505],[-110.36743164062497,24.100488281249994],[-110.30375976562497,24.339453125],[-110.02280273437502,24.17460937499999],[-109.6765625,23.66157226562501],[-109.42084960937495,23.480126953124994],[-109.49570312500002,23.159814453125023],[-110.00625,22.894042968750057],[-110.3626953125,23.60493164062501],[-111.68291015625002,24.555810546875023],[-111.80249023437494,24.542529296875074],[-112.07255859374999,24.84003906250001],[-112.06987304687497,25.572851562500006],[-112.37724609374997,26.21391601562496],[-113.02075195312499,26.58325195312497],[-113.15581054687496,26.94624023437504],[-113.27226562499997,26.79096679687501],[-113.59853515625001,26.721289062500034],[-113.84096679687502,26.966503906249983],[-114.44526367187503,27.218164062499994],[-114.53989257812495,27.431103515624955],[-114.99350585937499,27.736035156249983],[-115.03647460937495,27.84184570312496],[-114.57001953124995,27.78393554687497],[-114.30058593749995,27.87299804687501],[-114.30224609375003,27.775732421875006],[-114.0693359375,27.67568359375005],[-114.15839843750003,27.919677734375],[-114.26586914062499,27.934472656249994],[-114.04848632812502,28.42617187499999],[-114.93730468749999,29.35161132812496],[-115.67382812500003,29.756396484375017],[-116.06215820312501,30.80415039062504],[-116.29628906250001,30.97050781249999],[-116.33344726562494,31.202783203124994],[-116.66215820312495,31.56489257812504],[-116.72207031249998,31.734570312499955],[-116.62080078124995,31.85107421874997],[-116.84799804687496,31.997363281250045],[-117.12827148437495,32.533349609374994],[-114.72475585937495,32.71533203125003],[-114.83593749999994,32.50830078125003],[-111.0419921875,31.32421875000003],[-108.21445312499993,31.329443359375034],[-108.21181640625002,31.779345703125017],[-106.44541015624996,31.768408203125006],[-106.14804687499995,31.450927734375],[-104.97880859374996,30.645947265624955],[-104.50400390624995,29.677685546874955],[-104.110595703125,29.386132812499994],[-103.16831054687498,28.998193359374994],[-102.8919921875,29.216406250000034],[-102.61494140624994,29.75234375],[-102.26894531249998,29.871191406250034],[-101.44038085937503,29.77685546875],[-100.75458984375001,29.182519531249994],[-100.29604492187495,28.32768554687499],[-99.50532226562497,27.54833984375003],[-99.45654296874999,27.05668945312496],[-99.10776367187498,26.446923828124994],[-97.37563476562497,25.871826171875],[-97.14624023437494,25.961474609375045]]]]},"properties":{"name":"Mexico","childNum":10}},{"geometry":{"type":"Polygon","coordinates":[[[22.344042968750017,42.31396484375],[22.836816406250023,41.993603515625],[23.00361328125001,41.73984375],[22.916015625,41.336279296875],[22.78388671875001,41.331982421875],[22.72480468750001,41.178515625],[22.603613281250006,41.140185546874996],[22.493554687500023,41.118505859375],[22.184472656250023,41.158642578125],[21.99335937500001,41.13095703125],[21.77949218750001,40.950439453125],[21.627539062500006,40.896337890625],[21.57578125,40.868945312499996],[20.964257812500023,40.849902343749996],[20.709277343750017,40.928369140624994],[20.48896484375001,41.272607421874994],[20.566210937500017,41.873681640624994],[20.725,41.87353515625],[20.778125,42.071044921875],[21.05976562500001,42.171289062499994],[21.28662109375,42.100390625],[21.389550781250023,42.21982421875],[21.560839843750017,42.24765625],[21.5625,42.247509765625],[21.81464843750001,42.303125],[22.344042968750017,42.31396484375]]]},"properties":{"name":"Macedonia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[4.227636718750006,19.142773437499997],[4.234667968750017,16.996386718750003],[4.121289062500011,16.357714843750003],[3.842968750000011,15.701708984375003],[3.5205078125,15.483105468749997],[3.504296875000023,15.356347656249994],[3.06015625,15.427197265624997],[3.001074218750006,15.340966796874994],[1.300195312500023,15.272265625],[0.947460937500011,14.982128906249997],[0.217480468750011,14.911474609374991],[-0.235888671874989,15.059423828124991],[-0.760449218749983,15.047753906249994],[-1.049560546875,14.81953125],[-1.97304687499999,14.45654296875],[-2.113232421874983,14.16845703125],[-2.586718749999989,14.227587890625003],[-2.873925781249994,13.950732421875003],[-2.950830078124994,13.6484375],[-3.248632812499977,13.658349609374994],[-3.3017578125,13.28076171875],[-3.527636718749989,13.182714843749991],[-3.947314453124989,13.402197265624991],[-4.151025390624994,13.306201171875003],[-4.328710937499977,13.119042968749994],[-4.227099609374989,12.793701171875],[-4.480615234374994,12.672216796874991],[-4.4287109375,12.337597656249997],[-4.699316406249977,12.076171875],[-5.288134765624989,11.827929687499989],[-5.250244140625,11.375781249999989],[-5.490478515625,11.042382812499994],[-5.523535156249977,10.426025390625],[-5.556591796874983,10.43994140625],[-5.694287109374983,10.43320312499999],[-5.843847656249977,10.389550781249994],[-5.896191406249983,10.354736328125],[-5.907568359374977,10.307226562499991],[-6.034570312499994,10.19482421875],[-6.1171875,10.201904296875],[-6.238378906249977,10.261621093749994],[-6.241308593749977,10.279199218749994],[-6.192626953125,10.369433593749989],[-6.190673828125,10.400292968749994],[-6.250244140625,10.717919921874994],[-6.482617187499983,10.561230468749997],[-6.564599609374994,10.58642578125],[-6.654150390624977,10.656445312499997],[-6.676367187499977,10.6337890625],[-6.686132812499977,10.578027343749994],[-6.691992187499977,10.512011718749989],[-6.669335937499994,10.3921875],[-6.693261718749994,10.349462890624991],[-6.950341796874994,10.342333984374989],[-7.01708984375,10.143261718749997],[-7.385058593749989,10.340136718749989],[-7.6611328125,10.427441406249997],[-7.990625,10.1625],[-8.007275390624983,10.321875],[-8.266650390624989,10.485986328124994],[-8.33740234375,10.990625],[-8.666699218749983,11.009472656249997],[-8.398535156249977,11.366552734374991],[-8.822021484375,11.673242187499994],[-8.818310546874983,11.922509765624994],[-9.043066406249977,12.40234375],[-9.395361328124977,12.464648437499989],[-9.358105468749983,12.255419921874989],[-9.754003906249977,12.029931640624994],[-10.274853515624983,12.212646484375],[-10.709228515625,11.898730468749989],[-10.933203124999977,12.205175781249991],[-11.30517578125,12.015429687499989],[-11.502197265625,12.198632812499994],[-11.389404296875,12.404394531249991],[-11.390380859375,12.941992187499991],[-11.634960937499983,13.369873046875],[-11.831689453124994,13.315820312499994],[-12.05419921875,13.633056640625],[-11.960888671874983,13.875292968750003],[-12.019189453124994,14.206494140624997],[-12.228417968749994,14.45859375],[-12.280615234374977,14.809033203124997],[-12.104687499999983,14.745361328125],[-12.08154296875,14.766357421875],[-12.021582031249977,14.804931640625],[-11.76015625,15.425537109375],[-11.675878906249977,15.512060546874991],[-11.502685546875,15.636816406249991],[-11.455224609374994,15.62539062499999],[-10.9482421875,15.151123046875],[-10.696582031249989,15.42265625],[-9.94140625,15.373779296875],[-9.446923828124994,15.458203125],[-9.447705078124983,15.574853515624994],[-9.426562499999989,15.623046875],[-9.3505859375,15.677392578124994],[-9.33544921875,15.525683593750003],[-9.293701171875,15.502832031249994],[-5.5125,15.496289062499997],[-5.359912109374989,16.282861328124994],[-5.509619140624977,16.442041015624994],[-5.628662109375,16.568652343750003],[-5.65625,16.8095703125],[-5.684765624999983,17.058251953124994],[-5.713183593749989,17.306884765625],[-5.74169921875,17.555566406249994],[-5.827099609374983,18.3015625],[-6.026416015624989,20.0421875],[-6.396582031249977,23.274804687499994],[-6.482031249999977,24.020800781250003],[-6.538964843749994,24.51816406249999],[-6.5673828125,24.766796875],[-6.594091796874977,24.99462890625],[-6.287207031249977,24.994824218749997],[-5.959814453124977,24.99497070312499],[-5.640771484374994,24.995166015625003],[-4.822607421874977,24.99560546875],[-1.947900390624994,23.124804687500003],[1.1455078125,21.102246093749997],[1.165722656250011,20.817431640625003],[1.610644531250017,20.555566406249994],[1.685449218750023,20.378369140624997],[3.130273437500023,19.85019531249999],[3.255859375,19.4109375],[3.119726562500006,19.103173828124994],[3.3564453125,18.986621093750003],[4.227636718750006,19.142773437499997]]]},"properties":{"name":"Mali","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[14.566210937499989,35.85273437499998],[14.436425781250023,35.82167968750005],[14.351269531250011,35.978417968749994],[14.566210937499989,35.85273437499998]]]},"properties":{"name":"Malta","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[98.18261718749997,9.933447265625006],[98.11806640625,9.877880859375054],[98.2916992187501,10.051318359375031],[98.18261718749997,9.933447265625006]]],[[[98.20976562500002,10.952734375],[98.27148437499997,10.73989257812498],[98.08046875000005,10.886621093750037],[98.20976562500002,10.952734375]]],[[[98.55380859375012,11.744873046875],[98.52841796875012,11.538671875],[98.43476562500004,11.567089843750026],[98.37646484374997,11.79150390625],[98.55380859375012,11.744873046875]]],[[[98.516015625,11.905029296875028],[98.46621093750005,12.08427734374996],[98.60957031250004,11.956640624999977],[98.516015625,11.905029296875028]]],[[[98.06611328125004,12.389794921875023],[98.00234375000005,12.279003906250011],[97.93867187500004,12.34609375],[98.06611328125004,12.389794921875023]]],[[[98.41396484375005,12.597949218749974],[98.45947265625003,12.473730468749991],[98.3138671875,12.335986328124989],[98.31210937500006,12.678173828124983],[98.41396484375005,12.597949218749974]]],[[[98.31542968749997,13.099072265625026],[98.30917968750012,12.934716796875023],[98.26533203125004,13.202246093749991],[98.31542968749997,13.099072265625026]]],[[[94.80488281250004,15.8193359375],[94.73349609375006,15.823046875000045],[94.82802734375005,15.933007812499966],[94.80488281250004,15.8193359375]]],[[[94.47675781250004,15.945947265625023],[94.41191406250007,15.848388671875057],[94.3878906250001,15.994140624999972],[94.60126953125004,16.205517578124983],[94.47675781250004,15.945947265625023]]],[[[97.575,16.253222656250017],[97.48037109375,16.305712890625045],[97.54199218749997,16.505078124999983],[97.575,16.253222656250017]]],[[[93.6908203125,18.68427734375004],[93.4875,18.867529296875063],[93.74472656250006,18.865527343750017],[93.6908203125,18.68427734375004]]],[[[93.71484374999997,19.558251953124994],[93.94570312500005,19.428613281249966],[93.90195312500012,19.33203125],[93.75585937500003,19.325683593750057],[93.64404296874997,19.49506835937501],[93.71484374999997,19.558251953124994]]],[[[93.49179687500012,19.892578125],[93.51328125000006,19.754785156249994],[93.41289062500002,19.950341796875023],[93.49179687500012,19.892578125]]],[[[93.01015625000005,19.923925781249977],[93.02324218750007,19.82885742187497],[92.91464843750006,20.086474609375045],[93.01015625000005,19.923925781249977]]],[[[101.1388671875001,21.567480468749977],[101.08037109375007,21.468652343749994],[100.703125,21.251367187499966],[100.613671875,21.059326171875],[100.56660156250004,21.038183593750063],[100.53613281250003,20.992382812499955],[100.52226562500007,20.92192382812499],[100.54931640624997,20.884228515624955],[100.61767578125003,20.879248046875006],[100.62294921875005,20.859570312499983],[100.5651367187501,20.825097656249994],[100.4074218750001,20.823242187500057],[100.32607421875005,20.795703125000045],[100.24931640625002,20.730273437500045],[100.18388671875002,20.589111328125057],[100.12968750000002,20.372216796874994],[100.12246093750005,20.316650390625057],[100.0036132812501,20.37958984375001],[99.9542968750001,20.415429687500023],[99.8903320312501,20.424414062499977],[99.72011718750005,20.32543945312497],[99.45888671875005,20.363037109375],[99.48593750000006,20.14985351562501],[99.07421875000003,20.09936523437503],[98.9166992187501,19.77290039062504],[98.37128906250004,19.68916015625004],[98.01503906250005,19.74951171874997],[97.816796875,19.459960937500057],[97.74589843750002,18.58818359374999],[97.37392578125,18.51796875],[97.63222656250005,18.290332031250074],[97.7064453125,17.79711914062503],[98.4388671875,16.975683593750034],[98.66074218750006,16.330419921875006],[98.83544921875003,16.417578125],[98.88828125000006,16.351904296875034],[98.81796875000012,16.180810546874994],[98.59238281250006,16.05068359375005],[98.55693359375007,15.367675781249986],[98.19101562500012,15.204101562499972],[98.20214843749997,14.97592773437502],[98.57001953125004,14.359912109375031],[99.13681640625006,13.716699218749994],[99.12392578125,13.030761718750043],[99.40507812500002,12.547900390625003],[99.61474609374997,11.781201171875026],[99.1901367187501,11.105273437499989],[98.7572265625,10.660937499999974],[98.70253906250005,10.19038085937504],[98.56259765625006,10.034960937499989],[98.46494140625006,10.675830078124989],[98.67558593750007,10.986914062500034],[98.74140625000004,11.591699218749966],[98.87597656250003,11.719726562500028],[98.63632812500006,11.738378906250006],[98.69628906250003,12.225244140624994],[98.6002929687501,12.2453125],[98.67871093749997,12.348486328124963],[98.57597656250002,13.161914062500031],[98.20039062500004,13.980175781250026],[98.14951171875012,13.647607421875037],[98.11064453125007,13.712890625000014],[98.10019531250006,14.161523437500023],[97.90976562500012,14.652685546874991],[98.01875,14.652587890625057],[97.81230468750007,14.858935546874989],[97.7103515625,15.875537109375074],[97.58427734375007,16.019580078125017],[97.72597656250005,16.56855468750004],[97.37587890625005,16.52294921874997],[97.20019531249997,17.095410156249983],[96.85146484375005,17.401025390624994],[96.90859375000005,17.03095703125001],[96.76542968750002,16.710351562499966],[96.43115234374997,16.504931640625045],[96.18906250000012,16.768310546875057],[96.32431640625006,16.444433593750063],[95.76328125000006,16.169042968750006],[95.38955078125005,15.722753906250034],[95.30146484375004,15.756152343749989],[95.34677734375012,16.09760742187501],[95.17695312500004,15.825683593750028],[94.9425781250001,15.818261718750023],[94.89316406250006,16.182812499999955],[94.66152343750005,15.904394531250006],[94.70332031250004,16.511914062499955],[94.4416015625001,16.094384765624966],[94.22382812500004,16.016455078125006],[94.58896484375006,17.5693359375],[94.17070312500007,18.73242187499997],[94.24570312500006,18.741162109374983],[94.07001953125004,18.893408203125006],[94.04492187500003,19.287402343750074],[93.92919921874997,18.89965820312503],[93.70546875000005,19.026904296875017],[93.49306640625005,19.369482421875006],[93.82490234375004,19.238476562499955],[93.99814453125006,19.440869140624983],[93.61171875000005,19.776074218749983],[93.70703125000003,19.912158203125074],[93.25,20.070117187500017],[93.12949218750012,19.858007812500063],[93.00195312499997,20.074853515624994],[93.06679687500005,20.377636718749955],[92.82832031250004,20.177587890625063],[92.89111328124997,20.34033203125],[92.73564453125007,20.56269531250001],[92.72285156250004,20.29560546875004],[92.32412109375,20.791845703125063],[92.17958984375005,21.293115234375023],[92.33056640624997,21.439794921874977],[92.63164062500002,21.306201171875045],[92.5934570312501,21.46733398437499],[92.58281250000002,21.940332031249994],[92.57490234375004,21.978076171875045],[92.68896484374997,22.130957031250006],[92.72099609375002,22.132421875000063],[92.77138671875,22.104785156250017],[92.9645507812501,22.003759765625034],[93.07060546875002,22.20942382812501],[93.16201171875,22.360205078125006],[93.07871093750006,22.71821289062501],[93.20390625000002,23.03701171875005],[93.34941406250007,23.08496093750003],[93.36601562500007,23.132519531249955],[93.32626953125006,24.064208984375057],[93.45214843750003,23.987402343750034],[93.68339843750007,24.00654296875004],[94.07480468750006,23.8720703125],[94.29306640625012,24.321875],[94.37724609375002,24.473730468750006],[94.49316406250003,24.637646484374983],[94.70371093750012,25.097851562499955],[94.55302734375007,25.215722656249994],[94.66777343750007,25.458886718749966],[94.99199218750002,25.77045898437504],[95.01523437500006,25.912939453125006],[95.0929687500001,25.98730468749997],[95.13242187500006,26.041259765625057],[95.12929687500005,26.070410156250034],[95.10839843749997,26.091406250000034],[95.06894531250006,26.19111328125001],[95.0597656250001,26.473974609375006],[95.20146484375007,26.641406250000017],[96.19082031250005,27.26127929687499],[96.79785156249997,27.29619140624999],[96.95341796875002,27.13330078125003],[97.10205078125003,27.11542968750004],[97.10371093750004,27.16333007812503],[96.90195312500012,27.439599609374994],[96.88359375000002,27.514843749999955],[96.96279296875,27.698291015625017],[97.04970703125005,27.760009765625],[97.34355468750002,27.982324218749994],[97.30273437499997,28.08598632812496],[97.3224609375001,28.21796875000004],[97.35644531249997,28.254492187500006],[97.43144531250002,28.353906250000023],[97.53789062500002,28.510205078124983],[97.59921875000006,28.51704101562504],[98.06162109375012,28.185888671874977],[98.29882812499997,27.550097656250045],[98.4525390625,27.6572265625],[98.65117187500007,27.572460937499983],[98.7384765625001,26.785742187500006],[98.68554687499997,26.189355468750023],[98.56406250000006,26.072412109374994],[98.65625,25.86357421874999],[98.33378906250007,25.586767578125006],[98.14287109375007,25.571093750000017],[98.01074218749997,25.292529296875017],[97.8195312500001,25.251855468749994],[97.73789062500006,24.869873046875057],[97.58330078125002,24.77480468750005],[97.53144531250004,24.49169921875003],[97.7082031250001,24.228759765625],[97.56455078125012,23.911035156250023],[98.2125,24.110644531250017],[98.83505859375006,24.121191406250034],[98.67675781250003,23.905078125000045],[98.8322265625001,23.624365234374977],[98.86376953125003,23.191259765625034],[99.41806640625006,23.069238281250023],[99.50712890625002,22.959130859374994],[99.19296875000006,22.12597656249997],[99.9176757812501,22.02802734375001],[99.94072265625007,21.75874023437504],[100.14765625000004,21.480517578125017],[100.60458984375012,21.471777343750006],[101.07978515625004,21.75585937499997],[101.1388671875001,21.567480468749977]]]]},"properties":{"name":"Myanmar","childNum":15}},{"geometry":{"type":"Polygon","coordinates":[[[19.21875,43.449951171875],[19.670996093750006,43.163964843749994],[20.344335937500006,42.827929687499996],[20.054296875,42.760058593749996],[20.06396484375,42.54726562499999],[19.78828125000001,42.476171875],[19.65449218750001,42.628564453124994],[19.280664062500023,42.17255859375],[19.342382812500006,41.869091796875],[18.436328125000017,42.559716796874994],[18.5458984375,42.6416015625],[18.46601562500001,42.777246093749994],[18.44384765625,42.96845703125],[18.46015625000001,42.997900390625],[18.48847656250001,43.012158203125],[18.623632812500006,43.027685546875],[18.621875,43.124609375],[18.674218750000023,43.230810546875],[18.74921875000001,43.283544921875],[18.85107421875,43.346337890624994],[18.934667968750006,43.339453125],[18.97871093750001,43.285400390625],[19.026660156250017,43.292431640625],[19.03671875,43.357324218749994],[18.940234375000017,43.496728515624994],[18.95068359375,43.526660156249996],[18.97421875,43.542333984375],[19.0283203125,43.532519531249996],[19.080078125,43.517724609374994],[19.11279296875,43.52773437499999],[19.164355468750017,43.535449218749996],[19.1943359375,43.53330078125],[19.21875,43.449951171875]]]},"properties":{"name":"Montenegro","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[111.878125,43.68017578125],[111.00722656250002,43.34140625],[110.400390625,42.773681640625],[109.44316406249999,42.455957031249994],[109.33984375,42.438378906249994],[108.68730468749999,42.41611328125],[108.17119140624999,42.447314453124996],[106.77001953125,42.288720703124994],[105.86757812500002,41.993994140625],[105.31435546875002,41.770898437499994],[105.19707031249999,41.738037109375],[105.11542968750001,41.66328125],[105.05058593749999,41.61591796875],[104.98203125000003,41.595507812499996],[104.49824218750001,41.65869140625],[104.49824218750001,41.877001953124996],[104.30517578125,41.846142578125],[103.99726562500001,41.79697265625],[103.71113281250001,41.751318359375],[103.07285156250003,42.00595703125],[102.5751953125,42.092089843749996],[102.15664062500002,42.158105468749994],[101.97294921874999,42.215869140624996],[101.65996093749999,42.500048828124996],[101.5791015625,42.52353515625],[101.49531250000001,42.53876953125],[101.09199218750001,42.551318359374996],[100.51904296875,42.616796875],[100.08632812500002,42.670751953125],[99.98378906250002,42.67734375],[99.46787109375003,42.568212890625],[97.20566406250003,42.789794921875],[96.38544921875001,42.720361328124994],[95.85957031250001,43.2759765625],[95.52558593750001,43.953955078125],[95.32558593750002,44.039355468749996],[95.35029296875001,44.278076171875],[94.71201171875003,44.350830078125],[93.51621093750003,44.944482421874994],[92.78789062499999,45.0357421875],[92.57890624999999,45.010986328125],[92.423828125,45.008935546874994],[92.17265624999999,45.03525390625],[92.02978515625,45.068505859374994],[91.584375,45.076513671875],[91.05,45.217431640624994],[90.87724609374999,45.19609375],[90.66181640625001,45.525244140625],[91.00175781249999,46.035791015624994],[90.99677734375001,46.10498046875],[90.94755859374999,46.177294921874996],[90.91152343750002,46.270654296874994],[90.98574218750002,46.7490234375],[90.91054687500002,46.883251953125],[90.86992187499999,46.954492187499994],[90.79902343750001,46.98515625],[90.71552734375001,47.003857421875],[90.49619140625003,47.28515625],[90.42519531250002,47.5041015625],[90.34746093749999,47.596972656249996],[90.33066406250003,47.655175781249994],[90.31328124999999,47.67617187499999],[90.19101562500003,47.702099609375],[90.10322265625001,47.745410156249996],[90.02792968750003,47.877685546875],[89.95869140625001,47.886328125],[89.91044921874999,47.8443359375],[89.83134765624999,47.823291015624996],[89.778125,47.827001953125],[89.56093750000002,48.003955078124996],[89.47919921875001,48.029052734375],[89.04765624999999,48.0025390625],[88.97109375000002,48.049951171874994],[88.91777343749999,48.089013671874994],[88.83828125000002,48.101708984374994],[88.68183593750001,48.170556640624994],[88.57597656249999,48.220166015625],[88.56679687500002,48.317431640624996],[88.51708984375,48.38447265625],[88.41396484375002,48.40341796875],[88.30996093750002,48.472070312499994],[87.97968750000001,48.555126953125],[88.06005859375,48.707177734374994],[87.83183593749999,48.791650390624994],[87.7431640625,48.881640625],[87.87216796875003,49.000146484374994],[87.81630859375002,49.0802734375],[87.8251953125,49.11630859375],[87.81425781249999,49.1623046875],[87.93476562500001,49.16455078125],[87.98808593749999,49.186914062499994],[88.02851562500001,49.219775390624996],[88.11572265625,49.256298828125],[88.19257812500001,49.451708984374996],[88.63320312500002,49.486132812499996],[88.83164062500003,49.4484375],[88.86386718750003,49.527636718749996],[88.90019531249999,49.539697265624994],[88.94541015625003,49.507666015625],[88.97060546875002,49.483740234375],[89.00839843750003,49.472802734374994],[89.10947265625003,49.501367187499994],[89.17998046874999,49.5322265625],[89.20292968749999,49.595703125],[89.24394531249999,49.62705078125],[89.39560546875003,49.6115234375],[89.475,49.66054687499999],[89.57919921875003,49.69970703125],[89.65410156249999,49.71748046875],[89.64384765624999,49.90302734375],[90.0537109375,50.09375],[90.65507812499999,50.22236328125],[90.71435546875,50.259423828124994],[90.7607421875,50.305957031249996],[91.02158203125003,50.415478515625],[91.23378906250002,50.452392578125],[91.30058593749999,50.46337890625],[91.3408203125,50.470068359375],[91.4150390625,50.468017578125],[91.44648437500001,50.52216796875],[91.80429687500003,50.693603515625],[92.10400390625,50.6919921875],[92.1923828125,50.700585937499994],[92.35478515624999,50.864160156249994],[92.42636718750003,50.803076171875],[92.62666015625001,50.68828125],[92.68134765625001,50.683203125],[92.73867187500002,50.7109375],[92.779296875,50.778662109375],[92.8564453125,50.789111328124996],[92.94130859375002,50.778222656249994],[93.103125,50.60390625],[94.25107421875003,50.556396484375],[94.35468750000001,50.221826171874994],[94.61474609375,50.023730468749996],[94.67548828125001,50.028076171875],[94.71806640624999,50.043261718749996],[94.93027343750003,50.04375],[95.11142578125003,49.935449218749994],[95.52265625000001,49.91123046875],[96.06552734375003,49.99873046875],[96.31503906250003,49.901123046875],[96.98574218750002,49.8828125],[97.20859375000003,49.730810546875],[97.35976562500002,49.741455078125],[97.58935546875,49.911474609375],[98.00390625,50.0142578125],[98.25029296874999,50.30244140625],[98.27949218750001,50.533251953124996],[98.14501953125,50.5685546875],[98.07890624999999,50.603808593749996],[98.02978515625,50.64462890625],[97.82529296875003,50.985253906249994],[98.103125,51.483544921874994],[98.64052734375002,51.801171875],[98.89316406250003,52.11728515625],[99.92167968749999,51.755517578125],[100.03457031250002,51.737109375],[100.23037109375002,51.729833984375],[100.46894531250001,51.72607421875],[100.53623046875003,51.7134765625],[101.38125,51.45263671875],[101.57089843750003,51.4671875],[101.82119140625002,51.421044921874994],[102.11152343750001,51.353466796875],[102.15566406250002,51.313769531249996],[102.16005859375002,51.26083984375],[102.14238281249999,51.216064453125],[102.15195312500003,51.10751953125],[102.19453125000001,51.050683593749994],[102.21503906250001,50.829443359375],[102.31660156250001,50.71845703125],[102.28837890624999,50.585107421874994],[103.30439453125001,50.20029296875],[103.63291015625003,50.138574218749994],[103.72324218750003,50.153857421874996],[103.80263671875002,50.176074218749996],[104.07871093750003,50.154248046875],[105.38359374999999,50.47373046875],[106.21787109375003,50.304589843749994],[106.36845703124999,50.317578125],[106.57441406250001,50.32880859375],[106.71113281250001,50.31259765625],[106.94130859375002,50.196679687499994],[107.04023437500001,50.086474609374996],[107.14306640625,50.033007812499996],[107.23330078125002,49.989404296874994],[107.34707031250002,49.986669921875],[107.63095703125003,49.98310546875],[107.91660156250003,49.947802734374996],[107.96542968750003,49.653515625],[108.40693359375001,49.396386718749994],[108.5224609375,49.34150390625],[108.61367187500002,49.322802734374996],[109.23671875000002,49.334912109375],[109.45371093750003,49.296337890625],[109.52871093750002,49.269873046875],[110.19990234375001,49.17041015625],[110.42783203125003,49.219970703125],[110.70976562499999,49.14296875],[110.82792968749999,49.166162109374994],[111.20419921875003,49.304296875],[111.33662109375001,49.35585937499999],[111.42929687500003,49.342626953125],[112.07968750000003,49.42421875],[112.49492187499999,49.53232421875],[112.69736328125003,49.507275390625],[112.80644531249999,49.523583984374994],[112.91484374999999,49.569238281249994],[113.05556640625002,49.616259765624996],[113.09208984374999,49.692529296874994],[113.16416015625003,49.797167968749996],[113.31904296875001,49.874316406249996],[113.44550781250001,49.9416015625],[113.57421875,50.00703125],[114.29707031250001,50.2744140625],[114.7431640625,50.233691406249996],[115.00332031250002,50.138574218749994],[115.27451171875003,49.948876953124994],[115.36503906249999,49.911767578124994],[115.42919921875,49.896484375],[115.58798828125003,49.886035156249996],[115.7177734375,49.880615234375],[115.79521484374999,49.905908203124994],[115.92597656250001,49.9521484375],[116.13457031249999,50.010791015624996],[116.216796875,50.00927734375],[116.35117187500003,49.978076171874996],[116.55117187500002,49.9203125],[116.68330078125001,49.823779296874996],[115.82050781250001,48.57724609375],[115.79169921875001,48.455712890624994],[115.79658203125001,48.346337890624994],[115.78554687500002,48.2482421875],[115.63945312499999,48.18623046875],[115.52509765625001,48.130859375],[115.61640625000001,47.874804687499996],[115.89824218749999,47.686914062499994],[115.99384765625001,47.71132812499999],[116.07480468750003,47.78955078125],[116.23115234375001,47.858203125],[116.31718749999999,47.85986328125],[116.37822265624999,47.844042968749996],[116.51347656249999,47.83955078125],[116.65195312500003,47.864501953125],[116.76054687499999,47.869775390624994],[116.90117187499999,47.853076171874996],[116.95166015625,47.836572265624994],[117.06972656250002,47.806396484375],[117.28593749999999,47.666357421875],[117.35078125000001,47.652197265625],[117.76835937499999,47.987890625],[118.49843750000002,47.983984375],[118.56777343750002,47.943261718749994],[118.69052734375003,47.822265625],[118.75996093750001,47.757617187499996],[118.88027343750002,47.72509765625],[119.017578125,47.685351562499996],[119.08193359375002,47.654150390625],[119.71113281250001,47.15],[119.89785156250002,46.8578125],[119.8671875,46.672167968749996],[119.74746093750002,46.627197265625],[119.70664062500003,46.606005859374996],[119.62021484375003,46.603955078125],[119.47402343750002,46.62666015625],[119.33183593749999,46.613818359374996],[119.162109375,46.638671875],[118.95712890625003,46.73486328125],[118.84394531250001,46.760205078125],[118.79033203124999,46.7470703125],[118.72294921874999,46.69189453125],[118.64873046874999,46.70166015625],[118.58046875000002,46.69189453125],[118.40439453125003,46.703173828124996],[118.30869140625003,46.717041015625],[118.15683593750003,46.678564453125],[118.0712890625,46.6666015625],[117.7412109375,46.5181640625],[117.546875,46.58828125],[117.43808593750003,46.586230468749996],[117.40556640624999,46.5708984375],[117.39218750000003,46.53759765625],[117.35634765625002,46.436669921874994],[117.35693359375,46.39130859375],[117.33339843750002,46.36201171875],[116.85908203125001,46.387939453125],[116.56259765625003,46.289794921875],[116.21298828125003,45.8869140625],[116.22910156250003,45.845751953124996],[116.240625,45.79599609375],[116.19765625000002,45.73935546875],[115.68105468750002,45.458251953125],[115.16259765625,45.390234375],[114.91923828124999,45.378271484375],[114.73876953125,45.41962890625],[114.56015625000003,45.389990234375],[114.41914062500001,45.202587890625],[114.16738281250002,45.049853515624996],[114.08027343750001,44.971142578125],[113.87705078125003,44.89619140625],[113.65263671874999,44.763476562499996],[113.58701171875003,44.745703125],[113.04941406250003,44.810351562499996],[112.70673828125001,44.883447265624994],[112.59677734375003,44.91767578125],[112.49931640624999,45.0109375],[112.41132812500001,45.058203125],[112.11289062500003,45.062939453125],[112.03261718750002,45.081640625],[111.89804687500003,45.0640625],[111.40224609375002,44.36728515625],[111.93173828125003,43.81494140625],[111.878125,43.68017578125]]]},"properties":{"name":"Mongolia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[145.75195312499997,15.133154296874991],[145.71318359375007,15.215283203125026],[145.821875,15.265380859375014],[145.75195312499997,15.133154296874991]]]},"properties":{"name":"N. Mariana Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[32.112890625,-26.839453125],[32.10595703125,-26.52001953125],[32.04140625000002,-26.28125],[32.060546875,-26.018359375],[31.9482421875,-25.957617187500006],[31.98583984375,-24.46064453125001],[31.799609375000017,-23.8921875],[31.54560546875001,-23.48232421875001],[31.287890625000017,-22.40205078125001],[31.429492187500017,-22.298828125],[32.429785156250006,-21.29707031250001],[32.353613281250006,-21.136523437500003],[32.49238281250001,-20.659765625],[32.992773437500006,-19.98486328125],[32.77763671875002,-19.388769531250006],[32.84980468750001,-19.10439453125001],[32.69970703125,-18.94091796875],[32.99306640625002,-18.35957031250001],[32.87626953125002,-16.88359375],[32.94804687500002,-16.71230468750001],[31.939843750000023,-16.428808593750006],[31.236230468750023,-16.02363281250001],[30.437792968750017,-15.995312500000011],[30.39609375,-15.64306640625],[30.231835937500023,-14.990332031250006],[33.201757812500006,-14.013378906250011],[33.63642578125001,-14.568164062500003],[34.375,-14.4248046875],[34.50527343750002,-14.59814453125],[34.54082031250002,-15.297265625],[34.24609375,-15.829394531250003],[34.528125,-16.319140625],[34.93339843750002,-16.760351562500006],[35.11210937500002,-16.898535156250006],[35.06464843750001,-17.07861328125],[35.124609375,-17.127246093750003],[35.20136718750001,-17.13105468750001],[35.272558593750006,-17.118457031250003],[35.29042968750002,-17.096972656250003],[35.28115234375002,-16.80781250000001],[35.22978515625002,-16.639257812500006],[35.178320312500006,-16.573339843750006],[35.16718750000001,-16.56025390625001],[35.242773437500006,-16.375390625],[35.358496093750006,-16.160546875],[35.59931640625001,-16.12587890625001],[35.70888671875002,-16.095800781250006],[35.75527343750002,-16.05830078125001],[35.79121093750001,-15.958691406250011],[35.89277343750001,-14.891796875000011],[35.86669921875,-14.86376953125],[35.84716796875,-14.6708984375],[35.6904296875,-14.465527343750011],[35.48847656250001,-14.201074218750009],[35.37578125000002,-14.058691406250006],[35.24746093750002,-13.896875],[35.01386718750001,-13.643457031250009],[34.61152343750001,-13.437890625],[34.54570312500002,-13.21630859375],[34.542578125,-13.108691406250003],[34.35781250000002,-12.164746093750011],[34.60625,-11.690039062500006],[34.65957031250002,-11.588671875],[34.82656250000002,-11.57568359375],[34.95947265625,-11.578125],[35.1826171875,-11.574804687500006],[35.41826171875002,-11.583203125000011],[35.50439453125,-11.604785156250003],[35.56435546875002,-11.60234375],[35.630957031250006,-11.58203125],[35.78544921875002,-11.452929687500003],[35.91132812500001,-11.4546875],[36.08222656250001,-11.537304687500011],[36.17548828125001,-11.609277343750009],[36.19130859375002,-11.670703125],[36.3056640625,-11.706347656250003],[36.97890625000002,-11.566992187500006],[37.37285156250002,-11.71044921875],[37.54169921875001,-11.675097656250003],[37.72480468750001,-11.580664062500006],[37.92021484375002,-11.294726562500003],[38.491796875,-11.413281250000011],[38.9875,-11.167285156250003],[39.81708984375001,-10.912402343750003],[39.98867187500002,-10.82080078125],[40.46357421875001,-10.46435546875],[40.61171875000002,-10.661523437500009],[40.48662109375002,-10.76513671875],[40.59716796875,-10.830664062500006],[40.40283203125,-11.33203125],[40.53154296875002,-12.004589843750011],[40.48710937500002,-12.4921875],[40.58085937500002,-12.635546875],[40.43681640625002,-12.983105468750011],[40.56875,-12.984667968750003],[40.595703125,-14.122851562500003],[40.715625,-14.214453125],[40.64609375,-14.538671875],[40.775,-14.421289062500009],[40.84453125000002,-14.718652343750009],[40.617773437500006,-15.115527343750003],[40.650976562500006,-15.260937500000011],[39.98359375000001,-16.22548828125001],[39.79091796875002,-16.29453125],[39.84462890625002,-16.435644531250006],[39.084375,-16.97285156250001],[38.14492187500002,-17.242773437500006],[37.24453125000002,-17.73994140625001],[36.93935546875002,-17.993457031250003],[36.40371093750002,-18.76972656250001],[36.26289062500001,-18.71962890625001],[36.23564453125002,-18.861328125],[35.85371093750001,-18.99335937500001],[34.947851562500006,-19.81269531250001],[34.6494140625,-19.70136718750001],[34.75576171875002,-19.82197265625001],[34.705078125,-20.473046875],[34.98232421875002,-20.80625],[35.267675781250006,-21.650976562500006],[35.31572265625002,-22.396875],[35.38300781250001,-22.45458984375],[35.45634765625002,-22.11591796875001],[35.53007812500002,-22.248144531250006],[35.57539062500001,-22.96308593750001],[35.37041015625002,-23.79824218750001],[35.5419921875,-23.82441406250001],[35.48964843750002,-24.065527343750006],[34.99208984375002,-24.65058593750001],[32.96113281250001,-25.49042968750001],[32.590429687500006,-26.00410156250001],[32.84882812500001,-26.26806640625],[32.95488281250002,-26.08359375],[32.93359375,-26.25234375],[32.88916015625,-26.83046875],[32.88613281250002,-26.84931640625001],[32.353515625,-26.861621093750003],[32.19960937500002,-26.83349609375],[32.112890625,-26.839453125]]]},"properties":{"name":"Mozambique","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-16.37333984374999,19.706445312499994],[-16.437548828124932,19.609277343749994],[-16.477001953124983,19.710351562499994],[-16.343652343749994,19.86621093750003],[-16.37333984374999,19.706445312499994]]],[[[-5.359912109374989,16.282861328124994],[-5.5125,15.496289062499983],[-9.293701171875,15.502832031249994],[-9.350585937499943,15.677392578125023],[-9.38535156249992,15.667626953124994],[-9.4265625,15.623046875000057],[-9.447705078124926,15.574853515624994],[-9.446923828124937,15.458203124999955],[-9.941406249999972,15.373779296874986],[-10.696582031249989,15.42265625],[-10.9482421875,15.151123046875014],[-11.455224609374994,15.62539062499999],[-11.760156249999937,15.425537109375057],[-11.828759765624966,15.244873046875014],[-11.872851562499989,14.995166015625031],[-12.02158203124992,14.804931640625],[-12.081542968749972,14.766357421875057],[-12.104687499999955,14.745361328125043],[-12.40869140625,14.889013671874991],[-12.735253906249994,15.13125],[-13.105273437499989,15.57177734375],[-13.40966796875,16.059179687500006],[-13.756640624999989,16.172509765624994],[-13.868457031249932,16.14814453125001],[-14.300097656249932,16.58027343750001],[-14.990625,16.676904296874994],[-15.768212890624994,16.485107421875],[-16.23901367187497,16.53129882812499],[-16.44101562499992,16.20454101562504],[-16.480078124999977,16.097216796875017],[-16.50205078124992,15.917333984375063],[-16.53525390624995,15.838378906250057],[-16.53574218749995,16.28681640625001],[-16.463623046875,16.60151367187501],[-16.030322265625017,17.88793945312497],[-16.213085937499926,19.003320312500023],[-16.51445312499996,19.361962890624994],[-16.305273437499977,19.51264648437504],[-16.44487304687499,19.47314453124997],[-16.21044921875003,20.227929687500023],[-16.42978515624995,20.652343750000057],[-16.622509765624955,20.634179687499994],[-16.87607421874992,21.086132812499955],[-16.998242187499926,21.039697265625023],[-17.048046874999955,20.80615234375003],[-17.06396484375,20.89882812499999],[-16.96455078125001,21.329248046875023],[-15.231201171875,21.331298828125],[-14.084667968749926,21.33271484375001],[-13.626025390624932,21.33325195312503],[-13.396728515624943,21.333544921875017],[-13.167431640624926,21.333789062500074],[-13.016210937499949,21.33393554687501],[-13.025097656249983,21.46679687499997],[-13.032226562500028,21.572070312500017],[-13.041748046875,21.71381835937504],[-13.051220703124983,21.854785156250074],[-13.094335937499977,22.49599609375005],[-13.153271484374983,22.820507812499983],[-13.031494140624943,23.000244140625],[-12.895996093749972,23.08955078125001],[-12.739599609375006,23.192724609375063],[-12.62041015624996,23.271337890625006],[-12.559375,23.290820312500045],[-12.372900390624977,23.318017578124994],[-12.023437499999943,23.467578125000017],[-12.016308593749983,23.97021484375],[-12.016308593749983,24.378662109375],[-12.016308593749983,24.923242187499994],[-12.016308593749983,25.059375],[-12.016308593749983,25.331689453124994],[-12.016308593749983,25.740136718749994],[-12.016308593749983,25.995410156250017],[-10.376123046874966,25.995458984375034],[-9.444531249999983,25.99550781250005],[-9.071923828124937,25.99550781250005],[-8.885644531249994,25.99550781250005],[-8.682226562499949,25.99550781250005],[-8.68212890625,26.109472656250006],[-8.68212890625,26.273193359375057],[-8.682324218749955,26.49770507812505],[-8.682617187500028,26.723144531250057],[-8.682861328124972,26.92133789062501],[-8.683349609375,27.285937500000045],[-4.822607421874949,24.99560546875],[-5.640771484374994,24.99516601562499],[-5.959814453124977,24.994970703125063],[-6.287207031249977,24.99482421875001],[-6.594091796874977,24.99462890624997],[-6.396582031249977,23.274804687499994],[-6.02641601562496,20.04218750000001],[-5.827099609374955,18.301562500000045],[-5.741699218749943,17.555566406250023],[-5.713183593750017,17.306884765625],[-5.684765624999983,17.058251953124966],[-5.628662109375028,16.568652343750045],[-5.50961914062492,16.442041015625023],[-5.359912109374989,16.282861328124994]]]]},"properties":{"name":"Mauritania","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-62.1484375,16.74033203124999],[-62.221630859375,16.699511718750003],[-62.191357421875,16.804394531249997],[-62.1484375,16.74033203124999]]]},"properties":{"name":"Montserrat","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[57.65126953125002,-20.48486328125],[57.31767578125002,-20.42763671875001],[57.416015625,-20.18378906250001],[57.65654296875002,-19.98994140625001],[57.7919921875,-20.21259765625001],[57.65126953125002,-20.48486328125]]]},"properties":{"name":"Mauritius","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[34.95947265625003,-11.578125],[34.82656250000005,-11.575683593749972],[34.65957031250005,-11.58867187499996],[34.61855468750005,-11.620214843749991],[34.60625,-11.690039062500006],[34.3578125,-12.164746093749997],[34.542578125,-13.108691406250003],[34.54570312500002,-13.21630859375],[34.6115234375001,-13.437890625000023],[35.0138671875001,-13.64345703124998],[35.247460937499994,-13.896875],[35.37578125000002,-14.05869140625002],[35.48847656250004,-14.20107421874998],[35.69042968749997,-14.465527343750026],[35.84716796875003,-14.670898437500043],[35.8927734375001,-14.891796875000011],[35.7912109375001,-15.958691406250026],[35.75527343750005,-16.058300781249983],[35.708886718749994,-16.095800781249977],[35.5993164062501,-16.12587890624998],[35.35849609375006,-16.160546875000023],[35.242773437500006,-16.375390625],[35.16718750000004,-16.56025390625001],[35.178320312500006,-16.57333984375002],[35.22978515625002,-16.639257812500034],[35.281152343749994,-16.8078125],[35.29042968750005,-17.096972656250017],[35.27255859375006,-17.11845703124996],[35.2013671875001,-17.13105468750004],[35.124609375,-17.127246093749974],[35.06464843750004,-17.078613281250014],[35.11210937500002,-16.898535156250006],[34.93339843750002,-16.760351562500006],[34.528125,-16.319140625],[34.24609374999997,-15.829394531249974],[34.54082031250002,-15.297265625],[34.50527343750005,-14.598144531249957],[34.375,-14.4248046875],[33.63642578125004,-14.568164062499974],[33.148046875,-13.94091796875],[32.98125,-14.009375],[32.797460937500006,-13.6884765625],[32.67041015624997,-13.590429687500006],[32.96757812500002,-13.225],[32.97519531250006,-12.701367187499983],[33.51230468750006,-12.347753906249977],[33.340136718750074,-12.308300781250011],[33.25234375000005,-12.112597656250031],[33.3039062500001,-11.69082031249998],[33.23271484375002,-11.417675781250026],[33.26835937500002,-11.403906249999977],[33.379785156249994,-11.15791015625004],[33.29277343750002,-10.85234375],[33.661523437499994,-10.553125],[33.55371093749997,-10.391308593750011],[33.53759765624997,-10.351562499999986],[33.52890625,-10.234667968749974],[33.31152343750003,-10.037988281249966],[33.3371093750001,-9.954003906249994],[33.350976562499994,-9.862207031250037],[33.25,-9.759570312500003],[33.148046875,-9.603515625],[32.99599609375005,-9.622851562499946],[32.91992187500003,-9.407421875000026],[33.88886718750004,-9.670117187499983],[33.99560546875003,-9.495410156250003],[34.32089843750006,-9.731542968749977],[34.56992187500006,-10.241113281249966],[34.66708984375006,-10.792480468750028],[34.60791015624997,-11.08046875],[34.77382812500005,-11.341699218750009],[34.890625,-11.3935546875],[34.93701171874997,-11.463476562500034],[34.95947265625003,-11.578125]]]},"properties":{"name":"Malawi","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[111.38925781250006,2.415332031250031],[111.31152343749997,2.437597656250034],[111.33349609374997,2.768310546875],[111.38925781250006,2.415332031250031]]],[[[104.22158203125,2.731738281250003],[104.1291015625001,2.767236328125037],[104.18476562500004,2.871728515625009],[104.22158203125,2.731738281250003]]],[[[117.88476562499997,4.186132812500006],[117.64902343750012,4.168994140624974],[117.70800781249997,4.262402343749997],[117.88476562499997,4.186132812500006]]],[[[100.28896484375005,5.294726562499989],[100.19101562500006,5.28286132812498],[100.2455078125,5.467773437499986],[100.33886718749997,5.410058593750037],[100.28896484375005,5.294726562499989]]],[[[99.848046875,6.465722656249994],[99.9186523437501,6.358593750000011],[99.74375,6.263281249999963],[99.64628906250002,6.418359375000023],[99.848046875,6.465722656249994]]],[[[102.10107421874997,6.242236328125031],[102.34013671875002,6.172021484375023],[102.534375,5.862548828125028],[103.09707031250005,5.408447265624986],[103.41582031250007,4.85029296875004],[103.43945312499997,2.93310546875],[103.8122070312501,2.58046875],[104.21855468750002,1.722851562499997],[104.25009765625012,1.388574218750009],[104.11494140625004,1.412255859375037],[103.98144531250003,1.623632812500034],[103.99150390625002,1.454785156249997],[103.6945312500001,1.449658203125026],[103.48027343750007,1.329492187499966],[103.35683593750005,1.546142578125057],[102.72714843750012,1.855566406250034],[101.29550781250012,2.885205078125011],[101.29990234375012,3.253271484375034],[100.71542968750006,3.966210937499966],[100.79550781250012,4.023388671874983],[100.61455078125002,4.3734375],[100.34326171874997,5.984179687500031],[100.11914062499997,6.441992187500048],[100.26142578125004,6.682714843749963],[100.3454101562501,6.549902343750006],[100.75449218750012,6.460058593749991],[100.87392578125,6.24541015624996],[101.05351562500002,6.242578125],[100.98164062500004,5.771044921875045],[101.1139648437501,5.636767578125045],[101.5560546875,5.907763671875003],[101.67841796875004,5.778808593750028],[101.87363281250012,5.825292968749991],[102.10107421874997,6.242236328125031]]],[[[117.5744140625001,4.17060546875004],[117.10058593750003,4.337060546875023],[116.51474609375006,4.370800781249969],[115.86074218750005,4.348046875000037],[115.67880859375006,4.193017578124994],[115.45439453125002,3.034326171875009],[115.24697265625005,3.025927734374989],[115.117578125,2.89487304687502],[115.08076171875004,2.63422851562504],[115.1791015625,2.523193359374972],[114.78642578125002,2.250488281250014],[114.83056640625003,1.980029296874989],[114.5125,1.452001953124963],[113.90234375000003,1.434277343749997],[113.6222656250001,1.2359375],[113.00654296875004,1.433886718750003],[112.94296875000006,1.566992187500034],[112.47617187500006,1.559082031250028],[112.1857421875001,1.4390625],[112.078515625,1.143359374999974],[111.80898437500005,1.011669921874969],[111.10136718750002,1.050537109374986],[110.50576171875005,0.861962890625023],[109.65400390625004,1.614892578125023],[109.53896484375,1.89619140625004],[109.62890625000003,2.027539062499983],[109.86484375000012,1.764453125000031],[110.34921875000012,1.719726562499972],[111.22324218750012,1.395849609374991],[111.0287109375,1.557812500000026],[111.26816406250012,2.13974609375002],[111.20859375000012,2.379638671875043],[111.44384765625003,2.381542968749983],[111.5125,2.743017578124991],[112.98789062500006,3.161914062499974],[113.92392578125006,4.243212890625003],[114.0638671875,4.592675781249966],[114.65410156250007,4.037646484375045],[114.84023437500005,4.393212890625009],[114.74667968750006,4.718066406250017],[115.02675781250005,4.899707031249989],[115.10703125000006,4.390429687499974],[115.290625,4.352587890624989],[115.1400390625,4.899755859374991],[115.37490234375,4.932763671874966],[115.55449218750007,5.093554687500045],[115.41904296875012,5.413183593749963],[115.60390625,5.603417968749994],[115.74082031250012,5.533007812500045],[115.8771484375001,5.613525390625014],[116.74980468750007,6.977099609374989],[116.8498046875001,6.826708984374989],[116.78808593749997,6.606103515624994],[117.12851562500012,6.968896484375009],[117.2298828125,6.939990234374974],[117.29404296875006,6.676904296875023],[117.60966796875002,6.512646484375054],[117.69375,6.35],[117.64453124999997,6.001855468749994],[117.5011718750001,5.884667968750009],[118.00380859375,6.053320312499991],[118.11582031250006,5.8625],[117.93476562500004,5.7875],[117.97363281249997,5.70625],[118.35312500000012,5.80605468749998],[118.59482421875006,5.592089843750003],[119.22343750000007,5.412646484375031],[119.2663085937501,5.308105468750057],[119.21962890625,5.159814453125037],[118.9125,5.02290039062504],[118.26054687500007,4.988867187500034],[118.18535156250002,4.828515625000051],[118.5625,4.502148437499997],[118.54833984375003,4.379248046875006],[118.008203125,4.250244140625014],[117.6964843750001,4.342822265625045],[117.5744140625001,4.17060546875004]]],[[[117.14160156250003,7.168212890625028],[117.08066406250006,7.115283203124989],[117.06425781250007,7.26069335937504],[117.2640625,7.351660156250006],[117.26679687500004,7.220800781249991],[117.14160156250003,7.168212890625028]]]]},"properties":{"name":"Malaysia","childNum":8}},{"geometry":{"type":"Polygon","coordinates":[[[23.380664062500017,-17.640625],[24.27490234375,-17.481054687500006],[24.73291015625,-17.51777343750001],[25.001757812500017,-17.56855468750001],[25.2587890625,-17.793554687500006],[24.909082031250023,-17.821386718750006],[24.530566406250017,-18.052734375],[24.243945312500017,-18.0234375],[23.599707031250006,-18.4599609375],[23.219335937500006,-17.99970703125001],[20.97412109375,-18.31884765625],[20.9794921875,-21.9619140625],[19.977343750000017,-22.00019531250001],[19.98046875,-24.77675781250001],[19.98046875,-28.310351562500003],[19.98046875,-28.451269531250006],[19.539843750000017,-28.574609375],[19.31269531250001,-28.73330078125001],[19.24580078125001,-28.901660156250003],[19.16171875,-28.938769531250003],[18.310839843750017,-28.88623046875],[17.44794921875001,-28.69814453125001],[17.34785156250001,-28.50117187500001],[17.358691406250017,-28.26943359375001],[17.1884765625,-28.13251953125001],[17.05625,-28.031054687500003],[16.93330078125001,-28.069628906250003],[16.875292968750017,-28.1279296875],[16.841210937500023,-28.21894531250001],[16.81015625,-28.26455078125001],[16.7875,-28.39472656250001],[16.755761718750023,-28.4521484375],[16.62617187500001,-28.487890625],[16.487109375000017,-28.572851562500006],[16.447558593750017,-28.617578125],[15.719042968750017,-27.9658203125],[15.341503906250011,-27.386523437500003],[15.139062500000023,-26.50800781250001],[14.9677734375,-26.31806640625001],[14.837109375000011,-25.033203125],[14.5015625,-24.201953125],[14.462792968750023,-22.44912109375001],[13.450585937500023,-20.91669921875001],[13.168359375000023,-20.184667968750006],[12.458203125000011,-18.9267578125],[11.77587890625,-18.001757812500003],[11.733496093750006,-17.7509765625],[11.743066406250023,-17.24921875000001],[11.902539062500011,-17.2265625],[12.013964843750017,-17.168554687500006],[12.21337890625,-17.2099609375],[12.318457031250006,-17.21337890625],[12.359277343750023,-17.205859375],[12.548144531250017,-17.212695312500003],[13.179492187500017,-16.9716796875],[13.475976562500023,-17.0400390625],[14.017480468750023,-17.40888671875001],[16.1484375,-17.390234375],[18.396386718750023,-17.3994140625],[18.95527343750001,-17.803515625],[20.1943359375,-17.863671875],[20.745507812500023,-18.01972656250001],[22.32421875,-17.8375],[23.380664062500017,-17.640625]]]},"properties":{"name":"Namibia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[167.54443359375003,-22.62324218750001],[167.44375,-22.63916015624997],[167.44345703125006,-22.541406250000037],[167.54443359375003,-22.62324218750001]]],[[[168.01093750000004,-21.429980468750017],[168.1390625,-21.44521484375001],[168.12070312500012,-21.615820312500034],[167.96679687500003,-21.641601562499957],[167.81542968749997,-21.392675781249963],[167.9884765625001,-21.337890624999986],[168.01093750000004,-21.429980468750017]]],[[[167.40087890625003,-21.16064453125003],[167.07265625,-20.99726562499997],[167.03271484374997,-20.922558593750026],[167.18945312500003,-20.803515625000017],[167.05576171875012,-20.720214843750014],[167.29794921875006,-20.732519531250034],[167.40087890625003,-21.16064453125003]]],[[[164.20234375000004,-20.246093749999957],[164.4359375,-20.282226562499957],[165.191796875,-20.768847656249974],[165.66279296875004,-21.267187499999977],[166.94238281250003,-22.09013671875003],[166.97031250000012,-22.32285156250002],[166.77412109375004,-22.37617187500004],[166.4679687500001,-22.256054687499997],[164.92744140625004,-21.289843749999974],[164.16972656250007,-20.48017578125004],[164.05966796875012,-20.141503906249966],[164.20234375000004,-20.246093749999957]]]]},"properties":{"name":"New Caledonia","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[14.97900390625,22.99619140624999],[15.181835937500011,21.523388671874997],[15.607324218750023,20.954394531250003],[15.587109375000011,20.733300781249994],[15.963183593750017,20.34619140625],[15.735058593750011,19.904052734375],[15.474316406250011,16.908398437499997],[14.367968750000017,15.750146484374994],[13.4482421875,14.380664062500003],[13.505761718750023,14.134423828124994],[13.606347656250023,13.70458984375],[13.426953125000011,13.701757812499991],[13.323828125,13.670849609374997],[12.871679687500006,13.449023437500003],[12.65478515625,13.3265625],[12.463183593750017,13.09375],[10.958886718750023,13.371533203124997],[10.475878906250017,13.330224609374994],[10.229589843750006,13.281005859375],[10.184667968750006,13.270117187499991],[9.615917968750011,12.810644531249991],[9.201562500000023,12.821484375],[8.750585937500006,12.908154296874997],[8.4560546875,13.059667968749991],[8.095019531250017,13.291162109374994],[7.955761718750011,13.32275390625],[7.788671875,13.337890625],[7.056738281250006,13.000195312499997],[6.804296875,13.107666015625],[6.2998046875,13.658789062499991],[6.184277343750011,13.66367187499999],[5.838183593750017,13.765380859375],[5.491992187500017,13.872851562500003],[5.415820312500017,13.859179687500003],[5.361621093750017,13.836865234374997],[5.241894531250011,13.757226562499994],[4.664843750000017,13.733203125],[4.147558593750006,13.457714843749997],[3.947851562500006,12.775048828124994],[3.646679687500011,12.529980468749997],[3.595410156250011,11.6962890625],[2.805273437500006,12.383837890624989],[2.366015625000017,12.221923828125],[2.38916015625,11.897070312499991],[2.072949218750011,12.309375],[2.226269531250011,12.466064453125],[2.104589843750006,12.701269531249991],[1.56494140625,12.635400390624994],[0.9873046875,13.041894531249994],[0.988476562500011,13.36484375],[1.201171875,13.357519531249991],[0.6181640625,13.703417968750003],[0.42919921875,13.972119140624997],[0.382519531250011,14.245800781249997],[0.163867187500017,14.497216796874994],[0.217480468750011,14.911474609374991],[0.947460937500011,14.982128906249997],[1.300195312500023,15.272265625],[3.001074218750006,15.340966796874994],[3.06015625,15.427197265624997],[3.504296875000023,15.356347656249994],[3.5205078125,15.483105468749997],[3.842968750000011,15.701708984375003],[4.121289062500011,16.357714843750003],[4.234667968750017,16.996386718750003],[4.227636718750006,19.142773437499997],[5.836621093750011,19.479150390624994],[7.481738281250017,20.873095703125003],[11.967871093750006,23.517871093750003],[13.48125,23.18017578125],[14.215527343750011,22.619677734375003],[14.97900390625,22.99619140624999]]]},"properties":{"name":"Niger","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[7.30078125,4.418164062500026],[7.140429687500017,4.395117187500034],[7.227343750000045,4.527343749999972],[7.30078125,4.418164062500026]]],[[[6.804296875,13.107666015625],[7.056738281250006,13.00019531250004],[7.788671875,13.337890625],[7.955761718750011,13.322753906250028],[8.095019531250045,13.29116210937498],[8.750585937500034,12.908154296875026],[9.20156250000008,12.82148437500004],[9.615917968750011,12.810644531249963],[10.184667968750063,13.270117187499963],[10.229589843749977,13.281005859375043],[10.475878906250074,13.330224609375037],[10.958886718750051,13.371533203125011],[12.463183593750017,13.09375],[12.654785156250057,13.3265625],[13.426953125000068,13.701757812499963],[13.606347656250023,13.704589843750014],[13.932324218750011,13.258496093749997],[14.06396484375,13.078515625],[14.160058593750023,12.612792968749986],[14.184863281250017,12.447216796874997],[14.272851562500023,12.356494140624989],[14.518945312500051,12.298242187500023],[14.619726562500063,12.150976562500048],[14.559765625000011,11.492285156249963],[14.20234375000004,11.268164062499963],[14.143261718750068,11.248535156250043],[14.056738281250034,11.245019531250037],[13.981445312500057,11.21186523437504],[13.892089843750057,11.140087890624983],[13.699902343749983,10.873144531250048],[13.53535156250004,10.605078124999963],[13.414550781250028,10.171435546874989],[13.269921875000051,10.036181640624974],[13.198730468750028,9.563769531250003],[12.929492187500074,9.426269531249972],[12.87568359375004,9.303515625000017],[12.80654296875008,8.886621093749994],[12.7822265625,8.817871093750014],[12.651562500000011,8.667773437499989],[12.40351562500004,8.59555664062502],[12.311328125000074,8.419726562499989],[12.2333984375,8.282324218749977],[12.016015625000051,7.589746093750009],[11.809179687500006,7.345068359374991],[11.767382812500017,7.272265624999989],[11.861425781249977,7.11640625000004],[11.657519531250017,6.951562500000023],[11.580078125000057,6.88886718750004],[11.551660156250023,6.697265625],[11.153320312500057,6.437939453125011],[11.1064453125,6.457714843750054],[11.032519531250045,6.697900390625037],[10.954199218750006,6.7765625],[10.60625,7.063085937500006],[10.413183593750006,6.877734375],[10.293066406250034,6.876757812499974],[10.205468750000051,6.891601562499986],[10.185546874999972,6.91279296875004],[10.167773437500017,6.959179687499983],[10.143554687500057,6.99643554687502],[10.038867187500045,6.921386718750014],[9.874218750000068,6.803271484375017],[9.82070312500008,6.783935546874986],[9.779882812500034,6.760156250000023],[9.725585937499972,6.65],[9.659960937500017,6.531982421874986],[9.490234375,6.418652343749997],[8.997167968750006,5.917724609375],[8.715625,5.046875],[8.514843750000068,4.724707031250034],[8.23378906250008,4.907470703124972],[8.293066406250006,4.557617187500014],[7.644238281250068,4.525341796875011],[7.530761718750028,4.655175781249994],[7.284375,4.547656250000031],[7.076562500000051,4.716162109374991],[7.15468750000008,4.514404296875],[6.92324218750008,4.390673828125017],[6.767675781250006,4.724707031250034],[6.860351562500057,4.373339843750045],[6.633007812500011,4.340234375000051],[6.579980468750051,4.475976562499994],[6.554589843750023,4.34140625000002],[6.263671875,4.309423828124991],[6.270996093749972,4.432128906250028],[6.173339843749972,4.277392578125031],[5.970703125,4.338574218749983],[5.587792968750051,4.647216796874972],[5.448144531250023,4.945849609374974],[5.383300781250057,5.129003906249977],[5.475976562500023,5.153857421874989],[5.370019531250023,5.195019531250026],[5.367968750000045,5.337744140624963],[5.549707031250023,5.474218749999963],[5.385839843750034,5.401757812500037],[5.199218750000028,5.533544921874977],[5.456640624999977,5.61171875],[5.327343750000011,5.707519531249986],[5.112402343750034,5.64155273437504],[4.861035156250068,6.026318359374997],[4.431347656250011,6.348583984375026],[3.450781249999977,6.427050781250017],[3.71699218750004,6.597949218750017],[3.430175781250057,6.525],[3.335546875000063,6.396923828125011],[2.706445312500051,6.369238281249963],[2.735644531250045,6.595703125],[2.753710937499989,6.661767578124966],[2.774609374999983,6.711718750000017],[2.752929687500028,6.771630859374966],[2.731738281250045,6.852832031249989],[2.721386718750068,6.980273437500017],[2.75673828125008,7.067919921875017],[2.750488281250057,7.39506835937496],[2.765820312500068,7.422509765625051],[2.783984375000045,7.443408203125045],[2.78515625,7.476855468750017],[2.703125,8.371826171875],[2.774804687500023,9.048535156250026],[3.044921875,9.08383789062502],[3.325195312499972,9.778466796875051],[3.60205078125,10.004541015625009],[3.646582031250006,10.408984374999989],[3.771777343750017,10.417626953124966],[3.83447265625,10.607421875],[3.7568359375,10.76875],[3.71640625,11.07958984375],[3.695312499999972,11.12031250000004],[3.63886718750004,11.176855468750006],[3.487792968749972,11.395410156250037],[3.490527343750017,11.499218750000054],[3.55390625000004,11.631884765624989],[3.595410156250068,11.696289062500057],[3.664746093750068,11.762451171875028],[3.646679687500011,12.529980468749983],[3.947851562500006,12.775048828124994],[4.147558593750006,13.457714843749983],[4.664843750000045,13.733203124999974],[5.241894531250011,13.757226562499994],[5.361621093750074,13.836865234375054],[5.415820312500017,13.859179687499974],[5.491992187500074,13.872851562500003],[6.2998046875,13.658789062500006],[6.804296875,13.107666015625]]]]},"properties":{"name":"Nigeria","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-83.6419921875,10.917236328125],[-83.71293945312499,10.785888671875],[-83.91928710937499,10.7353515625],[-84.6341796875,11.045605468749997],[-84.9091796875,10.9453125],[-85.5841796875,11.189453125],[-85.7443359375,11.06210937499999],[-87.670166015625,12.965673828124991],[-87.58505859374999,13.043310546874991],[-87.42436523437499,12.921142578125],[-87.33725585937499,12.979248046875],[-87.05917968749999,12.991455078125],[-87.00932617187499,13.0078125],[-86.918212890625,13.223583984374997],[-86.87353515625,13.266503906249994],[-86.792138671875,13.27978515625],[-86.72929687499999,13.284375],[-86.710693359375,13.313378906249994],[-86.76352539062499,13.63525390625],[-86.77060546874999,13.69873046875],[-86.758984375,13.746142578125003],[-86.733642578125,13.763476562500003],[-86.61025390625,13.774853515624997],[-86.376953125,13.755664062500003],[-86.33173828125,13.770068359375003],[-86.238232421875,13.899462890625003],[-86.15122070312499,13.994580078124997],[-86.0892578125,14.037207031249991],[-86.04038085937499,14.050146484374991],[-85.9837890625,13.965673828124991],[-85.78671875,13.844433593749997],[-85.75341796875,13.85205078125],[-85.73393554687499,13.858691406250003],[-85.727734375,13.876074218749991],[-85.731201171875,13.931835937499997],[-85.68193359374999,13.982568359374994],[-85.20834960937499,14.311816406250003],[-85.059375,14.582958984374997],[-84.86044921874999,14.809765625],[-84.645947265625,14.661083984374997],[-84.53764648437499,14.633398437499991],[-83.635498046875,14.876416015624997],[-83.5365234375,14.977001953124997],[-83.4150390625,15.008056640625],[-83.15751953124999,14.993066406249994],[-83.18535156249999,14.956396484374991],[-83.21591796874999,14.932373046875],[-83.27988281249999,14.812792968750003],[-83.344384765625,14.902099609375],[-83.413720703125,14.825341796874994],[-83.29921875,14.7490234375],[-83.187744140625,14.340087890625],[-83.4123046875,13.99648437499999],[-83.567333984375,13.3203125],[-83.5109375,12.411816406249997],[-83.627197265625,12.459326171874991],[-83.59335937499999,12.713085937499997],[-83.75424804687499,12.501953125],[-83.680419921875,12.024316406249994],[-83.7671875,12.059277343749997],[-83.82890624999999,11.861035156249997],[-83.70458984375,11.824560546874991],[-83.6517578125,11.642041015624997],[-83.86787109375,11.300048828125],[-83.6419921875,10.917236328125]]]},"properties":{"name":"Nicaragua","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-169.80341796875,-19.0830078125],[-169.94833984375,-19.072851562500006],[-169.834033203125,-18.96601562500001],[-169.80341796875,-19.0830078125]]]},"properties":{"name":"Niue","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-68.205810546875,12.144580078124989],[-68.25434570312495,12.032080078124977],[-68.36923828125,12.301953124999983],[-68.205810546875,12.144580078124989]]],[[[4.226171875000034,51.38647460937503],[3.902050781250011,51.20766601562502],[3.43251953125008,51.24575195312505],[3.35009765625,51.37768554687503],[4.226171875000034,51.38647460937503]]],[[[3.94912109375008,51.73945312500001],[4.07509765625008,51.648779296875006],[3.699023437500017,51.70991210937501],[3.94912109375008,51.73945312500001]]],[[[4.886132812500023,53.07070312500005],[4.70917968750004,53.036035156249994],[4.886425781249983,53.18330078124998],[4.886132812500023,53.07070312500005]]],[[[4.226171875000034,51.38647460937503],[3.448925781250068,51.54077148437503],[3.743945312500017,51.596044921875006],[4.27412109375004,51.47163085937498],[4.004785156250051,51.595849609374966],[4.182617187500057,51.61030273437498],[3.946875,51.810546875],[4.482812500000023,52.30917968749998],[4.76875,52.941308593749966],[5.061230468750068,52.96064453125001],[5.532031250000074,53.268701171874966],[6.062207031250068,53.407080078125006],[6.816210937500045,53.44116210937503],[7.197265625000028,53.28227539062499],[7.033007812500045,52.65136718749997],[6.710742187500045,52.61787109374998],[6.748828125000074,52.464013671874994],[7.035156250000057,52.38022460937498],[6.724511718749994,52.080224609374966],[6.800390625,51.96738281249998],[5.948730468750057,51.80268554687501],[6.198828125000034,51.45],[6.129980468750034,51.14741210937501],[5.857519531250034,51.030126953125006],[6.048437500000034,50.90488281250006],[5.993945312500017,50.75043945312504],[5.693554687500011,50.774755859375006],[5.796484375000034,51.153076171875],[5.214160156250045,51.278955078124966],[5.03095703125004,51.46909179687498],[4.226171875000034,51.38647460937503]]],[[[5.325781250000063,53.38574218750003],[5.190234375000074,53.39179687500001],[5.582617187500063,53.438085937500034],[5.325781250000063,53.38574218750003]]]]},"properties":{"name":"Netherlands","childNum":6,"cp":[5.0752777,52.358465]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[5.085839843750023,60.30756835937501],[5.089062500000068,60.188769531250045],[4.95722656250004,60.44726562500006],[5.085839843750023,60.30756835937501]]],[[[4.958691406250068,61.084570312500034],[4.79902343750004,61.08271484375001],[4.861621093749989,61.19384765625],[4.958691406250068,61.084570312500034]]],[[[8.10273437500004,63.33759765625004],[7.804003906250017,63.413916015625034],[8.073535156250045,63.47080078124998],[8.10273437500004,63.33759765625004]]],[[[8.470800781250063,63.66713867187502],[8.287109375000028,63.68715820312502],[8.764648437500057,63.804638671874955],[8.78652343750008,63.703466796875034],[8.470800781250063,63.66713867187502]]],[[[11.2314453125,64.865869140625],[10.739843750000034,64.87031250000001],[11.02099609375,64.97871093749995],[11.2314453125,64.865869140625]]],[[[12.971777343750063,67.87412109375],[12.824023437500074,67.82124023437498],[13.068066406250068,68.07133789062505],[12.971777343750063,67.87412109375]]],[[[13.872851562500045,68.26533203125004],[14.096777343750034,68.218603515625],[13.229394531250051,67.995361328125],[13.300195312499994,68.16044921875007],[13.872851562500045,68.26533203125004]]],[[[15.207128906250006,68.943115234375],[15.222070312500023,68.61630859375003],[14.404687500000051,68.663232421875],[15.037792968750068,69.00053710937507],[15.207128906250006,68.943115234375]]],[[[15.760351562500006,68.56123046875001],[16.328906250000017,68.87631835937498],[16.519238281250068,68.63300781249998],[15.975292968750011,68.402490234375],[14.257519531249983,68.19077148437503],[15.412597656250028,68.61582031250003],[15.483007812500006,69.04345703125003],[16.04804687500001,69.30205078125002],[15.760351562500006,68.56123046875001]]],[[[17.503027343750034,69.59624023437502],[18.004101562500068,69.50498046874998],[17.95068359375003,69.19814453125],[17.487890625000063,69.19682617187499],[17.08251953124997,69.013671875],[16.81044921875008,69.07070312499997],[17.001757812500045,69.36191406250006],[17.36083984375003,69.38149414062497],[17.503027343750034,69.59624023437502]]],[[[29.956152343750006,69.79677734375002],[29.766210937500006,69.76752929687501],[29.835839843749994,69.90556640625005],[29.956152343750006,69.79677734375002]]],[[[20.779199218750023,70.08974609375002],[20.46425781250005,70.0765625],[20.492773437500006,70.20332031249995],[20.78603515625008,70.21953124999999],[20.779199218750023,70.08974609375002]]],[[[19.25507812500001,70.06640625000006],[19.607812500000023,70.019140625],[19.334765625000074,69.82026367187501],[18.784765625000034,69.57900390624997],[18.12988281250003,69.557861328125],[18.34931640625004,69.76787109374999],[18.67402343750004,69.78164062500002],[19.13271484375005,70.24414062500003],[19.25507812500001,70.06640625000006]]],[[[19.76748046875005,70.21669921875002],[20.005957031250034,70.07622070312502],[19.599023437499994,70.26616210937507],[19.76748046875005,70.21669921875002]]],[[[23.615332031250034,70.54931640625003],[23.15917968750003,70.28261718750005],[22.941015625000063,70.444580078125],[23.546679687500017,70.61708984374997],[23.615332031250034,70.54931640625003]]],[[[24.01757812500003,70.56738281249997],[23.716601562500074,70.561865234375],[23.778417968750063,70.74736328125005],[24.01757812500003,70.56738281249997]]],[[[23.440527343750063,70.81577148437503],[22.8291015625,70.54155273437505],[22.358691406250017,70.514794921875],[21.99453125000008,70.65712890624997],[23.440527343750063,70.81577148437503]]],[[[30.869726562500006,69.78344726562506],[30.860742187499994,69.53842773437503],[30.18017578124997,69.63583984375],[30.08730468750005,69.43286132812503],[29.38828125,69.29814453125005],[28.96582031250003,69.02197265625],[28.846289062500006,69.17690429687502],[29.33339843750005,69.47299804687503],[29.14160156250003,69.67143554687505],[27.747851562500045,70.06484375],[27.127539062500063,69.90649414062497],[26.525390625000057,69.91503906250003],[26.07246093750004,69.69155273437497],[25.748339843750017,68.99013671875],[24.94140625000003,68.59326171875006],[23.85400390625,68.80590820312503],[23.324023437500017,68.64897460937502],[22.410937500000074,68.719873046875],[21.59375,69.273583984375],[21.06611328125001,69.21411132812497],[21.065722656250017,69.04174804687503],[20.622167968750006,69.036865234375],[20.116699218750057,69.02089843750005],[20.348046875000023,68.84873046875003],[19.969824218750063,68.35639648437501],[18.303027343750045,68.55541992187497],[17.91669921875001,67.96489257812502],[17.324609375000023,68.10380859374999],[16.783593750000023,67.89501953125],[16.12744140625,67.42583007812507],[16.40351562500004,67.05498046875002],[15.422949218750006,66.48984374999998],[15.483789062500051,66.30595703124999],[14.543261718750045,66.12934570312498],[14.47968750000004,65.30146484374998],[13.650292968750023,64.58154296874997],[14.077636718750028,64.464013671875],[14.141210937500006,64.17353515624998],[13.960546875000063,64.01401367187498],[13.203515625000023,64.07509765625],[12.792773437500017,64],[12.175195312500051,63.595947265625],[11.999902343750051,63.29169921875001],[12.303515625000074,62.28559570312501],[12.155371093750006,61.720751953125045],[12.88076171875008,61.35229492187506],[12.706054687500028,61.059863281250074],[12.29414062500004,61.00268554687506],[12.588671874999989,60.450732421875045],[12.486132812500074,60.10678710937506],[11.680761718750034,59.59228515625003],[11.798144531250074,59.28989257812498],[11.64277343750004,58.92607421875002],[11.470703125000057,58.909521484375034],[11.388281250000063,59.036523437499966],[10.834472656250028,59.18393554687498],[10.595312500000063,59.764550781249966],[10.179394531250068,59.00927734375003],[9.842578125000017,58.95849609374997],[9.557226562500063,59.11269531250002],[9.65693359375004,58.97119140624997],[8.166113281250063,58.145312500000045],[7.0048828125,58.024218750000074],[6.877050781250006,58.15073242187498],[6.590527343750068,58.09731445312502],[6.659863281250068,58.26274414062499],[5.706835937500074,58.52363281250001],[5.55556640625008,58.975195312500006],[6.099023437500023,58.87026367187502],[6.363281250000028,59.00092773437501],[6.099414062500017,58.951953125000074],[5.88916015625,59.097949218750045],[5.951855468750068,59.299072265625],[6.415332031250074,59.547119140625],[5.17324218750008,59.16254882812498],[5.2421875,59.564306640625034],[5.472460937500017,59.713085937499955],[5.77216796875004,59.66093749999999],[6.216601562499989,59.818359375],[5.73046875,59.863085937500045],[6.348730468750006,60.35297851562504],[6.57363281250008,60.36059570312497],[6.526855468750057,60.152929687500034],[6.995703125,60.511962890625],[6.1533203125,60.34624023437499],[5.145800781250074,59.63881835937502],[5.205664062500006,60.087939453125045],[5.688574218749977,60.12319335937502],[5.285839843750011,60.20571289062505],[5.13710937500008,60.445605468750074],[5.648339843750051,60.68798828124997],[5.244042968750023,60.569580078125],[5.115820312500006,60.63598632812503],[5.008593750000017,61.038183593750006],[6.777832031250028,61.142431640625006],[7.038671875000063,60.952929687500045],[7.040136718750006,61.091162109375034],[7.604492187500057,61.210546875000034],[7.34658203125008,61.30058593749999],[7.442578125000011,61.43461914062502],[7.173535156250011,61.16596679687501],[6.599902343750017,61.28964843749998],[6.383496093750068,61.133886718750034],[5.451269531250034,61.10234375000002],[5.106738281250017,61.187548828125045],[5.002734375000074,61.43359375],[5.338671875000017,61.485498046874994],[4.927832031249977,61.71069335937506],[4.93007812499999,61.878320312499994],[6.01582031250004,61.7875],[6.730761718750045,61.86977539062505],[5.266894531250045,61.935595703125045],[5.143164062500063,62.159912109375],[5.908300781249977,62.41601562500003],[6.083496093750057,62.349609375],[6.580078125000057,62.407275390625045],[6.692382812500028,62.46806640624999],[6.136132812500051,62.40747070312497],[6.352929687500051,62.61113281249999],[7.653125,62.56401367187499],[7.538378906250074,62.67207031249998],[8.045507812500006,62.77124023437503],[6.734960937500006,62.72070312500003],[6.940429687500028,62.930468750000045],[7.571875,63.09951171875002],[8.100585937500028,63.090966796874966],[8.623144531250006,62.84624023437502],[8.158007812500017,63.16152343750005],[8.635546875000045,63.34233398437502],[8.360742187500023,63.498876953125034],[8.576171875000028,63.60117187499998],[9.135839843750006,63.593652343749966],[9.156054687500045,63.459326171875034],[9.696875,63.624560546875045],[10.020996093750028,63.39082031250004],[10.76015625000008,63.461279296875006],[10.725292968750068,63.625],[11.370703125000034,63.804833984374994],[11.175585937500074,63.89887695312498],[11.457617187500063,64.00297851562505],[11.306640625000028,64.04887695312499],[10.91425781250004,63.92109374999998],[10.934863281250045,63.770214843749955],[10.055078125000051,63.5126953125],[9.567285156250051,63.70615234374998],[10.565625,64.418310546875],[11.523828125000051,64.744384765625],[11.632910156250063,64.81391601562495],[11.296777343750051,64.75478515625],[11.489355468750034,64.975830078125],[12.15966796875,65.178955078125],[12.508398437499977,65.09941406250005],[12.915527343750057,65.33925781249997],[12.417578125000063,65.18408203124997],[12.133886718749977,65.27915039062498],[12.68886718750008,65.90219726562498],[13.033105468750051,65.95625],[12.783789062500063,66.10043945312506],[14.034179687500057,66.29755859374998],[13.118847656250011,66.23066406250004],[13.211425781250028,66.64082031250001],[13.959472656250028,66.79433593750002],[13.651562500000011,66.90708007812498],[14.10878906250008,67.11923828125003],[15.41572265625004,67.20244140625002],[14.441699218750045,67.27138671875005],[14.961914062500057,67.57426757812502],[15.59443359375004,67.34853515625005],[15.691503906250006,67.52138671875],[15.24873046875004,67.6021484375],[15.303906250000011,67.76528320312502],[14.854687500000068,67.66333007812506],[14.798925781250063,67.80932617187503],[15.13427734375,67.97270507812502],[15.621386718750017,67.94829101562502],[15.316015624999977,68.06875],[16.007910156250006,68.22871093750004],[16.312304687500017,67.88144531249998],[16.20380859375001,68.31674804687503],[17.552832031250063,68.42626953125006],[16.51435546875004,68.53256835937503],[18.101464843749994,69.15629882812499],[18.259765625,69.47060546875],[18.915917968750023,69.33559570312502],[18.614453125000068,69.49057617187498],[19.197265625000057,69.74785156249999],[19.722460937500017,69.78164062500002],[19.64150390625005,69.42402343750001],[20.324218750000057,69.94531249999997],[20.054492187500074,69.33266601562497],[20.486718750000023,69.54208984375],[20.739453124999983,69.52050781250003],[20.622070312500057,69.91391601562498],[21.163085937500057,69.88950195312498],[21.432910156250045,70.01318359375006],[21.974707031250034,69.83457031249998],[21.355761718750045,70.23339843749997],[22.321972656250068,70.264501953125],[22.684570312500057,70.374755859375],[23.35390625000008,69.98339843750003],[23.3291015625,70.20722656249995],[24.420019531250034,70.70200195312503],[24.263476562500017,70.82631835937497],[24.658007812500017,71.00102539062505],[25.264648437500057,70.843505859375],[25.768164062500063,70.85317382812502],[25.043847656250023,70.10903320312502],[26.66132812500004,70.93974609374999],[26.585058593750034,70.41000976562498],[26.989355468750063,70.51137695312502],[27.183691406250034,70.74404296875],[27.546484375000063,70.80400390625005],[27.23525390625008,70.94721679687498],[27.59707031250005,71.09130859375003],[28.392285156250068,70.97529296875004],[27.898046875,70.67792968750001],[28.271777343750017,70.66796875000003],[28.192968750000034,70.24858398437505],[28.83154296875003,70.86396484375001],[29.7375,70.646826171875],[30.065136718750097,70.70297851562498],[30.944140625000017,70.27441406249997],[30.262988281250074,70.12470703125004],[28.804296875000063,70.09252929687506],[29.601367187500017,69.97675781249998],[29.792089843750063,69.727880859375],[30.08828125,69.71757812500005],[30.237597656250017,69.86220703125002],[30.428320312500006,69.722265625],[30.869726562500006,69.78344726562506]]],[[[25.58632812500005,71.14208984375],[26.13378906250003,70.99580078125004],[25.582031250000057,70.960791015625],[25.31494140625,71.03413085937504],[25.58632812500005,71.14208984375]]],[[[-8.953564453124983,70.83916015625002],[-8.001367187499966,71.17768554687495],[-8.002099609374937,71.04125976562497],[-8.953564453124983,70.83916015625002]]],[[[19.219335937500006,74.39101562500002],[18.86123046875008,74.51416015624997],[19.182910156250045,74.51791992187503],[19.219335937500006,74.39101562500002]]],[[[21.60810546875004,78.59570312499997],[22.04316406250004,78.57695312500007],[22.29951171875004,78.22817382812497],[23.451953125000074,78.14946289062502],[23.11669921874997,77.99150390624999],[24.901855468750057,77.756591796875],[22.55371093750003,77.26665039062502],[22.685351562500045,77.55351562500002],[20.928125,77.45966796874998],[21.653125,77.92353515624998],[20.22792968750005,78.47783203125005],[21.60810546875004,78.59570312499997]]],[[[11.250292968750017,78.610693359375],[12.116406250000068,78.232568359375],[11.121289062500011,78.46328125],[10.558203125000063,78.90292968750003],[11.250292968750017,78.610693359375]]],[[[29.047070312500068,78.91206054687504],[29.69667968750005,78.90473632812495],[27.88906250000005,78.8521484375],[28.511132812500023,78.96733398437502],[29.047070312500068,78.91206054687504]]],[[[16.786718750000034,79.90673828125],[17.834570312499977,79.80004882812503],[17.66875,79.38593750000004],[18.39736328125008,79.60517578125001],[18.677832031250006,79.26171875000003],[19.893554687500057,79.05620117187499],[20.61103515625004,79.10664062499998],[21.388769531250034,78.74042968749998],[19.67675781250003,78.60957031249995],[16.700488281250045,76.57929687499995],[14.365820312500034,77.23447265625003],[13.995703125000034,77.50820312500002],[14.69501953125004,77.525048828125],[14.920800781250023,77.68881835937506],[17.033300781250006,77.79770507812503],[16.91406250000003,77.89799804687505],[14.089941406250063,77.77138671875],[13.680566406250051,78.028125],[14.307226562500006,78.00507812500001],[15.783886718750011,78.32705078125005],[17.00292968750003,78.36938476562497],[16.44863281250008,78.50356445312502],[16.78261718750008,78.66362304687505],[15.417382812500023,78.47324218749998],[15.384179687500023,78.77119140625001],[15.01630859375004,78.63012695312497],[14.689257812500017,78.720947265625],[14.638281250000034,78.41459960937502],[14.110449218750063,78.27089843749997],[13.150195312499989,78.2375],[11.365429687500011,78.95039062500004],[12.323437500000068,78.91425781249995],[12.083984375000028,79.26752929687498],[11.579785156250068,79.28349609375005],[11.208105468750034,79.12963867187503],[10.737597656250017,79.52016601562502],[10.804003906250045,79.79877929687504],[11.150390625,79.71699218749998],[11.702343750000011,79.82060546875005],[12.287792968750068,79.713134765625],[12.279980468749983,79.81596679687507],[13.692871093749972,79.860986328125],[13.777539062500011,79.71528320312498],[12.555371093750068,79.56948242187502],[13.333789062500017,79.57480468750006],[14.029589843750017,79.34414062500005],[14.59365234375008,79.79873046875002],[16.34375,78.97612304687502],[15.816113281250011,79.68183593750001],[16.245703125000034,80.04946289062502],[16.786718750000034,79.90673828125]]],[[[32.52597656250006,80.119140625],[31.48193359374997,80.10791015625003],[33.62929687499999,80.21743164062497],[32.52597656250006,80.119140625]]],[[[20.897851562500023,80.24995117187501],[22.289746093749983,80.04921874999997],[22.450781250000034,80.40224609375005],[23.00800781250004,80.473974609375],[23.114550781250074,80.18696289062498],[24.29755859375004,80.36040039062505],[26.86083984375,80.16000976562498],[27.19863281250008,79.90659179687506],[25.641210937500034,79.40302734374995],[23.94775390625,79.19428710937498],[22.903710937500023,79.23066406250001],[22.865527343750045,79.41186523437497],[20.861132812500017,79.39785156249997],[20.128222656250074,79.489599609375],[19.674609375000045,79.591162109375],[20.784082031250023,79.74858398437502],[18.725,79.7607421875],[18.25537109375,79.92919921875003],[18.855957031250057,80.03662109375],[17.91689453125005,80.14311523437502],[19.343359375000063,80.11640624999998],[19.733300781249994,80.47783203124999],[20.897851562500023,80.24995117187501]]]]},"properties":{"name":"Norway","childNum":27}},{"geometry":{"type":"Polygon","coordinates":[[[87.984375,27.133935546874994],[87.9931640625,27.086083984374994],[88.11103515625001,26.928466796875],[88.1572265625,26.807324218749997],[88.16152343750002,26.724804687499997],[88.11152343750001,26.58642578125],[88.05488281250001,26.430029296875],[88.02695312500003,26.39501953125],[87.9951171875,26.382373046874996],[87.28740234374999,26.360302734374997],[87.01640624999999,26.555419921875],[86.70136718750001,26.43505859375],[86.00732421875,26.649365234374997],[85.79453125000003,26.604150390624994],[85.7373046875,26.63974609375],[85.6484375,26.829003906249994],[85.56845703125003,26.83984375],[85.29296875,26.741015625],[85.19179687500002,26.766552734374997],[84.68535156249999,27.041015625],[84.65380859375,27.091699218749994],[84.65478515625,27.203662109374996],[84.64072265625003,27.249853515625],[84.61015624999999,27.298681640625],[84.48085937500002,27.348193359374996],[84.22978515624999,27.42783203125],[84.09101562500001,27.491357421874994],[83.82880859375001,27.377832031249994],[83.74697265625002,27.395947265624997],[83.55166015625002,27.456347656249996],[83.44716796875002,27.46533203125],[83.38398437500001,27.44482421875],[83.36943359374999,27.41025390625],[83.28974609375001,27.370996093749994],[82.7333984375,27.518994140624997],[82.71083984375002,27.5966796875],[82.67734375000003,27.6734375],[82.6298828125,27.687060546874996],[82.45136718750001,27.671826171874997],[82.28769531250003,27.756542968749997],[82.11191406250003,27.864941406249997],[82.03701171875002,27.900585937499997],[81.98769531250002,27.913769531249997],[81.94521484375002,27.899267578125],[81.896875,27.874462890624997],[81.85263671875003,27.867089843749994],[81.1689453125,28.335009765624996],[80.58701171875003,28.649609375],[80.51787109374999,28.665185546874994],[80.49580078125001,28.635791015624996],[80.47910156250003,28.604882812499994],[80.41855468750003,28.612011718749997],[80.32480468750003,28.66640625],[80.2265625,28.723339843749997],[80.07070312500002,28.83017578125],[80.05166015625002,28.8703125],[80.08457031250003,28.994189453124996],[80.13046875000003,29.100390625],[80.16953125000003,29.124316406249996],[80.23300781250003,29.194628906249996],[80.25595703125003,29.318017578124994],[80.2548828125,29.42333984375],[80.31689453125,29.572070312499996],[80.40185546875,29.730273437499996],[80.54902343750001,29.899804687499994],[80.81992187500003,30.119335937499997],[80.84814453125,30.13974609375],[80.90761718750002,30.171923828124996],[80.96611328124999,30.180029296875],[81.17714843750002,30.039892578125],[81.25507812500001,30.093310546874996],[81.41718750000001,30.337597656249997],[81.64189453124999,30.3875],[81.85488281250002,30.36240234375],[82.04335937500002,30.3267578125],[82.220703125,30.063867187499994],[83.15546875000001,29.612646484375],[83.58349609375,29.18359375],[83.93593750000002,29.279492187499997],[84.02197265625,29.253857421874997],[84.10136718749999,29.219970703125],[84.12783203125002,29.156298828124996],[84.17558593749999,29.036376953125],[84.22871093750001,28.911767578124994],[84.796875,28.560205078124994],[84.85507812500003,28.553613281249994],[85.06914062499999,28.609667968749996],[85.12636718750002,28.60263671875],[85.15908203125002,28.592236328124997],[85.16015625,28.571875],[85.12148437500002,28.484277343749994],[85.08857421875001,28.372265625],[85.12246093750002,28.315966796874996],[85.21210937500001,28.292626953124994],[85.41064453125,28.276025390624994],[85.67832031250003,28.27744140625],[85.75947265625001,28.220654296874997],[85.84023437500002,28.1353515625],[85.92167968749999,27.989697265624997],[85.9541015625,27.92822265625],[85.99453125000002,27.910400390625],[86.06416015625001,27.934716796874994],[86.07871093750003,28.08359375],[86.13701171874999,28.11435546875],[86.21796875000001,28.0220703125],[86.32861328125,27.959521484374996],[86.40869140625,27.928662109374997],[86.51689453124999,27.963525390624994],[86.55449218749999,28.085205078125],[86.61445312500001,28.10302734375],[86.69052734375003,28.094921875],[86.71962890625002,28.070654296875],[86.75039062500002,28.0220703125],[86.93378906250001,27.968457031249997],[87.02011718750003,27.928662109374997],[87.14140624999999,27.838330078124997],[87.29072265625001,27.821923828124994],[87.62255859375,27.815185546875],[87.86074218750002,27.886083984375],[88.10976562500002,27.87060546875],[87.984375,27.133935546874994]]]},"properties":{"name":"Nepal","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[169.17822265624997,-52.497265625],[169.12753906250006,-52.570312499999964],[169.02177734375002,-52.49541015624998],[169.17822265624997,-52.497265625]]],[[[166.22109375,-50.76152343749997],[166.2428710937501,-50.84570312499998],[165.88916015624997,-50.80771484374996],[166.10136718750002,-50.538964843750016],[166.26748046875005,-50.558593750000014],[166.22109375,-50.76152343749997]]],[[[168.14492187500005,-46.862207031249966],[168.04316406250004,-46.9326171875],[168.2409179687501,-47.070019531250026],[167.52197265624997,-47.258691406249994],[167.80078125000003,-46.90654296875002],[167.78398437500007,-46.699804687500006],[167.9557617187501,-46.69443359374998],[168.14492187500005,-46.862207031249966]]],[[[166.97949218749997,-45.17968750000003],[167.02265625000004,-45.299804687499986],[166.89267578125012,-45.24052734374999],[166.97949218749997,-45.17968750000003]]],[[[-176.17763671874997,-43.74033203124998],[-176.38173828124997,-43.86679687499998],[-176.40737304687497,-43.7609375],[-176.516552734375,-43.78476562499996],[-176.33359375000003,-44.02529296875004],[-176.51552734374997,-44.11660156249998],[-176.62934570312495,-44.036132812500014],[-176.55512695312504,-43.85195312499998],[-176.84765625000003,-43.82392578125004],[-176.56611328124995,-43.717578125000045],[-176.17763671874997,-43.74033203124998]]],[[[173.91464843750018,-40.86367187500004],[173.78085937500012,-40.921777343749966],[173.964453125,-40.71298828124998],[173.91464843750018,-40.86367187500004]]],[[[173.11533203125006,-41.27929687499997],[173.94716796875005,-40.92412109375],[173.79785156250003,-41.271972656249986],[173.99941406250005,-40.99326171874996],[174.30253906249996,-41.019531249999986],[174.03857421875003,-41.24189453125],[174.37011718750009,-41.1037109375],[174.06933593750009,-41.42949218750002],[174.08369140625015,-41.67080078124998],[174.2831054687501,-41.740625],[173.22119140624997,-42.976562499999986],[172.62402343749997,-43.27246093749996],[172.73476562500005,-43.35478515625003],[172.52666015625002,-43.464746093749966],[172.69345703125006,-43.444335937499986],[172.80703125000005,-43.620996093749994],[173.07324218750003,-43.676171874999966],[173.065625,-43.87460937499998],[172.50273437500002,-43.84365234374998],[172.48037109375,-43.726660156250034],[172.29658203125004,-43.867871093750026],[172.035546875,-43.70175781250002],[172.17978515625006,-43.895996093749986],[171.24072265624997,-44.26416015625003],[171.14628906250002,-44.9123046875],[170.99902343750003,-44.91142578124999],[171.11328125000003,-45.03925781250001],[170.7005859375,-45.68427734374997],[170.77626953125005,-45.870898437499974],[170.4191406250001,-45.94101562499996],[169.68662109375006,-46.55166015625002],[169.34228515625003,-46.62050781250001],[168.38212890625007,-46.60537109374995],[168.1891601562501,-46.362207031249966],[167.8419921875001,-46.366210937499986],[167.539453125,-46.14853515624996],[167.36894531250007,-46.24150390624999],[166.73154296875006,-46.19785156249998],[166.91669921875004,-45.95722656249998],[166.64990234374997,-46.04169921875004],[166.71796875000004,-45.88935546875001],[166.49316406249997,-45.9638671875],[166.48828124999997,-45.83183593750002],[167.0033203125,-45.71210937500004],[166.79765625000002,-45.64560546874999],[166.99082031250012,-45.531738281249986],[166.73398437500012,-45.54355468749999],[166.74306640625,-45.46845703124997],[166.91992187499997,-45.40791015624998],[166.86923828125006,-45.31123046875],[167.15566406250005,-45.410937499999974],[167.23007812500012,-45.29033203125],[167.02587890624997,-45.12363281249998],[167.25947265625004,-45.08222656249997],[167.19453125000004,-44.963476562500034],[167.41074218750006,-44.82792968750003],[167.4662109375,-44.958300781250045],[167.48496093750006,-44.77138671874998],[167.78701171875,-44.59501953125002],[167.90898437500002,-44.66474609375001],[167.85654296875012,-44.50068359374998],[168.45742187500005,-44.030566406250045],[169.17890625000004,-43.9130859375],[169.16953125000006,-43.77705078125],[169.83388671875,-43.53701171875004],[170.24023437499997,-43.163867187500045],[170.39609375000012,-43.18222656249996],[170.30283203125012,-43.10761718750004],[170.61181640625003,-43.091796875000014],[170.5236328125001,-43.00898437500001],[170.6654296875,-42.961230468749974],[170.73525390625005,-43.029785156249986],[170.96992187500004,-42.71835937499996],[171.01171875000003,-42.88505859374999],[171.027734375,-42.696093750000045],[171.31337890625005,-42.460156250000026],[171.48623046875,-41.7947265625],[171.94804687500002,-41.53867187499996],[172.13945312500002,-40.947265625000014],[172.640625,-40.51826171875001],[172.94365234375007,-40.51875],[172.73261718750004,-40.54375],[172.70439453125002,-40.6677734375],[172.988671875,-40.84824218749999],[173.11533203125006,-41.27929687499997]]],[[[175.54316406250015,-36.279296874999986],[175.34619140624997,-36.217773437499986],[175.3895507812501,-36.07773437499996],[175.54316406250015,-36.279296874999986]]],[[[173.26943359375,-34.93476562499998],[173.44785156250012,-34.844335937500034],[173.47265625000003,-34.94697265624998],[174.10400390625003,-35.14287109375002],[174.1431640625,-35.3],[174.32031250000003,-35.246679687500034],[174.58066406250018,-35.78554687500004],[174.39580078124996,-35.79736328124996],[174.8021484375,-36.30947265625001],[174.72246093750007,-36.84121093749998],[175.29951171875004,-36.99326171874996],[175.38535156250012,-37.206933593749966],[175.54248046874997,-37.2013671875],[175.46083984375005,-36.475683593750034],[175.77216796875004,-36.73515625],[176.10839843749997,-37.64511718749998],[177.27402343750012,-37.993457031249974],[178.0091796875,-37.55488281249998],[178.53623046875006,-37.69208984375004],[178.26767578125006,-38.551171875],[177.976171875,-38.72226562500005],[177.90878906250012,-39.23955078125],[177.52294921875003,-39.07382812499999],[177.07675781250012,-39.22177734375002],[176.93925781249996,-39.55527343750002],[177.10986328125009,-39.673144531250045],[176.8421875000001,-40.15781250000002],[175.98291015625003,-41.21328125000002],[175.30976562499998,-41.610644531249974],[175.16562500000012,-41.41738281249995],[174.88134765624997,-41.42402343749997],[174.8656250000001,-41.223046874999966],[174.63535156250012,-41.28945312499999],[175.1625,-40.62158203125],[175.25410156250004,-40.28935546875],[175.1559570312501,-40.11494140625],[175.00927734375009,-39.95214843749996],[173.93437500000013,-39.50908203125002],[173.76367187499997,-39.31875],[173.84433593750006,-39.13935546875001],[174.39843749999997,-38.96259765624998],[174.59736328124998,-38.78505859374995],[174.80166015625005,-37.895507812500014],[174.92802734375002,-37.80449218750003],[174.58583984374994,-37.09775390625002],[174.73427734375,-37.21523437499998],[174.92890625000004,-37.084765625000045],[174.78203125000013,-36.94375],[174.47558593750009,-36.94189453124997],[174.1888671875001,-36.492285156250034],[174.4015625000001,-36.60195312499999],[174.39277343750004,-36.24003906249999],[174.26787109375002,-36.16308593750003],[174.25371093749996,-36.24912109374998],[174.03642578125013,-36.12246093750001],[173.91445312499994,-35.908691406249986],[173.91728515625002,-36.01816406249999],[174.16640624999994,-36.327636718749986],[174.05468749999991,-36.35976562500004],[173.41220703125012,-35.542578125],[173.62617187500004,-35.31914062499996],[173.3763671875001,-35.50009765624996],[173.31396484375003,-35.44335937499996],[173.11669921874997,-35.205273437500026],[173.190625,-35.01621093749998],[172.70595703125005,-34.45517578124998],[173.04394531249997,-34.429101562499994],[172.96376953125,-34.53515625000003],[173.26943359375,-34.93476562499998]]]]},"properties":{"name":"New Zealand","childNum":9}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[58.722070312499994,20.21875],[58.640917968750074,20.210693359375057],[58.64121093750006,20.33735351562501],[58.884375,20.680566406250023],[58.95078125000006,20.516162109375017],[58.722070312499994,20.21875]]],[[[56.38798828125002,24.97919921875004],[56.640625,24.4703125],[57.12304687500003,23.980712890625],[58.773046875,23.517187499999977],[59.42939453125004,22.660839843749955],[59.82324218749997,22.50898437500004],[59.8,22.21992187500001],[59.37148437500005,21.498828125000017],[58.89570312500004,21.11279296874997],[58.47421875000006,20.406884765624966],[58.20898437500003,20.423974609374994],[58.245019531249994,20.599218749999977],[58.16943359375003,20.58950195312505],[57.86181640624997,20.24414062500003],[57.71416015625002,19.678417968749983],[57.81162109375006,19.01708984374997],[56.825976562500074,18.753515625],[56.3834960937501,17.98798828125001],[55.479101562500006,17.84326171875003],[55.25537109375003,17.58564453125004],[55.275195312500074,17.320898437500006],[55.06416015625004,17.038916015625034],[54.06816406250002,17.005517578124966],[53.60986328124997,16.75996093750004],[53.08564453125004,16.648388671874955],[51.977636718750006,18.996142578125074],[54.97734375000002,19.995947265625006],[55.64101562499999,22.001855468749994],[55.185839843750074,22.7041015625],[55.1999023437501,23.034765625000034],[55.53164062499999,23.81904296875001],[55.4684570312501,23.94111328125001],[55.98515625000002,24.063378906249966],[55.92861328125005,24.215136718750074],[55.76083984375006,24.24267578125],[55.795703125000074,24.868115234374955],[56.00058593750006,24.953222656249977],[56.06386718750005,24.73876953125],[56.38798828125002,24.97919921875004]]],[[[56.29785156250003,25.650683593750045],[56.144628906250006,25.690527343750006],[56.16748046875003,26.047460937499977],[56.08046875,26.06264648437505],[56.41308593749997,26.351171875000034],[56.29785156250003,25.650683593750045]]]]},"properties":{"name":"Oman","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[73.08961802927895,36.86435907947333],[73.08203125000107,36.43949943991182],[72.31128647748268,35.77290936638241],[73.13410859949555,34.82510160558277],[73.19895048106557,33.88770931468204],[74.00809389139292,33.25375789331485],[73.98984375,33.22119140625],[74.30361328125002,32.991796875],[74.30546875000002,32.810449218749994],[74.35458984375,32.768701171874994],[74.58828125000002,32.753222656249996],[74.632421875,32.770898437499994],[74.66328125000001,32.757666015625],[74.64335937500002,32.607714843749996],[74.68574218750001,32.493798828124994],[74.78886718750002,32.4578125],[74.9873046875,32.462207031249996],[75.33349609375,32.279199218749994],[75.25410156250001,32.14033203125],[75.13876953125,32.104785156249996],[75.07148437500001,32.08935546875],[74.73945312500001,31.948828125],[74.6357421875,31.88974609375],[74.55556640625002,31.818554687499997],[74.5259765625,31.76513671875],[74.50996093750001,31.712939453124996],[74.58183593750002,31.52392578125],[74.59394531250001,31.465380859374996],[74.53496093750002,31.261376953124994],[74.51767578125,31.185595703124996],[74.6103515625,31.112841796874996],[74.62578125000002,31.06875],[74.6328125,31.03466796875],[74.509765625,30.959667968749997],[74.38037109375,30.893408203125],[74.33935546875,30.8935546875],[74.00898437500001,30.519677734374994],[73.89931640625002,30.435351562499996],[73.88271484375002,30.3521484375],[73.92460937500002,30.28164062499999],[73.93339843750002,30.222070312499994],[73.88652343750002,30.162011718749994],[73.8091796875,30.093359375],[73.38164062500002,29.934375],[72.9033203125,29.028759765624997],[72.34189453125,28.751904296874997],[72.2919921875,28.697265625],[72.128515625,28.346337890624994],[71.94804687500002,28.177294921874996],[71.88886718750001,28.0474609375],[71.87031250000001,27.9625],[71.54296875,27.869873046875],[71.18476562500001,27.831640625],[70.87490234375002,27.714453125],[70.79794921875,27.709619140624994],[70.69160156250001,27.768994140624997],[70.62910156250001,27.937451171874997],[70.40371093750002,28.025048828124994],[70.24433593750001,27.934130859374996],[70.1939453125,27.894873046875],[70.14453125,27.849023437499994],[70.0498046875,27.694726562499994],[69.89628906250002,27.4736328125],[69.56796875,27.174609375],[69.47001953125002,26.804443359375],[70.11464843750002,26.548046875],[70.14921875000002,26.347558593749994],[70.1001953125,25.910058593749994],[70.2646484375,25.70654296875],[70.3251953125,25.685742187499997],[70.44853515625002,25.681347656249997],[70.505859375,25.685302734375],[70.56953125000001,25.705957031249994],[70.6484375,25.666943359374997],[70.65205078125001,25.422900390625003],[70.87773437500002,25.06298828125],[70.95087890625001,24.8916015625],[71.02070312500001,24.75766601562499],[71.0478515625,24.687744140625],[71.00234375000002,24.65390625],[70.97636718750002,24.61875],[70.96982421875,24.571875],[71.04531250000002,24.429980468750003],[71.04404296875,24.400097656249997],[70.98281250000002,24.361035156249997],[70.928125,24.362353515625003],[70.88623046875,24.34375],[70.80507812500002,24.261962890625],[70.76728515625001,24.245410156250003],[70.71630859375,24.237988281249997],[70.65947265625002,24.24609375],[70.57929687500001,24.279052734375],[70.55585937500001,24.331103515625003],[70.5650390625,24.385791015625003],[70.54677734375002,24.41831054687499],[70.2890625,24.35629882812499],[70.0982421875,24.2875],[69.80517578125,24.165234375],[69.71621093750002,24.172607421875],[69.63417968750002,24.22519531249999],[69.5591796875,24.273095703124994],[69.44345703125,24.275390625],[69.23505859375001,24.268261718749997],[69.11953125000002,24.26865234374999],[69.05156250000002,24.286328125],[68.98457031250001,24.273095703124994],[68.90078125000002,24.292431640624997],[68.86347656250001,24.266503906249994],[68.82832031250001,24.26401367187499],[68.78115234375002,24.313720703125],[68.75898437500001,24.30722656249999],[68.73964843750002,24.2919921875],[68.728125,24.265625],[68.72412109375,23.96469726562499],[68.48867187500002,23.967236328124997],[68.38125,23.950878906249997],[68.28251953125002,23.927978515625],[68.1650390625,23.857324218749994],[68.11552734375002,23.753369140624997],[67.8599609375,23.90268554687499],[67.66845703125,23.810986328124997],[67.309375,24.1748046875],[67.171484375,24.756103515625],[66.70302734375002,24.8609375],[66.69863281250002,25.226318359375],[66.32421875,25.601806640625],[66.13115234375002,25.49326171874999],[66.46767578125002,25.4453125],[64.77666015625002,25.307324218749997],[64.65898437500002,25.18408203125],[64.059375,25.40292968749999],[63.556640625,25.353173828124994],[63.49140625000001,25.210839843749994],[61.56689453125,25.186328125],[61.587890625,25.20234375],[61.61542968750001,25.2861328125],[61.64013671875,25.584619140624994],[61.67138671875,25.6923828125],[61.66181640625001,25.751269531250003],[61.66865234375001,25.768994140624997],[61.73769531250002,25.82109375],[61.75439453125,25.84335937499999],[61.78076171875,25.995849609375],[61.80996093750002,26.165283203125],[61.842382812500006,26.225927734375],[62.1259765625,26.368994140625],[62.239355468750006,26.35703125],[62.31230468750002,26.490869140624994],[63.168066406250006,26.665576171874996],[63.186132812500006,26.837597656249997],[63.24160156250002,26.86474609375],[63.25039062500002,26.879248046875],[63.24208984375002,27.077685546874996],[63.30517578125,27.124560546874996],[63.30156250000002,27.15146484375],[63.25625,27.207910156249994],[63.19609375000002,27.243945312499996],[63.16679687500002,27.252490234374996],[62.75273437500002,27.265625],[62.782324218750006,27.800537109375],[62.7625,28.202050781249994],[61.88984375000001,28.546533203124994],[61.15214843750002,29.542724609375],[61.0341796875,29.663427734375],[60.843359375,29.858691406249996],[61.22441406250002,29.749414062499994],[62.0009765625,29.530419921874994],[62.4765625,29.408349609374994],[63.56757812500001,29.497998046874997],[64.09873046875,29.391943359375],[64.39375,29.544335937499994],[65.09550781250002,29.559472656249994],[66.23125,29.86572265625],[66.346875,30.802783203124996],[66.82929687500001,31.263671875],[67.45283203125001,31.234619140625],[67.737890625,31.343945312499997],[67.57822265625,31.506494140624994],[68.16103515625002,31.802978515625],[68.59765625,31.802978515625],[68.86894531250002,31.634228515624997],[69.279296875,31.936816406249996],[69.24140625000001,32.433544921875],[69.5015625,33.020068359374996],[70.26113281250002,33.289013671875],[69.8896484375,34.007275390625],[70.65400390625001,33.952294921874994],[71.05156250000002,34.049707031249994],[71.095703125,34.369433593749996],[70.965625,34.53037109375],[71.62050781250002,35.183007812499994],[71.57197265625001,35.546826171875],[71.18505859375,36.04208984375],[71.23291015625,36.12177734375],[72.24980468750002,36.734716796875],[73.08961802927895,36.86435907947333]]]},"properties":{"name":"Pakistan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-81.60327148437497,7.332812499999989],[-81.85205078125003,7.453320312500026],[-81.812158203125,7.59238281250002],[-81.72875976562494,7.62119140625002],[-81.60327148437497,7.332812499999989]]],[[[-78.89833984375002,8.27426757812502],[-78.960595703125,8.435839843749989],[-78.88325195312495,8.460253906249989],[-78.89833984375002,8.27426757812502]]],[[[-77.37421874999993,8.65830078125002],[-77.47851562499994,8.498437500000037],[-77.19599609374995,7.972460937500003],[-77.53828124999995,7.56625976562502],[-77.76191406249995,7.698828125000034],[-77.90117187499999,7.229345703125048],[-78.42158203124995,8.060986328125011],[-78.28735351562497,8.091796874999972],[-78.14189453125002,8.386083984374977],[-77.76054687499993,8.133251953124983],[-78.09946289062498,8.496972656250009],[-78.22304687500002,8.396630859374994],[-78.39921874999993,8.505664062500003],[-78.40986328124998,8.35532226562502],[-78.51406249999997,8.628173828125],[-79.08637695312495,8.997167968750034],[-79.50708007812494,8.97006835937502],[-79.68745117187493,8.850976562500009],[-79.81591796875,8.639208984375031],[-79.75043945312498,8.595507812500017],[-80.458984375,8.213867187499972],[-80.45810546875,8.077050781249994],[-80.01123046875,7.500048828125031],[-80.66669921874995,7.225683593750006],[-80.90122070312503,7.277148437500017],[-81.06386718749994,7.89975585937502],[-81.26840820312495,7.625488281250014],[-81.50415039062503,7.721191406249972],[-81.72763671875,8.137548828124977],[-82.15986328124995,8.19482421875],[-82.23544921874998,8.311035156250057],[-82.67954101562503,8.321972656249969],[-82.86611328124994,8.246337890625014],[-82.87934570312498,8.07065429687502],[-83.02734375,8.337744140624991],[-82.86162109374999,8.453515625000037],[-82.84477539062493,8.489355468749963],[-82.85571289062494,8.635302734375031],[-82.91704101562502,8.740332031250034],[-82.88198242187497,8.805322265625037],[-82.72783203125002,8.916064453125031],[-82.78305664062498,8.990283203124974],[-82.88134765625003,9.055859375000011],[-82.94033203124997,9.060107421874989],[-82.93984374999994,9.449169921875026],[-82.92504882812494,9.469042968749989],[-82.88896484374999,9.481005859375017],[-82.86015625,9.511474609375014],[-82.84399414062497,9.570800781250014],[-82.801025390625,9.591796875000028],[-82.64409179687502,9.505859375000028],[-82.56357421875003,9.576660156249972],[-82.50034179687503,9.523242187500017],[-82.37080078124993,9.428564453124991],[-82.33974609375,9.209179687499983],[-82.18813476562502,9.191748046874977],[-82.24418945312499,9.031494140625014],[-82.07788085937503,8.93486328124996],[-81.78022460937495,8.957226562499983],[-81.89448242187495,9.140429687500003],[-81.35478515624996,8.78056640624996],[-80.83867187499999,8.887207031250014],[-80.12709960937497,9.20991210937504],[-79.57729492187497,9.597851562500026],[-78.08276367187494,9.236279296874997],[-77.37421874999993,8.65830078125002]]]]},"properties":{"name":"Panama","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[-73.137353515625,-6.4658203125],[-73.75810546874999,-6.90576171875],[-73.79301757812499,-7.135058593750003],[-73.758203125,-7.172753906250009],[-73.72041015625,-7.309277343750011],[-73.964306640625,-7.37890625],[-73.95849609375,-7.506640625],[-73.98173828124999,-7.535742187500006],[-74.00205078124999,-7.556054687500009],[-73.98173828124999,-7.585058593750006],[-73.946875,-7.611230468750009],[-73.89462890624999,-7.65478515625],[-73.82207031249999,-7.738964843750011],[-73.76689453124999,-7.753515625],[-73.72041015625,-7.782519531250003],[-73.73203125,-7.875390625],[-73.54912109374999,-8.345800781250006],[-73.39814453125,-8.458984375],[-73.36040039062499,-8.479296875],[-73.351708984375,-8.51416015625],[-73.35673828124999,-8.566992187500006],[-73.30244140625,-8.654003906250011],[-73.203125,-8.719335937500006],[-73.0705078125,-8.8828125],[-72.9740234375,-8.9931640625],[-72.970361328125,-9.1201171875],[-73.08984375,-9.265722656250006],[-73.209423828125,-9.411425781250003],[-72.379052734375,-9.51015625],[-72.181591796875,-10.003710937500003],[-71.33940429687499,-9.988574218750003],[-71.11528320312499,-9.852441406250009],[-71.041748046875,-9.81875],[-70.6369140625,-9.478222656250011],[-70.60791015625,-9.463671875],[-70.54111328124999,-9.4375],[-70.57016601562499,-9.48984375],[-70.592236328125,-9.54345703125],[-70.59916992187499,-9.620507812500009],[-70.642333984375,-11.01025390625],[-70.59653320312499,-10.976855468750003],[-70.53325195312499,-10.946875],[-70.45087890625,-11.024804687500009],[-70.39228515625,-11.05859375],[-70.3419921875,-11.066699218750003],[-70.29038085937499,-11.064257812500003],[-70.22006835937499,-11.04765625],[-70.06630859375,-10.982421875],[-69.9603515625,-10.929882812500011],[-69.839794921875,-10.933398437500003],[-69.6740234375,-10.9541015625],[-69.57861328125,-10.951757812500006],[-68.68525390625,-12.501953125],[-68.97861328124999,-12.880078125000011],[-69.07412109375,-13.682812500000011],[-68.87089843749999,-14.169726562500003],[-69.35947265624999,-14.7953125],[-69.37470703125,-14.962988281250006],[-69.17246093749999,-15.236621093750003],[-69.4208984375,-15.640625],[-69.21757812499999,-16.14912109375001],[-68.8427734375,-16.337890625],[-69.03291015625,-16.47597656250001],[-69.020703125,-16.6421875],[-69.62485351562499,-17.2001953125],[-69.645703125,-17.24853515625],[-69.521923828125,-17.388964843750003],[-69.510986328125,-17.46035156250001],[-69.51108398437499,-17.5048828125],[-69.5109375,-17.50605468750001],[-69.58642578125,-17.5732421875],[-69.684765625,-17.64980468750001],[-69.85209960937499,-17.70380859375001],[-69.80258789062499,-17.990234375],[-69.92636718749999,-18.2060546875],[-70.41826171874999,-18.34560546875001],[-71.33696289062499,-17.68251953125001],[-71.5322265625,-17.29433593750001],[-72.46767578125,-16.708105468750006],[-73.727685546875,-16.20166015625],[-75.104248046875,-15.411914062500003],[-75.533642578125,-14.89921875],[-75.93388671874999,-14.63359375],[-76.37646484375,-13.863085937500003],[-76.259228515625,-13.802832031250006],[-76.2236328125,-13.371191406250006],[-76.83212890624999,-12.348730468750006],[-77.152734375,-12.060351562500003],[-77.2203125,-11.663378906250003],[-77.633203125,-11.287792968750011],[-77.736083984375,-10.83671875],[-78.18559570312499,-10.089062500000011],[-78.76225585937499,-8.616992187500003],[-79.37724609374999,-7.835546875],[-79.99497070312499,-6.768945312500009],[-81.142041015625,-6.056738281250006],[-81.164306640625,-5.875292968750003],[-80.9306640625,-5.8408203125],[-80.88193359374999,-5.635058593750003],[-81.33662109375,-4.66953125],[-81.283203125,-4.322265625],[-80.503662109375,-3.49609375],[-80.324658203125,-3.387890625000011],[-80.24375,-3.576757812500006],[-80.19414062499999,-3.905859375],[-80.23051757812499,-3.924023437500011],[-80.26689453124999,-3.948828125],[-80.30327148437499,-4.005078125000011],[-80.43720703125,-3.978613281250006],[-80.49013671875,-4.010058593750003],[-80.510009765625,-4.069531250000011],[-80.49345703124999,-4.119140625],[-80.4884765625,-4.16552734375],[-80.453759765625,-4.205175781250006],[-80.35288085937499,-4.20849609375],[-80.44384765625,-4.335839843750009],[-80.4884765625,-4.393652343750006],[-80.47856445312499,-4.430078125],[-80.42416992187499,-4.46142578125],[-80.38349609375,-4.463671875],[-80.293359375,-4.416796875],[-80.1974609375,-4.31103515625],[-80.13955078125,-4.296093750000011],[-80.06352539062499,-4.327539062500009],[-79.962890625,-4.390332031250011],[-79.8451171875,-4.445898437500006],[-79.797265625,-4.476367187500003],[-79.71098632812499,-4.467578125],[-79.63852539062499,-4.454882812500003],[-79.57768554687499,-4.500585937500006],[-79.51616210937499,-4.539160156250006],[-79.501904296875,-4.670605468750011],[-79.45576171875,-4.766210937500006],[-79.3994140625,-4.840039062500011],[-79.33095703125,-4.927832031250006],[-79.26811523437499,-4.957617187500006],[-79.186669921875,-4.958203125000011],[-79.07626953124999,-4.990625],[-79.03330078124999,-4.969140625],[-78.995263671875,-4.908007812500003],[-78.97539062499999,-4.873242187500011],[-78.919189453125,-4.8583984375],[-78.92578125,-4.770703125000011],[-78.9076171875,-4.714453125],[-78.8615234375,-4.6650390625],[-78.68603515625,-4.562402343750009],[-78.64799804687499,-4.248144531250006],[-78.345361328125,-3.397363281250009],[-78.240380859375,-3.472558593750009],[-77.860595703125,-2.981640625000011],[-76.6791015625,-2.562597656250006],[-76.089794921875,-2.133105468750003],[-75.570556640625,-1.53125],[-75.42041015625,-0.962207031250003],[-75.40805664062499,-0.92431640625],[-75.24960937499999,-0.951855468750011],[-75.259375,-0.590136718750003],[-75.42470703125,-0.408886718750011],[-75.49106445312499,-0.248339843750003],[-75.56059570312499,-0.200097656250009],[-75.63203125,-0.157617187500009],[-75.62626953124999,-0.122851562500003],[-75.340478515625,-0.1421875],[-75.13837890625,-0.050488281250011],[-74.8017578125,-0.200097656250009],[-74.78046875,-0.24453125],[-74.75537109375,-0.298632812500003],[-74.691650390625,-0.335253906250003],[-74.616357421875,-0.370019531250009],[-74.555078125,-0.429882812500011],[-74.5138671875,-0.470117187500009],[-74.46518554687499,-0.517675781250006],[-74.41787109375,-0.580664062500006],[-74.334423828125,-0.850878906250003],[-74.28388671875,-0.927832031250006],[-74.24638671874999,-0.970605468750009],[-74.05439453125,-1.028613281250003],[-73.98681640625,-1.09814453125],[-73.926953125,-1.125195312500011],[-73.86318359375,-1.196679687500009],[-73.664306640625,-1.248828125],[-73.4962890625,-1.693066406250011],[-73.19697265625,-1.830273437500011],[-73.1544921875,-2.278222656250009],[-72.9896484375,-2.339746093750009],[-72.94111328125,-2.39404296875],[-72.21845703125,-2.400488281250006],[-71.98427734375,-2.3265625],[-71.93247070312499,-2.288671875],[-71.86728515624999,-2.227734375000011],[-71.802734375,-2.166308593750003],[-71.75253906249999,-2.152734375],[-71.55947265625,-2.22421875],[-71.39697265625,-2.334082031250006],[-71.19638671874999,-2.313085937500006],[-71.11337890624999,-2.245410156250003],[-71.027294921875,-2.225781250000011],[-70.96855468749999,-2.206835937500003],[-70.70537109374999,-2.341992187500011],[-70.64799804687499,-2.40576171875],[-70.57587890625,-2.418261718750003],[-70.29462890625,-2.552539062500003],[-70.24443359374999,-2.606542968750006],[-70.16474609375,-2.639843750000011],[-70.095849609375,-2.658203125],[-70.735107421875,-3.781542968750003],[-70.5296875,-3.866406250000011],[-70.48583984375,-3.869335937500011],[-70.42109375,-3.849609375],[-70.37919921874999,-3.81875],[-70.339501953125,-3.814355468750009],[-70.2984375,-3.84423828125],[-70.24028320312499,-3.882714843750009],[-70.16752929687499,-4.050195312500009],[-70.0171875,-4.162011718750009],[-69.96591796874999,-4.2359375],[-69.97202148437499,-4.301171875],[-70.00395507812499,-4.327246093750006],[-70.05332031249999,-4.333105468750006],[-70.12880859375,-4.28662109375],[-70.23916015625,-4.301171875],[-70.31689453125,-4.246972656250009],[-70.34365234375,-4.193652343750003],[-70.40463867187499,-4.150097656250011],[-70.5306640625,-4.167578125],[-70.72158203125,-4.158886718750011],[-70.79951171875,-4.17333984375],[-70.97368164062499,-4.350488281250009],[-71.8447265625,-4.50439453125],[-72.256787109375,-4.748925781250009],[-72.35283203124999,-4.786035156250009],[-72.468994140625,-4.901269531250009],[-72.608349609375,-5.009570312500003],[-72.69873046875,-5.0671875],[-72.83193359375,-5.09375],[-72.88706054687499,-5.122753906250011],[-72.9798828125,-5.634863281250006],[-73.16289062499999,-5.933398437500003],[-73.209375,-6.028710937500009],[-73.235546875,-6.0984375],[-73.137353515625,-6.4658203125]]]},"properties":{"name":"Peru","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[120.250390625,5.256591796875043],[119.82148437500004,5.06953125000004],[120.1652343750001,5.332421875000037],[120.250390625,5.256591796875043]]],[[[121.159375,6.075634765625011],[121.41103515625005,5.939843749999966],[121.29443359374997,5.869970703125034],[120.8763671875,5.95263671875],[121.159375,6.075634765625011]]],[[[122.09287109375012,6.428320312500006],[121.95917968750004,6.415820312500045],[121.83203125000003,6.664062499999986],[122.0583007812501,6.740722656249972],[122.32353515625002,6.602246093750011],[122.09287109375012,6.428320312500006]]],[[[122.93710937500006,7.409130859374983],[122.80468750000003,7.315966796875017],[122.82216796875,7.428466796875014],[122.93710937500006,7.409130859374983]]],[[[117.07988281250007,7.883398437499977],[117.02832031249997,7.807519531249966],[116.96953125000007,7.894921875],[116.9935546875,8.050537109375014],[117.07705078125,8.069140624999974],[117.07988281250007,7.883398437499977]]],[[[117.35527343750002,8.21464843749996],[117.28701171875,8.191015625000034],[117.28085937500006,8.314990234374974],[117.35527343750002,8.21464843749996]]],[[[124.80664062500003,9.142626953125003],[124.66582031250002,9.132324218750043],[124.65332031250003,9.225830078125],[124.80664062500003,9.142626953125003]]],[[[123.69765625000005,9.237304687500028],[123.61445312500004,9.103320312499989],[123.49345703125002,9.192089843750054],[123.69765625000005,9.237304687500028]]],[[[126.00595703125006,9.320947265625009],[126.19335937499997,9.276708984374963],[126.30458984375,8.952050781249994],[126.13955078125005,8.59565429687504],[126.36533203125012,8.483886718750014],[126.45869140625004,8.20283203125004],[126.43535156250002,7.832812499999974],[126.57011718750002,7.677246093749986],[126.58154296875003,7.247753906249969],[126.1920898437501,6.852539062500014],[126.18935546875,6.309667968749991],[125.82441406250004,7.333300781249989],[125.68925781250007,7.263037109374977],[125.38066406250007,6.689941406250014],[125.58847656250012,6.465771484374997],[125.66796874999997,5.97866210937498],[125.34648437500002,5.598974609374977],[125.23154296875006,6.069531250000011],[124.92734375000006,5.875341796874977],[124.21279296875,6.233251953124977],[124.078125,6.404443359375037],[123.98525390625,6.993701171875003],[124.20664062500006,7.396435546874983],[123.66582031250002,7.817773437500023],[123.49306640625,7.80791015624996],[123.39091796875007,7.407519531250017],[123.09667968749997,7.700439453125],[122.8429687500001,7.529296875000043],[122.79179687500002,7.72246093749996],[122.61621093749997,7.763134765624983],[122.14248046875,6.949658203124997],[121.96425781250005,6.96821289062504],[121.92460937500002,7.199511718750003],[122.24335937500004,7.945117187500031],[122.91113281250003,8.156445312499997],[123.05058593750002,8.433935546875048],[123.43457031249997,8.70332031250004],[123.84921875000006,8.432714843749977],[123.79941406250006,8.049121093749989],[124.19765625,8.229541015624974],[124.40488281250006,8.599853515625014],[124.7311523437501,8.562988281250043],[124.86894531250002,8.972265625000034],[125.141015625,8.86875],[125.20966796875004,9.027148437500017],[125.49873046875004,9.014746093749977],[125.47128906250006,9.756787109374983],[126.00595703125006,9.320947265625009]]],[[[126.059375,9.766210937500034],[125.99121093750003,9.838525390625023],[126.07382812500006,10.059228515625051],[126.1725585937501,9.79995117187498],[126.059375,9.766210937500034]]],[[[124.59384765625006,9.787207031249963],[124.1224609375,9.599316406249969],[123.93564453125012,9.623974609375011],[123.81718750000002,9.817382812499986],[124.17285156250003,10.135205078124983],[124.33574218750002,10.159912109375043],[124.57714843749997,10.026708984374991],[124.59384765625006,9.787207031249963]]],[[[125.69023437500007,9.914453125000037],[125.49482421875004,10.118701171875003],[125.66679687500002,10.440136718750026],[125.69023437500007,9.914453125000037]]],[[[119.91621093750004,10.485986328125037],[119.79316406250004,10.455273437499997],[119.85205078124997,10.64013671875],[120.00839843750012,10.570117187500031],[119.91621093750004,10.485986328125037]]],[[[122.64951171875012,10.472705078125003],[122.53837890625002,10.424951171875037],[122.5375,10.607568359375023],[122.70126953125006,10.740625],[122.64951171875012,10.472705078125003]]],[[[123.13085937500003,9.064111328124994],[122.99472656250006,9.058837890624986],[122.8666015625,9.319824218750043],[122.5625,9.482812500000037],[122.39951171875006,9.823046874999989],[122.47148437500007,9.961523437500034],[122.85556640625006,10.0869140625],[122.81699218750012,10.503808593750023],[122.98330078125,10.886621093750037],[123.25664062500007,10.99394531249996],[123.51064453125005,10.923046875],[123.5675781250001,10.780761718750057],[123.16201171875,9.864257812500028],[123.1498046875,9.606152343750026],[123.32050781250004,9.27294921875],[123.13085937500003,9.064111328124994]]],[[[123.37031250000004,9.449609375000023],[123.38623046874997,9.967089843750017],[124.03886718750002,11.273535156249991],[124.00498046875012,10.40009765625004],[123.70048828125007,10.128320312500009],[123.37031250000004,9.449609375000023]]],[[[123.75703125000004,11.28330078125002],[123.815625,11.15073242187502],[123.73671875,11.151464843749991],[123.75703125000004,11.28330078125002]]],[[[117.31113281250012,8.439599609375051],[117.21855468750007,8.367285156249963],[117.34990234375002,8.713574218749997],[119.22382812500004,10.477294921875043],[119.30566406250003,10.9736328125],[119.55332031250012,11.31352539062496],[119.52666015625002,10.953173828125003],[119.68691406250005,10.500341796875034],[119.36933593750004,10.327294921875037],[119.19150390625012,10.061083984374989],[118.78212890625005,9.91611328125002],[118.4349609375,9.256005859375009],[117.31113281250012,8.439599609375051]]],[[[119.86142578125006,11.52534179687504],[119.83066406250012,11.375683593750011],[119.72998046874997,11.431933593750017],[119.86142578125006,11.52534179687504]]],[[[124.574609375,11.343066406250031],[124.92998046875002,11.372851562499974],[125.02656250000004,11.21171875],[125.01318359374997,10.785693359374989],[125.26845703125005,10.307714843750048],[125.14257812499997,10.189453125000028],[124.9875,10.36757812499998],[125.02656250000004,10.033105468749966],[124.78076171874997,10.16806640625002],[124.78671875000012,10.781396484375009],[124.66269531250006,10.961962890625017],[124.44550781250004,10.923583984375014],[124.33066406250012,11.535205078125003],[124.574609375,11.343066406250031]]],[[[124.60839843750003,11.492187500000043],[124.48349609375006,11.485839843749986],[124.36035156250003,11.665917968749994],[124.5109375000001,11.687109375000048],[124.60839843750003,11.492187500000043]]],[[[122.49619140625006,11.615087890625034],[122.83808593750004,11.595654296874983],[122.89453125000003,11.44130859374998],[123.15830078125012,11.53554687499999],[123.11953125,11.286816406250026],[122.8029296875001,10.99003906249996],[122.76992187500005,10.823828125000034],[121.95400390625,10.444384765625003],[122.10351562499997,11.64291992187502],[121.91601562499997,11.854345703125006],[122.02919921875005,11.895410156250023],[122.49619140625006,11.615087890625034]]],[[[120.03876953125004,11.703320312499969],[119.94492187500006,11.690722656249989],[119.86093750000006,11.953955078124963],[120.03593750000002,11.917236328125028],[120.03876953125004,11.703320312499969]]],[[[120.1,12.167675781249983],[120.22822265625004,12.219824218750034],[120.31455078125012,12.012402343749969],[120.01054687500002,12.008251953125011],[119.88574218749997,12.299853515625003],[120.1,12.167675781249983]]],[[[122.65449218750004,12.309033203125011],[122.42294921875006,12.455078125],[122.60361328125006,12.49160156249998],[122.65449218750004,12.309033203125011]]],[[[125.23955078125002,12.527880859375003],[125.32021484375,12.321826171875031],[125.53564453125003,12.191406250000028],[125.49179687500006,11.594335937499977],[125.57353515625002,11.238232421874997],[125.73564453125002,11.049609375000017],[125.23339843749997,11.145068359375017],[125.03427734375012,11.341259765625026],[124.91699218750003,11.558398437500031],[124.99501953125,11.764941406250003],[124.445703125,12.152783203124969],[124.29472656250007,12.569335937500014],[125.23955078125002,12.527880859375003]]],[[[123.71660156250007,12.287353515625028],[124.04033203125002,11.966796875],[124.04550781250012,11.752441406250028],[123.47373046875006,12.21665039062502],[123.15781250000012,11.925634765624963],[123.23642578125012,12.583496093750057],[123.71660156250007,12.287353515625028]]],[[[122.09404296875002,12.354882812500023],[122.01396484375002,12.105615234375037],[121.9232421875,12.331298828125014],[122.00156250000006,12.598535156250009],[122.14501953124997,12.652636718750017],[122.09404296875002,12.354882812500023]]],[[[123.77539062499997,12.453906250000031],[123.77910156250002,12.366259765625031],[123.62148437500005,12.67490234375002],[123.77539062499997,12.453906250000031]]],[[[123.28183593750006,12.85341796874998],[123.36718750000003,12.70083007812498],[122.95751953124997,13.107177734374986],[123.28183593750006,12.85341796874998]]],[[[120.70439453125002,13.479492187499986],[121.20273437500006,13.432324218749969],[121.52275390625007,13.131201171874991],[121.540625,12.63818359375],[121.39433593750002,12.300585937499974],[121.23671875000005,12.218798828125003],[120.92216796875002,12.51162109374998],[120.65136718749997,13.169140625],[120.33847656250012,13.412353515624986],[120.40126953125,13.517041015624997],[120.70439453125002,13.479492187499986]]],[[[121.91484375000002,13.540332031250031],[122.11455078125002,13.463183593750031],[122.00488281249997,13.204980468750009],[121.82919921875006,13.328613281249972],[121.91484375000002,13.540332031250031]]],[[[124.35361328125006,13.632226562500009],[124.17539062500012,13.531542968750017],[124.03886718750002,13.663134765625003],[124.22490234375007,14.077587890624969],[124.41718750000004,13.871044921874997],[124.35361328125006,13.632226562500009]]],[[[122.03349609375002,15.005029296875009],[121.93300781250005,14.656054687500045],[121.83984374999997,15.038134765625003],[122.03349609375002,15.005029296875009]]],[[[121.10156249999997,18.615283203125017],[121.84560546875,18.29541015625003],[122.03847656250005,18.32792968749999],[122.14667968750004,18.486572265625],[122.26552734375005,18.458837890625034],[122.15234374999997,17.664404296875006],[122.51914062500012,17.124853515625034],[122.13515625000005,16.18481445312503],[121.59531250000012,15.933251953125023],[121.60703125000006,15.669824218749994],[121.39228515625004,15.324414062499969],[121.69541015625006,14.7373046875],[121.62792968749997,14.581152343749977],[121.76660156249997,14.16806640625002],[122.21171875000002,13.930175781250057],[122.2875,13.996191406250006],[122.19970703125003,14.148046875000034],[122.6271484375001,14.317529296875009],[122.93417968750012,14.18808593750002],[123.101953125,13.750244140624986],[123.29697265625012,13.836425781250043],[123.32031249999997,14.061669921875023],[123.81572265625002,13.837109375000011],[123.80625000000012,13.721728515625045],[123.54960937500007,13.645751953125014],[123.81923828125,13.269482421875011],[123.78515625000003,13.110546875000054],[124.14277343750004,13.035791015625009],[124.0597656250001,12.567089843749997],[123.87783203125005,12.689697265625014],[123.94853515625007,12.916406250000023],[123.31093750000005,13.044091796875009],[123.16328125000004,13.44174804687502],[122.59521484374997,13.90761718749998],[122.46796875000004,13.886718749999986],[122.66787109375,13.395361328124991],[122.59990234375002,13.194140625000031],[122.37656250000012,13.520605468750006],[121.77792968750006,13.93764648437498],[121.50107421875006,13.8421875],[121.344140625,13.649121093749997],[121.09550781250007,13.679492187500045],[120.84072265625,13.884716796875026],[120.637109375,13.804492187500031],[120.61679687500006,14.188037109375003],[120.9220703125001,14.493115234374983],[120.94130859375,14.645068359375031],[120.58369140625004,14.88125],[120.58867187500002,14.483105468749983],[120.43876953125002,14.453369140624972],[120.25078125000002,14.793310546875034],[120.08212890625012,14.851074218749986],[119.77255859375012,16.25512695312503],[119.83076171875004,16.326562500000023],[120.15976562500012,16.047656250000045],[120.36875,16.109570312499955],[120.35839843749997,17.63818359375],[120.59970703125012,18.507861328125074],[121.10156249999997,18.615283203125017]]],[[[121.92167968750007,18.89472656250001],[121.82519531250003,18.842724609374983],[121.94335937500003,19.010449218749955],[121.92167968750007,18.89472656250001]]],[[[121.52089843750005,19.361962890624994],[121.53125,19.271337890625006],[121.37460937500006,19.356298828124977],[121.52089843750005,19.361962890624994]]]]},"properties":{"name":"Philippines","childNum":37}},{"geometry":{"type":"Polygon","coordinates":[[[134.5954101562501,7.382031249999969],[134.51572265625012,7.525781250000037],[134.65117187500002,7.712109374999983],[134.5954101562501,7.382031249999969]]]},"properties":{"name":"Palau","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[153.53613281249997,-11.476171874999949],[153.75986328125006,-11.586328125],[153.55371093749997,-11.630566406249969],[153.28681640625004,-11.516992187500009],[153.20361328124997,-11.32412109374998],[153.53613281249997,-11.476171874999949]]],[[[154.28076171874997,-11.36142578125002],[154.12119140625006,-11.425683593749966],[154.02343750000003,-11.347949218750031],[154.28076171874997,-11.36142578125002]]],[[[150.89873046875002,-10.565332031250023],[150.88466796875,-10.643457031250037],[150.78574218750006,-10.603417968749966],[150.89873046875002,-10.565332031250023]]],[[[151.08095703125,-10.020117187499963],[151.29648437500012,-9.956738281250026],[151.230859375,-10.194726562500009],[150.95917968750004,-10.092578124999989],[150.77607421875004,-9.70908203125002],[151.08095703125,-10.020117187499963]]],[[[150.52841796875006,-9.34658203124998],[150.78867187500006,-9.417968749999957],[150.89404296875003,-9.667480468749986],[150.43623046875004,-9.624609374999949],[150.5084960937501,-9.536132812499957],[150.43730468750007,-9.359960937500034],[150.52841796875006,-9.34658203124998]]],[[[150.3454101562501,-9.493847656249955],[150.10976562500005,-9.361914062499991],[150.20830078125002,-9.206347656250003],[150.32011718750007,-9.264160156249972],[150.3454101562501,-9.493847656249955]]],[[[152.63095703125012,-8.959375],[152.95292968750007,-9.07011718749996],[152.96689453125006,-9.208984375000014],[152.51513671874997,-9.009863281250034],[152.63095703125012,-8.959375]]],[[[151.10683593750005,-8.733496093749949],[151.12412109375012,-8.804882812500011],[151.00498046875006,-8.523828124999952],[151.117578125,-8.41884765624998],[151.10683593750005,-8.733496093749949]]],[[[143.58681640625005,-8.481738281250003],[143.321875,-8.367578125],[143.5814453125,-8.390917968749974],[143.58681640625005,-8.481738281250003]]],[[[148.02578125,-5.826367187500011],[147.78105468750007,-5.627246093749946],[147.7946289062501,-5.492382812500011],[148.05478515625006,-5.61152343750004],[148.02578125,-5.826367187500011]]],[[[155.95761718750006,-6.686816406249989],[155.71933593750012,-6.862792968749957],[155.34404296875007,-6.721679687499986],[155.20214843750003,-6.3076171875],[154.75927734375003,-5.931347656249997],[154.72929687500002,-5.444433593750006],[155.09384765625006,-5.620214843750034],[155.46699218750004,-6.145117187500034],[155.82255859375002,-6.38046875000002],[155.95761718750006,-6.686816406249989]]],[[[147.17626953124997,-5.431933593749946],[147.00585937499997,-5.30703125],[147.1310546875001,-5.190820312500037],[147.17626953124997,-5.431933593749946]]],[[[154.64726562500002,-5.43271484375002],[154.54003906250003,-5.11083984375],[154.63261718750007,-5.013867187499955],[154.72714843750006,-5.218066406249989],[154.64726562500002,-5.43271484375002]]],[[[146.01933593750007,-4.726171874999963],[145.88359375000007,-4.66748046875],[145.9958007812501,-4.539257812499983],[146.01933593750007,-4.726171874999963]]],[[[151.915625,-4.296777343749966],[152.11718749999997,-4.212207031249974],[152.40566406250005,-4.340722656249952],[152.35117187500006,-4.82216796874998],[151.98369140625007,-5.07441406250004],[152.14296875,-5.357031249999963],[152.07705078125,-5.458300781249989],[151.86542968750004,-5.564843750000023],[151.51513671874997,-5.552343749999963],[151.22929687500002,-5.919921874999986],[150.47353515625,-6.263378906249969],[149.65253906250004,-6.290429687499966],[149.38232421874997,-6.078125],[149.0990234375,-6.116992187499989],[148.33720703125007,-5.669433593750014],[148.43203125,-5.471777343749991],[149.35888671875003,-5.583984375000014],[149.8314453125,-5.524121093749997],[149.96279296875,-5.447753906249972],[150.0900390625001,-5.011816406249977],[150.1703125,-5.070605468749974],[150.0724609375001,-5.309570312499986],[150.18310546874997,-5.523632812499983],[150.90029296875005,-5.447167968750037],[151.32656250000005,-4.96035156249998],[151.67119140625007,-4.88330078125],[151.59306640625007,-4.200781249999949],[151.915625,-4.296777343749966]]],[[[152.67060546875004,-3.13339843750002],[152.64619140625004,-3.221191406249957],[152.54326171875002,-3.095605468749952],[152.63876953125012,-3.042773437500031],[152.67060546875004,-3.13339843750002]]],[[[140.97617187500012,-9.11875],[140.97519531250006,-6.90537109375002],[140.86230468749997,-6.740039062499989],[140.975,-6.346093750000023],[140.97353515625,-2.803417968750026],[140.97343750000007,-2.609765625],[142.90517578125,-3.32070312499998],[143.50898437500004,-3.431152343750014],[144.06640625000003,-3.80517578125],[144.4777343750001,-3.82529296875002],[145.08779296875,-4.349121093749972],[145.33457031250012,-4.385253906249972],[145.7669921875,-4.823046874999989],[145.74521484375012,-5.402441406249977],[147.56669921875002,-6.056933593750003],[147.80205078125002,-6.31523437499996],[147.84550781250007,-6.662402343749989],[147.11914062499997,-6.721679687499986],[146.95361328124997,-6.834082031249963],[147.19003906250012,-7.378125],[148.12675781250007,-8.103613281249963],[148.246875,-8.554296875000034],[148.45117187499997,-8.694531250000011],[148.58310546875006,-9.051757812499957],[149.19833984375006,-9.03125],[149.26318359374997,-9.497851562499974],[150.01103515625007,-9.688183593750026],[149.76123046874997,-9.805859375000011],[149.87441406250005,-10.012988281250031],[150.84951171875,-10.236035156249997],[150.44609375000007,-10.30732421875004],[150.6471679687501,-10.517968749999966],[150.31992187500012,-10.654882812499963],[150.0167968750001,-10.577148437500028],[149.75410156250004,-10.353027343750028],[147.76865234375012,-10.070117187500031],[147.01718750000006,-9.38789062500004],[146.96376953125,-9.059570312499943],[146.63085937499997,-8.951171874999972],[146.03320312499997,-8.076367187500011],[144.97382812500004,-7.802148437500009],[144.86425781249997,-7.631542968749983],[144.50986328125006,-7.567382812499972],[144.14287109375007,-7.757226562500009],[143.65488281250012,-7.460351562500009],[143.94228515625005,-7.944238281250009],[143.8333984375,-8.029101562499974],[143.51816406250006,-8.000683593749955],[143.61376953125003,-8.200390624999969],[142.52412109375004,-8.32167968749998],[142.34746093750002,-8.167480468750014],[142.20683593750002,-8.195800781250014],[142.47480468750004,-8.369433593750031],[142.79794921875006,-8.345019531250031],[143.11181640624997,-8.474511718750037],[143.37724609375007,-8.762207031250028],[143.36621093750003,-8.961035156250034],[142.6471679687501,-9.327832031249969],[142.22958984375012,-9.169921874999957],[141.13320312500005,-9.221289062500034],[140.97617187500012,-9.11875]]],[[[152.96582031249997,-4.756347656249986],[152.89169921875006,-4.832421875000023],[152.73994140625004,-4.635839843750034],[152.66816406250004,-4.131835937500028],[152.27939453125006,-3.582421875],[151.06679687500005,-2.829003906249994],[150.74609374999997,-2.73886718750002],[150.8253906250001,-2.572949218749969],[152.03291015625004,-3.25136718749998],[153.01679687500004,-4.105664062500026],[153.1325195312501,-4.352441406250037],[152.96582031249997,-4.756347656249986]]],[[[150.43662109375012,-2.66181640625004],[150.16572265625004,-2.660253906249991],[149.96162109375004,-2.473828125000026],[150.22714843750006,-2.384179687499966],[150.42949218750007,-2.47041015625004],[150.43662109375012,-2.66181640625004]]],[[[147.06757812500004,-1.96015625],[147.43808593750012,-2.05898437499998],[147.20634765625007,-2.181933593749974],[146.54648437500012,-2.20859375],[146.65625,-1.97402343749998],[147.06757812500004,-1.96015625]]],[[[149.76542968750007,-1.553027343750017],[149.54589843749997,-1.471679687499957],[149.58095703125005,-1.353222656249983],[149.76542968750007,-1.553027343750017]]]]},"properties":{"name":"Papua New Guinea","childNum":21}},{"geometry":{"type":"Polygon","coordinates":[[[23.484667968750017,53.939794921875],[23.915429687500023,52.770263671875],[23.175097656250017,52.28662109375],[23.652441406250006,52.040380859375],[23.605273437500017,51.517919921875],[23.664453125000023,51.31005859375],[24.095800781250006,50.87275390625],[23.9970703125,50.809375],[24.089941406250006,50.53046875],[23.97265625,50.410058593749994],[23.711718750000017,50.37734375],[23.03632812500001,49.899072265624994],[22.706152343750006,49.606201171875],[22.6494140625,49.539013671875],[22.66064453125,49.483691406249996],[22.71992187500001,49.353808593749996],[22.732421875,49.295166015625],[22.705664062500006,49.171191406249996],[22.847070312500023,49.08125],[22.538671875,49.072705078125],[22.473046875000023,49.081298828125],[22.020117187500006,49.209521484374996],[21.6396484375,49.411962890625],[21.079394531250017,49.418261718749996],[20.868457031250017,49.314697265625],[20.36298828125001,49.38525390625],[20.0576171875,49.181298828124994],[19.756640625000017,49.204394531249996],[19.77392578125,49.37216796875],[19.44160156250001,49.597705078124996],[19.1494140625,49.4],[18.83222656250001,49.510791015624996],[18.562402343750023,49.879345703125],[18.0283203125,50.03525390625],[17.874804687500017,49.972265625],[17.627050781250006,50.11640625],[17.702246093750006,50.307177734374996],[17.41523437500001,50.254785156249994],[16.88007812500001,50.427050781249996],[16.989648437500023,50.2369140625],[16.63916015625,50.1021484375],[16.210351562500023,50.423730468749994],[16.419726562500017,50.573632812499994],[16.2822265625,50.655615234375],[16.007226562500023,50.611621093749996],[14.99375,51.01435546875],[14.98291015625,50.886572265625],[14.895800781250017,50.861376953124996],[14.809375,50.858984375],[14.814257812500017,50.871630859374996],[14.91748046875,51.008740234375],[14.9638671875,51.095117187499994],[14.935546875,51.435351562499996],[14.905957031250011,51.463330078125],[14.724707031250006,51.523876953125],[14.7109375,51.544921875],[14.738671875000023,51.6271484375],[14.601660156250006,51.832373046875],[14.752539062500006,52.081835937499996],[14.679882812500011,52.25],[14.615625,52.277636718749996],[14.573925781250011,52.31416015625],[14.554589843750023,52.359667968749996],[14.569726562500023,52.431103515625],[14.619433593750017,52.528515625],[14.514062500000023,52.64560546875],[14.253710937500017,52.782519531249996],[14.128613281250011,52.878222656249996],[14.138867187500011,52.932861328125],[14.293164062500011,53.0267578125],[14.368554687500023,53.10556640625],[14.410937500000017,53.199023437499996],[14.412304687500011,53.216748046875],[14.41455078125,53.283496093749996],[14.258886718750006,53.729638671875],[14.58349609375,53.63935546875],[14.558398437500017,53.823193359375],[14.21142578125,53.950341796875],[16.186328125000017,54.290380859375],[16.55976562500001,54.55380859375],[18.32343750000001,54.838183593749996],[18.75927734375,54.6845703125],[18.43623046875001,54.7447265625],[18.83642578125,54.369580078125],[19.604394531250023,54.4591796875],[20.20820312500001,54.420751953125],[22.16845703125,54.35986328125],[22.731835937500023,54.35009765625],[22.766210937500006,54.356787109375],[22.82373046875,54.395800781249996],[22.893945312500023,54.39052734375],[22.97675781250001,54.366357421875],[23.015527343750023,54.34833984375],[23.04218750000001,54.30419921875],[23.0875,54.299462890625],[23.170312500000023,54.2814453125],[23.282324218750006,54.24033203125],[23.3701171875,54.200488281249996],[23.45361328125,54.14345703125],[23.484667968750017,53.939794921875]]]},"properties":{"name":"Poland","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-65.42558593749999,18.105615234374994],[-65.57221679687493,18.137304687499977],[-65.29487304687501,18.133349609375045],[-65.42558593749999,18.105615234374994]]],[[[-66.12939453125003,18.444921875000034],[-65.62880859375,18.381396484375045],[-65.62084960937497,18.242333984374966],[-65.97080078124995,17.974365234375],[-67.196875,17.994189453125045],[-67.2640625,18.364599609375006],[-67.15864257812501,18.499218749999983],[-66.12939453125003,18.444921875000034]]]]},"properties":{"name":"Puerto Rico","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[130.52695312500012,42.535400390625],[130.68730468750007,42.30253906249999],[130.2357421875,42.183203125000034],[129.75634765624997,41.712255859375006],[129.70869140625004,40.857324218749994],[129.34111328125002,40.72631835937506],[128.51123046874997,40.130224609375006],[127.56816406250002,39.78198242187503],[127.39453125000003,39.207910156249966],[127.78613281250003,39.084130859374966],[128.37460937500012,38.6234375],[128.03896484375,38.30854492187498],[127.09033203125003,38.28388671875001],[126.63388671875012,37.78183593750006],[126.36992187500007,37.87836914062501],[126.11669921875003,37.74291992187503],[125.76914062500006,37.98535156250003],[125.35781250000005,37.72480468749998],[125.31074218750004,37.843505859375],[124.98876953124997,37.93144531249999],[125.2067382812501,38.08154296875],[124.69091796874997,38.12919921875002],[125.06738281250003,38.556738281250006],[125.55449218750002,38.68623046875001],[125.16884765625,38.80551757812506],[125.40966796875003,39.28837890625002],[125.36083984375003,39.52661132812497],[124.77529296875,39.75805664062506],[124.63828125000006,39.61508789062506],[124.36210937500002,40.004052734374994],[124.8893554687501,40.459814453125006],[125.98906250000002,40.904638671875034],[126.74306640625,41.724853515625],[126.95478515625004,41.76948242187501],[127.17968750000003,41.531347656250006],[128.14941406249997,41.38774414062496],[128.28925781250004,41.60742187500006],[128.04521484375007,41.9875],[128.92343750000006,42.038232421874966],[129.3136718750001,42.41357421874997],[129.69785156250012,42.448144531249994],[129.89824218750002,42.998144531250034],[130.24033203125006,42.891796874999955],[130.24667968750012,42.744824218749955],[130.52695312500012,42.535400390625]]]},"properties":{"name":"Dem. Rep. Korea","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-17.190869140624926,32.86860351562498],[-16.693261718749966,32.75800781250001],[-17.018261718749926,32.66279296874998],[-17.226025390624983,32.76684570312503],[-17.190869140624926,32.86860351562498]]],[[[-25.64897460937499,37.840917968750006],[-25.18193359374996,37.837890625],[-25.19072265624999,37.764355468749955],[-25.73447265624992,37.76289062500001],[-25.845898437499983,37.89404296875],[-25.64897460937499,37.840917968750006]]],[[[-28.14726562499996,38.45268554687502],[-28.064794921875034,38.412744140624966],[-28.454492187500023,38.40864257812504],[-28.54882812499997,38.51855468750003],[-28.14726562499996,38.45268554687502]]],[[[-28.641308593749983,38.525],[-28.842041015625,38.5984375],[-28.69775390625,38.638476562500045],[-28.641308593749983,38.525]]],[[[-27.07524414062496,38.643457031249994],[-27.38593750000001,38.765820312499955],[-27.127001953125017,38.78984375],[-27.07524414062496,38.643457031249994]]],[[[-31.137109374999937,39.40693359375001],[-31.282958984375,39.39409179687496],[-31.260839843750034,39.49677734375001],[-31.137109374999937,39.40693359375001]]],[[[-7.406152343749937,37.17944335937497],[-7.834130859374994,37.005712890625034],[-8.597656249999943,37.12133789062506],[-8.997802734375028,37.03227539062502],[-8.814160156249983,37.43081054687502],[-8.881103515624943,38.44667968750005],[-8.668310546874949,38.42431640625003],[-8.798876953124989,38.518164062500034],[-9.213281249999937,38.44809570312498],[-9.250390624999966,38.65673828125003],[-9.021484374999943,38.746875],[-8.79160156249992,39.07817382812502],[-9.13579101562496,38.74277343749998],[-9.35673828124996,38.697900390624994],[-9.479736328124972,38.79877929687501],[-9.374755859374972,39.338281249999966],[-8.837841796874926,40.11567382812498],[-8.684619140624989,40.75253906250006],[-8.755419921874932,41.69838867187502],[-8.887597656249937,41.76459960937501],[-8.777148437500017,41.941064453124994],[-8.266064453124983,42.13740234375001],[-8.152490234374937,41.81196289062498],[-7.40361328124996,41.833691406249955],[-7.147119140625023,41.98115234374998],[-6.61826171874992,41.9423828125],[-6.542187499999955,41.672509765624994],[-6.2125,41.53203125],[-6.928466796874972,41.009130859375006],[-6.8101562499999,40.343115234375034],[-7.032617187499966,40.16791992187498],[-6.896093749999949,40.02182617187506],[-6.975390624999932,39.79838867187502],[-7.117675781249972,39.681689453125045],[-7.53569335937496,39.66157226562501],[-6.997949218749994,39.05644531250002],[-7.343017578124943,38.45742187500002],[-7.106396484374983,38.181005859375006],[-6.957568359374932,38.18789062499999],[-7.44394531249992,37.72827148437497],[-7.406152343749937,37.17944335937497]]]]},"properties":{"name":"Portugal","childNum":7,"cp":[-8.7440694,39.9251454]}},{"geometry":{"type":"Polygon","coordinates":[[[-58.15976562499999,-20.164648437500006],[-58.13779296874999,-20.2373046875],[-58.12460937499999,-20.29345703125],[-58.09150390625,-20.33320312500001],[-58.05844726562499,-20.38613281250001],[-58.025390625,-20.415820312500003],[-58.00224609374999,-20.465429687500006],[-57.97905273437499,-20.657324218750006],[-57.91513671874999,-20.69033203125001],[-57.830224609374994,-20.99794921875001],[-57.94267578124999,-21.79833984375],[-57.95590820312499,-22.109179687500003],[-56.77519531249999,-22.261328125],[-56.44780273437499,-22.076171875],[-56.39487304687499,-22.09267578125001],[-56.35185546874999,-22.17861328125001],[-56.246044921875,-22.2646484375],[-56.18984375,-22.28115234375001],[-55.99140625,-22.28115234375001],[-55.84916992187499,-22.3076171875],[-55.75327148437499,-22.41015625],[-55.74663085937499,-22.5126953125],[-55.61767578125,-22.671484375],[-55.53828125,-23.58095703125001],[-55.518457031249994,-23.627246093750003],[-55.458886718749994,-23.68671875000001],[-55.4423828125,-23.792578125],[-55.4423828125,-23.865332031250006],[-55.415917968749994,-23.95136718750001],[-55.36630859374999,-23.991015625],[-55.28691406249999,-24.004296875],[-55.1943359375,-24.01748046875001],[-55.08188476562499,-23.99765625],[-54.982666015625,-23.97451171875001],[-54.62548828125,-23.8125],[-54.44023437499999,-23.90175781250001],[-54.37080078125,-23.97119140625],[-54.24179687499999,-24.047265625],[-54.281005859375,-24.30605468750001],[-54.43623046875,-25.12128906250001],[-54.47314453125,-25.22021484375],[-54.610546875,-25.432714843750006],[-54.615869140624994,-25.57607421875001],[-54.63193359374999,-26.00576171875001],[-54.677734375,-26.30878906250001],[-54.934472656249994,-26.70253906250001],[-55.1359375,-26.93115234375],[-55.426660156249994,-27.00927734375],[-55.450634765625,-27.068359375],[-55.496728515624994,-27.115332031250006],[-55.564892578125,-27.15],[-55.59726562499999,-27.207617187500006],[-55.59379882812499,-27.2880859375],[-55.63291015624999,-27.35712890625001],[-55.71464843749999,-27.41484375],[-55.789990234375,-27.41640625],[-55.95146484374999,-27.32568359375],[-56.1640625,-27.32148437500001],[-56.437158203124994,-27.553808593750006],[-58.16826171874999,-27.2734375],[-58.60483398437499,-27.31435546875001],[-58.641748046874994,-27.19609375],[-58.618603515625,-27.132128906250003],[-58.222070312499994,-26.65],[-58.18149414062499,-26.307421875],[-57.943115234375,-26.05292968750001],[-57.563134765624994,-25.473730468750006],[-57.821679687499994,-25.13642578125001],[-59.187255859375,-24.562304687500003],[-59.892480468749994,-24.093554687500003],[-60.83984375,-23.85810546875001],[-61.084716796875,-23.65644531250001],[-61.79853515625,-23.18203125],[-62.21416015624999,-22.612402343750006],[-62.372509765625,-22.43916015625001],[-62.54155273437499,-22.349609375],[-62.6259765625,-22.29042968750001],[-62.62568359375,-22.261523437500003],[-62.65097656249999,-22.233691406250003],[-62.27666015624999,-21.066015625],[-62.276318359375,-20.5625],[-61.7568359375,-19.6453125],[-60.00737304687499,-19.29755859375001],[-59.09052734375,-19.286230468750006],[-58.18017578125,-19.81787109375],[-58.15976562499999,-20.164648437500006]]]},"properties":{"name":"Paraguay","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[34.34833984375004,31.292919921874955],[34.2453125000001,31.208300781250045],[34.2125,31.292285156250017],[34.198144531249994,31.322607421875063],[34.47734375000002,31.584863281250023],[34.52412109375004,31.541650390624994],[34.5255859375001,31.52563476562503],[34.34833984375004,31.292919921874955]]],[[[34.88046875,31.3681640625],[34.950976562500074,31.60229492187503],[35.20371093750006,31.75],[35.1271484375001,31.816748046875006],[35.05322265625003,31.83793945312496],[34.983007812500006,31.816796875000023],[34.9611328125001,31.823339843750006],[34.95380859375004,31.84125976562504],[34.98974609374997,31.913281249999955],[34.955957031249994,32.1609375],[35.01054687500002,32.33818359375002],[35.06503906250006,32.46044921875006],[35.19326171875005,32.53442382812503],[35.303808593750006,32.512939453125],[35.38671875000003,32.493017578125034],[35.402636718750074,32.45063476562501],[35.484375,32.40166015624999],[35.5514648437501,32.39550781250006],[35.57207031250002,32.237890625],[35.450585937499994,31.479296875000017],[34.88046875,31.3681640625]]]]},"properties":{"name":"Palestine","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-149.321533203125,-17.690039062499963],[-149.177685546875,-17.736621093750045],[-149.18178710937497,-17.86230468749997],[-149.34111328125,-17.732421874999986],[-149.57890624999993,-17.734960937499963],[-149.635009765625,-17.564257812500003],[-149.37919921874993,-17.522363281249994],[-149.321533203125,-17.690039062499963]]],[[[-143.44057617187497,-16.619726562499963],[-143.38618164062498,-16.668847656250023],[-143.55068359375002,-16.62109374999997],[-143.44057617187497,-16.619726562499963]]],[[[-139.02431640624997,-9.695214843750037],[-138.82734375,-9.74160156249998],[-139.13408203124996,-9.829492187500037],[-139.02431640624997,-9.695214843750037]]],[[[-140.075634765625,-9.425976562499983],[-140.14438476562498,-9.359375],[-140.07094726562497,-9.328125],[-140.075634765625,-9.425976562499983]]],[[[-140.07260742187503,-8.910449218750031],[-140.21743164062497,-8.929687499999957],[-140.24003906249993,-8.79755859375004],[-140.057666015625,-8.801464843750026],[-140.07260742187503,-8.910449218750031]]]]},"properties":{"name":"Fr. Polynesia","childNum":5}},{"geometry":{"type":"Polygon","coordinates":[[[51.26796875000002,24.607226562500003],[51.17802734375002,24.58671875],[51.093359375,24.564648437499997],[51.02275390625002,24.565234375],[50.96601562500001,24.573925781249997],[50.928320312500006,24.595117187499994],[50.85566406250001,24.679638671874997],[50.80439453125001,24.789257812499997],[50.8359375,24.850390625],[50.846777343750006,24.888574218749994],[50.75458984375001,25.39926757812499],[51.003125,25.9814453125],[51.262304687500006,26.153271484374997],[51.543066406250006,25.902392578125003],[51.4853515625,25.524707031250003],[51.60888671875,25.052880859374994],[51.42792968750001,24.668261718750003],[51.26796875000002,24.607226562500003]]]},"properties":{"name":"Qatar","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.2125,45.450439453125],[28.317675781250017,45.347119140625],[28.451269531250006,45.2921875],[28.78828125000001,45.240966796875],[28.78173828125,45.309863281249996],[28.894335937500017,45.289941406249994],[29.223535156250023,45.4029296875],[29.403710937500023,45.419677734375],[29.567675781250017,45.37080078125],[29.705859375000017,45.259912109374994],[29.557519531250023,44.843408203124994],[29.048242187500023,44.757568359375],[29.0953125,44.975048828125],[28.891503906250023,44.91865234375],[28.585351562500023,43.742236328124996],[28.221972656250017,43.772851562499994],[27.88427734375,43.987353515624996],[27.425390625,44.0205078125],[27.0869140625,44.167382812499994],[26.2158203125,44.007275390625],[25.4970703125,43.670800781249994],[22.919042968750006,43.83447265625],[22.868261718750006,43.947900390624994],[23.02851562500001,44.077978515625],[22.705078125,44.23779296875],[22.687890625000023,44.248291015625],[22.494531250000023,44.435449218749994],[22.554003906250017,44.540332031249996],[22.6201171875,44.562353515625],[22.70078125,44.555517578125],[22.734375,44.569921875],[22.72089843750001,44.605517578124996],[22.64208984375,44.6509765625],[22.49765625,44.70625],[22.350683593750006,44.676123046875],[22.200976562500017,44.560693359374994],[22.093066406250017,44.541943359375],[21.909277343750006,44.66611328125],[21.636132812500023,44.71044921875],[21.52314453125001,44.790087890624996],[21.36005859375001,44.82666015625],[21.35791015625,44.86181640625],[21.384375,44.870068359375],[21.442187500000017,44.873388671875],[21.519921875000023,44.880810546875],[21.532324218750006,44.900683593749996],[21.35703125,44.990771484374996],[21.465429687500006,45.171875],[21.431445312500017,45.192529296874994],[20.794042968750006,45.46787109375],[20.775,45.749804687499996],[20.760156250000023,45.758105468749996],[20.746875,45.748974609375],[20.727832031250017,45.73740234375],[20.709277343750017,45.735253906249994],[20.652734375000023,45.77939453125],[20.581152343750006,45.869482421875],[20.35859375000001,45.975488281249994],[20.241796875,46.10859375],[20.28095703125001,46.1330078125],[20.508105468750017,46.166943359375],[20.613671875000023,46.13349609375],[20.76025390625,46.246240234374994],[21.121679687500006,46.282421875],[21.99970703125001,47.505029296874994],[22.87666015625001,47.947265625],[23.054785156250006,48.00654296875],[23.139453125000017,48.08740234375],[23.20263671875,48.084521484374996],[23.408203125,47.989990234375],[23.628710937500017,47.995849609375],[24.578906250000017,47.931054687499994],[24.979101562500006,47.72412109375],[25.464257812500023,47.910791015624994],[25.689257812500017,47.932470703125],[25.90869140625,47.967578125],[26.162695312500006,47.992529296875],[26.236230468750023,48.064355468749994],[26.276953125,48.113232421875],[26.3056640625,48.203759765624994],[26.4423828125,48.22998046875],[26.618945312500017,48.25986328125],[26.980761718750017,48.155029296875],[27.614062500000017,47.34052734375],[28.07177734375,46.978417968749994],[28.23945312500001,46.6408203125],[28.07470703125,45.598974609375],[28.2125,45.450439453125]]]},"properties":{"name":"Romania","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[146.71396484375012,43.743798828124994],[146.62197265625,43.81298828125006],[146.88408203125002,43.82915039062496],[146.71396484375012,43.743798828124994]]],[[[146.20761718750006,44.49765625],[146.5677734375,44.44042968749997],[145.91406249999997,44.10371093750004],[145.58681640625,43.84511718750002],[145.5558593750001,43.66459960937502],[145.46171875000007,43.870898437500045],[146.20761718750006,44.49765625]]],[[[148.59951171875,45.317626953125],[147.91376953125004,44.99038085937502],[147.65781250000012,44.97714843749998],[146.89746093750003,44.404296875],[147.24658203124997,44.856054687500006],[147.88554687500007,45.22563476562499],[147.9240234375001,45.38330078125006],[148.05605468750005,45.26210937500005],[148.32421874999997,45.28242187500001],[148.8122070312501,45.510009765625],[148.83710937500004,45.36269531250002],[148.59951171875,45.317626953125]]],[[[149.68769531250004,45.64204101562501],[149.44707031250002,45.593359375000034],[149.9623046875,46.02192382812504],[150.553125,46.208544921875045],[149.68769531250004,45.64204101562501]]],[[[152.00205078125006,46.89716796874998],[151.72343750000007,46.82880859375001],[152.28886718750007,47.1421875],[152.00205078125006,46.89716796874998]]],[[[154.81044921875005,49.31201171875],[154.61093750000006,49.29404296874998],[154.82490234375004,49.64692382812501],[154.81044921875005,49.31201171875]]],[[[155.9210937500001,50.30219726562501],[155.39716796875004,50.04125976562497],[155.24306640625,50.09462890625002],[155.21835937500012,50.29785156250003],[155.68017578124997,50.400732421875034],[156.096875,50.771875],[155.9210937500001,50.30219726562501]]],[[[156.40507812500002,50.65761718750005],[156.16796874999997,50.73188476562498],[156.37646484374997,50.86210937499996],[156.4875,50.84296874999998],[156.40507812500002,50.65761718750005]]],[[[142.76103515625002,54.393945312499966],[143.32470703125003,52.96308593749998],[143.15556640625002,52.08374023437497],[143.29951171875004,51.632373046875045],[143.81601562500006,50.28261718750002],[144.71376953125,48.64028320312502],[144.04873046875,49.249169921874994],[143.73232421875,49.31201171875],[143.10498046875003,49.198828125000034],[142.57421874999997,48.07216796875002],[142.55693359375002,47.737890625000034],[143.21767578125005,46.79487304687504],[143.48564453125002,46.752050781250006],[143.58066406250012,46.360693359375034],[143.43164062500003,46.02866210937498],[143.28232421875006,46.55898437500002],[142.57802734375005,46.700781250000034],[142.07714843749997,45.91704101562499],[141.83037109375002,46.451074218749966],[142.03867187500012,47.140283203124966],[141.9640625000001,47.58745117187502],[142.18173828125012,48.01337890625001],[141.86630859375006,48.750097656250006],[142.1422851562501,49.56914062499999],[142.06601562500006,50.630468750000034],[142.20673828125004,51.22255859375002],[141.72236328125004,51.73632812499997],[141.66083984375004,52.27294921874997],[141.85556640625012,52.79350585937499],[141.82353515625007,53.33950195312502],[142.1419921875,53.49560546875003],[142.52617187500002,53.44746093749998],[142.70595703125,53.89570312499998],[142.33496093749997,54.28071289062501],[142.76103515625002,54.393945312499966]]],[[[137.17861328125005,55.100439453125034],[137.05527343750006,54.9267578125],[136.71464843750002,54.956152343750034],[137.17861328125005,55.100439453125034]]],[[[137.94052734375012,55.092626953125034],[138.20615234375012,55.03354492187498],[137.72148437500007,54.66323242187505],[137.46269531250002,54.873388671875034],[137.23291015624997,54.79057617187496],[137.5773437500001,55.19702148437497],[137.94052734375012,55.092626953125034]]],[[[21.235742187500023,55.26411132812498],[22.072363281250034,55.06367187499998],[22.56728515625005,55.05913085937496],[22.82470703125,54.87128906249998],[22.684472656250023,54.56293945312504],[22.679882812500068,54.493017578125006],[22.766210937499977,54.356787109375034],[22.168457031250057,54.35986328125006],[21.14052734375008,54.39179687499998],[19.604394531250023,54.45917968750004],[19.974511718750023,54.92119140625002],[20.520312500000017,54.994873046875],[20.89980468750008,55.286669921875045],[20.957812500000074,55.27890625000006],[20.594824218750006,54.982373046874955],[20.995898437500017,54.90268554687506],[21.18886718750008,54.93520507812502],[21.235742187500023,55.26411132812498]]],[[[166.65029296875005,54.83906249999998],[166.64511718750006,54.69409179687503],[165.75107421875006,55.294531250000034],[166.27578125000005,55.311962890624955],[166.24804687499997,55.16542968750002],[166.65029296875005,54.83906249999998]]],[[[150.58994140625006,59.01875],[150.47021484375003,59.05405273437498],[150.66621093750004,59.16015625000003],[150.58994140625006,59.01875]]],[[[163.63515625000005,58.603369140625006],[163.47138671875004,58.509375],[163.7609375000001,59.01503906250002],[164.57265625,59.22114257812501],[164.61572265624997,58.885595703125034],[163.63515625000005,58.603369140625006]]],[[[35.8161132812501,65.18208007812501],[35.77871093750005,64.97666015625],[35.52890625000006,65.15107421875001],[35.8161132812501,65.18208007812501]]],[[[70.02070312500004,66.502197265625],[69.65136718750003,66.56533203125],[69.50273437500002,66.75107421875],[70.07666015624997,66.69589843750003],[70.02070312500004,66.502197265625]]],[[[-179.79853515625,68.9404296875],[-178.873876953125,68.75410156249995],[-178.69262695312503,68.54599609375],[-178.09746093750002,68.4248046875],[-178.05581054687497,68.26489257812503],[-177.79677734374997,68.33798828125],[-178.37304687500003,68.56567382812503],[-177.52724609375002,68.29438476562501],[-177.58920898437503,68.22421875],[-175.34521484375,67.67807617187503],[-175.37470703124998,67.35737304687498],[-175.00268554687494,67.4375],[-174.849853515625,67.34887695312503],[-174.92490234375,66.62314453125006],[-174.503759765625,66.537939453125],[-174.39409179687496,66.34423828124997],[-174.084765625,66.47309570312504],[-174.06503906249998,66.22958984374998],[-173.77397460937502,66.43466796875003],[-174.23159179687497,66.63188476562505],[-174.08642578125,66.94287109375],[-174.55009765624993,67.090625],[-173.6796875,67.144775390625],[-173.15781249999998,67.06909179687503],[-173.32353515625,66.95483398437503],[-173.25893554687497,66.84008789062503],[-173.19301757812497,66.99360351562504],[-172.5201171875,66.952490234375],[-173.00751953125,67.06489257812498],[-171.79555664062502,66.93173828125003],[-170.50952148437503,66.34365234375005],[-170.604443359375,66.24892578125002],[-170.30122070312504,66.29404296874998],[-170.24394531250002,66.16928710937503],[-169.777880859375,66.14311523437505],[-169.83168945312497,65.99892578124997],[-170.54067382812497,65.86542968749995],[-170.66630859375,65.62153320312501],[-171.42153320312502,65.81035156250002],[-171.10585937500002,65.51103515625005],[-171.90712890625,65.495947265625],[-172.78330078124998,65.68105468749997],[-172.23281250000002,65.45571289062497],[-172.30927734375004,65.27563476562497],[-172.66191406249993,65.24853515625006],[-172.28603515625002,65.20571289062502],[-172.21318359375,65.04814453124999],[-173.08579101562498,64.81733398437495],[-172.80107421874996,64.79052734375],[-172.90087890624994,64.62885742187501],[-172.40146484374998,64.413916015625],[-172.73916015624997,64.41225585937502],[-172.90317382812498,64.52607421875004],[-172.96005859375003,64.32768554687502],[-173.27548828124998,64.2896484375],[-173.327490234375,64.53955078125003],[-173.72973632812497,64.36450195312497],[-174.57055664062503,64.7177734375],[-175.39511718749998,64.80239257812502],[-175.85385742187498,65.01083984375003],[-176.09326171875,65.471044921875],[-177.05625,65.613623046875],[-177.48876953125,65.50371093749999],[-178.4125,65.49555664062501],[-178.93906249999998,66.03276367187505],[-178.74672851562497,66.01367187500006],[-178.52656250000004,66.40156250000004],[-178.86811523437498,66.18706054687502],[-179.14340820312503,66.37504882812505],[-179.327197265625,66.16259765625003],[-179.68330078124998,66.18413085937505],[-179.78969726562497,65.90087890625],[-179.352099609375,65.51674804687497],[-180,65.06723632812498],[-180,65.31196289062501],[-180,65.55678710937497],[-180,65.80156250000002],[-180,66.04628906250002],[-180,66.29106445312499],[-180,66.53583984375004],[-180,66.78056640625005],[-180,67.02534179687501],[-180,67.27011718750006],[-180,67.51484374999998],[-180,67.75961914062503],[-180,68.00439453124997],[-180,68.24912109375],[-180,68.49389648437497],[-180,68.738671875],[-179.999951171875,68.98344726562505],[-179.79853515625,68.9404296875]]],[[[50.265234375,69.18559570312502],[49.62626953125002,68.85971679687498],[48.91035156250004,68.74306640625002],[48.4390625,68.80488281249998],[48.319921875,69.26923828125001],[48.8449218750001,69.49472656250003],[49.22519531250006,69.51123046875],[50.265234375,69.18559570312502]]],[[[161.46708984375002,68.90097656250003],[161.08281250000007,69.4056640625],[161.50517578125007,69.63945312500002],[161.46708984375002,68.90097656250003]]],[[[169.20078125000006,69.58046875],[168.34804687500005,69.66435546875005],[167.86474609375003,69.90107421875004],[168.35791015625003,70.01567382812502],[169.37480468750007,69.88261718749999],[169.20078125000006,69.58046875]]],[[[60.450488281250074,69.93486328124999],[60.44023437500002,69.72592773437506],[59.637011718750074,69.72104492187503],[59.50263671875004,69.86621093750003],[58.952734375,69.89277343750004],[58.51992187500005,70.31831054687504],[59.04804687500004,70.46049804687505],[60.450488281250074,69.93486328124999]]],[[[52.90332031250003,71.36499023437503],[53.19257812500004,71.21528320312498],[53.0226562500001,70.96870117187501],[52.24960937500006,71.28491210937506],[52.90332031250003,71.36499023437503]]],[[[178.8615234375001,70.826416015625],[178.68388671875013,71.10566406250004],[180,71.53774414062505],[180,70.993017578125],[178.8615234375001,70.826416015625]]],[[[137.95986328125005,71.50766601562503],[137.71181640625005,71.4232421875],[137.06406250000006,71.52988281250003],[137.816796875,71.58789062500006],[137.95986328125005,71.50766601562503]]],[[[-178.87646484375,71.57705078124997],[-178.13388671874998,71.46547851562497],[-177.523583984375,71.16689453125],[-179.415673828125,70.91899414062502],[-179.999951171875,70.993017578125],[-179.999951171875,71.53774414062505],[-178.87646484375,71.57705078124997]]],[[[77.6325195312501,72.291259765625],[76.87109374999997,72.317041015625],[77.74853515625003,72.63120117187506],[78.36513671875005,72.48242187500003],[77.6325195312501,72.291259765625]]],[[[79.50146484374997,72.72192382812497],[78.63320312500005,72.85073242187502],[79.16425781250004,73.0943359375],[79.50146484374997,72.72192382812497]]],[[[74.660546875,72.87343750000002],[74.18066406250003,72.975341796875],[74.19853515625002,73.10908203124998],[74.9615234375,73.0625],[74.660546875,72.87343750000002]]],[[[120.26132812500012,73.08984374999997],[119.79208984375006,73.04541015624997],[119.64042968750002,73.12431640625007],[120.26132812500012,73.08984374999997]]],[[[55.31982421875003,73.30830078124998],[56.42958984375005,73.201171875],[56.121679687500006,72.80659179687498],[55.40332031249997,72.54907226562503],[55.29785156249997,71.93535156250005],[56.45439453125002,71.10737304687504],[57.62539062500005,70.72880859374999],[57.14589843750005,70.58911132812506],[56.38574218749997,70.73413085937503],[56.49970703125004,70.56640625000003],[55.687304687500074,70.69218749999999],[54.60117187500006,70.68007812500002],[53.383593750000074,70.87353515625],[53.670507812500006,71.08691406250003],[54.155664062499994,71.12548828125],[53.40996093750002,71.34013671875002],[53.41162109375003,71.530126953125],[51.93789062500005,71.47470703124998],[51.511328125,71.64809570312497],[51.58251953124997,72.07119140625],[52.252050781250006,72.12973632812503],[52.66191406250002,72.33686523437495],[52.91660156250006,72.66889648437501],[52.5792968750001,72.791357421875],[53.3698242187501,72.91674804687506],[53.2511718750001,73.182958984375],[54.80390625000004,73.38764648437498],[55.31982421875003,73.30830078124998]]],[[[70.67392578125006,73.09501953125005],[70.04072265625004,73.03715820312507],[69.99589843750002,73.359375],[70.94023437500002,73.51440429687503],[71.6261718750001,73.17397460937497],[70.67392578125006,73.09501953125005]]],[[[142.18486328125007,73.89589843750005],[143.34375,73.56875],[143.45146484375007,73.231298828125],[141.59667968750003,73.31083984375005],[140.66279296875004,73.45200195312503],[139.785546875,73.35522460937503],[141.08476562500002,73.86586914062497],[142.18486328125007,73.89589843750005]]],[[[83.5490234375001,74.07177734375],[82.8177734375,74.09160156250005],[83.14980468750005,74.151611328125],[83.5490234375001,74.07177734375]]],[[[141.01025390625003,73.99946289062501],[140.40947265625002,73.92167968750005],[140.1935546875001,74.23671875000002],[141.03857421875003,74.24272460937502],[141.01025390625003,73.99946289062501]]],[[[113.38720703124997,74.40043945312499],[112.78242187500004,74.09506835937503],[111.50341796874997,74.35307617187502],[111.87978515625,74.36381835937499],[112.08447265624997,74.54897460937505],[113.38720703124997,74.40043945312499]]],[[[86.653125,74.981298828125],[87.05214843750005,74.982568359375],[86.92714843750005,74.83076171874998],[86.25859375000002,74.89350585937498],[86.653125,74.981298828125]]],[[[82.17236328125003,75.41938476562501],[81.97851562499997,75.24711914062499],[81.65478515625003,75.28891601562498],[81.71210937500004,75.45141601562506],[82.165625,75.515625],[82.17236328125003,75.41938476562501]]],[[[146.79521484375007,75.37075195312505],[148.43242187500002,75.41352539062495],[148.59013671875007,75.23637695312502],[150.82236328125006,75.15654296875002],[150.64628906250002,74.944580078125],[149.596875,74.77260742187505],[148.296875,74.80043945312502],[146.14853515625012,75.19829101562499],[146.5375,75.58178710937506],[146.79521484375007,75.37075195312505]]],[[[135.9486328125,75.40957031250005],[135.45195312500007,75.38955078124997],[135.6986328125,75.84526367187499],[136.16894531249997,75.60556640625],[135.9486328125,75.40957031250005]]],[[[140.04873046875,75.82895507812503],[140.81591796874997,75.63071289062498],[141.48544921875012,76.13715820312495],[142.66953125000012,75.86342773437497],[143.68583984375002,75.86367187500002],[145.35996093750006,75.53046874999998],[144.01972656250004,75.04467773437506],[143.1703125,75.11689453125001],[142.72949218749997,75.33764648437506],[142.941796875,75.71328125000002],[142.30791015625007,75.69169921875005],[142.19882812500006,75.39267578124998],[143.12792968749997,74.9703125],[142.47275390625006,74.82041015625],[141.98730468750003,74.99125976562499],[140.26787109375002,74.846923828125],[139.68125,74.96406249999995],[139.09912109374997,74.65654296875002],[138.09228515625003,74.79746093750003],[136.94765625000005,75.32553710937498],[137.28974609375004,75.34863281249997],[137.26884765625002,75.7494140625],[137.70654296875003,75.75957031250002],[137.56054687499997,75.95522460937502],[138.20761718750006,76.11494140624995],[138.91953125000006,76.19672851562501],[140.04873046875,75.82895507812503]]],[[[96.5324218750001,76.278125],[96.30058593750002,76.121728515625],[95.31113281250006,76.21474609375002],[95.37988281250003,76.2890625],[96.5324218750001,76.278125]]],[[[112.47802734375003,76.62089843749999],[112.531640625,76.450048828125],[111.96894531250004,76.62617187500001],[112.47802734375003,76.62089843749999]]],[[[149.15019531250002,76.65991210937506],[148.39863281250004,76.64824218750007],[149.4064453125001,76.78208007812498],[149.15019531250002,76.65991210937506]]],[[[67.7653320312501,76.23759765624999],[61.35595703124997,75.31484375000002],[60.27685546875003,75.00756835937503],[60.501367187499994,74.90463867187503],[59.67402343750004,74.61015624999999],[59.24013671875005,74.69296874999998],[59.040429687499994,74.48554687500001],[58.53466796875003,74.49892578124997],[58.6178710937501,74.22739257812498],[57.76738281250002,74.013818359375],[57.755957031250006,73.769189453125],[57.313085937500006,73.838037109375],[57.54257812500006,73.65820312500003],[56.96386718750003,73.36655273437503],[56.43037109375004,73.29721679687503],[55.00683593750003,73.45385742187506],[54.29990234375006,73.35097656249997],[53.7628906250001,73.76616210937499],[54.64267578125006,73.95957031250006],[55.34091796875006,74.41962890624998],[56.13710937500005,74.49609375000003],[55.5822265625001,74.627685546875],[56.4987304687501,74.95708007812505],[55.81005859374997,75.12490234374997],[56.03554687499999,75.19423828124997],[56.57031250000003,75.09775390625003],[56.8444335937501,75.351416015625],[57.606835937499994,75.34125976562498],[58.05830078125004,75.6630859375],[58.88125,75.85478515625007],[60.27929687499997,76.09624023437505],[60.94218750000002,76.07128906250003],[61.20166015624997,76.28203125000007],[62.97148437500002,76.23666992187498],[64.4634765625,76.37817382812503],[67.65185546874997,77.011572265625],[68.48574218750005,76.93369140625003],[68.94169921875002,76.707666015625],[67.7653320312501,76.23759765624999]]],[[[96.28544921875002,77.02666015625007],[95.27031250000007,77.01884765624999],[96.52841796875006,77.20551757812501],[96.28544921875002,77.02666015625007]]],[[[89.51425781250006,77.18881835937498],[89.14169921875012,77.22680664062497],[89.61621093749997,77.31103515625],[89.51425781250006,77.18881835937498]]],[[[130.68730468750007,42.30253906249999],[130.52695312500012,42.535400390625],[130.42480468749997,42.72705078124997],[131.06855468750004,42.90224609375005],[131.25732421875003,43.378076171874994],[131.2552734375,44.07158203124999],[130.9816406250001,44.844335937500034],[131.44687500000012,44.984033203124966],[131.85185546875002,45.32685546875001],[132.93603515624997,45.029931640624994],[133.1134765625001,45.130712890625006],[133.18603515625003,45.49482421875004],[133.43642578125,45.60468750000004],[133.86132812500003,46.24775390625004],[134.1676757812501,47.30219726562501],[134.75234375,47.71542968749998],[134.56601562500006,48.02250976562502],[134.66523437500004,48.25390625],[134.29335937500005,48.37343750000002],[133.46835937500006,48.09716796875003],[133.14404296875003,48.10566406249998],[132.7072265625001,47.94726562500006],[132.47626953125004,47.714990234374994],[130.96191406249997,47.70932617187498],[130.7326171875001,48.01923828124998],[130.80429687500012,48.34150390624998],[130.5521484375,48.602490234374955],[130.553125,48.861181640625006],[130.1959960937501,48.89165039062499],[129.49814453125012,49.38881835937502],[129.0651367187501,49.374658203124966],[128.70400390625,49.60014648437499],[127.99960937500006,49.56860351562506],[127.55078124999997,49.801806640625045],[127.590234375,50.20898437500003],[127.33720703125007,50.35014648437502],[127.30703125000005,50.70795898437501],[126.92480468749997,51.10014648437496],[126.34169921875,52.36201171875001],[125.64902343750012,53.042285156250045],[125.075,53.20366210937496],[124.81230468750002,53.133837890625045],[123.6078125,53.546533203124994],[120.98544921875012,53.28457031250002],[120.09453125000007,52.787207031250034],[120.0675781250001,52.632910156250034],[120.65615234375,52.56665039062503],[120.74980468750007,52.096533203125006],[120.06689453125003,51.60068359375006],[119.16367187500006,50.40600585937503],[119.34628906250012,50.278955078124994],[119.25986328125012,50.06640625000003],[118.4515625,49.84448242187503],[117.8734375,49.51347656250002],[116.6833007812501,49.82377929687499],[116.551171875,49.92031250000002],[116.35117187500012,49.97807617187499],[116.21679687500003,50.00927734375003],[116.13457031250002,50.01079101562499],[115.9259765625001,49.95214843750003],[115.79521484375002,49.90590820312502],[115.71777343750003,49.88061523437503],[115.58798828125006,49.88603515624996],[115.42919921874997,49.89648437499997],[115.36503906250002,49.911767578124966],[115.27451171875006,49.948876953124994],[115.00332031250005,50.138574218749994],[114.74316406249997,50.23369140625002],[114.29707031250004,50.27441406250006],[113.57421874999997,50.00703125000001],[113.44550781250004,49.94160156250001],[113.31904296875004,49.87431640624999],[113.16416015625012,49.79716796874999],[113.09208984375007,49.692529296874994],[113.05556640625,49.61625976562499],[112.91484375000002,49.569238281249994],[112.80644531250007,49.52358398437502],[112.69736328125012,49.50727539062498],[112.49492187500002,49.532324218750034],[112.07968750000006,49.42421875000002],[111.42929687500006,49.342626953125034],[111.3366210937501,49.355859374999966],[111.20419921875012,49.304296875000034],[110.82792968750002,49.16616210937505],[110.70976562500002,49.14296875000002],[110.42783203125006,49.219970703125],[110.32138671875012,49.215869140625045],[110.19990234375004,49.17041015625003],[109.5287109375,49.269873046875034],[109.45371093750012,49.29633789062501],[109.23671875000005,49.334912109374955],[108.61367187500005,49.32280273437499],[108.52246093750003,49.34150390624998],[108.4069335937501,49.39638671875005],[107.96542968750012,49.65351562500004],[107.91660156250012,49.947802734375045],[107.63095703125012,49.98310546875004],[107.3470703125,49.986669921875034],[107.23330078125,49.989404296874994],[107.14306640625003,50.03300781249999],[107.04023437500004,50.086474609375045],[106.94130859375005,50.19667968750002],[106.71113281250004,50.312597656250006],[106.57441406250004,50.32880859375004],[106.36845703125002,50.317578124999955],[106.21787109375006,50.304589843749966],[105.38359375000002,50.47373046874998],[104.07871093750012,50.15424804687498],[103.63291015625006,50.138574218749994],[103.49628906250004,50.16494140625005],[103.42119140625002,50.18706054687502],[103.3043945312501,50.200292968750034],[102.28837890625007,50.58510742187502],[102.31660156250004,50.71845703125001],[102.21503906250004,50.82944335937506],[102.19453125000004,51.05068359375002],[102.15195312500006,51.107519531250034],[102.14238281250007,51.21606445312503],[102.16005859375005,51.260839843750006],[102.1556640625,51.31376953124996],[102.1115234375001,51.353466796874955],[101.97919921875004,51.382226562499966],[101.82119140625,51.421044921874966],[101.57089843750006,51.46718750000005],[101.38125,51.45263671875],[100.53623046875006,51.713476562500034],[100.46894531250004,51.72607421875003],[100.23037109375,51.729833984375006],[100.0345703125,51.73710937499996],[99.92167968750002,51.755517578124994],[99.71923828124997,51.87163085937502],[98.89316406250006,52.11728515625006],[98.64052734375005,51.80117187500005],[98.103125,51.483544921874994],[97.82529296875012,50.985253906249994],[97.953125,50.85517578124998],[98.02978515625003,50.64462890624998],[98.07890625000002,50.60380859375002],[98.14501953124997,50.56855468750001],[98.22050781250007,50.55717773437502],[98.2794921875001,50.53325195312502],[98.25029296875002,50.30244140624998],[98.00390625000003,50.01425781249998],[97.35976562500005,49.741455078125],[97.20859375000006,49.73081054687506],[96.98574218750005,49.88281250000003],[96.31503906250012,49.90112304687503],[96.06552734375006,49.99873046875001],[95.52265625000004,49.911230468750034],[95.11142578125012,49.935449218749994],[94.93027343750006,50.04375],[94.8112304687501,50.04819335937506],[94.71806640625002,50.04326171875002],[94.67548828125004,50.02807617187506],[94.61474609375003,50.02373046874996],[94.56464843750004,50.08793945312499],[94.35468750000004,50.221826171874994],[94.25107421875006,50.55639648437503],[93.103125,50.60390625000002],[92.94130859375005,50.77822265625002],[92.85644531250003,50.78911132812502],[92.77929687500003,50.778662109375006],[92.738671875,50.71093749999997],[92.68134765625004,50.683203125],[92.6266601562501,50.68828124999999],[92.57890625000002,50.725439453125006],[92.42636718750006,50.803076171875006],[92.35478515625002,50.86416015625002],[92.29580078125,50.84980468750004],[92.19238281249997,50.700585937499994],[91.80429687500006,50.693603515625],[91.4464843750001,50.52216796874998],[91.41503906249997,50.46801757812506],[91.34082031249997,50.470068359375034],[91.30058593750002,50.46337890625],[91.2337890625,50.45239257812497],[91.02158203125012,50.41547851562501],[90.83808593750004,50.32373046874997],[90.76074218749997,50.30595703124999],[90.71435546874997,50.25942382812502],[90.65507812500007,50.22236328125001],[90.05371093750003,50.09375],[89.64384765625002,49.90302734374998],[89.65410156250007,49.71748046875001],[89.57919921875006,49.69970703125003],[89.475,49.66054687500005],[89.39560546875006,49.61152343750001],[89.24394531250007,49.62705078125006],[89.20292968750007,49.59570312499997],[89.17998046875002,49.5322265625],[89.10947265625012,49.50136718750002],[89.00839843750006,49.472802734374994],[88.97060546875,49.483740234375006],[88.94541015625012,49.50766601562498],[88.90019531250002,49.53969726562502],[88.86386718750006,49.52763671874996],[88.83164062500012,49.44843749999998],[88.633203125,49.486132812500045],[88.19257812500004,49.451708984375045],[88.13554687500002,49.38149414062502],[88.11572265624997,49.25629882812501],[88.0285156250001,49.219775390625045],[87.98808593750002,49.186914062499994],[87.9347656250001,49.16455078124997],[87.81425781250002,49.162304687499955],[87.7625,49.16582031249996],[87.5158203125001,49.122412109375006],[87.41669921875004,49.07661132812501],[87.32285156250012,49.085791015625006],[86.62646484374997,49.56269531250001],[86.67548828125004,49.77729492187501],[86.1808593750001,49.49931640624996],[85.2326171875001,49.61582031249998],[84.9894531250001,50.061425781249994],[84.32324218749997,50.239160156249966],[83.94511718750007,50.774658203125],[83.35732421875005,50.99458007812504],[82.76083984375012,50.89335937500002],[82.49394531250007,50.72758789062499],[81.46591796875006,50.73984375],[81.38828125000006,50.95649414062501],[81.0714843750001,50.96875],[81.12724609375002,51.19106445312502],[80.73525390625,51.29340820312498],[80.44804687500002,51.18334960937503],[80.42363281250002,50.94628906249997],[79.98623046875,50.774560546874966],[77.85996093750006,53.269189453124994],[76.48476562500005,54.02255859374998],[76.42167968750007,54.151513671874966],[76.65458984375007,54.14526367187503],[76.8373046875,54.4423828125],[75.43720703125004,54.08964843749999],[75.22021484374997,53.89379882812506],[74.45195312500007,53.64726562500002],[74.35156250000003,53.487646484375006],[73.85898437500006,53.61972656249998],[73.40693359375004,53.44755859374999],[73.30566406250003,53.707226562499955],[73.71240234375003,54.04238281250002],[73.22988281250005,53.957812500000045],[72.62226562500004,54.13432617187502],[72.44677734375003,53.94184570312498],[72.18603515625003,54.32563476562501],[72.00449218750006,54.20566406249998],[71.09316406250005,54.21220703124999],[71.18554687500003,54.59931640624998],[70.73808593750007,55.30517578125],[70.18242187500002,55.162451171875034],[68.9772460937501,55.389599609374955],[68.20625,55.16093750000002],[68.15585937500006,54.97670898437505],[65.476953125,54.62329101562497],[65.08837890624997,54.340185546875034],[64.46123046875002,54.38417968750002],[61.92871093750003,53.94648437500004],[61.231054687500006,54.01948242187498],[60.97949218749997,53.62172851562505],[61.53496093750002,53.52329101562506],[61.22890625,53.445898437500006],[61.19921874999997,53.28715820312502],[61.65986328125004,53.22846679687504],[62.08271484375004,53.00541992187499],[61.047460937500006,52.97246093750002],[60.77441406249997,52.67578124999997],[60.99453125000005,52.33686523437504],[60.03027343749997,51.93325195312505],[60.464746093749994,51.651171875000045],[61.55468750000003,51.32460937500005],[61.38945312500002,50.86103515625001],[60.94228515625005,50.69550781250004],[60.42480468749997,50.67915039062498],[60.05859374999997,50.850292968749955],[59.812402343749994,50.58203125],[59.523046875,50.492871093749955],[59.4523437500001,50.62041015625002],[58.88369140625005,50.694433593750006],[58.359179687500074,51.063818359375034],[57.83886718750003,51.091650390625006],[57.44218750000002,50.88886718749998],[57.01171874999997,51.06518554687503],[56.49140625000004,51.01953124999997],[55.68623046875004,50.582861328125006],[54.64160156250003,51.011572265625034],[54.555273437500006,50.535791015624994],[54.139746093750006,51.04077148437503],[53.33808593750004,51.48237304687504],[52.57119140625005,51.481640624999955],[52.21914062499999,51.709375],[51.344531250000074,51.47534179687503],[51.16347656250005,51.6474609375],[50.79394531249997,51.729199218749955],[50.246875,51.28950195312498],[49.49804687500003,51.08359375000006],[49.32343750000004,50.851708984374966],[48.625097656250006,50.61269531250005],[48.7589843750001,49.92832031250006],[48.33496093750003,49.858251953125006],[47.7057617187501,50.37797851562502],[47.42919921874997,50.35795898437502],[46.889550781249994,49.69697265625001],[46.80205078125002,49.36708984375002],[47.031347656250006,49.150292968749994],[46.70263671875003,48.80556640625002],[46.660937500000074,48.41225585937502],[47.06464843750004,48.23247070312499],[47.292382812499994,47.74091796875004],[47.48193359374997,47.80390624999998],[48.16699218750003,47.70878906249996],[48.959375,46.77460937499998],[48.558398437500074,46.75712890624999],[48.54121093750004,46.60561523437502],[49.232226562500074,46.33715820312503],[48.683691406250006,46.08618164062497],[48.72958984375006,45.896826171875034],[48.4870117187501,45.93486328124996],[47.63330078124997,45.58403320312499],[47.46328125,45.67968750000003],[47.5294921875001,45.530224609374955],[47.3512695312501,45.21772460937498],[46.7072265625001,44.503320312499994],[47.30703125000005,44.103125],[47.462792968749994,43.55502929687498],[47.64648437500003,43.88461914062498],[47.463183593750074,43.03505859375002],[48.572851562500006,41.84448242187503],[47.79101562499997,41.19926757812502],[47.31767578125002,41.28242187500001],[46.74931640625002,41.812597656250006],[46.42988281250004,41.890966796875006],[46.21269531250002,41.989892578124994],[45.63857421875005,42.20507812500003],[45.63427734374997,42.234716796875034],[45.72753906249997,42.47504882812498],[45.70527343750004,42.49809570312496],[45.56289062499999,42.53574218749998],[45.34375,42.52978515625003],[45.16025390625006,42.675],[45.07158203125002,42.69414062500002],[44.94335937499997,42.73027343750002],[44.870996093749994,42.75639648437499],[44.850488281249994,42.746826171875],[44.77109375000006,42.61679687499998],[44.69179687499999,42.709619140624966],[44.64433593750002,42.734716796875034],[44.50585937500003,42.748632812500006],[44.329492187499994,42.703515624999966],[44.10273437500004,42.616357421874994],[44.004687500000074,42.59560546875002],[43.95742187500005,42.56655273437505],[43.825976562500074,42.571533203125],[43.759863281250006,42.593847656250006],[43.738378906250006,42.61699218750002],[43.74990234375005,42.65751953125002],[43.79541015624997,42.702978515625034],[43.78261718750005,42.747021484374955],[43.62304687500003,42.80771484374998],[43.5578125000001,42.844482421875],[43.089160156250074,42.9890625],[43.00019531250004,43.04965820312506],[42.991601562499994,43.09150390624998],[42.76064453125005,43.169580078124966],[41.58056640624997,43.21923828124997],[41.460742187500074,43.276318359374955],[41.35820312500002,43.33339843750005],[41.08310546875006,43.37446289062498],[40.94199218750006,43.41806640624998],[40.801660156249994,43.479931640624955],[40.64804687500006,43.53388671875004],[40.084570312500006,43.553125],[40.02373046875002,43.48486328125],[39.873632812500006,43.47280273437502],[38.71728515624997,44.28808593750003],[38.18125,44.41967773437503],[37.851464843749994,44.698828125000034],[37.49511718750003,44.69526367187504],[37.20478515625004,44.97197265624999],[36.62763671875004,45.15131835937504],[36.941210937500074,45.289697265624994],[36.72041015625004,45.371875],[36.8659179687501,45.42705078124999],[37.21357421875004,45.272314453125006],[37.6471679687501,45.37719726562506],[37.61240234375006,45.56469726562506],[37.93310546875003,46.001708984375],[38.014257812500006,46.047753906249966],[38.07958984375003,45.93481445312506],[38.18359374999997,46.09482421875006],[38.49228515625006,46.09052734374998],[37.913867187500074,46.40649414062503],[37.766503906249994,46.63613281250002],[38.50097656249997,46.663671875000034],[38.43867187500004,46.813085937500006],[39.29345703125003,47.105761718750045],[39.19570312499999,47.268847656250045],[39.023730468750074,47.27221679687503],[38.928320312500006,47.175683593749994],[38.55244140625004,47.15034179687498],[38.7619140625001,47.261621093749994],[38.21435546875003,47.091455078124966],[38.36884765625004,47.609960937500006],[38.90029296875005,47.85512695312502],[39.77871093750005,47.88754882812506],[39.95791015625005,48.268896484375034],[39.8356445312501,48.54277343749996],[39.6447265625001,48.591210937499966],[39.792871093749994,48.807714843750034],[40.00361328125004,48.82207031250002],[39.68652343749997,49.007910156250034],[40.10878906250005,49.251562500000034],[40.080664062500006,49.576855468749955],[39.780566406250074,49.57202148437503],[39.17480468750003,49.85595703124997],[38.91835937499999,49.82470703125],[38.258593750000074,50.05234375],[38.046875,49.92001953125006],[37.42285156249997,50.411474609375006],[36.619433593750074,50.209228515625],[36.1164062500001,50.408544921875006],[35.59111328125002,50.36875],[35.31191406250005,51.043896484374955],[35.0640625,51.203417968750045],[34.21386718750003,51.25537109375006],[34.12109375000003,51.67915039062498],[34.397851562499994,51.780419921874994],[33.735253906249994,52.344775390625045],[32.435449218749994,52.307226562500034],[32.12226562500004,52.05058593749996],[31.763378906250097,52.10107421875003],[31.758593750000017,52.125830078125034],[31.690625,52.22065429687498],[31.64990234374997,52.26220703125],[31.60156250000003,52.284814453124994],[31.57734375000004,52.31230468749999],[31.585546875,52.532470703125],[31.56484375,52.75922851562501],[31.53515624999997,52.798242187499966],[31.442773437499994,52.86181640625003],[31.35302734374997,52.93344726562498],[31.295117187500097,52.98979492187499],[31.25878906249997,53.01669921875006],[31.364550781250017,53.13896484375002],[31.388378906250097,53.18481445312503],[31.41787109375005,53.196044921875],[31.849707031250006,53.106201171875],[32.14199218750005,53.091162109375034],[32.46933593750006,53.270312500000045],[32.578027343749994,53.312402343749994],[32.644433593749994,53.32890624999999],[32.70429687500004,53.33632812499999],[32.45097656250002,53.6533203125],[32.20039062500004,53.78125],[31.99218750000003,53.796875],[31.82080078124997,53.79194335937498],[31.754199218750017,53.81044921875002],[31.825292968750006,53.93500976562501],[31.837792968749994,54.00078124999999],[31.825976562500074,54.030712890624955],[31.79199218749997,54.05590820312503],[31.62841796874997,54.111181640625006],[31.403613281250017,54.195947265624966],[31.299121093750017,54.29169921875001],[31.184765625000097,54.452978515625006],[31.074804687500063,54.491796875],[31.154882812500063,54.610937500000034],[31.152148437500017,54.625341796875034],[31.12128906250004,54.64848632812496],[30.984179687500074,54.695898437500034],[30.79882812499997,54.78325195312499],[30.79101562499997,54.806005859375006],[30.804492187500074,54.8609375],[30.829882812500017,54.91499023437498],[30.977734375000097,55.05048828124998],[30.977734375000097,55.08779296875002],[30.958886718749994,55.13759765625005],[30.87744140625003,55.223437500000045],[30.81445312499997,55.27871093750002],[30.81054687499997,55.306982421875006],[30.82099609375004,55.330273437499955],[30.900585937500097,55.397412109374955],[30.906835937500063,55.57001953125004],[30.625585937500006,55.666259765625],[30.23359375000004,55.84521484375006],[30.04267578125004,55.83642578125003],[29.93701171874997,55.84526367187499],[29.881640625000074,55.83232421875002],[29.82392578125004,55.79511718749998],[29.74414062499997,55.770410156249994],[29.630078125000097,55.75117187499998],[29.482226562500074,55.6845703125],[29.412988281249994,55.72485351562506],[29.35341796875005,55.784375],[29.375,55.938720703125],[28.284277343750006,56.055908203125],[28.14794921875003,56.142919921875034],[28.202050781250023,56.260400390624994],[28.191699218750045,56.31557617187505],[28.169238281250017,56.386865234374994],[28.11083984375,56.51069335937501],[28.103125,56.545703125000045],[27.89208984375003,56.741064453125034],[27.88154296875001,56.82416992187501],[27.848632812500057,56.85341796875002],[27.806054687499994,56.86708984375005],[27.639453125000074,56.84565429687504],[27.83027343750004,57.19448242187505],[27.83828125000008,57.247705078124966],[27.82861328124997,57.293310546875006],[27.796875,57.316943359375045],[27.538671875000063,57.429785156250034],[27.51113281250005,57.508154296875006],[27.469726562500057,57.524023437500034],[27.35195312500005,57.528125],[27.4,57.66679687499999],[27.542089843750063,57.799414062500006],[27.778515625000068,57.87070312500006],[27.502441406250057,58.221337890624994],[27.434179687500006,58.787255859374994],[28.15107421875004,59.374414062499966],[28.0125,59.484277343749966],[28.05800781250008,59.781542968750045],[28.334570312500034,59.69252929687502],[28.518164062500034,59.849560546874955],[28.947265625000057,59.828759765624994],[29.147265625000045,59.999755859375],[30.12255859374997,59.873583984375074],[30.172656250000017,59.957128906250034],[29.72119140624997,60.19531249999997],[29.069140625000017,60.19145507812499],[28.643164062500006,60.375292968750045],[28.512792968750006,60.67729492187502],[27.797656250000074,60.53613281250003],[29.69013671875004,61.54609375000001],[31.18671875000004,62.48139648437504],[31.533984375000017,62.885400390624994],[31.180859375000097,63.208300781250074],[29.991503906250074,63.73515625000002],[30.50390625000003,64.02060546875],[30.513769531250006,64.2],[30.04189453125005,64.44335937499997],[30.072851562500063,64.76503906250005],[29.60419921875004,64.968408203125],[29.826953125000017,65.14506835937502],[29.608007812500006,65.248681640625],[29.715917968750063,65.62456054687502],[30.102734375000097,65.72626953125004],[29.066210937500045,66.89174804687497],[29.988085937500017,67.66826171874999],[29.343847656250006,68.06186523437506],[28.685156250000034,68.189794921875],[28.470703125000057,68.48837890625],[28.77285156250005,68.84003906249995],[28.414062500000057,68.90415039062506],[28.96582031250003,69.02197265625],[29.38828125,69.29814453125005],[30.08730468750005,69.43286132812503],[30.18017578124997,69.63583984375],[30.860742187499994,69.53842773437503],[30.869726562500006,69.78344726562506],[31.546972656250063,69.696923828125],[31.997949218749994,69.80991210937503],[31.98457031250004,69.95366210937499],[33.00781249999997,69.72211914062498],[32.91503906249997,69.60170898437497],[32.17675781250003,69.67402343749995],[32.37773437500002,69.47910156250003],[32.99980468750002,69.4701171875],[32.97890625000005,69.367333984375],[33.45429687500004,69.42817382812495],[33.14121093750006,69.068701171875],[33.684375,69.31025390625001],[35.85791015625003,69.19174804687503],[37.73056640625006,68.69213867187503],[38.43017578125003,68.35561523437505],[39.568945312500006,68.07172851562501],[39.82333984375006,68.05859375],[39.80927734375004,68.15083007812498],[40.38066406250002,67.831884765625],[40.96640625000006,67.71347656250003],[41.358789062499994,67.20966796874998],[41.18896484375003,66.82617187500003],[40.10332031250002,66.29995117187502],[38.65390625000006,66.06904296874995],[35.51347656250002,66.39580078125002],[34.82460937499999,66.61113281249999],[34.48261718750004,66.55034179687505],[34.4515625,66.651220703125],[33.15019531250002,66.84394531250001],[32.93046875000002,67.08681640625002],[31.895312500000074,67.16142578125002],[33.65595703125004,66.44262695312506],[33.36054687500004,66.32954101562501],[34.112695312499994,66.225244140625],[34.69179687500005,65.95185546874998],[34.77695312500006,65.76826171874998],[34.40644531250004,65.39575195312503],[35.03535156250004,64.44023437500005],[35.802050781250074,64.3353515625],[36.3649414062501,64.00283203125002],[37.44218750000002,63.813378906249966],[37.9679687500001,63.949121093749994],[38.0622070312501,64.09101562499995],[37.953710937500006,64.32011718749999],[37.183691406250006,64.40849609375007],[36.6242187500001,64.75053710937502],[36.534570312499994,64.93862304687497],[36.88281249999997,65.17236328124997],[39.7580078125001,64.57705078125002],[40.05781250000004,64.77075195312497],[40.44492187500006,64.7787109375],[39.7980468750001,65.349853515625],[39.816503906250006,65.59794921874999],[41.4757812500001,66.12343750000002],[42.21054687500006,66.51967773437502],[43.23320312500002,66.41552734375003],[43.653125,66.2509765625],[43.54189453125005,66.12338867187503],[43.84375,66.14238281249999],[44.10439453125005,66.00859374999999],[44.42929687500006,66.93774414062503],[43.7824218750001,67.25449218749998],[44.20468750000006,68.25375976562498],[43.33320312500004,68.67338867187502],[44.04804687500004,68.54882812499997],[45.891992187499994,68.47968750000001],[46.69042968750003,67.84882812500001],[45.52871093750005,67.75756835937497],[44.90214843750002,67.41313476562505],[45.56220703125004,67.18559570312507],[45.88535156250006,66.89106445312501],[46.4923828125001,66.80019531249997],[47.65585937500006,66.97592773437498],[47.87470703125004,67.58417968749998],[48.83320312500004,67.681494140625],[48.75429687500005,67.89594726562501],[49.15527343750003,67.87041015625005],[51.994726562500006,68.53876953124995],[52.3966796875001,68.35170898437505],[52.72265624999997,68.484033203125],[52.34404296875002,68.60815429687497],[53.80195312500004,68.99589843750002],[54.49121093750003,68.992333984375],[53.797656250000074,68.90747070312503],[53.9308593750001,68.43554687499997],[53.260546875000074,68.26748046875002],[54.476171875,68.29414062499995],[54.86132812500003,68.20185546874998],[55.418066406250006,68.56782226562501],[56.04365234375004,68.64887695312501],[57.126855468749994,68.55400390625005],[58.17304687500004,68.88974609375006],[59.0573242187501,69.00605468750004],[59.37050781250005,68.73837890625003],[59.09902343750005,68.4443359375],[59.725683593750006,68.35161132812502],[59.89599609374997,68.70634765624999],[60.489160156249994,68.72895507812498],[60.93359374999997,68.98676757812501],[60.17060546875004,69.59091796875],[60.90908203125005,69.84711914062495],[64.19042968750003,69.53466796875],[64.89628906250002,69.247802734375],[67.00244140625003,68.87358398437505],[68.37119140625006,68.31425781250005],[69.14052734375005,68.95063476562501],[68.54277343750002,68.96708984374999],[68.00585937499997,69.48002929687505],[67.62412109375,69.58442382812501],[67.06445312500003,69.69370117187498],[66.89667968750004,69.55380859374998],[67.28476562500006,70.73872070312498],[67.14335937500002,70.83754882812502],[66.70224609375006,70.81850585937497],[66.63964843749997,71.08139648437498],[68.2692382812501,71.68281250000001],[69.61181640625003,72.98193359375],[69.73828124999997,72.88496093749998],[71.5001953125001,72.91367187500003],[72.812109375,72.69140624999997],[72.57412109375,72.01254882812506],[71.86728515625,71.457373046875],[72.70449218750005,70.96323242187498],[72.5767578125,68.96870117187498],[73.59169921875005,68.48188476562501],[73.13945312500002,68.18134765624998],[73.06679687500005,67.766943359375],[71.84746093750002,67.00761718750005],[71.36523437500003,66.96152343749998],[71.53955078125003,66.68310546875],[70.72490234375007,66.51943359374997],[70.38281249999997,66.60249023437501],[70.69072265625002,66.74531249999998],[70.2833984375001,66.68579101562503],[69.8771484375001,66.84545898437506],[69.21777343749997,66.82861328125],[69.01347656250002,66.78833007812503],[69.19433593749997,66.57866210937505],[70.33945312500006,66.34238281250006],[71.35800781250006,66.35942382812505],[71.91699218749997,66.24672851562502],[72.32158203125002,66.33212890625],[72.4173828125,66.56079101562506],[73.79208984375,66.99531250000001],[74.07451171875007,67.41411132812499],[74.76953124999997,67.76635742187497],[74.39140625000007,68.42060546874995],[74.57958984375003,68.751220703125],[76.10751953125006,68.975732421875],[76.45917968750004,68.97827148437497],[77.2384765625001,68.46958007812498],[77.17441406250012,67.77851562499998],[77.77158203125006,67.57026367187501],[78.92246093750006,67.58911132812503],[77.58828125000005,67.75190429687498],[77.66484375000002,68.19038085937495],[77.99511718749997,68.25947265624998],[77.65068359375007,68.90302734375001],[76.00097656249997,69.23505859374998],[75.42001953125,69.23862304687498],[74.81484375,69.09057617187503],[73.83603515625006,69.143212890625],[73.578125,69.80297851562503],[74.34335937500006,70.57871093749998],[73.08623046875007,71.44492187500006],[73.67177734375,71.84506835937503],[74.99218749999997,72.14482421874999],[74.78681640625004,72.811865234375],[75.15244140625,72.85273437499998],[75.74140625000004,72.29624023437503],[75.273828125,71.95893554687495],[75.33203125000003,71.34174804687498],[76.92900390625002,71.12788085937504],[77.58964843750007,71.16791992187501],[78.32060546875002,70.93041992187503],[78.94218750000002,70.93378906250001],[79.08388671875,71.00200195312505],[78.58769531250007,70.993896484375],[78.21259765625004,71.26630859374998],[76.43339843750002,71.55249023437503],[76.03242187500004,71.91040039062503],[76.87138671875002,72.03300781250005],[77.77753906250004,71.83642578125006],[78.23242187500003,71.95229492187502],[78.01640625000007,72.092041015625],[77.49287109375004,72.07172851562504],[77.47158203125,72.19213867187506],[78.22539062500007,72.37744140625006],[79.4220703125001,72.38076171875002],[80.7625,72.08916015625002],[81.66162109374997,71.71596679687502],[82.75781250000003,71.76411132812498],[83.23359375000004,71.66816406249995],[82.32285156250006,71.26000976562503],[82.16318359375012,70.59814453125003],[82.22119140625003,70.39570312499998],[82.86914062499997,70.95483398437503],[83.03017578125,70.58051757812498],[82.6823242187501,70.21772460937498],[83.0807617187501,70.09301757812497],[83.07382812500012,70.276708984375],[83.73593750000006,70.54648437499998],[83.15126953125005,71.10361328124998],[83.534375,71.68393554687498],[83.20029296875012,71.87470703125004],[82.64541015625005,71.92524414062504],[82.09365234375,72.26542968750005],[80.82705078125005,72.48828124999997],[80.84160156250007,72.94916992187498],[80.4245117187501,73.23115234374998],[80.5832031250001,73.56845703125003],[85.20058593750005,73.72153320312506],[86.89296875,73.88710937500002],[85.79257812500012,73.438330078125],[86.67705078125002,73.10678710937503],[85.93896484374997,73.45649414062495],[87.12011718750003,73.61503906250002],[87.57119140625,73.81074218750001],[86.57109375000007,74.24375],[86.0013671875,74.316015625],[86.39580078125007,74.45009765624997],[86.89794921874997,74.32534179687497],[87.22968750000004,74.3638671875],[85.79101562499997,74.6451171875],[86.20126953125006,74.81621093750005],[86.65146484375012,74.68242187500005],[87.04179687500007,74.77885742187499],[87.46757812500002,75.01323242187505],[86.93906250000006,75.06811523437503],[87.00595703125012,75.16982421874997],[87.67138671874997,75.12958984375004],[90.18496093750005,75.59106445312497],[94.07519531249997,75.91289062499999],[92.89042968750002,75.90996093750002],[93.25927734375003,76.09877929687502],[95.57871093750012,76.13730468749998],[96.07548828125007,76.08198242187498],[95.65332031250003,75.89218750000003],[96.50859375000002,76.00556640624995],[96.49707031249997,75.89121093750003],[98.66201171875005,76.24267578125003],[99.77041015625,76.02875976562498],[99.5407226562501,75.79858398437497],[99.85136718750007,75.93027343749998],[99.8253906250001,76.13593749999995],[98.80566406250003,76.48066406250004],[100.84375,76.52519531250005],[101.59775390625006,76.43920898437503],[100.92802734375002,76.55673828124998],[100.98994140625004,76.99047851562497],[102.61015625000007,77.508544921875],[104.01455078125,77.73041992187501],[106.05957031249997,77.39052734375002],[104.20244140625002,77.101806640625],[106.9416015625001,77.034375],[107.42978515625006,76.92656250000002],[106.41357421874997,76.51225585937499],[107.72216796875003,76.52231445312498],[108.18164062500003,76.73784179687502],[111.39248046875,76.686669921875],[112.09394531250004,76.48032226562506],[111.94267578125002,76.38046875000003],[112.61953125,76.38354492187506],[112.65625,76.05356445312498],[113.2726562500001,76.25166015625001],[113.5638671875,75.89165039062502],[113.85722656250007,75.92128906250002],[113.56757812500004,75.56840820312499],[112.45302734375,75.83017578125003],[112.95566406250006,75.571923828125],[113.24296875000007,75.61142578125003],[113.72617187500012,75.45063476562498],[112.92490234375012,75.01503906249997],[109.84033203124997,74.32197265624998],[109.8102539062501,74.16918945312503],[108.19951171875002,73.69409179687497],[107.27109375000006,73.62104492187501],[106.67939453125004,73.3306640625],[106.1886718750001,73.3080078125],[105.14394531250005,72.77705078125001],[105.7082031250001,72.836669921875],[106.47792968750005,73.13940429687503],[107.750390625,73.17314453125007],[109.33105468749997,73.48745117187497],[109.85527343750002,73.47246093750002],[110.86816406249997,73.73071289062497],[109.70673828125004,73.74375],[110.2614257812501,74.01743164062503],[111.05625,73.93935546875002],[111.13085937500003,74.05283203125003],[111.55058593750007,74.02851562499998],[111.22812500000012,73.96855468750002],[111.40039062500003,73.827734375],[112.14726562500007,73.70893554687498],[112.79541015625003,73.74609375],[112.83593750000003,73.96206054687502],[113.03281250000006,73.91386718750007],[113.4162109375001,73.647607421875],[113.15693359375004,73.45957031249998],[113.49091796875004,73.34609375000002],[113.12783203125,72.8306640625],[113.66455078124997,72.63452148437503],[113.2155273437501,72.80585937500001],[113.88623046875003,73.34580078124998],[113.51035156250012,73.50498046874998],[115.33769531250007,73.70258789062501],[118.87089843750007,73.53789062500002],[118.45703124999997,73.46440429687507],[118.43027343750012,73.24653320312501],[119.750390625,72.97910156250006],[122.26015625,72.88056640624995],[122.75195312500003,72.906494140625],[122.61523437499997,73.02792968750006],[123.1603515625001,72.95488281250002],[123.62226562500004,73.19326171875],[123.49111328125005,73.666357421875],[124.54121093750004,73.75126953125007],[125.59853515625005,73.447412109375],[126.25449218750012,73.548193359375],[126.55253906250007,73.33491210937498],[127.03134765625006,73.54746093750003],[127.74033203125012,73.48154296875],[129.10058593750003,73.11235351562502],[128.5990234375,72.895166015625],[129.01728515625004,72.8724609375],[129.250390625,72.70517578125003],[128.41826171875002,72.53515625000003],[129.28134765625006,72.43769531249998],[129.41064453124997,72.16630859375002],[128.93496093750005,72.07949218750002],[127.8034179687501,72.43403320312504],[127.84140625000012,72.308251953125],[128.91142578125002,71.75532226562495],[129.21025390625007,71.91694335937501],[129.46083984375,71.73930664062499],[128.84326171875003,71.6634765625],[129.76191406250004,71.11953125000002],[130.53710937500003,70.89252929687495],[130.75712890625002,70.96235351562498],[131.02158203125006,70.74609374999997],[132.0353515625001,71.24404296875],[132.65390625000006,71.92597656250001],[133.6888671875,71.434228515625],[134.70273437500012,71.38681640625003],[135.55917968750006,71.6103515625],[136.09033203125003,71.61958007812501],[137.9396484375001,71.1333984375],[137.84404296875007,71.22680664062503],[138.31406250000006,71.32553710937498],[137.918359375,71.38408203124999],[138.23417968750007,71.596337890625],[138.78017578125,71.62900390624998],[139.209375,71.44477539062501],[139.98417968750007,71.49150390625005],[139.72294921875002,71.88496093749998],[139.35927734375005,71.95136718750001],[140.18769531250004,72.19130859374997],[139.17636718750006,72.16347656249997],[139.14082031250004,72.32973632812502],[139.60117187500012,72.49609374999997],[141.07929687500004,72.5869140625],[140.80820312500006,72.89096679687503],[142.06142578125005,72.72080078125],[146.25292968749997,72.442236328125],[146.234765625,72.34970703125],[144.77636718749997,72.38227539062495],[144.16923828125002,72.25878906250003],[144.29492187499997,72.19262695312497],[146.83183593750007,72.29541015625003],[146.11328125000003,71.94497070312497],[146.23027343750007,72.1375],[145.75859375000007,72.22587890624999],[145.75673828125005,71.94130859375002],[145.06396484374997,71.92607421875002],[145.18857421875012,71.69580078125],[146.07324218749997,71.80834960937503],[147.26181640625006,72.327880859375],[149.50156250000012,72.16430664062497],[150.01689453125002,71.89565429687505],[149.04873046875005,71.79575195312503],[148.9681640625,71.69047851562499],[150.59980468750004,71.5201171875],[150.09765624999997,71.22656249999997],[150.96777343749997,71.38046874999998],[151.58242187500005,71.28696289062503],[152.09277343749997,71.02329101562503],[151.76201171875002,70.98247070312499],[152.50878906250003,70.83447265625003],[156.68457031250003,71.09375],[158.03701171875005,71.03925781250001],[159.35068359375006,70.79072265625001],[160.00644531250006,70.30966796875006],[159.72939453125005,69.87021484375006],[160.91074218750012,69.60634765625002],[161.03554687500005,69.09819335937507],[161.30986328125007,68.98227539062498],[160.85605468750006,68.53833007812506],[161.565625,68.90517578125],[161.53691406250002,69.379541015625],[162.16601562499997,69.61157226562503],[163.20136718750004,69.71474609375],[166.82031250000003,69.49956054687505],[167.8568359375,69.72822265624998],[168.30302734375002,69.27148437500003],[169.31064453125006,69.07954101562498],[169.60986328124997,68.78603515624997],[170.53759765624997,68.82539062500001],[170.99541015625002,69.04531250000005],[170.58222656250004,69.58334960937506],[170.16093750000007,69.62656249999998],[170.48681640625003,70.107568359375],[173.27744140625006,69.823828125],[173.43867187500004,69.94682617187502],[175.92148437500012,69.89531250000002],[179.27265624999998,69.25966796875002],[180,68.98344726562505],[180,65.06723632812498],[178.51953125000003,64.60297851562498],[177.7486328125,64.71704101562503],[176.88085937499997,65.08193359375002],[176.34101562500015,65.04731445312501],[177.03730468750004,64.99965820312497],[177.22285156250004,64.861669921875],[177.06875,64.78666992187502],[176.06113281250012,64.96088867187498],[174.54882812500009,64.68388671875005],[176.0565429687501,64.90473632812498],[176.35097656250005,64.70512695312502],[176.14091796875007,64.58583984375005],[177.42744140625015,64.76337890624998],[177.43291015625002,64.44448242187502],[177.6875,64.30473632812507],[178.04472656250013,64.21958007812503],[178.22949218749991,64.36440429687497],[178.38144531250018,64.26088867187502],[178.73144531250003,63.667089843750006],[178.44042968750009,63.605566406250006],[178.74404296874994,63.39477539062503],[178.79296874999997,63.54033203125002],[179.38857421875,63.14721679687497],[179.25957031250002,63.00830078125],[179.5705078125001,62.6875],[179.12070312500012,62.32036132812499],[177.292578125,62.59902343750002],[177.33896484375006,62.781347656250034],[177.02353515625012,62.777246093749994],[177.15947265625007,62.56098632812498],[174.51435546875015,61.823632812499966],[173.6234375,61.716064453125],[173.13183593749997,61.40664062500002],[172.85654296875006,61.469189453124955],[172.90800781250002,61.311621093750006],[172.39609375000006,61.16738281250002],[172.39277343750004,61.061767578125],[170.60820312500007,60.434912109375034],[170.3509765625,59.965527343749955],[169.9826171875001,60.067089843749955],[169.2267578125001,60.59594726562497],[168.1375,60.57392578125001],[167.22675781250004,60.406298828125045],[166.27304687500012,59.85625],[166.13603515625007,59.979345703125034],[166.35214843750006,60.48481445312498],[165.08457031250006,60.09858398437498],[164.95371093750006,59.843603515625006],[164.52529296875,60.06127929687503],[164.11328125000003,59.89755859374998],[164.13505859375002,59.984375],[163.74384765625004,60.02802734374998],[163.36484375000012,59.78144531250004],[163.27285156250005,59.302587890625006],[162.14160156249997,58.44741210937502],[161.96005859375012,58.07690429687506],[162.39140625000002,57.717236328124955],[162.65429687499997,57.94824218750003],[163.22578125000004,57.790380859375034],[162.77929687500003,57.35761718749998],[162.79111328125012,56.875390624999966],[162.92207031250004,56.72265625000003],[163.2565429687501,56.68803710937499],[163.33554687500012,56.232519531250006],[163.04736328125003,56.044677734375],[162.84033203125003,56.065625],[162.628125,56.232275390625034],[163.03837890625002,56.521875],[162.67148437500006,56.49008789062498],[162.52822265625005,56.260693359374955],[162.08496093749997,56.08964843750002],[161.72392578125002,55.49614257812499],[162.10556640625006,54.75214843750004],[161.62480468750002,54.51625976562502],[160.77265625000004,54.54135742187498],[160.0744140625001,54.18916015625001],[159.84375,53.78364257812498],[160.02509765625004,53.129589843749955],[159.58593750000003,53.237695312499966],[158.74541015625002,52.90893554687506],[158.47207031250005,53.032373046874966],[158.6087890625,52.873632812500034],[158.49316406249997,52.383154296875034],[158.10351562500003,51.80961914062499],[156.84746093750002,51.006591796875],[156.74775390625004,50.969287109375045],[156.52119140625004,51.38027343750002],[156.36474609374997,52.509375],[156.11035156250003,52.86616210937504],[155.62031250000004,54.86455078125002],[155.5548828125001,55.348486328125034],[155.98251953125012,56.69521484375002],[156.8488281250001,57.290185546874994],[156.97675781250004,57.46630859375],[156.82988281250007,57.77963867187498],[157.4503906250001,57.79926757812498],[157.66640625000005,58.01977539062506],[158.27519531250007,58.00898437499998],[159.21064453125004,58.519433593749966],[159.8473632812501,59.127148437499955],[161.75351562500012,60.15229492187501],[162.06816406250002,60.466406250000034],[163.70996093749997,60.916796875000045],[163.55351562500002,61.02563476562503],[164.00546875000006,61.34379882812499],[163.80439453125004,61.46137695312498],[164.20722656250004,62.29223632812506],[164.59833984375004,62.470556640625034],[165.20810546875012,62.37397460937501],[165.41738281250005,62.447070312500045],[164.418359375,62.704638671875045],[163.33173828125004,62.550927734374994],[163.01767578125006,61.89106445312504],[163.25781249999997,61.69946289062497],[163.08525390625002,61.570556640625],[162.85595703125003,61.705029296874955],[162.39257812500003,61.662109375],[160.76660156249997,60.753320312499966],[160.17363281250002,60.638427734375],[160.37890625000003,61.02548828124998],[159.79042968750005,60.956640625],[160.309375,61.894384765625006],[159.55234375000012,61.71948242187497],[159.18925781250007,61.92939453125001],[158.07011718750002,61.75361328125001],[157.46933593750012,61.798925781250006],[157.0841796875001,61.67568359375002],[155.71611328125002,60.682373046875],[154.97080078125012,60.376660156249955],[154.29306640625006,59.833349609375034],[154.1498046875,59.52851562500001],[154.97128906250006,59.44960937500002],[155.16044921875002,59.19013671875001],[154.45800781250003,59.21655273437497],[154.01093750000004,59.075537109375006],[153.69521484375005,59.22475585937505],[153.36113281250002,59.214794921874955],[152.81787109375003,58.92626953124997],[152.31962890625002,59.03076171875003],[152.08789062499997,58.910449218750045],[151.32675781250006,58.875097656250034],[151.12109375000003,59.08251953125003],[152.26064453125,59.22358398437498],[151.34824218750012,59.561132812500006],[150.4835937500001,59.494384765625],[150.66728515625002,59.55634765625001],[149.64257812499997,59.770410156249994],[149.06523437500002,59.63051757812502],[149.20498046875,59.488183593749966],[148.79707031250004,59.532324218750006],[148.74414062499997,59.37353515624997],[148.96464843750007,59.36914062499997],[148.72666015625006,59.257910156250034],[148.25742187500006,59.414208984374994],[147.51445312500002,59.2685546875],[146.53720703125006,59.45698242187501],[146.0495117187501,59.17055664062502],[145.55458984375,59.413525390624955],[143.19218750000002,59.3701171875],[142.58027343750004,59.240136718749966],[140.79023437500004,58.30346679687503],[140.446875,57.81367187499998],[138.66210937500003,56.96552734375004],[137.69150390625006,56.13935546875004],[135.2625,54.94331054687498],[135.25771484375005,54.73149414062499],[135.85156249999997,54.583935546874955],[136.797265625,54.62099609375005],[136.71884765625006,53.804101562499994],[137.15537109375012,53.82167968750002],[137.14160156249997,54.182226562500006],[137.66601562500003,54.283300781250006],[137.3392578125,54.10053710937498],[137.83476562500002,53.94672851562498],[137.25371093750007,53.546142578125],[137.95048828125007,53.60356445312499],[138.52792968750012,53.959863281249994],[138.56914062500002,53.818798828124955],[138.24970703125004,53.524023437500034],[138.45068359375003,53.53701171875002],[138.69941406250004,53.869726562500034],[138.65722656249997,54.29833984375003],[139.31972656250005,54.19296874999998],[139.707421875,54.27714843749999],[140.68759765625012,53.59643554687503],[141.3737304687501,53.29277343749999],[141.18125,53.01528320312505],[140.83964843750002,53.087890625],[141.25585937499997,52.84013671874996],[141.13242187500006,52.435693359374994],[141.48525390625,52.17851562500002],[141.36689453125004,51.92065429687506],[140.93261718750003,51.61992187499999],[140.5208984375,50.80019531250005],[140.62451171874997,50.08242187500002],[140.46269531250002,49.911474609375006],[140.51718750000012,49.59614257812498],[140.17060546875004,48.52368164062497],[138.58681640625005,47.057226562500006],[138.33691406250003,46.543408203124955],[137.68544921875,45.81835937500003],[136.14228515625004,44.489111328125034],[135.87460937500012,44.37353515625003],[135.1310546875001,43.52573242187506],[134.01044921875004,42.94746093750001],[133.15996093750007,42.69697265624998],[132.70898437500003,42.875830078125006],[132.30380859375006,42.88330078125],[132.30957031249997,43.31352539062499],[131.8666015625,43.09516601562501],[131.93896484374997,43.30195312500004],[131.15830078125012,42.62602539062499],[130.709375,42.656396484374966],[130.8341796875001,42.52294921875006],[130.68730468750007,42.30253906249999]]],[[[107.69550781250004,78.13090820312505],[107.48164062500004,78.057763671875],[106.41552734375003,78.13984375000001],[107.69550781250004,78.13090820312505]]],[[[102.88476562499997,79.25395507812505],[102.4123046875001,78.83544921874997],[103.80078124999997,79.14926757812503],[104.45205078125005,78.880029296875],[105.14599609375003,78.81884765625006],[105.31259765625012,78.49990234375],[104.74179687500012,78.33974609374997],[102.79667968750007,78.18789062500002],[101.20410156249997,78.19194335937505],[99.50029296875002,77.97607421875003],[101.590625,79.350439453125],[102.25126953125002,79.25605468749995],[102.40488281250006,79.43320312499998],[102.88476562499997,79.25395507812505]]],[[[76.24892578125005,79.65107421874995],[77.58896484375012,79.50190429687504],[76.64951171875012,79.493408203125],[76.24892578125005,79.65107421874995]]],[[[92.68349609375005,79.685205078125],[91.37626953125007,79.83549804687505],[91.22929687500007,80.03071289062504],[93.803125,79.904541015625],[92.68349609375005,79.685205078125]]],[[[51.409277343750006,79.94423828125],[50.09140625,79.98056640625003],[50.93632812500002,80.09423828125],[51.409277343750006,79.94423828125]]],[[[59.68886718750005,79.95581054687506],[58.91923828125002,79.98461914062506],[59.54453125000006,80.11884765624995],[59.68886718750005,79.95581054687506]]],[[[97.67451171875004,80.15825195312499],[97.65166015625002,79.76064453125],[98.59648437500002,80.05219726562495],[100.0612304687501,79.77709960937506],[99.68066406250003,79.32333984374998],[99.04179687500007,79.29301757812502],[99.92929687500012,78.96142578124997],[98.41113281250003,78.78779296875004],[95.53105468750007,79.09809570312501],[95.02041015625005,79.05268554687498],[94.21875,79.40234375],[93.07080078124997,79.49531250000001],[94.98730468749997,80.096826171875],[95.28134765625012,80.030517578125],[97.67451171875004,80.15825195312499]]],[[[50.05175781250003,80.07431640625003],[49.55605468750005,80.15893554687503],[49.883691406249994,80.230224609375],[50.05175781250003,80.07431640625003]]],[[[57.07871093750006,80.35092773437498],[56.986914062500006,80.07148437499998],[55.811621093750006,80.08715820312497],[56.02441406250003,80.34130859374997],[57.07871093750006,80.35092773437498]]],[[[53.521386718749994,80.18520507812497],[52.34355468750002,80.213232421875],[52.85390625,80.40239257812499],[53.85166015625006,80.26835937500005],[53.521386718749994,80.18520507812497]]],[[[57.95625,80.12324218749995],[57.33232421875002,80.15810546875005],[57.075,80.49394531249999],[59.25546875000006,80.34321289062501],[58.39794921874997,80.31875],[57.95625,80.12324218749995]]],[[[54.41533203125002,80.47280273437502],[53.811914062499994,80.47622070312502],[53.87724609375002,80.60527343750002],[54.41533203125002,80.47280273437502]]],[[[47.441992187500006,80.853662109375],[48.44570312500005,80.80600585937506],[48.68359375000003,80.63325195312504],[47.7052734375001,80.76518554687499],[46.141406250000074,80.44672851562495],[45.969042968750074,80.56948242187502],[44.9049804687501,80.61127929687501],[47.441992187500006,80.853662109375]]],[[[62.167773437500074,80.83476562500005],[62.07578125000006,80.616943359375],[61.05126953124997,80.418603515625],[60.27832031249997,80.49443359374999],[59.649804687499994,80.43125],[59.59228515625003,80.81650390624998],[62.167773437500074,80.83476562500005]]],[[[50.278125,80.92724609374997],[51.70361328125003,80.68764648437502],[48.81103515625003,80.35371093750001],[48.97753906250003,80.16259765624997],[47.73730468749997,80.08168945312502],[47.89296875000005,80.23925781249997],[46.991015625000074,80.182763671875],[46.644433593749994,80.30034179687507],[47.89580078125002,80.52905273437503],[49.087792968749994,80.515771484375],[49.24433593750004,80.82138671875],[50.278125,80.92724609374997]]],[[[80.02666015625007,80.84814453125003],[79.09853515625005,80.81206054687505],[79.21738281250012,80.96035156249997],[80.27958984375007,80.94980468750003],[80.02666015625007,80.84814453125003]]],[[[61.1408203125001,80.95034179687497],[60.0783203125001,80.99916992187497],[61.45742187499999,81.10395507812501],[61.1408203125001,80.95034179687497]]],[[[54.71894531250004,81.11596679687497],[56.47226562500006,80.99824218749995],[57.58037109375002,80.75546874999998],[55.88339843750006,80.62841796875003],[54.66816406250004,80.73867187500002],[54.04541015624997,80.87197265625],[54.71894531250004,81.11596679687497]]],[[[58.62236328125002,81.04165039062502],[58.930566406249994,80.83168945312497],[58.28564453124997,80.76489257812503],[57.21093749999997,81.01708984374997],[58.04951171875004,81.11845703125002],[58.62236328125002,81.04165039062502]]],[[[63.37382812500002,80.70009765624997],[62.59257812500002,80.85302734375006],[64.80205078125002,81.197265625],[65.43740234375005,80.93071289062507],[63.37382812500002,80.70009765624997]]],[[[91.56718750000007,81.14121093750003],[91.2228515625001,81.063818359375],[89.90117187500002,81.17070312500002],[91.56718750000007,81.14121093750003]]],[[[96.52656250000004,81.0755859375],[97.86992187500007,80.76328125000006],[97.02539062499997,80.53554687500002],[97.29843750000006,80.27275390625005],[93.6546875,80.009619140625],[91.52382812500005,80.35854492187502],[93.2625,80.79125976562497],[92.59257812500007,80.780859375],[92.7103515625,80.87216796875003],[95.1595703125,81.27099609375003],[95.80068359375005,81.28046874999998],[96.52656250000004,81.0755859375]]],[[[57.81025390625004,81.54604492187502],[58.563867187499994,81.41840820312504],[57.858691406250074,81.36806640625],[57.76972656250004,81.16972656249999],[55.71669921875005,81.1884765625],[55.46601562500004,81.31118164062502],[57.81025390625004,81.54604492187502]]],[[[63.65097656250006,81.60932617187501],[62.10644531249997,81.679345703125],[63.709570312500006,81.68730468750002],[63.65097656250006,81.60932617187501]]],[[[58.29541015625003,81.715185546875],[58.13457031250002,81.82797851562498],[59.261816406250006,81.85419921874998],[59.35644531250003,81.75898437499995],[58.29541015625003,81.715185546875]]]]},"properties":{"name":"Russia","childNum":73}},{"geometry":{"type":"Polygon","coordinates":[[[30.50996093750001,-1.067285156250009],[30.47705078125,-1.0830078125],[30.47021484375,-1.131152343750003],[30.508105468750017,-1.208203125000011],[30.631933593750006,-1.367480468750003],[30.710742187500017,-1.396777343750003],[30.76220703125,-1.458691406250011],[30.812597656250006,-1.563085937500006],[30.8765625,-2.143359375],[30.85498046875,-2.265429687500003],[30.828710937500006,-2.338476562500006],[30.7625,-2.371679687500006],[30.71484375,-2.363476562500011],[30.656640625000023,-2.373828125],[30.593359375,-2.396777343750003],[30.553613281250023,-2.400097656250011],[30.408496093750017,-2.31298828125],[30.117285156250006,-2.416601562500006],[29.93017578125,-2.339550781250011],[29.8681640625,-2.71640625],[29.698046875000017,-2.794726562500003],[29.390234375,-2.80859375],[29.10205078125,-2.595703125],[29.01435546875001,-2.72021484375],[28.893945312500023,-2.635058593750003],[28.876367187500023,-2.400292968750009],[29.13154296875001,-2.195117187500003],[29.196582031250017,-1.719921875000011],[29.576953125000017,-1.387890625000011],[29.82539062500001,-1.335546875],[29.930078125000023,-1.469921875000011],[30.360253906250023,-1.074609375],[30.41230468750001,-1.063085937500006],[30.46992187500001,-1.066015625],[30.50996093750001,-1.067285156250009]]]},"properties":{"name":"Rwanda","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[41.98769531250005,16.715625],[42.059960937499994,16.803515625000017],[42.15781250000006,16.570703125000023],[41.80156250000002,16.778759765624955],[41.86044921875006,17.002539062499977],[41.98769531250005,16.715625]]],[[[46.53144531250004,29.09624023437499],[47.433203125,28.989550781250017],[47.671289062499994,28.53315429687504],[48.442480468750006,28.542919921874983],[48.80898437499999,27.895898437499966],[48.797167968750074,27.72431640625001],[49.2375,27.49272460937499],[49.17509765625002,27.43764648437505],[49.40527343749997,27.18095703124996],[50.149804687499994,26.66264648437499],[50.00810546875002,26.678515625000017],[50.21386718750003,26.30849609375005],[50.15546875000004,26.100537109374955],[50.03164062499999,26.11098632812505],[50.55791015625002,25.086669921875],[50.66689453125005,24.96381835937501],[50.72558593749997,24.869384765625057],[50.80439453125004,24.789257812499983],[50.928320312500006,24.595117187500023],[50.96601562500004,24.573925781249983],[51.022753906250074,24.56523437499999],[51.09335937500006,24.564648437499955],[51.178027343750074,24.586718750000017],[51.26796875,24.607226562500017],[51.33847656250006,24.564355468749994],[51.41123046875006,24.570800781250057],[51.30986328125002,24.340380859375017],[51.56835937500003,24.286181640625074],[51.592578125000074,24.07885742187503],[52.55507812500005,22.932812499999955],[55.104296875000074,22.621484375000023],[55.185839843750074,22.7041015625],[55.64101562499999,22.001855468749994],[54.97734375000002,19.995947265625006],[51.977636718750006,18.996142578125074],[49.04199218750003,18.58178710937503],[48.17216796875002,18.156933593749983],[47.57958984374997,17.448339843750034],[47.44179687499999,17.111865234375045],[47.14355468749997,16.946679687499966],[46.97568359375006,16.953466796875034],[46.72763671875006,17.26557617187501],[45.5353515625001,17.30205078124999],[45.14804687500006,17.427441406249955],[43.91699218749997,17.32470703124997],[43.41796875000003,17.516259765625023],[43.19091796875003,17.359375],[43.16503906249997,16.689404296874955],[42.79931640624997,16.37177734375001],[42.29394531249997,17.434960937499966],[41.75,17.88574218749997],[41.22949218750003,18.678417968749983],[40.75917968750005,19.755468750000034],[40.080664062500006,20.265917968750017],[39.728320312500074,20.390332031249955],[39.27607421875004,20.973974609375034],[39.093554687500074,21.31035156249999],[39.14707031250006,21.518994140624955],[38.98789062500006,21.88173828125005],[39.06201171874997,22.592187500000023],[38.46416015625002,23.71186523437504],[37.91972656250002,24.185400390625063],[37.54306640625006,24.291650390625023],[37.18085937500004,24.82001953125001],[37.26630859375004,24.960058593750034],[37.14882812499999,25.291113281249977],[35.18046875000002,28.03486328125004],[34.722070312499994,28.130664062500017],[34.625,28.064501953125017],[34.95078125,29.353515625],[36.068457031250006,29.200537109375006],[36.28281250000006,29.355371093750023],[36.47607421874997,29.49511718749997],[36.59179687500003,29.666113281250006],[36.703906250000074,29.831640624999977],[36.75527343750005,29.86601562499996],[37.46923828125003,29.995068359374955],[37.49072265625003,30.01171874999997],[37.55361328125005,30.14458007812496],[37.63359375000002,30.313281250000045],[37.64990234374997,30.330957031249994],[37.669726562500074,30.34814453125003],[37.862890625,30.44262695312503],[37.98007812500006,30.5],[37.47900390624997,31.007763671874955],[37.10527343750002,31.35517578125004],[36.95859375000006,31.491503906250017],[37.215625,31.55610351562501],[37.49335937500004,31.625878906250023],[38.111425781250006,31.78115234375005],[38.37548828124997,31.84746093749996],[38.962304687499994,31.99492187499999],[38.99707031249997,32.00747070312505],[39.145410156249994,32.12451171875],[39.36865234374997,32.09174804687498],[39.70410156250003,32.04252929687499],[40.02783203124997,31.995019531249994],[40.3693359375001,31.93896484375003],[40.47890625000005,31.89335937499999],[42.07441406250004,31.08037109374999],[43.77373046875002,29.84921875],[44.71650390625004,29.19360351562503],[46.35644531250003,29.06367187500001],[46.53144531250004,29.09624023437499]]]]},"properties":{"name":"Saudi Arabia","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[36.87138671875002,21.996728515624994],[36.92695312500001,21.58652343749999],[37.25859375000002,21.108544921874994],[37.25722656250002,21.03940429687499],[37.15058593750001,21.103759765625],[37.14111328125,20.98178710937499],[37.19316406250002,20.12070312499999],[37.471289062500006,18.820117187500003],[38.609472656250006,18.005078125],[38.422460937500006,17.823925781249997],[38.39716796875001,17.778369140625003],[38.38554687500002,17.751269531250003],[38.37373046875001,17.717333984375003],[38.34736328125001,17.68359375],[38.28984375000002,17.637011718750003],[38.26728515625001,17.61669921875],[38.253515625,17.584765625],[37.78242187500001,17.4580078125],[37.547460937500006,17.324121093749994],[37.51015625000002,17.288134765625003],[37.45292968750002,17.108691406250003],[37.41103515625002,17.06171875],[37.24882812500002,17.056884765625],[37.16953125,17.04140625],[37.0615234375,17.061279296875],[37.00898437500001,17.058886718750003],[36.995214843750006,17.020556640625003],[36.97578125000001,16.86655273437499],[36.97871093750001,16.800585937500003],[36.887792968750006,16.624658203124994],[36.91376953125001,16.296191406250003],[36.566015625,15.362109375],[36.4267578125,15.132080078125],[36.44814453125002,14.940087890624994],[36.470800781250006,14.736474609374994],[36.52431640625002,14.2568359375],[36.12519531250001,12.75703125],[35.67021484375002,12.623730468749997],[35.1123046875,11.816552734374994],[34.93144531250002,10.864794921874989],[34.77128906250002,10.746191406249991],[34.571875,10.880175781249989],[34.34394531250001,10.658642578124997],[34.31123046875001,10.190869140624997],[34.078125,9.461523437499991],[33.87148437500002,9.506152343749989],[33.96328125000002,9.861767578124997],[33.90703125000002,10.181445312499989],[33.13007812500001,10.745947265624991],[33.073339843750006,11.606103515624994],[33.199316406250006,12.21728515625],[32.721875,12.223095703124997],[32.73671875000002,12.009667968749994],[32.072265625,12.006738281249994],[32.338476562500006,11.710107421874994],[32.42080078125002,11.089111328125],[31.224902343750017,9.799267578124997],[30.75537109375,9.731201171875],[30.003027343750006,10.277392578124989],[29.60546875,10.065087890624994],[29.47314453125,9.768603515624989],[28.979589843750006,9.594189453124997],[28.844531250000017,9.326074218749994],[28.048925781250006,9.32861328125],[27.880859375,9.601611328124989],[27.07421875,9.613818359374989],[26.65869140625,9.484130859375],[25.91914062500001,10.169335937499994],[25.858203125000017,10.406494140625],[25.211718750000017,10.329931640624991],[25.066992187500006,10.293798828124991],[24.785253906250006,9.774658203125],[24.53193359375001,8.886914062499997],[24.147363281250023,8.665625],[23.53730468750001,8.815820312499994],[23.46826171875,9.11474609375],[23.62265625,9.340625],[23.646289062500017,9.822900390624994],[22.86005859375001,10.919677734375],[22.922656250000017,11.344873046874994],[22.591113281250017,11.579882812499989],[22.580957031250023,11.990136718749994],[22.472460937500017,12.067773437499994],[22.352343750000017,12.660449218749989],[21.928125,12.678125],[21.825292968750006,12.79052734375],[22.228125,13.32958984375],[22.1064453125,13.7998046875],[22.53857421875,14.161865234375],[22.38154296875001,14.550488281249997],[22.6708984375,14.722460937500003],[22.93232421875001,15.162109375],[22.933886718750017,15.533105468749994],[23.10517578125001,15.702539062499994],[23.970800781250006,15.721533203124991],[23.980273437500017,19.496630859375003],[23.980273437500017,19.99594726562499],[24.9794921875,20.002587890624994],[24.980273437500017,21.995849609375],[28.036425781250017,21.995361328125],[31.092675781250023,21.994873046875],[31.260644531250023,22.00229492187499],[31.400292968750023,22.202441406250003],[31.486132812500017,22.14780273437499],[31.434472656250023,21.995849609375],[36.87138671875002,21.996728515624994]]]},"properties":{"name":"Sudan","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[34.078125,9.461523437499991],[34.07275390625,8.545263671874991],[33.95332031250001,8.443505859374994],[33.28105468750002,8.437255859375],[32.99892578125002,7.899511718749991],[33.902441406250006,7.509521484375],[34.06425781250002,7.225732421874994],[34.71064453125001,6.660302734374994],[34.98359375000001,5.858300781249994],[35.26835937500002,5.492285156249991],[35.08447265625,5.311865234374991],[34.87832031250002,5.109570312499997],[34.63984375000001,4.87548828125],[34.38017578125002,4.620654296874989],[34.176855468750006,4.419091796874994],[33.97607421875,4.22021484375],[33.74160156250002,3.985253906249994],[33.568457031250006,3.81171875],[33.489355468750006,3.755078125],[32.99726562500001,3.880175781249989],[32.33574218750002,3.706201171874994],[32.13593750000001,3.519726562499997],[31.79804687500001,3.802636718749994],[31.547167968750017,3.677587890624991],[31.15234375,3.785595703124997],[30.83857421875001,3.49072265625],[30.757226562500023,3.62421875],[30.586718750000017,3.62421875],[30.50830078125,3.835693359375],[30.194921875,3.98193359375],[29.676855468750006,4.5869140625],[29.469628906250023,4.61181640625],[29.224902343750017,4.391894531249989],[28.72705078125,4.504980468749991],[28.427539062500017,4.324169921874997],[28.19208984375001,4.350244140624994],[27.7880859375,4.644677734374994],[27.4033203125,5.109179687499989],[27.143945312500023,5.722949218749989],[26.514257812500006,6.069238281249994],[26.30859375,6.455322265625],[26.36181640625,6.635302734374989],[25.27890625,7.427490234375],[25.18134765625001,7.557226562499991],[25.20039062500001,7.807910156249989],[24.853320312500017,8.137548828124991],[24.291406250000023,8.29140625],[24.147363281250023,8.665625],[24.53193359375001,8.886914062499997],[24.785253906250006,9.774658203125],[25.066992187500006,10.293798828124991],[25.211718750000017,10.329931640624991],[25.858203125000017,10.406494140625],[25.91914062500001,10.169335937499994],[26.65869140625,9.484130859375],[27.07421875,9.613818359374989],[27.880859375,9.601611328124989],[28.048925781250006,9.32861328125],[28.844531250000017,9.326074218749994],[28.979589843750006,9.594189453124997],[29.47314453125,9.768603515624989],[29.60546875,10.065087890624994],[30.003027343750006,10.277392578124989],[30.75537109375,9.731201171875],[31.224902343750017,9.799267578124997],[32.42080078125002,11.089111328125],[32.338476562500006,11.710107421874994],[32.072265625,12.006738281249994],[32.73671875000002,12.009667968749994],[32.721875,12.223095703124997],[33.199316406250006,12.21728515625],[33.073339843750006,11.606103515624994],[33.13007812500001,10.745947265624991],[33.90703125000002,10.181445312499989],[33.96328125000002,9.861767578124997],[33.87148437500002,9.506152343749989],[34.078125,9.461523437499991]]]},"properties":{"name":"S. Sudan","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-12.280615234374977,14.809033203124997],[-12.228417968749994,14.45859375],[-12.019189453124994,14.206494140624997],[-11.960888671874983,13.875292968750003],[-12.05419921875,13.633056640625],[-11.831689453124994,13.315820312499994],[-11.634960937499983,13.369873046875],[-11.390380859375,12.941992187499991],[-11.389404296875,12.404394531249991],[-12.399072265624994,12.340087890625],[-12.930712890624989,12.532275390624989],[-13.061279296875,12.489990234375],[-13.082910156249994,12.633544921875],[-13.729248046875,12.673925781249991],[-14.06484375,12.67529296875],[-14.349218749999977,12.676416015624994],[-15.196093749999989,12.679931640625],[-15.3779296875,12.588964843749991],[-15.574804687499977,12.490380859374994],[-15.839550781249983,12.43789062499999],[-16.144189453124994,12.45742187499999],[-16.24150390624999,12.443310546874997],[-16.41630859374999,12.36767578125],[-16.521337890624977,12.3486328125],[-16.656933593749983,12.364355468749991],[-16.711816406249994,12.354833984374991],[-16.76030273437499,12.52578125],[-16.44287109375,12.609472656249991],[-16.59765625,12.715283203124997],[-16.743896484375,12.58544921875],[-16.763330078124994,13.064160156249997],[-16.648779296874977,13.154150390624991],[-15.834277343749989,13.156445312499997],[-15.814404296874983,13.325146484374997],[-15.286230468749977,13.39599609375],[-15.151123046875,13.556494140624991],[-14.246777343749983,13.23583984375],[-13.826708984374989,13.4078125],[-13.977392578124977,13.54345703125],[-14.405468749999983,13.503710937500003],[-15.108349609374983,13.81210937499999],[-15.426855468749977,13.727001953124997],[-15.509667968749994,13.586230468750003],[-16.56230468749999,13.587304687499994],[-16.766943359374977,13.904931640624994],[-16.618115234374983,14.04052734375],[-16.791748046875,14.004150390625],[-17.168066406249977,14.640625],[-17.345800781249977,14.729296875],[-17.445019531249983,14.651611328125],[-17.53564453125,14.755126953125],[-17.147167968749983,14.922021484374994],[-16.843408203124994,15.293994140625003],[-16.570751953124983,15.734423828125003],[-16.535253906249977,15.83837890625],[-16.502050781249977,15.917333984374991],[-16.480078124999977,16.097216796875003],[-16.441015624999977,16.204541015624997],[-16.239013671875,16.531298828125003],[-15.768212890624994,16.485107421875],[-14.990625,16.676904296874994],[-14.300097656249989,16.580273437499997],[-13.868457031249989,16.148144531249997],[-13.756640624999989,16.172509765624994],[-13.40966796875,16.05917968749999],[-13.105273437499989,15.57177734375],[-12.735253906249994,15.13125],[-12.40869140625,14.889013671874991],[-12.280615234374977,14.809033203124997]]]},"properties":{"name":"Senegal","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[103.9697265625,1.331445312499994],[103.65019531249999,1.325537109374991],[103.81796875000003,1.447070312499989],[103.9697265625,1.331445312499994]]]},"properties":{"name":"Singapore","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-37.10332031249996,-54.065625],[-36.70380859375001,-54.10810546874999],[-36.64741210937498,-54.26230468749996],[-36.32646484374996,-54.251171875],[-35.79858398437497,-54.76347656250002],[-36.08549804687499,-54.86679687500001],[-36.885986328125,-54.33945312499996],[-37.63090820312496,-54.16748046875001],[-37.61884765625001,-54.04208984375004],[-38.017431640625034,-54.008007812500026],[-37.10332031249996,-54.065625]]]},"properties":{"name":"S. Geo. and S. Sandw. Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-5.692138671874972,-15.997753906249997],[-5.782519531250017,-16.00400390625002],[-5.707861328124977,-15.90615234374998],[-5.692138671874972,-15.997753906249997]]]},"properties":{"name":"Saint Helena","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[160.57626953125006,-11.797851562500028],[160.44306640625004,-11.814941406249957],[159.98632812499997,-11.494726562500006],[160.57626953125006,-11.797851562500028]]],[[[166.13320312500005,-10.757812499999972],[165.90400390625004,-10.851464843749966],[165.79101562500003,-10.784765624999963],[166.02382812500005,-10.6611328125],[166.13320312500005,-10.757812499999972]]],[[[161.71533203124997,-10.387304687499991],[162.10537109375005,-10.45380859375004],[162.37333984375002,-10.823242187499986],[161.78681640625004,-10.716894531249991],[161.53789062500007,-10.566406249999972],[161.4870117187501,-10.361425781249963],[161.29394531250003,-10.326464843750031],[161.30478515625012,-10.204394531250031],[161.71533203124997,-10.387304687499991]]],[[[161.54785156249997,-9.625683593749997],[161.55380859375012,-9.769726562500026],[161.40976562500006,-9.681640625000028],[161.36416015625,-9.353417968750037],[161.54785156249997,-9.625683593749997]]],[[[159.75039062500005,-9.272656250000011],[159.97060546875,-9.433300781249969],[160.35458984375006,-9.421582031249983],[160.81894531250006,-9.862792968749986],[160.64921875000002,-9.92861328124998],[159.80273437499997,-9.763476562500003],[159.61230468749997,-9.470703124999943],[159.62558593750012,-9.311230468749969],[159.75039062500005,-9.272656250000011]]],[[[160.1681640625001,-8.995507812500037],[160.40751953125007,-9.140332031249969],[160.10537109375,-9.080761718749997],[160.1681640625001,-8.995507812500037]]],[[[159.18857421875006,-9.123535156250014],[159.03632812500004,-9.075],[159.12978515625,-8.99306640624998],[159.22841796875005,-9.029980468749955],[159.18857421875006,-9.123535156250014]]],[[[158.10791015625003,-8.684179687500034],[157.93759765625006,-8.73642578125002],[157.90927734375006,-8.565625],[158.10546874999997,-8.536816406250026],[158.10791015625003,-8.684179687500034]]],[[[157.38896484375002,-8.713476562499963],[157.2123046875,-8.565039062500006],[157.37949218750012,-8.420898437499943],[157.38896484375002,-8.713476562499963]]],[[[160.7494140625,-8.313964843750014],[160.99765625000006,-8.612011718749983],[160.94433593750003,-8.799023437499983],[161.15869140624997,-8.961816406250009],[161.36738281250004,-9.61123046874998],[160.77207031250012,-8.963867187499986],[160.7140625000001,-8.539257812499997],[160.59042968750006,-8.372753906249997],[160.7494140625,-8.313964843750014]]],[[[157.76347656250002,-8.242187499999957],[157.89843749999997,-8.506347656249943],[157.81933593750003,-8.612011718749983],[157.58789062500003,-8.445410156249963],[157.5580078125,-8.269921875],[157.30244140625004,-8.33330078124996],[157.21757812500002,-8.262792968749977],[157.490625,-7.965722656250037],[157.76347656250002,-8.242187499999957]]],[[[157.171875,-8.108105468749997],[156.95830078125002,-8.014355468749997],[157.02412109375004,-7.867871093749997],[157.18613281250006,-7.941210937500017],[157.171875,-8.108105468749997]]],[[[156.687890625,-7.92304687500004],[156.5109375000001,-7.707812499999974],[156.5609375,-7.574023437499989],[156.80908203124997,-7.722851562500026],[156.687890625,-7.92304687500004]]],[[[159.8791015625001,-8.534277343749949],[158.9440429687501,-8.04072265625004],[158.457421875,-7.544726562499974],[158.734375,-7.604296875000031],[159.43144531250002,-8.029003906249955],[159.84306640625002,-8.326953124999989],[159.8791015625001,-8.534277343749949]]],[[[155.83984374999997,-7.097167968750014],[155.67753906250002,-7.08896484375002],[155.73896484375004,-6.972949218750017],[155.83984374999997,-7.097167968750014]]],[[[157.48671875000005,-7.330371093750003],[157.44130859375,-7.425683593749966],[157.10156249999997,-7.323632812499966],[156.4525390625,-6.638281249999963],[157.03027343750003,-6.891992187499952],[157.19335937499997,-7.160351562499997],[157.48671875000005,-7.330371093750003]]]]},"properties":{"name":"Solomon Is.","childNum":16}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-12.526074218749926,7.436328125000017],[-12.951611328124926,7.570849609374989],[-12.615234374999972,7.63720703125],[-12.5125,7.582421875000037],[-12.526074218749926,7.436328125000017]]],[[[-10.758593749999989,9.385351562499991],[-10.682714843750006,9.289355468749974],[-10.687646484374937,9.261132812499994],[-10.749951171874926,9.12236328124996],[-10.747021484374955,9.095263671875045],[-10.726855468749932,9.081689453125023],[-10.615966796875,9.059179687499977],[-10.500537109375017,8.687548828125017],[-10.677343749999977,8.400585937499997],[-10.712109374999955,8.335253906250017],[-10.686962890624983,8.321679687500009],[-10.652636718749989,8.330273437499983],[-10.604003906249943,8.319482421874994],[-10.55771484374992,8.315673828125028],[-10.496435546874977,8.362109374999974],[-10.394433593749966,8.480957031250028],[-10.360058593749983,8.49550781249998],[-10.283203124999972,8.48515625],[-10.285742187499949,8.454101562499986],[-10.314648437499983,8.310839843750017],[-10.359814453124926,8.187939453125026],[-10.570849609374932,8.071142578125034],[-10.6474609375,7.759375],[-10.878076171874994,7.538232421874994],[-11.267675781249977,7.232617187499997],[-11.507519531249983,6.906542968750003],[-12.48564453124996,7.386279296875045],[-12.480273437499932,7.75327148437502],[-12.697607421874977,7.715869140625045],[-12.850878906249932,7.818701171875034],[-12.956933593749966,8.145312500000045],[-13.148974609374989,8.214599609375043],[-13.272753906249989,8.429736328124989],[-13.085009765624932,8.42475585937504],[-12.894091796874932,8.62978515624998],[-13.181835937499955,8.576904296875043],[-13.206933593749994,8.843115234375006],[-13.059472656249966,8.881152343750031],[-13.292675781249955,9.04921875],[-13.077294921874966,9.069628906249974],[-12.958789062499989,9.263330078124994],[-12.755859374999943,9.373583984374989],[-12.557861328125,9.704980468749994],[-12.427978515625028,9.898144531250011],[-12.142333984375,9.87539062499999],[-11.911083984374955,9.993017578124977],[-11.273632812499955,9.996533203124983],[-11.205664062499949,9.977734374999969],[-11.180859374999955,9.925341796875045],[-11.047460937499977,9.786328125000054],[-10.758593749999989,9.385351562499991]]]]},"properties":{"name":"Sierra Leone","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-89.36259765624999,14.416015625],[-89.1205078125,14.370214843749991],[-88.51254882812499,13.978955078124997],[-88.504345703125,13.964208984374991],[-88.49765625,13.904541015625],[-88.482666015625,13.854248046875],[-88.44912109375,13.850976562499994],[-88.40849609374999,13.87539062499999],[-88.27622070312499,13.942675781250003],[-88.151025390625,13.987353515625003],[-87.99101562499999,13.879638671875],[-87.8919921875,13.894970703124997],[-87.80224609375,13.889990234374991],[-87.7314453125,13.841064453125],[-87.71533203125,13.812695312499997],[-87.781884765625,13.521386718749994],[-87.930859375,13.1806640625],[-88.68564453124999,13.281494140625],[-88.51201171874999,13.183935546874991],[-89.80419921875,13.560107421875003],[-90.09521484375,13.736523437499997],[-90.04814453124999,13.904052734375],[-89.54716796874999,14.241259765625003],[-89.5736328125,14.390087890624997],[-89.36259765624999,14.416015625]]]},"properties":{"name":"El Salvador","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-56.26708984374997,46.838476562500034],[-56.38476562499994,46.81943359375006],[-56.36464843749994,47.09897460937498],[-56.26708984374997,46.838476562500034]]]},"properties":{"name":"St. Pierre and Miquelon","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[6.659960937499989,0.120654296874989],[6.51972656250004,0.066308593750023],[6.468164062499994,0.22734375],[6.68691406250008,0.404394531249977],[6.75,0.24345703124996],[6.659960937499989,0.120654296874989]]],[[[7.423828125,1.567724609375006],[7.330664062500034,1.603369140624991],[7.414453125000051,1.699121093750037],[7.423828125,1.567724609375006]]]]},"properties":{"name":"São Tomé and Principe","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-54.03422851562499,3.62939453125],[-54.00957031249999,3.448535156249989],[-54.06318359375,3.353320312499989],[-54.18803710937499,3.178759765624989],[-54.203125,3.13818359375],[-54.17070312499999,2.993603515624997],[-54.18808593749999,2.874853515624991],[-54.1955078125,2.81787109375],[-54.256738281249994,2.713720703124991],[-54.402001953124994,2.461523437499991],[-54.53593749999999,2.343310546874989],[-54.56840820312499,2.342578124999989],[-54.604736328125,2.335791015624991],[-54.61625976562499,2.326757812499991],[-54.661865234375,2.327539062499994],[-54.697412109374994,2.359814453124997],[-54.72221679687499,2.441650390625],[-54.87607421874999,2.450390625],[-54.92656249999999,2.497363281249989],[-54.968408203124994,2.54833984375],[-54.978662109374994,2.59765625],[-55.005810546875,2.59296875],[-55.0703125,2.54833984375],[-55.11411132812499,2.539208984374994],[-55.1876953125,2.547509765624994],[-55.286035156249994,2.499658203124994],[-55.343994140625,2.48876953125],[-55.38535156249999,2.440625],[-55.73056640624999,2.406152343749994],[-55.957470703125,2.520458984374997],[-55.99350585937499,2.497509765624997],[-56.02036132812499,2.392773437499997],[-56.0451171875,2.364404296874994],[-56.087792968749994,2.34130859375],[-56.12939453125,2.299511718749997],[-56.1376953125,2.259033203125],[-56.073632812499994,2.236767578124997],[-56.02006835937499,2.158154296874997],[-55.96196289062499,2.095117187499994],[-55.91533203124999,2.03955078125],[-55.921630859375,1.976660156249991],[-55.929638671875,1.8875],[-56.01992187499999,1.842236328124997],[-56.4828125,1.942138671875],[-56.704345703125,2.036474609374991],[-57.19736328124999,2.853271484375],[-57.303662109375,3.377099609374994],[-57.646728515625,3.39453125],[-58.05429687499999,4.101660156249991],[-57.84599609374999,4.668164062499997],[-57.91704101562499,4.820410156249991],[-57.711083984374994,4.991064453124991],[-57.331005859375,5.020166015624994],[-57.20981445312499,5.195410156249991],[-57.3185546875,5.335351562499994],[-57.194775390625,5.5484375],[-56.96982421874999,5.992871093749997],[-56.235595703125,5.885351562499991],[-55.897607421874994,5.699316406249991],[-55.909912109375,5.892626953124989],[-55.648339843749994,5.985888671874989],[-54.83369140625,5.988330078124989],[-54.05419921875,5.807910156249989],[-54.08046875,5.502246093749989],[-54.4796875,4.836523437499991],[-54.350732421874994,4.054101562499994],[-54.03422851562499,3.62939453125]]]},"properties":{"name":"Suriname","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[22.538671875,49.072705078125],[22.52412109375001,49.031396484374994],[22.389453125000017,48.873486328125],[22.295214843750017,48.685839843749996],[22.142871093750017,48.568505859374994],[22.1318359375,48.405322265624996],[21.766992187500023,48.3380859375],[21.45136718750001,48.55224609375],[20.490039062500017,48.526904296874996],[20.333789062500017,48.295556640624994],[19.95039062500001,48.146630859374994],[19.625390625000023,48.223095703125],[18.791894531250023,48.000292968749996],[18.72421875,47.787158203124996],[17.76191406250001,47.770166015624994],[17.147363281250023,48.00595703125],[16.86542968750001,48.3869140625],[16.953125,48.598828125],[17.135644531250023,48.841064453125],[17.75849609375001,48.888134765625],[18.0859375,49.06513671875],[18.160937500000017,49.257373046874996],[18.83222656250001,49.510791015624996],[19.1494140625,49.4],[19.44160156250001,49.597705078124996],[19.77392578125,49.37216796875],[19.756640625000017,49.204394531249996],[20.0576171875,49.181298828124994],[20.36298828125001,49.38525390625],[20.868457031250017,49.314697265625],[21.079394531250017,49.418261718749996],[21.6396484375,49.411962890625],[22.020117187500006,49.209521484374996],[22.473046875000023,49.081298828125],[22.538671875,49.072705078125]]]},"properties":{"name":"Slovakia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[16.516210937500006,46.499902343749994],[16.427636718750023,46.5244140625],[16.321191406250023,46.534619140625],[16.1064453125,46.382226562499994],[15.608984375,46.171923828124996],[15.592578125000017,46.139990234375],[15.596875,46.109228515625],[15.675585937500017,45.983691406249996],[15.652148437500017,45.862158203125],[15.277050781250011,45.7326171875],[15.353710937500011,45.659912109375],[15.283593750000023,45.5796875],[15.291210937500011,45.541552734374996],[15.32666015625,45.502294921875],[15.339453125,45.467041015625],[15.242089843750023,45.44140625],[15.110449218750006,45.45078125],[14.95458984375,45.499902343749994],[14.793066406250006,45.47822265625],[14.649511718750006,45.571484375],[14.591796875,45.651269531249994],[14.56884765625,45.6572265625],[14.548448660714302,45.628388671875],[14.507586495535731,45.59039341517857],[14.42734375,45.505761718749994],[14.369921875000017,45.4814453125],[13.878710937500017,45.428369140624994],[13.577929687500017,45.516894531249996],[13.8447265625,45.59287109375],[13.831152343750006,45.680419921875],[13.663476562500023,45.7919921875],[13.6005859375,45.979785156249996],[13.509179687500023,45.973779296874994],[13.487695312500023,45.987109375],[13.480273437500017,46.009228515625],[13.486425781250006,46.03955078125],[13.548046875000011,46.089111328125],[13.616601562500023,46.133105468749996],[13.634960937500011,46.157763671874996],[13.632519531250011,46.177050781249996],[13.420996093750006,46.212304687499994],[13.399511718750006,46.317529296874994],[13.563281250000017,46.415087890624996],[13.637109375000023,46.448535156249996],[13.6796875,46.462890625],[13.7,46.520263671875],[14.5498046875,46.399707031249996],[14.893261718750011,46.605908203125],[15.957617187500006,46.677636718749994],[16.093066406250017,46.86328125],[16.283593750000023,46.857275390625],[16.516210937500006,46.499902343749994]]]},"properties":{"name":"Slovenia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[16.52851562500001,56.29052734375],[16.431640625,56.24375],[16.41230468750004,56.568994140624994],[17.02539062499997,57.345068359375006],[16.52851562500001,56.29052734375]]],[[[19.076464843750045,57.8359375],[18.813867187500023,57.70620117187502],[18.907910156250068,57.39833984375002],[18.146386718749994,56.920507812500006],[18.285351562500068,57.08320312500001],[18.136523437500045,57.55664062500003],[18.53740234374999,57.83056640625006],[18.90058593750001,57.91547851562504],[19.076464843750045,57.8359375]]],[[[19.156347656250063,57.92260742187497],[19.086523437500034,57.86499023437506],[19.134863281250034,57.98134765625002],[19.331445312500023,57.962890625],[19.156347656250063,57.92260742187497]]],[[[24.15546875000004,65.80527343750006],[23.102343750000074,65.73535156250003],[22.400976562500006,65.86210937499999],[22.254003906250006,65.59755859375002],[21.565527343750063,65.40810546874997],[21.609179687500074,65.261376953125],[21.410351562500068,65.31743164062505],[21.57392578125001,65.12578124999999],[21.138183593750057,64.80869140625006],[21.519628906250034,64.46308593749998],[20.76269531250003,63.86782226562505],[18.60644531250003,63.17827148437499],[18.31289062500008,62.996386718750045],[18.46308593750004,62.895849609375006],[18.170019531250034,62.789355468750074],[17.906640625000023,62.88676757812502],[18.037304687500068,62.60053710937498],[17.834472656250057,62.50273437500002],[17.410253906250063,62.508398437500034],[17.633691406249994,62.23300781250006],[17.374511718750057,61.866308593750034],[17.465429687500006,61.68447265625005],[17.196386718750006,61.72456054687504],[17.13076171875005,61.57573242187499],[17.25097656250003,60.70078125],[17.6611328125,60.53515625000003],[17.955761718750068,60.589794921874955],[18.85273437500001,60.02587890625],[18.970507812500045,59.757226562499994],[17.964257812500023,59.359375],[18.56025390625004,59.39448242187498],[18.285351562500068,59.109375],[16.978125,58.65415039062506],[16.214257812500023,58.636669921874955],[16.92382812499997,58.49257812499999],[16.651953125,58.43432617187503],[16.65224609375008,57.50068359374998],[16.348730468750063,56.70927734374996],[15.826660156250028,56.12495117187501],[14.782031250000017,56.16191406250002],[14.754785156250051,56.03315429687498],[14.401953125000034,55.97675781250004],[14.21503906250004,55.83261718749998],[14.341699218749994,55.52773437500002],[14.17373046875008,55.396630859374966],[12.885839843750063,55.41137695312506],[12.973925781250074,55.748144531250006],[12.471191406250057,56.29052734375],[12.801660156250051,56.263916015625],[12.65644531250004,56.44057617187502],[12.857421875000028,56.45239257812503],[12.883691406250051,56.61772460937496],[12.421484375000034,56.906396484374966],[11.449316406250063,58.118359374999955],[11.43154296875008,58.339990234374994],[11.24824218750004,58.369140625],[11.14716796875004,58.98862304687498],[11.19580078125,59.07827148437505],[11.388281250000063,59.036523437499966],[11.470703125000057,58.909521484375034],[11.64277343750004,58.92607421875002],[11.798144531250074,59.28989257812498],[11.680761718750034,59.59228515625003],[12.486132812500074,60.10678710937506],[12.588671874999989,60.450732421875045],[12.29414062500004,61.00268554687506],[12.706054687500028,61.059863281250074],[12.88076171875008,61.35229492187506],[12.155371093750006,61.720751953125045],[12.303515625000074,62.28559570312501],[11.999902343750051,63.29169921875001],[12.175195312500051,63.595947265625],[12.792773437500017,64],[13.203515625000023,64.07509765625],[13.960546875000063,64.01401367187498],[14.141210937500006,64.17353515624998],[14.077636718750028,64.464013671875],[13.650292968750023,64.58154296874997],[14.47968750000004,65.30146484374998],[14.543261718750045,66.12934570312498],[15.483789062500051,66.30595703124999],[15.422949218750006,66.48984374999998],[16.40351562500004,67.05498046875002],[16.12744140625,67.42583007812507],[16.783593750000023,67.89501953125],[17.324609375000023,68.10380859374999],[17.91669921875001,67.96489257812502],[18.303027343750045,68.55541992187497],[19.969824218750063,68.35639648437501],[20.348046875000023,68.84873046875003],[20.116699218750057,69.02089843750005],[20.622167968750006,69.036865234375],[21.99746093750005,68.52060546874998],[22.854101562500034,68.36733398437502],[23.63886718750004,67.95439453125002],[23.454882812500045,67.46025390625007],[23.733593750000068,67.42290039062499],[23.64150390625005,67.12939453124997],[23.988574218750045,66.81054687500003],[23.700292968750034,66.25263671874998],[24.15546875000004,65.80527343750006]]]]},"properties":{"name":"Sweden","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[31.9482421875,-25.957617187500006],[32.060546875,-26.018359375],[32.04140625000002,-26.28125],[32.10595703125,-26.52001953125],[32.112890625,-26.839453125],[32.02480468750002,-26.811132812500006],[31.994726562500006,-26.817480468750006],[31.967187500000023,-26.96064453125001],[31.946093750000017,-27.173632812500003],[31.958398437500023,-27.30585937500001],[31.742578125000023,-27.30996093750001],[31.469531250000017,-27.295507812500006],[31.274023437500006,-27.238378906250006],[31.063378906250023,-27.1123046875],[30.938085937500006,-26.915820312500003],[30.88330078125,-26.79238281250001],[30.806738281250006,-26.785253906250006],[30.794335937500023,-26.764257812500006],[30.803320312500006,-26.41347656250001],[31.08808593750001,-25.98066406250001],[31.207324218750017,-25.843359375],[31.33515625000001,-25.75556640625001],[31.382617187500017,-25.74296875],[31.415136718750006,-25.74658203125],[31.921679687500017,-25.96875],[31.9482421875,-25.957617187500006]]]},"properties":{"name":"Swaziland","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[55.54033203125002,-4.693066406250011],[55.54296875,-4.785546875],[55.383398437500006,-4.609277343750009],[55.45576171875001,-4.558789062500011],[55.54033203125002,-4.693066406250011]]]},"properties":{"name":"Seychelles","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[42.358984375,37.10859375],[41.78857421875,36.59716796875],[41.41679687500002,36.5146484375],[41.295996093750006,36.383349609374996],[41.354101562500006,35.640429687499996],[41.19472656250002,34.768994140625],[40.98701171875001,34.429052734375],[38.773535156250006,33.372216796874994],[36.818359375,32.317285156249994],[36.3720703125,32.3869140625],[35.78730468750001,32.734912109374996],[35.91347656250002,32.94960937499999],[35.869140625,33.43173828125],[36.03447265625002,33.58505859375],[35.98613281250002,33.75263671875],[36.36503906250002,33.83935546875],[36.27783203125,33.92529296875],[36.5849609375,34.221240234374996],[36.50439453125,34.432373046875],[36.32988281250002,34.499609375],[36.383886718750006,34.65791015625],[35.97626953125001,34.629199218749996],[35.902441406250006,35.420703125],[35.76445312500002,35.571582031249996],[35.83964843750002,35.84921875],[35.892675781250006,35.916552734374996],[35.96757812500002,35.910058593749994],[36.12734375000002,35.831445312499994],[36.15361328125002,35.833886718749994],[36.34755859375002,36.003515625],[36.37539062500002,36.171240234375],[36.63671875,36.233984375],[36.64140625000002,36.263525390625],[36.5375,36.45742187499999],[36.54667968750002,36.50634765625],[36.596875,36.7013671875],[36.62841796875,36.777685546875],[36.65859375000002,36.802539062499996],[36.77656250000001,36.79267578125],[36.94179687500002,36.7583984375],[36.9853515625,36.702392578125],[37.06621093750002,36.652636718749996],[37.43632812500002,36.643310546875],[37.523535156250006,36.6783203125],[37.7203125,36.743701171874996],[37.90664062500002,36.79462890625],[38.19169921875002,36.9015625],[38.7666015625,36.693115234375],[38.90644531250001,36.694677734375],[39.1083984375,36.680566406249994],[39.35664062500001,36.681591796875],[39.50146484375,36.70224609375],[39.6865234375,36.738623046875],[40.01640625000002,36.826074218749994],[40.705664062500006,37.097705078124996],[41.886816406250006,37.156396484374994],[42.05986328125002,37.2060546875],[42.16787109375002,37.288623046874996],[42.202734375,37.29726562499999],[42.24755859375,37.2822265625],[42.2685546875,37.2765625],[42.31289062500002,37.22958984375],[42.358984375,37.10859375]]]},"properties":{"name":"Syria","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-72.3328125,21.85136718749999],[-72.14433593750002,21.79272460937503],[-72.33544921874994,21.758007812499983],[-72.3328125,21.85136718749999]]]},"properties":{"name":"Turks and Caicos Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[23.980273437500017,19.496630859375003],[23.970800781250006,15.721533203124991],[23.10517578125001,15.702539062499994],[22.933886718750017,15.533105468749994],[22.93232421875001,15.162109375],[22.6708984375,14.722460937500003],[22.38154296875001,14.550488281249997],[22.53857421875,14.161865234375],[22.1064453125,13.7998046875],[22.228125,13.32958984375],[21.825292968750006,12.79052734375],[21.928125,12.678125],[22.352343750000017,12.660449218749989],[22.472460937500017,12.067773437499994],[22.580957031250023,11.990136718749994],[22.591113281250017,11.579882812499989],[22.922656250000017,11.344873046874994],[22.86005859375001,10.919677734375],[22.49384765625001,10.996240234374994],[21.771484375,10.642822265625],[21.682714843750006,10.289843749999989],[20.773242187500017,9.405664062499994],[20.342089843750017,9.127099609374994],[18.95625,8.938867187499994],[18.886035156250017,8.836035156249991],[19.108691406250017,8.656152343749994],[18.56416015625001,8.0458984375],[17.6494140625,7.98359375],[16.784765625,7.550976562499997],[16.545312500000023,7.865478515625],[16.37890625,7.683544921874997],[15.957617187500006,7.507568359375],[15.480078125,7.523779296874991],[15.5498046875,7.787890624999989],[15.1162109375,8.557324218749997],[14.332324218750017,9.20351562499999],[13.977246093750011,9.691552734374994],[14.243261718750006,9.979736328125],[15.654882812500006,10.0078125],[15.276074218750011,10.357373046874997],[15.132226562500023,10.648486328124989],[15.029882812500006,11.11367187499999],[15.08125,11.845507812499989],[14.847070312500023,12.502099609374994],[14.461718750000017,13.021777343749989],[14.244824218750011,13.07734375],[14.06396484375,13.07851562499999],[13.932324218750011,13.258496093749997],[13.606347656250023,13.70458984375],[13.505761718750023,14.134423828124994],[13.4482421875,14.380664062500003],[14.367968750000017,15.750146484374994],[15.474316406250011,16.908398437499997],[15.735058593750011,19.904052734375],[15.963183593750017,20.34619140625],[15.587109375000011,20.733300781249994],[15.607324218750023,20.954394531250003],[15.181835937500011,21.523388671874997],[14.97900390625,22.99619140624999],[15.984082031250011,23.445214843749994],[20.14765625000001,21.38925781249999],[23.980273437500017,19.496630859375003]]]},"properties":{"name":"Chad","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[0.900488281250006,10.993261718749991],[0.763378906250011,10.386669921874997],[1.330078125,9.996972656249994],[1.3857421875,9.361669921874991],[1.600195312500006,9.050048828125],[1.624707031250011,6.997314453125],[1.530957031250011,6.992431640625],[1.777929687500006,6.294628906249997],[1.62265625,6.216796875],[1.187207031250011,6.089404296874989],[0.736914062500006,6.452587890624997],[0.525585937500011,6.850927734374991],[0.634765625,7.353662109374994],[0.5,7.546875],[0.686328125000017,8.354882812499994],[0.37255859375,8.75927734375],[0.48876953125,8.851464843749994],[0.525683593750017,9.398486328124989],[0.2333984375,9.463525390624994],[0.342578125000017,9.604150390624994],[0.264550781250023,9.644726562499997],[0.380859375,10.291845703124991],[-0.08632812499999,10.673046875],[0.009423828125023,11.02099609375],[-0.068603515625,11.115625],[0.49267578125,10.954980468749994],[0.900488281250006,10.993261718749991]]]},"properties":{"name":"Togo","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[98.40908203125005,7.90205078125004],[98.2962890625,7.776074218750054],[98.32207031250007,8.166308593749974],[98.4349609375,8.085644531249969],[98.40908203125005,7.90205078125004]]],[[[100.070703125,9.58603515625002],[99.96240234375003,9.421630859375],[99.93955078125006,9.559960937500037],[100.070703125,9.58603515625002]]],[[[102.42675781250003,11.988720703125026],[102.30195312500004,11.98081054687502],[102.27744140625006,12.151855468750043],[102.42675781250003,11.988720703125026]]],[[[100.12246093750005,20.316650390625057],[100.11494140625004,20.257666015625034],[100.13974609375012,20.245410156250017],[100.31796875000006,20.38588867187505],[100.51953125000003,20.17792968750004],[100.39765625000004,19.756103515625],[100.51357421875005,19.553466796875],[101.21191406249997,19.54833984375003],[101.22080078125006,19.486621093750074],[101.19755859375007,19.327929687500074],[101.2863281250001,18.977148437500006],[101.04697265625012,18.441992187500063],[101.05058593750002,18.407031250000045],[101.1375,18.28686523437497],[101.14394531250005,18.14262695312499],[100.90849609375002,17.583886718750023],[100.95585937500002,17.541113281250006],[101.10517578125004,17.47954101562499],[101.16748046874997,17.49902343749997],[101.41367187500012,17.71875],[101.55507812500005,17.812353515625034],[101.56367187500004,17.82050781250001],[101.6875,17.889404296875],[101.77480468750005,18.03339843750004],[101.81865234375002,18.06464843750001],[101.87548828124997,18.046435546875017],[101.94746093750004,18.081494140624983],[102.03457031250005,18.169824218750023],[102.10146484375,18.210644531249983],[102.14824218750002,18.20385742187503],[102.35185546875002,18.045947265625017],[102.45878906250002,17.984619140625057],[102.55253906250007,17.96508789062497],[102.61679687500006,17.833349609375034],[102.66064453124997,17.817968750000034],[102.680078125,17.824121093750023],[103.05136718750006,18.02851562500001],[103.0912109375,18.13823242187499],[103.14853515625006,18.221728515625045],[103.19970703124997,18.259472656249983],[103.26318359374997,18.27846679687505],[103.27958984375002,18.304980468750017],[103.24892578125,18.338964843750034],[103.25175781250002,18.373486328124955],[103.2882812500001,18.408398437499955],[103.36699218750007,18.42333984374997],[103.48798828125004,18.418164062499983],[103.62968750000002,18.38256835937503],[103.79228515625002,18.316503906249977],[103.89882812500005,18.295312500000023],[103.949609375,18.31899414062505],[104.04873046875005,18.216699218749994],[104.19619140625005,17.988378906250006],[104.32265625,17.815820312500023],[104.428125,17.69897460937503],[104.7396484375,17.461669921875],[104.81601562500012,17.30029296874997],[104.75898437500004,17.0771484375],[104.7435546875,16.884375],[104.75058593750012,16.647558593750063],[104.81933593750003,16.46606445312503],[105.04716796875007,16.160253906249977],[105.14873046875007,16.09355468749999],[105.33066406250006,16.037890625000017],[105.40625,15.987451171875051],[105.39892578124997,15.829882812500017],[105.62207031250003,15.699951171875],[105.641015625,15.656542968750045],[105.6388671875001,15.585937500000057],[105.615625,15.488281250000057],[105.49042968750004,15.256591796875],[105.49042968750004,15.127587890625009],[105.5333984375001,15.041601562499991],[105.54667968750002,14.932470703124963],[105.52304687500012,14.843310546875003],[105.49736328125002,14.590673828124963],[105.47558593750003,14.530126953124977],[105.42265625000007,14.471630859375054],[105.34218750000005,14.416699218750054],[105.24365234375003,14.367871093750054],[105.1833007812501,14.346240234374989],[105.16914062500004,14.336083984374966],[105.12597656250003,14.280957031250011],[105.07412109375005,14.227441406250037],[104.77900390625004,14.427832031250006],[103.19941406250004,14.332617187499977],[102.90927734375006,14.136718750000028],[102.546875,13.585693359375043],[102.33632812500005,13.560302734375014],[102.49960937500012,12.669970703125003],[102.75566406250002,12.42626953125],[102.73662109375007,12.089794921875011],[102.93388671875002,11.706689453125037],[102.594140625,12.203027343749994],[102.54023437500004,12.109228515624977],[101.83574218750002,12.640380859375014],[100.89775390625007,12.653808593749986],[100.96269531250007,13.431982421874991],[100.60292968750005,13.568164062500017],[100.23564453125002,13.48447265625002],[99.99052734375007,13.243457031250031],[100.08994140625006,13.045654296874972],[99.96396484375006,12.690039062500006],[99.98906250000007,12.170800781249994],[99.16503906250003,10.319824218750028],[99.25390625000003,9.265234375000034],[99.83554687500012,9.288378906250031],[99.98955078125007,8.589208984374977],[100.129296875,8.428076171875006],[100.16347656250005,8.508398437500034],[100.27939453125006,8.268505859375011],[100.54521484375002,7.226904296874991],[100.43935546875005,7.280761718750043],[100.38037109375003,7.541503906250043],[100.28378906250006,7.551513671875043],[100.25664062500002,7.774902343749986],[100.16074218750012,7.599267578124994],[100.4235351562501,7.18784179687502],[101.01787109375002,6.860937500000034],[101.49794921875005,6.865283203125031],[102.10107421874997,6.242236328125031],[101.87363281250012,5.825292968749991],[101.67841796875004,5.778808593750028],[101.5560546875,5.907763671875003],[101.1139648437501,5.636767578125045],[100.98164062500004,5.771044921875045],[101.05351562500002,6.242578125],[100.87392578125,6.24541015624996],[100.75449218750012,6.460058593749991],[100.3454101562501,6.549902343750006],[100.26142578125004,6.682714843749963],[100.11914062499997,6.441992187500048],[99.69599609375004,6.87666015625004],[99.72031250000012,7.106201171875],[99.55302734375002,7.218798828125031],[99.59697265625002,7.355615234375009],[99.35859375000004,7.372216796875023],[99.26367187499997,7.619042968750037],[99.07763671874997,7.718066406250045],[99.05107421875002,7.887841796874994],[98.78867187500012,8.059814453125028],[98.703515625,8.256738281250009],[98.57919921875006,8.344287109374989],[98.42099609375006,8.17822265625],[98.30546875000007,8.226220703125009],[98.24179687500006,8.767871093750045],[98.70253906250005,10.19038085937504],[98.7572265625,10.660937499999974],[99.1901367187501,11.105273437499989],[99.61474609374997,11.781201171875026],[99.40507812500002,12.547900390625003],[99.12392578125,13.030761718750043],[99.13681640625006,13.716699218749994],[98.57001953125004,14.359912109375031],[98.20214843749997,14.97592773437502],[98.19101562500012,15.204101562499972],[98.55693359375007,15.367675781249986],[98.59238281250006,16.05068359375005],[98.81796875000012,16.180810546874994],[98.88828125000006,16.351904296875034],[98.83544921875003,16.417578125],[98.66074218750006,16.330419921875006],[98.4388671875,16.975683593750034],[97.7064453125,17.79711914062503],[97.63222656250005,18.290332031250074],[97.37392578125,18.51796875],[97.74589843750002,18.58818359374999],[97.816796875,19.459960937500057],[98.01503906250005,19.74951171874997],[98.37128906250004,19.68916015625004],[98.9166992187501,19.77290039062504],[99.07421875000003,20.09936523437503],[99.48593750000006,20.14985351562501],[99.45888671875005,20.363037109375],[99.72011718750005,20.32543945312497],[99.8903320312501,20.424414062499977],[99.9542968750001,20.415429687500023],[100.0036132812501,20.37958984375001],[100.12246093750005,20.316650390625057]]]]},"properties":{"name":"Thailand","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[70.66416015625,39.85546875],[70.55957031250003,39.790917968749994],[70.48925781250003,39.86303710937503],[70.48281250000005,39.88271484375005],[70.49775390625004,39.88242187499998],[70.56708984375004,39.86660156250005],[70.66416015625,39.85546875]]],[[[70.95800781250003,40.238867187500034],[70.59921875,39.974511718749994],[69.96679687499997,40.202246093750034],[69.46875,40.020751953125],[69.47099609375002,39.990625],[69.43193359375007,39.909765625000034],[69.36542968750004,39.94707031250002],[69.30722656250006,39.968554687500045],[69.27880859374997,39.91777343749999],[69.24472656250006,39.82709960937498],[69.29765625000007,39.52480468750005],[70.50117187500004,39.58735351562501],[70.79931640625003,39.39472656250001],[71.4703125,39.60366210937502],[71.50302734375006,39.58217773437502],[71.51738281250002,39.55385742187502],[71.50585937499997,39.51708984374997],[71.5033203125,39.47880859374999],[71.73222656250002,39.422998046874994],[71.77861328125007,39.27797851562502],[72.04277343750002,39.352148437500034],[72.08417968750004,39.310644531250034],[72.14736328125005,39.26074218749997],[72.22998046874997,39.20751953124997],[72.63994140625002,39.385986328125],[73.10927734375,39.36191406249998],[73.2349609375,39.37456054687499],[73.3361328125001,39.41235351562506],[73.38740234375004,39.442724609375034],[73.4704101562501,39.46059570312502],[73.63164062500007,39.44887695312502],[73.63632812500006,39.396679687499955],[73.60732421875,39.229199218749955],[73.8052734375,38.968652343749994],[73.69609375000007,38.85429687499996],[73.80166015625,38.60688476562501],[74.02558593750004,38.53984375000002],[74.27744140625,38.659765625000034],[74.81230468750002,38.46030273437498],[74.8942382812501,37.60141601562498],[75.11875,37.38569335937498],[74.89130859375004,37.231640624999955],[74.875390625,37.24199218750002],[74.83046875,37.28593750000002],[74.73056640625006,37.35703125],[74.659375,37.39448242187501],[74.34902343750005,37.41875],[74.25966796875005,37.41542968750002],[74.20351562500005,37.37246093750005],[74.16708984375,37.32944335937498],[73.74960937500006,37.23178710937498],[73.6535156250001,37.239355468750034],[73.62753906250006,37.261572265625006],[73.71728515625003,37.32944335937498],[73.7337890625,37.37578125000002],[73.72060546875,37.41875],[73.65712890625005,37.43046875],[73.6046875000001,37.44604492187503],[73.48134765625,37.4716796875],[73.38291015625006,37.462255859375034],[73.21113281250004,37.40849609375002],[72.89550781250003,37.26752929687498],[72.65742187500004,37.029052734375],[71.665625,36.696923828124994],[71.530859375,36.845117187499994],[71.43291015625007,37.12753906249998],[71.5822265625001,37.91010742187498],[71.55195312500004,37.93315429687496],[71.48779296874997,37.93188476562497],[71.38964843750003,37.90629882812502],[71.31992187500006,37.90185546875],[71.27851562500004,37.91840820312498],[71.33271484375004,38.170263671875034],[71.25585937499997,38.306982421875006],[70.7359375,38.42255859375001],[70.41777343750002,38.075439453125],[70.21464843750002,37.92441406250006],[70.19941406250004,37.88603515624996],[70.25498046875006,37.76538085937497],[70.25146484374997,37.66416015625006],[70.18867187500004,37.58247070312501],[70.11982421875004,37.54350585937499],[69.9849609375,37.566162109375],[69.8208984375,37.60957031250004],[69.62578125000002,37.59404296874999],[69.49208984375,37.55307617187498],[69.42011718750004,37.486718749999966],[69.39921875000007,37.39931640625002],[69.42968749999997,37.290869140625034],[69.414453125,37.20776367187497],[69.35380859375007,37.15004882812502],[69.3039062500001,37.11694335937503],[69.26484375000004,37.1083984375],[69.18017578125003,37.158300781250034],[68.96044921875003,37.32504882812498],[68.9118164062501,37.33393554687501],[68.88525390624997,37.32807617187498],[68.85537109375005,37.31684570312501],[68.83847656250006,37.30283203124998],[68.82373046874997,37.27070312500001],[68.78203125000002,37.25800781250001],[68.7232421875,37.26801757812501],[68.6691406250001,37.258398437500006],[68.3869140625001,37.1375],[68.29951171875004,37.08842773437502],[68.28476562500006,37.036328124999955],[68.2609375000001,37.01308593750002],[68.2121093750001,37.02153320312496],[68.0677734375,36.949804687500006],[67.95800781249997,36.972021484375006],[67.83447265624997,37.06420898437506],[67.75898437500004,37.172216796875034],[67.7980468750001,37.244970703125006],[67.81435546875005,37.48701171875004],[68.3502929687501,38.211035156250006],[68.08720703125002,38.47353515625002],[68.13251953125004,38.927636718749966],[67.69443359375006,38.99462890625003],[67.64833984375005,39.13105468750004],[67.3576171875001,39.216699218749994],[67.426171875,39.46557617187497],[67.71904296875007,39.62138671875002],[68.46328125,39.53671874999998],[68.63896484375007,39.8388671875],[68.86875,39.90747070312503],[68.80468750000003,40.05034179687499],[68.9720703125,40.08994140624998],[68.63066406250007,40.16708984374998],[69.27490234374997,40.19809570312498],[69.20625,40.566552734374994],[69.35722656250002,40.76738281249996],[69.71289062500003,40.65698242187503],[70.40195312500006,41.03510742187498],[70.75107421875006,40.721777343750006],[70.37158203125003,40.38413085937506],[70.653125,40.201171875],[70.95800781250003,40.238867187500034]]]]},"properties":{"name":"Tajikistan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[66.52226562500007,37.34848632812506],[66.471875,37.3447265625],[65.7650390625,37.56914062499996],[65.55498046875002,37.25117187500004],[65.30361328125005,37.24677734375001],[65.08964843750007,37.237939453124994],[64.9515625,37.19355468750001],[64.81630859375005,37.13208007812503],[64.7824218750001,37.05927734375001],[64.60253906250003,36.554541015625034],[64.5658203125,36.427587890625034],[64.51103515625002,36.34067382812498],[64.184375,36.14892578125],[63.8625,36.012353515624994],[63.12998046875006,35.84619140624997],[63.169726562500074,35.678125],[63.05664062500003,35.44580078125003],[62.98027343750002,35.40917968750003],[62.85800781250006,35.34965820312499],[62.688085937500006,35.25532226562504],[62.3078125000001,35.17080078125005],[62.08964843750002,35.3796875],[61.62099609375005,35.43232421875004],[61.34472656249997,35.62949218750006],[61.26201171875002,35.61958007812498],[61.25214843750004,35.86762695312498],[61.15292968750006,35.97675781250001],[61.212011718750006,36.190527343750034],[61.11962890625003,36.64257812500003],[60.34130859375003,36.63764648437501],[60.06279296875002,36.962890625],[59.454980468749994,37.25283203125002],[59.30175781249997,37.51064453125005],[58.81542968750003,37.683496093749994],[58.261621093749994,37.665820312500045],[57.35371093750004,37.97333984374998],[57.1935546875001,38.216406250000034],[56.440625,38.249414062499994],[56.272070312500006,38.080419921875034],[55.38085937500003,38.051123046875034],[54.90009765625004,37.77792968750006],[54.6994140625001,37.47016601562498],[53.91416015625006,37.34355468750002],[53.86865234375003,38.949267578125045],[53.70458984375003,39.209570312500034],[53.33632812500005,39.34082031250006],[53.15664062499999,39.26499023437506],[53.23564453125002,39.608544921874966],[53.603125,39.546972656250034],[53.472265625,39.66879882812498],[53.48730468749997,39.909375],[52.9875,39.98759765625002],[53.03554687500005,39.7744140625],[52.80468749999997,40.054003906250045],[52.73369140625002,40.39873046875002],[52.943457031250006,41.03808593750006],[53.1452148437501,40.82495117187497],[53.61523437500003,40.818505859374994],[53.87001953125005,40.64868164062503],[54.37734375,40.693261718749966],[54.319433593750006,40.83457031249998],[54.68505859375003,40.873046875],[54.70371093750006,41.071142578125034],[54.094824218750006,41.51938476562506],[53.80468749999997,42.11762695312498],[53.16416015625006,42.09379882812502],[52.97001953125002,41.97622070312505],[52.81484375,41.711816406249994],[52.850390625000074,41.20029296875006],[52.4938476562501,41.780371093750034],[53.0558593750001,42.14775390624999],[54.120996093749994,42.335205078125],[54.85380859375002,41.965185546875006],[55.434375,41.296289062499994],[55.97744140625005,41.32221679687504],[57.01796875,41.26347656249996],[57.11884765625004,41.35029296874998],[56.96406250000004,41.856542968750006],[57.290625,42.123779296875],[57.814257812500074,42.18984375000005],[58.02890625,42.48764648437506],[58.474414062500074,42.29936523437496],[58.15156250000004,42.628076171874966],[58.477148437500006,42.66284179687503],[58.5890625000001,42.778466796874966],[59.35429687500002,42.32329101562496],[59.98515625000002,42.21171875],[59.94179687499999,41.97353515625002],[60.20078125000006,41.803125],[60.07558593750005,41.759667968749966],[60.089648437500074,41.39941406250003],[60.454980468749994,41.221630859374955],[61.2423828125001,41.18920898437503],[61.496972656249994,41.276074218749955],[61.90283203124997,41.09370117187501],[62.48320312500002,39.97563476562496],[63.76367187500003,39.16054687499999],[64.3099609375,38.97729492187497],[65.612890625,38.23857421875002],[65.97119140624997,38.244238281250006],[66.60625,37.98671875000005],[66.52558593750004,37.785742187500034],[66.51132812500006,37.59916992187496],[66.51064453125,37.45869140625004],[66.52226562500007,37.34848632812506]]]},"properties":{"name":"Turkmenistan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[124.0363281250001,-9.341601562500031],[124.44443359375012,-9.190332031250023],[124.28232421875012,-9.427929687500026],[124.0363281250001,-9.341601562500031]]],[[[125.06816406250002,-9.511914062499997],[124.96015625000004,-9.213769531250009],[125.10048828125,-9.189843750000023],[125.14902343750012,-9.042578125000034],[124.93681640625007,-9.053417968750026],[124.92226562500005,-8.942480468749977],[125.17802734375002,-8.647851562499994],[125.38183593749997,-8.575390624999983],[126.61972656250006,-8.459472656249986],[126.96640625000012,-8.315722656250017],[127.29609375000004,-8.424511718749969],[126.91523437500004,-8.715234374999966],[125.40800781250002,-9.275781250000023],[125.06816406250002,-9.511914062499997]]],[[[125.64609375000006,-8.139941406250003],[125.5794921875,-8.311816406250017],[125.50712890625007,-8.275097656249997],[125.64609375000006,-8.139941406250003]]]]},"properties":{"name":"Timor-Leste","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-175.1619140625,-21.169335937500023],[-175.07817382812496,-21.129003906249977],[-175.15659179687495,-21.26367187499997],[-175.36235351562496,-21.106835937499994],[-175.1619140625,-21.169335937500023]]],[[[-173.953515625,-18.63935546875001],[-174.06914062500002,-18.640234375],[-173.96806640624993,-18.565332031250023],[-173.953515625,-18.63935546875001]]]]},"properties":{"name":"Tonga","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-61.012109374999966,10.134326171874989],[-61.906103515625006,10.069140625000031],[-61.49931640624999,10.268554687499972],[-61.47827148437497,10.603369140624977],[-61.65117187499993,10.718066406249974],[-60.917626953124966,10.84023437499999],[-61.03374023437502,10.669873046875026],[-61.012109374999966,10.134326171874989]]]},"properties":{"name":"Trinidad and Tobago","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[10.957617187500063,33.72207031250005],[10.722070312500051,33.738916015624994],[10.745214843750063,33.88867187500006],[11.017871093749989,33.82333984374998],[10.957617187500063,33.72207031250005]]],[[[11.278027343750068,34.753808593749994],[11.123632812500063,34.68168945312496],[11.254882812500057,34.82031250000006],[11.278027343750068,34.753808593749994]]],[[[10.274609375000011,31.684960937499994],[10.114941406250068,31.46376953125005],[10.216406250000063,30.78320312500003],[10.05976562500004,30.58007812500003],[9.932519531250051,30.42534179687496],[9.895019531250028,30.387304687500034],[9.51875,30.229394531249994],[9.224023437500023,31.373681640624994],[9.160253906250006,31.621337890625],[9.044042968750034,32.072363281250034],[8.333398437500051,32.54360351562502],[8.1125,33.055322265624994],[7.877246093750017,33.172119140625],[7.534375,33.717919921874994],[7.513867187500068,34.080517578124955],[8.24560546875,34.73408203124998],[8.276855468750057,34.97949218749997],[8.312109375000063,35.084619140624994],[8.394238281250011,35.20385742187503],[8.318066406250011,35.654931640624994],[8.348730468750063,36.367968750000045],[8.207617187500006,36.518945312499994],[8.601269531250068,36.83393554687504],[8.576562500000023,36.93720703125001],[9.687988281250057,37.34038085937499],[9.838476562500063,37.30898437499999],[9.830273437499983,37.13535156250006],[9.875585937499977,37.25415039062503],[10.196386718750063,37.205859375000045],[10.293261718750074,36.781494140625],[10.412304687499983,36.73183593750002],[11.053906250000068,37.07250976562506],[11.12666015625004,36.874072265625045],[10.476562500000028,36.175146484375006],[10.590820312500028,35.88725585937499],[11.00429687500008,35.63383789062496],[11.120117187500057,35.24028320312499],[10.69091796875,34.67846679687503],[10.118359375000068,34.280078125000045],[10.049023437500068,34.056298828124994],[10.305273437500034,33.72827148437497],[10.713183593750017,33.68901367187496],[10.722753906250006,33.514404296875],[10.958007812500057,33.62631835937498],[11.257421875000034,33.30883789062506],[11.202636718749972,33.24921874999998],[11.50458984375004,33.181933593750045],[11.502441406250028,33.15556640624999],[11.467187500000051,32.96572265625005],[11.459179687500011,32.897363281249966],[11.453906250000017,32.64257812500003],[11.533789062500034,32.52495117187496],[11.535937500000017,32.47333984375001],[11.504980468750034,32.413671875000034],[11.358007812500006,32.34521484375003],[11.168261718750074,32.25673828125002],[11.005175781250074,32.17270507812506],[10.826367187500068,32.080664062500034],[10.771582031250006,32.02119140625001],[10.60888671875,31.929541015624977],[10.47578125000004,31.736035156249983],[10.274609375000011,31.684960937499994]]]]},"properties":{"name":"Tunisia","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[25.970019531250045,40.136328125],[25.6689453125,40.13588867187502],[25.918359375000023,40.23798828125004],[25.970019531250045,40.136328125]]],[[[43.43339843750002,41.155517578125],[43.43945312500003,41.10712890625001],[43.72265624999997,40.71953124999999],[43.56933593750003,40.48237304687498],[43.66621093750004,40.12636718750002],[44.28925781250004,40.040380859375006],[44.76826171875004,39.70351562500005],[44.81718750000002,39.65043945312496],[44.58710937500004,39.76855468750006],[44.3893554687501,39.422119140625],[44.02324218750002,39.37744140625006],[44.27167968750004,38.83603515625006],[44.2985351562501,38.38627929687499],[44.4499023437501,38.33422851562506],[44.21132812499999,37.908056640625006],[44.589941406250006,37.710351562499966],[44.574023437500074,37.435400390625006],[44.79414062500004,37.290380859375034],[44.76513671875003,37.142431640625006],[44.73095703124997,37.16528320312503],[44.66933593750005,37.17358398437503],[44.60595703124997,37.176025390625],[44.401953125,37.05849609375002],[44.325585937499994,37.0107421875],[44.28183593750006,36.97802734374997],[44.24570312500006,36.983300781249994],[44.20166015624997,37.05180664062502],[44.208398437499994,37.20263671875],[44.19179687499999,37.249853515625034],[44.15625,37.28295898437503],[44.11445312500004,37.30185546875006],[44.01318359375003,37.313525390625045],[43.83642578124997,37.223535156249994],[43.67578125000003,37.227246093749955],[43.09248046875004,37.36738281249998],[42.936621093750006,37.32475585937502],[42.77460937500004,37.371875],[42.74111328125005,37.361914062500034],[42.6354492187501,37.249267578125],[42.45585937500002,37.128710937500045],[42.358984375,37.10859375000004],[42.31289062499999,37.22958984374998],[42.26855468749997,37.276562499999955],[42.24755859375003,37.28222656250006],[42.20273437500006,37.29726562499999],[42.16787109375005,37.28862304687502],[42.059863281250074,37.2060546875],[41.886816406250006,37.156396484374994],[40.70566406250006,37.09770507812502],[40.4503906250001,37.00888671875006],[40.016406250000074,36.82607421875002],[39.68652343749997,36.73862304687506],[39.50146484374997,36.702246093750034],[39.35664062500004,36.68159179687498],[39.10839843749997,36.68056640625005],[38.90644531250004,36.69467773437498],[38.76660156249997,36.69311523437503],[38.19169921875002,36.90156250000004],[37.90664062500005,36.79462890625001],[37.7203125,36.74370117187502],[37.52353515625006,36.678320312500034],[37.436328125000074,36.643310546875],[37.327050781249994,36.64658203125006],[37.18740234375005,36.655908203124994],[37.066210937500074,36.652636718750045],[36.98535156250003,36.70239257812506],[36.94179687499999,36.758398437500006],[36.77656250000004,36.79267578124998],[36.65859375000005,36.80253906250002],[36.62841796875003,36.777685546875034],[36.596875,36.70136718750001],[36.546679687500074,36.50634765625],[36.5375,36.457421874999966],[36.63671874999997,36.233984375],[36.37539062499999,36.171240234375034],[36.347558593749994,36.003515625000034],[36.20195312500002,35.93754882812502],[36.15361328125002,35.83388671875005],[36.12734375,35.831445312499994],[35.967578125000074,35.91005859375002],[35.89267578125006,35.91655273437502],[35.81093750000005,36.30986328125002],[36.18847656250003,36.65898437499999],[36.048925781250006,36.91059570312501],[35.393164062500006,36.57519531249997],[34.70361328125003,36.81679687499999],[33.694726562499994,36.18198242187498],[32.794824218749994,36.03588867187497],[32.37773437500002,36.18364257812496],[32.02197265625003,36.53530273437502],[31.35253906249997,36.80107421874999],[30.64404296874997,36.86567382812501],[30.446093750000074,36.269873046875034],[29.6890625,36.15668945312498],[29.22363281249997,36.32446289062497],[28.96962890625008,36.71533203125003],[28.303710937500057,36.81196289062498],[28.01943359375005,36.63447265624998],[28.083984375000057,36.75146484375],[27.453906250000017,36.712158203125],[28.00537109375003,36.83198242187498],[28.242382812500068,37.029052734375],[27.262988281250045,36.97656250000003],[27.30019531250005,37.12685546875002],[27.53505859375005,37.16386718750002],[27.06796875,37.65791015625004],[27.224414062500074,37.725439453125006],[27.23242187500003,37.978662109374994],[26.29072265625001,38.27719726562498],[26.44130859375005,38.64121093749998],[26.67421875000008,38.33574218750002],[27.14423828125001,38.45195312499996],[26.906835937500034,38.48173828124999],[26.763671875,38.709619140624966],[27.013671875000057,38.88686523437502],[26.814941406250057,38.96098632812502],[26.853613281250034,39.115625],[26.68183593750004,39.292236328125],[26.89921874999999,39.549658203125034],[26.113085937500074,39.46738281249998],[26.101367187500074,39.56894531249998],[26.18134765625004,39.99008789062498],[26.738085937500045,40.40024414062506],[27.28457031250008,40.45561523437496],[27.4755859375,40.319921875000034],[27.72802734375,40.32880859374998],[27.84853515625005,40.38173828125002],[27.73183593750008,40.48149414062499],[27.87490234375008,40.512939453125],[27.989550781250074,40.48945312500001],[27.96259765625001,40.369873046875],[29.00712890624999,40.389746093750034],[28.787890625000017,40.534033203125034],[28.95800781250003,40.63056640624998],[29.849218750000063,40.760107421875006],[29.113867187499977,40.93784179687506],[29.14814453125004,41.221044921875034],[31.25488281249997,41.10761718750001],[31.45800781249997,41.32001953125004],[32.306445312500074,41.72958984374998],[33.38134765625003,42.01757812500003],[34.75048828124997,41.95683593749999],[35.006445312500006,42.06328125000002],[35.15488281250006,42.02753906250001],[35.12207031250003,41.89111328125003],[35.297753906249994,41.72851562500003],[35.558007812499994,41.63403320312506],[36.05175781249997,41.68256835937498],[36.40537109375006,41.27460937500001],[36.77773437499999,41.36347656250001],[37.066210937500074,41.184423828125034],[38.38105468750004,40.92451171875001],[39.426367187500006,41.10644531250003],[40.26523437500006,40.96132812500005],[41.08359375000006,41.26118164062504],[41.41435546875002,41.42363281249999],[41.510058593750074,41.51748046875002],[41.70175781250006,41.471582031249994],[41.77939453125006,41.44052734374998],[41.823535156250074,41.432373046875],[41.92578125000003,41.49565429687502],[42.46640625,41.43984375000002],[42.56738281249997,41.55927734375001],[42.590429687500006,41.57070312500002],[42.60683593750005,41.57880859374998],[42.682421875000074,41.58574218749999],[42.75410156250004,41.57890625000002],[42.787890625000074,41.56372070312503],[42.82167968750005,41.49238281249998],[42.90673828125003,41.46684570312502],[43.05712890625003,41.35283203124996],[43.149023437500006,41.30712890624997],[43.171289062499994,41.28793945312498],[43.14101562499999,41.26484374999998],[43.15283203124997,41.23642578125006],[43.20546875000005,41.19916992187501],[43.43339843750002,41.155517578125]]],[[[27.47480468750001,41.946875],[28.014453125000017,41.96904296874999],[28.197851562500063,41.55449218750002],[29.057226562500006,41.22973632812503],[28.95625,41.00820312499999],[28.172167968750074,41.08071289062502],[27.49941406250005,40.97314453124997],[27.258007812499983,40.687353515625006],[26.772070312500034,40.498046875],[26.202734375000034,40.07539062500004],[26.25380859375005,40.31469726562503],[26.792089843750034,40.626611328124994],[26.10546875000003,40.61132812499997],[26.03896484375008,40.726757812499955],[26.331054687500057,40.954492187499994],[26.330664062499977,41.23876953125],[26.62490234375008,41.401757812499994],[26.581347656250074,41.60126953125004],[26.320898437500034,41.716552734375],[26.3603515625,41.80156249999999],[26.51142578125004,41.82636718749998],[26.549707031250023,41.896728515625],[26.5796875,41.947949218749955],[26.615332031250063,41.964892578125045],[26.884863281250006,41.99184570312502],[26.96875,42.02685546875006],[27.01171875,42.05864257812496],[27.193359375000057,42.07709960937498],[27.24433593750004,42.09326171875],[27.294921875000057,42.079541015624955],[27.47480468750001,41.946875]]]]},"properties":{"name":"Turkey","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[39.71132812499999,-7.977441406250023],[39.602929687499994,-7.936132812499949],[39.907128906249994,-7.649218750000031],[39.71132812499999,-7.977441406250023]]],[[[39.49648437499999,-6.174609375],[39.573046875000074,-6.387402343750011],[39.48095703124997,-6.45371093750002],[39.18232421875004,-6.172558593750026],[39.30898437499999,-5.721972656249974],[39.49648437499999,-6.174609375]]],[[[39.86503906250002,-4.906152343750037],[39.74931640625002,-5.443847656249986],[39.646777343750074,-5.368554687500009],[39.6734375,-4.927050781250031],[39.86503906250002,-4.906152343750037]]],[[[33.90322265625005,-1.002050781250034],[37.643847656250074,-3.045410156250028],[37.608203125000074,-3.497070312500028],[39.221777343750006,-4.692382812500014],[38.80468750000003,-6.070117187500031],[38.87402343750003,-6.33125],[39.5460937500001,-7.024023437500034],[39.288476562499994,-7.517871093750003],[39.28701171875005,-7.787695312500006],[39.4284179687501,-7.81279296874996],[39.441015625,-8.011523437499946],[39.304003906250074,-8.44384765625],[39.451269531250006,-8.94296875],[39.64130859375004,-9.19248046875002],[39.72519531250006,-10.000488281249972],[40.46357421875004,-10.464355468749972],[39.98867187499999,-10.820800781250014],[39.81708984375004,-10.912402343750031],[38.9875,-11.167285156250003],[38.49179687500006,-11.413281250000026],[37.92021484375002,-11.294726562500031],[37.72480468750004,-11.58066406250002],[37.54169921875004,-11.675097656249974],[37.37285156250002,-11.710449218749986],[36.97890625000005,-11.566992187499977],[36.30566406250003,-11.706347656249946],[36.191308593749994,-11.670703124999974],[36.17548828125004,-11.60927734374998],[36.08222656250004,-11.537304687499969],[35.91132812500004,-11.45468750000002],[35.785449218750074,-11.452929687500017],[35.63095703125006,-11.582031250000028],[35.564355468749994,-11.602343749999989],[35.418261718750074,-11.583203125],[35.18261718750003,-11.574804687499977],[34.95947265625003,-11.578125],[34.93701171874997,-11.463476562500034],[34.890625,-11.3935546875],[34.77382812500005,-11.341699218750009],[34.60791015624997,-11.08046875],[34.66708984375006,-10.792480468750028],[34.56992187500006,-10.241113281249966],[34.32089843750006,-9.731542968749977],[33.99560546875003,-9.495410156250003],[33.88886718750004,-9.670117187499983],[32.91992187500003,-9.407421875000026],[32.75664062500002,-9.322265625],[31.94257812500004,-9.05400390624996],[31.91865234375004,-8.942187500000017],[31.886132812499994,-8.921972656249977],[31.81806640625004,-8.902246093749952],[31.673632812500017,-8.908789062499963],[31.55625,-8.80546875],[31.44921874999997,-8.65390625],[31.35058593750003,-8.607031250000034],[31.07636718750004,-8.611914062499963],[30.968359375000063,-8.550976562499983],[30.89199218750005,-8.473730468749963],[30.830664062500063,-8.385546875000031],[30.720898437500097,-8.104394531250037],[30.40673828125003,-7.460644531249983],[30.313183593750097,-7.203710937499949],[30.212695312500017,-7.037890625000017],[30.10625,-6.915039062500028],[29.961816406249994,-6.803125],[29.798144531250017,-6.691894531249957],[29.70966796875004,-6.61689453125004],[29.590625,-6.394433593750023],[29.540820312500017,-6.313867187500037],[29.50625,-6.172070312500011],[29.480078125,-6.025],[29.490820312500063,-5.96542968750002],[29.59638671875004,-5.775976562499963],[29.60703125,-5.722656250000028],[29.59414062500005,-5.650781250000037],[29.542382812499994,-5.499804687500017],[29.34277343749997,-4.983105468749997],[29.32343750000004,-4.898828124999966],[29.32568359374997,-4.835644531249969],[29.404199218749994,-4.49667968750002],[29.40322265625005,-4.449316406249963],[29.71777343750003,-4.45585937499996],[29.94726562499997,-4.307324218749983],[30.4,-3.65390625],[30.790234375000097,-3.274609375000011],[30.811132812500006,-3.116406250000011],[30.78027343750003,-2.984863281249957],[30.70947265624997,-2.977246093749997],[30.604296875000074,-2.935253906249969],[30.515039062499994,-2.917578125],[30.45556640625003,-2.893164062500006],[30.433496093749994,-2.874511718750028],[30.424023437500097,-2.82402343749996],[30.473339843750097,-2.6943359375],[30.42421875000005,-2.641601562500014],[30.441992187500006,-2.613476562499969],[30.53369140624997,-2.426269531250014],[30.55361328125005,-2.400097656250011],[30.593359375000063,-2.39677734374996],[30.65664062500005,-2.373828124999989],[30.71484375000003,-2.363476562500011],[30.7625,-2.371679687499991],[30.828710937500006,-2.338476562499977],[30.85498046874997,-2.265429687500017],[30.8765625,-2.143359375000017],[30.864648437499994,-2.044042968749949],[30.819140625000017,-1.967480468749983],[30.812597656250006,-1.56308593750002],[30.76220703124997,-1.458691406249983],[30.710742187500074,-1.396777343749974],[30.631933593750006,-1.36748046874996],[30.508105468750074,-1.208203125000026],[30.47021484374997,-1.13115234374996],[30.47705078124997,-1.0830078125],[30.509960937500097,-1.067285156249994],[30.51992187499999,-1.0625],[30.67275390625005,-1.051367187499949],[30.741992187500017,-1.007519531249997],[30.809179687500063,-0.994921875],[30.82363281250005,-0.999023437499943],[30.84472656250003,-1.002050781250034],[32.371875,-1.002050781250034],[33.90322265625005,-1.002050781250034]]]]},"properties":{"name":"Tanzania","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[30.50996093750001,-1.067285156250009],[30.46992187500001,-1.066015625],[30.41230468750001,-1.063085937500006],[30.360253906250023,-1.074609375],[29.930078125000023,-1.469921875000011],[29.82539062500001,-1.335546875],[29.576953125000017,-1.387890625000011],[29.717675781250023,0.098339843749997],[29.934472656250023,0.4990234375],[29.94287109375,0.819238281249994],[31.252734375000017,2.044580078124994],[31.176367187500006,2.270068359374989],[30.728613281250006,2.455371093749989],[30.8466796875,2.847021484374991],[30.754003906250006,3.041796874999989],[30.90644531250001,3.408935546875],[30.83857421875001,3.49072265625],[31.15234375,3.785595703124997],[31.547167968750017,3.677587890624991],[31.79804687500001,3.802636718749994],[32.13593750000001,3.519726562499997],[32.33574218750002,3.706201171874994],[32.99726562500001,3.880175781249989],[33.489355468750006,3.755078125],[33.568457031250006,3.81171875],[33.74160156250002,3.985253906249994],[33.97607421875,4.22021484375],[34.13203125000001,3.88916015625],[34.18574218750001,3.869775390624994],[34.1650390625,3.81298828125],[34.26708984375,3.733154296875],[34.39287109375002,3.691503906249991],[34.43769531250001,3.650585937499997],[34.44179687500002,3.60625],[34.3994140625,3.412695312499991],[34.4072265625,3.357519531249991],[34.447851562500006,3.163476562499994],[34.90576171875,2.4796875],[34.88300781250001,2.417919921874997],[34.96406250000001,2.062402343749994],[34.9775390625,1.861914062499991],[34.97646484375002,1.719628906249994],[34.79863281250002,1.24453125],[34.48173828125002,1.042138671874994],[34.41083984375001,0.867285156249991],[34.16093750000002,0.605175781249997],[33.94316406250002,0.173779296874997],[33.90322265625002,-1.002050781250006],[32.371875,-1.002050781250006],[30.8447265625,-1.002050781250006],[30.823632812500023,-0.9990234375],[30.809179687500006,-0.994921875],[30.741992187500017,-1.007519531250011],[30.672753906250023,-1.051367187500006],[30.598730468750006,-1.069726562500009],[30.519921875000023,-1.0625],[30.50996093750001,-1.067285156250009]]]},"properties":{"name":"Uganda","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[32.01220703124997,46.20390624999999],[32.15009765625004,46.1546875],[31.56386718750005,46.25776367187504],[31.50878906250003,46.373144531250006],[32.01220703124997,46.20390624999999]]],[[[38.21435546875003,47.091455078124966],[37.54335937499999,47.07456054687498],[36.794824218749994,46.71440429687499],[36.55878906250004,46.76269531250006],[35.82714843749997,46.62431640625002],[35.01455078125005,46.10600585937502],[35.280175781249994,46.27949218750001],[35.23037109375005,46.440625],[34.84960937500003,46.189892578124955],[35.02285156250005,45.70097656250002],[35.45751953124997,45.316308593749994],[36.170507812500006,45.453076171874955],[36.575,45.3935546875],[36.39335937500002,45.06538085937501],[35.87011718750003,45.005322265624955],[35.472558593749994,45.098486328125006],[35.08769531250002,44.802636718749966],[34.46992187500004,44.7216796875],[33.909960937500074,44.387597656249966],[33.45068359374997,44.553662109374955],[33.55517578125003,45.09765625000003],[32.5080078125001,45.40380859375006],[33.664843750000074,45.94707031249996],[33.59414062500005,46.09624023437499],[33.42988281250004,46.05761718750003],[33.20224609375006,46.17573242187501],[32.47675781250004,46.08369140625001],[31.83125,46.28168945312501],[32.00849609375004,46.42998046875002],[31.554882812500097,46.554296875000034],[32.36132812499997,46.474951171875034],[32.578027343749994,46.615625],[32.04433593750005,46.642480468749966],[31.75917968750005,47.21284179687501],[31.872851562500017,46.649755859375034],[31.532128906249994,46.66474609374998],[31.56337890625005,46.77729492187501],[31.402929687500063,46.62880859375002],[30.796289062499994,46.55200195312503],[30.219042968750074,45.866748046875045],[29.62841796875003,45.722460937500045],[29.705859375000074,45.25991210937505],[29.567675781250074,45.37080078124998],[29.40371093750005,45.419677734375],[29.22353515625005,45.402929687500034],[28.894335937500017,45.28994140625002],[28.78173828125,45.30986328125002],[28.76660156250003,45.28623046874998],[28.78828125000001,45.240966796875],[28.451269531250006,45.292187499999955],[28.317675781250045,45.347119140624955],[28.2125,45.45043945312506],[28.26484375000004,45.48388671875003],[28.310351562500074,45.49858398437499],[28.499023437500057,45.517724609374994],[28.513769531250034,45.57241210937502],[28.49160156250005,45.66577148437503],[28.562304687500074,45.73579101562501],[28.667578125,45.79384765625002],[28.729296875000074,45.852001953124955],[28.73876953125003,45.937158203124994],[28.84951171875005,45.97866210937502],[28.94775390624997,46.049951171874966],[28.971875,46.12763671874998],[29.00625,46.17646484374998],[28.94375,46.28842773437506],[28.930566406250023,46.36225585937501],[28.92744140625001,46.42412109374999],[28.958398437500023,46.45849609374997],[29.146289062500017,46.52690429687496],[29.186230468750068,46.52397460937499],[29.20078125,46.504980468750034],[29.20458984374997,46.37934570312501],[29.223828125000097,46.37695312499997],[29.458789062500017,46.453759765624994],[29.83789062499997,46.35053710937501],[29.878027343750063,46.360205078125034],[30.07568359375003,46.377832031249966],[30.131054687500097,46.42309570312506],[29.92431640624997,46.53886718750002],[29.934765625000097,46.625],[29.942480468750063,46.72377929687502],[29.918066406250063,46.78242187499998],[29.877832031249994,46.828906250000045],[29.57197265625004,46.96401367187502],[29.455664062500006,47.292626953124994],[29.134863281250006,47.48969726562501],[29.125390625000023,47.96455078125001],[28.42304687500001,48.146875],[28.34052734375001,48.144433593749994],[27.54921875000008,48.47773437500004],[27.22851562500003,48.37143554687506],[26.90058593750001,48.37192382812506],[26.847070312500023,48.387158203124955],[26.640429687500045,48.29414062500001],[26.618945312500017,48.25986328125006],[26.4423828125,48.22998046875],[26.162695312500063,47.992529296875034],[25.90869140625,47.96757812500002],[25.689257812500045,47.93247070312506],[25.46425781250005,47.910791015624994],[24.979101562500063,47.72412109374997],[24.578906250000074,47.93105468750005],[23.628710937500017,47.995849609375],[23.40820312500003,47.98999023437506],[23.20263671875,48.084521484375045],[23.13945312499999,48.08740234375],[22.87666015625001,47.94726562500006],[22.769140625000063,48.109619140625],[22.582421875000023,48.134033203125],[22.253710937500017,48.407373046874994],[22.131835937500057,48.40532226562502],[22.142871093750017,48.568505859374966],[22.295214843750045,48.68583984374999],[22.389453125000045,48.87348632812501],[22.52412109375004,49.03139648437502],[22.538671875,49.07270507812501],[22.847070312500023,49.08125],[22.705664062500006,49.17119140624999],[22.6494140625,49.53901367187498],[22.706152343750006,49.60620117187497],[23.03632812500004,49.899072265624966],[23.711718750000045,50.377343749999966],[23.97265625,50.410058593749966],[24.089941406250006,50.53046874999998],[24.0947265625,50.617041015625034],[23.9970703125,50.809375],[24.095800781250063,50.87275390625001],[23.664453125000023,51.31005859375],[23.61376953125,51.525390625],[23.706835937500045,51.64130859374998],[23.79169921875001,51.63710937500002],[23.864257812500057,51.62397460937501],[23.951171875,51.58505859374998],[23.978320312500017,51.59130859375003],[24.12685546875008,51.664648437500034],[24.280078125000017,51.77470703124999],[24.361914062500006,51.86752929687498],[25.785742187500006,51.923828125],[26.77343750000003,51.77070312499998],[26.952832031249983,51.754003906250034],[27.074121093750023,51.760839843750006],[27.14199218750008,51.75205078124998],[27.29628906250008,51.59741210937503],[27.689746093750017,51.572412109374994],[27.7,51.47797851562501],[27.85859375000004,51.59238281250006],[28.532031250000017,51.56245117187501],[28.59902343750008,51.54262695312505],[28.647753906250074,51.45654296875],[28.690234375000017,51.43886718750005],[28.73125,51.43339843749999],[28.84951171875005,51.540185546874994],[28.927539062500045,51.56215820312502],[28.97773437500004,51.57177734375003],[29.01308593750005,51.59892578124996],[29.06074218750001,51.625439453124955],[29.102050781250057,51.627539062500034],[29.346484375000017,51.38256835937503],[30.160742187500006,51.477880859375006],[30.449511718750017,51.274316406249994],[30.63251953125004,51.35541992187501],[30.61171875000005,51.406347656250006],[30.602343750000017,51.47124023437499],[30.56074218750004,51.531494140625],[30.533007812500017,51.596337890624966],[30.583886718749994,51.68896484375003],[30.667285156250017,51.81411132812502],[30.755273437499994,51.89516601562502],[30.84570312500003,51.95307617187501],[30.980664062500097,52.04619140624996],[31.217968750000097,52.05024414062498],[31.345996093750074,52.10537109375002],[31.57373046875003,52.108105468749955],[31.763378906250097,52.10107421875003],[32.12226562500004,52.05058593749996],[32.435449218749994,52.307226562500034],[33.735253906249994,52.344775390625045],[34.397851562499994,51.780419921874994],[34.12109375000003,51.67915039062498],[34.21386718750003,51.25537109375006],[35.0640625,51.203417968750045],[35.31191406250005,51.043896484374955],[35.59111328125002,50.36875],[36.1164062500001,50.408544921875006],[36.619433593750074,50.209228515625],[37.42285156249997,50.411474609375006],[38.046875,49.92001953125006],[38.258593750000074,50.05234375],[38.91835937499999,49.82470703125],[39.17480468750003,49.85595703124997],[39.780566406250074,49.57202148437503],[40.080664062500006,49.576855468749955],[40.10878906250005,49.251562500000034],[39.68652343749997,49.007910156250034],[40.00361328125004,48.82207031250002],[39.792871093749994,48.807714843750034],[39.6447265625001,48.591210937499966],[39.8356445312501,48.54277343749996],[39.95791015625005,48.268896484375034],[39.77871093750005,47.88754882812506],[38.90029296875005,47.85512695312502],[38.36884765625004,47.609960937500006],[38.21435546875003,47.091455078124966]]]]},"properties":{"name":"Ukraine","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-57.81059570312499,-30.85859375000001],[-57.872509765625,-30.59101562500001],[-57.831201171874994,-30.495214843750006],[-57.71269531249999,-30.38447265625001],[-57.65087890625,-30.295019531250006],[-57.645751953125,-30.226953125],[-57.60888671875,-30.187792968750003],[-57.55229492187499,-30.26123046875],[-57.21445312499999,-30.28339843750001],[-57.186914062499994,-30.26484375000001],[-57.120507812499994,-30.14443359375001],[-56.83271484375,-30.107226562500003],[-56.4072265625,-30.44746093750001],[-55.998974609375,-30.837207031250003],[-56.018457031249994,-30.99189453125001],[-56.00468749999999,-31.079199218750006],[-55.873681640624994,-31.069628906250003],[-55.6271484375,-30.85810546875001],[-55.60302734375,-30.85078125000001],[-55.55732421875,-30.8759765625],[-55.17353515625,-31.279589843750003],[-55.09116210937499,-31.31396484375],[-55.036035156249994,-31.27900390625001],[-54.587646484375,-31.48515625],[-54.22055664062499,-31.85517578125001],[-53.76171875,-32.05683593750001],[-53.601708984374994,-32.40302734375001],[-53.12558593749999,-32.73671875],[-53.2140625,-32.82109375],[-53.31010742187499,-32.92705078125],[-53.39521484375,-33.010351562500006],[-53.482861328125,-33.06855468750001],[-53.511865234374994,-33.10869140625],[-53.53134765624999,-33.1708984375],[-53.53134765624999,-33.65546875000001],[-53.37060546875,-33.7421875],[-53.419580078124994,-33.77919921875001],[-53.47246093749999,-33.84931640625001],[-53.53452148437499,-34.01748046875001],[-53.742919921875,-34.24951171875],[-53.785302734374994,-34.38037109375],[-54.16855468749999,-34.670703125],[-54.902294921875,-34.93281250000001],[-55.67314453124999,-34.77568359375],[-56.249951171875,-34.90126953125001],[-57.17070312499999,-34.45234375000001],[-57.8291015625,-34.47734375],[-58.40019531249999,-33.91240234375],[-58.363525390625,-33.18232421875001],[-58.08232421874999,-32.893652343750006],[-58.12958984375,-32.75722656250001],[-58.16220703124999,-32.566503906250006],[-58.201171875,-32.4716796875],[-58.123046875,-32.321875],[-58.11972656249999,-32.24892578125001],[-58.164794921875,-32.18486328125],[-58.177001953125,-32.11904296875001],[-58.15634765624999,-32.0515625],[-58.160400390625,-31.98652343750001],[-58.18901367187499,-31.92421875],[-58.16748046875,-31.87265625],[-58.04233398437499,-31.76923828125001],[-58.006982421874994,-31.68496093750001],[-58.053857421874994,-31.494921875],[-58.0333984375,-31.416601562500006],[-57.89335937499999,-31.1953125],[-57.868408203125,-31.10439453125001],[-57.88632812499999,-30.93740234375001],[-57.81059570312499,-30.85859375000001]]]},"properties":{"name":"Uruguay","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-155.58134765624996,19.012011718750017],[-155.88129882812495,19.07050781250001],[-156.04868164062498,19.749951171874983],[-155.82031249999997,20.01416015624997],[-155.83164062499998,20.27583007812501],[-155.198779296875,19.99438476562503],[-154.80419921875,19.524462890625045],[-155.58134765624996,19.012011718750017]]],[[[-156.84960937499997,20.772656249999955],[-156.97338867187497,20.757519531249983],[-157.0505859375,20.912451171875034],[-156.88056640624995,20.904833984375074],[-156.84960937499997,20.772656249999955]]],[[[-156.48681640624994,20.93256835937504],[-156.27753906250004,20.951269531250034],[-155.98984374999998,20.75712890624999],[-156.40878906249998,20.60517578125004],[-156.480078125,20.80122070312501],[-156.69775390625003,20.949072265625034],[-156.58540039062495,21.034326171874994],[-156.48681640624994,20.93256835937504]]],[[[-157.21362304687497,21.215380859375017],[-156.71215820312506,21.155078125000074],[-156.85986328125,21.05634765625004],[-157.29033203124996,21.112597656250017],[-157.21362304687497,21.215380859375017]]],[[[-157.79936523437502,21.456640625000034],[-157.63540039062502,21.30761718749997],[-158.11035156249994,21.318603515625],[-158.27314453125,21.585253906250045],[-157.9625,21.701367187499983],[-157.79936523437502,21.456640625000034]]],[[[-159.37275390625,21.93237304687497],[-159.60883789062495,21.909521484375034],[-159.78916015625003,22.041796875000074],[-159.57919921874998,22.22314453124997],[-159.35205078124997,22.219580078125034],[-159.37275390625,21.93237304687497]]],[[[-81.04418945312503,24.716796875000057],[-81.137353515625,24.710498046875017],[-80.93046875,24.75947265625004],[-81.04418945312503,24.716796875000057]]],[[[-80.3818359375,25.142285156249955],[-80.58056640624997,24.954248046875023],[-80.25708007812497,25.34760742187504],[-80.3818359375,25.142285156249955]]],[[[-97.17070312499996,26.159375],[-97.40209960937494,26.820507812499983],[-97.38598632812494,27.19648437500004],[-97.17070312499996,26.159375]]],[[[-80.18676757812497,27.278417968750034],[-80.17050781250003,27.20478515625004],[-80.43691406249994,27.850537109374955],[-80.18676757812497,27.278417968750034]]],[[[-91.793701171875,29.50073242187497],[-92.00664062499996,29.61030273437501],[-91.875244140625,29.640966796875034],[-91.793701171875,29.50073242187497]]],[[[-84.90791015624998,29.642626953125017],[-85.11674804687499,29.63281249999997],[-84.737158203125,29.732421875],[-84.90791015624998,29.642626953125017]]],[[[-89.22397460937498,30.084082031249977],[-89.34199218749995,30.062841796875006],[-89.18466796874995,30.168652343749983],[-89.22397460937498,30.084082031249977]]],[[[-118.34794921875002,33.3857421875],[-118.29746093750003,33.312109375],[-118.44628906249997,33.317089843749955],[-118.56943359375002,33.46416015624999],[-118.34794921875002,33.3857421875]]],[[[-120.04355468749995,33.918847656249994],[-120.25190429687494,34.01386718749998],[-120.07182617187493,34.026513671874966],[-120.04355468749995,33.918847656249994]]],[[[-119.88237304687497,34.07968749999998],[-119.54926757812497,34.02817382812506],[-119.80957031249997,33.9677734375],[-119.88237304687497,34.07968749999998]]],[[[-75.54414062499995,35.240087890625034],[-75.69008789062502,35.221582031249994],[-75.53637695312497,35.27861328124999],[-75.50351562500003,35.769140625],[-75.46474609374994,35.448632812499966],[-75.54414062499995,35.240087890625034]]],[[[-74.13320312500002,39.680761718750034],[-74.25048828125,39.529394531250006],[-74.10673828124996,39.74643554687498],[-74.13320312500002,39.680761718750034]]],[[[-72.50976562500003,40.98603515625001],[-72.58085937499996,40.92133789062498],[-71.90322265625,41.06069335937505],[-73.19428710937495,40.654199218749994],[-74.01489257812497,40.581201171874966],[-73.87924804687498,40.79165039062502],[-73.573828125,40.91962890624998],[-72.62509765624998,40.99184570312505],[-72.27412109374998,41.15302734375001],[-72.50976562500003,40.98603515625001]]],[[[-69.9779296875,41.26557617187504],[-70.23305664062502,41.28632812500001],[-70.04121093750001,41.3974609375],[-69.9779296875,41.26557617187504]]],[[[-70.50991210937502,41.376318359375034],[-70.82919921874995,41.35898437500006],[-70.61601562499996,41.45722656250001],[-70.50991210937502,41.376318359375034]]],[[[-71.24140625000001,41.49194335937497],[-71.34624023437496,41.469384765624994],[-71.23203124999995,41.654296875],[-71.24140625000001,41.49194335937497]]],[[[-68.18725585937497,44.33247070312501],[-68.41171875000003,44.294335937499966],[-68.29941406249998,44.456494140624955],[-68.18725585937497,44.33247070312501]]],[[[-122.394140625,47.39526367187503],[-122.50991210937497,47.358007812500006],[-122.486474609375,47.48876953125],[-122.394140625,47.39526367187503]]],[[[-122.57275390624999,48.15664062499999],[-122.38315429687499,47.923193359375034],[-122.74150390624999,48.22529296875004],[-122.62861328125,48.38422851562498],[-122.54243164062503,48.29399414062499],[-122.69702148437499,48.228662109374994],[-122.57275390624999,48.15664062499999]]],[[[-94.80346679687497,49.0029296875],[-94.71279296874997,48.863427734374994],[-94.62089843749999,48.74262695312501],[-93.85161132812496,48.607275390625034],[-93.70771484374995,48.52543945312499],[-93.37788085937498,48.61655273437498],[-93.25795898437497,48.62885742187501],[-92.83671875,48.567773437499994],[-92.50058593749995,48.43535156250002],[-92.41459960937493,48.276611328125],[-92.3484375,48.276611328125],[-92.00517578125002,48.301855468750006],[-91.38720703124997,48.05854492187498],[-91.04345703125003,48.19370117187498],[-90.84033203125003,48.20053710937506],[-90.79731445312495,48.13105468750001],[-89.4556640625,47.996240234374994],[-88.37817382812497,48.30307617187498],[-87.74389648437497,48.06054687500003],[-87.20800781249997,47.848486328125006],[-86.67216796874996,47.636425781249955],[-85.65224609375,47.21997070312503],[-85.07006835937497,46.97993164062498],[-84.87597656249994,46.89990234375003],[-84.66577148437503,46.54326171875002],[-84.44047851562496,46.49814453125006],[-84.12319335937497,46.50292968749997],[-83.97778320312503,46.08491210937498],[-83.61596679687503,46.116845703124994],[-83.46948242187503,45.99467773437499],[-83.59267578125,45.81713867187506],[-82.91933593749994,45.51796875000002],[-82.55107421874996,45.34736328125001],[-82.48505859374993,45.08374023437503],[-82.137841796875,43.570898437500034],[-82.19038085937495,43.47407226562501],[-82.54531249999997,42.62470703124998],[-83.10952148437497,42.25068359375001],[-83.141943359375,41.97587890624996],[-82.69003906249995,41.675195312499994],[-82.43906249999998,41.67485351562502],[-81.97416992187496,41.88872070312499],[-81.50732421874997,42.10346679687504],[-81.02822265624997,42.247167968750006],[-80.24755859375,42.36601562499996],[-79.17373046875,42.74853515625],[-78.91508789062496,42.90913085937504],[-78.98076171874993,42.98061523437502],[-79.02617187499996,43.01733398437506],[-79.066064453125,43.10610351562502],[-79.171875,43.466552734375],[-79.00249023437502,43.52714843749999],[-78.845556640625,43.58334960937498],[-78.72041015625001,43.62495117187501],[-78.45825195312497,43.63149414062502],[-77.596533203125,43.62861328124998],[-76.819970703125,43.62880859375002],[-76.18579101562503,44.24223632812502],[-75.81933593749997,44.468017578125],[-75.40126953124997,44.77226562499999],[-74.99614257812496,44.970117187499966],[-74.76245117187494,44.99907226562502],[-74.663232421875,45.00390625000003],[-71.51752929687495,45.00756835937497],[-71.327294921875,45.29008789062496],[-70.86503906249999,45.27070312500001],[-70.296240234375,45.90610351562506],[-70.00771484375002,46.70893554687501],[-69.24287109374998,47.46298828124998],[-69.0501953125,47.426611328125034],[-68.93720703124998,47.21123046875002],[-68.23549804687502,47.34594726562503],[-67.806787109375,47.08281249999999],[-67.80224609374994,45.7275390625],[-67.43266601562496,45.603125],[-67.366943359375,45.17377929687498],[-67.12485351562498,45.16943359375],[-66.98701171874995,44.82768554687502],[-67.191259765625,44.67558593750002],[-67.83906249999998,44.576269531250034],[-68.056640625,44.38432617187502],[-68.15205078124998,44.50200195312499],[-68.45058593749997,44.50761718749999],[-68.53251953124996,44.25864257812498],[-68.81191406249994,44.33935546875],[-68.76269531249994,44.57075195312498],[-69.22607421875003,43.98647460937505],[-69.52075195312503,43.89736328125002],[-69.55668945312496,43.982763671875006],[-69.62392578125,43.88061523437497],[-69.65288085937493,43.99389648437506],[-69.808349609375,43.772314453125034],[-69.965234375,43.855078125],[-70.17880859374998,43.76635742187506],[-70.73310546875001,43.07001953125004],[-70.82905273437493,42.82534179687502],[-70.61293945312497,42.623242187499955],[-71.04619140624993,42.331103515625045],[-70.73828125,42.228857421875006],[-70.42666015625002,41.75727539062501],[-70.00141601562498,41.82617187500003],[-70.24106445312495,42.09121093750002],[-70.10893554687496,42.07832031249998],[-69.97788085937498,41.961279296875006],[-69.94863281249997,41.67714843750005],[-70.65712890625,41.53422851562496],[-70.70112304687498,41.71484375],[-71.1685546875,41.489404296874994],[-71.14873046874996,41.74570312499998],[-71.27109375,41.68125],[-71.39013671875003,41.79531250000005],[-71.52285156249997,41.378955078125045],[-72.92470703125002,41.28515625000003],[-73.98710937499999,40.751367187499994],[-73.87197265625,41.05517578124997],[-73.96992187499995,41.24970703125001],[-73.92719726562495,40.914257812499955],[-74.26420898437496,40.52861328124999],[-73.972265625,40.40034179687498],[-74.079931640625,39.78813476562496],[-74.06459960937497,39.99311523437498],[-74.79448242187499,39.00190429687501],[-74.95429687499995,38.949951171875],[-74.89702148437502,39.14545898437504],[-75.52421874999999,39.49018554687501],[-75.421875,39.78969726562502],[-75.07416992187495,39.98349609375006],[-75.40063476562503,39.83159179687502],[-75.58759765625001,39.64077148437505],[-75.3921875,39.09277343750006],[-75.08867187499999,38.777539062499955],[-75.18710937499995,38.59111328124999],[-75.03876953124993,38.426367187500006],[-75.934375,37.15190429687496],[-75.97504882812498,37.3984375],[-75.65927734374995,37.953955078125034],[-75.850830078125,37.971582031249994],[-75.85869140624999,38.36206054687503],[-76.05122070312495,38.27954101562503],[-76.2646484375,38.436425781249994],[-76.26416015625,38.599951171875006],[-76.016943359375,38.62509765624998],[-76.21298828124998,38.75830078125003],[-76.34116210937498,38.70966796874998],[-76.16816406249998,38.85273437499998],[-76.32958984375,38.95278320312505],[-76.13520507812493,39.082128906250006],[-76.23569335937498,39.19160156250001],[-76.153125,39.315039062500034],[-75.87597656249997,39.3759765625],[-76.003125,39.41083984375001],[-75.87294921874997,39.510888671874966],[-75.95893554687498,39.58505859374998],[-76.2763671875,39.32275390625],[-76.330810546875,39.40390625],[-76.42089843749997,39.225],[-76.57041015624995,39.26933593749996],[-76.42758789062498,39.12602539062499],[-76.55854492187493,39.065234375000045],[-76.39409179687502,38.368994140625034],[-76.67734374999998,38.611962890624966],[-76.66855468749998,38.5375],[-76.34116210937498,38.08701171875006],[-76.86811523437495,38.39028320312502],[-76.88974609375,38.292089843750006],[-77.00117187499995,38.44526367187504],[-77.23251953125,38.40771484375003],[-77.03037109374995,38.88925781249998],[-77.26040039062502,38.6],[-77.27324218749996,38.35175781249998],[-77.04677734375002,38.356689453125],[-76.26425781250003,37.89355468749997],[-76.34414062499997,37.675683593749994],[-76.49248046874999,37.682226562500006],[-77.11108398437497,38.165673828124994],[-76.54946289062494,37.66914062500001],[-76.30556640625,37.57148437500001],[-76.26347656249996,37.35703125],[-76.40097656249998,37.386132812499994],[-76.45390624999993,37.27353515625006],[-76.75771484375002,37.50541992187496],[-76.28330078125,37.05268554687501],[-76.40087890624997,36.991308593750034],[-76.63090820312493,37.22172851562499],[-77.25087890624994,37.329199218750034],[-76.671875,37.172949218750006],[-76.48784179687502,36.89702148437499],[-75.99941406249997,36.91264648437499],[-75.53417968749997,35.81909179687506],[-75.94648437499995,36.65908203125002],[-75.99277343749995,36.47377929687502],[-75.82006835937494,36.11284179687502],[-76.14785156250002,36.279296875],[-76.15,36.14575195312497],[-76.27060546874998,36.18989257812501],[-76.22739257812498,36.11601562499996],[-76.559375,36.015332031249955],[-76.733642578125,36.229150390624994],[-76.726220703125,35.957617187500034],[-76.06977539062501,35.970312500000034],[-76.08359374999998,35.69052734375006],[-75.85390625,35.96015625000001],[-75.75883789062499,35.84326171875],[-75.77392578124997,35.64697265624997],[-76.17382812499997,35.354150390624994],[-76.489501953125,35.397021484375045],[-76.57719726562502,35.53232421874998],[-76.74140624999998,35.431494140625034],[-77.03999023437495,35.527392578125045],[-76.51293945312497,35.270410156249994],[-76.77915039062503,34.990332031250034],[-77.07026367187501,35.154638671875034],[-76.97495117187503,35.025195312500045],[-76.74497070312498,34.94096679687502],[-76.45673828124998,34.989355468750034],[-76.36220703125,34.9365234375],[-76.43979492187498,34.84291992187502],[-77.29624023437503,34.602929687499994],[-77.41225585937497,34.730810546875034],[-77.37978515625,34.526611328125],[-77.750732421875,34.28496093749996],[-77.92783203125,33.93974609374999],[-77.95327148437494,34.16899414062496],[-78.01333007812502,33.91181640624998],[-78.40585937499995,33.91757812499998],[-78.84145507812497,33.72407226562501],[-79.19379882812498,33.24414062500003],[-79.22646484375,33.40488281249998],[-79.27602539062497,33.135400390624966],[-79.80498046874999,32.78740234374996],[-79.93310546874997,32.81005859375006],[-79.94072265625002,32.667138671874966],[-80.36284179687496,32.500732421875],[-80.6341796875,32.51171875000003],[-80.474267578125,32.42275390625002],[-80.579345703125,32.28730468750004],[-80.80253906249999,32.44804687500002],[-80.69423828124997,32.21572265625002],[-81.11328124999997,31.87861328125001],[-81.06611328124995,31.787988281250023],[-81.259375,31.538916015624977],[-81.17543945312494,31.531298828125017],[-81.38095703124998,31.353271484375],[-81.28847656249997,31.263916015625],[-81.441748046875,31.19970703124997],[-81.5162109375,30.801806640625017],[-81.24951171875003,29.793798828125006],[-80.52412109374995,28.48608398437503],[-80.5849609375,28.271582031250034],[-80.456884765625,27.90068359374996],[-80.61000976562494,28.177587890624977],[-80.60693359375003,28.522900390624983],[-80.693505859375,28.34497070312497],[-80.68847656250003,28.578515625000023],[-80.83818359374999,28.757666015625034],[-80.74863281250003,28.381005859375023],[-80.050048828125,26.807714843750063],[-80.1263671875,25.83349609375],[-80.48466796874999,25.229833984375034],[-81.11049804687494,25.138037109374977],[-81.13603515624999,25.309667968750034],[-80.94042968750003,25.264208984375017],[-81.11333007812499,25.367236328125045],[-81.36494140625001,25.83105468750003],[-81.715478515625,25.98315429687503],[-81.95893554687495,26.489941406249983],[-81.82866210937496,26.68706054687499],[-82.03959960937496,26.552050781250017],[-82.01328125,26.96157226562505],[-82.24287109374998,26.848876953125],[-82.44135742187501,27.059667968750034],[-82.71459960937497,27.499609375000063],[-82.40576171874994,27.862890624999977],[-82.67519531249994,27.963769531250023],[-82.61098632812502,27.77724609375005],[-82.74287109374995,27.709375],[-82.84350585937494,27.845996093750017],[-82.65146484375,28.8875],[-83.69438476562502,29.92597656250001],[-84.04423828124996,30.10380859374999],[-84.30966796874995,30.064746093750045],[-84.38281250000003,29.90737304687505],[-85.31894531249995,29.680224609375045],[-85.413818359375,29.76757812499997],[-85.413818359375,29.842480468749955],[-85.31489257812493,29.758105468750017],[-85.35361328125,29.875732421875],[-85.67578125,30.121923828125063],[-85.60351562500003,30.286767578124966],[-85.75581054687495,30.1669921875],[-86.454443359375,30.39912109375004],[-86.12382812499999,30.40581054687499],[-86.25737304687502,30.493017578124977],[-87.201171875,30.339257812499994],[-86.98579101562498,30.43085937500001],[-86.99755859375,30.5703125],[-87.17060546874998,30.538769531249983],[-87.28105468750002,30.339257812499994],[-87.47578124999998,30.294287109375006],[-87.44829101562499,30.394140625],[-87.62226562499998,30.264746093750006],[-88.00595703124998,30.230908203124955],[-87.79028320312503,30.291796875000017],[-88.011328125,30.694189453125006],[-88.13544921874998,30.366601562499994],[-88.90522460937495,30.415136718750006],[-89.32055664062503,30.3453125],[-89.58847656249998,30.165966796874955],[-90.12597656249997,30.369091796874955],[-90.33198242187493,30.277587890625057],[-90.41303710937501,30.140332031249983],[-90.17534179687499,30.02910156249996],[-89.73745117187497,30.171972656250034],[-89.66503906249994,30.117041015625034],[-89.81518554687497,30.007275390624955],[-89.631689453125,29.90380859375003],[-89.400732421875,30.04604492187505],[-89.35444335937501,29.82021484375005],[-89.72089843749995,29.619287109374966],[-89.01572265625,29.202880859375057],[-89.15551757812497,29.01660156250003],[-89.23608398437494,29.081103515625017],[-89.37612304687497,28.981347656250023],[-89.44316406249996,29.194140625000045],[-90.15908203124997,29.537158203125017],[-90.05278320312499,29.336816406249966],[-90.21279296875,29.104931640624983],[-90.37919921874996,29.29511718750001],[-90.75102539062496,29.13085937500003],[-91.29013671875,29.288964843749994],[-91.15078124999994,29.317919921875045],[-91.24882812499993,29.56420898437503],[-91.51420898437499,29.55537109375001],[-91.8931640625,29.836035156249977],[-92.135498046875,29.699462890625057],[-92.08403320312499,29.59282226562499],[-92.26083984374995,29.55683593750004],[-93.17568359375,29.778955078124994],[-93.82646484374999,29.725146484375045],[-93.84145507812502,29.97973632812503],[-93.89047851562495,29.689355468750023],[-94.759619140625,29.384277343750057],[-94.52626953125,29.547949218750006],[-94.77827148437498,29.54785156249997],[-94.74194335937497,29.75],[-95.0228515625,29.70234375000001],[-94.88828125000003,29.37055664062501],[-95.27348632812499,28.96386718750003],[-96.23452148437502,28.488964843749983],[-96.01103515624996,28.631933593749977],[-96.44873046874997,28.594482421875],[-96.64003906249994,28.708789062500017],[-96.42109374999993,28.457324218750045],[-96.67636718749998,28.34130859375003],[-96.77353515624998,28.421630859375057],[-96.839501953125,28.194384765625017],[-97.156494140625,28.144335937500045],[-97.141259765625,28.060742187499983],[-97.034326171875,28.093847656250063],[-97.07309570312498,27.98608398437503],[-97.43149414062498,27.83720703124999],[-97.28872070312494,27.670605468749983],[-97.43911132812502,27.328271484374966],[-97.76845703124997,27.45751953125],[-97.69238281250003,27.287158203125017],[-97.48510742187497,27.237402343750006],[-97.55468749999994,26.96733398437496],[-97.43505859375,26.48583984375003],[-97.14624023437494,25.961474609375045],[-97.37563476562497,25.871826171875],[-99.10776367187498,26.446923828124994],[-99.45654296874999,27.05668945312496],[-99.50532226562497,27.54833984375003],[-100.29604492187495,28.32768554687499],[-100.75458984375001,29.182519531249994],[-101.44038085937503,29.77685546875],[-102.26894531249998,29.871191406250034],[-102.61494140624994,29.75234375],[-102.8919921875,29.216406250000034],[-103.16831054687498,28.998193359374994],[-104.110595703125,29.386132812499994],[-104.50400390624995,29.677685546874955],[-104.97880859374996,30.645947265624955],[-106.14804687499995,31.450927734375],[-106.44541015624996,31.768408203125006],[-108.21181640625002,31.779345703125017],[-108.21445312499993,31.329443359375034],[-111.0419921875,31.32421875000003],[-114.83593749999994,32.50830078125003],[-114.72475585937495,32.71533203125003],[-117.12827148437495,32.533349609374994],[-117.46743164062495,33.295507812500006],[-118.08051757812497,33.72216796874997],[-118.41044921874996,33.74394531249996],[-118.506201171875,34.01738281249999],[-119.14375,34.11201171874998],[-119.60605468749999,34.41801757812499],[-120.48120117187503,34.47163085937498],[-120.64467773437502,34.57998046875002],[-120.65908203124994,35.122412109375034],[-120.85737304687501,35.209667968749955],[-120.899609375,35.42509765624999],[-121.28383789062494,35.67631835937499],[-121.87739257812498,36.33105468749997],[-121.80742187499995,36.851220703124994],[-122.394921875,37.20751953125003],[-122.49921875000001,37.542626953124994],[-122.44560546875002,37.797998046874966],[-122.07050781249998,37.47827148437503],[-122.38544921875001,37.960595703124966],[-122.31425781249999,38.00732421874997],[-121.52534179687503,38.05590820312503],[-122.39335937499995,38.14482421875002],[-122.52133789062499,37.82641601562497],[-122.93198242187498,38.05546875000002],[-122.998779296875,37.98862304687498],[-122.90815429687501,38.19658203124999],[-123.701123046875,38.90727539062502],[-123.83291015624994,39.775488281250034],[-124.35654296875003,40.37109374999997],[-124.07192382812497,41.45952148437502],[-124.53964843750003,42.812890624999966],[-124.14873046874997,43.691748046875034],[-123.92934570312495,45.57695312499996],[-123.989306640625,46.21938476562502],[-123.22060546874998,46.153613281250045],[-123.46484375,46.27109374999998],[-124.07275390624996,46.279443359374994],[-124.04433593750002,46.605078125],[-123.946142578125,46.43256835937501],[-123.88916015625003,46.660009765625006],[-124.11254882812497,46.862695312499994],[-123.84287109375002,46.963183593750045],[-124.11171875,47.03520507812496],[-124.1392578125,46.95468749999998],[-124.376025390625,47.658642578124955],[-124.66308593749996,47.97412109375003],[-124.7099609375,48.38037109375],[-123.97578125,48.16845703125],[-122.97387695312499,48.07329101562496],[-122.77861328125,48.13759765625002],[-122.65664062500002,47.88115234374999],[-122.77841796874996,47.738427734374966],[-122.82138671875,47.79316406250001],[-123.1390625,47.386083984375034],[-122.92216796874993,47.40766601562498],[-123.066796875,47.39965820312506],[-123.04863281249995,47.479345703125034],[-122.53281250000002,47.919726562500045],[-122.67548828124995,47.612353515625045],[-122.57788085937496,47.29316406250001],[-122.76777343750001,47.21835937500006],[-122.82846679687503,47.336572265624994],[-123.02758789062501,47.13891601562503],[-122.70195312500002,47.11088867187502],[-122.35380859374996,47.37158203125],[-122.40180664062497,47.78427734374998],[-122.24199218750002,48.01074218750003],[-122.5169921875,48.15966796874997],[-122.40854492187502,48.29389648437498],[-122.66899414062496,48.465234374999966],[-122.49677734374995,48.50556640625001],[-122.51274414062502,48.66943359375],[-122.56201171875001,48.777978515624994],[-122.68593749999995,48.794287109375034],[-122.72246093750002,48.85302734375003],[-122.78876953125003,48.993017578125034],[-121.40722656249994,48.993017578125034],[-119.70170898437495,48.993017578125034],[-119.27534179687494,48.99306640625005],[-118.84892578124993,48.99306640625005],[-117.99619140625002,48.99306640625005],[-116.71704101562501,48.99306640625005],[-110.74765625,48.99306640625005],[-104.77832031249997,48.993115234374955],[-98.80898437499995,48.99316406249997],[-97.52983398437493,48.99316406249997],[-96.67705078124993,48.99316406249997],[-96.25068359374993,48.99316406249997],[-95.39790039062493,48.99316406249997],[-95.16206054687493,48.991748046875045],[-95.15527343749997,49.36967773437502],[-94.85434570312495,49.304589843749994],[-94.86040039062493,49.258593750000045],[-94.80346679687497,49.0029296875]]],[[[-176.28671874999998,51.79199218750006],[-176.34965820312502,51.733300781249994],[-176.41372070312502,51.840576171875],[-176.28671874999998,51.79199218750006]]],[[[-177.87905273437502,51.64970703125002],[-178.05888671875,51.67260742187497],[-177.98637695312493,51.76425781249998],[-178.16826171874996,51.90302734375001],[-177.644482421875,51.826269531250006],[-177.87905273437502,51.64970703125002]]],[[[-177.14819335937497,51.71674804687498],[-177.67021484375002,51.701074218749994],[-177.11005859375,51.92875976562502],[-177.14819335937497,51.71674804687498]]],[[[-176.593310546875,51.86669921875],[-176.45234374999995,51.735693359375034],[-176.96162109374998,51.60366210937505],[-176.69833984374998,51.986035156249955],[-176.593310546875,51.86669921875]]],[[[179.72773437500015,51.905419921874966],[179.50390625000003,51.97958984374998],[179.6271484375001,52.03041992187502],[179.72773437500015,51.905419921874966]]],[[[177.4154296875,51.88281249999997],[177.25029296875013,51.902929687500006],[177.6696289062501,52.10302734375],[177.4154296875,51.88281249999997]]],[[[-173.5533203125,52.13627929687502],[-173.02290039062504,52.07915039062502],[-173.83579101562498,52.048193359375006],[-173.99248046874993,52.12333984374996],[-173.5533203125,52.13627929687502]]],[[[-172.464794921875,52.27226562500002],[-172.61982421874998,52.27285156250005],[-172.47041015625,52.38803710937506],[-172.31362304687497,52.32958984375006],[-172.464794921875,52.27226562500002]]],[[[-174.67739257812502,52.035009765625006],[-175.29555664062502,52.022167968749955],[-174.30615234375,52.216162109375034],[-174.43554687499997,52.317236328125034],[-174.168896484375,52.42016601562503],[-174.04560546875,52.36723632812499],[-174.12065429687493,52.13520507812498],[-174.67739257812502,52.035009765625006]]],[[[173.72275390625018,52.35957031250004],[173.40234375000009,52.40478515625],[173.77607421875004,52.49511718750003],[173.72275390625018,52.35957031250004]]],[[[172.81181640625002,53.01298828125002],[173.43603515625003,52.85205078125],[172.93515625000012,52.752099609374966],[172.49482421875004,52.93789062499999],[172.81181640625002,53.01298828125002]]],[[[-167.96435546875003,53.345117187499994],[-169.088916015625,52.83203125],[-168.68984375000002,53.227246093749955],[-168.38041992187496,53.28344726562506],[-168.28769531249998,53.500146484374966],[-167.82807617187495,53.50795898437505],[-167.96435546875003,53.345117187499994]]],[[[-166.61533203124998,53.90092773437499],[-166.37231445312494,53.99897460937498],[-166.230859375,53.93261718750006],[-166.54560546875,53.726464843749966],[-166.354541015625,53.67353515625004],[-166.85097656249997,53.45288085937503],[-167.78085937500003,53.30024414062501],[-167.13608398437503,53.526464843750006],[-167.01572265625003,53.69838867187502],[-166.80898437500002,53.64614257812505],[-166.741259765625,53.71293945312496],[-167.10561523437497,53.813378906249994],[-167.03808593749997,53.9421875],[-166.67329101562498,54.00595703124998],[-166.61533203124998,53.90092773437499]]],[[[-165.841552734375,54.070654296875006],[-166.05664062500003,54.054345703124994],[-166.08774414062498,54.16914062500001],[-165.89287109375,54.20698242187498],[-165.69287109375,54.09990234375002],[-165.841552734375,54.070654296875006]]],[[[-165.56113281249998,54.13671874999997],[-165.55063476562498,54.28452148437498],[-165.40786132812502,54.19682617187496],[-165.56113281249998,54.13671874999997]]],[[[-162.29814453124993,54.847021484375006],[-162.43388671875,54.931542968749994],[-162.26459960937504,54.983496093750006],[-162.29814453124993,54.847021484375006]]],[[[-163.476025390625,54.98071289062497],[-163.37895507812496,54.81552734374998],[-163.083251953125,54.66899414062496],[-163.35810546874995,54.73569335937506],[-164.82343749999998,54.41909179687505],[-164.887646484375,54.60781250000002],[-164.47861328124998,54.906835937500006],[-163.80712890624997,55.04907226562503],[-163.476025390625,54.98071289062497]]],[[[-159.51513671875,55.15185546875003],[-159.617724609375,55.05732421875004],[-159.54506835937497,55.22597656250002],[-159.51513671875,55.15185546875003]]],[[[-131.33974609375002,55.079833984375],[-131.32954101562498,54.887744140625045],[-131.592236328125,55.02568359374999],[-131.5654296875,55.26411132812498],[-131.33974609375002,55.079833984375]]],[[[-159.87299804687495,55.128759765625034],[-160.22705078124997,54.92270507812506],[-160.17207031249995,55.123046875],[-159.88735351562497,55.27299804687502],[-159.87299804687495,55.128759765625034]]],[[[-132.86225585937504,54.894433593749966],[-132.61723632812493,54.892431640625006],[-132.70581054687497,54.684179687500034],[-133.42905273437498,55.30380859374998],[-133.097412109375,55.213720703125006],[-132.86225585937504,54.894433593749966]]],[[[-160.329296875,55.337695312500045],[-160.34331054687493,55.25878906250006],[-160.51748046875,55.33383789062506],[-160.329296875,55.337695312500045]]],[[[-160.68491210937498,55.314794921875006],[-160.552783203125,55.38076171875002],[-160.48754882812503,55.18486328124999],[-160.79506835937497,55.14521484375001],[-160.72392578124993,55.404638671875006],[-160.68491210937498,55.314794921875006]]],[[[-133.30507812500002,55.54375],[-133.6501953125,55.26928710937506],[-133.73710937500002,55.49692382812498],[-133.30507812500002,55.54375]]],[[[-155.56601562500003,55.82119140625005],[-155.73735351562493,55.82978515625001],[-155.59394531250004,55.92431640625],[-155.56601562500003,55.82119140625005]]],[[[-130.97915039062502,55.489160156249994],[-131.187890625,55.206298828125],[-131.44755859374996,55.40878906250006],[-131.7625,55.16582031250002],[-131.84609374999997,55.41625976562497],[-131.62495117187504,55.831689453124966],[-131.26923828125004,55.95537109375002],[-130.997802734375,55.727636718750006],[-130.97915039062502,55.489160156249994]]],[[[-133.56611328125,56.33920898437498],[-133.202978515625,56.31982421875003],[-133.096630859375,56.09003906250001],[-132.59760742187504,55.89501953125],[-132.17270507812498,55.48061523437502],[-132.51127929687493,55.59394531250001],[-132.63129882812495,55.47319335937502],[-132.41787109375002,55.48291015625006],[-132.20668945312497,55.22441406249996],[-131.97641601562498,55.208593750000034],[-132.06474609375002,54.713134765625],[-133.11855468750002,55.32763671875003],[-132.95888671875002,55.39555664062502],[-133.0333984375,55.589697265625034],[-133.68017578124994,55.78515625],[-133.24150390624993,55.920800781249994],[-133.371240234375,56.035888671875],[-133.74252929687498,55.96484375],[-133.530859375,56.145654296874966],[-133.56611328125,56.33920898437498]]],[[[-132.77988281249998,56.24726562499998],[-133.03500976562498,56.34091796875006],[-132.90205078124998,56.45375976562505],[-132.62910156249995,56.411914062500045],[-132.77988281249998,56.24726562499998]]],[[[-132.11235351562493,56.109375],[-132.13295898437497,55.94326171875005],[-132.28730468749995,55.92939453124998],[-132.65991210937503,56.07817382812499],[-132.379833984375,56.49877929687497],[-132.06689453125,56.24423828124998],[-132.11235351562493,56.109375]]],[[[-154.208642578125,56.51489257812497],[-154.32221679687504,56.570605468750045],[-154.11040039062496,56.602929687499966],[-154.208642578125,56.51489257812497]]],[[[-169.755224609375,56.63505859375002],[-169.47431640624998,56.59404296875002],[-169.6326171875,56.545703125000045],[-169.755224609375,56.63505859375002]]],[[[-132.746875,56.525683593750045],[-132.94804687500002,56.56723632812498],[-132.842529296875,56.79477539062506],[-132.56796875000003,56.57583007812505],[-132.746875,56.525683593750045]]],[[[-133.98959960937503,56.84497070312497],[-133.73837890625,56.65043945312496],[-133.94970703125,56.12773437499996],[-134.18959960937502,56.07695312500002],[-134.084375,56.456347656250045],[-134.37368164062502,56.838671875000045],[-134.14326171874998,56.93232421875001],[-133.98959960937503,56.84497070312497]]],[[[-133.36621093750006,57.003515625000034],[-132.99624023437497,56.93041992187497],[-132.95917968749998,56.67705078124996],[-133.03491210937494,56.62075195312505],[-133.32895507812498,56.83007812499997],[-133.158154296875,56.495166015625045],[-133.4841796875,56.45175781249998],[-133.979443359375,57.009570312500045],[-133.36621093750006,57.003515625000034]]],[[[-153.007080078125,57.12485351562498],[-153.37460937499998,57.05190429687505],[-153.285205078125,57.18505859375],[-152.90839843750004,57.152441406250006],[-153.007080078125,57.12485351562498]]],[[[-134.96977539062496,57.351416015625034],[-134.62070312499998,56.71831054687502],[-134.68188476562503,56.216162109375034],[-134.98056640625003,56.518945312499994],[-134.88344726562497,56.679052734375034],[-135.33061523437505,56.821875],[-135.19960937499997,57.02734375],[-135.45493164062503,57.24941406250005],[-135.81230468750002,57.00952148437503],[-135.82275390625,57.280419921874966],[-135.448681640625,57.534375],[-134.96977539062496,57.351416015625034]]],[[[-152.89804687499998,57.82392578125004],[-152.42875976562493,57.82568359375003],[-152.48261718749998,57.70332031249998],[-152.21621093749997,57.577001953125006],[-152.41220703125003,57.454785156249955],[-152.94077148437498,57.49809570312499],[-152.67905273437503,57.345117187499994],[-153.274365234375,57.22636718749996],[-153.732568359375,57.052343750000034],[-153.643310546875,56.960742187500045],[-154.02734375,56.77797851562502],[-153.793212890625,56.98950195312503],[-154.24375,57.143017578124955],[-154.33896484374998,56.9208984375],[-154.67319335937498,57.44609375],[-154.11616210937498,57.651220703125006],[-153.6876953125,57.30512695312504],[-153.841552734375,57.86284179687496],[-153.48793945312497,57.73095703125],[-153.21748046875004,57.79575195312506],[-153.16044921875,57.97197265624999],[-152.85039062499993,57.896777343750045],[-152.89804687499998,57.82392578125004]]],[[[-135.73037109375002,58.244238281250034],[-135.61323242187507,57.99184570312505],[-135.346630859375,58.12412109374998],[-134.9546875,58.01533203125004],[-134.97065429687495,57.817236328125006],[-135.33847656250003,57.768652343750034],[-134.97885742187503,57.724365234375],[-134.93149414062498,57.48115234375001],[-135.564208984375,57.66640625],[-135.691943359375,57.41992187500006],[-135.91079101562502,57.44658203124999],[-136.568603515625,57.97216796875003],[-136.32197265625,58.21889648437502],[-136.14375,58.098486328125006],[-136.09438476562502,58.198144531249966],[-135.73037109375002,58.244238281250034]]],[[[-134.68027343749998,58.16166992187499],[-134.24008789062498,58.143994140624955],[-133.82275390624997,57.62866210937503],[-134.29233398437498,58.044726562500074],[-133.91113281250003,57.3525390625],[-134.51601562499997,57.042578125],[-134.48676757812495,57.48203125],[-134.92348632812497,58.354638671874966],[-134.68027343749998,58.16166992187499]]],[[[-152.416943359375,58.360205078125034],[-151.974365234375,58.30986328124999],[-152.068896484375,58.17792968750001],[-152.26835937499993,58.25170898437506],[-152.30922851562502,58.133886718750034],[-152.5982421875,58.16259765625],[-152.92841796875004,57.99370117187499],[-153.38134765625003,58.08720703125002],[-152.976123046875,58.29702148437505],[-152.771875,58.278564453125],[-152.84111328125002,58.41640625000002],[-152.416943359375,58.360205078125034]]],[[[-152.486083984375,58.485009765624966],[-152.63662109375002,58.54169921874998],[-152.3955078125,58.619384765625],[-152.486083984375,58.485009765624966]]],[[[-160.918994140625,58.57709960937498],[-161.13149414062502,58.668212890625],[-160.71513671875005,58.79521484375002],[-160.918994140625,58.57709960937498]]],[[[-148.02177734375,60.06533203125005],[-148.271875,60.05327148437499],[-148.07958984375003,60.151660156250045],[-148.02177734375,60.06533203125005]]],[[[-147.735888671875,59.81323242187503],[-147.76806640625,59.94375],[-147.180859375,60.358251953125034],[-147.01987304687498,60.33222656249998],[-147.735888671875,59.81323242187503]]],[[[-166.13544921875,60.38354492187503],[-165.72968750000004,60.31420898437503],[-165.591796875,59.913134765625045],[-166.14873046874996,59.764111328124955],[-167.13886718749998,60.00854492187503],[-167.43642578125002,60.20664062500006],[-166.836328125,60.21699218750004],[-166.47568359374998,60.382763671874955],[-166.13544921875,60.38354492187503]]],[[[-146.3939453125,60.44965820312501],[-146.10224609374998,60.41118164062499],[-146.61831054687497,60.27368164062503],[-146.70253906249997,60.40854492187498],[-146.3939453125,60.44965820312501]]],[[[-147.658251953125,60.45048828124999],[-147.787841796875,60.17792968749998],[-147.89145507812498,60.299414062500034],[-147.658251953125,60.45048828124999]]],[[[-172.74223632812496,60.45737304687498],[-172.23208007812494,60.299121093750074],[-172.63574218750003,60.328857421875],[-173.04765625000002,60.56831054687501],[-172.74223632812496,60.45737304687498]]],[[[-171.46303710937494,63.640039062499994],[-171.03486328125,63.58549804687499],[-170.29936523437502,63.68061523437501],[-169.55454101562498,63.373486328124955],[-168.71601562500004,63.310595703125045],[-168.76132812500003,63.21376953125002],[-169.364697265625,63.17114257812506],[-169.67636718750003,62.95610351562502],[-169.81860351562494,63.122363281250045],[-170.84838867187494,63.44438476562502],[-171.63183593749997,63.351220703124966],[-171.74638671874993,63.703076171874955],[-171.46303710937494,63.640039062499994]]],[[[-141.00214843750004,68.77416992187506],[-141.00214843750004,67.89755859374998],[-141.00214843750004,66.43652343750006],[-141.00214843750004,65.55991210937498],[-141.00214843750004,64.09887695312506],[-141.00214843750004,63.22226562499998],[-141.00214843750004,61.761279296875045],[-141.00214843750004,60.884667968749994],[-141.00214843750004,60.30024414062504],[-140.76274414062505,60.259130859375006],[-140.525439453125,60.218359375000034],[-140.45283203125004,60.29970703125002],[-139.97329101562497,60.183154296875074],[-139.67631835937505,60.32832031249998],[-139.23476562499997,60.339746093749994],[-139.07924804687497,60.34370117187501],[-139.07924804687497,60.279443359374966],[-139.136962890625,60.17270507812498],[-139.18515624999998,60.083593750000034],[-138.86875,59.94575195312501],[-138.317626953125,59.611132812500074],[-137.59331054687493,59.22626953124998],[-137.52089843750002,58.91538085937498],[-137.43857421875003,58.903125],[-137.2775390625,58.988183593749994],[-137.126220703125,59.04096679687498],[-136.81328125000002,59.150048828124994],[-136.57875976562502,59.15224609375002],[-136.46635742187493,59.459082031250006],[-136.27797851562502,59.48032226562506],[-136.321826171875,59.604833984375034],[-135.70258789062504,59.72875976562506],[-135.36787109374998,59.743310546874994],[-135.051025390625,59.57866210937502],[-134.94375,59.28828125000001],[-134.67724609374997,59.19926757812499],[-134.39306640625,59.009179687499994],[-134.32963867187505,58.93969726562506],[-134.21850585937503,58.849902343750045],[-133.54638671874997,58.50346679687499],[-133.27529296875,58.22285156250004],[-133.00141601562495,57.948974609375],[-132.55048828125,57.499902343749994],[-132.44248046874998,57.40673828125003],[-132.30166015624997,57.27631835937501],[-132.232177734375,57.19853515624999],[-132.27939453124998,57.14536132812498],[-132.33798828124998,57.07944335937506],[-132.15703125,57.048193359375006],[-132.03154296875,57.02656250000004],[-132.062890625,56.95336914062503],[-132.104296875,56.856787109375006],[-131.86616210937495,56.792822265625006],[-131.82426757812496,56.589990234374994],[-131.471875,56.55673828125006],[-130.649072265625,56.26367187500003],[-130.47709960937496,56.230566406250034],[-130.413134765625,56.12250976562498],[-130.09785156249995,56.10927734375002],[-130.01406249999997,55.950537109375006],[-130.2140625,55.02587890625003],[-130.57534179687497,54.769677734374966],[-130.849609375,54.80761718750006],[-131.04785156249997,55.157666015624955],[-130.74819335937502,55.31801757812502],[-131.127685546875,55.96015625000001],[-131.032763671875,56.08808593749998],[-131.78417968749997,55.876562500000034],[-131.98339843749994,55.535009765625006],[-132.15541992187502,55.59956054687501],[-132.20751953124997,55.75341796875],[-131.84384765625003,56.16010742187498],[-131.55136718749998,56.206787109375],[-131.88789062500004,56.24165039062498],[-132.18203125000002,56.42065429687506],[-132.82460937500002,57.05581054687505],[-133.465869140625,57.17216796875002],[-133.64873046874993,57.64228515624998],[-133.11704101562498,57.56621093750002],[-133.535205078125,57.83295898437501],[-133.1943359375,57.87768554687506],[-133.559375,57.924462890624994],[-133.72231445312502,57.84423828125],[-134.03110351562498,58.072167968749966],[-133.87675781249996,58.51816406249998],[-134.20883789062503,58.232958984375045],[-134.77612304687506,58.45385742187503],[-135.36367187500002,59.41943359375],[-135.50234375000002,59.202294921874994],[-135.090234375,58.245849609375],[-135.57177734374994,58.41206054687504],[-135.89755859374998,58.40019531250002],[-136.04311523437497,58.82163085937498],[-135.82636718750004,58.89794921874997],[-136.0166015625,58.87397460937498],[-136.150048828125,59.04809570312503],[-136.22583007812497,58.765478515625006],[-136.98901367187503,59.03447265624999],[-137.05903320312498,58.87373046875001],[-136.613916015625,58.809277343749955],[-136.48374023437503,58.61767578125],[-136.224609375,58.602246093749955],[-136.06147460937495,58.45273437500006],[-136.607421875,58.24399414062498],[-137.54399414062502,58.58120117187502],[-138.51489257812503,59.16591796875005],[-139.77329101562498,59.52729492187504],[-139.51303710937498,59.698095703125006],[-139.5123046875,59.95356445312501],[-139.28671874999998,59.610937500000034],[-139.22080078125003,59.819873046875045],[-138.9880859375,59.83500976562502],[-139.43144531249996,60.012255859375074],[-140.41982421874997,59.71074218750002],[-141.40830078125,59.90278320312498],[-141.408740234375,60.11767578125006],[-141.67016601562497,59.969873046874966],[-142.94565429687503,60.09697265625002],[-144.14721679687494,60.01640625000002],[-144.185498046875,60.150732421875034],[-144.901318359375,60.335156249999955],[-144.69111328125,60.66909179687502],[-145.248291015625,60.38012695312506],[-145.898876953125,60.47817382812505],[-145.67490234374998,60.65112304687503],[-146.57045898437497,60.72915039062502],[-146.39199218749997,60.810839843750045],[-146.63842773437497,60.89731445312498],[-146.59912109374994,61.05351562500002],[-146.284912109375,61.11264648437498],[-147.89111328125,60.889892578125],[-148.00512695312494,60.96855468750002],[-147.75185546874997,61.218945312499955],[-148.34189453125,61.060400390625006],[-148.34443359374998,60.853564453125045],[-148.55615234374994,60.82700195312506],[-148.25673828124997,60.67529296874997],[-148.64013671875,60.48945312500004],[-148.11918945312502,60.57514648437498],[-147.96411132812494,60.48486328124997],[-148.430712890625,59.98911132812498],[-149.2666015625,59.99829101562497],[-149.395263671875,60.10576171875002],[-149.59804687500002,59.77045898437501],[-149.7138671875,59.91958007812502],[-149.80126953124994,59.737939453124966],[-150.00532226562507,59.78442382812503],[-150.19804687499996,59.56655273437505],[-150.60737304687504,59.56337890625002],[-150.934521484375,59.249121093750034],[-151.18276367187502,59.30078124999997],[-151.73818359375002,59.18852539062502],[-151.94951171875,59.26508789062498],[-151.88461914062503,59.386328125],[-151.39960937499995,59.51630859375001],[-151.04648437499998,59.771826171875034],[-151.45009765624997,59.65039062499997],[-151.85322265625,59.78208007812498],[-151.39599609375006,60.27446289062502],[-151.35644531249997,60.72294921874999],[-150.44125976562503,61.02358398437505],[-149.07509765624997,60.87641601562498],[-150.05327148437496,61.17109374999998],[-149.433544921875,61.50078125000002],[-149.97568359374998,61.27934570312502],[-150.61225585937495,61.301123046875006],[-151.59350585937494,60.979638671874966],[-152.54091796874997,60.265429687500045],[-153.025,60.29565429687497],[-152.660107421875,59.99721679687502],[-153.21123046875002,59.84272460937498],[-153.09360351562503,59.70913085937505],[-153.65253906250004,59.64702148437499],[-154.17832031250003,59.155566406250074],[-153.41826171875,58.9599609375],[-153.43759765625003,58.754833984374955],[-154.289013671875,58.30434570312502],[-154.247021484375,58.15942382812497],[-155.006884765625,58.01606445312501],[-155.77797851562497,57.56821289062498],[-156.43588867187498,57.359960937500006],[-156.62900390624998,57.00996093750001],[-158.41440429687498,56.435839843750045],[-158.5521484375,56.31269531249998],[-158.27563476562497,56.19624023437498],[-158.5046875,56.062109375],[-158.59116210937503,56.18452148437498],[-158.78984375000002,55.98691406250006],[-159.52324218749993,55.81000976562498],[-159.65966796875003,55.625927734374955],[-159.77138671874997,55.84111328125002],[-160.49931640625002,55.53730468750004],[-161.38193359374998,55.371289062499955],[-161.44379882812495,55.513281250000034],[-161.202099609375,55.54355468750006],[-161.51694335937503,55.61840820312503],[-162.073974609375,55.13930664062505],[-162.38637695312497,55.05234375],[-162.63037109375003,55.24667968749998],[-162.67436523437505,54.99658203125],[-162.86503906249996,54.954541015624955],[-163.11962890624997,55.06469726562503],[-163.131103515625,54.916552734375045],[-163.33530273437503,54.83916015624999],[-163.27880859374997,55.12182617187503],[-162.906591796875,55.19555664062503],[-161.69731445312502,55.9072265625],[-161.215625,56.02143554687498],[-160.8986328125,55.99365234375],[-161.00537109375,55.88715820312498],[-160.80283203125003,55.754443359375045],[-160.70634765625002,55.870458984375034],[-160.29169921875,55.80507812500005],[-160.53906250000006,56.00629882812501],[-160.30205078125,56.31411132812502],[-158.91801757812502,56.882177734375006],[-158.675146484375,56.79487304687498],[-158.66079101562502,57.03940429687498],[-158.32094726562497,57.29790039062499],[-157.84575195312496,57.52807617187497],[-157.4619140625,57.506201171875034],[-157.697216796875,57.679443359375],[-157.610888671875,58.050830078125074],[-157.19370117187498,58.19418945312506],[-157.48837890624998,58.25371093750002],[-157.52363281249998,58.421337890624955],[-156.97465820312496,58.736328125],[-156.80888671875005,59.13427734375],[-157.14204101562504,58.87763671875001],[-158.19091796875003,58.6142578125],[-158.50317382812494,58.85034179687497],[-158.42563476562498,58.99931640625002],[-158.080517578125,58.97744140625002],[-158.422802734375,59.08984375],[-158.67827148437502,58.92939453124998],[-158.80947265625002,58.973876953125],[-158.78862304687493,58.440966796875045],[-158.95068359375,58.404541015625],[-159.67026367187498,58.9111328125],[-159.92021484375,58.819873046875074],[-160.36313476562498,59.05117187500002],[-161.246826171875,58.799462890624994],[-161.36132812499994,58.66953124999998],[-162.144921875,58.64423828124998],[-161.724365234375,58.794287109375006],[-161.64438476562498,59.109667968750045],[-161.9810546875,59.14614257812502],[-161.82871093749998,59.588623046875],[-162.421337890625,60.28398437500002],[-161.96201171875003,60.695361328125045],[-162.68496093749997,60.268945312499966],[-162.57075195312495,59.98974609375],[-163.68037109374998,59.80151367187503],[-164.14282226562497,59.89677734374999],[-165.02651367187497,60.500634765624994],[-165.35380859375002,60.54121093750001],[-164.80517578125,60.89204101562498],[-164.31850585937497,60.77128906249999],[-164.37236328125002,60.59184570312502],[-163.999560546875,60.76606445312498],[-163.72998046874997,60.589990234374994],[-163.420947265625,60.757421875],[-163.90654296874996,60.85380859375002],[-163.58691406249994,60.902978515624994],[-163.74902343750003,60.9697265625],[-163.99462890624997,60.86469726562501],[-165.11484375,60.93281250000004],[-164.86899414062503,61.11176757812498],[-165.27978515624994,61.169628906249955],[-165.27363281250004,61.27485351562498],[-165.56586914062498,61.10234375000002],[-165.86396484375004,61.33569335937503],[-165.84531249999998,61.536230468750034],[-166.152734375,61.545947265625074],[-166.16811523437502,61.65083007812501],[-165.80893554687503,61.69609375000002],[-166.07880859375,61.803125],[-165.61279296875003,61.86928710937502],[-165.707275390625,62.10043945312506],[-165.19453125,62.47353515625002],[-164.75786132812493,62.496728515624966],[-164.589453125,62.709375],[-164.79267578125,62.623193359374966],[-164.79965820312503,62.918066406250006],[-164.384228515625,63.03046874999998],[-164.40903320312503,63.21503906250001],[-163.94287109375,63.247216796874994],[-163.61630859374998,63.125146484374994],[-163.73784179687496,63.016406250000045],[-163.504345703125,63.105859374999966],[-163.28784179687494,63.046435546875045],[-162.621484375,63.26582031249998],[-162.28281250000003,63.529199218749994],[-161.97397460937498,63.45292968749999],[-161.09970703125003,63.557910156250045],[-160.778564453125,63.818945312500034],[-160.987548828125,64.25126953125002],[-161.49072265625003,64.43378906249998],[-160.93193359374996,64.5791015625],[-160.855908203125,64.755615234375],[-161.13017578125005,64.92543945312505],[-161.759375,64.816259765625],[-162.80703124999997,64.37421875000001],[-163.20390625,64.65200195312502],[-163.14433593750002,64.423828125],[-163.71308593749998,64.588232421875],[-164.978759765625,64.45366210937502],[-166.1427734375,64.58276367187503],[-166.48139648437498,64.72807617187507],[-166.415234375,64.926513671875],[-166.92841796875,65.15708007812498],[-166.15703125,65.28583984375001],[-167.40400390625,65.42211914062497],[-168.08837890624997,65.65776367187502],[-166.39873046875002,66.14443359375005],[-165.62993164062496,66.131201171875],[-165.77617187500002,66.31904296875001],[-164.46049804687502,66.58842773437499],[-163.63823242187502,66.57465820312504],[-163.89394531249997,66.57587890625001],[-164.03374023437493,66.21552734374995],[-163.69536132812502,66.08383789062503],[-161.93369140625003,66.04287109374997],[-161.45541992187503,66.28139648437497],[-161.03427734375003,66.18881835937503],[-161.12031249999995,66.334326171875],[-161.91689453124997,66.41181640624998],[-162.54365234375004,66.80512695312501],[-162.36162109375,66.94731445312502],[-161.591015625,66.45952148437502],[-160.23168945312503,66.420263671875],[-160.360888671875,66.6125],[-160.864013671875,66.67084960937501],[-161.39804687499998,66.55185546875],[-161.85668945312497,66.70034179687497],[-161.719921875,67.02055664062502],[-163.5318359375,67.10258789062502],[-164.1251953125,67.60673828125007],[-166.786279296875,68.35961914062497],[-166.38051757812502,68.425146484375],[-166.20908203125,68.88535156250003],[-165.04394531249994,68.882470703125],[-163.867919921875,69.03666992187505],[-161.88095703125003,70.33173828125001],[-162.073876953125,70.16196289062498],[-160.9962890625,70.30458984375],[-160.11713867187495,70.59121093750002],[-159.86567382812498,70.27885742187499],[-159.81499023437496,70.49707031250003],[-159.38676757812493,70.52451171875003],[-160.081591796875,70.63486328125003],[-159.680908203125,70.786767578125],[-159.31450195312496,70.87851562500003],[-159.251171875,70.7484375],[-157.909375,70.860107421875],[-156.47021484374994,71.40766601562501],[-156.469970703125,71.29155273437507],[-155.57944335937503,71.12109374999997],[-156.14658203125,70.92783203125003],[-155.97353515625002,70.84199218749995],[-155.16684570312498,71.09921875000006],[-154.19521484375002,70.80112304687498],[-153.23291015625,70.93256835937504],[-152.49121093749994,70.88095703125],[-152.23291015625,70.81035156249999],[-152.39921875,70.62045898437503],[-151.76904296875,70.56015625],[-151.94467773437498,70.45209960937501],[-149.26943359374997,70.50078124999999],[-147.70537109375,70.21723632812495],[-145.82314453124997,70.16005859375002],[-145.19736328125003,70.00869140625002],[-143.218310546875,70.11625976562499],[-142.70786132812498,70.03378906249998],[-141.40791015625,69.65336914062502],[-141.00214843750004,69.65078125000002],[-141.00214843750004,68.77416992187506]]]]},"properties":{"name":"United States","childNum":76}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[71.20615234375006,39.892578125],[71.15625,39.88344726562502],[71.06425781250002,39.88491210937505],[71.01171874999997,39.895117187500006],[71.04365234375004,39.97631835937503],[71.04482421875005,39.992529296875034],[70.96064453125004,40.087988281250034],[71.00546875,40.15229492187498],[71.0241210937501,40.14916992187497],[71.08037109375007,40.07988281249999],[71.2287109375001,40.04814453124999],[71.20615234375006,39.892578125]]],[[[70.94677734374997,42.24868164062505],[70.97900390625003,42.26655273437504],[71.03603515625,42.28466796875],[71.12998046875006,42.25],[71.21269531250002,42.20644531250005],[71.23232421875005,42.18627929687503],[71.22851562499997,42.16289062499996],[70.18095703125007,41.571435546874994],[70.734375,41.400537109374994],[70.86044921875006,41.22490234375002],[71.11074218750005,41.152636718750045],[71.29882812500003,41.152490234374994],[71.39306640625003,41.123388671875034],[71.40839843750004,41.13603515625002],[71.42089843750003,41.341894531250034],[71.60625,41.367431640625],[71.66494140625,41.54121093749998],[71.70068359374997,41.454003906249966],[71.75771484375005,41.42802734375002],[71.79248046875003,41.41313476562499],[71.85800781250006,41.311376953125034],[71.8786132812501,41.195019531249955],[71.95849609375003,41.18706054687502],[72.05244140625004,41.16474609375001],[72.1154296875001,41.18657226562502],[72.1642578125001,41.173730468749966],[72.18095703125002,41.11845703124999],[72.18730468750002,41.02592773437499],[72.2130859375001,41.014257812500006],[72.36406250000002,41.04345703125],[72.65830078125,40.86992187499999],[73.13212890625002,40.82851562499999],[72.6041015625,40.52543945312499],[72.40205078125004,40.578076171874955],[72.3892578125,40.427392578124994],[72.13125,40.438623046874966],[71.69248046875,40.15234375],[71.30468749999997,40.28691406249996],[70.990625,40.2548828125],[70.95800781250003,40.238867187500034],[70.653125,40.201171875],[70.37158203125003,40.38413085937506],[70.75107421875006,40.721777343750006],[70.40195312500006,41.03510742187498],[69.71289062500003,40.65698242187503],[69.35722656250002,40.76738281249996],[69.20625,40.566552734374994],[69.27490234374997,40.19809570312498],[68.63066406250007,40.16708984374998],[68.9720703125,40.08994140624998],[68.80468750000003,40.05034179687499],[68.86875,39.90747070312503],[68.63896484375007,39.8388671875],[68.46328125,39.53671874999998],[67.71904296875007,39.62138671875002],[67.426171875,39.46557617187497],[67.3576171875001,39.216699218749994],[67.64833984375005,39.13105468750004],[67.69443359375006,38.99462890625003],[68.13251953125004,38.927636718749966],[68.08720703125002,38.47353515625002],[68.3502929687501,38.211035156250006],[67.81435546875005,37.48701171875004],[67.7980468750001,37.244970703125006],[67.75898437500004,37.172216796875034],[67.75292968749997,37.199804687500034],[67.7,37.227246093749955],[67.60742187499997,37.22250976562506],[67.5172851562501,37.26665039062499],[67.44169921875007,37.25800781250001],[67.3197265625,37.209570312500006],[67.1955078125001,37.23520507812498],[67.06884765624997,37.334814453125006],[66.82773437500006,37.37128906249998],[66.52226562500007,37.34848632812506],[66.51064453125,37.45869140625004],[66.51132812500006,37.59916992187496],[66.52558593750004,37.785742187500034],[66.60625,37.98671875000005],[65.97119140624997,38.244238281250006],[65.612890625,38.23857421875002],[64.3099609375,38.97729492187497],[63.76367187500003,39.16054687499999],[62.48320312500002,39.97563476562496],[61.90283203124997,41.09370117187501],[61.496972656249994,41.276074218749955],[61.2423828125001,41.18920898437503],[60.454980468749994,41.221630859374955],[60.089648437500074,41.39941406250003],[60.07558593750005,41.759667968749966],[60.20078125000006,41.803125],[59.94179687499999,41.97353515625002],[59.98515625000002,42.21171875],[59.35429687500002,42.32329101562496],[58.5890625000001,42.778466796874966],[58.477148437500006,42.66284179687503],[58.15156250000004,42.628076171874966],[58.474414062500074,42.29936523437496],[58.02890625,42.48764648437506],[57.814257812500074,42.18984375000005],[57.290625,42.123779296875],[56.96406250000004,41.856542968750006],[57.11884765625004,41.35029296874998],[57.01796875,41.26347656249996],[55.97744140625005,41.32221679687504],[55.97568359375006,44.99492187499996],[58.555273437500006,45.55537109375001],[61.007910156250006,44.39379882812497],[61.99023437500003,43.492138671874955],[63.20703125000003,43.62797851562502],[64.44316406250007,43.55117187499999],[64.9054687500001,43.714697265625006],[65.49619140625,43.310546875],[65.80302734375002,42.87695312500006],[66.1002929687501,42.99082031249998],[66.00957031250007,42.00488281250003],[66.49863281250006,41.99487304687503],[66.70966796875004,41.17915039062501],[67.9357421875001,41.19658203125002],[68.11308593750007,41.02861328124999],[68.04765625000007,40.80927734374998],[68.29189453125,40.656103515625034],[68.57265625,40.62265624999998],[68.58408203125,40.876269531250045],[69.15361328125002,41.42524414062498],[70.94677734374997,42.24868164062505]]]]},"properties":{"name":"Uzbekistan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-61.17451171875001,13.158105468749966],[-61.268457031249966,13.287695312499991],[-61.13896484374996,13.358740234374991],[-61.17451171875001,13.158105468749966]]]},"properties":{"name":"St. Vin. and Gren.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-60.99790039062498,8.867333984374966],[-61.069189453125034,8.947314453125003],[-60.91582031249996,9.070312500000014],[-60.86142578124998,8.949609375000037],[-60.99790039062498,8.867333984374966]]],[[[-60.821191406249966,9.138378906250026],[-60.94140625000003,9.105566406250006],[-60.73583984374997,9.203320312500026],[-60.821191406249966,9.138378906250026]]],[[[-63.84936523437494,11.131005859374994],[-63.917626953124994,10.887548828125048],[-64.40234375,10.981591796875023],[-64.21367187500002,11.086132812499997],[-64.0283203125,11.00185546874998],[-63.84936523437494,11.131005859374994]]],[[[-60.742138671874926,5.202050781250037],[-60.71196289062499,5.191552734375023],[-60.671972656250034,5.164355468749989],[-60.603857421875006,4.94936523437498],[-61.00283203125002,4.535253906249991],[-61.28007812500002,4.516894531249974],[-61.82084960937496,4.197021484375],[-62.153125,4.098388671874986],[-62.41064453124994,4.156738281249972],[-62.71210937499998,4.01791992187502],[-62.85698242187502,3.593457031249969],[-63.33867187500002,3.943896484375045],[-64.02148437500003,3.929101562500051],[-64.19248046874995,4.126855468750009],[-64.57636718750001,4.139892578125],[-64.788671875,4.276025390625023],[-64.66899414062496,4.01181640625002],[-64.22109375000002,3.587402343749972],[-64.04658203124998,2.502392578124997],[-63.389257812500006,2.411914062500045],[-63.43251953124994,2.155566406250045],[-64.00849609374995,1.931591796874969],[-64.20502929687493,1.52949218750004],[-65.10375976562497,1.108105468749983],[-65.47338867187497,0.691259765624977],[-65.55605468750002,0.687988281250014],[-65.52299804687493,0.843408203124966],[-65.68144531249999,0.983447265624989],[-66.06005859375003,0.78535156250004],[-66.34711914062498,0.7671875],[-66.87602539062499,1.223046875000037],[-67.21083984375,2.390136718750043],[-67.61870117187496,2.793603515624994],[-67.85908203124998,2.793603515624994],[-67.3111328125,3.41586914062502],[-67.66162109375,3.864257812499986],[-67.85527343750002,4.506884765624989],[-67.82490234374995,5.270458984375026],[-67.47387695312503,5.929980468750003],[-67.48198242187499,6.18027343750002],[-67.85917968749999,6.289892578124963],[-68.47177734375,6.156542968749974],[-69.42714843749997,6.123974609374997],[-70.12919921874999,6.95361328125],[-70.73715820312503,7.090039062499997],[-71.12861328124993,6.98671875],[-72.00664062499993,7.032617187500023],[-72.20771484374995,7.37026367187498],[-72.47197265624996,7.524267578124991],[-72.39033203124995,8.287060546874969],[-72.66542968749994,8.62758789062498],[-72.79638671874997,9.10898437499999],[-73.05839843749999,9.259570312500031],[-73.36621093749997,9.194140625000017],[-73.00654296874998,9.789160156250006],[-72.86933593750001,10.49125976562496],[-72.690087890625,10.835839843749994],[-72.24848632812501,11.196435546875009],[-71.95810546875,11.66640625],[-71.31972656249997,11.861914062500048],[-71.95693359375002,11.569921874999977],[-71.835107421875,11.190332031250009],[-71.6416015625,11.013525390625048],[-71.73090820312498,10.994677734375017],[-71.59433593749995,10.657373046875051],[-72.11284179687499,9.815576171874966],[-71.61953124999994,9.047949218749991],[-71.24140625000001,9.160449218750003],[-71.08583984375002,9.348242187499977],[-71.05268554687501,9.705810546874986],[-71.49423828125,10.533203124999972],[-71.46953124999993,10.964160156250017],[-70.23251953124998,11.372998046874997],[-70.09711914062493,11.519775390624972],[-69.80478515624998,11.47421875000002],[-69.81733398437495,11.672070312499997],[-70.19257812499993,11.62460937500002],[-70.28652343749997,11.886035156249989],[-70.20278320312497,12.098388671874986],[-70.00395507812496,12.177880859375023],[-69.63159179687494,11.479931640625026],[-68.827978515625,11.431738281249977],[-68.39863281249995,11.160986328124977],[-68.29628906249997,10.689355468749994],[-68.13994140624999,10.492724609374989],[-66.24721679687497,10.632226562499994],[-65.85175781249995,10.257763671874997],[-65.12910156249998,10.070068359375043],[-64.85048828125,10.098095703124969],[-64.188330078125,10.457812499999989],[-63.73188476562501,10.503417968750043],[-64.24750976562498,10.54257812500002],[-64.298193359375,10.635156249999966],[-61.879492187500006,10.741015625000031],[-62.379980468750006,10.546875],[-62.91357421875,10.531494140624986],[-62.68583984374996,10.289794921875043],[-62.740576171875006,10.056152343750043],[-62.55034179687499,10.200439453125043],[-62.320410156250034,9.783056640625006],[-62.22114257812498,9.882568359375028],[-62.15336914062493,9.821777343749986],[-62.15532226562499,9.979248046875014],[-62.077099609374926,9.97504882812504],[-61.73593749999998,9.631201171874977],[-61.76591796874996,9.813818359374963],[-61.58886718749994,9.894531249999986],[-60.79248046874997,9.360742187500037],[-61.02314453124998,9.15458984374996],[-61.24726562499998,8.600341796875014],[-61.61870117187499,8.59746093749996],[-61.30400390624999,8.410400390625043],[-60.800976562499926,8.592138671875034],[-60.16748046875,8.616992187500031],[-60.01752929687501,8.549316406250014],[-59.83164062499998,8.305957031250003],[-59.84907226562498,8.248681640624966],[-59.96484375000003,8.191601562499969],[-59.99072265624997,8.16201171874998],[-60.032421874999926,8.053564453125006],[-60.51362304687501,7.813183593749969],[-60.71865234374994,7.535937499999974],[-60.606542968750006,7.320849609375031],[-60.63330078124997,7.211083984374966],[-60.58320312499998,7.156201171874969],[-60.523193359375,7.143701171875009],[-60.464941406250034,7.166552734375045],[-60.39238281249999,7.164550781249986],[-60.34506835937495,7.15],[-60.32548828124996,7.133984374999983],[-60.32207031249996,7.092041015625043],[-60.35209960937496,7.002880859374997],[-60.39501953125,6.945361328125003],[-60.717919921874966,6.768310546875],[-61.14560546874998,6.694531249999983],[-61.20361328124997,6.588378906250028],[-61.181591796874926,6.513378906250026],[-61.15102539062502,6.446533203124986],[-61.15229492187501,6.385107421875006],[-61.12871093749999,6.214306640625026],[-61.15947265624996,6.174414062499977],[-61.22495117187498,6.129199218750003],[-61.303125,6.049511718750026],[-61.39082031250001,5.938769531250017],[-61.376806640625006,5.906982421875028],[-61.167187499999926,5.674218750000037],[-60.95400390625002,5.437402343750023],[-60.742138671874926,5.202050781250037]]]]},"properties":{"name":"Venezuela","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[-64.765625,17.794335937499994],[-64.58046874999994,17.750195312499983],[-64.88911132812495,17.701708984375045],[-64.765625,17.794335937499994]]]},"properties":{"name":"U.S. Virgin Is.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[104.06396484375003,10.390820312500011],[104.01845703125,10.029199218749966],[103.84951171875005,10.371093749999986],[104.06396484375003,10.390820312500011]]],[[[107.52128906250007,20.926611328124977],[107.39921875000007,20.903466796874966],[107.55126953125003,21.034033203125006],[107.52128906250007,20.926611328124977]]],[[[107.60273437500004,21.21679687500003],[107.40351562500004,21.093652343749994],[107.47626953125004,21.268945312499994],[107.60273437500004,21.21679687500003]]],[[[107.97265624999997,21.507958984375023],[107.40996093750002,21.284814453125023],[107.35429687500007,21.055175781250057],[107.1647460937501,20.94873046875003],[106.68339843750007,21.000292968750074],[106.75341796875003,20.73505859375004],[106.55078124999997,20.52656250000001],[106.57285156250012,20.392187499999977],[105.98408203125004,19.939062500000034],[105.62177734375004,18.96630859375003],[105.88828125000006,18.502490234375045],[106.49902343749997,17.946435546874994],[106.47890625000005,17.719580078125063],[106.3705078125,17.746875],[107.83378906250002,16.322460937499983],[108.02939453125012,16.331103515625074],[108.82128906249997,15.377929687500028],[109.30332031250012,13.856445312500043],[109.271875,13.279345703124974],[109.42392578125006,12.955957031249994],[109.44492187500006,12.599609375000057],[109.33554687500012,12.751904296874997],[109.21894531250004,12.64580078124996],[109.30468750000003,12.391162109375045],[109.20683593750007,12.415380859375006],[109.1986328125,11.724853515625014],[109.03964843750012,11.592675781249994],[108.98671875,11.336376953124997],[108.09492187500004,10.897265624999989],[108.0013671875,10.720361328125009],[107.26152343750007,10.39838867187504],[107.00664062500002,10.66054687499998],[106.94746093750004,10.400341796874997],[106.72734375000007,10.535644531250028],[106.605859375,10.46494140625002],[106.74121093750003,10.444384765625003],[106.75742187500006,10.295800781250023],[106.46406250000004,10.298291015624997],[106.78525390625012,10.116455078124986],[106.59560546875005,9.859863281250028],[106.1364257812501,10.221679687500014],[106.56435546875005,9.715625],[106.48408203125004,9.559423828125006],[105.83095703125005,10.000732421875028],[106.15859375,9.59414062499998],[106.16835937500005,9.396728515625],[105.50097656249997,9.093212890624983],[105.11435546875006,8.629199218750031],[104.77041015625,8.59765625],[104.89628906250007,8.746630859374974],[104.81855468750004,8.801855468750034],[104.84521484375003,9.606152343750026],[105.08447265625003,9.99570312499999],[104.8019531250001,10.202734374999977],[104.66347656250005,10.169921875000043],[104.42636718750006,10.411230468749991],[104.85058593749997,10.534472656249974],[105.04638671874997,10.701660156250014],[105.04570312500002,10.911376953125014],[105.3146484375001,10.845166015625026],[105.40576171875003,10.95161132812504],[105.75507812500004,10.989990234375043],[105.85332031250007,10.86357421874996],[106.16396484375005,10.794921875],[106.16093750000002,11.037109375000057],[105.85605468750006,11.294287109375048],[105.85146484375005,11.635009765625],[106.0060546875001,11.758007812500011],[106.39921875000007,11.687011718750028],[106.41386718750002,11.9484375],[106.70009765625,11.979296874999974],[107.21210937500004,12.30400390624996],[107.39335937500002,12.260498046874972],[107.50644531250006,12.364550781250031],[107.47539062500002,13.030371093749963],[107.60546874999997,13.437792968750017],[107.3314453125,14.126611328125009],[107.51943359375005,14.705078125],[107.51376953125012,14.817382812500057],[107.52451171875012,14.871826171875043],[107.50468750000007,14.915917968749966],[107.48037109375,14.979882812500037],[107.55527343750006,15.057031250000023],[107.58964843750002,15.118457031250017],[107.63369140625005,15.18984375],[107.653125,15.255224609374991],[107.62167968750006,15.309863281250017],[107.56425781250002,15.391601562499972],[107.45957031250012,15.4658203125],[107.33876953125,15.560498046875011],[107.27939453125006,15.618701171875045],[107.16591796875005,15.802490234375028],[107.1888671875,15.838623046875],[107.36064453125002,15.921728515624977],[107.3919921875,15.951660156250028],[107.39638671875,16.04301757812499],[106.93066406249997,16.353125],[106.8927734375001,16.396533203125074],[106.85107421875003,16.515625],[106.83242187500005,16.526269531250023],[106.79160156250006,16.490332031250006],[106.73955078125007,16.452539062500023],[106.6564453125001,16.49262695312501],[106.54619140625002,16.650732421874977],[106.53369140625003,16.821044921875057],[106.52597656250006,16.876611328124994],[106.50224609375002,16.95410156249997],[106.26953125000003,17.21679687500003],[106.00625,17.415283203125057],[105.69140625000003,17.737841796875045],[105.58847656250012,17.983691406250045],[105.51855468749997,18.077441406250045],[105.45820312500004,18.15429687499997],[105.11455078125002,18.40527343750003],[105.08701171875006,18.496240234374994],[105.14541015625,18.616796875000063],[105.14648437500003,18.650976562500006],[103.89160156250003,19.304980468750017],[103.89638671875,19.339990234375023],[103.93203125,19.366064453125006],[104.0275390625001,19.42045898437499],[104.062890625,19.48256835937505],[104.05156250000007,19.564160156249955],[104.01347656250007,19.64648437500003],[104.03203125000002,19.675146484375006],[104.06279296875007,19.678417968749983],[104.25986328125006,19.685498046874983],[104.5462890625,19.61054687500001],[104.58789062500003,19.61875],[104.74316406250003,19.754736328124977],[104.80175781249997,19.83613281250004],[104.81513671875004,19.90400390625001],[104.9279296875001,20.01811523437499],[104.92919921875003,20.082812500000017],[104.88867187500003,20.169091796875023],[104.84785156250004,20.202441406250045],[104.69873046875003,20.20532226562503],[104.67695312500004,20.224707031249977],[104.66191406250007,20.28901367187501],[104.65644531250004,20.32851562499999],[104.6188476562501,20.37451171875003],[104.49619140625006,20.413671875],[104.39218750000012,20.424755859374955],[104.36777343750012,20.44140624999997],[104.40781250000012,20.48574218750005],[104.47861328125006,20.529589843750017],[104.53271484374997,20.55488281250001],[104.58320312500004,20.646679687499955],[104.34960937499997,20.821093750000074],[104.19531249999997,20.913964843749966],[104.10136718750002,20.94550781250001],[103.63505859375007,20.697070312500017],[103.46357421875004,20.779833984375017],[103.21074218750002,20.840625],[103.10449218749997,20.891650390625045],[102.88378906250003,21.202587890624983],[102.85117187500006,21.26591796874999],[102.94960937500005,21.681347656249983],[102.84521484374997,21.73476562500005],[102.81591796874997,21.807373046875],[102.7982421875,21.797949218750034],[102.77109375000006,21.709667968749983],[102.73857421875002,21.67792968750001],[102.66201171875005,21.67602539062497],[102.58251953125003,21.90429687500003],[102.12744140624997,22.379199218750045],[102.1759765625001,22.414648437500006],[102.2370117187501,22.466015624999983],[102.40644531250004,22.70800781249997],[102.47089843750004,22.75092773437501],[102.98193359374997,22.4482421875],[103.32666015625003,22.769775390625057],[103.49296875000007,22.587988281250034],[103.62021484375006,22.782031250000045],[103.94150390625006,22.540087890625045],[104.14306640624997,22.800146484375006],[104.37177734375004,22.704052734374983],[104.68730468750002,22.822216796874983],[104.86474609375003,23.136376953125023],[105.27539062500003,23.34521484375003],[105.8429687500001,22.922802734374955],[106.14843749999997,22.970068359375006],[106.2790039062501,22.857470703125045],[106.54179687500007,22.908349609375023],[106.78027343749997,22.778906250000034],[106.55039062500006,22.501367187499994],[106.66357421875003,21.97890625000005],[106.97099609375002,21.923925781250034],[107.35117187500012,21.60888671874997],[107.75927734374997,21.655029296875057],[107.97265624999997,21.507958984375023]]]]},"properties":{"name":"Vietnam","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[169.49130859375006,-19.54013671875002],[169.34726562500006,-19.623535156249957],[169.2174804687501,-19.476367187500003],[169.24746093750005,-19.3447265625],[169.49130859375006,-19.54013671875002]]],[[[169.334375,-18.940234375000017],[168.98691406250006,-18.87128906250001],[169.01582031250004,-18.64375],[169.14384765625002,-18.63105468750001],[169.334375,-18.940234375000017]]],[[[168.44580078124997,-17.54218750000004],[168.58496093750003,-17.695898437500006],[168.52460937500004,-17.798046875000026],[168.15820312500003,-17.710546874999963],[168.2731445312501,-17.552246093749957],[168.44580078124997,-17.54218750000004]]],[[[168.44677734375003,-16.778808593749957],[168.18144531250002,-16.804003906250017],[168.13535156250006,-16.636914062499997],[168.44677734375003,-16.778808593749957]]],[[[168.29667968750007,-16.33652343749999],[167.92900390625002,-16.22871093749997],[168.16386718750002,-16.081640625000034],[168.29667968750007,-16.33652343749999]]],[[[167.4125,-16.095898437499997],[167.83662109375004,-16.449707031249957],[167.44931640625012,-16.554980468750003],[167.34921875000006,-16.15449218750004],[167.15146484375006,-16.080468749999966],[167.19951171875002,-15.885058593750031],[167.33574218750007,-15.916699218749997],[167.4125,-16.095898437499997]]],[[[167.9113281250001,-15.435937500000023],[167.67421875,-15.4515625],[168.00253906250012,-15.283203124999986],[167.9113281250001,-15.435937500000023]]],[[[166.74580078125004,-14.826855468750011],[166.81015625000012,-15.15742187500004],[167.0755859375,-14.935644531249977],[167.20078125000012,-15.443066406249969],[167.0939453125001,-15.580859374999974],[166.75830078125003,-15.631152343750003],[166.63105468750004,-15.406054687499974],[166.56738281250003,-14.641796874999969],[166.74580078125004,-14.826855468750011]]],[[[167.58486328125,-14.260937500000011],[167.43027343750012,-14.294921875],[167.41074218750006,-14.19746093750004],[167.50644531250012,-14.142187499999977],[167.58486328125,-14.260937500000011]]],[[[167.48886718750006,-13.907226562499972],[167.3917968750001,-13.788378906250017],[167.48105468750006,-13.709472656250014],[167.48886718750006,-13.907226562499972]]]]},"properties":{"name":"Vanuatu","childNum":10}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-171.4541015625,-14.04648437500002],[-171.9119140625,-14.001660156250026],[-172.04589843750003,-13.857128906249983],[-171.60390624999997,-13.879199218750045],[-171.4541015625,-14.04648437500002]]],[[[-172.33349609375,-13.46523437499999],[-172.17685546874998,-13.68466796875002],[-172.224951171875,-13.804296874999963],[-172.535693359375,-13.791699218749983],[-172.77851562499998,-13.516796875000011],[-172.33349609375,-13.46523437499999]]]]},"properties":{"name":"Samoa","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[53.76318359374997,12.636816406249991],[54.18740234375005,12.664013671875026],[54.511132812499994,12.552783203125017],[54.12949218750006,12.360644531250045],[53.71884765625006,12.318994140624994],[53.31582031250005,12.533154296875011],[53.53496093750002,12.715771484374997],[53.76318359374997,12.636816406249991]]],[[[42.75585937500003,13.70429687500004],[42.689746093750074,13.673632812500017],[42.7941406250001,13.766113281250028],[42.75585937500003,13.70429687500004]]],[[[42.787402343750074,13.971484375000031],[42.69404296875004,14.007910156249991],[42.76210937500005,14.067480468750048],[42.787402343750074,13.971484375000031]]],[[[53.08564453125004,16.648388671874955],[52.327734375,16.293554687500063],[52.17402343750004,15.956835937500017],[52.2174804687501,15.655517578125],[51.3224609375001,15.22626953125004],[49.34990234375002,14.637792968749977],[48.66835937499999,14.050146484374977],[47.9899414062501,14.048095703125],[47.40771484374997,13.661621093750057],[46.78886718750002,13.465576171874986],[45.65732421875006,13.338720703124991],[45.03867187500006,12.815869140624969],[44.617773437500006,12.817236328124977],[44.00585937499997,12.607666015625],[43.634375,12.744482421874991],[43.487597656250074,12.69882812500002],[43.23193359375003,13.267089843750057],[43.2824218750001,13.692529296875037],[43.08906250000004,14.010986328125],[42.93642578125005,14.938574218749963],[42.85566406250004,15.132958984375037],[42.65781250000006,15.232812500000051],[42.79902343750004,15.326269531249991],[42.71718750000005,15.654638671875006],[42.83964843750002,16.032031250000074],[42.79931640624997,16.37177734375001],[43.16503906249997,16.689404296874955],[43.19091796875003,17.359375],[43.41796875000003,17.516259765625023],[43.91699218749997,17.32470703124997],[45.14804687500006,17.427441406249955],[45.5353515625001,17.30205078124999],[46.72763671875006,17.26557617187501],[46.97568359375006,16.953466796875034],[47.14355468749997,16.946679687499966],[47.44179687499999,17.111865234375045],[47.57958984374997,17.448339843750034],[48.17216796875002,18.156933593749983],[49.04199218750003,18.58178710937503],[51.977636718750006,18.996142578125074],[53.08564453125004,16.648388671874955]]]]},"properties":{"name":"Yemen","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[37.85693359375003,-46.94423828124998],[37.5900390625001,-46.90800781250006],[37.78955078124997,-46.8375],[37.85693359375003,-46.94423828124998]]],[[[31.799609375000017,-23.8921875],[31.98583984374997,-24.460644531249983],[31.921679687500017,-25.96875],[31.335156250000097,-25.755566406249997],[31.207324218750074,-25.843359375000034],[31.08808593750004,-25.980664062500026],[30.803320312500006,-26.41347656250001],[30.806738281250006,-26.78525390624999],[30.88330078124997,-26.792382812500023],[30.938085937500006,-26.91582031250003],[31.06337890625005,-27.1123046875],[31.274023437500063,-27.23837890625002],[31.469531250000017,-27.29550781250002],[31.74257812500005,-27.309960937500037],[31.95839843750005,-27.305859375],[31.946093750000017,-27.173632812499974],[31.96718750000005,-26.96064453125001],[31.994726562500006,-26.817480468749977],[32.024804687499994,-26.81113281250002],[32.112890625,-26.83945312500002],[32.19960937499999,-26.833496093749957],[32.35351562499997,-26.861621093750003],[32.7765625000001,-26.850976562499966],[32.88613281250005,-26.849316406249983],[32.53476562500006,-28.19970703125003],[32.285742187500006,-28.62148437499998],[31.335156250000097,-29.378125],[29.97119140625003,-31.322070312500017],[28.449414062500068,-32.62460937499999],[27.077441406250074,-33.52119140625004],[26.429492187500045,-33.75957031250002],[25.80585937500001,-33.737109374999974],[25.574218750000057,-34.03535156249998],[25.00292968750003,-33.97363281250003],[24.8271484375,-34.16894531250003],[24.595507812500074,-34.17451171875],[23.697851562500063,-33.99277343750002],[23.268164062500006,-34.08115234374999],[22.553808593750063,-34.01005859374999],[22.24550781250005,-34.06914062500003],[21.788964843750023,-34.37265624999996],[20.529882812500034,-34.4630859375],[20.020605468750006,-34.785742187500006],[19.298242187500023,-34.61503906249996],[19.330761718750068,-34.49238281250001],[19.098339843750068,-34.350097656249986],[18.831347656250017,-34.36406249999999],[18.75214843750004,-34.08261718750002],[18.50039062499999,-34.10927734375004],[18.46162109375001,-34.346875],[18.35205078124997,-34.1884765625],[18.43300781250005,-33.71728515625003],[17.851074218750057,-32.82744140625002],[17.96523437500005,-32.70859374999996],[18.125,-32.74912109374996],[18.325292968750034,-32.50498046874996],[18.21083984375008,-31.74248046874996],[17.34707031250005,-30.44482421875],[16.95,-29.40341796875002],[16.739453124999983,-29.009375],[16.447558593750045,-28.61757812499998],[16.755761718750023,-28.45214843750003],[16.7875,-28.39472656249997],[16.81015625,-28.264550781249994],[16.841210937500023,-28.21894531250004],[16.875292968750045,-28.12792968749997],[16.93330078125004,-28.06962890624999],[17.05625,-28.03105468750003],[17.1884765625,-28.13251953125001],[17.358691406250017,-28.269433593750023],[17.44794921875001,-28.698144531249966],[18.310839843750017,-28.88623046875],[19.16171875,-28.93876953124996],[19.245800781250068,-28.90166015625003],[19.31269531250004,-28.733300781250023],[19.539843750000017,-28.574609375000023],[19.98046875,-28.45126953125002],[19.98046875,-28.310351562500003],[19.98046875,-24.77675781249998],[20.430664062500057,-25.14707031250002],[20.79316406250001,-25.915625],[20.641406250000017,-26.7421875],[20.739843749999977,-26.84882812499997],[21.694726562500023,-26.840917968749963],[21.738085937500045,-26.806835937500026],[21.788281250000068,-26.710058593750034],[22.01093750000004,-26.635839843750006],[22.090917968749977,-26.580175781250034],[22.217578125000045,-26.38886718749997],[22.47089843750004,-26.219042968750003],[22.548632812500074,-26.178417968749997],[22.59765625000003,-26.13271484375001],[22.878808593750023,-25.457910156250023],[23.148730468750017,-25.288671875],[23.389257812500006,-25.291406250000023],[23.89375,-25.600878906250017],[23.96953124999999,-25.62607421874999],[24.192968750000034,-25.632910156249963],[24.33056640625,-25.742871093749983],[25.21337890625,-25.75625],[25.518164062500006,-25.66279296875001],[25.91210937499997,-24.747460937499966],[26.031835937500034,-24.70244140625003],[26.130859375000057,-24.671484375000034],[26.39716796875004,-24.61357421874996],[26.451757812500063,-24.582714843749983],[26.835058593750063,-24.240820312499963],[27.085546875000034,-23.577929687500003],[27.7685546875,-23.14892578125],[27.812597656250006,-23.108007812500006],[28.210156249999983,-22.693652343749974],[28.83984375000003,-22.480859374999966],[28.94580078125003,-22.39511718749999],[29.013476562500045,-22.27841796875002],[29.129882812500057,-22.21328125],[29.364843750000063,-22.19394531250005],[29.37744140625003,-22.19277343749998],[29.66308593749997,-22.146289062500017],[29.90234375000003,-22.184179687500006],[30.19042968750003,-22.291113281250034],[30.460156250000097,-22.329003906250023],[30.71162109375004,-22.297851562499986],[31.07343750000004,-22.30781249999997],[31.19726562499997,-22.344921874999983],[31.287890625000074,-22.402050781249983],[31.54560546875004,-23.48232421874998],[31.799609375000017,-23.8921875]],[[27.19355468750001,-29.94130859375001],[27.364062500000017,-30.27919921875001],[27.753125,-30.6],[28.05683593750001,-30.63105468750001],[28.128710937500017,-30.52509765625001],[28.39208984375003,-30.14755859375002],[28.646875,-30.1265625],[29.09804687500005,-29.919042968750006],[29.142187500000063,-29.70097656249999],[29.293554687500006,-29.56689453125003],[29.348828125000097,-29.441992187499977],[29.38671874999997,-29.319726562500023],[29.301367187500006,-29.08984375],[28.625781250000017,-28.581738281250054],[28.583398437499994,-28.59414062499999],[28.471875,-28.615820312499977],[28.23261718750004,-28.701269531249977],[28.084375,-28.779980468750026],[27.95986328125008,-28.87333984375003],[27.73554687500004,-28.940039062500034],[27.294531250000063,-29.519335937500017],[27.056933593750074,-29.62558593749999],[27.19355468750001,-29.94130859375001]]]]},"properties":{"name":"South Africa","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[33.148046875,-9.603515625],[33.25,-9.759570312500003],[33.35097656250002,-9.862207031250009],[33.33710937500001,-9.954003906250009],[33.3115234375,-10.037988281250009],[33.52890625,-10.234667968750003],[33.53759765625,-10.3515625],[33.5537109375,-10.391308593750011],[33.66152343750002,-10.553125],[33.29277343750002,-10.85234375],[33.37978515625002,-11.157910156250011],[33.26835937500002,-11.40390625],[33.23271484375002,-11.417675781250011],[33.22636718750002,-11.534863281250011],[33.30390625000001,-11.690820312500009],[33.25234375000002,-12.112597656250003],[33.34013671875002,-12.308300781250011],[33.512304687500006,-12.347753906250006],[32.975195312500006,-12.701367187500011],[32.96757812500002,-13.225],[32.67041015625,-13.590429687500006],[32.797460937500006,-13.6884765625],[32.98125,-14.009375],[33.148046875,-13.94091796875],[33.201757812500006,-14.013378906250011],[30.231835937500023,-14.990332031250006],[30.39609375,-15.64306640625],[29.4873046875,-15.69677734375],[28.9130859375,-15.98779296875],[28.760546875000017,-16.53212890625001],[27.932226562500006,-16.89619140625001],[27.020800781250017,-17.95839843750001],[26.779882812500006,-18.04150390625],[26.333398437500023,-17.929296875],[25.995898437500017,-17.969824218750006],[25.2587890625,-17.793554687500006],[25.001757812500017,-17.56855468750001],[24.73291015625,-17.51777343750001],[24.27490234375,-17.481054687500006],[23.380664062500017,-17.640625],[22.193945312500006,-16.628125],[21.979785156250017,-15.95556640625],[21.979394531250023,-14.440527343750006],[21.979296875000017,-14.11962890625],[21.979101562500006,-13.798730468750009],[21.978906250000023,-13.0009765625],[22.209570312500006,-13.0009765625],[23.843164062500023,-13.0009765625],[23.962988281250006,-12.988476562500011],[23.882421875,-12.799023437500011],[23.886523437500017,-12.743261718750006],[23.909375,-12.636132812500009],[23.98388671875,-11.725],[23.96650390625001,-10.871777343750011],[24.36572265625,-11.1298828125],[24.3779296875,-11.417089843750006],[25.28876953125001,-11.21240234375],[25.349414062500017,-11.623046875],[26.025976562500006,-11.89013671875],[26.824023437500017,-11.965234375],[27.1591796875,-11.579199218750006],[27.573828125,-12.22705078125],[28.412890625000017,-12.51806640625],[28.550878906250006,-12.836132812500011],[28.730078125,-12.925488281250011],[29.014257812500006,-13.368847656250011],[29.20185546875001,-13.398339843750009],[29.55419921875,-13.248925781250009],[29.775195312500017,-13.438085937500006],[29.79511718750001,-12.155468750000011],[29.508203125000023,-12.228222656250011],[29.48554687500001,-12.41845703125],[29.064355468750023,-12.348828125000011],[28.482519531250006,-11.812109375],[28.383398437500006,-11.566699218750003],[28.6455078125,-10.550195312500009],[28.60419921875001,-9.678808593750006],[28.400683593750017,-9.224804687500011],[28.869531250000023,-8.785839843750011],[28.89814453125001,-8.485449218750006],[30.75117187500001,-8.193652343750003],[30.830664062500006,-8.385546875],[30.891992187500023,-8.473730468750006],[30.968359375,-8.550976562500011],[31.07636718750001,-8.611914062500006],[31.3505859375,-8.60703125],[31.44921875,-8.65390625],[31.53486328125001,-8.71328125],[31.55625,-8.80546875],[31.673632812500017,-8.908789062500006],[31.91865234375001,-8.9421875],[31.921875,-9.019433593750009],[31.94257812500001,-9.054003906250003],[32.75664062500002,-9.322265625],[32.919921875,-9.407421875000011],[32.99599609375002,-9.622851562500003],[33.148046875,-9.603515625]]]},"properties":{"name":"Zambia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[31.287890625000017,-22.40205078125001],[31.07343750000001,-22.30781250000001],[30.71162109375001,-22.2978515625],[30.46015625000001,-22.32900390625001],[30.1904296875,-22.291113281250006],[29.90234375,-22.184179687500006],[29.6630859375,-22.146289062500003],[29.37744140625,-22.19277343750001],[29.36484375,-22.193945312500006],[29.315234375000017,-22.15771484375],[29.237207031250023,-22.07949218750001],[29.042382812500023,-22.018359375],[29.02558593750001,-21.796875],[28.014062500000023,-21.55419921875],[27.66943359375,-21.064257812500003],[27.679296875,-20.503027343750006],[27.28076171875,-20.47871093750001],[27.17822265625,-20.10097656250001],[26.168066406250006,-19.53828125000001],[25.939355468750023,-18.93867187500001],[25.242285156250006,-17.969042968750003],[25.2587890625,-17.793554687500006],[25.995898437500017,-17.969824218750006],[26.333398437500023,-17.929296875],[26.779882812500006,-18.04150390625],[27.020800781250017,-17.95839843750001],[27.932226562500006,-16.89619140625001],[28.760546875000017,-16.53212890625001],[28.9130859375,-15.98779296875],[29.4873046875,-15.69677734375],[30.39609375,-15.64306640625],[30.437792968750017,-15.995312500000011],[31.236230468750023,-16.02363281250001],[31.939843750000023,-16.428808593750006],[32.94804687500002,-16.71230468750001],[32.87626953125002,-16.88359375],[32.99306640625002,-18.35957031250001],[32.69970703125,-18.94091796875],[32.84980468750001,-19.10439453125001],[32.77763671875002,-19.388769531250006],[32.992773437500006,-19.98486328125],[32.49238281250001,-20.659765625],[32.353613281250006,-21.136523437500003],[32.429785156250006,-21.29707031250001],[31.429492187500017,-22.298828125],[31.287890625000017,-22.40205078125001]]]},"properties":{"name":"Zimbabwe","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[74.00809389139292,33.25375789331485],[73.19660141888893,33.898124784580936],[73.13410859949555,34.82510160558277],[72.31128647748268,35.77290936638241],[73.08203125000107,36.43949943991182],[73.08961802927895,36.86435907947333],[73.116796875,36.868554687499994],[74.03886718750002,36.825732421874996],[74.54140625000002,37.02216796875],[74.69218750000002,37.0357421875],[74.8892578125,36.952441406249996],[74.94912109375002,36.968359375],[75.05390625000001,36.987158203125],[75.14521484375001,36.9732421875],[75.3466796875,36.913476562499994],[75.37685546875002,36.883691406249994],[75.42421875000002,36.738232421875],[75.46025390625002,36.725048828125],[75.57373046875,36.759326171874996],[75.66718750000001,36.741992187499996],[75.77216796875001,36.694921875],[75.84023437500002,36.649707031249996],[75.88496093750001,36.600732421874994],[75.93300781250002,36.52158203125],[75.95185546875001,36.45810546875],[75.97441406250002,36.382421875],[75.91230468750001,36.048974609374994],[76.07089843750003,35.9830078125],[76.14785156250002,35.829003906249994],[76.17783203125003,35.810546875],[76.25166015625001,35.8109375],[76.3857421875,35.837158203125],[76.50205078125003,35.878222656249996],[76.55126953125,35.887060546875],[76.5634765625,35.772998046874996],[76.6318359375,35.729394531249994],[76.7275390625,35.678662109375],[76.76689453124999,35.66171875],[76.81279296874999,35.571826171874996],[76.88222656250002,35.4357421875],[76.927734375,35.346630859375],[77.04863281249999,35.109912109374996],[77.00087890625002,34.991992187499996],[76.78291015625001,34.900195312499996],[76.75751953125001,34.877832031249994],[76.7490234375,34.847558593749994],[76.6962890625,34.786914062499996],[76.59443359375001,34.73583984375],[76.45673828125001,34.756103515625],[76.17246093750003,34.667724609375],[76.041015625,34.669921875],[75.93828125000002,34.612548828125],[75.86210937500002,34.56025390625],[75.70917968750001,34.503076171874994],[74.300390625,34.765380859375],[74.17197265625,34.7208984375],[74.05585937500001,34.6806640625],[73.96123046875002,34.653466796874994],[73.79453125,34.378222656249996],[73.80996093750002,34.325341796874994],[73.92460937500002,34.287841796875],[73.97236328125001,34.236621093749996],[73.9794921875,34.191308593749994],[73.90390625,34.1080078125],[73.94990234375001,34.018798828125],[74.24648437500002,33.990185546875],[73.97646484375002,33.7212890625],[74.15,33.506982421874994],[74.00809389139292,33.25375789331485]]]},"properties":{"name":"","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[78.49194250885338,32.53122786149202],[78.10154031239509,32.87658365066666],[77.71342088235082,32.6917648744551],[77.06655516561037,33.301666835953235],[76.62299010270264,33.32014871357439],[76.32728006076415,32.87658365066666],[75.73585997688717,32.78417426256088],[75.62496871116024,32.28516356678968],[75.32221348233018,32.28516356678968],[74.98730468749997,32.46220703124996],[74.78886718750013,32.4578125],[74.6857421875001,32.493798828124994],[74.66328125000004,32.75766601562495],[74.63242187499995,32.770898437500136],[74.58828125000011,32.7532226562501],[74.35458984375012,32.76870117187505],[74.30546875000007,32.81044921875002],[74.30361328125005,32.991796875000034],[73.98984375000006,33.22119140625006],[74.15,33.506982421874994],[73.97646484375016,33.72128906249998],[74.24648437500011,33.99018554687504],[73.9499023437501,34.018798828125],[73.90390625000012,34.10800781250006],[73.97949218750009,34.191308593749966],[73.97236328125004,34.23662109374996],[73.92460937500007,34.287841796875114],[73.80996093750016,34.32534179687511],[73.79453125000006,34.378222656250045],[73.96123046875007,34.653466796874994],[74.05585937500015,34.68066406250003],[74.17197265624995,34.72089843750004],[74.30039062500006,34.76538085937506],[75.70917968750004,34.50307617187508],[75.86210937500002,34.56025390625001],[75.93828125000019,34.612548828125],[76.04101562500014,34.66992187499997],[76.17246093750006,34.66772460937506],[76.4567382812501,34.756103515625114],[76.5944335937501,34.73583984375006],[76.69628906249997,34.78691406249999],[76.74902343750014,34.84755859375008],[76.7575195312501,34.87783203125005],[76.7829101562501,34.90019531249999],[77.00087890625011,34.99199218750002],[77.03066406250011,35.06235351562498],[77.04863281250007,35.109912109375074],[77.42343749999995,35.30258789062506],[77.57158203125002,35.37875976562495],[77.69697265625015,35.443261718750136],[77.79941406250006,35.49589843750002],[78.0426757812501,35.4797851562501],[78.07578125000006,35.13491210937502],[78.15849609375002,34.94648437499998],[78.32695312500007,34.60639648437498],[78.86484375000006,34.39033203125001],[78.93642578125,34.35195312500002],[78.97060546875011,34.22822265625004],[78.72666015625006,34.013378906249955],[78.78378906250006,33.80878906250004],[78.86503906250002,33.43110351562501],[78.94843750000004,33.346533203125006],[79.1125,33.22626953125001],[79.13515625000005,33.17192382812496],[79.10283203125007,33.05253906249996],[79.14550781250003,33.00146484375006],[79.16992187500003,32.497216796874994],[78.91894531249997,32.3582031250001],[78.75351562500012,32.49926757812506],[78.73671875,32.55839843750002],[78.49194250885338,32.53122786149202]]]]},"properties":{"name":"","childNum":1}}]}');var xe=Object.defineProperty,ke=Object.getOwnPropertySymbols,Ce=Object.prototype.hasOwnProperty,$e=Object.prototype.propertyIsEnumerable,Se=(e,t,n)=>t in e?xe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ee=(e,t)=>{for(var n in t||(t={}))Ce.call(t,n)&&Se(e,n,t[n]);if(ke)for(var n of ke(t))$e.call(t,n)&&Se(e,n,t[n]);return e};function Oe({areaStyleColors:n,dataLoaded:o,hasData:i,highlight:r,type:s,option:a,series:l,onChange:c,zoomStart:u,zoomEnd:h,title:d,seriesConfig:p=[],noDataComponent:g=null,zoomColors:m,style:f}){const[y,v]=(0,e.useState)(null),b=(0,e.useRef)(null),w=()=>{y&&y.resize()},x=(0,e.useMemo)((()=>g?g():t().createElement(be,{theme:"info"},"No data to display")),[g]),k={defaultOpts:(0,pe.fromJS)({title:{show:!0,text:d,left:0},color:[],toolbox:{right:"0",orient:"horizontal",itemSize:15,showTitle:!0,feature:null},dataZoom:[{show:!0,start:0,end:100,orient:"horizontal",dataBackground:{lineStyle:{color:(null==m?void 0:m.lineStyle)||"#368493"},areaStyle:{color:(null==m?void 0:m.areaStyle)||"#368493"}},handleStyle:{color:(null==m?void 0:m.handleStyle)||"#368493"},textStyle:{color:(null==m?void 0:m.textStyle)||"#368493"},borderColor:"transparent",fillerColor:(null==m?void 0:m.fillerColor)||"rgba(54, 132, 147, 0.1)"}],legend:{show:!1},tooltip:{trigger:"axis",axisPointer:{type:"cross"}},grid:{left:"1%",right:"1%",bottom:"50px",top:"40px",containLabel:!0},xAxis:{boundaryGap:!1,type:"category",splitLine:{show:!0,lineStyle:{type:"dotted",color:"#F0F0F0"}},axisLine:{show:!1},axisTick:{show:!1},data:[]},yAxis:{min:"dataMin",boundaryGap:!0,axisPointer:{show:!0},splitLine:{lineStyle:{type:"dotted",color:"#F0F0F0"},show:!0},axisLabel:{show:!0},axisLine:{show:!0},axisTick:{show:!1},type:"value"},textStyle:{color:"#5a5a68"},series:[],animationEasing:"elasticOut"}),seriesDefault:(0,pe.fromJS)({data:[],type:"line",areaStyle:{opacity:1,color:n?new de.graphic.LinearGradient(0,0,1,1,n.map(((e,t)=>({offset:t,color:e})))):[]},smooth:!1,symbolSize:7,name:""})},C={defaultOpts:(0,pe.fromJS)({tooltip:{trigger:"axis",formatter:"{b}: {c} ({d}%)"},legend:{orient:"horizontal",x:"left",y:"top",data:[]},color:[],series:[]}),seriesDefault:(0,pe.fromJS)({type:"pie",center:["50%","55%"],radius:["50%","75%"],avoidLabelOverlap:!1,animationType:"scale",animationEasing:"elasticOut",labelLine:{normal:{show:!0,smooth:.2,length:6,length2:6}},data:[]})},$={defaultOpts:(0,pe.fromJS)({series:[]}),seriesDefault:(0,pe.fromJS)({type:"map",data:[]})};(0,e.useEffect)((()=>(window.addEventListener("resize",w),()=>{window.removeEventListener("resize",w)})),[y]),(0,e.useEffect)((()=>{if(null==b?void 0:b.current)return v(de.init(b.current)),()=>{y&&y.dispose()}}),[b.current]);const S=e=>{c&&c(e)};(0,e.useEffect)((()=>{let e;return y&&(e=ge(S,500),y.on("dataZoom",e),y.on("restore",e),y.on("click",e),y.on("mousemove",(e=>{e.data&&y.getZr().setCursorStyle("pointer")}))),()=>{y&&(y.off("dataZoom",e),y.off("restore",e),y.off("click",e))}}),[y,c]);const E=me(y),O=me(a),T=me(s),A=me(l);(0,e.useEffect)((()=>{var e,t,n,o,i,r;!y||(null==(t=null==(e=(0,pe.fromJS)(E))?void 0:e.equals)?void 0:t.call(e,(0,pe.fromJS)(y)))&&(null==(o=null==(n=(0,pe.fromJS)(O))?void 0:n.equals)?void 0:o.call(n,(0,pe.fromJS)(a)))&&T===s&&(null==(r=(i=(0,pe.fromJS)(A)).equals)?void 0:r.call(i,(0,pe.fromJS)(l)))||(y.clear(),y.setOption(((e,t,n)=>{let o={};switch(e){case"pie":o=C.defaultOpts.mergeDeep((0,pe.fromJS)(t)).toJS(),n.forEach((e=>{o.series.push(C.seriesDefault.mergeDeep((0,pe.fromJS)(e)).toJS())}));break;case"geo":o=$.defaultOpts.mergeDeep((0,pe.fromJS)(t)).toJS(),n.forEach((e=>{o.series.push($.seriesDefault.mergeDeep((0,pe.fromJS)(e)).toJS())}));break;default:o=k.defaultOpts.mergeDeep((0,pe.fromJS)(t)).toJS(),Array.isArray(t.yAxis)&&(o.yAxis=t.yAxis),n.forEach(((e,t)=>{const n=Ee(Ee(Ee({},k.seriesDefault.toJS()),p[t]),e);o.series.push(n)}))}return o})(s,a,l)),y.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:!0}))}),[y,a,l,s]),(0,e.useEffect)((()=>{y&&r&&(y.dispatchAction({type:"highlight",seriesIndex:r.seriesIndex,dataIndex:r.dataIndex}),y.dispatchAction({type:"showTip",seriesIndex:r.seriesIndex,dataIndex:r.dataIndex}))}),[r]);const _=me(u),L=me(h);(0,e.useEffect)((()=>{!y||-1===u||-1===h||_===u&&L===h||y.dispatchAction({type:"dataZoom",startValue:u,endValue:h})}),[u,h]);const M=()=>!o||!1!==i&&!0!==i||i;return t().createElement("div",{className:"tyk-chart__wrapper"},o?null:t().createElement(ye,null),t().createElement("div",{className:(()=>{const e=["tyk-chart"];return o||e.push("tyk-chart--loading-chart"),M()||e.push("tyk-chart--no-data"),e.join(" ")})(),style:(()=>{const e=f||{};return e.height||(e.height="300px"),e.width||(e.width="100%"),e})(),"data-type":s,ref:b}),M()?null:x)}de.registerMap("world",we),Oe.propTypes={areaStyleColors:r().instanceOf(Array),dataLoaded:r().bool,hasData:r().bool,highlight:r().oneOfType([r().number,r().string,r().instanceOf(Array)]),noDataComponent:r().func,zoomStart:r().number,zoomEnd:r().number,zoomColors:r().instanceOf(Object),option:r().instanceOf(Object),onChange:r().func,style:r().instanceOf(Object),type:r().string,title:r().string,series:r().instanceOf(Array),seriesConfig:r().instanceOf(Object)};const Te=(0,e.memo)(Oe);var Ae=n(745);const _e=(t,n)=>{const o=(0,e.useRef)();(0,e.useEffect)((()=>{o.current=t}),[t]),(0,e.useEffect)((()=>{if(null!==n){const e=setTimeout((function(){o.current()}),n);return()=>clearTimeout(e)}return()=>{}}),[n])};var Le=Object.defineProperty,Me=Object.getOwnPropertySymbols,Re=Object.prototype.hasOwnProperty,Ne=Object.prototype.propertyIsEnumerable,Ie=(e,t,n)=>t in e?Le(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Pe(e){const{children:n,options:o,onClose:i,index:r}=e,s=((e,t)=>{for(var n in t||(t={}))Re.call(t,n)&&Ie(e,n,t[n]);if(Me)for(var n of Me(t))Ne.call(t,n)&&Ie(e,n,t[n]);return e})({theme:"success",delay:3e3},o),a=e=>{i(e),clearTimeout(void 0)};return _e((()=>a(r)),s.delay),t().createElement(be,{className:"tyk-toast__message",theme:s.theme,onClose:()=>a(r)},n)}Pe.propTypes={children:r().oneOfType([r().element,r().node,r().string]),options:r().instanceOf(Object),onClose:r().func,index:r().number};const De=Pe;var Fe=Object.defineProperty,Be=Object.defineProperties,We=Object.getOwnPropertyDescriptors,He=Object.getOwnPropertySymbols,je=Object.prototype.hasOwnProperty,ze=Object.prototype.propertyIsEnumerable,Ve=(e,t,n)=>t in e?Fe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ue=(e,t)=>{for(var n in t||(t={}))je.call(t,n)&&Ve(e,n,t[n]);if(He)for(var n of He(t))ze.call(t,n)&&Ve(e,n,t[n]);return e};function Ge(n){const[o,i]=(0,e.useState)({}),{notify:r}=n,s=(e,t)=>{const n=Math.floor(1e6*Math.random());i((o=>{return i=Ue({},o),Be(i,We({[n]:{message:e,options:t}}));var i}))};(0,e.useEffect)((()=>{r(s)}),[o]);const a=e=>{delete Ue({},o)[e],i((t=>{const n=Ue({},t);return delete n[e],n}))};return t().createElement("div",{className:"tyk-toast__container"},Object.keys(o).map((e=>o[e]?t().createElement(De,{options:o[e].options,onClose:a.bind(null,e),index:e,key:e},o[e].message):null)))}Ge.propTypes={notify:r().func};const Ke=Ge;var qe=Object.defineProperty,Ye=Object.defineProperties,Je=Object.getOwnPropertyDescriptors,Xe=Object.getOwnPropertySymbols,Qe=Object.prototype.hasOwnProperty,Ze=Object.prototype.propertyIsEnumerable,et=(e,t,n)=>t in e?qe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,tt=(e,t)=>{for(var n in t||(t={}))Qe.call(t,n)&&et(e,n,t[n]);if(Xe)for(var n of Xe(t))Ze.call(t,n)&&et(e,n,t[n]);return e},nt=(e,t)=>Ye(e,Je(t));const ot=new class{constructor(){var e;et(this,"symbol"!=typeof(e="bindNotify")?e+"":e,(e=>{this.createNotification=e}));const n=document.createElement("div");n.className="tyk-toast",document.body.appendChild(n),(0,Ae.s)(n).render(t().createElement(Ke,{notify:this.bindNotify}))}notify(e,t){this.createNotification&&this.createNotification(e,t)}danger(e,t){this.notify(e,nt(tt({},t),{theme:"danger"}))}success(e,t){this.notify(e,nt(tt({},t),{theme:"success"}))}warning(e,t){this.notify(e,nt(tt({},t),{theme:"warning"}))}info(e,t){this.notify(e,nt(tt({},t),{theme:"info"}))}};var it=Object.defineProperty,rt=Object.getOwnPropertySymbols,st=Object.prototype.hasOwnProperty,at=Object.prototype.propertyIsEnumerable,lt=(e,t,n)=>t in e?it(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function ct(n){const{display:o,copy:i,children:r,onCopy:s,message:a="copied"}=n,l=(0,e.createRef)(),c=(0,e.useCallback)((()=>{if(s&&s(),!window.navigator.clipboard)return l.current.select(),document.execCommand("copy"),void ot.success(a);window.navigator.clipboard.writeText(i),ot.success(a)}),[s,l]);return t().createElement(t().Fragment,null,t().createElement(n.element,((e,t)=>{for(var n in t||(t={}))st.call(t,n)&<(e,n,t[n]);if(rt)for(var n of rt(t))at.call(t,n)&<(e,n,t[n]);return e})({onClick:c,onKeyUp:c},n),r||o),window.navigator.clipboard?null:t().createElement("textarea",{ref:l,className:"tyk-copy-to-clipboard",name:"copy",value:i},i))}ct.propTypes={message:r().string,onCopy:r().func,copy:r().string.isRequired,display:r().string,children:r().oneOfType([r().element,r().string,r().object,r().node])};const ut=ct;var ht=n(137),dt=n.n(ht);function pt({children:e}){return t().createElement("div",{className:"tyk-modal__footer"},e)}pt.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const gt=pt;function mt({children:e}){return t().createElement("div",{className:"tyk-modal__body"},e)}mt.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const ft=mt;var yt=Object.defineProperty,vt=Object.getOwnPropertySymbols,bt=Object.prototype.hasOwnProperty,wt=Object.prototype.propertyIsEnumerable,xt=(e,t,n)=>t in e?yt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function kt(e){var n=e,{children:o,theme:i="none",disableCloseCommands:r=!1,opened:s=!1,onClose:a=(()=>{}),size:l="md",className:c="",showBackdrop:u=!0}=n,h=((e,t)=>{var n={};for(var o in e)bt.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&vt)for(var o of vt(e))t.indexOf(o)<0&&wt.call(e,o)&&(n[o]=e[o]);return n})(n,["children","theme","disableCloseCommands","opened","onClose","size","className","showBackdrop"]);const d=["tyk-modal",`tyk-modal--theme-${i}`,s&&"opened"].concat(c.split(" ")).filter(Boolean).join(" "),p=["tyk-modal__backdrop",s&&"opened"].filter(Boolean).join(" "),m={success:"check",warning:"exclamation",danger:"exclamation"}[i];return t().createElement(t().Fragment,null,dt().createPortal(t().createElement(x.CSSTransition,{in:s,timeout:100,classNames:"appear"},t().createElement("div",((e,t)=>{for(var n in t||(t={}))bt.call(t,n)&&xt(e,n,t[n]);if(vt)for(var n of vt(t))wt.call(t,n)&&xt(e,n,t[n]);return e})({className:d},h),t().createElement("div",{className:`tyk-modal__dialog tyk-modal--${l}`},t().createElement("div",{className:"tyk-modal__content"},"none"!==i&&t().createElement("div",{className:"tyk-modal__theme-header"},t().createElement(g,{type:m})),o)))),document.querySelector("body")),u&&dt().createPortal(t().createElement(x.CSSTransition,{in:s,timeout:100,classNames:"fade"},t().createElement("button",{className:p,onClick:()=>!r&&a(),onKeyDown:()=>{},type:"button","aria-label":"Close"})),document.querySelector("body")))}kt.Body=ft,kt.Footer=gt,kt.Header=({children:e})=>(console.warn("%cModal.Header%c is deprecated.","font-weight: bold",""),t().createElement("div",{className:"tyk-modal__header"},e)),kt.Header.propTypes={children:r().element},kt.Title=({children:e})=>(console.warn("%cModal.Title%c is deprecated.","font-weight: bold",""),t().createElement("h4",{className:"tyk-modal__title"},e)),kt.Title.propTypes={children:r().element},kt.propTypes={children:r().oneOfType([r().element,r().node,r().string]),className:r().string,theme:r().string,disableCloseCommands:r().bool,opened:r().bool,onClose:r().func,size:r().string,showBackdrop:r().bool};const Ct=kt;function $t(n){const{children:o,title:i,description:r,confirmBtnText:s="Confirm",cancelBtnText:a="Cancel"}=n,[l,c]=(0,e.useState)(!1),[u,h]=(0,e.useState)(null),[d,p]=(0,e.useState)(null),g=()=>{c(!1),h(null),p(null)},m=()=>{d&&d(),g()};return t().createElement(t().Fragment,null,o(((e,t,n)=>(...o)=>{n&&n(...o),c(!0),h((()=>()=>e(...o))),t&&p((()=>()=>t(...o)))})),t().createElement(Ct,{opened:l,onClose:m},t().createElement(Ct.Body,null,t().createElement("h4",null,i),r),t().createElement(Ct.Footer,null,t().createElement(U,{onClick:m,theme:"default"},a),t().createElement(U,{onClick:()=>{u(),g()},theme:"success"},s))))}$t.propTypes={confirmBtnText:r().string,cancelBtnText:r().string,title:r().string,description:r().string,children:r().oneOfType([r().element,r().string,r().object,r().node,r().func])};const St=$t;function Et({children:n,className:o,showShadow:i}){const r=(0,e.useRef)(null),s=(0,e.useCallback)((()=>{const e=r.current;e&&(window.scrollY?e.classList.add("tyk-fixed-wrapper--scrolled"):e.classList.remove("tyk-fixed-wrapper--scrolled"))}),[r.current]),a=(0,e.useCallback)(ge(s,100),[s]);return(0,e.useEffect)((()=>(i&&window.addEventListener("scroll",a),()=>{window.removeEventListener("scroll",a)})),[a,i]),t().createElement("div",{className:`tyk-fixed-wrapper ${o}`,ref:r},n)}Et.propTypes={children:r().oneOfType([r().element,r().node,r().string]),className:r().string,showShadow:r().bool},Et.defaultProps={className:""};const Ot=Et;function Tt({children:n,hasMore:o,initialLoad:i,loadMore:r,pageNumber:s,refChild:a}){const[l,c]=(0,e.useState)(!1),u=(0,e.useRef)(null),h=C(a);(0,e.useEffect)((()=>{i&&"function"==typeof r&&(c(!1),r(s))}),[i]);const d=(0,e.useCallback)((()=>{if(!u.current)return!1;const{clientHeight:e,scrollTop:t}=u.current;return o&&(e+Math.round(t)===h.height||e>=h.height)}),[u,h.height]),p=(0,e.useCallback)((()=>{o&&"function"==typeof r?(r(s+1),c(!0)):c(!1)}),[o,s]),g=me(s),m=(0,e.useCallback)(ge((()=>{d()&&g<=s&&p()}),200),[p,d]);(0,e.useEffect)((()=>{var e;return null==(e=u.current)||e.addEventListener("scroll",m),()=>{var e;return null==(e=u.current)?void 0:e.removeEventListener("scroll",m)}}),[u,m]),(0,e.useEffect)((()=>{g>0&&0===s&&(u.current.scrollTop=0)}),[u,s]);const f=me(h);return(0,e.useEffect)((()=>{h&&f&&h.height!==f.height&&!0===l&&c(!1)}),[l,h.height]),(0,e.useEffect)((()=>{a&&h.heightt in e?_t(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function It({element:n,size:o="auto",forceDisplay:i="auto",displayAxis:r="auto",preferredPosition:s,offset:a=0,className:l,children:c,infiniteScrollerConfig:u},h){const d=(0,e.useRef)(null),p=h||d,g=(0,e.useRef)(null),m=(0,e.useRef)(null);return(0,e.useEffect)((()=>{window.requestAnimationFrame((function e(){(function(){var e;const t="auto"!==i?i:function(){const e=n.current,t=p.current;if(!t)return(null!=s?s:"vertical"===r)?"bottom":"right";const{left:o,top:i}=e.getBoundingClientRect(),a=i,l=window.innerHeight-i-e.offsetHeight,c=o,u=window.innerWidth-o-e.offsetWidth,h=a>t.scrollHeight,d=l>t.scrollHeight,g=c>t.offsetWidth,m=u>t.offsetWidth,f=o+e.offsetWidth/2-t.offsetWidth/2>0,y=i+e.offsetHeight/2-t.scrollHeight/2>0;return"vertical"===r||"auto"===r&&(h||d)&&f?function({preferredPosition:e,hasTopSpace:t,hasBottomSpace:n,topSpace:o,bottomSpace:i}){return"top"===e&&t?"top":"bottom"===e&&n||n||i>o?"bottom":"top"}({preferredPosition:s,hasTopSpace:h,hasBottomSpace:d,topSpace:a,bottomSpace:l}):"horizontal"===r?function({preferredPosition:e,hasLeftSpace:t,hasRightSpace:n,leftSpace:o,rightSpace:i}){return"left"===e&&t?"left":"right"===e&&n||n||i>o?"right":"left"}({preferredPosition:s,hasLeftSpace:g,hasRightSpace:m,leftSpace:c,rightSpace:u}):function({preferredPosition:e,hasTopSpace:t,hasBottomSpace:n,hasLeftSpace:o,hasRightSpace:i,positionedHorizontallyFitsInViewport:r,positionedVerticallyFitsInViewport:s}){return t&&s?"top":n&&s?"bottom":i&&r?"right":o&&r?"left":null!=e?e:"bottom"}({preferredPosition:s,hasTopSpace:h,hasBottomSpace:d,hasLeftSpace:g,hasRightSpace:m,positionedHorizontallyFitsInViewport:y,positionedVerticallyFitsInViewport:f})}(),l=n.current,c=p.current;if(!l||!c)return;const u=l.getBoundingClientRect(),{left:h,top:d}=null!=(e=m.current)?e:{left:0,top:0};if("top"===t&&Object.assign(c.style,function({container:e,targetPosition:t,target:n,size:o,offset:i,vpLeft:r,vpTop:s}){const a={},l={auto:t.left+n.offsetWidth/2-e.offsetWidth/2,matchElement:t.left,matchStart:t.left,matchEnd:t.right-e.offsetWidth}[o],c=t.top-e.offsetHeight-i;return a.left=`${l+r}px`,a.top=`${c+s}px`,"matchElement"===o?a.width=`${n.offsetWidth}px`:"matchEnd"===o?a.maxWidth=t.right-5+"px":"function"==typeof o&&(a.width=`${o(n.offsetWidth)}px`),a.maxHeight=t.top-i+"px",a}({container:c,targetPosition:u,target:l,size:o,offset:a,vpLeft:h,vpTop:d})),"bottom"===t&&Object.assign(c.style,function({targetPosition:e,target:t,container:n,size:o,offset:i,vpLeft:r,vpTop:s}){const a={},l={auto:e.left+t.offsetWidth/2-n.offsetWidth/2,matchElement:e.left,matchStart:e.left,matchEnd:e.right-n.offsetWidth}[o],c=e.bottom+i;return a.left=`${l+r}px`,a.top=`${c+s}px`,"matchElement"===o?a.width=`${t.offsetWidth}px`:"matchEnd"===o?a.maxWidth=e.right-5+"px":"function"==typeof o&&(a.width=`${o(t.offsetWidth)}px`),a.maxHeight=window.innerHeight-e.bottom-i+"px",a}({container:c,targetPosition:u,target:l,size:o,offset:a,vpLeft:h,vpTop:d})),"left"===t&&Object.assign(c.style,function({targetPosition:e,target:t,container:n,size:o,offset:i}){const r={},s=e.left-n.offsetWidth-i,a={auto:e.top+t.offsetHeight/2-n.offsetHeight/2,matchElement:e.top,matchStart:e.top,matchEnd:e.bottom-n.offsetHeight}[o];return r.left=`${s}px`,r.top=`${a}px`,"matchElement"===o?r.height=`${t.offsetHeight}px`:"function"==typeof o&&(r.height=`${o(t.offsetHeight)}px`),r.maxWidth=e.left-i+"px",r}({targetPosition:u,target:l,container:c,size:o,offset:a})),"right"===t&&Object.assign(c.style,function({targetPosition:e,target:t,container:n,size:o,offset:i,vpLeft:r,vpTop:s}){const a={},l=e.left+t.offsetWidth+i,c={auto:e.top+t.offsetHeight/2-n.offsetHeight/2,matchElement:e.top,matchStart:e.top,matchEnd:e.bottom-n.offsetHeight}[o];return a.left="auto"===o?`${l+r}px`:`${l}px`,a.top="auto"===o?`${c+s}px`:`${c}px`,"matchElement"===o?a.height=`${t.offsetHeight}px`:"function"==typeof o&&(a.height=`${o(t.offsetHeight)}px`),a.maxWidth=window.innerWidth-e.left-t.offsetWidth-i+"px",a}({targetPosition:u,target:l,container:c,size:o,offset:a,vpLeft:h,vpTop:d})),null===m.current)if("matchEnd"===o)m.current={left:0,top:0};else{const e=Number(c.style.left.replace("px","")),t=Number(c.style.top.replace("px",""));m.current={left:e<0?5-e:0,top:t<0?5-t:0}}})(),window.requestAnimationFrame(e)}))}),[]),(0,ht.createPortal)(t().createElement("div",{className:`floating-container ${l||""}`,ref:p},t().createElement(At,((e,t)=>{for(var n in t||(t={}))Mt.call(t,n)&&Nt(e,n,t[n]);if(Lt)for(var n of Lt(t))Rt.call(t,n)&&Nt(e,n,t[n]);return e})({refChild:g},u),t().createElement("div",{className:"floating-container__content-wrapper",ref:g},c))),document.querySelector("body"))}It.propTypes={element:r().instanceOf(Object),className:r().string,size:r().oneOfType([r().oneOf(["auto","matchElement","matchStart","matchEnd"]),r().func]),offset:r().number,forceDisplay:r().oneOf(["auto","top","bottom","left","right"]),displayAxis:r().oneOf(["auto","vertical","horizontal"]),preferredPosition:r().oneOf(["top","bottom","left","right"]),infiniteScrollerConfig:r().instanceOf(Object)};const Pt=(0,e.forwardRef)(It);function Dt({children:e}){return t().createElement("div",{className:"tyk-info-note"},t().createElement(be,{theme:"info"},e))}Dt.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const Ft=Dt;function Bt(e){const{className:n,children:o,selected:i}=e;return t().createElement("li",{className:`${n} ${i?"tyk-list__item--selected":""}`},o)}Bt.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,selected:r().bool},Bt.defaultProps={className:""};const Wt=Bt;function Ht(e){const{className:n,children:o,label:i,labelwidth:r,theme:s,style:a}=e;return t().createElement("div",{className:"tyk-list__wrapper "+(r?"tyk-list--with-inline-label":"")},void 0!==i?t().createElement("label",{style:{flexBasis:r||"auto"}},i):null,t().createElement("ul",{className:(()=>{let e=["tyk-list"];return s&&e.push(`tyk-list--${s}`),n&&(e=e.concat(n.split(" "))),e.join(" ")})(),style:(()=>{const e=structuredClone(a);return r&&(e.flexBasis=`calc(100% - ${r} - 20px)`),e})()},o))}Ht.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,label:r().string,labelwidth:r().string,theme:r().string,style:r().instanceOf(Object)},Ht.defaultProps={theme:"default",style:{}},Ht.Item=Wt;const jt=Ht;function zt({align:e="center",children:n,left:o,right:i,title:r,pre:s,subtitle:a,withTabs:l}){const c=a?t().createElement("p",{className:"font-family-medium"},a):null;return t().createElement("section",{className:"tyk-nav-bar "+(l?"tyk-nav-bar__with-tabs":"")},t().createElement("div",{className:`tyk-nav-bar__wrapper tyk-nav-bar--align-${e}`},s&&t().createElement("div",{className:"tyk-nav-bar__pre"},s),r?t().createElement("div",null,t().createElement("h1",null,r),c):c,t().createElement("div",{className:"tyk-nav-bar__container"},o&&t().createElement("div",{className:"tyk-nav-bar__left"},o),i&&t().createElement("div",{className:"tyk-nav-bar__right"},i))),n)}zt.propTypes={align:r().string,children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),title:r().string,subtitle:r().string,pre:r().oneOfType([r().element,r().node]),left:r().oneOfType([r().element,r().node]),right:r().oneOfType([r().element,r().node]),withTabs:r().bool};const Vt=zt;function Ut({children:e}){return t().createElement("li",{className:"tyk-navigation-item"},e)}Ut.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string])};const Gt=Ut;function Kt({children:e}){return t().createElement("ul",{className:"tyk-navigation"},e)}Kt.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string])},Kt.Item=Gt;const qt=Kt,Yt=(0,e.createContext)();var Jt=Object.defineProperty,Xt=Object.defineProperties,Qt=Object.getOwnPropertyDescriptors,Zt=Object.getOwnPropertySymbols,en=Object.prototype.hasOwnProperty,tn=Object.prototype.propertyIsEnumerable,nn=(e,t,n)=>t in e?Jt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,on=(e,t)=>{for(var n in t||(t={}))en.call(t,n)&&nn(e,n,t[n]);if(Zt)for(var n of Zt(t))tn.call(t,n)&&nn(e,n,t[n]);return e},rn=(e,t)=>Xt(e,Qt(t));function sn(n){var o=n,{children:i,noPadding:r,className:s}=o,a=((e,t)=>{var n={};for(var o in e)en.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Zt)for(var o of Zt(e))t.indexOf(o)<0&&tn.call(e,o)&&(n[o]=e[o]);return n})(o,["children","noPadding","className"]);const l=(0,e.useCallback)((()=>["tyk-panel__body",s,r&&"no-padding"].filter(Boolean).join(" ")),[s,r]);return t().createElement(Yt.Consumer,null,(e=>e.collapsable?t().createElement(R,rn(on({},a),{collapsed:e.collapsed,className:l()}),i):t().createElement("div",rn(on({},a),{className:l()}),i)))}sn.propTypes={children:r().oneOfType([r().element,r().node,r().string]),noPadding:r().bool,className:r().string};const an=sn;function ln(e){const{children:n}=e;return t().createElement("div",{className:"tyk-panel__footer"},n)}ln.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const cn=ln;class un extends e.Component{getCssClasses(e){const{className:t}=this.props;let n=["tyk-panel__header"];return e.collapsable&&n.push("collapsable"),t&&(n=n.concat(t.split(" "))),n.join(" ")}render(){const{children:e}=this.props;return t().createElement(Yt.Consumer,null,(n=>{const o="blank"===n.theme?"h3":"div",i=n.collapsed?"chevron-down":"chevron-up";return t().createElement(o,{className:this.getCssClasses(n),onClick:n.collapsable?n.onToggle:void 0},e,n.collapsable?t().createElement("div",{className:`collapsable__arrow-${n.collapsibleIconPosition}`},t().createElement(g,{type:i})):null)}))}}un.propTypes={children:r().oneOfType([r().element,r().node,r().string]).isRequired,className:r().string};const hn=un;function dn(n){const{children:o,className:i,collapsed:r,collapsable:s,theme:a,onToggleCollapse:l,collapsibleIconPosition:c="right"}=n,[u,h]=(0,e.useState)(r||!1);(0,e.useEffect)((()=>{r!==u&&h(r)}),[r]);const d=(0,e.useCallback)((()=>{h(!u),l&&l(!u)}),[u,l]),p=(0,e.useMemo)((()=>({collapsable:s,collapsed:u,onToggle:d,theme:a,collapsibleIconPosition:c})),[s,u,c,a,d]);return t().createElement("div",{className:(()=>{let e=["tyk-panel"];const t=`tyk-panel--${a||"default"}`,n=`tyk-panel__icon-collapse--${c}`;return e.push(t),e.push(n),i&&(e=e.concat(i.split(" "))),u&&e.push("tyk-panel--collapsed"),e.join(" ")})()},t().createElement(Yt.Provider,{value:p},"function"==typeof o?o({toggleCollapse:d}):o))}dn.propTypes={children:r().oneOfType([r().func,r().element,r().node,r().string]),className:r().string,collapsable:r().bool,collapsibleIconPosition:r().string,collapsed:r().bool,theme:r().string,onToggleCollapse:r().func},dn.Body=an,dn.Footer=cn,dn.Header=hn;const pn=dn;function gn(e){const{children:n,className:o,theme:i}=e;return t().createElement("div",{className:(()=>{let e=["tyk-pill",...i.split(" ").map((e=>`tyk-pill--${e}`))];return o&&(e=e.concat(o)),e.join(" ")})()},n)}gn.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,theme:r().string},gn.defaultProps={theme:"default"};const mn=gn;var fn,yn,vn,bn,wn,xn,kn,Cn,$n=(e,t,n)=>{if(!t.has(e))throw TypeError("Cannot "+n)},Sn=(e,t,n)=>($n(e,t,"read from private field"),n?n.call(e):t.get(e)),En=(e,t,n)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,n)},On=(e,t,n,o)=>($n(e,t,"write to private field"),o?o.call(e,n):t.set(e,n),n);class Tn{constructor(){En(this,fn,null),En(this,yn,null),En(this,vn,null),En(this,bn,null),En(this,wn,[]),En(this,xn,[]),En(this,kn,[]),En(this,Cn,!1)}on(e,t){let n=null;"onHeightChange"===e?n=Sn(this,wn):"onDragStart"===e?n=Sn(this,xn):"onDragEnd"===e&&(n=Sn(this,kn)),n&&this.addListener(n,t)}off(e,t){let n=null;"onHeightChange"===e?n=Sn(this,wn):"onDragStart"===e?n=Sn(this,xn):"onDragEnd"===e&&(n=Sn(this,kn)),n&&this.removeListener(n,t)}setRefs(e,t,n){(Sn(this,yn)||Sn(this,vn)||Sn(this,bn))&&this.unbindEvents(),On(this,bn,e),On(this,yn,t),On(this,vn,n),On(this,fn,null),this.bindEvents()}bindEvents(){this.ensureRefs("bindEvents"),Sn(this,vn).addEventListener("mousedown",this.onMouseDown.bind(this)),document.addEventListener("mousemove",this.onMouseMove.bind(this)),document.addEventListener("mouseup",this.onMouseUp.bind(this))}getHeight(){return this.ensureRefs("getHeight"),Sn(this,yn).getBoundingClientRect().height}onMouseDown(e){this.ensureRefs("onMouseDown"),On(this,fn,{mouseDown:!0,initialRect:Sn(this,yn).getBoundingClientRect(),initialEvent:e})}onMouseMove(e){if(this.ensureRefs("onMouseMove"),!Sn(this,fn))return;if(!this.isPrimaryMouseButtonDown(e))return void this.onMouseUp();Sn(this,Cn)||(On(this,Cn,!0),this.onDragStart.bind(this)());const t=Sn(this,fn).initialEvent.y-e.y,n=Math.ceil(Sn(this,fn).initialRect.height+t);this.setHeight(`${n}px`,"mousemove")}notifyListeners(e,t){e&&Array.isArray(e)&&e.length&&e.forEach((e=>{"function"==typeof e&&e(t)}))}addListener(e,t){e&&Array.isArray(e)&&"function"==typeof t&&e.push(t)}removeListener(e,t){if(e&&Array.isArray(e)&&"function"==typeof t&&e.length){const n=e.indexOf(t);n>-1&&e.splice(n,1)}}onDragEnd(){Sn(this,Cn)&&this.notifyListeners(Sn(this,kn),this.getHeight())}onDragStart(){this.notifyListeners(Sn(this,xn),this.getHeight())}isPrimaryMouseButtonDown(e){return 1===(void 0!==e.buttons?e.buttons:e.which)}onMouseUp(){On(this,fn,null),this.onDragEnd.bind(this)(),On(this,Cn,!1)}setHeight(e){let t=e;this.ensureRefs("setHeight"),"number"==typeof t&&(t+="px"),Sn(this,yn).style.height=t,this.notifyListeners(Sn(this,wn),this.getHeight())}ensureRefs(e){if(!Sn(this,yn)||!Sn(this,vn)||!Sn(this,bn))throw new Error(`${e}: Wrapper, panel, and gutter elements are required. Use setRefs method first.`)}isHidden(){return this.ensureRefs("isHidden"),"hidden"===Sn(this,bn).style.visibility}hide(){this.ensureRefs("hide"),Sn(this,bn).style.visibility="hidden"}show(){this.ensureRefs("show"),Sn(this,bn).style.visibility="visible"}unbindEvents(){On(this,wn,[]),On(this,xn,[]),On(this,kn,[]),Sn(this,vn).removeEventListener("mousedown",this.onMouseDown.bind(this)),document.removeEventListener("mousemove",this.onMouseMove.bind(this)),document.removeEventListener("mouseup",this.onMouseUp.bind(this))}deinit(){this.unbindEvents()}}function An({children:e}){return t().createElement(t().Fragment,null,e)}function _n({children:e}){return t().createElement(t().Fragment,null,e)}fn=new WeakMap,yn=new WeakMap,vn=new WeakMap,bn=new WeakMap,wn=new WeakMap,xn=new WeakMap,kn=new WeakMap,Cn=new WeakMap,An.propTypes={children:r().instanceOf({})},_n.propTypes={children:r().instanceOf({})};const Ln=(...e)=>e.map((e=>(e||"").trim())).filter(Boolean).join(" ");function Mn({children:n,height:o,onHeightChange:i=null,onDragStart:r=null,onDragEnd:s=null,style:a=null,parentSelector:l=null,contentStyle:c,contentClassName:u,gutterClassName:h,wrapperClassName:d},p){const g=(0,e.useRef)(null),m=(0,e.useRef)(null),f=(0,e.useRef)(null),y=(0,e.useRef)(new Tn).current;(0,e.useEffect)((()=>{if(g.current&&m.current&&f.current&&y)return y.setRefs(f.current,g.current,m.current),y.on("onHeightChange",i),y.on("onDragStart",r),y.on("onDragEnd",s),y.setHeight(o,"initialize"),()=>{y.unbindEvents()}}),[]),(0,e.useImperativeHandle)(p,(()=>{const e=e=>e.bind(y);return{getHeight:e(y.getHeight),setHeight:e(y.setHeight),hide:e(y.hide),show:e(y.show),isHidden:e(y.isHidden),deinit:e(y.deinit),on:e(y.on),off:e(y.off)}}),[]);let v=null,b=null;const w=[];t().Children.forEach(n,(e=>{e&&t().isValidElement(e)&&(e.type===An?v=e:e.type===_n?b=e:w.push(e))}));const x=t().createElement("div",{className:Ln("tyk-ui-reveal-wrapper",d||"cem"),ref:f,style:a},t().createElement("div",{className:"tyk-ui-reveal-wrapper__hole"}),t().createElement("div",{ref:m,className:Ln("tyk-ui-reveal-wrapper__gutter",h)},t().createElement("div",{className:"tyk-ui-reveal-wrapper__gutter__headerleft"},v),t().createElement("div",{className:"tyk-ui-reveal-wrapper__gutter__logo"}," "),t().createElement("div",{className:"tyk-ui-reveal-wrapper__gutter__headerright"},b)),t().createElement("div",{ref:g,className:Ln("tyk-ui-reveal-wrapper__panel",u),style:c},w));if(l)return(0,ht.createPortal)(x,document.querySelector(l))}Mn.propTypes={children:r().instanceOf({}),height:r().string,onHeightChange:r().func,onDragStart:r().func,onDragEnd:r().func,parentSelector:r().string,style:r().instanceOf({}),contentStyle:r().instanceOf({}),contentClassName:r().string,gutterClassName:r().string,wrapperClassName:r().string};const Rn=(0,e.forwardRef)(Mn);Rn.HeaderLeft=An,Rn.HeaderRight=_n;const Nn=Rn,In=(0,e.createContext)(),Pn=(0,e.createContext)();var Dn=Object.defineProperty,Fn=Object.getOwnPropertySymbols,Bn=Object.prototype.hasOwnProperty,Wn=Object.prototype.propertyIsEnumerable,Hn=(e,t,n)=>t in e?Dn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,jn=(e,t)=>{for(var n in t||(t={}))Bn.call(t,n)&&Hn(e,n,t[n]);if(Fn)for(var n of Fn(t))Wn.call(t,n)&&Hn(e,n,t[n]);return e};function zn(n){const{addTab:o,hideTab:i,updateTab:r,showTab:s,children:a,selectedPath:l,tabData:c,tabsId:u,tabExists:h,path:d,rendered:p,hideTabContent:g,tabs:m}=n;(0,e.useEffect)((()=>{const e=jn({},c);h(d)||o(e,d)}),[c,d]);const f=me(c);(0,e.useEffect)((()=>{if(h(d)&&(null==c?void 0:c.title)&&((null==f?void 0:f.title)!==(null==c?void 0:c.title)||(null==f?void 0:f.selected)!==c.selected)){const e=jn({},c);r(e,d)}}),[c,d,f,m]),(0,e.useEffect)((()=>(s(d),()=>i(d))),[]);const y=(0,e.useMemo)((()=>!!Object.keys(m).length&&!g&&!1!==m[c.id].show&&(p?l&&l.indexOf(c.id)>-1:h(d))),[g,p,l,c,m]),v=(0,e.useMemo)((()=>({path:d,tabsId:u})),[d,u]);return y?t().createElement("div",{key:c.id,className:"tyk-tab__content",style:{display:l&&l.indexOf(c.id)>-1?"block":"none"}},t().createElement(Pn.Provider,{value:v},a)):null}zn.propTypes={addTab:r().func,updateTab:r().func,hideTab:r().func,showTab:r().func,children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),path:r().instanceOf(Array),hideTabContent:r().bool,rendered:r().bool,selectedPath:r().instanceOf(Array),tabExists:r().func,tabsId:r().string,tabData:r().instanceOf(Object),tabs:r().instanceOf(Object)};const Vn=zn;function Un(n){const{id:o}=n,i=(0,e.useContext)(In),r=(0,e.useContext)(Pn),{tabExists:s,selectedPath:a,addTab:l,updateTab:c,hideTab:u,showTab:h,rendered:d,hideTabContent:p,tabs:g}=i,{children:m}=n,[f,y]=(0,e.useState)("");return(0,e.useEffect)((()=>{let e;e=r&&f&&r.tabsId===i.id?r.path.concat([o]):[o],y(e)}),[r]),f?t().createElement(Vn,{addTab:l,updateTab:c,hideTab:u,showTab:h,tabExists:s,tabData:n,path:f,tabsId:i.id,selectedPath:a,rendered:d,hideTabContent:p,tabs:g},m):null}Un.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),id:r().string},Un.defaultProps={};const Gn=Un;var Kn=Object.defineProperty,qn=Object.getOwnPropertySymbols,Yn=Object.prototype.hasOwnProperty,Jn=Object.prototype.propertyIsEnumerable,Xn=(e,t,n)=>t in e?Kn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Qn=(e,t)=>{for(var n in t||(t={}))Yn.call(t,n)&&Xn(e,n,t[n]);if(qn)for(var n of qn(t))Jn.call(t,n)&&Xn(e,n,t[n]);return e};function Zn(n){const{children:o,className:i,id:r,onTabChange:s,type:a,hideTabContent:l}=n,[c,u]=(0,e.useState)({}),[h,d]=(0,e.useState)([]),[p,m]=(0,e.useState)(!1),[f,y]=(0,e.useState)(null);(0,e.useEffect)((()=>{d(f)}),[f]);const v=(e,t)=>{const n=e.slice(0);let o=!0;t.collapsible&&(n.push(Object.keys(t.tabs)[0]),o=!1),u((t=>{let n=Qn({},t);return n=((e,t)=>{let n=Qn({},e);const o=t.slice(0);for(;o.length>1;)n=n[o.shift()];const i=o.shift();return void 0===n[i].collapsed?n[i].collapsed=!0:n[i].collapsed=!n[i].collapsed,n})(n,e),n})),d(n),m(o),s&&s(t)},b=e=>{const t=[];return h&&h.indexOf(e)>-1&&t.push("active"),t.join(" ")},w=(e,n)=>e?t().createElement("ul",null,Object.keys(e).map(((o,i)=>{const r=n?n.concat([e[o].id]):[e[o].id],s=e[o].collapsed?"chevron-up":"chevron-down";return!1===e[o].show?null:t().createElement("li",{className:b(e[o].id),key:e[o].id},t().createElement("button",{type:"button",onClick:v.bind(null,r,e[o]),onKeyDown:v.bind(null,r,e[o]),tabIndex:i},e[o].title,e[o].collapsible?t().createElement(g,{className:"collapsable-arrow",type:s}):null),e[o].collapsible?t().createElement(R,{collapsed:e[o].collapsed},w(e[o].tabs,r)):w(e[o].tabs,r))}))):null,x=(e,t)=>{u((n=>((e,t,n)=>{let o=Qn({},e);const i=Qn({},n),r=t.slice(0);for(;r.length>1;)o=o[r.shift()],o||(o={});return i.tempPath=r,o[r.shift()]=i,o})(Qn({},n),t,e))),e.selected&&y(t)},k=(e,t)=>{u((t=>{const n=Qn({},t);return n[e.id]=e,n})),e.selected&&v(t,e)},C=e=>{u((t=>{const n=Qn({},t);return n[e].show=!1,n}))},$=e=>{u((t=>{const n=Qn({},t);return n[e].show=!0,n}))},S=e=>{let t=Qn({},c);const n=e.slice(0);for(;n.length>1;)t=t[n.shift()];const o=n.shift();return Boolean(null==t?void 0:t[o])},E=(0,e.useMemo)((()=>({id:r,addTab:x,hideTab:C,updateTab:k,showTab:$,tabExists:S,selectedPath:h,rendered:p,hideTabContent:l,tabs:c})),[r,x,C,k,$,S,h,p,l,c]);return t().createElement("div",{className:(()=>{let e=["tyk-tabs"];return e.push(`tyk-tabs--${a||"default"}`),i&&(e=e.concat(i.split(" "))),e.join(" ")})()},w(c),t().createElement(In.Provider,{value:E},"function"==typeof o?o({hideTab:C,showTab:$}):o))}Zn.propTypes={className:r().string,children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),hideTabContent:r().bool,id:r().string,onTabChange:r().func,type:r().string},Zn.Tab=Gn;const eo=Zn;var to=Object.defineProperty,no=Object.getOwnPropertySymbols,oo=Object.prototype.hasOwnProperty,io=Object.prototype.propertyIsEnumerable,ro=(e,t,n)=>t in e?to(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,so=(e,t)=>{for(var n in t||(t={}))oo.call(t,n)&&ro(e,n,t[n]);if(no)for(var n of no(t))io.call(t,n)&&ro(e,n,t[n]);return e};function ao(n){var o=n,{render:i,className:r,children:s,position:a="auto",style:l,icon:c=!1,closable:u,isOpened:h=!1,additionalClickParents:d=[]}=o,p=((e,t)=>{var n={};for(var o in e)oo.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&no)for(var o of no(e))t.indexOf(o)<0&&io.call(e,o)&&(n[o]=e[o]);return n})(o,["render","className","children","position","style","icon","closable","isOpened","additionalClickParents"]);const[m,f]=(0,e.useState)(!1),y=(0,e.useRef)(null),v=(0,e.useRef)(null),b=u?{onClick:()=>f(!0)}:{onMouseEnter:()=>f(!0),onMouseLeave:()=>f(!1),onFocus:()=>f(!0),onBlur:()=>f(!1)},w=(0,e.useCallback)((e=>{[...d,v.current].some((t=>{var n;return null==(n=null==t?void 0:t.contains)?void 0:n.call(t,e.target)}))||f(!1)}),[d]);(0,e.useEffect)((()=>(document.addEventListener("click",w,!0),()=>document.removeEventListener("click",w,!0))),[w]),(0,e.useEffect)((()=>{f(h)}),[h]);const x=["tyk-tooltip",r].filter(Boolean).join(" ");return t().createElement("div",so(so({className:"tyk-tooltip__wrapper",style:so({display:"inline-block"},l),ref:y},b),p),s,m&&t().createElement(Pt,{element:y,forceDisplay:a,preferredPosition:"top",offset:20},t().createElement("div",{className:x,ref:v},c&&(!0===c?t().createElement(g,{type:"question"}):c),t().createElement("div",{className:"tyk-tooltip__content"},i),u&&t().createElement(g,{type:"xmark",onClick:e=>{e.stopPropagation(),f(!1)}}))))}ao.propTypes={children:r().node.isRequired,style:r().instanceOf(Object),position:r().string,render:r().oneOfType([r().node,r().string]),className:r().string,icon:r().oneOfType([r().bool,r().node]),closable:r().bool,isOpened:r().bool,additionalClickParents:r().instanceOf(Array)};const lo=ao;function co({text:e,limit:n,position:o}){return e.length>n?t().createElement(lo,{render:e,position:o},e.substring(0,n),"..."):e}co.propTypes={text:r().string,limit:r().number,position:r().string};const uo=co;function ho(n){const{value:o=0,totalNrOfPages:i,onChange:r}=n,[s,a]=(0,e.useState)(o),l=(0,e.useMemo)((()=>function(e,t){let n;const o=[];for(n=0;n<=e;n+=1)i=n,r=t,((s=e)<10||r<5&&i<5||r>s-5&&i>s-5||i>=r-2&&i<=r+2||[0,1,s-1,s].includes(i))&&(n>o.at(-1)&&o.push(`...-${n}`),o.push(n+1));var i,r,s;return o}(i,s)),[s,i]);function c(e){a(e),r&&r(e)}return i?t().createElement("ul",{className:"tyk-pagination"},s>0&&i>5&&t().createElement("li",null,t().createElement("button",{onClick:()=>c(s-1),type:"button"},"Previous")),l.map((e=>t().createElement("li",{key:e,className:s===e-1?"active":""},String(e).startsWith("...")?t().createElement("span",null,"..."):t().createElement("button",{onClick:()=>c(e-1),type:"button"},e)))),s5&&t().createElement("li",null,t().createElement("button",{onClick:()=>c(s+1),type:"button"},"Next"))):null}ho.propTypes={value:r().number,totalNrOfPages:r().number,onChange:r().func};const po=ho,go=(0,e.createContext)();function mo({column:n}){const{sortable:o}=n,[i,r]=(0,e.useState)((null==o?void 0:o.default)||"ASC"),{state:s,sendMessage:a}=(0,e.useContext)(go);return t().createElement("th",{key:n.id,onClick:o?()=>{a("sort",{column:n,sortOrder:i}),r("ASC"===i?"DESC":"ASC")}:null,className:s.maxHeight?"fixed-header":""},n.name,n.sortable&&t().createElement("span",{className:"header-sort"},t().createElement(g,{family:"tykon",type:"arrowsort"})))}mo.propTypes={column:r().instanceOf(Object)};var fo=Object.defineProperty,yo=Object.defineProperties,vo=Object.getOwnPropertyDescriptors,bo=Object.getOwnPropertySymbols,wo=Object.prototype.hasOwnProperty,xo=Object.prototype.propertyIsEnumerable,ko=(e,t,n)=>t in e?fo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Co=(e,t)=>{for(var n in t||(t={}))wo.call(t,n)&&ko(e,n,t[n]);if(bo)for(var n of bo(t))xo.call(t,n)&&ko(e,n,t[n]);return e},$o=(e,t)=>yo(e,vo(t));function So({allRowsSelected:n}){const{state:o,sendMessage:i}=(0,e.useContext)(go),{columns:r,selectable:s}=o,a=()=>{var e;const r=s.type;return t().createElement("th",{className:o.maxHeight?"fixed-header":""},(null==s?void 0:s.allowSelectAll)?t().createElement("div",{className:null==s?void 0:s.style},t().createElement(r,$o(Co({},s.values),{value:n,onChange:e=>{var t,n;const o="input"===(null==(t=null==e?void 0:e.target)?void 0:t.tagName.toLowerCase())&&"checkbox"===(null==(n=null==e?void 0:e.target)?void 0:n.type.toLowerCase());i("header.selectAll.change",o?e.target.checked:Boolean(e))}}),null==(e=s.values)?void 0:e.value)):s.name||"Select")};return t().createElement("thead",null,t().createElement("tr",null,"LEFT"===(null==s?void 0:s.position)&&a(),r.map((e=>t().createElement(mo,{key:e.id,column:e}))),"RIGHT"===(null==s?void 0:s.position)&&a()))}So.propTypes={allRowsSelected:r().bool};var Eo=Object.defineProperty,Oo=Object.defineProperties,To=Object.getOwnPropertyDescriptors,Ao=Object.getOwnPropertySymbols,_o=Object.prototype.hasOwnProperty,Lo=Object.prototype.propertyIsEnumerable,Mo=(e,t,n)=>t in e?Eo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ro=(e,t)=>{for(var n in t||(t={}))_o.call(t,n)&&Mo(e,n,t[n]);if(Ao)for(var n of Ao(t))Lo.call(t,n)&&Mo(e,n,t[n]);return e};class No extends e.Component{getCssClasses(){const{inline:e,disabled:t,readOnly:n,theme:o="",wrapperClassName:i=""}=this.props,r=[i];return r.push("tyk-checkbox"),e&&r.push("tyk-checkbox--inline"),o.trim()&&r.push(...o.split(" ").map((e=>`tyk-checkbox--theme-${e}`))),(t||n)&&r.push("tyk-checkbox--is-disabled"),r.join(" ")}displayError(){const{error:e}=this.props;return e?t().createElement("p",{className:"tyk-form-control__error-message"},e):null}displayNote(){const{note:e}=this.props;return e?t().createElement("p",{className:"tyk-form-control__help-block"},e):null}render(){const e=this.props,{input:n,value:o,label:i}=e,r=((e,t)=>{var n={};for(var o in e)_o.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ao)for(var o of Ao(e))t.indexOf(o)<0&&Lo.call(e,o)&&(n[o]=e[o]);return n})(e,["input","value","label"]);return t().createElement("div",{className:this.getCssClasses()},t().createElement("div",{className:"tyk-form-control__wrapper"},t().createElement("label",null,t().createElement("input",(s=Ro(Ro({checked:n?n.value:o},n),r),Oo(s,To({type:"checkbox"})))),i),this.displayNote(),this.displayError()));var s}}No.propTypes={disabled:r().bool,readOnly:r().bool,inline:r().bool,theme:r().string,error:r().oneOfType([r().string,r().bool]),note:r().string,input:r().instanceOf(Object),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),name:r().string,value:r().oneOfType([r().string,r().bool]),checked:r().oneOfType([r().string,r().bool]),onChange:r().func,wrapperClassName:r().string};const Io=No;var Po=Object.defineProperty,Do=Object.getOwnPropertySymbols,Fo=Object.prototype.hasOwnProperty,Bo=Object.prototype.propertyIsEnumerable,Wo=(e,t,n)=>t in e?Po(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ho=(e,t)=>{for(var n in t||(t={}))Fo.call(t,n)&&Wo(e,n,t[n]);if(Do)for(var n of Do(t))Bo.call(t,n)&&Wo(e,n,t[n]);return e};function jo({col:e,row:n}){var o,i,r,s,a;if(!n.values[e.id])return t().createElement("td",null);if("string"===e.type)return t().createElement("td",Ho({className:(null==(o=n.values[e.id].styling)?void 0:o.className)||null},null==(i=n.values[e.id])?void 0:i.events),null==(r=n.values[e.id])?void 0:r.value);const l=e.type;return t().createElement("td",Ho({className:(null==(s=n.values[e.id].styling)?void 0:s.className)||null},null==(a=n.values[e.id])?void 0:a.events),t().createElement(l,Ho({},n.values[e.id].props),n.values[e.id].children?n.values[e.id].children:null))}function zo({row:n,index:o}){var i,r;const{state:s,sendMessage:a}=(0,e.useContext)(go),{columns:l,selectable:c}=s,u=(0,e.useCallback)((()=>t().createElement("td",null,t().createElement(Io,{value:n.selected,onChange:e=>a("row.selected",{index:o,selected:e.target.checked})}))),[n.selected,o]);return t().createElement("tr",{onClick:null==(i=n.events)?void 0:i.onClick,className:null==(r=n.styling)?void 0:r.className},c&&"LEFT"===c.position&&u(),l.map((e=>t().createElement(jo,{key:e.id,col:e,row:n,index:o}))),c&&"RIGHT"===c.position&&u())}function Vo(){const{state:n}=(0,e.useContext)(go),{rows:o}=n;return t().createElement("tbody",null,o.map(((e,n)=>t().createElement(zo,{key:n,row:e,index:n}))))}jo.propTypes={col:r().instanceOf(Object),row:r().instanceOf(Object),index:r().number},zo.propTypes={row:r().instanceOf(Object),index:r().number};var Uo=Object.defineProperty,Go=Object.defineProperties,Ko=Object.getOwnPropertyDescriptors,qo=Object.getOwnPropertySymbols,Yo=Object.prototype.hasOwnProperty,Jo=Object.prototype.propertyIsEnumerable,Xo=(e,t,n)=>t in e?Uo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Qo=(e,t)=>{for(var n in t||(t={}))Yo.call(t,n)&&Xo(e,n,t[n]);if(qo)for(var n of qo(t))Jo.call(t,n)&&Xo(e,n,t[n]);return e},Zo=(e,t)=>Go(e,Ko(t));function ei({value:n,onChange:o,noDataMessage:i,loading:r,infiniteScrolling:s}){var a;const[l,c]=(0,e.useState)(null),[u,h]=(0,e.useState)("api"),d=(0,e.useRef)(null),p=(0,e.useCallback)(((e,t)=>{c((n=>Zo(Qo({},n),{sort:{order:t,col:e}})))}),[]),g=(0,e.useCallback)((e=>{c((t=>Zo(Qo({},t),{rows:t.rows.map((t=>Zo(Qo({},t),{selected:e})))})))}),[]),m=(0,e.useCallback)((({index:e,selected:t})=>{c((n=>Zo(Qo({},n),{rows:[...n.rows.slice(0,e),Zo(Qo({},n.rows[e]),{selected:t}),...n.rows.slice(e+1)]})))}),[]),f=(0,e.useCallback)((e=>{c((t=>Zo(Qo({},t),{pagination:Zo(Qo({},t.pagination),{current:e+1})})))}),[]),y={getState:()=>l,setState:e=>c(e)},v=(0,e.useCallback)(((e,t)=>{h(e),"sort"===e&&p(t.column.id,t.sortOrder),"header.selectAll.change"===e&&g(t),"row.selected"===e&&m(t),"pagination.change"===e&&f(t)}),[p,g,m,f]),b=(0,e.useMemo)((()=>({state:l,sendMessage:v})),[l,v]);if((0,e.useEffect)((()=>c(n)),[n]),(0,e.useEffect)((()=>{o&&o(u,l,y),h("api")}),[l]),!l)return t().createElement(ye,{position:"absolute"});if(l.rows<=0)return t().createElement(be,{theme:"info"},i||"No Data Available");const w=()=>t().createElement("table",{className:"tyk-table",ref:d},t().createElement(So,{allRowsSelected:l.rows.every((({selected:e})=>e))}),t().createElement(Vo,null));return t().createElement(go.Provider,{value:b},t().createElement("div",{className:`scrollable ${(null==(a=l.styling)?void 0:a.className)||""}`,style:{height:l.maxHeight?l.maxHeight:"auto",position:"relative"}},r&&t().createElement(ye,{position:"absolute",withbackground:!0}),s&&l.pagination?t().createElement(At,{refChild:d,hasMore:l.pagination.totalPages>l.pagination.current,loadMore:e=>v("pagination.change",e),pageNumber:l.pagination.current-1,initialLoad:!1},w()):w()),l.pagination&&!s&&t().createElement("div",{className:"new-table-pagination"},t().createElement(po,{value:l.pagination.current-1,nrItemsOnPage:l.pagination.perPage-1,totalNrOfPages:l.pagination.totalPages-1,onChange:e=>v("pagination.change",e)})))}ei.propTypes={value:r().shape({columns:r().arrayOf(r().shape({id:r().string.isRequired,name:r().string,type:r().oneOfType([r().string,r().element,r().func]),sortable:r().oneOfType([r().bool,r().shape({default:r().string})])})),rows:r().arrayOf(r().shape({})),selectable:r().shape({}),pagination:r().shape({}),maxHeight:r().string,styling:r().shape({className:r().string})}).isRequired,onChange:r().func,noDataMessage:r().string,loading:r().bool,infiniteScrolling:r().bool},ei.defaultProps={loading:!1,infiniteScrolling:!1,noDataMessage:"No Data Available",onChange:null};const ti=ei;var ni=Object.defineProperty,oi=Object.getOwnPropertySymbols,ii=Object.prototype.hasOwnProperty,ri=Object.prototype.propertyIsEnumerable,si=(e,t,n)=>t in e?ni(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function ai(e){var n=e,{children:o,align:i,className:r,offset:s,size:a}=n,l=((e,t)=>{var n={};for(var o in e)ii.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&oi)for(var o of oi(e))t.indexOf(o)<0&&ri.call(e,o)&&(n[o]=e[o]);return n})(n,["children","align","className","offset","size"]);const c=["tyk-col",r,i&&`tyk-col--align-${i}`,...a.split(" ").map((e=>`tyk-col--${e}`)),...(s?s.split(" "):[]).map((e=>`tyk-col--offset-${e}`))].filter(Boolean).join(" ");return t().createElement("div",((e,t)=>{for(var n in t||(t={}))ii.call(t,n)&&si(e,n,t[n]);if(oi)for(var n of oi(t))ri.call(t,n)&&si(e,n,t[n]);return e})({className:c},l),o)}ai.propTypes={align:r().string,className:r().string,size:r().string.isRequired,offset:r().string,children:r().oneOfType([r().element,r().string,r().object,r().node])};const li=ai;var ci=Object.defineProperty,ui=Object.defineProperties,hi=Object.getOwnPropertyDescriptors,di=Object.getOwnPropertySymbols,pi=Object.prototype.hasOwnProperty,gi=Object.prototype.propertyIsEnumerable,mi=(e,t,n)=>t in e?ci(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function fi(e){var n=e,{className:o,nogutters:i,children:r}=n,s=((e,t)=>{var n={};for(var o in e)pi.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&di)for(var o of di(e))t.indexOf(o)<0&&gi.call(e,o)&&(n[o]=e[o]);return n})(n,["className","nogutters","children"]);const a=["tyk-row",o,i&&"no-gutters",i&&"tyk-row--gutterless"].filter(Boolean).join(" ");return t().createElement("div",(l=((e,t)=>{for(var n in t||(t={}))pi.call(t,n)&&mi(e,n,t[n]);if(di)for(var n of di(t))gi.call(t,n)&&mi(e,n,t[n]);return e})({},s),ui(l,hi({className:a}))),r);var l}fi.propTypes={children:r().oneOfType([r().element,r().node]),className:r().string,nogutters:r().bool};const yi=fi,vi=(0,e.createContext)();function bi(n){const{customdropdownitem:o,children:i,eventKey:r,href:s,target:a,title:l,onClick:c}=n,u=(0,e.useCallback)(((e,t)=>{e.onSelectItem(r,t),c&&c(r)}),[]);return t().createElement(vi.Consumer,null,(c=>t().createElement("li",{onClick:()=>u(c,n),onKeyUp:()=>{}},o?(0,e.cloneElement)(o,{}):t().createElement("a",{href:s,target:a},r&&c.selectedItem===r&&c.showCheckmark?t().createElement(g,{type:"check"}):null,t().createElement("span",null,l||i)))))}bi.propTypes={children:r().oneOfType([r().element,r().node,r().string]),customdropdownitem:r().oneOfType([r().arrayOf(r().node),r().node,r().element]),eventKey:r().string,href:r().string,target:r().string,onClick:r().func,title:r().string};const wi=bi;var xi=Object.defineProperty,ki=Object.getOwnPropertySymbols,Ci=Object.prototype.hasOwnProperty,$i=Object.prototype.propertyIsEnumerable,Si=(e,t,n)=>t in e?xi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Ei extends e.Component{static isElemInRightView(e,t){const n=window.innerWidth;return e.getBoundingClientRect().left+t<=n}static isElemInBottomView(e,t){const n=window.innerHeight,o=e.getBoundingClientRect(),i=e.clientHeight;return o.top+i+t<=n}constructor(t){super(t);const{selectedItem:n,open:o}=this.props;this.state={opened:o,selectedItem:n||null},this.dropdownRef=(0,e.createRef)(),this.dropdownListRef=(0,e.createRef)(),this.dropdownButtonRef=(0,e.createRef)(),this.onSelectItem=this.onSelectItem.bind(this),this.toggleDropdown=this.toggleDropdown.bind(this),this.handleClickOutside=this.handleClickOutside.bind(this)}componentDidMount(){document.addEventListener("mousedown",this.handleClickOutside),this.dropdownListRef.current&&this.getStyles()}componentDidUpdate(e){const{open:t}=this.props,{opened:n}=this.state;this.dropdownListRef.current&&this.getStyles(),e.open||!0!==t||n||this.toggleDropdown(),e.open&&!1===t&&n&&this.closeDropdown()}componentWillUnmount(){document.removeEventListener("mousedown",this.handleClickOutside)}handleClickOutside(e){this.dropdownListRef.current&&!this.dropdownListRef.current.contains(e.target)&&this.dropdownRef.current&&!this.dropdownRef.current.contains(e.target)&&this.closeDropdown()}onSelectItem(e,t){const{closeOnSelect:n,onSelect:o}=this.props,i={selectedItem:e,selectedItemProps:t};n&&(i.opened=!1),this.setState(i),o&&"function"==typeof o&&o(e)}getStyles(){const{display:e,position:t,offset:n}=this.props,o=this.dropdownListRef.current;if(n)return o.style.top=`${n.top}`,void(o.style.left=`${n.left}`);const i=Math.max(document.documentElement.scrollTop,document.body.scrollTop,window.scrollY),r=this.dropdownRef.current,s=r.clientHeight,a=o?o.clientHeight:0,l=o?o.clientWidth:0,c=r.getBoundingClientRect(),{left:u,top:h}=c;let d=0,p=u;d=Ei.isElemInBottomView(r,a)?h+i+s:h+i-a-5,Ei.isElemInRightView(r,l)||(p=u+r.clientWidth-l),"relative"!==t&&(o.style.top=`${d}px`,"block"!==e&&(o.style.left=`${p}px`)),"block"!==e&&(o.style.minWidth=`${this.dropdownButtonRef.current.clientWidth}px`)}getWrapperCssClasses(){const{btnGroup:e,btnGroupSize:t,className:n,btnTheme:o,wrapperClassName:i=""}=this.props;let r=[i,"tyk-dropdown"];return r.push(`theme-${o||"default"}`),n&&(r=r.concat(n.split(" "))),e&&(r.push("tyk-button-group"),r.push(t?`tyk-button-group--${t}`:"tyk-button-group--md")),r.join(" ")}getCssClasses(){const{opened:e}=this.state,{hasCustomContent:t,display:n,listclassnames:o,position:i,maxHeight:r}=this.props;let s=["tyk-dropdown-menu","tyk-dropdown"];return r&&s.push("tyk-dropdown--scrollable"),e&&s.push("opened"),o&&(s=s.concat(o.split(" "))),n&&s.push("tyk-dropdown--block"),t&&s.push("tyk-dropdown--custom"),"relative"===i&&s.push("tyk-dropdown--relative"),s.join(" ")}getBtnTitle(){const{btnTitle:e,stopButtonTextChange:t}=this.props,{selectedItemProps:n}=this.state;return!t&&(null==n?void 0:n.title)?n.title:e}closeDropdown(){const{onClose:e}=this.props;this.setState({opened:!1},(()=>{e&&e()}))}toggleDropdown(){const{opened:e}=this.state;e?this.closeDropdown():this.setState({opened:!0})}render(){const{appendTo:e,btnClassName:n,btnSize:o,customBtnTitle:i,hasCustomContent:r,btnTheme:s,children:a,label:l,showDropdownIcon:c,showTriggerButton:u,showCheckmark:h,disabled:d=!1,maxHeight:p}=this.props,{selectedItem:g,opened:m}=this.state,f=r?"div":"ul";return t().createElement("div",{className:this.getWrapperCssClasses(),ref:this.dropdownRef},l?t().createElement("label",{className:"font-family-medium"},l):null,u?t().createElement(U,{className:`tyk-dropdown__trigger ${m?"tyk-dropdown__trigger--opened ":" "} ${n}`,theme:s||"default",onClick:this.toggleDropdown,iconType:c?"chevron-down":null,iconPosition:"right",size:o||"md",type:"button",disabled:d,ref:this.dropdownButtonRef},i||this.getBtnTitle()):null,m?dt().createPortal(t().createElement(vi.Provider,{value:{onSelectItem:this.onSelectItem,selectedItem:g,showCheckmark:h}},m?t().createElement(f,((e,t)=>{for(var n in t||(t={}))Ci.call(t,n)&&Si(e,n,t[n]);if(ki)for(var n of ki(t))$i.call(t,n)&&Si(e,n,t[n]);return e})({className:this.getCssClasses(),ref:this.dropdownListRef},p&&{style:{maxHeight:p}}),"function"==typeof a?a({closeDropdown:this.closeDropdown.bind(this)}):a):null),document.querySelector(e||"body")):null)}}Ei.propTypes={appendTo:r().string,children:r().oneOfType([r().element,r().node,r().string,r().func]),closeOnSelect:r().bool,btnClassName:r().string,btnSize:r().string,btnGroupSize:r().string,btnTheme:r().string,btnTitle:r().oneOfType([r().node,r().element,r().string]),customBtnTitle:r().oneOfType([r().node,r().element,r().string]),btnGroup:r().bool,className:r().string,display:r().string,disabled:r().bool,hasCustomContent:r().bool,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),listclassnames:r().string,onClose:r().func,onSelect:r().func,open:r().bool,offset:r().instanceOf(Object),position:r().string,selectedItem:r().string,showDropdownIcon:r().bool,stopButtonTextChange:r().bool,showTriggerButton:r().bool,showCheckmark:r().bool,maxHeight:r().string,wrapperClassName:r().string},Ei.defaultProps={closeOnSelect:!1,showDropdownIcon:!0,showTriggerButton:!0,showCheckmark:!0,open:!1},Ei.Item=wi;const Oi=Ei;var Ti=Object.defineProperty,Ai=Object.getOwnPropertySymbols,_i=Object.prototype.hasOwnProperty,Li=Object.prototype.propertyIsEnumerable,Mi=(e,t,n)=>t in e?Ti(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Ri({title:e,theme:n="primary",splitTrigger:o,toggle:i,onTriggerClick:r,value:s},a){return o?t().createElement(K,{ref:a},t().createElement(U,((e,t)=>{for(var n in t||(t={}))_i.call(t,n)&&Mi(e,n,t[n]);if(Ai)for(var n of Ai(t))Li.call(t,n)&&Mi(e,n,t[n]);return e})({theme:n},r&&{onClick:()=>r(s)}),e),t().createElement(U,{className:"dropdown__trigger",iconType:"chevron-down",iconFamily:"tykon",iconPosition:"right",theme:n,onClick:i,iconOnly:!0})):t().createElement(U,{className:"dropdown__trigger",iconType:"chevron-down",iconFamily:"tykon",iconPosition:"right",theme:n,ref:a,onClick:i},e)}Ri.propTypes={title:r().string,theme:r().string,splitTrigger:r().bool,toggle:r().func,dropdownRef:r().shape({current:r().instanceOf(Element)}).isRequired,onTriggerClick:r().func,value:r().oneOfType([r().string,r().number])};const Ni=(0,e.forwardRef)(Ri);var Ii=Object.defineProperty,Pi=Object.getOwnPropertySymbols,Di=Object.prototype.hasOwnProperty,Fi=Object.prototype.propertyIsEnumerable,Bi=(e,t,n)=>t in e?Ii(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Wi=(e,t)=>{for(var n in t||(t={}))Di.call(t,n)&&Bi(e,n,t[n]);if(Pi)for(var n of Pi(t))Fi.call(t,n)&&Bi(e,n,t[n]);return e};function Hi({children:e,element:n,maxWidth:o},i){return t().createElement(Pt,{element:n,ref:i,className:"dropdown__menu",position:"bottom",alignment:"auto",offset:5,arrow:!0},t().createElement(jt,{style:Wi({},o&&{maxWidth:o}),theme:"primary"},e))}Hi.propTypes={element:r().shape({current:r().instanceOf(Element)}),children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),maxWidth:r().string};const ji=(0,e.forwardRef)(Hi),zi=(0,e.createContext)();var Vi=Object.defineProperty,Ui=Object.getOwnPropertySymbols,Gi=Object.prototype.hasOwnProperty,Ki=Object.prototype.propertyIsEnumerable,qi=(e,t,n)=>t in e?Vi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Yi=(e,t)=>{for(var n in t||(t={}))Gi.call(t,n)&&qi(e,n,t[n]);if(Ui)for(var n of Ui(t))Ki.call(t,n)&&qi(e,n,t[n]);return e};function Ji({children:n,value:o}){const{onChange:i,value:r}=(0,e.useContext)(zi);return t().createElement(jt.Item,Yi({},o===r&&{selected:!0}),t().createElement("a",Yi({},i&&{onClick:()=>i(o)}),n))}Ji.propTypes={children:r().node,value:r().any};const Xi=Ji;function Qi({children:n,title:o,theme:i,splitTrigger:r,onChange:s,value:a,setSelectedValueAsTitle:l,maxWidth:c,onTriggerClick:u}){const{isOpen:h,toggle:d,dropdownRef:p,dropdownListRef:g}=(({splitTrigger:t})=>{const[n,o]=(0,e.useState)(!1),i=(0,e.useRef)(null),r=(0,e.useRef)(null),s=(0,e.useCallback)((e=>{const s=t?i.current.querySelector(".dropdown__trigger"):i.current;!n||s.contains(e.target)||r.current.contains(e.target)||o(!1)}),[n]);return(0,e.useEffect)((()=>(document.addEventListener("mousedown",s),()=>{document.removeEventListener("mousedown",s)})),[s]),{isOpen:n,toggle:()=>o(!n),dropdownRef:i,dropdownListRef:r}})({splitTrigger:r}),m=(0,e.useMemo)((()=>({onChange:s,value:a})),[s,a]);return t().createElement(zi.Provider,{value:m},t().createElement(Ni,{title:l?a:o,onTriggerClick:u,theme:i,splitTrigger:r,toggle:d,ref:p,value:a}),h&&t().createElement(ji,{element:p,ref:g,maxWidth:c},n))}Qi.propTypes={title:r().string,theme:r().string,children:r().node,splitTrigger:r().bool,onChange:r().func,value:r().oneOfType([r().string,r().number]),setSelectedValueAsTitle:r().bool,maxWidth:r().string,onTriggerClick:r().func},Qi.Item=Xi;const Zi=Qi;var er=n(239),tr=n.n(er);const nr=require("react-ace");var or=n.n(nr);n(395),n(576),n(7),n(549),n(252),n(202),n(711),n(604),n(134),n(203);const ir=n.p+"ee385296b124aae4e5d9.js";var rr=Object.defineProperty,sr=Object.defineProperties,ar=Object.getOwnPropertyDescriptors,lr=Object.getOwnPropertySymbols,cr=Object.prototype.hasOwnProperty,ur=Object.prototype.propertyIsEnumerable,hr=(e,t,n)=>t in e?rr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,dr=(e,t)=>{for(var n in t||(t={}))cr.call(t,n)&&hr(e,n,t[n]);if(lr)for(var n of lr(t))ur.call(t,n)&&hr(e,n,t[n]);return e};function pr(n){const{disabled:o,readOnly:i,disableValidation:r,id:s,error:a,label:l,labelwidth:c,note:u,onBlur:h,onChange:d,theme:p,value:g,setOptions:m,wrapperClassName:f}=n,y=["tyk-form-group",f,...p?p.split(" ").map((e=>`tyk-form-group--${e}`)):[],c&&"tyk-form-group--label-has-width",a&&"has-error"].filter(Boolean).join(" "),v=dr(dr({},m),r&&{useWorker:!1}),b=(0,e.useCallback)((()=>a&&"true"!==a&&"false"!==a?t().createElement("p",{className:"tyk-form-control__error-message"},a):null),[a]),w=(0,e.useCallback)((()=>c?{flexBasis:c}:{}),[c]),x=(0,e.useCallback)((()=>c?{flexBasis:`calc(100% - ${c} - 20px)`}:{}),[c]),k=(0,e.useCallback)((e=>{d&&d(e)}),[d]),C=(0,e.useCallback)((()=>{h&&h(g)}),[h,g]);return t().createElement("div",{className:y},l?t().createElement("label",{htmlFor:s,style:w()},l):null,t().createElement("div",{className:"tyk-form-control__wrapper",style:x()},t().createElement(or(),($=dr({className:"tyk-form-control"},n),sr($,ar({onChange:k,onBlur:C,theme:"github",editorProps:{$blockScrolling:!0},readOnly:i||o,onLoad:e=>{e.container.style.resize="both",document.addEventListener("mouseup",(()=>e.resize()))},setOptions:v})))),u?t().createElement("p",{className:"tyk-form-control__help-block"},u):null,b()));var $}tr().config.setModuleUrl("ace/mode/json_worker",ir),pr.propTypes={disabled:r().bool,readOnly:r().bool,disableValidation:r().bool,id:r().string,error:r().oneOfType([r().string,r().bool]),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,mode:r().string,name:r().string,note:r().string,onBlur:r().func,onChange:r().func,theme:r().string,value:r().string,setOptions:r().instanceOf(Object),wrapperClassName:r().string};const gr=pr;var mr=Object.defineProperty,fr=Object.defineProperties,yr=Object.getOwnPropertyDescriptors,vr=Object.getOwnPropertySymbols,br=Object.prototype.hasOwnProperty,wr=Object.prototype.propertyIsEnumerable,xr=(e,t,n)=>t in e?mr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,kr=(e,t)=>{for(var n in t||(t={}))br.call(t,n)&&xr(e,n,t[n]);if(vr)for(var n of vr(t))wr.call(t,n)&&xr(e,n,t[n]);return e};const Cr=(e,t,n)=>n||(e||t?[]:null);class $r extends e.Component{static closeList(){return{cursor:-1,opened:!1}}static openList(){return{opened:!0}}static filterByName(e,t){return e.name.toLowerCase().indexOf(t)>-1}constructor(t){super(t);const{multiple:n,tags:o,value:i}=t;this.state={cursor:-1,opened:!1,width:50,initialValue:i,stateSelectedValues:Cr(n,o,i),searchText:"",tags:o},this.comboboxRef=(0,e.createRef)(),this.valuesListRef=(0,e.createRef)(),this.inputRef=(0,e.createRef)(),this.textRef=(0,e.createRef)(),this.focusInput=this.focusInput.bind(this),this.onKeyUp=this.onKeyUp.bind(this),$r.openList=$r.openList.bind(this),this.handleClickOutside=this.handleClickOutside.bind(this),this.handleItemsNavigation=this.handleItemsNavigation.bind(this),this.handleComboboxDropdownClick=this.handleComboboxDropdownClick.bind(this),this.handleListItemClick=this.handleListItemClick.bind(this),this.handlePillRemoveClick=this.handlePillRemoveClick.bind(this),this.manageSelectedTags=this.manageSelectedTags.bind(this)}componentDidMount(){const{tags:e}=this.props;e&&this.setInputWidth(),this.bindEvents()}componentWillUnmount(){this.unBindEvents()}static getDerivedStateFromProps(e,t){return JSON.stringify(e.value)!==JSON.stringify(t.initialValue)||e.tags!==t.tags?{initialValue:e.value,stateSelectedValues:Cr(e.multiple,e.tags,e.value),tags:e.tags}:null}handleItemsNavigation(e){const{tags:t}=this.props;if(-1===["ArrowDown","ArrowUp"].indexOf(e.key))return;const{cursor:n}=this.state,o=this.filterValues();let i;if(e.preventDefault(),"ArrowDown"===e.key&&(-1===n||n===o.length-1?i=0:n0?n-1:o.length-1),this.valuesListRef.current&&i>4){const e=38*(i-4);this.valuesListRef.current.scrollTop=t?e:60+e}else this.valuesListRef.current&&(this.valuesListRef.current.scrollTop=0);this.setState((e=>{return t=kr({},e),fr(t,yr({opened:!0,cursor:i}));var t}))}handleListItemClick(e){if(this.props.values[e].disabled)return;const{multiple:t,tags:n}=this.props,o=n?"manageSelectedTags":"manageSelectedValues",i=kr(kr({},this.state),this[o](e));this.setState((e=>(t||n||(i.opened=!1),kr(kr({},e),i))))}handlePillRemoveClick(e){const{disabled:t}=this.props;if(t)return;const n=this.removeSelectedValue(e);this.setState((e=>kr(kr({},e),n)))}handleClickOutside(e){this.valuesListRef.current&&!this.valuesListRef.current.contains(e.target)&&this.comboboxRef.current&&!this.comboboxRef.current.contains(e.target)&&this.setState((e=>kr(kr({},e),$r.closeList())))}handleComboboxDropdownClick(){const{disabled:e}=this.props;e||this.setState((e=>kr(kr({},e),$r.openList())))}onKeyUp(e){const{tags:t,allowCustomValues:n}=this.props,{cursor:o,opened:i}=this.state,r=this.filterValues();let s=this.getSearchText();if(t&&"Escape"!==e.key&&(s=kr(kr({},s),this.setInputWidth())),"Enter"===e.key){const e=t?"manageSelectedTags":"manageSelectedValues";s=kr(kr({},s),this[e](o))}n&&" "!==e.key&&t&&(s=kr(kr({},s),this.manageSelectedTags())),!i&&this.inputRef.current.value&&(null==r?void 0:r.length)&&"Escape"!==e.key&&(s=kr(kr({},s),$r.openList())),"Escape"===e.key&&i&&(s=kr(kr({},s),$r.closeList())),i&&r&&!r.length&&(s=kr(kr({},s),$r.closeList())),this.setState((e=>kr(kr({},e),s)))}getLabelStyles(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=e),t}getNonLabelWidth(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=`calc(100% - ${e} - 20px)`),t}setInputWidth(){return{width:50+this.textRef.current.offsetWidth}}getSelectedIndex(e){const{stateSelectedValues:t}=this.state;let n=-1;return Array.isArray(t)?t.forEach(((t,o)=>{t.id===e.id&&(n=o)})):t&&t.id===e.id&&(n=0),n}getSearchText(){return{searchText:this.inputRef.current.value}}getListItemCssClasses(e,t){const n=[],{cursor:o}=this.state;return o===t&&n.push("active"),e.disabled&&n.push("disabled"),n.join(" ")}getComboboxListCssClass(){const{opened:e}=this.state,{tags:t,theme:n}=this.props,o=n?n.split(" "):[],i=["tyk-combobox__list"];return e&&i.push("tyk-combobox__list--opened"),t&&i.push("tyk-combobox__list--has-tags"),o.length&&o.forEach((e=>{i.push(`tyk-form-group--${e}`)})),i.join(" ")}getCssClasses(){const{error:e,disabled:t,theme:n,labelwidth:o}=this.props,i=["tyk-form-group","tyk-combobox"],r=n?n.split(" "):[];return e&&i.push("has-error"),o&&i.push("tyk-form-group--label-has-width"),r.length&&r.forEach((e=>{i.push(`tyk-form-group--${e}`)})),t&&i.push("disabled"),i.join(" ")}getInputError(){const{error:e}=this.props;return e&&"true"!==e&&"false"!==e?t().createElement("p",{className:"tyk-form-control__error-message"},e):null}getStyles(){const{scrollTop:e}=document.documentElement,t=this.comboboxRef.current,n=t.offsetHeight,o=t.offsetWidth,i=t.getBoundingClientRect(),{left:r}=i;let s=0;return s=i.top+e+n,{top:s-1+"px",left:`${r}px`,width:`${o}px`}}getComboboxDisplayData(){const{stateSelectedValues:e}=this.state,{multiple:t,placeholder:n,values:o}=this.props;return e?e&&Array.isArray(e)&&!e.length?n:!e||Array.isArray(e)||e.id?Array.isArray(e)&&t?e.reduce(((t,n,o)=>t+n.name+(o!==e.length-1?", ":"")),""):!(null==o?void 0:o.length)||Array.isArray(e)||e.name?e.name:o.filter((t=>t.id===e.id))[0].name:n:n}manageSelectedTags(e){const{max:t,allowCustomValues:n}=this.props,{stateSelectedValues:o}=this.state,i=this.filterValues(),r={id:this.inputRef.current.value,name:this.inputRef.current.value};if(!1===n&&-1===e)return null;const s=i[e]||r,a=this.getSelectedIndex(s);let l={};if(this.inputRef.current.value="",a>-1&&this.isInInitialValues(s))l=this.removeSelectedValue(a);else if(-1===a){if(t&&o.length>=t)return l;l=this.addSelectedValue(s)}return l}manageSelectedValues(e){const{stateSelectedValues:t}=this.state,{multiple:n,onChange:o,max:i}=this.props,r=this.filterValues(),s=r[e];let a;const l=this.getSelectedIndex(s);if(s&&n)if(l>-1)a=this.removeSelectedValue(l);else{if(i&&t.length>=i)return a;a=this.addSelectedValue(r[e])}else a={stateSelectedValues:-1===l?s:{id:null}},null==o||o(-1===l?s:null);return a}removeSelectedValue(e){const{stateSelectedValues:t}=this.state,{onChange:n}=this.props,o=JSON.parse(JSON.stringify(t));return o.splice(e,1),n&&"function"==typeof n&&n(o.length?o:null),{stateSelectedValues:o,searchText:""}}addSelectedValue(e){const{stateSelectedValues:t}=this.state,{onChange:n}=this.props,o=JSON.parse(JSON.stringify(t));return o.push(e),n&&"function"==typeof n&&n(o.length?o:null),{stateSelectedValues:o,searchText:""}}isInInitialValues(e){const{values:t}=this.props;let n=!1;return t.forEach((t=>{e.id===t.id&&(n=!0)})),n}filterValues(){const{values:e,searchItem:t}=this.props;return this.inputRef.current?e.filter((e=>t?t(e,this.inputRef.current.value.toLowerCase()):$r.filterByName(e,this.inputRef.current.value.toLowerCase()))):e}bindEvents(){document.addEventListener("mousedown",this.handleClickOutside)}unBindEvents(){document.removeEventListener("mousedown",this.handleClickOutside)}reset(){const{multiple:e,tags:t,value:n}=this.props;this.setState({stateSelectedValues:Cr(e,t,n)})}focusInput(){this.inputRef.current&&this.inputRef.current.focus()}renderInput(e){const{disabled:n,tags:o,max:i,placeholder:r}=this.props,{width:s,searchText:a,stateSelectedValues:l}=this.state;return t().createElement("ul",{className:"tyk-form-control"+(o?" tyk-form-control--with-tags":""),onClick:this.focusInput,onKeyDown:()=>{},ref:this.comboboxRef},o?t().createElement(t().Fragment,null,(l||[]).map(((e,n)=>t().createElement("li",{className:"pill",key:e.id},t().createElement("button",{type:"button",onClick:this.handlePillRemoveClick.bind(this,n),"aria-label":"remove"},t().createElement(g,{type:"xmark"})),t().createElement("span",null,e.name)))),t().createElement("li",{className:"tyk-combobox__search-box",style:{width:(null==l?void 0:l.length)?"auto":"100%"}},(void 0===i||(null==l?void 0:l.length){"Enter"===e.key&&e.preventDefault(),this.handleItemsNavigation(e)},onKeyUp:this.onKeyUp,placeholder:(null==l?void 0:l.length)?"":r,ref:this.inputRef,style:{width:(null==l?void 0:l.length)?`${s}px`:"100%"}}),t().createElement("span",{ref:this.textRef,style:{visbility:"hidden",position:"absolute",top:"-9999px"}},a)),e.length>0&&t().createElement(U,{className:"tyk-combobox--with-tags__button-down",iconType:"chevron-down",iconOnly:!0,onClick:this.handleComboboxDropdownClick}))):t().createElement("li",{className:"tyk-combobox__placeholder",onClick:this.handleComboboxDropdownClick,onKeyDown:()=>{}},this.getComboboxDisplayData(),t().createElement(g,{type:"chevron-down"})))}renderDropdown(e){const{tags:n}=this.props,{opened:o}=this.state;return t().createElement("ul",{className:this.getComboboxListCssClass(),ref:this.valuesListRef,style:this.getStyles()},n?null:t().createElement("li",{className:"combobox-search__container"},t().createElement("input",{autoFocus:o,className:"tyk-form-control",onKeyUp:this.onKeyUp,onKeyDown:this.handleItemsNavigation,key:"searchInput",ref:this.inputRef})),e.map(((e,n)=>t().createElement("li",{className:this.getListItemCssClasses(e,n),onClick:this.handleListItemClick.bind(this,n),onKeyDown:()=>{},key:e.id},this.getSelectedIndex(e)>-1?t().createElement(g,{type:"check"}):null,t().createElement("span",null," ",e.name)))))}render(){const{CustomListComponent:e,id:n,label:o,note:i}=this.props,{opened:r}=this.state,s=this.filterValues();return t().createElement(t().Fragment,null,t().createElement("div",{className:this.getCssClasses()},o?t().createElement("label",{htmlFor:n,style:this.getLabelStyles()},o):null,t().createElement("div",{className:"tyk-form-control__wrapper",style:this.getNonLabelWidth()},this.renderInput(s),i?t().createElement("p",{className:"tyk-form-control__help-block"},i):null,this.getInputError())),e?t().createElement(e,{ref:this.valuesListRef,className:this.getComboboxListCssClass(),getListItemCssClasses:this.getListItemCssClasses.bind(this),getSelectedIndex:this.getSelectedIndex.bind(this),filteredValues:s,handleListItemClick:this.handleListItemClick.bind(this)}):r&&s.length?dt().createPortal(this.renderDropdown(s),document.querySelector("body")):null)}}$r.propTypes={allowCustomValues:r().bool,CustomListComponent:r().elementType,searchItem:r().func,disabled:r().bool,error:r().string,id:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,multiple:r().bool,max:r().number,note:r().oneOfType([r().node,r().element,r().string]),onChange:r().func,placeholder:r().string,tags:r().bool,theme:r().string,value:r().oneOfType([r().string,r().instanceOf(Object),r().instanceOf(Array)]),values:r().instanceOf(Array)},$r.defaultProps={allowCustomValues:!0};const Sr=$r;function Er(n){const{value:o,max:i,tags:r,tagSeparators:s,addTagOnBlur:a,placeholder:l,disabled:c,renderValue:u,valueOverflow:h,focus:d,onMessage:p,readOnly:m}=n,f=(0,e.useRef)(null),y=(0,e.useRef)(null),[v,b]=(0,e.useState)(""),[w,x]=(0,e.useState)("70px");function k(e){if(s.some((t=>e.slice(-1)===t)))return;const t=y.current;t.innerHTML=e,x(`${Math.max(t.clientWidth,60)+10}px`),b(e),p("tag.input.change",e)}function C(){p("text-value.click")}function $(e,n=!1){if(m)return e||"-";const o=["tyk-combobox2__text-value",`overflow-${h}`,n&&"is-placeholder"].filter(Boolean).join(" ");return t().createElement("span",{className:o,title:"single"===h?e:void 0,role:"none",tabIndex:c?"-1":"0",onClick:C,onKeyDown:C},e)}function S(e){return u(e,{tags:r,tagSeparators:s,placeholder:l,disabled:c,renderValue:u,sendMessage:p})}return(0,e.useEffect)((()=>{d&&f.current&&f.current.focus()}),[d]),m?t().createElement("div",{className:"tyk-form-control--readonly"},$(o.map((e=>e.name)).join(", "))):r?t().createElement(t().Fragment,null,o.map((function(e){return u?S(e):t().createElement(mn,{key:e.id,theme:"combobox"},t().createElement("button",{type:"button",onClick:t=>{t.stopPropagation(),p("tag.remove",e.id)},"aria-label":"remove"},t().createElement(g,{type:"times"})),t().createElement("span",{title:e.name},e.name))})),o.lengthk(e.target.value),onKeyDown:e=>{"Enter"===e.key&&e.preventDefault(),function(e,t){if(r){if(""!==t||"Backspace"!==e||!o.length)return"Enter"===e?(p("tag.input.enter",t),void k("")):void("ArrowUp"!==e?"ArrowDown"!==e?"Escape"!==e?s.includes(e)&&(p("tag.add",t),k("")):p("tag.input.escape"):p("tag.input.arrowDown"):p("tag.input.arrowUp"));p("tag.remove",o[o.length-1].id)}}(e.key,e.target.value)},onFocus:()=>p("tag.input.focus"),onBlur:e=>{p("tag.input.blur",e.target.value),a&&k("")}}),t().createElement("span",{ref:y,style:{visbility:"hidden",position:"absolute",top:"-9999px"}}))):u?0===o.length?$(l,!0):o.map(S):0===o.length?$(l,!0):$(o.map((e=>e.name)).join(", "))}Er.propTypes={value:r().instanceOf(Array),max:r().number,tags:r().instanceOf(Array),tagSeparators:r().instanceOf(Array),addTagOnBlur:r().bool,placeholder:r().string,disabled:r().bool,renderValue:r().func,valueOverflow:r().string,focus:r().bool,onMessage:r().func,readOnly:r().bool};const Or=Er;function Tr(n){const{listRef:o,tags:i,values:r,searchValue:s,activeItem:a,onMessage:l,renderListItem:c,selectAll:u,showSearch:h}=n;return(0,e.useEffect)((()=>{if(!o.current)return;const e=o.current.querySelector(".active");e&&e.scrollIntoView({block:"end"})}),[a]),t().createElement(t().Fragment,null,!i&&h&&t().createElement("div",{className:"tyk-combobox2__combobox-search"},t().createElement("input",{autoFocus:!0,className:"tyk-form-control",value:s,onChange:e=>l("search.change",e.target.value),onKeyDown:e=>{"Escape"===e.key&&l("search.escape"),"ArrowUp"===e.key&&l("search.arrowUp"),"ArrowDown"===e.key&&l("search.arrowDown"),"Enter"===e.key&&l("search.enter")}})),r.length>0&&t().createElement("ul",{ref:o,className:"tyk-combobox2__combobox-list"},Boolean(u)&&function(){var e,n,o;const i=r.every((e=>e.selected)),s=r.every((e=>!e.selected)),a=null!=(e=null==u?void 0:u.label)?e:"Select All",c=null!=(n=null==u?void 0:u.mode)?n:"select",h=null!=(o=null==u?void 0:u.show)?o:"always",d=null==u?void 0:u.render;return"always"!==h&&("select"===c?i:s)?null:d?d({label:a,mode:c,show:h,isAllSelected:i,isNoneSelected:s},l):t().createElement("li",{onClick:()=>l("value.select-all","select"===c?!i:s),onKeyDown:()=>{}},("select"===c?i:s)&&t().createElement(g,{type:"check"}),a)}(),r.map((function(e){return c?c(e,{tags:i,searchValue:s,sendMessage:l,activeItem:a}):t().createElement("li",{key:e.id,title:e.name,className:[e.disabled&&"disabled",a&&e.id===a.id&&"active"].filter(Boolean).join(" "),onClick:()=>!e.disabled&&l("value.select",{item:e}),onKeyDown:()=>{}},e.selected&&t().createElement(g,{type:"check"}),t().createElement("span",{className:"item-name"},e.name))}))))}Tr.propTypes={listRef:r().instanceOf(Object),tags:r().bool,values:r().instanceOf(Array),searchValue:r().string,activeItem:r().instanceOf(Object),onMessage:r().func,renderListItem:r().func,selectAll:r().oneOfType([r().bool,r().shape({label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),mode:r().oneOf(["select","unselect"]),show:r().oneOf(["always","notSameState"]),render:r().func})]),showSearch:r().bool};const Ar=Tr;var _r=Object.defineProperty,Lr=Object.defineProperties,Mr=Object.getOwnPropertyDescriptors,Rr=Object.getOwnPropertySymbols,Nr=Object.prototype.hasOwnProperty,Ir=Object.prototype.propertyIsEnumerable,Pr=(e,t,n)=>t in e?_r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Dr=(e,t)=>{for(var n in t||(t={}))Nr.call(t,n)&&Pr(e,n,t[n]);if(Rr)for(var n of Rr(t))Ir.call(t,n)&&Pr(e,n,t[n]);return e},Fr=(e,t)=>Lr(e,Mr(t));function Br(n){var o=n,{value:i,values:r=[],valueOverflow:s="single",label:a="",labelwidth:l,tags:c=!1,tagSeparators:u=[" ","Enter"],addTagOnBlur:h=!1,max:d,multiple:p=!1,placeholder:m="",theme:f,note:y="",error:v="",disabled:b=!1,readOnly:w=!1,allowCustomValues:x=!0,searchItem:k,renderValue:C,renderListItem:$,renderList:S,CustomListComponent:E,onBeforeChange:O=(()=>!0),onChange:T=(()=>{}),floatingContainerConfig:A,expandMode:_,infiniteScrollerConfig:L,displayDropdownTrigger:M=!0,selectAll:R,closeOnSelect:N,showSearch:I=!1,required:P=!1,validateOnChange:D=(()=>{}),wrapperClassName:F=""}=o,B=((e,t)=>{var n={};for(var o in e)Nr.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Rr)for(var o of Rr(e))t.indexOf(o)<0&&Ir.call(e,o)&&(n[o]=e[o]);return n})(o,["value","values","valueOverflow","label","labelwidth","tags","tagSeparators","addTagOnBlur","max","multiple","placeholder","theme","note","error","disabled","readOnly","allowCustomValues","searchItem","renderValue","renderListItem","renderList","CustomListComponent","onBeforeChange","onChange","floatingContainerConfig","expandMode","infiniteScrollerConfig","displayDropdownTrigger","selectAll","closeOnSelect","showSearch","required","validateOnChange","wrapperClassName"]);const W=(0,e.useMemo)((()=>p?1/0:d||(c?1/0:1)),[p,d,c]),H=E?(e,{sendMessage:n})=>t().createElement(E,{filteredValues:e,handleListItemClick:t=>n("value.select",{item:e[t]})}):S,j=(0,e.useRef)(null),z=(0,e.useRef)(null),V=(0,e.useRef)(null),U=(0,e.useRef)(null),[G,K]=(0,e.useState)(jr(i,r)),[q,Y]=(0,e.useState)(r.map((e=>Hr(e)))),[J,X]=(0,e.useState)(""),[Q,Z]=(0,e.useState)(null),[ee,te]=(0,e.useState)(!1),[ne,oe]=(0,e.useState)(!1),[ie,re]=(0,e.useState)("");function se(){return(f?f.split(" "):[]).map((e=>`tyk-form-group--${e}`))}function ae(){const e=k||((e,t)=>{var n,o;return null==(o=null==(n=null==e?void 0:e.name)?void 0:n.toLowerCase())?void 0:o.includes(t)});return q.filter((t=>e(t,J.toLowerCase())))}function le(){te(!0)}function ce(){te(!1),c||ue(""),Z(null)}function ue(e){X(e),Q&&ae().every((e=>e.id!==Q.id))&&Z(null),e&&!ee&&le()}function he(e,t){const n=D(e,t);return re(n),void 0===n}function de(e){K(e),T(1!==W||c?e:e[0]||null)}function pe(e){if(!e)return;if(G.length>=W)return;if(G.some((({name:t})=>t===e)))return;const t=q.findIndex((t=>t.name===e));let n,o,i=[...G];-1===t?x&&(n={id:e,name:e},i=[...G,n]):(o=[...q.slice(0,t),Fr(Dr({},q[t]),{selected:!0}),...q.slice(t+1)],n=q[t],i=[...G,q[t]]),he(i,n)&&O(G,i)&&(o&&Y(o),de(i))}function ge({id:e}){const t=q.find((t=>t.id===e)),n=q.findIndex((t=>t.id===e));let o=G,i=q;t.selected?P&&1===W||(o=G.filter((e=>e.id!==t.id)),i=q.with(n,Fr(Dr({},t),{selected:!1}))):G.lengthFr(Dr({},e),{selected:e.id===t.id})))),he(o,t)&&O(G,o)&&(de(o),Y(i)),(1===W||N)&&ce()}function me(e){if(q.length>W)return;const t=e?[...q]:[];O(G,t)&&(de(t),Y(q.map((t=>Fr(Dr({},t),{selected:e})))),N&&ce())}function fe(){const e=ae().filter((e=>!e.disabled));if(0===e.length)return;if(null===Q||1===e.length)return void Z(e[e.length-1]);const t=e.findIndex((e=>e.id===Q.id));Z(e[t>0?t-1:e.length-1])}function ye(){const e=ae().filter((e=>!e.disabled));if(0===e.length)return;if(null===Q||1===e.length)return void Z(e[0]);const t=e.findIndex((e=>e.id===Q.id));Z(e[tt.id===e)),n=G.filter((t=>t.id!==e));O(G,n)&&(-1!==t&&Y([...q.slice(0,t),Fr(Dr({},q[t]),{selected:!1}),...q.slice(t+1)]),de(n))}(t),"input.change"===e&&ue(t),"input.enter"===e&&(Q?ge(Q):u.includes("Enter")&&(pe(t),ue(""))),"input.arrowUp"===e&&(le(),fe()),"input.arrowDown"===e&&(le(),ye()),"input.escape"===e&&ce(),"input.blur"===e&&h&&(pe(t),ue("")),"input.focus"===e&&le()}const xe=(0,e.useCallback)(((e,t)=>{e.startsWith("tag.")&&we(e.slice(4),t),"value.select"===e&&ge(t.item),"value.select-all"===e&&me(t),"text-value.click"===e&&le(),"search.change"===e&&ue(t),"search.escape"===e&&ce(),"search.arrowUp"===e&&fe(),"search.arrowDown"===e&&ye(),"search.enter"===e&&Q&&ge(Q)}),[we,ge,me,le,ue,ce,fe,ye]),ke=(0,e.useCallback)((()=>_?t().createElement(g,{type:ne?"chevron-down":"chevron-up"}):t().createElement(g,{type:"chevron-down"})),[_,ne]);(0,e.useEffect)((()=>(window.addEventListener("click",be,!0),()=>window.removeEventListener("click",be,!0))),[]),(0,e.useEffect)((()=>{if(r.length){const e=r.map((e=>Fr(Dr({},Hr(e)),{selected:G.some((t=>t.id===e.id))})));Y(e),K((t=>t.map((t=>e.find((e=>e.id===t.id))||t))))}else q.length&&Y([])}),[r]),(0,e.useEffect)((()=>{const e=jr(i,q);K(e),Y((t=>t.map((t=>Fr(Dr({},Hr(t)),{selected:e.some((e=>e.id===t.id))})))))}),[i]),(0,e.useEffect)((()=>{if(!_)return()=>{};const e=z.current.querySelector(".tyk-combobox2__current-values"),t=()=>{e.scrollTop=e.scrollHeight},n=new MutationObserver(t),o=new ResizeObserver(t);return n.observe(e,{attributes:!0,childList:!0,subtree:!0}),o.observe(e),()=>{n.disconnect(),o.disconnect()}}));const Ce=ae(),$e=["tyk-combobox2__current-values",_&&"expand-mode","tyk-combobox2__current-values--"+(ne?"expanded":"collapsed")].join(" ");return t().createElement("div",Fr(Dr({ref:j,tabIndex:b?"-1":"0",onClickCapture:function(e){if(!b)return;if(!_)return void e.stopPropagation();const t=j.current.querySelector(".tyk-combobox2__values-container-trigger");t&&(t===e.target||t.contains(e.target)||e.stopPropagation())}},B),{className:[F,"tyk-form-group","tyk-combobox2",...se(),(v||ie)&&"has-error",l&&"tyk-form-group--label-has-width",b&&"disabled",_&&"is-expand-mode"].filter(Boolean).join(" ")}),a&&t().createElement("label",{style:{flexBasis:l||"auto"}},a),!w&&t().createElement("div",{className:"tyk-form-control__wrapper",style:{flexBasis:`calc(100% - ${l} - 20px)`}},t().createElement("div",{className:"tyk-form-control",ref:z},t().createElement("div",{className:$e,onClick:le,role:"none"},t().createElement(Or,{value:G,max:W,tags:c,tagSeparators:u,addTagOnBlur:h,allowCustomValues:x,placeholder:m,disabled:b,valueOverflow:s,renderValue:C,focus:ee,onMessage:xe,readOnly:w})),M&&t().createElement("div",{className:"tyk-combobox2__values-container-trigger"+(ne?" tyk-combobox2__values-container-trigger--expanded":""),role:"button",tabIndex:b?-1:0,onClick:ve,onKeyDown:ve},ke())),ee&&(!c||Ce.length>0)&&t().createElement(Pt,Fr(Dr({element:z,size:"matchElement",className:`tyk-combobox2__combobox-dropdown tyk-form-group ${se().join(" ")}`,ref:V,displayAxis:"vertical"},A),{infiniteScrollerConfig:L}),H?H(Ce,{tags:c,searchValue:J,activeItem:Q,listRef:U,sendMessage:xe}):t().createElement(Ar,{listRef:U,showSearch:I,values:Ce,tags:c,searchValue:J,activeItem:Q,onMessage:xe,renderListItem:$,selectAll:R})),y&&t().createElement("p",{className:"tyk-form-control__help-block"},y),(v&&"true"!==v&&"false"!==v||Boolean(ie))&&t().createElement("p",{className:"tyk-form-control__error-message"},v||ie)),w&&t().createElement("div",null,t().createElement(Or,{value:G,tags:c,renderValue:C,readOnly:w})))}Br.propTypes={allowCustomValues:r().bool,CustomListComponent:r().elementType,searchItem:r().func,renderValue:r().func,renderListItem:r().func,renderList:r().func,disabled:r().bool,readOnly:r().bool,error:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,max:r().number,multiple:r().bool,note:r().oneOfType([r().node,r().element,r().string]),onBeforeChange:r().func,onChange:r().func,placeholder:r().string,tags:r().bool,tagSeparators:r().arrayOf(r().string),addTagOnBlur:r().bool,theme:r().string,value:r().oneOfType([r().string,r().instanceOf(Array),r().instanceOf(Object)]),values:r().instanceOf(Array),floatingContainerConfig:r().instanceOf(Object),valueOverflow:r().oneOf(["single","multiple"]),expandMode:r().bool,infiniteScrollerConfig:r().instanceOf(Object),displayDropdownTrigger:r().bool,selectAll:r().oneOfType([r().bool,r().shape({label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),mode:r().oneOf(["select","unselect"]),show:r().oneOf(["always","notSameState"]),render:r().func})]),closeOnSelect:r().bool,showSearch:r().bool,required:r().bool,validateOnChange:r().func,wrapperClassName:r().string};const Wr=Br;function Hr(e,t){let n=e;if("string"==typeof e?n={id:e,name:e}:e.hasOwnProperty("name")||(n=Fr(Dr({},e),{name:e.id})),!t)return n;const o=t.find((e=>e.id===n.id));return o?Dr(Dr({},n),o):n}function jr(e,t){return e?Array.isArray(e)?e.map((e=>Hr(e,t))):[Hr(e,t)]:[]}const zr=require("flatpickr");var Vr=n.n(zr),Ur=Object.defineProperty,Gr=Object.defineProperties,Kr=Object.getOwnPropertyDescriptors,qr=Object.getOwnPropertySymbols,Yr=Object.prototype.hasOwnProperty,Jr=Object.prototype.propertyIsEnumerable,Xr=(e,t,n)=>t in e?Ur(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Qr({children:n,disabled:o,readOnly:i=!1,error:r,id:s,label:a,labelwidth:l,note:c,onClose:u,onChange:h,onOpen:d,theme:p,config:m={},value:f,wrapperClassName:y=""}){const[v,b]=(0,e.useState)(null),w=(0,e.useRef)(null),x=me(f),k=(0,e.useCallback)(((e,t)=>{if(!e)return!0;if(!Array.isArray(t))return e.getTime()!==t.getTime();let n=t;return e&&t.length&&e.length?(n=t.filter(((t,n)=>t.getTime()!==e[n].getTime())),n.length>0):t.length>0}),[]),C=(0,e.useCallback)((e=>{const t="range"===m.mode?e:e[0]||null;h&&("range"===m.mode?2===t.length&&k(x,t)&&h(t):h(t))}),[x,h,k]);(0,e.useEffect)((()=>{if(w.current&&!v){const t=Vr()(w.current,(e=((e,t)=>{for(var n in t||(t={}))Yr.call(t,n)&&Xr(e,n,t[n]);if(qr)for(var n of qr(t))Jr.call(t,n)&&Xr(e,n,t[n]);return e})({},m),Gr(e,Kr({defaultDate:f,onChange:C,onClose:u,onOpen:d}))));b(t)}var e;return()=>{v&&v.destroy()}}),[v]),(0,e.useEffect)((()=>{if(v){let e=f;"string"==typeof f?e=new Date(f):Array.isArray(f)&&(e=f.map((e=>new Date(e)))),k(x,e)&&(v.set("onChange",C),"range"===m.mode?e&&2===e.length&&v.setDate(e,!0):v.setDate(e,!0))}}),[x,f,v]);const $=["tyk-form-group","tyk-form-group--addon-right",y,...p?p.split(" ").map((e=>`tyk-form-group--${e}`)):[],l&&"tyk-form-group--label-has-width",r&&"has-error"].filter(Boolean).join(" "),S=(0,e.useCallback)((()=>{v&&v.open()}),[v]);return t().createElement(t().Fragment,null,(null==n?void 0:n.length)?n({openCalendar:S,ref:w}):t().createElement("div",{className:$},a?t().createElement("label",{htmlFor:s,style:l?{flexBasis:l}:{}},a):null,!i&&t().createElement("div",{className:"tyk-form-control__wrapper flatpickr",style:l?{flexBasis:`calc(100% - ${l} - 20px)`}:{}},t().createElement("div",{className:"tyk-input-group"},(()=>{let e={},n={};return(null==m?void 0:m.inline)&&(e={height:0,padding:0,width:0,visibility:"hidden"},n={display:"none"}),t().createElement(t().Fragment,null,t().createElement("input",{disabled:o,className:"tyk-form-control","data-input":!0,type:"date",ref:w,style:e}),t().createElement("div",{className:"tyk-input-group__addon",onClick:S,role:"button",onKeyUp:()=>{},tabIndex:0,style:n,"aria-label":"show calendar"},t().createElement(g,{type:"calendar"})))})()),c?t().createElement("p",{className:"tyk-form-control__help-block"},c):null,r&&"true"!==r&&"false"!==r?t().createElement("p",{className:"tyk-form-control__error-message"},r):null)),t().createElement("div",{className:"tyk-form-control--readonly"},i&&!f&&"-",i&&f&&Vr().formatDate(f,m.dateFormat||"d/m/Y")))}Qr.propTypes={config:r().instanceOf(Object),children:r().oneOfType([r().element,r().node,r().string,r().func]),disabled:r().bool,readOnly:r().bool,id:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,note:r().string,onChange:r().oneOfType([r().func,r().instanceOf(Array)]),onClose:r().oneOfType([r().func,r().instanceOf(Array)]),onOpen:r().oneOfType([r().func,r().instanceOf(Array)]),theme:r().string,error:r().string,value:r().oneOfType([r().instanceOf(Array),r().instanceOf(Object),r().string]),wrapperClassName:r().string};const Zr=Qr;function es(e){return es="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},es(e)}function ts(e,t){if(t.length1?"s":"")+" required, but only "+t.length+" present")}function ns(e){return ts(1,arguments),e instanceof Date||"object"===es(e)&&"[object Date]"===Object.prototype.toString.call(e)}function os(e){ts(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||"object"===es(e)&&"[object Date]"===t?new Date(e.getTime()):"number"==typeof e||"[object Number]"===t?new Date(e):("string"!=typeof e&&"[object String]"!==t||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn((new Error).stack)),new Date(NaN))}function is(e){if(null===e||!0===e||!1===e)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function rs(e){ts(1,arguments);var t=os(e),n=t.getUTCDay(),o=(n<1?7:0)+n-1;return t.setUTCDate(t.getUTCDate()-o),t.setUTCHours(0,0,0,0),t}function ss(e){ts(1,arguments);var t=os(e),n=t.getUTCFullYear(),o=new Date(0);o.setUTCFullYear(n+1,0,4),o.setUTCHours(0,0,0,0);var i=rs(o),r=new Date(0);r.setUTCFullYear(n,0,4),r.setUTCHours(0,0,0,0);var s=rs(r);return t.getTime()>=i.getTime()?n+1:t.getTime()>=s.getTime()?n:n-1}var as={};function ls(){return as}function cs(e,t){var n,o,i,r,s,a,l,c;ts(1,arguments);var u=ls(),h=is(null!==(n=null!==(o=null!==(i=null!==(r=null==t?void 0:t.weekStartsOn)&&void 0!==r?r:null==t||null===(s=t.locale)||void 0===s||null===(a=s.options)||void 0===a?void 0:a.weekStartsOn)&&void 0!==i?i:u.weekStartsOn)&&void 0!==o?o:null===(l=u.locale)||void 0===l||null===(c=l.options)||void 0===c?void 0:c.weekStartsOn)&&void 0!==n?n:0);if(!(h>=0&&h<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var d=os(e),p=d.getUTCDay(),g=(p=1&&p<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var g=new Date(0);g.setUTCFullYear(h+1,0,p),g.setUTCHours(0,0,0,0);var m=cs(g,t),f=new Date(0);f.setUTCFullYear(h,0,p),f.setUTCHours(0,0,0,0);var y=cs(f,t);return u.getTime()>=m.getTime()?h+1:u.getTime()>=y.getTime()?h:h-1}function hs(e,t){for(var n=e<0?"-":"",o=Math.abs(e).toString();o.length0?n:1-n;return hs("yy"===t?o%100:o,t.length)},ps=function(e,t){var n=e.getUTCMonth();return"M"===t?String(n+1):hs(n+1,2)},gs=function(e,t){return hs(e.getUTCDate(),t.length)},ms=function(e,t){return hs(e.getUTCHours()%12||12,t.length)},fs=function(e,t){return hs(e.getUTCHours(),t.length)},ys=function(e,t){return hs(e.getUTCMinutes(),t.length)},vs=function(e,t){return hs(e.getUTCSeconds(),t.length)},bs=function(e,t){var n=t.length,o=e.getUTCMilliseconds();return hs(Math.floor(o*Math.pow(10,n-3)),t.length)};var ws={G:function(e,t,n){var o=e.getUTCFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(o,{width:"abbreviated"});case"GGGGG":return n.era(o,{width:"narrow"});default:return n.era(o,{width:"wide"})}},y:function(e,t,n){if("yo"===t){var o=e.getUTCFullYear(),i=o>0?o:1-o;return n.ordinalNumber(i,{unit:"year"})}return ds(e,t)},Y:function(e,t,n,o){var i=us(e,o),r=i>0?i:1-i;return"YY"===t?hs(r%100,2):"Yo"===t?n.ordinalNumber(r,{unit:"year"}):hs(r,t.length)},R:function(e,t){return hs(ss(e),t.length)},u:function(e,t){return hs(e.getUTCFullYear(),t.length)},Q:function(e,t,n){var o=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"Q":return String(o);case"QQ":return hs(o,2);case"Qo":return n.ordinalNumber(o,{unit:"quarter"});case"QQQ":return n.quarter(o,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(o,{width:"narrow",context:"formatting"});default:return n.quarter(o,{width:"wide",context:"formatting"})}},q:function(e,t,n){var o=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"q":return String(o);case"qq":return hs(o,2);case"qo":return n.ordinalNumber(o,{unit:"quarter"});case"qqq":return n.quarter(o,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(o,{width:"narrow",context:"standalone"});default:return n.quarter(o,{width:"wide",context:"standalone"})}},M:function(e,t,n){var o=e.getUTCMonth();switch(t){case"M":case"MM":return ps(e,t);case"Mo":return n.ordinalNumber(o+1,{unit:"month"});case"MMM":return n.month(o,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(o,{width:"narrow",context:"formatting"});default:return n.month(o,{width:"wide",context:"formatting"})}},L:function(e,t,n){var o=e.getUTCMonth();switch(t){case"L":return String(o+1);case"LL":return hs(o+1,2);case"Lo":return n.ordinalNumber(o+1,{unit:"month"});case"LLL":return n.month(o,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(o,{width:"narrow",context:"standalone"});default:return n.month(o,{width:"wide",context:"standalone"})}},w:function(e,t,n,o){var i=function(e,t){ts(1,arguments);var n=os(e),o=cs(n,t).getTime()-function(e,t){var n,o,i,r,s,a,l,c;ts(1,arguments);var u=ls(),h=is(null!==(n=null!==(o=null!==(i=null!==(r=null==t?void 0:t.firstWeekContainsDate)&&void 0!==r?r:null==t||null===(s=t.locale)||void 0===s||null===(a=s.options)||void 0===a?void 0:a.firstWeekContainsDate)&&void 0!==i?i:u.firstWeekContainsDate)&&void 0!==o?o:null===(l=u.locale)||void 0===l||null===(c=l.options)||void 0===c?void 0:c.firstWeekContainsDate)&&void 0!==n?n:1),d=us(e,t),p=new Date(0);return p.setUTCFullYear(d,0,h),p.setUTCHours(0,0,0,0),cs(p,t)}(n,t).getTime();return Math.round(o/6048e5)+1}(e,o);return"wo"===t?n.ordinalNumber(i,{unit:"week"}):hs(i,t.length)},I:function(e,t,n){var o=function(e){ts(1,arguments);var t=os(e),n=rs(t).getTime()-function(e){ts(1,arguments);var t=ss(e),n=new Date(0);return n.setUTCFullYear(t,0,4),n.setUTCHours(0,0,0,0),rs(n)}(t).getTime();return Math.round(n/6048e5)+1}(e);return"Io"===t?n.ordinalNumber(o,{unit:"week"}):hs(o,t.length)},d:function(e,t,n){return"do"===t?n.ordinalNumber(e.getUTCDate(),{unit:"date"}):gs(e,t)},D:function(e,t,n){var o=function(e){ts(1,arguments);var t=os(e),n=t.getTime();t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0);var o=n-t.getTime();return Math.floor(o/864e5)+1}(e);return"Do"===t?n.ordinalNumber(o,{unit:"dayOfYear"}):hs(o,t.length)},E:function(e,t,n){var o=e.getUTCDay();switch(t){case"E":case"EE":case"EEE":return n.day(o,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(o,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(o,{width:"short",context:"formatting"});default:return n.day(o,{width:"wide",context:"formatting"})}},e:function(e,t,n,o){var i=e.getUTCDay(),r=(i-o.weekStartsOn+8)%7||7;switch(t){case"e":return String(r);case"ee":return hs(r,2);case"eo":return n.ordinalNumber(r,{unit:"day"});case"eee":return n.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(i,{width:"short",context:"formatting"});default:return n.day(i,{width:"wide",context:"formatting"})}},c:function(e,t,n,o){var i=e.getUTCDay(),r=(i-o.weekStartsOn+8)%7||7;switch(t){case"c":return String(r);case"cc":return hs(r,t.length);case"co":return n.ordinalNumber(r,{unit:"day"});case"ccc":return n.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(i,{width:"narrow",context:"standalone"});case"cccccc":return n.day(i,{width:"short",context:"standalone"});default:return n.day(i,{width:"wide",context:"standalone"})}},i:function(e,t,n){var o=e.getUTCDay(),i=0===o?7:o;switch(t){case"i":return String(i);case"ii":return hs(i,t.length);case"io":return n.ordinalNumber(i,{unit:"day"});case"iii":return n.day(o,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(o,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(o,{width:"short",context:"formatting"});default:return n.day(o,{width:"wide",context:"formatting"})}},a:function(e,t,n){var o=e.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(o,{width:"narrow",context:"formatting"});default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},b:function(e,t,n){var o,i=e.getUTCHours();switch(o=12===i?"noon":0===i?"midnight":i/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(o,{width:"narrow",context:"formatting"});default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},B:function(e,t,n){var o,i=e.getUTCHours();switch(o=i>=17?"evening":i>=12?"afternoon":i>=4?"morning":"night",t){case"B":case"BB":case"BBB":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(o,{width:"narrow",context:"formatting"});default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},h:function(e,t,n){if("ho"===t){var o=e.getUTCHours()%12;return 0===o&&(o=12),n.ordinalNumber(o,{unit:"hour"})}return ms(e,t)},H:function(e,t,n){return"Ho"===t?n.ordinalNumber(e.getUTCHours(),{unit:"hour"}):fs(e,t)},K:function(e,t,n){var o=e.getUTCHours()%12;return"Ko"===t?n.ordinalNumber(o,{unit:"hour"}):hs(o,t.length)},k:function(e,t,n){var o=e.getUTCHours();return 0===o&&(o=24),"ko"===t?n.ordinalNumber(o,{unit:"hour"}):hs(o,t.length)},m:function(e,t,n){return"mo"===t?n.ordinalNumber(e.getUTCMinutes(),{unit:"minute"}):ys(e,t)},s:function(e,t,n){return"so"===t?n.ordinalNumber(e.getUTCSeconds(),{unit:"second"}):vs(e,t)},S:function(e,t){return bs(e,t)},X:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();if(0===i)return"Z";switch(t){case"X":return ks(i);case"XXXX":case"XX":return Cs(i);default:return Cs(i,":")}},x:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();switch(t){case"x":return ks(i);case"xxxx":case"xx":return Cs(i);default:return Cs(i,":")}},O:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+xs(i,":");default:return"GMT"+Cs(i,":")}},z:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+xs(i,":");default:return"GMT"+Cs(i,":")}},t:function(e,t,n,o){var i=o._originalDate||e;return hs(Math.floor(i.getTime()/1e3),t.length)},T:function(e,t,n,o){return hs((o._originalDate||e).getTime(),t.length)}};function xs(e,t){var n=e>0?"-":"+",o=Math.abs(e),i=Math.floor(o/60),r=o%60;if(0===r)return n+String(i);var s=t||"";return n+String(i)+s+hs(r,2)}function ks(e,t){return e%60==0?(e>0?"-":"+")+hs(Math.abs(e)/60,2):Cs(e,t)}function Cs(e,t){var n=t||"",o=e>0?"-":"+",i=Math.abs(e);return o+hs(Math.floor(i/60),2)+n+hs(i%60,2)}const $s=ws;var Ss=function(e,t){switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},Es=function(e,t){switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},Os={p:Es,P:function(e,t){var n,o=e.match(/(P+)(p+)?/)||[],i=o[1],r=o[2];if(!r)return Ss(e,t);switch(i){case"P":n=t.dateTime({width:"short"});break;case"PP":n=t.dateTime({width:"medium"});break;case"PPP":n=t.dateTime({width:"long"});break;default:n=t.dateTime({width:"full"})}return n.replace("{{date}}",Ss(i,t)).replace("{{time}}",Es(r,t))}};const Ts=Os;var As=["D","DD"],_s=["YY","YYYY"];function Ls(e,t,n){if("YYYY"===e)throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("YY"===e)throw new RangeError("Use `yy` instead of `YY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("D"===e)throw new RangeError("Use `d` instead of `D` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("DD"===e)throw new RangeError("Use `dd` instead of `DD` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))}var Ms={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function Rs(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}var Ns,Is={date:Rs({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:Rs({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:Rs({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},Ps={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function Ds(e){return function(t,n){var o;if("formatting"===(null!=n&&n.context?String(n.context):"standalone")&&e.formattingValues){var i=e.defaultFormattingWidth||e.defaultWidth,r=null!=n&&n.width?String(n.width):i;o=e.formattingValues[r]||e.formattingValues[i]}else{var s=e.defaultWidth,a=null!=n&&n.width?String(n.width):e.defaultWidth;o=e.values[a]||e.values[s]}return o[e.argumentCallback?e.argumentCallback(t):t]}}function Fs(e){return function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=n.width,i=o&&e.matchPatterns[o]||e.matchPatterns[e.defaultMatchWidth],r=t.match(i);if(!r)return null;var s,a=r[0],l=o&&e.parsePatterns[o]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(l)?function(e,t){for(var n=0;n0?"in "+o:o+" ago":o},formatLong:Is,formatRelative:function(e,t,n,o){return Ps[e]},localize:{ordinalNumber:function(e,t){var n=Number(e),o=n%100;if(o>20||o<10)switch(o%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:Ds({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:Ds({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:Ds({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:Ds({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:Ds({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(Ns={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(e){return parseInt(e,10)}},function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.match(Ns.matchPattern);if(!n)return null;var o=n[0],i=e.match(Ns.parsePattern);if(!i)return null;var r=Ns.valueCallback?Ns.valueCallback(i[0]):i[0];return{value:r=t.valueCallback?t.valueCallback(r):r,rest:e.slice(o.length)}}),era:Fs({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:Fs({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:Fs({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:Fs({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:Fs({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};var Ws=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Hs=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,js=/^'([^]*?)'?$/,zs=/''/g,Vs=/[a-zA-Z]/;function Us(e,t,n){var o,i,r,s,a,l,c,u,h,d,p,g,m,f,y,v,b,w;ts(2,arguments);var x=String(t),k=ls(),C=null!==(o=null!==(i=null==n?void 0:n.locale)&&void 0!==i?i:k.locale)&&void 0!==o?o:Bs,$=is(null!==(r=null!==(s=null!==(a=null!==(l=null==n?void 0:n.firstWeekContainsDate)&&void 0!==l?l:null==n||null===(c=n.locale)||void 0===c||null===(u=c.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==a?a:k.firstWeekContainsDate)&&void 0!==s?s:null===(h=k.locale)||void 0===h||null===(d=h.options)||void 0===d?void 0:d.firstWeekContainsDate)&&void 0!==r?r:1);if(!($>=1&&$<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var S=is(null!==(p=null!==(g=null!==(m=null!==(f=null==n?void 0:n.weekStartsOn)&&void 0!==f?f:null==n||null===(y=n.locale)||void 0===y||null===(v=y.options)||void 0===v?void 0:v.weekStartsOn)&&void 0!==m?m:k.weekStartsOn)&&void 0!==g?g:null===(b=k.locale)||void 0===b||null===(w=b.options)||void 0===w?void 0:w.weekStartsOn)&&void 0!==p?p:0);if(!(S>=0&&S<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!C.localize)throw new RangeError("locale must contain localize property");if(!C.formatLong)throw new RangeError("locale must contain formatLong property");var E=os(e);if(!function(e){if(ts(1,arguments),!ns(e)&&"number"!=typeof e)return!1;var t=os(e);return!isNaN(Number(t))}(E))throw new RangeError("Invalid time value");var O=function(e){var t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e.getTime()-t.getTime()}(E),T=function(e,t){return ts(2,arguments),function(e,t){ts(2,arguments);var n=os(e).getTime(),o=is(t);return new Date(n+o)}(e,-is(t))}(E,O),A={firstWeekContainsDate:$,weekStartsOn:S,locale:C,_originalDate:E};return x.match(Hs).map((function(e){var t=e[0];return"p"===t||"P"===t?(0,Ts[t])(e,C.formatLong):e})).join("").match(Ws).map((function(o){if("''"===o)return"'";var i,r,s=o[0];if("'"===s)return(r=(i=o).match(js))?r[1].replace(zs,"'"):i;var a,l=$s[s];if(l)return null!=n&&n.useAdditionalWeekYearTokens||(a=o,-1===_s.indexOf(a))||Ls(o,t,String(e)),null!=n&&n.useAdditionalDayOfYearTokens||!function(e){return-1!==As.indexOf(e)}(o)||Ls(o,t,String(e)),l(T,o,C.localize,A);if(s.match(Vs))throw new RangeError("Format string contains an unescaped latin alphabet character `"+s+"`");return o})).join("")}var Gs=n(590),Ks=n.n(Gs),qs=Object.defineProperty,Ys=Object.defineProperties,Js=Object.getOwnPropertyDescriptors,Xs=Object.getOwnPropertySymbols,Qs=Object.prototype.hasOwnProperty,Zs=Object.prototype.propertyIsEnumerable,ea=(e,t,n)=>t in e?qs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ta=(e,t)=>{for(var n in t||(t={}))Qs.call(t,n)&&ea(e,n,t[n]);if(Xs)for(var n of Xs(t))Zs.call(t,n)&&ea(e,n,t[n]);return e};class na extends e.Component{static getMainFormValue(e){const t=new Array(e.length);return e.forEach(((e,n)=>{t[n]=e.props.value||void 0})),t}constructor(t){super(t);const{components:n}=t;this.submitButtonRef=(0,e.createRef)(),this.handleOnChange=this.handleOnChange.bind(this),this.submitForm=this.submitForm.bind(this),this.state={components:n,errors:{},mainError:null,mainFormValue:na.getMainFormValue(n),refs:[]}}componentDidMount(){const{addValueOnFieldChange:e,getMainFormButtonWidth:t}=this.props;this.createRefs(),t&&t(e?0:this.submitButtonRef.current.clientWidth)}static getDerivedStateFromProps(e,t){const n={},{components:o}=e,{components:i}=t;return Ks()(o,i)||Ks()(na.getMainFormValue(o),na.getMainFormValue(i))||(n.mainFormValue=na.getMainFormValue(o),n.components=o),n}handleOnChange(e,t,n){const{addValueOnFieldChange:o}=this.props;let i=this.state;i=ta(ta({},i),this.validateValue(n,e.props)),i.errors[e.props.name]||(i.mainFormValue[t]=n,e.props.onChange&&e.props.onChange(n)),this.setState((e=>ta(ta({},e),i)),(()=>{o&&this.submitForm()}))}getFormCssClasses(){const{noLabels:e}=this.props,t=["tyk-editable-list__form"];return e&&t.push("no-labels"),t.join(" ")}getButtonClassName(){const{buttonStyle:e,displayType:t}=this.props,n=[];return e&&n.push(e),t&&n.push(t),n.join(" ")}getComponentsError(e){const{error:t,errors:n,mainError:o}=this.state;return t||o?n[e.props.name]="true":t||o||"true"!==n[e.props.name]||delete n[e.props.name],n[e.props.name]?n[e.props.name].toString():void 0}createRefs(){const{components:t}=this.props,n=[];t.forEach((()=>{n.push((0,e.createRef)())})),this.setState({refs:n})}validateValue(e,t){const{mainError:n,errors:o}=this.state,{error:i,errorPersist:r}=this.props,s=t.validate?Object.keys(t.validate):[],a={errors:i||n?{}:ta({},o)};let l=!0;if(r)return a;for(const n of s)if((0,t.validate[n])(e)){a.errors[t.name]=t.validationmessages[n],l=!1;break}return l&&delete a.errors[t.name],a.mainError=null,a}hasMainFormErrors(e){const{components:t,errorPersist:n}=this.props,{mainFormValue:o}=this.state,i={errors:ta({},e)};return(!n||-1!==o.indexOf(void 0))&&(Object.keys(i.errors).length>0||(t.forEach(((e,t)=>{i.errors=ta(ta({},i.errors),this.validateValue(o[t],e.props).errors)})),Object.keys(i.errors).length>0))}resetForm(){const{refs:e}=this.state,{components:t}=this.props;e.forEach((e=>{var t;(null==(t=e.current)?void 0:t.reset)&&e.current.reset()})),this.setState({errors:{},mainError:null,mainFormValue:na.getMainFormValue(t)})}showMainError(e){this.setState({mainError:e})}submitForm(){const{errors:e,mainFormValue:t}=this.state,{errorPersist:n,onSubmit:o,validate:i,validationmessage:r}=this.props;n&&(o(t),this.resetForm()),0===Object.keys(e).length&&o&&"function"==typeof o&&(i&&i(t)?this.showMainError(r):(o(t),this.resetForm()))}render(){const{addValueOnFieldChange:e,components:n,buttonName:o,disabled:i,displayType:r,error:s}=this.props,{mainError:a,refs:l,errors:c}=this.state;return t().createElement("div",null,t().createElement("div",{className:this.getFormCssClasses()},t().createElement(yi,null,n.map(((e,n)=>{const o=e.name;console.log("ComponentName",o);const s=e.props,{onChange:a,value:c}=s,u=((e,t)=>{var n={};for(var o in e)Qs.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Xs)for(var o of Xs(e))t.indexOf(o)<0&&Zs.call(e,o)&&(n[o]=e[o]);return n})(s,["onChange","value"]);return t().createElement(li,{size:`md-${e.size||"12"} lg-${e.size||"12"}`,key:e.props.name},t().createElement(o,(h=ta({disabled:i||e.props.disabled,onChange:this.handleOnChange.bind(this,e,n)},u),d={label:"inline"===r?"":e.props.label,error:this.getComponentsError(e),ref:l[n],value:c},Ys(h,Js(d)))));var h,d}))),e?null:t().createElement("span",{className:this.getButtonClassName(),ref:this.submitButtonRef},t().createElement(U,{disabled:this.hasMainFormErrors(c),className:"tyk-editable-list__submit-btn",onClick:this.submitForm,theme:"default",type:"button",size:"inline"===r?"sm":"md"},o||"ADD"))),s||a?t().createElement("div",{className:"tyk-editable-list-main-error"},t().createElement("p",{className:"error-message"},s||a)):null)}}na.propTypes={addValueOnFieldChange:r().bool,noLabels:r().bool,buttonName:r().string,buttonStyle:r().string,components:r().instanceOf(Array),displayType:r().string,disabled:r().bool,getMainFormButtonWidth:r().func,error:r().string,errorPersist:r().bool,onSubmit:r().func,validate:r().func,validationmessage:r().string};const oa=na;var ia=Object.defineProperty,ra=Object.getOwnPropertySymbols,sa=Object.prototype.hasOwnProperty,aa=Object.prototype.propertyIsEnumerable,la=(e,t,n)=>t in e?ia(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ca=(e,t)=>{for(var n in t||(t={}))sa.call(t,n)&&la(e,n,t[n]);if(ra)for(var n of ra(t))aa.call(t,n)&&la(e,n,t[n]);return e};class ua extends e.Component{static getItemListValue(e){let t=null;return"string"==typeof e&&(t=e),"[object Object]"===Object.prototype.toString.call(e)&&(t=e.name),ns(e)&&(t=Us(e,"dd/MM/yyyy")),t}static getListItemCssClass(e){const t=[];return"inline"===e&&t.push("tyk-editable-list-item--inline"),t.join(" ")}constructor(t){super(t);const{value:n}=this.props;this.state={initialValue:n||"",value:n||[],buttonWidth:0},this.startIndex=1,this.handleFormSubmit=this.handleFormSubmit.bind(this),this.getMainFormButtonWidth=this.getMainFormButtonWidth.bind(this),this.dropdownListItemRef=(0,e.createRef)()}static getDerivedStateFromProps(e,t){const n={};return e.value&&JSON.stringify(e.value)!==JSON.stringify(t.initialValue)&&(n.value=e.value||[],n.initialValue=e.value||""),n.value?n:null}handleFormSubmit(e){const t=this.addValues(e);this.setState((e=>ca(ca({},e),t)),(()=>{this.triggerOnChange(t.value.length-1,null,e)}))}handleItemUpdate(e,t){let n;this.setState((o=>{const i=ca({},o);return n=(0,pe.fromJS)(i.value[e].value).toJS(),i.value[e].value=t,i.value[e].editMode=!1,i}),(()=>{this.triggerOnChange(e,n,t)}))}handleChildrenOnChange(e,t){let n;this.setState((o=>{const i=ca({},o);return n=(0,pe.fromJS)(i.value[e].children).toJS(),i.value[e].children=t,i}),(()=>{this.triggerOnChange(e,n,t)}))}getListItemsCssClass(e){const{config:t}=this.props,n=["tyk-editable-list-items"];return n.push(t.displayType||"table"),"inline"===e&&n.push("tyk-editable-list-items--inline"),n.join(" ")}getFormInputKey(){return this.startIndex+=1,this.startIndex}getListItemText(e){const{config:n}=this.props;let o=null;switch(n.displayType){case"list":case"inline":o=e.value.reduce(((t,n,o)=>{const i=ua.getItemListValue(n);let r=", ";return o===e.value.length-1&&(r=""),t+i+r}),"");break;default:o=t().createElement(yi,null,n.components.map(((n,o)=>t().createElement(li,{key:this.getFormInputKey(),size:`md-${n.size} lg-${n.size}`},ua.getItemListValue(e.value[o])))))}return o}getMainFormButtonWidth(e){this.setState({buttonWidth:e})}setItemEditMode(e){const t=this.closeListItems();this.setState((n=>{const o=ca({},n);return o.value=t,o.value[e].editMode=!o.value[e].editMode,o}))}isInList(e,t){const{value:n}=this.state;let o=!1;return n.forEach(((n,i)=>{JSON.stringify(n.value)===JSON.stringify(t)&&(o=!(e>=0&&i===e))})),o}addValues(e){const{value:t}=this.state,{config:n}=this.props,o={editMode:!1,value:e},i={value:t.slice(0)};return n.children&&(o.children=[]),i.value.push(o),i}removeListItem(e){let t;this.setState((n=>{const o=n.value.slice(0);return t=o.splice(e,1),{value:o}}),(()=>{this.triggerOnChange(e,t,null)}))}closeListItems(){const{value:e}=this.state;return e.map((e=>{const t=ca({},e);return t.editMode?(t.editMode=!1,t):t}))}triggerOnChange(e,t,n){const{onChange:o}=this.props,{value:i}=this.state;o&&"function"==typeof o&&o(i.length?i:null,e,t,n)}genListItem(e,n){var o;const{config:i,disabled:r}=this.props,{buttonWidth:s,value:a}=this.state,l=(0,pe.fromJS)(i.components).toJS();return e.value.forEach(((e,t)=>{l[t].props.value=e})),t().createElement("li",{key:n,className:ua.getListItemCssClass(i.displayType),ref:this.dropdownListItemRef},t().createElement("div",{className:`tyk-editable-list-item__text ${i.displayType||"table"}${e.editMode?" edit-mode-wrapper":""}`},e.editMode?t().createElement(t().Fragment,null,t().createElement(oa,{buttonName:"Update",noLabels:i.noLabels,disabled:r,displayType:i.displayType,components:l,onSubmit:this.handleItemUpdate.bind(this,n),validate:this.isInList.bind(this,n),validationmessage:"This value is already in the list"}),t().createElement("button",{type:"button",className:"tyk-editable-list-action__button on-edit",onClick:this.removeListItem.bind(this,n),"aria-label":"remove"},t().createElement(g,{type:"trash"}))):t().createElement(t().Fragment,null,this.getListItemText(e,n),t().createElement("div",{className:"tyk-editable-list-item__controls",style:{display:"block",width:"inline"===i.displayType?"auto":`${s+60}px`}},t().createElement("button",{disabled:r,type:"button",className:"tyk-editable-list-action__button",onClick:this.setItemEditMode.bind(this,n),"aria-label":"edit"},t().createElement(g,{type:"edit"})),t().createElement("button",{disabled:r,type:"button",className:"tyk-editable-list-action__button",onClick:this.removeListItem.bind(this,n),"aria-label":"remove"},t().createElement(g,{type:"trash"}))))),i.children?t().createElement(ua,{disabled:r,onChange:this.handleChildrenOnChange.bind(this,n),config:i.children.config,value:(null==(o=a[n])?void 0:o.children)||[]}):null)}genList(){const{config:e}=this.props,{buttonWidth:n,value:o}=this.state;return o&&0!==o.length?t().createElement(t().Fragment,null,"table"!==e.displayType&&e.displayType?null:t().createElement("div",{className:"tyk-editable-list__header",style:{paddingRight:`${n+60}px`}},t().createElement(yi,null,e.components.map(((e,n)=>t().createElement(li,{key:e.props.label||n,size:`md-${e.size||12} lg-${e.size||12}`},e.props.label))))),t().createElement("ul",{className:this.getListItemsCssClass(e.displayType)},o.map(((e,t)=>this.genListItem(e,t))))):null}render(){const{addValueOnFieldChange:e,config:n,error:o,disabled:i,label:r}=this.props,s=document.querySelector(n.appendTo)||document.querySelector("body");return t().createElement("div",{className:"tyk-editable-list"},r?t().createElement("label",null,r):null,t().createElement(oa,{addValueOnFieldChange:e,components:n.components,buttonName:n.formButtonTitle,buttonStyle:n.formButtonStyle,disabled:i,error:o,errorPersist:!!o,noLabels:n.noLabels,onSubmit:this.handleFormSubmit,validate:this.isInList.bind(this,-1),validationmessage:"This value is already in the list",getMainFormButtonWidth:this.getMainFormButtonWidth}),n.appendTo?dt().createPortal(this.genList(),s):this.genList())}}ua.propTypes={addValueOnFieldChange:r().bool,disabled:r().bool,error:r().string,config:r().instanceOf(Object),onChange:r().func,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),value:r().oneOfType([r().instanceOf(Array),r().instanceOf(Object)])};const ha=ua;function da({label:e,addButtonName:n,onAddRow:o,disabled:i,readOnly:r}){return t().createElement("div",{className:"editable-list__header"},e?t().createElement("label",null,e):null,!i&&!r&&t().createElement(U,{theme:"primary rounded-corners",onClick:o},n||"Add"))}da.propTypes={disabled:r().bool,readOnly:r().bool,onAddRow:r().func,addButtonName:r().string,label:r().oneOfType([r().string,r().element,r().node])};const pa=da;function ga({fields:e,readOnly:n}){return t().createElement("li",{className:"editable-list__item editable-list__item-header"},e.map((e=>{var n,o;return t().createElement("div",{key:(null==(n=null==e?void 0:e.props)?void 0:n.label)||JSON.stringify(e),className:`editable-list__item-cell editable-list__item--size-${(null==e?void 0:e.size)||12}`},null==(o=null==e?void 0:e.props)?void 0:o.label)})),t().createElement("div",{className:`editable-list__item-cell editable-list__item-action ${n&&"editable-list__item-action--read-only"}`},"Delete"))}ga.propTypes={fields:r().instanceOf(Array),readOnly:r().bool};const ma=ga;var fa=Object.defineProperty,ya=Object.defineProperties,va=Object.getOwnPropertyDescriptors,ba=Object.getOwnPropertySymbols,wa=Object.prototype.hasOwnProperty,xa=Object.prototype.propertyIsEnumerable,ka=(e,t,n)=>t in e?fa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Ca({fields:e,disabled:n,readOnly:o,errors:i,components:r,onChange:s,onDelete:a,value:l,rowIndex:c}){return t().createElement("li",{className:"editable-list__item"},r.map(((r,a)=>{var u,h,d;const p=e[a],g="function"==typeof p?p(c,a):p;return t().createElement("div",{key:`${c}-${a}`,className:`editable-list__item-cell editable-list__item--size-${(null==(u=e[a])?void 0:u.size)||12}`},t().createElement(r,(m=((e,t)=>{for(var n in t||(t={}))wa.call(t,n)&&ka(e,n,t[n]);if(ba)for(var n of ba(t))xa.call(t,n)&&ka(e,n,t[n]);return e})({},null==g?void 0:g.props),f={label:"",value:l[a],onChange:s.bind(null,a),error:null==i?void 0:i[a],disabled:n||(null==(h=null==g?void 0:g.props)?void 0:h.disabled),readOnly:o||(null==(d=null==g?void 0:g.props)?void 0:d.readOnly)},ya(m,va(f)))));var m,f})),t().createElement("div",{className:`editable-list__item-cell editable-list__item-action ${o&&"editable-list__item-action--read-only"}`},t().createElement(U,{iconOnly:!0,iconType:"trash",theme:"primary-link",onClick:a,disabled:o||n})))}Ca.propTypes={disabled:r().bool,readOnly:r().bool,rowIndex:r().oneOfType([r().string,r().number]),fields:r().instanceOf(Array),errors:r().instanceOf(Array),components:r().instanceOf(Array),value:r().instanceOf(Array),onChange:r().func,onDelete:r().func};const $a=Ca;var Sa=Object.defineProperty,Ea=Object.defineProperties,Oa=Object.getOwnPropertyDescriptors,Ta=Object.getOwnPropertySymbols,Aa=Object.prototype.hasOwnProperty,_a=Object.prototype.propertyIsEnumerable,La=(e,t,n)=>t in e?Sa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;let Ma=1;function Ra({addButtonName:n,disabled:o,readOnly:i,fields:r,label:s,error:a,value:l=[],onChange:c=(()=>{}),hideOnEmpty:u=!0,wrapperClassName:h=""}){const[d,p]=(0,e.useState)(null),g=(e,t,n,o)=>{var i;const s=l?[...l]:[];if(l){const o=[...s[e]];o[t]=n,s[e]=o,s[e].id=l[e].id}else s[e]=[...new Array(r.length)],s[e][t]=n;if((null==(i=null==d?void 0:d[e])?void 0:i[t])&&o){const n=[...d],o=[...n[e]];o[t]=null,n[e]=o,p(n)}c(s)},m=(0,e.useMemo)((()=>r.map((n=>{const o="function"==typeof n?n():n;return i=(null==o?void 0:o.component)||null,n=>{var o=n,{onChange:r,validate:s,error:a}=o,l=((e,t)=>{var n={};for(var o in e)Aa.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ta)for(var o of Ta(e))t.indexOf(o)<0&&_a.call(e,o)&&(n[o]=e[o]);return n})(o,["onChange","validate","error"]);const[c,u]=(0,e.useState)(null),h=(0,e.useCallback)((e=>{const t=(null==e?void 0:e.target)?["radio","checkbox"].includes(e.target.type)?e.target.checked:null==e?void 0:e.target.value:e;let n=!0;if(s&&"function"==typeof s){const e=s(t);n=!e,u(e)}r(t,n)}),[s,r]);return t().createElement(i,(d=((e,t)=>{for(var n in t||(t={}))Aa.call(t,n)&&La(e,n,t[n]);if(Ta)for(var n of Ta(t))_a.call(t,n)&&La(e,n,t[n]);return e})({},l),Ea(d,Oa({onChange:h,error:c||a}))));var d};var i}))),[]),f=e=>{if(!l)return;const t=[...l];t.splice(e,1),c(t)};return t().createElement("div",{className:`editable-list__wrapper tyk-form-group tyk-form-group--default ${a?"has-error":""} ${h}`},t().createElement(pa,{disabled:o,readOnly:i,label:s,addButtonName:n,onAddRow:()=>{const e=((e,t)=>{var n;return null==(n=t||[[void 0,void 0]])?void 0:n.map((t=>null==t?void 0:t.map(((t,n)=>{var o,i;return null==(i=(o=e[n].props).validate)?void 0:i.call(o,t)}))))})(r,l);if((e=>{var t;return Boolean(null==(t=null==e?void 0:e.flat())?void 0:t.filter(Boolean).length)})(e))return void p(e);const t=[...new Array(r.length)];t.id="row-"+Ma++,c([...l,t])}}),(null==l?void 0:l.length)||!u?t().createElement("ul",{className:"editable-list__list"},(l||[[]]).map(((e,n)=>t().createElement($a,{key:e.id||n,rowIndex:n,disabled:o,readOnly:i,fields:r,onChange:g.bind(null,n),onDelete:f.bind(null,n),value:e,errors:null==d?void 0:d[n],components:m}))),t().createElement(ma,{fields:r,readOnly:i})):null,a&&"true"!==a&&"false"!==a?t().createElement("p",{className:"tyk-form-control__error-message"},a):null)}Ra.propTypes={disabled:r().bool,readOnly:r().bool,addButtonName:r().string,label:r().oneOfType([r().string,r().element,r().node]),fields:r().instanceOf(Array),onChange:r().func,value:r().oneOfType([r().instanceOf(Object),r().instanceOf(Array)]),error:r().string,hideOnEmpty:r().bool,wrapperClassName:r().string};const Na=Ra;var Ia=Object.defineProperty,Pa=Object.defineProperties,Da=Object.getOwnPropertyDescriptors,Fa=Object.getOwnPropertySymbols,Ba=Object.prototype.hasOwnProperty,Wa=Object.prototype.propertyIsEnumerable,Ha=(e,t,n)=>t in e?Ia(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function ja(n){var o=n,{error:i,theme:r,labelwidth:s,wrapperClassName:a="",id:l,label:c,note:u,accept:h,value:d,onChange:p}=o,m=((e,t)=>{var n={};for(var o in e)Ba.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Fa)for(var o of Fa(e))t.indexOf(o)<0&&Wa.call(e,o)&&(n[o]=e[o]);return n})(o,["error","theme","labelwidth","wrapperClassName","id","label","note","accept","value","onChange"]);const f=(0,e.useRef)();return t().createElement("div",{className:function(){const e=[a,"tyk-form-group"],t=r?r.split(" "):[];return t.length&&t.forEach((t=>{e.push(`tyk-form-group--${t}`)})),s&&e.push("tyk-form-group--label-has-width"),i&&e.push("has-error"),e.join(" ")}()},c?t().createElement("label",{htmlFor:l,style:function(){const e={};return s&&(e.flexBasis=s),e}()},c):null,t().createElement("div",{className:"tyk-form-control__wrapper"},t().createElement("div",{className:"tyk-file-input__wrapper",style:function(){const e={};return s&&(e.flexBasis=`calc(100% - ${s} - 20px)`),e}()},t().createElement("input",(y=((e,t)=>{for(var n in t||(t={}))Ba.call(t,n)&&Ha(e,n,t[n]);if(Fa)for(var n of Fa(t))Wa.call(t,n)&&Ha(e,n,t[n]);return e})({accept:h,className:"tyk-form-control"},m),Pa(y,Da({onChange:function(e){p(e.target.files)},ref:f,type:"file"})))),f.current&&f.current.files.length>0?t().createElement("button",{onClick:function(){f.current.value="",p("")},type:"button","aria-label":"clear value"},t().createElement(g,{type:"xmark"})):null),u?t().createElement("p",{className:"tyk-form-control__help-block"},u):null),i&&"true"!==i&&"false"!==i?t().createElement("p",{className:"tyk-form-control__error-message"},i):null);var y}ja.propTypes={accept:r().string,disabled:r().bool,id:r().string,error:r().oneOfType([r().string,r().bool]),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,placeholder:r().string,theme:r().string,value:r().instanceOf(Object),wrapperClassName:r().string};const za=ja;var Va=Object.defineProperty,Ua=Object.defineProperties,Ga=Object.getOwnPropertyDescriptors,Ka=Object.getOwnPropertySymbols,qa=Object.prototype.hasOwnProperty,Ya=Object.prototype.propertyIsEnumerable,Ja=(e,t,n)=>t in e?Va(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Xa extends e.Component{static getAddon(e){return t().createElement("div",{className:"tyk-input-group__addon"},e)}constructor(e){super(e);const{value:t}=this.props;this.state={initValue:t,stateValue:t},this.handleOnChange=this.handleOnChange.bind(this)}componentDidUpdate(e){const{isfield:t,value:n,onChange:o}=this.props;t||e.value===n||this.setState({stateValue:n},(()=>{o&&o(n)}))}handleOnChange(e){const{onChange:t,isfield:n}=this.props,o=e.target.value;n?t(o):this.setState({stateValue:o},(()=>{t&&t(o)}))}getLabelStyles(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=e),t}getNonLabelWidth(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=`calc(100% - ${e} - 20px)`),t}getInputError(){const{error:e}=this.props;return e&&"true"!==e&&"false"!==e?t().createElement("p",{className:"tyk-form-control__error-message"},e):null}getCssClasses(){const{error:e,theme:t,labelwidth:n,inputgroupaddonleft:o,inputgroupaddonright:i}=this.props,r=["tyk-form-group"],s=t?t.split(" "):[];return s.length&&s.forEach((e=>{r.push(`tyk-form-group--${e}`)})),o&&r.push("tyk-form-group--addon-left"),i&&r.push("tyk-form-group--addon-right"),n&&r.push("tyk-form-group--label-has-width"),e&&r.push("has-error"),r.join(" ")}getInputGroupAddon(){const{inputgroupaddonleft:e,inputgroupaddonright:n}=this.props;return t().createElement("div",{className:"tyk-input-group"},e?Xa.getAddon(e):null,this.getInputComponent(),n?Xa.getAddon(n):null)}getInputComponent(){const e=this.props,{isfield:n,onChange:o,value:i}=e,r=((e,t)=>{var n={};for(var o in e)qa.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ka)for(var o of Ka(e))t.indexOf(o)<0&&Ya.call(e,o)&&(n[o]=e[o]);return n})(e,["isfield","onChange","value"]),{stateValue:s}=this.state;return t().createElement("input",(a=((e,t)=>{for(var n in t||(t={}))qa.call(t,n)&&Ja(e,n,t[n]);if(Ka)for(var n of Ka(t))Ya.call(t,n)&&Ja(e,n,t[n]);return e})({autoComplete:"off",className:"tyk-form-control"},r),l={onChange:this.handleOnChange,value:n?i:s},Ua(a,Ga(l))));var a,l}reset(){const{initValue:e}=this.state;this.setState({stateValue:e})}render(){const{label:e,id:n,inputgroupaddonleft:o,inputgroupaddonright:i,note:r,readOnly:s,value:a}=this.props;return t().createElement("div",{className:this.getCssClasses()},e?t().createElement("label",{htmlFor:n,style:this.getLabelStyles()},e):null,!s&&t().createElement("div",{className:"tyk-form-control__wrapper",style:this.getNonLabelWidth()},o||i?this.getInputGroupAddon():this.getInputComponent(),r?t().createElement("p",{className:"tyk-form-control__help-block"},r):null,this.getInputError()),s&&t().createElement("div",{className:"tyk-form-control--readonly"},a||"-"))}}Xa.propTypes={disabled:r().bool,readOnly:r().bool,id:r().string,isfield:r().bool,error:r().oneOfType([r().string,r().bool]),inputgroupaddonleft:r().oneOfType([r().element,r().node,r().string]),inputgroupaddonright:r().oneOfType([r().element,r().node,r().string]),label:r().oneOfType([r().string,r().element,r().node]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,placeholder:r().string,theme:r().string,value:r().oneOfType([r().number,r().string])};const Qa=Xa;var Za=Object.defineProperty,el=Object.defineProperties,tl=Object.getOwnPropertyDescriptors,nl=Object.getOwnPropertySymbols,ol=Object.prototype.hasOwnProperty,il=Object.prototype.propertyIsEnumerable,rl=(e,t,n)=>t in e?Za(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,sl=(e,t)=>{for(var n in t||(t={}))ol.call(t,n)&&rl(e,n,t[n]);if(nl)for(var n of nl(t))il.call(t,n)&&rl(e,n,t[n]);return e};function al(n,o){var i=n,{error:r,onChange:s,readOnly:a,id:l,inputgroupaddonleft:c,inputgroupaddonright:u,label:h,labelwidth:d,note:p,theme:g,value:m,wrapperClassName:f=""}=i,y=((e,t)=>{var n={};for(var o in e)ol.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&nl)for(var o of nl(e))t.indexOf(o)<0&&il.call(e,o)&&(n[o]=e[o]);return n})(i,["error","onChange","readOnly","id","inputgroupaddonleft","inputgroupaddonright","label","labelwidth","note","theme","value","wrapperClassName"]);const v=(0,e.useRef)();(0,e.useImperativeHandle)(o,(()=>({focus:()=>{v.current.focus()}})));const b=e=>t().createElement("div",{className:"tyk-input-group__addon"},e),w=e=>{s(e,e.target.value)},x=()=>{return t().createElement("input",(e=sl({autoComplete:"off",className:"tyk-form-control"},y),el(e,tl({onChange:w,value:m,ref:v}))));var e};return t().createElement("div",{className:(()=>{const e=[f,"tyk-form-group"],t=g?g.split(" "):[];return t.length&&t.forEach((t=>{e.push(`tyk-form-group--${t}`)})),c&&e.push("tyk-form-group--addon-left"),u&&e.push("tyk-form-group--addon-right"),d&&e.push("tyk-form-group--label-has-width"),r&&e.push("has-error"),e.join(" ")})()},h?t().createElement("label",{htmlFor:l,style:sl({},d&&{flexBasis:d})},h):null,!a&&t().createElement("div",{className:"tyk-form-control__wrapper",style:sl({},d&&{flexBasis:`calc(100% - ${d} - 20px)`})},c||u?t().createElement("div",{className:"tyk-input-group"},c?b(c):null,x(),u?b(u):null):x(),p?t().createElement("p",{className:"tyk-form-control__help-block"},p):null,r&&"true"!==r&&"false"!==r?t().createElement("p",{className:"tyk-form-control__error-message"},r):null),a&&t().createElement("div",{className:"tyk-form-control--readonly"},m||"-"))}al.propTypes={disabled:r().bool,readOnly:r().bool,id:r().string,error:r().oneOfType([r().string,r().bool]),inputgroupaddonleft:r().oneOfType([r().element,r().node,r().string]),inputgroupaddonright:r().oneOfType([r().element,r().node,r().string]),label:r().oneOfType([r().string,r().element,r().node]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,placeholder:r().string,theme:r().string,value:r().oneOfType([r().number,r().string]),wrapperClassName:r().string};const ll=(0,e.forwardRef)(al),cl=(0,e.createContext)();function ul({item:n,itemType:o,searchValue:i,onChange:r}){const s=(0,e.useCallback)((e=>(null==e?void 0:e.length)>0?e.some((e=>{var t;return null==(t=n[e])?void 0:t.includes(i)})):JSON.stringify(n).includes(i)),[n,i]),a=(0,e.useCallback)((()=>{r(n)}),[r,n]);return t().createElement(cl.Consumer,null,(e=>s(e.fieldsToSearchOn)?t().createElement("li",null,t().createElement("div",null,t().createElement("span",{className:"tyk-multiselect-item__name"},e.itemDisplayTemplate?e.itemDisplayTemplate(n):JSON.stringify(n)),t().createElement("span",{className:"tyk-multiselect-item__controls"},t().createElement(U,{iconType:"normal"===o?"plus":"minus",iconOnly:!0,onClick:a,disabled:e.disabled||e.maxSelections&&e.maxSelections===e.nrSelectedItems&&"normal"===o}),t().createElement(U,{iconType:e.opened[n.id]?"chevron-up":"chevron-down",iconOnly:!0,onClick:()=>e.onGetItemDetails(n)}))),n.details?t().createElement(R,{collapsed:!e.opened[n.id],className:"tyk-multiselect-item__details"},((e,t)=>e.detailsDisplayTemplate?e.detailsDisplayTemplate(t):JSON.stringify(t.details))(e,n)):((e,n)=>{const{opened:o}=e;return o[n.id]?t().createElement(ye,{position:"relative"}):null})(e,n)):null))}ul.propTypes={item:r().instanceOf(Object),itemType:r().string,searchValue:r().string,onChange:r().func};const hl=ul;function dl({inputPlaceholder:n,noItemsMessage:o,items:i,onCustomSearch:r,onChange:s,customSearch:a,panelType:l,serverLoad:c,itemsPageNumber:u,itemsNrPages:h,loadMoreItems:d}){const[p,m]=(0,e.useState)(""),f=(0,e.useRef)(0),y=(0,e.useRef)(),v=(0,e.useCallback)((e=>{r?r(e):m(e)}),[r]),b=(0,e.useCallback)((e=>{let t=structuredClone(i);t=t.filter((t=>e.id!==t.id)),s(t,e)}),[i]);function w(){return t().createElement("ul",{className:"tyk-multiselect__list"+(c?"":" tyk-multiselect__list--scroll"),ref:y},i.map((e=>t().createElement(hl,{itemType:l,key:(f.current+=1,f.current),onChange:b,searchValue:a?"":p,item:e}))))}return t().createElement("div",{className:"tyk-multiselect__panel"},t().createElement(Qa,{inputgroupaddonleft:t().createElement(g,{type:"magnifying-glass"}),name:"search",onChange:v,placeholder:n,value:p}),i.length?c?t().createElement(At,{refChild:y,hasMore:h>u,loadMore:d,pageNumber:u},w()):w():t().createElement(be,{theme:"info"},o))}dl.propTypes={customSearch:r().bool,onCustomSearch:r().func,panelType:r().string,onChange:r().func,items:r().instanceOf(Array),itemsPageNumber:r().number,itemsNrPages:r().number,inputPlaceholder:r().string,loadMoreItems:r().func,noItemsMessage:r().string,serverLoad:r().bool};const pl=dl;var gl=Object.defineProperty,ml=Object.defineProperties,fl=Object.getOwnPropertyDescriptors,yl=Object.getOwnPropertySymbols,vl=Object.prototype.hasOwnProperty,bl=Object.prototype.propertyIsEnumerable,wl=(e,t,n)=>t in e?gl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const xl=(e,t)=>t.filter((t=>!e.find((e=>e.id===t.id))));function kl({customSearch:n,entityNamePlural:o,disabled:i,error:r,getItemDetails:s,itemDisplayTemplate:a,detailsDisplayTemplate:l,fieldsToSearchOn:c,items:u,itemsPageNumber:h,itemsNrPages:d,loadMoreItems:p,maxSelections:g,note:m,value:f,onChange:y,wrapperClassName:v=""}){const[b,w]=(0,e.useState)({}),x=(0,e.useCallback)((e=>{w((t=>{return n=((e,t)=>{for(var n in t||(t={}))vl.call(t,n)&&wl(e,n,t[n]);if(yl)for(var n of yl(t))bl.call(t,n)&&wl(e,n,t[n]);return e})({},t),o={[e.id]:!t[e.id]},ml(n,fl(o));var n,o})),s&&s(e)}),[s]),k=(0,e.useCallback)((()=>[v,"tyk-multiselect",r&&"has-error"].filter(Boolean).join(" ")),[v,r]),C=(0,e.useCallback)(((e,t)=>{const n=structuredClone(f);n.unshift(t),y(n,t,"added")}),[f]),$=(0,e.useCallback)(((e,t)=>{y(e,t,"removed")}),[u]),S=(0,e.useMemo)((()=>({disabled:i,itemDisplayTemplate:a,detailsDisplayTemplate:l,fieldsToSearchOn:c,maxSelections:g,nrSelectedItems:f.length,onGetItemDetails:x,opened:b})),[i,a,l,c,g,f,x,b]);return t().createElement(t().Fragment,null,t().createElement("div",{className:k()},t().createElement(cl.Provider,{value:S},t().createElement("div",{className:"tyk-multiselect__header"},t().createElement("div",null,f.length," ","Selected"," ",o),t().createElement("div",null,"Select from existing",o)),t().createElement("div",{className:"tyk-multiselect__panel-wrapper"},t().createElement(pl,{inputPlaceholder:`Search through selected ${o}`,noItemsMessage:`Selected ${o} will show here`,items:f,onChange:$,panelType:"selected"}),t().createElement(pl,{inputPlaceholder:`Search existing ${o}`,noItemsMessage:`No ${o} to display`,entityNamePlural:o,customSearch:!!n,onCustomSearch:n,items:xl(f,u),onChange:C,serverLoad:!!p,loadMoreItems:p,itemsPageNumber:h,itemsNrPages:d,panelType:"normal"})))),t().createElement("div",null,m?t().createElement("p",{className:"tyk-form-control__help-block"},m):null),r&&"true"!==r&&"false"!==r?t().createElement("p",{className:"tyk-form-control__error-message"},r):null)}kl.propTypes={customSearch:r().func,disabled:r().bool,error:r().string,entityNamePlural:r().string,items:r().instanceOf(Array),itemDisplayTemplate:r().func,detailsDisplayTemplate:r().func,fieldsToSearchOn:r().instanceOf(Array),onChange:r().func,getItemDetails:r().func,itemsPageNumber:r().number,itemsNrPages:r().number,loadMoreItems:r().func,note:r().string,maxSelections:r().number,value:r().instanceOf(Array),wrapperClassName:r().string};const Cl=kl;var $l=Object.defineProperty,Sl=Object.defineProperties,El=Object.getOwnPropertyDescriptors,Ol=Object.getOwnPropertySymbols,Tl=Object.prototype.hasOwnProperty,Al=Object.prototype.propertyIsEnumerable,_l=(e,t,n)=>t in e?$l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ll=(e,t)=>{for(var n in t||(t={}))Tl.call(t,n)&&_l(e,n,t[n]);if(Ol)for(var n of Ol(t))Al.call(t,n)&&_l(e,n,t[n]);return e};function Ml(e){var n=e,{label:o,input:i,note:r,inline:s,nospace:a,theme:l="",disabled:c,readOnly:u,wrapperClassName:h=""}=n,d=((e,t)=>{var n={};for(var o in e)Tl.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ol)for(var o of Ol(e))t.indexOf(o)<0&&Al.call(e,o)&&(n[o]=e[o]);return n})(n,["label","input","note","inline","nospace","theme","disabled","readOnly","wrapperClassName"]);const p=[s?"tyk-radio--inline":"tyk-radio",h,a&&"no-margin",...l?l.split(" ").filter(Boolean).map((e=>`tyk-radio--theme-${e}`)):[],(u||c)&&"tyk-radio--is-disabled"].filter(Boolean).join(" ");return t().createElement("div",{className:p},t().createElement("label",null,t().createElement("input",(g=Ll(Ll({},i),d),Sl(g,El({type:"radio",disabled:u||c})))),o),r&&t().createElement("p",{className:"tyk-form-control__help-block"},r));var g}Ml.propTypes={disabled:r().bool,readOnly:r().bool,inline:r().bool,theme:r().string,input:r().instanceOf(Object),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),name:r().string,nospace:r().bool,value:r().string,note:r().oneOfType([r().string,r().element,r().node]),wrapperClassName:r().string};const Rl=Ml;var Nl=Object.defineProperty,Il=Object.defineProperties,Pl=Object.getOwnPropertyDescriptors,Dl=Object.getOwnPropertySymbols,Fl=Object.prototype.hasOwnProperty,Bl=Object.prototype.propertyIsEnumerable,Wl=(e,t,n)=>t in e?Nl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Hl(n){const o=n,{value:i,onChange:r,onBlur:s,isfield:a,label:l,labelwidth:c,id:u,note:h,readOnly:d,options:p,error:g,theme:m,wrapperClassName:f=""}=o,y=((e,t)=>{var n={};for(var o in e)Fl.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Dl)for(var o of Dl(e))t.indexOf(o)<0&&Bl.call(e,o)&&(n[o]=e[o]);return n})(o,["value","onChange","onBlur","isfield","label","labelwidth","id","note","readOnly","options","error","theme","wrapperClassName"]),[v,b]=(0,e.useState)(i);(0,e.useEffect)((()=>{a||v===i||(b(i),r&&r(i))}),[v,i]);const w=(0,e.useCallback)((e=>{const t=p.find((t=>t.id===e.target.value));a||b(t),r(t.id?t:null)}),[p,a,r]),x=(0,e.useCallback)((()=>{s&&s(i)}),[s]),k=(0,e.useCallback)((()=>g&&"true"!==g&&"false"!==g?t().createElement("p",{className:"tyk-form-control__error-message"},g):null),[g]),C=(0,e.useCallback)((()=>["tyk-form-group",f,...m?m.split(" ").map((e=>`tyk-form-group--${e}`)):[],c&&"tyk-form-group--label-has-width",g&&"has-error"].filter(Boolean).join(" ")),[f,m,c,g]),$=(0,e.useCallback)((()=>c?{flexBasis:c}:{}),[c]),S=(0,e.useCallback)((()=>c?{flexBasis:`calc(100% - ${c} - 20px)`}:{}),[c]),E=(0,e.useCallback)((()=>{const e=a&&i?i:v;return t().createElement("select",(n=((e,t)=>{for(var n in t||(t={}))Fl.call(t,n)&&Wl(e,n,t[n]);if(Dl)for(var n of Dl(t))Bl.call(t,n)&&Wl(e,n,t[n]);return e})({className:"tyk-form-control tyk-select"},y),o={onChange:w,onBlur:x,value:e?e.id:""},Il(n,Pl(o))),p.map((e=>t().createElement("option",{key:e.id,value:e.id},e.name))));var n,o}),[a,i,v,w,x,p,y]);return t().createElement("div",{className:C()},l?t().createElement("label",{htmlFor:u,style:$()},l):null,!d&&t().createElement("div",{className:"tyk-form-control__wrapper",style:S()},E(),h?t().createElement("p",{className:"tyk-form-control__help-block"},h):null,k()),d&&t().createElement("div",{className:"tyk-form-control--readonly"},i||"-"))}Hl.propTypes={disabled:r().bool,readOnly:r().bool,id:r().string,isfield:r().bool,error:r().oneOfType([r().string,r().bool]),options:r().instanceOf(Array),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,name:r().string,note:r().string,onBlur:r().func,onChange:r().func,placeholder:r().string,theme:r().string,value:r().oneOfType([r().string,r().object]),wrapperClassName:r().string};const jl=Hl;var zl=Object.defineProperty,Vl=Object.defineProperties,Ul=Object.getOwnPropertyDescriptors,Gl=Object.getOwnPropertySymbols,Kl=Object.prototype.hasOwnProperty,ql=Object.prototype.propertyIsEnumerable,Yl=(e,t,n)=>t in e?zl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Jl(e){const{checkboxalticon:n,items:o,itemTemplate:i,value:r,noItemsMessage:s="No items in the list",onChange:a,theme:l,primaryKey:c,wrapperClassName:u=""}=e,h=e=>{const t=structuredClone(r),n=t.findIndex((t=>JSON.stringify(t)===JSON.stringify(Array.isArray(t)?e.target.value.split(","):e.target.value)));if(e.target.checked&&-1===n){const n=e.target.value.split(","),o=n.length>1?n:e.target.value;t.push(o)}else!e.target.checked&&n>-1&&t.splice(n,1);a&&a(t)},d=e=>{const t=[];return n&&t.push("tyk-selectable-list__item--with-icon"),e&&t.push("tyk-selectable-list__item--active"),t.join(" ")};return t().createElement(jt,(p=((e,t)=>{for(var n in t||(t={}))Kl.call(t,n)&&Yl(e,n,t[n]);if(Gl)for(var n of Gl(t))ql.call(t,n)&&Yl(e,n,t[n]);return e})({},e),Vl(p,Ul({theme:l||"default",className:`tyk-selectable-list ${u}`}))),o.length?o.map(((e,o)=>{return t().createElement(jt.Item,{key:o,className:d(r.includes(e[c]))},t().createElement("label",null,t().createElement("div",{className:"tyk-selectable-list__item"},i?i(e):e.name),t().createElement("input",{type:"checkbox",checked:(s=r,a=e[c],Boolean(s.find((e=>JSON.stringify(a)===JSON.stringify(e))))),onChange:h.bind(e),value:e[c]}),n?t().createElement(g,{type:n}):null));var s,a})):t().createElement("li",{className:"tyk-selectable-list__no-items-message"},t().createElement(be,{theme:"info"},s)));var p}Jl.propTypes={items:r().instanceOf(Array),itemTemplate:r().oneOfType([r().node,r().element,r().string,r().func]),value:r().instanceOf(Array),onChange:r().func,primaryKey:r().string,noItemsMessage:r().string,checkboxalticon:r().oneOfType([r().node,r().element,r().string]),theme:r().string,wrapperClassName:r().string},Jl.defaultProps={items:[],primaryKey:"id",value:[]};const Xl=Jl;var Ql=Object.defineProperty,Zl=Object.getOwnPropertySymbols,ec=Object.prototype.hasOwnProperty,tc=Object.prototype.propertyIsEnumerable,nc=(e,t,n)=>t in e?Ql(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,oc=(e,t)=>{for(var n in t||(t={}))ec.call(t,n)&&nc(e,n,t[n]);if(Zl)for(var n of Zl(t))tc.call(t,n)&&nc(e,n,t[n]);return e};function ic(e){var n=e,{id:o,input:i,label:r,note:s,error:a,theme:l,labelwidth:c,value:u,readOnly:h,wrapperClassName:d}=n,p=((e,t)=>{var n={};for(var o in e)ec.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Zl)for(var o of Zl(e))t.indexOf(o)<0&&tc.call(e,o)&&(n[o]=e[o]);return n})(n,["id","input","label","note","error","theme","labelwidth","value","readOnly","wrapperClassName"]);const g=["tyk-form-group",d,...l?l.split(" ").map((e=>`tyk-form-group--${e}`)):[],c&&"tyk-form-group--label-has-width",a&&"has-error"].filter(Boolean).join(" ");return t().createElement("div",{className:g},r?t().createElement("label",{htmlFor:o,style:c?{flexBasis:c}:{}},r):null,!h&&t().createElement("div",{className:"tyk-form-control__wrapper",style:c?{flexBasis:`calc(100% - ${c} - 20px)`}:{}},t().createElement("textarea",oc(oc({className:"tyk-form-control"},p),i),u),s?t().createElement("p",{className:"tyk-form-control__help-block"},s):null,a&&"true"!==a&&"false"!==a?t().createElement("p",{className:"tyk-form-control__error-message"},a):null),h&&t().createElement("div",{className:"tyk-form-control--readonly"},u||"-"))}ic.propTypes={disabled:r().bool,readOnly:r().bool,input:r().instanceOf(Object),error:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,id:r().string,theme:r().string,value:r().string,wrapperClassName:r().string};const rc=ic,sc=(0,e.createContext)();class ac extends e.Component{static getNotchCssClasses(e){return["tyk-toggle__item-notch",`tyk-toggle__item-notch--${e.type}`].join(" ")}constructor(t){super(t),this.itemRef=(0,e.createRef)()}componentDidMount(){const{context:e,value:t}=this.props;e.value===t&&e.saveSelectedRef(this.itemRef)}componentDidUpdate(e){const{context:t,value:n}=this.props;e.context.value!==t.value&&t.value===n&&t.saveSelectedRef(this.itemRef)}onChange(e){const{context:t,value:n}=this.props,{disabled:o,readOnly:i}=t;o||i||t.onItemSelected("single"===t.type?!t.value:n,e)}render(){const{context:e,label:n,name:o,value:i}=this.props;return t().createElement("li",{className:"tyk-toggle__item "+(!e.value||"single"!==e.type&&e.value!==i?"":"tyk-toggle__item--active"),ref:this.itemRef},t().createElement("label",null,t().createElement("input",{type:"single"===e.type?"checkbox":"radio",name:o,checked:e.value===i,onChange:this.onChange.bind(this),value:i}),n?t().createElement("span",null,n):t().createElement("span",{className:"empty-toggle"}," "),"single"===e.type?t().createElement("span",{className:ac.getNotchCssClasses(e)}):null))}}ac.propTypes={context:r().instanceOf(Object),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),name:r().string,value:r().string};const lc=ac;var cc=Object.defineProperty,uc=Object.defineProperties,hc=Object.getOwnPropertyDescriptors,dc=Object.getOwnPropertySymbols,pc=Object.prototype.hasOwnProperty,gc=Object.prototype.propertyIsEnumerable,mc=(e,t,n)=>t in e?cc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function fc(e,n){var o=e,{children:i}=o,r=((e,t)=>{var n={};for(var o in e)pc.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&dc)for(var o of dc(e))t.indexOf(o)<0&&gc.call(e,o)&&(n[o]=e[o]);return n})(o,["children"]);return t().createElement(sc.Consumer,null,(e=>{return t().createElement(lc,(o=((e,t)=>{for(var n in t||(t={}))pc.call(t,n)&&mc(e,n,t[n]);if(dc)for(var n of dc(t))gc.call(t,n)&&mc(e,n,t[n]);return e})({},r),uc(o,hc({context:e,ref:n}))),i);var o}))}fc.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string])};const yc=(0,e.forwardRef)(fc);function vc({className:n,disabled:o,readOnly:i,size:r,theme:s,direction:a,onDark:l,wrapperClassName:c="",onChange:u,labelwidth:h,label:d,separated:p,children:g,type:m,value:f,error:y}){const[v,b]=(0,e.useState)(null),w=(0,e.useRef)(),x=(0,e.useRef)(),k=[c,n,"tyk-toggle",`tyk-toggle--disabled-${i||o}`,`tyk-toggle--${r||"md"}`,`tyk-toggle--${s}`,`tyk-toggle--${a}`,l&&"tyk-toggle--on-dark"].filter(Boolean).join(" "),C=(0,e.useCallback)(((e,t)=>{u&&u(e,t)}),[u]),$=(0,e.useCallback)((()=>h?{flexBasis:h}:{}),[h]),S=(0,e.useCallback)((()=>{if(!v||p)return{};const e=v.current.offsetWidth;return{left:v.current.getBoundingClientRect().left-x.current.getBoundingClientRect().left+4+"px",width:e-8+"px"}}),[v,p]),E=(0,e.useMemo)((()=>({disabled:o,readOnly:i,onItemSelected:C,saveSelectedRef:b,separated:p,type:m,value:f})),[o,i,C,p,m,f]);return t().createElement(t().Fragment,null,t().createElement("div",{className:k,ref:x},t().createElement(sc.Provider,{value:E},d?t().createElement("label",{className:"tyk-toggle__label",style:$()},d):null,t().createElement("ul",{className:`tyk-toggle__list tyk-toggle__list--${m} ${y&&"tyk-toggle__list--has-error"} tyk-toggle__list--${p?"separated":"not-separated"}`},g,"multiple"!==m||p?null:t().createElement("li",{className:"tyk-toggle__notch",ref:w,style:S()})))),y&&t().createElement("p",{className:"tyk-form-control__error-message"},y))}vc.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,disabled:r().bool,readOnly:r().bool,error:r().string,onChange:r().func,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,theme:r().string,type:r().string,size:r().string,separated:r().bool,direction:r().string,value:r().oneOfType([r().bool,r().string]),onDark:r().bool,wrapperClassName:r().string},vc.defaultProps={separated:!1,theme:"primary",type:"single",direction:"row"},vc.Item=yc;const bc=vc,wc={FORM_DEBOUNCE:200};function xc(e,t){wc[e]=t}const kc=wc;var Cc=Object.defineProperty,$c=Object.defineProperties,Sc=Object.getOwnPropertyDescriptors,Ec=Object.getOwnPropertySymbols,Oc=Object.prototype.hasOwnProperty,Tc=Object.prototype.propertyIsEnumerable,Ac=(e,t,n)=>t in e?Cc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,_c=(e,t)=>{for(var n in t||(t={}))Oc.call(t,n)&&Ac(e,n,t[n]);if(Ec)for(var n of Ec(t))Tc.call(t,n)&&Ac(e,n,t[n]);return e},Lc=(e,t)=>$c(e,Sc(t));function Mc(e,t){return t.split(/[\][.]/).filter(Boolean).reduce(((e,t)=>e?e[t]:e),e)}const Rc=(n,o)=>i=>{var r,s=i,{field:a,form:l}=s,c=((e,t)=>{var n={};for(var o in e)Oc.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ec)for(var o of Ec(e))t.indexOf(o)<0&&Tc.call(e,o)&&(n[o]=e[o]);return n})(s,["field","form"]);const u="number"==typeof kc.FORM_DEBOUNCE?kc.FORM_DEBOUNCE:200,[h,d]=(0,e.useState)(a.value),p=_c({getOnChangeProps:()=>({}),hasIsFieldProp:!1},o),g=(0,e.useCallback)((()=>{const e=e=>e();return!1===c.debounce||!1===kc.FORM_DEBOUNCE&&!c.debounce?e:function(e,t){let n;return(...o)=>{clearTimeout(n),n=setTimeout(e,t,...o)}}(e,"number"==typeof c.debounce?c.debounce:u)})(),[]),m=e=>{const t=(null==(n=e)?void 0:n.target)?"INPUT"!==n.target.nodeName||"checkbox"!==n.target.type&&"radio"!==n.target.type?n.target.value:n.target.checked:n;var n;const o=p.getOnChangeProps(t,a,l,c),i=o.value||c.value||t;g((()=>{"function"==typeof c.onChange&&c.onChange(i),a.onChange({target:_c({name:a.name,value:i},o)})})),d(i)},f=(Mc(l.touched,a.name)||Boolean(l.submitCount))&&Mc(l.errors,a.name),y="string"==typeof f?f:"";(0,e.useEffect)((()=>{d(a.value)}),[a.value]),(null==(r=l.status)?void 0:r.disabled)&&(c.disabled=!0);const v=_c({},c);return delete v.debounce,Object.hasOwn(v,"className")&&void 0===v.className&&delete v.className,Object.hasOwn(v,"children")&&void 0===v.children&&delete v.children,t().createElement(n,Lc(_c(_c(Lc(_c({},a),{error:y}),p.hasIsFieldProp?{isfield:!0}:{}),v),{checked:"string"==typeof c.value?a.value===c.value:a.value,onChange:m,value:h,input:{value:h,onChange:m}}))},Nc=Rc(Io,{getOnChangeProps:e=>({checked:e})}),Ic=Rc(gr),Pc=Rc(Sr),Dc=Rc(Wr),Fc=Rc(Zr),Bc=Rc(ha,{getOnChangeProps:e=>({value:e||[]})}),Wc=Rc(Na),Hc=Rc(za),jc=Rc(Qa,{hasIsFieldProp:!0}),zc=Rc(ll),Vc=Rc(Cl),Uc=Rc(Rl,{getOnChangeProps:(e,t,n,o)=>({checked:e===o.value,value:o.value})}),Gc=Rc(jl,{hasIsFieldProp:!0}),Kc=Rc(Xl),qc=Rc(rc),Yc=Rc(bc);var Jc=Object.defineProperty,Xc=Object.defineProperties,Qc=Object.getOwnPropertyDescriptors,Zc=Object.getOwnPropertySymbols,eu=Object.prototype.hasOwnProperty,tu=Object.prototype.propertyIsEnumerable,nu=(e,t,n)=>t in e?Jc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ou=(e,t)=>{for(var n in t||(t={}))eu.call(t,n)&&nu(e,n,t[n]);if(Zc)for(var n of Zc(t))tu.call(t,n)&&nu(e,n,t[n]);return e};class iu extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.prop,{onChange:n}=t;n((0,pe.fromJS)(e))}getInputError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)eu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Zc)for(var o of Zc(e))t.indexOf(o)<0&&tu.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(gr,(i=ou(ou({},n),o),r={error:this.getInputError()},Xc(i,Qc(r))));var i,r}}iu.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const ru=iu;var su=Object.defineProperty,au=Object.defineProperties,lu=Object.getOwnPropertyDescriptors,cu=Object.getOwnPropertySymbols,uu=Object.prototype.hasOwnProperty,hu=Object.prototype.propertyIsEnumerable,du=(e,t,n)=>t in e?su(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class pu extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}getComboboxError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=((e,t)=>{var n={};for(var o in e)uu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&cu)for(var o of cu(e))t.indexOf(o)<0&&hu.call(e,o)&&(n[o]=e[o]);return n})(this.props,[]);return t().createElement(Sr,(n=((e,t)=>{for(var n in t||(t={}))uu.call(t,n)&&du(e,n,t[n]);if(cu)for(var n of cu(t))hu.call(t,n)&&du(e,n,t[n]);return e})({},e),o={onChange:this.handleOnChange,value:e.input.value?e.input.value.toJS():e.input.value,error:this.getComboboxError()},au(n,lu(o))));var n,o}}pu.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const gu=pu;var mu=Object.defineProperty,fu=Object.defineProperties,yu=Object.getOwnPropertyDescriptors,vu=Object.getOwnPropertySymbols,bu=Object.prototype.hasOwnProperty,wu=Object.prototype.propertyIsEnumerable,xu=(e,t,n)=>t in e?mu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class ku extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}render(){const e=this.props,{children:n,input:o}=e,i=((e,t)=>{var n={};for(var o in e)bu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&vu)for(var o of vu(e))t.indexOf(o)<0&&wu.call(e,o)&&(n[o]=e[o]);return n})(e,["children","input"]);return t().createElement(Oi,(r=((e,t)=>{for(var n in t||(t={}))bu.call(t,n)&&xu(e,n,t[n]);if(vu)for(var n of vu(t))wu.call(t,n)&&xu(e,n,t[n]);return e})({},i),s={onSelect:this.handleOnChange,selectedItem:o.value},fu(r,yu(s))),n);var r,s}}ku.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),input:r().instanceOf(Object)};const Cu=ku;var $u=Object.defineProperty,Su=Object.defineProperties,Eu=Object.getOwnPropertyDescriptors,Ou=Object.getOwnPropertySymbols,Tu=Object.prototype.hasOwnProperty,Au=Object.prototype.propertyIsEnumerable,_u=(e,t,n)=>t in e?$u(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Lu=(e,t)=>{for(var n in t||(t={}))Tu.call(t,n)&&_u(e,n,t[n]);if(Ou)for(var n of Ou(t))Au.call(t,n)&&_u(e,n,t[n]);return e};function Mu(e){const n=e,{input:o}=n,i=((e,t)=>{var n={};for(var o in e)Tu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ou)for(var o of Ou(e))t.indexOf(o)<0&&Au.call(e,o)&&(n[o]=e[o]);return n})(n,["input"]);return t().createElement(po,(r=Lu(Lu({},o),i),s={onChange:o.onChange,value:o.value?o.value:0},Su(r,Eu(s))));var r,s}Mu.propTypes={input:r().instanceOf(Object)};const Ru=Mu;var Nu=Object.defineProperty,Iu=Object.defineProperties,Pu=Object.getOwnPropertyDescriptors,Du=Object.getOwnPropertySymbols,Fu=Object.prototype.hasOwnProperty,Bu=Object.prototype.propertyIsEnumerable,Wu=(e,t,n)=>t in e?Nu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Hu(e){const{input:n,meta:o,validationmessages:i}=e;return t().createElement(Wr,(r=((e,t)=>{for(var n in t||(t={}))Fu.call(t,n)&&Wu(e,n,t[n]);if(Du)for(var n of Du(t))Bu.call(t,n)&&Wu(e,n,t[n]);return e})({},e),s={onChange:e=>{const{onChange:t}=n;t((0,pe.fromJS)(e))},value:n.value?n.value.toJS():n.value,error:(()=>{const{touched:e,error:t,warning:n}=o;let r=null;return e&&t&&i[t]?r=i[t]:e&&n&&(r="warning"),r})()},Iu(r,Pu(s))));var r,s}Hu.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const ju=Hu;var zu=Object.defineProperty,Vu=Object.defineProperties,Uu=Object.getOwnPropertyDescriptors,Gu=Object.getOwnPropertySymbols,Ku=Object.prototype.hasOwnProperty,qu=Object.prototype.propertyIsEnumerable,Yu=(e,t,n)=>t in e?zu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Ju(e){const n=e,{input:o,meta:i,validationmessages:r}=n,s=((e,t)=>{var n={};for(var o in e)Ku.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Gu)for(var o of Gu(e))t.indexOf(o)<0&&qu.call(e,o)&&(n[o]=e[o]);return n})(n,["input","meta","validationmessages"]);return t().createElement(Zr,(a=((e,t)=>{for(var n in t||(t={}))Ku.call(t,n)&&Yu(e,n,t[n]);if(Gu)for(var n of Gu(t))qu.call(t,n)&&Yu(e,n,t[n]);return e})({},s),l={onChange:e=>{const{onChange:t}=o;t((0,pe.fromJS)(e))},value:o.value?o.value.toJS():o.value,error:(()=>{const{touched:e,error:t}=i;let n=null;return e&&t&&r[t]&&(n=r[t]),n})()},Vu(a,Uu(l))));var a,l}Ju.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Xu=Ju;var Qu=Object.defineProperty,Zu=Object.defineProperties,eh=Object.getOwnPropertyDescriptors,th=Object.getOwnPropertySymbols,nh=Object.prototype.hasOwnProperty,oh=Object.prototype.propertyIsEnumerable,ih=(e,t,n)=>t in e?Qu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class rh extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}getEditableListError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o}=e;let i=null;return n&&o&&t[o]&&(i=t[o]),i}render(){const e=((e,t)=>{var n={};for(var o in e)nh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&th)for(var o of th(e))t.indexOf(o)<0&&oh.call(e,o)&&(n[o]=e[o]);return n})(this.props,[]);return t().createElement(ha,(n=((e,t)=>{for(var n in t||(t={}))nh.call(t,n)&&ih(e,n,t[n]);if(th)for(var n of th(t))oh.call(t,n)&&ih(e,n,t[n]);return e})({},e),o={onChange:this.handleOnChange,value:e.input.value?e.input.value.toJS():null,error:this.getEditableListError()},Zu(n,eh(o))));var n,o}}rh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const sh=rh;var ah=Object.defineProperty,lh=Object.defineProperties,ch=Object.getOwnPropertyDescriptors,uh=Object.getOwnPropertySymbols,hh=Object.prototype.hasOwnProperty,dh=Object.prototype.propertyIsEnumerable,ph=(e,t,n)=>t in e?ah(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,gh=(e,t)=>{for(var n in t||(t={}))hh.call(t,n)&&ph(e,n,t[n]);if(uh)for(var n of uh(t))dh.call(t,n)&&ph(e,n,t[n]);return e};class mh extends e.Component{getInputError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)hh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&uh)for(var o of uh(e))t.indexOf(o)<0&&dh.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(za,(i=gh(gh({},n),o),r={error:this.getInputError()},lh(i,ch(r))));var i,r}}mh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const fh=mh;var yh=Object.defineProperty,vh=Object.defineProperties,bh=Object.getOwnPropertyDescriptors,wh=Object.getOwnPropertySymbols,xh=Object.prototype.hasOwnProperty,kh=Object.prototype.propertyIsEnumerable,Ch=(e,t,n)=>t in e?yh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,$h=(e,t)=>{for(var n in t||(t={}))xh.call(t,n)&&Ch(e,n,t[n]);if(wh)for(var n of wh(t))kh.call(t,n)&&Ch(e,n,t[n]);return e};class Sh extends e.Component{getInputError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)xh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&wh)for(var o of wh(e))t.indexOf(o)<0&&kh.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(Qa,(i=$h($h({},n),o),r={isfield:!0,error:this.getInputError()},vh(i,bh(r))));var i,r}}Sh.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Eh=Sh;var Oh=Object.defineProperty,Th=Object.defineProperties,Ah=Object.getOwnPropertyDescriptors,_h=Object.getOwnPropertySymbols,Lh=Object.prototype.hasOwnProperty,Mh=Object.prototype.propertyIsEnumerable,Rh=(e,t,n)=>t in e?Oh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Nh extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}getMultiselectError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=((e,t)=>{var n={};for(var o in e)Lh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&_h)for(var o of _h(e))t.indexOf(o)<0&&Mh.call(e,o)&&(n[o]=e[o]);return n})(this.props,[]);return t().createElement(Cl,(n=((e,t)=>{for(var n in t||(t={}))Lh.call(t,n)&&Rh(e,n,t[n]);if(_h)for(var n of _h(t))Mh.call(t,n)&&Rh(e,n,t[n]);return e})({},e),o={onChange:this.handleOnChange,value:e.input.value?e.input.value.toJS():e.input.value,error:this.getMultiselectError()},Th(n,Ah(o))));var n,o}}Nh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Ih=Nh;var Ph=Object.defineProperty,Dh=Object.defineProperties,Fh=Object.getOwnPropertyDescriptors,Bh=Object.getOwnPropertySymbols,Wh=Object.prototype.hasOwnProperty,Hh=Object.prototype.propertyIsEnumerable,jh=(e,t,n)=>t in e?Ph(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,zh=(e,t)=>{for(var n in t||(t={}))Wh.call(t,n)&&jh(e,n,t[n]);if(Bh)for(var n of Bh(t))Hh.call(t,n)&&jh(e,n,t[n]);return e};class Vh extends e.Component{constructor(e){super(e),this.handleEvent=this.handleEvent.bind(this)}handleEvent(e){const{input:t}=this.props,{onChange:n,value:o}=t;n((0,pe.fromJS)(void 0!==e?e:o))}getSelectError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)Wh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Bh)for(var o of Bh(e))t.indexOf(o)<0&&Hh.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(jl,(i=zh(zh({},n),o),r={isfield:!0,error:this.getSelectError(),onChange:this.handleEvent,onBlur:this.handleEvent,value:n.value?n.value.toJS():n.value},Dh(i,Fh(r))));var i,r}}Vh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Uh=Vh;var Gh=Object.defineProperty,Kh=Object.defineProperties,qh=Object.getOwnPropertyDescriptors,Yh=Object.getOwnPropertySymbols,Jh=Object.prototype.hasOwnProperty,Xh=Object.prototype.propertyIsEnumerable,Qh=(e,t,n)=>t in e?Gh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Zh extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props;t.onChange((0,pe.fromJS)(e))}render(){const e=this.props,{children:n}=e,o=((e,t)=>{var n={};for(var o in e)Jh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Yh)for(var o of Yh(e))t.indexOf(o)<0&&Xh.call(e,o)&&(n[o]=e[o]);return n})(e,["children"]);return t().createElement(Xl,(i=((e,t)=>{for(var n in t||(t={}))Jh.call(t,n)&&Qh(e,n,t[n]);if(Yh)for(var n of Yh(t))Xh.call(t,n)&&Qh(e,n,t[n]);return e})({},o),r={onChange:this.handleOnChange,value:o.input.value?o.input.value.toJS():[]},Kh(i,qh(r))));var i,r}}Zh.propTypes={children:r().oneOfType([r().node]),onChange:r().func,input:r().instanceOf(Object)};const ed=Zh;var td=Object.defineProperty,nd=Object.defineProperties,od=Object.getOwnPropertyDescriptors,id=Object.getOwnPropertySymbols,rd=Object.prototype.hasOwnProperty,sd=Object.prototype.propertyIsEnumerable,ad=(e,t,n)=>t in e?td(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class ld extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props;t.onChange((0,pe.fromJS)(e))}render(){const e=this.props,{children:n}=e,o=((e,t)=>{var n={};for(var o in e)rd.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&id)for(var o of id(e))t.indexOf(o)<0&&sd.call(e,o)&&(n[o]=e[o]);return n})(e,["children"]);return t().createElement(bc,(i=((e,t)=>{for(var n in t||(t={}))rd.call(t,n)&&ad(e,n,t[n]);if(id)for(var n of id(t))sd.call(t,n)&&ad(e,n,t[n]);return e})({},o),r={onChange:this.handleOnChange,value:o.input.value},nd(i,od(r))),n);var i,r}}ld.propTypes={children:r().oneOfType([r().node]),onChange:r().func,input:r().instanceOf(Object)};const cd=ld;function ud(t,n,...o){const i=(0,e.useRef)();(0,e.useEffect)((()=>{i.current=t}),[t]),(0,e.useEffect)((()=>{if(null!=n){const e=setInterval((function(){i.current(...o)}),n);return()=>clearInterval(e)}}),[n])}})(),module.exports=o})(); //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/lib/index.js.map b/lib/index.js.map index ebeb87fa..4870798c 100644 --- a/lib/index.js.map +++ b/lib/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","mappings":"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G,IAAK,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,IAAK,GAAI,IAAK,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,KAAM,GAAI,EAAG,GAAI,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,KAAM,GAAI,MAAO,GAAI,KAAM,GAAI,GAAI,EAAG,IAAK,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAA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O,CAAC,eAAgB,uBAAwB,4BAChDH,MAAO,kEACR,CACCG,MAAOqyD,EACPxyD,MAAO80D,GACR,CACC30D,MAAO,uBACPH,MAAO,aACPpkB,KAAM,YACP,CACCukB,MAAO,eACPH,MAAO,KACPpkB,KAAM,SACP,CACCukB,MAAO,mBACPH,MAAO,yEACPpkB,KAAM,SACP,CACCukB,MAAO,uBACPH,MAAO,UACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,SACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,UACR,CACCG,MAAO,UACPH,MAAO,WAGf7mC,SAAU,CAAC,CACHgnC,MAAO,OACPH,MAAO,QACR,CACCG,MAAO,CACH,eAAgB,uBAAwB,uBAAwB,OAChE,mBAAoB,OACpB,eAAgB,OAAQ,uBAAwB,OAAQ,gBAE5DH,MAAO,IAAM80D,EAAe,UAAYA,EAAe,6DACvDl5E,KAAM,sBACP,CACCukB,MAAO,uBACPH,MAAO,cACR,CACCG,MAAO,mBACPH,MAAO,gwDACR,CACCG,MAAO,uBACPH,MAAO,+lBACR,CACCG,MAAO,mBACPH,MAAO,y2DACR,CACCG,MAAO,aACPH,MAAO80D,GACR,CACC90D,MAAO,GACPG,MAAO,QACPvkB,KAAM,aAGd,MAAS,CACL04E,EAAyBE,aAAa,aACtCS,EAAS,SACT,CACI90D,MAAO,gBACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,OACPH,MAAO,UACPpkB,KAAM,SACP,CACCukB,MAAO,QACPH,MAAO,GACPpkB,KAAM,aAGd,MAAS,CACL,CACIukB,MAAO,0BACPH,MAAO,6CACR,CACCG,MAAO,gBACPH,MAAO,cACPpkB,KAAM,YACP,CACCukB,MAAO,UACPH,MAAO,iDACR,CACCG,MAAO,2BACPH,MAAO,iDACR,CACCG,MAAO,8BACPH,MAAO,MACR,CACCG,MAAO,2BACPH,MAAO,QACPpkB,KAAM,yBACP,CACCukB,MAAO,QACPH,MAAO,IACPpkB,KAAM,YACP,CACC8jB,aAAc,kBAGtB,sBAAyB,CACrB,CACIS,MAAO,oCACPH,MAAO,6CACR,CACCG,MAAO,2BACPH,MAAO,IACPpkB,KAAM,SACP,CACCukB,MAAO,2BACPH,MAAO,KACR,CACCG,MAAO,QACPH,MAAO,IACPpkB,KAAM,YACP,CACC8jB,aAAc,kCAGtB,kBAAqB,CACjB,CACIS,MAAO,SACPH,MAAO,SACP11C,KAAM,CACF,CACI61C,MAAO,SACPH,MAAO,MACPpkB,KAAM,OACP,CACC/kB,QAAS,aAGlB,CACCspC,MAAO,SACPH,MAAO,SACP11C,KAAM,CACF,CACI61C,MAAO,SACPH,MAAO,MACPpkB,KAAM,OACP,CACC/kB,QAAS,cAGlB,CACCspC,MAAO,oBACPH,MAAO,+BACR,CACCG,MAAO,mBACPH,MAAO,gDACR,CACCG,MAAO,mBACPH,MAAO,gDACR,CACCG,MAAO,uBACPH,MAAO,IACPpkB,KAAM,sBACP,CACCukB,MAAO,OACPH,MAAO,QACR,CACCG,MAAO,uBACPH,MAAO,KACR,CACCG,MAAO,QACPH,MAAO,GACPpkB,KAAM,aAGd,mBAAsB,CAClBq5E,EAAS,sBACT,CACI90D,MAAO,qBACPH,MAAO80D,GACR,CACC30D,MAAO,uBACPH,MAAO,KACR,CACCG,MAAO,OACPH,MAAO,QACR,CACCG,MAAO,uBACPH,MAAO,KACR,CACCG,MAAO,QACPH,MAAO,GACPpkB,KAAM,aAGd,SAAY,CACR,CACIukB,MAAO,2BACPH,MAAOg1D,GACR,CACC70D,MAAO,SACPH,MAAO,QACP0B,gBAAgB,GACjB,CACCvB,MAAO,SACPH,MAAO,MACPpkB,KAAM,YACP,CACC8jB,aAAc,WAGtB,QAAW,CACP,CACIS,MAAO,2BACPH,MAAOg1D,GACR,CACC70D,MAAO,SACPH,MAAO,QACP0B,gBAAgB,GACjB,CACCvB,MAAO,SACPH,MAAO,MACPpkB,KAAM,YACP,CACC8jB,aAAc,YAIrB1qC,GAAYA,EAAQkgG,QACrB3sG,KAAKu5C,OAAOqzD,SAASvzD,QAAQ,CACzB5B,MAAO,OAAQM,QAAS,SAAU30C,EAAK+9B,EAAOqX,GAE1C,GADAx4C,KAAKqzB,KAAc,KAAPjwB,EAAapD,KAAK0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E,KAAM,eACP,CACCukB,MAAO,SACPH,MAAOm2D,EAAY,SACnBv6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,OACtBx6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,SACtBx6E,KAAM,aACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,OACtBx6E,KAAM,aACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,SACtBx6E,KAAM,YACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,OACzBz6E,KAAM,eACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,SACzBz6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,OACzBz6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,SACzBz6E,KAAM,aACP,CACCukB,MAAO,mBACPH,MAAO,4EACR,CACCG,MAAO,cACPH,MAAO,2EACR,CACCG,MAAO,eACPH,MAAO,eACR,CACCG,MAAO,eACPH,MAAO,eACR,CACCG,MAAO,CAAC,UAAW,OAAQ,wBAC3BH,MAAO,2DACR,CACCG,MAAO,OACPH,MAAO,QACR,CACCnpC,QAAS,cAEjB,UAAa,CAAC,CACNspC,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,SAAY,CAAC,CACLS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,SAAY,CAAC,CACLS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,QACPpkB,KAAM,YACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,QAAW,CAAC,CACJS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,QACPpkB,KAAM,WACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,aAAgB,CAAC,CACTS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,YAAe,CAAC,CACRS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,YAAe,CAAC,CACRS,MAAO,SACPH,MAAO,QACPpkB,KAAM,eACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,SACPH,MAAO,QACPpkB,KAAM,cACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,UAAa,CAAC,CACNS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,UAAa,CAAC,CACNS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,QACPpkB,KAAM,aACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,SAAY,CAAC,CACLS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,YAAe,CAAC,CACRS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO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","sources":["webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/ace.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/ext-beautify.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/ext-searchbox.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-css.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-golang.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-javascript.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-json.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-jsx.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-python.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-xml.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/theme-github.js","webpack://@tyk-technologies/tyk-ui/./node_modules/react-dom/client.js","webpack://@tyk-technologies/tyk-ui/./node_modules/react-fast-compare/index.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react-dom\"","webpack://@tyk-technologies/tyk-ui/webpack/bootstrap","webpack://@tyk-technologies/tyk-ui/webpack/runtime/amd define","webpack://@tyk-technologies/tyk-ui/webpack/runtime/compat get default export","webpack://@tyk-technologies/tyk-ui/webpack/runtime/define property getters","webpack://@tyk-technologies/tyk-ui/webpack/runtime/hasOwnProperty shorthand","webpack://@tyk-technologies/tyk-ui/webpack/runtime/make namespace object","webpack://@tyk-technologies/tyk-ui/webpack/runtime/node module decorator","webpack://@tyk-technologies/tyk-ui/webpack/runtime/publicPath","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react\"","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"prop-types\"","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Icon/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemTrigger.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItem.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemHeader.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react-transition-group\"","webpack://@tyk-technologies/tyk-ui/./src/hooks/useComponentSize/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/useEventListener/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Collapsible/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemContent.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Button/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/ButtonGroup/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardHeader.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardBody.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardFooter.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardTitle.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardTitleGroup.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardSubTitle.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardSummary.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardTitleIcon.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/index.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"echarts\"","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"immutable\"","webpack://@tyk-technologies/tyk-ui/./src/utils/debounce/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/usePrevious/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Loader/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Message/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Chart/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/useTimeout/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/js/ToastMessage.js","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/js/ToastContainer.js","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/CopyToClipboard/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/js/ModalFooter.js","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/js/ModalBody.js","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Confirm/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/FixedWrapper/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/InfiniteScroller/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/FloatingContainer/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/InfoNote/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/List/js/ListItem.js","webpack://@tyk-technologies/tyk-ui/./src/components/List/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/NavBar/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Navigation/js/NavigationItem.js","webpack://@tyk-technologies/tyk-ui/./src/components/Navigation/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/panel-context.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/js/PanelBody.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/js/PanelFooter.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/js/PanelHeader.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Pill/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/RevealPanel/js/RevealPanelService.js","webpack://@tyk-technologies/tyk-ui/./src/components/RevealPanel/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/tabs-context.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/js/TabContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/js/TabContent.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/js/Tab.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tooltip/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/TextEllipsis/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Pagination/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/tableContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/header-cell.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/header.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Checkbox/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/cell.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/row.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/body.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/index.js","webpack://@tyk-technologies/tyk-ui/./src/layout/Column/index.js","webpack://@tyk-technologies/tyk-ui/./src/layout/Row/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/dropdown-context.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/js/DropdownItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/DropdownTrigger.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/DropdownListWrapper.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/useDrodpownContext.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/DropdowItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/useDropdown.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react-ace\"","webpack://@tyk-technologies/tyk-ui/./src/form/components/CodeEditor/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/js/Value.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/js/List.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/index.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"flatpickr\"","webpack://@tyk-technologies/tyk-ui/./src/form/components/DatePicker/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/isDate/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/toDate/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/defaultOptions/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/defaultLocale/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/format/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/isValid/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/subMilliseconds/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/addMilliseconds/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList/js/EditableListForm.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/Header.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/ListHeader.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/FieldsList.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/with-validation.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/validate-values.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/FileInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Input/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Input2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/js/MultiselectContext.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/js/MultiselectItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/js/MultiselectPanel.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Radio/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Select/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/SelectableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Textarea/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/js/ToggleContext.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/js/ToggleItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/js/ToggleItemWrapper.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/index.js","webpack://@tyk-technologies/tyk-ui/./src/utils/config/config.js","webpack://@tyk-technologies/tyk-ui/./src/utils/formik/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCheckbox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCodeEditor/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCombobox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCombobox2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikDatePicker/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikEditableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikEditableList2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikFileInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikInput2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikMultiselect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikRadio/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikSelect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikSelectableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikTextarea/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikToggle/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldCodeEditor/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldCombobox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldDropdown/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldPagination/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldCombobox2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldDatePicker/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldEditableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldFileInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldMultiselect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldSelect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldSelectableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldToggle/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/useInterval/index.js"],"sourcesContent":["/* ***** BEGIN LICENSE BLOCK *****\n * Distributed under the BSD license:\n *\n * Copyright (c) 2010, Ajax.org B.V.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n * * Neither the name of Ajax.org B.V. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * ***** END LICENSE BLOCK ***** */\n\n/**\n * Define a module along with a payload\n * @param module a name for the payload\n * @param payload a function to call with (require, exports, module) params\n */\n\n(function() {\n\nvar ACE_NAMESPACE = \"ace\";\n\nvar global = (function() { return this; })();\nif (!global && typeof window != \"undefined\") global = window; // strict mode\n\n\nif (!ACE_NAMESPACE && typeof requirejs !== \"undefined\")\n return;\n\n\nvar define = function(module, deps, payload) {\n if (typeof module !== \"string\") {\n if (define.original)\n define.original.apply(this, arguments);\n else {\n console.error(\"dropping module because define wasn\\'t a string.\");\n console.trace();\n }\n return;\n }\n if (arguments.length == 2)\n payload = deps;\n if (!define.modules[module]) {\n define.payloads[module] = payload;\n define.modules[module] = null;\n }\n};\n\ndefine.modules = {};\ndefine.payloads = {};\n\n/**\n * Get at functionality define()ed using the function above\n */\nvar _require = function(parentId, module, callback) {\n if (typeof module === \"string\") {\n var payload = lookup(parentId, module);\n if (payload != undefined) {\n callback && callback();\n return payload;\n }\n } else if (Object.prototype.toString.call(module) === \"[object Array]\") {\n var params = [];\n for (var i = 0, l = module.length; i < l; ++i) {\n var dep = lookup(parentId, module[i]);\n if (dep == undefined && require.original)\n return;\n params.push(dep);\n }\n return callback && callback.apply(null, params) || true;\n }\n};\n\nvar require = function(module, callback) {\n var packagedModule = _require(\"\", module, callback);\n if (packagedModule == undefined && require.original)\n return require.original.apply(this, arguments);\n return packagedModule;\n};\n\nvar normalizeModule = function(parentId, moduleName) {\n // normalize plugin requires\n if (moduleName.indexOf(\"!\") !== -1) {\n var chunks = moduleName.split(\"!\");\n return normalizeModule(parentId, chunks[0]) + \"!\" + normalizeModule(parentId, chunks[1]);\n }\n // normalize relative requires\n if (moduleName.charAt(0) == \".\") {\n var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n moduleName = base + \"/\" + moduleName;\n\n while(moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n var previous = moduleName;\n moduleName = moduleName.replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n }\n }\n return moduleName;\n};\n\n/**\n * Internal function to lookup moduleNames and resolve them by calling the\n * definition function if needed.\n */\nvar lookup = function(parentId, moduleName) {\n moduleName = normalizeModule(parentId, moduleName);\n\n var module = define.modules[moduleName];\n if (!module) {\n module = define.payloads[moduleName];\n if (typeof module === 'function') {\n var exports = {};\n var mod = {\n id: moduleName,\n uri: '',\n exports: exports,\n packaged: true\n };\n\n var req = function(module, callback) {\n return _require(moduleName, module, callback);\n };\n\n var returnValue = module(req, exports, mod);\n exports = returnValue || mod.exports;\n define.modules[moduleName] = exports;\n delete define.payloads[moduleName];\n }\n module = define.modules[moduleName] = exports || module;\n }\n return module;\n};\n\nfunction exportAce(ns) {\n var root = global;\n if (ns) {\n if (!global[ns])\n global[ns] = {};\n root = global[ns];\n }\n\n if (!root.define || !root.define.packaged) {\n define.original = root.define;\n root.define = define;\n root.define.packaged = true;\n }\n\n if (!root.require || !root.require.packaged) {\n require.original = root.require;\n root.require = require;\n root.require.packaged = true;\n }\n}\n\nexportAce(ACE_NAMESPACE);\n\n})();\n\nace.define(\"ace/lib/es6-shim\",[\"require\",\"exports\",\"module\"], function(require, exports, module){function defineProp(obj, name, val) {\n Object.defineProperty(obj, name, {\n value: val,\n enumerable: false,\n writable: true,\n configurable: true\n });\n}\nif (!String.prototype.startsWith) {\n defineProp(String.prototype, \"startsWith\", function (searchString, position) {\n position = position || 0;\n return this.lastIndexOf(searchString, position) === position;\n });\n}\nif (!String.prototype.endsWith) {\n defineProp(String.prototype, \"endsWith\", function (searchString, position) {\n var subjectString = this;\n if (position === undefined || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n });\n}\nif (!String.prototype.repeat) {\n defineProp(String.prototype, \"repeat\", function (count) {\n var result = \"\";\n var string = this;\n while (count > 0) {\n if (count & 1)\n result += string;\n if ((count >>= 1))\n string += string;\n }\n return result;\n });\n}\nif (!String.prototype.includes) {\n defineProp(String.prototype, \"includes\", function (str, position) {\n return this.indexOf(str, position) != -1;\n });\n}\nif (!Object.assign) {\n Object.assign = function (target) {\n if (target === undefined || target === null) {\n throw new TypeError(\"Cannot convert undefined or null to object\");\n }\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n Object.keys(source).forEach(function (key) {\n output[key] = source[key];\n });\n }\n }\n return output;\n };\n}\nif (!Object.values) {\n Object.values = function (o) {\n return Object.keys(o).map(function (k) {\n return o[k];\n });\n };\n}\nif (!Array.prototype.find) {\n defineProp(Array.prototype, \"find\", function (predicate) {\n var len = this.length;\n var thisArg = arguments[1];\n for (var k = 0; k < len; k++) {\n var kValue = this[k];\n if (predicate.call(thisArg, kValue, k, this)) {\n return kValue;\n }\n }\n });\n}\nif (!Array.prototype.findIndex) {\n defineProp(Array.prototype, \"findIndex\", function (predicate) {\n var len = this.length;\n var thisArg = arguments[1];\n for (var k = 0; k < len; k++) {\n var kValue = this[k];\n if (predicate.call(thisArg, kValue, k, this)) {\n return k;\n }\n }\n });\n}\nif (!Array.prototype.includes) {\n defineProp(Array.prototype, \"includes\", function (item, position) {\n return this.indexOf(item, position) != -1;\n });\n}\nif (!Array.prototype.fill) {\n defineProp(Array.prototype, \"fill\", function (value) {\n var O = this;\n var len = O.length >>> 0;\n var start = arguments[1];\n var relativeStart = start >> 0;\n var k = relativeStart < 0\n ? Math.max(len + relativeStart, 0)\n : Math.min(relativeStart, len);\n var end = arguments[2];\n var relativeEnd = end === undefined ? len : end >> 0;\n var final = relativeEnd < 0\n ? Math.max(len + relativeEnd, 0)\n : Math.min(relativeEnd, len);\n while (k < final) {\n O[k] = value;\n k++;\n }\n return O;\n });\n}\nif (!Array.of) {\n defineProp(Array, \"of\", function () {\n return Array.prototype.slice.call(arguments);\n });\n}\n\n});\n\nace.define(\"ace/lib/fixoldbrowsers\",[\"require\",\"exports\",\"module\",\"ace/lib/es6-shim\"], function(require, exports, module){// vim:set ts=4 sts=4 sw=4 st:\n\"use strict\";\nrequire(\"./es6-shim\");\n\n});\n\nace.define(\"ace/lib/deep_copy\",[\"require\",\"exports\",\"module\"], function(require, exports, module){exports.deepCopy = function deepCopy(obj) {\n if (typeof obj !== \"object\" || !obj)\n return obj;\n var copy;\n if (Array.isArray(obj)) {\n copy = [];\n for (var key = 0; key < obj.length; key++) {\n copy[key] = deepCopy(obj[key]);\n }\n return copy;\n }\n if (Object.prototype.toString.call(obj) !== \"[object Object]\")\n return obj;\n copy = {};\n for (var key in obj)\n copy[key] = deepCopy(obj[key]);\n return copy;\n};\n\n});\n\nace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\",\"ace/lib/deep_copy\"], function(require, exports, module){\"use strict\";\nexports.last = function (a) {\n return a[a.length - 1];\n};\nexports.stringReverse = function (string) {\n return string.split(\"\").reverse().join(\"\");\n};\nexports.stringRepeat = function (string, count) {\n var result = '';\n while (count > 0) {\n if (count & 1)\n result += string;\n if (count >>= 1)\n string += string;\n }\n return result;\n};\nvar trimBeginRegexp = /^\\s\\s*/;\nvar trimEndRegexp = /\\s\\s*$/;\nexports.stringTrimLeft = function (string) {\n return string.replace(trimBeginRegexp, '');\n};\nexports.stringTrimRight = function (string) {\n return string.replace(trimEndRegexp, '');\n};\nexports.copyObject = function (obj) {\n var copy = {};\n for (var key in obj) {\n copy[key] = obj[key];\n }\n return copy;\n};\nexports.copyArray = function (array) {\n var copy = [];\n for (var i = 0, l = array.length; i < l; i++) {\n if (array[i] && typeof array[i] == \"object\")\n copy[i] = this.copyObject(array[i]);\n else\n copy[i] = array[i];\n }\n return copy;\n};\nexports.deepCopy = require(\"./deep_copy\").deepCopy;\nexports.arrayToMap = function (arr) {\n var map = {};\n for (var i = 0; i < arr.length; i++) {\n map[arr[i]] = 1;\n }\n return map;\n};\nexports.createMap = function (props) {\n var map = Object.create(null);\n for (var i in props) {\n map[i] = props[i];\n }\n return map;\n};\nexports.arrayRemove = function (array, value) {\n for (var i = 0; i <= array.length; i++) {\n if (value === array[i]) {\n array.splice(i, 1);\n }\n }\n};\nexports.escapeRegExp = function (str) {\n return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g, '\\\\$1');\n};\nexports.escapeHTML = function (str) {\n return (\"\" + str).replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(/ 0xffff ? 2 : 1;\n};\n\n});\n\nace.define(\"ace/lib/useragent\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nexports.OS = {\n LINUX: \"LINUX\",\n MAC: \"MAC\",\n WINDOWS: \"WINDOWS\"\n};\nexports.getOS = function () {\n if (exports.isMac) {\n return exports.OS.MAC;\n }\n else if (exports.isLinux) {\n return exports.OS.LINUX;\n }\n else {\n return exports.OS.WINDOWS;\n }\n};\nvar _navigator = typeof navigator == \"object\" ? navigator : {};\nvar os = (/mac|win|linux/i.exec(_navigator.platform) || [\"other\"])[0].toLowerCase();\nvar ua = _navigator.userAgent || \"\";\nvar appName = _navigator.appName || \"\";\nexports.isWin = (os == \"win\");\nexports.isMac = (os == \"mac\");\nexports.isLinux = (os == \"linux\");\nexports.isIE =\n (appName == \"Microsoft Internet Explorer\" || appName.indexOf(\"MSAppHost\") >= 0)\n ? parseFloat((ua.match(/(?:MSIE |Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/) || [])[1])\n : parseFloat((ua.match(/(?:Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/) || [])[1]); // for ie\nexports.isOldIE = exports.isIE && exports.isIE < 9;\nexports.isGecko = exports.isMozilla = ua.match(/ Gecko\\/\\d+/);\nexports.isOpera = typeof opera == \"object\" && Object.prototype.toString.call(window.opera) == \"[object Opera]\";\nexports.isWebKit = parseFloat(ua.split(\"WebKit/\")[1]) || undefined;\nexports.isChrome = parseFloat(ua.split(\" Chrome/\")[1]) || undefined;\nexports.isSafari = parseFloat(ua.split(\" Safari/\")[1]) && !exports.isChrome || undefined;\nexports.isEdge = parseFloat(ua.split(\" Edge/\")[1]) || undefined;\nexports.isAIR = ua.indexOf(\"AdobeAIR\") >= 0;\nexports.isAndroid = ua.indexOf(\"Android\") >= 0;\nexports.isChromeOS = ua.indexOf(\" CrOS \") >= 0;\nexports.isIOS = /iPad|iPhone|iPod/.test(ua) && !window.MSStream;\nif (exports.isIOS)\n exports.isMac = true;\nexports.isMobile = exports.isIOS || exports.isAndroid;\n\n});\n\nace.define(\"ace/lib/dom\",[\"require\",\"exports\",\"module\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar useragent = require(\"./useragent\");\nvar XHTML_NS = \"http://www.w3.org/1999/xhtml\";\nexports.buildDom = function buildDom(arr, parent, refs) {\n if (typeof arr == \"string\" && arr) {\n var txt = document.createTextNode(arr);\n if (parent)\n parent.appendChild(txt);\n return txt;\n }\n if (!Array.isArray(arr)) {\n if (arr && arr.appendChild && parent)\n parent.appendChild(arr);\n return arr;\n }\n if (typeof arr[0] != \"string\" || !arr[0]) {\n var els = [];\n for (var i = 0; i < arr.length; i++) {\n var ch = buildDom(arr[i], parent, refs);\n ch && els.push(ch);\n }\n return els;\n }\n var el = document.createElement(arr[0]);\n var options = arr[1];\n var childIndex = 1;\n if (options && typeof options == \"object\" && !Array.isArray(options))\n childIndex = 2;\n for (var i = childIndex; i < arr.length; i++)\n buildDom(arr[i], el, refs);\n if (childIndex == 2) {\n Object.keys(options).forEach(function (n) {\n var val = options[n];\n if (n === \"class\") {\n el.className = Array.isArray(val) ? val.join(\" \") : val;\n }\n else if (typeof val == \"function\" || n == \"value\" || n[0] == \"$\") {\n el[n] = val;\n }\n else if (n === \"ref\") {\n if (refs)\n refs[val] = el;\n }\n else if (n === \"style\") {\n if (typeof val == \"string\")\n el.style.cssText = val;\n }\n else if (val != null) {\n el.setAttribute(n, val);\n }\n });\n }\n if (parent)\n parent.appendChild(el);\n return el;\n};\nexports.getDocumentHead = function (doc) {\n if (!doc)\n doc = document;\n return doc.head || doc.getElementsByTagName(\"head\")[0] || doc.documentElement;\n};\nexports.createElement = function (tag, ns) {\n return document.createElementNS ?\n document.createElementNS(ns || XHTML_NS, tag) :\n document.createElement(tag);\n};\nexports.removeChildren = function (element) {\n element.innerHTML = \"\";\n};\nexports.createTextNode = function (textContent, element) {\n var doc = element ? element.ownerDocument : document;\n return doc.createTextNode(textContent);\n};\nexports.createFragment = function (element) {\n var doc = element ? element.ownerDocument : document;\n return doc.createDocumentFragment();\n};\nexports.hasCssClass = function (el, name) {\n var classes = (el.className + \"\").split(/\\s+/g);\n return classes.indexOf(name) !== -1;\n};\nexports.addCssClass = function (el, name) {\n if (!exports.hasCssClass(el, name)) {\n el.className += \" \" + name;\n }\n};\nexports.removeCssClass = function (el, name) {\n var classes = el.className.split(/\\s+/g);\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n classes.splice(index, 1);\n }\n el.className = classes.join(\" \");\n};\nexports.toggleCssClass = function (el, name) {\n var classes = el.className.split(/\\s+/g), add = true;\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n add = false;\n classes.splice(index, 1);\n }\n if (add)\n classes.push(name);\n el.className = classes.join(\" \");\n return add;\n};\nexports.setCssClass = function (node, className, include) {\n if (include) {\n exports.addCssClass(node, className);\n }\n else {\n exports.removeCssClass(node, className);\n }\n};\nexports.hasCssString = function (id, doc) {\n var index = 0, sheets;\n doc = doc || document;\n if ((sheets = doc.querySelectorAll(\"style\"))) {\n while (index < sheets.length) {\n if (sheets[index++].id === id) {\n return true;\n }\n }\n }\n};\nexports.removeElementById = function (id, doc) {\n doc = doc || document;\n if (doc.getElementById(id)) {\n doc.getElementById(id).remove();\n }\n};\nvar strictCSP;\nvar cssCache = [];\nexports.useStrictCSP = function (value) {\n strictCSP = value;\n if (value == false)\n insertPendingStyles();\n else if (!cssCache)\n cssCache = [];\n};\nfunction insertPendingStyles() {\n var cache = cssCache;\n cssCache = null;\n cache && cache.forEach(function (item) {\n importCssString(item[0], item[1]);\n });\n}\nfunction importCssString(cssText, id, target) {\n if (typeof document == \"undefined\")\n return;\n if (cssCache) {\n if (target) {\n insertPendingStyles();\n }\n else if (target === false) {\n return cssCache.push([cssText, id]);\n }\n }\n if (strictCSP)\n return;\n var container = target;\n if (!target || !target.getRootNode) {\n container = document;\n }\n else {\n container = target.getRootNode();\n if (!container || container == target)\n container = document;\n }\n var doc = container.ownerDocument || container;\n if (id && exports.hasCssString(id, container))\n return null;\n if (id)\n cssText += \"\\n/*# sourceURL=ace/css/\" + id + \" */\";\n var style = exports.createElement(\"style\");\n style.appendChild(doc.createTextNode(cssText));\n if (id)\n style.id = id;\n if (container == doc)\n container = exports.getDocumentHead(doc);\n container.insertBefore(style, container.firstChild);\n}\nexports.importCssString = importCssString;\nexports.importCssStylsheet = function (uri, doc) {\n exports.buildDom([\"link\", { rel: \"stylesheet\", href: uri }], exports.getDocumentHead(doc));\n};\nexports.scrollbarWidth = function (doc) {\n var inner = exports.createElement(\"ace_inner\");\n inner.style.width = \"100%\";\n inner.style.minWidth = \"0px\";\n inner.style.height = \"200px\";\n inner.style.display = \"block\";\n var outer = exports.createElement(\"ace_outer\");\n var style = outer.style;\n style.position = \"absolute\";\n style.left = \"-10000px\";\n style.overflow = \"hidden\";\n style.width = \"200px\";\n style.minWidth = \"0px\";\n style.height = \"150px\";\n style.display = \"block\";\n outer.appendChild(inner);\n var body = (doc && doc.documentElement) || (document && document.documentElement);\n if (!body)\n return 0;\n body.appendChild(outer);\n var noScrollbar = inner.offsetWidth;\n style.overflow = \"scroll\";\n var withScrollbar = inner.offsetWidth;\n if (noScrollbar === withScrollbar) {\n withScrollbar = outer.clientWidth;\n }\n body.removeChild(outer);\n return noScrollbar - withScrollbar;\n};\nexports.computedStyle = function (element, style) {\n return window.getComputedStyle(element, \"\") || {};\n};\nexports.setStyle = function (styles, property, value) {\n if (styles[property] !== value) {\n styles[property] = value;\n }\n};\nexports.HAS_CSS_ANIMATION = false;\nexports.HAS_CSS_TRANSFORMS = false;\nexports.HI_DPI = useragent.isWin\n ? typeof window !== \"undefined\" && window.devicePixelRatio >= 1.5\n : true;\nif (useragent.isChromeOS)\n exports.HI_DPI = false;\nif (typeof document !== \"undefined\") {\n var div = document.createElement(\"div\");\n if (exports.HI_DPI && div.style.transform !== undefined)\n exports.HAS_CSS_TRANSFORMS = true;\n if (!useragent.isEdge && typeof div.style.animationName !== \"undefined\")\n exports.HAS_CSS_ANIMATION = true;\n div = null;\n}\nif (exports.HAS_CSS_TRANSFORMS) {\n exports.translate = function (element, tx, ty) {\n element.style.transform = \"translate(\" + Math.round(tx) + \"px, \" + Math.round(ty) + \"px)\";\n };\n}\nelse {\n exports.translate = function (element, tx, ty) {\n element.style.top = Math.round(ty) + \"px\";\n element.style.left = Math.round(tx) + \"px\";\n };\n}\n\n});\n\nace.define(\"ace/lib/net\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){/*\n * based on code from:\n *\n * @license RequireJS text 0.25.0 Copyright (c) 2010-2011, The Dojo Foundation All Rights Reserved.\n * Available via the MIT or new BSD license.\n * see: http://github.com/jrburke/requirejs for details\n */\n\"use strict\";\nvar dom = require(\"./dom\");\nexports.get = function (url, callback) {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n callback(xhr.responseText);\n }\n };\n xhr.send(null);\n};\nexports.loadScript = function (path, callback) {\n var head = dom.getDocumentHead();\n var s = document.createElement('script');\n s.src = path;\n head.appendChild(s);\n s.onload = s.onreadystatechange = function (_, isAbort) {\n if (isAbort || !s.readyState || s.readyState == \"loaded\" || s.readyState == \"complete\") {\n s = s.onload = s.onreadystatechange = null;\n if (!isAbort)\n callback();\n }\n };\n};\nexports.qualifyURL = function (url) {\n var a = document.createElement('a');\n a.href = url;\n return a.href;\n};\n\n});\n\nace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nexports.inherits = function (ctor, superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n};\nexports.mixin = function (obj, mixin) {\n for (var key in mixin) {\n obj[key] = mixin[key];\n }\n return obj;\n};\nexports.implement = function (proto, mixin) {\n exports.mixin(proto, mixin);\n};\n\n});\n\nace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar EventEmitter = {};\nvar stopPropagation = function () { this.propagationStopped = true; };\nvar preventDefault = function () { this.defaultPrevented = true; };\nEventEmitter._emit =\n EventEmitter._dispatchEvent = function (eventName, e) {\n this._eventRegistry || (this._eventRegistry = {});\n this._defaultHandlers || (this._defaultHandlers = {});\n var listeners = this._eventRegistry[eventName] || [];\n var defaultHandler = this._defaultHandlers[eventName];\n if (!listeners.length && !defaultHandler)\n return;\n if (typeof e != \"object\" || !e)\n e = {};\n if (!e.type)\n e.type = eventName;\n if (!e.stopPropagation)\n e.stopPropagation = stopPropagation;\n if (!e.preventDefault)\n e.preventDefault = preventDefault;\n listeners = listeners.slice();\n for (var i = 0; i < listeners.length; i++) {\n listeners[i](e, this);\n if (e.propagationStopped)\n break;\n }\n if (defaultHandler && !e.defaultPrevented)\n return defaultHandler(e, this);\n };\nEventEmitter._signal = function (eventName, e) {\n var listeners = (this._eventRegistry || {})[eventName];\n if (!listeners)\n return;\n listeners = listeners.slice();\n for (var i = 0; i < listeners.length; i++)\n listeners[i](e, this);\n};\nEventEmitter.once = function (eventName, callback) {\n var _self = this;\n this.on(eventName, function newCallback() {\n _self.off(eventName, newCallback);\n callback.apply(null, arguments);\n });\n if (!callback) {\n return new Promise(function (resolve) {\n callback = resolve;\n });\n }\n};\nEventEmitter.setDefaultHandler = function (eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n handlers = this._defaultHandlers = { _disabled_: {} };\n if (handlers[eventName]) {\n var old = handlers[eventName];\n var disabled = handlers._disabled_[eventName];\n if (!disabled)\n handlers._disabled_[eventName] = disabled = [];\n disabled.push(old);\n var i = disabled.indexOf(callback);\n if (i != -1)\n disabled.splice(i, 1);\n }\n handlers[eventName] = callback;\n};\nEventEmitter.removeDefaultHandler = function (eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n return;\n var disabled = handlers._disabled_[eventName];\n if (handlers[eventName] == callback) {\n if (disabled)\n this.setDefaultHandler(eventName, disabled.pop());\n }\n else if (disabled) {\n var i = disabled.indexOf(callback);\n if (i != -1)\n disabled.splice(i, 1);\n }\n};\nEventEmitter.on =\n EventEmitter.addEventListener = function (eventName, callback, capturing) {\n this._eventRegistry = this._eventRegistry || {};\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n listeners = this._eventRegistry[eventName] = [];\n if (listeners.indexOf(callback) == -1)\n listeners[capturing ? \"unshift\" : \"push\"](callback);\n return callback;\n };\nEventEmitter.off =\n EventEmitter.removeListener =\n EventEmitter.removeEventListener = function (eventName, callback) {\n this._eventRegistry = this._eventRegistry || {};\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n return;\n var index = listeners.indexOf(callback);\n if (index !== -1)\n listeners.splice(index, 1);\n };\nEventEmitter.removeAllListeners = function (eventName) {\n if (!eventName)\n this._eventRegistry = this._defaultHandlers = undefined;\n if (this._eventRegistry)\n this._eventRegistry[eventName] = undefined;\n if (this._defaultHandlers)\n this._defaultHandlers[eventName] = undefined;\n};\nexports.EventEmitter = EventEmitter;\n\n});\n\nace.define(\"ace/lib/report_error\",[\"require\",\"exports\",\"module\"], function(require, exports, module){exports.reportError = function reportError(msg, data) {\n var e = new Error(msg);\n e.data = data;\n if (typeof console == \"object\" && console.error)\n console.error(e);\n setTimeout(function () { throw e; });\n};\n\n});\n\nace.define(\"ace/lib/app_config\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\",\"ace/lib/report_error\"], function(require, exports, module){\"no use strict\";\nvar oop = require(\"./oop\");\nvar EventEmitter = require(\"./event_emitter\").EventEmitter;\nvar reportError = require(\"./report_error\").reportError;\nvar optionsProvider = {\n setOptions: function (optList) {\n Object.keys(optList).forEach(function (key) {\n this.setOption(key, optList[key]);\n }, this);\n },\n getOptions: function (optionNames) {\n var result = {};\n if (!optionNames) {\n var options = this.$options;\n optionNames = Object.keys(options).filter(function (key) {\n return !options[key].hidden;\n });\n }\n else if (!Array.isArray(optionNames)) {\n result = optionNames;\n optionNames = Object.keys(result);\n }\n optionNames.forEach(function (key) {\n result[key] = this.getOption(key);\n }, this);\n return result;\n },\n setOption: function (name, value) {\n if (this[\"$\" + name] === value)\n return;\n var opt = this.$options[name];\n if (!opt) {\n return warn('misspelled option \"' + name + '\"');\n }\n if (opt.forwardTo)\n return this[opt.forwardTo] && this[opt.forwardTo].setOption(name, value);\n if (!opt.handlesSet)\n this[\"$\" + name] = value;\n if (opt && opt.set)\n opt.set.call(this, value);\n },\n getOption: function (name) {\n var opt = this.$options[name];\n if (!opt) {\n return warn('misspelled option \"' + name + '\"');\n }\n if (opt.forwardTo)\n return this[opt.forwardTo] && this[opt.forwardTo].getOption(name);\n return opt && opt.get ? opt.get.call(this) : this[\"$\" + name];\n }\n};\nfunction warn(message) {\n if (typeof console != \"undefined\" && console.warn)\n console.warn.apply(console, arguments);\n}\nvar messages;\nvar AppConfig = /** @class */ (function () {\n function AppConfig() {\n this.$defaultOptions = {};\n }\n AppConfig.prototype.defineOptions = function (obj, path, options) {\n if (!obj.$options)\n this.$defaultOptions[path] = obj.$options = {};\n Object.keys(options).forEach(function (key) {\n var opt = options[key];\n if (typeof opt == \"string\")\n opt = { forwardTo: opt };\n opt.name || (opt.name = key);\n obj.$options[opt.name] = opt;\n if (\"initialValue\" in opt)\n obj[\"$\" + opt.name] = opt.initialValue;\n });\n oop.implement(obj, optionsProvider);\n return this;\n };\n AppConfig.prototype.resetOptions = function (obj) {\n Object.keys(obj.$options).forEach(function (key) {\n var opt = obj.$options[key];\n if (\"value\" in opt)\n obj.setOption(key, opt.value);\n });\n };\n AppConfig.prototype.setDefaultValue = function (path, name, value) {\n if (!path) {\n for (path in this.$defaultOptions)\n if (this.$defaultOptions[path][name])\n break;\n if (!this.$defaultOptions[path][name])\n return false;\n }\n var opts = this.$defaultOptions[path] || (this.$defaultOptions[path] = {});\n if (opts[name]) {\n if (opts.forwardTo)\n this.setDefaultValue(opts.forwardTo, name, value);\n else\n opts[name].value = value;\n }\n };\n AppConfig.prototype.setDefaultValues = function (path, optionHash) {\n Object.keys(optionHash).forEach(function (key) {\n this.setDefaultValue(path, key, optionHash[key]);\n }, this);\n };\n AppConfig.prototype.setMessages = function (value) {\n messages = value;\n };\n AppConfig.prototype.nls = function (string, params) {\n if (messages && !messages[string]) {\n warn(\"No message found for '\" + string + \"' in the provided messages, falling back to default English message.\");\n }\n var translated = messages && messages[string] || string;\n if (params) {\n translated = translated.replace(/\\$(\\$|[\\d]+)/g, function (_, name) {\n if (name == \"$\")\n return \"$\";\n return params[name];\n });\n }\n return translated;\n };\n return AppConfig;\n}());\nAppConfig.prototype.warn = warn;\nAppConfig.prototype.reportError = reportError;\noop.implement(AppConfig.prototype, EventEmitter);\nexports.AppConfig = AppConfig;\n\n});\n\nace.define(\"ace/theme/textmate-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \".ace-tm .ace_gutter {\\n background: #f0f0f0;\\n color: #333;\\n}\\n\\n.ace-tm .ace_print-margin {\\n width: 1px;\\n background: #e8e8e8;\\n}\\n\\n.ace-tm .ace_fold {\\n background-color: #6B72E6;\\n}\\n\\n.ace-tm {\\n background-color: #FFFFFF;\\n color: black;\\n}\\n\\n.ace-tm .ace_cursor {\\n color: black;\\n}\\n \\n.ace-tm .ace_invisible {\\n color: rgb(191, 191, 191);\\n}\\n\\n.ace-tm .ace_storage,\\n.ace-tm .ace_keyword {\\n color: blue;\\n}\\n\\n.ace-tm .ace_constant {\\n color: rgb(197, 6, 11);\\n}\\n\\n.ace-tm .ace_constant.ace_buildin {\\n color: rgb(88, 72, 246);\\n}\\n\\n.ace-tm .ace_constant.ace_language {\\n color: rgb(88, 92, 246);\\n}\\n\\n.ace-tm .ace_constant.ace_library {\\n color: rgb(6, 150, 14);\\n}\\n\\n.ace-tm .ace_invalid {\\n background-color: rgba(255, 0, 0, 0.1);\\n color: red;\\n}\\n\\n.ace-tm .ace_support.ace_function {\\n color: rgb(60, 76, 114);\\n}\\n\\n.ace-tm .ace_support.ace_constant {\\n color: rgb(6, 150, 14);\\n}\\n\\n.ace-tm .ace_support.ace_type,\\n.ace-tm .ace_support.ace_class {\\n color: rgb(109, 121, 222);\\n}\\n\\n.ace-tm .ace_keyword.ace_operator {\\n color: rgb(104, 118, 135);\\n}\\n\\n.ace-tm .ace_string {\\n color: rgb(3, 106, 7);\\n}\\n\\n.ace-tm .ace_comment {\\n color: rgb(76, 136, 107);\\n}\\n\\n.ace-tm .ace_comment.ace_doc {\\n color: rgb(0, 102, 255);\\n}\\n\\n.ace-tm .ace_comment.ace_doc.ace_tag {\\n color: rgb(128, 159, 191);\\n}\\n\\n.ace-tm .ace_constant.ace_numeric {\\n color: rgb(0, 0, 205);\\n}\\n\\n.ace-tm .ace_variable {\\n color: rgb(49, 132, 149);\\n}\\n\\n.ace-tm .ace_xml-pe {\\n color: rgb(104, 104, 91);\\n}\\n\\n.ace-tm .ace_entity.ace_name.ace_function {\\n color: #0000A2;\\n}\\n\\n\\n.ace-tm .ace_heading {\\n color: rgb(12, 7, 255);\\n}\\n\\n.ace-tm .ace_list {\\n color:rgb(185, 6, 144);\\n}\\n\\n.ace-tm .ace_meta.ace_tag {\\n color:rgb(0, 22, 142);\\n}\\n\\n.ace-tm .ace_string.ace_regex {\\n color: rgb(255, 0, 0)\\n}\\n\\n.ace-tm .ace_marker-layer .ace_selection {\\n background: rgb(181, 213, 255);\\n}\\n.ace-tm.ace_multiselect .ace_selection.ace_start {\\n box-shadow: 0 0 3px 0px white;\\n}\\n.ace-tm .ace_marker-layer .ace_step {\\n background: rgb(252, 255, 0);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_stack {\\n background: rgb(164, 229, 101);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_bracket {\\n margin: -1px 0 0 -1px;\\n border: 1px solid rgb(192, 192, 192);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_active-line {\\n background: rgba(0, 0, 0, 0.07);\\n}\\n\\n.ace-tm .ace_gutter-active-line {\\n background-color : #dcdcdc;\\n}\\n\\n.ace-tm .ace_marker-layer .ace_selected-word {\\n background: rgb(250, 250, 255);\\n border: 1px solid rgb(200, 200, 250);\\n}\\n\\n.ace-tm .ace_indent-guide {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\n}\\n\\n.ace-tm .ace_indent-guide-active {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC\\\") right repeat-y;\\n}\\n\";\n\n});\n\nace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/theme/textmate-css\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nexports.isDark = false;\nexports.cssClass = \"ace-tm\";\nexports.cssText = require(\"./textmate-css\");\nexports.$id = \"ace/theme/textmate\";\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass, false);\n\n});\n\nace.define(\"ace/config\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/net\",\"ace/lib/dom\",\"ace/lib/app_config\",\"ace/theme/textmate\"], function(require, exports, module){\"no use strict\";\nvar lang = require(\"./lib/lang\");\nvar net = require(\"./lib/net\");\nvar dom = require(\"./lib/dom\");\nvar AppConfig = require(\"./lib/app_config\").AppConfig;\nmodule.exports = exports = new AppConfig();\nvar options = {\n packaged: false,\n workerPath: null,\n modePath: null,\n themePath: null,\n basePath: \"\",\n suffix: \".js\",\n $moduleUrls: {},\n loadWorkerFromBlob: true,\n sharedPopups: false,\n useStrictCSP: null\n};\nexports.get = function (key) {\n if (!options.hasOwnProperty(key))\n throw new Error(\"Unknown config key: \" + key);\n return options[key];\n};\nexports.set = function (key, value) {\n if (options.hasOwnProperty(key))\n options[key] = value;\n else if (this.setDefaultValue(\"\", key, value) == false)\n throw new Error(\"Unknown config key: \" + key);\n if (key == \"useStrictCSP\")\n dom.useStrictCSP(value);\n};\nexports.all = function () {\n return lang.copyObject(options);\n};\nexports.$modes = {};\nexports.moduleUrl = function (name, component) {\n if (options.$moduleUrls[name])\n return options.$moduleUrls[name];\n var parts = name.split(\"/\");\n component = component || parts[parts.length - 2] || \"\";\n var sep = component == \"snippets\" ? \"/\" : \"-\";\n var base = parts[parts.length - 1];\n if (component == \"worker\" && sep == \"-\") {\n var re = new RegExp(\"^\" + component + \"[\\\\-_]|[\\\\-_]\" + component + \"$\", \"g\");\n base = base.replace(re, \"\");\n }\n if ((!base || base == component) && parts.length > 1)\n base = parts[parts.length - 2];\n var path = options[component + \"Path\"];\n if (path == null) {\n path = options.basePath;\n }\n else if (sep == \"/\") {\n component = sep = \"\";\n }\n if (path && path.slice(-1) != \"/\")\n path += \"/\";\n return path + component + sep + base + this.get(\"suffix\");\n};\nexports.setModuleUrl = function (name, subst) {\n return options.$moduleUrls[name] = subst;\n};\nvar loader = function (moduleName, cb) {\n if (moduleName === \"ace/theme/textmate\" || moduleName === \"./theme/textmate\")\n return cb(null, require(\"./theme/textmate\"));\n if (customLoader)\n return customLoader(moduleName, cb);\n console.error(\"loader is not configured\");\n};\nvar customLoader;\nexports.setLoader = function (cb) {\n customLoader = cb;\n};\nexports.dynamicModules = Object.create(null);\nexports.$loading = {};\nexports.$loaded = {};\nexports.loadModule = function (moduleName, onLoad) {\n var loadedModule, moduleType;\n if (Array.isArray(moduleName)) {\n moduleType = moduleName[0];\n moduleName = moduleName[1];\n }\n var load = function (module) {\n if (module && !exports.$loading[moduleName])\n return onLoad && onLoad(module);\n if (!exports.$loading[moduleName])\n exports.$loading[moduleName] = [];\n exports.$loading[moduleName].push(onLoad);\n if (exports.$loading[moduleName].length > 1)\n return;\n var afterLoad = function () {\n loader(moduleName, function (err, module) {\n if (module)\n exports.$loaded[moduleName] = module;\n exports._emit(\"load.module\", { name: moduleName, module: module });\n var listeners = exports.$loading[moduleName];\n exports.$loading[moduleName] = null;\n listeners.forEach(function (onLoad) {\n onLoad && onLoad(module);\n });\n });\n };\n if (!exports.get(\"packaged\"))\n return afterLoad();\n net.loadScript(exports.moduleUrl(moduleName, moduleType), afterLoad);\n reportErrorIfPathIsNotConfigured();\n };\n if (exports.dynamicModules[moduleName]) {\n exports.dynamicModules[moduleName]().then(function (module) {\n if (module.default) {\n load(module.default);\n }\n else {\n load(module);\n }\n });\n }\n else {\n try {\n loadedModule = this.$require(moduleName);\n }\n catch (e) { }\n load(loadedModule || exports.$loaded[moduleName]);\n }\n};\nexports.$require = function (moduleName) {\n if (typeof module.require == \"function\") {\n var req = \"require\";\n return module[req](moduleName);\n }\n};\nexports.setModuleLoader = function (moduleName, onLoad) {\n exports.dynamicModules[moduleName] = onLoad;\n};\nvar reportErrorIfPathIsNotConfigured = function () {\n if (!options.basePath && !options.workerPath\n && !options.modePath && !options.themePath\n && !Object.keys(options.$moduleUrls).length) {\n console.error(\"Unable to infer path to ace from script src,\", \"use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes\", \"or with webpack use ace/webpack-resolver\");\n reportErrorIfPathIsNotConfigured = function () { };\n }\n};\nexports.version = \"1.32.0\";\n\n});\n\nace.define(\"ace/loader_build\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nrequire(\"./lib/fixoldbrowsers\");\nvar config = require(\"./config\");\nconfig.setLoader(function(moduleName, cb) {\n require([moduleName], function(module) {\n cb(null, module);\n });\n});\n\nvar global = (function() {\n return this || typeof window != \"undefined\" && window;\n})();\n\nmodule.exports = function(ace) {\n config.init = init;\n config.$require = require;\n ace.require = require;\n\n if (typeof define === \"function\")\n ace.define = define;\n};\ninit(true);function init(packaged) {\n\n if (!global || !global.document)\n return;\n \n config.set(\"packaged\", packaged || require.packaged || module.packaged || (global.define && define.packaged));\n\n var scriptOptions = {};\n var scriptUrl = \"\";\n var currentScript = (document.currentScript || document._currentScript ); // native or polyfill\n var currentDocument = currentScript && currentScript.ownerDocument || document;\n \n if (currentScript && currentScript.src) {\n scriptUrl = currentScript.src.split(/[?#]/)[0].split(\"/\").slice(0, -1).join(\"/\") || \"\";\n }\n \n var scripts = currentDocument.getElementsByTagName(\"script\");\n for (var i=0; i [\" + this.end.row + \"/\" + this.end.column + \"]\");\n };\n Range.prototype.contains = function (row, column) {\n return this.compare(row, column) == 0;\n };\n Range.prototype.compareRange = function (range) {\n var cmp, end = range.end, start = range.start;\n cmp = this.compare(end.row, end.column);\n if (cmp == 1) {\n cmp = this.compare(start.row, start.column);\n if (cmp == 1) {\n return 2;\n }\n else if (cmp == 0) {\n return 1;\n }\n else {\n return 0;\n }\n }\n else if (cmp == -1) {\n return -2;\n }\n else {\n cmp = this.compare(start.row, start.column);\n if (cmp == -1) {\n return -1;\n }\n else if (cmp == 1) {\n return 42;\n }\n else {\n return 0;\n }\n }\n };\n Range.prototype.comparePoint = function (p) {\n return this.compare(p.row, p.column);\n };\n Range.prototype.containsRange = function (range) {\n return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n };\n Range.prototype.intersects = function (range) {\n var cmp = this.compareRange(range);\n return (cmp == -1 || cmp == 0 || cmp == 1);\n };\n Range.prototype.isEnd = function (row, column) {\n return this.end.row == row && this.end.column == column;\n };\n Range.prototype.isStart = function (row, column) {\n return this.start.row == row && this.start.column == column;\n };\n Range.prototype.setStart = function (row, column) {\n if (typeof row == \"object\") {\n this.start.column = row.column;\n this.start.row = row.row;\n }\n else {\n this.start.row = row;\n this.start.column = column;\n }\n };\n Range.prototype.setEnd = function (row, column) {\n if (typeof row == \"object\") {\n this.end.column = row.column;\n this.end.row = row.row;\n }\n else {\n this.end.row = row;\n this.end.column = column;\n }\n };\n Range.prototype.inside = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column) || this.isStart(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.insideStart = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.insideEnd = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isStart(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.compare = function (row, column) {\n if (!this.isMultiLine()) {\n if (row === this.start.row) {\n return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n }\n }\n if (row < this.start.row)\n return -1;\n if (row > this.end.row)\n return 1;\n if (this.start.row === row)\n return column >= this.start.column ? 0 : -1;\n if (this.end.row === row)\n return column <= this.end.column ? 0 : 1;\n return 0;\n };\n Range.prototype.compareStart = function (row, column) {\n if (this.start.row == row && this.start.column == column) {\n return -1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.compareEnd = function (row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.compareInside = function (row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n }\n else if (this.start.row == row && this.start.column == column) {\n return -1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.clipRows = function (firstRow, lastRow) {\n if (this.end.row > lastRow)\n var end = { row: lastRow + 1, column: 0 };\n else if (this.end.row < firstRow)\n var end = { row: firstRow, column: 0 };\n if (this.start.row > lastRow)\n var start = { row: lastRow + 1, column: 0 };\n else if (this.start.row < firstRow)\n var start = { row: firstRow, column: 0 };\n return Range.fromPoints(start || this.start, end || this.end);\n };\n Range.prototype.extend = function (row, column) {\n var cmp = this.compare(row, column);\n if (cmp == 0)\n return this;\n else if (cmp == -1)\n var start = { row: row, column: column };\n else\n var end = { row: row, column: column };\n return Range.fromPoints(start || this.start, end || this.end);\n };\n Range.prototype.isEmpty = function () {\n return (this.start.row === this.end.row && this.start.column === this.end.column);\n };\n Range.prototype.isMultiLine = function () {\n return (this.start.row !== this.end.row);\n };\n Range.prototype.clone = function () {\n return Range.fromPoints(this.start, this.end);\n };\n Range.prototype.collapseRows = function () {\n if (this.end.column == 0)\n return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row - 1), 0);\n else\n return new Range(this.start.row, 0, this.end.row, 0);\n };\n Range.prototype.toScreenRange = function (session) {\n var screenPosStart = session.documentToScreenPosition(this.start);\n var screenPosEnd = session.documentToScreenPosition(this.end);\n return new Range(screenPosStart.row, screenPosStart.column, screenPosEnd.row, screenPosEnd.column);\n };\n Range.prototype.moveBy = function (row, column) {\n this.start.row += row;\n this.start.column += column;\n this.end.row += row;\n this.end.column += column;\n };\n return Range;\n}());\nRange.fromPoints = function (start, end) {\n return new Range(start.row, start.column, end.row, end.column);\n};\nRange.comparePoints = comparePoints;\nRange.comparePoints = function (p1, p2) {\n return p1.row - p2.row || p1.column - p2.column;\n};\nexports.Range = Range;\n\n});\n\nace.define(\"ace/lib/keys\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\"], function(require, exports, module){/*! @license\n==========================================================================\nSproutCore -- JavaScript Application Framework\ncopyright 2006-2009, Sprout Systems Inc., Apple Inc. and contributors.\n\nPermission is hereby granted, free of charge, to any person obtaining a\ncopy of this software and associated documentation files (the \"Software\"),\nto deal in the Software without restriction, including without limitation\nthe rights to use, copy, modify, merge, publish, distribute, sublicense,\nand/or sell copies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\nDEALINGS IN THE SOFTWARE.\n\nSproutCore and the SproutCore logo are trademarks of Sprout Systems, Inc.\n\nFor more information about SproutCore, visit http://www.sproutcore.com\n\n\n==========================================================================\n@license */\n\"use strict\";\nvar oop = require(\"./oop\");\nvar Keys = (function () {\n var ret = {\n MODIFIER_KEYS: {\n 16: 'Shift', 17: 'Ctrl', 18: 'Alt', 224: 'Meta',\n 91: 'MetaLeft', 92: 'MetaRight', 93: 'ContextMenu'\n },\n KEY_MODS: {\n \"ctrl\": 1, \"alt\": 2, \"option\": 2, \"shift\": 4,\n \"super\": 8, \"meta\": 8, \"command\": 8, \"cmd\": 8,\n \"control\": 1\n },\n FUNCTION_KEYS: {\n 8: \"Backspace\",\n 9: \"Tab\",\n 13: \"Return\",\n 19: \"Pause\",\n 27: \"Esc\",\n 32: \"Space\",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"Left\",\n 38: \"Up\",\n 39: \"Right\",\n 40: \"Down\",\n 44: \"Print\",\n 45: \"Insert\",\n 46: \"Delete\",\n 96: \"Numpad0\",\n 97: \"Numpad1\",\n 98: \"Numpad2\",\n 99: \"Numpad3\",\n 100: \"Numpad4\",\n 101: \"Numpad5\",\n 102: \"Numpad6\",\n 103: \"Numpad7\",\n 104: \"Numpad8\",\n 105: \"Numpad9\",\n '-13': \"NumpadEnter\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"Numlock\",\n 145: \"Scrolllock\"\n },\n PRINTABLE_KEYS: {\n 32: ' ', 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5',\n 54: '6', 55: '7', 56: '8', 57: '9', 59: ';', 61: '=', 65: 'a',\n 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h',\n 73: 'i', 74: 'j', 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o',\n 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't', 85: 'u', 86: 'v',\n 87: 'w', 88: 'x', 89: 'y', 90: 'z', 107: '+', 109: '-', 110: '.',\n 186: ';', 187: '=', 188: ',', 189: '-', 190: '.', 191: '/', 192: '`',\n 219: '[', 220: '\\\\', 221: ']', 222: \"'\", 111: '/', 106: '*'\n }\n };\n ret.PRINTABLE_KEYS[173] = '-';\n var name, i;\n for (i in ret.FUNCTION_KEYS) {\n name = ret.FUNCTION_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n for (i in ret.PRINTABLE_KEYS) {\n name = ret.PRINTABLE_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n oop.mixin(ret, ret.MODIFIER_KEYS);\n oop.mixin(ret, ret.PRINTABLE_KEYS);\n oop.mixin(ret, ret.FUNCTION_KEYS);\n ret.enter = ret[\"return\"];\n ret.escape = ret.esc;\n ret.del = ret[\"delete\"];\n (function () {\n var mods = [\"cmd\", \"ctrl\", \"alt\", \"shift\"];\n for (var i = Math.pow(2, mods.length); i--;) {\n ret.KEY_MODS[i] = mods.filter(function (x) {\n return i & ret.KEY_MODS[x];\n }).join(\"-\") + \"-\";\n }\n })();\n ret.KEY_MODS[0] = \"\";\n ret.KEY_MODS[-1] = \"input-\";\n return ret;\n})();\noop.mixin(exports, Keys);\nexports.default = exports;\nexports.keyCodeToString = function (keyCode) {\n var keyString = Keys[keyCode];\n if (typeof keyString != \"string\")\n keyString = String.fromCharCode(keyCode);\n return keyString.toLowerCase();\n};\n\n});\n\nace.define(\"ace/lib/event\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar keys = require(\"./keys\");\nvar useragent = require(\"./useragent\");\nvar pressedKeys = null;\nvar ts = 0;\nvar activeListenerOptions;\nfunction detectListenerOptionsSupport() {\n activeListenerOptions = false;\n try {\n document.createComment(\"\").addEventListener(\"test\", function () { }, {\n get passive() {\n activeListenerOptions = { passive: false };\n }\n });\n }\n catch (e) { }\n}\nfunction getListenerOptions() {\n if (activeListenerOptions == undefined)\n detectListenerOptionsSupport();\n return activeListenerOptions;\n}\nfunction EventListener(elem, type, callback) {\n this.elem = elem;\n this.type = type;\n this.callback = callback;\n}\nEventListener.prototype.destroy = function () {\n removeListener(this.elem, this.type, this.callback);\n this.elem = this.type = this.callback = undefined;\n};\nvar addListener = exports.addListener = function (elem, type, callback, destroyer) {\n elem.addEventListener(type, callback, getListenerOptions());\n if (destroyer)\n destroyer.$toDestroy.push(new EventListener(elem, type, callback));\n};\nvar removeListener = exports.removeListener = function (elem, type, callback) {\n elem.removeEventListener(type, callback, getListenerOptions());\n};\nexports.stopEvent = function (e) {\n exports.stopPropagation(e);\n exports.preventDefault(e);\n return false;\n};\nexports.stopPropagation = function (e) {\n if (e.stopPropagation)\n e.stopPropagation();\n};\nexports.preventDefault = function (e) {\n if (e.preventDefault)\n e.preventDefault();\n};\nexports.getButton = function (e) {\n if (e.type == \"dblclick\")\n return 0;\n if (e.type == \"contextmenu\" || (useragent.isMac && (e.ctrlKey && !e.altKey && !e.shiftKey)))\n return 2;\n return e.button;\n};\nexports.capture = function (el, eventHandler, releaseCaptureHandler) {\n var ownerDocument = el && el.ownerDocument || document;\n function onMouseUp(e) {\n eventHandler && eventHandler(e);\n releaseCaptureHandler && releaseCaptureHandler(e);\n removeListener(ownerDocument, \"mousemove\", eventHandler);\n removeListener(ownerDocument, \"mouseup\", onMouseUp);\n removeListener(ownerDocument, \"dragstart\", onMouseUp);\n }\n addListener(ownerDocument, \"mousemove\", eventHandler);\n addListener(ownerDocument, \"mouseup\", onMouseUp);\n addListener(ownerDocument, \"dragstart\", onMouseUp);\n return onMouseUp;\n};\nexports.addMouseWheelListener = function (el, callback, destroyer) {\n addListener(el, \"wheel\", function (e) {\n var factor = 0.15;\n var deltaX = e.deltaX || 0;\n var deltaY = e.deltaY || 0;\n switch (e.deltaMode) {\n case e.DOM_DELTA_PIXEL:\n e.wheelX = deltaX * factor;\n e.wheelY = deltaY * factor;\n break;\n case e.DOM_DELTA_LINE:\n var linePixels = 15;\n e.wheelX = deltaX * linePixels;\n e.wheelY = deltaY * linePixels;\n break;\n case e.DOM_DELTA_PAGE:\n var pagePixels = 150;\n e.wheelX = deltaX * pagePixels;\n e.wheelY = deltaY * pagePixels;\n break;\n }\n callback(e);\n }, destroyer);\n};\nexports.addMultiMouseDownListener = function (elements, timeouts, eventHandler, callbackName, destroyer) {\n var clicks = 0;\n var startX, startY, timer;\n var eventNames = {\n 2: \"dblclick\",\n 3: \"tripleclick\",\n 4: \"quadclick\"\n };\n function onMousedown(e) {\n if (exports.getButton(e) !== 0) {\n clicks = 0;\n }\n else if (e.detail > 1) {\n clicks++;\n if (clicks > 4)\n clicks = 1;\n }\n else {\n clicks = 1;\n }\n if (useragent.isIE) {\n var isNewClick = Math.abs(e.clientX - startX) > 5 || Math.abs(e.clientY - startY) > 5;\n if (!timer || isNewClick)\n clicks = 1;\n if (timer)\n clearTimeout(timer);\n timer = setTimeout(function () { timer = null; }, timeouts[clicks - 1] || 600);\n if (clicks == 1) {\n startX = e.clientX;\n startY = e.clientY;\n }\n }\n e._clicks = clicks;\n eventHandler[callbackName](\"mousedown\", e);\n if (clicks > 4)\n clicks = 0;\n else if (clicks > 1)\n return eventHandler[callbackName](eventNames[clicks], e);\n }\n if (!Array.isArray(elements))\n elements = [elements];\n elements.forEach(function (el) {\n addListener(el, \"mousedown\", onMousedown, destroyer);\n });\n};\nvar getModifierHash = function (e) {\n return 0 | (e.ctrlKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.metaKey ? 8 : 0);\n};\nexports.getModifierString = function (e) {\n return keys.KEY_MODS[getModifierHash(e)];\n};\nfunction normalizeCommandKeys(callback, e, keyCode) {\n var hashId = getModifierHash(e);\n if (!useragent.isMac && pressedKeys) {\n if (e.getModifierState && (e.getModifierState(\"OS\") || e.getModifierState(\"Win\")))\n hashId |= 8;\n if (pressedKeys.altGr) {\n if ((3 & hashId) != 3)\n pressedKeys.altGr = 0;\n else\n return;\n }\n if (keyCode === 18 || keyCode === 17) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (keyCode === 17 && location === 1) {\n if (pressedKeys[keyCode] == 1)\n ts = e.timeStamp;\n }\n else if (keyCode === 18 && hashId === 3 && location === 2) {\n var dt = e.timeStamp - ts;\n if (dt < 50)\n pressedKeys.altGr = true;\n }\n }\n }\n if (keyCode in keys.MODIFIER_KEYS) {\n keyCode = -1;\n }\n if (!hashId && keyCode === 13) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (location === 3) {\n callback(e, hashId, -keyCode);\n if (e.defaultPrevented)\n return;\n }\n }\n if (useragent.isChromeOS && hashId & 8) {\n callback(e, hashId, keyCode);\n if (e.defaultPrevented)\n return;\n else\n hashId &= ~8;\n }\n if (!hashId && !(keyCode in keys.FUNCTION_KEYS) && !(keyCode in keys.PRINTABLE_KEYS)) {\n return false;\n }\n return callback(e, hashId, keyCode);\n}\nexports.addCommandKeyListener = function (el, callback, destroyer) {\n if (useragent.isOldGecko || (useragent.isOpera && !(\"KeyboardEvent\" in window))) {\n var lastKeyDownKeyCode = null;\n addListener(el, \"keydown\", function (e) {\n lastKeyDownKeyCode = e.keyCode;\n }, destroyer);\n addListener(el, \"keypress\", function (e) {\n return normalizeCommandKeys(callback, e, lastKeyDownKeyCode);\n }, destroyer);\n }\n else {\n var lastDefaultPrevented = null;\n addListener(el, \"keydown\", function (e) {\n pressedKeys[e.keyCode] = (pressedKeys[e.keyCode] || 0) + 1;\n var result = normalizeCommandKeys(callback, e, e.keyCode);\n lastDefaultPrevented = e.defaultPrevented;\n return result;\n }, destroyer);\n addListener(el, \"keypress\", function (e) {\n if (lastDefaultPrevented && (e.ctrlKey || e.altKey || e.shiftKey || e.metaKey)) {\n exports.stopEvent(e);\n lastDefaultPrevented = null;\n }\n }, destroyer);\n addListener(el, \"keyup\", function (e) {\n pressedKeys[e.keyCode] = null;\n }, destroyer);\n if (!pressedKeys) {\n resetPressedKeys();\n addListener(window, \"focus\", resetPressedKeys);\n }\n }\n};\nfunction resetPressedKeys() {\n pressedKeys = Object.create(null);\n}\nif (typeof window == \"object\" && window.postMessage && !useragent.isOldIE) {\n var postMessageId = 1;\n exports.nextTick = function (callback, win) {\n win = win || window;\n var messageName = \"zero-timeout-message-\" + (postMessageId++);\n var listener = function (e) {\n if (e.data == messageName) {\n exports.stopPropagation(e);\n removeListener(win, \"message\", listener);\n callback();\n }\n };\n addListener(win, \"message\", listener);\n win.postMessage(messageName, \"*\");\n };\n}\nexports.$idleBlocked = false;\nexports.onIdle = function (cb, timeout) {\n return setTimeout(function handler() {\n if (!exports.$idleBlocked) {\n cb();\n }\n else {\n setTimeout(handler, 100);\n }\n }, timeout);\n};\nexports.$idleBlockId = null;\nexports.blockIdle = function (delay) {\n if (exports.$idleBlockId)\n clearTimeout(exports.$idleBlockId);\n exports.$idleBlocked = true;\n exports.$idleBlockId = setTimeout(function () {\n exports.$idleBlocked = false;\n }, delay || 100);\n};\nexports.nextFrame = typeof window == \"object\" && (window.requestAnimationFrame\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame\n || window.msRequestAnimationFrame\n || window.oRequestAnimationFrame);\nif (exports.nextFrame)\n exports.nextFrame = exports.nextFrame.bind(window);\nelse\n exports.nextFrame = function (callback) {\n setTimeout(callback, 17);\n };\n\n});\n\nace.define(\"ace/clipboard\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar $cancelT;\nmodule.exports = {\n lineMode: false,\n pasteCancelled: function () {\n if ($cancelT && $cancelT > Date.now() - 50)\n return true;\n return $cancelT = false;\n },\n cancel: function () {\n $cancelT = Date.now();\n }\n};\n\n});\n\nace.define(\"ace/keyboard/textinput\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/config\",\"ace/lib/useragent\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/clipboard\",\"ace/lib/keys\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar nls = require(\"../config\").nls;\nvar useragent = require(\"../lib/useragent\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar clipboard = require(\"../clipboard\");\nvar BROKEN_SETDATA = useragent.isChrome < 18;\nvar USE_IE_MIME_TYPE = useragent.isIE;\nvar HAS_FOCUS_ARGS = useragent.isChrome > 63;\nvar MAX_LINE_LENGTH = 400;\nvar KEYS = require(\"../lib/keys\");\nvar MODS = KEYS.KEY_MODS;\nvar isIOS = useragent.isIOS;\nvar valueResetRegex = isIOS ? /\\s/ : /\\n/;\nvar isMobile = useragent.isMobile;\nvar TextInput = function (parentNode, host) {\n var text = dom.createElement(\"textarea\");\n text.className = \"ace_text-input\";\n text.setAttribute(\"wrap\", \"off\");\n text.setAttribute(\"autocorrect\", \"off\");\n text.setAttribute(\"autocapitalize\", \"off\");\n text.setAttribute(\"spellcheck\", false);\n text.style.opacity = \"0\";\n parentNode.insertBefore(text, parentNode.firstChild);\n var copied = false;\n var pasted = false;\n var inComposition = false;\n var sendingText = false;\n var tempStyle = '';\n if (!isMobile)\n text.style.fontSize = \"1px\";\n var commandMode = false;\n var ignoreFocusEvents = false;\n var lastValue = \"\";\n var lastSelectionStart = 0;\n var lastSelectionEnd = 0;\n var lastRestoreEnd = 0;\n var rowStart = Number.MAX_SAFE_INTEGER;\n var rowEnd = Number.MIN_SAFE_INTEGER;\n var numberOfExtraLines = 0;\n try {\n var isFocused = document.activeElement === text;\n }\n catch (e) { }\n this.setNumberOfExtraLines = function (number) {\n rowStart = Number.MAX_SAFE_INTEGER;\n rowEnd = Number.MIN_SAFE_INTEGER;\n if (number < 0) {\n numberOfExtraLines = 0;\n return;\n }\n numberOfExtraLines = number;\n };\n this.setAriaOptions = function (options) {\n if (options.activeDescendant) {\n text.setAttribute(\"aria-haspopup\", \"true\");\n text.setAttribute(\"aria-autocomplete\", options.inline ? \"both\" : \"list\");\n text.setAttribute(\"aria-activedescendant\", options.activeDescendant);\n }\n else {\n text.setAttribute(\"aria-haspopup\", \"false\");\n text.setAttribute(\"aria-autocomplete\", \"both\");\n text.removeAttribute(\"aria-activedescendant\");\n }\n if (options.role) {\n text.setAttribute(\"role\", options.role);\n }\n if (options.setLabel) {\n text.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n if (host.session) {\n var row = host.session.selection.cursor.row;\n text.setAttribute(\"aria-label\", nls(\"Cursor at row $0\", [row + 1]));\n }\n }\n };\n this.setAriaOptions({ role: \"textbox\" });\n event.addListener(text, \"blur\", function (e) {\n if (ignoreFocusEvents)\n return;\n host.onBlur(e);\n isFocused = false;\n }, host);\n event.addListener(text, \"focus\", function (e) {\n if (ignoreFocusEvents)\n return;\n isFocused = true;\n if (useragent.isEdge) {\n try {\n if (!document.hasFocus())\n return;\n }\n catch (e) { }\n }\n host.onFocus(e);\n if (useragent.isEdge)\n setTimeout(resetSelection);\n else\n resetSelection();\n }, host);\n this.$focusScroll = false;\n this.focus = function () {\n this.setAriaOptions({\n setLabel: host.renderer.enableKeyboardAccessibility\n });\n if (tempStyle || HAS_FOCUS_ARGS || this.$focusScroll == \"browser\")\n return text.focus({ preventScroll: true });\n var top = text.style.top;\n text.style.position = \"fixed\";\n text.style.top = \"0px\";\n try {\n var isTransformed = text.getBoundingClientRect().top != 0;\n }\n catch (e) {\n return;\n }\n var ancestors = [];\n if (isTransformed) {\n var t = text.parentElement;\n while (t && t.nodeType == 1) {\n ancestors.push(t);\n t.setAttribute(\"ace_nocontext\", true);\n if (!t.parentElement && t.getRootNode)\n t = t.getRootNode().host;\n else\n t = t.parentElement;\n }\n }\n text.focus({ preventScroll: true });\n if (isTransformed) {\n ancestors.forEach(function (p) {\n p.removeAttribute(\"ace_nocontext\");\n });\n }\n setTimeout(function () {\n text.style.position = \"\";\n if (text.style.top == \"0px\")\n text.style.top = top;\n }, 0);\n };\n this.blur = function () {\n text.blur();\n };\n this.isFocused = function () {\n return isFocused;\n };\n host.on(\"beforeEndOperation\", function () {\n var curOp = host.curOp;\n var commandName = curOp && curOp.command && curOp.command.name;\n if (commandName == \"insertstring\")\n return;\n var isUserAction = commandName && (curOp.docChanged || curOp.selectionChanged);\n if (inComposition && isUserAction) {\n lastValue = text.value = \"\";\n onCompositionEnd();\n }\n resetSelection();\n });\n var positionToSelection = function (row, column) {\n var selection = column;\n for (var i = 1; i <= row - rowStart && i < 2 * numberOfExtraLines + 1; i++) {\n selection += host.session.getLine(row - i).length + 1;\n }\n return selection;\n };\n var resetSelection = isIOS\n ? function (value) {\n if (!isFocused || (copied && !value) || sendingText)\n return;\n if (!value)\n value = \"\";\n var newValue = \"\\n ab\" + value + \"cde fg\\n\";\n if (newValue != text.value)\n text.value = lastValue = newValue;\n var selectionStart = 4;\n var selectionEnd = 4 + (value.length || (host.selection.isEmpty() ? 0 : 1));\n if (lastSelectionStart != selectionStart || lastSelectionEnd != selectionEnd) {\n text.setSelectionRange(selectionStart, selectionEnd);\n }\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n }\n : function () {\n if (inComposition || sendingText)\n return;\n if (!isFocused && !afterContextMenu)\n return;\n inComposition = true;\n var selectionStart = 0;\n var selectionEnd = 0;\n var line = \"\";\n if (host.session) {\n var selection = host.selection;\n var range = selection.getRange();\n var row = selection.cursor.row;\n if (row === rowEnd + 1) {\n rowStart = rowEnd + 1;\n rowEnd = rowStart + 2 * numberOfExtraLines;\n }\n else if (row === rowStart - 1) {\n rowEnd = rowStart - 1;\n rowStart = rowEnd - 2 * numberOfExtraLines;\n }\n else if (row < rowStart - 1 || row > rowEnd + 1) {\n rowStart = row > numberOfExtraLines ? row - numberOfExtraLines : 0;\n rowEnd = row > numberOfExtraLines ? row + numberOfExtraLines : 2 * numberOfExtraLines;\n }\n var lines = [];\n for (var i = rowStart; i <= rowEnd; i++) {\n lines.push(host.session.getLine(i));\n }\n line = lines.join('\\n');\n selectionStart = positionToSelection(range.start.row, range.start.column);\n selectionEnd = positionToSelection(range.end.row, range.end.column);\n if (range.start.row < rowStart) {\n var prevLine = host.session.getLine(rowStart - 1);\n selectionStart = range.start.row < rowStart - 1 ? 0 : selectionStart;\n selectionEnd += prevLine.length + 1;\n line = prevLine + \"\\n\" + line;\n }\n else if (range.end.row > rowEnd) {\n var nextLine = host.session.getLine(rowEnd + 1);\n selectionEnd = range.end.row > rowEnd + 1 ? nextLine.length : range.end.column;\n selectionEnd += line.length + 1;\n line = line + \"\\n\" + nextLine;\n }\n else if (isMobile && row > 0) {\n line = \"\\n\" + line;\n selectionEnd += 1;\n selectionStart += 1;\n }\n if (line.length > MAX_LINE_LENGTH) {\n if (selectionStart < MAX_LINE_LENGTH && selectionEnd < MAX_LINE_LENGTH) {\n line = line.slice(0, MAX_LINE_LENGTH);\n }\n else {\n line = \"\\n\";\n if (selectionStart == selectionEnd) {\n selectionStart = selectionEnd = 0;\n }\n else {\n selectionStart = 0;\n selectionEnd = 1;\n }\n }\n }\n var newValue = line + \"\\n\\n\";\n if (newValue != lastValue) {\n text.value = lastValue = newValue;\n lastSelectionStart = lastSelectionEnd = newValue.length;\n }\n }\n if (afterContextMenu) {\n lastSelectionStart = text.selectionStart;\n lastSelectionEnd = text.selectionEnd;\n }\n if (lastSelectionEnd != selectionEnd\n || lastSelectionStart != selectionStart\n || text.selectionEnd != lastSelectionEnd // on ie edge selectionEnd changes silently after the initialization\n ) {\n try {\n text.setSelectionRange(selectionStart, selectionEnd);\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n }\n catch (e) { }\n }\n inComposition = false;\n };\n this.resetSelection = resetSelection;\n if (isFocused)\n host.onFocus();\n var isAllSelected = function (text) {\n return text.selectionStart === 0 && text.selectionEnd >= lastValue.length\n && text.value === lastValue && lastValue\n && text.selectionEnd !== lastSelectionEnd;\n };\n var onSelect = function (e) {\n if (inComposition)\n return;\n if (copied) {\n copied = false;\n }\n else if (isAllSelected(text)) {\n host.selectAll();\n resetSelection();\n }\n else if (isMobile && text.selectionStart != lastSelectionStart) {\n resetSelection();\n }\n };\n var inputHandler = null;\n this.setInputHandler = function (cb) { inputHandler = cb; };\n this.getInputHandler = function () { return inputHandler; };\n var afterContextMenu = false;\n var sendText = function (value, fromInput) {\n if (afterContextMenu)\n afterContextMenu = false;\n if (pasted) {\n resetSelection();\n if (value)\n host.onPaste(value);\n pasted = false;\n return \"\";\n }\n else {\n var selectionStart = text.selectionStart;\n var selectionEnd = text.selectionEnd;\n var extendLeft = lastSelectionStart;\n var extendRight = lastValue.length - lastSelectionEnd;\n var inserted = value;\n var restoreStart = value.length - selectionStart;\n var restoreEnd = value.length - selectionEnd;\n var i = 0;\n while (extendLeft > 0 && lastValue[i] == value[i]) {\n i++;\n extendLeft--;\n }\n inserted = inserted.slice(i);\n i = 1;\n while (extendRight > 0 && lastValue.length - i > lastSelectionStart - 1 && lastValue[lastValue.length - i] == value[value.length - i]) {\n i++;\n extendRight--;\n }\n restoreStart -= i - 1;\n restoreEnd -= i - 1;\n var endIndex = inserted.length - i + 1;\n if (endIndex < 0) {\n extendLeft = -endIndex;\n endIndex = 0;\n }\n inserted = inserted.slice(0, endIndex);\n if (!fromInput && !inserted && !restoreStart && !extendLeft && !extendRight && !restoreEnd)\n return \"\";\n sendingText = true;\n var shouldReset = false;\n if (useragent.isAndroid && inserted == \". \") {\n inserted = \" \";\n shouldReset = true;\n }\n if (inserted && !extendLeft && !extendRight && !restoreStart && !restoreEnd || commandMode) {\n host.onTextInput(inserted);\n }\n else {\n host.onTextInput(inserted, {\n extendLeft: extendLeft,\n extendRight: extendRight,\n restoreStart: restoreStart,\n restoreEnd: restoreEnd\n });\n }\n sendingText = false;\n lastValue = value;\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n lastRestoreEnd = restoreEnd;\n return shouldReset ? \"\\n\" : inserted;\n }\n };\n var onInput = function (e) {\n if (inComposition)\n return onCompositionUpdate();\n if (e && e.inputType) {\n if (e.inputType == \"historyUndo\")\n return host.execCommand(\"undo\");\n if (e.inputType == \"historyRedo\")\n return host.execCommand(\"redo\");\n }\n var data = text.value;\n var inserted = sendText(data, true);\n if (data.length > MAX_LINE_LENGTH + 100\n || valueResetRegex.test(inserted)\n || isMobile && lastSelectionStart < 1 && lastSelectionStart == lastSelectionEnd) {\n resetSelection();\n }\n };\n var handleClipboardData = function (e, data, forceIEMime) {\n var clipboardData = e.clipboardData || window.clipboardData;\n if (!clipboardData || BROKEN_SETDATA)\n return;\n var mime = USE_IE_MIME_TYPE || forceIEMime ? \"Text\" : \"text/plain\";\n try {\n if (data) {\n return clipboardData.setData(mime, data) !== false;\n }\n else {\n return clipboardData.getData(mime);\n }\n }\n catch (e) {\n if (!forceIEMime)\n return handleClipboardData(e, data, true);\n }\n };\n var doCopy = function (e, isCut) {\n var data = host.getCopyText();\n if (!data)\n return event.preventDefault(e);\n if (handleClipboardData(e, data)) {\n if (isIOS) {\n resetSelection(data);\n copied = data;\n setTimeout(function () {\n copied = false;\n }, 10);\n }\n isCut ? host.onCut() : host.onCopy();\n event.preventDefault(e);\n }\n else {\n copied = true;\n text.value = data;\n text.select();\n setTimeout(function () {\n copied = false;\n resetSelection();\n isCut ? host.onCut() : host.onCopy();\n });\n }\n };\n var onCut = function (e) {\n doCopy(e, true);\n };\n var onCopy = function (e) {\n doCopy(e, false);\n };\n var onPaste = function (e) {\n var data = handleClipboardData(e);\n if (clipboard.pasteCancelled())\n return;\n if (typeof data == \"string\") {\n if (data)\n host.onPaste(data, e);\n if (useragent.isIE)\n setTimeout(resetSelection);\n event.preventDefault(e);\n }\n else {\n text.value = \"\";\n pasted = true;\n }\n };\n event.addCommandKeyListener(text, host.onCommandKey.bind(host), host);\n event.addListener(text, \"select\", onSelect, host);\n event.addListener(text, \"input\", onInput, host);\n event.addListener(text, \"cut\", onCut, host);\n event.addListener(text, \"copy\", onCopy, host);\n event.addListener(text, \"paste\", onPaste, host);\n if (!('oncut' in text) || !('oncopy' in text) || !('onpaste' in text)) {\n event.addListener(parentNode, \"keydown\", function (e) {\n if ((useragent.isMac && !e.metaKey) || !e.ctrlKey)\n return;\n switch (e.keyCode) {\n case 67:\n onCopy(e);\n break;\n case 86:\n onPaste(e);\n break;\n case 88:\n onCut(e);\n break;\n }\n }, host);\n }\n var onCompositionStart = function (e) {\n if (inComposition || !host.onCompositionStart || host.$readOnly)\n return;\n inComposition = {};\n if (commandMode)\n return;\n if (e.data)\n inComposition.useTextareaForIME = false;\n setTimeout(onCompositionUpdate, 0);\n host._signal(\"compositionStart\");\n host.on(\"mousedown\", cancelComposition);\n var range = host.getSelectionRange();\n range.end.row = range.start.row;\n range.end.column = range.start.column;\n inComposition.markerRange = range;\n inComposition.selectionStart = lastSelectionStart;\n host.onCompositionStart(inComposition);\n if (inComposition.useTextareaForIME) {\n lastValue = text.value = \"\";\n lastSelectionStart = 0;\n lastSelectionEnd = 0;\n }\n else {\n if (text.msGetInputContext)\n inComposition.context = text.msGetInputContext();\n if (text.getInputContext)\n inComposition.context = text.getInputContext();\n }\n };\n var onCompositionUpdate = function () {\n if (!inComposition || !host.onCompositionUpdate || host.$readOnly)\n return;\n if (commandMode)\n return cancelComposition();\n if (inComposition.useTextareaForIME) {\n host.onCompositionUpdate(text.value);\n }\n else {\n var data = text.value;\n sendText(data);\n if (inComposition.markerRange) {\n if (inComposition.context) {\n inComposition.markerRange.start.column = inComposition.selectionStart\n = inComposition.context.compositionStartOffset;\n }\n inComposition.markerRange.end.column = inComposition.markerRange.start.column\n + lastSelectionEnd - inComposition.selectionStart + lastRestoreEnd;\n }\n }\n };\n var onCompositionEnd = function (e) {\n if (!host.onCompositionEnd || host.$readOnly)\n return;\n inComposition = false;\n host.onCompositionEnd();\n host.off(\"mousedown\", cancelComposition);\n if (e)\n onInput();\n };\n function cancelComposition() {\n ignoreFocusEvents = true;\n text.blur();\n text.focus();\n ignoreFocusEvents = false;\n }\n var syncComposition = lang.delayedCall(onCompositionUpdate, 50).schedule.bind(null, null);\n function onKeyup(e) {\n if (e.keyCode == 27 && text.value.length < text.selectionStart) {\n if (!inComposition)\n lastValue = text.value;\n lastSelectionStart = lastSelectionEnd = -1;\n resetSelection();\n }\n syncComposition();\n }\n event.addListener(text, \"compositionstart\", onCompositionStart, host);\n event.addListener(text, \"compositionupdate\", onCompositionUpdate, host);\n event.addListener(text, \"keyup\", onKeyup, host);\n event.addListener(text, \"keydown\", syncComposition, host);\n event.addListener(text, \"compositionend\", onCompositionEnd, host);\n this.getElement = function () {\n return text;\n };\n this.setCommandMode = function (value) {\n commandMode = value;\n text.readOnly = false;\n };\n this.setReadOnly = function (readOnly) {\n if (!commandMode)\n text.readOnly = readOnly;\n };\n this.setCopyWithEmptySelection = function (value) {\n };\n this.onContextMenu = function (e) {\n afterContextMenu = true;\n resetSelection();\n host._emit(\"nativecontextmenu\", { target: host, domEvent: e });\n this.moveToMouse(e, true);\n };\n this.moveToMouse = function (e, bringToFront) {\n if (!tempStyle)\n tempStyle = text.style.cssText;\n text.style.cssText = (bringToFront ? \"z-index:100000;\" : \"\")\n + (useragent.isIE ? \"opacity:0.1;\" : \"\")\n + \"text-indent: -\" + (lastSelectionStart + lastSelectionEnd) * host.renderer.characterWidth * 0.5 + \"px;\";\n var rect = host.container.getBoundingClientRect();\n var style = dom.computedStyle(host.container);\n var top = rect.top + (parseInt(style.borderTopWidth) || 0);\n var left = rect.left + (parseInt(rect.borderLeftWidth) || 0);\n var maxTop = rect.bottom - top - text.clientHeight - 2;\n var move = function (e) {\n dom.translate(text, e.clientX - left - 2, Math.min(e.clientY - top - 2, maxTop));\n };\n move(e);\n if (e.type != \"mousedown\")\n return;\n host.renderer.$isMousePressed = true;\n clearTimeout(closeTimeout);\n if (useragent.isWin)\n event.capture(host.container, move, onContextMenuClose);\n };\n this.onContextMenuClose = onContextMenuClose;\n var closeTimeout;\n function onContextMenuClose() {\n clearTimeout(closeTimeout);\n closeTimeout = setTimeout(function () {\n if (tempStyle) {\n text.style.cssText = tempStyle;\n tempStyle = '';\n }\n host.renderer.$isMousePressed = false;\n if (host.renderer.$keepTextAreaAtCursor)\n host.renderer.$moveTextAreaToCursor();\n }, 0);\n }\n var onContextMenu = function (e) {\n host.textInput.onContextMenu(e);\n onContextMenuClose();\n };\n event.addListener(text, \"mouseup\", onContextMenu, host);\n event.addListener(text, \"mousedown\", function (e) {\n e.preventDefault();\n onContextMenuClose();\n }, host);\n event.addListener(host.renderer.scroller, \"contextmenu\", onContextMenu, host);\n event.addListener(text, \"contextmenu\", onContextMenu, host);\n if (isIOS)\n addIosSelectionHandler(parentNode, host, text);\n function addIosSelectionHandler(parentNode, host, text) {\n var typingResetTimeout = null;\n var typing = false;\n text.addEventListener(\"keydown\", function (e) {\n if (typingResetTimeout)\n clearTimeout(typingResetTimeout);\n typing = true;\n }, true);\n text.addEventListener(\"keyup\", function (e) {\n typingResetTimeout = setTimeout(function () {\n typing = false;\n }, 100);\n }, true);\n var detectArrowKeys = function (e) {\n if (document.activeElement !== text)\n return;\n if (typing || inComposition || host.$mouseHandler.isMousePressed)\n return;\n if (copied) {\n return;\n }\n var selectionStart = text.selectionStart;\n var selectionEnd = text.selectionEnd;\n var key = null;\n var modifier = 0;\n if (selectionStart == 0) {\n key = KEYS.up;\n }\n else if (selectionStart == 1) {\n key = KEYS.home;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue[selectionEnd] == \"\\n\") {\n key = KEYS.end;\n }\n else if (selectionStart < lastSelectionStart && lastValue[selectionStart - 1] == \" \") {\n key = KEYS.left;\n modifier = MODS.option;\n }\n else if (selectionStart < lastSelectionStart\n || (selectionStart == lastSelectionStart\n && lastSelectionEnd != lastSelectionStart\n && selectionStart == selectionEnd)) {\n key = KEYS.left;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue.slice(0, selectionEnd).split(\"\\n\").length > 2) {\n key = KEYS.down;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue[selectionEnd - 1] == \" \") {\n key = KEYS.right;\n modifier = MODS.option;\n }\n else if (selectionEnd > lastSelectionEnd\n || (selectionEnd == lastSelectionEnd\n && lastSelectionEnd != lastSelectionStart\n && selectionStart == selectionEnd)) {\n key = KEYS.right;\n }\n if (selectionStart !== selectionEnd)\n modifier |= MODS.shift;\n if (key) {\n var result = host.onCommandKey({}, modifier, key);\n if (!result && host.commands) {\n key = KEYS.keyCodeToString(key);\n var command = host.commands.findKeyCommand(modifier, key);\n if (command)\n host.execCommand(command);\n }\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n resetSelection(\"\");\n }\n };\n document.addEventListener(\"selectionchange\", detectArrowKeys);\n host.on(\"destroy\", function () {\n document.removeEventListener(\"selectionchange\", detectArrowKeys);\n });\n }\n this.destroy = function () {\n if (text.parentElement)\n text.parentElement.removeChild(text);\n };\n};\nexports.TextInput = TextInput;\nexports.$setUserAgentForTests = function (_isMobile, _isIOS) {\n isMobile = _isMobile;\n isIOS = _isIOS;\n};\n\n});\n\nace.define(\"ace/mouse/default_handlers\",[\"require\",\"exports\",\"module\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar useragent = require(\"../lib/useragent\");\nvar DRAG_OFFSET = 0; // pixels\nvar SCROLL_COOLDOWN_T = 550; // milliseconds\nvar DefaultHandlers = /** @class */ (function () {\n function DefaultHandlers(mouseHandler) {\n mouseHandler.$clickSelection = null;\n var editor = mouseHandler.editor;\n editor.setDefaultHandler(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n editor.setDefaultHandler(\"dblclick\", this.onDoubleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"tripleclick\", this.onTripleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"quadclick\", this.onQuadClick.bind(mouseHandler));\n editor.setDefaultHandler(\"mousewheel\", this.onMouseWheel.bind(mouseHandler));\n var exports = [\"select\", \"startSelect\", \"selectEnd\", \"selectAllEnd\", \"selectByWordsEnd\",\n \"selectByLinesEnd\", \"dragWait\", \"dragWaitEnd\", \"focusWait\"];\n exports.forEach(function (x) {\n mouseHandler[x] = this[x];\n }, this);\n mouseHandler.selectByLines = this.extendSelectionBy.bind(mouseHandler, \"getLineRange\");\n mouseHandler.selectByWords = this.extendSelectionBy.bind(mouseHandler, \"getWordRange\");\n }\n DefaultHandlers.prototype.onMouseDown = function (ev) {\n var inSelection = ev.inSelection();\n var pos = ev.getDocumentPosition();\n this.mousedownEvent = ev;\n var editor = this.editor;\n var button = ev.getButton();\n if (button !== 0) {\n var selectionRange = editor.getSelectionRange();\n var selectionEmpty = selectionRange.isEmpty();\n if (selectionEmpty || button == 1)\n editor.selection.moveToPosition(pos);\n if (button == 2) {\n editor.textInput.onContextMenu(ev.domEvent);\n if (!useragent.isMozilla)\n ev.preventDefault();\n }\n return;\n }\n this.mousedownEvent.time = Date.now();\n if (inSelection && !editor.isFocused()) {\n editor.focus();\n if (this.$focusTimeout && !this.$clickSelection && !editor.inMultiSelectMode) {\n this.setState(\"focusWait\");\n this.captureMouse(ev);\n return;\n }\n }\n this.captureMouse(ev);\n this.startSelect(pos, ev.domEvent._clicks > 1);\n return ev.preventDefault();\n };\n DefaultHandlers.prototype.startSelect = function (pos, waitForClickSelection) {\n pos = pos || this.editor.renderer.screenToTextCoordinates(this.x, this.y);\n var editor = this.editor;\n if (!this.mousedownEvent)\n return;\n if (this.mousedownEvent.getShiftKey())\n editor.selection.selectToPosition(pos);\n else if (!waitForClickSelection)\n editor.selection.moveToPosition(pos);\n if (!waitForClickSelection)\n this.select();\n editor.setStyle(\"ace_selecting\");\n this.setState(\"select\");\n };\n DefaultHandlers.prototype.select = function () {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n if (this.$clickSelection) {\n var cmp = this.$clickSelection.comparePoint(cursor);\n if (cmp == -1) {\n anchor = this.$clickSelection.end;\n }\n else if (cmp == 1) {\n anchor = this.$clickSelection.start;\n }\n else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n };\n DefaultHandlers.prototype.extendSelectionBy = function (unitName) {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n var range = editor.selection[unitName](cursor.row, cursor.column);\n if (this.$clickSelection) {\n var cmpStart = this.$clickSelection.comparePoint(range.start);\n var cmpEnd = this.$clickSelection.comparePoint(range.end);\n if (cmpStart == -1 && cmpEnd <= 0) {\n anchor = this.$clickSelection.end;\n if (range.end.row != cursor.row || range.end.column != cursor.column)\n cursor = range.start;\n }\n else if (cmpEnd == 1 && cmpStart >= 0) {\n anchor = this.$clickSelection.start;\n if (range.start.row != cursor.row || range.start.column != cursor.column)\n cursor = range.end;\n }\n else if (cmpStart == -1 && cmpEnd == 1) {\n cursor = range.end;\n anchor = range.start;\n }\n else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n };\n DefaultHandlers.prototype.selectByLinesEnd = function () {\n this.$clickSelection = null;\n this.editor.unsetStyle(\"ace_selecting\");\n };\n DefaultHandlers.prototype.focusWait = function () {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n var time = Date.now();\n if (distance > DRAG_OFFSET || time - this.mousedownEvent.time > this.$focusTimeout)\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n };\n DefaultHandlers.prototype.onDoubleClick = function (ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n var session = editor.session;\n var range = session.getBracketRange(pos);\n if (range) {\n if (range.isEmpty()) {\n range.start.column--;\n range.end.column++;\n }\n this.setState(\"select\");\n }\n else {\n range = editor.selection.getWordRange(pos.row, pos.column);\n this.setState(\"selectByWords\");\n }\n this.$clickSelection = range;\n this.select();\n };\n DefaultHandlers.prototype.onTripleClick = function (ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n this.setState(\"selectByLines\");\n var range = editor.getSelectionRange();\n if (range.isMultiLine() && range.contains(pos.row, pos.column)) {\n this.$clickSelection = editor.selection.getLineRange(range.start.row);\n this.$clickSelection.end = editor.selection.getLineRange(range.end.row).end;\n }\n else {\n this.$clickSelection = editor.selection.getLineRange(pos.row);\n }\n this.select();\n };\n DefaultHandlers.prototype.onQuadClick = function (ev) {\n var editor = this.editor;\n editor.selectAll();\n this.$clickSelection = editor.getSelectionRange();\n this.setState(\"selectAll\");\n };\n DefaultHandlers.prototype.onMouseWheel = function (ev) {\n if (ev.getAccelKey())\n return;\n if (ev.getShiftKey() && ev.wheelY && !ev.wheelX) {\n ev.wheelX = ev.wheelY;\n ev.wheelY = 0;\n }\n var editor = this.editor;\n if (!this.$lastScroll)\n this.$lastScroll = { t: 0, vx: 0, vy: 0, allowed: 0 };\n var prevScroll = this.$lastScroll;\n var t = ev.domEvent.timeStamp;\n var dt = t - prevScroll.t;\n var vx = dt ? ev.wheelX / dt : prevScroll.vx;\n var vy = dt ? ev.wheelY / dt : prevScroll.vy;\n if (dt < SCROLL_COOLDOWN_T) {\n vx = (vx + prevScroll.vx) / 2;\n vy = (vy + prevScroll.vy) / 2;\n }\n var direction = Math.abs(vx / vy);\n var canScroll = false;\n if (direction >= 1 && editor.renderer.isScrollableBy(ev.wheelX * ev.speed, 0))\n canScroll = true;\n if (direction <= 1 && editor.renderer.isScrollableBy(0, ev.wheelY * ev.speed))\n canScroll = true;\n if (canScroll) {\n prevScroll.allowed = t;\n }\n else if (t - prevScroll.allowed < SCROLL_COOLDOWN_T) {\n var isSlower = Math.abs(vx) <= 1.5 * Math.abs(prevScroll.vx)\n && Math.abs(vy) <= 1.5 * Math.abs(prevScroll.vy);\n if (isSlower) {\n canScroll = true;\n prevScroll.allowed = t;\n }\n else {\n prevScroll.allowed = 0;\n }\n }\n prevScroll.t = t;\n prevScroll.vx = vx;\n prevScroll.vy = vy;\n if (canScroll) {\n editor.renderer.scrollBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n return ev.stop();\n }\n };\n return DefaultHandlers;\n}());\nDefaultHandlers.prototype.selectEnd = DefaultHandlers.prototype.selectByLinesEnd;\nDefaultHandlers.prototype.selectAllEnd = DefaultHandlers.prototype.selectByLinesEnd;\nDefaultHandlers.prototype.selectByWordsEnd = DefaultHandlers.prototype.selectByLinesEnd;\nexports.DefaultHandlers = DefaultHandlers;\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\nfunction calcRangeOrientation(range, cursor) {\n if (range.start.row == range.end.row)\n var cmp = 2 * cursor.column - range.start.column - range.end.column;\n else if (range.start.row == range.end.row - 1 && !range.start.column && !range.end.column)\n var cmp = cursor.column - 4;\n else\n var cmp = 2 * cursor.row - range.start.row - range.end.row;\n if (cmp < 0)\n return { cursor: range.start, anchor: range.end };\n else\n return { cursor: range.end, anchor: range.start };\n}\n\n});\n\nace.define(\"ace/tooltip\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar Range = require(\"./range\").Range;\nvar CLASSNAME = \"ace_tooltip\";\nvar Tooltip = /** @class */ (function () {\n function Tooltip(parentNode) {\n this.isOpen = false;\n this.$element = null;\n this.$parentNode = parentNode;\n }\n Tooltip.prototype.$init = function () {\n this.$element = dom.createElement(\"div\");\n this.$element.className = CLASSNAME;\n this.$element.style.display = \"none\";\n this.$parentNode.appendChild(this.$element);\n return this.$element;\n };\n Tooltip.prototype.getElement = function () {\n return this.$element || this.$init();\n };\n Tooltip.prototype.setText = function (text) {\n this.getElement().textContent = text;\n };\n Tooltip.prototype.setHtml = function (html) {\n this.getElement().innerHTML = html;\n };\n Tooltip.prototype.setPosition = function (x, y) {\n this.getElement().style.left = x + \"px\";\n this.getElement().style.top = y + \"px\";\n };\n Tooltip.prototype.setClassName = function (className) {\n dom.addCssClass(this.getElement(), className);\n };\n Tooltip.prototype.setTheme = function (theme) {\n this.$element.className = CLASSNAME + \" \" +\n (theme.isDark ? \"ace_dark \" : \"\") + (theme.cssClass || \"\");\n };\n Tooltip.prototype.show = function (text, x, y) {\n if (text != null)\n this.setText(text);\n if (x != null && y != null)\n this.setPosition(x, y);\n if (!this.isOpen) {\n this.getElement().style.display = \"block\";\n this.isOpen = true;\n }\n };\n Tooltip.prototype.hide = function () {\n if (this.isOpen) {\n this.getElement().style.display = \"none\";\n this.getElement().className = CLASSNAME;\n this.isOpen = false;\n }\n };\n Tooltip.prototype.getHeight = function () {\n return this.getElement().offsetHeight;\n };\n Tooltip.prototype.getWidth = function () {\n return this.getElement().offsetWidth;\n };\n Tooltip.prototype.destroy = function () {\n this.isOpen = false;\n if (this.$element && this.$element.parentNode) {\n this.$element.parentNode.removeChild(this.$element);\n }\n };\n return Tooltip;\n}());\nvar PopupManager = /** @class */ (function () {\n function PopupManager() {\n this.popups = [];\n }\n PopupManager.prototype.addPopup = function (popup) {\n this.popups.push(popup);\n this.updatePopups();\n };\n PopupManager.prototype.removePopup = function (popup) {\n var index = this.popups.indexOf(popup);\n if (index !== -1) {\n this.popups.splice(index, 1);\n this.updatePopups();\n }\n };\n PopupManager.prototype.updatePopups = function () {\n var e_1, _a, e_2, _b;\n this.popups.sort(function (a, b) { return b.priority - a.priority; });\n var visiblepopups = [];\n try {\n for (var _c = __values(this.popups), _d = _c.next(); !_d.done; _d = _c.next()) {\n var popup = _d.value;\n var shouldDisplay = true;\n try {\n for (var visiblepopups_1 = (e_2 = void 0, __values(visiblepopups)), visiblepopups_1_1 = visiblepopups_1.next(); !visiblepopups_1_1.done; visiblepopups_1_1 = visiblepopups_1.next()) {\n var visiblePopup = visiblepopups_1_1.value;\n if (this.doPopupsOverlap(visiblePopup, popup)) {\n shouldDisplay = false;\n break;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (visiblepopups_1_1 && !visiblepopups_1_1.done && (_b = visiblepopups_1.return)) _b.call(visiblepopups_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (shouldDisplay) {\n visiblepopups.push(popup);\n }\n else {\n popup.hide();\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n PopupManager.prototype.doPopupsOverlap = function (popupA, popupB) {\n var rectA = popupA.getElement().getBoundingClientRect();\n var rectB = popupB.getElement().getBoundingClientRect();\n return (rectA.left < rectB.right && rectA.right > rectB.left && rectA.top < rectB.bottom && rectA.bottom\n > rectB.top);\n };\n return PopupManager;\n}());\nvar popupManager = new PopupManager();\nexports.popupManager = popupManager;\nexports.Tooltip = Tooltip;\nvar HoverTooltip = /** @class */ (function (_super) {\n __extends(HoverTooltip, _super);\n function HoverTooltip(parentNode) {\n if (parentNode === void 0) { parentNode = document.body; }\n var _this = _super.call(this, parentNode) || this;\n _this.timeout = undefined;\n _this.lastT = 0;\n _this.idleTime = 350;\n _this.lastEvent = undefined;\n _this.onMouseOut = _this.onMouseOut.bind(_this);\n _this.onMouseMove = _this.onMouseMove.bind(_this);\n _this.waitForHover = _this.waitForHover.bind(_this);\n _this.hide = _this.hide.bind(_this);\n var el = _this.getElement();\n el.style.whiteSpace = \"pre-wrap\";\n el.style.pointerEvents = \"auto\";\n el.addEventListener(\"mouseout\", _this.onMouseOut);\n el.tabIndex = -1;\n el.addEventListener(\"blur\", function () {\n if (!el.contains(document.activeElement))\n this.hide();\n }.bind(_this));\n el.addEventListener(\"wheel\", event.stopPropagation);\n return _this;\n }\n HoverTooltip.prototype.addToEditor = function (editor) {\n editor.on(\"mousemove\", this.onMouseMove);\n editor.on(\"mousedown\", this.hide);\n editor.renderer.getMouseEventTarget().addEventListener(\"mouseout\", this.onMouseOut, true);\n };\n HoverTooltip.prototype.removeFromEditor = function (editor) {\n editor.off(\"mousemove\", this.onMouseMove);\n editor.off(\"mousedown\", this.hide);\n editor.renderer.getMouseEventTarget().removeEventListener(\"mouseout\", this.onMouseOut, true);\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n };\n HoverTooltip.prototype.onMouseMove = function (e, editor) {\n this.lastEvent = e;\n this.lastT = Date.now();\n var isMousePressed = editor.$mouseHandler.isMousePressed;\n if (this.isOpen) {\n var pos = this.lastEvent && this.lastEvent.getDocumentPosition();\n if (!this.range\n || !this.range.contains(pos.row, pos.column)\n || isMousePressed\n || this.isOutsideOfText(this.lastEvent)) {\n this.hide();\n }\n }\n if (this.timeout || isMousePressed)\n return;\n this.lastEvent = e;\n this.timeout = setTimeout(this.waitForHover, this.idleTime);\n };\n HoverTooltip.prototype.waitForHover = function () {\n if (this.timeout)\n clearTimeout(this.timeout);\n var dt = Date.now() - this.lastT;\n if (this.idleTime - dt > 10) {\n this.timeout = setTimeout(this.waitForHover, this.idleTime - dt);\n return;\n }\n this.timeout = null;\n if (this.lastEvent && !this.isOutsideOfText(this.lastEvent)) {\n this.$gatherData(this.lastEvent, this.lastEvent.editor);\n }\n };\n HoverTooltip.prototype.isOutsideOfText = function (e) {\n var editor = e.editor;\n var docPos = e.getDocumentPosition();\n var line = editor.session.getLine(docPos.row);\n if (docPos.column == line.length) {\n var screenPos = editor.renderer.pixelToScreenCoordinates(e.clientX, e.clientY);\n var clippedPos = editor.session.documentToScreenPosition(docPos.row, docPos.column);\n if (clippedPos.column != screenPos.column\n || clippedPos.row != screenPos.row) {\n return true;\n }\n }\n return false;\n };\n HoverTooltip.prototype.setDataProvider = function (value) {\n this.$gatherData = value;\n };\n HoverTooltip.prototype.showForRange = function (editor, range, domNode, startingEvent) {\n var MARGIN = 10;\n if (startingEvent && startingEvent != this.lastEvent)\n return;\n if (this.isOpen && document.activeElement == this.getElement())\n return;\n var renderer = editor.renderer;\n if (!this.isOpen) {\n popupManager.addPopup(this);\n this.$registerCloseEvents();\n this.setTheme(renderer.theme);\n }\n this.isOpen = true;\n this.addMarker(range, editor.session);\n this.range = Range.fromPoints(range.start, range.end);\n var position = renderer.textToScreenCoordinates(range.start.row, range.start.column);\n var rect = renderer.scroller.getBoundingClientRect();\n if (position.pageX < rect.left)\n position.pageX = rect.left;\n var element = this.getElement();\n element.innerHTML = \"\";\n element.appendChild(domNode);\n element.style.maxHeight = \"\";\n element.style.display = \"block\";\n var labelHeight = element.clientHeight;\n var labelWidth = element.clientWidth;\n var spaceBelow = window.innerHeight - position.pageY - renderer.lineHeight;\n var isAbove = true;\n if (position.pageY - labelHeight < 0 && position.pageY < spaceBelow) {\n isAbove = false;\n }\n element.style.maxHeight = (isAbove ? position.pageY : spaceBelow) - MARGIN + \"px\";\n element.style.top = isAbove ? \"\" : position.pageY + renderer.lineHeight + \"px\";\n element.style.bottom = isAbove ? window.innerHeight - position.pageY + \"px\" : \"\";\n element.style.left = Math.min(position.pageX, window.innerWidth - labelWidth - MARGIN) + \"px\";\n };\n HoverTooltip.prototype.addMarker = function (range, session) {\n if (this.marker) {\n this.$markerSession.removeMarker(this.marker);\n }\n this.$markerSession = session;\n this.marker = session && session.addMarker(range, \"ace_highlight-marker\", \"text\");\n };\n HoverTooltip.prototype.hide = function (e) {\n if (!e && document.activeElement == this.getElement())\n return;\n if (e && e.target && (e.type != \"keydown\" || e.ctrlKey || e.metaKey) && this.$element.contains(e.target))\n return;\n this.lastEvent = null;\n if (this.timeout)\n clearTimeout(this.timeout);\n this.timeout = null;\n this.addMarker(null);\n if (this.isOpen) {\n this.$removeCloseEvents();\n this.getElement().style.display = \"none\";\n this.isOpen = false;\n popupManager.removePopup(this);\n }\n };\n HoverTooltip.prototype.$registerCloseEvents = function () {\n window.addEventListener(\"keydown\", this.hide, true);\n window.addEventListener(\"wheel\", this.hide, true);\n window.addEventListener(\"mousedown\", this.hide, true);\n };\n HoverTooltip.prototype.$removeCloseEvents = function () {\n window.removeEventListener(\"keydown\", this.hide, true);\n window.removeEventListener(\"wheel\", this.hide, true);\n window.removeEventListener(\"mousedown\", this.hide, true);\n };\n HoverTooltip.prototype.onMouseOut = function (e) {\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n this.lastEvent = null;\n if (!this.isOpen)\n return;\n if (!e.relatedTarget || this.getElement().contains(e.relatedTarget))\n return;\n if (e && e.currentTarget.contains(e.relatedTarget))\n return;\n if (!e.relatedTarget.classList.contains(\"ace_content\"))\n this.hide();\n };\n return HoverTooltip;\n}(Tooltip));\nexports.HoverTooltip = HoverTooltip;\n\n});\n\nace.define(\"ace/mouse/default_gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/tooltip\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar dom = require(\"../lib/dom\");\nvar event = require(\"../lib/event\");\nvar Tooltip = require(\"../tooltip\").Tooltip;\nvar nls = require(\"../config\").nls;\nfunction GutterHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var gutter = editor.renderer.$gutterLayer;\n var tooltip = new GutterTooltip(editor);\n mouseHandler.editor.setDefaultHandler(\"guttermousedown\", function (e) {\n if (!editor.isFocused() || e.getButton() != 0)\n return;\n var gutterRegion = gutter.getRegion(e);\n if (gutterRegion == \"foldWidgets\")\n return;\n var row = e.getDocumentPosition().row;\n var selection = editor.session.selection;\n if (e.getShiftKey())\n selection.selectTo(row, 0);\n else {\n if (e.domEvent.detail == 2) {\n editor.selectAll();\n return e.preventDefault();\n }\n mouseHandler.$clickSelection = editor.selection.getLineRange(row);\n }\n mouseHandler.setState(\"selectByLines\");\n mouseHandler.captureMouse(e);\n return e.preventDefault();\n });\n var tooltipTimeout, mouseEvent;\n function showTooltip() {\n var row = mouseEvent.getDocumentPosition().row;\n var maxRow = editor.session.getLength();\n if (row == maxRow) {\n var screenRow = editor.renderer.pixelToScreenCoordinates(0, mouseEvent.y).row;\n var pos = mouseEvent.$pos;\n if (screenRow > editor.session.documentToScreenRow(pos.row, pos.column))\n return hideTooltip();\n }\n tooltip.showTooltip(row);\n if (!tooltip.isOpen)\n return;\n editor.on(\"mousewheel\", hideTooltip);\n if (mouseHandler.$tooltipFollowsMouse) {\n moveTooltip(mouseEvent);\n }\n else {\n var gutterRow = mouseEvent.getGutterRow();\n var gutterCell = gutter.$lines.get(gutterRow);\n if (gutterCell) {\n var gutterElement = gutterCell.element.querySelector(\".ace_gutter_annotation\");\n var rect = gutterElement.getBoundingClientRect();\n var style = tooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n }\n else {\n moveTooltip(mouseEvent);\n }\n }\n }\n function hideTooltip() {\n if (tooltipTimeout)\n tooltipTimeout = clearTimeout(tooltipTimeout);\n if (tooltip.isOpen) {\n tooltip.hideTooltip();\n editor.off(\"mousewheel\", hideTooltip);\n }\n }\n function moveTooltip(e) {\n tooltip.setPosition(e.x, e.y);\n }\n mouseHandler.editor.setDefaultHandler(\"guttermousemove\", function (e) {\n var target = e.domEvent.target || e.domEvent.srcElement;\n if (dom.hasCssClass(target, \"ace_fold-widget\"))\n return hideTooltip();\n if (tooltip.isOpen && mouseHandler.$tooltipFollowsMouse)\n moveTooltip(e);\n mouseEvent = e;\n if (tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function () {\n tooltipTimeout = null;\n if (mouseEvent && !mouseHandler.isMousePressed)\n showTooltip();\n else\n hideTooltip();\n }, 50);\n });\n event.addListener(editor.renderer.$gutter, \"mouseout\", function (e) {\n mouseEvent = null;\n if (!tooltip.isOpen || tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function () {\n tooltipTimeout = null;\n hideTooltip();\n }, 50);\n }, editor);\n editor.on(\"changeSession\", hideTooltip);\n editor.on(\"input\", hideTooltip);\n}\nexports.GutterHandler = GutterHandler;\nvar GutterTooltip = /** @class */ (function (_super) {\n __extends(GutterTooltip, _super);\n function GutterTooltip(editor) {\n var _this = _super.call(this, editor.container) || this;\n _this.editor = editor;\n return _this;\n }\n GutterTooltip.prototype.setPosition = function (x, y) {\n var windowWidth = window.innerWidth || document.documentElement.clientWidth;\n var windowHeight = window.innerHeight || document.documentElement.clientHeight;\n var width = this.getWidth();\n var height = this.getHeight();\n x += 15;\n y += 15;\n if (x + width > windowWidth) {\n x -= (x + width) - windowWidth;\n }\n if (y + height > windowHeight) {\n y -= 20 + height;\n }\n Tooltip.prototype.setPosition.call(this, x, y);\n };\n Object.defineProperty(GutterTooltip, \"annotationLabels\", {\n get: function () {\n return {\n error: { singular: nls(\"error\"), plural: nls(\"errors\") },\n warning: { singular: nls(\"warning\"), plural: nls(\"warnings\") },\n info: { singular: nls(\"information message\"), plural: nls(\"information messages\") }\n };\n },\n enumerable: false,\n configurable: true\n });\n GutterTooltip.prototype.showTooltip = function (row) {\n var gutter = this.editor.renderer.$gutterLayer;\n var annotationsInRow = gutter.$annotations[row];\n var annotation;\n if (annotationsInRow)\n annotation = { text: Array.from(annotationsInRow.text), type: Array.from(annotationsInRow.type) };\n else\n annotation = { text: [], type: [] };\n var fold = gutter.session.getFoldLine(row);\n if (fold && gutter.$showFoldedAnnotations) {\n var annotationsInFold = { error: [], warning: [], info: [] };\n var mostSevereAnnotationInFoldType;\n for (var i = row + 1; i <= fold.end.row; i++) {\n if (!gutter.$annotations[i])\n continue;\n for (var j = 0; j < gutter.$annotations[i].text.length; j++) {\n var annotationType = gutter.$annotations[i].type[j];\n annotationsInFold[annotationType].push(gutter.$annotations[i].text[j]);\n if (annotationType === \"error\") {\n mostSevereAnnotationInFoldType = \"error_fold\";\n continue;\n }\n if (annotationType === \"warning\") {\n mostSevereAnnotationInFoldType = \"warning_fold\";\n continue;\n }\n }\n }\n if (mostSevereAnnotationInFoldType === \"error_fold\" || mostSevereAnnotationInFoldType === \"warning_fold\") {\n var summaryFoldedAnnotations = \"\".concat(GutterTooltip.annotationsToSummaryString(annotationsInFold), \" in folded code.\");\n annotation.text.push(summaryFoldedAnnotations);\n annotation.type.push(mostSevereAnnotationInFoldType);\n }\n }\n if (annotation.text.length === 0)\n return this.hide();\n var annotationMessages = { error: [], warning: [], info: [] };\n var iconClassName = gutter.$useSvgGutterIcons ? \"ace_icon_svg\" : \"ace_icon\";\n for (var i = 0; i < annotation.text.length; i++) {\n var line = \" \").concat(annotation.text[i]);\n annotationMessages[annotation.type[i].replace(\"_fold\", \"\")].push(line);\n }\n var tooltipContent = [].concat(annotationMessages.error, annotationMessages.warning, annotationMessages.info).join(\"
    \");\n this.setHtml(tooltipContent);\n this.$element.setAttribute(\"aria-live\", \"polite\");\n if (!this.isOpen) {\n this.setTheme(this.editor.renderer.theme);\n this.setClassName(\"ace_gutter-tooltip\");\n }\n this.show();\n this.editor._signal(\"showGutterTooltip\", this);\n };\n GutterTooltip.prototype.hideTooltip = function () {\n this.$element.removeAttribute(\"aria-live\");\n this.hide();\n this.editor._signal(\"hideGutterTooltip\", this);\n };\n GutterTooltip.annotationsToSummaryString = function (annotations) {\n var e_1, _a;\n var summary = [];\n var annotationTypes = ['error', 'warning', 'info'];\n try {\n for (var annotationTypes_1 = __values(annotationTypes), annotationTypes_1_1 = annotationTypes_1.next(); !annotationTypes_1_1.done; annotationTypes_1_1 = annotationTypes_1.next()) {\n var annotationType = annotationTypes_1_1.value;\n if (!annotations[annotationType].length)\n continue;\n var label = annotations[annotationType].length === 1 ? GutterTooltip.annotationLabels[annotationType].singular : GutterTooltip.annotationLabels[annotationType].plural;\n summary.push(\"\".concat(annotations[annotationType].length, \" \").concat(label));\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (annotationTypes_1_1 && !annotationTypes_1_1.done && (_a = annotationTypes_1.return)) _a.call(annotationTypes_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return summary.join(\", \");\n };\n return GutterTooltip;\n}(Tooltip));\nexports.GutterTooltip = GutterTooltip;\n\n});\n\nace.define(\"ace/mouse/mouse_event\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar MouseEvent = /** @class */ (function () {\n function MouseEvent(domEvent, editor) {\n this.domEvent = domEvent;\n this.editor = editor;\n this.x = this.clientX = domEvent.clientX;\n this.y = this.clientY = domEvent.clientY;\n this.$pos = null;\n this.$inSelection = null;\n this.propagationStopped = false;\n this.defaultPrevented = false;\n }\n MouseEvent.prototype.stopPropagation = function () {\n event.stopPropagation(this.domEvent);\n this.propagationStopped = true;\n };\n MouseEvent.prototype.preventDefault = function () {\n event.preventDefault(this.domEvent);\n this.defaultPrevented = true;\n };\n MouseEvent.prototype.stop = function () {\n this.stopPropagation();\n this.preventDefault();\n };\n MouseEvent.prototype.getDocumentPosition = function () {\n if (this.$pos)\n return this.$pos;\n this.$pos = this.editor.renderer.screenToTextCoordinates(this.clientX, this.clientY);\n return this.$pos;\n };\n MouseEvent.prototype.getGutterRow = function () {\n var documentRow = this.getDocumentPosition().row;\n var screenRow = this.editor.session.documentToScreenRow(documentRow, 0);\n var screenTopRow = this.editor.session.documentToScreenRow(this.editor.renderer.$gutterLayer.$lines.get(0).row, 0);\n return screenRow - screenTopRow;\n };\n MouseEvent.prototype.inSelection = function () {\n if (this.$inSelection !== null)\n return this.$inSelection;\n var editor = this.editor;\n var selectionRange = editor.getSelectionRange();\n if (selectionRange.isEmpty())\n this.$inSelection = false;\n else {\n var pos = this.getDocumentPosition();\n this.$inSelection = selectionRange.contains(pos.row, pos.column);\n }\n return this.$inSelection;\n };\n MouseEvent.prototype.getButton = function () {\n return event.getButton(this.domEvent);\n };\n MouseEvent.prototype.getShiftKey = function () {\n return this.domEvent.shiftKey;\n };\n MouseEvent.prototype.getAccelKey = function () {\n return useragent.isMac ? this.domEvent.metaKey : this.domEvent.ctrlKey;\n };\n return MouseEvent;\n}());\nexports.MouseEvent = MouseEvent;\n\n});\n\nace.define(\"ace/mouse/dragdrop_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar AUTOSCROLL_DELAY = 200;\nvar SCROLL_CURSOR_DELAY = 200;\nvar SCROLL_CURSOR_HYSTERESIS = 5;\nfunction DragdropHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var dragImage = dom.createElement(\"div\");\n dragImage.style.cssText = \"top:-100px;position:absolute;z-index:2147483647;opacity:0.5\";\n dragImage.textContent = \"\\xa0\";\n var exports = [\"dragWait\", \"dragWaitEnd\", \"startDrag\", \"dragReadyEnd\", \"onMouseDrag\"];\n exports.forEach(function (x) {\n mouseHandler[x] = this[x];\n }, this);\n editor.on(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n var mouseTarget = editor.container;\n var dragSelectionMarker, x, y;\n var timerId, range;\n var dragCursor, counter = 0;\n var dragOperation;\n var isInternal;\n var autoScrollStartTime;\n var cursorMovedTime;\n var cursorPointOnCaretMoved;\n this.onDragStart = function (e) {\n if (this.cancelDrag || !mouseTarget.draggable) {\n var self = this;\n setTimeout(function () {\n self.startSelect();\n self.captureMouse(e);\n }, 0);\n return e.preventDefault();\n }\n range = editor.getSelectionRange();\n var dataTransfer = e.dataTransfer;\n dataTransfer.effectAllowed = editor.getReadOnly() ? \"copy\" : \"copyMove\";\n editor.container.appendChild(dragImage);\n dataTransfer.setDragImage && dataTransfer.setDragImage(dragImage, 0, 0);\n setTimeout(function () {\n editor.container.removeChild(dragImage);\n });\n dataTransfer.clearData();\n dataTransfer.setData(\"Text\", editor.session.getTextRange());\n isInternal = true;\n this.setState(\"drag\");\n };\n this.onDragEnd = function (e) {\n mouseTarget.draggable = false;\n isInternal = false;\n this.setState(null);\n if (!editor.getReadOnly()) {\n var dropEffect = e.dataTransfer.dropEffect;\n if (!dragOperation && dropEffect == \"move\")\n editor.session.remove(editor.getSelectionRange());\n editor.$resetCursorStyle();\n }\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n };\n this.onDragEnter = function (e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker)\n addDragMarker();\n counter++;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n this.onDragOver = function (e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker) {\n addDragMarker();\n counter++;\n }\n if (onMouseMoveTimer !== null)\n onMouseMoveTimer = null;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n this.onDragLeave = function (e) {\n counter--;\n if (counter <= 0 && dragSelectionMarker) {\n clearDragMarker();\n dragOperation = null;\n return event.preventDefault(e);\n }\n };\n this.onDrop = function (e) {\n if (!dragCursor)\n return;\n var dataTransfer = e.dataTransfer;\n if (isInternal) {\n switch (dragOperation) {\n case \"move\":\n if (range.contains(dragCursor.row, dragCursor.column)) {\n range = {\n start: dragCursor,\n end: dragCursor\n };\n }\n else {\n range = editor.moveText(range, dragCursor);\n }\n break;\n case \"copy\":\n range = editor.moveText(range, dragCursor, true);\n break;\n }\n }\n else {\n var dropData = dataTransfer.getData('Text');\n range = {\n start: dragCursor,\n end: editor.session.insert(dragCursor, dropData)\n };\n editor.focus();\n dragOperation = null;\n }\n clearDragMarker();\n return event.preventDefault(e);\n };\n event.addListener(mouseTarget, \"dragstart\", this.onDragStart.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragend\", this.onDragEnd.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragenter\", this.onDragEnter.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragover\", this.onDragOver.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragleave\", this.onDragLeave.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"drop\", this.onDrop.bind(mouseHandler), editor);\n function scrollCursorIntoView(cursor, prevCursor) {\n var now = Date.now();\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n var hMovement = !prevCursor || cursor.column != prevCursor.column;\n if (!cursorMovedTime || vMovement || hMovement) {\n editor.moveCursorToPosition(cursor);\n cursorMovedTime = now;\n cursorPointOnCaretMoved = { x: x, y: y };\n }\n else {\n var distance = calcDistance(cursorPointOnCaretMoved.x, cursorPointOnCaretMoved.y, x, y);\n if (distance > SCROLL_CURSOR_HYSTERESIS) {\n cursorMovedTime = null;\n }\n else if (now - cursorMovedTime >= SCROLL_CURSOR_DELAY) {\n editor.renderer.scrollCursorIntoView();\n cursorMovedTime = null;\n }\n }\n }\n function autoScroll(cursor, prevCursor) {\n var now = Date.now();\n var lineHeight = editor.renderer.layerConfig.lineHeight;\n var characterWidth = editor.renderer.layerConfig.characterWidth;\n var editorRect = editor.renderer.scroller.getBoundingClientRect();\n var offsets = {\n x: {\n left: x - editorRect.left,\n right: editorRect.right - x\n },\n y: {\n top: y - editorRect.top,\n bottom: editorRect.bottom - y\n }\n };\n var nearestXOffset = Math.min(offsets.x.left, offsets.x.right);\n var nearestYOffset = Math.min(offsets.y.top, offsets.y.bottom);\n var scrollCursor = { row: cursor.row, column: cursor.column };\n if (nearestXOffset / characterWidth <= 2) {\n scrollCursor.column += (offsets.x.left < offsets.x.right ? -3 : +2);\n }\n if (nearestYOffset / lineHeight <= 1) {\n scrollCursor.row += (offsets.y.top < offsets.y.bottom ? -1 : +1);\n }\n var vScroll = cursor.row != scrollCursor.row;\n var hScroll = cursor.column != scrollCursor.column;\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n if (vScroll || (hScroll && !vMovement)) {\n if (!autoScrollStartTime)\n autoScrollStartTime = now;\n else if (now - autoScrollStartTime >= AUTOSCROLL_DELAY)\n editor.renderer.scrollCursorIntoView(scrollCursor);\n }\n else {\n autoScrollStartTime = null;\n }\n }\n function onDragInterval() {\n var prevCursor = dragCursor;\n dragCursor = editor.renderer.screenToTextCoordinates(x, y);\n scrollCursorIntoView(dragCursor, prevCursor);\n autoScroll(dragCursor, prevCursor);\n }\n function addDragMarker() {\n range = editor.selection.toOrientedRange();\n dragSelectionMarker = editor.session.addMarker(range, \"ace_selection\", editor.getSelectionStyle());\n editor.clearSelection();\n if (editor.isFocused())\n editor.renderer.$cursorLayer.setBlinking(false);\n clearInterval(timerId);\n onDragInterval();\n timerId = setInterval(onDragInterval, 20);\n counter = 0;\n event.addListener(document, \"mousemove\", onMouseMove);\n }\n function clearDragMarker() {\n clearInterval(timerId);\n editor.session.removeMarker(dragSelectionMarker);\n dragSelectionMarker = null;\n editor.selection.fromOrientedRange(range);\n if (editor.isFocused() && !isInternal)\n editor.$resetCursorStyle();\n range = null;\n dragCursor = null;\n counter = 0;\n autoScrollStartTime = null;\n cursorMovedTime = null;\n event.removeListener(document, \"mousemove\", onMouseMove);\n }\n var onMouseMoveTimer = null;\n function onMouseMove() {\n if (onMouseMoveTimer == null) {\n onMouseMoveTimer = setTimeout(function () {\n if (onMouseMoveTimer != null && dragSelectionMarker)\n clearDragMarker();\n }, 20);\n }\n }\n function canAccept(dataTransfer) {\n var types = dataTransfer.types;\n return !types || Array.prototype.some.call(types, function (type) {\n return type == 'text/plain' || type == 'Text';\n });\n }\n function getDropEffect(e) {\n var copyAllowed = ['copy', 'copymove', 'all', 'uninitialized'];\n var moveAllowed = ['move', 'copymove', 'linkmove', 'all', 'uninitialized'];\n var copyModifierState = useragent.isMac ? e.altKey : e.ctrlKey;\n var effectAllowed = \"uninitialized\";\n try {\n effectAllowed = e.dataTransfer.effectAllowed.toLowerCase();\n }\n catch (e) { }\n var dropEffect = \"none\";\n if (copyModifierState && copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n else if (moveAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"move\";\n else if (copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n return dropEffect;\n }\n}\n(function () {\n this.dragWait = function () {\n var interval = Date.now() - this.mousedownEvent.time;\n if (interval > this.editor.getDragDelay())\n this.startDrag();\n };\n this.dragWaitEnd = function () {\n var target = this.editor.container;\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n this.selectEnd();\n };\n this.dragReadyEnd = function (e) {\n this.editor.$resetCursorStyle();\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n this.dragWaitEnd();\n };\n this.startDrag = function () {\n this.cancelDrag = false;\n var editor = this.editor;\n var target = editor.container;\n target.draggable = true;\n editor.renderer.$cursorLayer.setBlinking(false);\n editor.setStyle(\"ace_dragging\");\n var cursorStyle = useragent.isWin ? \"default\" : \"move\";\n editor.renderer.setCursorStyle(cursorStyle);\n this.setState(\"dragReady\");\n };\n this.onMouseDrag = function (e) {\n var target = this.editor.container;\n if (useragent.isIE && this.state == \"dragReady\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 3)\n target.dragDrop();\n }\n if (this.state === \"dragWait\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 0) {\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n }\n }\n };\n this.onMouseDown = function (e) {\n if (!this.$dragEnabled)\n return;\n this.mousedownEvent = e;\n var editor = this.editor;\n var inSelection = e.inSelection();\n var button = e.getButton();\n var clickCount = e.domEvent.detail || 1;\n if (clickCount === 1 && button === 0 && inSelection) {\n if (e.editor.inMultiSelectMode && (e.getAccelKey() || e.getShiftKey()))\n return;\n this.mousedownEvent.time = Date.now();\n var eventTarget = e.domEvent.target || e.domEvent.srcElement;\n if (\"unselectable\" in eventTarget)\n eventTarget.unselectable = \"on\";\n if (editor.getDragDelay()) {\n if (useragent.isWebKit) {\n this.cancelDrag = true;\n var mouseTarget = editor.container;\n mouseTarget.draggable = true;\n }\n this.setState(\"dragWait\");\n }\n else {\n this.startDrag();\n }\n this.captureMouse(e, this.onMouseDrag.bind(this));\n e.defaultPrevented = true;\n }\n };\n}).call(DragdropHandler.prototype);\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\nexports.DragdropHandler = DragdropHandler;\n\n});\n\nace.define(\"ace/mouse/touch_handler\",[\"require\",\"exports\",\"module\",\"ace/mouse/mouse_event\",\"ace/lib/event\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar MouseEvent = require(\"./mouse_event\").MouseEvent;\nvar event = require(\"../lib/event\");\nvar dom = require(\"../lib/dom\");\nexports.addTouchListeners = function (el, editor) {\n var mode = \"scroll\";\n var startX;\n var startY;\n var touchStartT;\n var lastT;\n var longTouchTimer;\n var animationTimer;\n var animationSteps = 0;\n var pos;\n var clickCount = 0;\n var vX = 0;\n var vY = 0;\n var pressed;\n var contextMenu;\n function createContextMenu() {\n var clipboard = window.navigator && window.navigator.clipboard;\n var isOpen = false;\n var updateMenu = function () {\n var selected = editor.getCopyText();\n var hasUndo = editor.session.getUndoManager().hasUndo();\n contextMenu.replaceChild(dom.buildDom(isOpen ? [\"span\",\n !selected && [\"span\", { class: \"ace_mobile-button\", action: \"selectall\" }, \"Select All\"],\n selected && [\"span\", { class: \"ace_mobile-button\", action: \"copy\" }, \"Copy\"],\n selected && [\"span\", { class: \"ace_mobile-button\", action: \"cut\" }, \"Cut\"],\n clipboard && [\"span\", { class: \"ace_mobile-button\", action: \"paste\" }, \"Paste\"],\n hasUndo && [\"span\", { class: \"ace_mobile-button\", action: \"undo\" }, \"Undo\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"find\" }, \"Find\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"openCommandPalette\" }, \"Palette\"]\n ] : [\"span\"]), contextMenu.firstChild);\n };\n var handleClick = function (e) {\n var action = e.target.getAttribute(\"action\");\n if (action == \"more\" || !isOpen) {\n isOpen = !isOpen;\n return updateMenu();\n }\n if (action == \"paste\") {\n clipboard.readText().then(function (text) {\n editor.execCommand(action, text);\n });\n }\n else if (action) {\n if (action == \"cut\" || action == \"copy\") {\n if (clipboard)\n clipboard.writeText(editor.getCopyText());\n else\n document.execCommand(\"copy\");\n }\n editor.execCommand(action);\n }\n contextMenu.firstChild.style.display = \"none\";\n isOpen = false;\n if (action != \"openCommandPalette\")\n editor.focus();\n };\n contextMenu = dom.buildDom([\"div\",\n {\n class: \"ace_mobile-menu\",\n ontouchstart: function (e) {\n mode = \"menu\";\n e.stopPropagation();\n e.preventDefault();\n editor.textInput.focus();\n },\n ontouchend: function (e) {\n e.stopPropagation();\n e.preventDefault();\n handleClick(e);\n },\n onclick: handleClick\n },\n [\"span\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"more\" }, \"...\"]\n ], editor.container);\n }\n function showContextMenu() {\n if (!contextMenu)\n createContextMenu();\n var cursor = editor.selection.cursor;\n var pagePos = editor.renderer.textToScreenCoordinates(cursor.row, cursor.column);\n var leftOffset = editor.renderer.textToScreenCoordinates(0, 0).pageX;\n var scrollLeft = editor.renderer.scrollLeft;\n var rect = editor.container.getBoundingClientRect();\n contextMenu.style.top = pagePos.pageY - rect.top - 3 + \"px\";\n if (pagePos.pageX - rect.left < rect.width - 70) {\n contextMenu.style.left = \"\";\n contextMenu.style.right = \"10px\";\n }\n else {\n contextMenu.style.right = \"\";\n contextMenu.style.left = leftOffset + scrollLeft - rect.left + \"px\";\n }\n contextMenu.style.display = \"\";\n contextMenu.firstChild.style.display = \"none\";\n editor.on(\"input\", hideContextMenu);\n }\n function hideContextMenu(e) {\n if (contextMenu)\n contextMenu.style.display = \"none\";\n editor.off(\"input\", hideContextMenu);\n }\n function handleLongTap() {\n longTouchTimer = null;\n clearTimeout(longTouchTimer);\n var range = editor.selection.getRange();\n var inSelection = range.contains(pos.row, pos.column);\n if (range.isEmpty() || !inSelection) {\n editor.selection.moveToPosition(pos);\n editor.selection.selectWord();\n }\n mode = \"wait\";\n showContextMenu();\n }\n function switchToSelectionMode() {\n longTouchTimer = null;\n clearTimeout(longTouchTimer);\n editor.selection.moveToPosition(pos);\n var range = clickCount >= 2\n ? editor.selection.getLineRange(pos.row)\n : editor.session.getBracketRange(pos);\n if (range && !range.isEmpty()) {\n editor.selection.setRange(range);\n }\n else {\n editor.selection.selectWord();\n }\n mode = \"wait\";\n }\n event.addListener(el, \"contextmenu\", function (e) {\n if (!pressed)\n return;\n var textarea = editor.textInput.getElement();\n textarea.focus();\n }, editor);\n event.addListener(el, \"touchstart\", function (e) {\n var touches = e.touches;\n if (longTouchTimer || touches.length > 1) {\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n touchStartT = -1;\n mode = \"zoom\";\n return;\n }\n pressed = editor.$mouseHandler.isMousePressed = true;\n var h = editor.renderer.layerConfig.lineHeight;\n var w = editor.renderer.layerConfig.lineHeight;\n var t = e.timeStamp;\n lastT = t;\n var touchObj = touches[0];\n var x = touchObj.clientX;\n var y = touchObj.clientY;\n if (Math.abs(startX - x) + Math.abs(startY - y) > h)\n touchStartT = -1;\n startX = e.clientX = x;\n startY = e.clientY = y;\n vX = vY = 0;\n var ev = new MouseEvent(e, editor);\n pos = ev.getDocumentPosition();\n if (t - touchStartT < 500 && touches.length == 1 && !animationSteps) {\n clickCount++;\n e.preventDefault();\n e.button = 0;\n switchToSelectionMode();\n }\n else {\n clickCount = 0;\n var cursor = editor.selection.cursor;\n var anchor = editor.selection.isEmpty() ? cursor : editor.selection.anchor;\n var cursorPos = editor.renderer.$cursorLayer.getPixelPosition(cursor, true);\n var anchorPos = editor.renderer.$cursorLayer.getPixelPosition(anchor, true);\n var rect = editor.renderer.scroller.getBoundingClientRect();\n var offsetTop = editor.renderer.layerConfig.offset;\n var offsetLeft = editor.renderer.scrollLeft;\n var weightedDistance = function (x, y) {\n x = x / w;\n y = y / h - 0.75;\n return x * x + y * y;\n };\n if (e.clientX < rect.left) {\n mode = \"zoom\";\n return;\n }\n var diff1 = weightedDistance(e.clientX - rect.left - cursorPos.left + offsetLeft, e.clientY - rect.top - cursorPos.top + offsetTop);\n var diff2 = weightedDistance(e.clientX - rect.left - anchorPos.left + offsetLeft, e.clientY - rect.top - anchorPos.top + offsetTop);\n if (diff1 < 3.5 && diff2 < 3.5)\n mode = diff1 > diff2 ? \"cursor\" : \"anchor\";\n if (diff2 < 3.5)\n mode = \"anchor\";\n else if (diff1 < 3.5)\n mode = \"cursor\";\n else\n mode = \"scroll\";\n longTouchTimer = setTimeout(handleLongTap, 450);\n }\n touchStartT = t;\n }, editor);\n event.addListener(el, \"touchend\", function (e) {\n pressed = editor.$mouseHandler.isMousePressed = false;\n if (animationTimer)\n clearInterval(animationTimer);\n if (mode == \"zoom\") {\n mode = \"\";\n animationSteps = 0;\n }\n else if (longTouchTimer) {\n editor.selection.moveToPosition(pos);\n animationSteps = 0;\n showContextMenu();\n }\n else if (mode == \"scroll\") {\n animate();\n hideContextMenu();\n }\n else {\n showContextMenu();\n }\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n }, editor);\n event.addListener(el, \"touchmove\", function (e) {\n if (longTouchTimer) {\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n }\n var touches = e.touches;\n if (touches.length > 1 || mode == \"zoom\")\n return;\n var touchObj = touches[0];\n var wheelX = startX - touchObj.clientX;\n var wheelY = startY - touchObj.clientY;\n if (mode == \"wait\") {\n if (wheelX * wheelX + wheelY * wheelY > 4)\n mode = \"cursor\";\n else\n return e.preventDefault();\n }\n startX = touchObj.clientX;\n startY = touchObj.clientY;\n e.clientX = touchObj.clientX;\n e.clientY = touchObj.clientY;\n var t = e.timeStamp;\n var dt = t - lastT;\n lastT = t;\n if (mode == \"scroll\") {\n var mouseEvent = new MouseEvent(e, editor);\n mouseEvent.speed = 1;\n mouseEvent.wheelX = wheelX;\n mouseEvent.wheelY = wheelY;\n if (10 * Math.abs(wheelX) < Math.abs(wheelY))\n wheelX = 0;\n if (10 * Math.abs(wheelY) < Math.abs(wheelX))\n wheelY = 0;\n if (dt != 0) {\n vX = wheelX / dt;\n vY = wheelY / dt;\n }\n editor._emit(\"mousewheel\", mouseEvent);\n if (!mouseEvent.propagationStopped) {\n vX = vY = 0;\n }\n }\n else {\n var ev = new MouseEvent(e, editor);\n var pos = ev.getDocumentPosition();\n if (mode == \"cursor\")\n editor.selection.moveCursorToPosition(pos);\n else if (mode == \"anchor\")\n editor.selection.setSelectionAnchor(pos.row, pos.column);\n editor.renderer.scrollCursorIntoView(pos);\n e.preventDefault();\n }\n }, editor);\n function animate() {\n animationSteps += 60;\n animationTimer = setInterval(function () {\n if (animationSteps-- <= 0) {\n clearInterval(animationTimer);\n animationTimer = null;\n }\n if (Math.abs(vX) < 0.01)\n vX = 0;\n if (Math.abs(vY) < 0.01)\n vY = 0;\n if (animationSteps < 20)\n vX = 0.9 * vX;\n if (animationSteps < 20)\n vY = 0.9 * vY;\n var oldScrollTop = editor.session.getScrollTop();\n editor.renderer.scrollBy(10 * vX, 10 * vY);\n if (oldScrollTop == editor.session.getScrollTop())\n animationSteps = 0;\n }, 10);\n }\n};\n\n});\n\nace.define(\"ace/mouse/mouse_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/mouse/default_handlers\",\"ace/mouse/default_gutter_handler\",\"ace/mouse/mouse_event\",\"ace/mouse/dragdrop_handler\",\"ace/mouse/touch_handler\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar DefaultHandlers = require(\"./default_handlers\").DefaultHandlers;\nvar DefaultGutterHandler = require(\"./default_gutter_handler\").GutterHandler;\nvar MouseEvent = require(\"./mouse_event\").MouseEvent;\nvar DragdropHandler = require(\"./dragdrop_handler\").DragdropHandler;\nvar addTouchListeners = require(\"./touch_handler\").addTouchListeners;\nvar config = require(\"../config\");\nvar MouseHandler = /** @class */ (function () {\n function MouseHandler(editor) {\n var _self = this;\n this.editor = editor;\n new DefaultHandlers(this);\n new DefaultGutterHandler(this);\n new DragdropHandler(this);\n var focusEditor = function (e) {\n var windowBlurred = !document.hasFocus || !document.hasFocus()\n || !editor.isFocused() && document.activeElement == (editor.textInput && editor.textInput.getElement());\n if (windowBlurred)\n window.focus();\n editor.focus();\n setTimeout(function () {\n if (!editor.isFocused())\n editor.focus();\n });\n };\n var mouseTarget = editor.renderer.getMouseEventTarget();\n event.addListener(mouseTarget, \"click\", this.onMouseEvent.bind(this, \"click\"), editor);\n event.addListener(mouseTarget, \"mousemove\", this.onMouseMove.bind(this, \"mousemove\"), editor);\n event.addMultiMouseDownListener([\n mouseTarget,\n editor.renderer.scrollBarV && editor.renderer.scrollBarV.inner,\n editor.renderer.scrollBarH && editor.renderer.scrollBarH.inner,\n editor.textInput && editor.textInput.getElement()\n ].filter(Boolean), [400, 300, 250], this, \"onMouseEvent\", editor);\n event.addMouseWheelListener(editor.container, this.onMouseWheel.bind(this, \"mousewheel\"), editor);\n addTouchListeners(editor.container, editor);\n var gutterEl = editor.renderer.$gutter;\n event.addListener(gutterEl, \"mousedown\", this.onMouseEvent.bind(this, \"guttermousedown\"), editor);\n event.addListener(gutterEl, \"click\", this.onMouseEvent.bind(this, \"gutterclick\"), editor);\n event.addListener(gutterEl, \"dblclick\", this.onMouseEvent.bind(this, \"gutterdblclick\"), editor);\n event.addListener(gutterEl, \"mousemove\", this.onMouseEvent.bind(this, \"guttermousemove\"), editor);\n event.addListener(mouseTarget, \"mousedown\", focusEditor, editor);\n event.addListener(gutterEl, \"mousedown\", focusEditor, editor);\n if (useragent.isIE && editor.renderer.scrollBarV) {\n event.addListener(editor.renderer.scrollBarV.element, \"mousedown\", focusEditor, editor);\n event.addListener(editor.renderer.scrollBarH.element, \"mousedown\", focusEditor, editor);\n }\n editor.on(\"mousemove\", function (e) {\n if (_self.state || _self.$dragDelay || !_self.$dragEnabled)\n return;\n var character = editor.renderer.screenToTextCoordinates(e.x, e.y);\n var range = editor.session.selection.getRange();\n var renderer = editor.renderer;\n if (!range.isEmpty() && range.insideStart(character.row, character.column)) {\n renderer.setCursorStyle(\"default\");\n }\n else {\n renderer.setCursorStyle(\"\");\n }\n }, editor);\n }\n MouseHandler.prototype.onMouseEvent = function (name, e) {\n if (!this.editor.session)\n return;\n this.editor._emit(name, new MouseEvent(e, this.editor));\n };\n MouseHandler.prototype.onMouseMove = function (name, e) {\n var listeners = this.editor._eventRegistry && this.editor._eventRegistry.mousemove;\n if (!listeners || !listeners.length)\n return;\n this.editor._emit(name, new MouseEvent(e, this.editor));\n };\n MouseHandler.prototype.onMouseWheel = function (name, e) {\n var mouseEvent = new MouseEvent(e, this.editor);\n mouseEvent.speed = this.$scrollSpeed * 2;\n mouseEvent.wheelX = e.wheelX;\n mouseEvent.wheelY = e.wheelY;\n this.editor._emit(name, mouseEvent);\n };\n MouseHandler.prototype.setState = function (state) {\n this.state = state;\n };\n MouseHandler.prototype.captureMouse = function (ev, mouseMoveHandler) {\n this.x = ev.x;\n this.y = ev.y;\n this.isMousePressed = true;\n var editor = this.editor;\n var renderer = this.editor.renderer;\n renderer.$isMousePressed = true;\n var self = this;\n var onMouseMove = function (e) {\n if (!e)\n return;\n if (useragent.isWebKit && !e.which && self.releaseMouse)\n return self.releaseMouse();\n self.x = e.clientX;\n self.y = e.clientY;\n mouseMoveHandler && mouseMoveHandler(e);\n self.mouseEvent = new MouseEvent(e, self.editor);\n self.$mouseMoved = true;\n };\n var onCaptureEnd = function (e) {\n editor.off(\"beforeEndOperation\", onOperationEnd);\n clearInterval(timerId);\n if (editor.session)\n onCaptureInterval();\n self[self.state + \"End\"] && self[self.state + \"End\"](e);\n self.state = \"\";\n self.isMousePressed = renderer.$isMousePressed = false;\n if (renderer.$keepTextAreaAtCursor)\n renderer.$moveTextAreaToCursor();\n self.$onCaptureMouseMove = self.releaseMouse = null;\n e && self.onMouseEvent(\"mouseup\", e);\n editor.endOperation();\n };\n var onCaptureInterval = function () {\n self[self.state] && self[self.state]();\n self.$mouseMoved = false;\n };\n if (useragent.isOldIE && ev.domEvent.type == \"dblclick\") {\n return setTimeout(function () { onCaptureEnd(ev); });\n }\n var onOperationEnd = function (e) {\n if (!self.releaseMouse)\n return;\n if (editor.curOp.command.name && editor.curOp.selectionChanged) {\n self[self.state + \"End\"] && self[self.state + \"End\"]();\n self.state = \"\";\n self.releaseMouse();\n }\n };\n editor.on(\"beforeEndOperation\", onOperationEnd);\n editor.startOperation({ command: { name: \"mouse\" } });\n self.$onCaptureMouseMove = onMouseMove;\n self.releaseMouse = event.capture(this.editor.container, onMouseMove, onCaptureEnd);\n var timerId = setInterval(onCaptureInterval, 20);\n };\n MouseHandler.prototype.cancelContextMenu = function () {\n var stop = function (e) {\n if (e && e.domEvent && e.domEvent.type != \"contextmenu\")\n return;\n this.editor.off(\"nativecontextmenu\", stop);\n if (e && e.domEvent)\n event.stopEvent(e.domEvent);\n }.bind(this);\n setTimeout(stop, 10);\n this.editor.on(\"nativecontextmenu\", stop);\n };\n MouseHandler.prototype.destroy = function () {\n if (this.releaseMouse)\n this.releaseMouse();\n };\n return MouseHandler;\n}());\nMouseHandler.prototype.releaseMouse = null;\nconfig.defineOptions(MouseHandler.prototype, \"mouseHandler\", {\n scrollSpeed: { initialValue: 2 },\n dragDelay: { initialValue: (useragent.isMac ? 150 : 0) },\n dragEnabled: { initialValue: true },\n focusTimeout: { initialValue: 0 },\n tooltipFollowsMouse: { initialValue: true }\n});\nexports.MouseHandler = MouseHandler;\n\n});\n\nace.define(\"ace/mouse/fold_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar FoldHandler = /** @class */ (function () {\n function FoldHandler(editor) {\n editor.on(\"click\", function (e) {\n var position = e.getDocumentPosition();\n var session = editor.session;\n var fold = session.getFoldAt(position.row, position.column, 1);\n if (fold) {\n if (e.getAccelKey())\n session.removeFold(fold);\n else\n session.expandFold(fold);\n e.stop();\n }\n var target = e.domEvent && e.domEvent.target;\n if (target && dom.hasCssClass(target, \"ace_inline_button\")) {\n if (dom.hasCssClass(target, \"ace_toggle_wrap\")) {\n session.setOption(\"wrap\", !session.getUseWrapMode());\n editor.renderer.scrollCursorIntoView();\n }\n }\n });\n editor.on(\"gutterclick\", function (e) {\n var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n if (gutterRegion == \"foldWidgets\") {\n var row = e.getDocumentPosition().row;\n var session = editor.session;\n if (session.foldWidgets && session.foldWidgets[row])\n editor.session.onFoldWidgetClick(row, e);\n if (!editor.isFocused())\n editor.focus();\n e.stop();\n }\n });\n editor.on(\"gutterdblclick\", function (e) {\n var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n if (gutterRegion == \"foldWidgets\") {\n var row = e.getDocumentPosition().row;\n var session = editor.session;\n var data = session.getParentFoldRangeData(row, true);\n var range = data.range || data.firstRange;\n if (range) {\n row = range.start.row;\n var fold = session.getFoldAt(row, session.getLine(row).length, 1);\n if (fold) {\n session.removeFold(fold);\n }\n else {\n session.addFold(\"...\", range);\n editor.renderer.scrollCursorIntoView({ row: range.start.row, column: 0 });\n }\n }\n e.stop();\n }\n });\n }\n return FoldHandler;\n}());\nexports.FoldHandler = FoldHandler;\n\n});\n\nace.define(\"ace/keyboard/keybinding\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/event\"], function(require, exports, module){\"use strict\";\nvar keyUtil = require(\"../lib/keys\");\nvar event = require(\"../lib/event\");\nvar KeyBinding = /** @class */ (function () {\n function KeyBinding(editor) {\n this.$editor = editor;\n this.$data = { editor: editor };\n this.$handlers = [];\n this.setDefaultHandler(editor.commands);\n }\n KeyBinding.prototype.setDefaultHandler = function (kb) {\n this.removeKeyboardHandler(this.$defaultHandler);\n this.$defaultHandler = kb;\n this.addKeyboardHandler(kb, 0);\n };\n KeyBinding.prototype.setKeyboardHandler = function (kb) {\n var h = this.$handlers;\n if (h[h.length - 1] == kb)\n return;\n while (h[h.length - 1] && h[h.length - 1] != this.$defaultHandler)\n this.removeKeyboardHandler(h[h.length - 1]);\n this.addKeyboardHandler(kb, 1);\n };\n KeyBinding.prototype.addKeyboardHandler = function (kb, pos) {\n if (!kb)\n return;\n if (typeof kb == \"function\" && !kb.handleKeyboard)\n kb.handleKeyboard = kb;\n var i = this.$handlers.indexOf(kb);\n if (i != -1)\n this.$handlers.splice(i, 1);\n if (pos == undefined)\n this.$handlers.push(kb);\n else\n this.$handlers.splice(pos, 0, kb);\n if (i == -1 && kb.attach)\n kb.attach(this.$editor);\n };\n KeyBinding.prototype.removeKeyboardHandler = function (kb) {\n var i = this.$handlers.indexOf(kb);\n if (i == -1)\n return false;\n this.$handlers.splice(i, 1);\n kb.detach && kb.detach(this.$editor);\n return true;\n };\n KeyBinding.prototype.getKeyboardHandler = function () {\n return this.$handlers[this.$handlers.length - 1];\n };\n KeyBinding.prototype.getStatusText = function () {\n var data = this.$data;\n var editor = data.editor;\n return this.$handlers.map(function (h) {\n return h.getStatusText && h.getStatusText(editor, data) || \"\";\n }).filter(Boolean).join(\" \");\n };\n KeyBinding.prototype.$callKeyboardHandlers = function (hashId, keyString, keyCode, e) {\n var toExecute;\n var success = false;\n var commands = this.$editor.commands;\n for (var i = this.$handlers.length; i--;) {\n toExecute = this.$handlers[i].handleKeyboard(this.$data, hashId, keyString, keyCode, e);\n if (!toExecute || !toExecute.command)\n continue;\n if (toExecute.command == \"null\") {\n success = true;\n }\n else {\n success = commands.exec(toExecute.command, this.$editor, toExecute.args, e);\n }\n if (success && e && hashId != -1 &&\n toExecute.passEvent != true && toExecute.command.passEvent != true) {\n event.stopEvent(e);\n }\n if (success)\n break;\n }\n if (!success && hashId == -1) {\n toExecute = { command: \"insertstring\" };\n success = commands.exec(\"insertstring\", this.$editor, keyString);\n }\n if (success && this.$editor._signal)\n this.$editor._signal(\"keyboardActivity\", toExecute);\n return success;\n };\n KeyBinding.prototype.onCommandKey = function (e, hashId, keyCode) {\n var keyString = keyUtil.keyCodeToString(keyCode);\n return this.$callKeyboardHandlers(hashId, keyString, keyCode, e);\n };\n KeyBinding.prototype.onTextInput = function (text) {\n return this.$callKeyboardHandlers(-1, text);\n };\n return KeyBinding;\n}());\nexports.KeyBinding = KeyBinding;\n\n});\n\nace.define(\"ace/lib/bidiutil\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar ArabicAlefBetIntervalsBegine = ['\\u0621', '\\u0641'];\nvar ArabicAlefBetIntervalsEnd = ['\\u063A', '\\u064a'];\nvar dir = 0, hiLevel = 0;\nvar lastArabic = false, hasUBAT_AL = false, hasUBAT_B = false, hasUBAT_S = false, hasBlockSep = false, hasSegSep = false;\nvar impTab_LTR = [ [0, 3, 0, 1, 0, 0, 0], [0, 3, 0, 1, 2, 2, 0], [0, 3, 0, 0x11, 2, 0, 1], [0, 3, 5, 5, 4, 1, 0], [0, 3, 0x15, 0x15, 4, 0, 1], [0, 3, 5, 5, 4, 2, 0]\n];\nvar impTab_RTL = [ [2, 0, 1, 1, 0, 1, 0], [2, 0, 1, 1, 0, 2, 0], [2, 0, 2, 1, 3, 2, 0], [2, 0, 2, 0x21, 3, 1, 1]\n];\nvar LTR = 0, RTL = 1;\nvar L = 0;\nvar R = 1;\nvar EN = 2;\nvar AN = 3;\nvar ON = 4;\nvar B = 5;\nvar S = 6;\nvar AL = 7;\nvar WS = 8;\nvar CS = 9;\nvar ES = 10;\nvar ET = 11;\nvar NSM = 12;\nvar LRE = 13;\nvar RLE = 14;\nvar PDF = 15;\nvar LRO = 16;\nvar RLO = 17;\nvar BN = 18;\nvar UnicodeTBL00 = [\n BN, BN, BN, BN, BN, BN, BN, BN, BN, S, B, S, WS, B, BN, BN,\n BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, B, B, B, S,\n WS, ON, ON, ET, ET, ET, ON, ON, ON, ON, ON, ES, CS, ES, CS, CS,\n EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, CS, ON, ON, ON, ON, ON,\n ON, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L,\n L, L, L, L, L, L, L, L, L, L, L, ON, ON, ON, ON, ON,\n ON, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L,\n L, L, L, L, L, L, L, L, L, L, L, ON, ON, ON, ON, BN,\n BN, BN, BN, BN, BN, B, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,\n BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,\n CS, ON, ET, ET, ET, ET, ON, ON, ON, ON, L, ON, ON, BN, ON, ON,\n ET, ET, EN, EN, ON, L, ON, ON, ON, EN, L, ON, ON, ON, ON, ON\n];\nvar UnicodeTBL20 = [\n WS, WS, WS, WS, WS, WS, WS, WS, WS, WS, WS, BN, BN, BN, L, R,\n ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, ON, ON, ON, ON, WS, B, LRE, RLE, PDF, LRO, RLO, CS,\n ET, ET, ET, ET, ET, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, CS, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, WS\n];\nfunction _computeLevels(chars, levels, len, charTypes) {\n var impTab = dir ? impTab_RTL : impTab_LTR, prevState = null, newClass = null, newLevel = null, newState = 0, action = null, cond = null, condPos = -1, i = null, ix = null, classes = [];\n if (!charTypes) {\n for (i = 0, charTypes = []; i < len; i++) {\n charTypes[i] = _getCharacterType(chars[i]);\n }\n }\n hiLevel = dir;\n lastArabic = false;\n hasUBAT_AL = false;\n hasUBAT_B = false;\n hasUBAT_S = false;\n for (ix = 0; ix < len; ix++) {\n prevState = newState;\n classes[ix] = newClass = _getCharClass(chars, charTypes, classes, ix);\n newState = impTab[prevState][newClass];\n action = newState & 0xF0;\n newState &= 0x0F;\n levels[ix] = newLevel = impTab[newState][5];\n if (action > 0) {\n if (action == 0x10) {\n for (i = condPos; i < ix; i++) {\n levels[i] = 1;\n }\n condPos = -1;\n }\n else {\n condPos = -1;\n }\n }\n cond = impTab[newState][6];\n if (cond) {\n if (condPos == -1) {\n condPos = ix;\n }\n }\n else {\n if (condPos > -1) {\n for (i = condPos; i < ix; i++) {\n levels[i] = newLevel;\n }\n condPos = -1;\n }\n }\n if (charTypes[ix] == B) {\n levels[ix] = 0;\n }\n hiLevel |= newLevel;\n }\n if (hasUBAT_S) {\n for (i = 0; i < len; i++) {\n if (charTypes[i] == S) {\n levels[i] = dir;\n for (var j = i - 1; j >= 0; j--) {\n if (charTypes[j] == WS) {\n levels[j] = dir;\n }\n else {\n break;\n }\n }\n }\n }\n }\n}\nfunction _invertLevel(lev, levels, _array) {\n if (hiLevel < lev) {\n return;\n }\n if (lev == 1 && dir == RTL && !hasUBAT_B) {\n _array.reverse();\n return;\n }\n var len = _array.length, start = 0, end, lo, hi, tmp;\n while (start < len) {\n if (levels[start] >= lev) {\n end = start + 1;\n while (end < len && levels[end] >= lev) {\n end++;\n }\n for (lo = start, hi = end - 1; lo < hi; lo++, hi--) {\n tmp = _array[lo];\n _array[lo] = _array[hi];\n _array[hi] = tmp;\n }\n start = end;\n }\n start++;\n }\n}\nfunction _getCharClass(chars, types, classes, ix) {\n var cType = types[ix], wType, nType, len, i;\n switch (cType) {\n case L:\n case R:\n lastArabic = false;\n case ON:\n case AN:\n return cType;\n case EN:\n return lastArabic ? AN : EN;\n case AL:\n lastArabic = true;\n hasUBAT_AL = true;\n return R;\n case WS:\n return ON;\n case CS:\n if (ix < 1 || (ix + 1) >= types.length ||\n ((wType = classes[ix - 1]) != EN && wType != AN) ||\n ((nType = types[ix + 1]) != EN && nType != AN)) {\n return ON;\n }\n if (lastArabic) {\n nType = AN;\n }\n return nType == wType ? nType : ON;\n case ES:\n wType = ix > 0 ? classes[ix - 1] : B;\n if (wType == EN && (ix + 1) < types.length && types[ix + 1] == EN) {\n return EN;\n }\n return ON;\n case ET:\n if (ix > 0 && classes[ix - 1] == EN) {\n return EN;\n }\n if (lastArabic) {\n return ON;\n }\n i = ix + 1;\n len = types.length;\n while (i < len && types[i] == ET) {\n i++;\n }\n if (i < len && types[i] == EN) {\n return EN;\n }\n return ON;\n case NSM:\n len = types.length;\n i = ix + 1;\n while (i < len && types[i] == NSM) {\n i++;\n }\n if (i < len) {\n var c = chars[ix], rtlCandidate = (c >= 0x0591 && c <= 0x08FF) || c == 0xFB1E;\n wType = types[i];\n if (rtlCandidate && (wType == R || wType == AL)) {\n return R;\n }\n }\n if (ix < 1 || (wType = types[ix - 1]) == B) {\n return ON;\n }\n return classes[ix - 1];\n case B:\n lastArabic = false;\n hasUBAT_B = true;\n return dir;\n case S:\n hasUBAT_S = true;\n return ON;\n case LRE:\n case RLE:\n case LRO:\n case RLO:\n case PDF:\n lastArabic = false;\n case BN:\n return ON;\n }\n}\nfunction _getCharacterType(ch) {\n var uc = ch.charCodeAt(0), hi = uc >> 8;\n if (hi == 0) {\n return ((uc > 0x00BF) ? L : UnicodeTBL00[uc]);\n }\n else if (hi == 5) {\n return (/[\\u0591-\\u05f4]/.test(ch) ? R : L);\n }\n else if (hi == 6) {\n if (/[\\u0610-\\u061a\\u064b-\\u065f\\u06d6-\\u06e4\\u06e7-\\u06ed]/.test(ch))\n return NSM;\n else if (/[\\u0660-\\u0669\\u066b-\\u066c]/.test(ch))\n return AN;\n else if (uc == 0x066A)\n return ET;\n else if (/[\\u06f0-\\u06f9]/.test(ch))\n return EN;\n else\n return AL;\n }\n else if (hi == 0x20 && uc <= 0x205F) {\n return UnicodeTBL20[uc & 0xFF];\n }\n else if (hi == 0xFE) {\n return (uc >= 0xFE70 ? AL : ON);\n }\n return ON;\n}\nfunction _isArabicDiacritics(ch) {\n return (ch >= '\\u064b' && ch <= '\\u0655');\n}\nexports.L = L;\nexports.R = R;\nexports.EN = EN;\nexports.ON_R = 3;\nexports.AN = 4;\nexports.R_H = 5;\nexports.B = 6;\nexports.RLE = 7;\nexports.DOT = \"\\xB7\";\nexports.doBidiReorder = function (text, textCharTypes, isRtl) {\n if (text.length < 2)\n return {};\n var chars = text.split(\"\"), logicalFromVisual = new Array(chars.length), bidiLevels = new Array(chars.length), levels = [];\n dir = isRtl ? RTL : LTR;\n _computeLevels(chars, levels, chars.length, textCharTypes);\n for (var i = 0; i < logicalFromVisual.length; logicalFromVisual[i] = i, i++)\n ;\n _invertLevel(2, levels, logicalFromVisual);\n _invertLevel(1, levels, logicalFromVisual);\n for (var i = 0; i < logicalFromVisual.length - 1; i++) { //fix levels to reflect character width\n if (textCharTypes[i] === AN) {\n levels[i] = exports.AN;\n }\n else if (levels[i] === R && ((textCharTypes[i] > AL && textCharTypes[i] < LRE)\n || textCharTypes[i] === ON || textCharTypes[i] === BN)) {\n levels[i] = exports.ON_R;\n }\n else if ((i > 0 && chars[i - 1] === '\\u0644') && /\\u0622|\\u0623|\\u0625|\\u0627/.test(chars[i])) {\n levels[i - 1] = levels[i] = exports.R_H;\n i++;\n }\n }\n if (chars[chars.length - 1] === exports.DOT)\n levels[chars.length - 1] = exports.B;\n if (chars[0] === '\\u202B')\n levels[0] = exports.RLE;\n for (var i = 0; i < logicalFromVisual.length; i++) {\n bidiLevels[i] = levels[logicalFromVisual[i]];\n }\n return { 'logicalFromVisual': logicalFromVisual, 'bidiLevels': bidiLevels };\n};\nexports.hasBidiCharacters = function (text, textCharTypes) {\n var ret = false;\n for (var i = 0; i < text.length; i++) {\n textCharTypes[i] = _getCharacterType(text.charAt(i));\n if (!ret && (textCharTypes[i] == R || textCharTypes[i] == AL || textCharTypes[i] == AN))\n ret = true;\n }\n return ret;\n};\nexports.getVisualFromLogicalIdx = function (logIdx, rowMap) {\n for (var i = 0; i < rowMap.logicalFromVisual.length; i++) {\n if (rowMap.logicalFromVisual[i] == logIdx)\n return i;\n }\n return 0;\n};\n\n});\n\nace.define(\"ace/bidihandler\",[\"require\",\"exports\",\"module\",\"ace/lib/bidiutil\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar bidiUtil = require(\"./lib/bidiutil\");\nvar lang = require(\"./lib/lang\");\nvar bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac\\u202B]/;\nvar BidiHandler = /** @class */ (function () {\n function BidiHandler(session) {\n this.session = session;\n this.bidiMap = {};\n this.currentRow = null;\n this.bidiUtil = bidiUtil;\n this.charWidths = [];\n this.EOL = \"\\xAC\";\n this.showInvisibles = true;\n this.isRtlDir = false;\n this.$isRtl = false;\n this.line = \"\";\n this.wrapIndent = 0;\n this.EOF = \"\\xB6\";\n this.RLE = \"\\u202B\";\n this.contentWidth = 0;\n this.fontMetrics = null;\n this.rtlLineOffset = 0;\n this.wrapOffset = 0;\n this.isMoveLeftOperation = false;\n this.seenBidi = bidiRE.test(session.getValue());\n }\n BidiHandler.prototype.isBidiRow = function (screenRow, docRow, splitIndex) {\n if (!this.seenBidi)\n return false;\n if (screenRow !== this.currentRow) {\n this.currentRow = screenRow;\n this.updateRowLine(docRow, splitIndex);\n this.updateBidiMap();\n }\n return this.bidiMap.bidiLevels;\n };\n BidiHandler.prototype.onChange = function (delta) {\n if (!this.seenBidi) {\n if (delta.action == \"insert\" && bidiRE.test(delta.lines.join(\"\\n\"))) {\n this.seenBidi = true;\n this.currentRow = null;\n }\n }\n else {\n this.currentRow = null;\n }\n };\n BidiHandler.prototype.getDocumentRow = function () {\n var docRow = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var index = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n if (index >= 0)\n docRow = this.session.$docRowCache[index];\n }\n return docRow;\n };\n BidiHandler.prototype.getSplitIndex = function () {\n var splitIndex = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var currentIndex, prevIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n while (this.currentRow - splitIndex > 0) {\n currentIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow - splitIndex - 1);\n if (currentIndex !== prevIndex)\n break;\n prevIndex = currentIndex;\n splitIndex++;\n }\n }\n else {\n splitIndex = this.currentRow;\n }\n return splitIndex;\n };\n BidiHandler.prototype.updateRowLine = function (docRow, splitIndex) {\n if (docRow === undefined)\n docRow = this.getDocumentRow();\n var isLastRow = (docRow === this.session.getLength() - 1), endOfLine = isLastRow ? this.EOF : this.EOL;\n this.wrapIndent = 0;\n this.line = this.session.getLine(docRow);\n this.isRtlDir = this.$isRtl || this.line.charAt(0) === this.RLE;\n if (this.session.$useWrapMode) {\n var splits = this.session.$wrapData[docRow];\n if (splits) {\n if (splitIndex === undefined)\n splitIndex = this.getSplitIndex();\n if (splitIndex > 0 && splits.length) {\n this.wrapIndent = splits.indent;\n this.wrapOffset = this.wrapIndent * this.charWidths[bidiUtil.L];\n this.line = (splitIndex < splits.length) ?\n this.line.substring(splits[splitIndex - 1], splits[splitIndex]) :\n this.line.substring(splits[splits.length - 1]);\n }\n else {\n this.line = this.line.substring(0, splits[splitIndex]);\n }\n if (splitIndex == splits.length) {\n this.line += (this.showInvisibles) ? endOfLine : bidiUtil.DOT;\n }\n }\n }\n else {\n this.line += this.showInvisibles ? endOfLine : bidiUtil.DOT;\n }\n var session = this.session, shift = 0, size;\n this.line = this.line.replace(/\\t|[\\u1100-\\u2029, \\u202F-\\uFFE6]/g, function (ch, i) {\n if (ch === '\\t' || session.isFullWidth(ch.charCodeAt(0))) {\n size = (ch === '\\t') ? session.getScreenTabSize(i + shift) : 2;\n shift += size - 1;\n return lang.stringRepeat(bidiUtil.DOT, size);\n }\n return ch;\n });\n if (this.isRtlDir) {\n this.fontMetrics.$main.textContent = (this.line.charAt(this.line.length - 1) == bidiUtil.DOT) ? this.line.substr(0, this.line.length - 1) : this.line;\n this.rtlLineOffset = this.contentWidth - this.fontMetrics.$main.getBoundingClientRect().width;\n }\n };\n BidiHandler.prototype.updateBidiMap = function () {\n var textCharTypes = [];\n if (bidiUtil.hasBidiCharacters(this.line, textCharTypes) || this.isRtlDir) {\n this.bidiMap = bidiUtil.doBidiReorder(this.line, textCharTypes, this.isRtlDir);\n }\n else {\n this.bidiMap = {};\n }\n };\n BidiHandler.prototype.markAsDirty = function () {\n this.currentRow = null;\n };\n BidiHandler.prototype.updateCharacterWidths = function (fontMetrics) {\n if (this.characterWidth === fontMetrics.$characterSize.width)\n return;\n this.fontMetrics = fontMetrics;\n var characterWidth = this.characterWidth = fontMetrics.$characterSize.width;\n var bidiCharWidth = fontMetrics.$measureCharWidth(\"\\u05d4\");\n this.charWidths[bidiUtil.L] = this.charWidths[bidiUtil.EN] = this.charWidths[bidiUtil.ON_R] = characterWidth;\n this.charWidths[bidiUtil.R] = this.charWidths[bidiUtil.AN] = bidiCharWidth;\n this.charWidths[bidiUtil.R_H] = bidiCharWidth * 0.45;\n this.charWidths[bidiUtil.B] = this.charWidths[bidiUtil.RLE] = 0;\n this.currentRow = null;\n };\n BidiHandler.prototype.setShowInvisibles = function (showInvisibles) {\n this.showInvisibles = showInvisibles;\n this.currentRow = null;\n };\n BidiHandler.prototype.setEolChar = function (eolChar) {\n this.EOL = eolChar;\n };\n BidiHandler.prototype.setContentWidth = function (width) {\n this.contentWidth = width;\n };\n BidiHandler.prototype.isRtlLine = function (row) {\n if (this.$isRtl)\n return true;\n if (row != undefined)\n return (this.session.getLine(row).charAt(0) == this.RLE);\n else\n return this.isRtlDir;\n };\n BidiHandler.prototype.setRtlDirection = function (editor, isRtlDir) {\n var cursor = editor.getCursorPosition();\n for (var row = editor.selection.getSelectionAnchor().row; row <= cursor.row; row++) {\n if (!isRtlDir && editor.session.getLine(row).charAt(0) === editor.session.$bidiHandler.RLE)\n editor.session.doc.removeInLine(row, 0, 1);\n else if (isRtlDir && editor.session.getLine(row).charAt(0) !== editor.session.$bidiHandler.RLE)\n editor.session.doc.insert({ column: 0, row: row }, editor.session.$bidiHandler.RLE);\n }\n };\n BidiHandler.prototype.getPosLeft = function (col) {\n col -= this.wrapIndent;\n var leftBoundary = (this.line.charAt(0) === this.RLE) ? 1 : 0;\n var logicalIdx = (col > leftBoundary) ? (this.session.getOverwrite() ? col : col - 1) : leftBoundary;\n var visualIdx = bidiUtil.getVisualFromLogicalIdx(logicalIdx, this.bidiMap), levels = this.bidiMap.bidiLevels, left = 0;\n if (!this.session.getOverwrite() && col <= leftBoundary && levels[visualIdx] % 2 !== 0)\n visualIdx++;\n for (var i = 0; i < visualIdx; i++) {\n left += this.charWidths[levels[i]];\n }\n if (!this.session.getOverwrite() && (col > leftBoundary) && (levels[visualIdx] % 2 === 0))\n left += this.charWidths[levels[visualIdx]];\n if (this.wrapIndent)\n left += this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n if (this.isRtlDir)\n left += this.rtlLineOffset;\n return left;\n };\n BidiHandler.prototype.getSelections = function (startCol, endCol) {\n var map = this.bidiMap, levels = map.bidiLevels, level, selections = [], offset = 0, selColMin = Math.min(startCol, endCol) - this.wrapIndent, selColMax = Math.max(startCol, endCol) - this.wrapIndent, isSelected = false, isSelectedPrev = false, selectionStart = 0;\n if (this.wrapIndent)\n offset += this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n for (var logIdx, visIdx = 0; visIdx < levels.length; visIdx++) {\n logIdx = map.logicalFromVisual[visIdx];\n level = levels[visIdx];\n isSelected = (logIdx >= selColMin) && (logIdx < selColMax);\n if (isSelected && !isSelectedPrev) {\n selectionStart = offset;\n }\n else if (!isSelected && isSelectedPrev) {\n selections.push({ left: selectionStart, width: offset - selectionStart });\n }\n offset += this.charWidths[level];\n isSelectedPrev = isSelected;\n }\n if (isSelected && (visIdx === levels.length)) {\n selections.push({ left: selectionStart, width: offset - selectionStart });\n }\n if (this.isRtlDir) {\n for (var i = 0; i < selections.length; i++) {\n selections[i].left += this.rtlLineOffset;\n }\n }\n return selections;\n };\n BidiHandler.prototype.offsetToCol = function (posX) {\n if (this.isRtlDir)\n posX -= this.rtlLineOffset;\n var logicalIdx = 0, posX = Math.max(posX, 0), offset = 0, visualIdx = 0, levels = this.bidiMap.bidiLevels, charWidth = this.charWidths[levels[visualIdx]];\n if (this.wrapIndent)\n posX -= this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n while (posX > offset + charWidth / 2) {\n offset += charWidth;\n if (visualIdx === levels.length - 1) {\n charWidth = 0;\n break;\n }\n charWidth = this.charWidths[levels[++visualIdx]];\n }\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && (levels[visualIdx] % 2 === 0)) {\n if (posX < offset)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n }\n else if (visualIdx > 0 && (levels[visualIdx - 1] % 2 === 0) && (levels[visualIdx] % 2 !== 0)) {\n logicalIdx = 1 + ((posX > offset) ? this.bidiMap.logicalFromVisual[visualIdx]\n : this.bidiMap.logicalFromVisual[visualIdx - 1]);\n }\n else if ((this.isRtlDir && visualIdx === levels.length - 1 && charWidth === 0 && (levels[visualIdx - 1] % 2 === 0))\n || (!this.isRtlDir && visualIdx === 0 && (levels[visualIdx] % 2 !== 0))) {\n logicalIdx = 1 + this.bidiMap.logicalFromVisual[visualIdx];\n }\n else {\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && charWidth !== 0)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n }\n if (logicalIdx === 0 && this.isRtlDir)\n logicalIdx++;\n return (logicalIdx + this.wrapIndent);\n };\n return BidiHandler;\n}());\nexports.BidiHandler = BidiHandler;\n\n});\n\nace.define(\"ace/selection\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar lang = require(\"./lib/lang\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Selection = /** @class */ (function () {\n function Selection(session) {\n this.session = session;\n this.doc = session.getDocument();\n this.clearSelection();\n this.cursor = this.lead = this.doc.createAnchor(0, 0);\n this.anchor = this.doc.createAnchor(0, 0);\n this.$silent = false;\n var self = this;\n this.cursor.on(\"change\", function (e) {\n self.$cursorChanged = true;\n if (!self.$silent)\n self._emit(\"changeCursor\");\n if (!self.$isEmpty && !self.$silent)\n self._emit(\"changeSelection\");\n if (!self.$keepDesiredColumnOnChange && e.old.column != e.value.column)\n self.$desiredColumn = null;\n });\n this.anchor.on(\"change\", function () {\n self.$anchorChanged = true;\n if (!self.$isEmpty && !self.$silent)\n self._emit(\"changeSelection\");\n });\n }\n Selection.prototype.isEmpty = function () {\n return this.$isEmpty || (this.anchor.row == this.lead.row &&\n this.anchor.column == this.lead.column);\n };\n Selection.prototype.isMultiLine = function () {\n return !this.$isEmpty && this.anchor.row != this.cursor.row;\n };\n Selection.prototype.getCursor = function () {\n return this.lead.getPosition();\n };\n Selection.prototype.setAnchor = function (row, column) {\n this.$isEmpty = false;\n this.anchor.setPosition(row, column);\n };\n Selection.prototype.getAnchor = function () {\n if (this.$isEmpty)\n return this.getSelectionLead();\n return this.anchor.getPosition();\n };\n Selection.prototype.getSelectionLead = function () {\n return this.lead.getPosition();\n };\n Selection.prototype.isBackwards = function () {\n var anchor = this.anchor;\n var lead = this.lead;\n return (anchor.row > lead.row || (anchor.row == lead.row && anchor.column > lead.column));\n };\n Selection.prototype.getRange = function () {\n var anchor = this.anchor;\n var lead = this.lead;\n if (this.$isEmpty)\n return Range.fromPoints(lead, lead);\n return this.isBackwards()\n ? Range.fromPoints(lead, anchor)\n : Range.fromPoints(anchor, lead);\n };\n Selection.prototype.clearSelection = function () {\n if (!this.$isEmpty) {\n this.$isEmpty = true;\n this._emit(\"changeSelection\");\n }\n };\n Selection.prototype.selectAll = function () {\n this.$setSelection(0, 0, Number.MAX_VALUE, Number.MAX_VALUE);\n };\n Selection.prototype.setRange = function (range, reverse) {\n var start = reverse ? range.end : range.start;\n var end = reverse ? range.start : range.end;\n this.$setSelection(start.row, start.column, end.row, end.column);\n };\n Selection.prototype.$setSelection = function (anchorRow, anchorColumn, cursorRow, cursorColumn) {\n if (this.$silent)\n return;\n var wasEmpty = this.$isEmpty;\n var wasMultiselect = this.inMultiSelectMode;\n this.$silent = true;\n this.$cursorChanged = this.$anchorChanged = false;\n this.anchor.setPosition(anchorRow, anchorColumn);\n this.cursor.setPosition(cursorRow, cursorColumn);\n this.$isEmpty = !Range.comparePoints(this.anchor, this.cursor);\n this.$silent = false;\n if (this.$cursorChanged)\n this._emit(\"changeCursor\");\n if (this.$cursorChanged || this.$anchorChanged || wasEmpty != this.$isEmpty || wasMultiselect)\n this._emit(\"changeSelection\");\n };\n Selection.prototype.$moveSelection = function (mover) {\n var lead = this.lead;\n if (this.$isEmpty)\n this.setSelectionAnchor(lead.row, lead.column);\n mover.call(this);\n };\n Selection.prototype.selectTo = function (row, column) {\n this.$moveSelection(function () {\n this.moveCursorTo(row, column);\n });\n };\n Selection.prototype.selectToPosition = function (pos) {\n this.$moveSelection(function () {\n this.moveCursorToPosition(pos);\n });\n };\n Selection.prototype.moveTo = function (row, column) {\n this.clearSelection();\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveToPosition = function (pos) {\n this.clearSelection();\n this.moveCursorToPosition(pos);\n };\n Selection.prototype.selectUp = function () {\n this.$moveSelection(this.moveCursorUp);\n };\n Selection.prototype.selectDown = function () {\n this.$moveSelection(this.moveCursorDown);\n };\n Selection.prototype.selectRight = function () {\n this.$moveSelection(this.moveCursorRight);\n };\n Selection.prototype.selectLeft = function () {\n this.$moveSelection(this.moveCursorLeft);\n };\n Selection.prototype.selectLineStart = function () {\n this.$moveSelection(this.moveCursorLineStart);\n };\n Selection.prototype.selectLineEnd = function () {\n this.$moveSelection(this.moveCursorLineEnd);\n };\n Selection.prototype.selectFileEnd = function () {\n this.$moveSelection(this.moveCursorFileEnd);\n };\n Selection.prototype.selectFileStart = function () {\n this.$moveSelection(this.moveCursorFileStart);\n };\n Selection.prototype.selectWordRight = function () {\n this.$moveSelection(this.moveCursorWordRight);\n };\n Selection.prototype.selectWordLeft = function () {\n this.$moveSelection(this.moveCursorWordLeft);\n };\n Selection.prototype.getWordRange = function (row, column) {\n if (typeof column == \"undefined\") {\n var cursor = row || this.lead;\n row = cursor.row;\n column = cursor.column;\n }\n return this.session.getWordRange(row, column);\n };\n Selection.prototype.selectWord = function () {\n this.setSelectionRange(this.getWordRange());\n };\n Selection.prototype.selectAWord = function () {\n var cursor = this.getCursor();\n var range = this.session.getAWordRange(cursor.row, cursor.column);\n this.setSelectionRange(range);\n };\n Selection.prototype.getLineRange = function (row, excludeLastChar) {\n var rowStart = typeof row == \"number\" ? row : this.lead.row;\n var rowEnd;\n var foldLine = this.session.getFoldLine(rowStart);\n if (foldLine) {\n rowStart = foldLine.start.row;\n rowEnd = foldLine.end.row;\n }\n else {\n rowEnd = rowStart;\n }\n if (excludeLastChar === true)\n return new Range(rowStart, 0, rowEnd, this.session.getLine(rowEnd).length);\n else\n return new Range(rowStart, 0, rowEnd + 1, 0);\n };\n Selection.prototype.selectLine = function () {\n this.setSelectionRange(this.getLineRange());\n };\n Selection.prototype.moveCursorUp = function () {\n this.moveCursorBy(-1, 0);\n };\n Selection.prototype.moveCursorDown = function () {\n this.moveCursorBy(1, 0);\n };\n Selection.prototype.wouldMoveIntoSoftTab = function (cursor, tabSize, direction) {\n var start = cursor.column;\n var end = cursor.column + tabSize;\n if (direction < 0) {\n start = cursor.column - tabSize;\n end = cursor.column;\n }\n return this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(start, end).split(\" \").length - 1 == tabSize;\n };\n Selection.prototype.moveCursorLeft = function () {\n var cursor = this.lead.getPosition(), fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n }\n else if (cursor.column === 0) {\n if (cursor.row > 0) {\n this.moveCursorTo(cursor.row - 1, this.doc.getLine(cursor.row - 1).length);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, -1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, -tabSize);\n }\n else {\n this.moveCursorBy(0, -1);\n }\n }\n };\n Selection.prototype.moveCursorRight = function () {\n var cursor = this.lead.getPosition(), fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, 1)) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n }\n else if (this.lead.column == this.doc.getLine(this.lead.row).length) {\n if (this.lead.row < this.doc.getLength() - 1) {\n this.moveCursorTo(this.lead.row + 1, 0);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n var cursor = this.lead;\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, 1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, tabSize);\n }\n else {\n this.moveCursorBy(0, 1);\n }\n }\n };\n Selection.prototype.moveCursorLineStart = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var screenRow = this.session.documentToScreenRow(row, column);\n var firstColumnPosition = this.session.screenToDocumentPosition(screenRow, 0);\n var beforeCursor = this.session.getDisplayLine(row, null, firstColumnPosition.row, firstColumnPosition.column);\n var leadingSpace = beforeCursor.match(/^\\s*/);\n if (leadingSpace[0].length != column && !this.session.$useEmacsStyleLineStart)\n firstColumnPosition.column += leadingSpace[0].length;\n this.moveCursorToPosition(firstColumnPosition);\n };\n Selection.prototype.moveCursorLineEnd = function () {\n var lead = this.lead;\n var lineEnd = this.session.getDocumentLastRowColumnPosition(lead.row, lead.column);\n if (this.lead.column == lineEnd.column) {\n var line = this.session.getLine(lineEnd.row);\n if (lineEnd.column == line.length) {\n var textEnd = line.search(/\\s+$/);\n if (textEnd > 0)\n lineEnd.column = textEnd;\n }\n }\n this.moveCursorTo(lineEnd.row, lineEnd.column);\n };\n Selection.prototype.moveCursorFileEnd = function () {\n var row = this.doc.getLength() - 1;\n var column = this.doc.getLine(row).length;\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveCursorFileStart = function () {\n this.moveCursorTo(0, 0);\n };\n Selection.prototype.moveCursorLongWordRight = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n return;\n }\n if (this.session.nonTokenRe.exec(rightOfCursor)) {\n column += this.session.nonTokenRe.lastIndex;\n this.session.nonTokenRe.lastIndex = 0;\n rightOfCursor = line.substring(column);\n }\n if (column >= line.length) {\n this.moveCursorTo(row, line.length);\n this.moveCursorRight();\n if (row < this.doc.getLength() - 1)\n this.moveCursorWordRight();\n return;\n }\n if (this.session.tokenRe.exec(rightOfCursor)) {\n column += this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveCursorLongWordLeft = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n return;\n }\n var str = this.session.getFoldStringAt(row, column, -1);\n if (str == null) {\n str = this.doc.getLine(row).substring(0, column);\n }\n var leftOfCursor = lang.stringReverse(str);\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n if (this.session.nonTokenRe.exec(leftOfCursor)) {\n column -= this.session.nonTokenRe.lastIndex;\n leftOfCursor = leftOfCursor.slice(this.session.nonTokenRe.lastIndex);\n this.session.nonTokenRe.lastIndex = 0;\n }\n if (column <= 0) {\n this.moveCursorTo(row, 0);\n this.moveCursorLeft();\n if (row > 0)\n this.moveCursorWordLeft();\n return;\n }\n if (this.session.tokenRe.exec(leftOfCursor)) {\n column -= this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n this.moveCursorTo(row, column);\n };\n Selection.prototype.$shortWordEndIndex = function (rightOfCursor) {\n var index = 0, ch;\n var whitespaceRe = /\\s/;\n var tokenRe = this.session.tokenRe;\n tokenRe.lastIndex = 0;\n if (this.session.tokenRe.exec(rightOfCursor)) {\n index = this.session.tokenRe.lastIndex;\n }\n else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index++;\n if (index < 1) {\n tokenRe.lastIndex = 0;\n while ((ch = rightOfCursor[index]) && !tokenRe.test(ch)) {\n tokenRe.lastIndex = 0;\n index++;\n if (whitespaceRe.test(ch)) {\n if (index > 2) {\n index--;\n break;\n }\n else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index++;\n if (index > 2)\n break;\n }\n }\n }\n }\n }\n tokenRe.lastIndex = 0;\n return index;\n };\n Selection.prototype.moveCursorShortWordRight = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold)\n return this.moveCursorTo(fold.end.row, fold.end.column);\n if (column == line.length) {\n var l = this.doc.getLength();\n do {\n row++;\n rightOfCursor = this.doc.getLine(row);\n } while (row < l && /^\\s*$/.test(rightOfCursor));\n if (!/^\\s+/.test(rightOfCursor))\n rightOfCursor = \"\";\n column = 0;\n }\n var index = this.$shortWordEndIndex(rightOfCursor);\n this.moveCursorTo(row, column + index);\n };\n Selection.prototype.moveCursorShortWordLeft = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1))\n return this.moveCursorTo(fold.start.row, fold.start.column);\n var line = this.session.getLine(row).substring(0, column);\n if (column === 0) {\n do {\n row--;\n line = this.doc.getLine(row);\n } while (row > 0 && /^\\s*$/.test(line));\n column = line.length;\n if (!/\\s+$/.test(line))\n line = \"\";\n }\n var leftOfCursor = lang.stringReverse(line);\n var index = this.$shortWordEndIndex(leftOfCursor);\n return this.moveCursorTo(row, column - index);\n };\n Selection.prototype.moveCursorWordRight = function () {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordRight();\n else\n this.moveCursorShortWordRight();\n };\n Selection.prototype.moveCursorWordLeft = function () {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordLeft();\n else\n this.moveCursorShortWordLeft();\n };\n Selection.prototype.moveCursorBy = function (rows, chars) {\n var screenPos = this.session.documentToScreenPosition(this.lead.row, this.lead.column);\n var offsetX;\n if (chars === 0) {\n if (rows !== 0) {\n if (this.session.$bidiHandler.isBidiRow(screenPos.row, this.lead.row)) {\n offsetX = this.session.$bidiHandler.getPosLeft(screenPos.column);\n screenPos.column = Math.round(offsetX / this.session.$bidiHandler.charWidths[0]);\n }\n else {\n offsetX = screenPos.column * this.session.$bidiHandler.charWidths[0];\n }\n }\n if (this.$desiredColumn)\n screenPos.column = this.$desiredColumn;\n else\n this.$desiredColumn = screenPos.column;\n }\n if (rows != 0 && this.session.lineWidgets && this.session.lineWidgets[this.lead.row]) {\n var widget = this.session.lineWidgets[this.lead.row];\n if (rows < 0)\n rows -= widget.rowsAbove || 0;\n else if (rows > 0)\n rows += widget.rowCount - (widget.rowsAbove || 0);\n }\n var docPos = this.session.screenToDocumentPosition(screenPos.row + rows, screenPos.column, offsetX);\n if (rows !== 0 && chars === 0 && docPos.row === this.lead.row && docPos.column === this.lead.column) {\n }\n this.moveCursorTo(docPos.row, docPos.column + chars, chars === 0);\n };\n Selection.prototype.moveCursorToPosition = function (position) {\n this.moveCursorTo(position.row, position.column);\n };\n Selection.prototype.moveCursorTo = function (row, column, keepDesiredColumn) {\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n row = fold.start.row;\n column = fold.start.column;\n }\n this.$keepDesiredColumnOnChange = true;\n var line = this.session.getLine(row);\n if (/[\\uDC00-\\uDFFF]/.test(line.charAt(column)) && line.charAt(column - 1)) {\n if (this.lead.row == row && this.lead.column == column + 1)\n column = column - 1;\n else\n column = column + 1;\n }\n this.lead.setPosition(row, column);\n this.$keepDesiredColumnOnChange = false;\n if (!keepDesiredColumn)\n this.$desiredColumn = null;\n };\n Selection.prototype.moveCursorToScreen = function (row, column, keepDesiredColumn) {\n var pos = this.session.screenToDocumentPosition(row, column);\n this.moveCursorTo(pos.row, pos.column, keepDesiredColumn);\n };\n Selection.prototype.detach = function () {\n this.lead.detach();\n this.anchor.detach();\n };\n Selection.prototype.fromOrientedRange = function (range) {\n this.setSelectionRange(range, range.cursor == range.start);\n this.$desiredColumn = range.desiredColumn || this.$desiredColumn;\n };\n Selection.prototype.toOrientedRange = function (range) {\n var r = this.getRange();\n if (range) {\n range.start.column = r.start.column;\n range.start.row = r.start.row;\n range.end.column = r.end.column;\n range.end.row = r.end.row;\n }\n else {\n range = r;\n }\n range.cursor = this.isBackwards() ? range.start : range.end;\n range.desiredColumn = this.$desiredColumn;\n return range;\n };\n Selection.prototype.getRangeOfMovements = function (func) {\n var start = this.getCursor();\n try {\n func(this);\n var end = this.getCursor();\n return Range.fromPoints(start, end);\n }\n catch (e) {\n return Range.fromPoints(start, start);\n }\n finally {\n this.moveCursorToPosition(start);\n }\n };\n Selection.prototype.toJSON = function () {\n if (this.rangeCount) {\n var data = this.ranges.map(function (r) {\n var r1 = r.clone();\n r1.isBackwards = r.cursor == r.start;\n return r1;\n });\n }\n else {\n var data = this.getRange();\n data.isBackwards = this.isBackwards();\n }\n return data;\n };\n Selection.prototype.fromJSON = function (data) {\n if (data.start == undefined) {\n if (this.rangeList && data.length > 1) {\n this.toSingleRange(data[0]);\n for (var i = data.length; i--;) {\n var r = Range.fromPoints(data[i].start, data[i].end);\n if (data[i].isBackwards)\n r.cursor = r.start;\n this.addRange(r, true);\n }\n return;\n }\n else {\n data = data[0];\n }\n }\n if (this.rangeList)\n this.toSingleRange(data);\n this.setSelectionRange(data, data.isBackwards);\n };\n Selection.prototype.isEqual = function (data) {\n if ((data.length || this.rangeCount) && data.length != this.rangeCount)\n return false;\n if (!data.length || !this.ranges)\n return this.getRange().isEqual(data);\n for (var i = this.ranges.length; i--;) {\n if (!this.ranges[i].isEqual(data[i]))\n return false;\n }\n return true;\n };\n return Selection;\n}());\nSelection.prototype.setSelectionAnchor = Selection.prototype.setAnchor;\nSelection.prototype.getSelectionAnchor = Selection.prototype.getAnchor;\nSelection.prototype.setSelectionRange = Selection.prototype.setRange;\noop.implement(Selection.prototype, EventEmitter);\nexports.Selection = Selection;\n\n});\n\nace.define(\"ace/tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/report_error\"], function(require, exports, module){\"use strict\";\nvar reportError = require(\"./lib/report_error\").reportError;\nvar MAX_TOKEN_COUNT = 2000;\nvar Tokenizer = /** @class */ (function () {\n function Tokenizer(rules) {\n this.states = rules;\n this.regExps = {};\n this.matchMappings = {};\n for (var key in this.states) {\n var state = this.states[key];\n var ruleRegExps = [];\n var matchTotal = 0;\n var mapping = this.matchMappings[key] = { defaultToken: \"text\" };\n var flag = \"g\";\n var splitterRurles = [];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.defaultToken)\n mapping.defaultToken = rule.defaultToken;\n if (rule.caseInsensitive && flag.indexOf(\"i\") === -1)\n flag += \"i\";\n if (rule.unicode && flag.indexOf(\"u\") === -1)\n flag += \"u\";\n if (rule.regex == null)\n continue;\n if (rule.regex instanceof RegExp)\n rule.regex = rule.regex.toString().slice(1, -1);\n var adjustedregex = rule.regex;\n var matchcount = new RegExp(\"(?:(\" + adjustedregex + \")|(.))\").exec(\"a\").length - 2;\n if (Array.isArray(rule.token)) {\n if (rule.token.length == 1 || matchcount == 1) {\n rule.token = rule.token[0];\n }\n else if (matchcount - 1 != rule.token.length) {\n this.reportError(\"number of classes and regexp groups doesn't match\", {\n rule: rule,\n groupCount: matchcount - 1\n });\n rule.token = rule.token[0];\n }\n else {\n rule.tokenArray = rule.token;\n rule.token = null;\n rule.onMatch = this.$arrayTokens;\n }\n }\n else if (typeof rule.token == \"function\" && !rule.onMatch) {\n if (matchcount > 1)\n rule.onMatch = this.$applyToken;\n else\n rule.onMatch = rule.token;\n }\n if (matchcount > 1) {\n if (/\\\\\\d/.test(rule.regex)) {\n adjustedregex = rule.regex.replace(/\\\\([0-9]+)/g, function (match, digit) {\n return \"\\\\\" + (parseInt(digit, 10) + matchTotal + 1);\n });\n }\n else {\n matchcount = 1;\n adjustedregex = this.removeCapturingGroups(rule.regex);\n }\n if (!rule.splitRegex && typeof rule.token != \"string\")\n splitterRurles.push(rule); // flag will be known only at the very end\n }\n mapping[matchTotal] = i;\n matchTotal += matchcount;\n ruleRegExps.push(adjustedregex);\n if (!rule.onMatch)\n rule.onMatch = null;\n }\n if (!ruleRegExps.length) {\n mapping[0] = 0;\n ruleRegExps.push(\"$\");\n }\n splitterRurles.forEach(function (rule) {\n rule.splitRegex = this.createSplitterRegexp(rule.regex, flag);\n }, this);\n this.regExps[key] = new RegExp(\"(\" + ruleRegExps.join(\")|(\") + \")|($)\", flag);\n }\n }\n Tokenizer.prototype.$setMaxTokenCount = function (m) {\n MAX_TOKEN_COUNT = m | 0;\n };\n Tokenizer.prototype.$applyToken = function (str) {\n var values = this.splitRegex.exec(str).slice(1);\n var types = this.token.apply(this, values);\n if (typeof types === \"string\")\n return [{ type: types, value: str }];\n var tokens = [];\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i]\n };\n }\n return tokens;\n };\n Tokenizer.prototype.$arrayTokens = function (str) {\n if (!str)\n return [];\n var values = this.splitRegex.exec(str);\n if (!values)\n return \"text\";\n var tokens = [];\n var types = this.tokenArray;\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i + 1])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i + 1]\n };\n }\n return tokens;\n };\n Tokenizer.prototype.removeCapturingGroups = function (src) {\n var r = src.replace(/\\\\.|\\[(?:\\\\.|[^\\\\\\]])*|\\(\\?[:=!<]|(\\()/g, function (x, y) { return y ? \"(?:\" : x; });\n return r;\n };\n Tokenizer.prototype.createSplitterRegexp = function (src, flag) {\n if (src.indexOf(\"(?=\") != -1) {\n var stack = 0;\n var inChClass = false;\n var lastCapture = {};\n src.replace(/(\\\\.)|(\\((?:\\?[=!])?)|(\\))|([\\[\\]])/g, function (m, esc, parenOpen, parenClose, square, index) {\n if (inChClass) {\n inChClass = square != \"]\";\n }\n else if (square) {\n inChClass = true;\n }\n else if (parenClose) {\n if (stack == lastCapture.stack) {\n lastCapture.end = index + 1;\n lastCapture.stack = -1;\n }\n stack--;\n }\n else if (parenOpen) {\n stack++;\n if (parenOpen.length != 1) {\n lastCapture.stack = stack;\n lastCapture.start = index;\n }\n }\n return m;\n });\n if (lastCapture.end != null && /^\\)*$/.test(src.substr(lastCapture.end)))\n src = src.substring(0, lastCapture.start) + src.substr(lastCapture.end);\n }\n if (src.charAt(0) != \"^\")\n src = \"^\" + src;\n if (src.charAt(src.length - 1) != \"$\")\n src += \"$\";\n return new RegExp(src, (flag || \"\").replace(\"g\", \"\"));\n };\n Tokenizer.prototype.getLineTokens = function (line, startState) {\n if (startState && typeof startState != \"string\") {\n var stack = startState.slice(0);\n startState = stack[0];\n if (startState === \"#tmp\") {\n stack.shift();\n startState = stack.shift();\n }\n }\n else\n var stack = [];\n var currentState = startState || \"start\";\n var state = this.states[currentState];\n if (!state) {\n currentState = \"start\";\n state = this.states[currentState];\n }\n var mapping = this.matchMappings[currentState];\n var re = this.regExps[currentState];\n re.lastIndex = 0;\n var match, tokens = [];\n var lastIndex = 0;\n var matchAttempts = 0;\n var token = { type: null, value: \"\" };\n while (match = re.exec(line)) {\n var type = mapping.defaultToken;\n var rule = null;\n var value = match[0];\n var index = re.lastIndex;\n if (index - value.length > lastIndex) {\n var skipped = line.substring(lastIndex, index - value.length);\n if (token.type == type) {\n token.value += skipped;\n }\n else {\n if (token.type)\n tokens.push(token);\n token = { type: type, value: skipped };\n }\n }\n for (var i = 0; i < match.length - 2; i++) {\n if (match[i + 1] === undefined)\n continue;\n rule = state[mapping[i]];\n if (rule.onMatch)\n type = rule.onMatch(value, currentState, stack, line);\n else\n type = rule.token;\n if (rule.next) {\n if (typeof rule.next == \"string\") {\n currentState = rule.next;\n }\n else {\n currentState = rule.next(currentState, stack);\n }\n state = this.states[currentState];\n if (!state) {\n this.reportError(\"state doesn't exist\", currentState);\n currentState = \"start\";\n state = this.states[currentState];\n }\n mapping = this.matchMappings[currentState];\n lastIndex = index;\n re = this.regExps[currentState];\n re.lastIndex = index;\n }\n if (rule.consumeLineEnd)\n lastIndex = index;\n break;\n }\n if (value) {\n if (typeof type === \"string\") {\n if ((!rule || rule.merge !== false) && token.type === type) {\n token.value += value;\n }\n else {\n if (token.type)\n tokens.push(token);\n token = { type: type, value: value };\n }\n }\n else if (type) {\n if (token.type)\n tokens.push(token);\n token = { type: null, value: \"\" };\n for (var i = 0; i < type.length; i++)\n tokens.push(type[i]);\n }\n }\n if (lastIndex == line.length)\n break;\n lastIndex = index;\n if (matchAttempts++ > MAX_TOKEN_COUNT) {\n if (matchAttempts > 2 * line.length) {\n this.reportError(\"infinite loop with in ace tokenizer\", {\n startState: startState,\n line: line\n });\n }\n while (lastIndex < line.length) {\n if (token.type)\n tokens.push(token);\n token = {\n value: line.substring(lastIndex, lastIndex += 500),\n type: \"overflow\"\n };\n }\n currentState = \"start\";\n stack = [];\n break;\n }\n }\n if (token.type)\n tokens.push(token);\n if (stack.length > 1) {\n if (stack[0] !== currentState)\n stack.unshift(\"#tmp\", currentState);\n }\n return {\n tokens: tokens,\n state: stack.length ? stack : currentState\n };\n };\n return Tokenizer;\n}());\nTokenizer.prototype.reportError = reportError;\nexports.Tokenizer = Tokenizer;\n\n});\n\nace.define(\"ace/mode/text_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/deep_copy\"], function(require, exports, module){\"use strict\";\nvar deepCopy = require(\"../lib/deep_copy\").deepCopy;\nvar TextHighlightRules = function () {\n this.$rules = {\n \"start\": [{\n token: \"empty_line\",\n regex: '^$'\n }, {\n defaultToken: \"text\"\n }]\n };\n};\n(function () {\n this.addRules = function (rules, prefix) {\n if (!prefix) {\n for (var key in rules)\n this.$rules[key] = rules[key];\n return;\n }\n for (var key in rules) {\n var state = rules[key];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.next || rule.onMatch) {\n if (typeof rule.next == \"string\") {\n if (rule.next.indexOf(prefix) !== 0)\n rule.next = prefix + rule.next;\n }\n if (rule.nextState && rule.nextState.indexOf(prefix) !== 0)\n rule.nextState = prefix + rule.nextState;\n }\n }\n this.$rules[prefix + key] = state;\n }\n };\n this.getRules = function () {\n return this.$rules;\n };\n this.embedRules = function (HighlightRules, prefix, escapeRules, states, append) {\n var embedRules = typeof HighlightRules == \"function\"\n ? new HighlightRules().getRules()\n : HighlightRules;\n if (states) {\n for (var i = 0; i < states.length; i++)\n states[i] = prefix + states[i];\n }\n else {\n states = [];\n for (var key in embedRules)\n states.push(prefix + key);\n }\n this.addRules(embedRules, prefix);\n if (escapeRules) {\n var addRules = Array.prototype[append ? \"push\" : \"unshift\"];\n for (var i = 0; i < states.length; i++)\n addRules.apply(this.$rules[states[i]], deepCopy(escapeRules));\n }\n if (!this.$embeds)\n this.$embeds = [];\n this.$embeds.push(prefix);\n };\n this.getEmbeds = function () {\n return this.$embeds;\n };\n var pushState = function (currentState, stack) {\n if (currentState != \"start\" || stack.length)\n stack.unshift(this.nextState, currentState);\n return this.nextState;\n };\n var popState = function (currentState, stack) {\n stack.shift();\n return stack.shift() || \"start\";\n };\n this.normalizeRules = function () {\n var id = 0;\n var rules = this.$rules;\n function processState(key) {\n var state = rules[key];\n state.processed = true;\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n var toInsert = null;\n if (Array.isArray(rule)) {\n toInsert = rule;\n rule = {};\n }\n if (!rule.regex && rule.start) {\n rule.regex = rule.start;\n if (!rule.next)\n rule.next = [];\n rule.next.push({\n defaultToken: rule.token\n }, {\n token: rule.token + \".end\",\n regex: rule.end || rule.start,\n next: \"pop\"\n });\n rule.token = rule.token + \".start\";\n rule.push = true;\n }\n var next = rule.next || rule.push;\n if (next && Array.isArray(next)) {\n var stateName = rule.stateName;\n if (!stateName) {\n stateName = rule.token;\n if (typeof stateName != \"string\")\n stateName = stateName[0] || \"\";\n if (rules[stateName])\n stateName += id++;\n }\n rules[stateName] = next;\n rule.next = stateName;\n processState(stateName);\n }\n else if (next == \"pop\") {\n rule.next = popState;\n }\n if (rule.push) {\n rule.nextState = rule.next || rule.push;\n rule.next = pushState;\n delete rule.push;\n }\n if (rule.rules) {\n for (var r in rule.rules) {\n if (rules[r]) {\n if (rules[r].push)\n rules[r].push.apply(rules[r], rule.rules[r]);\n }\n else {\n rules[r] = rule.rules[r];\n }\n }\n }\n var includeName = typeof rule == \"string\" ? rule : rule.include;\n if (includeName) {\n if (includeName === \"$self\")\n includeName = \"start\";\n if (Array.isArray(includeName))\n toInsert = includeName.map(function (x) { return rules[x]; });\n else\n toInsert = rules[includeName];\n }\n if (toInsert) {\n var args = [i, 1].concat(toInsert);\n if (rule.noEscape)\n args = args.filter(function (x) { return !x.next; });\n state.splice.apply(state, args);\n i--;\n }\n if (rule.keywordMap) {\n rule.token = this.createKeywordMapper(rule.keywordMap, rule.defaultToken || \"text\", rule.caseInsensitive);\n delete rule.defaultToken;\n }\n }\n }\n Object.keys(rules).forEach(processState, this);\n };\n this.createKeywordMapper = function (map, defaultToken, ignoreCase, splitChar) {\n var keywords = Object.create(null);\n this.$keywordList = [];\n Object.keys(map).forEach(function (className) {\n var a = map[className];\n var list = a.split(splitChar || \"|\");\n for (var i = list.length; i--;) {\n var word = list[i];\n this.$keywordList.push(word);\n if (ignoreCase)\n word = word.toLowerCase();\n keywords[word] = className;\n }\n }, this);\n map = null;\n return ignoreCase\n ? function (value) { return keywords[value.toLowerCase()] || defaultToken; }\n : function (value) { return keywords[value] || defaultToken; };\n };\n this.getKeywords = function () {\n return this.$keywords;\n };\n}).call(TextHighlightRules.prototype);\nexports.TextHighlightRules = TextHighlightRules;\n\n});\n\nace.define(\"ace/mode/behaviour\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar Behaviour = function () {\n this.$behaviours = {};\n};\n(function () {\n this.add = function (name, action, callback) {\n switch (undefined) {\n case this.$behaviours:\n this.$behaviours = {};\n case this.$behaviours[name]:\n this.$behaviours[name] = {};\n }\n this.$behaviours[name][action] = callback;\n };\n this.addBehaviours = function (behaviours) {\n for (var key in behaviours) {\n for (var action in behaviours[key]) {\n this.add(key, action, behaviours[key][action]);\n }\n }\n };\n this.remove = function (name) {\n if (this.$behaviours && this.$behaviours[name]) {\n delete this.$behaviours[name];\n }\n };\n this.inherit = function (mode, filter) {\n if (typeof mode === \"function\") {\n var behaviours = new mode().getBehaviours(filter);\n }\n else {\n var behaviours = mode.getBehaviours(filter);\n }\n this.addBehaviours(behaviours);\n };\n this.getBehaviours = function (filter) {\n if (!filter) {\n return this.$behaviours;\n }\n else {\n var ret = {};\n for (var i = 0; i < filter.length; i++) {\n if (this.$behaviours[filter[i]]) {\n ret[filter[i]] = this.$behaviours[filter[i]];\n }\n }\n return ret;\n }\n };\n}).call(Behaviour.prototype);\nexports.Behaviour = Behaviour;\n\n});\n\nace.define(\"ace/token_iterator\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar TokenIterator = /** @class */ (function () {\n function TokenIterator(session, initialRow, initialColumn) {\n this.$session = session;\n this.$row = initialRow;\n this.$rowTokens = session.getTokens(initialRow);\n var token = session.getTokenAt(initialRow, initialColumn);\n this.$tokenIndex = token ? token.index : -1;\n }\n TokenIterator.prototype.stepBackward = function () {\n this.$tokenIndex -= 1;\n while (this.$tokenIndex < 0) {\n this.$row -= 1;\n if (this.$row < 0) {\n this.$row = 0;\n return null;\n }\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = this.$rowTokens.length - 1;\n }\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.stepForward = function () {\n this.$tokenIndex += 1;\n var rowCount;\n while (this.$tokenIndex >= this.$rowTokens.length) {\n this.$row += 1;\n if (!rowCount)\n rowCount = this.$session.getLength();\n if (this.$row >= rowCount) {\n this.$row = rowCount - 1;\n return null;\n }\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = 0;\n }\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.getCurrentToken = function () {\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.getCurrentTokenRow = function () {\n return this.$row;\n };\n TokenIterator.prototype.getCurrentTokenColumn = function () {\n var rowTokens = this.$rowTokens;\n var tokenIndex = this.$tokenIndex;\n var column = rowTokens[tokenIndex].start;\n if (column !== undefined)\n return column;\n column = 0;\n while (tokenIndex > 0) {\n tokenIndex -= 1;\n column += rowTokens[tokenIndex].value.length;\n }\n return column;\n };\n TokenIterator.prototype.getCurrentTokenPosition = function () {\n return { row: this.$row, column: this.getCurrentTokenColumn() };\n };\n TokenIterator.prototype.getCurrentTokenRange = function () {\n var token = this.$rowTokens[this.$tokenIndex];\n var column = this.getCurrentTokenColumn();\n return new Range(this.$row, column, this.$row, column + token.value.length);\n };\n return TokenIterator;\n}());\nexports.TokenIterator = TokenIterator;\n\n});\n\nace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\nvar SAFE_INSERT_IN_TOKENS = [\"text\", \"paren.rparen\", \"rparen\", \"paren\", \"punctuation.operator\"];\nvar SAFE_INSERT_BEFORE_TOKENS = [\"text\", \"paren.rparen\", \"rparen\", \"paren\", \"punctuation.operator\", \"comment\"];\nvar context;\nvar contextCache = {};\nvar defaultQuotes = { '\"': '\"', \"'\": \"'\" };\nvar initContext = function (editor) {\n var id = -1;\n if (editor.multiSelect) {\n id = editor.selection.index;\n if (contextCache.rangeCount != editor.multiSelect.rangeCount)\n contextCache = { rangeCount: editor.multiSelect.rangeCount };\n }\n if (contextCache[id])\n return context = contextCache[id];\n context = contextCache[id] = {\n autoInsertedBrackets: 0,\n autoInsertedRow: -1,\n autoInsertedLineEnd: \"\",\n maybeInsertedBrackets: 0,\n maybeInsertedRow: -1,\n maybeInsertedLineStart: \"\",\n maybeInsertedLineEnd: \"\"\n };\n};\nvar getWrapped = function (selection, selected, opening, closing) {\n var rowDiff = selection.end.row - selection.start.row;\n return {\n text: opening + selected + closing,\n selection: [\n 0,\n selection.start.column + 1,\n rowDiff,\n selection.end.column + (rowDiff ? 0 : 1)\n ]\n };\n};\nvar CstyleBehaviour = function (options) {\n options = options || {};\n this.add(\"braces\", \"insertion\", function (state, action, editor, session, text) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (text == '{') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"{\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '{', '}');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n if (/[\\]\\}\\)]/.test(line[cursor.column]) || editor.inMultiSelectMode || options.braces) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"}\");\n return {\n text: '{}',\n selection: [1, 1]\n };\n }\n else {\n CstyleBehaviour.recordMaybeInsert(editor, session, \"{\");\n return {\n text: '{',\n selection: [1, 1]\n };\n }\n }\n }\n else if (text == '}') {\n initContext(editor);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == '}') {\n var matching = session.$findOpeningBracket('}', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n else if (text == \"\\n\" || text == \"\\r\\n\") {\n initContext(editor);\n var closing = \"\";\n if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {\n closing = lang.stringRepeat(\"}\", context.maybeInsertedBrackets);\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === '}') {\n var openBracePos = session.findMatchingBracket({ row: cursor.row, column: cursor.column + 1 }, '}');\n if (!openBracePos)\n return null;\n var next_indent = this.$getIndent(session.getLine(openBracePos.row));\n }\n else if (closing) {\n var next_indent = this.$getIndent(line);\n }\n else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n return;\n }\n var indent = next_indent + session.getTabString();\n return {\n text: '\\n' + indent + '\\n' + next_indent + closing,\n selection: [1, indent.length, 1, indent.length]\n };\n }\n else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n });\n this.add(\"braces\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '{') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar == '}') {\n range.end.column++;\n return range;\n }\n else {\n context.maybeInsertedBrackets--;\n }\n }\n });\n this.add(\"parens\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '(') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '(', ')');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \")\");\n return {\n text: '()',\n selection: [1, 1]\n };\n }\n }\n else if (text == ')') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ')') {\n var matching = session.$findOpeningBracket(')', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"parens\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '(') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ')') {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"brackets\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '[') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '[', ']');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"]\");\n return {\n text: '[]',\n selection: [1, 1]\n };\n }\n }\n else if (text == ']') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ']') {\n var matching = session.$findOpeningBracket(']', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"brackets\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '[') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ']') {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n var quotes = session.$mode.$quotes || defaultQuotes;\n if (text.length == 1 && quotes[text]) {\n if (this.lineCommentStart && this.lineCommentStart.indexOf(text) != -1)\n return;\n initContext(editor);\n var quote = text;\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && (selected.length != 1 || !quotes[selected]) && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, quote, quote);\n }\n else if (!selected) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var leftChar = line.substring(cursor.column - 1, cursor.column);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n var token = session.getTokenAt(cursor.row, cursor.column);\n var rightToken = session.getTokenAt(cursor.row, cursor.column + 1);\n if (leftChar == \"\\\\\" && token && /escape/.test(token.type))\n return null;\n var stringBefore = token && /string|escape/.test(token.type);\n var stringAfter = !rightToken || /string|escape/.test(rightToken.type);\n var pair;\n if (rightChar == quote) {\n pair = stringBefore !== stringAfter;\n if (pair && /string\\.end/.test(rightToken.type))\n pair = false;\n }\n else {\n if (stringBefore && !stringAfter)\n return null; // wrap string with different quote\n if (stringBefore && stringAfter)\n return null; // do not pair quotes inside strings\n var wordRe = session.$mode.tokenRe;\n wordRe.lastIndex = 0;\n var isWordBefore = wordRe.test(leftChar);\n wordRe.lastIndex = 0;\n var isWordAfter = wordRe.test(rightChar);\n var pairQuotesAfter = session.$mode.$pairQuotesAfter;\n var shouldPairQuotes = pairQuotesAfter && pairQuotesAfter[quote] && pairQuotesAfter[quote].test(leftChar);\n if ((!shouldPairQuotes && isWordBefore) || isWordAfter)\n return null; // before or after alphanumeric\n if (rightChar && !/[\\s;,.})\\]\\\\]/.test(rightChar))\n return null; // there is rightChar and it isn't closing\n var charBefore = line[cursor.column - 2];\n if (leftChar == quote && (charBefore == quote || wordRe.test(charBefore)))\n return null;\n pair = true;\n }\n return {\n text: pair ? quote + quote : \"\",\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"string_dquotes\", \"deletion\", function (state, action, editor, session, range) {\n var quotes = session.$mode.$quotes || defaultQuotes;\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && quotes.hasOwnProperty(selected)) {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n if (options.closeDocComment !== false) {\n this.add(\"doc comment end\", \"insertion\", function (state, action, editor, session, text) {\n if (state === \"doc-start\" && (text === \"\\n\" || text === \"\\r\\n\") && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var nextLine = session.doc.getLine(cursor.row + 1);\n var indent = this.$getIndent(line);\n if (/\\s*\\*/.test(nextLine)) {\n if (/^\\s*\\*/.test(line)) {\n return {\n text: text + indent + \"* \",\n selection: [1, 3 + indent.length, 1, 3 + indent.length]\n };\n }\n else {\n return {\n text: text + indent + \" * \",\n selection: [1, 3 + indent.length, 1, 3 + indent.length]\n };\n }\n }\n if (/\\/\\*\\*/.test(line.substring(0, cursor.column))) {\n return {\n text: text + indent + \" * \" + text + \" \" + indent + \"*/\",\n selection: [1, 4 + indent.length, 1, 4 + indent.length]\n };\n }\n }\n });\n }\n};\nCstyleBehaviour.isSaneInsertion = function (editor, session) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n if (!this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS)) {\n if (/[)}\\]]/.test(editor.session.getLine(cursor.row)[cursor.column]))\n return true;\n var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);\n if (!this.$matchTokenType(iterator2.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS))\n return false;\n }\n iterator.stepForward();\n return iterator.getCurrentTokenRow() !== cursor.row ||\n this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_BEFORE_TOKENS);\n};\nCstyleBehaviour.$matchTokenType = function (token, types) {\n return types.indexOf(token.type || token) > -1;\n};\nCstyleBehaviour.recordAutoInsert = function (editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))\n context.autoInsertedBrackets = 0;\n context.autoInsertedRow = cursor.row;\n context.autoInsertedLineEnd = bracket + line.substr(cursor.column);\n context.autoInsertedBrackets++;\n};\nCstyleBehaviour.recordMaybeInsert = function (editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isMaybeInsertedClosing(cursor, line))\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = cursor.row;\n context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;\n context.maybeInsertedLineEnd = line.substr(cursor.column);\n context.maybeInsertedBrackets++;\n};\nCstyleBehaviour.isAutoInsertedClosing = function (cursor, line, bracket) {\n return context.autoInsertedBrackets > 0 &&\n cursor.row === context.autoInsertedRow &&\n bracket === context.autoInsertedLineEnd[0] &&\n line.substr(cursor.column) === context.autoInsertedLineEnd;\n};\nCstyleBehaviour.isMaybeInsertedClosing = function (cursor, line) {\n return context.maybeInsertedBrackets > 0 &&\n cursor.row === context.maybeInsertedRow &&\n line.substr(cursor.column) === context.maybeInsertedLineEnd &&\n line.substr(0, cursor.column) == context.maybeInsertedLineStart;\n};\nCstyleBehaviour.popAutoInsertedClosing = function () {\n context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);\n context.autoInsertedBrackets--;\n};\nCstyleBehaviour.clearMaybeInsertedClosing = function () {\n if (context) {\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = -1;\n }\n};\noop.inherits(CstyleBehaviour, Behaviour);\nexports.CstyleBehaviour = CstyleBehaviour;\n\n});\n\nace.define(\"ace/unicode\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar wordChars = [48, 9, 8, 25, 5, 0, 2, 25, 48, 0, 11, 0, 5, 0, 6, 22, 2, 30, 2, 457, 5, 11, 15, 4, 8, 0, 2, 0, 18, 116, 2, 1, 3, 3, 9, 0, 2, 2, 2, 0, 2, 19, 2, 82, 2, 138, 2, 4, 3, 155, 12, 37, 3, 0, 8, 38, 10, 44, 2, 0, 2, 1, 2, 1, 2, 0, 9, 26, 6, 2, 30, 10, 7, 61, 2, 9, 5, 101, 2, 7, 3, 9, 2, 18, 3, 0, 17, 58, 3, 100, 15, 53, 5, 0, 6, 45, 211, 57, 3, 18, 2, 5, 3, 11, 3, 9, 2, 1, 7, 6, 2, 2, 2, 7, 3, 1, 3, 21, 2, 6, 2, 0, 4, 3, 3, 8, 3, 1, 3, 3, 9, 0, 5, 1, 2, 4, 3, 11, 16, 2, 2, 5, 5, 1, 3, 21, 2, 6, 2, 1, 2, 1, 2, 1, 3, 0, 2, 4, 5, 1, 3, 2, 4, 0, 8, 3, 2, 0, 8, 15, 12, 2, 2, 8, 2, 2, 2, 21, 2, 6, 2, 1, 2, 4, 3, 9, 2, 2, 2, 2, 3, 0, 16, 3, 3, 9, 18, 2, 2, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 3, 8, 3, 1, 3, 2, 9, 1, 5, 1, 2, 4, 3, 9, 2, 0, 17, 1, 2, 5, 4, 2, 2, 3, 4, 1, 2, 0, 2, 1, 4, 1, 4, 2, 4, 11, 5, 4, 4, 2, 2, 3, 3, 0, 7, 0, 15, 9, 18, 2, 2, 7, 2, 2, 2, 22, 2, 9, 2, 4, 4, 7, 2, 2, 2, 3, 8, 1, 2, 1, 7, 3, 3, 9, 19, 1, 2, 7, 2, 2, 2, 22, 2, 9, 2, 4, 3, 8, 2, 2, 2, 3, 8, 1, 8, 0, 2, 3, 3, 9, 19, 1, 2, 7, 2, 2, 2, 22, 2, 15, 4, 7, 2, 2, 2, 3, 10, 0, 9, 3, 3, 9, 11, 5, 3, 1, 2, 17, 4, 23, 2, 8, 2, 0, 3, 6, 4, 0, 5, 5, 2, 0, 2, 7, 19, 1, 14, 57, 6, 14, 2, 9, 40, 1, 2, 0, 3, 1, 2, 0, 3, 0, 7, 3, 2, 6, 2, 2, 2, 0, 2, 0, 3, 1, 2, 12, 2, 2, 3, 4, 2, 0, 2, 5, 3, 9, 3, 1, 35, 0, 24, 1, 7, 9, 12, 0, 2, 0, 2, 0, 5, 9, 2, 35, 5, 19, 2, 5, 5, 7, 2, 35, 10, 0, 58, 73, 7, 77, 3, 37, 11, 42, 2, 0, 4, 328, 2, 3, 3, 6, 2, 0, 2, 3, 3, 40, 2, 3, 3, 32, 2, 3, 3, 6, 2, 0, 2, 3, 3, 14, 2, 56, 2, 3, 3, 66, 5, 0, 33, 15, 17, 84, 13, 619, 3, 16, 2, 25, 6, 74, 22, 12, 2, 6, 12, 20, 12, 19, 13, 12, 2, 2, 2, 1, 13, 51, 3, 29, 4, 0, 5, 1, 3, 9, 34, 2, 3, 9, 7, 87, 9, 42, 6, 69, 11, 28, 4, 11, 5, 11, 11, 39, 3, 4, 12, 43, 5, 25, 7, 10, 38, 27, 5, 62, 2, 28, 3, 10, 7, 9, 14, 0, 89, 75, 5, 9, 18, 8, 13, 42, 4, 11, 71, 55, 9, 9, 4, 48, 83, 2, 2, 30, 14, 230, 23, 280, 3, 5, 3, 37, 3, 5, 3, 7, 2, 0, 2, 0, 2, 0, 2, 30, 3, 52, 2, 6, 2, 0, 4, 2, 2, 6, 4, 3, 3, 5, 5, 12, 6, 2, 2, 6, 67, 1, 20, 0, 29, 0, 14, 0, 17, 4, 60, 12, 5, 0, 4, 11, 18, 0, 5, 0, 3, 9, 2, 0, 4, 4, 7, 0, 2, 0, 2, 0, 2, 3, 2, 10, 3, 3, 6, 4, 5, 0, 53, 1, 2684, 46, 2, 46, 2, 132, 7, 6, 15, 37, 11, 53, 10, 0, 17, 22, 10, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 31, 48, 0, 470, 1, 36, 5, 2, 4, 6, 1, 5, 85, 3, 1, 3, 2, 2, 89, 2, 3, 6, 40, 4, 93, 18, 23, 57, 15, 513, 6581, 75, 20939, 53, 1164, 68, 45, 3, 268, 4, 27, 21, 31, 3, 13, 13, 1, 2, 24, 9, 69, 11, 1, 38, 8, 3, 102, 3, 1, 111, 44, 25, 51, 13, 68, 12, 9, 7, 23, 4, 0, 5, 45, 3, 35, 13, 28, 4, 64, 15, 10, 39, 54, 10, 13, 3, 9, 7, 22, 4, 1, 5, 66, 25, 2, 227, 42, 2, 1, 3, 9, 7, 11171, 13, 22, 5, 48, 8453, 301, 3, 61, 3, 105, 39, 6, 13, 4, 6, 11, 2, 12, 2, 4, 2, 0, 2, 1, 2, 1, 2, 107, 34, 362, 19, 63, 3, 53, 41, 11, 5, 15, 17, 6, 13, 1, 25, 2, 33, 4, 2, 134, 20, 9, 8, 25, 5, 0, 2, 25, 12, 88, 4, 5, 3, 5, 3, 5, 3, 2];\nvar code = 0;\nvar str = [];\nfor (var i = 0; i < wordChars.length; i += 2) {\n str.push(code += wordChars[i]);\n if (wordChars[i + 1])\n str.push(45, code += wordChars[i + 1]);\n}\nexports.wordChars = String.fromCharCode.apply(null, str);\n\n});\n\nace.define(\"ace/mode/text\",[\"require\",\"exports\",\"module\",\"ace/config\",\"ace/tokenizer\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/unicode\",\"ace/lib/lang\",\"ace/token_iterator\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar config = require(\"../config\");\nvar Tokenizer = require(\"../tokenizer\").Tokenizer;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar unicode = require(\"../unicode\");\nvar lang = require(\"../lib/lang\");\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar Range = require(\"../range\").Range;\nvar Mode = function () {\n this.HighlightRules = TextHighlightRules;\n};\n(function () {\n this.$defaultBehaviour = new CstyleBehaviour();\n this.tokenRe = new RegExp(\"^[\" + unicode.wordChars + \"\\\\$_]+\", \"g\");\n this.nonTokenRe = new RegExp(\"^(?:[^\" + unicode.wordChars + \"\\\\$_]|\\\\s])+\", \"g\");\n this.getTokenizer = function () {\n if (!this.$tokenizer) {\n this.$highlightRules = this.$highlightRules || new this.HighlightRules(this.$highlightRuleConfig);\n this.$tokenizer = new Tokenizer(this.$highlightRules.getRules());\n }\n return this.$tokenizer;\n };\n this.lineCommentStart = \"\";\n this.blockComment = \"\";\n this.toggleCommentLines = function (state, session, startRow, endRow) {\n var doc = session.doc;\n var ignoreBlankLines = true;\n var shouldRemove = true;\n var minIndent = Infinity;\n var tabSize = session.getTabSize();\n var insertAtTabStop = false;\n if (!this.lineCommentStart) {\n if (!this.blockComment)\n return false;\n var lineCommentStart = this.blockComment.start;\n var lineCommentEnd = this.blockComment.end;\n var regexpStart = new RegExp(\"^(\\\\s*)(?:\" + lang.escapeRegExp(lineCommentStart) + \")\");\n var regexpEnd = new RegExp(\"(?:\" + lang.escapeRegExp(lineCommentEnd) + \")\\\\s*$\");\n var comment = function (line, i) {\n if (testRemove(line, i))\n return;\n if (!ignoreBlankLines || /\\S/.test(line)) {\n doc.insertInLine({ row: i, column: line.length }, lineCommentEnd);\n doc.insertInLine({ row: i, column: minIndent }, lineCommentStart);\n }\n };\n var uncomment = function (line, i) {\n var m;\n if (m = line.match(regexpEnd))\n doc.removeInLine(i, line.length - m[0].length, line.length);\n if (m = line.match(regexpStart))\n doc.removeInLine(i, m[1].length, m[0].length);\n };\n var testRemove = function (line, row) {\n if (regexpStart.test(line))\n return true;\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n if (tokens[i].type === \"comment\")\n return true;\n }\n };\n }\n else {\n if (Array.isArray(this.lineCommentStart)) {\n var regexpStart = this.lineCommentStart.map(lang.escapeRegExp).join(\"|\");\n var lineCommentStart = this.lineCommentStart[0];\n }\n else {\n var regexpStart = lang.escapeRegExp(this.lineCommentStart);\n var lineCommentStart = this.lineCommentStart;\n }\n regexpStart = new RegExp(\"^(\\\\s*)(?:\" + regexpStart + \") ?\");\n insertAtTabStop = session.getUseSoftTabs();\n var uncomment = function (line, i) {\n var m = line.match(regexpStart);\n if (!m)\n return;\n var start = m[1].length, end = m[0].length;\n if (!shouldInsertSpace(line, start, end) && m[0][end - 1] == \" \")\n end--;\n doc.removeInLine(i, start, end);\n };\n var commentWithSpace = lineCommentStart + \" \";\n var comment = function (line, i) {\n if (!ignoreBlankLines || /\\S/.test(line)) {\n if (shouldInsertSpace(line, minIndent, minIndent))\n doc.insertInLine({ row: i, column: minIndent }, commentWithSpace);\n else\n doc.insertInLine({ row: i, column: minIndent }, lineCommentStart);\n }\n };\n var testRemove = function (line, i) {\n return regexpStart.test(line);\n };\n var shouldInsertSpace = function (line, before, after) {\n var spaces = 0;\n while (before-- && line.charAt(before) == \" \")\n spaces++;\n if (spaces % tabSize != 0)\n return false;\n var spaces = 0;\n while (line.charAt(after++) == \" \")\n spaces++;\n if (tabSize > 2)\n return spaces % tabSize != tabSize - 1;\n else\n return spaces % tabSize == 0;\n };\n }\n function iter(fun) {\n for (var i = startRow; i <= endRow; i++)\n fun(doc.getLine(i), i);\n }\n var minEmptyLength = Infinity;\n iter(function (line, i) {\n var indent = line.search(/\\S/);\n if (indent !== -1) {\n if (indent < minIndent)\n minIndent = indent;\n if (shouldRemove && !testRemove(line, i))\n shouldRemove = false;\n }\n else if (minEmptyLength > line.length) {\n minEmptyLength = line.length;\n }\n });\n if (minIndent == Infinity) {\n minIndent = minEmptyLength;\n ignoreBlankLines = false;\n shouldRemove = false;\n }\n if (insertAtTabStop && minIndent % tabSize != 0)\n minIndent = Math.floor(minIndent / tabSize) * tabSize;\n iter(shouldRemove ? uncomment : comment);\n };\n this.toggleBlockComment = function (state, session, range, cursor) {\n var comment = this.blockComment;\n if (!comment)\n return;\n if (!comment.start && comment[0])\n comment = comment[0];\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n var sel = session.selection;\n var initialRange = session.selection.toOrientedRange();\n var startRow, colDiff;\n if (token && /comment/.test(token.type)) {\n var startRange, endRange;\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.start);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n startRange = new Range(row, column, row, column + comment.start.length);\n break;\n }\n token = iterator.stepBackward();\n }\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.end);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n endRange = new Range(row, column, row, column + comment.end.length);\n break;\n }\n token = iterator.stepForward();\n }\n if (endRange)\n session.remove(endRange);\n if (startRange) {\n session.remove(startRange);\n startRow = startRange.start.row;\n colDiff = -comment.start.length;\n }\n }\n else {\n colDiff = comment.start.length;\n startRow = range.start.row;\n session.insert(range.end, comment.end);\n session.insert(range.start, comment.start);\n }\n if (initialRange.start.row == startRow)\n initialRange.start.column += colDiff;\n if (initialRange.end.row == startRow)\n initialRange.end.column += colDiff;\n session.selection.fromOrientedRange(initialRange);\n };\n this.getNextLineIndent = function (state, line, tab) {\n return this.$getIndent(line);\n };\n this.checkOutdent = function (state, line, input) {\n return false;\n };\n this.autoOutdent = function (state, doc, row) {\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n this.createWorker = function (session) {\n return null;\n };\n this.createModeDelegates = function (mapping) {\n this.$embeds = [];\n this.$modes = {};\n for (var i in mapping) {\n if (mapping[i]) {\n var Mode = mapping[i];\n var id = Mode.prototype.$id;\n var mode = config.$modes[id];\n if (!mode)\n config.$modes[id] = mode = new Mode();\n if (!config.$modes[i])\n config.$modes[i] = mode;\n this.$embeds.push(i);\n this.$modes[i] = mode;\n }\n }\n var delegations = [\"toggleBlockComment\", \"toggleCommentLines\", \"getNextLineIndent\",\n \"checkOutdent\", \"autoOutdent\", \"transformAction\", \"getCompletions\"];\n for (var i = 0; i < delegations.length; i++) {\n (function (scope) {\n var functionName = delegations[i];\n var defaultHandler = scope[functionName];\n scope[delegations[i]] = function () {\n return this.$delegator(functionName, arguments, defaultHandler);\n };\n }(this));\n }\n };\n this.$delegator = function (method, args, defaultHandler) {\n var state = args[0] || \"start\";\n if (typeof state != \"string\") {\n if (Array.isArray(state[2])) {\n var language = state[2][state[2].length - 1];\n var mode = this.$modes[language];\n if (mode)\n return mode[method].apply(mode, [state[1]].concat([].slice.call(args, 1)));\n }\n state = state[0] || \"start\";\n }\n for (var i = 0; i < this.$embeds.length; i++) {\n if (!this.$modes[this.$embeds[i]])\n continue;\n var split = state.split(this.$embeds[i]);\n if (!split[0] && split[1]) {\n args[0] = split[1];\n var mode = this.$modes[this.$embeds[i]];\n return mode[method].apply(mode, args);\n }\n }\n var ret = defaultHandler.apply(this, args);\n return defaultHandler ? ret : undefined;\n };\n this.transformAction = function (state, action, editor, session, param) {\n if (this.$behaviour) {\n var behaviours = this.$behaviour.getBehaviours();\n for (var key in behaviours) {\n if (behaviours[key][action]) {\n var ret = behaviours[key][action].apply(this, arguments);\n if (ret) {\n return ret;\n }\n }\n }\n }\n };\n this.getKeywords = function (append) {\n if (!this.completionKeywords) {\n var rules = this.$tokenizer.rules;\n var completionKeywords = [];\n for (var rule in rules) {\n var ruleItr = rules[rule];\n for (var r = 0, l = ruleItr.length; r < l; r++) {\n if (typeof ruleItr[r].token === \"string\") {\n if (/keyword|support|storage/.test(ruleItr[r].token))\n completionKeywords.push(ruleItr[r].regex);\n }\n else if (typeof ruleItr[r].token === \"object\") {\n for (var a = 0, aLength = ruleItr[r].token.length; a < aLength; a++) {\n if (/keyword|support|storage/.test(ruleItr[r].token[a])) {\n var rule = ruleItr[r].regex.match(/\\(.+?\\)/g)[a];\n completionKeywords.push(rule.substr(1, rule.length - 2));\n }\n }\n }\n }\n }\n this.completionKeywords = completionKeywords;\n }\n if (!append)\n return this.$keywordList;\n return completionKeywords.concat(this.$keywordList || []);\n };\n this.$createKeywordList = function () {\n if (!this.$highlightRules)\n this.getTokenizer();\n return this.$keywordList = this.$highlightRules.$keywordList || [];\n };\n this.getCompletions = function (state, session, pos, prefix) {\n var keywords = this.$keywordList || this.$createKeywordList();\n return keywords.map(function (word) {\n return {\n name: word,\n value: word,\n score: 0,\n meta: \"keyword\"\n };\n });\n };\n this.$id = \"ace/mode/text\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n});\n\nace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nfunction throwDeltaError(delta, errorText) {\n console.log(\"Invalid Delta:\", delta);\n throw \"Invalid Delta: \" + errorText;\n}\nfunction positionInDocument(docLines, position) {\n return position.row >= 0 && position.row < docLines.length &&\n position.column >= 0 && position.column <= docLines[position.row].length;\n}\nfunction validateDelta(docLines, delta) {\n if (delta.action != \"insert\" && delta.action != \"remove\")\n throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n if (!(delta.lines instanceof Array))\n throwDeltaError(delta, \"delta.lines must be an Array\");\n if (!delta.start || !delta.end)\n throwDeltaError(delta, \"delta.start/end must be an present\");\n var start = delta.start;\n if (!positionInDocument(docLines, delta.start))\n throwDeltaError(delta, \"delta.start must be contained in document\");\n var end = delta.end;\n if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n var numRangeRows = end.row - start.row;\n var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n throwDeltaError(delta, \"delta.range must match delta lines\");\n}\nexports.applyDelta = function (docLines, delta, doNotValidate) {\n var row = delta.start.row;\n var startColumn = delta.start.column;\n var line = docLines[row] || \"\";\n switch (delta.action) {\n case \"insert\":\n var lines = delta.lines;\n if (lines.length === 1) {\n docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n }\n else {\n var args = [row, 1].concat(delta.lines);\n docLines.splice.apply(docLines, args);\n docLines[row] = line.substring(0, startColumn) + docLines[row];\n docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n }\n break;\n case \"remove\":\n var endColumn = delta.end.column;\n var endRow = delta.end.row;\n if (row === endRow) {\n docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n }\n else {\n docLines.splice(row, endRow - row + 1, line.substring(0, startColumn) + docLines[endRow].substring(endColumn));\n }\n break;\n }\n};\n\n});\n\nace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Anchor = /** @class */ (function () {\n function Anchor(doc, row, column) {\n this.$onChange = this.onChange.bind(this);\n this.attach(doc);\n if (typeof column == \"undefined\")\n this.setPosition(row.row, row.column);\n else\n this.setPosition(row, column);\n }\n Anchor.prototype.getPosition = function () {\n return this.$clipPositionToDocument(this.row, this.column);\n };\n Anchor.prototype.getDocument = function () {\n return this.document;\n };\n Anchor.prototype.onChange = function (delta) {\n if (delta.start.row == delta.end.row && delta.start.row != this.row)\n return;\n if (delta.start.row > this.row)\n return;\n var point = $getTransformedPoint(delta, { row: this.row, column: this.column }, this.$insertRight);\n this.setPosition(point.row, point.column, true);\n };\n Anchor.prototype.setPosition = function (row, column, noClip) {\n var pos;\n if (noClip) {\n pos = {\n row: row,\n column: column\n };\n }\n else {\n pos = this.$clipPositionToDocument(row, column);\n }\n if (this.row == pos.row && this.column == pos.column)\n return;\n var old = {\n row: this.row,\n column: this.column\n };\n this.row = pos.row;\n this.column = pos.column;\n this._signal(\"change\", {\n old: old,\n value: pos\n });\n };\n Anchor.prototype.detach = function () {\n this.document.off(\"change\", this.$onChange);\n };\n Anchor.prototype.attach = function (doc) {\n this.document = doc || this.document;\n this.document.on(\"change\", this.$onChange);\n };\n Anchor.prototype.$clipPositionToDocument = function (row, column) {\n var pos = {};\n if (row >= this.document.getLength()) {\n pos.row = Math.max(0, this.document.getLength() - 1);\n pos.column = this.document.getLine(pos.row).length;\n }\n else if (row < 0) {\n pos.row = 0;\n pos.column = 0;\n }\n else {\n pos.row = row;\n pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n }\n if (column < 0)\n pos.column = 0;\n return pos;\n };\n return Anchor;\n}());\nAnchor.prototype.$insertRight = false;\noop.implement(Anchor.prototype, EventEmitter);\nfunction $pointsInOrder(point1, point2, equalPointsInOrder) {\n var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n}\nfunction $getTransformedPoint(delta, point, moveIfEqual) {\n var deltaIsInsert = delta.action == \"insert\";\n var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row);\n var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n var deltaStart = delta.start;\n var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n return {\n row: point.row,\n column: point.column\n };\n }\n if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n return {\n row: point.row + deltaRowShift,\n column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n };\n }\n return {\n row: deltaStart.row,\n column: deltaStart.column\n };\n}\nexports.Anchor = Anchor;\n\n});\n\nace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar applyDelta = require(\"./apply_delta\").applyDelta;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Anchor = require(\"./anchor\").Anchor;\nvar Document = /** @class */ (function () {\n function Document(textOrLines) {\n this.$lines = [\"\"];\n if (textOrLines.length === 0) {\n this.$lines = [\"\"];\n }\n else if (Array.isArray(textOrLines)) {\n this.insertMergedLines({ row: 0, column: 0 }, textOrLines);\n }\n else {\n this.insert({ row: 0, column: 0 }, textOrLines);\n }\n }\n Document.prototype.setValue = function (text) {\n var len = this.getLength() - 1;\n this.remove(new Range(0, 0, len, this.getLine(len).length));\n this.insert({ row: 0, column: 0 }, text || \"\");\n };\n Document.prototype.getValue = function () {\n return this.getAllLines().join(this.getNewLineCharacter());\n };\n Document.prototype.createAnchor = function (row, column) {\n return new Anchor(this, row, column);\n };\n Document.prototype.$detectNewLine = function (text) {\n var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n this.$autoNewLine = match ? match[1] : \"\\n\";\n this._signal(\"changeNewLineMode\");\n };\n Document.prototype.getNewLineCharacter = function () {\n switch (this.$newLineMode) {\n case \"windows\":\n return \"\\r\\n\";\n case \"unix\":\n return \"\\n\";\n default:\n return this.$autoNewLine || \"\\n\";\n }\n };\n Document.prototype.setNewLineMode = function (newLineMode) {\n if (this.$newLineMode === newLineMode)\n return;\n this.$newLineMode = newLineMode;\n this._signal(\"changeNewLineMode\");\n };\n Document.prototype.getNewLineMode = function () {\n return this.$newLineMode;\n };\n Document.prototype.isNewLine = function (text) {\n return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n };\n Document.prototype.getLine = function (row) {\n return this.$lines[row] || \"\";\n };\n Document.prototype.getLines = function (firstRow, lastRow) {\n return this.$lines.slice(firstRow, lastRow + 1);\n };\n Document.prototype.getAllLines = function () {\n return this.getLines(0, this.getLength());\n };\n Document.prototype.getLength = function () {\n return this.$lines.length;\n };\n Document.prototype.getTextRange = function (range) {\n return this.getLinesForRange(range).join(this.getNewLineCharacter());\n };\n Document.prototype.getLinesForRange = function (range) {\n var lines;\n if (range.start.row === range.end.row) {\n lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n }\n else {\n lines = this.getLines(range.start.row, range.end.row);\n lines[0] = (lines[0] || \"\").substring(range.start.column);\n var l = lines.length - 1;\n if (range.end.row - range.start.row == l)\n lines[l] = lines[l].substring(0, range.end.column);\n }\n return lines;\n };\n Document.prototype.insertLines = function (row, lines) {\n console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n return this.insertFullLines(row, lines);\n };\n Document.prototype.removeLines = function (firstRow, lastRow) {\n console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n return this.removeFullLines(firstRow, lastRow);\n };\n Document.prototype.insertNewLine = function (position) {\n console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\");\n return this.insertMergedLines(position, [\"\", \"\"]);\n };\n Document.prototype.insert = function (position, text) {\n if (this.getLength() <= 1)\n this.$detectNewLine(text);\n return this.insertMergedLines(position, this.$split(text));\n };\n Document.prototype.insertInLine = function (position, text) {\n var start = this.clippedPos(position.row, position.column);\n var end = this.pos(position.row, position.column + text.length);\n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: [text]\n }, true);\n return this.clonePos(end);\n };\n Document.prototype.clippedPos = function (row, column) {\n var length = this.getLength();\n if (row === undefined) {\n row = length;\n }\n else if (row < 0) {\n row = 0;\n }\n else if (row >= length) {\n row = length - 1;\n column = undefined;\n }\n var line = this.getLine(row);\n if (column == undefined)\n column = line.length;\n column = Math.min(Math.max(column, 0), line.length);\n return { row: row, column: column };\n };\n Document.prototype.clonePos = function (pos) {\n return { row: pos.row, column: pos.column };\n };\n Document.prototype.pos = function (row, column) {\n return { row: row, column: column };\n };\n Document.prototype.$clipPosition = function (position) {\n var length = this.getLength();\n if (position.row >= length) {\n position.row = Math.max(0, length - 1);\n position.column = this.getLine(length - 1).length;\n }\n else {\n position.row = Math.max(0, position.row);\n position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n }\n return position;\n };\n Document.prototype.insertFullLines = function (row, lines) {\n row = Math.min(Math.max(row, 0), this.getLength());\n var column = 0;\n if (row < this.getLength()) {\n lines = lines.concat([\"\"]);\n column = 0;\n }\n else {\n lines = [\"\"].concat(lines);\n row--;\n column = this.$lines[row].length;\n }\n this.insertMergedLines({ row: row, column: column }, lines);\n };\n Document.prototype.insertMergedLines = function (position, lines) {\n var start = this.clippedPos(position.row, position.column);\n var end = {\n row: start.row + lines.length - 1,\n column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n };\n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: lines\n });\n return this.clonePos(end);\n };\n Document.prototype.remove = function (range) {\n var start = this.clippedPos(range.start.row, range.start.column);\n var end = this.clippedPos(range.end.row, range.end.column);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({ start: start, end: end })\n });\n return this.clonePos(start);\n };\n Document.prototype.removeInLine = function (row, startColumn, endColumn) {\n var start = this.clippedPos(row, startColumn);\n var end = this.clippedPos(row, endColumn);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({ start: start, end: end })\n }, true);\n return this.clonePos(start);\n };\n Document.prototype.removeFullLines = function (firstRow, lastRow) {\n firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n lastRow = Math.min(Math.max(0, lastRow), this.getLength() - 1);\n var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n var deleteLastNewLine = lastRow < this.getLength() - 1;\n var startRow = (deleteFirstNewLine ? firstRow - 1 : firstRow);\n var startCol = (deleteFirstNewLine ? this.getLine(startRow).length : 0);\n var endRow = (deleteLastNewLine ? lastRow + 1 : lastRow);\n var endCol = (deleteLastNewLine ? 0 : this.getLine(endRow).length);\n var range = new Range(startRow, startCol, endRow, endCol);\n var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n this.applyDelta({\n start: range.start,\n end: range.end,\n action: \"remove\",\n lines: this.getLinesForRange(range)\n });\n return deletedLines;\n };\n Document.prototype.removeNewLine = function (row) {\n if (row < this.getLength() - 1 && row >= 0) {\n this.applyDelta({\n start: this.pos(row, this.getLine(row).length),\n end: this.pos(row + 1, 0),\n action: \"remove\",\n lines: [\"\", \"\"]\n });\n }\n };\n Document.prototype.replace = function (range, text) {\n if (!(range instanceof Range))\n range = Range.fromPoints(range.start, range.end);\n if (text.length === 0 && range.isEmpty())\n return range.start;\n if (text == this.getTextRange(range))\n return range.end;\n this.remove(range);\n var end;\n if (text) {\n end = this.insert(range.start, text);\n }\n else {\n end = range.start;\n }\n return end;\n };\n Document.prototype.applyDeltas = function (deltas) {\n for (var i = 0; i < deltas.length; i++) {\n this.applyDelta(deltas[i]);\n }\n };\n Document.prototype.revertDeltas = function (deltas) {\n for (var i = deltas.length - 1; i >= 0; i--) {\n this.revertDelta(deltas[i]);\n }\n };\n Document.prototype.applyDelta = function (delta, doNotValidate) {\n var isInsert = delta.action == \"insert\";\n if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n : !Range.comparePoints(delta.start, delta.end)) {\n return;\n }\n if (isInsert && delta.lines.length > 20000) {\n this.$splitAndapplyLargeDelta(delta, 20000);\n }\n else {\n applyDelta(this.$lines, delta, doNotValidate);\n this._signal(\"change\", delta);\n }\n };\n Document.prototype.$safeApplyDelta = function (delta) {\n var docLength = this.$lines.length;\n if (delta.action == \"remove\" && delta.start.row < docLength && delta.end.row < docLength\n || delta.action == \"insert\" && delta.start.row <= docLength) {\n this.applyDelta(delta);\n }\n };\n Document.prototype.$splitAndapplyLargeDelta = function (delta, MAX) {\n var lines = delta.lines;\n var l = lines.length - MAX + 1;\n var row = delta.start.row;\n var column = delta.start.column;\n for (var from = 0, to = 0; from < l; from = to) {\n to += MAX - 1;\n var chunk = lines.slice(from, to);\n chunk.push(\"\");\n this.applyDelta({\n start: this.pos(row + from, column),\n end: this.pos(row + to, column = 0),\n action: delta.action,\n lines: chunk\n }, true);\n }\n delta.lines = lines.slice(from);\n delta.start.row = row + from;\n delta.start.column = column;\n this.applyDelta(delta, true);\n };\n Document.prototype.revertDelta = function (delta) {\n this.$safeApplyDelta({\n start: this.clonePos(delta.start),\n end: this.clonePos(delta.end),\n action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n lines: delta.lines.slice()\n });\n };\n Document.prototype.indexToPosition = function (index, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n for (var i = startRow || 0, l = lines.length; i < l; i++) {\n index -= lines[i].length + newlineLength;\n if (index < 0)\n return { row: i, column: index + lines[i].length + newlineLength };\n }\n return { row: l - 1, column: index + lines[l - 1].length + newlineLength };\n };\n Document.prototype.positionToIndex = function (pos, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n var index = 0;\n var row = Math.min(pos.row, lines.length);\n for (var i = startRow || 0; i < row; ++i)\n index += lines[i].length + newlineLength;\n return index + pos.column;\n };\n Document.prototype.$split = function (text) {\n return text.split(/\\r\\n|\\r|\\n/);\n };\n return Document;\n}());\nDocument.prototype.$autoNewLine = \"\";\nDocument.prototype.$newLineMode = \"auto\";\noop.implement(Document.prototype, EventEmitter);\nexports.Document = Document;\n\n});\n\nace.define(\"ace/background_tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar BackgroundTokenizer = /** @class */ (function () {\n function BackgroundTokenizer(tokenizer, editor) {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.tokenizer = tokenizer;\n var self = this;\n this.$worker = function () {\n if (!self.running) {\n return;\n }\n var workerStart = new Date();\n var currentLine = self.currentLine;\n var endLine = -1;\n var doc = self.doc;\n var startLine = currentLine;\n while (self.lines[currentLine])\n currentLine++;\n var len = doc.getLength();\n var processedLines = 0;\n self.running = false;\n while (currentLine < len) {\n self.$tokenizeRow(currentLine);\n endLine = currentLine;\n do {\n currentLine++;\n } while (self.lines[currentLine]);\n processedLines++;\n if ((processedLines % 5 === 0) && (new Date() - workerStart) > 20) {\n self.running = setTimeout(self.$worker, 20);\n break;\n }\n }\n self.currentLine = currentLine;\n if (endLine == -1)\n endLine = currentLine;\n if (startLine <= endLine)\n self.fireUpdateEvent(startLine, endLine);\n };\n }\n BackgroundTokenizer.prototype.setTokenizer = function (tokenizer) {\n this.tokenizer = tokenizer;\n this.lines = [];\n this.states = [];\n this.start(0);\n };\n BackgroundTokenizer.prototype.setDocument = function (doc) {\n this.doc = doc;\n this.lines = [];\n this.states = [];\n this.stop();\n };\n BackgroundTokenizer.prototype.fireUpdateEvent = function (firstRow, lastRow) {\n var data = {\n first: firstRow,\n last: lastRow\n };\n this._signal(\"update\", { data: data });\n };\n BackgroundTokenizer.prototype.start = function (startRow) {\n this.currentLine = Math.min(startRow || 0, this.currentLine, this.doc.getLength());\n this.lines.splice(this.currentLine, this.lines.length);\n this.states.splice(this.currentLine, this.states.length);\n this.stop();\n this.running = setTimeout(this.$worker, 700);\n };\n BackgroundTokenizer.prototype.scheduleStart = function () {\n if (!this.running)\n this.running = setTimeout(this.$worker, 700);\n };\n BackgroundTokenizer.prototype.$updateOnChange = function (delta) {\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n if (len === 0) {\n this.lines[startRow] = null;\n }\n else if (delta.action == \"remove\") {\n this.lines.splice(startRow, len + 1, null);\n this.states.splice(startRow, len + 1, null);\n }\n else {\n var args = Array(len + 1);\n args.unshift(startRow, 1);\n this.lines.splice.apply(this.lines, args);\n this.states.splice.apply(this.states, args);\n }\n this.currentLine = Math.min(startRow, this.currentLine, this.doc.getLength());\n this.stop();\n };\n BackgroundTokenizer.prototype.stop = function () {\n if (this.running)\n clearTimeout(this.running);\n this.running = false;\n };\n BackgroundTokenizer.prototype.getTokens = function (row) {\n return this.lines[row] || this.$tokenizeRow(row);\n };\n BackgroundTokenizer.prototype.getState = function (row) {\n if (this.currentLine == row)\n this.$tokenizeRow(row);\n return this.states[row] || \"start\";\n };\n BackgroundTokenizer.prototype.$tokenizeRow = function (row) {\n var line = this.doc.getLine(row);\n var state = this.states[row - 1];\n var data = this.tokenizer.getLineTokens(line, state, row);\n if (this.states[row] + \"\" !== data.state + \"\") {\n this.states[row] = data.state;\n this.lines[row + 1] = null;\n if (this.currentLine > row + 1)\n this.currentLine = row + 1;\n }\n else if (this.currentLine == row) {\n this.currentLine = row + 1;\n }\n return this.lines[row] = data.tokens;\n };\n BackgroundTokenizer.prototype.cleanup = function () {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.removeAllListeners();\n };\n return BackgroundTokenizer;\n}());\noop.implement(BackgroundTokenizer.prototype, EventEmitter);\nexports.BackgroundTokenizer = BackgroundTokenizer;\n\n});\n\nace.define(\"ace/search_highlight\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"./lib/lang\");\nvar Range = require(\"./range\").Range;\nvar SearchHighlight = /** @class */ (function () {\n function SearchHighlight(regExp, clazz, type) {\n if (type === void 0) { type = \"text\"; }\n this.setRegexp(regExp);\n this.clazz = clazz;\n this.type = type;\n }\n SearchHighlight.prototype.setRegexp = function (regExp) {\n if (this.regExp + \"\" == regExp + \"\")\n return;\n this.regExp = regExp;\n this.cache = [];\n };\n SearchHighlight.prototype.update = function (html, markerLayer, session, config) {\n if (!this.regExp)\n return;\n var start = config.firstRow, end = config.lastRow;\n var renderedMarkerRanges = {};\n for (var i = start; i <= end; i++) {\n var ranges = this.cache[i];\n if (ranges == null) {\n ranges = lang.getMatchOffsets(session.getLine(i), this.regExp);\n if (ranges.length > this.MAX_RANGES)\n ranges = ranges.slice(0, this.MAX_RANGES);\n ranges = ranges.map(function (match) {\n return new Range(i, match.offset, i, match.offset + match.length);\n });\n this.cache[i] = ranges.length ? ranges : \"\";\n }\n for (var j = ranges.length; j--;) {\n var rangeToAddMarkerTo = ranges[j].toScreenRange(session);\n var rangeAsString = rangeToAddMarkerTo.toString();\n if (renderedMarkerRanges[rangeAsString])\n continue;\n renderedMarkerRanges[rangeAsString] = true;\n markerLayer.drawSingleLineMarker(html, rangeToAddMarkerTo, this.clazz, config);\n }\n }\n };\n return SearchHighlight;\n}());\nSearchHighlight.prototype.MAX_RANGES = 500;\nexports.SearchHighlight = SearchHighlight;\n\n});\n\nace.define(\"ace/undomanager\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar UndoManager = /** @class */ (function () {\n function UndoManager() {\n this.$maxRev = 0;\n this.$fromUndo = false;\n this.$undoDepth = Infinity;\n this.reset();\n }\n UndoManager.prototype.addSession = function (session) {\n this.$session = session;\n };\n UndoManager.prototype.add = function (delta, allowMerge, session) {\n if (this.$fromUndo)\n return;\n if (delta == this.$lastDelta)\n return;\n if (!this.$keepRedoStack)\n this.$redoStack.length = 0;\n if (allowMerge === false || !this.lastDeltas) {\n this.lastDeltas = [];\n var undoStackLength = this.$undoStack.length;\n if (undoStackLength > this.$undoDepth - 1) {\n this.$undoStack.splice(0, undoStackLength - this.$undoDepth + 1);\n }\n this.$undoStack.push(this.lastDeltas);\n delta.id = this.$rev = ++this.$maxRev;\n }\n if (delta.action == \"remove\" || delta.action == \"insert\")\n this.$lastDelta = delta;\n this.lastDeltas.push(delta);\n };\n UndoManager.prototype.addSelection = function (selection, rev) {\n this.selections.push({\n value: selection,\n rev: rev || this.$rev\n });\n };\n UndoManager.prototype.startNewGroup = function () {\n this.lastDeltas = null;\n return this.$rev;\n };\n UndoManager.prototype.markIgnored = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n var stack = this.$undoStack;\n for (var i = stack.length; i--;) {\n var delta = stack[i][0];\n if (delta.id <= from)\n break;\n if (delta.id < to)\n delta.ignore = true;\n }\n this.lastDeltas = null;\n };\n UndoManager.prototype.getSelection = function (rev, after) {\n var stack = this.selections;\n for (var i = stack.length; i--;) {\n var selection = stack[i];\n if (selection.rev < rev) {\n if (after)\n selection = stack[i + 1];\n return selection;\n }\n }\n };\n UndoManager.prototype.getRevision = function () {\n return this.$rev;\n };\n UndoManager.prototype.getDeltas = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n var stack = this.$undoStack;\n var end = null, start = 0;\n for (var i = stack.length; i--;) {\n var delta = stack[i][0];\n if (delta.id < to && !end)\n end = i + 1;\n if (delta.id <= from) {\n start = i + 1;\n break;\n }\n }\n return stack.slice(start, end);\n };\n UndoManager.prototype.getChangedRanges = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n };\n UndoManager.prototype.getChangedLines = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n };\n UndoManager.prototype.undo = function (session, dontSelect) {\n this.lastDeltas = null;\n var stack = this.$undoStack;\n if (!rearrangeUndoStack(stack, stack.length))\n return;\n if (!session)\n session = this.$session;\n if (this.$redoStackBaseRev !== this.$rev && this.$redoStack.length)\n this.$redoStack = [];\n this.$fromUndo = true;\n var deltaSet = stack.pop();\n var undoSelectionRange = null;\n if (deltaSet) {\n undoSelectionRange = session.undoChanges(deltaSet, dontSelect);\n this.$redoStack.push(deltaSet);\n this.$syncRev();\n }\n this.$fromUndo = false;\n return undoSelectionRange;\n };\n UndoManager.prototype.redo = function (session, dontSelect) {\n this.lastDeltas = null;\n if (!session)\n session = this.$session;\n this.$fromUndo = true;\n if (this.$redoStackBaseRev != this.$rev) {\n var diff = this.getDeltas(this.$redoStackBaseRev, this.$rev + 1);\n rebaseRedoStack(this.$redoStack, diff);\n this.$redoStackBaseRev = this.$rev;\n this.$redoStack.forEach(function (x) {\n x[0].id = ++this.$maxRev;\n }, this);\n }\n var deltaSet = this.$redoStack.pop();\n var redoSelectionRange = null;\n if (deltaSet) {\n redoSelectionRange = session.redoChanges(deltaSet, dontSelect);\n this.$undoStack.push(deltaSet);\n this.$syncRev();\n }\n this.$fromUndo = false;\n return redoSelectionRange;\n };\n UndoManager.prototype.$syncRev = function () {\n var stack = this.$undoStack;\n var nextDelta = stack[stack.length - 1];\n var id = nextDelta && nextDelta[0].id || 0;\n this.$redoStackBaseRev = id;\n this.$rev = id;\n };\n UndoManager.prototype.reset = function () {\n this.lastDeltas = null;\n this.$lastDelta = null;\n this.$undoStack = [];\n this.$redoStack = [];\n this.$rev = 0;\n this.mark = 0;\n this.$redoStackBaseRev = this.$rev;\n this.selections = [];\n };\n UndoManager.prototype.canUndo = function () {\n return this.$undoStack.length > 0;\n };\n UndoManager.prototype.canRedo = function () {\n return this.$redoStack.length > 0;\n };\n UndoManager.prototype.bookmark = function (rev) {\n if (rev == undefined)\n rev = this.$rev;\n this.mark = rev;\n };\n UndoManager.prototype.isAtBookmark = function () {\n return this.$rev === this.mark;\n };\n UndoManager.prototype.toJSON = function () {\n return {\n $redoStack: this.$redoStack,\n $undoStack: this.$undoStack\n };\n };\n UndoManager.prototype.fromJSON = function (json) {\n this.reset();\n this.$undoStack = json.$undoStack;\n this.$redoStack = json.$redoStack;\n };\n UndoManager.prototype.$prettyPrint = function (delta) {\n if (delta)\n return stringifyDelta(delta);\n return stringifyDelta(this.$undoStack) + \"\\n---\\n\" + stringifyDelta(this.$redoStack);\n };\n return UndoManager;\n}());\nUndoManager.prototype.hasUndo = UndoManager.prototype.canUndo;\nUndoManager.prototype.hasRedo = UndoManager.prototype.canRedo;\nUndoManager.prototype.isClean = UndoManager.prototype.isAtBookmark;\nUndoManager.prototype.markClean = UndoManager.prototype.bookmark;\nfunction rearrangeUndoStack(stack, pos) {\n for (var i = pos; i--;) {\n var deltaSet = stack[i];\n if (deltaSet && !deltaSet[0].ignore) {\n while (i < pos - 1) {\n var swapped = swapGroups(stack[i], stack[i + 1]);\n stack[i] = swapped[0];\n stack[i + 1] = swapped[1];\n i++;\n }\n return true;\n }\n }\n}\nvar Range = require(\"./range\").Range;\nvar cmp = Range.comparePoints;\nvar comparePoints = Range.comparePoints;\nfunction $updateMarkers(delta) {\n var isInsert = delta.action == \"insert\";\n var start = delta.start;\n var end = delta.end;\n var rowShift = (end.row - start.row) * (isInsert ? 1 : -1);\n var colShift = (end.column - start.column) * (isInsert ? 1 : -1);\n if (isInsert)\n end = start;\n for (var i in this.marks) {\n var point = this.marks[i];\n var cmp = comparePoints(point, start);\n if (cmp < 0) {\n continue; // delta starts after the range\n }\n if (cmp === 0) {\n if (isInsert) {\n if (point.bias == 1) {\n cmp = 1;\n }\n else {\n point.bias == -1;\n continue;\n }\n }\n }\n var cmp2 = isInsert ? cmp : comparePoints(point, end);\n if (cmp2 > 0) {\n point.row += rowShift;\n point.column += point.row == end.row ? colShift : 0;\n continue;\n }\n if (!isInsert && cmp2 <= 0) {\n point.row = start.row;\n point.column = start.column;\n if (cmp2 === 0)\n point.bias = 1;\n }\n }\n}\nfunction clonePos(pos) {\n return { row: pos.row, column: pos.column };\n}\nfunction cloneDelta(d) {\n return {\n start: clonePos(d.start),\n end: clonePos(d.end),\n action: d.action,\n lines: d.lines.slice()\n };\n}\nfunction stringifyDelta(d) {\n d = d || this;\n if (Array.isArray(d)) {\n return d.map(stringifyDelta).join(\"\\n\");\n }\n var type = \"\";\n if (d.action) {\n type = d.action == \"insert\" ? \"+\" : \"-\";\n type += \"[\" + d.lines + \"]\";\n }\n else if (d.value) {\n if (Array.isArray(d.value)) {\n type = d.value.map(stringifyRange).join(\"\\n\");\n }\n else {\n type = stringifyRange(d.value);\n }\n }\n if (d.start) {\n type += stringifyRange(d);\n }\n if (d.id || d.rev) {\n type += \"\\t(\" + (d.id || d.rev) + \")\";\n }\n return type;\n}\nfunction stringifyRange(r) {\n return r.start.row + \":\" + r.start.column\n + \"=>\" + r.end.row + \":\" + r.end.column;\n}\nfunction swap(d1, d2) {\n var i1 = d1.action == \"insert\";\n var i2 = d2.action == \"insert\";\n if (i1 && i2) {\n if (cmp(d2.start, d1.end) >= 0) {\n shift(d2, d1, -1);\n }\n else if (cmp(d2.start, d1.start) <= 0) {\n shift(d1, d2, +1);\n }\n else {\n return null;\n }\n }\n else if (i1 && !i2) {\n if (cmp(d2.start, d1.end) >= 0) {\n shift(d2, d1, -1);\n }\n else if (cmp(d2.end, d1.start) <= 0) {\n shift(d1, d2, -1);\n }\n else {\n return null;\n }\n }\n else if (!i1 && i2) {\n if (cmp(d2.start, d1.start) >= 0) {\n shift(d2, d1, +1);\n }\n else if (cmp(d2.start, d1.start) <= 0) {\n shift(d1, d2, +1);\n }\n else {\n return null;\n }\n }\n else if (!i1 && !i2) {\n if (cmp(d2.start, d1.start) >= 0) {\n shift(d2, d1, +1);\n }\n else if (cmp(d2.end, d1.start) <= 0) {\n shift(d1, d2, -1);\n }\n else {\n return null;\n }\n }\n return [d2, d1];\n}\nfunction swapGroups(ds1, ds2) {\n for (var i = ds1.length; i--;) {\n for (var j = 0; j < ds2.length; j++) {\n if (!swap(ds1[i], ds2[j])) {\n while (i < ds1.length) {\n while (j--) {\n swap(ds2[j], ds1[i]);\n }\n j = ds2.length;\n i++;\n }\n return [ds1, ds2];\n }\n }\n }\n ds1.selectionBefore = ds2.selectionBefore =\n ds1.selectionAfter = ds2.selectionAfter = null;\n return [ds2, ds1];\n}\nfunction xform(d1, c1) {\n var i1 = d1.action == \"insert\";\n var i2 = c1.action == \"insert\";\n if (i1 && i2) {\n if (cmp(d1.start, c1.start) < 0) {\n shift(c1, d1, 1);\n }\n else {\n shift(d1, c1, 1);\n }\n }\n else if (i1 && !i2) {\n if (cmp(d1.start, c1.end) >= 0) {\n shift(d1, c1, -1);\n }\n else if (cmp(d1.start, c1.start) <= 0) {\n shift(c1, d1, +1);\n }\n else {\n shift(d1, Range.fromPoints(c1.start, d1.start), -1);\n shift(c1, d1, +1);\n }\n }\n else if (!i1 && i2) {\n if (cmp(c1.start, d1.end) >= 0) {\n shift(c1, d1, -1);\n }\n else if (cmp(c1.start, d1.start) <= 0) {\n shift(d1, c1, +1);\n }\n else {\n shift(c1, Range.fromPoints(d1.start, c1.start), -1);\n shift(d1, c1, +1);\n }\n }\n else if (!i1 && !i2) {\n if (cmp(c1.start, d1.end) >= 0) {\n shift(c1, d1, -1);\n }\n else if (cmp(c1.end, d1.start) <= 0) {\n shift(d1, c1, -1);\n }\n else {\n var before, after;\n if (cmp(d1.start, c1.start) < 0) {\n before = d1;\n d1 = splitDelta(d1, c1.start);\n }\n if (cmp(d1.end, c1.end) > 0) {\n after = splitDelta(d1, c1.end);\n }\n shiftPos(c1.end, d1.start, d1.end, -1);\n if (after && !before) {\n d1.lines = after.lines;\n d1.start = after.start;\n d1.end = after.end;\n after = d1;\n }\n return [c1, before, after].filter(Boolean);\n }\n }\n return [c1, d1];\n}\nfunction shift(d1, d2, dir) {\n shiftPos(d1.start, d2.start, d2.end, dir);\n shiftPos(d1.end, d2.start, d2.end, dir);\n}\nfunction shiftPos(pos, start, end, dir) {\n if (pos.row == (dir == 1 ? start : end).row) {\n pos.column += dir * (end.column - start.column);\n }\n pos.row += dir * (end.row - start.row);\n}\nfunction splitDelta(c, pos) {\n var lines = c.lines;\n var end = c.end;\n c.end = clonePos(pos);\n var rowsBefore = c.end.row - c.start.row;\n var otherLines = lines.splice(rowsBefore, lines.length);\n var col = rowsBefore ? pos.column : pos.column - c.start.column;\n lines.push(otherLines[0].substring(0, col));\n otherLines[0] = otherLines[0].substr(col);\n var rest = {\n start: clonePos(pos),\n end: end,\n lines: otherLines,\n action: c.action\n };\n return rest;\n}\nfunction moveDeltasByOne(redoStack, d) {\n d = cloneDelta(d);\n for (var j = redoStack.length; j--;) {\n var deltaSet = redoStack[j];\n for (var i = 0; i < deltaSet.length; i++) {\n var x = deltaSet[i];\n var xformed = xform(x, d);\n d = xformed[0];\n if (xformed.length != 2) {\n if (xformed[2]) {\n deltaSet.splice(i + 1, 1, xformed[1], xformed[2]);\n i++;\n }\n else if (!xformed[1]) {\n deltaSet.splice(i, 1);\n i--;\n }\n }\n }\n if (!deltaSet.length) {\n redoStack.splice(j, 1);\n }\n }\n return redoStack;\n}\nfunction rebaseRedoStack(redoStack, deltaSets) {\n for (var i = 0; i < deltaSets.length; i++) {\n var deltas = deltaSets[i];\n for (var j = 0; j < deltas.length; j++) {\n moveDeltasByOne(redoStack, deltas[j]);\n }\n }\n}\nexports.UndoManager = UndoManager;\n\n});\n\nace.define(\"ace/edit_session/fold_line\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar FoldLine = /** @class */ (function () {\n function FoldLine(foldData, folds) {\n this.foldData = foldData;\n if (Array.isArray(folds)) {\n this.folds = folds;\n }\n else {\n folds = this.folds = [folds];\n }\n var last = folds[folds.length - 1];\n this.range = new Range(folds[0].start.row, folds[0].start.column, last.end.row, last.end.column);\n this.start = this.range.start;\n this.end = this.range.end;\n this.folds.forEach(function (fold) {\n fold.setFoldLine(this);\n }, this);\n }\n FoldLine.prototype.shiftRow = function (shift) {\n this.start.row += shift;\n this.end.row += shift;\n this.folds.forEach(function (fold) {\n fold.start.row += shift;\n fold.end.row += shift;\n });\n };\n FoldLine.prototype.addFold = function (fold) {\n if (fold.sameRow) {\n if (fold.start.row < this.startRow || fold.endRow > this.endRow) {\n throw new Error(\"Can't add a fold to this FoldLine as it has no connection\");\n }\n this.folds.push(fold);\n this.folds.sort(function (a, b) {\n return -a.range.compareEnd(b.start.row, b.start.column);\n });\n if (this.range.compareEnd(fold.start.row, fold.start.column) > 0) {\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n }\n else if (this.range.compareStart(fold.end.row, fold.end.column) < 0) {\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n }\n else if (fold.start.row == this.end.row) {\n this.folds.push(fold);\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n }\n else if (fold.end.row == this.start.row) {\n this.folds.unshift(fold);\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n else {\n throw new Error(\"Trying to add fold to FoldRow that doesn't have a matching row\");\n }\n fold.foldLine = this;\n };\n FoldLine.prototype.containsRow = function (row) {\n return row >= this.start.row && row <= this.end.row;\n };\n FoldLine.prototype.walk = function (callback, endRow, endColumn) {\n var lastEnd = 0, folds = this.folds, fold, cmp, stop, isNewRow = true;\n if (endRow == null) {\n endRow = this.end.row;\n endColumn = this.end.column;\n }\n for (var i = 0; i < folds.length; i++) {\n fold = folds[i];\n cmp = fold.range.compareStart(endRow, endColumn);\n if (cmp == -1) {\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n return;\n }\n stop = callback(null, fold.start.row, fold.start.column, lastEnd, isNewRow);\n stop = !stop && callback(fold.placeholder, fold.start.row, fold.start.column, lastEnd);\n if (stop || cmp === 0) {\n return;\n }\n isNewRow = !fold.sameRow;\n lastEnd = fold.end.column;\n }\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n };\n FoldLine.prototype.getNextFoldTo = function (row, column) {\n var fold, cmp;\n for (var i = 0; i < this.folds.length; i++) {\n fold = this.folds[i];\n cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n return {\n fold: fold,\n kind: \"after\"\n };\n }\n else if (cmp === 0) {\n return {\n fold: fold,\n kind: \"inside\"\n };\n }\n }\n return null;\n };\n FoldLine.prototype.addRemoveChars = function (row, column, len) {\n var ret = this.getNextFoldTo(row, column), fold, folds;\n if (ret) {\n fold = ret.fold;\n if (ret.kind == \"inside\"\n && fold.start.column != column\n && fold.start.row != row) {\n window.console && window.console.log(row, column, fold);\n }\n else if (fold.start.row == row) {\n folds = this.folds;\n var i = folds.indexOf(fold);\n if (i === 0) {\n this.start.column += len;\n }\n for (i; i < folds.length; i++) {\n fold = folds[i];\n fold.start.column += len;\n if (!fold.sameRow) {\n return;\n }\n fold.end.column += len;\n }\n this.end.column += len;\n }\n }\n };\n FoldLine.prototype.split = function (row, column) {\n var pos = this.getNextFoldTo(row, column);\n if (!pos || pos.kind == \"inside\")\n return null;\n var fold = pos.fold;\n var folds = this.folds;\n var foldData = this.foldData;\n var i = folds.indexOf(fold);\n var foldBefore = folds[i - 1];\n this.end.row = foldBefore.end.row;\n this.end.column = foldBefore.end.column;\n folds = folds.splice(i, folds.length - i);\n var newFoldLine = new FoldLine(foldData, folds);\n foldData.splice(foldData.indexOf(this) + 1, 0, newFoldLine);\n return newFoldLine;\n };\n FoldLine.prototype.merge = function (foldLineNext) {\n var folds = foldLineNext.folds;\n for (var i = 0; i < folds.length; i++) {\n this.addFold(folds[i]);\n }\n var foldData = this.foldData;\n foldData.splice(foldData.indexOf(foldLineNext), 1);\n };\n FoldLine.prototype.toString = function () {\n var ret = [this.range.toString() + \": [\"];\n this.folds.forEach(function (fold) {\n ret.push(\" \" + fold.toString());\n });\n ret.push(\"]\");\n return ret.join(\"\\n\");\n };\n FoldLine.prototype.idxToPosition = function (idx) {\n var lastFoldEndColumn = 0;\n for (var i = 0; i < this.folds.length; i++) {\n var fold = this.folds[i];\n idx -= fold.start.column - lastFoldEndColumn;\n if (idx < 0) {\n return {\n row: fold.start.row,\n column: fold.start.column + idx\n };\n }\n idx -= fold.placeholder.length;\n if (idx < 0) {\n return fold.start;\n }\n lastFoldEndColumn = fold.end.column;\n }\n return {\n row: this.end.row,\n column: this.end.column + idx\n };\n };\n return FoldLine;\n}());\nexports.FoldLine = FoldLine;\n\n});\n\nace.define(\"ace/range_list\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar comparePoints = Range.comparePoints;\nvar RangeList = /** @class */ (function () {\n function RangeList() {\n this.ranges = [];\n this.$bias = 1;\n }\n RangeList.prototype.pointIndex = function (pos, excludeEdges, startIndex) {\n var list = this.ranges;\n for (var i = startIndex || 0; i < list.length; i++) {\n var range = list[i];\n var cmpEnd = comparePoints(pos, range.end);\n if (cmpEnd > 0)\n continue;\n var cmpStart = comparePoints(pos, range.start);\n if (cmpEnd === 0)\n return excludeEdges && cmpStart !== 0 ? -i - 2 : i;\n if (cmpStart > 0 || (cmpStart === 0 && !excludeEdges))\n return i;\n return -i - 1;\n }\n return -i - 1;\n };\n RangeList.prototype.add = function (range) {\n var excludeEdges = !range.isEmpty();\n var startIndex = this.pointIndex(range.start, excludeEdges);\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex(range.end, excludeEdges, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n else\n endIndex++;\n return this.ranges.splice(startIndex, endIndex - startIndex, range);\n };\n RangeList.prototype.addList = function (list) {\n var removed = [];\n for (var i = list.length; i--;) {\n removed.push.apply(removed, this.add(list[i]));\n }\n return removed;\n };\n RangeList.prototype.substractPoint = function (pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges.splice(i, 1);\n };\n RangeList.prototype.merge = function () {\n var removed = [];\n var list = this.ranges;\n list = list.sort(function (a, b) {\n return comparePoints(a.start, b.start);\n });\n var next = list[0], range;\n for (var i = 1; i < list.length; i++) {\n range = next;\n next = list[i];\n var cmp = comparePoints(range.end, next.start);\n if (cmp < 0)\n continue;\n if (cmp == 0 && !range.isEmpty() && !next.isEmpty())\n continue;\n if (comparePoints(range.end, next.end) < 0) {\n range.end.row = next.end.row;\n range.end.column = next.end.column;\n }\n list.splice(i, 1);\n removed.push(next);\n next = range;\n i--;\n }\n this.ranges = list;\n return removed;\n };\n RangeList.prototype.contains = function (row, column) {\n return this.pointIndex({ row: row, column: column }) >= 0;\n };\n RangeList.prototype.containsPoint = function (pos) {\n return this.pointIndex(pos) >= 0;\n };\n RangeList.prototype.rangeAtPoint = function (pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges[i];\n };\n RangeList.prototype.clipRows = function (startRow, endRow) {\n var list = this.ranges;\n if (list[0].start.row > endRow || list[list.length - 1].start.row < startRow)\n return [];\n var startIndex = this.pointIndex({ row: startRow, column: 0 });\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex({ row: endRow, column: 0 }, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n var clipped = [];\n for (var i = startIndex; i < endIndex; i++) {\n clipped.push(list[i]);\n }\n return clipped;\n };\n RangeList.prototype.removeAll = function () {\n return this.ranges.splice(0, this.ranges.length);\n };\n RangeList.prototype.attach = function (session) {\n if (this.session)\n this.detach();\n this.session = session;\n this.onChange = this.$onChange.bind(this);\n this.session.on('change', this.onChange);\n };\n RangeList.prototype.detach = function () {\n if (!this.session)\n return;\n this.session.removeListener('change', this.onChange);\n this.session = null;\n };\n RangeList.prototype.$onChange = function (delta) {\n var start = delta.start;\n var end = delta.end;\n var startRow = start.row;\n var endRow = end.row;\n var ranges = this.ranges;\n for (var i = 0, n = ranges.length; i < n; i++) {\n var r = ranges[i];\n if (r.end.row >= startRow)\n break;\n }\n if (delta.action == \"insert\") {\n var lineDif = endRow - startRow;\n var colDiff = -start.column + end.column;\n for (; i < n; i++) {\n var r = ranges[i];\n if (r.start.row > startRow)\n break;\n if (r.start.row == startRow && r.start.column >= start.column) {\n if (r.start.column == start.column && this.$bias <= 0) {\n }\n else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n if (r.end.row == startRow && r.end.column >= start.column) {\n if (r.end.column == start.column && this.$bias < 0) {\n continue;\n }\n if (r.end.column == start.column && colDiff > 0 && i < n - 1) {\n if (r.end.column > r.start.column && r.end.column == ranges[i + 1].start.column)\n r.end.column -= colDiff;\n }\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n }\n else {\n var lineDif = startRow - endRow;\n var colDiff = start.column - end.column;\n for (; i < n; i++) {\n var r = ranges[i];\n if (r.start.row > endRow)\n break;\n if (r.end.row < endRow\n && (startRow < r.end.row\n || startRow == r.end.row && start.column < r.end.column)) {\n r.end.row = startRow;\n r.end.column = start.column;\n }\n else if (r.end.row == endRow) {\n if (r.end.column <= end.column) {\n if (lineDif || r.end.column > start.column) {\n r.end.column = start.column;\n r.end.row = start.row;\n }\n }\n else {\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n else if (r.end.row > endRow) {\n r.end.row += lineDif;\n }\n if (r.start.row < endRow\n && (startRow < r.start.row\n || startRow == r.start.row && start.column < r.start.column)) {\n r.start.row = startRow;\n r.start.column = start.column;\n }\n else if (r.start.row == endRow) {\n if (r.start.column <= end.column) {\n if (lineDif || r.start.column > start.column) {\n r.start.column = start.column;\n r.start.row = start.row;\n }\n }\n else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n else if (r.start.row > endRow) {\n r.start.row += lineDif;\n }\n }\n }\n if (lineDif != 0 && i < n) {\n for (; i < n; i++) {\n var r = ranges[i];\n r.start.row += lineDif;\n r.end.row += lineDif;\n }\n }\n };\n return RangeList;\n}());\nRangeList.prototype.comparePoints = comparePoints;\nexports.RangeList = RangeList;\n\n});\n\nace.define(\"ace/edit_session/fold\",[\"require\",\"exports\",\"module\",\"ace/range_list\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar RangeList = require(\"../range_list\").RangeList;\nvar Fold = /** @class */ (function (_super) {\n __extends(Fold, _super);\n function Fold(range, placeholder) {\n var _this = _super.call(this) || this;\n _this.foldLine = null;\n _this.placeholder = placeholder;\n _this.range = range;\n _this.start = range.start;\n _this.end = range.end;\n _this.sameRow = range.start.row == range.end.row;\n _this.subFolds = _this.ranges = [];\n return _this;\n }\n Fold.prototype.toString = function () {\n return '\"' + this.placeholder + '\" ' + this.range.toString();\n };\n Fold.prototype.setFoldLine = function (foldLine) {\n this.foldLine = foldLine;\n this.subFolds.forEach(function (fold) {\n fold.setFoldLine(foldLine);\n });\n };\n Fold.prototype.clone = function () {\n var range = this.range.clone();\n var fold = new Fold(range, this.placeholder);\n this.subFolds.forEach(function (subFold) {\n fold.subFolds.push(subFold.clone());\n });\n fold.collapseChildren = this.collapseChildren;\n return fold;\n };\n Fold.prototype.addSubFold = function (fold) {\n if (this.range.isEqual(fold))\n return;\n consumeRange(fold, this.start);\n var row = fold.start.row, column = fold.start.column;\n for (var i = 0, cmp = -1; i < this.subFolds.length; i++) {\n cmp = this.subFolds[i].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n var afterStart = this.subFolds[i];\n var firstConsumed = 0;\n if (cmp == 0) {\n if (afterStart.range.containsRange(fold))\n return afterStart.addSubFold(fold);\n else\n firstConsumed = 1;\n }\n var row = fold.range.end.row, column = fold.range.end.column;\n for (var j = i, cmp = -1; j < this.subFolds.length; j++) {\n cmp = this.subFolds[j].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n if (cmp == 0)\n j++;\n var consumedFolds = this.subFolds.splice(i, j - i, fold);\n var last = cmp == 0 ? consumedFolds.length - 1 : consumedFolds.length;\n for (var k = firstConsumed; k < last; k++) {\n fold.addSubFold(consumedFolds[k]);\n }\n fold.setFoldLine(this.foldLine);\n return fold;\n };\n Fold.prototype.restoreRange = function (range) {\n return restoreRange(range, this.start);\n };\n return Fold;\n}(RangeList));\nfunction consumePoint(point, anchor) {\n point.row -= anchor.row;\n if (point.row == 0)\n point.column -= anchor.column;\n}\nfunction consumeRange(range, anchor) {\n consumePoint(range.start, anchor);\n consumePoint(range.end, anchor);\n}\nfunction restorePoint(point, anchor) {\n if (point.row == 0)\n point.column += anchor.column;\n point.row += anchor.row;\n}\nfunction restoreRange(range, anchor) {\n restorePoint(range.start, anchor);\n restorePoint(range.end, anchor);\n}\nexports.Fold = Fold;\n\n});\n\nace.define(\"ace/edit_session/folding\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/edit_session/fold_line\",\"ace/edit_session/fold\",\"ace/token_iterator\",\"ace/mouse/mouse_event\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar FoldLine = require(\"./fold_line\").FoldLine;\nvar Fold = require(\"./fold\").Fold;\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar MouseEvent = require(\"../mouse/mouse_event\").MouseEvent;\nfunction Folding() {\n this.getFoldAt = function (row, column, side) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine)\n return null;\n var folds = foldLine.folds;\n for (var i = 0; i < folds.length; i++) {\n var range = folds[i].range;\n if (range.contains(row, column)) {\n if (side == 1 && range.isEnd(row, column) && !range.isEmpty()) {\n continue;\n }\n else if (side == -1 && range.isStart(row, column) && !range.isEmpty()) {\n continue;\n }\n return folds[i];\n }\n }\n };\n this.getFoldsInRange = function (range) {\n var start = range.start;\n var end = range.end;\n var foldLines = this.$foldData;\n var foundFolds = [];\n start.column += 1;\n end.column -= 1;\n for (var i = 0; i < foldLines.length; i++) {\n var cmp = foldLines[i].range.compareRange(range);\n if (cmp == 2) {\n continue;\n }\n else if (cmp == -2) {\n break;\n }\n var folds = foldLines[i].folds;\n for (var j = 0; j < folds.length; j++) {\n var fold = folds[j];\n cmp = fold.range.compareRange(range);\n if (cmp == -2) {\n break;\n }\n else if (cmp == 2) {\n continue;\n }\n else \n if (cmp == 42) {\n break;\n }\n foundFolds.push(fold);\n }\n }\n start.column -= 1;\n end.column += 1;\n return foundFolds;\n };\n this.getFoldsInRangeList = function (ranges) {\n if (Array.isArray(ranges)) {\n var folds = [];\n ranges.forEach(function (range) {\n folds = folds.concat(this.getFoldsInRange(range));\n }, this);\n }\n else {\n var folds = this.getFoldsInRange(ranges);\n }\n return folds;\n };\n this.getAllFolds = function () {\n var folds = [];\n var foldLines = this.$foldData;\n for (var i = 0; i < foldLines.length; i++)\n for (var j = 0; j < foldLines[i].folds.length; j++)\n folds.push(foldLines[i].folds[j]);\n return folds;\n };\n this.getFoldStringAt = function (row, column, trim, foldLine) {\n foldLine = foldLine || this.getFoldLine(row);\n if (!foldLine)\n return null;\n var lastFold = {\n end: { column: 0 }\n };\n var str, fold;\n for (var i = 0; i < foldLine.folds.length; i++) {\n fold = foldLine.folds[i];\n var cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n str = this\n .getLine(fold.start.row)\n .substring(lastFold.end.column, fold.start.column);\n break;\n }\n else if (cmp === 0) {\n return null;\n }\n lastFold = fold;\n }\n if (!str)\n str = this.getLine(fold.start.row).substring(lastFold.end.column);\n if (trim == -1)\n return str.substring(0, column - lastFold.end.column);\n else if (trim == 1)\n return str.substring(column - lastFold.end.column);\n else\n return str;\n };\n this.getFoldLine = function (docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.start.row <= docRow && foldLine.end.row >= docRow) {\n return foldLine;\n }\n else if (foldLine.end.row > docRow) {\n return null;\n }\n }\n return null;\n };\n this.getNextFoldLine = function (docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.end.row >= docRow) {\n return foldLine;\n }\n }\n return null;\n };\n this.getFoldedRowCount = function (first, last) {\n var foldData = this.$foldData, rowCount = last - first + 1;\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i], end = foldLine.end.row, start = foldLine.start.row;\n if (end >= last) {\n if (start < last) {\n if (start >= first)\n rowCount -= last - start;\n else\n rowCount = 0; // in one fold\n }\n break;\n }\n else if (end >= first) {\n if (start >= first) // fold inside range\n rowCount -= end - start;\n else\n rowCount -= end - first + 1;\n }\n }\n return rowCount;\n };\n this.$addFoldLine = function (foldLine) {\n this.$foldData.push(foldLine);\n this.$foldData.sort(function (a, b) {\n return a.start.row - b.start.row;\n });\n return foldLine;\n };\n this.addFold = function (placeholder, range) {\n var foldData = this.$foldData;\n var added = false;\n var fold;\n if (placeholder instanceof Fold)\n fold = placeholder;\n else {\n fold = new Fold(range, placeholder);\n fold.collapseChildren = range.collapseChildren;\n }\n this.$clipRangeToDocument(fold.range);\n var startRow = fold.start.row;\n var startColumn = fold.start.column;\n var endRow = fold.end.row;\n var endColumn = fold.end.column;\n var startFold = this.getFoldAt(startRow, startColumn, 1);\n var endFold = this.getFoldAt(endRow, endColumn, -1);\n if (startFold && endFold == startFold)\n return startFold.addSubFold(fold);\n if (startFold && !startFold.range.isStart(startRow, startColumn))\n this.removeFold(startFold);\n if (endFold && !endFold.range.isEnd(endRow, endColumn))\n this.removeFold(endFold);\n var folds = this.getFoldsInRange(fold.range);\n if (folds.length > 0) {\n this.removeFolds(folds);\n if (!fold.collapseChildren) {\n folds.forEach(function (subFold) {\n fold.addSubFold(subFold);\n });\n }\n }\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (endRow == foldLine.start.row) {\n foldLine.addFold(fold);\n added = true;\n break;\n }\n else if (startRow == foldLine.end.row) {\n foldLine.addFold(fold);\n added = true;\n if (!fold.sameRow) {\n var foldLineNext = foldData[i + 1];\n if (foldLineNext && foldLineNext.start.row == endRow) {\n foldLine.merge(foldLineNext);\n break;\n }\n }\n break;\n }\n else if (endRow <= foldLine.start.row) {\n break;\n }\n }\n if (!added)\n foldLine = this.$addFoldLine(new FoldLine(this.$foldData, fold));\n if (this.$useWrapMode)\n this.$updateWrapData(foldLine.start.row, foldLine.start.row);\n else\n this.$updateRowLengthCache(foldLine.start.row, foldLine.start.row);\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"add\" });\n return fold;\n };\n this.addFolds = function (folds) {\n folds.forEach(function (fold) {\n this.addFold(fold);\n }, this);\n };\n this.removeFold = function (fold) {\n var foldLine = fold.foldLine;\n var startRow = foldLine.start.row;\n var endRow = foldLine.end.row;\n var foldLines = this.$foldData;\n var folds = foldLine.folds;\n if (folds.length == 1) {\n foldLines.splice(foldLines.indexOf(foldLine), 1);\n }\n else \n if (foldLine.range.isEnd(fold.end.row, fold.end.column)) {\n folds.pop();\n foldLine.end.row = folds[folds.length - 1].end.row;\n foldLine.end.column = folds[folds.length - 1].end.column;\n }\n else \n if (foldLine.range.isStart(fold.start.row, fold.start.column)) {\n folds.shift();\n foldLine.start.row = folds[0].start.row;\n foldLine.start.column = folds[0].start.column;\n }\n else \n if (fold.sameRow) {\n folds.splice(folds.indexOf(fold), 1);\n }\n else \n {\n var newFoldLine = foldLine.split(fold.start.row, fold.start.column);\n folds = newFoldLine.folds;\n folds.shift();\n newFoldLine.start.row = folds[0].start.row;\n newFoldLine.start.column = folds[0].start.column;\n }\n if (!this.$updating) {\n if (this.$useWrapMode)\n this.$updateWrapData(startRow, endRow);\n else\n this.$updateRowLengthCache(startRow, endRow);\n }\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"remove\" });\n };\n this.removeFolds = function (folds) {\n var cloneFolds = [];\n for (var i = 0; i < folds.length; i++) {\n cloneFolds.push(folds[i]);\n }\n cloneFolds.forEach(function (fold) {\n this.removeFold(fold);\n }, this);\n this.$modified = true;\n };\n this.expandFold = function (fold) {\n this.removeFold(fold);\n fold.subFolds.forEach(function (subFold) {\n fold.restoreRange(subFold);\n this.addFold(subFold);\n }, this);\n if (fold.collapseChildren > 0) {\n this.foldAll(fold.start.row + 1, fold.end.row, fold.collapseChildren - 1);\n }\n fold.subFolds = [];\n };\n this.expandFolds = function (folds) {\n folds.forEach(function (fold) {\n this.expandFold(fold);\n }, this);\n };\n this.unfold = function (location, expandInner) {\n var range, folds;\n if (location == null) {\n range = new Range(0, 0, this.getLength(), 0);\n if (expandInner == null)\n expandInner = true;\n }\n else if (typeof location == \"number\") {\n range = new Range(location, 0, location, this.getLine(location).length);\n }\n else if (\"row\" in location) {\n range = Range.fromPoints(location, location);\n }\n else if (Array.isArray(location)) {\n folds = [];\n location.forEach(function (range) {\n folds = folds.concat(this.unfold(range));\n }, this);\n return folds;\n }\n else {\n range = location;\n }\n folds = this.getFoldsInRangeList(range);\n var outermostFolds = folds;\n while (folds.length == 1\n && Range.comparePoints(folds[0].start, range.start) < 0\n && Range.comparePoints(folds[0].end, range.end) > 0) {\n this.expandFolds(folds);\n folds = this.getFoldsInRangeList(range);\n }\n if (expandInner != false) {\n this.removeFolds(folds);\n }\n else {\n this.expandFolds(folds);\n }\n if (outermostFolds.length)\n return outermostFolds;\n };\n this.isRowFolded = function (docRow, startFoldRow) {\n return !!this.getFoldLine(docRow, startFoldRow);\n };\n this.getRowFoldEnd = function (docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.end.row : docRow;\n };\n this.getRowFoldStart = function (docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.start.row : docRow;\n };\n this.getFoldDisplayLine = function (foldLine, endRow, endColumn, startRow, startColumn) {\n if (startRow == null)\n startRow = foldLine.start.row;\n if (startColumn == null)\n startColumn = 0;\n if (endRow == null)\n endRow = foldLine.end.row;\n if (endColumn == null)\n endColumn = this.getLine(endRow).length;\n var doc = this.doc;\n var textLine = \"\";\n foldLine.walk(function (placeholder, row, column, lastColumn) {\n if (row < startRow)\n return;\n if (row == startRow) {\n if (column < startColumn)\n return;\n lastColumn = Math.max(startColumn, lastColumn);\n }\n if (placeholder != null) {\n textLine += placeholder;\n }\n else {\n textLine += doc.getLine(row).substring(lastColumn, column);\n }\n }, endRow, endColumn);\n return textLine;\n };\n this.getDisplayLine = function (row, endColumn, startRow, startColumn) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine) {\n var line;\n line = this.doc.getLine(row);\n return line.substring(startColumn || 0, endColumn || line.length);\n }\n else {\n return this.getFoldDisplayLine(foldLine, row, endColumn, startRow, startColumn);\n }\n };\n this.$cloneFoldData = function () {\n var fd = [];\n fd = this.$foldData.map(function (foldLine) {\n var folds = foldLine.folds.map(function (fold) {\n return fold.clone();\n });\n return new FoldLine(fd, folds);\n });\n return fd;\n };\n this.toggleFold = function (tryToUnfold) {\n var selection = this.selection;\n var range = selection.getRange();\n var fold;\n var bracketPos;\n if (range.isEmpty()) {\n var cursor = range.start;\n fold = this.getFoldAt(cursor.row, cursor.column);\n if (fold) {\n this.expandFold(fold);\n return;\n }\n else if (bracketPos = this.findMatchingBracket(cursor)) {\n if (range.comparePoint(bracketPos) == 1) {\n range.end = bracketPos;\n }\n else {\n range.start = bracketPos;\n range.start.column++;\n range.end.column--;\n }\n }\n else if (bracketPos = this.findMatchingBracket({ row: cursor.row, column: cursor.column + 1 })) {\n if (range.comparePoint(bracketPos) == 1)\n range.end = bracketPos;\n else\n range.start = bracketPos;\n range.start.column++;\n }\n else {\n range = this.getCommentFoldRange(cursor.row, cursor.column) || range;\n }\n }\n else {\n var folds = this.getFoldsInRange(range);\n if (tryToUnfold && folds.length) {\n this.expandFolds(folds);\n return;\n }\n else if (folds.length == 1) {\n fold = folds[0];\n }\n }\n if (!fold)\n fold = this.getFoldAt(range.start.row, range.start.column);\n if (fold && fold.range.toString() == range.toString()) {\n this.expandFold(fold);\n return;\n }\n var placeholder = \"...\";\n if (!range.isMultiLine()) {\n placeholder = this.getTextRange(range);\n if (placeholder.length < 4)\n return;\n placeholder = placeholder.trim().substring(0, 2) + \"..\";\n }\n this.addFold(placeholder, range);\n };\n this.getCommentFoldRange = function (row, column, dir) {\n var iterator = new TokenIterator(this, row, column);\n var token = iterator.getCurrentToken();\n var type = token && token.type;\n if (token && /^comment|string/.test(type)) {\n type = type.match(/comment|string/)[0];\n if (type == \"comment\")\n type += \"|doc-start|\\\\.doc\";\n var re = new RegExp(type);\n var range = new Range();\n if (dir != 1) {\n do {\n token = iterator.stepBackward();\n } while (token && re.test(token.type) && !/^comment.end/.test(token.type));\n token = iterator.stepForward();\n }\n range.start.row = iterator.getCurrentTokenRow();\n range.start.column = iterator.getCurrentTokenColumn() + (/^comment.start/.test(token.type) ? token.value.length : 2);\n iterator = new TokenIterator(this, row, column);\n if (dir != -1) {\n var lastRow = -1;\n do {\n token = iterator.stepForward();\n if (lastRow == -1) {\n var state = this.getState(iterator.$row);\n if (!re.test(state))\n lastRow = iterator.$row;\n }\n else if (iterator.$row > lastRow) {\n break;\n }\n } while (token && re.test(token.type) && !/^comment.start/.test(token.type));\n token = iterator.stepBackward();\n }\n else\n token = iterator.getCurrentToken();\n range.end.row = iterator.getCurrentTokenRow();\n range.end.column = iterator.getCurrentTokenColumn();\n if (!/^comment.end/.test(token.type)) {\n range.end.column += token.value.length - 2;\n }\n return range;\n }\n };\n this.foldAll = function (startRow, endRow, depth, test) {\n if (depth == undefined)\n depth = 100000; // JSON.stringify doesn't hanle Infinity\n var foldWidgets = this.foldWidgets;\n if (!foldWidgets)\n return; // mode doesn't support folding\n endRow = endRow || this.getLength();\n startRow = startRow || 0;\n for (var row = startRow; row < endRow; row++) {\n if (foldWidgets[row] == null)\n foldWidgets[row] = this.getFoldWidget(row);\n if (foldWidgets[row] != \"start\")\n continue;\n if (test && !test(row))\n continue;\n var range = this.getFoldWidgetRange(row);\n if (range && range.isMultiLine()\n && range.end.row <= endRow\n && range.start.row >= startRow) {\n row = range.end.row;\n range.collapseChildren = depth;\n this.addFold(\"...\", range);\n }\n }\n };\n this.foldToLevel = function (level) {\n this.foldAll();\n while (level-- > 0)\n this.unfold(null, false);\n };\n this.foldAllComments = function () {\n var session = this;\n this.foldAll(null, null, null, function (row) {\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token.type == \"text\" && /^\\s+$/.test(token.value))\n continue;\n if (/comment/.test(token.type))\n return true;\n return false;\n }\n });\n };\n this.$foldStyles = {\n \"manual\": 1,\n \"markbegin\": 1,\n \"markbeginend\": 1\n };\n this.$foldStyle = \"markbegin\";\n this.setFoldStyle = function (style) {\n if (!this.$foldStyles[style])\n throw new Error(\"invalid fold style: \" + style + \"[\" + Object.keys(this.$foldStyles).join(\", \") + \"]\");\n if (this.$foldStyle == style)\n return;\n this.$foldStyle = style;\n if (style == \"manual\")\n this.unfold();\n var mode = this.$foldMode;\n this.$setFolding(null);\n this.$setFolding(mode);\n };\n this.$setFolding = function (foldMode) {\n if (this.$foldMode == foldMode)\n return;\n this.$foldMode = foldMode;\n this.off('change', this.$updateFoldWidgets);\n this.off('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n this._signal(\"changeAnnotation\");\n if (!foldMode || this.$foldStyle == \"manual\") {\n this.foldWidgets = null;\n return;\n }\n this.foldWidgets = [];\n this.getFoldWidget = foldMode.getFoldWidget.bind(foldMode, this, this.$foldStyle);\n this.getFoldWidgetRange = foldMode.getFoldWidgetRange.bind(foldMode, this, this.$foldStyle);\n this.$updateFoldWidgets = this.updateFoldWidgets.bind(this);\n this.$tokenizerUpdateFoldWidgets = this.tokenizerUpdateFoldWidgets.bind(this);\n this.on('change', this.$updateFoldWidgets);\n this.on('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n };\n this.getParentFoldRangeData = function (row, ignoreCurrent) {\n var fw = this.foldWidgets;\n if (!fw || (ignoreCurrent && fw[row]))\n return {};\n var i = row - 1, firstRange;\n while (i >= 0) {\n var c = fw[i];\n if (c == null)\n c = fw[i] = this.getFoldWidget(i);\n if (c == \"start\") {\n var range = this.getFoldWidgetRange(i);\n if (!firstRange)\n firstRange = range;\n if (range && range.end.row >= row)\n break;\n }\n i--;\n }\n return {\n range: i !== -1 && range,\n firstRange: firstRange\n };\n };\n this.onFoldWidgetClick = function (row, e) {\n if (e instanceof MouseEvent)\n e = e.domEvent;\n var options = {\n children: e.shiftKey,\n all: e.ctrlKey || e.metaKey,\n siblings: e.altKey\n };\n var range = this.$toggleFoldWidget(row, options);\n if (!range) {\n var el = (e.target || e.srcElement);\n if (el && /ace_fold-widget/.test(el.className))\n el.className += \" ace_invalid\";\n }\n };\n this.$toggleFoldWidget = function (row, options) {\n if (!this.getFoldWidget)\n return;\n var type = this.getFoldWidget(row);\n var line = this.getLine(row);\n var dir = type === \"end\" ? -1 : 1;\n var fold = this.getFoldAt(row, dir === -1 ? 0 : line.length, dir);\n if (fold) {\n if (options.children || options.all)\n this.removeFold(fold);\n else\n this.expandFold(fold);\n return fold;\n }\n var range = this.getFoldWidgetRange(row, true);\n if (range && !range.isMultiLine()) {\n fold = this.getFoldAt(range.start.row, range.start.column, 1);\n if (fold && range.isEqual(fold.range)) {\n this.removeFold(fold);\n return fold;\n }\n }\n if (options.siblings) {\n var data = this.getParentFoldRangeData(row);\n if (data.range) {\n var startRow = data.range.start.row + 1;\n var endRow = data.range.end.row;\n }\n this.foldAll(startRow, endRow, options.all ? 10000 : 0);\n }\n else if (options.children) {\n endRow = range ? range.end.row : this.getLength();\n this.foldAll(row + 1, endRow, options.all ? 10000 : 0);\n }\n else if (range) {\n if (options.all)\n range.collapseChildren = 10000;\n this.addFold(\"...\", range);\n }\n return range;\n };\n this.toggleFoldWidget = function (toggleParent) {\n var row = this.selection.getCursor().row;\n row = this.getRowFoldStart(row);\n var range = this.$toggleFoldWidget(row, {});\n if (range)\n return;\n var data = this.getParentFoldRangeData(row, true);\n range = data.range || data.firstRange;\n if (range) {\n row = range.start.row;\n var fold = this.getFoldAt(row, this.getLine(row).length, 1);\n if (fold) {\n this.removeFold(fold);\n }\n else {\n this.addFold(\"...\", range);\n }\n }\n };\n this.updateFoldWidgets = function (delta) {\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n this.foldWidgets[firstRow] = null;\n }\n else if (delta.action == 'remove') {\n this.foldWidgets.splice(firstRow, len + 1, null);\n }\n else {\n var args = Array(len + 1);\n args.unshift(firstRow, 1);\n this.foldWidgets.splice.apply(this.foldWidgets, args);\n }\n };\n this.tokenizerUpdateFoldWidgets = function (e) {\n var rows = e.data;\n if (rows.first != rows.last) {\n if (this.foldWidgets.length > rows.first)\n this.foldWidgets.splice(rows.first, this.foldWidgets.length);\n }\n };\n}\nexports.Folding = Folding;\n\n});\n\nace.define(\"ace/edit_session/bracket_match\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar Range = require(\"../range\").Range;\nfunction BracketMatch() {\n this.findMatchingBracket = function (position, chr) {\n if (position.column == 0)\n return null;\n var charBeforeCursor = chr || this.getLine(position.row).charAt(position.column - 1);\n if (charBeforeCursor == \"\")\n return null;\n var match = charBeforeCursor.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match)\n return null;\n if (match[1])\n return this.$findClosingBracket(match[1], position);\n else\n return this.$findOpeningBracket(match[2], position);\n };\n this.getBracketRange = function (pos) {\n var line = this.getLine(pos.row);\n var before = true, range;\n var chr = line.charAt(pos.column - 1);\n var match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match) {\n chr = line.charAt(pos.column);\n pos = { row: pos.row, column: pos.column + 1 };\n match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n before = false;\n }\n if (!match)\n return null;\n if (match[1]) {\n var bracketPos = this.$findClosingBracket(match[1], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(pos, bracketPos);\n if (!before) {\n range.end.column++;\n range.start.column--;\n }\n range.cursor = range.end;\n }\n else {\n var bracketPos = this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(bracketPos, pos);\n if (!before) {\n range.start.column++;\n range.end.column--;\n }\n range.cursor = range.start;\n }\n return range;\n };\n this.getMatchingBracketRanges = function (pos, isBackwards) {\n var line = this.getLine(pos.row);\n var bracketsRegExp = /([\\(\\[\\{])|([\\)\\]\\}])/;\n var chr = !isBackwards && line.charAt(pos.column - 1);\n var match = chr && chr.match(bracketsRegExp);\n if (!match) {\n chr = (isBackwards === undefined || isBackwards) && line.charAt(pos.column);\n pos = {\n row: pos.row,\n column: pos.column + 1\n };\n match = chr && chr.match(bracketsRegExp);\n }\n if (!match)\n return null;\n var startRange = new Range(pos.row, pos.column - 1, pos.row, pos.column);\n var bracketPos = match[1] ? this.$findClosingBracket(match[1], pos)\n : this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return [startRange];\n var endRange = new Range(bracketPos.row, bracketPos.column, bracketPos.row, bracketPos.column + 1);\n return [startRange, endRange];\n };\n this.$brackets = {\n \")\": \"(\",\n \"(\": \")\",\n \"]\": \"[\",\n \"[\": \"]\",\n \"{\": \"}\",\n \"}\": \"{\",\n \"<\": \">\",\n \">\": \"<\"\n };\n this.$findOpeningBracket = function (bracket, position, typeRe) {\n var openBracket = this.$brackets[bracket];\n var depth = 1;\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n if (!typeRe) {\n typeRe = new RegExp(\"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"rparen\", \".paren\")\n .replace(/\\b(?:end)\\b/, \"(?:start|begin|end)\")\n .replace(/-close\\b/, \"-(close|open)\")\n + \")+\");\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn() - 2;\n var value = token.value;\n while (true) {\n while (valueIndex >= 0) {\n var chr = value.charAt(valueIndex);\n if (chr == openBracket) {\n depth -= 1;\n if (depth == 0) {\n return { row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn() };\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex -= 1;\n }\n do {\n token = iterator.stepBackward();\n } while (token && !typeRe.test(token.type));\n if (token == null)\n break;\n value = token.value;\n valueIndex = value.length - 1;\n }\n return null;\n };\n this.$findClosingBracket = function (bracket, position, typeRe) {\n var closingBracket = this.$brackets[bracket];\n var depth = 1;\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n if (!typeRe) {\n typeRe = new RegExp(\"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"lparen\", \".paren\")\n .replace(/\\b(?:start|begin)\\b/, \"(?:start|begin|end)\")\n .replace(/-open\\b/, \"-(close|open)\")\n + \")+\");\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn();\n while (true) {\n var value = token.value;\n var valueLength = value.length;\n while (valueIndex < valueLength) {\n var chr = value.charAt(valueIndex);\n if (chr == closingBracket) {\n depth -= 1;\n if (depth == 0) {\n return { row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn() };\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex += 1;\n }\n do {\n token = iterator.stepForward();\n } while (token && !typeRe.test(token.type));\n if (token == null)\n break;\n valueIndex = 0;\n }\n return null;\n };\n this.getMatchingTags = function (pos) {\n var iterator = new TokenIterator(this, pos.row, pos.column);\n var token = this.$findTagName(iterator);\n if (!token)\n return;\n var prevToken = iterator.stepBackward();\n if (prevToken.value === '<') {\n return this.$findClosingTag(iterator, token);\n }\n else {\n return this.$findOpeningTag(iterator, token);\n }\n };\n this.$findTagName = function (iterator) {\n var token = iterator.getCurrentToken();\n var found = false;\n var backward = false;\n if (token && token.type.indexOf('tag-name') === -1) {\n do {\n if (backward)\n token = iterator.stepBackward();\n else\n token = iterator.stepForward();\n if (token) {\n if (token.value === \"/>\") {\n backward = true;\n }\n else if (token.type.indexOf('tag-name') !== -1) {\n found = true;\n }\n }\n } while (token && !found);\n }\n return token;\n };\n this.$findClosingTag = function (iterator, token) {\n var prevToken;\n var currentTag = token.value;\n var tag = token.value;\n var depth = 0;\n var openTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1);\n token = iterator.stepForward();\n var openTagName = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + token.value.length);\n var foundOpenTagEnd = false;\n do {\n prevToken = token;\n token = iterator.stepForward();\n if (token) {\n if (token.value === '>' && !foundOpenTagEnd) {\n var openTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for `>`\n foundOpenTagEnd = true;\n }\n if (token.type.indexOf('tag-name') !== -1) {\n currentTag = token.value;\n if (tag === currentTag) {\n if (prevToken.value === '<') {\n depth++;\n }\n else if (prevToken.value === '') {\n var closeTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n }\n else {\n return;\n }\n }\n }\n }\n }\n else if (tag === currentTag && token.value === '/>') { // self-closing tag\n depth--;\n if (depth < 0) { //found self-closing tag end\n var closeTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 2);\n var closeTagName = closeTagStart;\n var closeTagEnd = closeTagName;\n var openTagEnd = new Range(openTagName.end.row, openTagName.end.column, openTagName.end.row, openTagName.end.column + 1);\n }\n }\n }\n } while (token && depth >= 0);\n if (openTagStart && openTagEnd && closeTagStart && closeTagEnd && openTagName && closeTagName) {\n return {\n openTag: new Range(openTagStart.start.row, openTagStart.start.column, openTagEnd.end.row, openTagEnd.end.column),\n closeTag: new Range(closeTagStart.start.row, closeTagStart.start.column, closeTagEnd.end.row, closeTagEnd.end.column),\n openTagName: openTagName,\n closeTagName: closeTagName\n };\n }\n };\n this.$findOpeningTag = function (iterator, token) {\n var prevToken = iterator.getCurrentToken();\n var tag = token.value;\n var depth = 0;\n var startRow = iterator.getCurrentTokenRow();\n var startColumn = iterator.getCurrentTokenColumn();\n var endColumn = startColumn + 2;\n var closeTagStart = new Range(startRow, startColumn, startRow, endColumn); //Range for \")\n return;\n var closeTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n iterator.stepBackward();\n iterator.stepBackward();\n do {\n token = prevToken;\n startRow = iterator.getCurrentTokenRow();\n startColumn = iterator.getCurrentTokenColumn();\n endColumn = startColumn + token.value.length;\n prevToken = iterator.stepBackward();\n if (token) {\n if (token.type.indexOf('tag-name') !== -1) {\n if (tag === token.value) {\n if (prevToken.value === '<') {\n depth++;\n if (depth > 0) { //found opening tag\n var openTagName = new Range(startRow, startColumn, startRow, endColumn);\n var openTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for <\n do {\n token = iterator.stepForward();\n } while (token && token.value !== '>');\n var openTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n }\n }\n else if (prevToken.value === '') { // self-closing tag\n var stepCount = 0;\n var tmpToken = prevToken;\n while (tmpToken) {\n if (tmpToken.type.indexOf('tag-name') !== -1 && tmpToken.value === tag) {\n depth--;\n break;\n }\n else if (tmpToken.value === '<') {\n break;\n }\n tmpToken = iterator.stepBackward();\n stepCount++;\n }\n for (var i = 0; i < stepCount; i++) {\n iterator.stepForward();\n }\n }\n }\n } while (prevToken && depth <= 0);\n if (openTagStart && openTagEnd && closeTagStart && closeTagEnd && openTagName && closeTagName) {\n return {\n openTag: new Range(openTagStart.start.row, openTagStart.start.column, openTagEnd.end.row, openTagEnd.end.column),\n closeTag: new Range(closeTagStart.start.row, closeTagStart.start.column, closeTagEnd.end.row, closeTagEnd.end.column),\n openTagName: openTagName,\n closeTagName: closeTagName\n };\n }\n };\n}\nexports.BracketMatch = BracketMatch;\n\n});\n\nace.define(\"ace/edit_session\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/bidihandler\",\"ace/config\",\"ace/lib/event_emitter\",\"ace/selection\",\"ace/mode/text\",\"ace/range\",\"ace/document\",\"ace/background_tokenizer\",\"ace/search_highlight\",\"ace/undomanager\",\"ace/edit_session/folding\",\"ace/edit_session/bracket_match\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar lang = require(\"./lib/lang\");\nvar BidiHandler = require(\"./bidihandler\").BidiHandler;\nvar config = require(\"./config\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Selection = require(\"./selection\").Selection;\nvar TextMode = require(\"./mode/text\").Mode;\nvar Range = require(\"./range\").Range;\nvar Document = require(\"./document\").Document;\nvar BackgroundTokenizer = require(\"./background_tokenizer\").BackgroundTokenizer;\nvar SearchHighlight = require(\"./search_highlight\").SearchHighlight;\nvar UndoManager = require(\"./undomanager\").UndoManager;\nvar EditSession = /** @class */ (function () {\n function EditSession(text, mode) {\n this.$breakpoints = [];\n this.$decorations = [];\n this.$frontMarkers = {};\n this.$backMarkers = {};\n this.$markerId = 1;\n this.$undoSelect = true;\n this.$foldData = [];\n this.id = \"session\" + (++EditSession.$uid);\n this.$foldData.toString = function () {\n return this.join(\"\\n\");\n };\n this.bgTokenizer = new BackgroundTokenizer((new TextMode()).getTokenizer(), this);\n var _self = this;\n this.bgTokenizer.on(\"update\", function (e) {\n _self._signal(\"tokenizerUpdate\", e);\n });\n this.on(\"changeFold\", this.onChangeFold.bind(this));\n this.$onChange = this.onChange.bind(this);\n if (typeof text != \"object\" || !text.getLine)\n text = new Document(text);\n this.setDocument(text);\n this.selection = new Selection(this);\n this.$bidiHandler = new BidiHandler(this);\n config.resetOptions(this);\n this.setMode(mode);\n config._signal(\"session\", this);\n this.destroyed = false;\n }\n EditSession.prototype.setDocument = function (doc) {\n if (this.doc)\n this.doc.off(\"change\", this.$onChange);\n this.doc = doc;\n doc.on(\"change\", this.$onChange, true);\n this.bgTokenizer.setDocument(this.getDocument());\n this.resetCaches();\n };\n EditSession.prototype.getDocument = function () {\n return this.doc;\n };\n EditSession.prototype.$resetRowCache = function (docRow) {\n if (!docRow) {\n this.$docRowCache = [];\n this.$screenRowCache = [];\n return;\n }\n var l = this.$docRowCache.length;\n var i = this.$getRowCacheIndex(this.$docRowCache, docRow) + 1;\n if (l > i) {\n this.$docRowCache.splice(i, l);\n this.$screenRowCache.splice(i, l);\n }\n };\n EditSession.prototype.$getRowCacheIndex = function (cacheArray, val) {\n var low = 0;\n var hi = cacheArray.length - 1;\n while (low <= hi) {\n var mid = (low + hi) >> 1;\n var c = cacheArray[mid];\n if (val > c)\n low = mid + 1;\n else if (val < c)\n hi = mid - 1;\n else\n return mid;\n }\n return low - 1;\n };\n EditSession.prototype.resetCaches = function () {\n this.$modified = true;\n this.$wrapData = [];\n this.$rowLengthCache = [];\n this.$resetRowCache(0);\n if (!this.destroyed)\n this.bgTokenizer.start(0);\n };\n EditSession.prototype.onChangeFold = function (e) {\n var fold = e.data;\n this.$resetRowCache(fold.start.row);\n };\n EditSession.prototype.onChange = function (delta) {\n this.$modified = true;\n this.$bidiHandler.onChange(delta);\n this.$resetRowCache(delta.start.row);\n var removedFolds = this.$updateInternalDataOnChange(delta);\n if (!this.$fromUndo && this.$undoManager) {\n if (removedFolds && removedFolds.length) {\n this.$undoManager.add({\n action: \"removeFolds\",\n folds: removedFolds\n }, this.mergeUndoDeltas);\n this.mergeUndoDeltas = true;\n }\n this.$undoManager.add(delta, this.mergeUndoDeltas);\n this.mergeUndoDeltas = true;\n this.$informUndoManager.schedule();\n }\n this.bgTokenizer.$updateOnChange(delta);\n this._signal(\"change\", delta);\n };\n EditSession.prototype.setValue = function (text) {\n this.doc.setValue(text);\n this.selection.moveTo(0, 0);\n this.$resetRowCache(0);\n this.setUndoManager(this.$undoManager);\n this.getUndoManager().reset();\n };\n EditSession.fromJSON = function (session) {\n session = JSON.parse(session);\n var undoManager = new UndoManager();\n undoManager.$undoStack = session.history.undo;\n undoManager.$redoStack = session.history.redo;\n undoManager.mark = session.history.mark;\n undoManager.$rev = session.history.rev;\n var editSession = new EditSession(session.value);\n session.folds.forEach(function (fold) {\n editSession.addFold(\"...\", Range.fromPoints(fold.start, fold.end));\n });\n editSession.setAnnotations(session.annotations);\n editSession.setBreakpoints(session.breakpoints);\n editSession.setMode(session.mode);\n editSession.setScrollLeft(session.scrollLeft);\n editSession.setScrollTop(session.scrollTop);\n editSession.setUndoManager(undoManager);\n editSession.selection.fromJSON(session.selection);\n return editSession;\n };\n EditSession.prototype.toJSON = function () {\n return {\n annotations: this.$annotations,\n breakpoints: this.$breakpoints,\n folds: this.getAllFolds().map(function (fold) {\n return fold.range;\n }),\n history: this.getUndoManager(),\n mode: this.$mode.$id,\n scrollLeft: this.$scrollLeft,\n scrollTop: this.$scrollTop,\n selection: this.selection.toJSON(),\n value: this.doc.getValue()\n };\n };\n EditSession.prototype.toString = function () {\n return this.doc.getValue();\n };\n EditSession.prototype.getSelection = function () {\n return this.selection;\n };\n EditSession.prototype.getState = function (row) {\n return this.bgTokenizer.getState(row);\n };\n EditSession.prototype.getTokens = function (row) {\n return this.bgTokenizer.getTokens(row);\n };\n EditSession.prototype.getTokenAt = function (row, column) {\n var tokens = this.bgTokenizer.getTokens(row);\n var token, c = 0;\n if (column == null) {\n var i = tokens.length - 1;\n c = this.getLine(row).length;\n }\n else {\n for (var i = 0; i < tokens.length; i++) {\n c += tokens[i].value.length;\n if (c >= column)\n break;\n }\n }\n token = tokens[i];\n if (!token)\n return null;\n token.index = i;\n token.start = c - token.value.length;\n return token;\n };\n EditSession.prototype.setUndoManager = function (undoManager) {\n this.$undoManager = undoManager;\n if (this.$informUndoManager)\n this.$informUndoManager.cancel();\n if (undoManager) {\n var self = this;\n undoManager.addSession(this);\n this.$syncInformUndoManager = function () {\n self.$informUndoManager.cancel();\n self.mergeUndoDeltas = false;\n };\n this.$informUndoManager = lang.delayedCall(this.$syncInformUndoManager);\n }\n else {\n this.$syncInformUndoManager = function () { };\n }\n };\n EditSession.prototype.markUndoGroup = function () {\n if (this.$syncInformUndoManager)\n this.$syncInformUndoManager();\n };\n EditSession.prototype.getUndoManager = function () {\n return this.$undoManager || this.$defaultUndoManager;\n };\n EditSession.prototype.getTabString = function () {\n if (this.getUseSoftTabs()) {\n return lang.stringRepeat(\" \", this.getTabSize());\n }\n else {\n return \"\\t\";\n }\n };\n EditSession.prototype.setUseSoftTabs = function (val) {\n this.setOption(\"useSoftTabs\", val);\n };\n EditSession.prototype.getUseSoftTabs = function () {\n return this.$useSoftTabs && !this.$mode.$indentWithTabs;\n };\n EditSession.prototype.setTabSize = function (tabSize) {\n this.setOption(\"tabSize\", tabSize);\n };\n EditSession.prototype.getTabSize = function () {\n return this.$tabSize;\n };\n EditSession.prototype.isTabStop = function (position) {\n return this.$useSoftTabs && (position.column % this.$tabSize === 0);\n };\n EditSession.prototype.setNavigateWithinSoftTabs = function (navigateWithinSoftTabs) {\n this.setOption(\"navigateWithinSoftTabs\", navigateWithinSoftTabs);\n };\n EditSession.prototype.getNavigateWithinSoftTabs = function () {\n return this.$navigateWithinSoftTabs;\n };\n EditSession.prototype.setOverwrite = function (overwrite) {\n this.setOption(\"overwrite\", overwrite);\n };\n EditSession.prototype.getOverwrite = function () {\n return this.$overwrite;\n };\n EditSession.prototype.toggleOverwrite = function () {\n this.setOverwrite(!this.$overwrite);\n };\n EditSession.prototype.addGutterDecoration = function (row, className) {\n if (!this.$decorations[row])\n this.$decorations[row] = \"\";\n this.$decorations[row] += \" \" + className;\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.removeGutterDecoration = function (row, className) {\n this.$decorations[row] = (this.$decorations[row] || \"\").replace(\" \" + className, \"\");\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.getBreakpoints = function () {\n return this.$breakpoints;\n };\n EditSession.prototype.setBreakpoints = function (rows) {\n this.$breakpoints = [];\n for (var i = 0; i < rows.length; i++) {\n this.$breakpoints[rows[i]] = \"ace_breakpoint\";\n }\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.clearBreakpoints = function () {\n this.$breakpoints = [];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.setBreakpoint = function (row, className) {\n if (className === undefined)\n className = \"ace_breakpoint\";\n if (className)\n this.$breakpoints[row] = className;\n else\n delete this.$breakpoints[row];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.clearBreakpoint = function (row) {\n delete this.$breakpoints[row];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.addMarker = function (range, clazz, type, inFront) {\n var id = this.$markerId++;\n var marker = {\n range: range,\n type: type || \"line\",\n renderer: typeof type == \"function\" ? type : null,\n clazz: clazz,\n inFront: !!inFront,\n id: id\n };\n if (inFront) {\n this.$frontMarkers[id] = marker;\n this._signal(\"changeFrontMarker\");\n }\n else {\n this.$backMarkers[id] = marker;\n this._signal(\"changeBackMarker\");\n }\n return id;\n };\n EditSession.prototype.addDynamicMarker = function (marker, inFront) {\n if (!marker.update)\n return;\n var id = this.$markerId++;\n marker.id = id;\n marker.inFront = !!inFront;\n if (inFront) {\n this.$frontMarkers[id] = marker;\n this._signal(\"changeFrontMarker\");\n }\n else {\n this.$backMarkers[id] = marker;\n this._signal(\"changeBackMarker\");\n }\n return marker;\n };\n EditSession.prototype.removeMarker = function (markerId) {\n var marker = this.$frontMarkers[markerId] || this.$backMarkers[markerId];\n if (!marker)\n return;\n var markers = marker.inFront ? this.$frontMarkers : this.$backMarkers;\n delete (markers[markerId]);\n this._signal(marker.inFront ? \"changeFrontMarker\" : \"changeBackMarker\");\n };\n EditSession.prototype.getMarkers = function (inFront) {\n return inFront ? this.$frontMarkers : this.$backMarkers;\n };\n EditSession.prototype.highlight = function (re) {\n if (!this.$searchHighlight) {\n var highlight = new SearchHighlight(null, \"ace_selected-word\", \"text\");\n this.$searchHighlight = this.addDynamicMarker(highlight);\n }\n this.$searchHighlight.setRegexp(re);\n };\n EditSession.prototype.highlightLines = function (startRow, endRow, clazz, inFront) {\n if (typeof endRow != \"number\") {\n clazz = endRow;\n endRow = startRow;\n }\n if (!clazz)\n clazz = \"ace_step\";\n var range = new Range(startRow, 0, endRow, Infinity);\n range.id = this.addMarker(range, clazz, \"fullLine\", inFront);\n return range;\n };\n EditSession.prototype.setAnnotations = function (annotations) {\n this.$annotations = annotations;\n this._signal(\"changeAnnotation\", {});\n };\n EditSession.prototype.getAnnotations = function () {\n return this.$annotations || [];\n };\n EditSession.prototype.clearAnnotations = function () {\n this.setAnnotations([]);\n };\n EditSession.prototype.$detectNewLine = function (text) {\n var match = text.match(/^.*?(\\r?\\n)/m);\n if (match) {\n this.$autoNewLine = match[1];\n }\n else {\n this.$autoNewLine = \"\\n\";\n }\n };\n EditSession.prototype.getWordRange = function (row, column) {\n var line = this.getLine(row);\n var inToken = false;\n if (column > 0)\n inToken = !!line.charAt(column - 1).match(this.tokenRe);\n if (!inToken)\n inToken = !!line.charAt(column).match(this.tokenRe);\n if (inToken)\n var re = this.tokenRe;\n else if (/^\\s+$/.test(line.slice(column - 1, column + 1)))\n var re = /\\s/;\n else\n var re = this.nonTokenRe;\n var start = column;\n if (start > 0) {\n do {\n start--;\n } while (start >= 0 && line.charAt(start).match(re));\n start++;\n }\n var end = column;\n while (end < line.length && line.charAt(end).match(re)) {\n end++;\n }\n return new Range(row, start, row, end);\n };\n EditSession.prototype.getAWordRange = function (row, column) {\n var wordRange = this.getWordRange(row, column);\n var line = this.getLine(wordRange.end.row);\n while (line.charAt(wordRange.end.column).match(/[ \\t]/)) {\n wordRange.end.column += 1;\n }\n return wordRange;\n };\n EditSession.prototype.setNewLineMode = function (newLineMode) {\n this.doc.setNewLineMode(newLineMode);\n };\n EditSession.prototype.getNewLineMode = function () {\n return this.doc.getNewLineMode();\n };\n EditSession.prototype.setUseWorker = function (useWorker) { this.setOption(\"useWorker\", useWorker); };\n EditSession.prototype.getUseWorker = function () { return this.$useWorker; };\n EditSession.prototype.onReloadTokenizer = function (e) {\n var rows = e.data;\n this.bgTokenizer.start(rows.first);\n this._signal(\"tokenizerUpdate\", e);\n };\n EditSession.prototype.setMode = function (mode, cb) {\n if (mode && typeof mode === \"object\") {\n if (mode.getTokenizer)\n return this.$onChangeMode(mode);\n var options = mode;\n var path = options.path;\n }\n else {\n path = mode || \"ace/mode/text\";\n }\n if (!this.$modes[\"ace/mode/text\"])\n this.$modes[\"ace/mode/text\"] = new TextMode();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n cb && cb();\n return;\n }\n this.$modeId = path;\n config.loadModule([\"mode\", path], function (m) {\n if (this.$modeId !== path)\n return cb && cb();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n }\n else if (m && m.Mode) {\n m = new m.Mode(options);\n if (!options) {\n this.$modes[path] = m;\n m.$id = path;\n }\n this.$onChangeMode(m);\n }\n cb && cb();\n }.bind(this));\n if (!this.$mode)\n this.$onChangeMode(this.$modes[\"ace/mode/text\"], true);\n };\n EditSession.prototype.$onChangeMode = function (mode, $isPlaceholder) {\n if (!$isPlaceholder)\n this.$modeId = mode.$id;\n if (this.$mode === mode)\n return;\n var oldMode = this.$mode;\n this.$mode = mode;\n this.$stopWorker();\n if (this.$useWorker)\n this.$startWorker();\n var tokenizer = mode.getTokenizer();\n if (tokenizer.on !== undefined) {\n var onReloadTokenizer = this.onReloadTokenizer.bind(this);\n tokenizer.on(\"update\", onReloadTokenizer);\n }\n this.bgTokenizer.setTokenizer(tokenizer);\n this.bgTokenizer.setDocument(this.getDocument());\n this.tokenRe = mode.tokenRe;\n this.nonTokenRe = mode.nonTokenRe;\n if (!$isPlaceholder) {\n if (mode.attachToSession)\n mode.attachToSession(this);\n this.$options.wrapMethod.set.call(this, this.$wrapMethod);\n this.$setFolding(mode.foldingRules);\n this.bgTokenizer.start(0);\n this._emit(\"changeMode\", { oldMode: oldMode, mode: mode });\n }\n };\n EditSession.prototype.$stopWorker = function () {\n if (this.$worker) {\n this.$worker.terminate();\n this.$worker = null;\n }\n };\n EditSession.prototype.$startWorker = function () {\n try {\n this.$worker = this.$mode.createWorker(this);\n }\n catch (e) {\n config.warn(\"Could not load worker\", e);\n this.$worker = null;\n }\n };\n EditSession.prototype.getMode = function () {\n return this.$mode;\n };\n EditSession.prototype.setScrollTop = function (scrollTop) {\n if (this.$scrollTop === scrollTop || isNaN(scrollTop))\n return;\n this.$scrollTop = scrollTop;\n this._signal(\"changeScrollTop\", scrollTop);\n };\n EditSession.prototype.getScrollTop = function () {\n return this.$scrollTop;\n };\n EditSession.prototype.setScrollLeft = function (scrollLeft) {\n if (this.$scrollLeft === scrollLeft || isNaN(scrollLeft))\n return;\n this.$scrollLeft = scrollLeft;\n this._signal(\"changeScrollLeft\", scrollLeft);\n };\n EditSession.prototype.getScrollLeft = function () {\n return this.$scrollLeft;\n };\n EditSession.prototype.getScreenWidth = function () {\n this.$computeWidth();\n if (this.lineWidgets)\n return Math.max(this.getLineWidgetMaxWidth(), this.screenWidth);\n return this.screenWidth;\n };\n EditSession.prototype.getLineWidgetMaxWidth = function () {\n if (this.lineWidgetsWidth != null)\n return this.lineWidgetsWidth;\n var width = 0;\n this.lineWidgets.forEach(function (w) {\n if (w && w.screenWidth > width)\n width = w.screenWidth;\n });\n return this.lineWidgetWidth = width;\n };\n EditSession.prototype.$computeWidth = function (force) {\n if (this.$modified || force) {\n this.$modified = false;\n if (this.$useWrapMode)\n return this.screenWidth = this.$wrapLimit;\n var lines = this.doc.getAllLines();\n var cache = this.$rowLengthCache;\n var longestScreenLine = 0;\n var foldIndex = 0;\n var foldLine = this.$foldData[foldIndex];\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n var len = lines.length;\n for (var i = 0; i < len; i++) {\n if (i > foldStart) {\n i = foldLine.end.row + 1;\n if (i >= len)\n break;\n foldLine = this.$foldData[foldIndex++];\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (cache[i] == null)\n cache[i] = this.$getStringScreenWidth(lines[i])[0];\n if (cache[i] > longestScreenLine)\n longestScreenLine = cache[i];\n }\n this.screenWidth = longestScreenLine;\n }\n };\n EditSession.prototype.getLine = function (row) {\n return this.doc.getLine(row);\n };\n EditSession.prototype.getLines = function (firstRow, lastRow) {\n return this.doc.getLines(firstRow, lastRow);\n };\n EditSession.prototype.getLength = function () {\n return this.doc.getLength();\n };\n EditSession.prototype.getTextRange = function (range) {\n return this.doc.getTextRange(range || this.selection.getRange());\n };\n EditSession.prototype.insert = function (position, text) {\n return this.doc.insert(position, text);\n };\n EditSession.prototype.remove = function (range) {\n return this.doc.remove(range);\n };\n EditSession.prototype.removeFullLines = function (firstRow, lastRow) {\n return this.doc.removeFullLines(firstRow, lastRow);\n };\n EditSession.prototype.undoChanges = function (deltas, dontSelect) {\n if (!deltas.length)\n return;\n this.$fromUndo = true;\n for (var i = deltas.length - 1; i != -1; i--) {\n var delta = deltas[i];\n if (delta.action == \"insert\" || delta.action == \"remove\") {\n this.doc.revertDelta(delta);\n }\n else if (delta.folds) {\n this.addFolds(delta.folds);\n }\n }\n if (!dontSelect && this.$undoSelect) {\n if (deltas.selectionBefore)\n this.selection.fromJSON(deltas.selectionBefore);\n else\n this.selection.setRange(this.$getUndoSelection(deltas, true));\n }\n this.$fromUndo = false;\n };\n EditSession.prototype.redoChanges = function (deltas, dontSelect) {\n if (!deltas.length)\n return;\n this.$fromUndo = true;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (delta.action == \"insert\" || delta.action == \"remove\") {\n this.doc.$safeApplyDelta(delta);\n }\n }\n if (!dontSelect && this.$undoSelect) {\n if (deltas.selectionAfter)\n this.selection.fromJSON(deltas.selectionAfter);\n else\n this.selection.setRange(this.$getUndoSelection(deltas, false));\n }\n this.$fromUndo = false;\n };\n EditSession.prototype.setUndoSelect = function (enable) {\n this.$undoSelect = enable;\n };\n EditSession.prototype.$getUndoSelection = function (deltas, isUndo) {\n function isInsert(delta) {\n return isUndo ? delta.action !== \"insert\" : delta.action === \"insert\";\n }\n var range, point;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (!delta.start)\n continue; // skip folds\n if (!range) {\n if (isInsert(delta)) {\n range = Range.fromPoints(delta.start, delta.end);\n }\n else {\n range = Range.fromPoints(delta.start, delta.start);\n }\n continue;\n }\n if (isInsert(delta)) {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range.setStart(point);\n }\n point = delta.end;\n if (range.compare(point.row, point.column) == 1) {\n range.setEnd(point);\n }\n }\n else {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range = Range.fromPoints(delta.start, delta.start);\n }\n }\n }\n return range;\n };\n EditSession.prototype.replace = function (range, text) {\n return this.doc.replace(range, text);\n };\n EditSession.prototype.moveText = function (fromRange, toPosition, copy) {\n var text = this.getTextRange(fromRange);\n var folds = this.getFoldsInRange(fromRange);\n var toRange = Range.fromPoints(toPosition, toPosition);\n if (!copy) {\n this.remove(fromRange);\n var rowDiff = fromRange.start.row - fromRange.end.row;\n var collDiff = rowDiff ? -fromRange.end.column : fromRange.start.column - fromRange.end.column;\n if (collDiff) {\n if (toRange.start.row == fromRange.end.row && toRange.start.column > fromRange.end.column)\n toRange.start.column += collDiff;\n if (toRange.end.row == fromRange.end.row && toRange.end.column > fromRange.end.column)\n toRange.end.column += collDiff;\n }\n if (rowDiff && toRange.start.row >= fromRange.end.row) {\n toRange.start.row += rowDiff;\n toRange.end.row += rowDiff;\n }\n }\n toRange.end = this.insert(toRange.start, text);\n if (folds.length) {\n var oldStart = fromRange.start;\n var newStart = toRange.start;\n var rowDiff = newStart.row - oldStart.row;\n var collDiff = newStart.column - oldStart.column;\n this.addFolds(folds.map(function (x) {\n x = x.clone();\n if (x.start.row == oldStart.row)\n x.start.column += collDiff;\n if (x.end.row == oldStart.row)\n x.end.column += collDiff;\n x.start.row += rowDiff;\n x.end.row += rowDiff;\n return x;\n }));\n }\n return toRange;\n };\n EditSession.prototype.indentRows = function (startRow, endRow, indentString) {\n indentString = indentString.replace(/\\t/g, this.getTabString());\n for (var row = startRow; row <= endRow; row++)\n this.doc.insertInLine({ row: row, column: 0 }, indentString);\n };\n EditSession.prototype.outdentRows = function (range) {\n var rowRange = range.collapseRows();\n var deleteRange = new Range(0, 0, 0, 0);\n var size = this.getTabSize();\n for (var i = rowRange.start.row; i <= rowRange.end.row; ++i) {\n var line = this.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n for (var j = 0; j < size; ++j)\n if (line.charAt(j) != ' ')\n break;\n if (j < size && line.charAt(j) == '\\t') {\n deleteRange.start.column = j;\n deleteRange.end.column = j + 1;\n }\n else {\n deleteRange.start.column = 0;\n deleteRange.end.column = j;\n }\n this.remove(deleteRange);\n }\n };\n EditSession.prototype.$moveLines = function (firstRow, lastRow, dir) {\n firstRow = this.getRowFoldStart(firstRow);\n lastRow = this.getRowFoldEnd(lastRow);\n if (dir < 0) {\n var row = this.getRowFoldStart(firstRow + dir);\n if (row < 0)\n return 0;\n var diff = row - firstRow;\n }\n else if (dir > 0) {\n var row = this.getRowFoldEnd(lastRow + dir);\n if (row > this.doc.getLength() - 1)\n return 0;\n var diff = row - lastRow;\n }\n else {\n firstRow = this.$clipRowToDocument(firstRow);\n lastRow = this.$clipRowToDocument(lastRow);\n var diff = lastRow - firstRow + 1;\n }\n var range = new Range(firstRow, 0, lastRow, Number.MAX_VALUE);\n var folds = this.getFoldsInRange(range).map(function (x) {\n x = x.clone();\n x.start.row += diff;\n x.end.row += diff;\n return x;\n });\n var lines = dir == 0\n ? this.doc.getLines(firstRow, lastRow)\n : this.doc.removeFullLines(firstRow, lastRow);\n this.doc.insertFullLines(firstRow + diff, lines);\n folds.length && this.addFolds(folds);\n return diff;\n };\n EditSession.prototype.moveLinesUp = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, -1);\n };\n EditSession.prototype.moveLinesDown = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 1);\n };\n EditSession.prototype.duplicateLines = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 0);\n };\n EditSession.prototype.$clipRowToDocument = function (row) {\n return Math.max(0, Math.min(row, this.doc.getLength() - 1));\n };\n EditSession.prototype.$clipColumnToRow = function (row, column) {\n if (column < 0)\n return 0;\n return Math.min(this.doc.getLine(row).length, column);\n };\n EditSession.prototype.$clipPositionToDocument = function (row, column) {\n column = Math.max(0, column);\n if (row < 0) {\n row = 0;\n column = 0;\n }\n else {\n var len = this.doc.getLength();\n if (row >= len) {\n row = len - 1;\n column = this.doc.getLine(len - 1).length;\n }\n else {\n column = Math.min(this.doc.getLine(row).length, column);\n }\n }\n return {\n row: row,\n column: column\n };\n };\n EditSession.prototype.$clipRangeToDocument = function (range) {\n if (range.start.row < 0) {\n range.start.row = 0;\n range.start.column = 0;\n }\n else {\n range.start.column = this.$clipColumnToRow(range.start.row, range.start.column);\n }\n var len = this.doc.getLength() - 1;\n if (range.end.row > len) {\n range.end.row = len;\n range.end.column = this.doc.getLine(len).length;\n }\n else {\n range.end.column = this.$clipColumnToRow(range.end.row, range.end.column);\n }\n return range;\n };\n EditSession.prototype.setUseWrapMode = function (useWrapMode) {\n if (useWrapMode != this.$useWrapMode) {\n this.$useWrapMode = useWrapMode;\n this.$modified = true;\n this.$resetRowCache(0);\n if (useWrapMode) {\n var len = this.getLength();\n this.$wrapData = Array(len);\n this.$updateWrapData(0, len - 1);\n }\n this._signal(\"changeWrapMode\");\n }\n };\n EditSession.prototype.getUseWrapMode = function () {\n return this.$useWrapMode;\n };\n EditSession.prototype.setWrapLimitRange = function (min, max) {\n if (this.$wrapLimitRange.min !== min || this.$wrapLimitRange.max !== max) {\n this.$wrapLimitRange = { min: min, max: max };\n this.$modified = true;\n this.$bidiHandler.markAsDirty();\n if (this.$useWrapMode)\n this._signal(\"changeWrapMode\");\n }\n };\n EditSession.prototype.adjustWrapLimit = function (desiredLimit, $printMargin) {\n var limits = this.$wrapLimitRange;\n if (limits.max < 0)\n limits = { min: $printMargin, max: $printMargin };\n var wrapLimit = this.$constrainWrapLimit(desiredLimit, limits.min, limits.max);\n if (wrapLimit != this.$wrapLimit && wrapLimit > 1) {\n this.$wrapLimit = wrapLimit;\n this.$modified = true;\n if (this.$useWrapMode) {\n this.$updateWrapData(0, this.getLength() - 1);\n this.$resetRowCache(0);\n this._signal(\"changeWrapLimit\");\n }\n return true;\n }\n return false;\n };\n EditSession.prototype.$constrainWrapLimit = function (wrapLimit, min, max) {\n if (min)\n wrapLimit = Math.max(min, wrapLimit);\n if (max)\n wrapLimit = Math.min(max, wrapLimit);\n return wrapLimit;\n };\n EditSession.prototype.getWrapLimit = function () {\n return this.$wrapLimit;\n };\n EditSession.prototype.setWrapLimit = function (limit) {\n this.setWrapLimitRange(limit, limit);\n };\n EditSession.prototype.getWrapLimitRange = function () {\n return {\n min: this.$wrapLimitRange.min,\n max: this.$wrapLimitRange.max\n };\n };\n EditSession.prototype.$updateInternalDataOnChange = function (delta) {\n var useWrapMode = this.$useWrapMode;\n var action = delta.action;\n var start = delta.start;\n var end = delta.end;\n var firstRow = start.row;\n var lastRow = end.row;\n var len = lastRow - firstRow;\n var removedFolds = null;\n this.$updating = true;\n if (len != 0) {\n if (action === \"remove\") {\n this[useWrapMode ? \"$wrapData\" : \"$rowLengthCache\"].splice(firstRow, len);\n var foldLines = this.$foldData;\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n var foldLine = this.getFoldLine(end.row);\n var idx = 0;\n if (foldLine) {\n foldLine.addRemoveChars(end.row, end.column, start.column - end.column);\n foldLine.shiftRow(-len);\n var foldLineBefore = this.getFoldLine(firstRow);\n if (foldLineBefore && foldLineBefore !== foldLine) {\n foldLineBefore.merge(foldLine);\n foldLine = foldLineBefore;\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= end.row) {\n foldLine.shiftRow(-len);\n }\n }\n lastRow = firstRow;\n }\n else {\n var args = Array(len);\n args.unshift(firstRow, 0);\n var arr = useWrapMode ? this.$wrapData : this.$rowLengthCache;\n arr.splice.apply(arr, args);\n var foldLines = this.$foldData;\n var foldLine = this.getFoldLine(firstRow);\n var idx = 0;\n if (foldLine) {\n var cmp = foldLine.range.compareInside(start.row, start.column);\n if (cmp == 0) {\n foldLine = foldLine.split(start.row, start.column);\n if (foldLine) {\n foldLine.shiftRow(len);\n foldLine.addRemoveChars(lastRow, 0, end.column - start.column);\n }\n }\n else \n if (cmp == -1) {\n foldLine.addRemoveChars(firstRow, 0, end.column - start.column);\n foldLine.shiftRow(len);\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= firstRow) {\n foldLine.shiftRow(len);\n }\n }\n }\n }\n else {\n len = Math.abs(delta.start.column - delta.end.column);\n if (action === \"remove\") {\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n len = -len;\n }\n var foldLine = this.getFoldLine(firstRow);\n if (foldLine) {\n foldLine.addRemoveChars(firstRow, start.column, len);\n }\n }\n if (useWrapMode && this.$wrapData.length != this.doc.getLength()) {\n console.error(\"doc.getLength() and $wrapData.length have to be the same!\");\n }\n this.$updating = false;\n if (useWrapMode)\n this.$updateWrapData(firstRow, lastRow);\n else\n this.$updateRowLengthCache(firstRow, lastRow);\n return removedFolds;\n };\n EditSession.prototype.$updateRowLengthCache = function (firstRow, lastRow, b) {\n this.$rowLengthCache[firstRow] = null;\n this.$rowLengthCache[lastRow] = null;\n };\n EditSession.prototype.$updateWrapData = function (firstRow, lastRow) {\n var lines = this.doc.getAllLines();\n var tabSize = this.getTabSize();\n var wrapData = this.$wrapData;\n var wrapLimit = this.$wrapLimit;\n var tokens;\n var foldLine;\n var row = firstRow;\n lastRow = Math.min(lastRow, lines.length - 1);\n while (row <= lastRow) {\n foldLine = this.getFoldLine(row, foldLine);\n if (!foldLine) {\n tokens = this.$getDisplayTokens(lines[row]);\n wrapData[row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row++;\n }\n else {\n tokens = [];\n foldLine.walk(function (placeholder, row, column, lastColumn) {\n var walkTokens;\n if (placeholder != null) {\n walkTokens = this.$getDisplayTokens(placeholder, tokens.length);\n walkTokens[0] = PLACEHOLDER_START;\n for (var i = 1; i < walkTokens.length; i++) {\n walkTokens[i] = PLACEHOLDER_BODY;\n }\n }\n else {\n walkTokens = this.$getDisplayTokens(lines[row].substring(lastColumn, column), tokens.length);\n }\n tokens = tokens.concat(walkTokens);\n }.bind(this), foldLine.end.row, lines[foldLine.end.row].length + 1);\n wrapData[foldLine.start.row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row = foldLine.end.row + 1;\n }\n }\n };\n EditSession.prototype.$computeWrapSplits = function (tokens, wrapLimit, tabSize) {\n if (tokens.length == 0) {\n return [];\n }\n var splits = [];\n var displayLength = tokens.length;\n var lastSplit = 0, lastDocSplit = 0;\n var isCode = this.$wrapAsCode;\n var indentedSoftWrap = this.$indentedSoftWrap;\n var maxIndent = wrapLimit <= Math.max(2 * tabSize, 8)\n || indentedSoftWrap === false ? 0 : Math.floor(wrapLimit / 2);\n function getWrapIndent() {\n var indentation = 0;\n if (maxIndent === 0)\n return indentation;\n if (indentedSoftWrap) {\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token == SPACE)\n indentation += 1;\n else if (token == TAB)\n indentation += tabSize;\n else if (token == TAB_SPACE)\n continue;\n else\n break;\n }\n }\n if (isCode && indentedSoftWrap !== false)\n indentation += tabSize;\n return Math.min(indentation, maxIndent);\n }\n function addSplit(screenPos) {\n var len = screenPos - lastSplit;\n for (var i = lastSplit; i < screenPos; i++) {\n var ch = tokens[i];\n if (ch === 12 || ch === 2)\n len -= 1;\n }\n if (!splits.length) {\n indent = getWrapIndent();\n splits.indent = indent;\n }\n lastDocSplit += len;\n splits.push(lastDocSplit);\n lastSplit = screenPos;\n }\n var indent = 0;\n while (displayLength - lastSplit > wrapLimit - indent) {\n var split = lastSplit + wrapLimit - indent;\n if (tokens[split - 1] >= SPACE && tokens[split] >= SPACE) {\n addSplit(split);\n continue;\n }\n if (tokens[split] == PLACEHOLDER_START || tokens[split] == PLACEHOLDER_BODY) {\n for (split; split != lastSplit - 1; split--) {\n if (tokens[split] == PLACEHOLDER_START) {\n break;\n }\n }\n if (split > lastSplit) {\n addSplit(split);\n continue;\n }\n split = lastSplit + wrapLimit;\n for (split; split < tokens.length; split++) {\n if (tokens[split] != PLACEHOLDER_BODY) {\n break;\n }\n }\n if (split == tokens.length) {\n break; // Breaks the while-loop.\n }\n addSplit(split);\n continue;\n }\n var minSplit = Math.max(split - (wrapLimit - (wrapLimit >> 2)), lastSplit - 1);\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split--;\n }\n if (isCode) {\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split--;\n }\n while (split > minSplit && tokens[split] == PUNCTUATION) {\n split--;\n }\n }\n else {\n while (split > minSplit && tokens[split] < SPACE) {\n split--;\n }\n }\n if (split > minSplit) {\n addSplit(++split);\n continue;\n }\n split = lastSplit + wrapLimit;\n if (tokens[split] == CHAR_EXT)\n split--;\n addSplit(split - indent);\n }\n return splits;\n };\n EditSession.prototype.$getDisplayTokens = function (str, offset) {\n var arr = [];\n var tabSize;\n offset = offset || 0;\n for (var i = 0; i < str.length; i++) {\n var c = str.charCodeAt(i);\n if (c == 9) {\n tabSize = this.getScreenTabSize(arr.length + offset);\n arr.push(TAB);\n for (var n = 1; n < tabSize; n++) {\n arr.push(TAB_SPACE);\n }\n }\n else if (c == 32) {\n arr.push(SPACE);\n }\n else if ((c > 39 && c < 48) || (c > 57 && c < 64)) {\n arr.push(PUNCTUATION);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n arr.push(CHAR, CHAR_EXT);\n }\n else {\n arr.push(CHAR);\n }\n }\n return arr;\n };\n EditSession.prototype.$getStringScreenWidth = function (str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn == 0)\n return [0, 0];\n if (maxScreenColumn == null)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charCodeAt(column);\n if (c == 9) {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n screenColumn += 2;\n }\n else {\n screenColumn += 1;\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n return [screenColumn, column];\n };\n EditSession.prototype.getRowLength = function (row) {\n var h = 1;\n if (this.lineWidgets)\n h += this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n if (!this.$useWrapMode || !this.$wrapData[row])\n return h;\n else\n return this.$wrapData[row].length + h;\n };\n EditSession.prototype.getRowLineCount = function (row) {\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1;\n }\n else {\n return this.$wrapData[row].length + 1;\n }\n };\n EditSession.prototype.getRowWrapIndent = function (screenRow) {\n if (this.$useWrapMode) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n var splits = this.$wrapData[pos.row];\n return splits.length && splits[0] < pos.column ? splits.indent : 0;\n }\n else {\n return 0;\n }\n };\n EditSession.prototype.getScreenLastRowColumn = function (screenRow) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n return this.documentToScreenColumn(pos.row, pos.column);\n };\n EditSession.prototype.getDocumentLastRowColumn = function (docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.getScreenLastRowColumn(screenRow);\n };\n EditSession.prototype.getDocumentLastRowColumnPosition = function (docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.screenToDocumentPosition(screenRow, Number.MAX_VALUE / 10);\n };\n EditSession.prototype.getRowSplitData = function (row) {\n if (!this.$useWrapMode) {\n return undefined;\n }\n else {\n return this.$wrapData[row];\n }\n };\n EditSession.prototype.getScreenTabSize = function (screenColumn) {\n return this.$tabSize - (screenColumn % this.$tabSize | 0);\n };\n EditSession.prototype.screenToDocumentRow = function (screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).row;\n };\n EditSession.prototype.screenToDocumentColumn = function (screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).column;\n };\n EditSession.prototype.screenToDocumentPosition = function (screenRow, screenColumn, offsetX) {\n if (screenRow < 0)\n return { row: 0, column: 0 };\n var line;\n var docRow = 0;\n var docColumn = 0;\n var column;\n var row = 0;\n var rowLength = 0;\n var rowCache = this.$screenRowCache;\n var i = this.$getRowCacheIndex(rowCache, screenRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var docRow = this.$docRowCache[i];\n var doCache = screenRow > rowCache[l - 1];\n }\n else {\n var doCache = !l;\n }\n var maxRow = this.getLength() - 1;\n var foldLine = this.getNextFoldLine(docRow);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (row <= screenRow) {\n rowLength = this.getRowLength(docRow);\n if (row + rowLength > screenRow || docRow >= maxRow) {\n break;\n }\n else {\n row += rowLength;\n docRow++;\n if (docRow > foldStart) {\n docRow = foldLine.end.row + 1;\n foldLine = this.getNextFoldLine(docRow, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n }\n if (doCache) {\n this.$docRowCache.push(docRow);\n this.$screenRowCache.push(row);\n }\n }\n if (foldLine && foldLine.start.row <= docRow) {\n line = this.getFoldDisplayLine(foldLine);\n docRow = foldLine.start.row;\n }\n else if (row + rowLength <= screenRow || docRow > maxRow) {\n return {\n row: maxRow,\n column: this.getLine(maxRow).length\n };\n }\n else {\n line = this.getLine(docRow);\n foldLine = null;\n }\n var wrapIndent = 0, splitIndex = Math.floor(screenRow - row);\n if (this.$useWrapMode) {\n var splits = this.$wrapData[docRow];\n if (splits) {\n column = splits[splitIndex];\n if (splitIndex > 0 && splits.length) {\n wrapIndent = splits.indent;\n docColumn = splits[splitIndex - 1] || splits[splits.length - 1];\n line = line.substring(docColumn);\n }\n }\n }\n if (offsetX !== undefined && this.$bidiHandler.isBidiRow(row + splitIndex, docRow, splitIndex))\n screenColumn = this.$bidiHandler.offsetToCol(offsetX);\n docColumn += this.$getStringScreenWidth(line, screenColumn - wrapIndent)[1];\n if (this.$useWrapMode && docColumn >= column)\n docColumn = column - 1;\n if (foldLine)\n return foldLine.idxToPosition(docColumn);\n return { row: docRow, column: docColumn };\n };\n EditSession.prototype.documentToScreenPosition = function (docRow, docColumn) {\n if (typeof docColumn === \"undefined\")\n var pos = this.$clipPositionToDocument(docRow.row, docRow.column);\n else\n pos = this.$clipPositionToDocument(docRow, docColumn);\n docRow = pos.row;\n docColumn = pos.column;\n var screenRow = 0;\n var foldStartRow = null;\n var fold = null;\n fold = this.getFoldAt(docRow, docColumn, 1);\n if (fold) {\n docRow = fold.start.row;\n docColumn = fold.start.column;\n }\n var rowEnd, row = 0;\n var rowCache = this.$docRowCache;\n var i = this.$getRowCacheIndex(rowCache, docRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var screenRow = this.$screenRowCache[i];\n var doCache = docRow > rowCache[l - 1];\n }\n else {\n var doCache = !l;\n }\n var foldLine = this.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (row < docRow) {\n if (row >= foldStart) {\n rowEnd = foldLine.end.row + 1;\n if (rowEnd > docRow)\n break;\n foldLine = this.getNextFoldLine(rowEnd, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n else {\n rowEnd = row + 1;\n }\n screenRow += this.getRowLength(row);\n row = rowEnd;\n if (doCache) {\n this.$docRowCache.push(row);\n this.$screenRowCache.push(screenRow);\n }\n }\n var textLine = \"\";\n if (foldLine && row >= foldStart) {\n textLine = this.getFoldDisplayLine(foldLine, docRow, docColumn);\n foldStartRow = foldLine.start.row;\n }\n else {\n textLine = this.getLine(docRow).substring(0, docColumn);\n foldStartRow = docRow;\n }\n var wrapIndent = 0;\n if (this.$useWrapMode) {\n var wrapRow = this.$wrapData[foldStartRow];\n if (wrapRow) {\n var screenRowOffset = 0;\n while (textLine.length >= wrapRow[screenRowOffset]) {\n screenRow++;\n screenRowOffset++;\n }\n textLine = textLine.substring(wrapRow[screenRowOffset - 1] || 0, textLine.length);\n wrapIndent = screenRowOffset > 0 ? wrapRow.indent : 0;\n }\n }\n if (this.lineWidgets && this.lineWidgets[row] && this.lineWidgets[row].rowsAbove)\n screenRow += this.lineWidgets[row].rowsAbove;\n return {\n row: screenRow,\n column: wrapIndent + this.$getStringScreenWidth(textLine)[0]\n };\n };\n EditSession.prototype.documentToScreenColumn = function (row, docColumn) {\n return this.documentToScreenPosition(row, docColumn).column;\n };\n EditSession.prototype.documentToScreenRow = function (docRow, docColumn) {\n return this.documentToScreenPosition(docRow, docColumn).row;\n };\n EditSession.prototype.getScreenLength = function () {\n var screenRows = 0;\n var fold = null;\n if (!this.$useWrapMode) {\n screenRows = this.getLength();\n var foldData = this.$foldData;\n for (var i = 0; i < foldData.length; i++) {\n fold = foldData[i];\n screenRows -= fold.end.row - fold.start.row;\n }\n }\n else {\n var lastRow = this.$wrapData.length;\n var row = 0, i = 0;\n var fold = this.$foldData[i++];\n var foldStart = fold ? fold.start.row : Infinity;\n while (row < lastRow) {\n var splits = this.$wrapData[row];\n screenRows += splits ? splits.length + 1 : 1;\n row++;\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = this.$foldData[i++];\n foldStart = fold ? fold.start.row : Infinity;\n }\n }\n }\n if (this.lineWidgets)\n screenRows += this.$getWidgetScreenLength();\n return screenRows;\n };\n EditSession.prototype.$setFontMetrics = function (fm) {\n if (!this.$enableVarChar)\n return;\n this.$getStringScreenWidth = function (str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn === 0)\n return [0, 0];\n if (!maxScreenColumn)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charAt(column);\n if (c === \"\\t\") {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else {\n screenColumn += fm.getCharacterWidth(c);\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n return [screenColumn, column];\n };\n };\n EditSession.prototype.destroy = function () {\n if (!this.destroyed) {\n this.bgTokenizer.setDocument(null);\n this.bgTokenizer.cleanup();\n this.destroyed = true;\n }\n this.$stopWorker();\n this.removeAllListeners();\n if (this.doc) {\n this.doc.off(\"change\", this.$onChange);\n }\n this.selection.detach();\n };\n return EditSession;\n}());\nEditSession.$uid = 0;\nEditSession.prototype.$modes = config.$modes;\nEditSession.prototype.getValue = EditSession.prototype.toString;\nEditSession.prototype.$defaultUndoManager = {\n undo: function () { },\n redo: function () { },\n hasUndo: function () { },\n hasRedo: function () { },\n reset: function () { },\n add: function () { },\n addSelection: function () { },\n startNewGroup: function () { },\n addSession: function () { }\n};\nEditSession.prototype.$overwrite = false;\nEditSession.prototype.$mode = null;\nEditSession.prototype.$modeId = null;\nEditSession.prototype.$scrollTop = 0;\nEditSession.prototype.$scrollLeft = 0;\nEditSession.prototype.$wrapLimit = 80;\nEditSession.prototype.$useWrapMode = false;\nEditSession.prototype.$wrapLimitRange = {\n min: null,\n max: null\n};\nEditSession.prototype.lineWidgets = null;\nEditSession.prototype.isFullWidth = isFullWidth;\noop.implement(EditSession.prototype, EventEmitter);\nvar CHAR = 1, CHAR_EXT = 2, PLACEHOLDER_START = 3, PLACEHOLDER_BODY = 4, PUNCTUATION = 9, SPACE = 10, TAB = 11, TAB_SPACE = 12;\nfunction isFullWidth(c) {\n if (c < 0x1100)\n return false;\n return c >= 0x1100 && c <= 0x115F ||\n c >= 0x11A3 && c <= 0x11A7 ||\n c >= 0x11FA && c <= 0x11FF ||\n c >= 0x2329 && c <= 0x232A ||\n c >= 0x2E80 && c <= 0x2E99 ||\n c >= 0x2E9B && c <= 0x2EF3 ||\n c >= 0x2F00 && c <= 0x2FD5 ||\n c >= 0x2FF0 && c <= 0x2FFB ||\n c >= 0x3000 && c <= 0x303E ||\n c >= 0x3041 && c <= 0x3096 ||\n c >= 0x3099 && c <= 0x30FF ||\n c >= 0x3105 && c <= 0x312D ||\n c >= 0x3131 && c <= 0x318E ||\n c >= 0x3190 && c <= 0x31BA ||\n c >= 0x31C0 && c <= 0x31E3 ||\n c >= 0x31F0 && c <= 0x321E ||\n c >= 0x3220 && c <= 0x3247 ||\n c >= 0x3250 && c <= 0x32FE ||\n c >= 0x3300 && c <= 0x4DBF ||\n c >= 0x4E00 && c <= 0xA48C ||\n c >= 0xA490 && c <= 0xA4C6 ||\n c >= 0xA960 && c <= 0xA97C ||\n c >= 0xAC00 && c <= 0xD7A3 ||\n c >= 0xD7B0 && c <= 0xD7C6 ||\n c >= 0xD7CB && c <= 0xD7FB ||\n c >= 0xF900 && c <= 0xFAFF ||\n c >= 0xFE10 && c <= 0xFE19 ||\n c >= 0xFE30 && c <= 0xFE52 ||\n c >= 0xFE54 && c <= 0xFE66 ||\n c >= 0xFE68 && c <= 0xFE6B ||\n c >= 0xFF01 && c <= 0xFF60 ||\n c >= 0xFFE0 && c <= 0xFFE6;\n}\nrequire(\"./edit_session/folding\").Folding.call(EditSession.prototype);\nrequire(\"./edit_session/bracket_match\").BracketMatch.call(EditSession.prototype);\nconfig.defineOptions(EditSession.prototype, \"session\", {\n wrap: {\n set: function (value) {\n if (!value || value == \"off\")\n value = false;\n else if (value == \"free\")\n value = true;\n else if (value == \"printMargin\")\n value = -1;\n else if (typeof value == \"string\")\n value = parseInt(value, 10) || false;\n if (this.$wrap == value)\n return;\n this.$wrap = value;\n if (!value) {\n this.setUseWrapMode(false);\n }\n else {\n var col = typeof value == \"number\" ? value : null;\n this.setWrapLimitRange(col, col);\n this.setUseWrapMode(true);\n }\n },\n get: function () {\n if (this.getUseWrapMode()) {\n if (this.$wrap == -1)\n return \"printMargin\";\n if (!this.getWrapLimitRange().min)\n return \"free\";\n return this.$wrap;\n }\n return \"off\";\n },\n handlesSet: true\n },\n wrapMethod: {\n set: function (val) {\n val = val == \"auto\"\n ? this.$mode.type != \"text\"\n : val != \"text\";\n if (val != this.$wrapAsCode) {\n this.$wrapAsCode = val;\n if (this.$useWrapMode) {\n this.$useWrapMode = false;\n this.setUseWrapMode(true);\n }\n }\n },\n initialValue: \"auto\"\n },\n indentedSoftWrap: {\n set: function () {\n if (this.$useWrapMode) {\n this.$useWrapMode = false;\n this.setUseWrapMode(true);\n }\n },\n initialValue: true\n },\n firstLineNumber: {\n set: function () { this._signal(\"changeBreakpoint\"); },\n initialValue: 1\n },\n useWorker: {\n set: function (useWorker) {\n this.$useWorker = useWorker;\n this.$stopWorker();\n if (useWorker)\n this.$startWorker();\n },\n initialValue: true\n },\n useSoftTabs: { initialValue: true },\n tabSize: {\n set: function (tabSize) {\n tabSize = parseInt(tabSize);\n if (tabSize > 0 && this.$tabSize !== tabSize) {\n this.$modified = true;\n this.$rowLengthCache = [];\n this.$tabSize = tabSize;\n this._signal(\"changeTabSize\");\n }\n },\n initialValue: 4,\n handlesSet: true\n },\n navigateWithinSoftTabs: { initialValue: false },\n foldStyle: {\n set: function (val) { this.setFoldStyle(val); },\n handlesSet: true\n },\n overwrite: {\n set: function (val) { this._signal(\"changeOverwrite\"); },\n initialValue: false\n },\n newLineMode: {\n set: function (val) { this.doc.setNewLineMode(val); },\n get: function () { return this.doc.getNewLineMode(); },\n handlesSet: true\n },\n mode: {\n set: function (val) { this.setMode(val); },\n get: function () { return this.$modeId; },\n handlesSet: true\n }\n});\nexports.EditSession = EditSession;\n\n});\n\nace.define(\"ace/search\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"./lib/lang\");\nvar oop = require(\"./lib/oop\");\nvar Range = require(\"./range\").Range;\nvar Search = /** @class */ (function () {\n function Search() {\n this.$options = {};\n }\n Search.prototype.set = function (options) {\n oop.mixin(this.$options, options);\n return this;\n };\n Search.prototype.getOptions = function () {\n return lang.copyObject(this.$options);\n };\n Search.prototype.setOptions = function (options) {\n this.$options = options;\n };\n Search.prototype.find = function (session) {\n var options = this.$options;\n var iterator = this.$matchIterator(session, options);\n if (!iterator)\n return false;\n var firstRange = null;\n iterator.forEach(function (sr, sc, er, ec) {\n firstRange = new Range(sr, sc, er, ec);\n if (sc == ec && options.start && options.start.start\n && options.skipCurrent != false && firstRange.isEqual(options.start)) {\n firstRange = null;\n return false;\n }\n return true;\n });\n return firstRange;\n };\n Search.prototype.findAll = function (session) {\n var options = this.$options;\n if (!options.needle)\n return [];\n this.$assembleRegExp(options);\n var range = options.range;\n var lines = range\n ? session.getLines(range.start.row, range.end.row)\n : session.doc.getAllLines();\n var ranges = [];\n var re = options.re;\n if (options.$isMultiLine) {\n var len = re.length;\n var maxRow = lines.length - len;\n var prevRange;\n outer: for (var row = re.offset || 0; row <= maxRow; row++) {\n for (var j = 0; j < len; j++)\n if (lines[row + j].search(re[j]) == -1)\n continue outer;\n var startLine = lines[row];\n var line = lines[row + len - 1];\n var startIndex = startLine.length - startLine.match(re[0])[0].length;\n var endIndex = line.match(re[len - 1])[0].length;\n if (prevRange && prevRange.end.row === row &&\n prevRange.end.column > startIndex) {\n continue;\n }\n ranges.push(prevRange = new Range(row, startIndex, row + len - 1, endIndex));\n if (len > 2)\n row = row + len - 2;\n }\n }\n else {\n for (var i = 0; i < lines.length; i++) {\n var matches = lang.getMatchOffsets(lines[i], re);\n for (var j = 0; j < matches.length; j++) {\n var match = matches[j];\n ranges.push(new Range(i, match.offset, i, match.offset + match.length));\n }\n }\n }\n if (range) {\n var startColumn = range.start.column;\n var endColumn = range.end.column;\n var i = 0, j = ranges.length - 1;\n while (i < j && ranges[i].start.column < startColumn && ranges[i].start.row == 0)\n i++;\n var endRow = range.end.row - range.start.row;\n while (i < j && ranges[j].end.column > endColumn && ranges[j].end.row == endRow)\n j--;\n ranges = ranges.slice(i, j + 1);\n for (i = 0, j = ranges.length; i < j; i++) {\n ranges[i].start.row += range.start.row;\n ranges[i].end.row += range.start.row;\n }\n }\n return ranges;\n };\n Search.prototype.replace = function (input, replacement) {\n var options = this.$options;\n var re = this.$assembleRegExp(options);\n if (options.$isMultiLine)\n return replacement;\n if (!re)\n return;\n var match = re.exec(input);\n if (!match || match[0].length != input.length)\n return null;\n replacement = input.replace(re, replacement);\n if (options.preserveCase) {\n replacement = replacement.split(\"\");\n for (var i = Math.min(input.length, input.length); i--;) {\n var ch = input[i];\n if (ch && ch.toLowerCase() != ch)\n replacement[i] = replacement[i].toUpperCase();\n else\n replacement[i] = replacement[i].toLowerCase();\n }\n replacement = replacement.join(\"\");\n }\n return replacement;\n };\n Search.prototype.$assembleRegExp = function (options, $disableFakeMultiline) {\n if (options.needle instanceof RegExp)\n return options.re = options.needle;\n var needle = options.needle;\n if (!options.needle)\n return options.re = false;\n if (!options.regExp)\n needle = lang.escapeRegExp(needle);\n var modifier = options.caseSensitive ? \"gm\" : \"gmi\";\n try {\n new RegExp(needle, \"u\");\n options.$supportsUnicodeFlag = true;\n modifier += \"u\";\n }\n catch (e) {\n options.$supportsUnicodeFlag = false; //left for backward compatibility with previous versions for cases like /ab\\{2}/gu\n }\n if (options.wholeWord)\n needle = addWordBoundary(needle, options);\n options.$isMultiLine = !$disableFakeMultiline && /[\\n\\r]/.test(needle);\n if (options.$isMultiLine)\n return options.re = this.$assembleMultilineRegExp(needle, modifier);\n try {\n var re = new RegExp(needle, modifier);\n }\n catch (e) {\n re = false;\n }\n return options.re = re;\n };\n Search.prototype.$assembleMultilineRegExp = function (needle, modifier) {\n var parts = needle.replace(/\\r\\n|\\r|\\n/g, \"$\\n^\").split(\"\\n\");\n var re = [];\n for (var i = 0; i < parts.length; i++)\n try {\n re.push(new RegExp(parts[i], modifier));\n }\n catch (e) {\n return false;\n }\n return re;\n };\n Search.prototype.$matchIterator = function (session, options) {\n var re = this.$assembleRegExp(options);\n if (!re)\n return false;\n var backwards = options.backwards == true;\n var skipCurrent = options.skipCurrent != false;\n var supportsUnicodeFlag = re.unicode;\n var range = options.range;\n var start = options.start;\n if (!start)\n start = range ? range[backwards ? \"end\" : \"start\"] : session.selection.getRange();\n if (start.start)\n start = start[skipCurrent != backwards ? \"end\" : \"start\"];\n var firstRow = range ? range.start.row : 0;\n var lastRow = range ? range.end.row : session.getLength() - 1;\n if (backwards) {\n var forEach = function (callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row--; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = lastRow, firstRow = start.row; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n };\n }\n else {\n var forEach = function (callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row = row + 1; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = firstRow, lastRow = start.row; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n };\n }\n if (options.$isMultiLine) {\n var len = re.length;\n var forEachInLine = function (row, offset, callback) {\n var startRow = backwards ? row - len + 1 : row;\n if (startRow < 0 || startRow + len > session.getLength())\n return;\n var line = session.getLine(startRow);\n var startIndex = line.search(re[0]);\n if (!backwards && startIndex < offset || startIndex === -1)\n return;\n for (var i = 1; i < len; i++) {\n line = session.getLine(startRow + i);\n if (line.search(re[i]) == -1)\n return;\n }\n var endIndex = line.match(re[len - 1])[0].length;\n if (backwards && endIndex > offset)\n return;\n if (callback(startRow, startIndex, startRow + len - 1, endIndex))\n return true;\n };\n }\n else if (backwards) {\n var forEachInLine = function (row, endIndex, callback) {\n var line = session.getLine(row);\n var matches = [];\n var m, last = 0;\n re.lastIndex = 0;\n while ((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (!length) {\n if (last >= line.length)\n break;\n re.lastIndex = last += lang.skipEmptyMatch(line, last, supportsUnicodeFlag);\n }\n if (m.index + length > endIndex)\n break;\n matches.push(m.index, length);\n }\n for (var i = matches.length - 1; i >= 0; i -= 2) {\n var column = matches[i - 1];\n var length = matches[i];\n if (callback(row, column, row, column + length))\n return true;\n }\n };\n }\n else {\n var forEachInLine = function (row, startIndex, callback) {\n var line = session.getLine(row);\n var last;\n var m;\n re.lastIndex = startIndex;\n while ((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (callback(row, last, row, last + length))\n return true;\n if (!length) {\n re.lastIndex = last += lang.skipEmptyMatch(line, last, supportsUnicodeFlag);\n if (last >= line.length)\n return false;\n }\n }\n };\n }\n return { forEach: forEach };\n };\n return Search;\n}());\nfunction addWordBoundary(needle, options) {\n var supportsLookbehind = lang.supportsLookbehind();\n function wordBoundary(c, firstChar) {\n if (firstChar === void 0) { firstChar = true; }\n var wordRegExp = supportsLookbehind && options.$supportsUnicodeFlag ? new RegExp(\"[\\\\p{L}\\\\p{N}_]\", \"u\") : new RegExp(\"\\\\w\");\n if (wordRegExp.test(c) || options.regExp) {\n if (supportsLookbehind && options.$supportsUnicodeFlag) {\n if (firstChar)\n return \"(?<=^|[^\\\\p{L}\\\\p{N}_])\";\n return \"(?=[^\\\\p{L}\\\\p{N}_]|$)\";\n }\n return \"\\\\b\";\n }\n return \"\";\n }\n var needleArray = Array.from(needle);\n var firstChar = needleArray[0];\n var lastChar = needleArray[needleArray.length - 1];\n return wordBoundary(firstChar) + needle + wordBoundary(lastChar, false);\n}\nexports.Search = Search;\n\n});\n\nace.define(\"ace/keyboard/hash_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar keyUtil = require(\"../lib/keys\");\nvar useragent = require(\"../lib/useragent\");\nvar KEY_MODS = keyUtil.KEY_MODS;\nvar MultiHashHandler = /** @class */ (function () {\n function MultiHashHandler(config, platform) {\n this.$init(config, platform, false);\n }\n MultiHashHandler.prototype.$init = function (config, platform, $singleCommand) {\n this.platform = platform || (useragent.isMac ? \"mac\" : \"win\");\n this.commands = {};\n this.commandKeyBinding = {};\n this.addCommands(config);\n this.$singleCommand = $singleCommand;\n };\n MultiHashHandler.prototype.addCommand = function (command) {\n if (this.commands[command.name])\n this.removeCommand(command);\n this.commands[command.name] = command;\n if (command.bindKey)\n this._buildKeyHash(command);\n };\n MultiHashHandler.prototype.removeCommand = function (command, keepCommand) {\n var name = command && (typeof command === 'string' ? command : command.name);\n command = this.commands[name];\n if (!keepCommand)\n delete this.commands[name];\n var ckb = this.commandKeyBinding;\n for (var keyId in ckb) {\n var cmdGroup = ckb[keyId];\n if (cmdGroup == command) {\n delete ckb[keyId];\n }\n else if (Array.isArray(cmdGroup)) {\n var i = cmdGroup.indexOf(command);\n if (i != -1) {\n cmdGroup.splice(i, 1);\n if (cmdGroup.length == 1)\n ckb[keyId] = cmdGroup[0];\n }\n }\n }\n };\n MultiHashHandler.prototype.bindKey = function (key, command, position) {\n if (typeof key == \"object\" && key) {\n if (position == undefined)\n position = key.position;\n key = key[this.platform];\n }\n if (!key)\n return;\n if (typeof command == \"function\")\n return this.addCommand({ exec: command, bindKey: key, name: command.name || key });\n key.split(\"|\").forEach(function (keyPart) {\n var chain = \"\";\n if (keyPart.indexOf(\" \") != -1) {\n var parts = keyPart.split(/\\s+/);\n keyPart = parts.pop();\n parts.forEach(function (keyPart) {\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n chain += (chain ? \" \" : \"\") + id;\n this._addCommandToBinding(chain, \"chainKeys\");\n }, this);\n chain += \" \";\n }\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n this._addCommandToBinding(chain + id, command, position);\n }, this);\n };\n MultiHashHandler.prototype._addCommandToBinding = function (keyId, command, position) {\n var ckb = this.commandKeyBinding, i;\n if (!command) {\n delete ckb[keyId];\n }\n else if (!ckb[keyId] || this.$singleCommand) {\n ckb[keyId] = command;\n }\n else {\n if (!Array.isArray(ckb[keyId])) {\n ckb[keyId] = [ckb[keyId]];\n }\n else if ((i = ckb[keyId].indexOf(command)) != -1) {\n ckb[keyId].splice(i, 1);\n }\n if (typeof position != \"number\") {\n position = getPosition(command);\n }\n var commands = ckb[keyId];\n for (i = 0; i < commands.length; i++) {\n var other = commands[i];\n var otherPos = getPosition(other);\n if (otherPos > position)\n break;\n }\n commands.splice(i, 0, command);\n }\n };\n MultiHashHandler.prototype.addCommands = function (commands) {\n commands && Object.keys(commands).forEach(function (name) {\n var command = commands[name];\n if (!command)\n return;\n if (typeof command === \"string\")\n return this.bindKey(command, name);\n if (typeof command === \"function\")\n command = { exec: command };\n if (typeof command !== \"object\")\n return;\n if (!command.name)\n command.name = name;\n this.addCommand(command);\n }, this);\n };\n MultiHashHandler.prototype.removeCommands = function (commands) {\n Object.keys(commands).forEach(function (name) {\n this.removeCommand(commands[name]);\n }, this);\n };\n MultiHashHandler.prototype.bindKeys = function (keyList) {\n Object.keys(keyList).forEach(function (key) {\n this.bindKey(key, keyList[key]);\n }, this);\n };\n MultiHashHandler.prototype._buildKeyHash = function (command) {\n this.bindKey(command.bindKey, command);\n };\n MultiHashHandler.prototype.parseKeys = function (keys) {\n var parts = keys.toLowerCase().split(/[\\-\\+]([\\-\\+])?/).filter(function (x) { return x; });\n var key = parts.pop();\n var keyCode = keyUtil[key];\n if (keyUtil.FUNCTION_KEYS[keyCode])\n key = keyUtil.FUNCTION_KEYS[keyCode].toLowerCase();\n else if (!parts.length)\n return { key: key, hashId: -1 };\n else if (parts.length == 1 && parts[0] == \"shift\")\n return { key: key.toUpperCase(), hashId: -1 };\n var hashId = 0;\n for (var i = parts.length; i--;) {\n var modifier = keyUtil.KEY_MODS[parts[i]];\n if (modifier == null) {\n if (typeof console != \"undefined\")\n console.error(\"invalid modifier \" + parts[i] + \" in \" + keys);\n return false;\n }\n hashId |= modifier;\n }\n return { key: key, hashId: hashId };\n };\n MultiHashHandler.prototype.findKeyCommand = function (hashId, keyString) {\n var key = KEY_MODS[hashId] + keyString;\n return this.commandKeyBinding[key];\n };\n MultiHashHandler.prototype.handleKeyboard = function (data, hashId, keyString, keyCode) {\n if (keyCode < 0)\n return;\n var key = KEY_MODS[hashId] + keyString;\n var command = this.commandKeyBinding[key];\n if (data.$keyChain) {\n data.$keyChain += \" \" + key;\n command = this.commandKeyBinding[data.$keyChain] || command;\n }\n if (command) {\n if (command == \"chainKeys\" || command[command.length - 1] == \"chainKeys\") {\n data.$keyChain = data.$keyChain || key;\n return { command: \"null\" };\n }\n }\n if (data.$keyChain) {\n if ((!hashId || hashId == 4) && keyString.length == 1)\n data.$keyChain = data.$keyChain.slice(0, -key.length - 1); // wait for input\n else if (hashId == -1 || keyCode > 0)\n data.$keyChain = \"\"; // reset keyChain\n }\n return { command: command };\n };\n MultiHashHandler.prototype.getStatusText = function (editor, data) {\n return data.$keyChain || \"\";\n };\n return MultiHashHandler;\n}());\nfunction getPosition(command) {\n return typeof command == \"object\" && command.bindKey\n && command.bindKey.position\n || (command.isDefault ? -100 : 0);\n}\nvar HashHandler = /** @class */ (function (_super) {\n __extends(HashHandler, _super);\n function HashHandler(config, platform) {\n var _this = _super.call(this, config, platform) || this;\n _this.$singleCommand = true;\n return _this;\n }\n return HashHandler;\n}(MultiHashHandler));\nHashHandler.call = function (thisArg, config, platform) {\n MultiHashHandler.prototype.$init.call(thisArg, config, platform, true);\n};\nMultiHashHandler.call = function (thisArg, config, platform) {\n MultiHashHandler.prototype.$init.call(thisArg, config, platform, false);\n};\nexports.HashHandler = HashHandler;\nexports.MultiHashHandler = MultiHashHandler;\n\n});\n\nace.define(\"ace/commands/command_manager\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"../lib/oop\");\nvar MultiHashHandler = require(\"../keyboard/hash_handler\").MultiHashHandler;\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar CommandManager = /** @class */ (function (_super) {\n __extends(CommandManager, _super);\n function CommandManager(platform, commands) {\n var _this = _super.call(this, commands, platform) || this;\n _this.byName = _this.commands;\n _this.setDefaultHandler(\"exec\", function (e) {\n if (!e.args) {\n return e.command.exec(e.editor, {}, e.event, true);\n }\n return e.command.exec(e.editor, e.args, e.event, false);\n });\n return _this;\n }\n CommandManager.prototype.exec = function (command, editor, args) {\n if (Array.isArray(command)) {\n for (var i = command.length; i--;) {\n if (this.exec(command[i], editor, args))\n return true;\n }\n return false;\n }\n if (typeof command === \"string\")\n command = this.commands[command];\n if (!command)\n return false;\n if (editor && editor.$readOnly && !command.readOnly)\n return false;\n if (this.$checkCommandState != false && command.isAvailable && !command.isAvailable(editor))\n return false;\n var e = { editor: editor, command: command, args: args };\n e.returnValue = this._emit(\"exec\", e);\n this._signal(\"afterExec\", e);\n return e.returnValue === false ? false : true;\n };\n CommandManager.prototype.toggleRecording = function (editor) {\n if (this.$inReplay)\n return;\n editor && editor._emit(\"changeStatus\");\n if (this.recording) {\n this.macro.pop();\n this.off(\"exec\", this.$addCommandToMacro);\n if (!this.macro.length)\n this.macro = this.oldMacro;\n return this.recording = false;\n }\n if (!this.$addCommandToMacro) {\n this.$addCommandToMacro = function (e) {\n this.macro.push([e.command, e.args]);\n }.bind(this);\n }\n this.oldMacro = this.macro;\n this.macro = [];\n this.on(\"exec\", this.$addCommandToMacro);\n return this.recording = true;\n };\n CommandManager.prototype.replay = function (editor) {\n if (this.$inReplay || !this.macro)\n return;\n if (this.recording)\n return this.toggleRecording(editor);\n try {\n this.$inReplay = true;\n this.macro.forEach(function (x) {\n if (typeof x == \"string\")\n this.exec(x, editor);\n else\n this.exec(x[0], editor, x[1]);\n }, this);\n }\n finally {\n this.$inReplay = false;\n }\n };\n CommandManager.prototype.trimMacro = function (m) {\n return m.map(function (x) {\n if (typeof x[0] != \"string\")\n x[0] = x[0].name;\n if (!x[1])\n x = x[0];\n return x;\n });\n };\n return CommandManager;\n}(MultiHashHandler));\noop.implement(CommandManager.prototype, EventEmitter);\nexports.CommandManager = CommandManager;\n\n});\n\nace.define(\"ace/commands/default_commands\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/config\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"../lib/lang\");\nvar config = require(\"../config\");\nvar Range = require(\"../range\").Range;\nfunction bindKey(win, mac) {\n return { win: win, mac: mac };\n}\nexports.commands = [{\n name: \"showSettingsMenu\",\n description: \"Show settings menu\",\n bindKey: bindKey(\"Ctrl-,\", \"Command-,\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/settings_menu\", function (module) {\n module.init(editor);\n editor.showSettingsMenu();\n });\n },\n readOnly: true\n }, {\n name: \"goToNextError\",\n description: \"Go to next error\",\n bindKey: bindKey(\"Alt-E\", \"F4\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/error_marker\", function (module) {\n module.showErrorMarker(editor, 1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"goToPreviousError\",\n description: \"Go to previous error\",\n bindKey: bindKey(\"Alt-Shift-E\", \"Shift-F4\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/error_marker\", function (module) {\n module.showErrorMarker(editor, -1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"selectall\",\n description: \"Select all\",\n bindKey: bindKey(\"Ctrl-A\", \"Command-A\"),\n exec: function (editor) { editor.selectAll(); },\n readOnly: true\n }, {\n name: \"centerselection\",\n description: \"Center selection\",\n bindKey: bindKey(null, \"Ctrl-L\"),\n exec: function (editor) { editor.centerSelection(); },\n readOnly: true\n }, {\n name: \"gotoline\",\n description: \"Go to line...\",\n bindKey: bindKey(\"Ctrl-L\", \"Command-L\"),\n exec: function (editor, line) {\n if (typeof line === \"number\" && !isNaN(line))\n editor.gotoLine(line);\n editor.prompt({ $type: \"gotoLine\" });\n },\n readOnly: true\n }, {\n name: \"fold\",\n bindKey: bindKey(\"Alt-L|Ctrl-F1\", \"Command-Alt-L|Command-F1\"),\n exec: function (editor) { editor.session.toggleFold(false); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"unfold\",\n bindKey: bindKey(\"Alt-Shift-L|Ctrl-Shift-F1\", \"Command-Alt-Shift-L|Command-Shift-F1\"),\n exec: function (editor) { editor.session.toggleFold(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"toggleFoldWidget\",\n description: \"Toggle fold widget\",\n bindKey: bindKey(\"F2\", \"F2\"),\n exec: function (editor) { editor.session.toggleFoldWidget(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"toggleParentFoldWidget\",\n description: \"Toggle parent fold widget\",\n bindKey: bindKey(\"Alt-F2\", \"Alt-F2\"),\n exec: function (editor) { editor.session.toggleFoldWidget(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldall\",\n description: \"Fold all\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function (editor) { editor.session.foldAll(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldAllComments\",\n description: \"Fold all comments\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function (editor) { editor.session.foldAllComments(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldOther\",\n description: \"Fold other\",\n bindKey: bindKey(\"Alt-0\", \"Command-Option-0\"),\n exec: function (editor) {\n editor.session.foldAll();\n editor.session.unfold(editor.selection.getAllRanges());\n },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"unfoldall\",\n description: \"Unfold all\",\n bindKey: bindKey(\"Alt-Shift-0\", \"Command-Option-Shift-0\"),\n exec: function (editor) { editor.session.unfold(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"findnext\",\n description: \"Find next\",\n bindKey: bindKey(\"Ctrl-K\", \"Command-G\"),\n exec: function (editor) { editor.findNext(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"findprevious\",\n description: \"Find previous\",\n bindKey: bindKey(\"Ctrl-Shift-K\", \"Command-Shift-G\"),\n exec: function (editor) { editor.findPrevious(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"selectOrFindNext\",\n description: \"Select or find next\",\n bindKey: bindKey(\"Alt-K\", \"Ctrl-G\"),\n exec: function (editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findNext();\n },\n readOnly: true\n }, {\n name: \"selectOrFindPrevious\",\n description: \"Select or find previous\",\n bindKey: bindKey(\"Alt-Shift-K\", \"Ctrl-Shift-G\"),\n exec: function (editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findPrevious();\n },\n readOnly: true\n }, {\n name: \"find\",\n description: \"Find\",\n bindKey: bindKey(\"Ctrl-F\", \"Command-F\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/searchbox\", function (e) { e.Search(editor); });\n },\n readOnly: true\n }, {\n name: \"overwrite\",\n description: \"Overwrite\",\n bindKey: \"Insert\",\n exec: function (editor) { editor.toggleOverwrite(); },\n readOnly: true\n }, {\n name: \"selecttostart\",\n description: \"Select to start\",\n bindKey: bindKey(\"Ctrl-Shift-Home\", \"Command-Shift-Home|Command-Shift-Up\"),\n exec: function (editor) { editor.getSelection().selectFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"gotostart\",\n description: \"Go to start\",\n bindKey: bindKey(\"Ctrl-Home\", \"Command-Home|Command-Up\"),\n exec: function (editor) { editor.navigateFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"selectup\",\n description: \"Select up\",\n bindKey: bindKey(\"Shift-Up\", \"Shift-Up|Ctrl-Shift-P\"),\n exec: function (editor) { editor.getSelection().selectUp(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"golineup\",\n description: \"Go line up\",\n bindKey: bindKey(\"Up\", \"Up|Ctrl-P\"),\n exec: function (editor, args) { editor.navigateUp(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttoend\",\n description: \"Select to end\",\n bindKey: bindKey(\"Ctrl-Shift-End\", \"Command-Shift-End|Command-Shift-Down\"),\n exec: function (editor) { editor.getSelection().selectFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"gotoend\",\n description: \"Go to end\",\n bindKey: bindKey(\"Ctrl-End\", \"Command-End|Command-Down\"),\n exec: function (editor) { editor.navigateFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"selectdown\",\n description: \"Select down\",\n bindKey: bindKey(\"Shift-Down\", \"Shift-Down|Ctrl-Shift-N\"),\n exec: function (editor) { editor.getSelection().selectDown(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"golinedown\",\n description: \"Go line down\",\n bindKey: bindKey(\"Down\", \"Down|Ctrl-N\"),\n exec: function (editor, args) { editor.navigateDown(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectwordleft\",\n description: \"Select word left\",\n bindKey: bindKey(\"Ctrl-Shift-Left\", \"Option-Shift-Left\"),\n exec: function (editor) { editor.getSelection().selectWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotowordleft\",\n description: \"Go to word left\",\n bindKey: bindKey(\"Ctrl-Left\", \"Option-Left\"),\n exec: function (editor) { editor.navigateWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttolinestart\",\n description: \"Select to line start\",\n bindKey: bindKey(\"Alt-Shift-Left\", \"Command-Shift-Left|Ctrl-Shift-A\"),\n exec: function (editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotolinestart\",\n description: \"Go to line start\",\n bindKey: bindKey(\"Alt-Left|Home\", \"Command-Left|Home|Ctrl-A\"),\n exec: function (editor) { editor.navigateLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectleft\",\n description: \"Select left\",\n bindKey: bindKey(\"Shift-Left\", \"Shift-Left|Ctrl-Shift-B\"),\n exec: function (editor) { editor.getSelection().selectLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotoleft\",\n description: \"Go to left\",\n bindKey: bindKey(\"Left\", \"Left|Ctrl-B\"),\n exec: function (editor, args) { editor.navigateLeft(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectwordright\",\n description: \"Select word right\",\n bindKey: bindKey(\"Ctrl-Shift-Right\", \"Option-Shift-Right\"),\n exec: function (editor) { editor.getSelection().selectWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotowordright\",\n description: \"Go to word right\",\n bindKey: bindKey(\"Ctrl-Right\", \"Option-Right\"),\n exec: function (editor) { editor.navigateWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttolineend\",\n description: \"Select to line end\",\n bindKey: bindKey(\"Alt-Shift-Right\", \"Command-Shift-Right|Shift-End|Ctrl-Shift-E\"),\n exec: function (editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotolineend\",\n description: \"Go to line end\",\n bindKey: bindKey(\"Alt-Right|End\", \"Command-Right|End|Ctrl-E\"),\n exec: function (editor) { editor.navigateLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectright\",\n description: \"Select right\",\n bindKey: bindKey(\"Shift-Right\", \"Shift-Right\"),\n exec: function (editor) { editor.getSelection().selectRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotoright\",\n description: \"Go to right\",\n bindKey: bindKey(\"Right\", \"Right|Ctrl-F\"),\n exec: function (editor, args) { editor.navigateRight(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectpagedown\",\n description: \"Select page down\",\n bindKey: \"Shift-PageDown\",\n exec: function (editor) { editor.selectPageDown(); },\n readOnly: true\n }, {\n name: \"pagedown\",\n description: \"Page down\",\n bindKey: bindKey(null, \"Option-PageDown\"),\n exec: function (editor) { editor.scrollPageDown(); },\n readOnly: true\n }, {\n name: \"gotopagedown\",\n description: \"Go to page down\",\n bindKey: bindKey(\"PageDown\", \"PageDown|Ctrl-V\"),\n exec: function (editor) { editor.gotoPageDown(); },\n readOnly: true\n }, {\n name: \"selectpageup\",\n description: \"Select page up\",\n bindKey: \"Shift-PageUp\",\n exec: function (editor) { editor.selectPageUp(); },\n readOnly: true\n }, {\n name: \"pageup\",\n description: \"Page up\",\n bindKey: bindKey(null, \"Option-PageUp\"),\n exec: function (editor) { editor.scrollPageUp(); },\n readOnly: true\n }, {\n name: \"gotopageup\",\n description: \"Go to page up\",\n bindKey: \"PageUp\",\n exec: function (editor) { editor.gotoPageUp(); },\n readOnly: true\n }, {\n name: \"scrollup\",\n description: \"Scroll up\",\n bindKey: bindKey(\"Ctrl-Up\", null),\n exec: function (e) { e.renderer.scrollBy(0, -2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n }, {\n name: \"scrolldown\",\n description: \"Scroll down\",\n bindKey: bindKey(\"Ctrl-Down\", null),\n exec: function (e) { e.renderer.scrollBy(0, 2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n }, {\n name: \"selectlinestart\",\n description: \"Select line start\",\n bindKey: \"Shift-Home\",\n exec: function (editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectlineend\",\n description: \"Select line end\",\n bindKey: \"Shift-End\",\n exec: function (editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"togglerecording\",\n description: \"Toggle recording\",\n bindKey: bindKey(\"Ctrl-Alt-E\", \"Command-Option-E\"),\n exec: function (editor) { editor.commands.toggleRecording(editor); },\n readOnly: true\n }, {\n name: \"replaymacro\",\n description: \"Replay macro\",\n bindKey: bindKey(\"Ctrl-Shift-E\", \"Command-Shift-E\"),\n exec: function (editor) { editor.commands.replay(editor); },\n readOnly: true\n }, {\n name: \"jumptomatching\",\n description: \"Jump to matching\",\n bindKey: bindKey(\"Ctrl-\\\\|Ctrl-P\", \"Command-\\\\\"),\n exec: function (editor) { editor.jumpToMatching(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"selecttomatching\",\n description: \"Select to matching\",\n bindKey: bindKey(\"Ctrl-Shift-\\\\|Ctrl-Shift-P\", \"Command-Shift-\\\\\"),\n exec: function (editor) { editor.jumpToMatching(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"expandToMatching\",\n description: \"Expand to matching\",\n bindKey: bindKey(\"Ctrl-Shift-M\", \"Ctrl-Shift-M\"),\n exec: function (editor) { editor.jumpToMatching(true, true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"passKeysToBrowser\",\n description: \"Pass keys to browser\",\n bindKey: bindKey(null, null),\n exec: function () { },\n passEvent: true,\n readOnly: true\n }, {\n name: \"copy\",\n description: \"Copy\",\n exec: function (editor) {\n },\n readOnly: true\n },\n {\n name: \"cut\",\n description: \"Cut\",\n exec: function (editor) {\n var cutLine = editor.$copyWithEmptySelection && editor.selection.isEmpty();\n var range = cutLine ? editor.selection.getLineRange() : editor.selection.getRange();\n editor._emit(\"cut\", range);\n if (!range.isEmpty())\n editor.session.remove(range);\n editor.clearSelection();\n },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"paste\",\n description: \"Paste\",\n exec: function (editor, args) {\n editor.$handlePaste(args);\n },\n scrollIntoView: \"cursor\"\n }, {\n name: \"removeline\",\n description: \"Remove line\",\n bindKey: bindKey(\"Ctrl-D\", \"Command-D\"),\n exec: function (editor) { editor.removeLines(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEachLine\"\n }, {\n name: \"duplicateSelection\",\n description: \"Duplicate selection\",\n bindKey: bindKey(\"Ctrl-Shift-D\", \"Command-Shift-D\"),\n exec: function (editor) { editor.duplicateSelection(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"sortlines\",\n description: \"Sort lines\",\n bindKey: bindKey(\"Ctrl-Alt-S\", \"Command-Alt-S\"),\n exec: function (editor) { editor.sortLines(); },\n scrollIntoView: \"selection\",\n multiSelectAction: \"forEachLine\"\n }, {\n name: \"togglecomment\",\n description: \"Toggle comment\",\n bindKey: bindKey(\"Ctrl-/\", \"Command-/\"),\n exec: function (editor) { editor.toggleCommentLines(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"toggleBlockComment\",\n description: \"Toggle block comment\",\n bindKey: bindKey(\"Ctrl-Shift-/\", \"Command-Shift-/\"),\n exec: function (editor) { editor.toggleBlockComment(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"modifyNumberUp\",\n description: \"Modify number up\",\n bindKey: bindKey(\"Ctrl-Shift-Up\", \"Alt-Shift-Up\"),\n exec: function (editor) { editor.modifyNumber(1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"modifyNumberDown\",\n description: \"Modify number down\",\n bindKey: bindKey(\"Ctrl-Shift-Down\", \"Alt-Shift-Down\"),\n exec: function (editor) { editor.modifyNumber(-1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"replace\",\n description: \"Replace\",\n bindKey: bindKey(\"Ctrl-H\", \"Command-Option-F\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/searchbox\", function (e) { e.Search(editor, true); });\n }\n }, {\n name: \"undo\",\n description: \"Undo\",\n bindKey: bindKey(\"Ctrl-Z\", \"Command-Z\"),\n exec: function (editor) { editor.undo(); }\n }, {\n name: \"redo\",\n description: \"Redo\",\n bindKey: bindKey(\"Ctrl-Shift-Z|Ctrl-Y\", \"Command-Shift-Z|Command-Y\"),\n exec: function (editor) { editor.redo(); }\n }, {\n name: \"copylinesup\",\n description: \"Copy lines up\",\n bindKey: bindKey(\"Alt-Shift-Up\", \"Command-Option-Up\"),\n exec: function (editor) { editor.copyLinesUp(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"movelinesup\",\n description: \"Move lines up\",\n bindKey: bindKey(\"Alt-Up\", \"Option-Up\"),\n exec: function (editor) { editor.moveLinesUp(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"copylinesdown\",\n description: \"Copy lines down\",\n bindKey: bindKey(\"Alt-Shift-Down\", \"Command-Option-Down\"),\n exec: function (editor) { editor.copyLinesDown(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"movelinesdown\",\n description: \"Move lines down\",\n bindKey: bindKey(\"Alt-Down\", \"Option-Down\"),\n exec: function (editor) { editor.moveLinesDown(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"del\",\n description: \"Delete\",\n bindKey: bindKey(\"Delete\", \"Delete|Ctrl-D|Shift-Delete\"),\n exec: function (editor) { editor.remove(\"right\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"backspace\",\n description: \"Backspace\",\n bindKey: bindKey(\"Shift-Backspace|Backspace\", \"Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H\"),\n exec: function (editor) { editor.remove(\"left\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"cut_or_delete\",\n description: \"Cut or delete\",\n bindKey: bindKey(\"Shift-Delete\", null),\n exec: function (editor) {\n if (editor.selection.isEmpty()) {\n editor.remove(\"left\");\n }\n else {\n return false;\n }\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolinestart\",\n description: \"Remove to line start\",\n bindKey: bindKey(\"Alt-Backspace\", \"Command-Backspace\"),\n exec: function (editor) { editor.removeToLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolineend\",\n description: \"Remove to line end\",\n bindKey: bindKey(\"Alt-Delete\", \"Ctrl-K|Command-Delete\"),\n exec: function (editor) { editor.removeToLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolinestarthard\",\n description: \"Remove to line start hard\",\n bindKey: bindKey(\"Ctrl-Shift-Backspace\", null),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.start.column = 0;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolineendhard\",\n description: \"Remove to line end hard\",\n bindKey: bindKey(\"Ctrl-Shift-Delete\", null),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.end.column = Number.MAX_VALUE;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removewordleft\",\n description: \"Remove word left\",\n bindKey: bindKey(\"Ctrl-Backspace\", \"Alt-Backspace|Ctrl-Alt-Backspace\"),\n exec: function (editor) { editor.removeWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removewordright\",\n description: \"Remove word right\",\n bindKey: bindKey(\"Ctrl-Delete\", \"Alt-Delete\"),\n exec: function (editor) { editor.removeWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"outdent\",\n description: \"Outdent\",\n bindKey: bindKey(\"Shift-Tab\", \"Shift-Tab\"),\n exec: function (editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"indent\",\n description: \"Indent\",\n bindKey: bindKey(\"Tab\", \"Tab\"),\n exec: function (editor) { editor.indent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"blockoutdent\",\n description: \"Block outdent\",\n bindKey: bindKey(\"Ctrl-[\", \"Ctrl-[\"),\n exec: function (editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"blockindent\",\n description: \"Block indent\",\n bindKey: bindKey(\"Ctrl-]\", \"Ctrl-]\"),\n exec: function (editor) { editor.blockIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"insertstring\",\n description: \"Insert string\",\n exec: function (editor, str) { editor.insert(str); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"inserttext\",\n description: \"Insert text\",\n exec: function (editor, args) {\n editor.insert(lang.stringRepeat(args.text || \"\", args.times || 1));\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"splitline\",\n description: \"Split line\",\n bindKey: bindKey(null, \"Ctrl-O\"),\n exec: function (editor) { editor.splitLine(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"transposeletters\",\n description: \"Transpose letters\",\n bindKey: bindKey(\"Alt-Shift-X\", \"Ctrl-T\"),\n exec: function (editor) { editor.transposeLetters(); },\n multiSelectAction: function (editor) { editor.transposeSelections(1); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"touppercase\",\n description: \"To uppercase\",\n bindKey: bindKey(\"Ctrl-U\", \"Ctrl-U\"),\n exec: function (editor) { editor.toUpperCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"tolowercase\",\n description: \"To lowercase\",\n bindKey: bindKey(\"Ctrl-Shift-U\", \"Ctrl-Shift-U\"),\n exec: function (editor) { editor.toLowerCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"autoindent\",\n description: \"Auto Indent\",\n bindKey: bindKey(null, null),\n exec: function (editor) { editor.autoIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"animate\"\n }, {\n name: \"expandtoline\",\n description: \"Expand to line\",\n bindKey: bindKey(\"Ctrl-Shift-L\", \"Command-Shift-L\"),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.start.column = range.end.column = 0;\n range.end.row++;\n editor.selection.setRange(range, false);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"openlink\",\n bindKey: bindKey(\"Ctrl+F3\", \"F3\"),\n exec: function (editor) { editor.openLink(); }\n }, {\n name: \"joinlines\",\n description: \"Join lines\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n var isBackwards = editor.selection.isBackwards();\n var selectionStart = isBackwards ? editor.selection.getSelectionLead() : editor.selection.getSelectionAnchor();\n var selectionEnd = isBackwards ? editor.selection.getSelectionAnchor() : editor.selection.getSelectionLead();\n var firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length;\n var selectedText = editor.session.doc.getTextRange(editor.selection.getRange());\n var selectedCount = selectedText.replace(/\\n\\s*/, \" \").length;\n var insertLine = editor.session.doc.getLine(selectionStart.row);\n for (var i = selectionStart.row + 1; i <= selectionEnd.row + 1; i++) {\n var curLine = lang.stringTrimLeft(lang.stringTrimRight(editor.session.doc.getLine(i)));\n if (curLine.length !== 0) {\n curLine = \" \" + curLine;\n }\n insertLine += curLine;\n }\n if (selectionEnd.row + 1 < (editor.session.doc.getLength() - 1)) {\n insertLine += editor.session.doc.getNewLineCharacter();\n }\n editor.clearSelection();\n editor.session.doc.replace(new Range(selectionStart.row, 0, selectionEnd.row + 2, 0), insertLine);\n if (selectedCount > 0) {\n editor.selection.moveCursorTo(selectionStart.row, selectionStart.column);\n editor.selection.selectTo(selectionStart.row, selectionStart.column + selectedCount);\n }\n else {\n firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length > firstLineEndCol ? (firstLineEndCol + 1) : firstLineEndCol;\n editor.selection.moveCursorTo(selectionStart.row, firstLineEndCol);\n }\n },\n multiSelectAction: \"forEach\",\n readOnly: true\n }, {\n name: \"invertSelection\",\n description: \"Invert selection\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n var endRow = editor.session.doc.getLength() - 1;\n var endCol = editor.session.doc.getLine(endRow).length;\n var ranges = editor.selection.rangeList.ranges;\n var newRanges = [];\n if (ranges.length < 1) {\n ranges = [editor.selection.getRange()];\n }\n for (var i = 0; i < ranges.length; i++) {\n if (i == (ranges.length - 1)) {\n if (!(ranges[i].end.row === endRow && ranges[i].end.column === endCol)) {\n newRanges.push(new Range(ranges[i].end.row, ranges[i].end.column, endRow, endCol));\n }\n }\n if (i === 0) {\n if (!(ranges[i].start.row === 0 && ranges[i].start.column === 0)) {\n newRanges.push(new Range(0, 0, ranges[i].start.row, ranges[i].start.column));\n }\n }\n else {\n newRanges.push(new Range(ranges[i - 1].end.row, ranges[i - 1].end.column, ranges[i].start.row, ranges[i].start.column));\n }\n }\n editor.exitMultiSelectMode();\n editor.clearSelection();\n for (var i = 0; i < newRanges.length; i++) {\n editor.selection.addRange(newRanges[i], false);\n }\n },\n readOnly: true,\n scrollIntoView: \"none\"\n }, {\n name: \"addLineAfter\",\n description: \"Add new line after the current line\",\n exec: function (editor) {\n editor.selection.clearSelection();\n editor.navigateLineEnd();\n editor.insert(\"\\n\");\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"addLineBefore\",\n description: \"Add new line before the current line\",\n exec: function (editor) {\n editor.selection.clearSelection();\n var cursor = editor.getCursorPosition();\n editor.selection.moveTo(cursor.row - 1, Number.MAX_VALUE);\n editor.insert(\"\\n\");\n if (cursor.row === 0)\n editor.navigateUp();\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"openCommandPallete\",\n exec: function (editor) {\n console.warn(\"This is an obsolete command. Please use `openCommandPalette` instead.\");\n editor.prompt({ $type: \"commands\" });\n },\n readOnly: true\n }, {\n name: \"openCommandPalette\",\n description: \"Open command palette\",\n bindKey: bindKey(\"F1\", \"F1\"),\n exec: function (editor) {\n editor.prompt({ $type: \"commands\" });\n },\n readOnly: true\n }, {\n name: \"modeSelect\",\n description: \"Change language mode...\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n editor.prompt({ $type: \"modes\" });\n },\n readOnly: true\n }];\nfor (var i = 1; i < 9; i++) {\n exports.commands.push({\n name: \"foldToLevel\" + i,\n description: \"Fold To Level \" + i,\n level: i,\n exec: function (editor) { editor.session.foldToLevel(this.level); },\n scrollIntoView: \"center\",\n readOnly: true\n });\n}\n\n});\n\nace.define(\"ace/line_widgets\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"./lib/dom\");\nvar LineWidgets = /** @class */ (function () {\n function LineWidgets(session) {\n this.session = session;\n this.session.widgetManager = this;\n this.session.getRowLength = this.getRowLength;\n this.session.$getWidgetScreenLength = this.$getWidgetScreenLength;\n this.updateOnChange = this.updateOnChange.bind(this);\n this.renderWidgets = this.renderWidgets.bind(this);\n this.measureWidgets = this.measureWidgets.bind(this);\n this.session._changedWidgets = [];\n this.$onChangeEditor = this.$onChangeEditor.bind(this);\n this.session.on(\"change\", this.updateOnChange);\n this.session.on(\"changeFold\", this.updateOnFold);\n this.session.on(\"changeEditor\", this.$onChangeEditor);\n }\n LineWidgets.prototype.getRowLength = function (row) {\n var h;\n if (this.lineWidgets)\n h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n else\n h = 0;\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1 + h;\n }\n else {\n return this.$wrapData[row].length + 1 + h;\n }\n };\n LineWidgets.prototype.$getWidgetScreenLength = function () {\n var screenRows = 0;\n this.lineWidgets.forEach(function (w) {\n if (w && w.rowCount && !w.hidden)\n screenRows += w.rowCount;\n });\n return screenRows;\n };\n LineWidgets.prototype.$onChangeEditor = function (e) {\n this.attach(e.editor);\n };\n LineWidgets.prototype.attach = function (editor) {\n if (editor && editor.widgetManager && editor.widgetManager != this)\n editor.widgetManager.detach();\n if (this.editor == editor)\n return;\n this.detach();\n this.editor = editor;\n if (editor) {\n editor.widgetManager = this;\n editor.renderer.on(\"beforeRender\", this.measureWidgets);\n editor.renderer.on(\"afterRender\", this.renderWidgets);\n }\n };\n LineWidgets.prototype.detach = function (e) {\n var editor = this.editor;\n if (!editor)\n return;\n this.editor = null;\n editor.widgetManager = null;\n editor.renderer.off(\"beforeRender\", this.measureWidgets);\n editor.renderer.off(\"afterRender\", this.renderWidgets);\n var lineWidgets = this.session.lineWidgets;\n lineWidgets && lineWidgets.forEach(function (w) {\n if (w && w.el && w.el.parentNode) {\n w._inDocument = false;\n w.el.parentNode.removeChild(w.el);\n }\n });\n };\n LineWidgets.prototype.updateOnFold = function (e, session) {\n var lineWidgets = session.lineWidgets;\n if (!lineWidgets || !e.action)\n return;\n var fold = e.data;\n var start = fold.start.row;\n var end = fold.end.row;\n var hide = e.action == \"add\";\n for (var i = start + 1; i < end; i++) {\n if (lineWidgets[i])\n lineWidgets[i].hidden = hide;\n }\n if (lineWidgets[end]) {\n if (hide) {\n if (!lineWidgets[start])\n lineWidgets[start] = lineWidgets[end];\n else\n lineWidgets[end].hidden = hide;\n }\n else {\n if (lineWidgets[start] == lineWidgets[end])\n lineWidgets[start] = undefined;\n lineWidgets[end].hidden = hide;\n }\n }\n };\n LineWidgets.prototype.updateOnChange = function (delta) {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n if (len === 0) {\n }\n else if (delta.action == \"remove\") {\n var removed = lineWidgets.splice(startRow + 1, len);\n if (!lineWidgets[startRow] && removed[removed.length - 1]) {\n lineWidgets[startRow] = removed.pop();\n }\n removed.forEach(function (w) {\n w && this.removeLineWidget(w);\n }, this);\n this.$updateRows();\n }\n else {\n var args = new Array(len);\n if (lineWidgets[startRow] && lineWidgets[startRow].column != null) {\n if (delta.start.column > lineWidgets[startRow].column)\n startRow++;\n }\n args.unshift(startRow, 0);\n lineWidgets.splice.apply(lineWidgets, args);\n this.$updateRows();\n }\n };\n LineWidgets.prototype.$updateRows = function () {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var noWidgets = true;\n lineWidgets.forEach(function (w, i) {\n if (w) {\n noWidgets = false;\n w.row = i;\n while (w.$oldWidget) {\n w.$oldWidget.row = i;\n w = w.$oldWidget;\n }\n }\n });\n if (noWidgets)\n this.session.lineWidgets = null;\n };\n LineWidgets.prototype.$registerLineWidget = function (w) {\n if (!this.session.lineWidgets)\n this.session.lineWidgets = new Array(this.session.getLength());\n var old = this.session.lineWidgets[w.row];\n if (old) {\n w.$oldWidget = old;\n if (old.el && old.el.parentNode) {\n old.el.parentNode.removeChild(old.el);\n old._inDocument = false;\n }\n }\n this.session.lineWidgets[w.row] = w;\n return w;\n };\n LineWidgets.prototype.addLineWidget = function (w) {\n this.$registerLineWidget(w);\n w.session = this.session;\n if (!this.editor)\n return w;\n var renderer = this.editor.renderer;\n if (w.html && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.innerHTML = w.html;\n }\n if (w.text && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.textContent = w.text;\n }\n if (w.el) {\n dom.addCssClass(w.el, \"ace_lineWidgetContainer\");\n if (w.className) {\n dom.addCssClass(w.el, w.className);\n }\n w.el.style.position = \"absolute\";\n w.el.style.zIndex = 5;\n renderer.container.appendChild(w.el);\n w._inDocument = true;\n if (!w.coverGutter) {\n w.el.style.zIndex = 3;\n }\n if (w.pixelHeight == null) {\n w.pixelHeight = w.el.offsetHeight;\n }\n }\n if (w.rowCount == null) {\n w.rowCount = w.pixelHeight / renderer.layerConfig.lineHeight;\n }\n var fold = this.session.getFoldAt(w.row, 0);\n w.$fold = fold;\n if (fold) {\n var lineWidgets = this.session.lineWidgets;\n if (w.row == fold.end.row && !lineWidgets[fold.start.row])\n lineWidgets[fold.start.row] = w;\n else\n w.hidden = true;\n }\n this.session._emit(\"changeFold\", { data: { start: { row: w.row } } });\n this.$updateRows();\n this.renderWidgets(null, renderer);\n this.onWidgetChanged(w);\n return w;\n };\n LineWidgets.prototype.removeLineWidget = function (w) {\n w._inDocument = false;\n w.session = null;\n if (w.el && w.el.parentNode)\n w.el.parentNode.removeChild(w.el);\n if (w.editor && w.editor.destroy)\n try {\n w.editor.destroy();\n }\n catch (e) { }\n if (this.session.lineWidgets) {\n var w1 = this.session.lineWidgets[w.row];\n if (w1 == w) {\n this.session.lineWidgets[w.row] = w.$oldWidget;\n if (w.$oldWidget)\n this.onWidgetChanged(w.$oldWidget);\n }\n else {\n while (w1) {\n if (w1.$oldWidget == w) {\n w1.$oldWidget = w.$oldWidget;\n break;\n }\n w1 = w1.$oldWidget;\n }\n }\n }\n this.session._emit(\"changeFold\", { data: { start: { row: w.row } } });\n this.$updateRows();\n };\n LineWidgets.prototype.getWidgetsAtRow = function (row) {\n var lineWidgets = this.session.lineWidgets;\n var w = lineWidgets && lineWidgets[row];\n var list = [];\n while (w) {\n list.push(w);\n w = w.$oldWidget;\n }\n return list;\n };\n LineWidgets.prototype.onWidgetChanged = function (w) {\n this.session._changedWidgets.push(w);\n this.editor && this.editor.renderer.updateFull();\n };\n LineWidgets.prototype.measureWidgets = function (e, renderer) {\n var changedWidgets = this.session._changedWidgets;\n var config = renderer.layerConfig;\n if (!changedWidgets || !changedWidgets.length)\n return;\n var min = Infinity;\n for (var i = 0; i < changedWidgets.length; i++) {\n var w = changedWidgets[i];\n if (!w || !w.el)\n continue;\n if (w.session != this.session)\n continue;\n if (!w._inDocument) {\n if (this.session.lineWidgets[w.row] != w)\n continue;\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n w.h = w.el.offsetHeight;\n if (!w.fixedWidth) {\n w.w = w.el.offsetWidth;\n w.screenWidth = Math.ceil(w.w / config.characterWidth);\n }\n var rowCount = w.h / config.lineHeight;\n if (w.coverLine) {\n rowCount -= this.session.getRowLineCount(w.row);\n if (rowCount < 0)\n rowCount = 0;\n }\n if (w.rowCount != rowCount) {\n w.rowCount = rowCount;\n if (w.row < min)\n min = w.row;\n }\n }\n if (min != Infinity) {\n this.session._emit(\"changeFold\", { data: { start: { row: min } } });\n this.session.lineWidgetWidth = null;\n }\n this.session._changedWidgets = [];\n };\n LineWidgets.prototype.renderWidgets = function (e, renderer) {\n var config = renderer.layerConfig;\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var first = Math.min(this.firstRow, config.firstRow);\n var last = Math.max(this.lastRow, config.lastRow, lineWidgets.length);\n while (first > 0 && !lineWidgets[first])\n first--;\n this.firstRow = config.firstRow;\n this.lastRow = config.lastRow;\n renderer.$cursorLayer.config = config;\n for (var i = first; i <= last; i++) {\n var w = lineWidgets[i];\n if (!w || !w.el)\n continue;\n if (w.hidden) {\n w.el.style.top = -100 - (w.pixelHeight || 0) + \"px\";\n continue;\n }\n if (!w._inDocument) {\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n var top = renderer.$cursorLayer.getPixelPosition({ row: i, column: 0 }, true).top;\n if (!w.coverLine)\n top += config.lineHeight * this.session.getRowLineCount(w.row);\n w.el.style.top = top - config.offset + \"px\";\n var left = w.coverGutter ? 0 : renderer.gutterWidth;\n if (!w.fixedWidth)\n left -= renderer.scrollLeft;\n w.el.style.left = left + \"px\";\n if (w.fullWidth && w.screenWidth) {\n w.el.style.minWidth = config.width + 2 * config.padding + \"px\";\n }\n if (w.fixedWidth) {\n w.el.style.right = renderer.scrollBar.getWidth() + \"px\";\n }\n else {\n w.el.style.right = \"\";\n }\n }\n };\n return LineWidgets;\n}());\nexports.LineWidgets = LineWidgets;\n\n});\n\nace.define(\"ace/keyboard/gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/mouse/default_gutter_handler\"], function(require, exports, module){\"use strict\";\nvar keys = require('../lib/keys');\nvar GutterTooltip = require(\"../mouse/default_gutter_handler\").GutterTooltip;\nvar GutterKeyboardHandler = /** @class */ (function () {\n function GutterKeyboardHandler(editor) {\n this.editor = editor;\n this.gutterLayer = editor.renderer.$gutterLayer;\n this.element = editor.renderer.$gutter;\n this.lines = editor.renderer.$gutterLayer.$lines;\n this.activeRowIndex = null;\n this.activeLane = null;\n this.annotationTooltip = new GutterTooltip(this.editor);\n }\n GutterKeyboardHandler.prototype.addListener = function () {\n this.element.addEventListener(\"keydown\", this.$onGutterKeyDown.bind(this));\n this.element.addEventListener(\"focusout\", this.$blurGutter.bind(this));\n this.editor.on(\"mousewheel\", this.$blurGutter.bind(this));\n };\n GutterKeyboardHandler.prototype.removeListener = function () {\n this.element.removeEventListener(\"keydown\", this.$onGutterKeyDown.bind(this));\n this.element.removeEventListener(\"focusout\", this.$blurGutter.bind(this));\n this.editor.off(\"mousewheel\", this.$blurGutter.bind(this));\n };\n GutterKeyboardHandler.prototype.$onGutterKeyDown = function (e) {\n if (this.annotationTooltip.isOpen) {\n e.preventDefault();\n if (e.keyCode === keys[\"escape\"])\n this.annotationTooltip.hideTooltip();\n return;\n }\n if (e.target === this.element) {\n if (e.keyCode != keys[\"enter\"]) {\n return;\n }\n e.preventDefault();\n var row = this.editor.getCursorPosition().row;\n if (!this.editor.isRowVisible(row))\n this.editor.scrollToLine(row, true, true);\n setTimeout(function () {\n var index = this.$rowToRowIndex(this.gutterLayer.$cursorCell.row);\n var nearestFoldIndex = this.$findNearestFoldWidget(index);\n var nearestAnnotationIndex = this.$findNearestAnnotation(index);\n if (nearestFoldIndex === null && nearestAnnotationIndex === null)\n return;\n if (nearestFoldIndex === null && nearestAnnotationIndex !== null) {\n this.activeRowIndex = nearestAnnotationIndex;\n this.activeLane = \"annotation\";\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n if (nearestFoldIndex !== null && nearestAnnotationIndex === null) {\n this.activeRowIndex = nearestFoldIndex;\n this.activeLane = \"fold\";\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n if (Math.abs(nearestAnnotationIndex - index) < Math.abs(nearestFoldIndex - index)) {\n this.activeRowIndex = nearestAnnotationIndex;\n this.activeLane = \"annotation\";\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n else {\n this.activeRowIndex = nearestFoldIndex;\n this.activeLane = \"fold\";\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }.bind(this), 10);\n return;\n }\n this.$handleGutterKeyboardInteraction(e);\n setTimeout(function () {\n this.editor._signal(\"gutterkeydown\", new GutterKeyboardEvent(e, this));\n }.bind(this), 10);\n };\n GutterKeyboardHandler.prototype.$handleGutterKeyboardInteraction = function (e) {\n if (e.keyCode === keys[\"tab\"]) {\n e.preventDefault();\n return;\n }\n if (e.keyCode === keys[\"escape\"]) {\n e.preventDefault();\n this.$blurGutter();\n this.element.focus();\n this.lane = null;\n return;\n }\n if (e.keyCode === keys[\"up\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n this.$moveFoldWidgetUp();\n break;\n case \"annotation\":\n this.$moveAnnotationUp();\n break;\n }\n return;\n }\n if (e.keyCode === keys[\"down\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n this.$moveFoldWidgetDown();\n break;\n case \"annotation\":\n this.$moveAnnotationDown();\n break;\n }\n return;\n }\n if (e.keyCode === keys[\"left\"]) {\n e.preventDefault();\n this.$switchLane(\"annotation\");\n return;\n }\n if (e.keyCode === keys[\"right\"]) {\n e.preventDefault();\n this.$switchLane(\"fold\");\n return;\n }\n if (e.keyCode === keys[\"enter\"] || e.keyCode === keys[\"space\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n if (this.gutterLayer.session.foldWidgets[this.$rowIndexToRow(this.activeRowIndex)] === 'start') {\n var rowFoldingWidget = this.$rowIndexToRow(this.activeRowIndex);\n this.editor.session.onFoldWidgetClick(this.$rowIndexToRow(this.activeRowIndex), e);\n setTimeout(function () {\n if (this.$rowIndexToRow(this.activeRowIndex) !== rowFoldingWidget) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = this.$rowToRowIndex(rowFoldingWidget);\n this.$focusFoldWidget(this.activeRowIndex);\n }\n }.bind(this), 10);\n break;\n }\n else if (this.gutterLayer.session.foldWidgets[this.$rowIndexToRow(this.activeRowIndex)] === 'end') {\n break;\n }\n return;\n case \"annotation\":\n var gutterElement = this.lines.cells[this.activeRowIndex].element.childNodes[2];\n var rect = gutterElement.getBoundingClientRect();\n var style = this.annotationTooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n this.annotationTooltip.showTooltip(this.$rowIndexToRow(this.activeRowIndex));\n break;\n }\n return;\n }\n };\n GutterKeyboardHandler.prototype.$blurGutter = function () {\n if (this.activeRowIndex !== null) {\n switch (this.activeLane) {\n case \"fold\":\n this.$blurFoldWidget(this.activeRowIndex);\n break;\n case \"annotation\":\n this.$blurAnnotation(this.activeRowIndex);\n break;\n }\n }\n if (this.annotationTooltip.isOpen)\n this.annotationTooltip.hideTooltip();\n return;\n };\n GutterKeyboardHandler.prototype.$isFoldWidgetVisible = function (index) {\n var isRowFullyVisible = this.editor.isRowFullyVisible(this.$rowIndexToRow(index));\n var isIconVisible = this.$getFoldWidget(index).style.display !== \"none\";\n return isRowFullyVisible && isIconVisible;\n };\n GutterKeyboardHandler.prototype.$isAnnotationVisible = function (index) {\n var isRowFullyVisible = this.editor.isRowFullyVisible(this.$rowIndexToRow(index));\n var isIconVisible = this.$getAnnotation(index).style.display !== \"none\";\n return isRowFullyVisible && isIconVisible;\n };\n GutterKeyboardHandler.prototype.$getFoldWidget = function (index) {\n var cell = this.lines.get(index);\n var element = cell.element;\n return element.childNodes[1];\n };\n GutterKeyboardHandler.prototype.$getAnnotation = function (index) {\n var cell = this.lines.get(index);\n var element = cell.element;\n return element.childNodes[2];\n };\n GutterKeyboardHandler.prototype.$findNearestFoldWidget = function (index) {\n if (this.$isFoldWidgetVisible(index))\n return index;\n var i = 0;\n while (index - i > 0 || index + i < this.lines.getLength() - 1) {\n i++;\n if (index - i >= 0 && this.$isFoldWidgetVisible(index - i))\n return index - i;\n if (index + i <= this.lines.getLength() - 1 && this.$isFoldWidgetVisible(index + i))\n return index + i;\n }\n return null;\n };\n GutterKeyboardHandler.prototype.$findNearestAnnotation = function (index) {\n if (this.$isAnnotationVisible(index))\n return index;\n var i = 0;\n while (index - i > 0 || index + i < this.lines.getLength() - 1) {\n i++;\n if (index - i >= 0 && this.$isAnnotationVisible(index - i))\n return index - i;\n if (index + i <= this.lines.getLength() - 1 && this.$isAnnotationVisible(index + i))\n return index + i;\n }\n return null;\n };\n GutterKeyboardHandler.prototype.$focusFoldWidget = function (index) {\n if (index == null)\n return;\n var foldWidget = this.$getFoldWidget(index);\n foldWidget.classList.add(this.editor.renderer.keyboardFocusClassName);\n foldWidget.focus();\n };\n GutterKeyboardHandler.prototype.$focusAnnotation = function (index) {\n if (index == null)\n return;\n var annotation = this.$getAnnotation(index);\n annotation.classList.add(this.editor.renderer.keyboardFocusClassName);\n annotation.focus();\n };\n GutterKeyboardHandler.prototype.$blurFoldWidget = function (index) {\n var foldWidget = this.$getFoldWidget(index);\n foldWidget.classList.remove(this.editor.renderer.keyboardFocusClassName);\n foldWidget.blur();\n };\n GutterKeyboardHandler.prototype.$blurAnnotation = function (index) {\n var annotation = this.$getAnnotation(index);\n annotation.classList.remove(this.editor.renderer.keyboardFocusClassName);\n annotation.blur();\n };\n GutterKeyboardHandler.prototype.$moveFoldWidgetUp = function () {\n var index = this.activeRowIndex;\n while (index > 0) {\n index--;\n if (this.$isFoldWidgetVisible(index)) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveFoldWidgetDown = function () {\n var index = this.activeRowIndex;\n while (index < this.lines.getLength() - 1) {\n index++;\n if (this.$isFoldWidgetVisible(index)) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveAnnotationUp = function () {\n var index = this.activeRowIndex;\n while (index > 0) {\n index--;\n if (this.$isAnnotationVisible(index)) {\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveAnnotationDown = function () {\n var index = this.activeRowIndex;\n while (index < this.lines.getLength() - 1) {\n index++;\n if (this.$isAnnotationVisible(index)) {\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$switchLane = function (desinationLane) {\n switch (desinationLane) {\n case \"annotation\":\n if (this.activeLane === \"annotation\") {\n break;\n }\n var annotationIndex = this.$findNearestAnnotation(this.activeRowIndex);\n if (annotationIndex == null) {\n break;\n }\n this.activeLane = \"annotation\";\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = annotationIndex;\n this.$focusAnnotation(this.activeRowIndex);\n break;\n case \"fold\":\n if (this.activeLane === \"fold\") {\n break;\n }\n var foldWidgetIndex = this.$findNearestFoldWidget(this.activeRowIndex);\n if (foldWidgetIndex == null) {\n break;\n }\n this.activeLane = \"fold\";\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = foldWidgetIndex;\n this.$focusFoldWidget(this.activeRowIndex);\n break;\n }\n return;\n };\n GutterKeyboardHandler.prototype.$rowIndexToRow = function (index) {\n var cell = this.lines.get(index);\n if (cell)\n return cell.row;\n return null;\n };\n GutterKeyboardHandler.prototype.$rowToRowIndex = function (row) {\n for (var i = 0; i < this.lines.getLength(); i++) {\n var cell = this.lines.get(i);\n if (cell.row == row)\n return i;\n }\n return null;\n };\n return GutterKeyboardHandler;\n}());\nexports.GutterKeyboardHandler = GutterKeyboardHandler;\nvar GutterKeyboardEvent = /** @class */ (function () {\n function GutterKeyboardEvent(domEvent, gutterKeyboardHandler) {\n this.gutterKeyboardHandler = gutterKeyboardHandler;\n this.domEvent = domEvent;\n }\n GutterKeyboardEvent.prototype.getKey = function () {\n return keys.keyCodeToString(this.domEvent.keyCode);\n };\n GutterKeyboardEvent.prototype.getRow = function () {\n return this.gutterKeyboardHandler.$rowIndexToRow(this.gutterKeyboardHandler.activeRowIndex);\n };\n GutterKeyboardEvent.prototype.isInAnnotationLane = function () {\n return this.gutterKeyboardHandler.activeLane === \"annotation\";\n };\n GutterKeyboardEvent.prototype.isInFoldLane = function () {\n return this.gutterKeyboardHandler.activeLane === \"fold\";\n };\n return GutterKeyboardEvent;\n}());\nexports.GutterKeyboardEvent = GutterKeyboardEvent;\n\n});\n\nace.define(\"ace/editor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/keyboard/textinput\",\"ace/mouse/mouse_handler\",\"ace/mouse/fold_handler\",\"ace/keyboard/keybinding\",\"ace/edit_session\",\"ace/search\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/commands/command_manager\",\"ace/commands/default_commands\",\"ace/config\",\"ace/token_iterator\",\"ace/line_widgets\",\"ace/keyboard/gutter_handler\",\"ace/config\",\"ace/clipboard\",\"ace/lib/keys\"], function(require, exports, module){\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar lang = require(\"./lib/lang\");\nvar useragent = require(\"./lib/useragent\");\nvar TextInput = require(\"./keyboard/textinput\").TextInput;\nvar MouseHandler = require(\"./mouse/mouse_handler\").MouseHandler;\nvar FoldHandler = require(\"./mouse/fold_handler\").FoldHandler;\nvar KeyBinding = require(\"./keyboard/keybinding\").KeyBinding;\nvar EditSession = require(\"./edit_session\").EditSession;\nvar Search = require(\"./search\").Search;\nvar Range = require(\"./range\").Range;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar CommandManager = require(\"./commands/command_manager\").CommandManager;\nvar defaultCommands = require(\"./commands/default_commands\").commands;\nvar config = require(\"./config\");\nvar TokenIterator = require(\"./token_iterator\").TokenIterator;\nvar LineWidgets = require(\"./line_widgets\").LineWidgets;\nvar GutterKeyboardHandler = require(\"./keyboard/gutter_handler\").GutterKeyboardHandler;\nvar nls = require(\"./config\").nls;\nvar clipboard = require(\"./clipboard\");\nvar keys = require('./lib/keys');\nvar Editor = /** @class */ (function () {\n function Editor(renderer, session, options) {\n this.$toDestroy = [];\n var container = renderer.getContainerElement();\n this.container = container;\n this.renderer = renderer;\n this.id = \"editor\" + (++Editor.$uid);\n this.commands = new CommandManager(useragent.isMac ? \"mac\" : \"win\", defaultCommands);\n if (typeof document == \"object\") {\n this.textInput = new TextInput(renderer.getTextAreaContainer(), this);\n this.renderer.textarea = this.textInput.getElement();\n this.$mouseHandler = new MouseHandler(this);\n new FoldHandler(this);\n }\n this.keyBinding = new KeyBinding(this);\n this.$search = new Search().set({\n wrap: true\n });\n this.$historyTracker = this.$historyTracker.bind(this);\n this.commands.on(\"exec\", this.$historyTracker);\n this.$initOperationListeners();\n this._$emitInputEvent = lang.delayedCall(function () {\n this._signal(\"input\", {});\n if (this.session && !this.session.destroyed)\n this.session.bgTokenizer.scheduleStart();\n }.bind(this));\n this.on(\"change\", function (_, _self) {\n _self._$emitInputEvent.schedule(31);\n });\n this.setSession(session || options && options.session || new EditSession(\"\"));\n config.resetOptions(this);\n if (options)\n this.setOptions(options);\n config._signal(\"editor\", this);\n }\n Editor.prototype.$initOperationListeners = function () {\n this.commands.on(\"exec\", this.startOperation.bind(this), true);\n this.commands.on(\"afterExec\", this.endOperation.bind(this), true);\n this.$opResetTimer = lang.delayedCall(this.endOperation.bind(this, true));\n this.on(\"change\", function () {\n if (!this.curOp) {\n this.startOperation();\n this.curOp.selectionBefore = this.$lastSel;\n }\n this.curOp.docChanged = true;\n }.bind(this), true);\n this.on(\"changeSelection\", function () {\n if (!this.curOp) {\n this.startOperation();\n this.curOp.selectionBefore = this.$lastSel;\n }\n this.curOp.selectionChanged = true;\n }.bind(this), true);\n };\n Editor.prototype.startOperation = function (commandEvent) {\n if (this.curOp) {\n if (!commandEvent || this.curOp.command)\n return;\n this.prevOp = this.curOp;\n }\n if (!commandEvent) {\n this.previousCommand = null;\n commandEvent = {};\n }\n this.$opResetTimer.schedule();\n this.curOp = this.session.curOp = {\n command: commandEvent.command || {},\n args: commandEvent.args,\n scrollTop: this.renderer.scrollTop\n };\n this.curOp.selectionBefore = this.selection.toJSON();\n };\n Editor.prototype.endOperation = function (e) {\n if (this.curOp && this.session) {\n if (e && e.returnValue === false || !this.session)\n return (this.curOp = null);\n if (e == true && this.curOp.command && this.curOp.command.name == \"mouse\")\n return;\n this._signal(\"beforeEndOperation\");\n if (!this.curOp)\n return;\n var command = this.curOp.command;\n var scrollIntoView = command && command.scrollIntoView;\n if (scrollIntoView) {\n switch (scrollIntoView) {\n case \"center-animate\":\n scrollIntoView = \"animate\";\n case \"center\":\n this.renderer.scrollCursorIntoView(null, 0.5);\n break;\n case \"animate\":\n case \"cursor\":\n this.renderer.scrollCursorIntoView();\n break;\n case \"selectionPart\":\n var range = this.selection.getRange();\n var config = this.renderer.layerConfig;\n if (range.start.row >= config.lastRow || range.end.row <= config.firstRow) {\n this.renderer.scrollSelectionIntoView(this.selection.anchor, this.selection.lead);\n }\n break;\n default:\n break;\n }\n if (scrollIntoView == \"animate\")\n this.renderer.animateScrolling(this.curOp.scrollTop);\n }\n var sel = this.selection.toJSON();\n this.curOp.selectionAfter = sel;\n this.$lastSel = this.selection.toJSON();\n this.session.getUndoManager().addSelection(sel);\n this.prevOp = this.curOp;\n this.curOp = null;\n }\n };\n Editor.prototype.$historyTracker = function (e) {\n if (!this.$mergeUndoDeltas)\n return;\n var prev = this.prevOp;\n var mergeableCommands = this.$mergeableCommands;\n var shouldMerge = prev.command && (e.command.name == prev.command.name);\n if (e.command.name == \"insertstring\") {\n var text = e.args;\n if (this.mergeNextCommand === undefined)\n this.mergeNextCommand = true;\n shouldMerge = shouldMerge\n && this.mergeNextCommand // previous command allows to coalesce with\n && (!/\\s/.test(text) || /\\s/.test(prev.args)); // previous insertion was of same type\n this.mergeNextCommand = true;\n }\n else {\n shouldMerge = shouldMerge\n && mergeableCommands.indexOf(e.command.name) !== -1; // the command is mergeable\n }\n if (this.$mergeUndoDeltas != \"always\"\n && Date.now() - this.sequenceStartTime > 2000) {\n shouldMerge = false; // the sequence is too long\n }\n if (shouldMerge)\n this.session.mergeUndoDeltas = true;\n else if (mergeableCommands.indexOf(e.command.name) !== -1)\n this.sequenceStartTime = Date.now();\n };\n Editor.prototype.setKeyboardHandler = function (keyboardHandler, cb) {\n if (keyboardHandler && typeof keyboardHandler === \"string\" && keyboardHandler != \"ace\") {\n this.$keybindingId = keyboardHandler;\n var _self = this;\n config.loadModule([\"keybinding\", keyboardHandler], function (module) {\n if (_self.$keybindingId == keyboardHandler)\n _self.keyBinding.setKeyboardHandler(module && module.handler);\n cb && cb();\n });\n }\n else {\n this.$keybindingId = null;\n this.keyBinding.setKeyboardHandler(keyboardHandler);\n cb && cb();\n }\n };\n Editor.prototype.getKeyboardHandler = function () {\n return this.keyBinding.getKeyboardHandler();\n };\n Editor.prototype.setSession = function (session) {\n if (this.session == session)\n return;\n if (this.curOp)\n this.endOperation();\n this.curOp = {};\n var oldSession = this.session;\n if (oldSession) {\n this.session.off(\"change\", this.$onDocumentChange);\n this.session.off(\"changeMode\", this.$onChangeMode);\n this.session.off(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.session.off(\"changeTabSize\", this.$onChangeTabSize);\n this.session.off(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.session.off(\"changeWrapMode\", this.$onChangeWrapMode);\n this.session.off(\"changeFold\", this.$onChangeFold);\n this.session.off(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.session.off(\"changeBackMarker\", this.$onChangeBackMarker);\n this.session.off(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.session.off(\"changeAnnotation\", this.$onChangeAnnotation);\n this.session.off(\"changeOverwrite\", this.$onCursorChange);\n this.session.off(\"changeScrollTop\", this.$onScrollTopChange);\n this.session.off(\"changeScrollLeft\", this.$onScrollLeftChange);\n var selection = this.session.getSelection();\n selection.off(\"changeCursor\", this.$onCursorChange);\n selection.off(\"changeSelection\", this.$onSelectionChange);\n }\n this.session = session;\n if (session) {\n this.$onDocumentChange = this.onDocumentChange.bind(this);\n session.on(\"change\", this.$onDocumentChange);\n this.renderer.setSession(session);\n this.$onChangeMode = this.onChangeMode.bind(this);\n session.on(\"changeMode\", this.$onChangeMode);\n this.$onTokenizerUpdate = this.onTokenizerUpdate.bind(this);\n session.on(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.$onChangeTabSize = this.renderer.onChangeTabSize.bind(this.renderer);\n session.on(\"changeTabSize\", this.$onChangeTabSize);\n this.$onChangeWrapLimit = this.onChangeWrapLimit.bind(this);\n session.on(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.$onChangeWrapMode = this.onChangeWrapMode.bind(this);\n session.on(\"changeWrapMode\", this.$onChangeWrapMode);\n this.$onChangeFold = this.onChangeFold.bind(this);\n session.on(\"changeFold\", this.$onChangeFold);\n this.$onChangeFrontMarker = this.onChangeFrontMarker.bind(this);\n this.session.on(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.$onChangeBackMarker = this.onChangeBackMarker.bind(this);\n this.session.on(\"changeBackMarker\", this.$onChangeBackMarker);\n this.$onChangeBreakpoint = this.onChangeBreakpoint.bind(this);\n this.session.on(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.$onChangeAnnotation = this.onChangeAnnotation.bind(this);\n this.session.on(\"changeAnnotation\", this.$onChangeAnnotation);\n this.$onCursorChange = this.onCursorChange.bind(this);\n this.session.on(\"changeOverwrite\", this.$onCursorChange);\n this.$onScrollTopChange = this.onScrollTopChange.bind(this);\n this.session.on(\"changeScrollTop\", this.$onScrollTopChange);\n this.$onScrollLeftChange = this.onScrollLeftChange.bind(this);\n this.session.on(\"changeScrollLeft\", this.$onScrollLeftChange);\n this.selection = session.getSelection();\n this.selection.on(\"changeCursor\", this.$onCursorChange);\n this.$onSelectionChange = this.onSelectionChange.bind(this);\n this.selection.on(\"changeSelection\", this.$onSelectionChange);\n this.onChangeMode();\n this.onCursorChange();\n this.onScrollTopChange();\n this.onScrollLeftChange();\n this.onSelectionChange();\n this.onChangeFrontMarker();\n this.onChangeBackMarker();\n this.onChangeBreakpoint();\n this.onChangeAnnotation();\n this.session.getUseWrapMode() && this.renderer.adjustWrapLimit();\n this.renderer.updateFull();\n }\n else {\n this.selection = null;\n this.renderer.setSession(session);\n }\n this._signal(\"changeSession\", {\n session: session,\n oldSession: oldSession\n });\n this.curOp = null;\n oldSession && oldSession._signal(\"changeEditor\", { oldEditor: this });\n session && session._signal(\"changeEditor\", { editor: this });\n if (session && !session.destroyed)\n session.bgTokenizer.scheduleStart();\n };\n Editor.prototype.getSession = function () {\n return this.session;\n };\n Editor.prototype.setValue = function (val, cursorPos) {\n this.session.doc.setValue(val);\n if (!cursorPos)\n this.selectAll();\n else if (cursorPos == 1)\n this.navigateFileEnd();\n else if (cursorPos == -1)\n this.navigateFileStart();\n return val;\n };\n Editor.prototype.getValue = function () {\n return this.session.getValue();\n };\n Editor.prototype.getSelection = function () {\n return this.selection;\n };\n Editor.prototype.resize = function (force) {\n this.renderer.onResize(force);\n };\n Editor.prototype.setTheme = function (theme, cb) {\n this.renderer.setTheme(theme, cb);\n };\n Editor.prototype.getTheme = function () {\n return this.renderer.getTheme();\n };\n Editor.prototype.setStyle = function (style) {\n this.renderer.setStyle(style);\n };\n Editor.prototype.unsetStyle = function (style) {\n this.renderer.unsetStyle(style);\n };\n Editor.prototype.getFontSize = function () {\n return this.getOption(\"fontSize\") ||\n dom.computedStyle(this.container).fontSize;\n };\n Editor.prototype.setFontSize = function (size) {\n this.setOption(\"fontSize\", size);\n };\n Editor.prototype.$highlightBrackets = function () {\n if (this.$highlightPending) {\n return;\n }\n var self = this;\n this.$highlightPending = true;\n setTimeout(function () {\n self.$highlightPending = false;\n var session = self.session;\n if (!session || session.destroyed)\n return;\n if (session.$bracketHighlight) {\n session.$bracketHighlight.markerIds.forEach(function (id) {\n session.removeMarker(id);\n });\n session.$bracketHighlight = null;\n }\n var pos = self.getCursorPosition();\n var handler = self.getKeyboardHandler();\n var isBackwards = handler && handler.$getDirectionForHighlight && handler.$getDirectionForHighlight(self);\n var ranges = session.getMatchingBracketRanges(pos, isBackwards);\n if (!ranges) {\n var iterator = new TokenIterator(session, pos.row, pos.column);\n var token = iterator.getCurrentToken();\n if (token && /\\b(?:tag-open|tag-name)/.test(token.type)) {\n var tagNamesRanges = session.getMatchingTags(pos);\n if (tagNamesRanges)\n ranges = [tagNamesRanges.openTagName, tagNamesRanges.closeTagName];\n }\n }\n if (!ranges && session.$mode.getMatching)\n ranges = session.$mode.getMatching(self.session);\n if (!ranges) {\n if (self.getHighlightIndentGuides())\n self.renderer.$textLayer.$highlightIndentGuide();\n return;\n }\n var markerType = \"ace_bracket\";\n if (!Array.isArray(ranges)) {\n ranges = [ranges];\n }\n else if (ranges.length == 1) {\n markerType = \"ace_error_bracket\";\n }\n if (ranges.length == 2) {\n if (Range.comparePoints(ranges[0].end, ranges[1].start) == 0)\n ranges = [Range.fromPoints(ranges[0].start, ranges[1].end)];\n else if (Range.comparePoints(ranges[0].start, ranges[1].end) == 0)\n ranges = [Range.fromPoints(ranges[1].start, ranges[0].end)];\n }\n session.$bracketHighlight = {\n ranges: ranges,\n markerIds: ranges.map(function (range) {\n return session.addMarker(range, markerType, \"text\");\n })\n };\n if (self.getHighlightIndentGuides())\n self.renderer.$textLayer.$highlightIndentGuide();\n }, 50);\n };\n Editor.prototype.focus = function () {\n this.textInput.focus();\n };\n Editor.prototype.isFocused = function () {\n return this.textInput.isFocused();\n };\n Editor.prototype.blur = function () {\n this.textInput.blur();\n };\n Editor.prototype.onFocus = function (e) {\n if (this.$isFocused)\n return;\n this.$isFocused = true;\n this.renderer.showCursor();\n this.renderer.visualizeFocus();\n this._emit(\"focus\", e);\n };\n Editor.prototype.onBlur = function (e) {\n if (!this.$isFocused)\n return;\n this.$isFocused = false;\n this.renderer.hideCursor();\n this.renderer.visualizeBlur();\n this._emit(\"blur\", e);\n };\n Editor.prototype.$cursorChange = function () {\n this.renderer.updateCursor();\n this.$highlightBrackets();\n this.$updateHighlightActiveLine();\n };\n Editor.prototype.onDocumentChange = function (delta) {\n var wrap = this.session.$useWrapMode;\n var lastRow = (delta.start.row == delta.end.row ? delta.end.row : Infinity);\n this.renderer.updateLines(delta.start.row, lastRow, wrap);\n this._signal(\"change\", delta);\n this.$cursorChange();\n };\n Editor.prototype.onTokenizerUpdate = function (e) {\n var rows = e.data;\n this.renderer.updateLines(rows.first, rows.last);\n };\n Editor.prototype.onScrollTopChange = function () {\n this.renderer.scrollToY(this.session.getScrollTop());\n };\n Editor.prototype.onScrollLeftChange = function () {\n this.renderer.scrollToX(this.session.getScrollLeft());\n };\n Editor.prototype.onCursorChange = function () {\n this.$cursorChange();\n this._signal(\"changeSelection\");\n };\n Editor.prototype.$updateHighlightActiveLine = function () {\n var session = this.getSession();\n var highlight;\n if (this.$highlightActiveLine) {\n if (this.$selectionStyle != \"line\" || !this.selection.isMultiLine())\n highlight = this.getCursorPosition();\n if (this.renderer.theme && this.renderer.theme.$selectionColorConflict && !this.selection.isEmpty())\n highlight = false;\n if (this.renderer.$maxLines && this.session.getLength() === 1 && !(this.renderer.$minLines > 1))\n highlight = false;\n }\n if (session.$highlightLineMarker && !highlight) {\n session.removeMarker(session.$highlightLineMarker.id);\n session.$highlightLineMarker = null;\n }\n else if (!session.$highlightLineMarker && highlight) {\n var range = new Range(highlight.row, highlight.column, highlight.row, Infinity);\n range.id = session.addMarker(range, \"ace_active-line\", \"screenLine\");\n session.$highlightLineMarker = range;\n }\n else if (highlight) {\n session.$highlightLineMarker.start.row = highlight.row;\n session.$highlightLineMarker.end.row = highlight.row;\n session.$highlightLineMarker.start.column = highlight.column;\n session._signal(\"changeBackMarker\");\n }\n };\n Editor.prototype.onSelectionChange = function (e) {\n var session = this.session;\n if (session.$selectionMarker) {\n session.removeMarker(session.$selectionMarker);\n }\n session.$selectionMarker = null;\n if (!this.selection.isEmpty()) {\n var range = this.selection.getRange();\n var style = this.getSelectionStyle();\n session.$selectionMarker = session.addMarker(range, \"ace_selection\", style);\n }\n else {\n this.$updateHighlightActiveLine();\n }\n var re = this.$highlightSelectedWord && this.$getSelectionHighLightRegexp();\n this.session.highlight(re);\n this._signal(\"changeSelection\");\n };\n Editor.prototype.$getSelectionHighLightRegexp = function () {\n var session = this.session;\n var selection = this.getSelectionRange();\n if (selection.isEmpty() || selection.isMultiLine())\n return;\n var startColumn = selection.start.column;\n var endColumn = selection.end.column;\n var line = session.getLine(selection.start.row);\n var needle = line.substring(startColumn, endColumn);\n if (needle.length > 5000 || !/[\\w\\d]/.test(needle))\n return;\n var re = this.$search.$assembleRegExp({\n wholeWord: true,\n caseSensitive: true,\n needle: needle\n });\n var wordWithBoundary = line.substring(startColumn - 1, endColumn + 1);\n if (!re.test(wordWithBoundary))\n return;\n return re;\n };\n Editor.prototype.onChangeFrontMarker = function () {\n this.renderer.updateFrontMarkers();\n };\n Editor.prototype.onChangeBackMarker = function () {\n this.renderer.updateBackMarkers();\n };\n Editor.prototype.onChangeBreakpoint = function () {\n this.renderer.updateBreakpoints();\n };\n Editor.prototype.onChangeAnnotation = function () {\n this.renderer.setAnnotations(this.session.getAnnotations());\n };\n Editor.prototype.onChangeMode = function (e) {\n this.renderer.updateText();\n this._emit(\"changeMode\", e);\n };\n Editor.prototype.onChangeWrapLimit = function () {\n this.renderer.updateFull();\n };\n Editor.prototype.onChangeWrapMode = function () {\n this.renderer.onResize(true);\n };\n Editor.prototype.onChangeFold = function () {\n this.$updateHighlightActiveLine();\n this.renderer.updateFull();\n };\n Editor.prototype.getSelectedText = function () {\n return this.session.getTextRange(this.getSelectionRange());\n };\n Editor.prototype.getCopyText = function () {\n var text = this.getSelectedText();\n var nl = this.session.doc.getNewLineCharacter();\n var copyLine = false;\n if (!text && this.$copyWithEmptySelection) {\n copyLine = true;\n var ranges = this.selection.getAllRanges();\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (i && ranges[i - 1].start.row == range.start.row)\n continue;\n text += this.session.getLine(range.start.row) + nl;\n }\n }\n var e = { text: text };\n this._signal(\"copy\", e);\n clipboard.lineMode = copyLine ? e.text : false;\n return e.text;\n };\n Editor.prototype.onCopy = function () {\n this.commands.exec(\"copy\", this);\n };\n Editor.prototype.onCut = function () {\n this.commands.exec(\"cut\", this);\n };\n Editor.prototype.onPaste = function (text, event) {\n var e = { text: text, event: event };\n this.commands.exec(\"paste\", this, e);\n };\n Editor.prototype.$handlePaste = function (e) {\n if (typeof e == \"string\")\n e = { text: e };\n this._signal(\"paste\", e);\n var text = e.text;\n var lineMode = text === clipboard.lineMode;\n var session = this.session;\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode) {\n if (lineMode)\n session.insert({ row: this.selection.lead.row, column: 0 }, text);\n else\n this.insert(text);\n }\n else if (lineMode) {\n this.selection.rangeList.ranges.forEach(function (range) {\n session.insert({ row: range.start.row, column: 0 }, text);\n });\n }\n else {\n var lines = text.split(/\\r\\n|\\r|\\n/);\n var ranges = this.selection.rangeList.ranges;\n var isFullLine = lines.length == 2 && (!lines[0] || !lines[1]);\n if (lines.length != ranges.length || isFullLine)\n return this.commands.exec(\"insertstring\", this, text);\n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.isEmpty())\n session.remove(range);\n session.insert(range.start, lines[i]);\n }\n }\n };\n Editor.prototype.execCommand = function (command, args) {\n return this.commands.exec(command, this, args);\n };\n Editor.prototype.insert = function (text, pasted) {\n var session = this.session;\n var mode = session.getMode();\n var cursor = this.getCursorPosition();\n if (this.getBehavioursEnabled() && !pasted) {\n var transform = mode.transformAction(session.getState(cursor.row), 'insertion', this, session, text);\n if (transform) {\n if (text !== transform.text) {\n if (!this.inVirtualSelectionMode) {\n this.session.mergeUndoDeltas = false;\n this.mergeNextCommand = false;\n }\n }\n text = transform.text;\n }\n }\n if (text == \"\\t\")\n text = this.session.getTabString();\n if (!this.selection.isEmpty()) {\n var range = this.getSelectionRange();\n cursor = this.session.remove(range);\n this.clearSelection();\n }\n else if (this.session.getOverwrite() && text.indexOf(\"\\n\") == -1) {\n var range = new Range.fromPoints(cursor, cursor);\n range.end.column += text.length;\n this.session.remove(range);\n }\n if (text == \"\\n\" || text == \"\\r\\n\") {\n var line = session.getLine(cursor.row);\n if (cursor.column > line.search(/\\S|$/)) {\n var d = line.substr(cursor.column).search(/\\S|$/);\n session.doc.removeInLine(cursor.row, cursor.column, cursor.column + d);\n }\n }\n this.clearSelection();\n var start = cursor.column;\n var lineState = session.getState(cursor.row);\n var line = session.getLine(cursor.row);\n var shouldOutdent = mode.checkOutdent(lineState, line, text);\n session.insert(cursor, text);\n if (transform && transform.selection) {\n if (transform.selection.length == 2) { // Transform relative to the current column\n this.selection.setSelectionRange(new Range(cursor.row, start + transform.selection[0], cursor.row, start + transform.selection[1]));\n }\n else { // Transform relative to the current row.\n this.selection.setSelectionRange(new Range(cursor.row + transform.selection[0], transform.selection[1], cursor.row + transform.selection[2], transform.selection[3]));\n }\n }\n if (this.$enableAutoIndent) {\n if (session.getDocument().isNewLine(text)) {\n var lineIndent = mode.getNextLineIndent(lineState, line.slice(0, cursor.column), session.getTabString());\n session.insert({ row: cursor.row + 1, column: 0 }, lineIndent);\n }\n if (shouldOutdent)\n mode.autoOutdent(lineState, session, cursor.row);\n }\n };\n Editor.prototype.autoIndent = function () {\n var session = this.session;\n var mode = session.getMode();\n var startRow, endRow;\n if (this.selection.isEmpty()) {\n startRow = 0;\n endRow = session.doc.getLength() - 1;\n }\n else {\n var selectedRange = this.getSelectionRange();\n startRow = selectedRange.start.row;\n endRow = selectedRange.end.row;\n }\n var prevLineState = \"\";\n var prevLine = \"\";\n var lineIndent = \"\";\n var line, currIndent, range;\n var tab = session.getTabString();\n for (var row = startRow; row <= endRow; row++) {\n if (row > 0) {\n prevLineState = session.getState(row - 1);\n prevLine = session.getLine(row - 1);\n lineIndent = mode.getNextLineIndent(prevLineState, prevLine, tab);\n }\n line = session.getLine(row);\n currIndent = mode.$getIndent(line);\n if (lineIndent !== currIndent) {\n if (currIndent.length > 0) {\n range = new Range(row, 0, row, currIndent.length);\n session.remove(range);\n }\n if (lineIndent.length > 0) {\n session.insert({ row: row, column: 0 }, lineIndent);\n }\n }\n mode.autoOutdent(prevLineState, session, row);\n }\n };\n Editor.prototype.onTextInput = function (text, composition) {\n if (!composition)\n return this.keyBinding.onTextInput(text);\n this.startOperation({ command: { name: \"insertstring\" } });\n var applyComposition = this.applyComposition.bind(this, text, composition);\n if (this.selection.rangeCount)\n this.forEachSelection(applyComposition);\n else\n applyComposition();\n this.endOperation();\n };\n Editor.prototype.applyComposition = function (text, composition) {\n if (composition.extendLeft || composition.extendRight) {\n var r = this.selection.getRange();\n r.start.column -= composition.extendLeft;\n r.end.column += composition.extendRight;\n if (r.start.column < 0) {\n r.start.row--;\n r.start.column += this.session.getLine(r.start.row).length + 1;\n }\n this.selection.setRange(r);\n if (!text && !r.isEmpty())\n this.remove();\n }\n if (text || !this.selection.isEmpty())\n this.insert(text, true);\n if (composition.restoreStart || composition.restoreEnd) {\n var r = this.selection.getRange();\n r.start.column -= composition.restoreStart;\n r.end.column -= composition.restoreEnd;\n this.selection.setRange(r);\n }\n };\n Editor.prototype.onCommandKey = function (e, hashId, keyCode) {\n return this.keyBinding.onCommandKey(e, hashId, keyCode);\n };\n Editor.prototype.setOverwrite = function (overwrite) {\n this.session.setOverwrite(overwrite);\n };\n Editor.prototype.getOverwrite = function () {\n return this.session.getOverwrite();\n };\n Editor.prototype.toggleOverwrite = function () {\n this.session.toggleOverwrite();\n };\n Editor.prototype.setScrollSpeed = function (speed) {\n this.setOption(\"scrollSpeed\", speed);\n };\n Editor.prototype.getScrollSpeed = function () {\n return this.getOption(\"scrollSpeed\");\n };\n Editor.prototype.setDragDelay = function (dragDelay) {\n this.setOption(\"dragDelay\", dragDelay);\n };\n Editor.prototype.getDragDelay = function () {\n return this.getOption(\"dragDelay\");\n };\n Editor.prototype.setSelectionStyle = function (val) {\n this.setOption(\"selectionStyle\", val);\n };\n Editor.prototype.getSelectionStyle = function () {\n return this.getOption(\"selectionStyle\");\n };\n Editor.prototype.setHighlightActiveLine = function (shouldHighlight) {\n this.setOption(\"highlightActiveLine\", shouldHighlight);\n };\n Editor.prototype.getHighlightActiveLine = function () {\n return this.getOption(\"highlightActiveLine\");\n };\n Editor.prototype.setHighlightGutterLine = function (shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n Editor.prototype.getHighlightGutterLine = function () {\n return this.getOption(\"highlightGutterLine\");\n };\n Editor.prototype.setHighlightSelectedWord = function (shouldHighlight) {\n this.setOption(\"highlightSelectedWord\", shouldHighlight);\n };\n Editor.prototype.getHighlightSelectedWord = function () {\n return this.$highlightSelectedWord;\n };\n Editor.prototype.setAnimatedScroll = function (shouldAnimate) {\n this.renderer.setAnimatedScroll(shouldAnimate);\n };\n Editor.prototype.getAnimatedScroll = function () {\n return this.renderer.getAnimatedScroll();\n };\n Editor.prototype.setShowInvisibles = function (showInvisibles) {\n this.renderer.setShowInvisibles(showInvisibles);\n };\n Editor.prototype.getShowInvisibles = function () {\n return this.renderer.getShowInvisibles();\n };\n Editor.prototype.setDisplayIndentGuides = function (display) {\n this.renderer.setDisplayIndentGuides(display);\n };\n Editor.prototype.getDisplayIndentGuides = function () {\n return this.renderer.getDisplayIndentGuides();\n };\n Editor.prototype.setHighlightIndentGuides = function (highlight) {\n this.renderer.setHighlightIndentGuides(highlight);\n };\n Editor.prototype.getHighlightIndentGuides = function () {\n return this.renderer.getHighlightIndentGuides();\n };\n Editor.prototype.setShowPrintMargin = function (showPrintMargin) {\n this.renderer.setShowPrintMargin(showPrintMargin);\n };\n Editor.prototype.getShowPrintMargin = function () {\n return this.renderer.getShowPrintMargin();\n };\n Editor.prototype.setPrintMarginColumn = function (showPrintMargin) {\n this.renderer.setPrintMarginColumn(showPrintMargin);\n };\n Editor.prototype.getPrintMarginColumn = function () {\n return this.renderer.getPrintMarginColumn();\n };\n Editor.prototype.setReadOnly = function (readOnly) {\n this.setOption(\"readOnly\", readOnly);\n };\n Editor.prototype.getReadOnly = function () {\n return this.getOption(\"readOnly\");\n };\n Editor.prototype.setBehavioursEnabled = function (enabled) {\n this.setOption(\"behavioursEnabled\", enabled);\n };\n Editor.prototype.getBehavioursEnabled = function () {\n return this.getOption(\"behavioursEnabled\");\n };\n Editor.prototype.setWrapBehavioursEnabled = function (enabled) {\n this.setOption(\"wrapBehavioursEnabled\", enabled);\n };\n Editor.prototype.getWrapBehavioursEnabled = function () {\n return this.getOption(\"wrapBehavioursEnabled\");\n };\n Editor.prototype.setShowFoldWidgets = function (show) {\n this.setOption(\"showFoldWidgets\", show);\n };\n Editor.prototype.getShowFoldWidgets = function () {\n return this.getOption(\"showFoldWidgets\");\n };\n Editor.prototype.setFadeFoldWidgets = function (fade) {\n this.setOption(\"fadeFoldWidgets\", fade);\n };\n Editor.prototype.getFadeFoldWidgets = function () {\n return this.getOption(\"fadeFoldWidgets\");\n };\n Editor.prototype.remove = function (dir) {\n if (this.selection.isEmpty()) {\n if (dir == \"left\")\n this.selection.selectLeft();\n else\n this.selection.selectRight();\n }\n var range = this.getSelectionRange();\n if (this.getBehavioursEnabled()) {\n var session = this.session;\n var state = session.getState(range.start.row);\n var new_range = session.getMode().transformAction(state, 'deletion', this, session, range);\n if (range.end.column === 0) {\n var text = session.getTextRange(range);\n if (text[text.length - 1] == \"\\n\") {\n var line = session.getLine(range.end.row);\n if (/^\\s+$/.test(line)) {\n range.end.column = line.length;\n }\n }\n }\n if (new_range)\n range = new_range;\n }\n this.session.remove(range);\n this.clearSelection();\n };\n Editor.prototype.removeWordRight = function () {\n if (this.selection.isEmpty())\n this.selection.selectWordRight();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeWordLeft = function () {\n if (this.selection.isEmpty())\n this.selection.selectWordLeft();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeToLineStart = function () {\n if (this.selection.isEmpty())\n this.selection.selectLineStart();\n if (this.selection.isEmpty())\n this.selection.selectLeft();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeToLineEnd = function () {\n if (this.selection.isEmpty())\n this.selection.selectLineEnd();\n var range = this.getSelectionRange();\n if (range.start.column == range.end.column && range.start.row == range.end.row) {\n range.end.column = 0;\n range.end.row++;\n }\n this.session.remove(range);\n this.clearSelection();\n };\n Editor.prototype.splitLine = function () {\n if (!this.selection.isEmpty()) {\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n }\n var cursor = this.getCursorPosition();\n this.insert(\"\\n\");\n this.moveCursorToPosition(cursor);\n };\n Editor.prototype.setGhostText = function (text, position) {\n if (!this.session.widgetManager) {\n this.session.widgetManager = new LineWidgets(this.session);\n this.session.widgetManager.attach(this);\n }\n this.renderer.setGhostText(text, position);\n };\n Editor.prototype.removeGhostText = function () {\n if (!this.session.widgetManager)\n return;\n this.renderer.removeGhostText();\n };\n Editor.prototype.transposeLetters = function () {\n if (!this.selection.isEmpty()) {\n return;\n }\n var cursor = this.getCursorPosition();\n var column = cursor.column;\n if (column === 0)\n return;\n var line = this.session.getLine(cursor.row);\n var swap, range;\n if (column < line.length) {\n swap = line.charAt(column) + line.charAt(column - 1);\n range = new Range(cursor.row, column - 1, cursor.row, column + 1);\n }\n else {\n swap = line.charAt(column - 1) + line.charAt(column - 2);\n range = new Range(cursor.row, column - 2, cursor.row, column);\n }\n this.session.replace(range, swap);\n this.session.selection.moveToPosition(range.end);\n };\n Editor.prototype.toLowerCase = function () {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toLowerCase());\n this.selection.setSelectionRange(originalRange);\n };\n Editor.prototype.toUpperCase = function () {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toUpperCase());\n this.selection.setSelectionRange(originalRange);\n };\n Editor.prototype.indent = function () {\n var session = this.session;\n var range = this.getSelectionRange();\n if (range.start.row < range.end.row) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n else if (range.start.column < range.end.column) {\n var text = session.getTextRange(range);\n if (!/^\\s+$/.test(text)) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n }\n var line = session.getLine(range.start.row);\n var position = range.start;\n var size = session.getTabSize();\n var column = session.documentToScreenColumn(position.row, position.column);\n if (this.session.getUseSoftTabs()) {\n var count = (size - column % size);\n var indentString = lang.stringRepeat(\" \", count);\n }\n else {\n var count = column % size;\n while (line[range.start.column - 1] == \" \" && count) {\n range.start.column--;\n count--;\n }\n this.selection.setSelectionRange(range);\n indentString = \"\\t\";\n }\n return this.insert(indentString);\n };\n Editor.prototype.blockIndent = function () {\n var rows = this.$getSelectedRows();\n this.session.indentRows(rows.first, rows.last, \"\\t\");\n };\n Editor.prototype.blockOutdent = function () {\n var selection = this.session.getSelection();\n this.session.outdentRows(selection.getRange());\n };\n Editor.prototype.sortLines = function () {\n var rows = this.$getSelectedRows();\n var session = this.session;\n var lines = [];\n for (var i = rows.first; i <= rows.last; i++)\n lines.push(session.getLine(i));\n lines.sort(function (a, b) {\n if (a.toLowerCase() < b.toLowerCase())\n return -1;\n if (a.toLowerCase() > b.toLowerCase())\n return 1;\n return 0;\n });\n var deleteRange = new Range(0, 0, 0, 0);\n for (var i = rows.first; i <= rows.last; i++) {\n var line = session.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n deleteRange.end.column = line.length;\n session.replace(deleteRange, lines[i - rows.first]);\n }\n };\n Editor.prototype.toggleCommentLines = function () {\n var state = this.session.getState(this.getCursorPosition().row);\n var rows = this.$getSelectedRows();\n this.session.getMode().toggleCommentLines(state, this.session, rows.first, rows.last);\n };\n Editor.prototype.toggleBlockComment = function () {\n var cursor = this.getCursorPosition();\n var state = this.session.getState(cursor.row);\n var range = this.getSelectionRange();\n this.session.getMode().toggleBlockComment(state, this.session, range, cursor);\n };\n Editor.prototype.getNumberAt = function (row, column) {\n var _numberRx = /[\\-]?[0-9]+(?:\\.[0-9]+)?/g;\n _numberRx.lastIndex = 0;\n var s = this.session.getLine(row);\n while (_numberRx.lastIndex < column) {\n var m = _numberRx.exec(s);\n if (m.index <= column && m.index + m[0].length >= column) {\n var number = {\n value: m[0],\n start: m.index,\n end: m.index + m[0].length\n };\n return number;\n }\n }\n return null;\n };\n Editor.prototype.modifyNumber = function (amount) {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n var charRange = new Range(row, column - 1, row, column);\n var c = this.session.getTextRange(charRange);\n if (!isNaN(parseFloat(c)) && isFinite(c)) {\n var nr = this.getNumberAt(row, column);\n if (nr) {\n var fp = nr.value.indexOf(\".\") >= 0 ? nr.start + nr.value.indexOf(\".\") + 1 : nr.end;\n var decimals = nr.start + nr.value.length - fp;\n var t = parseFloat(nr.value);\n t *= Math.pow(10, decimals);\n if (fp !== nr.end && column < fp) {\n amount *= Math.pow(10, nr.end - column - 1);\n }\n else {\n amount *= Math.pow(10, nr.end - column);\n }\n t += amount;\n t /= Math.pow(10, decimals);\n var nnr = t.toFixed(decimals);\n var replaceRange = new Range(row, nr.start, row, nr.end);\n this.session.replace(replaceRange, nnr);\n this.moveCursorTo(row, Math.max(nr.start + 1, column + nnr.length - nr.value.length));\n }\n }\n else {\n this.toggleWord();\n }\n };\n Editor.prototype.toggleWord = function () {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n this.selection.selectWord();\n var currentState = this.getSelectedText();\n var currWordStart = this.selection.getWordRange().start.column;\n var wordParts = currentState.replace(/([a-z]+|[A-Z]+)(?=[A-Z_]|$)/g, '$1 ').split(/\\s/);\n var delta = column - currWordStart - 1;\n if (delta < 0)\n delta = 0;\n var curLength = 0, itLength = 0;\n var that = this;\n if (currentState.match(/[A-Za-z0-9_]+/)) {\n wordParts.forEach(function (item, i) {\n itLength = curLength + item.length;\n if (delta >= curLength && delta <= itLength) {\n currentState = item;\n that.selection.clearSelection();\n that.moveCursorTo(row, curLength + currWordStart);\n that.selection.selectTo(row, itLength + currWordStart);\n }\n curLength = itLength;\n });\n }\n var wordPairs = this.$toggleWordPairs;\n var reg;\n for (var i = 0; i < wordPairs.length; i++) {\n var item = wordPairs[i];\n for (var j = 0; j <= 1; j++) {\n var negate = +!j;\n var firstCondition = currentState.match(new RegExp('^\\\\s?_?(' + lang.escapeRegExp(item[j]) + ')\\\\s?$', 'i'));\n if (firstCondition) {\n var secondCondition = currentState.match(new RegExp('([_]|^|\\\\s)(' + lang.escapeRegExp(firstCondition[1]) + ')($|\\\\s)', 'g'));\n if (secondCondition) {\n reg = currentState.replace(new RegExp(lang.escapeRegExp(item[j]), 'i'), function (result) {\n var res = item[negate];\n if (result.toUpperCase() == result) {\n res = res.toUpperCase();\n }\n else if (result.charAt(0).toUpperCase() == result.charAt(0)) {\n res = res.substr(0, 0) + item[negate].charAt(0).toUpperCase() + res.substr(1);\n }\n return res;\n });\n this.insert(reg);\n reg = \"\";\n }\n }\n }\n }\n };\n Editor.prototype.findLinkAt = function (row, column) {\n var e_1, _a;\n var line = this.session.getLine(row);\n var wordParts = line.split(/((?:https?|ftp):\\/\\/[\\S]+)/);\n var columnPosition = column;\n if (columnPosition < 0)\n columnPosition = 0;\n var previousPosition = 0, currentPosition = 0, match;\n try {\n for (var wordParts_1 = __values(wordParts), wordParts_1_1 = wordParts_1.next(); !wordParts_1_1.done; wordParts_1_1 = wordParts_1.next()) {\n var item = wordParts_1_1.value;\n currentPosition = previousPosition + item.length;\n if (columnPosition >= previousPosition && columnPosition <= currentPosition) {\n if (item.match(/((?:https?|ftp):\\/\\/[\\S]+)/)) {\n match = item.replace(/[\\s:.,'\";}\\]]+$/, \"\");\n break;\n }\n }\n previousPosition = currentPosition;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (wordParts_1_1 && !wordParts_1_1.done && (_a = wordParts_1.return)) _a.call(wordParts_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return match;\n };\n Editor.prototype.openLink = function () {\n var cursor = this.selection.getCursor();\n var url = this.findLinkAt(cursor.row, cursor.column);\n if (url)\n window.open(url, '_blank');\n return url != null;\n };\n Editor.prototype.removeLines = function () {\n var rows = this.$getSelectedRows();\n this.session.removeFullLines(rows.first, rows.last);\n this.clearSelection();\n };\n Editor.prototype.duplicateSelection = function () {\n var sel = this.selection;\n var doc = this.session;\n var range = sel.getRange();\n var reverse = sel.isBackwards();\n if (range.isEmpty()) {\n var row = range.start.row;\n doc.duplicateLines(row, row);\n }\n else {\n var point = reverse ? range.start : range.end;\n var endPoint = doc.insert(point, doc.getTextRange(range), false);\n range.start = point;\n range.end = endPoint;\n sel.setSelectionRange(range, reverse);\n }\n };\n Editor.prototype.moveLinesDown = function () {\n this.$moveLines(1, false);\n };\n Editor.prototype.moveLinesUp = function () {\n this.$moveLines(-1, false);\n };\n Editor.prototype.moveText = function (range, toPosition, copy) {\n return this.session.moveText(range, toPosition, copy);\n };\n Editor.prototype.copyLinesUp = function () {\n this.$moveLines(-1, true);\n };\n Editor.prototype.copyLinesDown = function () {\n this.$moveLines(1, true);\n };\n Editor.prototype.$moveLines = function (dir, copy) {\n var rows, moved;\n var selection = this.selection;\n if (!selection.inMultiSelectMode || this.inVirtualSelectionMode) {\n var range = selection.toOrientedRange();\n rows = this.$getSelectedRows(range);\n moved = this.session.$moveLines(rows.first, rows.last, copy ? 0 : dir);\n if (copy && dir == -1)\n moved = 0;\n range.moveBy(moved, 0);\n selection.fromOrientedRange(range);\n }\n else {\n var ranges = selection.rangeList.ranges;\n selection.rangeList.detach(this.session);\n this.inVirtualSelectionMode = true;\n var diff = 0;\n var totalDiff = 0;\n var l = ranges.length;\n for (var i = 0; i < l; i++) {\n var rangeIndex = i;\n ranges[i].moveBy(diff, 0);\n rows = this.$getSelectedRows(ranges[i]);\n var first = rows.first;\n var last = rows.last;\n while (++i < l) {\n if (totalDiff)\n ranges[i].moveBy(totalDiff, 0);\n var subRows = this.$getSelectedRows(ranges[i]);\n if (copy && subRows.first != last)\n break;\n else if (!copy && subRows.first > last + 1)\n break;\n last = subRows.last;\n }\n i--;\n diff = this.session.$moveLines(first, last, copy ? 0 : dir);\n if (copy && dir == -1)\n rangeIndex = i + 1;\n while (rangeIndex <= i) {\n ranges[rangeIndex].moveBy(diff, 0);\n rangeIndex++;\n }\n if (!copy)\n diff = 0;\n totalDiff += diff;\n }\n selection.fromOrientedRange(selection.ranges[0]);\n selection.rangeList.attach(this.session);\n this.inVirtualSelectionMode = false;\n }\n };\n Editor.prototype.$getSelectedRows = function (range) {\n range = (range || this.getSelectionRange()).collapseRows();\n return {\n first: this.session.getRowFoldStart(range.start.row),\n last: this.session.getRowFoldEnd(range.end.row)\n };\n };\n Editor.prototype.onCompositionStart = function (compositionState) {\n this.renderer.showComposition(compositionState);\n };\n Editor.prototype.onCompositionUpdate = function (text) {\n this.renderer.setCompositionText(text);\n };\n Editor.prototype.onCompositionEnd = function () {\n this.renderer.hideComposition();\n };\n Editor.prototype.getFirstVisibleRow = function () {\n return this.renderer.getFirstVisibleRow();\n };\n Editor.prototype.getLastVisibleRow = function () {\n return this.renderer.getLastVisibleRow();\n };\n Editor.prototype.isRowVisible = function (row) {\n return (row >= this.getFirstVisibleRow() && row <= this.getLastVisibleRow());\n };\n Editor.prototype.isRowFullyVisible = function (row) {\n return (row >= this.renderer.getFirstFullyVisibleRow() && row <= this.renderer.getLastFullyVisibleRow());\n };\n Editor.prototype.$getVisibleRowCount = function () {\n return this.renderer.getScrollBottomRow() - this.renderer.getScrollTopRow() + 1;\n };\n Editor.prototype.$moveByPage = function (dir, select) {\n var renderer = this.renderer;\n var config = this.renderer.layerConfig;\n var rows = dir * Math.floor(config.height / config.lineHeight);\n if (select === true) {\n this.selection.$moveSelection(function () {\n this.moveCursorBy(rows, 0);\n });\n }\n else if (select === false) {\n this.selection.moveCursorBy(rows, 0);\n this.selection.clearSelection();\n }\n var scrollTop = renderer.scrollTop;\n renderer.scrollBy(0, rows * config.lineHeight);\n if (select != null)\n renderer.scrollCursorIntoView(null, 0.5);\n renderer.animateScrolling(scrollTop);\n };\n Editor.prototype.selectPageDown = function () {\n this.$moveByPage(1, true);\n };\n Editor.prototype.selectPageUp = function () {\n this.$moveByPage(-1, true);\n };\n Editor.prototype.gotoPageDown = function () {\n this.$moveByPage(1, false);\n };\n Editor.prototype.gotoPageUp = function () {\n this.$moveByPage(-1, false);\n };\n Editor.prototype.scrollPageDown = function () {\n this.$moveByPage(1);\n };\n Editor.prototype.scrollPageUp = function () {\n this.$moveByPage(-1);\n };\n Editor.prototype.scrollToRow = function (row) {\n this.renderer.scrollToRow(row);\n };\n Editor.prototype.scrollToLine = function (line, center, animate, callback) {\n this.renderer.scrollToLine(line, center, animate, callback);\n };\n Editor.prototype.centerSelection = function () {\n var range = this.getSelectionRange();\n var pos = {\n row: Math.floor(range.start.row + (range.end.row - range.start.row) / 2),\n column: Math.floor(range.start.column + (range.end.column - range.start.column) / 2)\n };\n this.renderer.alignCursor(pos, 0.5);\n };\n Editor.prototype.getCursorPosition = function () {\n return this.selection.getCursor();\n };\n Editor.prototype.getCursorPositionScreen = function () {\n return this.session.documentToScreenPosition(this.getCursorPosition());\n };\n Editor.prototype.getSelectionRange = function () {\n return this.selection.getRange();\n };\n Editor.prototype.selectAll = function () {\n this.selection.selectAll();\n };\n Editor.prototype.clearSelection = function () {\n this.selection.clearSelection();\n };\n Editor.prototype.moveCursorTo = function (row, column) {\n this.selection.moveCursorTo(row, column);\n };\n Editor.prototype.moveCursorToPosition = function (pos) {\n this.selection.moveCursorToPosition(pos);\n };\n Editor.prototype.jumpToMatching = function (select, expand) {\n var cursor = this.getCursorPosition();\n var iterator = new TokenIterator(this.session, cursor.row, cursor.column);\n var prevToken = iterator.getCurrentToken();\n var tokenCount = 0;\n if (prevToken && prevToken.type.indexOf('tag-name') !== -1) {\n prevToken = iterator.stepBackward();\n }\n var token = prevToken || iterator.stepForward();\n if (!token)\n return;\n var matchType;\n var found = false;\n var depth = {};\n var i = cursor.column - token.start;\n var bracketType;\n var brackets = {\n \")\": \"(\",\n \"(\": \"(\",\n \"]\": \"[\",\n \"[\": \"[\",\n \"{\": \"{\",\n \"}\": \"{\"\n };\n do {\n if (token.value.match(/[{}()\\[\\]]/g)) {\n for (; i < token.value.length && !found; i++) {\n if (!brackets[token.value[i]]) {\n continue;\n }\n bracketType = brackets[token.value[i]] + '.' + token.type.replace(\"rparen\", \"lparen\");\n if (isNaN(depth[bracketType])) {\n depth[bracketType] = 0;\n }\n switch (token.value[i]) {\n case '(':\n case '[':\n case '{':\n depth[bracketType]++;\n break;\n case ')':\n case ']':\n case '}':\n depth[bracketType]--;\n if (depth[bracketType] === -1) {\n matchType = 'bracket';\n found = true;\n }\n break;\n }\n }\n }\n else if (token.type.indexOf('tag-name') !== -1) {\n if (isNaN(depth[token.value])) {\n depth[token.value] = 0;\n }\n if (prevToken.value === '<' && tokenCount > 1) {\n depth[token.value]++;\n }\n else if (prevToken.value === '= 0; --i) {\n if (this.$tryReplace(ranges[i], replacement)) {\n replaced++;\n }\n }\n this.selection.setSelectionRange(selection);\n return replaced;\n };\n Editor.prototype.$tryReplace = function (range, replacement) {\n var input = this.session.getTextRange(range);\n replacement = this.$search.replace(input, replacement);\n if (replacement !== null) {\n range.end = this.session.replace(range, replacement);\n return range;\n }\n else {\n return null;\n }\n };\n Editor.prototype.getLastSearchOptions = function () {\n return this.$search.getOptions();\n };\n Editor.prototype.find = function (needle, options, animate) {\n if (!options)\n options = {};\n if (typeof needle == \"string\" || needle instanceof RegExp)\n options.needle = needle;\n else if (typeof needle == \"object\")\n oop.mixin(options, needle);\n var range = this.selection.getRange();\n if (options.needle == null) {\n needle = this.session.getTextRange(range)\n || this.$search.$options.needle;\n if (!needle) {\n range = this.session.getWordRange(range.start.row, range.start.column);\n needle = this.session.getTextRange(range);\n }\n this.$search.set({ needle: needle });\n }\n this.$search.set(options);\n if (!options.start)\n this.$search.set({ start: range });\n var newRange = this.$search.find(this.session);\n if (options.preventScroll)\n return newRange;\n if (newRange) {\n this.revealRange(newRange, animate);\n return newRange;\n }\n if (options.backwards)\n range.start = range.end;\n else\n range.end = range.start;\n this.selection.setRange(range);\n };\n Editor.prototype.findNext = function (options, animate) {\n this.find({ skipCurrent: true, backwards: false }, options, animate);\n };\n Editor.prototype.findPrevious = function (options, animate) {\n this.find(options, { skipCurrent: true, backwards: true }, animate);\n };\n Editor.prototype.revealRange = function (range, animate) {\n this.session.unfold(range);\n this.selection.setSelectionRange(range);\n var scrollTop = this.renderer.scrollTop;\n this.renderer.scrollSelectionIntoView(range.start, range.end, 0.5);\n if (animate !== false)\n this.renderer.animateScrolling(scrollTop);\n };\n Editor.prototype.undo = function () {\n this.session.getUndoManager().undo(this.session);\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n Editor.prototype.redo = function () {\n this.session.getUndoManager().redo(this.session);\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n Editor.prototype.destroy = function () {\n if (this.$toDestroy) {\n this.$toDestroy.forEach(function (el) {\n el.destroy();\n });\n this.$toDestroy = null;\n }\n if (this.$mouseHandler)\n this.$mouseHandler.destroy();\n this.renderer.destroy();\n this._signal(\"destroy\", this);\n if (this.session)\n this.session.destroy();\n if (this._$emitInputEvent)\n this._$emitInputEvent.cancel();\n this.removeAllListeners();\n };\n Editor.prototype.setAutoScrollEditorIntoView = function (enable) {\n if (!enable)\n return;\n var rect;\n var self = this;\n var shouldScroll = false;\n if (!this.$scrollAnchor)\n this.$scrollAnchor = document.createElement(\"div\");\n var scrollAnchor = this.$scrollAnchor;\n scrollAnchor.style.cssText = \"position:absolute\";\n this.container.insertBefore(scrollAnchor, this.container.firstChild);\n var onChangeSelection = this.on(\"changeSelection\", function () {\n shouldScroll = true;\n });\n var onBeforeRender = this.renderer.on(\"beforeRender\", function () {\n if (shouldScroll)\n rect = self.renderer.container.getBoundingClientRect();\n });\n var onAfterRender = this.renderer.on(\"afterRender\", function () {\n if (shouldScroll && rect && (self.isFocused()\n || self.searchBox && self.searchBox.isFocused())) {\n var renderer = self.renderer;\n var pos = renderer.$cursorLayer.$pixelPos;\n var config = renderer.layerConfig;\n var top = pos.top - config.offset;\n if (pos.top >= 0 && top + rect.top < 0) {\n shouldScroll = true;\n }\n else if (pos.top < config.height &&\n pos.top + rect.top + config.lineHeight > window.innerHeight) {\n shouldScroll = false;\n }\n else {\n shouldScroll = null;\n }\n if (shouldScroll != null) {\n scrollAnchor.style.top = top + \"px\";\n scrollAnchor.style.left = pos.left + \"px\";\n scrollAnchor.style.height = config.lineHeight + \"px\";\n scrollAnchor.scrollIntoView(shouldScroll);\n }\n shouldScroll = rect = null;\n }\n });\n this.setAutoScrollEditorIntoView = function (enable) {\n if (enable)\n return;\n delete this.setAutoScrollEditorIntoView;\n this.off(\"changeSelection\", onChangeSelection);\n this.renderer.off(\"afterRender\", onAfterRender);\n this.renderer.off(\"beforeRender\", onBeforeRender);\n };\n };\n Editor.prototype.$resetCursorStyle = function () {\n var style = this.$cursorStyle || \"ace\";\n var cursorLayer = this.renderer.$cursorLayer;\n if (!cursorLayer)\n return;\n cursorLayer.setSmoothBlinking(/smooth/.test(style));\n cursorLayer.isBlinking = !this.$readOnly && style != \"wide\";\n dom.setCssClass(cursorLayer.element, \"ace_slim-cursors\", /slim/.test(style));\n };\n Editor.prototype.prompt = function (message, options, callback) {\n var editor = this;\n config.loadModule(\"ace/ext/prompt\", function (module) {\n module.prompt(editor, message, options, callback);\n });\n };\n return Editor;\n}());\nEditor.$uid = 0;\nEditor.prototype.curOp = null;\nEditor.prototype.prevOp = {};\nEditor.prototype.$mergeableCommands = [\"backspace\", \"del\", \"insertstring\"];\nEditor.prototype.$toggleWordPairs = [\n [\"first\", \"last\"],\n [\"true\", \"false\"],\n [\"yes\", \"no\"],\n [\"width\", \"height\"],\n [\"top\", \"bottom\"],\n [\"right\", \"left\"],\n [\"on\", \"off\"],\n [\"x\", \"y\"],\n [\"get\", \"set\"],\n [\"max\", \"min\"],\n [\"horizontal\", \"vertical\"],\n [\"show\", \"hide\"],\n [\"add\", \"remove\"],\n [\"up\", \"down\"],\n [\"before\", \"after\"],\n [\"even\", \"odd\"],\n [\"in\", \"out\"],\n [\"inside\", \"outside\"],\n [\"next\", \"previous\"],\n [\"increase\", \"decrease\"],\n [\"attach\", \"detach\"],\n [\"&&\", \"||\"],\n [\"==\", \"!=\"]\n];\noop.implement(Editor.prototype, EventEmitter);\nconfig.defineOptions(Editor.prototype, \"editor\", {\n selectionStyle: {\n set: function (style) {\n this.onSelectionChange();\n this._signal(\"changeSelectionStyle\", { data: style });\n },\n initialValue: \"line\"\n },\n highlightActiveLine: {\n set: function () { this.$updateHighlightActiveLine(); },\n initialValue: true\n },\n highlightSelectedWord: {\n set: function (shouldHighlight) { this.$onSelectionChange(); },\n initialValue: true\n },\n readOnly: {\n set: function (readOnly) {\n this.textInput.setReadOnly(readOnly);\n this.$resetCursorStyle();\n },\n initialValue: false\n },\n copyWithEmptySelection: {\n set: function (value) {\n this.textInput.setCopyWithEmptySelection(value);\n },\n initialValue: false\n },\n cursorStyle: {\n set: function (val) { this.$resetCursorStyle(); },\n values: [\"ace\", \"slim\", \"smooth\", \"wide\"],\n initialValue: \"ace\"\n },\n mergeUndoDeltas: {\n values: [false, true, \"always\"],\n initialValue: true\n },\n behavioursEnabled: { initialValue: true },\n wrapBehavioursEnabled: { initialValue: true },\n enableAutoIndent: { initialValue: true },\n autoScrollEditorIntoView: {\n set: function (val) { this.setAutoScrollEditorIntoView(val); }\n },\n keyboardHandler: {\n set: function (val) { this.setKeyboardHandler(val); },\n get: function () { return this.$keybindingId; },\n handlesSet: true\n },\n value: {\n set: function (val) { this.session.setValue(val); },\n get: function () { return this.getValue(); },\n handlesSet: true,\n hidden: true\n },\n session: {\n set: function (val) { this.setSession(val); },\n get: function () { return this.session; },\n handlesSet: true,\n hidden: true\n },\n showLineNumbers: {\n set: function (show) {\n this.renderer.$gutterLayer.setShowLineNumbers(show);\n this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER);\n if (show && this.$relativeLineNumbers)\n relativeNumberRenderer.attach(this);\n else\n relativeNumberRenderer.detach(this);\n },\n initialValue: true\n },\n relativeLineNumbers: {\n set: function (value) {\n if (this.$showLineNumbers && value)\n relativeNumberRenderer.attach(this);\n else\n relativeNumberRenderer.detach(this);\n }\n },\n placeholder: {\n set: function (message) {\n if (!this.$updatePlaceholder) {\n this.$updatePlaceholder = function () {\n var hasValue = this.session && (this.renderer.$composition ||\n this.session.getLength() > 1 || this.session.getLine(0).length > 0);\n if (hasValue && this.renderer.placeholderNode) {\n this.renderer.off(\"afterRender\", this.$updatePlaceholder);\n dom.removeCssClass(this.container, \"ace_hasPlaceholder\");\n this.renderer.placeholderNode.remove();\n this.renderer.placeholderNode = null;\n }\n else if (!hasValue && !this.renderer.placeholderNode) {\n this.renderer.on(\"afterRender\", this.$updatePlaceholder);\n dom.addCssClass(this.container, \"ace_hasPlaceholder\");\n var el = dom.createElement(\"div\");\n el.className = \"ace_placeholder\";\n el.textContent = this.$placeholder || \"\";\n this.renderer.placeholderNode = el;\n this.renderer.content.appendChild(this.renderer.placeholderNode);\n }\n else if (!hasValue && this.renderer.placeholderNode) {\n this.renderer.placeholderNode.textContent = this.$placeholder || \"\";\n }\n }.bind(this);\n this.on(\"input\", this.$updatePlaceholder);\n }\n this.$updatePlaceholder();\n }\n },\n enableKeyboardAccessibility: {\n set: function (value) {\n var blurCommand = {\n name: \"blurTextInput\",\n description: \"Set focus to the editor content div to allow tabbing through the page\",\n bindKey: \"Esc\",\n exec: function (editor) {\n editor.blur();\n editor.renderer.scroller.focus();\n },\n readOnly: true\n };\n var focusOnEnterKeyup = function (e) {\n if (e.target == this.renderer.scroller && e.keyCode === keys['enter']) {\n e.preventDefault();\n var row = this.getCursorPosition().row;\n if (!this.isRowVisible(row))\n this.scrollToLine(row, true, true);\n this.focus();\n }\n };\n var gutterKeyboardHandler;\n if (value) {\n this.renderer.enableKeyboardAccessibility = true;\n this.renderer.keyboardFocusClassName = \"ace_keyboard-focus\";\n this.textInput.getElement().setAttribute(\"tabindex\", -1);\n this.textInput.setNumberOfExtraLines(useragent.isWin ? 3 : 0);\n this.renderer.scroller.setAttribute(\"tabindex\", 0);\n this.renderer.scroller.setAttribute(\"role\", \"group\");\n this.renderer.scroller.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName);\n this.renderer.scroller.setAttribute(\"aria-label\", nls(\"Editor content, press Enter to start editing, press Escape to exit\"));\n this.renderer.scroller.addEventListener(\"keyup\", focusOnEnterKeyup.bind(this));\n this.commands.addCommand(blurCommand);\n this.renderer.$gutter.setAttribute(\"tabindex\", 0);\n this.renderer.$gutter.setAttribute(\"aria-hidden\", false);\n this.renderer.$gutter.setAttribute(\"role\", \"group\");\n this.renderer.$gutter.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n this.renderer.$gutter.setAttribute(\"aria-label\", nls(\"Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit\"));\n this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName);\n this.renderer.content.setAttribute(\"aria-hidden\", true);\n if (!gutterKeyboardHandler)\n gutterKeyboardHandler = new GutterKeyboardHandler(this);\n gutterKeyboardHandler.addListener();\n }\n else {\n this.renderer.enableKeyboardAccessibility = false;\n this.textInput.getElement().setAttribute(\"tabindex\", 0);\n this.textInput.setNumberOfExtraLines(0);\n this.renderer.scroller.setAttribute(\"tabindex\", -1);\n this.renderer.scroller.removeAttribute(\"role\");\n this.renderer.scroller.removeAttribute(\"aria-roledescription\");\n this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName);\n this.renderer.scroller.removeAttribute(\"aria-label\");\n this.renderer.scroller.removeEventListener(\"keyup\", focusOnEnterKeyup.bind(this));\n this.commands.removeCommand(blurCommand);\n this.renderer.content.removeAttribute(\"aria-hidden\");\n this.renderer.$gutter.setAttribute(\"tabindex\", -1);\n this.renderer.$gutter.setAttribute(\"aria-hidden\", true);\n this.renderer.$gutter.removeAttribute(\"role\");\n this.renderer.$gutter.removeAttribute(\"aria-roledescription\");\n this.renderer.$gutter.removeAttribute(\"aria-label\");\n this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName);\n if (gutterKeyboardHandler)\n gutterKeyboardHandler.removeListener();\n }\n },\n initialValue: false\n },\n customScrollbar: \"renderer\",\n hScrollBarAlwaysVisible: \"renderer\",\n vScrollBarAlwaysVisible: \"renderer\",\n highlightGutterLine: \"renderer\",\n animatedScroll: \"renderer\",\n showInvisibles: \"renderer\",\n showPrintMargin: \"renderer\",\n printMarginColumn: \"renderer\",\n printMargin: \"renderer\",\n fadeFoldWidgets: \"renderer\",\n showFoldWidgets: \"renderer\",\n displayIndentGuides: \"renderer\",\n highlightIndentGuides: \"renderer\",\n showGutter: \"renderer\",\n fontSize: \"renderer\",\n fontFamily: \"renderer\",\n maxLines: \"renderer\",\n minLines: \"renderer\",\n scrollPastEnd: \"renderer\",\n fixedWidthGutter: \"renderer\",\n theme: \"renderer\",\n hasCssTransforms: \"renderer\",\n maxPixelHeight: \"renderer\",\n useTextareaForIME: \"renderer\",\n useResizeObserver: \"renderer\",\n useSvgGutterIcons: \"renderer\",\n showFoldedAnnotations: \"renderer\",\n scrollSpeed: \"$mouseHandler\",\n dragDelay: \"$mouseHandler\",\n dragEnabled: \"$mouseHandler\",\n focusTimeout: \"$mouseHandler\",\n tooltipFollowsMouse: \"$mouseHandler\",\n firstLineNumber: \"session\",\n overwrite: \"session\",\n newLineMode: \"session\",\n useWorker: \"session\",\n useSoftTabs: \"session\",\n navigateWithinSoftTabs: \"session\",\n tabSize: \"session\",\n wrap: \"session\",\n indentedSoftWrap: \"session\",\n foldStyle: \"session\",\n mode: \"session\"\n});\nvar relativeNumberRenderer = {\n getText: function (session, row) {\n return (Math.abs(session.selection.lead.row - row) || (row + 1 + (row < 9 ? \"\\xb7\" : \"\"))) + \"\";\n },\n getWidth: function (session, lastLineNumber, config) {\n return Math.max(lastLineNumber.toString().length, (config.lastRow + 1).toString().length, 2) * config.characterWidth;\n },\n update: function (e, editor) {\n editor.renderer.$loop.schedule(editor.renderer.CHANGE_GUTTER);\n },\n attach: function (editor) {\n editor.renderer.$gutterLayer.$renderer = this;\n editor.on(\"changeSelection\", this.update);\n this.update(null, editor);\n },\n detach: function (editor) {\n if (editor.renderer.$gutterLayer.$renderer == this)\n editor.renderer.$gutterLayer.$renderer = null;\n editor.off(\"changeSelection\", this.update);\n this.update(null, editor);\n }\n};\nexports.Editor = Editor;\n\n});\n\nace.define(\"ace/layer/lines\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar Lines = /** @class */ (function () {\n function Lines(element, canvasHeight) {\n this.element = element;\n this.canvasHeight = canvasHeight || 500000;\n this.element.style.height = (this.canvasHeight * 2) + \"px\";\n this.cells = [];\n this.cellCache = [];\n this.$offsetCoefficient = 0;\n }\n Lines.prototype.moveContainer = function (config) {\n dom.translate(this.element, 0, -((config.firstRowScreen * config.lineHeight) % this.canvasHeight) - config.offset * this.$offsetCoefficient);\n };\n Lines.prototype.pageChanged = function (oldConfig, newConfig) {\n return (Math.floor((oldConfig.firstRowScreen * oldConfig.lineHeight) / this.canvasHeight) !==\n Math.floor((newConfig.firstRowScreen * newConfig.lineHeight) / this.canvasHeight));\n };\n Lines.prototype.computeLineTop = function (row, config, session) {\n var screenTop = config.firstRowScreen * config.lineHeight;\n var screenPage = Math.floor(screenTop / this.canvasHeight);\n var lineTop = session.documentToScreenRow(row, 0) * config.lineHeight;\n return lineTop - (screenPage * this.canvasHeight);\n };\n Lines.prototype.computeLineHeight = function (row, config, session) {\n return config.lineHeight * session.getRowLineCount(row);\n };\n Lines.prototype.getLength = function () {\n return this.cells.length;\n };\n Lines.prototype.get = function (index) {\n return this.cells[index];\n };\n Lines.prototype.shift = function () {\n this.$cacheCell(this.cells.shift());\n };\n Lines.prototype.pop = function () {\n this.$cacheCell(this.cells.pop());\n };\n Lines.prototype.push = function (cell) {\n if (Array.isArray(cell)) {\n this.cells.push.apply(this.cells, cell);\n var fragment = dom.createFragment(this.element);\n for (var i = 0; i < cell.length; i++) {\n fragment.appendChild(cell[i].element);\n }\n this.element.appendChild(fragment);\n }\n else {\n this.cells.push(cell);\n this.element.appendChild(cell.element);\n }\n };\n Lines.prototype.unshift = function (cell) {\n if (Array.isArray(cell)) {\n this.cells.unshift.apply(this.cells, cell);\n var fragment = dom.createFragment(this.element);\n for (var i = 0; i < cell.length; i++) {\n fragment.appendChild(cell[i].element);\n }\n if (this.element.firstChild)\n this.element.insertBefore(fragment, this.element.firstChild);\n else\n this.element.appendChild(fragment);\n }\n else {\n this.cells.unshift(cell);\n this.element.insertAdjacentElement(\"afterbegin\", cell.element);\n }\n };\n Lines.prototype.last = function () {\n if (this.cells.length)\n return this.cells[this.cells.length - 1];\n else\n return null;\n };\n Lines.prototype.$cacheCell = function (cell) {\n if (!cell)\n return;\n cell.element.remove();\n this.cellCache.push(cell);\n };\n Lines.prototype.createCell = function (row, config, session, initElement) {\n var cell = this.cellCache.pop();\n if (!cell) {\n var element = dom.createElement(\"div\");\n if (initElement)\n initElement(element);\n this.element.appendChild(element);\n cell = {\n element: element,\n text: \"\",\n row: row\n };\n }\n cell.row = row;\n return cell;\n };\n return Lines;\n}());\nexports.Lines = Lines;\n\n});\n\nace.define(\"ace/layer/gutter\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/layer/lines\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar Lines = require(\"./lines\").Lines;\nvar nls = require(\"../config\").nls;\nvar Gutter = /** @class */ (function () {\n function Gutter(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_gutter-layer\";\n parentEl.appendChild(this.element);\n this.setShowFoldWidgets(this.$showFoldWidgets);\n this.gutterWidth = 0;\n this.$annotations = [];\n this.$updateAnnotations = this.$updateAnnotations.bind(this);\n this.$lines = new Lines(this.element);\n this.$lines.$offsetCoefficient = 1;\n }\n Gutter.prototype.setSession = function (session) {\n if (this.session)\n this.session.off(\"change\", this.$updateAnnotations);\n this.session = session;\n if (session)\n session.on(\"change\", this.$updateAnnotations);\n };\n Gutter.prototype.addGutterDecoration = function (row, className) {\n if (window.console)\n console.warn && console.warn(\"deprecated use session.addGutterDecoration\");\n this.session.addGutterDecoration(row, className);\n };\n Gutter.prototype.removeGutterDecoration = function (row, className) {\n if (window.console)\n console.warn && console.warn(\"deprecated use session.removeGutterDecoration\");\n this.session.removeGutterDecoration(row, className);\n };\n Gutter.prototype.setAnnotations = function (annotations) {\n this.$annotations = [];\n for (var i = 0; i < annotations.length; i++) {\n var annotation = annotations[i];\n var row = annotation.row;\n var rowInfo = this.$annotations[row];\n if (!rowInfo)\n rowInfo = this.$annotations[row] = { text: [], type: [] };\n var annoText = annotation.text;\n var annoType = annotation.type;\n annoText = annoText ? lang.escapeHTML(annoText) : annotation.html || \"\";\n if (rowInfo.text.indexOf(annoText) === -1) {\n rowInfo.text.push(annoText);\n rowInfo.type.push(annoType);\n }\n var className = annotation.className;\n if (className)\n rowInfo.className = className;\n else if (annoType == \"error\")\n rowInfo.className = \" ace_error\";\n else if (annoType == \"warning\" && rowInfo.className != \" ace_error\")\n rowInfo.className = \" ace_warning\";\n else if (annoType == \"info\" && (!rowInfo.className))\n rowInfo.className = \" ace_info\";\n }\n };\n Gutter.prototype.$updateAnnotations = function (delta) {\n if (!this.$annotations.length)\n return;\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n }\n else if (delta.action == 'remove') {\n this.$annotations.splice(firstRow, len + 1, null);\n }\n else {\n var args = new Array(len + 1);\n args.unshift(firstRow, 1);\n this.$annotations.splice.apply(this.$annotations, args);\n }\n };\n Gutter.prototype.update = function (config) {\n this.config = config;\n var session = this.session;\n var firstRow = config.firstRow;\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n session.getLength() - 1);\n this.oldLastRow = lastRow;\n this.config = config;\n this.$lines.moveContainer(config);\n this.$updateCursorRow();\n var fold = session.getNextFoldLine(firstRow);\n var foldStart = fold ? fold.start.row : Infinity;\n var cell = null;\n var index = -1;\n var row = firstRow;\n while (true) {\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = session.getNextFoldLine(row, fold);\n foldStart = fold ? fold.start.row : Infinity;\n }\n if (row > lastRow) {\n while (this.$lines.getLength() > index + 1)\n this.$lines.pop();\n break;\n }\n cell = this.$lines.get(++index);\n if (cell) {\n cell.row = row;\n }\n else {\n cell = this.$lines.createCell(row, config, this.session, onCreateCell);\n this.$lines.push(cell);\n }\n this.$renderCell(cell, config, fold, row);\n row++;\n }\n this._signal(\"afterRender\");\n this.$updateGutterWidth(config);\n };\n Gutter.prototype.$updateGutterWidth = function (config) {\n var session = this.session;\n var gutterRenderer = session.gutterRenderer || this.$renderer;\n var firstLineNumber = session.$firstLineNumber;\n var lastLineText = this.$lines.last() ? this.$lines.last().text : \"\";\n if (this.$fixedWidth || session.$useWrapMode)\n lastLineText = session.getLength() + firstLineNumber - 1;\n var gutterWidth = gutterRenderer\n ? gutterRenderer.getWidth(session, lastLineText, config)\n : lastLineText.toString().length * config.characterWidth;\n var padding = this.$padding || this.$computePadding();\n gutterWidth += padding.left + padding.right;\n if (gutterWidth !== this.gutterWidth && !isNaN(gutterWidth)) {\n this.gutterWidth = gutterWidth;\n this.element.parentNode.style.width =\n this.element.style.width = Math.ceil(this.gutterWidth) + \"px\";\n this._signal(\"changeGutterWidth\", gutterWidth);\n }\n };\n Gutter.prototype.$updateCursorRow = function () {\n if (!this.$highlightGutterLine)\n return;\n var position = this.session.selection.getCursor();\n if (this.$cursorRow === position.row)\n return;\n this.$cursorRow = position.row;\n };\n Gutter.prototype.updateLineHighlight = function () {\n if (!this.$highlightGutterLine)\n return;\n var row = this.session.selection.cursor.row;\n this.$cursorRow = row;\n if (this.$cursorCell && this.$cursorCell.row == row)\n return;\n if (this.$cursorCell)\n this.$cursorCell.element.className = this.$cursorCell.element.className.replace(\"ace_gutter-active-line \", \"\");\n var cells = this.$lines.cells;\n this.$cursorCell = null;\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n if (cell.row >= this.$cursorRow) {\n if (cell.row > this.$cursorRow) {\n var fold = this.session.getFoldLine(this.$cursorRow);\n if (i > 0 && fold && fold.start.row == cells[i - 1].row)\n cell = cells[i - 1];\n else\n break;\n }\n cell.element.className = \"ace_gutter-active-line \" + cell.element.className;\n this.$cursorCell = cell;\n break;\n }\n }\n };\n Gutter.prototype.scrollLines = function (config) {\n var oldConfig = this.config;\n this.config = config;\n this.$updateCursorRow();\n if (this.$lines.pageChanged(oldConfig, config))\n return this.update(config);\n this.$lines.moveContainer(config);\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n this.session.getLength() - 1);\n var oldLastRow = this.oldLastRow;\n this.oldLastRow = lastRow;\n if (!oldConfig || oldLastRow < config.firstRow)\n return this.update(config);\n if (lastRow < oldConfig.firstRow)\n return this.update(config);\n if (oldConfig.firstRow < config.firstRow)\n for (var row = this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row > 0; row--)\n this.$lines.shift();\n if (oldLastRow > lastRow)\n for (var row = this.session.getFoldedRowCount(lastRow + 1, oldLastRow); row > 0; row--)\n this.$lines.pop();\n if (config.firstRow < oldConfig.firstRow) {\n this.$lines.unshift(this.$renderLines(config, config.firstRow, oldConfig.firstRow - 1));\n }\n if (lastRow > oldLastRow) {\n this.$lines.push(this.$renderLines(config, oldLastRow + 1, lastRow));\n }\n this.updateLineHighlight();\n this._signal(\"afterRender\");\n this.$updateGutterWidth(config);\n };\n Gutter.prototype.$renderLines = function (config, firstRow, lastRow) {\n var fragment = [];\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n var cell = this.$lines.createCell(row, config, this.session, onCreateCell);\n this.$renderCell(cell, config, foldLine, row);\n fragment.push(cell);\n row++;\n }\n return fragment;\n };\n Gutter.prototype.$renderCell = function (cell, config, fold, row) {\n var element = cell.element;\n var session = this.session;\n var textNode = element.childNodes[0];\n var foldWidget = element.childNodes[1];\n var annotationNode = element.childNodes[2];\n var annotationIconNode = annotationNode.firstChild;\n var firstLineNumber = session.$firstLineNumber;\n var breakpoints = session.$breakpoints;\n var decorations = session.$decorations;\n var gutterRenderer = session.gutterRenderer || this.$renderer;\n var foldWidgets = this.$showFoldWidgets && session.foldWidgets;\n var foldStart = fold ? fold.start.row : Number.MAX_VALUE;\n var lineHeight = config.lineHeight + \"px\";\n var className = this.$useSvgGutterIcons ? \"ace_gutter-cell_svg-icons \" : \"ace_gutter-cell \";\n var iconClassName = this.$useSvgGutterIcons ? \"ace_icon_svg\" : \"ace_icon\";\n var rowText = (gutterRenderer\n ? gutterRenderer.getText(session, row)\n : row + firstLineNumber).toString();\n if (this.$highlightGutterLine) {\n if (row == this.$cursorRow || (fold && row < this.$cursorRow && row >= foldStart && this.$cursorRow <= fold.end.row)) {\n className += \"ace_gutter-active-line \";\n if (this.$cursorCell != cell) {\n if (this.$cursorCell)\n this.$cursorCell.element.className = this.$cursorCell.element.className.replace(\"ace_gutter-active-line \", \"\");\n this.$cursorCell = cell;\n }\n }\n }\n if (breakpoints[row])\n className += breakpoints[row];\n if (decorations[row])\n className += decorations[row];\n if (this.$annotations[row] && row !== foldStart)\n className += this.$annotations[row].className;\n if (foldWidgets) {\n var c = foldWidgets[row];\n if (c == null)\n c = foldWidgets[row] = session.getFoldWidget(row);\n }\n if (c) {\n var foldClass = \"ace_fold-widget ace_\" + c;\n var isClosedFold = c == \"start\" && row == foldStart && row < fold.end.row;\n if (isClosedFold) {\n foldClass += \" ace_closed\";\n var foldAnnotationClass = '';\n var annotationInFold = false;\n for (var i = row + 1; i <= fold.end.row; i++) {\n if (!this.$annotations[i])\n continue;\n if (this.$annotations[i].className === \" ace_error\") {\n annotationInFold = true;\n foldAnnotationClass = \" ace_error_fold\";\n break;\n }\n if (this.$annotations[i].className === \" ace_warning\") {\n annotationInFold = true;\n foldAnnotationClass = \" ace_warning_fold\";\n continue;\n }\n }\n className += foldAnnotationClass;\n }\n else\n foldClass += \" ace_open\";\n if (foldWidget.className != foldClass)\n foldWidget.className = foldClass;\n dom.setStyle(foldWidget.style, \"height\", lineHeight);\n dom.setStyle(foldWidget.style, \"display\", \"inline-block\");\n foldWidget.setAttribute(\"role\", \"button\");\n foldWidget.setAttribute(\"tabindex\", \"-1\");\n var foldRange = session.getFoldWidgetRange(row);\n if (foldRange)\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, rows $0 through $1\", [foldRange.start.row + 1, foldRange.end.row + 1]));\n else {\n if (fold)\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, rows $0 through $1\", [fold.start.row + 1, fold.end.row + 1]));\n else\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, row $0\", [row + 1]));\n }\n if (isClosedFold) {\n foldWidget.setAttribute(\"aria-expanded\", \"false\");\n foldWidget.setAttribute(\"title\", nls(\"Unfold code\"));\n }\n else {\n foldWidget.setAttribute(\"aria-expanded\", \"true\");\n foldWidget.setAttribute(\"title\", nls(\"Fold code\"));\n }\n }\n else {\n if (foldWidget) {\n dom.setStyle(foldWidget.style, \"display\", \"none\");\n foldWidget.setAttribute(\"tabindex\", \"0\");\n foldWidget.removeAttribute(\"role\");\n foldWidget.removeAttribute(\"aria-label\");\n }\n }\n if (annotationInFold && this.$showFoldedAnnotations) {\n annotationNode.className = \"ace_gutter_annotation\";\n annotationIconNode.className = iconClassName;\n annotationIconNode.className += foldAnnotationClass;\n dom.setStyle(annotationIconNode.style, \"height\", lineHeight);\n dom.setStyle(annotationNode.style, \"display\", \"block\");\n dom.setStyle(annotationNode.style, \"height\", lineHeight);\n annotationNode.setAttribute(\"aria-label\", nls(\"Read annotations row $0\", [rowText]));\n annotationNode.setAttribute(\"tabindex\", \"-1\");\n annotationNode.setAttribute(\"role\", \"button\");\n }\n else if (this.$annotations[row]) {\n annotationNode.className = \"ace_gutter_annotation\";\n annotationIconNode.className = iconClassName;\n if (this.$useSvgGutterIcons)\n annotationIconNode.className += this.$annotations[row].className;\n else\n element.classList.add(this.$annotations[row].className.replace(\" \", \"\"));\n dom.setStyle(annotationIconNode.style, \"height\", lineHeight);\n dom.setStyle(annotationNode.style, \"display\", \"block\");\n dom.setStyle(annotationNode.style, \"height\", lineHeight);\n annotationNode.setAttribute(\"aria-label\", nls(\"Read annotations row $0\", [rowText]));\n annotationNode.setAttribute(\"tabindex\", \"-1\");\n annotationNode.setAttribute(\"role\", \"button\");\n }\n else {\n dom.setStyle(annotationNode.style, \"display\", \"none\");\n annotationNode.removeAttribute(\"aria-label\");\n annotationNode.removeAttribute(\"role\");\n annotationNode.setAttribute(\"tabindex\", \"0\");\n }\n if (rowText !== textNode.data) {\n textNode.data = rowText;\n }\n if (element.className != className)\n element.className = className;\n dom.setStyle(cell.element.style, \"height\", this.$lines.computeLineHeight(row, config, session) + \"px\");\n dom.setStyle(cell.element.style, \"top\", this.$lines.computeLineTop(row, config, session) + \"px\");\n cell.text = rowText;\n if (annotationNode.style.display === \"none\" && foldWidget.style.display === \"none\")\n cell.element.setAttribute(\"aria-hidden\", true);\n else\n cell.element.setAttribute(\"aria-hidden\", false);\n return cell;\n };\n Gutter.prototype.setHighlightGutterLine = function (highlightGutterLine) {\n this.$highlightGutterLine = highlightGutterLine;\n };\n Gutter.prototype.setShowLineNumbers = function (show) {\n this.$renderer = !show && {\n getWidth: function () { return 0; },\n getText: function () { return \"\"; }\n };\n };\n Gutter.prototype.getShowLineNumbers = function () {\n return this.$showLineNumbers;\n };\n Gutter.prototype.setShowFoldWidgets = function (show) {\n if (show)\n dom.addCssClass(this.element, \"ace_folding-enabled\");\n else\n dom.removeCssClass(this.element, \"ace_folding-enabled\");\n this.$showFoldWidgets = show;\n this.$padding = null;\n };\n Gutter.prototype.getShowFoldWidgets = function () {\n return this.$showFoldWidgets;\n };\n Gutter.prototype.$computePadding = function () {\n if (!this.element.firstChild)\n return { left: 0, right: 0 };\n var style = dom.computedStyle(this.element.firstChild);\n this.$padding = {};\n this.$padding.left = (parseInt(style.borderLeftWidth) || 0)\n + (parseInt(style.paddingLeft) || 0) + 1;\n this.$padding.right = (parseInt(style.borderRightWidth) || 0)\n + (parseInt(style.paddingRight) || 0);\n return this.$padding;\n };\n Gutter.prototype.getRegion = function (point) {\n var padding = this.$padding || this.$computePadding();\n var rect = this.element.getBoundingClientRect();\n if (point.x < padding.left + rect.left)\n return \"markers\";\n if (this.$showFoldWidgets && point.x > rect.right - padding.right)\n return \"foldWidgets\";\n };\n return Gutter;\n}());\nGutter.prototype.$fixedWidth = false;\nGutter.prototype.$highlightGutterLine = true;\nGutter.prototype.$renderer = \"\";\nGutter.prototype.$showLineNumbers = true;\nGutter.prototype.$showFoldWidgets = true;\noop.implement(Gutter.prototype, EventEmitter);\nfunction onCreateCell(element) {\n var textNode = document.createTextNode('');\n element.appendChild(textNode);\n var foldWidget = dom.createElement(\"span\");\n element.appendChild(foldWidget);\n var annotationNode = dom.createElement(\"span\");\n element.appendChild(annotationNode);\n var annotationIconNode = dom.createElement(\"span\");\n annotationNode.appendChild(annotationIconNode);\n return element;\n}\nexports.Gutter = Gutter;\n\n});\n\nace.define(\"ace/layer/marker\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar dom = require(\"../lib/dom\");\nvar Marker = /** @class */ (function () {\n function Marker(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_marker-layer\";\n parentEl.appendChild(this.element);\n }\n Marker.prototype.setPadding = function (padding) {\n this.$padding = padding;\n };\n Marker.prototype.setSession = function (session) {\n this.session = session;\n };\n Marker.prototype.setMarkers = function (markers) {\n this.markers = markers;\n };\n Marker.prototype.elt = function (className, css) {\n var x = this.i != -1 && this.element.childNodes[this.i];\n if (!x) {\n x = document.createElement(\"div\");\n this.element.appendChild(x);\n this.i = -1;\n }\n else {\n this.i++;\n }\n x.style.cssText = css;\n x.className = className;\n };\n Marker.prototype.update = function (config) {\n if (!config)\n return;\n this.config = config;\n this.i = 0;\n var html;\n for (var key in this.markers) {\n var marker = this.markers[key];\n if (!marker.range) {\n marker.update(html, this, this.session, config);\n continue;\n }\n var range = marker.range.clipRows(config.firstRow, config.lastRow);\n if (range.isEmpty())\n continue;\n range = range.toScreenRange(this.session);\n if (marker.renderer) {\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n marker.renderer(html, range, left, top, config);\n }\n else if (marker.type == \"fullLine\") {\n this.drawFullLineMarker(html, range, marker.clazz, config);\n }\n else if (marker.type == \"screenLine\") {\n this.drawScreenLineMarker(html, range, marker.clazz, config);\n }\n else if (range.isMultiLine()) {\n if (marker.type == \"text\")\n this.drawTextMarker(html, range, marker.clazz, config);\n else\n this.drawMultiLineMarker(html, range, marker.clazz, config);\n }\n else {\n this.drawSingleLineMarker(html, range, marker.clazz + \" ace_start\" + \" ace_br15\", config);\n }\n }\n if (this.i != -1) {\n while (this.i < this.element.childElementCount)\n this.element.removeChild(this.element.lastChild);\n }\n };\n Marker.prototype.$getTop = function (row, layerConfig) {\n return (row - layerConfig.firstRowScreen) * layerConfig.lineHeight;\n };\n Marker.prototype.drawTextMarker = function (stringBuilder, range, clazz, layerConfig, extraStyle) {\n var session = this.session;\n var start = range.start.row;\n var end = range.end.row;\n var row = start;\n var prev = 0;\n var curr = 0;\n var next = session.getScreenLastRowColumn(row);\n var lineRange = new Range(row, range.start.column, row, curr);\n for (; row <= end; row++) {\n lineRange.start.row = lineRange.end.row = row;\n lineRange.start.column = row == start ? range.start.column : session.getRowWrapIndent(row);\n lineRange.end.column = next;\n prev = curr;\n curr = next;\n next = row + 1 < end ? session.getScreenLastRowColumn(row + 1) : row == end ? 0 : range.end.column;\n this.drawSingleLineMarker(stringBuilder, lineRange, clazz + (row == start ? \" ace_start\" : \"\") + \" ace_br\"\n + getBorderClass(row == start || row == start + 1 && range.start.column, prev < curr, curr > next, row == end), layerConfig, row == end ? 0 : 1, extraStyle);\n }\n };\n Marker.prototype.drawMultiLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var padding = this.$padding;\n var height = config.lineHeight;\n var top = this.$getTop(range.start.row, config);\n var left = padding + range.start.column * config.characterWidth;\n extraStyle = extraStyle || \"\";\n if (this.session.$bidiHandler.isBidiRow(range.start.row)) {\n var range1 = range.clone();\n range1.end.row = range1.start.row;\n range1.end.column = this.session.getLine(range1.start.row).length;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br1 ace_start\", config, null, extraStyle);\n }\n else {\n this.elt(clazz + \" ace_br1 ace_start\", \"height:\" + height + \"px;\" + \"right:0;\" + \"top:\" + top + \"px;left:\" + left + \"px;\" + (extraStyle || \"\"));\n }\n if (this.session.$bidiHandler.isBidiRow(range.end.row)) {\n var range1 = range.clone();\n range1.start.row = range1.end.row;\n range1.start.column = 0;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br12\", config, null, extraStyle);\n }\n else {\n top = this.$getTop(range.end.row, config);\n var width = range.end.column * config.characterWidth;\n this.elt(clazz + \" ace_br12\", \"height:\" + height + \"px;\" +\n \"width:\" + width + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + padding + \"px;\" + (extraStyle || \"\"));\n }\n height = (range.end.row - range.start.row - 1) * config.lineHeight;\n if (height <= 0)\n return;\n top = this.$getTop(range.start.row + 1, config);\n var radiusClass = (range.start.column ? 1 : 0) | (range.end.column ? 0 : 8);\n this.elt(clazz + (radiusClass ? \" ace_br\" + radiusClass : \"\"), \"height:\" + height + \"px;\" +\n \"right:0;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + padding + \"px;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawSingleLineMarker = function (stringBuilder, range, clazz, config, extraLength, extraStyle) {\n if (this.session.$bidiHandler.isBidiRow(range.start.row))\n return this.drawBidiSingleLineMarker(stringBuilder, range, clazz, config, extraLength, extraStyle);\n var height = config.lineHeight;\n var width = (range.end.column + (extraLength || 0) - range.start.column) * config.characterWidth;\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"width:\" + width + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + left + \"px;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawBidiSingleLineMarker = function (stringBuilder, range, clazz, config, extraLength, extraStyle) {\n var height = config.lineHeight, top = this.$getTop(range.start.row, config), padding = this.$padding;\n var selections = this.session.$bidiHandler.getSelections(range.start.column, range.end.column);\n selections.forEach(function (selection) {\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"width:\" + (selection.width + (extraLength || 0)) + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + (padding + selection.left) + \"px;\" + (extraStyle || \"\"));\n }, this);\n };\n Marker.prototype.drawFullLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n if (range.start.row != range.end.row)\n height += this.$getTop(range.end.row, config) - top;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:0;right:0;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawScreenLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:0;right:0;\" + (extraStyle || \"\"));\n };\n return Marker;\n}());\nMarker.prototype.$padding = 0;\nfunction getBorderClass(tl, tr, br, bl) {\n return (tl ? 1 : 0) | (tr ? 2 : 0) | (br ? 4 : 0) | (bl ? 8 : 0);\n}\nexports.Marker = Marker;\n\n});\n\nace.define(\"ace/layer/text_util\",[\"require\",\"exports\",\"module\"], function(require, exports, module){// Tokens for which Ace just uses a simple TextNode and does not add any special className.\nvar textTokens = new Set([\"text\", \"rparen\", \"lparen\"]);\nexports.isTextToken = function (tokenType) {\n return textTokens.has(tokenType);\n};\n\n});\n\nace.define(\"ace/layer/text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/layer/lines\",\"ace/lib/event_emitter\",\"ace/config\",\"ace/layer/text_util\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar Lines = require(\"./lines\").Lines;\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar nls = require(\"../config\").nls;\nvar isTextToken = require(\"./text_util\").isTextToken;\nvar Text = /** @class */ (function () {\n function Text(parentEl) {\n this.dom = dom;\n this.element = this.dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_text-layer\";\n parentEl.appendChild(this.element);\n this.$updateEolChar = this.$updateEolChar.bind(this);\n this.$lines = new Lines(this.element);\n }\n Text.prototype.$updateEolChar = function () {\n var doc = this.session.doc;\n var unixMode = doc.getNewLineCharacter() == \"\\n\" && doc.getNewLineMode() != \"windows\";\n var EOL_CHAR = unixMode ? this.EOL_CHAR_LF : this.EOL_CHAR_CRLF;\n if (this.EOL_CHAR != EOL_CHAR) {\n this.EOL_CHAR = EOL_CHAR;\n return true;\n }\n };\n Text.prototype.setPadding = function (padding) {\n this.$padding = padding;\n this.element.style.margin = \"0 \" + padding + \"px\";\n };\n Text.prototype.getLineHeight = function () {\n return this.$fontMetrics.$characterSize.height || 0;\n };\n Text.prototype.getCharacterWidth = function () {\n return this.$fontMetrics.$characterSize.width || 0;\n };\n Text.prototype.$setFontMetrics = function (measure) {\n this.$fontMetrics = measure;\n this.$fontMetrics.on(\"changeCharacterSize\", function (e) {\n this._signal(\"changeCharacterSize\", e);\n }.bind(this));\n this.$pollSizeChanges();\n };\n Text.prototype.checkForSizeChanges = function () {\n this.$fontMetrics.checkForSizeChanges();\n };\n Text.prototype.$pollSizeChanges = function () {\n return this.$pollSizeChangesTimer = this.$fontMetrics.$pollSizeChanges();\n };\n Text.prototype.setSession = function (session) {\n this.session = session;\n if (session)\n this.$computeTabString();\n };\n Text.prototype.setShowInvisibles = function (showInvisibles) {\n if (this.showInvisibles == showInvisibles)\n return false;\n this.showInvisibles = showInvisibles;\n if (typeof showInvisibles == \"string\") {\n this.showSpaces = /tab/i.test(showInvisibles);\n this.showTabs = /space/i.test(showInvisibles);\n this.showEOL = /eol/i.test(showInvisibles);\n }\n else {\n this.showSpaces = this.showTabs = this.showEOL = showInvisibles;\n }\n this.$computeTabString();\n return true;\n };\n Text.prototype.setDisplayIndentGuides = function (display) {\n if (this.displayIndentGuides == display)\n return false;\n this.displayIndentGuides = display;\n this.$computeTabString();\n return true;\n };\n Text.prototype.setHighlightIndentGuides = function (highlight) {\n if (this.$highlightIndentGuides === highlight)\n return false;\n this.$highlightIndentGuides = highlight;\n return highlight;\n };\n Text.prototype.$computeTabString = function () {\n var tabSize = this.session.getTabSize();\n this.tabSize = tabSize;\n var tabStr = this.$tabStrings = [0];\n for (var i = 1; i < tabSize + 1; i++) {\n if (this.showTabs) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_tab\";\n span.textContent = lang.stringRepeat(this.TAB_CHAR, i);\n tabStr.push(span);\n }\n else {\n tabStr.push(this.dom.createTextNode(lang.stringRepeat(\" \", i), this.element));\n }\n }\n if (this.displayIndentGuides) {\n this.$indentGuideRe = /\\s\\S| \\t|\\t |\\s$/;\n var className = \"ace_indent-guide\";\n var spaceClass = this.showSpaces ? \" ace_invisible ace_invisible_space\" : \"\";\n var spaceContent = this.showSpaces\n ? lang.stringRepeat(this.SPACE_CHAR, this.tabSize)\n : lang.stringRepeat(\" \", this.tabSize);\n var tabClass = this.showTabs ? \" ace_invisible ace_invisible_tab\" : \"\";\n var tabContent = this.showTabs\n ? lang.stringRepeat(this.TAB_CHAR, this.tabSize)\n : spaceContent;\n var span = this.dom.createElement(\"span\");\n span.className = className + spaceClass;\n span.textContent = spaceContent;\n this.$tabStrings[\" \"] = span;\n var span = this.dom.createElement(\"span\");\n span.className = className + tabClass;\n span.textContent = tabContent;\n this.$tabStrings[\"\\t\"] = span;\n }\n };\n Text.prototype.updateLines = function (config, firstRow, lastRow) {\n if (this.config.lastRow != config.lastRow ||\n this.config.firstRow != config.firstRow) {\n return this.update(config);\n }\n this.config = config;\n var first = Math.max(firstRow, config.firstRow);\n var last = Math.min(lastRow, config.lastRow);\n var lineElements = this.element.childNodes;\n var lineElementsIdx = 0;\n for (var row = config.firstRow; row < first; row++) {\n var foldLine = this.session.getFoldLine(row);\n if (foldLine) {\n if (foldLine.containsRow(first)) {\n first = foldLine.start.row;\n break;\n }\n else {\n row = foldLine.end.row;\n }\n }\n lineElementsIdx++;\n }\n var heightChanged = false;\n var row = first;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > last)\n break;\n var lineElement = lineElements[lineElementsIdx++];\n if (lineElement) {\n this.dom.removeChildren(lineElement);\n this.$renderLine(lineElement, row, row == foldStart ? foldLine : false);\n if (heightChanged)\n lineElement.style.top = this.$lines.computeLineTop(row, config, this.session) + \"px\";\n var height = (config.lineHeight * this.session.getRowLength(row)) + \"px\";\n if (lineElement.style.height != height) {\n heightChanged = true;\n lineElement.style.height = height;\n }\n }\n row++;\n }\n if (heightChanged) {\n while (lineElementsIdx < this.$lines.cells.length) {\n var cell = this.$lines.cells[lineElementsIdx++];\n cell.element.style.top = this.$lines.computeLineTop(cell.row, config, this.session) + \"px\";\n }\n }\n };\n Text.prototype.scrollLines = function (config) {\n var oldConfig = this.config;\n this.config = config;\n if (this.$lines.pageChanged(oldConfig, config))\n return this.update(config);\n this.$lines.moveContainer(config);\n var lastRow = config.lastRow;\n var oldLastRow = oldConfig ? oldConfig.lastRow : -1;\n if (!oldConfig || oldLastRow < config.firstRow)\n return this.update(config);\n if (lastRow < oldConfig.firstRow)\n return this.update(config);\n if (!oldConfig || oldConfig.lastRow < config.firstRow)\n return this.update(config);\n if (config.lastRow < oldConfig.firstRow)\n return this.update(config);\n if (oldConfig.firstRow < config.firstRow)\n for (var row = this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row > 0; row--)\n this.$lines.shift();\n if (oldConfig.lastRow > config.lastRow)\n for (var row = this.session.getFoldedRowCount(config.lastRow + 1, oldConfig.lastRow); row > 0; row--)\n this.$lines.pop();\n if (config.firstRow < oldConfig.firstRow) {\n this.$lines.unshift(this.$renderLinesFragment(config, config.firstRow, oldConfig.firstRow - 1));\n }\n if (config.lastRow > oldConfig.lastRow) {\n this.$lines.push(this.$renderLinesFragment(config, oldConfig.lastRow + 1, config.lastRow));\n }\n this.$highlightIndentGuide();\n };\n Text.prototype.$renderLinesFragment = function (config, firstRow, lastRow) {\n var fragment = [];\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n var line = this.$lines.createCell(row, config, this.session);\n var lineEl = line.element;\n this.dom.removeChildren(lineEl);\n dom.setStyle(lineEl.style, \"height\", this.$lines.computeLineHeight(row, config, this.session) + \"px\");\n dom.setStyle(lineEl.style, \"top\", this.$lines.computeLineTop(row, config, this.session) + \"px\");\n this.$renderLine(lineEl, row, row == foldStart ? foldLine : false);\n if (this.$useLineGroups()) {\n lineEl.className = \"ace_line_group\";\n }\n else {\n lineEl.className = \"ace_line\";\n }\n fragment.push(line);\n row++;\n }\n return fragment;\n };\n Text.prototype.update = function (config) {\n this.$lines.moveContainer(config);\n this.config = config;\n var firstRow = config.firstRow;\n var lastRow = config.lastRow;\n var lines = this.$lines;\n while (lines.getLength())\n lines.pop();\n lines.push(this.$renderLinesFragment(config, firstRow, lastRow));\n };\n Text.prototype.$renderToken = function (parent, screenColumn, token, value) {\n var self = this;\n var re = /(\\t)|( +)|([\\x00-\\x1f\\x80-\\xa0\\xad\\u1680\\u180E\\u2000-\\u200f\\u2028\\u2029\\u202F\\u205F\\uFEFF\\uFFF9-\\uFFFC\\u2066\\u2067\\u2068\\u202A\\u202B\\u202D\\u202E\\u202C\\u2069]+)|(\\u3000)|([\\u1100-\\u115F\\u11A3-\\u11A7\\u11FA-\\u11FF\\u2329-\\u232A\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3001-\\u303E\\u3041-\\u3096\\u3099-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u3190-\\u31BA\\u31C0-\\u31E3\\u31F0-\\u321E\\u3220-\\u3247\\u3250-\\u32FE\\u3300-\\u4DBF\\u4E00-\\uA48C\\uA490-\\uA4C6\\uA960-\\uA97C\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFAFF\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFF01-\\uFF60\\uFFE0-\\uFFE6]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF])/g;\n var valueFragment = this.dom.createFragment(this.element);\n var m;\n var i = 0;\n while (m = re.exec(value)) {\n var tab = m[1];\n var simpleSpace = m[2];\n var controlCharacter = m[3];\n var cjkSpace = m[4];\n var cjk = m[5];\n if (!self.showSpaces && simpleSpace)\n continue;\n var before = i != m.index ? value.slice(i, m.index) : \"\";\n i = m.index + m[0].length;\n if (before) {\n valueFragment.appendChild(this.dom.createTextNode(before, this.element));\n }\n if (tab) {\n var tabSize = self.session.getScreenTabSize(screenColumn + m.index);\n valueFragment.appendChild(self.$tabStrings[tabSize].cloneNode(true));\n screenColumn += tabSize - 1;\n }\n else if (simpleSpace) {\n if (self.showSpaces) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_space\";\n span.textContent = lang.stringRepeat(self.SPACE_CHAR, simpleSpace.length);\n valueFragment.appendChild(span);\n }\n else {\n valueFragment.appendChild(this.dom.createTextNode(simpleSpace, this.element));\n }\n }\n else if (controlCharacter) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_space ace_invalid\";\n span.textContent = lang.stringRepeat(self.SPACE_CHAR, controlCharacter.length);\n valueFragment.appendChild(span);\n }\n else if (cjkSpace) {\n screenColumn += 1;\n var span = this.dom.createElement(\"span\");\n span.style.width = (self.config.characterWidth * 2) + \"px\";\n span.className = self.showSpaces ? \"ace_cjk ace_invisible ace_invisible_space\" : \"ace_cjk\";\n span.textContent = self.showSpaces ? self.SPACE_CHAR : cjkSpace;\n valueFragment.appendChild(span);\n }\n else if (cjk) {\n screenColumn += 1;\n var span = this.dom.createElement(\"span\");\n span.style.width = (self.config.characterWidth * 2) + \"px\";\n span.className = \"ace_cjk\";\n span.textContent = cjk;\n valueFragment.appendChild(span);\n }\n }\n valueFragment.appendChild(this.dom.createTextNode(i ? value.slice(i) : value, this.element));\n if (!isTextToken(token.type)) {\n var classes = \"ace_\" + token.type.replace(/\\./g, \" ace_\");\n var span = this.dom.createElement(\"span\");\n if (token.type == \"fold\") {\n span.style.width = (token.value.length * this.config.characterWidth) + \"px\";\n span.setAttribute(\"title\", nls(\"Unfold code\"));\n }\n span.className = classes;\n span.appendChild(valueFragment);\n parent.appendChild(span);\n }\n else {\n parent.appendChild(valueFragment);\n }\n return screenColumn + value.length;\n };\n Text.prototype.renderIndentGuide = function (parent, value, max) {\n var cols = value.search(this.$indentGuideRe);\n if (cols <= 0 || cols >= max)\n return value;\n if (value[0] == \" \") {\n cols -= cols % this.tabSize;\n var count = cols / this.tabSize;\n for (var i = 0; i < count; i++) {\n parent.appendChild(this.$tabStrings[\" \"].cloneNode(true));\n }\n this.$highlightIndentGuide();\n return value.substr(cols);\n }\n else if (value[0] == \"\\t\") {\n for (var i = 0; i < cols; i++) {\n parent.appendChild(this.$tabStrings[\"\\t\"].cloneNode(true));\n }\n this.$highlightIndentGuide();\n return value.substr(cols);\n }\n this.$highlightIndentGuide();\n return value;\n };\n Text.prototype.$highlightIndentGuide = function () {\n if (!this.$highlightIndentGuides || !this.displayIndentGuides)\n return;\n this.$highlightIndentGuideMarker = {\n indentLevel: undefined,\n start: undefined,\n end: undefined,\n dir: undefined\n };\n var lines = this.session.doc.$lines;\n if (!lines)\n return;\n var cursor = this.session.selection.getCursor();\n var initialIndent = /^\\s*/.exec(this.session.doc.getLine(cursor.row))[0].length;\n var elementIndentLevel = Math.floor(initialIndent / this.tabSize);\n this.$highlightIndentGuideMarker = {\n indentLevel: elementIndentLevel,\n start: cursor.row\n };\n var bracketHighlight = this.session.$bracketHighlight;\n if (bracketHighlight) {\n var ranges = this.session.$bracketHighlight.ranges;\n for (var i = 0; i < ranges.length; i++) {\n if (cursor.row !== ranges[i].start.row) {\n this.$highlightIndentGuideMarker.end = ranges[i].start.row;\n if (cursor.row > ranges[i].start.row) {\n this.$highlightIndentGuideMarker.dir = -1;\n }\n else {\n this.$highlightIndentGuideMarker.dir = 1;\n }\n break;\n }\n }\n }\n if (!this.$highlightIndentGuideMarker.end) {\n if (lines[cursor.row] !== '' && cursor.column === lines[cursor.row].length) {\n this.$highlightIndentGuideMarker.dir = 1;\n for (var i = cursor.row + 1; i < lines.length; i++) {\n var line = lines[i];\n var currentIndent = /^\\s*/.exec(line)[0].length;\n if (line !== '') {\n this.$highlightIndentGuideMarker.end = i;\n if (currentIndent <= initialIndent)\n break;\n }\n }\n }\n }\n this.$renderHighlightIndentGuide();\n };\n Text.prototype.$clearActiveIndentGuide = function () {\n var cells = this.$lines.cells;\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n var childNodes = cell.element.childNodes;\n if (childNodes.length > 0) {\n for (var j = 0; j < childNodes.length; j++) {\n if (childNodes[j].classList && childNodes[j].classList.contains(\"ace_indent-guide-active\")) {\n childNodes[j].classList.remove(\"ace_indent-guide-active\");\n break;\n }\n }\n }\n }\n };\n Text.prototype.$setIndentGuideActive = function (cell, indentLevel) {\n var line = this.session.doc.getLine(cell.row);\n if (line !== \"\") {\n var childNodes = cell.element.childNodes;\n if (childNodes) {\n var node = childNodes[indentLevel - 1];\n if (node && node.classList && node.classList.contains(\"ace_indent-guide\"))\n node.classList.add(\"ace_indent-guide-active\");\n }\n }\n };\n Text.prototype.$renderHighlightIndentGuide = function () {\n if (!this.$lines)\n return;\n var cells = this.$lines.cells;\n this.$clearActiveIndentGuide();\n var indentLevel = this.$highlightIndentGuideMarker.indentLevel;\n if (indentLevel !== 0) {\n if (this.$highlightIndentGuideMarker.dir === 1) {\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n if (this.$highlightIndentGuideMarker.end && cell.row >= this.$highlightIndentGuideMarker.start\n + 1) {\n if (cell.row >= this.$highlightIndentGuideMarker.end)\n break;\n this.$setIndentGuideActive(cell, indentLevel);\n }\n }\n }\n else {\n for (var i = cells.length - 1; i >= 0; i--) {\n var cell = cells[i];\n if (this.$highlightIndentGuideMarker.end && cell.row < this.$highlightIndentGuideMarker.start) {\n if (cell.row <= this.$highlightIndentGuideMarker.end)\n break;\n this.$setIndentGuideActive(cell, indentLevel);\n }\n }\n }\n }\n };\n Text.prototype.$createLineElement = function (parent) {\n var lineEl = this.dom.createElement(\"div\");\n lineEl.className = \"ace_line\";\n lineEl.style.height = this.config.lineHeight + \"px\";\n return lineEl;\n };\n Text.prototype.$renderWrappedLine = function (parent, tokens, splits) {\n var chars = 0;\n var split = 0;\n var splitChars = splits[0];\n var screenColumn = 0;\n var lineEl = this.$createLineElement();\n parent.appendChild(lineEl);\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n chars = value.length;\n value = this.renderIndentGuide(lineEl, value, splitChars);\n if (!value)\n continue;\n chars -= value.length;\n }\n if (chars + value.length < splitChars) {\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value);\n chars += value.length;\n }\n else {\n while (chars + value.length >= splitChars) {\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value.substring(0, splitChars - chars));\n value = value.substring(splitChars - chars);\n chars = splitChars;\n lineEl = this.$createLineElement();\n parent.appendChild(lineEl);\n lineEl.appendChild(this.dom.createTextNode(lang.stringRepeat(\"\\xa0\", splits.indent), this.element));\n split++;\n screenColumn = 0;\n splitChars = splits[split] || Number.MAX_VALUE;\n }\n if (value.length != 0) {\n chars += value.length;\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value);\n }\n }\n }\n if (splits[splits.length - 1] > this.MAX_LINE_LENGTH)\n this.$renderOverflowMessage(lineEl, screenColumn, null, \"\", true);\n };\n Text.prototype.$renderSimpleLine = function (parent, tokens) {\n var screenColumn = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n value = this.renderIndentGuide(parent, value);\n if (!value)\n continue;\n }\n if (screenColumn + value.length > this.MAX_LINE_LENGTH)\n return this.$renderOverflowMessage(parent, screenColumn, token, value);\n screenColumn = this.$renderToken(parent, screenColumn, token, value);\n }\n };\n Text.prototype.$renderOverflowMessage = function (parent, screenColumn, token, value, hide) {\n token && this.$renderToken(parent, screenColumn, token, value.slice(0, this.MAX_LINE_LENGTH - screenColumn));\n var overflowEl = this.dom.createElement(\"span\");\n overflowEl.className = \"ace_inline_button ace_keyword ace_toggle_wrap\";\n overflowEl.textContent = hide ? \"\" : \"\";\n parent.appendChild(overflowEl);\n };\n Text.prototype.$renderLine = function (parent, row, foldLine) {\n if (!foldLine && foldLine != false)\n foldLine = this.session.getFoldLine(row);\n if (foldLine)\n var tokens = this.$getFoldLineTokens(row, foldLine);\n else\n var tokens = this.session.getTokens(row);\n var lastLineEl = parent;\n if (tokens.length) {\n var splits = this.session.getRowSplitData(row);\n if (splits && splits.length) {\n this.$renderWrappedLine(parent, tokens, splits);\n var lastLineEl = parent.lastChild;\n }\n else {\n var lastLineEl = parent;\n if (this.$useLineGroups()) {\n lastLineEl = this.$createLineElement();\n parent.appendChild(lastLineEl);\n }\n this.$renderSimpleLine(lastLineEl, tokens);\n }\n }\n else if (this.$useLineGroups()) {\n lastLineEl = this.$createLineElement();\n parent.appendChild(lastLineEl);\n }\n if (this.showEOL && lastLineEl) {\n if (foldLine)\n row = foldLine.end.row;\n var invisibleEl = this.dom.createElement(\"span\");\n invisibleEl.className = \"ace_invisible ace_invisible_eol\";\n invisibleEl.textContent = row == this.session.getLength() - 1 ? this.EOF_CHAR : this.EOL_CHAR;\n lastLineEl.appendChild(invisibleEl);\n }\n };\n Text.prototype.$getFoldLineTokens = function (row, foldLine) {\n var session = this.session;\n var renderTokens = [];\n function addTokens(tokens, from, to) {\n var idx = 0, col = 0;\n while ((col + tokens[idx].value.length) < from) {\n col += tokens[idx].value.length;\n idx++;\n if (idx == tokens.length)\n return;\n }\n if (col != from) {\n var value = tokens[idx].value.substring(from - col);\n if (value.length > (to - from))\n value = value.substring(0, to - from);\n renderTokens.push({\n type: tokens[idx].type,\n value: value\n });\n col = from + value.length;\n idx += 1;\n }\n while (col < to && idx < tokens.length) {\n var value = tokens[idx].value;\n if (value.length + col > to) {\n renderTokens.push({\n type: tokens[idx].type,\n value: value.substring(0, to - col)\n });\n }\n else\n renderTokens.push(tokens[idx]);\n col += value.length;\n idx += 1;\n }\n }\n var tokens = session.getTokens(row);\n foldLine.walk(function (placeholder, row, column, lastColumn, isNewRow) {\n if (placeholder != null) {\n renderTokens.push({\n type: \"fold\",\n value: placeholder\n });\n }\n else {\n if (isNewRow)\n tokens = session.getTokens(row);\n if (tokens.length)\n addTokens(tokens, lastColumn, column);\n }\n }, foldLine.end.row, this.session.getLine(foldLine.end.row).length);\n return renderTokens;\n };\n Text.prototype.$useLineGroups = function () {\n return this.session.getUseWrapMode();\n };\n return Text;\n}());\nText.prototype.EOF_CHAR = \"\\xB6\";\nText.prototype.EOL_CHAR_LF = \"\\xAC\";\nText.prototype.EOL_CHAR_CRLF = \"\\xa4\";\nText.prototype.EOL_CHAR = Text.prototype.EOL_CHAR_LF;\nText.prototype.TAB_CHAR = \"\\u2014\"; //\"\\u21E5\";\nText.prototype.SPACE_CHAR = \"\\xB7\";\nText.prototype.$padding = 0;\nText.prototype.MAX_LINE_LENGTH = 10000;\nText.prototype.showInvisibles = false;\nText.prototype.showSpaces = false;\nText.prototype.showTabs = false;\nText.prototype.showEOL = false;\nText.prototype.displayIndentGuides = true;\nText.prototype.$highlightIndentGuides = true;\nText.prototype.$tabStrings = [];\nText.prototype.destroy = {};\nText.prototype.onChangeTabSize = Text.prototype.$computeTabString;\noop.implement(Text.prototype, EventEmitter);\nexports.Text = Text;\n\n});\n\nace.define(\"ace/layer/cursor\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar Cursor = /** @class */ (function () {\n function Cursor(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_cursor-layer\";\n parentEl.appendChild(this.element);\n this.isVisible = false;\n this.isBlinking = true;\n this.blinkInterval = 1000;\n this.smoothBlinking = false;\n this.cursors = [];\n this.cursor = this.addCursor();\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.$updateCursors = this.$updateOpacity.bind(this);\n }\n Cursor.prototype.$updateOpacity = function (val) {\n var cursors = this.cursors;\n for (var i = cursors.length; i--;)\n dom.setStyle(cursors[i].style, \"opacity\", val ? \"\" : \"0\");\n };\n Cursor.prototype.$startCssAnimation = function () {\n var cursors = this.cursors;\n for (var i = cursors.length; i--;)\n cursors[i].style.animationDuration = this.blinkInterval + \"ms\";\n this.$isAnimating = true;\n setTimeout(function () {\n if (this.$isAnimating) {\n dom.addCssClass(this.element, \"ace_animate-blinking\");\n }\n }.bind(this));\n };\n Cursor.prototype.$stopCssAnimation = function () {\n this.$isAnimating = false;\n dom.removeCssClass(this.element, \"ace_animate-blinking\");\n };\n Cursor.prototype.setPadding = function (padding) {\n this.$padding = padding;\n };\n Cursor.prototype.setSession = function (session) {\n this.session = session;\n };\n Cursor.prototype.setBlinking = function (blinking) {\n if (blinking != this.isBlinking) {\n this.isBlinking = blinking;\n this.restartTimer();\n }\n };\n Cursor.prototype.setBlinkInterval = function (blinkInterval) {\n if (blinkInterval != this.blinkInterval) {\n this.blinkInterval = blinkInterval;\n this.restartTimer();\n }\n };\n Cursor.prototype.setSmoothBlinking = function (smoothBlinking) {\n if (smoothBlinking != this.smoothBlinking) {\n this.smoothBlinking = smoothBlinking;\n dom.setCssClass(this.element, \"ace_smooth-blinking\", smoothBlinking);\n this.$updateCursors(true);\n this.restartTimer();\n }\n };\n Cursor.prototype.addCursor = function () {\n var el = dom.createElement(\"div\");\n el.className = \"ace_cursor\";\n this.element.appendChild(el);\n this.cursors.push(el);\n return el;\n };\n Cursor.prototype.removeCursor = function () {\n if (this.cursors.length > 1) {\n var el = this.cursors.pop();\n el.parentNode.removeChild(el);\n return el;\n }\n };\n Cursor.prototype.hideCursor = function () {\n this.isVisible = false;\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n Cursor.prototype.showCursor = function () {\n this.isVisible = true;\n dom.removeCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n Cursor.prototype.restartTimer = function () {\n var update = this.$updateCursors;\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n this.$stopCssAnimation();\n if (this.smoothBlinking) {\n this.$isSmoothBlinking = false;\n dom.removeCssClass(this.element, \"ace_smooth-blinking\");\n }\n update(true);\n if (!this.isBlinking || !this.blinkInterval || !this.isVisible) {\n this.$stopCssAnimation();\n return;\n }\n if (this.smoothBlinking) {\n this.$isSmoothBlinking = true;\n setTimeout(function () {\n if (this.$isSmoothBlinking) {\n dom.addCssClass(this.element, \"ace_smooth-blinking\");\n }\n }.bind(this));\n }\n if (dom.HAS_CSS_ANIMATION) {\n this.$startCssAnimation();\n }\n else {\n var blink = function () {\n this.timeoutId = setTimeout(function () {\n update(false);\n }, 0.6 * this.blinkInterval);\n }.bind(this);\n this.intervalId = setInterval(function () {\n update(true);\n blink();\n }, this.blinkInterval);\n blink();\n }\n };\n Cursor.prototype.getPixelPosition = function (position, onScreen) {\n if (!this.config || !this.session)\n return { left: 0, top: 0 };\n if (!position)\n position = this.session.selection.getCursor();\n var pos = this.session.documentToScreenPosition(position);\n var cursorLeft = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, position.row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : pos.column * this.config.characterWidth);\n var cursorTop = (pos.row - (onScreen ? this.config.firstRowScreen : 0)) *\n this.config.lineHeight;\n return { left: cursorLeft, top: cursorTop };\n };\n Cursor.prototype.isCursorInView = function (pixelPos, config) {\n return pixelPos.top >= 0 && pixelPos.top < config.maxHeight;\n };\n Cursor.prototype.update = function (config) {\n this.config = config;\n var selections = this.session.$selectionMarkers;\n var i = 0, cursorIndex = 0;\n if (selections === undefined || selections.length === 0) {\n selections = [{ cursor: null }];\n }\n for (var i = 0, n = selections.length; i < n; i++) {\n var pixelPos = this.getPixelPosition(selections[i].cursor, true);\n if ((pixelPos.top > config.height + config.offset ||\n pixelPos.top < 0) && i > 1) {\n continue;\n }\n var element = this.cursors[cursorIndex++] || this.addCursor();\n var style = element.style;\n if (!this.drawCursor) {\n if (!this.isCursorInView(pixelPos, config)) {\n dom.setStyle(style, \"display\", \"none\");\n }\n else {\n dom.setStyle(style, \"display\", \"block\");\n dom.translate(element, pixelPos.left, pixelPos.top);\n dom.setStyle(style, \"width\", Math.round(config.characterWidth) + \"px\");\n dom.setStyle(style, \"height\", config.lineHeight + \"px\");\n }\n }\n else {\n this.drawCursor(element, pixelPos, config, selections[i], this.session);\n }\n }\n while (this.cursors.length > cursorIndex)\n this.removeCursor();\n var overwrite = this.session.getOverwrite();\n this.$setOverwrite(overwrite);\n this.$pixelPos = pixelPos;\n this.restartTimer();\n };\n Cursor.prototype.$setOverwrite = function (overwrite) {\n if (overwrite != this.overwrite) {\n this.overwrite = overwrite;\n if (overwrite)\n dom.addCssClass(this.element, \"ace_overwrite-cursors\");\n else\n dom.removeCssClass(this.element, \"ace_overwrite-cursors\");\n }\n };\n Cursor.prototype.destroy = function () {\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n };\n return Cursor;\n}());\nCursor.prototype.$padding = 0;\nCursor.prototype.drawCursor = null;\nexports.Cursor = Cursor;\n\n});\n\nace.define(\"ace/scrollbar\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar MAX_SCROLL_H = 0x8000;\nvar Scrollbar = /** @class */ (function () {\n function Scrollbar(parent, classSuffix) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_scrollbar ace_scrollbar\" + classSuffix;\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"ace_scrollbar-inner\";\n this.inner.textContent = \"\\xa0\";\n this.element.appendChild(this.inner);\n parent.appendChild(this.element);\n this.setVisible(false);\n this.skipEvent = false;\n event.addListener(this.element, \"scroll\", this.onScroll.bind(this));\n event.addListener(this.element, \"mousedown\", event.preventDefault);\n }\n Scrollbar.prototype.setVisible = function (isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n this.coeff = 1;\n };\n return Scrollbar;\n}());\noop.implement(Scrollbar.prototype, EventEmitter);\nvar VScrollBar = /** @class */ (function (_super) {\n __extends(VScrollBar, _super);\n function VScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-v') || this;\n _this.scrollTop = 0;\n _this.scrollHeight = 0;\n renderer.$scrollbarWidth =\n _this.width = dom.scrollbarWidth(parent.ownerDocument);\n _this.inner.style.width =\n _this.element.style.width = (_this.width || 15) + 5 + \"px\";\n _this.$minWidth = 0;\n return _this;\n }\n VScrollBar.prototype.onScroll = function () {\n if (!this.skipEvent) {\n this.scrollTop = this.element.scrollTop;\n if (this.coeff != 1) {\n var h = this.element.clientHeight / this.scrollHeight;\n this.scrollTop = this.scrollTop * (1 - h) / (this.coeff - h);\n }\n this._emit(\"scroll\", { data: this.scrollTop });\n }\n this.skipEvent = false;\n };\n VScrollBar.prototype.getWidth = function () {\n return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0);\n };\n VScrollBar.prototype.setHeight = function (height) {\n this.element.style.height = height + \"px\";\n };\n VScrollBar.prototype.setScrollHeight = function (height) {\n this.scrollHeight = height;\n if (height > MAX_SCROLL_H) {\n this.coeff = MAX_SCROLL_H / height;\n height = MAX_SCROLL_H;\n }\n else if (this.coeff != 1) {\n this.coeff = 1;\n }\n this.inner.style.height = height + \"px\";\n };\n VScrollBar.prototype.setScrollTop = function (scrollTop) {\n if (this.scrollTop != scrollTop) {\n this.skipEvent = true;\n this.scrollTop = scrollTop;\n this.element.scrollTop = scrollTop * this.coeff;\n }\n };\n return VScrollBar;\n}(Scrollbar));\nVScrollBar.prototype.setInnerHeight = VScrollBar.prototype.setScrollHeight;\nvar HScrollBar = /** @class */ (function (_super) {\n __extends(HScrollBar, _super);\n function HScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-h') || this;\n _this.scrollLeft = 0;\n _this.height = renderer.$scrollbarWidth;\n _this.inner.style.height =\n _this.element.style.height = (_this.height || 15) + 5 + \"px\";\n return _this;\n }\n HScrollBar.prototype.onScroll = function () {\n if (!this.skipEvent) {\n this.scrollLeft = this.element.scrollLeft;\n this._emit(\"scroll\", { data: this.scrollLeft });\n }\n this.skipEvent = false;\n };\n HScrollBar.prototype.getHeight = function () {\n return this.isVisible ? this.height : 0;\n };\n HScrollBar.prototype.setWidth = function (width) {\n this.element.style.width = width + \"px\";\n };\n HScrollBar.prototype.setInnerWidth = function (width) {\n this.inner.style.width = width + \"px\";\n };\n HScrollBar.prototype.setScrollWidth = function (width) {\n this.inner.style.width = width + \"px\";\n };\n HScrollBar.prototype.setScrollLeft = function (scrollLeft) {\n if (this.scrollLeft != scrollLeft) {\n this.skipEvent = true;\n this.scrollLeft = this.element.scrollLeft = scrollLeft;\n }\n };\n return HScrollBar;\n}(Scrollbar));\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n\n});\n\nace.define(\"ace/scrollbar_custom\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\ndom.importCssString(\".ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{\\n position: absolute;\\n background: rgba(128, 128, 128, 0.6);\\n -moz-box-sizing: border-box;\\n box-sizing: border-box;\\n border: 1px solid #bbb;\\n border-radius: 2px;\\n z-index: 8;\\n}\\n.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h {\\n position: absolute;\\n z-index: 6;\\n background: none;\\n overflow: hidden!important;\\n}\\n.ace_editor>.ace_sb-v {\\n z-index: 6;\\n right: 0;\\n top: 0;\\n width: 12px;\\n}\\n.ace_editor>.ace_sb-v div {\\n z-index: 8;\\n right: 0;\\n width: 100%;\\n}\\n.ace_editor>.ace_sb-h {\\n bottom: 0;\\n left: 0;\\n height: 12px;\\n}\\n.ace_editor>.ace_sb-h div {\\n bottom: 0;\\n height: 100%;\\n}\\n.ace_editor>.ace_sb_grabbed {\\n z-index: 8;\\n background: #000;\\n}\", \"ace_scrollbar.css\", false);\nvar ScrollBar = /** @class */ (function () {\n function ScrollBar(parent, classSuffix) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_sb\" + classSuffix;\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"\";\n this.element.appendChild(this.inner);\n this.VScrollWidth = 12;\n this.HScrollHeight = 12;\n parent.appendChild(this.element);\n this.setVisible(false);\n this.skipEvent = false;\n event.addMultiMouseDownListener(this.element, [500, 300, 300], this, \"onMouseDown\");\n }\n ScrollBar.prototype.setVisible = function (isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n this.coeff = 1;\n };\n return ScrollBar;\n}());\noop.implement(ScrollBar.prototype, EventEmitter);\nvar VScrollBar = /** @class */ (function (_super) {\n __extends(VScrollBar, _super);\n function VScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-v') || this;\n _this.scrollTop = 0;\n _this.scrollHeight = 0;\n _this.parent = parent;\n _this.width = _this.VScrollWidth;\n _this.renderer = renderer;\n _this.inner.style.width = _this.element.style.width = (_this.width || 15) + \"px\";\n _this.$minWidth = 0;\n return _this;\n }\n VScrollBar.prototype.onMouseDown = function (eType, e) {\n if (eType !== \"mousedown\")\n return;\n if (event.getButton(e) !== 0 || e.detail === 2) {\n return;\n }\n if (e.target === this.inner) {\n var self = this;\n var mousePageY = e.clientY;\n var onMouseMove = function (e) {\n mousePageY = e.clientY;\n };\n var onMouseUp = function () {\n clearInterval(timerId);\n };\n var startY = e.clientY;\n var startTop = this.thumbTop;\n var onScrollInterval = function () {\n if (mousePageY === undefined)\n return;\n var scrollTop = self.scrollTopFromThumbTop(startTop + mousePageY - startY);\n if (scrollTop === self.scrollTop)\n return;\n self._emit(\"scroll\", { data: scrollTop });\n };\n event.capture(this.inner, onMouseMove, onMouseUp);\n var timerId = setInterval(onScrollInterval, 20);\n return event.preventDefault(e);\n }\n var top = e.clientY - this.element.getBoundingClientRect().top - this.thumbHeight / 2;\n this._emit(\"scroll\", { data: this.scrollTopFromThumbTop(top) });\n return event.preventDefault(e);\n };\n VScrollBar.prototype.getHeight = function () {\n return this.height;\n };\n VScrollBar.prototype.scrollTopFromThumbTop = function (thumbTop) {\n var scrollTop = thumbTop * (this.pageHeight - this.viewHeight) / (this.slideHeight - this.thumbHeight);\n scrollTop = scrollTop >> 0;\n if (scrollTop < 0) {\n scrollTop = 0;\n }\n else if (scrollTop > this.pageHeight - this.viewHeight) {\n scrollTop = this.pageHeight - this.viewHeight;\n }\n return scrollTop;\n };\n VScrollBar.prototype.getWidth = function () {\n return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0);\n };\n VScrollBar.prototype.setHeight = function (height) {\n this.height = Math.max(0, height);\n this.slideHeight = this.height;\n this.viewHeight = this.height;\n this.setScrollHeight(this.pageHeight, true);\n };\n VScrollBar.prototype.setScrollHeight = function (height, force) {\n if (this.pageHeight === height && !force)\n return;\n this.pageHeight = height;\n this.thumbHeight = this.slideHeight * this.viewHeight / this.pageHeight;\n if (this.thumbHeight > this.slideHeight)\n this.thumbHeight = this.slideHeight;\n if (this.thumbHeight < 15)\n this.thumbHeight = 15;\n this.inner.style.height = this.thumbHeight + \"px\";\n if (this.scrollTop > (this.pageHeight - this.viewHeight)) {\n this.scrollTop = (this.pageHeight - this.viewHeight);\n if (this.scrollTop < 0)\n this.scrollTop = 0;\n this._emit(\"scroll\", { data: this.scrollTop });\n }\n };\n VScrollBar.prototype.setScrollTop = function (scrollTop) {\n this.scrollTop = scrollTop;\n if (scrollTop < 0)\n scrollTop = 0;\n this.thumbTop = scrollTop * (this.slideHeight - this.thumbHeight) / (this.pageHeight - this.viewHeight);\n this.inner.style.top = this.thumbTop + \"px\";\n };\n return VScrollBar;\n}(ScrollBar));\nVScrollBar.prototype.setInnerHeight = VScrollBar.prototype.setScrollHeight;\nvar HScrollBar = /** @class */ (function (_super) {\n __extends(HScrollBar, _super);\n function HScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-h') || this;\n _this.scrollLeft = 0;\n _this.scrollWidth = 0;\n _this.height = _this.HScrollHeight;\n _this.inner.style.height = _this.element.style.height = (_this.height || 12) + \"px\";\n _this.renderer = renderer;\n return _this;\n }\n HScrollBar.prototype.onMouseDown = function (eType, e) {\n if (eType !== \"mousedown\")\n return;\n if (event.getButton(e) !== 0 || e.detail === 2) {\n return;\n }\n if (e.target === this.inner) {\n var self = this;\n var mousePageX = e.clientX;\n var onMouseMove = function (e) {\n mousePageX = e.clientX;\n };\n var onMouseUp = function () {\n clearInterval(timerId);\n };\n var startX = e.clientX;\n var startLeft = this.thumbLeft;\n var onScrollInterval = function () {\n if (mousePageX === undefined)\n return;\n var scrollLeft = self.scrollLeftFromThumbLeft(startLeft + mousePageX - startX);\n if (scrollLeft === self.scrollLeft)\n return;\n self._emit(\"scroll\", { data: scrollLeft });\n };\n event.capture(this.inner, onMouseMove, onMouseUp);\n var timerId = setInterval(onScrollInterval, 20);\n return event.preventDefault(e);\n }\n var left = e.clientX - this.element.getBoundingClientRect().left - this.thumbWidth / 2;\n this._emit(\"scroll\", { data: this.scrollLeftFromThumbLeft(left) });\n return event.preventDefault(e);\n };\n HScrollBar.prototype.getHeight = function () {\n return this.isVisible ? this.height : 0;\n };\n HScrollBar.prototype.scrollLeftFromThumbLeft = function (thumbLeft) {\n var scrollLeft = thumbLeft * (this.pageWidth - this.viewWidth) / (this.slideWidth - this.thumbWidth);\n scrollLeft = scrollLeft >> 0;\n if (scrollLeft < 0) {\n scrollLeft = 0;\n }\n else if (scrollLeft > this.pageWidth - this.viewWidth) {\n scrollLeft = this.pageWidth - this.viewWidth;\n }\n return scrollLeft;\n };\n HScrollBar.prototype.setWidth = function (width) {\n this.width = Math.max(0, width);\n this.element.style.width = this.width + \"px\";\n this.slideWidth = this.width;\n this.viewWidth = this.width;\n this.setScrollWidth(this.pageWidth, true);\n };\n HScrollBar.prototype.setScrollWidth = function (width, force) {\n if (this.pageWidth === width && !force)\n return;\n this.pageWidth = width;\n this.thumbWidth = this.slideWidth * this.viewWidth / this.pageWidth;\n if (this.thumbWidth > this.slideWidth)\n this.thumbWidth = this.slideWidth;\n if (this.thumbWidth < 15)\n this.thumbWidth = 15;\n this.inner.style.width = this.thumbWidth + \"px\";\n if (this.scrollLeft > (this.pageWidth - this.viewWidth)) {\n this.scrollLeft = (this.pageWidth - this.viewWidth);\n if (this.scrollLeft < 0)\n this.scrollLeft = 0;\n this._emit(\"scroll\", { data: this.scrollLeft });\n }\n };\n HScrollBar.prototype.setScrollLeft = function (scrollLeft) {\n this.scrollLeft = scrollLeft;\n if (scrollLeft < 0)\n scrollLeft = 0;\n this.thumbLeft = scrollLeft * (this.slideWidth - this.thumbWidth) / (this.pageWidth - this.viewWidth);\n this.inner.style.left = (this.thumbLeft) + \"px\";\n };\n return HScrollBar;\n}(ScrollBar));\nHScrollBar.prototype.setInnerWidth = HScrollBar.prototype.setScrollWidth;\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n\n});\n\nace.define(\"ace/renderloop\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"], function(require, exports, module){\"use strict\";\nvar event = require(\"./lib/event\");\nvar RenderLoop = /** @class */ (function () {\n function RenderLoop(onRender, win) {\n this.onRender = onRender;\n this.pending = false;\n this.changes = 0;\n this.$recursionLimit = 2;\n this.window = win || window;\n var _self = this;\n this._flush = function (ts) {\n _self.pending = false;\n var changes = _self.changes;\n if (changes) {\n event.blockIdle(100);\n _self.changes = 0;\n _self.onRender(changes);\n }\n if (_self.changes) {\n if (_self.$recursionLimit-- < 0)\n return;\n _self.schedule();\n }\n else {\n _self.$recursionLimit = 2;\n }\n };\n }\n RenderLoop.prototype.schedule = function (change) {\n this.changes = this.changes | change;\n if (this.changes && !this.pending) {\n event.nextFrame(this._flush);\n this.pending = true;\n }\n };\n RenderLoop.prototype.clear = function (change) {\n var changes = this.changes;\n this.changes = 0;\n return changes;\n };\n return RenderLoop;\n}());\nexports.RenderLoop = RenderLoop;\n\n});\n\nace.define(\"ace/layer/font_metrics\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar CHAR_COUNT = 512;\nvar USE_OBSERVER = typeof ResizeObserver == \"function\";\nvar L = 200;\nvar FontMetrics = /** @class */ (function () {\n function FontMetrics(parentEl) {\n this.el = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.el.style, true);\n this.$main = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$main.style);\n this.$measureNode = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$measureNode.style);\n this.el.appendChild(this.$main);\n this.el.appendChild(this.$measureNode);\n parentEl.appendChild(this.el);\n this.$measureNode.textContent = lang.stringRepeat(\"X\", CHAR_COUNT);\n this.$characterSize = { width: 0, height: 0 };\n if (USE_OBSERVER)\n this.$addObserver();\n else\n this.checkForSizeChanges();\n }\n FontMetrics.prototype.$setMeasureNodeStyles = function (style, isRoot) {\n style.width = style.height = \"auto\";\n style.left = style.top = \"0px\";\n style.visibility = \"hidden\";\n style.position = \"absolute\";\n style.whiteSpace = \"pre\";\n if (useragent.isIE < 8) {\n style[\"font-family\"] = \"inherit\";\n }\n else {\n style.font = \"inherit\";\n }\n style.overflow = isRoot ? \"hidden\" : \"visible\";\n };\n FontMetrics.prototype.checkForSizeChanges = function (size) {\n if (size === undefined)\n size = this.$measureSizes();\n if (size && (this.$characterSize.width !== size.width || this.$characterSize.height !== size.height)) {\n this.$measureNode.style.fontWeight = \"bold\";\n var boldSize = this.$measureSizes();\n this.$measureNode.style.fontWeight = \"\";\n this.$characterSize = size;\n this.charSizes = Object.create(null);\n this.allowBoldFonts = boldSize && boldSize.width === size.width && boldSize.height === size.height;\n this._emit(\"changeCharacterSize\", { data: size });\n }\n };\n FontMetrics.prototype.$addObserver = function () {\n var self = this;\n this.$observer = new window.ResizeObserver(function (e) {\n self.checkForSizeChanges();\n });\n this.$observer.observe(this.$measureNode);\n };\n FontMetrics.prototype.$pollSizeChanges = function () {\n if (this.$pollSizeChangesTimer || this.$observer)\n return this.$pollSizeChangesTimer;\n var self = this;\n return this.$pollSizeChangesTimer = event.onIdle(function cb() {\n self.checkForSizeChanges();\n event.onIdle(cb, 500);\n }, 500);\n };\n FontMetrics.prototype.setPolling = function (val) {\n if (val) {\n this.$pollSizeChanges();\n }\n else if (this.$pollSizeChangesTimer) {\n clearInterval(this.$pollSizeChangesTimer);\n this.$pollSizeChangesTimer = 0;\n }\n };\n FontMetrics.prototype.$measureSizes = function (node) {\n var size = {\n height: (node || this.$measureNode).clientHeight,\n width: (node || this.$measureNode).clientWidth / CHAR_COUNT\n };\n if (size.width === 0 || size.height === 0)\n return null;\n return size;\n };\n FontMetrics.prototype.$measureCharWidth = function (ch) {\n this.$main.textContent = lang.stringRepeat(ch, CHAR_COUNT);\n var rect = this.$main.getBoundingClientRect();\n return rect.width / CHAR_COUNT;\n };\n FontMetrics.prototype.getCharacterWidth = function (ch) {\n var w = this.charSizes[ch];\n if (w === undefined) {\n w = this.charSizes[ch] = this.$measureCharWidth(ch) / this.$characterSize.width;\n }\n return w;\n };\n FontMetrics.prototype.destroy = function () {\n clearInterval(this.$pollSizeChangesTimer);\n if (this.$observer)\n this.$observer.disconnect();\n if (this.el && this.el.parentNode)\n this.el.parentNode.removeChild(this.el);\n };\n FontMetrics.prototype.$getZoom = function (element) {\n if (!element || !element.parentElement)\n return 1;\n return (window.getComputedStyle(element).zoom || 1) * this.$getZoom(element.parentElement);\n };\n FontMetrics.prototype.$initTransformMeasureNodes = function () {\n var t = function (t, l) {\n return [\"div\", {\n style: \"position: absolute;top:\" + t + \"px;left:\" + l + \"px;\"\n }];\n };\n this.els = dom.buildDom([t(0, 0), t(L, 0), t(0, L), t(L, L)], this.el);\n };\n FontMetrics.prototype.transformCoordinates = function (clientPos, elPos) {\n if (clientPos) {\n var zoom = this.$getZoom(this.el);\n clientPos = mul(1 / zoom, clientPos);\n }\n function solve(l1, l2, r) {\n var det = l1[1] * l2[0] - l1[0] * l2[1];\n return [\n (-l2[1] * r[0] + l2[0] * r[1]) / det,\n (+l1[1] * r[0] - l1[0] * r[1]) / det\n ];\n }\n function sub(a, b) { return [a[0] - b[0], a[1] - b[1]]; }\n function add(a, b) { return [a[0] + b[0], a[1] + b[1]]; }\n function mul(a, b) { return [a * b[0], a * b[1]]; }\n if (!this.els)\n this.$initTransformMeasureNodes();\n function p(el) {\n var r = el.getBoundingClientRect();\n return [r.left, r.top];\n }\n var a = p(this.els[0]);\n var b = p(this.els[1]);\n var c = p(this.els[2]);\n var d = p(this.els[3]);\n var h = solve(sub(d, b), sub(d, c), sub(add(b, c), add(d, a)));\n var m1 = mul(1 + h[0], sub(b, a));\n var m2 = mul(1 + h[1], sub(c, a));\n if (elPos) {\n var x = elPos;\n var k = h[0] * x[0] / L + h[1] * x[1] / L + 1;\n var ut = add(mul(x[0], m1), mul(x[1], m2));\n return add(mul(1 / k / L, ut), a);\n }\n var u = sub(clientPos, a);\n var f = solve(sub(m1, mul(h[0], u)), sub(m2, mul(h[1], u)), u);\n return mul(L, f);\n };\n return FontMetrics;\n}());\nFontMetrics.prototype.$characterSize = { width: 0, height: 0 };\noop.implement(FontMetrics.prototype, EventEmitter);\nexports.FontMetrics = FontMetrics;\n\n});\n\nace.define(\"ace/css/editor-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){/*\nstyles = []\nfor (var i = 1; i < 16; i++) {\n styles.push(\".ace_br\" + i + \"{\" + (\n [\"top-left\", \"top-right\", \"bottom-right\", \"bottom-left\"]\n ).map(function(x, j) {\n return i & (1< .ace_line, .ace_text-layer > .ace_line_group {\\n contain: style size layout;\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n}\\n\\n.ace_hidpi .ace_text-layer,\\n.ace_hidpi .ace_gutter-layer,\\n.ace_hidpi .ace_content,\\n.ace_hidpi .ace_gutter {\\n contain: strict;\\n}\\n.ace_hidpi .ace_text-layer > .ace_line, \\n.ace_hidpi .ace_text-layer > .ace_line_group {\\n contain: strict;\\n}\\n\\n.ace_cjk {\\n display: inline-block;\\n text-align: center;\\n}\\n\\n.ace_cursor-layer {\\n z-index: 4;\\n}\\n\\n.ace_cursor {\\n z-index: 4;\\n position: absolute;\\n box-sizing: border-box;\\n border-left: 2px solid;\\n /* workaround for smooth cursor repaintng whole screen in chrome */\\n transform: translatez(0);\\n}\\n\\n.ace_multiselect .ace_cursor {\\n border-left-width: 1px;\\n}\\n\\n.ace_slim-cursors .ace_cursor {\\n border-left-width: 1px;\\n}\\n\\n.ace_overwrite-cursors .ace_cursor {\\n border-left-width: 0;\\n border-bottom: 1px solid;\\n}\\n\\n.ace_hidden-cursors .ace_cursor {\\n opacity: 0.2;\\n}\\n\\n.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {\\n opacity: 0;\\n}\\n\\n.ace_smooth-blinking .ace_cursor {\\n transition: opacity 0.18s;\\n}\\n\\n.ace_animate-blinking .ace_cursor {\\n animation-duration: 1000ms;\\n animation-timing-function: step-end;\\n animation-name: blink-ace-animate;\\n animation-iteration-count: infinite;\\n}\\n\\n.ace_animate-blinking.ace_smooth-blinking .ace_cursor {\\n animation-duration: 1000ms;\\n animation-timing-function: ease-in-out;\\n animation-name: blink-ace-animate-smooth;\\n}\\n \\n@keyframes blink-ace-animate {\\n from, to { opacity: 1; }\\n 60% { opacity: 0; }\\n}\\n\\n@keyframes blink-ace-animate-smooth {\\n from, to { opacity: 1; }\\n 45% { opacity: 1; }\\n 60% { opacity: 0; }\\n 85% { opacity: 0; }\\n}\\n\\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\\n position: absolute;\\n z-index: 3;\\n}\\n\\n.ace_marker-layer .ace_selection {\\n position: absolute;\\n z-index: 5;\\n}\\n\\n.ace_marker-layer .ace_bracket {\\n position: absolute;\\n z-index: 6;\\n}\\n\\n.ace_marker-layer .ace_error_bracket {\\n position: absolute;\\n border-bottom: 1px solid #DE5555;\\n border-radius: 0;\\n}\\n\\n.ace_marker-layer .ace_active-line {\\n position: absolute;\\n z-index: 2;\\n}\\n\\n.ace_marker-layer .ace_selected-word {\\n position: absolute;\\n z-index: 4;\\n box-sizing: border-box;\\n}\\n\\n.ace_line .ace_fold {\\n box-sizing: border-box;\\n\\n display: inline-block;\\n height: 11px;\\n margin-top: -2px;\\n vertical-align: middle;\\n\\n background-image:\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=\\\");\\n background-repeat: no-repeat, repeat-x;\\n background-position: center center, top left;\\n color: transparent;\\n\\n border: 1px solid black;\\n border-radius: 2px;\\n\\n cursor: pointer;\\n pointer-events: auto;\\n}\\n\\n.ace_dark .ace_fold {\\n}\\n\\n.ace_fold:hover{\\n background-image:\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC\\\");\\n}\\n\\n.ace_tooltip {\\n background-color: #f5f5f5;\\n border: 1px solid gray;\\n border-radius: 1px;\\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\\n color: black;\\n max-width: 100%;\\n padding: 3px 4px;\\n position: fixed;\\n z-index: 999999;\\n box-sizing: border-box;\\n cursor: default;\\n white-space: pre-wrap;\\n word-wrap: break-word;\\n line-height: normal;\\n font-style: normal;\\n font-weight: normal;\\n letter-spacing: normal;\\n pointer-events: none;\\n overflow: auto;\\n max-width: min(60em, 66vw);\\n}\\n.ace_tooltip pre {\\n white-space: pre-wrap;\\n}\\n\\n.ace_tooltip.ace_dark {\\n background-color: #636363;\\n color: #fff;\\n}\\n\\n.ace_tooltip:focus {\\n outline: 1px solid #5E9ED6;\\n}\\n\\n.ace_icon {\\n display: inline-block;\\n width: 18px;\\n vertical-align: top;\\n}\\n\\n.ace_icon_svg {\\n display: inline-block;\\n width: 12px;\\n vertical-align: top;\\n -webkit-mask-repeat: no-repeat;\\n -webkit-mask-size: 12px;\\n -webkit-mask-position: center;\\n}\\n\\n.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons {\\n padding-right: 13px;\\n}\\n\\n.ace_fold-widget {\\n box-sizing: border-box;\\n\\n margin: 0 -12px 0 1px;\\n display: none;\\n width: 11px;\\n vertical-align: top;\\n\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==\\\");\\n background-repeat: no-repeat;\\n background-position: center;\\n\\n border-radius: 3px;\\n \\n border: 1px solid transparent;\\n cursor: pointer;\\n}\\n\\n.ace_folding-enabled .ace_fold-widget {\\n display: inline-block; \\n}\\n\\n.ace_fold-widget.ace_end {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==\\\");\\n}\\n\\n.ace_fold-widget.ace_closed {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==\\\");\\n}\\n\\n.ace_fold-widget:hover {\\n border: 1px solid rgba(0, 0, 0, 0.3);\\n background-color: rgba(255, 255, 255, 0.2);\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\\n}\\n\\n.ace_fold-widget:active {\\n border: 1px solid rgba(0, 0, 0, 0.4);\\n background-color: rgba(0, 0, 0, 0.05);\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\\n}\\n/**\\n * Dark version for fold widgets\\n */\\n.ace_dark .ace_fold-widget {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\\\");\\n}\\n.ace_dark .ace_fold-widget.ace_end {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\\\");\\n}\\n.ace_dark .ace_fold-widget.ace_closed {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\\\");\\n}\\n.ace_dark .ace_fold-widget:hover {\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.ace_dark .ace_fold-widget:active {\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\n}\\n\\n.ace_inline_button {\\n border: 1px solid lightgray;\\n display: inline-block;\\n margin: -1px 8px;\\n padding: 0 5px;\\n pointer-events: auto;\\n cursor: pointer;\\n}\\n.ace_inline_button:hover {\\n border-color: gray;\\n background: rgba(200,200,200,0.2);\\n display: inline-block;\\n pointer-events: auto;\\n}\\n\\n.ace_fold-widget.ace_invalid {\\n background-color: #FFB4B4;\\n border-color: #DE5555;\\n}\\n\\n.ace_fade-fold-widgets .ace_fold-widget {\\n transition: opacity 0.4s ease 0.05s;\\n opacity: 0;\\n}\\n\\n.ace_fade-fold-widgets:hover .ace_fold-widget {\\n transition: opacity 0.05s ease 0.05s;\\n opacity:1;\\n}\\n\\n.ace_underline {\\n text-decoration: underline;\\n}\\n\\n.ace_bold {\\n font-weight: bold;\\n}\\n\\n.ace_nobold .ace_bold {\\n font-weight: normal;\\n}\\n\\n.ace_italic {\\n font-style: italic;\\n}\\n\\n\\n.ace_error-marker {\\n background-color: rgba(255, 0, 0,0.2);\\n position: absolute;\\n z-index: 9;\\n}\\n\\n.ace_highlight-marker {\\n background-color: rgba(255, 255, 0,0.2);\\n position: absolute;\\n z-index: 8;\\n}\\n\\n.ace_mobile-menu {\\n position: absolute;\\n line-height: 1.5;\\n border-radius: 4px;\\n -ms-user-select: none;\\n -moz-user-select: none;\\n -webkit-user-select: none;\\n user-select: none;\\n background: white;\\n box-shadow: 1px 3px 2px grey;\\n border: 1px solid #dcdcdc;\\n color: black;\\n}\\n.ace_dark > .ace_mobile-menu {\\n background: #333;\\n color: #ccc;\\n box-shadow: 1px 3px 2px grey;\\n border: 1px solid #444;\\n\\n}\\n.ace_mobile-button {\\n padding: 2px;\\n cursor: pointer;\\n overflow: hidden;\\n}\\n.ace_mobile-button:hover {\\n background-color: #eee;\\n opacity:1;\\n}\\n.ace_mobile-button:active {\\n background-color: #ddd;\\n}\\n\\n.ace_placeholder {\\n font-family: arial;\\n transform: scale(0.9);\\n transform-origin: left;\\n white-space: pre;\\n opacity: 0.7;\\n margin: 0 10px;\\n}\\n\\n.ace_ghost_text {\\n opacity: 0.5;\\n font-style: italic;\\n white-space: pre;\\n}\\n\\n.ace_screenreader-only {\\n position:absolute;\\n left:-10000px;\\n top:auto;\\n width:1px;\\n height:1px;\\n overflow:hidden;\\n}\";\n\n});\n\nace.define(\"ace/layer/decorators\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar oop = require(\"../lib/oop\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar Decorator = /** @class */ (function () {\n function Decorator(parent, renderer) {\n this.canvas = dom.createElement(\"canvas\");\n this.renderer = renderer;\n this.pixelRatio = 1;\n this.maxHeight = renderer.layerConfig.maxHeight;\n this.lineHeight = renderer.layerConfig.lineHeight;\n this.canvasHeight = parent.parent.scrollHeight;\n this.heightRatio = this.canvasHeight / this.maxHeight;\n this.canvasWidth = parent.width;\n this.minDecorationHeight = (2 * this.pixelRatio) | 0;\n this.halfMinDecorationHeight = (this.minDecorationHeight / 2) | 0;\n this.canvas.width = this.canvasWidth;\n this.canvas.height = this.canvasHeight;\n this.canvas.style.top = 0 + \"px\";\n this.canvas.style.right = 0 + \"px\";\n this.canvas.style.zIndex = 7 + \"px\";\n this.canvas.style.position = \"absolute\";\n this.colors = {};\n this.colors.dark = {\n \"error\": \"rgba(255, 18, 18, 1)\",\n \"warning\": \"rgba(18, 136, 18, 1)\",\n \"info\": \"rgba(18, 18, 136, 1)\"\n };\n this.colors.light = {\n \"error\": \"rgb(255,51,51)\",\n \"warning\": \"rgb(32,133,72)\",\n \"info\": \"rgb(35,68,138)\"\n };\n parent.element.appendChild(this.canvas);\n }\n Decorator.prototype.$updateDecorators = function (config) {\n var colors = (this.renderer.theme.isDark === true) ? this.colors.dark : this.colors.light;\n if (config) {\n this.maxHeight = config.maxHeight;\n this.lineHeight = config.lineHeight;\n this.canvasHeight = config.height;\n var allLineHeight = (config.lastRow + 1) * this.lineHeight;\n if (allLineHeight < this.canvasHeight) {\n this.heightRatio = 1;\n }\n else {\n this.heightRatio = this.canvasHeight / this.maxHeight;\n }\n }\n var ctx = this.canvas.getContext(\"2d\");\n function compare(a, b) {\n if (a.priority < b.priority)\n return -1;\n if (a.priority > b.priority)\n return 1;\n return 0;\n }\n var annotations = this.renderer.session.$annotations;\n ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n if (annotations) {\n var priorities = {\n \"info\": 1,\n \"warning\": 2,\n \"error\": 3\n };\n annotations.forEach(function (item) {\n item.priority = priorities[item.type] || null;\n });\n annotations = annotations.sort(compare);\n var foldData = this.renderer.session.$foldData;\n for (var i = 0; i < annotations.length; i++) {\n var row = annotations[i].row;\n var compensateFold = this.compensateFoldRows(row, foldData);\n var currentY = Math.round((row - compensateFold) * this.lineHeight * this.heightRatio);\n var y1 = Math.round(((row - compensateFold) * this.lineHeight * this.heightRatio));\n var y2 = Math.round((((row - compensateFold) * this.lineHeight + this.lineHeight) * this.heightRatio));\n var height = y2 - y1;\n if (height < this.minDecorationHeight) {\n var yCenter = ((y1 + y2) / 2) | 0;\n if (yCenter < this.halfMinDecorationHeight) {\n yCenter = this.halfMinDecorationHeight;\n }\n else if (yCenter + this.halfMinDecorationHeight > this.canvasHeight) {\n yCenter = this.canvasHeight - this.halfMinDecorationHeight;\n }\n y1 = Math.round(yCenter - this.halfMinDecorationHeight);\n y2 = Math.round(yCenter + this.halfMinDecorationHeight);\n }\n ctx.fillStyle = colors[annotations[i].type] || null;\n ctx.fillRect(0, currentY, this.canvasWidth, y2 - y1);\n }\n }\n var cursor = this.renderer.session.selection.getCursor();\n if (cursor) {\n var compensateFold = this.compensateFoldRows(cursor.row, foldData);\n var currentY = Math.round((cursor.row - compensateFold) * this.lineHeight * this.heightRatio);\n ctx.fillStyle = \"rgba(0, 0, 0, 0.5)\";\n ctx.fillRect(0, currentY, this.canvasWidth, 2);\n }\n };\n Decorator.prototype.compensateFoldRows = function (row, foldData) {\n var compensateFold = 0;\n if (foldData && foldData.length > 0) {\n for (var j = 0; j < foldData.length; j++) {\n if (row > foldData[j].start.row && row < foldData[j].end.row) {\n compensateFold += row - foldData[j].start.row;\n }\n else if (row >= foldData[j].end.row) {\n compensateFold += foldData[j].end.row - foldData[j].start.row;\n }\n }\n }\n return compensateFold;\n };\n return Decorator;\n}());\noop.implement(Decorator.prototype, EventEmitter);\nexports.Decorator = Decorator;\n\n});\n\nace.define(\"ace/virtual_renderer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/config\",\"ace/layer/gutter\",\"ace/layer/marker\",\"ace/layer/text\",\"ace/layer/cursor\",\"ace/scrollbar\",\"ace/scrollbar\",\"ace/scrollbar_custom\",\"ace/scrollbar_custom\",\"ace/renderloop\",\"ace/layer/font_metrics\",\"ace/lib/event_emitter\",\"ace/css/editor-css\",\"ace/layer/decorators\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar lang = require(\"./lib/lang\");\nvar config = require(\"./config\");\nvar GutterLayer = require(\"./layer/gutter\").Gutter;\nvar MarkerLayer = require(\"./layer/marker\").Marker;\nvar TextLayer = require(\"./layer/text\").Text;\nvar CursorLayer = require(\"./layer/cursor\").Cursor;\nvar HScrollBar = require(\"./scrollbar\").HScrollBar;\nvar VScrollBar = require(\"./scrollbar\").VScrollBar;\nvar HScrollBarCustom = require(\"./scrollbar_custom\").HScrollBar;\nvar VScrollBarCustom = require(\"./scrollbar_custom\").VScrollBar;\nvar RenderLoop = require(\"./renderloop\").RenderLoop;\nvar FontMetrics = require(\"./layer/font_metrics\").FontMetrics;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar editorCss = require(\"./css/editor-css\");\nvar Decorator = require(\"./layer/decorators\").Decorator;\nvar useragent = require(\"./lib/useragent\");\ndom.importCssString(editorCss, \"ace_editor.css\", false);\nvar VirtualRenderer = /** @class */ (function () {\n function VirtualRenderer(container, theme) {\n var _self = this;\n this.container = container || dom.createElement(\"div\");\n dom.addCssClass(this.container, \"ace_editor\");\n if (dom.HI_DPI)\n dom.addCssClass(this.container, \"ace_hidpi\");\n this.setTheme(theme);\n if (config.get(\"useStrictCSP\") == null)\n config.set(\"useStrictCSP\", false);\n this.$gutter = dom.createElement(\"div\");\n this.$gutter.className = \"ace_gutter\";\n this.container.appendChild(this.$gutter);\n this.$gutter.setAttribute(\"aria-hidden\", true);\n this.scroller = dom.createElement(\"div\");\n this.scroller.className = \"ace_scroller\";\n this.container.appendChild(this.scroller);\n this.content = dom.createElement(\"div\");\n this.content.className = \"ace_content\";\n this.scroller.appendChild(this.content);\n this.$gutterLayer = new GutterLayer(this.$gutter);\n this.$gutterLayer.on(\"changeGutterWidth\", this.onGutterResize.bind(this));\n this.$markerBack = new MarkerLayer(this.content);\n var textLayer = this.$textLayer = new TextLayer(this.content);\n this.canvas = textLayer.element;\n this.$markerFront = new MarkerLayer(this.content);\n this.$cursorLayer = new CursorLayer(this.content);\n this.$horizScroll = false;\n this.$vScroll = false;\n this.scrollBar =\n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.on(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.on(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n this.scrollTop = 0;\n this.scrollLeft = 0;\n this.cursorPos = {\n row: 0,\n column: 0\n };\n this.$fontMetrics = new FontMetrics(this.container);\n this.$textLayer.$setFontMetrics(this.$fontMetrics);\n this.$textLayer.on(\"changeCharacterSize\", function (e) {\n _self.updateCharacterSize();\n _self.onResize(true, _self.gutterWidth, _self.$size.width, _self.$size.height);\n _self._signal(\"changeCharacterSize\", e);\n });\n this.$size = {\n width: 0,\n height: 0,\n scrollerHeight: 0,\n scrollerWidth: 0,\n $dirty: true\n };\n this.layerConfig = {\n width: 1,\n padding: 0,\n firstRow: 0,\n firstRowScreen: 0,\n lastRow: 0,\n lineHeight: 0,\n characterWidth: 0,\n minHeight: 1,\n maxHeight: 1,\n offset: 0,\n height: 1,\n gutterOffset: 1\n };\n this.scrollMargin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n this.margin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n this.$keepTextAreaAtCursor = !useragent.isIOS;\n this.$loop = new RenderLoop(this.$renderChanges.bind(this), this.container.ownerDocument.defaultView);\n this.$loop.schedule(this.CHANGE_FULL);\n this.updateCharacterSize();\n this.setPadding(4);\n this.$addResizeObserver();\n config.resetOptions(this);\n config._signal(\"renderer\", this);\n }\n VirtualRenderer.prototype.updateCharacterSize = function () {\n if (this.$textLayer.allowBoldFonts != this.$allowBoldFonts) {\n this.$allowBoldFonts = this.$textLayer.allowBoldFonts;\n this.setStyle(\"ace_nobold\", !this.$allowBoldFonts);\n }\n this.layerConfig.characterWidth =\n this.characterWidth = this.$textLayer.getCharacterWidth();\n this.layerConfig.lineHeight =\n this.lineHeight = this.$textLayer.getLineHeight();\n this.$updatePrintMargin();\n dom.setStyle(this.scroller.style, \"line-height\", this.lineHeight + \"px\");\n };\n VirtualRenderer.prototype.setSession = function (session) {\n if (this.session)\n this.session.doc.off(\"changeNewLineMode\", this.onChangeNewLineMode);\n this.session = session;\n if (session && this.scrollMargin.top && session.getScrollTop() <= 0)\n session.setScrollTop(-this.scrollMargin.top);\n this.$cursorLayer.setSession(session);\n this.$markerBack.setSession(session);\n this.$markerFront.setSession(session);\n this.$gutterLayer.setSession(session);\n this.$textLayer.setSession(session);\n if (!session)\n return;\n this.$loop.schedule(this.CHANGE_FULL);\n this.session.$setFontMetrics(this.$fontMetrics);\n this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null;\n this.onChangeNewLineMode = this.onChangeNewLineMode.bind(this);\n this.onChangeNewLineMode();\n this.session.doc.on(\"changeNewLineMode\", this.onChangeNewLineMode);\n };\n VirtualRenderer.prototype.updateLines = function (firstRow, lastRow, force) {\n if (lastRow === undefined)\n lastRow = Infinity;\n if (!this.$changedLines) {\n this.$changedLines = {\n firstRow: firstRow,\n lastRow: lastRow\n };\n }\n else {\n if (this.$changedLines.firstRow > firstRow)\n this.$changedLines.firstRow = firstRow;\n if (this.$changedLines.lastRow < lastRow)\n this.$changedLines.lastRow = lastRow;\n }\n if (this.$changedLines.lastRow < this.layerConfig.firstRow) {\n if (force)\n this.$changedLines.lastRow = this.layerConfig.lastRow;\n else\n return;\n }\n if (this.$changedLines.firstRow > this.layerConfig.lastRow)\n return;\n this.$loop.schedule(this.CHANGE_LINES);\n };\n VirtualRenderer.prototype.onChangeNewLineMode = function () {\n this.$loop.schedule(this.CHANGE_TEXT);\n this.$textLayer.$updateEolChar();\n this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR);\n };\n VirtualRenderer.prototype.onChangeTabSize = function () {\n this.$loop.schedule(this.CHANGE_TEXT | this.CHANGE_MARKER);\n this.$textLayer.onChangeTabSize();\n };\n VirtualRenderer.prototype.updateText = function () {\n this.$loop.schedule(this.CHANGE_TEXT);\n };\n VirtualRenderer.prototype.updateFull = function (force) {\n if (force)\n this.$renderChanges(this.CHANGE_FULL, true);\n else\n this.$loop.schedule(this.CHANGE_FULL);\n };\n VirtualRenderer.prototype.updateFontSize = function () {\n this.$textLayer.checkForSizeChanges();\n };\n VirtualRenderer.prototype.$updateSizeAsync = function () {\n if (this.$loop.pending)\n this.$size.$dirty = true;\n else\n this.onResize();\n };\n VirtualRenderer.prototype.onResize = function (force, gutterWidth, width, height) {\n if (this.resizing > 2)\n return;\n else if (this.resizing > 0)\n this.resizing++;\n else\n this.resizing = force ? 1 : 0;\n var el = this.container;\n if (!height)\n height = el.clientHeight || el.scrollHeight;\n if (!width)\n width = el.clientWidth || el.scrollWidth;\n var changes = this.$updateCachedSize(force, gutterWidth, width, height);\n if (this.$resizeTimer)\n this.$resizeTimer.cancel();\n if (!this.$size.scrollerHeight || (!width && !height))\n return this.resizing = 0;\n if (force)\n this.$gutterLayer.$padding = null;\n if (force)\n this.$renderChanges(changes | this.$changes, true);\n else\n this.$loop.schedule(changes | this.$changes);\n if (this.resizing)\n this.resizing = 0;\n this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null;\n if (this.$customScrollbar) {\n this.$updateCustomScrollbar(true);\n }\n };\n VirtualRenderer.prototype.$updateCachedSize = function (force, gutterWidth, width, height) {\n height -= (this.$extraHeight || 0);\n var changes = 0;\n var size = this.$size;\n var oldSize = {\n width: size.width,\n height: size.height,\n scrollerHeight: size.scrollerHeight,\n scrollerWidth: size.scrollerWidth\n };\n if (height && (force || size.height != height)) {\n size.height = height;\n changes |= this.CHANGE_SIZE;\n size.scrollerHeight = size.height;\n if (this.$horizScroll)\n size.scrollerHeight -= this.scrollBarH.getHeight();\n this.scrollBarV.setHeight(size.scrollerHeight);\n this.scrollBarV.element.style.bottom = this.scrollBarH.getHeight() + \"px\";\n changes = changes | this.CHANGE_SCROLL;\n }\n if (width && (force || size.width != width)) {\n changes |= this.CHANGE_SIZE;\n size.width = width;\n if (gutterWidth == null)\n gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n this.gutterWidth = gutterWidth;\n dom.setStyle(this.scrollBarH.element.style, \"left\", gutterWidth + \"px\");\n dom.setStyle(this.scroller.style, \"left\", gutterWidth + this.margin.left + \"px\");\n size.scrollerWidth = Math.max(0, width - gutterWidth - this.scrollBarV.getWidth() - this.margin.h);\n dom.setStyle(this.$gutter.style, \"left\", this.margin.left + \"px\");\n var right = this.scrollBarV.getWidth() + \"px\";\n dom.setStyle(this.scrollBarH.element.style, \"right\", right);\n dom.setStyle(this.scroller.style, \"right\", right);\n dom.setStyle(this.scroller.style, \"bottom\", this.scrollBarH.getHeight());\n this.scrollBarH.setWidth(size.scrollerWidth);\n if (this.session && this.session.getUseWrapMode() && this.adjustWrapLimit() || force) {\n changes |= this.CHANGE_FULL;\n }\n }\n size.$dirty = !width || !height;\n if (changes)\n this._signal(\"resize\", oldSize);\n return changes;\n };\n VirtualRenderer.prototype.onGutterResize = function (width) {\n var gutterWidth = this.$showGutter ? width : 0;\n if (gutterWidth != this.gutterWidth)\n this.$changes |= this.$updateCachedSize(true, gutterWidth, this.$size.width, this.$size.height);\n if (this.session.getUseWrapMode() && this.adjustWrapLimit()) {\n this.$loop.schedule(this.CHANGE_FULL);\n }\n else if (this.$size.$dirty) {\n this.$loop.schedule(this.CHANGE_FULL);\n }\n else {\n this.$computeLayerConfig();\n }\n };\n VirtualRenderer.prototype.adjustWrapLimit = function () {\n var availableWidth = this.$size.scrollerWidth - this.$padding * 2;\n var limit = Math.floor(availableWidth / this.characterWidth);\n return this.session.adjustWrapLimit(limit, this.$showPrintMargin && this.$printMarginColumn);\n };\n VirtualRenderer.prototype.setAnimatedScroll = function (shouldAnimate) {\n this.setOption(\"animatedScroll\", shouldAnimate);\n };\n VirtualRenderer.prototype.getAnimatedScroll = function () {\n return this.$animatedScroll;\n };\n VirtualRenderer.prototype.setShowInvisibles = function (showInvisibles) {\n this.setOption(\"showInvisibles\", showInvisibles);\n this.session.$bidiHandler.setShowInvisibles(showInvisibles);\n };\n VirtualRenderer.prototype.getShowInvisibles = function () {\n return this.getOption(\"showInvisibles\");\n };\n VirtualRenderer.prototype.getDisplayIndentGuides = function () {\n return this.getOption(\"displayIndentGuides\");\n };\n VirtualRenderer.prototype.setDisplayIndentGuides = function (display) {\n this.setOption(\"displayIndentGuides\", display);\n };\n VirtualRenderer.prototype.getHighlightIndentGuides = function () {\n return this.getOption(\"highlightIndentGuides\");\n };\n VirtualRenderer.prototype.setHighlightIndentGuides = function (highlight) {\n this.setOption(\"highlightIndentGuides\", highlight);\n };\n VirtualRenderer.prototype.setShowPrintMargin = function (showPrintMargin) {\n this.setOption(\"showPrintMargin\", showPrintMargin);\n };\n VirtualRenderer.prototype.getShowPrintMargin = function () {\n return this.getOption(\"showPrintMargin\");\n };\n VirtualRenderer.prototype.setPrintMarginColumn = function (showPrintMargin) {\n this.setOption(\"printMarginColumn\", showPrintMargin);\n };\n VirtualRenderer.prototype.getPrintMarginColumn = function () {\n return this.getOption(\"printMarginColumn\");\n };\n VirtualRenderer.prototype.getShowGutter = function () {\n return this.getOption(\"showGutter\");\n };\n VirtualRenderer.prototype.setShowGutter = function (show) {\n return this.setOption(\"showGutter\", show);\n };\n VirtualRenderer.prototype.getFadeFoldWidgets = function () {\n return this.getOption(\"fadeFoldWidgets\");\n };\n VirtualRenderer.prototype.setFadeFoldWidgets = function (show) {\n this.setOption(\"fadeFoldWidgets\", show);\n };\n VirtualRenderer.prototype.setHighlightGutterLine = function (shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n VirtualRenderer.prototype.getHighlightGutterLine = function () {\n return this.getOption(\"highlightGutterLine\");\n };\n VirtualRenderer.prototype.$updatePrintMargin = function () {\n if (!this.$showPrintMargin && !this.$printMarginEl)\n return;\n if (!this.$printMarginEl) {\n var containerEl = dom.createElement(\"div\");\n containerEl.className = \"ace_layer ace_print-margin-layer\";\n this.$printMarginEl = dom.createElement(\"div\");\n this.$printMarginEl.className = \"ace_print-margin\";\n containerEl.appendChild(this.$printMarginEl);\n this.content.insertBefore(containerEl, this.content.firstChild);\n }\n var style = this.$printMarginEl.style;\n style.left = Math.round(this.characterWidth * this.$printMarginColumn + this.$padding) + \"px\";\n style.visibility = this.$showPrintMargin ? \"visible\" : \"hidden\";\n if (this.session && this.session.$wrap == -1)\n this.adjustWrapLimit();\n };\n VirtualRenderer.prototype.getContainerElement = function () {\n return this.container;\n };\n VirtualRenderer.prototype.getMouseEventTarget = function () {\n return this.scroller;\n };\n VirtualRenderer.prototype.getTextAreaContainer = function () {\n return this.container;\n };\n VirtualRenderer.prototype.$moveTextAreaToCursor = function () {\n if (this.$isMousePressed)\n return;\n var style = this.textarea.style;\n var composition = this.$composition;\n if (!this.$keepTextAreaAtCursor && !composition) {\n dom.translate(this.textarea, -100, 0);\n return;\n }\n var pixelPos = this.$cursorLayer.$pixelPos;\n if (!pixelPos)\n return;\n if (composition && composition.markerRange)\n pixelPos = this.$cursorLayer.getPixelPosition(composition.markerRange.start, true);\n var config = this.layerConfig;\n var posTop = pixelPos.top;\n var posLeft = pixelPos.left;\n posTop -= config.offset;\n var h = composition && composition.useTextareaForIME || useragent.isMobile ? this.lineHeight : 1;\n if (posTop < 0 || posTop > config.height - h) {\n dom.translate(this.textarea, 0, 0);\n return;\n }\n var w = 1;\n var maxTop = this.$size.height - h;\n if (!composition) {\n posTop += this.lineHeight;\n }\n else {\n if (composition.useTextareaForIME) {\n var val = this.textarea.value;\n w = this.characterWidth * (this.session.$getStringScreenWidth(val)[0]);\n }\n else {\n posTop += this.lineHeight + 2;\n }\n }\n posLeft -= this.scrollLeft;\n if (posLeft > this.$size.scrollerWidth - w)\n posLeft = this.$size.scrollerWidth - w;\n posLeft += this.gutterWidth + this.margin.left;\n dom.setStyle(style, \"height\", h + \"px\");\n dom.setStyle(style, \"width\", w + \"px\");\n dom.translate(this.textarea, Math.min(posLeft, this.$size.scrollerWidth - w), Math.min(posTop, maxTop));\n };\n VirtualRenderer.prototype.getFirstVisibleRow = function () {\n return this.layerConfig.firstRow;\n };\n VirtualRenderer.prototype.getFirstFullyVisibleRow = function () {\n return this.layerConfig.firstRow + (this.layerConfig.offset === 0 ? 0 : 1);\n };\n VirtualRenderer.prototype.getLastFullyVisibleRow = function () {\n var config = this.layerConfig;\n var lastRow = config.lastRow;\n var top = this.session.documentToScreenRow(lastRow, 0) * config.lineHeight;\n if (top - this.session.getScrollTop() > config.height - config.lineHeight)\n return lastRow - 1;\n return lastRow;\n };\n VirtualRenderer.prototype.getLastVisibleRow = function () {\n return this.layerConfig.lastRow;\n };\n VirtualRenderer.prototype.setPadding = function (padding) {\n this.$padding = padding;\n this.$textLayer.setPadding(padding);\n this.$cursorLayer.setPadding(padding);\n this.$markerFront.setPadding(padding);\n this.$markerBack.setPadding(padding);\n this.$loop.schedule(this.CHANGE_FULL);\n this.$updatePrintMargin();\n };\n VirtualRenderer.prototype.setScrollMargin = function (top, bottom, left, right) {\n var sm = this.scrollMargin;\n sm.top = top | 0;\n sm.bottom = bottom | 0;\n sm.right = right | 0;\n sm.left = left | 0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n if (sm.top && this.scrollTop <= 0 && this.session)\n this.session.setScrollTop(-sm.top);\n this.updateFull();\n };\n VirtualRenderer.prototype.setMargin = function (top, bottom, left, right) {\n var sm = this.margin;\n sm.top = top | 0;\n sm.bottom = bottom | 0;\n sm.right = right | 0;\n sm.left = left | 0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n this.$updateCachedSize(true, this.gutterWidth, this.$size.width, this.$size.height);\n this.updateFull();\n };\n VirtualRenderer.prototype.getHScrollBarAlwaysVisible = function () {\n return this.$hScrollBarAlwaysVisible;\n };\n VirtualRenderer.prototype.setHScrollBarAlwaysVisible = function (alwaysVisible) {\n this.setOption(\"hScrollBarAlwaysVisible\", alwaysVisible);\n };\n VirtualRenderer.prototype.getVScrollBarAlwaysVisible = function () {\n return this.$vScrollBarAlwaysVisible;\n };\n VirtualRenderer.prototype.setVScrollBarAlwaysVisible = function (alwaysVisible) {\n this.setOption(\"vScrollBarAlwaysVisible\", alwaysVisible);\n };\n VirtualRenderer.prototype.$updateScrollBarV = function () {\n var scrollHeight = this.layerConfig.maxHeight;\n var scrollerHeight = this.$size.scrollerHeight;\n if (!this.$maxLines && this.$scrollPastEnd) {\n scrollHeight -= (scrollerHeight - this.lineHeight) * this.$scrollPastEnd;\n if (this.scrollTop > scrollHeight - scrollerHeight) {\n scrollHeight = this.scrollTop + scrollerHeight;\n this.scrollBarV.scrollTop = null;\n }\n }\n this.scrollBarV.setScrollHeight(scrollHeight + this.scrollMargin.v);\n this.scrollBarV.setScrollTop(this.scrollTop + this.scrollMargin.top);\n };\n VirtualRenderer.prototype.$updateScrollBarH = function () {\n this.scrollBarH.setScrollWidth(this.layerConfig.width + 2 * this.$padding + this.scrollMargin.h);\n this.scrollBarH.setScrollLeft(this.scrollLeft + this.scrollMargin.left);\n };\n VirtualRenderer.prototype.freeze = function () {\n this.$frozen = true;\n };\n VirtualRenderer.prototype.unfreeze = function () {\n this.$frozen = false;\n };\n VirtualRenderer.prototype.$renderChanges = function (changes, force) {\n if (this.$changes) {\n changes |= this.$changes;\n this.$changes = 0;\n }\n if ((!this.session || !this.container.offsetWidth || this.$frozen) || (!changes && !force)) {\n this.$changes |= changes;\n return;\n }\n if (this.$size.$dirty) {\n this.$changes |= changes;\n return this.onResize(true);\n }\n if (!this.lineHeight) {\n this.$textLayer.checkForSizeChanges();\n }\n this._signal(\"beforeRender\", changes);\n if (this.session && this.session.$bidiHandler)\n this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);\n var config = this.layerConfig;\n if (changes & this.CHANGE_FULL ||\n changes & this.CHANGE_SIZE ||\n changes & this.CHANGE_TEXT ||\n changes & this.CHANGE_LINES ||\n changes & this.CHANGE_SCROLL ||\n changes & this.CHANGE_H_SCROLL) {\n changes |= this.$computeLayerConfig() | this.$loop.clear();\n if (config.firstRow != this.layerConfig.firstRow && config.firstRowScreen == this.layerConfig.firstRowScreen) {\n var st = this.scrollTop + (config.firstRow - Math.max(this.layerConfig.firstRow, 0)) * this.lineHeight;\n if (st > 0) {\n this.scrollTop = st;\n changes = changes | this.CHANGE_SCROLL;\n changes |= this.$computeLayerConfig() | this.$loop.clear();\n }\n }\n config = this.layerConfig;\n this.$updateScrollBarV();\n if (changes & this.CHANGE_H_SCROLL)\n this.$updateScrollBarH();\n dom.translate(this.content, -this.scrollLeft, -config.offset);\n var width = config.width + 2 * this.$padding + \"px\";\n var height = config.minHeight + \"px\";\n dom.setStyle(this.content.style, \"width\", width);\n dom.setStyle(this.content.style, \"height\", height);\n }\n if (changes & this.CHANGE_H_SCROLL) {\n dom.translate(this.content, -this.scrollLeft, -config.offset);\n this.scroller.className = this.scrollLeft <= 0 ? \"ace_scroller \" : \"ace_scroller ace_scroll-left \";\n if (this.enableKeyboardAccessibility)\n this.scroller.className += this.keyboardFocusClassName;\n }\n if (changes & this.CHANGE_FULL) {\n this.$changedLines = null;\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\", changes);\n return;\n }\n if (changes & this.CHANGE_SCROLL) {\n this.$changedLines = null;\n if (changes & this.CHANGE_TEXT || changes & this.CHANGE_LINES)\n this.$textLayer.update(config);\n else\n this.$textLayer.scrollLines(config);\n if (this.$showGutter) {\n if (changes & this.CHANGE_GUTTER || changes & this.CHANGE_LINES)\n this.$gutterLayer.update(config);\n else\n this.$gutterLayer.scrollLines(config);\n }\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\", changes);\n return;\n }\n if (changes & this.CHANGE_TEXT) {\n this.$changedLines = null;\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_LINES) {\n if (this.$updateLines() || (changes & this.CHANGE_GUTTER) && this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_TEXT || changes & this.CHANGE_GUTTER) {\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_CURSOR) {\n if (this.$highlightGutterLine)\n this.$gutterLayer.updateLineHighlight(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n if (changes & this.CHANGE_CURSOR) {\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n }\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_FRONT)) {\n this.$markerFront.update(config);\n }\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_BACK)) {\n this.$markerBack.update(config);\n }\n this._signal(\"afterRender\", changes);\n };\n VirtualRenderer.prototype.$autosize = function () {\n var height = this.session.getScreenLength() * this.lineHeight;\n var maxHeight = this.$maxLines * this.lineHeight;\n var desiredHeight = Math.min(maxHeight, Math.max((this.$minLines || 1) * this.lineHeight, height)) + this.scrollMargin.v + (this.$extraHeight || 0);\n if (this.$horizScroll)\n desiredHeight += this.scrollBarH.getHeight();\n if (this.$maxPixelHeight && desiredHeight > this.$maxPixelHeight)\n desiredHeight = this.$maxPixelHeight;\n var hideScrollbars = desiredHeight <= 2 * this.lineHeight;\n var vScroll = !hideScrollbars && height > maxHeight;\n if (desiredHeight != this.desiredHeight ||\n this.$size.height != this.desiredHeight || vScroll != this.$vScroll) {\n if (vScroll != this.$vScroll) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n var w = this.container.clientWidth;\n this.container.style.height = desiredHeight + \"px\";\n this.$updateCachedSize(true, this.$gutterWidth, w, desiredHeight);\n this.desiredHeight = desiredHeight;\n this._signal(\"autosize\");\n }\n };\n VirtualRenderer.prototype.$computeLayerConfig = function () {\n var session = this.session;\n var size = this.$size;\n var hideScrollbars = size.height <= 2 * this.lineHeight;\n var screenLines = this.session.getScreenLength();\n var maxHeight = screenLines * this.lineHeight;\n var longestLine = this.$getLongestLine();\n var horizScroll = !hideScrollbars && (this.$hScrollBarAlwaysVisible ||\n size.scrollerWidth - longestLine - 2 * this.$padding < 0);\n var hScrollChanged = this.$horizScroll !== horizScroll;\n if (hScrollChanged) {\n this.$horizScroll = horizScroll;\n this.scrollBarH.setVisible(horizScroll);\n }\n var vScrollBefore = this.$vScroll; // autosize can change vscroll value in which case we need to update longestLine\n if (this.$maxLines && this.lineHeight > 1)\n this.$autosize();\n var minHeight = size.scrollerHeight + this.lineHeight;\n var scrollPastEnd = !this.$maxLines && this.$scrollPastEnd\n ? (size.scrollerHeight - this.lineHeight) * this.$scrollPastEnd\n : 0;\n maxHeight += scrollPastEnd;\n var sm = this.scrollMargin;\n this.session.setScrollTop(Math.max(-sm.top, Math.min(this.scrollTop, maxHeight - size.scrollerHeight + sm.bottom)));\n this.session.setScrollLeft(Math.max(-sm.left, Math.min(this.scrollLeft, longestLine + 2 * this.$padding - size.scrollerWidth + sm.right)));\n var vScroll = !hideScrollbars && (this.$vScrollBarAlwaysVisible ||\n size.scrollerHeight - maxHeight + scrollPastEnd < 0 || this.scrollTop > sm.top);\n var vScrollChanged = vScrollBefore !== vScroll;\n if (vScrollChanged) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n var offset = this.scrollTop % this.lineHeight;\n var lineCount = Math.ceil(minHeight / this.lineHeight) - 1;\n var firstRow = Math.max(0, Math.round((this.scrollTop - offset) / this.lineHeight));\n var lastRow = firstRow + lineCount;\n var firstRowScreen, firstRowHeight;\n var lineHeight = this.lineHeight;\n firstRow = session.screenToDocumentRow(firstRow, 0);\n var foldLine = session.getFoldLine(firstRow);\n if (foldLine) {\n firstRow = foldLine.start.row;\n }\n firstRowScreen = session.documentToScreenRow(firstRow, 0);\n firstRowHeight = session.getRowLength(firstRow) * lineHeight;\n lastRow = Math.min(session.screenToDocumentRow(lastRow, 0), session.getLength() - 1);\n minHeight = size.scrollerHeight + session.getRowLength(lastRow) * lineHeight +\n firstRowHeight;\n offset = this.scrollTop - firstRowScreen * lineHeight;\n var changes = 0;\n if (this.layerConfig.width != longestLine || hScrollChanged)\n changes = this.CHANGE_H_SCROLL;\n if (hScrollChanged || vScrollChanged) {\n changes |= this.$updateCachedSize(true, this.gutterWidth, size.width, size.height);\n this._signal(\"scrollbarVisibilityChanged\");\n if (vScrollChanged)\n longestLine = this.$getLongestLine();\n }\n this.layerConfig = {\n width: longestLine,\n padding: this.$padding,\n firstRow: firstRow,\n firstRowScreen: firstRowScreen,\n lastRow: lastRow,\n lineHeight: lineHeight,\n characterWidth: this.characterWidth,\n minHeight: minHeight,\n maxHeight: maxHeight,\n offset: offset,\n gutterOffset: lineHeight ? Math.max(0, Math.ceil((offset + size.height - size.scrollerHeight) / lineHeight)) : 0,\n height: this.$size.scrollerHeight\n };\n if (this.session.$bidiHandler)\n this.session.$bidiHandler.setContentWidth(longestLine - this.$padding);\n return changes;\n };\n VirtualRenderer.prototype.$updateLines = function () {\n if (!this.$changedLines)\n return;\n var firstRow = this.$changedLines.firstRow;\n var lastRow = this.$changedLines.lastRow;\n this.$changedLines = null;\n var layerConfig = this.layerConfig;\n if (firstRow > layerConfig.lastRow + 1) {\n return;\n }\n if (lastRow < layerConfig.firstRow) {\n return;\n }\n if (lastRow === Infinity) {\n if (this.$showGutter)\n this.$gutterLayer.update(layerConfig);\n this.$textLayer.update(layerConfig);\n return;\n }\n this.$textLayer.updateLines(layerConfig, firstRow, lastRow);\n return true;\n };\n VirtualRenderer.prototype.$getLongestLine = function () {\n var charCount = this.session.getScreenWidth();\n if (this.showInvisibles && !this.session.$useWrapMode)\n charCount += 1;\n if (this.$textLayer && charCount > this.$textLayer.MAX_LINE_LENGTH)\n charCount = this.$textLayer.MAX_LINE_LENGTH + 30;\n return Math.max(this.$size.scrollerWidth - 2 * this.$padding, Math.round(charCount * this.characterWidth));\n };\n VirtualRenderer.prototype.updateFrontMarkers = function () {\n this.$markerFront.setMarkers(this.session.getMarkers(true));\n this.$loop.schedule(this.CHANGE_MARKER_FRONT);\n };\n VirtualRenderer.prototype.updateBackMarkers = function () {\n this.$markerBack.setMarkers(this.session.getMarkers());\n this.$loop.schedule(this.CHANGE_MARKER_BACK);\n };\n VirtualRenderer.prototype.addGutterDecoration = function (row, className) {\n this.$gutterLayer.addGutterDecoration(row, className);\n };\n VirtualRenderer.prototype.removeGutterDecoration = function (row, className) {\n this.$gutterLayer.removeGutterDecoration(row, className);\n };\n VirtualRenderer.prototype.updateBreakpoints = function (rows) {\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n VirtualRenderer.prototype.setAnnotations = function (annotations) {\n this.$gutterLayer.setAnnotations(annotations);\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n VirtualRenderer.prototype.updateCursor = function () {\n this.$loop.schedule(this.CHANGE_CURSOR);\n };\n VirtualRenderer.prototype.hideCursor = function () {\n this.$cursorLayer.hideCursor();\n };\n VirtualRenderer.prototype.showCursor = function () {\n this.$cursorLayer.showCursor();\n };\n VirtualRenderer.prototype.scrollSelectionIntoView = function (anchor, lead, offset) {\n this.scrollCursorIntoView(anchor, offset);\n this.scrollCursorIntoView(lead, offset);\n };\n VirtualRenderer.prototype.scrollCursorIntoView = function (cursor, offset, $viewMargin) {\n if (this.$size.scrollerHeight === 0)\n return;\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var newLeft = pos.left;\n var newTop = pos.top;\n var topMargin = $viewMargin && $viewMargin.top || 0;\n var bottomMargin = $viewMargin && $viewMargin.bottom || 0;\n if (this.$scrollAnimation) {\n this.$stopAnimation = true;\n }\n var currentTop = this.$scrollAnimation ? this.session.getScrollTop() : this.scrollTop;\n if (currentTop + topMargin > newTop) {\n if (offset && currentTop + topMargin > newTop + this.lineHeight)\n newTop -= offset * this.$size.scrollerHeight;\n if (newTop === 0)\n newTop = -this.scrollMargin.top;\n this.session.setScrollTop(newTop);\n }\n else if (currentTop + this.$size.scrollerHeight - bottomMargin < newTop + this.lineHeight) {\n if (offset && currentTop + this.$size.scrollerHeight - bottomMargin < newTop - this.lineHeight)\n newTop += offset * this.$size.scrollerHeight;\n this.session.setScrollTop(newTop + this.lineHeight + bottomMargin - this.$size.scrollerHeight);\n }\n var currentLeft = this.scrollLeft;\n var twoCharsWidth = 2 * this.layerConfig.characterWidth;\n if (newLeft - twoCharsWidth < currentLeft) {\n newLeft -= twoCharsWidth;\n if (newLeft < this.$padding + twoCharsWidth) {\n newLeft = -this.scrollMargin.left;\n }\n this.session.setScrollLeft(newLeft);\n }\n else {\n newLeft += twoCharsWidth;\n if (currentLeft + this.$size.scrollerWidth < newLeft + this.characterWidth) {\n this.session.setScrollLeft(Math.round(newLeft + this.characterWidth - this.$size.scrollerWidth));\n }\n else if (currentLeft <= this.$padding && newLeft - currentLeft < this.characterWidth) {\n this.session.setScrollLeft(0);\n }\n }\n };\n VirtualRenderer.prototype.getScrollTop = function () {\n return this.session.getScrollTop();\n };\n VirtualRenderer.prototype.getScrollLeft = function () {\n return this.session.getScrollLeft();\n };\n VirtualRenderer.prototype.getScrollTopRow = function () {\n return this.scrollTop / this.lineHeight;\n };\n VirtualRenderer.prototype.getScrollBottomRow = function () {\n return Math.max(0, Math.floor((this.scrollTop + this.$size.scrollerHeight) / this.lineHeight) - 1);\n };\n VirtualRenderer.prototype.scrollToRow = function (row) {\n this.session.setScrollTop(row * this.lineHeight);\n };\n VirtualRenderer.prototype.alignCursor = function (cursor, alignment) {\n if (typeof cursor == \"number\")\n cursor = { row: cursor, column: 0 };\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var h = this.$size.scrollerHeight - this.lineHeight;\n var offset = pos.top - h * (alignment || 0);\n this.session.setScrollTop(offset);\n return offset;\n };\n VirtualRenderer.prototype.$calcSteps = function (fromValue, toValue) {\n var i = 0;\n var l = this.STEPS;\n var steps = [];\n var func = function (t, x_min, dx) {\n return dx * (Math.pow(t - 1, 3) + 1) + x_min;\n };\n for (i = 0; i < l; ++i)\n steps.push(func(i / this.STEPS, fromValue, toValue - fromValue));\n return steps;\n };\n VirtualRenderer.prototype.scrollToLine = function (line, center, animate, callback) {\n var pos = this.$cursorLayer.getPixelPosition({ row: line, column: 0 });\n var offset = pos.top;\n if (center)\n offset -= this.$size.scrollerHeight / 2;\n var initialScroll = this.scrollTop;\n this.session.setScrollTop(offset);\n if (animate !== false)\n this.animateScrolling(initialScroll, callback);\n };\n VirtualRenderer.prototype.animateScrolling = function (fromValue, callback) {\n var toValue = this.scrollTop;\n if (!this.$animatedScroll)\n return;\n var _self = this;\n if (fromValue == toValue)\n return;\n if (this.$scrollAnimation) {\n var oldSteps = this.$scrollAnimation.steps;\n if (oldSteps.length) {\n fromValue = oldSteps[0];\n if (fromValue == toValue)\n return;\n }\n }\n var steps = _self.$calcSteps(fromValue, toValue);\n this.$scrollAnimation = { from: fromValue, to: toValue, steps: steps };\n clearInterval(this.$timer);\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n function endAnimation() {\n _self.$timer = clearInterval(_self.$timer);\n _self.$scrollAnimation = null;\n _self.$stopAnimation = false;\n callback && callback();\n }\n this.$timer = setInterval(function () {\n if (_self.$stopAnimation) {\n endAnimation();\n return;\n }\n if (!_self.session)\n return clearInterval(_self.$timer);\n if (steps.length) {\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n }\n else if (toValue != null) {\n _self.session.$scrollTop = -1;\n _self.session.setScrollTop(toValue);\n toValue = null;\n }\n else {\n endAnimation();\n }\n }, 10);\n };\n VirtualRenderer.prototype.scrollToY = function (scrollTop) {\n if (this.scrollTop !== scrollTop) {\n this.$loop.schedule(this.CHANGE_SCROLL);\n this.scrollTop = scrollTop;\n }\n };\n VirtualRenderer.prototype.scrollToX = function (scrollLeft) {\n if (this.scrollLeft !== scrollLeft)\n this.scrollLeft = scrollLeft;\n this.$loop.schedule(this.CHANGE_H_SCROLL);\n };\n VirtualRenderer.prototype.scrollTo = function (x, y) {\n this.session.setScrollTop(y);\n this.session.setScrollLeft(x);\n };\n VirtualRenderer.prototype.scrollBy = function (deltaX, deltaY) {\n deltaY && this.session.setScrollTop(this.session.getScrollTop() + deltaY);\n deltaX && this.session.setScrollLeft(this.session.getScrollLeft() + deltaX);\n };\n VirtualRenderer.prototype.isScrollableBy = function (deltaX, deltaY) {\n if (deltaY < 0 && this.session.getScrollTop() >= 1 - this.scrollMargin.top)\n return true;\n if (deltaY > 0 && this.session.getScrollTop() + this.$size.scrollerHeight\n - this.layerConfig.maxHeight < -1 + this.scrollMargin.bottom)\n return true;\n if (deltaX < 0 && this.session.getScrollLeft() >= 1 - this.scrollMargin.left)\n return true;\n if (deltaX > 0 && this.session.getScrollLeft() + this.$size.scrollerWidth\n - this.layerConfig.width < -1 + this.scrollMargin.right)\n return true;\n };\n VirtualRenderer.prototype.pixelToScreenCoordinates = function (x, y) {\n var canvasPos;\n if (this.$hasCssTransforms) {\n canvasPos = { top: 0, left: 0 };\n var p = this.$fontMetrics.transformCoordinates([x, y]);\n x = p[1] - this.gutterWidth - this.margin.left;\n y = p[0];\n }\n else {\n canvasPos = this.scroller.getBoundingClientRect();\n }\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n var offset = offsetX / this.characterWidth;\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n var col = this.$blockCursor ? Math.floor(offset) : Math.round(offset);\n return { row: row, column: col, side: offset - col > 0 ? 1 : -1, offsetX: offsetX };\n };\n VirtualRenderer.prototype.screenToTextCoordinates = function (x, y) {\n var canvasPos;\n if (this.$hasCssTransforms) {\n canvasPos = { top: 0, left: 0 };\n var p = this.$fontMetrics.transformCoordinates([x, y]);\n x = p[1] - this.gutterWidth - this.margin.left;\n y = p[0];\n }\n else {\n canvasPos = this.scroller.getBoundingClientRect();\n }\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n var offset = offsetX / this.characterWidth;\n var col = this.$blockCursor ? Math.floor(offset) : Math.round(offset);\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n return this.session.screenToDocumentPosition(row, Math.max(col, 0), offsetX);\n };\n VirtualRenderer.prototype.textToScreenCoordinates = function (row, column) {\n var canvasPos = this.scroller.getBoundingClientRect();\n var pos = this.session.documentToScreenPosition(row, column);\n var x = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : Math.round(pos.column * this.characterWidth));\n var y = pos.row * this.lineHeight;\n return {\n pageX: canvasPos.left + x - this.scrollLeft,\n pageY: canvasPos.top + y - this.scrollTop\n };\n };\n VirtualRenderer.prototype.visualizeFocus = function () {\n dom.addCssClass(this.container, \"ace_focus\");\n };\n VirtualRenderer.prototype.visualizeBlur = function () {\n dom.removeCssClass(this.container, \"ace_focus\");\n };\n VirtualRenderer.prototype.showComposition = function (composition) {\n this.$composition = composition;\n if (!composition.cssText) {\n composition.cssText = this.textarea.style.cssText;\n }\n if (composition.useTextareaForIME == undefined)\n composition.useTextareaForIME = this.$useTextareaForIME;\n if (this.$useTextareaForIME) {\n dom.addCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = \"\";\n this.$moveTextAreaToCursor();\n this.$cursorLayer.element.style.display = \"none\";\n }\n else {\n composition.markerId = this.session.addMarker(composition.markerRange, \"ace_composition_marker\", \"text\");\n }\n };\n VirtualRenderer.prototype.setCompositionText = function (text) {\n var cursor = this.session.selection.cursor;\n this.addToken(text, \"composition_placeholder\", cursor.row, cursor.column);\n this.$moveTextAreaToCursor();\n };\n VirtualRenderer.prototype.hideComposition = function () {\n if (!this.$composition)\n return;\n if (this.$composition.markerId)\n this.session.removeMarker(this.$composition.markerId);\n dom.removeCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = this.$composition.cssText;\n var cursor = this.session.selection.cursor;\n this.removeExtraToken(cursor.row, cursor.column);\n this.$composition = null;\n this.$cursorLayer.element.style.display = \"\";\n };\n VirtualRenderer.prototype.setGhostText = function (text, position) {\n var cursor = this.session.selection.cursor;\n var insertPosition = position || { row: cursor.row, column: cursor.column };\n this.removeGhostText();\n var textLines = text.split(\"\\n\");\n this.addToken(textLines[0], \"ghost_text\", insertPosition.row, insertPosition.column);\n this.$ghostText = {\n text: text,\n position: {\n row: insertPosition.row,\n column: insertPosition.column\n }\n };\n if (textLines.length > 1) {\n this.$ghostTextWidget = {\n text: textLines.slice(1).join(\"\\n\"),\n row: insertPosition.row,\n column: insertPosition.column,\n className: \"ace_ghost_text\"\n };\n this.session.widgetManager.addLineWidget(this.$ghostTextWidget);\n var pixelPosition = this.$cursorLayer.getPixelPosition(insertPosition, true);\n var el = this.container;\n var height = el.getBoundingClientRect().height;\n var ghostTextHeight = textLines.length * this.lineHeight;\n var fitsY = ghostTextHeight < height - pixelPosition.top;\n if (fitsY)\n return;\n if (ghostTextHeight < height) {\n this.scrollBy(0, (textLines.length - 1) * this.lineHeight);\n }\n else {\n this.scrollBy(0, pixelPosition.top);\n }\n }\n };\n VirtualRenderer.prototype.removeGhostText = function () {\n if (!this.$ghostText)\n return;\n var position = this.$ghostText.position;\n this.removeExtraToken(position.row, position.column);\n if (this.$ghostTextWidget) {\n this.session.widgetManager.removeLineWidget(this.$ghostTextWidget);\n this.$ghostTextWidget = null;\n }\n this.$ghostText = null;\n };\n VirtualRenderer.prototype.addToken = function (text, type, row, column) {\n var session = this.session;\n session.bgTokenizer.lines[row] = null;\n var newToken = { type: type, value: text };\n var tokens = session.getTokens(row);\n if (column == null || !tokens.length) {\n tokens.push(newToken);\n }\n else {\n var l = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n l += token.value.length;\n if (column <= l) {\n var diff = token.value.length - (l - column);\n var before = token.value.slice(0, diff);\n var after = token.value.slice(diff);\n tokens.splice(i, 1, { type: token.type, value: before }, newToken, { type: token.type, value: after });\n break;\n }\n }\n }\n this.updateLines(row, row);\n };\n VirtualRenderer.prototype.removeExtraToken = function (row, column) {\n this.session.bgTokenizer.lines[row] = null;\n this.updateLines(row, row);\n };\n VirtualRenderer.prototype.setTheme = function (theme, cb) {\n var _self = this;\n this.$themeId = theme;\n _self._dispatchEvent('themeChange', { theme: theme });\n if (!theme || typeof theme == \"string\") {\n var moduleName = theme || this.$options.theme.initialValue;\n config.loadModule([\"theme\", moduleName], afterLoad);\n }\n else {\n afterLoad(theme);\n }\n function afterLoad(module) {\n if (_self.$themeId != theme)\n return cb && cb();\n if (!module || !module.cssClass)\n throw new Error(\"couldn't load module \" + theme + \" or it didn't call define\");\n if (module.$id)\n _self.$themeId = module.$id;\n dom.importCssString(module.cssText, module.cssClass, _self.container);\n if (_self.theme)\n dom.removeCssClass(_self.container, _self.theme.cssClass);\n var padding = \"padding\" in module ? module.padding\n : \"padding\" in (_self.theme || {}) ? 4 : _self.$padding;\n if (_self.$padding && padding != _self.$padding)\n _self.setPadding(padding);\n _self.$theme = module.cssClass;\n _self.theme = module;\n dom.addCssClass(_self.container, module.cssClass);\n dom.setCssClass(_self.container, \"ace_dark\", module.isDark);\n if (_self.$size) {\n _self.$size.width = 0;\n _self.$updateSizeAsync();\n }\n _self._dispatchEvent('themeLoaded', { theme: module });\n cb && cb();\n }\n };\n VirtualRenderer.prototype.getTheme = function () {\n return this.$themeId;\n };\n VirtualRenderer.prototype.setStyle = function (style, include) {\n dom.setCssClass(this.container, style, include !== false);\n };\n VirtualRenderer.prototype.unsetStyle = function (style) {\n dom.removeCssClass(this.container, style);\n };\n VirtualRenderer.prototype.setCursorStyle = function (style) {\n dom.setStyle(this.scroller.style, \"cursor\", style);\n };\n VirtualRenderer.prototype.setMouseCursor = function (cursorStyle) {\n dom.setStyle(this.scroller.style, \"cursor\", cursorStyle);\n };\n VirtualRenderer.prototype.attachToShadowRoot = function () {\n dom.importCssString(editorCss, \"ace_editor.css\", this.container);\n };\n VirtualRenderer.prototype.destroy = function () {\n this.freeze();\n this.$fontMetrics.destroy();\n this.$cursorLayer.destroy();\n this.removeAllListeners();\n this.container.textContent = \"\";\n this.setOption(\"useResizeObserver\", false);\n };\n VirtualRenderer.prototype.$updateCustomScrollbar = function (val) {\n var _self = this;\n this.$horizScroll = this.$vScroll = null;\n this.scrollBarV.element.remove();\n this.scrollBarH.element.remove();\n if (this.$scrollDecorator) {\n delete this.$scrollDecorator;\n }\n if (val === true) {\n this.scrollBarV = new VScrollBarCustom(this.container, this);\n this.scrollBarH = new HScrollBarCustom(this.container, this);\n this.scrollBarV.setHeight(this.$size.scrollerHeight);\n this.scrollBarH.setWidth(this.$size.scrollerWidth);\n this.scrollBarV.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n this.$scrollDecorator = new Decorator(this.scrollBarV, this);\n this.$scrollDecorator.$updateDecorators();\n }\n else {\n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n }\n };\n VirtualRenderer.prototype.$addResizeObserver = function () {\n if (!window.ResizeObserver || this.$resizeObserver)\n return;\n var self = this;\n this.$resizeTimer = lang.delayedCall(function () {\n if (!self.destroyed)\n self.onResize();\n }, 50);\n this.$resizeObserver = new window.ResizeObserver(function (e) {\n var w = e[0].contentRect.width;\n var h = e[0].contentRect.height;\n if (Math.abs(self.$size.width - w) > 1\n || Math.abs(self.$size.height - h) > 1) {\n self.$resizeTimer.delay();\n }\n else {\n self.$resizeTimer.cancel();\n }\n });\n this.$resizeObserver.observe(this.container);\n };\n return VirtualRenderer;\n}());\nVirtualRenderer.prototype.CHANGE_CURSOR = 1;\nVirtualRenderer.prototype.CHANGE_MARKER = 2;\nVirtualRenderer.prototype.CHANGE_GUTTER = 4;\nVirtualRenderer.prototype.CHANGE_SCROLL = 8;\nVirtualRenderer.prototype.CHANGE_LINES = 16;\nVirtualRenderer.prototype.CHANGE_TEXT = 32;\nVirtualRenderer.prototype.CHANGE_SIZE = 64;\nVirtualRenderer.prototype.CHANGE_MARKER_BACK = 128;\nVirtualRenderer.prototype.CHANGE_MARKER_FRONT = 256;\nVirtualRenderer.prototype.CHANGE_FULL = 512;\nVirtualRenderer.prototype.CHANGE_H_SCROLL = 1024;\nVirtualRenderer.prototype.$changes = 0;\nVirtualRenderer.prototype.$padding = null;\nVirtualRenderer.prototype.$frozen = false;\nVirtualRenderer.prototype.STEPS = 8;\noop.implement(VirtualRenderer.prototype, EventEmitter);\nconfig.defineOptions(VirtualRenderer.prototype, \"renderer\", {\n useResizeObserver: {\n set: function (value) {\n if (!value && this.$resizeObserver) {\n this.$resizeObserver.disconnect();\n this.$resizeTimer.cancel();\n this.$resizeTimer = this.$resizeObserver = null;\n }\n else if (value && !this.$resizeObserver) {\n this.$addResizeObserver();\n }\n }\n },\n animatedScroll: { initialValue: false },\n showInvisibles: {\n set: function (value) {\n if (this.$textLayer.setShowInvisibles(value))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: false\n },\n showPrintMargin: {\n set: function () { this.$updatePrintMargin(); },\n initialValue: true\n },\n printMarginColumn: {\n set: function () { this.$updatePrintMargin(); },\n initialValue: 80\n },\n printMargin: {\n set: function (val) {\n if (typeof val == \"number\")\n this.$printMarginColumn = val;\n this.$showPrintMargin = !!val;\n this.$updatePrintMargin();\n },\n get: function () {\n return this.$showPrintMargin && this.$printMarginColumn;\n }\n },\n showGutter: {\n set: function (show) {\n this.$gutter.style.display = show ? \"block\" : \"none\";\n this.$loop.schedule(this.CHANGE_FULL);\n this.onGutterResize();\n },\n initialValue: true\n },\n useSvgGutterIcons: {\n set: function (value) {\n this.$gutterLayer.$useSvgGutterIcons = value;\n },\n initialValue: false\n },\n showFoldedAnnotations: {\n set: function (value) {\n this.$gutterLayer.$showFoldedAnnotations = value;\n },\n initialValue: false\n },\n fadeFoldWidgets: {\n set: function (show) {\n dom.setCssClass(this.$gutter, \"ace_fade-fold-widgets\", show);\n },\n initialValue: false\n },\n showFoldWidgets: {\n set: function (show) {\n this.$gutterLayer.setShowFoldWidgets(show);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n displayIndentGuides: {\n set: function (show) {\n if (this.$textLayer.setDisplayIndentGuides(show))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: true\n },\n highlightIndentGuides: {\n set: function (show) {\n if (this.$textLayer.setHighlightIndentGuides(show) == true) {\n this.$textLayer.$highlightIndentGuide();\n }\n else {\n this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells);\n }\n },\n initialValue: true\n },\n highlightGutterLine: {\n set: function (shouldHighlight) {\n this.$gutterLayer.setHighlightGutterLine(shouldHighlight);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n hScrollBarAlwaysVisible: {\n set: function (val) {\n if (!this.$hScrollBarAlwaysVisible || !this.$horizScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n vScrollBarAlwaysVisible: {\n set: function (val) {\n if (!this.$vScrollBarAlwaysVisible || !this.$vScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n fontSize: {\n set: function (size) {\n if (typeof size == \"number\")\n size = size + \"px\";\n this.container.style.fontSize = size;\n this.updateFontSize();\n },\n initialValue: 12\n },\n fontFamily: {\n set: function (name) {\n this.container.style.fontFamily = name;\n this.updateFontSize();\n }\n },\n maxLines: {\n set: function (val) {\n this.updateFull();\n }\n },\n minLines: {\n set: function (val) {\n if (!(this.$minLines < 0x1ffffffffffff))\n this.$minLines = 0;\n this.updateFull();\n }\n },\n maxPixelHeight: {\n set: function (val) {\n this.updateFull();\n },\n initialValue: 0\n },\n scrollPastEnd: {\n set: function (val) {\n val = +val || 0;\n if (this.$scrollPastEnd == val)\n return;\n this.$scrollPastEnd = val;\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: 0,\n handlesSet: true\n },\n fixedWidthGutter: {\n set: function (val) {\n this.$gutterLayer.$fixedWidth = !!val;\n this.$loop.schedule(this.CHANGE_GUTTER);\n }\n },\n customScrollbar: {\n set: function (val) {\n this.$updateCustomScrollbar(val);\n },\n initialValue: false\n },\n theme: {\n set: function (val) { this.setTheme(val); },\n get: function () { return this.$themeId || this.theme; },\n initialValue: \"./theme/textmate\",\n handlesSet: true\n },\n hasCssTransforms: {},\n useTextareaForIME: {\n initialValue: !useragent.isMobile && !useragent.isIE\n }\n});\nexports.VirtualRenderer = VirtualRenderer;\n\n});\n\nace.define(\"ace/worker/worker_client\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/event_emitter\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar net = require(\"../lib/net\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar config = require(\"../config\");\n\nfunction $workerBlob(workerUrl) {\n var script = \"importScripts('\" + net.qualifyURL(workerUrl) + \"');\";\n try {\n return new Blob([script], {\"type\": \"application/javascript\"});\n } catch (e) { // Backwards-compatibility\n var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;\n var blobBuilder = new BlobBuilder();\n blobBuilder.append(script);\n return blobBuilder.getBlob(\"application/javascript\");\n }\n}\n\nfunction createWorker(workerUrl) {\n if (typeof Worker == \"undefined\")\n return { postMessage: function() {}, terminate: function() {} };\n if (config.get(\"loadWorkerFromBlob\")) {\n var blob = $workerBlob(workerUrl);\n var URL = window.URL || window.webkitURL;\n var blobURL = URL.createObjectURL(blob);\n return new Worker(blobURL);\n }\n return new Worker(workerUrl);\n}\n\nvar WorkerClient = function(worker) {\n if (!worker.postMessage)\n worker = this.$createWorkerFromOldConfig.apply(this, arguments);\n\n this.$worker = worker;\n this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n this.changeListener = this.changeListener.bind(this);\n this.onMessage = this.onMessage.bind(this);\n\n this.callbackId = 1;\n this.callbacks = {};\n\n this.$worker.onmessage = this.onMessage;\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n\n this.$createWorkerFromOldConfig = function(topLevelNamespaces, mod, classname, workerUrl, importScripts) {\n if (require.nameToUrl && !require.toUrl)\n require.toUrl = require.nameToUrl;\n\n if (config.get(\"packaged\") || !require.toUrl) {\n workerUrl = workerUrl || config.moduleUrl(mod, \"worker\");\n } else {\n var normalizePath = this.$normalizePath;\n workerUrl = workerUrl || normalizePath(require.toUrl(\"ace/worker/worker.js\", null, \"_\"));\n\n var tlns = {};\n topLevelNamespaces.forEach(function(ns) {\n tlns[ns] = normalizePath(require.toUrl(ns, null, \"_\").replace(/(\\.js)?(\\?.*)?$/, \"\"));\n });\n }\n\n this.$worker = createWorker(workerUrl);\n if (importScripts) {\n this.send(\"importScripts\", importScripts);\n }\n this.$worker.postMessage({\n init : true,\n tlns : tlns,\n module : mod,\n classname : classname\n });\n return this.$worker;\n };\n\n this.onMessage = function(e) {\n var msg = e.data;\n switch (msg.type) {\n case \"event\":\n this._signal(msg.name, {data: msg.data});\n break;\n case \"call\":\n var callback = this.callbacks[msg.id];\n if (callback) {\n callback(msg.data);\n delete this.callbacks[msg.id];\n }\n break;\n case \"error\":\n this.reportError(msg.data);\n break;\n case \"log\":\n window.console && console.log && console.log.apply(console, msg.data);\n break;\n }\n };\n \n this.reportError = function(err) {\n window.console && console.error && console.error(err);\n };\n\n this.$normalizePath = function(path) {\n return net.qualifyURL(path);\n };\n\n this.terminate = function() {\n this._signal(\"terminate\", {});\n this.deltaQueue = null;\n this.$worker.terminate();\n this.$worker.onerror = function(e) {\n e.preventDefault();\n };\n this.$worker = null;\n if (this.$doc)\n this.$doc.off(\"change\", this.changeListener);\n this.$doc = null;\n };\n\n this.send = function(cmd, args) {\n this.$worker.postMessage({command: cmd, args: args});\n };\n\n this.call = function(cmd, args, callback) {\n if (callback) {\n var id = this.callbackId++;\n this.callbacks[id] = callback;\n args.push(id);\n }\n this.send(cmd, args);\n };\n\n this.emit = function(event, data) {\n try {\n if (data.data && data.data.err)\n data.data.err = {message: data.data.err.message, stack: data.data.err.stack, code: data.data.err.code};\n this.$worker && this.$worker.postMessage({event: event, data: {data: data.data}});\n }\n catch(ex) {\n console.error(ex.stack);\n }\n };\n\n this.attachToDocument = function(doc) {\n if (this.$doc)\n this.terminate();\n\n this.$doc = doc;\n this.call(\"setValue\", [doc.getValue()]);\n doc.on(\"change\", this.changeListener, true);\n };\n\n this.changeListener = function(delta) {\n if (!this.deltaQueue) {\n this.deltaQueue = [];\n setTimeout(this.$sendDeltaQueue, 0);\n }\n if (delta.action == \"insert\")\n this.deltaQueue.push(delta.start, delta.lines);\n else\n this.deltaQueue.push(delta.start, delta.end);\n };\n\n this.$sendDeltaQueue = function() {\n var q = this.deltaQueue;\n if (!q) return;\n this.deltaQueue = null;\n if (q.length > 50 && q.length > this.$doc.getLength() >> 1) {\n this.call(\"setValue\", [this.$doc.getValue()]);\n } else\n this.emit(\"change\", {data: q});\n };\n\n}).call(WorkerClient.prototype);\n\n\nvar UIWorkerClient = function(topLevelNamespaces, mod, classname) {\n var main = null;\n var emitSync = false;\n var sender = Object.create(EventEmitter);\n\n var messageBuffer = [];\n var workerClient = new WorkerClient({\n messageBuffer: messageBuffer,\n terminate: function() {},\n postMessage: function(e) {\n messageBuffer.push(e);\n if (!main) return;\n if (emitSync)\n setTimeout(processNext);\n else\n processNext();\n }\n });\n\n workerClient.setEmitSync = function(val) { emitSync = val; };\n\n var processNext = function() {\n var msg = messageBuffer.shift();\n if (msg.command)\n main[msg.command].apply(main, msg.args);\n else if (msg.event)\n sender._signal(msg.event, msg.data);\n };\n\n sender.postMessage = function(msg) {\n workerClient.onMessage({data: msg});\n };\n sender.callback = function(data, callbackId) {\n this.postMessage({type: \"call\", id: callbackId, data: data});\n };\n sender.emit = function(name, data) {\n this.postMessage({type: \"event\", name: name, data: data});\n };\n\n config.loadModule([\"worker\", mod], function(Main) {\n main = new Main[classname](sender);\n while (messageBuffer.length)\n processNext();\n });\n\n return workerClient;\n};\n\nexports.UIWorkerClient = UIWorkerClient;\nexports.WorkerClient = WorkerClient;\nexports.createWorker = createWorker;\n\n\n});\n\nace.define(\"ace/placeholder\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/oop\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar oop = require(\"./lib/oop\");\nvar PlaceHolder = /** @class */ (function () {\n function PlaceHolder(session, length, pos, others, mainClass, othersClass) {\n var _self = this;\n this.length = length;\n this.session = session;\n this.doc = session.getDocument();\n this.mainClass = mainClass;\n this.othersClass = othersClass;\n this.$onUpdate = this.onUpdate.bind(this);\n this.doc.on(\"change\", this.$onUpdate, true);\n this.$others = others;\n this.$onCursorChange = function () {\n setTimeout(function () {\n _self.onCursorChange();\n });\n };\n this.$pos = pos;\n var undoStack = session.getUndoManager().$undoStack || session.getUndoManager().$undostack || { length: -1 };\n this.$undoStackDepth = undoStack.length;\n this.setup();\n session.selection.on(\"changeCursor\", this.$onCursorChange);\n }\n PlaceHolder.prototype.setup = function () {\n var _self = this;\n var doc = this.doc;\n var session = this.session;\n this.selectionBefore = session.selection.toJSON();\n if (session.selection.inMultiSelectMode)\n session.selection.toSingleRange();\n this.pos = doc.createAnchor(this.$pos.row, this.$pos.column);\n var pos = this.pos;\n pos.$insertRight = true;\n pos.detach();\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + this.length), this.mainClass, null, false);\n this.others = [];\n this.$others.forEach(function (other) {\n var anchor = doc.createAnchor(other.row, other.column);\n anchor.$insertRight = true;\n anchor.detach();\n _self.others.push(anchor);\n });\n session.setUndoSelect(false);\n };\n PlaceHolder.prototype.showOtherMarkers = function () {\n if (this.othersActive)\n return;\n var session = this.session;\n var _self = this;\n this.othersActive = true;\n this.others.forEach(function (anchor) {\n anchor.markerId = session.addMarker(new Range(anchor.row, anchor.column, anchor.row, anchor.column + _self.length), _self.othersClass, null, false);\n });\n };\n PlaceHolder.prototype.hideOtherMarkers = function () {\n if (!this.othersActive)\n return;\n this.othersActive = false;\n for (var i = 0; i < this.others.length; i++) {\n this.session.removeMarker(this.others[i].markerId);\n }\n };\n PlaceHolder.prototype.onUpdate = function (delta) {\n if (this.$updating)\n return this.updateAnchors(delta);\n var range = delta;\n if (range.start.row !== range.end.row)\n return;\n if (range.start.row !== this.pos.row)\n return;\n this.$updating = true;\n var lengthDiff = delta.action === \"insert\" ? range.end.column - range.start.column : range.start.column - range.end.column;\n var inMainRange = range.start.column >= this.pos.column && range.start.column <= this.pos.column + this.length + 1;\n var distanceFromStart = range.start.column - this.pos.column;\n this.updateAnchors(delta);\n if (inMainRange)\n this.length += lengthDiff;\n if (inMainRange && !this.session.$fromUndo) {\n if (delta.action === 'insert') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = { row: otherPos.row, column: otherPos.column + distanceFromStart };\n this.doc.insertMergedLines(newPos, delta.lines);\n }\n }\n else if (delta.action === 'remove') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = { row: otherPos.row, column: otherPos.column + distanceFromStart };\n this.doc.remove(new Range(newPos.row, newPos.column, newPos.row, newPos.column - lengthDiff));\n }\n }\n }\n this.$updating = false;\n this.updateMarkers();\n };\n PlaceHolder.prototype.updateAnchors = function (delta) {\n this.pos.onChange(delta);\n for (var i = this.others.length; i--;)\n this.others[i].onChange(delta);\n this.updateMarkers();\n };\n PlaceHolder.prototype.updateMarkers = function () {\n if (this.$updating)\n return;\n var _self = this;\n var session = this.session;\n var updateMarker = function (pos, className) {\n session.removeMarker(pos.markerId);\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + _self.length), className, null, false);\n };\n updateMarker(this.pos, this.mainClass);\n for (var i = this.others.length; i--;)\n updateMarker(this.others[i], this.othersClass);\n };\n PlaceHolder.prototype.onCursorChange = function (event) {\n if (this.$updating || !this.session)\n return;\n var pos = this.session.selection.getCursor();\n if (pos.row === this.pos.row && pos.column >= this.pos.column && pos.column <= this.pos.column + this.length) {\n this.showOtherMarkers();\n this._emit(\"cursorEnter\", event);\n }\n else {\n this.hideOtherMarkers();\n this._emit(\"cursorLeave\", event);\n }\n };\n PlaceHolder.prototype.detach = function () {\n this.session.removeMarker(this.pos && this.pos.markerId);\n this.hideOtherMarkers();\n this.doc.off(\"change\", this.$onUpdate);\n this.session.selection.off(\"changeCursor\", this.$onCursorChange);\n this.session.setUndoSelect(true);\n this.session = null;\n };\n PlaceHolder.prototype.cancel = function () {\n if (this.$undoStackDepth === -1)\n return;\n var undoManager = this.session.getUndoManager();\n var undosRequired = (undoManager.$undoStack || undoManager.$undostack).length - this.$undoStackDepth;\n for (var i = 0; i < undosRequired; i++) {\n undoManager.undo(this.session, true);\n }\n if (this.selectionBefore)\n this.session.selection.fromJSON(this.selectionBefore);\n };\n return PlaceHolder;\n}());\noop.implement(PlaceHolder.prototype, EventEmitter);\nexports.PlaceHolder = PlaceHolder;\n\n});\n\nace.define(\"ace/mouse/multi_select_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){var event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nfunction onMouseDown(e) {\n var ev = e.domEvent;\n var alt = ev.altKey;\n var shift = ev.shiftKey;\n var ctrl = ev.ctrlKey;\n var accel = e.getAccelKey();\n var button = e.getButton();\n if (ctrl && useragent.isMac)\n button = ev.button;\n if (e.editor.inMultiSelectMode && button == 2) {\n e.editor.textInput.onContextMenu(e.domEvent);\n return;\n }\n if (!ctrl && !alt && !accel) {\n if (button === 0 && e.editor.inMultiSelectMode)\n e.editor.exitMultiSelectMode();\n return;\n }\n if (button !== 0)\n return;\n var editor = e.editor;\n var selection = editor.selection;\n var isMultiSelect = editor.inMultiSelectMode;\n var pos = e.getDocumentPosition();\n var cursor = selection.getCursor();\n var inSelection = e.inSelection() || (selection.isEmpty() && isSamePoint(pos, cursor));\n var mouseX = e.x, mouseY = e.y;\n var onMouseSelection = function (e) {\n mouseX = e.clientX;\n mouseY = e.clientY;\n };\n var session = editor.session;\n var screenAnchor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var screenCursor = screenAnchor;\n var selectionMode;\n if (editor.$mouseHandler.$enableJumpToDef) {\n if (ctrl && alt || accel && alt)\n selectionMode = shift ? \"block\" : \"add\";\n else if (alt && editor.$blockSelectEnabled)\n selectionMode = \"block\";\n }\n else {\n if (accel && !alt) {\n selectionMode = \"add\";\n if (!isMultiSelect && shift)\n return;\n }\n else if (alt && editor.$blockSelectEnabled) {\n selectionMode = \"block\";\n }\n }\n if (selectionMode && useragent.isMac && ev.ctrlKey) {\n editor.$mouseHandler.cancelContextMenu();\n }\n if (selectionMode == \"add\") {\n if (!isMultiSelect && inSelection)\n return; // dragging\n if (!isMultiSelect) {\n var range = selection.toOrientedRange();\n editor.addSelectionMarker(range);\n }\n var oldRange = selection.rangeList.rangeAtPoint(pos);\n editor.inVirtualSelectionMode = true;\n if (shift) {\n oldRange = null;\n range = selection.ranges[0] || range;\n editor.removeSelectionMarker(range);\n }\n editor.once(\"mouseup\", function () {\n var tmpSel = selection.toOrientedRange();\n if (oldRange && tmpSel.isEmpty() && isSamePoint(oldRange.cursor, tmpSel.cursor))\n selection.substractPoint(tmpSel.cursor);\n else {\n if (shift) {\n selection.substractPoint(range.cursor);\n }\n else if (range) {\n editor.removeSelectionMarker(range);\n selection.addRange(range);\n }\n selection.addRange(tmpSel);\n }\n editor.inVirtualSelectionMode = false;\n });\n }\n else if (selectionMode == \"block\") {\n e.stop();\n editor.inVirtualSelectionMode = true;\n var initialRange;\n var rectSel = [];\n var blockSelect = function () {\n var newCursor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var cursor = session.screenToDocumentPosition(newCursor.row, newCursor.column, newCursor.offsetX);\n if (isSamePoint(screenCursor, newCursor) && isSamePoint(cursor, selection.lead))\n return;\n screenCursor = newCursor;\n editor.selection.moveToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n editor.removeSelectionMarkers(rectSel);\n rectSel = selection.rectangularRangeBlock(screenCursor, screenAnchor);\n if (editor.$mouseHandler.$clickSelection && rectSel.length == 1 && rectSel[0].isEmpty())\n rectSel[0] = editor.$mouseHandler.$clickSelection.clone();\n rectSel.forEach(editor.addSelectionMarker, editor);\n editor.updateSelectionMarkers();\n };\n if (isMultiSelect && !accel) {\n selection.toSingleRange();\n }\n else if (!isMultiSelect && accel) {\n initialRange = selection.toOrientedRange();\n editor.addSelectionMarker(initialRange);\n }\n if (shift)\n screenAnchor = session.documentToScreenPosition(selection.lead);\n else\n selection.moveToPosition(pos);\n screenCursor = { row: -1, column: -1 };\n var onMouseSelectionEnd = function (e) {\n blockSelect();\n clearInterval(timerId);\n editor.removeSelectionMarkers(rectSel);\n if (!rectSel.length)\n rectSel = [selection.toOrientedRange()];\n if (initialRange) {\n editor.removeSelectionMarker(initialRange);\n selection.toSingleRange(initialRange);\n }\n for (var i = 0; i < rectSel.length; i++)\n selection.addRange(rectSel[i]);\n editor.inVirtualSelectionMode = false;\n editor.$mouseHandler.$clickSelection = null;\n };\n var onSelectionInterval = blockSelect;\n event.capture(editor.container, onMouseSelection, onMouseSelectionEnd);\n var timerId = setInterval(function () { onSelectionInterval(); }, 20);\n return e.preventDefault();\n }\n}\nexports.onMouseDown = onMouseDown;\n\n});\n\nace.define(\"ace/commands/multi_select_commands\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\"], function(require, exports, module){// commands to enter multiselect mode\nexports.defaultCommands = [{\n name: \"addCursorAbove\",\n description: \"Add cursor above\",\n exec: function (editor) { editor.selectMoreLines(-1); },\n bindKey: { win: \"Ctrl-Alt-Up\", mac: \"Ctrl-Alt-Up\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorBelow\",\n description: \"Add cursor below\",\n exec: function (editor) { editor.selectMoreLines(1); },\n bindKey: { win: \"Ctrl-Alt-Down\", mac: \"Ctrl-Alt-Down\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorAboveSkipCurrent\",\n description: \"Add cursor above (skip current)\",\n exec: function (editor) { editor.selectMoreLines(-1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Up\", mac: \"Ctrl-Alt-Shift-Up\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorBelowSkipCurrent\",\n description: \"Add cursor below (skip current)\",\n exec: function (editor) { editor.selectMoreLines(1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Down\", mac: \"Ctrl-Alt-Shift-Down\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectMoreBefore\",\n description: \"Select more before\",\n exec: function (editor) { editor.selectMore(-1); },\n bindKey: { win: \"Ctrl-Alt-Left\", mac: \"Ctrl-Alt-Left\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectMoreAfter\",\n description: \"Select more after\",\n exec: function (editor) { editor.selectMore(1); },\n bindKey: { win: \"Ctrl-Alt-Right\", mac: \"Ctrl-Alt-Right\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectNextBefore\",\n description: \"Select next before\",\n exec: function (editor) { editor.selectMore(-1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Left\", mac: \"Ctrl-Alt-Shift-Left\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectNextAfter\",\n description: \"Select next after\",\n exec: function (editor) { editor.selectMore(1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Right\", mac: \"Ctrl-Alt-Shift-Right\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"toggleSplitSelectionIntoLines\",\n description: \"Split selection into lines\",\n exec: function (editor) {\n if (editor.multiSelect.rangeCount > 1)\n editor.multiSelect.joinSelections();\n else\n editor.multiSelect.splitIntoLines();\n },\n bindKey: { win: \"Ctrl-Alt-L\", mac: \"Ctrl-Alt-L\" },\n readOnly: true\n }, {\n name: \"splitSelectionIntoLines\",\n description: \"Split into lines\",\n exec: function (editor) { editor.multiSelect.splitIntoLines(); },\n readOnly: true\n }, {\n name: \"alignCursors\",\n description: \"Align cursors\",\n exec: function (editor) { editor.alignCursors(); },\n bindKey: { win: \"Ctrl-Alt-A\", mac: \"Ctrl-Alt-A\" },\n scrollIntoView: \"cursor\"\n }, {\n name: \"findAll\",\n description: \"Find all\",\n exec: function (editor) { editor.findAll(); },\n bindKey: { win: \"Ctrl-Alt-K\", mac: \"Ctrl-Alt-G\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }];\nexports.multiSelectCommands = [{\n name: \"singleSelection\",\n description: \"Single selection\",\n bindKey: \"esc\",\n exec: function (editor) { editor.exitMultiSelectMode(); },\n scrollIntoView: \"cursor\",\n readOnly: true,\n isAvailable: function (editor) { return editor && editor.inMultiSelectMode; }\n }];\nvar HashHandler = require(\"../keyboard/hash_handler\").HashHandler;\nexports.keyboardHandler = new HashHandler(exports.multiSelectCommands);\n\n});\n\nace.define(\"ace/multi_select\",[\"require\",\"exports\",\"module\",\"ace/range_list\",\"ace/range\",\"ace/selection\",\"ace/mouse/multi_select_handler\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/commands/multi_select_commands\",\"ace/search\",\"ace/edit_session\",\"ace/editor\",\"ace/config\"], function(require, exports, module){var RangeList = require(\"./range_list\").RangeList;\nvar Range = require(\"./range\").Range;\nvar Selection = require(\"./selection\").Selection;\nvar onMouseDown = require(\"./mouse/multi_select_handler\").onMouseDown;\nvar event = require(\"./lib/event\");\nvar lang = require(\"./lib/lang\");\nvar commands = require(\"./commands/multi_select_commands\");\nexports.commands = commands.defaultCommands.concat(commands.multiSelectCommands);\nvar Search = require(\"./search\").Search;\nvar search = new Search();\nfunction find(session, needle, dir) {\n search.$options.wrap = true;\n search.$options.needle = needle;\n search.$options.backwards = dir == -1;\n return search.find(session);\n}\nvar EditSession = require(\"./edit_session\").EditSession;\n(function () {\n this.getSelectionMarkers = function () {\n return this.$selectionMarkers;\n };\n}).call(EditSession.prototype);\n(function () {\n this.ranges = null;\n this.rangeList = null;\n this.addRange = function (range, $blockChangeEvents) {\n if (!range)\n return;\n if (!this.inMultiSelectMode && this.rangeCount === 0) {\n var oldRange = this.toOrientedRange();\n this.rangeList.add(oldRange);\n this.rangeList.add(range);\n if (this.rangeList.ranges.length != 2) {\n this.rangeList.removeAll();\n return $blockChangeEvents || this.fromOrientedRange(range);\n }\n this.rangeList.removeAll();\n this.rangeList.add(oldRange);\n this.$onAddRange(oldRange);\n }\n if (!range.cursor)\n range.cursor = range.end;\n var removed = this.rangeList.add(range);\n this.$onAddRange(range);\n if (removed.length)\n this.$onRemoveRange(removed);\n if (this.rangeCount > 1 && !this.inMultiSelectMode) {\n this._signal(\"multiSelect\");\n this.inMultiSelectMode = true;\n this.session.$undoSelect = false;\n this.rangeList.attach(this.session);\n }\n return $blockChangeEvents || this.fromOrientedRange(range);\n };\n this.toSingleRange = function (range) {\n range = range || this.ranges[0];\n var removed = this.rangeList.removeAll();\n if (removed.length)\n this.$onRemoveRange(removed);\n range && this.fromOrientedRange(range);\n };\n this.substractPoint = function (pos) {\n var removed = this.rangeList.substractPoint(pos);\n if (removed) {\n this.$onRemoveRange(removed);\n return removed[0];\n }\n };\n this.mergeOverlappingRanges = function () {\n var removed = this.rangeList.merge();\n if (removed.length)\n this.$onRemoveRange(removed);\n };\n this.$onAddRange = function (range) {\n this.rangeCount = this.rangeList.ranges.length;\n this.ranges.unshift(range);\n this._signal(\"addRange\", { range: range });\n };\n this.$onRemoveRange = function (removed) {\n this.rangeCount = this.rangeList.ranges.length;\n if (this.rangeCount == 1 && this.inMultiSelectMode) {\n var lastRange = this.rangeList.ranges.pop();\n removed.push(lastRange);\n this.rangeCount = 0;\n }\n for (var i = removed.length; i--;) {\n var index = this.ranges.indexOf(removed[i]);\n this.ranges.splice(index, 1);\n }\n this._signal(\"removeRange\", { ranges: removed });\n if (this.rangeCount === 0 && this.inMultiSelectMode) {\n this.inMultiSelectMode = false;\n this._signal(\"singleSelect\");\n this.session.$undoSelect = true;\n this.rangeList.detach(this.session);\n }\n lastRange = lastRange || this.ranges[0];\n if (lastRange && !lastRange.isEqual(this.getRange()))\n this.fromOrientedRange(lastRange);\n };\n this.$initRangeList = function () {\n if (this.rangeList)\n return;\n this.rangeList = new RangeList();\n this.ranges = [];\n this.rangeCount = 0;\n };\n this.getAllRanges = function () {\n return this.rangeCount ? this.rangeList.ranges.concat() : [this.getRange()];\n };\n this.splitIntoLines = function () {\n var ranges = this.ranges.length ? this.ranges : [this.getRange()];\n var newRanges = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n var row = range.start.row;\n var endRow = range.end.row;\n if (row === endRow) {\n newRanges.push(range.clone());\n }\n else {\n newRanges.push(new Range(row, range.start.column, row, this.session.getLine(row).length));\n while (++row < endRow)\n newRanges.push(this.getLineRange(row, true));\n newRanges.push(new Range(endRow, 0, endRow, range.end.column));\n }\n if (i == 0 && !this.isBackwards())\n newRanges = newRanges.reverse();\n }\n this.toSingleRange();\n for (var i = newRanges.length; i--;)\n this.addRange(newRanges[i]);\n };\n this.joinSelections = function () {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n };\n this.toggleBlockSelection = function () {\n if (this.rangeCount > 1) {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n }\n else {\n var cursor = this.session.documentToScreenPosition(this.cursor);\n var anchor = this.session.documentToScreenPosition(this.anchor);\n var rectSel = this.rectangularRangeBlock(cursor, anchor);\n rectSel.forEach(this.addRange, this);\n }\n };\n this.rectangularRangeBlock = function (screenCursor, screenAnchor, includeEmptyLines) {\n var rectSel = [];\n var xBackwards = screenCursor.column < screenAnchor.column;\n if (xBackwards) {\n var startColumn = screenCursor.column;\n var endColumn = screenAnchor.column;\n var startOffsetX = screenCursor.offsetX;\n var endOffsetX = screenAnchor.offsetX;\n }\n else {\n var startColumn = screenAnchor.column;\n var endColumn = screenCursor.column;\n var startOffsetX = screenAnchor.offsetX;\n var endOffsetX = screenCursor.offsetX;\n }\n var yBackwards = screenCursor.row < screenAnchor.row;\n if (yBackwards) {\n var startRow = screenCursor.row;\n var endRow = screenAnchor.row;\n }\n else {\n var startRow = screenAnchor.row;\n var endRow = screenCursor.row;\n }\n if (startColumn < 0)\n startColumn = 0;\n if (startRow < 0)\n startRow = 0;\n if (startRow == endRow)\n includeEmptyLines = true;\n var docEnd;\n for (var row = startRow; row <= endRow; row++) {\n var range = Range.fromPoints(this.session.screenToDocumentPosition(row, startColumn, startOffsetX), this.session.screenToDocumentPosition(row, endColumn, endOffsetX));\n if (range.isEmpty()) {\n if (docEnd && isSamePoint(range.end, docEnd))\n break;\n docEnd = range.end;\n }\n range.cursor = xBackwards ? range.start : range.end;\n rectSel.push(range);\n }\n if (yBackwards)\n rectSel.reverse();\n if (!includeEmptyLines) {\n var end = rectSel.length - 1;\n while (rectSel[end].isEmpty() && end > 0)\n end--;\n if (end > 0) {\n var start = 0;\n while (rectSel[start].isEmpty())\n start++;\n }\n for (var i = end; i >= start; i--) {\n if (rectSel[i].isEmpty())\n rectSel.splice(i, 1);\n }\n }\n return rectSel;\n };\n}).call(Selection.prototype);\nvar Editor = require(\"./editor\").Editor;\n(function () {\n this.updateSelectionMarkers = function () {\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.addSelectionMarker = function (orientedRange) {\n if (!orientedRange.cursor)\n orientedRange.cursor = orientedRange.end;\n var style = this.getSelectionStyle();\n orientedRange.marker = this.session.addMarker(orientedRange, \"ace_selection\", style);\n this.session.$selectionMarkers.push(orientedRange);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n return orientedRange;\n };\n this.removeSelectionMarker = function (range) {\n if (!range.marker)\n return;\n this.session.removeMarker(range.marker);\n var index = this.session.$selectionMarkers.indexOf(range);\n if (index != -1)\n this.session.$selectionMarkers.splice(index, 1);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n };\n this.removeSelectionMarkers = function (ranges) {\n var markerList = this.session.$selectionMarkers;\n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.marker)\n continue;\n this.session.removeMarker(range.marker);\n var index = markerList.indexOf(range);\n if (index != -1)\n markerList.splice(index, 1);\n }\n this.session.selectionMarkerCount = markerList.length;\n };\n this.$onAddRange = function (e) {\n this.addSelectionMarker(e.range);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onRemoveRange = function (e) {\n this.removeSelectionMarkers(e.ranges);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onMultiSelect = function (e) {\n if (this.inMultiSelectMode)\n return;\n this.inMultiSelectMode = true;\n this.setStyle(\"ace_multiselect\");\n this.keyBinding.addKeyboardHandler(commands.keyboardHandler);\n this.commands.setDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onSingleSelect = function (e) {\n if (this.session.multiSelect.inVirtualMode)\n return;\n this.inMultiSelectMode = false;\n this.unsetStyle(\"ace_multiselect\");\n this.keyBinding.removeKeyboardHandler(commands.keyboardHandler);\n this.commands.removeDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n this._emit(\"changeSelection\");\n };\n this.$onMultiSelectExec = function (e) {\n var command = e.command;\n var editor = e.editor;\n if (!editor.multiSelect)\n return;\n if (!command.multiSelectAction) {\n var result = command.exec(editor, e.args || {});\n editor.multiSelect.addRange(editor.multiSelect.toOrientedRange());\n editor.multiSelect.mergeOverlappingRanges();\n }\n else if (command.multiSelectAction == \"forEach\") {\n result = editor.forEachSelection(command, e.args);\n }\n else if (command.multiSelectAction == \"forEachLine\") {\n result = editor.forEachSelection(command, e.args, true);\n }\n else if (command.multiSelectAction == \"single\") {\n editor.exitMultiSelectMode();\n result = command.exec(editor, e.args || {});\n }\n else {\n result = command.multiSelectAction(editor, e.args || {});\n }\n return result;\n };\n this.forEachSelection = function (cmd, args, options) {\n if (this.inVirtualSelectionMode)\n return;\n var keepOrder = options && options.keepOrder;\n var $byLines = options == true || options && options.$byLines;\n var session = this.session;\n var selection = this.selection;\n var rangeList = selection.rangeList;\n var ranges = (keepOrder ? selection : rangeList).ranges;\n var result;\n if (!ranges.length)\n return cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n var reg = selection._eventRegistry;\n selection._eventRegistry = {};\n var tmpSel = new Selection(session);\n this.inVirtualSelectionMode = true;\n for (var i = ranges.length; i--;) {\n if ($byLines) {\n while (i > 0 && ranges[i].start.row == ranges[i - 1].end.row)\n i--;\n }\n tmpSel.fromOrientedRange(ranges[i]);\n tmpSel.index = i;\n this.selection = session.selection = tmpSel;\n var cmdResult = cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n if (!result && cmdResult !== undefined)\n result = cmdResult;\n tmpSel.toOrientedRange(ranges[i]);\n }\n tmpSel.detach();\n this.selection = session.selection = selection;\n this.inVirtualSelectionMode = false;\n selection._eventRegistry = reg;\n selection.mergeOverlappingRanges();\n if (selection.ranges[0])\n selection.fromOrientedRange(selection.ranges[0]);\n var anim = this.renderer.$scrollAnimation;\n this.onCursorChange();\n this.onSelectionChange();\n if (anim && anim.from == anim.to)\n this.renderer.animateScrolling(anim.from);\n return result;\n };\n this.exitMultiSelectMode = function () {\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode)\n return;\n this.multiSelect.toSingleRange();\n };\n this.getSelectedText = function () {\n var text = \"\";\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var ranges = this.multiSelect.rangeList.ranges;\n var buf = [];\n for (var i = 0; i < ranges.length; i++) {\n buf.push(this.session.getTextRange(ranges[i]));\n }\n var nl = this.session.getDocument().getNewLineCharacter();\n text = buf.join(nl);\n if (text.length == (buf.length - 1) * nl.length)\n text = \"\";\n }\n else if (!this.selection.isEmpty()) {\n text = this.session.getTextRange(this.getSelectionRange());\n }\n return text;\n };\n this.$checkMultiselectChange = function (e, anchor) {\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var range = this.multiSelect.ranges[0];\n if (this.multiSelect.isEmpty() && anchor == this.multiSelect.anchor)\n return;\n var pos = anchor == this.multiSelect.anchor\n ? range.cursor == range.start ? range.end : range.start\n : range.cursor;\n if (pos.row != anchor.row\n || this.session.$clipPositionToDocument(pos.row, pos.column).column != anchor.column)\n this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange());\n else\n this.multiSelect.mergeOverlappingRanges();\n }\n };\n this.findAll = function (needle, options, additive) {\n options = options || {};\n options.needle = needle || options.needle;\n if (options.needle == undefined) {\n var range = this.selection.isEmpty()\n ? this.selection.getWordRange()\n : this.selection.getRange();\n options.needle = this.session.getTextRange(range);\n }\n this.$search.set(options);\n var ranges = this.$search.findAll(this.session);\n if (!ranges.length)\n return 0;\n var selection = this.multiSelect;\n if (!additive)\n selection.toSingleRange(ranges[0]);\n for (var i = ranges.length; i--;)\n selection.addRange(ranges[i], true);\n if (range && selection.rangeList.rangeAtPoint(range.start))\n selection.addRange(range, true);\n return ranges.length;\n };\n this.selectMoreLines = function (dir, skip) {\n var range = this.selection.toOrientedRange();\n var isBackwards = range.cursor == range.end;\n var screenLead = this.session.documentToScreenPosition(range.cursor);\n if (this.selection.$desiredColumn)\n screenLead.column = this.selection.$desiredColumn;\n var lead = this.session.screenToDocumentPosition(screenLead.row + dir, screenLead.column);\n if (!range.isEmpty()) {\n var screenAnchor = this.session.documentToScreenPosition(isBackwards ? range.end : range.start);\n var anchor = this.session.screenToDocumentPosition(screenAnchor.row + dir, screenAnchor.column);\n }\n else {\n var anchor = lead;\n }\n if (isBackwards) {\n var newRange = Range.fromPoints(lead, anchor);\n newRange.cursor = newRange.start;\n }\n else {\n var newRange = Range.fromPoints(anchor, lead);\n newRange.cursor = newRange.end;\n }\n newRange.desiredColumn = screenLead.column;\n if (!this.selection.inMultiSelectMode) {\n this.selection.addRange(range);\n }\n else {\n if (skip)\n var toRemove = range.cursor;\n }\n this.selection.addRange(newRange);\n if (toRemove)\n this.selection.substractPoint(toRemove);\n };\n this.transposeSelections = function (dir) {\n var session = this.session;\n var sel = session.multiSelect;\n var all = sel.ranges;\n for (var i = all.length; i--;) {\n var range = all[i];\n if (range.isEmpty()) {\n var tmp = session.getWordRange(range.start.row, range.start.column);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n range.end.row = tmp.end.row;\n range.end.column = tmp.end.column;\n }\n }\n sel.mergeOverlappingRanges();\n var words = [];\n for (var i = all.length; i--;) {\n var range = all[i];\n words.unshift(session.getTextRange(range));\n }\n if (dir < 0)\n words.unshift(words.pop());\n else\n words.push(words.shift());\n for (var i = all.length; i--;) {\n var range = all[i];\n var tmp = range.clone();\n session.replace(range, words[i]);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n }\n sel.fromOrientedRange(sel.ranges[0]);\n };\n this.selectMore = function (dir, skip, stopAtFirst) {\n var session = this.session;\n var sel = session.multiSelect;\n var range = sel.toOrientedRange();\n if (range.isEmpty()) {\n range = session.getWordRange(range.start.row, range.start.column);\n range.cursor = dir == -1 ? range.start : range.end;\n this.multiSelect.addRange(range);\n if (stopAtFirst)\n return;\n }\n var needle = session.getTextRange(range);\n var newRange = find(session, needle, dir);\n if (newRange) {\n newRange.cursor = dir == -1 ? newRange.start : newRange.end;\n this.session.unfold(newRange);\n this.multiSelect.addRange(newRange);\n this.renderer.scrollCursorIntoView(null, 0.5);\n }\n if (skip)\n this.multiSelect.substractPoint(range.cursor);\n };\n this.alignCursors = function () {\n var session = this.session;\n var sel = session.multiSelect;\n var ranges = sel.ranges;\n var row = -1;\n var sameRowRanges = ranges.filter(function (r) {\n if (r.cursor.row == row)\n return true;\n row = r.cursor.row;\n });\n if (!ranges.length || sameRowRanges.length == ranges.length - 1) {\n var range = this.selection.getRange();\n var fr = range.start.row, lr = range.end.row;\n var guessRange = fr == lr;\n if (guessRange) {\n var max = this.session.getLength();\n var line;\n do {\n line = this.session.getLine(lr);\n } while (/[=:]/.test(line) && ++lr < max);\n do {\n line = this.session.getLine(fr);\n } while (/[=:]/.test(line) && --fr > 0);\n if (fr < 0)\n fr = 0;\n if (lr >= max)\n lr = max - 1;\n }\n var lines = this.session.removeFullLines(fr, lr);\n lines = this.$reAlignText(lines, guessRange);\n this.session.insert({ row: fr, column: 0 }, lines.join(\"\\n\") + \"\\n\");\n if (!guessRange) {\n range.start.column = 0;\n range.end.column = lines[lines.length - 1].length;\n }\n this.selection.setRange(range);\n }\n else {\n sameRowRanges.forEach(function (r) {\n sel.substractPoint(r.cursor);\n });\n var maxCol = 0;\n var minSpace = Infinity;\n var spaceOffsets = ranges.map(function (r) {\n var p = r.cursor;\n var line = session.getLine(p.row);\n var spaceOffset = line.substr(p.column).search(/\\S/g);\n if (spaceOffset == -1)\n spaceOffset = 0;\n if (p.column > maxCol)\n maxCol = p.column;\n if (spaceOffset < minSpace)\n minSpace = spaceOffset;\n return spaceOffset;\n });\n ranges.forEach(function (r, i) {\n var p = r.cursor;\n var l = maxCol - p.column;\n var d = spaceOffsets[i] - minSpace;\n if (l > d)\n session.insert(p, lang.stringRepeat(\" \", l - d));\n else\n session.remove(new Range(p.row, p.column, p.row, p.column - l + d));\n r.start.column = r.end.column = maxCol;\n r.start.row = r.end.row = p.row;\n r.cursor = r.end;\n });\n sel.fromOrientedRange(ranges[0]);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n }\n };\n this.$reAlignText = function (lines, forceLeft) {\n var isLeftAligned = true, isRightAligned = true;\n var startW, textW, endW;\n return lines.map(function (line) {\n var m = line.match(/(\\s*)(.*?)(\\s*)([=:].*)/);\n if (!m)\n return [line];\n if (startW == null) {\n startW = m[1].length;\n textW = m[2].length;\n endW = m[3].length;\n return m;\n }\n if (startW + textW + endW != m[1].length + m[2].length + m[3].length)\n isRightAligned = false;\n if (startW != m[1].length)\n isLeftAligned = false;\n if (startW > m[1].length)\n startW = m[1].length;\n if (textW < m[2].length)\n textW = m[2].length;\n if (endW > m[3].length)\n endW = m[3].length;\n return m;\n }).map(forceLeft ? alignLeft :\n isLeftAligned ? isRightAligned ? alignRight : alignLeft : unAlign);\n function spaces(n) {\n return lang.stringRepeat(\" \", n);\n }\n function alignLeft(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(textW - m[2].length + endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function alignRight(m) {\n return !m[2] ? m[0] : spaces(startW + textW - m[2].length) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function unAlign(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n };\n}).call(Editor.prototype);\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nexports.onSessionChange = function (e) {\n var session = e.session;\n if (session && !session.multiSelect) {\n session.$selectionMarkers = [];\n session.selection.$initRangeList();\n session.multiSelect = session.selection;\n }\n this.multiSelect = session && session.multiSelect;\n var oldSession = e.oldSession;\n if (oldSession) {\n oldSession.multiSelect.off(\"addRange\", this.$onAddRange);\n oldSession.multiSelect.off(\"removeRange\", this.$onRemoveRange);\n oldSession.multiSelect.off(\"multiSelect\", this.$onMultiSelect);\n oldSession.multiSelect.off(\"singleSelect\", this.$onSingleSelect);\n oldSession.multiSelect.lead.off(\"change\", this.$checkMultiselectChange);\n oldSession.multiSelect.anchor.off(\"change\", this.$checkMultiselectChange);\n }\n if (session) {\n session.multiSelect.on(\"addRange\", this.$onAddRange);\n session.multiSelect.on(\"removeRange\", this.$onRemoveRange);\n session.multiSelect.on(\"multiSelect\", this.$onMultiSelect);\n session.multiSelect.on(\"singleSelect\", this.$onSingleSelect);\n session.multiSelect.lead.on(\"change\", this.$checkMultiselectChange);\n session.multiSelect.anchor.on(\"change\", this.$checkMultiselectChange);\n }\n if (session && this.inMultiSelectMode != session.selection.inMultiSelectMode) {\n if (session.selection.inMultiSelectMode)\n this.$onMultiSelect();\n else\n this.$onSingleSelect();\n }\n};\nfunction MultiSelect(editor) {\n if (editor.$multiselectOnSessionChange)\n return;\n editor.$onAddRange = editor.$onAddRange.bind(editor);\n editor.$onRemoveRange = editor.$onRemoveRange.bind(editor);\n editor.$onMultiSelect = editor.$onMultiSelect.bind(editor);\n editor.$onSingleSelect = editor.$onSingleSelect.bind(editor);\n editor.$multiselectOnSessionChange = exports.onSessionChange.bind(editor);\n editor.$checkMultiselectChange = editor.$checkMultiselectChange.bind(editor);\n editor.$multiselectOnSessionChange(editor);\n editor.on(\"changeSession\", editor.$multiselectOnSessionChange);\n editor.on(\"mousedown\", onMouseDown);\n editor.commands.addCommands(commands.defaultCommands);\n addAltCursorListeners(editor);\n}\nfunction addAltCursorListeners(editor) {\n if (!editor.textInput)\n return;\n var el = editor.textInput.getElement();\n var altCursor = false;\n event.addListener(el, \"keydown\", function (e) {\n var altDown = e.keyCode == 18 && !(e.ctrlKey || e.shiftKey || e.metaKey);\n if (editor.$blockSelectEnabled && altDown) {\n if (!altCursor) {\n editor.renderer.setMouseCursor(\"crosshair\");\n altCursor = true;\n }\n }\n else if (altCursor) {\n reset();\n }\n }, editor);\n event.addListener(el, \"keyup\", reset, editor);\n event.addListener(el, \"blur\", reset, editor);\n function reset(e) {\n if (altCursor) {\n editor.renderer.setMouseCursor(\"\");\n altCursor = false;\n }\n }\n}\nexports.MultiSelect = MultiSelect;\nrequire(\"./config\").defineOptions(Editor.prototype, \"editor\", {\n enableMultiselect: {\n set: function (val) {\n MultiSelect(this);\n if (val) {\n this.on(\"mousedown\", onMouseDown);\n }\n else {\n this.off(\"mousedown\", onMouseDown);\n }\n },\n value: true\n },\n enableBlockSelect: {\n set: function (val) {\n this.$blockSelectEnabled = val;\n },\n value: true\n }\n});\n\n});\n\nace.define(\"ace/mode/folding/fold_mode\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../../range\").Range;\nvar FoldMode = exports.FoldMode = function () { };\n(function () {\n this.foldingStartMarker = null;\n this.foldingStopMarker = null;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.foldingStartMarker.test(line))\n return \"start\";\n if (foldStyle == \"markbeginend\"\n && this.foldingStopMarker\n && this.foldingStopMarker.test(line))\n return \"end\";\n return \"\";\n };\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n return null;\n };\n this.indentationBlock = function (session, row, column) {\n var re = /\\S/;\n var line = session.getLine(row);\n var startLevel = line.search(re);\n if (startLevel == -1)\n return;\n var startColumn = column || line.length;\n var maxRow = session.getLength();\n var startRow = row;\n var endRow = row;\n while (++row < maxRow) {\n var level = session.getLine(row).search(re);\n if (level == -1)\n continue;\n if (level <= startLevel) {\n var token = session.getTokenAt(row, 0);\n if (!token || token.type !== \"string\")\n break;\n }\n endRow = row;\n }\n if (endRow > startRow) {\n var endColumn = session.getLine(endRow).length;\n return new Range(startRow, startColumn, endRow, endColumn);\n }\n };\n this.openingBracketBlock = function (session, bracket, row, column, typeRe) {\n var start = { row: row, column: column + 1 };\n var end = session.$findClosingBracket(bracket, start, typeRe);\n if (!end)\n return;\n var fw = session.foldWidgets[end.row];\n if (fw == null)\n fw = session.getFoldWidget(end.row);\n if (fw == \"start\" && end.row > start.row) {\n end.row--;\n end.column = session.getLine(end.row).length;\n }\n return Range.fromPoints(start, end);\n };\n this.closingBracketBlock = function (session, bracket, row, column, typeRe) {\n var end = { row: row, column: column };\n var start = session.$findOpeningBracket(bracket, end);\n if (!start)\n return;\n start.column++;\n end.column--;\n return Range.fromPoints(start, end);\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/ext/error_marker\",[\"require\",\"exports\",\"module\",\"ace/line_widgets\",\"ace/lib/dom\",\"ace/range\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar LineWidgets = require(\"../line_widgets\").LineWidgets;\nvar dom = require(\"../lib/dom\");\nvar Range = require(\"../range\").Range;\nvar nls = require(\"../config\").nls;\nfunction binarySearch(array, needle, comparator) {\n var first = 0;\n var last = array.length - 1;\n while (first <= last) {\n var mid = (first + last) >> 1;\n var c = comparator(needle, array[mid]);\n if (c > 0)\n first = mid + 1;\n else if (c < 0)\n last = mid - 1;\n else\n return mid;\n }\n return -(first + 1);\n}\nfunction findAnnotations(session, row, dir) {\n var annotations = session.getAnnotations().sort(Range.comparePoints);\n if (!annotations.length)\n return;\n var i = binarySearch(annotations, { row: row, column: -1 }, Range.comparePoints);\n if (i < 0)\n i = -i - 1;\n if (i >= annotations.length)\n i = dir > 0 ? 0 : annotations.length - 1;\n else if (i === 0 && dir < 0)\n i = annotations.length - 1;\n var annotation = annotations[i];\n if (!annotation || !dir)\n return;\n if (annotation.row === row) {\n do {\n annotation = annotations[i += dir];\n } while (annotation && annotation.row === row);\n if (!annotation)\n return annotations.slice();\n }\n var matched = [];\n row = annotation.row;\n do {\n matched[dir < 0 ? \"unshift\" : \"push\"](annotation);\n annotation = annotations[i += dir];\n } while (annotation && annotation.row == row);\n return matched.length && matched;\n}\nexports.showErrorMarker = function (editor, dir) {\n var session = editor.session;\n if (!session.widgetManager) {\n session.widgetManager = new LineWidgets(session);\n session.widgetManager.attach(editor);\n }\n var pos = editor.getCursorPosition();\n var row = pos.row;\n var oldWidget = session.widgetManager.getWidgetsAtRow(row).filter(function (w) {\n return w.type == \"errorMarker\";\n })[0];\n if (oldWidget) {\n oldWidget.destroy();\n }\n else {\n row -= dir;\n }\n var annotations = findAnnotations(session, row, dir);\n var gutterAnno;\n if (annotations) {\n var annotation = annotations[0];\n pos.column = (annotation.pos && typeof annotation.column != \"number\"\n ? annotation.pos.sc\n : annotation.column) || 0;\n pos.row = annotation.row;\n gutterAnno = editor.renderer.$gutterLayer.$annotations[pos.row];\n }\n else if (oldWidget) {\n return;\n }\n else {\n gutterAnno = {\n text: [nls(\"Looks good!\")],\n className: \"ace_ok\"\n };\n }\n editor.session.unfold(pos.row);\n editor.selection.moveToPosition(pos);\n var w = {\n row: pos.row,\n fixedWidth: true,\n coverGutter: true,\n el: dom.createElement(\"div\"),\n type: \"errorMarker\"\n };\n var el = w.el.appendChild(dom.createElement(\"div\"));\n var arrow = w.el.appendChild(dom.createElement(\"div\"));\n arrow.className = \"error_widget_arrow \" + gutterAnno.className;\n var left = editor.renderer.$cursorLayer\n .getPixelPosition(pos).left;\n arrow.style.left = left + editor.renderer.gutterWidth - 5 + \"px\";\n w.el.className = \"error_widget_wrapper\";\n el.className = \"error_widget \" + gutterAnno.className;\n el.innerHTML = gutterAnno.text.join(\"
    \");\n el.appendChild(dom.createElement(\"div\"));\n var kb = function (_, hashId, keyString) {\n if (hashId === 0 && (keyString === \"esc\" || keyString === \"return\")) {\n w.destroy();\n return { command: \"null\" };\n }\n };\n w.destroy = function () {\n if (editor.$mouseHandler.isMousePressed)\n return;\n editor.keyBinding.removeKeyboardHandler(kb);\n session.widgetManager.removeLineWidget(w);\n editor.off(\"changeSelection\", w.destroy);\n editor.off(\"changeSession\", w.destroy);\n editor.off(\"mouseup\", w.destroy);\n editor.off(\"change\", w.destroy);\n };\n editor.keyBinding.addKeyboardHandler(kb);\n editor.on(\"changeSelection\", w.destroy);\n editor.on(\"changeSession\", w.destroy);\n editor.on(\"mouseup\", w.destroy);\n editor.on(\"change\", w.destroy);\n editor.session.widgetManager.addLineWidget(w);\n w.el.onmousedown = editor.focus.bind(editor);\n editor.renderer.scrollCursorIntoView(null, 0.5, { bottom: w.el.offsetHeight });\n};\ndom.importCssString(\"\\n .error_widget_wrapper {\\n background: inherit;\\n color: inherit;\\n border:none\\n }\\n .error_widget {\\n border-top: solid 2px;\\n border-bottom: solid 2px;\\n margin: 5px 0;\\n padding: 10px 40px;\\n white-space: pre-wrap;\\n }\\n .error_widget.ace_error, .error_widget_arrow.ace_error{\\n border-color: #ff5a5a\\n }\\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\\n border-color: #F1D817\\n }\\n .error_widget.ace_info, .error_widget_arrow.ace_info{\\n border-color: #5a5a5a\\n }\\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\\n border-color: #5aaa5a\\n }\\n .error_widget_arrow {\\n position: absolute;\\n border: solid 5px;\\n border-top-color: transparent!important;\\n border-right-color: transparent!important;\\n border-left-color: transparent!important;\\n top: -5px;\\n }\\n\", \"error_marker.css\", false);\n\n});\n\nace.define(\"ace/ace\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/range\",\"ace/editor\",\"ace/edit_session\",\"ace/undomanager\",\"ace/virtual_renderer\",\"ace/worker/worker_client\",\"ace/keyboard/hash_handler\",\"ace/placeholder\",\"ace/multi_select\",\"ace/mode/folding/fold_mode\",\"ace/theme/textmate\",\"ace/ext/error_marker\",\"ace/config\",\"ace/loader_build\"], function(require, exports, module){/**\n * The main class required to set up an Ace instance in the browser.\n *\n * @class Ace\n **/\n\"use strict\";\nrequire(\"./loader_build\")(exports)\nvar dom = require(\"./lib/dom\");\nvar Range = require(\"./range\").Range;\nvar Editor = require(\"./editor\").Editor;\nvar EditSession = require(\"./edit_session\").EditSession;\nvar UndoManager = require(\"./undomanager\").UndoManager;\nvar Renderer = require(\"./virtual_renderer\").VirtualRenderer;\nrequire(\"./worker/worker_client\");\nrequire(\"./keyboard/hash_handler\");\nrequire(\"./placeholder\");\nrequire(\"./multi_select\");\nrequire(\"./mode/folding/fold_mode\");\nrequire(\"./theme/textmate\");\nrequire(\"./ext/error_marker\");\nexports.config = require(\"./config\");\nexports.edit = function (el, options) {\n if (typeof el == \"string\") {\n var _id = el;\n el = document.getElementById(_id);\n if (!el)\n throw new Error(\"ace.edit can't find div #\" + _id);\n }\n if (el && el.env && el.env.editor instanceof Editor)\n return el.env.editor;\n var value = \"\";\n if (el && /input|textarea/i.test(el.tagName)) {\n var oldNode = el;\n value = oldNode.value;\n el = dom.createElement(\"pre\");\n oldNode.parentNode.replaceChild(el, oldNode);\n }\n else if (el) {\n value = el.textContent;\n el.innerHTML = \"\";\n }\n var doc = exports.createEditSession(value);\n var editor = new Editor(new Renderer(el), doc, options);\n var env = {\n document: doc,\n editor: editor,\n onResize: editor.resize.bind(editor, null)\n };\n if (oldNode)\n env.textarea = oldNode;\n editor.on(\"destroy\", function () {\n env.editor.container.env = null; // prevent memory leak on old ie\n });\n editor.container.env = editor.env = env;\n return editor;\n};\nexports.createEditSession = function (text, mode) {\n var doc = new EditSession(text, mode);\n doc.setUndoManager(new UndoManager());\n return doc;\n};\nexports.Range = Range;\nexports.Editor = Editor;\nexports.EditSession = EditSession;\nexports.UndoManager = UndoManager;\nexports.VirtualRenderer = Renderer;\nexports.version = exports.config.version;\n\n}); (function() {\n ace.require([\"ace/ace\"], function(a) {\n if (a) {\n a.config.init(true);\n a.define = ace.define;\n }\n var global = (function () {\n return this;\n })();\n if (!global && typeof window != \"undefined\") global = window; // can happen in strict mode\n if (!global && typeof self != \"undefined\") global = self; // can happen in webworker\n \n if (!global.ace)\n global.ace = a;\n for (var key in a) if (a.hasOwnProperty(key))\n global.ace[key] = a[key];\n global.ace[\"default\"] = global.ace;\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = global.ace;\n }\n });\n })();\n ","ace.define(\"ace/ext/beautify\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"], function(require, exports, module){// [WIP]\n\"use strict\";\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nfunction is(token, type) {\n return token.type.lastIndexOf(type + \".xml\") > -1;\n}\nexports.singletonTags = [\"area\", \"base\", \"br\", \"col\", \"command\", \"embed\", \"hr\", \"html\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"param\", \"source\", \"track\", \"wbr\"];\nexports.blockTags = [\"article\", \"aside\", \"blockquote\", \"body\", \"div\", \"dl\", \"fieldset\", \"footer\", \"form\", \"head\", \"header\", \"html\", \"nav\", \"ol\", \"p\", \"script\", \"section\", \"style\", \"table\", \"tbody\", \"tfoot\", \"thead\", \"ul\"];\nexports.formatOptions = {\n lineBreaksAfterCommasInCurlyBlock: true\n};\nexports.beautify = function (session) {\n var iterator = new TokenIterator(session, 0, 0);\n var token = iterator.getCurrentToken();\n var tabString = session.getTabString();\n var singletonTags = exports.singletonTags;\n var blockTags = exports.blockTags;\n var formatOptions = exports.formatOptions || {};\n var nextToken;\n var breakBefore = false;\n var spaceBefore = false;\n var spaceAfter = false;\n var code = \"\";\n var value = \"\";\n var tagName = \"\";\n var depth = 0;\n var lastDepth = 0;\n var lastIndent = 0;\n var indent = 0;\n var unindent = 0;\n var roundDepth = 0;\n var curlyDepth = 0;\n var row;\n var curRow = 0;\n var rowsToAdd = 0;\n var rowTokens = [];\n var abort = false;\n var i;\n var indentNextLine = false;\n var inTag = false;\n var inCSS = false;\n var inBlock = false;\n var levels = { 0: 0 };\n var parents = [];\n var caseBody = false;\n var trimNext = function () {\n if (nextToken && nextToken.value && nextToken.type !== 'string.regexp')\n nextToken.value = nextToken.value.replace(/^\\s*/, \"\");\n };\n var trimLine = function () {\n var end = code.length - 1;\n while (true) {\n if (end == 0)\n break;\n if (code[end] !== \" \")\n break;\n end = end - 1;\n }\n code = code.slice(0, end + 1);\n };\n var trimCode = function () {\n code = code.trimRight();\n breakBefore = false;\n };\n while (token !== null) {\n curRow = iterator.getCurrentTokenRow();\n rowTokens = iterator.$rowTokens;\n nextToken = iterator.stepForward();\n if (typeof token !== \"undefined\") {\n value = token.value;\n unindent = 0;\n inCSS = (tagName === \"style\" || session.$modeId === \"ace/mode/css\");\n if (is(token, \"tag-open\")) {\n inTag = true;\n if (nextToken)\n inBlock = (blockTags.indexOf(nextToken.value) !== -1);\n if (value === \" 0; rowsToAdd--)\n code += \"\\n\";\n breakBefore = true;\n if (!is(token, \"comment\") && !token.type.match(/^(comment|string)$/))\n value = value.trimLeft();\n }\n if (value) {\n if (token.type === \"keyword\" && value.match(/^(if|else|elseif|for|foreach|while|switch)$/)) {\n parents[depth] = value;\n trimNext();\n spaceAfter = true;\n if (value.match(/^(else|elseif)$/)) {\n if (code.match(/\\}[\\s]*$/)) {\n trimCode();\n spaceBefore = true;\n }\n }\n }\n else if (token.type === \"paren.lparen\") {\n trimNext();\n if (value.substr(-1) === \"{\") {\n spaceAfter = true;\n indentNextLine = false;\n if (!inTag)\n rowsToAdd = 1;\n }\n if (value.substr(0, 1) === \"{\") {\n spaceBefore = true;\n if (code.substr(-1) !== '[' && code.trimRight().substr(-1) === '[') {\n trimCode();\n spaceBefore = false;\n }\n else if (code.trimRight().substr(-1) === ')') {\n trimCode();\n }\n else {\n trimLine();\n }\n }\n }\n else if (token.type === \"paren.rparen\") {\n unindent = 1;\n if (value.substr(0, 1) === \"}\") {\n if (parents[depth - 1] === 'case')\n unindent++;\n if (code.trimRight().substr(-1) === '{') {\n trimCode();\n }\n else {\n spaceBefore = true;\n if (inCSS)\n rowsToAdd += 2;\n }\n }\n if (value.substr(0, 1) === \"]\") {\n if (code.substr(-1) !== '}' && code.trimRight().substr(-1) === '}') {\n spaceBefore = false;\n indent++;\n trimCode();\n }\n }\n if (value.substr(0, 1) === \")\") {\n if (code.substr(-1) !== '(' && code.trimRight().substr(-1) === '(') {\n spaceBefore = false;\n indent++;\n trimCode();\n }\n }\n trimLine();\n }\n else if ((token.type === \"keyword.operator\" || token.type === \"keyword\") && value.match(/^(=|==|===|!=|!==|&&|\\|\\||and|or|xor|\\+=|.=|>|>=|<|<=|=>)$/)) {\n trimCode();\n trimNext();\n spaceBefore = true;\n spaceAfter = true;\n }\n else if (token.type === \"punctuation.operator\" && value === ';') {\n trimCode();\n trimNext();\n spaceAfter = true;\n if (inCSS)\n rowsToAdd++;\n }\n else if (token.type === \"punctuation.operator\" && value.match(/^(:|,)$/)) {\n trimCode();\n trimNext();\n if (value.match(/^(,)$/) && curlyDepth > 0 && roundDepth === 0 && formatOptions.lineBreaksAfterCommasInCurlyBlock) {\n rowsToAdd++;\n }\n else {\n spaceAfter = true;\n breakBefore = false;\n }\n }\n else if (token.type === \"support.php_tag\" && value === \"?>\" && !breakBefore) {\n trimCode();\n spaceBefore = true;\n }\n else if (is(token, \"attribute-name\") && code.substr(-1).match(/^\\s$/)) {\n spaceBefore = true;\n }\n else if (is(token, \"attribute-equals\")) {\n trimLine();\n trimNext();\n }\n else if (is(token, \"tag-close\")) {\n trimLine();\n if (value === \"/>\")\n spaceBefore = true;\n }\n else if (token.type === \"keyword\" && value.match(/^(case|default)$/)) {\n if (caseBody)\n unindent = 1;\n }\n if (breakBefore && !(token.type.match(/^(comment)$/) && !value.substr(0, 1).match(/^[/#]$/)) && !(token.type.match(/^(string)$/) && !value.substr(0, 1).match(/^['\"@]$/))) {\n indent = lastIndent;\n if (depth > lastDepth) {\n indent++;\n for (i = depth; i > lastDepth; i--)\n levels[i] = indent;\n }\n else if (depth < lastDepth)\n indent = levels[depth];\n lastDepth = depth;\n lastIndent = indent;\n if (unindent)\n indent -= unindent;\n if (indentNextLine && !roundDepth) {\n indent++;\n indentNextLine = false;\n }\n for (i = 0; i < indent; i++)\n code += tabString;\n }\n if (token.type === \"keyword\" && value.match(/^(case|default)$/)) {\n if (caseBody === false) {\n parents[depth] = value;\n depth++;\n caseBody = true;\n }\n }\n else if (token.type === \"keyword\" && value.match(/^(break)$/)) {\n if (parents[depth - 1] && parents[depth - 1].match(/^(case|default)$/)) {\n depth--;\n caseBody = false;\n }\n }\n if (token.type === \"paren.lparen\") {\n roundDepth += (value.match(/\\(/g) || []).length;\n curlyDepth += (value.match(/\\{/g) || []).length;\n depth += value.length;\n }\n if (token.type === \"keyword\" && value.match(/^(if|else|elseif|for|while)$/)) {\n indentNextLine = true;\n roundDepth = 0;\n }\n else if (!roundDepth && value.trim() && token.type !== \"comment\")\n indentNextLine = false;\n if (token.type === \"paren.rparen\") {\n roundDepth -= (value.match(/\\)/g) || []).length;\n curlyDepth -= (value.match(/\\}/g) || []).length;\n for (i = 0; i < value.length; i++) {\n depth--;\n if (value.substr(i, 1) === '}' && parents[depth] === 'case') {\n depth--;\n }\n }\n }\n if (token.type == \"text\")\n value = value.replace(/\\s+$/, \" \");\n if (spaceBefore && !breakBefore) {\n trimLine();\n if (code.substr(-1) !== \"\\n\")\n code += \" \";\n }\n code += value;\n if (spaceAfter)\n code += \" \";\n breakBefore = false;\n spaceBefore = false;\n spaceAfter = false;\n if ((is(token, \"tag-close\") && (inBlock || blockTags.indexOf(tagName) !== -1)) || (is(token, \"doctype\") && value === \">\")) {\n if (inBlock && nextToken && nextToken.value === \"\") {\n depth--;\n }\n }\n if (is(token, \"tag-name\")) {\n tagName = value;\n }\n row = curRow;\n }\n }\n token = nextToken;\n }\n code = code.trim();\n session.doc.setValue(code);\n};\nexports.commands = [{\n name: \"beautify\",\n description: \"Format selection (Beautify)\",\n exec: function (editor) {\n exports.beautify(editor.session);\n },\n bindKey: \"Ctrl-Shift-B\"\n }];\n\n}); (function() {\n ace.require([\"ace/ext/beautify\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/ext/searchbox-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \"\\n\\n/* ------------------------------------------------------------------------------------------\\n * Editor Search Form\\n * --------------------------------------------------------------------------------------- */\\n.ace_search {\\n background-color: #ddd;\\n color: #666;\\n border: 1px solid #cbcbcb;\\n border-top: 0 none;\\n overflow: hidden;\\n margin: 0;\\n padding: 4px 6px 0 4px;\\n position: absolute;\\n top: 0;\\n z-index: 99;\\n white-space: normal;\\n}\\n.ace_search.left {\\n border-left: 0 none;\\n border-radius: 0px 0px 5px 0px;\\n left: 0;\\n}\\n.ace_search.right {\\n border-radius: 0px 0px 0px 5px;\\n border-right: 0 none;\\n right: 0;\\n}\\n\\n.ace_search_form, .ace_replace_form {\\n margin: 0 20px 4px 0;\\n overflow: hidden;\\n line-height: 1.9;\\n}\\n.ace_replace_form {\\n margin-right: 0;\\n}\\n.ace_search_form.ace_nomatch {\\n outline: 1px solid red;\\n}\\n\\n.ace_search_field {\\n border-radius: 3px 0 0 3px;\\n background-color: white;\\n color: black;\\n border: 1px solid #cbcbcb;\\n border-right: 0 none;\\n outline: 0;\\n padding: 0;\\n font-size: inherit;\\n margin: 0;\\n line-height: inherit;\\n padding: 0 6px;\\n min-width: 17em;\\n vertical-align: top;\\n min-height: 1.8em;\\n box-sizing: content-box;\\n}\\n.ace_searchbtn {\\n border: 1px solid #cbcbcb;\\n line-height: inherit;\\n display: inline-block;\\n padding: 0 6px;\\n background: #fff;\\n border-right: 0 none;\\n border-left: 1px solid #dcdcdc;\\n cursor: pointer;\\n margin: 0;\\n position: relative;\\n color: #666;\\n}\\n.ace_searchbtn:last-child {\\n border-radius: 0 3px 3px 0;\\n border-right: 1px solid #cbcbcb;\\n}\\n.ace_searchbtn:disabled {\\n background: none;\\n cursor: default;\\n}\\n.ace_searchbtn:hover {\\n background-color: #eef1f6;\\n}\\n.ace_searchbtn.prev, .ace_searchbtn.next {\\n padding: 0px 0.7em\\n}\\n.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\\n content: \\\"\\\";\\n border: solid 2px #888;\\n width: 0.5em;\\n height: 0.5em;\\n border-width: 2px 0 0 2px;\\n display:inline-block;\\n transform: rotate(-45deg);\\n}\\n.ace_searchbtn.next:after {\\n border-width: 0 2px 2px 0 ;\\n}\\n.ace_searchbtn_close {\\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\\n border-radius: 50%;\\n border: 0 none;\\n color: #656565;\\n cursor: pointer;\\n font: 16px/16px Arial;\\n padding: 0;\\n height: 14px;\\n width: 14px;\\n top: 9px;\\n right: 7px;\\n position: absolute;\\n}\\n.ace_searchbtn_close:hover {\\n background-color: #656565;\\n background-position: 50% 100%;\\n color: white;\\n}\\n\\n.ace_button {\\n margin-left: 2px;\\n cursor: pointer;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -o-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n overflow: hidden;\\n opacity: 0.7;\\n border: 1px solid rgba(100,100,100,0.23);\\n padding: 1px;\\n box-sizing: border-box!important;\\n color: black;\\n}\\n\\n.ace_button:hover {\\n background-color: #eee;\\n opacity:1;\\n}\\n.ace_button:active {\\n background-color: #ddd;\\n}\\n\\n.ace_button.checked {\\n border-color: #3399ff;\\n opacity:1;\\n}\\n\\n.ace_search_options{\\n margin-bottom: 3px;\\n text-align: right;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -o-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n clear: both;\\n}\\n\\n.ace_search_counter {\\n float: left;\\n font-family: arial;\\n padding: 0 8px;\\n}\";\n\n});\n\nace.define(\"ace/ext/searchbox\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/event\",\"ace/ext/searchbox-css\",\"ace/keyboard/hash_handler\",\"ace/lib/keys\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar event = require(\"../lib/event\");\nvar searchboxCss = require(\"./searchbox-css\");\nvar HashHandler = require(\"../keyboard/hash_handler\").HashHandler;\nvar keyUtil = require(\"../lib/keys\");\nvar nls = require(\"../config\").nls;\nvar MAX_COUNT = 999;\ndom.importCssString(searchboxCss, \"ace_searchbox\", false);\nvar SearchBox = /** @class */ (function () {\n function SearchBox(editor, range, showReplaceForm) {\n var div = dom.createElement(\"div\");\n dom.buildDom([\"div\", { class: \"ace_search right\" },\n [\"span\", { action: \"hide\", class: \"ace_searchbtn_close\" }],\n [\"div\", { class: \"ace_search_form\" },\n [\"input\", { class: \"ace_search_field\", placeholder: nls(\"Search for\"), spellcheck: \"false\" }],\n [\"span\", { action: \"findPrev\", class: \"ace_searchbtn prev\" }, \"\\u200b\"],\n [\"span\", { action: \"findNext\", class: \"ace_searchbtn next\" }, \"\\u200b\"],\n [\"span\", { action: \"findAll\", class: \"ace_searchbtn\", title: \"Alt-Enter\" }, nls(\"All\")]\n ],\n [\"div\", { class: \"ace_replace_form\" },\n [\"input\", { class: \"ace_search_field\", placeholder: nls(\"Replace with\"), spellcheck: \"false\" }],\n [\"span\", { action: \"replaceAndFindNext\", class: \"ace_searchbtn\" }, nls(\"Replace\")],\n [\"span\", { action: \"replaceAll\", class: \"ace_searchbtn\" }, nls(\"All\")]\n ],\n [\"div\", { class: \"ace_search_options\" },\n [\"span\", { action: \"toggleReplace\", class: \"ace_button\", title: nls(\"Toggle Replace mode\"),\n style: \"float:left;margin-top:-2px;padding:0 5px;\" }, \"+\"],\n [\"span\", { class: \"ace_search_counter\" }],\n [\"span\", { action: \"toggleRegexpMode\", class: \"ace_button\", title: nls(\"RegExp Search\") }, \".*\"],\n [\"span\", { action: \"toggleCaseSensitive\", class: \"ace_button\", title: nls(\"CaseSensitive Search\") }, \"Aa\"],\n [\"span\", { action: \"toggleWholeWords\", class: \"ace_button\", title: nls(\"Whole Word Search\") }, \"\\\\b\"],\n [\"span\", { action: \"searchInSelection\", class: \"ace_button\", title: nls(\"Search In Selection\") }, \"S\"]\n ]\n ], div);\n this.element = div.firstChild;\n this.setSession = this.setSession.bind(this);\n this.$init();\n this.setEditor(editor);\n dom.importCssString(searchboxCss, \"ace_searchbox\", editor.container);\n }\n SearchBox.prototype.setEditor = function (editor) {\n editor.searchBox = this;\n editor.renderer.scroller.appendChild(this.element);\n this.editor = editor;\n };\n SearchBox.prototype.setSession = function (e) {\n this.searchRange = null;\n this.$syncOptions(true);\n };\n SearchBox.prototype.$initElements = function (sb) {\n this.searchBox = sb.querySelector(\".ace_search_form\");\n this.replaceBox = sb.querySelector(\".ace_replace_form\");\n this.searchOption = sb.querySelector(\"[action=searchInSelection]\");\n this.replaceOption = sb.querySelector(\"[action=toggleReplace]\");\n this.regExpOption = sb.querySelector(\"[action=toggleRegexpMode]\");\n this.caseSensitiveOption = sb.querySelector(\"[action=toggleCaseSensitive]\");\n this.wholeWordOption = sb.querySelector(\"[action=toggleWholeWords]\");\n this.searchInput = this.searchBox.querySelector(\".ace_search_field\");\n this.replaceInput = this.replaceBox.querySelector(\".ace_search_field\");\n this.searchCounter = sb.querySelector(\".ace_search_counter\");\n };\n SearchBox.prototype.$init = function () {\n var sb = this.element;\n this.$initElements(sb);\n var _this = this;\n event.addListener(sb, \"mousedown\", function (e) {\n setTimeout(function () {\n _this.activeInput.focus();\n }, 0);\n event.stopPropagation(e);\n });\n event.addListener(sb, \"click\", function (e) {\n var t = e.target || e.srcElement;\n var action = t.getAttribute(\"action\");\n if (action && _this[action])\n _this[action]();\n else if (_this.$searchBarKb.commands[action])\n _this.$searchBarKb.commands[action].exec(_this);\n event.stopPropagation(e);\n });\n event.addCommandKeyListener(sb, function (e, hashId, keyCode) {\n var keyString = keyUtil.keyCodeToString(keyCode);\n var command = _this.$searchBarKb.findKeyCommand(hashId, keyString);\n if (command && command.exec) {\n command.exec(_this);\n event.stopEvent(e);\n }\n });\n this.$onChange = lang.delayedCall(function () {\n _this.find(false, false);\n });\n event.addListener(this.searchInput, \"input\", function () {\n _this.$onChange.schedule(20);\n });\n event.addListener(this.searchInput, \"focus\", function () {\n _this.activeInput = _this.searchInput;\n _this.searchInput.value && _this.highlight();\n });\n event.addListener(this.replaceInput, \"focus\", function () {\n _this.activeInput = _this.replaceInput;\n _this.searchInput.value && _this.highlight();\n });\n };\n SearchBox.prototype.setSearchRange = function (range) {\n this.searchRange = range;\n if (range) {\n this.searchRangeMarker = this.editor.session.addMarker(range, \"ace_active-line\");\n }\n else if (this.searchRangeMarker) {\n this.editor.session.removeMarker(this.searchRangeMarker);\n this.searchRangeMarker = null;\n }\n };\n SearchBox.prototype.$syncOptions = function (preventScroll) {\n dom.setCssClass(this.replaceOption, \"checked\", this.searchRange);\n dom.setCssClass(this.searchOption, \"checked\", this.searchOption.checked);\n this.replaceOption.textContent = this.replaceOption.checked ? \"-\" : \"+\";\n dom.setCssClass(this.regExpOption, \"checked\", this.regExpOption.checked);\n dom.setCssClass(this.wholeWordOption, \"checked\", this.wholeWordOption.checked);\n dom.setCssClass(this.caseSensitiveOption, \"checked\", this.caseSensitiveOption.checked);\n var readOnly = this.editor.getReadOnly();\n this.replaceOption.style.display = readOnly ? \"none\" : \"\";\n this.replaceBox.style.display = this.replaceOption.checked && !readOnly ? \"\" : \"none\";\n this.find(false, false, preventScroll);\n };\n SearchBox.prototype.highlight = function (re) {\n this.editor.session.highlight(re || this.editor.$search.$options.re);\n this.editor.renderer.updateBackMarkers();\n };\n SearchBox.prototype.find = function (skipCurrent, backwards, preventScroll) {\n var range = this.editor.find(this.searchInput.value, {\n skipCurrent: skipCurrent,\n backwards: backwards,\n wrap: true,\n regExp: this.regExpOption.checked,\n caseSensitive: this.caseSensitiveOption.checked,\n wholeWord: this.wholeWordOption.checked,\n preventScroll: preventScroll,\n range: this.searchRange\n });\n var noMatch = !range && this.searchInput.value;\n dom.setCssClass(this.searchBox, \"ace_nomatch\", noMatch);\n this.editor._emit(\"findSearchBox\", { match: !noMatch });\n this.highlight();\n this.updateCounter();\n };\n SearchBox.prototype.updateCounter = function () {\n var editor = this.editor;\n var regex = editor.$search.$options.re;\n var supportsUnicodeFlag = regex.unicode;\n var all = 0;\n var before = 0;\n if (regex) {\n var value = this.searchRange\n ? editor.session.getTextRange(this.searchRange)\n : editor.getValue();\n var offset = editor.session.doc.positionToIndex(editor.selection.anchor);\n if (this.searchRange)\n offset -= editor.session.doc.positionToIndex(this.searchRange.start);\n var last = regex.lastIndex = 0;\n var m;\n while ((m = regex.exec(value))) {\n all++;\n last = m.index;\n if (last <= offset)\n before++;\n if (all > MAX_COUNT)\n break;\n if (!m[0]) {\n regex.lastIndex = last += lang.skipEmptyMatch(value, last, supportsUnicodeFlag);\n if (last >= value.length)\n break;\n }\n }\n }\n this.searchCounter.textContent = nls(\"$0 of $1\", [before, (all > MAX_COUNT ? MAX_COUNT + \"+\" : all)]);\n };\n SearchBox.prototype.findNext = function () {\n this.find(true, false);\n };\n SearchBox.prototype.findPrev = function () {\n this.find(true, true);\n };\n SearchBox.prototype.findAll = function () {\n var range = this.editor.findAll(this.searchInput.value, {\n regExp: this.regExpOption.checked,\n caseSensitive: this.caseSensitiveOption.checked,\n wholeWord: this.wholeWordOption.checked\n });\n var noMatch = !range && this.searchInput.value;\n dom.setCssClass(this.searchBox, \"ace_nomatch\", noMatch);\n this.editor._emit(\"findSearchBox\", { match: !noMatch });\n this.highlight();\n this.hide();\n };\n SearchBox.prototype.replace = function () {\n if (!this.editor.getReadOnly())\n this.editor.replace(this.replaceInput.value);\n };\n SearchBox.prototype.replaceAndFindNext = function () {\n if (!this.editor.getReadOnly()) {\n this.editor.replace(this.replaceInput.value);\n this.findNext();\n }\n };\n SearchBox.prototype.replaceAll = function () {\n if (!this.editor.getReadOnly())\n this.editor.replaceAll(this.replaceInput.value);\n };\n SearchBox.prototype.hide = function () {\n this.active = false;\n this.setSearchRange(null);\n this.editor.off(\"changeSession\", this.setSession);\n this.element.style.display = \"none\";\n this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb);\n this.editor.focus();\n };\n SearchBox.prototype.show = function (value, isReplace) {\n this.active = true;\n this.editor.on(\"changeSession\", this.setSession);\n this.element.style.display = \"\";\n this.replaceOption.checked = isReplace;\n if (value)\n this.searchInput.value = value;\n this.searchInput.focus();\n this.searchInput.select();\n this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb);\n this.$syncOptions(true);\n };\n SearchBox.prototype.isFocused = function () {\n var el = document.activeElement;\n return el == this.searchInput || el == this.replaceInput;\n };\n return SearchBox;\n}());\nvar $searchBarKb = new HashHandler();\n$searchBarKb.bindKeys({\n \"Ctrl-f|Command-f\": function (sb) {\n var isReplace = sb.isReplace = !sb.isReplace;\n sb.replaceBox.style.display = isReplace ? \"\" : \"none\";\n sb.replaceOption.checked = false;\n sb.$syncOptions();\n sb.searchInput.focus();\n },\n \"Ctrl-H|Command-Option-F\": function (sb) {\n if (sb.editor.getReadOnly())\n return;\n sb.replaceOption.checked = true;\n sb.$syncOptions();\n sb.replaceInput.focus();\n },\n \"Ctrl-G|Command-G\": function (sb) {\n sb.findNext();\n },\n \"Ctrl-Shift-G|Command-Shift-G\": function (sb) {\n sb.findPrev();\n },\n \"esc\": function (sb) {\n setTimeout(function () { sb.hide(); });\n },\n \"Return\": function (sb) {\n if (sb.activeInput == sb.replaceInput)\n sb.replace();\n sb.findNext();\n },\n \"Shift-Return\": function (sb) {\n if (sb.activeInput == sb.replaceInput)\n sb.replace();\n sb.findPrev();\n },\n \"Alt-Return\": function (sb) {\n if (sb.activeInput == sb.replaceInput)\n sb.replaceAll();\n sb.findAll();\n },\n \"Tab\": function (sb) {\n (sb.activeInput == sb.replaceInput ? sb.searchInput : sb.replaceInput).focus();\n }\n});\n$searchBarKb.addCommands([{\n name: \"toggleRegexpMode\",\n bindKey: { win: \"Alt-R|Alt-/\", mac: \"Ctrl-Alt-R|Ctrl-Alt-/\" },\n exec: function (sb) {\n sb.regExpOption.checked = !sb.regExpOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"toggleCaseSensitive\",\n bindKey: { win: \"Alt-C|Alt-I\", mac: \"Ctrl-Alt-R|Ctrl-Alt-I\" },\n exec: function (sb) {\n sb.caseSensitiveOption.checked = !sb.caseSensitiveOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"toggleWholeWords\",\n bindKey: { win: \"Alt-B|Alt-W\", mac: \"Ctrl-Alt-B|Ctrl-Alt-W\" },\n exec: function (sb) {\n sb.wholeWordOption.checked = !sb.wholeWordOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"toggleReplace\",\n exec: function (sb) {\n sb.replaceOption.checked = !sb.replaceOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"searchInSelection\",\n exec: function (sb) {\n sb.searchOption.checked = !sb.searchRange;\n sb.setSearchRange(sb.searchOption.checked && sb.editor.getSelectionRange());\n sb.$syncOptions();\n }\n }]);\nvar $closeSearchBarKb = new HashHandler([{\n bindKey: \"Esc\",\n name: \"closeSearchBar\",\n exec: function (editor) {\n editor.searchBox.hide();\n }\n }]);\nSearchBox.prototype.$searchBarKb = $searchBarKb;\nSearchBox.prototype.$closeSearchBarKb = $closeSearchBarKb;\nexports.SearchBox = SearchBox;\nexports.Search = function (editor, isReplace) {\n var sb = editor.searchBox || new SearchBox(editor);\n sb.show(editor.session.getTextRange(), isReplace);\n};\n\n}); (function() {\n ace.require([\"ace/ext/searchbox\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|flex-end|flex-start|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\";\nvar supportConstantColor = exports.supportConstantColor = \"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses = exports.pseudoClasses = \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\nvar CssHighlightRules = function () {\n var keywordMapper = this.createKeywordMapper({\n \"support.function\": supportFunction,\n \"support.constant\": supportConstant,\n \"support.type\": supportType,\n \"support.constant.color\": supportConstantColor,\n \"support.constant.fonts\": supportConstantFonts\n }, \"text\", true);\n this.$rules = {\n \"start\": [{\n include: [\"strings\", \"url\", \"comments\"]\n }, {\n token: \"paren.lparen\",\n regex: \"\\\\{\",\n next: \"ruleset\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\"\n }, {\n token: \"string\",\n regex: \"@(?!viewport)\",\n next: \"media\"\n }, {\n token: \"keyword\",\n regex: \"#[a-z0-9-_]+\"\n }, {\n token: \"keyword\",\n regex: \"%\"\n }, {\n token: \"variable\",\n regex: \"\\\\.[a-z0-9-_]+\"\n }, {\n token: \"string\",\n regex: \":[a-z0-9-_]+\"\n }, {\n token: \"constant.numeric\",\n regex: numRe\n }, {\n token: \"constant\",\n regex: \"[a-z0-9-_]+\"\n }, {\n caseInsensitive: true\n }],\n \"media\": [{\n include: [\"strings\", \"url\", \"comments\"]\n }, {\n token: \"paren.lparen\",\n regex: \"\\\\{\",\n next: \"start\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\",\n next: \"start\"\n }, {\n token: \"string\",\n regex: \";\",\n next: \"start\"\n }, {\n token: \"keyword\",\n regex: \"(?:media|supports|document|charset|import|namespace|media|supports|document\"\n + \"|page|font|keyframes|viewport|counter-style|font-feature-values\"\n + \"|swash|ornaments|annotation|stylistic|styleset|character-variant)\"\n }],\n \"comments\": [{\n token: \"comment\",\n regex: \"\\\\/\\\\*\",\n push: [{\n token: \"comment\",\n regex: \"\\\\*\\\\/\",\n next: \"pop\"\n }, {\n defaultToken: \"comment\"\n }]\n }],\n \"ruleset\": [{\n regex: \"-(webkit|ms|moz|o)-\",\n token: \"text\"\n }, {\n token: \"punctuation.operator\",\n regex: \"[:;]\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\",\n next: \"start\"\n }, {\n include: [\"strings\", \"url\", \"comments\"]\n }, {\n token: [\"constant.numeric\", \"keyword\"],\n regex: \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"\n }, {\n token: \"constant.numeric\",\n regex: numRe\n }, {\n token: \"constant.numeric\",\n regex: \"#[a-f0-9]{6}\"\n }, {\n token: \"constant.numeric\",\n regex: \"#[a-f0-9]{3}\"\n }, {\n token: [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n regex: pseudoElements\n }, {\n token: [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n regex: pseudoClasses\n }, {\n include: \"url\"\n }, {\n token: keywordMapper,\n regex: \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n }, {\n caseInsensitive: true\n }],\n url: [{\n token: \"support.function\",\n regex: \"(?:url(:?-prefix)?|domain|regexp)\\\\(\",\n push: [{\n token: \"support.function\",\n regex: \"\\\\)\",\n next: \"pop\"\n }, {\n defaultToken: \"string\"\n }]\n }],\n strings: [{\n token: \"string.start\",\n regex: \"'\",\n push: [{\n token: \"string.end\",\n regex: \"'|$\",\n next: \"pop\"\n }, {\n include: \"escapes\"\n }, {\n token: \"constant.language.escape\",\n regex: /\\\\$/,\n consumeLineEnd: true\n }, {\n defaultToken: \"string\"\n }]\n }, {\n token: \"string.start\",\n regex: '\"',\n push: [{\n token: \"string.end\",\n regex: '\"|$',\n next: \"pop\"\n }, {\n include: \"escapes\"\n }, {\n token: \"constant.language.escape\",\n regex: /\\\\$/,\n consumeLineEnd: true\n }, {\n defaultToken: \"string\"\n }]\n }],\n escapes: [{\n token: \"constant.language.escape\",\n regex: /\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/\n }]\n };\n this.normalizeRules();\n};\noop.inherits(CssHighlightRules, TextHighlightRules);\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar propertyMap = {\n \"background\": { \"#$0\": 1 },\n \"background-color\": { \"#$0\": 1, \"transparent\": 1, \"fixed\": 1 },\n \"background-image\": { \"url('/$0')\": 1 },\n \"background-repeat\": { \"repeat\": 1, \"repeat-x\": 1, \"repeat-y\": 1, \"no-repeat\": 1, \"inherit\": 1 },\n \"background-position\": { \"bottom\": 2, \"center\": 2, \"left\": 2, \"right\": 2, \"top\": 2, \"inherit\": 2 },\n \"background-attachment\": { \"scroll\": 1, \"fixed\": 1 },\n \"background-size\": { \"cover\": 1, \"contain\": 1 },\n \"background-clip\": { \"border-box\": 1, \"padding-box\": 1, \"content-box\": 1 },\n \"background-origin\": { \"border-box\": 1, \"padding-box\": 1, \"content-box\": 1 },\n \"border\": { \"solid $0\": 1, \"dashed $0\": 1, \"dotted $0\": 1, \"#$0\": 1 },\n \"border-color\": { \"#$0\": 1 },\n \"border-style\": { \"solid\": 2, \"dashed\": 2, \"dotted\": 2, \"double\": 2, \"groove\": 2, \"hidden\": 2, \"inherit\": 2, \"inset\": 2, \"none\": 2, \"outset\": 2, \"ridged\": 2 },\n \"border-collapse\": { \"collapse\": 1, \"separate\": 1 },\n \"bottom\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"clear\": { \"left\": 1, \"right\": 1, \"both\": 1, \"none\": 1 },\n \"color\": { \"#$0\": 1, \"rgb(#$00,0,0)\": 1 },\n \"cursor\": { \"default\": 1, \"pointer\": 1, \"move\": 1, \"text\": 1, \"wait\": 1, \"help\": 1, \"progress\": 1, \"n-resize\": 1, \"ne-resize\": 1, \"e-resize\": 1, \"se-resize\": 1, \"s-resize\": 1, \"sw-resize\": 1, \"w-resize\": 1, \"nw-resize\": 1 },\n \"display\": { \"none\": 1, \"block\": 1, \"inline\": 1, \"inline-block\": 1, \"table-cell\": 1 },\n \"empty-cells\": { \"show\": 1, \"hide\": 1 },\n \"float\": { \"left\": 1, \"right\": 1, \"none\": 1 },\n \"font-family\": { \"Arial\": 2, \"Comic Sans MS\": 2, \"Consolas\": 2, \"Courier New\": 2, \"Courier\": 2, \"Georgia\": 2, \"Monospace\": 2, \"Sans-Serif\": 2, \"Segoe UI\": 2, \"Tahoma\": 2, \"Times New Roman\": 2, \"Trebuchet MS\": 2, \"Verdana\": 1 },\n \"font-size\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"font-weight\": { \"bold\": 1, \"normal\": 1 },\n \"font-style\": { \"italic\": 1, \"normal\": 1 },\n \"font-variant\": { \"normal\": 1, \"small-caps\": 1 },\n \"height\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"left\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"letter-spacing\": { \"normal\": 1 },\n \"line-height\": { \"normal\": 1 },\n \"list-style-type\": { \"none\": 1, \"disc\": 1, \"circle\": 1, \"square\": 1, \"decimal\": 1, \"decimal-leading-zero\": 1, \"lower-roman\": 1, \"upper-roman\": 1, \"lower-greek\": 1, \"lower-latin\": 1, \"upper-latin\": 1, \"georgian\": 1, \"lower-alpha\": 1, \"upper-alpha\": 1 },\n \"margin\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-right\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-left\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-top\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-bottom\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"max-height\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"max-width\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"min-height\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"min-width\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"overflow\": { \"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1 },\n \"overflow-x\": { \"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1 },\n \"overflow-y\": { \"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1 },\n \"padding\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-top\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-right\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-bottom\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-left\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"page-break-after\": { \"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1 },\n \"page-break-before\": { \"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1 },\n \"position\": { \"absolute\": 1, \"relative\": 1, \"fixed\": 1, \"static\": 1 },\n \"right\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"table-layout\": { \"fixed\": 1, \"auto\": 1 },\n \"text-decoration\": { \"none\": 1, \"underline\": 1, \"line-through\": 1, \"blink\": 1 },\n \"text-align\": { \"left\": 1, \"right\": 1, \"center\": 1, \"justify\": 1 },\n \"text-transform\": { \"capitalize\": 1, \"uppercase\": 1, \"lowercase\": 1, \"none\": 1 },\n \"top\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"vertical-align\": { \"top\": 1, \"bottom\": 1 },\n \"visibility\": { \"hidden\": 1, \"visible\": 1 },\n \"white-space\": { \"nowrap\": 1, \"normal\": 1, \"pre\": 1, \"pre-line\": 1, \"pre-wrap\": 1 },\n \"width\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"word-spacing\": { \"normal\": 1 },\n \"filter\": { \"alpha(opacity=$0100)\": 1 },\n \"text-shadow\": { \"$02px 2px 2px #777\": 1 },\n \"text-overflow\": { \"ellipsis-word\": 1, \"clip\": 1, \"ellipsis\": 1 },\n \"-moz-border-radius\": 1,\n \"-moz-border-radius-topright\": 1,\n \"-moz-border-radius-bottomright\": 1,\n \"-moz-border-radius-topleft\": 1,\n \"-moz-border-radius-bottomleft\": 1,\n \"-webkit-border-radius\": 1,\n \"-webkit-border-top-right-radius\": 1,\n \"-webkit-border-top-left-radius\": 1,\n \"-webkit-border-bottom-right-radius\": 1,\n \"-webkit-border-bottom-left-radius\": 1,\n \"-moz-box-shadow\": 1,\n \"-webkit-box-shadow\": 1,\n \"transform\": { \"rotate($00deg)\": 1, \"skew($00deg)\": 1 },\n \"-moz-transform\": { \"rotate($00deg)\": 1, \"skew($00deg)\": 1 },\n \"-webkit-transform\": { \"rotate($00deg)\": 1, \"skew($00deg)\": 1 }\n};\nvar CssCompletions = function () {\n};\n(function () {\n this.completionsDefined = false;\n this.defineCompletions = function () {\n if (document) {\n var style = document.createElement('c').style;\n for (var i in style) {\n if (typeof style[i] !== 'string')\n continue;\n var name = i.replace(/[A-Z]/g, function (x) {\n return '-' + x.toLowerCase();\n });\n if (!propertyMap.hasOwnProperty(name))\n propertyMap[name] = 1;\n }\n }\n this.completionsDefined = true;\n };\n this.getCompletions = function (state, session, pos, prefix) {\n if (!this.completionsDefined) {\n this.defineCompletions();\n }\n if (state === 'ruleset' || session.$mode.$id == \"ace/mode/scss\") {\n var line = session.getLine(pos.row).substr(0, pos.column);\n var inParens = /\\([^)]*$/.test(line);\n if (inParens) {\n line = line.substr(line.lastIndexOf('(') + 1);\n }\n if (/:[^;]+$/.test(line)) {\n /([\\w\\-]+):[^:]*$/.test(line);\n return this.getPropertyValueCompletions(state, session, pos, prefix);\n }\n else {\n return this.getPropertyCompletions(state, session, pos, prefix, inParens);\n }\n }\n return [];\n };\n this.getPropertyCompletions = function (state, session, pos, prefix, skipSemicolon) {\n skipSemicolon = skipSemicolon || false;\n var properties = Object.keys(propertyMap);\n return properties.map(function (property) {\n return {\n caption: property,\n snippet: property + ': $0' + (skipSemicolon ? '' : ';'),\n meta: \"property\",\n score: 1000000\n };\n });\n };\n this.getPropertyValueCompletions = function (state, session, pos, prefix) {\n var line = session.getLine(pos.row).substr(0, pos.column);\n var property = (/([\\w\\-]+):[^:]*$/.exec(line) || {})[1];\n if (!property)\n return [];\n var values = [];\n if (property in propertyMap && typeof propertyMap[property] === \"object\") {\n values = Object.keys(propertyMap[property]);\n }\n return values.map(function (value) {\n return {\n caption: value,\n snippet: value,\n meta: \"property value\",\n score: 1000000\n };\n });\n };\n}).call(CssCompletions.prototype);\nexports.CssCompletions = CssCompletions;\n\n});\n\nace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar CstyleBehaviour = require(\"./cstyle\").CstyleBehaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar CssBehaviour = function () {\n this.inherit(CstyleBehaviour);\n this.add(\"colon\", \"insertion\", function (state, action, editor, session, text) {\n if (text === ':' && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.value.match(/\\s+/)) {\n token = iterator.stepBackward();\n }\n if (token && token.type === 'support.type') {\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === ':') {\n return {\n text: '',\n selection: [1, 1]\n };\n }\n if (/^(\\s+[^;]|\\s*$)/.test(line.substring(cursor.column))) {\n return {\n text: ':;',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"colon\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected === ':') {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.value.match(/\\s+/)) {\n token = iterator.stepBackward();\n }\n if (token && token.type === 'support.type') {\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar === ';') {\n range.end.column++;\n return range;\n }\n }\n }\n });\n this.add(\"semicolon\", \"insertion\", function (state, action, editor, session, text) {\n if (text === ';' && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === ';') {\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"!important\", \"insertion\", function (state, action, editor, session, text) {\n if (text === '!' && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (/^\\s*(;|}|$)/.test(line.substring(cursor.column))) {\n return {\n text: '!important',\n selection: [10, 10]\n };\n }\n }\n });\n};\noop.inherits(CssBehaviour, CstyleBehaviour);\nexports.CssBehaviour = CssBehaviour;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CssCompletions = require(\"./css_completions\").CssCompletions;\nvar CssBehaviour = require(\"./behaviour/css\").CssBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = CssHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CssBehaviour();\n this.$completer = new CssCompletions();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.foldingRules = \"cStyle\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n var match = line.match(/^.*\\{\\s*$/);\n if (match) {\n indent += tab;\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.getCompletions = function (state, session, pos, prefix) {\n return this.$completer.getCompletions(state, session, pos, prefix);\n };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/css_worker\", \"Worker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"annotate\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/css\";\n this.snippetFileId = \"ace/snippets/css\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/css\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar DocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n }, DocCommentHighlightRules.getTagRule(), {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ]\n };\n};\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\nDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/golang_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar GolangHighlightRules = function () {\n var keywords = (\"else|break|case|return|goto|if|const|select|\" +\n \"continue|struct|default|switch|for|range|\" +\n \"func|import|package|chan|defer|fallthrough|go|interface|map|range|\" +\n \"select|type|var\");\n var builtinTypes = (\"string|uint8|uint16|uint32|uint64|int8|int16|int32|int64|float32|\" +\n \"float64|complex64|complex128|byte|rune|uint|int|uintptr|bool|error\");\n var builtinFunctions = (\"new|close|cap|copy|panic|panicln|print|println|len|make|delete|real|recover|imag|append\");\n var builtinConstants = (\"nil|true|false|iota\");\n var keywordMapper = this.createKeywordMapper({\n \"keyword\": keywords,\n \"constant.language\": builtinConstants,\n \"support.function\": builtinFunctions,\n \"support.type\": builtinTypes\n }, \"\");\n var stringEscapeRe = \"\\\\\\\\(?:[0-7]{3}|x\\\\h{2}|u{4}|U\\\\h{6}|[abfnrtv'\\\"\\\\\\\\])\".replace(/\\\\h/g, \"[a-fA-F\\\\d]\");\n this.$rules = {\n \"start\": [\n {\n token: \"comment\",\n regex: \"\\\\/\\\\/.*$\"\n },\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n {\n token: \"comment.start\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"string\",\n regex: /\"(?:[^\"\\\\]|\\\\.)*?\"/\n }, {\n token: \"string\",\n regex: '`',\n next: \"bqstring\"\n }, {\n token: \"constant.numeric\",\n regex: \"'(?:[^\\\\'\\uD800-\\uDBFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|\" + stringEscapeRe.replace('\"', '') + \")'\"\n }, {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token: [\"keyword\", \"text\", \"entity.name.function\"],\n regex: \"(func)(\\\\s+)([a-zA-Z_$][a-zA-Z0-9_$]*)\\\\b\"\n }, {\n token: function (val) {\n if (val[val.length - 1] == \"(\") {\n return [{\n type: keywordMapper(val.slice(0, -1)) || \"support.function\",\n value: val.slice(0, -1)\n }, {\n type: \"paren.lparen\",\n value: val.slice(-1)\n }];\n }\n return keywordMapper(val) || \"identifier\";\n },\n regex: \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\\\\(?\"\n }, {\n token: \"keyword.operator\",\n regex: \"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=\"\n }, {\n token: \"punctuation.operator\",\n regex: \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}]\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"comment\": [\n {\n token: \"comment.end\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ],\n \"bqstring\": [\n {\n token: \"string\",\n regex: '`',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }\n ]\n };\n this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"start\")]);\n};\noop.inherits(GolangHighlightRules, TextHighlightRules);\nexports.GolangHighlightRules = GolangHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/golang\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/golang_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar GolangHighlightRules = require(\"./golang_highlight_rules\").GolangHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = GolangHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.foldingRules = new CStyleFoldMode();\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n var endState = tokenizedLine.state;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n }; //end getNextLineIndent\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.$id = \"ace/mode/golang\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/golang\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/jsdoc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JsDocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: [\"comment.doc.tag\", \"comment.doc.text\", \"lparen.doc\"],\n regex: \"(@(?:param|member|typedef|property|namespace|var|const|callback))(\\\\s*)({)\",\n push: [\n {\n token: \"lparen.doc\",\n regex: \"{\",\n push: [\n {\n include: \"doc-syntax\"\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }\n ]\n }, {\n token: [\"rparen.doc\", \"text.doc\", \"variable.parameter.doc\", \"lparen.doc\", \"variable.parameter.doc\", \"rparen.doc\"],\n regex: /(})(\\s*)(?:([\\w=:\\/\\.]+)|(?:(\\[)([\\w=:\\/\\.]+)(\\])))/,\n next: \"pop\"\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }, {\n include: \"doc-syntax\"\n }, {\n defaultToken: \"text.doc\"\n }\n ]\n }, {\n token: [\"comment.doc.tag\", \"text.doc\", \"lparen.doc\"],\n regex: \"(@(?:returns?|yields|type|this|suppress|public|protected|private|package|modifies|\"\n + \"implements|external|exception|throws|enum|define|extends))(\\\\s*)({)\",\n push: [\n {\n token: \"lparen.doc\",\n regex: \"{\",\n push: [\n {\n include: \"doc-syntax\"\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }\n ]\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }, {\n include: \"doc-syntax\"\n }, {\n defaultToken: \"text.doc\"\n }\n ]\n }, {\n token: [\"comment.doc.tag\", \"text.doc\", \"variable.parameter.doc\"],\n regex: \"(@(?:alias|memberof|instance|module|name|lends|namespace|external|this|template|\"\n + \"requires|param|implements|function|extends|typedef|mixes|constructor|var|\"\n + \"memberof\\\\!|event|listens|exports|class|constructs|interface|emits|fires|\"\n + \"throws|const|callback|borrows|augments))(\\\\s+)(\\\\w[\\\\w#\\.:\\/~\\\"\\\\-]*)?\"\n }, {\n token: [\"comment.doc.tag\", \"text.doc\", \"variable.parameter.doc\"],\n regex: \"(@method)(\\\\s+)(\\\\w[\\\\w\\.\\\\(\\\\)]*)\"\n }, {\n token: \"comment.doc.tag\",\n regex: \"@access\\\\s+(?:private|public|protected)\"\n }, {\n token: \"comment.doc.tag\",\n regex: \"@kind\\\\s+(?:class|constant|event|external|file|function|member|mixin|module|namespace|typedef)\"\n }, {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n },\n JsDocCommentHighlightRules.getTagRule(),\n {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ],\n \"doc-syntax\": [{\n token: \"operator.doc\",\n regex: /[|:]/\n }, {\n token: \"paren.doc\",\n regex: /[\\[\\]]/\n }]\n };\n this.normalizeRules();\n};\noop.inherits(JsDocCommentHighlightRules, TextHighlightRules);\nJsDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nJsDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nJsDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.JsDocCommentHighlightRules = JsDocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/jsdoc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./jsdoc_comment_highlight_rules\").JsDocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\nvar JavaScriptHighlightRules = function (options) {\n var keywordMapper = this.createKeywordMapper({\n \"variable.language\": \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|\" + // Constructors\n \"Namespace|QName|XML|XMLList|\" + // E4X\n \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\" +\n \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\" +\n \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\" + // Errors\n \"SyntaxError|TypeError|URIError|\" +\n \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n \"isNaN|parseFloat|parseInt|\" +\n \"JSON|Math|\" + // Other\n \"this|arguments|prototype|window|document\",\n \"keyword\": \"const|yield|import|get|set|async|await|\" +\n \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static|constructor\",\n \"storage.type\": \"const|let|var|function\",\n \"constant.language\": \"null|Infinity|NaN|undefined\",\n \"support.function\": \"alert\",\n \"constant.language.boolean\": \"true|false\"\n }, \"identifier\");\n var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n \"u[0-9a-fA-F]{4}|\" + // unicode\n \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n \"[0-2][0-7]{0,2}|\" + // oct\n \"3[0-7][0-7]?|\" + // oct\n \"[4-7][0-7]?|\" + //oct\n \".)\";\n this.$rules = {\n \"no_regex\": [\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n comments(\"no_regex\"),\n {\n token: \"string\",\n regex: \"'(?=.)\",\n next: \"qstring\"\n }, {\n token: \"string\",\n regex: '\"(?=.)',\n next: \"qqstring\"\n }, {\n token: \"constant.numeric\",\n regex: /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/\n }, {\n token: \"constant.numeric\",\n regex: /(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"support.function\",\n \"punctuation.operator\", \"entity.name.function\", \"text\", \"keyword.operator\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)\",\n next: \"function_arguments\"\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\",\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex: \"(function\\\\*?)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"entity.name.function\", \"text\", \"punctuation.operator\",\n \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex: \"(:)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: \"keyword\",\n regex: \"from(?=\\\\s*('|\\\"))\"\n }, {\n token: \"keyword\",\n regex: \"(?:\" + kwBeforeRe + \")\\\\b\",\n next: \"start\"\n }, {\n token: \"support.constant\",\n regex: /that\\b/\n }, {\n token: [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n regex: /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n }, {\n token: keywordMapper,\n regex: identifierRe\n }, {\n token: \"punctuation.operator\",\n regex: /[.](?![.])/,\n next: \"property\"\n }, {\n token: \"storage.type\",\n regex: /=>/,\n next: \"start\"\n }, {\n token: \"keyword.operator\",\n regex: /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n next: \"start\"\n }, {\n token: \"punctuation.operator\",\n regex: /[?:,;.]/,\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: /[\\[({]/,\n next: \"start\"\n }, {\n token: \"paren.rparen\",\n regex: /[\\])}]/\n }, {\n token: \"comment\",\n regex: /^#!.*$/\n }\n ],\n property: [{\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\",\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: \"punctuation.operator\",\n regex: /[.](?![.])/\n }, {\n token: \"support.function\",\n regex: /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|lter|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward|rEach)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n }, {\n token: \"support.function.dom\",\n regex: /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n }, {\n token: \"support.constant\",\n regex: /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n }, {\n token: \"identifier\",\n regex: identifierRe\n }, {\n regex: \"\",\n token: \"empty\",\n next: \"no_regex\"\n }\n ],\n \"start\": [\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n comments(\"start\"),\n {\n token: \"string.regexp\",\n regex: \"\\\\/\",\n next: \"regex\"\n }, {\n token: \"text\",\n regex: \"\\\\s+|^$\",\n next: \"start\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"regex\": [\n {\n token: \"regexp.keyword.operator\",\n regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n }, {\n token: \"string.regexp\",\n regex: \"/[sxngimy]*\",\n next: \"no_regex\"\n }, {\n token: \"invalid\",\n regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n }, {\n token: \"constant.language.escape\",\n regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n }, {\n token: \"constant.language.delimiter\",\n regex: /\\|/\n }, {\n token: \"constant.language.escape\",\n regex: /\\[\\^?/,\n next: \"regex_character_class\"\n }, {\n token: \"empty\",\n regex: \"$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string.regexp\"\n }\n ],\n \"regex_character_class\": [\n {\n token: \"regexp.charclass.keyword.operator\",\n regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n }, {\n token: \"constant.language.escape\",\n regex: \"]\",\n next: \"regex\"\n }, {\n token: \"constant.language.escape\",\n regex: \"-\"\n }, {\n token: \"empty\",\n regex: \"$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string.regexp.charachterclass\"\n }\n ],\n \"default_parameter\": [\n {\n token: \"string\",\n regex: \"'(?=.)\",\n push: [\n {\n token: \"string\",\n regex: \"'|$\",\n next: \"pop\"\n }, {\n include: \"qstring\"\n }\n ]\n }, {\n token: \"string\",\n regex: '\"(?=.)',\n push: [\n {\n token: \"string\",\n regex: '\"|$',\n next: \"pop\"\n }, {\n include: \"qqstring\"\n }\n ]\n }, {\n token: \"constant.language\",\n regex: \"null|Infinity|NaN|undefined\"\n }, {\n token: \"constant.numeric\",\n regex: /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/\n }, {\n token: \"constant.numeric\",\n regex: /(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/\n }, {\n token: \"punctuation.operator\",\n regex: \",\",\n next: \"function_arguments\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n token: \"punctuation.operator\",\n regex: \"$\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"function_arguments\": [\n comments(\"function_arguments\"),\n {\n token: \"variable.parameter\",\n regex: identifierRe\n }, {\n token: \"punctuation.operator\",\n regex: \",\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n token: \"punctuation.operator\",\n regex: \"$\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"qqstring\": [\n {\n token: \"constant.language.escape\",\n regex: escapedRe\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n consumeLineEnd: true\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"no_regex\"\n }, {\n defaultToken: \"string\"\n }\n ],\n \"qstring\": [\n {\n token: \"constant.language.escape\",\n regex: escapedRe\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n consumeLineEnd: true\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string\"\n }\n ]\n };\n if (!options || !options.noES6) {\n this.$rules.no_regex.unshift({\n regex: \"[{}]\", onMatch: function (val, state, stack) {\n this.next = val == \"{\" ? this.nextState : \"\";\n if (val == \"{\" && stack.length) {\n stack.unshift(\"start\", state);\n }\n else if (val == \"}\" && stack.length) {\n stack.shift();\n this.next = stack.shift();\n if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n return \"paren.quasi.end\";\n }\n return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n },\n nextState: \"start\"\n }, {\n token: \"string.quasi.start\",\n regex: /`/,\n push: [{\n token: \"constant.language.escape\",\n regex: escapedRe\n }, {\n token: \"paren.quasi.start\",\n regex: /\\${/,\n push: \"start\"\n }, {\n token: \"string.quasi.end\",\n regex: /`/,\n next: \"pop\"\n }, {\n defaultToken: \"string.quasi\"\n }]\n }, {\n token: [\"variable.parameter\", \"text\"],\n regex: \"(\" + identifierRe + \")(\\\\s*)(?=\\\\=>)\"\n }, {\n token: \"paren.lparen\",\n regex: \"(\\\\()(?=.+\\\\s*=>)\",\n next: \"function_arguments\"\n }, {\n token: \"variable.language\",\n regex: \"(?:(?:(?:Weak)?(?:Set|Map))|Promise)\\\\b\"\n });\n this.$rules[\"function_arguments\"].unshift({\n token: \"keyword.operator\",\n regex: \"=\",\n next: \"default_parameter\"\n }, {\n token: \"keyword.operator\",\n regex: \"\\\\.{3}\"\n });\n this.$rules[\"property\"].unshift({\n token: \"support.function\",\n regex: \"(findIndex|repeat|startsWith|endsWith|includes|isSafeInteger|trunc|cbrt|log2|log10|sign|then|catch|\"\n + \"finally|resolve|reject|race|any|all|allSettled|keys|entries|isInteger)\\\\b(?=\\\\()\"\n }, {\n token: \"constant.language\",\n regex: \"(?:MAX_SAFE_INTEGER|MIN_SAFE_INTEGER|EPSILON)\\\\b\"\n });\n if (!options || options.jsx != false)\n JSX.call(this);\n }\n this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"no_regex\")]);\n this.normalizeRules();\n};\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\nfunction JSX() {\n var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n var jsxTag = {\n onMatch: function (val, state, stack) {\n var offset = val.charAt(1) == \"/\" ? 2 : 1;\n if (offset == 1) {\n if (state != this.nextState)\n stack.unshift(this.next, this.nextState, 0);\n else\n stack.unshift(this.next);\n stack[2]++;\n }\n else if (offset == 2) {\n if (state == this.nextState) {\n stack[1]--;\n if (!stack[1] || stack[1] < 0) {\n stack.shift();\n stack.shift();\n }\n }\n }\n return [{\n type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n value: val.slice(0, offset)\n }, {\n type: \"meta.tag.tag-name.xml\",\n value: val.substr(offset)\n }];\n },\n regex: \"\",\n onMatch: function (value, currentState, stack) {\n if (currentState == stack[0])\n stack.shift();\n if (value.length == 2) {\n if (stack[0] == this.nextState)\n stack[1]--;\n if (!stack[1] || stack[1] < 0) {\n stack.splice(0, 2);\n }\n }\n this.next = stack[0] || \"start\";\n return [{ type: this.token, value: value }];\n },\n nextState: \"jsx\"\n },\n jsxJsRule,\n comments(\"jsxAttributes\"),\n {\n token: \"entity.other.attribute-name.xml\",\n regex: tagRegex\n }, {\n token: \"keyword.operator.attribute-equals.xml\",\n regex: \"=\"\n }, {\n token: \"text.tag-whitespace.xml\",\n regex: \"\\\\s+\"\n }, {\n token: \"string.attribute-value.xml\",\n regex: \"'\",\n stateName: \"jsx_attr_q\",\n push: [\n { token: \"string.attribute-value.xml\", regex: \"'\", next: \"pop\" },\n { include: \"reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }, {\n token: \"string.attribute-value.xml\",\n regex: '\"',\n stateName: \"jsx_attr_qq\",\n push: [\n { token: \"string.attribute-value.xml\", regex: '\"', next: \"pop\" },\n { include: \"reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n },\n jsxTag\n ];\n this.$rules.reference = [{\n token: \"constant.language.escape.reference.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }];\n}\nfunction comments(next) {\n return [\n {\n token: \"comment\",\n regex: /\\/\\*/,\n next: [\n DocCommentHighlightRules.getTagRule(),\n { token: \"comment\", regex: \"\\\\*\\\\/\", next: next || \"pop\" },\n { defaultToken: \"comment\", caseInsensitive: true }\n ]\n }, {\n token: \"comment\",\n regex: \"\\\\/\\\\/\",\n next: [\n DocCommentHighlightRules.getTagRule(),\n { token: \"comment\", regex: \"$|^\", next: next || \"pop\" },\n { defaultToken: \"comment\", caseInsensitive: true }\n ]\n }\n ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = JavaScriptHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CstyleBehaviour();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.$quotes = { '\"': '\"', \"'\": \"'\", \"`\": \"`\" };\n this.$pairQuotesAfter = {\n \"`\": /\\w/\n };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n var endState = tokenizedLine.state;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\" || state == \"no_regex\") {\n var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n else if (state == \"doc-start\") {\n if (endState == \"start\" || endState == \"no_regex\") {\n return \"\";\n }\n var match = line.match(/^\\s*(\\/?)\\*/);\n if (match) {\n if (match[1]) {\n indent += \" \";\n }\n indent += \"* \";\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"annotate\", function (results) {\n session.setAnnotations(results.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/javascript\";\n this.snippetFileId = \"ace/snippets/javascript\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/javascript\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/json_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JsonHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"variable\",\n regex: '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]\\\\s*(?=:)'\n }, {\n token: \"string\",\n regex: '\"',\n next: \"string\"\n }, {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token: \"constant.language.boolean\",\n regex: \"(?:true|false)\\\\b\"\n }, {\n token: \"text\",\n regex: \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token: \"comment\",\n regex: \"\\\\/\\\\/.*$\"\n }, {\n token: \"comment.start\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}]\"\n }, {\n token: \"punctuation.operator\",\n regex: /[,]/\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"string\": [\n {\n token: \"constant.language.escape\",\n regex: /\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[\"\\\\\\/bfnrt])/\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }\n ],\n \"comment\": [\n {\n token: \"comment.end\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ]\n };\n};\noop.inherits(JsonHighlightRules, TextHighlightRules);\nexports.JsonHighlightRules = JsonHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/json\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/json_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\",\"ace/worker/worker_client\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar HighlightRules = require(\"./json_highlight_rules\").JsonHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar Mode = function () {\n this.HighlightRules = HighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = this.$defaultBehaviour;\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/json_worker\", \"JsonWorker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"annotate\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/json\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/json\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar DocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n }, DocCommentHighlightRules.getTagRule(), {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ]\n };\n};\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\nDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/jsx_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JsxHighlightRules = function () {\n var keywords = lang.arrayToMap((\"break|do|instanceof|typeof|case|else|new|var|catch|finally|return|void|continue|for|switch|default|while|function|this|\" +\n \"if|throw|\" +\n \"delete|in|try|\" +\n \"class|extends|super|import|from|into|implements|interface|static|mixin|override|abstract|final|\" +\n \"number|int|string|boolean|variant|\" +\n \"log|assert\").split(\"|\"));\n var buildinConstants = lang.arrayToMap((\"null|true|false|NaN|Infinity|__FILE__|__LINE__|undefined\").split(\"|\"));\n var reserved = lang.arrayToMap((\"debugger|with|\" +\n \"const|export|\" +\n \"let|private|public|yield|protected|\" +\n \"extern|native|as|operator|__fake__|__readonly__\").split(\"|\"));\n var identifierRe = \"[a-zA-Z_][a-zA-Z0-9_]*\\\\b\";\n this.$rules = {\n \"start\": [\n {\n token: \"comment\",\n regex: \"\\\\/\\\\/.*$\"\n },\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n {\n token: \"comment\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"string.regexp\",\n regex: \"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"\n }, {\n token: \"string\",\n regex: '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n }, {\n token: \"string\",\n regex: \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token: \"constant.language.boolean\",\n regex: \"(?:true|false)\\\\b\"\n }, {\n token: [\n \"storage.type\",\n \"text\",\n \"entity.name.function\"\n ],\n regex: \"(function)(\\\\s+)(\" + identifierRe + \")\"\n }, {\n token: function (value) {\n if (value == \"this\")\n return \"variable.language\";\n else if (value == \"function\")\n return \"storage.type\";\n else if (keywords.hasOwnProperty(value) || reserved.hasOwnProperty(value))\n return \"keyword\";\n else if (buildinConstants.hasOwnProperty(value))\n return \"constant.language\";\n else if (/^_?[A-Z][a-zA-Z0-9_]*$/.test(value))\n return \"language.support.class\";\n else\n return \"identifier\";\n },\n regex: identifierRe\n }, {\n token: \"keyword.operator\",\n regex: \"!|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"\n }, {\n token: \"punctuation.operator\",\n regex: \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({<]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}>]\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"comment\": [\n {\n token: \"comment\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ]\n };\n this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"start\")]);\n};\noop.inherits(JsxHighlightRules, TextHighlightRules);\nexports.JsxHighlightRules = JsxHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/jsx\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/jsx_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JsxHighlightRules = require(\"./jsx_highlight_rules\").JsxHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nfunction Mode() {\n this.HighlightRules = JsxHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = this.$defaultBehaviour;\n this.foldingRules = new CStyleFoldMode();\n}\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.$id = \"ace/mode/jsx\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/jsx\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/python_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){/*\n * TODO: python delimiters\n */\n\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar PythonHighlightRules = function () {\n var keywords = (\"and|as|assert|break|class|continue|def|del|elif|else|except|exec|\" +\n \"finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|\" +\n \"raise|return|try|while|with|yield|async|await|nonlocal\");\n var builtinConstants = (\"True|False|None|NotImplemented|Ellipsis|__debug__\");\n var builtinFunctions = (\"abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|\" +\n \"eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|\" +\n \"binfile|bin|iter|property|tuple|bool|filter|len|range|type|bytearray|\" +\n \"float|list|raw_input|unichr|callable|format|locals|reduce|unicode|\" +\n \"chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|\" +\n \"cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|\" +\n \"__import__|complex|hash|min|apply|delattr|help|next|setattr|set|\" +\n \"buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern|\" +\n \"ascii|breakpoint|bytes\");\n var keywordMapper = this.createKeywordMapper({\n \"invalid.deprecated\": \"debugger\",\n \"support.function\": builtinFunctions,\n \"variable.language\": \"self|cls\",\n \"constant.language\": builtinConstants,\n \"keyword\": keywords\n }, \"identifier\");\n var strPre = \"[uU]?\";\n var strRawPre = \"[rR]\";\n var strFormatPre = \"[fF]\";\n var strRawFormatPre = \"(?:[rR][fF]|[fF][rR])\";\n var decimalInteger = \"(?:(?:[1-9]\\\\d*)|(?:0))\";\n var octInteger = \"(?:0[oO]?[0-7]+)\";\n var hexInteger = \"(?:0[xX][\\\\dA-Fa-f]+)\";\n var binInteger = \"(?:0[bB][01]+)\";\n var integer = \"(?:\" + decimalInteger + \"|\" + octInteger + \"|\" + hexInteger + \"|\" + binInteger + \")\";\n var exponent = \"(?:[eE][+-]?\\\\d+)\";\n var fraction = \"(?:\\\\.\\\\d+)\";\n var intPart = \"(?:\\\\d+)\";\n var pointFloat = \"(?:(?:\" + intPart + \"?\" + fraction + \")|(?:\" + intPart + \"\\\\.))\";\n var exponentFloat = \"(?:(?:\" + pointFloat + \"|\" + intPart + \")\" + exponent + \")\";\n var floatNumber = \"(?:\" + exponentFloat + \"|\" + pointFloat + \")\";\n var stringEscape = \"\\\\\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\\\\\abfnrtv'\\\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})\";\n this.$rules = {\n \"start\": [{\n token: \"comment\",\n regex: \"#.*$\"\n }, {\n token: \"string\",\n regex: strPre + '\"{3}',\n next: \"qqstring3\"\n }, {\n token: \"string\",\n regex: strPre + '\"(?=.)',\n next: \"qqstring\"\n }, {\n token: \"string\",\n regex: strPre + \"'{3}\",\n next: \"qstring3\"\n }, {\n token: \"string\",\n regex: strPre + \"'(?=.)\",\n next: \"qstring\"\n }, {\n token: \"string\",\n regex: strRawPre + '\"{3}',\n next: \"rawqqstring3\"\n }, {\n token: \"string\",\n regex: strRawPre + '\"(?=.)',\n next: \"rawqqstring\"\n }, {\n token: \"string\",\n regex: strRawPre + \"'{3}\",\n next: \"rawqstring3\"\n }, {\n token: \"string\",\n regex: strRawPre + \"'(?=.)\",\n next: \"rawqstring\"\n }, {\n token: \"string\",\n regex: strFormatPre + '\"{3}',\n next: \"fqqstring3\"\n }, {\n token: \"string\",\n regex: strFormatPre + '\"(?=.)',\n next: \"fqqstring\"\n }, {\n token: \"string\",\n regex: strFormatPre + \"'{3}\",\n next: \"fqstring3\"\n }, {\n token: \"string\",\n regex: strFormatPre + \"'(?=.)\",\n next: \"fqstring\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + '\"{3}',\n next: \"rfqqstring3\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + '\"(?=.)',\n next: \"rfqqstring\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + \"'{3}\",\n next: \"rfqstring3\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + \"'(?=.)\",\n next: \"rfqstring\"\n }, {\n token: \"keyword.operator\",\n regex: \"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|%|@|<<|>>|&|\\\\||\\\\^|~|<|>|<=|=>|==|!=|<>|=\"\n }, {\n token: \"punctuation\",\n regex: \",|:|;|\\\\->|\\\\+=|\\\\-=|\\\\*=|\\\\/=|\\\\/\\\\/=|%=|@=|&=|\\\\|=|^=|>>=|<<=|\\\\*\\\\*=\"\n }, {\n token: \"paren.lparen\",\n regex: \"[\\\\[\\\\(\\\\{]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\]\\\\)\\\\}]\"\n }, {\n token: [\"keyword\", \"text\", \"entity.name.function\"],\n regex: \"(def|class)(\\\\s+)([\\\\u00BF-\\\\u1FFF\\\\u2C00-\\\\uD7FF\\\\w]+)\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n include: \"constants\"\n }],\n \"qqstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"qstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"qqstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"qqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"qstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"qstring\"\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqqstring3\": [{\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqstring3\": [{\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqqstring\": [{\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"rawqqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqstring\": [{\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"rawqstring\"\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqqstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqqstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"fqqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqqstring3\": [{\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqstring3\": [{\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqqstring\": [{\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"rfqqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqstring\": [{\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqstringParRules\": [{\n token: \"paren.lparen\",\n regex: \"[\\\\[\\\\(]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\]\\\\)]\"\n }, {\n token: \"string\",\n regex: \"\\\\s+\"\n }, {\n token: \"string\",\n regex: \"'[^']*'\"\n }, {\n token: \"string\",\n regex: '\"[^\"]*\"'\n }, {\n token: \"function.support\",\n regex: \"(!s|!r|!a)\"\n }, {\n include: \"constants\"\n }, {\n token: 'paren.rparen',\n regex: \"}\",\n next: 'pop'\n }, {\n token: 'paren.lparen',\n regex: \"{\",\n push: \"fqstringParRules\"\n }],\n \"constants\": [{\n token: \"constant.numeric\",\n regex: \"(?:\" + floatNumber + \"|\\\\d+)[jJ]\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: floatNumber\n }, {\n token: \"constant.numeric\",\n regex: integer + \"[lL]\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: integer + \"\\\\b\"\n }, {\n token: [\"punctuation\", \"function.support\"],\n regex: \"(\\\\.)([a-zA-Z_]+)\\\\b\"\n }, {\n token: keywordMapper,\n regex: \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n }]\n };\n this.normalizeRules();\n};\noop.inherits(PythonHighlightRules, TextHighlightRules);\nexports.PythonHighlightRules = PythonHighlightRules;\n\n});\n\nace.define(\"ace/mode/folding/pythonic\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (markers) {\n this.foldingStartMarker = new RegExp(\"([\\\\[{])(?:\\\\s*)$|(\" + markers + \")(?:\\\\s*)(?:#.*)?$\");\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n var line = session.getLine(row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, match.index);\n if (match[2])\n return this.indentationBlock(session, row, match.index + match[2].length);\n return this.indentationBlock(session, row);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/python\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/python_highlight_rules\",\"ace/mode/folding/pythonic\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar PythonHighlightRules = require(\"./python_highlight_rules\").PythonHighlightRules;\nvar PythonFoldMode = require(\"./folding/pythonic\").FoldMode;\nvar Range = require(\"../range\").Range;\nvar Mode = function () {\n this.HighlightRules = PythonHighlightRules;\n this.foldingRules = new PythonFoldMode(\"\\\\:\");\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"#\";\n this.$pairQuotesAfter = {\n \"'\": /[ruf]/i,\n '\"': /[ruf]/i\n };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[:]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n };\n var outdents = {\n \"pass\": 1,\n \"return\": 1,\n \"raise\": 1,\n \"break\": 1,\n \"continue\": 1\n };\n this.checkOutdent = function (state, line, input) {\n if (input !== \"\\r\\n\" && input !== \"\\r\" && input !== \"\\n\")\n return false;\n var tokens = this.getTokenizer().getLineTokens(line.trim(), state).tokens;\n if (!tokens)\n return false;\n do {\n var last = tokens.pop();\n } while (last && (last.type == \"comment\" || (last.type == \"text\" && last.value.match(/^\\s+$/))));\n if (!last)\n return false;\n return (last.type == \"keyword\" && outdents[last.value]);\n };\n this.autoOutdent = function (state, doc, row) {\n row += 1;\n var indent = this.$getIndent(doc.getLine(row));\n var tab = doc.getTabString();\n if (indent.slice(-tab.length) == tab)\n doc.remove(new Range(row, indent.length - tab.length, row, indent.length));\n };\n this.$id = \"ace/mode/python\";\n this.snippetFileId = \"ace/snippets/python\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/python\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar XmlHighlightRules = function (normalize) {\n var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n this.$rules = {\n start: [\n { token: \"string.cdata.xml\", regex: \"<\\\\!\\\\[CDATA\\\\[\", next: \"cdata\" },\n {\n token: [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n regex: \"(<\\\\?)(\" + tagRegex + \")\", next: \"processing_instruction\"\n },\n { token: \"comment.start.xml\", regex: \"<\\\\!--\", next: \"comment\" },\n {\n token: [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n regex: \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next: \"doctype\", caseInsensitive: true\n },\n { include: \"tag\" },\n { token: \"text.end-tag-open.xml\", regex: \"\",\n next: \"start\"\n }],\n doctype: [\n { include: \"whitespace\" },\n { include: \"string\" },\n { token: \"xml-pe.doctype.xml\", regex: \">\", next: \"start\" },\n { token: \"xml-pe.xml\", regex: \"[-_a-zA-Z0-9:]+\" },\n { token: \"punctuation.int-subset\", regex: \"\\\\[\", push: \"int_subset\" }\n ],\n int_subset: [{\n token: \"text.xml\",\n regex: \"\\\\s+\"\n }, {\n token: \"punctuation.int-subset.xml\",\n regex: \"]\",\n next: \"pop\"\n }, {\n token: [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n regex: \"(<\\\\!)(\" + tagRegex + \")\",\n push: [{\n token: \"text\",\n regex: \"\\\\s+\"\n },\n {\n token: \"punctuation.markup-decl.xml\",\n regex: \">\",\n next: \"pop\"\n },\n { include: \"string\" }]\n }],\n cdata: [\n { token: \"string.cdata.xml\", regex: \"\\\\]\\\\]>\", next: \"start\" },\n { token: \"text.xml\", regex: \"\\\\s+\" },\n { token: \"text.xml\", regex: \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\" }\n ],\n comment: [\n { token: \"comment.end.xml\", regex: \"-->\", next: \"start\" },\n { defaultToken: \"comment.xml\" }\n ],\n reference: [{\n token: \"constant.language.escape.reference.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }],\n attr_reference: [{\n token: \"constant.language.escape.reference.attribute-value.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }],\n tag: [{\n token: [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n regex: \"(?:(<)|(\", next: \"start\" }\n ]\n }],\n tag_whitespace: [\n { token: \"text.tag-whitespace.xml\", regex: \"\\\\s+\" }\n ],\n whitespace: [\n { token: \"text.whitespace.xml\", regex: \"\\\\s+\" }\n ],\n string: [{\n token: \"string.xml\",\n regex: \"'\",\n push: [\n { token: \"string.xml\", regex: \"'\", next: \"pop\" },\n { defaultToken: \"string.xml\" }\n ]\n }, {\n token: \"string.xml\",\n regex: '\"',\n push: [\n { token: \"string.xml\", regex: '\"', next: \"pop\" },\n { defaultToken: \"string.xml\" }\n ]\n }],\n attributes: [{\n token: \"entity.other.attribute-name.xml\",\n regex: tagRegex\n }, {\n token: \"keyword.operator.attribute-equals.xml\",\n regex: \"=\"\n }, {\n include: \"tag_whitespace\"\n }, {\n include: \"attribute_value\"\n }],\n attribute_value: [{\n token: \"string.attribute-value.xml\",\n regex: \"'\",\n push: [\n { token: \"string.attribute-value.xml\", regex: \"'\", next: \"pop\" },\n { include: \"attr_reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }, {\n token: \"string.attribute-value.xml\",\n regex: '\"',\n push: [\n { token: \"string.attribute-value.xml\", regex: '\"', next: \"pop\" },\n { include: \"attr_reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }]\n };\n if (this.constructor === XmlHighlightRules)\n this.normalizeRules();\n};\n(function () {\n this.embedTagRules = function (HighlightRules, prefix, tag) {\n this.$rules.tag.unshift({\n token: [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n regex: \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n next: [\n { include: \"attributes\" },\n { token: \"meta.tag.punctuation.tag-close.xml\", regex: \"/?>\", next: prefix + \"start\" }\n ]\n });\n this.$rules[tag + \"-end\"] = [\n { include: \"attributes\" },\n { token: \"meta.tag.punctuation.tag-close.xml\", regex: \"/?>\", next: \"start\",\n onMatch: function (value, currentState, stack) {\n stack.splice(0);\n return this.token;\n } }\n ];\n this.embedRules(HighlightRules, prefix, [{\n token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n regex: \"(|$))\",\n next: tag + \"-end\"\n }, {\n token: \"string.cdata.xml\",\n regex: \"<\\\\!\\\\[CDATA\\\\[\"\n }, {\n token: \"string.cdata.xml\",\n regex: \"\\\\]\\\\]>\"\n }]);\n };\n}).call(TextHighlightRules.prototype);\noop.inherits(XmlHighlightRules, TextHighlightRules);\nexports.XmlHighlightRules = XmlHighlightRules;\n\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\nfunction is(token, type) {\n return token && token.type.lastIndexOf(type + \".xml\") > -1;\n}\nvar XmlBehaviour = function () {\n this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '\"' || text == \"'\") {\n var quote = text;\n var selected = session.doc.getTextRange(editor.getSelectionRange());\n if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n return {\n text: quote + selected + quote,\n selection: false\n };\n }\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n return {\n text: \"\",\n selection: [1, 1]\n };\n }\n if (!token)\n token = iterator.stepBackward();\n if (!token)\n return;\n while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n token = iterator.stepBackward();\n }\n var rightSpace = !rightChar || rightChar.match(/\\s/);\n if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n return {\n text: quote + quote,\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"string_dquotes\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '>') {\n var position = editor.getSelectionRange().start;\n var iterator = new TokenIterator(session, position.row, position.column);\n var token = iterator.getCurrentToken() || iterator.stepBackward();\n if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n return;\n if (is(token, \"reference.attribute-value\"))\n return;\n if (is(token, \"attribute-value\")) {\n var tokenEndColumn = iterator.getCurrentTokenColumn() + token.value.length;\n if (position.column < tokenEndColumn)\n return;\n if (position.column == tokenEndColumn) {\n var nextToken = iterator.stepForward();\n if (nextToken && is(nextToken, \"attribute-value\"))\n return;\n iterator.stepBackward();\n }\n }\n if (/^\\s*>/.test(session.getLine(position.row).slice(position.column)))\n return;\n while (!is(token, \"tag-name\")) {\n token = iterator.stepBackward();\n if (token.value == \"<\") {\n token = iterator.stepForward();\n break;\n }\n }\n var tokenRow = iterator.getCurrentTokenRow();\n var tokenColumn = iterator.getCurrentTokenColumn();\n if (is(iterator.stepBackward(), \"end-tag-open\"))\n return;\n var element = token.value;\n if (tokenRow == position.row)\n element = element.substring(0, position.column - tokenColumn);\n if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n return;\n return {\n text: \">\" + \"\",\n selection: [1, 1]\n };\n }\n });\n this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n if (text == \"\\n\") {\n var cursor = editor.getCursorPosition();\n var line = session.getLine(cursor.row);\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.type.indexOf(\"tag-close\") !== -1) {\n if (token.value == \"/>\")\n return;\n while (token && token.type.indexOf(\"tag-name\") === -1) {\n token = iterator.stepBackward();\n }\n if (!token) {\n return;\n }\n var tag = token.value;\n var row = iterator.getCurrentTokenRow();\n token = iterator.stepBackward();\n if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n return;\n }\n if (this.voidElements && !this.voidElements[tag]) {\n var nextToken = session.getTokenAt(cursor.row, cursor.column + 1);\n var line = session.getLine(row);\n var nextIndent = this.$getIndent(line);\n var indent = nextIndent + session.getTabString();\n if (nextToken && nextToken.value === \" -1;\n}\n(function () {\n this.getFoldWidget = function (session, foldStyle, row) {\n var tag = this._getFirstTagInLine(session, row);\n if (!tag)\n return this.getCommentFoldWidget(session, row);\n if (tag.closing || (!tag.tagName && tag.selfClosing))\n return foldStyle === \"markbeginend\" ? \"end\" : \"\";\n if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n return \"\";\n if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n return \"\";\n return \"start\";\n };\n this.getCommentFoldWidget = function (session, row) {\n if (/comment/.test(session.getState(row)) && /';\n break;\n }\n }\n return tag;\n }\n else if (is(token, \"tag-close\")) {\n tag.selfClosing = token.value == '/>';\n return tag;\n }\n tag.start.column += token.value.length;\n }\n return null;\n };\n this._findEndTagInLine = function (session, row, tagName, startColumn) {\n var tokens = session.getTokens(row);\n var column = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n column += token.value.length;\n if (column < startColumn)\n continue;\n if (is(token, \"end-tag-open\")) {\n token = tokens[i + 1];\n if (token && token.value == tagName)\n return true;\n }\n }\n return false;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n var tags = session.getMatchingTags({ row: row, column: 0 });\n if (tags) {\n return new Range(tags.openTag.end.row, tags.openTag.end.column, tags.closeTag.start.row, tags.closeTag.start.column);\n }\n else {\n return this.getCommentFoldWidget(session, row)\n && session.getCommentFoldRange(row, session.getLine(row).length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/xml_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/xml\",\"ace/worker/worker_client\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextMode = require(\"./text\").Mode;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\nvar XmlBehaviour = require(\"./behaviour/xml\").XmlBehaviour;\nvar XmlFoldMode = require(\"./folding/xml\").FoldMode;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar Mode = function () {\n this.HighlightRules = XmlHighlightRules;\n this.$behaviour = new XmlBehaviour();\n this.foldingRules = new XmlFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.voidElements = lang.arrayToMap([]);\n this.blockComment = { start: \"\" };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/xml_worker\", \"Worker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"error\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/xml\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/xml\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/theme/github-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \"/* CSS style content from github's default pygments highlighter template.\\n Cursor and selection styles from textmate.css. */\\n.ace-github .ace_gutter {\\n background: #e8e8e8;\\n color: #AAA;\\n}\\n\\n.ace-github {\\n background: #fff;\\n color: #000;\\n}\\n\\n.ace-github .ace_keyword {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_string {\\n color: #D14;\\n}\\n\\n.ace-github .ace_variable.ace_class {\\n color: teal;\\n}\\n\\n.ace-github .ace_constant.ace_numeric {\\n color: #099;\\n}\\n\\n.ace-github .ace_constant.ace_buildin {\\n color: #0086B3;\\n}\\n\\n.ace-github .ace_support.ace_function {\\n color: #0086B3;\\n}\\n\\n.ace-github .ace_comment {\\n color: #998;\\n font-style: italic;\\n}\\n\\n.ace-github .ace_variable.ace_language {\\n color: #0086B3;\\n}\\n\\n.ace-github .ace_paren {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_boolean {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_string.ace_regexp {\\n color: #009926;\\n font-weight: normal;\\n}\\n\\n.ace-github .ace_variable.ace_instance {\\n color: teal;\\n}\\n\\n.ace-github .ace_constant.ace_language {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_cursor {\\n color: black;\\n}\\n\\n.ace-github.ace_focus .ace_marker-layer .ace_active-line {\\n background: rgb(255, 255, 204);\\n}\\n.ace-github .ace_marker-layer .ace_active-line {\\n background: rgb(245, 245, 245);\\n}\\n\\n.ace-github .ace_marker-layer .ace_selection {\\n background: rgb(181, 213, 255);\\n}\\n\\n.ace-github.ace_multiselect .ace_selection.ace_start {\\n box-shadow: 0 0 3px 0px white;\\n}\\n/* bold keywords cause cursor issues for some fonts */\\n/* this disables bold style for editor and keeps for static highlighter */\\n.ace-github.ace_nobold .ace_line > span {\\n font-weight: normal !important;\\n}\\n\\n.ace-github .ace_marker-layer .ace_step {\\n background: rgb(252, 255, 0);\\n}\\n\\n.ace-github .ace_marker-layer .ace_stack {\\n background: rgb(164, 229, 101);\\n}\\n\\n.ace-github .ace_marker-layer .ace_bracket {\\n margin: -1px 0 0 -1px;\\n border: 1px solid rgb(192, 192, 192);\\n}\\n\\n.ace-github .ace_gutter-active-line {\\n background-color : rgba(0, 0, 0, 0.07);\\n}\\n\\n.ace-github .ace_marker-layer .ace_selected-word {\\n background: rgb(250, 250, 255);\\n border: 1px solid rgb(200, 200, 250);\\n}\\n\\n.ace-github .ace_invisible {\\n color: #BFBFBF\\n}\\n\\n.ace-github .ace_print-margin {\\n width: 1px;\\n background: #e8e8e8;\\n}\\n\\n.ace-github .ace_indent-guide {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\n}\\n\\n.ace-github .ace_indent-guide-active {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC\\\") right repeat-y;\\n}\\n\";\n\n});\n\nace.define(\"ace/theme/github\",[\"require\",\"exports\",\"module\",\"ace/theme/github-css\",\"ace/lib/dom\"], function(require, exports, module){exports.isDark = false;\nexports.cssClass = \"ace-github\";\nexports.cssText = require(\"./github-css\");\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass, false);\n\n}); (function() {\n ace.require([\"ace/theme/github\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","module.exports = require(\"react-dom\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"\";","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"prop-types\");","import { createContext } from 'react';\n\nconst AccordionContext = createContext();\n\nexport default AccordionContext;\n","import { createContext } from 'react';\n\nconst AccordionItemContext = createContext();\n\nexport default AccordionItemContext;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Icon({\n className,\n family,\n type,\n weight,\n ...rest\n}) {\n function getCSSClasses() {\n const fontFamily = family || 'fa';\n const fontWeight = fontFamily === 'fa' ? `fa-${weight || 'light'}` : '';\n\n return [\n 'tyk-icon',\n fontFamily !== 'fa' && fontFamily,\n `${fontFamily}-${type}`,\n fontWeight,\n className,\n ].filter(Boolean).join(' ');\n }\n\n return ;\n}\n\nIcon.propTypes = {\n // Additional CSS classes to apply\n className: PropTypes.string,\n // Font family to use. Default is 'fa'.\n family: PropTypes.string,\n // Icon type to use\n type: PropTypes.string.isRequired,\n // Icon weight to use. Only applicable for Font Awesome icons. Default is 'light'. Also supports 'solid'\n weight: PropTypes.string\n};\n\nexport default Icon;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport AccordionItemContext from './AccordionItemContext';\n\nfunction ItemTrigger({ wrap }) {\n const { collapsed, disabled, toggleChange } = useContext(AccordionItemContext);\n\n const iconType = collapsed ? 'chevron-down' : 'chevron-up';\n const classes = [\n 'tyk-accordion__trigger',\n disabled && 'tyk-accordion__trigger--disabled',\n ].filter(Boolean).join(' ');\n const trigger = (\n \n \n \n );\n\n return wrap\n ?
    {trigger}
    \n : trigger;\n}\n\nItemTrigger.propTypes = {\n wrap: PropTypes.bool,\n};\n\nexport default ItemTrigger;\n","import React, {\n useMemo, useState, useContext, forwardRef,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport AccordionContext from './AccordionContext';\nimport AccordionItemContext from './AccordionItemContext';\nimport ItemTrigger from './AccordionItemTrigger';\n\nfunction AccordionItem({\n collapsed: collapsedProp,\n children,\n className,\n disabled,\n}, ref) {\n const { arrow } = useContext(AccordionContext);\n const [collapsed, setCollapsed] = useState(collapsedProp);\n\n const toggleChange = () => {\n if (disabled) {\n return;\n }\n\n setCollapsed(!collapsed);\n };\n\n const classes = useMemo(() => [\n 'tyk-accordion__item',\n arrow.expandToContent\n ? `tyk-accordion__item--trigger-position-${arrow.position}`\n : 'tyk-accordion__item--trigger-in-header',\n className,\n collapsed === false && 'tyk-accordion__item--active',\n ].filter(Boolean).join(' '), [arrow, className, collapsed]);\n\n const contextValue = useMemo(() => ({\n collapsed,\n disabled,\n toggleChange,\n }), [collapsed, disabled, toggleChange]);\n\n return (\n
    \n \n {arrow.expandToContent && (\n \n )}\n {children}\n \n
    \n );\n}\n\nAccordionItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n collapsed: PropTypes.bool,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n};\n\nAccordionItem.defaultProps = {\n collapsed: false,\n};\n\nexport default forwardRef(AccordionItem);\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport AccordionContext from './AccordionContext';\nimport AccordionItemContext from './AccordionItemContext';\nimport ItemTrigger from './AccordionItemTrigger';\n\nfunction AccordionItemHeader({ className, children }) {\n const { collapsed, disabled, toggleChange } = useContext(AccordionItemContext);\n const { usearrowastrigger, arrow } = useContext(AccordionContext);\n const iconType = collapsed ? 'chevron-down' : 'chevron-up';\n const classes = [\n 'tyk-accordion__item-header',\n usearrowastrigger && 'tyk-accordion__arrow-trigger',\n className,\n ].filter(Boolean).join(' ');\n\n return (\n
    \n {\n !usearrowastrigger\n ? (\n \n {children}\n \n \n )\n : (\n <>\n {!arrow.expandToContent && arrow.position === 'left' && (\n \n )}\n
    {children}
    \n {!arrow.expandToContent && arrow.position === 'right' && (\n \n )}\n \n )\n }\n
    \n );\n}\n\nAccordionItemHeader.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n};\n\nexport default AccordionItemHeader;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-transition-group\");","import { useCallback, useState, useLayoutEffect } from 'react';\n\nconst getSize = (el) => {\n if (!el) {\n return {\n width: 0,\n height: 0,\n };\n }\n\n return {\n width: el.offsetWidth,\n height: el.offsetHeight,\n };\n};\n\nconst useComponentSize = (ref) => {\n const [componentSize, setComponentSize] = useState(getSize(ref ? ref.current : {}));\n const handleResize = useCallback(() => {\n if (ref.current) {\n setComponentSize(getSize(ref.current));\n }\n }, [ref]);\n\n useLayoutEffect(() => {\n handleResize();\n\n let resizeObserver = new ResizeObserver(() => {\n handleResize();\n });\n resizeObserver.observe(ref.current);\n\n return () => {\n resizeObserver.disconnect(ref.current);\n resizeObserver = null;\n };\n }, [ref.current]);\n\n return componentSize;\n};\n\n/** @component */\nexport default useComponentSize;\n","import { useEffect, useRef } from 'react';\n\nconst useEventListener = (eventName, handler, element) => {\n const savedHandler = useRef();\n useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(() => {\n const isSupported = element?.addEventListener;\n if (!isSupported) {\n // eslint-disable-next-line consistent-return\n return;\n }\n\n const eventListener = (event) => savedHandler.current(event);\n element.addEventListener(eventName, eventListener);\n\n // eslint-disable-next-line consistent-return\n return () => {\n element.removeEventListener(eventName, eventListener);\n };\n }, [eventName, element]);\n};\n\n/** @component */\nexport default useEventListener;\n","import React, {\n useRef, useState, useCallback, useEffect,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { CSSTransition } from 'react-transition-group';\nimport { useEventListener, useComponentSize } from '../../hooks';\n\n/**\n * Collapsible is a component that helps you to collapse/expand any type of content\n */\nfunction Collapsible({\n className,\n collapsed,\n children,\n ...rest\n}) {\n const contentContainer = useRef(null);\n const collapseWrapper = useRef(null);\n const refContainerSize = useComponentSize(contentContainer);\n const [contentContainerStyle, setContentContainerStyle] = useState({\n // eslint-disable-next-line\n height: (collapsed) ? 0 : 'auto',\n });\n\n const setHeight = (height) => {\n setContentContainerStyle({\n height: `${height}px`,\n });\n };\n\n const getHeight = () => (contentContainer.current ? contentContainer.current.clientHeight : 0);\n\n const onEnter = () => {\n setHeight(getHeight());\n };\n\n const onExit = () => {\n setHeight(0);\n };\n\n useEffect(() => {\n if (!collapsed\n && refContainerSize?.height\n && contentContainerStyle.height !== refContainerSize?.height\n ) {\n setHeight(refContainerSize.height);\n }\n }, [refContainerSize.height]);\n\n const onWindowResize = useCallback(() => {\n if (!collapsed && contentContainer.current) {\n setHeight(getHeight());\n collapseWrapper.current.style.height = `${getHeight()}px`;\n }\n }, [collapsed, contentContainer.current]);\n\n useEventListener('resize', onWindowResize, window);\n\n return (\n \n \n \n { children }\n
  • \n \n \n );\n}\n\nCollapsible.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** Describes if the content of Collapsible should be hidden or not */\n collapsed: PropTypes.bool,\n /** CSS classes that can be passed to the Collapsible element */\n className: PropTypes.string,\n};\n\nexport default Collapsible;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Collapsible from '../../Collapsible';\nimport AccordionItemContext from './AccordionItemContext';\n\nfunction AccordionItemContent({ children, className }) {\n const { collapsed } = useContext(AccordionItemContext);\n\n const classes = [\n 'tyk-accordion__item-content',\n className,\n ].filter(Boolean).join(' ');\n\n return (\n
    \n \n { children }\n \n
    \n );\n}\n\nAccordionItemContent.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n};\n\nexport default AccordionItemContent;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport AccordionItem from './js/AccordionItem';\nimport AccordionItemHeader from './js/AccordionItemHeader';\nimport AccordionItemContent from './js/AccordionItemContent';\nimport AccordionContext from './js/AccordionContext';\n\nfunction Accordion({\n className,\n children,\n usearrowastrigger,\n arrow = { position: 'right', expandToContent: false },\n}) {\n const classes = [\n 'tyk-accordion',\n className,\n ].filter(Boolean).join(' ');\n\n const contextValue = useMemo(() => ({\n usearrowastrigger,\n arrow,\n }), [usearrowastrigger, arrow]);\n\n return (\n
    \n \n {children}\n \n
    \n );\n}\n\nAccordion.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n usearrowastrigger: PropTypes.bool,\n arrow: PropTypes.shape({\n position: PropTypes.oneOf(['left', 'right']),\n expandToContent: PropTypes.bool,\n }),\n};\n\nAccordion.defaultProps = {\n usearrowastrigger: false,\n};\n\n// For Readme.md : Start\nAccordion.Item = AccordionItem;\nAccordion.Item.Header = AccordionItemHeader;\nAccordion.Item.Content = AccordionItemContent;\n// For Readme.md : End\n\nexport default Accordion;\n","import React, { cloneElement, forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../Icon';\n\n/**\n * Button component.\n */\nfunction Button(props, ref) {\n const {\n customButton,\n children,\n iconType,\n iconFamily,\n iconPosition,\n iconOnly,\n id,\n className,\n disabled,\n display,\n href,\n onClick,\n noStyle,\n size,\n theme,\n type,\n ...rest\n } = props;\n\n const getCssClasses = () => {\n const cssClasses = ['tyk-button'].concat(className ? className.split(' ') : []);\n const sizeClass = (size) ? `tyk-button--${size}` : 'tyk-button--md';\n const disabledClass = (disabled) ? 'disabled' : '';\n const displayClass = display || '';\n const themeClass = theme ? `tyk-button--${theme}` : '';\n const iconOnlyClass = iconOnly ? 'tyk-button--icon-only' : '';\n const noStyleClass = noStyle ? 'tyk-button--no-style' : '';\n\n cssClasses.push(iconOnlyClass);\n cssClasses.push(themeClass);\n cssClasses.push(sizeClass);\n cssClasses.push(disabledClass);\n cssClasses.push(displayClass);\n cssClasses.push(noStyleClass);\n\n if (iconType) {\n cssClasses.push(`icon-${iconPosition || 'left'}`);\n }\n\n return cssClasses.join(' ');\n };\n\n const getButtonIcon = (position) => {\n const iPos = iconPosition || 'left';\n\n return (\n (iconType && iPos === position)\n ? \n : null\n );\n };\n\n const getButtonType = () => {\n let buttonType;\n\n if (customButton) {\n return (\n <>\n { cloneElement(customButton, {\n className: getCssClasses(),\n disabled,\n })}\n \n );\n }\n\n if (href) {\n buttonType = (\n \n { getButtonIcon('left') }\n { children }\n { getButtonIcon('right') }\n
    \n );\n } else {\n buttonType = (\n // eslint-disable-next-line react/button-has-type\n \n { getButtonIcon('left') }\n { children && {children} }\n { getButtonIcon('right') }\n \n );\n }\n\n return buttonType;\n };\n\n return (\n getButtonType()\n );\n}\n\nButton.propTypes = {\n /**\n * Content of a button. Can be a DOM element or a React component\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n customButton: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n ]),\n className: PropTypes.string,\n /**\n * Display type: inline/block. Default is inline\n */\n display: PropTypes.string,\n /**\n * Sets the button disabled state\n */\n disabled: PropTypes.bool,\n /**\n * Having this property set the button will become a link\n */\n id: PropTypes.string,\n href: PropTypes.string,\n iconPosition: PropTypes.string, // left or right\n iconFamily: PropTypes.string,\n iconOnly: PropTypes.bool,\n iconType: PropTypes.string,\n noStyle: PropTypes.bool,\n /**\n * Callback function, called when the button si clicked\n */\n onClick: PropTypes.func,\n /**\n * Describes the appearence of the button (ex: primary, danger, primary-outline etc.)\n */\n theme: PropTypes.string,\n /**\n * Type of the button (ex: button, submit etc.)\n */\n type: PropTypes.string,\n /**\n * Describes the size of the button (sm, md, lg). Default one is md\n */\n size: PropTypes.string,\n};\n\nButton.defaultProps = {\n theme: '',\n type: 'button',\n};\n\nexport default forwardRef(Button);\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ButtonGroup({ className, children, label }, ref) {\n return (\n
    \n {Boolean(label) && }\n
    {children}
    \n
    \n );\n}\n\nButtonGroup.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n};\n\nexport default forwardRef(ButtonGroup);\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardHeader({\n right = null,\n children,\n}) {\n return (\n
    \n {children &&
    {children}
    }\n {right &&
    {right}
    }\n
    \n );\n}\n\nCardHeader.propTypes = {\n right: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardBody({\n align = 'top',\n children,\n}) {\n return (\n
    \n
    \n {children}\n
    \n
    \n );\n}\n\nCardBody.propTypes = {\n align: PropTypes.oneOf(['top', 'center', 'bottom']),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardBody;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardFooter({ children }) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardFooter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitle({\n maxLines = 1, // accepted values: 1, 2\n children,\n}) {\n return (\n

    \n {children}\n

    \n );\n}\n\nCardTitle.propTypes = {\n maxLines: PropTypes.number,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitle;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitleGroup({\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardTitleGroup.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitleGroup;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardSubTitle({\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardSubTitle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardSubTitle;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardSummary({\n maxLines = 2, // accepted values: 1, 2, 3, 4, 5\n children,\n}) {\n return (\n

    \n {children}\n

    \n );\n}\n\nCardSummary.propTypes = {\n maxLines: PropTypes.number,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardSummary;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitleIcon({\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardTitleIcon.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitleIcon;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport CardHeader from './CardHeader';\nimport CardBody from './CardBody';\nimport CardFooter from './CardFooter';\nimport CardTitle from './CardTitle';\nimport CardTitleGroup from './CardTitleGroup';\nimport CardSubTitle from './CardSubTitle';\nimport CardSummary from './CardSummary';\nimport CardTitleIcon from './CardTitleIcon';\n\nfunction Card({\n className = '',\n height = 'auto',\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCard.propTypes = {\n className: PropTypes.string,\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nCard.Header = CardHeader;\nCard.Body = CardBody;\nCard.Footer = CardFooter;\nCard.Title = CardTitle;\nCard.TitleGroup = CardTitleGroup;\nCard.Icon = CardTitleIcon;\nCard.SubTitle = CardSubTitle;\nCard.Summary = CardSummary;\n\nexport default Card;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"echarts\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"immutable\");","export default (func, wait, immediate) => {\n let timeout;\n return function debouncer(...args) {\n const context = this;\n const later = () => {\n timeout = null;\n if (!immediate) {\n func.apply(context, args);\n }\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) {\n func.apply(context, args);\n }\n };\n};\n","import { useEffect, useRef } from 'react';\n\nconst usePrevious = (value) => {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n};\n\n/** @component */\nexport default usePrevious;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Loader({ className, position = 'relative', withbackground = false }) {\n const classes = [\n 'loading',\n position,\n className,\n ].filter(Boolean).join(' ');\n\n const loader = (\n
    \n
    \n
    \n
    \n
    \n
    \n );\n\n return withbackground\n ?
    {loader}
    \n : loader;\n}\n\nLoader.propTypes = {\n /** add a class to loader */\n className: PropTypes.string,\n /** position of loader (absolute / relative) */\n position: PropTypes.string,\n /** defines weather loader should be renders with or without background */\n withbackground: PropTypes.bool,\n};\n\nexport default Loader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../Icon';\n\n/**\n * The Message component is used to highlight important content to the users.\n *\n * If the content you are displaying needs immediate attention or is a feedback,\n * consider using `toast` instead\n */\nfunction Message({\n children, theme, onClose, noMargin, className,\n}) {\n function getCssClasses() {\n return [\n 'tyk-message',\n `tyk-message--${theme || 'info'}`,\n noMargin && 'no-margin',\n className,\n ].filter(Boolean).join(' ');\n }\n\n const iconType = theme === 'success' ? 'check' : 'warning';\n\n return (\n
    \n \n
    \n { children }\n
    \n {onClose && (\n \n )}\n
    \n );\n}\n\nMessage.propTypes = {\n /** Set theme for message (eg. default, success, danger, etc) */\n theme: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** add a class to loader */\n className: PropTypes.string,\n /** Removes margins by adding `no-margin` class */\n noMargin: PropTypes.bool,\n /** Callback for clicking on the \"x\" */\n onClose: PropTypes.func,\n};\n\nexport default Message;\n","import React, {\n useState, useEffect, useMemo, useRef, memo,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport * as echarts from 'echarts';\nimport { fromJS } from 'immutable';\n\nimport debounce from '../../utils/debounce';\nimport { usePrevious } from '../../hooks';\nimport Loader from '../Loader';\nimport Message from '../Message';\nimport worldMap from './maps/world.json';\n\necharts.registerMap('world', worldMap);\n\nfunction Chart({\n areaStyleColors,\n dataLoaded,\n hasData,\n highlight,\n type,\n option,\n series,\n onChange,\n zoomStart,\n zoomEnd,\n title,\n seriesConfig = [],\n noDataComponent: noDataComponentProp = null,\n zoomColors,\n style,\n}) {\n const [tykChartInstance, setTykChartInstance] = useState(null);\n const chartWrapperRef = useRef(null);\n const onResize = () => {\n if (tykChartInstance) {\n tykChartInstance.resize();\n }\n };\n\n const noDataComponent = useMemo(\n () => (noDataComponentProp\n ? noDataComponentProp()\n : (\n \n No data to display\n \n )),\n [noDataComponentProp],\n );\n\n const lineBarChart = {\n defaultOpts: fromJS({\n title: {\n show: true,\n text: title,\n left: 0,\n },\n color: [],\n toolbox: {\n right: '0',\n orient: 'horizontal',\n itemSize: 15,\n showTitle: true,\n feature: null,\n },\n dataZoom: [{\n show: true,\n start: 0,\n end: 100,\n orient: 'horizontal',\n dataBackground: {\n lineStyle: {\n color: zoomColors?.lineStyle || '#368493',\n },\n areaStyle: {\n color: zoomColors?.areaStyle || '#368493',\n },\n },\n handleStyle: {\n color: zoomColors?.handleStyle || '#368493',\n },\n textStyle: {\n color: zoomColors?.textStyle || '#368493',\n },\n borderColor: 'transparent',\n fillerColor: zoomColors?.fillerColor || 'rgba(54, 132, 147, 0.1)',\n }],\n legend: {\n show: false,\n // data: [],\n // right: '1%',\n },\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'cross',\n },\n },\n grid: {\n left: '1%',\n right: '1%',\n bottom: '50px',\n top: '40px',\n containLabel: true,\n },\n xAxis: {\n boundaryGap: false,\n type: 'category',\n splitLine: {\n show: true,\n lineStyle: {\n type: 'dotted',\n color: '#F0F0F0',\n },\n },\n axisLine: {\n show: false,\n },\n axisTick: {\n show: false,\n },\n data: [],\n },\n yAxis: {\n min: 'dataMin',\n boundaryGap: true,\n axisPointer: {\n show: true,\n },\n splitLine: {\n lineStyle: {\n type: 'dotted',\n color: '#F0F0F0',\n },\n show: true,\n },\n axisLabel: {\n show: true,\n },\n axisLine: {\n show: true,\n },\n axisTick: {\n show: false,\n },\n type: 'value',\n },\n textStyle: {\n color: '#5a5a68',\n },\n series: [],\n animationEasing: 'elasticOut',\n }),\n seriesDefault: fromJS({\n data: [],\n type: 'line',\n areaStyle: {\n opacity: 1,\n color: areaStyleColors\n ? new echarts.graphic.LinearGradient(\n 0,\n 0,\n 1,\n 1,\n areaStyleColors.map((color, index) => ({\n offset: index,\n color,\n })),\n )\n : [],\n },\n smooth: false,\n symbolSize: 7,\n name: '',\n }),\n };\n\n const pieChart = {\n defaultOpts: fromJS({\n tooltip: {\n trigger: 'axis',\n formatter: '{b}: {c} ({d}%)',\n },\n legend: {\n orient: 'horizontal',\n x: 'left',\n y: 'top',\n data: [],\n },\n color: [],\n series: [],\n }),\n seriesDefault: fromJS({\n type: 'pie',\n center: [\n '50%',\n '55%',\n ],\n radius: [\n '50%',\n '75%',\n ],\n avoidLabelOverlap: false,\n animationType: 'scale',\n animationEasing: 'elasticOut',\n labelLine: {\n normal: {\n show: true,\n smooth: 0.2,\n length: 6,\n length2: 6,\n },\n },\n data: [],\n }),\n };\n\n const geoChart = {\n defaultOpts: fromJS({\n series: [],\n }),\n seriesDefault: fromJS({\n type: 'map',\n data: [],\n }),\n };\n\n const buildChartOptions = (selectedType, selectedOptions, selectedSeries) => {\n let finalOpts = {};\n switch (selectedType) {\n case 'pie': {\n finalOpts = pieChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n\n selectedSeries.forEach((entry) => {\n finalOpts.series.push(pieChart.seriesDefault.mergeDeep(fromJS(entry)).toJS());\n });\n\n break;\n }\n\n case 'geo': {\n finalOpts = geoChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n\n selectedSeries.forEach((entry) => {\n finalOpts.series.push(geoChart.seriesDefault.mergeDeep(fromJS(entry)).toJS());\n });\n\n break;\n }\n\n default: {\n finalOpts = lineBarChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n if (Array.isArray(selectedOptions.yAxis)) {\n finalOpts.yAxis = selectedOptions.yAxis;\n }\n\n selectedSeries.forEach((entry, index) => {\n const seriesData = {\n ...lineBarChart.seriesDefault.toJS(),\n ...seriesConfig[index],\n ...entry,\n };\n finalOpts.series.push(seriesData);\n });\n break;\n }\n }\n return finalOpts;\n };\n\n useEffect(() => {\n window.addEventListener('resize', onResize);\n\n return () => {\n window.removeEventListener('resize', onResize);\n };\n }, [tykChartInstance]);\n\n useEffect(() => {\n if (!chartWrapperRef?.current) return;\n\n setTykChartInstance(echarts.init(chartWrapperRef.current));\n\n // eslint-disable-next-line consistent-return\n return () => {\n if (tykChartInstance) {\n tykChartInstance.dispose();\n }\n };\n }, [chartWrapperRef.current]);\n\n const eventCallBack = (e) => {\n if (onChange) {\n onChange(e);\n }\n };\n\n useEffect(() => {\n let debouncedMethod;\n if (tykChartInstance) {\n debouncedMethod = debounce(eventCallBack, 500);\n tykChartInstance.on('dataZoom', debouncedMethod);\n tykChartInstance.on('restore', debouncedMethod);\n tykChartInstance.on('click', debouncedMethod);\n\n tykChartInstance.on('mousemove', (params) => {\n if (params.data) {\n tykChartInstance.getZr().setCursorStyle('pointer');\n }\n });\n }\n\n return () => {\n if (tykChartInstance) {\n tykChartInstance.off('dataZoom', debouncedMethod);\n tykChartInstance.off('restore', debouncedMethod);\n tykChartInstance.off('click', debouncedMethod);\n }\n };\n }, [tykChartInstance, onChange]);\n\n const prevInstance = usePrevious(tykChartInstance);\n const prevOption = usePrevious(option);\n const prevType = usePrevious(type);\n const prevSeries = usePrevious(series);\n useEffect(() => {\n if (\n tykChartInstance\n && (\n !fromJS(prevInstance)?.equals?.(fromJS(tykChartInstance))\n || !fromJS(prevOption)?.equals?.(fromJS(option))\n || (prevType !== type)\n || !fromJS(prevSeries).equals?.(fromJS(series))\n )\n ) {\n tykChartInstance.clear();\n tykChartInstance.setOption(buildChartOptions(type, option, series));\n tykChartInstance.dispatchAction({\n type: 'takeGlobalCursor',\n key: 'dataZoomSelect',\n dataZoomSelectActive: true,\n });\n }\n }, [tykChartInstance, option, series, type]);\n\n useEffect(() => {\n if (tykChartInstance && highlight) {\n tykChartInstance.dispatchAction({\n type: 'highlight',\n seriesIndex: highlight.seriesIndex,\n dataIndex: highlight.dataIndex,\n });\n tykChartInstance.dispatchAction({\n type: 'showTip',\n seriesIndex: highlight.seriesIndex,\n dataIndex: highlight.dataIndex,\n });\n }\n }, [highlight]);\n\n const prevZoomStart = usePrevious(zoomStart);\n const prevZoomEnd = usePrevious(zoomEnd);\n useEffect(() => {\n if (\n tykChartInstance\n && zoomStart !== -1\n && zoomEnd !== -1\n && (\n prevZoomStart !== zoomStart\n || prevZoomEnd !== zoomEnd\n )\n ) {\n tykChartInstance.dispatchAction({\n type: 'dataZoom',\n startValue: zoomStart,\n endValue: zoomEnd,\n });\n }\n }, [zoomStart, zoomEnd]);\n\n const getStyle = () => {\n const tempStyle = style || {};\n\n if (!tempStyle.height) {\n tempStyle.height = '300px';\n }\n if (!tempStyle.width) {\n tempStyle.width = '100%';\n }\n return tempStyle;\n };\n\n const chartHasData = () => (\n (dataLoaded && (hasData === false || hasData === true)) ? hasData : true\n );\n\n const getCssClasses = () => {\n const cssClasses = ['tyk-chart'];\n\n if (!dataLoaded) {\n cssClasses.push('tyk-chart--loading-chart');\n }\n\n if (!chartHasData()) {\n cssClasses.push('tyk-chart--no-data');\n }\n\n return cssClasses.join(' ');\n };\n\n return (\n
    \n {\n !dataLoaded\n ? \n : null\n }\n \n {\n chartHasData()\n ? null\n : noDataComponent\n }\n
    \n );\n}\n\nChart.propTypes = {\n areaStyleColors: PropTypes.instanceOf(Array),\n dataLoaded: PropTypes.bool,\n hasData: PropTypes.bool,\n highlight: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n PropTypes.instanceOf(Array),\n ]),\n noDataComponent: PropTypes.func,\n zoomStart: PropTypes.number,\n zoomEnd: PropTypes.number,\n zoomColors: PropTypes.instanceOf(Object),\n option: PropTypes.instanceOf(Object),\n onChange: PropTypes.func,\n style: PropTypes.instanceOf(Object),\n type: PropTypes.string,\n title: PropTypes.string,\n series: PropTypes.instanceOf(Array),\n seriesConfig: PropTypes.instanceOf(Object),\n};\n\nexport default memo(Chart);\n","import { useEffect, useRef } from 'react';\n\nconst useTimeout = (callback, delay) => {\n const savedCallback = useRef();\n\n useEffect(\n () => {\n savedCallback.current = callback;\n },\n [callback],\n );\n\n useEffect(\n () => {\n function tick() {\n savedCallback.current();\n }\n if (delay !== null) {\n const id = setTimeout(tick, delay);\n return () => clearTimeout(id);\n }\n\n return () => {};\n },\n [delay],\n );\n};\n\n/** @component */\nexport default useTimeout;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../../Message';\nimport { useTimeout } from '../../../hooks';\n\nfunction ToastMessage(props) {\n const {\n children,\n options,\n onClose,\n index,\n } = props;\n const opts = {\n theme: 'success',\n delay: 3000,\n ...options,\n };\n let timer;\n\n const handleClose = (itemIndex) => {\n onClose(itemIndex);\n clearTimeout(timer);\n };\n\n useTimeout(() => handleClose(index), opts.delay);\n\n return (\n handleClose(index)}\n >\n {children}\n \n );\n}\n\nToastMessage.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n options: PropTypes.instanceOf(Object),\n onClose: PropTypes.func,\n index: PropTypes.number,\n};\n\nexport default ToastMessage;\n","import React, {\n useEffect, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToastMessage from './ToastMessage';\n\nfunction ToastContainer(props) {\n const [messages, setMessages] = useState({});\n const {\n notify,\n } = props;\n\n const updateNotifications = (message, options) => {\n const msgID = Math.floor(Math.random() * 1000000);\n\n setMessages((prevMessages) => ({\n ...prevMessages,\n [msgID]: {\n message,\n options,\n },\n }));\n };\n\n useEffect(() => {\n notify(updateNotifications);\n }, [messages]);\n\n const onMessageClosed = (index) => {\n const tempMessages = { ...messages };\n delete tempMessages[index];\n setMessages((prevMessages) => {\n const newMessages = { ...prevMessages };\n delete newMessages[index];\n return newMessages;\n });\n };\n\n return (\n
    \n {\n Object.keys(messages).map((msgID) => (\n messages[msgID]\n ? (\n \n {messages[msgID].message}\n \n )\n : null\n ))\n }\n
    \n );\n}\n\nToastContainer.propTypes = {\n notify: PropTypes.func,\n};\n\nexport default ToastContainer;\n","import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport ToastContainer from './js/ToastContainer';\n\n/**\n * Toast is a service that displays dialogs\n * on the bottom right part of the screen.\n *\n * The dialogs can have one of the Tyk UI themes, so that\n * it would match it's purpose (i.e success message, error message)\n *\n */\nclass ToastCreator {\n constructor() {\n const el = document.createElement('div');\n el.className = 'tyk-toast';\n document.body.appendChild(el);\n const root = createRoot(el);\n root.render();\n }\n\n bindNotify = (fn) => {\n this.createNotification = fn;\n };\n\n notify(message, options) {\n if (this.createNotification) {\n this.createNotification(message, options);\n }\n }\n\n danger(message, options) {\n this.notify(message, { ...options, theme: 'danger' });\n }\n\n success(message, options) {\n this.notify(message, { ...options, theme: 'success' });\n }\n\n warning(message, options) {\n this.notify(message, { ...options, theme: 'warning' });\n }\n\n info(message, options) {\n this.notify(message, { ...options, theme: 'info' });\n }\n}\n\nconst toast = new ToastCreator();\n\nexport default toast;\n","import React, { createRef, useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport toast from '../Toast';\n\n/**\n * - CopyToClipboard is used to copy string for a user.\n * - Can be used normally with a text or a custom components (Eg. Button, Icon, etc)\n */\n\nfunction CopyToClipboard(props) {\n const {\n display, copy, children, onCopy, message = 'copied',\n } = props;\n const txtRef = createRef();\n const handleClick = useCallback(() => {\n if (onCopy) {\n onCopy();\n }\n\n if (!window.navigator.clipboard) {\n txtRef.current.select();\n document.execCommand('copy');\n toast.success(message);\n return;\n }\n window.navigator.clipboard.writeText(copy);\n toast.success(message);\n }, [onCopy, txtRef]);\n\n return (\n <>\n \n {children || display}\n \n {!window.navigator.clipboard ? (\n \n ) : null}\n \n );\n}\n\nCopyToClipboard.propTypes = {\n /** Message to be displayed after text is copied */\n message: PropTypes.string,\n /** Callback function executed after text is copied */\n onCopy: PropTypes.func,\n /** Text to be copied */\n copy: PropTypes.string.isRequired,\n /** Text to be displayed */\n display: PropTypes.string,\n /** Children of custom element if you are using any custom element */\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n ]),\n};\n\nexport default CopyToClipboard;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ModalFooter({ children }) {\n return (\n
    \n { children }\n
    \n );\n}\n\nModalFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default ModalFooter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ModalBody({ children }) {\n return (\n
    \n { children }\n
    \n );\n}\n\nModalBody.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default ModalBody;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { CSSTransition } from 'react-transition-group';\n\nimport Icon from '../Icon';\nimport ModalFooter from './js/ModalFooter';\nimport ModalBody from './js/ModalBody';\n\n/**\n * Modals add dialogs confirmation boxes, notifications, or completely custom content\n * - only one Modal can be opened at a time\n * - are unmounted when Modal is closed\n */\nfunction Modal({\n children,\n theme = 'none',\n disableCloseCommands = false,\n opened = false,\n onClose = () => {},\n size = 'md',\n className = '',\n showBackdrop = true,\n ...restProps\n}) {\n const modalClasses = [\n 'tyk-modal',\n `tyk-modal--theme-${theme}`,\n opened && 'opened',\n ].concat(className.split(' ')).filter(Boolean).join(' ');\n\n const backdropClasses = [\n 'tyk-modal__backdrop',\n opened && 'opened',\n ].filter(Boolean).join(' ');\n\n const themeIcon = {\n success: 'check',\n warning: 'warning',\n danger: 'delete',\n }[theme];\n\n return (\n <>\n {\n ReactDOM.createPortal(\n \n
    \n
    \n
    \n {theme !== 'none' && (\n
    \n \n
    \n )}\n { children }\n
    \n
    \n
    \n ,\n document.querySelector('body'),\n )\n }\n {showBackdrop && ReactDOM.createPortal(\n \n !disableCloseCommands && onClose()}\n onKeyDown={() => {}}\n type=\"button\"\n aria-label=\"Close\"\n />\n ,\n document.querySelector('body'),\n )}\n \n );\n}\n\nModal.Body = ModalBody;\nModal.Footer = ModalFooter;\n/* eslint-disable-next-line */\nModal.Header = ({ children }) => {\n console.warn('%cModal.Header%c is deprecated.', 'font-weight: bold', '');\n return (\n
    \n { children }\n
    \n );\n};\nModal.Header.propTypes = {\n children: PropTypes.element,\n};\n/* eslint-disable-next-line */\nModal.Title = ({ children }) => {\n console.warn('%cModal.Title%c is deprecated.', 'font-weight: bold', '');\n return (\n

    \n { children }\n

    \n );\n};\nModal.Title.propTypes = {\n children: PropTypes.element,\n};\n\nModal.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n /** one of \"success\", \"warning\", \"danger\", \"none\"; default is \"none\" */\n theme: PropTypes.string,\n /** If set on true, the Modal won't close when clicking on the overlay or by pressing ESC key */\n disableCloseCommands: PropTypes.bool,\n /** If true the Modal will be by default opened */\n opened: PropTypes.bool,\n /** Callback method when the Modal is closed */\n onClose: PropTypes.func,\n /** Width of the Moda: md or lg */\n size: PropTypes.string,\n showBackdrop: PropTypes.bool,\n};\n\nexport default Modal;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../Button';\nimport Modal from '../Modal';\n\n/**\n * Confirm component can be used to open a dialog () before a specific action\n */\nfunction Confirm(props) {\n const {\n children,\n title,\n description,\n confirmBtnText = 'Confirm',\n cancelBtnText = 'Cancel',\n } = props;\n const [open, setOpen] = useState(false);\n const [callback, setCallback] = useState(null);\n const [cancelCallback, setCancelCallback] = useState(null);\n\n const show = (callbackFunc, cancelCallbackFunc, beforeCallback) => (...args) => {\n if (beforeCallback) {\n beforeCallback(...args);\n }\n setOpen(true);\n setCallback(() => () => callbackFunc(...args));\n if (cancelCallbackFunc) {\n setCancelCallback(() => () => cancelCallbackFunc(...args));\n }\n };\n\n const hide = () => {\n setOpen(false);\n setCallback(null);\n setCancelCallback(null);\n };\n\n const cancel = () => {\n if (cancelCallback) {\n cancelCallback();\n }\n hide();\n };\n\n const confirm = () => {\n callback();\n hide();\n };\n\n return (\n <>\n {children(show)}\n \n \n

    {title}

    \n {description}\n
    \n \n \n {cancelBtnText}\n \n \n {confirmBtnText}\n \n \n
    \n \n );\n}\n\nConfirm.propTypes = {\n /** Sets the text for primary / confirmation button on opened modal */\n confirmBtnText: PropTypes.string,\n /** Sets the text for danger / abort button on opened modal */\n cancelBtnText: PropTypes.string,\n /** Sets the title for the opened modal */\n title: PropTypes.string,\n /** Sets the description for the opened modal */\n description: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n PropTypes.func,\n ]),\n};\n\nexport default Confirm;\n","import React, { useCallback, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport debounce from '../../utils/debounce';\n\n/**\n * FixedWrapper component, keeps all its children in a fix position on the page,\n * even if the scroll position changes\n * i.e: The top navigation bar of a page sits within FixedWrapper component\n */\nfunction FixedWrapper({ children, className, showShadow }) {\n const fixedWrapperRef = useRef(null);\n\n const attachShadow = useCallback(() => {\n const element = fixedWrapperRef.current;\n\n if (!element) {\n return;\n }\n\n if (window.scrollY) {\n element.classList.add('tyk-fixed-wrapper--scrolled');\n } else {\n element.classList.remove('tyk-fixed-wrapper--scrolled');\n }\n }, [fixedWrapperRef.current]);\n\n const debouncedAttachShadow = useCallback(debounce(attachShadow, 100), [attachShadow]);\n\n useEffect(() => {\n if (showShadow) {\n window.addEventListener('scroll', debouncedAttachShadow);\n }\n\n return () => {\n window.removeEventListener('scroll', debouncedAttachShadow);\n };\n }, [debouncedAttachShadow, showShadow]);\n\n return (\n
    \n { children }\n
    \n );\n}\n\nFixedWrapper.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** Css classes that can be passed to the FixedWraper element */\n className: PropTypes.string,\n /** If true, bottom shadow on the FixedWrapper component\n * is being displayed when scroll happens\n */\n showShadow: PropTypes.bool,\n};\n\nFixedWrapper.defaultProps = {\n className: '',\n};\n\nexport default FixedWrapper;\n","import React, {\n useEffect, useState, useRef, useCallback,\n} from 'react';\nimport { PropTypes } from 'prop-types';\n\nimport debounce from '../../utils/debounce';\nimport { usePrevious, useComponentSize } from '../../hooks';\nimport Loader from '../Loader';\n\nfunction InfiniteScroller({\n children,\n hasMore,\n initialLoad,\n loadMore,\n pageNumber,\n refChild,\n}) {\n const [showLoader, setShowLoader] = useState(false);\n const containerRef = useRef(null);\n const refChildSize = useComponentSize(refChild);\n\n useEffect(() => {\n if (initialLoad && typeof loadMore === 'function') {\n setShowLoader(false);\n loadMore(pageNumber);\n }\n }, [initialLoad]);\n\n const shouldLoad = useCallback(() => {\n if (!containerRef.current) return false;\n const { clientHeight, scrollTop } = containerRef.current;\n\n return (\n hasMore\n && (\n (clientHeight + Math.round(scrollTop) === refChildSize.height)\n || (clientHeight >= refChildSize.height)\n )\n );\n }, [containerRef, refChildSize.height]);\n\n const loadMoreData = useCallback(() => {\n if (hasMore && typeof loadMore === 'function') {\n loadMore(pageNumber + 1);\n setShowLoader(true);\n } else {\n setShowLoader(false);\n }\n }, [hasMore, pageNumber]);\n\n const prevPageNumber = usePrevious(pageNumber);\n const scrollHandler = useCallback(debounce(() => {\n if (shouldLoad() && prevPageNumber <= pageNumber) {\n loadMoreData();\n }\n }, 200), [loadMoreData, shouldLoad]);\n\n useEffect(() => {\n containerRef.current?.addEventListener('scroll', scrollHandler);\n return () => containerRef.current?.removeEventListener('scroll', scrollHandler);\n }, [containerRef, scrollHandler]);\n\n // if content resets (page number resets) scroll to top\n useEffect(() => {\n if (prevPageNumber > 0 && pageNumber === 0) {\n containerRef.current.scrollTop = 0;\n }\n }, [containerRef, pageNumber]);\n\n const prevRefChildSize = usePrevious(refChildSize);\n useEffect(() => {\n if (\n refChildSize && prevRefChildSize\n && refChildSize.height !== prevRefChildSize.height\n && showLoader === true\n ) {\n setShowLoader(false);\n }\n }, [showLoader, refChildSize.height]);\n\n useEffect(() => {\n if (\n refChild && refChildSize.height < containerRef.current.clientHeight\n && refChildSize.height\n && hasMore\n ) {\n loadMoreData();\n }\n }, [containerRef, refChildSize, refChild, hasMore]);\n\n return (\n
    \n \n { children }\n
    \n {showLoader && (\n \n )}\n
    \n );\n}\n\nInfiniteScroller.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n hasMore: PropTypes.bool,\n initialLoad: PropTypes.bool,\n pageNumber: PropTypes.number,\n loadMore: PropTypes.func,\n refChild: PropTypes.instanceOf(Object),\n};\n\nInfiniteScroller.defaultProps = {\n hasMore: true,\n};\n\nexport default InfiniteScroller;\n","import React, {\n useEffect, useRef, forwardRef,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\nimport InfiniteScroller from '../InfiniteScroller';\n\nconst VIEWPORT_INITIAL_PADDING = 5;\n\n/**\n * It displays a container relative to another element.\n * Meant to be used for dropdowns, tooltips, and other similar components.\n */\nfunction FloatingContainer({\n element,\n size = 'auto',\n forceDisplay = 'auto',\n displayAxis = 'auto',\n preferredPosition,\n offset = 0,\n className,\n children,\n infiniteScrollerConfig,\n}, ref) {\n const localRef = useRef(null);\n const floatingContainerRef = ref || localRef;\n const contentWrapperRef = useRef(null);\n // offset calculated on first render to make sure the floating container is inside the viewport\n const viewportOffset = useRef(null);\n\n function determineDisplay() {\n const target = element.current;\n const container = floatingContainerRef.current;\n if (!container) return preferredPosition ?? displayAxis === 'vertical' ? 'bottom' : 'right';\n\n const { left, top } = target.getBoundingClientRect();\n const topSpace = top;\n const bottomSpace = window.innerHeight - top - target.offsetHeight;\n const leftSpace = left;\n const rightSpace = window.innerWidth - left - target.offsetWidth;\n const hasTopSpace = topSpace > container.scrollHeight;\n const hasBottomSpace = bottomSpace > container.scrollHeight;\n const hasLeftSpace = leftSpace > container.offsetWidth;\n const hasRightSpace = rightSpace > container.offsetWidth;\n const positionedVerticallyFitsInViewport = left + target.offsetWidth / 2 - container.offsetWidth / 2 > 0; // eslint-disable-line max-len\n const positionedHorizontallyFitsInViewport = top + target.offsetHeight / 2 - container.scrollHeight / 2 > 0; // eslint-disable-line max-len\n\n if (\n displayAxis === 'vertical'\n || (\n displayAxis === 'auto'\n && (hasTopSpace || hasBottomSpace)\n && positionedVerticallyFitsInViewport\n )\n ) {\n return getDisplayForVertical({\n preferredPosition, hasTopSpace, hasBottomSpace, topSpace, bottomSpace,\n });\n }\n\n if (displayAxis === 'horizontal') {\n return getDisplayForHorizontal({\n preferredPosition, hasLeftSpace, hasRightSpace, leftSpace, rightSpace,\n });\n }\n\n return getDisplayWhereItFits({\n preferredPosition,\n hasTopSpace,\n hasBottomSpace,\n hasLeftSpace,\n hasRightSpace,\n positionedHorizontallyFitsInViewport,\n positionedVerticallyFitsInViewport,\n });\n }\n\n function adjustPosition() {\n const display = forceDisplay !== 'auto' ? forceDisplay : determineDisplay();\n const target = element.current;\n const container = floatingContainerRef.current;\n\n if (!target || !container) return;\n\n const targetPosition = target.getBoundingClientRect();\n const { left: vpLeft, top: vpTop } = viewportOffset.current ?? { left: 0, top: 0 };\n\n if (display === 'top') {\n Object.assign(container.style, getStylesForTop({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (display === 'bottom') {\n Object.assign(container.style, getStylesForBottom({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (display === 'left') {\n Object.assign(container.style, getStylesForLeft({\n targetPosition, target, container, size, offset,\n }));\n }\n\n if (display === 'right') {\n Object.assign(container.style, getStylesForRight({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (viewportOffset.current !== null) return;\n\n if (size === 'matchEnd') {\n viewportOffset.current = { left: 0, top: 0 };\n } else {\n const left = Number(container.style.left.replace('px', ''));\n const top = Number(container.style.top.replace('px', ''));\n viewportOffset.current = {\n left: left < 0 ? VIEWPORT_INITIAL_PADDING - left : 0,\n top: top < 0 ? VIEWPORT_INITIAL_PADDING - top : 0,\n };\n }\n }\n\n useEffect(() => {\n window.requestAnimationFrame(function schedulePositionUpdate() {\n adjustPosition();\n window.requestAnimationFrame(schedulePositionUpdate);\n });\n }, []);\n\n return createPortal(\n \n \n \n {children}\n
    \n \n
    ,\n document.querySelector('body'),\n );\n}\n\nFloatingContainer.propTypes = {\n /** A DOM element that the floating container will be displayed relative to. */\n element: PropTypes.instanceOf(Object),\n className: PropTypes.string,\n /** The size of the container.\n * If `auto` the size will be determined by its contents.\n * If `matchElement` it will take the width or the height of the element depending\n * on the `displayAxis` prop.\n * It can also be a function that returns a number representing the width\n * or the height in pixels.\n */\n size: PropTypes.oneOfType([\n PropTypes.oneOf(['auto', 'matchElement', 'matchStart', 'matchEnd']),\n PropTypes.func,\n ]),\n /**\n * The distance between the element and the floating container.\n * It can be positive or negative.\n */\n offset: PropTypes.number,\n /**\n * If `auto` the component will try to determine where to display the container relative to the\n * element (top, bottom, left, right).\n * It can also be one of top, bottom, left, right, to force the floating container to always be\n * displayed in that position.\n */\n forceDisplay: PropTypes.oneOf(['auto', 'top', 'bottom', 'left', 'right']),\n /**\n * It can be `auto`, `vertical` or `horizontal`. It specifies the axis where\n * it will be displayed when `forceDisplay` is `auto`.\n */\n displayAxis: PropTypes.oneOf(['auto', 'vertical', 'horizontal']),\n /**\n * If there is space on both sides of the axis preffer this side.\n */\n preferredPosition: PropTypes.oneOf(['top', 'bottom', 'left', 'right']),\n /**\n * Configuration object that will be passed to the infinite scroller component.\n */\n infiniteScrollerConfig: PropTypes.instanceOf(Object),\n};\n\nexport default forwardRef(FloatingContainer);\n\nfunction getDisplayForVertical({\n preferredPosition, hasTopSpace, hasBottomSpace, topSpace, bottomSpace,\n}) {\n if (preferredPosition === 'top' && hasTopSpace) return 'top';\n if (preferredPosition === 'bottom' && hasBottomSpace) return 'bottom';\n return hasBottomSpace || bottomSpace > topSpace ? 'bottom' : 'top';\n}\n\nfunction getDisplayForHorizontal({\n preferredPosition, hasLeftSpace, hasRightSpace, leftSpace, rightSpace,\n}) {\n if (preferredPosition === 'left' && hasLeftSpace) return 'left';\n if (preferredPosition === 'right' && hasRightSpace) return 'right';\n return hasRightSpace || rightSpace > leftSpace ? 'right' : 'left';\n}\n\nfunction getDisplayWhereItFits({\n preferredPosition, hasTopSpace, hasBottomSpace, hasLeftSpace, hasRightSpace,\n positionedHorizontallyFitsInViewport, positionedVerticallyFitsInViewport,\n}) {\n if (hasTopSpace && positionedVerticallyFitsInViewport) return 'top';\n if (hasBottomSpace && positionedVerticallyFitsInViewport) return 'bottom';\n if (hasRightSpace && positionedHorizontallyFitsInViewport) return 'right';\n if (hasLeftSpace && positionedHorizontallyFitsInViewport) return 'left';\n return preferredPosition ?? 'bottom';\n}\n\nfunction getStylesForTop({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = {\n auto: targetPosition.left + target.offsetWidth / 2 - container.offsetWidth / 2,\n matchElement: targetPosition.left,\n matchStart: targetPosition.left,\n matchEnd: targetPosition.right - container.offsetWidth,\n }[size];\n const topPos = targetPosition.top - container.offsetHeight - offset;\n style.left = `${leftPos + vpLeft}px`;\n style.top = `${topPos + vpTop}px`;\n\n if (size === 'matchElement') {\n style.width = `${target.offsetWidth}px`;\n } else if (size === 'matchEnd') {\n style.maxWidth = `${targetPosition.right - VIEWPORT_INITIAL_PADDING}px`;\n } else if (typeof size === 'function') {\n style.width = `${size(target.offsetWidth)}px`;\n }\n style.maxHeight = `${targetPosition.top - offset}px`;\n return style;\n}\n\nfunction getStylesForBottom({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = {\n auto: targetPosition.left + target.offsetWidth / 2 - container.offsetWidth / 2,\n matchElement: targetPosition.left,\n matchStart: targetPosition.left,\n matchEnd: targetPosition.right - container.offsetWidth,\n }[size];\n const topPos = targetPosition.bottom + offset;\n style.left = `${leftPos + vpLeft}px`;\n style.top = `${topPos + vpTop}px`;\n\n if (size === 'matchElement') {\n style.width = `${target.offsetWidth}px`;\n } else if (size === 'matchEnd') {\n style.maxWidth = `${targetPosition.right - VIEWPORT_INITIAL_PADDING}px`;\n } else if (typeof size === 'function') {\n style.width = `${size(target.offsetWidth)}px`;\n }\n style.maxHeight = `${window.innerHeight - targetPosition.bottom - offset}px`;\n return style;\n}\n\nfunction getStylesForLeft({\n targetPosition, target, container, size, offset,\n}) {\n const style = {};\n const leftPos = targetPosition.left - container.offsetWidth - offset;\n const topPos = {\n auto: targetPosition.top + target.offsetHeight / 2 - container.offsetHeight / 2,\n matchElement: targetPosition.top,\n matchStart: targetPosition.top,\n matchEnd: targetPosition.bottom - container.offsetHeight,\n }[size];\n style.left = `${leftPos}px`;\n style.top = `${topPos}px`;\n\n if (size === 'matchElement') {\n style.height = `${target.offsetHeight}px`;\n } else if (typeof size === 'function') {\n style.height = `${size(target.offsetHeight)}px`;\n }\n style.maxWidth = `${targetPosition.left - offset}px`;\n return style;\n}\n\nfunction getStylesForRight({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = targetPosition.left + target.offsetWidth + offset;\n const topPos = {\n auto: targetPosition.top + target.offsetHeight / 2 - container.offsetHeight / 2,\n matchElement: targetPosition.top,\n matchStart: targetPosition.top,\n matchEnd: targetPosition.bottom - container.offsetHeight,\n }[size];\n style.left = size === 'auto' ? `${leftPos + vpLeft}px` : `${leftPos}px`;\n style.top = size === 'auto' ? `${topPos + vpTop}px` : `${topPos}px`;\n\n if (size === 'matchElement') {\n style.height = `${target.offsetHeight}px`;\n } else if (typeof size === 'function') {\n style.height = `${size(target.offsetHeight)}px`;\n }\n style.maxWidth = `${window.innerWidth - targetPosition.left - target.offsetWidth - offset}px`;\n return style;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../Message';\n\nfunction InfoNote({ children }) {\n return (\n
    \n \n { children }\n \n
    \n );\n}\n\nInfoNote.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default InfoNote;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ListItem(props) {\n const {\n className,\n children,\n selected,\n } = props;\n\n return (\n
  • \n {children}\n
  • \n );\n}\n\nListItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n selected: PropTypes.bool,\n};\n\nListItem.defaultProps = {\n className: '',\n};\n\nexport default ListItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ListItem from './js/ListItem';\n\nfunction List(props) {\n const {\n className,\n children,\n label,\n labelwidth,\n theme,\n style,\n } = props;\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-list'];\n\n if (theme) {\n cssClasses.push(`tyk-list--${theme}`);\n }\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n };\n\n const getListStyle = () => {\n const styleCopy = structuredClone(style);\n if (labelwidth) {\n styleCopy.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styleCopy;\n };\n\n return (\n
    \n {\n label !== undefined\n ? (\n \n )\n : null\n }\n
      \n {children}\n
    \n
    \n );\n}\n\nList.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n label: PropTypes.string,\n labelwidth: PropTypes.string,\n theme: PropTypes.string,\n style: PropTypes.instanceOf(Object),\n};\n\nList.defaultProps = {\n theme: 'default',\n style: {},\n};\n\nList.Item = ListItem;\n\nexport default List;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction NavBar({\n align = 'center',\n children,\n left,\n right,\n title,\n pre,\n subtitle,\n withTabs,\n}) {\n const subtitleContent = subtitle ?

    { subtitle }

    : null;\n return (\n
    \n
    \n {pre && (\n
    {pre}
    \n )}\n {\n title\n ? (\n
    \n

    { title }

    \n { subtitleContent }\n
    \n )\n : subtitleContent\n }\n
    \n {left && (\n
    { left }
    \n )}\n {right && (\n
    { right }
    \n )}\n
    \n
    \n { children }\n
    \n );\n}\n\nNavBar.propTypes = {\n align: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n title: PropTypes.string,\n subtitle: PropTypes.string,\n pre: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n left: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n right: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n withTabs: PropTypes.bool,\n};\n\nexport default NavBar;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction NavigationItem({ children }) {\n return (\n
  • \n {children}\n
  • \n );\n}\n\nNavigationItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nexport default NavigationItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport NavigationItem from './js/NavigationItem';\n\nfunction Navigation({ children }) {\n return (\n
      \n {children}\n
    \n );\n}\n\nNavigation.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nNavigation.Item = NavigationItem;\n\nexport default Navigation;\n","import { createContext } from 'react';\n\nexport const PortalContext = createContext();\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Collapsible from '../../Collapsible';\nimport { PortalContext } from '../panel-context';\n\nfunction PanelBody({\n children,\n noPadding,\n className,\n ...rest\n}) {\n const getCssClasses = useCallback(\n () => [\n 'tyk-panel__body',\n className,\n noPadding && 'no-padding',\n ].filter(Boolean).join(' '),\n [className, noPadding],\n );\n\n return (\n \n {\n (portalContext) => (\n portalContext.collapsable\n ? (\n \n { children }\n \n )\n : (\n \n { children }\n
    \n )\n )\n }\n \n );\n}\n\nPanelBody.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n noPadding: PropTypes.bool,\n className: PropTypes.string,\n};\n\nexport default PanelBody;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction PanelFooter(props) {\n const { children } = props;\n return (\n
    \n { children }\n
    \n );\n}\n\nPanelFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default PanelFooter;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport { PortalContext } from '../panel-context';\n\nclass PanelHeader extends Component {\n getCssClasses(props) {\n const { className } = this.props;\n let cssClasses = ['tyk-panel__header'];\n\n if (props.collapsable) {\n cssClasses.push('collapsable');\n }\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n }\n\n render() {\n const {\n children,\n } = this.props;\n\n return (\n \n {\n (portalContext) => {\n const HeaderTag = portalContext.theme === 'blank' ? 'h3' : 'div';\n const iconType = portalContext.collapsed ? 'chevron-down' : 'chevron-up';\n\n return (\n \n { children }\n {\n portalContext.collapsable\n ?
    \n : null\n }\n \n );\n }\n }\n
    \n );\n }\n}\n\nPanelHeader.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]).isRequired,\n className: PropTypes.string,\n};\n\nexport default PanelHeader;\n","import React, {\n useCallback, useEffect, useMemo, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport PanelBody from './js/PanelBody';\nimport PanelFooter from './js/PanelFooter';\nimport PanelHeader from './js/PanelHeader';\n\nimport { PortalContext } from './panel-context';\n\nfunction Panel(props) {\n const {\n children,\n className,\n collapsed,\n collapsable,\n theme,\n onToggleCollapse,\n collapsibleIconPosition = 'right',\n } = props;\n const [collapsedState, setCollapsedState] = useState(collapsed || false);\n\n useEffect(() => {\n if (collapsed !== collapsedState) {\n setCollapsedState(collapsed);\n }\n }, [collapsed]);\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-panel'];\n const panelTheme = `tyk-panel--${theme || 'default'}`;\n const collapsbleIconPosition = `tyk-panel__icon-collapse--${collapsibleIconPosition}`;\n\n cssClasses.push(panelTheme);\n cssClasses.push(collapsbleIconPosition);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n if (collapsedState) {\n cssClasses.push('tyk-panel--collapsed');\n }\n\n return cssClasses.join(' ');\n };\n\n const handleToggle = useCallback(() => {\n setCollapsedState(!collapsedState);\n\n if (onToggleCollapse) {\n onToggleCollapse(!collapsedState);\n }\n }, [collapsedState, onToggleCollapse]);\n\n const context = useMemo(() => ({\n collapsable,\n collapsed: collapsedState,\n onToggle: handleToggle,\n theme,\n collapsibleIconPosition,\n }), [collapsable, collapsedState, collapsibleIconPosition, theme, handleToggle]);\n\n return (\n
    \n \n {\n (typeof children === 'function')\n ? children({\n toggleCollapse: handleToggle,\n })\n : children\n }\n \n
    \n );\n}\n\nPanel.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n collapsable: PropTypes.bool,\n collapsibleIconPosition: PropTypes.string,\n collapsed: PropTypes.bool,\n theme: PropTypes.string,\n onToggleCollapse: PropTypes.func,\n};\n\nPanel.Body = PanelBody;\nPanel.Footer = PanelFooter;\nPanel.Header = PanelHeader;\n\nexport default Panel;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * Pill\n */\nfunction Pill(props) {\n const {\n children,\n className,\n theme,\n } = props;\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-pill', ...theme.split(' ').map((t) => `tyk-pill--${t}`)];\n\n if (className) {\n cssClasses = cssClasses.concat(className);\n }\n\n return cssClasses.join(' ');\n };\n\n return (\n
    \n {children}\n
    \n );\n}\n\nPill.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n /** Css classes that can be passed to the Pill element */\n className: PropTypes.string,\n /** Theme that can be applied to a Pill */\n theme: PropTypes.string,\n};\n\nPill.defaultProps = {\n theme: 'default',\n};\n\nexport default Pill;\n","import { useRef } from 'react';\n\n/**\n * RevealPanelService is a class that manages the resizing of a panel element.\n * It provides methods to set the panel's height, hide and show it, and attach\n * event listeners for resizing.\n */\nclass RevealPanelService {\n #state = null; // Private state for mouse interactions.\n\n #panel = null; // The panel element to be resized.\n\n #gutter = null; // The gutter element used for resizing.\n\n #wrapper = null; // The wrapper element that contains the panel and gutter.\n\n #onHeightChangeCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #onDragStartCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #onDragEndCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #dragStarted = false;\n\n /**\n * Sets a callback function to be executed when the panel is resized.\n * @param {function} callback - The callback function to be called on panel resize.\n */\n on(eventName, listener) {\n let list = null;\n if (eventName === 'onHeightChange') {\n list = this.#onHeightChangeCallbacks;\n } else if (eventName === 'onDragStart') {\n list = this.#onDragStartCallbacks;\n } else if (eventName === 'onDragEnd') {\n list = this.#onDragEndCallbacks;\n }\n\n if (list) {\n this.addListener(list, listener);\n }\n }\n\n off(eventName, listener) {\n let list = null;\n if (eventName === 'onHeightChange') {\n list = this.#onHeightChangeCallbacks;\n } else if (eventName === 'onDragStart') {\n list = this.#onDragStartCallbacks;\n } else if (eventName === 'onDragEnd') {\n list = this.#onDragEndCallbacks;\n }\n\n if (list) {\n this.removeListener(list, listener);\n }\n }\n\n /**\n * Sets the panel, gutter, and wrapper elements to be controlled by this class.\n * @param {HTMLElement} wrapper - The wrapper element containing the panel and gutter.\n * @param {HTMLElement} panel - The panel element to be resized.\n * @param {HTMLElement} gutter - The gutter element used for resizing.\n */\n setRefs(wrapper, panel, gutter) {\n if (this.#panel || this.#gutter || this.#wrapper) {\n this.unbindEvents();\n }\n this.#wrapper = wrapper;\n this.#panel = panel;\n this.#gutter = gutter;\n this.#state = null;\n this.bindEvents();\n }\n\n /**\n * Attaches event listeners for panel resizing.\n */\n bindEvents() {\n this.ensureRefs('bindEvents');\n this.#gutter.addEventListener('mousedown', this.onMouseDown.bind(this));\n document.addEventListener('mousemove', this.onMouseMove.bind(this));\n document.addEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n /**\n * Gets the current height of the panel.\n * @returns {number} - The height of the panel in pixels.\n */\n getHeight() {\n this.ensureRefs('getHeight');\n const size = this.#panel.getBoundingClientRect();\n return size.height;\n }\n\n /**\n * Handles the mouse down event, initiating the resizing process.\n * @param {MouseEvent} e - The mouse event object.\n */\n onMouseDown(e) {\n this.ensureRefs('onMouseDown');\n this.#state = {\n mouseDown: true,\n initialRect: this.#panel.getBoundingClientRect(),\n initialEvent: e,\n };\n }\n\n /**\n * Handles the mouse move event, adjusting the panel's height during resizing.\n * @param {MouseEvent} e - The mouse event object.\n */\n onMouseMove(e) {\n this.ensureRefs('onMouseMove');\n\n if (!this.#state) {\n return;\n }\n\n const isButtonDown = this.isPrimaryMouseButtonDown(e);\n if (!isButtonDown) {\n this.onMouseUp();\n return;\n }\n\n if (!this.#dragStarted) {\n this.#dragStarted = true;\n this.onDragStart.bind(this)();\n }\n\n const newY = this.#state.initialEvent.y - e.y;\n const finalHeight = Math.ceil(this.#state.initialRect.height + newY);\n this.setHeight(`${finalHeight}px`, 'mousemove');\n }\n\n // eslint-disable-next-line class-methods-use-this\n notifyListeners(list, value) {\n if (list && Array.isArray(list) && list.length) {\n list.forEach((fn) => {\n if (typeof fn === 'function') {\n fn(value);\n }\n });\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n addListener(list, listener) {\n if (list && Array.isArray(list) && typeof listener === 'function') {\n list.push(listener);\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n removeListener(list, listener) {\n if (list && Array.isArray(list) && typeof listener === 'function' && list.length) {\n const index = list.indexOf(listener);\n\n if (index > -1) {\n list.splice(index, 1);\n }\n }\n }\n\n onDragEnd() {\n if (this.#dragStarted) {\n this.notifyListeners(this.#onDragEndCallbacks, this.getHeight());\n }\n }\n\n onDragStart() {\n this.notifyListeners(this.#onDragStartCallbacks, this.getHeight());\n }\n\n // eslint-disable-next-line class-methods-use-this\n isPrimaryMouseButtonDown(e) {\n const flags = e.buttons !== undefined ? e.buttons : e.which;\n // eslint-disable-next-line no-bitwise\n const isDown = flags === 1;\n return isDown;\n }\n\n /**\n * Resets the state after the mouse up event, ending the resizing process.\n */\n onMouseUp() {\n this.#state = null;\n this.onDragEnd.bind(this)();\n this.#dragStarted = false;\n }\n\n /**\n * Sets the height of the panel.\n * @param {string} height - The new height value as a CSS string (e.g., \"100px\").\n */\n setHeight(height) {\n let heightVal = height;\n this.ensureRefs('setHeight');\n\n if (typeof heightVal === 'number') {\n heightVal += 'px';\n }\n\n this.#panel.style.height = heightVal;\n\n this.notifyListeners(this.#onHeightChangeCallbacks, this.getHeight());\n }\n\n /**\n * Ensures that the required elements (wrapper, panel, and gutter) are set.\n * Throws an error if they are missing.\n */\n ensureRefs(reason) {\n if (!this.#panel || !this.#gutter || !this.#wrapper) {\n throw new Error(\n `${reason}: Wrapper, panel, and gutter elements are required. Use setRefs method first.`,\n );\n }\n }\n\n /**\n * Checks if the panel is hidden.\n * @returns {boolean} - True if the panel is hidden; false otherwise.\n */\n isHidden() {\n this.ensureRefs('isHidden');\n return this.#wrapper.style.visibility === 'hidden';\n }\n\n /**\n * Hides the panel by setting its visibility to \"hidden\".\n */\n hide() {\n this.ensureRefs('hide');\n this.#wrapper.style.visibility = 'hidden';\n }\n\n /**\n * Shows the panel by setting its visibility to \"visible\".\n */\n show() {\n this.ensureRefs('show');\n this.#wrapper.style.visibility = 'visible';\n }\n\n /**\n * Unbinds the event listeners added for resizing.\n */\n unbindEvents() {\n this.#onHeightChangeCallbacks = [];\n this.#onDragStartCallbacks = [];\n this.#onDragEndCallbacks = [];\n this.#gutter.removeEventListener('mousedown', this.onMouseDown.bind(this));\n document.removeEventListener('mousemove', this.onMouseMove.bind(this));\n document.removeEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n deinit() {\n this.unbindEvents();\n }\n}\n\nexport const useRevealPanelService = () => {\n const revealPanelServiceRef = useRef(new RevealPanelService());\n return revealPanelServiceRef.current;\n};\n","import React, {\n useEffect,\n useRef,\n useImperativeHandle,\n forwardRef,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { createPortal } from 'react-dom';\nimport { useRevealPanelService } from './js/RevealPanelService';\n\nfunction RevealPanelHeaderLeft({ children }) {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <>{children};\n}\n\nRevealPanelHeaderLeft.propTypes = {\n children: PropTypes.instanceOf({}),\n};\n\nfunction RevealPanelHeaderRight({ children }) {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <>{children};\n}\n\nRevealPanelHeaderRight.propTypes = {\n children: PropTypes.instanceOf({}),\n};\n\nconst mergeClasses = (...classNames) => classNames.map((it) => (it || '').trim()).filter(Boolean).join(' ');\n\nfunction RevealPanel({\n children,\n height,\n onHeightChange = null,\n onDragStart = null,\n onDragEnd = null,\n style = null,\n parentSelector = null,\n contentStyle,\n contentClassName,\n gutterClassName,\n wrapperClassName,\n// eslint-disable-next-line consistent-return\n}, ref) {\n const panelRef = useRef(null);\n const gutterRef = useRef(null);\n const wrapperRef = useRef(null);\n\n const panelService = useRevealPanelService();\n\n useEffect(() => {\n if (!panelRef.current || !gutterRef.current || !wrapperRef.current) {\n return;\n }\n\n if (!panelService) {\n return;\n }\n\n panelService.setRefs(wrapperRef.current, panelRef.current, gutterRef.current);\n panelService.on('onHeightChange', onHeightChange);\n panelService.on('onDragStart', onDragStart);\n panelService.on('onDragEnd', onDragEnd);\n panelService.setHeight(height, 'initialize');\n\n // eslint-disable-next-line consistent-return\n return () => {\n panelService.unbindEvents();\n };\n }, []);\n\n useImperativeHandle(\n ref,\n () => {\n // bind this context\n const bind = (func) => func.bind(panelService);\n\n return {\n getHeight: bind(panelService.getHeight),\n setHeight: bind(panelService.setHeight),\n hide: bind(panelService.hide),\n show: bind(panelService.show),\n isHidden: bind(panelService.isHidden),\n deinit: bind(panelService.deinit),\n on: bind(panelService.on),\n off: bind(panelService.off),\n };\n },\n [],\n );\n\n let headerLeft = null;\n let headerRight = null;\n const contents = [];\n\n React.Children.forEach(children, (child) => {\n if (child && React.isValidElement(child)) {\n if (child.type === RevealPanelHeaderLeft) {\n headerLeft = child;\n } else if (child.type === RevealPanelHeaderRight) {\n headerRight = child;\n } else {\n contents.push(child);\n }\n }\n });\n\n const element = (\n
    \n
    \n
    \n\n
    {headerLeft}
    \n
    \n
    {headerRight}
    \n\n
    \n
    \n {contents}\n
    \n
    \n );\n\n if (parentSelector) {\n return createPortal(element, document.querySelector(parentSelector));\n }\n}\n\nRevealPanel.propTypes = {\n children: PropTypes.instanceOf({}),\n height: PropTypes.string,\n onHeightChange: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragEnd: PropTypes.func,\n parentSelector: PropTypes.string,\n style: PropTypes.instanceOf({}),\n contentStyle: PropTypes.instanceOf({}),\n contentClassName: PropTypes.string,\n gutterClassName: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\nconst TempRevealPanel = forwardRef(RevealPanel);\nTempRevealPanel.HeaderLeft = RevealPanelHeaderLeft;\nTempRevealPanel.HeaderRight = RevealPanelHeaderRight;\n\nexport default TempRevealPanel;\n","import { createContext } from 'react';\n\nexport const TabsContext = createContext();\n","import { createContext } from 'react';\n\nexport default createContext();\n","import React, { useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport TabContext from './TabContext';\nimport { usePrevious } from '../../../hooks';\n\nfunction TabContent(props) {\n const {\n addTab,\n hideTab,\n updateTab,\n showTab,\n children,\n selectedPath,\n tabData,\n tabsId,\n tabExists,\n path,\n rendered,\n hideTabContent,\n tabs,\n } = props;\n\n useEffect(() => {\n const tempTabData = { ...tabData };\n\n if (!tabExists(path)) {\n addTab(tempTabData, path);\n }\n }, [tabData, path]);\n\n const prevTabData = usePrevious(tabData);\n useEffect(() => {\n if (\n tabExists(path) && tabData?.title\n && (prevTabData?.title !== tabData?.title || prevTabData?.selected !== tabData.selected)\n ) {\n const tempTabData = { ...tabData };\n updateTab(tempTabData, path);\n }\n }, [tabData, path, prevTabData, tabs]);\n\n useEffect(() => {\n showTab(path);\n return () => hideTab(path);\n }, []);\n\n const shouldRender = useMemo(() => {\n if (!Object.keys(tabs).length) {\n return false;\n }\n\n if (hideTabContent || tabs[tabData.id].show === false) {\n return false;\n }\n\n if (!rendered) {\n return tabExists(path);\n }\n return selectedPath && selectedPath.indexOf(tabData.id) > -1;\n }, [hideTabContent, rendered, selectedPath, tabData, tabs]);\n\n const context = useMemo(() => ({ path, tabsId }), [path, tabsId]);\n\n if (!shouldRender) return null;\n return (\n
    -1 ? 'block' : 'none' }}>\n \n {children}\n \n
    \n );\n}\n\nTabContent.propTypes = {\n addTab: PropTypes.func,\n updateTab: PropTypes.func,\n hideTab: PropTypes.func,\n showTab: PropTypes.func,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n path: PropTypes.instanceOf(Array),\n hideTabContent: PropTypes.bool,\n rendered: PropTypes.bool,\n selectedPath: PropTypes.instanceOf(Array),\n tabExists: PropTypes.func,\n tabsId: PropTypes.string,\n tabData: PropTypes.instanceOf(Object),\n tabs: PropTypes.instanceOf(Object),\n};\n\nexport default TabContent;\n","import React, {\n useContext, useEffect, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { TabsContext } from '../tabs-context';\nimport TabContext from './TabContext';\nimport TabContent from './TabContent';\n\nfunction Tab(props) {\n const { id } = props;\n const tabsContext = useContext(TabsContext);\n const tabContext = useContext(TabContext);\n const {\n tabExists,\n selectedPath,\n addTab,\n updateTab,\n hideTab,\n showTab,\n rendered,\n hideTabContent,\n tabs,\n } = tabsContext;\n const {\n children,\n } = props;\n const [path, setPath] = useState('');\n\n useEffect(() => {\n let tempPath;\n if (tabContext && path) {\n if (tabContext.tabsId === tabsContext.id) {\n tempPath = tabContext.path.concat([id]);\n } else {\n tempPath = [id];\n }\n } else {\n tempPath = [id];\n }\n setPath(tempPath);\n }, [tabContext]);\n\n if (!path) {\n return null;\n }\n\n return (\n \n {children}\n \n );\n}\n\nTab.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n id: PropTypes.string,\n};\n\nTab.defaultProps = {};\n\nexport default Tab;\n","import React, {\n useEffect, useMemo, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport Tab from './js/Tab';\n\nimport Collapsible from '../Collapsible';\nimport Icon from '../Icon';\nimport { TabsContext } from './tabs-context';\n\nfunction Tabs(props) {\n const {\n children,\n className,\n id,\n onTabChange,\n type,\n hideTabContent,\n } = props;\n const [tabs, setTabs] = useState({});\n const [selectedPath, setSelectedPath] = useState([]);\n const [rendered, setRendered] = useState(false);\n const [initialPath, setInitialPath] = useState(null);\n\n useEffect(() => {\n setSelectedPath(initialPath);\n }, [initialPath]);\n\n const updateTabsList = (tabsState, path, tabData) => {\n let tempTabsState = { ...tabsState };\n const tempTabData = { ...tabData };\n const tempPath = path.slice(0);\n\n while (tempPath.length > 1) {\n tempTabsState = tempTabsState[tempPath.shift()];\n\n if (!tempTabsState) {\n tempTabsState = {};\n }\n }\n\n tempTabData.tempPath = tempPath;\n tempTabsState[tempPath.shift()] = tempTabData;\n\n return tempTabsState;\n };\n\n const toggleTab = (tabsState, path) => {\n let tempTabsState = { ...tabsState };\n const tempPath = path.slice(0);\n\n while (tempPath.length > 1) {\n tempTabsState = tempTabsState[tempPath.shift()];\n }\n\n const key = tempPath.shift();\n if (tempTabsState[key].collapsed === undefined) {\n tempTabsState[key].collapsed = true;\n } else {\n tempTabsState[key].collapsed = !tempTabsState[key].collapsed;\n }\n\n return tempTabsState;\n };\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-tabs'];\n\n cssClasses.push(`tyk-tabs--${type || 'default'}`);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n };\n\n const setCurrentSelectedPath = (path, tabData) => {\n const tempPath = path.slice(0);\n let tempRendered = true;\n\n if (tabData.collapsible) {\n tempPath.push(Object.keys(tabData.tabs)[0]);\n tempRendered = false;\n }\n\n setTabs((prevTabs) => {\n let tempTabs = { ...prevTabs };\n\n tempTabs = toggleTab(tempTabs, path);\n\n return tempTabs;\n });\n setSelectedPath(tempPath);\n setRendered(tempRendered);\n\n if (onTabChange) {\n onTabChange(tabData);\n }\n };\n\n const getTabCssClass = (tabId) => {\n const cssClasses = [];\n\n if (selectedPath && selectedPath.indexOf(tabId) > -1) {\n cssClasses.push('active');\n }\n\n return cssClasses.join(' ');\n };\n\n const genTabs = (currentTabs, path) => {\n if (!currentTabs) {\n return null;\n }\n\n return (\n
      \n {\n Object.keys(currentTabs).map((tabId, index) => {\n const tempPath = path ? path.concat([currentTabs[tabId].id]) : [currentTabs[tabId].id];\n const iconType = currentTabs[tabId].collapsed ? 'chevron-up' : 'chevron-down';\n\n if (currentTabs[tabId].show === false) {\n return null;\n }\n\n return (\n
    • \n \n { currentTabs[tabId].title }\n {\n currentTabs[tabId].collapsible\n ? \n : null\n }\n \n {\n currentTabs[tabId].collapsible\n ? (\n \n {genTabs(currentTabs[tabId].tabs, tempPath)}\n \n )\n : genTabs(currentTabs[tabId].tabs, tempPath)\n }\n
    • \n );\n })\n }\n
    \n );\n };\n\n const addTab = (tabData, path) => {\n setTabs((prevTabs) => updateTabsList({ ...prevTabs }, path, tabData));\n\n if (tabData.selected) {\n setInitialPath(path);\n }\n };\n\n const updateTab = (tabData, path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n tempTabs[tabData.id] = tabData;\n return tempTabs;\n });\n\n if (tabData.selected) {\n setCurrentSelectedPath(path, tabData);\n }\n };\n\n const hideTab = (path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n tempTabs[path].show = false;\n\n return tempTabs;\n });\n };\n\n const showTab = (path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n\n tempTabs[path].show = true;\n\n return tempTabs;\n });\n };\n\n const tabExists = (path) => {\n let tempTabs = { ...tabs };\n const tempPath = path.slice(0);\n while (tempPath.length > 1) {\n tempTabs = tempTabs[tempPath.shift()];\n }\n\n const key = tempPath.shift();\n\n return Boolean(tempTabs?.[key]);\n };\n\n const context = useMemo(() => ({\n id,\n addTab,\n hideTab,\n updateTab,\n showTab,\n tabExists,\n selectedPath,\n rendered,\n hideTabContent,\n tabs,\n }), [\n id,\n addTab,\n hideTab,\n updateTab,\n showTab,\n tabExists,\n selectedPath,\n rendered,\n hideTabContent,\n tabs,\n ]);\n\n return (\n
    \n {genTabs(tabs)}\n \n {\n (typeof children === 'function')\n ? children({\n hideTab,\n showTab,\n })\n : children\n }\n \n
    \n );\n}\n\nTabs.propTypes = {\n className: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n hideTabContent: PropTypes.bool,\n id: PropTypes.string,\n onTabChange: PropTypes.func,\n type: PropTypes.string,\n};\n\nTabs.Tab = Tab;\n\nexport default Tabs;\n","import React, {\n useCallback, useEffect, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport FloatingContainer from '../FloatingContainer';\nimport Icon from '../Icon';\n\nfunction Tooltip({\n render,\n className,\n children,\n position = 'auto',\n style,\n icon = false,\n closable,\n isOpened = false,\n additionalClickParents = [],\n ...props\n}) {\n const [isActive, setIsActive] = useState(false);\n const wrapperRef = useRef(null);\n const tooltipRef = useRef(null);\n const activeEvents = closable\n ? {\n onClick: () => setIsActive(true),\n }\n : {\n onMouseEnter: () => setIsActive(true),\n onMouseLeave: () => setIsActive(false),\n onFocus: () => setIsActive(true),\n onBlur: () => setIsActive(false),\n };\n\n const handleDocumentClick = useCallback((e) => {\n if ([...additionalClickParents, tooltipRef.current].some((p) => p?.contains?.(e.target))) {\n return;\n }\n setIsActive(false);\n }, [additionalClickParents]);\n\n useEffect(() => {\n document.addEventListener('click', handleDocumentClick, true);\n return () => document.removeEventListener('click', handleDocumentClick, true);\n }, [handleDocumentClick]);\n\n useEffect(() => {\n setIsActive(isOpened);\n }, [isOpened]);\n\n const classes = ['tyk-tooltip', className].filter(Boolean).join(' ');\n return (\n \n {children}\n {isActive && (\n \n
    \n {icon && (\n icon === true ? (\n \n ) : (\n icon\n )\n )}\n
    \n {render}\n
    \n {closable && (\n {\n e.stopPropagation();\n setIsActive(false);\n }}\n />\n )}\n
    \n \n )}\n
    \n );\n}\n\nTooltip.propTypes = {\n children: PropTypes.node.isRequired,\n /** custom styles to apply on hovered element */\n style: PropTypes.instanceOf(Object),\n /** describes where the tooltip should be displayed in relation\n * whith the hovered element: top, bottom, left, right\n */\n position: PropTypes.string,\n /** content of the tooltip, can be a string or a React node element */\n render: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.string,\n ]),\n /** additional tooltip classes */\n className: PropTypes.string,\n /** if `true` displays the \"question mark\" icon;\n * optionally you can pass a different icon\n */\n icon: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.node,\n ]),\n /** if `true` the tooltip is activated on click and an \"x\" is displayed to close it;\n * if `false` the tooltip is activated on hover and it closes when no longer hovering\n */\n closable: PropTypes.bool,\n /** handles the `isActive` state of the tooltip from outside */\n isOpened: PropTypes.bool,\n /** Additional dom elements to check if the document click was inside of them.\n * Useful when you want to open the tooltip after an interaction\n * with an element not inside the tooltip root.\n */\n additionalClickParents: PropTypes.instanceOf(Array),\n};\n\nexport default Tooltip;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Tooltip from '../Tooltip';\n/**\n * TextEllipsis component helps you to hide a part of a text,\n * but displaying it when it's being hovered.\n * The entire text is displayed with the help of Tooltip component\n */\n\nfunction TextEllipsis({ text, limit, position }) {\n return (\n text.length > limit\n ? (\n \n {text.substring(0, limit)}\n ...\n \n )\n : text\n );\n}\n\nTextEllipsis.propTypes = {\n /** Text to be shrinked by TextEllipsis */\n text: PropTypes.string,\n /** Number of characters that TextEllipsis would leave visible */\n limit: PropTypes.number,\n /** tooltip position */\n position: PropTypes.string,\n};\n\nexport default TextEllipsis;\n","import React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction shouldShowPage(currentNr, pageNr, totalNrOfPages) {\n const basePageNr = 5;\n const minimumNrOfPages = 10;\n\n if (totalNrOfPages < minimumNrOfPages) {\n return true;\n }\n\n if (\n pageNr < basePageNr\n && currentNr < basePageNr\n ) {\n return true;\n }\n\n if (\n pageNr > totalNrOfPages - basePageNr\n && currentNr > totalNrOfPages - basePageNr\n ) {\n return true;\n }\n\n if (\n currentNr >= pageNr - 2\n && currentNr <= pageNr + 2\n ) {\n return true;\n }\n\n return [0, 1, totalNrOfPages - 1, totalNrOfPages].includes(currentNr);\n}\n\nfunction getPagesArr(nrOfPages, selectedPage) {\n let i;\n const pagesArr = [];\n\n for (i = 0; i <= nrOfPages; i += 1) {\n if (shouldShowPage(i, selectedPage, nrOfPages)) {\n if (i > pagesArr.at(-1)) {\n pagesArr.push(`...-${i}`);\n }\n pagesArr.push(i + 1);\n }\n }\n\n return pagesArr;\n}\n\nfunction Pagination(props) {\n const {\n value = 0,\n totalNrOfPages,\n onChange,\n } = props;\n\n const [selectedPage, setSelectedPage] = useState(value);\n\n const pagesArray = useMemo(\n () => getPagesArr(totalNrOfPages, selectedPage),\n [selectedPage, totalNrOfPages],\n );\n\n function goToPage(pageNr) {\n setSelectedPage(pageNr);\n if (onChange) onChange(pageNr);\n }\n\n return (\n totalNrOfPages\n ? (\n
      \n {selectedPage > 0 && totalNrOfPages > 5 && (\n
    • \n \n
    • \n )}\n {\n pagesArray.map((pageNr) => (\n
    • \n {\n String(pageNr).startsWith('...')\n ? ...\n : \n }\n
    • \n ))\n }\n {selectedPage < totalNrOfPages && totalNrOfPages > 5 && (\n
    • \n \n
    • \n )}\n
    \n )\n : null\n );\n}\n\nPagination.propTypes = {\n value: PropTypes.number,\n totalNrOfPages: PropTypes.number,\n onChange: PropTypes.func,\n};\n\nexport default Pagination;\n","import { createContext } from 'react';\n\nexport const tableContext = createContext();\n","import React, { useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { tableContext } from '../tableContext';\nimport Icon from '../../Icon';\n\nexport function HeaderCell({ column }) {\n const { sortable } = column;\n const [sortOrder, setSortOrder] = useState(sortable?.default || 'ASC');\n const { state, sendMessage } = useContext(tableContext);\n return (\n {\n sendMessage('sort', { column, sortOrder });\n setSortOrder(sortOrder === 'ASC' ? 'DESC' : 'ASC');\n } : null}\n className={state.maxHeight ? 'fixed-header' : ''}\n >\n {column.name}\n {column.sortable && (\n \n \n \n )}\n \n );\n}\n\nHeaderCell.propTypes = {\n column: PropTypes.instanceOf(Object),\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { HeaderCell } from './header-cell';\nimport { tableContext } from '../tableContext';\n\nexport function Header({ allRowsSelected }) {\n const { state, sendMessage } = useContext(tableContext);\n const { columns, selectable } = state;\n\n const generateHeaders = () => columns.map((column) => (\n \n ));\n\n const generateSelectable = () => {\n const Component = selectable.type;\n return (\n \n {selectable?.allowSelectAll ? (\n
    \n {\n const isCheckbox = v?.target?.tagName.toLowerCase() === 'input' && v?.target?.type.toLowerCase() === 'checkbox';\n sendMessage('header.selectAll.change', isCheckbox ? v.target.checked : Boolean(v));\n }}\n >\n {selectable.values?.value}\n \n
    \n ) : (\n selectable.name || 'Select'\n )}\n \n );\n };\n\n return (\n \n \n {selectable?.position === 'LEFT' && generateSelectable()}\n {generateHeaders()}\n {selectable?.position === 'RIGHT' && generateSelectable()}\n \n \n );\n}\n\nHeader.propTypes = {\n allRowsSelected: PropTypes.bool,\n};\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * - Checkboxes are used when a user needs to select one or more values from a series of options.\n * - They can be also be used as a binary toggle but consider radio instead.\n * - Can be used with Formik respectively (FormikCheckbox)\n */\nclass Checkbox extends Component {\n getCssClasses() {\n const {\n inline, disabled, readOnly, theme = '', wrapperClassName = '',\n } = this.props;\n\n const cssClasses = [wrapperClassName];\n\n cssClasses.push('tyk-checkbox');\n\n if (inline) {\n cssClasses.push('tyk-checkbox--inline');\n }\n\n if (theme.trim()) {\n cssClasses.push(...theme.split(' ').map((t) => `tyk-checkbox--theme-${t}`));\n }\n\n if (disabled || readOnly) {\n cssClasses.push('tyk-checkbox--is-disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n displayError() {\n const { error } = this.props;\n if (!error) return null;\n\n return (\n

    \n {error}\n

    \n );\n }\n\n displayNote() {\n const { note } = this.props;\n if (!note) return null;\n\n return (\n

    \n {note}\n

    \n );\n }\n\n render() {\n const {\n input, value, label, ...rest\n } = this.props;\n return (\n \n
    \n \n {this.displayNote()}\n {this.displayError()}\n
    \n \n );\n }\n}\n\nCheckbox.propTypes = {\n /** Disable a checkbox */\n disabled: PropTypes.bool,\n /** Readonly prop behaves the same as disable on checkboxes */\n readOnly: PropTypes.bool,\n /** Align checkbox with in same line with other elements */\n inline: PropTypes.bool,\n /** Set a theme for checkbox */\n theme: PropTypes.string,\n /** Set an error state for checkbox if boolean will show just icon without message */\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Adds additional information under the checkbox element */\n note: PropTypes.string,\n input: PropTypes.instanceOf(Object),\n /** Adds a label to checkbox */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Set a name for checkbox */\n name: PropTypes.string,\n /** Set initial value for checkbox */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Make checkbox checked by default */\n checked: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Callback function executed on change of checkbox */\n onChange: PropTypes.func,\n /** CSS classes added to the wrapper of the component */\n wrapperClassName: PropTypes.string,\n};\n\nexport default Checkbox;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nexport function Cell({ col, row }) {\n if (!row.values[col.id]) {\n return ; // eslint-disable-line jsx-a11y/control-has-associated-label\n }\n\n if (col.type === 'string') {\n return (\n \n {row.values[col.id]?.value}\n \n );\n }\n const Component = col.type;\n return (\n \n \n {row.values[col.id].children ? row.values[col.id].children : null}\n \n \n );\n}\n\nCell.propTypes = {\n col: PropTypes.instanceOf(Object),\n row: PropTypes.instanceOf(Object),\n index: PropTypes.number,\n};\n","import React, { useCallback, useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport Checkbox from '../../../form/components/Checkbox';\nimport { Cell } from './cell';\nimport { tableContext } from '../tableContext';\n\nexport function Row({ row, index }) {\n const { state, sendMessage } = useContext(tableContext);\n const { columns, selectable } = state;\n\n const SelectableCheckbox = useCallback(() => (\n // eslint-disable-next-line jsx-a11y/control-has-associated-label\n \n sendMessage('row.selected', { index, selected: v.target.checked })}\n />\n \n ), [row.selected, index]);\n\n return (\n \n {selectable && selectable.position === 'LEFT' && SelectableCheckbox()}\n {columns.map((col) => (\n \n ))}\n {selectable && selectable.position === 'RIGHT' && SelectableCheckbox()}\n \n );\n}\n\nRow.propTypes = {\n row: PropTypes.instanceOf(Object),\n index: PropTypes.number,\n};\n","import React, { useContext } from 'react';\nimport { tableContext } from '../tableContext';\nimport { Row } from './row';\n\nexport function Body() {\n const { state } = useContext(tableContext);\n const { rows } = state;\n\n return (\n \n {\n // eslint-disable-next-line react/no-array-index-key\n rows.map((row, i) => )\n }\n \n );\n}\n","import React, {\n useCallback, useEffect, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport Message from '../Message';\nimport Pagination from '../../form/components/Pagination';\nimport Loader from '../Loader';\nimport InfiniteScroller from '../InfiniteScroller';\nimport { Header } from './js/header';\nimport { Body } from './js/body';\nimport { tableContext } from './tableContext';\n\n/**\n * This is tyk's table component used to render a data in a tabular view.\n * See the example configuration object below to understand how to hydrate the table component\n */\n\nfunction Table({\n value, onChange, noDataMessage, loading, infiniteScrolling,\n}) {\n const [state, setState] = useState(null);\n const [onChangeMsg, setOnChangeMsg] = useState('api');\n const itemsListRef = useRef(null);\n const sortRows = useCallback((col, sortOrder) => {\n setState((prevState) => ({\n ...prevState,\n sort: {\n order: sortOrder,\n col,\n },\n }));\n }, []);\n\n const selectAllRows = useCallback((selected) => {\n setState((prevState) => ({\n ...prevState,\n rows: prevState.rows.map((row) => ({ ...row, selected })),\n }));\n }, []);\n\n const selectRow = useCallback(({ index, selected }) => {\n setState((prevState) => ({\n ...prevState,\n rows: [\n ...prevState.rows.slice(0, index),\n { ...prevState.rows[index], selected },\n ...prevState.rows.slice(index + 1),\n ],\n }));\n }, []);\n\n const setPagination = useCallback((data) => {\n setState((prevState) => ({\n ...prevState,\n pagination: {\n ...prevState.pagination,\n current: data + 1,\n },\n }));\n }, []);\n\n const api = {\n getState: () => state,\n setState: (newState) => setState(newState),\n };\n\n const sendMessage = useCallback((message, data) => {\n setOnChangeMsg(message);\n if (message === 'sort') {\n sortRows(data.column.id, data.sortOrder);\n }\n\n if (message === 'header.selectAll.change') {\n selectAllRows(data);\n }\n\n if (message === 'row.selected') {\n selectRow(data);\n }\n\n if (message === 'pagination.change') {\n setPagination(data);\n }\n }, [sortRows, selectAllRows, selectRow, setPagination]);\n\n const context = useMemo(() => ({ state, sendMessage }), [state, sendMessage]);\n\n useEffect(() => setState(value), [value]);\n useEffect(() => {\n if (onChange) {\n onChange(onChangeMsg, state, api);\n }\n setOnChangeMsg('api');\n }, [state]);\n\n if (!state) {\n return ;\n }\n\n if (state.rows <= 0) {\n return {noDataMessage || 'No Data Available'};\n }\n\n const getTable = () => (\n \n
    selected)} />\n \n
    \n );\n\n return (\n \n
    \n {\n loading && \n }\n {\n infiniteScrolling && state.pagination\n ? (\n state.pagination.current}\n loadMore={(num) => sendMessage('pagination.change', num)}\n pageNumber={state.pagination.current - 1}\n initialLoad={false}\n >\n { getTable() }\n \n )\n : getTable()\n }\n
    \n {state.pagination && !infiniteScrolling && (\n
    \n sendMessage('pagination.change', num)}\n />\n
    \n )}\n
    \n );\n}\n\nTable.propTypes = {\n /** Configuration object used to render the component */\n value: PropTypes.shape({\n /** Configuration for table columns */\n columns: PropTypes.arrayOf(PropTypes.shape({\n /** Unique id of the column */\n id: PropTypes.string.isRequired,\n /** Name of the column */\n name: PropTypes.string,\n /** Type of column, String by default */\n type: PropTypes.oneOfType([\n /** Just renders cell data of type strings */\n PropTypes.string,\n /** Render cell of elements (eg. Input / Button) */\n PropTypes.element,\n /** Render a custom function/component */\n PropTypes.func,\n ]),\n sortable: PropTypes.oneOfType([\n /** Make Column sortable */\n PropTypes.bool,\n /** Configure sorting behaviour */\n PropTypes.shape({\n /** Set default sorting direction ASC / DESC */\n default: PropTypes.string,\n }),\n ]),\n })),\n /** Configuration for table rows */\n rows: PropTypes.arrayOf(PropTypes.shape({})),\n /** Configuration to make table rows selectable */\n selectable: PropTypes.shape({}),\n /** Renders pagination for table if the object is missing / empty no pagination is rendered. */\n pagination: PropTypes.shape({}),\n /** Sets maximum height for table container. */\n maxHeight: PropTypes.string,\n /** Styling for the table container. */\n styling: PropTypes.shape({\n /** It's recommended to add styles to a class and pass the class in this object */\n className: PropTypes.string,\n }),\n }).isRequired,\n /** Callback executed with message and value when there are changes on table */\n onChange: PropTypes.func,\n /** Renders a component with the given message when `config.rows` is empty */\n noDataMessage: PropTypes.string,\n /** Show placeholder loader */\n loading: PropTypes.bool,\n /** Adds infinite scroller on page and calls `onChange` with `pagination.change` message */\n infiniteScrolling: PropTypes.bool,\n};\n\nTable.defaultProps = {\n loading: false,\n infiniteScrolling: false,\n noDataMessage: 'No Data Available',\n onChange: null,\n};\n\nexport default Table;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Column({\n children,\n align,\n className,\n offset,\n size,\n ...rest\n}) {\n const classes = [\n 'tyk-col',\n className,\n align && `tyk-col--align-${align}`,\n ...size.split(' ').map((cSize) => `tyk-col--${cSize}`),\n ...(offset ? offset.split(' ') : []).map((cOffset) => `tyk-col--offset-${cOffset}`),\n ].filter(Boolean).join(' ');\n\n return (\n
    \n { children }\n
    \n );\n}\n\nColumn.propTypes = {\n /**\n * This property describes how the column element will be aligned vertically\n * within a Row: bottom, center, top\n */\n align: PropTypes.string,\n /** Css classes that can be passed to the column element */\n className: PropTypes.string,\n /**\n * Specifies the size of the column within a Row (values must be between 1 - 12)\n */\n size: PropTypes.string.isRequired,\n /**\n * Specifies the left gap a column can have within a Row (values must be between 1 - 12)\n */\n offset: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n ]),\n};\n\nexport default Column;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/** Row component which must be always present as a wrapper for Columns */\nfunction Row({\n className,\n nogutters,\n children,\n ...rest\n}) {\n const classes = [\n 'tyk-row',\n className,\n nogutters && 'no-gutters',\n nogutters && 'tyk-row--gutterless',\n ].filter(Boolean).join(' ');\n\n return (\n
    \n { children }\n
    \n );\n}\n\nRow.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n /** Css classes that can be passed to the Row element */\n className: PropTypes.string,\n /** Removes all the spaces between column */\n nogutters: PropTypes.bool,\n};\n\nexport default Row;\n","import { createContext } from 'react';\n\nexport const DropdownContext = createContext();\n","import React, { cloneElement, useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { DropdownContext } from '../dropdown-context';\nimport Icon from '../../../../components/Icon';\n\nfunction DropdownItem(props) {\n const {\n customdropdownitem,\n children,\n eventKey,\n href,\n target,\n title,\n onClick,\n } = props;\n const dropdownItemCLick = useCallback((dropdownContext, itemProps) => {\n dropdownContext.onSelectItem(eventKey, itemProps);\n\n if (onClick) onClick(eventKey);\n }, []);\n\n return (\n \n {\n (dropdownContext) => (\n dropdownItemCLick(dropdownContext, props)}\n onKeyUp={() => {}}\n >\n {\n customdropdownitem\n ? cloneElement(customdropdownitem, {})\n : (\n \n {\n eventKey\n && dropdownContext.selectedItem === eventKey\n && dropdownContext.showCheckmark\n ? \n : null\n }\n \n {title || children}\n \n \n )\n }\n \n )\n }\n \n );\n}\n\nDropdownItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n customdropdownitem: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n ]),\n eventKey: PropTypes.string,\n href: PropTypes.string,\n target: PropTypes.string,\n onClick: PropTypes.func,\n title: PropTypes.string,\n};\n\nexport default DropdownItem;\n","import React, {\n Component, createRef,\n} from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport DropdownItem from './js/DropdownItem';\nimport Button from '../../../components/Button';\nimport { DropdownContext } from './dropdown-context';\n\nclass Dropdown extends Component {\n static isElemInRightView(el, dropdownWidth) {\n const windowWidth = window.innerWidth;\n const offset = el.getBoundingClientRect();\n const elemRight = offset.left + dropdownWidth;\n\n return elemRight <= windowWidth;\n }\n\n static isElemInBottomView(el, dropdownHeight) {\n const windowHeight = window.innerHeight;\n const offset = el.getBoundingClientRect();\n const elHeight = el.clientHeight;\n const elemBottom = offset.top + elHeight + dropdownHeight;\n\n return elemBottom <= windowHeight;\n }\n\n constructor(props) {\n super(props);\n\n const {\n selectedItem,\n open,\n } = this.props;\n\n this.state = {\n opened: open,\n selectedItem: selectedItem || null,\n };\n\n this.dropdownRef = createRef();\n this.dropdownListRef = createRef();\n this.dropdownButtonRef = createRef();\n this.onSelectItem = this.onSelectItem.bind(this);\n this.toggleDropdown = this.toggleDropdown.bind(this);\n this.handleClickOutside = this.handleClickOutside.bind(this);\n }\n\n componentDidMount() {\n document.addEventListener('mousedown', this.handleClickOutside);\n\n if (this.dropdownListRef.current) {\n this.getStyles();\n }\n }\n\n componentDidUpdate(prevProps) {\n const {\n open,\n } = this.props;\n const {\n opened,\n } = this.state;\n\n if (this.dropdownListRef.current) {\n this.getStyles();\n }\n\n if (\n !prevProps.open\n && open === true\n && !opened\n ) {\n this.toggleDropdown();\n }\n\n if (\n prevProps.open\n && open === false\n && opened\n ) {\n this.closeDropdown();\n }\n }\n\n componentWillUnmount() {\n document.removeEventListener('mousedown', this.handleClickOutside);\n }\n\n handleClickOutside(event) {\n if (\n this.dropdownListRef.current && !this.dropdownListRef.current.contains(event.target)\n && this.dropdownRef.current && !this.dropdownRef.current.contains(event.target)\n ) {\n this.closeDropdown();\n }\n }\n\n onSelectItem(itemId, itemProps) {\n const { closeOnSelect, onSelect } = this.props;\n const changes = {\n selectedItem: itemId,\n selectedItemProps: itemProps,\n };\n\n if (closeOnSelect) {\n changes.opened = false;\n }\n\n this.setState(changes);\n\n if (onSelect && typeof onSelect === 'function') {\n onSelect(itemId);\n }\n }\n\n getStyles() {\n const {\n display,\n position,\n offset,\n } = this.props;\n\n const dropdownEl = this.dropdownListRef.current;\n\n if (offset) {\n dropdownEl.style.top = `${offset.top}`;\n dropdownEl.style.left = `${offset.left}`;\n return;\n }\n\n const scrollTop = Math.max(\n document.documentElement.scrollTop,\n document.body.scrollTop,\n window.scrollY,\n );\n const el = this.dropdownRef.current;\n const elHeight = el.clientHeight;\n const dropdownHeight = dropdownEl ? dropdownEl.clientHeight : 0;\n const dropdownWidth = dropdownEl ? dropdownEl.clientWidth : 0;\n const offsetPosition = el.getBoundingClientRect();\n const { left, top } = offsetPosition;\n let customTop = 0;\n let customLeft = left;\n\n // calculate top position, depending on the element position on the page\n if (Dropdown.isElemInBottomView(el, dropdownHeight)) {\n customTop = top + scrollTop + elHeight;\n } else {\n customTop = top + scrollTop - dropdownHeight - 5;\n }\n\n if (!Dropdown.isElemInRightView(el, dropdownWidth)) {\n customLeft = left + el.clientWidth - dropdownWidth;\n }\n\n if (position !== 'relative') {\n dropdownEl.style.top = `${customTop}px`;\n if (display !== 'block') {\n dropdownEl.style.left = `${customLeft}px`;\n }\n }\n if (display !== 'block') {\n dropdownEl.style.minWidth = `${this.dropdownButtonRef.current.clientWidth}px`;\n }\n }\n\n getWrapperCssClasses() {\n const {\n btnGroup,\n btnGroupSize,\n className,\n btnTheme,\n wrapperClassName = '',\n } = this.props;\n let cssClasses = [wrapperClassName, 'tyk-dropdown'];\n\n cssClasses.push(`theme-${btnTheme || 'default'}`);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n if (btnGroup) {\n cssClasses.push('tyk-button-group');\n cssClasses.push(btnGroupSize ? `tyk-button-group--${btnGroupSize}` : 'tyk-button-group--md');\n }\n\n return cssClasses.join(' ');\n }\n\n getCssClasses() {\n const {\n opened,\n } = this.state;\n const {\n hasCustomContent,\n display,\n listclassnames,\n position,\n maxHeight,\n } = this.props;\n let cssClasses = ['tyk-dropdown-menu', 'tyk-dropdown'];\n\n if (maxHeight) {\n cssClasses.push('tyk-dropdown--scrollable');\n }\n\n if (opened) {\n cssClasses.push('opened');\n }\n\n if (listclassnames) {\n cssClasses = cssClasses.concat(listclassnames.split(' '));\n }\n\n if (display) {\n cssClasses.push('tyk-dropdown--block');\n }\n\n if (hasCustomContent) {\n cssClasses.push('tyk-dropdown--custom');\n }\n\n if (position === 'relative') {\n cssClasses.push('tyk-dropdown--relative');\n }\n\n return cssClasses.join(' ');\n }\n\n getBtnTitle() {\n const { btnTitle, stopButtonTextChange } = this.props;\n const { selectedItemProps } = this.state;\n\n if (!stopButtonTextChange && selectedItemProps?.title) {\n return selectedItemProps.title;\n }\n\n return btnTitle;\n }\n\n closeDropdown() {\n const { onClose } = this.props;\n\n this.setState({\n opened: false,\n }, () => {\n if (onClose) {\n onClose();\n }\n });\n }\n\n toggleDropdown() {\n const {\n opened,\n } = this.state;\n if (opened) {\n this.closeDropdown();\n\n return;\n }\n\n this.setState({\n opened: true,\n });\n }\n\n render() {\n const {\n appendTo,\n btnClassName,\n btnSize,\n customBtnTitle,\n hasCustomContent,\n btnTheme,\n children,\n label,\n showDropdownIcon,\n showTriggerButton,\n showCheckmark,\n disabled = false,\n maxHeight,\n } = this.props;\n const {\n selectedItem,\n opened,\n } = this.state;\n const DropdownWrapperTag = hasCustomContent ? 'div' : 'ul';\n return (\n \n {\n label\n ? (\n \n )\n : null\n }\n {\n showTriggerButton\n ? (\n \n { customBtnTitle || this.getBtnTitle() }\n \n )\n : null\n }\n {\n opened\n ? ReactDOM.createPortal(\n \n {\n opened\n ? (\n \n {\n (typeof children === 'function')\n ? children({\n closeDropdown: this.closeDropdown.bind(this),\n })\n : children\n }\n \n )\n : null\n }\n ,\n document.querySelector(appendTo || 'body'),\n )\n : null\n }\n \n );\n }\n}\n\nDropdown.propTypes = {\n appendTo: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n PropTypes.func,\n ]),\n closeOnSelect: PropTypes.bool,\n btnClassName: PropTypes.string,\n btnSize: PropTypes.string,\n btnGroupSize: PropTypes.string,\n btnTheme: PropTypes.string,\n btnTitle: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n customBtnTitle: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n btnGroup: PropTypes.bool,\n className: PropTypes.string,\n display: PropTypes.string,\n disabled: PropTypes.bool,\n hasCustomContent: PropTypes.bool,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n listclassnames: PropTypes.string,\n onClose: PropTypes.func,\n onSelect: PropTypes.func,\n open: PropTypes.bool,\n offset: PropTypes.instanceOf(Object),\n position: PropTypes.string,\n selectedItem: PropTypes.string,\n showDropdownIcon: PropTypes.bool,\n stopButtonTextChange: PropTypes.bool,\n showTriggerButton: PropTypes.bool,\n showCheckmark: PropTypes.bool,\n maxHeight: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\n\nDropdown.defaultProps = {\n closeOnSelect: false,\n showDropdownIcon: true,\n showTriggerButton: true,\n showCheckmark: true,\n open: false,\n};\n\nDropdown.Item = DropdownItem;\n\nexport default Dropdown;\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../../../components/Button';\nimport ButtonGroup from '../../../components/ButtonGroup';\n\nfunction DropdownTrigger({\n title,\n theme = 'primary',\n splitTrigger,\n toggle,\n onTriggerClick,\n value,\n}, ref) {\n return (\n !splitTrigger ? (\n \n {title}\n \n ) : (\n \n onTriggerClick(value) }}\n >\n {title}\n \n \n \n )\n );\n}\n\nDropdownTrigger.propTypes = {\n title: PropTypes.string,\n theme: PropTypes.string,\n splitTrigger: PropTypes.bool,\n toggle: PropTypes.func,\n dropdownRef: PropTypes.shape({\n current: PropTypes.instanceOf(Element),\n }).isRequired,\n onTriggerClick: PropTypes.func,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n};\n\nexport default forwardRef(DropdownTrigger);\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport FloatingContainer from '../../../components/FloatingContainer';\nimport List from '../../../components/List';\n\nfunction DropdownListWrapper({\n children,\n element,\n maxWidth,\n}, ref) {\n return (\n \n \n { children }\n \n \n );\n}\n\nDropdownListWrapper.propTypes = {\n element: PropTypes.shape({\n current: PropTypes.instanceOf(Element),\n }),\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n maxWidth: PropTypes.string,\n};\n\nexport default forwardRef(DropdownListWrapper);\n","import { createContext, useContext } from 'react';\n\nexport const DropdownContext = createContext();\n\nfunction useDropdowContext() {\n return useContext(DropdownContext);\n}\n\nexport default useDropdowContext;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport List from '../../../components/List';\nimport useDropdowContext from './useDrodpownContext';\n\nfunction DropdownItem({\n children,\n value,\n}) {\n const { onChange, value: dropdownValue } = useDropdowContext();\n return (\n \n onChange(value) }}\n >\n { children }\n \n \n );\n}\n\nDropdownItem.propTypes = {\n children: PropTypes.node,\n // eslint-disable-next-line\n value: PropTypes.any,\n};\n\nexport default DropdownItem;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport useDropdown from './useDropdown';\nimport DropdownTrigger from './DropdownTrigger';\nimport DropdownListWrapper from './DropdownListWrapper';\nimport DropdownItem from './DropdowItem';\nimport { DropdownContext } from './useDrodpownContext';\n\nfunction Dropdown2({\n children,\n title,\n theme,\n splitTrigger,\n onChange,\n value,\n setSelectedValueAsTitle,\n maxWidth,\n onTriggerClick,\n}) {\n const {\n isOpen,\n toggle,\n dropdownRef,\n dropdownListRef,\n } = useDropdown({\n splitTrigger,\n });\n\n const contextValue = useMemo(() => ({\n onChange,\n value,\n }), [onChange, value]);\n\n return (\n \n \n {isOpen && (\n \n { children }\n \n )}\n \n );\n}\n\nDropdown2.propTypes = {\n /** Title of the dropdown. It is being displayed in the Drodpown trigger */\n title: PropTypes.string,\n /** Theme of the dropdown trigger */\n theme: PropTypes.string,\n children: PropTypes.node,\n /** If true, the dropdown trigger will be split into two buttons.\n * one with the dropdown title and one for the arrow */\n splitTrigger: PropTypes.bool,\n /** Callback function called when a dropdown item is selected */\n onChange: PropTypes.func,\n /** Value of the selected dropdown item */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n /** If true, the selected value will be displayed in the dropdown trigger */\n setSelectedValueAsTitle: PropTypes.bool,\n /** sets the maximum width of the dropdown list menu */\n maxWidth: PropTypes.string,\n /** this function is being called when splitTrigger is true,\n * and receives as parameter the current value of the dropdown */\n onTriggerClick: PropTypes.func,\n};\n\nDropdown2.Item = DropdownItem;\n\nexport default Dropdown2;\n","import {\n useState, useRef, useCallback, useEffect,\n} from 'react';\n\nconst useDropdown = ({\n splitTrigger,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const dropdownRef = useRef(null);\n const dropdownListRef = useRef(null);\n\n const toggle = () => setIsOpen(!isOpen);\n\n const handleOutsideClick = useCallback((e) => {\n const triggerElement = !splitTrigger\n ? dropdownRef.current\n : dropdownRef.current.querySelector('.dropdown__trigger');\n if (\n isOpen\n && !triggerElement.contains(e.target)\n && !dropdownListRef.current.contains(e.target)\n ) {\n setIsOpen(false);\n }\n }, [isOpen]);\n\n useEffect(() => {\n document.addEventListener('mousedown', handleOutsideClick);\n return () => {\n document.removeEventListener('mousedown', handleOutsideClick);\n };\n }, [handleOutsideClick]);\n\n return {\n isOpen,\n toggle,\n dropdownRef,\n dropdownListRef,\n };\n};\n\nexport default useDropdown;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-ace\");","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport ace from 'ace-builds/src-noconflict/ace';\nimport AceEditor from 'react-ace';\nimport 'ace-builds/src-noconflict/mode-javascript';\nimport 'ace-builds/src-noconflict/mode-golang';\nimport 'ace-builds/src-noconflict/mode-python';\nimport 'ace-builds/src-noconflict/mode-css';\nimport 'ace-builds/src-noconflict/mode-json';\nimport 'ace-builds/src-noconflict/mode-xml';\nimport 'ace-builds/src-noconflict/mode-jsx';\nimport 'ace-builds/src-noconflict/ext-searchbox';\nimport 'ace-builds/src-noconflict/ext-beautify';\nimport 'ace-builds/src-noconflict/theme-github';\nimport jsonWorker from 'ace-builds/src-noconflict/worker-json';\n\nace.config.setModuleUrl('ace/mode/json_worker', jsonWorker);\n\nfunction CodeEditor(props) {\n const {\n disabled,\n readOnly,\n disableValidation,\n id,\n error,\n label,\n labelwidth,\n note,\n onBlur,\n onChange,\n theme,\n value,\n setOptions,\n wrapperClassName,\n } = props;\n const classes = [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const finalSetOptions = {\n ...setOptions,\n ...disableValidation && { useWorker: false },\n };\n\n const getCodeEditorError = useCallback(() => (\n error && error !== 'true' && error !== 'false'\n ? (\n

    \n {error}\n

    \n )\n : null\n ), [error]);\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const getNonLabelWidth = useCallback(() => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n }, [labelwidth]);\n\n const handleOnChange = useCallback((newValue) => {\n if (onChange) onChange(newValue);\n }, [onChange]);\n\n const handleOnBlur = useCallback(() => {\n if (onBlur) onBlur(value);\n }, [onBlur, value]);\n\n return (\n
    \n {\n label\n ? \n : null\n }\n
    \n {\n // eslint-disable-next-line\n editorInstance.container.style.resize = 'both';\n // mouseup = css resize end\n document.addEventListener('mouseup', () => (\n editorInstance.resize()\n ));\n }}\n setOptions={finalSetOptions}\n />\n {\n note\n ?

    { note }

    \n : null\n }\n { getCodeEditorError() }\n
    \n
    \n );\n}\n\nCodeEditor.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n disableValidation: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n mode: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n theme: PropTypes.string,\n value: PropTypes.string,\n setOptions: PropTypes.instanceOf(Object),\n wrapperClassName: PropTypes.string,\n};\n\nexport default CodeEditor;\n","import React, { Component, createRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\nimport Button from '../../../components/Button';\n\nconst getStateSelectedValues = (multiple, tags, value) => {\n if (!value) {\n return (multiple || tags) ? [] : null;\n }\n\n return value;\n};\n\nclass Combobox extends Component {\n static closeList() {\n return {\n cursor: -1,\n opened: false,\n };\n }\n\n static openList() {\n return {\n opened: true,\n };\n }\n\n static filterByName(itemValue, inputValue) {\n return itemValue.name.toLowerCase().indexOf(inputValue) > -1;\n }\n\n constructor(props) {\n super(props);\n const {\n multiple,\n tags,\n value,\n } = props;\n\n this.state = {\n cursor: -1,\n opened: false,\n width: 50,\n initialValue: value,\n stateSelectedValues: getStateSelectedValues(multiple, tags, value),\n searchText: '',\n tags,\n };\n\n this.comboboxRef = createRef();\n this.valuesListRef = createRef();\n this.inputRef = createRef();\n this.textRef = createRef();\n\n this.focusInput = this.focusInput.bind(this);\n this.onKeyUp = this.onKeyUp.bind(this);\n Combobox.openList = Combobox.openList.bind(this);\n this.handleClickOutside = this.handleClickOutside.bind(this);\n this.handleItemsNavigation = this.handleItemsNavigation.bind(this);\n this.handleComboboxDropdownClick = this.handleComboboxDropdownClick.bind(this);\n this.handleListItemClick = this.handleListItemClick.bind(this);\n this.handlePillRemoveClick = this.handlePillRemoveClick.bind(this);\n this.manageSelectedTags = this.manageSelectedTags.bind(this);\n }\n\n componentDidMount() {\n const { tags } = this.props;\n\n if (tags) {\n this.setInputWidth();\n }\n\n this.bindEvents();\n }\n\n componentWillUnmount() {\n this.unBindEvents();\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n if (\n JSON.stringify(nextProps.value) !== JSON.stringify(prevState.initialValue)\n || nextProps.tags !== prevState.tags\n ) {\n return {\n initialValue: nextProps.value,\n stateSelectedValues: getStateSelectedValues(\n nextProps.multiple,\n nextProps.tags,\n nextProps.value,\n ),\n tags: nextProps.tags,\n };\n }\n\n return null;\n }\n\n handleItemsNavigation(e) {\n const { tags } = this.props;\n if (['ArrowDown', 'ArrowUp'].indexOf(e.key) === -1) {\n return;\n }\n\n const { cursor } = this.state;\n const filteredValues = this.filterValues();\n let cursorNext;\n\n e.preventDefault();\n\n if (e.key === 'ArrowDown') {\n if (cursor === -1 || cursor === filteredValues.length - 1) {\n cursorNext = 0;\n } else if (cursor < filteredValues.length - 1) {\n cursorNext = cursor + 1;\n }\n }\n\n if (e.key === 'ArrowUp') {\n if (cursor > 0) {\n cursorNext = cursor - 1;\n } else {\n cursorNext = filteredValues.length - 1;\n }\n }\n\n if (this.valuesListRef.current && cursorNext > 4) {\n const scrollTop = (cursorNext - 4) * 38;\n\n this.valuesListRef.current.scrollTop = (!tags) ? 60 + scrollTop : scrollTop;\n } else if (this.valuesListRef.current) {\n this.valuesListRef.current.scrollTop = 0;\n }\n\n this.setState((previousState) => ({\n ...previousState,\n opened: true,\n cursor: cursorNext,\n }));\n }\n\n handleListItemClick(index) {\n // eslint-disable-next-line react/destructuring-assignment\n const clickedValue = this.props.values[index];\n if (clickedValue.disabled) return;\n\n const { multiple, tags } = this.props;\n\n const methodName = (tags) ? 'manageSelectedTags' : 'manageSelectedValues';\n const tempState = { ...this.state, ...this[methodName](index) };\n\n this.setState((previousState) => {\n if (!multiple && !tags) {\n tempState.opened = false;\n }\n\n return { ...previousState, ...tempState };\n });\n }\n\n handlePillRemoveClick(index) {\n const { disabled } = this.props;\n\n if (disabled) {\n return;\n }\n\n const tempState = this.removeSelectedValue(index);\n\n this.setState((previousState) => ({ ...previousState, ...tempState }));\n }\n\n handleClickOutside(event) {\n if (\n this.valuesListRef.current && !this.valuesListRef.current.contains(event.target)\n && this.comboboxRef.current && !this.comboboxRef.current.contains(event.target)\n ) {\n this.setState((previousState) => ({ ...previousState, ...Combobox.closeList() }));\n }\n }\n\n handleComboboxDropdownClick() {\n const { disabled } = this.props;\n\n if (disabled) {\n return;\n }\n\n this.setState((previousState) => ({ ...previousState, ...Combobox.openList() }));\n }\n\n onKeyUp(e) {\n const { tags, allowCustomValues } = this.props;\n const { cursor, opened } = this.state;\n const filteredValues = this.filterValues();\n let tempState = this.getSearchText();\n\n if (tags && e.key !== 'Escape') {\n tempState = { ...tempState, ...this.setInputWidth() };\n }\n\n if (e.key === 'Enter') {\n const methodName = (tags) ? 'manageSelectedTags' : 'manageSelectedValues';\n tempState = { ...tempState, ...this[methodName](cursor) };\n }\n\n if (allowCustomValues && e.key !== ' ' && tags) {\n tempState = { ...tempState, ...this.manageSelectedTags() };\n }\n\n if (\n !opened\n && this.inputRef.current.value\n && filteredValues?.length\n && e.key !== 'Escape'\n ) {\n tempState = { ...tempState, ...Combobox.openList() };\n }\n\n if (e.key === 'Escape' && opened) {\n tempState = { ...tempState, ...Combobox.closeList() };\n }\n\n if (opened && filteredValues && !filteredValues.length) {\n tempState = { ...tempState, ...Combobox.closeList() };\n }\n\n this.setState((previousState) => ({ ...previousState, ...tempState }));\n }\n\n getLabelStyles() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n getNonLabelWidth() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n setInputWidth() {\n return {\n width: 50 + this.textRef.current.offsetWidth,\n };\n }\n\n getSelectedIndex(value) {\n const { stateSelectedValues } = this.state;\n let position = -1;\n\n if (Array.isArray(stateSelectedValues)) {\n stateSelectedValues.forEach((item, index) => {\n if (item.id === value.id) {\n position = index;\n }\n });\n } else if (stateSelectedValues) {\n if (stateSelectedValues.id === value.id) {\n position = 0;\n }\n }\n\n return position;\n }\n\n getSearchText() {\n return {\n searchText: this.inputRef.current.value,\n };\n }\n\n getListItemCssClasses(value, index) {\n const cssClasses = [];\n const {\n cursor,\n } = this.state;\n\n if (cursor === index) {\n cssClasses.push('active');\n }\n\n if (value.disabled) {\n cssClasses.push('disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n getComboboxListCssClass() {\n const { opened } = this.state;\n const { tags, theme } = this.props;\n const themes = theme ? theme.split(' ') : [];\n\n const cssClasses = ['tyk-combobox__list'];\n\n if (opened) {\n cssClasses.push('tyk-combobox__list--opened');\n }\n\n if (tags) {\n cssClasses.push('tyk-combobox__list--has-tags');\n }\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n return cssClasses.join(' ');\n }\n\n getCssClasses() {\n const {\n error, disabled, theme, labelwidth,\n } = this.props;\n const cssClasses = ['tyk-form-group', 'tyk-combobox'];\n const themes = theme ? theme.split(' ') : [];\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (disabled) {\n cssClasses.push('disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n getInputError() {\n const { error } = this.props;\n\n return (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null;\n }\n\n getStyles() {\n const { scrollTop } = document.documentElement;\n const el = this.comboboxRef.current;\n const elHeight = el.offsetHeight;\n const elWidth = el.offsetWidth;\n\n const offset = el.getBoundingClientRect();\n const { left } = offset;\n let top = 0;\n\n top = offset.top + scrollTop + elHeight;\n\n return {\n top: `${top - 1}px`,\n left: `${left}px`,\n width: `${elWidth}px`,\n };\n }\n\n getComboboxDisplayData() {\n const { stateSelectedValues } = this.state;\n const { multiple, placeholder, values } = this.props;\n\n if (!stateSelectedValues) {\n return placeholder;\n }\n\n if (stateSelectedValues && Array.isArray(stateSelectedValues) && !stateSelectedValues.length) {\n return placeholder;\n }\n\n if (stateSelectedValues && !Array.isArray(stateSelectedValues) && !stateSelectedValues.id) {\n return placeholder;\n }\n\n if (Array.isArray(stateSelectedValues) && multiple) {\n return stateSelectedValues.reduce((prevValue, value, index) => prevValue + value.name + ((index !== stateSelectedValues.length - 1) ? ', ' : ''), '');\n }\n\n if (\n values?.length\n && !Array.isArray(stateSelectedValues) && !stateSelectedValues.name\n ) {\n return values.filter((value) => value.id === stateSelectedValues.id)[0].name;\n }\n\n return stateSelectedValues.name;\n }\n\n manageSelectedTags(index) {\n const { max, allowCustomValues } = this.props;\n const { stateSelectedValues } = this.state;\n const filteredValues = this.filterValues();\n const value = { id: this.inputRef.current.value, name: this.inputRef.current.value };\n\n if (allowCustomValues === false && index === -1) {\n return null;\n }\n\n const tempValue = filteredValues[index] || value;\n const selectedIndex = this.getSelectedIndex(tempValue);\n let selectedValues = {};\n\n this.inputRef.current.value = '';\n\n if (selectedIndex > -1 && this.isInInitialValues(tempValue)) {\n selectedValues = this.removeSelectedValue(selectedIndex);\n } else if (selectedIndex === -1) {\n if (max && stateSelectedValues.length >= max) {\n return selectedValues;\n }\n selectedValues = this.addSelectedValue(tempValue);\n }\n\n return selectedValues;\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n manageSelectedValues(index) {\n const { stateSelectedValues } = this.state;\n const { multiple, onChange, max } = this.props;\n const filteredValues = this.filterValues();\n const tempSelectedValues = filteredValues[index];\n let selectedValues;\n const selectedIndex = this.getSelectedIndex(tempSelectedValues);\n\n if (tempSelectedValues && multiple) {\n if (selectedIndex > -1) {\n selectedValues = this.removeSelectedValue(selectedIndex);\n } else {\n if (max && stateSelectedValues.length >= max) {\n return selectedValues;\n }\n selectedValues = this.addSelectedValue(filteredValues[index]);\n }\n } else {\n selectedValues = {\n stateSelectedValues: (selectedIndex === -1) ? tempSelectedValues : { id: null },\n };\n\n onChange?.((selectedIndex === -1) ? tempSelectedValues : null);\n }\n\n return selectedValues;\n }\n\n removeSelectedValue(index) {\n const { stateSelectedValues } = this.state;\n const { onChange } = this.props;\n const tempStateSelectedValues = JSON.parse(JSON.stringify(stateSelectedValues));\n\n tempStateSelectedValues.splice(index, 1);\n\n if (onChange && typeof onChange === 'function') {\n onChange(tempStateSelectedValues.length ? tempStateSelectedValues : null);\n }\n\n return {\n stateSelectedValues: tempStateSelectedValues,\n searchText: '',\n };\n }\n\n addSelectedValue(value) {\n const { stateSelectedValues } = this.state;\n const { onChange } = this.props;\n const tempStateSelectedValues = JSON.parse(JSON.stringify(stateSelectedValues));\n\n tempStateSelectedValues.push(value);\n\n if (onChange && typeof onChange === 'function') {\n onChange(tempStateSelectedValues.length ? tempStateSelectedValues : null);\n }\n\n return {\n stateSelectedValues: tempStateSelectedValues,\n searchText: '',\n };\n }\n\n isInInitialValues(value) {\n const { values } = this.props;\n let ok = false;\n\n values.forEach((item) => {\n if (value.id === item.id) {\n ok = true;\n }\n });\n\n return ok;\n }\n\n filterValues() {\n const { values, searchItem } = this.props;\n\n if (!this.inputRef.current) {\n return values;\n }\n\n const arr = values\n .filter(\n (value) => (searchItem\n ? searchItem(value, this.inputRef.current.value.toLowerCase())\n : Combobox.filterByName(value, this.inputRef.current.value.toLowerCase())),\n );\n\n return arr;\n }\n\n bindEvents() {\n document.addEventListener('mousedown', this.handleClickOutside);\n }\n\n unBindEvents() {\n document.removeEventListener('mousedown', this.handleClickOutside);\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n reset() {\n const { multiple, tags, value } = this.props;\n\n this.setState({\n stateSelectedValues: getStateSelectedValues(multiple, tags, value),\n });\n }\n\n focusInput() {\n if (this.inputRef.current) {\n this.inputRef.current.focus();\n }\n }\n\n renderInput(filteredValues) {\n const {\n disabled,\n tags,\n max,\n placeholder,\n } = this.props;\n const {\n width, searchText, stateSelectedValues,\n } = this.state;\n\n return (\n {}}\n ref={this.comboboxRef}\n >\n {\n tags\n ? (\n <>\n {\n (stateSelectedValues || []).map((value, index) => (\n
  • \n \n \n \n { value.name }\n
  • \n ))\n }\n \n {(max === undefined || stateSelectedValues?.length < max) && (\n <>\n {\n if (e.key === 'Enter') {\n e.preventDefault();\n }\n this.handleItemsNavigation(e);\n }}\n onKeyUp={this.onKeyUp}\n placeholder={(!stateSelectedValues?.length) ? placeholder : ''}\n ref={this.inputRef}\n style={{\n width: (!stateSelectedValues?.length) ? '100%' : `${width}px`,\n }}\n />\n \n { searchText }\n \n \n )}\n {filteredValues.length > 0 && (\n \n )}\n \n \n )\n : (\n {}}\n >\n { this.getComboboxDisplayData() }\n \n \n )\n }\n \n );\n }\n\n renderDropdown(filteredValues) {\n const { tags } = this.props;\n const { opened } = this.state;\n return (\n \n {\n !tags\n ? (\n
  • \n \n
  • \n )\n : null\n }\n {\n filteredValues\n .map((value, index) => (\n {}}\n key={value.id}\n >\n {\n (this.getSelectedIndex(value) > -1)\n ? \n : null\n }\n \n {' '}\n { value.name }\n \n \n ))\n }\n \n );\n }\n\n render() {\n const {\n CustomListComponent,\n id,\n label,\n note,\n } = this.props;\n const { opened } = this.state;\n\n const filteredValues = this.filterValues();\n\n return (\n <>\n
    \n {\n label\n ? \n : null\n }\n \n {this.renderInput(filteredValues)}\n {\n note\n ?

    { note }

    \n : null\n }\n { this.getInputError() }\n
    \n \n {\n // eslint-disable-next-line no-nested-ternary\n !CustomListComponent\n ? opened && filteredValues.length\n ? ReactDOM.createPortal(\n this.renderDropdown(filteredValues),\n document.querySelector('body'),\n )\n : null\n : (\n \n )\n }\n \n );\n }\n}\n\nCombobox.propTypes = {\n allowCustomValues: PropTypes.bool,\n CustomListComponent: PropTypes.elementType,\n searchItem: PropTypes.func,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n id: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n multiple: PropTypes.bool,\n max: PropTypes.number,\n note: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n tags: PropTypes.bool,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.instanceOf(Object),\n PropTypes.instanceOf(Array),\n ]),\n values: PropTypes.instanceOf(Array),\n};\n\nCombobox.defaultProps = {\n allowCustomValues: true,\n};\n\nexport default Combobox;\n","import React, { useState, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from '../../../../components/Icon';\nimport Pill from '../../../../components/Pill';\n\nfunction Value(props) {\n const {\n value,\n max,\n tags,\n tagSeparators,\n addTagOnBlur,\n placeholder,\n disabled,\n renderValue,\n valueOverflow,\n focus,\n onMessage: sendMessage,\n readOnly,\n } = props;\n const INPUT_MIN_WIDTH = 60;\n const inputRef = useRef(null);\n const dummyElementRef = useRef(null);\n const [inputValue, setInputValue] = useState('');\n const [inputWidth, setInputWidth] = useState(`${INPUT_MIN_WIDTH + 10}px`);\n\n function entryFieldOnChange(val) {\n if (tagSeparators.some((ts) => val.slice(-1) === ts)) return;\n const dummy = dummyElementRef.current;\n dummy.innerHTML = val;\n setInputWidth(`${Math.max(dummy.clientWidth, INPUT_MIN_WIDTH) + 10}px`);\n setInputValue(val);\n sendMessage('tag.input.change', val);\n }\n\n function entryFieldOnKeyDown(key, val) {\n if (!tags) return;\n if (val === '' && key === 'Backspace' && value.length) {\n sendMessage('tag.remove', value[value.length - 1].id);\n return;\n }\n if (key === 'Enter') {\n sendMessage('tag.input.enter', val);\n entryFieldOnChange('');\n return;\n }\n if (key === 'ArrowUp') {\n sendMessage('tag.input.arrowUp');\n return;\n }\n if (key === 'ArrowDown') {\n sendMessage('tag.input.arrowDown');\n return;\n }\n if (key === 'Escape') {\n sendMessage('tag.input.escape');\n return;\n }\n if (tagSeparators.includes(key)) {\n sendMessage('tag.add', val);\n entryFieldOnChange('');\n }\n }\n\n function triggerAction() {\n sendMessage('text-value.click');\n }\n\n function textValue(val, isPlaceholder = false) {\n if (readOnly) return val || '-';\n\n const classes = [\n 'tyk-combobox2__text-value',\n `overflow-${valueOverflow}`,\n isPlaceholder && 'is-placeholder',\n ].filter(Boolean).join(' ');\n return (\n \n {val}\n \n );\n }\n\n function renderCustomValue(v) {\n const config = {\n tags,\n tagSeparators,\n placeholder,\n disabled,\n renderValue,\n sendMessage,\n };\n return renderValue(v, config);\n }\n\n function renderTag(v) {\n if (renderValue) return renderCustomValue(v);\n\n return (\n \n {\n e.stopPropagation();\n sendMessage('tag.remove', v.id);\n }}\n aria-label=\"remove\"\n >\n \n \n { v.name }\n \n );\n }\n\n function getTags() {\n return (\n <>\n {value.map(renderTag)}\n {value.length < max && (\n <>\n entryFieldOnChange(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') e.preventDefault();\n entryFieldOnKeyDown(e.key, e.target.value);\n }}\n onFocus={() => sendMessage('tag.input.focus')}\n onBlur={(e) => {\n sendMessage('tag.input.blur', e.target.value);\n if (addTagOnBlur) entryFieldOnChange('');\n }}\n />\n \n \n )}\n \n );\n }\n\n useEffect(() => {\n if (focus && inputRef.current) inputRef.current.focus();\n }, [focus]);\n\n if (readOnly) {\n return
    {textValue(value.map((v) => v.name).join(', '))}
    ;\n }\n\n if (tags) return getTags();\n if (renderValue) {\n return value.length === 0 ? textValue(placeholder, true) : value.map(renderCustomValue);\n }\n return value.length === 0\n ? textValue(placeholder, true)\n : textValue(value.map((v) => v.name).join(', '));\n}\n\nValue.propTypes = {\n value: PropTypes.instanceOf(Array),\n max: PropTypes.number,\n tags: PropTypes.instanceOf(Array),\n tagSeparators: PropTypes.instanceOf(Array),\n addTagOnBlur: PropTypes.bool,\n placeholder: PropTypes.string,\n disabled: PropTypes.bool,\n renderValue: PropTypes.func,\n valueOverflow: PropTypes.string,\n focus: PropTypes.bool,\n onMessage: PropTypes.func,\n readOnly: PropTypes.bool,\n};\n\nexport default Value;\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from '../../../../components/Icon';\n\nfunction List(props) {\n const {\n listRef,\n tags,\n values,\n searchValue,\n activeItem,\n onMessage: sendMessage,\n renderListItem,\n selectAll,\n showSearch,\n } = props;\n\n useEffect(() => {\n if (!listRef.current) return;\n const activeElement = listRef.current.querySelector('.active');\n if (activeElement) activeElement.scrollIntoView({ block: 'end' });\n }, [activeItem]);\n\n function renderItem(item) {\n if (renderListItem) {\n return renderListItem(item, {\n tags, searchValue, sendMessage, activeItem,\n });\n }\n\n return (\n !item.disabled && sendMessage('value.select', { item })}\n onKeyDown={() => {}}\n >\n {item.selected && }\n {item.name}\n \n );\n }\n\n function renderSelectAllOption() {\n const isAllSelected = values.every((v) => v.selected);\n const isNoneSelected = values.every((v) => !v.selected);\n const label = selectAll?.label ?? 'Select All';\n const mode = selectAll?.mode ?? 'select';\n const show = selectAll?.show ?? 'always';\n const render = selectAll?.render;\n\n const shouldRenderOption = show === 'always' || (mode === 'select' ? !isAllSelected : !isNoneSelected);\n if (!shouldRenderOption) return null;\n\n if (render) {\n return render({\n label,\n mode,\n show,\n isAllSelected,\n isNoneSelected,\n }, sendMessage);\n }\n return (\n sendMessage('value.select-all', mode === 'select' ? !isAllSelected : isNoneSelected)}\n onKeyDown={() => {}}\n >\n {(mode === 'select' ? isAllSelected : isNoneSelected) && }\n {label}\n \n );\n }\n\n return (\n <>\n {!tags && showSearch && (\n
    \n sendMessage('search.change', e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Escape') sendMessage('search.escape');\n if (e.key === 'ArrowUp') sendMessage('search.arrowUp');\n if (e.key === 'ArrowDown') sendMessage('search.arrowDown');\n if (e.key === 'Enter') sendMessage('search.enter');\n }}\n />\n
    \n )}\n {values.length > 0 && (\n
      \n {Boolean(selectAll) && (\n renderSelectAllOption()\n )}\n {values.map(renderItem)}\n
    \n )}\n \n );\n}\n\nList.propTypes = {\n listRef: PropTypes.instanceOf(Object),\n tags: PropTypes.bool,\n values: PropTypes.instanceOf(Array),\n searchValue: PropTypes.string,\n activeItem: PropTypes.instanceOf(Object),\n onMessage: PropTypes.func,\n renderListItem: PropTypes.func,\n selectAll: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n mode: PropTypes.oneOf(['select', 'unselect']),\n show: PropTypes.oneOf(['always', 'notSameState']),\n render: PropTypes.func,\n }),\n ]),\n showSearch: PropTypes.bool,\n};\n\nexport default List;\n","import React, {\n useCallback, useEffect, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\nimport FloatingContainer from '../../../components/FloatingContainer';\n\nimport Value from './js/Value';\nimport List from './js/List';\n\n/**\n * Dropdown-like component that can display selected values as regular text,\n * tags, or in a custom way.\n * You can select values from a list or type in new ones.\n */\nfunction Combobox2({\n value: propValue,\n values: propValues = [],\n valueOverflow = 'single',\n label = '',\n labelwidth,\n tags = false,\n tagSeparators = [' ', 'Enter'],\n addTagOnBlur = false,\n max: maxProp,\n multiple = false,\n placeholder = '',\n theme,\n note = '',\n error = '',\n disabled = false,\n readOnly = false,\n allowCustomValues = true,\n searchItem: matchItemFn,\n renderValue,\n renderListItem,\n renderList: renderListProp,\n CustomListComponent,\n onBeforeChange = () => true,\n onChange = () => {},\n floatingContainerConfig,\n expandMode,\n infiniteScrollerConfig,\n displayDropdownTrigger = true,\n selectAll,\n closeOnSelect,\n showSearch = false,\n required = false,\n validateOnChange = () => {},\n wrapperClassName = '',\n ...restProps\n}) {\n const max = useMemo(\n () => (multiple ? Infinity : maxProp || (tags ? Infinity : 1)),\n [multiple, maxProp, tags],\n );\n const renderList = CustomListComponent\n ? (values, { sendMessage }) => (\n sendMessage('value.select', { item: values[index] })}\n />\n )\n : renderListProp;\n\n const rootRef = useRef(null);\n const comboboxControlRef = useRef(null);\n const dropdownRef = useRef(null);\n const listRef = useRef(null);\n\n const [value, setValue] = useState(getValueFromProp(propValue, propValues));\n const [values, setValues] = useState(propValues.map((v) => normalizeValue(v)));\n const [searchValue, setSearchValue] = useState('');\n const [activeItem, setActiveItem] = useState(null);\n const [isOpened, setIsOpened] = useState(false);\n const [valuesExpanded, setValuesExpanded] = useState(false);\n const [localValidationError, setLocalValidationError] = useState('');\n\n function getThemeClasses() {\n const themes = theme ? theme.split(' ') : [];\n return themes.map((iTheme) => `tyk-form-group--${iTheme}`);\n }\n\n function getCssClasses() {\n return [\n wrapperClassName,\n 'tyk-form-group',\n 'tyk-combobox2',\n ...getThemeClasses(),\n (error || localValidationError) && 'has-error',\n labelwidth && 'tyk-form-group--label-has-width',\n disabled && 'disabled',\n expandMode && 'is-expand-mode',\n ].filter(Boolean).join(' ');\n }\n\n function getFilteredValues() {\n const defaultFn = (v, s) => v?.name?.toLowerCase()?.includes(s);\n const fn = matchItemFn || defaultFn;\n const filteredValues = values.filter((v) => fn(v, searchValue.toLowerCase()));\n return filteredValues;\n }\n\n function openDropdown() {\n setIsOpened(true);\n }\n\n function closeDropdown() {\n setIsOpened(false);\n if (!tags) updateSearchValue('');\n setActiveItem(null);\n }\n\n function updateSearchValue(newSearchValue) {\n setSearchValue(newSearchValue);\n if (activeItem && getFilteredValues().every((fv) => fv.id !== activeItem.id)) {\n setActiveItem(null);\n }\n if (newSearchValue && !isOpened) openDropdown();\n }\n\n function isValidValue(newValues, lastValue) {\n const localError = validateOnChange(newValues, lastValue);\n setLocalValidationError(localError);\n return localError === undefined;\n }\n\n function updateValue(newValues) {\n setValue(newValues);\n onChange(max === 1 && !tags ? (newValues[0] || null) : newValues);\n }\n\n function addTag(val) {\n if (!val) return;\n if (value.length >= max) return;\n if (value.some(({ name }) => name === val)) return;\n\n const listValueIndex = values.findIndex((lv) => lv.name === val);\n let newValue;\n let finalValue = [...value];\n let selectedValues;\n\n if (listValueIndex === -1) {\n if (allowCustomValues) {\n newValue = { id: val, name: val };\n finalValue = [...value, newValue];\n }\n } else {\n selectedValues = [\n ...values.slice(0, listValueIndex),\n { ...values[listValueIndex], selected: true },\n ...values.slice(listValueIndex + 1),\n ];\n newValue = values[listValueIndex];\n finalValue = [...value, values[listValueIndex]];\n }\n\n if (isValidValue(finalValue, newValue) && onBeforeChange(value, finalValue)) {\n if (selectedValues) {\n setValues(selectedValues);\n }\n updateValue(finalValue);\n }\n }\n\n function removeTag(id) {\n if (required && max === 1) return;\n\n const listValueIndex = values.findIndex((lv) => lv.id === id);\n const newValue = value.filter((v) => v.id !== id);\n\n if (!onBeforeChange(value, newValue)) return;\n\n if (listValueIndex !== -1) {\n setValues([\n ...values.slice(0, listValueIndex),\n { ...values[listValueIndex], selected: false },\n ...values.slice(listValueIndex + 1),\n ]);\n }\n updateValue(newValue);\n }\n\n function selectValue({ id }) {\n const val = values.find((v) => v.id === id);\n const valIndex = values.findIndex((v) => v.id === id);\n let finalValue = value;\n let selectedValues = values;\n\n if (val.selected) {\n if (!required || max !== 1) {\n finalValue = value.filter((v) => v.id !== val.id);\n selectedValues = values.with(valIndex, { ...val, selected: false });\n }\n } else if (value.length < max) {\n finalValue = [...value, val];\n selectedValues = values.with(valIndex, { ...val, selected: true });\n } else if (max === 1) {\n finalValue = [val];\n selectedValues = values.map((v) => ({ ...v, selected: v.id === val.id }));\n }\n\n if (isValidValue(finalValue, val) && onBeforeChange(value, finalValue)) {\n updateValue(finalValue);\n setValues(selectedValues);\n }\n\n if (max === 1 || closeOnSelect) {\n closeDropdown();\n }\n }\n\n function selectAllValues(selected) {\n if (values.length > max) return;\n const newValue = selected ? [...values] : [];\n\n if (!onBeforeChange(value, newValue)) return;\n\n updateValue(newValue);\n setValues(values.map((v) => ({ ...v, selected })));\n if (closeOnSelect) closeDropdown();\n }\n\n function moveUpActiveItem() {\n const visibleItems = getFilteredValues().filter((v) => !v.disabled);\n if (visibleItems.length === 0) return;\n if (activeItem === null || visibleItems.length === 1) {\n setActiveItem(visibleItems[visibleItems.length - 1]);\n return;\n }\n const activeIndex = visibleItems.findIndex((v) => v.id === activeItem.id);\n setActiveItem(visibleItems[activeIndex > 0 ? activeIndex - 1 : visibleItems.length - 1]);\n }\n\n function moveDownActiveItem() {\n const visibleItems = getFilteredValues().filter((v) => !v.disabled);\n if (visibleItems.length === 0) return;\n if (activeItem === null || visibleItems.length === 1) {\n setActiveItem(visibleItems[0]);\n return;\n }\n const activeIndex = visibleItems.findIndex((v) => v.id === activeItem.id);\n setActiveItem(visibleItems[activeIndex < visibleItems.length - 1 ? activeIndex + 1 : 0]);\n }\n\n function executeTriggerAction() {\n if (expandMode) {\n setValuesExpanded(!valuesExpanded);\n } else {\n openDropdown();\n }\n }\n\n function handleDocumentClick(e) {\n const isClickInside = rootRef.current?.contains(e.target)\n || dropdownRef.current?.contains(e.target);\n if (!isClickInside) {\n closeDropdown();\n }\n }\n\n function onClickCapture(e) {\n if (!disabled) return;\n if (!expandMode) {\n e.stopPropagation();\n return;\n }\n\n const triggerElement = rootRef.current.querySelector('.tyk-combobox2__values-container-trigger');\n if (!triggerElement) return;\n\n const isClickOnTrigger = triggerElement === e.target || triggerElement.contains(e.target);\n if (!isClickOnTrigger) e.stopPropagation();\n }\n\n function onTagMessage(message, data) {\n if (message === 'add') {\n addTag(data);\n updateSearchValue('');\n }\n\n if (message === 'remove') removeTag(data);\n\n if (message === 'input.change') updateSearchValue(data);\n\n if (message === 'input.enter') {\n if (activeItem) {\n selectValue(activeItem);\n } else if (tagSeparators.includes('Enter')) {\n addTag(data);\n updateSearchValue('');\n }\n }\n\n if (message === 'input.arrowUp') {\n openDropdown();\n moveUpActiveItem();\n }\n\n if (message === 'input.arrowDown') {\n openDropdown();\n moveDownActiveItem();\n }\n\n if (message === 'input.escape') closeDropdown();\n\n if (message === 'input.blur' && addTagOnBlur) {\n addTag(data);\n updateSearchValue('');\n }\n\n if (message === 'input.focus') {\n openDropdown();\n }\n }\n\n const onMessage = useCallback((message, data) => {\n if (message.startsWith('tag.')) onTagMessage(message.slice(4), data);\n\n if (message === 'value.select') selectValue(data.item);\n\n if (message === 'value.select-all') selectAllValues(data);\n\n if (message === 'text-value.click') openDropdown();\n\n if (message === 'search.change') updateSearchValue(data);\n\n if (message === 'search.escape') closeDropdown();\n\n if (message === 'search.arrowUp') moveUpActiveItem();\n\n if (message === 'search.arrowDown') moveDownActiveItem();\n\n if (message === 'search.enter') {\n if (activeItem) selectValue(activeItem);\n }\n }, [\n onTagMessage,\n selectValue,\n selectAllValues,\n openDropdown,\n updateSearchValue,\n closeDropdown,\n moveUpActiveItem,\n moveDownActiveItem,\n ]);\n\n const renderIcon = useCallback(\n () => (expandMode\n ? \n : \n ),\n [expandMode, valuesExpanded],\n );\n\n useEffect(() => {\n window.addEventListener('click', handleDocumentClick, true);\n return () => window.removeEventListener('click', handleDocumentClick, true);\n }, []);\n\n useEffect(() => {\n if (propValues.length) {\n const newValues = propValues.map((v) => ({\n ...normalizeValue(v),\n selected: value.some((sv) => sv.id === v.id),\n }));\n setValues(newValues);\n setValue((val) => val.map((v) => newValues.find((nv) => nv.id === v.id) || v));\n } else if (values.length) {\n setValues([]);\n }\n }, [propValues]);\n\n useEffect(() => {\n const newValue = getValueFromProp(propValue, values);\n setValue(newValue);\n setValues((vals) => vals.map((v) => ({\n ...normalizeValue(v),\n selected: newValue.some((nv) => nv.id === v.id),\n })));\n }, [propValue]);\n\n useEffect(() => {\n if (!expandMode) return () => {};\n\n const valuesElement = comboboxControlRef.current.querySelector('.tyk-combobox2__current-values');\n const updateScroll = () => {\n valuesElement.scrollTop = valuesElement.scrollHeight;\n };\n /* eslint-disable-next-line no-undef */\n const mobserver = new MutationObserver(updateScroll);\n const robserver = new ResizeObserver(updateScroll);\n\n mobserver.observe(valuesElement, { attributes: true, childList: true, subtree: true });\n robserver.observe(valuesElement);\n\n return () => {\n mobserver.disconnect();\n robserver.disconnect();\n };\n });\n\n const filteredValues = getFilteredValues();\n const currentValuesClasses = [\n 'tyk-combobox2__current-values',\n expandMode && 'expand-mode',\n `tyk-combobox2__current-values--${valuesExpanded ? 'expanded' : 'collapsed'}`,\n ].join(' ');\n\n return (\n \n {label && (\n \n )}\n {!readOnly && (\n \n
    \n \n \n
    \n {displayDropdownTrigger && (\n \n {renderIcon()}\n \n )}\n \n {isOpened && (!tags || filteredValues.length > 0) && (\n \n {renderList ? (\n renderList(filteredValues, {\n tags,\n searchValue,\n activeItem,\n listRef,\n sendMessage: onMessage,\n })\n ) : (\n \n )}\n \n )}\n {note && (\n

    {note}

    \n )}\n {((error && error !== 'true' && error !== 'false') || Boolean(localValidationError)) && (\n

    {error || localValidationError}

    \n )}\n \n )}\n {readOnly && (\n
    \n \n
    \n )}\n \n );\n}\n\nCombobox2.propTypes = {\n /** If `true` it allows entering values that are not in the list. */\n allowCustomValues: PropTypes.bool,\n /** Alias for `renderList`\n * used for backwards compatibility with the old Combobox component. */\n CustomListComponent: PropTypes.elementType,\n /** A function used for filtering elements displayed in the list when typing in. */\n searchItem: PropTypes.func,\n /** A custom component that will be used to display a value. */\n renderValue: PropTypes.func,\n /** A custom component that will be used to display an item in the dropdown list. */\n renderListItem: PropTypes.func,\n /** A custom component that will be used to display the entire content of the dropdown. */\n renderList: PropTypes.func,\n disabled: PropTypes.bool,\n /** hides the UI form element and displayes just the value as text */\n readOnly: PropTypes.bool,\n error: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n /** The maximum number of values that can be selected/added. */\n max: PropTypes.number,\n /** Shorthand for max=Infinity */\n multiple: PropTypes.bool,\n note: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n /**\n * Callback called before changing the value of the component.\n * The value change will succeed only if the callback's return value is truthy.\n * The callback is called with two arguments: 1) the previous value, 2) the next value */\n onBeforeChange: PropTypes.func,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n /** Enables the display of values as `Pill` components that can be\n * removed without opening the dropdown. */\n tags: PropTypes.bool,\n /** A list of characters that will trigger the creation of a tag when typed. */\n tagSeparators: PropTypes.arrayOf(PropTypes.string),\n /** If set to true a tag will be created whenever the component loses focus\n * and there is something typed in. */\n addTagOnBlur: PropTypes.bool,\n theme: PropTypes.string,\n /** The value of the component. It can be a string, an array,\n * or an object with an `id` property. */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n ]),\n /** An array of selectable values. */\n values: PropTypes.instanceOf(Array),\n /** Config object passed to the internal floating container component. */\n floatingContainerConfig: PropTypes.instanceOf(Object),\n /** If set to `single` it will display the values on a single line\n * with an ellipsis at the end. */\n valueOverflow: PropTypes.oneOf(['single', 'multiple']),\n /**\n * If set to `true` whenever the user clicks on the dropdown trigger\n * the selected values container\n * will expand to show all selected values instead of opening the dropdown.\n */\n expandMode: PropTypes.bool,\n /** Config object passed to the internal infinite scroller component. */\n infiniteScrollerConfig: PropTypes.instanceOf(Object),\n /** Toggles the display of the dropdown trigger. */\n displayDropdownTrigger: PropTypes.bool,\n /**\n * If a boolean it will toggle the select all functionality from the dropdown.\n * It can also be an object with the shape `{ label, show, mode, render }`.\n * label - A string displayed as the select all option\n * show - It can be one of `['always', 'notSameState']`.\n * `always` means the option will always be displayed.\n * `notSameState` means it will be displayed only if the list items are\n * not all with the same state (depending on the `mode` value)\n * mode - It can be one of `['select', 'unselect']` and makes sense only\n * when the `show` property is `notSameState`\n * `select` means the select all option will only be displayed if not all\n * items are selected\n * `unselect` means the option will be displayed if no items are selected\n */\n selectAll: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n mode: PropTypes.oneOf(['select', 'unselect']),\n show: PropTypes.oneOf(['always', 'notSameState']),\n render: PropTypes.func,\n }),\n ]),\n /** It `true` the dropdown will close after selecting a value. */\n closeOnSelect: PropTypes.bool,\n /** Toggles the display of the search input from the dropdown. */\n showSearch: PropTypes.bool,\n /** If it is required and can only select one value once you have something\n * selected you will not be able to deselect */\n required: PropTypes.bool,\n /** Validates newly added value before adding it to the selected values.\n * Returns an error string in case of error otherwise it returns undefined\n */\n validateOnChange: PropTypes.func,\n wrapperClassName: PropTypes.string,\n};\n\nexport default Combobox2;\n\nfunction normalizeValue(value, values) {\n let v = value;\n if (typeof value === 'string') v = { id: value, name: value };\n else if (!value.hasOwnProperty('name')) v = { ...value, name: value.id }; // eslint-disable-line no-prototype-builtins\n if (!values) return v;\n const existingVal = values.find((ev) => ev.id === v.id);\n return existingVal ? { ...v, ...existingVal } : v;\n}\n\nfunction getValueFromProp(value, values) {\n if (!value) return [];\n if (Array.isArray(value)) return value.map((v) => normalizeValue(v, values));\n return [normalizeValue(value, values)];\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"flatpickr\");","import React, {\n useEffect, useState, useRef, useCallback,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport flatpickr from 'flatpickr';\n\nimport Icon from '../../../components/Icon';\nimport { usePrevious } from '../../../hooks';\n\nfunction DatePicker({\n children,\n disabled,\n readOnly = false,\n error,\n id,\n label,\n labelwidth,\n note,\n onClose,\n onChange,\n onOpen,\n theme,\n config = {},\n value,\n wrapperClassName = '',\n}) {\n const [pickerInstance, setPickerInstance] = useState(null);\n const dateRef = useRef(null);\n\n const prevValue = usePrevious(value);\n\n const hasValueChanged = useCallback((prevDate, currentDate) => {\n if (!prevDate) return true;\n if (!Array.isArray(currentDate)) return prevDate.getTime() !== currentDate.getTime();\n\n let diffDates = currentDate;\n\n if (prevDate && currentDate.length && prevDate.length) {\n diffDates = currentDate.filter((date, index) => date.getTime() !== prevDate[index].getTime());\n\n return diffDates.length > 0;\n }\n\n return currentDate.length > 0;\n }, []);\n\n const onDateChange = useCallback((dateValue) => {\n const finalValue = config.mode === 'range' ? dateValue : dateValue[0] || null;\n\n if (!onChange) return;\n\n if (config.mode === 'range') {\n if (finalValue.length === 2 && hasValueChanged(prevValue, finalValue)) {\n onChange(finalValue);\n }\n } else {\n onChange(finalValue);\n }\n }, [prevValue, onChange, hasValueChanged]);\n\n useEffect(() => {\n if (dateRef.current && !pickerInstance) {\n const instance = flatpickr(dateRef.current, {\n ...config, defaultDate: value, onChange: onDateChange, onClose, onOpen,\n });\n setPickerInstance(instance);\n }\n\n return () => {\n if (pickerInstance) {\n pickerInstance.destroy();\n }\n };\n }, [pickerInstance]);\n\n useEffect(() => {\n if (pickerInstance) {\n let tempValue = value;\n\n if (typeof value === 'string') {\n tempValue = new Date(value);\n } else if (Array.isArray(value)) {\n tempValue = value.map((date) => new Date(date));\n }\n\n if (hasValueChanged(prevValue, tempValue)) {\n pickerInstance.set('onChange', onDateChange);\n if (config.mode === 'range') {\n if (tempValue && tempValue.length === 2) {\n pickerInstance.setDate(tempValue, true);\n }\n } else {\n pickerInstance.setDate(tempValue, true);\n }\n }\n }\n }, [prevValue, value, pickerInstance]);\n\n const classes = [\n 'tyk-form-group',\n 'tyk-form-group--addon-right',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const getLabelStyles = () => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n };\n\n const getNonLabelWidth = () => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n };\n\n const openCalendar = useCallback(() => {\n if (!pickerInstance) return;\n\n pickerInstance.open();\n }, [pickerInstance]);\n\n const getInputError = () => (\n (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null\n );\n\n const getInputField = () => {\n let inputStyle = {};\n let addonStyle = {};\n\n if (config?.inline) {\n inputStyle = {\n height: 0,\n padding: 0,\n width: 0,\n visibility: 'hidden',\n };\n\n addonStyle = {\n display: 'none',\n };\n }\n return (\n <>\n \n {}}\n tabIndex={0}\n style={addonStyle}\n aria-label=\"show calendar\"\n >\n \n \n \n );\n };\n\n return (\n <>\n {\n children?.length\n ? children({ openCalendar, ref: dateRef })\n : (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n
    \n {getInputField()}\n
    \n {\n note\n ?

    { note }

    \n : null\n }\n { getInputError() }\n
    \n )}\n \n )\n }\n
    \n {readOnly && !value && '-'}\n {readOnly && value && flatpickr.formatDate(value, config.dateFormat || 'd/m/Y')}\n
    \n \n );\n}\n\nDatePicker.propTypes = {\n config: PropTypes.instanceOf(Object),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n PropTypes.func,\n ]),\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n onClose: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n onOpen: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n theme: PropTypes.string,\n error: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n PropTypes.string,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default DatePicker;\n","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n // eslint-disable-next-line no-console\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n case 'aaa':\n return dayPeriodEnumValue;\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, dirtyDelimiter);\n}\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\nexport default formatters;","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n var dateTimeFormat;\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n return result;\n};\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import defaultLocale from \"../../locale/en-US/index.js\";\nexport default defaultLocale;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n var originalDate = toDate(dirtyDate);\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n var formatter = formatters[firstCharacter];\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n return substring;\n }).join('');\n return result;\n}\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n if (!matched) {\n return input;\n }\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import React, { Component, createRef } from 'react';\nimport isEqual from 'react-fast-compare';\nimport PropTypes from 'prop-types';\n\nimport Column from '../../../../layout/Column';\nimport Row from '../../../../layout/Row';\nimport Button from '../../../../components/Button';\n\nclass EditableListForm extends Component {\n static getMainFormValue(components) {\n const mainFormValue = new Array(components.length);\n\n components.forEach((component, index) => {\n mainFormValue[index] = component.props.value || undefined;\n });\n\n return mainFormValue;\n }\n\n constructor(props) {\n super(props);\n const {\n components,\n } = props;\n\n this.submitButtonRef = createRef();\n this.handleOnChange = this.handleOnChange.bind(this);\n this.submitForm = this.submitForm.bind(this);\n\n this.state = {\n components,\n errors: {},\n mainError: null,\n mainFormValue: EditableListForm.getMainFormValue(components),\n refs: [],\n };\n }\n\n componentDidMount() {\n const {\n addValueOnFieldChange,\n getMainFormButtonWidth,\n } = this.props;\n this.createRefs();\n\n if (getMainFormButtonWidth) {\n getMainFormButtonWidth(\n !addValueOnFieldChange\n ? this.submitButtonRef.current.clientWidth\n : 0,\n );\n }\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const state = {};\n const {\n components: propsComponents,\n } = nextProps;\n\n const {\n components: stateComponents,\n } = prevState;\n if (\n !isEqual(propsComponents, stateComponents)\n && !isEqual(\n EditableListForm.getMainFormValue(propsComponents),\n EditableListForm.getMainFormValue(stateComponents),\n )\n ) {\n state.mainFormValue = EditableListForm.getMainFormValue(propsComponents);\n state.components = propsComponents;\n }\n\n return state;\n }\n\n handleOnChange(component, index, value) {\n const { addValueOnFieldChange } = this.props;\n let tempState = this.state;\n\n tempState = { ...tempState, ...this.validateValue(value, component.props) };\n\n if (!tempState.errors[component.props.name]) {\n tempState.mainFormValue[index] = value;\n\n if (component.props.onChange) {\n component.props.onChange(value);\n }\n }\n\n this.setState((previousState) => ({ ...previousState, ...tempState }), () => {\n if (addValueOnFieldChange) {\n this.submitForm();\n }\n });\n }\n\n getFormCssClasses() {\n const { noLabels } = this.props;\n const cssClasses = ['tyk-editable-list__form'];\n\n if (noLabels) {\n cssClasses.push('no-labels');\n }\n\n return cssClasses.join(' ');\n }\n\n getButtonClassName() {\n const { buttonStyle, displayType } = this.props;\n const cssClasses = [];\n\n if (buttonStyle) {\n cssClasses.push(buttonStyle);\n }\n\n if (displayType) {\n cssClasses.push(displayType);\n }\n\n return cssClasses.join(' ');\n }\n\n getComponentsError(component) {\n const {\n error,\n errors,\n mainError,\n } = this.state;\n\n if (error || mainError) {\n errors[component.props.name] = 'true';\n } else if (!(error || mainError) && errors[component.props.name] === 'true') {\n delete errors[component.props.name];\n }\n\n return errors[component.props.name] ? errors[component.props.name].toString() : undefined;\n }\n\n createRefs() {\n const { components } = this.props;\n const refs = [];\n\n components.forEach(() => {\n refs.push(createRef());\n });\n\n this.setState({\n refs,\n });\n }\n\n validateValue(value, props) {\n const { mainError, errors } = this.state;\n const { error, errorPersist } = this.props;\n\n const validatorsNames = props.validate ? Object.keys(props.validate) : [];\n // if there is a general form error don't take field errors into consideration\n const tempState = {\n errors: (error || mainError) ? {} : { ...errors },\n };\n let ok = true;\n\n // if the error should stay after changing fields values don't take actions\n if (errorPersist) {\n return tempState;\n }\n\n // validate each field from the form\n for (const validatorName of validatorsNames) {\n const validator = props.validate[validatorName];\n if (validator(value)) {\n tempState.errors[props.name] = props.validationmessages[validatorName];\n ok = false;\n break;\n }\n }\n\n // if the field is ok delete its error\n if (ok) {\n delete tempState.errors[props.name];\n }\n\n tempState.mainError = null;\n\n return tempState;\n }\n\n hasMainFormErrors(errors) {\n const { components, errorPersist } = this.props;\n const { mainFormValue } = this.state;\n const tempState = {\n errors: { ...errors },\n };\n\n if (errorPersist && mainFormValue.indexOf(undefined) === -1) {\n return false;\n }\n\n if (Object.keys(tempState.errors).length > 0) {\n return true;\n }\n\n components.forEach((component, index) => {\n tempState.errors = {\n ...tempState.errors,\n ...this.validateValue(mainFormValue[index], component.props).errors,\n };\n });\n\n return Object.keys(tempState.errors).length > 0;\n }\n\n resetForm() {\n const { refs } = this.state;\n const {\n components,\n } = this.props;\n\n refs.forEach((ref) => {\n if (ref.current?.reset) {\n ref.current.reset();\n }\n });\n\n this.setState({\n errors: {},\n mainError: null,\n mainFormValue: EditableListForm.getMainFormValue(components),\n });\n }\n\n showMainError(error) {\n this.setState({\n mainError: error,\n });\n }\n\n submitForm() {\n const { errors, mainFormValue } = this.state;\n const {\n errorPersist, onSubmit, validate, validationmessage,\n } = this.props;\n\n if (errorPersist) {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n\n if (\n Object.keys(errors).length === 0\n && (onSubmit && typeof onSubmit === 'function')\n ) {\n if (validate) {\n if (validate(mainFormValue)) {\n this.showMainError(validationmessage);\n } else {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n } else {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n }\n }\n\n render() {\n const {\n addValueOnFieldChange, components, buttonName, disabled, displayType, error,\n } = this.props;\n const {\n mainError, refs, errors,\n } = this.state;\n\n return (\n
    \n
    \n \n {\n components.map((component, index) => {\n const ComponentName = component.name;\n console.log('ComponentName', ComponentName);\n const {\n onChange, value, ...rest\n } = component.props;\n\n return (\n \n \n \n );\n })\n }\n \n {\n !addValueOnFieldChange\n ? (\n \n \n { buttonName || 'ADD' }\n \n \n )\n : null\n }\n
    \n {\n error || mainError\n ? (\n
    \n

    \n { error || mainError }\n

    \n
    \n )\n : null\n }\n
    \n );\n }\n}\n\nEditableListForm.propTypes = {\n addValueOnFieldChange: PropTypes.bool,\n noLabels: PropTypes.bool,\n buttonName: PropTypes.string,\n buttonStyle: PropTypes.string,\n components: PropTypes.instanceOf(Array),\n displayType: PropTypes.string,\n disabled: PropTypes.bool,\n getMainFormButtonWidth: PropTypes.func,\n error: PropTypes.string,\n errorPersist: PropTypes.bool,\n onSubmit: PropTypes.func,\n validate: PropTypes.func,\n validationmessage: PropTypes.string,\n};\n\nexport default EditableListForm;\n","import React, { Component, createRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport format from 'date-fns/format';\nimport isDate from 'date-fns/isDate';\n\nimport EditableListForm from './js/EditableListForm';\nimport Column from '../../../layout/Column';\nimport Icon from '../../../components/Icon';\nimport Row from '../../../layout/Row';\n\nclass EditableList extends Component {\n static getItemListValue(itemValue) {\n let tempValue = null;\n\n if (typeof itemValue === 'string') {\n tempValue = itemValue;\n }\n\n if (Object.prototype.toString.call(itemValue) === '[object Object]') {\n tempValue = itemValue.name;\n }\n\n if (isDate(itemValue)) {\n tempValue = format(itemValue, 'dd/MM/yyyy');\n }\n\n return tempValue;\n }\n\n static getListItemCssClass(displayType) {\n const cssClasses = [];\n\n if (displayType === 'inline') {\n cssClasses.push('tyk-editable-list-item--inline');\n }\n\n return cssClasses.join(' ');\n }\n\n constructor(props) {\n super(props);\n const {\n value,\n } = this.props;\n\n this.state = {\n initialValue: value || '',\n value: value || [],\n buttonWidth: 0,\n };\n\n this.startIndex = 1;\n\n this.handleFormSubmit = this.handleFormSubmit.bind(this);\n this.getMainFormButtonWidth = this.getMainFormButtonWidth.bind(this);\n this.dropdownListItemRef = createRef();\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const state = {};\n\n if (\n nextProps.value && JSON.stringify(nextProps.value)\n !== JSON.stringify(prevState.initialValue)\n ) {\n state.value = nextProps.value || [];\n state.initialValue = nextProps.value || '';\n }\n\n return state.value ? state : null;\n }\n\n handleFormSubmit(value) {\n const tempState = this.addValues(value);\n this.setState((previousState) => ({ ...previousState, ...tempState }), () => {\n this.triggerOnChange(tempState.value.length - 1, null, value);\n });\n }\n\n handleItemUpdate(index, value) {\n let prevValue;\n this.setState((previousState) => {\n const tempState = { ...previousState };\n prevValue = fromJS(tempState.value[index].value).toJS();\n tempState.value[index].value = value;\n tempState.value[index].editMode = false;\n\n return tempState;\n }, () => {\n this.triggerOnChange(index, prevValue, value);\n });\n }\n\n handleChildrenOnChange(index, value) {\n let prevValue;\n this.setState((previousState) => {\n const tempState = { ...previousState };\n prevValue = fromJS(tempState.value[index].children).toJS();\n tempState.value[index].children = value;\n\n return tempState;\n }, () => {\n this.triggerOnChange(index, prevValue, value);\n });\n }\n\n getListItemsCssClass(displayType) {\n const { config } = this.props;\n const cssClasses = ['tyk-editable-list-items'];\n\n cssClasses.push(config.displayType || 'table');\n\n if (displayType === 'inline') {\n cssClasses.push('tyk-editable-list-items--inline');\n }\n\n return cssClasses.join(' ');\n }\n\n getFormInputKey() {\n this.startIndex += 1;\n return this.startIndex;\n }\n\n // generate list item value's based on the display types\n // table, inline, list\n getListItemText(itemData) {\n const { config } = this.props;\n let value = null;\n\n switch (config.displayType) {\n case 'list':\n case 'inline': {\n const itemText = itemData.value.reduce((prevValue, itemValue, index) => {\n const tempValue = EditableList.getItemListValue(itemValue);\n let separator = ', ';\n\n if (index === itemData.value.length - 1) {\n separator = '';\n }\n\n return prevValue + tempValue + separator;\n }, '');\n\n value = itemText;\n\n break;\n }\n default:\n value = (\n \n {\n config.components.map((component, index) => (\n \n { EditableList.getItemListValue(itemData.value[index]) }\n \n ))\n }\n \n );\n\n break;\n }\n\n return value;\n }\n\n getMainFormButtonWidth(value) {\n this.setState({\n buttonWidth: value,\n });\n }\n\n setItemEditMode(index) {\n const newValues = this.closeListItems();\n\n this.setState((previousState) => {\n const tempState = { ...previousState };\n tempState.value = newValues;\n tempState.value[index].editMode = !tempState.value[index].editMode;\n\n return tempState;\n });\n }\n\n isInList(index, itemValue) {\n const { value } = this.state;\n let ok = false;\n\n value.forEach((item, itemIndex) => {\n if (JSON.stringify(item.value) === JSON.stringify(itemValue)) {\n if (index >= 0 && itemIndex === index) {\n ok = false;\n } else {\n ok = true;\n }\n }\n });\n\n return ok;\n }\n\n addValues(newValue) {\n const { value } = this.state;\n const { config } = this.props;\n const itemValue = {\n editMode: false,\n value: newValue,\n };\n const tempState = {\n value: value.slice(0),\n };\n\n if (config.children) {\n itemValue.children = [];\n }\n\n tempState.value.push(itemValue);\n\n return tempState;\n }\n\n removeListItem(index) {\n let removedItem;\n this.setState((previousState) => {\n const valueArr = previousState.value.slice(0);\n removedItem = valueArr.splice(index, 1);\n\n return {\n value: valueArr,\n };\n }, () => {\n this.triggerOnChange(index, removedItem, null);\n });\n }\n\n closeListItems() {\n const { value } = this.state;\n\n const newValues = value.map((itemValue) => {\n const tempItemValue = { ...itemValue };\n\n if (tempItemValue.editMode) {\n tempItemValue.editMode = false;\n return tempItemValue;\n }\n\n return tempItemValue;\n });\n\n return newValues;\n }\n\n triggerOnChange(index, prevValue, nextValue) {\n const { onChange } = this.props;\n const { value } = this.state;\n\n if (onChange && typeof onChange === 'function') {\n onChange(((value.length) ? value : null), index, prevValue, nextValue);\n }\n }\n\n genListItem(itemData, index) {\n const { config, disabled } = this.props;\n const { buttonWidth, value } = this.state;\n\n const clonedComponents = fromJS(config.components).toJS();\n\n itemData.value.forEach((itemValue, itemIndex) => {\n clonedComponents[itemIndex].props.value = itemValue;\n });\n\n return (\n \n \n {\n !itemData.editMode\n ? (\n <>\n { this.getListItemText(itemData, index) }\n \n \n \n \n \n \n \n \n \n )\n : (\n <>\n \n \n \n \n \n )\n }\n \n {\n config.children\n ? (\n \n )\n : null\n }\n \n );\n }\n\n genList() {\n const { config } = this.props;\n const { buttonWidth, value } = this.state;\n\n if (!value || value.length === 0) {\n return null;\n }\n\n return (\n <>\n {\n config.displayType === 'table' || !config.displayType\n ? (\n \n \n {\n config.components.map((component, index) => (\n \n { component.props.label }\n \n ))\n }\n \n \n )\n : null\n }\n
      \n {\n value.map((itemData, index) => this.genListItem(itemData, index))\n }\n
    \n \n );\n }\n\n render() {\n const {\n addValueOnFieldChange, config, error, disabled, label,\n } = this.props;\n const appendToElement = document.querySelector(config.appendTo) || document.querySelector('body');\n\n return (\n
    \n {\n label\n ? \n : null\n }\n \n {\n config.appendTo\n ? ReactDOM.createPortal(\n this.genList(),\n appendToElement,\n )\n : this.genList()\n }\n
    \n );\n }\n}\n\nEditableList.propTypes = {\n addValueOnFieldChange: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n config: PropTypes.instanceOf(Object),\n onChange: PropTypes.func,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n ]),\n};\n\nexport default EditableList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../../../components/Button';\n\nfunction Header({\n label, addButtonName, onAddRow, disabled, readOnly,\n}) {\n return (\n
    \n {\n label\n ? \n : null\n }\n {!disabled && !readOnly && (\n \n {addButtonName || 'Add'}\n \n )}\n
    \n );\n}\n\nHeader.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n onAddRow: PropTypes.func,\n addButtonName: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n};\n\nexport default Header;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ListHeader({\n fields,\n readOnly,\n}) {\n return (\n
  • \n {\n fields.map((field) => (\n \n {field?.props?.label}\n \n ))\n }\n
    Delete
    \n
  • \n );\n}\n\nListHeader.propTypes = {\n fields: PropTypes.instanceOf(Array),\n readOnly: PropTypes.bool,\n};\n\nexport default ListHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '../../../components/Button';\n\nfunction FieldsList({\n fields,\n disabled,\n readOnly,\n errors,\n components,\n onChange,\n onDelete,\n value,\n rowIndex,\n}) {\n return (\n
  • \n {\n components.map((Component, index) => {\n const field = fields[index];\n const tempField = typeof field === 'function' ? field(rowIndex, index) : field;\n return (\n \n \n \n );\n })\n }\n
    \n \n
    \n
  • \n );\n}\n\nFieldsList.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n rowIndex: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n fields: PropTypes.instanceOf(Array),\n errors: PropTypes.instanceOf(Array),\n components: PropTypes.instanceOf(Array),\n value: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n onDelete: PropTypes.func,\n};\n\nexport default FieldsList;\n","import React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Header from './Header';\nimport ListHeader from './ListHeader';\nimport FieldsList from './FieldsList';\nimport validateValues from './validate-values';\nimport withValidation from './with-validation';\n\nlet id = 1;\n/* eslint-disable-next-line */\nconst getUID = prefix => `${prefix}-${id++}`;\n\n/**\n * Editable list is a component, that lists rows of form elements (can have n elements on a row),\n * and stores the values of all the rows in an Array list\n */\nfunction EditableList2({\n addButtonName,\n disabled,\n readOnly,\n fields,\n label,\n error,\n value = [],\n onChange = () => {},\n hideOnEmpty = true,\n wrapperClassName = '',\n}) {\n const [internalErrors, setInternalErrors] = useState(null);\n\n const updateRowValue = (rowIndex, fieldIndex, componentValue, isValid) => {\n const tempValueArr = !value ? [] : [...value];\n\n if (!value) {\n tempValueArr[rowIndex] = [...new Array(fields.length)];\n tempValueArr[rowIndex][fieldIndex] = componentValue;\n } else {\n const tempValue = [...tempValueArr[rowIndex]];\n tempValue[fieldIndex] = componentValue;\n tempValueArr[rowIndex] = tempValue;\n tempValueArr[rowIndex].id = value[rowIndex].id;\n }\n\n if (internalErrors?.[rowIndex]?.[fieldIndex] && isValid) {\n const tempErrors = [...internalErrors];\n const tempFieldError = [...tempErrors[rowIndex]];\n tempFieldError[fieldIndex] = null;\n tempErrors[rowIndex] = tempFieldError;\n setInternalErrors(tempErrors);\n }\n onChange(tempValueArr);\n };\n\n const hasErrors = (errors) => Boolean(errors?.flat()?.filter(Boolean).length);\n\n const Components = useMemo(\n () => fields.map((field) => {\n const tempField = typeof field === 'function' ? field() : field;\n\n return withValidation(tempField?.component || null);\n }),\n [],\n );\n\n const onAddRow = () => {\n const errors = validateValues(fields, value);\n\n if (hasErrors(errors)) {\n setInternalErrors(errors);\n return;\n }\n\n const newValue = [...new Array(fields.length)];\n newValue.id = getUID('row');\n\n onChange([\n ...value,\n newValue,\n ]);\n };\n\n const deleteRow = (index) => {\n if (!value) {\n return;\n }\n const tempValue = [...value];\n tempValue.splice(index, 1);\n onChange(tempValue);\n };\n\n return (\n
    \n \n {value?.length || !hideOnEmpty ? (\n
      \n {(value || [[]]).map((v, i) => (\n \n ))}\n \n
    \n ) : null}\n {error && error !== 'true' && error !== 'false' ? (\n

    {error}

    \n ) : null}\n
    \n );\n}\n\nEditableList2.propTypes = {\n /** Sets Editable list in edit mode.\n * If enabled all fields are disabled, the add button is hidden and delete button is disabled\n * */\n disabled: PropTypes.bool,\n /** Sets Editable list in read only mode.\n * If enabled all fields are displaying just the value,\n * the add button is hidden and delete button is disabled\n */\n readOnly: PropTypes.bool,\n /** Name of the Add button. By default has 'Add value' */\n addButtonName: PropTypes.string,\n /** Label of Editable list, is displayed above the list and inline with the Add button */\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n /** Array of form elements that you want the list to have\n * Each field is an object points to the Form element component that you want to use,\n * the props you want to apply on it,\n * and the size (as in width, it's like columns system, between 1 and 12)\n * Example:\n * ...\n * fields={[\n {\n component: Input2,\n styles: {\n width: \"200px\",\n },\n size: 4,\n props: {\n name: 'input',\n label: 'Claim name',\n theme: 'default rounded-corners',\n placeholder: 'Enter claim name',\n validate: formikRequired('This field is required')\n }\n },\n {\n component: Combobox2,\n size: 8,\n props: comboboxProps\n }\n ]}\n */\n fields: PropTypes.instanceOf(Array),\n /** onChange function is called everytime the value of editable list changes */\n onChange: PropTypes.func,\n /** value of editable list, wich is an Array (List of row values)\n * of Arrays (List of column values,\n * each column will have the value format depending on the component type)\n */\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Object),\n PropTypes.instanceOf(Array),\n ]),\n error: PropTypes.string,\n hideOnEmpty: PropTypes.bool,\n wrapperClassName: PropTypes.string,\n};\n\nexport default EditableList2;\n","import React, { useCallback, useState } from 'react';\n\n// eslint-disable-next-line react/function-component-definition\nconst withValidation = (Component) => ({\n onChange, // eslint-disable-line react/prop-types\n validate, // eslint-disable-line react/prop-types\n error, // eslint-disable-line react/prop-types\n ...rest\n}) => {\n const [internalError, setInternalError] = useState(null);\n const onFieldChange = useCallback((event) => {\n /* eslint-disable-next-line */\n const value = event?.target\n ? ['radio', 'checkbox'].includes(event.target.type)\n ? event.target.checked\n : event?.target.value\n : event;\n\n let isValid = true;\n if (validate && typeof validate === 'function') {\n const errorMsg = validate(value);\n isValid = !errorMsg;\n setInternalError(errorMsg);\n }\n\n onChange(value, isValid);\n }, [validate, onChange]);\n\n return ;\n};\n\nexport default withValidation;\n","const validateValues = (fields, rowValues) => (rowValues || [[undefined, undefined]])?.map(\n (colValue) => colValue?.map(\n (value, index) => fields[index].props.validate?.(value),\n ),\n);\n\nexport default validateValues;\n","import React, { useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\n\nfunction FileInput({\n error,\n theme,\n labelwidth,\n wrapperClassName = '',\n id,\n label,\n note,\n accept,\n value,\n onChange,\n ...rest\n}) {\n const fileInputRef = useRef();\n\n function handleOnChange(e) {\n onChange(e.target.files);\n }\n\n function getCssClasses() {\n const cssClasses = [wrapperClassName, 'tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n }\n\n function getLabelStyles() {\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n function getNonLabelWidth() {\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n function getFileInputError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n function getFileInputComponent() {\n return (\n \n \n {\n fileInputRef.current && fileInputRef.current.files.length > 0\n ? (\n \n \n \n )\n : null\n }\n \n );\n }\n\n function clearValue() {\n fileInputRef.current.value = '';\n onChange('');\n }\n\n return (\n
    \n {\n label\n ? \n : null\n }\n
    \n { getFileInputComponent() }\n {\n note\n ?

    { note }

    \n : null\n }\n
    \n { getFileInputError() }\n
    \n );\n}\n\nFileInput.propTypes = {\n accept: PropTypes.string,\n disabled: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.instanceOf(Object),\n wrapperClassName: PropTypes.string,\n};\n\nexport default FileInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nclass Input extends Component {\n static getAddon(content) {\n return (\n
    \n { content }\n
    \n );\n }\n\n constructor(props) {\n super(props);\n const {\n value,\n } = this.props;\n\n this.state = {\n initValue: value,\n stateValue: value,\n };\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n const {\n isfield,\n value,\n onChange,\n } = this.props;\n\n if (!isfield && prevProps.value !== value) {\n /* eslint-disable react/no-did-update-set-state */\n this.setState({\n stateValue: value,\n }, () => {\n if (onChange) {\n onChange(value);\n }\n });\n }\n }\n\n handleOnChange(e) {\n const { onChange, isfield } = this.props;\n const inputValue = e.target.value;\n\n if (!isfield) {\n this.setState({\n stateValue: inputValue,\n }, () => {\n if (onChange) {\n onChange(inputValue);\n }\n });\n } else {\n onChange(inputValue);\n }\n }\n\n getLabelStyles() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n getNonLabelWidth() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n getInputError() {\n const { error } = this.props;\n\n return (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null;\n }\n\n getCssClasses() {\n const {\n error,\n theme,\n labelwidth,\n inputgroupaddonleft,\n inputgroupaddonright,\n } = this.props;\n const cssClasses = ['tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (inputgroupaddonleft) {\n cssClasses.push('tyk-form-group--addon-left');\n }\n\n if (inputgroupaddonright) {\n cssClasses.push('tyk-form-group--addon-right');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n }\n\n getInputGroupAddon() {\n const {\n inputgroupaddonleft,\n inputgroupaddonright,\n } = this.props;\n\n return (\n
    \n {\n inputgroupaddonleft\n ? Input.getAddon(inputgroupaddonleft)\n : null\n }\n { this.getInputComponent() }\n {\n inputgroupaddonright\n ? Input.getAddon(inputgroupaddonright)\n : null\n }\n
    \n );\n }\n\n getInputComponent() {\n const {\n isfield, onChange, value, ...rest\n } = this.props;\n const { stateValue } = this.state;\n return (\n \n );\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n reset() {\n const { initValue } = this.state;\n\n this.setState({\n stateValue: initValue,\n });\n }\n\n render() {\n const {\n label,\n id,\n inputgroupaddonleft,\n inputgroupaddonright,\n note,\n readOnly,\n value,\n } = this.props;\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n {\n inputgroupaddonleft || inputgroupaddonright\n ? this.getInputGroupAddon()\n : this.getInputComponent()\n }\n {\n note\n ?

    { note }

    \n : null\n }\n { this.getInputError() }\n
    \n )}\n {\n readOnly &&
    {value || '-'}
    \n }\n \n );\n }\n}\n\nInput.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n isfield: PropTypes.bool,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n inputgroupaddonleft: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n inputgroupaddonright: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n};\n\nexport default Input;\n","import React, { useImperativeHandle, useRef, forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Input2({\n error,\n onChange,\n readOnly,\n id,\n inputgroupaddonleft,\n inputgroupaddonright,\n label,\n labelwidth,\n note,\n theme,\n value,\n wrapperClassName = '',\n ...rest\n}, ref) {\n const inputRef = useRef();\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n inputRef.current.focus();\n },\n }));\n\n const getAddon = (content) => (\n
    \n { content }\n
    \n );\n\n const getLabelStyles = () => ({\n ...labelwidth && {\n flexBasis: labelwidth,\n },\n });\n\n const getNonLabelWidth = () => ({\n ...labelwidth && {\n flexBasis: `calc(100% - ${labelwidth} - 20px)`,\n },\n });\n\n const getInputError = () => (\n (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null\n );\n\n const getCssClasses = () => {\n const cssClasses = [wrapperClassName, 'tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (inputgroupaddonleft) {\n cssClasses.push('tyk-form-group--addon-left');\n }\n\n if (inputgroupaddonright) {\n cssClasses.push('tyk-form-group--addon-right');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n };\n\n const handleOnChange = (e) => {\n onChange(e, e.target.value);\n };\n\n const getInputElement = () => (\n \n );\n\n const getInputGroupAddon = () => (\n
    \n {\n inputgroupaddonleft\n ? getAddon(inputgroupaddonleft)\n : null\n }\n { getInputElement() }\n {\n inputgroupaddonright\n ? getAddon(inputgroupaddonright)\n : null\n }\n
    \n );\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n {\n inputgroupaddonleft || inputgroupaddonright\n ? getInputGroupAddon()\n : getInputElement()\n }\n {\n note\n ?

    { note }

    \n : null\n }\n { getInputError() }\n
    \n )}\n {\n readOnly && (\n
    \n {value || '-'}\n
    \n )\n }\n \n );\n}\n\nInput2.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n inputgroupaddonleft: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n inputgroupaddonright: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default forwardRef(Input2);\n","import { createContext } from 'react';\n\nconst MultiselectContext = createContext();\n\nexport default MultiselectContext;\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport MultiselectContext from './MultiselectContext';\nimport Button from '../../../../components/Button';\nimport Collapsible from '../../../../components/Collapsible';\nimport Loader from '../../../../components/Loader';\n\nconst getItemContent = (context, item) => (\n context.detailsDisplayTemplate\n ? context.detailsDisplayTemplate(item)\n : JSON.stringify(item.details)\n);\n\nconst getItemLoader = (context, item) => {\n const { opened } = context;\n\n return opened[item.id]\n ? \n : null;\n};\n\nfunction MultiselectItem({\n item,\n itemType,\n searchValue,\n onChange,\n}) {\n const isInSearchValue = useCallback((fieldsToSearchOn) => {\n if (fieldsToSearchOn?.length > 0) {\n return fieldsToSearchOn.some((key) => item[key]?.includes(searchValue));\n }\n\n return JSON.stringify(item).includes(searchValue);\n }, [item, searchValue]);\n\n const onAddRemove = useCallback(() => {\n onChange(item);\n }, [onChange, item]);\n\n return (\n \n {\n (context) => (\n isInSearchValue(context.fieldsToSearchOn)\n ? (\n
  • \n
    \n \n {\n context.itemDisplayTemplate\n ? context.itemDisplayTemplate(item)\n : JSON.stringify(item)\n }\n \n \n \n context.onGetItemDetails(item)}\n />\n \n
    \n {\n item.details\n ? (\n \n {getItemContent(context, item)}\n \n )\n : getItemLoader(context, item)\n }\n
  • \n )\n : null\n )\n }\n
    \n );\n}\n\nMultiselectItem.propTypes = {\n item: PropTypes.instanceOf(Object),\n itemType: PropTypes.string,\n searchValue: PropTypes.string,\n onChange: PropTypes.func,\n};\n\nexport default MultiselectItem;\n","import React, { useCallback, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Input from '../../Input';\nimport Icon from '../../../../components/Icon';\nimport Message from '../../../../components/Message';\nimport InfiniteScroller from '../../../../components/InfiniteScroller';\nimport MultiselectItem from './MultiselectItem';\n\nfunction MultiselectPanel({\n inputPlaceholder,\n noItemsMessage,\n items,\n onCustomSearch,\n onChange,\n customSearch,\n panelType,\n serverLoad,\n itemsPageNumber,\n itemsNrPages,\n loadMoreItems,\n}) {\n const [searchValue, setSearchValue] = useState('');\n const itemIndex = useRef(0);\n const itemsListRef = useRef();\n\n function getItemIndex() {\n itemIndex.current += 1;\n\n return itemIndex.current;\n }\n\n function getItemsList() {\n return (\n serverLoad\n ? (\n itemsPageNumber}\n loadMore={loadMoreItems}\n pageNumber={itemsPageNumber}\n >\n { renderListItems() }\n \n )\n : renderListItems()\n );\n }\n\n const searchOnChange = useCallback((value) => {\n if (onCustomSearch) {\n onCustomSearch(value);\n } else {\n setSearchValue(value);\n }\n }, [onCustomSearch]);\n\n const itemChanged = useCallback((item) => {\n let cloneItems = structuredClone(items);\n cloneItems = cloneItems.filter((clonedItem) => item.id !== clonedItem.id);\n\n onChange(cloneItems, item);\n }, [items]);\n\n function renderListItems() {\n return (\n \n {\n items.map((item) => (\n \n ))\n }\n \n );\n }\n\n return (\n
    \n \n }\n name=\"search\"\n onChange={searchOnChange}\n placeholder={inputPlaceholder}\n value={searchValue}\n />\n {\n items.length\n ? getItemsList()\n : (\n \n { noItemsMessage }\n \n )\n }\n
    \n );\n}\n\nMultiselectPanel.propTypes = {\n customSearch: PropTypes.bool,\n onCustomSearch: PropTypes.func,\n panelType: PropTypes.string,\n onChange: PropTypes.func,\n items: PropTypes.instanceOf(Array),\n itemsPageNumber: PropTypes.number,\n itemsNrPages: PropTypes.number,\n inputPlaceholder: PropTypes.string,\n loadMoreItems: PropTypes.func,\n noItemsMessage: PropTypes.string,\n serverLoad: PropTypes.bool,\n};\n\nexport default MultiselectPanel;\n","import React, { useCallback, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport MultiselectPanel from './js/MultiselectPanel';\nimport MultiselectContext from './js/MultiselectContext';\n\nconst diffObjects = (value, items) => items.filter((item) => !value.find((v) => v.id === item.id));\n\nfunction Multiselect({\n customSearch,\n entityNamePlural,\n disabled,\n error,\n getItemDetails,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n items,\n itemsPageNumber,\n itemsNrPages,\n loadMoreItems,\n maxSelections,\n note,\n value,\n onChange,\n wrapperClassName = '',\n}) {\n const [opened, setOpened] = useState({});\n\n const onGetItemDetails = useCallback((item) => {\n setOpened((prevOpened) => ({ ...prevOpened, [item.id]: !prevOpened[item.id] }));\n\n if (getItemDetails) getItemDetails(item);\n }, [getItemDetails]);\n\n function getMultiselectError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n const getCssClasses = useCallback(\n () => [\n wrapperClassName,\n 'tyk-multiselect',\n error && 'has-error',\n ]\n .filter(Boolean)\n .join(' '),\n [wrapperClassName, error],\n );\n\n const itemsChange = useCallback((allItems, item) => {\n const valueClone = structuredClone(value);\n\n valueClone.unshift(item);\n\n onChange(valueClone, item, 'added');\n }, [value]);\n\n const valueChange = useCallback((newValue, item) => {\n onChange(newValue, item, 'removed');\n }, [items]);\n\n const providerValue = useMemo(() => ({\n disabled,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n maxSelections,\n nrSelectedItems: value.length,\n onGetItemDetails,\n opened,\n }), [\n disabled,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n maxSelections,\n value,\n onGetItemDetails,\n opened,\n ]);\n\n return (\n <>\n
    \n \n
    \n
    \n { value.length }\n {' '}\n Selected\n {' '}\n { entityNamePlural }\n
    \n
    \n Select from existing\n { entityNamePlural }\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n {\n note\n ?

    { note }

    \n : null\n }\n
    \n { getMultiselectError() }\n \n );\n}\n\nMultiselect.propTypes = {\n customSearch: PropTypes.func,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n entityNamePlural: PropTypes.string,\n items: PropTypes.instanceOf(Array),\n itemDisplayTemplate: PropTypes.func,\n detailsDisplayTemplate: PropTypes.func,\n fieldsToSearchOn: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n getItemDetails: PropTypes.func,\n itemsPageNumber: PropTypes.number,\n itemsNrPages: PropTypes.number,\n loadMoreItems: PropTypes.func,\n note: PropTypes.string,\n maxSelections: PropTypes.number,\n value: PropTypes.instanceOf(Array),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Multiselect;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * Radio can be used when a user needs to select at most one value from a multiple options.\n */\nfunction Radio({\n label,\n input,\n note,\n inline,\n nospace,\n theme = '',\n disabled,\n readOnly,\n wrapperClassName = '',\n ...rest\n}) {\n const cssClasses = [\n inline ? 'tyk-radio--inline' : 'tyk-radio',\n wrapperClassName,\n nospace && 'no-margin',\n ...(theme ? theme.split(' ').filter(Boolean).map((t) => `tyk-radio--theme-${t}`) : []),\n (readOnly || disabled) && 'tyk-radio--is-disabled',\n ].filter(Boolean).join(' ');\n\n return (\n
    \n \n {note && (\n

    {note}

    \n )}\n
    \n );\n}\n\nRadio.propTypes = {\n /** Used to disable the element */\n disabled: PropTypes.bool,\n /** Readonly prop behaves the same as disabled on radio elements */\n readOnly: PropTypes.bool,\n /** Align radio in the same line with other elements */\n inline: PropTypes.bool,\n /** Set a theme for radio */\n theme: PropTypes.string,\n input: PropTypes.instanceOf(Object),\n /** Adds label to the radio input */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Set name for the radio input */\n name: PropTypes.string,\n /** If set to true removes margin by adding `no-margin` class */\n nospace: PropTypes.bool,\n /** Set initial value for the radio input */\n value: PropTypes.string,\n /** Add note at the bottom of the radio input */\n note: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Radio;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Select(props) {\n const {\n value,\n onChange,\n onBlur,\n isfield,\n label,\n labelwidth,\n id,\n note,\n readOnly,\n options,\n error,\n theme,\n wrapperClassName = '',\n ...rest\n } = props;\n const [stateValue, setStateValue] = useState(value);\n\n useEffect(() => {\n if (!isfield && stateValue !== value) {\n setStateValue(value);\n if (onChange) onChange(value);\n }\n }, [stateValue, value]);\n\n const handleOnChange = useCallback((e) => {\n const selectedValue = options.find((option) => option.id === e.target.value);\n\n if (!isfield) {\n setStateValue(selectedValue);\n }\n onChange(selectedValue.id ? selectedValue : null);\n }, [options, isfield, onChange]);\n\n const handleOnBlur = useCallback(() => {\n if (onBlur) {\n onBlur(value);\n }\n }, [onBlur]);\n\n // eslint-disable-next-line arrow-body-style\n const getSelectError = useCallback(() => {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }, [error]);\n\n const getCssClasses = useCallback(\n () => [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' '),\n [wrapperClassName, theme, labelwidth, error],\n );\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const getNonLabelWidth = useCallback(() => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n }, [labelwidth]);\n\n const getSelectComponent = useCallback(() => {\n const selectValue = isfield && value ? value : stateValue;\n\n return (\n \n {\n options.map((option) => (\n \n ))\n }\n \n );\n }, [isfield, value, stateValue, handleOnChange, handleOnBlur, options, rest]);\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n { getSelectComponent() }\n {\n note\n ?

    { note }

    \n : null\n }\n { getSelectError() }\n
    \n )}\n {readOnly &&
    {value || '-'}
    }\n \n );\n}\n\nSelect.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n isfield: PropTypes.bool,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n options: PropTypes.instanceOf(Array),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Select;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../../../components/Message';\nimport List from '../../../components/List';\nimport Icon from '../../../components/Icon';\n\nfunction SelectableList(props) {\n const {\n checkboxalticon,\n items,\n itemTemplate,\n value,\n noItemsMessage = 'No items in the list',\n onChange,\n theme,\n primaryKey,\n wrapperClassName = '',\n } = props;\n\n const handleOnSelect = (event) => {\n const newSelectedItems = structuredClone(value);\n const elemPosition = newSelectedItems.findIndex(\n (id) => JSON.stringify(id) === JSON.stringify(\n Array.isArray(id)\n ? event.target.value.split(',')\n : event.target.value,\n ),\n );\n\n if (event.target.checked && elemPosition === -1) {\n const tempValue = event.target.value.split(',');\n const finalValue = tempValue.length > 1 ? tempValue : event.target.value;\n\n newSelectedItems.push(finalValue);\n } else if (!event.target.checked && elemPosition > -1) {\n newSelectedItems.splice(elemPosition, 1);\n }\n\n if (onChange) {\n onChange(newSelectedItems);\n }\n };\n\n const getListItemCssClassName = (isActive) => {\n const cssClasses = [];\n\n if (checkboxalticon) {\n cssClasses.push('tyk-selectable-list__item--with-icon');\n }\n\n if (isActive) {\n cssClasses.push('tyk-selectable-list__item--active');\n }\n\n return cssClasses.join(' ');\n };\n\n const isChecked = (inputValue, itemValue) => Boolean(\n inputValue.find((tvalue) => JSON.stringify(itemValue) === JSON.stringify(tvalue)),\n );\n\n return (\n \n {\n !items.length\n ? (\n
  • \n \n {noItemsMessage}\n \n
  • \n )\n : items.map((item, index) => (\n \n \n \n ))\n }\n
    \n );\n}\n\nSelectableList.propTypes = {\n items: PropTypes.instanceOf(Array),\n itemTemplate: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n PropTypes.func,\n ]),\n value: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n primaryKey: PropTypes.string,\n noItemsMessage: PropTypes.string,\n checkboxalticon: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n theme: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\n\nSelectableList.defaultProps = {\n items: [],\n primaryKey: 'id',\n value: [],\n};\n\nexport default SelectableList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Textarea({\n id,\n input,\n label,\n note,\n error,\n theme,\n labelwidth,\n value,\n readOnly,\n wrapperClassName,\n ...rest\n}) {\n const classes = [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const getLabelStyles = () => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n };\n\n const getNonLabelWidth = () => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n };\n\n function getTextareaError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n \n { value }\n \n {\n note\n ?

    { note }

    \n : null\n }\n {getTextareaError()}\n
    \n )}\n {readOnly &&
    {value || '-'}
    }\n \n );\n}\n\nTextarea.propTypes = {\n /** Disable the component */\n disabled: PropTypes.bool,\n /** Displays only the text value of the component, or \"-\" if no value is set */\n readOnly: PropTypes.bool,\n input: PropTypes.instanceOf(Object),\n /** Set an error message for the component and the component is rendered in the error state */\n error: PropTypes.string,\n /** Adds a label to the component */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Sets the width of the label */\n labelwidth: PropTypes.string,\n /** Set a name for the component */\n name: PropTypes.string,\n /** Adds additional information under the component */\n note: PropTypes.string,\n /** Callback function executed on value change */\n onChange: PropTypes.func,\n id: PropTypes.string,\n /** Set a theme for the component */\n theme: PropTypes.string,\n /** Set the value of the component */\n value: PropTypes.string,\n /** CSS classes added to the wrapper of the component */\n wrapperClassName: PropTypes.string,\n};\n\nexport default Textarea;\n","import { createContext } from 'react';\n\nconst ToggleContext = createContext();\n\nexport default ToggleContext;\n","import React, { Component, createRef } from 'react';\nimport PropTypes from 'prop-types';\n\nclass ToggleItem extends Component {\n static getNotchCssClasses(context) {\n return ['tyk-toggle__item-notch', `tyk-toggle__item-notch--${context.type}`].join(' ');\n }\n\n constructor(props) {\n super(props);\n\n this.itemRef = createRef();\n }\n\n componentDidMount() {\n const { context, value } = this.props;\n\n if (context.value === value) {\n context.saveSelectedRef(this.itemRef);\n }\n }\n\n componentDidUpdate(prevProps) {\n const { context, value } = this.props;\n\n if (prevProps.context.value !== context.value && context.value === value) {\n context.saveSelectedRef(this.itemRef);\n }\n }\n\n onChange(event) {\n const { context, value } = this.props;\n const { disabled, readOnly } = context;\n\n if (disabled || readOnly) {\n return;\n }\n\n context.onItemSelected(context.type === 'single' ? !context.value : value, event);\n }\n\n render() {\n const {\n context, label, name, value,\n } = this.props;\n return (\n
  • \n \n
  • \n );\n }\n}\n\nToggleItem.propTypes = {\n context: PropTypes.instanceOf(Object),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n name: PropTypes.string,\n value: PropTypes.string,\n};\n\nexport default ToggleItem;\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToggleContext from './ToggleContext';\nimport ToggleItem from './ToggleItem';\n\nfunction ToggleItemWrapper({ children, ...rest }, ref) {\n return (\n \n {(context) => (\n \n {children}\n \n )}\n \n );\n}\n\nToggleItemWrapper.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nexport default forwardRef(ToggleItemWrapper);\n","import React, {\n useCallback, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToggleContext from './js/ToggleContext';\nimport ToggleItemWrapper from './js/ToggleItemWrapper';\n\nfunction Toggle({\n className,\n disabled,\n readOnly,\n size,\n theme,\n direction,\n onDark,\n wrapperClassName = '',\n onChange,\n labelwidth,\n label,\n separated,\n children,\n type,\n value,\n error,\n}) {\n const [selectedRef, setSelectedRef] = useState(null);\n const notchRef = useRef();\n const toggleRef = useRef();\n\n const classes = [\n wrapperClassName,\n className,\n 'tyk-toggle',\n `tyk-toggle--disabled-${readOnly || disabled}`,\n `tyk-toggle--${size || 'md'}`,\n `tyk-toggle--${theme}`,\n `tyk-toggle--${direction}`,\n onDark && 'tyk-toggle--on-dark',\n ].filter(Boolean).join(' ');\n\n const onItemSelected = useCallback((itemValue, event) => {\n if (!onChange) return;\n onChange(itemValue, event);\n }, [onChange]);\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const positionNotch = useCallback(() => {\n if (!selectedRef || separated) {\n return {};\n }\n\n const selectedWidth = selectedRef.current.offsetWidth;\n const selectedOffset = selectedRef.current.getBoundingClientRect().left;\n const toggleOffset = toggleRef.current.getBoundingClientRect().left;\n const left = selectedOffset - toggleOffset;\n\n return {\n left: `${left + 4}px`,\n width: `${selectedWidth - 8}px`,\n };\n }, [selectedRef, separated]);\n\n const contextValue = useMemo(() => ({\n disabled,\n readOnly,\n onItemSelected,\n saveSelectedRef: setSelectedRef,\n separated,\n type,\n value,\n }), [disabled, readOnly, onItemSelected, separated, type, value]);\n\n return (\n <>\n
    \n \n {\n label\n ? \n : null\n }\n
      \n { children }\n {\n type === 'multiple' && !separated\n ?
    • \n : null\n }\n
    \n \n
    \n {\n error && (\n

    \n { error }\n

    \n )\n }\n \n );\n}\n\nToggle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n error: PropTypes.string,\n onChange: PropTypes.func,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n theme: PropTypes.string,\n type: PropTypes.string, // single || multiple\n size: PropTypes.string,\n separated: PropTypes.bool,\n direction: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n ]),\n onDark: PropTypes.bool,\n wrapperClassName: PropTypes.string,\n};\n\nToggle.defaultProps = {\n separated: false,\n theme: 'primary',\n type: 'single',\n direction: 'row',\n};\n\nToggle.Item = ToggleItemWrapper;\n\nexport default Toggle;\n","const config = {\n FORM_DEBOUNCE: 200,\n};\n\nexport function setConfig(key, val) {\n config[key] = val;\n}\n\nexport default config;\n","import React, { useCallback, useEffect, useState } from 'react';\n\nimport config from '../config/config';\n\nfunction getValueFromPath(obj, path) {\n // turn 'aaa.qqq[2].bbb[5][3].mmm' into ['aaa', 'qqq', '2', 'bbb', '5', '3', 'mmm']\n const indexes = path.split(/[\\][.]/).filter(Boolean);\n return indexes.reduce((acc, v) => (acc ? acc[v] : acc), obj);\n}\n\nfunction debounce(f, limit) {\n let timeoutId;\n return (...args) => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(f, limit, ...args);\n };\n}\n\n/* eslint-disable react/prop-types, react/function-component-definition */\n/**\n * A wrapper function that \"prepares\" a tyk-ui form component to be used with the formik library.\n * It handles things like setting the value of the component, change events, error state,\n * and also has a default debounce time for when the change event is triggered.\n */\nconst wrapper = (Component, options) => ({ field, form, ...properties }) => {\n const DEFAULT_DEBOUNCE_TIME_MS = typeof config.FORM_DEBOUNCE === 'number' ? config.FORM_DEBOUNCE : 200;\n const [myValue, setMyValue] = useState(field.value);\n const opts = {\n getOnChangeProps: () => ({}),\n hasIsFieldProp: false,\n ...options,\n };\n\n const executeDebounced = useCallback((() => {\n const fn = (f) => f();\n if (\n properties.debounce === false\n || (config.FORM_DEBOUNCE === false && !properties.debounce)\n ) {\n return fn;\n }\n const timeout = typeof properties.debounce === 'number'\n ? properties.debounce\n : DEFAULT_DEBOUNCE_TIME_MS;\n return debounce(fn, timeout);\n })(), []);\n\n const getValue = (v) => {\n if (v?.target) {\n if (v.target.nodeName === 'INPUT' && (v.target.type === 'checkbox' || v.target.type === 'radio')) {\n return v.target.checked;\n }\n return v.target.value;\n }\n return v;\n };\n\n const onChange = (valueOrEvent) => {\n const value = getValue(valueOrEvent);\n const onChangeProps = opts.getOnChangeProps(value, field, form, properties);\n\n const newValue = onChangeProps.value || properties.value || value;\n executeDebounced(() => {\n if (typeof properties.onChange === 'function') {\n properties.onChange(newValue);\n }\n field.onChange({ target: { name: field.name, value: newValue, ...onChangeProps } });\n });\n setMyValue(newValue);\n };\n\n const formError = (getValueFromPath(form.touched, field.name) || Boolean(form.submitCount))\n && getValueFromPath(form.errors, field.name);\n const error = typeof formError === 'string' ? formError : '';\n\n useEffect(() => {\n setMyValue(field.value);\n }, [field.value]);\n\n // eslint-disable-next-line no-param-reassign\n if (form.status?.disabled) properties.disabled = true;\n\n const componentProps = { ...properties };\n delete componentProps.debounce;\n\n if (Object.hasOwn(componentProps, 'className') && componentProps.className === undefined) delete componentProps.className;\n if (Object.hasOwn(componentProps, 'children') && componentProps.children === undefined) delete componentProps.children;\n\n return (\n \n );\n};\n\nexport default wrapper;\n","import wrapper from '../../../utils/formik';\nimport Checkbox from '../../components/Checkbox';\n\nexport default wrapper(Checkbox, {\n getOnChangeProps: (value) => ({\n checked: value,\n }),\n});\n","import wrapper from '../../../utils/formik';\nimport CodeEditor from '../../components/CodeEditor';\n\nexport default wrapper(CodeEditor);\n","import wrapper from '../../../utils/formik';\nimport Combobox from '../../components/Combobox';\n\nexport default wrapper(Combobox);\n","import wrapper from '../../../utils/formik';\nimport Combobox2 from '../../components/Combobox2';\n\nexport default wrapper(Combobox2);\n","import wrapper from '../../../utils/formik';\nimport DatePicker from '../../components/DatePicker';\n\nexport default wrapper(DatePicker);\n","import wrapper from '../../../utils/formik';\nimport EditableList from '../../components/EditableList';\n\nexport default wrapper(EditableList, {\n getOnChangeProps: (value) => ({ value: value || [] }),\n});\n","import wrapper from '../../../utils/formik';\nimport EditableList2 from '../../components/EditableList2';\n\nexport default wrapper(EditableList2);\n","import wrapper from '../../../utils/formik';\nimport FileInput from '../../components/FileInput';\n\nexport default wrapper(FileInput);\n","import wrapper from '../../../utils/formik';\nimport Input from '../../components/Input';\n\nexport default wrapper(Input, { hasIsFieldProp: true });\n","import wrapper from '../../../utils/formik';\nimport Input2 from '../../components/Input2';\n\nexport default wrapper(Input2);\n","import wrapper from '../../../utils/formik';\nimport MultiSelect from '../../components/Multiselect';\n\nexport default wrapper(MultiSelect);\n","import wrapper from '../../../utils/formik';\nimport Radio from '../../components/Radio';\n\nexport default wrapper(Radio, {\n getOnChangeProps: (value, field, form, properties) => ({\n checked: value === properties.value,\n value: properties.value,\n }),\n});\n","import wrapper from '../../../utils/formik';\nimport Select from '../../components/Select';\n\nexport default wrapper(Select, { hasIsFieldProp: true });\n","import wrapper from '../../../utils/formik';\nimport SelectableList from '../../components/SelectableList';\n\nexport default wrapper(SelectableList);\n","import wrapper from '../../../utils/formik';\nimport Textarea from '../../components/Textarea';\n\nexport default wrapper(Textarea);\n","import wrapper from '../../../utils/formik';\nimport Toggle from '../../components/Toggle';\n\nexport default wrapper(Toggle);\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport CodeEditor from '../../components/CodeEditor';\n\nclass FieldCodeEditor extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.prop;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldCodeEditor.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCodeEditor;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Combobox from '../../components/Combobox';\n\nclass FieldCombobox extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getComboboxError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldCombobox.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCombobox;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Dropdown from '../../components/Dropdown';\n\nclass FieldDropdown extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n render() {\n const {\n children,\n input,\n ...rest\n } = this.props;\n\n return (\n \n {children}\n \n );\n }\n}\n\nFieldDropdown.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldDropdown;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Pagination from '../../components/Pagination';\n\nfunction FieldPagination(props) {\n const { input, ...rest } = props;\n\n return (\n \n );\n}\n\nFieldPagination.propTypes = {\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldPagination;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Combobox2 from '../../components/Combobox2';\n\nfunction FieldCombobox2(props) {\n const { input, meta, validationmessages } = props;\n\n const getComboboxError = () => {\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n return message;\n };\n\n const handleOnChange = (value) => {\n const { onChange } = input;\n onChange(fromJS(value));\n };\n\n return (\n \n );\n}\n\nFieldCombobox2.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCombobox2;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport DatePicker from '../../components/DatePicker';\n\nfunction FormDatePicker(props) {\n const {\n input,\n meta,\n validationmessages,\n ...rest\n } = props;\n\n const getDatePickerError = () => {\n const { touched, error } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n }\n\n return message;\n };\n\n const handleOnChange = (value) => {\n const { onChange } = input;\n\n onChange(fromJS(value));\n };\n\n return (\n \n );\n}\n\nFormDatePicker.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FormDatePicker;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport EditableList from '../../components/EditableList';\n\nclass FieldEditableList extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getEditableListError() {\n const { meta, validationmessages } = this.props;\n const { touched, error } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldEditableList.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldEditableList;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport FileInput from '../../components/FileInput';\n\nclass FieldFileInput extends Component {\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldFileInput.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldFileInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Input from '../../components/Input';\n\nclass FieldInput extends Component {\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldInput.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Multiselect from '../../components/Multiselect';\n\nclass FieldMultiselect extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getMultiselectError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldMultiselect.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldMultiselect;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Select from '../../components/Select';\n\nclass FieldSelect extends Component {\n constructor(props) {\n super(props);\n\n this.handleEvent = this.handleEvent.bind(this);\n }\n\n handleEvent(selectValue) {\n const { input } = this.props;\n const { onChange, value } = input;\n\n onChange(fromJS(selectValue !== undefined ? selectValue : value));\n }\n\n getSelectError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldSelect.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldSelect;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport SelectableList from '../../components/SelectableList';\n\nclass FieldSelectableList extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n\n input.onChange(fromJS(value));\n }\n\n render() {\n const { children, ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldSelectableList.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.node,\n ]),\n onChange: PropTypes.func,\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldSelectableList;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Toggle from '../../components/Toggle';\n\nclass FieldToggle extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n\n input.onChange(fromJS(value));\n }\n\n render() {\n const { children, ...props } = this.props;\n\n return (\n \n {children}\n \n );\n }\n}\n\nFieldToggle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.node,\n ]),\n onChange: PropTypes.func,\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldToggle;\n","import { useEffect, useRef } from 'react';\n\n/** @component */\nexport default function useInterval(callback, delay, ...args) {\n const savedCallback = useRef();\n\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n // eslint-disable-next-line consistent-return\n useEffect(() => {\n function tick() {\n savedCallback.current(...args);\n }\n if (delay !== null && delay !== undefined) {\n const id = setInterval(tick, delay);\n return () => clearInterval(id);\n }\n }, [delay]);\n}\n"],"names":["global","this","window","define","module","deps","payload","arguments","length","modules","payloads","original","apply","console","error","trace","ns","root","_require","parentId","callback","lookup","undefined","Object","prototype","toString","call","params","i","l","dep","require","push","packagedModule","normalizeModule","moduleName","indexOf","chunks","split","charAt","slice","join","previous","replace","exports","mod","id","uri","packaged","ace","defineProp","obj","name","val","defineProperty","value","enumerable","writable","configurable","String","startsWith","searchString","position","lastIndexOf","endsWith","subjectString","lastIndex","repeat","count","result","string","includes","str","assign","target","TypeError","output","index","source","keys","forEach","key","values","o","map","k","Array","find","predicate","len","thisArg","kValue","findIndex","item","fill","O","relativeStart","Math","max","min","end","relativeEnd","final","of","deepCopy","copy","isArray","last","a","stringReverse","reverse","stringRepeat","trimBeginRegexp","trimEndRegexp","stringTrimLeft","stringTrimRight","copyObject","copyArray","array","arrayToMap","arr","createMap","props","create","arrayRemove","splice","escapeRegExp","escapeHTML","getMatchOffsets","regExp","matches","offset","deferredCall","fcn","timer","deferred","timeout","cancel","setTimeout","schedule","clearTimeout","isPending","delayedCall","defaultTimeout","_self","delay","supportsLookbehind","RegExp","e","skipEmptyMatch","line","supportsUnicodeFlag","codePointAt","OS","LINUX","MAC","WINDOWS","getOS","isMac","isLinux","_navigator","navigator","os","exec","platform","toLowerCase","ua","userAgent","appName","isWin","isIE","parseFloat","match","isOldIE","isGecko","isMozilla","isOpera","opera","isWebKit","isChrome","isSafari","isEdge","isAIR","isAndroid","isChromeOS","isIOS","test","MSStream","isMobile","strictCSP","useragent","buildDom","parent","refs","txt","document","createTextNode","appendChild","els","ch","el","createElement","options","childIndex","n","className","style","cssText","setAttribute","getDocumentHead","doc","head","getElementsByTagName","documentElement","tag","createElementNS","removeChildren","element","innerHTML","textContent","ownerDocument","createFragment","createDocumentFragment","hasCssClass","addCssClass","removeCssClass","classes","toggleCssClass","add","setCssClass","node","include","hasCssString","sheets","querySelectorAll","removeElementById","getElementById","remove","cssCache","insertPendingStyles","cache","importCssString","container","getRootNode","insertBefore","firstChild","useStrictCSP","importCssStylsheet","rel","href","scrollbarWidth","inner","width","minWidth","height","display","outer","left","overflow","body","noScrollbar","offsetWidth","withScrollbar","clientWidth","removeChild","computedStyle","getComputedStyle","setStyle","styles","property","HAS_CSS_ANIMATION","HAS_CSS_TRANSFORMS","HI_DPI","devicePixelRatio","div","transform","animationName","translate","tx","ty","round","top","dom","get","url","xhr","XMLHttpRequest","open","onreadystatechange","readyState","responseText","send","loadScript","path","s","src","onload","_","isAbort","qualifyURL","inherits","ctor","superCtor","super_","constructor","mixin","implement","proto","EventEmitter","stopPropagation","propagationStopped","preventDefault","defaultPrevented","_emit","_dispatchEvent","eventName","_eventRegistry","_defaultHandlers","listeners","defaultHandler","type","_signal","once","on","newCallback","off","Promise","resolve","setDefaultHandler","handlers","_disabled_","old","disabled","removeDefaultHandler","pop","addEventListener","capturing","removeListener","removeEventListener","removeAllListeners","reportError","msg","data","Error","messages","oop","optionsProvider","setOptions","optList","setOption","getOptions","optionNames","$options","filter","hidden","getOption","opt","warn","forwardTo","handlesSet","set","message","AppConfig","$defaultOptions","defineOptions","initialValue","resetOptions","setDefaultValue","opts","setDefaultValues","optionHash","setMessages","nls","translated","isDark","cssClass","$id","lang","net","customLoader","workerPath","modePath","themePath","basePath","suffix","$moduleUrls","loadWorkerFromBlob","sharedPopups","hasOwnProperty","all","$modes","moduleUrl","component","parts","sep","base","re","setModuleUrl","subst","setLoader","cb","dynamicModules","$loading","$loaded","loadModule","onLoad","loadedModule","moduleType","load","afterLoad","loader","err","reportErrorIfPathIsNotConfigured","then","default","$require","setModuleLoader","version","config","init","scriptOptions","scriptUrl","currentScript","_currentScript","currentDocument","scripts","script","getAttribute","attributes","j","attr","m","m1","toUpperCase","Range","startRow","startColumn","endRow","endColumn","start","row","column","isEqual","range","contains","compare","compareRange","cmp","comparePoint","p","containsRange","intersects","isEnd","isStart","setStart","setEnd","inside","insideStart","insideEnd","isMultiLine","compareStart","compareEnd","compareInside","clipRows","firstRow","lastRow","fromPoints","extend","isEmpty","clone","collapseRows","toScreenRange","session","screenPosStart","documentToScreenPosition","screenPosEnd","moveBy","comparePoints","p1","p2","Keys","ret","MODIFIER_KEYS","KEY_MODS","FUNCTION_KEYS","PRINTABLE_KEYS","parseInt","enter","escape","esc","del","mods","pow","x","keyCodeToString","keyCode","keyString","fromCharCode","activeListenerOptions","pressedKeys","ts","getListenerOptions","createComment","passive","detectListenerOptionsSupport","EventListener","elem","destroy","addListener","destroyer","$toDestroy","stopEvent","getButton","ctrlKey","altKey","shiftKey","button","capture","eventHandler","releaseCaptureHandler","onMouseUp","addMouseWheelListener","deltaX","deltaY","deltaMode","DOM_DELTA_PIXEL","wheelX","wheelY","DOM_DELTA_LINE","DOM_DELTA_PAGE","addMultiMouseDownListener","elements","timeouts","callbackName","startX","startY","clicks","eventNames","onMousedown","detail","isNewClick","abs","clientX","clientY","_clicks","getModifierHash","metaKey","normalizeCommandKeys","hashId","getModifierState","altGr","location","keyLocation","timeStamp","resetPressedKeys","getModifierString","addCommandKeyListener","isOldGecko","lastKeyDownKeyCode","lastDefaultPrevented","postMessage","postMessageId","nextTick","win","messageName","listener","$idleBlocked","onIdle","handler","$idleBlockId","blockIdle","nextFrame","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","bind","$cancelT","lineMode","pasteCancelled","Date","now","event","clipboard","BROKEN_SETDATA","USE_IE_MIME_TYPE","HAS_FOCUS_ARGS","MAX_LINE_LENGTH","KEYS","MODS","valueResetRegex","TextInput","parentNode","host","text","opacity","copied","pasted","inComposition","sendingText","tempStyle","fontSize","commandMode","ignoreFocusEvents","lastValue","lastSelectionStart","lastSelectionEnd","lastRestoreEnd","rowStart","Number","MAX_SAFE_INTEGER","rowEnd","MIN_SAFE_INTEGER","numberOfExtraLines","isFocused","activeElement","setNumberOfExtraLines","number","setAriaOptions","activeDescendant","inline","removeAttribute","role","setLabel","selection","cursor","onBlur","hasFocus","onFocus","resetSelection","$focusScroll","focus","renderer","enableKeyboardAccessibility","preventScroll","isTransformed","getBoundingClientRect","ancestors","t","parentElement","nodeType","blur","curOp","commandName","command","isUserAction","docChanged","selectionChanged","onCompositionEnd","positionToSelection","getLine","newValue","selectionEnd","setSelectionRange","afterContextMenu","selectionStart","getRange","lines","prevLine","nextLine","inputHandler","setInputHandler","getInputHandler","sendText","fromInput","onPaste","extendLeft","extendRight","inserted","restoreStart","restoreEnd","endIndex","shouldReset","onTextInput","onInput","onCompositionUpdate","inputType","execCommand","handleClipboardData","forceIEMime","clipboardData","mime","setData","getData","doCopy","isCut","getCopyText","onCut","onCopy","select","onCommandKey","isAllSelected","selectAll","$readOnly","cancelComposition","useTextareaForIME","markerRange","context","compositionStartOffset","closeTimeout","syncComposition","onContextMenuClose","$isMousePressed","$keepTextAreaAtCursor","$moveTextAreaToCursor","onCompositionStart","getSelectionRange","msGetInputContext","getInputContext","getElement","setCommandMode","readOnly","setReadOnly","setCopyWithEmptySelection","onContextMenu","domEvent","moveToMouse","bringToFront","characterWidth","rect","borderTopWidth","borderLeftWidth","maxTop","bottom","clientHeight","move","textInput","scroller","typingResetTimeout","typing","detectArrowKeys","$mouseHandler","isMousePressed","modifier","up","home","option","down","right","shift","commands","findKeyCommand","addIosSelectionHandler","$setUserAgentForTests","_isMobile","_isIOS","DefaultHandlers","mouseHandler","$clickSelection","editor","onMouseDown","onDoubleClick","onTripleClick","onQuadClick","onMouseWheel","selectByLines","extendSelectionBy","selectByWords","ev","inSelection","pos","getDocumentPosition","mousedownEvent","moveToPosition","time","$focusTimeout","inMultiSelectMode","captureMouse","startSelect","setState","waitForClickSelection","screenToTextCoordinates","y","getShiftKey","selectToPosition","anchor","orientedRange","calcRangeOrientation","setSelectionAnchor","scrollCursorIntoView","unitName","cmpStart","cmpEnd","selectByLinesEnd","unsetStyle","focusWait","ax","ay","bx","by","distance","sqrt","getBracketRange","getWordRange","getLineRange","getAccelKey","$lastScroll","vx","vy","allowed","prevScroll","dt","direction","canScroll","isScrollableBy","speed","scrollBy","stop","selectEnd","selectAllEnd","selectByWordsEnd","extendStatics","__extends","d","b","setPrototypeOf","__proto__","__","__values","Symbol","iterator","next","done","CLASSNAME","Tooltip","isOpen","$element","$parentNode","$init","setText","setHtml","html","setPosition","setClassName","setTheme","theme","show","hide","getHeight","offsetHeight","getWidth","popupManager","PopupManager","popups","addPopup","popup","updatePopups","removePopup","e_1","_a","e_2","_b","sort","priority","visiblepopups","_c","_d","shouldDisplay","visiblepopups_1","visiblepopups_1_1","visiblePopup","doPopupsOverlap","e_2_1","return","e_1_1","popupA","popupB","rectA","rectB","HoverTooltip","_super","_this","lastT","idleTime","lastEvent","onMouseOut","onMouseMove","waitForHover","whiteSpace","pointerEvents","tabIndex","addToEditor","getMouseEventTarget","removeFromEditor","isOutsideOfText","$gatherData","docPos","screenPos","pixelToScreenCoordinates","clippedPos","setDataProvider","showForRange","domNode","startingEvent","$registerCloseEvents","addMarker","textToScreenCoordinates","pageX","maxHeight","labelHeight","labelWidth","spaceBelow","innerHeight","pageY","lineHeight","isAbove","innerWidth","marker","$markerSession","removeMarker","$removeCloseEvents","relatedTarget","currentTarget","classList","GutterHandler","tooltipTimeout","mouseEvent","gutter","$gutterLayer","tooltip","GutterTooltip","hideTooltip","moveTooltip","getRegion","selectTo","srcElement","$tooltipFollowsMouse","getLength","screenRow","$pos","documentToScreenRow","showTooltip","gutterRow","getGutterRow","gutterCell","$lines","querySelector","$gutter","windowWidth","windowHeight","singular","plural","warning","info","annotation","annotationsInRow","$annotations","from","fold","getFoldLine","$showFoldedAnnotations","mostSevereAnnotationInFoldType","annotationsInFold","annotationType","summaryFoldedAnnotations","concat","annotationsToSummaryString","annotationMessages","iconClassName","$useSvgGutterIcons","annotationLabels","tooltipContent","annotations","summary","annotationTypes_1","annotationTypes_1_1","label","MouseEvent","$inSelection","documentRow","selectionRange","DragdropHandler","dragImage","dragSelectionMarker","timerId","dragCursor","dragOperation","isInternal","autoScrollStartTime","cursorMovedTime","cursorPointOnCaretMoved","mouseTarget","counter","onDragInterval","prevCursor","vMovement","hMovement","moveCursorToPosition","calcDistance","layerConfig","editorRect","offsets","nearestXOffset","nearestYOffset","scrollCursor","vScroll","hScroll","autoScroll","addDragMarker","toOrientedRange","getSelectionStyle","clearSelection","$cursorLayer","setBlinking","clearInterval","setInterval","clearDragMarker","fromOrientedRange","$resetCursorStyle","onDragStart","cancelDrag","draggable","self","dataTransfer","effectAllowed","getReadOnly","setDragImage","clearData","getTextRange","onDragEnd","dropEffect","setCursorStyle","onDragEnter","canAccept","getDropEffect","onDragOver","onMouseMoveTimer","onDragLeave","onDrop","moveText","dropData","insert","types","some","copyAllowed","copyModifierState","dragWait","getDragDelay","startDrag","dragWaitEnd","dragReadyEnd","cursorStyle","onMouseDrag","state","dragDrop","$dragEnabled","eventTarget","unselectable","addTouchListeners","touchStartT","longTouchTimer","animationTimer","pressed","contextMenu","mode","animationSteps","clickCount","vX","vY","showContextMenu","handleClick","selected","hasUndo","action","getUndoManager","replaceChild","class","readText","writeText","ontouchstart","ontouchend","onclick","pagePos","leftOffset","scrollLeft","hideContextMenu","handleLongTap","selectWord","touches","h","w","touchObj","setRange","switchToSelectionMode","cursorPos","getPixelPosition","anchorPos","offsetTop","offsetLeft","weightedDistance","diff1","diff2","oldScrollTop","getScrollTop","DefaultGutterHandler","MouseHandler","focusEditor","onMouseEvent","scrollBarV","scrollBarH","Boolean","gutterEl","$dragDelay","character","mousemove","$scrollSpeed","mouseMoveHandler","which","releaseMouse","$mouseMoved","onCaptureEnd","onOperationEnd","onCaptureInterval","$onCaptureMouseMove","endOperation","startOperation","cancelContextMenu","scrollSpeed","dragDelay","dragEnabled","focusTimeout","tooltipFollowsMouse","FoldHandler","getFoldAt","removeFold","expandFold","getUseWrapMode","foldWidgets","onFoldWidgetClick","getParentFoldRangeData","firstRange","addFold","keyUtil","KeyBinding","$editor","$data","$handlers","kb","removeKeyboardHandler","$defaultHandler","addKeyboardHandler","setKeyboardHandler","handleKeyboard","attach","detach","getKeyboardHandler","getStatusText","$callKeyboardHandlers","toExecute","success","args","passEvent","dir","hiLevel","lastArabic","hasUBAT_B","hasUBAT_S","impTab_LTR","impTab_RTL","ET","BN","UnicodeTBL00","UnicodeTBL20","_invertLevel","lev","levels","_array","lo","hi","tmp","_getCharClass","chars","ix","wType","nType","cType","c","rtlCandidate","_getCharacterType","uc","charCodeAt","L","R","EN","ON_R","AN","R_H","B","RLE","DOT","doBidiReorder","textCharTypes","isRtl","logicalFromVisual","bidiLevels","charTypes","impTab","prevState","newClass","newLevel","newState","condPos","_computeLevels","hasBidiCharacters","getVisualFromLogicalIdx","logIdx","rowMap","bidiUtil","bidiRE","BidiHandler","bidiMap","currentRow","charWidths","EOL","showInvisibles","isRtlDir","$isRtl","wrapIndent","EOF","contentWidth","fontMetrics","rtlLineOffset","wrapOffset","isMoveLeftOperation","seenBidi","getValue","isBidiRow","docRow","splitIndex","updateRowLine","updateBidiMap","onChange","delta","getDocumentRow","rowCache","$screenRowCache","$getRowCacheIndex","$docRowCache","getSplitIndex","currentIndex","prevIndex","endOfLine","$useWrapMode","splits","$wrapData","indent","substring","size","isFullWidth","getScreenTabSize","$main","substr","markAsDirty","updateCharacterWidths","$characterSize","bidiCharWidth","$measureCharWidth","setShowInvisibles","setEolChar","eolChar","setContentWidth","isRtlLine","setRtlDirection","getCursorPosition","getSelectionAnchor","$bidiHandler","removeInLine","getPosLeft","col","leftBoundary","logicalIdx","getOverwrite","visualIdx","getSelections","startCol","endCol","level","selections","selColMin","selColMax","isSelected","isSelectedPrev","visIdx","offsetToCol","posX","charWidth","Selection","getDocument","lead","createAnchor","$silent","$cursorChanged","$isEmpty","$keepDesiredColumnOnChange","$desiredColumn","$anchorChanged","getCursor","getPosition","setAnchor","getAnchor","getSelectionLead","isBackwards","$setSelection","MAX_VALUE","anchorRow","anchorColumn","cursorRow","cursorColumn","wasEmpty","wasMultiselect","$moveSelection","mover","moveCursorTo","moveTo","selectUp","moveCursorUp","selectDown","moveCursorDown","selectRight","moveCursorRight","selectLeft","moveCursorLeft","selectLineStart","moveCursorLineStart","selectLineEnd","moveCursorLineEnd","selectFileEnd","moveCursorFileEnd","selectFileStart","moveCursorFileStart","selectWordRight","moveCursorWordRight","selectWordLeft","moveCursorWordLeft","selectAWord","getAWordRange","excludeLastChar","foldLine","selectLine","moveCursorBy","wouldMoveIntoSoftTab","tabSize","isTabStop","getTabSize","getNavigateWithinSoftTabs","firstColumnPosition","screenToDocumentPosition","leadingSpace","getDisplayLine","$useEmacsStyleLineStart","lineEnd","getDocumentLastRowColumnPosition","textEnd","search","moveCursorLongWordRight","rightOfCursor","nonTokenRe","tokenRe","moveCursorLongWordLeft","getFoldStringAt","leftOfCursor","$shortWordEndIndex","whitespaceRe","moveCursorShortWordRight","moveCursorShortWordLeft","$selectLongWords","rows","offsetX","lineWidgets","widget","rowsAbove","rowCount","keepDesiredColumn","moveCursorToScreen","desiredColumn","r","getRangeOfMovements","func","toJSON","rangeCount","ranges","r1","fromJSON","rangeList","toSingleRange","addRange","MAX_TOKEN_COUNT","Tokenizer","rules","states","regExps","matchMappings","ruleRegExps","matchTotal","mapping","defaultToken","flag","splitterRurles","rule","caseInsensitive","unicode","regex","adjustedregex","matchcount","token","groupCount","tokenArray","onMatch","$arrayTokens","$applyToken","digit","removeCapturingGroups","splitRegex","createSplitterRegexp","$setMaxTokenCount","tokens","stack","inChClass","lastCapture","parenOpen","parenClose","square","getLineTokens","startState","currentState","matchAttempts","skipped","consumeLineEnd","merge","unshift","TextHighlightRules","$rules","addRules","prefix","nextState","getRules","embedRules","HighlightRules","escapeRules","append","$embeds","getEmbeds","pushState","popState","normalizeRules","processState","processed","toInsert","stateName","includeName","noEscape","keywordMap","createKeywordMapper","ignoreCase","splitChar","keywords","$keywordList","list","word","getKeywords","$keywords","Behaviour","$behaviours","addBehaviours","behaviours","inherit","getBehaviours","TokenIterator","initialRow","initialColumn","$session","$row","$rowTokens","getTokens","getTokenAt","$tokenIndex","stepBackward","stepForward","getCurrentToken","getCurrentTokenRow","getCurrentTokenColumn","rowTokens","tokenIndex","getCurrentTokenPosition","getCurrentTokenRange","SAFE_INSERT_IN_TOKENS","SAFE_INSERT_BEFORE_TOKENS","contextCache","defaultQuotes","initContext","multiSelect","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","getWrapped","opening","closing","rowDiff","CstyleBehaviour","getWrapBehavioursEnabled","isSaneInsertion","braces","recordAutoInsert","recordMaybeInsert","$findOpeningBracket","isAutoInsertedClosing","popAutoInsertedClosing","isMaybeInsertedClosing","clearMaybeInsertedClosing","openBracePos","findMatchingBracket","next_indent","$getIndent","getTabString","quotes","$mode","$quotes","lineCommentStart","quote","leftChar","rightChar","rightToken","pair","stringBefore","stringAfter","wordRe","isWordBefore","isWordAfter","pairQuotesAfter","$pairQuotesAfter","charBefore","closeDocComment","$matchTokenType","iterator2","bracket","wordChars","code","Mode","$defaultBehaviour","getTokenizer","$tokenizer","$highlightRules","$highlightRuleConfig","blockComment","toggleCommentLines","ignoreBlankLines","shouldRemove","minIndent","Infinity","insertAtTabStop","regexpStart","getUseSoftTabs","uncomment","shouldInsertSpace","commentWithSpace","comment","insertInLine","testRemove","before","after","spaces","lineCommentEnd","regexpEnd","iter","fun","minEmptyLength","floor","toggleBlockComment","colDiff","initialRange","startRange","endRange","getNextLineIndent","tab","checkOutdent","input","autoOutdent","createWorker","createModeDelegates","delegations","scope","functionName","$delegator","method","language","transformAction","param","$behaviour","completionKeywords","ruleItr","aLength","$createKeywordList","getCompletions","score","meta","applyDelta","docLines","doNotValidate","Anchor","$onChange","$clipPositionToDocument","point","moveIfEqual","deltaIsInsert","deltaRowShift","deltaColShift","deltaStart","deltaEnd","$pointsInOrder","$getTransformedPoint","$insertRight","noClip","point1","point2","equalPointsInOrder","bColIsAfter","Document","textOrLines","insertMergedLines","setValue","getAllLines","getNewLineCharacter","$detectNewLine","$autoNewLine","$newLineMode","setNewLineMode","newLineMode","getNewLineMode","isNewLine","getLines","getLinesForRange","insertLines","insertFullLines","removeLines","removeFullLines","insertNewLine","$split","clonePos","$clipPosition","deleteFirstNewLine","deleteLastNewLine","deletedLines","removeNewLine","applyDeltas","deltas","revertDeltas","revertDelta","isInsert","$splitAndapplyLargeDelta","$safeApplyDelta","docLength","MAX","to","chunk","indexToPosition","newlineLength","positionToIndex","BackgroundTokenizer","tokenizer","running","currentLine","$worker","workerStart","endLine","startLine","processedLines","$tokenizeRow","fireUpdateEvent","setTokenizer","setDocument","first","scheduleStart","$updateOnChange","getState","cleanup","SearchHighlight","clazz","setRegexp","update","markerLayer","renderedMarkerRanges","MAX_RANGES","rangeToAddMarkerTo","rangeAsString","drawSingleLineMarker","UndoManager","$maxRev","$fromUndo","$undoDepth","reset","addSession","allowMerge","$lastDelta","$keepRedoStack","$redoStack","lastDeltas","undoStackLength","$undoStack","$rev","addSelection","rev","startNewGroup","markIgnored","ignore","getSelection","getRevision","getDeltas","getChangedRanges","getChangedLines","undo","dontSelect","deltaSet","swapped","swapGroups","rearrangeUndoStack","$redoStackBaseRev","undoSelectionRange","undoChanges","$syncRev","redo","diff","redoStack","deltaSets","moveDeltasByOne","rebaseRedoStack","redoSelectionRange","redoChanges","nextDelta","mark","canUndo","canRedo","bookmark","isAtBookmark","json","$prettyPrint","stringifyDelta","hasRedo","isClean","markClean","stringifyRange","swap","d1","d2","i1","i2","ds1","ds2","selectionBefore","selectionAfter","xform","c1","splitDelta","shiftPos","rowsBefore","otherLines","cloneDelta","xformed","FoldLine","foldData","folds","setFoldLine","shiftRow","sameRow","containsRow","walk","lastEnd","isNewRow","placeholder","getNextFoldTo","kind","addRemoveChars","log","foldBefore","newFoldLine","foldLineNext","idxToPosition","idx","lastFoldEndColumn","RangeList","$bias","pointIndex","excludeEdges","startIndex","addList","removed","substractPoint","containsPoint","rangeAtPoint","clipped","removeAll","lineDif","Fold","subFolds","subFold","collapseChildren","addSubFold","consumePoint","afterStart","firstConsumed","consumedFolds","restoreRange","restorePoint","Folding","side","getFoldsInRange","foldLines","$foldData","foundFolds","getFoldsInRangeList","getAllFolds","trim","lastFold","startFoldLine","getNextFoldLine","getFoldedRowCount","$addFoldLine","added","$clipRangeToDocument","startFold","endFold","removeFolds","$updateWrapData","$updateRowLengthCache","$modified","addFolds","$updating","cloneFolds","foldAll","expandFolds","unfold","expandInner","outermostFolds","isRowFolded","startFoldRow","getRowFoldEnd","getRowFoldStart","getFoldDisplayLine","textLine","lastColumn","$cloneFoldData","fd","toggleFold","tryToUnfold","bracketPos","getCommentFoldRange","depth","getFoldWidget","getFoldWidgetRange","foldToLevel","foldAllComments","$foldStyles","$foldStyle","setFoldStyle","$foldMode","$setFolding","foldMode","$updateFoldWidgets","$tokenizerUpdateFoldWidgets","updateFoldWidgets","tokenizerUpdateFoldWidgets","ignoreCurrent","fw","children","siblings","$toggleFoldWidget","toggleFoldWidget","toggleParent","BracketMatch","chr","charBeforeCursor","$findClosingBracket","getMatchingBracketRanges","bracketsRegExp","$brackets","typeRe","openBracket","valueIndex","closingBracket","valueLength","getMatchingTags","$findTagName","$findClosingTag","$findOpeningTag","found","backward","prevToken","currentTag","openTagStart","openTagName","foundOpenTagEnd","openTagEnd","closeTagStart","closeTagName","closeTagEnd","openTag","closeTag","stepCount","tmpToken","TextMode","EditSession","$breakpoints","$decorations","$frontMarkers","$backMarkers","$markerId","$undoSelect","$uid","bgTokenizer","onChangeFold","setMode","destroyed","resetCaches","$resetRowCache","cacheArray","low","mid","$rowLengthCache","removedFolds","$updateInternalDataOnChange","$undoManager","mergeUndoDeltas","$informUndoManager","setUndoManager","JSON","parse","undoManager","history","editSession","setAnnotations","setBreakpoints","breakpoints","setScrollLeft","setScrollTop","scrollTop","$scrollLeft","$scrollTop","$syncInformUndoManager","markUndoGroup","$defaultUndoManager","setUseSoftTabs","$useSoftTabs","$indentWithTabs","setTabSize","$tabSize","setNavigateWithinSoftTabs","navigateWithinSoftTabs","$navigateWithinSoftTabs","setOverwrite","overwrite","$overwrite","toggleOverwrite","addGutterDecoration","removeGutterDecoration","getBreakpoints","clearBreakpoints","setBreakpoint","clearBreakpoint","inFront","addDynamicMarker","markerId","getMarkers","highlight","$searchHighlight","highlightLines","getAnnotations","clearAnnotations","inToken","wordRange","setUseWorker","useWorker","getUseWorker","$useWorker","onReloadTokenizer","$onChangeMode","$modeId","$isPlaceholder","oldMode","$stopWorker","$startWorker","attachToSession","wrapMethod","$wrapMethod","foldingRules","terminate","getMode","isNaN","getScrollLeft","getScreenWidth","$computeWidth","getLineWidgetMaxWidth","screenWidth","lineWidgetsWidth","lineWidgetWidth","force","$wrapLimit","longestScreenLine","foldIndex","foldStart","$getStringScreenWidth","$getUndoSelection","setUndoSelect","enable","isUndo","fromRange","toPosition","toRange","collDiff","oldStart","newStart","indentRows","indentString","outdentRows","rowRange","deleteRange","$moveLines","$clipRowToDocument","moveLinesUp","moveLinesDown","duplicateLines","$clipColumnToRow","setUseWrapMode","useWrapMode","setWrapLimitRange","$wrapLimitRange","adjustWrapLimit","desiredLimit","$printMargin","limits","wrapLimit","$constrainWrapLimit","getWrapLimit","setWrapLimit","limit","getWrapLimitRange","foldLineBefore","wrapData","walkTokens","$getDisplayTokens","PLACEHOLDER_START","PLACEHOLDER_BODY","$computeWrapSplits","displayLength","lastSplit","lastDocSplit","isCode","$wrapAsCode","indentedSoftWrap","$indentedSoftWrap","maxIndent","addSplit","indentation","SPACE","TAB","TAB_SPACE","getWrapIndent","minSplit","PUNCTUATION","CHAR_EXT","CHAR","maxScreenColumn","screenColumn","getRowLength","getRowLineCount","getRowWrapIndent","getScreenLastRowColumn","documentToScreenColumn","getDocumentLastRowColumn","docColumn","getRowSplitData","screenToDocumentRow","screenToDocumentColumn","rowLength","doCache","maxRow","foldStartRow","wrapRow","screenRowOffset","getScreenLength","screenRows","$getWidgetScreenLength","$setFontMetrics","fm","$enableVarChar","getCharacterWidth","wrap","$wrap","firstLineNumber","useSoftTabs","foldStyle","Search","$matchIterator","sr","sc","er","ec","skipCurrent","findAll","needle","$assembleRegExp","$isMultiLine","prevRange","replacement","preserveCase","$disableFakeMultiline","caseSensitive","$supportsUnicodeFlag","wholeWord","wordBoundary","firstChar","needleArray","lastChar","addWordBoundary","$assembleMultilineRegExp","backwards","forEachInLine","MultiHashHandler","$singleCommand","commandKeyBinding","addCommands","addCommand","removeCommand","bindKey","_buildKeyHash","keepCommand","ckb","keyId","cmdGroup","keyPart","chain","binding","parseKeys","_addCommandToBinding","removeCommands","bindKeys","keyList","$keyChain","isDefault","HashHandler","CommandManager","byName","$checkCommandState","isAvailable","returnValue","toggleRecording","$inReplay","recording","macro","$addCommandToMacro","oldMacro","replay","trimMacro","mac","description","showSettingsMenu","showErrorMarker","scrollIntoView","centerSelection","gotoLine","prompt","$type","multiSelectAction","getAllRanges","findNext","findPrevious","aceCommandGroup","navigateFileStart","navigateUp","times","navigateFileEnd","navigateDown","navigateWordLeft","navigateLineStart","navigateLeft","navigateWordRight","navigateLineEnd","navigateRight","selectPageDown","scrollPageDown","gotoPageDown","selectPageUp","scrollPageUp","gotoPageUp","jumpToMatching","$copyWithEmptySelection","$handlePaste","duplicateSelection","sortLines","modifyNumber","copyLinesUp","copyLinesDown","removeToLineStart","removeToLineEnd","removeWordLeft","removeWordRight","blockOutdent","blockIndent","splitLine","transposeLetters","transposeSelections","autoIndent","openLink","firstLineEndCol","selectedCount","insertLine","curLine","newRanges","exitMultiSelectMode","LineWidgets","widgetManager","updateOnChange","renderWidgets","measureWidgets","_changedWidgets","$onChangeEditor","updateOnFold","_inDocument","removeLineWidget","$updateRows","noWidgets","$oldWidget","$registerLineWidget","addLineWidget","zIndex","coverGutter","pixelHeight","$fold","onWidgetChanged","w1","getWidgetsAtRow","updateFull","changedWidgets","fixedWidth","ceil","coverLine","gutterWidth","fullWidth","padding","scrollBar","GutterKeyboardHandler","gutterLayer","activeRowIndex","activeLane","annotationTooltip","$onGutterKeyDown","$blurGutter","isRowVisible","scrollToLine","$rowToRowIndex","$cursorCell","nearestFoldIndex","$findNearestFoldWidget","nearestAnnotationIndex","$findNearestAnnotation","$focusAnnotation","$focusFoldWidget","$handleGutterKeyboardInteraction","GutterKeyboardEvent","lane","$switchLane","$rowIndexToRow","rowFoldingWidget","$blurFoldWidget","cells","childNodes","$moveFoldWidgetDown","$moveAnnotationDown","$moveFoldWidgetUp","$moveAnnotationUp","$blurAnnotation","$isFoldWidgetVisible","isRowFullyVisible","isIconVisible","$getFoldWidget","$isAnnotationVisible","$getAnnotation","foldWidget","keyboardFocusClassName","desinationLane","annotationIndex","foldWidgetIndex","cell","gutterKeyboardHandler","getKey","getRow","isInAnnotationLane","isInFoldLane","defaultCommands","Editor","getContainerElement","getTextAreaContainer","textarea","keyBinding","$search","$historyTracker","$initOperationListeners","_$emitInputEvent","setSession","$opResetTimer","$lastSel","commandEvent","prevOp","previousCommand","scrollSelectionIntoView","animateScrolling","sel","$mergeUndoDeltas","prev","mergeableCommands","$mergeableCommands","shouldMerge","mergeNextCommand","sequenceStartTime","keyboardHandler","$keybindingId","oldSession","$onDocumentChange","$onTokenizerUpdate","$onChangeTabSize","$onChangeWrapLimit","$onChangeWrapMode","$onChangeFold","$onChangeFrontMarker","$onChangeBackMarker","$onChangeBreakpoint","$onChangeAnnotation","$onCursorChange","$onScrollTopChange","$onScrollLeftChange","$onSelectionChange","onDocumentChange","onChangeMode","onTokenizerUpdate","onChangeTabSize","onChangeWrapLimit","onChangeWrapMode","onChangeFrontMarker","onChangeBackMarker","onChangeBreakpoint","onChangeAnnotation","onCursorChange","onScrollTopChange","onScrollLeftChange","onSelectionChange","oldEditor","getSession","resize","onResize","getTheme","getFontSize","setFontSize","$highlightBrackets","$highlightPending","$bracketHighlight","markerIds","$getDirectionForHighlight","tagNamesRanges","getMatching","markerType","getHighlightIndentGuides","$textLayer","$highlightIndentGuide","$isFocused","showCursor","visualizeFocus","hideCursor","visualizeBlur","$cursorChange","updateCursor","$updateHighlightActiveLine","updateLines","scrollToY","scrollToX","$highlightActiveLine","$selectionStyle","$selectionColorConflict","$maxLines","$minLines","$highlightLineMarker","$selectionMarker","$highlightSelectedWord","$getSelectionHighLightRegexp","wordWithBoundary","updateFrontMarkers","updateBackMarkers","updateBreakpoints","updateText","getSelectedText","nl","copyLine","inVirtualSelectionMode","isFullLine","getBehavioursEnabled","lineState","shouldOutdent","$enableAutoIndent","lineIndent","selectedRange","currIndent","prevLineState","composition","applyComposition","forEachSelection","setScrollSpeed","getScrollSpeed","setDragDelay","setSelectionStyle","setHighlightActiveLine","shouldHighlight","getHighlightActiveLine","setHighlightGutterLine","getHighlightGutterLine","setHighlightSelectedWord","getHighlightSelectedWord","setAnimatedScroll","shouldAnimate","getAnimatedScroll","getShowInvisibles","setDisplayIndentGuides","getDisplayIndentGuides","setHighlightIndentGuides","setShowPrintMargin","showPrintMargin","getShowPrintMargin","setPrintMarginColumn","getPrintMarginColumn","setBehavioursEnabled","enabled","setWrapBehavioursEnabled","setShowFoldWidgets","getShowFoldWidgets","setFadeFoldWidgets","fade","getFadeFoldWidgets","new_range","setGhostText","removeGhostText","originalRange","$getSelectedRows","getNumberAt","_numberRx","amount","charRange","isFinite","nr","fp","decimals","nnr","toFixed","replaceRange","toggleWord","currWordStart","wordParts","curLength","itLength","that","reg","wordPairs","$toggleWordPairs","negate","firstCondition","res","findLinkAt","columnPosition","previousPosition","currentPosition","wordParts_1","wordParts_1_1","endPoint","moved","totalDiff","rangeIndex","subRows","compositionState","showComposition","setCompositionText","hideComposition","getFirstVisibleRow","getLastVisibleRow","getFirstFullyVisibleRow","getLastFullyVisibleRow","$getVisibleRowCount","getScrollBottomRow","getScrollTopRow","$moveByPage","scrollToRow","center","animate","alignCursor","getCursorPositionScreen","expand","tokenCount","matchType","bracketType","brackets","tagsRanges","lineNumber","navigateTo","replaced","$tryReplace","replaceAll","getLastSearchOptions","newRange","revealRange","setAutoScrollEditorIntoView","shouldScroll","$scrollAnchor","scrollAnchor","onChangeSelection","onBeforeRender","onAfterRender","searchBox","$pixelPos","$cursorStyle","cursorLayer","setSmoothBlinking","isBlinking","selectionStyle","highlightActiveLine","highlightSelectedWord","copyWithEmptySelection","behavioursEnabled","wrapBehavioursEnabled","enableAutoIndent","autoScrollEditorIntoView","showLineNumbers","setShowLineNumbers","$loop","CHANGE_GUTTER","$relativeLineNumbers","relativeNumberRenderer","relativeLineNumbers","$showLineNumbers","$updatePlaceholder","hasValue","$composition","placeholderNode","$placeholder","content","blurCommand","focusOnEnterKeyup","customScrollbar","hScrollBarAlwaysVisible","vScrollBarAlwaysVisible","highlightGutterLine","animatedScroll","printMarginColumn","printMargin","fadeFoldWidgets","showFoldWidgets","displayIndentGuides","highlightIndentGuides","showGutter","fontFamily","maxLines","minLines","scrollPastEnd","fixedWidthGutter","hasCssTransforms","maxPixelHeight","useResizeObserver","useSvgGutterIcons","showFoldedAnnotations","getText","lastLineNumber","$renderer","Lines","canvasHeight","cellCache","$offsetCoefficient","moveContainer","firstRowScreen","pageChanged","oldConfig","newConfig","computeLineTop","screenTop","screenPage","computeLineHeight","$cacheCell","fragment","insertAdjacentElement","createCell","initElement","Gutter","parentEl","$showFoldWidgets","$updateAnnotations","rowInfo","annoText","annoType","gutterOffset","oldLastRow","$updateCursorRow","onCreateCell","$renderCell","$updateGutterWidth","gutterRenderer","$firstLineNumber","lastLineText","$fixedWidth","$padding","$computePadding","$highlightGutterLine","$cursorRow","updateLineHighlight","scrollLines","$renderLines","textNode","annotationNode","annotationIconNode","decorations","rowText","foldClass","isClosedFold","foldAnnotationClass","annotationInFold","foldRange","getShowLineNumbers","paddingLeft","borderRightWidth","paddingRight","Marker","setPadding","setMarkers","markers","elt","css","$getTop","drawFullLineMarker","drawScreenLineMarker","drawTextMarker","drawMultiLineMarker","childElementCount","lastChild","stringBuilder","extraStyle","curr","lineRange","range1","drawBidiSingleLineMarker","radiusClass","extraLength","textTokens","Set","isTextToken","tokenType","has","Text","$updateEolChar","EOL_CHAR","EOL_CHAR_LF","EOL_CHAR_CRLF","margin","getLineHeight","$fontMetrics","measure","$pollSizeChanges","checkForSizeChanges","$pollSizeChangesTimer","$computeTabString","showSpaces","showTabs","showEOL","$highlightIndentGuides","tabStr","$tabStrings","span","TAB_CHAR","$indentGuideRe","spaceClass","spaceContent","SPACE_CHAR","tabClass","tabContent","lineElements","lineElementsIdx","heightChanged","lineElement","$renderLine","$renderLinesFragment","lineEl","$useLineGroups","$renderToken","valueFragment","simpleSpace","controlCharacter","cjkSpace","cjk","cloneNode","renderIndentGuide","cols","$highlightIndentGuideMarker","indentLevel","initialIndent","elementIndentLevel","currentIndent","$renderHighlightIndentGuide","$clearActiveIndentGuide","$setIndentGuideActive","$createLineElement","$renderWrappedLine","splitChars","$renderOverflowMessage","$renderSimpleLine","overflowEl","$getFoldLineTokens","lastLineEl","invisibleEl","EOF_CHAR","renderTokens","addTokens","Cursor","isVisible","blinkInterval","smoothBlinking","cursors","addCursor","$updateCursors","$updateOpacity","$startCssAnimation","animationDuration","$isAnimating","$stopCssAnimation","blinking","restartTimer","setBlinkInterval","removeCursor","intervalId","timeoutId","$isSmoothBlinking","blink","onScreen","isCursorInView","pixelPos","$selectionMarkers","cursorIndex","drawCursor","$setOverwrite","MAX_SCROLL_H","Scrollbar","classSuffix","setVisible","skipEvent","onScroll","coeff","VScrollBar","scrollHeight","$scrollbarWidth","$minWidth","setHeight","setScrollHeight","setInnerHeight","HScrollBar","setWidth","setInnerWidth","setScrollWidth","ScrollBar","ScrollBarV","ScrollBarH","VScrollWidth","HScrollHeight","eType","mousePageY","startTop","thumbTop","scrollTopFromThumbTop","thumbHeight","pageHeight","viewHeight","slideHeight","scrollWidth","mousePageX","startLeft","thumbLeft","scrollLeftFromThumbLeft","thumbWidth","pageWidth","viewWidth","slideWidth","RenderLoop","onRender","pending","changes","$recursionLimit","_flush","change","clear","CHAR_COUNT","USE_OBSERVER","ResizeObserver","FontMetrics","$setMeasureNodeStyles","$measureNode","$addObserver","isRoot","visibility","font","$measureSizes","fontWeight","boldSize","charSizes","allowBoldFonts","$observer","observe","setPolling","disconnect","$getZoom","zoom","$initTransformMeasureNodes","transformCoordinates","clientPos","elPos","solve","l1","l2","det","sub","mul","m2","ut","u","f","Decorator","canvas","pixelRatio","heightRatio","canvasWidth","minDecorationHeight","halfMinDecorationHeight","colors","dark","light","$updateDecorators","ctx","getContext","clearRect","priorities","compensateFold","compensateFoldRows","currentY","y1","y2","yCenter","fillStyle","fillRect","GutterLayer","MarkerLayer","TextLayer","CursorLayer","HScrollBarCustom","VScrollBarCustom","editorCss","VirtualRenderer","onGutterResize","$markerBack","textLayer","$markerFront","$horizScroll","$vScroll","$scrollAnimation","scrollMargin","updateCharacterSize","$size","scrollerHeight","scrollerWidth","$dirty","minHeight","v","$renderChanges","defaultView","CHANGE_FULL","$addResizeObserver","$allowBoldFonts","$updatePrintMargin","onChangeNewLineMode","$changedLines","CHANGE_LINES","CHANGE_TEXT","CHANGE_MARKER","updateFontSize","$updateSizeAsync","resizing","$updateCachedSize","$resizeTimer","$changes","$customScrollbar","$updateCustomScrollbar","$extraHeight","oldSize","CHANGE_SIZE","CHANGE_SCROLL","$showGutter","$computeLayerConfig","availableWidth","$showPrintMargin","$printMarginColumn","$animatedScroll","getShowGutter","setShowGutter","$printMarginEl","containerEl","posTop","posLeft","setScrollMargin","sm","setMargin","getHScrollBarAlwaysVisible","$hScrollBarAlwaysVisible","setHScrollBarAlwaysVisible","alwaysVisible","getVScrollBarAlwaysVisible","$vScrollBarAlwaysVisible","setVScrollBarAlwaysVisible","$updateScrollBarV","$scrollPastEnd","$updateScrollBarH","freeze","$frozen","unfreeze","CHANGE_H_SCROLL","st","$scrollDecorator","$updateLines","CHANGE_CURSOR","CHANGE_MARKER_FRONT","CHANGE_MARKER_BACK","$autosize","desiredHeight","$maxPixelHeight","$gutterWidth","hideScrollbars","longestLine","$getLongestLine","horizScroll","hScrollChanged","vScrollBefore","vScrollChanged","firstRowHeight","lineCount","charCount","$viewMargin","newLeft","newTop","topMargin","bottomMargin","$stopAnimation","currentTop","currentLeft","twoCharsWidth","alignment","$calcSteps","fromValue","toValue","x_min","STEPS","steps","initialScroll","oldSteps","$timer","endAnimation","scrollTo","canvasPos","$hasCssTransforms","$blockCursor","$useTextareaForIME","addToken","removeExtraToken","insertPosition","textLines","$ghostText","$ghostTextWidget","pixelPosition","ghostTextHeight","newToken","$themeId","$theme","setMouseCursor","attachToShadowRoot","$resizeObserver","contentRect","workerUrl","Worker","blob","Blob","blobBuilder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","getBlob","$workerBlob","blobURL","URL","webkitURL","createObjectURL","WorkerClient","worker","$createWorkerFromOldConfig","$sendDeltaQueue","changeListener","onMessage","callbackId","callbacks","onmessage","topLevelNamespaces","classname","importScripts","nameToUrl","toUrl","normalizePath","$normalizePath","tlns","deltaQueue","onerror","$doc","cmd","emit","ex","attachToDocument","q","UIWorkerClient","main","emitSync","sender","messageBuffer","workerClient","processNext","setEmitSync","Main","PlaceHolder","others","mainClass","othersClass","$onUpdate","onUpdate","$others","undoStack","$undostack","$undoStackDepth","setup","other","showOtherMarkers","othersActive","hideOtherMarkers","updateAnchors","lengthDiff","inMainRange","distanceFromStart","newPos","otherPos","updateMarkers","updateMarker","undosRequired","isSamePoint","alt","ctrl","accel","selectionMode","isMultiSelect","mouseX","mouseY","screenAnchor","screenCursor","$enableJumpToDef","$blockSelectEnabled","addSelectionMarker","oldRange","removeSelectionMarker","tmpSel","rectSel","blockSelect","newCursor","removeSelectionMarkers","rectangularRangeBlock","updateSelectionMarkers","onSelectionInterval","selectMoreLines","selectMore","joinSelections","splitIntoLines","alignCursors","multiSelectCommands","getSelectionMarkers","$blockChangeEvents","$onAddRange","$onRemoveRange","mergeOverlappingRanges","lastRange","$initRangeList","toggleBlockSelection","includeEmptyLines","xBackwards","startOffsetX","endOffsetX","docEnd","yBackwards","MultiSelect","$multiselectOnSessionChange","$onMultiSelect","$onSingleSelect","onSessionChange","$checkMultiselectChange","altCursor","altDown","addAltCursorListeners","selectionMarkerCount","markerList","$onMultiSelectExec","inVirtualMode","keepOrder","$byLines","cmdResult","anim","buf","additive","skip","screenLead","toRemove","words","stopAtFirst","sameRowRanges","maxCol","minSpace","spaceOffsets","spaceOffset","fr","lr","guessRange","$reAlignText","forceLeft","startW","textW","endW","isLeftAligned","isRightAligned","alignLeft","enableMultiselect","enableBlockSelect","FoldMode","foldingStartMarker","foldingStopMarker","indentationBlock","startLevel","openingBracketBlock","closingBracketBlock","oldWidget","gutterAnno","comparator","binarySearch","matched","findAnnotations","arrow","onmousedown","Renderer","edit","_id","env","tagName","oldNode","createEditSession","is","singletonTags","blockTags","formatOptions","lineBreaksAfterCommasInCurlyBlock","beautify","nextToken","tabString","breakBefore","spaceBefore","spaceAfter","lastDepth","lastIndent","unindent","roundDepth","curlyDepth","curRow","rowsToAdd","indentNextLine","inTag","inCSS","inBlock","parents","caseBody","trimNext","trimLine","trimCode","trimRight","trimLeft","searchboxCss","SearchBox","showReplaceForm","spellcheck","title","setEditor","searchRange","$syncOptions","$initElements","sb","replaceBox","searchOption","replaceOption","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","searchCounter","activeInput","$searchBarKb","setSearchRange","searchRangeMarker","checked","noMatch","updateCounter","MAX_COUNT","findPrev","replaceAndFindNext","active","$closeSearchBarKb","isReplace","supportType","supportFunction","supportConstant","supportConstantColor","supportConstantFonts","numRe","pseudoElements","pseudoClasses","CssHighlightRules","keywordMapper","strings","escapes","MatchingBraceOutdent","propertyMap","CssCompletions","completionsDefined","defineCompletions","inParens","getPropertyValueCompletions","getPropertyCompletions","skipSemicolon","caption","snippet","CssBehaviour","BaseFoldMode","commentRegex","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","forceMultiline","getCommentRegionBlock","getSectionRange","startIndent","subRange","CStyleFoldMode","$outdent","$completer","snippetFileId","DocCommentHighlightRules","getTagRule","getStartRule","getEndRule","GolangHighlightRules","stringEscapeRe","tokenizedLine","JsDocCommentHighlightRules","identifierRe","JavaScriptHighlightRules","escapedRe","comments","noES6","no_regex","jsx","JSX","tagRegex","jsxTag","jsxJsRule","jsxAttributes","reference","endState","results","JsonHighlightRules","JsxHighlightRules","buildinConstants","reserved","PythonHighlightRules","strPre","strRawPre","strFormatPre","strRawFormatPre","integer","intPart","pointFloat","floatNumber","stringEscape","PythonFoldMode","outdents","XmlHighlightRules","normalize","processing_instruction","doctype","int_subset","cdata","attr_reference","tag_whitespace","whitespace","attribute_value","embedTagRules","XmlBehaviour","rightSpace","tokenEndColumn","tokenRow","tokenColumn","voidElements","nextIndent","optionalEndTags","Tag","selfClosing","_getFirstTagInLine","_findEndTagInLine","getCommentFoldWidget","tags","XmlFoldMode","createRoot","hydrateRoot","hasElementType","Element","hasMap","Map","hasSet","hasArrayBuffer","ArrayBuffer","isView","equal","it","entries","flags","valueOf","$$typeof","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","amdD","getter","__esModule","definition","prop","toStringTag","nmd","paths","createContext","Icon","family","weight","rest","getCSSClasses","propTypes","isRequired","ItemTrigger","collapsed","toggleChange","useContext","iconType","trigger","onClick","AccordionItem","collapsedProp","ref","setCollapsed","useState","useMemo","expandToContent","contextValue","Provider","defaultProps","forwardRef","AccordionItemHeader","usearrowastrigger","getSize","componentSize","setComponentSize","current","handleResize","useCallback","useLayoutEffect","resizeObserver","savedHandler","useRef","useEffect","eventListener","Collapsible","contentContainer","collapseWrapper","refContainerSize","contentContainerStyle","setContentContainerStyle","onWindowResize","CSSTransition","onEnter","onExit","in","classNames","AccordionItemContent","Accordion","Item","Header","Content","Button","customButton","iconFamily","iconPosition","iconOnly","noStyle","getCssClasses","cssClasses","sizeClass","disabledClass","displayClass","themeClass","iconOnlyClass","noStyleClass","getButtonIcon","buttonType","cloneElement","getButtonType","ButtonGroup","CardHeader","CardBody","align","CardFooter","CardTitle","CardTitleGroup","CardSubTitle","CardSummary","CardTitleIcon","Card","Body","Footer","Title","TitleGroup","SubTitle","Summary","wait","immediate","callNow","Loader","withbackground","Message","onClose","noMargin","Chart","areaStyleColors","dataLoaded","hasData","series","zoomStart","zoomEnd","seriesConfig","noDataComponent","noDataComponentProp","zoomColors","tykChartInstance","setTykChartInstance","chartWrapperRef","lineBarChart","defaultOpts","fromJS","color","toolbox","orient","itemSize","showTitle","feature","dataZoom","dataBackground","lineStyle","areaStyle","handleStyle","textStyle","borderColor","fillerColor","legend","axisPointer","grid","containLabel","xAxis","boundaryGap","axisLine","axisTick","yAxis","axisLabel","animationEasing","seriesDefault","LinearGradient","smooth","symbolSize","pieChart","formatter","radius","avoidLabelOverlap","animationType","labelLine","normal","length2","geoChart","dispose","eventCallBack","debouncedMethod","debounce","getZr","prevInstance","prevOption","prevType","prevSeries","equals","selectedType","selectedOptions","selectedSeries","finalOpts","mergeDeep","toJS","entry","seriesData","buildChartOptions","dispatchAction","dataZoomSelectActive","seriesIndex","dataIndex","prevZoomStart","prevZoomEnd","startValue","endValue","chartHasData","getStyle","memo","savedCallback","ToastMessage","handleClose","itemIndex","ToastContainer","notify","updateNotifications","msgID","random","prevMessages","onMessageClosed","newMessages","fn","createNotification","render","bindNotify","danger","CopyToClipboard","txtRef","createRef","onKeyUp","ModalFooter","ModalBody","Modal","disableCloseCommands","opened","showBackdrop","restProps","modalClasses","backdropClasses","themeIcon","onKeyDown","Confirm","confirmBtnText","cancelBtnText","setOpen","setCallback","cancelCallback","setCancelCallback","callbackFunc","cancelCallbackFunc","beforeCallback","FixedWrapper","showShadow","fixedWrapperRef","attachShadow","scrollY","debouncedAttachShadow","InfiniteScroller","hasMore","initialLoad","loadMore","pageNumber","refChild","showLoader","setShowLoader","containerRef","refChildSize","shouldLoad","loadMoreData","prevPageNumber","scrollHandler","prevRefChildSize","PropTypes","oneOfType","arrayOf","bool","instanceOf","FloatingContainer","forceDisplay","displayAxis","preferredPosition","infiniteScrollerConfig","localRef","floatingContainerRef","contentWrapperRef","viewportOffset","schedulePositionUpdate","topSpace","bottomSpace","leftSpace","hasTopSpace","hasBottomSpace","hasLeftSpace","hasRightSpace","positionedVerticallyFitsInViewport","positionedHorizontallyFitsInViewport","getDisplayForVertical","getDisplayForHorizontal","getDisplayWhereItFits","determineDisplay","targetPosition","vpLeft","vpTop","leftPos","auto","matchElement","matchStart","matchEnd","topPos","maxWidth","getStylesForTop","getStylesForBottom","getStylesForLeft","getStylesForRight","adjustPosition","createPortal","InfoNote","ListItem","List","labelwidth","flexBasis","styleCopy","structuredClone","getListStyle","NavBar","pre","subtitle","withTabs","subtitleContent","NavigationItem","Navigation","PortalContext","PanelBody","noPadding","Consumer","portalContext","collapsable","PanelFooter","PanelHeader","Component","HeaderTag","onToggle","collapsibleIconPosition","Panel","onToggleCollapse","collapsedState","setCollapsedState","handleToggle","panelTheme","collapsbleIconPosition","toggleCollapse","Pill","RevealPanelService","setRefs","wrapper","panel","unbindEvents","bindEvents","ensureRefs","mouseDown","initialRect","initialEvent","isPrimaryMouseButtonDown","newY","finalHeight","notifyListeners","buttons","heightVal","reason","isHidden","deinit","RevealPanelHeaderLeft","RevealPanelHeaderRight","mergeClasses","RevealPanel","onHeightChange","parentSelector","contentStyle","contentClassName","gutterClassName","wrapperClassName","panelRef","gutterRef","wrapperRef","panelService","useImperativeHandle","headerLeft","headerRight","contents","child","TempRevealPanel","HeaderLeft","HeaderRight","TabsContext","TabContent","addTab","hideTab","updateTab","showTab","selectedPath","tabData","tabsId","tabExists","rendered","hideTabContent","tabs","tempTabData","prevTabData","shouldRender","TabContext","Tab","tabsContext","tabContext","setPath","tempPath","Tabs","onTabChange","setTabs","setSelectedPath","setRendered","initialPath","setInitialPath","setCurrentSelectedPath","tempRendered","collapsible","prevTabs","tempTabs","tabsState","tempTabsState","toggleTab","getTabCssClass","tabId","genTabs","currentTabs","updateTabsList","icon","closable","isOpened","additionalClickParents","isActive","setIsActive","tooltipRef","activeEvents","onMouseEnter","onMouseLeave","handleDocumentClick","TextEllipsis","Pagination","totalNrOfPages","selectedPage","setSelectedPage","pagesArray","nrOfPages","pagesArr","currentNr","pageNr","at","getPagesArr","goToPage","tableContext","HeaderCell","sortable","sortOrder","setSortOrder","sendMessage","allRowsSelected","columns","selectable","generateSelectable","allowSelectAll","isCheckbox","Checkbox","displayError","displayNote","note","Cell","styling","events","Row","SelectableCheckbox","Table","noDataMessage","loading","infiniteScrolling","onChangeMsg","setOnChangeMsg","itemsListRef","sortRows","order","selectAllRows","selectRow","setPagination","pagination","api","getTable","every","totalPages","num","nrItemsOnPage","perPage","Column","cSize","cOffset","nogutters","DropdownContext","DropdownItem","customdropdownitem","eventKey","dropdownItemCLick","dropdownContext","itemProps","onSelectItem","selectedItem","showCheckmark","Dropdown","isElemInRightView","dropdownWidth","isElemInBottomView","dropdownHeight","elHeight","super","dropdownRef","dropdownListRef","dropdownButtonRef","toggleDropdown","handleClickOutside","componentDidMount","getStyles","componentDidUpdate","prevProps","closeDropdown","componentWillUnmount","itemId","closeOnSelect","onSelect","selectedItemProps","dropdownEl","offsetPosition","customTop","customLeft","getWrapperCssClasses","btnGroup","btnGroupSize","btnTheme","hasCustomContent","listclassnames","getBtnTitle","btnTitle","stopButtonTextChange","appendTo","btnClassName","btnSize","customBtnTitle","showDropdownIcon","showTriggerButton","DropdownWrapperTag","DropdownTrigger","splitTrigger","toggle","onTriggerClick","DropdownListWrapper","dropdownValue","Dropdown2","setSelectedValueAsTitle","setIsOpen","handleOutsideClick","triggerElement","CodeEditor","disableValidation","finalSetOptions","getCodeEditorError","getLabelStyles","getNonLabelWidth","handleOnChange","handleOnBlur","htmlFor","editorProps","$blockScrolling","editorInstance","getStateSelectedValues","multiple","Combobox","closeList","openList","filterByName","itemValue","inputValue","stateSelectedValues","searchText","comboboxRef","valuesListRef","inputRef","textRef","focusInput","handleItemsNavigation","handleComboboxDropdownClick","handleListItemClick","handlePillRemoveClick","manageSelectedTags","setInputWidth","unBindEvents","getDerivedStateFromProps","nextProps","stringify","filteredValues","filterValues","cursorNext","previousState","methodName","tempState","removeSelectedValue","allowCustomValues","getSearchText","getSelectedIndex","getListItemCssClasses","getComboboxListCssClass","themes","iTheme","getInputError","elWidth","getComboboxDisplayData","reduce","prevValue","tempValue","selectedIndex","selectedValues","isInInitialValues","addSelectedValue","manageSelectedValues","tempSelectedValues","tempStateSelectedValues","ok","searchItem","renderInput","visbility","renderDropdown","autoFocus","CustomListComponent","Value","tagSeparators","addTagOnBlur","renderValue","valueOverflow","dummyElementRef","setInputValue","inputWidth","entryFieldOnChange","dummy","triggerAction","textValue","isPlaceholder","renderCustomValue","entryFieldOnKeyDown","listRef","searchValue","activeItem","renderListItem","showSearch","block","isNoneSelected","renderSelectAllOption","Combobox2","propValue","propValues","maxProp","matchItemFn","renderList","renderListProp","onBeforeChange","floatingContainerConfig","expandMode","displayDropdownTrigger","required","validateOnChange","rootRef","comboboxControlRef","getValueFromProp","setValues","normalizeValue","setSearchValue","setActiveItem","setIsOpened","valuesExpanded","setValuesExpanded","localValidationError","setLocalValidationError","getThemeClasses","getFilteredValues","openDropdown","updateSearchValue","newSearchValue","fv","isValidValue","newValues","localError","updateValue","addTag","listValueIndex","lv","finalValue","selectValue","valIndex","with","selectAllValues","moveUpActiveItem","visibleItems","activeIndex","moveDownActiveItem","executeTriggerAction","onTagMessage","removeTag","renderIcon","sv","nv","vals","valuesElement","updateScroll","mobserver","MutationObserver","robserver","childList","subtree","currentValuesClasses","onClickCapture","existingVal","DatePicker","onOpen","pickerInstance","setPickerInstance","dateRef","hasValueChanged","prevDate","currentDate","getTime","diffDates","date","onDateChange","dateValue","instance","defaultDate","setDate","openCalendar","inputStyle","addonStyle","getInputField","dateFormat","_typeof","requiredArgs","isDate","toDate","argument","argStr","NaN","toInteger","dirtyNumber","startOfUTCISOWeek","dirtyDate","day","getUTCDay","setUTCDate","getUTCDate","setUTCHours","getUTCISOWeekYear","year","getUTCFullYear","fourthOfJanuaryOfNextYear","setUTCFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","defaultOptions","getDefaultOptions","startOfUTCWeek","_ref","_ref2","_ref3","_options$weekStartsOn","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","weekStartsOn","locale","RangeError","getUTCWeekYear","_options$firstWeekCon","firstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","addLeadingZeros","targetLength","sign","signedYear","month","getUTCMonth","getUTCHours","getUTCMinutes","getUTCSeconds","numberOfDigits","milliseconds","getUTCMilliseconds","G","localize","era","ordinalNumber","unit","lightFormatters","Y","signedWeekYear","weekYear","Q","quarter","M","week","firstWeek","startOfUTCWeekYear","getUTCWeek","I","isoWeek","fourthOfJanuary","startOfUTCISOWeekYear","getUTCISOWeek","D","dayOfYear","timestamp","setUTCMonth","difference","getUTCDayOfYear","E","dayOfWeek","localDayOfWeek","isoDayOfWeek","dayPeriodEnumValue","dayPeriod","hours","H","K","S","X","_localize","timezoneOffset","_originalDate","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","z","originalDate","T","dirtyDelimiter","absOffset","minutes","delimiter","dateLongFormatter","pattern","formatLong","timeLongFormatter","longFormatters","P","dateTimeFormat","matchResult","datePattern","timePattern","dateTime","protectedDayOfYearTokens","protectedWeekYearTokens","throwProtectedError","format","formatDistanceLocale","lessThanXSeconds","one","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","defaultWidth","formats","full","long","medium","short","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchedString","parsePatterns","defaultParseWidth","object","findKey","valueCallback","formatDistance","tokenValue","addSuffix","comparison","formatRelative","_date","_baseDate","_options","rem100","narrow","abbreviated","wide","am","pm","midnight","noon","morning","afternoon","evening","night","parsePattern","parseResult","any","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","_ref4","_options$locale2","_options$locale2$opti","_ref5","_ref6","_ref7","_options$locale3","_options$locale3$opti","_defaultOptions$local3","_defaultOptions$local4","formatStr","defaultLocale","isValid","utcDate","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","getTimezoneOffsetInMilliseconds","dirtyAmount","addMilliseconds","subMilliseconds","formatterOptions","firstCharacter","longFormatter","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","isProtectedDayOfYearToken","EditableListForm","getMainFormValue","components","mainFormValue","submitButtonRef","submitForm","errors","mainError","addValueOnFieldChange","getMainFormButtonWidth","createRefs","propsComponents","stateComponents","validateValue","getFormCssClasses","noLabels","getButtonClassName","buttonStyle","displayType","getComponentsError","errorPersist","validatorsNames","validate","validatorName","validator","validationmessages","hasMainFormErrors","resetForm","showMainError","onSubmit","validationmessage","buttonName","ComponentName","EditableList","getItemListValue","getListItemCssClass","buttonWidth","handleFormSubmit","dropdownListItemRef","addValues","triggerOnChange","handleItemUpdate","editMode","handleChildrenOnChange","getListItemsCssClass","getFormInputKey","getListItemText","itemData","separator","setItemEditMode","closeListItems","isInList","removeListItem","removedItem","valueArr","tempItemValue","nextValue","genListItem","clonedComponents","genList","appendToElement","formButtonTitle","formButtonStyle","addButtonName","onAddRow","ListHeader","fields","field","FieldsList","onDelete","rowIndex","tempField","EditableList2","hideOnEmpty","internalErrors","setInternalErrors","updateRowValue","fieldIndex","componentValue","tempValueArr","tempErrors","tempFieldError","Components","internalError","setInternalError","onFieldChange","errorMsg","deleteRow","rowValues","colValue","flat","hasErrors","FileInput","accept","fileInputRef","files","Input","getAddon","initValue","stateValue","isfield","inputgroupaddonleft","inputgroupaddonright","getInputGroupAddon","getInputComponent","autoComplete","Input2","getInputElement","MultiselectItem","itemType","isInSearchValue","fieldsToSearchOn","onAddRemove","itemDisplayTemplate","maxSelections","nrSelectedItems","onGetItemDetails","details","detailsDisplayTemplate","getItemContent","getItemLoader","MultiselectPanel","inputPlaceholder","noItemsMessage","items","onCustomSearch","customSearch","panelType","serverLoad","itemsPageNumber","itemsNrPages","loadMoreItems","searchOnChange","itemChanged","cloneItems","clonedItem","renderListItems","diffObjects","Multiselect","entityNamePlural","getItemDetails","setOpened","prevOpened","itemsChange","allItems","valueClone","valueChange","providerValue","Radio","nospace","Select","setStateValue","selectedValue","getSelectError","getSelectComponent","SelectableList","checkboxalticon","itemTemplate","primaryKey","handleOnSelect","newSelectedItems","elemPosition","getListItemCssClassName","tvalue","Textarea","ToggleItem","getNotchCssClasses","itemRef","saveSelectedRef","onItemSelected","ToggleItemWrapper","Toggle","onDark","separated","selectedRef","setSelectedRef","notchRef","toggleRef","positionNotch","selectedWidth","FORM_DEBOUNCE","setConfig","getValueFromPath","acc","form","properties","DEFAULT_DEBOUNCE_TIME_MS","myValue","setMyValue","getOnChangeProps","hasIsFieldProp","executeDebounced","valueOrEvent","nodeName","onChangeProps","formError","touched","submitCount","status","componentProps","hasOwn","FieldCodeEditor","FieldCombobox","getComboboxError","FieldDropdown","FieldPagination","FieldCombobox2","FormDatePicker","getDatePickerError","FieldEditableList","getEditableListError","FieldFileInput","FieldInput","FieldMultiselect","getMultiselectError","FieldSelect","handleEvent","FieldSelectableList","FieldToggle","useInterval"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"index.js","mappings":"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G,IAAK,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,IAAK,GAAI,IAAK,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,KAAM,GAAI,EAAG,GAAI,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,KAAM,GAAI,MAAO,GAAI,KAAM,GAAI,GAAI,EAAG,IAAK,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAA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O,CAAC,eAAgB,uBAAwB,4BAChDH,MAAO,kEACR,CACCG,MAAOqyD,EACPxyD,MAAO80D,GACR,CACC30D,MAAO,uBACPH,MAAO,aACPpkB,KAAM,YACP,CACCukB,MAAO,eACPH,MAAO,KACPpkB,KAAM,SACP,CACCukB,MAAO,mBACPH,MAAO,yEACPpkB,KAAM,SACP,CACCukB,MAAO,uBACPH,MAAO,UACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,SACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,UACR,CACCG,MAAO,UACPH,MAAO,WAGf7mC,SAAU,CAAC,CACHgnC,MAAO,OACPH,MAAO,QACR,CACCG,MAAO,CACH,eAAgB,uBAAwB,uBAAwB,OAChE,mBAAoB,OACpB,eAAgB,OAAQ,uBAAwB,OAAQ,gBAE5DH,MAAO,IAAM80D,EAAe,UAAYA,EAAe,6DACvDl5E,KAAM,sBACP,CACCukB,MAAO,uBACPH,MAAO,cACR,CACCG,MAAO,mBACPH,MAAO,gwDACR,CACCG,MAAO,uBACPH,MAAO,+lBACR,CACCG,MAAO,mBACPH,MAAO,y2DACR,CACCG,MAAO,aACPH,MAAO80D,GACR,CACC90D,MAAO,GACPG,MAAO,QACPvkB,KAAM,aAGd,MAAS,CACL04E,EAAyBE,aAAa,aACtCS,EAAS,SACT,CACI90D,MAAO,gBACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,OACPH,MAAO,UACPpkB,KAAM,SACP,CACCukB,MAAO,QACPH,MAAO,GACPpkB,KAAM,aAGd,MAAS,CACL,CACIukB,MAAO,0BACPH,MAAO,6CACR,CACCG,MAAO,gBACPH,MAAO,cACPpkB,KAAM,YACP,CACCukB,MAAO,UACPH,MAAO,iDACR,CACCG,MAAO,2BACPH,MAAO,iDACR,CACCG,MAAO,8BACPH,MAAO,MACR,CACCG,MAAO,2BACPH,MAAO,QACPpkB,KAAM,yBACP,CACCukB,MAAO,QACPH,MAAO,IACPpkB,KAAM,YACP,CACC8jB,aAAc,kBAGtB,sBAAyB,CACrB,CACIS,MAAO,oCACPH,MAAO,6CACR,CACCG,MAAO,2BACPH,MAAO,IACPpkB,KAAM,SACP,CACCukB,MAAO,2BACPH,MAAO,KACR,CACCG,MAAO,QACPH,MAAO,IACPpkB,KAAM,YACP,CACC8jB,aAAc,kCAGtB,kBAAqB,CACjB,CACIS,MAAO,SACPH,MAAO,SACP11C,KAAM,CACF,CACI61C,MAAO,SACPH,MAAO,MACPpkB,KAAM,OACP,CACC/kB,QAAS,aAGlB,CACCspC,MAAO,SACPH,MAAO,SACP11C,KAAM,CACF,CACI61C,MAAO,SACPH,MAAO,MACPpkB,KAAM,OACP,CACC/kB,QAAS,cAGlB,CACCspC,MAAO,oBACPH,MAAO,+BACR,CACCG,MAAO,mBACPH,MAAO,gDACR,CACCG,MAAO,mBACPH,MAAO,gDACR,CACCG,MAAO,uBACPH,MAAO,IACPpkB,KAAM,sBACP,CACCukB,MAAO,OACPH,MAAO,QACR,CACCG,MAAO,uBACPH,MAAO,KACR,CACCG,MAAO,QACPH,MAAO,GACPpkB,KAAM,aAGd,mBAAsB,CAClBq5E,EAAS,sBACT,CACI90D,MAAO,qBACPH,MAAO80D,GACR,CACC30D,MAAO,uBACPH,MAAO,KACR,CACCG,MAAO,OACPH,MAAO,QACR,CACCG,MAAO,uBACPH,MAAO,KACR,CACCG,MAAO,QACPH,MAAO,GACPpkB,KAAM,aAGd,SAAY,CACR,CACIukB,MAAO,2BACPH,MAAOg1D,GACR,CACC70D,MAAO,SACPH,MAAO,QACP0B,gBAAgB,GACjB,CACCvB,MAAO,SACPH,MAAO,MACPpkB,KAAM,YACP,CACC8jB,aAAc,WAGtB,QAAW,CACP,CACIS,MAAO,2BACPH,MAAOg1D,GACR,CACC70D,MAAO,SACPH,MAAO,QACP0B,gBAAgB,GACjB,CACCvB,MAAO,SACPH,MAAO,MACPpkB,KAAM,YACP,CACC8jB,aAAc,YAIrB1qC,GAAYA,EAAQkgG,QACrB3sG,KAAKu5C,OAAOqzD,SAASvzD,QAAQ,CACzB5B,MAAO,OAAQM,QAAS,SAAU30C,EAAK+9B,EAAOqX,GAE1C,GADAx4C,KAAKqzB,KAAc,KAAPjwB,EAAapD,KAAK0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E,KAAM,eACP,CACCukB,MAAO,SACPH,MAAOm2D,EAAY,SACnBv6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,OACtBx6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,SACtBx6E,KAAM,aACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,OACtBx6E,KAAM,aACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,SACtBx6E,KAAM,YACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,OACzBz6E,KAAM,eACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,SACzBz6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,OACzBz6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,SACzBz6E,KAAM,aACP,CACCukB,MAAO,mBACPH,MAAO,4EACR,CACCG,MAAO,cACPH,MAAO,2EACR,CACCG,MAAO,eACPH,MAAO,eACR,CACCG,MAAO,eACPH,MAAO,eACR,CACCG,MAAO,CAAC,UAAW,OAAQ,wBAC3BH,MAAO,2DACR,CACCG,MAAO,OACPH,MAAO,QACR,CACCnpC,QAAS,cAEjB,UAAa,CAAC,CACNspC,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,SAAY,CAAC,CACLS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,SAAY,CAAC,CACLS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,QACPpkB,KAAM,YACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,QAAW,CAAC,CACJS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,QACPpkB,KAAM,WACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,aAAgB,CAAC,CACTS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,YAAe,CAAC,CACRS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,YAAe,CAAC,CACRS,MAAO,SACPH,MAAO,QACPpkB,KAAM,eACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,SACPH,MAAO,QACPpkB,KAAM,cACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,UAAa,CAAC,CACNS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,UAAa,CAAC,CACNS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,QACPpkB,KAAM,aACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,SAAY,CAAC,CACLS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,YAAe,CAAC,CACRS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO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","sources":["webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/ace.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/ext-beautify.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/ext-searchbox.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-css.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-golang.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-javascript.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-json.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-jsx.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-python.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-xml.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/theme-github.js","webpack://@tyk-technologies/tyk-ui/./node_modules/react-dom/client.js","webpack://@tyk-technologies/tyk-ui/./node_modules/react-fast-compare/index.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react-dom\"","webpack://@tyk-technologies/tyk-ui/webpack/bootstrap","webpack://@tyk-technologies/tyk-ui/webpack/runtime/amd define","webpack://@tyk-technologies/tyk-ui/webpack/runtime/compat get default export","webpack://@tyk-technologies/tyk-ui/webpack/runtime/define property getters","webpack://@tyk-technologies/tyk-ui/webpack/runtime/hasOwnProperty shorthand","webpack://@tyk-technologies/tyk-ui/webpack/runtime/make namespace object","webpack://@tyk-technologies/tyk-ui/webpack/runtime/node module decorator","webpack://@tyk-technologies/tyk-ui/webpack/runtime/publicPath","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react\"","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"prop-types\"","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Icon/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemTrigger.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItem.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemHeader.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react-transition-group\"","webpack://@tyk-technologies/tyk-ui/./src/hooks/useComponentSize/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/useEventListener/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Collapsible/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemContent.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Button/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/ButtonGroup/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardHeader.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardBody.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardFooter.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardTitle.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardTitleGroup.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardSubTitle.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardSummary.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardTitleIcon.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/index.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"echarts\"","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"immutable\"","webpack://@tyk-technologies/tyk-ui/./src/utils/debounce/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/usePrevious/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Loader/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Message/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Chart/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/useTimeout/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/js/ToastMessage.js","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/js/ToastContainer.js","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/CopyToClipboard/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/js/ModalFooter.js","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/js/ModalBody.js","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Confirm/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/FixedWrapper/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/InfiniteScroller/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/FloatingContainer/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/InfoNote/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/List/js/ListItem.js","webpack://@tyk-technologies/tyk-ui/./src/components/List/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/NavBar/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Navigation/js/NavigationItem.js","webpack://@tyk-technologies/tyk-ui/./src/components/Navigation/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/panel-context.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/js/PanelBody.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/js/PanelFooter.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/js/PanelHeader.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Pill/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/RevealPanel/js/RevealPanelService.js","webpack://@tyk-technologies/tyk-ui/./src/components/RevealPanel/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/tabs-context.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/js/TabContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/js/TabContent.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/js/Tab.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tooltip/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/TextEllipsis/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Pagination/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/tableContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/header-cell.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/header.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Checkbox/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/cell.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/row.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/body.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/index.js","webpack://@tyk-technologies/tyk-ui/./src/layout/Column/index.js","webpack://@tyk-technologies/tyk-ui/./src/layout/Row/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/dropdown-context.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/js/DropdownItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/DropdownTrigger.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/DropdownListWrapper.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/useDrodpownContext.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/DropdowItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/useDropdown.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react-ace\"","webpack://@tyk-technologies/tyk-ui/./src/form/components/CodeEditor/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/js/Value.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/js/List.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/index.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"flatpickr\"","webpack://@tyk-technologies/tyk-ui/./src/form/components/DatePicker/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/isDate/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/toDate/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/defaultOptions/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/defaultLocale/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/format/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/isValid/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/subMilliseconds/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/addMilliseconds/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList/js/EditableListForm.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/Header.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/ListHeader.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/FieldsList.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/with-validation.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/validate-values.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/FileInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Input/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Input2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/js/MultiselectContext.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/js/MultiselectItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/js/MultiselectPanel.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Radio/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Select/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/SelectableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Textarea/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/js/ToggleContext.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/js/ToggleItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/js/ToggleItemWrapper.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/index.js","webpack://@tyk-technologies/tyk-ui/./src/utils/config/config.js","webpack://@tyk-technologies/tyk-ui/./src/utils/formik/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCheckbox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCodeEditor/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCombobox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCombobox2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikDatePicker/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikEditableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikEditableList2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikFileInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikInput2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikMultiselect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikRadio/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikSelect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikSelectableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikTextarea/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikToggle/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldCodeEditor/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldCombobox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldDropdown/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldPagination/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldCombobox2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldDatePicker/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldEditableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldFileInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldMultiselect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldSelect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldSelectableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldToggle/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/useInterval/index.js"],"sourcesContent":["/* ***** BEGIN LICENSE BLOCK *****\n * Distributed under the BSD license:\n *\n * Copyright (c) 2010, Ajax.org B.V.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n * * Neither the name of Ajax.org B.V. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * ***** END LICENSE BLOCK ***** */\n\n/**\n * Define a module along with a payload\n * @param module a name for the payload\n * @param payload a function to call with (require, exports, module) params\n */\n\n(function() {\n\nvar ACE_NAMESPACE = \"ace\";\n\nvar global = (function() { return this; })();\nif (!global && typeof window != \"undefined\") global = window; // strict mode\n\n\nif (!ACE_NAMESPACE && typeof requirejs !== \"undefined\")\n return;\n\n\nvar define = function(module, deps, payload) {\n if (typeof module !== \"string\") {\n if (define.original)\n define.original.apply(this, arguments);\n else {\n console.error(\"dropping module because define wasn\\'t a string.\");\n console.trace();\n }\n return;\n }\n if (arguments.length == 2)\n payload = deps;\n if (!define.modules[module]) {\n define.payloads[module] = payload;\n define.modules[module] = null;\n }\n};\n\ndefine.modules = {};\ndefine.payloads = {};\n\n/**\n * Get at functionality define()ed using the function above\n */\nvar _require = function(parentId, module, callback) {\n if (typeof module === \"string\") {\n var payload = lookup(parentId, module);\n if (payload != undefined) {\n callback && callback();\n return payload;\n }\n } else if (Object.prototype.toString.call(module) === \"[object Array]\") {\n var params = [];\n for (var i = 0, l = module.length; i < l; ++i) {\n var dep = lookup(parentId, module[i]);\n if (dep == undefined && require.original)\n return;\n params.push(dep);\n }\n return callback && callback.apply(null, params) || true;\n }\n};\n\nvar require = function(module, callback) {\n var packagedModule = _require(\"\", module, callback);\n if (packagedModule == undefined && require.original)\n return require.original.apply(this, arguments);\n return packagedModule;\n};\n\nvar normalizeModule = function(parentId, moduleName) {\n // normalize plugin requires\n if (moduleName.indexOf(\"!\") !== -1) {\n var chunks = moduleName.split(\"!\");\n return normalizeModule(parentId, chunks[0]) + \"!\" + normalizeModule(parentId, chunks[1]);\n }\n // normalize relative requires\n if (moduleName.charAt(0) == \".\") {\n var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n moduleName = base + \"/\" + moduleName;\n\n while(moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n var previous = moduleName;\n moduleName = moduleName.replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n }\n }\n return moduleName;\n};\n\n/**\n * Internal function to lookup moduleNames and resolve them by calling the\n * definition function if needed.\n */\nvar lookup = function(parentId, moduleName) {\n moduleName = normalizeModule(parentId, moduleName);\n\n var module = define.modules[moduleName];\n if (!module) {\n module = define.payloads[moduleName];\n if (typeof module === 'function') {\n var exports = {};\n var mod = {\n id: moduleName,\n uri: '',\n exports: exports,\n packaged: true\n };\n\n var req = function(module, callback) {\n return _require(moduleName, module, callback);\n };\n\n var returnValue = module(req, exports, mod);\n exports = returnValue || mod.exports;\n define.modules[moduleName] = exports;\n delete define.payloads[moduleName];\n }\n module = define.modules[moduleName] = exports || module;\n }\n return module;\n};\n\nfunction exportAce(ns) {\n var root = global;\n if (ns) {\n if (!global[ns])\n global[ns] = {};\n root = global[ns];\n }\n\n if (!root.define || !root.define.packaged) {\n define.original = root.define;\n root.define = define;\n root.define.packaged = true;\n }\n\n if (!root.require || !root.require.packaged) {\n require.original = root.require;\n root.require = require;\n root.require.packaged = true;\n }\n}\n\nexportAce(ACE_NAMESPACE);\n\n})();\n\nace.define(\"ace/lib/es6-shim\",[\"require\",\"exports\",\"module\"], function(require, exports, module){function defineProp(obj, name, val) {\n Object.defineProperty(obj, name, {\n value: val,\n enumerable: false,\n writable: true,\n configurable: true\n });\n}\nif (!String.prototype.startsWith) {\n defineProp(String.prototype, \"startsWith\", function (searchString, position) {\n position = position || 0;\n return this.lastIndexOf(searchString, position) === position;\n });\n}\nif (!String.prototype.endsWith) {\n defineProp(String.prototype, \"endsWith\", function (searchString, position) {\n var subjectString = this;\n if (position === undefined || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n });\n}\nif (!String.prototype.repeat) {\n defineProp(String.prototype, \"repeat\", function (count) {\n var result = \"\";\n var string = this;\n while (count > 0) {\n if (count & 1)\n result += string;\n if ((count >>= 1))\n string += string;\n }\n return result;\n });\n}\nif (!String.prototype.includes) {\n defineProp(String.prototype, \"includes\", function (str, position) {\n return this.indexOf(str, position) != -1;\n });\n}\nif (!Object.assign) {\n Object.assign = function (target) {\n if (target === undefined || target === null) {\n throw new TypeError(\"Cannot convert undefined or null to object\");\n }\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n Object.keys(source).forEach(function (key) {\n output[key] = source[key];\n });\n }\n }\n return output;\n };\n}\nif (!Object.values) {\n Object.values = function (o) {\n return Object.keys(o).map(function (k) {\n return o[k];\n });\n };\n}\nif (!Array.prototype.find) {\n defineProp(Array.prototype, \"find\", function (predicate) {\n var len = this.length;\n var thisArg = arguments[1];\n for (var k = 0; k < len; k++) {\n var kValue = this[k];\n if (predicate.call(thisArg, kValue, k, this)) {\n return kValue;\n }\n }\n });\n}\nif (!Array.prototype.findIndex) {\n defineProp(Array.prototype, \"findIndex\", function (predicate) {\n var len = this.length;\n var thisArg = arguments[1];\n for (var k = 0; k < len; k++) {\n var kValue = this[k];\n if (predicate.call(thisArg, kValue, k, this)) {\n return k;\n }\n }\n });\n}\nif (!Array.prototype.includes) {\n defineProp(Array.prototype, \"includes\", function (item, position) {\n return this.indexOf(item, position) != -1;\n });\n}\nif (!Array.prototype.fill) {\n defineProp(Array.prototype, \"fill\", function (value) {\n var O = this;\n var len = O.length >>> 0;\n var start = arguments[1];\n var relativeStart = start >> 0;\n var k = relativeStart < 0\n ? Math.max(len + relativeStart, 0)\n : Math.min(relativeStart, len);\n var end = arguments[2];\n var relativeEnd = end === undefined ? len : end >> 0;\n var final = relativeEnd < 0\n ? Math.max(len + relativeEnd, 0)\n : Math.min(relativeEnd, len);\n while (k < final) {\n O[k] = value;\n k++;\n }\n return O;\n });\n}\nif (!Array.of) {\n defineProp(Array, \"of\", function () {\n return Array.prototype.slice.call(arguments);\n });\n}\n\n});\n\nace.define(\"ace/lib/fixoldbrowsers\",[\"require\",\"exports\",\"module\",\"ace/lib/es6-shim\"], function(require, exports, module){// vim:set ts=4 sts=4 sw=4 st:\n\"use strict\";\nrequire(\"./es6-shim\");\n\n});\n\nace.define(\"ace/lib/deep_copy\",[\"require\",\"exports\",\"module\"], function(require, exports, module){exports.deepCopy = function deepCopy(obj) {\n if (typeof obj !== \"object\" || !obj)\n return obj;\n var copy;\n if (Array.isArray(obj)) {\n copy = [];\n for (var key = 0; key < obj.length; key++) {\n copy[key] = deepCopy(obj[key]);\n }\n return copy;\n }\n if (Object.prototype.toString.call(obj) !== \"[object Object]\")\n return obj;\n copy = {};\n for (var key in obj)\n copy[key] = deepCopy(obj[key]);\n return copy;\n};\n\n});\n\nace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\",\"ace/lib/deep_copy\"], function(require, exports, module){\"use strict\";\nexports.last = function (a) {\n return a[a.length - 1];\n};\nexports.stringReverse = function (string) {\n return string.split(\"\").reverse().join(\"\");\n};\nexports.stringRepeat = function (string, count) {\n var result = '';\n while (count > 0) {\n if (count & 1)\n result += string;\n if (count >>= 1)\n string += string;\n }\n return result;\n};\nvar trimBeginRegexp = /^\\s\\s*/;\nvar trimEndRegexp = /\\s\\s*$/;\nexports.stringTrimLeft = function (string) {\n return string.replace(trimBeginRegexp, '');\n};\nexports.stringTrimRight = function (string) {\n return string.replace(trimEndRegexp, '');\n};\nexports.copyObject = function (obj) {\n var copy = {};\n for (var key in obj) {\n copy[key] = obj[key];\n }\n return copy;\n};\nexports.copyArray = function (array) {\n var copy = [];\n for (var i = 0, l = array.length; i < l; i++) {\n if (array[i] && typeof array[i] == \"object\")\n copy[i] = this.copyObject(array[i]);\n else\n copy[i] = array[i];\n }\n return copy;\n};\nexports.deepCopy = require(\"./deep_copy\").deepCopy;\nexports.arrayToMap = function (arr) {\n var map = {};\n for (var i = 0; i < arr.length; i++) {\n map[arr[i]] = 1;\n }\n return map;\n};\nexports.createMap = function (props) {\n var map = Object.create(null);\n for (var i in props) {\n map[i] = props[i];\n }\n return map;\n};\nexports.arrayRemove = function (array, value) {\n for (var i = 0; i <= array.length; i++) {\n if (value === array[i]) {\n array.splice(i, 1);\n }\n }\n};\nexports.escapeRegExp = function (str) {\n return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g, '\\\\$1');\n};\nexports.escapeHTML = function (str) {\n return (\"\" + str).replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(/ 0xffff ? 2 : 1;\n};\n\n});\n\nace.define(\"ace/lib/useragent\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nexports.OS = {\n LINUX: \"LINUX\",\n MAC: \"MAC\",\n WINDOWS: \"WINDOWS\"\n};\nexports.getOS = function () {\n if (exports.isMac) {\n return exports.OS.MAC;\n }\n else if (exports.isLinux) {\n return exports.OS.LINUX;\n }\n else {\n return exports.OS.WINDOWS;\n }\n};\nvar _navigator = typeof navigator == \"object\" ? navigator : {};\nvar os = (/mac|win|linux/i.exec(_navigator.platform) || [\"other\"])[0].toLowerCase();\nvar ua = _navigator.userAgent || \"\";\nvar appName = _navigator.appName || \"\";\nexports.isWin = (os == \"win\");\nexports.isMac = (os == \"mac\");\nexports.isLinux = (os == \"linux\");\nexports.isIE =\n (appName == \"Microsoft Internet Explorer\" || appName.indexOf(\"MSAppHost\") >= 0)\n ? parseFloat((ua.match(/(?:MSIE |Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/) || [])[1])\n : parseFloat((ua.match(/(?:Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/) || [])[1]); // for ie\nexports.isOldIE = exports.isIE && exports.isIE < 9;\nexports.isGecko = exports.isMozilla = ua.match(/ Gecko\\/\\d+/);\nexports.isOpera = typeof opera == \"object\" && Object.prototype.toString.call(window.opera) == \"[object Opera]\";\nexports.isWebKit = parseFloat(ua.split(\"WebKit/\")[1]) || undefined;\nexports.isChrome = parseFloat(ua.split(\" Chrome/\")[1]) || undefined;\nexports.isSafari = parseFloat(ua.split(\" Safari/\")[1]) && !exports.isChrome || undefined;\nexports.isEdge = parseFloat(ua.split(\" Edge/\")[1]) || undefined;\nexports.isAIR = ua.indexOf(\"AdobeAIR\") >= 0;\nexports.isAndroid = ua.indexOf(\"Android\") >= 0;\nexports.isChromeOS = ua.indexOf(\" CrOS \") >= 0;\nexports.isIOS = /iPad|iPhone|iPod/.test(ua) && !window.MSStream;\nif (exports.isIOS)\n exports.isMac = true;\nexports.isMobile = exports.isIOS || exports.isAndroid;\n\n});\n\nace.define(\"ace/lib/dom\",[\"require\",\"exports\",\"module\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar useragent = require(\"./useragent\");\nvar XHTML_NS = \"http://www.w3.org/1999/xhtml\";\nexports.buildDom = function buildDom(arr, parent, refs) {\n if (typeof arr == \"string\" && arr) {\n var txt = document.createTextNode(arr);\n if (parent)\n parent.appendChild(txt);\n return txt;\n }\n if (!Array.isArray(arr)) {\n if (arr && arr.appendChild && parent)\n parent.appendChild(arr);\n return arr;\n }\n if (typeof arr[0] != \"string\" || !arr[0]) {\n var els = [];\n for (var i = 0; i < arr.length; i++) {\n var ch = buildDom(arr[i], parent, refs);\n ch && els.push(ch);\n }\n return els;\n }\n var el = document.createElement(arr[0]);\n var options = arr[1];\n var childIndex = 1;\n if (options && typeof options == \"object\" && !Array.isArray(options))\n childIndex = 2;\n for (var i = childIndex; i < arr.length; i++)\n buildDom(arr[i], el, refs);\n if (childIndex == 2) {\n Object.keys(options).forEach(function (n) {\n var val = options[n];\n if (n === \"class\") {\n el.className = Array.isArray(val) ? val.join(\" \") : val;\n }\n else if (typeof val == \"function\" || n == \"value\" || n[0] == \"$\") {\n el[n] = val;\n }\n else if (n === \"ref\") {\n if (refs)\n refs[val] = el;\n }\n else if (n === \"style\") {\n if (typeof val == \"string\")\n el.style.cssText = val;\n }\n else if (val != null) {\n el.setAttribute(n, val);\n }\n });\n }\n if (parent)\n parent.appendChild(el);\n return el;\n};\nexports.getDocumentHead = function (doc) {\n if (!doc)\n doc = document;\n return doc.head || doc.getElementsByTagName(\"head\")[0] || doc.documentElement;\n};\nexports.createElement = function (tag, ns) {\n return document.createElementNS ?\n document.createElementNS(ns || XHTML_NS, tag) :\n document.createElement(tag);\n};\nexports.removeChildren = function (element) {\n element.innerHTML = \"\";\n};\nexports.createTextNode = function (textContent, element) {\n var doc = element ? element.ownerDocument : document;\n return doc.createTextNode(textContent);\n};\nexports.createFragment = function (element) {\n var doc = element ? element.ownerDocument : document;\n return doc.createDocumentFragment();\n};\nexports.hasCssClass = function (el, name) {\n var classes = (el.className + \"\").split(/\\s+/g);\n return classes.indexOf(name) !== -1;\n};\nexports.addCssClass = function (el, name) {\n if (!exports.hasCssClass(el, name)) {\n el.className += \" \" + name;\n }\n};\nexports.removeCssClass = function (el, name) {\n var classes = el.className.split(/\\s+/g);\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n classes.splice(index, 1);\n }\n el.className = classes.join(\" \");\n};\nexports.toggleCssClass = function (el, name) {\n var classes = el.className.split(/\\s+/g), add = true;\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n add = false;\n classes.splice(index, 1);\n }\n if (add)\n classes.push(name);\n el.className = classes.join(\" \");\n return add;\n};\nexports.setCssClass = function (node, className, include) {\n if (include) {\n exports.addCssClass(node, className);\n }\n else {\n exports.removeCssClass(node, className);\n }\n};\nexports.hasCssString = function (id, doc) {\n var index = 0, sheets;\n doc = doc || document;\n if ((sheets = doc.querySelectorAll(\"style\"))) {\n while (index < sheets.length) {\n if (sheets[index++].id === id) {\n return true;\n }\n }\n }\n};\nexports.removeElementById = function (id, doc) {\n doc = doc || document;\n if (doc.getElementById(id)) {\n doc.getElementById(id).remove();\n }\n};\nvar strictCSP;\nvar cssCache = [];\nexports.useStrictCSP = function (value) {\n strictCSP = value;\n if (value == false)\n insertPendingStyles();\n else if (!cssCache)\n cssCache = [];\n};\nfunction insertPendingStyles() {\n var cache = cssCache;\n cssCache = null;\n cache && cache.forEach(function (item) {\n importCssString(item[0], item[1]);\n });\n}\nfunction importCssString(cssText, id, target) {\n if (typeof document == \"undefined\")\n return;\n if (cssCache) {\n if (target) {\n insertPendingStyles();\n }\n else if (target === false) {\n return cssCache.push([cssText, id]);\n }\n }\n if (strictCSP)\n return;\n var container = target;\n if (!target || !target.getRootNode) {\n container = document;\n }\n else {\n container = target.getRootNode();\n if (!container || container == target)\n container = document;\n }\n var doc = container.ownerDocument || container;\n if (id && exports.hasCssString(id, container))\n return null;\n if (id)\n cssText += \"\\n/*# sourceURL=ace/css/\" + id + \" */\";\n var style = exports.createElement(\"style\");\n style.appendChild(doc.createTextNode(cssText));\n if (id)\n style.id = id;\n if (container == doc)\n container = exports.getDocumentHead(doc);\n container.insertBefore(style, container.firstChild);\n}\nexports.importCssString = importCssString;\nexports.importCssStylsheet = function (uri, doc) {\n exports.buildDom([\"link\", { rel: \"stylesheet\", href: uri }], exports.getDocumentHead(doc));\n};\nexports.scrollbarWidth = function (doc) {\n var inner = exports.createElement(\"ace_inner\");\n inner.style.width = \"100%\";\n inner.style.minWidth = \"0px\";\n inner.style.height = \"200px\";\n inner.style.display = \"block\";\n var outer = exports.createElement(\"ace_outer\");\n var style = outer.style;\n style.position = \"absolute\";\n style.left = \"-10000px\";\n style.overflow = \"hidden\";\n style.width = \"200px\";\n style.minWidth = \"0px\";\n style.height = \"150px\";\n style.display = \"block\";\n outer.appendChild(inner);\n var body = (doc && doc.documentElement) || (document && document.documentElement);\n if (!body)\n return 0;\n body.appendChild(outer);\n var noScrollbar = inner.offsetWidth;\n style.overflow = \"scroll\";\n var withScrollbar = inner.offsetWidth;\n if (noScrollbar === withScrollbar) {\n withScrollbar = outer.clientWidth;\n }\n body.removeChild(outer);\n return noScrollbar - withScrollbar;\n};\nexports.computedStyle = function (element, style) {\n return window.getComputedStyle(element, \"\") || {};\n};\nexports.setStyle = function (styles, property, value) {\n if (styles[property] !== value) {\n styles[property] = value;\n }\n};\nexports.HAS_CSS_ANIMATION = false;\nexports.HAS_CSS_TRANSFORMS = false;\nexports.HI_DPI = useragent.isWin\n ? typeof window !== \"undefined\" && window.devicePixelRatio >= 1.5\n : true;\nif (useragent.isChromeOS)\n exports.HI_DPI = false;\nif (typeof document !== \"undefined\") {\n var div = document.createElement(\"div\");\n if (exports.HI_DPI && div.style.transform !== undefined)\n exports.HAS_CSS_TRANSFORMS = true;\n if (!useragent.isEdge && typeof div.style.animationName !== \"undefined\")\n exports.HAS_CSS_ANIMATION = true;\n div = null;\n}\nif (exports.HAS_CSS_TRANSFORMS) {\n exports.translate = function (element, tx, ty) {\n element.style.transform = \"translate(\" + Math.round(tx) + \"px, \" + Math.round(ty) + \"px)\";\n };\n}\nelse {\n exports.translate = function (element, tx, ty) {\n element.style.top = Math.round(ty) + \"px\";\n element.style.left = Math.round(tx) + \"px\";\n };\n}\n\n});\n\nace.define(\"ace/lib/net\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){/*\n * based on code from:\n *\n * @license RequireJS text 0.25.0 Copyright (c) 2010-2011, The Dojo Foundation All Rights Reserved.\n * Available via the MIT or new BSD license.\n * see: http://github.com/jrburke/requirejs for details\n */\n\"use strict\";\nvar dom = require(\"./dom\");\nexports.get = function (url, callback) {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n callback(xhr.responseText);\n }\n };\n xhr.send(null);\n};\nexports.loadScript = function (path, callback) {\n var head = dom.getDocumentHead();\n var s = document.createElement('script');\n s.src = path;\n head.appendChild(s);\n s.onload = s.onreadystatechange = function (_, isAbort) {\n if (isAbort || !s.readyState || s.readyState == \"loaded\" || s.readyState == \"complete\") {\n s = s.onload = s.onreadystatechange = null;\n if (!isAbort)\n callback();\n }\n };\n};\nexports.qualifyURL = function (url) {\n var a = document.createElement('a');\n a.href = url;\n return a.href;\n};\n\n});\n\nace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nexports.inherits = function (ctor, superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n};\nexports.mixin = function (obj, mixin) {\n for (var key in mixin) {\n obj[key] = mixin[key];\n }\n return obj;\n};\nexports.implement = function (proto, mixin) {\n exports.mixin(proto, mixin);\n};\n\n});\n\nace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar EventEmitter = {};\nvar stopPropagation = function () { this.propagationStopped = true; };\nvar preventDefault = function () { this.defaultPrevented = true; };\nEventEmitter._emit =\n EventEmitter._dispatchEvent = function (eventName, e) {\n this._eventRegistry || (this._eventRegistry = {});\n this._defaultHandlers || (this._defaultHandlers = {});\n var listeners = this._eventRegistry[eventName] || [];\n var defaultHandler = this._defaultHandlers[eventName];\n if (!listeners.length && !defaultHandler)\n return;\n if (typeof e != \"object\" || !e)\n e = {};\n if (!e.type)\n e.type = eventName;\n if (!e.stopPropagation)\n e.stopPropagation = stopPropagation;\n if (!e.preventDefault)\n e.preventDefault = preventDefault;\n listeners = listeners.slice();\n for (var i = 0; i < listeners.length; i++) {\n listeners[i](e, this);\n if (e.propagationStopped)\n break;\n }\n if (defaultHandler && !e.defaultPrevented)\n return defaultHandler(e, this);\n };\nEventEmitter._signal = function (eventName, e) {\n var listeners = (this._eventRegistry || {})[eventName];\n if (!listeners)\n return;\n listeners = listeners.slice();\n for (var i = 0; i < listeners.length; i++)\n listeners[i](e, this);\n};\nEventEmitter.once = function (eventName, callback) {\n var _self = this;\n this.on(eventName, function newCallback() {\n _self.off(eventName, newCallback);\n callback.apply(null, arguments);\n });\n if (!callback) {\n return new Promise(function (resolve) {\n callback = resolve;\n });\n }\n};\nEventEmitter.setDefaultHandler = function (eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n handlers = this._defaultHandlers = { _disabled_: {} };\n if (handlers[eventName]) {\n var old = handlers[eventName];\n var disabled = handlers._disabled_[eventName];\n if (!disabled)\n handlers._disabled_[eventName] = disabled = [];\n disabled.push(old);\n var i = disabled.indexOf(callback);\n if (i != -1)\n disabled.splice(i, 1);\n }\n handlers[eventName] = callback;\n};\nEventEmitter.removeDefaultHandler = function (eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n return;\n var disabled = handlers._disabled_[eventName];\n if (handlers[eventName] == callback) {\n if (disabled)\n this.setDefaultHandler(eventName, disabled.pop());\n }\n else if (disabled) {\n var i = disabled.indexOf(callback);\n if (i != -1)\n disabled.splice(i, 1);\n }\n};\nEventEmitter.on =\n EventEmitter.addEventListener = function (eventName, callback, capturing) {\n this._eventRegistry = this._eventRegistry || {};\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n listeners = this._eventRegistry[eventName] = [];\n if (listeners.indexOf(callback) == -1)\n listeners[capturing ? \"unshift\" : \"push\"](callback);\n return callback;\n };\nEventEmitter.off =\n EventEmitter.removeListener =\n EventEmitter.removeEventListener = function (eventName, callback) {\n this._eventRegistry = this._eventRegistry || {};\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n return;\n var index = listeners.indexOf(callback);\n if (index !== -1)\n listeners.splice(index, 1);\n };\nEventEmitter.removeAllListeners = function (eventName) {\n if (!eventName)\n this._eventRegistry = this._defaultHandlers = undefined;\n if (this._eventRegistry)\n this._eventRegistry[eventName] = undefined;\n if (this._defaultHandlers)\n this._defaultHandlers[eventName] = undefined;\n};\nexports.EventEmitter = EventEmitter;\n\n});\n\nace.define(\"ace/lib/report_error\",[\"require\",\"exports\",\"module\"], function(require, exports, module){exports.reportError = function reportError(msg, data) {\n var e = new Error(msg);\n e.data = data;\n if (typeof console == \"object\" && console.error)\n console.error(e);\n setTimeout(function () { throw e; });\n};\n\n});\n\nace.define(\"ace/lib/app_config\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\",\"ace/lib/report_error\"], function(require, exports, module){\"no use strict\";\nvar oop = require(\"./oop\");\nvar EventEmitter = require(\"./event_emitter\").EventEmitter;\nvar reportError = require(\"./report_error\").reportError;\nvar optionsProvider = {\n setOptions: function (optList) {\n Object.keys(optList).forEach(function (key) {\n this.setOption(key, optList[key]);\n }, this);\n },\n getOptions: function (optionNames) {\n var result = {};\n if (!optionNames) {\n var options = this.$options;\n optionNames = Object.keys(options).filter(function (key) {\n return !options[key].hidden;\n });\n }\n else if (!Array.isArray(optionNames)) {\n result = optionNames;\n optionNames = Object.keys(result);\n }\n optionNames.forEach(function (key) {\n result[key] = this.getOption(key);\n }, this);\n return result;\n },\n setOption: function (name, value) {\n if (this[\"$\" + name] === value)\n return;\n var opt = this.$options[name];\n if (!opt) {\n return warn('misspelled option \"' + name + '\"');\n }\n if (opt.forwardTo)\n return this[opt.forwardTo] && this[opt.forwardTo].setOption(name, value);\n if (!opt.handlesSet)\n this[\"$\" + name] = value;\n if (opt && opt.set)\n opt.set.call(this, value);\n },\n getOption: function (name) {\n var opt = this.$options[name];\n if (!opt) {\n return warn('misspelled option \"' + name + '\"');\n }\n if (opt.forwardTo)\n return this[opt.forwardTo] && this[opt.forwardTo].getOption(name);\n return opt && opt.get ? opt.get.call(this) : this[\"$\" + name];\n }\n};\nfunction warn(message) {\n if (typeof console != \"undefined\" && console.warn)\n console.warn.apply(console, arguments);\n}\nvar messages;\nvar AppConfig = /** @class */ (function () {\n function AppConfig() {\n this.$defaultOptions = {};\n }\n AppConfig.prototype.defineOptions = function (obj, path, options) {\n if (!obj.$options)\n this.$defaultOptions[path] = obj.$options = {};\n Object.keys(options).forEach(function (key) {\n var opt = options[key];\n if (typeof opt == \"string\")\n opt = { forwardTo: opt };\n opt.name || (opt.name = key);\n obj.$options[opt.name] = opt;\n if (\"initialValue\" in opt)\n obj[\"$\" + opt.name] = opt.initialValue;\n });\n oop.implement(obj, optionsProvider);\n return this;\n };\n AppConfig.prototype.resetOptions = function (obj) {\n Object.keys(obj.$options).forEach(function (key) {\n var opt = obj.$options[key];\n if (\"value\" in opt)\n obj.setOption(key, opt.value);\n });\n };\n AppConfig.prototype.setDefaultValue = function (path, name, value) {\n if (!path) {\n for (path in this.$defaultOptions)\n if (this.$defaultOptions[path][name])\n break;\n if (!this.$defaultOptions[path][name])\n return false;\n }\n var opts = this.$defaultOptions[path] || (this.$defaultOptions[path] = {});\n if (opts[name]) {\n if (opts.forwardTo)\n this.setDefaultValue(opts.forwardTo, name, value);\n else\n opts[name].value = value;\n }\n };\n AppConfig.prototype.setDefaultValues = function (path, optionHash) {\n Object.keys(optionHash).forEach(function (key) {\n this.setDefaultValue(path, key, optionHash[key]);\n }, this);\n };\n AppConfig.prototype.setMessages = function (value) {\n messages = value;\n };\n AppConfig.prototype.nls = function (string, params) {\n if (messages && !messages[string]) {\n warn(\"No message found for '\" + string + \"' in the provided messages, falling back to default English message.\");\n }\n var translated = messages && messages[string] || string;\n if (params) {\n translated = translated.replace(/\\$(\\$|[\\d]+)/g, function (_, name) {\n if (name == \"$\")\n return \"$\";\n return params[name];\n });\n }\n return translated;\n };\n return AppConfig;\n}());\nAppConfig.prototype.warn = warn;\nAppConfig.prototype.reportError = reportError;\noop.implement(AppConfig.prototype, EventEmitter);\nexports.AppConfig = AppConfig;\n\n});\n\nace.define(\"ace/theme/textmate-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \".ace-tm .ace_gutter {\\n background: #f0f0f0;\\n color: #333;\\n}\\n\\n.ace-tm .ace_print-margin {\\n width: 1px;\\n background: #e8e8e8;\\n}\\n\\n.ace-tm .ace_fold {\\n background-color: #6B72E6;\\n}\\n\\n.ace-tm {\\n background-color: #FFFFFF;\\n color: black;\\n}\\n\\n.ace-tm .ace_cursor {\\n color: black;\\n}\\n \\n.ace-tm .ace_invisible {\\n color: rgb(191, 191, 191);\\n}\\n\\n.ace-tm .ace_storage,\\n.ace-tm .ace_keyword {\\n color: blue;\\n}\\n\\n.ace-tm .ace_constant {\\n color: rgb(197, 6, 11);\\n}\\n\\n.ace-tm .ace_constant.ace_buildin {\\n color: rgb(88, 72, 246);\\n}\\n\\n.ace-tm .ace_constant.ace_language {\\n color: rgb(88, 92, 246);\\n}\\n\\n.ace-tm .ace_constant.ace_library {\\n color: rgb(6, 150, 14);\\n}\\n\\n.ace-tm .ace_invalid {\\n background-color: rgba(255, 0, 0, 0.1);\\n color: red;\\n}\\n\\n.ace-tm .ace_support.ace_function {\\n color: rgb(60, 76, 114);\\n}\\n\\n.ace-tm .ace_support.ace_constant {\\n color: rgb(6, 150, 14);\\n}\\n\\n.ace-tm .ace_support.ace_type,\\n.ace-tm .ace_support.ace_class {\\n color: rgb(109, 121, 222);\\n}\\n\\n.ace-tm .ace_keyword.ace_operator {\\n color: rgb(104, 118, 135);\\n}\\n\\n.ace-tm .ace_string {\\n color: rgb(3, 106, 7);\\n}\\n\\n.ace-tm .ace_comment {\\n color: rgb(76, 136, 107);\\n}\\n\\n.ace-tm .ace_comment.ace_doc {\\n color: rgb(0, 102, 255);\\n}\\n\\n.ace-tm .ace_comment.ace_doc.ace_tag {\\n color: rgb(128, 159, 191);\\n}\\n\\n.ace-tm .ace_constant.ace_numeric {\\n color: rgb(0, 0, 205);\\n}\\n\\n.ace-tm .ace_variable {\\n color: rgb(49, 132, 149);\\n}\\n\\n.ace-tm .ace_xml-pe {\\n color: rgb(104, 104, 91);\\n}\\n\\n.ace-tm .ace_entity.ace_name.ace_function {\\n color: #0000A2;\\n}\\n\\n\\n.ace-tm .ace_heading {\\n color: rgb(12, 7, 255);\\n}\\n\\n.ace-tm .ace_list {\\n color:rgb(185, 6, 144);\\n}\\n\\n.ace-tm .ace_meta.ace_tag {\\n color:rgb(0, 22, 142);\\n}\\n\\n.ace-tm .ace_string.ace_regex {\\n color: rgb(255, 0, 0)\\n}\\n\\n.ace-tm .ace_marker-layer .ace_selection {\\n background: rgb(181, 213, 255);\\n}\\n.ace-tm.ace_multiselect .ace_selection.ace_start {\\n box-shadow: 0 0 3px 0px white;\\n}\\n.ace-tm .ace_marker-layer .ace_step {\\n background: rgb(252, 255, 0);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_stack {\\n background: rgb(164, 229, 101);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_bracket {\\n margin: -1px 0 0 -1px;\\n border: 1px solid rgb(192, 192, 192);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_active-line {\\n background: rgba(0, 0, 0, 0.07);\\n}\\n\\n.ace-tm .ace_gutter-active-line {\\n background-color : #dcdcdc;\\n}\\n\\n.ace-tm .ace_marker-layer .ace_selected-word {\\n background: rgb(250, 250, 255);\\n border: 1px solid rgb(200, 200, 250);\\n}\\n\\n.ace-tm .ace_indent-guide {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\n}\\n\\n.ace-tm .ace_indent-guide-active {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC\\\") right repeat-y;\\n}\\n\";\n\n});\n\nace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/theme/textmate-css\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nexports.isDark = false;\nexports.cssClass = \"ace-tm\";\nexports.cssText = require(\"./textmate-css\");\nexports.$id = \"ace/theme/textmate\";\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass, false);\n\n});\n\nace.define(\"ace/config\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/net\",\"ace/lib/dom\",\"ace/lib/app_config\",\"ace/theme/textmate\"], function(require, exports, module){\"no use strict\";\nvar lang = require(\"./lib/lang\");\nvar net = require(\"./lib/net\");\nvar dom = require(\"./lib/dom\");\nvar AppConfig = require(\"./lib/app_config\").AppConfig;\nmodule.exports = exports = new AppConfig();\nvar options = {\n packaged: false,\n workerPath: null,\n modePath: null,\n themePath: null,\n basePath: \"\",\n suffix: \".js\",\n $moduleUrls: {},\n loadWorkerFromBlob: true,\n sharedPopups: false,\n useStrictCSP: null\n};\nexports.get = function (key) {\n if (!options.hasOwnProperty(key))\n throw new Error(\"Unknown config key: \" + key);\n return options[key];\n};\nexports.set = function (key, value) {\n if (options.hasOwnProperty(key))\n options[key] = value;\n else if (this.setDefaultValue(\"\", key, value) == false)\n throw new Error(\"Unknown config key: \" + key);\n if (key == \"useStrictCSP\")\n dom.useStrictCSP(value);\n};\nexports.all = function () {\n return lang.copyObject(options);\n};\nexports.$modes = {};\nexports.moduleUrl = function (name, component) {\n if (options.$moduleUrls[name])\n return options.$moduleUrls[name];\n var parts = name.split(\"/\");\n component = component || parts[parts.length - 2] || \"\";\n var sep = component == \"snippets\" ? \"/\" : \"-\";\n var base = parts[parts.length - 1];\n if (component == \"worker\" && sep == \"-\") {\n var re = new RegExp(\"^\" + component + \"[\\\\-_]|[\\\\-_]\" + component + \"$\", \"g\");\n base = base.replace(re, \"\");\n }\n if ((!base || base == component) && parts.length > 1)\n base = parts[parts.length - 2];\n var path = options[component + \"Path\"];\n if (path == null) {\n path = options.basePath;\n }\n else if (sep == \"/\") {\n component = sep = \"\";\n }\n if (path && path.slice(-1) != \"/\")\n path += \"/\";\n return path + component + sep + base + this.get(\"suffix\");\n};\nexports.setModuleUrl = function (name, subst) {\n return options.$moduleUrls[name] = subst;\n};\nvar loader = function (moduleName, cb) {\n if (moduleName === \"ace/theme/textmate\" || moduleName === \"./theme/textmate\")\n return cb(null, require(\"./theme/textmate\"));\n if (customLoader)\n return customLoader(moduleName, cb);\n console.error(\"loader is not configured\");\n};\nvar customLoader;\nexports.setLoader = function (cb) {\n customLoader = cb;\n};\nexports.dynamicModules = Object.create(null);\nexports.$loading = {};\nexports.$loaded = {};\nexports.loadModule = function (moduleName, onLoad) {\n var loadedModule, moduleType;\n if (Array.isArray(moduleName)) {\n moduleType = moduleName[0];\n moduleName = moduleName[1];\n }\n var load = function (module) {\n if (module && !exports.$loading[moduleName])\n return onLoad && onLoad(module);\n if (!exports.$loading[moduleName])\n exports.$loading[moduleName] = [];\n exports.$loading[moduleName].push(onLoad);\n if (exports.$loading[moduleName].length > 1)\n return;\n var afterLoad = function () {\n loader(moduleName, function (err, module) {\n if (module)\n exports.$loaded[moduleName] = module;\n exports._emit(\"load.module\", { name: moduleName, module: module });\n var listeners = exports.$loading[moduleName];\n exports.$loading[moduleName] = null;\n listeners.forEach(function (onLoad) {\n onLoad && onLoad(module);\n });\n });\n };\n if (!exports.get(\"packaged\"))\n return afterLoad();\n net.loadScript(exports.moduleUrl(moduleName, moduleType), afterLoad);\n reportErrorIfPathIsNotConfigured();\n };\n if (exports.dynamicModules[moduleName]) {\n exports.dynamicModules[moduleName]().then(function (module) {\n if (module.default) {\n load(module.default);\n }\n else {\n load(module);\n }\n });\n }\n else {\n try {\n loadedModule = this.$require(moduleName);\n }\n catch (e) { }\n load(loadedModule || exports.$loaded[moduleName]);\n }\n};\nexports.$require = function (moduleName) {\n if (typeof module.require == \"function\") {\n var req = \"require\";\n return module[req](moduleName);\n }\n};\nexports.setModuleLoader = function (moduleName, onLoad) {\n exports.dynamicModules[moduleName] = onLoad;\n};\nvar reportErrorIfPathIsNotConfigured = function () {\n if (!options.basePath && !options.workerPath\n && !options.modePath && !options.themePath\n && !Object.keys(options.$moduleUrls).length) {\n console.error(\"Unable to infer path to ace from script src,\", \"use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes\", \"or with webpack use ace/webpack-resolver\");\n reportErrorIfPathIsNotConfigured = function () { };\n }\n};\nexports.version = \"1.32.0\";\n\n});\n\nace.define(\"ace/loader_build\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nrequire(\"./lib/fixoldbrowsers\");\nvar config = require(\"./config\");\nconfig.setLoader(function(moduleName, cb) {\n require([moduleName], function(module) {\n cb(null, module);\n });\n});\n\nvar global = (function() {\n return this || typeof window != \"undefined\" && window;\n})();\n\nmodule.exports = function(ace) {\n config.init = init;\n config.$require = require;\n ace.require = require;\n\n if (typeof define === \"function\")\n ace.define = define;\n};\ninit(true);function init(packaged) {\n\n if (!global || !global.document)\n return;\n \n config.set(\"packaged\", packaged || require.packaged || module.packaged || (global.define && define.packaged));\n\n var scriptOptions = {};\n var scriptUrl = \"\";\n var currentScript = (document.currentScript || document._currentScript ); // native or polyfill\n var currentDocument = currentScript && currentScript.ownerDocument || document;\n \n if (currentScript && currentScript.src) {\n scriptUrl = currentScript.src.split(/[?#]/)[0].split(\"/\").slice(0, -1).join(\"/\") || \"\";\n }\n \n var scripts = currentDocument.getElementsByTagName(\"script\");\n for (var i=0; i [\" + this.end.row + \"/\" + this.end.column + \"]\");\n };\n Range.prototype.contains = function (row, column) {\n return this.compare(row, column) == 0;\n };\n Range.prototype.compareRange = function (range) {\n var cmp, end = range.end, start = range.start;\n cmp = this.compare(end.row, end.column);\n if (cmp == 1) {\n cmp = this.compare(start.row, start.column);\n if (cmp == 1) {\n return 2;\n }\n else if (cmp == 0) {\n return 1;\n }\n else {\n return 0;\n }\n }\n else if (cmp == -1) {\n return -2;\n }\n else {\n cmp = this.compare(start.row, start.column);\n if (cmp == -1) {\n return -1;\n }\n else if (cmp == 1) {\n return 42;\n }\n else {\n return 0;\n }\n }\n };\n Range.prototype.comparePoint = function (p) {\n return this.compare(p.row, p.column);\n };\n Range.prototype.containsRange = function (range) {\n return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n };\n Range.prototype.intersects = function (range) {\n var cmp = this.compareRange(range);\n return (cmp == -1 || cmp == 0 || cmp == 1);\n };\n Range.prototype.isEnd = function (row, column) {\n return this.end.row == row && this.end.column == column;\n };\n Range.prototype.isStart = function (row, column) {\n return this.start.row == row && this.start.column == column;\n };\n Range.prototype.setStart = function (row, column) {\n if (typeof row == \"object\") {\n this.start.column = row.column;\n this.start.row = row.row;\n }\n else {\n this.start.row = row;\n this.start.column = column;\n }\n };\n Range.prototype.setEnd = function (row, column) {\n if (typeof row == \"object\") {\n this.end.column = row.column;\n this.end.row = row.row;\n }\n else {\n this.end.row = row;\n this.end.column = column;\n }\n };\n Range.prototype.inside = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column) || this.isStart(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.insideStart = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.insideEnd = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isStart(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.compare = function (row, column) {\n if (!this.isMultiLine()) {\n if (row === this.start.row) {\n return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n }\n }\n if (row < this.start.row)\n return -1;\n if (row > this.end.row)\n return 1;\n if (this.start.row === row)\n return column >= this.start.column ? 0 : -1;\n if (this.end.row === row)\n return column <= this.end.column ? 0 : 1;\n return 0;\n };\n Range.prototype.compareStart = function (row, column) {\n if (this.start.row == row && this.start.column == column) {\n return -1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.compareEnd = function (row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.compareInside = function (row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n }\n else if (this.start.row == row && this.start.column == column) {\n return -1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.clipRows = function (firstRow, lastRow) {\n if (this.end.row > lastRow)\n var end = { row: lastRow + 1, column: 0 };\n else if (this.end.row < firstRow)\n var end = { row: firstRow, column: 0 };\n if (this.start.row > lastRow)\n var start = { row: lastRow + 1, column: 0 };\n else if (this.start.row < firstRow)\n var start = { row: firstRow, column: 0 };\n return Range.fromPoints(start || this.start, end || this.end);\n };\n Range.prototype.extend = function (row, column) {\n var cmp = this.compare(row, column);\n if (cmp == 0)\n return this;\n else if (cmp == -1)\n var start = { row: row, column: column };\n else\n var end = { row: row, column: column };\n return Range.fromPoints(start || this.start, end || this.end);\n };\n Range.prototype.isEmpty = function () {\n return (this.start.row === this.end.row && this.start.column === this.end.column);\n };\n Range.prototype.isMultiLine = function () {\n return (this.start.row !== this.end.row);\n };\n Range.prototype.clone = function () {\n return Range.fromPoints(this.start, this.end);\n };\n Range.prototype.collapseRows = function () {\n if (this.end.column == 0)\n return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row - 1), 0);\n else\n return new Range(this.start.row, 0, this.end.row, 0);\n };\n Range.prototype.toScreenRange = function (session) {\n var screenPosStart = session.documentToScreenPosition(this.start);\n var screenPosEnd = session.documentToScreenPosition(this.end);\n return new Range(screenPosStart.row, screenPosStart.column, screenPosEnd.row, screenPosEnd.column);\n };\n Range.prototype.moveBy = function (row, column) {\n this.start.row += row;\n this.start.column += column;\n this.end.row += row;\n this.end.column += column;\n };\n return Range;\n}());\nRange.fromPoints = function (start, end) {\n return new Range(start.row, start.column, end.row, end.column);\n};\nRange.comparePoints = comparePoints;\nRange.comparePoints = function (p1, p2) {\n return p1.row - p2.row || p1.column - p2.column;\n};\nexports.Range = Range;\n\n});\n\nace.define(\"ace/lib/keys\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\"], function(require, exports, module){/*! @license\n==========================================================================\nSproutCore -- JavaScript Application Framework\ncopyright 2006-2009, Sprout Systems Inc., Apple Inc. and contributors.\n\nPermission is hereby granted, free of charge, to any person obtaining a\ncopy of this software and associated documentation files (the \"Software\"),\nto deal in the Software without restriction, including without limitation\nthe rights to use, copy, modify, merge, publish, distribute, sublicense,\nand/or sell copies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\nDEALINGS IN THE SOFTWARE.\n\nSproutCore and the SproutCore logo are trademarks of Sprout Systems, Inc.\n\nFor more information about SproutCore, visit http://www.sproutcore.com\n\n\n==========================================================================\n@license */\n\"use strict\";\nvar oop = require(\"./oop\");\nvar Keys = (function () {\n var ret = {\n MODIFIER_KEYS: {\n 16: 'Shift', 17: 'Ctrl', 18: 'Alt', 224: 'Meta',\n 91: 'MetaLeft', 92: 'MetaRight', 93: 'ContextMenu'\n },\n KEY_MODS: {\n \"ctrl\": 1, \"alt\": 2, \"option\": 2, \"shift\": 4,\n \"super\": 8, \"meta\": 8, \"command\": 8, \"cmd\": 8,\n \"control\": 1\n },\n FUNCTION_KEYS: {\n 8: \"Backspace\",\n 9: \"Tab\",\n 13: \"Return\",\n 19: \"Pause\",\n 27: \"Esc\",\n 32: \"Space\",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"Left\",\n 38: \"Up\",\n 39: \"Right\",\n 40: \"Down\",\n 44: \"Print\",\n 45: \"Insert\",\n 46: \"Delete\",\n 96: \"Numpad0\",\n 97: \"Numpad1\",\n 98: \"Numpad2\",\n 99: \"Numpad3\",\n 100: \"Numpad4\",\n 101: \"Numpad5\",\n 102: \"Numpad6\",\n 103: \"Numpad7\",\n 104: \"Numpad8\",\n 105: \"Numpad9\",\n '-13': \"NumpadEnter\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"Numlock\",\n 145: \"Scrolllock\"\n },\n PRINTABLE_KEYS: {\n 32: ' ', 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5',\n 54: '6', 55: '7', 56: '8', 57: '9', 59: ';', 61: '=', 65: 'a',\n 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h',\n 73: 'i', 74: 'j', 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o',\n 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't', 85: 'u', 86: 'v',\n 87: 'w', 88: 'x', 89: 'y', 90: 'z', 107: '+', 109: '-', 110: '.',\n 186: ';', 187: '=', 188: ',', 189: '-', 190: '.', 191: '/', 192: '`',\n 219: '[', 220: '\\\\', 221: ']', 222: \"'\", 111: '/', 106: '*'\n }\n };\n ret.PRINTABLE_KEYS[173] = '-';\n var name, i;\n for (i in ret.FUNCTION_KEYS) {\n name = ret.FUNCTION_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n for (i in ret.PRINTABLE_KEYS) {\n name = ret.PRINTABLE_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n oop.mixin(ret, ret.MODIFIER_KEYS);\n oop.mixin(ret, ret.PRINTABLE_KEYS);\n oop.mixin(ret, ret.FUNCTION_KEYS);\n ret.enter = ret[\"return\"];\n ret.escape = ret.esc;\n ret.del = ret[\"delete\"];\n (function () {\n var mods = [\"cmd\", \"ctrl\", \"alt\", \"shift\"];\n for (var i = Math.pow(2, mods.length); i--;) {\n ret.KEY_MODS[i] = mods.filter(function (x) {\n return i & ret.KEY_MODS[x];\n }).join(\"-\") + \"-\";\n }\n })();\n ret.KEY_MODS[0] = \"\";\n ret.KEY_MODS[-1] = \"input-\";\n return ret;\n})();\noop.mixin(exports, Keys);\nexports.default = exports;\nexports.keyCodeToString = function (keyCode) {\n var keyString = Keys[keyCode];\n if (typeof keyString != \"string\")\n keyString = String.fromCharCode(keyCode);\n return keyString.toLowerCase();\n};\n\n});\n\nace.define(\"ace/lib/event\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar keys = require(\"./keys\");\nvar useragent = require(\"./useragent\");\nvar pressedKeys = null;\nvar ts = 0;\nvar activeListenerOptions;\nfunction detectListenerOptionsSupport() {\n activeListenerOptions = false;\n try {\n document.createComment(\"\").addEventListener(\"test\", function () { }, {\n get passive() {\n activeListenerOptions = { passive: false };\n }\n });\n }\n catch (e) { }\n}\nfunction getListenerOptions() {\n if (activeListenerOptions == undefined)\n detectListenerOptionsSupport();\n return activeListenerOptions;\n}\nfunction EventListener(elem, type, callback) {\n this.elem = elem;\n this.type = type;\n this.callback = callback;\n}\nEventListener.prototype.destroy = function () {\n removeListener(this.elem, this.type, this.callback);\n this.elem = this.type = this.callback = undefined;\n};\nvar addListener = exports.addListener = function (elem, type, callback, destroyer) {\n elem.addEventListener(type, callback, getListenerOptions());\n if (destroyer)\n destroyer.$toDestroy.push(new EventListener(elem, type, callback));\n};\nvar removeListener = exports.removeListener = function (elem, type, callback) {\n elem.removeEventListener(type, callback, getListenerOptions());\n};\nexports.stopEvent = function (e) {\n exports.stopPropagation(e);\n exports.preventDefault(e);\n return false;\n};\nexports.stopPropagation = function (e) {\n if (e.stopPropagation)\n e.stopPropagation();\n};\nexports.preventDefault = function (e) {\n if (e.preventDefault)\n e.preventDefault();\n};\nexports.getButton = function (e) {\n if (e.type == \"dblclick\")\n return 0;\n if (e.type == \"contextmenu\" || (useragent.isMac && (e.ctrlKey && !e.altKey && !e.shiftKey)))\n return 2;\n return e.button;\n};\nexports.capture = function (el, eventHandler, releaseCaptureHandler) {\n var ownerDocument = el && el.ownerDocument || document;\n function onMouseUp(e) {\n eventHandler && eventHandler(e);\n releaseCaptureHandler && releaseCaptureHandler(e);\n removeListener(ownerDocument, \"mousemove\", eventHandler);\n removeListener(ownerDocument, \"mouseup\", onMouseUp);\n removeListener(ownerDocument, \"dragstart\", onMouseUp);\n }\n addListener(ownerDocument, \"mousemove\", eventHandler);\n addListener(ownerDocument, \"mouseup\", onMouseUp);\n addListener(ownerDocument, \"dragstart\", onMouseUp);\n return onMouseUp;\n};\nexports.addMouseWheelListener = function (el, callback, destroyer) {\n addListener(el, \"wheel\", function (e) {\n var factor = 0.15;\n var deltaX = e.deltaX || 0;\n var deltaY = e.deltaY || 0;\n switch (e.deltaMode) {\n case e.DOM_DELTA_PIXEL:\n e.wheelX = deltaX * factor;\n e.wheelY = deltaY * factor;\n break;\n case e.DOM_DELTA_LINE:\n var linePixels = 15;\n e.wheelX = deltaX * linePixels;\n e.wheelY = deltaY * linePixels;\n break;\n case e.DOM_DELTA_PAGE:\n var pagePixels = 150;\n e.wheelX = deltaX * pagePixels;\n e.wheelY = deltaY * pagePixels;\n break;\n }\n callback(e);\n }, destroyer);\n};\nexports.addMultiMouseDownListener = function (elements, timeouts, eventHandler, callbackName, destroyer) {\n var clicks = 0;\n var startX, startY, timer;\n var eventNames = {\n 2: \"dblclick\",\n 3: \"tripleclick\",\n 4: \"quadclick\"\n };\n function onMousedown(e) {\n if (exports.getButton(e) !== 0) {\n clicks = 0;\n }\n else if (e.detail > 1) {\n clicks++;\n if (clicks > 4)\n clicks = 1;\n }\n else {\n clicks = 1;\n }\n if (useragent.isIE) {\n var isNewClick = Math.abs(e.clientX - startX) > 5 || Math.abs(e.clientY - startY) > 5;\n if (!timer || isNewClick)\n clicks = 1;\n if (timer)\n clearTimeout(timer);\n timer = setTimeout(function () { timer = null; }, timeouts[clicks - 1] || 600);\n if (clicks == 1) {\n startX = e.clientX;\n startY = e.clientY;\n }\n }\n e._clicks = clicks;\n eventHandler[callbackName](\"mousedown\", e);\n if (clicks > 4)\n clicks = 0;\n else if (clicks > 1)\n return eventHandler[callbackName](eventNames[clicks], e);\n }\n if (!Array.isArray(elements))\n elements = [elements];\n elements.forEach(function (el) {\n addListener(el, \"mousedown\", onMousedown, destroyer);\n });\n};\nvar getModifierHash = function (e) {\n return 0 | (e.ctrlKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.metaKey ? 8 : 0);\n};\nexports.getModifierString = function (e) {\n return keys.KEY_MODS[getModifierHash(e)];\n};\nfunction normalizeCommandKeys(callback, e, keyCode) {\n var hashId = getModifierHash(e);\n if (!useragent.isMac && pressedKeys) {\n if (e.getModifierState && (e.getModifierState(\"OS\") || e.getModifierState(\"Win\")))\n hashId |= 8;\n if (pressedKeys.altGr) {\n if ((3 & hashId) != 3)\n pressedKeys.altGr = 0;\n else\n return;\n }\n if (keyCode === 18 || keyCode === 17) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (keyCode === 17 && location === 1) {\n if (pressedKeys[keyCode] == 1)\n ts = e.timeStamp;\n }\n else if (keyCode === 18 && hashId === 3 && location === 2) {\n var dt = e.timeStamp - ts;\n if (dt < 50)\n pressedKeys.altGr = true;\n }\n }\n }\n if (keyCode in keys.MODIFIER_KEYS) {\n keyCode = -1;\n }\n if (!hashId && keyCode === 13) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (location === 3) {\n callback(e, hashId, -keyCode);\n if (e.defaultPrevented)\n return;\n }\n }\n if (useragent.isChromeOS && hashId & 8) {\n callback(e, hashId, keyCode);\n if (e.defaultPrevented)\n return;\n else\n hashId &= ~8;\n }\n if (!hashId && !(keyCode in keys.FUNCTION_KEYS) && !(keyCode in keys.PRINTABLE_KEYS)) {\n return false;\n }\n return callback(e, hashId, keyCode);\n}\nexports.addCommandKeyListener = function (el, callback, destroyer) {\n if (useragent.isOldGecko || (useragent.isOpera && !(\"KeyboardEvent\" in window))) {\n var lastKeyDownKeyCode = null;\n addListener(el, \"keydown\", function (e) {\n lastKeyDownKeyCode = e.keyCode;\n }, destroyer);\n addListener(el, \"keypress\", function (e) {\n return normalizeCommandKeys(callback, e, lastKeyDownKeyCode);\n }, destroyer);\n }\n else {\n var lastDefaultPrevented = null;\n addListener(el, \"keydown\", function (e) {\n pressedKeys[e.keyCode] = (pressedKeys[e.keyCode] || 0) + 1;\n var result = normalizeCommandKeys(callback, e, e.keyCode);\n lastDefaultPrevented = e.defaultPrevented;\n return result;\n }, destroyer);\n addListener(el, \"keypress\", function (e) {\n if (lastDefaultPrevented && (e.ctrlKey || e.altKey || e.shiftKey || e.metaKey)) {\n exports.stopEvent(e);\n lastDefaultPrevented = null;\n }\n }, destroyer);\n addListener(el, \"keyup\", function (e) {\n pressedKeys[e.keyCode] = null;\n }, destroyer);\n if (!pressedKeys) {\n resetPressedKeys();\n addListener(window, \"focus\", resetPressedKeys);\n }\n }\n};\nfunction resetPressedKeys() {\n pressedKeys = Object.create(null);\n}\nif (typeof window == \"object\" && window.postMessage && !useragent.isOldIE) {\n var postMessageId = 1;\n exports.nextTick = function (callback, win) {\n win = win || window;\n var messageName = \"zero-timeout-message-\" + (postMessageId++);\n var listener = function (e) {\n if (e.data == messageName) {\n exports.stopPropagation(e);\n removeListener(win, \"message\", listener);\n callback();\n }\n };\n addListener(win, \"message\", listener);\n win.postMessage(messageName, \"*\");\n };\n}\nexports.$idleBlocked = false;\nexports.onIdle = function (cb, timeout) {\n return setTimeout(function handler() {\n if (!exports.$idleBlocked) {\n cb();\n }\n else {\n setTimeout(handler, 100);\n }\n }, timeout);\n};\nexports.$idleBlockId = null;\nexports.blockIdle = function (delay) {\n if (exports.$idleBlockId)\n clearTimeout(exports.$idleBlockId);\n exports.$idleBlocked = true;\n exports.$idleBlockId = setTimeout(function () {\n exports.$idleBlocked = false;\n }, delay || 100);\n};\nexports.nextFrame = typeof window == \"object\" && (window.requestAnimationFrame\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame\n || window.msRequestAnimationFrame\n || window.oRequestAnimationFrame);\nif (exports.nextFrame)\n exports.nextFrame = exports.nextFrame.bind(window);\nelse\n exports.nextFrame = function (callback) {\n setTimeout(callback, 17);\n };\n\n});\n\nace.define(\"ace/clipboard\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar $cancelT;\nmodule.exports = {\n lineMode: false,\n pasteCancelled: function () {\n if ($cancelT && $cancelT > Date.now() - 50)\n return true;\n return $cancelT = false;\n },\n cancel: function () {\n $cancelT = Date.now();\n }\n};\n\n});\n\nace.define(\"ace/keyboard/textinput\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/config\",\"ace/lib/useragent\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/clipboard\",\"ace/lib/keys\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar nls = require(\"../config\").nls;\nvar useragent = require(\"../lib/useragent\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar clipboard = require(\"../clipboard\");\nvar BROKEN_SETDATA = useragent.isChrome < 18;\nvar USE_IE_MIME_TYPE = useragent.isIE;\nvar HAS_FOCUS_ARGS = useragent.isChrome > 63;\nvar MAX_LINE_LENGTH = 400;\nvar KEYS = require(\"../lib/keys\");\nvar MODS = KEYS.KEY_MODS;\nvar isIOS = useragent.isIOS;\nvar valueResetRegex = isIOS ? /\\s/ : /\\n/;\nvar isMobile = useragent.isMobile;\nvar TextInput = function (parentNode, host) {\n var text = dom.createElement(\"textarea\");\n text.className = \"ace_text-input\";\n text.setAttribute(\"wrap\", \"off\");\n text.setAttribute(\"autocorrect\", \"off\");\n text.setAttribute(\"autocapitalize\", \"off\");\n text.setAttribute(\"spellcheck\", false);\n text.style.opacity = \"0\";\n parentNode.insertBefore(text, parentNode.firstChild);\n var copied = false;\n var pasted = false;\n var inComposition = false;\n var sendingText = false;\n var tempStyle = '';\n if (!isMobile)\n text.style.fontSize = \"1px\";\n var commandMode = false;\n var ignoreFocusEvents = false;\n var lastValue = \"\";\n var lastSelectionStart = 0;\n var lastSelectionEnd = 0;\n var lastRestoreEnd = 0;\n var rowStart = Number.MAX_SAFE_INTEGER;\n var rowEnd = Number.MIN_SAFE_INTEGER;\n var numberOfExtraLines = 0;\n try {\n var isFocused = document.activeElement === text;\n }\n catch (e) { }\n this.setNumberOfExtraLines = function (number) {\n rowStart = Number.MAX_SAFE_INTEGER;\n rowEnd = Number.MIN_SAFE_INTEGER;\n if (number < 0) {\n numberOfExtraLines = 0;\n return;\n }\n numberOfExtraLines = number;\n };\n this.setAriaOptions = function (options) {\n if (options.activeDescendant) {\n text.setAttribute(\"aria-haspopup\", \"true\");\n text.setAttribute(\"aria-autocomplete\", options.inline ? \"both\" : \"list\");\n text.setAttribute(\"aria-activedescendant\", options.activeDescendant);\n }\n else {\n text.setAttribute(\"aria-haspopup\", \"false\");\n text.setAttribute(\"aria-autocomplete\", \"both\");\n text.removeAttribute(\"aria-activedescendant\");\n }\n if (options.role) {\n text.setAttribute(\"role\", options.role);\n }\n if (options.setLabel) {\n text.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n if (host.session) {\n var row = host.session.selection.cursor.row;\n text.setAttribute(\"aria-label\", nls(\"Cursor at row $0\", [row + 1]));\n }\n }\n };\n this.setAriaOptions({ role: \"textbox\" });\n event.addListener(text, \"blur\", function (e) {\n if (ignoreFocusEvents)\n return;\n host.onBlur(e);\n isFocused = false;\n }, host);\n event.addListener(text, \"focus\", function (e) {\n if (ignoreFocusEvents)\n return;\n isFocused = true;\n if (useragent.isEdge) {\n try {\n if (!document.hasFocus())\n return;\n }\n catch (e) { }\n }\n host.onFocus(e);\n if (useragent.isEdge)\n setTimeout(resetSelection);\n else\n resetSelection();\n }, host);\n this.$focusScroll = false;\n this.focus = function () {\n this.setAriaOptions({\n setLabel: host.renderer.enableKeyboardAccessibility\n });\n if (tempStyle || HAS_FOCUS_ARGS || this.$focusScroll == \"browser\")\n return text.focus({ preventScroll: true });\n var top = text.style.top;\n text.style.position = \"fixed\";\n text.style.top = \"0px\";\n try {\n var isTransformed = text.getBoundingClientRect().top != 0;\n }\n catch (e) {\n return;\n }\n var ancestors = [];\n if (isTransformed) {\n var t = text.parentElement;\n while (t && t.nodeType == 1) {\n ancestors.push(t);\n t.setAttribute(\"ace_nocontext\", true);\n if (!t.parentElement && t.getRootNode)\n t = t.getRootNode().host;\n else\n t = t.parentElement;\n }\n }\n text.focus({ preventScroll: true });\n if (isTransformed) {\n ancestors.forEach(function (p) {\n p.removeAttribute(\"ace_nocontext\");\n });\n }\n setTimeout(function () {\n text.style.position = \"\";\n if (text.style.top == \"0px\")\n text.style.top = top;\n }, 0);\n };\n this.blur = function () {\n text.blur();\n };\n this.isFocused = function () {\n return isFocused;\n };\n host.on(\"beforeEndOperation\", function () {\n var curOp = host.curOp;\n var commandName = curOp && curOp.command && curOp.command.name;\n if (commandName == \"insertstring\")\n return;\n var isUserAction = commandName && (curOp.docChanged || curOp.selectionChanged);\n if (inComposition && isUserAction) {\n lastValue = text.value = \"\";\n onCompositionEnd();\n }\n resetSelection();\n });\n var positionToSelection = function (row, column) {\n var selection = column;\n for (var i = 1; i <= row - rowStart && i < 2 * numberOfExtraLines + 1; i++) {\n selection += host.session.getLine(row - i).length + 1;\n }\n return selection;\n };\n var resetSelection = isIOS\n ? function (value) {\n if (!isFocused || (copied && !value) || sendingText)\n return;\n if (!value)\n value = \"\";\n var newValue = \"\\n ab\" + value + \"cde fg\\n\";\n if (newValue != text.value)\n text.value = lastValue = newValue;\n var selectionStart = 4;\n var selectionEnd = 4 + (value.length || (host.selection.isEmpty() ? 0 : 1));\n if (lastSelectionStart != selectionStart || lastSelectionEnd != selectionEnd) {\n text.setSelectionRange(selectionStart, selectionEnd);\n }\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n }\n : function () {\n if (inComposition || sendingText)\n return;\n if (!isFocused && !afterContextMenu)\n return;\n inComposition = true;\n var selectionStart = 0;\n var selectionEnd = 0;\n var line = \"\";\n if (host.session) {\n var selection = host.selection;\n var range = selection.getRange();\n var row = selection.cursor.row;\n if (row === rowEnd + 1) {\n rowStart = rowEnd + 1;\n rowEnd = rowStart + 2 * numberOfExtraLines;\n }\n else if (row === rowStart - 1) {\n rowEnd = rowStart - 1;\n rowStart = rowEnd - 2 * numberOfExtraLines;\n }\n else if (row < rowStart - 1 || row > rowEnd + 1) {\n rowStart = row > numberOfExtraLines ? row - numberOfExtraLines : 0;\n rowEnd = row > numberOfExtraLines ? row + numberOfExtraLines : 2 * numberOfExtraLines;\n }\n var lines = [];\n for (var i = rowStart; i <= rowEnd; i++) {\n lines.push(host.session.getLine(i));\n }\n line = lines.join('\\n');\n selectionStart = positionToSelection(range.start.row, range.start.column);\n selectionEnd = positionToSelection(range.end.row, range.end.column);\n if (range.start.row < rowStart) {\n var prevLine = host.session.getLine(rowStart - 1);\n selectionStart = range.start.row < rowStart - 1 ? 0 : selectionStart;\n selectionEnd += prevLine.length + 1;\n line = prevLine + \"\\n\" + line;\n }\n else if (range.end.row > rowEnd) {\n var nextLine = host.session.getLine(rowEnd + 1);\n selectionEnd = range.end.row > rowEnd + 1 ? nextLine.length : range.end.column;\n selectionEnd += line.length + 1;\n line = line + \"\\n\" + nextLine;\n }\n else if (isMobile && row > 0) {\n line = \"\\n\" + line;\n selectionEnd += 1;\n selectionStart += 1;\n }\n if (line.length > MAX_LINE_LENGTH) {\n if (selectionStart < MAX_LINE_LENGTH && selectionEnd < MAX_LINE_LENGTH) {\n line = line.slice(0, MAX_LINE_LENGTH);\n }\n else {\n line = \"\\n\";\n if (selectionStart == selectionEnd) {\n selectionStart = selectionEnd = 0;\n }\n else {\n selectionStart = 0;\n selectionEnd = 1;\n }\n }\n }\n var newValue = line + \"\\n\\n\";\n if (newValue != lastValue) {\n text.value = lastValue = newValue;\n lastSelectionStart = lastSelectionEnd = newValue.length;\n }\n }\n if (afterContextMenu) {\n lastSelectionStart = text.selectionStart;\n lastSelectionEnd = text.selectionEnd;\n }\n if (lastSelectionEnd != selectionEnd\n || lastSelectionStart != selectionStart\n || text.selectionEnd != lastSelectionEnd // on ie edge selectionEnd changes silently after the initialization\n ) {\n try {\n text.setSelectionRange(selectionStart, selectionEnd);\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n }\n catch (e) { }\n }\n inComposition = false;\n };\n this.resetSelection = resetSelection;\n if (isFocused)\n host.onFocus();\n var isAllSelected = function (text) {\n return text.selectionStart === 0 && text.selectionEnd >= lastValue.length\n && text.value === lastValue && lastValue\n && text.selectionEnd !== lastSelectionEnd;\n };\n var onSelect = function (e) {\n if (inComposition)\n return;\n if (copied) {\n copied = false;\n }\n else if (isAllSelected(text)) {\n host.selectAll();\n resetSelection();\n }\n else if (isMobile && text.selectionStart != lastSelectionStart) {\n resetSelection();\n }\n };\n var inputHandler = null;\n this.setInputHandler = function (cb) { inputHandler = cb; };\n this.getInputHandler = function () { return inputHandler; };\n var afterContextMenu = false;\n var sendText = function (value, fromInput) {\n if (afterContextMenu)\n afterContextMenu = false;\n if (pasted) {\n resetSelection();\n if (value)\n host.onPaste(value);\n pasted = false;\n return \"\";\n }\n else {\n var selectionStart = text.selectionStart;\n var selectionEnd = text.selectionEnd;\n var extendLeft = lastSelectionStart;\n var extendRight = lastValue.length - lastSelectionEnd;\n var inserted = value;\n var restoreStart = value.length - selectionStart;\n var restoreEnd = value.length - selectionEnd;\n var i = 0;\n while (extendLeft > 0 && lastValue[i] == value[i]) {\n i++;\n extendLeft--;\n }\n inserted = inserted.slice(i);\n i = 1;\n while (extendRight > 0 && lastValue.length - i > lastSelectionStart - 1 && lastValue[lastValue.length - i] == value[value.length - i]) {\n i++;\n extendRight--;\n }\n restoreStart -= i - 1;\n restoreEnd -= i - 1;\n var endIndex = inserted.length - i + 1;\n if (endIndex < 0) {\n extendLeft = -endIndex;\n endIndex = 0;\n }\n inserted = inserted.slice(0, endIndex);\n if (!fromInput && !inserted && !restoreStart && !extendLeft && !extendRight && !restoreEnd)\n return \"\";\n sendingText = true;\n var shouldReset = false;\n if (useragent.isAndroid && inserted == \". \") {\n inserted = \" \";\n shouldReset = true;\n }\n if (inserted && !extendLeft && !extendRight && !restoreStart && !restoreEnd || commandMode) {\n host.onTextInput(inserted);\n }\n else {\n host.onTextInput(inserted, {\n extendLeft: extendLeft,\n extendRight: extendRight,\n restoreStart: restoreStart,\n restoreEnd: restoreEnd\n });\n }\n sendingText = false;\n lastValue = value;\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n lastRestoreEnd = restoreEnd;\n return shouldReset ? \"\\n\" : inserted;\n }\n };\n var onInput = function (e) {\n if (inComposition)\n return onCompositionUpdate();\n if (e && e.inputType) {\n if (e.inputType == \"historyUndo\")\n return host.execCommand(\"undo\");\n if (e.inputType == \"historyRedo\")\n return host.execCommand(\"redo\");\n }\n var data = text.value;\n var inserted = sendText(data, true);\n if (data.length > MAX_LINE_LENGTH + 100\n || valueResetRegex.test(inserted)\n || isMobile && lastSelectionStart < 1 && lastSelectionStart == lastSelectionEnd) {\n resetSelection();\n }\n };\n var handleClipboardData = function (e, data, forceIEMime) {\n var clipboardData = e.clipboardData || window.clipboardData;\n if (!clipboardData || BROKEN_SETDATA)\n return;\n var mime = USE_IE_MIME_TYPE || forceIEMime ? \"Text\" : \"text/plain\";\n try {\n if (data) {\n return clipboardData.setData(mime, data) !== false;\n }\n else {\n return clipboardData.getData(mime);\n }\n }\n catch (e) {\n if (!forceIEMime)\n return handleClipboardData(e, data, true);\n }\n };\n var doCopy = function (e, isCut) {\n var data = host.getCopyText();\n if (!data)\n return event.preventDefault(e);\n if (handleClipboardData(e, data)) {\n if (isIOS) {\n resetSelection(data);\n copied = data;\n setTimeout(function () {\n copied = false;\n }, 10);\n }\n isCut ? host.onCut() : host.onCopy();\n event.preventDefault(e);\n }\n else {\n copied = true;\n text.value = data;\n text.select();\n setTimeout(function () {\n copied = false;\n resetSelection();\n isCut ? host.onCut() : host.onCopy();\n });\n }\n };\n var onCut = function (e) {\n doCopy(e, true);\n };\n var onCopy = function (e) {\n doCopy(e, false);\n };\n var onPaste = function (e) {\n var data = handleClipboardData(e);\n if (clipboard.pasteCancelled())\n return;\n if (typeof data == \"string\") {\n if (data)\n host.onPaste(data, e);\n if (useragent.isIE)\n setTimeout(resetSelection);\n event.preventDefault(e);\n }\n else {\n text.value = \"\";\n pasted = true;\n }\n };\n event.addCommandKeyListener(text, host.onCommandKey.bind(host), host);\n event.addListener(text, \"select\", onSelect, host);\n event.addListener(text, \"input\", onInput, host);\n event.addListener(text, \"cut\", onCut, host);\n event.addListener(text, \"copy\", onCopy, host);\n event.addListener(text, \"paste\", onPaste, host);\n if (!('oncut' in text) || !('oncopy' in text) || !('onpaste' in text)) {\n event.addListener(parentNode, \"keydown\", function (e) {\n if ((useragent.isMac && !e.metaKey) || !e.ctrlKey)\n return;\n switch (e.keyCode) {\n case 67:\n onCopy(e);\n break;\n case 86:\n onPaste(e);\n break;\n case 88:\n onCut(e);\n break;\n }\n }, host);\n }\n var onCompositionStart = function (e) {\n if (inComposition || !host.onCompositionStart || host.$readOnly)\n return;\n inComposition = {};\n if (commandMode)\n return;\n if (e.data)\n inComposition.useTextareaForIME = false;\n setTimeout(onCompositionUpdate, 0);\n host._signal(\"compositionStart\");\n host.on(\"mousedown\", cancelComposition);\n var range = host.getSelectionRange();\n range.end.row = range.start.row;\n range.end.column = range.start.column;\n inComposition.markerRange = range;\n inComposition.selectionStart = lastSelectionStart;\n host.onCompositionStart(inComposition);\n if (inComposition.useTextareaForIME) {\n lastValue = text.value = \"\";\n lastSelectionStart = 0;\n lastSelectionEnd = 0;\n }\n else {\n if (text.msGetInputContext)\n inComposition.context = text.msGetInputContext();\n if (text.getInputContext)\n inComposition.context = text.getInputContext();\n }\n };\n var onCompositionUpdate = function () {\n if (!inComposition || !host.onCompositionUpdate || host.$readOnly)\n return;\n if (commandMode)\n return cancelComposition();\n if (inComposition.useTextareaForIME) {\n host.onCompositionUpdate(text.value);\n }\n else {\n var data = text.value;\n sendText(data);\n if (inComposition.markerRange) {\n if (inComposition.context) {\n inComposition.markerRange.start.column = inComposition.selectionStart\n = inComposition.context.compositionStartOffset;\n }\n inComposition.markerRange.end.column = inComposition.markerRange.start.column\n + lastSelectionEnd - inComposition.selectionStart + lastRestoreEnd;\n }\n }\n };\n var onCompositionEnd = function (e) {\n if (!host.onCompositionEnd || host.$readOnly)\n return;\n inComposition = false;\n host.onCompositionEnd();\n host.off(\"mousedown\", cancelComposition);\n if (e)\n onInput();\n };\n function cancelComposition() {\n ignoreFocusEvents = true;\n text.blur();\n text.focus();\n ignoreFocusEvents = false;\n }\n var syncComposition = lang.delayedCall(onCompositionUpdate, 50).schedule.bind(null, null);\n function onKeyup(e) {\n if (e.keyCode == 27 && text.value.length < text.selectionStart) {\n if (!inComposition)\n lastValue = text.value;\n lastSelectionStart = lastSelectionEnd = -1;\n resetSelection();\n }\n syncComposition();\n }\n event.addListener(text, \"compositionstart\", onCompositionStart, host);\n event.addListener(text, \"compositionupdate\", onCompositionUpdate, host);\n event.addListener(text, \"keyup\", onKeyup, host);\n event.addListener(text, \"keydown\", syncComposition, host);\n event.addListener(text, \"compositionend\", onCompositionEnd, host);\n this.getElement = function () {\n return text;\n };\n this.setCommandMode = function (value) {\n commandMode = value;\n text.readOnly = false;\n };\n this.setReadOnly = function (readOnly) {\n if (!commandMode)\n text.readOnly = readOnly;\n };\n this.setCopyWithEmptySelection = function (value) {\n };\n this.onContextMenu = function (e) {\n afterContextMenu = true;\n resetSelection();\n host._emit(\"nativecontextmenu\", { target: host, domEvent: e });\n this.moveToMouse(e, true);\n };\n this.moveToMouse = function (e, bringToFront) {\n if (!tempStyle)\n tempStyle = text.style.cssText;\n text.style.cssText = (bringToFront ? \"z-index:100000;\" : \"\")\n + (useragent.isIE ? \"opacity:0.1;\" : \"\")\n + \"text-indent: -\" + (lastSelectionStart + lastSelectionEnd) * host.renderer.characterWidth * 0.5 + \"px;\";\n var rect = host.container.getBoundingClientRect();\n var style = dom.computedStyle(host.container);\n var top = rect.top + (parseInt(style.borderTopWidth) || 0);\n var left = rect.left + (parseInt(rect.borderLeftWidth) || 0);\n var maxTop = rect.bottom - top - text.clientHeight - 2;\n var move = function (e) {\n dom.translate(text, e.clientX - left - 2, Math.min(e.clientY - top - 2, maxTop));\n };\n move(e);\n if (e.type != \"mousedown\")\n return;\n host.renderer.$isMousePressed = true;\n clearTimeout(closeTimeout);\n if (useragent.isWin)\n event.capture(host.container, move, onContextMenuClose);\n };\n this.onContextMenuClose = onContextMenuClose;\n var closeTimeout;\n function onContextMenuClose() {\n clearTimeout(closeTimeout);\n closeTimeout = setTimeout(function () {\n if (tempStyle) {\n text.style.cssText = tempStyle;\n tempStyle = '';\n }\n host.renderer.$isMousePressed = false;\n if (host.renderer.$keepTextAreaAtCursor)\n host.renderer.$moveTextAreaToCursor();\n }, 0);\n }\n var onContextMenu = function (e) {\n host.textInput.onContextMenu(e);\n onContextMenuClose();\n };\n event.addListener(text, \"mouseup\", onContextMenu, host);\n event.addListener(text, \"mousedown\", function (e) {\n e.preventDefault();\n onContextMenuClose();\n }, host);\n event.addListener(host.renderer.scroller, \"contextmenu\", onContextMenu, host);\n event.addListener(text, \"contextmenu\", onContextMenu, host);\n if (isIOS)\n addIosSelectionHandler(parentNode, host, text);\n function addIosSelectionHandler(parentNode, host, text) {\n var typingResetTimeout = null;\n var typing = false;\n text.addEventListener(\"keydown\", function (e) {\n if (typingResetTimeout)\n clearTimeout(typingResetTimeout);\n typing = true;\n }, true);\n text.addEventListener(\"keyup\", function (e) {\n typingResetTimeout = setTimeout(function () {\n typing = false;\n }, 100);\n }, true);\n var detectArrowKeys = function (e) {\n if (document.activeElement !== text)\n return;\n if (typing || inComposition || host.$mouseHandler.isMousePressed)\n return;\n if (copied) {\n return;\n }\n var selectionStart = text.selectionStart;\n var selectionEnd = text.selectionEnd;\n var key = null;\n var modifier = 0;\n if (selectionStart == 0) {\n key = KEYS.up;\n }\n else if (selectionStart == 1) {\n key = KEYS.home;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue[selectionEnd] == \"\\n\") {\n key = KEYS.end;\n }\n else if (selectionStart < lastSelectionStart && lastValue[selectionStart - 1] == \" \") {\n key = KEYS.left;\n modifier = MODS.option;\n }\n else if (selectionStart < lastSelectionStart\n || (selectionStart == lastSelectionStart\n && lastSelectionEnd != lastSelectionStart\n && selectionStart == selectionEnd)) {\n key = KEYS.left;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue.slice(0, selectionEnd).split(\"\\n\").length > 2) {\n key = KEYS.down;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue[selectionEnd - 1] == \" \") {\n key = KEYS.right;\n modifier = MODS.option;\n }\n else if (selectionEnd > lastSelectionEnd\n || (selectionEnd == lastSelectionEnd\n && lastSelectionEnd != lastSelectionStart\n && selectionStart == selectionEnd)) {\n key = KEYS.right;\n }\n if (selectionStart !== selectionEnd)\n modifier |= MODS.shift;\n if (key) {\n var result = host.onCommandKey({}, modifier, key);\n if (!result && host.commands) {\n key = KEYS.keyCodeToString(key);\n var command = host.commands.findKeyCommand(modifier, key);\n if (command)\n host.execCommand(command);\n }\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n resetSelection(\"\");\n }\n };\n document.addEventListener(\"selectionchange\", detectArrowKeys);\n host.on(\"destroy\", function () {\n document.removeEventListener(\"selectionchange\", detectArrowKeys);\n });\n }\n this.destroy = function () {\n if (text.parentElement)\n text.parentElement.removeChild(text);\n };\n};\nexports.TextInput = TextInput;\nexports.$setUserAgentForTests = function (_isMobile, _isIOS) {\n isMobile = _isMobile;\n isIOS = _isIOS;\n};\n\n});\n\nace.define(\"ace/mouse/default_handlers\",[\"require\",\"exports\",\"module\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar useragent = require(\"../lib/useragent\");\nvar DRAG_OFFSET = 0; // pixels\nvar SCROLL_COOLDOWN_T = 550; // milliseconds\nvar DefaultHandlers = /** @class */ (function () {\n function DefaultHandlers(mouseHandler) {\n mouseHandler.$clickSelection = null;\n var editor = mouseHandler.editor;\n editor.setDefaultHandler(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n editor.setDefaultHandler(\"dblclick\", this.onDoubleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"tripleclick\", this.onTripleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"quadclick\", this.onQuadClick.bind(mouseHandler));\n editor.setDefaultHandler(\"mousewheel\", this.onMouseWheel.bind(mouseHandler));\n var exports = [\"select\", \"startSelect\", \"selectEnd\", \"selectAllEnd\", \"selectByWordsEnd\",\n \"selectByLinesEnd\", \"dragWait\", \"dragWaitEnd\", \"focusWait\"];\n exports.forEach(function (x) {\n mouseHandler[x] = this[x];\n }, this);\n mouseHandler.selectByLines = this.extendSelectionBy.bind(mouseHandler, \"getLineRange\");\n mouseHandler.selectByWords = this.extendSelectionBy.bind(mouseHandler, \"getWordRange\");\n }\n DefaultHandlers.prototype.onMouseDown = function (ev) {\n var inSelection = ev.inSelection();\n var pos = ev.getDocumentPosition();\n this.mousedownEvent = ev;\n var editor = this.editor;\n var button = ev.getButton();\n if (button !== 0) {\n var selectionRange = editor.getSelectionRange();\n var selectionEmpty = selectionRange.isEmpty();\n if (selectionEmpty || button == 1)\n editor.selection.moveToPosition(pos);\n if (button == 2) {\n editor.textInput.onContextMenu(ev.domEvent);\n if (!useragent.isMozilla)\n ev.preventDefault();\n }\n return;\n }\n this.mousedownEvent.time = Date.now();\n if (inSelection && !editor.isFocused()) {\n editor.focus();\n if (this.$focusTimeout && !this.$clickSelection && !editor.inMultiSelectMode) {\n this.setState(\"focusWait\");\n this.captureMouse(ev);\n return;\n }\n }\n this.captureMouse(ev);\n this.startSelect(pos, ev.domEvent._clicks > 1);\n return ev.preventDefault();\n };\n DefaultHandlers.prototype.startSelect = function (pos, waitForClickSelection) {\n pos = pos || this.editor.renderer.screenToTextCoordinates(this.x, this.y);\n var editor = this.editor;\n if (!this.mousedownEvent)\n return;\n if (this.mousedownEvent.getShiftKey())\n editor.selection.selectToPosition(pos);\n else if (!waitForClickSelection)\n editor.selection.moveToPosition(pos);\n if (!waitForClickSelection)\n this.select();\n editor.setStyle(\"ace_selecting\");\n this.setState(\"select\");\n };\n DefaultHandlers.prototype.select = function () {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n if (this.$clickSelection) {\n var cmp = this.$clickSelection.comparePoint(cursor);\n if (cmp == -1) {\n anchor = this.$clickSelection.end;\n }\n else if (cmp == 1) {\n anchor = this.$clickSelection.start;\n }\n else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n };\n DefaultHandlers.prototype.extendSelectionBy = function (unitName) {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n var range = editor.selection[unitName](cursor.row, cursor.column);\n if (this.$clickSelection) {\n var cmpStart = this.$clickSelection.comparePoint(range.start);\n var cmpEnd = this.$clickSelection.comparePoint(range.end);\n if (cmpStart == -1 && cmpEnd <= 0) {\n anchor = this.$clickSelection.end;\n if (range.end.row != cursor.row || range.end.column != cursor.column)\n cursor = range.start;\n }\n else if (cmpEnd == 1 && cmpStart >= 0) {\n anchor = this.$clickSelection.start;\n if (range.start.row != cursor.row || range.start.column != cursor.column)\n cursor = range.end;\n }\n else if (cmpStart == -1 && cmpEnd == 1) {\n cursor = range.end;\n anchor = range.start;\n }\n else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n };\n DefaultHandlers.prototype.selectByLinesEnd = function () {\n this.$clickSelection = null;\n this.editor.unsetStyle(\"ace_selecting\");\n };\n DefaultHandlers.prototype.focusWait = function () {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n var time = Date.now();\n if (distance > DRAG_OFFSET || time - this.mousedownEvent.time > this.$focusTimeout)\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n };\n DefaultHandlers.prototype.onDoubleClick = function (ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n var session = editor.session;\n var range = session.getBracketRange(pos);\n if (range) {\n if (range.isEmpty()) {\n range.start.column--;\n range.end.column++;\n }\n this.setState(\"select\");\n }\n else {\n range = editor.selection.getWordRange(pos.row, pos.column);\n this.setState(\"selectByWords\");\n }\n this.$clickSelection = range;\n this.select();\n };\n DefaultHandlers.prototype.onTripleClick = function (ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n this.setState(\"selectByLines\");\n var range = editor.getSelectionRange();\n if (range.isMultiLine() && range.contains(pos.row, pos.column)) {\n this.$clickSelection = editor.selection.getLineRange(range.start.row);\n this.$clickSelection.end = editor.selection.getLineRange(range.end.row).end;\n }\n else {\n this.$clickSelection = editor.selection.getLineRange(pos.row);\n }\n this.select();\n };\n DefaultHandlers.prototype.onQuadClick = function (ev) {\n var editor = this.editor;\n editor.selectAll();\n this.$clickSelection = editor.getSelectionRange();\n this.setState(\"selectAll\");\n };\n DefaultHandlers.prototype.onMouseWheel = function (ev) {\n if (ev.getAccelKey())\n return;\n if (ev.getShiftKey() && ev.wheelY && !ev.wheelX) {\n ev.wheelX = ev.wheelY;\n ev.wheelY = 0;\n }\n var editor = this.editor;\n if (!this.$lastScroll)\n this.$lastScroll = { t: 0, vx: 0, vy: 0, allowed: 0 };\n var prevScroll = this.$lastScroll;\n var t = ev.domEvent.timeStamp;\n var dt = t - prevScroll.t;\n var vx = dt ? ev.wheelX / dt : prevScroll.vx;\n var vy = dt ? ev.wheelY / dt : prevScroll.vy;\n if (dt < SCROLL_COOLDOWN_T) {\n vx = (vx + prevScroll.vx) / 2;\n vy = (vy + prevScroll.vy) / 2;\n }\n var direction = Math.abs(vx / vy);\n var canScroll = false;\n if (direction >= 1 && editor.renderer.isScrollableBy(ev.wheelX * ev.speed, 0))\n canScroll = true;\n if (direction <= 1 && editor.renderer.isScrollableBy(0, ev.wheelY * ev.speed))\n canScroll = true;\n if (canScroll) {\n prevScroll.allowed = t;\n }\n else if (t - prevScroll.allowed < SCROLL_COOLDOWN_T) {\n var isSlower = Math.abs(vx) <= 1.5 * Math.abs(prevScroll.vx)\n && Math.abs(vy) <= 1.5 * Math.abs(prevScroll.vy);\n if (isSlower) {\n canScroll = true;\n prevScroll.allowed = t;\n }\n else {\n prevScroll.allowed = 0;\n }\n }\n prevScroll.t = t;\n prevScroll.vx = vx;\n prevScroll.vy = vy;\n if (canScroll) {\n editor.renderer.scrollBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n return ev.stop();\n }\n };\n return DefaultHandlers;\n}());\nDefaultHandlers.prototype.selectEnd = DefaultHandlers.prototype.selectByLinesEnd;\nDefaultHandlers.prototype.selectAllEnd = DefaultHandlers.prototype.selectByLinesEnd;\nDefaultHandlers.prototype.selectByWordsEnd = DefaultHandlers.prototype.selectByLinesEnd;\nexports.DefaultHandlers = DefaultHandlers;\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\nfunction calcRangeOrientation(range, cursor) {\n if (range.start.row == range.end.row)\n var cmp = 2 * cursor.column - range.start.column - range.end.column;\n else if (range.start.row == range.end.row - 1 && !range.start.column && !range.end.column)\n var cmp = cursor.column - 4;\n else\n var cmp = 2 * cursor.row - range.start.row - range.end.row;\n if (cmp < 0)\n return { cursor: range.start, anchor: range.end };\n else\n return { cursor: range.end, anchor: range.start };\n}\n\n});\n\nace.define(\"ace/tooltip\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar Range = require(\"./range\").Range;\nvar CLASSNAME = \"ace_tooltip\";\nvar Tooltip = /** @class */ (function () {\n function Tooltip(parentNode) {\n this.isOpen = false;\n this.$element = null;\n this.$parentNode = parentNode;\n }\n Tooltip.prototype.$init = function () {\n this.$element = dom.createElement(\"div\");\n this.$element.className = CLASSNAME;\n this.$element.style.display = \"none\";\n this.$parentNode.appendChild(this.$element);\n return this.$element;\n };\n Tooltip.prototype.getElement = function () {\n return this.$element || this.$init();\n };\n Tooltip.prototype.setText = function (text) {\n this.getElement().textContent = text;\n };\n Tooltip.prototype.setHtml = function (html) {\n this.getElement().innerHTML = html;\n };\n Tooltip.prototype.setPosition = function (x, y) {\n this.getElement().style.left = x + \"px\";\n this.getElement().style.top = y + \"px\";\n };\n Tooltip.prototype.setClassName = function (className) {\n dom.addCssClass(this.getElement(), className);\n };\n Tooltip.prototype.setTheme = function (theme) {\n this.$element.className = CLASSNAME + \" \" +\n (theme.isDark ? \"ace_dark \" : \"\") + (theme.cssClass || \"\");\n };\n Tooltip.prototype.show = function (text, x, y) {\n if (text != null)\n this.setText(text);\n if (x != null && y != null)\n this.setPosition(x, y);\n if (!this.isOpen) {\n this.getElement().style.display = \"block\";\n this.isOpen = true;\n }\n };\n Tooltip.prototype.hide = function () {\n if (this.isOpen) {\n this.getElement().style.display = \"none\";\n this.getElement().className = CLASSNAME;\n this.isOpen = false;\n }\n };\n Tooltip.prototype.getHeight = function () {\n return this.getElement().offsetHeight;\n };\n Tooltip.prototype.getWidth = function () {\n return this.getElement().offsetWidth;\n };\n Tooltip.prototype.destroy = function () {\n this.isOpen = false;\n if (this.$element && this.$element.parentNode) {\n this.$element.parentNode.removeChild(this.$element);\n }\n };\n return Tooltip;\n}());\nvar PopupManager = /** @class */ (function () {\n function PopupManager() {\n this.popups = [];\n }\n PopupManager.prototype.addPopup = function (popup) {\n this.popups.push(popup);\n this.updatePopups();\n };\n PopupManager.prototype.removePopup = function (popup) {\n var index = this.popups.indexOf(popup);\n if (index !== -1) {\n this.popups.splice(index, 1);\n this.updatePopups();\n }\n };\n PopupManager.prototype.updatePopups = function () {\n var e_1, _a, e_2, _b;\n this.popups.sort(function (a, b) { return b.priority - a.priority; });\n var visiblepopups = [];\n try {\n for (var _c = __values(this.popups), _d = _c.next(); !_d.done; _d = _c.next()) {\n var popup = _d.value;\n var shouldDisplay = true;\n try {\n for (var visiblepopups_1 = (e_2 = void 0, __values(visiblepopups)), visiblepopups_1_1 = visiblepopups_1.next(); !visiblepopups_1_1.done; visiblepopups_1_1 = visiblepopups_1.next()) {\n var visiblePopup = visiblepopups_1_1.value;\n if (this.doPopupsOverlap(visiblePopup, popup)) {\n shouldDisplay = false;\n break;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (visiblepopups_1_1 && !visiblepopups_1_1.done && (_b = visiblepopups_1.return)) _b.call(visiblepopups_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (shouldDisplay) {\n visiblepopups.push(popup);\n }\n else {\n popup.hide();\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n PopupManager.prototype.doPopupsOverlap = function (popupA, popupB) {\n var rectA = popupA.getElement().getBoundingClientRect();\n var rectB = popupB.getElement().getBoundingClientRect();\n return (rectA.left < rectB.right && rectA.right > rectB.left && rectA.top < rectB.bottom && rectA.bottom\n > rectB.top);\n };\n return PopupManager;\n}());\nvar popupManager = new PopupManager();\nexports.popupManager = popupManager;\nexports.Tooltip = Tooltip;\nvar HoverTooltip = /** @class */ (function (_super) {\n __extends(HoverTooltip, _super);\n function HoverTooltip(parentNode) {\n if (parentNode === void 0) { parentNode = document.body; }\n var _this = _super.call(this, parentNode) || this;\n _this.timeout = undefined;\n _this.lastT = 0;\n _this.idleTime = 350;\n _this.lastEvent = undefined;\n _this.onMouseOut = _this.onMouseOut.bind(_this);\n _this.onMouseMove = _this.onMouseMove.bind(_this);\n _this.waitForHover = _this.waitForHover.bind(_this);\n _this.hide = _this.hide.bind(_this);\n var el = _this.getElement();\n el.style.whiteSpace = \"pre-wrap\";\n el.style.pointerEvents = \"auto\";\n el.addEventListener(\"mouseout\", _this.onMouseOut);\n el.tabIndex = -1;\n el.addEventListener(\"blur\", function () {\n if (!el.contains(document.activeElement))\n this.hide();\n }.bind(_this));\n el.addEventListener(\"wheel\", event.stopPropagation);\n return _this;\n }\n HoverTooltip.prototype.addToEditor = function (editor) {\n editor.on(\"mousemove\", this.onMouseMove);\n editor.on(\"mousedown\", this.hide);\n editor.renderer.getMouseEventTarget().addEventListener(\"mouseout\", this.onMouseOut, true);\n };\n HoverTooltip.prototype.removeFromEditor = function (editor) {\n editor.off(\"mousemove\", this.onMouseMove);\n editor.off(\"mousedown\", this.hide);\n editor.renderer.getMouseEventTarget().removeEventListener(\"mouseout\", this.onMouseOut, true);\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n };\n HoverTooltip.prototype.onMouseMove = function (e, editor) {\n this.lastEvent = e;\n this.lastT = Date.now();\n var isMousePressed = editor.$mouseHandler.isMousePressed;\n if (this.isOpen) {\n var pos = this.lastEvent && this.lastEvent.getDocumentPosition();\n if (!this.range\n || !this.range.contains(pos.row, pos.column)\n || isMousePressed\n || this.isOutsideOfText(this.lastEvent)) {\n this.hide();\n }\n }\n if (this.timeout || isMousePressed)\n return;\n this.lastEvent = e;\n this.timeout = setTimeout(this.waitForHover, this.idleTime);\n };\n HoverTooltip.prototype.waitForHover = function () {\n if (this.timeout)\n clearTimeout(this.timeout);\n var dt = Date.now() - this.lastT;\n if (this.idleTime - dt > 10) {\n this.timeout = setTimeout(this.waitForHover, this.idleTime - dt);\n return;\n }\n this.timeout = null;\n if (this.lastEvent && !this.isOutsideOfText(this.lastEvent)) {\n this.$gatherData(this.lastEvent, this.lastEvent.editor);\n }\n };\n HoverTooltip.prototype.isOutsideOfText = function (e) {\n var editor = e.editor;\n var docPos = e.getDocumentPosition();\n var line = editor.session.getLine(docPos.row);\n if (docPos.column == line.length) {\n var screenPos = editor.renderer.pixelToScreenCoordinates(e.clientX, e.clientY);\n var clippedPos = editor.session.documentToScreenPosition(docPos.row, docPos.column);\n if (clippedPos.column != screenPos.column\n || clippedPos.row != screenPos.row) {\n return true;\n }\n }\n return false;\n };\n HoverTooltip.prototype.setDataProvider = function (value) {\n this.$gatherData = value;\n };\n HoverTooltip.prototype.showForRange = function (editor, range, domNode, startingEvent) {\n var MARGIN = 10;\n if (startingEvent && startingEvent != this.lastEvent)\n return;\n if (this.isOpen && document.activeElement == this.getElement())\n return;\n var renderer = editor.renderer;\n if (!this.isOpen) {\n popupManager.addPopup(this);\n this.$registerCloseEvents();\n this.setTheme(renderer.theme);\n }\n this.isOpen = true;\n this.addMarker(range, editor.session);\n this.range = Range.fromPoints(range.start, range.end);\n var position = renderer.textToScreenCoordinates(range.start.row, range.start.column);\n var rect = renderer.scroller.getBoundingClientRect();\n if (position.pageX < rect.left)\n position.pageX = rect.left;\n var element = this.getElement();\n element.innerHTML = \"\";\n element.appendChild(domNode);\n element.style.maxHeight = \"\";\n element.style.display = \"block\";\n var labelHeight = element.clientHeight;\n var labelWidth = element.clientWidth;\n var spaceBelow = window.innerHeight - position.pageY - renderer.lineHeight;\n var isAbove = true;\n if (position.pageY - labelHeight < 0 && position.pageY < spaceBelow) {\n isAbove = false;\n }\n element.style.maxHeight = (isAbove ? position.pageY : spaceBelow) - MARGIN + \"px\";\n element.style.top = isAbove ? \"\" : position.pageY + renderer.lineHeight + \"px\";\n element.style.bottom = isAbove ? window.innerHeight - position.pageY + \"px\" : \"\";\n element.style.left = Math.min(position.pageX, window.innerWidth - labelWidth - MARGIN) + \"px\";\n };\n HoverTooltip.prototype.addMarker = function (range, session) {\n if (this.marker) {\n this.$markerSession.removeMarker(this.marker);\n }\n this.$markerSession = session;\n this.marker = session && session.addMarker(range, \"ace_highlight-marker\", \"text\");\n };\n HoverTooltip.prototype.hide = function (e) {\n if (!e && document.activeElement == this.getElement())\n return;\n if (e && e.target && (e.type != \"keydown\" || e.ctrlKey || e.metaKey) && this.$element.contains(e.target))\n return;\n this.lastEvent = null;\n if (this.timeout)\n clearTimeout(this.timeout);\n this.timeout = null;\n this.addMarker(null);\n if (this.isOpen) {\n this.$removeCloseEvents();\n this.getElement().style.display = \"none\";\n this.isOpen = false;\n popupManager.removePopup(this);\n }\n };\n HoverTooltip.prototype.$registerCloseEvents = function () {\n window.addEventListener(\"keydown\", this.hide, true);\n window.addEventListener(\"wheel\", this.hide, true);\n window.addEventListener(\"mousedown\", this.hide, true);\n };\n HoverTooltip.prototype.$removeCloseEvents = function () {\n window.removeEventListener(\"keydown\", this.hide, true);\n window.removeEventListener(\"wheel\", this.hide, true);\n window.removeEventListener(\"mousedown\", this.hide, true);\n };\n HoverTooltip.prototype.onMouseOut = function (e) {\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n this.lastEvent = null;\n if (!this.isOpen)\n return;\n if (!e.relatedTarget || this.getElement().contains(e.relatedTarget))\n return;\n if (e && e.currentTarget.contains(e.relatedTarget))\n return;\n if (!e.relatedTarget.classList.contains(\"ace_content\"))\n this.hide();\n };\n return HoverTooltip;\n}(Tooltip));\nexports.HoverTooltip = HoverTooltip;\n\n});\n\nace.define(\"ace/mouse/default_gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/tooltip\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar dom = require(\"../lib/dom\");\nvar event = require(\"../lib/event\");\nvar Tooltip = require(\"../tooltip\").Tooltip;\nvar nls = require(\"../config\").nls;\nfunction GutterHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var gutter = editor.renderer.$gutterLayer;\n var tooltip = new GutterTooltip(editor);\n mouseHandler.editor.setDefaultHandler(\"guttermousedown\", function (e) {\n if (!editor.isFocused() || e.getButton() != 0)\n return;\n var gutterRegion = gutter.getRegion(e);\n if (gutterRegion == \"foldWidgets\")\n return;\n var row = e.getDocumentPosition().row;\n var selection = editor.session.selection;\n if (e.getShiftKey())\n selection.selectTo(row, 0);\n else {\n if (e.domEvent.detail == 2) {\n editor.selectAll();\n return e.preventDefault();\n }\n mouseHandler.$clickSelection = editor.selection.getLineRange(row);\n }\n mouseHandler.setState(\"selectByLines\");\n mouseHandler.captureMouse(e);\n return e.preventDefault();\n });\n var tooltipTimeout, mouseEvent;\n function showTooltip() {\n var row = mouseEvent.getDocumentPosition().row;\n var maxRow = editor.session.getLength();\n if (row == maxRow) {\n var screenRow = editor.renderer.pixelToScreenCoordinates(0, mouseEvent.y).row;\n var pos = mouseEvent.$pos;\n if (screenRow > editor.session.documentToScreenRow(pos.row, pos.column))\n return hideTooltip();\n }\n tooltip.showTooltip(row);\n if (!tooltip.isOpen)\n return;\n editor.on(\"mousewheel\", hideTooltip);\n if (mouseHandler.$tooltipFollowsMouse) {\n moveTooltip(mouseEvent);\n }\n else {\n var gutterRow = mouseEvent.getGutterRow();\n var gutterCell = gutter.$lines.get(gutterRow);\n if (gutterCell) {\n var gutterElement = gutterCell.element.querySelector(\".ace_gutter_annotation\");\n var rect = gutterElement.getBoundingClientRect();\n var style = tooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n }\n else {\n moveTooltip(mouseEvent);\n }\n }\n }\n function hideTooltip() {\n if (tooltipTimeout)\n tooltipTimeout = clearTimeout(tooltipTimeout);\n if (tooltip.isOpen) {\n tooltip.hideTooltip();\n editor.off(\"mousewheel\", hideTooltip);\n }\n }\n function moveTooltip(e) {\n tooltip.setPosition(e.x, e.y);\n }\n mouseHandler.editor.setDefaultHandler(\"guttermousemove\", function (e) {\n var target = e.domEvent.target || e.domEvent.srcElement;\n if (dom.hasCssClass(target, \"ace_fold-widget\"))\n return hideTooltip();\n if (tooltip.isOpen && mouseHandler.$tooltipFollowsMouse)\n moveTooltip(e);\n mouseEvent = e;\n if (tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function () {\n tooltipTimeout = null;\n if (mouseEvent && !mouseHandler.isMousePressed)\n showTooltip();\n else\n hideTooltip();\n }, 50);\n });\n event.addListener(editor.renderer.$gutter, \"mouseout\", function (e) {\n mouseEvent = null;\n if (!tooltip.isOpen || tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function () {\n tooltipTimeout = null;\n hideTooltip();\n }, 50);\n }, editor);\n editor.on(\"changeSession\", hideTooltip);\n editor.on(\"input\", hideTooltip);\n}\nexports.GutterHandler = GutterHandler;\nvar GutterTooltip = /** @class */ (function (_super) {\n __extends(GutterTooltip, _super);\n function GutterTooltip(editor) {\n var _this = _super.call(this, editor.container) || this;\n _this.editor = editor;\n return _this;\n }\n GutterTooltip.prototype.setPosition = function (x, y) {\n var windowWidth = window.innerWidth || document.documentElement.clientWidth;\n var windowHeight = window.innerHeight || document.documentElement.clientHeight;\n var width = this.getWidth();\n var height = this.getHeight();\n x += 15;\n y += 15;\n if (x + width > windowWidth) {\n x -= (x + width) - windowWidth;\n }\n if (y + height > windowHeight) {\n y -= 20 + height;\n }\n Tooltip.prototype.setPosition.call(this, x, y);\n };\n Object.defineProperty(GutterTooltip, \"annotationLabels\", {\n get: function () {\n return {\n error: { singular: nls(\"error\"), plural: nls(\"errors\") },\n warning: { singular: nls(\"warning\"), plural: nls(\"warnings\") },\n info: { singular: nls(\"information message\"), plural: nls(\"information messages\") }\n };\n },\n enumerable: false,\n configurable: true\n });\n GutterTooltip.prototype.showTooltip = function (row) {\n var gutter = this.editor.renderer.$gutterLayer;\n var annotationsInRow = gutter.$annotations[row];\n var annotation;\n if (annotationsInRow)\n annotation = { text: Array.from(annotationsInRow.text), type: Array.from(annotationsInRow.type) };\n else\n annotation = { text: [], type: [] };\n var fold = gutter.session.getFoldLine(row);\n if (fold && gutter.$showFoldedAnnotations) {\n var annotationsInFold = { error: [], warning: [], info: [] };\n var mostSevereAnnotationInFoldType;\n for (var i = row + 1; i <= fold.end.row; i++) {\n if (!gutter.$annotations[i])\n continue;\n for (var j = 0; j < gutter.$annotations[i].text.length; j++) {\n var annotationType = gutter.$annotations[i].type[j];\n annotationsInFold[annotationType].push(gutter.$annotations[i].text[j]);\n if (annotationType === \"error\") {\n mostSevereAnnotationInFoldType = \"error_fold\";\n continue;\n }\n if (annotationType === \"warning\") {\n mostSevereAnnotationInFoldType = \"warning_fold\";\n continue;\n }\n }\n }\n if (mostSevereAnnotationInFoldType === \"error_fold\" || mostSevereAnnotationInFoldType === \"warning_fold\") {\n var summaryFoldedAnnotations = \"\".concat(GutterTooltip.annotationsToSummaryString(annotationsInFold), \" in folded code.\");\n annotation.text.push(summaryFoldedAnnotations);\n annotation.type.push(mostSevereAnnotationInFoldType);\n }\n }\n if (annotation.text.length === 0)\n return this.hide();\n var annotationMessages = { error: [], warning: [], info: [] };\n var iconClassName = gutter.$useSvgGutterIcons ? \"ace_icon_svg\" : \"ace_icon\";\n for (var i = 0; i < annotation.text.length; i++) {\n var line = \" \").concat(annotation.text[i]);\n annotationMessages[annotation.type[i].replace(\"_fold\", \"\")].push(line);\n }\n var tooltipContent = [].concat(annotationMessages.error, annotationMessages.warning, annotationMessages.info).join(\"
    \");\n this.setHtml(tooltipContent);\n this.$element.setAttribute(\"aria-live\", \"polite\");\n if (!this.isOpen) {\n this.setTheme(this.editor.renderer.theme);\n this.setClassName(\"ace_gutter-tooltip\");\n }\n this.show();\n this.editor._signal(\"showGutterTooltip\", this);\n };\n GutterTooltip.prototype.hideTooltip = function () {\n this.$element.removeAttribute(\"aria-live\");\n this.hide();\n this.editor._signal(\"hideGutterTooltip\", this);\n };\n GutterTooltip.annotationsToSummaryString = function (annotations) {\n var e_1, _a;\n var summary = [];\n var annotationTypes = ['error', 'warning', 'info'];\n try {\n for (var annotationTypes_1 = __values(annotationTypes), annotationTypes_1_1 = annotationTypes_1.next(); !annotationTypes_1_1.done; annotationTypes_1_1 = annotationTypes_1.next()) {\n var annotationType = annotationTypes_1_1.value;\n if (!annotations[annotationType].length)\n continue;\n var label = annotations[annotationType].length === 1 ? GutterTooltip.annotationLabels[annotationType].singular : GutterTooltip.annotationLabels[annotationType].plural;\n summary.push(\"\".concat(annotations[annotationType].length, \" \").concat(label));\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (annotationTypes_1_1 && !annotationTypes_1_1.done && (_a = annotationTypes_1.return)) _a.call(annotationTypes_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return summary.join(\", \");\n };\n return GutterTooltip;\n}(Tooltip));\nexports.GutterTooltip = GutterTooltip;\n\n});\n\nace.define(\"ace/mouse/mouse_event\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar MouseEvent = /** @class */ (function () {\n function MouseEvent(domEvent, editor) {\n this.domEvent = domEvent;\n this.editor = editor;\n this.x = this.clientX = domEvent.clientX;\n this.y = this.clientY = domEvent.clientY;\n this.$pos = null;\n this.$inSelection = null;\n this.propagationStopped = false;\n this.defaultPrevented = false;\n }\n MouseEvent.prototype.stopPropagation = function () {\n event.stopPropagation(this.domEvent);\n this.propagationStopped = true;\n };\n MouseEvent.prototype.preventDefault = function () {\n event.preventDefault(this.domEvent);\n this.defaultPrevented = true;\n };\n MouseEvent.prototype.stop = function () {\n this.stopPropagation();\n this.preventDefault();\n };\n MouseEvent.prototype.getDocumentPosition = function () {\n if (this.$pos)\n return this.$pos;\n this.$pos = this.editor.renderer.screenToTextCoordinates(this.clientX, this.clientY);\n return this.$pos;\n };\n MouseEvent.prototype.getGutterRow = function () {\n var documentRow = this.getDocumentPosition().row;\n var screenRow = this.editor.session.documentToScreenRow(documentRow, 0);\n var screenTopRow = this.editor.session.documentToScreenRow(this.editor.renderer.$gutterLayer.$lines.get(0).row, 0);\n return screenRow - screenTopRow;\n };\n MouseEvent.prototype.inSelection = function () {\n if (this.$inSelection !== null)\n return this.$inSelection;\n var editor = this.editor;\n var selectionRange = editor.getSelectionRange();\n if (selectionRange.isEmpty())\n this.$inSelection = false;\n else {\n var pos = this.getDocumentPosition();\n this.$inSelection = selectionRange.contains(pos.row, pos.column);\n }\n return this.$inSelection;\n };\n MouseEvent.prototype.getButton = function () {\n return event.getButton(this.domEvent);\n };\n MouseEvent.prototype.getShiftKey = function () {\n return this.domEvent.shiftKey;\n };\n MouseEvent.prototype.getAccelKey = function () {\n return useragent.isMac ? this.domEvent.metaKey : this.domEvent.ctrlKey;\n };\n return MouseEvent;\n}());\nexports.MouseEvent = MouseEvent;\n\n});\n\nace.define(\"ace/mouse/dragdrop_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar AUTOSCROLL_DELAY = 200;\nvar SCROLL_CURSOR_DELAY = 200;\nvar SCROLL_CURSOR_HYSTERESIS = 5;\nfunction DragdropHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var dragImage = dom.createElement(\"div\");\n dragImage.style.cssText = \"top:-100px;position:absolute;z-index:2147483647;opacity:0.5\";\n dragImage.textContent = \"\\xa0\";\n var exports = [\"dragWait\", \"dragWaitEnd\", \"startDrag\", \"dragReadyEnd\", \"onMouseDrag\"];\n exports.forEach(function (x) {\n mouseHandler[x] = this[x];\n }, this);\n editor.on(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n var mouseTarget = editor.container;\n var dragSelectionMarker, x, y;\n var timerId, range;\n var dragCursor, counter = 0;\n var dragOperation;\n var isInternal;\n var autoScrollStartTime;\n var cursorMovedTime;\n var cursorPointOnCaretMoved;\n this.onDragStart = function (e) {\n if (this.cancelDrag || !mouseTarget.draggable) {\n var self = this;\n setTimeout(function () {\n self.startSelect();\n self.captureMouse(e);\n }, 0);\n return e.preventDefault();\n }\n range = editor.getSelectionRange();\n var dataTransfer = e.dataTransfer;\n dataTransfer.effectAllowed = editor.getReadOnly() ? \"copy\" : \"copyMove\";\n editor.container.appendChild(dragImage);\n dataTransfer.setDragImage && dataTransfer.setDragImage(dragImage, 0, 0);\n setTimeout(function () {\n editor.container.removeChild(dragImage);\n });\n dataTransfer.clearData();\n dataTransfer.setData(\"Text\", editor.session.getTextRange());\n isInternal = true;\n this.setState(\"drag\");\n };\n this.onDragEnd = function (e) {\n mouseTarget.draggable = false;\n isInternal = false;\n this.setState(null);\n if (!editor.getReadOnly()) {\n var dropEffect = e.dataTransfer.dropEffect;\n if (!dragOperation && dropEffect == \"move\")\n editor.session.remove(editor.getSelectionRange());\n editor.$resetCursorStyle();\n }\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n };\n this.onDragEnter = function (e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker)\n addDragMarker();\n counter++;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n this.onDragOver = function (e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker) {\n addDragMarker();\n counter++;\n }\n if (onMouseMoveTimer !== null)\n onMouseMoveTimer = null;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n this.onDragLeave = function (e) {\n counter--;\n if (counter <= 0 && dragSelectionMarker) {\n clearDragMarker();\n dragOperation = null;\n return event.preventDefault(e);\n }\n };\n this.onDrop = function (e) {\n if (!dragCursor)\n return;\n var dataTransfer = e.dataTransfer;\n if (isInternal) {\n switch (dragOperation) {\n case \"move\":\n if (range.contains(dragCursor.row, dragCursor.column)) {\n range = {\n start: dragCursor,\n end: dragCursor\n };\n }\n else {\n range = editor.moveText(range, dragCursor);\n }\n break;\n case \"copy\":\n range = editor.moveText(range, dragCursor, true);\n break;\n }\n }\n else {\n var dropData = dataTransfer.getData('Text');\n range = {\n start: dragCursor,\n end: editor.session.insert(dragCursor, dropData)\n };\n editor.focus();\n dragOperation = null;\n }\n clearDragMarker();\n return event.preventDefault(e);\n };\n event.addListener(mouseTarget, \"dragstart\", this.onDragStart.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragend\", this.onDragEnd.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragenter\", this.onDragEnter.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragover\", this.onDragOver.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragleave\", this.onDragLeave.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"drop\", this.onDrop.bind(mouseHandler), editor);\n function scrollCursorIntoView(cursor, prevCursor) {\n var now = Date.now();\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n var hMovement = !prevCursor || cursor.column != prevCursor.column;\n if (!cursorMovedTime || vMovement || hMovement) {\n editor.moveCursorToPosition(cursor);\n cursorMovedTime = now;\n cursorPointOnCaretMoved = { x: x, y: y };\n }\n else {\n var distance = calcDistance(cursorPointOnCaretMoved.x, cursorPointOnCaretMoved.y, x, y);\n if (distance > SCROLL_CURSOR_HYSTERESIS) {\n cursorMovedTime = null;\n }\n else if (now - cursorMovedTime >= SCROLL_CURSOR_DELAY) {\n editor.renderer.scrollCursorIntoView();\n cursorMovedTime = null;\n }\n }\n }\n function autoScroll(cursor, prevCursor) {\n var now = Date.now();\n var lineHeight = editor.renderer.layerConfig.lineHeight;\n var characterWidth = editor.renderer.layerConfig.characterWidth;\n var editorRect = editor.renderer.scroller.getBoundingClientRect();\n var offsets = {\n x: {\n left: x - editorRect.left,\n right: editorRect.right - x\n },\n y: {\n top: y - editorRect.top,\n bottom: editorRect.bottom - y\n }\n };\n var nearestXOffset = Math.min(offsets.x.left, offsets.x.right);\n var nearestYOffset = Math.min(offsets.y.top, offsets.y.bottom);\n var scrollCursor = { row: cursor.row, column: cursor.column };\n if (nearestXOffset / characterWidth <= 2) {\n scrollCursor.column += (offsets.x.left < offsets.x.right ? -3 : +2);\n }\n if (nearestYOffset / lineHeight <= 1) {\n scrollCursor.row += (offsets.y.top < offsets.y.bottom ? -1 : +1);\n }\n var vScroll = cursor.row != scrollCursor.row;\n var hScroll = cursor.column != scrollCursor.column;\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n if (vScroll || (hScroll && !vMovement)) {\n if (!autoScrollStartTime)\n autoScrollStartTime = now;\n else if (now - autoScrollStartTime >= AUTOSCROLL_DELAY)\n editor.renderer.scrollCursorIntoView(scrollCursor);\n }\n else {\n autoScrollStartTime = null;\n }\n }\n function onDragInterval() {\n var prevCursor = dragCursor;\n dragCursor = editor.renderer.screenToTextCoordinates(x, y);\n scrollCursorIntoView(dragCursor, prevCursor);\n autoScroll(dragCursor, prevCursor);\n }\n function addDragMarker() {\n range = editor.selection.toOrientedRange();\n dragSelectionMarker = editor.session.addMarker(range, \"ace_selection\", editor.getSelectionStyle());\n editor.clearSelection();\n if (editor.isFocused())\n editor.renderer.$cursorLayer.setBlinking(false);\n clearInterval(timerId);\n onDragInterval();\n timerId = setInterval(onDragInterval, 20);\n counter = 0;\n event.addListener(document, \"mousemove\", onMouseMove);\n }\n function clearDragMarker() {\n clearInterval(timerId);\n editor.session.removeMarker(dragSelectionMarker);\n dragSelectionMarker = null;\n editor.selection.fromOrientedRange(range);\n if (editor.isFocused() && !isInternal)\n editor.$resetCursorStyle();\n range = null;\n dragCursor = null;\n counter = 0;\n autoScrollStartTime = null;\n cursorMovedTime = null;\n event.removeListener(document, \"mousemove\", onMouseMove);\n }\n var onMouseMoveTimer = null;\n function onMouseMove() {\n if (onMouseMoveTimer == null) {\n onMouseMoveTimer = setTimeout(function () {\n if (onMouseMoveTimer != null && dragSelectionMarker)\n clearDragMarker();\n }, 20);\n }\n }\n function canAccept(dataTransfer) {\n var types = dataTransfer.types;\n return !types || Array.prototype.some.call(types, function (type) {\n return type == 'text/plain' || type == 'Text';\n });\n }\n function getDropEffect(e) {\n var copyAllowed = ['copy', 'copymove', 'all', 'uninitialized'];\n var moveAllowed = ['move', 'copymove', 'linkmove', 'all', 'uninitialized'];\n var copyModifierState = useragent.isMac ? e.altKey : e.ctrlKey;\n var effectAllowed = \"uninitialized\";\n try {\n effectAllowed = e.dataTransfer.effectAllowed.toLowerCase();\n }\n catch (e) { }\n var dropEffect = \"none\";\n if (copyModifierState && copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n else if (moveAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"move\";\n else if (copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n return dropEffect;\n }\n}\n(function () {\n this.dragWait = function () {\n var interval = Date.now() - this.mousedownEvent.time;\n if (interval > this.editor.getDragDelay())\n this.startDrag();\n };\n this.dragWaitEnd = function () {\n var target = this.editor.container;\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n this.selectEnd();\n };\n this.dragReadyEnd = function (e) {\n this.editor.$resetCursorStyle();\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n this.dragWaitEnd();\n };\n this.startDrag = function () {\n this.cancelDrag = false;\n var editor = this.editor;\n var target = editor.container;\n target.draggable = true;\n editor.renderer.$cursorLayer.setBlinking(false);\n editor.setStyle(\"ace_dragging\");\n var cursorStyle = useragent.isWin ? \"default\" : \"move\";\n editor.renderer.setCursorStyle(cursorStyle);\n this.setState(\"dragReady\");\n };\n this.onMouseDrag = function (e) {\n var target = this.editor.container;\n if (useragent.isIE && this.state == \"dragReady\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 3)\n target.dragDrop();\n }\n if (this.state === \"dragWait\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 0) {\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n }\n }\n };\n this.onMouseDown = function (e) {\n if (!this.$dragEnabled)\n return;\n this.mousedownEvent = e;\n var editor = this.editor;\n var inSelection = e.inSelection();\n var button = e.getButton();\n var clickCount = e.domEvent.detail || 1;\n if (clickCount === 1 && button === 0 && inSelection) {\n if (e.editor.inMultiSelectMode && (e.getAccelKey() || e.getShiftKey()))\n return;\n this.mousedownEvent.time = Date.now();\n var eventTarget = e.domEvent.target || e.domEvent.srcElement;\n if (\"unselectable\" in eventTarget)\n eventTarget.unselectable = \"on\";\n if (editor.getDragDelay()) {\n if (useragent.isWebKit) {\n this.cancelDrag = true;\n var mouseTarget = editor.container;\n mouseTarget.draggable = true;\n }\n this.setState(\"dragWait\");\n }\n else {\n this.startDrag();\n }\n this.captureMouse(e, this.onMouseDrag.bind(this));\n e.defaultPrevented = true;\n }\n };\n}).call(DragdropHandler.prototype);\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\nexports.DragdropHandler = DragdropHandler;\n\n});\n\nace.define(\"ace/mouse/touch_handler\",[\"require\",\"exports\",\"module\",\"ace/mouse/mouse_event\",\"ace/lib/event\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar MouseEvent = require(\"./mouse_event\").MouseEvent;\nvar event = require(\"../lib/event\");\nvar dom = require(\"../lib/dom\");\nexports.addTouchListeners = function (el, editor) {\n var mode = \"scroll\";\n var startX;\n var startY;\n var touchStartT;\n var lastT;\n var longTouchTimer;\n var animationTimer;\n var animationSteps = 0;\n var pos;\n var clickCount = 0;\n var vX = 0;\n var vY = 0;\n var pressed;\n var contextMenu;\n function createContextMenu() {\n var clipboard = window.navigator && window.navigator.clipboard;\n var isOpen = false;\n var updateMenu = function () {\n var selected = editor.getCopyText();\n var hasUndo = editor.session.getUndoManager().hasUndo();\n contextMenu.replaceChild(dom.buildDom(isOpen ? [\"span\",\n !selected && [\"span\", { class: \"ace_mobile-button\", action: \"selectall\" }, \"Select All\"],\n selected && [\"span\", { class: \"ace_mobile-button\", action: \"copy\" }, \"Copy\"],\n selected && [\"span\", { class: \"ace_mobile-button\", action: \"cut\" }, \"Cut\"],\n clipboard && [\"span\", { class: \"ace_mobile-button\", action: \"paste\" }, \"Paste\"],\n hasUndo && [\"span\", { class: \"ace_mobile-button\", action: \"undo\" }, \"Undo\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"find\" }, \"Find\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"openCommandPalette\" }, \"Palette\"]\n ] : [\"span\"]), contextMenu.firstChild);\n };\n var handleClick = function (e) {\n var action = e.target.getAttribute(\"action\");\n if (action == \"more\" || !isOpen) {\n isOpen = !isOpen;\n return updateMenu();\n }\n if (action == \"paste\") {\n clipboard.readText().then(function (text) {\n editor.execCommand(action, text);\n });\n }\n else if (action) {\n if (action == \"cut\" || action == \"copy\") {\n if (clipboard)\n clipboard.writeText(editor.getCopyText());\n else\n document.execCommand(\"copy\");\n }\n editor.execCommand(action);\n }\n contextMenu.firstChild.style.display = \"none\";\n isOpen = false;\n if (action != \"openCommandPalette\")\n editor.focus();\n };\n contextMenu = dom.buildDom([\"div\",\n {\n class: \"ace_mobile-menu\",\n ontouchstart: function (e) {\n mode = \"menu\";\n e.stopPropagation();\n e.preventDefault();\n editor.textInput.focus();\n },\n ontouchend: function (e) {\n e.stopPropagation();\n e.preventDefault();\n handleClick(e);\n },\n onclick: handleClick\n },\n [\"span\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"more\" }, \"...\"]\n ], editor.container);\n }\n function showContextMenu() {\n if (!contextMenu)\n createContextMenu();\n var cursor = editor.selection.cursor;\n var pagePos = editor.renderer.textToScreenCoordinates(cursor.row, cursor.column);\n var leftOffset = editor.renderer.textToScreenCoordinates(0, 0).pageX;\n var scrollLeft = editor.renderer.scrollLeft;\n var rect = editor.container.getBoundingClientRect();\n contextMenu.style.top = pagePos.pageY - rect.top - 3 + \"px\";\n if (pagePos.pageX - rect.left < rect.width - 70) {\n contextMenu.style.left = \"\";\n contextMenu.style.right = \"10px\";\n }\n else {\n contextMenu.style.right = \"\";\n contextMenu.style.left = leftOffset + scrollLeft - rect.left + \"px\";\n }\n contextMenu.style.display = \"\";\n contextMenu.firstChild.style.display = \"none\";\n editor.on(\"input\", hideContextMenu);\n }\n function hideContextMenu(e) {\n if (contextMenu)\n contextMenu.style.display = \"none\";\n editor.off(\"input\", hideContextMenu);\n }\n function handleLongTap() {\n longTouchTimer = null;\n clearTimeout(longTouchTimer);\n var range = editor.selection.getRange();\n var inSelection = range.contains(pos.row, pos.column);\n if (range.isEmpty() || !inSelection) {\n editor.selection.moveToPosition(pos);\n editor.selection.selectWord();\n }\n mode = \"wait\";\n showContextMenu();\n }\n function switchToSelectionMode() {\n longTouchTimer = null;\n clearTimeout(longTouchTimer);\n editor.selection.moveToPosition(pos);\n var range = clickCount >= 2\n ? editor.selection.getLineRange(pos.row)\n : editor.session.getBracketRange(pos);\n if (range && !range.isEmpty()) {\n editor.selection.setRange(range);\n }\n else {\n editor.selection.selectWord();\n }\n mode = \"wait\";\n }\n event.addListener(el, \"contextmenu\", function (e) {\n if (!pressed)\n return;\n var textarea = editor.textInput.getElement();\n textarea.focus();\n }, editor);\n event.addListener(el, \"touchstart\", function (e) {\n var touches = e.touches;\n if (longTouchTimer || touches.length > 1) {\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n touchStartT = -1;\n mode = \"zoom\";\n return;\n }\n pressed = editor.$mouseHandler.isMousePressed = true;\n var h = editor.renderer.layerConfig.lineHeight;\n var w = editor.renderer.layerConfig.lineHeight;\n var t = e.timeStamp;\n lastT = t;\n var touchObj = touches[0];\n var x = touchObj.clientX;\n var y = touchObj.clientY;\n if (Math.abs(startX - x) + Math.abs(startY - y) > h)\n touchStartT = -1;\n startX = e.clientX = x;\n startY = e.clientY = y;\n vX = vY = 0;\n var ev = new MouseEvent(e, editor);\n pos = ev.getDocumentPosition();\n if (t - touchStartT < 500 && touches.length == 1 && !animationSteps) {\n clickCount++;\n e.preventDefault();\n e.button = 0;\n switchToSelectionMode();\n }\n else {\n clickCount = 0;\n var cursor = editor.selection.cursor;\n var anchor = editor.selection.isEmpty() ? cursor : editor.selection.anchor;\n var cursorPos = editor.renderer.$cursorLayer.getPixelPosition(cursor, true);\n var anchorPos = editor.renderer.$cursorLayer.getPixelPosition(anchor, true);\n var rect = editor.renderer.scroller.getBoundingClientRect();\n var offsetTop = editor.renderer.layerConfig.offset;\n var offsetLeft = editor.renderer.scrollLeft;\n var weightedDistance = function (x, y) {\n x = x / w;\n y = y / h - 0.75;\n return x * x + y * y;\n };\n if (e.clientX < rect.left) {\n mode = \"zoom\";\n return;\n }\n var diff1 = weightedDistance(e.clientX - rect.left - cursorPos.left + offsetLeft, e.clientY - rect.top - cursorPos.top + offsetTop);\n var diff2 = weightedDistance(e.clientX - rect.left - anchorPos.left + offsetLeft, e.clientY - rect.top - anchorPos.top + offsetTop);\n if (diff1 < 3.5 && diff2 < 3.5)\n mode = diff1 > diff2 ? \"cursor\" : \"anchor\";\n if (diff2 < 3.5)\n mode = \"anchor\";\n else if (diff1 < 3.5)\n mode = \"cursor\";\n else\n mode = \"scroll\";\n longTouchTimer = setTimeout(handleLongTap, 450);\n }\n touchStartT = t;\n }, editor);\n event.addListener(el, \"touchend\", function (e) {\n pressed = editor.$mouseHandler.isMousePressed = false;\n if (animationTimer)\n clearInterval(animationTimer);\n if (mode == \"zoom\") {\n mode = \"\";\n animationSteps = 0;\n }\n else if (longTouchTimer) {\n editor.selection.moveToPosition(pos);\n animationSteps = 0;\n showContextMenu();\n }\n else if (mode == \"scroll\") {\n animate();\n hideContextMenu();\n }\n else {\n showContextMenu();\n }\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n }, editor);\n event.addListener(el, \"touchmove\", function (e) {\n if (longTouchTimer) {\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n }\n var touches = e.touches;\n if (touches.length > 1 || mode == \"zoom\")\n return;\n var touchObj = touches[0];\n var wheelX = startX - touchObj.clientX;\n var wheelY = startY - touchObj.clientY;\n if (mode == \"wait\") {\n if (wheelX * wheelX + wheelY * wheelY > 4)\n mode = \"cursor\";\n else\n return e.preventDefault();\n }\n startX = touchObj.clientX;\n startY = touchObj.clientY;\n e.clientX = touchObj.clientX;\n e.clientY = touchObj.clientY;\n var t = e.timeStamp;\n var dt = t - lastT;\n lastT = t;\n if (mode == \"scroll\") {\n var mouseEvent = new MouseEvent(e, editor);\n mouseEvent.speed = 1;\n mouseEvent.wheelX = wheelX;\n mouseEvent.wheelY = wheelY;\n if (10 * Math.abs(wheelX) < Math.abs(wheelY))\n wheelX = 0;\n if (10 * Math.abs(wheelY) < Math.abs(wheelX))\n wheelY = 0;\n if (dt != 0) {\n vX = wheelX / dt;\n vY = wheelY / dt;\n }\n editor._emit(\"mousewheel\", mouseEvent);\n if (!mouseEvent.propagationStopped) {\n vX = vY = 0;\n }\n }\n else {\n var ev = new MouseEvent(e, editor);\n var pos = ev.getDocumentPosition();\n if (mode == \"cursor\")\n editor.selection.moveCursorToPosition(pos);\n else if (mode == \"anchor\")\n editor.selection.setSelectionAnchor(pos.row, pos.column);\n editor.renderer.scrollCursorIntoView(pos);\n e.preventDefault();\n }\n }, editor);\n function animate() {\n animationSteps += 60;\n animationTimer = setInterval(function () {\n if (animationSteps-- <= 0) {\n clearInterval(animationTimer);\n animationTimer = null;\n }\n if (Math.abs(vX) < 0.01)\n vX = 0;\n if (Math.abs(vY) < 0.01)\n vY = 0;\n if (animationSteps < 20)\n vX = 0.9 * vX;\n if (animationSteps < 20)\n vY = 0.9 * vY;\n var oldScrollTop = editor.session.getScrollTop();\n editor.renderer.scrollBy(10 * vX, 10 * vY);\n if (oldScrollTop == editor.session.getScrollTop())\n animationSteps = 0;\n }, 10);\n }\n};\n\n});\n\nace.define(\"ace/mouse/mouse_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/mouse/default_handlers\",\"ace/mouse/default_gutter_handler\",\"ace/mouse/mouse_event\",\"ace/mouse/dragdrop_handler\",\"ace/mouse/touch_handler\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar DefaultHandlers = require(\"./default_handlers\").DefaultHandlers;\nvar DefaultGutterHandler = require(\"./default_gutter_handler\").GutterHandler;\nvar MouseEvent = require(\"./mouse_event\").MouseEvent;\nvar DragdropHandler = require(\"./dragdrop_handler\").DragdropHandler;\nvar addTouchListeners = require(\"./touch_handler\").addTouchListeners;\nvar config = require(\"../config\");\nvar MouseHandler = /** @class */ (function () {\n function MouseHandler(editor) {\n var _self = this;\n this.editor = editor;\n new DefaultHandlers(this);\n new DefaultGutterHandler(this);\n new DragdropHandler(this);\n var focusEditor = function (e) {\n var windowBlurred = !document.hasFocus || !document.hasFocus()\n || !editor.isFocused() && document.activeElement == (editor.textInput && editor.textInput.getElement());\n if (windowBlurred)\n window.focus();\n editor.focus();\n setTimeout(function () {\n if (!editor.isFocused())\n editor.focus();\n });\n };\n var mouseTarget = editor.renderer.getMouseEventTarget();\n event.addListener(mouseTarget, \"click\", this.onMouseEvent.bind(this, \"click\"), editor);\n event.addListener(mouseTarget, \"mousemove\", this.onMouseMove.bind(this, \"mousemove\"), editor);\n event.addMultiMouseDownListener([\n mouseTarget,\n editor.renderer.scrollBarV && editor.renderer.scrollBarV.inner,\n editor.renderer.scrollBarH && editor.renderer.scrollBarH.inner,\n editor.textInput && editor.textInput.getElement()\n ].filter(Boolean), [400, 300, 250], this, \"onMouseEvent\", editor);\n event.addMouseWheelListener(editor.container, this.onMouseWheel.bind(this, \"mousewheel\"), editor);\n addTouchListeners(editor.container, editor);\n var gutterEl = editor.renderer.$gutter;\n event.addListener(gutterEl, \"mousedown\", this.onMouseEvent.bind(this, \"guttermousedown\"), editor);\n event.addListener(gutterEl, \"click\", this.onMouseEvent.bind(this, \"gutterclick\"), editor);\n event.addListener(gutterEl, \"dblclick\", this.onMouseEvent.bind(this, \"gutterdblclick\"), editor);\n event.addListener(gutterEl, \"mousemove\", this.onMouseEvent.bind(this, \"guttermousemove\"), editor);\n event.addListener(mouseTarget, \"mousedown\", focusEditor, editor);\n event.addListener(gutterEl, \"mousedown\", focusEditor, editor);\n if (useragent.isIE && editor.renderer.scrollBarV) {\n event.addListener(editor.renderer.scrollBarV.element, \"mousedown\", focusEditor, editor);\n event.addListener(editor.renderer.scrollBarH.element, \"mousedown\", focusEditor, editor);\n }\n editor.on(\"mousemove\", function (e) {\n if (_self.state || _self.$dragDelay || !_self.$dragEnabled)\n return;\n var character = editor.renderer.screenToTextCoordinates(e.x, e.y);\n var range = editor.session.selection.getRange();\n var renderer = editor.renderer;\n if (!range.isEmpty() && range.insideStart(character.row, character.column)) {\n renderer.setCursorStyle(\"default\");\n }\n else {\n renderer.setCursorStyle(\"\");\n }\n }, editor);\n }\n MouseHandler.prototype.onMouseEvent = function (name, e) {\n if (!this.editor.session)\n return;\n this.editor._emit(name, new MouseEvent(e, this.editor));\n };\n MouseHandler.prototype.onMouseMove = function (name, e) {\n var listeners = this.editor._eventRegistry && this.editor._eventRegistry.mousemove;\n if (!listeners || !listeners.length)\n return;\n this.editor._emit(name, new MouseEvent(e, this.editor));\n };\n MouseHandler.prototype.onMouseWheel = function (name, e) {\n var mouseEvent = new MouseEvent(e, this.editor);\n mouseEvent.speed = this.$scrollSpeed * 2;\n mouseEvent.wheelX = e.wheelX;\n mouseEvent.wheelY = e.wheelY;\n this.editor._emit(name, mouseEvent);\n };\n MouseHandler.prototype.setState = function (state) {\n this.state = state;\n };\n MouseHandler.prototype.captureMouse = function (ev, mouseMoveHandler) {\n this.x = ev.x;\n this.y = ev.y;\n this.isMousePressed = true;\n var editor = this.editor;\n var renderer = this.editor.renderer;\n renderer.$isMousePressed = true;\n var self = this;\n var onMouseMove = function (e) {\n if (!e)\n return;\n if (useragent.isWebKit && !e.which && self.releaseMouse)\n return self.releaseMouse();\n self.x = e.clientX;\n self.y = e.clientY;\n mouseMoveHandler && mouseMoveHandler(e);\n self.mouseEvent = new MouseEvent(e, self.editor);\n self.$mouseMoved = true;\n };\n var onCaptureEnd = function (e) {\n editor.off(\"beforeEndOperation\", onOperationEnd);\n clearInterval(timerId);\n if (editor.session)\n onCaptureInterval();\n self[self.state + \"End\"] && self[self.state + \"End\"](e);\n self.state = \"\";\n self.isMousePressed = renderer.$isMousePressed = false;\n if (renderer.$keepTextAreaAtCursor)\n renderer.$moveTextAreaToCursor();\n self.$onCaptureMouseMove = self.releaseMouse = null;\n e && self.onMouseEvent(\"mouseup\", e);\n editor.endOperation();\n };\n var onCaptureInterval = function () {\n self[self.state] && self[self.state]();\n self.$mouseMoved = false;\n };\n if (useragent.isOldIE && ev.domEvent.type == \"dblclick\") {\n return setTimeout(function () { onCaptureEnd(ev); });\n }\n var onOperationEnd = function (e) {\n if (!self.releaseMouse)\n return;\n if (editor.curOp.command.name && editor.curOp.selectionChanged) {\n self[self.state + \"End\"] && self[self.state + \"End\"]();\n self.state = \"\";\n self.releaseMouse();\n }\n };\n editor.on(\"beforeEndOperation\", onOperationEnd);\n editor.startOperation({ command: { name: \"mouse\" } });\n self.$onCaptureMouseMove = onMouseMove;\n self.releaseMouse = event.capture(this.editor.container, onMouseMove, onCaptureEnd);\n var timerId = setInterval(onCaptureInterval, 20);\n };\n MouseHandler.prototype.cancelContextMenu = function () {\n var stop = function (e) {\n if (e && e.domEvent && e.domEvent.type != \"contextmenu\")\n return;\n this.editor.off(\"nativecontextmenu\", stop);\n if (e && e.domEvent)\n event.stopEvent(e.domEvent);\n }.bind(this);\n setTimeout(stop, 10);\n this.editor.on(\"nativecontextmenu\", stop);\n };\n MouseHandler.prototype.destroy = function () {\n if (this.releaseMouse)\n this.releaseMouse();\n };\n return MouseHandler;\n}());\nMouseHandler.prototype.releaseMouse = null;\nconfig.defineOptions(MouseHandler.prototype, \"mouseHandler\", {\n scrollSpeed: { initialValue: 2 },\n dragDelay: { initialValue: (useragent.isMac ? 150 : 0) },\n dragEnabled: { initialValue: true },\n focusTimeout: { initialValue: 0 },\n tooltipFollowsMouse: { initialValue: true }\n});\nexports.MouseHandler = MouseHandler;\n\n});\n\nace.define(\"ace/mouse/fold_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar FoldHandler = /** @class */ (function () {\n function FoldHandler(editor) {\n editor.on(\"click\", function (e) {\n var position = e.getDocumentPosition();\n var session = editor.session;\n var fold = session.getFoldAt(position.row, position.column, 1);\n if (fold) {\n if (e.getAccelKey())\n session.removeFold(fold);\n else\n session.expandFold(fold);\n e.stop();\n }\n var target = e.domEvent && e.domEvent.target;\n if (target && dom.hasCssClass(target, \"ace_inline_button\")) {\n if (dom.hasCssClass(target, \"ace_toggle_wrap\")) {\n session.setOption(\"wrap\", !session.getUseWrapMode());\n editor.renderer.scrollCursorIntoView();\n }\n }\n });\n editor.on(\"gutterclick\", function (e) {\n var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n if (gutterRegion == \"foldWidgets\") {\n var row = e.getDocumentPosition().row;\n var session = editor.session;\n if (session.foldWidgets && session.foldWidgets[row])\n editor.session.onFoldWidgetClick(row, e);\n if (!editor.isFocused())\n editor.focus();\n e.stop();\n }\n });\n editor.on(\"gutterdblclick\", function (e) {\n var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n if (gutterRegion == \"foldWidgets\") {\n var row = e.getDocumentPosition().row;\n var session = editor.session;\n var data = session.getParentFoldRangeData(row, true);\n var range = data.range || data.firstRange;\n if (range) {\n row = range.start.row;\n var fold = session.getFoldAt(row, session.getLine(row).length, 1);\n if (fold) {\n session.removeFold(fold);\n }\n else {\n session.addFold(\"...\", range);\n editor.renderer.scrollCursorIntoView({ row: range.start.row, column: 0 });\n }\n }\n e.stop();\n }\n });\n }\n return FoldHandler;\n}());\nexports.FoldHandler = FoldHandler;\n\n});\n\nace.define(\"ace/keyboard/keybinding\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/event\"], function(require, exports, module){\"use strict\";\nvar keyUtil = require(\"../lib/keys\");\nvar event = require(\"../lib/event\");\nvar KeyBinding = /** @class */ (function () {\n function KeyBinding(editor) {\n this.$editor = editor;\n this.$data = { editor: editor };\n this.$handlers = [];\n this.setDefaultHandler(editor.commands);\n }\n KeyBinding.prototype.setDefaultHandler = function (kb) {\n this.removeKeyboardHandler(this.$defaultHandler);\n this.$defaultHandler = kb;\n this.addKeyboardHandler(kb, 0);\n };\n KeyBinding.prototype.setKeyboardHandler = function (kb) {\n var h = this.$handlers;\n if (h[h.length - 1] == kb)\n return;\n while (h[h.length - 1] && h[h.length - 1] != this.$defaultHandler)\n this.removeKeyboardHandler(h[h.length - 1]);\n this.addKeyboardHandler(kb, 1);\n };\n KeyBinding.prototype.addKeyboardHandler = function (kb, pos) {\n if (!kb)\n return;\n if (typeof kb == \"function\" && !kb.handleKeyboard)\n kb.handleKeyboard = kb;\n var i = this.$handlers.indexOf(kb);\n if (i != -1)\n this.$handlers.splice(i, 1);\n if (pos == undefined)\n this.$handlers.push(kb);\n else\n this.$handlers.splice(pos, 0, kb);\n if (i == -1 && kb.attach)\n kb.attach(this.$editor);\n };\n KeyBinding.prototype.removeKeyboardHandler = function (kb) {\n var i = this.$handlers.indexOf(kb);\n if (i == -1)\n return false;\n this.$handlers.splice(i, 1);\n kb.detach && kb.detach(this.$editor);\n return true;\n };\n KeyBinding.prototype.getKeyboardHandler = function () {\n return this.$handlers[this.$handlers.length - 1];\n };\n KeyBinding.prototype.getStatusText = function () {\n var data = this.$data;\n var editor = data.editor;\n return this.$handlers.map(function (h) {\n return h.getStatusText && h.getStatusText(editor, data) || \"\";\n }).filter(Boolean).join(\" \");\n };\n KeyBinding.prototype.$callKeyboardHandlers = function (hashId, keyString, keyCode, e) {\n var toExecute;\n var success = false;\n var commands = this.$editor.commands;\n for (var i = this.$handlers.length; i--;) {\n toExecute = this.$handlers[i].handleKeyboard(this.$data, hashId, keyString, keyCode, e);\n if (!toExecute || !toExecute.command)\n continue;\n if (toExecute.command == \"null\") {\n success = true;\n }\n else {\n success = commands.exec(toExecute.command, this.$editor, toExecute.args, e);\n }\n if (success && e && hashId != -1 &&\n toExecute.passEvent != true && toExecute.command.passEvent != true) {\n event.stopEvent(e);\n }\n if (success)\n break;\n }\n if (!success && hashId == -1) {\n toExecute = { command: \"insertstring\" };\n success = commands.exec(\"insertstring\", this.$editor, keyString);\n }\n if (success && this.$editor._signal)\n this.$editor._signal(\"keyboardActivity\", toExecute);\n return success;\n };\n KeyBinding.prototype.onCommandKey = function (e, hashId, keyCode) {\n var keyString = keyUtil.keyCodeToString(keyCode);\n return this.$callKeyboardHandlers(hashId, keyString, keyCode, e);\n };\n KeyBinding.prototype.onTextInput = function (text) {\n return this.$callKeyboardHandlers(-1, text);\n };\n return KeyBinding;\n}());\nexports.KeyBinding = KeyBinding;\n\n});\n\nace.define(\"ace/lib/bidiutil\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar ArabicAlefBetIntervalsBegine = ['\\u0621', '\\u0641'];\nvar ArabicAlefBetIntervalsEnd = ['\\u063A', '\\u064a'];\nvar dir = 0, hiLevel = 0;\nvar lastArabic = false, hasUBAT_AL = false, hasUBAT_B = false, hasUBAT_S = false, hasBlockSep = false, hasSegSep = false;\nvar impTab_LTR = [ [0, 3, 0, 1, 0, 0, 0], [0, 3, 0, 1, 2, 2, 0], [0, 3, 0, 0x11, 2, 0, 1], [0, 3, 5, 5, 4, 1, 0], [0, 3, 0x15, 0x15, 4, 0, 1], [0, 3, 5, 5, 4, 2, 0]\n];\nvar impTab_RTL = [ [2, 0, 1, 1, 0, 1, 0], [2, 0, 1, 1, 0, 2, 0], [2, 0, 2, 1, 3, 2, 0], [2, 0, 2, 0x21, 3, 1, 1]\n];\nvar LTR = 0, RTL = 1;\nvar L = 0;\nvar R = 1;\nvar EN = 2;\nvar AN = 3;\nvar ON = 4;\nvar B = 5;\nvar S = 6;\nvar AL = 7;\nvar WS = 8;\nvar CS = 9;\nvar ES = 10;\nvar ET = 11;\nvar NSM = 12;\nvar LRE = 13;\nvar RLE = 14;\nvar PDF = 15;\nvar LRO = 16;\nvar RLO = 17;\nvar BN = 18;\nvar UnicodeTBL00 = [\n BN, BN, BN, BN, BN, BN, BN, BN, BN, S, B, S, WS, B, BN, BN,\n BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, B, B, B, S,\n WS, ON, ON, ET, ET, ET, ON, ON, ON, ON, ON, ES, CS, ES, CS, CS,\n EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, CS, ON, ON, ON, ON, ON,\n ON, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L,\n L, L, L, L, L, L, L, L, L, L, L, ON, ON, ON, ON, ON,\n ON, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L,\n L, L, L, L, L, L, L, L, L, L, L, ON, ON, ON, ON, BN,\n BN, BN, BN, BN, BN, B, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,\n BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,\n CS, ON, ET, ET, ET, ET, ON, ON, ON, ON, L, ON, ON, BN, ON, ON,\n ET, ET, EN, EN, ON, L, ON, ON, ON, EN, L, ON, ON, ON, ON, ON\n];\nvar UnicodeTBL20 = [\n WS, WS, WS, WS, WS, WS, WS, WS, WS, WS, WS, BN, BN, BN, L, R,\n ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, ON, ON, ON, ON, WS, B, LRE, RLE, PDF, LRO, RLO, CS,\n ET, ET, ET, ET, ET, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, CS, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, WS\n];\nfunction _computeLevels(chars, levels, len, charTypes) {\n var impTab = dir ? impTab_RTL : impTab_LTR, prevState = null, newClass = null, newLevel = null, newState = 0, action = null, cond = null, condPos = -1, i = null, ix = null, classes = [];\n if (!charTypes) {\n for (i = 0, charTypes = []; i < len; i++) {\n charTypes[i] = _getCharacterType(chars[i]);\n }\n }\n hiLevel = dir;\n lastArabic = false;\n hasUBAT_AL = false;\n hasUBAT_B = false;\n hasUBAT_S = false;\n for (ix = 0; ix < len; ix++) {\n prevState = newState;\n classes[ix] = newClass = _getCharClass(chars, charTypes, classes, ix);\n newState = impTab[prevState][newClass];\n action = newState & 0xF0;\n newState &= 0x0F;\n levels[ix] = newLevel = impTab[newState][5];\n if (action > 0) {\n if (action == 0x10) {\n for (i = condPos; i < ix; i++) {\n levels[i] = 1;\n }\n condPos = -1;\n }\n else {\n condPos = -1;\n }\n }\n cond = impTab[newState][6];\n if (cond) {\n if (condPos == -1) {\n condPos = ix;\n }\n }\n else {\n if (condPos > -1) {\n for (i = condPos; i < ix; i++) {\n levels[i] = newLevel;\n }\n condPos = -1;\n }\n }\n if (charTypes[ix] == B) {\n levels[ix] = 0;\n }\n hiLevel |= newLevel;\n }\n if (hasUBAT_S) {\n for (i = 0; i < len; i++) {\n if (charTypes[i] == S) {\n levels[i] = dir;\n for (var j = i - 1; j >= 0; j--) {\n if (charTypes[j] == WS) {\n levels[j] = dir;\n }\n else {\n break;\n }\n }\n }\n }\n }\n}\nfunction _invertLevel(lev, levels, _array) {\n if (hiLevel < lev) {\n return;\n }\n if (lev == 1 && dir == RTL && !hasUBAT_B) {\n _array.reverse();\n return;\n }\n var len = _array.length, start = 0, end, lo, hi, tmp;\n while (start < len) {\n if (levels[start] >= lev) {\n end = start + 1;\n while (end < len && levels[end] >= lev) {\n end++;\n }\n for (lo = start, hi = end - 1; lo < hi; lo++, hi--) {\n tmp = _array[lo];\n _array[lo] = _array[hi];\n _array[hi] = tmp;\n }\n start = end;\n }\n start++;\n }\n}\nfunction _getCharClass(chars, types, classes, ix) {\n var cType = types[ix], wType, nType, len, i;\n switch (cType) {\n case L:\n case R:\n lastArabic = false;\n case ON:\n case AN:\n return cType;\n case EN:\n return lastArabic ? AN : EN;\n case AL:\n lastArabic = true;\n hasUBAT_AL = true;\n return R;\n case WS:\n return ON;\n case CS:\n if (ix < 1 || (ix + 1) >= types.length ||\n ((wType = classes[ix - 1]) != EN && wType != AN) ||\n ((nType = types[ix + 1]) != EN && nType != AN)) {\n return ON;\n }\n if (lastArabic) {\n nType = AN;\n }\n return nType == wType ? nType : ON;\n case ES:\n wType = ix > 0 ? classes[ix - 1] : B;\n if (wType == EN && (ix + 1) < types.length && types[ix + 1] == EN) {\n return EN;\n }\n return ON;\n case ET:\n if (ix > 0 && classes[ix - 1] == EN) {\n return EN;\n }\n if (lastArabic) {\n return ON;\n }\n i = ix + 1;\n len = types.length;\n while (i < len && types[i] == ET) {\n i++;\n }\n if (i < len && types[i] == EN) {\n return EN;\n }\n return ON;\n case NSM:\n len = types.length;\n i = ix + 1;\n while (i < len && types[i] == NSM) {\n i++;\n }\n if (i < len) {\n var c = chars[ix], rtlCandidate = (c >= 0x0591 && c <= 0x08FF) || c == 0xFB1E;\n wType = types[i];\n if (rtlCandidate && (wType == R || wType == AL)) {\n return R;\n }\n }\n if (ix < 1 || (wType = types[ix - 1]) == B) {\n return ON;\n }\n return classes[ix - 1];\n case B:\n lastArabic = false;\n hasUBAT_B = true;\n return dir;\n case S:\n hasUBAT_S = true;\n return ON;\n case LRE:\n case RLE:\n case LRO:\n case RLO:\n case PDF:\n lastArabic = false;\n case BN:\n return ON;\n }\n}\nfunction _getCharacterType(ch) {\n var uc = ch.charCodeAt(0), hi = uc >> 8;\n if (hi == 0) {\n return ((uc > 0x00BF) ? L : UnicodeTBL00[uc]);\n }\n else if (hi == 5) {\n return (/[\\u0591-\\u05f4]/.test(ch) ? R : L);\n }\n else if (hi == 6) {\n if (/[\\u0610-\\u061a\\u064b-\\u065f\\u06d6-\\u06e4\\u06e7-\\u06ed]/.test(ch))\n return NSM;\n else if (/[\\u0660-\\u0669\\u066b-\\u066c]/.test(ch))\n return AN;\n else if (uc == 0x066A)\n return ET;\n else if (/[\\u06f0-\\u06f9]/.test(ch))\n return EN;\n else\n return AL;\n }\n else if (hi == 0x20 && uc <= 0x205F) {\n return UnicodeTBL20[uc & 0xFF];\n }\n else if (hi == 0xFE) {\n return (uc >= 0xFE70 ? AL : ON);\n }\n return ON;\n}\nfunction _isArabicDiacritics(ch) {\n return (ch >= '\\u064b' && ch <= '\\u0655');\n}\nexports.L = L;\nexports.R = R;\nexports.EN = EN;\nexports.ON_R = 3;\nexports.AN = 4;\nexports.R_H = 5;\nexports.B = 6;\nexports.RLE = 7;\nexports.DOT = \"\\xB7\";\nexports.doBidiReorder = function (text, textCharTypes, isRtl) {\n if (text.length < 2)\n return {};\n var chars = text.split(\"\"), logicalFromVisual = new Array(chars.length), bidiLevels = new Array(chars.length), levels = [];\n dir = isRtl ? RTL : LTR;\n _computeLevels(chars, levels, chars.length, textCharTypes);\n for (var i = 0; i < logicalFromVisual.length; logicalFromVisual[i] = i, i++)\n ;\n _invertLevel(2, levels, logicalFromVisual);\n _invertLevel(1, levels, logicalFromVisual);\n for (var i = 0; i < logicalFromVisual.length - 1; i++) { //fix levels to reflect character width\n if (textCharTypes[i] === AN) {\n levels[i] = exports.AN;\n }\n else if (levels[i] === R && ((textCharTypes[i] > AL && textCharTypes[i] < LRE)\n || textCharTypes[i] === ON || textCharTypes[i] === BN)) {\n levels[i] = exports.ON_R;\n }\n else if ((i > 0 && chars[i - 1] === '\\u0644') && /\\u0622|\\u0623|\\u0625|\\u0627/.test(chars[i])) {\n levels[i - 1] = levels[i] = exports.R_H;\n i++;\n }\n }\n if (chars[chars.length - 1] === exports.DOT)\n levels[chars.length - 1] = exports.B;\n if (chars[0] === '\\u202B')\n levels[0] = exports.RLE;\n for (var i = 0; i < logicalFromVisual.length; i++) {\n bidiLevels[i] = levels[logicalFromVisual[i]];\n }\n return { 'logicalFromVisual': logicalFromVisual, 'bidiLevels': bidiLevels };\n};\nexports.hasBidiCharacters = function (text, textCharTypes) {\n var ret = false;\n for (var i = 0; i < text.length; i++) {\n textCharTypes[i] = _getCharacterType(text.charAt(i));\n if (!ret && (textCharTypes[i] == R || textCharTypes[i] == AL || textCharTypes[i] == AN))\n ret = true;\n }\n return ret;\n};\nexports.getVisualFromLogicalIdx = function (logIdx, rowMap) {\n for (var i = 0; i < rowMap.logicalFromVisual.length; i++) {\n if (rowMap.logicalFromVisual[i] == logIdx)\n return i;\n }\n return 0;\n};\n\n});\n\nace.define(\"ace/bidihandler\",[\"require\",\"exports\",\"module\",\"ace/lib/bidiutil\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar bidiUtil = require(\"./lib/bidiutil\");\nvar lang = require(\"./lib/lang\");\nvar bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac\\u202B]/;\nvar BidiHandler = /** @class */ (function () {\n function BidiHandler(session) {\n this.session = session;\n this.bidiMap = {};\n this.currentRow = null;\n this.bidiUtil = bidiUtil;\n this.charWidths = [];\n this.EOL = \"\\xAC\";\n this.showInvisibles = true;\n this.isRtlDir = false;\n this.$isRtl = false;\n this.line = \"\";\n this.wrapIndent = 0;\n this.EOF = \"\\xB6\";\n this.RLE = \"\\u202B\";\n this.contentWidth = 0;\n this.fontMetrics = null;\n this.rtlLineOffset = 0;\n this.wrapOffset = 0;\n this.isMoveLeftOperation = false;\n this.seenBidi = bidiRE.test(session.getValue());\n }\n BidiHandler.prototype.isBidiRow = function (screenRow, docRow, splitIndex) {\n if (!this.seenBidi)\n return false;\n if (screenRow !== this.currentRow) {\n this.currentRow = screenRow;\n this.updateRowLine(docRow, splitIndex);\n this.updateBidiMap();\n }\n return this.bidiMap.bidiLevels;\n };\n BidiHandler.prototype.onChange = function (delta) {\n if (!this.seenBidi) {\n if (delta.action == \"insert\" && bidiRE.test(delta.lines.join(\"\\n\"))) {\n this.seenBidi = true;\n this.currentRow = null;\n }\n }\n else {\n this.currentRow = null;\n }\n };\n BidiHandler.prototype.getDocumentRow = function () {\n var docRow = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var index = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n if (index >= 0)\n docRow = this.session.$docRowCache[index];\n }\n return docRow;\n };\n BidiHandler.prototype.getSplitIndex = function () {\n var splitIndex = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var currentIndex, prevIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n while (this.currentRow - splitIndex > 0) {\n currentIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow - splitIndex - 1);\n if (currentIndex !== prevIndex)\n break;\n prevIndex = currentIndex;\n splitIndex++;\n }\n }\n else {\n splitIndex = this.currentRow;\n }\n return splitIndex;\n };\n BidiHandler.prototype.updateRowLine = function (docRow, splitIndex) {\n if (docRow === undefined)\n docRow = this.getDocumentRow();\n var isLastRow = (docRow === this.session.getLength() - 1), endOfLine = isLastRow ? this.EOF : this.EOL;\n this.wrapIndent = 0;\n this.line = this.session.getLine(docRow);\n this.isRtlDir = this.$isRtl || this.line.charAt(0) === this.RLE;\n if (this.session.$useWrapMode) {\n var splits = this.session.$wrapData[docRow];\n if (splits) {\n if (splitIndex === undefined)\n splitIndex = this.getSplitIndex();\n if (splitIndex > 0 && splits.length) {\n this.wrapIndent = splits.indent;\n this.wrapOffset = this.wrapIndent * this.charWidths[bidiUtil.L];\n this.line = (splitIndex < splits.length) ?\n this.line.substring(splits[splitIndex - 1], splits[splitIndex]) :\n this.line.substring(splits[splits.length - 1]);\n }\n else {\n this.line = this.line.substring(0, splits[splitIndex]);\n }\n if (splitIndex == splits.length) {\n this.line += (this.showInvisibles) ? endOfLine : bidiUtil.DOT;\n }\n }\n }\n else {\n this.line += this.showInvisibles ? endOfLine : bidiUtil.DOT;\n }\n var session = this.session, shift = 0, size;\n this.line = this.line.replace(/\\t|[\\u1100-\\u2029, \\u202F-\\uFFE6]/g, function (ch, i) {\n if (ch === '\\t' || session.isFullWidth(ch.charCodeAt(0))) {\n size = (ch === '\\t') ? session.getScreenTabSize(i + shift) : 2;\n shift += size - 1;\n return lang.stringRepeat(bidiUtil.DOT, size);\n }\n return ch;\n });\n if (this.isRtlDir) {\n this.fontMetrics.$main.textContent = (this.line.charAt(this.line.length - 1) == bidiUtil.DOT) ? this.line.substr(0, this.line.length - 1) : this.line;\n this.rtlLineOffset = this.contentWidth - this.fontMetrics.$main.getBoundingClientRect().width;\n }\n };\n BidiHandler.prototype.updateBidiMap = function () {\n var textCharTypes = [];\n if (bidiUtil.hasBidiCharacters(this.line, textCharTypes) || this.isRtlDir) {\n this.bidiMap = bidiUtil.doBidiReorder(this.line, textCharTypes, this.isRtlDir);\n }\n else {\n this.bidiMap = {};\n }\n };\n BidiHandler.prototype.markAsDirty = function () {\n this.currentRow = null;\n };\n BidiHandler.prototype.updateCharacterWidths = function (fontMetrics) {\n if (this.characterWidth === fontMetrics.$characterSize.width)\n return;\n this.fontMetrics = fontMetrics;\n var characterWidth = this.characterWidth = fontMetrics.$characterSize.width;\n var bidiCharWidth = fontMetrics.$measureCharWidth(\"\\u05d4\");\n this.charWidths[bidiUtil.L] = this.charWidths[bidiUtil.EN] = this.charWidths[bidiUtil.ON_R] = characterWidth;\n this.charWidths[bidiUtil.R] = this.charWidths[bidiUtil.AN] = bidiCharWidth;\n this.charWidths[bidiUtil.R_H] = bidiCharWidth * 0.45;\n this.charWidths[bidiUtil.B] = this.charWidths[bidiUtil.RLE] = 0;\n this.currentRow = null;\n };\n BidiHandler.prototype.setShowInvisibles = function (showInvisibles) {\n this.showInvisibles = showInvisibles;\n this.currentRow = null;\n };\n BidiHandler.prototype.setEolChar = function (eolChar) {\n this.EOL = eolChar;\n };\n BidiHandler.prototype.setContentWidth = function (width) {\n this.contentWidth = width;\n };\n BidiHandler.prototype.isRtlLine = function (row) {\n if (this.$isRtl)\n return true;\n if (row != undefined)\n return (this.session.getLine(row).charAt(0) == this.RLE);\n else\n return this.isRtlDir;\n };\n BidiHandler.prototype.setRtlDirection = function (editor, isRtlDir) {\n var cursor = editor.getCursorPosition();\n for (var row = editor.selection.getSelectionAnchor().row; row <= cursor.row; row++) {\n if (!isRtlDir && editor.session.getLine(row).charAt(0) === editor.session.$bidiHandler.RLE)\n editor.session.doc.removeInLine(row, 0, 1);\n else if (isRtlDir && editor.session.getLine(row).charAt(0) !== editor.session.$bidiHandler.RLE)\n editor.session.doc.insert({ column: 0, row: row }, editor.session.$bidiHandler.RLE);\n }\n };\n BidiHandler.prototype.getPosLeft = function (col) {\n col -= this.wrapIndent;\n var leftBoundary = (this.line.charAt(0) === this.RLE) ? 1 : 0;\n var logicalIdx = (col > leftBoundary) ? (this.session.getOverwrite() ? col : col - 1) : leftBoundary;\n var visualIdx = bidiUtil.getVisualFromLogicalIdx(logicalIdx, this.bidiMap), levels = this.bidiMap.bidiLevels, left = 0;\n if (!this.session.getOverwrite() && col <= leftBoundary && levels[visualIdx] % 2 !== 0)\n visualIdx++;\n for (var i = 0; i < visualIdx; i++) {\n left += this.charWidths[levels[i]];\n }\n if (!this.session.getOverwrite() && (col > leftBoundary) && (levels[visualIdx] % 2 === 0))\n left += this.charWidths[levels[visualIdx]];\n if (this.wrapIndent)\n left += this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n if (this.isRtlDir)\n left += this.rtlLineOffset;\n return left;\n };\n BidiHandler.prototype.getSelections = function (startCol, endCol) {\n var map = this.bidiMap, levels = map.bidiLevels, level, selections = [], offset = 0, selColMin = Math.min(startCol, endCol) - this.wrapIndent, selColMax = Math.max(startCol, endCol) - this.wrapIndent, isSelected = false, isSelectedPrev = false, selectionStart = 0;\n if (this.wrapIndent)\n offset += this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n for (var logIdx, visIdx = 0; visIdx < levels.length; visIdx++) {\n logIdx = map.logicalFromVisual[visIdx];\n level = levels[visIdx];\n isSelected = (logIdx >= selColMin) && (logIdx < selColMax);\n if (isSelected && !isSelectedPrev) {\n selectionStart = offset;\n }\n else if (!isSelected && isSelectedPrev) {\n selections.push({ left: selectionStart, width: offset - selectionStart });\n }\n offset += this.charWidths[level];\n isSelectedPrev = isSelected;\n }\n if (isSelected && (visIdx === levels.length)) {\n selections.push({ left: selectionStart, width: offset - selectionStart });\n }\n if (this.isRtlDir) {\n for (var i = 0; i < selections.length; i++) {\n selections[i].left += this.rtlLineOffset;\n }\n }\n return selections;\n };\n BidiHandler.prototype.offsetToCol = function (posX) {\n if (this.isRtlDir)\n posX -= this.rtlLineOffset;\n var logicalIdx = 0, posX = Math.max(posX, 0), offset = 0, visualIdx = 0, levels = this.bidiMap.bidiLevels, charWidth = this.charWidths[levels[visualIdx]];\n if (this.wrapIndent)\n posX -= this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n while (posX > offset + charWidth / 2) {\n offset += charWidth;\n if (visualIdx === levels.length - 1) {\n charWidth = 0;\n break;\n }\n charWidth = this.charWidths[levels[++visualIdx]];\n }\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && (levels[visualIdx] % 2 === 0)) {\n if (posX < offset)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n }\n else if (visualIdx > 0 && (levels[visualIdx - 1] % 2 === 0) && (levels[visualIdx] % 2 !== 0)) {\n logicalIdx = 1 + ((posX > offset) ? this.bidiMap.logicalFromVisual[visualIdx]\n : this.bidiMap.logicalFromVisual[visualIdx - 1]);\n }\n else if ((this.isRtlDir && visualIdx === levels.length - 1 && charWidth === 0 && (levels[visualIdx - 1] % 2 === 0))\n || (!this.isRtlDir && visualIdx === 0 && (levels[visualIdx] % 2 !== 0))) {\n logicalIdx = 1 + this.bidiMap.logicalFromVisual[visualIdx];\n }\n else {\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && charWidth !== 0)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n }\n if (logicalIdx === 0 && this.isRtlDir)\n logicalIdx++;\n return (logicalIdx + this.wrapIndent);\n };\n return BidiHandler;\n}());\nexports.BidiHandler = BidiHandler;\n\n});\n\nace.define(\"ace/selection\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar lang = require(\"./lib/lang\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Selection = /** @class */ (function () {\n function Selection(session) {\n this.session = session;\n this.doc = session.getDocument();\n this.clearSelection();\n this.cursor = this.lead = this.doc.createAnchor(0, 0);\n this.anchor = this.doc.createAnchor(0, 0);\n this.$silent = false;\n var self = this;\n this.cursor.on(\"change\", function (e) {\n self.$cursorChanged = true;\n if (!self.$silent)\n self._emit(\"changeCursor\");\n if (!self.$isEmpty && !self.$silent)\n self._emit(\"changeSelection\");\n if (!self.$keepDesiredColumnOnChange && e.old.column != e.value.column)\n self.$desiredColumn = null;\n });\n this.anchor.on(\"change\", function () {\n self.$anchorChanged = true;\n if (!self.$isEmpty && !self.$silent)\n self._emit(\"changeSelection\");\n });\n }\n Selection.prototype.isEmpty = function () {\n return this.$isEmpty || (this.anchor.row == this.lead.row &&\n this.anchor.column == this.lead.column);\n };\n Selection.prototype.isMultiLine = function () {\n return !this.$isEmpty && this.anchor.row != this.cursor.row;\n };\n Selection.prototype.getCursor = function () {\n return this.lead.getPosition();\n };\n Selection.prototype.setAnchor = function (row, column) {\n this.$isEmpty = false;\n this.anchor.setPosition(row, column);\n };\n Selection.prototype.getAnchor = function () {\n if (this.$isEmpty)\n return this.getSelectionLead();\n return this.anchor.getPosition();\n };\n Selection.prototype.getSelectionLead = function () {\n return this.lead.getPosition();\n };\n Selection.prototype.isBackwards = function () {\n var anchor = this.anchor;\n var lead = this.lead;\n return (anchor.row > lead.row || (anchor.row == lead.row && anchor.column > lead.column));\n };\n Selection.prototype.getRange = function () {\n var anchor = this.anchor;\n var lead = this.lead;\n if (this.$isEmpty)\n return Range.fromPoints(lead, lead);\n return this.isBackwards()\n ? Range.fromPoints(lead, anchor)\n : Range.fromPoints(anchor, lead);\n };\n Selection.prototype.clearSelection = function () {\n if (!this.$isEmpty) {\n this.$isEmpty = true;\n this._emit(\"changeSelection\");\n }\n };\n Selection.prototype.selectAll = function () {\n this.$setSelection(0, 0, Number.MAX_VALUE, Number.MAX_VALUE);\n };\n Selection.prototype.setRange = function (range, reverse) {\n var start = reverse ? range.end : range.start;\n var end = reverse ? range.start : range.end;\n this.$setSelection(start.row, start.column, end.row, end.column);\n };\n Selection.prototype.$setSelection = function (anchorRow, anchorColumn, cursorRow, cursorColumn) {\n if (this.$silent)\n return;\n var wasEmpty = this.$isEmpty;\n var wasMultiselect = this.inMultiSelectMode;\n this.$silent = true;\n this.$cursorChanged = this.$anchorChanged = false;\n this.anchor.setPosition(anchorRow, anchorColumn);\n this.cursor.setPosition(cursorRow, cursorColumn);\n this.$isEmpty = !Range.comparePoints(this.anchor, this.cursor);\n this.$silent = false;\n if (this.$cursorChanged)\n this._emit(\"changeCursor\");\n if (this.$cursorChanged || this.$anchorChanged || wasEmpty != this.$isEmpty || wasMultiselect)\n this._emit(\"changeSelection\");\n };\n Selection.prototype.$moveSelection = function (mover) {\n var lead = this.lead;\n if (this.$isEmpty)\n this.setSelectionAnchor(lead.row, lead.column);\n mover.call(this);\n };\n Selection.prototype.selectTo = function (row, column) {\n this.$moveSelection(function () {\n this.moveCursorTo(row, column);\n });\n };\n Selection.prototype.selectToPosition = function (pos) {\n this.$moveSelection(function () {\n this.moveCursorToPosition(pos);\n });\n };\n Selection.prototype.moveTo = function (row, column) {\n this.clearSelection();\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveToPosition = function (pos) {\n this.clearSelection();\n this.moveCursorToPosition(pos);\n };\n Selection.prototype.selectUp = function () {\n this.$moveSelection(this.moveCursorUp);\n };\n Selection.prototype.selectDown = function () {\n this.$moveSelection(this.moveCursorDown);\n };\n Selection.prototype.selectRight = function () {\n this.$moveSelection(this.moveCursorRight);\n };\n Selection.prototype.selectLeft = function () {\n this.$moveSelection(this.moveCursorLeft);\n };\n Selection.prototype.selectLineStart = function () {\n this.$moveSelection(this.moveCursorLineStart);\n };\n Selection.prototype.selectLineEnd = function () {\n this.$moveSelection(this.moveCursorLineEnd);\n };\n Selection.prototype.selectFileEnd = function () {\n this.$moveSelection(this.moveCursorFileEnd);\n };\n Selection.prototype.selectFileStart = function () {\n this.$moveSelection(this.moveCursorFileStart);\n };\n Selection.prototype.selectWordRight = function () {\n this.$moveSelection(this.moveCursorWordRight);\n };\n Selection.prototype.selectWordLeft = function () {\n this.$moveSelection(this.moveCursorWordLeft);\n };\n Selection.prototype.getWordRange = function (row, column) {\n if (typeof column == \"undefined\") {\n var cursor = row || this.lead;\n row = cursor.row;\n column = cursor.column;\n }\n return this.session.getWordRange(row, column);\n };\n Selection.prototype.selectWord = function () {\n this.setSelectionRange(this.getWordRange());\n };\n Selection.prototype.selectAWord = function () {\n var cursor = this.getCursor();\n var range = this.session.getAWordRange(cursor.row, cursor.column);\n this.setSelectionRange(range);\n };\n Selection.prototype.getLineRange = function (row, excludeLastChar) {\n var rowStart = typeof row == \"number\" ? row : this.lead.row;\n var rowEnd;\n var foldLine = this.session.getFoldLine(rowStart);\n if (foldLine) {\n rowStart = foldLine.start.row;\n rowEnd = foldLine.end.row;\n }\n else {\n rowEnd = rowStart;\n }\n if (excludeLastChar === true)\n return new Range(rowStart, 0, rowEnd, this.session.getLine(rowEnd).length);\n else\n return new Range(rowStart, 0, rowEnd + 1, 0);\n };\n Selection.prototype.selectLine = function () {\n this.setSelectionRange(this.getLineRange());\n };\n Selection.prototype.moveCursorUp = function () {\n this.moveCursorBy(-1, 0);\n };\n Selection.prototype.moveCursorDown = function () {\n this.moveCursorBy(1, 0);\n };\n Selection.prototype.wouldMoveIntoSoftTab = function (cursor, tabSize, direction) {\n var start = cursor.column;\n var end = cursor.column + tabSize;\n if (direction < 0) {\n start = cursor.column - tabSize;\n end = cursor.column;\n }\n return this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(start, end).split(\" \").length - 1 == tabSize;\n };\n Selection.prototype.moveCursorLeft = function () {\n var cursor = this.lead.getPosition(), fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n }\n else if (cursor.column === 0) {\n if (cursor.row > 0) {\n this.moveCursorTo(cursor.row - 1, this.doc.getLine(cursor.row - 1).length);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, -1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, -tabSize);\n }\n else {\n this.moveCursorBy(0, -1);\n }\n }\n };\n Selection.prototype.moveCursorRight = function () {\n var cursor = this.lead.getPosition(), fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, 1)) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n }\n else if (this.lead.column == this.doc.getLine(this.lead.row).length) {\n if (this.lead.row < this.doc.getLength() - 1) {\n this.moveCursorTo(this.lead.row + 1, 0);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n var cursor = this.lead;\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, 1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, tabSize);\n }\n else {\n this.moveCursorBy(0, 1);\n }\n }\n };\n Selection.prototype.moveCursorLineStart = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var screenRow = this.session.documentToScreenRow(row, column);\n var firstColumnPosition = this.session.screenToDocumentPosition(screenRow, 0);\n var beforeCursor = this.session.getDisplayLine(row, null, firstColumnPosition.row, firstColumnPosition.column);\n var leadingSpace = beforeCursor.match(/^\\s*/);\n if (leadingSpace[0].length != column && !this.session.$useEmacsStyleLineStart)\n firstColumnPosition.column += leadingSpace[0].length;\n this.moveCursorToPosition(firstColumnPosition);\n };\n Selection.prototype.moveCursorLineEnd = function () {\n var lead = this.lead;\n var lineEnd = this.session.getDocumentLastRowColumnPosition(lead.row, lead.column);\n if (this.lead.column == lineEnd.column) {\n var line = this.session.getLine(lineEnd.row);\n if (lineEnd.column == line.length) {\n var textEnd = line.search(/\\s+$/);\n if (textEnd > 0)\n lineEnd.column = textEnd;\n }\n }\n this.moveCursorTo(lineEnd.row, lineEnd.column);\n };\n Selection.prototype.moveCursorFileEnd = function () {\n var row = this.doc.getLength() - 1;\n var column = this.doc.getLine(row).length;\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveCursorFileStart = function () {\n this.moveCursorTo(0, 0);\n };\n Selection.prototype.moveCursorLongWordRight = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n return;\n }\n if (this.session.nonTokenRe.exec(rightOfCursor)) {\n column += this.session.nonTokenRe.lastIndex;\n this.session.nonTokenRe.lastIndex = 0;\n rightOfCursor = line.substring(column);\n }\n if (column >= line.length) {\n this.moveCursorTo(row, line.length);\n this.moveCursorRight();\n if (row < this.doc.getLength() - 1)\n this.moveCursorWordRight();\n return;\n }\n if (this.session.tokenRe.exec(rightOfCursor)) {\n column += this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveCursorLongWordLeft = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n return;\n }\n var str = this.session.getFoldStringAt(row, column, -1);\n if (str == null) {\n str = this.doc.getLine(row).substring(0, column);\n }\n var leftOfCursor = lang.stringReverse(str);\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n if (this.session.nonTokenRe.exec(leftOfCursor)) {\n column -= this.session.nonTokenRe.lastIndex;\n leftOfCursor = leftOfCursor.slice(this.session.nonTokenRe.lastIndex);\n this.session.nonTokenRe.lastIndex = 0;\n }\n if (column <= 0) {\n this.moveCursorTo(row, 0);\n this.moveCursorLeft();\n if (row > 0)\n this.moveCursorWordLeft();\n return;\n }\n if (this.session.tokenRe.exec(leftOfCursor)) {\n column -= this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n this.moveCursorTo(row, column);\n };\n Selection.prototype.$shortWordEndIndex = function (rightOfCursor) {\n var index = 0, ch;\n var whitespaceRe = /\\s/;\n var tokenRe = this.session.tokenRe;\n tokenRe.lastIndex = 0;\n if (this.session.tokenRe.exec(rightOfCursor)) {\n index = this.session.tokenRe.lastIndex;\n }\n else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index++;\n if (index < 1) {\n tokenRe.lastIndex = 0;\n while ((ch = rightOfCursor[index]) && !tokenRe.test(ch)) {\n tokenRe.lastIndex = 0;\n index++;\n if (whitespaceRe.test(ch)) {\n if (index > 2) {\n index--;\n break;\n }\n else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index++;\n if (index > 2)\n break;\n }\n }\n }\n }\n }\n tokenRe.lastIndex = 0;\n return index;\n };\n Selection.prototype.moveCursorShortWordRight = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold)\n return this.moveCursorTo(fold.end.row, fold.end.column);\n if (column == line.length) {\n var l = this.doc.getLength();\n do {\n row++;\n rightOfCursor = this.doc.getLine(row);\n } while (row < l && /^\\s*$/.test(rightOfCursor));\n if (!/^\\s+/.test(rightOfCursor))\n rightOfCursor = \"\";\n column = 0;\n }\n var index = this.$shortWordEndIndex(rightOfCursor);\n this.moveCursorTo(row, column + index);\n };\n Selection.prototype.moveCursorShortWordLeft = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1))\n return this.moveCursorTo(fold.start.row, fold.start.column);\n var line = this.session.getLine(row).substring(0, column);\n if (column === 0) {\n do {\n row--;\n line = this.doc.getLine(row);\n } while (row > 0 && /^\\s*$/.test(line));\n column = line.length;\n if (!/\\s+$/.test(line))\n line = \"\";\n }\n var leftOfCursor = lang.stringReverse(line);\n var index = this.$shortWordEndIndex(leftOfCursor);\n return this.moveCursorTo(row, column - index);\n };\n Selection.prototype.moveCursorWordRight = function () {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordRight();\n else\n this.moveCursorShortWordRight();\n };\n Selection.prototype.moveCursorWordLeft = function () {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordLeft();\n else\n this.moveCursorShortWordLeft();\n };\n Selection.prototype.moveCursorBy = function (rows, chars) {\n var screenPos = this.session.documentToScreenPosition(this.lead.row, this.lead.column);\n var offsetX;\n if (chars === 0) {\n if (rows !== 0) {\n if (this.session.$bidiHandler.isBidiRow(screenPos.row, this.lead.row)) {\n offsetX = this.session.$bidiHandler.getPosLeft(screenPos.column);\n screenPos.column = Math.round(offsetX / this.session.$bidiHandler.charWidths[0]);\n }\n else {\n offsetX = screenPos.column * this.session.$bidiHandler.charWidths[0];\n }\n }\n if (this.$desiredColumn)\n screenPos.column = this.$desiredColumn;\n else\n this.$desiredColumn = screenPos.column;\n }\n if (rows != 0 && this.session.lineWidgets && this.session.lineWidgets[this.lead.row]) {\n var widget = this.session.lineWidgets[this.lead.row];\n if (rows < 0)\n rows -= widget.rowsAbove || 0;\n else if (rows > 0)\n rows += widget.rowCount - (widget.rowsAbove || 0);\n }\n var docPos = this.session.screenToDocumentPosition(screenPos.row + rows, screenPos.column, offsetX);\n if (rows !== 0 && chars === 0 && docPos.row === this.lead.row && docPos.column === this.lead.column) {\n }\n this.moveCursorTo(docPos.row, docPos.column + chars, chars === 0);\n };\n Selection.prototype.moveCursorToPosition = function (position) {\n this.moveCursorTo(position.row, position.column);\n };\n Selection.prototype.moveCursorTo = function (row, column, keepDesiredColumn) {\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n row = fold.start.row;\n column = fold.start.column;\n }\n this.$keepDesiredColumnOnChange = true;\n var line = this.session.getLine(row);\n if (/[\\uDC00-\\uDFFF]/.test(line.charAt(column)) && line.charAt(column - 1)) {\n if (this.lead.row == row && this.lead.column == column + 1)\n column = column - 1;\n else\n column = column + 1;\n }\n this.lead.setPosition(row, column);\n this.$keepDesiredColumnOnChange = false;\n if (!keepDesiredColumn)\n this.$desiredColumn = null;\n };\n Selection.prototype.moveCursorToScreen = function (row, column, keepDesiredColumn) {\n var pos = this.session.screenToDocumentPosition(row, column);\n this.moveCursorTo(pos.row, pos.column, keepDesiredColumn);\n };\n Selection.prototype.detach = function () {\n this.lead.detach();\n this.anchor.detach();\n };\n Selection.prototype.fromOrientedRange = function (range) {\n this.setSelectionRange(range, range.cursor == range.start);\n this.$desiredColumn = range.desiredColumn || this.$desiredColumn;\n };\n Selection.prototype.toOrientedRange = function (range) {\n var r = this.getRange();\n if (range) {\n range.start.column = r.start.column;\n range.start.row = r.start.row;\n range.end.column = r.end.column;\n range.end.row = r.end.row;\n }\n else {\n range = r;\n }\n range.cursor = this.isBackwards() ? range.start : range.end;\n range.desiredColumn = this.$desiredColumn;\n return range;\n };\n Selection.prototype.getRangeOfMovements = function (func) {\n var start = this.getCursor();\n try {\n func(this);\n var end = this.getCursor();\n return Range.fromPoints(start, end);\n }\n catch (e) {\n return Range.fromPoints(start, start);\n }\n finally {\n this.moveCursorToPosition(start);\n }\n };\n Selection.prototype.toJSON = function () {\n if (this.rangeCount) {\n var data = this.ranges.map(function (r) {\n var r1 = r.clone();\n r1.isBackwards = r.cursor == r.start;\n return r1;\n });\n }\n else {\n var data = this.getRange();\n data.isBackwards = this.isBackwards();\n }\n return data;\n };\n Selection.prototype.fromJSON = function (data) {\n if (data.start == undefined) {\n if (this.rangeList && data.length > 1) {\n this.toSingleRange(data[0]);\n for (var i = data.length; i--;) {\n var r = Range.fromPoints(data[i].start, data[i].end);\n if (data[i].isBackwards)\n r.cursor = r.start;\n this.addRange(r, true);\n }\n return;\n }\n else {\n data = data[0];\n }\n }\n if (this.rangeList)\n this.toSingleRange(data);\n this.setSelectionRange(data, data.isBackwards);\n };\n Selection.prototype.isEqual = function (data) {\n if ((data.length || this.rangeCount) && data.length != this.rangeCount)\n return false;\n if (!data.length || !this.ranges)\n return this.getRange().isEqual(data);\n for (var i = this.ranges.length; i--;) {\n if (!this.ranges[i].isEqual(data[i]))\n return false;\n }\n return true;\n };\n return Selection;\n}());\nSelection.prototype.setSelectionAnchor = Selection.prototype.setAnchor;\nSelection.prototype.getSelectionAnchor = Selection.prototype.getAnchor;\nSelection.prototype.setSelectionRange = Selection.prototype.setRange;\noop.implement(Selection.prototype, EventEmitter);\nexports.Selection = Selection;\n\n});\n\nace.define(\"ace/tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/report_error\"], function(require, exports, module){\"use strict\";\nvar reportError = require(\"./lib/report_error\").reportError;\nvar MAX_TOKEN_COUNT = 2000;\nvar Tokenizer = /** @class */ (function () {\n function Tokenizer(rules) {\n this.states = rules;\n this.regExps = {};\n this.matchMappings = {};\n for (var key in this.states) {\n var state = this.states[key];\n var ruleRegExps = [];\n var matchTotal = 0;\n var mapping = this.matchMappings[key] = { defaultToken: \"text\" };\n var flag = \"g\";\n var splitterRurles = [];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.defaultToken)\n mapping.defaultToken = rule.defaultToken;\n if (rule.caseInsensitive && flag.indexOf(\"i\") === -1)\n flag += \"i\";\n if (rule.unicode && flag.indexOf(\"u\") === -1)\n flag += \"u\";\n if (rule.regex == null)\n continue;\n if (rule.regex instanceof RegExp)\n rule.regex = rule.regex.toString().slice(1, -1);\n var adjustedregex = rule.regex;\n var matchcount = new RegExp(\"(?:(\" + adjustedregex + \")|(.))\").exec(\"a\").length - 2;\n if (Array.isArray(rule.token)) {\n if (rule.token.length == 1 || matchcount == 1) {\n rule.token = rule.token[0];\n }\n else if (matchcount - 1 != rule.token.length) {\n this.reportError(\"number of classes and regexp groups doesn't match\", {\n rule: rule,\n groupCount: matchcount - 1\n });\n rule.token = rule.token[0];\n }\n else {\n rule.tokenArray = rule.token;\n rule.token = null;\n rule.onMatch = this.$arrayTokens;\n }\n }\n else if (typeof rule.token == \"function\" && !rule.onMatch) {\n if (matchcount > 1)\n rule.onMatch = this.$applyToken;\n else\n rule.onMatch = rule.token;\n }\n if (matchcount > 1) {\n if (/\\\\\\d/.test(rule.regex)) {\n adjustedregex = rule.regex.replace(/\\\\([0-9]+)/g, function (match, digit) {\n return \"\\\\\" + (parseInt(digit, 10) + matchTotal + 1);\n });\n }\n else {\n matchcount = 1;\n adjustedregex = this.removeCapturingGroups(rule.regex);\n }\n if (!rule.splitRegex && typeof rule.token != \"string\")\n splitterRurles.push(rule); // flag will be known only at the very end\n }\n mapping[matchTotal] = i;\n matchTotal += matchcount;\n ruleRegExps.push(adjustedregex);\n if (!rule.onMatch)\n rule.onMatch = null;\n }\n if (!ruleRegExps.length) {\n mapping[0] = 0;\n ruleRegExps.push(\"$\");\n }\n splitterRurles.forEach(function (rule) {\n rule.splitRegex = this.createSplitterRegexp(rule.regex, flag);\n }, this);\n this.regExps[key] = new RegExp(\"(\" + ruleRegExps.join(\")|(\") + \")|($)\", flag);\n }\n }\n Tokenizer.prototype.$setMaxTokenCount = function (m) {\n MAX_TOKEN_COUNT = m | 0;\n };\n Tokenizer.prototype.$applyToken = function (str) {\n var values = this.splitRegex.exec(str).slice(1);\n var types = this.token.apply(this, values);\n if (typeof types === \"string\")\n return [{ type: types, value: str }];\n var tokens = [];\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i]\n };\n }\n return tokens;\n };\n Tokenizer.prototype.$arrayTokens = function (str) {\n if (!str)\n return [];\n var values = this.splitRegex.exec(str);\n if (!values)\n return \"text\";\n var tokens = [];\n var types = this.tokenArray;\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i + 1])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i + 1]\n };\n }\n return tokens;\n };\n Tokenizer.prototype.removeCapturingGroups = function (src) {\n var r = src.replace(/\\\\.|\\[(?:\\\\.|[^\\\\\\]])*|\\(\\?[:=!<]|(\\()/g, function (x, y) { return y ? \"(?:\" : x; });\n return r;\n };\n Tokenizer.prototype.createSplitterRegexp = function (src, flag) {\n if (src.indexOf(\"(?=\") != -1) {\n var stack = 0;\n var inChClass = false;\n var lastCapture = {};\n src.replace(/(\\\\.)|(\\((?:\\?[=!])?)|(\\))|([\\[\\]])/g, function (m, esc, parenOpen, parenClose, square, index) {\n if (inChClass) {\n inChClass = square != \"]\";\n }\n else if (square) {\n inChClass = true;\n }\n else if (parenClose) {\n if (stack == lastCapture.stack) {\n lastCapture.end = index + 1;\n lastCapture.stack = -1;\n }\n stack--;\n }\n else if (parenOpen) {\n stack++;\n if (parenOpen.length != 1) {\n lastCapture.stack = stack;\n lastCapture.start = index;\n }\n }\n return m;\n });\n if (lastCapture.end != null && /^\\)*$/.test(src.substr(lastCapture.end)))\n src = src.substring(0, lastCapture.start) + src.substr(lastCapture.end);\n }\n if (src.charAt(0) != \"^\")\n src = \"^\" + src;\n if (src.charAt(src.length - 1) != \"$\")\n src += \"$\";\n return new RegExp(src, (flag || \"\").replace(\"g\", \"\"));\n };\n Tokenizer.prototype.getLineTokens = function (line, startState) {\n if (startState && typeof startState != \"string\") {\n var stack = startState.slice(0);\n startState = stack[0];\n if (startState === \"#tmp\") {\n stack.shift();\n startState = stack.shift();\n }\n }\n else\n var stack = [];\n var currentState = startState || \"start\";\n var state = this.states[currentState];\n if (!state) {\n currentState = \"start\";\n state = this.states[currentState];\n }\n var mapping = this.matchMappings[currentState];\n var re = this.regExps[currentState];\n re.lastIndex = 0;\n var match, tokens = [];\n var lastIndex = 0;\n var matchAttempts = 0;\n var token = { type: null, value: \"\" };\n while (match = re.exec(line)) {\n var type = mapping.defaultToken;\n var rule = null;\n var value = match[0];\n var index = re.lastIndex;\n if (index - value.length > lastIndex) {\n var skipped = line.substring(lastIndex, index - value.length);\n if (token.type == type) {\n token.value += skipped;\n }\n else {\n if (token.type)\n tokens.push(token);\n token = { type: type, value: skipped };\n }\n }\n for (var i = 0; i < match.length - 2; i++) {\n if (match[i + 1] === undefined)\n continue;\n rule = state[mapping[i]];\n if (rule.onMatch)\n type = rule.onMatch(value, currentState, stack, line);\n else\n type = rule.token;\n if (rule.next) {\n if (typeof rule.next == \"string\") {\n currentState = rule.next;\n }\n else {\n currentState = rule.next(currentState, stack);\n }\n state = this.states[currentState];\n if (!state) {\n this.reportError(\"state doesn't exist\", currentState);\n currentState = \"start\";\n state = this.states[currentState];\n }\n mapping = this.matchMappings[currentState];\n lastIndex = index;\n re = this.regExps[currentState];\n re.lastIndex = index;\n }\n if (rule.consumeLineEnd)\n lastIndex = index;\n break;\n }\n if (value) {\n if (typeof type === \"string\") {\n if ((!rule || rule.merge !== false) && token.type === type) {\n token.value += value;\n }\n else {\n if (token.type)\n tokens.push(token);\n token = { type: type, value: value };\n }\n }\n else if (type) {\n if (token.type)\n tokens.push(token);\n token = { type: null, value: \"\" };\n for (var i = 0; i < type.length; i++)\n tokens.push(type[i]);\n }\n }\n if (lastIndex == line.length)\n break;\n lastIndex = index;\n if (matchAttempts++ > MAX_TOKEN_COUNT) {\n if (matchAttempts > 2 * line.length) {\n this.reportError(\"infinite loop with in ace tokenizer\", {\n startState: startState,\n line: line\n });\n }\n while (lastIndex < line.length) {\n if (token.type)\n tokens.push(token);\n token = {\n value: line.substring(lastIndex, lastIndex += 500),\n type: \"overflow\"\n };\n }\n currentState = \"start\";\n stack = [];\n break;\n }\n }\n if (token.type)\n tokens.push(token);\n if (stack.length > 1) {\n if (stack[0] !== currentState)\n stack.unshift(\"#tmp\", currentState);\n }\n return {\n tokens: tokens,\n state: stack.length ? stack : currentState\n };\n };\n return Tokenizer;\n}());\nTokenizer.prototype.reportError = reportError;\nexports.Tokenizer = Tokenizer;\n\n});\n\nace.define(\"ace/mode/text_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/deep_copy\"], function(require, exports, module){\"use strict\";\nvar deepCopy = require(\"../lib/deep_copy\").deepCopy;\nvar TextHighlightRules = function () {\n this.$rules = {\n \"start\": [{\n token: \"empty_line\",\n regex: '^$'\n }, {\n defaultToken: \"text\"\n }]\n };\n};\n(function () {\n this.addRules = function (rules, prefix) {\n if (!prefix) {\n for (var key in rules)\n this.$rules[key] = rules[key];\n return;\n }\n for (var key in rules) {\n var state = rules[key];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.next || rule.onMatch) {\n if (typeof rule.next == \"string\") {\n if (rule.next.indexOf(prefix) !== 0)\n rule.next = prefix + rule.next;\n }\n if (rule.nextState && rule.nextState.indexOf(prefix) !== 0)\n rule.nextState = prefix + rule.nextState;\n }\n }\n this.$rules[prefix + key] = state;\n }\n };\n this.getRules = function () {\n return this.$rules;\n };\n this.embedRules = function (HighlightRules, prefix, escapeRules, states, append) {\n var embedRules = typeof HighlightRules == \"function\"\n ? new HighlightRules().getRules()\n : HighlightRules;\n if (states) {\n for (var i = 0; i < states.length; i++)\n states[i] = prefix + states[i];\n }\n else {\n states = [];\n for (var key in embedRules)\n states.push(prefix + key);\n }\n this.addRules(embedRules, prefix);\n if (escapeRules) {\n var addRules = Array.prototype[append ? \"push\" : \"unshift\"];\n for (var i = 0; i < states.length; i++)\n addRules.apply(this.$rules[states[i]], deepCopy(escapeRules));\n }\n if (!this.$embeds)\n this.$embeds = [];\n this.$embeds.push(prefix);\n };\n this.getEmbeds = function () {\n return this.$embeds;\n };\n var pushState = function (currentState, stack) {\n if (currentState != \"start\" || stack.length)\n stack.unshift(this.nextState, currentState);\n return this.nextState;\n };\n var popState = function (currentState, stack) {\n stack.shift();\n return stack.shift() || \"start\";\n };\n this.normalizeRules = function () {\n var id = 0;\n var rules = this.$rules;\n function processState(key) {\n var state = rules[key];\n state.processed = true;\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n var toInsert = null;\n if (Array.isArray(rule)) {\n toInsert = rule;\n rule = {};\n }\n if (!rule.regex && rule.start) {\n rule.regex = rule.start;\n if (!rule.next)\n rule.next = [];\n rule.next.push({\n defaultToken: rule.token\n }, {\n token: rule.token + \".end\",\n regex: rule.end || rule.start,\n next: \"pop\"\n });\n rule.token = rule.token + \".start\";\n rule.push = true;\n }\n var next = rule.next || rule.push;\n if (next && Array.isArray(next)) {\n var stateName = rule.stateName;\n if (!stateName) {\n stateName = rule.token;\n if (typeof stateName != \"string\")\n stateName = stateName[0] || \"\";\n if (rules[stateName])\n stateName += id++;\n }\n rules[stateName] = next;\n rule.next = stateName;\n processState(stateName);\n }\n else if (next == \"pop\") {\n rule.next = popState;\n }\n if (rule.push) {\n rule.nextState = rule.next || rule.push;\n rule.next = pushState;\n delete rule.push;\n }\n if (rule.rules) {\n for (var r in rule.rules) {\n if (rules[r]) {\n if (rules[r].push)\n rules[r].push.apply(rules[r], rule.rules[r]);\n }\n else {\n rules[r] = rule.rules[r];\n }\n }\n }\n var includeName = typeof rule == \"string\" ? rule : rule.include;\n if (includeName) {\n if (includeName === \"$self\")\n includeName = \"start\";\n if (Array.isArray(includeName))\n toInsert = includeName.map(function (x) { return rules[x]; });\n else\n toInsert = rules[includeName];\n }\n if (toInsert) {\n var args = [i, 1].concat(toInsert);\n if (rule.noEscape)\n args = args.filter(function (x) { return !x.next; });\n state.splice.apply(state, args);\n i--;\n }\n if (rule.keywordMap) {\n rule.token = this.createKeywordMapper(rule.keywordMap, rule.defaultToken || \"text\", rule.caseInsensitive);\n delete rule.defaultToken;\n }\n }\n }\n Object.keys(rules).forEach(processState, this);\n };\n this.createKeywordMapper = function (map, defaultToken, ignoreCase, splitChar) {\n var keywords = Object.create(null);\n this.$keywordList = [];\n Object.keys(map).forEach(function (className) {\n var a = map[className];\n var list = a.split(splitChar || \"|\");\n for (var i = list.length; i--;) {\n var word = list[i];\n this.$keywordList.push(word);\n if (ignoreCase)\n word = word.toLowerCase();\n keywords[word] = className;\n }\n }, this);\n map = null;\n return ignoreCase\n ? function (value) { return keywords[value.toLowerCase()] || defaultToken; }\n : function (value) { return keywords[value] || defaultToken; };\n };\n this.getKeywords = function () {\n return this.$keywords;\n };\n}).call(TextHighlightRules.prototype);\nexports.TextHighlightRules = TextHighlightRules;\n\n});\n\nace.define(\"ace/mode/behaviour\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar Behaviour = function () {\n this.$behaviours = {};\n};\n(function () {\n this.add = function (name, action, callback) {\n switch (undefined) {\n case this.$behaviours:\n this.$behaviours = {};\n case this.$behaviours[name]:\n this.$behaviours[name] = {};\n }\n this.$behaviours[name][action] = callback;\n };\n this.addBehaviours = function (behaviours) {\n for (var key in behaviours) {\n for (var action in behaviours[key]) {\n this.add(key, action, behaviours[key][action]);\n }\n }\n };\n this.remove = function (name) {\n if (this.$behaviours && this.$behaviours[name]) {\n delete this.$behaviours[name];\n }\n };\n this.inherit = function (mode, filter) {\n if (typeof mode === \"function\") {\n var behaviours = new mode().getBehaviours(filter);\n }\n else {\n var behaviours = mode.getBehaviours(filter);\n }\n this.addBehaviours(behaviours);\n };\n this.getBehaviours = function (filter) {\n if (!filter) {\n return this.$behaviours;\n }\n else {\n var ret = {};\n for (var i = 0; i < filter.length; i++) {\n if (this.$behaviours[filter[i]]) {\n ret[filter[i]] = this.$behaviours[filter[i]];\n }\n }\n return ret;\n }\n };\n}).call(Behaviour.prototype);\nexports.Behaviour = Behaviour;\n\n});\n\nace.define(\"ace/token_iterator\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar TokenIterator = /** @class */ (function () {\n function TokenIterator(session, initialRow, initialColumn) {\n this.$session = session;\n this.$row = initialRow;\n this.$rowTokens = session.getTokens(initialRow);\n var token = session.getTokenAt(initialRow, initialColumn);\n this.$tokenIndex = token ? token.index : -1;\n }\n TokenIterator.prototype.stepBackward = function () {\n this.$tokenIndex -= 1;\n while (this.$tokenIndex < 0) {\n this.$row -= 1;\n if (this.$row < 0) {\n this.$row = 0;\n return null;\n }\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = this.$rowTokens.length - 1;\n }\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.stepForward = function () {\n this.$tokenIndex += 1;\n var rowCount;\n while (this.$tokenIndex >= this.$rowTokens.length) {\n this.$row += 1;\n if (!rowCount)\n rowCount = this.$session.getLength();\n if (this.$row >= rowCount) {\n this.$row = rowCount - 1;\n return null;\n }\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = 0;\n }\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.getCurrentToken = function () {\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.getCurrentTokenRow = function () {\n return this.$row;\n };\n TokenIterator.prototype.getCurrentTokenColumn = function () {\n var rowTokens = this.$rowTokens;\n var tokenIndex = this.$tokenIndex;\n var column = rowTokens[tokenIndex].start;\n if (column !== undefined)\n return column;\n column = 0;\n while (tokenIndex > 0) {\n tokenIndex -= 1;\n column += rowTokens[tokenIndex].value.length;\n }\n return column;\n };\n TokenIterator.prototype.getCurrentTokenPosition = function () {\n return { row: this.$row, column: this.getCurrentTokenColumn() };\n };\n TokenIterator.prototype.getCurrentTokenRange = function () {\n var token = this.$rowTokens[this.$tokenIndex];\n var column = this.getCurrentTokenColumn();\n return new Range(this.$row, column, this.$row, column + token.value.length);\n };\n return TokenIterator;\n}());\nexports.TokenIterator = TokenIterator;\n\n});\n\nace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\nvar SAFE_INSERT_IN_TOKENS = [\"text\", \"paren.rparen\", \"rparen\", \"paren\", \"punctuation.operator\"];\nvar SAFE_INSERT_BEFORE_TOKENS = [\"text\", \"paren.rparen\", \"rparen\", \"paren\", \"punctuation.operator\", \"comment\"];\nvar context;\nvar contextCache = {};\nvar defaultQuotes = { '\"': '\"', \"'\": \"'\" };\nvar initContext = function (editor) {\n var id = -1;\n if (editor.multiSelect) {\n id = editor.selection.index;\n if (contextCache.rangeCount != editor.multiSelect.rangeCount)\n contextCache = { rangeCount: editor.multiSelect.rangeCount };\n }\n if (contextCache[id])\n return context = contextCache[id];\n context = contextCache[id] = {\n autoInsertedBrackets: 0,\n autoInsertedRow: -1,\n autoInsertedLineEnd: \"\",\n maybeInsertedBrackets: 0,\n maybeInsertedRow: -1,\n maybeInsertedLineStart: \"\",\n maybeInsertedLineEnd: \"\"\n };\n};\nvar getWrapped = function (selection, selected, opening, closing) {\n var rowDiff = selection.end.row - selection.start.row;\n return {\n text: opening + selected + closing,\n selection: [\n 0,\n selection.start.column + 1,\n rowDiff,\n selection.end.column + (rowDiff ? 0 : 1)\n ]\n };\n};\nvar CstyleBehaviour = function (options) {\n options = options || {};\n this.add(\"braces\", \"insertion\", function (state, action, editor, session, text) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (text == '{') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"{\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '{', '}');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n if (/[\\]\\}\\)]/.test(line[cursor.column]) || editor.inMultiSelectMode || options.braces) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"}\");\n return {\n text: '{}',\n selection: [1, 1]\n };\n }\n else {\n CstyleBehaviour.recordMaybeInsert(editor, session, \"{\");\n return {\n text: '{',\n selection: [1, 1]\n };\n }\n }\n }\n else if (text == '}') {\n initContext(editor);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == '}') {\n var matching = session.$findOpeningBracket('}', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n else if (text == \"\\n\" || text == \"\\r\\n\") {\n initContext(editor);\n var closing = \"\";\n if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {\n closing = lang.stringRepeat(\"}\", context.maybeInsertedBrackets);\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === '}') {\n var openBracePos = session.findMatchingBracket({ row: cursor.row, column: cursor.column + 1 }, '}');\n if (!openBracePos)\n return null;\n var next_indent = this.$getIndent(session.getLine(openBracePos.row));\n }\n else if (closing) {\n var next_indent = this.$getIndent(line);\n }\n else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n return;\n }\n var indent = next_indent + session.getTabString();\n return {\n text: '\\n' + indent + '\\n' + next_indent + closing,\n selection: [1, indent.length, 1, indent.length]\n };\n }\n else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n });\n this.add(\"braces\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '{') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar == '}') {\n range.end.column++;\n return range;\n }\n else {\n context.maybeInsertedBrackets--;\n }\n }\n });\n this.add(\"parens\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '(') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '(', ')');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \")\");\n return {\n text: '()',\n selection: [1, 1]\n };\n }\n }\n else if (text == ')') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ')') {\n var matching = session.$findOpeningBracket(')', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"parens\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '(') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ')') {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"brackets\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '[') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '[', ']');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"]\");\n return {\n text: '[]',\n selection: [1, 1]\n };\n }\n }\n else if (text == ']') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ']') {\n var matching = session.$findOpeningBracket(']', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"brackets\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '[') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ']') {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n var quotes = session.$mode.$quotes || defaultQuotes;\n if (text.length == 1 && quotes[text]) {\n if (this.lineCommentStart && this.lineCommentStart.indexOf(text) != -1)\n return;\n initContext(editor);\n var quote = text;\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && (selected.length != 1 || !quotes[selected]) && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, quote, quote);\n }\n else if (!selected) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var leftChar = line.substring(cursor.column - 1, cursor.column);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n var token = session.getTokenAt(cursor.row, cursor.column);\n var rightToken = session.getTokenAt(cursor.row, cursor.column + 1);\n if (leftChar == \"\\\\\" && token && /escape/.test(token.type))\n return null;\n var stringBefore = token && /string|escape/.test(token.type);\n var stringAfter = !rightToken || /string|escape/.test(rightToken.type);\n var pair;\n if (rightChar == quote) {\n pair = stringBefore !== stringAfter;\n if (pair && /string\\.end/.test(rightToken.type))\n pair = false;\n }\n else {\n if (stringBefore && !stringAfter)\n return null; // wrap string with different quote\n if (stringBefore && stringAfter)\n return null; // do not pair quotes inside strings\n var wordRe = session.$mode.tokenRe;\n wordRe.lastIndex = 0;\n var isWordBefore = wordRe.test(leftChar);\n wordRe.lastIndex = 0;\n var isWordAfter = wordRe.test(rightChar);\n var pairQuotesAfter = session.$mode.$pairQuotesAfter;\n var shouldPairQuotes = pairQuotesAfter && pairQuotesAfter[quote] && pairQuotesAfter[quote].test(leftChar);\n if ((!shouldPairQuotes && isWordBefore) || isWordAfter)\n return null; // before or after alphanumeric\n if (rightChar && !/[\\s;,.})\\]\\\\]/.test(rightChar))\n return null; // there is rightChar and it isn't closing\n var charBefore = line[cursor.column - 2];\n if (leftChar == quote && (charBefore == quote || wordRe.test(charBefore)))\n return null;\n pair = true;\n }\n return {\n text: pair ? quote + quote : \"\",\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"string_dquotes\", \"deletion\", function (state, action, editor, session, range) {\n var quotes = session.$mode.$quotes || defaultQuotes;\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && quotes.hasOwnProperty(selected)) {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n if (options.closeDocComment !== false) {\n this.add(\"doc comment end\", \"insertion\", function (state, action, editor, session, text) {\n if (state === \"doc-start\" && (text === \"\\n\" || text === \"\\r\\n\") && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var nextLine = session.doc.getLine(cursor.row + 1);\n var indent = this.$getIndent(line);\n if (/\\s*\\*/.test(nextLine)) {\n if (/^\\s*\\*/.test(line)) {\n return {\n text: text + indent + \"* \",\n selection: [1, 3 + indent.length, 1, 3 + indent.length]\n };\n }\n else {\n return {\n text: text + indent + \" * \",\n selection: [1, 3 + indent.length, 1, 3 + indent.length]\n };\n }\n }\n if (/\\/\\*\\*/.test(line.substring(0, cursor.column))) {\n return {\n text: text + indent + \" * \" + text + \" \" + indent + \"*/\",\n selection: [1, 4 + indent.length, 1, 4 + indent.length]\n };\n }\n }\n });\n }\n};\nCstyleBehaviour.isSaneInsertion = function (editor, session) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n if (!this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS)) {\n if (/[)}\\]]/.test(editor.session.getLine(cursor.row)[cursor.column]))\n return true;\n var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);\n if (!this.$matchTokenType(iterator2.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS))\n return false;\n }\n iterator.stepForward();\n return iterator.getCurrentTokenRow() !== cursor.row ||\n this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_BEFORE_TOKENS);\n};\nCstyleBehaviour.$matchTokenType = function (token, types) {\n return types.indexOf(token.type || token) > -1;\n};\nCstyleBehaviour.recordAutoInsert = function (editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))\n context.autoInsertedBrackets = 0;\n context.autoInsertedRow = cursor.row;\n context.autoInsertedLineEnd = bracket + line.substr(cursor.column);\n context.autoInsertedBrackets++;\n};\nCstyleBehaviour.recordMaybeInsert = function (editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isMaybeInsertedClosing(cursor, line))\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = cursor.row;\n context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;\n context.maybeInsertedLineEnd = line.substr(cursor.column);\n context.maybeInsertedBrackets++;\n};\nCstyleBehaviour.isAutoInsertedClosing = function (cursor, line, bracket) {\n return context.autoInsertedBrackets > 0 &&\n cursor.row === context.autoInsertedRow &&\n bracket === context.autoInsertedLineEnd[0] &&\n line.substr(cursor.column) === context.autoInsertedLineEnd;\n};\nCstyleBehaviour.isMaybeInsertedClosing = function (cursor, line) {\n return context.maybeInsertedBrackets > 0 &&\n cursor.row === context.maybeInsertedRow &&\n line.substr(cursor.column) === context.maybeInsertedLineEnd &&\n line.substr(0, cursor.column) == context.maybeInsertedLineStart;\n};\nCstyleBehaviour.popAutoInsertedClosing = function () {\n context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);\n context.autoInsertedBrackets--;\n};\nCstyleBehaviour.clearMaybeInsertedClosing = function () {\n if (context) {\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = -1;\n }\n};\noop.inherits(CstyleBehaviour, Behaviour);\nexports.CstyleBehaviour = CstyleBehaviour;\n\n});\n\nace.define(\"ace/unicode\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar wordChars = [48, 9, 8, 25, 5, 0, 2, 25, 48, 0, 11, 0, 5, 0, 6, 22, 2, 30, 2, 457, 5, 11, 15, 4, 8, 0, 2, 0, 18, 116, 2, 1, 3, 3, 9, 0, 2, 2, 2, 0, 2, 19, 2, 82, 2, 138, 2, 4, 3, 155, 12, 37, 3, 0, 8, 38, 10, 44, 2, 0, 2, 1, 2, 1, 2, 0, 9, 26, 6, 2, 30, 10, 7, 61, 2, 9, 5, 101, 2, 7, 3, 9, 2, 18, 3, 0, 17, 58, 3, 100, 15, 53, 5, 0, 6, 45, 211, 57, 3, 18, 2, 5, 3, 11, 3, 9, 2, 1, 7, 6, 2, 2, 2, 7, 3, 1, 3, 21, 2, 6, 2, 0, 4, 3, 3, 8, 3, 1, 3, 3, 9, 0, 5, 1, 2, 4, 3, 11, 16, 2, 2, 5, 5, 1, 3, 21, 2, 6, 2, 1, 2, 1, 2, 1, 3, 0, 2, 4, 5, 1, 3, 2, 4, 0, 8, 3, 2, 0, 8, 15, 12, 2, 2, 8, 2, 2, 2, 21, 2, 6, 2, 1, 2, 4, 3, 9, 2, 2, 2, 2, 3, 0, 16, 3, 3, 9, 18, 2, 2, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 3, 8, 3, 1, 3, 2, 9, 1, 5, 1, 2, 4, 3, 9, 2, 0, 17, 1, 2, 5, 4, 2, 2, 3, 4, 1, 2, 0, 2, 1, 4, 1, 4, 2, 4, 11, 5, 4, 4, 2, 2, 3, 3, 0, 7, 0, 15, 9, 18, 2, 2, 7, 2, 2, 2, 22, 2, 9, 2, 4, 4, 7, 2, 2, 2, 3, 8, 1, 2, 1, 7, 3, 3, 9, 19, 1, 2, 7, 2, 2, 2, 22, 2, 9, 2, 4, 3, 8, 2, 2, 2, 3, 8, 1, 8, 0, 2, 3, 3, 9, 19, 1, 2, 7, 2, 2, 2, 22, 2, 15, 4, 7, 2, 2, 2, 3, 10, 0, 9, 3, 3, 9, 11, 5, 3, 1, 2, 17, 4, 23, 2, 8, 2, 0, 3, 6, 4, 0, 5, 5, 2, 0, 2, 7, 19, 1, 14, 57, 6, 14, 2, 9, 40, 1, 2, 0, 3, 1, 2, 0, 3, 0, 7, 3, 2, 6, 2, 2, 2, 0, 2, 0, 3, 1, 2, 12, 2, 2, 3, 4, 2, 0, 2, 5, 3, 9, 3, 1, 35, 0, 24, 1, 7, 9, 12, 0, 2, 0, 2, 0, 5, 9, 2, 35, 5, 19, 2, 5, 5, 7, 2, 35, 10, 0, 58, 73, 7, 77, 3, 37, 11, 42, 2, 0, 4, 328, 2, 3, 3, 6, 2, 0, 2, 3, 3, 40, 2, 3, 3, 32, 2, 3, 3, 6, 2, 0, 2, 3, 3, 14, 2, 56, 2, 3, 3, 66, 5, 0, 33, 15, 17, 84, 13, 619, 3, 16, 2, 25, 6, 74, 22, 12, 2, 6, 12, 20, 12, 19, 13, 12, 2, 2, 2, 1, 13, 51, 3, 29, 4, 0, 5, 1, 3, 9, 34, 2, 3, 9, 7, 87, 9, 42, 6, 69, 11, 28, 4, 11, 5, 11, 11, 39, 3, 4, 12, 43, 5, 25, 7, 10, 38, 27, 5, 62, 2, 28, 3, 10, 7, 9, 14, 0, 89, 75, 5, 9, 18, 8, 13, 42, 4, 11, 71, 55, 9, 9, 4, 48, 83, 2, 2, 30, 14, 230, 23, 280, 3, 5, 3, 37, 3, 5, 3, 7, 2, 0, 2, 0, 2, 0, 2, 30, 3, 52, 2, 6, 2, 0, 4, 2, 2, 6, 4, 3, 3, 5, 5, 12, 6, 2, 2, 6, 67, 1, 20, 0, 29, 0, 14, 0, 17, 4, 60, 12, 5, 0, 4, 11, 18, 0, 5, 0, 3, 9, 2, 0, 4, 4, 7, 0, 2, 0, 2, 0, 2, 3, 2, 10, 3, 3, 6, 4, 5, 0, 53, 1, 2684, 46, 2, 46, 2, 132, 7, 6, 15, 37, 11, 53, 10, 0, 17, 22, 10, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 31, 48, 0, 470, 1, 36, 5, 2, 4, 6, 1, 5, 85, 3, 1, 3, 2, 2, 89, 2, 3, 6, 40, 4, 93, 18, 23, 57, 15, 513, 6581, 75, 20939, 53, 1164, 68, 45, 3, 268, 4, 27, 21, 31, 3, 13, 13, 1, 2, 24, 9, 69, 11, 1, 38, 8, 3, 102, 3, 1, 111, 44, 25, 51, 13, 68, 12, 9, 7, 23, 4, 0, 5, 45, 3, 35, 13, 28, 4, 64, 15, 10, 39, 54, 10, 13, 3, 9, 7, 22, 4, 1, 5, 66, 25, 2, 227, 42, 2, 1, 3, 9, 7, 11171, 13, 22, 5, 48, 8453, 301, 3, 61, 3, 105, 39, 6, 13, 4, 6, 11, 2, 12, 2, 4, 2, 0, 2, 1, 2, 1, 2, 107, 34, 362, 19, 63, 3, 53, 41, 11, 5, 15, 17, 6, 13, 1, 25, 2, 33, 4, 2, 134, 20, 9, 8, 25, 5, 0, 2, 25, 12, 88, 4, 5, 3, 5, 3, 5, 3, 2];\nvar code = 0;\nvar str = [];\nfor (var i = 0; i < wordChars.length; i += 2) {\n str.push(code += wordChars[i]);\n if (wordChars[i + 1])\n str.push(45, code += wordChars[i + 1]);\n}\nexports.wordChars = String.fromCharCode.apply(null, str);\n\n});\n\nace.define(\"ace/mode/text\",[\"require\",\"exports\",\"module\",\"ace/config\",\"ace/tokenizer\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/unicode\",\"ace/lib/lang\",\"ace/token_iterator\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar config = require(\"../config\");\nvar Tokenizer = require(\"../tokenizer\").Tokenizer;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar unicode = require(\"../unicode\");\nvar lang = require(\"../lib/lang\");\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar Range = require(\"../range\").Range;\nvar Mode = function () {\n this.HighlightRules = TextHighlightRules;\n};\n(function () {\n this.$defaultBehaviour = new CstyleBehaviour();\n this.tokenRe = new RegExp(\"^[\" + unicode.wordChars + \"\\\\$_]+\", \"g\");\n this.nonTokenRe = new RegExp(\"^(?:[^\" + unicode.wordChars + \"\\\\$_]|\\\\s])+\", \"g\");\n this.getTokenizer = function () {\n if (!this.$tokenizer) {\n this.$highlightRules = this.$highlightRules || new this.HighlightRules(this.$highlightRuleConfig);\n this.$tokenizer = new Tokenizer(this.$highlightRules.getRules());\n }\n return this.$tokenizer;\n };\n this.lineCommentStart = \"\";\n this.blockComment = \"\";\n this.toggleCommentLines = function (state, session, startRow, endRow) {\n var doc = session.doc;\n var ignoreBlankLines = true;\n var shouldRemove = true;\n var minIndent = Infinity;\n var tabSize = session.getTabSize();\n var insertAtTabStop = false;\n if (!this.lineCommentStart) {\n if (!this.blockComment)\n return false;\n var lineCommentStart = this.blockComment.start;\n var lineCommentEnd = this.blockComment.end;\n var regexpStart = new RegExp(\"^(\\\\s*)(?:\" + lang.escapeRegExp(lineCommentStart) + \")\");\n var regexpEnd = new RegExp(\"(?:\" + lang.escapeRegExp(lineCommentEnd) + \")\\\\s*$\");\n var comment = function (line, i) {\n if (testRemove(line, i))\n return;\n if (!ignoreBlankLines || /\\S/.test(line)) {\n doc.insertInLine({ row: i, column: line.length }, lineCommentEnd);\n doc.insertInLine({ row: i, column: minIndent }, lineCommentStart);\n }\n };\n var uncomment = function (line, i) {\n var m;\n if (m = line.match(regexpEnd))\n doc.removeInLine(i, line.length - m[0].length, line.length);\n if (m = line.match(regexpStart))\n doc.removeInLine(i, m[1].length, m[0].length);\n };\n var testRemove = function (line, row) {\n if (regexpStart.test(line))\n return true;\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n if (tokens[i].type === \"comment\")\n return true;\n }\n };\n }\n else {\n if (Array.isArray(this.lineCommentStart)) {\n var regexpStart = this.lineCommentStart.map(lang.escapeRegExp).join(\"|\");\n var lineCommentStart = this.lineCommentStart[0];\n }\n else {\n var regexpStart = lang.escapeRegExp(this.lineCommentStart);\n var lineCommentStart = this.lineCommentStart;\n }\n regexpStart = new RegExp(\"^(\\\\s*)(?:\" + regexpStart + \") ?\");\n insertAtTabStop = session.getUseSoftTabs();\n var uncomment = function (line, i) {\n var m = line.match(regexpStart);\n if (!m)\n return;\n var start = m[1].length, end = m[0].length;\n if (!shouldInsertSpace(line, start, end) && m[0][end - 1] == \" \")\n end--;\n doc.removeInLine(i, start, end);\n };\n var commentWithSpace = lineCommentStart + \" \";\n var comment = function (line, i) {\n if (!ignoreBlankLines || /\\S/.test(line)) {\n if (shouldInsertSpace(line, minIndent, minIndent))\n doc.insertInLine({ row: i, column: minIndent }, commentWithSpace);\n else\n doc.insertInLine({ row: i, column: minIndent }, lineCommentStart);\n }\n };\n var testRemove = function (line, i) {\n return regexpStart.test(line);\n };\n var shouldInsertSpace = function (line, before, after) {\n var spaces = 0;\n while (before-- && line.charAt(before) == \" \")\n spaces++;\n if (spaces % tabSize != 0)\n return false;\n var spaces = 0;\n while (line.charAt(after++) == \" \")\n spaces++;\n if (tabSize > 2)\n return spaces % tabSize != tabSize - 1;\n else\n return spaces % tabSize == 0;\n };\n }\n function iter(fun) {\n for (var i = startRow; i <= endRow; i++)\n fun(doc.getLine(i), i);\n }\n var minEmptyLength = Infinity;\n iter(function (line, i) {\n var indent = line.search(/\\S/);\n if (indent !== -1) {\n if (indent < minIndent)\n minIndent = indent;\n if (shouldRemove && !testRemove(line, i))\n shouldRemove = false;\n }\n else if (minEmptyLength > line.length) {\n minEmptyLength = line.length;\n }\n });\n if (minIndent == Infinity) {\n minIndent = minEmptyLength;\n ignoreBlankLines = false;\n shouldRemove = false;\n }\n if (insertAtTabStop && minIndent % tabSize != 0)\n minIndent = Math.floor(minIndent / tabSize) * tabSize;\n iter(shouldRemove ? uncomment : comment);\n };\n this.toggleBlockComment = function (state, session, range, cursor) {\n var comment = this.blockComment;\n if (!comment)\n return;\n if (!comment.start && comment[0])\n comment = comment[0];\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n var sel = session.selection;\n var initialRange = session.selection.toOrientedRange();\n var startRow, colDiff;\n if (token && /comment/.test(token.type)) {\n var startRange, endRange;\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.start);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n startRange = new Range(row, column, row, column + comment.start.length);\n break;\n }\n token = iterator.stepBackward();\n }\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.end);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n endRange = new Range(row, column, row, column + comment.end.length);\n break;\n }\n token = iterator.stepForward();\n }\n if (endRange)\n session.remove(endRange);\n if (startRange) {\n session.remove(startRange);\n startRow = startRange.start.row;\n colDiff = -comment.start.length;\n }\n }\n else {\n colDiff = comment.start.length;\n startRow = range.start.row;\n session.insert(range.end, comment.end);\n session.insert(range.start, comment.start);\n }\n if (initialRange.start.row == startRow)\n initialRange.start.column += colDiff;\n if (initialRange.end.row == startRow)\n initialRange.end.column += colDiff;\n session.selection.fromOrientedRange(initialRange);\n };\n this.getNextLineIndent = function (state, line, tab) {\n return this.$getIndent(line);\n };\n this.checkOutdent = function (state, line, input) {\n return false;\n };\n this.autoOutdent = function (state, doc, row) {\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n this.createWorker = function (session) {\n return null;\n };\n this.createModeDelegates = function (mapping) {\n this.$embeds = [];\n this.$modes = {};\n for (var i in mapping) {\n if (mapping[i]) {\n var Mode = mapping[i];\n var id = Mode.prototype.$id;\n var mode = config.$modes[id];\n if (!mode)\n config.$modes[id] = mode = new Mode();\n if (!config.$modes[i])\n config.$modes[i] = mode;\n this.$embeds.push(i);\n this.$modes[i] = mode;\n }\n }\n var delegations = [\"toggleBlockComment\", \"toggleCommentLines\", \"getNextLineIndent\",\n \"checkOutdent\", \"autoOutdent\", \"transformAction\", \"getCompletions\"];\n for (var i = 0; i < delegations.length; i++) {\n (function (scope) {\n var functionName = delegations[i];\n var defaultHandler = scope[functionName];\n scope[delegations[i]] = function () {\n return this.$delegator(functionName, arguments, defaultHandler);\n };\n }(this));\n }\n };\n this.$delegator = function (method, args, defaultHandler) {\n var state = args[0] || \"start\";\n if (typeof state != \"string\") {\n if (Array.isArray(state[2])) {\n var language = state[2][state[2].length - 1];\n var mode = this.$modes[language];\n if (mode)\n return mode[method].apply(mode, [state[1]].concat([].slice.call(args, 1)));\n }\n state = state[0] || \"start\";\n }\n for (var i = 0; i < this.$embeds.length; i++) {\n if (!this.$modes[this.$embeds[i]])\n continue;\n var split = state.split(this.$embeds[i]);\n if (!split[0] && split[1]) {\n args[0] = split[1];\n var mode = this.$modes[this.$embeds[i]];\n return mode[method].apply(mode, args);\n }\n }\n var ret = defaultHandler.apply(this, args);\n return defaultHandler ? ret : undefined;\n };\n this.transformAction = function (state, action, editor, session, param) {\n if (this.$behaviour) {\n var behaviours = this.$behaviour.getBehaviours();\n for (var key in behaviours) {\n if (behaviours[key][action]) {\n var ret = behaviours[key][action].apply(this, arguments);\n if (ret) {\n return ret;\n }\n }\n }\n }\n };\n this.getKeywords = function (append) {\n if (!this.completionKeywords) {\n var rules = this.$tokenizer.rules;\n var completionKeywords = [];\n for (var rule in rules) {\n var ruleItr = rules[rule];\n for (var r = 0, l = ruleItr.length; r < l; r++) {\n if (typeof ruleItr[r].token === \"string\") {\n if (/keyword|support|storage/.test(ruleItr[r].token))\n completionKeywords.push(ruleItr[r].regex);\n }\n else if (typeof ruleItr[r].token === \"object\") {\n for (var a = 0, aLength = ruleItr[r].token.length; a < aLength; a++) {\n if (/keyword|support|storage/.test(ruleItr[r].token[a])) {\n var rule = ruleItr[r].regex.match(/\\(.+?\\)/g)[a];\n completionKeywords.push(rule.substr(1, rule.length - 2));\n }\n }\n }\n }\n }\n this.completionKeywords = completionKeywords;\n }\n if (!append)\n return this.$keywordList;\n return completionKeywords.concat(this.$keywordList || []);\n };\n this.$createKeywordList = function () {\n if (!this.$highlightRules)\n this.getTokenizer();\n return this.$keywordList = this.$highlightRules.$keywordList || [];\n };\n this.getCompletions = function (state, session, pos, prefix) {\n var keywords = this.$keywordList || this.$createKeywordList();\n return keywords.map(function (word) {\n return {\n name: word,\n value: word,\n score: 0,\n meta: \"keyword\"\n };\n });\n };\n this.$id = \"ace/mode/text\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n});\n\nace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nfunction throwDeltaError(delta, errorText) {\n console.log(\"Invalid Delta:\", delta);\n throw \"Invalid Delta: \" + errorText;\n}\nfunction positionInDocument(docLines, position) {\n return position.row >= 0 && position.row < docLines.length &&\n position.column >= 0 && position.column <= docLines[position.row].length;\n}\nfunction validateDelta(docLines, delta) {\n if (delta.action != \"insert\" && delta.action != \"remove\")\n throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n if (!(delta.lines instanceof Array))\n throwDeltaError(delta, \"delta.lines must be an Array\");\n if (!delta.start || !delta.end)\n throwDeltaError(delta, \"delta.start/end must be an present\");\n var start = delta.start;\n if (!positionInDocument(docLines, delta.start))\n throwDeltaError(delta, \"delta.start must be contained in document\");\n var end = delta.end;\n if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n var numRangeRows = end.row - start.row;\n var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n throwDeltaError(delta, \"delta.range must match delta lines\");\n}\nexports.applyDelta = function (docLines, delta, doNotValidate) {\n var row = delta.start.row;\n var startColumn = delta.start.column;\n var line = docLines[row] || \"\";\n switch (delta.action) {\n case \"insert\":\n var lines = delta.lines;\n if (lines.length === 1) {\n docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n }\n else {\n var args = [row, 1].concat(delta.lines);\n docLines.splice.apply(docLines, args);\n docLines[row] = line.substring(0, startColumn) + docLines[row];\n docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n }\n break;\n case \"remove\":\n var endColumn = delta.end.column;\n var endRow = delta.end.row;\n if (row === endRow) {\n docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n }\n else {\n docLines.splice(row, endRow - row + 1, line.substring(0, startColumn) + docLines[endRow].substring(endColumn));\n }\n break;\n }\n};\n\n});\n\nace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Anchor = /** @class */ (function () {\n function Anchor(doc, row, column) {\n this.$onChange = this.onChange.bind(this);\n this.attach(doc);\n if (typeof column == \"undefined\")\n this.setPosition(row.row, row.column);\n else\n this.setPosition(row, column);\n }\n Anchor.prototype.getPosition = function () {\n return this.$clipPositionToDocument(this.row, this.column);\n };\n Anchor.prototype.getDocument = function () {\n return this.document;\n };\n Anchor.prototype.onChange = function (delta) {\n if (delta.start.row == delta.end.row && delta.start.row != this.row)\n return;\n if (delta.start.row > this.row)\n return;\n var point = $getTransformedPoint(delta, { row: this.row, column: this.column }, this.$insertRight);\n this.setPosition(point.row, point.column, true);\n };\n Anchor.prototype.setPosition = function (row, column, noClip) {\n var pos;\n if (noClip) {\n pos = {\n row: row,\n column: column\n };\n }\n else {\n pos = this.$clipPositionToDocument(row, column);\n }\n if (this.row == pos.row && this.column == pos.column)\n return;\n var old = {\n row: this.row,\n column: this.column\n };\n this.row = pos.row;\n this.column = pos.column;\n this._signal(\"change\", {\n old: old,\n value: pos\n });\n };\n Anchor.prototype.detach = function () {\n this.document.off(\"change\", this.$onChange);\n };\n Anchor.prototype.attach = function (doc) {\n this.document = doc || this.document;\n this.document.on(\"change\", this.$onChange);\n };\n Anchor.prototype.$clipPositionToDocument = function (row, column) {\n var pos = {};\n if (row >= this.document.getLength()) {\n pos.row = Math.max(0, this.document.getLength() - 1);\n pos.column = this.document.getLine(pos.row).length;\n }\n else if (row < 0) {\n pos.row = 0;\n pos.column = 0;\n }\n else {\n pos.row = row;\n pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n }\n if (column < 0)\n pos.column = 0;\n return pos;\n };\n return Anchor;\n}());\nAnchor.prototype.$insertRight = false;\noop.implement(Anchor.prototype, EventEmitter);\nfunction $pointsInOrder(point1, point2, equalPointsInOrder) {\n var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n}\nfunction $getTransformedPoint(delta, point, moveIfEqual) {\n var deltaIsInsert = delta.action == \"insert\";\n var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row);\n var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n var deltaStart = delta.start;\n var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n return {\n row: point.row,\n column: point.column\n };\n }\n if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n return {\n row: point.row + deltaRowShift,\n column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n };\n }\n return {\n row: deltaStart.row,\n column: deltaStart.column\n };\n}\nexports.Anchor = Anchor;\n\n});\n\nace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar applyDelta = require(\"./apply_delta\").applyDelta;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Anchor = require(\"./anchor\").Anchor;\nvar Document = /** @class */ (function () {\n function Document(textOrLines) {\n this.$lines = [\"\"];\n if (textOrLines.length === 0) {\n this.$lines = [\"\"];\n }\n else if (Array.isArray(textOrLines)) {\n this.insertMergedLines({ row: 0, column: 0 }, textOrLines);\n }\n else {\n this.insert({ row: 0, column: 0 }, textOrLines);\n }\n }\n Document.prototype.setValue = function (text) {\n var len = this.getLength() - 1;\n this.remove(new Range(0, 0, len, this.getLine(len).length));\n this.insert({ row: 0, column: 0 }, text || \"\");\n };\n Document.prototype.getValue = function () {\n return this.getAllLines().join(this.getNewLineCharacter());\n };\n Document.prototype.createAnchor = function (row, column) {\n return new Anchor(this, row, column);\n };\n Document.prototype.$detectNewLine = function (text) {\n var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n this.$autoNewLine = match ? match[1] : \"\\n\";\n this._signal(\"changeNewLineMode\");\n };\n Document.prototype.getNewLineCharacter = function () {\n switch (this.$newLineMode) {\n case \"windows\":\n return \"\\r\\n\";\n case \"unix\":\n return \"\\n\";\n default:\n return this.$autoNewLine || \"\\n\";\n }\n };\n Document.prototype.setNewLineMode = function (newLineMode) {\n if (this.$newLineMode === newLineMode)\n return;\n this.$newLineMode = newLineMode;\n this._signal(\"changeNewLineMode\");\n };\n Document.prototype.getNewLineMode = function () {\n return this.$newLineMode;\n };\n Document.prototype.isNewLine = function (text) {\n return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n };\n Document.prototype.getLine = function (row) {\n return this.$lines[row] || \"\";\n };\n Document.prototype.getLines = function (firstRow, lastRow) {\n return this.$lines.slice(firstRow, lastRow + 1);\n };\n Document.prototype.getAllLines = function () {\n return this.getLines(0, this.getLength());\n };\n Document.prototype.getLength = function () {\n return this.$lines.length;\n };\n Document.prototype.getTextRange = function (range) {\n return this.getLinesForRange(range).join(this.getNewLineCharacter());\n };\n Document.prototype.getLinesForRange = function (range) {\n var lines;\n if (range.start.row === range.end.row) {\n lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n }\n else {\n lines = this.getLines(range.start.row, range.end.row);\n lines[0] = (lines[0] || \"\").substring(range.start.column);\n var l = lines.length - 1;\n if (range.end.row - range.start.row == l)\n lines[l] = lines[l].substring(0, range.end.column);\n }\n return lines;\n };\n Document.prototype.insertLines = function (row, lines) {\n console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n return this.insertFullLines(row, lines);\n };\n Document.prototype.removeLines = function (firstRow, lastRow) {\n console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n return this.removeFullLines(firstRow, lastRow);\n };\n Document.prototype.insertNewLine = function (position) {\n console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\");\n return this.insertMergedLines(position, [\"\", \"\"]);\n };\n Document.prototype.insert = function (position, text) {\n if (this.getLength() <= 1)\n this.$detectNewLine(text);\n return this.insertMergedLines(position, this.$split(text));\n };\n Document.prototype.insertInLine = function (position, text) {\n var start = this.clippedPos(position.row, position.column);\n var end = this.pos(position.row, position.column + text.length);\n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: [text]\n }, true);\n return this.clonePos(end);\n };\n Document.prototype.clippedPos = function (row, column) {\n var length = this.getLength();\n if (row === undefined) {\n row = length;\n }\n else if (row < 0) {\n row = 0;\n }\n else if (row >= length) {\n row = length - 1;\n column = undefined;\n }\n var line = this.getLine(row);\n if (column == undefined)\n column = line.length;\n column = Math.min(Math.max(column, 0), line.length);\n return { row: row, column: column };\n };\n Document.prototype.clonePos = function (pos) {\n return { row: pos.row, column: pos.column };\n };\n Document.prototype.pos = function (row, column) {\n return { row: row, column: column };\n };\n Document.prototype.$clipPosition = function (position) {\n var length = this.getLength();\n if (position.row >= length) {\n position.row = Math.max(0, length - 1);\n position.column = this.getLine(length - 1).length;\n }\n else {\n position.row = Math.max(0, position.row);\n position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n }\n return position;\n };\n Document.prototype.insertFullLines = function (row, lines) {\n row = Math.min(Math.max(row, 0), this.getLength());\n var column = 0;\n if (row < this.getLength()) {\n lines = lines.concat([\"\"]);\n column = 0;\n }\n else {\n lines = [\"\"].concat(lines);\n row--;\n column = this.$lines[row].length;\n }\n this.insertMergedLines({ row: row, column: column }, lines);\n };\n Document.prototype.insertMergedLines = function (position, lines) {\n var start = this.clippedPos(position.row, position.column);\n var end = {\n row: start.row + lines.length - 1,\n column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n };\n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: lines\n });\n return this.clonePos(end);\n };\n Document.prototype.remove = function (range) {\n var start = this.clippedPos(range.start.row, range.start.column);\n var end = this.clippedPos(range.end.row, range.end.column);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({ start: start, end: end })\n });\n return this.clonePos(start);\n };\n Document.prototype.removeInLine = function (row, startColumn, endColumn) {\n var start = this.clippedPos(row, startColumn);\n var end = this.clippedPos(row, endColumn);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({ start: start, end: end })\n }, true);\n return this.clonePos(start);\n };\n Document.prototype.removeFullLines = function (firstRow, lastRow) {\n firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n lastRow = Math.min(Math.max(0, lastRow), this.getLength() - 1);\n var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n var deleteLastNewLine = lastRow < this.getLength() - 1;\n var startRow = (deleteFirstNewLine ? firstRow - 1 : firstRow);\n var startCol = (deleteFirstNewLine ? this.getLine(startRow).length : 0);\n var endRow = (deleteLastNewLine ? lastRow + 1 : lastRow);\n var endCol = (deleteLastNewLine ? 0 : this.getLine(endRow).length);\n var range = new Range(startRow, startCol, endRow, endCol);\n var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n this.applyDelta({\n start: range.start,\n end: range.end,\n action: \"remove\",\n lines: this.getLinesForRange(range)\n });\n return deletedLines;\n };\n Document.prototype.removeNewLine = function (row) {\n if (row < this.getLength() - 1 && row >= 0) {\n this.applyDelta({\n start: this.pos(row, this.getLine(row).length),\n end: this.pos(row + 1, 0),\n action: \"remove\",\n lines: [\"\", \"\"]\n });\n }\n };\n Document.prototype.replace = function (range, text) {\n if (!(range instanceof Range))\n range = Range.fromPoints(range.start, range.end);\n if (text.length === 0 && range.isEmpty())\n return range.start;\n if (text == this.getTextRange(range))\n return range.end;\n this.remove(range);\n var end;\n if (text) {\n end = this.insert(range.start, text);\n }\n else {\n end = range.start;\n }\n return end;\n };\n Document.prototype.applyDeltas = function (deltas) {\n for (var i = 0; i < deltas.length; i++) {\n this.applyDelta(deltas[i]);\n }\n };\n Document.prototype.revertDeltas = function (deltas) {\n for (var i = deltas.length - 1; i >= 0; i--) {\n this.revertDelta(deltas[i]);\n }\n };\n Document.prototype.applyDelta = function (delta, doNotValidate) {\n var isInsert = delta.action == \"insert\";\n if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n : !Range.comparePoints(delta.start, delta.end)) {\n return;\n }\n if (isInsert && delta.lines.length > 20000) {\n this.$splitAndapplyLargeDelta(delta, 20000);\n }\n else {\n applyDelta(this.$lines, delta, doNotValidate);\n this._signal(\"change\", delta);\n }\n };\n Document.prototype.$safeApplyDelta = function (delta) {\n var docLength = this.$lines.length;\n if (delta.action == \"remove\" && delta.start.row < docLength && delta.end.row < docLength\n || delta.action == \"insert\" && delta.start.row <= docLength) {\n this.applyDelta(delta);\n }\n };\n Document.prototype.$splitAndapplyLargeDelta = function (delta, MAX) {\n var lines = delta.lines;\n var l = lines.length - MAX + 1;\n var row = delta.start.row;\n var column = delta.start.column;\n for (var from = 0, to = 0; from < l; from = to) {\n to += MAX - 1;\n var chunk = lines.slice(from, to);\n chunk.push(\"\");\n this.applyDelta({\n start: this.pos(row + from, column),\n end: this.pos(row + to, column = 0),\n action: delta.action,\n lines: chunk\n }, true);\n }\n delta.lines = lines.slice(from);\n delta.start.row = row + from;\n delta.start.column = column;\n this.applyDelta(delta, true);\n };\n Document.prototype.revertDelta = function (delta) {\n this.$safeApplyDelta({\n start: this.clonePos(delta.start),\n end: this.clonePos(delta.end),\n action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n lines: delta.lines.slice()\n });\n };\n Document.prototype.indexToPosition = function (index, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n for (var i = startRow || 0, l = lines.length; i < l; i++) {\n index -= lines[i].length + newlineLength;\n if (index < 0)\n return { row: i, column: index + lines[i].length + newlineLength };\n }\n return { row: l - 1, column: index + lines[l - 1].length + newlineLength };\n };\n Document.prototype.positionToIndex = function (pos, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n var index = 0;\n var row = Math.min(pos.row, lines.length);\n for (var i = startRow || 0; i < row; ++i)\n index += lines[i].length + newlineLength;\n return index + pos.column;\n };\n Document.prototype.$split = function (text) {\n return text.split(/\\r\\n|\\r|\\n/);\n };\n return Document;\n}());\nDocument.prototype.$autoNewLine = \"\";\nDocument.prototype.$newLineMode = \"auto\";\noop.implement(Document.prototype, EventEmitter);\nexports.Document = Document;\n\n});\n\nace.define(\"ace/background_tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar BackgroundTokenizer = /** @class */ (function () {\n function BackgroundTokenizer(tokenizer, editor) {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.tokenizer = tokenizer;\n var self = this;\n this.$worker = function () {\n if (!self.running) {\n return;\n }\n var workerStart = new Date();\n var currentLine = self.currentLine;\n var endLine = -1;\n var doc = self.doc;\n var startLine = currentLine;\n while (self.lines[currentLine])\n currentLine++;\n var len = doc.getLength();\n var processedLines = 0;\n self.running = false;\n while (currentLine < len) {\n self.$tokenizeRow(currentLine);\n endLine = currentLine;\n do {\n currentLine++;\n } while (self.lines[currentLine]);\n processedLines++;\n if ((processedLines % 5 === 0) && (new Date() - workerStart) > 20) {\n self.running = setTimeout(self.$worker, 20);\n break;\n }\n }\n self.currentLine = currentLine;\n if (endLine == -1)\n endLine = currentLine;\n if (startLine <= endLine)\n self.fireUpdateEvent(startLine, endLine);\n };\n }\n BackgroundTokenizer.prototype.setTokenizer = function (tokenizer) {\n this.tokenizer = tokenizer;\n this.lines = [];\n this.states = [];\n this.start(0);\n };\n BackgroundTokenizer.prototype.setDocument = function (doc) {\n this.doc = doc;\n this.lines = [];\n this.states = [];\n this.stop();\n };\n BackgroundTokenizer.prototype.fireUpdateEvent = function (firstRow, lastRow) {\n var data = {\n first: firstRow,\n last: lastRow\n };\n this._signal(\"update\", { data: data });\n };\n BackgroundTokenizer.prototype.start = function (startRow) {\n this.currentLine = Math.min(startRow || 0, this.currentLine, this.doc.getLength());\n this.lines.splice(this.currentLine, this.lines.length);\n this.states.splice(this.currentLine, this.states.length);\n this.stop();\n this.running = setTimeout(this.$worker, 700);\n };\n BackgroundTokenizer.prototype.scheduleStart = function () {\n if (!this.running)\n this.running = setTimeout(this.$worker, 700);\n };\n BackgroundTokenizer.prototype.$updateOnChange = function (delta) {\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n if (len === 0) {\n this.lines[startRow] = null;\n }\n else if (delta.action == \"remove\") {\n this.lines.splice(startRow, len + 1, null);\n this.states.splice(startRow, len + 1, null);\n }\n else {\n var args = Array(len + 1);\n args.unshift(startRow, 1);\n this.lines.splice.apply(this.lines, args);\n this.states.splice.apply(this.states, args);\n }\n this.currentLine = Math.min(startRow, this.currentLine, this.doc.getLength());\n this.stop();\n };\n BackgroundTokenizer.prototype.stop = function () {\n if (this.running)\n clearTimeout(this.running);\n this.running = false;\n };\n BackgroundTokenizer.prototype.getTokens = function (row) {\n return this.lines[row] || this.$tokenizeRow(row);\n };\n BackgroundTokenizer.prototype.getState = function (row) {\n if (this.currentLine == row)\n this.$tokenizeRow(row);\n return this.states[row] || \"start\";\n };\n BackgroundTokenizer.prototype.$tokenizeRow = function (row) {\n var line = this.doc.getLine(row);\n var state = this.states[row - 1];\n var data = this.tokenizer.getLineTokens(line, state, row);\n if (this.states[row] + \"\" !== data.state + \"\") {\n this.states[row] = data.state;\n this.lines[row + 1] = null;\n if (this.currentLine > row + 1)\n this.currentLine = row + 1;\n }\n else if (this.currentLine == row) {\n this.currentLine = row + 1;\n }\n return this.lines[row] = data.tokens;\n };\n BackgroundTokenizer.prototype.cleanup = function () {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.removeAllListeners();\n };\n return BackgroundTokenizer;\n}());\noop.implement(BackgroundTokenizer.prototype, EventEmitter);\nexports.BackgroundTokenizer = BackgroundTokenizer;\n\n});\n\nace.define(\"ace/search_highlight\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"./lib/lang\");\nvar Range = require(\"./range\").Range;\nvar SearchHighlight = /** @class */ (function () {\n function SearchHighlight(regExp, clazz, type) {\n if (type === void 0) { type = \"text\"; }\n this.setRegexp(regExp);\n this.clazz = clazz;\n this.type = type;\n }\n SearchHighlight.prototype.setRegexp = function (regExp) {\n if (this.regExp + \"\" == regExp + \"\")\n return;\n this.regExp = regExp;\n this.cache = [];\n };\n SearchHighlight.prototype.update = function (html, markerLayer, session, config) {\n if (!this.regExp)\n return;\n var start = config.firstRow, end = config.lastRow;\n var renderedMarkerRanges = {};\n for (var i = start; i <= end; i++) {\n var ranges = this.cache[i];\n if (ranges == null) {\n ranges = lang.getMatchOffsets(session.getLine(i), this.regExp);\n if (ranges.length > this.MAX_RANGES)\n ranges = ranges.slice(0, this.MAX_RANGES);\n ranges = ranges.map(function (match) {\n return new Range(i, match.offset, i, match.offset + match.length);\n });\n this.cache[i] = ranges.length ? ranges : \"\";\n }\n for (var j = ranges.length; j--;) {\n var rangeToAddMarkerTo = ranges[j].toScreenRange(session);\n var rangeAsString = rangeToAddMarkerTo.toString();\n if (renderedMarkerRanges[rangeAsString])\n continue;\n renderedMarkerRanges[rangeAsString] = true;\n markerLayer.drawSingleLineMarker(html, rangeToAddMarkerTo, this.clazz, config);\n }\n }\n };\n return SearchHighlight;\n}());\nSearchHighlight.prototype.MAX_RANGES = 500;\nexports.SearchHighlight = SearchHighlight;\n\n});\n\nace.define(\"ace/undomanager\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar UndoManager = /** @class */ (function () {\n function UndoManager() {\n this.$maxRev = 0;\n this.$fromUndo = false;\n this.$undoDepth = Infinity;\n this.reset();\n }\n UndoManager.prototype.addSession = function (session) {\n this.$session = session;\n };\n UndoManager.prototype.add = function (delta, allowMerge, session) {\n if (this.$fromUndo)\n return;\n if (delta == this.$lastDelta)\n return;\n if (!this.$keepRedoStack)\n this.$redoStack.length = 0;\n if (allowMerge === false || !this.lastDeltas) {\n this.lastDeltas = [];\n var undoStackLength = this.$undoStack.length;\n if (undoStackLength > this.$undoDepth - 1) {\n this.$undoStack.splice(0, undoStackLength - this.$undoDepth + 1);\n }\n this.$undoStack.push(this.lastDeltas);\n delta.id = this.$rev = ++this.$maxRev;\n }\n if (delta.action == \"remove\" || delta.action == \"insert\")\n this.$lastDelta = delta;\n this.lastDeltas.push(delta);\n };\n UndoManager.prototype.addSelection = function (selection, rev) {\n this.selections.push({\n value: selection,\n rev: rev || this.$rev\n });\n };\n UndoManager.prototype.startNewGroup = function () {\n this.lastDeltas = null;\n return this.$rev;\n };\n UndoManager.prototype.markIgnored = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n var stack = this.$undoStack;\n for (var i = stack.length; i--;) {\n var delta = stack[i][0];\n if (delta.id <= from)\n break;\n if (delta.id < to)\n delta.ignore = true;\n }\n this.lastDeltas = null;\n };\n UndoManager.prototype.getSelection = function (rev, after) {\n var stack = this.selections;\n for (var i = stack.length; i--;) {\n var selection = stack[i];\n if (selection.rev < rev) {\n if (after)\n selection = stack[i + 1];\n return selection;\n }\n }\n };\n UndoManager.prototype.getRevision = function () {\n return this.$rev;\n };\n UndoManager.prototype.getDeltas = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n var stack = this.$undoStack;\n var end = null, start = 0;\n for (var i = stack.length; i--;) {\n var delta = stack[i][0];\n if (delta.id < to && !end)\n end = i + 1;\n if (delta.id <= from) {\n start = i + 1;\n break;\n }\n }\n return stack.slice(start, end);\n };\n UndoManager.prototype.getChangedRanges = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n };\n UndoManager.prototype.getChangedLines = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n };\n UndoManager.prototype.undo = function (session, dontSelect) {\n this.lastDeltas = null;\n var stack = this.$undoStack;\n if (!rearrangeUndoStack(stack, stack.length))\n return;\n if (!session)\n session = this.$session;\n if (this.$redoStackBaseRev !== this.$rev && this.$redoStack.length)\n this.$redoStack = [];\n this.$fromUndo = true;\n var deltaSet = stack.pop();\n var undoSelectionRange = null;\n if (deltaSet) {\n undoSelectionRange = session.undoChanges(deltaSet, dontSelect);\n this.$redoStack.push(deltaSet);\n this.$syncRev();\n }\n this.$fromUndo = false;\n return undoSelectionRange;\n };\n UndoManager.prototype.redo = function (session, dontSelect) {\n this.lastDeltas = null;\n if (!session)\n session = this.$session;\n this.$fromUndo = true;\n if (this.$redoStackBaseRev != this.$rev) {\n var diff = this.getDeltas(this.$redoStackBaseRev, this.$rev + 1);\n rebaseRedoStack(this.$redoStack, diff);\n this.$redoStackBaseRev = this.$rev;\n this.$redoStack.forEach(function (x) {\n x[0].id = ++this.$maxRev;\n }, this);\n }\n var deltaSet = this.$redoStack.pop();\n var redoSelectionRange = null;\n if (deltaSet) {\n redoSelectionRange = session.redoChanges(deltaSet, dontSelect);\n this.$undoStack.push(deltaSet);\n this.$syncRev();\n }\n this.$fromUndo = false;\n return redoSelectionRange;\n };\n UndoManager.prototype.$syncRev = function () {\n var stack = this.$undoStack;\n var nextDelta = stack[stack.length - 1];\n var id = nextDelta && nextDelta[0].id || 0;\n this.$redoStackBaseRev = id;\n this.$rev = id;\n };\n UndoManager.prototype.reset = function () {\n this.lastDeltas = null;\n this.$lastDelta = null;\n this.$undoStack = [];\n this.$redoStack = [];\n this.$rev = 0;\n this.mark = 0;\n this.$redoStackBaseRev = this.$rev;\n this.selections = [];\n };\n UndoManager.prototype.canUndo = function () {\n return this.$undoStack.length > 0;\n };\n UndoManager.prototype.canRedo = function () {\n return this.$redoStack.length > 0;\n };\n UndoManager.prototype.bookmark = function (rev) {\n if (rev == undefined)\n rev = this.$rev;\n this.mark = rev;\n };\n UndoManager.prototype.isAtBookmark = function () {\n return this.$rev === this.mark;\n };\n UndoManager.prototype.toJSON = function () {\n return {\n $redoStack: this.$redoStack,\n $undoStack: this.$undoStack\n };\n };\n UndoManager.prototype.fromJSON = function (json) {\n this.reset();\n this.$undoStack = json.$undoStack;\n this.$redoStack = json.$redoStack;\n };\n UndoManager.prototype.$prettyPrint = function (delta) {\n if (delta)\n return stringifyDelta(delta);\n return stringifyDelta(this.$undoStack) + \"\\n---\\n\" + stringifyDelta(this.$redoStack);\n };\n return UndoManager;\n}());\nUndoManager.prototype.hasUndo = UndoManager.prototype.canUndo;\nUndoManager.prototype.hasRedo = UndoManager.prototype.canRedo;\nUndoManager.prototype.isClean = UndoManager.prototype.isAtBookmark;\nUndoManager.prototype.markClean = UndoManager.prototype.bookmark;\nfunction rearrangeUndoStack(stack, pos) {\n for (var i = pos; i--;) {\n var deltaSet = stack[i];\n if (deltaSet && !deltaSet[0].ignore) {\n while (i < pos - 1) {\n var swapped = swapGroups(stack[i], stack[i + 1]);\n stack[i] = swapped[0];\n stack[i + 1] = swapped[1];\n i++;\n }\n return true;\n }\n }\n}\nvar Range = require(\"./range\").Range;\nvar cmp = Range.comparePoints;\nvar comparePoints = Range.comparePoints;\nfunction $updateMarkers(delta) {\n var isInsert = delta.action == \"insert\";\n var start = delta.start;\n var end = delta.end;\n var rowShift = (end.row - start.row) * (isInsert ? 1 : -1);\n var colShift = (end.column - start.column) * (isInsert ? 1 : -1);\n if (isInsert)\n end = start;\n for (var i in this.marks) {\n var point = this.marks[i];\n var cmp = comparePoints(point, start);\n if (cmp < 0) {\n continue; // delta starts after the range\n }\n if (cmp === 0) {\n if (isInsert) {\n if (point.bias == 1) {\n cmp = 1;\n }\n else {\n point.bias == -1;\n continue;\n }\n }\n }\n var cmp2 = isInsert ? cmp : comparePoints(point, end);\n if (cmp2 > 0) {\n point.row += rowShift;\n point.column += point.row == end.row ? colShift : 0;\n continue;\n }\n if (!isInsert && cmp2 <= 0) {\n point.row = start.row;\n point.column = start.column;\n if (cmp2 === 0)\n point.bias = 1;\n }\n }\n}\nfunction clonePos(pos) {\n return { row: pos.row, column: pos.column };\n}\nfunction cloneDelta(d) {\n return {\n start: clonePos(d.start),\n end: clonePos(d.end),\n action: d.action,\n lines: d.lines.slice()\n };\n}\nfunction stringifyDelta(d) {\n d = d || this;\n if (Array.isArray(d)) {\n return d.map(stringifyDelta).join(\"\\n\");\n }\n var type = \"\";\n if (d.action) {\n type = d.action == \"insert\" ? \"+\" : \"-\";\n type += \"[\" + d.lines + \"]\";\n }\n else if (d.value) {\n if (Array.isArray(d.value)) {\n type = d.value.map(stringifyRange).join(\"\\n\");\n }\n else {\n type = stringifyRange(d.value);\n }\n }\n if (d.start) {\n type += stringifyRange(d);\n }\n if (d.id || d.rev) {\n type += \"\\t(\" + (d.id || d.rev) + \")\";\n }\n return type;\n}\nfunction stringifyRange(r) {\n return r.start.row + \":\" + r.start.column\n + \"=>\" + r.end.row + \":\" + r.end.column;\n}\nfunction swap(d1, d2) {\n var i1 = d1.action == \"insert\";\n var i2 = d2.action == \"insert\";\n if (i1 && i2) {\n if (cmp(d2.start, d1.end) >= 0) {\n shift(d2, d1, -1);\n }\n else if (cmp(d2.start, d1.start) <= 0) {\n shift(d1, d2, +1);\n }\n else {\n return null;\n }\n }\n else if (i1 && !i2) {\n if (cmp(d2.start, d1.end) >= 0) {\n shift(d2, d1, -1);\n }\n else if (cmp(d2.end, d1.start) <= 0) {\n shift(d1, d2, -1);\n }\n else {\n return null;\n }\n }\n else if (!i1 && i2) {\n if (cmp(d2.start, d1.start) >= 0) {\n shift(d2, d1, +1);\n }\n else if (cmp(d2.start, d1.start) <= 0) {\n shift(d1, d2, +1);\n }\n else {\n return null;\n }\n }\n else if (!i1 && !i2) {\n if (cmp(d2.start, d1.start) >= 0) {\n shift(d2, d1, +1);\n }\n else if (cmp(d2.end, d1.start) <= 0) {\n shift(d1, d2, -1);\n }\n else {\n return null;\n }\n }\n return [d2, d1];\n}\nfunction swapGroups(ds1, ds2) {\n for (var i = ds1.length; i--;) {\n for (var j = 0; j < ds2.length; j++) {\n if (!swap(ds1[i], ds2[j])) {\n while (i < ds1.length) {\n while (j--) {\n swap(ds2[j], ds1[i]);\n }\n j = ds2.length;\n i++;\n }\n return [ds1, ds2];\n }\n }\n }\n ds1.selectionBefore = ds2.selectionBefore =\n ds1.selectionAfter = ds2.selectionAfter = null;\n return [ds2, ds1];\n}\nfunction xform(d1, c1) {\n var i1 = d1.action == \"insert\";\n var i2 = c1.action == \"insert\";\n if (i1 && i2) {\n if (cmp(d1.start, c1.start) < 0) {\n shift(c1, d1, 1);\n }\n else {\n shift(d1, c1, 1);\n }\n }\n else if (i1 && !i2) {\n if (cmp(d1.start, c1.end) >= 0) {\n shift(d1, c1, -1);\n }\n else if (cmp(d1.start, c1.start) <= 0) {\n shift(c1, d1, +1);\n }\n else {\n shift(d1, Range.fromPoints(c1.start, d1.start), -1);\n shift(c1, d1, +1);\n }\n }\n else if (!i1 && i2) {\n if (cmp(c1.start, d1.end) >= 0) {\n shift(c1, d1, -1);\n }\n else if (cmp(c1.start, d1.start) <= 0) {\n shift(d1, c1, +1);\n }\n else {\n shift(c1, Range.fromPoints(d1.start, c1.start), -1);\n shift(d1, c1, +1);\n }\n }\n else if (!i1 && !i2) {\n if (cmp(c1.start, d1.end) >= 0) {\n shift(c1, d1, -1);\n }\n else if (cmp(c1.end, d1.start) <= 0) {\n shift(d1, c1, -1);\n }\n else {\n var before, after;\n if (cmp(d1.start, c1.start) < 0) {\n before = d1;\n d1 = splitDelta(d1, c1.start);\n }\n if (cmp(d1.end, c1.end) > 0) {\n after = splitDelta(d1, c1.end);\n }\n shiftPos(c1.end, d1.start, d1.end, -1);\n if (after && !before) {\n d1.lines = after.lines;\n d1.start = after.start;\n d1.end = after.end;\n after = d1;\n }\n return [c1, before, after].filter(Boolean);\n }\n }\n return [c1, d1];\n}\nfunction shift(d1, d2, dir) {\n shiftPos(d1.start, d2.start, d2.end, dir);\n shiftPos(d1.end, d2.start, d2.end, dir);\n}\nfunction shiftPos(pos, start, end, dir) {\n if (pos.row == (dir == 1 ? start : end).row) {\n pos.column += dir * (end.column - start.column);\n }\n pos.row += dir * (end.row - start.row);\n}\nfunction splitDelta(c, pos) {\n var lines = c.lines;\n var end = c.end;\n c.end = clonePos(pos);\n var rowsBefore = c.end.row - c.start.row;\n var otherLines = lines.splice(rowsBefore, lines.length);\n var col = rowsBefore ? pos.column : pos.column - c.start.column;\n lines.push(otherLines[0].substring(0, col));\n otherLines[0] = otherLines[0].substr(col);\n var rest = {\n start: clonePos(pos),\n end: end,\n lines: otherLines,\n action: c.action\n };\n return rest;\n}\nfunction moveDeltasByOne(redoStack, d) {\n d = cloneDelta(d);\n for (var j = redoStack.length; j--;) {\n var deltaSet = redoStack[j];\n for (var i = 0; i < deltaSet.length; i++) {\n var x = deltaSet[i];\n var xformed = xform(x, d);\n d = xformed[0];\n if (xformed.length != 2) {\n if (xformed[2]) {\n deltaSet.splice(i + 1, 1, xformed[1], xformed[2]);\n i++;\n }\n else if (!xformed[1]) {\n deltaSet.splice(i, 1);\n i--;\n }\n }\n }\n if (!deltaSet.length) {\n redoStack.splice(j, 1);\n }\n }\n return redoStack;\n}\nfunction rebaseRedoStack(redoStack, deltaSets) {\n for (var i = 0; i < deltaSets.length; i++) {\n var deltas = deltaSets[i];\n for (var j = 0; j < deltas.length; j++) {\n moveDeltasByOne(redoStack, deltas[j]);\n }\n }\n}\nexports.UndoManager = UndoManager;\n\n});\n\nace.define(\"ace/edit_session/fold_line\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar FoldLine = /** @class */ (function () {\n function FoldLine(foldData, folds) {\n this.foldData = foldData;\n if (Array.isArray(folds)) {\n this.folds = folds;\n }\n else {\n folds = this.folds = [folds];\n }\n var last = folds[folds.length - 1];\n this.range = new Range(folds[0].start.row, folds[0].start.column, last.end.row, last.end.column);\n this.start = this.range.start;\n this.end = this.range.end;\n this.folds.forEach(function (fold) {\n fold.setFoldLine(this);\n }, this);\n }\n FoldLine.prototype.shiftRow = function (shift) {\n this.start.row += shift;\n this.end.row += shift;\n this.folds.forEach(function (fold) {\n fold.start.row += shift;\n fold.end.row += shift;\n });\n };\n FoldLine.prototype.addFold = function (fold) {\n if (fold.sameRow) {\n if (fold.start.row < this.startRow || fold.endRow > this.endRow) {\n throw new Error(\"Can't add a fold to this FoldLine as it has no connection\");\n }\n this.folds.push(fold);\n this.folds.sort(function (a, b) {\n return -a.range.compareEnd(b.start.row, b.start.column);\n });\n if (this.range.compareEnd(fold.start.row, fold.start.column) > 0) {\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n }\n else if (this.range.compareStart(fold.end.row, fold.end.column) < 0) {\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n }\n else if (fold.start.row == this.end.row) {\n this.folds.push(fold);\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n }\n else if (fold.end.row == this.start.row) {\n this.folds.unshift(fold);\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n else {\n throw new Error(\"Trying to add fold to FoldRow that doesn't have a matching row\");\n }\n fold.foldLine = this;\n };\n FoldLine.prototype.containsRow = function (row) {\n return row >= this.start.row && row <= this.end.row;\n };\n FoldLine.prototype.walk = function (callback, endRow, endColumn) {\n var lastEnd = 0, folds = this.folds, fold, cmp, stop, isNewRow = true;\n if (endRow == null) {\n endRow = this.end.row;\n endColumn = this.end.column;\n }\n for (var i = 0; i < folds.length; i++) {\n fold = folds[i];\n cmp = fold.range.compareStart(endRow, endColumn);\n if (cmp == -1) {\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n return;\n }\n stop = callback(null, fold.start.row, fold.start.column, lastEnd, isNewRow);\n stop = !stop && callback(fold.placeholder, fold.start.row, fold.start.column, lastEnd);\n if (stop || cmp === 0) {\n return;\n }\n isNewRow = !fold.sameRow;\n lastEnd = fold.end.column;\n }\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n };\n FoldLine.prototype.getNextFoldTo = function (row, column) {\n var fold, cmp;\n for (var i = 0; i < this.folds.length; i++) {\n fold = this.folds[i];\n cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n return {\n fold: fold,\n kind: \"after\"\n };\n }\n else if (cmp === 0) {\n return {\n fold: fold,\n kind: \"inside\"\n };\n }\n }\n return null;\n };\n FoldLine.prototype.addRemoveChars = function (row, column, len) {\n var ret = this.getNextFoldTo(row, column), fold, folds;\n if (ret) {\n fold = ret.fold;\n if (ret.kind == \"inside\"\n && fold.start.column != column\n && fold.start.row != row) {\n window.console && window.console.log(row, column, fold);\n }\n else if (fold.start.row == row) {\n folds = this.folds;\n var i = folds.indexOf(fold);\n if (i === 0) {\n this.start.column += len;\n }\n for (i; i < folds.length; i++) {\n fold = folds[i];\n fold.start.column += len;\n if (!fold.sameRow) {\n return;\n }\n fold.end.column += len;\n }\n this.end.column += len;\n }\n }\n };\n FoldLine.prototype.split = function (row, column) {\n var pos = this.getNextFoldTo(row, column);\n if (!pos || pos.kind == \"inside\")\n return null;\n var fold = pos.fold;\n var folds = this.folds;\n var foldData = this.foldData;\n var i = folds.indexOf(fold);\n var foldBefore = folds[i - 1];\n this.end.row = foldBefore.end.row;\n this.end.column = foldBefore.end.column;\n folds = folds.splice(i, folds.length - i);\n var newFoldLine = new FoldLine(foldData, folds);\n foldData.splice(foldData.indexOf(this) + 1, 0, newFoldLine);\n return newFoldLine;\n };\n FoldLine.prototype.merge = function (foldLineNext) {\n var folds = foldLineNext.folds;\n for (var i = 0; i < folds.length; i++) {\n this.addFold(folds[i]);\n }\n var foldData = this.foldData;\n foldData.splice(foldData.indexOf(foldLineNext), 1);\n };\n FoldLine.prototype.toString = function () {\n var ret = [this.range.toString() + \": [\"];\n this.folds.forEach(function (fold) {\n ret.push(\" \" + fold.toString());\n });\n ret.push(\"]\");\n return ret.join(\"\\n\");\n };\n FoldLine.prototype.idxToPosition = function (idx) {\n var lastFoldEndColumn = 0;\n for (var i = 0; i < this.folds.length; i++) {\n var fold = this.folds[i];\n idx -= fold.start.column - lastFoldEndColumn;\n if (idx < 0) {\n return {\n row: fold.start.row,\n column: fold.start.column + idx\n };\n }\n idx -= fold.placeholder.length;\n if (idx < 0) {\n return fold.start;\n }\n lastFoldEndColumn = fold.end.column;\n }\n return {\n row: this.end.row,\n column: this.end.column + idx\n };\n };\n return FoldLine;\n}());\nexports.FoldLine = FoldLine;\n\n});\n\nace.define(\"ace/range_list\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar comparePoints = Range.comparePoints;\nvar RangeList = /** @class */ (function () {\n function RangeList() {\n this.ranges = [];\n this.$bias = 1;\n }\n RangeList.prototype.pointIndex = function (pos, excludeEdges, startIndex) {\n var list = this.ranges;\n for (var i = startIndex || 0; i < list.length; i++) {\n var range = list[i];\n var cmpEnd = comparePoints(pos, range.end);\n if (cmpEnd > 0)\n continue;\n var cmpStart = comparePoints(pos, range.start);\n if (cmpEnd === 0)\n return excludeEdges && cmpStart !== 0 ? -i - 2 : i;\n if (cmpStart > 0 || (cmpStart === 0 && !excludeEdges))\n return i;\n return -i - 1;\n }\n return -i - 1;\n };\n RangeList.prototype.add = function (range) {\n var excludeEdges = !range.isEmpty();\n var startIndex = this.pointIndex(range.start, excludeEdges);\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex(range.end, excludeEdges, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n else\n endIndex++;\n return this.ranges.splice(startIndex, endIndex - startIndex, range);\n };\n RangeList.prototype.addList = function (list) {\n var removed = [];\n for (var i = list.length; i--;) {\n removed.push.apply(removed, this.add(list[i]));\n }\n return removed;\n };\n RangeList.prototype.substractPoint = function (pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges.splice(i, 1);\n };\n RangeList.prototype.merge = function () {\n var removed = [];\n var list = this.ranges;\n list = list.sort(function (a, b) {\n return comparePoints(a.start, b.start);\n });\n var next = list[0], range;\n for (var i = 1; i < list.length; i++) {\n range = next;\n next = list[i];\n var cmp = comparePoints(range.end, next.start);\n if (cmp < 0)\n continue;\n if (cmp == 0 && !range.isEmpty() && !next.isEmpty())\n continue;\n if (comparePoints(range.end, next.end) < 0) {\n range.end.row = next.end.row;\n range.end.column = next.end.column;\n }\n list.splice(i, 1);\n removed.push(next);\n next = range;\n i--;\n }\n this.ranges = list;\n return removed;\n };\n RangeList.prototype.contains = function (row, column) {\n return this.pointIndex({ row: row, column: column }) >= 0;\n };\n RangeList.prototype.containsPoint = function (pos) {\n return this.pointIndex(pos) >= 0;\n };\n RangeList.prototype.rangeAtPoint = function (pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges[i];\n };\n RangeList.prototype.clipRows = function (startRow, endRow) {\n var list = this.ranges;\n if (list[0].start.row > endRow || list[list.length - 1].start.row < startRow)\n return [];\n var startIndex = this.pointIndex({ row: startRow, column: 0 });\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex({ row: endRow, column: 0 }, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n var clipped = [];\n for (var i = startIndex; i < endIndex; i++) {\n clipped.push(list[i]);\n }\n return clipped;\n };\n RangeList.prototype.removeAll = function () {\n return this.ranges.splice(0, this.ranges.length);\n };\n RangeList.prototype.attach = function (session) {\n if (this.session)\n this.detach();\n this.session = session;\n this.onChange = this.$onChange.bind(this);\n this.session.on('change', this.onChange);\n };\n RangeList.prototype.detach = function () {\n if (!this.session)\n return;\n this.session.removeListener('change', this.onChange);\n this.session = null;\n };\n RangeList.prototype.$onChange = function (delta) {\n var start = delta.start;\n var end = delta.end;\n var startRow = start.row;\n var endRow = end.row;\n var ranges = this.ranges;\n for (var i = 0, n = ranges.length; i < n; i++) {\n var r = ranges[i];\n if (r.end.row >= startRow)\n break;\n }\n if (delta.action == \"insert\") {\n var lineDif = endRow - startRow;\n var colDiff = -start.column + end.column;\n for (; i < n; i++) {\n var r = ranges[i];\n if (r.start.row > startRow)\n break;\n if (r.start.row == startRow && r.start.column >= start.column) {\n if (r.start.column == start.column && this.$bias <= 0) {\n }\n else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n if (r.end.row == startRow && r.end.column >= start.column) {\n if (r.end.column == start.column && this.$bias < 0) {\n continue;\n }\n if (r.end.column == start.column && colDiff > 0 && i < n - 1) {\n if (r.end.column > r.start.column && r.end.column == ranges[i + 1].start.column)\n r.end.column -= colDiff;\n }\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n }\n else {\n var lineDif = startRow - endRow;\n var colDiff = start.column - end.column;\n for (; i < n; i++) {\n var r = ranges[i];\n if (r.start.row > endRow)\n break;\n if (r.end.row < endRow\n && (startRow < r.end.row\n || startRow == r.end.row && start.column < r.end.column)) {\n r.end.row = startRow;\n r.end.column = start.column;\n }\n else if (r.end.row == endRow) {\n if (r.end.column <= end.column) {\n if (lineDif || r.end.column > start.column) {\n r.end.column = start.column;\n r.end.row = start.row;\n }\n }\n else {\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n else if (r.end.row > endRow) {\n r.end.row += lineDif;\n }\n if (r.start.row < endRow\n && (startRow < r.start.row\n || startRow == r.start.row && start.column < r.start.column)) {\n r.start.row = startRow;\n r.start.column = start.column;\n }\n else if (r.start.row == endRow) {\n if (r.start.column <= end.column) {\n if (lineDif || r.start.column > start.column) {\n r.start.column = start.column;\n r.start.row = start.row;\n }\n }\n else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n else if (r.start.row > endRow) {\n r.start.row += lineDif;\n }\n }\n }\n if (lineDif != 0 && i < n) {\n for (; i < n; i++) {\n var r = ranges[i];\n r.start.row += lineDif;\n r.end.row += lineDif;\n }\n }\n };\n return RangeList;\n}());\nRangeList.prototype.comparePoints = comparePoints;\nexports.RangeList = RangeList;\n\n});\n\nace.define(\"ace/edit_session/fold\",[\"require\",\"exports\",\"module\",\"ace/range_list\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar RangeList = require(\"../range_list\").RangeList;\nvar Fold = /** @class */ (function (_super) {\n __extends(Fold, _super);\n function Fold(range, placeholder) {\n var _this = _super.call(this) || this;\n _this.foldLine = null;\n _this.placeholder = placeholder;\n _this.range = range;\n _this.start = range.start;\n _this.end = range.end;\n _this.sameRow = range.start.row == range.end.row;\n _this.subFolds = _this.ranges = [];\n return _this;\n }\n Fold.prototype.toString = function () {\n return '\"' + this.placeholder + '\" ' + this.range.toString();\n };\n Fold.prototype.setFoldLine = function (foldLine) {\n this.foldLine = foldLine;\n this.subFolds.forEach(function (fold) {\n fold.setFoldLine(foldLine);\n });\n };\n Fold.prototype.clone = function () {\n var range = this.range.clone();\n var fold = new Fold(range, this.placeholder);\n this.subFolds.forEach(function (subFold) {\n fold.subFolds.push(subFold.clone());\n });\n fold.collapseChildren = this.collapseChildren;\n return fold;\n };\n Fold.prototype.addSubFold = function (fold) {\n if (this.range.isEqual(fold))\n return;\n consumeRange(fold, this.start);\n var row = fold.start.row, column = fold.start.column;\n for (var i = 0, cmp = -1; i < this.subFolds.length; i++) {\n cmp = this.subFolds[i].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n var afterStart = this.subFolds[i];\n var firstConsumed = 0;\n if (cmp == 0) {\n if (afterStart.range.containsRange(fold))\n return afterStart.addSubFold(fold);\n else\n firstConsumed = 1;\n }\n var row = fold.range.end.row, column = fold.range.end.column;\n for (var j = i, cmp = -1; j < this.subFolds.length; j++) {\n cmp = this.subFolds[j].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n if (cmp == 0)\n j++;\n var consumedFolds = this.subFolds.splice(i, j - i, fold);\n var last = cmp == 0 ? consumedFolds.length - 1 : consumedFolds.length;\n for (var k = firstConsumed; k < last; k++) {\n fold.addSubFold(consumedFolds[k]);\n }\n fold.setFoldLine(this.foldLine);\n return fold;\n };\n Fold.prototype.restoreRange = function (range) {\n return restoreRange(range, this.start);\n };\n return Fold;\n}(RangeList));\nfunction consumePoint(point, anchor) {\n point.row -= anchor.row;\n if (point.row == 0)\n point.column -= anchor.column;\n}\nfunction consumeRange(range, anchor) {\n consumePoint(range.start, anchor);\n consumePoint(range.end, anchor);\n}\nfunction restorePoint(point, anchor) {\n if (point.row == 0)\n point.column += anchor.column;\n point.row += anchor.row;\n}\nfunction restoreRange(range, anchor) {\n restorePoint(range.start, anchor);\n restorePoint(range.end, anchor);\n}\nexports.Fold = Fold;\n\n});\n\nace.define(\"ace/edit_session/folding\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/edit_session/fold_line\",\"ace/edit_session/fold\",\"ace/token_iterator\",\"ace/mouse/mouse_event\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar FoldLine = require(\"./fold_line\").FoldLine;\nvar Fold = require(\"./fold\").Fold;\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar MouseEvent = require(\"../mouse/mouse_event\").MouseEvent;\nfunction Folding() {\n this.getFoldAt = function (row, column, side) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine)\n return null;\n var folds = foldLine.folds;\n for (var i = 0; i < folds.length; i++) {\n var range = folds[i].range;\n if (range.contains(row, column)) {\n if (side == 1 && range.isEnd(row, column) && !range.isEmpty()) {\n continue;\n }\n else if (side == -1 && range.isStart(row, column) && !range.isEmpty()) {\n continue;\n }\n return folds[i];\n }\n }\n };\n this.getFoldsInRange = function (range) {\n var start = range.start;\n var end = range.end;\n var foldLines = this.$foldData;\n var foundFolds = [];\n start.column += 1;\n end.column -= 1;\n for (var i = 0; i < foldLines.length; i++) {\n var cmp = foldLines[i].range.compareRange(range);\n if (cmp == 2) {\n continue;\n }\n else if (cmp == -2) {\n break;\n }\n var folds = foldLines[i].folds;\n for (var j = 0; j < folds.length; j++) {\n var fold = folds[j];\n cmp = fold.range.compareRange(range);\n if (cmp == -2) {\n break;\n }\n else if (cmp == 2) {\n continue;\n }\n else \n if (cmp == 42) {\n break;\n }\n foundFolds.push(fold);\n }\n }\n start.column -= 1;\n end.column += 1;\n return foundFolds;\n };\n this.getFoldsInRangeList = function (ranges) {\n if (Array.isArray(ranges)) {\n var folds = [];\n ranges.forEach(function (range) {\n folds = folds.concat(this.getFoldsInRange(range));\n }, this);\n }\n else {\n var folds = this.getFoldsInRange(ranges);\n }\n return folds;\n };\n this.getAllFolds = function () {\n var folds = [];\n var foldLines = this.$foldData;\n for (var i = 0; i < foldLines.length; i++)\n for (var j = 0; j < foldLines[i].folds.length; j++)\n folds.push(foldLines[i].folds[j]);\n return folds;\n };\n this.getFoldStringAt = function (row, column, trim, foldLine) {\n foldLine = foldLine || this.getFoldLine(row);\n if (!foldLine)\n return null;\n var lastFold = {\n end: { column: 0 }\n };\n var str, fold;\n for (var i = 0; i < foldLine.folds.length; i++) {\n fold = foldLine.folds[i];\n var cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n str = this\n .getLine(fold.start.row)\n .substring(lastFold.end.column, fold.start.column);\n break;\n }\n else if (cmp === 0) {\n return null;\n }\n lastFold = fold;\n }\n if (!str)\n str = this.getLine(fold.start.row).substring(lastFold.end.column);\n if (trim == -1)\n return str.substring(0, column - lastFold.end.column);\n else if (trim == 1)\n return str.substring(column - lastFold.end.column);\n else\n return str;\n };\n this.getFoldLine = function (docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.start.row <= docRow && foldLine.end.row >= docRow) {\n return foldLine;\n }\n else if (foldLine.end.row > docRow) {\n return null;\n }\n }\n return null;\n };\n this.getNextFoldLine = function (docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.end.row >= docRow) {\n return foldLine;\n }\n }\n return null;\n };\n this.getFoldedRowCount = function (first, last) {\n var foldData = this.$foldData, rowCount = last - first + 1;\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i], end = foldLine.end.row, start = foldLine.start.row;\n if (end >= last) {\n if (start < last) {\n if (start >= first)\n rowCount -= last - start;\n else\n rowCount = 0; // in one fold\n }\n break;\n }\n else if (end >= first) {\n if (start >= first) // fold inside range\n rowCount -= end - start;\n else\n rowCount -= end - first + 1;\n }\n }\n return rowCount;\n };\n this.$addFoldLine = function (foldLine) {\n this.$foldData.push(foldLine);\n this.$foldData.sort(function (a, b) {\n return a.start.row - b.start.row;\n });\n return foldLine;\n };\n this.addFold = function (placeholder, range) {\n var foldData = this.$foldData;\n var added = false;\n var fold;\n if (placeholder instanceof Fold)\n fold = placeholder;\n else {\n fold = new Fold(range, placeholder);\n fold.collapseChildren = range.collapseChildren;\n }\n this.$clipRangeToDocument(fold.range);\n var startRow = fold.start.row;\n var startColumn = fold.start.column;\n var endRow = fold.end.row;\n var endColumn = fold.end.column;\n var startFold = this.getFoldAt(startRow, startColumn, 1);\n var endFold = this.getFoldAt(endRow, endColumn, -1);\n if (startFold && endFold == startFold)\n return startFold.addSubFold(fold);\n if (startFold && !startFold.range.isStart(startRow, startColumn))\n this.removeFold(startFold);\n if (endFold && !endFold.range.isEnd(endRow, endColumn))\n this.removeFold(endFold);\n var folds = this.getFoldsInRange(fold.range);\n if (folds.length > 0) {\n this.removeFolds(folds);\n if (!fold.collapseChildren) {\n folds.forEach(function (subFold) {\n fold.addSubFold(subFold);\n });\n }\n }\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (endRow == foldLine.start.row) {\n foldLine.addFold(fold);\n added = true;\n break;\n }\n else if (startRow == foldLine.end.row) {\n foldLine.addFold(fold);\n added = true;\n if (!fold.sameRow) {\n var foldLineNext = foldData[i + 1];\n if (foldLineNext && foldLineNext.start.row == endRow) {\n foldLine.merge(foldLineNext);\n break;\n }\n }\n break;\n }\n else if (endRow <= foldLine.start.row) {\n break;\n }\n }\n if (!added)\n foldLine = this.$addFoldLine(new FoldLine(this.$foldData, fold));\n if (this.$useWrapMode)\n this.$updateWrapData(foldLine.start.row, foldLine.start.row);\n else\n this.$updateRowLengthCache(foldLine.start.row, foldLine.start.row);\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"add\" });\n return fold;\n };\n this.addFolds = function (folds) {\n folds.forEach(function (fold) {\n this.addFold(fold);\n }, this);\n };\n this.removeFold = function (fold) {\n var foldLine = fold.foldLine;\n var startRow = foldLine.start.row;\n var endRow = foldLine.end.row;\n var foldLines = this.$foldData;\n var folds = foldLine.folds;\n if (folds.length == 1) {\n foldLines.splice(foldLines.indexOf(foldLine), 1);\n }\n else \n if (foldLine.range.isEnd(fold.end.row, fold.end.column)) {\n folds.pop();\n foldLine.end.row = folds[folds.length - 1].end.row;\n foldLine.end.column = folds[folds.length - 1].end.column;\n }\n else \n if (foldLine.range.isStart(fold.start.row, fold.start.column)) {\n folds.shift();\n foldLine.start.row = folds[0].start.row;\n foldLine.start.column = folds[0].start.column;\n }\n else \n if (fold.sameRow) {\n folds.splice(folds.indexOf(fold), 1);\n }\n else \n {\n var newFoldLine = foldLine.split(fold.start.row, fold.start.column);\n folds = newFoldLine.folds;\n folds.shift();\n newFoldLine.start.row = folds[0].start.row;\n newFoldLine.start.column = folds[0].start.column;\n }\n if (!this.$updating) {\n if (this.$useWrapMode)\n this.$updateWrapData(startRow, endRow);\n else\n this.$updateRowLengthCache(startRow, endRow);\n }\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"remove\" });\n };\n this.removeFolds = function (folds) {\n var cloneFolds = [];\n for (var i = 0; i < folds.length; i++) {\n cloneFolds.push(folds[i]);\n }\n cloneFolds.forEach(function (fold) {\n this.removeFold(fold);\n }, this);\n this.$modified = true;\n };\n this.expandFold = function (fold) {\n this.removeFold(fold);\n fold.subFolds.forEach(function (subFold) {\n fold.restoreRange(subFold);\n this.addFold(subFold);\n }, this);\n if (fold.collapseChildren > 0) {\n this.foldAll(fold.start.row + 1, fold.end.row, fold.collapseChildren - 1);\n }\n fold.subFolds = [];\n };\n this.expandFolds = function (folds) {\n folds.forEach(function (fold) {\n this.expandFold(fold);\n }, this);\n };\n this.unfold = function (location, expandInner) {\n var range, folds;\n if (location == null) {\n range = new Range(0, 0, this.getLength(), 0);\n if (expandInner == null)\n expandInner = true;\n }\n else if (typeof location == \"number\") {\n range = new Range(location, 0, location, this.getLine(location).length);\n }\n else if (\"row\" in location) {\n range = Range.fromPoints(location, location);\n }\n else if (Array.isArray(location)) {\n folds = [];\n location.forEach(function (range) {\n folds = folds.concat(this.unfold(range));\n }, this);\n return folds;\n }\n else {\n range = location;\n }\n folds = this.getFoldsInRangeList(range);\n var outermostFolds = folds;\n while (folds.length == 1\n && Range.comparePoints(folds[0].start, range.start) < 0\n && Range.comparePoints(folds[0].end, range.end) > 0) {\n this.expandFolds(folds);\n folds = this.getFoldsInRangeList(range);\n }\n if (expandInner != false) {\n this.removeFolds(folds);\n }\n else {\n this.expandFolds(folds);\n }\n if (outermostFolds.length)\n return outermostFolds;\n };\n this.isRowFolded = function (docRow, startFoldRow) {\n return !!this.getFoldLine(docRow, startFoldRow);\n };\n this.getRowFoldEnd = function (docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.end.row : docRow;\n };\n this.getRowFoldStart = function (docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.start.row : docRow;\n };\n this.getFoldDisplayLine = function (foldLine, endRow, endColumn, startRow, startColumn) {\n if (startRow == null)\n startRow = foldLine.start.row;\n if (startColumn == null)\n startColumn = 0;\n if (endRow == null)\n endRow = foldLine.end.row;\n if (endColumn == null)\n endColumn = this.getLine(endRow).length;\n var doc = this.doc;\n var textLine = \"\";\n foldLine.walk(function (placeholder, row, column, lastColumn) {\n if (row < startRow)\n return;\n if (row == startRow) {\n if (column < startColumn)\n return;\n lastColumn = Math.max(startColumn, lastColumn);\n }\n if (placeholder != null) {\n textLine += placeholder;\n }\n else {\n textLine += doc.getLine(row).substring(lastColumn, column);\n }\n }, endRow, endColumn);\n return textLine;\n };\n this.getDisplayLine = function (row, endColumn, startRow, startColumn) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine) {\n var line;\n line = this.doc.getLine(row);\n return line.substring(startColumn || 0, endColumn || line.length);\n }\n else {\n return this.getFoldDisplayLine(foldLine, row, endColumn, startRow, startColumn);\n }\n };\n this.$cloneFoldData = function () {\n var fd = [];\n fd = this.$foldData.map(function (foldLine) {\n var folds = foldLine.folds.map(function (fold) {\n return fold.clone();\n });\n return new FoldLine(fd, folds);\n });\n return fd;\n };\n this.toggleFold = function (tryToUnfold) {\n var selection = this.selection;\n var range = selection.getRange();\n var fold;\n var bracketPos;\n if (range.isEmpty()) {\n var cursor = range.start;\n fold = this.getFoldAt(cursor.row, cursor.column);\n if (fold) {\n this.expandFold(fold);\n return;\n }\n else if (bracketPos = this.findMatchingBracket(cursor)) {\n if (range.comparePoint(bracketPos) == 1) {\n range.end = bracketPos;\n }\n else {\n range.start = bracketPos;\n range.start.column++;\n range.end.column--;\n }\n }\n else if (bracketPos = this.findMatchingBracket({ row: cursor.row, column: cursor.column + 1 })) {\n if (range.comparePoint(bracketPos) == 1)\n range.end = bracketPos;\n else\n range.start = bracketPos;\n range.start.column++;\n }\n else {\n range = this.getCommentFoldRange(cursor.row, cursor.column) || range;\n }\n }\n else {\n var folds = this.getFoldsInRange(range);\n if (tryToUnfold && folds.length) {\n this.expandFolds(folds);\n return;\n }\n else if (folds.length == 1) {\n fold = folds[0];\n }\n }\n if (!fold)\n fold = this.getFoldAt(range.start.row, range.start.column);\n if (fold && fold.range.toString() == range.toString()) {\n this.expandFold(fold);\n return;\n }\n var placeholder = \"...\";\n if (!range.isMultiLine()) {\n placeholder = this.getTextRange(range);\n if (placeholder.length < 4)\n return;\n placeholder = placeholder.trim().substring(0, 2) + \"..\";\n }\n this.addFold(placeholder, range);\n };\n this.getCommentFoldRange = function (row, column, dir) {\n var iterator = new TokenIterator(this, row, column);\n var token = iterator.getCurrentToken();\n var type = token && token.type;\n if (token && /^comment|string/.test(type)) {\n type = type.match(/comment|string/)[0];\n if (type == \"comment\")\n type += \"|doc-start|\\\\.doc\";\n var re = new RegExp(type);\n var range = new Range();\n if (dir != 1) {\n do {\n token = iterator.stepBackward();\n } while (token && re.test(token.type) && !/^comment.end/.test(token.type));\n token = iterator.stepForward();\n }\n range.start.row = iterator.getCurrentTokenRow();\n range.start.column = iterator.getCurrentTokenColumn() + (/^comment.start/.test(token.type) ? token.value.length : 2);\n iterator = new TokenIterator(this, row, column);\n if (dir != -1) {\n var lastRow = -1;\n do {\n token = iterator.stepForward();\n if (lastRow == -1) {\n var state = this.getState(iterator.$row);\n if (!re.test(state))\n lastRow = iterator.$row;\n }\n else if (iterator.$row > lastRow) {\n break;\n }\n } while (token && re.test(token.type) && !/^comment.start/.test(token.type));\n token = iterator.stepBackward();\n }\n else\n token = iterator.getCurrentToken();\n range.end.row = iterator.getCurrentTokenRow();\n range.end.column = iterator.getCurrentTokenColumn();\n if (!/^comment.end/.test(token.type)) {\n range.end.column += token.value.length - 2;\n }\n return range;\n }\n };\n this.foldAll = function (startRow, endRow, depth, test) {\n if (depth == undefined)\n depth = 100000; // JSON.stringify doesn't hanle Infinity\n var foldWidgets = this.foldWidgets;\n if (!foldWidgets)\n return; // mode doesn't support folding\n endRow = endRow || this.getLength();\n startRow = startRow || 0;\n for (var row = startRow; row < endRow; row++) {\n if (foldWidgets[row] == null)\n foldWidgets[row] = this.getFoldWidget(row);\n if (foldWidgets[row] != \"start\")\n continue;\n if (test && !test(row))\n continue;\n var range = this.getFoldWidgetRange(row);\n if (range && range.isMultiLine()\n && range.end.row <= endRow\n && range.start.row >= startRow) {\n row = range.end.row;\n range.collapseChildren = depth;\n this.addFold(\"...\", range);\n }\n }\n };\n this.foldToLevel = function (level) {\n this.foldAll();\n while (level-- > 0)\n this.unfold(null, false);\n };\n this.foldAllComments = function () {\n var session = this;\n this.foldAll(null, null, null, function (row) {\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token.type == \"text\" && /^\\s+$/.test(token.value))\n continue;\n if (/comment/.test(token.type))\n return true;\n return false;\n }\n });\n };\n this.$foldStyles = {\n \"manual\": 1,\n \"markbegin\": 1,\n \"markbeginend\": 1\n };\n this.$foldStyle = \"markbegin\";\n this.setFoldStyle = function (style) {\n if (!this.$foldStyles[style])\n throw new Error(\"invalid fold style: \" + style + \"[\" + Object.keys(this.$foldStyles).join(\", \") + \"]\");\n if (this.$foldStyle == style)\n return;\n this.$foldStyle = style;\n if (style == \"manual\")\n this.unfold();\n var mode = this.$foldMode;\n this.$setFolding(null);\n this.$setFolding(mode);\n };\n this.$setFolding = function (foldMode) {\n if (this.$foldMode == foldMode)\n return;\n this.$foldMode = foldMode;\n this.off('change', this.$updateFoldWidgets);\n this.off('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n this._signal(\"changeAnnotation\");\n if (!foldMode || this.$foldStyle == \"manual\") {\n this.foldWidgets = null;\n return;\n }\n this.foldWidgets = [];\n this.getFoldWidget = foldMode.getFoldWidget.bind(foldMode, this, this.$foldStyle);\n this.getFoldWidgetRange = foldMode.getFoldWidgetRange.bind(foldMode, this, this.$foldStyle);\n this.$updateFoldWidgets = this.updateFoldWidgets.bind(this);\n this.$tokenizerUpdateFoldWidgets = this.tokenizerUpdateFoldWidgets.bind(this);\n this.on('change', this.$updateFoldWidgets);\n this.on('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n };\n this.getParentFoldRangeData = function (row, ignoreCurrent) {\n var fw = this.foldWidgets;\n if (!fw || (ignoreCurrent && fw[row]))\n return {};\n var i = row - 1, firstRange;\n while (i >= 0) {\n var c = fw[i];\n if (c == null)\n c = fw[i] = this.getFoldWidget(i);\n if (c == \"start\") {\n var range = this.getFoldWidgetRange(i);\n if (!firstRange)\n firstRange = range;\n if (range && range.end.row >= row)\n break;\n }\n i--;\n }\n return {\n range: i !== -1 && range,\n firstRange: firstRange\n };\n };\n this.onFoldWidgetClick = function (row, e) {\n if (e instanceof MouseEvent)\n e = e.domEvent;\n var options = {\n children: e.shiftKey,\n all: e.ctrlKey || e.metaKey,\n siblings: e.altKey\n };\n var range = this.$toggleFoldWidget(row, options);\n if (!range) {\n var el = (e.target || e.srcElement);\n if (el && /ace_fold-widget/.test(el.className))\n el.className += \" ace_invalid\";\n }\n };\n this.$toggleFoldWidget = function (row, options) {\n if (!this.getFoldWidget)\n return;\n var type = this.getFoldWidget(row);\n var line = this.getLine(row);\n var dir = type === \"end\" ? -1 : 1;\n var fold = this.getFoldAt(row, dir === -1 ? 0 : line.length, dir);\n if (fold) {\n if (options.children || options.all)\n this.removeFold(fold);\n else\n this.expandFold(fold);\n return fold;\n }\n var range = this.getFoldWidgetRange(row, true);\n if (range && !range.isMultiLine()) {\n fold = this.getFoldAt(range.start.row, range.start.column, 1);\n if (fold && range.isEqual(fold.range)) {\n this.removeFold(fold);\n return fold;\n }\n }\n if (options.siblings) {\n var data = this.getParentFoldRangeData(row);\n if (data.range) {\n var startRow = data.range.start.row + 1;\n var endRow = data.range.end.row;\n }\n this.foldAll(startRow, endRow, options.all ? 10000 : 0);\n }\n else if (options.children) {\n endRow = range ? range.end.row : this.getLength();\n this.foldAll(row + 1, endRow, options.all ? 10000 : 0);\n }\n else if (range) {\n if (options.all)\n range.collapseChildren = 10000;\n this.addFold(\"...\", range);\n }\n return range;\n };\n this.toggleFoldWidget = function (toggleParent) {\n var row = this.selection.getCursor().row;\n row = this.getRowFoldStart(row);\n var range = this.$toggleFoldWidget(row, {});\n if (range)\n return;\n var data = this.getParentFoldRangeData(row, true);\n range = data.range || data.firstRange;\n if (range) {\n row = range.start.row;\n var fold = this.getFoldAt(row, this.getLine(row).length, 1);\n if (fold) {\n this.removeFold(fold);\n }\n else {\n this.addFold(\"...\", range);\n }\n }\n };\n this.updateFoldWidgets = function (delta) {\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n this.foldWidgets[firstRow] = null;\n }\n else if (delta.action == 'remove') {\n this.foldWidgets.splice(firstRow, len + 1, null);\n }\n else {\n var args = Array(len + 1);\n args.unshift(firstRow, 1);\n this.foldWidgets.splice.apply(this.foldWidgets, args);\n }\n };\n this.tokenizerUpdateFoldWidgets = function (e) {\n var rows = e.data;\n if (rows.first != rows.last) {\n if (this.foldWidgets.length > rows.first)\n this.foldWidgets.splice(rows.first, this.foldWidgets.length);\n }\n };\n}\nexports.Folding = Folding;\n\n});\n\nace.define(\"ace/edit_session/bracket_match\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar Range = require(\"../range\").Range;\nfunction BracketMatch() {\n this.findMatchingBracket = function (position, chr) {\n if (position.column == 0)\n return null;\n var charBeforeCursor = chr || this.getLine(position.row).charAt(position.column - 1);\n if (charBeforeCursor == \"\")\n return null;\n var match = charBeforeCursor.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match)\n return null;\n if (match[1])\n return this.$findClosingBracket(match[1], position);\n else\n return this.$findOpeningBracket(match[2], position);\n };\n this.getBracketRange = function (pos) {\n var line = this.getLine(pos.row);\n var before = true, range;\n var chr = line.charAt(pos.column - 1);\n var match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match) {\n chr = line.charAt(pos.column);\n pos = { row: pos.row, column: pos.column + 1 };\n match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n before = false;\n }\n if (!match)\n return null;\n if (match[1]) {\n var bracketPos = this.$findClosingBracket(match[1], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(pos, bracketPos);\n if (!before) {\n range.end.column++;\n range.start.column--;\n }\n range.cursor = range.end;\n }\n else {\n var bracketPos = this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(bracketPos, pos);\n if (!before) {\n range.start.column++;\n range.end.column--;\n }\n range.cursor = range.start;\n }\n return range;\n };\n this.getMatchingBracketRanges = function (pos, isBackwards) {\n var line = this.getLine(pos.row);\n var bracketsRegExp = /([\\(\\[\\{])|([\\)\\]\\}])/;\n var chr = !isBackwards && line.charAt(pos.column - 1);\n var match = chr && chr.match(bracketsRegExp);\n if (!match) {\n chr = (isBackwards === undefined || isBackwards) && line.charAt(pos.column);\n pos = {\n row: pos.row,\n column: pos.column + 1\n };\n match = chr && chr.match(bracketsRegExp);\n }\n if (!match)\n return null;\n var startRange = new Range(pos.row, pos.column - 1, pos.row, pos.column);\n var bracketPos = match[1] ? this.$findClosingBracket(match[1], pos)\n : this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return [startRange];\n var endRange = new Range(bracketPos.row, bracketPos.column, bracketPos.row, bracketPos.column + 1);\n return [startRange, endRange];\n };\n this.$brackets = {\n \")\": \"(\",\n \"(\": \")\",\n \"]\": \"[\",\n \"[\": \"]\",\n \"{\": \"}\",\n \"}\": \"{\",\n \"<\": \">\",\n \">\": \"<\"\n };\n this.$findOpeningBracket = function (bracket, position, typeRe) {\n var openBracket = this.$brackets[bracket];\n var depth = 1;\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n if (!typeRe) {\n typeRe = new RegExp(\"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"rparen\", \".paren\")\n .replace(/\\b(?:end)\\b/, \"(?:start|begin|end)\")\n .replace(/-close\\b/, \"-(close|open)\")\n + \")+\");\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn() - 2;\n var value = token.value;\n while (true) {\n while (valueIndex >= 0) {\n var chr = value.charAt(valueIndex);\n if (chr == openBracket) {\n depth -= 1;\n if (depth == 0) {\n return { row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn() };\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex -= 1;\n }\n do {\n token = iterator.stepBackward();\n } while (token && !typeRe.test(token.type));\n if (token == null)\n break;\n value = token.value;\n valueIndex = value.length - 1;\n }\n return null;\n };\n this.$findClosingBracket = function (bracket, position, typeRe) {\n var closingBracket = this.$brackets[bracket];\n var depth = 1;\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n if (!typeRe) {\n typeRe = new RegExp(\"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"lparen\", \".paren\")\n .replace(/\\b(?:start|begin)\\b/, \"(?:start|begin|end)\")\n .replace(/-open\\b/, \"-(close|open)\")\n + \")+\");\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn();\n while (true) {\n var value = token.value;\n var valueLength = value.length;\n while (valueIndex < valueLength) {\n var chr = value.charAt(valueIndex);\n if (chr == closingBracket) {\n depth -= 1;\n if (depth == 0) {\n return { row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn() };\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex += 1;\n }\n do {\n token = iterator.stepForward();\n } while (token && !typeRe.test(token.type));\n if (token == null)\n break;\n valueIndex = 0;\n }\n return null;\n };\n this.getMatchingTags = function (pos) {\n var iterator = new TokenIterator(this, pos.row, pos.column);\n var token = this.$findTagName(iterator);\n if (!token)\n return;\n var prevToken = iterator.stepBackward();\n if (prevToken.value === '<') {\n return this.$findClosingTag(iterator, token);\n }\n else {\n return this.$findOpeningTag(iterator, token);\n }\n };\n this.$findTagName = function (iterator) {\n var token = iterator.getCurrentToken();\n var found = false;\n var backward = false;\n if (token && token.type.indexOf('tag-name') === -1) {\n do {\n if (backward)\n token = iterator.stepBackward();\n else\n token = iterator.stepForward();\n if (token) {\n if (token.value === \"/>\") {\n backward = true;\n }\n else if (token.type.indexOf('tag-name') !== -1) {\n found = true;\n }\n }\n } while (token && !found);\n }\n return token;\n };\n this.$findClosingTag = function (iterator, token) {\n var prevToken;\n var currentTag = token.value;\n var tag = token.value;\n var depth = 0;\n var openTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1);\n token = iterator.stepForward();\n var openTagName = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + token.value.length);\n var foundOpenTagEnd = false;\n do {\n prevToken = token;\n token = iterator.stepForward();\n if (token) {\n if (token.value === '>' && !foundOpenTagEnd) {\n var openTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for `>`\n foundOpenTagEnd = true;\n }\n if (token.type.indexOf('tag-name') !== -1) {\n currentTag = token.value;\n if (tag === currentTag) {\n if (prevToken.value === '<') {\n depth++;\n }\n else if (prevToken.value === '') {\n var closeTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n }\n else {\n return;\n }\n }\n }\n }\n }\n else if (tag === currentTag && token.value === '/>') { // self-closing tag\n depth--;\n if (depth < 0) { //found self-closing tag end\n var closeTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 2);\n var closeTagName = closeTagStart;\n var closeTagEnd = closeTagName;\n var openTagEnd = new Range(openTagName.end.row, openTagName.end.column, openTagName.end.row, openTagName.end.column + 1);\n }\n }\n }\n } while (token && depth >= 0);\n if (openTagStart && openTagEnd && closeTagStart && closeTagEnd && openTagName && closeTagName) {\n return {\n openTag: new Range(openTagStart.start.row, openTagStart.start.column, openTagEnd.end.row, openTagEnd.end.column),\n closeTag: new Range(closeTagStart.start.row, closeTagStart.start.column, closeTagEnd.end.row, closeTagEnd.end.column),\n openTagName: openTagName,\n closeTagName: closeTagName\n };\n }\n };\n this.$findOpeningTag = function (iterator, token) {\n var prevToken = iterator.getCurrentToken();\n var tag = token.value;\n var depth = 0;\n var startRow = iterator.getCurrentTokenRow();\n var startColumn = iterator.getCurrentTokenColumn();\n var endColumn = startColumn + 2;\n var closeTagStart = new Range(startRow, startColumn, startRow, endColumn); //Range for \")\n return;\n var closeTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n iterator.stepBackward();\n iterator.stepBackward();\n do {\n token = prevToken;\n startRow = iterator.getCurrentTokenRow();\n startColumn = iterator.getCurrentTokenColumn();\n endColumn = startColumn + token.value.length;\n prevToken = iterator.stepBackward();\n if (token) {\n if (token.type.indexOf('tag-name') !== -1) {\n if (tag === token.value) {\n if (prevToken.value === '<') {\n depth++;\n if (depth > 0) { //found opening tag\n var openTagName = new Range(startRow, startColumn, startRow, endColumn);\n var openTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for <\n do {\n token = iterator.stepForward();\n } while (token && token.value !== '>');\n var openTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n }\n }\n else if (prevToken.value === '') { // self-closing tag\n var stepCount = 0;\n var tmpToken = prevToken;\n while (tmpToken) {\n if (tmpToken.type.indexOf('tag-name') !== -1 && tmpToken.value === tag) {\n depth--;\n break;\n }\n else if (tmpToken.value === '<') {\n break;\n }\n tmpToken = iterator.stepBackward();\n stepCount++;\n }\n for (var i = 0; i < stepCount; i++) {\n iterator.stepForward();\n }\n }\n }\n } while (prevToken && depth <= 0);\n if (openTagStart && openTagEnd && closeTagStart && closeTagEnd && openTagName && closeTagName) {\n return {\n openTag: new Range(openTagStart.start.row, openTagStart.start.column, openTagEnd.end.row, openTagEnd.end.column),\n closeTag: new Range(closeTagStart.start.row, closeTagStart.start.column, closeTagEnd.end.row, closeTagEnd.end.column),\n openTagName: openTagName,\n closeTagName: closeTagName\n };\n }\n };\n}\nexports.BracketMatch = BracketMatch;\n\n});\n\nace.define(\"ace/edit_session\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/bidihandler\",\"ace/config\",\"ace/lib/event_emitter\",\"ace/selection\",\"ace/mode/text\",\"ace/range\",\"ace/document\",\"ace/background_tokenizer\",\"ace/search_highlight\",\"ace/undomanager\",\"ace/edit_session/folding\",\"ace/edit_session/bracket_match\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar lang = require(\"./lib/lang\");\nvar BidiHandler = require(\"./bidihandler\").BidiHandler;\nvar config = require(\"./config\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Selection = require(\"./selection\").Selection;\nvar TextMode = require(\"./mode/text\").Mode;\nvar Range = require(\"./range\").Range;\nvar Document = require(\"./document\").Document;\nvar BackgroundTokenizer = require(\"./background_tokenizer\").BackgroundTokenizer;\nvar SearchHighlight = require(\"./search_highlight\").SearchHighlight;\nvar UndoManager = require(\"./undomanager\").UndoManager;\nvar EditSession = /** @class */ (function () {\n function EditSession(text, mode) {\n this.$breakpoints = [];\n this.$decorations = [];\n this.$frontMarkers = {};\n this.$backMarkers = {};\n this.$markerId = 1;\n this.$undoSelect = true;\n this.$foldData = [];\n this.id = \"session\" + (++EditSession.$uid);\n this.$foldData.toString = function () {\n return this.join(\"\\n\");\n };\n this.bgTokenizer = new BackgroundTokenizer((new TextMode()).getTokenizer(), this);\n var _self = this;\n this.bgTokenizer.on(\"update\", function (e) {\n _self._signal(\"tokenizerUpdate\", e);\n });\n this.on(\"changeFold\", this.onChangeFold.bind(this));\n this.$onChange = this.onChange.bind(this);\n if (typeof text != \"object\" || !text.getLine)\n text = new Document(text);\n this.setDocument(text);\n this.selection = new Selection(this);\n this.$bidiHandler = new BidiHandler(this);\n config.resetOptions(this);\n this.setMode(mode);\n config._signal(\"session\", this);\n this.destroyed = false;\n }\n EditSession.prototype.setDocument = function (doc) {\n if (this.doc)\n this.doc.off(\"change\", this.$onChange);\n this.doc = doc;\n doc.on(\"change\", this.$onChange, true);\n this.bgTokenizer.setDocument(this.getDocument());\n this.resetCaches();\n };\n EditSession.prototype.getDocument = function () {\n return this.doc;\n };\n EditSession.prototype.$resetRowCache = function (docRow) {\n if (!docRow) {\n this.$docRowCache = [];\n this.$screenRowCache = [];\n return;\n }\n var l = this.$docRowCache.length;\n var i = this.$getRowCacheIndex(this.$docRowCache, docRow) + 1;\n if (l > i) {\n this.$docRowCache.splice(i, l);\n this.$screenRowCache.splice(i, l);\n }\n };\n EditSession.prototype.$getRowCacheIndex = function (cacheArray, val) {\n var low = 0;\n var hi = cacheArray.length - 1;\n while (low <= hi) {\n var mid = (low + hi) >> 1;\n var c = cacheArray[mid];\n if (val > c)\n low = mid + 1;\n else if (val < c)\n hi = mid - 1;\n else\n return mid;\n }\n return low - 1;\n };\n EditSession.prototype.resetCaches = function () {\n this.$modified = true;\n this.$wrapData = [];\n this.$rowLengthCache = [];\n this.$resetRowCache(0);\n if (!this.destroyed)\n this.bgTokenizer.start(0);\n };\n EditSession.prototype.onChangeFold = function (e) {\n var fold = e.data;\n this.$resetRowCache(fold.start.row);\n };\n EditSession.prototype.onChange = function (delta) {\n this.$modified = true;\n this.$bidiHandler.onChange(delta);\n this.$resetRowCache(delta.start.row);\n var removedFolds = this.$updateInternalDataOnChange(delta);\n if (!this.$fromUndo && this.$undoManager) {\n if (removedFolds && removedFolds.length) {\n this.$undoManager.add({\n action: \"removeFolds\",\n folds: removedFolds\n }, this.mergeUndoDeltas);\n this.mergeUndoDeltas = true;\n }\n this.$undoManager.add(delta, this.mergeUndoDeltas);\n this.mergeUndoDeltas = true;\n this.$informUndoManager.schedule();\n }\n this.bgTokenizer.$updateOnChange(delta);\n this._signal(\"change\", delta);\n };\n EditSession.prototype.setValue = function (text) {\n this.doc.setValue(text);\n this.selection.moveTo(0, 0);\n this.$resetRowCache(0);\n this.setUndoManager(this.$undoManager);\n this.getUndoManager().reset();\n };\n EditSession.fromJSON = function (session) {\n session = JSON.parse(session);\n var undoManager = new UndoManager();\n undoManager.$undoStack = session.history.undo;\n undoManager.$redoStack = session.history.redo;\n undoManager.mark = session.history.mark;\n undoManager.$rev = session.history.rev;\n var editSession = new EditSession(session.value);\n session.folds.forEach(function (fold) {\n editSession.addFold(\"...\", Range.fromPoints(fold.start, fold.end));\n });\n editSession.setAnnotations(session.annotations);\n editSession.setBreakpoints(session.breakpoints);\n editSession.setMode(session.mode);\n editSession.setScrollLeft(session.scrollLeft);\n editSession.setScrollTop(session.scrollTop);\n editSession.setUndoManager(undoManager);\n editSession.selection.fromJSON(session.selection);\n return editSession;\n };\n EditSession.prototype.toJSON = function () {\n return {\n annotations: this.$annotations,\n breakpoints: this.$breakpoints,\n folds: this.getAllFolds().map(function (fold) {\n return fold.range;\n }),\n history: this.getUndoManager(),\n mode: this.$mode.$id,\n scrollLeft: this.$scrollLeft,\n scrollTop: this.$scrollTop,\n selection: this.selection.toJSON(),\n value: this.doc.getValue()\n };\n };\n EditSession.prototype.toString = function () {\n return this.doc.getValue();\n };\n EditSession.prototype.getSelection = function () {\n return this.selection;\n };\n EditSession.prototype.getState = function (row) {\n return this.bgTokenizer.getState(row);\n };\n EditSession.prototype.getTokens = function (row) {\n return this.bgTokenizer.getTokens(row);\n };\n EditSession.prototype.getTokenAt = function (row, column) {\n var tokens = this.bgTokenizer.getTokens(row);\n var token, c = 0;\n if (column == null) {\n var i = tokens.length - 1;\n c = this.getLine(row).length;\n }\n else {\n for (var i = 0; i < tokens.length; i++) {\n c += tokens[i].value.length;\n if (c >= column)\n break;\n }\n }\n token = tokens[i];\n if (!token)\n return null;\n token.index = i;\n token.start = c - token.value.length;\n return token;\n };\n EditSession.prototype.setUndoManager = function (undoManager) {\n this.$undoManager = undoManager;\n if (this.$informUndoManager)\n this.$informUndoManager.cancel();\n if (undoManager) {\n var self = this;\n undoManager.addSession(this);\n this.$syncInformUndoManager = function () {\n self.$informUndoManager.cancel();\n self.mergeUndoDeltas = false;\n };\n this.$informUndoManager = lang.delayedCall(this.$syncInformUndoManager);\n }\n else {\n this.$syncInformUndoManager = function () { };\n }\n };\n EditSession.prototype.markUndoGroup = function () {\n if (this.$syncInformUndoManager)\n this.$syncInformUndoManager();\n };\n EditSession.prototype.getUndoManager = function () {\n return this.$undoManager || this.$defaultUndoManager;\n };\n EditSession.prototype.getTabString = function () {\n if (this.getUseSoftTabs()) {\n return lang.stringRepeat(\" \", this.getTabSize());\n }\n else {\n return \"\\t\";\n }\n };\n EditSession.prototype.setUseSoftTabs = function (val) {\n this.setOption(\"useSoftTabs\", val);\n };\n EditSession.prototype.getUseSoftTabs = function () {\n return this.$useSoftTabs && !this.$mode.$indentWithTabs;\n };\n EditSession.prototype.setTabSize = function (tabSize) {\n this.setOption(\"tabSize\", tabSize);\n };\n EditSession.prototype.getTabSize = function () {\n return this.$tabSize;\n };\n EditSession.prototype.isTabStop = function (position) {\n return this.$useSoftTabs && (position.column % this.$tabSize === 0);\n };\n EditSession.prototype.setNavigateWithinSoftTabs = function (navigateWithinSoftTabs) {\n this.setOption(\"navigateWithinSoftTabs\", navigateWithinSoftTabs);\n };\n EditSession.prototype.getNavigateWithinSoftTabs = function () {\n return this.$navigateWithinSoftTabs;\n };\n EditSession.prototype.setOverwrite = function (overwrite) {\n this.setOption(\"overwrite\", overwrite);\n };\n EditSession.prototype.getOverwrite = function () {\n return this.$overwrite;\n };\n EditSession.prototype.toggleOverwrite = function () {\n this.setOverwrite(!this.$overwrite);\n };\n EditSession.prototype.addGutterDecoration = function (row, className) {\n if (!this.$decorations[row])\n this.$decorations[row] = \"\";\n this.$decorations[row] += \" \" + className;\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.removeGutterDecoration = function (row, className) {\n this.$decorations[row] = (this.$decorations[row] || \"\").replace(\" \" + className, \"\");\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.getBreakpoints = function () {\n return this.$breakpoints;\n };\n EditSession.prototype.setBreakpoints = function (rows) {\n this.$breakpoints = [];\n for (var i = 0; i < rows.length; i++) {\n this.$breakpoints[rows[i]] = \"ace_breakpoint\";\n }\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.clearBreakpoints = function () {\n this.$breakpoints = [];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.setBreakpoint = function (row, className) {\n if (className === undefined)\n className = \"ace_breakpoint\";\n if (className)\n this.$breakpoints[row] = className;\n else\n delete this.$breakpoints[row];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.clearBreakpoint = function (row) {\n delete this.$breakpoints[row];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.addMarker = function (range, clazz, type, inFront) {\n var id = this.$markerId++;\n var marker = {\n range: range,\n type: type || \"line\",\n renderer: typeof type == \"function\" ? type : null,\n clazz: clazz,\n inFront: !!inFront,\n id: id\n };\n if (inFront) {\n this.$frontMarkers[id] = marker;\n this._signal(\"changeFrontMarker\");\n }\n else {\n this.$backMarkers[id] = marker;\n this._signal(\"changeBackMarker\");\n }\n return id;\n };\n EditSession.prototype.addDynamicMarker = function (marker, inFront) {\n if (!marker.update)\n return;\n var id = this.$markerId++;\n marker.id = id;\n marker.inFront = !!inFront;\n if (inFront) {\n this.$frontMarkers[id] = marker;\n this._signal(\"changeFrontMarker\");\n }\n else {\n this.$backMarkers[id] = marker;\n this._signal(\"changeBackMarker\");\n }\n return marker;\n };\n EditSession.prototype.removeMarker = function (markerId) {\n var marker = this.$frontMarkers[markerId] || this.$backMarkers[markerId];\n if (!marker)\n return;\n var markers = marker.inFront ? this.$frontMarkers : this.$backMarkers;\n delete (markers[markerId]);\n this._signal(marker.inFront ? \"changeFrontMarker\" : \"changeBackMarker\");\n };\n EditSession.prototype.getMarkers = function (inFront) {\n return inFront ? this.$frontMarkers : this.$backMarkers;\n };\n EditSession.prototype.highlight = function (re) {\n if (!this.$searchHighlight) {\n var highlight = new SearchHighlight(null, \"ace_selected-word\", \"text\");\n this.$searchHighlight = this.addDynamicMarker(highlight);\n }\n this.$searchHighlight.setRegexp(re);\n };\n EditSession.prototype.highlightLines = function (startRow, endRow, clazz, inFront) {\n if (typeof endRow != \"number\") {\n clazz = endRow;\n endRow = startRow;\n }\n if (!clazz)\n clazz = \"ace_step\";\n var range = new Range(startRow, 0, endRow, Infinity);\n range.id = this.addMarker(range, clazz, \"fullLine\", inFront);\n return range;\n };\n EditSession.prototype.setAnnotations = function (annotations) {\n this.$annotations = annotations;\n this._signal(\"changeAnnotation\", {});\n };\n EditSession.prototype.getAnnotations = function () {\n return this.$annotations || [];\n };\n EditSession.prototype.clearAnnotations = function () {\n this.setAnnotations([]);\n };\n EditSession.prototype.$detectNewLine = function (text) {\n var match = text.match(/^.*?(\\r?\\n)/m);\n if (match) {\n this.$autoNewLine = match[1];\n }\n else {\n this.$autoNewLine = \"\\n\";\n }\n };\n EditSession.prototype.getWordRange = function (row, column) {\n var line = this.getLine(row);\n var inToken = false;\n if (column > 0)\n inToken = !!line.charAt(column - 1).match(this.tokenRe);\n if (!inToken)\n inToken = !!line.charAt(column).match(this.tokenRe);\n if (inToken)\n var re = this.tokenRe;\n else if (/^\\s+$/.test(line.slice(column - 1, column + 1)))\n var re = /\\s/;\n else\n var re = this.nonTokenRe;\n var start = column;\n if (start > 0) {\n do {\n start--;\n } while (start >= 0 && line.charAt(start).match(re));\n start++;\n }\n var end = column;\n while (end < line.length && line.charAt(end).match(re)) {\n end++;\n }\n return new Range(row, start, row, end);\n };\n EditSession.prototype.getAWordRange = function (row, column) {\n var wordRange = this.getWordRange(row, column);\n var line = this.getLine(wordRange.end.row);\n while (line.charAt(wordRange.end.column).match(/[ \\t]/)) {\n wordRange.end.column += 1;\n }\n return wordRange;\n };\n EditSession.prototype.setNewLineMode = function (newLineMode) {\n this.doc.setNewLineMode(newLineMode);\n };\n EditSession.prototype.getNewLineMode = function () {\n return this.doc.getNewLineMode();\n };\n EditSession.prototype.setUseWorker = function (useWorker) { this.setOption(\"useWorker\", useWorker); };\n EditSession.prototype.getUseWorker = function () { return this.$useWorker; };\n EditSession.prototype.onReloadTokenizer = function (e) {\n var rows = e.data;\n this.bgTokenizer.start(rows.first);\n this._signal(\"tokenizerUpdate\", e);\n };\n EditSession.prototype.setMode = function (mode, cb) {\n if (mode && typeof mode === \"object\") {\n if (mode.getTokenizer)\n return this.$onChangeMode(mode);\n var options = mode;\n var path = options.path;\n }\n else {\n path = mode || \"ace/mode/text\";\n }\n if (!this.$modes[\"ace/mode/text\"])\n this.$modes[\"ace/mode/text\"] = new TextMode();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n cb && cb();\n return;\n }\n this.$modeId = path;\n config.loadModule([\"mode\", path], function (m) {\n if (this.$modeId !== path)\n return cb && cb();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n }\n else if (m && m.Mode) {\n m = new m.Mode(options);\n if (!options) {\n this.$modes[path] = m;\n m.$id = path;\n }\n this.$onChangeMode(m);\n }\n cb && cb();\n }.bind(this));\n if (!this.$mode)\n this.$onChangeMode(this.$modes[\"ace/mode/text\"], true);\n };\n EditSession.prototype.$onChangeMode = function (mode, $isPlaceholder) {\n if (!$isPlaceholder)\n this.$modeId = mode.$id;\n if (this.$mode === mode)\n return;\n var oldMode = this.$mode;\n this.$mode = mode;\n this.$stopWorker();\n if (this.$useWorker)\n this.$startWorker();\n var tokenizer = mode.getTokenizer();\n if (tokenizer.on !== undefined) {\n var onReloadTokenizer = this.onReloadTokenizer.bind(this);\n tokenizer.on(\"update\", onReloadTokenizer);\n }\n this.bgTokenizer.setTokenizer(tokenizer);\n this.bgTokenizer.setDocument(this.getDocument());\n this.tokenRe = mode.tokenRe;\n this.nonTokenRe = mode.nonTokenRe;\n if (!$isPlaceholder) {\n if (mode.attachToSession)\n mode.attachToSession(this);\n this.$options.wrapMethod.set.call(this, this.$wrapMethod);\n this.$setFolding(mode.foldingRules);\n this.bgTokenizer.start(0);\n this._emit(\"changeMode\", { oldMode: oldMode, mode: mode });\n }\n };\n EditSession.prototype.$stopWorker = function () {\n if (this.$worker) {\n this.$worker.terminate();\n this.$worker = null;\n }\n };\n EditSession.prototype.$startWorker = function () {\n try {\n this.$worker = this.$mode.createWorker(this);\n }\n catch (e) {\n config.warn(\"Could not load worker\", e);\n this.$worker = null;\n }\n };\n EditSession.prototype.getMode = function () {\n return this.$mode;\n };\n EditSession.prototype.setScrollTop = function (scrollTop) {\n if (this.$scrollTop === scrollTop || isNaN(scrollTop))\n return;\n this.$scrollTop = scrollTop;\n this._signal(\"changeScrollTop\", scrollTop);\n };\n EditSession.prototype.getScrollTop = function () {\n return this.$scrollTop;\n };\n EditSession.prototype.setScrollLeft = function (scrollLeft) {\n if (this.$scrollLeft === scrollLeft || isNaN(scrollLeft))\n return;\n this.$scrollLeft = scrollLeft;\n this._signal(\"changeScrollLeft\", scrollLeft);\n };\n EditSession.prototype.getScrollLeft = function () {\n return this.$scrollLeft;\n };\n EditSession.prototype.getScreenWidth = function () {\n this.$computeWidth();\n if (this.lineWidgets)\n return Math.max(this.getLineWidgetMaxWidth(), this.screenWidth);\n return this.screenWidth;\n };\n EditSession.prototype.getLineWidgetMaxWidth = function () {\n if (this.lineWidgetsWidth != null)\n return this.lineWidgetsWidth;\n var width = 0;\n this.lineWidgets.forEach(function (w) {\n if (w && w.screenWidth > width)\n width = w.screenWidth;\n });\n return this.lineWidgetWidth = width;\n };\n EditSession.prototype.$computeWidth = function (force) {\n if (this.$modified || force) {\n this.$modified = false;\n if (this.$useWrapMode)\n return this.screenWidth = this.$wrapLimit;\n var lines = this.doc.getAllLines();\n var cache = this.$rowLengthCache;\n var longestScreenLine = 0;\n var foldIndex = 0;\n var foldLine = this.$foldData[foldIndex];\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n var len = lines.length;\n for (var i = 0; i < len; i++) {\n if (i > foldStart) {\n i = foldLine.end.row + 1;\n if (i >= len)\n break;\n foldLine = this.$foldData[foldIndex++];\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (cache[i] == null)\n cache[i] = this.$getStringScreenWidth(lines[i])[0];\n if (cache[i] > longestScreenLine)\n longestScreenLine = cache[i];\n }\n this.screenWidth = longestScreenLine;\n }\n };\n EditSession.prototype.getLine = function (row) {\n return this.doc.getLine(row);\n };\n EditSession.prototype.getLines = function (firstRow, lastRow) {\n return this.doc.getLines(firstRow, lastRow);\n };\n EditSession.prototype.getLength = function () {\n return this.doc.getLength();\n };\n EditSession.prototype.getTextRange = function (range) {\n return this.doc.getTextRange(range || this.selection.getRange());\n };\n EditSession.prototype.insert = function (position, text) {\n return this.doc.insert(position, text);\n };\n EditSession.prototype.remove = function (range) {\n return this.doc.remove(range);\n };\n EditSession.prototype.removeFullLines = function (firstRow, lastRow) {\n return this.doc.removeFullLines(firstRow, lastRow);\n };\n EditSession.prototype.undoChanges = function (deltas, dontSelect) {\n if (!deltas.length)\n return;\n this.$fromUndo = true;\n for (var i = deltas.length - 1; i != -1; i--) {\n var delta = deltas[i];\n if (delta.action == \"insert\" || delta.action == \"remove\") {\n this.doc.revertDelta(delta);\n }\n else if (delta.folds) {\n this.addFolds(delta.folds);\n }\n }\n if (!dontSelect && this.$undoSelect) {\n if (deltas.selectionBefore)\n this.selection.fromJSON(deltas.selectionBefore);\n else\n this.selection.setRange(this.$getUndoSelection(deltas, true));\n }\n this.$fromUndo = false;\n };\n EditSession.prototype.redoChanges = function (deltas, dontSelect) {\n if (!deltas.length)\n return;\n this.$fromUndo = true;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (delta.action == \"insert\" || delta.action == \"remove\") {\n this.doc.$safeApplyDelta(delta);\n }\n }\n if (!dontSelect && this.$undoSelect) {\n if (deltas.selectionAfter)\n this.selection.fromJSON(deltas.selectionAfter);\n else\n this.selection.setRange(this.$getUndoSelection(deltas, false));\n }\n this.$fromUndo = false;\n };\n EditSession.prototype.setUndoSelect = function (enable) {\n this.$undoSelect = enable;\n };\n EditSession.prototype.$getUndoSelection = function (deltas, isUndo) {\n function isInsert(delta) {\n return isUndo ? delta.action !== \"insert\" : delta.action === \"insert\";\n }\n var range, point;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (!delta.start)\n continue; // skip folds\n if (!range) {\n if (isInsert(delta)) {\n range = Range.fromPoints(delta.start, delta.end);\n }\n else {\n range = Range.fromPoints(delta.start, delta.start);\n }\n continue;\n }\n if (isInsert(delta)) {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range.setStart(point);\n }\n point = delta.end;\n if (range.compare(point.row, point.column) == 1) {\n range.setEnd(point);\n }\n }\n else {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range = Range.fromPoints(delta.start, delta.start);\n }\n }\n }\n return range;\n };\n EditSession.prototype.replace = function (range, text) {\n return this.doc.replace(range, text);\n };\n EditSession.prototype.moveText = function (fromRange, toPosition, copy) {\n var text = this.getTextRange(fromRange);\n var folds = this.getFoldsInRange(fromRange);\n var toRange = Range.fromPoints(toPosition, toPosition);\n if (!copy) {\n this.remove(fromRange);\n var rowDiff = fromRange.start.row - fromRange.end.row;\n var collDiff = rowDiff ? -fromRange.end.column : fromRange.start.column - fromRange.end.column;\n if (collDiff) {\n if (toRange.start.row == fromRange.end.row && toRange.start.column > fromRange.end.column)\n toRange.start.column += collDiff;\n if (toRange.end.row == fromRange.end.row && toRange.end.column > fromRange.end.column)\n toRange.end.column += collDiff;\n }\n if (rowDiff && toRange.start.row >= fromRange.end.row) {\n toRange.start.row += rowDiff;\n toRange.end.row += rowDiff;\n }\n }\n toRange.end = this.insert(toRange.start, text);\n if (folds.length) {\n var oldStart = fromRange.start;\n var newStart = toRange.start;\n var rowDiff = newStart.row - oldStart.row;\n var collDiff = newStart.column - oldStart.column;\n this.addFolds(folds.map(function (x) {\n x = x.clone();\n if (x.start.row == oldStart.row)\n x.start.column += collDiff;\n if (x.end.row == oldStart.row)\n x.end.column += collDiff;\n x.start.row += rowDiff;\n x.end.row += rowDiff;\n return x;\n }));\n }\n return toRange;\n };\n EditSession.prototype.indentRows = function (startRow, endRow, indentString) {\n indentString = indentString.replace(/\\t/g, this.getTabString());\n for (var row = startRow; row <= endRow; row++)\n this.doc.insertInLine({ row: row, column: 0 }, indentString);\n };\n EditSession.prototype.outdentRows = function (range) {\n var rowRange = range.collapseRows();\n var deleteRange = new Range(0, 0, 0, 0);\n var size = this.getTabSize();\n for (var i = rowRange.start.row; i <= rowRange.end.row; ++i) {\n var line = this.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n for (var j = 0; j < size; ++j)\n if (line.charAt(j) != ' ')\n break;\n if (j < size && line.charAt(j) == '\\t') {\n deleteRange.start.column = j;\n deleteRange.end.column = j + 1;\n }\n else {\n deleteRange.start.column = 0;\n deleteRange.end.column = j;\n }\n this.remove(deleteRange);\n }\n };\n EditSession.prototype.$moveLines = function (firstRow, lastRow, dir) {\n firstRow = this.getRowFoldStart(firstRow);\n lastRow = this.getRowFoldEnd(lastRow);\n if (dir < 0) {\n var row = this.getRowFoldStart(firstRow + dir);\n if (row < 0)\n return 0;\n var diff = row - firstRow;\n }\n else if (dir > 0) {\n var row = this.getRowFoldEnd(lastRow + dir);\n if (row > this.doc.getLength() - 1)\n return 0;\n var diff = row - lastRow;\n }\n else {\n firstRow = this.$clipRowToDocument(firstRow);\n lastRow = this.$clipRowToDocument(lastRow);\n var diff = lastRow - firstRow + 1;\n }\n var range = new Range(firstRow, 0, lastRow, Number.MAX_VALUE);\n var folds = this.getFoldsInRange(range).map(function (x) {\n x = x.clone();\n x.start.row += diff;\n x.end.row += diff;\n return x;\n });\n var lines = dir == 0\n ? this.doc.getLines(firstRow, lastRow)\n : this.doc.removeFullLines(firstRow, lastRow);\n this.doc.insertFullLines(firstRow + diff, lines);\n folds.length && this.addFolds(folds);\n return diff;\n };\n EditSession.prototype.moveLinesUp = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, -1);\n };\n EditSession.prototype.moveLinesDown = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 1);\n };\n EditSession.prototype.duplicateLines = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 0);\n };\n EditSession.prototype.$clipRowToDocument = function (row) {\n return Math.max(0, Math.min(row, this.doc.getLength() - 1));\n };\n EditSession.prototype.$clipColumnToRow = function (row, column) {\n if (column < 0)\n return 0;\n return Math.min(this.doc.getLine(row).length, column);\n };\n EditSession.prototype.$clipPositionToDocument = function (row, column) {\n column = Math.max(0, column);\n if (row < 0) {\n row = 0;\n column = 0;\n }\n else {\n var len = this.doc.getLength();\n if (row >= len) {\n row = len - 1;\n column = this.doc.getLine(len - 1).length;\n }\n else {\n column = Math.min(this.doc.getLine(row).length, column);\n }\n }\n return {\n row: row,\n column: column\n };\n };\n EditSession.prototype.$clipRangeToDocument = function (range) {\n if (range.start.row < 0) {\n range.start.row = 0;\n range.start.column = 0;\n }\n else {\n range.start.column = this.$clipColumnToRow(range.start.row, range.start.column);\n }\n var len = this.doc.getLength() - 1;\n if (range.end.row > len) {\n range.end.row = len;\n range.end.column = this.doc.getLine(len).length;\n }\n else {\n range.end.column = this.$clipColumnToRow(range.end.row, range.end.column);\n }\n return range;\n };\n EditSession.prototype.setUseWrapMode = function (useWrapMode) {\n if (useWrapMode != this.$useWrapMode) {\n this.$useWrapMode = useWrapMode;\n this.$modified = true;\n this.$resetRowCache(0);\n if (useWrapMode) {\n var len = this.getLength();\n this.$wrapData = Array(len);\n this.$updateWrapData(0, len - 1);\n }\n this._signal(\"changeWrapMode\");\n }\n };\n EditSession.prototype.getUseWrapMode = function () {\n return this.$useWrapMode;\n };\n EditSession.prototype.setWrapLimitRange = function (min, max) {\n if (this.$wrapLimitRange.min !== min || this.$wrapLimitRange.max !== max) {\n this.$wrapLimitRange = { min: min, max: max };\n this.$modified = true;\n this.$bidiHandler.markAsDirty();\n if (this.$useWrapMode)\n this._signal(\"changeWrapMode\");\n }\n };\n EditSession.prototype.adjustWrapLimit = function (desiredLimit, $printMargin) {\n var limits = this.$wrapLimitRange;\n if (limits.max < 0)\n limits = { min: $printMargin, max: $printMargin };\n var wrapLimit = this.$constrainWrapLimit(desiredLimit, limits.min, limits.max);\n if (wrapLimit != this.$wrapLimit && wrapLimit > 1) {\n this.$wrapLimit = wrapLimit;\n this.$modified = true;\n if (this.$useWrapMode) {\n this.$updateWrapData(0, this.getLength() - 1);\n this.$resetRowCache(0);\n this._signal(\"changeWrapLimit\");\n }\n return true;\n }\n return false;\n };\n EditSession.prototype.$constrainWrapLimit = function (wrapLimit, min, max) {\n if (min)\n wrapLimit = Math.max(min, wrapLimit);\n if (max)\n wrapLimit = Math.min(max, wrapLimit);\n return wrapLimit;\n };\n EditSession.prototype.getWrapLimit = function () {\n return this.$wrapLimit;\n };\n EditSession.prototype.setWrapLimit = function (limit) {\n this.setWrapLimitRange(limit, limit);\n };\n EditSession.prototype.getWrapLimitRange = function () {\n return {\n min: this.$wrapLimitRange.min,\n max: this.$wrapLimitRange.max\n };\n };\n EditSession.prototype.$updateInternalDataOnChange = function (delta) {\n var useWrapMode = this.$useWrapMode;\n var action = delta.action;\n var start = delta.start;\n var end = delta.end;\n var firstRow = start.row;\n var lastRow = end.row;\n var len = lastRow - firstRow;\n var removedFolds = null;\n this.$updating = true;\n if (len != 0) {\n if (action === \"remove\") {\n this[useWrapMode ? \"$wrapData\" : \"$rowLengthCache\"].splice(firstRow, len);\n var foldLines = this.$foldData;\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n var foldLine = this.getFoldLine(end.row);\n var idx = 0;\n if (foldLine) {\n foldLine.addRemoveChars(end.row, end.column, start.column - end.column);\n foldLine.shiftRow(-len);\n var foldLineBefore = this.getFoldLine(firstRow);\n if (foldLineBefore && foldLineBefore !== foldLine) {\n foldLineBefore.merge(foldLine);\n foldLine = foldLineBefore;\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= end.row) {\n foldLine.shiftRow(-len);\n }\n }\n lastRow = firstRow;\n }\n else {\n var args = Array(len);\n args.unshift(firstRow, 0);\n var arr = useWrapMode ? this.$wrapData : this.$rowLengthCache;\n arr.splice.apply(arr, args);\n var foldLines = this.$foldData;\n var foldLine = this.getFoldLine(firstRow);\n var idx = 0;\n if (foldLine) {\n var cmp = foldLine.range.compareInside(start.row, start.column);\n if (cmp == 0) {\n foldLine = foldLine.split(start.row, start.column);\n if (foldLine) {\n foldLine.shiftRow(len);\n foldLine.addRemoveChars(lastRow, 0, end.column - start.column);\n }\n }\n else \n if (cmp == -1) {\n foldLine.addRemoveChars(firstRow, 0, end.column - start.column);\n foldLine.shiftRow(len);\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= firstRow) {\n foldLine.shiftRow(len);\n }\n }\n }\n }\n else {\n len = Math.abs(delta.start.column - delta.end.column);\n if (action === \"remove\") {\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n len = -len;\n }\n var foldLine = this.getFoldLine(firstRow);\n if (foldLine) {\n foldLine.addRemoveChars(firstRow, start.column, len);\n }\n }\n if (useWrapMode && this.$wrapData.length != this.doc.getLength()) {\n console.error(\"doc.getLength() and $wrapData.length have to be the same!\");\n }\n this.$updating = false;\n if (useWrapMode)\n this.$updateWrapData(firstRow, lastRow);\n else\n this.$updateRowLengthCache(firstRow, lastRow);\n return removedFolds;\n };\n EditSession.prototype.$updateRowLengthCache = function (firstRow, lastRow, b) {\n this.$rowLengthCache[firstRow] = null;\n this.$rowLengthCache[lastRow] = null;\n };\n EditSession.prototype.$updateWrapData = function (firstRow, lastRow) {\n var lines = this.doc.getAllLines();\n var tabSize = this.getTabSize();\n var wrapData = this.$wrapData;\n var wrapLimit = this.$wrapLimit;\n var tokens;\n var foldLine;\n var row = firstRow;\n lastRow = Math.min(lastRow, lines.length - 1);\n while (row <= lastRow) {\n foldLine = this.getFoldLine(row, foldLine);\n if (!foldLine) {\n tokens = this.$getDisplayTokens(lines[row]);\n wrapData[row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row++;\n }\n else {\n tokens = [];\n foldLine.walk(function (placeholder, row, column, lastColumn) {\n var walkTokens;\n if (placeholder != null) {\n walkTokens = this.$getDisplayTokens(placeholder, tokens.length);\n walkTokens[0] = PLACEHOLDER_START;\n for (var i = 1; i < walkTokens.length; i++) {\n walkTokens[i] = PLACEHOLDER_BODY;\n }\n }\n else {\n walkTokens = this.$getDisplayTokens(lines[row].substring(lastColumn, column), tokens.length);\n }\n tokens = tokens.concat(walkTokens);\n }.bind(this), foldLine.end.row, lines[foldLine.end.row].length + 1);\n wrapData[foldLine.start.row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row = foldLine.end.row + 1;\n }\n }\n };\n EditSession.prototype.$computeWrapSplits = function (tokens, wrapLimit, tabSize) {\n if (tokens.length == 0) {\n return [];\n }\n var splits = [];\n var displayLength = tokens.length;\n var lastSplit = 0, lastDocSplit = 0;\n var isCode = this.$wrapAsCode;\n var indentedSoftWrap = this.$indentedSoftWrap;\n var maxIndent = wrapLimit <= Math.max(2 * tabSize, 8)\n || indentedSoftWrap === false ? 0 : Math.floor(wrapLimit / 2);\n function getWrapIndent() {\n var indentation = 0;\n if (maxIndent === 0)\n return indentation;\n if (indentedSoftWrap) {\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token == SPACE)\n indentation += 1;\n else if (token == TAB)\n indentation += tabSize;\n else if (token == TAB_SPACE)\n continue;\n else\n break;\n }\n }\n if (isCode && indentedSoftWrap !== false)\n indentation += tabSize;\n return Math.min(indentation, maxIndent);\n }\n function addSplit(screenPos) {\n var len = screenPos - lastSplit;\n for (var i = lastSplit; i < screenPos; i++) {\n var ch = tokens[i];\n if (ch === 12 || ch === 2)\n len -= 1;\n }\n if (!splits.length) {\n indent = getWrapIndent();\n splits.indent = indent;\n }\n lastDocSplit += len;\n splits.push(lastDocSplit);\n lastSplit = screenPos;\n }\n var indent = 0;\n while (displayLength - lastSplit > wrapLimit - indent) {\n var split = lastSplit + wrapLimit - indent;\n if (tokens[split - 1] >= SPACE && tokens[split] >= SPACE) {\n addSplit(split);\n continue;\n }\n if (tokens[split] == PLACEHOLDER_START || tokens[split] == PLACEHOLDER_BODY) {\n for (split; split != lastSplit - 1; split--) {\n if (tokens[split] == PLACEHOLDER_START) {\n break;\n }\n }\n if (split > lastSplit) {\n addSplit(split);\n continue;\n }\n split = lastSplit + wrapLimit;\n for (split; split < tokens.length; split++) {\n if (tokens[split] != PLACEHOLDER_BODY) {\n break;\n }\n }\n if (split == tokens.length) {\n break; // Breaks the while-loop.\n }\n addSplit(split);\n continue;\n }\n var minSplit = Math.max(split - (wrapLimit - (wrapLimit >> 2)), lastSplit - 1);\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split--;\n }\n if (isCode) {\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split--;\n }\n while (split > minSplit && tokens[split] == PUNCTUATION) {\n split--;\n }\n }\n else {\n while (split > minSplit && tokens[split] < SPACE) {\n split--;\n }\n }\n if (split > minSplit) {\n addSplit(++split);\n continue;\n }\n split = lastSplit + wrapLimit;\n if (tokens[split] == CHAR_EXT)\n split--;\n addSplit(split - indent);\n }\n return splits;\n };\n EditSession.prototype.$getDisplayTokens = function (str, offset) {\n var arr = [];\n var tabSize;\n offset = offset || 0;\n for (var i = 0; i < str.length; i++) {\n var c = str.charCodeAt(i);\n if (c == 9) {\n tabSize = this.getScreenTabSize(arr.length + offset);\n arr.push(TAB);\n for (var n = 1; n < tabSize; n++) {\n arr.push(TAB_SPACE);\n }\n }\n else if (c == 32) {\n arr.push(SPACE);\n }\n else if ((c > 39 && c < 48) || (c > 57 && c < 64)) {\n arr.push(PUNCTUATION);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n arr.push(CHAR, CHAR_EXT);\n }\n else {\n arr.push(CHAR);\n }\n }\n return arr;\n };\n EditSession.prototype.$getStringScreenWidth = function (str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn == 0)\n return [0, 0];\n if (maxScreenColumn == null)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charCodeAt(column);\n if (c == 9) {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n screenColumn += 2;\n }\n else {\n screenColumn += 1;\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n return [screenColumn, column];\n };\n EditSession.prototype.getRowLength = function (row) {\n var h = 1;\n if (this.lineWidgets)\n h += this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n if (!this.$useWrapMode || !this.$wrapData[row])\n return h;\n else\n return this.$wrapData[row].length + h;\n };\n EditSession.prototype.getRowLineCount = function (row) {\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1;\n }\n else {\n return this.$wrapData[row].length + 1;\n }\n };\n EditSession.prototype.getRowWrapIndent = function (screenRow) {\n if (this.$useWrapMode) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n var splits = this.$wrapData[pos.row];\n return splits.length && splits[0] < pos.column ? splits.indent : 0;\n }\n else {\n return 0;\n }\n };\n EditSession.prototype.getScreenLastRowColumn = function (screenRow) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n return this.documentToScreenColumn(pos.row, pos.column);\n };\n EditSession.prototype.getDocumentLastRowColumn = function (docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.getScreenLastRowColumn(screenRow);\n };\n EditSession.prototype.getDocumentLastRowColumnPosition = function (docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.screenToDocumentPosition(screenRow, Number.MAX_VALUE / 10);\n };\n EditSession.prototype.getRowSplitData = function (row) {\n if (!this.$useWrapMode) {\n return undefined;\n }\n else {\n return this.$wrapData[row];\n }\n };\n EditSession.prototype.getScreenTabSize = function (screenColumn) {\n return this.$tabSize - (screenColumn % this.$tabSize | 0);\n };\n EditSession.prototype.screenToDocumentRow = function (screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).row;\n };\n EditSession.prototype.screenToDocumentColumn = function (screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).column;\n };\n EditSession.prototype.screenToDocumentPosition = function (screenRow, screenColumn, offsetX) {\n if (screenRow < 0)\n return { row: 0, column: 0 };\n var line;\n var docRow = 0;\n var docColumn = 0;\n var column;\n var row = 0;\n var rowLength = 0;\n var rowCache = this.$screenRowCache;\n var i = this.$getRowCacheIndex(rowCache, screenRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var docRow = this.$docRowCache[i];\n var doCache = screenRow > rowCache[l - 1];\n }\n else {\n var doCache = !l;\n }\n var maxRow = this.getLength() - 1;\n var foldLine = this.getNextFoldLine(docRow);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (row <= screenRow) {\n rowLength = this.getRowLength(docRow);\n if (row + rowLength > screenRow || docRow >= maxRow) {\n break;\n }\n else {\n row += rowLength;\n docRow++;\n if (docRow > foldStart) {\n docRow = foldLine.end.row + 1;\n foldLine = this.getNextFoldLine(docRow, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n }\n if (doCache) {\n this.$docRowCache.push(docRow);\n this.$screenRowCache.push(row);\n }\n }\n if (foldLine && foldLine.start.row <= docRow) {\n line = this.getFoldDisplayLine(foldLine);\n docRow = foldLine.start.row;\n }\n else if (row + rowLength <= screenRow || docRow > maxRow) {\n return {\n row: maxRow,\n column: this.getLine(maxRow).length\n };\n }\n else {\n line = this.getLine(docRow);\n foldLine = null;\n }\n var wrapIndent = 0, splitIndex = Math.floor(screenRow - row);\n if (this.$useWrapMode) {\n var splits = this.$wrapData[docRow];\n if (splits) {\n column = splits[splitIndex];\n if (splitIndex > 0 && splits.length) {\n wrapIndent = splits.indent;\n docColumn = splits[splitIndex - 1] || splits[splits.length - 1];\n line = line.substring(docColumn);\n }\n }\n }\n if (offsetX !== undefined && this.$bidiHandler.isBidiRow(row + splitIndex, docRow, splitIndex))\n screenColumn = this.$bidiHandler.offsetToCol(offsetX);\n docColumn += this.$getStringScreenWidth(line, screenColumn - wrapIndent)[1];\n if (this.$useWrapMode && docColumn >= column)\n docColumn = column - 1;\n if (foldLine)\n return foldLine.idxToPosition(docColumn);\n return { row: docRow, column: docColumn };\n };\n EditSession.prototype.documentToScreenPosition = function (docRow, docColumn) {\n if (typeof docColumn === \"undefined\")\n var pos = this.$clipPositionToDocument(docRow.row, docRow.column);\n else\n pos = this.$clipPositionToDocument(docRow, docColumn);\n docRow = pos.row;\n docColumn = pos.column;\n var screenRow = 0;\n var foldStartRow = null;\n var fold = null;\n fold = this.getFoldAt(docRow, docColumn, 1);\n if (fold) {\n docRow = fold.start.row;\n docColumn = fold.start.column;\n }\n var rowEnd, row = 0;\n var rowCache = this.$docRowCache;\n var i = this.$getRowCacheIndex(rowCache, docRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var screenRow = this.$screenRowCache[i];\n var doCache = docRow > rowCache[l - 1];\n }\n else {\n var doCache = !l;\n }\n var foldLine = this.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (row < docRow) {\n if (row >= foldStart) {\n rowEnd = foldLine.end.row + 1;\n if (rowEnd > docRow)\n break;\n foldLine = this.getNextFoldLine(rowEnd, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n else {\n rowEnd = row + 1;\n }\n screenRow += this.getRowLength(row);\n row = rowEnd;\n if (doCache) {\n this.$docRowCache.push(row);\n this.$screenRowCache.push(screenRow);\n }\n }\n var textLine = \"\";\n if (foldLine && row >= foldStart) {\n textLine = this.getFoldDisplayLine(foldLine, docRow, docColumn);\n foldStartRow = foldLine.start.row;\n }\n else {\n textLine = this.getLine(docRow).substring(0, docColumn);\n foldStartRow = docRow;\n }\n var wrapIndent = 0;\n if (this.$useWrapMode) {\n var wrapRow = this.$wrapData[foldStartRow];\n if (wrapRow) {\n var screenRowOffset = 0;\n while (textLine.length >= wrapRow[screenRowOffset]) {\n screenRow++;\n screenRowOffset++;\n }\n textLine = textLine.substring(wrapRow[screenRowOffset - 1] || 0, textLine.length);\n wrapIndent = screenRowOffset > 0 ? wrapRow.indent : 0;\n }\n }\n if (this.lineWidgets && this.lineWidgets[row] && this.lineWidgets[row].rowsAbove)\n screenRow += this.lineWidgets[row].rowsAbove;\n return {\n row: screenRow,\n column: wrapIndent + this.$getStringScreenWidth(textLine)[0]\n };\n };\n EditSession.prototype.documentToScreenColumn = function (row, docColumn) {\n return this.documentToScreenPosition(row, docColumn).column;\n };\n EditSession.prototype.documentToScreenRow = function (docRow, docColumn) {\n return this.documentToScreenPosition(docRow, docColumn).row;\n };\n EditSession.prototype.getScreenLength = function () {\n var screenRows = 0;\n var fold = null;\n if (!this.$useWrapMode) {\n screenRows = this.getLength();\n var foldData = this.$foldData;\n for (var i = 0; i < foldData.length; i++) {\n fold = foldData[i];\n screenRows -= fold.end.row - fold.start.row;\n }\n }\n else {\n var lastRow = this.$wrapData.length;\n var row = 0, i = 0;\n var fold = this.$foldData[i++];\n var foldStart = fold ? fold.start.row : Infinity;\n while (row < lastRow) {\n var splits = this.$wrapData[row];\n screenRows += splits ? splits.length + 1 : 1;\n row++;\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = this.$foldData[i++];\n foldStart = fold ? fold.start.row : Infinity;\n }\n }\n }\n if (this.lineWidgets)\n screenRows += this.$getWidgetScreenLength();\n return screenRows;\n };\n EditSession.prototype.$setFontMetrics = function (fm) {\n if (!this.$enableVarChar)\n return;\n this.$getStringScreenWidth = function (str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn === 0)\n return [0, 0];\n if (!maxScreenColumn)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charAt(column);\n if (c === \"\\t\") {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else {\n screenColumn += fm.getCharacterWidth(c);\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n return [screenColumn, column];\n };\n };\n EditSession.prototype.destroy = function () {\n if (!this.destroyed) {\n this.bgTokenizer.setDocument(null);\n this.bgTokenizer.cleanup();\n this.destroyed = true;\n }\n this.$stopWorker();\n this.removeAllListeners();\n if (this.doc) {\n this.doc.off(\"change\", this.$onChange);\n }\n this.selection.detach();\n };\n return EditSession;\n}());\nEditSession.$uid = 0;\nEditSession.prototype.$modes = config.$modes;\nEditSession.prototype.getValue = EditSession.prototype.toString;\nEditSession.prototype.$defaultUndoManager = {\n undo: function () { },\n redo: function () { },\n hasUndo: function () { },\n hasRedo: function () { },\n reset: function () { },\n add: function () { },\n addSelection: function () { },\n startNewGroup: function () { },\n addSession: function () { }\n};\nEditSession.prototype.$overwrite = false;\nEditSession.prototype.$mode = null;\nEditSession.prototype.$modeId = null;\nEditSession.prototype.$scrollTop = 0;\nEditSession.prototype.$scrollLeft = 0;\nEditSession.prototype.$wrapLimit = 80;\nEditSession.prototype.$useWrapMode = false;\nEditSession.prototype.$wrapLimitRange = {\n min: null,\n max: null\n};\nEditSession.prototype.lineWidgets = null;\nEditSession.prototype.isFullWidth = isFullWidth;\noop.implement(EditSession.prototype, EventEmitter);\nvar CHAR = 1, CHAR_EXT = 2, PLACEHOLDER_START = 3, PLACEHOLDER_BODY = 4, PUNCTUATION = 9, SPACE = 10, TAB = 11, TAB_SPACE = 12;\nfunction isFullWidth(c) {\n if (c < 0x1100)\n return false;\n return c >= 0x1100 && c <= 0x115F ||\n c >= 0x11A3 && c <= 0x11A7 ||\n c >= 0x11FA && c <= 0x11FF ||\n c >= 0x2329 && c <= 0x232A ||\n c >= 0x2E80 && c <= 0x2E99 ||\n c >= 0x2E9B && c <= 0x2EF3 ||\n c >= 0x2F00 && c <= 0x2FD5 ||\n c >= 0x2FF0 && c <= 0x2FFB ||\n c >= 0x3000 && c <= 0x303E ||\n c >= 0x3041 && c <= 0x3096 ||\n c >= 0x3099 && c <= 0x30FF ||\n c >= 0x3105 && c <= 0x312D ||\n c >= 0x3131 && c <= 0x318E ||\n c >= 0x3190 && c <= 0x31BA ||\n c >= 0x31C0 && c <= 0x31E3 ||\n c >= 0x31F0 && c <= 0x321E ||\n c >= 0x3220 && c <= 0x3247 ||\n c >= 0x3250 && c <= 0x32FE ||\n c >= 0x3300 && c <= 0x4DBF ||\n c >= 0x4E00 && c <= 0xA48C ||\n c >= 0xA490 && c <= 0xA4C6 ||\n c >= 0xA960 && c <= 0xA97C ||\n c >= 0xAC00 && c <= 0xD7A3 ||\n c >= 0xD7B0 && c <= 0xD7C6 ||\n c >= 0xD7CB && c <= 0xD7FB ||\n c >= 0xF900 && c <= 0xFAFF ||\n c >= 0xFE10 && c <= 0xFE19 ||\n c >= 0xFE30 && c <= 0xFE52 ||\n c >= 0xFE54 && c <= 0xFE66 ||\n c >= 0xFE68 && c <= 0xFE6B ||\n c >= 0xFF01 && c <= 0xFF60 ||\n c >= 0xFFE0 && c <= 0xFFE6;\n}\nrequire(\"./edit_session/folding\").Folding.call(EditSession.prototype);\nrequire(\"./edit_session/bracket_match\").BracketMatch.call(EditSession.prototype);\nconfig.defineOptions(EditSession.prototype, \"session\", {\n wrap: {\n set: function (value) {\n if (!value || value == \"off\")\n value = false;\n else if (value == \"free\")\n value = true;\n else if (value == \"printMargin\")\n value = -1;\n else if (typeof value == \"string\")\n value = parseInt(value, 10) || false;\n if (this.$wrap == value)\n return;\n this.$wrap = value;\n if (!value) {\n this.setUseWrapMode(false);\n }\n else {\n var col = typeof value == \"number\" ? value : null;\n this.setWrapLimitRange(col, col);\n this.setUseWrapMode(true);\n }\n },\n get: function () {\n if (this.getUseWrapMode()) {\n if (this.$wrap == -1)\n return \"printMargin\";\n if (!this.getWrapLimitRange().min)\n return \"free\";\n return this.$wrap;\n }\n return \"off\";\n },\n handlesSet: true\n },\n wrapMethod: {\n set: function (val) {\n val = val == \"auto\"\n ? this.$mode.type != \"text\"\n : val != \"text\";\n if (val != this.$wrapAsCode) {\n this.$wrapAsCode = val;\n if (this.$useWrapMode) {\n this.$useWrapMode = false;\n this.setUseWrapMode(true);\n }\n }\n },\n initialValue: \"auto\"\n },\n indentedSoftWrap: {\n set: function () {\n if (this.$useWrapMode) {\n this.$useWrapMode = false;\n this.setUseWrapMode(true);\n }\n },\n initialValue: true\n },\n firstLineNumber: {\n set: function () { this._signal(\"changeBreakpoint\"); },\n initialValue: 1\n },\n useWorker: {\n set: function (useWorker) {\n this.$useWorker = useWorker;\n this.$stopWorker();\n if (useWorker)\n this.$startWorker();\n },\n initialValue: true\n },\n useSoftTabs: { initialValue: true },\n tabSize: {\n set: function (tabSize) {\n tabSize = parseInt(tabSize);\n if (tabSize > 0 && this.$tabSize !== tabSize) {\n this.$modified = true;\n this.$rowLengthCache = [];\n this.$tabSize = tabSize;\n this._signal(\"changeTabSize\");\n }\n },\n initialValue: 4,\n handlesSet: true\n },\n navigateWithinSoftTabs: { initialValue: false },\n foldStyle: {\n set: function (val) { this.setFoldStyle(val); },\n handlesSet: true\n },\n overwrite: {\n set: function (val) { this._signal(\"changeOverwrite\"); },\n initialValue: false\n },\n newLineMode: {\n set: function (val) { this.doc.setNewLineMode(val); },\n get: function () { return this.doc.getNewLineMode(); },\n handlesSet: true\n },\n mode: {\n set: function (val) { this.setMode(val); },\n get: function () { return this.$modeId; },\n handlesSet: true\n }\n});\nexports.EditSession = EditSession;\n\n});\n\nace.define(\"ace/search\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"./lib/lang\");\nvar oop = require(\"./lib/oop\");\nvar Range = require(\"./range\").Range;\nvar Search = /** @class */ (function () {\n function Search() {\n this.$options = {};\n }\n Search.prototype.set = function (options) {\n oop.mixin(this.$options, options);\n return this;\n };\n Search.prototype.getOptions = function () {\n return lang.copyObject(this.$options);\n };\n Search.prototype.setOptions = function (options) {\n this.$options = options;\n };\n Search.prototype.find = function (session) {\n var options = this.$options;\n var iterator = this.$matchIterator(session, options);\n if (!iterator)\n return false;\n var firstRange = null;\n iterator.forEach(function (sr, sc, er, ec) {\n firstRange = new Range(sr, sc, er, ec);\n if (sc == ec && options.start && options.start.start\n && options.skipCurrent != false && firstRange.isEqual(options.start)) {\n firstRange = null;\n return false;\n }\n return true;\n });\n return firstRange;\n };\n Search.prototype.findAll = function (session) {\n var options = this.$options;\n if (!options.needle)\n return [];\n this.$assembleRegExp(options);\n var range = options.range;\n var lines = range\n ? session.getLines(range.start.row, range.end.row)\n : session.doc.getAllLines();\n var ranges = [];\n var re = options.re;\n if (options.$isMultiLine) {\n var len = re.length;\n var maxRow = lines.length - len;\n var prevRange;\n outer: for (var row = re.offset || 0; row <= maxRow; row++) {\n for (var j = 0; j < len; j++)\n if (lines[row + j].search(re[j]) == -1)\n continue outer;\n var startLine = lines[row];\n var line = lines[row + len - 1];\n var startIndex = startLine.length - startLine.match(re[0])[0].length;\n var endIndex = line.match(re[len - 1])[0].length;\n if (prevRange && prevRange.end.row === row &&\n prevRange.end.column > startIndex) {\n continue;\n }\n ranges.push(prevRange = new Range(row, startIndex, row + len - 1, endIndex));\n if (len > 2)\n row = row + len - 2;\n }\n }\n else {\n for (var i = 0; i < lines.length; i++) {\n var matches = lang.getMatchOffsets(lines[i], re);\n for (var j = 0; j < matches.length; j++) {\n var match = matches[j];\n ranges.push(new Range(i, match.offset, i, match.offset + match.length));\n }\n }\n }\n if (range) {\n var startColumn = range.start.column;\n var endColumn = range.end.column;\n var i = 0, j = ranges.length - 1;\n while (i < j && ranges[i].start.column < startColumn && ranges[i].start.row == 0)\n i++;\n var endRow = range.end.row - range.start.row;\n while (i < j && ranges[j].end.column > endColumn && ranges[j].end.row == endRow)\n j--;\n ranges = ranges.slice(i, j + 1);\n for (i = 0, j = ranges.length; i < j; i++) {\n ranges[i].start.row += range.start.row;\n ranges[i].end.row += range.start.row;\n }\n }\n return ranges;\n };\n Search.prototype.replace = function (input, replacement) {\n var options = this.$options;\n var re = this.$assembleRegExp(options);\n if (options.$isMultiLine)\n return replacement;\n if (!re)\n return;\n var match = re.exec(input);\n if (!match || match[0].length != input.length)\n return null;\n replacement = input.replace(re, replacement);\n if (options.preserveCase) {\n replacement = replacement.split(\"\");\n for (var i = Math.min(input.length, input.length); i--;) {\n var ch = input[i];\n if (ch && ch.toLowerCase() != ch)\n replacement[i] = replacement[i].toUpperCase();\n else\n replacement[i] = replacement[i].toLowerCase();\n }\n replacement = replacement.join(\"\");\n }\n return replacement;\n };\n Search.prototype.$assembleRegExp = function (options, $disableFakeMultiline) {\n if (options.needle instanceof RegExp)\n return options.re = options.needle;\n var needle = options.needle;\n if (!options.needle)\n return options.re = false;\n if (!options.regExp)\n needle = lang.escapeRegExp(needle);\n var modifier = options.caseSensitive ? \"gm\" : \"gmi\";\n try {\n new RegExp(needle, \"u\");\n options.$supportsUnicodeFlag = true;\n modifier += \"u\";\n }\n catch (e) {\n options.$supportsUnicodeFlag = false; //left for backward compatibility with previous versions for cases like /ab\\{2}/gu\n }\n if (options.wholeWord)\n needle = addWordBoundary(needle, options);\n options.$isMultiLine = !$disableFakeMultiline && /[\\n\\r]/.test(needle);\n if (options.$isMultiLine)\n return options.re = this.$assembleMultilineRegExp(needle, modifier);\n try {\n var re = new RegExp(needle, modifier);\n }\n catch (e) {\n re = false;\n }\n return options.re = re;\n };\n Search.prototype.$assembleMultilineRegExp = function (needle, modifier) {\n var parts = needle.replace(/\\r\\n|\\r|\\n/g, \"$\\n^\").split(\"\\n\");\n var re = [];\n for (var i = 0; i < parts.length; i++)\n try {\n re.push(new RegExp(parts[i], modifier));\n }\n catch (e) {\n return false;\n }\n return re;\n };\n Search.prototype.$matchIterator = function (session, options) {\n var re = this.$assembleRegExp(options);\n if (!re)\n return false;\n var backwards = options.backwards == true;\n var skipCurrent = options.skipCurrent != false;\n var supportsUnicodeFlag = re.unicode;\n var range = options.range;\n var start = options.start;\n if (!start)\n start = range ? range[backwards ? \"end\" : \"start\"] : session.selection.getRange();\n if (start.start)\n start = start[skipCurrent != backwards ? \"end\" : \"start\"];\n var firstRow = range ? range.start.row : 0;\n var lastRow = range ? range.end.row : session.getLength() - 1;\n if (backwards) {\n var forEach = function (callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row--; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = lastRow, firstRow = start.row; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n };\n }\n else {\n var forEach = function (callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row = row + 1; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = firstRow, lastRow = start.row; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n };\n }\n if (options.$isMultiLine) {\n var len = re.length;\n var forEachInLine = function (row, offset, callback) {\n var startRow = backwards ? row - len + 1 : row;\n if (startRow < 0 || startRow + len > session.getLength())\n return;\n var line = session.getLine(startRow);\n var startIndex = line.search(re[0]);\n if (!backwards && startIndex < offset || startIndex === -1)\n return;\n for (var i = 1; i < len; i++) {\n line = session.getLine(startRow + i);\n if (line.search(re[i]) == -1)\n return;\n }\n var endIndex = line.match(re[len - 1])[0].length;\n if (backwards && endIndex > offset)\n return;\n if (callback(startRow, startIndex, startRow + len - 1, endIndex))\n return true;\n };\n }\n else if (backwards) {\n var forEachInLine = function (row, endIndex, callback) {\n var line = session.getLine(row);\n var matches = [];\n var m, last = 0;\n re.lastIndex = 0;\n while ((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (!length) {\n if (last >= line.length)\n break;\n re.lastIndex = last += lang.skipEmptyMatch(line, last, supportsUnicodeFlag);\n }\n if (m.index + length > endIndex)\n break;\n matches.push(m.index, length);\n }\n for (var i = matches.length - 1; i >= 0; i -= 2) {\n var column = matches[i - 1];\n var length = matches[i];\n if (callback(row, column, row, column + length))\n return true;\n }\n };\n }\n else {\n var forEachInLine = function (row, startIndex, callback) {\n var line = session.getLine(row);\n var last;\n var m;\n re.lastIndex = startIndex;\n while ((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (callback(row, last, row, last + length))\n return true;\n if (!length) {\n re.lastIndex = last += lang.skipEmptyMatch(line, last, supportsUnicodeFlag);\n if (last >= line.length)\n return false;\n }\n }\n };\n }\n return { forEach: forEach };\n };\n return Search;\n}());\nfunction addWordBoundary(needle, options) {\n var supportsLookbehind = lang.supportsLookbehind();\n function wordBoundary(c, firstChar) {\n if (firstChar === void 0) { firstChar = true; }\n var wordRegExp = supportsLookbehind && options.$supportsUnicodeFlag ? new RegExp(\"[\\\\p{L}\\\\p{N}_]\", \"u\") : new RegExp(\"\\\\w\");\n if (wordRegExp.test(c) || options.regExp) {\n if (supportsLookbehind && options.$supportsUnicodeFlag) {\n if (firstChar)\n return \"(?<=^|[^\\\\p{L}\\\\p{N}_])\";\n return \"(?=[^\\\\p{L}\\\\p{N}_]|$)\";\n }\n return \"\\\\b\";\n }\n return \"\";\n }\n var needleArray = Array.from(needle);\n var firstChar = needleArray[0];\n var lastChar = needleArray[needleArray.length - 1];\n return wordBoundary(firstChar) + needle + wordBoundary(lastChar, false);\n}\nexports.Search = Search;\n\n});\n\nace.define(\"ace/keyboard/hash_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar keyUtil = require(\"../lib/keys\");\nvar useragent = require(\"../lib/useragent\");\nvar KEY_MODS = keyUtil.KEY_MODS;\nvar MultiHashHandler = /** @class */ (function () {\n function MultiHashHandler(config, platform) {\n this.$init(config, platform, false);\n }\n MultiHashHandler.prototype.$init = function (config, platform, $singleCommand) {\n this.platform = platform || (useragent.isMac ? \"mac\" : \"win\");\n this.commands = {};\n this.commandKeyBinding = {};\n this.addCommands(config);\n this.$singleCommand = $singleCommand;\n };\n MultiHashHandler.prototype.addCommand = function (command) {\n if (this.commands[command.name])\n this.removeCommand(command);\n this.commands[command.name] = command;\n if (command.bindKey)\n this._buildKeyHash(command);\n };\n MultiHashHandler.prototype.removeCommand = function (command, keepCommand) {\n var name = command && (typeof command === 'string' ? command : command.name);\n command = this.commands[name];\n if (!keepCommand)\n delete this.commands[name];\n var ckb = this.commandKeyBinding;\n for (var keyId in ckb) {\n var cmdGroup = ckb[keyId];\n if (cmdGroup == command) {\n delete ckb[keyId];\n }\n else if (Array.isArray(cmdGroup)) {\n var i = cmdGroup.indexOf(command);\n if (i != -1) {\n cmdGroup.splice(i, 1);\n if (cmdGroup.length == 1)\n ckb[keyId] = cmdGroup[0];\n }\n }\n }\n };\n MultiHashHandler.prototype.bindKey = function (key, command, position) {\n if (typeof key == \"object\" && key) {\n if (position == undefined)\n position = key.position;\n key = key[this.platform];\n }\n if (!key)\n return;\n if (typeof command == \"function\")\n return this.addCommand({ exec: command, bindKey: key, name: command.name || key });\n key.split(\"|\").forEach(function (keyPart) {\n var chain = \"\";\n if (keyPart.indexOf(\" \") != -1) {\n var parts = keyPart.split(/\\s+/);\n keyPart = parts.pop();\n parts.forEach(function (keyPart) {\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n chain += (chain ? \" \" : \"\") + id;\n this._addCommandToBinding(chain, \"chainKeys\");\n }, this);\n chain += \" \";\n }\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n this._addCommandToBinding(chain + id, command, position);\n }, this);\n };\n MultiHashHandler.prototype._addCommandToBinding = function (keyId, command, position) {\n var ckb = this.commandKeyBinding, i;\n if (!command) {\n delete ckb[keyId];\n }\n else if (!ckb[keyId] || this.$singleCommand) {\n ckb[keyId] = command;\n }\n else {\n if (!Array.isArray(ckb[keyId])) {\n ckb[keyId] = [ckb[keyId]];\n }\n else if ((i = ckb[keyId].indexOf(command)) != -1) {\n ckb[keyId].splice(i, 1);\n }\n if (typeof position != \"number\") {\n position = getPosition(command);\n }\n var commands = ckb[keyId];\n for (i = 0; i < commands.length; i++) {\n var other = commands[i];\n var otherPos = getPosition(other);\n if (otherPos > position)\n break;\n }\n commands.splice(i, 0, command);\n }\n };\n MultiHashHandler.prototype.addCommands = function (commands) {\n commands && Object.keys(commands).forEach(function (name) {\n var command = commands[name];\n if (!command)\n return;\n if (typeof command === \"string\")\n return this.bindKey(command, name);\n if (typeof command === \"function\")\n command = { exec: command };\n if (typeof command !== \"object\")\n return;\n if (!command.name)\n command.name = name;\n this.addCommand(command);\n }, this);\n };\n MultiHashHandler.prototype.removeCommands = function (commands) {\n Object.keys(commands).forEach(function (name) {\n this.removeCommand(commands[name]);\n }, this);\n };\n MultiHashHandler.prototype.bindKeys = function (keyList) {\n Object.keys(keyList).forEach(function (key) {\n this.bindKey(key, keyList[key]);\n }, this);\n };\n MultiHashHandler.prototype._buildKeyHash = function (command) {\n this.bindKey(command.bindKey, command);\n };\n MultiHashHandler.prototype.parseKeys = function (keys) {\n var parts = keys.toLowerCase().split(/[\\-\\+]([\\-\\+])?/).filter(function (x) { return x; });\n var key = parts.pop();\n var keyCode = keyUtil[key];\n if (keyUtil.FUNCTION_KEYS[keyCode])\n key = keyUtil.FUNCTION_KEYS[keyCode].toLowerCase();\n else if (!parts.length)\n return { key: key, hashId: -1 };\n else if (parts.length == 1 && parts[0] == \"shift\")\n return { key: key.toUpperCase(), hashId: -1 };\n var hashId = 0;\n for (var i = parts.length; i--;) {\n var modifier = keyUtil.KEY_MODS[parts[i]];\n if (modifier == null) {\n if (typeof console != \"undefined\")\n console.error(\"invalid modifier \" + parts[i] + \" in \" + keys);\n return false;\n }\n hashId |= modifier;\n }\n return { key: key, hashId: hashId };\n };\n MultiHashHandler.prototype.findKeyCommand = function (hashId, keyString) {\n var key = KEY_MODS[hashId] + keyString;\n return this.commandKeyBinding[key];\n };\n MultiHashHandler.prototype.handleKeyboard = function (data, hashId, keyString, keyCode) {\n if (keyCode < 0)\n return;\n var key = KEY_MODS[hashId] + keyString;\n var command = this.commandKeyBinding[key];\n if (data.$keyChain) {\n data.$keyChain += \" \" + key;\n command = this.commandKeyBinding[data.$keyChain] || command;\n }\n if (command) {\n if (command == \"chainKeys\" || command[command.length - 1] == \"chainKeys\") {\n data.$keyChain = data.$keyChain || key;\n return { command: \"null\" };\n }\n }\n if (data.$keyChain) {\n if ((!hashId || hashId == 4) && keyString.length == 1)\n data.$keyChain = data.$keyChain.slice(0, -key.length - 1); // wait for input\n else if (hashId == -1 || keyCode > 0)\n data.$keyChain = \"\"; // reset keyChain\n }\n return { command: command };\n };\n MultiHashHandler.prototype.getStatusText = function (editor, data) {\n return data.$keyChain || \"\";\n };\n return MultiHashHandler;\n}());\nfunction getPosition(command) {\n return typeof command == \"object\" && command.bindKey\n && command.bindKey.position\n || (command.isDefault ? -100 : 0);\n}\nvar HashHandler = /** @class */ (function (_super) {\n __extends(HashHandler, _super);\n function HashHandler(config, platform) {\n var _this = _super.call(this, config, platform) || this;\n _this.$singleCommand = true;\n return _this;\n }\n return HashHandler;\n}(MultiHashHandler));\nHashHandler.call = function (thisArg, config, platform) {\n MultiHashHandler.prototype.$init.call(thisArg, config, platform, true);\n};\nMultiHashHandler.call = function (thisArg, config, platform) {\n MultiHashHandler.prototype.$init.call(thisArg, config, platform, false);\n};\nexports.HashHandler = HashHandler;\nexports.MultiHashHandler = MultiHashHandler;\n\n});\n\nace.define(\"ace/commands/command_manager\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"../lib/oop\");\nvar MultiHashHandler = require(\"../keyboard/hash_handler\").MultiHashHandler;\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar CommandManager = /** @class */ (function (_super) {\n __extends(CommandManager, _super);\n function CommandManager(platform, commands) {\n var _this = _super.call(this, commands, platform) || this;\n _this.byName = _this.commands;\n _this.setDefaultHandler(\"exec\", function (e) {\n if (!e.args) {\n return e.command.exec(e.editor, {}, e.event, true);\n }\n return e.command.exec(e.editor, e.args, e.event, false);\n });\n return _this;\n }\n CommandManager.prototype.exec = function (command, editor, args) {\n if (Array.isArray(command)) {\n for (var i = command.length; i--;) {\n if (this.exec(command[i], editor, args))\n return true;\n }\n return false;\n }\n if (typeof command === \"string\")\n command = this.commands[command];\n if (!command)\n return false;\n if (editor && editor.$readOnly && !command.readOnly)\n return false;\n if (this.$checkCommandState != false && command.isAvailable && !command.isAvailable(editor))\n return false;\n var e = { editor: editor, command: command, args: args };\n e.returnValue = this._emit(\"exec\", e);\n this._signal(\"afterExec\", e);\n return e.returnValue === false ? false : true;\n };\n CommandManager.prototype.toggleRecording = function (editor) {\n if (this.$inReplay)\n return;\n editor && editor._emit(\"changeStatus\");\n if (this.recording) {\n this.macro.pop();\n this.off(\"exec\", this.$addCommandToMacro);\n if (!this.macro.length)\n this.macro = this.oldMacro;\n return this.recording = false;\n }\n if (!this.$addCommandToMacro) {\n this.$addCommandToMacro = function (e) {\n this.macro.push([e.command, e.args]);\n }.bind(this);\n }\n this.oldMacro = this.macro;\n this.macro = [];\n this.on(\"exec\", this.$addCommandToMacro);\n return this.recording = true;\n };\n CommandManager.prototype.replay = function (editor) {\n if (this.$inReplay || !this.macro)\n return;\n if (this.recording)\n return this.toggleRecording(editor);\n try {\n this.$inReplay = true;\n this.macro.forEach(function (x) {\n if (typeof x == \"string\")\n this.exec(x, editor);\n else\n this.exec(x[0], editor, x[1]);\n }, this);\n }\n finally {\n this.$inReplay = false;\n }\n };\n CommandManager.prototype.trimMacro = function (m) {\n return m.map(function (x) {\n if (typeof x[0] != \"string\")\n x[0] = x[0].name;\n if (!x[1])\n x = x[0];\n return x;\n });\n };\n return CommandManager;\n}(MultiHashHandler));\noop.implement(CommandManager.prototype, EventEmitter);\nexports.CommandManager = CommandManager;\n\n});\n\nace.define(\"ace/commands/default_commands\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/config\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"../lib/lang\");\nvar config = require(\"../config\");\nvar Range = require(\"../range\").Range;\nfunction bindKey(win, mac) {\n return { win: win, mac: mac };\n}\nexports.commands = [{\n name: \"showSettingsMenu\",\n description: \"Show settings menu\",\n bindKey: bindKey(\"Ctrl-,\", \"Command-,\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/settings_menu\", function (module) {\n module.init(editor);\n editor.showSettingsMenu();\n });\n },\n readOnly: true\n }, {\n name: \"goToNextError\",\n description: \"Go to next error\",\n bindKey: bindKey(\"Alt-E\", \"F4\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/error_marker\", function (module) {\n module.showErrorMarker(editor, 1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"goToPreviousError\",\n description: \"Go to previous error\",\n bindKey: bindKey(\"Alt-Shift-E\", \"Shift-F4\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/error_marker\", function (module) {\n module.showErrorMarker(editor, -1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"selectall\",\n description: \"Select all\",\n bindKey: bindKey(\"Ctrl-A\", \"Command-A\"),\n exec: function (editor) { editor.selectAll(); },\n readOnly: true\n }, {\n name: \"centerselection\",\n description: \"Center selection\",\n bindKey: bindKey(null, \"Ctrl-L\"),\n exec: function (editor) { editor.centerSelection(); },\n readOnly: true\n }, {\n name: \"gotoline\",\n description: \"Go to line...\",\n bindKey: bindKey(\"Ctrl-L\", \"Command-L\"),\n exec: function (editor, line) {\n if (typeof line === \"number\" && !isNaN(line))\n editor.gotoLine(line);\n editor.prompt({ $type: \"gotoLine\" });\n },\n readOnly: true\n }, {\n name: \"fold\",\n bindKey: bindKey(\"Alt-L|Ctrl-F1\", \"Command-Alt-L|Command-F1\"),\n exec: function (editor) { editor.session.toggleFold(false); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"unfold\",\n bindKey: bindKey(\"Alt-Shift-L|Ctrl-Shift-F1\", \"Command-Alt-Shift-L|Command-Shift-F1\"),\n exec: function (editor) { editor.session.toggleFold(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"toggleFoldWidget\",\n description: \"Toggle fold widget\",\n bindKey: bindKey(\"F2\", \"F2\"),\n exec: function (editor) { editor.session.toggleFoldWidget(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"toggleParentFoldWidget\",\n description: \"Toggle parent fold widget\",\n bindKey: bindKey(\"Alt-F2\", \"Alt-F2\"),\n exec: function (editor) { editor.session.toggleFoldWidget(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldall\",\n description: \"Fold all\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function (editor) { editor.session.foldAll(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldAllComments\",\n description: \"Fold all comments\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function (editor) { editor.session.foldAllComments(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldOther\",\n description: \"Fold other\",\n bindKey: bindKey(\"Alt-0\", \"Command-Option-0\"),\n exec: function (editor) {\n editor.session.foldAll();\n editor.session.unfold(editor.selection.getAllRanges());\n },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"unfoldall\",\n description: \"Unfold all\",\n bindKey: bindKey(\"Alt-Shift-0\", \"Command-Option-Shift-0\"),\n exec: function (editor) { editor.session.unfold(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"findnext\",\n description: \"Find next\",\n bindKey: bindKey(\"Ctrl-K\", \"Command-G\"),\n exec: function (editor) { editor.findNext(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"findprevious\",\n description: \"Find previous\",\n bindKey: bindKey(\"Ctrl-Shift-K\", \"Command-Shift-G\"),\n exec: function (editor) { editor.findPrevious(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"selectOrFindNext\",\n description: \"Select or find next\",\n bindKey: bindKey(\"Alt-K\", \"Ctrl-G\"),\n exec: function (editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findNext();\n },\n readOnly: true\n }, {\n name: \"selectOrFindPrevious\",\n description: \"Select or find previous\",\n bindKey: bindKey(\"Alt-Shift-K\", \"Ctrl-Shift-G\"),\n exec: function (editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findPrevious();\n },\n readOnly: true\n }, {\n name: \"find\",\n description: \"Find\",\n bindKey: bindKey(\"Ctrl-F\", \"Command-F\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/searchbox\", function (e) { e.Search(editor); });\n },\n readOnly: true\n }, {\n name: \"overwrite\",\n description: \"Overwrite\",\n bindKey: \"Insert\",\n exec: function (editor) { editor.toggleOverwrite(); },\n readOnly: true\n }, {\n name: \"selecttostart\",\n description: \"Select to start\",\n bindKey: bindKey(\"Ctrl-Shift-Home\", \"Command-Shift-Home|Command-Shift-Up\"),\n exec: function (editor) { editor.getSelection().selectFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"gotostart\",\n description: \"Go to start\",\n bindKey: bindKey(\"Ctrl-Home\", \"Command-Home|Command-Up\"),\n exec: function (editor) { editor.navigateFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"selectup\",\n description: \"Select up\",\n bindKey: bindKey(\"Shift-Up\", \"Shift-Up|Ctrl-Shift-P\"),\n exec: function (editor) { editor.getSelection().selectUp(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"golineup\",\n description: \"Go line up\",\n bindKey: bindKey(\"Up\", \"Up|Ctrl-P\"),\n exec: function (editor, args) { editor.navigateUp(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttoend\",\n description: \"Select to end\",\n bindKey: bindKey(\"Ctrl-Shift-End\", \"Command-Shift-End|Command-Shift-Down\"),\n exec: function (editor) { editor.getSelection().selectFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"gotoend\",\n description: \"Go to end\",\n bindKey: bindKey(\"Ctrl-End\", \"Command-End|Command-Down\"),\n exec: function (editor) { editor.navigateFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"selectdown\",\n description: \"Select down\",\n bindKey: bindKey(\"Shift-Down\", \"Shift-Down|Ctrl-Shift-N\"),\n exec: function (editor) { editor.getSelection().selectDown(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"golinedown\",\n description: \"Go line down\",\n bindKey: bindKey(\"Down\", \"Down|Ctrl-N\"),\n exec: function (editor, args) { editor.navigateDown(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectwordleft\",\n description: \"Select word left\",\n bindKey: bindKey(\"Ctrl-Shift-Left\", \"Option-Shift-Left\"),\n exec: function (editor) { editor.getSelection().selectWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotowordleft\",\n description: \"Go to word left\",\n bindKey: bindKey(\"Ctrl-Left\", \"Option-Left\"),\n exec: function (editor) { editor.navigateWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttolinestart\",\n description: \"Select to line start\",\n bindKey: bindKey(\"Alt-Shift-Left\", \"Command-Shift-Left|Ctrl-Shift-A\"),\n exec: function (editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotolinestart\",\n description: \"Go to line start\",\n bindKey: bindKey(\"Alt-Left|Home\", \"Command-Left|Home|Ctrl-A\"),\n exec: function (editor) { editor.navigateLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectleft\",\n description: \"Select left\",\n bindKey: bindKey(\"Shift-Left\", \"Shift-Left|Ctrl-Shift-B\"),\n exec: function (editor) { editor.getSelection().selectLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotoleft\",\n description: \"Go to left\",\n bindKey: bindKey(\"Left\", \"Left|Ctrl-B\"),\n exec: function (editor, args) { editor.navigateLeft(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectwordright\",\n description: \"Select word right\",\n bindKey: bindKey(\"Ctrl-Shift-Right\", \"Option-Shift-Right\"),\n exec: function (editor) { editor.getSelection().selectWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotowordright\",\n description: \"Go to word right\",\n bindKey: bindKey(\"Ctrl-Right\", \"Option-Right\"),\n exec: function (editor) { editor.navigateWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttolineend\",\n description: \"Select to line end\",\n bindKey: bindKey(\"Alt-Shift-Right\", \"Command-Shift-Right|Shift-End|Ctrl-Shift-E\"),\n exec: function (editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotolineend\",\n description: \"Go to line end\",\n bindKey: bindKey(\"Alt-Right|End\", \"Command-Right|End|Ctrl-E\"),\n exec: function (editor) { editor.navigateLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectright\",\n description: \"Select right\",\n bindKey: bindKey(\"Shift-Right\", \"Shift-Right\"),\n exec: function (editor) { editor.getSelection().selectRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotoright\",\n description: \"Go to right\",\n bindKey: bindKey(\"Right\", \"Right|Ctrl-F\"),\n exec: function (editor, args) { editor.navigateRight(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectpagedown\",\n description: \"Select page down\",\n bindKey: \"Shift-PageDown\",\n exec: function (editor) { editor.selectPageDown(); },\n readOnly: true\n }, {\n name: \"pagedown\",\n description: \"Page down\",\n bindKey: bindKey(null, \"Option-PageDown\"),\n exec: function (editor) { editor.scrollPageDown(); },\n readOnly: true\n }, {\n name: \"gotopagedown\",\n description: \"Go to page down\",\n bindKey: bindKey(\"PageDown\", \"PageDown|Ctrl-V\"),\n exec: function (editor) { editor.gotoPageDown(); },\n readOnly: true\n }, {\n name: \"selectpageup\",\n description: \"Select page up\",\n bindKey: \"Shift-PageUp\",\n exec: function (editor) { editor.selectPageUp(); },\n readOnly: true\n }, {\n name: \"pageup\",\n description: \"Page up\",\n bindKey: bindKey(null, \"Option-PageUp\"),\n exec: function (editor) { editor.scrollPageUp(); },\n readOnly: true\n }, {\n name: \"gotopageup\",\n description: \"Go to page up\",\n bindKey: \"PageUp\",\n exec: function (editor) { editor.gotoPageUp(); },\n readOnly: true\n }, {\n name: \"scrollup\",\n description: \"Scroll up\",\n bindKey: bindKey(\"Ctrl-Up\", null),\n exec: function (e) { e.renderer.scrollBy(0, -2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n }, {\n name: \"scrolldown\",\n description: \"Scroll down\",\n bindKey: bindKey(\"Ctrl-Down\", null),\n exec: function (e) { e.renderer.scrollBy(0, 2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n }, {\n name: \"selectlinestart\",\n description: \"Select line start\",\n bindKey: \"Shift-Home\",\n exec: function (editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectlineend\",\n description: \"Select line end\",\n bindKey: \"Shift-End\",\n exec: function (editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"togglerecording\",\n description: \"Toggle recording\",\n bindKey: bindKey(\"Ctrl-Alt-E\", \"Command-Option-E\"),\n exec: function (editor) { editor.commands.toggleRecording(editor); },\n readOnly: true\n }, {\n name: \"replaymacro\",\n description: \"Replay macro\",\n bindKey: bindKey(\"Ctrl-Shift-E\", \"Command-Shift-E\"),\n exec: function (editor) { editor.commands.replay(editor); },\n readOnly: true\n }, {\n name: \"jumptomatching\",\n description: \"Jump to matching\",\n bindKey: bindKey(\"Ctrl-\\\\|Ctrl-P\", \"Command-\\\\\"),\n exec: function (editor) { editor.jumpToMatching(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"selecttomatching\",\n description: \"Select to matching\",\n bindKey: bindKey(\"Ctrl-Shift-\\\\|Ctrl-Shift-P\", \"Command-Shift-\\\\\"),\n exec: function (editor) { editor.jumpToMatching(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"expandToMatching\",\n description: \"Expand to matching\",\n bindKey: bindKey(\"Ctrl-Shift-M\", \"Ctrl-Shift-M\"),\n exec: function (editor) { editor.jumpToMatching(true, true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"passKeysToBrowser\",\n description: \"Pass keys to browser\",\n bindKey: bindKey(null, null),\n exec: function () { },\n passEvent: true,\n readOnly: true\n }, {\n name: \"copy\",\n description: \"Copy\",\n exec: function (editor) {\n },\n readOnly: true\n },\n {\n name: \"cut\",\n description: \"Cut\",\n exec: function (editor) {\n var cutLine = editor.$copyWithEmptySelection && editor.selection.isEmpty();\n var range = cutLine ? editor.selection.getLineRange() : editor.selection.getRange();\n editor._emit(\"cut\", range);\n if (!range.isEmpty())\n editor.session.remove(range);\n editor.clearSelection();\n },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"paste\",\n description: \"Paste\",\n exec: function (editor, args) {\n editor.$handlePaste(args);\n },\n scrollIntoView: \"cursor\"\n }, {\n name: \"removeline\",\n description: \"Remove line\",\n bindKey: bindKey(\"Ctrl-D\", \"Command-D\"),\n exec: function (editor) { editor.removeLines(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEachLine\"\n }, {\n name: \"duplicateSelection\",\n description: \"Duplicate selection\",\n bindKey: bindKey(\"Ctrl-Shift-D\", \"Command-Shift-D\"),\n exec: function (editor) { editor.duplicateSelection(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"sortlines\",\n description: \"Sort lines\",\n bindKey: bindKey(\"Ctrl-Alt-S\", \"Command-Alt-S\"),\n exec: function (editor) { editor.sortLines(); },\n scrollIntoView: \"selection\",\n multiSelectAction: \"forEachLine\"\n }, {\n name: \"togglecomment\",\n description: \"Toggle comment\",\n bindKey: bindKey(\"Ctrl-/\", \"Command-/\"),\n exec: function (editor) { editor.toggleCommentLines(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"toggleBlockComment\",\n description: \"Toggle block comment\",\n bindKey: bindKey(\"Ctrl-Shift-/\", \"Command-Shift-/\"),\n exec: function (editor) { editor.toggleBlockComment(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"modifyNumberUp\",\n description: \"Modify number up\",\n bindKey: bindKey(\"Ctrl-Shift-Up\", \"Alt-Shift-Up\"),\n exec: function (editor) { editor.modifyNumber(1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"modifyNumberDown\",\n description: \"Modify number down\",\n bindKey: bindKey(\"Ctrl-Shift-Down\", \"Alt-Shift-Down\"),\n exec: function (editor) { editor.modifyNumber(-1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"replace\",\n description: \"Replace\",\n bindKey: bindKey(\"Ctrl-H\", \"Command-Option-F\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/searchbox\", function (e) { e.Search(editor, true); });\n }\n }, {\n name: \"undo\",\n description: \"Undo\",\n bindKey: bindKey(\"Ctrl-Z\", \"Command-Z\"),\n exec: function (editor) { editor.undo(); }\n }, {\n name: \"redo\",\n description: \"Redo\",\n bindKey: bindKey(\"Ctrl-Shift-Z|Ctrl-Y\", \"Command-Shift-Z|Command-Y\"),\n exec: function (editor) { editor.redo(); }\n }, {\n name: \"copylinesup\",\n description: \"Copy lines up\",\n bindKey: bindKey(\"Alt-Shift-Up\", \"Command-Option-Up\"),\n exec: function (editor) { editor.copyLinesUp(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"movelinesup\",\n description: \"Move lines up\",\n bindKey: bindKey(\"Alt-Up\", \"Option-Up\"),\n exec: function (editor) { editor.moveLinesUp(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"copylinesdown\",\n description: \"Copy lines down\",\n bindKey: bindKey(\"Alt-Shift-Down\", \"Command-Option-Down\"),\n exec: function (editor) { editor.copyLinesDown(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"movelinesdown\",\n description: \"Move lines down\",\n bindKey: bindKey(\"Alt-Down\", \"Option-Down\"),\n exec: function (editor) { editor.moveLinesDown(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"del\",\n description: \"Delete\",\n bindKey: bindKey(\"Delete\", \"Delete|Ctrl-D|Shift-Delete\"),\n exec: function (editor) { editor.remove(\"right\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"backspace\",\n description: \"Backspace\",\n bindKey: bindKey(\"Shift-Backspace|Backspace\", \"Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H\"),\n exec: function (editor) { editor.remove(\"left\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"cut_or_delete\",\n description: \"Cut or delete\",\n bindKey: bindKey(\"Shift-Delete\", null),\n exec: function (editor) {\n if (editor.selection.isEmpty()) {\n editor.remove(\"left\");\n }\n else {\n return false;\n }\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolinestart\",\n description: \"Remove to line start\",\n bindKey: bindKey(\"Alt-Backspace\", \"Command-Backspace\"),\n exec: function (editor) { editor.removeToLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolineend\",\n description: \"Remove to line end\",\n bindKey: bindKey(\"Alt-Delete\", \"Ctrl-K|Command-Delete\"),\n exec: function (editor) { editor.removeToLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolinestarthard\",\n description: \"Remove to line start hard\",\n bindKey: bindKey(\"Ctrl-Shift-Backspace\", null),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.start.column = 0;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolineendhard\",\n description: \"Remove to line end hard\",\n bindKey: bindKey(\"Ctrl-Shift-Delete\", null),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.end.column = Number.MAX_VALUE;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removewordleft\",\n description: \"Remove word left\",\n bindKey: bindKey(\"Ctrl-Backspace\", \"Alt-Backspace|Ctrl-Alt-Backspace\"),\n exec: function (editor) { editor.removeWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removewordright\",\n description: \"Remove word right\",\n bindKey: bindKey(\"Ctrl-Delete\", \"Alt-Delete\"),\n exec: function (editor) { editor.removeWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"outdent\",\n description: \"Outdent\",\n bindKey: bindKey(\"Shift-Tab\", \"Shift-Tab\"),\n exec: function (editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"indent\",\n description: \"Indent\",\n bindKey: bindKey(\"Tab\", \"Tab\"),\n exec: function (editor) { editor.indent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"blockoutdent\",\n description: \"Block outdent\",\n bindKey: bindKey(\"Ctrl-[\", \"Ctrl-[\"),\n exec: function (editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"blockindent\",\n description: \"Block indent\",\n bindKey: bindKey(\"Ctrl-]\", \"Ctrl-]\"),\n exec: function (editor) { editor.blockIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"insertstring\",\n description: \"Insert string\",\n exec: function (editor, str) { editor.insert(str); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"inserttext\",\n description: \"Insert text\",\n exec: function (editor, args) {\n editor.insert(lang.stringRepeat(args.text || \"\", args.times || 1));\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"splitline\",\n description: \"Split line\",\n bindKey: bindKey(null, \"Ctrl-O\"),\n exec: function (editor) { editor.splitLine(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"transposeletters\",\n description: \"Transpose letters\",\n bindKey: bindKey(\"Alt-Shift-X\", \"Ctrl-T\"),\n exec: function (editor) { editor.transposeLetters(); },\n multiSelectAction: function (editor) { editor.transposeSelections(1); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"touppercase\",\n description: \"To uppercase\",\n bindKey: bindKey(\"Ctrl-U\", \"Ctrl-U\"),\n exec: function (editor) { editor.toUpperCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"tolowercase\",\n description: \"To lowercase\",\n bindKey: bindKey(\"Ctrl-Shift-U\", \"Ctrl-Shift-U\"),\n exec: function (editor) { editor.toLowerCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"autoindent\",\n description: \"Auto Indent\",\n bindKey: bindKey(null, null),\n exec: function (editor) { editor.autoIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"animate\"\n }, {\n name: \"expandtoline\",\n description: \"Expand to line\",\n bindKey: bindKey(\"Ctrl-Shift-L\", \"Command-Shift-L\"),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.start.column = range.end.column = 0;\n range.end.row++;\n editor.selection.setRange(range, false);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"openlink\",\n bindKey: bindKey(\"Ctrl+F3\", \"F3\"),\n exec: function (editor) { editor.openLink(); }\n }, {\n name: \"joinlines\",\n description: \"Join lines\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n var isBackwards = editor.selection.isBackwards();\n var selectionStart = isBackwards ? editor.selection.getSelectionLead() : editor.selection.getSelectionAnchor();\n var selectionEnd = isBackwards ? editor.selection.getSelectionAnchor() : editor.selection.getSelectionLead();\n var firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length;\n var selectedText = editor.session.doc.getTextRange(editor.selection.getRange());\n var selectedCount = selectedText.replace(/\\n\\s*/, \" \").length;\n var insertLine = editor.session.doc.getLine(selectionStart.row);\n for (var i = selectionStart.row + 1; i <= selectionEnd.row + 1; i++) {\n var curLine = lang.stringTrimLeft(lang.stringTrimRight(editor.session.doc.getLine(i)));\n if (curLine.length !== 0) {\n curLine = \" \" + curLine;\n }\n insertLine += curLine;\n }\n if (selectionEnd.row + 1 < (editor.session.doc.getLength() - 1)) {\n insertLine += editor.session.doc.getNewLineCharacter();\n }\n editor.clearSelection();\n editor.session.doc.replace(new Range(selectionStart.row, 0, selectionEnd.row + 2, 0), insertLine);\n if (selectedCount > 0) {\n editor.selection.moveCursorTo(selectionStart.row, selectionStart.column);\n editor.selection.selectTo(selectionStart.row, selectionStart.column + selectedCount);\n }\n else {\n firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length > firstLineEndCol ? (firstLineEndCol + 1) : firstLineEndCol;\n editor.selection.moveCursorTo(selectionStart.row, firstLineEndCol);\n }\n },\n multiSelectAction: \"forEach\",\n readOnly: true\n }, {\n name: \"invertSelection\",\n description: \"Invert selection\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n var endRow = editor.session.doc.getLength() - 1;\n var endCol = editor.session.doc.getLine(endRow).length;\n var ranges = editor.selection.rangeList.ranges;\n var newRanges = [];\n if (ranges.length < 1) {\n ranges = [editor.selection.getRange()];\n }\n for (var i = 0; i < ranges.length; i++) {\n if (i == (ranges.length - 1)) {\n if (!(ranges[i].end.row === endRow && ranges[i].end.column === endCol)) {\n newRanges.push(new Range(ranges[i].end.row, ranges[i].end.column, endRow, endCol));\n }\n }\n if (i === 0) {\n if (!(ranges[i].start.row === 0 && ranges[i].start.column === 0)) {\n newRanges.push(new Range(0, 0, ranges[i].start.row, ranges[i].start.column));\n }\n }\n else {\n newRanges.push(new Range(ranges[i - 1].end.row, ranges[i - 1].end.column, ranges[i].start.row, ranges[i].start.column));\n }\n }\n editor.exitMultiSelectMode();\n editor.clearSelection();\n for (var i = 0; i < newRanges.length; i++) {\n editor.selection.addRange(newRanges[i], false);\n }\n },\n readOnly: true,\n scrollIntoView: \"none\"\n }, {\n name: \"addLineAfter\",\n description: \"Add new line after the current line\",\n exec: function (editor) {\n editor.selection.clearSelection();\n editor.navigateLineEnd();\n editor.insert(\"\\n\");\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"addLineBefore\",\n description: \"Add new line before the current line\",\n exec: function (editor) {\n editor.selection.clearSelection();\n var cursor = editor.getCursorPosition();\n editor.selection.moveTo(cursor.row - 1, Number.MAX_VALUE);\n editor.insert(\"\\n\");\n if (cursor.row === 0)\n editor.navigateUp();\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"openCommandPallete\",\n exec: function (editor) {\n console.warn(\"This is an obsolete command. Please use `openCommandPalette` instead.\");\n editor.prompt({ $type: \"commands\" });\n },\n readOnly: true\n }, {\n name: \"openCommandPalette\",\n description: \"Open command palette\",\n bindKey: bindKey(\"F1\", \"F1\"),\n exec: function (editor) {\n editor.prompt({ $type: \"commands\" });\n },\n readOnly: true\n }, {\n name: \"modeSelect\",\n description: \"Change language mode...\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n editor.prompt({ $type: \"modes\" });\n },\n readOnly: true\n }];\nfor (var i = 1; i < 9; i++) {\n exports.commands.push({\n name: \"foldToLevel\" + i,\n description: \"Fold To Level \" + i,\n level: i,\n exec: function (editor) { editor.session.foldToLevel(this.level); },\n scrollIntoView: \"center\",\n readOnly: true\n });\n}\n\n});\n\nace.define(\"ace/line_widgets\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"./lib/dom\");\nvar LineWidgets = /** @class */ (function () {\n function LineWidgets(session) {\n this.session = session;\n this.session.widgetManager = this;\n this.session.getRowLength = this.getRowLength;\n this.session.$getWidgetScreenLength = this.$getWidgetScreenLength;\n this.updateOnChange = this.updateOnChange.bind(this);\n this.renderWidgets = this.renderWidgets.bind(this);\n this.measureWidgets = this.measureWidgets.bind(this);\n this.session._changedWidgets = [];\n this.$onChangeEditor = this.$onChangeEditor.bind(this);\n this.session.on(\"change\", this.updateOnChange);\n this.session.on(\"changeFold\", this.updateOnFold);\n this.session.on(\"changeEditor\", this.$onChangeEditor);\n }\n LineWidgets.prototype.getRowLength = function (row) {\n var h;\n if (this.lineWidgets)\n h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n else\n h = 0;\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1 + h;\n }\n else {\n return this.$wrapData[row].length + 1 + h;\n }\n };\n LineWidgets.prototype.$getWidgetScreenLength = function () {\n var screenRows = 0;\n this.lineWidgets.forEach(function (w) {\n if (w && w.rowCount && !w.hidden)\n screenRows += w.rowCount;\n });\n return screenRows;\n };\n LineWidgets.prototype.$onChangeEditor = function (e) {\n this.attach(e.editor);\n };\n LineWidgets.prototype.attach = function (editor) {\n if (editor && editor.widgetManager && editor.widgetManager != this)\n editor.widgetManager.detach();\n if (this.editor == editor)\n return;\n this.detach();\n this.editor = editor;\n if (editor) {\n editor.widgetManager = this;\n editor.renderer.on(\"beforeRender\", this.measureWidgets);\n editor.renderer.on(\"afterRender\", this.renderWidgets);\n }\n };\n LineWidgets.prototype.detach = function (e) {\n var editor = this.editor;\n if (!editor)\n return;\n this.editor = null;\n editor.widgetManager = null;\n editor.renderer.off(\"beforeRender\", this.measureWidgets);\n editor.renderer.off(\"afterRender\", this.renderWidgets);\n var lineWidgets = this.session.lineWidgets;\n lineWidgets && lineWidgets.forEach(function (w) {\n if (w && w.el && w.el.parentNode) {\n w._inDocument = false;\n w.el.parentNode.removeChild(w.el);\n }\n });\n };\n LineWidgets.prototype.updateOnFold = function (e, session) {\n var lineWidgets = session.lineWidgets;\n if (!lineWidgets || !e.action)\n return;\n var fold = e.data;\n var start = fold.start.row;\n var end = fold.end.row;\n var hide = e.action == \"add\";\n for (var i = start + 1; i < end; i++) {\n if (lineWidgets[i])\n lineWidgets[i].hidden = hide;\n }\n if (lineWidgets[end]) {\n if (hide) {\n if (!lineWidgets[start])\n lineWidgets[start] = lineWidgets[end];\n else\n lineWidgets[end].hidden = hide;\n }\n else {\n if (lineWidgets[start] == lineWidgets[end])\n lineWidgets[start] = undefined;\n lineWidgets[end].hidden = hide;\n }\n }\n };\n LineWidgets.prototype.updateOnChange = function (delta) {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n if (len === 0) {\n }\n else if (delta.action == \"remove\") {\n var removed = lineWidgets.splice(startRow + 1, len);\n if (!lineWidgets[startRow] && removed[removed.length - 1]) {\n lineWidgets[startRow] = removed.pop();\n }\n removed.forEach(function (w) {\n w && this.removeLineWidget(w);\n }, this);\n this.$updateRows();\n }\n else {\n var args = new Array(len);\n if (lineWidgets[startRow] && lineWidgets[startRow].column != null) {\n if (delta.start.column > lineWidgets[startRow].column)\n startRow++;\n }\n args.unshift(startRow, 0);\n lineWidgets.splice.apply(lineWidgets, args);\n this.$updateRows();\n }\n };\n LineWidgets.prototype.$updateRows = function () {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var noWidgets = true;\n lineWidgets.forEach(function (w, i) {\n if (w) {\n noWidgets = false;\n w.row = i;\n while (w.$oldWidget) {\n w.$oldWidget.row = i;\n w = w.$oldWidget;\n }\n }\n });\n if (noWidgets)\n this.session.lineWidgets = null;\n };\n LineWidgets.prototype.$registerLineWidget = function (w) {\n if (!this.session.lineWidgets)\n this.session.lineWidgets = new Array(this.session.getLength());\n var old = this.session.lineWidgets[w.row];\n if (old) {\n w.$oldWidget = old;\n if (old.el && old.el.parentNode) {\n old.el.parentNode.removeChild(old.el);\n old._inDocument = false;\n }\n }\n this.session.lineWidgets[w.row] = w;\n return w;\n };\n LineWidgets.prototype.addLineWidget = function (w) {\n this.$registerLineWidget(w);\n w.session = this.session;\n if (!this.editor)\n return w;\n var renderer = this.editor.renderer;\n if (w.html && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.innerHTML = w.html;\n }\n if (w.text && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.textContent = w.text;\n }\n if (w.el) {\n dom.addCssClass(w.el, \"ace_lineWidgetContainer\");\n if (w.className) {\n dom.addCssClass(w.el, w.className);\n }\n w.el.style.position = \"absolute\";\n w.el.style.zIndex = 5;\n renderer.container.appendChild(w.el);\n w._inDocument = true;\n if (!w.coverGutter) {\n w.el.style.zIndex = 3;\n }\n if (w.pixelHeight == null) {\n w.pixelHeight = w.el.offsetHeight;\n }\n }\n if (w.rowCount == null) {\n w.rowCount = w.pixelHeight / renderer.layerConfig.lineHeight;\n }\n var fold = this.session.getFoldAt(w.row, 0);\n w.$fold = fold;\n if (fold) {\n var lineWidgets = this.session.lineWidgets;\n if (w.row == fold.end.row && !lineWidgets[fold.start.row])\n lineWidgets[fold.start.row] = w;\n else\n w.hidden = true;\n }\n this.session._emit(\"changeFold\", { data: { start: { row: w.row } } });\n this.$updateRows();\n this.renderWidgets(null, renderer);\n this.onWidgetChanged(w);\n return w;\n };\n LineWidgets.prototype.removeLineWidget = function (w) {\n w._inDocument = false;\n w.session = null;\n if (w.el && w.el.parentNode)\n w.el.parentNode.removeChild(w.el);\n if (w.editor && w.editor.destroy)\n try {\n w.editor.destroy();\n }\n catch (e) { }\n if (this.session.lineWidgets) {\n var w1 = this.session.lineWidgets[w.row];\n if (w1 == w) {\n this.session.lineWidgets[w.row] = w.$oldWidget;\n if (w.$oldWidget)\n this.onWidgetChanged(w.$oldWidget);\n }\n else {\n while (w1) {\n if (w1.$oldWidget == w) {\n w1.$oldWidget = w.$oldWidget;\n break;\n }\n w1 = w1.$oldWidget;\n }\n }\n }\n this.session._emit(\"changeFold\", { data: { start: { row: w.row } } });\n this.$updateRows();\n };\n LineWidgets.prototype.getWidgetsAtRow = function (row) {\n var lineWidgets = this.session.lineWidgets;\n var w = lineWidgets && lineWidgets[row];\n var list = [];\n while (w) {\n list.push(w);\n w = w.$oldWidget;\n }\n return list;\n };\n LineWidgets.prototype.onWidgetChanged = function (w) {\n this.session._changedWidgets.push(w);\n this.editor && this.editor.renderer.updateFull();\n };\n LineWidgets.prototype.measureWidgets = function (e, renderer) {\n var changedWidgets = this.session._changedWidgets;\n var config = renderer.layerConfig;\n if (!changedWidgets || !changedWidgets.length)\n return;\n var min = Infinity;\n for (var i = 0; i < changedWidgets.length; i++) {\n var w = changedWidgets[i];\n if (!w || !w.el)\n continue;\n if (w.session != this.session)\n continue;\n if (!w._inDocument) {\n if (this.session.lineWidgets[w.row] != w)\n continue;\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n w.h = w.el.offsetHeight;\n if (!w.fixedWidth) {\n w.w = w.el.offsetWidth;\n w.screenWidth = Math.ceil(w.w / config.characterWidth);\n }\n var rowCount = w.h / config.lineHeight;\n if (w.coverLine) {\n rowCount -= this.session.getRowLineCount(w.row);\n if (rowCount < 0)\n rowCount = 0;\n }\n if (w.rowCount != rowCount) {\n w.rowCount = rowCount;\n if (w.row < min)\n min = w.row;\n }\n }\n if (min != Infinity) {\n this.session._emit(\"changeFold\", { data: { start: { row: min } } });\n this.session.lineWidgetWidth = null;\n }\n this.session._changedWidgets = [];\n };\n LineWidgets.prototype.renderWidgets = function (e, renderer) {\n var config = renderer.layerConfig;\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var first = Math.min(this.firstRow, config.firstRow);\n var last = Math.max(this.lastRow, config.lastRow, lineWidgets.length);\n while (first > 0 && !lineWidgets[first])\n first--;\n this.firstRow = config.firstRow;\n this.lastRow = config.lastRow;\n renderer.$cursorLayer.config = config;\n for (var i = first; i <= last; i++) {\n var w = lineWidgets[i];\n if (!w || !w.el)\n continue;\n if (w.hidden) {\n w.el.style.top = -100 - (w.pixelHeight || 0) + \"px\";\n continue;\n }\n if (!w._inDocument) {\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n var top = renderer.$cursorLayer.getPixelPosition({ row: i, column: 0 }, true).top;\n if (!w.coverLine)\n top += config.lineHeight * this.session.getRowLineCount(w.row);\n w.el.style.top = top - config.offset + \"px\";\n var left = w.coverGutter ? 0 : renderer.gutterWidth;\n if (!w.fixedWidth)\n left -= renderer.scrollLeft;\n w.el.style.left = left + \"px\";\n if (w.fullWidth && w.screenWidth) {\n w.el.style.minWidth = config.width + 2 * config.padding + \"px\";\n }\n if (w.fixedWidth) {\n w.el.style.right = renderer.scrollBar.getWidth() + \"px\";\n }\n else {\n w.el.style.right = \"\";\n }\n }\n };\n return LineWidgets;\n}());\nexports.LineWidgets = LineWidgets;\n\n});\n\nace.define(\"ace/keyboard/gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/mouse/default_gutter_handler\"], function(require, exports, module){\"use strict\";\nvar keys = require('../lib/keys');\nvar GutterTooltip = require(\"../mouse/default_gutter_handler\").GutterTooltip;\nvar GutterKeyboardHandler = /** @class */ (function () {\n function GutterKeyboardHandler(editor) {\n this.editor = editor;\n this.gutterLayer = editor.renderer.$gutterLayer;\n this.element = editor.renderer.$gutter;\n this.lines = editor.renderer.$gutterLayer.$lines;\n this.activeRowIndex = null;\n this.activeLane = null;\n this.annotationTooltip = new GutterTooltip(this.editor);\n }\n GutterKeyboardHandler.prototype.addListener = function () {\n this.element.addEventListener(\"keydown\", this.$onGutterKeyDown.bind(this));\n this.element.addEventListener(\"focusout\", this.$blurGutter.bind(this));\n this.editor.on(\"mousewheel\", this.$blurGutter.bind(this));\n };\n GutterKeyboardHandler.prototype.removeListener = function () {\n this.element.removeEventListener(\"keydown\", this.$onGutterKeyDown.bind(this));\n this.element.removeEventListener(\"focusout\", this.$blurGutter.bind(this));\n this.editor.off(\"mousewheel\", this.$blurGutter.bind(this));\n };\n GutterKeyboardHandler.prototype.$onGutterKeyDown = function (e) {\n if (this.annotationTooltip.isOpen) {\n e.preventDefault();\n if (e.keyCode === keys[\"escape\"])\n this.annotationTooltip.hideTooltip();\n return;\n }\n if (e.target === this.element) {\n if (e.keyCode != keys[\"enter\"]) {\n return;\n }\n e.preventDefault();\n var row = this.editor.getCursorPosition().row;\n if (!this.editor.isRowVisible(row))\n this.editor.scrollToLine(row, true, true);\n setTimeout(function () {\n var index = this.$rowToRowIndex(this.gutterLayer.$cursorCell.row);\n var nearestFoldIndex = this.$findNearestFoldWidget(index);\n var nearestAnnotationIndex = this.$findNearestAnnotation(index);\n if (nearestFoldIndex === null && nearestAnnotationIndex === null)\n return;\n if (nearestFoldIndex === null && nearestAnnotationIndex !== null) {\n this.activeRowIndex = nearestAnnotationIndex;\n this.activeLane = \"annotation\";\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n if (nearestFoldIndex !== null && nearestAnnotationIndex === null) {\n this.activeRowIndex = nearestFoldIndex;\n this.activeLane = \"fold\";\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n if (Math.abs(nearestAnnotationIndex - index) < Math.abs(nearestFoldIndex - index)) {\n this.activeRowIndex = nearestAnnotationIndex;\n this.activeLane = \"annotation\";\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n else {\n this.activeRowIndex = nearestFoldIndex;\n this.activeLane = \"fold\";\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }.bind(this), 10);\n return;\n }\n this.$handleGutterKeyboardInteraction(e);\n setTimeout(function () {\n this.editor._signal(\"gutterkeydown\", new GutterKeyboardEvent(e, this));\n }.bind(this), 10);\n };\n GutterKeyboardHandler.prototype.$handleGutterKeyboardInteraction = function (e) {\n if (e.keyCode === keys[\"tab\"]) {\n e.preventDefault();\n return;\n }\n if (e.keyCode === keys[\"escape\"]) {\n e.preventDefault();\n this.$blurGutter();\n this.element.focus();\n this.lane = null;\n return;\n }\n if (e.keyCode === keys[\"up\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n this.$moveFoldWidgetUp();\n break;\n case \"annotation\":\n this.$moveAnnotationUp();\n break;\n }\n return;\n }\n if (e.keyCode === keys[\"down\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n this.$moveFoldWidgetDown();\n break;\n case \"annotation\":\n this.$moveAnnotationDown();\n break;\n }\n return;\n }\n if (e.keyCode === keys[\"left\"]) {\n e.preventDefault();\n this.$switchLane(\"annotation\");\n return;\n }\n if (e.keyCode === keys[\"right\"]) {\n e.preventDefault();\n this.$switchLane(\"fold\");\n return;\n }\n if (e.keyCode === keys[\"enter\"] || e.keyCode === keys[\"space\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n if (this.gutterLayer.session.foldWidgets[this.$rowIndexToRow(this.activeRowIndex)] === 'start') {\n var rowFoldingWidget = this.$rowIndexToRow(this.activeRowIndex);\n this.editor.session.onFoldWidgetClick(this.$rowIndexToRow(this.activeRowIndex), e);\n setTimeout(function () {\n if (this.$rowIndexToRow(this.activeRowIndex) !== rowFoldingWidget) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = this.$rowToRowIndex(rowFoldingWidget);\n this.$focusFoldWidget(this.activeRowIndex);\n }\n }.bind(this), 10);\n break;\n }\n else if (this.gutterLayer.session.foldWidgets[this.$rowIndexToRow(this.activeRowIndex)] === 'end') {\n break;\n }\n return;\n case \"annotation\":\n var gutterElement = this.lines.cells[this.activeRowIndex].element.childNodes[2];\n var rect = gutterElement.getBoundingClientRect();\n var style = this.annotationTooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n this.annotationTooltip.showTooltip(this.$rowIndexToRow(this.activeRowIndex));\n break;\n }\n return;\n }\n };\n GutterKeyboardHandler.prototype.$blurGutter = function () {\n if (this.activeRowIndex !== null) {\n switch (this.activeLane) {\n case \"fold\":\n this.$blurFoldWidget(this.activeRowIndex);\n break;\n case \"annotation\":\n this.$blurAnnotation(this.activeRowIndex);\n break;\n }\n }\n if (this.annotationTooltip.isOpen)\n this.annotationTooltip.hideTooltip();\n return;\n };\n GutterKeyboardHandler.prototype.$isFoldWidgetVisible = function (index) {\n var isRowFullyVisible = this.editor.isRowFullyVisible(this.$rowIndexToRow(index));\n var isIconVisible = this.$getFoldWidget(index).style.display !== \"none\";\n return isRowFullyVisible && isIconVisible;\n };\n GutterKeyboardHandler.prototype.$isAnnotationVisible = function (index) {\n var isRowFullyVisible = this.editor.isRowFullyVisible(this.$rowIndexToRow(index));\n var isIconVisible = this.$getAnnotation(index).style.display !== \"none\";\n return isRowFullyVisible && isIconVisible;\n };\n GutterKeyboardHandler.prototype.$getFoldWidget = function (index) {\n var cell = this.lines.get(index);\n var element = cell.element;\n return element.childNodes[1];\n };\n GutterKeyboardHandler.prototype.$getAnnotation = function (index) {\n var cell = this.lines.get(index);\n var element = cell.element;\n return element.childNodes[2];\n };\n GutterKeyboardHandler.prototype.$findNearestFoldWidget = function (index) {\n if (this.$isFoldWidgetVisible(index))\n return index;\n var i = 0;\n while (index - i > 0 || index + i < this.lines.getLength() - 1) {\n i++;\n if (index - i >= 0 && this.$isFoldWidgetVisible(index - i))\n return index - i;\n if (index + i <= this.lines.getLength() - 1 && this.$isFoldWidgetVisible(index + i))\n return index + i;\n }\n return null;\n };\n GutterKeyboardHandler.prototype.$findNearestAnnotation = function (index) {\n if (this.$isAnnotationVisible(index))\n return index;\n var i = 0;\n while (index - i > 0 || index + i < this.lines.getLength() - 1) {\n i++;\n if (index - i >= 0 && this.$isAnnotationVisible(index - i))\n return index - i;\n if (index + i <= this.lines.getLength() - 1 && this.$isAnnotationVisible(index + i))\n return index + i;\n }\n return null;\n };\n GutterKeyboardHandler.prototype.$focusFoldWidget = function (index) {\n if (index == null)\n return;\n var foldWidget = this.$getFoldWidget(index);\n foldWidget.classList.add(this.editor.renderer.keyboardFocusClassName);\n foldWidget.focus();\n };\n GutterKeyboardHandler.prototype.$focusAnnotation = function (index) {\n if (index == null)\n return;\n var annotation = this.$getAnnotation(index);\n annotation.classList.add(this.editor.renderer.keyboardFocusClassName);\n annotation.focus();\n };\n GutterKeyboardHandler.prototype.$blurFoldWidget = function (index) {\n var foldWidget = this.$getFoldWidget(index);\n foldWidget.classList.remove(this.editor.renderer.keyboardFocusClassName);\n foldWidget.blur();\n };\n GutterKeyboardHandler.prototype.$blurAnnotation = function (index) {\n var annotation = this.$getAnnotation(index);\n annotation.classList.remove(this.editor.renderer.keyboardFocusClassName);\n annotation.blur();\n };\n GutterKeyboardHandler.prototype.$moveFoldWidgetUp = function () {\n var index = this.activeRowIndex;\n while (index > 0) {\n index--;\n if (this.$isFoldWidgetVisible(index)) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveFoldWidgetDown = function () {\n var index = this.activeRowIndex;\n while (index < this.lines.getLength() - 1) {\n index++;\n if (this.$isFoldWidgetVisible(index)) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveAnnotationUp = function () {\n var index = this.activeRowIndex;\n while (index > 0) {\n index--;\n if (this.$isAnnotationVisible(index)) {\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveAnnotationDown = function () {\n var index = this.activeRowIndex;\n while (index < this.lines.getLength() - 1) {\n index++;\n if (this.$isAnnotationVisible(index)) {\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$switchLane = function (desinationLane) {\n switch (desinationLane) {\n case \"annotation\":\n if (this.activeLane === \"annotation\") {\n break;\n }\n var annotationIndex = this.$findNearestAnnotation(this.activeRowIndex);\n if (annotationIndex == null) {\n break;\n }\n this.activeLane = \"annotation\";\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = annotationIndex;\n this.$focusAnnotation(this.activeRowIndex);\n break;\n case \"fold\":\n if (this.activeLane === \"fold\") {\n break;\n }\n var foldWidgetIndex = this.$findNearestFoldWidget(this.activeRowIndex);\n if (foldWidgetIndex == null) {\n break;\n }\n this.activeLane = \"fold\";\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = foldWidgetIndex;\n this.$focusFoldWidget(this.activeRowIndex);\n break;\n }\n return;\n };\n GutterKeyboardHandler.prototype.$rowIndexToRow = function (index) {\n var cell = this.lines.get(index);\n if (cell)\n return cell.row;\n return null;\n };\n GutterKeyboardHandler.prototype.$rowToRowIndex = function (row) {\n for (var i = 0; i < this.lines.getLength(); i++) {\n var cell = this.lines.get(i);\n if (cell.row == row)\n return i;\n }\n return null;\n };\n return GutterKeyboardHandler;\n}());\nexports.GutterKeyboardHandler = GutterKeyboardHandler;\nvar GutterKeyboardEvent = /** @class */ (function () {\n function GutterKeyboardEvent(domEvent, gutterKeyboardHandler) {\n this.gutterKeyboardHandler = gutterKeyboardHandler;\n this.domEvent = domEvent;\n }\n GutterKeyboardEvent.prototype.getKey = function () {\n return keys.keyCodeToString(this.domEvent.keyCode);\n };\n GutterKeyboardEvent.prototype.getRow = function () {\n return this.gutterKeyboardHandler.$rowIndexToRow(this.gutterKeyboardHandler.activeRowIndex);\n };\n GutterKeyboardEvent.prototype.isInAnnotationLane = function () {\n return this.gutterKeyboardHandler.activeLane === \"annotation\";\n };\n GutterKeyboardEvent.prototype.isInFoldLane = function () {\n return this.gutterKeyboardHandler.activeLane === \"fold\";\n };\n return GutterKeyboardEvent;\n}());\nexports.GutterKeyboardEvent = GutterKeyboardEvent;\n\n});\n\nace.define(\"ace/editor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/keyboard/textinput\",\"ace/mouse/mouse_handler\",\"ace/mouse/fold_handler\",\"ace/keyboard/keybinding\",\"ace/edit_session\",\"ace/search\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/commands/command_manager\",\"ace/commands/default_commands\",\"ace/config\",\"ace/token_iterator\",\"ace/line_widgets\",\"ace/keyboard/gutter_handler\",\"ace/config\",\"ace/clipboard\",\"ace/lib/keys\"], function(require, exports, module){\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar lang = require(\"./lib/lang\");\nvar useragent = require(\"./lib/useragent\");\nvar TextInput = require(\"./keyboard/textinput\").TextInput;\nvar MouseHandler = require(\"./mouse/mouse_handler\").MouseHandler;\nvar FoldHandler = require(\"./mouse/fold_handler\").FoldHandler;\nvar KeyBinding = require(\"./keyboard/keybinding\").KeyBinding;\nvar EditSession = require(\"./edit_session\").EditSession;\nvar Search = require(\"./search\").Search;\nvar Range = require(\"./range\").Range;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar CommandManager = require(\"./commands/command_manager\").CommandManager;\nvar defaultCommands = require(\"./commands/default_commands\").commands;\nvar config = require(\"./config\");\nvar TokenIterator = require(\"./token_iterator\").TokenIterator;\nvar LineWidgets = require(\"./line_widgets\").LineWidgets;\nvar GutterKeyboardHandler = require(\"./keyboard/gutter_handler\").GutterKeyboardHandler;\nvar nls = require(\"./config\").nls;\nvar clipboard = require(\"./clipboard\");\nvar keys = require('./lib/keys');\nvar Editor = /** @class */ (function () {\n function Editor(renderer, session, options) {\n this.$toDestroy = [];\n var container = renderer.getContainerElement();\n this.container = container;\n this.renderer = renderer;\n this.id = \"editor\" + (++Editor.$uid);\n this.commands = new CommandManager(useragent.isMac ? \"mac\" : \"win\", defaultCommands);\n if (typeof document == \"object\") {\n this.textInput = new TextInput(renderer.getTextAreaContainer(), this);\n this.renderer.textarea = this.textInput.getElement();\n this.$mouseHandler = new MouseHandler(this);\n new FoldHandler(this);\n }\n this.keyBinding = new KeyBinding(this);\n this.$search = new Search().set({\n wrap: true\n });\n this.$historyTracker = this.$historyTracker.bind(this);\n this.commands.on(\"exec\", this.$historyTracker);\n this.$initOperationListeners();\n this._$emitInputEvent = lang.delayedCall(function () {\n this._signal(\"input\", {});\n if (this.session && !this.session.destroyed)\n this.session.bgTokenizer.scheduleStart();\n }.bind(this));\n this.on(\"change\", function (_, _self) {\n _self._$emitInputEvent.schedule(31);\n });\n this.setSession(session || options && options.session || new EditSession(\"\"));\n config.resetOptions(this);\n if (options)\n this.setOptions(options);\n config._signal(\"editor\", this);\n }\n Editor.prototype.$initOperationListeners = function () {\n this.commands.on(\"exec\", this.startOperation.bind(this), true);\n this.commands.on(\"afterExec\", this.endOperation.bind(this), true);\n this.$opResetTimer = lang.delayedCall(this.endOperation.bind(this, true));\n this.on(\"change\", function () {\n if (!this.curOp) {\n this.startOperation();\n this.curOp.selectionBefore = this.$lastSel;\n }\n this.curOp.docChanged = true;\n }.bind(this), true);\n this.on(\"changeSelection\", function () {\n if (!this.curOp) {\n this.startOperation();\n this.curOp.selectionBefore = this.$lastSel;\n }\n this.curOp.selectionChanged = true;\n }.bind(this), true);\n };\n Editor.prototype.startOperation = function (commandEvent) {\n if (this.curOp) {\n if (!commandEvent || this.curOp.command)\n return;\n this.prevOp = this.curOp;\n }\n if (!commandEvent) {\n this.previousCommand = null;\n commandEvent = {};\n }\n this.$opResetTimer.schedule();\n this.curOp = this.session.curOp = {\n command: commandEvent.command || {},\n args: commandEvent.args,\n scrollTop: this.renderer.scrollTop\n };\n this.curOp.selectionBefore = this.selection.toJSON();\n };\n Editor.prototype.endOperation = function (e) {\n if (this.curOp && this.session) {\n if (e && e.returnValue === false || !this.session)\n return (this.curOp = null);\n if (e == true && this.curOp.command && this.curOp.command.name == \"mouse\")\n return;\n this._signal(\"beforeEndOperation\");\n if (!this.curOp)\n return;\n var command = this.curOp.command;\n var scrollIntoView = command && command.scrollIntoView;\n if (scrollIntoView) {\n switch (scrollIntoView) {\n case \"center-animate\":\n scrollIntoView = \"animate\";\n case \"center\":\n this.renderer.scrollCursorIntoView(null, 0.5);\n break;\n case \"animate\":\n case \"cursor\":\n this.renderer.scrollCursorIntoView();\n break;\n case \"selectionPart\":\n var range = this.selection.getRange();\n var config = this.renderer.layerConfig;\n if (range.start.row >= config.lastRow || range.end.row <= config.firstRow) {\n this.renderer.scrollSelectionIntoView(this.selection.anchor, this.selection.lead);\n }\n break;\n default:\n break;\n }\n if (scrollIntoView == \"animate\")\n this.renderer.animateScrolling(this.curOp.scrollTop);\n }\n var sel = this.selection.toJSON();\n this.curOp.selectionAfter = sel;\n this.$lastSel = this.selection.toJSON();\n this.session.getUndoManager().addSelection(sel);\n this.prevOp = this.curOp;\n this.curOp = null;\n }\n };\n Editor.prototype.$historyTracker = function (e) {\n if (!this.$mergeUndoDeltas)\n return;\n var prev = this.prevOp;\n var mergeableCommands = this.$mergeableCommands;\n var shouldMerge = prev.command && (e.command.name == prev.command.name);\n if (e.command.name == \"insertstring\") {\n var text = e.args;\n if (this.mergeNextCommand === undefined)\n this.mergeNextCommand = true;\n shouldMerge = shouldMerge\n && this.mergeNextCommand // previous command allows to coalesce with\n && (!/\\s/.test(text) || /\\s/.test(prev.args)); // previous insertion was of same type\n this.mergeNextCommand = true;\n }\n else {\n shouldMerge = shouldMerge\n && mergeableCommands.indexOf(e.command.name) !== -1; // the command is mergeable\n }\n if (this.$mergeUndoDeltas != \"always\"\n && Date.now() - this.sequenceStartTime > 2000) {\n shouldMerge = false; // the sequence is too long\n }\n if (shouldMerge)\n this.session.mergeUndoDeltas = true;\n else if (mergeableCommands.indexOf(e.command.name) !== -1)\n this.sequenceStartTime = Date.now();\n };\n Editor.prototype.setKeyboardHandler = function (keyboardHandler, cb) {\n if (keyboardHandler && typeof keyboardHandler === \"string\" && keyboardHandler != \"ace\") {\n this.$keybindingId = keyboardHandler;\n var _self = this;\n config.loadModule([\"keybinding\", keyboardHandler], function (module) {\n if (_self.$keybindingId == keyboardHandler)\n _self.keyBinding.setKeyboardHandler(module && module.handler);\n cb && cb();\n });\n }\n else {\n this.$keybindingId = null;\n this.keyBinding.setKeyboardHandler(keyboardHandler);\n cb && cb();\n }\n };\n Editor.prototype.getKeyboardHandler = function () {\n return this.keyBinding.getKeyboardHandler();\n };\n Editor.prototype.setSession = function (session) {\n if (this.session == session)\n return;\n if (this.curOp)\n this.endOperation();\n this.curOp = {};\n var oldSession = this.session;\n if (oldSession) {\n this.session.off(\"change\", this.$onDocumentChange);\n this.session.off(\"changeMode\", this.$onChangeMode);\n this.session.off(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.session.off(\"changeTabSize\", this.$onChangeTabSize);\n this.session.off(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.session.off(\"changeWrapMode\", this.$onChangeWrapMode);\n this.session.off(\"changeFold\", this.$onChangeFold);\n this.session.off(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.session.off(\"changeBackMarker\", this.$onChangeBackMarker);\n this.session.off(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.session.off(\"changeAnnotation\", this.$onChangeAnnotation);\n this.session.off(\"changeOverwrite\", this.$onCursorChange);\n this.session.off(\"changeScrollTop\", this.$onScrollTopChange);\n this.session.off(\"changeScrollLeft\", this.$onScrollLeftChange);\n var selection = this.session.getSelection();\n selection.off(\"changeCursor\", this.$onCursorChange);\n selection.off(\"changeSelection\", this.$onSelectionChange);\n }\n this.session = session;\n if (session) {\n this.$onDocumentChange = this.onDocumentChange.bind(this);\n session.on(\"change\", this.$onDocumentChange);\n this.renderer.setSession(session);\n this.$onChangeMode = this.onChangeMode.bind(this);\n session.on(\"changeMode\", this.$onChangeMode);\n this.$onTokenizerUpdate = this.onTokenizerUpdate.bind(this);\n session.on(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.$onChangeTabSize = this.renderer.onChangeTabSize.bind(this.renderer);\n session.on(\"changeTabSize\", this.$onChangeTabSize);\n this.$onChangeWrapLimit = this.onChangeWrapLimit.bind(this);\n session.on(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.$onChangeWrapMode = this.onChangeWrapMode.bind(this);\n session.on(\"changeWrapMode\", this.$onChangeWrapMode);\n this.$onChangeFold = this.onChangeFold.bind(this);\n session.on(\"changeFold\", this.$onChangeFold);\n this.$onChangeFrontMarker = this.onChangeFrontMarker.bind(this);\n this.session.on(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.$onChangeBackMarker = this.onChangeBackMarker.bind(this);\n this.session.on(\"changeBackMarker\", this.$onChangeBackMarker);\n this.$onChangeBreakpoint = this.onChangeBreakpoint.bind(this);\n this.session.on(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.$onChangeAnnotation = this.onChangeAnnotation.bind(this);\n this.session.on(\"changeAnnotation\", this.$onChangeAnnotation);\n this.$onCursorChange = this.onCursorChange.bind(this);\n this.session.on(\"changeOverwrite\", this.$onCursorChange);\n this.$onScrollTopChange = this.onScrollTopChange.bind(this);\n this.session.on(\"changeScrollTop\", this.$onScrollTopChange);\n this.$onScrollLeftChange = this.onScrollLeftChange.bind(this);\n this.session.on(\"changeScrollLeft\", this.$onScrollLeftChange);\n this.selection = session.getSelection();\n this.selection.on(\"changeCursor\", this.$onCursorChange);\n this.$onSelectionChange = this.onSelectionChange.bind(this);\n this.selection.on(\"changeSelection\", this.$onSelectionChange);\n this.onChangeMode();\n this.onCursorChange();\n this.onScrollTopChange();\n this.onScrollLeftChange();\n this.onSelectionChange();\n this.onChangeFrontMarker();\n this.onChangeBackMarker();\n this.onChangeBreakpoint();\n this.onChangeAnnotation();\n this.session.getUseWrapMode() && this.renderer.adjustWrapLimit();\n this.renderer.updateFull();\n }\n else {\n this.selection = null;\n this.renderer.setSession(session);\n }\n this._signal(\"changeSession\", {\n session: session,\n oldSession: oldSession\n });\n this.curOp = null;\n oldSession && oldSession._signal(\"changeEditor\", { oldEditor: this });\n session && session._signal(\"changeEditor\", { editor: this });\n if (session && !session.destroyed)\n session.bgTokenizer.scheduleStart();\n };\n Editor.prototype.getSession = function () {\n return this.session;\n };\n Editor.prototype.setValue = function (val, cursorPos) {\n this.session.doc.setValue(val);\n if (!cursorPos)\n this.selectAll();\n else if (cursorPos == 1)\n this.navigateFileEnd();\n else if (cursorPos == -1)\n this.navigateFileStart();\n return val;\n };\n Editor.prototype.getValue = function () {\n return this.session.getValue();\n };\n Editor.prototype.getSelection = function () {\n return this.selection;\n };\n Editor.prototype.resize = function (force) {\n this.renderer.onResize(force);\n };\n Editor.prototype.setTheme = function (theme, cb) {\n this.renderer.setTheme(theme, cb);\n };\n Editor.prototype.getTheme = function () {\n return this.renderer.getTheme();\n };\n Editor.prototype.setStyle = function (style) {\n this.renderer.setStyle(style);\n };\n Editor.prototype.unsetStyle = function (style) {\n this.renderer.unsetStyle(style);\n };\n Editor.prototype.getFontSize = function () {\n return this.getOption(\"fontSize\") ||\n dom.computedStyle(this.container).fontSize;\n };\n Editor.prototype.setFontSize = function (size) {\n this.setOption(\"fontSize\", size);\n };\n Editor.prototype.$highlightBrackets = function () {\n if (this.$highlightPending) {\n return;\n }\n var self = this;\n this.$highlightPending = true;\n setTimeout(function () {\n self.$highlightPending = false;\n var session = self.session;\n if (!session || session.destroyed)\n return;\n if (session.$bracketHighlight) {\n session.$bracketHighlight.markerIds.forEach(function (id) {\n session.removeMarker(id);\n });\n session.$bracketHighlight = null;\n }\n var pos = self.getCursorPosition();\n var handler = self.getKeyboardHandler();\n var isBackwards = handler && handler.$getDirectionForHighlight && handler.$getDirectionForHighlight(self);\n var ranges = session.getMatchingBracketRanges(pos, isBackwards);\n if (!ranges) {\n var iterator = new TokenIterator(session, pos.row, pos.column);\n var token = iterator.getCurrentToken();\n if (token && /\\b(?:tag-open|tag-name)/.test(token.type)) {\n var tagNamesRanges = session.getMatchingTags(pos);\n if (tagNamesRanges)\n ranges = [tagNamesRanges.openTagName, tagNamesRanges.closeTagName];\n }\n }\n if (!ranges && session.$mode.getMatching)\n ranges = session.$mode.getMatching(self.session);\n if (!ranges) {\n if (self.getHighlightIndentGuides())\n self.renderer.$textLayer.$highlightIndentGuide();\n return;\n }\n var markerType = \"ace_bracket\";\n if (!Array.isArray(ranges)) {\n ranges = [ranges];\n }\n else if (ranges.length == 1) {\n markerType = \"ace_error_bracket\";\n }\n if (ranges.length == 2) {\n if (Range.comparePoints(ranges[0].end, ranges[1].start) == 0)\n ranges = [Range.fromPoints(ranges[0].start, ranges[1].end)];\n else if (Range.comparePoints(ranges[0].start, ranges[1].end) == 0)\n ranges = [Range.fromPoints(ranges[1].start, ranges[0].end)];\n }\n session.$bracketHighlight = {\n ranges: ranges,\n markerIds: ranges.map(function (range) {\n return session.addMarker(range, markerType, \"text\");\n })\n };\n if (self.getHighlightIndentGuides())\n self.renderer.$textLayer.$highlightIndentGuide();\n }, 50);\n };\n Editor.prototype.focus = function () {\n this.textInput.focus();\n };\n Editor.prototype.isFocused = function () {\n return this.textInput.isFocused();\n };\n Editor.prototype.blur = function () {\n this.textInput.blur();\n };\n Editor.prototype.onFocus = function (e) {\n if (this.$isFocused)\n return;\n this.$isFocused = true;\n this.renderer.showCursor();\n this.renderer.visualizeFocus();\n this._emit(\"focus\", e);\n };\n Editor.prototype.onBlur = function (e) {\n if (!this.$isFocused)\n return;\n this.$isFocused = false;\n this.renderer.hideCursor();\n this.renderer.visualizeBlur();\n this._emit(\"blur\", e);\n };\n Editor.prototype.$cursorChange = function () {\n this.renderer.updateCursor();\n this.$highlightBrackets();\n this.$updateHighlightActiveLine();\n };\n Editor.prototype.onDocumentChange = function (delta) {\n var wrap = this.session.$useWrapMode;\n var lastRow = (delta.start.row == delta.end.row ? delta.end.row : Infinity);\n this.renderer.updateLines(delta.start.row, lastRow, wrap);\n this._signal(\"change\", delta);\n this.$cursorChange();\n };\n Editor.prototype.onTokenizerUpdate = function (e) {\n var rows = e.data;\n this.renderer.updateLines(rows.first, rows.last);\n };\n Editor.prototype.onScrollTopChange = function () {\n this.renderer.scrollToY(this.session.getScrollTop());\n };\n Editor.prototype.onScrollLeftChange = function () {\n this.renderer.scrollToX(this.session.getScrollLeft());\n };\n Editor.prototype.onCursorChange = function () {\n this.$cursorChange();\n this._signal(\"changeSelection\");\n };\n Editor.prototype.$updateHighlightActiveLine = function () {\n var session = this.getSession();\n var highlight;\n if (this.$highlightActiveLine) {\n if (this.$selectionStyle != \"line\" || !this.selection.isMultiLine())\n highlight = this.getCursorPosition();\n if (this.renderer.theme && this.renderer.theme.$selectionColorConflict && !this.selection.isEmpty())\n highlight = false;\n if (this.renderer.$maxLines && this.session.getLength() === 1 && !(this.renderer.$minLines > 1))\n highlight = false;\n }\n if (session.$highlightLineMarker && !highlight) {\n session.removeMarker(session.$highlightLineMarker.id);\n session.$highlightLineMarker = null;\n }\n else if (!session.$highlightLineMarker && highlight) {\n var range = new Range(highlight.row, highlight.column, highlight.row, Infinity);\n range.id = session.addMarker(range, \"ace_active-line\", \"screenLine\");\n session.$highlightLineMarker = range;\n }\n else if (highlight) {\n session.$highlightLineMarker.start.row = highlight.row;\n session.$highlightLineMarker.end.row = highlight.row;\n session.$highlightLineMarker.start.column = highlight.column;\n session._signal(\"changeBackMarker\");\n }\n };\n Editor.prototype.onSelectionChange = function (e) {\n var session = this.session;\n if (session.$selectionMarker) {\n session.removeMarker(session.$selectionMarker);\n }\n session.$selectionMarker = null;\n if (!this.selection.isEmpty()) {\n var range = this.selection.getRange();\n var style = this.getSelectionStyle();\n session.$selectionMarker = session.addMarker(range, \"ace_selection\", style);\n }\n else {\n this.$updateHighlightActiveLine();\n }\n var re = this.$highlightSelectedWord && this.$getSelectionHighLightRegexp();\n this.session.highlight(re);\n this._signal(\"changeSelection\");\n };\n Editor.prototype.$getSelectionHighLightRegexp = function () {\n var session = this.session;\n var selection = this.getSelectionRange();\n if (selection.isEmpty() || selection.isMultiLine())\n return;\n var startColumn = selection.start.column;\n var endColumn = selection.end.column;\n var line = session.getLine(selection.start.row);\n var needle = line.substring(startColumn, endColumn);\n if (needle.length > 5000 || !/[\\w\\d]/.test(needle))\n return;\n var re = this.$search.$assembleRegExp({\n wholeWord: true,\n caseSensitive: true,\n needle: needle\n });\n var wordWithBoundary = line.substring(startColumn - 1, endColumn + 1);\n if (!re.test(wordWithBoundary))\n return;\n return re;\n };\n Editor.prototype.onChangeFrontMarker = function () {\n this.renderer.updateFrontMarkers();\n };\n Editor.prototype.onChangeBackMarker = function () {\n this.renderer.updateBackMarkers();\n };\n Editor.prototype.onChangeBreakpoint = function () {\n this.renderer.updateBreakpoints();\n };\n Editor.prototype.onChangeAnnotation = function () {\n this.renderer.setAnnotations(this.session.getAnnotations());\n };\n Editor.prototype.onChangeMode = function (e) {\n this.renderer.updateText();\n this._emit(\"changeMode\", e);\n };\n Editor.prototype.onChangeWrapLimit = function () {\n this.renderer.updateFull();\n };\n Editor.prototype.onChangeWrapMode = function () {\n this.renderer.onResize(true);\n };\n Editor.prototype.onChangeFold = function () {\n this.$updateHighlightActiveLine();\n this.renderer.updateFull();\n };\n Editor.prototype.getSelectedText = function () {\n return this.session.getTextRange(this.getSelectionRange());\n };\n Editor.prototype.getCopyText = function () {\n var text = this.getSelectedText();\n var nl = this.session.doc.getNewLineCharacter();\n var copyLine = false;\n if (!text && this.$copyWithEmptySelection) {\n copyLine = true;\n var ranges = this.selection.getAllRanges();\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (i && ranges[i - 1].start.row == range.start.row)\n continue;\n text += this.session.getLine(range.start.row) + nl;\n }\n }\n var e = { text: text };\n this._signal(\"copy\", e);\n clipboard.lineMode = copyLine ? e.text : false;\n return e.text;\n };\n Editor.prototype.onCopy = function () {\n this.commands.exec(\"copy\", this);\n };\n Editor.prototype.onCut = function () {\n this.commands.exec(\"cut\", this);\n };\n Editor.prototype.onPaste = function (text, event) {\n var e = { text: text, event: event };\n this.commands.exec(\"paste\", this, e);\n };\n Editor.prototype.$handlePaste = function (e) {\n if (typeof e == \"string\")\n e = { text: e };\n this._signal(\"paste\", e);\n var text = e.text;\n var lineMode = text === clipboard.lineMode;\n var session = this.session;\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode) {\n if (lineMode)\n session.insert({ row: this.selection.lead.row, column: 0 }, text);\n else\n this.insert(text);\n }\n else if (lineMode) {\n this.selection.rangeList.ranges.forEach(function (range) {\n session.insert({ row: range.start.row, column: 0 }, text);\n });\n }\n else {\n var lines = text.split(/\\r\\n|\\r|\\n/);\n var ranges = this.selection.rangeList.ranges;\n var isFullLine = lines.length == 2 && (!lines[0] || !lines[1]);\n if (lines.length != ranges.length || isFullLine)\n return this.commands.exec(\"insertstring\", this, text);\n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.isEmpty())\n session.remove(range);\n session.insert(range.start, lines[i]);\n }\n }\n };\n Editor.prototype.execCommand = function (command, args) {\n return this.commands.exec(command, this, args);\n };\n Editor.prototype.insert = function (text, pasted) {\n var session = this.session;\n var mode = session.getMode();\n var cursor = this.getCursorPosition();\n if (this.getBehavioursEnabled() && !pasted) {\n var transform = mode.transformAction(session.getState(cursor.row), 'insertion', this, session, text);\n if (transform) {\n if (text !== transform.text) {\n if (!this.inVirtualSelectionMode) {\n this.session.mergeUndoDeltas = false;\n this.mergeNextCommand = false;\n }\n }\n text = transform.text;\n }\n }\n if (text == \"\\t\")\n text = this.session.getTabString();\n if (!this.selection.isEmpty()) {\n var range = this.getSelectionRange();\n cursor = this.session.remove(range);\n this.clearSelection();\n }\n else if (this.session.getOverwrite() && text.indexOf(\"\\n\") == -1) {\n var range = new Range.fromPoints(cursor, cursor);\n range.end.column += text.length;\n this.session.remove(range);\n }\n if (text == \"\\n\" || text == \"\\r\\n\") {\n var line = session.getLine(cursor.row);\n if (cursor.column > line.search(/\\S|$/)) {\n var d = line.substr(cursor.column).search(/\\S|$/);\n session.doc.removeInLine(cursor.row, cursor.column, cursor.column + d);\n }\n }\n this.clearSelection();\n var start = cursor.column;\n var lineState = session.getState(cursor.row);\n var line = session.getLine(cursor.row);\n var shouldOutdent = mode.checkOutdent(lineState, line, text);\n session.insert(cursor, text);\n if (transform && transform.selection) {\n if (transform.selection.length == 2) { // Transform relative to the current column\n this.selection.setSelectionRange(new Range(cursor.row, start + transform.selection[0], cursor.row, start + transform.selection[1]));\n }\n else { // Transform relative to the current row.\n this.selection.setSelectionRange(new Range(cursor.row + transform.selection[0], transform.selection[1], cursor.row + transform.selection[2], transform.selection[3]));\n }\n }\n if (this.$enableAutoIndent) {\n if (session.getDocument().isNewLine(text)) {\n var lineIndent = mode.getNextLineIndent(lineState, line.slice(0, cursor.column), session.getTabString());\n session.insert({ row: cursor.row + 1, column: 0 }, lineIndent);\n }\n if (shouldOutdent)\n mode.autoOutdent(lineState, session, cursor.row);\n }\n };\n Editor.prototype.autoIndent = function () {\n var session = this.session;\n var mode = session.getMode();\n var startRow, endRow;\n if (this.selection.isEmpty()) {\n startRow = 0;\n endRow = session.doc.getLength() - 1;\n }\n else {\n var selectedRange = this.getSelectionRange();\n startRow = selectedRange.start.row;\n endRow = selectedRange.end.row;\n }\n var prevLineState = \"\";\n var prevLine = \"\";\n var lineIndent = \"\";\n var line, currIndent, range;\n var tab = session.getTabString();\n for (var row = startRow; row <= endRow; row++) {\n if (row > 0) {\n prevLineState = session.getState(row - 1);\n prevLine = session.getLine(row - 1);\n lineIndent = mode.getNextLineIndent(prevLineState, prevLine, tab);\n }\n line = session.getLine(row);\n currIndent = mode.$getIndent(line);\n if (lineIndent !== currIndent) {\n if (currIndent.length > 0) {\n range = new Range(row, 0, row, currIndent.length);\n session.remove(range);\n }\n if (lineIndent.length > 0) {\n session.insert({ row: row, column: 0 }, lineIndent);\n }\n }\n mode.autoOutdent(prevLineState, session, row);\n }\n };\n Editor.prototype.onTextInput = function (text, composition) {\n if (!composition)\n return this.keyBinding.onTextInput(text);\n this.startOperation({ command: { name: \"insertstring\" } });\n var applyComposition = this.applyComposition.bind(this, text, composition);\n if (this.selection.rangeCount)\n this.forEachSelection(applyComposition);\n else\n applyComposition();\n this.endOperation();\n };\n Editor.prototype.applyComposition = function (text, composition) {\n if (composition.extendLeft || composition.extendRight) {\n var r = this.selection.getRange();\n r.start.column -= composition.extendLeft;\n r.end.column += composition.extendRight;\n if (r.start.column < 0) {\n r.start.row--;\n r.start.column += this.session.getLine(r.start.row).length + 1;\n }\n this.selection.setRange(r);\n if (!text && !r.isEmpty())\n this.remove();\n }\n if (text || !this.selection.isEmpty())\n this.insert(text, true);\n if (composition.restoreStart || composition.restoreEnd) {\n var r = this.selection.getRange();\n r.start.column -= composition.restoreStart;\n r.end.column -= composition.restoreEnd;\n this.selection.setRange(r);\n }\n };\n Editor.prototype.onCommandKey = function (e, hashId, keyCode) {\n return this.keyBinding.onCommandKey(e, hashId, keyCode);\n };\n Editor.prototype.setOverwrite = function (overwrite) {\n this.session.setOverwrite(overwrite);\n };\n Editor.prototype.getOverwrite = function () {\n return this.session.getOverwrite();\n };\n Editor.prototype.toggleOverwrite = function () {\n this.session.toggleOverwrite();\n };\n Editor.prototype.setScrollSpeed = function (speed) {\n this.setOption(\"scrollSpeed\", speed);\n };\n Editor.prototype.getScrollSpeed = function () {\n return this.getOption(\"scrollSpeed\");\n };\n Editor.prototype.setDragDelay = function (dragDelay) {\n this.setOption(\"dragDelay\", dragDelay);\n };\n Editor.prototype.getDragDelay = function () {\n return this.getOption(\"dragDelay\");\n };\n Editor.prototype.setSelectionStyle = function (val) {\n this.setOption(\"selectionStyle\", val);\n };\n Editor.prototype.getSelectionStyle = function () {\n return this.getOption(\"selectionStyle\");\n };\n Editor.prototype.setHighlightActiveLine = function (shouldHighlight) {\n this.setOption(\"highlightActiveLine\", shouldHighlight);\n };\n Editor.prototype.getHighlightActiveLine = function () {\n return this.getOption(\"highlightActiveLine\");\n };\n Editor.prototype.setHighlightGutterLine = function (shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n Editor.prototype.getHighlightGutterLine = function () {\n return this.getOption(\"highlightGutterLine\");\n };\n Editor.prototype.setHighlightSelectedWord = function (shouldHighlight) {\n this.setOption(\"highlightSelectedWord\", shouldHighlight);\n };\n Editor.prototype.getHighlightSelectedWord = function () {\n return this.$highlightSelectedWord;\n };\n Editor.prototype.setAnimatedScroll = function (shouldAnimate) {\n this.renderer.setAnimatedScroll(shouldAnimate);\n };\n Editor.prototype.getAnimatedScroll = function () {\n return this.renderer.getAnimatedScroll();\n };\n Editor.prototype.setShowInvisibles = function (showInvisibles) {\n this.renderer.setShowInvisibles(showInvisibles);\n };\n Editor.prototype.getShowInvisibles = function () {\n return this.renderer.getShowInvisibles();\n };\n Editor.prototype.setDisplayIndentGuides = function (display) {\n this.renderer.setDisplayIndentGuides(display);\n };\n Editor.prototype.getDisplayIndentGuides = function () {\n return this.renderer.getDisplayIndentGuides();\n };\n Editor.prototype.setHighlightIndentGuides = function (highlight) {\n this.renderer.setHighlightIndentGuides(highlight);\n };\n Editor.prototype.getHighlightIndentGuides = function () {\n return this.renderer.getHighlightIndentGuides();\n };\n Editor.prototype.setShowPrintMargin = function (showPrintMargin) {\n this.renderer.setShowPrintMargin(showPrintMargin);\n };\n Editor.prototype.getShowPrintMargin = function () {\n return this.renderer.getShowPrintMargin();\n };\n Editor.prototype.setPrintMarginColumn = function (showPrintMargin) {\n this.renderer.setPrintMarginColumn(showPrintMargin);\n };\n Editor.prototype.getPrintMarginColumn = function () {\n return this.renderer.getPrintMarginColumn();\n };\n Editor.prototype.setReadOnly = function (readOnly) {\n this.setOption(\"readOnly\", readOnly);\n };\n Editor.prototype.getReadOnly = function () {\n return this.getOption(\"readOnly\");\n };\n Editor.prototype.setBehavioursEnabled = function (enabled) {\n this.setOption(\"behavioursEnabled\", enabled);\n };\n Editor.prototype.getBehavioursEnabled = function () {\n return this.getOption(\"behavioursEnabled\");\n };\n Editor.prototype.setWrapBehavioursEnabled = function (enabled) {\n this.setOption(\"wrapBehavioursEnabled\", enabled);\n };\n Editor.prototype.getWrapBehavioursEnabled = function () {\n return this.getOption(\"wrapBehavioursEnabled\");\n };\n Editor.prototype.setShowFoldWidgets = function (show) {\n this.setOption(\"showFoldWidgets\", show);\n };\n Editor.prototype.getShowFoldWidgets = function () {\n return this.getOption(\"showFoldWidgets\");\n };\n Editor.prototype.setFadeFoldWidgets = function (fade) {\n this.setOption(\"fadeFoldWidgets\", fade);\n };\n Editor.prototype.getFadeFoldWidgets = function () {\n return this.getOption(\"fadeFoldWidgets\");\n };\n Editor.prototype.remove = function (dir) {\n if (this.selection.isEmpty()) {\n if (dir == \"left\")\n this.selection.selectLeft();\n else\n this.selection.selectRight();\n }\n var range = this.getSelectionRange();\n if (this.getBehavioursEnabled()) {\n var session = this.session;\n var state = session.getState(range.start.row);\n var new_range = session.getMode().transformAction(state, 'deletion', this, session, range);\n if (range.end.column === 0) {\n var text = session.getTextRange(range);\n if (text[text.length - 1] == \"\\n\") {\n var line = session.getLine(range.end.row);\n if (/^\\s+$/.test(line)) {\n range.end.column = line.length;\n }\n }\n }\n if (new_range)\n range = new_range;\n }\n this.session.remove(range);\n this.clearSelection();\n };\n Editor.prototype.removeWordRight = function () {\n if (this.selection.isEmpty())\n this.selection.selectWordRight();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeWordLeft = function () {\n if (this.selection.isEmpty())\n this.selection.selectWordLeft();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeToLineStart = function () {\n if (this.selection.isEmpty())\n this.selection.selectLineStart();\n if (this.selection.isEmpty())\n this.selection.selectLeft();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeToLineEnd = function () {\n if (this.selection.isEmpty())\n this.selection.selectLineEnd();\n var range = this.getSelectionRange();\n if (range.start.column == range.end.column && range.start.row == range.end.row) {\n range.end.column = 0;\n range.end.row++;\n }\n this.session.remove(range);\n this.clearSelection();\n };\n Editor.prototype.splitLine = function () {\n if (!this.selection.isEmpty()) {\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n }\n var cursor = this.getCursorPosition();\n this.insert(\"\\n\");\n this.moveCursorToPosition(cursor);\n };\n Editor.prototype.setGhostText = function (text, position) {\n if (!this.session.widgetManager) {\n this.session.widgetManager = new LineWidgets(this.session);\n this.session.widgetManager.attach(this);\n }\n this.renderer.setGhostText(text, position);\n };\n Editor.prototype.removeGhostText = function () {\n if (!this.session.widgetManager)\n return;\n this.renderer.removeGhostText();\n };\n Editor.prototype.transposeLetters = function () {\n if (!this.selection.isEmpty()) {\n return;\n }\n var cursor = this.getCursorPosition();\n var column = cursor.column;\n if (column === 0)\n return;\n var line = this.session.getLine(cursor.row);\n var swap, range;\n if (column < line.length) {\n swap = line.charAt(column) + line.charAt(column - 1);\n range = new Range(cursor.row, column - 1, cursor.row, column + 1);\n }\n else {\n swap = line.charAt(column - 1) + line.charAt(column - 2);\n range = new Range(cursor.row, column - 2, cursor.row, column);\n }\n this.session.replace(range, swap);\n this.session.selection.moveToPosition(range.end);\n };\n Editor.prototype.toLowerCase = function () {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toLowerCase());\n this.selection.setSelectionRange(originalRange);\n };\n Editor.prototype.toUpperCase = function () {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toUpperCase());\n this.selection.setSelectionRange(originalRange);\n };\n Editor.prototype.indent = function () {\n var session = this.session;\n var range = this.getSelectionRange();\n if (range.start.row < range.end.row) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n else if (range.start.column < range.end.column) {\n var text = session.getTextRange(range);\n if (!/^\\s+$/.test(text)) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n }\n var line = session.getLine(range.start.row);\n var position = range.start;\n var size = session.getTabSize();\n var column = session.documentToScreenColumn(position.row, position.column);\n if (this.session.getUseSoftTabs()) {\n var count = (size - column % size);\n var indentString = lang.stringRepeat(\" \", count);\n }\n else {\n var count = column % size;\n while (line[range.start.column - 1] == \" \" && count) {\n range.start.column--;\n count--;\n }\n this.selection.setSelectionRange(range);\n indentString = \"\\t\";\n }\n return this.insert(indentString);\n };\n Editor.prototype.blockIndent = function () {\n var rows = this.$getSelectedRows();\n this.session.indentRows(rows.first, rows.last, \"\\t\");\n };\n Editor.prototype.blockOutdent = function () {\n var selection = this.session.getSelection();\n this.session.outdentRows(selection.getRange());\n };\n Editor.prototype.sortLines = function () {\n var rows = this.$getSelectedRows();\n var session = this.session;\n var lines = [];\n for (var i = rows.first; i <= rows.last; i++)\n lines.push(session.getLine(i));\n lines.sort(function (a, b) {\n if (a.toLowerCase() < b.toLowerCase())\n return -1;\n if (a.toLowerCase() > b.toLowerCase())\n return 1;\n return 0;\n });\n var deleteRange = new Range(0, 0, 0, 0);\n for (var i = rows.first; i <= rows.last; i++) {\n var line = session.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n deleteRange.end.column = line.length;\n session.replace(deleteRange, lines[i - rows.first]);\n }\n };\n Editor.prototype.toggleCommentLines = function () {\n var state = this.session.getState(this.getCursorPosition().row);\n var rows = this.$getSelectedRows();\n this.session.getMode().toggleCommentLines(state, this.session, rows.first, rows.last);\n };\n Editor.prototype.toggleBlockComment = function () {\n var cursor = this.getCursorPosition();\n var state = this.session.getState(cursor.row);\n var range = this.getSelectionRange();\n this.session.getMode().toggleBlockComment(state, this.session, range, cursor);\n };\n Editor.prototype.getNumberAt = function (row, column) {\n var _numberRx = /[\\-]?[0-9]+(?:\\.[0-9]+)?/g;\n _numberRx.lastIndex = 0;\n var s = this.session.getLine(row);\n while (_numberRx.lastIndex < column) {\n var m = _numberRx.exec(s);\n if (m.index <= column && m.index + m[0].length >= column) {\n var number = {\n value: m[0],\n start: m.index,\n end: m.index + m[0].length\n };\n return number;\n }\n }\n return null;\n };\n Editor.prototype.modifyNumber = function (amount) {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n var charRange = new Range(row, column - 1, row, column);\n var c = this.session.getTextRange(charRange);\n if (!isNaN(parseFloat(c)) && isFinite(c)) {\n var nr = this.getNumberAt(row, column);\n if (nr) {\n var fp = nr.value.indexOf(\".\") >= 0 ? nr.start + nr.value.indexOf(\".\") + 1 : nr.end;\n var decimals = nr.start + nr.value.length - fp;\n var t = parseFloat(nr.value);\n t *= Math.pow(10, decimals);\n if (fp !== nr.end && column < fp) {\n amount *= Math.pow(10, nr.end - column - 1);\n }\n else {\n amount *= Math.pow(10, nr.end - column);\n }\n t += amount;\n t /= Math.pow(10, decimals);\n var nnr = t.toFixed(decimals);\n var replaceRange = new Range(row, nr.start, row, nr.end);\n this.session.replace(replaceRange, nnr);\n this.moveCursorTo(row, Math.max(nr.start + 1, column + nnr.length - nr.value.length));\n }\n }\n else {\n this.toggleWord();\n }\n };\n Editor.prototype.toggleWord = function () {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n this.selection.selectWord();\n var currentState = this.getSelectedText();\n var currWordStart = this.selection.getWordRange().start.column;\n var wordParts = currentState.replace(/([a-z]+|[A-Z]+)(?=[A-Z_]|$)/g, '$1 ').split(/\\s/);\n var delta = column - currWordStart - 1;\n if (delta < 0)\n delta = 0;\n var curLength = 0, itLength = 0;\n var that = this;\n if (currentState.match(/[A-Za-z0-9_]+/)) {\n wordParts.forEach(function (item, i) {\n itLength = curLength + item.length;\n if (delta >= curLength && delta <= itLength) {\n currentState = item;\n that.selection.clearSelection();\n that.moveCursorTo(row, curLength + currWordStart);\n that.selection.selectTo(row, itLength + currWordStart);\n }\n curLength = itLength;\n });\n }\n var wordPairs = this.$toggleWordPairs;\n var reg;\n for (var i = 0; i < wordPairs.length; i++) {\n var item = wordPairs[i];\n for (var j = 0; j <= 1; j++) {\n var negate = +!j;\n var firstCondition = currentState.match(new RegExp('^\\\\s?_?(' + lang.escapeRegExp(item[j]) + ')\\\\s?$', 'i'));\n if (firstCondition) {\n var secondCondition = currentState.match(new RegExp('([_]|^|\\\\s)(' + lang.escapeRegExp(firstCondition[1]) + ')($|\\\\s)', 'g'));\n if (secondCondition) {\n reg = currentState.replace(new RegExp(lang.escapeRegExp(item[j]), 'i'), function (result) {\n var res = item[negate];\n if (result.toUpperCase() == result) {\n res = res.toUpperCase();\n }\n else if (result.charAt(0).toUpperCase() == result.charAt(0)) {\n res = res.substr(0, 0) + item[negate].charAt(0).toUpperCase() + res.substr(1);\n }\n return res;\n });\n this.insert(reg);\n reg = \"\";\n }\n }\n }\n }\n };\n Editor.prototype.findLinkAt = function (row, column) {\n var e_1, _a;\n var line = this.session.getLine(row);\n var wordParts = line.split(/((?:https?|ftp):\\/\\/[\\S]+)/);\n var columnPosition = column;\n if (columnPosition < 0)\n columnPosition = 0;\n var previousPosition = 0, currentPosition = 0, match;\n try {\n for (var wordParts_1 = __values(wordParts), wordParts_1_1 = wordParts_1.next(); !wordParts_1_1.done; wordParts_1_1 = wordParts_1.next()) {\n var item = wordParts_1_1.value;\n currentPosition = previousPosition + item.length;\n if (columnPosition >= previousPosition && columnPosition <= currentPosition) {\n if (item.match(/((?:https?|ftp):\\/\\/[\\S]+)/)) {\n match = item.replace(/[\\s:.,'\";}\\]]+$/, \"\");\n break;\n }\n }\n previousPosition = currentPosition;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (wordParts_1_1 && !wordParts_1_1.done && (_a = wordParts_1.return)) _a.call(wordParts_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return match;\n };\n Editor.prototype.openLink = function () {\n var cursor = this.selection.getCursor();\n var url = this.findLinkAt(cursor.row, cursor.column);\n if (url)\n window.open(url, '_blank');\n return url != null;\n };\n Editor.prototype.removeLines = function () {\n var rows = this.$getSelectedRows();\n this.session.removeFullLines(rows.first, rows.last);\n this.clearSelection();\n };\n Editor.prototype.duplicateSelection = function () {\n var sel = this.selection;\n var doc = this.session;\n var range = sel.getRange();\n var reverse = sel.isBackwards();\n if (range.isEmpty()) {\n var row = range.start.row;\n doc.duplicateLines(row, row);\n }\n else {\n var point = reverse ? range.start : range.end;\n var endPoint = doc.insert(point, doc.getTextRange(range), false);\n range.start = point;\n range.end = endPoint;\n sel.setSelectionRange(range, reverse);\n }\n };\n Editor.prototype.moveLinesDown = function () {\n this.$moveLines(1, false);\n };\n Editor.prototype.moveLinesUp = function () {\n this.$moveLines(-1, false);\n };\n Editor.prototype.moveText = function (range, toPosition, copy) {\n return this.session.moveText(range, toPosition, copy);\n };\n Editor.prototype.copyLinesUp = function () {\n this.$moveLines(-1, true);\n };\n Editor.prototype.copyLinesDown = function () {\n this.$moveLines(1, true);\n };\n Editor.prototype.$moveLines = function (dir, copy) {\n var rows, moved;\n var selection = this.selection;\n if (!selection.inMultiSelectMode || this.inVirtualSelectionMode) {\n var range = selection.toOrientedRange();\n rows = this.$getSelectedRows(range);\n moved = this.session.$moveLines(rows.first, rows.last, copy ? 0 : dir);\n if (copy && dir == -1)\n moved = 0;\n range.moveBy(moved, 0);\n selection.fromOrientedRange(range);\n }\n else {\n var ranges = selection.rangeList.ranges;\n selection.rangeList.detach(this.session);\n this.inVirtualSelectionMode = true;\n var diff = 0;\n var totalDiff = 0;\n var l = ranges.length;\n for (var i = 0; i < l; i++) {\n var rangeIndex = i;\n ranges[i].moveBy(diff, 0);\n rows = this.$getSelectedRows(ranges[i]);\n var first = rows.first;\n var last = rows.last;\n while (++i < l) {\n if (totalDiff)\n ranges[i].moveBy(totalDiff, 0);\n var subRows = this.$getSelectedRows(ranges[i]);\n if (copy && subRows.first != last)\n break;\n else if (!copy && subRows.first > last + 1)\n break;\n last = subRows.last;\n }\n i--;\n diff = this.session.$moveLines(first, last, copy ? 0 : dir);\n if (copy && dir == -1)\n rangeIndex = i + 1;\n while (rangeIndex <= i) {\n ranges[rangeIndex].moveBy(diff, 0);\n rangeIndex++;\n }\n if (!copy)\n diff = 0;\n totalDiff += diff;\n }\n selection.fromOrientedRange(selection.ranges[0]);\n selection.rangeList.attach(this.session);\n this.inVirtualSelectionMode = false;\n }\n };\n Editor.prototype.$getSelectedRows = function (range) {\n range = (range || this.getSelectionRange()).collapseRows();\n return {\n first: this.session.getRowFoldStart(range.start.row),\n last: this.session.getRowFoldEnd(range.end.row)\n };\n };\n Editor.prototype.onCompositionStart = function (compositionState) {\n this.renderer.showComposition(compositionState);\n };\n Editor.prototype.onCompositionUpdate = function (text) {\n this.renderer.setCompositionText(text);\n };\n Editor.prototype.onCompositionEnd = function () {\n this.renderer.hideComposition();\n };\n Editor.prototype.getFirstVisibleRow = function () {\n return this.renderer.getFirstVisibleRow();\n };\n Editor.prototype.getLastVisibleRow = function () {\n return this.renderer.getLastVisibleRow();\n };\n Editor.prototype.isRowVisible = function (row) {\n return (row >= this.getFirstVisibleRow() && row <= this.getLastVisibleRow());\n };\n Editor.prototype.isRowFullyVisible = function (row) {\n return (row >= this.renderer.getFirstFullyVisibleRow() && row <= this.renderer.getLastFullyVisibleRow());\n };\n Editor.prototype.$getVisibleRowCount = function () {\n return this.renderer.getScrollBottomRow() - this.renderer.getScrollTopRow() + 1;\n };\n Editor.prototype.$moveByPage = function (dir, select) {\n var renderer = this.renderer;\n var config = this.renderer.layerConfig;\n var rows = dir * Math.floor(config.height / config.lineHeight);\n if (select === true) {\n this.selection.$moveSelection(function () {\n this.moveCursorBy(rows, 0);\n });\n }\n else if (select === false) {\n this.selection.moveCursorBy(rows, 0);\n this.selection.clearSelection();\n }\n var scrollTop = renderer.scrollTop;\n renderer.scrollBy(0, rows * config.lineHeight);\n if (select != null)\n renderer.scrollCursorIntoView(null, 0.5);\n renderer.animateScrolling(scrollTop);\n };\n Editor.prototype.selectPageDown = function () {\n this.$moveByPage(1, true);\n };\n Editor.prototype.selectPageUp = function () {\n this.$moveByPage(-1, true);\n };\n Editor.prototype.gotoPageDown = function () {\n this.$moveByPage(1, false);\n };\n Editor.prototype.gotoPageUp = function () {\n this.$moveByPage(-1, false);\n };\n Editor.prototype.scrollPageDown = function () {\n this.$moveByPage(1);\n };\n Editor.prototype.scrollPageUp = function () {\n this.$moveByPage(-1);\n };\n Editor.prototype.scrollToRow = function (row) {\n this.renderer.scrollToRow(row);\n };\n Editor.prototype.scrollToLine = function (line, center, animate, callback) {\n this.renderer.scrollToLine(line, center, animate, callback);\n };\n Editor.prototype.centerSelection = function () {\n var range = this.getSelectionRange();\n var pos = {\n row: Math.floor(range.start.row + (range.end.row - range.start.row) / 2),\n column: Math.floor(range.start.column + (range.end.column - range.start.column) / 2)\n };\n this.renderer.alignCursor(pos, 0.5);\n };\n Editor.prototype.getCursorPosition = function () {\n return this.selection.getCursor();\n };\n Editor.prototype.getCursorPositionScreen = function () {\n return this.session.documentToScreenPosition(this.getCursorPosition());\n };\n Editor.prototype.getSelectionRange = function () {\n return this.selection.getRange();\n };\n Editor.prototype.selectAll = function () {\n this.selection.selectAll();\n };\n Editor.prototype.clearSelection = function () {\n this.selection.clearSelection();\n };\n Editor.prototype.moveCursorTo = function (row, column) {\n this.selection.moveCursorTo(row, column);\n };\n Editor.prototype.moveCursorToPosition = function (pos) {\n this.selection.moveCursorToPosition(pos);\n };\n Editor.prototype.jumpToMatching = function (select, expand) {\n var cursor = this.getCursorPosition();\n var iterator = new TokenIterator(this.session, cursor.row, cursor.column);\n var prevToken = iterator.getCurrentToken();\n var tokenCount = 0;\n if (prevToken && prevToken.type.indexOf('tag-name') !== -1) {\n prevToken = iterator.stepBackward();\n }\n var token = prevToken || iterator.stepForward();\n if (!token)\n return;\n var matchType;\n var found = false;\n var depth = {};\n var i = cursor.column - token.start;\n var bracketType;\n var brackets = {\n \")\": \"(\",\n \"(\": \"(\",\n \"]\": \"[\",\n \"[\": \"[\",\n \"{\": \"{\",\n \"}\": \"{\"\n };\n do {\n if (token.value.match(/[{}()\\[\\]]/g)) {\n for (; i < token.value.length && !found; i++) {\n if (!brackets[token.value[i]]) {\n continue;\n }\n bracketType = brackets[token.value[i]] + '.' + token.type.replace(\"rparen\", \"lparen\");\n if (isNaN(depth[bracketType])) {\n depth[bracketType] = 0;\n }\n switch (token.value[i]) {\n case '(':\n case '[':\n case '{':\n depth[bracketType]++;\n break;\n case ')':\n case ']':\n case '}':\n depth[bracketType]--;\n if (depth[bracketType] === -1) {\n matchType = 'bracket';\n found = true;\n }\n break;\n }\n }\n }\n else if (token.type.indexOf('tag-name') !== -1) {\n if (isNaN(depth[token.value])) {\n depth[token.value] = 0;\n }\n if (prevToken.value === '<' && tokenCount > 1) {\n depth[token.value]++;\n }\n else if (prevToken.value === '= 0; --i) {\n if (this.$tryReplace(ranges[i], replacement)) {\n replaced++;\n }\n }\n this.selection.setSelectionRange(selection);\n return replaced;\n };\n Editor.prototype.$tryReplace = function (range, replacement) {\n var input = this.session.getTextRange(range);\n replacement = this.$search.replace(input, replacement);\n if (replacement !== null) {\n range.end = this.session.replace(range, replacement);\n return range;\n }\n else {\n return null;\n }\n };\n Editor.prototype.getLastSearchOptions = function () {\n return this.$search.getOptions();\n };\n Editor.prototype.find = function (needle, options, animate) {\n if (!options)\n options = {};\n if (typeof needle == \"string\" || needle instanceof RegExp)\n options.needle = needle;\n else if (typeof needle == \"object\")\n oop.mixin(options, needle);\n var range = this.selection.getRange();\n if (options.needle == null) {\n needle = this.session.getTextRange(range)\n || this.$search.$options.needle;\n if (!needle) {\n range = this.session.getWordRange(range.start.row, range.start.column);\n needle = this.session.getTextRange(range);\n }\n this.$search.set({ needle: needle });\n }\n this.$search.set(options);\n if (!options.start)\n this.$search.set({ start: range });\n var newRange = this.$search.find(this.session);\n if (options.preventScroll)\n return newRange;\n if (newRange) {\n this.revealRange(newRange, animate);\n return newRange;\n }\n if (options.backwards)\n range.start = range.end;\n else\n range.end = range.start;\n this.selection.setRange(range);\n };\n Editor.prototype.findNext = function (options, animate) {\n this.find({ skipCurrent: true, backwards: false }, options, animate);\n };\n Editor.prototype.findPrevious = function (options, animate) {\n this.find(options, { skipCurrent: true, backwards: true }, animate);\n };\n Editor.prototype.revealRange = function (range, animate) {\n this.session.unfold(range);\n this.selection.setSelectionRange(range);\n var scrollTop = this.renderer.scrollTop;\n this.renderer.scrollSelectionIntoView(range.start, range.end, 0.5);\n if (animate !== false)\n this.renderer.animateScrolling(scrollTop);\n };\n Editor.prototype.undo = function () {\n this.session.getUndoManager().undo(this.session);\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n Editor.prototype.redo = function () {\n this.session.getUndoManager().redo(this.session);\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n Editor.prototype.destroy = function () {\n if (this.$toDestroy) {\n this.$toDestroy.forEach(function (el) {\n el.destroy();\n });\n this.$toDestroy = null;\n }\n if (this.$mouseHandler)\n this.$mouseHandler.destroy();\n this.renderer.destroy();\n this._signal(\"destroy\", this);\n if (this.session)\n this.session.destroy();\n if (this._$emitInputEvent)\n this._$emitInputEvent.cancel();\n this.removeAllListeners();\n };\n Editor.prototype.setAutoScrollEditorIntoView = function (enable) {\n if (!enable)\n return;\n var rect;\n var self = this;\n var shouldScroll = false;\n if (!this.$scrollAnchor)\n this.$scrollAnchor = document.createElement(\"div\");\n var scrollAnchor = this.$scrollAnchor;\n scrollAnchor.style.cssText = \"position:absolute\";\n this.container.insertBefore(scrollAnchor, this.container.firstChild);\n var onChangeSelection = this.on(\"changeSelection\", function () {\n shouldScroll = true;\n });\n var onBeforeRender = this.renderer.on(\"beforeRender\", function () {\n if (shouldScroll)\n rect = self.renderer.container.getBoundingClientRect();\n });\n var onAfterRender = this.renderer.on(\"afterRender\", function () {\n if (shouldScroll && rect && (self.isFocused()\n || self.searchBox && self.searchBox.isFocused())) {\n var renderer = self.renderer;\n var pos = renderer.$cursorLayer.$pixelPos;\n var config = renderer.layerConfig;\n var top = pos.top - config.offset;\n if (pos.top >= 0 && top + rect.top < 0) {\n shouldScroll = true;\n }\n else if (pos.top < config.height &&\n pos.top + rect.top + config.lineHeight > window.innerHeight) {\n shouldScroll = false;\n }\n else {\n shouldScroll = null;\n }\n if (shouldScroll != null) {\n scrollAnchor.style.top = top + \"px\";\n scrollAnchor.style.left = pos.left + \"px\";\n scrollAnchor.style.height = config.lineHeight + \"px\";\n scrollAnchor.scrollIntoView(shouldScroll);\n }\n shouldScroll = rect = null;\n }\n });\n this.setAutoScrollEditorIntoView = function (enable) {\n if (enable)\n return;\n delete this.setAutoScrollEditorIntoView;\n this.off(\"changeSelection\", onChangeSelection);\n this.renderer.off(\"afterRender\", onAfterRender);\n this.renderer.off(\"beforeRender\", onBeforeRender);\n };\n };\n Editor.prototype.$resetCursorStyle = function () {\n var style = this.$cursorStyle || \"ace\";\n var cursorLayer = this.renderer.$cursorLayer;\n if (!cursorLayer)\n return;\n cursorLayer.setSmoothBlinking(/smooth/.test(style));\n cursorLayer.isBlinking = !this.$readOnly && style != \"wide\";\n dom.setCssClass(cursorLayer.element, \"ace_slim-cursors\", /slim/.test(style));\n };\n Editor.prototype.prompt = function (message, options, callback) {\n var editor = this;\n config.loadModule(\"ace/ext/prompt\", function (module) {\n module.prompt(editor, message, options, callback);\n });\n };\n return Editor;\n}());\nEditor.$uid = 0;\nEditor.prototype.curOp = null;\nEditor.prototype.prevOp = {};\nEditor.prototype.$mergeableCommands = [\"backspace\", \"del\", \"insertstring\"];\nEditor.prototype.$toggleWordPairs = [\n [\"first\", \"last\"],\n [\"true\", \"false\"],\n [\"yes\", \"no\"],\n [\"width\", \"height\"],\n [\"top\", \"bottom\"],\n [\"right\", \"left\"],\n [\"on\", \"off\"],\n [\"x\", \"y\"],\n [\"get\", \"set\"],\n [\"max\", \"min\"],\n [\"horizontal\", \"vertical\"],\n [\"show\", \"hide\"],\n [\"add\", \"remove\"],\n [\"up\", \"down\"],\n [\"before\", \"after\"],\n [\"even\", \"odd\"],\n [\"in\", \"out\"],\n [\"inside\", \"outside\"],\n [\"next\", \"previous\"],\n [\"increase\", \"decrease\"],\n [\"attach\", \"detach\"],\n [\"&&\", \"||\"],\n [\"==\", \"!=\"]\n];\noop.implement(Editor.prototype, EventEmitter);\nconfig.defineOptions(Editor.prototype, \"editor\", {\n selectionStyle: {\n set: function (style) {\n this.onSelectionChange();\n this._signal(\"changeSelectionStyle\", { data: style });\n },\n initialValue: \"line\"\n },\n highlightActiveLine: {\n set: function () { this.$updateHighlightActiveLine(); },\n initialValue: true\n },\n highlightSelectedWord: {\n set: function (shouldHighlight) { this.$onSelectionChange(); },\n initialValue: true\n },\n readOnly: {\n set: function (readOnly) {\n this.textInput.setReadOnly(readOnly);\n this.$resetCursorStyle();\n },\n initialValue: false\n },\n copyWithEmptySelection: {\n set: function (value) {\n this.textInput.setCopyWithEmptySelection(value);\n },\n initialValue: false\n },\n cursorStyle: {\n set: function (val) { this.$resetCursorStyle(); },\n values: [\"ace\", \"slim\", \"smooth\", \"wide\"],\n initialValue: \"ace\"\n },\n mergeUndoDeltas: {\n values: [false, true, \"always\"],\n initialValue: true\n },\n behavioursEnabled: { initialValue: true },\n wrapBehavioursEnabled: { initialValue: true },\n enableAutoIndent: { initialValue: true },\n autoScrollEditorIntoView: {\n set: function (val) { this.setAutoScrollEditorIntoView(val); }\n },\n keyboardHandler: {\n set: function (val) { this.setKeyboardHandler(val); },\n get: function () { return this.$keybindingId; },\n handlesSet: true\n },\n value: {\n set: function (val) { this.session.setValue(val); },\n get: function () { return this.getValue(); },\n handlesSet: true,\n hidden: true\n },\n session: {\n set: function (val) { this.setSession(val); },\n get: function () { return this.session; },\n handlesSet: true,\n hidden: true\n },\n showLineNumbers: {\n set: function (show) {\n this.renderer.$gutterLayer.setShowLineNumbers(show);\n this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER);\n if (show && this.$relativeLineNumbers)\n relativeNumberRenderer.attach(this);\n else\n relativeNumberRenderer.detach(this);\n },\n initialValue: true\n },\n relativeLineNumbers: {\n set: function (value) {\n if (this.$showLineNumbers && value)\n relativeNumberRenderer.attach(this);\n else\n relativeNumberRenderer.detach(this);\n }\n },\n placeholder: {\n set: function (message) {\n if (!this.$updatePlaceholder) {\n this.$updatePlaceholder = function () {\n var hasValue = this.session && (this.renderer.$composition ||\n this.session.getLength() > 1 || this.session.getLine(0).length > 0);\n if (hasValue && this.renderer.placeholderNode) {\n this.renderer.off(\"afterRender\", this.$updatePlaceholder);\n dom.removeCssClass(this.container, \"ace_hasPlaceholder\");\n this.renderer.placeholderNode.remove();\n this.renderer.placeholderNode = null;\n }\n else if (!hasValue && !this.renderer.placeholderNode) {\n this.renderer.on(\"afterRender\", this.$updatePlaceholder);\n dom.addCssClass(this.container, \"ace_hasPlaceholder\");\n var el = dom.createElement(\"div\");\n el.className = \"ace_placeholder\";\n el.textContent = this.$placeholder || \"\";\n this.renderer.placeholderNode = el;\n this.renderer.content.appendChild(this.renderer.placeholderNode);\n }\n else if (!hasValue && this.renderer.placeholderNode) {\n this.renderer.placeholderNode.textContent = this.$placeholder || \"\";\n }\n }.bind(this);\n this.on(\"input\", this.$updatePlaceholder);\n }\n this.$updatePlaceholder();\n }\n },\n enableKeyboardAccessibility: {\n set: function (value) {\n var blurCommand = {\n name: \"blurTextInput\",\n description: \"Set focus to the editor content div to allow tabbing through the page\",\n bindKey: \"Esc\",\n exec: function (editor) {\n editor.blur();\n editor.renderer.scroller.focus();\n },\n readOnly: true\n };\n var focusOnEnterKeyup = function (e) {\n if (e.target == this.renderer.scroller && e.keyCode === keys['enter']) {\n e.preventDefault();\n var row = this.getCursorPosition().row;\n if (!this.isRowVisible(row))\n this.scrollToLine(row, true, true);\n this.focus();\n }\n };\n var gutterKeyboardHandler;\n if (value) {\n this.renderer.enableKeyboardAccessibility = true;\n this.renderer.keyboardFocusClassName = \"ace_keyboard-focus\";\n this.textInput.getElement().setAttribute(\"tabindex\", -1);\n this.textInput.setNumberOfExtraLines(useragent.isWin ? 3 : 0);\n this.renderer.scroller.setAttribute(\"tabindex\", 0);\n this.renderer.scroller.setAttribute(\"role\", \"group\");\n this.renderer.scroller.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName);\n this.renderer.scroller.setAttribute(\"aria-label\", nls(\"Editor content, press Enter to start editing, press Escape to exit\"));\n this.renderer.scroller.addEventListener(\"keyup\", focusOnEnterKeyup.bind(this));\n this.commands.addCommand(blurCommand);\n this.renderer.$gutter.setAttribute(\"tabindex\", 0);\n this.renderer.$gutter.setAttribute(\"aria-hidden\", false);\n this.renderer.$gutter.setAttribute(\"role\", \"group\");\n this.renderer.$gutter.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n this.renderer.$gutter.setAttribute(\"aria-label\", nls(\"Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit\"));\n this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName);\n this.renderer.content.setAttribute(\"aria-hidden\", true);\n if (!gutterKeyboardHandler)\n gutterKeyboardHandler = new GutterKeyboardHandler(this);\n gutterKeyboardHandler.addListener();\n }\n else {\n this.renderer.enableKeyboardAccessibility = false;\n this.textInput.getElement().setAttribute(\"tabindex\", 0);\n this.textInput.setNumberOfExtraLines(0);\n this.renderer.scroller.setAttribute(\"tabindex\", -1);\n this.renderer.scroller.removeAttribute(\"role\");\n this.renderer.scroller.removeAttribute(\"aria-roledescription\");\n this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName);\n this.renderer.scroller.removeAttribute(\"aria-label\");\n this.renderer.scroller.removeEventListener(\"keyup\", focusOnEnterKeyup.bind(this));\n this.commands.removeCommand(blurCommand);\n this.renderer.content.removeAttribute(\"aria-hidden\");\n this.renderer.$gutter.setAttribute(\"tabindex\", -1);\n this.renderer.$gutter.setAttribute(\"aria-hidden\", true);\n this.renderer.$gutter.removeAttribute(\"role\");\n this.renderer.$gutter.removeAttribute(\"aria-roledescription\");\n this.renderer.$gutter.removeAttribute(\"aria-label\");\n this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName);\n if (gutterKeyboardHandler)\n gutterKeyboardHandler.removeListener();\n }\n },\n initialValue: false\n },\n customScrollbar: \"renderer\",\n hScrollBarAlwaysVisible: \"renderer\",\n vScrollBarAlwaysVisible: \"renderer\",\n highlightGutterLine: \"renderer\",\n animatedScroll: \"renderer\",\n showInvisibles: \"renderer\",\n showPrintMargin: \"renderer\",\n printMarginColumn: \"renderer\",\n printMargin: \"renderer\",\n fadeFoldWidgets: \"renderer\",\n showFoldWidgets: \"renderer\",\n displayIndentGuides: \"renderer\",\n highlightIndentGuides: \"renderer\",\n showGutter: \"renderer\",\n fontSize: \"renderer\",\n fontFamily: \"renderer\",\n maxLines: \"renderer\",\n minLines: \"renderer\",\n scrollPastEnd: \"renderer\",\n fixedWidthGutter: \"renderer\",\n theme: \"renderer\",\n hasCssTransforms: \"renderer\",\n maxPixelHeight: \"renderer\",\n useTextareaForIME: \"renderer\",\n useResizeObserver: \"renderer\",\n useSvgGutterIcons: \"renderer\",\n showFoldedAnnotations: \"renderer\",\n scrollSpeed: \"$mouseHandler\",\n dragDelay: \"$mouseHandler\",\n dragEnabled: \"$mouseHandler\",\n focusTimeout: \"$mouseHandler\",\n tooltipFollowsMouse: \"$mouseHandler\",\n firstLineNumber: \"session\",\n overwrite: \"session\",\n newLineMode: \"session\",\n useWorker: \"session\",\n useSoftTabs: \"session\",\n navigateWithinSoftTabs: \"session\",\n tabSize: \"session\",\n wrap: \"session\",\n indentedSoftWrap: \"session\",\n foldStyle: \"session\",\n mode: \"session\"\n});\nvar relativeNumberRenderer = {\n getText: function (session, row) {\n return (Math.abs(session.selection.lead.row - row) || (row + 1 + (row < 9 ? \"\\xb7\" : \"\"))) + \"\";\n },\n getWidth: function (session, lastLineNumber, config) {\n return Math.max(lastLineNumber.toString().length, (config.lastRow + 1).toString().length, 2) * config.characterWidth;\n },\n update: function (e, editor) {\n editor.renderer.$loop.schedule(editor.renderer.CHANGE_GUTTER);\n },\n attach: function (editor) {\n editor.renderer.$gutterLayer.$renderer = this;\n editor.on(\"changeSelection\", this.update);\n this.update(null, editor);\n },\n detach: function (editor) {\n if (editor.renderer.$gutterLayer.$renderer == this)\n editor.renderer.$gutterLayer.$renderer = null;\n editor.off(\"changeSelection\", this.update);\n this.update(null, editor);\n }\n};\nexports.Editor = Editor;\n\n});\n\nace.define(\"ace/layer/lines\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar Lines = /** @class */ (function () {\n function Lines(element, canvasHeight) {\n this.element = element;\n this.canvasHeight = canvasHeight || 500000;\n this.element.style.height = (this.canvasHeight * 2) + \"px\";\n this.cells = [];\n this.cellCache = [];\n this.$offsetCoefficient = 0;\n }\n Lines.prototype.moveContainer = function (config) {\n dom.translate(this.element, 0, -((config.firstRowScreen * config.lineHeight) % this.canvasHeight) - config.offset * this.$offsetCoefficient);\n };\n Lines.prototype.pageChanged = function (oldConfig, newConfig) {\n return (Math.floor((oldConfig.firstRowScreen * oldConfig.lineHeight) / this.canvasHeight) !==\n Math.floor((newConfig.firstRowScreen * newConfig.lineHeight) / this.canvasHeight));\n };\n Lines.prototype.computeLineTop = function (row, config, session) {\n var screenTop = config.firstRowScreen * config.lineHeight;\n var screenPage = Math.floor(screenTop / this.canvasHeight);\n var lineTop = session.documentToScreenRow(row, 0) * config.lineHeight;\n return lineTop - (screenPage * this.canvasHeight);\n };\n Lines.prototype.computeLineHeight = function (row, config, session) {\n return config.lineHeight * session.getRowLineCount(row);\n };\n Lines.prototype.getLength = function () {\n return this.cells.length;\n };\n Lines.prototype.get = function (index) {\n return this.cells[index];\n };\n Lines.prototype.shift = function () {\n this.$cacheCell(this.cells.shift());\n };\n Lines.prototype.pop = function () {\n this.$cacheCell(this.cells.pop());\n };\n Lines.prototype.push = function (cell) {\n if (Array.isArray(cell)) {\n this.cells.push.apply(this.cells, cell);\n var fragment = dom.createFragment(this.element);\n for (var i = 0; i < cell.length; i++) {\n fragment.appendChild(cell[i].element);\n }\n this.element.appendChild(fragment);\n }\n else {\n this.cells.push(cell);\n this.element.appendChild(cell.element);\n }\n };\n Lines.prototype.unshift = function (cell) {\n if (Array.isArray(cell)) {\n this.cells.unshift.apply(this.cells, cell);\n var fragment = dom.createFragment(this.element);\n for (var i = 0; i < cell.length; i++) {\n fragment.appendChild(cell[i].element);\n }\n if (this.element.firstChild)\n this.element.insertBefore(fragment, this.element.firstChild);\n else\n this.element.appendChild(fragment);\n }\n else {\n this.cells.unshift(cell);\n this.element.insertAdjacentElement(\"afterbegin\", cell.element);\n }\n };\n Lines.prototype.last = function () {\n if (this.cells.length)\n return this.cells[this.cells.length - 1];\n else\n return null;\n };\n Lines.prototype.$cacheCell = function (cell) {\n if (!cell)\n return;\n cell.element.remove();\n this.cellCache.push(cell);\n };\n Lines.prototype.createCell = function (row, config, session, initElement) {\n var cell = this.cellCache.pop();\n if (!cell) {\n var element = dom.createElement(\"div\");\n if (initElement)\n initElement(element);\n this.element.appendChild(element);\n cell = {\n element: element,\n text: \"\",\n row: row\n };\n }\n cell.row = row;\n return cell;\n };\n return Lines;\n}());\nexports.Lines = Lines;\n\n});\n\nace.define(\"ace/layer/gutter\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/layer/lines\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar Lines = require(\"./lines\").Lines;\nvar nls = require(\"../config\").nls;\nvar Gutter = /** @class */ (function () {\n function Gutter(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_gutter-layer\";\n parentEl.appendChild(this.element);\n this.setShowFoldWidgets(this.$showFoldWidgets);\n this.gutterWidth = 0;\n this.$annotations = [];\n this.$updateAnnotations = this.$updateAnnotations.bind(this);\n this.$lines = new Lines(this.element);\n this.$lines.$offsetCoefficient = 1;\n }\n Gutter.prototype.setSession = function (session) {\n if (this.session)\n this.session.off(\"change\", this.$updateAnnotations);\n this.session = session;\n if (session)\n session.on(\"change\", this.$updateAnnotations);\n };\n Gutter.prototype.addGutterDecoration = function (row, className) {\n if (window.console)\n console.warn && console.warn(\"deprecated use session.addGutterDecoration\");\n this.session.addGutterDecoration(row, className);\n };\n Gutter.prototype.removeGutterDecoration = function (row, className) {\n if (window.console)\n console.warn && console.warn(\"deprecated use session.removeGutterDecoration\");\n this.session.removeGutterDecoration(row, className);\n };\n Gutter.prototype.setAnnotations = function (annotations) {\n this.$annotations = [];\n for (var i = 0; i < annotations.length; i++) {\n var annotation = annotations[i];\n var row = annotation.row;\n var rowInfo = this.$annotations[row];\n if (!rowInfo)\n rowInfo = this.$annotations[row] = { text: [], type: [] };\n var annoText = annotation.text;\n var annoType = annotation.type;\n annoText = annoText ? lang.escapeHTML(annoText) : annotation.html || \"\";\n if (rowInfo.text.indexOf(annoText) === -1) {\n rowInfo.text.push(annoText);\n rowInfo.type.push(annoType);\n }\n var className = annotation.className;\n if (className)\n rowInfo.className = className;\n else if (annoType == \"error\")\n rowInfo.className = \" ace_error\";\n else if (annoType == \"warning\" && rowInfo.className != \" ace_error\")\n rowInfo.className = \" ace_warning\";\n else if (annoType == \"info\" && (!rowInfo.className))\n rowInfo.className = \" ace_info\";\n }\n };\n Gutter.prototype.$updateAnnotations = function (delta) {\n if (!this.$annotations.length)\n return;\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n }\n else if (delta.action == 'remove') {\n this.$annotations.splice(firstRow, len + 1, null);\n }\n else {\n var args = new Array(len + 1);\n args.unshift(firstRow, 1);\n this.$annotations.splice.apply(this.$annotations, args);\n }\n };\n Gutter.prototype.update = function (config) {\n this.config = config;\n var session = this.session;\n var firstRow = config.firstRow;\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n session.getLength() - 1);\n this.oldLastRow = lastRow;\n this.config = config;\n this.$lines.moveContainer(config);\n this.$updateCursorRow();\n var fold = session.getNextFoldLine(firstRow);\n var foldStart = fold ? fold.start.row : Infinity;\n var cell = null;\n var index = -1;\n var row = firstRow;\n while (true) {\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = session.getNextFoldLine(row, fold);\n foldStart = fold ? fold.start.row : Infinity;\n }\n if (row > lastRow) {\n while (this.$lines.getLength() > index + 1)\n this.$lines.pop();\n break;\n }\n cell = this.$lines.get(++index);\n if (cell) {\n cell.row = row;\n }\n else {\n cell = this.$lines.createCell(row, config, this.session, onCreateCell);\n this.$lines.push(cell);\n }\n this.$renderCell(cell, config, fold, row);\n row++;\n }\n this._signal(\"afterRender\");\n this.$updateGutterWidth(config);\n };\n Gutter.prototype.$updateGutterWidth = function (config) {\n var session = this.session;\n var gutterRenderer = session.gutterRenderer || this.$renderer;\n var firstLineNumber = session.$firstLineNumber;\n var lastLineText = this.$lines.last() ? this.$lines.last().text : \"\";\n if (this.$fixedWidth || session.$useWrapMode)\n lastLineText = session.getLength() + firstLineNumber - 1;\n var gutterWidth = gutterRenderer\n ? gutterRenderer.getWidth(session, lastLineText, config)\n : lastLineText.toString().length * config.characterWidth;\n var padding = this.$padding || this.$computePadding();\n gutterWidth += padding.left + padding.right;\n if (gutterWidth !== this.gutterWidth && !isNaN(gutterWidth)) {\n this.gutterWidth = gutterWidth;\n this.element.parentNode.style.width =\n this.element.style.width = Math.ceil(this.gutterWidth) + \"px\";\n this._signal(\"changeGutterWidth\", gutterWidth);\n }\n };\n Gutter.prototype.$updateCursorRow = function () {\n if (!this.$highlightGutterLine)\n return;\n var position = this.session.selection.getCursor();\n if (this.$cursorRow === position.row)\n return;\n this.$cursorRow = position.row;\n };\n Gutter.prototype.updateLineHighlight = function () {\n if (!this.$highlightGutterLine)\n return;\n var row = this.session.selection.cursor.row;\n this.$cursorRow = row;\n if (this.$cursorCell && this.$cursorCell.row == row)\n return;\n if (this.$cursorCell)\n this.$cursorCell.element.className = this.$cursorCell.element.className.replace(\"ace_gutter-active-line \", \"\");\n var cells = this.$lines.cells;\n this.$cursorCell = null;\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n if (cell.row >= this.$cursorRow) {\n if (cell.row > this.$cursorRow) {\n var fold = this.session.getFoldLine(this.$cursorRow);\n if (i > 0 && fold && fold.start.row == cells[i - 1].row)\n cell = cells[i - 1];\n else\n break;\n }\n cell.element.className = \"ace_gutter-active-line \" + cell.element.className;\n this.$cursorCell = cell;\n break;\n }\n }\n };\n Gutter.prototype.scrollLines = function (config) {\n var oldConfig = this.config;\n this.config = config;\n this.$updateCursorRow();\n if (this.$lines.pageChanged(oldConfig, config))\n return this.update(config);\n this.$lines.moveContainer(config);\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n this.session.getLength() - 1);\n var oldLastRow = this.oldLastRow;\n this.oldLastRow = lastRow;\n if (!oldConfig || oldLastRow < config.firstRow)\n return this.update(config);\n if (lastRow < oldConfig.firstRow)\n return this.update(config);\n if (oldConfig.firstRow < config.firstRow)\n for (var row = this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row > 0; row--)\n this.$lines.shift();\n if (oldLastRow > lastRow)\n for (var row = this.session.getFoldedRowCount(lastRow + 1, oldLastRow); row > 0; row--)\n this.$lines.pop();\n if (config.firstRow < oldConfig.firstRow) {\n this.$lines.unshift(this.$renderLines(config, config.firstRow, oldConfig.firstRow - 1));\n }\n if (lastRow > oldLastRow) {\n this.$lines.push(this.$renderLines(config, oldLastRow + 1, lastRow));\n }\n this.updateLineHighlight();\n this._signal(\"afterRender\");\n this.$updateGutterWidth(config);\n };\n Gutter.prototype.$renderLines = function (config, firstRow, lastRow) {\n var fragment = [];\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n var cell = this.$lines.createCell(row, config, this.session, onCreateCell);\n this.$renderCell(cell, config, foldLine, row);\n fragment.push(cell);\n row++;\n }\n return fragment;\n };\n Gutter.prototype.$renderCell = function (cell, config, fold, row) {\n var element = cell.element;\n var session = this.session;\n var textNode = element.childNodes[0];\n var foldWidget = element.childNodes[1];\n var annotationNode = element.childNodes[2];\n var annotationIconNode = annotationNode.firstChild;\n var firstLineNumber = session.$firstLineNumber;\n var breakpoints = session.$breakpoints;\n var decorations = session.$decorations;\n var gutterRenderer = session.gutterRenderer || this.$renderer;\n var foldWidgets = this.$showFoldWidgets && session.foldWidgets;\n var foldStart = fold ? fold.start.row : Number.MAX_VALUE;\n var lineHeight = config.lineHeight + \"px\";\n var className = this.$useSvgGutterIcons ? \"ace_gutter-cell_svg-icons \" : \"ace_gutter-cell \";\n var iconClassName = this.$useSvgGutterIcons ? \"ace_icon_svg\" : \"ace_icon\";\n var rowText = (gutterRenderer\n ? gutterRenderer.getText(session, row)\n : row + firstLineNumber).toString();\n if (this.$highlightGutterLine) {\n if (row == this.$cursorRow || (fold && row < this.$cursorRow && row >= foldStart && this.$cursorRow <= fold.end.row)) {\n className += \"ace_gutter-active-line \";\n if (this.$cursorCell != cell) {\n if (this.$cursorCell)\n this.$cursorCell.element.className = this.$cursorCell.element.className.replace(\"ace_gutter-active-line \", \"\");\n this.$cursorCell = cell;\n }\n }\n }\n if (breakpoints[row])\n className += breakpoints[row];\n if (decorations[row])\n className += decorations[row];\n if (this.$annotations[row] && row !== foldStart)\n className += this.$annotations[row].className;\n if (foldWidgets) {\n var c = foldWidgets[row];\n if (c == null)\n c = foldWidgets[row] = session.getFoldWidget(row);\n }\n if (c) {\n var foldClass = \"ace_fold-widget ace_\" + c;\n var isClosedFold = c == \"start\" && row == foldStart && row < fold.end.row;\n if (isClosedFold) {\n foldClass += \" ace_closed\";\n var foldAnnotationClass = '';\n var annotationInFold = false;\n for (var i = row + 1; i <= fold.end.row; i++) {\n if (!this.$annotations[i])\n continue;\n if (this.$annotations[i].className === \" ace_error\") {\n annotationInFold = true;\n foldAnnotationClass = \" ace_error_fold\";\n break;\n }\n if (this.$annotations[i].className === \" ace_warning\") {\n annotationInFold = true;\n foldAnnotationClass = \" ace_warning_fold\";\n continue;\n }\n }\n className += foldAnnotationClass;\n }\n else\n foldClass += \" ace_open\";\n if (foldWidget.className != foldClass)\n foldWidget.className = foldClass;\n dom.setStyle(foldWidget.style, \"height\", lineHeight);\n dom.setStyle(foldWidget.style, \"display\", \"inline-block\");\n foldWidget.setAttribute(\"role\", \"button\");\n foldWidget.setAttribute(\"tabindex\", \"-1\");\n var foldRange = session.getFoldWidgetRange(row);\n if (foldRange)\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, rows $0 through $1\", [foldRange.start.row + 1, foldRange.end.row + 1]));\n else {\n if (fold)\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, rows $0 through $1\", [fold.start.row + 1, fold.end.row + 1]));\n else\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, row $0\", [row + 1]));\n }\n if (isClosedFold) {\n foldWidget.setAttribute(\"aria-expanded\", \"false\");\n foldWidget.setAttribute(\"title\", nls(\"Unfold code\"));\n }\n else {\n foldWidget.setAttribute(\"aria-expanded\", \"true\");\n foldWidget.setAttribute(\"title\", nls(\"Fold code\"));\n }\n }\n else {\n if (foldWidget) {\n dom.setStyle(foldWidget.style, \"display\", \"none\");\n foldWidget.setAttribute(\"tabindex\", \"0\");\n foldWidget.removeAttribute(\"role\");\n foldWidget.removeAttribute(\"aria-label\");\n }\n }\n if (annotationInFold && this.$showFoldedAnnotations) {\n annotationNode.className = \"ace_gutter_annotation\";\n annotationIconNode.className = iconClassName;\n annotationIconNode.className += foldAnnotationClass;\n dom.setStyle(annotationIconNode.style, \"height\", lineHeight);\n dom.setStyle(annotationNode.style, \"display\", \"block\");\n dom.setStyle(annotationNode.style, \"height\", lineHeight);\n annotationNode.setAttribute(\"aria-label\", nls(\"Read annotations row $0\", [rowText]));\n annotationNode.setAttribute(\"tabindex\", \"-1\");\n annotationNode.setAttribute(\"role\", \"button\");\n }\n else if (this.$annotations[row]) {\n annotationNode.className = \"ace_gutter_annotation\";\n annotationIconNode.className = iconClassName;\n if (this.$useSvgGutterIcons)\n annotationIconNode.className += this.$annotations[row].className;\n else\n element.classList.add(this.$annotations[row].className.replace(\" \", \"\"));\n dom.setStyle(annotationIconNode.style, \"height\", lineHeight);\n dom.setStyle(annotationNode.style, \"display\", \"block\");\n dom.setStyle(annotationNode.style, \"height\", lineHeight);\n annotationNode.setAttribute(\"aria-label\", nls(\"Read annotations row $0\", [rowText]));\n annotationNode.setAttribute(\"tabindex\", \"-1\");\n annotationNode.setAttribute(\"role\", \"button\");\n }\n else {\n dom.setStyle(annotationNode.style, \"display\", \"none\");\n annotationNode.removeAttribute(\"aria-label\");\n annotationNode.removeAttribute(\"role\");\n annotationNode.setAttribute(\"tabindex\", \"0\");\n }\n if (rowText !== textNode.data) {\n textNode.data = rowText;\n }\n if (element.className != className)\n element.className = className;\n dom.setStyle(cell.element.style, \"height\", this.$lines.computeLineHeight(row, config, session) + \"px\");\n dom.setStyle(cell.element.style, \"top\", this.$lines.computeLineTop(row, config, session) + \"px\");\n cell.text = rowText;\n if (annotationNode.style.display === \"none\" && foldWidget.style.display === \"none\")\n cell.element.setAttribute(\"aria-hidden\", true);\n else\n cell.element.setAttribute(\"aria-hidden\", false);\n return cell;\n };\n Gutter.prototype.setHighlightGutterLine = function (highlightGutterLine) {\n this.$highlightGutterLine = highlightGutterLine;\n };\n Gutter.prototype.setShowLineNumbers = function (show) {\n this.$renderer = !show && {\n getWidth: function () { return 0; },\n getText: function () { return \"\"; }\n };\n };\n Gutter.prototype.getShowLineNumbers = function () {\n return this.$showLineNumbers;\n };\n Gutter.prototype.setShowFoldWidgets = function (show) {\n if (show)\n dom.addCssClass(this.element, \"ace_folding-enabled\");\n else\n dom.removeCssClass(this.element, \"ace_folding-enabled\");\n this.$showFoldWidgets = show;\n this.$padding = null;\n };\n Gutter.prototype.getShowFoldWidgets = function () {\n return this.$showFoldWidgets;\n };\n Gutter.prototype.$computePadding = function () {\n if (!this.element.firstChild)\n return { left: 0, right: 0 };\n var style = dom.computedStyle(this.element.firstChild);\n this.$padding = {};\n this.$padding.left = (parseInt(style.borderLeftWidth) || 0)\n + (parseInt(style.paddingLeft) || 0) + 1;\n this.$padding.right = (parseInt(style.borderRightWidth) || 0)\n + (parseInt(style.paddingRight) || 0);\n return this.$padding;\n };\n Gutter.prototype.getRegion = function (point) {\n var padding = this.$padding || this.$computePadding();\n var rect = this.element.getBoundingClientRect();\n if (point.x < padding.left + rect.left)\n return \"markers\";\n if (this.$showFoldWidgets && point.x > rect.right - padding.right)\n return \"foldWidgets\";\n };\n return Gutter;\n}());\nGutter.prototype.$fixedWidth = false;\nGutter.prototype.$highlightGutterLine = true;\nGutter.prototype.$renderer = \"\";\nGutter.prototype.$showLineNumbers = true;\nGutter.prototype.$showFoldWidgets = true;\noop.implement(Gutter.prototype, EventEmitter);\nfunction onCreateCell(element) {\n var textNode = document.createTextNode('');\n element.appendChild(textNode);\n var foldWidget = dom.createElement(\"span\");\n element.appendChild(foldWidget);\n var annotationNode = dom.createElement(\"span\");\n element.appendChild(annotationNode);\n var annotationIconNode = dom.createElement(\"span\");\n annotationNode.appendChild(annotationIconNode);\n return element;\n}\nexports.Gutter = Gutter;\n\n});\n\nace.define(\"ace/layer/marker\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar dom = require(\"../lib/dom\");\nvar Marker = /** @class */ (function () {\n function Marker(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_marker-layer\";\n parentEl.appendChild(this.element);\n }\n Marker.prototype.setPadding = function (padding) {\n this.$padding = padding;\n };\n Marker.prototype.setSession = function (session) {\n this.session = session;\n };\n Marker.prototype.setMarkers = function (markers) {\n this.markers = markers;\n };\n Marker.prototype.elt = function (className, css) {\n var x = this.i != -1 && this.element.childNodes[this.i];\n if (!x) {\n x = document.createElement(\"div\");\n this.element.appendChild(x);\n this.i = -1;\n }\n else {\n this.i++;\n }\n x.style.cssText = css;\n x.className = className;\n };\n Marker.prototype.update = function (config) {\n if (!config)\n return;\n this.config = config;\n this.i = 0;\n var html;\n for (var key in this.markers) {\n var marker = this.markers[key];\n if (!marker.range) {\n marker.update(html, this, this.session, config);\n continue;\n }\n var range = marker.range.clipRows(config.firstRow, config.lastRow);\n if (range.isEmpty())\n continue;\n range = range.toScreenRange(this.session);\n if (marker.renderer) {\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n marker.renderer(html, range, left, top, config);\n }\n else if (marker.type == \"fullLine\") {\n this.drawFullLineMarker(html, range, marker.clazz, config);\n }\n else if (marker.type == \"screenLine\") {\n this.drawScreenLineMarker(html, range, marker.clazz, config);\n }\n else if (range.isMultiLine()) {\n if (marker.type == \"text\")\n this.drawTextMarker(html, range, marker.clazz, config);\n else\n this.drawMultiLineMarker(html, range, marker.clazz, config);\n }\n else {\n this.drawSingleLineMarker(html, range, marker.clazz + \" ace_start\" + \" ace_br15\", config);\n }\n }\n if (this.i != -1) {\n while (this.i < this.element.childElementCount)\n this.element.removeChild(this.element.lastChild);\n }\n };\n Marker.prototype.$getTop = function (row, layerConfig) {\n return (row - layerConfig.firstRowScreen) * layerConfig.lineHeight;\n };\n Marker.prototype.drawTextMarker = function (stringBuilder, range, clazz, layerConfig, extraStyle) {\n var session = this.session;\n var start = range.start.row;\n var end = range.end.row;\n var row = start;\n var prev = 0;\n var curr = 0;\n var next = session.getScreenLastRowColumn(row);\n var lineRange = new Range(row, range.start.column, row, curr);\n for (; row <= end; row++) {\n lineRange.start.row = lineRange.end.row = row;\n lineRange.start.column = row == start ? range.start.column : session.getRowWrapIndent(row);\n lineRange.end.column = next;\n prev = curr;\n curr = next;\n next = row + 1 < end ? session.getScreenLastRowColumn(row + 1) : row == end ? 0 : range.end.column;\n this.drawSingleLineMarker(stringBuilder, lineRange, clazz + (row == start ? \" ace_start\" : \"\") + \" ace_br\"\n + getBorderClass(row == start || row == start + 1 && range.start.column, prev < curr, curr > next, row == end), layerConfig, row == end ? 0 : 1, extraStyle);\n }\n };\n Marker.prototype.drawMultiLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var padding = this.$padding;\n var height = config.lineHeight;\n var top = this.$getTop(range.start.row, config);\n var left = padding + range.start.column * config.characterWidth;\n extraStyle = extraStyle || \"\";\n if (this.session.$bidiHandler.isBidiRow(range.start.row)) {\n var range1 = range.clone();\n range1.end.row = range1.start.row;\n range1.end.column = this.session.getLine(range1.start.row).length;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br1 ace_start\", config, null, extraStyle);\n }\n else {\n this.elt(clazz + \" ace_br1 ace_start\", \"height:\" + height + \"px;\" + \"right:0;\" + \"top:\" + top + \"px;left:\" + left + \"px;\" + (extraStyle || \"\"));\n }\n if (this.session.$bidiHandler.isBidiRow(range.end.row)) {\n var range1 = range.clone();\n range1.start.row = range1.end.row;\n range1.start.column = 0;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br12\", config, null, extraStyle);\n }\n else {\n top = this.$getTop(range.end.row, config);\n var width = range.end.column * config.characterWidth;\n this.elt(clazz + \" ace_br12\", \"height:\" + height + \"px;\" +\n \"width:\" + width + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + padding + \"px;\" + (extraStyle || \"\"));\n }\n height = (range.end.row - range.start.row - 1) * config.lineHeight;\n if (height <= 0)\n return;\n top = this.$getTop(range.start.row + 1, config);\n var radiusClass = (range.start.column ? 1 : 0) | (range.end.column ? 0 : 8);\n this.elt(clazz + (radiusClass ? \" ace_br\" + radiusClass : \"\"), \"height:\" + height + \"px;\" +\n \"right:0;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + padding + \"px;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawSingleLineMarker = function (stringBuilder, range, clazz, config, extraLength, extraStyle) {\n if (this.session.$bidiHandler.isBidiRow(range.start.row))\n return this.drawBidiSingleLineMarker(stringBuilder, range, clazz, config, extraLength, extraStyle);\n var height = config.lineHeight;\n var width = (range.end.column + (extraLength || 0) - range.start.column) * config.characterWidth;\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"width:\" + width + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + left + \"px;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawBidiSingleLineMarker = function (stringBuilder, range, clazz, config, extraLength, extraStyle) {\n var height = config.lineHeight, top = this.$getTop(range.start.row, config), padding = this.$padding;\n var selections = this.session.$bidiHandler.getSelections(range.start.column, range.end.column);\n selections.forEach(function (selection) {\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"width:\" + (selection.width + (extraLength || 0)) + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + (padding + selection.left) + \"px;\" + (extraStyle || \"\"));\n }, this);\n };\n Marker.prototype.drawFullLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n if (range.start.row != range.end.row)\n height += this.$getTop(range.end.row, config) - top;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:0;right:0;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawScreenLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:0;right:0;\" + (extraStyle || \"\"));\n };\n return Marker;\n}());\nMarker.prototype.$padding = 0;\nfunction getBorderClass(tl, tr, br, bl) {\n return (tl ? 1 : 0) | (tr ? 2 : 0) | (br ? 4 : 0) | (bl ? 8 : 0);\n}\nexports.Marker = Marker;\n\n});\n\nace.define(\"ace/layer/text_util\",[\"require\",\"exports\",\"module\"], function(require, exports, module){// Tokens for which Ace just uses a simple TextNode and does not add any special className.\nvar textTokens = new Set([\"text\", \"rparen\", \"lparen\"]);\nexports.isTextToken = function (tokenType) {\n return textTokens.has(tokenType);\n};\n\n});\n\nace.define(\"ace/layer/text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/layer/lines\",\"ace/lib/event_emitter\",\"ace/config\",\"ace/layer/text_util\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar Lines = require(\"./lines\").Lines;\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar nls = require(\"../config\").nls;\nvar isTextToken = require(\"./text_util\").isTextToken;\nvar Text = /** @class */ (function () {\n function Text(parentEl) {\n this.dom = dom;\n this.element = this.dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_text-layer\";\n parentEl.appendChild(this.element);\n this.$updateEolChar = this.$updateEolChar.bind(this);\n this.$lines = new Lines(this.element);\n }\n Text.prototype.$updateEolChar = function () {\n var doc = this.session.doc;\n var unixMode = doc.getNewLineCharacter() == \"\\n\" && doc.getNewLineMode() != \"windows\";\n var EOL_CHAR = unixMode ? this.EOL_CHAR_LF : this.EOL_CHAR_CRLF;\n if (this.EOL_CHAR != EOL_CHAR) {\n this.EOL_CHAR = EOL_CHAR;\n return true;\n }\n };\n Text.prototype.setPadding = function (padding) {\n this.$padding = padding;\n this.element.style.margin = \"0 \" + padding + \"px\";\n };\n Text.prototype.getLineHeight = function () {\n return this.$fontMetrics.$characterSize.height || 0;\n };\n Text.prototype.getCharacterWidth = function () {\n return this.$fontMetrics.$characterSize.width || 0;\n };\n Text.prototype.$setFontMetrics = function (measure) {\n this.$fontMetrics = measure;\n this.$fontMetrics.on(\"changeCharacterSize\", function (e) {\n this._signal(\"changeCharacterSize\", e);\n }.bind(this));\n this.$pollSizeChanges();\n };\n Text.prototype.checkForSizeChanges = function () {\n this.$fontMetrics.checkForSizeChanges();\n };\n Text.prototype.$pollSizeChanges = function () {\n return this.$pollSizeChangesTimer = this.$fontMetrics.$pollSizeChanges();\n };\n Text.prototype.setSession = function (session) {\n this.session = session;\n if (session)\n this.$computeTabString();\n };\n Text.prototype.setShowInvisibles = function (showInvisibles) {\n if (this.showInvisibles == showInvisibles)\n return false;\n this.showInvisibles = showInvisibles;\n if (typeof showInvisibles == \"string\") {\n this.showSpaces = /tab/i.test(showInvisibles);\n this.showTabs = /space/i.test(showInvisibles);\n this.showEOL = /eol/i.test(showInvisibles);\n }\n else {\n this.showSpaces = this.showTabs = this.showEOL = showInvisibles;\n }\n this.$computeTabString();\n return true;\n };\n Text.prototype.setDisplayIndentGuides = function (display) {\n if (this.displayIndentGuides == display)\n return false;\n this.displayIndentGuides = display;\n this.$computeTabString();\n return true;\n };\n Text.prototype.setHighlightIndentGuides = function (highlight) {\n if (this.$highlightIndentGuides === highlight)\n return false;\n this.$highlightIndentGuides = highlight;\n return highlight;\n };\n Text.prototype.$computeTabString = function () {\n var tabSize = this.session.getTabSize();\n this.tabSize = tabSize;\n var tabStr = this.$tabStrings = [0];\n for (var i = 1; i < tabSize + 1; i++) {\n if (this.showTabs) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_tab\";\n span.textContent = lang.stringRepeat(this.TAB_CHAR, i);\n tabStr.push(span);\n }\n else {\n tabStr.push(this.dom.createTextNode(lang.stringRepeat(\" \", i), this.element));\n }\n }\n if (this.displayIndentGuides) {\n this.$indentGuideRe = /\\s\\S| \\t|\\t |\\s$/;\n var className = \"ace_indent-guide\";\n var spaceClass = this.showSpaces ? \" ace_invisible ace_invisible_space\" : \"\";\n var spaceContent = this.showSpaces\n ? lang.stringRepeat(this.SPACE_CHAR, this.tabSize)\n : lang.stringRepeat(\" \", this.tabSize);\n var tabClass = this.showTabs ? \" ace_invisible ace_invisible_tab\" : \"\";\n var tabContent = this.showTabs\n ? lang.stringRepeat(this.TAB_CHAR, this.tabSize)\n : spaceContent;\n var span = this.dom.createElement(\"span\");\n span.className = className + spaceClass;\n span.textContent = spaceContent;\n this.$tabStrings[\" \"] = span;\n var span = this.dom.createElement(\"span\");\n span.className = className + tabClass;\n span.textContent = tabContent;\n this.$tabStrings[\"\\t\"] = span;\n }\n };\n Text.prototype.updateLines = function (config, firstRow, lastRow) {\n if (this.config.lastRow != config.lastRow ||\n this.config.firstRow != config.firstRow) {\n return this.update(config);\n }\n this.config = config;\n var first = Math.max(firstRow, config.firstRow);\n var last = Math.min(lastRow, config.lastRow);\n var lineElements = this.element.childNodes;\n var lineElementsIdx = 0;\n for (var row = config.firstRow; row < first; row++) {\n var foldLine = this.session.getFoldLine(row);\n if (foldLine) {\n if (foldLine.containsRow(first)) {\n first = foldLine.start.row;\n break;\n }\n else {\n row = foldLine.end.row;\n }\n }\n lineElementsIdx++;\n }\n var heightChanged = false;\n var row = first;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > last)\n break;\n var lineElement = lineElements[lineElementsIdx++];\n if (lineElement) {\n this.dom.removeChildren(lineElement);\n this.$renderLine(lineElement, row, row == foldStart ? foldLine : false);\n if (heightChanged)\n lineElement.style.top = this.$lines.computeLineTop(row, config, this.session) + \"px\";\n var height = (config.lineHeight * this.session.getRowLength(row)) + \"px\";\n if (lineElement.style.height != height) {\n heightChanged = true;\n lineElement.style.height = height;\n }\n }\n row++;\n }\n if (heightChanged) {\n while (lineElementsIdx < this.$lines.cells.length) {\n var cell = this.$lines.cells[lineElementsIdx++];\n cell.element.style.top = this.$lines.computeLineTop(cell.row, config, this.session) + \"px\";\n }\n }\n };\n Text.prototype.scrollLines = function (config) {\n var oldConfig = this.config;\n this.config = config;\n if (this.$lines.pageChanged(oldConfig, config))\n return this.update(config);\n this.$lines.moveContainer(config);\n var lastRow = config.lastRow;\n var oldLastRow = oldConfig ? oldConfig.lastRow : -1;\n if (!oldConfig || oldLastRow < config.firstRow)\n return this.update(config);\n if (lastRow < oldConfig.firstRow)\n return this.update(config);\n if (!oldConfig || oldConfig.lastRow < config.firstRow)\n return this.update(config);\n if (config.lastRow < oldConfig.firstRow)\n return this.update(config);\n if (oldConfig.firstRow < config.firstRow)\n for (var row = this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row > 0; row--)\n this.$lines.shift();\n if (oldConfig.lastRow > config.lastRow)\n for (var row = this.session.getFoldedRowCount(config.lastRow + 1, oldConfig.lastRow); row > 0; row--)\n this.$lines.pop();\n if (config.firstRow < oldConfig.firstRow) {\n this.$lines.unshift(this.$renderLinesFragment(config, config.firstRow, oldConfig.firstRow - 1));\n }\n if (config.lastRow > oldConfig.lastRow) {\n this.$lines.push(this.$renderLinesFragment(config, oldConfig.lastRow + 1, config.lastRow));\n }\n this.$highlightIndentGuide();\n };\n Text.prototype.$renderLinesFragment = function (config, firstRow, lastRow) {\n var fragment = [];\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n var line = this.$lines.createCell(row, config, this.session);\n var lineEl = line.element;\n this.dom.removeChildren(lineEl);\n dom.setStyle(lineEl.style, \"height\", this.$lines.computeLineHeight(row, config, this.session) + \"px\");\n dom.setStyle(lineEl.style, \"top\", this.$lines.computeLineTop(row, config, this.session) + \"px\");\n this.$renderLine(lineEl, row, row == foldStart ? foldLine : false);\n if (this.$useLineGroups()) {\n lineEl.className = \"ace_line_group\";\n }\n else {\n lineEl.className = \"ace_line\";\n }\n fragment.push(line);\n row++;\n }\n return fragment;\n };\n Text.prototype.update = function (config) {\n this.$lines.moveContainer(config);\n this.config = config;\n var firstRow = config.firstRow;\n var lastRow = config.lastRow;\n var lines = this.$lines;\n while (lines.getLength())\n lines.pop();\n lines.push(this.$renderLinesFragment(config, firstRow, lastRow));\n };\n Text.prototype.$renderToken = function (parent, screenColumn, token, value) {\n var self = this;\n var re = /(\\t)|( +)|([\\x00-\\x1f\\x80-\\xa0\\xad\\u1680\\u180E\\u2000-\\u200f\\u2028\\u2029\\u202F\\u205F\\uFEFF\\uFFF9-\\uFFFC\\u2066\\u2067\\u2068\\u202A\\u202B\\u202D\\u202E\\u202C\\u2069]+)|(\\u3000)|([\\u1100-\\u115F\\u11A3-\\u11A7\\u11FA-\\u11FF\\u2329-\\u232A\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3001-\\u303E\\u3041-\\u3096\\u3099-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u3190-\\u31BA\\u31C0-\\u31E3\\u31F0-\\u321E\\u3220-\\u3247\\u3250-\\u32FE\\u3300-\\u4DBF\\u4E00-\\uA48C\\uA490-\\uA4C6\\uA960-\\uA97C\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFAFF\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFF01-\\uFF60\\uFFE0-\\uFFE6]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF])/g;\n var valueFragment = this.dom.createFragment(this.element);\n var m;\n var i = 0;\n while (m = re.exec(value)) {\n var tab = m[1];\n var simpleSpace = m[2];\n var controlCharacter = m[3];\n var cjkSpace = m[4];\n var cjk = m[5];\n if (!self.showSpaces && simpleSpace)\n continue;\n var before = i != m.index ? value.slice(i, m.index) : \"\";\n i = m.index + m[0].length;\n if (before) {\n valueFragment.appendChild(this.dom.createTextNode(before, this.element));\n }\n if (tab) {\n var tabSize = self.session.getScreenTabSize(screenColumn + m.index);\n valueFragment.appendChild(self.$tabStrings[tabSize].cloneNode(true));\n screenColumn += tabSize - 1;\n }\n else if (simpleSpace) {\n if (self.showSpaces) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_space\";\n span.textContent = lang.stringRepeat(self.SPACE_CHAR, simpleSpace.length);\n valueFragment.appendChild(span);\n }\n else {\n valueFragment.appendChild(this.dom.createTextNode(simpleSpace, this.element));\n }\n }\n else if (controlCharacter) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_space ace_invalid\";\n span.textContent = lang.stringRepeat(self.SPACE_CHAR, controlCharacter.length);\n valueFragment.appendChild(span);\n }\n else if (cjkSpace) {\n screenColumn += 1;\n var span = this.dom.createElement(\"span\");\n span.style.width = (self.config.characterWidth * 2) + \"px\";\n span.className = self.showSpaces ? \"ace_cjk ace_invisible ace_invisible_space\" : \"ace_cjk\";\n span.textContent = self.showSpaces ? self.SPACE_CHAR : cjkSpace;\n valueFragment.appendChild(span);\n }\n else if (cjk) {\n screenColumn += 1;\n var span = this.dom.createElement(\"span\");\n span.style.width = (self.config.characterWidth * 2) + \"px\";\n span.className = \"ace_cjk\";\n span.textContent = cjk;\n valueFragment.appendChild(span);\n }\n }\n valueFragment.appendChild(this.dom.createTextNode(i ? value.slice(i) : value, this.element));\n if (!isTextToken(token.type)) {\n var classes = \"ace_\" + token.type.replace(/\\./g, \" ace_\");\n var span = this.dom.createElement(\"span\");\n if (token.type == \"fold\") {\n span.style.width = (token.value.length * this.config.characterWidth) + \"px\";\n span.setAttribute(\"title\", nls(\"Unfold code\"));\n }\n span.className = classes;\n span.appendChild(valueFragment);\n parent.appendChild(span);\n }\n else {\n parent.appendChild(valueFragment);\n }\n return screenColumn + value.length;\n };\n Text.prototype.renderIndentGuide = function (parent, value, max) {\n var cols = value.search(this.$indentGuideRe);\n if (cols <= 0 || cols >= max)\n return value;\n if (value[0] == \" \") {\n cols -= cols % this.tabSize;\n var count = cols / this.tabSize;\n for (var i = 0; i < count; i++) {\n parent.appendChild(this.$tabStrings[\" \"].cloneNode(true));\n }\n this.$highlightIndentGuide();\n return value.substr(cols);\n }\n else if (value[0] == \"\\t\") {\n for (var i = 0; i < cols; i++) {\n parent.appendChild(this.$tabStrings[\"\\t\"].cloneNode(true));\n }\n this.$highlightIndentGuide();\n return value.substr(cols);\n }\n this.$highlightIndentGuide();\n return value;\n };\n Text.prototype.$highlightIndentGuide = function () {\n if (!this.$highlightIndentGuides || !this.displayIndentGuides)\n return;\n this.$highlightIndentGuideMarker = {\n indentLevel: undefined,\n start: undefined,\n end: undefined,\n dir: undefined\n };\n var lines = this.session.doc.$lines;\n if (!lines)\n return;\n var cursor = this.session.selection.getCursor();\n var initialIndent = /^\\s*/.exec(this.session.doc.getLine(cursor.row))[0].length;\n var elementIndentLevel = Math.floor(initialIndent / this.tabSize);\n this.$highlightIndentGuideMarker = {\n indentLevel: elementIndentLevel,\n start: cursor.row\n };\n var bracketHighlight = this.session.$bracketHighlight;\n if (bracketHighlight) {\n var ranges = this.session.$bracketHighlight.ranges;\n for (var i = 0; i < ranges.length; i++) {\n if (cursor.row !== ranges[i].start.row) {\n this.$highlightIndentGuideMarker.end = ranges[i].start.row;\n if (cursor.row > ranges[i].start.row) {\n this.$highlightIndentGuideMarker.dir = -1;\n }\n else {\n this.$highlightIndentGuideMarker.dir = 1;\n }\n break;\n }\n }\n }\n if (!this.$highlightIndentGuideMarker.end) {\n if (lines[cursor.row] !== '' && cursor.column === lines[cursor.row].length) {\n this.$highlightIndentGuideMarker.dir = 1;\n for (var i = cursor.row + 1; i < lines.length; i++) {\n var line = lines[i];\n var currentIndent = /^\\s*/.exec(line)[0].length;\n if (line !== '') {\n this.$highlightIndentGuideMarker.end = i;\n if (currentIndent <= initialIndent)\n break;\n }\n }\n }\n }\n this.$renderHighlightIndentGuide();\n };\n Text.prototype.$clearActiveIndentGuide = function () {\n var cells = this.$lines.cells;\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n var childNodes = cell.element.childNodes;\n if (childNodes.length > 0) {\n for (var j = 0; j < childNodes.length; j++) {\n if (childNodes[j].classList && childNodes[j].classList.contains(\"ace_indent-guide-active\")) {\n childNodes[j].classList.remove(\"ace_indent-guide-active\");\n break;\n }\n }\n }\n }\n };\n Text.prototype.$setIndentGuideActive = function (cell, indentLevel) {\n var line = this.session.doc.getLine(cell.row);\n if (line !== \"\") {\n var childNodes = cell.element.childNodes;\n if (childNodes) {\n var node = childNodes[indentLevel - 1];\n if (node && node.classList && node.classList.contains(\"ace_indent-guide\"))\n node.classList.add(\"ace_indent-guide-active\");\n }\n }\n };\n Text.prototype.$renderHighlightIndentGuide = function () {\n if (!this.$lines)\n return;\n var cells = this.$lines.cells;\n this.$clearActiveIndentGuide();\n var indentLevel = this.$highlightIndentGuideMarker.indentLevel;\n if (indentLevel !== 0) {\n if (this.$highlightIndentGuideMarker.dir === 1) {\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n if (this.$highlightIndentGuideMarker.end && cell.row >= this.$highlightIndentGuideMarker.start\n + 1) {\n if (cell.row >= this.$highlightIndentGuideMarker.end)\n break;\n this.$setIndentGuideActive(cell, indentLevel);\n }\n }\n }\n else {\n for (var i = cells.length - 1; i >= 0; i--) {\n var cell = cells[i];\n if (this.$highlightIndentGuideMarker.end && cell.row < this.$highlightIndentGuideMarker.start) {\n if (cell.row <= this.$highlightIndentGuideMarker.end)\n break;\n this.$setIndentGuideActive(cell, indentLevel);\n }\n }\n }\n }\n };\n Text.prototype.$createLineElement = function (parent) {\n var lineEl = this.dom.createElement(\"div\");\n lineEl.className = \"ace_line\";\n lineEl.style.height = this.config.lineHeight + \"px\";\n return lineEl;\n };\n Text.prototype.$renderWrappedLine = function (parent, tokens, splits) {\n var chars = 0;\n var split = 0;\n var splitChars = splits[0];\n var screenColumn = 0;\n var lineEl = this.$createLineElement();\n parent.appendChild(lineEl);\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n chars = value.length;\n value = this.renderIndentGuide(lineEl, value, splitChars);\n if (!value)\n continue;\n chars -= value.length;\n }\n if (chars + value.length < splitChars) {\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value);\n chars += value.length;\n }\n else {\n while (chars + value.length >= splitChars) {\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value.substring(0, splitChars - chars));\n value = value.substring(splitChars - chars);\n chars = splitChars;\n lineEl = this.$createLineElement();\n parent.appendChild(lineEl);\n lineEl.appendChild(this.dom.createTextNode(lang.stringRepeat(\"\\xa0\", splits.indent), this.element));\n split++;\n screenColumn = 0;\n splitChars = splits[split] || Number.MAX_VALUE;\n }\n if (value.length != 0) {\n chars += value.length;\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value);\n }\n }\n }\n if (splits[splits.length - 1] > this.MAX_LINE_LENGTH)\n this.$renderOverflowMessage(lineEl, screenColumn, null, \"\", true);\n };\n Text.prototype.$renderSimpleLine = function (parent, tokens) {\n var screenColumn = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n value = this.renderIndentGuide(parent, value);\n if (!value)\n continue;\n }\n if (screenColumn + value.length > this.MAX_LINE_LENGTH)\n return this.$renderOverflowMessage(parent, screenColumn, token, value);\n screenColumn = this.$renderToken(parent, screenColumn, token, value);\n }\n };\n Text.prototype.$renderOverflowMessage = function (parent, screenColumn, token, value, hide) {\n token && this.$renderToken(parent, screenColumn, token, value.slice(0, this.MAX_LINE_LENGTH - screenColumn));\n var overflowEl = this.dom.createElement(\"span\");\n overflowEl.className = \"ace_inline_button ace_keyword ace_toggle_wrap\";\n overflowEl.textContent = hide ? \"\" : \"\";\n parent.appendChild(overflowEl);\n };\n Text.prototype.$renderLine = function (parent, row, foldLine) {\n if (!foldLine && foldLine != false)\n foldLine = this.session.getFoldLine(row);\n if (foldLine)\n var tokens = this.$getFoldLineTokens(row, foldLine);\n else\n var tokens = this.session.getTokens(row);\n var lastLineEl = parent;\n if (tokens.length) {\n var splits = this.session.getRowSplitData(row);\n if (splits && splits.length) {\n this.$renderWrappedLine(parent, tokens, splits);\n var lastLineEl = parent.lastChild;\n }\n else {\n var lastLineEl = parent;\n if (this.$useLineGroups()) {\n lastLineEl = this.$createLineElement();\n parent.appendChild(lastLineEl);\n }\n this.$renderSimpleLine(lastLineEl, tokens);\n }\n }\n else if (this.$useLineGroups()) {\n lastLineEl = this.$createLineElement();\n parent.appendChild(lastLineEl);\n }\n if (this.showEOL && lastLineEl) {\n if (foldLine)\n row = foldLine.end.row;\n var invisibleEl = this.dom.createElement(\"span\");\n invisibleEl.className = \"ace_invisible ace_invisible_eol\";\n invisibleEl.textContent = row == this.session.getLength() - 1 ? this.EOF_CHAR : this.EOL_CHAR;\n lastLineEl.appendChild(invisibleEl);\n }\n };\n Text.prototype.$getFoldLineTokens = function (row, foldLine) {\n var session = this.session;\n var renderTokens = [];\n function addTokens(tokens, from, to) {\n var idx = 0, col = 0;\n while ((col + tokens[idx].value.length) < from) {\n col += tokens[idx].value.length;\n idx++;\n if (idx == tokens.length)\n return;\n }\n if (col != from) {\n var value = tokens[idx].value.substring(from - col);\n if (value.length > (to - from))\n value = value.substring(0, to - from);\n renderTokens.push({\n type: tokens[idx].type,\n value: value\n });\n col = from + value.length;\n idx += 1;\n }\n while (col < to && idx < tokens.length) {\n var value = tokens[idx].value;\n if (value.length + col > to) {\n renderTokens.push({\n type: tokens[idx].type,\n value: value.substring(0, to - col)\n });\n }\n else\n renderTokens.push(tokens[idx]);\n col += value.length;\n idx += 1;\n }\n }\n var tokens = session.getTokens(row);\n foldLine.walk(function (placeholder, row, column, lastColumn, isNewRow) {\n if (placeholder != null) {\n renderTokens.push({\n type: \"fold\",\n value: placeholder\n });\n }\n else {\n if (isNewRow)\n tokens = session.getTokens(row);\n if (tokens.length)\n addTokens(tokens, lastColumn, column);\n }\n }, foldLine.end.row, this.session.getLine(foldLine.end.row).length);\n return renderTokens;\n };\n Text.prototype.$useLineGroups = function () {\n return this.session.getUseWrapMode();\n };\n return Text;\n}());\nText.prototype.EOF_CHAR = \"\\xB6\";\nText.prototype.EOL_CHAR_LF = \"\\xAC\";\nText.prototype.EOL_CHAR_CRLF = \"\\xa4\";\nText.prototype.EOL_CHAR = Text.prototype.EOL_CHAR_LF;\nText.prototype.TAB_CHAR = \"\\u2014\"; //\"\\u21E5\";\nText.prototype.SPACE_CHAR = \"\\xB7\";\nText.prototype.$padding = 0;\nText.prototype.MAX_LINE_LENGTH = 10000;\nText.prototype.showInvisibles = false;\nText.prototype.showSpaces = false;\nText.prototype.showTabs = false;\nText.prototype.showEOL = false;\nText.prototype.displayIndentGuides = true;\nText.prototype.$highlightIndentGuides = true;\nText.prototype.$tabStrings = [];\nText.prototype.destroy = {};\nText.prototype.onChangeTabSize = Text.prototype.$computeTabString;\noop.implement(Text.prototype, EventEmitter);\nexports.Text = Text;\n\n});\n\nace.define(\"ace/layer/cursor\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar Cursor = /** @class */ (function () {\n function Cursor(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_cursor-layer\";\n parentEl.appendChild(this.element);\n this.isVisible = false;\n this.isBlinking = true;\n this.blinkInterval = 1000;\n this.smoothBlinking = false;\n this.cursors = [];\n this.cursor = this.addCursor();\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.$updateCursors = this.$updateOpacity.bind(this);\n }\n Cursor.prototype.$updateOpacity = function (val) {\n var cursors = this.cursors;\n for (var i = cursors.length; i--;)\n dom.setStyle(cursors[i].style, \"opacity\", val ? \"\" : \"0\");\n };\n Cursor.prototype.$startCssAnimation = function () {\n var cursors = this.cursors;\n for (var i = cursors.length; i--;)\n cursors[i].style.animationDuration = this.blinkInterval + \"ms\";\n this.$isAnimating = true;\n setTimeout(function () {\n if (this.$isAnimating) {\n dom.addCssClass(this.element, \"ace_animate-blinking\");\n }\n }.bind(this));\n };\n Cursor.prototype.$stopCssAnimation = function () {\n this.$isAnimating = false;\n dom.removeCssClass(this.element, \"ace_animate-blinking\");\n };\n Cursor.prototype.setPadding = function (padding) {\n this.$padding = padding;\n };\n Cursor.prototype.setSession = function (session) {\n this.session = session;\n };\n Cursor.prototype.setBlinking = function (blinking) {\n if (blinking != this.isBlinking) {\n this.isBlinking = blinking;\n this.restartTimer();\n }\n };\n Cursor.prototype.setBlinkInterval = function (blinkInterval) {\n if (blinkInterval != this.blinkInterval) {\n this.blinkInterval = blinkInterval;\n this.restartTimer();\n }\n };\n Cursor.prototype.setSmoothBlinking = function (smoothBlinking) {\n if (smoothBlinking != this.smoothBlinking) {\n this.smoothBlinking = smoothBlinking;\n dom.setCssClass(this.element, \"ace_smooth-blinking\", smoothBlinking);\n this.$updateCursors(true);\n this.restartTimer();\n }\n };\n Cursor.prototype.addCursor = function () {\n var el = dom.createElement(\"div\");\n el.className = \"ace_cursor\";\n this.element.appendChild(el);\n this.cursors.push(el);\n return el;\n };\n Cursor.prototype.removeCursor = function () {\n if (this.cursors.length > 1) {\n var el = this.cursors.pop();\n el.parentNode.removeChild(el);\n return el;\n }\n };\n Cursor.prototype.hideCursor = function () {\n this.isVisible = false;\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n Cursor.prototype.showCursor = function () {\n this.isVisible = true;\n dom.removeCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n Cursor.prototype.restartTimer = function () {\n var update = this.$updateCursors;\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n this.$stopCssAnimation();\n if (this.smoothBlinking) {\n this.$isSmoothBlinking = false;\n dom.removeCssClass(this.element, \"ace_smooth-blinking\");\n }\n update(true);\n if (!this.isBlinking || !this.blinkInterval || !this.isVisible) {\n this.$stopCssAnimation();\n return;\n }\n if (this.smoothBlinking) {\n this.$isSmoothBlinking = true;\n setTimeout(function () {\n if (this.$isSmoothBlinking) {\n dom.addCssClass(this.element, \"ace_smooth-blinking\");\n }\n }.bind(this));\n }\n if (dom.HAS_CSS_ANIMATION) {\n this.$startCssAnimation();\n }\n else {\n var blink = function () {\n this.timeoutId = setTimeout(function () {\n update(false);\n }, 0.6 * this.blinkInterval);\n }.bind(this);\n this.intervalId = setInterval(function () {\n update(true);\n blink();\n }, this.blinkInterval);\n blink();\n }\n };\n Cursor.prototype.getPixelPosition = function (position, onScreen) {\n if (!this.config || !this.session)\n return { left: 0, top: 0 };\n if (!position)\n position = this.session.selection.getCursor();\n var pos = this.session.documentToScreenPosition(position);\n var cursorLeft = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, position.row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : pos.column * this.config.characterWidth);\n var cursorTop = (pos.row - (onScreen ? this.config.firstRowScreen : 0)) *\n this.config.lineHeight;\n return { left: cursorLeft, top: cursorTop };\n };\n Cursor.prototype.isCursorInView = function (pixelPos, config) {\n return pixelPos.top >= 0 && pixelPos.top < config.maxHeight;\n };\n Cursor.prototype.update = function (config) {\n this.config = config;\n var selections = this.session.$selectionMarkers;\n var i = 0, cursorIndex = 0;\n if (selections === undefined || selections.length === 0) {\n selections = [{ cursor: null }];\n }\n for (var i = 0, n = selections.length; i < n; i++) {\n var pixelPos = this.getPixelPosition(selections[i].cursor, true);\n if ((pixelPos.top > config.height + config.offset ||\n pixelPos.top < 0) && i > 1) {\n continue;\n }\n var element = this.cursors[cursorIndex++] || this.addCursor();\n var style = element.style;\n if (!this.drawCursor) {\n if (!this.isCursorInView(pixelPos, config)) {\n dom.setStyle(style, \"display\", \"none\");\n }\n else {\n dom.setStyle(style, \"display\", \"block\");\n dom.translate(element, pixelPos.left, pixelPos.top);\n dom.setStyle(style, \"width\", Math.round(config.characterWidth) + \"px\");\n dom.setStyle(style, \"height\", config.lineHeight + \"px\");\n }\n }\n else {\n this.drawCursor(element, pixelPos, config, selections[i], this.session);\n }\n }\n while (this.cursors.length > cursorIndex)\n this.removeCursor();\n var overwrite = this.session.getOverwrite();\n this.$setOverwrite(overwrite);\n this.$pixelPos = pixelPos;\n this.restartTimer();\n };\n Cursor.prototype.$setOverwrite = function (overwrite) {\n if (overwrite != this.overwrite) {\n this.overwrite = overwrite;\n if (overwrite)\n dom.addCssClass(this.element, \"ace_overwrite-cursors\");\n else\n dom.removeCssClass(this.element, \"ace_overwrite-cursors\");\n }\n };\n Cursor.prototype.destroy = function () {\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n };\n return Cursor;\n}());\nCursor.prototype.$padding = 0;\nCursor.prototype.drawCursor = null;\nexports.Cursor = Cursor;\n\n});\n\nace.define(\"ace/scrollbar\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar MAX_SCROLL_H = 0x8000;\nvar Scrollbar = /** @class */ (function () {\n function Scrollbar(parent, classSuffix) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_scrollbar ace_scrollbar\" + classSuffix;\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"ace_scrollbar-inner\";\n this.inner.textContent = \"\\xa0\";\n this.element.appendChild(this.inner);\n parent.appendChild(this.element);\n this.setVisible(false);\n this.skipEvent = false;\n event.addListener(this.element, \"scroll\", this.onScroll.bind(this));\n event.addListener(this.element, \"mousedown\", event.preventDefault);\n }\n Scrollbar.prototype.setVisible = function (isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n this.coeff = 1;\n };\n return Scrollbar;\n}());\noop.implement(Scrollbar.prototype, EventEmitter);\nvar VScrollBar = /** @class */ (function (_super) {\n __extends(VScrollBar, _super);\n function VScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-v') || this;\n _this.scrollTop = 0;\n _this.scrollHeight = 0;\n renderer.$scrollbarWidth =\n _this.width = dom.scrollbarWidth(parent.ownerDocument);\n _this.inner.style.width =\n _this.element.style.width = (_this.width || 15) + 5 + \"px\";\n _this.$minWidth = 0;\n return _this;\n }\n VScrollBar.prototype.onScroll = function () {\n if (!this.skipEvent) {\n this.scrollTop = this.element.scrollTop;\n if (this.coeff != 1) {\n var h = this.element.clientHeight / this.scrollHeight;\n this.scrollTop = this.scrollTop * (1 - h) / (this.coeff - h);\n }\n this._emit(\"scroll\", { data: this.scrollTop });\n }\n this.skipEvent = false;\n };\n VScrollBar.prototype.getWidth = function () {\n return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0);\n };\n VScrollBar.prototype.setHeight = function (height) {\n this.element.style.height = height + \"px\";\n };\n VScrollBar.prototype.setScrollHeight = function (height) {\n this.scrollHeight = height;\n if (height > MAX_SCROLL_H) {\n this.coeff = MAX_SCROLL_H / height;\n height = MAX_SCROLL_H;\n }\n else if (this.coeff != 1) {\n this.coeff = 1;\n }\n this.inner.style.height = height + \"px\";\n };\n VScrollBar.prototype.setScrollTop = function (scrollTop) {\n if (this.scrollTop != scrollTop) {\n this.skipEvent = true;\n this.scrollTop = scrollTop;\n this.element.scrollTop = scrollTop * this.coeff;\n }\n };\n return VScrollBar;\n}(Scrollbar));\nVScrollBar.prototype.setInnerHeight = VScrollBar.prototype.setScrollHeight;\nvar HScrollBar = /** @class */ (function (_super) {\n __extends(HScrollBar, _super);\n function HScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-h') || this;\n _this.scrollLeft = 0;\n _this.height = renderer.$scrollbarWidth;\n _this.inner.style.height =\n _this.element.style.height = (_this.height || 15) + 5 + \"px\";\n return _this;\n }\n HScrollBar.prototype.onScroll = function () {\n if (!this.skipEvent) {\n this.scrollLeft = this.element.scrollLeft;\n this._emit(\"scroll\", { data: this.scrollLeft });\n }\n this.skipEvent = false;\n };\n HScrollBar.prototype.getHeight = function () {\n return this.isVisible ? this.height : 0;\n };\n HScrollBar.prototype.setWidth = function (width) {\n this.element.style.width = width + \"px\";\n };\n HScrollBar.prototype.setInnerWidth = function (width) {\n this.inner.style.width = width + \"px\";\n };\n HScrollBar.prototype.setScrollWidth = function (width) {\n this.inner.style.width = width + \"px\";\n };\n HScrollBar.prototype.setScrollLeft = function (scrollLeft) {\n if (this.scrollLeft != scrollLeft) {\n this.skipEvent = true;\n this.scrollLeft = this.element.scrollLeft = scrollLeft;\n }\n };\n return HScrollBar;\n}(Scrollbar));\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n\n});\n\nace.define(\"ace/scrollbar_custom\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\ndom.importCssString(\".ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{\\n position: absolute;\\n background: rgba(128, 128, 128, 0.6);\\n -moz-box-sizing: border-box;\\n box-sizing: border-box;\\n border: 1px solid #bbb;\\n border-radius: 2px;\\n z-index: 8;\\n}\\n.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h {\\n position: absolute;\\n z-index: 6;\\n background: none;\\n overflow: hidden!important;\\n}\\n.ace_editor>.ace_sb-v {\\n z-index: 6;\\n right: 0;\\n top: 0;\\n width: 12px;\\n}\\n.ace_editor>.ace_sb-v div {\\n z-index: 8;\\n right: 0;\\n width: 100%;\\n}\\n.ace_editor>.ace_sb-h {\\n bottom: 0;\\n left: 0;\\n height: 12px;\\n}\\n.ace_editor>.ace_sb-h div {\\n bottom: 0;\\n height: 100%;\\n}\\n.ace_editor>.ace_sb_grabbed {\\n z-index: 8;\\n background: #000;\\n}\", \"ace_scrollbar.css\", false);\nvar ScrollBar = /** @class */ (function () {\n function ScrollBar(parent, classSuffix) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_sb\" + classSuffix;\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"\";\n this.element.appendChild(this.inner);\n this.VScrollWidth = 12;\n this.HScrollHeight = 12;\n parent.appendChild(this.element);\n this.setVisible(false);\n this.skipEvent = false;\n event.addMultiMouseDownListener(this.element, [500, 300, 300], this, \"onMouseDown\");\n }\n ScrollBar.prototype.setVisible = function (isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n this.coeff = 1;\n };\n return ScrollBar;\n}());\noop.implement(ScrollBar.prototype, EventEmitter);\nvar VScrollBar = /** @class */ (function (_super) {\n __extends(VScrollBar, _super);\n function VScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-v') || this;\n _this.scrollTop = 0;\n _this.scrollHeight = 0;\n _this.parent = parent;\n _this.width = _this.VScrollWidth;\n _this.renderer = renderer;\n _this.inner.style.width = _this.element.style.width = (_this.width || 15) + \"px\";\n _this.$minWidth = 0;\n return _this;\n }\n VScrollBar.prototype.onMouseDown = function (eType, e) {\n if (eType !== \"mousedown\")\n return;\n if (event.getButton(e) !== 0 || e.detail === 2) {\n return;\n }\n if (e.target === this.inner) {\n var self = this;\n var mousePageY = e.clientY;\n var onMouseMove = function (e) {\n mousePageY = e.clientY;\n };\n var onMouseUp = function () {\n clearInterval(timerId);\n };\n var startY = e.clientY;\n var startTop = this.thumbTop;\n var onScrollInterval = function () {\n if (mousePageY === undefined)\n return;\n var scrollTop = self.scrollTopFromThumbTop(startTop + mousePageY - startY);\n if (scrollTop === self.scrollTop)\n return;\n self._emit(\"scroll\", { data: scrollTop });\n };\n event.capture(this.inner, onMouseMove, onMouseUp);\n var timerId = setInterval(onScrollInterval, 20);\n return event.preventDefault(e);\n }\n var top = e.clientY - this.element.getBoundingClientRect().top - this.thumbHeight / 2;\n this._emit(\"scroll\", { data: this.scrollTopFromThumbTop(top) });\n return event.preventDefault(e);\n };\n VScrollBar.prototype.getHeight = function () {\n return this.height;\n };\n VScrollBar.prototype.scrollTopFromThumbTop = function (thumbTop) {\n var scrollTop = thumbTop * (this.pageHeight - this.viewHeight) / (this.slideHeight - this.thumbHeight);\n scrollTop = scrollTop >> 0;\n if (scrollTop < 0) {\n scrollTop = 0;\n }\n else if (scrollTop > this.pageHeight - this.viewHeight) {\n scrollTop = this.pageHeight - this.viewHeight;\n }\n return scrollTop;\n };\n VScrollBar.prototype.getWidth = function () {\n return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0);\n };\n VScrollBar.prototype.setHeight = function (height) {\n this.height = Math.max(0, height);\n this.slideHeight = this.height;\n this.viewHeight = this.height;\n this.setScrollHeight(this.pageHeight, true);\n };\n VScrollBar.prototype.setScrollHeight = function (height, force) {\n if (this.pageHeight === height && !force)\n return;\n this.pageHeight = height;\n this.thumbHeight = this.slideHeight * this.viewHeight / this.pageHeight;\n if (this.thumbHeight > this.slideHeight)\n this.thumbHeight = this.slideHeight;\n if (this.thumbHeight < 15)\n this.thumbHeight = 15;\n this.inner.style.height = this.thumbHeight + \"px\";\n if (this.scrollTop > (this.pageHeight - this.viewHeight)) {\n this.scrollTop = (this.pageHeight - this.viewHeight);\n if (this.scrollTop < 0)\n this.scrollTop = 0;\n this._emit(\"scroll\", { data: this.scrollTop });\n }\n };\n VScrollBar.prototype.setScrollTop = function (scrollTop) {\n this.scrollTop = scrollTop;\n if (scrollTop < 0)\n scrollTop = 0;\n this.thumbTop = scrollTop * (this.slideHeight - this.thumbHeight) / (this.pageHeight - this.viewHeight);\n this.inner.style.top = this.thumbTop + \"px\";\n };\n return VScrollBar;\n}(ScrollBar));\nVScrollBar.prototype.setInnerHeight = VScrollBar.prototype.setScrollHeight;\nvar HScrollBar = /** @class */ (function (_super) {\n __extends(HScrollBar, _super);\n function HScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-h') || this;\n _this.scrollLeft = 0;\n _this.scrollWidth = 0;\n _this.height = _this.HScrollHeight;\n _this.inner.style.height = _this.element.style.height = (_this.height || 12) + \"px\";\n _this.renderer = renderer;\n return _this;\n }\n HScrollBar.prototype.onMouseDown = function (eType, e) {\n if (eType !== \"mousedown\")\n return;\n if (event.getButton(e) !== 0 || e.detail === 2) {\n return;\n }\n if (e.target === this.inner) {\n var self = this;\n var mousePageX = e.clientX;\n var onMouseMove = function (e) {\n mousePageX = e.clientX;\n };\n var onMouseUp = function () {\n clearInterval(timerId);\n };\n var startX = e.clientX;\n var startLeft = this.thumbLeft;\n var onScrollInterval = function () {\n if (mousePageX === undefined)\n return;\n var scrollLeft = self.scrollLeftFromThumbLeft(startLeft + mousePageX - startX);\n if (scrollLeft === self.scrollLeft)\n return;\n self._emit(\"scroll\", { data: scrollLeft });\n };\n event.capture(this.inner, onMouseMove, onMouseUp);\n var timerId = setInterval(onScrollInterval, 20);\n return event.preventDefault(e);\n }\n var left = e.clientX - this.element.getBoundingClientRect().left - this.thumbWidth / 2;\n this._emit(\"scroll\", { data: this.scrollLeftFromThumbLeft(left) });\n return event.preventDefault(e);\n };\n HScrollBar.prototype.getHeight = function () {\n return this.isVisible ? this.height : 0;\n };\n HScrollBar.prototype.scrollLeftFromThumbLeft = function (thumbLeft) {\n var scrollLeft = thumbLeft * (this.pageWidth - this.viewWidth) / (this.slideWidth - this.thumbWidth);\n scrollLeft = scrollLeft >> 0;\n if (scrollLeft < 0) {\n scrollLeft = 0;\n }\n else if (scrollLeft > this.pageWidth - this.viewWidth) {\n scrollLeft = this.pageWidth - this.viewWidth;\n }\n return scrollLeft;\n };\n HScrollBar.prototype.setWidth = function (width) {\n this.width = Math.max(0, width);\n this.element.style.width = this.width + \"px\";\n this.slideWidth = this.width;\n this.viewWidth = this.width;\n this.setScrollWidth(this.pageWidth, true);\n };\n HScrollBar.prototype.setScrollWidth = function (width, force) {\n if (this.pageWidth === width && !force)\n return;\n this.pageWidth = width;\n this.thumbWidth = this.slideWidth * this.viewWidth / this.pageWidth;\n if (this.thumbWidth > this.slideWidth)\n this.thumbWidth = this.slideWidth;\n if (this.thumbWidth < 15)\n this.thumbWidth = 15;\n this.inner.style.width = this.thumbWidth + \"px\";\n if (this.scrollLeft > (this.pageWidth - this.viewWidth)) {\n this.scrollLeft = (this.pageWidth - this.viewWidth);\n if (this.scrollLeft < 0)\n this.scrollLeft = 0;\n this._emit(\"scroll\", { data: this.scrollLeft });\n }\n };\n HScrollBar.prototype.setScrollLeft = function (scrollLeft) {\n this.scrollLeft = scrollLeft;\n if (scrollLeft < 0)\n scrollLeft = 0;\n this.thumbLeft = scrollLeft * (this.slideWidth - this.thumbWidth) / (this.pageWidth - this.viewWidth);\n this.inner.style.left = (this.thumbLeft) + \"px\";\n };\n return HScrollBar;\n}(ScrollBar));\nHScrollBar.prototype.setInnerWidth = HScrollBar.prototype.setScrollWidth;\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n\n});\n\nace.define(\"ace/renderloop\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"], function(require, exports, module){\"use strict\";\nvar event = require(\"./lib/event\");\nvar RenderLoop = /** @class */ (function () {\n function RenderLoop(onRender, win) {\n this.onRender = onRender;\n this.pending = false;\n this.changes = 0;\n this.$recursionLimit = 2;\n this.window = win || window;\n var _self = this;\n this._flush = function (ts) {\n _self.pending = false;\n var changes = _self.changes;\n if (changes) {\n event.blockIdle(100);\n _self.changes = 0;\n _self.onRender(changes);\n }\n if (_self.changes) {\n if (_self.$recursionLimit-- < 0)\n return;\n _self.schedule();\n }\n else {\n _self.$recursionLimit = 2;\n }\n };\n }\n RenderLoop.prototype.schedule = function (change) {\n this.changes = this.changes | change;\n if (this.changes && !this.pending) {\n event.nextFrame(this._flush);\n this.pending = true;\n }\n };\n RenderLoop.prototype.clear = function (change) {\n var changes = this.changes;\n this.changes = 0;\n return changes;\n };\n return RenderLoop;\n}());\nexports.RenderLoop = RenderLoop;\n\n});\n\nace.define(\"ace/layer/font_metrics\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar CHAR_COUNT = 512;\nvar USE_OBSERVER = typeof ResizeObserver == \"function\";\nvar L = 200;\nvar FontMetrics = /** @class */ (function () {\n function FontMetrics(parentEl) {\n this.el = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.el.style, true);\n this.$main = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$main.style);\n this.$measureNode = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$measureNode.style);\n this.el.appendChild(this.$main);\n this.el.appendChild(this.$measureNode);\n parentEl.appendChild(this.el);\n this.$measureNode.textContent = lang.stringRepeat(\"X\", CHAR_COUNT);\n this.$characterSize = { width: 0, height: 0 };\n if (USE_OBSERVER)\n this.$addObserver();\n else\n this.checkForSizeChanges();\n }\n FontMetrics.prototype.$setMeasureNodeStyles = function (style, isRoot) {\n style.width = style.height = \"auto\";\n style.left = style.top = \"0px\";\n style.visibility = \"hidden\";\n style.position = \"absolute\";\n style.whiteSpace = \"pre\";\n if (useragent.isIE < 8) {\n style[\"font-family\"] = \"inherit\";\n }\n else {\n style.font = \"inherit\";\n }\n style.overflow = isRoot ? \"hidden\" : \"visible\";\n };\n FontMetrics.prototype.checkForSizeChanges = function (size) {\n if (size === undefined)\n size = this.$measureSizes();\n if (size && (this.$characterSize.width !== size.width || this.$characterSize.height !== size.height)) {\n this.$measureNode.style.fontWeight = \"bold\";\n var boldSize = this.$measureSizes();\n this.$measureNode.style.fontWeight = \"\";\n this.$characterSize = size;\n this.charSizes = Object.create(null);\n this.allowBoldFonts = boldSize && boldSize.width === size.width && boldSize.height === size.height;\n this._emit(\"changeCharacterSize\", { data: size });\n }\n };\n FontMetrics.prototype.$addObserver = function () {\n var self = this;\n this.$observer = new window.ResizeObserver(function (e) {\n self.checkForSizeChanges();\n });\n this.$observer.observe(this.$measureNode);\n };\n FontMetrics.prototype.$pollSizeChanges = function () {\n if (this.$pollSizeChangesTimer || this.$observer)\n return this.$pollSizeChangesTimer;\n var self = this;\n return this.$pollSizeChangesTimer = event.onIdle(function cb() {\n self.checkForSizeChanges();\n event.onIdle(cb, 500);\n }, 500);\n };\n FontMetrics.prototype.setPolling = function (val) {\n if (val) {\n this.$pollSizeChanges();\n }\n else if (this.$pollSizeChangesTimer) {\n clearInterval(this.$pollSizeChangesTimer);\n this.$pollSizeChangesTimer = 0;\n }\n };\n FontMetrics.prototype.$measureSizes = function (node) {\n var size = {\n height: (node || this.$measureNode).clientHeight,\n width: (node || this.$measureNode).clientWidth / CHAR_COUNT\n };\n if (size.width === 0 || size.height === 0)\n return null;\n return size;\n };\n FontMetrics.prototype.$measureCharWidth = function (ch) {\n this.$main.textContent = lang.stringRepeat(ch, CHAR_COUNT);\n var rect = this.$main.getBoundingClientRect();\n return rect.width / CHAR_COUNT;\n };\n FontMetrics.prototype.getCharacterWidth = function (ch) {\n var w = this.charSizes[ch];\n if (w === undefined) {\n w = this.charSizes[ch] = this.$measureCharWidth(ch) / this.$characterSize.width;\n }\n return w;\n };\n FontMetrics.prototype.destroy = function () {\n clearInterval(this.$pollSizeChangesTimer);\n if (this.$observer)\n this.$observer.disconnect();\n if (this.el && this.el.parentNode)\n this.el.parentNode.removeChild(this.el);\n };\n FontMetrics.prototype.$getZoom = function (element) {\n if (!element || !element.parentElement)\n return 1;\n return (window.getComputedStyle(element).zoom || 1) * this.$getZoom(element.parentElement);\n };\n FontMetrics.prototype.$initTransformMeasureNodes = function () {\n var t = function (t, l) {\n return [\"div\", {\n style: \"position: absolute;top:\" + t + \"px;left:\" + l + \"px;\"\n }];\n };\n this.els = dom.buildDom([t(0, 0), t(L, 0), t(0, L), t(L, L)], this.el);\n };\n FontMetrics.prototype.transformCoordinates = function (clientPos, elPos) {\n if (clientPos) {\n var zoom = this.$getZoom(this.el);\n clientPos = mul(1 / zoom, clientPos);\n }\n function solve(l1, l2, r) {\n var det = l1[1] * l2[0] - l1[0] * l2[1];\n return [\n (-l2[1] * r[0] + l2[0] * r[1]) / det,\n (+l1[1] * r[0] - l1[0] * r[1]) / det\n ];\n }\n function sub(a, b) { return [a[0] - b[0], a[1] - b[1]]; }\n function add(a, b) { return [a[0] + b[0], a[1] + b[1]]; }\n function mul(a, b) { return [a * b[0], a * b[1]]; }\n if (!this.els)\n this.$initTransformMeasureNodes();\n function p(el) {\n var r = el.getBoundingClientRect();\n return [r.left, r.top];\n }\n var a = p(this.els[0]);\n var b = p(this.els[1]);\n var c = p(this.els[2]);\n var d = p(this.els[3]);\n var h = solve(sub(d, b), sub(d, c), sub(add(b, c), add(d, a)));\n var m1 = mul(1 + h[0], sub(b, a));\n var m2 = mul(1 + h[1], sub(c, a));\n if (elPos) {\n var x = elPos;\n var k = h[0] * x[0] / L + h[1] * x[1] / L + 1;\n var ut = add(mul(x[0], m1), mul(x[1], m2));\n return add(mul(1 / k / L, ut), a);\n }\n var u = sub(clientPos, a);\n var f = solve(sub(m1, mul(h[0], u)), sub(m2, mul(h[1], u)), u);\n return mul(L, f);\n };\n return FontMetrics;\n}());\nFontMetrics.prototype.$characterSize = { width: 0, height: 0 };\noop.implement(FontMetrics.prototype, EventEmitter);\nexports.FontMetrics = FontMetrics;\n\n});\n\nace.define(\"ace/css/editor-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){/*\nstyles = []\nfor (var i = 1; i < 16; i++) {\n styles.push(\".ace_br\" + i + \"{\" + (\n [\"top-left\", \"top-right\", \"bottom-right\", \"bottom-left\"]\n ).map(function(x, j) {\n return i & (1< .ace_line, .ace_text-layer > .ace_line_group {\\n contain: style size layout;\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n}\\n\\n.ace_hidpi .ace_text-layer,\\n.ace_hidpi .ace_gutter-layer,\\n.ace_hidpi .ace_content,\\n.ace_hidpi .ace_gutter {\\n contain: strict;\\n}\\n.ace_hidpi .ace_text-layer > .ace_line, \\n.ace_hidpi .ace_text-layer > .ace_line_group {\\n contain: strict;\\n}\\n\\n.ace_cjk {\\n display: inline-block;\\n text-align: center;\\n}\\n\\n.ace_cursor-layer {\\n z-index: 4;\\n}\\n\\n.ace_cursor {\\n z-index: 4;\\n position: absolute;\\n box-sizing: border-box;\\n border-left: 2px solid;\\n /* workaround for smooth cursor repaintng whole screen in chrome */\\n transform: translatez(0);\\n}\\n\\n.ace_multiselect .ace_cursor {\\n border-left-width: 1px;\\n}\\n\\n.ace_slim-cursors .ace_cursor {\\n border-left-width: 1px;\\n}\\n\\n.ace_overwrite-cursors .ace_cursor {\\n border-left-width: 0;\\n border-bottom: 1px solid;\\n}\\n\\n.ace_hidden-cursors .ace_cursor {\\n opacity: 0.2;\\n}\\n\\n.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {\\n opacity: 0;\\n}\\n\\n.ace_smooth-blinking .ace_cursor {\\n transition: opacity 0.18s;\\n}\\n\\n.ace_animate-blinking .ace_cursor {\\n animation-duration: 1000ms;\\n animation-timing-function: step-end;\\n animation-name: blink-ace-animate;\\n animation-iteration-count: infinite;\\n}\\n\\n.ace_animate-blinking.ace_smooth-blinking .ace_cursor {\\n animation-duration: 1000ms;\\n animation-timing-function: ease-in-out;\\n animation-name: blink-ace-animate-smooth;\\n}\\n \\n@keyframes blink-ace-animate {\\n from, to { opacity: 1; }\\n 60% { opacity: 0; }\\n}\\n\\n@keyframes blink-ace-animate-smooth {\\n from, to { opacity: 1; }\\n 45% { opacity: 1; }\\n 60% { opacity: 0; }\\n 85% { opacity: 0; }\\n}\\n\\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\\n position: absolute;\\n z-index: 3;\\n}\\n\\n.ace_marker-layer .ace_selection {\\n position: absolute;\\n z-index: 5;\\n}\\n\\n.ace_marker-layer .ace_bracket {\\n position: absolute;\\n z-index: 6;\\n}\\n\\n.ace_marker-layer .ace_error_bracket {\\n position: absolute;\\n border-bottom: 1px solid #DE5555;\\n border-radius: 0;\\n}\\n\\n.ace_marker-layer .ace_active-line {\\n position: absolute;\\n z-index: 2;\\n}\\n\\n.ace_marker-layer .ace_selected-word {\\n position: absolute;\\n z-index: 4;\\n box-sizing: border-box;\\n}\\n\\n.ace_line .ace_fold {\\n box-sizing: border-box;\\n\\n display: inline-block;\\n height: 11px;\\n margin-top: -2px;\\n vertical-align: middle;\\n\\n background-image:\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=\\\");\\n background-repeat: no-repeat, repeat-x;\\n background-position: center center, top left;\\n color: transparent;\\n\\n border: 1px solid black;\\n border-radius: 2px;\\n\\n cursor: pointer;\\n pointer-events: auto;\\n}\\n\\n.ace_dark .ace_fold {\\n}\\n\\n.ace_fold:hover{\\n background-image:\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC\\\");\\n}\\n\\n.ace_tooltip {\\n background-color: #f5f5f5;\\n border: 1px solid gray;\\n border-radius: 1px;\\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\\n color: black;\\n max-width: 100%;\\n padding: 3px 4px;\\n position: fixed;\\n z-index: 999999;\\n box-sizing: border-box;\\n cursor: default;\\n white-space: pre-wrap;\\n word-wrap: break-word;\\n line-height: normal;\\n font-style: normal;\\n font-weight: normal;\\n letter-spacing: normal;\\n pointer-events: none;\\n overflow: auto;\\n max-width: min(60em, 66vw);\\n}\\n.ace_tooltip pre {\\n white-space: pre-wrap;\\n}\\n\\n.ace_tooltip.ace_dark {\\n background-color: #636363;\\n color: #fff;\\n}\\n\\n.ace_tooltip:focus {\\n outline: 1px solid #5E9ED6;\\n}\\n\\n.ace_icon {\\n display: inline-block;\\n width: 18px;\\n vertical-align: top;\\n}\\n\\n.ace_icon_svg {\\n display: inline-block;\\n width: 12px;\\n vertical-align: top;\\n -webkit-mask-repeat: no-repeat;\\n -webkit-mask-size: 12px;\\n -webkit-mask-position: center;\\n}\\n\\n.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons {\\n padding-right: 13px;\\n}\\n\\n.ace_fold-widget {\\n box-sizing: border-box;\\n\\n margin: 0 -12px 0 1px;\\n display: none;\\n width: 11px;\\n vertical-align: top;\\n\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==\\\");\\n background-repeat: no-repeat;\\n background-position: center;\\n\\n border-radius: 3px;\\n \\n border: 1px solid transparent;\\n cursor: pointer;\\n}\\n\\n.ace_folding-enabled .ace_fold-widget {\\n display: inline-block; \\n}\\n\\n.ace_fold-widget.ace_end {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==\\\");\\n}\\n\\n.ace_fold-widget.ace_closed {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==\\\");\\n}\\n\\n.ace_fold-widget:hover {\\n border: 1px solid rgba(0, 0, 0, 0.3);\\n background-color: rgba(255, 255, 255, 0.2);\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\\n}\\n\\n.ace_fold-widget:active {\\n border: 1px solid rgba(0, 0, 0, 0.4);\\n background-color: rgba(0, 0, 0, 0.05);\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\\n}\\n/**\\n * Dark version for fold widgets\\n */\\n.ace_dark .ace_fold-widget {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\\\");\\n}\\n.ace_dark .ace_fold-widget.ace_end {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\\\");\\n}\\n.ace_dark .ace_fold-widget.ace_closed {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\\\");\\n}\\n.ace_dark .ace_fold-widget:hover {\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.ace_dark .ace_fold-widget:active {\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\n}\\n\\n.ace_inline_button {\\n border: 1px solid lightgray;\\n display: inline-block;\\n margin: -1px 8px;\\n padding: 0 5px;\\n pointer-events: auto;\\n cursor: pointer;\\n}\\n.ace_inline_button:hover {\\n border-color: gray;\\n background: rgba(200,200,200,0.2);\\n display: inline-block;\\n pointer-events: auto;\\n}\\n\\n.ace_fold-widget.ace_invalid {\\n background-color: #FFB4B4;\\n border-color: #DE5555;\\n}\\n\\n.ace_fade-fold-widgets .ace_fold-widget {\\n transition: opacity 0.4s ease 0.05s;\\n opacity: 0;\\n}\\n\\n.ace_fade-fold-widgets:hover .ace_fold-widget {\\n transition: opacity 0.05s ease 0.05s;\\n opacity:1;\\n}\\n\\n.ace_underline {\\n text-decoration: underline;\\n}\\n\\n.ace_bold {\\n font-weight: bold;\\n}\\n\\n.ace_nobold .ace_bold {\\n font-weight: normal;\\n}\\n\\n.ace_italic {\\n font-style: italic;\\n}\\n\\n\\n.ace_error-marker {\\n background-color: rgba(255, 0, 0,0.2);\\n position: absolute;\\n z-index: 9;\\n}\\n\\n.ace_highlight-marker {\\n background-color: rgba(255, 255, 0,0.2);\\n position: absolute;\\n z-index: 8;\\n}\\n\\n.ace_mobile-menu {\\n position: absolute;\\n line-height: 1.5;\\n border-radius: 4px;\\n -ms-user-select: none;\\n -moz-user-select: none;\\n -webkit-user-select: none;\\n user-select: none;\\n background: white;\\n box-shadow: 1px 3px 2px grey;\\n border: 1px solid #dcdcdc;\\n color: black;\\n}\\n.ace_dark > .ace_mobile-menu {\\n background: #333;\\n color: #ccc;\\n box-shadow: 1px 3px 2px grey;\\n border: 1px solid #444;\\n\\n}\\n.ace_mobile-button {\\n padding: 2px;\\n cursor: pointer;\\n overflow: hidden;\\n}\\n.ace_mobile-button:hover {\\n background-color: #eee;\\n opacity:1;\\n}\\n.ace_mobile-button:active {\\n background-color: #ddd;\\n}\\n\\n.ace_placeholder {\\n font-family: arial;\\n transform: scale(0.9);\\n transform-origin: left;\\n white-space: pre;\\n opacity: 0.7;\\n margin: 0 10px;\\n}\\n\\n.ace_ghost_text {\\n opacity: 0.5;\\n font-style: italic;\\n white-space: pre;\\n}\\n\\n.ace_screenreader-only {\\n position:absolute;\\n left:-10000px;\\n top:auto;\\n width:1px;\\n height:1px;\\n overflow:hidden;\\n}\";\n\n});\n\nace.define(\"ace/layer/decorators\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar oop = require(\"../lib/oop\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar Decorator = /** @class */ (function () {\n function Decorator(parent, renderer) {\n this.canvas = dom.createElement(\"canvas\");\n this.renderer = renderer;\n this.pixelRatio = 1;\n this.maxHeight = renderer.layerConfig.maxHeight;\n this.lineHeight = renderer.layerConfig.lineHeight;\n this.canvasHeight = parent.parent.scrollHeight;\n this.heightRatio = this.canvasHeight / this.maxHeight;\n this.canvasWidth = parent.width;\n this.minDecorationHeight = (2 * this.pixelRatio) | 0;\n this.halfMinDecorationHeight = (this.minDecorationHeight / 2) | 0;\n this.canvas.width = this.canvasWidth;\n this.canvas.height = this.canvasHeight;\n this.canvas.style.top = 0 + \"px\";\n this.canvas.style.right = 0 + \"px\";\n this.canvas.style.zIndex = 7 + \"px\";\n this.canvas.style.position = \"absolute\";\n this.colors = {};\n this.colors.dark = {\n \"error\": \"rgba(255, 18, 18, 1)\",\n \"warning\": \"rgba(18, 136, 18, 1)\",\n \"info\": \"rgba(18, 18, 136, 1)\"\n };\n this.colors.light = {\n \"error\": \"rgb(255,51,51)\",\n \"warning\": \"rgb(32,133,72)\",\n \"info\": \"rgb(35,68,138)\"\n };\n parent.element.appendChild(this.canvas);\n }\n Decorator.prototype.$updateDecorators = function (config) {\n var colors = (this.renderer.theme.isDark === true) ? this.colors.dark : this.colors.light;\n if (config) {\n this.maxHeight = config.maxHeight;\n this.lineHeight = config.lineHeight;\n this.canvasHeight = config.height;\n var allLineHeight = (config.lastRow + 1) * this.lineHeight;\n if (allLineHeight < this.canvasHeight) {\n this.heightRatio = 1;\n }\n else {\n this.heightRatio = this.canvasHeight / this.maxHeight;\n }\n }\n var ctx = this.canvas.getContext(\"2d\");\n function compare(a, b) {\n if (a.priority < b.priority)\n return -1;\n if (a.priority > b.priority)\n return 1;\n return 0;\n }\n var annotations = this.renderer.session.$annotations;\n ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n if (annotations) {\n var priorities = {\n \"info\": 1,\n \"warning\": 2,\n \"error\": 3\n };\n annotations.forEach(function (item) {\n item.priority = priorities[item.type] || null;\n });\n annotations = annotations.sort(compare);\n var foldData = this.renderer.session.$foldData;\n for (var i = 0; i < annotations.length; i++) {\n var row = annotations[i].row;\n var compensateFold = this.compensateFoldRows(row, foldData);\n var currentY = Math.round((row - compensateFold) * this.lineHeight * this.heightRatio);\n var y1 = Math.round(((row - compensateFold) * this.lineHeight * this.heightRatio));\n var y2 = Math.round((((row - compensateFold) * this.lineHeight + this.lineHeight) * this.heightRatio));\n var height = y2 - y1;\n if (height < this.minDecorationHeight) {\n var yCenter = ((y1 + y2) / 2) | 0;\n if (yCenter < this.halfMinDecorationHeight) {\n yCenter = this.halfMinDecorationHeight;\n }\n else if (yCenter + this.halfMinDecorationHeight > this.canvasHeight) {\n yCenter = this.canvasHeight - this.halfMinDecorationHeight;\n }\n y1 = Math.round(yCenter - this.halfMinDecorationHeight);\n y2 = Math.round(yCenter + this.halfMinDecorationHeight);\n }\n ctx.fillStyle = colors[annotations[i].type] || null;\n ctx.fillRect(0, currentY, this.canvasWidth, y2 - y1);\n }\n }\n var cursor = this.renderer.session.selection.getCursor();\n if (cursor) {\n var compensateFold = this.compensateFoldRows(cursor.row, foldData);\n var currentY = Math.round((cursor.row - compensateFold) * this.lineHeight * this.heightRatio);\n ctx.fillStyle = \"rgba(0, 0, 0, 0.5)\";\n ctx.fillRect(0, currentY, this.canvasWidth, 2);\n }\n };\n Decorator.prototype.compensateFoldRows = function (row, foldData) {\n var compensateFold = 0;\n if (foldData && foldData.length > 0) {\n for (var j = 0; j < foldData.length; j++) {\n if (row > foldData[j].start.row && row < foldData[j].end.row) {\n compensateFold += row - foldData[j].start.row;\n }\n else if (row >= foldData[j].end.row) {\n compensateFold += foldData[j].end.row - foldData[j].start.row;\n }\n }\n }\n return compensateFold;\n };\n return Decorator;\n}());\noop.implement(Decorator.prototype, EventEmitter);\nexports.Decorator = Decorator;\n\n});\n\nace.define(\"ace/virtual_renderer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/config\",\"ace/layer/gutter\",\"ace/layer/marker\",\"ace/layer/text\",\"ace/layer/cursor\",\"ace/scrollbar\",\"ace/scrollbar\",\"ace/scrollbar_custom\",\"ace/scrollbar_custom\",\"ace/renderloop\",\"ace/layer/font_metrics\",\"ace/lib/event_emitter\",\"ace/css/editor-css\",\"ace/layer/decorators\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar lang = require(\"./lib/lang\");\nvar config = require(\"./config\");\nvar GutterLayer = require(\"./layer/gutter\").Gutter;\nvar MarkerLayer = require(\"./layer/marker\").Marker;\nvar TextLayer = require(\"./layer/text\").Text;\nvar CursorLayer = require(\"./layer/cursor\").Cursor;\nvar HScrollBar = require(\"./scrollbar\").HScrollBar;\nvar VScrollBar = require(\"./scrollbar\").VScrollBar;\nvar HScrollBarCustom = require(\"./scrollbar_custom\").HScrollBar;\nvar VScrollBarCustom = require(\"./scrollbar_custom\").VScrollBar;\nvar RenderLoop = require(\"./renderloop\").RenderLoop;\nvar FontMetrics = require(\"./layer/font_metrics\").FontMetrics;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar editorCss = require(\"./css/editor-css\");\nvar Decorator = require(\"./layer/decorators\").Decorator;\nvar useragent = require(\"./lib/useragent\");\ndom.importCssString(editorCss, \"ace_editor.css\", false);\nvar VirtualRenderer = /** @class */ (function () {\n function VirtualRenderer(container, theme) {\n var _self = this;\n this.container = container || dom.createElement(\"div\");\n dom.addCssClass(this.container, \"ace_editor\");\n if (dom.HI_DPI)\n dom.addCssClass(this.container, \"ace_hidpi\");\n this.setTheme(theme);\n if (config.get(\"useStrictCSP\") == null)\n config.set(\"useStrictCSP\", false);\n this.$gutter = dom.createElement(\"div\");\n this.$gutter.className = \"ace_gutter\";\n this.container.appendChild(this.$gutter);\n this.$gutter.setAttribute(\"aria-hidden\", true);\n this.scroller = dom.createElement(\"div\");\n this.scroller.className = \"ace_scroller\";\n this.container.appendChild(this.scroller);\n this.content = dom.createElement(\"div\");\n this.content.className = \"ace_content\";\n this.scroller.appendChild(this.content);\n this.$gutterLayer = new GutterLayer(this.$gutter);\n this.$gutterLayer.on(\"changeGutterWidth\", this.onGutterResize.bind(this));\n this.$markerBack = new MarkerLayer(this.content);\n var textLayer = this.$textLayer = new TextLayer(this.content);\n this.canvas = textLayer.element;\n this.$markerFront = new MarkerLayer(this.content);\n this.$cursorLayer = new CursorLayer(this.content);\n this.$horizScroll = false;\n this.$vScroll = false;\n this.scrollBar =\n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.on(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.on(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n this.scrollTop = 0;\n this.scrollLeft = 0;\n this.cursorPos = {\n row: 0,\n column: 0\n };\n this.$fontMetrics = new FontMetrics(this.container);\n this.$textLayer.$setFontMetrics(this.$fontMetrics);\n this.$textLayer.on(\"changeCharacterSize\", function (e) {\n _self.updateCharacterSize();\n _self.onResize(true, _self.gutterWidth, _self.$size.width, _self.$size.height);\n _self._signal(\"changeCharacterSize\", e);\n });\n this.$size = {\n width: 0,\n height: 0,\n scrollerHeight: 0,\n scrollerWidth: 0,\n $dirty: true\n };\n this.layerConfig = {\n width: 1,\n padding: 0,\n firstRow: 0,\n firstRowScreen: 0,\n lastRow: 0,\n lineHeight: 0,\n characterWidth: 0,\n minHeight: 1,\n maxHeight: 1,\n offset: 0,\n height: 1,\n gutterOffset: 1\n };\n this.scrollMargin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n this.margin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n this.$keepTextAreaAtCursor = !useragent.isIOS;\n this.$loop = new RenderLoop(this.$renderChanges.bind(this), this.container.ownerDocument.defaultView);\n this.$loop.schedule(this.CHANGE_FULL);\n this.updateCharacterSize();\n this.setPadding(4);\n this.$addResizeObserver();\n config.resetOptions(this);\n config._signal(\"renderer\", this);\n }\n VirtualRenderer.prototype.updateCharacterSize = function () {\n if (this.$textLayer.allowBoldFonts != this.$allowBoldFonts) {\n this.$allowBoldFonts = this.$textLayer.allowBoldFonts;\n this.setStyle(\"ace_nobold\", !this.$allowBoldFonts);\n }\n this.layerConfig.characterWidth =\n this.characterWidth = this.$textLayer.getCharacterWidth();\n this.layerConfig.lineHeight =\n this.lineHeight = this.$textLayer.getLineHeight();\n this.$updatePrintMargin();\n dom.setStyle(this.scroller.style, \"line-height\", this.lineHeight + \"px\");\n };\n VirtualRenderer.prototype.setSession = function (session) {\n if (this.session)\n this.session.doc.off(\"changeNewLineMode\", this.onChangeNewLineMode);\n this.session = session;\n if (session && this.scrollMargin.top && session.getScrollTop() <= 0)\n session.setScrollTop(-this.scrollMargin.top);\n this.$cursorLayer.setSession(session);\n this.$markerBack.setSession(session);\n this.$markerFront.setSession(session);\n this.$gutterLayer.setSession(session);\n this.$textLayer.setSession(session);\n if (!session)\n return;\n this.$loop.schedule(this.CHANGE_FULL);\n this.session.$setFontMetrics(this.$fontMetrics);\n this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null;\n this.onChangeNewLineMode = this.onChangeNewLineMode.bind(this);\n this.onChangeNewLineMode();\n this.session.doc.on(\"changeNewLineMode\", this.onChangeNewLineMode);\n };\n VirtualRenderer.prototype.updateLines = function (firstRow, lastRow, force) {\n if (lastRow === undefined)\n lastRow = Infinity;\n if (!this.$changedLines) {\n this.$changedLines = {\n firstRow: firstRow,\n lastRow: lastRow\n };\n }\n else {\n if (this.$changedLines.firstRow > firstRow)\n this.$changedLines.firstRow = firstRow;\n if (this.$changedLines.lastRow < lastRow)\n this.$changedLines.lastRow = lastRow;\n }\n if (this.$changedLines.lastRow < this.layerConfig.firstRow) {\n if (force)\n this.$changedLines.lastRow = this.layerConfig.lastRow;\n else\n return;\n }\n if (this.$changedLines.firstRow > this.layerConfig.lastRow)\n return;\n this.$loop.schedule(this.CHANGE_LINES);\n };\n VirtualRenderer.prototype.onChangeNewLineMode = function () {\n this.$loop.schedule(this.CHANGE_TEXT);\n this.$textLayer.$updateEolChar();\n this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR);\n };\n VirtualRenderer.prototype.onChangeTabSize = function () {\n this.$loop.schedule(this.CHANGE_TEXT | this.CHANGE_MARKER);\n this.$textLayer.onChangeTabSize();\n };\n VirtualRenderer.prototype.updateText = function () {\n this.$loop.schedule(this.CHANGE_TEXT);\n };\n VirtualRenderer.prototype.updateFull = function (force) {\n if (force)\n this.$renderChanges(this.CHANGE_FULL, true);\n else\n this.$loop.schedule(this.CHANGE_FULL);\n };\n VirtualRenderer.prototype.updateFontSize = function () {\n this.$textLayer.checkForSizeChanges();\n };\n VirtualRenderer.prototype.$updateSizeAsync = function () {\n if (this.$loop.pending)\n this.$size.$dirty = true;\n else\n this.onResize();\n };\n VirtualRenderer.prototype.onResize = function (force, gutterWidth, width, height) {\n if (this.resizing > 2)\n return;\n else if (this.resizing > 0)\n this.resizing++;\n else\n this.resizing = force ? 1 : 0;\n var el = this.container;\n if (!height)\n height = el.clientHeight || el.scrollHeight;\n if (!width)\n width = el.clientWidth || el.scrollWidth;\n var changes = this.$updateCachedSize(force, gutterWidth, width, height);\n if (this.$resizeTimer)\n this.$resizeTimer.cancel();\n if (!this.$size.scrollerHeight || (!width && !height))\n return this.resizing = 0;\n if (force)\n this.$gutterLayer.$padding = null;\n if (force)\n this.$renderChanges(changes | this.$changes, true);\n else\n this.$loop.schedule(changes | this.$changes);\n if (this.resizing)\n this.resizing = 0;\n this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null;\n if (this.$customScrollbar) {\n this.$updateCustomScrollbar(true);\n }\n };\n VirtualRenderer.prototype.$updateCachedSize = function (force, gutterWidth, width, height) {\n height -= (this.$extraHeight || 0);\n var changes = 0;\n var size = this.$size;\n var oldSize = {\n width: size.width,\n height: size.height,\n scrollerHeight: size.scrollerHeight,\n scrollerWidth: size.scrollerWidth\n };\n if (height && (force || size.height != height)) {\n size.height = height;\n changes |= this.CHANGE_SIZE;\n size.scrollerHeight = size.height;\n if (this.$horizScroll)\n size.scrollerHeight -= this.scrollBarH.getHeight();\n this.scrollBarV.setHeight(size.scrollerHeight);\n this.scrollBarV.element.style.bottom = this.scrollBarH.getHeight() + \"px\";\n changes = changes | this.CHANGE_SCROLL;\n }\n if (width && (force || size.width != width)) {\n changes |= this.CHANGE_SIZE;\n size.width = width;\n if (gutterWidth == null)\n gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n this.gutterWidth = gutterWidth;\n dom.setStyle(this.scrollBarH.element.style, \"left\", gutterWidth + \"px\");\n dom.setStyle(this.scroller.style, \"left\", gutterWidth + this.margin.left + \"px\");\n size.scrollerWidth = Math.max(0, width - gutterWidth - this.scrollBarV.getWidth() - this.margin.h);\n dom.setStyle(this.$gutter.style, \"left\", this.margin.left + \"px\");\n var right = this.scrollBarV.getWidth() + \"px\";\n dom.setStyle(this.scrollBarH.element.style, \"right\", right);\n dom.setStyle(this.scroller.style, \"right\", right);\n dom.setStyle(this.scroller.style, \"bottom\", this.scrollBarH.getHeight());\n this.scrollBarH.setWidth(size.scrollerWidth);\n if (this.session && this.session.getUseWrapMode() && this.adjustWrapLimit() || force) {\n changes |= this.CHANGE_FULL;\n }\n }\n size.$dirty = !width || !height;\n if (changes)\n this._signal(\"resize\", oldSize);\n return changes;\n };\n VirtualRenderer.prototype.onGutterResize = function (width) {\n var gutterWidth = this.$showGutter ? width : 0;\n if (gutterWidth != this.gutterWidth)\n this.$changes |= this.$updateCachedSize(true, gutterWidth, this.$size.width, this.$size.height);\n if (this.session.getUseWrapMode() && this.adjustWrapLimit()) {\n this.$loop.schedule(this.CHANGE_FULL);\n }\n else if (this.$size.$dirty) {\n this.$loop.schedule(this.CHANGE_FULL);\n }\n else {\n this.$computeLayerConfig();\n }\n };\n VirtualRenderer.prototype.adjustWrapLimit = function () {\n var availableWidth = this.$size.scrollerWidth - this.$padding * 2;\n var limit = Math.floor(availableWidth / this.characterWidth);\n return this.session.adjustWrapLimit(limit, this.$showPrintMargin && this.$printMarginColumn);\n };\n VirtualRenderer.prototype.setAnimatedScroll = function (shouldAnimate) {\n this.setOption(\"animatedScroll\", shouldAnimate);\n };\n VirtualRenderer.prototype.getAnimatedScroll = function () {\n return this.$animatedScroll;\n };\n VirtualRenderer.prototype.setShowInvisibles = function (showInvisibles) {\n this.setOption(\"showInvisibles\", showInvisibles);\n this.session.$bidiHandler.setShowInvisibles(showInvisibles);\n };\n VirtualRenderer.prototype.getShowInvisibles = function () {\n return this.getOption(\"showInvisibles\");\n };\n VirtualRenderer.prototype.getDisplayIndentGuides = function () {\n return this.getOption(\"displayIndentGuides\");\n };\n VirtualRenderer.prototype.setDisplayIndentGuides = function (display) {\n this.setOption(\"displayIndentGuides\", display);\n };\n VirtualRenderer.prototype.getHighlightIndentGuides = function () {\n return this.getOption(\"highlightIndentGuides\");\n };\n VirtualRenderer.prototype.setHighlightIndentGuides = function (highlight) {\n this.setOption(\"highlightIndentGuides\", highlight);\n };\n VirtualRenderer.prototype.setShowPrintMargin = function (showPrintMargin) {\n this.setOption(\"showPrintMargin\", showPrintMargin);\n };\n VirtualRenderer.prototype.getShowPrintMargin = function () {\n return this.getOption(\"showPrintMargin\");\n };\n VirtualRenderer.prototype.setPrintMarginColumn = function (showPrintMargin) {\n this.setOption(\"printMarginColumn\", showPrintMargin);\n };\n VirtualRenderer.prototype.getPrintMarginColumn = function () {\n return this.getOption(\"printMarginColumn\");\n };\n VirtualRenderer.prototype.getShowGutter = function () {\n return this.getOption(\"showGutter\");\n };\n VirtualRenderer.prototype.setShowGutter = function (show) {\n return this.setOption(\"showGutter\", show);\n };\n VirtualRenderer.prototype.getFadeFoldWidgets = function () {\n return this.getOption(\"fadeFoldWidgets\");\n };\n VirtualRenderer.prototype.setFadeFoldWidgets = function (show) {\n this.setOption(\"fadeFoldWidgets\", show);\n };\n VirtualRenderer.prototype.setHighlightGutterLine = function (shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n VirtualRenderer.prototype.getHighlightGutterLine = function () {\n return this.getOption(\"highlightGutterLine\");\n };\n VirtualRenderer.prototype.$updatePrintMargin = function () {\n if (!this.$showPrintMargin && !this.$printMarginEl)\n return;\n if (!this.$printMarginEl) {\n var containerEl = dom.createElement(\"div\");\n containerEl.className = \"ace_layer ace_print-margin-layer\";\n this.$printMarginEl = dom.createElement(\"div\");\n this.$printMarginEl.className = \"ace_print-margin\";\n containerEl.appendChild(this.$printMarginEl);\n this.content.insertBefore(containerEl, this.content.firstChild);\n }\n var style = this.$printMarginEl.style;\n style.left = Math.round(this.characterWidth * this.$printMarginColumn + this.$padding) + \"px\";\n style.visibility = this.$showPrintMargin ? \"visible\" : \"hidden\";\n if (this.session && this.session.$wrap == -1)\n this.adjustWrapLimit();\n };\n VirtualRenderer.prototype.getContainerElement = function () {\n return this.container;\n };\n VirtualRenderer.prototype.getMouseEventTarget = function () {\n return this.scroller;\n };\n VirtualRenderer.prototype.getTextAreaContainer = function () {\n return this.container;\n };\n VirtualRenderer.prototype.$moveTextAreaToCursor = function () {\n if (this.$isMousePressed)\n return;\n var style = this.textarea.style;\n var composition = this.$composition;\n if (!this.$keepTextAreaAtCursor && !composition) {\n dom.translate(this.textarea, -100, 0);\n return;\n }\n var pixelPos = this.$cursorLayer.$pixelPos;\n if (!pixelPos)\n return;\n if (composition && composition.markerRange)\n pixelPos = this.$cursorLayer.getPixelPosition(composition.markerRange.start, true);\n var config = this.layerConfig;\n var posTop = pixelPos.top;\n var posLeft = pixelPos.left;\n posTop -= config.offset;\n var h = composition && composition.useTextareaForIME || useragent.isMobile ? this.lineHeight : 1;\n if (posTop < 0 || posTop > config.height - h) {\n dom.translate(this.textarea, 0, 0);\n return;\n }\n var w = 1;\n var maxTop = this.$size.height - h;\n if (!composition) {\n posTop += this.lineHeight;\n }\n else {\n if (composition.useTextareaForIME) {\n var val = this.textarea.value;\n w = this.characterWidth * (this.session.$getStringScreenWidth(val)[0]);\n }\n else {\n posTop += this.lineHeight + 2;\n }\n }\n posLeft -= this.scrollLeft;\n if (posLeft > this.$size.scrollerWidth - w)\n posLeft = this.$size.scrollerWidth - w;\n posLeft += this.gutterWidth + this.margin.left;\n dom.setStyle(style, \"height\", h + \"px\");\n dom.setStyle(style, \"width\", w + \"px\");\n dom.translate(this.textarea, Math.min(posLeft, this.$size.scrollerWidth - w), Math.min(posTop, maxTop));\n };\n VirtualRenderer.prototype.getFirstVisibleRow = function () {\n return this.layerConfig.firstRow;\n };\n VirtualRenderer.prototype.getFirstFullyVisibleRow = function () {\n return this.layerConfig.firstRow + (this.layerConfig.offset === 0 ? 0 : 1);\n };\n VirtualRenderer.prototype.getLastFullyVisibleRow = function () {\n var config = this.layerConfig;\n var lastRow = config.lastRow;\n var top = this.session.documentToScreenRow(lastRow, 0) * config.lineHeight;\n if (top - this.session.getScrollTop() > config.height - config.lineHeight)\n return lastRow - 1;\n return lastRow;\n };\n VirtualRenderer.prototype.getLastVisibleRow = function () {\n return this.layerConfig.lastRow;\n };\n VirtualRenderer.prototype.setPadding = function (padding) {\n this.$padding = padding;\n this.$textLayer.setPadding(padding);\n this.$cursorLayer.setPadding(padding);\n this.$markerFront.setPadding(padding);\n this.$markerBack.setPadding(padding);\n this.$loop.schedule(this.CHANGE_FULL);\n this.$updatePrintMargin();\n };\n VirtualRenderer.prototype.setScrollMargin = function (top, bottom, left, right) {\n var sm = this.scrollMargin;\n sm.top = top | 0;\n sm.bottom = bottom | 0;\n sm.right = right | 0;\n sm.left = left | 0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n if (sm.top && this.scrollTop <= 0 && this.session)\n this.session.setScrollTop(-sm.top);\n this.updateFull();\n };\n VirtualRenderer.prototype.setMargin = function (top, bottom, left, right) {\n var sm = this.margin;\n sm.top = top | 0;\n sm.bottom = bottom | 0;\n sm.right = right | 0;\n sm.left = left | 0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n this.$updateCachedSize(true, this.gutterWidth, this.$size.width, this.$size.height);\n this.updateFull();\n };\n VirtualRenderer.prototype.getHScrollBarAlwaysVisible = function () {\n return this.$hScrollBarAlwaysVisible;\n };\n VirtualRenderer.prototype.setHScrollBarAlwaysVisible = function (alwaysVisible) {\n this.setOption(\"hScrollBarAlwaysVisible\", alwaysVisible);\n };\n VirtualRenderer.prototype.getVScrollBarAlwaysVisible = function () {\n return this.$vScrollBarAlwaysVisible;\n };\n VirtualRenderer.prototype.setVScrollBarAlwaysVisible = function (alwaysVisible) {\n this.setOption(\"vScrollBarAlwaysVisible\", alwaysVisible);\n };\n VirtualRenderer.prototype.$updateScrollBarV = function () {\n var scrollHeight = this.layerConfig.maxHeight;\n var scrollerHeight = this.$size.scrollerHeight;\n if (!this.$maxLines && this.$scrollPastEnd) {\n scrollHeight -= (scrollerHeight - this.lineHeight) * this.$scrollPastEnd;\n if (this.scrollTop > scrollHeight - scrollerHeight) {\n scrollHeight = this.scrollTop + scrollerHeight;\n this.scrollBarV.scrollTop = null;\n }\n }\n this.scrollBarV.setScrollHeight(scrollHeight + this.scrollMargin.v);\n this.scrollBarV.setScrollTop(this.scrollTop + this.scrollMargin.top);\n };\n VirtualRenderer.prototype.$updateScrollBarH = function () {\n this.scrollBarH.setScrollWidth(this.layerConfig.width + 2 * this.$padding + this.scrollMargin.h);\n this.scrollBarH.setScrollLeft(this.scrollLeft + this.scrollMargin.left);\n };\n VirtualRenderer.prototype.freeze = function () {\n this.$frozen = true;\n };\n VirtualRenderer.prototype.unfreeze = function () {\n this.$frozen = false;\n };\n VirtualRenderer.prototype.$renderChanges = function (changes, force) {\n if (this.$changes) {\n changes |= this.$changes;\n this.$changes = 0;\n }\n if ((!this.session || !this.container.offsetWidth || this.$frozen) || (!changes && !force)) {\n this.$changes |= changes;\n return;\n }\n if (this.$size.$dirty) {\n this.$changes |= changes;\n return this.onResize(true);\n }\n if (!this.lineHeight) {\n this.$textLayer.checkForSizeChanges();\n }\n this._signal(\"beforeRender\", changes);\n if (this.session && this.session.$bidiHandler)\n this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);\n var config = this.layerConfig;\n if (changes & this.CHANGE_FULL ||\n changes & this.CHANGE_SIZE ||\n changes & this.CHANGE_TEXT ||\n changes & this.CHANGE_LINES ||\n changes & this.CHANGE_SCROLL ||\n changes & this.CHANGE_H_SCROLL) {\n changes |= this.$computeLayerConfig() | this.$loop.clear();\n if (config.firstRow != this.layerConfig.firstRow && config.firstRowScreen == this.layerConfig.firstRowScreen) {\n var st = this.scrollTop + (config.firstRow - Math.max(this.layerConfig.firstRow, 0)) * this.lineHeight;\n if (st > 0) {\n this.scrollTop = st;\n changes = changes | this.CHANGE_SCROLL;\n changes |= this.$computeLayerConfig() | this.$loop.clear();\n }\n }\n config = this.layerConfig;\n this.$updateScrollBarV();\n if (changes & this.CHANGE_H_SCROLL)\n this.$updateScrollBarH();\n dom.translate(this.content, -this.scrollLeft, -config.offset);\n var width = config.width + 2 * this.$padding + \"px\";\n var height = config.minHeight + \"px\";\n dom.setStyle(this.content.style, \"width\", width);\n dom.setStyle(this.content.style, \"height\", height);\n }\n if (changes & this.CHANGE_H_SCROLL) {\n dom.translate(this.content, -this.scrollLeft, -config.offset);\n this.scroller.className = this.scrollLeft <= 0 ? \"ace_scroller \" : \"ace_scroller ace_scroll-left \";\n if (this.enableKeyboardAccessibility)\n this.scroller.className += this.keyboardFocusClassName;\n }\n if (changes & this.CHANGE_FULL) {\n this.$changedLines = null;\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\", changes);\n return;\n }\n if (changes & this.CHANGE_SCROLL) {\n this.$changedLines = null;\n if (changes & this.CHANGE_TEXT || changes & this.CHANGE_LINES)\n this.$textLayer.update(config);\n else\n this.$textLayer.scrollLines(config);\n if (this.$showGutter) {\n if (changes & this.CHANGE_GUTTER || changes & this.CHANGE_LINES)\n this.$gutterLayer.update(config);\n else\n this.$gutterLayer.scrollLines(config);\n }\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\", changes);\n return;\n }\n if (changes & this.CHANGE_TEXT) {\n this.$changedLines = null;\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_LINES) {\n if (this.$updateLines() || (changes & this.CHANGE_GUTTER) && this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_TEXT || changes & this.CHANGE_GUTTER) {\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_CURSOR) {\n if (this.$highlightGutterLine)\n this.$gutterLayer.updateLineHighlight(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n if (changes & this.CHANGE_CURSOR) {\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n }\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_FRONT)) {\n this.$markerFront.update(config);\n }\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_BACK)) {\n this.$markerBack.update(config);\n }\n this._signal(\"afterRender\", changes);\n };\n VirtualRenderer.prototype.$autosize = function () {\n var height = this.session.getScreenLength() * this.lineHeight;\n var maxHeight = this.$maxLines * this.lineHeight;\n var desiredHeight = Math.min(maxHeight, Math.max((this.$minLines || 1) * this.lineHeight, height)) + this.scrollMargin.v + (this.$extraHeight || 0);\n if (this.$horizScroll)\n desiredHeight += this.scrollBarH.getHeight();\n if (this.$maxPixelHeight && desiredHeight > this.$maxPixelHeight)\n desiredHeight = this.$maxPixelHeight;\n var hideScrollbars = desiredHeight <= 2 * this.lineHeight;\n var vScroll = !hideScrollbars && height > maxHeight;\n if (desiredHeight != this.desiredHeight ||\n this.$size.height != this.desiredHeight || vScroll != this.$vScroll) {\n if (vScroll != this.$vScroll) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n var w = this.container.clientWidth;\n this.container.style.height = desiredHeight + \"px\";\n this.$updateCachedSize(true, this.$gutterWidth, w, desiredHeight);\n this.desiredHeight = desiredHeight;\n this._signal(\"autosize\");\n }\n };\n VirtualRenderer.prototype.$computeLayerConfig = function () {\n var session = this.session;\n var size = this.$size;\n var hideScrollbars = size.height <= 2 * this.lineHeight;\n var screenLines = this.session.getScreenLength();\n var maxHeight = screenLines * this.lineHeight;\n var longestLine = this.$getLongestLine();\n var horizScroll = !hideScrollbars && (this.$hScrollBarAlwaysVisible ||\n size.scrollerWidth - longestLine - 2 * this.$padding < 0);\n var hScrollChanged = this.$horizScroll !== horizScroll;\n if (hScrollChanged) {\n this.$horizScroll = horizScroll;\n this.scrollBarH.setVisible(horizScroll);\n }\n var vScrollBefore = this.$vScroll; // autosize can change vscroll value in which case we need to update longestLine\n if (this.$maxLines && this.lineHeight > 1)\n this.$autosize();\n var minHeight = size.scrollerHeight + this.lineHeight;\n var scrollPastEnd = !this.$maxLines && this.$scrollPastEnd\n ? (size.scrollerHeight - this.lineHeight) * this.$scrollPastEnd\n : 0;\n maxHeight += scrollPastEnd;\n var sm = this.scrollMargin;\n this.session.setScrollTop(Math.max(-sm.top, Math.min(this.scrollTop, maxHeight - size.scrollerHeight + sm.bottom)));\n this.session.setScrollLeft(Math.max(-sm.left, Math.min(this.scrollLeft, longestLine + 2 * this.$padding - size.scrollerWidth + sm.right)));\n var vScroll = !hideScrollbars && (this.$vScrollBarAlwaysVisible ||\n size.scrollerHeight - maxHeight + scrollPastEnd < 0 || this.scrollTop > sm.top);\n var vScrollChanged = vScrollBefore !== vScroll;\n if (vScrollChanged) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n var offset = this.scrollTop % this.lineHeight;\n var lineCount = Math.ceil(minHeight / this.lineHeight) - 1;\n var firstRow = Math.max(0, Math.round((this.scrollTop - offset) / this.lineHeight));\n var lastRow = firstRow + lineCount;\n var firstRowScreen, firstRowHeight;\n var lineHeight = this.lineHeight;\n firstRow = session.screenToDocumentRow(firstRow, 0);\n var foldLine = session.getFoldLine(firstRow);\n if (foldLine) {\n firstRow = foldLine.start.row;\n }\n firstRowScreen = session.documentToScreenRow(firstRow, 0);\n firstRowHeight = session.getRowLength(firstRow) * lineHeight;\n lastRow = Math.min(session.screenToDocumentRow(lastRow, 0), session.getLength() - 1);\n minHeight = size.scrollerHeight + session.getRowLength(lastRow) * lineHeight +\n firstRowHeight;\n offset = this.scrollTop - firstRowScreen * lineHeight;\n var changes = 0;\n if (this.layerConfig.width != longestLine || hScrollChanged)\n changes = this.CHANGE_H_SCROLL;\n if (hScrollChanged || vScrollChanged) {\n changes |= this.$updateCachedSize(true, this.gutterWidth, size.width, size.height);\n this._signal(\"scrollbarVisibilityChanged\");\n if (vScrollChanged)\n longestLine = this.$getLongestLine();\n }\n this.layerConfig = {\n width: longestLine,\n padding: this.$padding,\n firstRow: firstRow,\n firstRowScreen: firstRowScreen,\n lastRow: lastRow,\n lineHeight: lineHeight,\n characterWidth: this.characterWidth,\n minHeight: minHeight,\n maxHeight: maxHeight,\n offset: offset,\n gutterOffset: lineHeight ? Math.max(0, Math.ceil((offset + size.height - size.scrollerHeight) / lineHeight)) : 0,\n height: this.$size.scrollerHeight\n };\n if (this.session.$bidiHandler)\n this.session.$bidiHandler.setContentWidth(longestLine - this.$padding);\n return changes;\n };\n VirtualRenderer.prototype.$updateLines = function () {\n if (!this.$changedLines)\n return;\n var firstRow = this.$changedLines.firstRow;\n var lastRow = this.$changedLines.lastRow;\n this.$changedLines = null;\n var layerConfig = this.layerConfig;\n if (firstRow > layerConfig.lastRow + 1) {\n return;\n }\n if (lastRow < layerConfig.firstRow) {\n return;\n }\n if (lastRow === Infinity) {\n if (this.$showGutter)\n this.$gutterLayer.update(layerConfig);\n this.$textLayer.update(layerConfig);\n return;\n }\n this.$textLayer.updateLines(layerConfig, firstRow, lastRow);\n return true;\n };\n VirtualRenderer.prototype.$getLongestLine = function () {\n var charCount = this.session.getScreenWidth();\n if (this.showInvisibles && !this.session.$useWrapMode)\n charCount += 1;\n if (this.$textLayer && charCount > this.$textLayer.MAX_LINE_LENGTH)\n charCount = this.$textLayer.MAX_LINE_LENGTH + 30;\n return Math.max(this.$size.scrollerWidth - 2 * this.$padding, Math.round(charCount * this.characterWidth));\n };\n VirtualRenderer.prototype.updateFrontMarkers = function () {\n this.$markerFront.setMarkers(this.session.getMarkers(true));\n this.$loop.schedule(this.CHANGE_MARKER_FRONT);\n };\n VirtualRenderer.prototype.updateBackMarkers = function () {\n this.$markerBack.setMarkers(this.session.getMarkers());\n this.$loop.schedule(this.CHANGE_MARKER_BACK);\n };\n VirtualRenderer.prototype.addGutterDecoration = function (row, className) {\n this.$gutterLayer.addGutterDecoration(row, className);\n };\n VirtualRenderer.prototype.removeGutterDecoration = function (row, className) {\n this.$gutterLayer.removeGutterDecoration(row, className);\n };\n VirtualRenderer.prototype.updateBreakpoints = function (rows) {\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n VirtualRenderer.prototype.setAnnotations = function (annotations) {\n this.$gutterLayer.setAnnotations(annotations);\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n VirtualRenderer.prototype.updateCursor = function () {\n this.$loop.schedule(this.CHANGE_CURSOR);\n };\n VirtualRenderer.prototype.hideCursor = function () {\n this.$cursorLayer.hideCursor();\n };\n VirtualRenderer.prototype.showCursor = function () {\n this.$cursorLayer.showCursor();\n };\n VirtualRenderer.prototype.scrollSelectionIntoView = function (anchor, lead, offset) {\n this.scrollCursorIntoView(anchor, offset);\n this.scrollCursorIntoView(lead, offset);\n };\n VirtualRenderer.prototype.scrollCursorIntoView = function (cursor, offset, $viewMargin) {\n if (this.$size.scrollerHeight === 0)\n return;\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var newLeft = pos.left;\n var newTop = pos.top;\n var topMargin = $viewMargin && $viewMargin.top || 0;\n var bottomMargin = $viewMargin && $viewMargin.bottom || 0;\n if (this.$scrollAnimation) {\n this.$stopAnimation = true;\n }\n var currentTop = this.$scrollAnimation ? this.session.getScrollTop() : this.scrollTop;\n if (currentTop + topMargin > newTop) {\n if (offset && currentTop + topMargin > newTop + this.lineHeight)\n newTop -= offset * this.$size.scrollerHeight;\n if (newTop === 0)\n newTop = -this.scrollMargin.top;\n this.session.setScrollTop(newTop);\n }\n else if (currentTop + this.$size.scrollerHeight - bottomMargin < newTop + this.lineHeight) {\n if (offset && currentTop + this.$size.scrollerHeight - bottomMargin < newTop - this.lineHeight)\n newTop += offset * this.$size.scrollerHeight;\n this.session.setScrollTop(newTop + this.lineHeight + bottomMargin - this.$size.scrollerHeight);\n }\n var currentLeft = this.scrollLeft;\n var twoCharsWidth = 2 * this.layerConfig.characterWidth;\n if (newLeft - twoCharsWidth < currentLeft) {\n newLeft -= twoCharsWidth;\n if (newLeft < this.$padding + twoCharsWidth) {\n newLeft = -this.scrollMargin.left;\n }\n this.session.setScrollLeft(newLeft);\n }\n else {\n newLeft += twoCharsWidth;\n if (currentLeft + this.$size.scrollerWidth < newLeft + this.characterWidth) {\n this.session.setScrollLeft(Math.round(newLeft + this.characterWidth - this.$size.scrollerWidth));\n }\n else if (currentLeft <= this.$padding && newLeft - currentLeft < this.characterWidth) {\n this.session.setScrollLeft(0);\n }\n }\n };\n VirtualRenderer.prototype.getScrollTop = function () {\n return this.session.getScrollTop();\n };\n VirtualRenderer.prototype.getScrollLeft = function () {\n return this.session.getScrollLeft();\n };\n VirtualRenderer.prototype.getScrollTopRow = function () {\n return this.scrollTop / this.lineHeight;\n };\n VirtualRenderer.prototype.getScrollBottomRow = function () {\n return Math.max(0, Math.floor((this.scrollTop + this.$size.scrollerHeight) / this.lineHeight) - 1);\n };\n VirtualRenderer.prototype.scrollToRow = function (row) {\n this.session.setScrollTop(row * this.lineHeight);\n };\n VirtualRenderer.prototype.alignCursor = function (cursor, alignment) {\n if (typeof cursor == \"number\")\n cursor = { row: cursor, column: 0 };\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var h = this.$size.scrollerHeight - this.lineHeight;\n var offset = pos.top - h * (alignment || 0);\n this.session.setScrollTop(offset);\n return offset;\n };\n VirtualRenderer.prototype.$calcSteps = function (fromValue, toValue) {\n var i = 0;\n var l = this.STEPS;\n var steps = [];\n var func = function (t, x_min, dx) {\n return dx * (Math.pow(t - 1, 3) + 1) + x_min;\n };\n for (i = 0; i < l; ++i)\n steps.push(func(i / this.STEPS, fromValue, toValue - fromValue));\n return steps;\n };\n VirtualRenderer.prototype.scrollToLine = function (line, center, animate, callback) {\n var pos = this.$cursorLayer.getPixelPosition({ row: line, column: 0 });\n var offset = pos.top;\n if (center)\n offset -= this.$size.scrollerHeight / 2;\n var initialScroll = this.scrollTop;\n this.session.setScrollTop(offset);\n if (animate !== false)\n this.animateScrolling(initialScroll, callback);\n };\n VirtualRenderer.prototype.animateScrolling = function (fromValue, callback) {\n var toValue = this.scrollTop;\n if (!this.$animatedScroll)\n return;\n var _self = this;\n if (fromValue == toValue)\n return;\n if (this.$scrollAnimation) {\n var oldSteps = this.$scrollAnimation.steps;\n if (oldSteps.length) {\n fromValue = oldSteps[0];\n if (fromValue == toValue)\n return;\n }\n }\n var steps = _self.$calcSteps(fromValue, toValue);\n this.$scrollAnimation = { from: fromValue, to: toValue, steps: steps };\n clearInterval(this.$timer);\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n function endAnimation() {\n _self.$timer = clearInterval(_self.$timer);\n _self.$scrollAnimation = null;\n _self.$stopAnimation = false;\n callback && callback();\n }\n this.$timer = setInterval(function () {\n if (_self.$stopAnimation) {\n endAnimation();\n return;\n }\n if (!_self.session)\n return clearInterval(_self.$timer);\n if (steps.length) {\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n }\n else if (toValue != null) {\n _self.session.$scrollTop = -1;\n _self.session.setScrollTop(toValue);\n toValue = null;\n }\n else {\n endAnimation();\n }\n }, 10);\n };\n VirtualRenderer.prototype.scrollToY = function (scrollTop) {\n if (this.scrollTop !== scrollTop) {\n this.$loop.schedule(this.CHANGE_SCROLL);\n this.scrollTop = scrollTop;\n }\n };\n VirtualRenderer.prototype.scrollToX = function (scrollLeft) {\n if (this.scrollLeft !== scrollLeft)\n this.scrollLeft = scrollLeft;\n this.$loop.schedule(this.CHANGE_H_SCROLL);\n };\n VirtualRenderer.prototype.scrollTo = function (x, y) {\n this.session.setScrollTop(y);\n this.session.setScrollLeft(x);\n };\n VirtualRenderer.prototype.scrollBy = function (deltaX, deltaY) {\n deltaY && this.session.setScrollTop(this.session.getScrollTop() + deltaY);\n deltaX && this.session.setScrollLeft(this.session.getScrollLeft() + deltaX);\n };\n VirtualRenderer.prototype.isScrollableBy = function (deltaX, deltaY) {\n if (deltaY < 0 && this.session.getScrollTop() >= 1 - this.scrollMargin.top)\n return true;\n if (deltaY > 0 && this.session.getScrollTop() + this.$size.scrollerHeight\n - this.layerConfig.maxHeight < -1 + this.scrollMargin.bottom)\n return true;\n if (deltaX < 0 && this.session.getScrollLeft() >= 1 - this.scrollMargin.left)\n return true;\n if (deltaX > 0 && this.session.getScrollLeft() + this.$size.scrollerWidth\n - this.layerConfig.width < -1 + this.scrollMargin.right)\n return true;\n };\n VirtualRenderer.prototype.pixelToScreenCoordinates = function (x, y) {\n var canvasPos;\n if (this.$hasCssTransforms) {\n canvasPos = { top: 0, left: 0 };\n var p = this.$fontMetrics.transformCoordinates([x, y]);\n x = p[1] - this.gutterWidth - this.margin.left;\n y = p[0];\n }\n else {\n canvasPos = this.scroller.getBoundingClientRect();\n }\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n var offset = offsetX / this.characterWidth;\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n var col = this.$blockCursor ? Math.floor(offset) : Math.round(offset);\n return { row: row, column: col, side: offset - col > 0 ? 1 : -1, offsetX: offsetX };\n };\n VirtualRenderer.prototype.screenToTextCoordinates = function (x, y) {\n var canvasPos;\n if (this.$hasCssTransforms) {\n canvasPos = { top: 0, left: 0 };\n var p = this.$fontMetrics.transformCoordinates([x, y]);\n x = p[1] - this.gutterWidth - this.margin.left;\n y = p[0];\n }\n else {\n canvasPos = this.scroller.getBoundingClientRect();\n }\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n var offset = offsetX / this.characterWidth;\n var col = this.$blockCursor ? Math.floor(offset) : Math.round(offset);\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n return this.session.screenToDocumentPosition(row, Math.max(col, 0), offsetX);\n };\n VirtualRenderer.prototype.textToScreenCoordinates = function (row, column) {\n var canvasPos = this.scroller.getBoundingClientRect();\n var pos = this.session.documentToScreenPosition(row, column);\n var x = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : Math.round(pos.column * this.characterWidth));\n var y = pos.row * this.lineHeight;\n return {\n pageX: canvasPos.left + x - this.scrollLeft,\n pageY: canvasPos.top + y - this.scrollTop\n };\n };\n VirtualRenderer.prototype.visualizeFocus = function () {\n dom.addCssClass(this.container, \"ace_focus\");\n };\n VirtualRenderer.prototype.visualizeBlur = function () {\n dom.removeCssClass(this.container, \"ace_focus\");\n };\n VirtualRenderer.prototype.showComposition = function (composition) {\n this.$composition = composition;\n if (!composition.cssText) {\n composition.cssText = this.textarea.style.cssText;\n }\n if (composition.useTextareaForIME == undefined)\n composition.useTextareaForIME = this.$useTextareaForIME;\n if (this.$useTextareaForIME) {\n dom.addCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = \"\";\n this.$moveTextAreaToCursor();\n this.$cursorLayer.element.style.display = \"none\";\n }\n else {\n composition.markerId = this.session.addMarker(composition.markerRange, \"ace_composition_marker\", \"text\");\n }\n };\n VirtualRenderer.prototype.setCompositionText = function (text) {\n var cursor = this.session.selection.cursor;\n this.addToken(text, \"composition_placeholder\", cursor.row, cursor.column);\n this.$moveTextAreaToCursor();\n };\n VirtualRenderer.prototype.hideComposition = function () {\n if (!this.$composition)\n return;\n if (this.$composition.markerId)\n this.session.removeMarker(this.$composition.markerId);\n dom.removeCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = this.$composition.cssText;\n var cursor = this.session.selection.cursor;\n this.removeExtraToken(cursor.row, cursor.column);\n this.$composition = null;\n this.$cursorLayer.element.style.display = \"\";\n };\n VirtualRenderer.prototype.setGhostText = function (text, position) {\n var cursor = this.session.selection.cursor;\n var insertPosition = position || { row: cursor.row, column: cursor.column };\n this.removeGhostText();\n var textLines = text.split(\"\\n\");\n this.addToken(textLines[0], \"ghost_text\", insertPosition.row, insertPosition.column);\n this.$ghostText = {\n text: text,\n position: {\n row: insertPosition.row,\n column: insertPosition.column\n }\n };\n if (textLines.length > 1) {\n this.$ghostTextWidget = {\n text: textLines.slice(1).join(\"\\n\"),\n row: insertPosition.row,\n column: insertPosition.column,\n className: \"ace_ghost_text\"\n };\n this.session.widgetManager.addLineWidget(this.$ghostTextWidget);\n var pixelPosition = this.$cursorLayer.getPixelPosition(insertPosition, true);\n var el = this.container;\n var height = el.getBoundingClientRect().height;\n var ghostTextHeight = textLines.length * this.lineHeight;\n var fitsY = ghostTextHeight < height - pixelPosition.top;\n if (fitsY)\n return;\n if (ghostTextHeight < height) {\n this.scrollBy(0, (textLines.length - 1) * this.lineHeight);\n }\n else {\n this.scrollBy(0, pixelPosition.top);\n }\n }\n };\n VirtualRenderer.prototype.removeGhostText = function () {\n if (!this.$ghostText)\n return;\n var position = this.$ghostText.position;\n this.removeExtraToken(position.row, position.column);\n if (this.$ghostTextWidget) {\n this.session.widgetManager.removeLineWidget(this.$ghostTextWidget);\n this.$ghostTextWidget = null;\n }\n this.$ghostText = null;\n };\n VirtualRenderer.prototype.addToken = function (text, type, row, column) {\n var session = this.session;\n session.bgTokenizer.lines[row] = null;\n var newToken = { type: type, value: text };\n var tokens = session.getTokens(row);\n if (column == null || !tokens.length) {\n tokens.push(newToken);\n }\n else {\n var l = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n l += token.value.length;\n if (column <= l) {\n var diff = token.value.length - (l - column);\n var before = token.value.slice(0, diff);\n var after = token.value.slice(diff);\n tokens.splice(i, 1, { type: token.type, value: before }, newToken, { type: token.type, value: after });\n break;\n }\n }\n }\n this.updateLines(row, row);\n };\n VirtualRenderer.prototype.removeExtraToken = function (row, column) {\n this.session.bgTokenizer.lines[row] = null;\n this.updateLines(row, row);\n };\n VirtualRenderer.prototype.setTheme = function (theme, cb) {\n var _self = this;\n this.$themeId = theme;\n _self._dispatchEvent('themeChange', { theme: theme });\n if (!theme || typeof theme == \"string\") {\n var moduleName = theme || this.$options.theme.initialValue;\n config.loadModule([\"theme\", moduleName], afterLoad);\n }\n else {\n afterLoad(theme);\n }\n function afterLoad(module) {\n if (_self.$themeId != theme)\n return cb && cb();\n if (!module || !module.cssClass)\n throw new Error(\"couldn't load module \" + theme + \" or it didn't call define\");\n if (module.$id)\n _self.$themeId = module.$id;\n dom.importCssString(module.cssText, module.cssClass, _self.container);\n if (_self.theme)\n dom.removeCssClass(_self.container, _self.theme.cssClass);\n var padding = \"padding\" in module ? module.padding\n : \"padding\" in (_self.theme || {}) ? 4 : _self.$padding;\n if (_self.$padding && padding != _self.$padding)\n _self.setPadding(padding);\n _self.$theme = module.cssClass;\n _self.theme = module;\n dom.addCssClass(_self.container, module.cssClass);\n dom.setCssClass(_self.container, \"ace_dark\", module.isDark);\n if (_self.$size) {\n _self.$size.width = 0;\n _self.$updateSizeAsync();\n }\n _self._dispatchEvent('themeLoaded', { theme: module });\n cb && cb();\n }\n };\n VirtualRenderer.prototype.getTheme = function () {\n return this.$themeId;\n };\n VirtualRenderer.prototype.setStyle = function (style, include) {\n dom.setCssClass(this.container, style, include !== false);\n };\n VirtualRenderer.prototype.unsetStyle = function (style) {\n dom.removeCssClass(this.container, style);\n };\n VirtualRenderer.prototype.setCursorStyle = function (style) {\n dom.setStyle(this.scroller.style, \"cursor\", style);\n };\n VirtualRenderer.prototype.setMouseCursor = function (cursorStyle) {\n dom.setStyle(this.scroller.style, \"cursor\", cursorStyle);\n };\n VirtualRenderer.prototype.attachToShadowRoot = function () {\n dom.importCssString(editorCss, \"ace_editor.css\", this.container);\n };\n VirtualRenderer.prototype.destroy = function () {\n this.freeze();\n this.$fontMetrics.destroy();\n this.$cursorLayer.destroy();\n this.removeAllListeners();\n this.container.textContent = \"\";\n this.setOption(\"useResizeObserver\", false);\n };\n VirtualRenderer.prototype.$updateCustomScrollbar = function (val) {\n var _self = this;\n this.$horizScroll = this.$vScroll = null;\n this.scrollBarV.element.remove();\n this.scrollBarH.element.remove();\n if (this.$scrollDecorator) {\n delete this.$scrollDecorator;\n }\n if (val === true) {\n this.scrollBarV = new VScrollBarCustom(this.container, this);\n this.scrollBarH = new HScrollBarCustom(this.container, this);\n this.scrollBarV.setHeight(this.$size.scrollerHeight);\n this.scrollBarH.setWidth(this.$size.scrollerWidth);\n this.scrollBarV.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n this.$scrollDecorator = new Decorator(this.scrollBarV, this);\n this.$scrollDecorator.$updateDecorators();\n }\n else {\n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n }\n };\n VirtualRenderer.prototype.$addResizeObserver = function () {\n if (!window.ResizeObserver || this.$resizeObserver)\n return;\n var self = this;\n this.$resizeTimer = lang.delayedCall(function () {\n if (!self.destroyed)\n self.onResize();\n }, 50);\n this.$resizeObserver = new window.ResizeObserver(function (e) {\n var w = e[0].contentRect.width;\n var h = e[0].contentRect.height;\n if (Math.abs(self.$size.width - w) > 1\n || Math.abs(self.$size.height - h) > 1) {\n self.$resizeTimer.delay();\n }\n else {\n self.$resizeTimer.cancel();\n }\n });\n this.$resizeObserver.observe(this.container);\n };\n return VirtualRenderer;\n}());\nVirtualRenderer.prototype.CHANGE_CURSOR = 1;\nVirtualRenderer.prototype.CHANGE_MARKER = 2;\nVirtualRenderer.prototype.CHANGE_GUTTER = 4;\nVirtualRenderer.prototype.CHANGE_SCROLL = 8;\nVirtualRenderer.prototype.CHANGE_LINES = 16;\nVirtualRenderer.prototype.CHANGE_TEXT = 32;\nVirtualRenderer.prototype.CHANGE_SIZE = 64;\nVirtualRenderer.prototype.CHANGE_MARKER_BACK = 128;\nVirtualRenderer.prototype.CHANGE_MARKER_FRONT = 256;\nVirtualRenderer.prototype.CHANGE_FULL = 512;\nVirtualRenderer.prototype.CHANGE_H_SCROLL = 1024;\nVirtualRenderer.prototype.$changes = 0;\nVirtualRenderer.prototype.$padding = null;\nVirtualRenderer.prototype.$frozen = false;\nVirtualRenderer.prototype.STEPS = 8;\noop.implement(VirtualRenderer.prototype, EventEmitter);\nconfig.defineOptions(VirtualRenderer.prototype, \"renderer\", {\n useResizeObserver: {\n set: function (value) {\n if (!value && this.$resizeObserver) {\n this.$resizeObserver.disconnect();\n this.$resizeTimer.cancel();\n this.$resizeTimer = this.$resizeObserver = null;\n }\n else if (value && !this.$resizeObserver) {\n this.$addResizeObserver();\n }\n }\n },\n animatedScroll: { initialValue: false },\n showInvisibles: {\n set: function (value) {\n if (this.$textLayer.setShowInvisibles(value))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: false\n },\n showPrintMargin: {\n set: function () { this.$updatePrintMargin(); },\n initialValue: true\n },\n printMarginColumn: {\n set: function () { this.$updatePrintMargin(); },\n initialValue: 80\n },\n printMargin: {\n set: function (val) {\n if (typeof val == \"number\")\n this.$printMarginColumn = val;\n this.$showPrintMargin = !!val;\n this.$updatePrintMargin();\n },\n get: function () {\n return this.$showPrintMargin && this.$printMarginColumn;\n }\n },\n showGutter: {\n set: function (show) {\n this.$gutter.style.display = show ? \"block\" : \"none\";\n this.$loop.schedule(this.CHANGE_FULL);\n this.onGutterResize();\n },\n initialValue: true\n },\n useSvgGutterIcons: {\n set: function (value) {\n this.$gutterLayer.$useSvgGutterIcons = value;\n },\n initialValue: false\n },\n showFoldedAnnotations: {\n set: function (value) {\n this.$gutterLayer.$showFoldedAnnotations = value;\n },\n initialValue: false\n },\n fadeFoldWidgets: {\n set: function (show) {\n dom.setCssClass(this.$gutter, \"ace_fade-fold-widgets\", show);\n },\n initialValue: false\n },\n showFoldWidgets: {\n set: function (show) {\n this.$gutterLayer.setShowFoldWidgets(show);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n displayIndentGuides: {\n set: function (show) {\n if (this.$textLayer.setDisplayIndentGuides(show))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: true\n },\n highlightIndentGuides: {\n set: function (show) {\n if (this.$textLayer.setHighlightIndentGuides(show) == true) {\n this.$textLayer.$highlightIndentGuide();\n }\n else {\n this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells);\n }\n },\n initialValue: true\n },\n highlightGutterLine: {\n set: function (shouldHighlight) {\n this.$gutterLayer.setHighlightGutterLine(shouldHighlight);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n hScrollBarAlwaysVisible: {\n set: function (val) {\n if (!this.$hScrollBarAlwaysVisible || !this.$horizScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n vScrollBarAlwaysVisible: {\n set: function (val) {\n if (!this.$vScrollBarAlwaysVisible || !this.$vScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n fontSize: {\n set: function (size) {\n if (typeof size == \"number\")\n size = size + \"px\";\n this.container.style.fontSize = size;\n this.updateFontSize();\n },\n initialValue: 12\n },\n fontFamily: {\n set: function (name) {\n this.container.style.fontFamily = name;\n this.updateFontSize();\n }\n },\n maxLines: {\n set: function (val) {\n this.updateFull();\n }\n },\n minLines: {\n set: function (val) {\n if (!(this.$minLines < 0x1ffffffffffff))\n this.$minLines = 0;\n this.updateFull();\n }\n },\n maxPixelHeight: {\n set: function (val) {\n this.updateFull();\n },\n initialValue: 0\n },\n scrollPastEnd: {\n set: function (val) {\n val = +val || 0;\n if (this.$scrollPastEnd == val)\n return;\n this.$scrollPastEnd = val;\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: 0,\n handlesSet: true\n },\n fixedWidthGutter: {\n set: function (val) {\n this.$gutterLayer.$fixedWidth = !!val;\n this.$loop.schedule(this.CHANGE_GUTTER);\n }\n },\n customScrollbar: {\n set: function (val) {\n this.$updateCustomScrollbar(val);\n },\n initialValue: false\n },\n theme: {\n set: function (val) { this.setTheme(val); },\n get: function () { return this.$themeId || this.theme; },\n initialValue: \"./theme/textmate\",\n handlesSet: true\n },\n hasCssTransforms: {},\n useTextareaForIME: {\n initialValue: !useragent.isMobile && !useragent.isIE\n }\n});\nexports.VirtualRenderer = VirtualRenderer;\n\n});\n\nace.define(\"ace/worker/worker_client\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/event_emitter\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar net = require(\"../lib/net\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar config = require(\"../config\");\n\nfunction $workerBlob(workerUrl) {\n var script = \"importScripts('\" + net.qualifyURL(workerUrl) + \"');\";\n try {\n return new Blob([script], {\"type\": \"application/javascript\"});\n } catch (e) { // Backwards-compatibility\n var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;\n var blobBuilder = new BlobBuilder();\n blobBuilder.append(script);\n return blobBuilder.getBlob(\"application/javascript\");\n }\n}\n\nfunction createWorker(workerUrl) {\n if (typeof Worker == \"undefined\")\n return { postMessage: function() {}, terminate: function() {} };\n if (config.get(\"loadWorkerFromBlob\")) {\n var blob = $workerBlob(workerUrl);\n var URL = window.URL || window.webkitURL;\n var blobURL = URL.createObjectURL(blob);\n return new Worker(blobURL);\n }\n return new Worker(workerUrl);\n}\n\nvar WorkerClient = function(worker) {\n if (!worker.postMessage)\n worker = this.$createWorkerFromOldConfig.apply(this, arguments);\n\n this.$worker = worker;\n this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n this.changeListener = this.changeListener.bind(this);\n this.onMessage = this.onMessage.bind(this);\n\n this.callbackId = 1;\n this.callbacks = {};\n\n this.$worker.onmessage = this.onMessage;\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n\n this.$createWorkerFromOldConfig = function(topLevelNamespaces, mod, classname, workerUrl, importScripts) {\n if (require.nameToUrl && !require.toUrl)\n require.toUrl = require.nameToUrl;\n\n if (config.get(\"packaged\") || !require.toUrl) {\n workerUrl = workerUrl || config.moduleUrl(mod, \"worker\");\n } else {\n var normalizePath = this.$normalizePath;\n workerUrl = workerUrl || normalizePath(require.toUrl(\"ace/worker/worker.js\", null, \"_\"));\n\n var tlns = {};\n topLevelNamespaces.forEach(function(ns) {\n tlns[ns] = normalizePath(require.toUrl(ns, null, \"_\").replace(/(\\.js)?(\\?.*)?$/, \"\"));\n });\n }\n\n this.$worker = createWorker(workerUrl);\n if (importScripts) {\n this.send(\"importScripts\", importScripts);\n }\n this.$worker.postMessage({\n init : true,\n tlns : tlns,\n module : mod,\n classname : classname\n });\n return this.$worker;\n };\n\n this.onMessage = function(e) {\n var msg = e.data;\n switch (msg.type) {\n case \"event\":\n this._signal(msg.name, {data: msg.data});\n break;\n case \"call\":\n var callback = this.callbacks[msg.id];\n if (callback) {\n callback(msg.data);\n delete this.callbacks[msg.id];\n }\n break;\n case \"error\":\n this.reportError(msg.data);\n break;\n case \"log\":\n window.console && console.log && console.log.apply(console, msg.data);\n break;\n }\n };\n \n this.reportError = function(err) {\n window.console && console.error && console.error(err);\n };\n\n this.$normalizePath = function(path) {\n return net.qualifyURL(path);\n };\n\n this.terminate = function() {\n this._signal(\"terminate\", {});\n this.deltaQueue = null;\n this.$worker.terminate();\n this.$worker.onerror = function(e) {\n e.preventDefault();\n };\n this.$worker = null;\n if (this.$doc)\n this.$doc.off(\"change\", this.changeListener);\n this.$doc = null;\n };\n\n this.send = function(cmd, args) {\n this.$worker.postMessage({command: cmd, args: args});\n };\n\n this.call = function(cmd, args, callback) {\n if (callback) {\n var id = this.callbackId++;\n this.callbacks[id] = callback;\n args.push(id);\n }\n this.send(cmd, args);\n };\n\n this.emit = function(event, data) {\n try {\n if (data.data && data.data.err)\n data.data.err = {message: data.data.err.message, stack: data.data.err.stack, code: data.data.err.code};\n this.$worker && this.$worker.postMessage({event: event, data: {data: data.data}});\n }\n catch(ex) {\n console.error(ex.stack);\n }\n };\n\n this.attachToDocument = function(doc) {\n if (this.$doc)\n this.terminate();\n\n this.$doc = doc;\n this.call(\"setValue\", [doc.getValue()]);\n doc.on(\"change\", this.changeListener, true);\n };\n\n this.changeListener = function(delta) {\n if (!this.deltaQueue) {\n this.deltaQueue = [];\n setTimeout(this.$sendDeltaQueue, 0);\n }\n if (delta.action == \"insert\")\n this.deltaQueue.push(delta.start, delta.lines);\n else\n this.deltaQueue.push(delta.start, delta.end);\n };\n\n this.$sendDeltaQueue = function() {\n var q = this.deltaQueue;\n if (!q) return;\n this.deltaQueue = null;\n if (q.length > 50 && q.length > this.$doc.getLength() >> 1) {\n this.call(\"setValue\", [this.$doc.getValue()]);\n } else\n this.emit(\"change\", {data: q});\n };\n\n}).call(WorkerClient.prototype);\n\n\nvar UIWorkerClient = function(topLevelNamespaces, mod, classname) {\n var main = null;\n var emitSync = false;\n var sender = Object.create(EventEmitter);\n\n var messageBuffer = [];\n var workerClient = new WorkerClient({\n messageBuffer: messageBuffer,\n terminate: function() {},\n postMessage: function(e) {\n messageBuffer.push(e);\n if (!main) return;\n if (emitSync)\n setTimeout(processNext);\n else\n processNext();\n }\n });\n\n workerClient.setEmitSync = function(val) { emitSync = val; };\n\n var processNext = function() {\n var msg = messageBuffer.shift();\n if (msg.command)\n main[msg.command].apply(main, msg.args);\n else if (msg.event)\n sender._signal(msg.event, msg.data);\n };\n\n sender.postMessage = function(msg) {\n workerClient.onMessage({data: msg});\n };\n sender.callback = function(data, callbackId) {\n this.postMessage({type: \"call\", id: callbackId, data: data});\n };\n sender.emit = function(name, data) {\n this.postMessage({type: \"event\", name: name, data: data});\n };\n\n config.loadModule([\"worker\", mod], function(Main) {\n main = new Main[classname](sender);\n while (messageBuffer.length)\n processNext();\n });\n\n return workerClient;\n};\n\nexports.UIWorkerClient = UIWorkerClient;\nexports.WorkerClient = WorkerClient;\nexports.createWorker = createWorker;\n\n\n});\n\nace.define(\"ace/placeholder\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/oop\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar oop = require(\"./lib/oop\");\nvar PlaceHolder = /** @class */ (function () {\n function PlaceHolder(session, length, pos, others, mainClass, othersClass) {\n var _self = this;\n this.length = length;\n this.session = session;\n this.doc = session.getDocument();\n this.mainClass = mainClass;\n this.othersClass = othersClass;\n this.$onUpdate = this.onUpdate.bind(this);\n this.doc.on(\"change\", this.$onUpdate, true);\n this.$others = others;\n this.$onCursorChange = function () {\n setTimeout(function () {\n _self.onCursorChange();\n });\n };\n this.$pos = pos;\n var undoStack = session.getUndoManager().$undoStack || session.getUndoManager().$undostack || { length: -1 };\n this.$undoStackDepth = undoStack.length;\n this.setup();\n session.selection.on(\"changeCursor\", this.$onCursorChange);\n }\n PlaceHolder.prototype.setup = function () {\n var _self = this;\n var doc = this.doc;\n var session = this.session;\n this.selectionBefore = session.selection.toJSON();\n if (session.selection.inMultiSelectMode)\n session.selection.toSingleRange();\n this.pos = doc.createAnchor(this.$pos.row, this.$pos.column);\n var pos = this.pos;\n pos.$insertRight = true;\n pos.detach();\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + this.length), this.mainClass, null, false);\n this.others = [];\n this.$others.forEach(function (other) {\n var anchor = doc.createAnchor(other.row, other.column);\n anchor.$insertRight = true;\n anchor.detach();\n _self.others.push(anchor);\n });\n session.setUndoSelect(false);\n };\n PlaceHolder.prototype.showOtherMarkers = function () {\n if (this.othersActive)\n return;\n var session = this.session;\n var _self = this;\n this.othersActive = true;\n this.others.forEach(function (anchor) {\n anchor.markerId = session.addMarker(new Range(anchor.row, anchor.column, anchor.row, anchor.column + _self.length), _self.othersClass, null, false);\n });\n };\n PlaceHolder.prototype.hideOtherMarkers = function () {\n if (!this.othersActive)\n return;\n this.othersActive = false;\n for (var i = 0; i < this.others.length; i++) {\n this.session.removeMarker(this.others[i].markerId);\n }\n };\n PlaceHolder.prototype.onUpdate = function (delta) {\n if (this.$updating)\n return this.updateAnchors(delta);\n var range = delta;\n if (range.start.row !== range.end.row)\n return;\n if (range.start.row !== this.pos.row)\n return;\n this.$updating = true;\n var lengthDiff = delta.action === \"insert\" ? range.end.column - range.start.column : range.start.column - range.end.column;\n var inMainRange = range.start.column >= this.pos.column && range.start.column <= this.pos.column + this.length + 1;\n var distanceFromStart = range.start.column - this.pos.column;\n this.updateAnchors(delta);\n if (inMainRange)\n this.length += lengthDiff;\n if (inMainRange && !this.session.$fromUndo) {\n if (delta.action === 'insert') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = { row: otherPos.row, column: otherPos.column + distanceFromStart };\n this.doc.insertMergedLines(newPos, delta.lines);\n }\n }\n else if (delta.action === 'remove') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = { row: otherPos.row, column: otherPos.column + distanceFromStart };\n this.doc.remove(new Range(newPos.row, newPos.column, newPos.row, newPos.column - lengthDiff));\n }\n }\n }\n this.$updating = false;\n this.updateMarkers();\n };\n PlaceHolder.prototype.updateAnchors = function (delta) {\n this.pos.onChange(delta);\n for (var i = this.others.length; i--;)\n this.others[i].onChange(delta);\n this.updateMarkers();\n };\n PlaceHolder.prototype.updateMarkers = function () {\n if (this.$updating)\n return;\n var _self = this;\n var session = this.session;\n var updateMarker = function (pos, className) {\n session.removeMarker(pos.markerId);\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + _self.length), className, null, false);\n };\n updateMarker(this.pos, this.mainClass);\n for (var i = this.others.length; i--;)\n updateMarker(this.others[i], this.othersClass);\n };\n PlaceHolder.prototype.onCursorChange = function (event) {\n if (this.$updating || !this.session)\n return;\n var pos = this.session.selection.getCursor();\n if (pos.row === this.pos.row && pos.column >= this.pos.column && pos.column <= this.pos.column + this.length) {\n this.showOtherMarkers();\n this._emit(\"cursorEnter\", event);\n }\n else {\n this.hideOtherMarkers();\n this._emit(\"cursorLeave\", event);\n }\n };\n PlaceHolder.prototype.detach = function () {\n this.session.removeMarker(this.pos && this.pos.markerId);\n this.hideOtherMarkers();\n this.doc.off(\"change\", this.$onUpdate);\n this.session.selection.off(\"changeCursor\", this.$onCursorChange);\n this.session.setUndoSelect(true);\n this.session = null;\n };\n PlaceHolder.prototype.cancel = function () {\n if (this.$undoStackDepth === -1)\n return;\n var undoManager = this.session.getUndoManager();\n var undosRequired = (undoManager.$undoStack || undoManager.$undostack).length - this.$undoStackDepth;\n for (var i = 0; i < undosRequired; i++) {\n undoManager.undo(this.session, true);\n }\n if (this.selectionBefore)\n this.session.selection.fromJSON(this.selectionBefore);\n };\n return PlaceHolder;\n}());\noop.implement(PlaceHolder.prototype, EventEmitter);\nexports.PlaceHolder = PlaceHolder;\n\n});\n\nace.define(\"ace/mouse/multi_select_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){var event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nfunction onMouseDown(e) {\n var ev = e.domEvent;\n var alt = ev.altKey;\n var shift = ev.shiftKey;\n var ctrl = ev.ctrlKey;\n var accel = e.getAccelKey();\n var button = e.getButton();\n if (ctrl && useragent.isMac)\n button = ev.button;\n if (e.editor.inMultiSelectMode && button == 2) {\n e.editor.textInput.onContextMenu(e.domEvent);\n return;\n }\n if (!ctrl && !alt && !accel) {\n if (button === 0 && e.editor.inMultiSelectMode)\n e.editor.exitMultiSelectMode();\n return;\n }\n if (button !== 0)\n return;\n var editor = e.editor;\n var selection = editor.selection;\n var isMultiSelect = editor.inMultiSelectMode;\n var pos = e.getDocumentPosition();\n var cursor = selection.getCursor();\n var inSelection = e.inSelection() || (selection.isEmpty() && isSamePoint(pos, cursor));\n var mouseX = e.x, mouseY = e.y;\n var onMouseSelection = function (e) {\n mouseX = e.clientX;\n mouseY = e.clientY;\n };\n var session = editor.session;\n var screenAnchor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var screenCursor = screenAnchor;\n var selectionMode;\n if (editor.$mouseHandler.$enableJumpToDef) {\n if (ctrl && alt || accel && alt)\n selectionMode = shift ? \"block\" : \"add\";\n else if (alt && editor.$blockSelectEnabled)\n selectionMode = \"block\";\n }\n else {\n if (accel && !alt) {\n selectionMode = \"add\";\n if (!isMultiSelect && shift)\n return;\n }\n else if (alt && editor.$blockSelectEnabled) {\n selectionMode = \"block\";\n }\n }\n if (selectionMode && useragent.isMac && ev.ctrlKey) {\n editor.$mouseHandler.cancelContextMenu();\n }\n if (selectionMode == \"add\") {\n if (!isMultiSelect && inSelection)\n return; // dragging\n if (!isMultiSelect) {\n var range = selection.toOrientedRange();\n editor.addSelectionMarker(range);\n }\n var oldRange = selection.rangeList.rangeAtPoint(pos);\n editor.inVirtualSelectionMode = true;\n if (shift) {\n oldRange = null;\n range = selection.ranges[0] || range;\n editor.removeSelectionMarker(range);\n }\n editor.once(\"mouseup\", function () {\n var tmpSel = selection.toOrientedRange();\n if (oldRange && tmpSel.isEmpty() && isSamePoint(oldRange.cursor, tmpSel.cursor))\n selection.substractPoint(tmpSel.cursor);\n else {\n if (shift) {\n selection.substractPoint(range.cursor);\n }\n else if (range) {\n editor.removeSelectionMarker(range);\n selection.addRange(range);\n }\n selection.addRange(tmpSel);\n }\n editor.inVirtualSelectionMode = false;\n });\n }\n else if (selectionMode == \"block\") {\n e.stop();\n editor.inVirtualSelectionMode = true;\n var initialRange;\n var rectSel = [];\n var blockSelect = function () {\n var newCursor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var cursor = session.screenToDocumentPosition(newCursor.row, newCursor.column, newCursor.offsetX);\n if (isSamePoint(screenCursor, newCursor) && isSamePoint(cursor, selection.lead))\n return;\n screenCursor = newCursor;\n editor.selection.moveToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n editor.removeSelectionMarkers(rectSel);\n rectSel = selection.rectangularRangeBlock(screenCursor, screenAnchor);\n if (editor.$mouseHandler.$clickSelection && rectSel.length == 1 && rectSel[0].isEmpty())\n rectSel[0] = editor.$mouseHandler.$clickSelection.clone();\n rectSel.forEach(editor.addSelectionMarker, editor);\n editor.updateSelectionMarkers();\n };\n if (isMultiSelect && !accel) {\n selection.toSingleRange();\n }\n else if (!isMultiSelect && accel) {\n initialRange = selection.toOrientedRange();\n editor.addSelectionMarker(initialRange);\n }\n if (shift)\n screenAnchor = session.documentToScreenPosition(selection.lead);\n else\n selection.moveToPosition(pos);\n screenCursor = { row: -1, column: -1 };\n var onMouseSelectionEnd = function (e) {\n blockSelect();\n clearInterval(timerId);\n editor.removeSelectionMarkers(rectSel);\n if (!rectSel.length)\n rectSel = [selection.toOrientedRange()];\n if (initialRange) {\n editor.removeSelectionMarker(initialRange);\n selection.toSingleRange(initialRange);\n }\n for (var i = 0; i < rectSel.length; i++)\n selection.addRange(rectSel[i]);\n editor.inVirtualSelectionMode = false;\n editor.$mouseHandler.$clickSelection = null;\n };\n var onSelectionInterval = blockSelect;\n event.capture(editor.container, onMouseSelection, onMouseSelectionEnd);\n var timerId = setInterval(function () { onSelectionInterval(); }, 20);\n return e.preventDefault();\n }\n}\nexports.onMouseDown = onMouseDown;\n\n});\n\nace.define(\"ace/commands/multi_select_commands\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\"], function(require, exports, module){// commands to enter multiselect mode\nexports.defaultCommands = [{\n name: \"addCursorAbove\",\n description: \"Add cursor above\",\n exec: function (editor) { editor.selectMoreLines(-1); },\n bindKey: { win: \"Ctrl-Alt-Up\", mac: \"Ctrl-Alt-Up\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorBelow\",\n description: \"Add cursor below\",\n exec: function (editor) { editor.selectMoreLines(1); },\n bindKey: { win: \"Ctrl-Alt-Down\", mac: \"Ctrl-Alt-Down\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorAboveSkipCurrent\",\n description: \"Add cursor above (skip current)\",\n exec: function (editor) { editor.selectMoreLines(-1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Up\", mac: \"Ctrl-Alt-Shift-Up\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorBelowSkipCurrent\",\n description: \"Add cursor below (skip current)\",\n exec: function (editor) { editor.selectMoreLines(1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Down\", mac: \"Ctrl-Alt-Shift-Down\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectMoreBefore\",\n description: \"Select more before\",\n exec: function (editor) { editor.selectMore(-1); },\n bindKey: { win: \"Ctrl-Alt-Left\", mac: \"Ctrl-Alt-Left\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectMoreAfter\",\n description: \"Select more after\",\n exec: function (editor) { editor.selectMore(1); },\n bindKey: { win: \"Ctrl-Alt-Right\", mac: \"Ctrl-Alt-Right\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectNextBefore\",\n description: \"Select next before\",\n exec: function (editor) { editor.selectMore(-1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Left\", mac: \"Ctrl-Alt-Shift-Left\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectNextAfter\",\n description: \"Select next after\",\n exec: function (editor) { editor.selectMore(1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Right\", mac: \"Ctrl-Alt-Shift-Right\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"toggleSplitSelectionIntoLines\",\n description: \"Split selection into lines\",\n exec: function (editor) {\n if (editor.multiSelect.rangeCount > 1)\n editor.multiSelect.joinSelections();\n else\n editor.multiSelect.splitIntoLines();\n },\n bindKey: { win: \"Ctrl-Alt-L\", mac: \"Ctrl-Alt-L\" },\n readOnly: true\n }, {\n name: \"splitSelectionIntoLines\",\n description: \"Split into lines\",\n exec: function (editor) { editor.multiSelect.splitIntoLines(); },\n readOnly: true\n }, {\n name: \"alignCursors\",\n description: \"Align cursors\",\n exec: function (editor) { editor.alignCursors(); },\n bindKey: { win: \"Ctrl-Alt-A\", mac: \"Ctrl-Alt-A\" },\n scrollIntoView: \"cursor\"\n }, {\n name: \"findAll\",\n description: \"Find all\",\n exec: function (editor) { editor.findAll(); },\n bindKey: { win: \"Ctrl-Alt-K\", mac: \"Ctrl-Alt-G\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }];\nexports.multiSelectCommands = [{\n name: \"singleSelection\",\n description: \"Single selection\",\n bindKey: \"esc\",\n exec: function (editor) { editor.exitMultiSelectMode(); },\n scrollIntoView: \"cursor\",\n readOnly: true,\n isAvailable: function (editor) { return editor && editor.inMultiSelectMode; }\n }];\nvar HashHandler = require(\"../keyboard/hash_handler\").HashHandler;\nexports.keyboardHandler = new HashHandler(exports.multiSelectCommands);\n\n});\n\nace.define(\"ace/multi_select\",[\"require\",\"exports\",\"module\",\"ace/range_list\",\"ace/range\",\"ace/selection\",\"ace/mouse/multi_select_handler\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/commands/multi_select_commands\",\"ace/search\",\"ace/edit_session\",\"ace/editor\",\"ace/config\"], function(require, exports, module){var RangeList = require(\"./range_list\").RangeList;\nvar Range = require(\"./range\").Range;\nvar Selection = require(\"./selection\").Selection;\nvar onMouseDown = require(\"./mouse/multi_select_handler\").onMouseDown;\nvar event = require(\"./lib/event\");\nvar lang = require(\"./lib/lang\");\nvar commands = require(\"./commands/multi_select_commands\");\nexports.commands = commands.defaultCommands.concat(commands.multiSelectCommands);\nvar Search = require(\"./search\").Search;\nvar search = new Search();\nfunction find(session, needle, dir) {\n search.$options.wrap = true;\n search.$options.needle = needle;\n search.$options.backwards = dir == -1;\n return search.find(session);\n}\nvar EditSession = require(\"./edit_session\").EditSession;\n(function () {\n this.getSelectionMarkers = function () {\n return this.$selectionMarkers;\n };\n}).call(EditSession.prototype);\n(function () {\n this.ranges = null;\n this.rangeList = null;\n this.addRange = function (range, $blockChangeEvents) {\n if (!range)\n return;\n if (!this.inMultiSelectMode && this.rangeCount === 0) {\n var oldRange = this.toOrientedRange();\n this.rangeList.add(oldRange);\n this.rangeList.add(range);\n if (this.rangeList.ranges.length != 2) {\n this.rangeList.removeAll();\n return $blockChangeEvents || this.fromOrientedRange(range);\n }\n this.rangeList.removeAll();\n this.rangeList.add(oldRange);\n this.$onAddRange(oldRange);\n }\n if (!range.cursor)\n range.cursor = range.end;\n var removed = this.rangeList.add(range);\n this.$onAddRange(range);\n if (removed.length)\n this.$onRemoveRange(removed);\n if (this.rangeCount > 1 && !this.inMultiSelectMode) {\n this._signal(\"multiSelect\");\n this.inMultiSelectMode = true;\n this.session.$undoSelect = false;\n this.rangeList.attach(this.session);\n }\n return $blockChangeEvents || this.fromOrientedRange(range);\n };\n this.toSingleRange = function (range) {\n range = range || this.ranges[0];\n var removed = this.rangeList.removeAll();\n if (removed.length)\n this.$onRemoveRange(removed);\n range && this.fromOrientedRange(range);\n };\n this.substractPoint = function (pos) {\n var removed = this.rangeList.substractPoint(pos);\n if (removed) {\n this.$onRemoveRange(removed);\n return removed[0];\n }\n };\n this.mergeOverlappingRanges = function () {\n var removed = this.rangeList.merge();\n if (removed.length)\n this.$onRemoveRange(removed);\n };\n this.$onAddRange = function (range) {\n this.rangeCount = this.rangeList.ranges.length;\n this.ranges.unshift(range);\n this._signal(\"addRange\", { range: range });\n };\n this.$onRemoveRange = function (removed) {\n this.rangeCount = this.rangeList.ranges.length;\n if (this.rangeCount == 1 && this.inMultiSelectMode) {\n var lastRange = this.rangeList.ranges.pop();\n removed.push(lastRange);\n this.rangeCount = 0;\n }\n for (var i = removed.length; i--;) {\n var index = this.ranges.indexOf(removed[i]);\n this.ranges.splice(index, 1);\n }\n this._signal(\"removeRange\", { ranges: removed });\n if (this.rangeCount === 0 && this.inMultiSelectMode) {\n this.inMultiSelectMode = false;\n this._signal(\"singleSelect\");\n this.session.$undoSelect = true;\n this.rangeList.detach(this.session);\n }\n lastRange = lastRange || this.ranges[0];\n if (lastRange && !lastRange.isEqual(this.getRange()))\n this.fromOrientedRange(lastRange);\n };\n this.$initRangeList = function () {\n if (this.rangeList)\n return;\n this.rangeList = new RangeList();\n this.ranges = [];\n this.rangeCount = 0;\n };\n this.getAllRanges = function () {\n return this.rangeCount ? this.rangeList.ranges.concat() : [this.getRange()];\n };\n this.splitIntoLines = function () {\n var ranges = this.ranges.length ? this.ranges : [this.getRange()];\n var newRanges = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n var row = range.start.row;\n var endRow = range.end.row;\n if (row === endRow) {\n newRanges.push(range.clone());\n }\n else {\n newRanges.push(new Range(row, range.start.column, row, this.session.getLine(row).length));\n while (++row < endRow)\n newRanges.push(this.getLineRange(row, true));\n newRanges.push(new Range(endRow, 0, endRow, range.end.column));\n }\n if (i == 0 && !this.isBackwards())\n newRanges = newRanges.reverse();\n }\n this.toSingleRange();\n for (var i = newRanges.length; i--;)\n this.addRange(newRanges[i]);\n };\n this.joinSelections = function () {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n };\n this.toggleBlockSelection = function () {\n if (this.rangeCount > 1) {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n }\n else {\n var cursor = this.session.documentToScreenPosition(this.cursor);\n var anchor = this.session.documentToScreenPosition(this.anchor);\n var rectSel = this.rectangularRangeBlock(cursor, anchor);\n rectSel.forEach(this.addRange, this);\n }\n };\n this.rectangularRangeBlock = function (screenCursor, screenAnchor, includeEmptyLines) {\n var rectSel = [];\n var xBackwards = screenCursor.column < screenAnchor.column;\n if (xBackwards) {\n var startColumn = screenCursor.column;\n var endColumn = screenAnchor.column;\n var startOffsetX = screenCursor.offsetX;\n var endOffsetX = screenAnchor.offsetX;\n }\n else {\n var startColumn = screenAnchor.column;\n var endColumn = screenCursor.column;\n var startOffsetX = screenAnchor.offsetX;\n var endOffsetX = screenCursor.offsetX;\n }\n var yBackwards = screenCursor.row < screenAnchor.row;\n if (yBackwards) {\n var startRow = screenCursor.row;\n var endRow = screenAnchor.row;\n }\n else {\n var startRow = screenAnchor.row;\n var endRow = screenCursor.row;\n }\n if (startColumn < 0)\n startColumn = 0;\n if (startRow < 0)\n startRow = 0;\n if (startRow == endRow)\n includeEmptyLines = true;\n var docEnd;\n for (var row = startRow; row <= endRow; row++) {\n var range = Range.fromPoints(this.session.screenToDocumentPosition(row, startColumn, startOffsetX), this.session.screenToDocumentPosition(row, endColumn, endOffsetX));\n if (range.isEmpty()) {\n if (docEnd && isSamePoint(range.end, docEnd))\n break;\n docEnd = range.end;\n }\n range.cursor = xBackwards ? range.start : range.end;\n rectSel.push(range);\n }\n if (yBackwards)\n rectSel.reverse();\n if (!includeEmptyLines) {\n var end = rectSel.length - 1;\n while (rectSel[end].isEmpty() && end > 0)\n end--;\n if (end > 0) {\n var start = 0;\n while (rectSel[start].isEmpty())\n start++;\n }\n for (var i = end; i >= start; i--) {\n if (rectSel[i].isEmpty())\n rectSel.splice(i, 1);\n }\n }\n return rectSel;\n };\n}).call(Selection.prototype);\nvar Editor = require(\"./editor\").Editor;\n(function () {\n this.updateSelectionMarkers = function () {\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.addSelectionMarker = function (orientedRange) {\n if (!orientedRange.cursor)\n orientedRange.cursor = orientedRange.end;\n var style = this.getSelectionStyle();\n orientedRange.marker = this.session.addMarker(orientedRange, \"ace_selection\", style);\n this.session.$selectionMarkers.push(orientedRange);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n return orientedRange;\n };\n this.removeSelectionMarker = function (range) {\n if (!range.marker)\n return;\n this.session.removeMarker(range.marker);\n var index = this.session.$selectionMarkers.indexOf(range);\n if (index != -1)\n this.session.$selectionMarkers.splice(index, 1);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n };\n this.removeSelectionMarkers = function (ranges) {\n var markerList = this.session.$selectionMarkers;\n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.marker)\n continue;\n this.session.removeMarker(range.marker);\n var index = markerList.indexOf(range);\n if (index != -1)\n markerList.splice(index, 1);\n }\n this.session.selectionMarkerCount = markerList.length;\n };\n this.$onAddRange = function (e) {\n this.addSelectionMarker(e.range);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onRemoveRange = function (e) {\n this.removeSelectionMarkers(e.ranges);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onMultiSelect = function (e) {\n if (this.inMultiSelectMode)\n return;\n this.inMultiSelectMode = true;\n this.setStyle(\"ace_multiselect\");\n this.keyBinding.addKeyboardHandler(commands.keyboardHandler);\n this.commands.setDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onSingleSelect = function (e) {\n if (this.session.multiSelect.inVirtualMode)\n return;\n this.inMultiSelectMode = false;\n this.unsetStyle(\"ace_multiselect\");\n this.keyBinding.removeKeyboardHandler(commands.keyboardHandler);\n this.commands.removeDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n this._emit(\"changeSelection\");\n };\n this.$onMultiSelectExec = function (e) {\n var command = e.command;\n var editor = e.editor;\n if (!editor.multiSelect)\n return;\n if (!command.multiSelectAction) {\n var result = command.exec(editor, e.args || {});\n editor.multiSelect.addRange(editor.multiSelect.toOrientedRange());\n editor.multiSelect.mergeOverlappingRanges();\n }\n else if (command.multiSelectAction == \"forEach\") {\n result = editor.forEachSelection(command, e.args);\n }\n else if (command.multiSelectAction == \"forEachLine\") {\n result = editor.forEachSelection(command, e.args, true);\n }\n else if (command.multiSelectAction == \"single\") {\n editor.exitMultiSelectMode();\n result = command.exec(editor, e.args || {});\n }\n else {\n result = command.multiSelectAction(editor, e.args || {});\n }\n return result;\n };\n this.forEachSelection = function (cmd, args, options) {\n if (this.inVirtualSelectionMode)\n return;\n var keepOrder = options && options.keepOrder;\n var $byLines = options == true || options && options.$byLines;\n var session = this.session;\n var selection = this.selection;\n var rangeList = selection.rangeList;\n var ranges = (keepOrder ? selection : rangeList).ranges;\n var result;\n if (!ranges.length)\n return cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n var reg = selection._eventRegistry;\n selection._eventRegistry = {};\n var tmpSel = new Selection(session);\n this.inVirtualSelectionMode = true;\n for (var i = ranges.length; i--;) {\n if ($byLines) {\n while (i > 0 && ranges[i].start.row == ranges[i - 1].end.row)\n i--;\n }\n tmpSel.fromOrientedRange(ranges[i]);\n tmpSel.index = i;\n this.selection = session.selection = tmpSel;\n var cmdResult = cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n if (!result && cmdResult !== undefined)\n result = cmdResult;\n tmpSel.toOrientedRange(ranges[i]);\n }\n tmpSel.detach();\n this.selection = session.selection = selection;\n this.inVirtualSelectionMode = false;\n selection._eventRegistry = reg;\n selection.mergeOverlappingRanges();\n if (selection.ranges[0])\n selection.fromOrientedRange(selection.ranges[0]);\n var anim = this.renderer.$scrollAnimation;\n this.onCursorChange();\n this.onSelectionChange();\n if (anim && anim.from == anim.to)\n this.renderer.animateScrolling(anim.from);\n return result;\n };\n this.exitMultiSelectMode = function () {\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode)\n return;\n this.multiSelect.toSingleRange();\n };\n this.getSelectedText = function () {\n var text = \"\";\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var ranges = this.multiSelect.rangeList.ranges;\n var buf = [];\n for (var i = 0; i < ranges.length; i++) {\n buf.push(this.session.getTextRange(ranges[i]));\n }\n var nl = this.session.getDocument().getNewLineCharacter();\n text = buf.join(nl);\n if (text.length == (buf.length - 1) * nl.length)\n text = \"\";\n }\n else if (!this.selection.isEmpty()) {\n text = this.session.getTextRange(this.getSelectionRange());\n }\n return text;\n };\n this.$checkMultiselectChange = function (e, anchor) {\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var range = this.multiSelect.ranges[0];\n if (this.multiSelect.isEmpty() && anchor == this.multiSelect.anchor)\n return;\n var pos = anchor == this.multiSelect.anchor\n ? range.cursor == range.start ? range.end : range.start\n : range.cursor;\n if (pos.row != anchor.row\n || this.session.$clipPositionToDocument(pos.row, pos.column).column != anchor.column)\n this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange());\n else\n this.multiSelect.mergeOverlappingRanges();\n }\n };\n this.findAll = function (needle, options, additive) {\n options = options || {};\n options.needle = needle || options.needle;\n if (options.needle == undefined) {\n var range = this.selection.isEmpty()\n ? this.selection.getWordRange()\n : this.selection.getRange();\n options.needle = this.session.getTextRange(range);\n }\n this.$search.set(options);\n var ranges = this.$search.findAll(this.session);\n if (!ranges.length)\n return 0;\n var selection = this.multiSelect;\n if (!additive)\n selection.toSingleRange(ranges[0]);\n for (var i = ranges.length; i--;)\n selection.addRange(ranges[i], true);\n if (range && selection.rangeList.rangeAtPoint(range.start))\n selection.addRange(range, true);\n return ranges.length;\n };\n this.selectMoreLines = function (dir, skip) {\n var range = this.selection.toOrientedRange();\n var isBackwards = range.cursor == range.end;\n var screenLead = this.session.documentToScreenPosition(range.cursor);\n if (this.selection.$desiredColumn)\n screenLead.column = this.selection.$desiredColumn;\n var lead = this.session.screenToDocumentPosition(screenLead.row + dir, screenLead.column);\n if (!range.isEmpty()) {\n var screenAnchor = this.session.documentToScreenPosition(isBackwards ? range.end : range.start);\n var anchor = this.session.screenToDocumentPosition(screenAnchor.row + dir, screenAnchor.column);\n }\n else {\n var anchor = lead;\n }\n if (isBackwards) {\n var newRange = Range.fromPoints(lead, anchor);\n newRange.cursor = newRange.start;\n }\n else {\n var newRange = Range.fromPoints(anchor, lead);\n newRange.cursor = newRange.end;\n }\n newRange.desiredColumn = screenLead.column;\n if (!this.selection.inMultiSelectMode) {\n this.selection.addRange(range);\n }\n else {\n if (skip)\n var toRemove = range.cursor;\n }\n this.selection.addRange(newRange);\n if (toRemove)\n this.selection.substractPoint(toRemove);\n };\n this.transposeSelections = function (dir) {\n var session = this.session;\n var sel = session.multiSelect;\n var all = sel.ranges;\n for (var i = all.length; i--;) {\n var range = all[i];\n if (range.isEmpty()) {\n var tmp = session.getWordRange(range.start.row, range.start.column);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n range.end.row = tmp.end.row;\n range.end.column = tmp.end.column;\n }\n }\n sel.mergeOverlappingRanges();\n var words = [];\n for (var i = all.length; i--;) {\n var range = all[i];\n words.unshift(session.getTextRange(range));\n }\n if (dir < 0)\n words.unshift(words.pop());\n else\n words.push(words.shift());\n for (var i = all.length; i--;) {\n var range = all[i];\n var tmp = range.clone();\n session.replace(range, words[i]);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n }\n sel.fromOrientedRange(sel.ranges[0]);\n };\n this.selectMore = function (dir, skip, stopAtFirst) {\n var session = this.session;\n var sel = session.multiSelect;\n var range = sel.toOrientedRange();\n if (range.isEmpty()) {\n range = session.getWordRange(range.start.row, range.start.column);\n range.cursor = dir == -1 ? range.start : range.end;\n this.multiSelect.addRange(range);\n if (stopAtFirst)\n return;\n }\n var needle = session.getTextRange(range);\n var newRange = find(session, needle, dir);\n if (newRange) {\n newRange.cursor = dir == -1 ? newRange.start : newRange.end;\n this.session.unfold(newRange);\n this.multiSelect.addRange(newRange);\n this.renderer.scrollCursorIntoView(null, 0.5);\n }\n if (skip)\n this.multiSelect.substractPoint(range.cursor);\n };\n this.alignCursors = function () {\n var session = this.session;\n var sel = session.multiSelect;\n var ranges = sel.ranges;\n var row = -1;\n var sameRowRanges = ranges.filter(function (r) {\n if (r.cursor.row == row)\n return true;\n row = r.cursor.row;\n });\n if (!ranges.length || sameRowRanges.length == ranges.length - 1) {\n var range = this.selection.getRange();\n var fr = range.start.row, lr = range.end.row;\n var guessRange = fr == lr;\n if (guessRange) {\n var max = this.session.getLength();\n var line;\n do {\n line = this.session.getLine(lr);\n } while (/[=:]/.test(line) && ++lr < max);\n do {\n line = this.session.getLine(fr);\n } while (/[=:]/.test(line) && --fr > 0);\n if (fr < 0)\n fr = 0;\n if (lr >= max)\n lr = max - 1;\n }\n var lines = this.session.removeFullLines(fr, lr);\n lines = this.$reAlignText(lines, guessRange);\n this.session.insert({ row: fr, column: 0 }, lines.join(\"\\n\") + \"\\n\");\n if (!guessRange) {\n range.start.column = 0;\n range.end.column = lines[lines.length - 1].length;\n }\n this.selection.setRange(range);\n }\n else {\n sameRowRanges.forEach(function (r) {\n sel.substractPoint(r.cursor);\n });\n var maxCol = 0;\n var minSpace = Infinity;\n var spaceOffsets = ranges.map(function (r) {\n var p = r.cursor;\n var line = session.getLine(p.row);\n var spaceOffset = line.substr(p.column).search(/\\S/g);\n if (spaceOffset == -1)\n spaceOffset = 0;\n if (p.column > maxCol)\n maxCol = p.column;\n if (spaceOffset < minSpace)\n minSpace = spaceOffset;\n return spaceOffset;\n });\n ranges.forEach(function (r, i) {\n var p = r.cursor;\n var l = maxCol - p.column;\n var d = spaceOffsets[i] - minSpace;\n if (l > d)\n session.insert(p, lang.stringRepeat(\" \", l - d));\n else\n session.remove(new Range(p.row, p.column, p.row, p.column - l + d));\n r.start.column = r.end.column = maxCol;\n r.start.row = r.end.row = p.row;\n r.cursor = r.end;\n });\n sel.fromOrientedRange(ranges[0]);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n }\n };\n this.$reAlignText = function (lines, forceLeft) {\n var isLeftAligned = true, isRightAligned = true;\n var startW, textW, endW;\n return lines.map(function (line) {\n var m = line.match(/(\\s*)(.*?)(\\s*)([=:].*)/);\n if (!m)\n return [line];\n if (startW == null) {\n startW = m[1].length;\n textW = m[2].length;\n endW = m[3].length;\n return m;\n }\n if (startW + textW + endW != m[1].length + m[2].length + m[3].length)\n isRightAligned = false;\n if (startW != m[1].length)\n isLeftAligned = false;\n if (startW > m[1].length)\n startW = m[1].length;\n if (textW < m[2].length)\n textW = m[2].length;\n if (endW > m[3].length)\n endW = m[3].length;\n return m;\n }).map(forceLeft ? alignLeft :\n isLeftAligned ? isRightAligned ? alignRight : alignLeft : unAlign);\n function spaces(n) {\n return lang.stringRepeat(\" \", n);\n }\n function alignLeft(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(textW - m[2].length + endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function alignRight(m) {\n return !m[2] ? m[0] : spaces(startW + textW - m[2].length) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function unAlign(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n };\n}).call(Editor.prototype);\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nexports.onSessionChange = function (e) {\n var session = e.session;\n if (session && !session.multiSelect) {\n session.$selectionMarkers = [];\n session.selection.$initRangeList();\n session.multiSelect = session.selection;\n }\n this.multiSelect = session && session.multiSelect;\n var oldSession = e.oldSession;\n if (oldSession) {\n oldSession.multiSelect.off(\"addRange\", this.$onAddRange);\n oldSession.multiSelect.off(\"removeRange\", this.$onRemoveRange);\n oldSession.multiSelect.off(\"multiSelect\", this.$onMultiSelect);\n oldSession.multiSelect.off(\"singleSelect\", this.$onSingleSelect);\n oldSession.multiSelect.lead.off(\"change\", this.$checkMultiselectChange);\n oldSession.multiSelect.anchor.off(\"change\", this.$checkMultiselectChange);\n }\n if (session) {\n session.multiSelect.on(\"addRange\", this.$onAddRange);\n session.multiSelect.on(\"removeRange\", this.$onRemoveRange);\n session.multiSelect.on(\"multiSelect\", this.$onMultiSelect);\n session.multiSelect.on(\"singleSelect\", this.$onSingleSelect);\n session.multiSelect.lead.on(\"change\", this.$checkMultiselectChange);\n session.multiSelect.anchor.on(\"change\", this.$checkMultiselectChange);\n }\n if (session && this.inMultiSelectMode != session.selection.inMultiSelectMode) {\n if (session.selection.inMultiSelectMode)\n this.$onMultiSelect();\n else\n this.$onSingleSelect();\n }\n};\nfunction MultiSelect(editor) {\n if (editor.$multiselectOnSessionChange)\n return;\n editor.$onAddRange = editor.$onAddRange.bind(editor);\n editor.$onRemoveRange = editor.$onRemoveRange.bind(editor);\n editor.$onMultiSelect = editor.$onMultiSelect.bind(editor);\n editor.$onSingleSelect = editor.$onSingleSelect.bind(editor);\n editor.$multiselectOnSessionChange = exports.onSessionChange.bind(editor);\n editor.$checkMultiselectChange = editor.$checkMultiselectChange.bind(editor);\n editor.$multiselectOnSessionChange(editor);\n editor.on(\"changeSession\", editor.$multiselectOnSessionChange);\n editor.on(\"mousedown\", onMouseDown);\n editor.commands.addCommands(commands.defaultCommands);\n addAltCursorListeners(editor);\n}\nfunction addAltCursorListeners(editor) {\n if (!editor.textInput)\n return;\n var el = editor.textInput.getElement();\n var altCursor = false;\n event.addListener(el, \"keydown\", function (e) {\n var altDown = e.keyCode == 18 && !(e.ctrlKey || e.shiftKey || e.metaKey);\n if (editor.$blockSelectEnabled && altDown) {\n if (!altCursor) {\n editor.renderer.setMouseCursor(\"crosshair\");\n altCursor = true;\n }\n }\n else if (altCursor) {\n reset();\n }\n }, editor);\n event.addListener(el, \"keyup\", reset, editor);\n event.addListener(el, \"blur\", reset, editor);\n function reset(e) {\n if (altCursor) {\n editor.renderer.setMouseCursor(\"\");\n altCursor = false;\n }\n }\n}\nexports.MultiSelect = MultiSelect;\nrequire(\"./config\").defineOptions(Editor.prototype, \"editor\", {\n enableMultiselect: {\n set: function (val) {\n MultiSelect(this);\n if (val) {\n this.on(\"mousedown\", onMouseDown);\n }\n else {\n this.off(\"mousedown\", onMouseDown);\n }\n },\n value: true\n },\n enableBlockSelect: {\n set: function (val) {\n this.$blockSelectEnabled = val;\n },\n value: true\n }\n});\n\n});\n\nace.define(\"ace/mode/folding/fold_mode\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../../range\").Range;\nvar FoldMode = exports.FoldMode = function () { };\n(function () {\n this.foldingStartMarker = null;\n this.foldingStopMarker = null;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.foldingStartMarker.test(line))\n return \"start\";\n if (foldStyle == \"markbeginend\"\n && this.foldingStopMarker\n && this.foldingStopMarker.test(line))\n return \"end\";\n return \"\";\n };\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n return null;\n };\n this.indentationBlock = function (session, row, column) {\n var re = /\\S/;\n var line = session.getLine(row);\n var startLevel = line.search(re);\n if (startLevel == -1)\n return;\n var startColumn = column || line.length;\n var maxRow = session.getLength();\n var startRow = row;\n var endRow = row;\n while (++row < maxRow) {\n var level = session.getLine(row).search(re);\n if (level == -1)\n continue;\n if (level <= startLevel) {\n var token = session.getTokenAt(row, 0);\n if (!token || token.type !== \"string\")\n break;\n }\n endRow = row;\n }\n if (endRow > startRow) {\n var endColumn = session.getLine(endRow).length;\n return new Range(startRow, startColumn, endRow, endColumn);\n }\n };\n this.openingBracketBlock = function (session, bracket, row, column, typeRe) {\n var start = { row: row, column: column + 1 };\n var end = session.$findClosingBracket(bracket, start, typeRe);\n if (!end)\n return;\n var fw = session.foldWidgets[end.row];\n if (fw == null)\n fw = session.getFoldWidget(end.row);\n if (fw == \"start\" && end.row > start.row) {\n end.row--;\n end.column = session.getLine(end.row).length;\n }\n return Range.fromPoints(start, end);\n };\n this.closingBracketBlock = function (session, bracket, row, column, typeRe) {\n var end = { row: row, column: column };\n var start = session.$findOpeningBracket(bracket, end);\n if (!start)\n return;\n start.column++;\n end.column--;\n return Range.fromPoints(start, end);\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/ext/error_marker\",[\"require\",\"exports\",\"module\",\"ace/line_widgets\",\"ace/lib/dom\",\"ace/range\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar LineWidgets = require(\"../line_widgets\").LineWidgets;\nvar dom = require(\"../lib/dom\");\nvar Range = require(\"../range\").Range;\nvar nls = require(\"../config\").nls;\nfunction binarySearch(array, needle, comparator) {\n var first = 0;\n var last = array.length - 1;\n while (first <= last) {\n var mid = (first + last) >> 1;\n var c = comparator(needle, array[mid]);\n if (c > 0)\n first = mid + 1;\n else if (c < 0)\n last = mid - 1;\n else\n return mid;\n }\n return -(first + 1);\n}\nfunction findAnnotations(session, row, dir) {\n var annotations = session.getAnnotations().sort(Range.comparePoints);\n if (!annotations.length)\n return;\n var i = binarySearch(annotations, { row: row, column: -1 }, Range.comparePoints);\n if (i < 0)\n i = -i - 1;\n if (i >= annotations.length)\n i = dir > 0 ? 0 : annotations.length - 1;\n else if (i === 0 && dir < 0)\n i = annotations.length - 1;\n var annotation = annotations[i];\n if (!annotation || !dir)\n return;\n if (annotation.row === row) {\n do {\n annotation = annotations[i += dir];\n } while (annotation && annotation.row === row);\n if (!annotation)\n return annotations.slice();\n }\n var matched = [];\n row = annotation.row;\n do {\n matched[dir < 0 ? \"unshift\" : \"push\"](annotation);\n annotation = annotations[i += dir];\n } while (annotation && annotation.row == row);\n return matched.length && matched;\n}\nexports.showErrorMarker = function (editor, dir) {\n var session = editor.session;\n if (!session.widgetManager) {\n session.widgetManager = new LineWidgets(session);\n session.widgetManager.attach(editor);\n }\n var pos = editor.getCursorPosition();\n var row = pos.row;\n var oldWidget = session.widgetManager.getWidgetsAtRow(row).filter(function (w) {\n return w.type == \"errorMarker\";\n })[0];\n if (oldWidget) {\n oldWidget.destroy();\n }\n else {\n row -= dir;\n }\n var annotations = findAnnotations(session, row, dir);\n var gutterAnno;\n if (annotations) {\n var annotation = annotations[0];\n pos.column = (annotation.pos && typeof annotation.column != \"number\"\n ? annotation.pos.sc\n : annotation.column) || 0;\n pos.row = annotation.row;\n gutterAnno = editor.renderer.$gutterLayer.$annotations[pos.row];\n }\n else if (oldWidget) {\n return;\n }\n else {\n gutterAnno = {\n text: [nls(\"Looks good!\")],\n className: \"ace_ok\"\n };\n }\n editor.session.unfold(pos.row);\n editor.selection.moveToPosition(pos);\n var w = {\n row: pos.row,\n fixedWidth: true,\n coverGutter: true,\n el: dom.createElement(\"div\"),\n type: \"errorMarker\"\n };\n var el = w.el.appendChild(dom.createElement(\"div\"));\n var arrow = w.el.appendChild(dom.createElement(\"div\"));\n arrow.className = \"error_widget_arrow \" + gutterAnno.className;\n var left = editor.renderer.$cursorLayer\n .getPixelPosition(pos).left;\n arrow.style.left = left + editor.renderer.gutterWidth - 5 + \"px\";\n w.el.className = \"error_widget_wrapper\";\n el.className = \"error_widget \" + gutterAnno.className;\n el.innerHTML = gutterAnno.text.join(\"
    \");\n el.appendChild(dom.createElement(\"div\"));\n var kb = function (_, hashId, keyString) {\n if (hashId === 0 && (keyString === \"esc\" || keyString === \"return\")) {\n w.destroy();\n return { command: \"null\" };\n }\n };\n w.destroy = function () {\n if (editor.$mouseHandler.isMousePressed)\n return;\n editor.keyBinding.removeKeyboardHandler(kb);\n session.widgetManager.removeLineWidget(w);\n editor.off(\"changeSelection\", w.destroy);\n editor.off(\"changeSession\", w.destroy);\n editor.off(\"mouseup\", w.destroy);\n editor.off(\"change\", w.destroy);\n };\n editor.keyBinding.addKeyboardHandler(kb);\n editor.on(\"changeSelection\", w.destroy);\n editor.on(\"changeSession\", w.destroy);\n editor.on(\"mouseup\", w.destroy);\n editor.on(\"change\", w.destroy);\n editor.session.widgetManager.addLineWidget(w);\n w.el.onmousedown = editor.focus.bind(editor);\n editor.renderer.scrollCursorIntoView(null, 0.5, { bottom: w.el.offsetHeight });\n};\ndom.importCssString(\"\\n .error_widget_wrapper {\\n background: inherit;\\n color: inherit;\\n border:none\\n }\\n .error_widget {\\n border-top: solid 2px;\\n border-bottom: solid 2px;\\n margin: 5px 0;\\n padding: 10px 40px;\\n white-space: pre-wrap;\\n }\\n .error_widget.ace_error, .error_widget_arrow.ace_error{\\n border-color: #ff5a5a\\n }\\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\\n border-color: #F1D817\\n }\\n .error_widget.ace_info, .error_widget_arrow.ace_info{\\n border-color: #5a5a5a\\n }\\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\\n border-color: #5aaa5a\\n }\\n .error_widget_arrow {\\n position: absolute;\\n border: solid 5px;\\n border-top-color: transparent!important;\\n border-right-color: transparent!important;\\n border-left-color: transparent!important;\\n top: -5px;\\n }\\n\", \"error_marker.css\", false);\n\n});\n\nace.define(\"ace/ace\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/range\",\"ace/editor\",\"ace/edit_session\",\"ace/undomanager\",\"ace/virtual_renderer\",\"ace/worker/worker_client\",\"ace/keyboard/hash_handler\",\"ace/placeholder\",\"ace/multi_select\",\"ace/mode/folding/fold_mode\",\"ace/theme/textmate\",\"ace/ext/error_marker\",\"ace/config\",\"ace/loader_build\"], function(require, exports, module){/**\n * The main class required to set up an Ace instance in the browser.\n *\n * @class Ace\n **/\n\"use strict\";\nrequire(\"./loader_build\")(exports)\nvar dom = require(\"./lib/dom\");\nvar Range = require(\"./range\").Range;\nvar Editor = require(\"./editor\").Editor;\nvar EditSession = require(\"./edit_session\").EditSession;\nvar UndoManager = require(\"./undomanager\").UndoManager;\nvar Renderer = require(\"./virtual_renderer\").VirtualRenderer;\nrequire(\"./worker/worker_client\");\nrequire(\"./keyboard/hash_handler\");\nrequire(\"./placeholder\");\nrequire(\"./multi_select\");\nrequire(\"./mode/folding/fold_mode\");\nrequire(\"./theme/textmate\");\nrequire(\"./ext/error_marker\");\nexports.config = require(\"./config\");\nexports.edit = function (el, options) {\n if (typeof el == \"string\") {\n var _id = el;\n el = document.getElementById(_id);\n if (!el)\n throw new Error(\"ace.edit can't find div #\" + _id);\n }\n if (el && el.env && el.env.editor instanceof Editor)\n return el.env.editor;\n var value = \"\";\n if (el && /input|textarea/i.test(el.tagName)) {\n var oldNode = el;\n value = oldNode.value;\n el = dom.createElement(\"pre\");\n oldNode.parentNode.replaceChild(el, oldNode);\n }\n else if (el) {\n value = el.textContent;\n el.innerHTML = \"\";\n }\n var doc = exports.createEditSession(value);\n var editor = new Editor(new Renderer(el), doc, options);\n var env = {\n document: doc,\n editor: editor,\n onResize: editor.resize.bind(editor, null)\n };\n if (oldNode)\n env.textarea = oldNode;\n editor.on(\"destroy\", function () {\n env.editor.container.env = null; // prevent memory leak on old ie\n });\n editor.container.env = editor.env = env;\n return editor;\n};\nexports.createEditSession = function (text, mode) {\n var doc = new EditSession(text, mode);\n doc.setUndoManager(new UndoManager());\n return doc;\n};\nexports.Range = Range;\nexports.Editor = Editor;\nexports.EditSession = EditSession;\nexports.UndoManager = UndoManager;\nexports.VirtualRenderer = Renderer;\nexports.version = exports.config.version;\n\n}); (function() {\n ace.require([\"ace/ace\"], function(a) {\n if (a) {\n a.config.init(true);\n a.define = ace.define;\n }\n var global = (function () {\n return this;\n })();\n if (!global && typeof window != \"undefined\") global = window; // can happen in strict mode\n if (!global && typeof self != \"undefined\") global = self; // can happen in webworker\n \n if (!global.ace)\n global.ace = a;\n for (var key in a) if (a.hasOwnProperty(key))\n global.ace[key] = a[key];\n global.ace[\"default\"] = global.ace;\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = global.ace;\n }\n });\n })();\n ","ace.define(\"ace/ext/beautify\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"], function(require, exports, module){// [WIP]\n\"use strict\";\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nfunction is(token, type) {\n return token.type.lastIndexOf(type + \".xml\") > -1;\n}\nexports.singletonTags = [\"area\", \"base\", \"br\", \"col\", \"command\", \"embed\", \"hr\", \"html\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"param\", \"source\", \"track\", \"wbr\"];\nexports.blockTags = [\"article\", \"aside\", \"blockquote\", \"body\", \"div\", \"dl\", \"fieldset\", \"footer\", \"form\", \"head\", \"header\", \"html\", \"nav\", \"ol\", \"p\", \"script\", \"section\", \"style\", \"table\", \"tbody\", \"tfoot\", \"thead\", \"ul\"];\nexports.formatOptions = {\n lineBreaksAfterCommasInCurlyBlock: true\n};\nexports.beautify = function (session) {\n var iterator = new TokenIterator(session, 0, 0);\n var token = iterator.getCurrentToken();\n var tabString = session.getTabString();\n var singletonTags = exports.singletonTags;\n var blockTags = exports.blockTags;\n var formatOptions = exports.formatOptions || {};\n var nextToken;\n var breakBefore = false;\n var spaceBefore = false;\n var spaceAfter = false;\n var code = \"\";\n var value = \"\";\n var tagName = \"\";\n var depth = 0;\n var lastDepth = 0;\n var lastIndent = 0;\n var indent = 0;\n var unindent = 0;\n var roundDepth = 0;\n var curlyDepth = 0;\n var row;\n var curRow = 0;\n var rowsToAdd = 0;\n var rowTokens = [];\n var abort = false;\n var i;\n var indentNextLine = false;\n var inTag = false;\n var inCSS = false;\n var inBlock = false;\n var levels = { 0: 0 };\n var parents = [];\n var caseBody = false;\n var trimNext = function () {\n if (nextToken && nextToken.value && nextToken.type !== 'string.regexp')\n nextToken.value = nextToken.value.replace(/^\\s*/, \"\");\n };\n var trimLine = function () {\n var end = code.length - 1;\n while (true) {\n if (end == 0)\n break;\n if (code[end] !== \" \")\n break;\n end = end - 1;\n }\n code = code.slice(0, end + 1);\n };\n var trimCode = function () {\n code = code.trimRight();\n breakBefore = false;\n };\n while (token !== null) {\n curRow = iterator.getCurrentTokenRow();\n rowTokens = iterator.$rowTokens;\n nextToken = iterator.stepForward();\n if (typeof token !== \"undefined\") {\n value = token.value;\n unindent = 0;\n inCSS = (tagName === \"style\" || session.$modeId === \"ace/mode/css\");\n if (is(token, \"tag-open\")) {\n inTag = true;\n if (nextToken)\n inBlock = (blockTags.indexOf(nextToken.value) !== -1);\n if (value === \" 0; rowsToAdd--)\n code += \"\\n\";\n breakBefore = true;\n if (!is(token, \"comment\") && !token.type.match(/^(comment|string)$/))\n value = value.trimLeft();\n }\n if (value) {\n if (token.type === \"keyword\" && value.match(/^(if|else|elseif|for|foreach|while|switch)$/)) {\n parents[depth] = value;\n trimNext();\n spaceAfter = true;\n if (value.match(/^(else|elseif)$/)) {\n if (code.match(/\\}[\\s]*$/)) {\n trimCode();\n spaceBefore = true;\n }\n }\n }\n else if (token.type === \"paren.lparen\") {\n trimNext();\n if (value.substr(-1) === \"{\") {\n spaceAfter = true;\n indentNextLine = false;\n if (!inTag)\n rowsToAdd = 1;\n }\n if (value.substr(0, 1) === \"{\") {\n spaceBefore = true;\n if (code.substr(-1) !== '[' && code.trimRight().substr(-1) === '[') {\n trimCode();\n spaceBefore = false;\n }\n else if (code.trimRight().substr(-1) === ')') {\n trimCode();\n }\n else {\n trimLine();\n }\n }\n }\n else if (token.type === \"paren.rparen\") {\n unindent = 1;\n if (value.substr(0, 1) === \"}\") {\n if (parents[depth - 1] === 'case')\n unindent++;\n if (code.trimRight().substr(-1) === '{') {\n trimCode();\n }\n else {\n spaceBefore = true;\n if (inCSS)\n rowsToAdd += 2;\n }\n }\n if (value.substr(0, 1) === \"]\") {\n if (code.substr(-1) !== '}' && code.trimRight().substr(-1) === '}') {\n spaceBefore = false;\n indent++;\n trimCode();\n }\n }\n if (value.substr(0, 1) === \")\") {\n if (code.substr(-1) !== '(' && code.trimRight().substr(-1) === '(') {\n spaceBefore = false;\n indent++;\n trimCode();\n }\n }\n trimLine();\n }\n else if ((token.type === \"keyword.operator\" || token.type === \"keyword\") && value.match(/^(=|==|===|!=|!==|&&|\\|\\||and|or|xor|\\+=|.=|>|>=|<|<=|=>)$/)) {\n trimCode();\n trimNext();\n spaceBefore = true;\n spaceAfter = true;\n }\n else if (token.type === \"punctuation.operator\" && value === ';') {\n trimCode();\n trimNext();\n spaceAfter = true;\n if (inCSS)\n rowsToAdd++;\n }\n else if (token.type === \"punctuation.operator\" && value.match(/^(:|,)$/)) {\n trimCode();\n trimNext();\n if (value.match(/^(,)$/) && curlyDepth > 0 && roundDepth === 0 && formatOptions.lineBreaksAfterCommasInCurlyBlock) {\n rowsToAdd++;\n }\n else {\n spaceAfter = true;\n breakBefore = false;\n }\n }\n else if (token.type === \"support.php_tag\" && value === \"?>\" && !breakBefore) {\n trimCode();\n spaceBefore = true;\n }\n else if (is(token, \"attribute-name\") && code.substr(-1).match(/^\\s$/)) {\n spaceBefore = true;\n }\n else if (is(token, \"attribute-equals\")) {\n trimLine();\n trimNext();\n }\n else if (is(token, \"tag-close\")) {\n trimLine();\n if (value === \"/>\")\n spaceBefore = true;\n }\n else if (token.type === \"keyword\" && value.match(/^(case|default)$/)) {\n if (caseBody)\n unindent = 1;\n }\n if (breakBefore && !(token.type.match(/^(comment)$/) && !value.substr(0, 1).match(/^[/#]$/)) && !(token.type.match(/^(string)$/) && !value.substr(0, 1).match(/^['\"@]$/))) {\n indent = lastIndent;\n if (depth > lastDepth) {\n indent++;\n for (i = depth; i > lastDepth; i--)\n levels[i] = indent;\n }\n else if (depth < lastDepth)\n indent = levels[depth];\n lastDepth = depth;\n lastIndent = indent;\n if (unindent)\n indent -= unindent;\n if (indentNextLine && !roundDepth) {\n indent++;\n indentNextLine = false;\n }\n for (i = 0; i < indent; i++)\n code += tabString;\n }\n if (token.type === \"keyword\" && value.match(/^(case|default)$/)) {\n if (caseBody === false) {\n parents[depth] = value;\n depth++;\n caseBody = true;\n }\n }\n else if (token.type === \"keyword\" && value.match(/^(break)$/)) {\n if (parents[depth - 1] && parents[depth - 1].match(/^(case|default)$/)) {\n depth--;\n caseBody = false;\n }\n }\n if (token.type === \"paren.lparen\") {\n roundDepth += (value.match(/\\(/g) || []).length;\n curlyDepth += (value.match(/\\{/g) || []).length;\n depth += value.length;\n }\n if (token.type === \"keyword\" && value.match(/^(if|else|elseif|for|while)$/)) {\n indentNextLine = true;\n roundDepth = 0;\n }\n else if (!roundDepth && value.trim() && token.type !== \"comment\")\n indentNextLine = false;\n if (token.type === \"paren.rparen\") {\n roundDepth -= (value.match(/\\)/g) || []).length;\n curlyDepth -= (value.match(/\\}/g) || []).length;\n for (i = 0; i < value.length; i++) {\n depth--;\n if (value.substr(i, 1) === '}' && parents[depth] === 'case') {\n depth--;\n }\n }\n }\n if (token.type == \"text\")\n value = value.replace(/\\s+$/, \" \");\n if (spaceBefore && !breakBefore) {\n trimLine();\n if (code.substr(-1) !== \"\\n\")\n code += \" \";\n }\n code += value;\n if (spaceAfter)\n code += \" \";\n breakBefore = false;\n spaceBefore = false;\n spaceAfter = false;\n if ((is(token, \"tag-close\") && (inBlock || blockTags.indexOf(tagName) !== -1)) || (is(token, \"doctype\") && value === \">\")) {\n if (inBlock && nextToken && nextToken.value === \"\") {\n depth--;\n }\n }\n if (is(token, \"tag-name\")) {\n tagName = value;\n }\n row = curRow;\n }\n }\n token = nextToken;\n }\n code = code.trim();\n session.doc.setValue(code);\n};\nexports.commands = [{\n name: \"beautify\",\n description: \"Format selection (Beautify)\",\n exec: function (editor) {\n exports.beautify(editor.session);\n },\n bindKey: \"Ctrl-Shift-B\"\n }];\n\n}); (function() {\n ace.require([\"ace/ext/beautify\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/ext/searchbox-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \"\\n\\n/* ------------------------------------------------------------------------------------------\\n * Editor Search Form\\n * --------------------------------------------------------------------------------------- */\\n.ace_search {\\n background-color: #ddd;\\n color: #666;\\n border: 1px solid #cbcbcb;\\n border-top: 0 none;\\n overflow: hidden;\\n margin: 0;\\n padding: 4px 6px 0 4px;\\n position: absolute;\\n top: 0;\\n z-index: 99;\\n white-space: normal;\\n}\\n.ace_search.left {\\n border-left: 0 none;\\n border-radius: 0px 0px 5px 0px;\\n left: 0;\\n}\\n.ace_search.right {\\n border-radius: 0px 0px 0px 5px;\\n border-right: 0 none;\\n right: 0;\\n}\\n\\n.ace_search_form, .ace_replace_form {\\n margin: 0 20px 4px 0;\\n overflow: hidden;\\n line-height: 1.9;\\n}\\n.ace_replace_form {\\n margin-right: 0;\\n}\\n.ace_search_form.ace_nomatch {\\n outline: 1px solid red;\\n}\\n\\n.ace_search_field {\\n border-radius: 3px 0 0 3px;\\n background-color: white;\\n color: black;\\n border: 1px solid #cbcbcb;\\n border-right: 0 none;\\n outline: 0;\\n padding: 0;\\n font-size: inherit;\\n margin: 0;\\n line-height: inherit;\\n padding: 0 6px;\\n min-width: 17em;\\n vertical-align: top;\\n min-height: 1.8em;\\n box-sizing: content-box;\\n}\\n.ace_searchbtn {\\n border: 1px solid #cbcbcb;\\n line-height: inherit;\\n display: inline-block;\\n padding: 0 6px;\\n background: #fff;\\n border-right: 0 none;\\n border-left: 1px solid #dcdcdc;\\n cursor: pointer;\\n margin: 0;\\n position: relative;\\n color: #666;\\n}\\n.ace_searchbtn:last-child {\\n border-radius: 0 3px 3px 0;\\n border-right: 1px solid #cbcbcb;\\n}\\n.ace_searchbtn:disabled {\\n background: none;\\n cursor: default;\\n}\\n.ace_searchbtn:hover {\\n background-color: #eef1f6;\\n}\\n.ace_searchbtn.prev, .ace_searchbtn.next {\\n padding: 0px 0.7em\\n}\\n.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\\n content: \\\"\\\";\\n border: solid 2px #888;\\n width: 0.5em;\\n height: 0.5em;\\n border-width: 2px 0 0 2px;\\n display:inline-block;\\n transform: rotate(-45deg);\\n}\\n.ace_searchbtn.next:after {\\n border-width: 0 2px 2px 0 ;\\n}\\n.ace_searchbtn_close {\\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\\n border-radius: 50%;\\n border: 0 none;\\n color: #656565;\\n cursor: pointer;\\n font: 16px/16px Arial;\\n padding: 0;\\n height: 14px;\\n width: 14px;\\n top: 9px;\\n right: 7px;\\n position: absolute;\\n}\\n.ace_searchbtn_close:hover {\\n background-color: #656565;\\n background-position: 50% 100%;\\n color: white;\\n}\\n\\n.ace_button {\\n margin-left: 2px;\\n cursor: pointer;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -o-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n overflow: hidden;\\n opacity: 0.7;\\n border: 1px solid rgba(100,100,100,0.23);\\n padding: 1px;\\n box-sizing: border-box!important;\\n color: black;\\n}\\n\\n.ace_button:hover {\\n background-color: #eee;\\n opacity:1;\\n}\\n.ace_button:active {\\n background-color: #ddd;\\n}\\n\\n.ace_button.checked {\\n border-color: #3399ff;\\n opacity:1;\\n}\\n\\n.ace_search_options{\\n margin-bottom: 3px;\\n text-align: right;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -o-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n clear: both;\\n}\\n\\n.ace_search_counter {\\n float: left;\\n font-family: arial;\\n padding: 0 8px;\\n}\";\n\n});\n\nace.define(\"ace/ext/searchbox\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/event\",\"ace/ext/searchbox-css\",\"ace/keyboard/hash_handler\",\"ace/lib/keys\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar event = require(\"../lib/event\");\nvar searchboxCss = require(\"./searchbox-css\");\nvar HashHandler = require(\"../keyboard/hash_handler\").HashHandler;\nvar keyUtil = require(\"../lib/keys\");\nvar nls = require(\"../config\").nls;\nvar MAX_COUNT = 999;\ndom.importCssString(searchboxCss, \"ace_searchbox\", false);\nvar SearchBox = /** @class */ (function () {\n function SearchBox(editor, range, showReplaceForm) {\n var div = dom.createElement(\"div\");\n dom.buildDom([\"div\", { class: \"ace_search right\" },\n [\"span\", { action: \"hide\", class: \"ace_searchbtn_close\" }],\n [\"div\", { class: \"ace_search_form\" },\n [\"input\", { class: \"ace_search_field\", placeholder: nls(\"Search for\"), spellcheck: \"false\" }],\n [\"span\", { action: \"findPrev\", class: \"ace_searchbtn prev\" }, \"\\u200b\"],\n [\"span\", { action: \"findNext\", class: \"ace_searchbtn next\" }, \"\\u200b\"],\n [\"span\", { action: \"findAll\", class: \"ace_searchbtn\", title: \"Alt-Enter\" }, nls(\"All\")]\n ],\n [\"div\", { class: \"ace_replace_form\" },\n [\"input\", { class: \"ace_search_field\", placeholder: nls(\"Replace with\"), spellcheck: \"false\" }],\n [\"span\", { action: \"replaceAndFindNext\", class: \"ace_searchbtn\" }, nls(\"Replace\")],\n [\"span\", { action: \"replaceAll\", class: \"ace_searchbtn\" }, nls(\"All\")]\n ],\n [\"div\", { class: \"ace_search_options\" },\n [\"span\", { action: \"toggleReplace\", class: \"ace_button\", title: nls(\"Toggle Replace mode\"),\n style: \"float:left;margin-top:-2px;padding:0 5px;\" }, \"+\"],\n [\"span\", { class: \"ace_search_counter\" }],\n [\"span\", { action: \"toggleRegexpMode\", class: \"ace_button\", title: nls(\"RegExp Search\") }, \".*\"],\n [\"span\", { action: \"toggleCaseSensitive\", class: \"ace_button\", title: nls(\"CaseSensitive Search\") }, \"Aa\"],\n [\"span\", { action: \"toggleWholeWords\", class: \"ace_button\", title: nls(\"Whole Word Search\") }, \"\\\\b\"],\n [\"span\", { action: \"searchInSelection\", class: \"ace_button\", title: nls(\"Search In Selection\") }, \"S\"]\n ]\n ], div);\n this.element = div.firstChild;\n this.setSession = this.setSession.bind(this);\n this.$init();\n this.setEditor(editor);\n dom.importCssString(searchboxCss, \"ace_searchbox\", editor.container);\n }\n SearchBox.prototype.setEditor = function (editor) {\n editor.searchBox = this;\n editor.renderer.scroller.appendChild(this.element);\n this.editor = editor;\n };\n SearchBox.prototype.setSession = function (e) {\n this.searchRange = null;\n this.$syncOptions(true);\n };\n SearchBox.prototype.$initElements = function (sb) {\n this.searchBox = sb.querySelector(\".ace_search_form\");\n this.replaceBox = sb.querySelector(\".ace_replace_form\");\n this.searchOption = sb.querySelector(\"[action=searchInSelection]\");\n this.replaceOption = sb.querySelector(\"[action=toggleReplace]\");\n this.regExpOption = sb.querySelector(\"[action=toggleRegexpMode]\");\n this.caseSensitiveOption = sb.querySelector(\"[action=toggleCaseSensitive]\");\n this.wholeWordOption = sb.querySelector(\"[action=toggleWholeWords]\");\n this.searchInput = this.searchBox.querySelector(\".ace_search_field\");\n this.replaceInput = this.replaceBox.querySelector(\".ace_search_field\");\n this.searchCounter = sb.querySelector(\".ace_search_counter\");\n };\n SearchBox.prototype.$init = function () {\n var sb = this.element;\n this.$initElements(sb);\n var _this = this;\n event.addListener(sb, \"mousedown\", function (e) {\n setTimeout(function () {\n _this.activeInput.focus();\n }, 0);\n event.stopPropagation(e);\n });\n event.addListener(sb, \"click\", function (e) {\n var t = e.target || e.srcElement;\n var action = t.getAttribute(\"action\");\n if (action && _this[action])\n _this[action]();\n else if (_this.$searchBarKb.commands[action])\n _this.$searchBarKb.commands[action].exec(_this);\n event.stopPropagation(e);\n });\n event.addCommandKeyListener(sb, function (e, hashId, keyCode) {\n var keyString = keyUtil.keyCodeToString(keyCode);\n var command = _this.$searchBarKb.findKeyCommand(hashId, keyString);\n if (command && command.exec) {\n command.exec(_this);\n event.stopEvent(e);\n }\n });\n this.$onChange = lang.delayedCall(function () {\n _this.find(false, false);\n });\n event.addListener(this.searchInput, \"input\", function () {\n _this.$onChange.schedule(20);\n });\n event.addListener(this.searchInput, \"focus\", function () {\n _this.activeInput = _this.searchInput;\n _this.searchInput.value && _this.highlight();\n });\n event.addListener(this.replaceInput, \"focus\", function () {\n _this.activeInput = _this.replaceInput;\n _this.searchInput.value && _this.highlight();\n });\n };\n SearchBox.prototype.setSearchRange = function (range) {\n this.searchRange = range;\n if (range) {\n this.searchRangeMarker = this.editor.session.addMarker(range, \"ace_active-line\");\n }\n else if (this.searchRangeMarker) {\n this.editor.session.removeMarker(this.searchRangeMarker);\n this.searchRangeMarker = null;\n }\n };\n SearchBox.prototype.$syncOptions = function (preventScroll) {\n dom.setCssClass(this.replaceOption, \"checked\", this.searchRange);\n dom.setCssClass(this.searchOption, \"checked\", this.searchOption.checked);\n this.replaceOption.textContent = this.replaceOption.checked ? \"-\" : \"+\";\n dom.setCssClass(this.regExpOption, \"checked\", this.regExpOption.checked);\n dom.setCssClass(this.wholeWordOption, \"checked\", this.wholeWordOption.checked);\n dom.setCssClass(this.caseSensitiveOption, \"checked\", this.caseSensitiveOption.checked);\n var readOnly = this.editor.getReadOnly();\n this.replaceOption.style.display = readOnly ? \"none\" : \"\";\n this.replaceBox.style.display = this.replaceOption.checked && !readOnly ? \"\" : \"none\";\n this.find(false, false, preventScroll);\n };\n SearchBox.prototype.highlight = function (re) {\n this.editor.session.highlight(re || this.editor.$search.$options.re);\n this.editor.renderer.updateBackMarkers();\n };\n SearchBox.prototype.find = function (skipCurrent, backwards, preventScroll) {\n var range = this.editor.find(this.searchInput.value, {\n skipCurrent: skipCurrent,\n backwards: backwards,\n wrap: true,\n regExp: this.regExpOption.checked,\n caseSensitive: this.caseSensitiveOption.checked,\n wholeWord: this.wholeWordOption.checked,\n preventScroll: preventScroll,\n range: this.searchRange\n });\n var noMatch = !range && this.searchInput.value;\n dom.setCssClass(this.searchBox, \"ace_nomatch\", noMatch);\n this.editor._emit(\"findSearchBox\", { match: !noMatch });\n this.highlight();\n this.updateCounter();\n };\n SearchBox.prototype.updateCounter = function () {\n var editor = this.editor;\n var regex = editor.$search.$options.re;\n var supportsUnicodeFlag = regex.unicode;\n var all = 0;\n var before = 0;\n if (regex) {\n var value = this.searchRange\n ? editor.session.getTextRange(this.searchRange)\n : editor.getValue();\n var offset = editor.session.doc.positionToIndex(editor.selection.anchor);\n if (this.searchRange)\n offset -= editor.session.doc.positionToIndex(this.searchRange.start);\n var last = regex.lastIndex = 0;\n var m;\n while ((m = regex.exec(value))) {\n all++;\n last = m.index;\n if (last <= offset)\n before++;\n if (all > MAX_COUNT)\n break;\n if (!m[0]) {\n regex.lastIndex = last += lang.skipEmptyMatch(value, last, supportsUnicodeFlag);\n if (last >= value.length)\n break;\n }\n }\n }\n this.searchCounter.textContent = nls(\"$0 of $1\", [before, (all > MAX_COUNT ? MAX_COUNT + \"+\" : all)]);\n };\n SearchBox.prototype.findNext = function () {\n this.find(true, false);\n };\n SearchBox.prototype.findPrev = function () {\n this.find(true, true);\n };\n SearchBox.prototype.findAll = function () {\n var range = this.editor.findAll(this.searchInput.value, {\n regExp: this.regExpOption.checked,\n caseSensitive: this.caseSensitiveOption.checked,\n wholeWord: this.wholeWordOption.checked\n });\n var noMatch = !range && this.searchInput.value;\n dom.setCssClass(this.searchBox, \"ace_nomatch\", noMatch);\n this.editor._emit(\"findSearchBox\", { match: !noMatch });\n this.highlight();\n this.hide();\n };\n SearchBox.prototype.replace = function () {\n if (!this.editor.getReadOnly())\n this.editor.replace(this.replaceInput.value);\n };\n SearchBox.prototype.replaceAndFindNext = function () {\n if (!this.editor.getReadOnly()) {\n this.editor.replace(this.replaceInput.value);\n this.findNext();\n }\n };\n SearchBox.prototype.replaceAll = function () {\n if (!this.editor.getReadOnly())\n this.editor.replaceAll(this.replaceInput.value);\n };\n SearchBox.prototype.hide = function () {\n this.active = false;\n this.setSearchRange(null);\n this.editor.off(\"changeSession\", this.setSession);\n this.element.style.display = \"none\";\n this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb);\n this.editor.focus();\n };\n SearchBox.prototype.show = function (value, isReplace) {\n this.active = true;\n this.editor.on(\"changeSession\", this.setSession);\n this.element.style.display = \"\";\n this.replaceOption.checked = isReplace;\n if (value)\n this.searchInput.value = value;\n this.searchInput.focus();\n this.searchInput.select();\n this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb);\n this.$syncOptions(true);\n };\n SearchBox.prototype.isFocused = function () {\n var el = document.activeElement;\n return el == this.searchInput || el == this.replaceInput;\n };\n return SearchBox;\n}());\nvar $searchBarKb = new HashHandler();\n$searchBarKb.bindKeys({\n \"Ctrl-f|Command-f\": function (sb) {\n var isReplace = sb.isReplace = !sb.isReplace;\n sb.replaceBox.style.display = isReplace ? \"\" : \"none\";\n sb.replaceOption.checked = false;\n sb.$syncOptions();\n sb.searchInput.focus();\n },\n \"Ctrl-H|Command-Option-F\": function (sb) {\n if (sb.editor.getReadOnly())\n return;\n sb.replaceOption.checked = true;\n sb.$syncOptions();\n sb.replaceInput.focus();\n },\n \"Ctrl-G|Command-G\": function (sb) {\n sb.findNext();\n },\n \"Ctrl-Shift-G|Command-Shift-G\": function (sb) {\n sb.findPrev();\n },\n \"esc\": function (sb) {\n setTimeout(function () { sb.hide(); });\n },\n \"Return\": function (sb) {\n if (sb.activeInput == sb.replaceInput)\n sb.replace();\n sb.findNext();\n },\n \"Shift-Return\": function (sb) {\n if (sb.activeInput == sb.replaceInput)\n sb.replace();\n sb.findPrev();\n },\n \"Alt-Return\": function (sb) {\n if (sb.activeInput == sb.replaceInput)\n sb.replaceAll();\n sb.findAll();\n },\n \"Tab\": function (sb) {\n (sb.activeInput == sb.replaceInput ? sb.searchInput : sb.replaceInput).focus();\n }\n});\n$searchBarKb.addCommands([{\n name: \"toggleRegexpMode\",\n bindKey: { win: \"Alt-R|Alt-/\", mac: \"Ctrl-Alt-R|Ctrl-Alt-/\" },\n exec: function (sb) {\n sb.regExpOption.checked = !sb.regExpOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"toggleCaseSensitive\",\n bindKey: { win: \"Alt-C|Alt-I\", mac: \"Ctrl-Alt-R|Ctrl-Alt-I\" },\n exec: function (sb) {\n sb.caseSensitiveOption.checked = !sb.caseSensitiveOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"toggleWholeWords\",\n bindKey: { win: \"Alt-B|Alt-W\", mac: \"Ctrl-Alt-B|Ctrl-Alt-W\" },\n exec: function (sb) {\n sb.wholeWordOption.checked = !sb.wholeWordOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"toggleReplace\",\n exec: function (sb) {\n sb.replaceOption.checked = !sb.replaceOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"searchInSelection\",\n exec: function (sb) {\n sb.searchOption.checked = !sb.searchRange;\n sb.setSearchRange(sb.searchOption.checked && sb.editor.getSelectionRange());\n sb.$syncOptions();\n }\n }]);\nvar $closeSearchBarKb = new HashHandler([{\n bindKey: \"Esc\",\n name: \"closeSearchBar\",\n exec: function (editor) {\n editor.searchBox.hide();\n }\n }]);\nSearchBox.prototype.$searchBarKb = $searchBarKb;\nSearchBox.prototype.$closeSearchBarKb = $closeSearchBarKb;\nexports.SearchBox = SearchBox;\nexports.Search = function (editor, isReplace) {\n var sb = editor.searchBox || new SearchBox(editor);\n sb.show(editor.session.getTextRange(), isReplace);\n};\n\n}); (function() {\n ace.require([\"ace/ext/searchbox\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|flex-end|flex-start|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\";\nvar supportConstantColor = exports.supportConstantColor = \"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses = exports.pseudoClasses = \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\nvar CssHighlightRules = function () {\n var keywordMapper = this.createKeywordMapper({\n \"support.function\": supportFunction,\n \"support.constant\": supportConstant,\n \"support.type\": supportType,\n \"support.constant.color\": supportConstantColor,\n \"support.constant.fonts\": supportConstantFonts\n }, \"text\", true);\n this.$rules = {\n \"start\": [{\n include: [\"strings\", \"url\", \"comments\"]\n }, {\n token: \"paren.lparen\",\n regex: \"\\\\{\",\n next: \"ruleset\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\"\n }, {\n token: \"string\",\n regex: \"@(?!viewport)\",\n next: \"media\"\n }, {\n token: \"keyword\",\n regex: \"#[a-z0-9-_]+\"\n }, {\n token: \"keyword\",\n regex: \"%\"\n }, {\n token: \"variable\",\n regex: \"\\\\.[a-z0-9-_]+\"\n }, {\n token: \"string\",\n regex: \":[a-z0-9-_]+\"\n }, {\n token: \"constant.numeric\",\n regex: numRe\n }, {\n token: \"constant\",\n regex: \"[a-z0-9-_]+\"\n }, {\n caseInsensitive: true\n }],\n \"media\": [{\n include: [\"strings\", \"url\", \"comments\"]\n }, {\n token: \"paren.lparen\",\n regex: \"\\\\{\",\n next: \"start\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\",\n next: \"start\"\n }, {\n token: \"string\",\n regex: \";\",\n next: \"start\"\n }, {\n token: \"keyword\",\n regex: \"(?:media|supports|document|charset|import|namespace|media|supports|document\"\n + \"|page|font|keyframes|viewport|counter-style|font-feature-values\"\n + \"|swash|ornaments|annotation|stylistic|styleset|character-variant)\"\n }],\n \"comments\": [{\n token: \"comment\",\n regex: \"\\\\/\\\\*\",\n push: [{\n token: \"comment\",\n regex: \"\\\\*\\\\/\",\n next: \"pop\"\n }, {\n defaultToken: \"comment\"\n }]\n }],\n \"ruleset\": [{\n regex: \"-(webkit|ms|moz|o)-\",\n token: \"text\"\n }, {\n token: \"punctuation.operator\",\n regex: \"[:;]\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\",\n next: \"start\"\n }, {\n include: [\"strings\", \"url\", \"comments\"]\n }, {\n token: [\"constant.numeric\", \"keyword\"],\n regex: \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"\n }, {\n token: \"constant.numeric\",\n regex: numRe\n }, {\n token: \"constant.numeric\",\n regex: \"#[a-f0-9]{6}\"\n }, {\n token: \"constant.numeric\",\n regex: \"#[a-f0-9]{3}\"\n }, {\n token: [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n regex: pseudoElements\n }, {\n token: [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n regex: pseudoClasses\n }, {\n include: \"url\"\n }, {\n token: keywordMapper,\n regex: \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n }, {\n caseInsensitive: true\n }],\n url: [{\n token: \"support.function\",\n regex: \"(?:url(:?-prefix)?|domain|regexp)\\\\(\",\n push: [{\n token: \"support.function\",\n regex: \"\\\\)\",\n next: \"pop\"\n }, {\n defaultToken: \"string\"\n }]\n }],\n strings: [{\n token: \"string.start\",\n regex: \"'\",\n push: [{\n token: \"string.end\",\n regex: \"'|$\",\n next: \"pop\"\n }, {\n include: \"escapes\"\n }, {\n token: \"constant.language.escape\",\n regex: /\\\\$/,\n consumeLineEnd: true\n }, {\n defaultToken: \"string\"\n }]\n }, {\n token: \"string.start\",\n regex: '\"',\n push: [{\n token: \"string.end\",\n regex: '\"|$',\n next: \"pop\"\n }, {\n include: \"escapes\"\n }, {\n token: \"constant.language.escape\",\n regex: /\\\\$/,\n consumeLineEnd: true\n }, {\n defaultToken: \"string\"\n }]\n }],\n escapes: [{\n token: \"constant.language.escape\",\n regex: /\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/\n }]\n };\n this.normalizeRules();\n};\noop.inherits(CssHighlightRules, TextHighlightRules);\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar propertyMap = {\n \"background\": { \"#$0\": 1 },\n \"background-color\": { \"#$0\": 1, \"transparent\": 1, \"fixed\": 1 },\n \"background-image\": { \"url('/$0')\": 1 },\n \"background-repeat\": { \"repeat\": 1, \"repeat-x\": 1, \"repeat-y\": 1, \"no-repeat\": 1, \"inherit\": 1 },\n \"background-position\": { \"bottom\": 2, \"center\": 2, \"left\": 2, \"right\": 2, \"top\": 2, \"inherit\": 2 },\n \"background-attachment\": { \"scroll\": 1, \"fixed\": 1 },\n \"background-size\": { \"cover\": 1, \"contain\": 1 },\n \"background-clip\": { \"border-box\": 1, \"padding-box\": 1, \"content-box\": 1 },\n \"background-origin\": { \"border-box\": 1, \"padding-box\": 1, \"content-box\": 1 },\n \"border\": { \"solid $0\": 1, \"dashed $0\": 1, \"dotted $0\": 1, \"#$0\": 1 },\n \"border-color\": { \"#$0\": 1 },\n \"border-style\": { \"solid\": 2, \"dashed\": 2, \"dotted\": 2, \"double\": 2, \"groove\": 2, \"hidden\": 2, \"inherit\": 2, \"inset\": 2, \"none\": 2, \"outset\": 2, \"ridged\": 2 },\n \"border-collapse\": { \"collapse\": 1, \"separate\": 1 },\n \"bottom\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"clear\": { \"left\": 1, \"right\": 1, \"both\": 1, \"none\": 1 },\n \"color\": { \"#$0\": 1, \"rgb(#$00,0,0)\": 1 },\n \"cursor\": { \"default\": 1, \"pointer\": 1, \"move\": 1, \"text\": 1, \"wait\": 1, \"help\": 1, \"progress\": 1, \"n-resize\": 1, \"ne-resize\": 1, \"e-resize\": 1, \"se-resize\": 1, \"s-resize\": 1, \"sw-resize\": 1, \"w-resize\": 1, \"nw-resize\": 1 },\n \"display\": { \"none\": 1, \"block\": 1, \"inline\": 1, \"inline-block\": 1, \"table-cell\": 1 },\n \"empty-cells\": { \"show\": 1, \"hide\": 1 },\n \"float\": { \"left\": 1, \"right\": 1, \"none\": 1 },\n \"font-family\": { \"Arial\": 2, \"Comic Sans MS\": 2, \"Consolas\": 2, \"Courier New\": 2, \"Courier\": 2, \"Georgia\": 2, \"Monospace\": 2, \"Sans-Serif\": 2, \"Segoe UI\": 2, \"Tahoma\": 2, \"Times New Roman\": 2, \"Trebuchet MS\": 2, \"Verdana\": 1 },\n \"font-size\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"font-weight\": { \"bold\": 1, \"normal\": 1 },\n \"font-style\": { \"italic\": 1, \"normal\": 1 },\n \"font-variant\": { \"normal\": 1, \"small-caps\": 1 },\n \"height\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"left\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"letter-spacing\": { \"normal\": 1 },\n \"line-height\": { \"normal\": 1 },\n \"list-style-type\": { \"none\": 1, \"disc\": 1, \"circle\": 1, \"square\": 1, \"decimal\": 1, \"decimal-leading-zero\": 1, \"lower-roman\": 1, \"upper-roman\": 1, \"lower-greek\": 1, \"lower-latin\": 1, \"upper-latin\": 1, \"georgian\": 1, \"lower-alpha\": 1, \"upper-alpha\": 1 },\n \"margin\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-right\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-left\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-top\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-bottom\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"max-height\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"max-width\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"min-height\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"min-width\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"overflow\": { \"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1 },\n \"overflow-x\": { \"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1 },\n \"overflow-y\": { \"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1 },\n \"padding\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-top\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-right\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-bottom\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-left\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"page-break-after\": { \"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1 },\n \"page-break-before\": { \"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1 },\n \"position\": { \"absolute\": 1, \"relative\": 1, \"fixed\": 1, \"static\": 1 },\n \"right\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"table-layout\": { \"fixed\": 1, \"auto\": 1 },\n \"text-decoration\": { \"none\": 1, \"underline\": 1, \"line-through\": 1, \"blink\": 1 },\n \"text-align\": { \"left\": 1, \"right\": 1, \"center\": 1, \"justify\": 1 },\n \"text-transform\": { \"capitalize\": 1, \"uppercase\": 1, \"lowercase\": 1, \"none\": 1 },\n \"top\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"vertical-align\": { \"top\": 1, \"bottom\": 1 },\n \"visibility\": { \"hidden\": 1, \"visible\": 1 },\n \"white-space\": { \"nowrap\": 1, \"normal\": 1, \"pre\": 1, \"pre-line\": 1, \"pre-wrap\": 1 },\n \"width\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"word-spacing\": { \"normal\": 1 },\n \"filter\": { \"alpha(opacity=$0100)\": 1 },\n \"text-shadow\": { \"$02px 2px 2px #777\": 1 },\n \"text-overflow\": { \"ellipsis-word\": 1, \"clip\": 1, \"ellipsis\": 1 },\n \"-moz-border-radius\": 1,\n \"-moz-border-radius-topright\": 1,\n \"-moz-border-radius-bottomright\": 1,\n \"-moz-border-radius-topleft\": 1,\n \"-moz-border-radius-bottomleft\": 1,\n \"-webkit-border-radius\": 1,\n \"-webkit-border-top-right-radius\": 1,\n \"-webkit-border-top-left-radius\": 1,\n \"-webkit-border-bottom-right-radius\": 1,\n \"-webkit-border-bottom-left-radius\": 1,\n \"-moz-box-shadow\": 1,\n \"-webkit-box-shadow\": 1,\n \"transform\": { \"rotate($00deg)\": 1, \"skew($00deg)\": 1 },\n \"-moz-transform\": { \"rotate($00deg)\": 1, \"skew($00deg)\": 1 },\n \"-webkit-transform\": { \"rotate($00deg)\": 1, \"skew($00deg)\": 1 }\n};\nvar CssCompletions = function () {\n};\n(function () {\n this.completionsDefined = false;\n this.defineCompletions = function () {\n if (document) {\n var style = document.createElement('c').style;\n for (var i in style) {\n if (typeof style[i] !== 'string')\n continue;\n var name = i.replace(/[A-Z]/g, function (x) {\n return '-' + x.toLowerCase();\n });\n if (!propertyMap.hasOwnProperty(name))\n propertyMap[name] = 1;\n }\n }\n this.completionsDefined = true;\n };\n this.getCompletions = function (state, session, pos, prefix) {\n if (!this.completionsDefined) {\n this.defineCompletions();\n }\n if (state === 'ruleset' || session.$mode.$id == \"ace/mode/scss\") {\n var line = session.getLine(pos.row).substr(0, pos.column);\n var inParens = /\\([^)]*$/.test(line);\n if (inParens) {\n line = line.substr(line.lastIndexOf('(') + 1);\n }\n if (/:[^;]+$/.test(line)) {\n /([\\w\\-]+):[^:]*$/.test(line);\n return this.getPropertyValueCompletions(state, session, pos, prefix);\n }\n else {\n return this.getPropertyCompletions(state, session, pos, prefix, inParens);\n }\n }\n return [];\n };\n this.getPropertyCompletions = function (state, session, pos, prefix, skipSemicolon) {\n skipSemicolon = skipSemicolon || false;\n var properties = Object.keys(propertyMap);\n return properties.map(function (property) {\n return {\n caption: property,\n snippet: property + ': $0' + (skipSemicolon ? '' : ';'),\n meta: \"property\",\n score: 1000000\n };\n });\n };\n this.getPropertyValueCompletions = function (state, session, pos, prefix) {\n var line = session.getLine(pos.row).substr(0, pos.column);\n var property = (/([\\w\\-]+):[^:]*$/.exec(line) || {})[1];\n if (!property)\n return [];\n var values = [];\n if (property in propertyMap && typeof propertyMap[property] === \"object\") {\n values = Object.keys(propertyMap[property]);\n }\n return values.map(function (value) {\n return {\n caption: value,\n snippet: value,\n meta: \"property value\",\n score: 1000000\n };\n });\n };\n}).call(CssCompletions.prototype);\nexports.CssCompletions = CssCompletions;\n\n});\n\nace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar CstyleBehaviour = require(\"./cstyle\").CstyleBehaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar CssBehaviour = function () {\n this.inherit(CstyleBehaviour);\n this.add(\"colon\", \"insertion\", function (state, action, editor, session, text) {\n if (text === ':' && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.value.match(/\\s+/)) {\n token = iterator.stepBackward();\n }\n if (token && token.type === 'support.type') {\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === ':') {\n return {\n text: '',\n selection: [1, 1]\n };\n }\n if (/^(\\s+[^;]|\\s*$)/.test(line.substring(cursor.column))) {\n return {\n text: ':;',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"colon\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected === ':') {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.value.match(/\\s+/)) {\n token = iterator.stepBackward();\n }\n if (token && token.type === 'support.type') {\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar === ';') {\n range.end.column++;\n return range;\n }\n }\n }\n });\n this.add(\"semicolon\", \"insertion\", function (state, action, editor, session, text) {\n if (text === ';' && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === ';') {\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"!important\", \"insertion\", function (state, action, editor, session, text) {\n if (text === '!' && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (/^\\s*(;|}|$)/.test(line.substring(cursor.column))) {\n return {\n text: '!important',\n selection: [10, 10]\n };\n }\n }\n });\n};\noop.inherits(CssBehaviour, CstyleBehaviour);\nexports.CssBehaviour = CssBehaviour;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CssCompletions = require(\"./css_completions\").CssCompletions;\nvar CssBehaviour = require(\"./behaviour/css\").CssBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = CssHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CssBehaviour();\n this.$completer = new CssCompletions();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.foldingRules = \"cStyle\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n var match = line.match(/^.*\\{\\s*$/);\n if (match) {\n indent += tab;\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.getCompletions = function (state, session, pos, prefix) {\n return this.$completer.getCompletions(state, session, pos, prefix);\n };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/css_worker\", \"Worker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"annotate\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/css\";\n this.snippetFileId = \"ace/snippets/css\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/css\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar DocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n }, DocCommentHighlightRules.getTagRule(), {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ]\n };\n};\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\nDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/golang_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar GolangHighlightRules = function () {\n var keywords = (\"else|break|case|return|goto|if|const|select|\" +\n \"continue|struct|default|switch|for|range|\" +\n \"func|import|package|chan|defer|fallthrough|go|interface|map|range|\" +\n \"select|type|var\");\n var builtinTypes = (\"string|uint8|uint16|uint32|uint64|int8|int16|int32|int64|float32|\" +\n \"float64|complex64|complex128|byte|rune|uint|int|uintptr|bool|error\");\n var builtinFunctions = (\"new|close|cap|copy|panic|panicln|print|println|len|make|delete|real|recover|imag|append\");\n var builtinConstants = (\"nil|true|false|iota\");\n var keywordMapper = this.createKeywordMapper({\n \"keyword\": keywords,\n \"constant.language\": builtinConstants,\n \"support.function\": builtinFunctions,\n \"support.type\": builtinTypes\n }, \"\");\n var stringEscapeRe = \"\\\\\\\\(?:[0-7]{3}|x\\\\h{2}|u{4}|U\\\\h{6}|[abfnrtv'\\\"\\\\\\\\])\".replace(/\\\\h/g, \"[a-fA-F\\\\d]\");\n this.$rules = {\n \"start\": [\n {\n token: \"comment\",\n regex: \"\\\\/\\\\/.*$\"\n },\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n {\n token: \"comment.start\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"string\",\n regex: /\"(?:[^\"\\\\]|\\\\.)*?\"/\n }, {\n token: \"string\",\n regex: '`',\n next: \"bqstring\"\n }, {\n token: \"constant.numeric\",\n regex: \"'(?:[^\\\\'\\uD800-\\uDBFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|\" + stringEscapeRe.replace('\"', '') + \")'\"\n }, {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token: [\"keyword\", \"text\", \"entity.name.function\"],\n regex: \"(func)(\\\\s+)([a-zA-Z_$][a-zA-Z0-9_$]*)\\\\b\"\n }, {\n token: function (val) {\n if (val[val.length - 1] == \"(\") {\n return [{\n type: keywordMapper(val.slice(0, -1)) || \"support.function\",\n value: val.slice(0, -1)\n }, {\n type: \"paren.lparen\",\n value: val.slice(-1)\n }];\n }\n return keywordMapper(val) || \"identifier\";\n },\n regex: \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\\\\(?\"\n }, {\n token: \"keyword.operator\",\n regex: \"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=\"\n }, {\n token: \"punctuation.operator\",\n regex: \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}]\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"comment\": [\n {\n token: \"comment.end\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ],\n \"bqstring\": [\n {\n token: \"string\",\n regex: '`',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }\n ]\n };\n this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"start\")]);\n};\noop.inherits(GolangHighlightRules, TextHighlightRules);\nexports.GolangHighlightRules = GolangHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/golang\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/golang_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar GolangHighlightRules = require(\"./golang_highlight_rules\").GolangHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = GolangHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.foldingRules = new CStyleFoldMode();\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n var endState = tokenizedLine.state;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n }; //end getNextLineIndent\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.$id = \"ace/mode/golang\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/golang\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/jsdoc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JsDocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: [\"comment.doc.tag\", \"comment.doc.text\", \"lparen.doc\"],\n regex: \"(@(?:param|member|typedef|property|namespace|var|const|callback))(\\\\s*)({)\",\n push: [\n {\n token: \"lparen.doc\",\n regex: \"{\",\n push: [\n {\n include: \"doc-syntax\"\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }\n ]\n }, {\n token: [\"rparen.doc\", \"text.doc\", \"variable.parameter.doc\", \"lparen.doc\", \"variable.parameter.doc\", \"rparen.doc\"],\n regex: /(})(\\s*)(?:([\\w=:\\/\\.]+)|(?:(\\[)([\\w=:\\/\\.]+)(\\])))/,\n next: \"pop\"\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }, {\n include: \"doc-syntax\"\n }, {\n defaultToken: \"text.doc\"\n }\n ]\n }, {\n token: [\"comment.doc.tag\", \"text.doc\", \"lparen.doc\"],\n regex: \"(@(?:returns?|yields|type|this|suppress|public|protected|private|package|modifies|\"\n + \"implements|external|exception|throws|enum|define|extends))(\\\\s*)({)\",\n push: [\n {\n token: \"lparen.doc\",\n regex: \"{\",\n push: [\n {\n include: \"doc-syntax\"\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }\n ]\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }, {\n include: \"doc-syntax\"\n }, {\n defaultToken: \"text.doc\"\n }\n ]\n }, {\n token: [\"comment.doc.tag\", \"text.doc\", \"variable.parameter.doc\"],\n regex: \"(@(?:alias|memberof|instance|module|name|lends|namespace|external|this|template|\"\n + \"requires|param|implements|function|extends|typedef|mixes|constructor|var|\"\n + \"memberof\\\\!|event|listens|exports|class|constructs|interface|emits|fires|\"\n + \"throws|const|callback|borrows|augments))(\\\\s+)(\\\\w[\\\\w#\\.:\\/~\\\"\\\\-]*)?\"\n }, {\n token: [\"comment.doc.tag\", \"text.doc\", \"variable.parameter.doc\"],\n regex: \"(@method)(\\\\s+)(\\\\w[\\\\w\\.\\\\(\\\\)]*)\"\n }, {\n token: \"comment.doc.tag\",\n regex: \"@access\\\\s+(?:private|public|protected)\"\n }, {\n token: \"comment.doc.tag\",\n regex: \"@kind\\\\s+(?:class|constant|event|external|file|function|member|mixin|module|namespace|typedef)\"\n }, {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n },\n JsDocCommentHighlightRules.getTagRule(),\n {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ],\n \"doc-syntax\": [{\n token: \"operator.doc\",\n regex: /[|:]/\n }, {\n token: \"paren.doc\",\n regex: /[\\[\\]]/\n }]\n };\n this.normalizeRules();\n};\noop.inherits(JsDocCommentHighlightRules, TextHighlightRules);\nJsDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nJsDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nJsDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.JsDocCommentHighlightRules = JsDocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/jsdoc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./jsdoc_comment_highlight_rules\").JsDocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\nvar JavaScriptHighlightRules = function (options) {\n var keywordMapper = this.createKeywordMapper({\n \"variable.language\": \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|\" + // Constructors\n \"Namespace|QName|XML|XMLList|\" + // E4X\n \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\" +\n \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\" +\n \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\" + // Errors\n \"SyntaxError|TypeError|URIError|\" +\n \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n \"isNaN|parseFloat|parseInt|\" +\n \"JSON|Math|\" + // Other\n \"this|arguments|prototype|window|document\",\n \"keyword\": \"const|yield|import|get|set|async|await|\" +\n \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static|constructor\",\n \"storage.type\": \"const|let|var|function\",\n \"constant.language\": \"null|Infinity|NaN|undefined\",\n \"support.function\": \"alert\",\n \"constant.language.boolean\": \"true|false\"\n }, \"identifier\");\n var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n \"u[0-9a-fA-F]{4}|\" + // unicode\n \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n \"[0-2][0-7]{0,2}|\" + // oct\n \"3[0-7][0-7]?|\" + // oct\n \"[4-7][0-7]?|\" + //oct\n \".)\";\n this.$rules = {\n \"no_regex\": [\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n comments(\"no_regex\"),\n {\n token: \"string\",\n regex: \"'(?=.)\",\n next: \"qstring\"\n }, {\n token: \"string\",\n regex: '\"(?=.)',\n next: \"qqstring\"\n }, {\n token: \"constant.numeric\",\n regex: /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/\n }, {\n token: \"constant.numeric\",\n regex: /(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"support.function\",\n \"punctuation.operator\", \"entity.name.function\", \"text\", \"keyword.operator\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)\",\n next: \"function_arguments\"\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\",\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex: \"(function\\\\*?)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"entity.name.function\", \"text\", \"punctuation.operator\",\n \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex: \"(:)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: \"keyword\",\n regex: \"from(?=\\\\s*('|\\\"))\"\n }, {\n token: \"keyword\",\n regex: \"(?:\" + kwBeforeRe + \")\\\\b\",\n next: \"start\"\n }, {\n token: \"support.constant\",\n regex: /that\\b/\n }, {\n token: [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n regex: /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n }, {\n token: keywordMapper,\n regex: identifierRe\n }, {\n token: \"punctuation.operator\",\n regex: /[.](?![.])/,\n next: \"property\"\n }, {\n token: \"storage.type\",\n regex: /=>/,\n next: \"start\"\n }, {\n token: \"keyword.operator\",\n regex: /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n next: \"start\"\n }, {\n token: \"punctuation.operator\",\n regex: /[?:,;.]/,\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: /[\\[({]/,\n next: \"start\"\n }, {\n token: \"paren.rparen\",\n regex: /[\\])}]/\n }, {\n token: \"comment\",\n regex: /^#!.*$/\n }\n ],\n property: [{\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\",\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: \"punctuation.operator\",\n regex: /[.](?![.])/\n }, {\n token: \"support.function\",\n regex: /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|lter|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward|rEach)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n }, {\n token: \"support.function.dom\",\n regex: /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n }, {\n token: \"support.constant\",\n regex: /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n }, {\n token: \"identifier\",\n regex: identifierRe\n }, {\n regex: \"\",\n token: \"empty\",\n next: \"no_regex\"\n }\n ],\n \"start\": [\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n comments(\"start\"),\n {\n token: \"string.regexp\",\n regex: \"\\\\/\",\n next: \"regex\"\n }, {\n token: \"text\",\n regex: \"\\\\s+|^$\",\n next: \"start\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"regex\": [\n {\n token: \"regexp.keyword.operator\",\n regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n }, {\n token: \"string.regexp\",\n regex: \"/[sxngimy]*\",\n next: \"no_regex\"\n }, {\n token: \"invalid\",\n regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n }, {\n token: \"constant.language.escape\",\n regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n }, {\n token: \"constant.language.delimiter\",\n regex: /\\|/\n }, {\n token: \"constant.language.escape\",\n regex: /\\[\\^?/,\n next: \"regex_character_class\"\n }, {\n token: \"empty\",\n regex: \"$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string.regexp\"\n }\n ],\n \"regex_character_class\": [\n {\n token: \"regexp.charclass.keyword.operator\",\n regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n }, {\n token: \"constant.language.escape\",\n regex: \"]\",\n next: \"regex\"\n }, {\n token: \"constant.language.escape\",\n regex: \"-\"\n }, {\n token: \"empty\",\n regex: \"$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string.regexp.charachterclass\"\n }\n ],\n \"default_parameter\": [\n {\n token: \"string\",\n regex: \"'(?=.)\",\n push: [\n {\n token: \"string\",\n regex: \"'|$\",\n next: \"pop\"\n }, {\n include: \"qstring\"\n }\n ]\n }, {\n token: \"string\",\n regex: '\"(?=.)',\n push: [\n {\n token: \"string\",\n regex: '\"|$',\n next: \"pop\"\n }, {\n include: \"qqstring\"\n }\n ]\n }, {\n token: \"constant.language\",\n regex: \"null|Infinity|NaN|undefined\"\n }, {\n token: \"constant.numeric\",\n regex: /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/\n }, {\n token: \"constant.numeric\",\n regex: /(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/\n }, {\n token: \"punctuation.operator\",\n regex: \",\",\n next: \"function_arguments\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n token: \"punctuation.operator\",\n regex: \"$\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"function_arguments\": [\n comments(\"function_arguments\"),\n {\n token: \"variable.parameter\",\n regex: identifierRe\n }, {\n token: \"punctuation.operator\",\n regex: \",\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n token: \"punctuation.operator\",\n regex: \"$\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"qqstring\": [\n {\n token: \"constant.language.escape\",\n regex: escapedRe\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n consumeLineEnd: true\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"no_regex\"\n }, {\n defaultToken: \"string\"\n }\n ],\n \"qstring\": [\n {\n token: \"constant.language.escape\",\n regex: escapedRe\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n consumeLineEnd: true\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string\"\n }\n ]\n };\n if (!options || !options.noES6) {\n this.$rules.no_regex.unshift({\n regex: \"[{}]\", onMatch: function (val, state, stack) {\n this.next = val == \"{\" ? this.nextState : \"\";\n if (val == \"{\" && stack.length) {\n stack.unshift(\"start\", state);\n }\n else if (val == \"}\" && stack.length) {\n stack.shift();\n this.next = stack.shift();\n if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n return \"paren.quasi.end\";\n }\n return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n },\n nextState: \"start\"\n }, {\n token: \"string.quasi.start\",\n regex: /`/,\n push: [{\n token: \"constant.language.escape\",\n regex: escapedRe\n }, {\n token: \"paren.quasi.start\",\n regex: /\\${/,\n push: \"start\"\n }, {\n token: \"string.quasi.end\",\n regex: /`/,\n next: \"pop\"\n }, {\n defaultToken: \"string.quasi\"\n }]\n }, {\n token: [\"variable.parameter\", \"text\"],\n regex: \"(\" + identifierRe + \")(\\\\s*)(?=\\\\=>)\"\n }, {\n token: \"paren.lparen\",\n regex: \"(\\\\()(?=.+\\\\s*=>)\",\n next: \"function_arguments\"\n }, {\n token: \"variable.language\",\n regex: \"(?:(?:(?:Weak)?(?:Set|Map))|Promise)\\\\b\"\n });\n this.$rules[\"function_arguments\"].unshift({\n token: \"keyword.operator\",\n regex: \"=\",\n next: \"default_parameter\"\n }, {\n token: \"keyword.operator\",\n regex: \"\\\\.{3}\"\n });\n this.$rules[\"property\"].unshift({\n token: \"support.function\",\n regex: \"(findIndex|repeat|startsWith|endsWith|includes|isSafeInteger|trunc|cbrt|log2|log10|sign|then|catch|\"\n + \"finally|resolve|reject|race|any|all|allSettled|keys|entries|isInteger)\\\\b(?=\\\\()\"\n }, {\n token: \"constant.language\",\n regex: \"(?:MAX_SAFE_INTEGER|MIN_SAFE_INTEGER|EPSILON)\\\\b\"\n });\n if (!options || options.jsx != false)\n JSX.call(this);\n }\n this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"no_regex\")]);\n this.normalizeRules();\n};\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\nfunction JSX() {\n var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n var jsxTag = {\n onMatch: function (val, state, stack) {\n var offset = val.charAt(1) == \"/\" ? 2 : 1;\n if (offset == 1) {\n if (state != this.nextState)\n stack.unshift(this.next, this.nextState, 0);\n else\n stack.unshift(this.next);\n stack[2]++;\n }\n else if (offset == 2) {\n if (state == this.nextState) {\n stack[1]--;\n if (!stack[1] || stack[1] < 0) {\n stack.shift();\n stack.shift();\n }\n }\n }\n return [{\n type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n value: val.slice(0, offset)\n }, {\n type: \"meta.tag.tag-name.xml\",\n value: val.substr(offset)\n }];\n },\n regex: \"\",\n onMatch: function (value, currentState, stack) {\n if (currentState == stack[0])\n stack.shift();\n if (value.length == 2) {\n if (stack[0] == this.nextState)\n stack[1]--;\n if (!stack[1] || stack[1] < 0) {\n stack.splice(0, 2);\n }\n }\n this.next = stack[0] || \"start\";\n return [{ type: this.token, value: value }];\n },\n nextState: \"jsx\"\n },\n jsxJsRule,\n comments(\"jsxAttributes\"),\n {\n token: \"entity.other.attribute-name.xml\",\n regex: tagRegex\n }, {\n token: \"keyword.operator.attribute-equals.xml\",\n regex: \"=\"\n }, {\n token: \"text.tag-whitespace.xml\",\n regex: \"\\\\s+\"\n }, {\n token: \"string.attribute-value.xml\",\n regex: \"'\",\n stateName: \"jsx_attr_q\",\n push: [\n { token: \"string.attribute-value.xml\", regex: \"'\", next: \"pop\" },\n { include: \"reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }, {\n token: \"string.attribute-value.xml\",\n regex: '\"',\n stateName: \"jsx_attr_qq\",\n push: [\n { token: \"string.attribute-value.xml\", regex: '\"', next: \"pop\" },\n { include: \"reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n },\n jsxTag\n ];\n this.$rules.reference = [{\n token: \"constant.language.escape.reference.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }];\n}\nfunction comments(next) {\n return [\n {\n token: \"comment\",\n regex: /\\/\\*/,\n next: [\n DocCommentHighlightRules.getTagRule(),\n { token: \"comment\", regex: \"\\\\*\\\\/\", next: next || \"pop\" },\n { defaultToken: \"comment\", caseInsensitive: true }\n ]\n }, {\n token: \"comment\",\n regex: \"\\\\/\\\\/\",\n next: [\n DocCommentHighlightRules.getTagRule(),\n { token: \"comment\", regex: \"$|^\", next: next || \"pop\" },\n { defaultToken: \"comment\", caseInsensitive: true }\n ]\n }\n ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = JavaScriptHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CstyleBehaviour();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.$quotes = { '\"': '\"', \"'\": \"'\", \"`\": \"`\" };\n this.$pairQuotesAfter = {\n \"`\": /\\w/\n };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n var endState = tokenizedLine.state;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\" || state == \"no_regex\") {\n var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n else if (state == \"doc-start\") {\n if (endState == \"start\" || endState == \"no_regex\") {\n return \"\";\n }\n var match = line.match(/^\\s*(\\/?)\\*/);\n if (match) {\n if (match[1]) {\n indent += \" \";\n }\n indent += \"* \";\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"annotate\", function (results) {\n session.setAnnotations(results.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/javascript\";\n this.snippetFileId = \"ace/snippets/javascript\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/javascript\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/json_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JsonHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"variable\",\n regex: '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]\\\\s*(?=:)'\n }, {\n token: \"string\",\n regex: '\"',\n next: \"string\"\n }, {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token: \"constant.language.boolean\",\n regex: \"(?:true|false)\\\\b\"\n }, {\n token: \"text\",\n regex: \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token: \"comment\",\n regex: \"\\\\/\\\\/.*$\"\n }, {\n token: \"comment.start\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}]\"\n }, {\n token: \"punctuation.operator\",\n regex: /[,]/\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"string\": [\n {\n token: \"constant.language.escape\",\n regex: /\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[\"\\\\\\/bfnrt])/\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }\n ],\n \"comment\": [\n {\n token: \"comment.end\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ]\n };\n};\noop.inherits(JsonHighlightRules, TextHighlightRules);\nexports.JsonHighlightRules = JsonHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/json\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/json_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\",\"ace/worker/worker_client\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar HighlightRules = require(\"./json_highlight_rules\").JsonHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar Mode = function () {\n this.HighlightRules = HighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = this.$defaultBehaviour;\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/json_worker\", \"JsonWorker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"annotate\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/json\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/json\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar DocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n }, DocCommentHighlightRules.getTagRule(), {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ]\n };\n};\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\nDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/jsx_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JsxHighlightRules = function () {\n var keywords = lang.arrayToMap((\"break|do|instanceof|typeof|case|else|new|var|catch|finally|return|void|continue|for|switch|default|while|function|this|\" +\n \"if|throw|\" +\n \"delete|in|try|\" +\n \"class|extends|super|import|from|into|implements|interface|static|mixin|override|abstract|final|\" +\n \"number|int|string|boolean|variant|\" +\n \"log|assert\").split(\"|\"));\n var buildinConstants = lang.arrayToMap((\"null|true|false|NaN|Infinity|__FILE__|__LINE__|undefined\").split(\"|\"));\n var reserved = lang.arrayToMap((\"debugger|with|\" +\n \"const|export|\" +\n \"let|private|public|yield|protected|\" +\n \"extern|native|as|operator|__fake__|__readonly__\").split(\"|\"));\n var identifierRe = \"[a-zA-Z_][a-zA-Z0-9_]*\\\\b\";\n this.$rules = {\n \"start\": [\n {\n token: \"comment\",\n regex: \"\\\\/\\\\/.*$\"\n },\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n {\n token: \"comment\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"string.regexp\",\n regex: \"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"\n }, {\n token: \"string\",\n regex: '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n }, {\n token: \"string\",\n regex: \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token: \"constant.language.boolean\",\n regex: \"(?:true|false)\\\\b\"\n }, {\n token: [\n \"storage.type\",\n \"text\",\n \"entity.name.function\"\n ],\n regex: \"(function)(\\\\s+)(\" + identifierRe + \")\"\n }, {\n token: function (value) {\n if (value == \"this\")\n return \"variable.language\";\n else if (value == \"function\")\n return \"storage.type\";\n else if (keywords.hasOwnProperty(value) || reserved.hasOwnProperty(value))\n return \"keyword\";\n else if (buildinConstants.hasOwnProperty(value))\n return \"constant.language\";\n else if (/^_?[A-Z][a-zA-Z0-9_]*$/.test(value))\n return \"language.support.class\";\n else\n return \"identifier\";\n },\n regex: identifierRe\n }, {\n token: \"keyword.operator\",\n regex: \"!|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"\n }, {\n token: \"punctuation.operator\",\n regex: \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({<]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}>]\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"comment\": [\n {\n token: \"comment\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ]\n };\n this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"start\")]);\n};\noop.inherits(JsxHighlightRules, TextHighlightRules);\nexports.JsxHighlightRules = JsxHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/jsx\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/jsx_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JsxHighlightRules = require(\"./jsx_highlight_rules\").JsxHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nfunction Mode() {\n this.HighlightRules = JsxHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = this.$defaultBehaviour;\n this.foldingRules = new CStyleFoldMode();\n}\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.$id = \"ace/mode/jsx\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/jsx\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/python_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){/*\n * TODO: python delimiters\n */\n\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar PythonHighlightRules = function () {\n var keywords = (\"and|as|assert|break|class|continue|def|del|elif|else|except|exec|\" +\n \"finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|\" +\n \"raise|return|try|while|with|yield|async|await|nonlocal\");\n var builtinConstants = (\"True|False|None|NotImplemented|Ellipsis|__debug__\");\n var builtinFunctions = (\"abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|\" +\n \"eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|\" +\n \"binfile|bin|iter|property|tuple|bool|filter|len|range|type|bytearray|\" +\n \"float|list|raw_input|unichr|callable|format|locals|reduce|unicode|\" +\n \"chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|\" +\n \"cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|\" +\n \"__import__|complex|hash|min|apply|delattr|help|next|setattr|set|\" +\n \"buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern|\" +\n \"ascii|breakpoint|bytes\");\n var keywordMapper = this.createKeywordMapper({\n \"invalid.deprecated\": \"debugger\",\n \"support.function\": builtinFunctions,\n \"variable.language\": \"self|cls\",\n \"constant.language\": builtinConstants,\n \"keyword\": keywords\n }, \"identifier\");\n var strPre = \"[uU]?\";\n var strRawPre = \"[rR]\";\n var strFormatPre = \"[fF]\";\n var strRawFormatPre = \"(?:[rR][fF]|[fF][rR])\";\n var decimalInteger = \"(?:(?:[1-9]\\\\d*)|(?:0))\";\n var octInteger = \"(?:0[oO]?[0-7]+)\";\n var hexInteger = \"(?:0[xX][\\\\dA-Fa-f]+)\";\n var binInteger = \"(?:0[bB][01]+)\";\n var integer = \"(?:\" + decimalInteger + \"|\" + octInteger + \"|\" + hexInteger + \"|\" + binInteger + \")\";\n var exponent = \"(?:[eE][+-]?\\\\d+)\";\n var fraction = \"(?:\\\\.\\\\d+)\";\n var intPart = \"(?:\\\\d+)\";\n var pointFloat = \"(?:(?:\" + intPart + \"?\" + fraction + \")|(?:\" + intPart + \"\\\\.))\";\n var exponentFloat = \"(?:(?:\" + pointFloat + \"|\" + intPart + \")\" + exponent + \")\";\n var floatNumber = \"(?:\" + exponentFloat + \"|\" + pointFloat + \")\";\n var stringEscape = \"\\\\\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\\\\\abfnrtv'\\\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})\";\n this.$rules = {\n \"start\": [{\n token: \"comment\",\n regex: \"#.*$\"\n }, {\n token: \"string\",\n regex: strPre + '\"{3}',\n next: \"qqstring3\"\n }, {\n token: \"string\",\n regex: strPre + '\"(?=.)',\n next: \"qqstring\"\n }, {\n token: \"string\",\n regex: strPre + \"'{3}\",\n next: \"qstring3\"\n }, {\n token: \"string\",\n regex: strPre + \"'(?=.)\",\n next: \"qstring\"\n }, {\n token: \"string\",\n regex: strRawPre + '\"{3}',\n next: \"rawqqstring3\"\n }, {\n token: \"string\",\n regex: strRawPre + '\"(?=.)',\n next: \"rawqqstring\"\n }, {\n token: \"string\",\n regex: strRawPre + \"'{3}\",\n next: \"rawqstring3\"\n }, {\n token: \"string\",\n regex: strRawPre + \"'(?=.)\",\n next: \"rawqstring\"\n }, {\n token: \"string\",\n regex: strFormatPre + '\"{3}',\n next: \"fqqstring3\"\n }, {\n token: \"string\",\n regex: strFormatPre + '\"(?=.)',\n next: \"fqqstring\"\n }, {\n token: \"string\",\n regex: strFormatPre + \"'{3}\",\n next: \"fqstring3\"\n }, {\n token: \"string\",\n regex: strFormatPre + \"'(?=.)\",\n next: \"fqstring\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + '\"{3}',\n next: \"rfqqstring3\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + '\"(?=.)',\n next: \"rfqqstring\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + \"'{3}\",\n next: \"rfqstring3\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + \"'(?=.)\",\n next: \"rfqstring\"\n }, {\n token: \"keyword.operator\",\n regex: \"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|%|@|<<|>>|&|\\\\||\\\\^|~|<|>|<=|=>|==|!=|<>|=\"\n }, {\n token: \"punctuation\",\n regex: \",|:|;|\\\\->|\\\\+=|\\\\-=|\\\\*=|\\\\/=|\\\\/\\\\/=|%=|@=|&=|\\\\|=|^=|>>=|<<=|\\\\*\\\\*=\"\n }, {\n token: \"paren.lparen\",\n regex: \"[\\\\[\\\\(\\\\{]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\]\\\\)\\\\}]\"\n }, {\n token: [\"keyword\", \"text\", \"entity.name.function\"],\n regex: \"(def|class)(\\\\s+)([\\\\u00BF-\\\\u1FFF\\\\u2C00-\\\\uD7FF\\\\w]+)\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n include: \"constants\"\n }],\n \"qqstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"qstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"qqstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"qqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"qstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"qstring\"\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqqstring3\": [{\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqstring3\": [{\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqqstring\": [{\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"rawqqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqstring\": [{\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"rawqstring\"\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqqstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqqstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"fqqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqqstring3\": [{\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqstring3\": [{\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqqstring\": [{\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"rfqqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqstring\": [{\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqstringParRules\": [{\n token: \"paren.lparen\",\n regex: \"[\\\\[\\\\(]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\]\\\\)]\"\n }, {\n token: \"string\",\n regex: \"\\\\s+\"\n }, {\n token: \"string\",\n regex: \"'[^']*'\"\n }, {\n token: \"string\",\n regex: '\"[^\"]*\"'\n }, {\n token: \"function.support\",\n regex: \"(!s|!r|!a)\"\n }, {\n include: \"constants\"\n }, {\n token: 'paren.rparen',\n regex: \"}\",\n next: 'pop'\n }, {\n token: 'paren.lparen',\n regex: \"{\",\n push: \"fqstringParRules\"\n }],\n \"constants\": [{\n token: \"constant.numeric\",\n regex: \"(?:\" + floatNumber + \"|\\\\d+)[jJ]\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: floatNumber\n }, {\n token: \"constant.numeric\",\n regex: integer + \"[lL]\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: integer + \"\\\\b\"\n }, {\n token: [\"punctuation\", \"function.support\"],\n regex: \"(\\\\.)([a-zA-Z_]+)\\\\b\"\n }, {\n token: keywordMapper,\n regex: \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n }]\n };\n this.normalizeRules();\n};\noop.inherits(PythonHighlightRules, TextHighlightRules);\nexports.PythonHighlightRules = PythonHighlightRules;\n\n});\n\nace.define(\"ace/mode/folding/pythonic\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (markers) {\n this.foldingStartMarker = new RegExp(\"([\\\\[{])(?:\\\\s*)$|(\" + markers + \")(?:\\\\s*)(?:#.*)?$\");\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n var line = session.getLine(row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, match.index);\n if (match[2])\n return this.indentationBlock(session, row, match.index + match[2].length);\n return this.indentationBlock(session, row);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/python\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/python_highlight_rules\",\"ace/mode/folding/pythonic\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar PythonHighlightRules = require(\"./python_highlight_rules\").PythonHighlightRules;\nvar PythonFoldMode = require(\"./folding/pythonic\").FoldMode;\nvar Range = require(\"../range\").Range;\nvar Mode = function () {\n this.HighlightRules = PythonHighlightRules;\n this.foldingRules = new PythonFoldMode(\"\\\\:\");\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"#\";\n this.$pairQuotesAfter = {\n \"'\": /[ruf]/i,\n '\"': /[ruf]/i\n };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[:]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n };\n var outdents = {\n \"pass\": 1,\n \"return\": 1,\n \"raise\": 1,\n \"break\": 1,\n \"continue\": 1\n };\n this.checkOutdent = function (state, line, input) {\n if (input !== \"\\r\\n\" && input !== \"\\r\" && input !== \"\\n\")\n return false;\n var tokens = this.getTokenizer().getLineTokens(line.trim(), state).tokens;\n if (!tokens)\n return false;\n do {\n var last = tokens.pop();\n } while (last && (last.type == \"comment\" || (last.type == \"text\" && last.value.match(/^\\s+$/))));\n if (!last)\n return false;\n return (last.type == \"keyword\" && outdents[last.value]);\n };\n this.autoOutdent = function (state, doc, row) {\n row += 1;\n var indent = this.$getIndent(doc.getLine(row));\n var tab = doc.getTabString();\n if (indent.slice(-tab.length) == tab)\n doc.remove(new Range(row, indent.length - tab.length, row, indent.length));\n };\n this.$id = \"ace/mode/python\";\n this.snippetFileId = \"ace/snippets/python\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/python\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar XmlHighlightRules = function (normalize) {\n var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n this.$rules = {\n start: [\n { token: \"string.cdata.xml\", regex: \"<\\\\!\\\\[CDATA\\\\[\", next: \"cdata\" },\n {\n token: [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n regex: \"(<\\\\?)(\" + tagRegex + \")\", next: \"processing_instruction\"\n },\n { token: \"comment.start.xml\", regex: \"<\\\\!--\", next: \"comment\" },\n {\n token: [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n regex: \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next: \"doctype\", caseInsensitive: true\n },\n { include: \"tag\" },\n { token: \"text.end-tag-open.xml\", regex: \"\",\n next: \"start\"\n }],\n doctype: [\n { include: \"whitespace\" },\n { include: \"string\" },\n { token: \"xml-pe.doctype.xml\", regex: \">\", next: \"start\" },\n { token: \"xml-pe.xml\", regex: \"[-_a-zA-Z0-9:]+\" },\n { token: \"punctuation.int-subset\", regex: \"\\\\[\", push: \"int_subset\" }\n ],\n int_subset: [{\n token: \"text.xml\",\n regex: \"\\\\s+\"\n }, {\n token: \"punctuation.int-subset.xml\",\n regex: \"]\",\n next: \"pop\"\n }, {\n token: [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n regex: \"(<\\\\!)(\" + tagRegex + \")\",\n push: [{\n token: \"text\",\n regex: \"\\\\s+\"\n },\n {\n token: \"punctuation.markup-decl.xml\",\n regex: \">\",\n next: \"pop\"\n },\n { include: \"string\" }]\n }],\n cdata: [\n { token: \"string.cdata.xml\", regex: \"\\\\]\\\\]>\", next: \"start\" },\n { token: \"text.xml\", regex: \"\\\\s+\" },\n { token: \"text.xml\", regex: \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\" }\n ],\n comment: [\n { token: \"comment.end.xml\", regex: \"-->\", next: \"start\" },\n { defaultToken: \"comment.xml\" }\n ],\n reference: [{\n token: \"constant.language.escape.reference.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }],\n attr_reference: [{\n token: \"constant.language.escape.reference.attribute-value.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }],\n tag: [{\n token: [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n regex: \"(?:(<)|(\", next: \"start\" }\n ]\n }],\n tag_whitespace: [\n { token: \"text.tag-whitespace.xml\", regex: \"\\\\s+\" }\n ],\n whitespace: [\n { token: \"text.whitespace.xml\", regex: \"\\\\s+\" }\n ],\n string: [{\n token: \"string.xml\",\n regex: \"'\",\n push: [\n { token: \"string.xml\", regex: \"'\", next: \"pop\" },\n { defaultToken: \"string.xml\" }\n ]\n }, {\n token: \"string.xml\",\n regex: '\"',\n push: [\n { token: \"string.xml\", regex: '\"', next: \"pop\" },\n { defaultToken: \"string.xml\" }\n ]\n }],\n attributes: [{\n token: \"entity.other.attribute-name.xml\",\n regex: tagRegex\n }, {\n token: \"keyword.operator.attribute-equals.xml\",\n regex: \"=\"\n }, {\n include: \"tag_whitespace\"\n }, {\n include: \"attribute_value\"\n }],\n attribute_value: [{\n token: \"string.attribute-value.xml\",\n regex: \"'\",\n push: [\n { token: \"string.attribute-value.xml\", regex: \"'\", next: \"pop\" },\n { include: \"attr_reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }, {\n token: \"string.attribute-value.xml\",\n regex: '\"',\n push: [\n { token: \"string.attribute-value.xml\", regex: '\"', next: \"pop\" },\n { include: \"attr_reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }]\n };\n if (this.constructor === XmlHighlightRules)\n this.normalizeRules();\n};\n(function () {\n this.embedTagRules = function (HighlightRules, prefix, tag) {\n this.$rules.tag.unshift({\n token: [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n regex: \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n next: [\n { include: \"attributes\" },\n { token: \"meta.tag.punctuation.tag-close.xml\", regex: \"/?>\", next: prefix + \"start\" }\n ]\n });\n this.$rules[tag + \"-end\"] = [\n { include: \"attributes\" },\n { token: \"meta.tag.punctuation.tag-close.xml\", regex: \"/?>\", next: \"start\",\n onMatch: function (value, currentState, stack) {\n stack.splice(0);\n return this.token;\n } }\n ];\n this.embedRules(HighlightRules, prefix, [{\n token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n regex: \"(|$))\",\n next: tag + \"-end\"\n }, {\n token: \"string.cdata.xml\",\n regex: \"<\\\\!\\\\[CDATA\\\\[\"\n }, {\n token: \"string.cdata.xml\",\n regex: \"\\\\]\\\\]>\"\n }]);\n };\n}).call(TextHighlightRules.prototype);\noop.inherits(XmlHighlightRules, TextHighlightRules);\nexports.XmlHighlightRules = XmlHighlightRules;\n\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\nfunction is(token, type) {\n return token && token.type.lastIndexOf(type + \".xml\") > -1;\n}\nvar XmlBehaviour = function () {\n this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '\"' || text == \"'\") {\n var quote = text;\n var selected = session.doc.getTextRange(editor.getSelectionRange());\n if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n return {\n text: quote + selected + quote,\n selection: false\n };\n }\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n return {\n text: \"\",\n selection: [1, 1]\n };\n }\n if (!token)\n token = iterator.stepBackward();\n if (!token)\n return;\n while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n token = iterator.stepBackward();\n }\n var rightSpace = !rightChar || rightChar.match(/\\s/);\n if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n return {\n text: quote + quote,\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"string_dquotes\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '>') {\n var position = editor.getSelectionRange().start;\n var iterator = new TokenIterator(session, position.row, position.column);\n var token = iterator.getCurrentToken() || iterator.stepBackward();\n if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n return;\n if (is(token, \"reference.attribute-value\"))\n return;\n if (is(token, \"attribute-value\")) {\n var tokenEndColumn = iterator.getCurrentTokenColumn() + token.value.length;\n if (position.column < tokenEndColumn)\n return;\n if (position.column == tokenEndColumn) {\n var nextToken = iterator.stepForward();\n if (nextToken && is(nextToken, \"attribute-value\"))\n return;\n iterator.stepBackward();\n }\n }\n if (/^\\s*>/.test(session.getLine(position.row).slice(position.column)))\n return;\n while (!is(token, \"tag-name\")) {\n token = iterator.stepBackward();\n if (token.value == \"<\") {\n token = iterator.stepForward();\n break;\n }\n }\n var tokenRow = iterator.getCurrentTokenRow();\n var tokenColumn = iterator.getCurrentTokenColumn();\n if (is(iterator.stepBackward(), \"end-tag-open\"))\n return;\n var element = token.value;\n if (tokenRow == position.row)\n element = element.substring(0, position.column - tokenColumn);\n if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n return;\n return {\n text: \">\" + \"\",\n selection: [1, 1]\n };\n }\n });\n this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n if (text == \"\\n\") {\n var cursor = editor.getCursorPosition();\n var line = session.getLine(cursor.row);\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.type.indexOf(\"tag-close\") !== -1) {\n if (token.value == \"/>\")\n return;\n while (token && token.type.indexOf(\"tag-name\") === -1) {\n token = iterator.stepBackward();\n }\n if (!token) {\n return;\n }\n var tag = token.value;\n var row = iterator.getCurrentTokenRow();\n token = iterator.stepBackward();\n if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n return;\n }\n if (this.voidElements && !this.voidElements[tag]) {\n var nextToken = session.getTokenAt(cursor.row, cursor.column + 1);\n var line = session.getLine(row);\n var nextIndent = this.$getIndent(line);\n var indent = nextIndent + session.getTabString();\n if (nextToken && nextToken.value === \" -1;\n}\n(function () {\n this.getFoldWidget = function (session, foldStyle, row) {\n var tag = this._getFirstTagInLine(session, row);\n if (!tag)\n return this.getCommentFoldWidget(session, row);\n if (tag.closing || (!tag.tagName && tag.selfClosing))\n return foldStyle === \"markbeginend\" ? \"end\" : \"\";\n if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n return \"\";\n if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n return \"\";\n return \"start\";\n };\n this.getCommentFoldWidget = function (session, row) {\n if (/comment/.test(session.getState(row)) && /';\n break;\n }\n }\n return tag;\n }\n else if (is(token, \"tag-close\")) {\n tag.selfClosing = token.value == '/>';\n return tag;\n }\n tag.start.column += token.value.length;\n }\n return null;\n };\n this._findEndTagInLine = function (session, row, tagName, startColumn) {\n var tokens = session.getTokens(row);\n var column = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n column += token.value.length;\n if (column < startColumn)\n continue;\n if (is(token, \"end-tag-open\")) {\n token = tokens[i + 1];\n if (token && token.value == tagName)\n return true;\n }\n }\n return false;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n var tags = session.getMatchingTags({ row: row, column: 0 });\n if (tags) {\n return new Range(tags.openTag.end.row, tags.openTag.end.column, tags.closeTag.start.row, tags.closeTag.start.column);\n }\n else {\n return this.getCommentFoldWidget(session, row)\n && session.getCommentFoldRange(row, session.getLine(row).length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/xml_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/xml\",\"ace/worker/worker_client\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextMode = require(\"./text\").Mode;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\nvar XmlBehaviour = require(\"./behaviour/xml\").XmlBehaviour;\nvar XmlFoldMode = require(\"./folding/xml\").FoldMode;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar Mode = function () {\n this.HighlightRules = XmlHighlightRules;\n this.$behaviour = new XmlBehaviour();\n this.foldingRules = new XmlFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.voidElements = lang.arrayToMap([]);\n this.blockComment = { start: \"\" };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/xml_worker\", \"Worker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"error\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/xml\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/xml\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/theme/github-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \"/* CSS style content from github's default pygments highlighter template.\\n Cursor and selection styles from textmate.css. */\\n.ace-github .ace_gutter {\\n background: #e8e8e8;\\n color: #AAA;\\n}\\n\\n.ace-github {\\n background: #fff;\\n color: #000;\\n}\\n\\n.ace-github .ace_keyword {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_string {\\n color: #D14;\\n}\\n\\n.ace-github .ace_variable.ace_class {\\n color: teal;\\n}\\n\\n.ace-github .ace_constant.ace_numeric {\\n color: #099;\\n}\\n\\n.ace-github .ace_constant.ace_buildin {\\n color: #0086B3;\\n}\\n\\n.ace-github .ace_support.ace_function {\\n color: #0086B3;\\n}\\n\\n.ace-github .ace_comment {\\n color: #998;\\n font-style: italic;\\n}\\n\\n.ace-github .ace_variable.ace_language {\\n color: #0086B3;\\n}\\n\\n.ace-github .ace_paren {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_boolean {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_string.ace_regexp {\\n color: #009926;\\n font-weight: normal;\\n}\\n\\n.ace-github .ace_variable.ace_instance {\\n color: teal;\\n}\\n\\n.ace-github .ace_constant.ace_language {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_cursor {\\n color: black;\\n}\\n\\n.ace-github.ace_focus .ace_marker-layer .ace_active-line {\\n background: rgb(255, 255, 204);\\n}\\n.ace-github .ace_marker-layer .ace_active-line {\\n background: rgb(245, 245, 245);\\n}\\n\\n.ace-github .ace_marker-layer .ace_selection {\\n background: rgb(181, 213, 255);\\n}\\n\\n.ace-github.ace_multiselect .ace_selection.ace_start {\\n box-shadow: 0 0 3px 0px white;\\n}\\n/* bold keywords cause cursor issues for some fonts */\\n/* this disables bold style for editor and keeps for static highlighter */\\n.ace-github.ace_nobold .ace_line > span {\\n font-weight: normal !important;\\n}\\n\\n.ace-github .ace_marker-layer .ace_step {\\n background: rgb(252, 255, 0);\\n}\\n\\n.ace-github .ace_marker-layer .ace_stack {\\n background: rgb(164, 229, 101);\\n}\\n\\n.ace-github .ace_marker-layer .ace_bracket {\\n margin: -1px 0 0 -1px;\\n border: 1px solid rgb(192, 192, 192);\\n}\\n\\n.ace-github .ace_gutter-active-line {\\n background-color : rgba(0, 0, 0, 0.07);\\n}\\n\\n.ace-github .ace_marker-layer .ace_selected-word {\\n background: rgb(250, 250, 255);\\n border: 1px solid rgb(200, 200, 250);\\n}\\n\\n.ace-github .ace_invisible {\\n color: #BFBFBF\\n}\\n\\n.ace-github .ace_print-margin {\\n width: 1px;\\n background: #e8e8e8;\\n}\\n\\n.ace-github .ace_indent-guide {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\n}\\n\\n.ace-github .ace_indent-guide-active {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC\\\") right repeat-y;\\n}\\n\";\n\n});\n\nace.define(\"ace/theme/github\",[\"require\",\"exports\",\"module\",\"ace/theme/github-css\",\"ace/lib/dom\"], function(require, exports, module){exports.isDark = false;\nexports.cssClass = \"ace-github\";\nexports.cssText = require(\"./github-css\");\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass, false);\n\n}); (function() {\n ace.require([\"ace/theme/github\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","module.exports = require(\"react-dom\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"\";","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"prop-types\");","import { createContext } from 'react';\n\nconst AccordionContext = createContext();\n\nexport default AccordionContext;\n","import { createContext } from 'react';\n\nconst AccordionItemContext = createContext();\n\nexport default AccordionItemContext;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Icon({\n className,\n family,\n type,\n weight,\n ...rest\n}) {\n function getCSSClasses() {\n const fontFamily = family || 'fa';\n const fontWeight = fontFamily === 'fa' ? `fa-${weight || 'regular'}` : '';\n\n return [\n 'tyk-icon',\n fontFamily !== 'fa' && fontFamily,\n `${fontFamily}-${type}`,\n fontWeight,\n className,\n ].filter(Boolean).join(' ');\n }\n\n return ;\n}\n\nIcon.propTypes = {\n // Additional CSS classes to apply\n className: PropTypes.string,\n // Font family to use. Default is 'fa'.\n family: PropTypes.string,\n // Icon type to use\n type: PropTypes.string.isRequired,\n // Icon weight to use. Only applicable for Font Awesome icons. Default is 'regular'. Also supports 'light' and 'solid'\n weight: PropTypes.string\n};\n\nexport default Icon;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport AccordionItemContext from './AccordionItemContext';\n\nfunction ItemTrigger({ wrap }) {\n const { collapsed, disabled, toggleChange } = useContext(AccordionItemContext);\n\n const iconType = collapsed ? 'chevron-down' : 'chevron-up';\n const classes = [\n 'tyk-accordion__trigger',\n disabled && 'tyk-accordion__trigger--disabled',\n ].filter(Boolean).join(' ');\n const trigger = (\n \n \n \n );\n\n return wrap\n ?
    {trigger}
    \n : trigger;\n}\n\nItemTrigger.propTypes = {\n wrap: PropTypes.bool,\n};\n\nexport default ItemTrigger;\n","import React, {\n useMemo, useState, useContext, forwardRef,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport AccordionContext from './AccordionContext';\nimport AccordionItemContext from './AccordionItemContext';\nimport ItemTrigger from './AccordionItemTrigger';\n\nfunction AccordionItem({\n collapsed: collapsedProp,\n children,\n className,\n disabled,\n}, ref) {\n const { arrow } = useContext(AccordionContext);\n const [collapsed, setCollapsed] = useState(collapsedProp);\n\n const toggleChange = () => {\n if (disabled) {\n return;\n }\n\n setCollapsed(!collapsed);\n };\n\n const classes = useMemo(() => [\n 'tyk-accordion__item',\n arrow.expandToContent\n ? `tyk-accordion__item--trigger-position-${arrow.position}`\n : 'tyk-accordion__item--trigger-in-header',\n className,\n collapsed === false && 'tyk-accordion__item--active',\n ].filter(Boolean).join(' '), [arrow, className, collapsed]);\n\n const contextValue = useMemo(() => ({\n collapsed,\n disabled,\n toggleChange,\n }), [collapsed, disabled, toggleChange]);\n\n return (\n
    \n \n {arrow.expandToContent && (\n \n )}\n {children}\n \n
    \n );\n}\n\nAccordionItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n collapsed: PropTypes.bool,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n};\n\nAccordionItem.defaultProps = {\n collapsed: false,\n};\n\nexport default forwardRef(AccordionItem);\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport AccordionContext from './AccordionContext';\nimport AccordionItemContext from './AccordionItemContext';\nimport ItemTrigger from './AccordionItemTrigger';\n\nfunction AccordionItemHeader({ className, children }) {\n const { collapsed, disabled, toggleChange } = useContext(AccordionItemContext);\n const { usearrowastrigger, arrow } = useContext(AccordionContext);\n const iconType = collapsed ? 'chevron-down' : 'chevron-up';\n const classes = [\n 'tyk-accordion__item-header',\n usearrowastrigger && 'tyk-accordion__arrow-trigger',\n className,\n ].filter(Boolean).join(' ');\n\n return (\n
    \n {\n !usearrowastrigger\n ? (\n \n {children}\n \n \n )\n : (\n <>\n {!arrow.expandToContent && arrow.position === 'left' && (\n \n )}\n
    {children}
    \n {!arrow.expandToContent && arrow.position === 'right' && (\n \n )}\n \n )\n }\n
    \n );\n}\n\nAccordionItemHeader.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n};\n\nexport default AccordionItemHeader;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-transition-group\");","import { useCallback, useState, useLayoutEffect } from 'react';\n\nconst getSize = (el) => {\n if (!el) {\n return {\n width: 0,\n height: 0,\n };\n }\n\n return {\n width: el.offsetWidth,\n height: el.offsetHeight,\n };\n};\n\nconst useComponentSize = (ref) => {\n const [componentSize, setComponentSize] = useState(getSize(ref ? ref.current : {}));\n const handleResize = useCallback(() => {\n if (ref.current) {\n setComponentSize(getSize(ref.current));\n }\n }, [ref]);\n\n useLayoutEffect(() => {\n handleResize();\n\n let resizeObserver = new ResizeObserver(() => {\n handleResize();\n });\n resizeObserver.observe(ref.current);\n\n return () => {\n resizeObserver.disconnect(ref.current);\n resizeObserver = null;\n };\n }, [ref.current]);\n\n return componentSize;\n};\n\n/** @component */\nexport default useComponentSize;\n","import { useEffect, useRef } from 'react';\n\nconst useEventListener = (eventName, handler, element) => {\n const savedHandler = useRef();\n useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(() => {\n const isSupported = element?.addEventListener;\n if (!isSupported) {\n // eslint-disable-next-line consistent-return\n return;\n }\n\n const eventListener = (event) => savedHandler.current(event);\n element.addEventListener(eventName, eventListener);\n\n // eslint-disable-next-line consistent-return\n return () => {\n element.removeEventListener(eventName, eventListener);\n };\n }, [eventName, element]);\n};\n\n/** @component */\nexport default useEventListener;\n","import React, {\n useRef, useState, useCallback, useEffect,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { CSSTransition } from 'react-transition-group';\nimport { useEventListener, useComponentSize } from '../../hooks';\n\n/**\n * Collapsible is a component that helps you to collapse/expand any type of content\n */\nfunction Collapsible({\n className,\n collapsed,\n children,\n ...rest\n}) {\n const contentContainer = useRef(null);\n const collapseWrapper = useRef(null);\n const refContainerSize = useComponentSize(contentContainer);\n const [contentContainerStyle, setContentContainerStyle] = useState({\n // eslint-disable-next-line\n height: (collapsed) ? 0 : 'auto',\n });\n\n const setHeight = (height) => {\n setContentContainerStyle({\n height: `${height}px`,\n });\n };\n\n const getHeight = () => (contentContainer.current ? contentContainer.current.clientHeight : 0);\n\n const onEnter = () => {\n setHeight(getHeight());\n };\n\n const onExit = () => {\n setHeight(0);\n };\n\n useEffect(() => {\n if (!collapsed\n && refContainerSize?.height\n && contentContainerStyle.height !== refContainerSize?.height\n ) {\n setHeight(refContainerSize.height);\n }\n }, [refContainerSize.height]);\n\n const onWindowResize = useCallback(() => {\n if (!collapsed && contentContainer.current) {\n setHeight(getHeight());\n collapseWrapper.current.style.height = `${getHeight()}px`;\n }\n }, [collapsed, contentContainer.current]);\n\n useEventListener('resize', onWindowResize, window);\n\n return (\n \n \n \n { children }\n \n \n \n );\n}\n\nCollapsible.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** Describes if the content of Collapsible should be hidden or not */\n collapsed: PropTypes.bool,\n /** CSS classes that can be passed to the Collapsible element */\n className: PropTypes.string,\n};\n\nexport default Collapsible;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Collapsible from '../../Collapsible';\nimport AccordionItemContext from './AccordionItemContext';\n\nfunction AccordionItemContent({ children, className }) {\n const { collapsed } = useContext(AccordionItemContext);\n\n const classes = [\n 'tyk-accordion__item-content',\n className,\n ].filter(Boolean).join(' ');\n\n return (\n
    \n \n { children }\n \n
    \n );\n}\n\nAccordionItemContent.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n};\n\nexport default AccordionItemContent;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport AccordionItem from './js/AccordionItem';\nimport AccordionItemHeader from './js/AccordionItemHeader';\nimport AccordionItemContent from './js/AccordionItemContent';\nimport AccordionContext from './js/AccordionContext';\n\nfunction Accordion({\n className,\n children,\n usearrowastrigger,\n arrow = { position: 'right', expandToContent: false },\n}) {\n const classes = [\n 'tyk-accordion',\n className,\n ].filter(Boolean).join(' ');\n\n const contextValue = useMemo(() => ({\n usearrowastrigger,\n arrow,\n }), [usearrowastrigger, arrow]);\n\n return (\n
    \n \n {children}\n \n
    \n );\n}\n\nAccordion.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n usearrowastrigger: PropTypes.bool,\n arrow: PropTypes.shape({\n position: PropTypes.oneOf(['left', 'right']),\n expandToContent: PropTypes.bool,\n }),\n};\n\nAccordion.defaultProps = {\n usearrowastrigger: false,\n};\n\n// For Readme.md : Start\nAccordion.Item = AccordionItem;\nAccordion.Item.Header = AccordionItemHeader;\nAccordion.Item.Content = AccordionItemContent;\n// For Readme.md : End\n\nexport default Accordion;\n","import React, { cloneElement, forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../Icon';\n\n/**\n * Button component.\n */\nfunction Button(props, ref) {\n const {\n customButton,\n children,\n iconType,\n iconFamily,\n iconPosition,\n iconOnly,\n id,\n className,\n disabled,\n display,\n href,\n onClick,\n noStyle,\n size,\n theme,\n type,\n ...rest\n } = props;\n\n const getCssClasses = () => {\n const cssClasses = ['tyk-button'].concat(className ? className.split(' ') : []);\n const sizeClass = (size) ? `tyk-button--${size}` : 'tyk-button--md';\n const disabledClass = (disabled) ? 'disabled' : '';\n const displayClass = display || '';\n const themeClass = theme ? `tyk-button--${theme}` : '';\n const iconOnlyClass = iconOnly ? 'tyk-button--icon-only' : '';\n const noStyleClass = noStyle ? 'tyk-button--no-style' : '';\n\n cssClasses.push(iconOnlyClass);\n cssClasses.push(themeClass);\n cssClasses.push(sizeClass);\n cssClasses.push(disabledClass);\n cssClasses.push(displayClass);\n cssClasses.push(noStyleClass);\n\n if (iconType) {\n cssClasses.push(`icon-${iconPosition || 'left'}`);\n }\n\n return cssClasses.join(' ');\n };\n\n const getButtonIcon = (position) => {\n const iPos = iconPosition || 'left';\n\n return (\n (iconType && iPos === position)\n ? \n : null\n );\n };\n\n const getButtonType = () => {\n let buttonType;\n\n if (customButton) {\n return (\n <>\n { cloneElement(customButton, {\n className: getCssClasses(),\n disabled,\n })}\n \n );\n }\n\n if (href) {\n buttonType = (\n \n { getButtonIcon('left') }\n { children }\n { getButtonIcon('right') }\n \n );\n } else {\n buttonType = (\n // eslint-disable-next-line react/button-has-type\n \n { getButtonIcon('left') }\n { children && {children} }\n { getButtonIcon('right') }\n \n );\n }\n\n return buttonType;\n };\n\n return (\n getButtonType()\n );\n}\n\nButton.propTypes = {\n /**\n * Content of a button. Can be a DOM element or a React component\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n customButton: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n ]),\n className: PropTypes.string,\n /**\n * Display type: inline/block. Default is inline\n */\n display: PropTypes.string,\n /**\n * Sets the button disabled state\n */\n disabled: PropTypes.bool,\n /**\n * Having this property set the button will become a link\n */\n id: PropTypes.string,\n href: PropTypes.string,\n iconPosition: PropTypes.string, // left or right\n iconFamily: PropTypes.string,\n iconOnly: PropTypes.bool,\n iconType: PropTypes.string,\n noStyle: PropTypes.bool,\n /**\n * Callback function, called when the button si clicked\n */\n onClick: PropTypes.func,\n /**\n * Describes the appearence of the button (ex: primary, danger, primary-outline etc.)\n */\n theme: PropTypes.string,\n /**\n * Type of the button (ex: button, submit etc.)\n */\n type: PropTypes.string,\n /**\n * Describes the size of the button (sm, md, lg). Default one is md\n */\n size: PropTypes.string,\n};\n\nButton.defaultProps = {\n theme: '',\n type: 'button',\n};\n\nexport default forwardRef(Button);\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ButtonGroup({ className, children, label }, ref) {\n return (\n
    \n {Boolean(label) && }\n
    {children}
    \n
    \n );\n}\n\nButtonGroup.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n};\n\nexport default forwardRef(ButtonGroup);\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardHeader({\n right = null,\n children,\n}) {\n return (\n
    \n {children &&
    {children}
    }\n {right &&
    {right}
    }\n
    \n );\n}\n\nCardHeader.propTypes = {\n right: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardBody({\n align = 'top',\n children,\n}) {\n return (\n
    \n
    \n {children}\n
    \n
    \n );\n}\n\nCardBody.propTypes = {\n align: PropTypes.oneOf(['top', 'center', 'bottom']),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardBody;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardFooter({ children }) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardFooter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitle({\n maxLines = 1, // accepted values: 1, 2\n children,\n}) {\n return (\n

    \n {children}\n

    \n );\n}\n\nCardTitle.propTypes = {\n maxLines: PropTypes.number,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitle;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitleGroup({\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardTitleGroup.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitleGroup;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardSubTitle({\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardSubTitle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardSubTitle;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardSummary({\n maxLines = 2, // accepted values: 1, 2, 3, 4, 5\n children,\n}) {\n return (\n

    \n {children}\n

    \n );\n}\n\nCardSummary.propTypes = {\n maxLines: PropTypes.number,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardSummary;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitleIcon({\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardTitleIcon.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitleIcon;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport CardHeader from './CardHeader';\nimport CardBody from './CardBody';\nimport CardFooter from './CardFooter';\nimport CardTitle from './CardTitle';\nimport CardTitleGroup from './CardTitleGroup';\nimport CardSubTitle from './CardSubTitle';\nimport CardSummary from './CardSummary';\nimport CardTitleIcon from './CardTitleIcon';\n\nfunction Card({\n className = '',\n height = 'auto',\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCard.propTypes = {\n className: PropTypes.string,\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nCard.Header = CardHeader;\nCard.Body = CardBody;\nCard.Footer = CardFooter;\nCard.Title = CardTitle;\nCard.TitleGroup = CardTitleGroup;\nCard.Icon = CardTitleIcon;\nCard.SubTitle = CardSubTitle;\nCard.Summary = CardSummary;\n\nexport default Card;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"echarts\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"immutable\");","export default (func, wait, immediate) => {\n let timeout;\n return function debouncer(...args) {\n const context = this;\n const later = () => {\n timeout = null;\n if (!immediate) {\n func.apply(context, args);\n }\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) {\n func.apply(context, args);\n }\n };\n};\n","import { useEffect, useRef } from 'react';\n\nconst usePrevious = (value) => {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n};\n\n/** @component */\nexport default usePrevious;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Loader({ className, position = 'relative', withbackground = false }) {\n const classes = [\n 'loading',\n position,\n className,\n ].filter(Boolean).join(' ');\n\n const loader = (\n
    \n
    \n
    \n
    \n
    \n
    \n );\n\n return withbackground\n ?
    {loader}
    \n : loader;\n}\n\nLoader.propTypes = {\n /** add a class to loader */\n className: PropTypes.string,\n /** position of loader (absolute / relative) */\n position: PropTypes.string,\n /** defines weather loader should be renders with or without background */\n withbackground: PropTypes.bool,\n};\n\nexport default Loader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../Icon';\n\n/**\n * The Message component is used to highlight important content to the users.\n *\n * If the content you are displaying needs immediate attention or is a feedback,\n * consider using `toast` instead\n */\nfunction Message({\n children, theme, onClose, noMargin, className,\n}) {\n function getCssClasses() {\n return [\n 'tyk-message',\n `tyk-message--${theme || 'info'}`,\n noMargin && 'no-margin',\n className,\n ].filter(Boolean).join(' ');\n }\n\n const iconType = theme === 'success' ? 'check' : 'exclamation';\n\n return (\n
    \n \n
    \n { children }\n
    \n {onClose && (\n \n )}\n
    \n );\n}\n\nMessage.propTypes = {\n /** Set theme for message (eg. default, success, danger, etc) */\n theme: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** add a class to loader */\n className: PropTypes.string,\n /** Removes margins by adding `no-margin` class */\n noMargin: PropTypes.bool,\n /** Callback for clicking on the \"x\" */\n onClose: PropTypes.func,\n};\n\nexport default Message;\n","import React, {\n useState, useEffect, useMemo, useRef, memo,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport * as echarts from 'echarts';\nimport { fromJS } from 'immutable';\n\nimport debounce from '../../utils/debounce';\nimport { usePrevious } from '../../hooks';\nimport Loader from '../Loader';\nimport Message from '../Message';\nimport worldMap from './maps/world.json';\n\necharts.registerMap('world', worldMap);\n\nfunction Chart({\n areaStyleColors,\n dataLoaded,\n hasData,\n highlight,\n type,\n option,\n series,\n onChange,\n zoomStart,\n zoomEnd,\n title,\n seriesConfig = [],\n noDataComponent: noDataComponentProp = null,\n zoomColors,\n style,\n}) {\n const [tykChartInstance, setTykChartInstance] = useState(null);\n const chartWrapperRef = useRef(null);\n const onResize = () => {\n if (tykChartInstance) {\n tykChartInstance.resize();\n }\n };\n\n const noDataComponent = useMemo(\n () => (noDataComponentProp\n ? noDataComponentProp()\n : (\n \n No data to display\n \n )),\n [noDataComponentProp],\n );\n\n const lineBarChart = {\n defaultOpts: fromJS({\n title: {\n show: true,\n text: title,\n left: 0,\n },\n color: [],\n toolbox: {\n right: '0',\n orient: 'horizontal',\n itemSize: 15,\n showTitle: true,\n feature: null,\n },\n dataZoom: [{\n show: true,\n start: 0,\n end: 100,\n orient: 'horizontal',\n dataBackground: {\n lineStyle: {\n color: zoomColors?.lineStyle || '#368493',\n },\n areaStyle: {\n color: zoomColors?.areaStyle || '#368493',\n },\n },\n handleStyle: {\n color: zoomColors?.handleStyle || '#368493',\n },\n textStyle: {\n color: zoomColors?.textStyle || '#368493',\n },\n borderColor: 'transparent',\n fillerColor: zoomColors?.fillerColor || 'rgba(54, 132, 147, 0.1)',\n }],\n legend: {\n show: false,\n // data: [],\n // right: '1%',\n },\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'cross',\n },\n },\n grid: {\n left: '1%',\n right: '1%',\n bottom: '50px',\n top: '40px',\n containLabel: true,\n },\n xAxis: {\n boundaryGap: false,\n type: 'category',\n splitLine: {\n show: true,\n lineStyle: {\n type: 'dotted',\n color: '#F0F0F0',\n },\n },\n axisLine: {\n show: false,\n },\n axisTick: {\n show: false,\n },\n data: [],\n },\n yAxis: {\n min: 'dataMin',\n boundaryGap: true,\n axisPointer: {\n show: true,\n },\n splitLine: {\n lineStyle: {\n type: 'dotted',\n color: '#F0F0F0',\n },\n show: true,\n },\n axisLabel: {\n show: true,\n },\n axisLine: {\n show: true,\n },\n axisTick: {\n show: false,\n },\n type: 'value',\n },\n textStyle: {\n color: '#5a5a68',\n },\n series: [],\n animationEasing: 'elasticOut',\n }),\n seriesDefault: fromJS({\n data: [],\n type: 'line',\n areaStyle: {\n opacity: 1,\n color: areaStyleColors\n ? new echarts.graphic.LinearGradient(\n 0,\n 0,\n 1,\n 1,\n areaStyleColors.map((color, index) => ({\n offset: index,\n color,\n })),\n )\n : [],\n },\n smooth: false,\n symbolSize: 7,\n name: '',\n }),\n };\n\n const pieChart = {\n defaultOpts: fromJS({\n tooltip: {\n trigger: 'axis',\n formatter: '{b}: {c} ({d}%)',\n },\n legend: {\n orient: 'horizontal',\n x: 'left',\n y: 'top',\n data: [],\n },\n color: [],\n series: [],\n }),\n seriesDefault: fromJS({\n type: 'pie',\n center: [\n '50%',\n '55%',\n ],\n radius: [\n '50%',\n '75%',\n ],\n avoidLabelOverlap: false,\n animationType: 'scale',\n animationEasing: 'elasticOut',\n labelLine: {\n normal: {\n show: true,\n smooth: 0.2,\n length: 6,\n length2: 6,\n },\n },\n data: [],\n }),\n };\n\n const geoChart = {\n defaultOpts: fromJS({\n series: [],\n }),\n seriesDefault: fromJS({\n type: 'map',\n data: [],\n }),\n };\n\n const buildChartOptions = (selectedType, selectedOptions, selectedSeries) => {\n let finalOpts = {};\n switch (selectedType) {\n case 'pie': {\n finalOpts = pieChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n\n selectedSeries.forEach((entry) => {\n finalOpts.series.push(pieChart.seriesDefault.mergeDeep(fromJS(entry)).toJS());\n });\n\n break;\n }\n\n case 'geo': {\n finalOpts = geoChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n\n selectedSeries.forEach((entry) => {\n finalOpts.series.push(geoChart.seriesDefault.mergeDeep(fromJS(entry)).toJS());\n });\n\n break;\n }\n\n default: {\n finalOpts = lineBarChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n if (Array.isArray(selectedOptions.yAxis)) {\n finalOpts.yAxis = selectedOptions.yAxis;\n }\n\n selectedSeries.forEach((entry, index) => {\n const seriesData = {\n ...lineBarChart.seriesDefault.toJS(),\n ...seriesConfig[index],\n ...entry,\n };\n finalOpts.series.push(seriesData);\n });\n break;\n }\n }\n return finalOpts;\n };\n\n useEffect(() => {\n window.addEventListener('resize', onResize);\n\n return () => {\n window.removeEventListener('resize', onResize);\n };\n }, [tykChartInstance]);\n\n useEffect(() => {\n if (!chartWrapperRef?.current) return;\n\n setTykChartInstance(echarts.init(chartWrapperRef.current));\n\n // eslint-disable-next-line consistent-return\n return () => {\n if (tykChartInstance) {\n tykChartInstance.dispose();\n }\n };\n }, [chartWrapperRef.current]);\n\n const eventCallBack = (e) => {\n if (onChange) {\n onChange(e);\n }\n };\n\n useEffect(() => {\n let debouncedMethod;\n if (tykChartInstance) {\n debouncedMethod = debounce(eventCallBack, 500);\n tykChartInstance.on('dataZoom', debouncedMethod);\n tykChartInstance.on('restore', debouncedMethod);\n tykChartInstance.on('click', debouncedMethod);\n\n tykChartInstance.on('mousemove', (params) => {\n if (params.data) {\n tykChartInstance.getZr().setCursorStyle('pointer');\n }\n });\n }\n\n return () => {\n if (tykChartInstance) {\n tykChartInstance.off('dataZoom', debouncedMethod);\n tykChartInstance.off('restore', debouncedMethod);\n tykChartInstance.off('click', debouncedMethod);\n }\n };\n }, [tykChartInstance, onChange]);\n\n const prevInstance = usePrevious(tykChartInstance);\n const prevOption = usePrevious(option);\n const prevType = usePrevious(type);\n const prevSeries = usePrevious(series);\n useEffect(() => {\n if (\n tykChartInstance\n && (\n !fromJS(prevInstance)?.equals?.(fromJS(tykChartInstance))\n || !fromJS(prevOption)?.equals?.(fromJS(option))\n || (prevType !== type)\n || !fromJS(prevSeries).equals?.(fromJS(series))\n )\n ) {\n tykChartInstance.clear();\n tykChartInstance.setOption(buildChartOptions(type, option, series));\n tykChartInstance.dispatchAction({\n type: 'takeGlobalCursor',\n key: 'dataZoomSelect',\n dataZoomSelectActive: true,\n });\n }\n }, [tykChartInstance, option, series, type]);\n\n useEffect(() => {\n if (tykChartInstance && highlight) {\n tykChartInstance.dispatchAction({\n type: 'highlight',\n seriesIndex: highlight.seriesIndex,\n dataIndex: highlight.dataIndex,\n });\n tykChartInstance.dispatchAction({\n type: 'showTip',\n seriesIndex: highlight.seriesIndex,\n dataIndex: highlight.dataIndex,\n });\n }\n }, [highlight]);\n\n const prevZoomStart = usePrevious(zoomStart);\n const prevZoomEnd = usePrevious(zoomEnd);\n useEffect(() => {\n if (\n tykChartInstance\n && zoomStart !== -1\n && zoomEnd !== -1\n && (\n prevZoomStart !== zoomStart\n || prevZoomEnd !== zoomEnd\n )\n ) {\n tykChartInstance.dispatchAction({\n type: 'dataZoom',\n startValue: zoomStart,\n endValue: zoomEnd,\n });\n }\n }, [zoomStart, zoomEnd]);\n\n const getStyle = () => {\n const tempStyle = style || {};\n\n if (!tempStyle.height) {\n tempStyle.height = '300px';\n }\n if (!tempStyle.width) {\n tempStyle.width = '100%';\n }\n return tempStyle;\n };\n\n const chartHasData = () => (\n (dataLoaded && (hasData === false || hasData === true)) ? hasData : true\n );\n\n const getCssClasses = () => {\n const cssClasses = ['tyk-chart'];\n\n if (!dataLoaded) {\n cssClasses.push('tyk-chart--loading-chart');\n }\n\n if (!chartHasData()) {\n cssClasses.push('tyk-chart--no-data');\n }\n\n return cssClasses.join(' ');\n };\n\n return (\n
    \n {\n !dataLoaded\n ? \n : null\n }\n \n {\n chartHasData()\n ? null\n : noDataComponent\n }\n
    \n );\n}\n\nChart.propTypes = {\n areaStyleColors: PropTypes.instanceOf(Array),\n dataLoaded: PropTypes.bool,\n hasData: PropTypes.bool,\n highlight: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n PropTypes.instanceOf(Array),\n ]),\n noDataComponent: PropTypes.func,\n zoomStart: PropTypes.number,\n zoomEnd: PropTypes.number,\n zoomColors: PropTypes.instanceOf(Object),\n option: PropTypes.instanceOf(Object),\n onChange: PropTypes.func,\n style: PropTypes.instanceOf(Object),\n type: PropTypes.string,\n title: PropTypes.string,\n series: PropTypes.instanceOf(Array),\n seriesConfig: PropTypes.instanceOf(Object),\n};\n\nexport default memo(Chart);\n","import { useEffect, useRef } from 'react';\n\nconst useTimeout = (callback, delay) => {\n const savedCallback = useRef();\n\n useEffect(\n () => {\n savedCallback.current = callback;\n },\n [callback],\n );\n\n useEffect(\n () => {\n function tick() {\n savedCallback.current();\n }\n if (delay !== null) {\n const id = setTimeout(tick, delay);\n return () => clearTimeout(id);\n }\n\n return () => {};\n },\n [delay],\n );\n};\n\n/** @component */\nexport default useTimeout;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../../Message';\nimport { useTimeout } from '../../../hooks';\n\nfunction ToastMessage(props) {\n const {\n children,\n options,\n onClose,\n index,\n } = props;\n const opts = {\n theme: 'success',\n delay: 3000,\n ...options,\n };\n let timer;\n\n const handleClose = (itemIndex) => {\n onClose(itemIndex);\n clearTimeout(timer);\n };\n\n useTimeout(() => handleClose(index), opts.delay);\n\n return (\n handleClose(index)}\n >\n {children}\n \n );\n}\n\nToastMessage.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n options: PropTypes.instanceOf(Object),\n onClose: PropTypes.func,\n index: PropTypes.number,\n};\n\nexport default ToastMessage;\n","import React, {\n useEffect, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToastMessage from './ToastMessage';\n\nfunction ToastContainer(props) {\n const [messages, setMessages] = useState({});\n const {\n notify,\n } = props;\n\n const updateNotifications = (message, options) => {\n const msgID = Math.floor(Math.random() * 1000000);\n\n setMessages((prevMessages) => ({\n ...prevMessages,\n [msgID]: {\n message,\n options,\n },\n }));\n };\n\n useEffect(() => {\n notify(updateNotifications);\n }, [messages]);\n\n const onMessageClosed = (index) => {\n const tempMessages = { ...messages };\n delete tempMessages[index];\n setMessages((prevMessages) => {\n const newMessages = { ...prevMessages };\n delete newMessages[index];\n return newMessages;\n });\n };\n\n return (\n
    \n {\n Object.keys(messages).map((msgID) => (\n messages[msgID]\n ? (\n \n {messages[msgID].message}\n \n )\n : null\n ))\n }\n
    \n );\n}\n\nToastContainer.propTypes = {\n notify: PropTypes.func,\n};\n\nexport default ToastContainer;\n","import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport ToastContainer from './js/ToastContainer';\n\n/**\n * Toast is a service that displays dialogs\n * on the bottom right part of the screen.\n *\n * The dialogs can have one of the Tyk UI themes, so that\n * it would match it's purpose (i.e success message, error message)\n *\n */\nclass ToastCreator {\n constructor() {\n const el = document.createElement('div');\n el.className = 'tyk-toast';\n document.body.appendChild(el);\n const root = createRoot(el);\n root.render();\n }\n\n bindNotify = (fn) => {\n this.createNotification = fn;\n };\n\n notify(message, options) {\n if (this.createNotification) {\n this.createNotification(message, options);\n }\n }\n\n danger(message, options) {\n this.notify(message, { ...options, theme: 'danger' });\n }\n\n success(message, options) {\n this.notify(message, { ...options, theme: 'success' });\n }\n\n warning(message, options) {\n this.notify(message, { ...options, theme: 'warning' });\n }\n\n info(message, options) {\n this.notify(message, { ...options, theme: 'info' });\n }\n}\n\nconst toast = new ToastCreator();\n\nexport default toast;\n","import React, { createRef, useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport toast from '../Toast';\n\n/**\n * - CopyToClipboard is used to copy string for a user.\n * - Can be used normally with a text or a custom components (Eg. Button, Icon, etc)\n */\n\nfunction CopyToClipboard(props) {\n const {\n display, copy, children, onCopy, message = 'copied',\n } = props;\n const txtRef = createRef();\n const handleClick = useCallback(() => {\n if (onCopy) {\n onCopy();\n }\n\n if (!window.navigator.clipboard) {\n txtRef.current.select();\n document.execCommand('copy');\n toast.success(message);\n return;\n }\n window.navigator.clipboard.writeText(copy);\n toast.success(message);\n }, [onCopy, txtRef]);\n\n return (\n <>\n \n {children || display}\n \n {!window.navigator.clipboard ? (\n \n ) : null}\n \n );\n}\n\nCopyToClipboard.propTypes = {\n /** Message to be displayed after text is copied */\n message: PropTypes.string,\n /** Callback function executed after text is copied */\n onCopy: PropTypes.func,\n /** Text to be copied */\n copy: PropTypes.string.isRequired,\n /** Text to be displayed */\n display: PropTypes.string,\n /** Children of custom element if you are using any custom element */\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n ]),\n};\n\nexport default CopyToClipboard;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ModalFooter({ children }) {\n return (\n
    \n { children }\n
    \n );\n}\n\nModalFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default ModalFooter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ModalBody({ children }) {\n return (\n
    \n { children }\n
    \n );\n}\n\nModalBody.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default ModalBody;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { CSSTransition } from 'react-transition-group';\n\nimport Icon from '../Icon';\nimport ModalFooter from './js/ModalFooter';\nimport ModalBody from './js/ModalBody';\n\n/**\n * Modals add dialogs confirmation boxes, notifications, or completely custom content\n * - only one Modal can be opened at a time\n * - are unmounted when Modal is closed\n */\nfunction Modal({\n children,\n theme = 'none',\n disableCloseCommands = false,\n opened = false,\n onClose = () => {},\n size = 'md',\n className = '',\n showBackdrop = true,\n ...restProps\n}) {\n const modalClasses = [\n 'tyk-modal',\n `tyk-modal--theme-${theme}`,\n opened && 'opened',\n ].concat(className.split(' ')).filter(Boolean).join(' ');\n\n const backdropClasses = [\n 'tyk-modal__backdrop',\n opened && 'opened',\n ].filter(Boolean).join(' ');\n\n const themeIcon = {\n success: 'check',\n warning: 'exclamation',\n danger: 'exclamation',\n }[theme];\n\n return (\n <>\n {\n ReactDOM.createPortal(\n \n
    \n
    \n
    \n {theme !== 'none' && (\n
    \n \n
    \n )}\n { children }\n
    \n
    \n
    \n ,\n document.querySelector('body'),\n )\n }\n {showBackdrop && ReactDOM.createPortal(\n \n !disableCloseCommands && onClose()}\n onKeyDown={() => {}}\n type=\"button\"\n aria-label=\"Close\"\n />\n ,\n document.querySelector('body'),\n )}\n \n );\n}\n\nModal.Body = ModalBody;\nModal.Footer = ModalFooter;\n/* eslint-disable-next-line */\nModal.Header = ({ children }) => {\n console.warn('%cModal.Header%c is deprecated.', 'font-weight: bold', '');\n return (\n
    \n { children }\n
    \n );\n};\nModal.Header.propTypes = {\n children: PropTypes.element,\n};\n/* eslint-disable-next-line */\nModal.Title = ({ children }) => {\n console.warn('%cModal.Title%c is deprecated.', 'font-weight: bold', '');\n return (\n

    \n { children }\n

    \n );\n};\nModal.Title.propTypes = {\n children: PropTypes.element,\n};\n\nModal.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n /** one of \"success\", \"warning\", \"danger\", \"none\"; default is \"none\" */\n theme: PropTypes.string,\n /** If set on true, the Modal won't close when clicking on the overlay or by pressing ESC key */\n disableCloseCommands: PropTypes.bool,\n /** If true the Modal will be by default opened */\n opened: PropTypes.bool,\n /** Callback method when the Modal is closed */\n onClose: PropTypes.func,\n /** Width of the Moda: md or lg */\n size: PropTypes.string,\n showBackdrop: PropTypes.bool,\n};\n\nexport default Modal;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../Button';\nimport Modal from '../Modal';\n\n/**\n * Confirm component can be used to open a dialog () before a specific action\n */\nfunction Confirm(props) {\n const {\n children,\n title,\n description,\n confirmBtnText = 'Confirm',\n cancelBtnText = 'Cancel',\n } = props;\n const [open, setOpen] = useState(false);\n const [callback, setCallback] = useState(null);\n const [cancelCallback, setCancelCallback] = useState(null);\n\n const show = (callbackFunc, cancelCallbackFunc, beforeCallback) => (...args) => {\n if (beforeCallback) {\n beforeCallback(...args);\n }\n setOpen(true);\n setCallback(() => () => callbackFunc(...args));\n if (cancelCallbackFunc) {\n setCancelCallback(() => () => cancelCallbackFunc(...args));\n }\n };\n\n const hide = () => {\n setOpen(false);\n setCallback(null);\n setCancelCallback(null);\n };\n\n const cancel = () => {\n if (cancelCallback) {\n cancelCallback();\n }\n hide();\n };\n\n const confirm = () => {\n callback();\n hide();\n };\n\n return (\n <>\n {children(show)}\n \n \n

    {title}

    \n {description}\n
    \n \n \n {cancelBtnText}\n \n \n {confirmBtnText}\n \n \n
    \n \n );\n}\n\nConfirm.propTypes = {\n /** Sets the text for primary / confirmation button on opened modal */\n confirmBtnText: PropTypes.string,\n /** Sets the text for danger / abort button on opened modal */\n cancelBtnText: PropTypes.string,\n /** Sets the title for the opened modal */\n title: PropTypes.string,\n /** Sets the description for the opened modal */\n description: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n PropTypes.func,\n ]),\n};\n\nexport default Confirm;\n","import React, { useCallback, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport debounce from '../../utils/debounce';\n\n/**\n * FixedWrapper component, keeps all its children in a fix position on the page,\n * even if the scroll position changes\n * i.e: The top navigation bar of a page sits within FixedWrapper component\n */\nfunction FixedWrapper({ children, className, showShadow }) {\n const fixedWrapperRef = useRef(null);\n\n const attachShadow = useCallback(() => {\n const element = fixedWrapperRef.current;\n\n if (!element) {\n return;\n }\n\n if (window.scrollY) {\n element.classList.add('tyk-fixed-wrapper--scrolled');\n } else {\n element.classList.remove('tyk-fixed-wrapper--scrolled');\n }\n }, [fixedWrapperRef.current]);\n\n const debouncedAttachShadow = useCallback(debounce(attachShadow, 100), [attachShadow]);\n\n useEffect(() => {\n if (showShadow) {\n window.addEventListener('scroll', debouncedAttachShadow);\n }\n\n return () => {\n window.removeEventListener('scroll', debouncedAttachShadow);\n };\n }, [debouncedAttachShadow, showShadow]);\n\n return (\n
    \n { children }\n
    \n );\n}\n\nFixedWrapper.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** Css classes that can be passed to the FixedWraper element */\n className: PropTypes.string,\n /** If true, bottom shadow on the FixedWrapper component\n * is being displayed when scroll happens\n */\n showShadow: PropTypes.bool,\n};\n\nFixedWrapper.defaultProps = {\n className: '',\n};\n\nexport default FixedWrapper;\n","import React, {\n useEffect, useState, useRef, useCallback,\n} from 'react';\nimport { PropTypes } from 'prop-types';\n\nimport debounce from '../../utils/debounce';\nimport { usePrevious, useComponentSize } from '../../hooks';\nimport Loader from '../Loader';\n\nfunction InfiniteScroller({\n children,\n hasMore,\n initialLoad,\n loadMore,\n pageNumber,\n refChild,\n}) {\n const [showLoader, setShowLoader] = useState(false);\n const containerRef = useRef(null);\n const refChildSize = useComponentSize(refChild);\n\n useEffect(() => {\n if (initialLoad && typeof loadMore === 'function') {\n setShowLoader(false);\n loadMore(pageNumber);\n }\n }, [initialLoad]);\n\n const shouldLoad = useCallback(() => {\n if (!containerRef.current) return false;\n const { clientHeight, scrollTop } = containerRef.current;\n\n return (\n hasMore\n && (\n (clientHeight + Math.round(scrollTop) === refChildSize.height)\n || (clientHeight >= refChildSize.height)\n )\n );\n }, [containerRef, refChildSize.height]);\n\n const loadMoreData = useCallback(() => {\n if (hasMore && typeof loadMore === 'function') {\n loadMore(pageNumber + 1);\n setShowLoader(true);\n } else {\n setShowLoader(false);\n }\n }, [hasMore, pageNumber]);\n\n const prevPageNumber = usePrevious(pageNumber);\n const scrollHandler = useCallback(debounce(() => {\n if (shouldLoad() && prevPageNumber <= pageNumber) {\n loadMoreData();\n }\n }, 200), [loadMoreData, shouldLoad]);\n\n useEffect(() => {\n containerRef.current?.addEventListener('scroll', scrollHandler);\n return () => containerRef.current?.removeEventListener('scroll', scrollHandler);\n }, [containerRef, scrollHandler]);\n\n // if content resets (page number resets) scroll to top\n useEffect(() => {\n if (prevPageNumber > 0 && pageNumber === 0) {\n containerRef.current.scrollTop = 0;\n }\n }, [containerRef, pageNumber]);\n\n const prevRefChildSize = usePrevious(refChildSize);\n useEffect(() => {\n if (\n refChildSize && prevRefChildSize\n && refChildSize.height !== prevRefChildSize.height\n && showLoader === true\n ) {\n setShowLoader(false);\n }\n }, [showLoader, refChildSize.height]);\n\n useEffect(() => {\n if (\n refChild && refChildSize.height < containerRef.current.clientHeight\n && refChildSize.height\n && hasMore\n ) {\n loadMoreData();\n }\n }, [containerRef, refChildSize, refChild, hasMore]);\n\n return (\n
    \n \n { children }\n
    \n {showLoader && (\n \n )}\n
    \n );\n}\n\nInfiniteScroller.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n hasMore: PropTypes.bool,\n initialLoad: PropTypes.bool,\n pageNumber: PropTypes.number,\n loadMore: PropTypes.func,\n refChild: PropTypes.instanceOf(Object),\n};\n\nInfiniteScroller.defaultProps = {\n hasMore: true,\n};\n\nexport default InfiniteScroller;\n","import React, {\n useEffect, useRef, forwardRef,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\nimport InfiniteScroller from '../InfiniteScroller';\n\nconst VIEWPORT_INITIAL_PADDING = 5;\n\n/**\n * It displays a container relative to another element.\n * Meant to be used for dropdowns, tooltips, and other similar components.\n */\nfunction FloatingContainer({\n element,\n size = 'auto',\n forceDisplay = 'auto',\n displayAxis = 'auto',\n preferredPosition,\n offset = 0,\n className,\n children,\n infiniteScrollerConfig,\n}, ref) {\n const localRef = useRef(null);\n const floatingContainerRef = ref || localRef;\n const contentWrapperRef = useRef(null);\n // offset calculated on first render to make sure the floating container is inside the viewport\n const viewportOffset = useRef(null);\n\n function determineDisplay() {\n const target = element.current;\n const container = floatingContainerRef.current;\n if (!container) return preferredPosition ?? displayAxis === 'vertical' ? 'bottom' : 'right';\n\n const { left, top } = target.getBoundingClientRect();\n const topSpace = top;\n const bottomSpace = window.innerHeight - top - target.offsetHeight;\n const leftSpace = left;\n const rightSpace = window.innerWidth - left - target.offsetWidth;\n const hasTopSpace = topSpace > container.scrollHeight;\n const hasBottomSpace = bottomSpace > container.scrollHeight;\n const hasLeftSpace = leftSpace > container.offsetWidth;\n const hasRightSpace = rightSpace > container.offsetWidth;\n const positionedVerticallyFitsInViewport = left + target.offsetWidth / 2 - container.offsetWidth / 2 > 0; // eslint-disable-line max-len\n const positionedHorizontallyFitsInViewport = top + target.offsetHeight / 2 - container.scrollHeight / 2 > 0; // eslint-disable-line max-len\n\n if (\n displayAxis === 'vertical'\n || (\n displayAxis === 'auto'\n && (hasTopSpace || hasBottomSpace)\n && positionedVerticallyFitsInViewport\n )\n ) {\n return getDisplayForVertical({\n preferredPosition, hasTopSpace, hasBottomSpace, topSpace, bottomSpace,\n });\n }\n\n if (displayAxis === 'horizontal') {\n return getDisplayForHorizontal({\n preferredPosition, hasLeftSpace, hasRightSpace, leftSpace, rightSpace,\n });\n }\n\n return getDisplayWhereItFits({\n preferredPosition,\n hasTopSpace,\n hasBottomSpace,\n hasLeftSpace,\n hasRightSpace,\n positionedHorizontallyFitsInViewport,\n positionedVerticallyFitsInViewport,\n });\n }\n\n function adjustPosition() {\n const display = forceDisplay !== 'auto' ? forceDisplay : determineDisplay();\n const target = element.current;\n const container = floatingContainerRef.current;\n\n if (!target || !container) return;\n\n const targetPosition = target.getBoundingClientRect();\n const { left: vpLeft, top: vpTop } = viewportOffset.current ?? { left: 0, top: 0 };\n\n if (display === 'top') {\n Object.assign(container.style, getStylesForTop({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (display === 'bottom') {\n Object.assign(container.style, getStylesForBottom({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (display === 'left') {\n Object.assign(container.style, getStylesForLeft({\n targetPosition, target, container, size, offset,\n }));\n }\n\n if (display === 'right') {\n Object.assign(container.style, getStylesForRight({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (viewportOffset.current !== null) return;\n\n if (size === 'matchEnd') {\n viewportOffset.current = { left: 0, top: 0 };\n } else {\n const left = Number(container.style.left.replace('px', ''));\n const top = Number(container.style.top.replace('px', ''));\n viewportOffset.current = {\n left: left < 0 ? VIEWPORT_INITIAL_PADDING - left : 0,\n top: top < 0 ? VIEWPORT_INITIAL_PADDING - top : 0,\n };\n }\n }\n\n useEffect(() => {\n window.requestAnimationFrame(function schedulePositionUpdate() {\n adjustPosition();\n window.requestAnimationFrame(schedulePositionUpdate);\n });\n }, []);\n\n return createPortal(\n \n \n \n {children}\n
    \n \n
    ,\n document.querySelector('body'),\n );\n}\n\nFloatingContainer.propTypes = {\n /** A DOM element that the floating container will be displayed relative to. */\n element: PropTypes.instanceOf(Object),\n className: PropTypes.string,\n /** The size of the container.\n * If `auto` the size will be determined by its contents.\n * If `matchElement` it will take the width or the height of the element depending\n * on the `displayAxis` prop.\n * It can also be a function that returns a number representing the width\n * or the height in pixels.\n */\n size: PropTypes.oneOfType([\n PropTypes.oneOf(['auto', 'matchElement', 'matchStart', 'matchEnd']),\n PropTypes.func,\n ]),\n /**\n * The distance between the element and the floating container.\n * It can be positive or negative.\n */\n offset: PropTypes.number,\n /**\n * If `auto` the component will try to determine where to display the container relative to the\n * element (top, bottom, left, right).\n * It can also be one of top, bottom, left, right, to force the floating container to always be\n * displayed in that position.\n */\n forceDisplay: PropTypes.oneOf(['auto', 'top', 'bottom', 'left', 'right']),\n /**\n * It can be `auto`, `vertical` or `horizontal`. It specifies the axis where\n * it will be displayed when `forceDisplay` is `auto`.\n */\n displayAxis: PropTypes.oneOf(['auto', 'vertical', 'horizontal']),\n /**\n * If there is space on both sides of the axis preffer this side.\n */\n preferredPosition: PropTypes.oneOf(['top', 'bottom', 'left', 'right']),\n /**\n * Configuration object that will be passed to the infinite scroller component.\n */\n infiniteScrollerConfig: PropTypes.instanceOf(Object),\n};\n\nexport default forwardRef(FloatingContainer);\n\nfunction getDisplayForVertical({\n preferredPosition, hasTopSpace, hasBottomSpace, topSpace, bottomSpace,\n}) {\n if (preferredPosition === 'top' && hasTopSpace) return 'top';\n if (preferredPosition === 'bottom' && hasBottomSpace) return 'bottom';\n return hasBottomSpace || bottomSpace > topSpace ? 'bottom' : 'top';\n}\n\nfunction getDisplayForHorizontal({\n preferredPosition, hasLeftSpace, hasRightSpace, leftSpace, rightSpace,\n}) {\n if (preferredPosition === 'left' && hasLeftSpace) return 'left';\n if (preferredPosition === 'right' && hasRightSpace) return 'right';\n return hasRightSpace || rightSpace > leftSpace ? 'right' : 'left';\n}\n\nfunction getDisplayWhereItFits({\n preferredPosition, hasTopSpace, hasBottomSpace, hasLeftSpace, hasRightSpace,\n positionedHorizontallyFitsInViewport, positionedVerticallyFitsInViewport,\n}) {\n if (hasTopSpace && positionedVerticallyFitsInViewport) return 'top';\n if (hasBottomSpace && positionedVerticallyFitsInViewport) return 'bottom';\n if (hasRightSpace && positionedHorizontallyFitsInViewport) return 'right';\n if (hasLeftSpace && positionedHorizontallyFitsInViewport) return 'left';\n return preferredPosition ?? 'bottom';\n}\n\nfunction getStylesForTop({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = {\n auto: targetPosition.left + target.offsetWidth / 2 - container.offsetWidth / 2,\n matchElement: targetPosition.left,\n matchStart: targetPosition.left,\n matchEnd: targetPosition.right - container.offsetWidth,\n }[size];\n const topPos = targetPosition.top - container.offsetHeight - offset;\n style.left = `${leftPos + vpLeft}px`;\n style.top = `${topPos + vpTop}px`;\n\n if (size === 'matchElement') {\n style.width = `${target.offsetWidth}px`;\n } else if (size === 'matchEnd') {\n style.maxWidth = `${targetPosition.right - VIEWPORT_INITIAL_PADDING}px`;\n } else if (typeof size === 'function') {\n style.width = `${size(target.offsetWidth)}px`;\n }\n style.maxHeight = `${targetPosition.top - offset}px`;\n return style;\n}\n\nfunction getStylesForBottom({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = {\n auto: targetPosition.left + target.offsetWidth / 2 - container.offsetWidth / 2,\n matchElement: targetPosition.left,\n matchStart: targetPosition.left,\n matchEnd: targetPosition.right - container.offsetWidth,\n }[size];\n const topPos = targetPosition.bottom + offset;\n style.left = `${leftPos + vpLeft}px`;\n style.top = `${topPos + vpTop}px`;\n\n if (size === 'matchElement') {\n style.width = `${target.offsetWidth}px`;\n } else if (size === 'matchEnd') {\n style.maxWidth = `${targetPosition.right - VIEWPORT_INITIAL_PADDING}px`;\n } else if (typeof size === 'function') {\n style.width = `${size(target.offsetWidth)}px`;\n }\n style.maxHeight = `${window.innerHeight - targetPosition.bottom - offset}px`;\n return style;\n}\n\nfunction getStylesForLeft({\n targetPosition, target, container, size, offset,\n}) {\n const style = {};\n const leftPos = targetPosition.left - container.offsetWidth - offset;\n const topPos = {\n auto: targetPosition.top + target.offsetHeight / 2 - container.offsetHeight / 2,\n matchElement: targetPosition.top,\n matchStart: targetPosition.top,\n matchEnd: targetPosition.bottom - container.offsetHeight,\n }[size];\n style.left = `${leftPos}px`;\n style.top = `${topPos}px`;\n\n if (size === 'matchElement') {\n style.height = `${target.offsetHeight}px`;\n } else if (typeof size === 'function') {\n style.height = `${size(target.offsetHeight)}px`;\n }\n style.maxWidth = `${targetPosition.left - offset}px`;\n return style;\n}\n\nfunction getStylesForRight({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = targetPosition.left + target.offsetWidth + offset;\n const topPos = {\n auto: targetPosition.top + target.offsetHeight / 2 - container.offsetHeight / 2,\n matchElement: targetPosition.top,\n matchStart: targetPosition.top,\n matchEnd: targetPosition.bottom - container.offsetHeight,\n }[size];\n style.left = size === 'auto' ? `${leftPos + vpLeft}px` : `${leftPos}px`;\n style.top = size === 'auto' ? `${topPos + vpTop}px` : `${topPos}px`;\n\n if (size === 'matchElement') {\n style.height = `${target.offsetHeight}px`;\n } else if (typeof size === 'function') {\n style.height = `${size(target.offsetHeight)}px`;\n }\n style.maxWidth = `${window.innerWidth - targetPosition.left - target.offsetWidth - offset}px`;\n return style;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../Message';\n\nfunction InfoNote({ children }) {\n return (\n
    \n \n { children }\n \n
    \n );\n}\n\nInfoNote.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default InfoNote;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ListItem(props) {\n const {\n className,\n children,\n selected,\n } = props;\n\n return (\n
  • \n {children}\n
  • \n );\n}\n\nListItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n selected: PropTypes.bool,\n};\n\nListItem.defaultProps = {\n className: '',\n};\n\nexport default ListItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ListItem from './js/ListItem';\n\nfunction List(props) {\n const {\n className,\n children,\n label,\n labelwidth,\n theme,\n style,\n } = props;\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-list'];\n\n if (theme) {\n cssClasses.push(`tyk-list--${theme}`);\n }\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n };\n\n const getListStyle = () => {\n const styleCopy = structuredClone(style);\n if (labelwidth) {\n styleCopy.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styleCopy;\n };\n\n return (\n
    \n {\n label !== undefined\n ? (\n \n )\n : null\n }\n
      \n {children}\n
    \n
    \n );\n}\n\nList.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n label: PropTypes.string,\n labelwidth: PropTypes.string,\n theme: PropTypes.string,\n style: PropTypes.instanceOf(Object),\n};\n\nList.defaultProps = {\n theme: 'default',\n style: {},\n};\n\nList.Item = ListItem;\n\nexport default List;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction NavBar({\n align = 'center',\n children,\n left,\n right,\n title,\n pre,\n subtitle,\n withTabs,\n}) {\n const subtitleContent = subtitle ?

    { subtitle }

    : null;\n return (\n
    \n
    \n {pre && (\n
    {pre}
    \n )}\n {\n title\n ? (\n
    \n

    { title }

    \n { subtitleContent }\n
    \n )\n : subtitleContent\n }\n
    \n {left && (\n
    { left }
    \n )}\n {right && (\n
    { right }
    \n )}\n
    \n
    \n { children }\n
    \n );\n}\n\nNavBar.propTypes = {\n align: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n title: PropTypes.string,\n subtitle: PropTypes.string,\n pre: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n left: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n right: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n withTabs: PropTypes.bool,\n};\n\nexport default NavBar;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction NavigationItem({ children }) {\n return (\n
  • \n {children}\n
  • \n );\n}\n\nNavigationItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nexport default NavigationItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport NavigationItem from './js/NavigationItem';\n\nfunction Navigation({ children }) {\n return (\n
      \n {children}\n
    \n );\n}\n\nNavigation.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nNavigation.Item = NavigationItem;\n\nexport default Navigation;\n","import { createContext } from 'react';\n\nexport const PortalContext = createContext();\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Collapsible from '../../Collapsible';\nimport { PortalContext } from '../panel-context';\n\nfunction PanelBody({\n children,\n noPadding,\n className,\n ...rest\n}) {\n const getCssClasses = useCallback(\n () => [\n 'tyk-panel__body',\n className,\n noPadding && 'no-padding',\n ].filter(Boolean).join(' '),\n [className, noPadding],\n );\n\n return (\n \n {\n (portalContext) => (\n portalContext.collapsable\n ? (\n \n { children }\n \n )\n : (\n \n { children }\n
    \n )\n )\n }\n \n );\n}\n\nPanelBody.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n noPadding: PropTypes.bool,\n className: PropTypes.string,\n};\n\nexport default PanelBody;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction PanelFooter(props) {\n const { children } = props;\n return (\n
    \n { children }\n
    \n );\n}\n\nPanelFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default PanelFooter;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport { PortalContext } from '../panel-context';\n\nclass PanelHeader extends Component {\n getCssClasses(props) {\n const { className } = this.props;\n let cssClasses = ['tyk-panel__header'];\n\n if (props.collapsable) {\n cssClasses.push('collapsable');\n }\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n }\n\n render() {\n const {\n children,\n } = this.props;\n\n return (\n \n {\n (portalContext) => {\n const HeaderTag = portalContext.theme === 'blank' ? 'h3' : 'div';\n const iconType = portalContext.collapsed ? 'chevron-down' : 'chevron-up';\n\n return (\n \n { children }\n {\n portalContext.collapsable\n ?
    \n : null\n }\n \n );\n }\n }\n
    \n );\n }\n}\n\nPanelHeader.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]).isRequired,\n className: PropTypes.string,\n};\n\nexport default PanelHeader;\n","import React, {\n useCallback, useEffect, useMemo, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport PanelBody from './js/PanelBody';\nimport PanelFooter from './js/PanelFooter';\nimport PanelHeader from './js/PanelHeader';\n\nimport { PortalContext } from './panel-context';\n\nfunction Panel(props) {\n const {\n children,\n className,\n collapsed,\n collapsable,\n theme,\n onToggleCollapse,\n collapsibleIconPosition = 'right',\n } = props;\n const [collapsedState, setCollapsedState] = useState(collapsed || false);\n\n useEffect(() => {\n if (collapsed !== collapsedState) {\n setCollapsedState(collapsed);\n }\n }, [collapsed]);\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-panel'];\n const panelTheme = `tyk-panel--${theme || 'default'}`;\n const collapsbleIconPosition = `tyk-panel__icon-collapse--${collapsibleIconPosition}`;\n\n cssClasses.push(panelTheme);\n cssClasses.push(collapsbleIconPosition);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n if (collapsedState) {\n cssClasses.push('tyk-panel--collapsed');\n }\n\n return cssClasses.join(' ');\n };\n\n const handleToggle = useCallback(() => {\n setCollapsedState(!collapsedState);\n\n if (onToggleCollapse) {\n onToggleCollapse(!collapsedState);\n }\n }, [collapsedState, onToggleCollapse]);\n\n const context = useMemo(() => ({\n collapsable,\n collapsed: collapsedState,\n onToggle: handleToggle,\n theme,\n collapsibleIconPosition,\n }), [collapsable, collapsedState, collapsibleIconPosition, theme, handleToggle]);\n\n return (\n
    \n \n {\n (typeof children === 'function')\n ? children({\n toggleCollapse: handleToggle,\n })\n : children\n }\n \n
    \n );\n}\n\nPanel.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n collapsable: PropTypes.bool,\n collapsibleIconPosition: PropTypes.string,\n collapsed: PropTypes.bool,\n theme: PropTypes.string,\n onToggleCollapse: PropTypes.func,\n};\n\nPanel.Body = PanelBody;\nPanel.Footer = PanelFooter;\nPanel.Header = PanelHeader;\n\nexport default Panel;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * Pill\n */\nfunction Pill(props) {\n const {\n children,\n className,\n theme,\n } = props;\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-pill', ...theme.split(' ').map((t) => `tyk-pill--${t}`)];\n\n if (className) {\n cssClasses = cssClasses.concat(className);\n }\n\n return cssClasses.join(' ');\n };\n\n return (\n
    \n {children}\n
    \n );\n}\n\nPill.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n /** Css classes that can be passed to the Pill element */\n className: PropTypes.string,\n /** Theme that can be applied to a Pill */\n theme: PropTypes.string,\n};\n\nPill.defaultProps = {\n theme: 'default',\n};\n\nexport default Pill;\n","import { useRef } from 'react';\n\n/**\n * RevealPanelService is a class that manages the resizing of a panel element.\n * It provides methods to set the panel's height, hide and show it, and attach\n * event listeners for resizing.\n */\nclass RevealPanelService {\n #state = null; // Private state for mouse interactions.\n\n #panel = null; // The panel element to be resized.\n\n #gutter = null; // The gutter element used for resizing.\n\n #wrapper = null; // The wrapper element that contains the panel and gutter.\n\n #onHeightChangeCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #onDragStartCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #onDragEndCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #dragStarted = false;\n\n /**\n * Sets a callback function to be executed when the panel is resized.\n * @param {function} callback - The callback function to be called on panel resize.\n */\n on(eventName, listener) {\n let list = null;\n if (eventName === 'onHeightChange') {\n list = this.#onHeightChangeCallbacks;\n } else if (eventName === 'onDragStart') {\n list = this.#onDragStartCallbacks;\n } else if (eventName === 'onDragEnd') {\n list = this.#onDragEndCallbacks;\n }\n\n if (list) {\n this.addListener(list, listener);\n }\n }\n\n off(eventName, listener) {\n let list = null;\n if (eventName === 'onHeightChange') {\n list = this.#onHeightChangeCallbacks;\n } else if (eventName === 'onDragStart') {\n list = this.#onDragStartCallbacks;\n } else if (eventName === 'onDragEnd') {\n list = this.#onDragEndCallbacks;\n }\n\n if (list) {\n this.removeListener(list, listener);\n }\n }\n\n /**\n * Sets the panel, gutter, and wrapper elements to be controlled by this class.\n * @param {HTMLElement} wrapper - The wrapper element containing the panel and gutter.\n * @param {HTMLElement} panel - The panel element to be resized.\n * @param {HTMLElement} gutter - The gutter element used for resizing.\n */\n setRefs(wrapper, panel, gutter) {\n if (this.#panel || this.#gutter || this.#wrapper) {\n this.unbindEvents();\n }\n this.#wrapper = wrapper;\n this.#panel = panel;\n this.#gutter = gutter;\n this.#state = null;\n this.bindEvents();\n }\n\n /**\n * Attaches event listeners for panel resizing.\n */\n bindEvents() {\n this.ensureRefs('bindEvents');\n this.#gutter.addEventListener('mousedown', this.onMouseDown.bind(this));\n document.addEventListener('mousemove', this.onMouseMove.bind(this));\n document.addEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n /**\n * Gets the current height of the panel.\n * @returns {number} - The height of the panel in pixels.\n */\n getHeight() {\n this.ensureRefs('getHeight');\n const size = this.#panel.getBoundingClientRect();\n return size.height;\n }\n\n /**\n * Handles the mouse down event, initiating the resizing process.\n * @param {MouseEvent} e - The mouse event object.\n */\n onMouseDown(e) {\n this.ensureRefs('onMouseDown');\n this.#state = {\n mouseDown: true,\n initialRect: this.#panel.getBoundingClientRect(),\n initialEvent: e,\n };\n }\n\n /**\n * Handles the mouse move event, adjusting the panel's height during resizing.\n * @param {MouseEvent} e - The mouse event object.\n */\n onMouseMove(e) {\n this.ensureRefs('onMouseMove');\n\n if (!this.#state) {\n return;\n }\n\n const isButtonDown = this.isPrimaryMouseButtonDown(e);\n if (!isButtonDown) {\n this.onMouseUp();\n return;\n }\n\n if (!this.#dragStarted) {\n this.#dragStarted = true;\n this.onDragStart.bind(this)();\n }\n\n const newY = this.#state.initialEvent.y - e.y;\n const finalHeight = Math.ceil(this.#state.initialRect.height + newY);\n this.setHeight(`${finalHeight}px`, 'mousemove');\n }\n\n // eslint-disable-next-line class-methods-use-this\n notifyListeners(list, value) {\n if (list && Array.isArray(list) && list.length) {\n list.forEach((fn) => {\n if (typeof fn === 'function') {\n fn(value);\n }\n });\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n addListener(list, listener) {\n if (list && Array.isArray(list) && typeof listener === 'function') {\n list.push(listener);\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n removeListener(list, listener) {\n if (list && Array.isArray(list) && typeof listener === 'function' && list.length) {\n const index = list.indexOf(listener);\n\n if (index > -1) {\n list.splice(index, 1);\n }\n }\n }\n\n onDragEnd() {\n if (this.#dragStarted) {\n this.notifyListeners(this.#onDragEndCallbacks, this.getHeight());\n }\n }\n\n onDragStart() {\n this.notifyListeners(this.#onDragStartCallbacks, this.getHeight());\n }\n\n // eslint-disable-next-line class-methods-use-this\n isPrimaryMouseButtonDown(e) {\n const flags = e.buttons !== undefined ? e.buttons : e.which;\n // eslint-disable-next-line no-bitwise\n const isDown = flags === 1;\n return isDown;\n }\n\n /**\n * Resets the state after the mouse up event, ending the resizing process.\n */\n onMouseUp() {\n this.#state = null;\n this.onDragEnd.bind(this)();\n this.#dragStarted = false;\n }\n\n /**\n * Sets the height of the panel.\n * @param {string} height - The new height value as a CSS string (e.g., \"100px\").\n */\n setHeight(height) {\n let heightVal = height;\n this.ensureRefs('setHeight');\n\n if (typeof heightVal === 'number') {\n heightVal += 'px';\n }\n\n this.#panel.style.height = heightVal;\n\n this.notifyListeners(this.#onHeightChangeCallbacks, this.getHeight());\n }\n\n /**\n * Ensures that the required elements (wrapper, panel, and gutter) are set.\n * Throws an error if they are missing.\n */\n ensureRefs(reason) {\n if (!this.#panel || !this.#gutter || !this.#wrapper) {\n throw new Error(\n `${reason}: Wrapper, panel, and gutter elements are required. Use setRefs method first.`,\n );\n }\n }\n\n /**\n * Checks if the panel is hidden.\n * @returns {boolean} - True if the panel is hidden; false otherwise.\n */\n isHidden() {\n this.ensureRefs('isHidden');\n return this.#wrapper.style.visibility === 'hidden';\n }\n\n /**\n * Hides the panel by setting its visibility to \"hidden\".\n */\n hide() {\n this.ensureRefs('hide');\n this.#wrapper.style.visibility = 'hidden';\n }\n\n /**\n * Shows the panel by setting its visibility to \"visible\".\n */\n show() {\n this.ensureRefs('show');\n this.#wrapper.style.visibility = 'visible';\n }\n\n /**\n * Unbinds the event listeners added for resizing.\n */\n unbindEvents() {\n this.#onHeightChangeCallbacks = [];\n this.#onDragStartCallbacks = [];\n this.#onDragEndCallbacks = [];\n this.#gutter.removeEventListener('mousedown', this.onMouseDown.bind(this));\n document.removeEventListener('mousemove', this.onMouseMove.bind(this));\n document.removeEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n deinit() {\n this.unbindEvents();\n }\n}\n\nexport const useRevealPanelService = () => {\n const revealPanelServiceRef = useRef(new RevealPanelService());\n return revealPanelServiceRef.current;\n};\n","import React, {\n useEffect,\n useRef,\n useImperativeHandle,\n forwardRef,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { createPortal } from 'react-dom';\nimport { useRevealPanelService } from './js/RevealPanelService';\n\nfunction RevealPanelHeaderLeft({ children }) {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <>{children};\n}\n\nRevealPanelHeaderLeft.propTypes = {\n children: PropTypes.instanceOf({}),\n};\n\nfunction RevealPanelHeaderRight({ children }) {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <>{children};\n}\n\nRevealPanelHeaderRight.propTypes = {\n children: PropTypes.instanceOf({}),\n};\n\nconst mergeClasses = (...classNames) => classNames.map((it) => (it || '').trim()).filter(Boolean).join(' ');\n\nfunction RevealPanel({\n children,\n height,\n onHeightChange = null,\n onDragStart = null,\n onDragEnd = null,\n style = null,\n parentSelector = null,\n contentStyle,\n contentClassName,\n gutterClassName,\n wrapperClassName,\n// eslint-disable-next-line consistent-return\n}, ref) {\n const panelRef = useRef(null);\n const gutterRef = useRef(null);\n const wrapperRef = useRef(null);\n\n const panelService = useRevealPanelService();\n\n useEffect(() => {\n if (!panelRef.current || !gutterRef.current || !wrapperRef.current) {\n return;\n }\n\n if (!panelService) {\n return;\n }\n\n panelService.setRefs(wrapperRef.current, panelRef.current, gutterRef.current);\n panelService.on('onHeightChange', onHeightChange);\n panelService.on('onDragStart', onDragStart);\n panelService.on('onDragEnd', onDragEnd);\n panelService.setHeight(height, 'initialize');\n\n // eslint-disable-next-line consistent-return\n return () => {\n panelService.unbindEvents();\n };\n }, []);\n\n useImperativeHandle(\n ref,\n () => {\n // bind this context\n const bind = (func) => func.bind(panelService);\n\n return {\n getHeight: bind(panelService.getHeight),\n setHeight: bind(panelService.setHeight),\n hide: bind(panelService.hide),\n show: bind(panelService.show),\n isHidden: bind(panelService.isHidden),\n deinit: bind(panelService.deinit),\n on: bind(panelService.on),\n off: bind(panelService.off),\n };\n },\n [],\n );\n\n let headerLeft = null;\n let headerRight = null;\n const contents = [];\n\n React.Children.forEach(children, (child) => {\n if (child && React.isValidElement(child)) {\n if (child.type === RevealPanelHeaderLeft) {\n headerLeft = child;\n } else if (child.type === RevealPanelHeaderRight) {\n headerRight = child;\n } else {\n contents.push(child);\n }\n }\n });\n\n const element = (\n
    \n
    \n
    \n\n
    {headerLeft}
    \n
    \n
    {headerRight}
    \n\n
    \n
    \n {contents}\n
    \n
    \n );\n\n if (parentSelector) {\n return createPortal(element, document.querySelector(parentSelector));\n }\n}\n\nRevealPanel.propTypes = {\n children: PropTypes.instanceOf({}),\n height: PropTypes.string,\n onHeightChange: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragEnd: PropTypes.func,\n parentSelector: PropTypes.string,\n style: PropTypes.instanceOf({}),\n contentStyle: PropTypes.instanceOf({}),\n contentClassName: PropTypes.string,\n gutterClassName: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\nconst TempRevealPanel = forwardRef(RevealPanel);\nTempRevealPanel.HeaderLeft = RevealPanelHeaderLeft;\nTempRevealPanel.HeaderRight = RevealPanelHeaderRight;\n\nexport default TempRevealPanel;\n","import { createContext } from 'react';\n\nexport const TabsContext = createContext();\n","import { createContext } from 'react';\n\nexport default createContext();\n","import React, { useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport TabContext from './TabContext';\nimport { usePrevious } from '../../../hooks';\n\nfunction TabContent(props) {\n const {\n addTab,\n hideTab,\n updateTab,\n showTab,\n children,\n selectedPath,\n tabData,\n tabsId,\n tabExists,\n path,\n rendered,\n hideTabContent,\n tabs,\n } = props;\n\n useEffect(() => {\n const tempTabData = { ...tabData };\n\n if (!tabExists(path)) {\n addTab(tempTabData, path);\n }\n }, [tabData, path]);\n\n const prevTabData = usePrevious(tabData);\n useEffect(() => {\n if (\n tabExists(path) && tabData?.title\n && (prevTabData?.title !== tabData?.title || prevTabData?.selected !== tabData.selected)\n ) {\n const tempTabData = { ...tabData };\n updateTab(tempTabData, path);\n }\n }, [tabData, path, prevTabData, tabs]);\n\n useEffect(() => {\n showTab(path);\n return () => hideTab(path);\n }, []);\n\n const shouldRender = useMemo(() => {\n if (!Object.keys(tabs).length) {\n return false;\n }\n\n if (hideTabContent || tabs[tabData.id].show === false) {\n return false;\n }\n\n if (!rendered) {\n return tabExists(path);\n }\n return selectedPath && selectedPath.indexOf(tabData.id) > -1;\n }, [hideTabContent, rendered, selectedPath, tabData, tabs]);\n\n const context = useMemo(() => ({ path, tabsId }), [path, tabsId]);\n\n if (!shouldRender) return null;\n return (\n
    -1 ? 'block' : 'none' }}>\n \n {children}\n \n
    \n );\n}\n\nTabContent.propTypes = {\n addTab: PropTypes.func,\n updateTab: PropTypes.func,\n hideTab: PropTypes.func,\n showTab: PropTypes.func,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n path: PropTypes.instanceOf(Array),\n hideTabContent: PropTypes.bool,\n rendered: PropTypes.bool,\n selectedPath: PropTypes.instanceOf(Array),\n tabExists: PropTypes.func,\n tabsId: PropTypes.string,\n tabData: PropTypes.instanceOf(Object),\n tabs: PropTypes.instanceOf(Object),\n};\n\nexport default TabContent;\n","import React, {\n useContext, useEffect, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { TabsContext } from '../tabs-context';\nimport TabContext from './TabContext';\nimport TabContent from './TabContent';\n\nfunction Tab(props) {\n const { id } = props;\n const tabsContext = useContext(TabsContext);\n const tabContext = useContext(TabContext);\n const {\n tabExists,\n selectedPath,\n addTab,\n updateTab,\n hideTab,\n showTab,\n rendered,\n hideTabContent,\n tabs,\n } = tabsContext;\n const {\n children,\n } = props;\n const [path, setPath] = useState('');\n\n useEffect(() => {\n let tempPath;\n if (tabContext && path) {\n if (tabContext.tabsId === tabsContext.id) {\n tempPath = tabContext.path.concat([id]);\n } else {\n tempPath = [id];\n }\n } else {\n tempPath = [id];\n }\n setPath(tempPath);\n }, [tabContext]);\n\n if (!path) {\n return null;\n }\n\n return (\n \n {children}\n \n );\n}\n\nTab.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n id: PropTypes.string,\n};\n\nTab.defaultProps = {};\n\nexport default Tab;\n","import React, {\n useEffect, useMemo, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport Tab from './js/Tab';\n\nimport Collapsible from '../Collapsible';\nimport Icon from '../Icon';\nimport { TabsContext } from './tabs-context';\n\nfunction Tabs(props) {\n const {\n children,\n className,\n id,\n onTabChange,\n type,\n hideTabContent,\n } = props;\n const [tabs, setTabs] = useState({});\n const [selectedPath, setSelectedPath] = useState([]);\n const [rendered, setRendered] = useState(false);\n const [initialPath, setInitialPath] = useState(null);\n\n useEffect(() => {\n setSelectedPath(initialPath);\n }, [initialPath]);\n\n const updateTabsList = (tabsState, path, tabData) => {\n let tempTabsState = { ...tabsState };\n const tempTabData = { ...tabData };\n const tempPath = path.slice(0);\n\n while (tempPath.length > 1) {\n tempTabsState = tempTabsState[tempPath.shift()];\n\n if (!tempTabsState) {\n tempTabsState = {};\n }\n }\n\n tempTabData.tempPath = tempPath;\n tempTabsState[tempPath.shift()] = tempTabData;\n\n return tempTabsState;\n };\n\n const toggleTab = (tabsState, path) => {\n let tempTabsState = { ...tabsState };\n const tempPath = path.slice(0);\n\n while (tempPath.length > 1) {\n tempTabsState = tempTabsState[tempPath.shift()];\n }\n\n const key = tempPath.shift();\n if (tempTabsState[key].collapsed === undefined) {\n tempTabsState[key].collapsed = true;\n } else {\n tempTabsState[key].collapsed = !tempTabsState[key].collapsed;\n }\n\n return tempTabsState;\n };\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-tabs'];\n\n cssClasses.push(`tyk-tabs--${type || 'default'}`);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n };\n\n const setCurrentSelectedPath = (path, tabData) => {\n const tempPath = path.slice(0);\n let tempRendered = true;\n\n if (tabData.collapsible) {\n tempPath.push(Object.keys(tabData.tabs)[0]);\n tempRendered = false;\n }\n\n setTabs((prevTabs) => {\n let tempTabs = { ...prevTabs };\n\n tempTabs = toggleTab(tempTabs, path);\n\n return tempTabs;\n });\n setSelectedPath(tempPath);\n setRendered(tempRendered);\n\n if (onTabChange) {\n onTabChange(tabData);\n }\n };\n\n const getTabCssClass = (tabId) => {\n const cssClasses = [];\n\n if (selectedPath && selectedPath.indexOf(tabId) > -1) {\n cssClasses.push('active');\n }\n\n return cssClasses.join(' ');\n };\n\n const genTabs = (currentTabs, path) => {\n if (!currentTabs) {\n return null;\n }\n\n return (\n
      \n {\n Object.keys(currentTabs).map((tabId, index) => {\n const tempPath = path ? path.concat([currentTabs[tabId].id]) : [currentTabs[tabId].id];\n const iconType = currentTabs[tabId].collapsed ? 'chevron-up' : 'chevron-down';\n\n if (currentTabs[tabId].show === false) {\n return null;\n }\n\n return (\n
    • \n \n { currentTabs[tabId].title }\n {\n currentTabs[tabId].collapsible\n ? \n : null\n }\n \n {\n currentTabs[tabId].collapsible\n ? (\n \n {genTabs(currentTabs[tabId].tabs, tempPath)}\n \n )\n : genTabs(currentTabs[tabId].tabs, tempPath)\n }\n
    • \n );\n })\n }\n
    \n );\n };\n\n const addTab = (tabData, path) => {\n setTabs((prevTabs) => updateTabsList({ ...prevTabs }, path, tabData));\n\n if (tabData.selected) {\n setInitialPath(path);\n }\n };\n\n const updateTab = (tabData, path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n tempTabs[tabData.id] = tabData;\n return tempTabs;\n });\n\n if (tabData.selected) {\n setCurrentSelectedPath(path, tabData);\n }\n };\n\n const hideTab = (path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n tempTabs[path].show = false;\n\n return tempTabs;\n });\n };\n\n const showTab = (path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n\n tempTabs[path].show = true;\n\n return tempTabs;\n });\n };\n\n const tabExists = (path) => {\n let tempTabs = { ...tabs };\n const tempPath = path.slice(0);\n while (tempPath.length > 1) {\n tempTabs = tempTabs[tempPath.shift()];\n }\n\n const key = tempPath.shift();\n\n return Boolean(tempTabs?.[key]);\n };\n\n const context = useMemo(() => ({\n id,\n addTab,\n hideTab,\n updateTab,\n showTab,\n tabExists,\n selectedPath,\n rendered,\n hideTabContent,\n tabs,\n }), [\n id,\n addTab,\n hideTab,\n updateTab,\n showTab,\n tabExists,\n selectedPath,\n rendered,\n hideTabContent,\n tabs,\n ]);\n\n return (\n
    \n {genTabs(tabs)}\n \n {\n (typeof children === 'function')\n ? children({\n hideTab,\n showTab,\n })\n : children\n }\n \n
    \n );\n}\n\nTabs.propTypes = {\n className: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n hideTabContent: PropTypes.bool,\n id: PropTypes.string,\n onTabChange: PropTypes.func,\n type: PropTypes.string,\n};\n\nTabs.Tab = Tab;\n\nexport default Tabs;\n","import React, {\n useCallback, useEffect, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport FloatingContainer from '../FloatingContainer';\nimport Icon from '../Icon';\n\nfunction Tooltip({\n render,\n className,\n children,\n position = 'auto',\n style,\n icon = false,\n closable,\n isOpened = false,\n additionalClickParents = [],\n ...props\n}) {\n const [isActive, setIsActive] = useState(false);\n const wrapperRef = useRef(null);\n const tooltipRef = useRef(null);\n const activeEvents = closable\n ? {\n onClick: () => setIsActive(true),\n }\n : {\n onMouseEnter: () => setIsActive(true),\n onMouseLeave: () => setIsActive(false),\n onFocus: () => setIsActive(true),\n onBlur: () => setIsActive(false),\n };\n\n const handleDocumentClick = useCallback((e) => {\n if ([...additionalClickParents, tooltipRef.current].some((p) => p?.contains?.(e.target))) {\n return;\n }\n setIsActive(false);\n }, [additionalClickParents]);\n\n useEffect(() => {\n document.addEventListener('click', handleDocumentClick, true);\n return () => document.removeEventListener('click', handleDocumentClick, true);\n }, [handleDocumentClick]);\n\n useEffect(() => {\n setIsActive(isOpened);\n }, [isOpened]);\n\n const classes = ['tyk-tooltip', className].filter(Boolean).join(' ');\n return (\n \n {children}\n {isActive && (\n \n
    \n {icon && (\n icon === true ? (\n \n ) : (\n icon\n )\n )}\n
    \n {render}\n
    \n {closable && (\n {\n e.stopPropagation();\n setIsActive(false);\n }}\n />\n )}\n
    \n \n )}\n
    \n );\n}\n\nTooltip.propTypes = {\n children: PropTypes.node.isRequired,\n /** custom styles to apply on hovered element */\n style: PropTypes.instanceOf(Object),\n /** describes where the tooltip should be displayed in relation\n * whith the hovered element: top, bottom, left, right\n */\n position: PropTypes.string,\n /** content of the tooltip, can be a string or a React node element */\n render: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.string,\n ]),\n /** additional tooltip classes */\n className: PropTypes.string,\n /** if `true` displays the \"question mark\" icon;\n * optionally you can pass a different icon\n */\n icon: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.node,\n ]),\n /** if `true` the tooltip is activated on click and an \"x\" is displayed to close it;\n * if `false` the tooltip is activated on hover and it closes when no longer hovering\n */\n closable: PropTypes.bool,\n /** handles the `isActive` state of the tooltip from outside */\n isOpened: PropTypes.bool,\n /** Additional dom elements to check if the document click was inside of them.\n * Useful when you want to open the tooltip after an interaction\n * with an element not inside the tooltip root.\n */\n additionalClickParents: PropTypes.instanceOf(Array),\n};\n\nexport default Tooltip;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Tooltip from '../Tooltip';\n/**\n * TextEllipsis component helps you to hide a part of a text,\n * but displaying it when it's being hovered.\n * The entire text is displayed with the help of Tooltip component\n */\n\nfunction TextEllipsis({ text, limit, position }) {\n return (\n text.length > limit\n ? (\n \n {text.substring(0, limit)}\n ...\n \n )\n : text\n );\n}\n\nTextEllipsis.propTypes = {\n /** Text to be shrinked by TextEllipsis */\n text: PropTypes.string,\n /** Number of characters that TextEllipsis would leave visible */\n limit: PropTypes.number,\n /** tooltip position */\n position: PropTypes.string,\n};\n\nexport default TextEllipsis;\n","import React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction shouldShowPage(currentNr, pageNr, totalNrOfPages) {\n const basePageNr = 5;\n const minimumNrOfPages = 10;\n\n if (totalNrOfPages < minimumNrOfPages) {\n return true;\n }\n\n if (\n pageNr < basePageNr\n && currentNr < basePageNr\n ) {\n return true;\n }\n\n if (\n pageNr > totalNrOfPages - basePageNr\n && currentNr > totalNrOfPages - basePageNr\n ) {\n return true;\n }\n\n if (\n currentNr >= pageNr - 2\n && currentNr <= pageNr + 2\n ) {\n return true;\n }\n\n return [0, 1, totalNrOfPages - 1, totalNrOfPages].includes(currentNr);\n}\n\nfunction getPagesArr(nrOfPages, selectedPage) {\n let i;\n const pagesArr = [];\n\n for (i = 0; i <= nrOfPages; i += 1) {\n if (shouldShowPage(i, selectedPage, nrOfPages)) {\n if (i > pagesArr.at(-1)) {\n pagesArr.push(`...-${i}`);\n }\n pagesArr.push(i + 1);\n }\n }\n\n return pagesArr;\n}\n\nfunction Pagination(props) {\n const {\n value = 0,\n totalNrOfPages,\n onChange,\n } = props;\n\n const [selectedPage, setSelectedPage] = useState(value);\n\n const pagesArray = useMemo(\n () => getPagesArr(totalNrOfPages, selectedPage),\n [selectedPage, totalNrOfPages],\n );\n\n function goToPage(pageNr) {\n setSelectedPage(pageNr);\n if (onChange) onChange(pageNr);\n }\n\n return (\n totalNrOfPages\n ? (\n
      \n {selectedPage > 0 && totalNrOfPages > 5 && (\n
    • \n \n
    • \n )}\n {\n pagesArray.map((pageNr) => (\n
    • \n {\n String(pageNr).startsWith('...')\n ? ...\n : \n }\n
    • \n ))\n }\n {selectedPage < totalNrOfPages && totalNrOfPages > 5 && (\n
    • \n \n
    • \n )}\n
    \n )\n : null\n );\n}\n\nPagination.propTypes = {\n value: PropTypes.number,\n totalNrOfPages: PropTypes.number,\n onChange: PropTypes.func,\n};\n\nexport default Pagination;\n","import { createContext } from 'react';\n\nexport const tableContext = createContext();\n","import React, { useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { tableContext } from '../tableContext';\nimport Icon from '../../Icon';\n\nexport function HeaderCell({ column }) {\n const { sortable } = column;\n const [sortOrder, setSortOrder] = useState(sortable?.default || 'ASC');\n const { state, sendMessage } = useContext(tableContext);\n return (\n {\n sendMessage('sort', { column, sortOrder });\n setSortOrder(sortOrder === 'ASC' ? 'DESC' : 'ASC');\n } : null}\n className={state.maxHeight ? 'fixed-header' : ''}\n >\n {column.name}\n {column.sortable && (\n \n \n \n )}\n \n );\n}\n\nHeaderCell.propTypes = {\n column: PropTypes.instanceOf(Object),\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { HeaderCell } from './header-cell';\nimport { tableContext } from '../tableContext';\n\nexport function Header({ allRowsSelected }) {\n const { state, sendMessage } = useContext(tableContext);\n const { columns, selectable } = state;\n\n const generateHeaders = () => columns.map((column) => (\n \n ));\n\n const generateSelectable = () => {\n const Component = selectable.type;\n return (\n \n {selectable?.allowSelectAll ? (\n
    \n {\n const isCheckbox = v?.target?.tagName.toLowerCase() === 'input' && v?.target?.type.toLowerCase() === 'checkbox';\n sendMessage('header.selectAll.change', isCheckbox ? v.target.checked : Boolean(v));\n }}\n >\n {selectable.values?.value}\n \n
    \n ) : (\n selectable.name || 'Select'\n )}\n \n );\n };\n\n return (\n \n \n {selectable?.position === 'LEFT' && generateSelectable()}\n {generateHeaders()}\n {selectable?.position === 'RIGHT' && generateSelectable()}\n \n \n );\n}\n\nHeader.propTypes = {\n allRowsSelected: PropTypes.bool,\n};\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * - Checkboxes are used when a user needs to select one or more values from a series of options.\n * - They can be also be used as a binary toggle but consider radio instead.\n * - Can be used with Formik respectively (FormikCheckbox)\n */\nclass Checkbox extends Component {\n getCssClasses() {\n const {\n inline, disabled, readOnly, theme = '', wrapperClassName = '',\n } = this.props;\n\n const cssClasses = [wrapperClassName];\n\n cssClasses.push('tyk-checkbox');\n\n if (inline) {\n cssClasses.push('tyk-checkbox--inline');\n }\n\n if (theme.trim()) {\n cssClasses.push(...theme.split(' ').map((t) => `tyk-checkbox--theme-${t}`));\n }\n\n if (disabled || readOnly) {\n cssClasses.push('tyk-checkbox--is-disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n displayError() {\n const { error } = this.props;\n if (!error) return null;\n\n return (\n

    \n {error}\n

    \n );\n }\n\n displayNote() {\n const { note } = this.props;\n if (!note) return null;\n\n return (\n

    \n {note}\n

    \n );\n }\n\n render() {\n const {\n input, value, label, ...rest\n } = this.props;\n return (\n \n
    \n \n {this.displayNote()}\n {this.displayError()}\n
    \n \n );\n }\n}\n\nCheckbox.propTypes = {\n /** Disable a checkbox */\n disabled: PropTypes.bool,\n /** Readonly prop behaves the same as disable on checkboxes */\n readOnly: PropTypes.bool,\n /** Align checkbox with in same line with other elements */\n inline: PropTypes.bool,\n /** Set a theme for checkbox */\n theme: PropTypes.string,\n /** Set an error state for checkbox if boolean will show just icon without message */\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Adds additional information under the checkbox element */\n note: PropTypes.string,\n input: PropTypes.instanceOf(Object),\n /** Adds a label to checkbox */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Set a name for checkbox */\n name: PropTypes.string,\n /** Set initial value for checkbox */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Make checkbox checked by default */\n checked: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Callback function executed on change of checkbox */\n onChange: PropTypes.func,\n /** CSS classes added to the wrapper of the component */\n wrapperClassName: PropTypes.string,\n};\n\nexport default Checkbox;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nexport function Cell({ col, row }) {\n if (!row.values[col.id]) {\n return ; // eslint-disable-line jsx-a11y/control-has-associated-label\n }\n\n if (col.type === 'string') {\n return (\n \n {row.values[col.id]?.value}\n \n );\n }\n const Component = col.type;\n return (\n \n \n {row.values[col.id].children ? row.values[col.id].children : null}\n
    \n \n );\n}\n\nCell.propTypes = {\n col: PropTypes.instanceOf(Object),\n row: PropTypes.instanceOf(Object),\n index: PropTypes.number,\n};\n","import React, { useCallback, useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport Checkbox from '../../../form/components/Checkbox';\nimport { Cell } from './cell';\nimport { tableContext } from '../tableContext';\n\nexport function Row({ row, index }) {\n const { state, sendMessage } = useContext(tableContext);\n const { columns, selectable } = state;\n\n const SelectableCheckbox = useCallback(() => (\n // eslint-disable-next-line jsx-a11y/control-has-associated-label\n \n sendMessage('row.selected', { index, selected: v.target.checked })}\n />\n \n ), [row.selected, index]);\n\n return (\n \n {selectable && selectable.position === 'LEFT' && SelectableCheckbox()}\n {columns.map((col) => (\n \n ))}\n {selectable && selectable.position === 'RIGHT' && SelectableCheckbox()}\n \n );\n}\n\nRow.propTypes = {\n row: PropTypes.instanceOf(Object),\n index: PropTypes.number,\n};\n","import React, { useContext } from 'react';\nimport { tableContext } from '../tableContext';\nimport { Row } from './row';\n\nexport function Body() {\n const { state } = useContext(tableContext);\n const { rows } = state;\n\n return (\n \n {\n // eslint-disable-next-line react/no-array-index-key\n rows.map((row, i) => )\n }\n \n );\n}\n","import React, {\n useCallback, useEffect, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport Message from '../Message';\nimport Pagination from '../../form/components/Pagination';\nimport Loader from '../Loader';\nimport InfiniteScroller from '../InfiniteScroller';\nimport { Header } from './js/header';\nimport { Body } from './js/body';\nimport { tableContext } from './tableContext';\n\n/**\n * This is tyk's table component used to render a data in a tabular view.\n * See the example configuration object below to understand how to hydrate the table component\n */\n\nfunction Table({\n value, onChange, noDataMessage, loading, infiniteScrolling,\n}) {\n const [state, setState] = useState(null);\n const [onChangeMsg, setOnChangeMsg] = useState('api');\n const itemsListRef = useRef(null);\n const sortRows = useCallback((col, sortOrder) => {\n setState((prevState) => ({\n ...prevState,\n sort: {\n order: sortOrder,\n col,\n },\n }));\n }, []);\n\n const selectAllRows = useCallback((selected) => {\n setState((prevState) => ({\n ...prevState,\n rows: prevState.rows.map((row) => ({ ...row, selected })),\n }));\n }, []);\n\n const selectRow = useCallback(({ index, selected }) => {\n setState((prevState) => ({\n ...prevState,\n rows: [\n ...prevState.rows.slice(0, index),\n { ...prevState.rows[index], selected },\n ...prevState.rows.slice(index + 1),\n ],\n }));\n }, []);\n\n const setPagination = useCallback((data) => {\n setState((prevState) => ({\n ...prevState,\n pagination: {\n ...prevState.pagination,\n current: data + 1,\n },\n }));\n }, []);\n\n const api = {\n getState: () => state,\n setState: (newState) => setState(newState),\n };\n\n const sendMessage = useCallback((message, data) => {\n setOnChangeMsg(message);\n if (message === 'sort') {\n sortRows(data.column.id, data.sortOrder);\n }\n\n if (message === 'header.selectAll.change') {\n selectAllRows(data);\n }\n\n if (message === 'row.selected') {\n selectRow(data);\n }\n\n if (message === 'pagination.change') {\n setPagination(data);\n }\n }, [sortRows, selectAllRows, selectRow, setPagination]);\n\n const context = useMemo(() => ({ state, sendMessage }), [state, sendMessage]);\n\n useEffect(() => setState(value), [value]);\n useEffect(() => {\n if (onChange) {\n onChange(onChangeMsg, state, api);\n }\n setOnChangeMsg('api');\n }, [state]);\n\n if (!state) {\n return ;\n }\n\n if (state.rows <= 0) {\n return {noDataMessage || 'No Data Available'};\n }\n\n const getTable = () => (\n \n
    selected)} />\n \n
    \n );\n\n return (\n \n
    \n {\n loading && \n }\n {\n infiniteScrolling && state.pagination\n ? (\n state.pagination.current}\n loadMore={(num) => sendMessage('pagination.change', num)}\n pageNumber={state.pagination.current - 1}\n initialLoad={false}\n >\n { getTable() }\n \n )\n : getTable()\n }\n
    \n {state.pagination && !infiniteScrolling && (\n
    \n sendMessage('pagination.change', num)}\n />\n
    \n )}\n
    \n );\n}\n\nTable.propTypes = {\n /** Configuration object used to render the component */\n value: PropTypes.shape({\n /** Configuration for table columns */\n columns: PropTypes.arrayOf(PropTypes.shape({\n /** Unique id of the column */\n id: PropTypes.string.isRequired,\n /** Name of the column */\n name: PropTypes.string,\n /** Type of column, String by default */\n type: PropTypes.oneOfType([\n /** Just renders cell data of type strings */\n PropTypes.string,\n /** Render cell of elements (eg. Input / Button) */\n PropTypes.element,\n /** Render a custom function/component */\n PropTypes.func,\n ]),\n sortable: PropTypes.oneOfType([\n /** Make Column sortable */\n PropTypes.bool,\n /** Configure sorting behaviour */\n PropTypes.shape({\n /** Set default sorting direction ASC / DESC */\n default: PropTypes.string,\n }),\n ]),\n })),\n /** Configuration for table rows */\n rows: PropTypes.arrayOf(PropTypes.shape({})),\n /** Configuration to make table rows selectable */\n selectable: PropTypes.shape({}),\n /** Renders pagination for table if the object is missing / empty no pagination is rendered. */\n pagination: PropTypes.shape({}),\n /** Sets maximum height for table container. */\n maxHeight: PropTypes.string,\n /** Styling for the table container. */\n styling: PropTypes.shape({\n /** It's recommended to add styles to a class and pass the class in this object */\n className: PropTypes.string,\n }),\n }).isRequired,\n /** Callback executed with message and value when there are changes on table */\n onChange: PropTypes.func,\n /** Renders a component with the given message when `config.rows` is empty */\n noDataMessage: PropTypes.string,\n /** Show placeholder loader */\n loading: PropTypes.bool,\n /** Adds infinite scroller on page and calls `onChange` with `pagination.change` message */\n infiniteScrolling: PropTypes.bool,\n};\n\nTable.defaultProps = {\n loading: false,\n infiniteScrolling: false,\n noDataMessage: 'No Data Available',\n onChange: null,\n};\n\nexport default Table;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Column({\n children,\n align,\n className,\n offset,\n size,\n ...rest\n}) {\n const classes = [\n 'tyk-col',\n className,\n align && `tyk-col--align-${align}`,\n ...size.split(' ').map((cSize) => `tyk-col--${cSize}`),\n ...(offset ? offset.split(' ') : []).map((cOffset) => `tyk-col--offset-${cOffset}`),\n ].filter(Boolean).join(' ');\n\n return (\n
    \n { children }\n
    \n );\n}\n\nColumn.propTypes = {\n /**\n * This property describes how the column element will be aligned vertically\n * within a Row: bottom, center, top\n */\n align: PropTypes.string,\n /** Css classes that can be passed to the column element */\n className: PropTypes.string,\n /**\n * Specifies the size of the column within a Row (values must be between 1 - 12)\n */\n size: PropTypes.string.isRequired,\n /**\n * Specifies the left gap a column can have within a Row (values must be between 1 - 12)\n */\n offset: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n ]),\n};\n\nexport default Column;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/** Row component which must be always present as a wrapper for Columns */\nfunction Row({\n className,\n nogutters,\n children,\n ...rest\n}) {\n const classes = [\n 'tyk-row',\n className,\n nogutters && 'no-gutters',\n nogutters && 'tyk-row--gutterless',\n ].filter(Boolean).join(' ');\n\n return (\n
    \n { children }\n
    \n );\n}\n\nRow.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n /** Css classes that can be passed to the Row element */\n className: PropTypes.string,\n /** Removes all the spaces between column */\n nogutters: PropTypes.bool,\n};\n\nexport default Row;\n","import { createContext } from 'react';\n\nexport const DropdownContext = createContext();\n","import React, { cloneElement, useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { DropdownContext } from '../dropdown-context';\nimport Icon from '../../../../components/Icon';\n\nfunction DropdownItem(props) {\n const {\n customdropdownitem,\n children,\n eventKey,\n href,\n target,\n title,\n onClick,\n } = props;\n const dropdownItemCLick = useCallback((dropdownContext, itemProps) => {\n dropdownContext.onSelectItem(eventKey, itemProps);\n\n if (onClick) onClick(eventKey);\n }, []);\n\n return (\n \n {\n (dropdownContext) => (\n dropdownItemCLick(dropdownContext, props)}\n onKeyUp={() => {}}\n >\n {\n customdropdownitem\n ? cloneElement(customdropdownitem, {})\n : (\n \n {\n eventKey\n && dropdownContext.selectedItem === eventKey\n && dropdownContext.showCheckmark\n ? \n : null\n }\n \n {title || children}\n \n \n )\n }\n \n )\n }\n \n );\n}\n\nDropdownItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n customdropdownitem: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n ]),\n eventKey: PropTypes.string,\n href: PropTypes.string,\n target: PropTypes.string,\n onClick: PropTypes.func,\n title: PropTypes.string,\n};\n\nexport default DropdownItem;\n","import React, {\n Component, createRef,\n} from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport DropdownItem from './js/DropdownItem';\nimport Button from '../../../components/Button';\nimport { DropdownContext } from './dropdown-context';\n\nclass Dropdown extends Component {\n static isElemInRightView(el, dropdownWidth) {\n const windowWidth = window.innerWidth;\n const offset = el.getBoundingClientRect();\n const elemRight = offset.left + dropdownWidth;\n\n return elemRight <= windowWidth;\n }\n\n static isElemInBottomView(el, dropdownHeight) {\n const windowHeight = window.innerHeight;\n const offset = el.getBoundingClientRect();\n const elHeight = el.clientHeight;\n const elemBottom = offset.top + elHeight + dropdownHeight;\n\n return elemBottom <= windowHeight;\n }\n\n constructor(props) {\n super(props);\n\n const {\n selectedItem,\n open,\n } = this.props;\n\n this.state = {\n opened: open,\n selectedItem: selectedItem || null,\n };\n\n this.dropdownRef = createRef();\n this.dropdownListRef = createRef();\n this.dropdownButtonRef = createRef();\n this.onSelectItem = this.onSelectItem.bind(this);\n this.toggleDropdown = this.toggleDropdown.bind(this);\n this.handleClickOutside = this.handleClickOutside.bind(this);\n }\n\n componentDidMount() {\n document.addEventListener('mousedown', this.handleClickOutside);\n\n if (this.dropdownListRef.current) {\n this.getStyles();\n }\n }\n\n componentDidUpdate(prevProps) {\n const {\n open,\n } = this.props;\n const {\n opened,\n } = this.state;\n\n if (this.dropdownListRef.current) {\n this.getStyles();\n }\n\n if (\n !prevProps.open\n && open === true\n && !opened\n ) {\n this.toggleDropdown();\n }\n\n if (\n prevProps.open\n && open === false\n && opened\n ) {\n this.closeDropdown();\n }\n }\n\n componentWillUnmount() {\n document.removeEventListener('mousedown', this.handleClickOutside);\n }\n\n handleClickOutside(event) {\n if (\n this.dropdownListRef.current && !this.dropdownListRef.current.contains(event.target)\n && this.dropdownRef.current && !this.dropdownRef.current.contains(event.target)\n ) {\n this.closeDropdown();\n }\n }\n\n onSelectItem(itemId, itemProps) {\n const { closeOnSelect, onSelect } = this.props;\n const changes = {\n selectedItem: itemId,\n selectedItemProps: itemProps,\n };\n\n if (closeOnSelect) {\n changes.opened = false;\n }\n\n this.setState(changes);\n\n if (onSelect && typeof onSelect === 'function') {\n onSelect(itemId);\n }\n }\n\n getStyles() {\n const {\n display,\n position,\n offset,\n } = this.props;\n\n const dropdownEl = this.dropdownListRef.current;\n\n if (offset) {\n dropdownEl.style.top = `${offset.top}`;\n dropdownEl.style.left = `${offset.left}`;\n return;\n }\n\n const scrollTop = Math.max(\n document.documentElement.scrollTop,\n document.body.scrollTop,\n window.scrollY,\n );\n const el = this.dropdownRef.current;\n const elHeight = el.clientHeight;\n const dropdownHeight = dropdownEl ? dropdownEl.clientHeight : 0;\n const dropdownWidth = dropdownEl ? dropdownEl.clientWidth : 0;\n const offsetPosition = el.getBoundingClientRect();\n const { left, top } = offsetPosition;\n let customTop = 0;\n let customLeft = left;\n\n // calculate top position, depending on the element position on the page\n if (Dropdown.isElemInBottomView(el, dropdownHeight)) {\n customTop = top + scrollTop + elHeight;\n } else {\n customTop = top + scrollTop - dropdownHeight - 5;\n }\n\n if (!Dropdown.isElemInRightView(el, dropdownWidth)) {\n customLeft = left + el.clientWidth - dropdownWidth;\n }\n\n if (position !== 'relative') {\n dropdownEl.style.top = `${customTop}px`;\n if (display !== 'block') {\n dropdownEl.style.left = `${customLeft}px`;\n }\n }\n if (display !== 'block') {\n dropdownEl.style.minWidth = `${this.dropdownButtonRef.current.clientWidth}px`;\n }\n }\n\n getWrapperCssClasses() {\n const {\n btnGroup,\n btnGroupSize,\n className,\n btnTheme,\n wrapperClassName = '',\n } = this.props;\n let cssClasses = [wrapperClassName, 'tyk-dropdown'];\n\n cssClasses.push(`theme-${btnTheme || 'default'}`);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n if (btnGroup) {\n cssClasses.push('tyk-button-group');\n cssClasses.push(btnGroupSize ? `tyk-button-group--${btnGroupSize}` : 'tyk-button-group--md');\n }\n\n return cssClasses.join(' ');\n }\n\n getCssClasses() {\n const {\n opened,\n } = this.state;\n const {\n hasCustomContent,\n display,\n listclassnames,\n position,\n maxHeight,\n } = this.props;\n let cssClasses = ['tyk-dropdown-menu', 'tyk-dropdown'];\n\n if (maxHeight) {\n cssClasses.push('tyk-dropdown--scrollable');\n }\n\n if (opened) {\n cssClasses.push('opened');\n }\n\n if (listclassnames) {\n cssClasses = cssClasses.concat(listclassnames.split(' '));\n }\n\n if (display) {\n cssClasses.push('tyk-dropdown--block');\n }\n\n if (hasCustomContent) {\n cssClasses.push('tyk-dropdown--custom');\n }\n\n if (position === 'relative') {\n cssClasses.push('tyk-dropdown--relative');\n }\n\n return cssClasses.join(' ');\n }\n\n getBtnTitle() {\n const { btnTitle, stopButtonTextChange } = this.props;\n const { selectedItemProps } = this.state;\n\n if (!stopButtonTextChange && selectedItemProps?.title) {\n return selectedItemProps.title;\n }\n\n return btnTitle;\n }\n\n closeDropdown() {\n const { onClose } = this.props;\n\n this.setState({\n opened: false,\n }, () => {\n if (onClose) {\n onClose();\n }\n });\n }\n\n toggleDropdown() {\n const {\n opened,\n } = this.state;\n if (opened) {\n this.closeDropdown();\n\n return;\n }\n\n this.setState({\n opened: true,\n });\n }\n\n render() {\n const {\n appendTo,\n btnClassName,\n btnSize,\n customBtnTitle,\n hasCustomContent,\n btnTheme,\n children,\n label,\n showDropdownIcon,\n showTriggerButton,\n showCheckmark,\n disabled = false,\n maxHeight,\n } = this.props;\n const {\n selectedItem,\n opened,\n } = this.state;\n const DropdownWrapperTag = hasCustomContent ? 'div' : 'ul';\n return (\n \n {\n label\n ? (\n \n )\n : null\n }\n {\n showTriggerButton\n ? (\n \n { customBtnTitle || this.getBtnTitle() }\n \n )\n : null\n }\n {\n opened\n ? ReactDOM.createPortal(\n \n {\n opened\n ? (\n \n {\n (typeof children === 'function')\n ? children({\n closeDropdown: this.closeDropdown.bind(this),\n })\n : children\n }\n \n )\n : null\n }\n ,\n document.querySelector(appendTo || 'body'),\n )\n : null\n }\n \n );\n }\n}\n\nDropdown.propTypes = {\n appendTo: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n PropTypes.func,\n ]),\n closeOnSelect: PropTypes.bool,\n btnClassName: PropTypes.string,\n btnSize: PropTypes.string,\n btnGroupSize: PropTypes.string,\n btnTheme: PropTypes.string,\n btnTitle: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n customBtnTitle: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n btnGroup: PropTypes.bool,\n className: PropTypes.string,\n display: PropTypes.string,\n disabled: PropTypes.bool,\n hasCustomContent: PropTypes.bool,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n listclassnames: PropTypes.string,\n onClose: PropTypes.func,\n onSelect: PropTypes.func,\n open: PropTypes.bool,\n offset: PropTypes.instanceOf(Object),\n position: PropTypes.string,\n selectedItem: PropTypes.string,\n showDropdownIcon: PropTypes.bool,\n stopButtonTextChange: PropTypes.bool,\n showTriggerButton: PropTypes.bool,\n showCheckmark: PropTypes.bool,\n maxHeight: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\n\nDropdown.defaultProps = {\n closeOnSelect: false,\n showDropdownIcon: true,\n showTriggerButton: true,\n showCheckmark: true,\n open: false,\n};\n\nDropdown.Item = DropdownItem;\n\nexport default Dropdown;\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../../../components/Button';\nimport ButtonGroup from '../../../components/ButtonGroup';\n\nfunction DropdownTrigger({\n title,\n theme = 'primary',\n splitTrigger,\n toggle,\n onTriggerClick,\n value,\n}, ref) {\n return (\n !splitTrigger ? (\n \n {title}\n \n ) : (\n \n onTriggerClick(value) }}\n >\n {title}\n \n \n \n )\n );\n}\n\nDropdownTrigger.propTypes = {\n title: PropTypes.string,\n theme: PropTypes.string,\n splitTrigger: PropTypes.bool,\n toggle: PropTypes.func,\n dropdownRef: PropTypes.shape({\n current: PropTypes.instanceOf(Element),\n }).isRequired,\n onTriggerClick: PropTypes.func,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n};\n\nexport default forwardRef(DropdownTrigger);\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport FloatingContainer from '../../../components/FloatingContainer';\nimport List from '../../../components/List';\n\nfunction DropdownListWrapper({\n children,\n element,\n maxWidth,\n}, ref) {\n return (\n \n \n { children }\n \n \n );\n}\n\nDropdownListWrapper.propTypes = {\n element: PropTypes.shape({\n current: PropTypes.instanceOf(Element),\n }),\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n maxWidth: PropTypes.string,\n};\n\nexport default forwardRef(DropdownListWrapper);\n","import { createContext, useContext } from 'react';\n\nexport const DropdownContext = createContext();\n\nfunction useDropdowContext() {\n return useContext(DropdownContext);\n}\n\nexport default useDropdowContext;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport List from '../../../components/List';\nimport useDropdowContext from './useDrodpownContext';\n\nfunction DropdownItem({\n children,\n value,\n}) {\n const { onChange, value: dropdownValue } = useDropdowContext();\n return (\n \n onChange(value) }}\n >\n { children }\n \n \n );\n}\n\nDropdownItem.propTypes = {\n children: PropTypes.node,\n // eslint-disable-next-line\n value: PropTypes.any,\n};\n\nexport default DropdownItem;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport useDropdown from './useDropdown';\nimport DropdownTrigger from './DropdownTrigger';\nimport DropdownListWrapper from './DropdownListWrapper';\nimport DropdownItem from './DropdowItem';\nimport { DropdownContext } from './useDrodpownContext';\n\nfunction Dropdown2({\n children,\n title,\n theme,\n splitTrigger,\n onChange,\n value,\n setSelectedValueAsTitle,\n maxWidth,\n onTriggerClick,\n}) {\n const {\n isOpen,\n toggle,\n dropdownRef,\n dropdownListRef,\n } = useDropdown({\n splitTrigger,\n });\n\n const contextValue = useMemo(() => ({\n onChange,\n value,\n }), [onChange, value]);\n\n return (\n \n \n {isOpen && (\n \n { children }\n \n )}\n \n );\n}\n\nDropdown2.propTypes = {\n /** Title of the dropdown. It is being displayed in the Drodpown trigger */\n title: PropTypes.string,\n /** Theme of the dropdown trigger */\n theme: PropTypes.string,\n children: PropTypes.node,\n /** If true, the dropdown trigger will be split into two buttons.\n * one with the dropdown title and one for the arrow */\n splitTrigger: PropTypes.bool,\n /** Callback function called when a dropdown item is selected */\n onChange: PropTypes.func,\n /** Value of the selected dropdown item */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n /** If true, the selected value will be displayed in the dropdown trigger */\n setSelectedValueAsTitle: PropTypes.bool,\n /** sets the maximum width of the dropdown list menu */\n maxWidth: PropTypes.string,\n /** this function is being called when splitTrigger is true,\n * and receives as parameter the current value of the dropdown */\n onTriggerClick: PropTypes.func,\n};\n\nDropdown2.Item = DropdownItem;\n\nexport default Dropdown2;\n","import {\n useState, useRef, useCallback, useEffect,\n} from 'react';\n\nconst useDropdown = ({\n splitTrigger,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const dropdownRef = useRef(null);\n const dropdownListRef = useRef(null);\n\n const toggle = () => setIsOpen(!isOpen);\n\n const handleOutsideClick = useCallback((e) => {\n const triggerElement = !splitTrigger\n ? dropdownRef.current\n : dropdownRef.current.querySelector('.dropdown__trigger');\n if (\n isOpen\n && !triggerElement.contains(e.target)\n && !dropdownListRef.current.contains(e.target)\n ) {\n setIsOpen(false);\n }\n }, [isOpen]);\n\n useEffect(() => {\n document.addEventListener('mousedown', handleOutsideClick);\n return () => {\n document.removeEventListener('mousedown', handleOutsideClick);\n };\n }, [handleOutsideClick]);\n\n return {\n isOpen,\n toggle,\n dropdownRef,\n dropdownListRef,\n };\n};\n\nexport default useDropdown;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-ace\");","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport ace from 'ace-builds/src-noconflict/ace';\nimport AceEditor from 'react-ace';\nimport 'ace-builds/src-noconflict/mode-javascript';\nimport 'ace-builds/src-noconflict/mode-golang';\nimport 'ace-builds/src-noconflict/mode-python';\nimport 'ace-builds/src-noconflict/mode-css';\nimport 'ace-builds/src-noconflict/mode-json';\nimport 'ace-builds/src-noconflict/mode-xml';\nimport 'ace-builds/src-noconflict/mode-jsx';\nimport 'ace-builds/src-noconflict/ext-searchbox';\nimport 'ace-builds/src-noconflict/ext-beautify';\nimport 'ace-builds/src-noconflict/theme-github';\nimport jsonWorker from 'ace-builds/src-noconflict/worker-json';\n\nace.config.setModuleUrl('ace/mode/json_worker', jsonWorker);\n\nfunction CodeEditor(props) {\n const {\n disabled,\n readOnly,\n disableValidation,\n id,\n error,\n label,\n labelwidth,\n note,\n onBlur,\n onChange,\n theme,\n value,\n setOptions,\n wrapperClassName,\n } = props;\n const classes = [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const finalSetOptions = {\n ...setOptions,\n ...disableValidation && { useWorker: false },\n };\n\n const getCodeEditorError = useCallback(() => (\n error && error !== 'true' && error !== 'false'\n ? (\n

    \n {error}\n

    \n )\n : null\n ), [error]);\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const getNonLabelWidth = useCallback(() => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n }, [labelwidth]);\n\n const handleOnChange = useCallback((newValue) => {\n if (onChange) onChange(newValue);\n }, [onChange]);\n\n const handleOnBlur = useCallback(() => {\n if (onBlur) onBlur(value);\n }, [onBlur, value]);\n\n return (\n
    \n {\n label\n ? \n : null\n }\n
    \n {\n // eslint-disable-next-line\n editorInstance.container.style.resize = 'both';\n // mouseup = css resize end\n document.addEventListener('mouseup', () => (\n editorInstance.resize()\n ));\n }}\n setOptions={finalSetOptions}\n />\n {\n note\n ?

    { note }

    \n : null\n }\n { getCodeEditorError() }\n
    \n
    \n );\n}\n\nCodeEditor.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n disableValidation: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n mode: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n theme: PropTypes.string,\n value: PropTypes.string,\n setOptions: PropTypes.instanceOf(Object),\n wrapperClassName: PropTypes.string,\n};\n\nexport default CodeEditor;\n","import React, { Component, createRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\nimport Button from '../../../components/Button';\n\nconst getStateSelectedValues = (multiple, tags, value) => {\n if (!value) {\n return (multiple || tags) ? [] : null;\n }\n\n return value;\n};\n\nclass Combobox extends Component {\n static closeList() {\n return {\n cursor: -1,\n opened: false,\n };\n }\n\n static openList() {\n return {\n opened: true,\n };\n }\n\n static filterByName(itemValue, inputValue) {\n return itemValue.name.toLowerCase().indexOf(inputValue) > -1;\n }\n\n constructor(props) {\n super(props);\n const {\n multiple,\n tags,\n value,\n } = props;\n\n this.state = {\n cursor: -1,\n opened: false,\n width: 50,\n initialValue: value,\n stateSelectedValues: getStateSelectedValues(multiple, tags, value),\n searchText: '',\n tags,\n };\n\n this.comboboxRef = createRef();\n this.valuesListRef = createRef();\n this.inputRef = createRef();\n this.textRef = createRef();\n\n this.focusInput = this.focusInput.bind(this);\n this.onKeyUp = this.onKeyUp.bind(this);\n Combobox.openList = Combobox.openList.bind(this);\n this.handleClickOutside = this.handleClickOutside.bind(this);\n this.handleItemsNavigation = this.handleItemsNavigation.bind(this);\n this.handleComboboxDropdownClick = this.handleComboboxDropdownClick.bind(this);\n this.handleListItemClick = this.handleListItemClick.bind(this);\n this.handlePillRemoveClick = this.handlePillRemoveClick.bind(this);\n this.manageSelectedTags = this.manageSelectedTags.bind(this);\n }\n\n componentDidMount() {\n const { tags } = this.props;\n\n if (tags) {\n this.setInputWidth();\n }\n\n this.bindEvents();\n }\n\n componentWillUnmount() {\n this.unBindEvents();\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n if (\n JSON.stringify(nextProps.value) !== JSON.stringify(prevState.initialValue)\n || nextProps.tags !== prevState.tags\n ) {\n return {\n initialValue: nextProps.value,\n stateSelectedValues: getStateSelectedValues(\n nextProps.multiple,\n nextProps.tags,\n nextProps.value,\n ),\n tags: nextProps.tags,\n };\n }\n\n return null;\n }\n\n handleItemsNavigation(e) {\n const { tags } = this.props;\n if (['ArrowDown', 'ArrowUp'].indexOf(e.key) === -1) {\n return;\n }\n\n const { cursor } = this.state;\n const filteredValues = this.filterValues();\n let cursorNext;\n\n e.preventDefault();\n\n if (e.key === 'ArrowDown') {\n if (cursor === -1 || cursor === filteredValues.length - 1) {\n cursorNext = 0;\n } else if (cursor < filteredValues.length - 1) {\n cursorNext = cursor + 1;\n }\n }\n\n if (e.key === 'ArrowUp') {\n if (cursor > 0) {\n cursorNext = cursor - 1;\n } else {\n cursorNext = filteredValues.length - 1;\n }\n }\n\n if (this.valuesListRef.current && cursorNext > 4) {\n const scrollTop = (cursorNext - 4) * 38;\n\n this.valuesListRef.current.scrollTop = (!tags) ? 60 + scrollTop : scrollTop;\n } else if (this.valuesListRef.current) {\n this.valuesListRef.current.scrollTop = 0;\n }\n\n this.setState((previousState) => ({\n ...previousState,\n opened: true,\n cursor: cursorNext,\n }));\n }\n\n handleListItemClick(index) {\n // eslint-disable-next-line react/destructuring-assignment\n const clickedValue = this.props.values[index];\n if (clickedValue.disabled) return;\n\n const { multiple, tags } = this.props;\n\n const methodName = (tags) ? 'manageSelectedTags' : 'manageSelectedValues';\n const tempState = { ...this.state, ...this[methodName](index) };\n\n this.setState((previousState) => {\n if (!multiple && !tags) {\n tempState.opened = false;\n }\n\n return { ...previousState, ...tempState };\n });\n }\n\n handlePillRemoveClick(index) {\n const { disabled } = this.props;\n\n if (disabled) {\n return;\n }\n\n const tempState = this.removeSelectedValue(index);\n\n this.setState((previousState) => ({ ...previousState, ...tempState }));\n }\n\n handleClickOutside(event) {\n if (\n this.valuesListRef.current && !this.valuesListRef.current.contains(event.target)\n && this.comboboxRef.current && !this.comboboxRef.current.contains(event.target)\n ) {\n this.setState((previousState) => ({ ...previousState, ...Combobox.closeList() }));\n }\n }\n\n handleComboboxDropdownClick() {\n const { disabled } = this.props;\n\n if (disabled) {\n return;\n }\n\n this.setState((previousState) => ({ ...previousState, ...Combobox.openList() }));\n }\n\n onKeyUp(e) {\n const { tags, allowCustomValues } = this.props;\n const { cursor, opened } = this.state;\n const filteredValues = this.filterValues();\n let tempState = this.getSearchText();\n\n if (tags && e.key !== 'Escape') {\n tempState = { ...tempState, ...this.setInputWidth() };\n }\n\n if (e.key === 'Enter') {\n const methodName = (tags) ? 'manageSelectedTags' : 'manageSelectedValues';\n tempState = { ...tempState, ...this[methodName](cursor) };\n }\n\n if (allowCustomValues && e.key !== ' ' && tags) {\n tempState = { ...tempState, ...this.manageSelectedTags() };\n }\n\n if (\n !opened\n && this.inputRef.current.value\n && filteredValues?.length\n && e.key !== 'Escape'\n ) {\n tempState = { ...tempState, ...Combobox.openList() };\n }\n\n if (e.key === 'Escape' && opened) {\n tempState = { ...tempState, ...Combobox.closeList() };\n }\n\n if (opened && filteredValues && !filteredValues.length) {\n tempState = { ...tempState, ...Combobox.closeList() };\n }\n\n this.setState((previousState) => ({ ...previousState, ...tempState }));\n }\n\n getLabelStyles() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n getNonLabelWidth() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n setInputWidth() {\n return {\n width: 50 + this.textRef.current.offsetWidth,\n };\n }\n\n getSelectedIndex(value) {\n const { stateSelectedValues } = this.state;\n let position = -1;\n\n if (Array.isArray(stateSelectedValues)) {\n stateSelectedValues.forEach((item, index) => {\n if (item.id === value.id) {\n position = index;\n }\n });\n } else if (stateSelectedValues) {\n if (stateSelectedValues.id === value.id) {\n position = 0;\n }\n }\n\n return position;\n }\n\n getSearchText() {\n return {\n searchText: this.inputRef.current.value,\n };\n }\n\n getListItemCssClasses(value, index) {\n const cssClasses = [];\n const {\n cursor,\n } = this.state;\n\n if (cursor === index) {\n cssClasses.push('active');\n }\n\n if (value.disabled) {\n cssClasses.push('disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n getComboboxListCssClass() {\n const { opened } = this.state;\n const { tags, theme } = this.props;\n const themes = theme ? theme.split(' ') : [];\n\n const cssClasses = ['tyk-combobox__list'];\n\n if (opened) {\n cssClasses.push('tyk-combobox__list--opened');\n }\n\n if (tags) {\n cssClasses.push('tyk-combobox__list--has-tags');\n }\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n return cssClasses.join(' ');\n }\n\n getCssClasses() {\n const {\n error, disabled, theme, labelwidth,\n } = this.props;\n const cssClasses = ['tyk-form-group', 'tyk-combobox'];\n const themes = theme ? theme.split(' ') : [];\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (disabled) {\n cssClasses.push('disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n getInputError() {\n const { error } = this.props;\n\n return (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null;\n }\n\n getStyles() {\n const { scrollTop } = document.documentElement;\n const el = this.comboboxRef.current;\n const elHeight = el.offsetHeight;\n const elWidth = el.offsetWidth;\n\n const offset = el.getBoundingClientRect();\n const { left } = offset;\n let top = 0;\n\n top = offset.top + scrollTop + elHeight;\n\n return {\n top: `${top - 1}px`,\n left: `${left}px`,\n width: `${elWidth}px`,\n };\n }\n\n getComboboxDisplayData() {\n const { stateSelectedValues } = this.state;\n const { multiple, placeholder, values } = this.props;\n\n if (!stateSelectedValues) {\n return placeholder;\n }\n\n if (stateSelectedValues && Array.isArray(stateSelectedValues) && !stateSelectedValues.length) {\n return placeholder;\n }\n\n if (stateSelectedValues && !Array.isArray(stateSelectedValues) && !stateSelectedValues.id) {\n return placeholder;\n }\n\n if (Array.isArray(stateSelectedValues) && multiple) {\n return stateSelectedValues.reduce((prevValue, value, index) => prevValue + value.name + ((index !== stateSelectedValues.length - 1) ? ', ' : ''), '');\n }\n\n if (\n values?.length\n && !Array.isArray(stateSelectedValues) && !stateSelectedValues.name\n ) {\n return values.filter((value) => value.id === stateSelectedValues.id)[0].name;\n }\n\n return stateSelectedValues.name;\n }\n\n manageSelectedTags(index) {\n const { max, allowCustomValues } = this.props;\n const { stateSelectedValues } = this.state;\n const filteredValues = this.filterValues();\n const value = { id: this.inputRef.current.value, name: this.inputRef.current.value };\n\n if (allowCustomValues === false && index === -1) {\n return null;\n }\n\n const tempValue = filteredValues[index] || value;\n const selectedIndex = this.getSelectedIndex(tempValue);\n let selectedValues = {};\n\n this.inputRef.current.value = '';\n\n if (selectedIndex > -1 && this.isInInitialValues(tempValue)) {\n selectedValues = this.removeSelectedValue(selectedIndex);\n } else if (selectedIndex === -1) {\n if (max && stateSelectedValues.length >= max) {\n return selectedValues;\n }\n selectedValues = this.addSelectedValue(tempValue);\n }\n\n return selectedValues;\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n manageSelectedValues(index) {\n const { stateSelectedValues } = this.state;\n const { multiple, onChange, max } = this.props;\n const filteredValues = this.filterValues();\n const tempSelectedValues = filteredValues[index];\n let selectedValues;\n const selectedIndex = this.getSelectedIndex(tempSelectedValues);\n\n if (tempSelectedValues && multiple) {\n if (selectedIndex > -1) {\n selectedValues = this.removeSelectedValue(selectedIndex);\n } else {\n if (max && stateSelectedValues.length >= max) {\n return selectedValues;\n }\n selectedValues = this.addSelectedValue(filteredValues[index]);\n }\n } else {\n selectedValues = {\n stateSelectedValues: (selectedIndex === -1) ? tempSelectedValues : { id: null },\n };\n\n onChange?.((selectedIndex === -1) ? tempSelectedValues : null);\n }\n\n return selectedValues;\n }\n\n removeSelectedValue(index) {\n const { stateSelectedValues } = this.state;\n const { onChange } = this.props;\n const tempStateSelectedValues = JSON.parse(JSON.stringify(stateSelectedValues));\n\n tempStateSelectedValues.splice(index, 1);\n\n if (onChange && typeof onChange === 'function') {\n onChange(tempStateSelectedValues.length ? tempStateSelectedValues : null);\n }\n\n return {\n stateSelectedValues: tempStateSelectedValues,\n searchText: '',\n };\n }\n\n addSelectedValue(value) {\n const { stateSelectedValues } = this.state;\n const { onChange } = this.props;\n const tempStateSelectedValues = JSON.parse(JSON.stringify(stateSelectedValues));\n\n tempStateSelectedValues.push(value);\n\n if (onChange && typeof onChange === 'function') {\n onChange(tempStateSelectedValues.length ? tempStateSelectedValues : null);\n }\n\n return {\n stateSelectedValues: tempStateSelectedValues,\n searchText: '',\n };\n }\n\n isInInitialValues(value) {\n const { values } = this.props;\n let ok = false;\n\n values.forEach((item) => {\n if (value.id === item.id) {\n ok = true;\n }\n });\n\n return ok;\n }\n\n filterValues() {\n const { values, searchItem } = this.props;\n\n if (!this.inputRef.current) {\n return values;\n }\n\n const arr = values\n .filter(\n (value) => (searchItem\n ? searchItem(value, this.inputRef.current.value.toLowerCase())\n : Combobox.filterByName(value, this.inputRef.current.value.toLowerCase())),\n );\n\n return arr;\n }\n\n bindEvents() {\n document.addEventListener('mousedown', this.handleClickOutside);\n }\n\n unBindEvents() {\n document.removeEventListener('mousedown', this.handleClickOutside);\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n reset() {\n const { multiple, tags, value } = this.props;\n\n this.setState({\n stateSelectedValues: getStateSelectedValues(multiple, tags, value),\n });\n }\n\n focusInput() {\n if (this.inputRef.current) {\n this.inputRef.current.focus();\n }\n }\n\n renderInput(filteredValues) {\n const {\n disabled,\n tags,\n max,\n placeholder,\n } = this.props;\n const {\n width, searchText, stateSelectedValues,\n } = this.state;\n\n return (\n {}}\n ref={this.comboboxRef}\n >\n {\n tags\n ? (\n <>\n {\n (stateSelectedValues || []).map((value, index) => (\n
  • \n \n \n \n { value.name }\n
  • \n ))\n }\n \n {(max === undefined || stateSelectedValues?.length < max) && (\n <>\n {\n if (e.key === 'Enter') {\n e.preventDefault();\n }\n this.handleItemsNavigation(e);\n }}\n onKeyUp={this.onKeyUp}\n placeholder={(!stateSelectedValues?.length) ? placeholder : ''}\n ref={this.inputRef}\n style={{\n width: (!stateSelectedValues?.length) ? '100%' : `${width}px`,\n }}\n />\n \n { searchText }\n \n \n )}\n {filteredValues.length > 0 && (\n \n )}\n \n \n )\n : (\n {}}\n >\n { this.getComboboxDisplayData() }\n \n \n )\n }\n \n );\n }\n\n renderDropdown(filteredValues) {\n const { tags } = this.props;\n const { opened } = this.state;\n return (\n \n {\n !tags\n ? (\n
  • \n \n
  • \n )\n : null\n }\n {\n filteredValues\n .map((value, index) => (\n {}}\n key={value.id}\n >\n {\n (this.getSelectedIndex(value) > -1)\n ? \n : null\n }\n \n {' '}\n { value.name }\n \n \n ))\n }\n \n );\n }\n\n render() {\n const {\n CustomListComponent,\n id,\n label,\n note,\n } = this.props;\n const { opened } = this.state;\n\n const filteredValues = this.filterValues();\n\n return (\n <>\n
    \n {\n label\n ? \n : null\n }\n \n {this.renderInput(filteredValues)}\n {\n note\n ?

    { note }

    \n : null\n }\n { this.getInputError() }\n
    \n \n {\n // eslint-disable-next-line no-nested-ternary\n !CustomListComponent\n ? opened && filteredValues.length\n ? ReactDOM.createPortal(\n this.renderDropdown(filteredValues),\n document.querySelector('body'),\n )\n : null\n : (\n \n )\n }\n \n );\n }\n}\n\nCombobox.propTypes = {\n allowCustomValues: PropTypes.bool,\n CustomListComponent: PropTypes.elementType,\n searchItem: PropTypes.func,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n id: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n multiple: PropTypes.bool,\n max: PropTypes.number,\n note: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n tags: PropTypes.bool,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.instanceOf(Object),\n PropTypes.instanceOf(Array),\n ]),\n values: PropTypes.instanceOf(Array),\n};\n\nCombobox.defaultProps = {\n allowCustomValues: true,\n};\n\nexport default Combobox;\n","import React, { useState, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from '../../../../components/Icon';\nimport Pill from '../../../../components/Pill';\n\nfunction Value(props) {\n const {\n value,\n max,\n tags,\n tagSeparators,\n addTagOnBlur,\n placeholder,\n disabled,\n renderValue,\n valueOverflow,\n focus,\n onMessage: sendMessage,\n readOnly,\n } = props;\n const INPUT_MIN_WIDTH = 60;\n const inputRef = useRef(null);\n const dummyElementRef = useRef(null);\n const [inputValue, setInputValue] = useState('');\n const [inputWidth, setInputWidth] = useState(`${INPUT_MIN_WIDTH + 10}px`);\n\n function entryFieldOnChange(val) {\n if (tagSeparators.some((ts) => val.slice(-1) === ts)) return;\n const dummy = dummyElementRef.current;\n dummy.innerHTML = val;\n setInputWidth(`${Math.max(dummy.clientWidth, INPUT_MIN_WIDTH) + 10}px`);\n setInputValue(val);\n sendMessage('tag.input.change', val);\n }\n\n function entryFieldOnKeyDown(key, val) {\n if (!tags) return;\n if (val === '' && key === 'Backspace' && value.length) {\n sendMessage('tag.remove', value[value.length - 1].id);\n return;\n }\n if (key === 'Enter') {\n sendMessage('tag.input.enter', val);\n entryFieldOnChange('');\n return;\n }\n if (key === 'ArrowUp') {\n sendMessage('tag.input.arrowUp');\n return;\n }\n if (key === 'ArrowDown') {\n sendMessage('tag.input.arrowDown');\n return;\n }\n if (key === 'Escape') {\n sendMessage('tag.input.escape');\n return;\n }\n if (tagSeparators.includes(key)) {\n sendMessage('tag.add', val);\n entryFieldOnChange('');\n }\n }\n\n function triggerAction() {\n sendMessage('text-value.click');\n }\n\n function textValue(val, isPlaceholder = false) {\n if (readOnly) return val || '-';\n\n const classes = [\n 'tyk-combobox2__text-value',\n `overflow-${valueOverflow}`,\n isPlaceholder && 'is-placeholder',\n ].filter(Boolean).join(' ');\n return (\n \n {val}\n \n );\n }\n\n function renderCustomValue(v) {\n const config = {\n tags,\n tagSeparators,\n placeholder,\n disabled,\n renderValue,\n sendMessage,\n };\n return renderValue(v, config);\n }\n\n function renderTag(v) {\n if (renderValue) return renderCustomValue(v);\n\n return (\n \n {\n e.stopPropagation();\n sendMessage('tag.remove', v.id);\n }}\n aria-label=\"remove\"\n >\n \n \n { v.name }\n \n );\n }\n\n function getTags() {\n return (\n <>\n {value.map(renderTag)}\n {value.length < max && (\n <>\n entryFieldOnChange(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') e.preventDefault();\n entryFieldOnKeyDown(e.key, e.target.value);\n }}\n onFocus={() => sendMessage('tag.input.focus')}\n onBlur={(e) => {\n sendMessage('tag.input.blur', e.target.value);\n if (addTagOnBlur) entryFieldOnChange('');\n }}\n />\n \n \n )}\n \n );\n }\n\n useEffect(() => {\n if (focus && inputRef.current) inputRef.current.focus();\n }, [focus]);\n\n if (readOnly) {\n return
    {textValue(value.map((v) => v.name).join(', '))}
    ;\n }\n\n if (tags) return getTags();\n if (renderValue) {\n return value.length === 0 ? textValue(placeholder, true) : value.map(renderCustomValue);\n }\n return value.length === 0\n ? textValue(placeholder, true)\n : textValue(value.map((v) => v.name).join(', '));\n}\n\nValue.propTypes = {\n value: PropTypes.instanceOf(Array),\n max: PropTypes.number,\n tags: PropTypes.instanceOf(Array),\n tagSeparators: PropTypes.instanceOf(Array),\n addTagOnBlur: PropTypes.bool,\n placeholder: PropTypes.string,\n disabled: PropTypes.bool,\n renderValue: PropTypes.func,\n valueOverflow: PropTypes.string,\n focus: PropTypes.bool,\n onMessage: PropTypes.func,\n readOnly: PropTypes.bool,\n};\n\nexport default Value;\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from '../../../../components/Icon';\n\nfunction List(props) {\n const {\n listRef,\n tags,\n values,\n searchValue,\n activeItem,\n onMessage: sendMessage,\n renderListItem,\n selectAll,\n showSearch,\n } = props;\n\n useEffect(() => {\n if (!listRef.current) return;\n const activeElement = listRef.current.querySelector('.active');\n if (activeElement) activeElement.scrollIntoView({ block: 'end' });\n }, [activeItem]);\n\n function renderItem(item) {\n if (renderListItem) {\n return renderListItem(item, {\n tags, searchValue, sendMessage, activeItem,\n });\n }\n\n return (\n !item.disabled && sendMessage('value.select', { item })}\n onKeyDown={() => {}}\n >\n {item.selected && }\n {item.name}\n \n );\n }\n\n function renderSelectAllOption() {\n const isAllSelected = values.every((v) => v.selected);\n const isNoneSelected = values.every((v) => !v.selected);\n const label = selectAll?.label ?? 'Select All';\n const mode = selectAll?.mode ?? 'select';\n const show = selectAll?.show ?? 'always';\n const render = selectAll?.render;\n\n const shouldRenderOption = show === 'always' || (mode === 'select' ? !isAllSelected : !isNoneSelected);\n if (!shouldRenderOption) return null;\n\n if (render) {\n return render({\n label,\n mode,\n show,\n isAllSelected,\n isNoneSelected,\n }, sendMessage);\n }\n return (\n sendMessage('value.select-all', mode === 'select' ? !isAllSelected : isNoneSelected)}\n onKeyDown={() => {}}\n >\n {(mode === 'select' ? isAllSelected : isNoneSelected) && }\n {label}\n \n );\n }\n\n return (\n <>\n {!tags && showSearch && (\n
    \n sendMessage('search.change', e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Escape') sendMessage('search.escape');\n if (e.key === 'ArrowUp') sendMessage('search.arrowUp');\n if (e.key === 'ArrowDown') sendMessage('search.arrowDown');\n if (e.key === 'Enter') sendMessage('search.enter');\n }}\n />\n
    \n )}\n {values.length > 0 && (\n
      \n {Boolean(selectAll) && (\n renderSelectAllOption()\n )}\n {values.map(renderItem)}\n
    \n )}\n \n );\n}\n\nList.propTypes = {\n listRef: PropTypes.instanceOf(Object),\n tags: PropTypes.bool,\n values: PropTypes.instanceOf(Array),\n searchValue: PropTypes.string,\n activeItem: PropTypes.instanceOf(Object),\n onMessage: PropTypes.func,\n renderListItem: PropTypes.func,\n selectAll: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n mode: PropTypes.oneOf(['select', 'unselect']),\n show: PropTypes.oneOf(['always', 'notSameState']),\n render: PropTypes.func,\n }),\n ]),\n showSearch: PropTypes.bool,\n};\n\nexport default List;\n","import React, {\n useCallback, useEffect, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\nimport FloatingContainer from '../../../components/FloatingContainer';\n\nimport Value from './js/Value';\nimport List from './js/List';\n\n/**\n * Dropdown-like component that can display selected values as regular text,\n * tags, or in a custom way.\n * You can select values from a list or type in new ones.\n */\nfunction Combobox2({\n value: propValue,\n values: propValues = [],\n valueOverflow = 'single',\n label = '',\n labelwidth,\n tags = false,\n tagSeparators = [' ', 'Enter'],\n addTagOnBlur = false,\n max: maxProp,\n multiple = false,\n placeholder = '',\n theme,\n note = '',\n error = '',\n disabled = false,\n readOnly = false,\n allowCustomValues = true,\n searchItem: matchItemFn,\n renderValue,\n renderListItem,\n renderList: renderListProp,\n CustomListComponent,\n onBeforeChange = () => true,\n onChange = () => {},\n floatingContainerConfig,\n expandMode,\n infiniteScrollerConfig,\n displayDropdownTrigger = true,\n selectAll,\n closeOnSelect,\n showSearch = false,\n required = false,\n validateOnChange = () => {},\n wrapperClassName = '',\n ...restProps\n}) {\n const max = useMemo(\n () => (multiple ? Infinity : maxProp || (tags ? Infinity : 1)),\n [multiple, maxProp, tags],\n );\n const renderList = CustomListComponent\n ? (values, { sendMessage }) => (\n sendMessage('value.select', { item: values[index] })}\n />\n )\n : renderListProp;\n\n const rootRef = useRef(null);\n const comboboxControlRef = useRef(null);\n const dropdownRef = useRef(null);\n const listRef = useRef(null);\n\n const [value, setValue] = useState(getValueFromProp(propValue, propValues));\n const [values, setValues] = useState(propValues.map((v) => normalizeValue(v)));\n const [searchValue, setSearchValue] = useState('');\n const [activeItem, setActiveItem] = useState(null);\n const [isOpened, setIsOpened] = useState(false);\n const [valuesExpanded, setValuesExpanded] = useState(false);\n const [localValidationError, setLocalValidationError] = useState('');\n\n function getThemeClasses() {\n const themes = theme ? theme.split(' ') : [];\n return themes.map((iTheme) => `tyk-form-group--${iTheme}`);\n }\n\n function getCssClasses() {\n return [\n wrapperClassName,\n 'tyk-form-group',\n 'tyk-combobox2',\n ...getThemeClasses(),\n (error || localValidationError) && 'has-error',\n labelwidth && 'tyk-form-group--label-has-width',\n disabled && 'disabled',\n expandMode && 'is-expand-mode',\n ].filter(Boolean).join(' ');\n }\n\n function getFilteredValues() {\n const defaultFn = (v, s) => v?.name?.toLowerCase()?.includes(s);\n const fn = matchItemFn || defaultFn;\n const filteredValues = values.filter((v) => fn(v, searchValue.toLowerCase()));\n return filteredValues;\n }\n\n function openDropdown() {\n setIsOpened(true);\n }\n\n function closeDropdown() {\n setIsOpened(false);\n if (!tags) updateSearchValue('');\n setActiveItem(null);\n }\n\n function updateSearchValue(newSearchValue) {\n setSearchValue(newSearchValue);\n if (activeItem && getFilteredValues().every((fv) => fv.id !== activeItem.id)) {\n setActiveItem(null);\n }\n if (newSearchValue && !isOpened) openDropdown();\n }\n\n function isValidValue(newValues, lastValue) {\n const localError = validateOnChange(newValues, lastValue);\n setLocalValidationError(localError);\n return localError === undefined;\n }\n\n function updateValue(newValues) {\n setValue(newValues);\n onChange(max === 1 && !tags ? (newValues[0] || null) : newValues);\n }\n\n function addTag(val) {\n if (!val) return;\n if (value.length >= max) return;\n if (value.some(({ name }) => name === val)) return;\n\n const listValueIndex = values.findIndex((lv) => lv.name === val);\n let newValue;\n let finalValue = [...value];\n let selectedValues;\n\n if (listValueIndex === -1) {\n if (allowCustomValues) {\n newValue = { id: val, name: val };\n finalValue = [...value, newValue];\n }\n } else {\n selectedValues = [\n ...values.slice(0, listValueIndex),\n { ...values[listValueIndex], selected: true },\n ...values.slice(listValueIndex + 1),\n ];\n newValue = values[listValueIndex];\n finalValue = [...value, values[listValueIndex]];\n }\n\n if (isValidValue(finalValue, newValue) && onBeforeChange(value, finalValue)) {\n if (selectedValues) {\n setValues(selectedValues);\n }\n updateValue(finalValue);\n }\n }\n\n function removeTag(id) {\n if (required && max === 1) return;\n\n const listValueIndex = values.findIndex((lv) => lv.id === id);\n const newValue = value.filter((v) => v.id !== id);\n\n if (!onBeforeChange(value, newValue)) return;\n\n if (listValueIndex !== -1) {\n setValues([\n ...values.slice(0, listValueIndex),\n { ...values[listValueIndex], selected: false },\n ...values.slice(listValueIndex + 1),\n ]);\n }\n updateValue(newValue);\n }\n\n function selectValue({ id }) {\n const val = values.find((v) => v.id === id);\n const valIndex = values.findIndex((v) => v.id === id);\n let finalValue = value;\n let selectedValues = values;\n\n if (val.selected) {\n if (!required || max !== 1) {\n finalValue = value.filter((v) => v.id !== val.id);\n selectedValues = values.with(valIndex, { ...val, selected: false });\n }\n } else if (value.length < max) {\n finalValue = [...value, val];\n selectedValues = values.with(valIndex, { ...val, selected: true });\n } else if (max === 1) {\n finalValue = [val];\n selectedValues = values.map((v) => ({ ...v, selected: v.id === val.id }));\n }\n\n if (isValidValue(finalValue, val) && onBeforeChange(value, finalValue)) {\n updateValue(finalValue);\n setValues(selectedValues);\n }\n\n if (max === 1 || closeOnSelect) {\n closeDropdown();\n }\n }\n\n function selectAllValues(selected) {\n if (values.length > max) return;\n const newValue = selected ? [...values] : [];\n\n if (!onBeforeChange(value, newValue)) return;\n\n updateValue(newValue);\n setValues(values.map((v) => ({ ...v, selected })));\n if (closeOnSelect) closeDropdown();\n }\n\n function moveUpActiveItem() {\n const visibleItems = getFilteredValues().filter((v) => !v.disabled);\n if (visibleItems.length === 0) return;\n if (activeItem === null || visibleItems.length === 1) {\n setActiveItem(visibleItems[visibleItems.length - 1]);\n return;\n }\n const activeIndex = visibleItems.findIndex((v) => v.id === activeItem.id);\n setActiveItem(visibleItems[activeIndex > 0 ? activeIndex - 1 : visibleItems.length - 1]);\n }\n\n function moveDownActiveItem() {\n const visibleItems = getFilteredValues().filter((v) => !v.disabled);\n if (visibleItems.length === 0) return;\n if (activeItem === null || visibleItems.length === 1) {\n setActiveItem(visibleItems[0]);\n return;\n }\n const activeIndex = visibleItems.findIndex((v) => v.id === activeItem.id);\n setActiveItem(visibleItems[activeIndex < visibleItems.length - 1 ? activeIndex + 1 : 0]);\n }\n\n function executeTriggerAction() {\n if (expandMode) {\n setValuesExpanded(!valuesExpanded);\n } else {\n openDropdown();\n }\n }\n\n function handleDocumentClick(e) {\n const isClickInside = rootRef.current?.contains(e.target)\n || dropdownRef.current?.contains(e.target);\n if (!isClickInside) {\n closeDropdown();\n }\n }\n\n function onClickCapture(e) {\n if (!disabled) return;\n if (!expandMode) {\n e.stopPropagation();\n return;\n }\n\n const triggerElement = rootRef.current.querySelector('.tyk-combobox2__values-container-trigger');\n if (!triggerElement) return;\n\n const isClickOnTrigger = triggerElement === e.target || triggerElement.contains(e.target);\n if (!isClickOnTrigger) e.stopPropagation();\n }\n\n function onTagMessage(message, data) {\n if (message === 'add') {\n addTag(data);\n updateSearchValue('');\n }\n\n if (message === 'remove') removeTag(data);\n\n if (message === 'input.change') updateSearchValue(data);\n\n if (message === 'input.enter') {\n if (activeItem) {\n selectValue(activeItem);\n } else if (tagSeparators.includes('Enter')) {\n addTag(data);\n updateSearchValue('');\n }\n }\n\n if (message === 'input.arrowUp') {\n openDropdown();\n moveUpActiveItem();\n }\n\n if (message === 'input.arrowDown') {\n openDropdown();\n moveDownActiveItem();\n }\n\n if (message === 'input.escape') closeDropdown();\n\n if (message === 'input.blur' && addTagOnBlur) {\n addTag(data);\n updateSearchValue('');\n }\n\n if (message === 'input.focus') {\n openDropdown();\n }\n }\n\n const onMessage = useCallback((message, data) => {\n if (message.startsWith('tag.')) onTagMessage(message.slice(4), data);\n\n if (message === 'value.select') selectValue(data.item);\n\n if (message === 'value.select-all') selectAllValues(data);\n\n if (message === 'text-value.click') openDropdown();\n\n if (message === 'search.change') updateSearchValue(data);\n\n if (message === 'search.escape') closeDropdown();\n\n if (message === 'search.arrowUp') moveUpActiveItem();\n\n if (message === 'search.arrowDown') moveDownActiveItem();\n\n if (message === 'search.enter') {\n if (activeItem) selectValue(activeItem);\n }\n }, [\n onTagMessage,\n selectValue,\n selectAllValues,\n openDropdown,\n updateSearchValue,\n closeDropdown,\n moveUpActiveItem,\n moveDownActiveItem,\n ]);\n\n const renderIcon = useCallback(\n () => (expandMode\n ? \n : \n ),\n [expandMode, valuesExpanded],\n );\n\n useEffect(() => {\n window.addEventListener('click', handleDocumentClick, true);\n return () => window.removeEventListener('click', handleDocumentClick, true);\n }, []);\n\n useEffect(() => {\n if (propValues.length) {\n const newValues = propValues.map((v) => ({\n ...normalizeValue(v),\n selected: value.some((sv) => sv.id === v.id),\n }));\n setValues(newValues);\n setValue((val) => val.map((v) => newValues.find((nv) => nv.id === v.id) || v));\n } else if (values.length) {\n setValues([]);\n }\n }, [propValues]);\n\n useEffect(() => {\n const newValue = getValueFromProp(propValue, values);\n setValue(newValue);\n setValues((vals) => vals.map((v) => ({\n ...normalizeValue(v),\n selected: newValue.some((nv) => nv.id === v.id),\n })));\n }, [propValue]);\n\n useEffect(() => {\n if (!expandMode) return () => {};\n\n const valuesElement = comboboxControlRef.current.querySelector('.tyk-combobox2__current-values');\n const updateScroll = () => {\n valuesElement.scrollTop = valuesElement.scrollHeight;\n };\n /* eslint-disable-next-line no-undef */\n const mobserver = new MutationObserver(updateScroll);\n const robserver = new ResizeObserver(updateScroll);\n\n mobserver.observe(valuesElement, { attributes: true, childList: true, subtree: true });\n robserver.observe(valuesElement);\n\n return () => {\n mobserver.disconnect();\n robserver.disconnect();\n };\n });\n\n const filteredValues = getFilteredValues();\n const currentValuesClasses = [\n 'tyk-combobox2__current-values',\n expandMode && 'expand-mode',\n `tyk-combobox2__current-values--${valuesExpanded ? 'expanded' : 'collapsed'}`,\n ].join(' ');\n\n return (\n \n {label && (\n \n )}\n {!readOnly && (\n \n
    \n \n \n
    \n {displayDropdownTrigger && (\n \n {renderIcon()}\n \n )}\n \n {isOpened && (!tags || filteredValues.length > 0) && (\n \n {renderList ? (\n renderList(filteredValues, {\n tags,\n searchValue,\n activeItem,\n listRef,\n sendMessage: onMessage,\n })\n ) : (\n \n )}\n \n )}\n {note && (\n

    {note}

    \n )}\n {((error && error !== 'true' && error !== 'false') || Boolean(localValidationError)) && (\n

    {error || localValidationError}

    \n )}\n \n )}\n {readOnly && (\n
    \n \n
    \n )}\n \n );\n}\n\nCombobox2.propTypes = {\n /** If `true` it allows entering values that are not in the list. */\n allowCustomValues: PropTypes.bool,\n /** Alias for `renderList`\n * used for backwards compatibility with the old Combobox component. */\n CustomListComponent: PropTypes.elementType,\n /** A function used for filtering elements displayed in the list when typing in. */\n searchItem: PropTypes.func,\n /** A custom component that will be used to display a value. */\n renderValue: PropTypes.func,\n /** A custom component that will be used to display an item in the dropdown list. */\n renderListItem: PropTypes.func,\n /** A custom component that will be used to display the entire content of the dropdown. */\n renderList: PropTypes.func,\n disabled: PropTypes.bool,\n /** hides the UI form element and displayes just the value as text */\n readOnly: PropTypes.bool,\n error: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n /** The maximum number of values that can be selected/added. */\n max: PropTypes.number,\n /** Shorthand for max=Infinity */\n multiple: PropTypes.bool,\n note: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n /**\n * Callback called before changing the value of the component.\n * The value change will succeed only if the callback's return value is truthy.\n * The callback is called with two arguments: 1) the previous value, 2) the next value */\n onBeforeChange: PropTypes.func,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n /** Enables the display of values as `Pill` components that can be\n * removed without opening the dropdown. */\n tags: PropTypes.bool,\n /** A list of characters that will trigger the creation of a tag when typed. */\n tagSeparators: PropTypes.arrayOf(PropTypes.string),\n /** If set to true a tag will be created whenever the component loses focus\n * and there is something typed in. */\n addTagOnBlur: PropTypes.bool,\n theme: PropTypes.string,\n /** The value of the component. It can be a string, an array,\n * or an object with an `id` property. */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n ]),\n /** An array of selectable values. */\n values: PropTypes.instanceOf(Array),\n /** Config object passed to the internal floating container component. */\n floatingContainerConfig: PropTypes.instanceOf(Object),\n /** If set to `single` it will display the values on a single line\n * with an ellipsis at the end. */\n valueOverflow: PropTypes.oneOf(['single', 'multiple']),\n /**\n * If set to `true` whenever the user clicks on the dropdown trigger\n * the selected values container\n * will expand to show all selected values instead of opening the dropdown.\n */\n expandMode: PropTypes.bool,\n /** Config object passed to the internal infinite scroller component. */\n infiniteScrollerConfig: PropTypes.instanceOf(Object),\n /** Toggles the display of the dropdown trigger. */\n displayDropdownTrigger: PropTypes.bool,\n /**\n * If a boolean it will toggle the select all functionality from the dropdown.\n * It can also be an object with the shape `{ label, show, mode, render }`.\n * label - A string displayed as the select all option\n * show - It can be one of `['always', 'notSameState']`.\n * `always` means the option will always be displayed.\n * `notSameState` means it will be displayed only if the list items are\n * not all with the same state (depending on the `mode` value)\n * mode - It can be one of `['select', 'unselect']` and makes sense only\n * when the `show` property is `notSameState`\n * `select` means the select all option will only be displayed if not all\n * items are selected\n * `unselect` means the option will be displayed if no items are selected\n */\n selectAll: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n mode: PropTypes.oneOf(['select', 'unselect']),\n show: PropTypes.oneOf(['always', 'notSameState']),\n render: PropTypes.func,\n }),\n ]),\n /** It `true` the dropdown will close after selecting a value. */\n closeOnSelect: PropTypes.bool,\n /** Toggles the display of the search input from the dropdown. */\n showSearch: PropTypes.bool,\n /** If it is required and can only select one value once you have something\n * selected you will not be able to deselect */\n required: PropTypes.bool,\n /** Validates newly added value before adding it to the selected values.\n * Returns an error string in case of error otherwise it returns undefined\n */\n validateOnChange: PropTypes.func,\n wrapperClassName: PropTypes.string,\n};\n\nexport default Combobox2;\n\nfunction normalizeValue(value, values) {\n let v = value;\n if (typeof value === 'string') v = { id: value, name: value };\n else if (!value.hasOwnProperty('name')) v = { ...value, name: value.id }; // eslint-disable-line no-prototype-builtins\n if (!values) return v;\n const existingVal = values.find((ev) => ev.id === v.id);\n return existingVal ? { ...v, ...existingVal } : v;\n}\n\nfunction getValueFromProp(value, values) {\n if (!value) return [];\n if (Array.isArray(value)) return value.map((v) => normalizeValue(v, values));\n return [normalizeValue(value, values)];\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"flatpickr\");","import React, {\n useEffect, useState, useRef, useCallback,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport flatpickr from 'flatpickr';\n\nimport Icon from '../../../components/Icon';\nimport { usePrevious } from '../../../hooks';\n\nfunction DatePicker({\n children,\n disabled,\n readOnly = false,\n error,\n id,\n label,\n labelwidth,\n note,\n onClose,\n onChange,\n onOpen,\n theme,\n config = {},\n value,\n wrapperClassName = '',\n}) {\n const [pickerInstance, setPickerInstance] = useState(null);\n const dateRef = useRef(null);\n\n const prevValue = usePrevious(value);\n\n const hasValueChanged = useCallback((prevDate, currentDate) => {\n if (!prevDate) return true;\n if (!Array.isArray(currentDate)) return prevDate.getTime() !== currentDate.getTime();\n\n let diffDates = currentDate;\n\n if (prevDate && currentDate.length && prevDate.length) {\n diffDates = currentDate.filter((date, index) => date.getTime() !== prevDate[index].getTime());\n\n return diffDates.length > 0;\n }\n\n return currentDate.length > 0;\n }, []);\n\n const onDateChange = useCallback((dateValue) => {\n const finalValue = config.mode === 'range' ? dateValue : dateValue[0] || null;\n\n if (!onChange) return;\n\n if (config.mode === 'range') {\n if (finalValue.length === 2 && hasValueChanged(prevValue, finalValue)) {\n onChange(finalValue);\n }\n } else {\n onChange(finalValue);\n }\n }, [prevValue, onChange, hasValueChanged]);\n\n useEffect(() => {\n if (dateRef.current && !pickerInstance) {\n const instance = flatpickr(dateRef.current, {\n ...config, defaultDate: value, onChange: onDateChange, onClose, onOpen,\n });\n setPickerInstance(instance);\n }\n\n return () => {\n if (pickerInstance) {\n pickerInstance.destroy();\n }\n };\n }, [pickerInstance]);\n\n useEffect(() => {\n if (pickerInstance) {\n let tempValue = value;\n\n if (typeof value === 'string') {\n tempValue = new Date(value);\n } else if (Array.isArray(value)) {\n tempValue = value.map((date) => new Date(date));\n }\n\n if (hasValueChanged(prevValue, tempValue)) {\n pickerInstance.set('onChange', onDateChange);\n if (config.mode === 'range') {\n if (tempValue && tempValue.length === 2) {\n pickerInstance.setDate(tempValue, true);\n }\n } else {\n pickerInstance.setDate(tempValue, true);\n }\n }\n }\n }, [prevValue, value, pickerInstance]);\n\n const classes = [\n 'tyk-form-group',\n 'tyk-form-group--addon-right',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const getLabelStyles = () => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n };\n\n const getNonLabelWidth = () => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n };\n\n const openCalendar = useCallback(() => {\n if (!pickerInstance) return;\n\n pickerInstance.open();\n }, [pickerInstance]);\n\n const getInputError = () => (\n (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null\n );\n\n const getInputField = () => {\n let inputStyle = {};\n let addonStyle = {};\n\n if (config?.inline) {\n inputStyle = {\n height: 0,\n padding: 0,\n width: 0,\n visibility: 'hidden',\n };\n\n addonStyle = {\n display: 'none',\n };\n }\n return (\n <>\n \n {}}\n tabIndex={0}\n style={addonStyle}\n aria-label=\"show calendar\"\n >\n \n \n \n );\n };\n\n return (\n <>\n {\n children?.length\n ? children({ openCalendar, ref: dateRef })\n : (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n
    \n {getInputField()}\n
    \n {\n note\n ?

    { note }

    \n : null\n }\n { getInputError() }\n
    \n )}\n \n )\n }\n
    \n {readOnly && !value && '-'}\n {readOnly && value && flatpickr.formatDate(value, config.dateFormat || 'd/m/Y')}\n
    \n \n );\n}\n\nDatePicker.propTypes = {\n config: PropTypes.instanceOf(Object),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n PropTypes.func,\n ]),\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n onClose: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n onOpen: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n theme: PropTypes.string,\n error: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n PropTypes.string,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default DatePicker;\n","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n // eslint-disable-next-line no-console\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n case 'aaa':\n return dayPeriodEnumValue;\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, dirtyDelimiter);\n}\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\nexport default formatters;","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n var dateTimeFormat;\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n return result;\n};\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import defaultLocale from \"../../locale/en-US/index.js\";\nexport default defaultLocale;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n var originalDate = toDate(dirtyDate);\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n var formatter = formatters[firstCharacter];\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n return substring;\n }).join('');\n return result;\n}\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n if (!matched) {\n return input;\n }\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import React, { Component, createRef } from 'react';\nimport isEqual from 'react-fast-compare';\nimport PropTypes from 'prop-types';\n\nimport Column from '../../../../layout/Column';\nimport Row from '../../../../layout/Row';\nimport Button from '../../../../components/Button';\n\nclass EditableListForm extends Component {\n static getMainFormValue(components) {\n const mainFormValue = new Array(components.length);\n\n components.forEach((component, index) => {\n mainFormValue[index] = component.props.value || undefined;\n });\n\n return mainFormValue;\n }\n\n constructor(props) {\n super(props);\n const {\n components,\n } = props;\n\n this.submitButtonRef = createRef();\n this.handleOnChange = this.handleOnChange.bind(this);\n this.submitForm = this.submitForm.bind(this);\n\n this.state = {\n components,\n errors: {},\n mainError: null,\n mainFormValue: EditableListForm.getMainFormValue(components),\n refs: [],\n };\n }\n\n componentDidMount() {\n const {\n addValueOnFieldChange,\n getMainFormButtonWidth,\n } = this.props;\n this.createRefs();\n\n if (getMainFormButtonWidth) {\n getMainFormButtonWidth(\n !addValueOnFieldChange\n ? this.submitButtonRef.current.clientWidth\n : 0,\n );\n }\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const state = {};\n const {\n components: propsComponents,\n } = nextProps;\n\n const {\n components: stateComponents,\n } = prevState;\n if (\n !isEqual(propsComponents, stateComponents)\n && !isEqual(\n EditableListForm.getMainFormValue(propsComponents),\n EditableListForm.getMainFormValue(stateComponents),\n )\n ) {\n state.mainFormValue = EditableListForm.getMainFormValue(propsComponents);\n state.components = propsComponents;\n }\n\n return state;\n }\n\n handleOnChange(component, index, value) {\n const { addValueOnFieldChange } = this.props;\n let tempState = this.state;\n\n tempState = { ...tempState, ...this.validateValue(value, component.props) };\n\n if (!tempState.errors[component.props.name]) {\n tempState.mainFormValue[index] = value;\n\n if (component.props.onChange) {\n component.props.onChange(value);\n }\n }\n\n this.setState((previousState) => ({ ...previousState, ...tempState }), () => {\n if (addValueOnFieldChange) {\n this.submitForm();\n }\n });\n }\n\n getFormCssClasses() {\n const { noLabels } = this.props;\n const cssClasses = ['tyk-editable-list__form'];\n\n if (noLabels) {\n cssClasses.push('no-labels');\n }\n\n return cssClasses.join(' ');\n }\n\n getButtonClassName() {\n const { buttonStyle, displayType } = this.props;\n const cssClasses = [];\n\n if (buttonStyle) {\n cssClasses.push(buttonStyle);\n }\n\n if (displayType) {\n cssClasses.push(displayType);\n }\n\n return cssClasses.join(' ');\n }\n\n getComponentsError(component) {\n const {\n error,\n errors,\n mainError,\n } = this.state;\n\n if (error || mainError) {\n errors[component.props.name] = 'true';\n } else if (!(error || mainError) && errors[component.props.name] === 'true') {\n delete errors[component.props.name];\n }\n\n return errors[component.props.name] ? errors[component.props.name].toString() : undefined;\n }\n\n createRefs() {\n const { components } = this.props;\n const refs = [];\n\n components.forEach(() => {\n refs.push(createRef());\n });\n\n this.setState({\n refs,\n });\n }\n\n validateValue(value, props) {\n const { mainError, errors } = this.state;\n const { error, errorPersist } = this.props;\n\n const validatorsNames = props.validate ? Object.keys(props.validate) : [];\n // if there is a general form error don't take field errors into consideration\n const tempState = {\n errors: (error || mainError) ? {} : { ...errors },\n };\n let ok = true;\n\n // if the error should stay after changing fields values don't take actions\n if (errorPersist) {\n return tempState;\n }\n\n // validate each field from the form\n for (const validatorName of validatorsNames) {\n const validator = props.validate[validatorName];\n if (validator(value)) {\n tempState.errors[props.name] = props.validationmessages[validatorName];\n ok = false;\n break;\n }\n }\n\n // if the field is ok delete its error\n if (ok) {\n delete tempState.errors[props.name];\n }\n\n tempState.mainError = null;\n\n return tempState;\n }\n\n hasMainFormErrors(errors) {\n const { components, errorPersist } = this.props;\n const { mainFormValue } = this.state;\n const tempState = {\n errors: { ...errors },\n };\n\n if (errorPersist && mainFormValue.indexOf(undefined) === -1) {\n return false;\n }\n\n if (Object.keys(tempState.errors).length > 0) {\n return true;\n }\n\n components.forEach((component, index) => {\n tempState.errors = {\n ...tempState.errors,\n ...this.validateValue(mainFormValue[index], component.props).errors,\n };\n });\n\n return Object.keys(tempState.errors).length > 0;\n }\n\n resetForm() {\n const { refs } = this.state;\n const {\n components,\n } = this.props;\n\n refs.forEach((ref) => {\n if (ref.current?.reset) {\n ref.current.reset();\n }\n });\n\n this.setState({\n errors: {},\n mainError: null,\n mainFormValue: EditableListForm.getMainFormValue(components),\n });\n }\n\n showMainError(error) {\n this.setState({\n mainError: error,\n });\n }\n\n submitForm() {\n const { errors, mainFormValue } = this.state;\n const {\n errorPersist, onSubmit, validate, validationmessage,\n } = this.props;\n\n if (errorPersist) {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n\n if (\n Object.keys(errors).length === 0\n && (onSubmit && typeof onSubmit === 'function')\n ) {\n if (validate) {\n if (validate(mainFormValue)) {\n this.showMainError(validationmessage);\n } else {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n } else {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n }\n }\n\n render() {\n const {\n addValueOnFieldChange, components, buttonName, disabled, displayType, error,\n } = this.props;\n const {\n mainError, refs, errors,\n } = this.state;\n\n return (\n
    \n
    \n \n {\n components.map((component, index) => {\n const ComponentName = component.name;\n console.log('ComponentName', ComponentName);\n const {\n onChange, value, ...rest\n } = component.props;\n\n return (\n \n \n \n );\n })\n }\n \n {\n !addValueOnFieldChange\n ? (\n \n \n { buttonName || 'ADD' }\n \n \n )\n : null\n }\n
    \n {\n error || mainError\n ? (\n
    \n

    \n { error || mainError }\n

    \n
    \n )\n : null\n }\n
    \n );\n }\n}\n\nEditableListForm.propTypes = {\n addValueOnFieldChange: PropTypes.bool,\n noLabels: PropTypes.bool,\n buttonName: PropTypes.string,\n buttonStyle: PropTypes.string,\n components: PropTypes.instanceOf(Array),\n displayType: PropTypes.string,\n disabled: PropTypes.bool,\n getMainFormButtonWidth: PropTypes.func,\n error: PropTypes.string,\n errorPersist: PropTypes.bool,\n onSubmit: PropTypes.func,\n validate: PropTypes.func,\n validationmessage: PropTypes.string,\n};\n\nexport default EditableListForm;\n","import React, { Component, createRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport format from 'date-fns/format';\nimport isDate from 'date-fns/isDate';\n\nimport EditableListForm from './js/EditableListForm';\nimport Column from '../../../layout/Column';\nimport Icon from '../../../components/Icon';\nimport Row from '../../../layout/Row';\n\nclass EditableList extends Component {\n static getItemListValue(itemValue) {\n let tempValue = null;\n\n if (typeof itemValue === 'string') {\n tempValue = itemValue;\n }\n\n if (Object.prototype.toString.call(itemValue) === '[object Object]') {\n tempValue = itemValue.name;\n }\n\n if (isDate(itemValue)) {\n tempValue = format(itemValue, 'dd/MM/yyyy');\n }\n\n return tempValue;\n }\n\n static getListItemCssClass(displayType) {\n const cssClasses = [];\n\n if (displayType === 'inline') {\n cssClasses.push('tyk-editable-list-item--inline');\n }\n\n return cssClasses.join(' ');\n }\n\n constructor(props) {\n super(props);\n const {\n value,\n } = this.props;\n\n this.state = {\n initialValue: value || '',\n value: value || [],\n buttonWidth: 0,\n };\n\n this.startIndex = 1;\n\n this.handleFormSubmit = this.handleFormSubmit.bind(this);\n this.getMainFormButtonWidth = this.getMainFormButtonWidth.bind(this);\n this.dropdownListItemRef = createRef();\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const state = {};\n\n if (\n nextProps.value && JSON.stringify(nextProps.value)\n !== JSON.stringify(prevState.initialValue)\n ) {\n state.value = nextProps.value || [];\n state.initialValue = nextProps.value || '';\n }\n\n return state.value ? state : null;\n }\n\n handleFormSubmit(value) {\n const tempState = this.addValues(value);\n this.setState((previousState) => ({ ...previousState, ...tempState }), () => {\n this.triggerOnChange(tempState.value.length - 1, null, value);\n });\n }\n\n handleItemUpdate(index, value) {\n let prevValue;\n this.setState((previousState) => {\n const tempState = { ...previousState };\n prevValue = fromJS(tempState.value[index].value).toJS();\n tempState.value[index].value = value;\n tempState.value[index].editMode = false;\n\n return tempState;\n }, () => {\n this.triggerOnChange(index, prevValue, value);\n });\n }\n\n handleChildrenOnChange(index, value) {\n let prevValue;\n this.setState((previousState) => {\n const tempState = { ...previousState };\n prevValue = fromJS(tempState.value[index].children).toJS();\n tempState.value[index].children = value;\n\n return tempState;\n }, () => {\n this.triggerOnChange(index, prevValue, value);\n });\n }\n\n getListItemsCssClass(displayType) {\n const { config } = this.props;\n const cssClasses = ['tyk-editable-list-items'];\n\n cssClasses.push(config.displayType || 'table');\n\n if (displayType === 'inline') {\n cssClasses.push('tyk-editable-list-items--inline');\n }\n\n return cssClasses.join(' ');\n }\n\n getFormInputKey() {\n this.startIndex += 1;\n return this.startIndex;\n }\n\n // generate list item value's based on the display types\n // table, inline, list\n getListItemText(itemData) {\n const { config } = this.props;\n let value = null;\n\n switch (config.displayType) {\n case 'list':\n case 'inline': {\n const itemText = itemData.value.reduce((prevValue, itemValue, index) => {\n const tempValue = EditableList.getItemListValue(itemValue);\n let separator = ', ';\n\n if (index === itemData.value.length - 1) {\n separator = '';\n }\n\n return prevValue + tempValue + separator;\n }, '');\n\n value = itemText;\n\n break;\n }\n default:\n value = (\n \n {\n config.components.map((component, index) => (\n \n { EditableList.getItemListValue(itemData.value[index]) }\n \n ))\n }\n \n );\n\n break;\n }\n\n return value;\n }\n\n getMainFormButtonWidth(value) {\n this.setState({\n buttonWidth: value,\n });\n }\n\n setItemEditMode(index) {\n const newValues = this.closeListItems();\n\n this.setState((previousState) => {\n const tempState = { ...previousState };\n tempState.value = newValues;\n tempState.value[index].editMode = !tempState.value[index].editMode;\n\n return tempState;\n });\n }\n\n isInList(index, itemValue) {\n const { value } = this.state;\n let ok = false;\n\n value.forEach((item, itemIndex) => {\n if (JSON.stringify(item.value) === JSON.stringify(itemValue)) {\n if (index >= 0 && itemIndex === index) {\n ok = false;\n } else {\n ok = true;\n }\n }\n });\n\n return ok;\n }\n\n addValues(newValue) {\n const { value } = this.state;\n const { config } = this.props;\n const itemValue = {\n editMode: false,\n value: newValue,\n };\n const tempState = {\n value: value.slice(0),\n };\n\n if (config.children) {\n itemValue.children = [];\n }\n\n tempState.value.push(itemValue);\n\n return tempState;\n }\n\n removeListItem(index) {\n let removedItem;\n this.setState((previousState) => {\n const valueArr = previousState.value.slice(0);\n removedItem = valueArr.splice(index, 1);\n\n return {\n value: valueArr,\n };\n }, () => {\n this.triggerOnChange(index, removedItem, null);\n });\n }\n\n closeListItems() {\n const { value } = this.state;\n\n const newValues = value.map((itemValue) => {\n const tempItemValue = { ...itemValue };\n\n if (tempItemValue.editMode) {\n tempItemValue.editMode = false;\n return tempItemValue;\n }\n\n return tempItemValue;\n });\n\n return newValues;\n }\n\n triggerOnChange(index, prevValue, nextValue) {\n const { onChange } = this.props;\n const { value } = this.state;\n\n if (onChange && typeof onChange === 'function') {\n onChange(((value.length) ? value : null), index, prevValue, nextValue);\n }\n }\n\n genListItem(itemData, index) {\n const { config, disabled } = this.props;\n const { buttonWidth, value } = this.state;\n\n const clonedComponents = fromJS(config.components).toJS();\n\n itemData.value.forEach((itemValue, itemIndex) => {\n clonedComponents[itemIndex].props.value = itemValue;\n });\n\n return (\n \n \n {\n !itemData.editMode\n ? (\n <>\n { this.getListItemText(itemData, index) }\n \n \n \n \n \n \n \n \n \n )\n : (\n <>\n \n \n \n \n \n )\n }\n \n {\n config.children\n ? (\n \n )\n : null\n }\n \n );\n }\n\n genList() {\n const { config } = this.props;\n const { buttonWidth, value } = this.state;\n\n if (!value || value.length === 0) {\n return null;\n }\n\n return (\n <>\n {\n config.displayType === 'table' || !config.displayType\n ? (\n \n \n {\n config.components.map((component, index) => (\n \n { component.props.label }\n \n ))\n }\n \n \n )\n : null\n }\n
      \n {\n value.map((itemData, index) => this.genListItem(itemData, index))\n }\n
    \n \n );\n }\n\n render() {\n const {\n addValueOnFieldChange, config, error, disabled, label,\n } = this.props;\n const appendToElement = document.querySelector(config.appendTo) || document.querySelector('body');\n\n return (\n
    \n {\n label\n ? \n : null\n }\n \n {\n config.appendTo\n ? ReactDOM.createPortal(\n this.genList(),\n appendToElement,\n )\n : this.genList()\n }\n
    \n );\n }\n}\n\nEditableList.propTypes = {\n addValueOnFieldChange: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n config: PropTypes.instanceOf(Object),\n onChange: PropTypes.func,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n ]),\n};\n\nexport default EditableList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../../../components/Button';\n\nfunction Header({\n label, addButtonName, onAddRow, disabled, readOnly,\n}) {\n return (\n
    \n {\n label\n ? \n : null\n }\n {!disabled && !readOnly && (\n \n {addButtonName || 'Add'}\n \n )}\n
    \n );\n}\n\nHeader.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n onAddRow: PropTypes.func,\n addButtonName: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n};\n\nexport default Header;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ListHeader({\n fields,\n readOnly,\n}) {\n return (\n
  • \n {\n fields.map((field) => (\n \n {field?.props?.label}\n \n ))\n }\n
    Delete
    \n
  • \n );\n}\n\nListHeader.propTypes = {\n fields: PropTypes.instanceOf(Array),\n readOnly: PropTypes.bool,\n};\n\nexport default ListHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '../../../components/Button';\n\nfunction FieldsList({\n fields,\n disabled,\n readOnly,\n errors,\n components,\n onChange,\n onDelete,\n value,\n rowIndex,\n}) {\n return (\n
  • \n {\n components.map((Component, index) => {\n const field = fields[index];\n const tempField = typeof field === 'function' ? field(rowIndex, index) : field;\n return (\n \n \n \n );\n })\n }\n
    \n \n
    \n
  • \n );\n}\n\nFieldsList.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n rowIndex: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n fields: PropTypes.instanceOf(Array),\n errors: PropTypes.instanceOf(Array),\n components: PropTypes.instanceOf(Array),\n value: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n onDelete: PropTypes.func,\n};\n\nexport default FieldsList;\n","import React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Header from './Header';\nimport ListHeader from './ListHeader';\nimport FieldsList from './FieldsList';\nimport validateValues from './validate-values';\nimport withValidation from './with-validation';\n\nlet id = 1;\n/* eslint-disable-next-line */\nconst getUID = prefix => `${prefix}-${id++}`;\n\n/**\n * Editable list is a component, that lists rows of form elements (can have n elements on a row),\n * and stores the values of all the rows in an Array list\n */\nfunction EditableList2({\n addButtonName,\n disabled,\n readOnly,\n fields,\n label,\n error,\n value = [],\n onChange = () => {},\n hideOnEmpty = true,\n wrapperClassName = '',\n}) {\n const [internalErrors, setInternalErrors] = useState(null);\n\n const updateRowValue = (rowIndex, fieldIndex, componentValue, isValid) => {\n const tempValueArr = !value ? [] : [...value];\n\n if (!value) {\n tempValueArr[rowIndex] = [...new Array(fields.length)];\n tempValueArr[rowIndex][fieldIndex] = componentValue;\n } else {\n const tempValue = [...tempValueArr[rowIndex]];\n tempValue[fieldIndex] = componentValue;\n tempValueArr[rowIndex] = tempValue;\n tempValueArr[rowIndex].id = value[rowIndex].id;\n }\n\n if (internalErrors?.[rowIndex]?.[fieldIndex] && isValid) {\n const tempErrors = [...internalErrors];\n const tempFieldError = [...tempErrors[rowIndex]];\n tempFieldError[fieldIndex] = null;\n tempErrors[rowIndex] = tempFieldError;\n setInternalErrors(tempErrors);\n }\n onChange(tempValueArr);\n };\n\n const hasErrors = (errors) => Boolean(errors?.flat()?.filter(Boolean).length);\n\n const Components = useMemo(\n () => fields.map((field) => {\n const tempField = typeof field === 'function' ? field() : field;\n\n return withValidation(tempField?.component || null);\n }),\n [],\n );\n\n const onAddRow = () => {\n const errors = validateValues(fields, value);\n\n if (hasErrors(errors)) {\n setInternalErrors(errors);\n return;\n }\n\n const newValue = [...new Array(fields.length)];\n newValue.id = getUID('row');\n\n onChange([\n ...value,\n newValue,\n ]);\n };\n\n const deleteRow = (index) => {\n if (!value) {\n return;\n }\n const tempValue = [...value];\n tempValue.splice(index, 1);\n onChange(tempValue);\n };\n\n return (\n
    \n \n {value?.length || !hideOnEmpty ? (\n
      \n {(value || [[]]).map((v, i) => (\n \n ))}\n \n
    \n ) : null}\n {error && error !== 'true' && error !== 'false' ? (\n

    {error}

    \n ) : null}\n
    \n );\n}\n\nEditableList2.propTypes = {\n /** Sets Editable list in edit mode.\n * If enabled all fields are disabled, the add button is hidden and delete button is disabled\n * */\n disabled: PropTypes.bool,\n /** Sets Editable list in read only mode.\n * If enabled all fields are displaying just the value,\n * the add button is hidden and delete button is disabled\n */\n readOnly: PropTypes.bool,\n /** Name of the Add button. By default has 'Add value' */\n addButtonName: PropTypes.string,\n /** Label of Editable list, is displayed above the list and inline with the Add button */\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n /** Array of form elements that you want the list to have\n * Each field is an object points to the Form element component that you want to use,\n * the props you want to apply on it,\n * and the size (as in width, it's like columns system, between 1 and 12)\n * Example:\n * ...\n * fields={[\n {\n component: Input2,\n styles: {\n width: \"200px\",\n },\n size: 4,\n props: {\n name: 'input',\n label: 'Claim name',\n theme: 'default rounded-corners',\n placeholder: 'Enter claim name',\n validate: formikRequired('This field is required')\n }\n },\n {\n component: Combobox2,\n size: 8,\n props: comboboxProps\n }\n ]}\n */\n fields: PropTypes.instanceOf(Array),\n /** onChange function is called everytime the value of editable list changes */\n onChange: PropTypes.func,\n /** value of editable list, wich is an Array (List of row values)\n * of Arrays (List of column values,\n * each column will have the value format depending on the component type)\n */\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Object),\n PropTypes.instanceOf(Array),\n ]),\n error: PropTypes.string,\n hideOnEmpty: PropTypes.bool,\n wrapperClassName: PropTypes.string,\n};\n\nexport default EditableList2;\n","import React, { useCallback, useState } from 'react';\n\n// eslint-disable-next-line react/function-component-definition\nconst withValidation = (Component) => ({\n onChange, // eslint-disable-line react/prop-types\n validate, // eslint-disable-line react/prop-types\n error, // eslint-disable-line react/prop-types\n ...rest\n}) => {\n const [internalError, setInternalError] = useState(null);\n const onFieldChange = useCallback((event) => {\n /* eslint-disable-next-line */\n const value = event?.target\n ? ['radio', 'checkbox'].includes(event.target.type)\n ? event.target.checked\n : event?.target.value\n : event;\n\n let isValid = true;\n if (validate && typeof validate === 'function') {\n const errorMsg = validate(value);\n isValid = !errorMsg;\n setInternalError(errorMsg);\n }\n\n onChange(value, isValid);\n }, [validate, onChange]);\n\n return ;\n};\n\nexport default withValidation;\n","const validateValues = (fields, rowValues) => (rowValues || [[undefined, undefined]])?.map(\n (colValue) => colValue?.map(\n (value, index) => fields[index].props.validate?.(value),\n ),\n);\n\nexport default validateValues;\n","import React, { useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\n\nfunction FileInput({\n error,\n theme,\n labelwidth,\n wrapperClassName = '',\n id,\n label,\n note,\n accept,\n value,\n onChange,\n ...rest\n}) {\n const fileInputRef = useRef();\n\n function handleOnChange(e) {\n onChange(e.target.files);\n }\n\n function getCssClasses() {\n const cssClasses = [wrapperClassName, 'tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n }\n\n function getLabelStyles() {\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n function getNonLabelWidth() {\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n function getFileInputError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n function getFileInputComponent() {\n return (\n \n \n {\n fileInputRef.current && fileInputRef.current.files.length > 0\n ? (\n \n \n \n )\n : null\n }\n \n );\n }\n\n function clearValue() {\n fileInputRef.current.value = '';\n onChange('');\n }\n\n return (\n
    \n {\n label\n ? \n : null\n }\n
    \n { getFileInputComponent() }\n {\n note\n ?

    { note }

    \n : null\n }\n
    \n { getFileInputError() }\n
    \n );\n}\n\nFileInput.propTypes = {\n accept: PropTypes.string,\n disabled: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.instanceOf(Object),\n wrapperClassName: PropTypes.string,\n};\n\nexport default FileInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nclass Input extends Component {\n static getAddon(content) {\n return (\n
    \n { content }\n
    \n );\n }\n\n constructor(props) {\n super(props);\n const {\n value,\n } = this.props;\n\n this.state = {\n initValue: value,\n stateValue: value,\n };\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n const {\n isfield,\n value,\n onChange,\n } = this.props;\n\n if (!isfield && prevProps.value !== value) {\n /* eslint-disable react/no-did-update-set-state */\n this.setState({\n stateValue: value,\n }, () => {\n if (onChange) {\n onChange(value);\n }\n });\n }\n }\n\n handleOnChange(e) {\n const { onChange, isfield } = this.props;\n const inputValue = e.target.value;\n\n if (!isfield) {\n this.setState({\n stateValue: inputValue,\n }, () => {\n if (onChange) {\n onChange(inputValue);\n }\n });\n } else {\n onChange(inputValue);\n }\n }\n\n getLabelStyles() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n getNonLabelWidth() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n getInputError() {\n const { error } = this.props;\n\n return (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null;\n }\n\n getCssClasses() {\n const {\n error,\n theme,\n labelwidth,\n inputgroupaddonleft,\n inputgroupaddonright,\n } = this.props;\n const cssClasses = ['tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (inputgroupaddonleft) {\n cssClasses.push('tyk-form-group--addon-left');\n }\n\n if (inputgroupaddonright) {\n cssClasses.push('tyk-form-group--addon-right');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n }\n\n getInputGroupAddon() {\n const {\n inputgroupaddonleft,\n inputgroupaddonright,\n } = this.props;\n\n return (\n
    \n {\n inputgroupaddonleft\n ? Input.getAddon(inputgroupaddonleft)\n : null\n }\n { this.getInputComponent() }\n {\n inputgroupaddonright\n ? Input.getAddon(inputgroupaddonright)\n : null\n }\n
    \n );\n }\n\n getInputComponent() {\n const {\n isfield, onChange, value, ...rest\n } = this.props;\n const { stateValue } = this.state;\n return (\n \n );\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n reset() {\n const { initValue } = this.state;\n\n this.setState({\n stateValue: initValue,\n });\n }\n\n render() {\n const {\n label,\n id,\n inputgroupaddonleft,\n inputgroupaddonright,\n note,\n readOnly,\n value,\n } = this.props;\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n {\n inputgroupaddonleft || inputgroupaddonright\n ? this.getInputGroupAddon()\n : this.getInputComponent()\n }\n {\n note\n ?

    { note }

    \n : null\n }\n { this.getInputError() }\n
    \n )}\n {\n readOnly &&
    {value || '-'}
    \n }\n \n );\n }\n}\n\nInput.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n isfield: PropTypes.bool,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n inputgroupaddonleft: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n inputgroupaddonright: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n};\n\nexport default Input;\n","import React, { useImperativeHandle, useRef, forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Input2({\n error,\n onChange,\n readOnly,\n id,\n inputgroupaddonleft,\n inputgroupaddonright,\n label,\n labelwidth,\n note,\n theme,\n value,\n wrapperClassName = '',\n ...rest\n}, ref) {\n const inputRef = useRef();\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n inputRef.current.focus();\n },\n }));\n\n const getAddon = (content) => (\n
    \n { content }\n
    \n );\n\n const getLabelStyles = () => ({\n ...labelwidth && {\n flexBasis: labelwidth,\n },\n });\n\n const getNonLabelWidth = () => ({\n ...labelwidth && {\n flexBasis: `calc(100% - ${labelwidth} - 20px)`,\n },\n });\n\n const getInputError = () => (\n (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null\n );\n\n const getCssClasses = () => {\n const cssClasses = [wrapperClassName, 'tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (inputgroupaddonleft) {\n cssClasses.push('tyk-form-group--addon-left');\n }\n\n if (inputgroupaddonright) {\n cssClasses.push('tyk-form-group--addon-right');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n };\n\n const handleOnChange = (e) => {\n onChange(e, e.target.value);\n };\n\n const getInputElement = () => (\n \n );\n\n const getInputGroupAddon = () => (\n
    \n {\n inputgroupaddonleft\n ? getAddon(inputgroupaddonleft)\n : null\n }\n { getInputElement() }\n {\n inputgroupaddonright\n ? getAddon(inputgroupaddonright)\n : null\n }\n
    \n );\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n {\n inputgroupaddonleft || inputgroupaddonright\n ? getInputGroupAddon()\n : getInputElement()\n }\n {\n note\n ?

    { note }

    \n : null\n }\n { getInputError() }\n
    \n )}\n {\n readOnly && (\n
    \n {value || '-'}\n
    \n )\n }\n \n );\n}\n\nInput2.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n inputgroupaddonleft: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n inputgroupaddonright: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default forwardRef(Input2);\n","import { createContext } from 'react';\n\nconst MultiselectContext = createContext();\n\nexport default MultiselectContext;\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport MultiselectContext from './MultiselectContext';\nimport Button from '../../../../components/Button';\nimport Collapsible from '../../../../components/Collapsible';\nimport Loader from '../../../../components/Loader';\n\nconst getItemContent = (context, item) => (\n context.detailsDisplayTemplate\n ? context.detailsDisplayTemplate(item)\n : JSON.stringify(item.details)\n);\n\nconst getItemLoader = (context, item) => {\n const { opened } = context;\n\n return opened[item.id]\n ? \n : null;\n};\n\nfunction MultiselectItem({\n item,\n itemType,\n searchValue,\n onChange,\n}) {\n const isInSearchValue = useCallback((fieldsToSearchOn) => {\n if (fieldsToSearchOn?.length > 0) {\n return fieldsToSearchOn.some((key) => item[key]?.includes(searchValue));\n }\n\n return JSON.stringify(item).includes(searchValue);\n }, [item, searchValue]);\n\n const onAddRemove = useCallback(() => {\n onChange(item);\n }, [onChange, item]);\n\n return (\n \n {\n (context) => (\n isInSearchValue(context.fieldsToSearchOn)\n ? (\n
  • \n
    \n \n {\n context.itemDisplayTemplate\n ? context.itemDisplayTemplate(item)\n : JSON.stringify(item)\n }\n \n \n \n context.onGetItemDetails(item)}\n />\n \n
    \n {\n item.details\n ? (\n \n {getItemContent(context, item)}\n \n )\n : getItemLoader(context, item)\n }\n
  • \n )\n : null\n )\n }\n
    \n );\n}\n\nMultiselectItem.propTypes = {\n item: PropTypes.instanceOf(Object),\n itemType: PropTypes.string,\n searchValue: PropTypes.string,\n onChange: PropTypes.func,\n};\n\nexport default MultiselectItem;\n","import React, { useCallback, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Input from '../../Input';\nimport Icon from '../../../../components/Icon';\nimport Message from '../../../../components/Message';\nimport InfiniteScroller from '../../../../components/InfiniteScroller';\nimport MultiselectItem from './MultiselectItem';\n\nfunction MultiselectPanel({\n inputPlaceholder,\n noItemsMessage,\n items,\n onCustomSearch,\n onChange,\n customSearch,\n panelType,\n serverLoad,\n itemsPageNumber,\n itemsNrPages,\n loadMoreItems,\n}) {\n const [searchValue, setSearchValue] = useState('');\n const itemIndex = useRef(0);\n const itemsListRef = useRef();\n\n function getItemIndex() {\n itemIndex.current += 1;\n\n return itemIndex.current;\n }\n\n function getItemsList() {\n return (\n serverLoad\n ? (\n itemsPageNumber}\n loadMore={loadMoreItems}\n pageNumber={itemsPageNumber}\n >\n { renderListItems() }\n \n )\n : renderListItems()\n );\n }\n\n const searchOnChange = useCallback((value) => {\n if (onCustomSearch) {\n onCustomSearch(value);\n } else {\n setSearchValue(value);\n }\n }, [onCustomSearch]);\n\n const itemChanged = useCallback((item) => {\n let cloneItems = structuredClone(items);\n cloneItems = cloneItems.filter((clonedItem) => item.id !== clonedItem.id);\n\n onChange(cloneItems, item);\n }, [items]);\n\n function renderListItems() {\n return (\n \n {\n items.map((item) => (\n \n ))\n }\n \n );\n }\n\n return (\n
    \n \n }\n name=\"search\"\n onChange={searchOnChange}\n placeholder={inputPlaceholder}\n value={searchValue}\n />\n {\n items.length\n ? getItemsList()\n : (\n \n { noItemsMessage }\n \n )\n }\n
    \n );\n}\n\nMultiselectPanel.propTypes = {\n customSearch: PropTypes.bool,\n onCustomSearch: PropTypes.func,\n panelType: PropTypes.string,\n onChange: PropTypes.func,\n items: PropTypes.instanceOf(Array),\n itemsPageNumber: PropTypes.number,\n itemsNrPages: PropTypes.number,\n inputPlaceholder: PropTypes.string,\n loadMoreItems: PropTypes.func,\n noItemsMessage: PropTypes.string,\n serverLoad: PropTypes.bool,\n};\n\nexport default MultiselectPanel;\n","import React, { useCallback, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport MultiselectPanel from './js/MultiselectPanel';\nimport MultiselectContext from './js/MultiselectContext';\n\nconst diffObjects = (value, items) => items.filter((item) => !value.find((v) => v.id === item.id));\n\nfunction Multiselect({\n customSearch,\n entityNamePlural,\n disabled,\n error,\n getItemDetails,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n items,\n itemsPageNumber,\n itemsNrPages,\n loadMoreItems,\n maxSelections,\n note,\n value,\n onChange,\n wrapperClassName = '',\n}) {\n const [opened, setOpened] = useState({});\n\n const onGetItemDetails = useCallback((item) => {\n setOpened((prevOpened) => ({ ...prevOpened, [item.id]: !prevOpened[item.id] }));\n\n if (getItemDetails) getItemDetails(item);\n }, [getItemDetails]);\n\n function getMultiselectError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n const getCssClasses = useCallback(\n () => [\n wrapperClassName,\n 'tyk-multiselect',\n error && 'has-error',\n ]\n .filter(Boolean)\n .join(' '),\n [wrapperClassName, error],\n );\n\n const itemsChange = useCallback((allItems, item) => {\n const valueClone = structuredClone(value);\n\n valueClone.unshift(item);\n\n onChange(valueClone, item, 'added');\n }, [value]);\n\n const valueChange = useCallback((newValue, item) => {\n onChange(newValue, item, 'removed');\n }, [items]);\n\n const providerValue = useMemo(() => ({\n disabled,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n maxSelections,\n nrSelectedItems: value.length,\n onGetItemDetails,\n opened,\n }), [\n disabled,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n maxSelections,\n value,\n onGetItemDetails,\n opened,\n ]);\n\n return (\n <>\n
    \n \n
    \n
    \n { value.length }\n {' '}\n Selected\n {' '}\n { entityNamePlural }\n
    \n
    \n Select from existing\n { entityNamePlural }\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n {\n note\n ?

    { note }

    \n : null\n }\n
    \n { getMultiselectError() }\n \n );\n}\n\nMultiselect.propTypes = {\n customSearch: PropTypes.func,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n entityNamePlural: PropTypes.string,\n items: PropTypes.instanceOf(Array),\n itemDisplayTemplate: PropTypes.func,\n detailsDisplayTemplate: PropTypes.func,\n fieldsToSearchOn: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n getItemDetails: PropTypes.func,\n itemsPageNumber: PropTypes.number,\n itemsNrPages: PropTypes.number,\n loadMoreItems: PropTypes.func,\n note: PropTypes.string,\n maxSelections: PropTypes.number,\n value: PropTypes.instanceOf(Array),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Multiselect;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * Radio can be used when a user needs to select at most one value from a multiple options.\n */\nfunction Radio({\n label,\n input,\n note,\n inline,\n nospace,\n theme = '',\n disabled,\n readOnly,\n wrapperClassName = '',\n ...rest\n}) {\n const cssClasses = [\n inline ? 'tyk-radio--inline' : 'tyk-radio',\n wrapperClassName,\n nospace && 'no-margin',\n ...(theme ? theme.split(' ').filter(Boolean).map((t) => `tyk-radio--theme-${t}`) : []),\n (readOnly || disabled) && 'tyk-radio--is-disabled',\n ].filter(Boolean).join(' ');\n\n return (\n
    \n \n {note && (\n

    {note}

    \n )}\n
    \n );\n}\n\nRadio.propTypes = {\n /** Used to disable the element */\n disabled: PropTypes.bool,\n /** Readonly prop behaves the same as disabled on radio elements */\n readOnly: PropTypes.bool,\n /** Align radio in the same line with other elements */\n inline: PropTypes.bool,\n /** Set a theme for radio */\n theme: PropTypes.string,\n input: PropTypes.instanceOf(Object),\n /** Adds label to the radio input */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Set name for the radio input */\n name: PropTypes.string,\n /** If set to true removes margin by adding `no-margin` class */\n nospace: PropTypes.bool,\n /** Set initial value for the radio input */\n value: PropTypes.string,\n /** Add note at the bottom of the radio input */\n note: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Radio;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Select(props) {\n const {\n value,\n onChange,\n onBlur,\n isfield,\n label,\n labelwidth,\n id,\n note,\n readOnly,\n options,\n error,\n theme,\n wrapperClassName = '',\n ...rest\n } = props;\n const [stateValue, setStateValue] = useState(value);\n\n useEffect(() => {\n if (!isfield && stateValue !== value) {\n setStateValue(value);\n if (onChange) onChange(value);\n }\n }, [stateValue, value]);\n\n const handleOnChange = useCallback((e) => {\n const selectedValue = options.find((option) => option.id === e.target.value);\n\n if (!isfield) {\n setStateValue(selectedValue);\n }\n onChange(selectedValue.id ? selectedValue : null);\n }, [options, isfield, onChange]);\n\n const handleOnBlur = useCallback(() => {\n if (onBlur) {\n onBlur(value);\n }\n }, [onBlur]);\n\n // eslint-disable-next-line arrow-body-style\n const getSelectError = useCallback(() => {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }, [error]);\n\n const getCssClasses = useCallback(\n () => [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' '),\n [wrapperClassName, theme, labelwidth, error],\n );\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const getNonLabelWidth = useCallback(() => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n }, [labelwidth]);\n\n const getSelectComponent = useCallback(() => {\n const selectValue = isfield && value ? value : stateValue;\n\n return (\n \n {\n options.map((option) => (\n \n ))\n }\n \n );\n }, [isfield, value, stateValue, handleOnChange, handleOnBlur, options, rest]);\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n { getSelectComponent() }\n {\n note\n ?

    { note }

    \n : null\n }\n { getSelectError() }\n
    \n )}\n {readOnly &&
    {value || '-'}
    }\n \n );\n}\n\nSelect.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n isfield: PropTypes.bool,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n options: PropTypes.instanceOf(Array),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Select;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../../../components/Message';\nimport List from '../../../components/List';\nimport Icon from '../../../components/Icon';\n\nfunction SelectableList(props) {\n const {\n checkboxalticon,\n items,\n itemTemplate,\n value,\n noItemsMessage = 'No items in the list',\n onChange,\n theme,\n primaryKey,\n wrapperClassName = '',\n } = props;\n\n const handleOnSelect = (event) => {\n const newSelectedItems = structuredClone(value);\n const elemPosition = newSelectedItems.findIndex(\n (id) => JSON.stringify(id) === JSON.stringify(\n Array.isArray(id)\n ? event.target.value.split(',')\n : event.target.value,\n ),\n );\n\n if (event.target.checked && elemPosition === -1) {\n const tempValue = event.target.value.split(',');\n const finalValue = tempValue.length > 1 ? tempValue : event.target.value;\n\n newSelectedItems.push(finalValue);\n } else if (!event.target.checked && elemPosition > -1) {\n newSelectedItems.splice(elemPosition, 1);\n }\n\n if (onChange) {\n onChange(newSelectedItems);\n }\n };\n\n const getListItemCssClassName = (isActive) => {\n const cssClasses = [];\n\n if (checkboxalticon) {\n cssClasses.push('tyk-selectable-list__item--with-icon');\n }\n\n if (isActive) {\n cssClasses.push('tyk-selectable-list__item--active');\n }\n\n return cssClasses.join(' ');\n };\n\n const isChecked = (inputValue, itemValue) => Boolean(\n inputValue.find((tvalue) => JSON.stringify(itemValue) === JSON.stringify(tvalue)),\n );\n\n return (\n \n {\n !items.length\n ? (\n
  • \n \n {noItemsMessage}\n \n
  • \n )\n : items.map((item, index) => (\n \n \n \n ))\n }\n
    \n );\n}\n\nSelectableList.propTypes = {\n items: PropTypes.instanceOf(Array),\n itemTemplate: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n PropTypes.func,\n ]),\n value: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n primaryKey: PropTypes.string,\n noItemsMessage: PropTypes.string,\n checkboxalticon: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n theme: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\n\nSelectableList.defaultProps = {\n items: [],\n primaryKey: 'id',\n value: [],\n};\n\nexport default SelectableList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Textarea({\n id,\n input,\n label,\n note,\n error,\n theme,\n labelwidth,\n value,\n readOnly,\n wrapperClassName,\n ...rest\n}) {\n const classes = [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const getLabelStyles = () => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n };\n\n const getNonLabelWidth = () => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n };\n\n function getTextareaError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n \n { value }\n \n {\n note\n ?

    { note }

    \n : null\n }\n {getTextareaError()}\n
    \n )}\n {readOnly &&
    {value || '-'}
    }\n \n );\n}\n\nTextarea.propTypes = {\n /** Disable the component */\n disabled: PropTypes.bool,\n /** Displays only the text value of the component, or \"-\" if no value is set */\n readOnly: PropTypes.bool,\n input: PropTypes.instanceOf(Object),\n /** Set an error message for the component and the component is rendered in the error state */\n error: PropTypes.string,\n /** Adds a label to the component */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Sets the width of the label */\n labelwidth: PropTypes.string,\n /** Set a name for the component */\n name: PropTypes.string,\n /** Adds additional information under the component */\n note: PropTypes.string,\n /** Callback function executed on value change */\n onChange: PropTypes.func,\n id: PropTypes.string,\n /** Set a theme for the component */\n theme: PropTypes.string,\n /** Set the value of the component */\n value: PropTypes.string,\n /** CSS classes added to the wrapper of the component */\n wrapperClassName: PropTypes.string,\n};\n\nexport default Textarea;\n","import { createContext } from 'react';\n\nconst ToggleContext = createContext();\n\nexport default ToggleContext;\n","import React, { Component, createRef } from 'react';\nimport PropTypes from 'prop-types';\n\nclass ToggleItem extends Component {\n static getNotchCssClasses(context) {\n return ['tyk-toggle__item-notch', `tyk-toggle__item-notch--${context.type}`].join(' ');\n }\n\n constructor(props) {\n super(props);\n\n this.itemRef = createRef();\n }\n\n componentDidMount() {\n const { context, value } = this.props;\n\n if (context.value === value) {\n context.saveSelectedRef(this.itemRef);\n }\n }\n\n componentDidUpdate(prevProps) {\n const { context, value } = this.props;\n\n if (prevProps.context.value !== context.value && context.value === value) {\n context.saveSelectedRef(this.itemRef);\n }\n }\n\n onChange(event) {\n const { context, value } = this.props;\n const { disabled, readOnly } = context;\n\n if (disabled || readOnly) {\n return;\n }\n\n context.onItemSelected(context.type === 'single' ? !context.value : value, event);\n }\n\n render() {\n const {\n context, label, name, value,\n } = this.props;\n return (\n
  • \n \n
  • \n );\n }\n}\n\nToggleItem.propTypes = {\n context: PropTypes.instanceOf(Object),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n name: PropTypes.string,\n value: PropTypes.string,\n};\n\nexport default ToggleItem;\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToggleContext from './ToggleContext';\nimport ToggleItem from './ToggleItem';\n\nfunction ToggleItemWrapper({ children, ...rest }, ref) {\n return (\n \n {(context) => (\n \n {children}\n \n )}\n \n );\n}\n\nToggleItemWrapper.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nexport default forwardRef(ToggleItemWrapper);\n","import React, {\n useCallback, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToggleContext from './js/ToggleContext';\nimport ToggleItemWrapper from './js/ToggleItemWrapper';\n\nfunction Toggle({\n className,\n disabled,\n readOnly,\n size,\n theme,\n direction,\n onDark,\n wrapperClassName = '',\n onChange,\n labelwidth,\n label,\n separated,\n children,\n type,\n value,\n error,\n}) {\n const [selectedRef, setSelectedRef] = useState(null);\n const notchRef = useRef();\n const toggleRef = useRef();\n\n const classes = [\n wrapperClassName,\n className,\n 'tyk-toggle',\n `tyk-toggle--disabled-${readOnly || disabled}`,\n `tyk-toggle--${size || 'md'}`,\n `tyk-toggle--${theme}`,\n `tyk-toggle--${direction}`,\n onDark && 'tyk-toggle--on-dark',\n ].filter(Boolean).join(' ');\n\n const onItemSelected = useCallback((itemValue, event) => {\n if (!onChange) return;\n onChange(itemValue, event);\n }, [onChange]);\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const positionNotch = useCallback(() => {\n if (!selectedRef || separated) {\n return {};\n }\n\n const selectedWidth = selectedRef.current.offsetWidth;\n const selectedOffset = selectedRef.current.getBoundingClientRect().left;\n const toggleOffset = toggleRef.current.getBoundingClientRect().left;\n const left = selectedOffset - toggleOffset;\n\n return {\n left: `${left + 4}px`,\n width: `${selectedWidth - 8}px`,\n };\n }, [selectedRef, separated]);\n\n const contextValue = useMemo(() => ({\n disabled,\n readOnly,\n onItemSelected,\n saveSelectedRef: setSelectedRef,\n separated,\n type,\n value,\n }), [disabled, readOnly, onItemSelected, separated, type, value]);\n\n return (\n <>\n
    \n \n {\n label\n ? \n : null\n }\n
      \n { children }\n {\n type === 'multiple' && !separated\n ?
    • \n : null\n }\n
    \n \n
    \n {\n error && (\n

    \n { error }\n

    \n )\n }\n \n );\n}\n\nToggle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n error: PropTypes.string,\n onChange: PropTypes.func,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n theme: PropTypes.string,\n type: PropTypes.string, // single || multiple\n size: PropTypes.string,\n separated: PropTypes.bool,\n direction: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n ]),\n onDark: PropTypes.bool,\n wrapperClassName: PropTypes.string,\n};\n\nToggle.defaultProps = {\n separated: false,\n theme: 'primary',\n type: 'single',\n direction: 'row',\n};\n\nToggle.Item = ToggleItemWrapper;\n\nexport default Toggle;\n","const config = {\n FORM_DEBOUNCE: 200,\n};\n\nexport function setConfig(key, val) {\n config[key] = val;\n}\n\nexport default config;\n","import React, { useCallback, useEffect, useState } from 'react';\n\nimport config from '../config/config';\n\nfunction getValueFromPath(obj, path) {\n // turn 'aaa.qqq[2].bbb[5][3].mmm' into ['aaa', 'qqq', '2', 'bbb', '5', '3', 'mmm']\n const indexes = path.split(/[\\][.]/).filter(Boolean);\n return indexes.reduce((acc, v) => (acc ? acc[v] : acc), obj);\n}\n\nfunction debounce(f, limit) {\n let timeoutId;\n return (...args) => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(f, limit, ...args);\n };\n}\n\n/* eslint-disable react/prop-types, react/function-component-definition */\n/**\n * A wrapper function that \"prepares\" a tyk-ui form component to be used with the formik library.\n * It handles things like setting the value of the component, change events, error state,\n * and also has a default debounce time for when the change event is triggered.\n */\nconst wrapper = (Component, options) => ({ field, form, ...properties }) => {\n const DEFAULT_DEBOUNCE_TIME_MS = typeof config.FORM_DEBOUNCE === 'number' ? config.FORM_DEBOUNCE : 200;\n const [myValue, setMyValue] = useState(field.value);\n const opts = {\n getOnChangeProps: () => ({}),\n hasIsFieldProp: false,\n ...options,\n };\n\n const executeDebounced = useCallback((() => {\n const fn = (f) => f();\n if (\n properties.debounce === false\n || (config.FORM_DEBOUNCE === false && !properties.debounce)\n ) {\n return fn;\n }\n const timeout = typeof properties.debounce === 'number'\n ? properties.debounce\n : DEFAULT_DEBOUNCE_TIME_MS;\n return debounce(fn, timeout);\n })(), []);\n\n const getValue = (v) => {\n if (v?.target) {\n if (v.target.nodeName === 'INPUT' && (v.target.type === 'checkbox' || v.target.type === 'radio')) {\n return v.target.checked;\n }\n return v.target.value;\n }\n return v;\n };\n\n const onChange = (valueOrEvent) => {\n const value = getValue(valueOrEvent);\n const onChangeProps = opts.getOnChangeProps(value, field, form, properties);\n\n const newValue = onChangeProps.value || properties.value || value;\n executeDebounced(() => {\n if (typeof properties.onChange === 'function') {\n properties.onChange(newValue);\n }\n field.onChange({ target: { name: field.name, value: newValue, ...onChangeProps } });\n });\n setMyValue(newValue);\n };\n\n const formError = (getValueFromPath(form.touched, field.name) || Boolean(form.submitCount))\n && getValueFromPath(form.errors, field.name);\n const error = typeof formError === 'string' ? formError : '';\n\n useEffect(() => {\n setMyValue(field.value);\n }, [field.value]);\n\n // eslint-disable-next-line no-param-reassign\n if (form.status?.disabled) properties.disabled = true;\n\n const componentProps = { ...properties };\n delete componentProps.debounce;\n\n if (Object.hasOwn(componentProps, 'className') && componentProps.className === undefined) delete componentProps.className;\n if (Object.hasOwn(componentProps, 'children') && componentProps.children === undefined) delete componentProps.children;\n\n return (\n \n );\n};\n\nexport default wrapper;\n","import wrapper from '../../../utils/formik';\nimport Checkbox from '../../components/Checkbox';\n\nexport default wrapper(Checkbox, {\n getOnChangeProps: (value) => ({\n checked: value,\n }),\n});\n","import wrapper from '../../../utils/formik';\nimport CodeEditor from '../../components/CodeEditor';\n\nexport default wrapper(CodeEditor);\n","import wrapper from '../../../utils/formik';\nimport Combobox from '../../components/Combobox';\n\nexport default wrapper(Combobox);\n","import wrapper from '../../../utils/formik';\nimport Combobox2 from '../../components/Combobox2';\n\nexport default wrapper(Combobox2);\n","import wrapper from '../../../utils/formik';\nimport DatePicker from '../../components/DatePicker';\n\nexport default wrapper(DatePicker);\n","import wrapper from '../../../utils/formik';\nimport EditableList from '../../components/EditableList';\n\nexport default wrapper(EditableList, {\n getOnChangeProps: (value) => ({ value: value || [] }),\n});\n","import wrapper from '../../../utils/formik';\nimport EditableList2 from '../../components/EditableList2';\n\nexport default wrapper(EditableList2);\n","import wrapper from '../../../utils/formik';\nimport FileInput from '../../components/FileInput';\n\nexport default wrapper(FileInput);\n","import wrapper from '../../../utils/formik';\nimport Input from '../../components/Input';\n\nexport default wrapper(Input, { hasIsFieldProp: true });\n","import wrapper from '../../../utils/formik';\nimport Input2 from '../../components/Input2';\n\nexport default wrapper(Input2);\n","import wrapper from '../../../utils/formik';\nimport MultiSelect from '../../components/Multiselect';\n\nexport default wrapper(MultiSelect);\n","import wrapper from '../../../utils/formik';\nimport Radio from '../../components/Radio';\n\nexport default wrapper(Radio, {\n getOnChangeProps: (value, field, form, properties) => ({\n checked: value === properties.value,\n value: properties.value,\n }),\n});\n","import wrapper from '../../../utils/formik';\nimport Select from '../../components/Select';\n\nexport default wrapper(Select, { hasIsFieldProp: true });\n","import wrapper from '../../../utils/formik';\nimport SelectableList from '../../components/SelectableList';\n\nexport default wrapper(SelectableList);\n","import wrapper from '../../../utils/formik';\nimport Textarea from '../../components/Textarea';\n\nexport default wrapper(Textarea);\n","import wrapper from '../../../utils/formik';\nimport Toggle from '../../components/Toggle';\n\nexport default wrapper(Toggle);\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport CodeEditor from '../../components/CodeEditor';\n\nclass FieldCodeEditor extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.prop;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldCodeEditor.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCodeEditor;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Combobox from '../../components/Combobox';\n\nclass FieldCombobox extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getComboboxError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldCombobox.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCombobox;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Dropdown from '../../components/Dropdown';\n\nclass FieldDropdown extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n render() {\n const {\n children,\n input,\n ...rest\n } = this.props;\n\n return (\n \n {children}\n \n );\n }\n}\n\nFieldDropdown.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldDropdown;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Pagination from '../../components/Pagination';\n\nfunction FieldPagination(props) {\n const { input, ...rest } = props;\n\n return (\n \n );\n}\n\nFieldPagination.propTypes = {\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldPagination;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Combobox2 from '../../components/Combobox2';\n\nfunction FieldCombobox2(props) {\n const { input, meta, validationmessages } = props;\n\n const getComboboxError = () => {\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n return message;\n };\n\n const handleOnChange = (value) => {\n const { onChange } = input;\n onChange(fromJS(value));\n };\n\n return (\n \n );\n}\n\nFieldCombobox2.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCombobox2;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport DatePicker from '../../components/DatePicker';\n\nfunction FormDatePicker(props) {\n const {\n input,\n meta,\n validationmessages,\n ...rest\n } = props;\n\n const getDatePickerError = () => {\n const { touched, error } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n }\n\n return message;\n };\n\n const handleOnChange = (value) => {\n const { onChange } = input;\n\n onChange(fromJS(value));\n };\n\n return (\n \n );\n}\n\nFormDatePicker.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FormDatePicker;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport EditableList from '../../components/EditableList';\n\nclass FieldEditableList extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getEditableListError() {\n const { meta, validationmessages } = this.props;\n const { touched, error } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldEditableList.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldEditableList;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport FileInput from '../../components/FileInput';\n\nclass FieldFileInput extends Component {\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldFileInput.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldFileInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Input from '../../components/Input';\n\nclass FieldInput extends Component {\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldInput.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Multiselect from '../../components/Multiselect';\n\nclass FieldMultiselect extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getMultiselectError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldMultiselect.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldMultiselect;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Select from '../../components/Select';\n\nclass FieldSelect extends Component {\n constructor(props) {\n super(props);\n\n this.handleEvent = this.handleEvent.bind(this);\n }\n\n handleEvent(selectValue) {\n const { input } = this.props;\n const { onChange, value } = input;\n\n onChange(fromJS(selectValue !== undefined ? selectValue : value));\n }\n\n getSelectError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldSelect.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldSelect;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport SelectableList from '../../components/SelectableList';\n\nclass FieldSelectableList extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n\n input.onChange(fromJS(value));\n }\n\n render() {\n const { children, ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldSelectableList.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.node,\n ]),\n onChange: PropTypes.func,\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldSelectableList;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Toggle from '../../components/Toggle';\n\nclass FieldToggle extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n\n input.onChange(fromJS(value));\n }\n\n render() {\n const { children, ...props } = this.props;\n\n return (\n \n {children}\n \n );\n }\n}\n\nFieldToggle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.node,\n ]),\n onChange: PropTypes.func,\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldToggle;\n","import { useEffect, useRef } from 'react';\n\n/** @component */\nexport default function useInterval(callback, delay, ...args) {\n const savedCallback = useRef();\n\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n // eslint-disable-next-line consistent-return\n useEffect(() => {\n function tick() {\n savedCallback.current(...args);\n }\n if (delay !== null && delay !== undefined) {\n const id = setInterval(tick, delay);\n return () => clearInterval(id);\n }\n }, [delay]);\n}\n"],"names":["global","this","window","define","module","deps","payload","arguments","length","modules","payloads","original","apply","console","error","trace","ns","root","_require","parentId","callback","lookup","undefined","Object","prototype","toString","call","params","i","l","dep","require","push","packagedModule","normalizeModule","moduleName","indexOf","chunks","split","charAt","slice","join","previous","replace","exports","mod","id","uri","packaged","ace","defineProp","obj","name","val","defineProperty","value","enumerable","writable","configurable","String","startsWith","searchString","position","lastIndexOf","endsWith","subjectString","lastIndex","repeat","count","result","string","includes","str","assign","target","TypeError","output","index","source","keys","forEach","key","values","o","map","k","Array","find","predicate","len","thisArg","kValue","findIndex","item","fill","O","relativeStart","Math","max","min","end","relativeEnd","final","of","deepCopy","copy","isArray","last","a","stringReverse","reverse","stringRepeat","trimBeginRegexp","trimEndRegexp","stringTrimLeft","stringTrimRight","copyObject","copyArray","array","arrayToMap","arr","createMap","props","create","arrayRemove","splice","escapeRegExp","escapeHTML","getMatchOffsets","regExp","matches","offset","deferredCall","fcn","timer","deferred","timeout","cancel","setTimeout","schedule","clearTimeout","isPending","delayedCall","defaultTimeout","_self","delay","supportsLookbehind","RegExp","e","skipEmptyMatch","line","supportsUnicodeFlag","codePointAt","OS","LINUX","MAC","WINDOWS","getOS","isMac","isLinux","_navigator","navigator","os","exec","platform","toLowerCase","ua","userAgent","appName","isWin","isIE","parseFloat","match","isOldIE","isGecko","isMozilla","isOpera","opera","isWebKit","isChrome","isSafari","isEdge","isAIR","isAndroid","isChromeOS","isIOS","test","MSStream","isMobile","strictCSP","useragent","buildDom","parent","refs","txt","document","createTextNode","appendChild","els","ch","el","createElement","options","childIndex","n","className","style","cssText","setAttribute","getDocumentHead","doc","head","getElementsByTagName","documentElement","tag","createElementNS","removeChildren","element","innerHTML","textContent","ownerDocument","createFragment","createDocumentFragment","hasCssClass","addCssClass","removeCssClass","classes","toggleCssClass","add","setCssClass","node","include","hasCssString","sheets","querySelectorAll","removeElementById","getElementById","remove","cssCache","insertPendingStyles","cache","importCssString","container","getRootNode","insertBefore","firstChild","useStrictCSP","importCssStylsheet","rel","href","scrollbarWidth","inner","width","minWidth","height","display","outer","left","overflow","body","noScrollbar","offsetWidth","withScrollbar","clientWidth","removeChild","computedStyle","getComputedStyle","setStyle","styles","property","HAS_CSS_ANIMATION","HAS_CSS_TRANSFORMS","HI_DPI","devicePixelRatio","div","transform","animationName","translate","tx","ty","round","top","dom","get","url","xhr","XMLHttpRequest","open","onreadystatechange","readyState","responseText","send","loadScript","path","s","src","onload","_","isAbort","qualifyURL","inherits","ctor","superCtor","super_","constructor","mixin","implement","proto","EventEmitter","stopPropagation","propagationStopped","preventDefault","defaultPrevented","_emit","_dispatchEvent","eventName","_eventRegistry","_defaultHandlers","listeners","defaultHandler","type","_signal","once","on","newCallback","off","Promise","resolve","setDefaultHandler","handlers","_disabled_","old","disabled","removeDefaultHandler","pop","addEventListener","capturing","removeListener","removeEventListener","removeAllListeners","reportError","msg","data","Error","messages","oop","optionsProvider","setOptions","optList","setOption","getOptions","optionNames","$options","filter","hidden","getOption","opt","warn","forwardTo","handlesSet","set","message","AppConfig","$defaultOptions","defineOptions","initialValue","resetOptions","setDefaultValue","opts","setDefaultValues","optionHash","setMessages","nls","translated","isDark","cssClass","$id","lang","net","customLoader","workerPath","modePath","themePath","basePath","suffix","$moduleUrls","loadWorkerFromBlob","sharedPopups","hasOwnProperty","all","$modes","moduleUrl","component","parts","sep","base","re","setModuleUrl","subst","setLoader","cb","dynamicModules","$loading","$loaded","loadModule","onLoad","loadedModule","moduleType","load","afterLoad","loader","err","reportErrorIfPathIsNotConfigured","then","default","$require","setModuleLoader","version","config","init","scriptOptions","scriptUrl","currentScript","_currentScript","currentDocument","scripts","script","getAttribute","attributes","j","attr","m","m1","toUpperCase","Range","startRow","startColumn","endRow","endColumn","start","row","column","isEqual","range","contains","compare","compareRange","cmp","comparePoint","p","containsRange","intersects","isEnd","isStart","setStart","setEnd","inside","insideStart","insideEnd","isMultiLine","compareStart","compareEnd","compareInside","clipRows","firstRow","lastRow","fromPoints","extend","isEmpty","clone","collapseRows","toScreenRange","session","screenPosStart","documentToScreenPosition","screenPosEnd","moveBy","comparePoints","p1","p2","Keys","ret","MODIFIER_KEYS","KEY_MODS","FUNCTION_KEYS","PRINTABLE_KEYS","parseInt","enter","escape","esc","del","mods","pow","x","keyCodeToString","keyCode","keyString","fromCharCode","activeListenerOptions","pressedKeys","ts","getListenerOptions","createComment","passive","detectListenerOptionsSupport","EventListener","elem","destroy","addListener","destroyer","$toDestroy","stopEvent","getButton","ctrlKey","altKey","shiftKey","button","capture","eventHandler","releaseCaptureHandler","onMouseUp","addMouseWheelListener","deltaX","deltaY","deltaMode","DOM_DELTA_PIXEL","wheelX","wheelY","DOM_DELTA_LINE","DOM_DELTA_PAGE","addMultiMouseDownListener","elements","timeouts","callbackName","startX","startY","clicks","eventNames","onMousedown","detail","isNewClick","abs","clientX","clientY","_clicks","getModifierHash","metaKey","normalizeCommandKeys","hashId","getModifierState","altGr","location","keyLocation","timeStamp","resetPressedKeys","getModifierString","addCommandKeyListener","isOldGecko","lastKeyDownKeyCode","lastDefaultPrevented","postMessage","postMessageId","nextTick","win","messageName","listener","$idleBlocked","onIdle","handler","$idleBlockId","blockIdle","nextFrame","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","bind","$cancelT","lineMode","pasteCancelled","Date","now","event","clipboard","BROKEN_SETDATA","USE_IE_MIME_TYPE","HAS_FOCUS_ARGS","MAX_LINE_LENGTH","KEYS","MODS","valueResetRegex","TextInput","parentNode","host","text","opacity","copied","pasted","inComposition","sendingText","tempStyle","fontSize","commandMode","ignoreFocusEvents","lastValue","lastSelectionStart","lastSelectionEnd","lastRestoreEnd","rowStart","Number","MAX_SAFE_INTEGER","rowEnd","MIN_SAFE_INTEGER","numberOfExtraLines","isFocused","activeElement","setNumberOfExtraLines","number","setAriaOptions","activeDescendant","inline","removeAttribute","role","setLabel","selection","cursor","onBlur","hasFocus","onFocus","resetSelection","$focusScroll","focus","renderer","enableKeyboardAccessibility","preventScroll","isTransformed","getBoundingClientRect","ancestors","t","parentElement","nodeType","blur","curOp","commandName","command","isUserAction","docChanged","selectionChanged","onCompositionEnd","positionToSelection","getLine","newValue","selectionEnd","setSelectionRange","afterContextMenu","selectionStart","getRange","lines","prevLine","nextLine","inputHandler","setInputHandler","getInputHandler","sendText","fromInput","onPaste","extendLeft","extendRight","inserted","restoreStart","restoreEnd","endIndex","shouldReset","onTextInput","onInput","onCompositionUpdate","inputType","execCommand","handleClipboardData","forceIEMime","clipboardData","mime","setData","getData","doCopy","isCut","getCopyText","onCut","onCopy","select","onCommandKey","isAllSelected","selectAll","$readOnly","cancelComposition","useTextareaForIME","markerRange","context","compositionStartOffset","closeTimeout","syncComposition","onContextMenuClose","$isMousePressed","$keepTextAreaAtCursor","$moveTextAreaToCursor","onCompositionStart","getSelectionRange","msGetInputContext","getInputContext","getElement","setCommandMode","readOnly","setReadOnly","setCopyWithEmptySelection","onContextMenu","domEvent","moveToMouse","bringToFront","characterWidth","rect","borderTopWidth","borderLeftWidth","maxTop","bottom","clientHeight","move","textInput","scroller","typingResetTimeout","typing","detectArrowKeys","$mouseHandler","isMousePressed","modifier","up","home","option","down","right","shift","commands","findKeyCommand","addIosSelectionHandler","$setUserAgentForTests","_isMobile","_isIOS","DefaultHandlers","mouseHandler","$clickSelection","editor","onMouseDown","onDoubleClick","onTripleClick","onQuadClick","onMouseWheel","selectByLines","extendSelectionBy","selectByWords","ev","inSelection","pos","getDocumentPosition","mousedownEvent","moveToPosition","time","$focusTimeout","inMultiSelectMode","captureMouse","startSelect","setState","waitForClickSelection","screenToTextCoordinates","y","getShiftKey","selectToPosition","anchor","orientedRange","calcRangeOrientation","setSelectionAnchor","scrollCursorIntoView","unitName","cmpStart","cmpEnd","selectByLinesEnd","unsetStyle","focusWait","ax","ay","bx","by","distance","sqrt","getBracketRange","getWordRange","getLineRange","getAccelKey","$lastScroll","vx","vy","allowed","prevScroll","dt","direction","canScroll","isScrollableBy","speed","scrollBy","stop","selectEnd","selectAllEnd","selectByWordsEnd","extendStatics","__extends","d","b","setPrototypeOf","__proto__","__","__values","Symbol","iterator","next","done","CLASSNAME","Tooltip","isOpen","$element","$parentNode","$init","setText","setHtml","html","setPosition","setClassName","setTheme","theme","show","hide","getHeight","offsetHeight","getWidth","popupManager","PopupManager","popups","addPopup","popup","updatePopups","removePopup","e_1","_a","e_2","_b","sort","priority","visiblepopups","_c","_d","shouldDisplay","visiblepopups_1","visiblepopups_1_1","visiblePopup","doPopupsOverlap","e_2_1","return","e_1_1","popupA","popupB","rectA","rectB","HoverTooltip","_super","_this","lastT","idleTime","lastEvent","onMouseOut","onMouseMove","waitForHover","whiteSpace","pointerEvents","tabIndex","addToEditor","getMouseEventTarget","removeFromEditor","isOutsideOfText","$gatherData","docPos","screenPos","pixelToScreenCoordinates","clippedPos","setDataProvider","showForRange","domNode","startingEvent","$registerCloseEvents","addMarker","textToScreenCoordinates","pageX","maxHeight","labelHeight","labelWidth","spaceBelow","innerHeight","pageY","lineHeight","isAbove","innerWidth","marker","$markerSession","removeMarker","$removeCloseEvents","relatedTarget","currentTarget","classList","GutterHandler","tooltipTimeout","mouseEvent","gutter","$gutterLayer","tooltip","GutterTooltip","hideTooltip","moveTooltip","getRegion","selectTo","srcElement","$tooltipFollowsMouse","getLength","screenRow","$pos","documentToScreenRow","showTooltip","gutterRow","getGutterRow","gutterCell","$lines","querySelector","$gutter","windowWidth","windowHeight","singular","plural","warning","info","annotation","annotationsInRow","$annotations","from","fold","getFoldLine","$showFoldedAnnotations","mostSevereAnnotationInFoldType","annotationsInFold","annotationType","summaryFoldedAnnotations","concat","annotationsToSummaryString","annotationMessages","iconClassName","$useSvgGutterIcons","annotationLabels","tooltipContent","annotations","summary","annotationTypes_1","annotationTypes_1_1","label","MouseEvent","$inSelection","documentRow","selectionRange","DragdropHandler","dragImage","dragSelectionMarker","timerId","dragCursor","dragOperation","isInternal","autoScrollStartTime","cursorMovedTime","cursorPointOnCaretMoved","mouseTarget","counter","onDragInterval","prevCursor","vMovement","hMovement","moveCursorToPosition","calcDistance","layerConfig","editorRect","offsets","nearestXOffset","nearestYOffset","scrollCursor","vScroll","hScroll","autoScroll","addDragMarker","toOrientedRange","getSelectionStyle","clearSelection","$cursorLayer","setBlinking","clearInterval","setInterval","clearDragMarker","fromOrientedRange","$resetCursorStyle","onDragStart","cancelDrag","draggable","self","dataTransfer","effectAllowed","getReadOnly","setDragImage","clearData","getTextRange","onDragEnd","dropEffect","setCursorStyle","onDragEnter","canAccept","getDropEffect","onDragOver","onMouseMoveTimer","onDragLeave","onDrop","moveText","dropData","insert","types","some","copyAllowed","copyModifierState","dragWait","getDragDelay","startDrag","dragWaitEnd","dragReadyEnd","cursorStyle","onMouseDrag","state","dragDrop","$dragEnabled","eventTarget","unselectable","addTouchListeners","touchStartT","longTouchTimer","animationTimer","pressed","contextMenu","mode","animationSteps","clickCount","vX","vY","showContextMenu","handleClick","selected","hasUndo","action","getUndoManager","replaceChild","class","readText","writeText","ontouchstart","ontouchend","onclick","pagePos","leftOffset","scrollLeft","hideContextMenu","handleLongTap","selectWord","touches","h","w","touchObj","setRange","switchToSelectionMode","cursorPos","getPixelPosition","anchorPos","offsetTop","offsetLeft","weightedDistance","diff1","diff2","oldScrollTop","getScrollTop","DefaultGutterHandler","MouseHandler","focusEditor","onMouseEvent","scrollBarV","scrollBarH","Boolean","gutterEl","$dragDelay","character","mousemove","$scrollSpeed","mouseMoveHandler","which","releaseMouse","$mouseMoved","onCaptureEnd","onOperationEnd","onCaptureInterval","$onCaptureMouseMove","endOperation","startOperation","cancelContextMenu","scrollSpeed","dragDelay","dragEnabled","focusTimeout","tooltipFollowsMouse","FoldHandler","getFoldAt","removeFold","expandFold","getUseWrapMode","foldWidgets","onFoldWidgetClick","getParentFoldRangeData","firstRange","addFold","keyUtil","KeyBinding","$editor","$data","$handlers","kb","removeKeyboardHandler","$defaultHandler","addKeyboardHandler","setKeyboardHandler","handleKeyboard","attach","detach","getKeyboardHandler","getStatusText","$callKeyboardHandlers","toExecute","success","args","passEvent","dir","hiLevel","lastArabic","hasUBAT_B","hasUBAT_S","impTab_LTR","impTab_RTL","ET","BN","UnicodeTBL00","UnicodeTBL20","_invertLevel","lev","levels","_array","lo","hi","tmp","_getCharClass","chars","ix","wType","nType","cType","c","rtlCandidate","_getCharacterType","uc","charCodeAt","L","R","EN","ON_R","AN","R_H","B","RLE","DOT","doBidiReorder","textCharTypes","isRtl","logicalFromVisual","bidiLevels","charTypes","impTab","prevState","newClass","newLevel","newState","condPos","_computeLevels","hasBidiCharacters","getVisualFromLogicalIdx","logIdx","rowMap","bidiUtil","bidiRE","BidiHandler","bidiMap","currentRow","charWidths","EOL","showInvisibles","isRtlDir","$isRtl","wrapIndent","EOF","contentWidth","fontMetrics","rtlLineOffset","wrapOffset","isMoveLeftOperation","seenBidi","getValue","isBidiRow","docRow","splitIndex","updateRowLine","updateBidiMap","onChange","delta","getDocumentRow","rowCache","$screenRowCache","$getRowCacheIndex","$docRowCache","getSplitIndex","currentIndex","prevIndex","endOfLine","$useWrapMode","splits","$wrapData","indent","substring","size","isFullWidth","getScreenTabSize","$main","substr","markAsDirty","updateCharacterWidths","$characterSize","bidiCharWidth","$measureCharWidth","setShowInvisibles","setEolChar","eolChar","setContentWidth","isRtlLine","setRtlDirection","getCursorPosition","getSelectionAnchor","$bidiHandler","removeInLine","getPosLeft","col","leftBoundary","logicalIdx","getOverwrite","visualIdx","getSelections","startCol","endCol","level","selections","selColMin","selColMax","isSelected","isSelectedPrev","visIdx","offsetToCol","posX","charWidth","Selection","getDocument","lead","createAnchor","$silent","$cursorChanged","$isEmpty","$keepDesiredColumnOnChange","$desiredColumn","$anchorChanged","getCursor","getPosition","setAnchor","getAnchor","getSelectionLead","isBackwards","$setSelection","MAX_VALUE","anchorRow","anchorColumn","cursorRow","cursorColumn","wasEmpty","wasMultiselect","$moveSelection","mover","moveCursorTo","moveTo","selectUp","moveCursorUp","selectDown","moveCursorDown","selectRight","moveCursorRight","selectLeft","moveCursorLeft","selectLineStart","moveCursorLineStart","selectLineEnd","moveCursorLineEnd","selectFileEnd","moveCursorFileEnd","selectFileStart","moveCursorFileStart","selectWordRight","moveCursorWordRight","selectWordLeft","moveCursorWordLeft","selectAWord","getAWordRange","excludeLastChar","foldLine","selectLine","moveCursorBy","wouldMoveIntoSoftTab","tabSize","isTabStop","getTabSize","getNavigateWithinSoftTabs","firstColumnPosition","screenToDocumentPosition","leadingSpace","getDisplayLine","$useEmacsStyleLineStart","lineEnd","getDocumentLastRowColumnPosition","textEnd","search","moveCursorLongWordRight","rightOfCursor","nonTokenRe","tokenRe","moveCursorLongWordLeft","getFoldStringAt","leftOfCursor","$shortWordEndIndex","whitespaceRe","moveCursorShortWordRight","moveCursorShortWordLeft","$selectLongWords","rows","offsetX","lineWidgets","widget","rowsAbove","rowCount","keepDesiredColumn","moveCursorToScreen","desiredColumn","r","getRangeOfMovements","func","toJSON","rangeCount","ranges","r1","fromJSON","rangeList","toSingleRange","addRange","MAX_TOKEN_COUNT","Tokenizer","rules","states","regExps","matchMappings","ruleRegExps","matchTotal","mapping","defaultToken","flag","splitterRurles","rule","caseInsensitive","unicode","regex","adjustedregex","matchcount","token","groupCount","tokenArray","onMatch","$arrayTokens","$applyToken","digit","removeCapturingGroups","splitRegex","createSplitterRegexp","$setMaxTokenCount","tokens","stack","inChClass","lastCapture","parenOpen","parenClose","square","getLineTokens","startState","currentState","matchAttempts","skipped","consumeLineEnd","merge","unshift","TextHighlightRules","$rules","addRules","prefix","nextState","getRules","embedRules","HighlightRules","escapeRules","append","$embeds","getEmbeds","pushState","popState","normalizeRules","processState","processed","toInsert","stateName","includeName","noEscape","keywordMap","createKeywordMapper","ignoreCase","splitChar","keywords","$keywordList","list","word","getKeywords","$keywords","Behaviour","$behaviours","addBehaviours","behaviours","inherit","getBehaviours","TokenIterator","initialRow","initialColumn","$session","$row","$rowTokens","getTokens","getTokenAt","$tokenIndex","stepBackward","stepForward","getCurrentToken","getCurrentTokenRow","getCurrentTokenColumn","rowTokens","tokenIndex","getCurrentTokenPosition","getCurrentTokenRange","SAFE_INSERT_IN_TOKENS","SAFE_INSERT_BEFORE_TOKENS","contextCache","defaultQuotes","initContext","multiSelect","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","getWrapped","opening","closing","rowDiff","CstyleBehaviour","getWrapBehavioursEnabled","isSaneInsertion","braces","recordAutoInsert","recordMaybeInsert","$findOpeningBracket","isAutoInsertedClosing","popAutoInsertedClosing","isMaybeInsertedClosing","clearMaybeInsertedClosing","openBracePos","findMatchingBracket","next_indent","$getIndent","getTabString","quotes","$mode","$quotes","lineCommentStart","quote","leftChar","rightChar","rightToken","pair","stringBefore","stringAfter","wordRe","isWordBefore","isWordAfter","pairQuotesAfter","$pairQuotesAfter","charBefore","closeDocComment","$matchTokenType","iterator2","bracket","wordChars","code","Mode","$defaultBehaviour","getTokenizer","$tokenizer","$highlightRules","$highlightRuleConfig","blockComment","toggleCommentLines","ignoreBlankLines","shouldRemove","minIndent","Infinity","insertAtTabStop","regexpStart","getUseSoftTabs","uncomment","shouldInsertSpace","commentWithSpace","comment","insertInLine","testRemove","before","after","spaces","lineCommentEnd","regexpEnd","iter","fun","minEmptyLength","floor","toggleBlockComment","colDiff","initialRange","startRange","endRange","getNextLineIndent","tab","checkOutdent","input","autoOutdent","createWorker","createModeDelegates","delegations","scope","functionName","$delegator","method","language","transformAction","param","$behaviour","completionKeywords","ruleItr","aLength","$createKeywordList","getCompletions","score","meta","applyDelta","docLines","doNotValidate","Anchor","$onChange","$clipPositionToDocument","point","moveIfEqual","deltaIsInsert","deltaRowShift","deltaColShift","deltaStart","deltaEnd","$pointsInOrder","$getTransformedPoint","$insertRight","noClip","point1","point2","equalPointsInOrder","bColIsAfter","Document","textOrLines","insertMergedLines","setValue","getAllLines","getNewLineCharacter","$detectNewLine","$autoNewLine","$newLineMode","setNewLineMode","newLineMode","getNewLineMode","isNewLine","getLines","getLinesForRange","insertLines","insertFullLines","removeLines","removeFullLines","insertNewLine","$split","clonePos","$clipPosition","deleteFirstNewLine","deleteLastNewLine","deletedLines","removeNewLine","applyDeltas","deltas","revertDeltas","revertDelta","isInsert","$splitAndapplyLargeDelta","$safeApplyDelta","docLength","MAX","to","chunk","indexToPosition","newlineLength","positionToIndex","BackgroundTokenizer","tokenizer","running","currentLine","$worker","workerStart","endLine","startLine","processedLines","$tokenizeRow","fireUpdateEvent","setTokenizer","setDocument","first","scheduleStart","$updateOnChange","getState","cleanup","SearchHighlight","clazz","setRegexp","update","markerLayer","renderedMarkerRanges","MAX_RANGES","rangeToAddMarkerTo","rangeAsString","drawSingleLineMarker","UndoManager","$maxRev","$fromUndo","$undoDepth","reset","addSession","allowMerge","$lastDelta","$keepRedoStack","$redoStack","lastDeltas","undoStackLength","$undoStack","$rev","addSelection","rev","startNewGroup","markIgnored","ignore","getSelection","getRevision","getDeltas","getChangedRanges","getChangedLines","undo","dontSelect","deltaSet","swapped","swapGroups","rearrangeUndoStack","$redoStackBaseRev","undoSelectionRange","undoChanges","$syncRev","redo","diff","redoStack","deltaSets","moveDeltasByOne","rebaseRedoStack","redoSelectionRange","redoChanges","nextDelta","mark","canUndo","canRedo","bookmark","isAtBookmark","json","$prettyPrint","stringifyDelta","hasRedo","isClean","markClean","stringifyRange","swap","d1","d2","i1","i2","ds1","ds2","selectionBefore","selectionAfter","xform","c1","splitDelta","shiftPos","rowsBefore","otherLines","cloneDelta","xformed","FoldLine","foldData","folds","setFoldLine","shiftRow","sameRow","containsRow","walk","lastEnd","isNewRow","placeholder","getNextFoldTo","kind","addRemoveChars","log","foldBefore","newFoldLine","foldLineNext","idxToPosition","idx","lastFoldEndColumn","RangeList","$bias","pointIndex","excludeEdges","startIndex","addList","removed","substractPoint","containsPoint","rangeAtPoint","clipped","removeAll","lineDif","Fold","subFolds","subFold","collapseChildren","addSubFold","consumePoint","afterStart","firstConsumed","consumedFolds","restoreRange","restorePoint","Folding","side","getFoldsInRange","foldLines","$foldData","foundFolds","getFoldsInRangeList","getAllFolds","trim","lastFold","startFoldLine","getNextFoldLine","getFoldedRowCount","$addFoldLine","added","$clipRangeToDocument","startFold","endFold","removeFolds","$updateWrapData","$updateRowLengthCache","$modified","addFolds","$updating","cloneFolds","foldAll","expandFolds","unfold","expandInner","outermostFolds","isRowFolded","startFoldRow","getRowFoldEnd","getRowFoldStart","getFoldDisplayLine","textLine","lastColumn","$cloneFoldData","fd","toggleFold","tryToUnfold","bracketPos","getCommentFoldRange","depth","getFoldWidget","getFoldWidgetRange","foldToLevel","foldAllComments","$foldStyles","$foldStyle","setFoldStyle","$foldMode","$setFolding","foldMode","$updateFoldWidgets","$tokenizerUpdateFoldWidgets","updateFoldWidgets","tokenizerUpdateFoldWidgets","ignoreCurrent","fw","children","siblings","$toggleFoldWidget","toggleFoldWidget","toggleParent","BracketMatch","chr","charBeforeCursor","$findClosingBracket","getMatchingBracketRanges","bracketsRegExp","$brackets","typeRe","openBracket","valueIndex","closingBracket","valueLength","getMatchingTags","$findTagName","$findClosingTag","$findOpeningTag","found","backward","prevToken","currentTag","openTagStart","openTagName","foundOpenTagEnd","openTagEnd","closeTagStart","closeTagName","closeTagEnd","openTag","closeTag","stepCount","tmpToken","TextMode","EditSession","$breakpoints","$decorations","$frontMarkers","$backMarkers","$markerId","$undoSelect","$uid","bgTokenizer","onChangeFold","setMode","destroyed","resetCaches","$resetRowCache","cacheArray","low","mid","$rowLengthCache","removedFolds","$updateInternalDataOnChange","$undoManager","mergeUndoDeltas","$informUndoManager","setUndoManager","JSON","parse","undoManager","history","editSession","setAnnotations","setBreakpoints","breakpoints","setScrollLeft","setScrollTop","scrollTop","$scrollLeft","$scrollTop","$syncInformUndoManager","markUndoGroup","$defaultUndoManager","setUseSoftTabs","$useSoftTabs","$indentWithTabs","setTabSize","$tabSize","setNavigateWithinSoftTabs","navigateWithinSoftTabs","$navigateWithinSoftTabs","setOverwrite","overwrite","$overwrite","toggleOverwrite","addGutterDecoration","removeGutterDecoration","getBreakpoints","clearBreakpoints","setBreakpoint","clearBreakpoint","inFront","addDynamicMarker","markerId","getMarkers","highlight","$searchHighlight","highlightLines","getAnnotations","clearAnnotations","inToken","wordRange","setUseWorker","useWorker","getUseWorker","$useWorker","onReloadTokenizer","$onChangeMode","$modeId","$isPlaceholder","oldMode","$stopWorker","$startWorker","attachToSession","wrapMethod","$wrapMethod","foldingRules","terminate","getMode","isNaN","getScrollLeft","getScreenWidth","$computeWidth","getLineWidgetMaxWidth","screenWidth","lineWidgetsWidth","lineWidgetWidth","force","$wrapLimit","longestScreenLine","foldIndex","foldStart","$getStringScreenWidth","$getUndoSelection","setUndoSelect","enable","isUndo","fromRange","toPosition","toRange","collDiff","oldStart","newStart","indentRows","indentString","outdentRows","rowRange","deleteRange","$moveLines","$clipRowToDocument","moveLinesUp","moveLinesDown","duplicateLines","$clipColumnToRow","setUseWrapMode","useWrapMode","setWrapLimitRange","$wrapLimitRange","adjustWrapLimit","desiredLimit","$printMargin","limits","wrapLimit","$constrainWrapLimit","getWrapLimit","setWrapLimit","limit","getWrapLimitRange","foldLineBefore","wrapData","walkTokens","$getDisplayTokens","PLACEHOLDER_START","PLACEHOLDER_BODY","$computeWrapSplits","displayLength","lastSplit","lastDocSplit","isCode","$wrapAsCode","indentedSoftWrap","$indentedSoftWrap","maxIndent","addSplit","indentation","SPACE","TAB","TAB_SPACE","getWrapIndent","minSplit","PUNCTUATION","CHAR_EXT","CHAR","maxScreenColumn","screenColumn","getRowLength","getRowLineCount","getRowWrapIndent","getScreenLastRowColumn","documentToScreenColumn","getDocumentLastRowColumn","docColumn","getRowSplitData","screenToDocumentRow","screenToDocumentColumn","rowLength","doCache","maxRow","foldStartRow","wrapRow","screenRowOffset","getScreenLength","screenRows","$getWidgetScreenLength","$setFontMetrics","fm","$enableVarChar","getCharacterWidth","wrap","$wrap","firstLineNumber","useSoftTabs","foldStyle","Search","$matchIterator","sr","sc","er","ec","skipCurrent","findAll","needle","$assembleRegExp","$isMultiLine","prevRange","replacement","preserveCase","$disableFakeMultiline","caseSensitive","$supportsUnicodeFlag","wholeWord","wordBoundary","firstChar","needleArray","lastChar","addWordBoundary","$assembleMultilineRegExp","backwards","forEachInLine","MultiHashHandler","$singleCommand","commandKeyBinding","addCommands","addCommand","removeCommand","bindKey","_buildKeyHash","keepCommand","ckb","keyId","cmdGroup","keyPart","chain","binding","parseKeys","_addCommandToBinding","removeCommands","bindKeys","keyList","$keyChain","isDefault","HashHandler","CommandManager","byName","$checkCommandState","isAvailable","returnValue","toggleRecording","$inReplay","recording","macro","$addCommandToMacro","oldMacro","replay","trimMacro","mac","description","showSettingsMenu","showErrorMarker","scrollIntoView","centerSelection","gotoLine","prompt","$type","multiSelectAction","getAllRanges","findNext","findPrevious","aceCommandGroup","navigateFileStart","navigateUp","times","navigateFileEnd","navigateDown","navigateWordLeft","navigateLineStart","navigateLeft","navigateWordRight","navigateLineEnd","navigateRight","selectPageDown","scrollPageDown","gotoPageDown","selectPageUp","scrollPageUp","gotoPageUp","jumpToMatching","$copyWithEmptySelection","$handlePaste","duplicateSelection","sortLines","modifyNumber","copyLinesUp","copyLinesDown","removeToLineStart","removeToLineEnd","removeWordLeft","removeWordRight","blockOutdent","blockIndent","splitLine","transposeLetters","transposeSelections","autoIndent","openLink","firstLineEndCol","selectedCount","insertLine","curLine","newRanges","exitMultiSelectMode","LineWidgets","widgetManager","updateOnChange","renderWidgets","measureWidgets","_changedWidgets","$onChangeEditor","updateOnFold","_inDocument","removeLineWidget","$updateRows","noWidgets","$oldWidget","$registerLineWidget","addLineWidget","zIndex","coverGutter","pixelHeight","$fold","onWidgetChanged","w1","getWidgetsAtRow","updateFull","changedWidgets","fixedWidth","ceil","coverLine","gutterWidth","fullWidth","padding","scrollBar","GutterKeyboardHandler","gutterLayer","activeRowIndex","activeLane","annotationTooltip","$onGutterKeyDown","$blurGutter","isRowVisible","scrollToLine","$rowToRowIndex","$cursorCell","nearestFoldIndex","$findNearestFoldWidget","nearestAnnotationIndex","$findNearestAnnotation","$focusAnnotation","$focusFoldWidget","$handleGutterKeyboardInteraction","GutterKeyboardEvent","lane","$switchLane","$rowIndexToRow","rowFoldingWidget","$blurFoldWidget","cells","childNodes","$moveFoldWidgetDown","$moveAnnotationDown","$moveFoldWidgetUp","$moveAnnotationUp","$blurAnnotation","$isFoldWidgetVisible","isRowFullyVisible","isIconVisible","$getFoldWidget","$isAnnotationVisible","$getAnnotation","foldWidget","keyboardFocusClassName","desinationLane","annotationIndex","foldWidgetIndex","cell","gutterKeyboardHandler","getKey","getRow","isInAnnotationLane","isInFoldLane","defaultCommands","Editor","getContainerElement","getTextAreaContainer","textarea","keyBinding","$search","$historyTracker","$initOperationListeners","_$emitInputEvent","setSession","$opResetTimer","$lastSel","commandEvent","prevOp","previousCommand","scrollSelectionIntoView","animateScrolling","sel","$mergeUndoDeltas","prev","mergeableCommands","$mergeableCommands","shouldMerge","mergeNextCommand","sequenceStartTime","keyboardHandler","$keybindingId","oldSession","$onDocumentChange","$onTokenizerUpdate","$onChangeTabSize","$onChangeWrapLimit","$onChangeWrapMode","$onChangeFold","$onChangeFrontMarker","$onChangeBackMarker","$onChangeBreakpoint","$onChangeAnnotation","$onCursorChange","$onScrollTopChange","$onScrollLeftChange","$onSelectionChange","onDocumentChange","onChangeMode","onTokenizerUpdate","onChangeTabSize","onChangeWrapLimit","onChangeWrapMode","onChangeFrontMarker","onChangeBackMarker","onChangeBreakpoint","onChangeAnnotation","onCursorChange","onScrollTopChange","onScrollLeftChange","onSelectionChange","oldEditor","getSession","resize","onResize","getTheme","getFontSize","setFontSize","$highlightBrackets","$highlightPending","$bracketHighlight","markerIds","$getDirectionForHighlight","tagNamesRanges","getMatching","markerType","getHighlightIndentGuides","$textLayer","$highlightIndentGuide","$isFocused","showCursor","visualizeFocus","hideCursor","visualizeBlur","$cursorChange","updateCursor","$updateHighlightActiveLine","updateLines","scrollToY","scrollToX","$highlightActiveLine","$selectionStyle","$selectionColorConflict","$maxLines","$minLines","$highlightLineMarker","$selectionMarker","$highlightSelectedWord","$getSelectionHighLightRegexp","wordWithBoundary","updateFrontMarkers","updateBackMarkers","updateBreakpoints","updateText","getSelectedText","nl","copyLine","inVirtualSelectionMode","isFullLine","getBehavioursEnabled","lineState","shouldOutdent","$enableAutoIndent","lineIndent","selectedRange","currIndent","prevLineState","composition","applyComposition","forEachSelection","setScrollSpeed","getScrollSpeed","setDragDelay","setSelectionStyle","setHighlightActiveLine","shouldHighlight","getHighlightActiveLine","setHighlightGutterLine","getHighlightGutterLine","setHighlightSelectedWord","getHighlightSelectedWord","setAnimatedScroll","shouldAnimate","getAnimatedScroll","getShowInvisibles","setDisplayIndentGuides","getDisplayIndentGuides","setHighlightIndentGuides","setShowPrintMargin","showPrintMargin","getShowPrintMargin","setPrintMarginColumn","getPrintMarginColumn","setBehavioursEnabled","enabled","setWrapBehavioursEnabled","setShowFoldWidgets","getShowFoldWidgets","setFadeFoldWidgets","fade","getFadeFoldWidgets","new_range","setGhostText","removeGhostText","originalRange","$getSelectedRows","getNumberAt","_numberRx","amount","charRange","isFinite","nr","fp","decimals","nnr","toFixed","replaceRange","toggleWord","currWordStart","wordParts","curLength","itLength","that","reg","wordPairs","$toggleWordPairs","negate","firstCondition","res","findLinkAt","columnPosition","previousPosition","currentPosition","wordParts_1","wordParts_1_1","endPoint","moved","totalDiff","rangeIndex","subRows","compositionState","showComposition","setCompositionText","hideComposition","getFirstVisibleRow","getLastVisibleRow","getFirstFullyVisibleRow","getLastFullyVisibleRow","$getVisibleRowCount","getScrollBottomRow","getScrollTopRow","$moveByPage","scrollToRow","center","animate","alignCursor","getCursorPositionScreen","expand","tokenCount","matchType","bracketType","brackets","tagsRanges","lineNumber","navigateTo","replaced","$tryReplace","replaceAll","getLastSearchOptions","newRange","revealRange","setAutoScrollEditorIntoView","shouldScroll","$scrollAnchor","scrollAnchor","onChangeSelection","onBeforeRender","onAfterRender","searchBox","$pixelPos","$cursorStyle","cursorLayer","setSmoothBlinking","isBlinking","selectionStyle","highlightActiveLine","highlightSelectedWord","copyWithEmptySelection","behavioursEnabled","wrapBehavioursEnabled","enableAutoIndent","autoScrollEditorIntoView","showLineNumbers","setShowLineNumbers","$loop","CHANGE_GUTTER","$relativeLineNumbers","relativeNumberRenderer","relativeLineNumbers","$showLineNumbers","$updatePlaceholder","hasValue","$composition","placeholderNode","$placeholder","content","blurCommand","focusOnEnterKeyup","customScrollbar","hScrollBarAlwaysVisible","vScrollBarAlwaysVisible","highlightGutterLine","animatedScroll","printMarginColumn","printMargin","fadeFoldWidgets","showFoldWidgets","displayIndentGuides","highlightIndentGuides","showGutter","fontFamily","maxLines","minLines","scrollPastEnd","fixedWidthGutter","hasCssTransforms","maxPixelHeight","useResizeObserver","useSvgGutterIcons","showFoldedAnnotations","getText","lastLineNumber","$renderer","Lines","canvasHeight","cellCache","$offsetCoefficient","moveContainer","firstRowScreen","pageChanged","oldConfig","newConfig","computeLineTop","screenTop","screenPage","computeLineHeight","$cacheCell","fragment","insertAdjacentElement","createCell","initElement","Gutter","parentEl","$showFoldWidgets","$updateAnnotations","rowInfo","annoText","annoType","gutterOffset","oldLastRow","$updateCursorRow","onCreateCell","$renderCell","$updateGutterWidth","gutterRenderer","$firstLineNumber","lastLineText","$fixedWidth","$padding","$computePadding","$highlightGutterLine","$cursorRow","updateLineHighlight","scrollLines","$renderLines","textNode","annotationNode","annotationIconNode","decorations","rowText","foldClass","isClosedFold","foldAnnotationClass","annotationInFold","foldRange","getShowLineNumbers","paddingLeft","borderRightWidth","paddingRight","Marker","setPadding","setMarkers","markers","elt","css","$getTop","drawFullLineMarker","drawScreenLineMarker","drawTextMarker","drawMultiLineMarker","childElementCount","lastChild","stringBuilder","extraStyle","curr","lineRange","range1","drawBidiSingleLineMarker","radiusClass","extraLength","textTokens","Set","isTextToken","tokenType","has","Text","$updateEolChar","EOL_CHAR","EOL_CHAR_LF","EOL_CHAR_CRLF","margin","getLineHeight","$fontMetrics","measure","$pollSizeChanges","checkForSizeChanges","$pollSizeChangesTimer","$computeTabString","showSpaces","showTabs","showEOL","$highlightIndentGuides","tabStr","$tabStrings","span","TAB_CHAR","$indentGuideRe","spaceClass","spaceContent","SPACE_CHAR","tabClass","tabContent","lineElements","lineElementsIdx","heightChanged","lineElement","$renderLine","$renderLinesFragment","lineEl","$useLineGroups","$renderToken","valueFragment","simpleSpace","controlCharacter","cjkSpace","cjk","cloneNode","renderIndentGuide","cols","$highlightIndentGuideMarker","indentLevel","initialIndent","elementIndentLevel","currentIndent","$renderHighlightIndentGuide","$clearActiveIndentGuide","$setIndentGuideActive","$createLineElement","$renderWrappedLine","splitChars","$renderOverflowMessage","$renderSimpleLine","overflowEl","$getFoldLineTokens","lastLineEl","invisibleEl","EOF_CHAR","renderTokens","addTokens","Cursor","isVisible","blinkInterval","smoothBlinking","cursors","addCursor","$updateCursors","$updateOpacity","$startCssAnimation","animationDuration","$isAnimating","$stopCssAnimation","blinking","restartTimer","setBlinkInterval","removeCursor","intervalId","timeoutId","$isSmoothBlinking","blink","onScreen","isCursorInView","pixelPos","$selectionMarkers","cursorIndex","drawCursor","$setOverwrite","MAX_SCROLL_H","Scrollbar","classSuffix","setVisible","skipEvent","onScroll","coeff","VScrollBar","scrollHeight","$scrollbarWidth","$minWidth","setHeight","setScrollHeight","setInnerHeight","HScrollBar","setWidth","setInnerWidth","setScrollWidth","ScrollBar","ScrollBarV","ScrollBarH","VScrollWidth","HScrollHeight","eType","mousePageY","startTop","thumbTop","scrollTopFromThumbTop","thumbHeight","pageHeight","viewHeight","slideHeight","scrollWidth","mousePageX","startLeft","thumbLeft","scrollLeftFromThumbLeft","thumbWidth","pageWidth","viewWidth","slideWidth","RenderLoop","onRender","pending","changes","$recursionLimit","_flush","change","clear","CHAR_COUNT","USE_OBSERVER","ResizeObserver","FontMetrics","$setMeasureNodeStyles","$measureNode","$addObserver","isRoot","visibility","font","$measureSizes","fontWeight","boldSize","charSizes","allowBoldFonts","$observer","observe","setPolling","disconnect","$getZoom","zoom","$initTransformMeasureNodes","transformCoordinates","clientPos","elPos","solve","l1","l2","det","sub","mul","m2","ut","u","f","Decorator","canvas","pixelRatio","heightRatio","canvasWidth","minDecorationHeight","halfMinDecorationHeight","colors","dark","light","$updateDecorators","ctx","getContext","clearRect","priorities","compensateFold","compensateFoldRows","currentY","y1","y2","yCenter","fillStyle","fillRect","GutterLayer","MarkerLayer","TextLayer","CursorLayer","HScrollBarCustom","VScrollBarCustom","editorCss","VirtualRenderer","onGutterResize","$markerBack","textLayer","$markerFront","$horizScroll","$vScroll","$scrollAnimation","scrollMargin","updateCharacterSize","$size","scrollerHeight","scrollerWidth","$dirty","minHeight","v","$renderChanges","defaultView","CHANGE_FULL","$addResizeObserver","$allowBoldFonts","$updatePrintMargin","onChangeNewLineMode","$changedLines","CHANGE_LINES","CHANGE_TEXT","CHANGE_MARKER","updateFontSize","$updateSizeAsync","resizing","$updateCachedSize","$resizeTimer","$changes","$customScrollbar","$updateCustomScrollbar","$extraHeight","oldSize","CHANGE_SIZE","CHANGE_SCROLL","$showGutter","$computeLayerConfig","availableWidth","$showPrintMargin","$printMarginColumn","$animatedScroll","getShowGutter","setShowGutter","$printMarginEl","containerEl","posTop","posLeft","setScrollMargin","sm","setMargin","getHScrollBarAlwaysVisible","$hScrollBarAlwaysVisible","setHScrollBarAlwaysVisible","alwaysVisible","getVScrollBarAlwaysVisible","$vScrollBarAlwaysVisible","setVScrollBarAlwaysVisible","$updateScrollBarV","$scrollPastEnd","$updateScrollBarH","freeze","$frozen","unfreeze","CHANGE_H_SCROLL","st","$scrollDecorator","$updateLines","CHANGE_CURSOR","CHANGE_MARKER_FRONT","CHANGE_MARKER_BACK","$autosize","desiredHeight","$maxPixelHeight","$gutterWidth","hideScrollbars","longestLine","$getLongestLine","horizScroll","hScrollChanged","vScrollBefore","vScrollChanged","firstRowHeight","lineCount","charCount","$viewMargin","newLeft","newTop","topMargin","bottomMargin","$stopAnimation","currentTop","currentLeft","twoCharsWidth","alignment","$calcSteps","fromValue","toValue","x_min","STEPS","steps","initialScroll","oldSteps","$timer","endAnimation","scrollTo","canvasPos","$hasCssTransforms","$blockCursor","$useTextareaForIME","addToken","removeExtraToken","insertPosition","textLines","$ghostText","$ghostTextWidget","pixelPosition","ghostTextHeight","newToken","$themeId","$theme","setMouseCursor","attachToShadowRoot","$resizeObserver","contentRect","workerUrl","Worker","blob","Blob","blobBuilder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","getBlob","$workerBlob","blobURL","URL","webkitURL","createObjectURL","WorkerClient","worker","$createWorkerFromOldConfig","$sendDeltaQueue","changeListener","onMessage","callbackId","callbacks","onmessage","topLevelNamespaces","classname","importScripts","nameToUrl","toUrl","normalizePath","$normalizePath","tlns","deltaQueue","onerror","$doc","cmd","emit","ex","attachToDocument","q","UIWorkerClient","main","emitSync","sender","messageBuffer","workerClient","processNext","setEmitSync","Main","PlaceHolder","others","mainClass","othersClass","$onUpdate","onUpdate","$others","undoStack","$undostack","$undoStackDepth","setup","other","showOtherMarkers","othersActive","hideOtherMarkers","updateAnchors","lengthDiff","inMainRange","distanceFromStart","newPos","otherPos","updateMarkers","updateMarker","undosRequired","isSamePoint","alt","ctrl","accel","selectionMode","isMultiSelect","mouseX","mouseY","screenAnchor","screenCursor","$enableJumpToDef","$blockSelectEnabled","addSelectionMarker","oldRange","removeSelectionMarker","tmpSel","rectSel","blockSelect","newCursor","removeSelectionMarkers","rectangularRangeBlock","updateSelectionMarkers","onSelectionInterval","selectMoreLines","selectMore","joinSelections","splitIntoLines","alignCursors","multiSelectCommands","getSelectionMarkers","$blockChangeEvents","$onAddRange","$onRemoveRange","mergeOverlappingRanges","lastRange","$initRangeList","toggleBlockSelection","includeEmptyLines","xBackwards","startOffsetX","endOffsetX","docEnd","yBackwards","MultiSelect","$multiselectOnSessionChange","$onMultiSelect","$onSingleSelect","onSessionChange","$checkMultiselectChange","altCursor","altDown","addAltCursorListeners","selectionMarkerCount","markerList","$onMultiSelectExec","inVirtualMode","keepOrder","$byLines","cmdResult","anim","buf","additive","skip","screenLead","toRemove","words","stopAtFirst","sameRowRanges","maxCol","minSpace","spaceOffsets","spaceOffset","fr","lr","guessRange","$reAlignText","forceLeft","startW","textW","endW","isLeftAligned","isRightAligned","alignLeft","enableMultiselect","enableBlockSelect","FoldMode","foldingStartMarker","foldingStopMarker","indentationBlock","startLevel","openingBracketBlock","closingBracketBlock","oldWidget","gutterAnno","comparator","binarySearch","matched","findAnnotations","arrow","onmousedown","Renderer","edit","_id","env","tagName","oldNode","createEditSession","is","singletonTags","blockTags","formatOptions","lineBreaksAfterCommasInCurlyBlock","beautify","nextToken","tabString","breakBefore","spaceBefore","spaceAfter","lastDepth","lastIndent","unindent","roundDepth","curlyDepth","curRow","rowsToAdd","indentNextLine","inTag","inCSS","inBlock","parents","caseBody","trimNext","trimLine","trimCode","trimRight","trimLeft","searchboxCss","SearchBox","showReplaceForm","spellcheck","title","setEditor","searchRange","$syncOptions","$initElements","sb","replaceBox","searchOption","replaceOption","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","searchCounter","activeInput","$searchBarKb","setSearchRange","searchRangeMarker","checked","noMatch","updateCounter","MAX_COUNT","findPrev","replaceAndFindNext","active","$closeSearchBarKb","isReplace","supportType","supportFunction","supportConstant","supportConstantColor","supportConstantFonts","numRe","pseudoElements","pseudoClasses","CssHighlightRules","keywordMapper","strings","escapes","MatchingBraceOutdent","propertyMap","CssCompletions","completionsDefined","defineCompletions","inParens","getPropertyValueCompletions","getPropertyCompletions","skipSemicolon","caption","snippet","CssBehaviour","BaseFoldMode","commentRegex","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","forceMultiline","getCommentRegionBlock","getSectionRange","startIndent","subRange","CStyleFoldMode","$outdent","$completer","snippetFileId","DocCommentHighlightRules","getTagRule","getStartRule","getEndRule","GolangHighlightRules","stringEscapeRe","tokenizedLine","JsDocCommentHighlightRules","identifierRe","JavaScriptHighlightRules","escapedRe","comments","noES6","no_regex","jsx","JSX","tagRegex","jsxTag","jsxJsRule","jsxAttributes","reference","endState","results","JsonHighlightRules","JsxHighlightRules","buildinConstants","reserved","PythonHighlightRules","strPre","strRawPre","strFormatPre","strRawFormatPre","integer","intPart","pointFloat","floatNumber","stringEscape","PythonFoldMode","outdents","XmlHighlightRules","normalize","processing_instruction","doctype","int_subset","cdata","attr_reference","tag_whitespace","whitespace","attribute_value","embedTagRules","XmlBehaviour","rightSpace","tokenEndColumn","tokenRow","tokenColumn","voidElements","nextIndent","optionalEndTags","Tag","selfClosing","_getFirstTagInLine","_findEndTagInLine","getCommentFoldWidget","tags","XmlFoldMode","createRoot","hydrateRoot","hasElementType","Element","hasMap","Map","hasSet","hasArrayBuffer","ArrayBuffer","isView","equal","it","entries","flags","valueOf","$$typeof","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","amdD","getter","__esModule","definition","prop","toStringTag","nmd","paths","createContext","Icon","family","weight","rest","getCSSClasses","propTypes","isRequired","ItemTrigger","collapsed","toggleChange","useContext","iconType","trigger","onClick","AccordionItem","collapsedProp","ref","setCollapsed","useState","useMemo","expandToContent","contextValue","Provider","defaultProps","forwardRef","AccordionItemHeader","usearrowastrigger","getSize","componentSize","setComponentSize","current","handleResize","useCallback","useLayoutEffect","resizeObserver","savedHandler","useRef","useEffect","eventListener","Collapsible","contentContainer","collapseWrapper","refContainerSize","contentContainerStyle","setContentContainerStyle","onWindowResize","CSSTransition","onEnter","onExit","in","classNames","AccordionItemContent","Accordion","Item","Header","Content","Button","customButton","iconFamily","iconPosition","iconOnly","noStyle","getCssClasses","cssClasses","sizeClass","disabledClass","displayClass","themeClass","iconOnlyClass","noStyleClass","getButtonIcon","buttonType","cloneElement","getButtonType","ButtonGroup","CardHeader","CardBody","align","CardFooter","CardTitle","CardTitleGroup","CardSubTitle","CardSummary","CardTitleIcon","Card","Body","Footer","Title","TitleGroup","SubTitle","Summary","wait","immediate","callNow","Loader","withbackground","Message","onClose","noMargin","Chart","areaStyleColors","dataLoaded","hasData","series","zoomStart","zoomEnd","seriesConfig","noDataComponent","noDataComponentProp","zoomColors","tykChartInstance","setTykChartInstance","chartWrapperRef","lineBarChart","defaultOpts","fromJS","color","toolbox","orient","itemSize","showTitle","feature","dataZoom","dataBackground","lineStyle","areaStyle","handleStyle","textStyle","borderColor","fillerColor","legend","axisPointer","grid","containLabel","xAxis","boundaryGap","axisLine","axisTick","yAxis","axisLabel","animationEasing","seriesDefault","LinearGradient","smooth","symbolSize","pieChart","formatter","radius","avoidLabelOverlap","animationType","labelLine","normal","length2","geoChart","dispose","eventCallBack","debouncedMethod","debounce","getZr","prevInstance","prevOption","prevType","prevSeries","equals","selectedType","selectedOptions","selectedSeries","finalOpts","mergeDeep","toJS","entry","seriesData","buildChartOptions","dispatchAction","dataZoomSelectActive","seriesIndex","dataIndex","prevZoomStart","prevZoomEnd","startValue","endValue","chartHasData","getStyle","memo","savedCallback","ToastMessage","handleClose","itemIndex","ToastContainer","notify","updateNotifications","msgID","random","prevMessages","onMessageClosed","newMessages","fn","createNotification","render","bindNotify","danger","CopyToClipboard","txtRef","createRef","onKeyUp","ModalFooter","ModalBody","Modal","disableCloseCommands","opened","showBackdrop","restProps","modalClasses","backdropClasses","themeIcon","onKeyDown","Confirm","confirmBtnText","cancelBtnText","setOpen","setCallback","cancelCallback","setCancelCallback","callbackFunc","cancelCallbackFunc","beforeCallback","FixedWrapper","showShadow","fixedWrapperRef","attachShadow","scrollY","debouncedAttachShadow","InfiniteScroller","hasMore","initialLoad","loadMore","pageNumber","refChild","showLoader","setShowLoader","containerRef","refChildSize","shouldLoad","loadMoreData","prevPageNumber","scrollHandler","prevRefChildSize","PropTypes","oneOfType","arrayOf","bool","instanceOf","FloatingContainer","forceDisplay","displayAxis","preferredPosition","infiniteScrollerConfig","localRef","floatingContainerRef","contentWrapperRef","viewportOffset","schedulePositionUpdate","topSpace","bottomSpace","leftSpace","hasTopSpace","hasBottomSpace","hasLeftSpace","hasRightSpace","positionedVerticallyFitsInViewport","positionedHorizontallyFitsInViewport","getDisplayForVertical","getDisplayForHorizontal","getDisplayWhereItFits","determineDisplay","targetPosition","vpLeft","vpTop","leftPos","auto","matchElement","matchStart","matchEnd","topPos","maxWidth","getStylesForTop","getStylesForBottom","getStylesForLeft","getStylesForRight","adjustPosition","createPortal","InfoNote","ListItem","List","labelwidth","flexBasis","styleCopy","structuredClone","getListStyle","NavBar","pre","subtitle","withTabs","subtitleContent","NavigationItem","Navigation","PortalContext","PanelBody","noPadding","Consumer","portalContext","collapsable","PanelFooter","PanelHeader","Component","HeaderTag","onToggle","collapsibleIconPosition","Panel","onToggleCollapse","collapsedState","setCollapsedState","handleToggle","panelTheme","collapsbleIconPosition","toggleCollapse","Pill","RevealPanelService","setRefs","wrapper","panel","unbindEvents","bindEvents","ensureRefs","mouseDown","initialRect","initialEvent","isPrimaryMouseButtonDown","newY","finalHeight","notifyListeners","buttons","heightVal","reason","isHidden","deinit","RevealPanelHeaderLeft","RevealPanelHeaderRight","mergeClasses","RevealPanel","onHeightChange","parentSelector","contentStyle","contentClassName","gutterClassName","wrapperClassName","panelRef","gutterRef","wrapperRef","panelService","useImperativeHandle","headerLeft","headerRight","contents","child","TempRevealPanel","HeaderLeft","HeaderRight","TabsContext","TabContent","addTab","hideTab","updateTab","showTab","selectedPath","tabData","tabsId","tabExists","rendered","hideTabContent","tabs","tempTabData","prevTabData","shouldRender","TabContext","Tab","tabsContext","tabContext","setPath","tempPath","Tabs","onTabChange","setTabs","setSelectedPath","setRendered","initialPath","setInitialPath","setCurrentSelectedPath","tempRendered","collapsible","prevTabs","tempTabs","tabsState","tempTabsState","toggleTab","getTabCssClass","tabId","genTabs","currentTabs","updateTabsList","icon","closable","isOpened","additionalClickParents","isActive","setIsActive","tooltipRef","activeEvents","onMouseEnter","onMouseLeave","handleDocumentClick","TextEllipsis","Pagination","totalNrOfPages","selectedPage","setSelectedPage","pagesArray","nrOfPages","pagesArr","currentNr","pageNr","at","getPagesArr","goToPage","tableContext","HeaderCell","sortable","sortOrder","setSortOrder","sendMessage","allRowsSelected","columns","selectable","generateSelectable","allowSelectAll","isCheckbox","Checkbox","displayError","displayNote","note","Cell","styling","events","Row","SelectableCheckbox","Table","noDataMessage","loading","infiniteScrolling","onChangeMsg","setOnChangeMsg","itemsListRef","sortRows","order","selectAllRows","selectRow","setPagination","pagination","api","getTable","every","totalPages","num","nrItemsOnPage","perPage","Column","cSize","cOffset","nogutters","DropdownContext","DropdownItem","customdropdownitem","eventKey","dropdownItemCLick","dropdownContext","itemProps","onSelectItem","selectedItem","showCheckmark","Dropdown","isElemInRightView","dropdownWidth","isElemInBottomView","dropdownHeight","elHeight","super","dropdownRef","dropdownListRef","dropdownButtonRef","toggleDropdown","handleClickOutside","componentDidMount","getStyles","componentDidUpdate","prevProps","closeDropdown","componentWillUnmount","itemId","closeOnSelect","onSelect","selectedItemProps","dropdownEl","offsetPosition","customTop","customLeft","getWrapperCssClasses","btnGroup","btnGroupSize","btnTheme","hasCustomContent","listclassnames","getBtnTitle","btnTitle","stopButtonTextChange","appendTo","btnClassName","btnSize","customBtnTitle","showDropdownIcon","showTriggerButton","DropdownWrapperTag","DropdownTrigger","splitTrigger","toggle","onTriggerClick","DropdownListWrapper","dropdownValue","Dropdown2","setSelectedValueAsTitle","setIsOpen","handleOutsideClick","triggerElement","CodeEditor","disableValidation","finalSetOptions","getCodeEditorError","getLabelStyles","getNonLabelWidth","handleOnChange","handleOnBlur","htmlFor","editorProps","$blockScrolling","editorInstance","getStateSelectedValues","multiple","Combobox","closeList","openList","filterByName","itemValue","inputValue","stateSelectedValues","searchText","comboboxRef","valuesListRef","inputRef","textRef","focusInput","handleItemsNavigation","handleComboboxDropdownClick","handleListItemClick","handlePillRemoveClick","manageSelectedTags","setInputWidth","unBindEvents","getDerivedStateFromProps","nextProps","stringify","filteredValues","filterValues","cursorNext","previousState","methodName","tempState","removeSelectedValue","allowCustomValues","getSearchText","getSelectedIndex","getListItemCssClasses","getComboboxListCssClass","themes","iTheme","getInputError","elWidth","getComboboxDisplayData","reduce","prevValue","tempValue","selectedIndex","selectedValues","isInInitialValues","addSelectedValue","manageSelectedValues","tempSelectedValues","tempStateSelectedValues","ok","searchItem","renderInput","visbility","renderDropdown","autoFocus","CustomListComponent","Value","tagSeparators","addTagOnBlur","renderValue","valueOverflow","dummyElementRef","setInputValue","inputWidth","entryFieldOnChange","dummy","triggerAction","textValue","isPlaceholder","renderCustomValue","entryFieldOnKeyDown","listRef","searchValue","activeItem","renderListItem","showSearch","block","isNoneSelected","renderSelectAllOption","Combobox2","propValue","propValues","maxProp","matchItemFn","renderList","renderListProp","onBeforeChange","floatingContainerConfig","expandMode","displayDropdownTrigger","required","validateOnChange","rootRef","comboboxControlRef","getValueFromProp","setValues","normalizeValue","setSearchValue","setActiveItem","setIsOpened","valuesExpanded","setValuesExpanded","localValidationError","setLocalValidationError","getThemeClasses","getFilteredValues","openDropdown","updateSearchValue","newSearchValue","fv","isValidValue","newValues","localError","updateValue","addTag","listValueIndex","lv","finalValue","selectValue","valIndex","with","selectAllValues","moveUpActiveItem","visibleItems","activeIndex","moveDownActiveItem","executeTriggerAction","onTagMessage","removeTag","renderIcon","sv","nv","vals","valuesElement","updateScroll","mobserver","MutationObserver","robserver","childList","subtree","currentValuesClasses","onClickCapture","existingVal","DatePicker","onOpen","pickerInstance","setPickerInstance","dateRef","hasValueChanged","prevDate","currentDate","getTime","diffDates","date","onDateChange","dateValue","instance","defaultDate","setDate","openCalendar","inputStyle","addonStyle","getInputField","dateFormat","_typeof","requiredArgs","isDate","toDate","argument","argStr","NaN","toInteger","dirtyNumber","startOfUTCISOWeek","dirtyDate","day","getUTCDay","setUTCDate","getUTCDate","setUTCHours","getUTCISOWeekYear","year","getUTCFullYear","fourthOfJanuaryOfNextYear","setUTCFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","defaultOptions","getDefaultOptions","startOfUTCWeek","_ref","_ref2","_ref3","_options$weekStartsOn","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","weekStartsOn","locale","RangeError","getUTCWeekYear","_options$firstWeekCon","firstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","addLeadingZeros","targetLength","sign","signedYear","month","getUTCMonth","getUTCHours","getUTCMinutes","getUTCSeconds","numberOfDigits","milliseconds","getUTCMilliseconds","G","localize","era","ordinalNumber","unit","lightFormatters","Y","signedWeekYear","weekYear","Q","quarter","M","week","firstWeek","startOfUTCWeekYear","getUTCWeek","I","isoWeek","fourthOfJanuary","startOfUTCISOWeekYear","getUTCISOWeek","D","dayOfYear","timestamp","setUTCMonth","difference","getUTCDayOfYear","E","dayOfWeek","localDayOfWeek","isoDayOfWeek","dayPeriodEnumValue","dayPeriod","hours","H","K","S","X","_localize","timezoneOffset","_originalDate","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","z","originalDate","T","dirtyDelimiter","absOffset","minutes","delimiter","dateLongFormatter","pattern","formatLong","timeLongFormatter","longFormatters","P","dateTimeFormat","matchResult","datePattern","timePattern","dateTime","protectedDayOfYearTokens","protectedWeekYearTokens","throwProtectedError","format","formatDistanceLocale","lessThanXSeconds","one","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","defaultWidth","formats","full","long","medium","short","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchedString","parsePatterns","defaultParseWidth","object","findKey","valueCallback","formatDistance","tokenValue","addSuffix","comparison","formatRelative","_date","_baseDate","_options","rem100","narrow","abbreviated","wide","am","pm","midnight","noon","morning","afternoon","evening","night","parsePattern","parseResult","any","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","_ref4","_options$locale2","_options$locale2$opti","_ref5","_ref6","_ref7","_options$locale3","_options$locale3$opti","_defaultOptions$local3","_defaultOptions$local4","formatStr","defaultLocale","isValid","utcDate","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","getTimezoneOffsetInMilliseconds","dirtyAmount","addMilliseconds","subMilliseconds","formatterOptions","firstCharacter","longFormatter","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","isProtectedDayOfYearToken","EditableListForm","getMainFormValue","components","mainFormValue","submitButtonRef","submitForm","errors","mainError","addValueOnFieldChange","getMainFormButtonWidth","createRefs","propsComponents","stateComponents","validateValue","getFormCssClasses","noLabels","getButtonClassName","buttonStyle","displayType","getComponentsError","errorPersist","validatorsNames","validate","validatorName","validator","validationmessages","hasMainFormErrors","resetForm","showMainError","onSubmit","validationmessage","buttonName","ComponentName","EditableList","getItemListValue","getListItemCssClass","buttonWidth","handleFormSubmit","dropdownListItemRef","addValues","triggerOnChange","handleItemUpdate","editMode","handleChildrenOnChange","getListItemsCssClass","getFormInputKey","getListItemText","itemData","separator","setItemEditMode","closeListItems","isInList","removeListItem","removedItem","valueArr","tempItemValue","nextValue","genListItem","clonedComponents","genList","appendToElement","formButtonTitle","formButtonStyle","addButtonName","onAddRow","ListHeader","fields","field","FieldsList","onDelete","rowIndex","tempField","EditableList2","hideOnEmpty","internalErrors","setInternalErrors","updateRowValue","fieldIndex","componentValue","tempValueArr","tempErrors","tempFieldError","Components","internalError","setInternalError","onFieldChange","errorMsg","deleteRow","rowValues","colValue","flat","hasErrors","FileInput","accept","fileInputRef","files","Input","getAddon","initValue","stateValue","isfield","inputgroupaddonleft","inputgroupaddonright","getInputGroupAddon","getInputComponent","autoComplete","Input2","getInputElement","MultiselectItem","itemType","isInSearchValue","fieldsToSearchOn","onAddRemove","itemDisplayTemplate","maxSelections","nrSelectedItems","onGetItemDetails","details","detailsDisplayTemplate","getItemContent","getItemLoader","MultiselectPanel","inputPlaceholder","noItemsMessage","items","onCustomSearch","customSearch","panelType","serverLoad","itemsPageNumber","itemsNrPages","loadMoreItems","searchOnChange","itemChanged","cloneItems","clonedItem","renderListItems","diffObjects","Multiselect","entityNamePlural","getItemDetails","setOpened","prevOpened","itemsChange","allItems","valueClone","valueChange","providerValue","Radio","nospace","Select","setStateValue","selectedValue","getSelectError","getSelectComponent","SelectableList","checkboxalticon","itemTemplate","primaryKey","handleOnSelect","newSelectedItems","elemPosition","getListItemCssClassName","tvalue","Textarea","ToggleItem","getNotchCssClasses","itemRef","saveSelectedRef","onItemSelected","ToggleItemWrapper","Toggle","onDark","separated","selectedRef","setSelectedRef","notchRef","toggleRef","positionNotch","selectedWidth","FORM_DEBOUNCE","setConfig","getValueFromPath","acc","form","properties","DEFAULT_DEBOUNCE_TIME_MS","myValue","setMyValue","getOnChangeProps","hasIsFieldProp","executeDebounced","valueOrEvent","nodeName","onChangeProps","formError","touched","submitCount","status","componentProps","hasOwn","FieldCodeEditor","FieldCombobox","getComboboxError","FieldDropdown","FieldPagination","FieldCombobox2","FormDatePicker","getDatePickerError","FieldEditableList","getEditableListError","FieldFileInput","FieldInput","FieldMultiselect","getMultiselectError","FieldSelect","handleEvent","FieldSelectableList","FieldToggle","useInterval"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/tyk-ui.css b/lib/tyk-ui.css index 48a054af..d15c1e85 100644 --- a/lib/tyk-ui.css +++ b/lib/tyk-ui.css @@ -6,6 +6,12 @@ a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,c * Copyright 2024 Fonticons, Inc. */:host,:root{--fa-font-light:normal 300 1em/1 "Font Awesome 6 Pro"}@font-face{font-display:block;font-family:Font Awesome\ 6 Pro;font-style:normal;font-weight:300;src:url(fonts/fontawesome/fa-light-300.woff2) format("woff2"),url(fonts/fontawesome/fa-light-300.ttf) format("truetype")}.fa-light,.fal{font-weight:300} +/*! + * Font Awesome Pro 6.5.2 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license (Commercial License) + * Copyright 2024 Fonticons, Inc. + */:host,:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Pro"}@font-face{font-display:block;font-family:Font Awesome\ 6 Pro;font-style:normal;font-weight:400;src:url(fonts/fontawesome/fa-regular-400.woff2) format("woff2"),url(fonts/fontawesome/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-weight:400} + /*! * Font Awesome Pro 6.5.2 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license (Commercial License) diff --git a/lib/tyk-ui.css.map b/lib/tyk-ui.css.map index 28046a13..66b90aee 100644 --- a/lib/tyk-ui.css.map +++ b/lib/tyk-ui.css.map @@ -1 +1 @@ -{"version":3,"file":"tyk-ui.css","mappings":"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,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,4BAA6B,CAC7B,iCACF,CAEA,uBACE,wBACF,CACF,CAEA,6CACE,eACE,gBAA2B,CAC3B,qBACF,CAEA,sBACE,qBACF,CAEA,eACE,gCAAsC,CACtC,qCACF,CAEA,sBACE,iCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,4BAA6B,CAC7B,iCACF,CAEA,uBACE,wBACF,CACF,CAEA,2CACE,eACE,gBAA2B,CAC3B,qBACF,CAEA,sBACE,qBACF,CAEA,eACE,gCAAsC,CACtC,qCACF,CAEA,sBACE,iCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,4BAA6B,CAC7B,iCACF,CAEA,uBACE,wBACF,CACF,CAEA,mCACE,eACE,gBAA2B,CAC3B,qBACF,CAEA,sBACE,qBACF,CAEA,eACE,gCAAsC,CACtC,qCACF,CAEA,sBACE,iCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,4BAA6B,CAC7B,iCACF,CAEA,uBACE,wBACF,CACF,CC1iBA,WACE,sBAAuB,CAIvB,iBAAkB,CADlB,eAAmB,CAFnB,qGAIF,CAEA,WACE,uBAAwB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aACF,CAEA,qBACE,aACF,CAEA,qBACE,aACF,CAEA,qBACE,aACF,CAEA,mBACE,aACF,CAEA,yBACE,aACF,CAEA,mBACE,aACF,CAEA,uBACE,aACF,CAEA,sBACE,aACF,CAEA,0BACE,aACF,CAEA,oBACE,aACF,CAEA,wBACE,aACF,CAEA,oBACE,aACF,CAEA,mBACE,aACF,CAEA,qBACE,aACF,CAEA,uBACE,aACF,CAEA,oBACE,aACF,CAEA,mBACE,aACF,CAEA,sBACE,aACF,CAEA,mBACE,aACF,CAEA,mBACE,aACF,CAEA,oBACE,aACF,CAEA,oBACE,aACF,CAEA,4BACE,aACF,CAEA,mBACE,aACF,CAEA,sBACE,aACF,CAEA,qBACE,aACF,CAEA,uBACE,aACF,CAEA,sBACE,aACF,CAEA,gBACE,aACF,CAEA,sBACE,aACF,CAEA,yBACE,eACF,CAEA,8BACE,eACF,CAEA,mBACE,aACF,CCjLA,kBAIE,2BAA4B,CAF5B,uCAAwC,CACxC,uCAAwC,CAFxC,8CAIF,CAEA,MAIE,wBAAyB,CAHzB,oBAAqB,CAErB,oBAAqB,CADrB,oBAGF,CAEA,GACE,8BAA+B,CAC/B,kCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,QAIE,sCAAuC,CAFvC,6BAA8B,CAC9B,iCAAkC,CAGlC,EACE,6BAA8B,CAC9B,yBACF,CACF,CAEA,OACE,mCACF,CAEA,mBAEE,uBAAwB,CADxB,cAAe,CAEf,sCAAuC,CAEvC,aACE,mCACF,CAEA,GACE,uBACF,CAEA,EACE,aACF,CACF,CAEA,qBACE,sCACF,CAEA,oBACE,qCACF,CAEA,kBACE,mCACF,CAEA,6BACE,+CACF,CAEA,4BACE,8CACF,CAEA,0BACE,4CACF,CAEA,YACE,4BACF,CAEA,cACE,qCACF,CAEA,YACE,mCACF,CAEA,iBACE,wBACF,CAEA,gBAEE,eAAgB,CAChB,sBA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,sCAAuC,CAFvC,6BAA8B,CAC9B,iCAEF,CAEA,kBACE,YAAa,CACb,gBACF,CAEA,0BACE,MACF,CAEA,MACE,sBAAuB,CACvB,mEAAoE,CACpE,0CAA2C,CAC3C,eAAgB,CAEhB,YACE,qCACF,CACF,CC9BA,cAEE,wBAAyB,CADzB,qCAAsC,CAEtC,uCACF,CCJA,aACE,wBACF,CAEA,YACE,0BACF,CAEA,cACE,2BACF,CAEA,MACE,4BACF,CAEA,OACE,0BACF,CAEA,MACE,sBACF,CAEA,WACE,kBACF,CAEA,kBACE,4BACF,CAEA,eACE,8BACF,CAEA,iBACE,6BACF,CAEA,gBACE,+BACF,CAEA,kBACE,gCACF,CAEA,kBACE,oDACF,CAEA,kBACE,oDACF,CAEA,mBACE,qDACF,CAEA,qBACE,qDACF,CAEA,qBACE,qDACF,CAEA,sBACE,sDACF,CAEA,oBACE,qDACF,CAEA,oBACE,qDACF,CAEA,qBACE,sDACF,CAEA,mBACE,sDACF,CAEA,mBACE,sDACF,CAEA,oBACE,uDACF,CAEA,WACE,oBAAqB,CACrB,oBACF,CAEA,YACE,kBACF,CAEA,gBACE,YACF,CAEA,uBACE,kBACF,CAGA,sBACE,kBAAmB,CACnB,YAAa,CACb,wBACF,CAEA,cACE,sBACF,CAEA,QACE,kBACF","sources":["webpack://@tyk-technologies/tyk-ui/./src/common/css/reset.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/variables.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/grid.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/fonts.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/fontawesome/light.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/fontawesome/solid.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/fontawesome/fontawesome.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/tykon.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/typography.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/form.css","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/Accordion.css","webpack://@tyk-technologies/tyk-ui/./src/components/Button/Button.css","webpack://@tyk-technologies/tyk-ui/./src/components/ButtonGroup/ButtonGroup.css","webpack://@tyk-technologies/tyk-ui/./src/components/Card/Card.css","webpack://@tyk-technologies/tyk-ui/./src/components/Chart/Chart.css","webpack://@tyk-technologies/tyk-ui/./src/components/Collapsible/Collapsible.css","webpack://@tyk-technologies/tyk-ui/./src/components/CopyToClipboard/CopyToClipboard.css","webpack://@tyk-technologies/tyk-ui/./src/components/FixedWrapper/FixedWrapper.css","webpack://@tyk-technologies/tyk-ui/./src/components/FloatingContainer/FloatingContainer.css","webpack://@tyk-technologies/tyk-ui/./src/components/Icon/Icon.css","webpack://@tyk-technologies/tyk-ui/./src/components/InfiniteScroller/InfiniteScroller.css","webpack://@tyk-technologies/tyk-ui/./src/components/InfoNote/InfoNote.css","webpack://@tyk-technologies/tyk-ui/./src/components/Loader/Loader.css","webpack://@tyk-technologies/tyk-ui/./src/components/List/List.css","webpack://@tyk-technologies/tyk-ui/./src/components/Message/Message.css","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/Modal.css","webpack://@tyk-technologies/tyk-ui/./src/components/Navigation/Navigation.css","webpack://@tyk-technologies/tyk-ui/./src/components/NavBar/NavBar.css","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/Panel.css","webpack://@tyk-technologies/tyk-ui/./src/components/Pill/Pill.css","webpack://@tyk-technologies/tyk-ui/./src/components/RevealPanel/RevealPanel.css","webpack://@tyk-technologies/tyk-ui/./src/components/Sidebar/Sidebar.css","webpack://@tyk-technologies/tyk-ui/./src/components/Table/Table.css","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/Tabs.css","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/Toast.css","webpack://@tyk-technologies/tyk-ui/./src/components/Tooltip/Tooltip.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/Combobox.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Checkbox/Checkbox.css","webpack://@tyk-technologies/tyk-ui/./node_modules/flatpickr/dist/flatpickr.min.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/DatePicker/DatePicker.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/Dropdown.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/Dropdown.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList/EditableList.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/EditableList2.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/FileInput/FileInput.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/Multiselect.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Pagination/Pagination.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Radio/Radio.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Select/Select.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/SelectableList/SelectableList.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Textarea/Textarea.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/Toggle.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/layout.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/texts.css","webpack://@tyk-technologies/tyk-ui/./src/utils/css-helpers/helpers.css"],"sourcesContent":["html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font: inherit;\n font-size: 100%;\n vertical-align: baseline;\n}\n\n/* HTML5 display-role reset for older browsers */\n\narticle, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {\n display: block; }\n\nbody {\n line-height: 1; }\n\nol, ul {\n list-style: none; }\n\nblockquote, q {\n quotes: none; }\n\nblockquote {\n &::before, &::after {\n content: '';\n content: none; } }\n\nq {\n &::before, &::after {\n content: '';\n content: none; } }\n\ntable {\n border-collapse: collapse;\n border-spacing: 0; }\n",":root {\n --general-border-radius: 18px;\n --general-border-width: 2px;\n\n --color-default-base: #36364C;\n --color-default-base-light: #7A79A1;\n --color-default-light: #C3C3E5;\n --color-default-dark: #505071;\n --color-primary-base: #A2A2CC;\n --color-primary-light: #EDEDF9;\n --color-primary-dark: #505071;\n --color-success-base: #00d9ba;\n --color-success-light: #C2F2E9;\n --color-success-dark: #00B798;\n --color-info-base: #82BBC6;\n --color-info-light: #D3EBEF;\n --color-danger-base: #FF6C7D;\n --color-danger-extra-light: #F5CCD1;\n --color-danger-light: #FFBBC5;\n --color-danger-dark: #EA4766;\n --color-warning-base: #D6B218;\n --color-warning-light: #FFE885;\n --color-warning-dark: #C58C11;\n --color-foreground-base: #393939;\n --color-foreground-base-dark: #22272B;\n --color-foreground-light: #5a5a68;\n --color-foreground-dark: #161B20;\n --color-foreground-extra-dark: #0A0D10;\n --color-background-base: #E1E1E1;\n --color-background-light: #EDEDF9;\n --color-background-dark: #43435B;\n --color-background-extra-dark: #0A0D10;\n\n --text-color: var(--color-default-dark);\n --label-color: var(--color-default-base);\n\n --xs-line-height: 16px;\n --sm-line-height: 19px;\n --md-line-height: 22px;\n --lg-line-height: 23px;\n --xl-line-height: 24px;\n --xxl-line-height: 30px;\n\n --xs-font-size: 13px;\n --sm-font-size: 14px;\n --md-font-size: 16px;\n --lg-font-size: 18px;\n --xl-font-size: 20px;\n --xxl-font-size: 25px;\n\n --base-font-size: var(--sm-font-size);\n --base-line-height: var(--sm-line-height);\n\n --spacing-xs: 5px;\n --spacing-sm: 10px;\n --spacing-base: 15px;\n --spacing-md: 20px;\n --spacing-lg: 25px;\n --spacing-xl: 30px;\n --spacing-xxl: 40px;\n\n --grid-gutter: var(--spacing-md);\n --grid-max-width: calc(1200px + var(--grid-gutter) * 2);\n\n --breakpoint-xs: 420px;\n --breakpoint-sm: 768px;\n --breakpoint-md: 1024px;\n --breakpoint-lg: 1248px;\n\n --font-inter-light: 'Inter-Light';\n --font-inter-medium: 'Inter-Medium';\n --font-inter-regular: 'Inter-Regular';\n --font-inter-bold: 'Inter-Bold';\n\n --font-family-regular: 'OpenSans-regular';\n --font-family-medium: 'OpenSans-SemiBold';\n --font-family-bold: 'OpenSans-Bold';\n\n --headings-color: var(--color-default-base);\n --headings-font-family-regular: 'smoolthan_regular';\n --headings-font-family-medium: 'smoolthan_medium';\n --headings-font-family-bold: 'smoolthan_bold';\n\n --headings-margin-bottom: 15px;\n --headings-font-family: var(--headings-font-family-medium);\n --headings-font-weight: 500;\n --headings-line-height: var(--base-line-height);\n\n --form-group-margin-bottom: 15px;\n --form-control-height: 39px;\n --form-control-padding-left: var(--spacing-md);\n --form-control-padding-right: var(--spacing-md);\n --form-control-padding-top: 10px;\n --form-control-padding-bottom: 10px;\n --form-control-addon-background-color: white;\n --form-control-addon-padding-top: 10px;\n --form-control-addon-padding-bottom: 10px;\n --form-control-addon-padding-left: 10px;\n --form-control-addon-padding-right: 10px;\n --form-control-border: var(--general-border-width) solid var(--color-default-light);\n --form-control-disabled-border: var(--general-border-width) solid var(--color-default-light);\n --form-control-placeholder-color: var(--color-primary-base);\n --form-control-disabled-background-color: var(--color-background-light);\n --form-control-disabled-color:var(--text-color);\n --form-control-border-focus: 2px solid var(--color-success-base);\n --form-control-placeholder-font-family: var(--font-family-medium);\n --form-control-error-colour: var(--color-danger-dark);\n --form-default-color: var(--color-default-light);\n --form-primary-color: var(--color-primary-base);\n --form-success-color: var(--color-success-base);\n\n --error-border: var(--general-border-width) solid var(--color-danger-base);\n --error-border-left: 2px solid var(--color-danger-dark);\n --help-block-color: var(--color-default-base);\n --help-block-font-style: normal;\n --help-block-padding: 0 0 0 var(--form-control-padding-left);\n --error-message-padding: 0 0 0 var(--form-control-padding-left);\n --default-pill-background-color: var(--color-default-base);\n --default-pill-color: white;\n --pill-margin: 0 0 10px 0;\n --default-outline-pill-box-shadow: inset 0 0 0 2px var(--color-default-base);\n --default-outline-pill-color: var(--text-color);\n\n --title-medium-font-size: 16px;\n\n --bottom-buffer-large: var(--spacing-md);\n --bottom-buffer-medium: 10px;\n --bottom-buffer-small: 5px;\n --top-buffer-large: var(--spacing-md);\n --top-buffer-medium: 10px;\n --top-buffer-small: 5px;\n --right-buffer-large: var(--spacing-md);\n --right-buffer-medium: 10px;\n --right-buffer-small: 5px;\n --left-buffer-large: var(--spacing-md);\n --left-buffer-medium: 10px;\n --left-buffer-small: 5px;\n\n --modal-z-index: 1080;\n}\n","/* stylelint-disable number-max-precision */\n\n.container {\n max-inline-size: var(--grid-max-width);\n margin-block: 0;\n margin-inline: auto;\n}\n\n.container,\n.container-fluid {\n padding-block: 0;\n padding-inline: var(--grid-gutter);\n}\n\n.tyk-row {\n display: flex;\n box-sizing: border-box;\n list-style: none;\n flex: 0 1 auto;\n flex-direction: row;\n flex-wrap: wrap;\n margin-inline-start: calc(-1 * var(--grid-gutter));\n inline-size: calc(100% + var(--grid-gutter));\n\n &.no-gutters {\n margin: 0;\n }\n\n &.tyk-row--gutterless {\n margin: 0;\n inline-size: 100%;\n }\n\n &.tyk-row--reverse {\n flex-direction: row-reverse;\n }\n}\n\n.tyk-col {\n max-inline-size: calc(100% - var(--grid-gutter));\n box-sizing: border-box;\n flex: 0 0 auto;\n flex-grow: 1;\n flex-basis: calc(100% - var(--grid-gutter));\n margin-inline-start: var(--grid-gutter);\n inline-size: calc(100% - var(--grid-gutter));\n\n &:last-child {\n margin-inline-end: 0;\n }\n\n .tyk-row--gutterless & {\n margin: 0;\n }\n\n &.tyk-col--reverse {\n flex-direction: column-reverse;\n }\n\n &.tyk-col--align-bottom {\n align-self: flex-end;\n }\n\n &.tyk-col--align-top {\n align-self: flex-start;\n }\n\n &.tyk-col--align-center {\n align-self: center;\n }\n\n &.tyk-col--align-baseline {\n align-self: baseline;\n }\n\n &.tyk-col--align-stretch {\n align-self: stretch;\n }\n}\n\n@media screen and (width >= 1248px) {\n .tyk-col--lg-0 {\n flex-basis: calc(0% - 20px);\n max-inline-size: calc(0% - 20px);\n }\n\n .tyk-col--offset-lg-0 {\n margin-inline-start: 0%;\n }\n\n .tyk-col--lg-1 {\n flex-basis: calc(8.3333333333% - 20px);\n max-inline-size: calc(8.3333333333% - 20px);\n }\n\n .tyk-col--offset-lg-1 {\n margin-inline-start: 8.3333333333%;\n }\n\n .tyk-col--lg-2 {\n flex-basis: calc(16.6666666667% - 20px);\n max-inline-size: calc(16.6666666667% - 20px);\n }\n\n .tyk-col--offset-lg-2 {\n margin-inline-start: 16.6666666667%;\n }\n\n .tyk-col--lg-3 {\n flex-basis: calc(25% - 20px);\n max-inline-size: calc(25% - 20px);\n }\n\n .tyk-col--offset-lg-3 {\n margin-inline-start: 25%;\n }\n\n .tyk-col--lg-4 {\n flex-basis: calc(33.3333333333% - 20px);\n max-inline-size: calc(33.3333333333% - 20px);\n }\n\n .tyk-col--offset-lg-4 {\n margin-inline-start: 33.3333333333%;\n }\n\n .tyk-col--lg-5 {\n flex-basis: calc(41.6666666667% - 20px);\n max-inline-size: calc(41.6666666667% - 20px);\n }\n\n .tyk-col--offset-lg-5 {\n margin-inline-start: 41.6666666667%;\n }\n\n .tyk-col--lg-6 {\n flex-basis: calc(50% - 20px);\n max-inline-size: calc(50% - 20px);\n }\n\n .tyk-col--offset-lg-6 {\n margin-inline-start: 50%;\n }\n\n .tyk-col--lg-7 {\n flex-basis: calc(58.3333333333% - 20px);\n max-inline-size: calc(58.3333333333% - 20px);\n }\n\n .tyk-col--offset-lg-7 {\n margin-inline-start: 58.3333333333%;\n }\n\n .tyk-col--lg-8 {\n flex-basis: calc(66.6666666667% - 20px);\n max-inline-size: calc(66.6666666667% - 20px);\n }\n\n .tyk-col--offset-lg-8 {\n margin-inline-start: 66.6666666667%;\n }\n\n .tyk-col--lg-9 {\n flex-basis: calc(75% - 20px);\n max-inline-size: calc(75% - 20px);\n }\n\n .tyk-col--offset-lg-9 {\n margin-inline-start: 75%;\n }\n\n .tyk-col--lg-10 {\n flex-basis: calc(83.3333333333% - 20px);\n max-inline-size: calc(83.3333333333% - 20px);\n }\n\n .tyk-col--offset-lg-10 {\n margin-inline-start: 83.3333333333%;\n }\n\n .tyk-col--lg-11 {\n flex-basis: calc(91.6666666667% - 20px);\n max-inline-size: calc(91.6666666667% - 20px);\n }\n\n .tyk-col--offset-lg-11 {\n margin-inline-start: 91.6666666667%;\n }\n\n .tyk-col--lg-12 {\n flex-basis: calc(100% - 20px);\n max-inline-size: calc(100% - 20px);\n }\n\n .tyk-col--offset-lg-12 {\n margin-inline-start: 100%;\n }\n}\n\n@media screen and (1024px <= width < 1248px) {\n .tyk-col--md-0 {\n flex-basis: calc(0% - 20px);\n max-inline-size: calc(0% - 20px);\n }\n\n .tyk-col--offset-md-0 {\n margin-inline-start: 0%;\n }\n\n .tyk-col--md-1 {\n flex-basis: calc(8.3333333333% - 20px);\n max-inline-size: calc(8.3333333333% - 20px);\n }\n\n .tyk-col--offset-md-1 {\n margin-inline-start: 8.3333333333%;\n }\n\n .tyk-col--md-2 {\n flex-basis: calc(16.6666666667% - 20px);\n max-inline-size: calc(16.6666666667% - 20px);\n }\n\n .tyk-col--offset-md-2 {\n margin-inline-start: 16.6666666667%;\n }\n\n .tyk-col--md-3 {\n flex-basis: calc(25% - 20px);\n max-inline-size: calc(25% - 20px);\n }\n\n .tyk-col--offset-md-3 {\n margin-inline-start: 25%;\n }\n\n .tyk-col--md-4 {\n flex-basis: calc(33.3333333333% - 20px);\n max-inline-size: calc(33.3333333333% - 20px);\n }\n\n .tyk-col--offset-md-4 {\n margin-inline-start: 33.3333333333%;\n }\n\n .tyk-col--md-5 {\n flex-basis: calc(41.6666666667% - 20px);\n max-inline-size: calc(41.6666666667% - 20px);\n }\n\n .tyk-col--offset-md-5 {\n margin-inline-start: 41.6666666667%;\n }\n\n .tyk-col--md-6 {\n flex-basis: calc(50% - 20px);\n max-inline-size: calc(50% - 20px);\n }\n\n .tyk-col--offset-md-6 {\n margin-inline-start: 50%;\n }\n\n .tyk-col--md-7 {\n flex-basis: calc(58.3333333333% - 20px);\n max-inline-size: calc(58.3333333333% - 20px);\n }\n\n .tyk-col--offset-md-7 {\n margin-inline-start: 58.3333333333%;\n }\n\n .tyk-col--md-8 {\n flex-basis: calc(66.6666666667% - 20px);\n max-inline-size: calc(66.6666666667% - 20px);\n }\n\n .tyk-col--offset-md-8 {\n margin-inline-start: 66.6666666667%;\n }\n\n .tyk-col--md-9 {\n flex-basis: calc(75% - 20px);\n max-inline-size: calc(75% - 20px);\n }\n\n .tyk-col--offset-md-9 {\n margin-inline-start: 75%;\n }\n\n .tyk-col--md-10 {\n flex-basis: calc(83.3333333333% - 20px);\n max-inline-size: calc(83.3333333333% - 20px);\n }\n\n .tyk-col--offset-md-10 {\n margin-inline-start: 83.3333333333%;\n }\n\n .tyk-col--md-11 {\n flex-basis: calc(91.6666666667% - 20px);\n max-inline-size: calc(91.6666666667% - 20px);\n }\n\n .tyk-col--offset-md-11 {\n margin-inline-start: 91.6666666667%;\n }\n\n .tyk-col--md-12 {\n flex-basis: calc(100% - 20px);\n max-inline-size: calc(100% - 20px);\n }\n\n .tyk-col--offset-md-12 {\n margin-inline-start: 100%;\n }\n}\n\n@media screen and (768px < width < 1024px) {\n .tyk-col--sm-0 {\n flex-basis: calc(0% - 20px);\n max-inline-size: calc(0% - 20px);\n }\n\n .tyk-col--offset-sm-0 {\n margin-inline-start: 0%;\n }\n\n .tyk-col--sm-1 {\n flex-basis: calc(8.3333333333% - 20px);\n max-inline-size: calc(8.3333333333% - 20px);\n }\n\n .tyk-col--offset-sm-1 {\n margin-inline-start: 8.3333333333%;\n }\n\n .tyk-col--sm-2 {\n flex-basis: calc(16.6666666667% - 20px);\n max-inline-size: calc(16.6666666667% - 20px);\n }\n\n .tyk-col--offset-sm-2 {\n margin-inline-start: 16.6666666667%;\n }\n\n .tyk-col--sm-3 {\n flex-basis: calc(25% - 20px);\n max-inline-size: calc(25% - 20px);\n }\n\n .tyk-col--offset-sm-3 {\n margin-inline-start: 25%;\n }\n\n .tyk-col--sm-4 {\n flex-basis: calc(33.3333333333% - 20px);\n max-inline-size: calc(33.3333333333% - 20px);\n }\n\n .tyk-col--offset-sm-4 {\n margin-inline-start: 33.3333333333%;\n }\n\n .tyk-col--sm-5 {\n flex-basis: calc(41.6666666667% - 20px);\n max-inline-size: calc(41.6666666667% - 20px);\n }\n\n .tyk-col--offset-sm-5 {\n margin-inline-start: 41.6666666667%;\n }\n\n .tyk-col--sm-6 {\n flex-basis: calc(50% - 20px);\n max-inline-size: calc(50% - 20px);\n }\n\n .tyk-col--offset-sm-6 {\n margin-inline-start: 50%;\n }\n\n .tyk-col--sm-7 {\n flex-basis: calc(58.3333333333% - 20px);\n max-inline-size: calc(58.3333333333% - 20px);\n }\n\n .tyk-col--offset-sm-7 {\n margin-inline-start: 58.3333333333%;\n }\n\n .tyk-col--sm-8 {\n flex-basis: calc(66.6666666667% - 20px);\n max-inline-size: calc(66.6666666667% - 20px);\n }\n\n .tyk-col--offset-sm-8 {\n margin-inline-start: 66.6666666667%;\n }\n\n .tyk-col--sm-9 {\n flex-basis: calc(75% - 20px);\n max-inline-size: calc(75% - 20px);\n }\n\n .tyk-col--offset-sm-9 {\n margin-inline-start: 75%;\n }\n\n .tyk-col--sm-10 {\n flex-basis: calc(83.3333333333% - 20px);\n max-inline-size: calc(83.3333333333% - 20px);\n }\n\n .tyk-col--offset-sm-10 {\n margin-inline-start: 83.3333333333%;\n }\n\n .tyk-col--sm-11 {\n flex-basis: calc(91.6666666667% - 20px);\n max-inline-size: calc(91.6666666667% - 20px);\n }\n\n .tyk-col--offset-sm-11 {\n margin-inline-start: 91.6666666667%;\n }\n\n .tyk-col--sm-12 {\n flex-basis: calc(100% - 20px);\n max-inline-size: calc(100% - 20px);\n }\n\n .tyk-col--offset-sm-12 {\n margin-inline-start: 100%;\n }\n}\n\n@media screen and (width <= 768px) {\n .tyk-col--xs-0 {\n flex-basis: calc(0% - 20px);\n max-inline-size: calc(0% - 20px);\n }\n\n .tyk-col--offset-xs-0 {\n margin-inline-start: 0%;\n }\n\n .tyk-col--xs-1 {\n flex-basis: calc(8.3333333333% - 20px);\n max-inline-size: calc(8.3333333333% - 20px);\n }\n\n .tyk-col--offset-xs-1 {\n margin-inline-start: 8.3333333333%;\n }\n\n .tyk-col--xs-2 {\n flex-basis: calc(16.6666666667% - 20px);\n max-inline-size: calc(16.6666666667% - 20px);\n }\n\n .tyk-col--offset-xs-2 {\n margin-inline-start: 16.6666666667%;\n }\n\n .tyk-col--xs-3 {\n flex-basis: calc(25% - 20px);\n max-inline-size: calc(25% - 20px);\n }\n\n .tyk-col--offset-xs-3 {\n margin-inline-start: 25%;\n }\n\n .tyk-col--xs-4 {\n flex-basis: calc(33.3333333333% - 20px);\n max-inline-size: calc(33.3333333333% - 20px);\n }\n\n .tyk-col--offset-xs-4 {\n margin-inline-start: 33.3333333333%;\n }\n\n .tyk-col--xs-5 {\n flex-basis: calc(41.6666666667% - 20px);\n max-inline-size: calc(41.6666666667% - 20px);\n }\n\n .tyk-col--offset-xs-5 {\n margin-inline-start: 41.6666666667%;\n }\n\n .tyk-col--xs-6 {\n flex-basis: calc(50% - 20px);\n max-inline-size: calc(50% - 20px);\n }\n\n .tyk-col--offset-xs-6 {\n margin-inline-start: 50%;\n }\n\n .tyk-col--xs-7 {\n flex-basis: calc(58.3333333333% - 20px);\n max-inline-size: calc(58.3333333333% - 20px);\n }\n\n .tyk-col--offset-xs-7 {\n margin-inline-start: 58.3333333333%;\n }\n\n .tyk-col--xs-8 {\n flex-basis: calc(66.6666666667% - 20px);\n max-inline-size: calc(66.6666666667% - 20px);\n }\n\n .tyk-col--offset-xs-8 {\n margin-inline-start: 66.6666666667%;\n }\n\n .tyk-col--xs-9 {\n flex-basis: calc(75% - 20px);\n max-inline-size: calc(75% - 20px);\n }\n\n .tyk-col--offset-xs-9 {\n margin-inline-start: 75%;\n }\n\n .tyk-col--xs-10 {\n flex-basis: calc(83.3333333333% - 20px);\n max-inline-size: calc(83.3333333333% - 20px);\n }\n\n .tyk-col--offset-xs-10 {\n margin-inline-start: 83.3333333333%;\n }\n\n .tyk-col--xs-11 {\n flex-basis: calc(91.6666666667% - 20px);\n max-inline-size: calc(91.6666666667% - 20px);\n }\n\n .tyk-col--offset-xs-11 {\n margin-inline-start: 91.6666666667%;\n }\n\n .tyk-col--xs-12 {\n flex-basis: calc(100% - 20px);\n max-inline-size: calc(100% - 20px);\n }\n\n .tyk-col--offset-xs-12 {\n margin-inline-start: 100%;\n }\n}\n","@font-face {\n font-family: Inter-Bold;\n src: url('../fonts/inter/Inter-Bold.woff2') format('woff2'),\n url('../fonts/inter/Inter-Bold.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: Inter-Light;\n src: url('../fonts/inter/Inter-Light.woff2') format('woff2'),\n url('../fonts/inter/Inter-Light.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: Inter-Medium;\n src: url('../fonts/inter/Inter-Medium.woff2') format('woff2'),\n url('../fonts/inter/Inter-Medium.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: Inter-Regular;\n src: url('../fonts/inter/Inter-Regular.woff2') format('woff2'),\n url('../fonts/inter/Inter-Regular.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: Inter-SemiBold;\n src: url('../fonts/inter/Inter-SemiBold.woff2') format('woff2'),\n url('../fonts/inter/Inter-SemiBold.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: OpenSans-Bold;\n src: url('../fonts/OpenSans-Bold.woff2') format('woff2'),\n url('../fonts/OpenSans-Bold.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: OpenSans-SemiBold;\n src: url('../fonts/OpenSans-SemiBold.woff2') format('woff2'),\n url('../fonts/OpenSans-SemiBold.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: OpenSans-Regular;\n src: url('../fonts/OpenSans-Regular.woff2') format('woff2'),\n url('../fonts/OpenSans-Regular.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'smoolthan_bold';\n src: url('../fonts/smoolthan_bold-webfont.woff2') format('woff2'),\n url('../fonts/smoolthan_bold-webfont.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'smoolthan_medium';\n src: url('../fonts/smoolthan_medium-webfont.woff2') format('woff2'),\n url('../fonts/smoolthan_medium-webfont.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'smoolthan_regular';\n src: url('../fonts/smoolthan_regular-webfont.woff2') format('woff2'),\n url('../fonts/smoolthan_regular-webfont.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: tykon;\n src: url('../fonts/tykon.woff2') format('woff2'),\n url('../fonts/tykon.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n","/*!\n * Font Awesome Pro 6.5.2 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license (Commercial License)\n * Copyright 2024 Fonticons, Inc.\n */\n:root, :host {\n --fa-style-family-classic: 'Font Awesome 6 Pro';\n --fa-font-light: normal 300 1em/1 'Font Awesome 6 Pro'; }\n\n@font-face {\n font-family: 'Font Awesome 6 Pro';\n font-style: normal;\n font-weight: 300;\n font-display: block;\n src: url(\"../../fonts/fontawesome/fa-light-300.woff2\") format(\"woff2\"), url(\"../../fonts/fontawesome/fa-light-300.ttf\") format(\"truetype\"); }\n\n.fal,\n.fa-light {\n font-weight: 300; }\n","/*!\n * Font Awesome Pro 6.5.2 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license (Commercial License)\n * Copyright 2024 Fonticons, Inc.\n */\n:root, :host {\n --fa-style-family-classic: 'Font Awesome 6 Pro';\n --fa-font-solid: normal 900 1em/1 'Font Awesome 6 Pro'; }\n\n@font-face {\n font-family: 'Font Awesome 6 Pro';\n font-style: normal;\n font-weight: 900;\n font-display: block;\n src: url(\"../../fonts/fontawesome/fa-solid-900.woff2\") format(\"woff2\"), url(\"../../fonts/fontawesome/fa-solid-900.ttf\") format(\"truetype\"); }\n\n.fas,\n.fa-solid {\n font-weight: 900; }\n","/*!\n * Font Awesome Pro 6.5.2 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license (Commercial License)\n * Copyright 2024 Fonticons, Inc.\n */\n.fa {\n font-family: var(--fa-style-family, \"Font Awesome 6 Pro\");\n font-weight: var(--fa-style, 900); }\n\n.fa,\n.fa-classic,\n.fa-sharp,\n.fas,\n.fa-solid,\n.far,\n.fa-regular,\n.fasr,\n.fal,\n.fa-light,\n.fasl,\n.fat,\n.fa-thin,\n.fast,\n.fad,\n.fa-duotone,\n.fass,\n.fa-sharp-solid,\n.fab,\n.fa-brands {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n display: var(--fa-display, inline-block);\n font-style: normal;\n font-variant: normal;\n line-height: 1;\n text-rendering: auto; }\n\n.fas,\n.fa-classic,\n.fa-solid,\n.far,\n.fa-regular,\n.fal,\n.fa-light,\n.fat,\n.fa-thin {\n font-family: 'Font Awesome 6 Pro'; }\n\n.fab,\n.fa-brands {\n font-family: 'Font Awesome 6 Brands'; }\n\n.fad,\n.fa-classic.fa-duotone,\n.fa-duotone {\n font-family: 'Font Awesome 6 Duotone'; }\n\n.fass,\n.fasr,\n.fasl,\n.fast,\n.fa-sharp {\n font-family: 'Font Awesome 6 Sharp'; }\n\n.fass,\n.fa-sharp {\n font-weight: 900; }\n\n.fa-1x {\n font-size: 1em; }\n\n.fa-2x {\n font-size: 2em; }\n\n.fa-3x {\n font-size: 3em; }\n\n.fa-4x {\n font-size: 4em; }\n\n.fa-5x {\n font-size: 5em; }\n\n.fa-6x {\n font-size: 6em; }\n\n.fa-7x {\n font-size: 7em; }\n\n.fa-8x {\n font-size: 8em; }\n\n.fa-9x {\n font-size: 9em; }\n\n.fa-10x {\n font-size: 10em; }\n\n.fa-2xs {\n font-size: 0.625em;\n line-height: 0.1em;\n vertical-align: 0.225em; }\n\n.fa-xs {\n font-size: 0.75em;\n line-height: 0.08333em;\n vertical-align: 0.125em; }\n\n.fa-sm {\n font-size: 0.875em;\n line-height: 0.07143em;\n vertical-align: 0.05357em; }\n\n.fa-lg {\n font-size: 1.25em;\n line-height: 0.05em;\n vertical-align: -0.075em; }\n\n.fa-xl {\n font-size: 1.5em;\n line-height: 0.04167em;\n vertical-align: -0.125em; }\n\n.fa-2xl {\n font-size: 2em;\n line-height: 0.03125em;\n vertical-align: -0.1875em; }\n\n.fa-fw {\n text-align: center;\n width: 1.25em; }\n\n.fa-ul {\n list-style-type: none;\n margin-left: var(--fa-li-margin, 2.5em);\n padding-left: 0; }\n .fa-ul > li {\n position: relative; }\n\n.fa-li {\n left: calc(var(--fa-li-width, 2em) * -1);\n position: absolute;\n text-align: center;\n width: var(--fa-li-width, 2em);\n line-height: inherit; }\n\n.fa-border {\n border-color: var(--fa-border-color, #eee);\n border-radius: var(--fa-border-radius, 0.1em);\n border-style: var(--fa-border-style, solid);\n border-width: var(--fa-border-width, 0.08em);\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); }\n\n.fa-pull-left {\n float: left;\n margin-right: var(--fa-pull-margin, 0.3em); }\n\n.fa-pull-right {\n float: right;\n margin-left: var(--fa-pull-margin, 0.3em); }\n\n.fa-beat {\n -webkit-animation-name: fa-beat;\n animation-name: fa-beat;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out); }\n\n.fa-bounce {\n -webkit-animation-name: fa-bounce;\n animation-name: fa-bounce;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); }\n\n.fa-fade {\n -webkit-animation-name: fa-fade;\n animation-name: fa-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); }\n\n.fa-beat-fade {\n -webkit-animation-name: fa-beat-fade;\n animation-name: fa-beat-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); }\n\n.fa-flip {\n -webkit-animation-name: fa-flip;\n animation-name: fa-flip;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out); }\n\n.fa-shake {\n -webkit-animation-name: fa-shake;\n animation-name: fa-shake;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear); }\n\n.fa-spin {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 2s);\n animation-duration: var(--fa-animation-duration, 2s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear); }\n\n.fa-spin-reverse {\n --fa-animation-direction: reverse; }\n\n.fa-pulse,\n.fa-spin-pulse {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, steps(8));\n animation-timing-function: var(--fa-animation-timing, steps(8)); }\n\n@media (prefers-reduced-motion: reduce) {\n .fa-beat,\n .fa-bounce,\n .fa-fade,\n .fa-beat-fade,\n .fa-flip,\n .fa-pulse,\n .fa-shake,\n .fa-spin,\n .fa-spin-pulse {\n -webkit-animation-delay: -1ms;\n animation-delay: -1ms;\n -webkit-animation-duration: 1ms;\n animation-duration: 1ms;\n -webkit-animation-iteration-count: 1;\n animation-iteration-count: 1;\n -webkit-transition-delay: 0s;\n transition-delay: 0s;\n -webkit-transition-duration: 0s;\n transition-duration: 0s; } }\n\n@-webkit-keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1); }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25)); } }\n\n@keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1); }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25)); } }\n\n@-webkit-keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); } }\n\n@keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); } }\n\n@-webkit-keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4); } }\n\n@keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4); } }\n\n@-webkit-keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1); }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125)); } }\n\n@keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1); }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125)); } }\n\n@-webkit-keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } }\n\n@keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } }\n\n@-webkit-keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg); }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg); }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg); }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg); }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg); }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg); }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg); }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg); }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); } }\n\n@keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg); }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg); }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg); }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg); }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg); }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg); }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg); }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg); }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); } }\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n.fa-rotate-90 {\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg); }\n\n.fa-rotate-180 {\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg); }\n\n.fa-rotate-270 {\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg); }\n\n.fa-flip-horizontal {\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1); }\n\n.fa-flip-vertical {\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1); }\n\n.fa-flip-both,\n.fa-flip-horizontal.fa-flip-vertical {\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1); }\n\n.fa-rotate-by {\n -webkit-transform: rotate(var(--fa-rotate-angle, 0));\n transform: rotate(var(--fa-rotate-angle, 0)); }\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n line-height: 2em;\n position: relative;\n vertical-align: middle;\n width: 2.5em; }\n\n.fa-stack-1x,\n.fa-stack-2x {\n left: 0;\n position: absolute;\n text-align: center;\n width: 100%;\n z-index: var(--fa-stack-z-index, auto); }\n\n.fa-stack-1x {\n line-height: inherit; }\n\n.fa-stack-2x {\n font-size: 2em; }\n\n.fa-inverse {\n color: var(--fa-inverse, #fff); }\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\nreaders do not read off random characters that represent icons */\n\n.fa-0::before {\n content: \"\\30\"; }\n\n.fa-1::before {\n content: \"\\31\"; }\n\n.fa-2::before {\n content: \"\\32\"; }\n\n.fa-3::before {\n content: \"\\33\"; }\n\n.fa-4::before {\n content: \"\\34\"; }\n\n.fa-5::before {\n content: \"\\35\"; }\n\n.fa-6::before {\n content: \"\\36\"; }\n\n.fa-7::before {\n content: \"\\37\"; }\n\n.fa-8::before {\n content: \"\\38\"; }\n\n.fa-9::before {\n content: \"\\39\"; }\n\n.fa-fill-drip::before {\n content: \"\\f576\"; }\n\n.fa-arrows-to-circle::before {\n content: \"\\e4bd\"; }\n\n.fa-circle-chevron-right::before {\n content: \"\\f138\"; }\n\n.fa-chevron-circle-right::before {\n content: \"\\f138\"; }\n\n.fa-wagon-covered::before {\n content: \"\\f8ee\"; }\n\n.fa-line-height::before {\n content: \"\\f871\"; }\n\n.fa-bagel::before {\n content: \"\\e3d7\"; }\n\n.fa-transporter-7::before {\n content: \"\\e2a8\"; }\n\n.fa-at::before {\n content: \"\\40\"; }\n\n.fa-rectangles-mixed::before {\n content: \"\\e323\"; }\n\n.fa-phone-arrow-up-right::before {\n content: \"\\e224\"; }\n\n.fa-phone-arrow-up::before {\n content: \"\\e224\"; }\n\n.fa-phone-outgoing::before {\n content: \"\\e224\"; }\n\n.fa-trash-can::before {\n content: \"\\f2ed\"; }\n\n.fa-trash-alt::before {\n content: \"\\f2ed\"; }\n\n.fa-circle-l::before {\n content: \"\\e114\"; }\n\n.fa-head-side-goggles::before {\n content: \"\\f6ea\"; }\n\n.fa-head-vr::before {\n content: \"\\f6ea\"; }\n\n.fa-text-height::before {\n content: \"\\f034\"; }\n\n.fa-user-xmark::before {\n content: \"\\f235\"; }\n\n.fa-user-times::before {\n content: \"\\f235\"; }\n\n.fa-face-hand-yawn::before {\n content: \"\\e379\"; }\n\n.fa-gauge-simple-min::before {\n content: \"\\f62d\"; }\n\n.fa-tachometer-slowest::before {\n content: \"\\f62d\"; }\n\n.fa-stethoscope::before {\n content: \"\\f0f1\"; }\n\n.fa-coffin::before {\n content: \"\\f6c6\"; }\n\n.fa-message::before {\n content: \"\\f27a\"; }\n\n.fa-comment-alt::before {\n content: \"\\f27a\"; }\n\n.fa-salad::before {\n content: \"\\f81e\"; }\n\n.fa-bowl-salad::before {\n content: \"\\f81e\"; }\n\n.fa-info::before {\n content: \"\\f129\"; }\n\n.fa-robot-astromech::before {\n content: \"\\e2d2\"; }\n\n.fa-ring-diamond::before {\n content: \"\\e5ab\"; }\n\n.fa-fondue-pot::before {\n content: \"\\e40d\"; }\n\n.fa-theta::before {\n content: \"\\f69e\"; }\n\n.fa-face-hand-peeking::before {\n content: \"\\e481\"; }\n\n.fa-square-user::before {\n content: \"\\e283\"; }\n\n.fa-down-left-and-up-right-to-center::before {\n content: \"\\f422\"; }\n\n.fa-compress-alt::before {\n content: \"\\f422\"; }\n\n.fa-explosion::before {\n content: \"\\e4e9\"; }\n\n.fa-file-lines::before {\n content: \"\\f15c\"; }\n\n.fa-file-alt::before {\n content: \"\\f15c\"; }\n\n.fa-file-text::before {\n content: \"\\f15c\"; }\n\n.fa-wave-square::before {\n content: \"\\f83e\"; }\n\n.fa-ring::before {\n content: \"\\f70b\"; }\n\n.fa-building-un::before {\n content: \"\\e4d9\"; }\n\n.fa-dice-three::before {\n content: \"\\f527\"; }\n\n.fa-tire-pressure-warning::before {\n content: \"\\f633\"; }\n\n.fa-wifi-fair::before {\n content: \"\\f6ab\"; }\n\n.fa-wifi-2::before {\n content: \"\\f6ab\"; }\n\n.fa-calendar-days::before {\n content: \"\\f073\"; }\n\n.fa-calendar-alt::before {\n content: \"\\f073\"; }\n\n.fa-mp3-player::before {\n content: \"\\f8ce\"; }\n\n.fa-anchor-circle-check::before {\n content: \"\\e4aa\"; }\n\n.fa-tally-4::before {\n content: \"\\e297\"; }\n\n.fa-rectangle-history::before {\n content: \"\\e4a2\"; }\n\n.fa-building-circle-arrow-right::before {\n content: \"\\e4d1\"; }\n\n.fa-volleyball::before {\n content: \"\\f45f\"; }\n\n.fa-volleyball-ball::before {\n content: \"\\f45f\"; }\n\n.fa-sun-haze::before {\n content: \"\\f765\"; }\n\n.fa-text-size::before {\n content: \"\\f894\"; }\n\n.fa-ufo::before {\n content: \"\\e047\"; }\n\n.fa-fork::before {\n content: \"\\f2e3\"; }\n\n.fa-utensil-fork::before {\n content: \"\\f2e3\"; }\n\n.fa-arrows-up-to-line::before {\n content: \"\\e4c2\"; }\n\n.fa-mobile-signal::before {\n content: \"\\e1ef\"; }\n\n.fa-barcode-scan::before {\n content: \"\\f465\"; }\n\n.fa-sort-down::before {\n content: \"\\f0dd\"; }\n\n.fa-sort-desc::before {\n content: \"\\f0dd\"; }\n\n.fa-folder-arrow-down::before {\n content: \"\\e053\"; }\n\n.fa-folder-download::before {\n content: \"\\e053\"; }\n\n.fa-circle-minus::before {\n content: \"\\f056\"; }\n\n.fa-minus-circle::before {\n content: \"\\f056\"; }\n\n.fa-face-icicles::before {\n content: \"\\e37c\"; }\n\n.fa-shovel::before {\n content: \"\\f713\"; }\n\n.fa-door-open::before {\n content: \"\\f52b\"; }\n\n.fa-films::before {\n content: \"\\e17a\"; }\n\n.fa-right-from-bracket::before {\n content: \"\\f2f5\"; }\n\n.fa-sign-out-alt::before {\n content: \"\\f2f5\"; }\n\n.fa-face-glasses::before {\n content: \"\\e377\"; }\n\n.fa-nfc::before {\n content: \"\\e1f7\"; }\n\n.fa-atom::before {\n content: \"\\f5d2\"; }\n\n.fa-soap::before {\n content: \"\\e06e\"; }\n\n.fa-icons::before {\n content: \"\\f86d\"; }\n\n.fa-heart-music-camera-bolt::before {\n content: \"\\f86d\"; }\n\n.fa-microphone-lines-slash::before {\n content: \"\\f539\"; }\n\n.fa-microphone-alt-slash::before {\n content: \"\\f539\"; }\n\n.fa-closed-captioning-slash::before {\n content: \"\\e135\"; }\n\n.fa-calculator-simple::before {\n content: \"\\f64c\"; }\n\n.fa-calculator-alt::before {\n content: \"\\f64c\"; }\n\n.fa-bridge-circle-check::before {\n content: \"\\e4c9\"; }\n\n.fa-sliders-up::before {\n content: \"\\f3f1\"; }\n\n.fa-sliders-v::before {\n content: \"\\f3f1\"; }\n\n.fa-location-minus::before {\n content: \"\\f609\"; }\n\n.fa-map-marker-minus::before {\n content: \"\\f609\"; }\n\n.fa-pump-medical::before {\n content: \"\\e06a\"; }\n\n.fa-fingerprint::before {\n content: \"\\f577\"; }\n\n.fa-ski-boot::before {\n content: \"\\e3cc\"; }\n\n.fa-standard-definition::before {\n content: \"\\e28a\"; }\n\n.fa-rectangle-sd::before {\n content: \"\\e28a\"; }\n\n.fa-h1::before {\n content: \"\\f313\"; }\n\n.fa-hand-point-right::before {\n content: \"\\f0a4\"; }\n\n.fa-magnifying-glass-location::before {\n content: \"\\f689\"; }\n\n.fa-search-location::before {\n content: \"\\f689\"; }\n\n.fa-message-bot::before {\n content: \"\\e3b8\"; }\n\n.fa-forward-step::before {\n content: \"\\f051\"; }\n\n.fa-step-forward::before {\n content: \"\\f051\"; }\n\n.fa-face-smile-beam::before {\n content: \"\\f5b8\"; }\n\n.fa-smile-beam::before {\n content: \"\\f5b8\"; }\n\n.fa-light-ceiling::before {\n content: \"\\e016\"; }\n\n.fa-message-exclamation::before {\n content: \"\\f4a5\"; }\n\n.fa-comment-alt-exclamation::before {\n content: \"\\f4a5\"; }\n\n.fa-bowl-scoop::before {\n content: \"\\e3de\"; }\n\n.fa-bowl-shaved-ice::before {\n content: \"\\e3de\"; }\n\n.fa-square-x::before {\n content: \"\\e286\"; }\n\n.fa-building-memo::before {\n content: \"\\e61e\"; }\n\n.fa-utility-pole-double::before {\n content: \"\\e2c4\"; }\n\n.fa-flag-checkered::before {\n content: \"\\f11e\"; }\n\n.fa-chevrons-up::before {\n content: \"\\f325\"; }\n\n.fa-chevron-double-up::before {\n content: \"\\f325\"; }\n\n.fa-football::before {\n content: \"\\f44e\"; }\n\n.fa-football-ball::before {\n content: \"\\f44e\"; }\n\n.fa-user-vneck::before {\n content: \"\\e461\"; }\n\n.fa-school-circle-exclamation::before {\n content: \"\\e56c\"; }\n\n.fa-crop::before {\n content: \"\\f125\"; }\n\n.fa-angles-down::before {\n content: \"\\f103\"; }\n\n.fa-angle-double-down::before {\n content: \"\\f103\"; }\n\n.fa-users-rectangle::before {\n content: \"\\e594\"; }\n\n.fa-people-roof::before {\n content: \"\\e537\"; }\n\n.fa-square-arrow-right::before {\n content: \"\\f33b\"; }\n\n.fa-arrow-square-right::before {\n content: \"\\f33b\"; }\n\n.fa-location-plus::before {\n content: \"\\f60a\"; }\n\n.fa-map-marker-plus::before {\n content: \"\\f60a\"; }\n\n.fa-lightbulb-exclamation-on::before {\n content: \"\\e1ca\"; }\n\n.fa-people-line::before {\n content: \"\\e534\"; }\n\n.fa-beer-mug-empty::before {\n content: \"\\f0fc\"; }\n\n.fa-beer::before {\n content: \"\\f0fc\"; }\n\n.fa-crate-empty::before {\n content: \"\\e151\"; }\n\n.fa-diagram-predecessor::before {\n content: \"\\e477\"; }\n\n.fa-transporter::before {\n content: \"\\e042\"; }\n\n.fa-calendar-circle-user::before {\n content: \"\\e471\"; }\n\n.fa-arrow-up-long::before {\n content: \"\\f176\"; }\n\n.fa-long-arrow-up::before {\n content: \"\\f176\"; }\n\n.fa-person-carry-box::before {\n content: \"\\f4cf\"; }\n\n.fa-person-carry::before {\n content: \"\\f4cf\"; }\n\n.fa-fire-flame-simple::before {\n content: \"\\f46a\"; }\n\n.fa-burn::before {\n content: \"\\f46a\"; }\n\n.fa-person::before {\n content: \"\\f183\"; }\n\n.fa-male::before {\n content: \"\\f183\"; }\n\n.fa-laptop::before {\n content: \"\\f109\"; }\n\n.fa-file-csv::before {\n content: \"\\f6dd\"; }\n\n.fa-menorah::before {\n content: \"\\f676\"; }\n\n.fa-union::before {\n content: \"\\f6a2\"; }\n\n.fa-chevrons-left::before {\n content: \"\\f323\"; }\n\n.fa-chevron-double-left::before {\n content: \"\\f323\"; }\n\n.fa-circle-heart::before {\n content: \"\\f4c7\"; }\n\n.fa-heart-circle::before {\n content: \"\\f4c7\"; }\n\n.fa-truck-plane::before {\n content: \"\\e58f\"; }\n\n.fa-record-vinyl::before {\n content: \"\\f8d9\"; }\n\n.fa-bring-forward::before {\n content: \"\\f856\"; }\n\n.fa-square-p::before {\n content: \"\\e279\"; }\n\n.fa-face-grin-stars::before {\n content: \"\\f587\"; }\n\n.fa-grin-stars::before {\n content: \"\\f587\"; }\n\n.fa-sigma::before {\n content: \"\\f68b\"; }\n\n.fa-camera-movie::before {\n content: \"\\f8a9\"; }\n\n.fa-bong::before {\n content: \"\\f55c\"; }\n\n.fa-clarinet::before {\n content: \"\\f8ad\"; }\n\n.fa-truck-flatbed::before {\n content: \"\\e2b6\"; }\n\n.fa-spaghetti-monster-flying::before {\n content: \"\\f67b\"; }\n\n.fa-pastafarianism::before {\n content: \"\\f67b\"; }\n\n.fa-arrow-down-up-across-line::before {\n content: \"\\e4af\"; }\n\n.fa-arrows-rotate-reverse::before {\n content: \"\\e630\"; }\n\n.fa-leaf-heart::before {\n content: \"\\f4cb\"; }\n\n.fa-house-building::before {\n content: \"\\e1b1\"; }\n\n.fa-cheese-swiss::before {\n content: \"\\f7f0\"; }\n\n.fa-spoon::before {\n content: \"\\f2e5\"; }\n\n.fa-utensil-spoon::before {\n content: \"\\f2e5\"; }\n\n.fa-jar-wheat::before {\n content: \"\\e517\"; }\n\n.fa-envelopes-bulk::before {\n content: \"\\f674\"; }\n\n.fa-mail-bulk::before {\n content: \"\\f674\"; }\n\n.fa-file-circle-exclamation::before {\n content: \"\\e4eb\"; }\n\n.fa-bow-arrow::before {\n content: \"\\f6b9\"; }\n\n.fa-cart-xmark::before {\n content: \"\\e0dd\"; }\n\n.fa-hexagon-xmark::before {\n content: \"\\f2ee\"; }\n\n.fa-times-hexagon::before {\n content: \"\\f2ee\"; }\n\n.fa-xmark-hexagon::before {\n content: \"\\f2ee\"; }\n\n.fa-circle-h::before {\n content: \"\\f47e\"; }\n\n.fa-hospital-symbol::before {\n content: \"\\f47e\"; }\n\n.fa-merge::before {\n content: \"\\e526\"; }\n\n.fa-pager::before {\n content: \"\\f815\"; }\n\n.fa-cart-minus::before {\n content: \"\\e0db\"; }\n\n.fa-address-book::before {\n content: \"\\f2b9\"; }\n\n.fa-contact-book::before {\n content: \"\\f2b9\"; }\n\n.fa-pan-frying::before {\n content: \"\\e42c\"; }\n\n.fa-grid::before {\n content: \"\\e195\"; }\n\n.fa-grid-3::before {\n content: \"\\e195\"; }\n\n.fa-football-helmet::before {\n content: \"\\f44f\"; }\n\n.fa-hand-love::before {\n content: \"\\e1a5\"; }\n\n.fa-trees::before {\n content: \"\\f724\"; }\n\n.fa-strikethrough::before {\n content: \"\\f0cc\"; }\n\n.fa-page::before {\n content: \"\\e428\"; }\n\n.fa-k::before {\n content: \"\\4b\"; }\n\n.fa-diagram-previous::before {\n content: \"\\e478\"; }\n\n.fa-gauge-min::before {\n content: \"\\f628\"; }\n\n.fa-tachometer-alt-slowest::before {\n content: \"\\f628\"; }\n\n.fa-folder-grid::before {\n content: \"\\e188\"; }\n\n.fa-eggplant::before {\n content: \"\\e16c\"; }\n\n.fa-excavator::before {\n content: \"\\e656\"; }\n\n.fa-ram::before {\n content: \"\\f70a\"; }\n\n.fa-landmark-flag::before {\n content: \"\\e51c\"; }\n\n.fa-lips::before {\n content: \"\\f600\"; }\n\n.fa-pencil::before {\n content: \"\\f303\"; }\n\n.fa-pencil-alt::before {\n content: \"\\f303\"; }\n\n.fa-backward::before {\n content: \"\\f04a\"; }\n\n.fa-caret-right::before {\n content: \"\\f0da\"; }\n\n.fa-comments::before {\n content: \"\\f086\"; }\n\n.fa-paste::before {\n content: \"\\f0ea\"; }\n\n.fa-file-clipboard::before {\n content: \"\\f0ea\"; }\n\n.fa-desktop-arrow-down::before {\n content: \"\\e155\"; }\n\n.fa-code-pull-request::before {\n content: \"\\e13c\"; }\n\n.fa-pumpkin::before {\n content: \"\\f707\"; }\n\n.fa-clipboard-list::before {\n content: \"\\f46d\"; }\n\n.fa-pen-field::before {\n content: \"\\e211\"; }\n\n.fa-blueberries::before {\n content: \"\\e2e8\"; }\n\n.fa-truck-ramp-box::before {\n content: \"\\f4de\"; }\n\n.fa-truck-loading::before {\n content: \"\\f4de\"; }\n\n.fa-note::before {\n content: \"\\e1ff\"; }\n\n.fa-arrow-down-to-square::before {\n content: \"\\e096\"; }\n\n.fa-user-check::before {\n content: \"\\f4fc\"; }\n\n.fa-cloud-xmark::before {\n content: \"\\e35f\"; }\n\n.fa-vial-virus::before {\n content: \"\\e597\"; }\n\n.fa-book-blank::before {\n content: \"\\f5d9\"; }\n\n.fa-book-alt::before {\n content: \"\\f5d9\"; }\n\n.fa-golf-flag-hole::before {\n content: \"\\e3ac\"; }\n\n.fa-message-arrow-down::before {\n content: \"\\e1db\"; }\n\n.fa-comment-alt-arrow-down::before {\n content: \"\\e1db\"; }\n\n.fa-face-unamused::before {\n content: \"\\e39f\"; }\n\n.fa-sheet-plastic::before {\n content: \"\\e571\"; }\n\n.fa-circle-9::before {\n content: \"\\e0f6\"; }\n\n.fa-blog::before {\n content: \"\\f781\"; }\n\n.fa-user-ninja::before {\n content: \"\\f504\"; }\n\n.fa-pencil-slash::before {\n content: \"\\e215\"; }\n\n.fa-bowling-pins::before {\n content: \"\\f437\"; }\n\n.fa-person-arrow-up-from-line::before {\n content: \"\\e539\"; }\n\n.fa-down-right::before {\n content: \"\\e16b\"; }\n\n.fa-scroll-torah::before {\n content: \"\\f6a0\"; }\n\n.fa-torah::before {\n content: \"\\f6a0\"; }\n\n.fa-webhook::before {\n content: \"\\e5d5\"; }\n\n.fa-blinds-open::before {\n content: \"\\f8fc\"; }\n\n.fa-fence::before {\n content: \"\\e303\"; }\n\n.fa-up::before {\n content: \"\\f357\"; }\n\n.fa-arrow-alt-up::before {\n content: \"\\f357\"; }\n\n.fa-broom-ball::before {\n content: \"\\f458\"; }\n\n.fa-quidditch::before {\n content: \"\\f458\"; }\n\n.fa-quidditch-broom-ball::before {\n content: \"\\f458\"; }\n\n.fa-drumstick::before {\n content: \"\\f6d6\"; }\n\n.fa-square-v::before {\n content: \"\\e284\"; }\n\n.fa-face-awesome::before {\n content: \"\\e409\"; }\n\n.fa-gave-dandy::before {\n content: \"\\e409\"; }\n\n.fa-dial-off::before {\n content: \"\\e162\"; }\n\n.fa-toggle-off::before {\n content: \"\\f204\"; }\n\n.fa-face-smile-horns::before {\n content: \"\\e391\"; }\n\n.fa-box-archive::before {\n content: \"\\f187\"; }\n\n.fa-archive::before {\n content: \"\\f187\"; }\n\n.fa-grapes::before {\n content: \"\\e306\"; }\n\n.fa-person-drowning::before {\n content: \"\\e545\"; }\n\n.fa-dial-max::before {\n content: \"\\e15e\"; }\n\n.fa-circle-m::before {\n content: \"\\e115\"; }\n\n.fa-calendar-image::before {\n content: \"\\e0d4\"; }\n\n.fa-circle-caret-down::before {\n content: \"\\f32d\"; }\n\n.fa-caret-circle-down::before {\n content: \"\\f32d\"; }\n\n.fa-arrow-down-9-1::before {\n content: \"\\f886\"; }\n\n.fa-sort-numeric-desc::before {\n content: \"\\f886\"; }\n\n.fa-sort-numeric-down-alt::before {\n content: \"\\f886\"; }\n\n.fa-face-grin-tongue-squint::before {\n content: \"\\f58a\"; }\n\n.fa-grin-tongue-squint::before {\n content: \"\\f58a\"; }\n\n.fa-shish-kebab::before {\n content: \"\\f821\"; }\n\n.fa-spray-can::before {\n content: \"\\f5bd\"; }\n\n.fa-alarm-snooze::before {\n content: \"\\f845\"; }\n\n.fa-scarecrow::before {\n content: \"\\f70d\"; }\n\n.fa-truck-monster::before {\n content: \"\\f63b\"; }\n\n.fa-gift-card::before {\n content: \"\\f663\"; }\n\n.fa-w::before {\n content: \"\\57\"; }\n\n.fa-code-pull-request-draft::before {\n content: \"\\e3fa\"; }\n\n.fa-square-b::before {\n content: \"\\e264\"; }\n\n.fa-elephant::before {\n content: \"\\f6da\"; }\n\n.fa-earth-africa::before {\n content: \"\\f57c\"; }\n\n.fa-globe-africa::before {\n content: \"\\f57c\"; }\n\n.fa-rainbow::before {\n content: \"\\f75b\"; }\n\n.fa-circle-notch::before {\n content: \"\\f1ce\"; }\n\n.fa-tablet-screen-button::before {\n content: \"\\f3fa\"; }\n\n.fa-tablet-alt::before {\n content: \"\\f3fa\"; }\n\n.fa-paw::before {\n content: \"\\f1b0\"; }\n\n.fa-message-question::before {\n content: \"\\e1e3\"; }\n\n.fa-cloud::before {\n content: \"\\f0c2\"; }\n\n.fa-trowel-bricks::before {\n content: \"\\e58a\"; }\n\n.fa-square-3::before {\n content: \"\\e258\"; }\n\n.fa-face-flushed::before {\n content: \"\\f579\"; }\n\n.fa-flushed::before {\n content: \"\\f579\"; }\n\n.fa-hospital-user::before {\n content: \"\\f80d\"; }\n\n.fa-microwave::before {\n content: \"\\e01b\"; }\n\n.fa-chf-sign::before {\n content: \"\\e602\"; }\n\n.fa-tent-arrow-left-right::before {\n content: \"\\e57f\"; }\n\n.fa-cart-circle-arrow-up::before {\n content: \"\\e3f0\"; }\n\n.fa-trash-clock::before {\n content: \"\\e2b0\"; }\n\n.fa-reflect-both::before {\n content: \"\\e66f\"; }\n\n.fa-gavel::before {\n content: \"\\f0e3\"; }\n\n.fa-legal::before {\n content: \"\\f0e3\"; }\n\n.fa-sprinkler-ceiling::before {\n content: \"\\e44c\"; }\n\n.fa-browsers::before {\n content: \"\\e0cb\"; }\n\n.fa-trillium::before {\n content: \"\\e588\"; }\n\n.fa-music-slash::before {\n content: \"\\f8d1\"; }\n\n.fa-truck-ramp::before {\n content: \"\\f4e0\"; }\n\n.fa-binoculars::before {\n content: \"\\f1e5\"; }\n\n.fa-microphone-slash::before {\n content: \"\\f131\"; }\n\n.fa-box-tissue::before {\n content: \"\\e05b\"; }\n\n.fa-circle-c::before {\n content: \"\\e101\"; }\n\n.fa-star-christmas::before {\n content: \"\\f7d4\"; }\n\n.fa-chart-bullet::before {\n content: \"\\e0e1\"; }\n\n.fa-motorcycle::before {\n content: \"\\f21c\"; }\n\n.fa-tree-christmas::before {\n content: \"\\f7db\"; }\n\n.fa-tire-flat::before {\n content: \"\\f632\"; }\n\n.fa-sunglasses::before {\n content: \"\\f892\"; }\n\n.fa-badge::before {\n content: \"\\f335\"; }\n\n.fa-message-pen::before {\n content: \"\\f4a4\"; }\n\n.fa-comment-alt-edit::before {\n content: \"\\f4a4\"; }\n\n.fa-message-edit::before {\n content: \"\\f4a4\"; }\n\n.fa-bell-concierge::before {\n content: \"\\f562\"; }\n\n.fa-concierge-bell::before {\n content: \"\\f562\"; }\n\n.fa-pen-ruler::before {\n content: \"\\f5ae\"; }\n\n.fa-pencil-ruler::before {\n content: \"\\f5ae\"; }\n\n.fa-file-mp3::before {\n content: \"\\e648\"; }\n\n.fa-arrow-progress::before {\n content: \"\\e5df\"; }\n\n.fa-chess-rook-piece::before {\n content: \"\\f448\"; }\n\n.fa-chess-rook-alt::before {\n content: \"\\f448\"; }\n\n.fa-square-root::before {\n content: \"\\f697\"; }\n\n.fa-album-collection-circle-plus::before {\n content: \"\\e48e\"; }\n\n.fa-people-arrows::before {\n content: \"\\e068\"; }\n\n.fa-people-arrows-left-right::before {\n content: \"\\e068\"; }\n\n.fa-sign-post::before {\n content: \"\\e624\"; }\n\n.fa-face-angry-horns::before {\n content: \"\\e368\"; }\n\n.fa-mars-and-venus-burst::before {\n content: \"\\e523\"; }\n\n.fa-tombstone::before {\n content: \"\\f720\"; }\n\n.fa-square-caret-right::before {\n content: \"\\f152\"; }\n\n.fa-caret-square-right::before {\n content: \"\\f152\"; }\n\n.fa-scissors::before {\n content: \"\\f0c4\"; }\n\n.fa-cut::before {\n content: \"\\f0c4\"; }\n\n.fa-list-music::before {\n content: \"\\f8c9\"; }\n\n.fa-sun-plant-wilt::before {\n content: \"\\e57a\"; }\n\n.fa-toilets-portable::before {\n content: \"\\e584\"; }\n\n.fa-hockey-puck::before {\n content: \"\\f453\"; }\n\n.fa-mustache::before {\n content: \"\\e5bc\"; }\n\n.fa-hyphen::before {\n content: \"\\2d\"; }\n\n.fa-table::before {\n content: \"\\f0ce\"; }\n\n.fa-user-chef::before {\n content: \"\\e3d2\"; }\n\n.fa-message-image::before {\n content: \"\\e1e0\"; }\n\n.fa-comment-alt-image::before {\n content: \"\\e1e0\"; }\n\n.fa-users-medical::before {\n content: \"\\f830\"; }\n\n.fa-sensor-triangle-exclamation::before {\n content: \"\\e029\"; }\n\n.fa-sensor-alert::before {\n content: \"\\e029\"; }\n\n.fa-magnifying-glass-arrow-right::before {\n content: \"\\e521\"; }\n\n.fa-tachograph-digital::before {\n content: \"\\f566\"; }\n\n.fa-digital-tachograph::before {\n content: \"\\f566\"; }\n\n.fa-face-mask::before {\n content: \"\\e37f\"; }\n\n.fa-pickleball::before {\n content: \"\\e435\"; }\n\n.fa-star-sharp-half::before {\n content: \"\\e28c\"; }\n\n.fa-users-slash::before {\n content: \"\\e073\"; }\n\n.fa-clover::before {\n content: \"\\e139\"; }\n\n.fa-meat::before {\n content: \"\\f814\"; }\n\n.fa-reply::before {\n content: \"\\f3e5\"; }\n\n.fa-mail-reply::before {\n content: \"\\f3e5\"; }\n\n.fa-star-and-crescent::before {\n content: \"\\f699\"; }\n\n.fa-empty-set::before {\n content: \"\\f656\"; }\n\n.fa-house-fire::before {\n content: \"\\e50c\"; }\n\n.fa-square-minus::before {\n content: \"\\f146\"; }\n\n.fa-minus-square::before {\n content: \"\\f146\"; }\n\n.fa-helicopter::before {\n content: \"\\f533\"; }\n\n.fa-bird::before {\n content: \"\\e469\"; }\n\n.fa-compass::before {\n content: \"\\f14e\"; }\n\n.fa-square-caret-down::before {\n content: \"\\f150\"; }\n\n.fa-caret-square-down::before {\n content: \"\\f150\"; }\n\n.fa-heart-half-stroke::before {\n content: \"\\e1ac\"; }\n\n.fa-heart-half-alt::before {\n content: \"\\e1ac\"; }\n\n.fa-file-circle-question::before {\n content: \"\\e4ef\"; }\n\n.fa-truck-utensils::before {\n content: \"\\e628\"; }\n\n.fa-laptop-code::before {\n content: \"\\f5fc\"; }\n\n.fa-joystick::before {\n content: \"\\f8c5\"; }\n\n.fa-grill-fire::before {\n content: \"\\e5a4\"; }\n\n.fa-rectangle-vertical-history::before {\n content: \"\\e237\"; }\n\n.fa-swatchbook::before {\n content: \"\\f5c3\"; }\n\n.fa-prescription-bottle::before {\n content: \"\\f485\"; }\n\n.fa-bars::before {\n content: \"\\f0c9\"; }\n\n.fa-navicon::before {\n content: \"\\f0c9\"; }\n\n.fa-keyboard-left::before {\n content: \"\\e1c3\"; }\n\n.fa-people-group::before {\n content: \"\\e533\"; }\n\n.fa-hourglass-end::before {\n content: \"\\f253\"; }\n\n.fa-hourglass-3::before {\n content: \"\\f253\"; }\n\n.fa-heart-crack::before {\n content: \"\\f7a9\"; }\n\n.fa-heart-broken::before {\n content: \"\\f7a9\"; }\n\n.fa-face-beam-hand-over-mouth::before {\n content: \"\\e47c\"; }\n\n.fa-droplet-percent::before {\n content: \"\\f750\"; }\n\n.fa-humidity::before {\n content: \"\\f750\"; }\n\n.fa-square-up-right::before {\n content: \"\\f360\"; }\n\n.fa-external-link-square-alt::before {\n content: \"\\f360\"; }\n\n.fa-face-kiss-beam::before {\n content: \"\\f597\"; }\n\n.fa-kiss-beam::before {\n content: \"\\f597\"; }\n\n.fa-corn::before {\n content: \"\\f6c7\"; }\n\n.fa-roller-coaster::before {\n content: \"\\e324\"; }\n\n.fa-photo-film-music::before {\n content: \"\\e228\"; }\n\n.fa-radar::before {\n content: \"\\e024\"; }\n\n.fa-sickle::before {\n content: \"\\f822\"; }\n\n.fa-film::before {\n content: \"\\f008\"; }\n\n.fa-coconut::before {\n content: \"\\e2f6\"; }\n\n.fa-ruler-horizontal::before {\n content: \"\\f547\"; }\n\n.fa-shield-cross::before {\n content: \"\\f712\"; }\n\n.fa-cassette-tape::before {\n content: \"\\f8ab\"; }\n\n.fa-square-terminal::before {\n content: \"\\e32a\"; }\n\n.fa-people-robbery::before {\n content: \"\\e536\"; }\n\n.fa-lightbulb::before {\n content: \"\\f0eb\"; }\n\n.fa-caret-left::before {\n content: \"\\f0d9\"; }\n\n.fa-comment-middle::before {\n content: \"\\e149\"; }\n\n.fa-trash-can-list::before {\n content: \"\\e2ab\"; }\n\n.fa-block::before {\n content: \"\\e46a\"; }\n\n.fa-circle-exclamation::before {\n content: \"\\f06a\"; }\n\n.fa-exclamation-circle::before {\n content: \"\\f06a\"; }\n\n.fa-school-circle-xmark::before {\n content: \"\\e56d\"; }\n\n.fa-arrow-right-from-bracket::before {\n content: \"\\f08b\"; }\n\n.fa-sign-out::before {\n content: \"\\f08b\"; }\n\n.fa-face-frown-slight::before {\n content: \"\\e376\"; }\n\n.fa-circle-chevron-down::before {\n content: \"\\f13a\"; }\n\n.fa-chevron-circle-down::before {\n content: \"\\f13a\"; }\n\n.fa-sidebar-flip::before {\n content: \"\\e24f\"; }\n\n.fa-unlock-keyhole::before {\n content: \"\\f13e\"; }\n\n.fa-unlock-alt::before {\n content: \"\\f13e\"; }\n\n.fa-temperature-list::before {\n content: \"\\e299\"; }\n\n.fa-cloud-showers-heavy::before {\n content: \"\\f740\"; }\n\n.fa-headphones-simple::before {\n content: \"\\f58f\"; }\n\n.fa-headphones-alt::before {\n content: \"\\f58f\"; }\n\n.fa-sitemap::before {\n content: \"\\f0e8\"; }\n\n.fa-pipe-section::before {\n content: \"\\e438\"; }\n\n.fa-space-station-moon-construction::before {\n content: \"\\e034\"; }\n\n.fa-space-station-moon-alt::before {\n content: \"\\e034\"; }\n\n.fa-circle-dollar-to-slot::before {\n content: \"\\f4b9\"; }\n\n.fa-donate::before {\n content: \"\\f4b9\"; }\n\n.fa-memory::before {\n content: \"\\f538\"; }\n\n.fa-face-sleeping::before {\n content: \"\\e38d\"; }\n\n.fa-road-spikes::before {\n content: \"\\e568\"; }\n\n.fa-fire-burner::before {\n content: \"\\e4f1\"; }\n\n.fa-squirrel::before {\n content: \"\\f71a\"; }\n\n.fa-arrow-up-to-line::before {\n content: \"\\f341\"; }\n\n.fa-arrow-to-top::before {\n content: \"\\f341\"; }\n\n.fa-flag::before {\n content: \"\\f024\"; }\n\n.fa-face-cowboy-hat::before {\n content: \"\\e36e\"; }\n\n.fa-hanukiah::before {\n content: \"\\f6e6\"; }\n\n.fa-chart-scatter-3d::before {\n content: \"\\e0e8\"; }\n\n.fa-display-chart-up::before {\n content: \"\\e5e3\"; }\n\n.fa-square-code::before {\n content: \"\\e267\"; }\n\n.fa-feather::before {\n content: \"\\f52d\"; }\n\n.fa-volume-low::before {\n content: \"\\f027\"; }\n\n.fa-volume-down::before {\n content: \"\\f027\"; }\n\n.fa-xmark-to-slot::before {\n content: \"\\f771\"; }\n\n.fa-times-to-slot::before {\n content: \"\\f771\"; }\n\n.fa-vote-nay::before {\n content: \"\\f771\"; }\n\n.fa-box-taped::before {\n content: \"\\f49a\"; }\n\n.fa-box-alt::before {\n content: \"\\f49a\"; }\n\n.fa-comment-slash::before {\n content: \"\\f4b3\"; }\n\n.fa-swords::before {\n content: \"\\f71d\"; }\n\n.fa-cloud-sun-rain::before {\n content: \"\\f743\"; }\n\n.fa-album::before {\n content: \"\\f89f\"; }\n\n.fa-circle-n::before {\n content: \"\\e118\"; }\n\n.fa-compress::before {\n content: \"\\f066\"; }\n\n.fa-wheat-awn::before {\n content: \"\\e2cd\"; }\n\n.fa-wheat-alt::before {\n content: \"\\e2cd\"; }\n\n.fa-ankh::before {\n content: \"\\f644\"; }\n\n.fa-hands-holding-child::before {\n content: \"\\e4fa\"; }\n\n.fa-asterisk::before {\n content: \"\\2a\"; }\n\n.fa-key-skeleton-left-right::before {\n content: \"\\e3b4\"; }\n\n.fa-comment-lines::before {\n content: \"\\f4b0\"; }\n\n.fa-luchador-mask::before {\n content: \"\\f455\"; }\n\n.fa-luchador::before {\n content: \"\\f455\"; }\n\n.fa-mask-luchador::before {\n content: \"\\f455\"; }\n\n.fa-square-check::before {\n content: \"\\f14a\"; }\n\n.fa-check-square::before {\n content: \"\\f14a\"; }\n\n.fa-shredder::before {\n content: \"\\f68a\"; }\n\n.fa-book-open-cover::before {\n content: \"\\e0c0\"; }\n\n.fa-book-open-alt::before {\n content: \"\\e0c0\"; }\n\n.fa-sandwich::before {\n content: \"\\f81f\"; }\n\n.fa-peseta-sign::before {\n content: \"\\e221\"; }\n\n.fa-square-parking-slash::before {\n content: \"\\f617\"; }\n\n.fa-parking-slash::before {\n content: \"\\f617\"; }\n\n.fa-train-tunnel::before {\n content: \"\\e454\"; }\n\n.fa-heading::before {\n content: \"\\f1dc\"; }\n\n.fa-header::before {\n content: \"\\f1dc\"; }\n\n.fa-ghost::before {\n content: \"\\f6e2\"; }\n\n.fa-face-anguished::before {\n content: \"\\e369\"; }\n\n.fa-hockey-sticks::before {\n content: \"\\f454\"; }\n\n.fa-abacus::before {\n content: \"\\f640\"; }\n\n.fa-film-simple::before {\n content: \"\\f3a0\"; }\n\n.fa-film-alt::before {\n content: \"\\f3a0\"; }\n\n.fa-list::before {\n content: \"\\f03a\"; }\n\n.fa-list-squares::before {\n content: \"\\f03a\"; }\n\n.fa-tree-palm::before {\n content: \"\\f82b\"; }\n\n.fa-square-phone-flip::before {\n content: \"\\f87b\"; }\n\n.fa-phone-square-alt::before {\n content: \"\\f87b\"; }\n\n.fa-cart-plus::before {\n content: \"\\f217\"; }\n\n.fa-gamepad::before {\n content: \"\\f11b\"; }\n\n.fa-border-center-v::before {\n content: \"\\f89d\"; }\n\n.fa-circle-dot::before {\n content: \"\\f192\"; }\n\n.fa-dot-circle::before {\n content: \"\\f192\"; }\n\n.fa-clipboard-medical::before {\n content: \"\\e133\"; }\n\n.fa-face-dizzy::before {\n content: \"\\f567\"; }\n\n.fa-dizzy::before {\n content: \"\\f567\"; }\n\n.fa-egg::before {\n content: \"\\f7fb\"; }\n\n.fa-up-to-line::before {\n content: \"\\f34d\"; }\n\n.fa-arrow-alt-to-top::before {\n content: \"\\f34d\"; }\n\n.fa-house-medical-circle-xmark::before {\n content: \"\\e513\"; }\n\n.fa-watch-fitness::before {\n content: \"\\f63e\"; }\n\n.fa-clock-nine-thirty::before {\n content: \"\\e34d\"; }\n\n.fa-campground::before {\n content: \"\\f6bb\"; }\n\n.fa-folder-plus::before {\n content: \"\\f65e\"; }\n\n.fa-jug::before {\n content: \"\\f8c6\"; }\n\n.fa-futbol::before {\n content: \"\\f1e3\"; }\n\n.fa-futbol-ball::before {\n content: \"\\f1e3\"; }\n\n.fa-soccer-ball::before {\n content: \"\\f1e3\"; }\n\n.fa-snow-blowing::before {\n content: \"\\f761\"; }\n\n.fa-paintbrush::before {\n content: \"\\f1fc\"; }\n\n.fa-paint-brush::before {\n content: \"\\f1fc\"; }\n\n.fa-lock::before {\n content: \"\\f023\"; }\n\n.fa-arrow-down-from-line::before {\n content: \"\\f345\"; }\n\n.fa-arrow-from-top::before {\n content: \"\\f345\"; }\n\n.fa-gas-pump::before {\n content: \"\\f52f\"; }\n\n.fa-signal-bars-slash::before {\n content: \"\\f694\"; }\n\n.fa-signal-alt-slash::before {\n content: \"\\f694\"; }\n\n.fa-monkey::before {\n content: \"\\f6fb\"; }\n\n.fa-rectangle-pro::before {\n content: \"\\e235\"; }\n\n.fa-pro::before {\n content: \"\\e235\"; }\n\n.fa-house-night::before {\n content: \"\\e010\"; }\n\n.fa-hot-tub-person::before {\n content: \"\\f593\"; }\n\n.fa-hot-tub::before {\n content: \"\\f593\"; }\n\n.fa-globe-pointer::before {\n content: \"\\e60e\"; }\n\n.fa-blanket::before {\n content: \"\\f498\"; }\n\n.fa-map-location::before {\n content: \"\\f59f\"; }\n\n.fa-map-marked::before {\n content: \"\\f59f\"; }\n\n.fa-house-flood-water::before {\n content: \"\\e50e\"; }\n\n.fa-comments-question-check::before {\n content: \"\\e14f\"; }\n\n.fa-tree::before {\n content: \"\\f1bb\"; }\n\n.fa-arrows-cross::before {\n content: \"\\e0a2\"; }\n\n.fa-backpack::before {\n content: \"\\f5d4\"; }\n\n.fa-square-small::before {\n content: \"\\e27e\"; }\n\n.fa-folder-arrow-up::before {\n content: \"\\e054\"; }\n\n.fa-folder-upload::before {\n content: \"\\e054\"; }\n\n.fa-bridge-lock::before {\n content: \"\\e4cc\"; }\n\n.fa-crosshairs-simple::before {\n content: \"\\e59f\"; }\n\n.fa-sack-dollar::before {\n content: \"\\f81d\"; }\n\n.fa-pen-to-square::before {\n content: \"\\f044\"; }\n\n.fa-edit::before {\n content: \"\\f044\"; }\n\n.fa-square-sliders::before {\n content: \"\\f3f0\"; }\n\n.fa-sliders-h-square::before {\n content: \"\\f3f0\"; }\n\n.fa-car-side::before {\n content: \"\\f5e4\"; }\n\n.fa-message-middle-top::before {\n content: \"\\e1e2\"; }\n\n.fa-comment-middle-top-alt::before {\n content: \"\\e1e2\"; }\n\n.fa-lightbulb-on::before {\n content: \"\\f672\"; }\n\n.fa-knife::before {\n content: \"\\f2e4\"; }\n\n.fa-utensil-knife::before {\n content: \"\\f2e4\"; }\n\n.fa-share-nodes::before {\n content: \"\\f1e0\"; }\n\n.fa-share-alt::before {\n content: \"\\f1e0\"; }\n\n.fa-display-chart-up-circle-dollar::before {\n content: \"\\e5e6\"; }\n\n.fa-wave-sine::before {\n content: \"\\f899\"; }\n\n.fa-heart-circle-minus::before {\n content: \"\\e4ff\"; }\n\n.fa-circle-w::before {\n content: \"\\e12c\"; }\n\n.fa-circle-calendar::before {\n content: \"\\e102\"; }\n\n.fa-calendar-circle::before {\n content: \"\\e102\"; }\n\n.fa-hourglass-half::before {\n content: \"\\f252\"; }\n\n.fa-hourglass-2::before {\n content: \"\\f252\"; }\n\n.fa-microscope::before {\n content: \"\\f610\"; }\n\n.fa-sunset::before {\n content: \"\\f767\"; }\n\n.fa-sink::before {\n content: \"\\e06d\"; }\n\n.fa-calendar-exclamation::before {\n content: \"\\f334\"; }\n\n.fa-truck-container-empty::before {\n content: \"\\e2b5\"; }\n\n.fa-hand-heart::before {\n content: \"\\f4bc\"; }\n\n.fa-bag-shopping::before {\n content: \"\\f290\"; }\n\n.fa-shopping-bag::before {\n content: \"\\f290\"; }\n\n.fa-arrow-down-z-a::before {\n content: \"\\f881\"; }\n\n.fa-sort-alpha-desc::before {\n content: \"\\f881\"; }\n\n.fa-sort-alpha-down-alt::before {\n content: \"\\f881\"; }\n\n.fa-mitten::before {\n content: \"\\f7b5\"; }\n\n.fa-reply-clock::before {\n content: \"\\e239\"; }\n\n.fa-reply-time::before {\n content: \"\\e239\"; }\n\n.fa-person-rays::before {\n content: \"\\e54d\"; }\n\n.fa-right::before {\n content: \"\\f356\"; }\n\n.fa-arrow-alt-right::before {\n content: \"\\f356\"; }\n\n.fa-circle-f::before {\n content: \"\\e10e\"; }\n\n.fa-users::before {\n content: \"\\f0c0\"; }\n\n.fa-face-pleading::before {\n content: \"\\e386\"; }\n\n.fa-eye-slash::before {\n content: \"\\f070\"; }\n\n.fa-flask-vial::before {\n content: \"\\e4f3\"; }\n\n.fa-police-box::before {\n content: \"\\e021\"; }\n\n.fa-cucumber::before {\n content: \"\\e401\"; }\n\n.fa-head-side-brain::before {\n content: \"\\f808\"; }\n\n.fa-hand::before {\n content: \"\\f256\"; }\n\n.fa-hand-paper::before {\n content: \"\\f256\"; }\n\n.fa-person-biking-mountain::before {\n content: \"\\f84b\"; }\n\n.fa-biking-mountain::before {\n content: \"\\f84b\"; }\n\n.fa-utensils-slash::before {\n content: \"\\e464\"; }\n\n.fa-print-magnifying-glass::before {\n content: \"\\f81a\"; }\n\n.fa-print-search::before {\n content: \"\\f81a\"; }\n\n.fa-turn-right::before {\n content: \"\\e639\"; }\n\n.fa-folder-bookmark::before {\n content: \"\\e186\"; }\n\n.fa-arrow-turn-left-down::before {\n content: \"\\e633\"; }\n\n.fa-om::before {\n content: \"\\f679\"; }\n\n.fa-pi::before {\n content: \"\\f67e\"; }\n\n.fa-flask-round-potion::before {\n content: \"\\f6e1\"; }\n\n.fa-flask-potion::before {\n content: \"\\f6e1\"; }\n\n.fa-face-shush::before {\n content: \"\\e38c\"; }\n\n.fa-worm::before {\n content: \"\\e599\"; }\n\n.fa-house-circle-xmark::before {\n content: \"\\e50b\"; }\n\n.fa-plug::before {\n content: \"\\f1e6\"; }\n\n.fa-calendar-circle-exclamation::before {\n content: \"\\e46e\"; }\n\n.fa-square-i::before {\n content: \"\\e272\"; }\n\n.fa-chevron-up::before {\n content: \"\\f077\"; }\n\n.fa-face-saluting::before {\n content: \"\\e484\"; }\n\n.fa-gauge-simple-low::before {\n content: \"\\f62c\"; }\n\n.fa-tachometer-slow::before {\n content: \"\\f62c\"; }\n\n.fa-face-persevering::before {\n content: \"\\e385\"; }\n\n.fa-circle-camera::before {\n content: \"\\e103\"; }\n\n.fa-camera-circle::before {\n content: \"\\e103\"; }\n\n.fa-hand-spock::before {\n content: \"\\f259\"; }\n\n.fa-spider-web::before {\n content: \"\\f719\"; }\n\n.fa-circle-microphone::before {\n content: \"\\e116\"; }\n\n.fa-microphone-circle::before {\n content: \"\\e116\"; }\n\n.fa-book-arrow-up::before {\n content: \"\\e0ba\"; }\n\n.fa-popsicle::before {\n content: \"\\e43e\"; }\n\n.fa-command::before {\n content: \"\\e142\"; }\n\n.fa-blinds::before {\n content: \"\\f8fb\"; }\n\n.fa-stopwatch::before {\n content: \"\\f2f2\"; }\n\n.fa-saxophone::before {\n content: \"\\f8dc\"; }\n\n.fa-square-2::before {\n content: \"\\e257\"; }\n\n.fa-field-hockey-stick-ball::before {\n content: \"\\f44c\"; }\n\n.fa-field-hockey::before {\n content: \"\\f44c\"; }\n\n.fa-arrow-up-square-triangle::before {\n content: \"\\f88b\"; }\n\n.fa-sort-shapes-up-alt::before {\n content: \"\\f88b\"; }\n\n.fa-face-scream::before {\n content: \"\\e38b\"; }\n\n.fa-square-m::before {\n content: \"\\e276\"; }\n\n.fa-camera-web::before {\n content: \"\\f832\"; }\n\n.fa-webcam::before {\n content: \"\\f832\"; }\n\n.fa-comment-arrow-down::before {\n content: \"\\e143\"; }\n\n.fa-lightbulb-cfl::before {\n content: \"\\e5a6\"; }\n\n.fa-window-frame-open::before {\n content: \"\\e050\"; }\n\n.fa-face-kiss::before {\n content: \"\\f596\"; }\n\n.fa-kiss::before {\n content: \"\\f596\"; }\n\n.fa-bridge-circle-xmark::before {\n content: \"\\e4cb\"; }\n\n.fa-period::before {\n content: \"\\2e\"; }\n\n.fa-face-grin-tongue::before {\n content: \"\\f589\"; }\n\n.fa-grin-tongue::before {\n content: \"\\f589\"; }\n\n.fa-up-to-dotted-line::before {\n content: \"\\e457\"; }\n\n.fa-thought-bubble::before {\n content: \"\\e32e\"; }\n\n.fa-skeleton-ribs::before {\n content: \"\\e5cb\"; }\n\n.fa-raygun::before {\n content: \"\\e025\"; }\n\n.fa-flute::before {\n content: \"\\f8b9\"; }\n\n.fa-acorn::before {\n content: \"\\f6ae\"; }\n\n.fa-video-arrow-up-right::before {\n content: \"\\e2c9\"; }\n\n.fa-grate-droplet::before {\n content: \"\\e194\"; }\n\n.fa-seal-exclamation::before {\n content: \"\\e242\"; }\n\n.fa-chess-bishop::before {\n content: \"\\f43a\"; }\n\n.fa-message-sms::before {\n content: \"\\e1e5\"; }\n\n.fa-coffee-beans::before {\n content: \"\\e13f\"; }\n\n.fa-hat-witch::before {\n content: \"\\f6e7\"; }\n\n.fa-face-grin-wink::before {\n content: \"\\f58c\"; }\n\n.fa-grin-wink::before {\n content: \"\\f58c\"; }\n\n.fa-clock-three-thirty::before {\n content: \"\\e357\"; }\n\n.fa-ear-deaf::before {\n content: \"\\f2a4\"; }\n\n.fa-deaf::before {\n content: \"\\f2a4\"; }\n\n.fa-deafness::before {\n content: \"\\f2a4\"; }\n\n.fa-hard-of-hearing::before {\n content: \"\\f2a4\"; }\n\n.fa-alarm-clock::before {\n content: \"\\f34e\"; }\n\n.fa-eclipse::before {\n content: \"\\f749\"; }\n\n.fa-face-relieved::before {\n content: \"\\e389\"; }\n\n.fa-road-circle-check::before {\n content: \"\\e564\"; }\n\n.fa-dice-five::before {\n content: \"\\f523\"; }\n\n.fa-octagon-minus::before {\n content: \"\\f308\"; }\n\n.fa-minus-octagon::before {\n content: \"\\f308\"; }\n\n.fa-square-rss::before {\n content: \"\\f143\"; }\n\n.fa-rss-square::before {\n content: \"\\f143\"; }\n\n.fa-face-zany::before {\n content: \"\\e3a4\"; }\n\n.fa-tricycle::before {\n content: \"\\e5c3\"; }\n\n.fa-land-mine-on::before {\n content: \"\\e51b\"; }\n\n.fa-square-arrow-up-left::before {\n content: \"\\e263\"; }\n\n.fa-i-cursor::before {\n content: \"\\f246\"; }\n\n.fa-chart-mixed-up-circle-dollar::before {\n content: \"\\e5d9\"; }\n\n.fa-salt-shaker::before {\n content: \"\\e446\"; }\n\n.fa-stamp::before {\n content: \"\\f5bf\"; }\n\n.fa-file-plus::before {\n content: \"\\f319\"; }\n\n.fa-draw-square::before {\n content: \"\\f5ef\"; }\n\n.fa-toilet-paper-under-slash::before {\n content: \"\\e2a1\"; }\n\n.fa-toilet-paper-reverse-slash::before {\n content: \"\\e2a1\"; }\n\n.fa-stairs::before {\n content: \"\\e289\"; }\n\n.fa-drone-front::before {\n content: \"\\f860\"; }\n\n.fa-drone-alt::before {\n content: \"\\f860\"; }\n\n.fa-glass-empty::before {\n content: \"\\e191\"; }\n\n.fa-dial-high::before {\n content: \"\\e15c\"; }\n\n.fa-user-helmet-safety::before {\n content: \"\\f82c\"; }\n\n.fa-user-construction::before {\n content: \"\\f82c\"; }\n\n.fa-user-hard-hat::before {\n content: \"\\f82c\"; }\n\n.fa-i::before {\n content: \"\\49\"; }\n\n.fa-hryvnia-sign::before {\n content: \"\\f6f2\"; }\n\n.fa-hryvnia::before {\n content: \"\\f6f2\"; }\n\n.fa-arrow-down-left-and-arrow-up-right-to-center::before {\n content: \"\\e092\"; }\n\n.fa-pills::before {\n content: \"\\f484\"; }\n\n.fa-face-grin-wide::before {\n content: \"\\f581\"; }\n\n.fa-grin-alt::before {\n content: \"\\f581\"; }\n\n.fa-tooth::before {\n content: \"\\f5c9\"; }\n\n.fa-basketball-hoop::before {\n content: \"\\f435\"; }\n\n.fa-objects-align-bottom::before {\n content: \"\\e3bb\"; }\n\n.fa-v::before {\n content: \"\\56\"; }\n\n.fa-sparkles::before {\n content: \"\\f890\"; }\n\n.fa-squid::before {\n content: \"\\e450\"; }\n\n.fa-leafy-green::before {\n content: \"\\e41d\"; }\n\n.fa-circle-arrow-up-right::before {\n content: \"\\e0fc\"; }\n\n.fa-calendars::before {\n content: \"\\e0d7\"; }\n\n.fa-bangladeshi-taka-sign::before {\n content: \"\\e2e6\"; }\n\n.fa-bicycle::before {\n content: \"\\f206\"; }\n\n.fa-hammer-war::before {\n content: \"\\f6e4\"; }\n\n.fa-circle-d::before {\n content: \"\\e104\"; }\n\n.fa-spider-black-widow::before {\n content: \"\\f718\"; }\n\n.fa-staff-snake::before {\n content: \"\\e579\"; }\n\n.fa-rod-asclepius::before {\n content: \"\\e579\"; }\n\n.fa-rod-snake::before {\n content: \"\\e579\"; }\n\n.fa-staff-aesculapius::before {\n content: \"\\e579\"; }\n\n.fa-pear::before {\n content: \"\\e20c\"; }\n\n.fa-head-side-cough-slash::before {\n content: \"\\e062\"; }\n\n.fa-file-mov::before {\n content: \"\\e647\"; }\n\n.fa-triangle::before {\n content: \"\\f2ec\"; }\n\n.fa-apartment::before {\n content: \"\\e468\"; }\n\n.fa-truck-medical::before {\n content: \"\\f0f9\"; }\n\n.fa-ambulance::before {\n content: \"\\f0f9\"; }\n\n.fa-pepper::before {\n content: \"\\e432\"; }\n\n.fa-piano::before {\n content: \"\\f8d4\"; }\n\n.fa-gun-squirt::before {\n content: \"\\e19d\"; }\n\n.fa-wheat-awn-circle-exclamation::before {\n content: \"\\e598\"; }\n\n.fa-snowman::before {\n content: \"\\f7d0\"; }\n\n.fa-user-alien::before {\n content: \"\\e04a\"; }\n\n.fa-shield-check::before {\n content: \"\\f2f7\"; }\n\n.fa-mortar-pestle::before {\n content: \"\\f5a7\"; }\n\n.fa-road-barrier::before {\n content: \"\\e562\"; }\n\n.fa-chart-candlestick::before {\n content: \"\\e0e2\"; }\n\n.fa-briefcase-blank::before {\n content: \"\\e0c8\"; }\n\n.fa-school::before {\n content: \"\\f549\"; }\n\n.fa-igloo::before {\n content: \"\\f7ae\"; }\n\n.fa-bracket-round::before {\n content: \"\\28\"; }\n\n.fa-parenthesis::before {\n content: \"\\28\"; }\n\n.fa-joint::before {\n content: \"\\f595\"; }\n\n.fa-horse-saddle::before {\n content: \"\\f8c3\"; }\n\n.fa-mug-marshmallows::before {\n content: \"\\f7b7\"; }\n\n.fa-filters::before {\n content: \"\\e17e\"; }\n\n.fa-bell-on::before {\n content: \"\\f8fa\"; }\n\n.fa-angle-right::before {\n content: \"\\f105\"; }\n\n.fa-dial-med::before {\n content: \"\\e15f\"; }\n\n.fa-horse::before {\n content: \"\\f6f0\"; }\n\n.fa-q::before {\n content: \"\\51\"; }\n\n.fa-monitor-waveform::before {\n content: \"\\f611\"; }\n\n.fa-monitor-heart-rate::before {\n content: \"\\f611\"; }\n\n.fa-link-simple::before {\n content: \"\\e1cd\"; }\n\n.fa-whistle::before {\n content: \"\\f460\"; }\n\n.fa-g::before {\n content: \"\\47\"; }\n\n.fa-wine-glass-crack::before {\n content: \"\\f4bb\"; }\n\n.fa-fragile::before {\n content: \"\\f4bb\"; }\n\n.fa-slot-machine::before {\n content: \"\\e3ce\"; }\n\n.fa-notes-medical::before {\n content: \"\\f481\"; }\n\n.fa-car-wash::before {\n content: \"\\f5e6\"; }\n\n.fa-escalator::before {\n content: \"\\e171\"; }\n\n.fa-comment-image::before {\n content: \"\\e148\"; }\n\n.fa-temperature-half::before {\n content: \"\\f2c9\"; }\n\n.fa-temperature-2::before {\n content: \"\\f2c9\"; }\n\n.fa-thermometer-2::before {\n content: \"\\f2c9\"; }\n\n.fa-thermometer-half::before {\n content: \"\\f2c9\"; }\n\n.fa-dong-sign::before {\n content: \"\\e169\"; }\n\n.fa-donut::before {\n content: \"\\e406\"; }\n\n.fa-doughnut::before {\n content: \"\\e406\"; }\n\n.fa-capsules::before {\n content: \"\\f46b\"; }\n\n.fa-poo-storm::before {\n content: \"\\f75a\"; }\n\n.fa-poo-bolt::before {\n content: \"\\f75a\"; }\n\n.fa-tally-1::before {\n content: \"\\e294\"; }\n\n.fa-file-vector::before {\n content: \"\\e64c\"; }\n\n.fa-face-frown-open::before {\n content: \"\\f57a\"; }\n\n.fa-frown-open::before {\n content: \"\\f57a\"; }\n\n.fa-square-dashed::before {\n content: \"\\e269\"; }\n\n.fa-bag-shopping-plus::before {\n content: \"\\e651\"; }\n\n.fa-square-j::before {\n content: \"\\e273\"; }\n\n.fa-hand-point-up::before {\n content: \"\\f0a6\"; }\n\n.fa-money-bill::before {\n content: \"\\f0d6\"; }\n\n.fa-arrow-up-big-small::before {\n content: \"\\f88e\"; }\n\n.fa-sort-size-up::before {\n content: \"\\f88e\"; }\n\n.fa-barcode-read::before {\n content: \"\\f464\"; }\n\n.fa-baguette::before {\n content: \"\\e3d8\"; }\n\n.fa-bowl-soft-serve::before {\n content: \"\\e46b\"; }\n\n.fa-face-holding-back-tears::before {\n content: \"\\e482\"; }\n\n.fa-square-up::before {\n content: \"\\f353\"; }\n\n.fa-arrow-alt-square-up::before {\n content: \"\\f353\"; }\n\n.fa-train-subway-tunnel::before {\n content: \"\\e2a3\"; }\n\n.fa-subway-tunnel::before {\n content: \"\\e2a3\"; }\n\n.fa-square-exclamation::before {\n content: \"\\f321\"; }\n\n.fa-exclamation-square::before {\n content: \"\\f321\"; }\n\n.fa-semicolon::before {\n content: \"\\3b\"; }\n\n.fa-bookmark::before {\n content: \"\\f02e\"; }\n\n.fa-fan-table::before {\n content: \"\\e004\"; }\n\n.fa-align-justify::before {\n content: \"\\f039\"; }\n\n.fa-battery-low::before {\n content: \"\\e0b1\"; }\n\n.fa-battery-1::before {\n content: \"\\e0b1\"; }\n\n.fa-credit-card-front::before {\n content: \"\\f38a\"; }\n\n.fa-brain-arrow-curved-right::before {\n content: \"\\f677\"; }\n\n.fa-mind-share::before {\n content: \"\\f677\"; }\n\n.fa-umbrella-beach::before {\n content: \"\\f5ca\"; }\n\n.fa-helmet-un::before {\n content: \"\\e503\"; }\n\n.fa-location-smile::before {\n content: \"\\f60d\"; }\n\n.fa-map-marker-smile::before {\n content: \"\\f60d\"; }\n\n.fa-arrow-left-to-line::before {\n content: \"\\f33e\"; }\n\n.fa-arrow-to-left::before {\n content: \"\\f33e\"; }\n\n.fa-bullseye::before {\n content: \"\\f140\"; }\n\n.fa-sushi::before {\n content: \"\\e48a\"; }\n\n.fa-nigiri::before {\n content: \"\\e48a\"; }\n\n.fa-message-captions::before {\n content: \"\\e1de\"; }\n\n.fa-comment-alt-captions::before {\n content: \"\\e1de\"; }\n\n.fa-trash-list::before {\n content: \"\\e2b1\"; }\n\n.fa-bacon::before {\n content: \"\\f7e5\"; }\n\n.fa-option::before {\n content: \"\\e318\"; }\n\n.fa-raccoon::before {\n content: \"\\e613\"; }\n\n.fa-hand-point-down::before {\n content: \"\\f0a7\"; }\n\n.fa-arrow-up-from-bracket::before {\n content: \"\\e09a\"; }\n\n.fa-head-side-gear::before {\n content: \"\\e611\"; }\n\n.fa-trash-plus::before {\n content: \"\\e2b2\"; }\n\n.fa-file-cad::before {\n content: \"\\e672\"; }\n\n.fa-objects-align-top::before {\n content: \"\\e3c0\"; }\n\n.fa-folder::before {\n content: \"\\f07b\"; }\n\n.fa-folder-blank::before {\n content: \"\\f07b\"; }\n\n.fa-face-anxious-sweat::before {\n content: \"\\e36a\"; }\n\n.fa-credit-card-blank::before {\n content: \"\\f389\"; }\n\n.fa-file-waveform::before {\n content: \"\\f478\"; }\n\n.fa-file-medical-alt::before {\n content: \"\\f478\"; }\n\n.fa-microchip-ai::before {\n content: \"\\e1ec\"; }\n\n.fa-mug::before {\n content: \"\\f874\"; }\n\n.fa-plane-up-slash::before {\n content: \"\\e22e\"; }\n\n.fa-radiation::before {\n content: \"\\f7b9\"; }\n\n.fa-pen-circle::before {\n content: \"\\e20e\"; }\n\n.fa-bag-seedling::before {\n content: \"\\e5f2\"; }\n\n.fa-chart-simple::before {\n content: \"\\e473\"; }\n\n.fa-crutches::before {\n content: \"\\f7f8\"; }\n\n.fa-circle-parking::before {\n content: \"\\f615\"; }\n\n.fa-parking-circle::before {\n content: \"\\f615\"; }\n\n.fa-mars-stroke::before {\n content: \"\\f229\"; }\n\n.fa-leaf-oak::before {\n content: \"\\f6f7\"; }\n\n.fa-square-bolt::before {\n content: \"\\e265\"; }\n\n.fa-vial::before {\n content: \"\\f492\"; }\n\n.fa-gauge::before {\n content: \"\\f624\"; }\n\n.fa-dashboard::before {\n content: \"\\f624\"; }\n\n.fa-gauge-med::before {\n content: \"\\f624\"; }\n\n.fa-tachometer-alt-average::before {\n content: \"\\f624\"; }\n\n.fa-wand-magic-sparkles::before {\n content: \"\\e2ca\"; }\n\n.fa-magic-wand-sparkles::before {\n content: \"\\e2ca\"; }\n\n.fa-lambda::before {\n content: \"\\f66e\"; }\n\n.fa-e::before {\n content: \"\\45\"; }\n\n.fa-pizza::before {\n content: \"\\f817\"; }\n\n.fa-bowl-chopsticks-noodles::before {\n content: \"\\e2ea\"; }\n\n.fa-h3::before {\n content: \"\\f315\"; }\n\n.fa-pen-clip::before {\n content: \"\\f305\"; }\n\n.fa-pen-alt::before {\n content: \"\\f305\"; }\n\n.fa-bridge-circle-exclamation::before {\n content: \"\\e4ca\"; }\n\n.fa-badge-percent::before {\n content: \"\\f646\"; }\n\n.fa-rotate-reverse::before {\n content: \"\\e631\"; }\n\n.fa-user::before {\n content: \"\\f007\"; }\n\n.fa-sensor::before {\n content: \"\\e028\"; }\n\n.fa-comma::before {\n content: \"\\2c\"; }\n\n.fa-school-circle-check::before {\n content: \"\\e56b\"; }\n\n.fa-toilet-paper-under::before {\n content: \"\\e2a0\"; }\n\n.fa-toilet-paper-reverse::before {\n content: \"\\e2a0\"; }\n\n.fa-light-emergency::before {\n content: \"\\e41f\"; }\n\n.fa-arrow-down-to-arc::before {\n content: \"\\e4ae\"; }\n\n.fa-dumpster::before {\n content: \"\\f793\"; }\n\n.fa-van-shuttle::before {\n content: \"\\f5b6\"; }\n\n.fa-shuttle-van::before {\n content: \"\\f5b6\"; }\n\n.fa-building-user::before {\n content: \"\\e4da\"; }\n\n.fa-light-switch::before {\n content: \"\\e017\"; }\n\n.fa-square-caret-left::before {\n content: \"\\f191\"; }\n\n.fa-caret-square-left::before {\n content: \"\\f191\"; }\n\n.fa-highlighter::before {\n content: \"\\f591\"; }\n\n.fa-wave-pulse::before {\n content: \"\\f5f8\"; }\n\n.fa-heart-rate::before {\n content: \"\\f5f8\"; }\n\n.fa-key::before {\n content: \"\\f084\"; }\n\n.fa-arrow-left-to-bracket::before {\n content: \"\\e669\"; }\n\n.fa-hat-santa::before {\n content: \"\\f7a7\"; }\n\n.fa-tamale::before {\n content: \"\\e451\"; }\n\n.fa-box-check::before {\n content: \"\\f467\"; }\n\n.fa-bullhorn::before {\n content: \"\\f0a1\"; }\n\n.fa-steak::before {\n content: \"\\f824\"; }\n\n.fa-location-crosshairs-slash::before {\n content: \"\\f603\"; }\n\n.fa-location-slash::before {\n content: \"\\f603\"; }\n\n.fa-person-dolly::before {\n content: \"\\f4d0\"; }\n\n.fa-globe::before {\n content: \"\\f0ac\"; }\n\n.fa-synagogue::before {\n content: \"\\f69b\"; }\n\n.fa-file-chart-column::before {\n content: \"\\f659\"; }\n\n.fa-file-chart-line::before {\n content: \"\\f659\"; }\n\n.fa-person-half-dress::before {\n content: \"\\e548\"; }\n\n.fa-folder-image::before {\n content: \"\\e18a\"; }\n\n.fa-calendar-pen::before {\n content: \"\\f333\"; }\n\n.fa-calendar-edit::before {\n content: \"\\f333\"; }\n\n.fa-road-bridge::before {\n content: \"\\e563\"; }\n\n.fa-face-smile-tear::before {\n content: \"\\e393\"; }\n\n.fa-message-plus::before {\n content: \"\\f4a8\"; }\n\n.fa-comment-alt-plus::before {\n content: \"\\f4a8\"; }\n\n.fa-location-arrow::before {\n content: \"\\f124\"; }\n\n.fa-c::before {\n content: \"\\43\"; }\n\n.fa-tablet-button::before {\n content: \"\\f10a\"; }\n\n.fa-person-dress-fairy::before {\n content: \"\\e607\"; }\n\n.fa-rectangle-history-circle-user::before {\n content: \"\\e4a4\"; }\n\n.fa-building-lock::before {\n content: \"\\e4d6\"; }\n\n.fa-chart-line-up::before {\n content: \"\\e0e5\"; }\n\n.fa-mailbox::before {\n content: \"\\f813\"; }\n\n.fa-sign-posts::before {\n content: \"\\e625\"; }\n\n.fa-truck-bolt::before {\n content: \"\\e3d0\"; }\n\n.fa-pizza-slice::before {\n content: \"\\f818\"; }\n\n.fa-money-bill-wave::before {\n content: \"\\f53a\"; }\n\n.fa-chart-area::before {\n content: \"\\f1fe\"; }\n\n.fa-area-chart::before {\n content: \"\\f1fe\"; }\n\n.fa-house-flag::before {\n content: \"\\e50d\"; }\n\n.fa-circle-three-quarters-stroke::before {\n content: \"\\e5d4\"; }\n\n.fa-person-circle-minus::before {\n content: \"\\e540\"; }\n\n.fa-scalpel::before {\n content: \"\\f61d\"; }\n\n.fa-ban::before {\n content: \"\\f05e\"; }\n\n.fa-cancel::before {\n content: \"\\f05e\"; }\n\n.fa-bell-exclamation::before {\n content: \"\\f848\"; }\n\n.fa-circle-bookmark::before {\n content: \"\\e100\"; }\n\n.fa-bookmark-circle::before {\n content: \"\\e100\"; }\n\n.fa-egg-fried::before {\n content: \"\\f7fc\"; }\n\n.fa-face-weary::before {\n content: \"\\e3a1\"; }\n\n.fa-uniform-martial-arts::before {\n content: \"\\e3d1\"; }\n\n.fa-camera-rotate::before {\n content: \"\\e0d8\"; }\n\n.fa-sun-dust::before {\n content: \"\\f764\"; }\n\n.fa-comment-text::before {\n content: \"\\e14d\"; }\n\n.fa-spray-can-sparkles::before {\n content: \"\\f5d0\"; }\n\n.fa-air-freshener::before {\n content: \"\\f5d0\"; }\n\n.fa-signal-bars::before {\n content: \"\\f690\"; }\n\n.fa-signal-alt::before {\n content: \"\\f690\"; }\n\n.fa-signal-alt-4::before {\n content: \"\\f690\"; }\n\n.fa-signal-bars-strong::before {\n content: \"\\f690\"; }\n\n.fa-diamond-exclamation::before {\n content: \"\\e405\"; }\n\n.fa-star::before {\n content: \"\\f005\"; }\n\n.fa-dial-min::before {\n content: \"\\e161\"; }\n\n.fa-repeat::before {\n content: \"\\f363\"; }\n\n.fa-cross::before {\n content: \"\\f654\"; }\n\n.fa-page-caret-down::before {\n content: \"\\e429\"; }\n\n.fa-file-caret-down::before {\n content: \"\\e429\"; }\n\n.fa-box::before {\n content: \"\\f466\"; }\n\n.fa-venus-mars::before {\n content: \"\\f228\"; }\n\n.fa-clock-seven-thirty::before {\n content: \"\\e351\"; }\n\n.fa-arrow-pointer::before {\n content: \"\\f245\"; }\n\n.fa-mouse-pointer::before {\n content: \"\\f245\"; }\n\n.fa-clock-four-thirty::before {\n content: \"\\e34b\"; }\n\n.fa-signal-bars-good::before {\n content: \"\\f693\"; }\n\n.fa-signal-alt-3::before {\n content: \"\\f693\"; }\n\n.fa-cactus::before {\n content: \"\\f8a7\"; }\n\n.fa-lightbulb-gear::before {\n content: \"\\e5fd\"; }\n\n.fa-maximize::before {\n content: \"\\f31e\"; }\n\n.fa-expand-arrows-alt::before {\n content: \"\\f31e\"; }\n\n.fa-charging-station::before {\n content: \"\\f5e7\"; }\n\n.fa-shapes::before {\n content: \"\\f61f\"; }\n\n.fa-triangle-circle-square::before {\n content: \"\\f61f\"; }\n\n.fa-plane-tail::before {\n content: \"\\e22c\"; }\n\n.fa-gauge-simple-max::before {\n content: \"\\f62b\"; }\n\n.fa-tachometer-fastest::before {\n content: \"\\f62b\"; }\n\n.fa-circle-u::before {\n content: \"\\e127\"; }\n\n.fa-shield-slash::before {\n content: \"\\e24b\"; }\n\n.fa-square-phone-hangup::before {\n content: \"\\e27a\"; }\n\n.fa-phone-square-down::before {\n content: \"\\e27a\"; }\n\n.fa-arrow-up-left::before {\n content: \"\\e09d\"; }\n\n.fa-transporter-1::before {\n content: \"\\e043\"; }\n\n.fa-peanuts::before {\n content: \"\\e431\"; }\n\n.fa-shuffle::before {\n content: \"\\f074\"; }\n\n.fa-random::before {\n content: \"\\f074\"; }\n\n.fa-person-running::before {\n content: \"\\f70c\"; }\n\n.fa-running::before {\n content: \"\\f70c\"; }\n\n.fa-mobile-retro::before {\n content: \"\\e527\"; }\n\n.fa-grip-lines-vertical::before {\n content: \"\\f7a5\"; }\n\n.fa-bin-bottles-recycle::before {\n content: \"\\e5f6\"; }\n\n.fa-arrow-up-from-square::before {\n content: \"\\e09c\"; }\n\n.fa-file-dashed-line::before {\n content: \"\\f877\"; }\n\n.fa-page-break::before {\n content: \"\\f877\"; }\n\n.fa-bracket-curly-right::before {\n content: \"\\7d\"; }\n\n.fa-spider::before {\n content: \"\\f717\"; }\n\n.fa-clock-three::before {\n content: \"\\e356\"; }\n\n.fa-hands-bound::before {\n content: \"\\e4f9\"; }\n\n.fa-scalpel-line-dashed::before {\n content: \"\\f61e\"; }\n\n.fa-scalpel-path::before {\n content: \"\\f61e\"; }\n\n.fa-file-invoice-dollar::before {\n content: \"\\f571\"; }\n\n.fa-pipe-smoking::before {\n content: \"\\e3c4\"; }\n\n.fa-face-astonished::before {\n content: \"\\e36b\"; }\n\n.fa-window::before {\n content: \"\\f40e\"; }\n\n.fa-plane-circle-exclamation::before {\n content: \"\\e556\"; }\n\n.fa-ear::before {\n content: \"\\f5f0\"; }\n\n.fa-file-lock::before {\n content: \"\\e3a6\"; }\n\n.fa-diagram-venn::before {\n content: \"\\e15a\"; }\n\n.fa-arrow-down-from-bracket::before {\n content: \"\\e667\"; }\n\n.fa-x-ray::before {\n content: \"\\f497\"; }\n\n.fa-goal-net::before {\n content: \"\\e3ab\"; }\n\n.fa-coffin-cross::before {\n content: \"\\e051\"; }\n\n.fa-spell-check::before {\n content: \"\\f891\"; }\n\n.fa-location-xmark::before {\n content: \"\\f60e\"; }\n\n.fa-map-marker-times::before {\n content: \"\\f60e\"; }\n\n.fa-map-marker-xmark::before {\n content: \"\\f60e\"; }\n\n.fa-circle-quarter-stroke::before {\n content: \"\\e5d3\"; }\n\n.fa-lasso::before {\n content: \"\\f8c8\"; }\n\n.fa-slash::before {\n content: \"\\f715\"; }\n\n.fa-person-to-portal::before {\n content: \"\\e022\"; }\n\n.fa-portal-enter::before {\n content: \"\\e022\"; }\n\n.fa-calendar-star::before {\n content: \"\\f736\"; }\n\n.fa-computer-mouse::before {\n content: \"\\f8cc\"; }\n\n.fa-mouse::before {\n content: \"\\f8cc\"; }\n\n.fa-arrow-right-to-bracket::before {\n content: \"\\f090\"; }\n\n.fa-sign-in::before {\n content: \"\\f090\"; }\n\n.fa-pegasus::before {\n content: \"\\f703\"; }\n\n.fa-files-medical::before {\n content: \"\\f7fd\"; }\n\n.fa-cannon::before {\n content: \"\\e642\"; }\n\n.fa-nfc-lock::before {\n content: \"\\e1f8\"; }\n\n.fa-person-ski-lift::before {\n content: \"\\f7c8\"; }\n\n.fa-ski-lift::before {\n content: \"\\f7c8\"; }\n\n.fa-square-6::before {\n content: \"\\e25b\"; }\n\n.fa-shop-slash::before {\n content: \"\\e070\"; }\n\n.fa-store-alt-slash::before {\n content: \"\\e070\"; }\n\n.fa-wind-turbine::before {\n content: \"\\f89b\"; }\n\n.fa-sliders-simple::before {\n content: \"\\e253\"; }\n\n.fa-grid-round::before {\n content: \"\\e5da\"; }\n\n.fa-badge-sheriff::before {\n content: \"\\f8a2\"; }\n\n.fa-server::before {\n content: \"\\f233\"; }\n\n.fa-virus-covid-slash::before {\n content: \"\\e4a9\"; }\n\n.fa-intersection::before {\n content: \"\\f668\"; }\n\n.fa-shop-lock::before {\n content: \"\\e4a5\"; }\n\n.fa-family::before {\n content: \"\\e300\"; }\n\n.fa-hourglass-start::before {\n content: \"\\f251\"; }\n\n.fa-hourglass-1::before {\n content: \"\\f251\"; }\n\n.fa-user-hair-buns::before {\n content: \"\\e3d3\"; }\n\n.fa-blender-phone::before {\n content: \"\\f6b6\"; }\n\n.fa-hourglass-clock::before {\n content: \"\\e41b\"; }\n\n.fa-person-seat-reclined::before {\n content: \"\\e21f\"; }\n\n.fa-paper-plane-top::before {\n content: \"\\e20a\"; }\n\n.fa-paper-plane-alt::before {\n content: \"\\e20a\"; }\n\n.fa-send::before {\n content: \"\\e20a\"; }\n\n.fa-message-arrow-up::before {\n content: \"\\e1dc\"; }\n\n.fa-comment-alt-arrow-up::before {\n content: \"\\e1dc\"; }\n\n.fa-lightbulb-exclamation::before {\n content: \"\\f671\"; }\n\n.fa-layer-minus::before {\n content: \"\\f5fe\"; }\n\n.fa-layer-group-minus::before {\n content: \"\\f5fe\"; }\n\n.fa-chart-pie-simple-circle-currency::before {\n content: \"\\e604\"; }\n\n.fa-circle-e::before {\n content: \"\\e109\"; }\n\n.fa-building-wheat::before {\n content: \"\\e4db\"; }\n\n.fa-gauge-max::before {\n content: \"\\f626\"; }\n\n.fa-tachometer-alt-fastest::before {\n content: \"\\f626\"; }\n\n.fa-person-breastfeeding::before {\n content: \"\\e53a\"; }\n\n.fa-apostrophe::before {\n content: \"\\27\"; }\n\n.fa-file-png::before {\n content: \"\\e666\"; }\n\n.fa-fire-hydrant::before {\n content: \"\\e17f\"; }\n\n.fa-right-to-bracket::before {\n content: \"\\f2f6\"; }\n\n.fa-sign-in-alt::before {\n content: \"\\f2f6\"; }\n\n.fa-video-plus::before {\n content: \"\\f4e1\"; }\n\n.fa-square-right::before {\n content: \"\\f352\"; }\n\n.fa-arrow-alt-square-right::before {\n content: \"\\f352\"; }\n\n.fa-comment-smile::before {\n content: \"\\f4b4\"; }\n\n.fa-venus::before {\n content: \"\\f221\"; }\n\n.fa-passport::before {\n content: \"\\f5ab\"; }\n\n.fa-inbox-in::before {\n content: \"\\f310\"; }\n\n.fa-inbox-arrow-down::before {\n content: \"\\f310\"; }\n\n.fa-heart-pulse::before {\n content: \"\\f21e\"; }\n\n.fa-heartbeat::before {\n content: \"\\f21e\"; }\n\n.fa-circle-8::before {\n content: \"\\e0f5\"; }\n\n.fa-clouds-moon::before {\n content: \"\\f745\"; }\n\n.fa-clock-ten-thirty::before {\n content: \"\\e355\"; }\n\n.fa-people-carry-box::before {\n content: \"\\f4ce\"; }\n\n.fa-people-carry::before {\n content: \"\\f4ce\"; }\n\n.fa-folder-user::before {\n content: \"\\e18e\"; }\n\n.fa-trash-can-xmark::before {\n content: \"\\e2ae\"; }\n\n.fa-temperature-high::before {\n content: \"\\f769\"; }\n\n.fa-microchip::before {\n content: \"\\f2db\"; }\n\n.fa-left-long-to-line::before {\n content: \"\\e41e\"; }\n\n.fa-crown::before {\n content: \"\\f521\"; }\n\n.fa-weight-hanging::before {\n content: \"\\f5cd\"; }\n\n.fa-xmarks-lines::before {\n content: \"\\e59a\"; }\n\n.fa-file-prescription::before {\n content: \"\\f572\"; }\n\n.fa-table-cells-lock::before {\n content: \"\\e679\"; }\n\n.fa-calendar-range::before {\n content: \"\\e0d6\"; }\n\n.fa-flower-daffodil::before {\n content: \"\\f800\"; }\n\n.fa-hand-back-point-up::before {\n content: \"\\e1a2\"; }\n\n.fa-weight-scale::before {\n content: \"\\f496\"; }\n\n.fa-weight::before {\n content: \"\\f496\"; }\n\n.fa-arrow-up-to-arc::before {\n content: \"\\e617\"; }\n\n.fa-star-exclamation::before {\n content: \"\\f2f3\"; }\n\n.fa-books::before {\n content: \"\\f5db\"; }\n\n.fa-user-group::before {\n content: \"\\f500\"; }\n\n.fa-user-friends::before {\n content: \"\\f500\"; }\n\n.fa-arrow-up-a-z::before {\n content: \"\\f15e\"; }\n\n.fa-sort-alpha-up::before {\n content: \"\\f15e\"; }\n\n.fa-layer-plus::before {\n content: \"\\f5ff\"; }\n\n.fa-layer-group-plus::before {\n content: \"\\f5ff\"; }\n\n.fa-play-pause::before {\n content: \"\\e22f\"; }\n\n.fa-block-question::before {\n content: \"\\e3dd\"; }\n\n.fa-snooze::before {\n content: \"\\f880\"; }\n\n.fa-zzz::before {\n content: \"\\f880\"; }\n\n.fa-scanner-image::before {\n content: \"\\f8f3\"; }\n\n.fa-tv-retro::before {\n content: \"\\f401\"; }\n\n.fa-square-t::before {\n content: \"\\e280\"; }\n\n.fa-farm::before {\n content: \"\\f864\"; }\n\n.fa-barn-silo::before {\n content: \"\\f864\"; }\n\n.fa-chess-knight::before {\n content: \"\\f441\"; }\n\n.fa-bars-sort::before {\n content: \"\\e0ae\"; }\n\n.fa-pallet-boxes::before {\n content: \"\\f483\"; }\n\n.fa-palette-boxes::before {\n content: \"\\f483\"; }\n\n.fa-pallet-alt::before {\n content: \"\\f483\"; }\n\n.fa-face-laugh-squint::before {\n content: \"\\f59b\"; }\n\n.fa-laugh-squint::before {\n content: \"\\f59b\"; }\n\n.fa-code-simple::before {\n content: \"\\e13d\"; }\n\n.fa-bolt-slash::before {\n content: \"\\e0b8\"; }\n\n.fa-panel-fire::before {\n content: \"\\e42f\"; }\n\n.fa-binary-circle-check::before {\n content: \"\\e33c\"; }\n\n.fa-comment-minus::before {\n content: \"\\f4b1\"; }\n\n.fa-burrito::before {\n content: \"\\f7ed\"; }\n\n.fa-violin::before {\n content: \"\\f8ed\"; }\n\n.fa-objects-column::before {\n content: \"\\e3c1\"; }\n\n.fa-square-chevron-down::before {\n content: \"\\f329\"; }\n\n.fa-chevron-square-down::before {\n content: \"\\f329\"; }\n\n.fa-comment-plus::before {\n content: \"\\f4b2\"; }\n\n.fa-triangle-instrument::before {\n content: \"\\f8e2\"; }\n\n.fa-triangle-music::before {\n content: \"\\f8e2\"; }\n\n.fa-wheelchair::before {\n content: \"\\f193\"; }\n\n.fa-user-pilot-tie::before {\n content: \"\\e2c1\"; }\n\n.fa-piano-keyboard::before {\n content: \"\\f8d5\"; }\n\n.fa-bed-empty::before {\n content: \"\\f8f9\"; }\n\n.fa-circle-arrow-up::before {\n content: \"\\f0aa\"; }\n\n.fa-arrow-circle-up::before {\n content: \"\\f0aa\"; }\n\n.fa-toggle-on::before {\n content: \"\\f205\"; }\n\n.fa-rectangle-vertical::before {\n content: \"\\f2fb\"; }\n\n.fa-rectangle-portrait::before {\n content: \"\\f2fb\"; }\n\n.fa-person-walking::before {\n content: \"\\f554\"; }\n\n.fa-walking::before {\n content: \"\\f554\"; }\n\n.fa-l::before {\n content: \"\\4c\"; }\n\n.fa-signal-stream::before {\n content: \"\\f8dd\"; }\n\n.fa-down-to-bracket::before {\n content: \"\\e4e7\"; }\n\n.fa-circle-z::before {\n content: \"\\e130\"; }\n\n.fa-stars::before {\n content: \"\\f762\"; }\n\n.fa-fire::before {\n content: \"\\f06d\"; }\n\n.fa-bed-pulse::before {\n content: \"\\f487\"; }\n\n.fa-procedures::before {\n content: \"\\f487\"; }\n\n.fa-house-day::before {\n content: \"\\e00e\"; }\n\n.fa-shuttle-space::before {\n content: \"\\f197\"; }\n\n.fa-space-shuttle::before {\n content: \"\\f197\"; }\n\n.fa-shirt-long-sleeve::before {\n content: \"\\e3c7\"; }\n\n.fa-chart-pie-simple::before {\n content: \"\\f64e\"; }\n\n.fa-chart-pie-alt::before {\n content: \"\\f64e\"; }\n\n.fa-face-laugh::before {\n content: \"\\f599\"; }\n\n.fa-laugh::before {\n content: \"\\f599\"; }\n\n.fa-folder-open::before {\n content: \"\\f07c\"; }\n\n.fa-album-collection-circle-user::before {\n content: \"\\e48f\"; }\n\n.fa-candy::before {\n content: \"\\e3e7\"; }\n\n.fa-bowl-hot::before {\n content: \"\\f823\"; }\n\n.fa-soup::before {\n content: \"\\f823\"; }\n\n.fa-flatbread::before {\n content: \"\\e40b\"; }\n\n.fa-heart-circle-plus::before {\n content: \"\\e500\"; }\n\n.fa-code-fork::before {\n content: \"\\e13b\"; }\n\n.fa-city::before {\n content: \"\\f64f\"; }\n\n.fa-signal-bars-weak::before {\n content: \"\\f691\"; }\n\n.fa-signal-alt-1::before {\n content: \"\\f691\"; }\n\n.fa-microphone-lines::before {\n content: \"\\f3c9\"; }\n\n.fa-microphone-alt::before {\n content: \"\\f3c9\"; }\n\n.fa-clock-twelve::before {\n content: \"\\e358\"; }\n\n.fa-pepper-hot::before {\n content: \"\\f816\"; }\n\n.fa-citrus-slice::before {\n content: \"\\e2f5\"; }\n\n.fa-sheep::before {\n content: \"\\f711\"; }\n\n.fa-unlock::before {\n content: \"\\f09c\"; }\n\n.fa-colon-sign::before {\n content: \"\\e140\"; }\n\n.fa-headset::before {\n content: \"\\f590\"; }\n\n.fa-badger-honey::before {\n content: \"\\f6b4\"; }\n\n.fa-h4::before {\n content: \"\\f86a\"; }\n\n.fa-store-slash::before {\n content: \"\\e071\"; }\n\n.fa-road-circle-xmark::before {\n content: \"\\e566\"; }\n\n.fa-signal-slash::before {\n content: \"\\f695\"; }\n\n.fa-user-minus::before {\n content: \"\\f503\"; }\n\n.fa-mars-stroke-up::before {\n content: \"\\f22a\"; }\n\n.fa-mars-stroke-v::before {\n content: \"\\f22a\"; }\n\n.fa-champagne-glasses::before {\n content: \"\\f79f\"; }\n\n.fa-glass-cheers::before {\n content: \"\\f79f\"; }\n\n.fa-taco::before {\n content: \"\\f826\"; }\n\n.fa-hexagon-plus::before {\n content: \"\\f300\"; }\n\n.fa-plus-hexagon::before {\n content: \"\\f300\"; }\n\n.fa-clipboard::before {\n content: \"\\f328\"; }\n\n.fa-house-circle-exclamation::before {\n content: \"\\e50a\"; }\n\n.fa-file-arrow-up::before {\n content: \"\\f574\"; }\n\n.fa-file-upload::before {\n content: \"\\f574\"; }\n\n.fa-wifi::before {\n content: \"\\f1eb\"; }\n\n.fa-wifi-3::before {\n content: \"\\f1eb\"; }\n\n.fa-wifi-strong::before {\n content: \"\\f1eb\"; }\n\n.fa-messages::before {\n content: \"\\f4b6\"; }\n\n.fa-comments-alt::before {\n content: \"\\f4b6\"; }\n\n.fa-bath::before {\n content: \"\\f2cd\"; }\n\n.fa-bathtub::before {\n content: \"\\f2cd\"; }\n\n.fa-umbrella-simple::before {\n content: \"\\e2bc\"; }\n\n.fa-umbrella-alt::before {\n content: \"\\e2bc\"; }\n\n.fa-rectangle-history-circle-plus::before {\n content: \"\\e4a3\"; }\n\n.fa-underline::before {\n content: \"\\f0cd\"; }\n\n.fa-prescription-bottle-pill::before {\n content: \"\\e5c0\"; }\n\n.fa-user-pen::before {\n content: \"\\f4ff\"; }\n\n.fa-user-edit::before {\n content: \"\\f4ff\"; }\n\n.fa-binary-slash::before {\n content: \"\\e33e\"; }\n\n.fa-square-o::before {\n content: \"\\e278\"; }\n\n.fa-caduceus::before {\n content: \"\\e681\"; }\n\n.fa-signature::before {\n content: \"\\f5b7\"; }\n\n.fa-stroopwafel::before {\n content: \"\\f551\"; }\n\n.fa-bold::before {\n content: \"\\f032\"; }\n\n.fa-anchor-lock::before {\n content: \"\\e4ad\"; }\n\n.fa-building-ngo::before {\n content: \"\\e4d7\"; }\n\n.fa-transporter-3::before {\n content: \"\\e045\"; }\n\n.fa-engine-warning::before {\n content: \"\\f5f2\"; }\n\n.fa-engine-exclamation::before {\n content: \"\\f5f2\"; }\n\n.fa-circle-down-right::before {\n content: \"\\e108\"; }\n\n.fa-square-k::before {\n content: \"\\e274\"; }\n\n.fa-manat-sign::before {\n content: \"\\e1d5\"; }\n\n.fa-money-check-pen::before {\n content: \"\\f872\"; }\n\n.fa-money-check-edit::before {\n content: \"\\f872\"; }\n\n.fa-not-equal::before {\n content: \"\\f53e\"; }\n\n.fa-border-top-left::before {\n content: \"\\f853\"; }\n\n.fa-border-style::before {\n content: \"\\f853\"; }\n\n.fa-map-location-dot::before {\n content: \"\\f5a0\"; }\n\n.fa-map-marked-alt::before {\n content: \"\\f5a0\"; }\n\n.fa-tilde::before {\n content: \"\\7e\"; }\n\n.fa-jedi::before {\n content: \"\\f669\"; }\n\n.fa-square-poll-vertical::before {\n content: \"\\f681\"; }\n\n.fa-poll::before {\n content: \"\\f681\"; }\n\n.fa-arrow-down-square-triangle::before {\n content: \"\\f889\"; }\n\n.fa-sort-shapes-down-alt::before {\n content: \"\\f889\"; }\n\n.fa-mug-hot::before {\n content: \"\\f7b6\"; }\n\n.fa-dog-leashed::before {\n content: \"\\f6d4\"; }\n\n.fa-car-battery::before {\n content: \"\\f5df\"; }\n\n.fa-battery-car::before {\n content: \"\\f5df\"; }\n\n.fa-face-downcast-sweat::before {\n content: \"\\e371\"; }\n\n.fa-mailbox-flag-up::before {\n content: \"\\e5bb\"; }\n\n.fa-memo-circle-info::before {\n content: \"\\e49a\"; }\n\n.fa-gift::before {\n content: \"\\f06b\"; }\n\n.fa-dice-two::before {\n content: \"\\f528\"; }\n\n.fa-volume::before {\n content: \"\\f6a8\"; }\n\n.fa-volume-medium::before {\n content: \"\\f6a8\"; }\n\n.fa-transporter-5::before {\n content: \"\\e2a6\"; }\n\n.fa-gauge-circle-bolt::before {\n content: \"\\e496\"; }\n\n.fa-coin-front::before {\n content: \"\\e3fc\"; }\n\n.fa-file-slash::before {\n content: \"\\e3a7\"; }\n\n.fa-message-arrow-up-right::before {\n content: \"\\e1dd\"; }\n\n.fa-treasure-chest::before {\n content: \"\\f723\"; }\n\n.fa-chess-queen::before {\n content: \"\\f445\"; }\n\n.fa-paintbrush-fine::before {\n content: \"\\f5a9\"; }\n\n.fa-paint-brush-alt::before {\n content: \"\\f5a9\"; }\n\n.fa-paint-brush-fine::before {\n content: \"\\f5a9\"; }\n\n.fa-paintbrush-alt::before {\n content: \"\\f5a9\"; }\n\n.fa-glasses::before {\n content: \"\\f530\"; }\n\n.fa-hood-cloak::before {\n content: \"\\f6ef\"; }\n\n.fa-square-quote::before {\n content: \"\\e329\"; }\n\n.fa-up-left::before {\n content: \"\\e2bd\"; }\n\n.fa-bring-front::before {\n content: \"\\f857\"; }\n\n.fa-chess-board::before {\n content: \"\\f43c\"; }\n\n.fa-burger-cheese::before {\n content: \"\\f7f1\"; }\n\n.fa-cheeseburger::before {\n content: \"\\f7f1\"; }\n\n.fa-building-circle-check::before {\n content: \"\\e4d2\"; }\n\n.fa-repeat-1::before {\n content: \"\\f365\"; }\n\n.fa-arrow-down-to-line::before {\n content: \"\\f33d\"; }\n\n.fa-arrow-to-bottom::before {\n content: \"\\f33d\"; }\n\n.fa-grid-5::before {\n content: \"\\e199\"; }\n\n.fa-swap-arrows::before {\n content: \"\\e60a\"; }\n\n.fa-right-long-to-line::before {\n content: \"\\e444\"; }\n\n.fa-person-chalkboard::before {\n content: \"\\e53d\"; }\n\n.fa-mars-stroke-right::before {\n content: \"\\f22b\"; }\n\n.fa-mars-stroke-h::before {\n content: \"\\f22b\"; }\n\n.fa-hand-back-fist::before {\n content: \"\\f255\"; }\n\n.fa-hand-rock::before {\n content: \"\\f255\"; }\n\n.fa-grid-round-5::before {\n content: \"\\e5de\"; }\n\n.fa-tally::before {\n content: \"\\f69c\"; }\n\n.fa-tally-5::before {\n content: \"\\f69c\"; }\n\n.fa-square-caret-up::before {\n content: \"\\f151\"; }\n\n.fa-caret-square-up::before {\n content: \"\\f151\"; }\n\n.fa-cloud-showers-water::before {\n content: \"\\e4e4\"; }\n\n.fa-chart-bar::before {\n content: \"\\f080\"; }\n\n.fa-bar-chart::before {\n content: \"\\f080\"; }\n\n.fa-hands-bubbles::before {\n content: \"\\e05e\"; }\n\n.fa-hands-wash::before {\n content: \"\\e05e\"; }\n\n.fa-less-than-equal::before {\n content: \"\\f537\"; }\n\n.fa-train::before {\n content: \"\\f238\"; }\n\n.fa-up-from-dotted-line::before {\n content: \"\\e456\"; }\n\n.fa-eye-low-vision::before {\n content: \"\\f2a8\"; }\n\n.fa-low-vision::before {\n content: \"\\f2a8\"; }\n\n.fa-traffic-light-go::before {\n content: \"\\f638\"; }\n\n.fa-face-exhaling::before {\n content: \"\\e480\"; }\n\n.fa-sensor-fire::before {\n content: \"\\e02a\"; }\n\n.fa-user-unlock::before {\n content: \"\\e058\"; }\n\n.fa-hexagon-divide::before {\n content: \"\\e1ad\"; }\n\n.fa-00::before {\n content: \"\\e467\"; }\n\n.fa-crow::before {\n content: \"\\f520\"; }\n\n.fa-cassette-betamax::before {\n content: \"\\f8a4\"; }\n\n.fa-betamax::before {\n content: \"\\f8a4\"; }\n\n.fa-sailboat::before {\n content: \"\\e445\"; }\n\n.fa-window-restore::before {\n content: \"\\f2d2\"; }\n\n.fa-nfc-magnifying-glass::before {\n content: \"\\e1f9\"; }\n\n.fa-file-binary::before {\n content: \"\\e175\"; }\n\n.fa-circle-v::before {\n content: \"\\e12a\"; }\n\n.fa-square-plus::before {\n content: \"\\f0fe\"; }\n\n.fa-plus-square::before {\n content: \"\\f0fe\"; }\n\n.fa-bowl-scoops::before {\n content: \"\\e3df\"; }\n\n.fa-mistletoe::before {\n content: \"\\f7b4\"; }\n\n.fa-custard::before {\n content: \"\\e403\"; }\n\n.fa-lacrosse-stick::before {\n content: \"\\e3b5\"; }\n\n.fa-hockey-mask::before {\n content: \"\\f6ee\"; }\n\n.fa-sunrise::before {\n content: \"\\f766\"; }\n\n.fa-subtitles::before {\n content: \"\\e60f\"; }\n\n.fa-panel-ews::before {\n content: \"\\e42e\"; }\n\n.fa-torii-gate::before {\n content: \"\\f6a1\"; }\n\n.fa-cloud-exclamation::before {\n content: \"\\e491\"; }\n\n.fa-message-lines::before {\n content: \"\\f4a6\"; }\n\n.fa-comment-alt-lines::before {\n content: \"\\f4a6\"; }\n\n.fa-frog::before {\n content: \"\\f52e\"; }\n\n.fa-bucket::before {\n content: \"\\e4cf\"; }\n\n.fa-floppy-disk-pen::before {\n content: \"\\e182\"; }\n\n.fa-image::before {\n content: \"\\f03e\"; }\n\n.fa-window-frame::before {\n content: \"\\e04f\"; }\n\n.fa-microphone::before {\n content: \"\\f130\"; }\n\n.fa-cow::before {\n content: \"\\f6c8\"; }\n\n.fa-file-zip::before {\n content: \"\\e5ee\"; }\n\n.fa-square-ring::before {\n content: \"\\e44f\"; }\n\n.fa-down-from-line::before {\n content: \"\\f349\"; }\n\n.fa-arrow-alt-from-top::before {\n content: \"\\f349\"; }\n\n.fa-caret-up::before {\n content: \"\\f0d8\"; }\n\n.fa-shield-xmark::before {\n content: \"\\e24c\"; }\n\n.fa-shield-times::before {\n content: \"\\e24c\"; }\n\n.fa-screwdriver::before {\n content: \"\\f54a\"; }\n\n.fa-circle-sort-down::before {\n content: \"\\e031\"; }\n\n.fa-sort-circle-down::before {\n content: \"\\e031\"; }\n\n.fa-folder-closed::before {\n content: \"\\e185\"; }\n\n.fa-house-tsunami::before {\n content: \"\\e515\"; }\n\n.fa-square-nfi::before {\n content: \"\\e576\"; }\n\n.fa-forklift::before {\n content: \"\\f47a\"; }\n\n.fa-arrow-up-from-ground-water::before {\n content: \"\\e4b5\"; }\n\n.fa-bracket-square-right::before {\n content: \"\\5d\"; }\n\n.fa-martini-glass::before {\n content: \"\\f57b\"; }\n\n.fa-glass-martini-alt::before {\n content: \"\\f57b\"; }\n\n.fa-rotate-left::before {\n content: \"\\f2ea\"; }\n\n.fa-rotate-back::before {\n content: \"\\f2ea\"; }\n\n.fa-rotate-backward::before {\n content: \"\\f2ea\"; }\n\n.fa-undo-alt::before {\n content: \"\\f2ea\"; }\n\n.fa-table-columns::before {\n content: \"\\f0db\"; }\n\n.fa-columns::before {\n content: \"\\f0db\"; }\n\n.fa-square-a::before {\n content: \"\\e25f\"; }\n\n.fa-tick::before {\n content: \"\\e32f\"; }\n\n.fa-lemon::before {\n content: \"\\f094\"; }\n\n.fa-head-side-mask::before {\n content: \"\\e063\"; }\n\n.fa-handshake::before {\n content: \"\\f2b5\"; }\n\n.fa-gem::before {\n content: \"\\f3a5\"; }\n\n.fa-dolly::before {\n content: \"\\f472\"; }\n\n.fa-dolly-box::before {\n content: \"\\f472\"; }\n\n.fa-smoking::before {\n content: \"\\f48d\"; }\n\n.fa-minimize::before {\n content: \"\\f78c\"; }\n\n.fa-compress-arrows-alt::before {\n content: \"\\f78c\"; }\n\n.fa-refrigerator::before {\n content: \"\\e026\"; }\n\n.fa-monument::before {\n content: \"\\f5a6\"; }\n\n.fa-octagon-xmark::before {\n content: \"\\f2f0\"; }\n\n.fa-times-octagon::before {\n content: \"\\f2f0\"; }\n\n.fa-xmark-octagon::before {\n content: \"\\f2f0\"; }\n\n.fa-align-slash::before {\n content: \"\\f846\"; }\n\n.fa-snowplow::before {\n content: \"\\f7d2\"; }\n\n.fa-angles-right::before {\n content: \"\\f101\"; }\n\n.fa-angle-double-right::before {\n content: \"\\f101\"; }\n\n.fa-truck-ramp-couch::before {\n content: \"\\f4dd\"; }\n\n.fa-truck-couch::before {\n content: \"\\f4dd\"; }\n\n.fa-cannabis::before {\n content: \"\\f55f\"; }\n\n.fa-circle-play::before {\n content: \"\\f144\"; }\n\n.fa-play-circle::before {\n content: \"\\f144\"; }\n\n.fa-arrow-up-right-and-arrow-down-left-from-center::before {\n content: \"\\e0a0\"; }\n\n.fa-location-arrow-up::before {\n content: \"\\e63a\"; }\n\n.fa-tablets::before {\n content: \"\\f490\"; }\n\n.fa-360-degrees::before {\n content: \"\\e2dc\"; }\n\n.fa-ethernet::before {\n content: \"\\f796\"; }\n\n.fa-euro-sign::before {\n content: \"\\f153\"; }\n\n.fa-eur::before {\n content: \"\\f153\"; }\n\n.fa-euro::before {\n content: \"\\f153\"; }\n\n.fa-chair::before {\n content: \"\\f6c0\"; }\n\n.fa-circle-check::before {\n content: \"\\f058\"; }\n\n.fa-check-circle::before {\n content: \"\\f058\"; }\n\n.fa-square-dashed-circle-plus::before {\n content: \"\\e5c2\"; }\n\n.fa-hand-holding-circle-dollar::before {\n content: \"\\e621\"; }\n\n.fa-money-simple-from-bracket::before {\n content: \"\\e313\"; }\n\n.fa-bat::before {\n content: \"\\f6b5\"; }\n\n.fa-circle-stop::before {\n content: \"\\f28d\"; }\n\n.fa-stop-circle::before {\n content: \"\\f28d\"; }\n\n.fa-head-side-headphones::before {\n content: \"\\f8c2\"; }\n\n.fa-phone-rotary::before {\n content: \"\\f8d3\"; }\n\n.fa-arrow-up-to-bracket::before {\n content: \"\\e66a\"; }\n\n.fa-compass-drafting::before {\n content: \"\\f568\"; }\n\n.fa-drafting-compass::before {\n content: \"\\f568\"; }\n\n.fa-plate-wheat::before {\n content: \"\\e55a\"; }\n\n.fa-calendar-circle-minus::before {\n content: \"\\e46f\"; }\n\n.fa-chopsticks::before {\n content: \"\\e3f7\"; }\n\n.fa-car-wrench::before {\n content: \"\\f5e3\"; }\n\n.fa-car-mechanic::before {\n content: \"\\f5e3\"; }\n\n.fa-icicles::before {\n content: \"\\f7ad\"; }\n\n.fa-person-shelter::before {\n content: \"\\e54f\"; }\n\n.fa-neuter::before {\n content: \"\\f22c\"; }\n\n.fa-id-badge::before {\n content: \"\\f2c1\"; }\n\n.fa-kazoo::before {\n content: \"\\f8c7\"; }\n\n.fa-marker::before {\n content: \"\\f5a1\"; }\n\n.fa-bin-bottles::before {\n content: \"\\e5f5\"; }\n\n.fa-face-laugh-beam::before {\n content: \"\\f59a\"; }\n\n.fa-laugh-beam::before {\n content: \"\\f59a\"; }\n\n.fa-square-arrow-down-left::before {\n content: \"\\e261\"; }\n\n.fa-battery-bolt::before {\n content: \"\\f376\"; }\n\n.fa-tree-large::before {\n content: \"\\f7dd\"; }\n\n.fa-helicopter-symbol::before {\n content: \"\\e502\"; }\n\n.fa-aperture::before {\n content: \"\\e2df\"; }\n\n.fa-universal-access::before {\n content: \"\\f29a\"; }\n\n.fa-gear-complex::before {\n content: \"\\e5e9\"; }\n\n.fa-file-magnifying-glass::before {\n content: \"\\f865\"; }\n\n.fa-file-search::before {\n content: \"\\f865\"; }\n\n.fa-up-right::before {\n content: \"\\e2be\"; }\n\n.fa-circle-chevron-up::before {\n content: \"\\f139\"; }\n\n.fa-chevron-circle-up::before {\n content: \"\\f139\"; }\n\n.fa-user-police::before {\n content: \"\\e333\"; }\n\n.fa-lari-sign::before {\n content: \"\\e1c8\"; }\n\n.fa-volcano::before {\n content: \"\\f770\"; }\n\n.fa-teddy-bear::before {\n content: \"\\e3cf\"; }\n\n.fa-stocking::before {\n content: \"\\f7d5\"; }\n\n.fa-person-walking-dashed-line-arrow-right::before {\n content: \"\\e553\"; }\n\n.fa-image-slash::before {\n content: \"\\e1b7\"; }\n\n.fa-mask-snorkel::before {\n content: \"\\e3b7\"; }\n\n.fa-smoke::before {\n content: \"\\f760\"; }\n\n.fa-sterling-sign::before {\n content: \"\\f154\"; }\n\n.fa-gbp::before {\n content: \"\\f154\"; }\n\n.fa-pound-sign::before {\n content: \"\\f154\"; }\n\n.fa-battery-exclamation::before {\n content: \"\\e0b0\"; }\n\n.fa-viruses::before {\n content: \"\\e076\"; }\n\n.fa-square-person-confined::before {\n content: \"\\e577\"; }\n\n.fa-user-tie::before {\n content: \"\\f508\"; }\n\n.fa-up-to-bracket::before {\n content: \"\\e66e\"; }\n\n.fa-arrow-down-long::before {\n content: \"\\f175\"; }\n\n.fa-long-arrow-down::before {\n content: \"\\f175\"; }\n\n.fa-tent-arrow-down-to-line::before {\n content: \"\\e57e\"; }\n\n.fa-certificate::before {\n content: \"\\f0a3\"; }\n\n.fa-crystal-ball::before {\n content: \"\\e362\"; }\n\n.fa-reply-all::before {\n content: \"\\f122\"; }\n\n.fa-mail-reply-all::before {\n content: \"\\f122\"; }\n\n.fa-suitcase::before {\n content: \"\\f0f2\"; }\n\n.fa-person-skating::before {\n content: \"\\f7c5\"; }\n\n.fa-skating::before {\n content: \"\\f7c5\"; }\n\n.fa-star-shooting::before {\n content: \"\\e036\"; }\n\n.fa-binary-lock::before {\n content: \"\\e33d\"; }\n\n.fa-filter-circle-dollar::before {\n content: \"\\f662\"; }\n\n.fa-funnel-dollar::before {\n content: \"\\f662\"; }\n\n.fa-camera-retro::before {\n content: \"\\f083\"; }\n\n.fa-circle-arrow-down::before {\n content: \"\\f0ab\"; }\n\n.fa-arrow-circle-down::before {\n content: \"\\f0ab\"; }\n\n.fa-comment-pen::before {\n content: \"\\f4ae\"; }\n\n.fa-comment-edit::before {\n content: \"\\f4ae\"; }\n\n.fa-file-import::before {\n content: \"\\f56f\"; }\n\n.fa-arrow-right-to-file::before {\n content: \"\\f56f\"; }\n\n.fa-banjo::before {\n content: \"\\f8a3\"; }\n\n.fa-square-arrow-up-right::before {\n content: \"\\f14c\"; }\n\n.fa-external-link-square::before {\n content: \"\\f14c\"; }\n\n.fa-light-emergency-on::before {\n content: \"\\e420\"; }\n\n.fa-kerning::before {\n content: \"\\f86f\"; }\n\n.fa-box-open::before {\n content: \"\\f49e\"; }\n\n.fa-square-f::before {\n content: \"\\e270\"; }\n\n.fa-scroll::before {\n content: \"\\f70e\"; }\n\n.fa-spa::before {\n content: \"\\f5bb\"; }\n\n.fa-arrow-left-from-line::before {\n content: \"\\f344\"; }\n\n.fa-arrow-from-right::before {\n content: \"\\f344\"; }\n\n.fa-strawberry::before {\n content: \"\\e32b\"; }\n\n.fa-location-pin-lock::before {\n content: \"\\e51f\"; }\n\n.fa-pause::before {\n content: \"\\f04c\"; }\n\n.fa-clock-eight-thirty::before {\n content: \"\\e346\"; }\n\n.fa-plane-engines::before {\n content: \"\\f3de\"; }\n\n.fa-plane-alt::before {\n content: \"\\f3de\"; }\n\n.fa-hill-avalanche::before {\n content: \"\\e507\"; }\n\n.fa-temperature-empty::before {\n content: \"\\f2cb\"; }\n\n.fa-temperature-0::before {\n content: \"\\f2cb\"; }\n\n.fa-thermometer-0::before {\n content: \"\\f2cb\"; }\n\n.fa-thermometer-empty::before {\n content: \"\\f2cb\"; }\n\n.fa-bomb::before {\n content: \"\\f1e2\"; }\n\n.fa-gauge-low::before {\n content: \"\\f627\"; }\n\n.fa-tachometer-alt-slow::before {\n content: \"\\f627\"; }\n\n.fa-registered::before {\n content: \"\\f25d\"; }\n\n.fa-trash-can-plus::before {\n content: \"\\e2ac\"; }\n\n.fa-address-card::before {\n content: \"\\f2bb\"; }\n\n.fa-contact-card::before {\n content: \"\\f2bb\"; }\n\n.fa-vcard::before {\n content: \"\\f2bb\"; }\n\n.fa-scale-unbalanced-flip::before {\n content: \"\\f516\"; }\n\n.fa-balance-scale-right::before {\n content: \"\\f516\"; }\n\n.fa-globe-snow::before {\n content: \"\\f7a3\"; }\n\n.fa-subscript::before {\n content: \"\\f12c\"; }\n\n.fa-diamond-turn-right::before {\n content: \"\\f5eb\"; }\n\n.fa-directions::before {\n content: \"\\f5eb\"; }\n\n.fa-integral::before {\n content: \"\\f667\"; }\n\n.fa-burst::before {\n content: \"\\e4dc\"; }\n\n.fa-house-laptop::before {\n content: \"\\e066\"; }\n\n.fa-laptop-house::before {\n content: \"\\e066\"; }\n\n.fa-face-tired::before {\n content: \"\\f5c8\"; }\n\n.fa-tired::before {\n content: \"\\f5c8\"; }\n\n.fa-money-bills::before {\n content: \"\\e1f3\"; }\n\n.fa-blinds-raised::before {\n content: \"\\f8fd\"; }\n\n.fa-smog::before {\n content: \"\\f75f\"; }\n\n.fa-ufo-beam::before {\n content: \"\\e048\"; }\n\n.fa-circle-caret-up::before {\n content: \"\\f331\"; }\n\n.fa-caret-circle-up::before {\n content: \"\\f331\"; }\n\n.fa-user-vneck-hair-long::before {\n content: \"\\e463\"; }\n\n.fa-square-a-lock::before {\n content: \"\\e44d\"; }\n\n.fa-crutch::before {\n content: \"\\f7f7\"; }\n\n.fa-gas-pump-slash::before {\n content: \"\\f5f4\"; }\n\n.fa-cloud-arrow-up::before {\n content: \"\\f0ee\"; }\n\n.fa-cloud-upload::before {\n content: \"\\f0ee\"; }\n\n.fa-cloud-upload-alt::before {\n content: \"\\f0ee\"; }\n\n.fa-palette::before {\n content: \"\\f53f\"; }\n\n.fa-transporter-4::before {\n content: \"\\e2a5\"; }\n\n.fa-chart-mixed-up-circle-currency::before {\n content: \"\\e5d8\"; }\n\n.fa-objects-align-right::before {\n content: \"\\e3bf\"; }\n\n.fa-arrows-turn-right::before {\n content: \"\\e4c0\"; }\n\n.fa-vest::before {\n content: \"\\e085\"; }\n\n.fa-pig::before {\n content: \"\\f706\"; }\n\n.fa-inbox-full::before {\n content: \"\\e1ba\"; }\n\n.fa-circle-envelope::before {\n content: \"\\e10c\"; }\n\n.fa-envelope-circle::before {\n content: \"\\e10c\"; }\n\n.fa-triangle-person-digging::before {\n content: \"\\f85d\"; }\n\n.fa-construction::before {\n content: \"\\f85d\"; }\n\n.fa-ferry::before {\n content: \"\\e4ea\"; }\n\n.fa-bullseye-arrow::before {\n content: \"\\f648\"; }\n\n.fa-arrows-down-to-people::before {\n content: \"\\e4b9\"; }\n\n.fa-seedling::before {\n content: \"\\f4d8\"; }\n\n.fa-sprout::before {\n content: \"\\f4d8\"; }\n\n.fa-clock-seven::before {\n content: \"\\e350\"; }\n\n.fa-left-right::before {\n content: \"\\f337\"; }\n\n.fa-arrows-alt-h::before {\n content: \"\\f337\"; }\n\n.fa-boxes-packing::before {\n content: \"\\e4c7\"; }\n\n.fa-circle-arrow-left::before {\n content: \"\\f0a8\"; }\n\n.fa-arrow-circle-left::before {\n content: \"\\f0a8\"; }\n\n.fa-flashlight::before {\n content: \"\\f8b8\"; }\n\n.fa-file-jpg::before {\n content: \"\\e646\"; }\n\n.fa-group-arrows-rotate::before {\n content: \"\\e4f6\"; }\n\n.fa-bowl-food::before {\n content: \"\\e4c6\"; }\n\n.fa-square-9::before {\n content: \"\\e25e\"; }\n\n.fa-candy-cane::before {\n content: \"\\f786\"; }\n\n.fa-arrow-down-wide-short::before {\n content: \"\\f160\"; }\n\n.fa-sort-amount-asc::before {\n content: \"\\f160\"; }\n\n.fa-sort-amount-down::before {\n content: \"\\f160\"; }\n\n.fa-square-dollar::before {\n content: \"\\f2e9\"; }\n\n.fa-dollar-square::before {\n content: \"\\f2e9\"; }\n\n.fa-usd-square::before {\n content: \"\\f2e9\"; }\n\n.fa-phone-arrow-right::before {\n content: \"\\e5be\"; }\n\n.fa-hand-holding-seedling::before {\n content: \"\\f4bf\"; }\n\n.fa-message-check::before {\n content: \"\\f4a2\"; }\n\n.fa-comment-alt-check::before {\n content: \"\\f4a2\"; }\n\n.fa-cloud-bolt::before {\n content: \"\\f76c\"; }\n\n.fa-thunderstorm::before {\n content: \"\\f76c\"; }\n\n.fa-chart-line-up-down::before {\n content: \"\\e5d7\"; }\n\n.fa-text-slash::before {\n content: \"\\f87d\"; }\n\n.fa-remove-format::before {\n content: \"\\f87d\"; }\n\n.fa-watch::before {\n content: \"\\f2e1\"; }\n\n.fa-circle-down-left::before {\n content: \"\\e107\"; }\n\n.fa-text::before {\n content: \"\\f893\"; }\n\n.fa-projector::before {\n content: \"\\f8d6\"; }\n\n.fa-face-smile-wink::before {\n content: \"\\f4da\"; }\n\n.fa-smile-wink::before {\n content: \"\\f4da\"; }\n\n.fa-tombstone-blank::before {\n content: \"\\f721\"; }\n\n.fa-tombstone-alt::before {\n content: \"\\f721\"; }\n\n.fa-chess-king-piece::before {\n content: \"\\f440\"; }\n\n.fa-chess-king-alt::before {\n content: \"\\f440\"; }\n\n.fa-circle-6::before {\n content: \"\\e0f3\"; }\n\n.fa-waves-sine::before {\n content: \"\\e65d\"; }\n\n.fa-left::before {\n content: \"\\f355\"; }\n\n.fa-arrow-alt-left::before {\n content: \"\\f355\"; }\n\n.fa-file-word::before {\n content: \"\\f1c2\"; }\n\n.fa-file-powerpoint::before {\n content: \"\\f1c4\"; }\n\n.fa-square-down::before {\n content: \"\\f350\"; }\n\n.fa-arrow-alt-square-down::before {\n content: \"\\f350\"; }\n\n.fa-objects-align-center-vertical::before {\n content: \"\\e3bd\"; }\n\n.fa-arrows-left-right::before {\n content: \"\\f07e\"; }\n\n.fa-arrows-h::before {\n content: \"\\f07e\"; }\n\n.fa-house-lock::before {\n content: \"\\e510\"; }\n\n.fa-cloud-arrow-down::before {\n content: \"\\f0ed\"; }\n\n.fa-cloud-download::before {\n content: \"\\f0ed\"; }\n\n.fa-cloud-download-alt::before {\n content: \"\\f0ed\"; }\n\n.fa-wreath::before {\n content: \"\\f7e2\"; }\n\n.fa-children::before {\n content: \"\\e4e1\"; }\n\n.fa-meter-droplet::before {\n content: \"\\e1ea\"; }\n\n.fa-chalkboard::before {\n content: \"\\f51b\"; }\n\n.fa-blackboard::before {\n content: \"\\f51b\"; }\n\n.fa-user-large-slash::before {\n content: \"\\f4fa\"; }\n\n.fa-user-alt-slash::before {\n content: \"\\f4fa\"; }\n\n.fa-signal-strong::before {\n content: \"\\f68f\"; }\n\n.fa-signal-4::before {\n content: \"\\f68f\"; }\n\n.fa-lollipop::before {\n content: \"\\e424\"; }\n\n.fa-lollypop::before {\n content: \"\\e424\"; }\n\n.fa-list-tree::before {\n content: \"\\e1d2\"; }\n\n.fa-envelope-open::before {\n content: \"\\f2b6\"; }\n\n.fa-draw-circle::before {\n content: \"\\f5ed\"; }\n\n.fa-cat-space::before {\n content: \"\\e001\"; }\n\n.fa-handshake-simple-slash::before {\n content: \"\\e05f\"; }\n\n.fa-handshake-alt-slash::before {\n content: \"\\e05f\"; }\n\n.fa-rabbit-running::before {\n content: \"\\f709\"; }\n\n.fa-rabbit-fast::before {\n content: \"\\f709\"; }\n\n.fa-memo-pad::before {\n content: \"\\e1da\"; }\n\n.fa-mattress-pillow::before {\n content: \"\\e525\"; }\n\n.fa-alarm-plus::before {\n content: \"\\f844\"; }\n\n.fa-alicorn::before {\n content: \"\\f6b0\"; }\n\n.fa-comment-question::before {\n content: \"\\e14b\"; }\n\n.fa-gingerbread-man::before {\n content: \"\\f79d\"; }\n\n.fa-guarani-sign::before {\n content: \"\\e19a\"; }\n\n.fa-burger-fries::before {\n content: \"\\e0cd\"; }\n\n.fa-mug-tea::before {\n content: \"\\f875\"; }\n\n.fa-border-top::before {\n content: \"\\f855\"; }\n\n.fa-arrows-rotate::before {\n content: \"\\f021\"; }\n\n.fa-refresh::before {\n content: \"\\f021\"; }\n\n.fa-sync::before {\n content: \"\\f021\"; }\n\n.fa-circle-book-open::before {\n content: \"\\e0ff\"; }\n\n.fa-book-circle::before {\n content: \"\\e0ff\"; }\n\n.fa-arrows-to-dotted-line::before {\n content: \"\\e0a6\"; }\n\n.fa-fire-extinguisher::before {\n content: \"\\f134\"; }\n\n.fa-magnifying-glass-arrows-rotate::before {\n content: \"\\e65e\"; }\n\n.fa-garage-open::before {\n content: \"\\e00b\"; }\n\n.fa-shelves-empty::before {\n content: \"\\e246\"; }\n\n.fa-cruzeiro-sign::before {\n content: \"\\e152\"; }\n\n.fa-watch-apple::before {\n content: \"\\e2cb\"; }\n\n.fa-watch-calculator::before {\n content: \"\\f8f0\"; }\n\n.fa-list-dropdown::before {\n content: \"\\e1cf\"; }\n\n.fa-cabinet-filing::before {\n content: \"\\f64b\"; }\n\n.fa-burger-soda::before {\n content: \"\\f858\"; }\n\n.fa-square-arrow-up::before {\n content: \"\\f33c\"; }\n\n.fa-arrow-square-up::before {\n content: \"\\f33c\"; }\n\n.fa-greater-than-equal::before {\n content: \"\\f532\"; }\n\n.fa-pallet-box::before {\n content: \"\\e208\"; }\n\n.fa-face-confounded::before {\n content: \"\\e36c\"; }\n\n.fa-shield-halved::before {\n content: \"\\f3ed\"; }\n\n.fa-shield-alt::before {\n content: \"\\f3ed\"; }\n\n.fa-truck-plow::before {\n content: \"\\f7de\"; }\n\n.fa-book-atlas::before {\n content: \"\\f558\"; }\n\n.fa-atlas::before {\n content: \"\\f558\"; }\n\n.fa-virus::before {\n content: \"\\e074\"; }\n\n.fa-grid-round-2::before {\n content: \"\\e5db\"; }\n\n.fa-comment-middle-top::before {\n content: \"\\e14a\"; }\n\n.fa-wave::before {\n content: \"\\e65b\"; }\n\n.fa-envelope-circle-check::before {\n content: \"\\e4e8\"; }\n\n.fa-layer-group::before {\n content: \"\\f5fd\"; }\n\n.fa-restroom-simple::before {\n content: \"\\e23a\"; }\n\n.fa-arrows-to-dot::before {\n content: \"\\e4be\"; }\n\n.fa-border-outer::before {\n content: \"\\f851\"; }\n\n.fa-hashtag-lock::before {\n content: \"\\e415\"; }\n\n.fa-clock-two-thirty::before {\n content: \"\\e35b\"; }\n\n.fa-archway::before {\n content: \"\\f557\"; }\n\n.fa-heart-circle-check::before {\n content: \"\\e4fd\"; }\n\n.fa-house-chimney-crack::before {\n content: \"\\f6f1\"; }\n\n.fa-house-damage::before {\n content: \"\\f6f1\"; }\n\n.fa-file-zipper::before {\n content: \"\\f1c6\"; }\n\n.fa-file-archive::before {\n content: \"\\f1c6\"; }\n\n.fa-ticket-perforated::before {\n content: \"\\e63e\"; }\n\n.fa-heart-half::before {\n content: \"\\e1ab\"; }\n\n.fa-comment-check::before {\n content: \"\\f4ac\"; }\n\n.fa-square::before {\n content: \"\\f0c8\"; }\n\n.fa-memo::before {\n content: \"\\e1d8\"; }\n\n.fa-martini-glass-empty::before {\n content: \"\\f000\"; }\n\n.fa-glass-martini::before {\n content: \"\\f000\"; }\n\n.fa-couch::before {\n content: \"\\f4b8\"; }\n\n.fa-cedi-sign::before {\n content: \"\\e0df\"; }\n\n.fa-italic::before {\n content: \"\\f033\"; }\n\n.fa-glass-citrus::before {\n content: \"\\f869\"; }\n\n.fa-calendar-lines-pen::before {\n content: \"\\e472\"; }\n\n.fa-table-cells-column-lock::before {\n content: \"\\e678\"; }\n\n.fa-church::before {\n content: \"\\f51d\"; }\n\n.fa-person-snowmobiling::before {\n content: \"\\f7d1\"; }\n\n.fa-snowmobile::before {\n content: \"\\f7d1\"; }\n\n.fa-face-hushed::before {\n content: \"\\e37b\"; }\n\n.fa-comments-dollar::before {\n content: \"\\f653\"; }\n\n.fa-tickets-simple::before {\n content: \"\\e659\"; }\n\n.fa-pickaxe::before {\n content: \"\\e5bf\"; }\n\n.fa-link-simple-slash::before {\n content: \"\\e1ce\"; }\n\n.fa-democrat::before {\n content: \"\\f747\"; }\n\n.fa-face-confused::before {\n content: \"\\e36d\"; }\n\n.fa-pinball::before {\n content: \"\\e229\"; }\n\n.fa-z::before {\n content: \"\\5a\"; }\n\n.fa-person-skiing::before {\n content: \"\\f7c9\"; }\n\n.fa-skiing::before {\n content: \"\\f7c9\"; }\n\n.fa-deer::before {\n content: \"\\f78e\"; }\n\n.fa-input-pipe::before {\n content: \"\\e1be\"; }\n\n.fa-road-lock::before {\n content: \"\\e567\"; }\n\n.fa-a::before {\n content: \"\\41\"; }\n\n.fa-bookmark-slash::before {\n content: \"\\e0c2\"; }\n\n.fa-temperature-arrow-down::before {\n content: \"\\e03f\"; }\n\n.fa-temperature-down::before {\n content: \"\\e03f\"; }\n\n.fa-mace::before {\n content: \"\\f6f8\"; }\n\n.fa-feather-pointed::before {\n content: \"\\f56b\"; }\n\n.fa-feather-alt::before {\n content: \"\\f56b\"; }\n\n.fa-sausage::before {\n content: \"\\f820\"; }\n\n.fa-trash-can-clock::before {\n content: \"\\e2aa\"; }\n\n.fa-p::before {\n content: \"\\50\"; }\n\n.fa-broom-wide::before {\n content: \"\\e5d1\"; }\n\n.fa-snowflake::before {\n content: \"\\f2dc\"; }\n\n.fa-stomach::before {\n content: \"\\f623\"; }\n\n.fa-newspaper::before {\n content: \"\\f1ea\"; }\n\n.fa-rectangle-ad::before {\n content: \"\\f641\"; }\n\n.fa-ad::before {\n content: \"\\f641\"; }\n\n.fa-guitar-electric::before {\n content: \"\\f8be\"; }\n\n.fa-arrow-turn-down-right::before {\n content: \"\\e3d6\"; }\n\n.fa-moon-cloud::before {\n content: \"\\f754\"; }\n\n.fa-bread-slice-butter::before {\n content: \"\\e3e1\"; }\n\n.fa-circle-arrow-right::before {\n content: \"\\f0a9\"; }\n\n.fa-arrow-circle-right::before {\n content: \"\\f0a9\"; }\n\n.fa-user-group-crown::before {\n content: \"\\f6a5\"; }\n\n.fa-users-crown::before {\n content: \"\\f6a5\"; }\n\n.fa-circle-i::before {\n content: \"\\e111\"; }\n\n.fa-toilet-paper-check::before {\n content: \"\\e5b2\"; }\n\n.fa-filter-circle-xmark::before {\n content: \"\\e17b\"; }\n\n.fa-locust::before {\n content: \"\\e520\"; }\n\n.fa-sort::before {\n content: \"\\f0dc\"; }\n\n.fa-unsorted::before {\n content: \"\\f0dc\"; }\n\n.fa-list-ol::before {\n content: \"\\f0cb\"; }\n\n.fa-list-1-2::before {\n content: \"\\f0cb\"; }\n\n.fa-list-numeric::before {\n content: \"\\f0cb\"; }\n\n.fa-chart-waterfall::before {\n content: \"\\e0eb\"; }\n\n.fa-sparkle::before {\n content: \"\\e5d6\"; }\n\n.fa-face-party::before {\n content: \"\\e383\"; }\n\n.fa-kidneys::before {\n content: \"\\f5fb\"; }\n\n.fa-wifi-exclamation::before {\n content: \"\\e2cf\"; }\n\n.fa-chart-network::before {\n content: \"\\f78a\"; }\n\n.fa-person-dress-burst::before {\n content: \"\\e544\"; }\n\n.fa-dice-d4::before {\n content: \"\\f6d0\"; }\n\n.fa-money-check-dollar::before {\n content: \"\\f53d\"; }\n\n.fa-money-check-alt::before {\n content: \"\\f53d\"; }\n\n.fa-vector-square::before {\n content: \"\\f5cb\"; }\n\n.fa-bread-slice::before {\n content: \"\\f7ec\"; }\n\n.fa-language::before {\n content: \"\\f1ab\"; }\n\n.fa-wheat-awn-slash::before {\n content: \"\\e338\"; }\n\n.fa-face-kiss-wink-heart::before {\n content: \"\\f598\"; }\n\n.fa-kiss-wink-heart::before {\n content: \"\\f598\"; }\n\n.fa-dagger::before {\n content: \"\\f6cb\"; }\n\n.fa-podium::before {\n content: \"\\f680\"; }\n\n.fa-memo-circle-check::before {\n content: \"\\e1d9\"; }\n\n.fa-route-highway::before {\n content: \"\\f61a\"; }\n\n.fa-down-to-line::before {\n content: \"\\f34a\"; }\n\n.fa-arrow-alt-to-bottom::before {\n content: \"\\f34a\"; }\n\n.fa-filter::before {\n content: \"\\f0b0\"; }\n\n.fa-square-g::before {\n content: \"\\e271\"; }\n\n.fa-circle-phone::before {\n content: \"\\e11b\"; }\n\n.fa-phone-circle::before {\n content: \"\\e11b\"; }\n\n.fa-clipboard-prescription::before {\n content: \"\\f5e8\"; }\n\n.fa-user-nurse-hair::before {\n content: \"\\e45d\"; }\n\n.fa-question::before {\n content: \"\\3f\"; }\n\n.fa-file-signature::before {\n content: \"\\f573\"; }\n\n.fa-toggle-large-on::before {\n content: \"\\e5b1\"; }\n\n.fa-up-down-left-right::before {\n content: \"\\f0b2\"; }\n\n.fa-arrows-alt::before {\n content: \"\\f0b2\"; }\n\n.fa-dryer-heat::before {\n content: \"\\f862\"; }\n\n.fa-dryer-alt::before {\n content: \"\\f862\"; }\n\n.fa-house-chimney-user::before {\n content: \"\\e065\"; }\n\n.fa-hand-holding-heart::before {\n content: \"\\f4be\"; }\n\n.fa-arrow-up-small-big::before {\n content: \"\\f88f\"; }\n\n.fa-sort-size-up-alt::before {\n content: \"\\f88f\"; }\n\n.fa-train-track::before {\n content: \"\\e453\"; }\n\n.fa-puzzle-piece::before {\n content: \"\\f12e\"; }\n\n.fa-money-check::before {\n content: \"\\f53c\"; }\n\n.fa-star-half-stroke::before {\n content: \"\\f5c0\"; }\n\n.fa-star-half-alt::before {\n content: \"\\f5c0\"; }\n\n.fa-file-exclamation::before {\n content: \"\\f31a\"; }\n\n.fa-code::before {\n content: \"\\f121\"; }\n\n.fa-whiskey-glass::before {\n content: \"\\f7a0\"; }\n\n.fa-glass-whiskey::before {\n content: \"\\f7a0\"; }\n\n.fa-moon-stars::before {\n content: \"\\f755\"; }\n\n.fa-building-circle-exclamation::before {\n content: \"\\e4d3\"; }\n\n.fa-clothes-hanger::before {\n content: \"\\e136\"; }\n\n.fa-mobile-notch::before {\n content: \"\\e1ee\"; }\n\n.fa-mobile-iphone::before {\n content: \"\\e1ee\"; }\n\n.fa-magnifying-glass-chart::before {\n content: \"\\e522\"; }\n\n.fa-arrow-up-right-from-square::before {\n content: \"\\f08e\"; }\n\n.fa-external-link::before {\n content: \"\\f08e\"; }\n\n.fa-cubes-stacked::before {\n content: \"\\e4e6\"; }\n\n.fa-images-user::before {\n content: \"\\e1b9\"; }\n\n.fa-won-sign::before {\n content: \"\\f159\"; }\n\n.fa-krw::before {\n content: \"\\f159\"; }\n\n.fa-won::before {\n content: \"\\f159\"; }\n\n.fa-image-polaroid-user::before {\n content: \"\\e1b6\"; }\n\n.fa-virus-covid::before {\n content: \"\\e4a8\"; }\n\n.fa-square-ellipsis::before {\n content: \"\\e26e\"; }\n\n.fa-pie::before {\n content: \"\\f705\"; }\n\n.fa-chess-knight-piece::before {\n content: \"\\f442\"; }\n\n.fa-chess-knight-alt::before {\n content: \"\\f442\"; }\n\n.fa-austral-sign::before {\n content: \"\\e0a9\"; }\n\n.fa-cloud-plus::before {\n content: \"\\e35e\"; }\n\n.fa-f::before {\n content: \"\\46\"; }\n\n.fa-leaf::before {\n content: \"\\f06c\"; }\n\n.fa-bed-bunk::before {\n content: \"\\f8f8\"; }\n\n.fa-road::before {\n content: \"\\f018\"; }\n\n.fa-taxi::before {\n content: \"\\f1ba\"; }\n\n.fa-cab::before {\n content: \"\\f1ba\"; }\n\n.fa-person-circle-plus::before {\n content: \"\\e541\"; }\n\n.fa-chart-pie::before {\n content: \"\\f200\"; }\n\n.fa-pie-chart::before {\n content: \"\\f200\"; }\n\n.fa-bolt-lightning::before {\n content: \"\\e0b7\"; }\n\n.fa-clock-eight::before {\n content: \"\\e345\"; }\n\n.fa-sack-xmark::before {\n content: \"\\e56a\"; }\n\n.fa-file-xls::before {\n content: \"\\e64d\"; }\n\n.fa-file-excel::before {\n content: \"\\f1c3\"; }\n\n.fa-file-contract::before {\n content: \"\\f56c\"; }\n\n.fa-fish-fins::before {\n content: \"\\e4f2\"; }\n\n.fa-circle-q::before {\n content: \"\\e11e\"; }\n\n.fa-building-flag::before {\n content: \"\\e4d5\"; }\n\n.fa-face-grin-beam::before {\n content: \"\\f582\"; }\n\n.fa-grin-beam::before {\n content: \"\\f582\"; }\n\n.fa-object-ungroup::before {\n content: \"\\f248\"; }\n\n.fa-face-disguise::before {\n content: \"\\e370\"; }\n\n.fa-circle-arrow-down-right::before {\n content: \"\\e0fa\"; }\n\n.fa-alien-8bit::before {\n content: \"\\f8f6\"; }\n\n.fa-alien-monster::before {\n content: \"\\f8f6\"; }\n\n.fa-hand-point-ribbon::before {\n content: \"\\e1a6\"; }\n\n.fa-poop::before {\n content: \"\\f619\"; }\n\n.fa-object-exclude::before {\n content: \"\\e49c\"; }\n\n.fa-telescope::before {\n content: \"\\e03e\"; }\n\n.fa-location-pin::before {\n content: \"\\f041\"; }\n\n.fa-map-marker::before {\n content: \"\\f041\"; }\n\n.fa-square-list::before {\n content: \"\\e489\"; }\n\n.fa-kaaba::before {\n content: \"\\f66b\"; }\n\n.fa-toilet-paper::before {\n content: \"\\f71e\"; }\n\n.fa-helmet-safety::before {\n content: \"\\f807\"; }\n\n.fa-hard-hat::before {\n content: \"\\f807\"; }\n\n.fa-hat-hard::before {\n content: \"\\f807\"; }\n\n.fa-comment-code::before {\n content: \"\\e147\"; }\n\n.fa-sim-cards::before {\n content: \"\\e251\"; }\n\n.fa-starship::before {\n content: \"\\e039\"; }\n\n.fa-eject::before {\n content: \"\\f052\"; }\n\n.fa-circle-right::before {\n content: \"\\f35a\"; }\n\n.fa-arrow-alt-circle-right::before {\n content: \"\\f35a\"; }\n\n.fa-plane-circle-check::before {\n content: \"\\e555\"; }\n\n.fa-seal::before {\n content: \"\\e241\"; }\n\n.fa-user-cowboy::before {\n content: \"\\f8ea\"; }\n\n.fa-hexagon-vertical-nft::before {\n content: \"\\e505\"; }\n\n.fa-face-rolling-eyes::before {\n content: \"\\f5a5\"; }\n\n.fa-meh-rolling-eyes::before {\n content: \"\\f5a5\"; }\n\n.fa-bread-loaf::before {\n content: \"\\f7eb\"; }\n\n.fa-rings-wedding::before {\n content: \"\\f81b\"; }\n\n.fa-object-group::before {\n content: \"\\f247\"; }\n\n.fa-french-fries::before {\n content: \"\\f803\"; }\n\n.fa-chart-line::before {\n content: \"\\f201\"; }\n\n.fa-line-chart::before {\n content: \"\\f201\"; }\n\n.fa-calendar-arrow-down::before {\n content: \"\\e0d0\"; }\n\n.fa-calendar-download::before {\n content: \"\\e0d0\"; }\n\n.fa-send-back::before {\n content: \"\\f87e\"; }\n\n.fa-mask-ventilator::before {\n content: \"\\e524\"; }\n\n.fa-tickets::before {\n content: \"\\e658\"; }\n\n.fa-signature-lock::before {\n content: \"\\e3ca\"; }\n\n.fa-arrow-right::before {\n content: \"\\f061\"; }\n\n.fa-signs-post::before {\n content: \"\\f277\"; }\n\n.fa-map-signs::before {\n content: \"\\f277\"; }\n\n.fa-octagon-plus::before {\n content: \"\\f301\"; }\n\n.fa-plus-octagon::before {\n content: \"\\f301\"; }\n\n.fa-cash-register::before {\n content: \"\\f788\"; }\n\n.fa-person-circle-question::before {\n content: \"\\e542\"; }\n\n.fa-melon-slice::before {\n content: \"\\e311\"; }\n\n.fa-space-station-moon::before {\n content: \"\\e033\"; }\n\n.fa-message-smile::before {\n content: \"\\f4aa\"; }\n\n.fa-comment-alt-smile::before {\n content: \"\\f4aa\"; }\n\n.fa-cup-straw::before {\n content: \"\\e363\"; }\n\n.fa-left-from-line::before {\n content: \"\\f348\"; }\n\n.fa-arrow-alt-from-right::before {\n content: \"\\f348\"; }\n\n.fa-h::before {\n content: \"\\48\"; }\n\n.fa-basket-shopping-simple::before {\n content: \"\\e0af\"; }\n\n.fa-shopping-basket-alt::before {\n content: \"\\e0af\"; }\n\n.fa-hands-holding-heart::before {\n content: \"\\f4c3\"; }\n\n.fa-hands-heart::before {\n content: \"\\f4c3\"; }\n\n.fa-clock-nine::before {\n content: \"\\e34c\"; }\n\n.fa-hammer-brush::before {\n content: \"\\e620\"; }\n\n.fa-tarp::before {\n content: \"\\e57b\"; }\n\n.fa-face-sleepy::before {\n content: \"\\e38e\"; }\n\n.fa-hand-horns::before {\n content: \"\\e1a9\"; }\n\n.fa-screwdriver-wrench::before {\n content: \"\\f7d9\"; }\n\n.fa-tools::before {\n content: \"\\f7d9\"; }\n\n.fa-arrows-to-eye::before {\n content: \"\\e4bf\"; }\n\n.fa-circle-three-quarters::before {\n content: \"\\e125\"; }\n\n.fa-trophy-star::before {\n content: \"\\f2eb\"; }\n\n.fa-trophy-alt::before {\n content: \"\\f2eb\"; }\n\n.fa-plug-circle-bolt::before {\n content: \"\\e55b\"; }\n\n.fa-face-thermometer::before {\n content: \"\\e39a\"; }\n\n.fa-grid-round-4::before {\n content: \"\\e5dd\"; }\n\n.fa-sign-posts-wrench::before {\n content: \"\\e626\"; }\n\n.fa-shirt-running::before {\n content: \"\\e3c8\"; }\n\n.fa-book-circle-arrow-up::before {\n content: \"\\e0bd\"; }\n\n.fa-face-nauseated::before {\n content: \"\\e381\"; }\n\n.fa-heart::before {\n content: \"\\f004\"; }\n\n.fa-file-chart-pie::before {\n content: \"\\f65a\"; }\n\n.fa-mars-and-venus::before {\n content: \"\\f224\"; }\n\n.fa-house-user::before {\n content: \"\\e1b0\"; }\n\n.fa-home-user::before {\n content: \"\\e1b0\"; }\n\n.fa-circle-arrow-down-left::before {\n content: \"\\e0f9\"; }\n\n.fa-dumpster-fire::before {\n content: \"\\f794\"; }\n\n.fa-hexagon-minus::before {\n content: \"\\f307\"; }\n\n.fa-minus-hexagon::before {\n content: \"\\f307\"; }\n\n.fa-left-to-line::before {\n content: \"\\f34b\"; }\n\n.fa-arrow-alt-to-left::before {\n content: \"\\f34b\"; }\n\n.fa-house-crack::before {\n content: \"\\e3b1\"; }\n\n.fa-paw-simple::before {\n content: \"\\f701\"; }\n\n.fa-paw-alt::before {\n content: \"\\f701\"; }\n\n.fa-arrow-left-long-to-line::before {\n content: \"\\e3d4\"; }\n\n.fa-brackets-round::before {\n content: \"\\e0c5\"; }\n\n.fa-parentheses::before {\n content: \"\\e0c5\"; }\n\n.fa-martini-glass-citrus::before {\n content: \"\\f561\"; }\n\n.fa-cocktail::before {\n content: \"\\f561\"; }\n\n.fa-user-shakespeare::before {\n content: \"\\e2c2\"; }\n\n.fa-arrow-right-to-arc::before {\n content: \"\\e4b2\"; }\n\n.fa-face-surprise::before {\n content: \"\\f5c2\"; }\n\n.fa-surprise::before {\n content: \"\\f5c2\"; }\n\n.fa-bottle-water::before {\n content: \"\\e4c5\"; }\n\n.fa-circle-pause::before {\n content: \"\\f28b\"; }\n\n.fa-pause-circle::before {\n content: \"\\f28b\"; }\n\n.fa-gauge-circle-plus::before {\n content: \"\\e498\"; }\n\n.fa-folders::before {\n content: \"\\f660\"; }\n\n.fa-angel::before {\n content: \"\\f779\"; }\n\n.fa-value-absolute::before {\n content: \"\\f6a6\"; }\n\n.fa-rabbit::before {\n content: \"\\f708\"; }\n\n.fa-toilet-paper-slash::before {\n content: \"\\e072\"; }\n\n.fa-circle-euro::before {\n content: \"\\e5ce\"; }\n\n.fa-apple-whole::before {\n content: \"\\f5d1\"; }\n\n.fa-apple-alt::before {\n content: \"\\f5d1\"; }\n\n.fa-kitchen-set::before {\n content: \"\\e51a\"; }\n\n.fa-diamond-half::before {\n content: \"\\e5b7\"; }\n\n.fa-lock-keyhole::before {\n content: \"\\f30d\"; }\n\n.fa-lock-alt::before {\n content: \"\\f30d\"; }\n\n.fa-r::before {\n content: \"\\52\"; }\n\n.fa-temperature-quarter::before {\n content: \"\\f2ca\"; }\n\n.fa-temperature-1::before {\n content: \"\\f2ca\"; }\n\n.fa-thermometer-1::before {\n content: \"\\f2ca\"; }\n\n.fa-thermometer-quarter::before {\n content: \"\\f2ca\"; }\n\n.fa-square-info::before {\n content: \"\\f30f\"; }\n\n.fa-info-square::before {\n content: \"\\f30f\"; }\n\n.fa-wifi-slash::before {\n content: \"\\f6ac\"; }\n\n.fa-toilet-paper-xmark::before {\n content: \"\\e5b3\"; }\n\n.fa-hands-holding-dollar::before {\n content: \"\\f4c5\"; }\n\n.fa-hands-usd::before {\n content: \"\\f4c5\"; }\n\n.fa-cube::before {\n content: \"\\f1b2\"; }\n\n.fa-arrow-down-triangle-square::before {\n content: \"\\f888\"; }\n\n.fa-sort-shapes-down::before {\n content: \"\\f888\"; }\n\n.fa-bitcoin-sign::before {\n content: \"\\e0b4\"; }\n\n.fa-shutters::before {\n content: \"\\e449\"; }\n\n.fa-shield-dog::before {\n content: \"\\e573\"; }\n\n.fa-solar-panel::before {\n content: \"\\f5ba\"; }\n\n.fa-lock-open::before {\n content: \"\\f3c1\"; }\n\n.fa-table-tree::before {\n content: \"\\e293\"; }\n\n.fa-house-chimney-heart::before {\n content: \"\\e1b2\"; }\n\n.fa-tally-3::before {\n content: \"\\e296\"; }\n\n.fa-elevator::before {\n content: \"\\e16d\"; }\n\n.fa-money-bill-transfer::before {\n content: \"\\e528\"; }\n\n.fa-money-bill-trend-up::before {\n content: \"\\e529\"; }\n\n.fa-house-flood-water-circle-arrow-right::before {\n content: \"\\e50f\"; }\n\n.fa-square-poll-horizontal::before {\n content: \"\\f682\"; }\n\n.fa-poll-h::before {\n content: \"\\f682\"; }\n\n.fa-circle::before {\n content: \"\\f111\"; }\n\n.fa-left-to-bracket::before {\n content: \"\\e66d\"; }\n\n.fa-cart-circle-exclamation::before {\n content: \"\\e3f2\"; }\n\n.fa-sword::before {\n content: \"\\f71c\"; }\n\n.fa-backward-fast::before {\n content: \"\\f049\"; }\n\n.fa-fast-backward::before {\n content: \"\\f049\"; }\n\n.fa-recycle::before {\n content: \"\\f1b8\"; }\n\n.fa-user-astronaut::before {\n content: \"\\f4fb\"; }\n\n.fa-interrobang::before {\n content: \"\\e5ba\"; }\n\n.fa-plane-slash::before {\n content: \"\\e069\"; }\n\n.fa-circle-dashed::before {\n content: \"\\e105\"; }\n\n.fa-trademark::before {\n content: \"\\f25c\"; }\n\n.fa-basketball::before {\n content: \"\\f434\"; }\n\n.fa-basketball-ball::before {\n content: \"\\f434\"; }\n\n.fa-fork-knife::before {\n content: \"\\f2e6\"; }\n\n.fa-utensils-alt::before {\n content: \"\\f2e6\"; }\n\n.fa-satellite-dish::before {\n content: \"\\f7c0\"; }\n\n.fa-badge-check::before {\n content: \"\\f336\"; }\n\n.fa-circle-up::before {\n content: \"\\f35b\"; }\n\n.fa-arrow-alt-circle-up::before {\n content: \"\\f35b\"; }\n\n.fa-slider::before {\n content: \"\\e252\"; }\n\n.fa-mobile-screen-button::before {\n content: \"\\f3cd\"; }\n\n.fa-mobile-alt::before {\n content: \"\\f3cd\"; }\n\n.fa-clock-one-thirty::before {\n content: \"\\e34f\"; }\n\n.fa-inbox-out::before {\n content: \"\\f311\"; }\n\n.fa-inbox-arrow-up::before {\n content: \"\\f311\"; }\n\n.fa-cloud-slash::before {\n content: \"\\e137\"; }\n\n.fa-volume-high::before {\n content: \"\\f028\"; }\n\n.fa-volume-up::before {\n content: \"\\f028\"; }\n\n.fa-users-rays::before {\n content: \"\\e593\"; }\n\n.fa-wallet::before {\n content: \"\\f555\"; }\n\n.fa-octagon-check::before {\n content: \"\\e426\"; }\n\n.fa-flatbread-stuffed::before {\n content: \"\\e40c\"; }\n\n.fa-clipboard-check::before {\n content: \"\\f46c\"; }\n\n.fa-cart-circle-plus::before {\n content: \"\\e3f3\"; }\n\n.fa-truck-clock::before {\n content: \"\\f48c\"; }\n\n.fa-shipping-timed::before {\n content: \"\\f48c\"; }\n\n.fa-pool-8-ball::before {\n content: \"\\e3c5\"; }\n\n.fa-file-audio::before {\n content: \"\\f1c7\"; }\n\n.fa-turn-down-left::before {\n content: \"\\e331\"; }\n\n.fa-lock-hashtag::before {\n content: \"\\e423\"; }\n\n.fa-chart-radar::before {\n content: \"\\e0e7\"; }\n\n.fa-staff::before {\n content: \"\\f71b\"; }\n\n.fa-burger::before {\n content: \"\\f805\"; }\n\n.fa-hamburger::before {\n content: \"\\f805\"; }\n\n.fa-utility-pole::before {\n content: \"\\e2c3\"; }\n\n.fa-transporter-6::before {\n content: \"\\e2a7\"; }\n\n.fa-arrow-turn-left::before {\n content: \"\\e632\"; }\n\n.fa-wrench::before {\n content: \"\\f0ad\"; }\n\n.fa-bugs::before {\n content: \"\\e4d0\"; }\n\n.fa-vector-polygon::before {\n content: \"\\e2c7\"; }\n\n.fa-diagram-nested::before {\n content: \"\\e157\"; }\n\n.fa-rupee-sign::before {\n content: \"\\f156\"; }\n\n.fa-rupee::before {\n content: \"\\f156\"; }\n\n.fa-file-image::before {\n content: \"\\f1c5\"; }\n\n.fa-circle-question::before {\n content: \"\\f059\"; }\n\n.fa-question-circle::before {\n content: \"\\f059\"; }\n\n.fa-tickets-perforated::before {\n content: \"\\e63f\"; }\n\n.fa-image-user::before {\n content: \"\\e1b8\"; }\n\n.fa-buoy::before {\n content: \"\\e5b5\"; }\n\n.fa-plane-departure::before {\n content: \"\\f5b0\"; }\n\n.fa-handshake-slash::before {\n content: \"\\e060\"; }\n\n.fa-book-bookmark::before {\n content: \"\\e0bb\"; }\n\n.fa-border-center-h::before {\n content: \"\\f89c\"; }\n\n.fa-can-food::before {\n content: \"\\e3e6\"; }\n\n.fa-typewriter::before {\n content: \"\\f8e7\"; }\n\n.fa-arrow-right-from-arc::before {\n content: \"\\e4b1\"; }\n\n.fa-circle-k::before {\n content: \"\\e113\"; }\n\n.fa-face-hand-over-mouth::before {\n content: \"\\e378\"; }\n\n.fa-popcorn::before {\n content: \"\\f819\"; }\n\n.fa-house-water::before {\n content: \"\\f74f\"; }\n\n.fa-house-flood::before {\n content: \"\\f74f\"; }\n\n.fa-object-subtract::before {\n content: \"\\e49e\"; }\n\n.fa-code-branch::before {\n content: \"\\f126\"; }\n\n.fa-warehouse-full::before {\n content: \"\\f495\"; }\n\n.fa-warehouse-alt::before {\n content: \"\\f495\"; }\n\n.fa-hat-cowboy::before {\n content: \"\\f8c0\"; }\n\n.fa-bridge::before {\n content: \"\\e4c8\"; }\n\n.fa-phone-flip::before {\n content: \"\\f879\"; }\n\n.fa-phone-alt::before {\n content: \"\\f879\"; }\n\n.fa-arrow-down-from-dotted-line::before {\n content: \"\\e090\"; }\n\n.fa-file-doc::before {\n content: \"\\e5ed\"; }\n\n.fa-square-quarters::before {\n content: \"\\e44e\"; }\n\n.fa-truck-front::before {\n content: \"\\e2b7\"; }\n\n.fa-cat::before {\n content: \"\\f6be\"; }\n\n.fa-trash-xmark::before {\n content: \"\\e2b4\"; }\n\n.fa-circle-caret-left::before {\n content: \"\\f32e\"; }\n\n.fa-caret-circle-left::before {\n content: \"\\f32e\"; }\n\n.fa-files::before {\n content: \"\\e178\"; }\n\n.fa-anchor-circle-exclamation::before {\n content: \"\\e4ab\"; }\n\n.fa-face-clouds::before {\n content: \"\\e47d\"; }\n\n.fa-user-crown::before {\n content: \"\\f6a4\"; }\n\n.fa-basket-shopping-plus::before {\n content: \"\\e653\"; }\n\n.fa-truck-field::before {\n content: \"\\e58d\"; }\n\n.fa-route::before {\n content: \"\\f4d7\"; }\n\n.fa-cart-circle-check::before {\n content: \"\\e3f1\"; }\n\n.fa-clipboard-question::before {\n content: \"\\e4e3\"; }\n\n.fa-panorama::before {\n content: \"\\e209\"; }\n\n.fa-comment-medical::before {\n content: \"\\f7f5\"; }\n\n.fa-teeth-open::before {\n content: \"\\f62f\"; }\n\n.fa-user-tie-hair-long::before {\n content: \"\\e460\"; }\n\n.fa-file-circle-minus::before {\n content: \"\\e4ed\"; }\n\n.fa-head-side-medical::before {\n content: \"\\f809\"; }\n\n.fa-arrow-turn-right::before {\n content: \"\\e635\"; }\n\n.fa-tags::before {\n content: \"\\f02c\"; }\n\n.fa-wine-glass::before {\n content: \"\\f4e3\"; }\n\n.fa-forward-fast::before {\n content: \"\\f050\"; }\n\n.fa-fast-forward::before {\n content: \"\\f050\"; }\n\n.fa-face-meh-blank::before {\n content: \"\\f5a4\"; }\n\n.fa-meh-blank::before {\n content: \"\\f5a4\"; }\n\n.fa-user-robot::before {\n content: \"\\e04b\"; }\n\n.fa-square-parking::before {\n content: \"\\f540\"; }\n\n.fa-parking::before {\n content: \"\\f540\"; }\n\n.fa-card-diamond::before {\n content: \"\\e3ea\"; }\n\n.fa-face-zipper::before {\n content: \"\\e3a5\"; }\n\n.fa-face-raised-eyebrow::before {\n content: \"\\e388\"; }\n\n.fa-house-signal::before {\n content: \"\\e012\"; }\n\n.fa-square-chevron-up::before {\n content: \"\\f32c\"; }\n\n.fa-chevron-square-up::before {\n content: \"\\f32c\"; }\n\n.fa-bars-progress::before {\n content: \"\\f828\"; }\n\n.fa-tasks-alt::before {\n content: \"\\f828\"; }\n\n.fa-faucet-drip::before {\n content: \"\\e006\"; }\n\n.fa-arrows-to-line::before {\n content: \"\\e0a7\"; }\n\n.fa-dolphin::before {\n content: \"\\e168\"; }\n\n.fa-arrow-up-right::before {\n content: \"\\e09f\"; }\n\n.fa-circle-r::before {\n content: \"\\e120\"; }\n\n.fa-cart-flatbed::before {\n content: \"\\f474\"; }\n\n.fa-dolly-flatbed::before {\n content: \"\\f474\"; }\n\n.fa-ban-smoking::before {\n content: \"\\f54d\"; }\n\n.fa-smoking-ban::before {\n content: \"\\f54d\"; }\n\n.fa-circle-sort-up::before {\n content: \"\\e032\"; }\n\n.fa-sort-circle-up::before {\n content: \"\\e032\"; }\n\n.fa-terminal::before {\n content: \"\\f120\"; }\n\n.fa-mobile-button::before {\n content: \"\\f10b\"; }\n\n.fa-house-medical-flag::before {\n content: \"\\e514\"; }\n\n.fa-basket-shopping::before {\n content: \"\\f291\"; }\n\n.fa-shopping-basket::before {\n content: \"\\f291\"; }\n\n.fa-tape::before {\n content: \"\\f4db\"; }\n\n.fa-chestnut::before {\n content: \"\\e3f6\"; }\n\n.fa-bus-simple::before {\n content: \"\\f55e\"; }\n\n.fa-bus-alt::before {\n content: \"\\f55e\"; }\n\n.fa-eye::before {\n content: \"\\f06e\"; }\n\n.fa-face-sad-cry::before {\n content: \"\\f5b3\"; }\n\n.fa-sad-cry::before {\n content: \"\\f5b3\"; }\n\n.fa-heat::before {\n content: \"\\e00c\"; }\n\n.fa-ticket-airline::before {\n content: \"\\e29a\"; }\n\n.fa-ticket-perforated-plane::before {\n content: \"\\e29a\"; }\n\n.fa-ticket-plane::before {\n content: \"\\e29a\"; }\n\n.fa-boot-heeled::before {\n content: \"\\e33f\"; }\n\n.fa-arrows-minimize::before {\n content: \"\\e0a5\"; }\n\n.fa-compress-arrows::before {\n content: \"\\e0a5\"; }\n\n.fa-audio-description::before {\n content: \"\\f29e\"; }\n\n.fa-person-military-to-person::before {\n content: \"\\e54c\"; }\n\n.fa-file-shield::before {\n content: \"\\e4f0\"; }\n\n.fa-hexagon::before {\n content: \"\\f312\"; }\n\n.fa-manhole::before {\n content: \"\\e1d6\"; }\n\n.fa-user-slash::before {\n content: \"\\f506\"; }\n\n.fa-pen::before {\n content: \"\\f304\"; }\n\n.fa-tower-observation::before {\n content: \"\\e586\"; }\n\n.fa-floppy-disks::before {\n content: \"\\e183\"; }\n\n.fa-toilet-paper-blank-under::before {\n content: \"\\e29f\"; }\n\n.fa-toilet-paper-reverse-alt::before {\n content: \"\\e29f\"; }\n\n.fa-file-code::before {\n content: \"\\f1c9\"; }\n\n.fa-signal::before {\n content: \"\\f012\"; }\n\n.fa-signal-5::before {\n content: \"\\f012\"; }\n\n.fa-signal-perfect::before {\n content: \"\\f012\"; }\n\n.fa-pump::before {\n content: \"\\e442\"; }\n\n.fa-bus::before {\n content: \"\\f207\"; }\n\n.fa-heart-circle-xmark::before {\n content: \"\\e501\"; }\n\n.fa-arrow-up-left-from-circle::before {\n content: \"\\e09e\"; }\n\n.fa-house-chimney::before {\n content: \"\\e3af\"; }\n\n.fa-home-lg::before {\n content: \"\\e3af\"; }\n\n.fa-window-maximize::before {\n content: \"\\f2d0\"; }\n\n.fa-dryer::before {\n content: \"\\f861\"; }\n\n.fa-face-frown::before {\n content: \"\\f119\"; }\n\n.fa-frown::before {\n content: \"\\f119\"; }\n\n.fa-chess-bishop-piece::before {\n content: \"\\f43b\"; }\n\n.fa-chess-bishop-alt::before {\n content: \"\\f43b\"; }\n\n.fa-shirt-tank-top::before {\n content: \"\\e3c9\"; }\n\n.fa-diploma::before {\n content: \"\\f5ea\"; }\n\n.fa-scroll-ribbon::before {\n content: \"\\f5ea\"; }\n\n.fa-screencast::before {\n content: \"\\e23e\"; }\n\n.fa-walker::before {\n content: \"\\f831\"; }\n\n.fa-prescription::before {\n content: \"\\f5b1\"; }\n\n.fa-shop::before {\n content: \"\\f54f\"; }\n\n.fa-store-alt::before {\n content: \"\\f54f\"; }\n\n.fa-floppy-disk::before {\n content: \"\\f0c7\"; }\n\n.fa-save::before {\n content: \"\\f0c7\"; }\n\n.fa-vihara::before {\n content: \"\\f6a7\"; }\n\n.fa-face-kiss-closed-eyes::before {\n content: \"\\e37d\"; }\n\n.fa-scale-unbalanced::before {\n content: \"\\f515\"; }\n\n.fa-balance-scale-left::before {\n content: \"\\f515\"; }\n\n.fa-file-user::before {\n content: \"\\f65c\"; }\n\n.fa-user-police-tie::before {\n content: \"\\e334\"; }\n\n.fa-face-tongue-money::before {\n content: \"\\e39d\"; }\n\n.fa-tennis-ball::before {\n content: \"\\f45e\"; }\n\n.fa-square-l::before {\n content: \"\\e275\"; }\n\n.fa-sort-up::before {\n content: \"\\f0de\"; }\n\n.fa-sort-asc::before {\n content: \"\\f0de\"; }\n\n.fa-calendar-arrow-up::before {\n content: \"\\e0d1\"; }\n\n.fa-calendar-upload::before {\n content: \"\\e0d1\"; }\n\n.fa-comment-dots::before {\n content: \"\\f4ad\"; }\n\n.fa-commenting::before {\n content: \"\\f4ad\"; }\n\n.fa-plant-wilt::before {\n content: \"\\e5aa\"; }\n\n.fa-scarf::before {\n content: \"\\f7c1\"; }\n\n.fa-album-circle-plus::before {\n content: \"\\e48c\"; }\n\n.fa-user-nurse-hair-long::before {\n content: \"\\e45e\"; }\n\n.fa-diamond::before {\n content: \"\\f219\"; }\n\n.fa-square-left::before {\n content: \"\\f351\"; }\n\n.fa-arrow-alt-square-left::before {\n content: \"\\f351\"; }\n\n.fa-face-grin-squint::before {\n content: \"\\f585\"; }\n\n.fa-grin-squint::before {\n content: \"\\f585\"; }\n\n.fa-circle-ellipsis-vertical::before {\n content: \"\\e10b\"; }\n\n.fa-hand-holding-dollar::before {\n content: \"\\f4c0\"; }\n\n.fa-hand-holding-usd::before {\n content: \"\\f4c0\"; }\n\n.fa-grid-dividers::before {\n content: \"\\e3ad\"; }\n\n.fa-bacterium::before {\n content: \"\\e05a\"; }\n\n.fa-hand-pointer::before {\n content: \"\\f25a\"; }\n\n.fa-drum-steelpan::before {\n content: \"\\f56a\"; }\n\n.fa-hand-scissors::before {\n content: \"\\f257\"; }\n\n.fa-hands-praying::before {\n content: \"\\f684\"; }\n\n.fa-praying-hands::before {\n content: \"\\f684\"; }\n\n.fa-face-pensive::before {\n content: \"\\e384\"; }\n\n.fa-user-music::before {\n content: \"\\f8eb\"; }\n\n.fa-arrow-rotate-right::before {\n content: \"\\f01e\"; }\n\n.fa-arrow-right-rotate::before {\n content: \"\\f01e\"; }\n\n.fa-arrow-rotate-forward::before {\n content: \"\\f01e\"; }\n\n.fa-redo::before {\n content: \"\\f01e\"; }\n\n.fa-messages-dollar::before {\n content: \"\\f652\"; }\n\n.fa-comments-alt-dollar::before {\n content: \"\\f652\"; }\n\n.fa-sensor-on::before {\n content: \"\\e02b\"; }\n\n.fa-balloon::before {\n content: \"\\e2e3\"; }\n\n.fa-biohazard::before {\n content: \"\\f780\"; }\n\n.fa-chess-queen-piece::before {\n content: \"\\f446\"; }\n\n.fa-chess-queen-alt::before {\n content: \"\\f446\"; }\n\n.fa-location-crosshairs::before {\n content: \"\\f601\"; }\n\n.fa-location::before {\n content: \"\\f601\"; }\n\n.fa-mars-double::before {\n content: \"\\f227\"; }\n\n.fa-left-from-bracket::before {\n content: \"\\e66c\"; }\n\n.fa-house-person-leave::before {\n content: \"\\e00f\"; }\n\n.fa-house-leave::before {\n content: \"\\e00f\"; }\n\n.fa-house-person-depart::before {\n content: \"\\e00f\"; }\n\n.fa-ruler-triangle::before {\n content: \"\\f61c\"; }\n\n.fa-card-club::before {\n content: \"\\e3e9\"; }\n\n.fa-child-dress::before {\n content: \"\\e59c\"; }\n\n.fa-users-between-lines::before {\n content: \"\\e591\"; }\n\n.fa-lungs-virus::before {\n content: \"\\e067\"; }\n\n.fa-spinner-third::before {\n content: \"\\f3f4\"; }\n\n.fa-face-grin-tears::before {\n content: \"\\f588\"; }\n\n.fa-grin-tears::before {\n content: \"\\f588\"; }\n\n.fa-phone::before {\n content: \"\\f095\"; }\n\n.fa-computer-mouse-scrollwheel::before {\n content: \"\\f8cd\"; }\n\n.fa-mouse-alt::before {\n content: \"\\f8cd\"; }\n\n.fa-calendar-xmark::before {\n content: \"\\f273\"; }\n\n.fa-calendar-times::before {\n content: \"\\f273\"; }\n\n.fa-child-reaching::before {\n content: \"\\e59d\"; }\n\n.fa-table-layout::before {\n content: \"\\e290\"; }\n\n.fa-narwhal::before {\n content: \"\\f6fe\"; }\n\n.fa-ramp-loading::before {\n content: \"\\f4d4\"; }\n\n.fa-calendar-circle-plus::before {\n content: \"\\e470\"; }\n\n.fa-toothbrush::before {\n content: \"\\f635\"; }\n\n.fa-border-inner::before {\n content: \"\\f84e\"; }\n\n.fa-paw-claws::before {\n content: \"\\f702\"; }\n\n.fa-kiwi-fruit::before {\n content: \"\\e30c\"; }\n\n.fa-traffic-light-slow::before {\n content: \"\\f639\"; }\n\n.fa-rectangle-code::before {\n content: \"\\e322\"; }\n\n.fa-head-side-virus::before {\n content: \"\\e064\"; }\n\n.fa-keyboard-brightness::before {\n content: \"\\e1c0\"; }\n\n.fa-books-medical::before {\n content: \"\\f7e8\"; }\n\n.fa-lightbulb-slash::before {\n content: \"\\f673\"; }\n\n.fa-house-blank::before {\n content: \"\\e487\"; }\n\n.fa-home-blank::before {\n content: \"\\e487\"; }\n\n.fa-square-5::before {\n content: \"\\e25a\"; }\n\n.fa-square-heart::before {\n content: \"\\f4c8\"; }\n\n.fa-heart-square::before {\n content: \"\\f4c8\"; }\n\n.fa-puzzle::before {\n content: \"\\e443\"; }\n\n.fa-user-gear::before {\n content: \"\\f4fe\"; }\n\n.fa-user-cog::before {\n content: \"\\f4fe\"; }\n\n.fa-pipe-circle-check::before {\n content: \"\\e436\"; }\n\n.fa-arrow-up-1-9::before {\n content: \"\\f163\"; }\n\n.fa-sort-numeric-up::before {\n content: \"\\f163\"; }\n\n.fa-octagon-exclamation::before {\n content: \"\\e204\"; }\n\n.fa-dial-low::before {\n content: \"\\e15d\"; }\n\n.fa-door-closed::before {\n content: \"\\f52a\"; }\n\n.fa-laptop-mobile::before {\n content: \"\\f87a\"; }\n\n.fa-phone-laptop::before {\n content: \"\\f87a\"; }\n\n.fa-conveyor-belt-boxes::before {\n content: \"\\f46f\"; }\n\n.fa-conveyor-belt-alt::before {\n content: \"\\f46f\"; }\n\n.fa-shield-virus::before {\n content: \"\\e06c\"; }\n\n.fa-starfighter-twin-ion-engine-advanced::before {\n content: \"\\e28e\"; }\n\n.fa-starfighter-alt-advanced::before {\n content: \"\\e28e\"; }\n\n.fa-dice-six::before {\n content: \"\\f526\"; }\n\n.fa-starfighter-twin-ion-engine::before {\n content: \"\\e038\"; }\n\n.fa-starfighter-alt::before {\n content: \"\\e038\"; }\n\n.fa-rocket-launch::before {\n content: \"\\e027\"; }\n\n.fa-mosquito-net::before {\n content: \"\\e52c\"; }\n\n.fa-vent-damper::before {\n content: \"\\e465\"; }\n\n.fa-bridge-water::before {\n content: \"\\e4ce\"; }\n\n.fa-ban-bug::before {\n content: \"\\f7f9\"; }\n\n.fa-debug::before {\n content: \"\\f7f9\"; }\n\n.fa-person-booth::before {\n content: \"\\f756\"; }\n\n.fa-text-width::before {\n content: \"\\f035\"; }\n\n.fa-garage-car::before {\n content: \"\\e00a\"; }\n\n.fa-square-kanban::before {\n content: \"\\e488\"; }\n\n.fa-hat-wizard::before {\n content: \"\\f6e8\"; }\n\n.fa-chart-kanban::before {\n content: \"\\e64f\"; }\n\n.fa-pen-fancy::before {\n content: \"\\f5ac\"; }\n\n.fa-coffee-pot::before {\n content: \"\\e002\"; }\n\n.fa-mouse-field::before {\n content: \"\\e5a8\"; }\n\n.fa-person-digging::before {\n content: \"\\f85e\"; }\n\n.fa-digging::before {\n content: \"\\f85e\"; }\n\n.fa-shower-down::before {\n content: \"\\e24d\"; }\n\n.fa-shower-alt::before {\n content: \"\\e24d\"; }\n\n.fa-box-circle-check::before {\n content: \"\\e0c4\"; }\n\n.fa-brightness::before {\n content: \"\\e0c9\"; }\n\n.fa-car-side-bolt::before {\n content: \"\\e344\"; }\n\n.fa-file-xml::before {\n content: \"\\e654\"; }\n\n.fa-ornament::before {\n content: \"\\f7b8\"; }\n\n.fa-phone-arrow-down-left::before {\n content: \"\\e223\"; }\n\n.fa-phone-arrow-down::before {\n content: \"\\e223\"; }\n\n.fa-phone-incoming::before {\n content: \"\\e223\"; }\n\n.fa-cloud-word::before {\n content: \"\\e138\"; }\n\n.fa-hand-fingers-crossed::before {\n content: \"\\e1a3\"; }\n\n.fa-trash::before {\n content: \"\\f1f8\"; }\n\n.fa-gauge-simple::before {\n content: \"\\f629\"; }\n\n.fa-gauge-simple-med::before {\n content: \"\\f629\"; }\n\n.fa-tachometer-average::before {\n content: \"\\f629\"; }\n\n.fa-arrow-down-small-big::before {\n content: \"\\f88d\"; }\n\n.fa-sort-size-down-alt::before {\n content: \"\\f88d\"; }\n\n.fa-book-medical::before {\n content: \"\\f7e6\"; }\n\n.fa-face-melting::before {\n content: \"\\e483\"; }\n\n.fa-poo::before {\n content: \"\\f2fe\"; }\n\n.fa-pen-clip-slash::before {\n content: \"\\e20f\"; }\n\n.fa-pen-alt-slash::before {\n content: \"\\e20f\"; }\n\n.fa-quote-right::before {\n content: \"\\f10e\"; }\n\n.fa-quote-right-alt::before {\n content: \"\\f10e\"; }\n\n.fa-scroll-old::before {\n content: \"\\f70f\"; }\n\n.fa-guitars::before {\n content: \"\\f8bf\"; }\n\n.fa-phone-xmark::before {\n content: \"\\e227\"; }\n\n.fa-hose::before {\n content: \"\\e419\"; }\n\n.fa-clock-six::before {\n content: \"\\e352\"; }\n\n.fa-shirt::before {\n content: \"\\f553\"; }\n\n.fa-t-shirt::before {\n content: \"\\f553\"; }\n\n.fa-tshirt::before {\n content: \"\\f553\"; }\n\n.fa-billboard::before {\n content: \"\\e5cd\"; }\n\n.fa-square-r::before {\n content: \"\\e27c\"; }\n\n.fa-cubes::before {\n content: \"\\f1b3\"; }\n\n.fa-envelope-open-dollar::before {\n content: \"\\f657\"; }\n\n.fa-divide::before {\n content: \"\\f529\"; }\n\n.fa-sun-cloud::before {\n content: \"\\f763\"; }\n\n.fa-lamp-floor::before {\n content: \"\\e015\"; }\n\n.fa-square-7::before {\n content: \"\\e25c\"; }\n\n.fa-tenge-sign::before {\n content: \"\\f7d7\"; }\n\n.fa-tenge::before {\n content: \"\\f7d7\"; }\n\n.fa-headphones::before {\n content: \"\\f025\"; }\n\n.fa-hands-holding::before {\n content: \"\\f4c2\"; }\n\n.fa-campfire::before {\n content: \"\\f6ba\"; }\n\n.fa-circle-ampersand::before {\n content: \"\\e0f8\"; }\n\n.fa-snowflakes::before {\n content: \"\\f7cf\"; }\n\n.fa-hands-clapping::before {\n content: \"\\e1a8\"; }\n\n.fa-republican::before {\n content: \"\\f75e\"; }\n\n.fa-leaf-maple::before {\n content: \"\\f6f6\"; }\n\n.fa-arrow-left::before {\n content: \"\\f060\"; }\n\n.fa-person-circle-xmark::before {\n content: \"\\e543\"; }\n\n.fa-ruler::before {\n content: \"\\f545\"; }\n\n.fa-arrow-left-from-bracket::before {\n content: \"\\e668\"; }\n\n.fa-cup-straw-swoosh::before {\n content: \"\\e364\"; }\n\n.fa-temperature-sun::before {\n content: \"\\f76a\"; }\n\n.fa-temperature-hot::before {\n content: \"\\f76a\"; }\n\n.fa-align-left::before {\n content: \"\\f036\"; }\n\n.fa-dice-d6::before {\n content: \"\\f6d1\"; }\n\n.fa-restroom::before {\n content: \"\\f7bd\"; }\n\n.fa-high-definition::before {\n content: \"\\e1ae\"; }\n\n.fa-rectangle-hd::before {\n content: \"\\e1ae\"; }\n\n.fa-j::before {\n content: \"\\4a\"; }\n\n.fa-galaxy::before {\n content: \"\\e008\"; }\n\n.fa-users-viewfinder::before {\n content: \"\\e595\"; }\n\n.fa-file-video::before {\n content: \"\\f1c8\"; }\n\n.fa-cherries::before {\n content: \"\\e0ec\"; }\n\n.fa-up-right-from-square::before {\n content: \"\\f35d\"; }\n\n.fa-external-link-alt::before {\n content: \"\\f35d\"; }\n\n.fa-circle-sort::before {\n content: \"\\e030\"; }\n\n.fa-sort-circle::before {\n content: \"\\e030\"; }\n\n.fa-table-cells::before {\n content: \"\\f00a\"; }\n\n.fa-th::before {\n content: \"\\f00a\"; }\n\n.fa-bag-shopping-minus::before {\n content: \"\\e650\"; }\n\n.fa-file-pdf::before {\n content: \"\\f1c1\"; }\n\n.fa-siren::before {\n content: \"\\e02d\"; }\n\n.fa-arrow-up-to-dotted-line::before {\n content: \"\\e0a1\"; }\n\n.fa-image-landscape::before {\n content: \"\\e1b5\"; }\n\n.fa-landscape::before {\n content: \"\\e1b5\"; }\n\n.fa-tank-water::before {\n content: \"\\e452\"; }\n\n.fa-curling-stone::before {\n content: \"\\f44a\"; }\n\n.fa-curling::before {\n content: \"\\f44a\"; }\n\n.fa-gamepad-modern::before {\n content: \"\\e5a2\"; }\n\n.fa-gamepad-alt::before {\n content: \"\\e5a2\"; }\n\n.fa-messages-question::before {\n content: \"\\e1e7\"; }\n\n.fa-book-bible::before {\n content: \"\\f647\"; }\n\n.fa-bible::before {\n content: \"\\f647\"; }\n\n.fa-o::before {\n content: \"\\4f\"; }\n\n.fa-suitcase-medical::before {\n content: \"\\f0fa\"; }\n\n.fa-medkit::before {\n content: \"\\f0fa\"; }\n\n.fa-briefcase-arrow-right::before {\n content: \"\\e2f2\"; }\n\n.fa-expand-wide::before {\n content: \"\\f320\"; }\n\n.fa-clock-eleven-thirty::before {\n content: \"\\e348\"; }\n\n.fa-rv::before {\n content: \"\\f7be\"; }\n\n.fa-user-secret::before {\n content: \"\\f21b\"; }\n\n.fa-otter::before {\n content: \"\\f700\"; }\n\n.fa-dreidel::before {\n content: \"\\f792\"; }\n\n.fa-person-dress::before {\n content: \"\\f182\"; }\n\n.fa-female::before {\n content: \"\\f182\"; }\n\n.fa-comment-dollar::before {\n content: \"\\f651\"; }\n\n.fa-business-time::before {\n content: \"\\f64a\"; }\n\n.fa-briefcase-clock::before {\n content: \"\\f64a\"; }\n\n.fa-flower-tulip::before {\n content: \"\\f801\"; }\n\n.fa-people-pants-simple::before {\n content: \"\\e21a\"; }\n\n.fa-cloud-drizzle::before {\n content: \"\\f738\"; }\n\n.fa-table-cells-large::before {\n content: \"\\f009\"; }\n\n.fa-th-large::before {\n content: \"\\f009\"; }\n\n.fa-book-tanakh::before {\n content: \"\\f827\"; }\n\n.fa-tanakh::before {\n content: \"\\f827\"; }\n\n.fa-solar-system::before {\n content: \"\\e02f\"; }\n\n.fa-seal-question::before {\n content: \"\\e243\"; }\n\n.fa-phone-volume::before {\n content: \"\\f2a0\"; }\n\n.fa-volume-control-phone::before {\n content: \"\\f2a0\"; }\n\n.fa-disc-drive::before {\n content: \"\\f8b5\"; }\n\n.fa-hat-cowboy-side::before {\n content: \"\\f8c1\"; }\n\n.fa-table-rows::before {\n content: \"\\e292\"; }\n\n.fa-rows::before {\n content: \"\\e292\"; }\n\n.fa-location-exclamation::before {\n content: \"\\f608\"; }\n\n.fa-map-marker-exclamation::before {\n content: \"\\f608\"; }\n\n.fa-face-fearful::before {\n content: \"\\e375\"; }\n\n.fa-clipboard-user::before {\n content: \"\\f7f3\"; }\n\n.fa-bus-school::before {\n content: \"\\f5dd\"; }\n\n.fa-film-slash::before {\n content: \"\\e179\"; }\n\n.fa-square-arrow-down-right::before {\n content: \"\\e262\"; }\n\n.fa-book-sparkles::before {\n content: \"\\f6b8\"; }\n\n.fa-book-spells::before {\n content: \"\\f6b8\"; }\n\n.fa-washing-machine::before {\n content: \"\\f898\"; }\n\n.fa-washer::before {\n content: \"\\f898\"; }\n\n.fa-child::before {\n content: \"\\f1ae\"; }\n\n.fa-lira-sign::before {\n content: \"\\f195\"; }\n\n.fa-user-visor::before {\n content: \"\\e04c\"; }\n\n.fa-file-plus-minus::before {\n content: \"\\e177\"; }\n\n.fa-chess-clock-flip::before {\n content: \"\\f43e\"; }\n\n.fa-chess-clock-alt::before {\n content: \"\\f43e\"; }\n\n.fa-satellite::before {\n content: \"\\f7bf\"; }\n\n.fa-truck-fire::before {\n content: \"\\e65a\"; }\n\n.fa-plane-lock::before {\n content: \"\\e558\"; }\n\n.fa-steering-wheel::before {\n content: \"\\f622\"; }\n\n.fa-tag::before {\n content: \"\\f02b\"; }\n\n.fa-stretcher::before {\n content: \"\\f825\"; }\n\n.fa-book-section::before {\n content: \"\\e0c1\"; }\n\n.fa-book-law::before {\n content: \"\\e0c1\"; }\n\n.fa-inboxes::before {\n content: \"\\e1bb\"; }\n\n.fa-coffee-bean::before {\n content: \"\\e13e\"; }\n\n.fa-circle-yen::before {\n content: \"\\e5d0\"; }\n\n.fa-brackets-curly::before {\n content: \"\\f7ea\"; }\n\n.fa-ellipsis-stroke-vertical::before {\n content: \"\\f39c\"; }\n\n.fa-ellipsis-v-alt::before {\n content: \"\\f39c\"; }\n\n.fa-comment::before {\n content: \"\\f075\"; }\n\n.fa-square-1::before {\n content: \"\\e256\"; }\n\n.fa-cake-candles::before {\n content: \"\\f1fd\"; }\n\n.fa-birthday-cake::before {\n content: \"\\f1fd\"; }\n\n.fa-cake::before {\n content: \"\\f1fd\"; }\n\n.fa-head-side::before {\n content: \"\\f6e9\"; }\n\n.fa-truck-ladder::before {\n content: \"\\e657\"; }\n\n.fa-envelope::before {\n content: \"\\f0e0\"; }\n\n.fa-dolly-empty::before {\n content: \"\\f473\"; }\n\n.fa-face-tissue::before {\n content: \"\\e39c\"; }\n\n.fa-angles-up::before {\n content: \"\\f102\"; }\n\n.fa-angle-double-up::before {\n content: \"\\f102\"; }\n\n.fa-bin-recycle::before {\n content: \"\\e5f7\"; }\n\n.fa-paperclip::before {\n content: \"\\f0c6\"; }\n\n.fa-chart-line-down::before {\n content: \"\\f64d\"; }\n\n.fa-arrow-right-to-city::before {\n content: \"\\e4b3\"; }\n\n.fa-lock-a::before {\n content: \"\\e422\"; }\n\n.fa-ribbon::before {\n content: \"\\f4d6\"; }\n\n.fa-lungs::before {\n content: \"\\f604\"; }\n\n.fa-person-pinball::before {\n content: \"\\e21d\"; }\n\n.fa-arrow-up-9-1::before {\n content: \"\\f887\"; }\n\n.fa-sort-numeric-up-alt::before {\n content: \"\\f887\"; }\n\n.fa-apple-core::before {\n content: \"\\e08f\"; }\n\n.fa-circle-y::before {\n content: \"\\e12f\"; }\n\n.fa-h6::before {\n content: \"\\e413\"; }\n\n.fa-litecoin-sign::before {\n content: \"\\e1d3\"; }\n\n.fa-bottle-baby::before {\n content: \"\\e673\"; }\n\n.fa-circle-small::before {\n content: \"\\e122\"; }\n\n.fa-border-none::before {\n content: \"\\f850\"; }\n\n.fa-arrow-turn-down-left::before {\n content: \"\\e2e1\"; }\n\n.fa-circle-wifi-circle-wifi::before {\n content: \"\\e67e\"; }\n\n.fa-circle-wifi-group::before {\n content: \"\\e67e\"; }\n\n.fa-circle-nodes::before {\n content: \"\\e4e2\"; }\n\n.fa-parachute-box::before {\n content: \"\\f4cd\"; }\n\n.fa-reflect-horizontal::before {\n content: \"\\e664\"; }\n\n.fa-message-medical::before {\n content: \"\\f7f4\"; }\n\n.fa-comment-alt-medical::before {\n content: \"\\f7f4\"; }\n\n.fa-rugby-ball::before {\n content: \"\\e3c6\"; }\n\n.fa-comment-music::before {\n content: \"\\f8b0\"; }\n\n.fa-indent::before {\n content: \"\\f03c\"; }\n\n.fa-tree-deciduous::before {\n content: \"\\f400\"; }\n\n.fa-tree-alt::before {\n content: \"\\f400\"; }\n\n.fa-puzzle-piece-simple::before {\n content: \"\\e231\"; }\n\n.fa-puzzle-piece-alt::before {\n content: \"\\e231\"; }\n\n.fa-truck-field-un::before {\n content: \"\\e58e\"; }\n\n.fa-nfc-trash::before {\n content: \"\\e1fd\"; }\n\n.fa-hourglass::before {\n content: \"\\f254\"; }\n\n.fa-hourglass-empty::before {\n content: \"\\f254\"; }\n\n.fa-mountain::before {\n content: \"\\f6fc\"; }\n\n.fa-file-xmark::before {\n content: \"\\f317\"; }\n\n.fa-file-times::before {\n content: \"\\f317\"; }\n\n.fa-house-heart::before {\n content: \"\\f4c9\"; }\n\n.fa-home-heart::before {\n content: \"\\f4c9\"; }\n\n.fa-house-chimney-blank::before {\n content: \"\\e3b0\"; }\n\n.fa-meter-bolt::before {\n content: \"\\e1e9\"; }\n\n.fa-user-doctor::before {\n content: \"\\f0f0\"; }\n\n.fa-user-md::before {\n content: \"\\f0f0\"; }\n\n.fa-slash-back::before {\n content: \"\\5c\"; }\n\n.fa-circle-info::before {\n content: \"\\f05a\"; }\n\n.fa-info-circle::before {\n content: \"\\f05a\"; }\n\n.fa-fishing-rod::before {\n content: \"\\e3a8\"; }\n\n.fa-hammer-crash::before {\n content: \"\\e414\"; }\n\n.fa-message-heart::before {\n content: \"\\e5c9\"; }\n\n.fa-cloud-meatball::before {\n content: \"\\f73b\"; }\n\n.fa-camera-polaroid::before {\n content: \"\\f8aa\"; }\n\n.fa-camera::before {\n content: \"\\f030\"; }\n\n.fa-camera-alt::before {\n content: \"\\f030\"; }\n\n.fa-square-virus::before {\n content: \"\\e578\"; }\n\n.fa-cart-arrow-up::before {\n content: \"\\e3ee\"; }\n\n.fa-meteor::before {\n content: \"\\f753\"; }\n\n.fa-car-on::before {\n content: \"\\e4dd\"; }\n\n.fa-sleigh::before {\n content: \"\\f7cc\"; }\n\n.fa-arrow-down-1-9::before {\n content: \"\\f162\"; }\n\n.fa-sort-numeric-asc::before {\n content: \"\\f162\"; }\n\n.fa-sort-numeric-down::before {\n content: \"\\f162\"; }\n\n.fa-buoy-mooring::before {\n content: \"\\e5b6\"; }\n\n.fa-square-4::before {\n content: \"\\e259\"; }\n\n.fa-hand-holding-droplet::before {\n content: \"\\f4c1\"; }\n\n.fa-hand-holding-water::before {\n content: \"\\f4c1\"; }\n\n.fa-file-eps::before {\n content: \"\\e644\"; }\n\n.fa-tricycle-adult::before {\n content: \"\\e5c4\"; }\n\n.fa-waveform::before {\n content: \"\\f8f1\"; }\n\n.fa-water::before {\n content: \"\\f773\"; }\n\n.fa-star-sharp-half-stroke::before {\n content: \"\\e28d\"; }\n\n.fa-star-sharp-half-alt::before {\n content: \"\\e28d\"; }\n\n.fa-nfc-signal::before {\n content: \"\\e1fb\"; }\n\n.fa-plane-prop::before {\n content: \"\\e22b\"; }\n\n.fa-calendar-check::before {\n content: \"\\f274\"; }\n\n.fa-clock-desk::before {\n content: \"\\e134\"; }\n\n.fa-calendar-clock::before {\n content: \"\\e0d2\"; }\n\n.fa-calendar-time::before {\n content: \"\\e0d2\"; }\n\n.fa-braille::before {\n content: \"\\f2a1\"; }\n\n.fa-prescription-bottle-medical::before {\n content: \"\\f486\"; }\n\n.fa-prescription-bottle-alt::before {\n content: \"\\f486\"; }\n\n.fa-plate-utensils::before {\n content: \"\\e43b\"; }\n\n.fa-family-pants::before {\n content: \"\\e302\"; }\n\n.fa-hose-reel::before {\n content: \"\\e41a\"; }\n\n.fa-house-window::before {\n content: \"\\e3b3\"; }\n\n.fa-landmark::before {\n content: \"\\f66f\"; }\n\n.fa-truck::before {\n content: \"\\f0d1\"; }\n\n.fa-music-magnifying-glass::before {\n content: \"\\e662\"; }\n\n.fa-crosshairs::before {\n content: \"\\f05b\"; }\n\n.fa-cloud-rainbow::before {\n content: \"\\f73e\"; }\n\n.fa-person-cane::before {\n content: \"\\e53c\"; }\n\n.fa-alien::before {\n content: \"\\f8f5\"; }\n\n.fa-tent::before {\n content: \"\\e57d\"; }\n\n.fa-laptop-binary::before {\n content: \"\\e5e7\"; }\n\n.fa-vest-patches::before {\n content: \"\\e086\"; }\n\n.fa-people-dress-simple::before {\n content: \"\\e218\"; }\n\n.fa-check-double::before {\n content: \"\\f560\"; }\n\n.fa-arrow-down-a-z::before {\n content: \"\\f15d\"; }\n\n.fa-sort-alpha-asc::before {\n content: \"\\f15d\"; }\n\n.fa-sort-alpha-down::before {\n content: \"\\f15d\"; }\n\n.fa-bowling-ball-pin::before {\n content: \"\\e0c3\"; }\n\n.fa-bell-school-slash::before {\n content: \"\\f5d6\"; }\n\n.fa-plus-large::before {\n content: \"\\e59e\"; }\n\n.fa-money-bill-wheat::before {\n content: \"\\e52a\"; }\n\n.fa-camera-viewfinder::before {\n content: \"\\e0da\"; }\n\n.fa-screenshot::before {\n content: \"\\e0da\"; }\n\n.fa-message-music::before {\n content: \"\\f8af\"; }\n\n.fa-comment-alt-music::before {\n content: \"\\f8af\"; }\n\n.fa-car-building::before {\n content: \"\\f859\"; }\n\n.fa-border-bottom-right::before {\n content: \"\\f854\"; }\n\n.fa-border-style-alt::before {\n content: \"\\f854\"; }\n\n.fa-octagon::before {\n content: \"\\f306\"; }\n\n.fa-comment-arrow-up-right::before {\n content: \"\\e145\"; }\n\n.fa-octagon-divide::before {\n content: \"\\e203\"; }\n\n.fa-cookie::before {\n content: \"\\f563\"; }\n\n.fa-arrow-rotate-left::before {\n content: \"\\f0e2\"; }\n\n.fa-arrow-left-rotate::before {\n content: \"\\f0e2\"; }\n\n.fa-arrow-rotate-back::before {\n content: \"\\f0e2\"; }\n\n.fa-arrow-rotate-backward::before {\n content: \"\\f0e2\"; }\n\n.fa-undo::before {\n content: \"\\f0e2\"; }\n\n.fa-tv-music::before {\n content: \"\\f8e6\"; }\n\n.fa-hard-drive::before {\n content: \"\\f0a0\"; }\n\n.fa-hdd::before {\n content: \"\\f0a0\"; }\n\n.fa-reel::before {\n content: \"\\e238\"; }\n\n.fa-face-grin-squint-tears::before {\n content: \"\\f586\"; }\n\n.fa-grin-squint-tears::before {\n content: \"\\f586\"; }\n\n.fa-dumbbell::before {\n content: \"\\f44b\"; }\n\n.fa-rectangle-list::before {\n content: \"\\f022\"; }\n\n.fa-list-alt::before {\n content: \"\\f022\"; }\n\n.fa-tarp-droplet::before {\n content: \"\\e57c\"; }\n\n.fa-alarm-exclamation::before {\n content: \"\\f843\"; }\n\n.fa-house-medical-circle-check::before {\n content: \"\\e511\"; }\n\n.fa-traffic-cone::before {\n content: \"\\f636\"; }\n\n.fa-grate::before {\n content: \"\\e193\"; }\n\n.fa-arrow-down-right::before {\n content: \"\\e093\"; }\n\n.fa-person-skiing-nordic::before {\n content: \"\\f7ca\"; }\n\n.fa-skiing-nordic::before {\n content: \"\\f7ca\"; }\n\n.fa-calendar-plus::before {\n content: \"\\f271\"; }\n\n.fa-person-from-portal::before {\n content: \"\\e023\"; }\n\n.fa-portal-exit::before {\n content: \"\\e023\"; }\n\n.fa-plane-arrival::before {\n content: \"\\f5af\"; }\n\n.fa-cowbell-circle-plus::before {\n content: \"\\f8b4\"; }\n\n.fa-cowbell-more::before {\n content: \"\\f8b4\"; }\n\n.fa-circle-left::before {\n content: \"\\f359\"; }\n\n.fa-arrow-alt-circle-left::before {\n content: \"\\f359\"; }\n\n.fa-distribute-spacing-vertical::before {\n content: \"\\e366\"; }\n\n.fa-signal-bars-fair::before {\n content: \"\\f692\"; }\n\n.fa-signal-alt-2::before {\n content: \"\\f692\"; }\n\n.fa-sportsball::before {\n content: \"\\e44b\"; }\n\n.fa-game-console-handheld-crank::before {\n content: \"\\e5b9\"; }\n\n.fa-train-subway::before {\n content: \"\\f239\"; }\n\n.fa-subway::before {\n content: \"\\f239\"; }\n\n.fa-chart-gantt::before {\n content: \"\\e0e4\"; }\n\n.fa-face-smile-upside-down::before {\n content: \"\\e395\"; }\n\n.fa-ball-pile::before {\n content: \"\\f77e\"; }\n\n.fa-badge-dollar::before {\n content: \"\\f645\"; }\n\n.fa-money-bills-simple::before {\n content: \"\\e1f4\"; }\n\n.fa-money-bills-alt::before {\n content: \"\\e1f4\"; }\n\n.fa-list-timeline::before {\n content: \"\\e1d1\"; }\n\n.fa-indian-rupee-sign::before {\n content: \"\\e1bc\"; }\n\n.fa-indian-rupee::before {\n content: \"\\e1bc\"; }\n\n.fa-inr::before {\n content: \"\\e1bc\"; }\n\n.fa-crop-simple::before {\n content: \"\\f565\"; }\n\n.fa-crop-alt::before {\n content: \"\\f565\"; }\n\n.fa-money-bill-1::before {\n content: \"\\f3d1\"; }\n\n.fa-money-bill-alt::before {\n content: \"\\f3d1\"; }\n\n.fa-left-long::before {\n content: \"\\f30a\"; }\n\n.fa-long-arrow-alt-left::before {\n content: \"\\f30a\"; }\n\n.fa-keyboard-down::before {\n content: \"\\e1c2\"; }\n\n.fa-circle-up-right::before {\n content: \"\\e129\"; }\n\n.fa-cloud-bolt-moon::before {\n content: \"\\f76d\"; }\n\n.fa-thunderstorm-moon::before {\n content: \"\\f76d\"; }\n\n.fa-turn-left-up::before {\n content: \"\\e638\"; }\n\n.fa-dna::before {\n content: \"\\f471\"; }\n\n.fa-virus-slash::before {\n content: \"\\e075\"; }\n\n.fa-bracket-round-right::before {\n content: \"\\29\"; }\n\n.fa-circle-sterling::before {\n content: \"\\e5cf\"; }\n\n.fa-circle-5::before {\n content: \"\\e0f2\"; }\n\n.fa-minus::before {\n content: \"\\f068\"; }\n\n.fa-subtract::before {\n content: \"\\f068\"; }\n\n.fa-fire-flame::before {\n content: \"\\f6df\"; }\n\n.fa-flame::before {\n content: \"\\f6df\"; }\n\n.fa-right-to-line::before {\n content: \"\\f34c\"; }\n\n.fa-arrow-alt-to-right::before {\n content: \"\\f34c\"; }\n\n.fa-gif::before {\n content: \"\\e190\"; }\n\n.fa-chess::before {\n content: \"\\f439\"; }\n\n.fa-trash-slash::before {\n content: \"\\e2b3\"; }\n\n.fa-arrow-left-long::before {\n content: \"\\f177\"; }\n\n.fa-long-arrow-left::before {\n content: \"\\f177\"; }\n\n.fa-plug-circle-check::before {\n content: \"\\e55c\"; }\n\n.fa-font-case::before {\n content: \"\\f866\"; }\n\n.fa-street-view::before {\n content: \"\\f21d\"; }\n\n.fa-arrow-down-left::before {\n content: \"\\e091\"; }\n\n.fa-franc-sign::before {\n content: \"\\e18f\"; }\n\n.fa-flask-round-poison::before {\n content: \"\\f6e0\"; }\n\n.fa-flask-poison::before {\n content: \"\\f6e0\"; }\n\n.fa-volume-off::before {\n content: \"\\f026\"; }\n\n.fa-book-circle-arrow-right::before {\n content: \"\\e0bc\"; }\n\n.fa-chart-user::before {\n content: \"\\f6a3\"; }\n\n.fa-user-chart::before {\n content: \"\\f6a3\"; }\n\n.fa-hands-asl-interpreting::before {\n content: \"\\f2a3\"; }\n\n.fa-american-sign-language-interpreting::before {\n content: \"\\f2a3\"; }\n\n.fa-asl-interpreting::before {\n content: \"\\f2a3\"; }\n\n.fa-hands-american-sign-language-interpreting::before {\n content: \"\\f2a3\"; }\n\n.fa-presentation-screen::before {\n content: \"\\f685\"; }\n\n.fa-presentation::before {\n content: \"\\f685\"; }\n\n.fa-circle-bolt::before {\n content: \"\\e0fe\"; }\n\n.fa-face-smile-halo::before {\n content: \"\\e38f\"; }\n\n.fa-cart-circle-arrow-down::before {\n content: \"\\e3ef\"; }\n\n.fa-house-person-return::before {\n content: \"\\e011\"; }\n\n.fa-house-person-arrive::before {\n content: \"\\e011\"; }\n\n.fa-house-return::before {\n content: \"\\e011\"; }\n\n.fa-message-xmark::before {\n content: \"\\f4ab\"; }\n\n.fa-comment-alt-times::before {\n content: \"\\f4ab\"; }\n\n.fa-message-times::before {\n content: \"\\f4ab\"; }\n\n.fa-file-certificate::before {\n content: \"\\f5f3\"; }\n\n.fa-file-award::before {\n content: \"\\f5f3\"; }\n\n.fa-user-doctor-hair-long::before {\n content: \"\\e459\"; }\n\n.fa-camera-security::before {\n content: \"\\f8fe\"; }\n\n.fa-camera-home::before {\n content: \"\\f8fe\"; }\n\n.fa-gear::before {\n content: \"\\f013\"; }\n\n.fa-cog::before {\n content: \"\\f013\"; }\n\n.fa-droplet-slash::before {\n content: \"\\f5c7\"; }\n\n.fa-tint-slash::before {\n content: \"\\f5c7\"; }\n\n.fa-book-heart::before {\n content: \"\\f499\"; }\n\n.fa-mosque::before {\n content: \"\\f678\"; }\n\n.fa-duck::before {\n content: \"\\f6d8\"; }\n\n.fa-mosquito::before {\n content: \"\\e52b\"; }\n\n.fa-star-of-david::before {\n content: \"\\f69a\"; }\n\n.fa-flag-swallowtail::before {\n content: \"\\f74c\"; }\n\n.fa-flag-alt::before {\n content: \"\\f74c\"; }\n\n.fa-person-military-rifle::before {\n content: \"\\e54b\"; }\n\n.fa-car-garage::before {\n content: \"\\f5e2\"; }\n\n.fa-cart-shopping::before {\n content: \"\\f07a\"; }\n\n.fa-shopping-cart::before {\n content: \"\\f07a\"; }\n\n.fa-book-font::before {\n content: \"\\e0bf\"; }\n\n.fa-shield-plus::before {\n content: \"\\e24a\"; }\n\n.fa-vials::before {\n content: \"\\f493\"; }\n\n.fa-eye-dropper-full::before {\n content: \"\\e172\"; }\n\n.fa-distribute-spacing-horizontal::before {\n content: \"\\e365\"; }\n\n.fa-tablet-rugged::before {\n content: \"\\f48f\"; }\n\n.fa-temperature-snow::before {\n content: \"\\f768\"; }\n\n.fa-temperature-frigid::before {\n content: \"\\f768\"; }\n\n.fa-moped::before {\n content: \"\\e3b9\"; }\n\n.fa-face-smile-plus::before {\n content: \"\\f5b9\"; }\n\n.fa-smile-plus::before {\n content: \"\\f5b9\"; }\n\n.fa-radio-tuner::before {\n content: \"\\f8d8\"; }\n\n.fa-radio-alt::before {\n content: \"\\f8d8\"; }\n\n.fa-face-swear::before {\n content: \"\\e399\"; }\n\n.fa-water-arrow-down::before {\n content: \"\\f774\"; }\n\n.fa-water-lower::before {\n content: \"\\f774\"; }\n\n.fa-scanner-touchscreen::before {\n content: \"\\f48a\"; }\n\n.fa-circle-7::before {\n content: \"\\e0f4\"; }\n\n.fa-plug-circle-plus::before {\n content: \"\\e55f\"; }\n\n.fa-person-ski-jumping::before {\n content: \"\\f7c7\"; }\n\n.fa-ski-jump::before {\n content: \"\\f7c7\"; }\n\n.fa-place-of-worship::before {\n content: \"\\f67f\"; }\n\n.fa-water-arrow-up::before {\n content: \"\\f775\"; }\n\n.fa-water-rise::before {\n content: \"\\f775\"; }\n\n.fa-waveform-lines::before {\n content: \"\\f8f2\"; }\n\n.fa-waveform-path::before {\n content: \"\\f8f2\"; }\n\n.fa-split::before {\n content: \"\\e254\"; }\n\n.fa-film-canister::before {\n content: \"\\f8b7\"; }\n\n.fa-film-cannister::before {\n content: \"\\f8b7\"; }\n\n.fa-folder-xmark::before {\n content: \"\\f65f\"; }\n\n.fa-folder-times::before {\n content: \"\\f65f\"; }\n\n.fa-toilet-paper-blank::before {\n content: \"\\f71f\"; }\n\n.fa-toilet-paper-alt::before {\n content: \"\\f71f\"; }\n\n.fa-tablet-screen::before {\n content: \"\\f3fc\"; }\n\n.fa-tablet-android-alt::before {\n content: \"\\f3fc\"; }\n\n.fa-hexagon-vertical-nft-slanted::before {\n content: \"\\e506\"; }\n\n.fa-folder-music::before {\n content: \"\\e18d\"; }\n\n.fa-display-medical::before {\n content: \"\\e166\"; }\n\n.fa-desktop-medical::before {\n content: \"\\e166\"; }\n\n.fa-share-all::before {\n content: \"\\f367\"; }\n\n.fa-peapod::before {\n content: \"\\e31c\"; }\n\n.fa-chess-clock::before {\n content: \"\\f43d\"; }\n\n.fa-axe::before {\n content: \"\\f6b2\"; }\n\n.fa-square-d::before {\n content: \"\\e268\"; }\n\n.fa-grip-vertical::before {\n content: \"\\f58e\"; }\n\n.fa-mobile-signal-out::before {\n content: \"\\e1f0\"; }\n\n.fa-arrow-turn-up::before {\n content: \"\\f148\"; }\n\n.fa-level-up::before {\n content: \"\\f148\"; }\n\n.fa-u::before {\n content: \"\\55\"; }\n\n.fa-arrow-up-from-dotted-line::before {\n content: \"\\e09b\"; }\n\n.fa-square-root-variable::before {\n content: \"\\f698\"; }\n\n.fa-square-root-alt::before {\n content: \"\\f698\"; }\n\n.fa-light-switch-on::before {\n content: \"\\e019\"; }\n\n.fa-arrow-down-arrow-up::before {\n content: \"\\f883\"; }\n\n.fa-sort-alt::before {\n content: \"\\f883\"; }\n\n.fa-raindrops::before {\n content: \"\\f75c\"; }\n\n.fa-dash::before {\n content: \"\\e404\"; }\n\n.fa-minus-large::before {\n content: \"\\e404\"; }\n\n.fa-clock::before {\n content: \"\\f017\"; }\n\n.fa-clock-four::before {\n content: \"\\f017\"; }\n\n.fa-input-numeric::before {\n content: \"\\e1bd\"; }\n\n.fa-truck-tow::before {\n content: \"\\e2b8\"; }\n\n.fa-backward-step::before {\n content: \"\\f048\"; }\n\n.fa-step-backward::before {\n content: \"\\f048\"; }\n\n.fa-pallet::before {\n content: \"\\f482\"; }\n\n.fa-car-bolt::before {\n content: \"\\e341\"; }\n\n.fa-arrows-maximize::before {\n content: \"\\f31d\"; }\n\n.fa-expand-arrows::before {\n content: \"\\f31d\"; }\n\n.fa-faucet::before {\n content: \"\\e005\"; }\n\n.fa-cloud-sleet::before {\n content: \"\\f741\"; }\n\n.fa-lamp-street::before {\n content: \"\\e1c5\"; }\n\n.fa-list-radio::before {\n content: \"\\e1d0\"; }\n\n.fa-pen-nib-slash::before {\n content: \"\\e4a1\"; }\n\n.fa-baseball-bat-ball::before {\n content: \"\\f432\"; }\n\n.fa-square-up-left::before {\n content: \"\\e282\"; }\n\n.fa-overline::before {\n content: \"\\f876\"; }\n\n.fa-s::before {\n content: \"\\53\"; }\n\n.fa-timeline::before {\n content: \"\\e29c\"; }\n\n.fa-keyboard::before {\n content: \"\\f11c\"; }\n\n.fa-arrows-from-dotted-line::before {\n content: \"\\e0a3\"; }\n\n.fa-usb-drive::before {\n content: \"\\f8e9\"; }\n\n.fa-ballot::before {\n content: \"\\f732\"; }\n\n.fa-caret-down::before {\n content: \"\\f0d7\"; }\n\n.fa-location-dot-slash::before {\n content: \"\\f605\"; }\n\n.fa-map-marker-alt-slash::before {\n content: \"\\f605\"; }\n\n.fa-cards::before {\n content: \"\\e3ed\"; }\n\n.fa-house-chimney-medical::before {\n content: \"\\f7f2\"; }\n\n.fa-clinic-medical::before {\n content: \"\\f7f2\"; }\n\n.fa-boxing-glove::before {\n content: \"\\f438\"; }\n\n.fa-glove-boxing::before {\n content: \"\\f438\"; }\n\n.fa-temperature-three-quarters::before {\n content: \"\\f2c8\"; }\n\n.fa-temperature-3::before {\n content: \"\\f2c8\"; }\n\n.fa-thermometer-3::before {\n content: \"\\f2c8\"; }\n\n.fa-thermometer-three-quarters::before {\n content: \"\\f2c8\"; }\n\n.fa-bell-school::before {\n content: \"\\f5d5\"; }\n\n.fa-mobile-screen::before {\n content: \"\\f3cf\"; }\n\n.fa-mobile-android-alt::before {\n content: \"\\f3cf\"; }\n\n.fa-plane-up::before {\n content: \"\\e22d\"; }\n\n.fa-folder-heart::before {\n content: \"\\e189\"; }\n\n.fa-circle-location-arrow::before {\n content: \"\\f602\"; }\n\n.fa-location-circle::before {\n content: \"\\f602\"; }\n\n.fa-face-head-bandage::before {\n content: \"\\e37a\"; }\n\n.fa-sushi-roll::before {\n content: \"\\e48b\"; }\n\n.fa-maki-roll::before {\n content: \"\\e48b\"; }\n\n.fa-makizushi::before {\n content: \"\\e48b\"; }\n\n.fa-car-bump::before {\n content: \"\\f5e0\"; }\n\n.fa-piggy-bank::before {\n content: \"\\f4d3\"; }\n\n.fa-racquet::before {\n content: \"\\f45a\"; }\n\n.fa-car-mirrors::before {\n content: \"\\e343\"; }\n\n.fa-industry-windows::before {\n content: \"\\f3b3\"; }\n\n.fa-industry-alt::before {\n content: \"\\f3b3\"; }\n\n.fa-bolt-auto::before {\n content: \"\\e0b6\"; }\n\n.fa-battery-half::before {\n content: \"\\f242\"; }\n\n.fa-battery-3::before {\n content: \"\\f242\"; }\n\n.fa-flux-capacitor::before {\n content: \"\\f8ba\"; }\n\n.fa-mountain-city::before {\n content: \"\\e52e\"; }\n\n.fa-coins::before {\n content: \"\\f51e\"; }\n\n.fa-honey-pot::before {\n content: \"\\e418\"; }\n\n.fa-olive::before {\n content: \"\\e316\"; }\n\n.fa-khanda::before {\n content: \"\\f66d\"; }\n\n.fa-filter-list::before {\n content: \"\\e17c\"; }\n\n.fa-outlet::before {\n content: \"\\e01c\"; }\n\n.fa-sliders::before {\n content: \"\\f1de\"; }\n\n.fa-sliders-h::before {\n content: \"\\f1de\"; }\n\n.fa-cauldron::before {\n content: \"\\f6bf\"; }\n\n.fa-people::before {\n content: \"\\e216\"; }\n\n.fa-folder-tree::before {\n content: \"\\f802\"; }\n\n.fa-network-wired::before {\n content: \"\\f6ff\"; }\n\n.fa-croissant::before {\n content: \"\\f7f6\"; }\n\n.fa-map-pin::before {\n content: \"\\f276\"; }\n\n.fa-hamsa::before {\n content: \"\\f665\"; }\n\n.fa-cent-sign::before {\n content: \"\\e3f5\"; }\n\n.fa-swords-laser::before {\n content: \"\\e03d\"; }\n\n.fa-flask::before {\n content: \"\\f0c3\"; }\n\n.fa-person-pregnant::before {\n content: \"\\e31e\"; }\n\n.fa-square-u::before {\n content: \"\\e281\"; }\n\n.fa-wand-sparkles::before {\n content: \"\\f72b\"; }\n\n.fa-router::before {\n content: \"\\f8da\"; }\n\n.fa-ellipsis-vertical::before {\n content: \"\\f142\"; }\n\n.fa-ellipsis-v::before {\n content: \"\\f142\"; }\n\n.fa-sword-laser-alt::before {\n content: \"\\e03c\"; }\n\n.fa-ticket::before {\n content: \"\\f145\"; }\n\n.fa-power-off::before {\n content: \"\\f011\"; }\n\n.fa-coin::before {\n content: \"\\f85c\"; }\n\n.fa-laptop-slash::before {\n content: \"\\e1c7\"; }\n\n.fa-right-long::before {\n content: \"\\f30b\"; }\n\n.fa-long-arrow-alt-right::before {\n content: \"\\f30b\"; }\n\n.fa-circle-b::before {\n content: \"\\e0fd\"; }\n\n.fa-person-dress-simple::before {\n content: \"\\e21c\"; }\n\n.fa-pipe-collar::before {\n content: \"\\e437\"; }\n\n.fa-lights-holiday::before {\n content: \"\\f7b2\"; }\n\n.fa-citrus::before {\n content: \"\\e2f4\"; }\n\n.fa-flag-usa::before {\n content: \"\\f74d\"; }\n\n.fa-laptop-file::before {\n content: \"\\e51d\"; }\n\n.fa-tty::before {\n content: \"\\f1e4\"; }\n\n.fa-teletype::before {\n content: \"\\f1e4\"; }\n\n.fa-chart-tree-map::before {\n content: \"\\e0ea\"; }\n\n.fa-diagram-next::before {\n content: \"\\e476\"; }\n\n.fa-person-rifle::before {\n content: \"\\e54e\"; }\n\n.fa-clock-five-thirty::before {\n content: \"\\e34a\"; }\n\n.fa-pipe-valve::before {\n content: \"\\e439\"; }\n\n.fa-arrow-up-from-arc::before {\n content: \"\\e4b4\"; }\n\n.fa-face-spiral-eyes::before {\n content: \"\\e485\"; }\n\n.fa-compress-wide::before {\n content: \"\\f326\"; }\n\n.fa-circle-phone-hangup::before {\n content: \"\\e11d\"; }\n\n.fa-phone-circle-down::before {\n content: \"\\e11d\"; }\n\n.fa-gear-complex-code::before {\n content: \"\\e5eb\"; }\n\n.fa-house-medical-circle-exclamation::before {\n content: \"\\e512\"; }\n\n.fa-badminton::before {\n content: \"\\e33a\"; }\n\n.fa-closed-captioning::before {\n content: \"\\f20a\"; }\n\n.fa-person-hiking::before {\n content: \"\\f6ec\"; }\n\n.fa-hiking::before {\n content: \"\\f6ec\"; }\n\n.fa-right-from-line::before {\n content: \"\\f347\"; }\n\n.fa-arrow-alt-from-left::before {\n content: \"\\f347\"; }\n\n.fa-venus-double::before {\n content: \"\\f226\"; }\n\n.fa-images::before {\n content: \"\\f302\"; }\n\n.fa-calculator::before {\n content: \"\\f1ec\"; }\n\n.fa-shuttlecock::before {\n content: \"\\f45b\"; }\n\n.fa-user-hair::before {\n content: \"\\e45a\"; }\n\n.fa-eye-evil::before {\n content: \"\\f6db\"; }\n\n.fa-people-pulling::before {\n content: \"\\e535\"; }\n\n.fa-n::before {\n content: \"\\4e\"; }\n\n.fa-swap::before {\n content: \"\\e609\"; }\n\n.fa-garage::before {\n content: \"\\e009\"; }\n\n.fa-cable-car::before {\n content: \"\\f7da\"; }\n\n.fa-tram::before {\n content: \"\\f7da\"; }\n\n.fa-shovel-snow::before {\n content: \"\\f7c3\"; }\n\n.fa-cloud-rain::before {\n content: \"\\f73d\"; }\n\n.fa-face-lying::before {\n content: \"\\e37e\"; }\n\n.fa-sprinkler::before {\n content: \"\\e035\"; }\n\n.fa-building-circle-xmark::before {\n content: \"\\e4d4\"; }\n\n.fa-person-sledding::before {\n content: \"\\f7cb\"; }\n\n.fa-sledding::before {\n content: \"\\f7cb\"; }\n\n.fa-game-console-handheld::before {\n content: \"\\f8bb\"; }\n\n.fa-ship::before {\n content: \"\\f21a\"; }\n\n.fa-clock-six-thirty::before {\n content: \"\\e353\"; }\n\n.fa-battery-slash::before {\n content: \"\\f377\"; }\n\n.fa-tugrik-sign::before {\n content: \"\\e2ba\"; }\n\n.fa-arrows-down-to-line::before {\n content: \"\\e4b8\"; }\n\n.fa-download::before {\n content: \"\\f019\"; }\n\n.fa-angles-up-down::before {\n content: \"\\e60d\"; }\n\n.fa-shelves::before {\n content: \"\\f480\"; }\n\n.fa-inventory::before {\n content: \"\\f480\"; }\n\n.fa-cloud-snow::before {\n content: \"\\f742\"; }\n\n.fa-face-grin::before {\n content: \"\\f580\"; }\n\n.fa-grin::before {\n content: \"\\f580\"; }\n\n.fa-delete-left::before {\n content: \"\\f55a\"; }\n\n.fa-backspace::before {\n content: \"\\f55a\"; }\n\n.fa-oven::before {\n content: \"\\e01d\"; }\n\n.fa-cloud-binary::before {\n content: \"\\e601\"; }\n\n.fa-eye-dropper::before {\n content: \"\\f1fb\"; }\n\n.fa-eye-dropper-empty::before {\n content: \"\\f1fb\"; }\n\n.fa-eyedropper::before {\n content: \"\\f1fb\"; }\n\n.fa-comment-captions::before {\n content: \"\\e146\"; }\n\n.fa-comments-question::before {\n content: \"\\e14e\"; }\n\n.fa-scribble::before {\n content: \"\\e23f\"; }\n\n.fa-rotate-exclamation::before {\n content: \"\\e23c\"; }\n\n.fa-file-circle-check::before {\n content: \"\\e5a0\"; }\n\n.fa-glass::before {\n content: \"\\f804\"; }\n\n.fa-loader::before {\n content: \"\\e1d4\"; }\n\n.fa-forward::before {\n content: \"\\f04e\"; }\n\n.fa-user-pilot::before {\n content: \"\\e2c0\"; }\n\n.fa-mobile::before {\n content: \"\\f3ce\"; }\n\n.fa-mobile-android::before {\n content: \"\\f3ce\"; }\n\n.fa-mobile-phone::before {\n content: \"\\f3ce\"; }\n\n.fa-code-pull-request-closed::before {\n content: \"\\e3f9\"; }\n\n.fa-face-meh::before {\n content: \"\\f11a\"; }\n\n.fa-meh::before {\n content: \"\\f11a\"; }\n\n.fa-align-center::before {\n content: \"\\f037\"; }\n\n.fa-book-skull::before {\n content: \"\\f6b7\"; }\n\n.fa-book-dead::before {\n content: \"\\f6b7\"; }\n\n.fa-id-card::before {\n content: \"\\f2c2\"; }\n\n.fa-drivers-license::before {\n content: \"\\f2c2\"; }\n\n.fa-face-dotted::before {\n content: \"\\e47f\"; }\n\n.fa-face-worried::before {\n content: \"\\e3a3\"; }\n\n.fa-outdent::before {\n content: \"\\f03b\"; }\n\n.fa-dedent::before {\n content: \"\\f03b\"; }\n\n.fa-court-sport::before {\n content: \"\\e643\"; }\n\n.fa-heart-circle-exclamation::before {\n content: \"\\e4fe\"; }\n\n.fa-house::before {\n content: \"\\f015\"; }\n\n.fa-home::before {\n content: \"\\f015\"; }\n\n.fa-home-alt::before {\n content: \"\\f015\"; }\n\n.fa-home-lg-alt::before {\n content: \"\\f015\"; }\n\n.fa-vector-circle::before {\n content: \"\\e2c6\"; }\n\n.fa-car-circle-bolt::before {\n content: \"\\e342\"; }\n\n.fa-calendar-week::before {\n content: \"\\f784\"; }\n\n.fa-flying-disc::before {\n content: \"\\e3a9\"; }\n\n.fa-laptop-medical::before {\n content: \"\\f812\"; }\n\n.fa-square-down-right::before {\n content: \"\\e26c\"; }\n\n.fa-b::before {\n content: \"\\42\"; }\n\n.fa-seat-airline::before {\n content: \"\\e244\"; }\n\n.fa-moon-over-sun::before {\n content: \"\\f74a\"; }\n\n.fa-eclipse-alt::before {\n content: \"\\f74a\"; }\n\n.fa-pipe::before {\n content: \"\\7c\"; }\n\n.fa-file-medical::before {\n content: \"\\f477\"; }\n\n.fa-potato::before {\n content: \"\\e440\"; }\n\n.fa-dice-one::before {\n content: \"\\f525\"; }\n\n.fa-circle-a::before {\n content: \"\\e0f7\"; }\n\n.fa-helmet-battle::before {\n content: \"\\f6eb\"; }\n\n.fa-butter::before {\n content: \"\\e3e4\"; }\n\n.fa-blanket-fire::before {\n content: \"\\e3da\"; }\n\n.fa-kiwi-bird::before {\n content: \"\\f535\"; }\n\n.fa-castle::before {\n content: \"\\e0de\"; }\n\n.fa-golf-club::before {\n content: \"\\f451\"; }\n\n.fa-arrow-right-arrow-left::before {\n content: \"\\f0ec\"; }\n\n.fa-exchange::before {\n content: \"\\f0ec\"; }\n\n.fa-rotate-right::before {\n content: \"\\f2f9\"; }\n\n.fa-redo-alt::before {\n content: \"\\f2f9\"; }\n\n.fa-rotate-forward::before {\n content: \"\\f2f9\"; }\n\n.fa-utensils::before {\n content: \"\\f2e7\"; }\n\n.fa-cutlery::before {\n content: \"\\f2e7\"; }\n\n.fa-arrow-up-wide-short::before {\n content: \"\\f161\"; }\n\n.fa-sort-amount-up::before {\n content: \"\\f161\"; }\n\n.fa-chart-pie-simple-circle-dollar::before {\n content: \"\\e605\"; }\n\n.fa-balloons::before {\n content: \"\\e2e4\"; }\n\n.fa-mill-sign::before {\n content: \"\\e1ed\"; }\n\n.fa-bowl-rice::before {\n content: \"\\e2eb\"; }\n\n.fa-timeline-arrow::before {\n content: \"\\e29d\"; }\n\n.fa-skull::before {\n content: \"\\f54c\"; }\n\n.fa-game-board-simple::before {\n content: \"\\f868\"; }\n\n.fa-game-board-alt::before {\n content: \"\\f868\"; }\n\n.fa-circle-video::before {\n content: \"\\e12b\"; }\n\n.fa-video-circle::before {\n content: \"\\e12b\"; }\n\n.fa-chart-scatter-bubble::before {\n content: \"\\e0e9\"; }\n\n.fa-house-turret::before {\n content: \"\\e1b4\"; }\n\n.fa-banana::before {\n content: \"\\e2e5\"; }\n\n.fa-hand-holding-skull::before {\n content: \"\\e1a4\"; }\n\n.fa-people-dress::before {\n content: \"\\e217\"; }\n\n.fa-loveseat::before {\n content: \"\\f4cc\"; }\n\n.fa-couch-small::before {\n content: \"\\f4cc\"; }\n\n.fa-tower-broadcast::before {\n content: \"\\f519\"; }\n\n.fa-broadcast-tower::before {\n content: \"\\f519\"; }\n\n.fa-truck-pickup::before {\n content: \"\\f63c\"; }\n\n.fa-block-quote::before {\n content: \"\\e0b5\"; }\n\n.fa-up-long::before {\n content: \"\\f30c\"; }\n\n.fa-long-arrow-alt-up::before {\n content: \"\\f30c\"; }\n\n.fa-stop::before {\n content: \"\\f04d\"; }\n\n.fa-code-merge::before {\n content: \"\\f387\"; }\n\n.fa-money-check-dollar-pen::before {\n content: \"\\f873\"; }\n\n.fa-money-check-edit-alt::before {\n content: \"\\f873\"; }\n\n.fa-up-from-line::before {\n content: \"\\f346\"; }\n\n.fa-arrow-alt-from-bottom::before {\n content: \"\\f346\"; }\n\n.fa-upload::before {\n content: \"\\f093\"; }\n\n.fa-hurricane::before {\n content: \"\\f751\"; }\n\n.fa-grid-round-2-plus::before {\n content: \"\\e5dc\"; }\n\n.fa-people-pants::before {\n content: \"\\e219\"; }\n\n.fa-mound::before {\n content: \"\\e52d\"; }\n\n.fa-windsock::before {\n content: \"\\f777\"; }\n\n.fa-circle-half::before {\n content: \"\\e110\"; }\n\n.fa-brake-warning::before {\n content: \"\\e0c7\"; }\n\n.fa-toilet-portable::before {\n content: \"\\e583\"; }\n\n.fa-compact-disc::before {\n content: \"\\f51f\"; }\n\n.fa-file-arrow-down::before {\n content: \"\\f56d\"; }\n\n.fa-file-download::before {\n content: \"\\f56d\"; }\n\n.fa-saxophone-fire::before {\n content: \"\\f8db\"; }\n\n.fa-sax-hot::before {\n content: \"\\f8db\"; }\n\n.fa-camera-web-slash::before {\n content: \"\\f833\"; }\n\n.fa-webcam-slash::before {\n content: \"\\f833\"; }\n\n.fa-folder-medical::before {\n content: \"\\e18c\"; }\n\n.fa-folder-gear::before {\n content: \"\\e187\"; }\n\n.fa-folder-cog::before {\n content: \"\\e187\"; }\n\n.fa-hand-wave::before {\n content: \"\\e1a7\"; }\n\n.fa-arrow-up-arrow-down::before {\n content: \"\\e099\"; }\n\n.fa-sort-up-down::before {\n content: \"\\e099\"; }\n\n.fa-caravan::before {\n content: \"\\f8ff\"; }\n\n.fa-shield-cat::before {\n content: \"\\e572\"; }\n\n.fa-message-slash::before {\n content: \"\\f4a9\"; }\n\n.fa-comment-alt-slash::before {\n content: \"\\f4a9\"; }\n\n.fa-bolt::before {\n content: \"\\f0e7\"; }\n\n.fa-zap::before {\n content: \"\\f0e7\"; }\n\n.fa-trash-can-check::before {\n content: \"\\e2a9\"; }\n\n.fa-glass-water::before {\n content: \"\\e4f4\"; }\n\n.fa-oil-well::before {\n content: \"\\e532\"; }\n\n.fa-person-simple::before {\n content: \"\\e220\"; }\n\n.fa-arrow-turn-left-up::before {\n content: \"\\e634\"; }\n\n.fa-vault::before {\n content: \"\\e2c5\"; }\n\n.fa-mars::before {\n content: \"\\f222\"; }\n\n.fa-toilet::before {\n content: \"\\f7d8\"; }\n\n.fa-plane-circle-xmark::before {\n content: \"\\e557\"; }\n\n.fa-yen-sign::before {\n content: \"\\f157\"; }\n\n.fa-cny::before {\n content: \"\\f157\"; }\n\n.fa-jpy::before {\n content: \"\\f157\"; }\n\n.fa-rmb::before {\n content: \"\\f157\"; }\n\n.fa-yen::before {\n content: \"\\f157\"; }\n\n.fa-gear-code::before {\n content: \"\\e5e8\"; }\n\n.fa-notes::before {\n content: \"\\e202\"; }\n\n.fa-ruble-sign::before {\n content: \"\\f158\"; }\n\n.fa-rouble::before {\n content: \"\\f158\"; }\n\n.fa-rub::before {\n content: \"\\f158\"; }\n\n.fa-ruble::before {\n content: \"\\f158\"; }\n\n.fa-trash-undo::before {\n content: \"\\f895\"; }\n\n.fa-trash-arrow-turn-left::before {\n content: \"\\f895\"; }\n\n.fa-champagne-glass::before {\n content: \"\\f79e\"; }\n\n.fa-glass-champagne::before {\n content: \"\\f79e\"; }\n\n.fa-objects-align-center-horizontal::before {\n content: \"\\e3bc\"; }\n\n.fa-sun::before {\n content: \"\\f185\"; }\n\n.fa-trash-can-slash::before {\n content: \"\\e2ad\"; }\n\n.fa-trash-alt-slash::before {\n content: \"\\e2ad\"; }\n\n.fa-screen-users::before {\n content: \"\\f63d\"; }\n\n.fa-users-class::before {\n content: \"\\f63d\"; }\n\n.fa-guitar::before {\n content: \"\\f7a6\"; }\n\n.fa-square-arrow-left::before {\n content: \"\\f33a\"; }\n\n.fa-arrow-square-left::before {\n content: \"\\f33a\"; }\n\n.fa-square-8::before {\n content: \"\\e25d\"; }\n\n.fa-face-smile-hearts::before {\n content: \"\\e390\"; }\n\n.fa-brackets-square::before {\n content: \"\\f7e9\"; }\n\n.fa-brackets::before {\n content: \"\\f7e9\"; }\n\n.fa-laptop-arrow-down::before {\n content: \"\\e1c6\"; }\n\n.fa-hockey-stick-puck::before {\n content: \"\\e3ae\"; }\n\n.fa-house-tree::before {\n content: \"\\e1b3\"; }\n\n.fa-signal-fair::before {\n content: \"\\f68d\"; }\n\n.fa-signal-2::before {\n content: \"\\f68d\"; }\n\n.fa-face-laugh-wink::before {\n content: \"\\f59c\"; }\n\n.fa-laugh-wink::before {\n content: \"\\f59c\"; }\n\n.fa-circle-dollar::before {\n content: \"\\f2e8\"; }\n\n.fa-dollar-circle::before {\n content: \"\\f2e8\"; }\n\n.fa-usd-circle::before {\n content: \"\\f2e8\"; }\n\n.fa-horse-head::before {\n content: \"\\f7ab\"; }\n\n.fa-arrows-repeat::before {\n content: \"\\f364\"; }\n\n.fa-repeat-alt::before {\n content: \"\\f364\"; }\n\n.fa-bore-hole::before {\n content: \"\\e4c3\"; }\n\n.fa-industry::before {\n content: \"\\f275\"; }\n\n.fa-image-polaroid::before {\n content: \"\\f8c4\"; }\n\n.fa-wave-triangle::before {\n content: \"\\f89a\"; }\n\n.fa-turn-left-down::before {\n content: \"\\e637\"; }\n\n.fa-person-running-fast::before {\n content: \"\\e5ff\"; }\n\n.fa-circle-down::before {\n content: \"\\f358\"; }\n\n.fa-arrow-alt-circle-down::before {\n content: \"\\f358\"; }\n\n.fa-grill::before {\n content: \"\\e5a3\"; }\n\n.fa-arrows-turn-to-dots::before {\n content: \"\\e4c1\"; }\n\n.fa-chart-mixed::before {\n content: \"\\f643\"; }\n\n.fa-analytics::before {\n content: \"\\f643\"; }\n\n.fa-florin-sign::before {\n content: \"\\e184\"; }\n\n.fa-arrow-down-short-wide::before {\n content: \"\\f884\"; }\n\n.fa-sort-amount-desc::before {\n content: \"\\f884\"; }\n\n.fa-sort-amount-down-alt::before {\n content: \"\\f884\"; }\n\n.fa-less-than::before {\n content: \"\\3c\"; }\n\n.fa-display-code::before {\n content: \"\\e165\"; }\n\n.fa-desktop-code::before {\n content: \"\\e165\"; }\n\n.fa-face-drooling::before {\n content: \"\\e372\"; }\n\n.fa-oil-temperature::before {\n content: \"\\f614\"; }\n\n.fa-oil-temp::before {\n content: \"\\f614\"; }\n\n.fa-square-question::before {\n content: \"\\f2fd\"; }\n\n.fa-question-square::before {\n content: \"\\f2fd\"; }\n\n.fa-air-conditioner::before {\n content: \"\\f8f4\"; }\n\n.fa-angle-down::before {\n content: \"\\f107\"; }\n\n.fa-mountains::before {\n content: \"\\f6fd\"; }\n\n.fa-omega::before {\n content: \"\\f67a\"; }\n\n.fa-car-tunnel::before {\n content: \"\\e4de\"; }\n\n.fa-person-dolly-empty::before {\n content: \"\\f4d1\"; }\n\n.fa-pan-food::before {\n content: \"\\e42b\"; }\n\n.fa-head-side-cough::before {\n content: \"\\e061\"; }\n\n.fa-grip-lines::before {\n content: \"\\f7a4\"; }\n\n.fa-thumbs-down::before {\n content: \"\\f165\"; }\n\n.fa-user-lock::before {\n content: \"\\f502\"; }\n\n.fa-arrow-right-long::before {\n content: \"\\f178\"; }\n\n.fa-long-arrow-right::before {\n content: \"\\f178\"; }\n\n.fa-tickets-airline::before {\n content: \"\\e29b\"; }\n\n.fa-tickets-perforated-plane::before {\n content: \"\\e29b\"; }\n\n.fa-tickets-plane::before {\n content: \"\\e29b\"; }\n\n.fa-tent-double-peak::before {\n content: \"\\e627\"; }\n\n.fa-anchor-circle-xmark::before {\n content: \"\\e4ac\"; }\n\n.fa-ellipsis::before {\n content: \"\\f141\"; }\n\n.fa-ellipsis-h::before {\n content: \"\\f141\"; }\n\n.fa-nfc-slash::before {\n content: \"\\e1fc\"; }\n\n.fa-chess-pawn::before {\n content: \"\\f443\"; }\n\n.fa-kit-medical::before {\n content: \"\\f479\"; }\n\n.fa-first-aid::before {\n content: \"\\f479\"; }\n\n.fa-grid-2-plus::before {\n content: \"\\e197\"; }\n\n.fa-bells::before {\n content: \"\\f77f\"; }\n\n.fa-person-through-window::before {\n content: \"\\e5a9\"; }\n\n.fa-toolbox::before {\n content: \"\\f552\"; }\n\n.fa-envelope-dot::before {\n content: \"\\e16f\"; }\n\n.fa-envelope-badge::before {\n content: \"\\e16f\"; }\n\n.fa-magnifying-glass-waveform::before {\n content: \"\\e661\"; }\n\n.fa-hands-holding-circle::before {\n content: \"\\e4fb\"; }\n\n.fa-bug::before {\n content: \"\\f188\"; }\n\n.fa-bowl-chopsticks::before {\n content: \"\\e2e9\"; }\n\n.fa-credit-card::before {\n content: \"\\f09d\"; }\n\n.fa-credit-card-alt::before {\n content: \"\\f09d\"; }\n\n.fa-circle-s::before {\n content: \"\\e121\"; }\n\n.fa-box-ballot::before {\n content: \"\\f735\"; }\n\n.fa-car::before {\n content: \"\\f1b9\"; }\n\n.fa-automobile::before {\n content: \"\\f1b9\"; }\n\n.fa-hand-holding-hand::before {\n content: \"\\e4f7\"; }\n\n.fa-user-tie-hair::before {\n content: \"\\e45f\"; }\n\n.fa-podium-star::before {\n content: \"\\f758\"; }\n\n.fa-user-hair-mullet::before {\n content: \"\\e45c\"; }\n\n.fa-business-front::before {\n content: \"\\e45c\"; }\n\n.fa-party-back::before {\n content: \"\\e45c\"; }\n\n.fa-trian-balbot::before {\n content: \"\\e45c\"; }\n\n.fa-microphone-stand::before {\n content: \"\\f8cb\"; }\n\n.fa-book-open-reader::before {\n content: \"\\f5da\"; }\n\n.fa-book-reader::before {\n content: \"\\f5da\"; }\n\n.fa-family-dress::before {\n content: \"\\e301\"; }\n\n.fa-circle-x::before {\n content: \"\\e12e\"; }\n\n.fa-cabin::before {\n content: \"\\e46d\"; }\n\n.fa-mountain-sun::before {\n content: \"\\e52f\"; }\n\n.fa-chart-simple-horizontal::before {\n content: \"\\e474\"; }\n\n.fa-arrows-left-right-to-line::before {\n content: \"\\e4ba\"; }\n\n.fa-hand-back-point-left::before {\n content: \"\\e19f\"; }\n\n.fa-message-dots::before {\n content: \"\\f4a3\"; }\n\n.fa-comment-alt-dots::before {\n content: \"\\f4a3\"; }\n\n.fa-messaging::before {\n content: \"\\f4a3\"; }\n\n.fa-file-heart::before {\n content: \"\\e176\"; }\n\n.fa-beer-mug::before {\n content: \"\\e0b3\"; }\n\n.fa-beer-foam::before {\n content: \"\\e0b3\"; }\n\n.fa-dice-d20::before {\n content: \"\\f6cf\"; }\n\n.fa-drone::before {\n content: \"\\f85f\"; }\n\n.fa-truck-droplet::before {\n content: \"\\e58c\"; }\n\n.fa-file-circle-xmark::before {\n content: \"\\e5a1\"; }\n\n.fa-temperature-arrow-up::before {\n content: \"\\e040\"; }\n\n.fa-temperature-up::before {\n content: \"\\e040\"; }\n\n.fa-medal::before {\n content: \"\\f5a2\"; }\n\n.fa-person-fairy::before {\n content: \"\\e608\"; }\n\n.fa-bed::before {\n content: \"\\f236\"; }\n\n.fa-book-copy::before {\n content: \"\\e0be\"; }\n\n.fa-square-h::before {\n content: \"\\f0fd\"; }\n\n.fa-h-square::before {\n content: \"\\f0fd\"; }\n\n.fa-square-c::before {\n content: \"\\e266\"; }\n\n.fa-clock-two::before {\n content: \"\\e35a\"; }\n\n.fa-square-ellipsis-vertical::before {\n content: \"\\e26f\"; }\n\n.fa-calendar-users::before {\n content: \"\\e5e2\"; }\n\n.fa-podcast::before {\n content: \"\\f2ce\"; }\n\n.fa-bee::before {\n content: \"\\e0b2\"; }\n\n.fa-temperature-full::before {\n content: \"\\f2c7\"; }\n\n.fa-temperature-4::before {\n content: \"\\f2c7\"; }\n\n.fa-thermometer-4::before {\n content: \"\\f2c7\"; }\n\n.fa-thermometer-full::before {\n content: \"\\f2c7\"; }\n\n.fa-bell::before {\n content: \"\\f0f3\"; }\n\n.fa-candy-bar::before {\n content: \"\\e3e8\"; }\n\n.fa-chocolate-bar::before {\n content: \"\\e3e8\"; }\n\n.fa-xmark-large::before {\n content: \"\\e59b\"; }\n\n.fa-pinata::before {\n content: \"\\e3c3\"; }\n\n.fa-file-ppt::before {\n content: \"\\e64a\"; }\n\n.fa-arrows-from-line::before {\n content: \"\\e0a4\"; }\n\n.fa-superscript::before {\n content: \"\\f12b\"; }\n\n.fa-bowl-spoon::before {\n content: \"\\e3e0\"; }\n\n.fa-hexagon-check::before {\n content: \"\\e416\"; }\n\n.fa-plug-circle-xmark::before {\n content: \"\\e560\"; }\n\n.fa-star-of-life::before {\n content: \"\\f621\"; }\n\n.fa-phone-slash::before {\n content: \"\\f3dd\"; }\n\n.fa-traffic-light-stop::before {\n content: \"\\f63a\"; }\n\n.fa-paint-roller::before {\n content: \"\\f5aa\"; }\n\n.fa-accent-grave::before {\n content: \"\\60\"; }\n\n.fa-handshake-angle::before {\n content: \"\\f4c4\"; }\n\n.fa-hands-helping::before {\n content: \"\\f4c4\"; }\n\n.fa-circle-0::before {\n content: \"\\e0ed\"; }\n\n.fa-dial-med-low::before {\n content: \"\\e160\"; }\n\n.fa-location-dot::before {\n content: \"\\f3c5\"; }\n\n.fa-map-marker-alt::before {\n content: \"\\f3c5\"; }\n\n.fa-crab::before {\n content: \"\\e3ff\"; }\n\n.fa-box-open-full::before {\n content: \"\\f49c\"; }\n\n.fa-box-full::before {\n content: \"\\f49c\"; }\n\n.fa-file::before {\n content: \"\\f15b\"; }\n\n.fa-greater-than::before {\n content: \"\\3e\"; }\n\n.fa-quotes::before {\n content: \"\\e234\"; }\n\n.fa-pretzel::before {\n content: \"\\e441\"; }\n\n.fa-t-rex::before {\n content: \"\\e629\"; }\n\n.fa-person-swimming::before {\n content: \"\\f5c4\"; }\n\n.fa-swimmer::before {\n content: \"\\f5c4\"; }\n\n.fa-arrow-down::before {\n content: \"\\f063\"; }\n\n.fa-user-robot-xmarks::before {\n content: \"\\e4a7\"; }\n\n.fa-message-quote::before {\n content: \"\\e1e4\"; }\n\n.fa-comment-alt-quote::before {\n content: \"\\e1e4\"; }\n\n.fa-candy-corn::before {\n content: \"\\f6bd\"; }\n\n.fa-folder-magnifying-glass::before {\n content: \"\\e18b\"; }\n\n.fa-folder-search::before {\n content: \"\\e18b\"; }\n\n.fa-notebook::before {\n content: \"\\e201\"; }\n\n.fa-circle-wifi::before {\n content: \"\\e67d\"; }\n\n.fa-droplet::before {\n content: \"\\f043\"; }\n\n.fa-tint::before {\n content: \"\\f043\"; }\n\n.fa-bullseye-pointer::before {\n content: \"\\f649\"; }\n\n.fa-eraser::before {\n content: \"\\f12d\"; }\n\n.fa-hexagon-image::before {\n content: \"\\e504\"; }\n\n.fa-earth-americas::before {\n content: \"\\f57d\"; }\n\n.fa-earth::before {\n content: \"\\f57d\"; }\n\n.fa-earth-america::before {\n content: \"\\f57d\"; }\n\n.fa-globe-americas::before {\n content: \"\\f57d\"; }\n\n.fa-file-svg::before {\n content: \"\\e64b\"; }\n\n.fa-crate-apple::before {\n content: \"\\f6b1\"; }\n\n.fa-apple-crate::before {\n content: \"\\f6b1\"; }\n\n.fa-person-burst::before {\n content: \"\\e53b\"; }\n\n.fa-game-board::before {\n content: \"\\f867\"; }\n\n.fa-hat-chef::before {\n content: \"\\f86b\"; }\n\n.fa-hand-back-point-right::before {\n content: \"\\e1a1\"; }\n\n.fa-dove::before {\n content: \"\\f4ba\"; }\n\n.fa-snowflake-droplets::before {\n content: \"\\e5c1\"; }\n\n.fa-battery-empty::before {\n content: \"\\f244\"; }\n\n.fa-battery-0::before {\n content: \"\\f244\"; }\n\n.fa-grid-4::before {\n content: \"\\e198\"; }\n\n.fa-socks::before {\n content: \"\\f696\"; }\n\n.fa-face-sunglasses::before {\n content: \"\\e398\"; }\n\n.fa-inbox::before {\n content: \"\\f01c\"; }\n\n.fa-square-0::before {\n content: \"\\e255\"; }\n\n.fa-section::before {\n content: \"\\e447\"; }\n\n.fa-square-this-way-up::before {\n content: \"\\f49f\"; }\n\n.fa-box-up::before {\n content: \"\\f49f\"; }\n\n.fa-gauge-high::before {\n content: \"\\f625\"; }\n\n.fa-tachometer-alt::before {\n content: \"\\f625\"; }\n\n.fa-tachometer-alt-fast::before {\n content: \"\\f625\"; }\n\n.fa-square-ampersand::before {\n content: \"\\e260\"; }\n\n.fa-envelope-open-text::before {\n content: \"\\f658\"; }\n\n.fa-lamp-desk::before {\n content: \"\\e014\"; }\n\n.fa-hospital::before {\n content: \"\\f0f8\"; }\n\n.fa-hospital-alt::before {\n content: \"\\f0f8\"; }\n\n.fa-hospital-wide::before {\n content: \"\\f0f8\"; }\n\n.fa-poll-people::before {\n content: \"\\f759\"; }\n\n.fa-whiskey-glass-ice::before {\n content: \"\\f7a1\"; }\n\n.fa-glass-whiskey-rocks::before {\n content: \"\\f7a1\"; }\n\n.fa-wine-bottle::before {\n content: \"\\f72f\"; }\n\n.fa-chess-rook::before {\n content: \"\\f447\"; }\n\n.fa-user-bounty-hunter::before {\n content: \"\\e2bf\"; }\n\n.fa-bars-staggered::before {\n content: \"\\f550\"; }\n\n.fa-reorder::before {\n content: \"\\f550\"; }\n\n.fa-stream::before {\n content: \"\\f550\"; }\n\n.fa-diagram-sankey::before {\n content: \"\\e158\"; }\n\n.fa-cloud-hail-mixed::before {\n content: \"\\f73a\"; }\n\n.fa-circle-up-left::before {\n content: \"\\e128\"; }\n\n.fa-dharmachakra::before {\n content: \"\\f655\"; }\n\n.fa-objects-align-left::before {\n content: \"\\e3be\"; }\n\n.fa-oil-can-drip::before {\n content: \"\\e205\"; }\n\n.fa-face-smiling-hands::before {\n content: \"\\e396\"; }\n\n.fa-broccoli::before {\n content: \"\\e3e2\"; }\n\n.fa-route-interstate::before {\n content: \"\\f61b\"; }\n\n.fa-ear-muffs::before {\n content: \"\\f795\"; }\n\n.fa-hotdog::before {\n content: \"\\f80f\"; }\n\n.fa-transporter-empty::before {\n content: \"\\e046\"; }\n\n.fa-person-walking-with-cane::before {\n content: \"\\f29d\"; }\n\n.fa-blind::before {\n content: \"\\f29d\"; }\n\n.fa-angle-90::before {\n content: \"\\e08d\"; }\n\n.fa-rectangle-terminal::before {\n content: \"\\e236\"; }\n\n.fa-kite::before {\n content: \"\\f6f4\"; }\n\n.fa-drum::before {\n content: \"\\f569\"; }\n\n.fa-scrubber::before {\n content: \"\\f2f8\"; }\n\n.fa-ice-cream::before {\n content: \"\\f810\"; }\n\n.fa-heart-circle-bolt::before {\n content: \"\\e4fc\"; }\n\n.fa-fish-bones::before {\n content: \"\\e304\"; }\n\n.fa-deer-rudolph::before {\n content: \"\\f78f\"; }\n\n.fa-fax::before {\n content: \"\\f1ac\"; }\n\n.fa-paragraph::before {\n content: \"\\f1dd\"; }\n\n.fa-head-side-heart::before {\n content: \"\\e1aa\"; }\n\n.fa-square-e::before {\n content: \"\\e26d\"; }\n\n.fa-meter-fire::before {\n content: \"\\e1eb\"; }\n\n.fa-cloud-hail::before {\n content: \"\\f739\"; }\n\n.fa-check-to-slot::before {\n content: \"\\f772\"; }\n\n.fa-vote-yea::before {\n content: \"\\f772\"; }\n\n.fa-money-from-bracket::before {\n content: \"\\e312\"; }\n\n.fa-star-half::before {\n content: \"\\f089\"; }\n\n.fa-car-bus::before {\n content: \"\\f85a\"; }\n\n.fa-speaker::before {\n content: \"\\f8df\"; }\n\n.fa-timer::before {\n content: \"\\e29e\"; }\n\n.fa-boxes-stacked::before {\n content: \"\\f468\"; }\n\n.fa-boxes::before {\n content: \"\\f468\"; }\n\n.fa-boxes-alt::before {\n content: \"\\f468\"; }\n\n.fa-landmark-magnifying-glass::before {\n content: \"\\e622\"; }\n\n.fa-grill-hot::before {\n content: \"\\e5a5\"; }\n\n.fa-ballot-check::before {\n content: \"\\f733\"; }\n\n.fa-link::before {\n content: \"\\f0c1\"; }\n\n.fa-chain::before {\n content: \"\\f0c1\"; }\n\n.fa-ear-listen::before {\n content: \"\\f2a2\"; }\n\n.fa-assistive-listening-systems::before {\n content: \"\\f2a2\"; }\n\n.fa-file-minus::before {\n content: \"\\f318\"; }\n\n.fa-tree-city::before {\n content: \"\\e587\"; }\n\n.fa-play::before {\n content: \"\\f04b\"; }\n\n.fa-font::before {\n content: \"\\f031\"; }\n\n.fa-cup-togo::before {\n content: \"\\f6c5\"; }\n\n.fa-coffee-togo::before {\n content: \"\\f6c5\"; }\n\n.fa-square-down-left::before {\n content: \"\\e26b\"; }\n\n.fa-burger-lettuce::before {\n content: \"\\e3e3\"; }\n\n.fa-table-cells-row-lock::before {\n content: \"\\e67a\"; }\n\n.fa-rupiah-sign::before {\n content: \"\\e23d\"; }\n\n.fa-magnifying-glass::before {\n content: \"\\f002\"; }\n\n.fa-search::before {\n content: \"\\f002\"; }\n\n.fa-table-tennis-paddle-ball::before {\n content: \"\\f45d\"; }\n\n.fa-ping-pong-paddle-ball::before {\n content: \"\\f45d\"; }\n\n.fa-table-tennis::before {\n content: \"\\f45d\"; }\n\n.fa-person-dots-from-line::before {\n content: \"\\f470\"; }\n\n.fa-diagnoses::before {\n content: \"\\f470\"; }\n\n.fa-chevrons-down::before {\n content: \"\\f322\"; }\n\n.fa-chevron-double-down::before {\n content: \"\\f322\"; }\n\n.fa-trash-can-arrow-up::before {\n content: \"\\f82a\"; }\n\n.fa-trash-restore-alt::before {\n content: \"\\f82a\"; }\n\n.fa-signal-good::before {\n content: \"\\f68e\"; }\n\n.fa-signal-3::before {\n content: \"\\f68e\"; }\n\n.fa-location-question::before {\n content: \"\\f60b\"; }\n\n.fa-map-marker-question::before {\n content: \"\\f60b\"; }\n\n.fa-floppy-disk-circle-xmark::before {\n content: \"\\e181\"; }\n\n.fa-floppy-disk-times::before {\n content: \"\\e181\"; }\n\n.fa-save-circle-xmark::before {\n content: \"\\e181\"; }\n\n.fa-save-times::before {\n content: \"\\e181\"; }\n\n.fa-naira-sign::before {\n content: \"\\e1f6\"; }\n\n.fa-peach::before {\n content: \"\\e20b\"; }\n\n.fa-taxi-bus::before {\n content: \"\\e298\"; }\n\n.fa-bracket-curly::before {\n content: \"\\7b\"; }\n\n.fa-bracket-curly-left::before {\n content: \"\\7b\"; }\n\n.fa-lobster::before {\n content: \"\\e421\"; }\n\n.fa-cart-flatbed-empty::before {\n content: \"\\f476\"; }\n\n.fa-dolly-flatbed-empty::before {\n content: \"\\f476\"; }\n\n.fa-colon::before {\n content: \"\\3a\"; }\n\n.fa-cart-arrow-down::before {\n content: \"\\f218\"; }\n\n.fa-wand::before {\n content: \"\\f72a\"; }\n\n.fa-walkie-talkie::before {\n content: \"\\f8ef\"; }\n\n.fa-file-pen::before {\n content: \"\\f31c\"; }\n\n.fa-file-edit::before {\n content: \"\\f31c\"; }\n\n.fa-receipt::before {\n content: \"\\f543\"; }\n\n.fa-table-picnic::before {\n content: \"\\e32d\"; }\n\n.fa-square-pen::before {\n content: \"\\f14b\"; }\n\n.fa-pen-square::before {\n content: \"\\f14b\"; }\n\n.fa-pencil-square::before {\n content: \"\\f14b\"; }\n\n.fa-circle-microphone-lines::before {\n content: \"\\e117\"; }\n\n.fa-microphone-circle-alt::before {\n content: \"\\e117\"; }\n\n.fa-display-slash::before {\n content: \"\\e2fa\"; }\n\n.fa-desktop-slash::before {\n content: \"\\e2fa\"; }\n\n.fa-suitcase-rolling::before {\n content: \"\\f5c1\"; }\n\n.fa-person-circle-exclamation::before {\n content: \"\\e53f\"; }\n\n.fa-transporter-2::before {\n content: \"\\e044\"; }\n\n.fa-hands-holding-diamond::before {\n content: \"\\f47c\"; }\n\n.fa-hand-receiving::before {\n content: \"\\f47c\"; }\n\n.fa-money-bill-simple-wave::before {\n content: \"\\e1f2\"; }\n\n.fa-chevron-down::before {\n content: \"\\f078\"; }\n\n.fa-battery-full::before {\n content: \"\\f240\"; }\n\n.fa-battery::before {\n content: \"\\f240\"; }\n\n.fa-battery-5::before {\n content: \"\\f240\"; }\n\n.fa-bell-plus::before {\n content: \"\\f849\"; }\n\n.fa-book-arrow-right::before {\n content: \"\\e0b9\"; }\n\n.fa-hospitals::before {\n content: \"\\f80e\"; }\n\n.fa-club::before {\n content: \"\\f327\"; }\n\n.fa-skull-crossbones::before {\n content: \"\\f714\"; }\n\n.fa-droplet-degree::before {\n content: \"\\f748\"; }\n\n.fa-dewpoint::before {\n content: \"\\f748\"; }\n\n.fa-code-compare::before {\n content: \"\\e13a\"; }\n\n.fa-list-ul::before {\n content: \"\\f0ca\"; }\n\n.fa-list-dots::before {\n content: \"\\f0ca\"; }\n\n.fa-hand-holding-magic::before {\n content: \"\\f6e5\"; }\n\n.fa-watermelon-slice::before {\n content: \"\\e337\"; }\n\n.fa-circle-ellipsis::before {\n content: \"\\e10a\"; }\n\n.fa-school-lock::before {\n content: \"\\e56f\"; }\n\n.fa-tower-cell::before {\n content: \"\\e585\"; }\n\n.fa-sd-cards::before {\n content: \"\\e240\"; }\n\n.fa-jug-bottle::before {\n content: \"\\e5fb\"; }\n\n.fa-down-long::before {\n content: \"\\f309\"; }\n\n.fa-long-arrow-alt-down::before {\n content: \"\\f309\"; }\n\n.fa-envelopes::before {\n content: \"\\e170\"; }\n\n.fa-phone-office::before {\n content: \"\\f67d\"; }\n\n.fa-ranking-star::before {\n content: \"\\e561\"; }\n\n.fa-chess-king::before {\n content: \"\\f43f\"; }\n\n.fa-nfc-pen::before {\n content: \"\\e1fa\"; }\n\n.fa-person-harassing::before {\n content: \"\\e549\"; }\n\n.fa-magnifying-glass-play::before {\n content: \"\\e660\"; }\n\n.fa-hat-winter::before {\n content: \"\\f7a8\"; }\n\n.fa-brazilian-real-sign::before {\n content: \"\\e46c\"; }\n\n.fa-landmark-dome::before {\n content: \"\\f752\"; }\n\n.fa-landmark-alt::before {\n content: \"\\f752\"; }\n\n.fa-bone-break::before {\n content: \"\\f5d8\"; }\n\n.fa-arrow-up::before {\n content: \"\\f062\"; }\n\n.fa-down-from-dotted-line::before {\n content: \"\\e407\"; }\n\n.fa-tv::before {\n content: \"\\f26c\"; }\n\n.fa-television::before {\n content: \"\\f26c\"; }\n\n.fa-tv-alt::before {\n content: \"\\f26c\"; }\n\n.fa-border-left::before {\n content: \"\\f84f\"; }\n\n.fa-circle-divide::before {\n content: \"\\e106\"; }\n\n.fa-shrimp::before {\n content: \"\\e448\"; }\n\n.fa-list-check::before {\n content: \"\\f0ae\"; }\n\n.fa-tasks::before {\n content: \"\\f0ae\"; }\n\n.fa-diagram-subtask::before {\n content: \"\\e479\"; }\n\n.fa-jug-detergent::before {\n content: \"\\e519\"; }\n\n.fa-circle-user::before {\n content: \"\\f2bd\"; }\n\n.fa-user-circle::before {\n content: \"\\f2bd\"; }\n\n.fa-square-y::before {\n content: \"\\e287\"; }\n\n.fa-user-doctor-hair::before {\n content: \"\\e458\"; }\n\n.fa-planet-ringed::before {\n content: \"\\e020\"; }\n\n.fa-mushroom::before {\n content: \"\\e425\"; }\n\n.fa-user-shield::before {\n content: \"\\f505\"; }\n\n.fa-megaphone::before {\n content: \"\\f675\"; }\n\n.fa-wreath-laurel::before {\n content: \"\\e5d2\"; }\n\n.fa-circle-exclamation-check::before {\n content: \"\\e10d\"; }\n\n.fa-wind::before {\n content: \"\\f72e\"; }\n\n.fa-box-dollar::before {\n content: \"\\f4a0\"; }\n\n.fa-box-usd::before {\n content: \"\\f4a0\"; }\n\n.fa-car-burst::before {\n content: \"\\f5e1\"; }\n\n.fa-car-crash::before {\n content: \"\\f5e1\"; }\n\n.fa-y::before {\n content: \"\\59\"; }\n\n.fa-user-headset::before {\n content: \"\\f82d\"; }\n\n.fa-arrows-retweet::before {\n content: \"\\f361\"; }\n\n.fa-retweet-alt::before {\n content: \"\\f361\"; }\n\n.fa-person-snowboarding::before {\n content: \"\\f7ce\"; }\n\n.fa-snowboarding::before {\n content: \"\\f7ce\"; }\n\n.fa-square-chevron-right::before {\n content: \"\\f32b\"; }\n\n.fa-chevron-square-right::before {\n content: \"\\f32b\"; }\n\n.fa-lacrosse-stick-ball::before {\n content: \"\\e3b6\"; }\n\n.fa-truck-fast::before {\n content: \"\\f48b\"; }\n\n.fa-shipping-fast::before {\n content: \"\\f48b\"; }\n\n.fa-user-magnifying-glass::before {\n content: \"\\e5c5\"; }\n\n.fa-star-sharp::before {\n content: \"\\e28b\"; }\n\n.fa-comment-heart::before {\n content: \"\\e5c8\"; }\n\n.fa-circle-1::before {\n content: \"\\e0ee\"; }\n\n.fa-circle-star::before {\n content: \"\\e123\"; }\n\n.fa-star-circle::before {\n content: \"\\e123\"; }\n\n.fa-fish::before {\n content: \"\\f578\"; }\n\n.fa-cloud-fog::before {\n content: \"\\f74e\"; }\n\n.fa-fog::before {\n content: \"\\f74e\"; }\n\n.fa-waffle::before {\n content: \"\\e466\"; }\n\n.fa-music-note::before {\n content: \"\\f8cf\"; }\n\n.fa-music-alt::before {\n content: \"\\f8cf\"; }\n\n.fa-hexagon-exclamation::before {\n content: \"\\e417\"; }\n\n.fa-cart-shopping-fast::before {\n content: \"\\e0dc\"; }\n\n.fa-object-union::before {\n content: \"\\e49f\"; }\n\n.fa-user-graduate::before {\n content: \"\\f501\"; }\n\n.fa-starfighter::before {\n content: \"\\e037\"; }\n\n.fa-circle-half-stroke::before {\n content: \"\\f042\"; }\n\n.fa-adjust::before {\n content: \"\\f042\"; }\n\n.fa-arrow-right-long-to-line::before {\n content: \"\\e3d5\"; }\n\n.fa-square-arrow-down::before {\n content: \"\\f339\"; }\n\n.fa-arrow-square-down::before {\n content: \"\\f339\"; }\n\n.fa-diamond-half-stroke::before {\n content: \"\\e5b8\"; }\n\n.fa-clapperboard::before {\n content: \"\\e131\"; }\n\n.fa-square-chevron-left::before {\n content: \"\\f32a\"; }\n\n.fa-chevron-square-left::before {\n content: \"\\f32a\"; }\n\n.fa-phone-intercom::before {\n content: \"\\e434\"; }\n\n.fa-link-horizontal::before {\n content: \"\\e1cb\"; }\n\n.fa-chain-horizontal::before {\n content: \"\\e1cb\"; }\n\n.fa-mango::before {\n content: \"\\e30f\"; }\n\n.fa-music-note-slash::before {\n content: \"\\f8d0\"; }\n\n.fa-music-alt-slash::before {\n content: \"\\f8d0\"; }\n\n.fa-circle-radiation::before {\n content: \"\\f7ba\"; }\n\n.fa-radiation-alt::before {\n content: \"\\f7ba\"; }\n\n.fa-face-tongue-sweat::before {\n content: \"\\e39e\"; }\n\n.fa-globe-stand::before {\n content: \"\\f5f6\"; }\n\n.fa-baseball::before {\n content: \"\\f433\"; }\n\n.fa-baseball-ball::before {\n content: \"\\f433\"; }\n\n.fa-circle-p::before {\n content: \"\\e11a\"; }\n\n.fa-award-simple::before {\n content: \"\\e0ab\"; }\n\n.fa-jet-fighter-up::before {\n content: \"\\e518\"; }\n\n.fa-diagram-project::before {\n content: \"\\f542\"; }\n\n.fa-project-diagram::before {\n content: \"\\f542\"; }\n\n.fa-pedestal::before {\n content: \"\\e20d\"; }\n\n.fa-chart-pyramid::before {\n content: \"\\e0e6\"; }\n\n.fa-sidebar::before {\n content: \"\\e24e\"; }\n\n.fa-snowman-head::before {\n content: \"\\f79b\"; }\n\n.fa-frosty-head::before {\n content: \"\\f79b\"; }\n\n.fa-copy::before {\n content: \"\\f0c5\"; }\n\n.fa-burger-glass::before {\n content: \"\\e0ce\"; }\n\n.fa-volume-xmark::before {\n content: \"\\f6a9\"; }\n\n.fa-volume-mute::before {\n content: \"\\f6a9\"; }\n\n.fa-volume-times::before {\n content: \"\\f6a9\"; }\n\n.fa-hand-sparkles::before {\n content: \"\\e05d\"; }\n\n.fa-bars-filter::before {\n content: \"\\e0ad\"; }\n\n.fa-paintbrush-pencil::before {\n content: \"\\e206\"; }\n\n.fa-party-bell::before {\n content: \"\\e31a\"; }\n\n.fa-user-vneck-hair::before {\n content: \"\\e462\"; }\n\n.fa-jack-o-lantern::before {\n content: \"\\f30e\"; }\n\n.fa-grip::before {\n content: \"\\f58d\"; }\n\n.fa-grip-horizontal::before {\n content: \"\\f58d\"; }\n\n.fa-share-from-square::before {\n content: \"\\f14d\"; }\n\n.fa-share-square::before {\n content: \"\\f14d\"; }\n\n.fa-keynote::before {\n content: \"\\f66c\"; }\n\n.fa-child-combatant::before {\n content: \"\\e4e0\"; }\n\n.fa-child-rifle::before {\n content: \"\\e4e0\"; }\n\n.fa-gun::before {\n content: \"\\e19b\"; }\n\n.fa-square-phone::before {\n content: \"\\f098\"; }\n\n.fa-phone-square::before {\n content: \"\\f098\"; }\n\n.fa-hat-beach::before {\n content: \"\\e606\"; }\n\n.fa-plus::before {\n content: \"\\2b\"; }\n\n.fa-add::before {\n content: \"\\2b\"; }\n\n.fa-expand::before {\n content: \"\\f065\"; }\n\n.fa-computer::before {\n content: \"\\e4e5\"; }\n\n.fa-fort::before {\n content: \"\\e486\"; }\n\n.fa-cloud-check::before {\n content: \"\\e35c\"; }\n\n.fa-xmark::before {\n content: \"\\f00d\"; }\n\n.fa-close::before {\n content: \"\\f00d\"; }\n\n.fa-multiply::before {\n content: \"\\f00d\"; }\n\n.fa-remove::before {\n content: \"\\f00d\"; }\n\n.fa-times::before {\n content: \"\\f00d\"; }\n\n.fa-face-smirking::before {\n content: \"\\e397\"; }\n\n.fa-arrows-up-down-left-right::before {\n content: \"\\f047\"; }\n\n.fa-arrows::before {\n content: \"\\f047\"; }\n\n.fa-chalkboard-user::before {\n content: \"\\f51c\"; }\n\n.fa-chalkboard-teacher::before {\n content: \"\\f51c\"; }\n\n.fa-rhombus::before {\n content: \"\\e23b\"; }\n\n.fa-claw-marks::before {\n content: \"\\f6c2\"; }\n\n.fa-peso-sign::before {\n content: \"\\e222\"; }\n\n.fa-face-smile-tongue::before {\n content: \"\\e394\"; }\n\n.fa-cart-circle-xmark::before {\n content: \"\\e3f4\"; }\n\n.fa-building-shield::before {\n content: \"\\e4d8\"; }\n\n.fa-circle-phone-flip::before {\n content: \"\\e11c\"; }\n\n.fa-phone-circle-alt::before {\n content: \"\\e11c\"; }\n\n.fa-baby::before {\n content: \"\\f77c\"; }\n\n.fa-users-line::before {\n content: \"\\e592\"; }\n\n.fa-quote-left::before {\n content: \"\\f10d\"; }\n\n.fa-quote-left-alt::before {\n content: \"\\f10d\"; }\n\n.fa-tractor::before {\n content: \"\\f722\"; }\n\n.fa-down-from-bracket::before {\n content: \"\\e66b\"; }\n\n.fa-key-skeleton::before {\n content: \"\\f6f3\"; }\n\n.fa-trash-arrow-up::before {\n content: \"\\f829\"; }\n\n.fa-trash-restore::before {\n content: \"\\f829\"; }\n\n.fa-arrow-down-up-lock::before {\n content: \"\\e4b0\"; }\n\n.fa-arrow-down-to-bracket::before {\n content: \"\\e094\"; }\n\n.fa-lines-leaning::before {\n content: \"\\e51e\"; }\n\n.fa-square-q::before {\n content: \"\\e27b\"; }\n\n.fa-ruler-combined::before {\n content: \"\\f546\"; }\n\n.fa-symbols::before {\n content: \"\\f86e\"; }\n\n.fa-icons-alt::before {\n content: \"\\f86e\"; }\n\n.fa-copyright::before {\n content: \"\\f1f9\"; }\n\n.fa-flask-gear::before {\n content: \"\\e5f1\"; }\n\n.fa-highlighter-line::before {\n content: \"\\e1af\"; }\n\n.fa-bracket-square::before {\n content: \"\\5b\"; }\n\n.fa-bracket::before {\n content: \"\\5b\"; }\n\n.fa-bracket-left::before {\n content: \"\\5b\"; }\n\n.fa-island-tropical::before {\n content: \"\\f811\"; }\n\n.fa-island-tree-palm::before {\n content: \"\\f811\"; }\n\n.fa-arrow-right-from-line::before {\n content: \"\\f343\"; }\n\n.fa-arrow-from-left::before {\n content: \"\\f343\"; }\n\n.fa-h2::before {\n content: \"\\f314\"; }\n\n.fa-equals::before {\n content: \"\\3d\"; }\n\n.fa-cake-slice::before {\n content: \"\\e3e5\"; }\n\n.fa-shortcake::before {\n content: \"\\e3e5\"; }\n\n.fa-building-magnifying-glass::before {\n content: \"\\e61c\"; }\n\n.fa-peanut::before {\n content: \"\\e430\"; }\n\n.fa-wrench-simple::before {\n content: \"\\e2d1\"; }\n\n.fa-blender::before {\n content: \"\\f517\"; }\n\n.fa-teeth::before {\n content: \"\\f62e\"; }\n\n.fa-tally-2::before {\n content: \"\\e295\"; }\n\n.fa-shekel-sign::before {\n content: \"\\f20b\"; }\n\n.fa-ils::before {\n content: \"\\f20b\"; }\n\n.fa-shekel::before {\n content: \"\\f20b\"; }\n\n.fa-sheqel::before {\n content: \"\\f20b\"; }\n\n.fa-sheqel-sign::before {\n content: \"\\f20b\"; }\n\n.fa-cars::before {\n content: \"\\f85b\"; }\n\n.fa-axe-battle::before {\n content: \"\\f6b3\"; }\n\n.fa-user-hair-long::before {\n content: \"\\e45b\"; }\n\n.fa-map::before {\n content: \"\\f279\"; }\n\n.fa-arrow-left-from-arc::before {\n content: \"\\e615\"; }\n\n.fa-file-circle-info::before {\n content: \"\\e493\"; }\n\n.fa-face-disappointed::before {\n content: \"\\e36f\"; }\n\n.fa-lasso-sparkles::before {\n content: \"\\e1c9\"; }\n\n.fa-clock-eleven::before {\n content: \"\\e347\"; }\n\n.fa-rocket::before {\n content: \"\\f135\"; }\n\n.fa-siren-on::before {\n content: \"\\e02e\"; }\n\n.fa-clock-ten::before {\n content: \"\\e354\"; }\n\n.fa-candle-holder::before {\n content: \"\\f6bc\"; }\n\n.fa-video-arrow-down-left::before {\n content: \"\\e2c8\"; }\n\n.fa-photo-film::before {\n content: \"\\f87c\"; }\n\n.fa-photo-video::before {\n content: \"\\f87c\"; }\n\n.fa-floppy-disk-circle-arrow-right::before {\n content: \"\\e180\"; }\n\n.fa-save-circle-arrow-right::before {\n content: \"\\e180\"; }\n\n.fa-folder-minus::before {\n content: \"\\f65d\"; }\n\n.fa-planet-moon::before {\n content: \"\\e01f\"; }\n\n.fa-face-eyes-xmarks::before {\n content: \"\\e374\"; }\n\n.fa-chart-scatter::before {\n content: \"\\f7ee\"; }\n\n.fa-circle-gf::before {\n content: \"\\e67f\"; }\n\n.fa-display-arrow-down::before {\n content: \"\\e164\"; }\n\n.fa-store::before {\n content: \"\\f54e\"; }\n\n.fa-arrow-trend-up::before {\n content: \"\\e098\"; }\n\n.fa-plug-circle-minus::before {\n content: \"\\e55e\"; }\n\n.fa-olive-branch::before {\n content: \"\\e317\"; }\n\n.fa-angle::before {\n content: \"\\e08c\"; }\n\n.fa-vacuum-robot::before {\n content: \"\\e04e\"; }\n\n.fa-sign-hanging::before {\n content: \"\\f4d9\"; }\n\n.fa-sign::before {\n content: \"\\f4d9\"; }\n\n.fa-square-divide::before {\n content: \"\\e26a\"; }\n\n.fa-folder-check::before {\n content: \"\\e64e\"; }\n\n.fa-signal-stream-slash::before {\n content: \"\\e250\"; }\n\n.fa-bezier-curve::before {\n content: \"\\f55b\"; }\n\n.fa-eye-dropper-half::before {\n content: \"\\e173\"; }\n\n.fa-store-lock::before {\n content: \"\\e4a6\"; }\n\n.fa-bell-slash::before {\n content: \"\\f1f6\"; }\n\n.fa-cloud-bolt-sun::before {\n content: \"\\f76e\"; }\n\n.fa-thunderstorm-sun::before {\n content: \"\\f76e\"; }\n\n.fa-camera-slash::before {\n content: \"\\e0d9\"; }\n\n.fa-comment-quote::before {\n content: \"\\e14c\"; }\n\n.fa-tablet::before {\n content: \"\\f3fb\"; }\n\n.fa-tablet-android::before {\n content: \"\\f3fb\"; }\n\n.fa-school-flag::before {\n content: \"\\e56e\"; }\n\n.fa-message-code::before {\n content: \"\\e1df\"; }\n\n.fa-glass-half::before {\n content: \"\\e192\"; }\n\n.fa-glass-half-empty::before {\n content: \"\\e192\"; }\n\n.fa-glass-half-full::before {\n content: \"\\e192\"; }\n\n.fa-fill::before {\n content: \"\\f575\"; }\n\n.fa-message-minus::before {\n content: \"\\f4a7\"; }\n\n.fa-comment-alt-minus::before {\n content: \"\\f4a7\"; }\n\n.fa-angle-up::before {\n content: \"\\f106\"; }\n\n.fa-dinosaur::before {\n content: \"\\e5fe\"; }\n\n.fa-drumstick-bite::before {\n content: \"\\f6d7\"; }\n\n.fa-link-horizontal-slash::before {\n content: \"\\e1cc\"; }\n\n.fa-chain-horizontal-slash::before {\n content: \"\\e1cc\"; }\n\n.fa-holly-berry::before {\n content: \"\\f7aa\"; }\n\n.fa-nose::before {\n content: \"\\e5bd\"; }\n\n.fa-arrow-left-to-arc::before {\n content: \"\\e616\"; }\n\n.fa-chevron-left::before {\n content: \"\\f053\"; }\n\n.fa-bacteria::before {\n content: \"\\e059\"; }\n\n.fa-clouds::before {\n content: \"\\f744\"; }\n\n.fa-money-bill-simple::before {\n content: \"\\e1f1\"; }\n\n.fa-hand-lizard::before {\n content: \"\\f258\"; }\n\n.fa-table-pivot::before {\n content: \"\\e291\"; }\n\n.fa-filter-slash::before {\n content: \"\\e17d\"; }\n\n.fa-trash-can-undo::before {\n content: \"\\f896\"; }\n\n.fa-trash-can-arrow-turn-left::before {\n content: \"\\f896\"; }\n\n.fa-trash-undo-alt::before {\n content: \"\\f896\"; }\n\n.fa-notdef::before {\n content: \"\\e1fe\"; }\n\n.fa-disease::before {\n content: \"\\f7fa\"; }\n\n.fa-person-to-door::before {\n content: \"\\e433\"; }\n\n.fa-turntable::before {\n content: \"\\f8e4\"; }\n\n.fa-briefcase-medical::before {\n content: \"\\f469\"; }\n\n.fa-genderless::before {\n content: \"\\f22d\"; }\n\n.fa-chevron-right::before {\n content: \"\\f054\"; }\n\n.fa-signal-weak::before {\n content: \"\\f68c\"; }\n\n.fa-signal-1::before {\n content: \"\\f68c\"; }\n\n.fa-clock-five::before {\n content: \"\\e349\"; }\n\n.fa-retweet::before {\n content: \"\\f079\"; }\n\n.fa-car-rear::before {\n content: \"\\f5de\"; }\n\n.fa-car-alt::before {\n content: \"\\f5de\"; }\n\n.fa-pump-soap::before {\n content: \"\\e06b\"; }\n\n.fa-computer-classic::before {\n content: \"\\f8b1\"; }\n\n.fa-frame::before {\n content: \"\\e495\"; }\n\n.fa-video-slash::before {\n content: \"\\f4e2\"; }\n\n.fa-battery-quarter::before {\n content: \"\\f243\"; }\n\n.fa-battery-2::before {\n content: \"\\f243\"; }\n\n.fa-ellipsis-stroke::before {\n content: \"\\f39b\"; }\n\n.fa-ellipsis-h-alt::before {\n content: \"\\f39b\"; }\n\n.fa-radio::before {\n content: \"\\f8d7\"; }\n\n.fa-baby-carriage::before {\n content: \"\\f77d\"; }\n\n.fa-carriage-baby::before {\n content: \"\\f77d\"; }\n\n.fa-face-expressionless::before {\n content: \"\\e373\"; }\n\n.fa-down-to-dotted-line::before {\n content: \"\\e408\"; }\n\n.fa-cloud-music::before {\n content: \"\\f8ae\"; }\n\n.fa-traffic-light::before {\n content: \"\\f637\"; }\n\n.fa-cloud-minus::before {\n content: \"\\e35d\"; }\n\n.fa-thermometer::before {\n content: \"\\f491\"; }\n\n.fa-shield-minus::before {\n content: \"\\e249\"; }\n\n.fa-vr-cardboard::before {\n content: \"\\f729\"; }\n\n.fa-car-tilt::before {\n content: \"\\f5e5\"; }\n\n.fa-gauge-circle-minus::before {\n content: \"\\e497\"; }\n\n.fa-brightness-low::before {\n content: \"\\e0ca\"; }\n\n.fa-hand-middle-finger::before {\n content: \"\\f806\"; }\n\n.fa-percent::before {\n content: \"\\25\"; }\n\n.fa-percentage::before {\n content: \"\\25\"; }\n\n.fa-truck-moving::before {\n content: \"\\f4df\"; }\n\n.fa-glass-water-droplet::before {\n content: \"\\e4f5\"; }\n\n.fa-conveyor-belt::before {\n content: \"\\f46e\"; }\n\n.fa-location-check::before {\n content: \"\\f606\"; }\n\n.fa-map-marker-check::before {\n content: \"\\f606\"; }\n\n.fa-coin-vertical::before {\n content: \"\\e3fd\"; }\n\n.fa-display::before {\n content: \"\\e163\"; }\n\n.fa-person-sign::before {\n content: \"\\f757\"; }\n\n.fa-face-smile::before {\n content: \"\\f118\"; }\n\n.fa-smile::before {\n content: \"\\f118\"; }\n\n.fa-phone-hangup::before {\n content: \"\\e225\"; }\n\n.fa-signature-slash::before {\n content: \"\\e3cb\"; }\n\n.fa-thumbtack::before {\n content: \"\\f08d\"; }\n\n.fa-thumb-tack::before {\n content: \"\\f08d\"; }\n\n.fa-wheat-slash::before {\n content: \"\\e339\"; }\n\n.fa-trophy::before {\n content: \"\\f091\"; }\n\n.fa-clouds-sun::before {\n content: \"\\f746\"; }\n\n.fa-person-praying::before {\n content: \"\\f683\"; }\n\n.fa-pray::before {\n content: \"\\f683\"; }\n\n.fa-hammer::before {\n content: \"\\f6e3\"; }\n\n.fa-face-vomit::before {\n content: \"\\e3a0\"; }\n\n.fa-speakers::before {\n content: \"\\f8e0\"; }\n\n.fa-tty-answer::before {\n content: \"\\e2b9\"; }\n\n.fa-teletype-answer::before {\n content: \"\\e2b9\"; }\n\n.fa-mug-tea-saucer::before {\n content: \"\\e1f5\"; }\n\n.fa-diagram-lean-canvas::before {\n content: \"\\e156\"; }\n\n.fa-alt::before {\n content: \"\\e08a\"; }\n\n.fa-dial::before {\n content: \"\\e15b\"; }\n\n.fa-dial-med-high::before {\n content: \"\\e15b\"; }\n\n.fa-hand-peace::before {\n content: \"\\f25b\"; }\n\n.fa-circle-trash::before {\n content: \"\\e126\"; }\n\n.fa-trash-circle::before {\n content: \"\\e126\"; }\n\n.fa-rotate::before {\n content: \"\\f2f1\"; }\n\n.fa-sync-alt::before {\n content: \"\\f2f1\"; }\n\n.fa-circle-quarters::before {\n content: \"\\e3f8\"; }\n\n.fa-spinner::before {\n content: \"\\f110\"; }\n\n.fa-tower-control::before {\n content: \"\\e2a2\"; }\n\n.fa-arrow-up-triangle-square::before {\n content: \"\\f88a\"; }\n\n.fa-sort-shapes-up::before {\n content: \"\\f88a\"; }\n\n.fa-whale::before {\n content: \"\\f72c\"; }\n\n.fa-robot::before {\n content: \"\\f544\"; }\n\n.fa-peace::before {\n content: \"\\f67c\"; }\n\n.fa-party-horn::before {\n content: \"\\e31b\"; }\n\n.fa-gears::before {\n content: \"\\f085\"; }\n\n.fa-cogs::before {\n content: \"\\f085\"; }\n\n.fa-sun-bright::before {\n content: \"\\e28f\"; }\n\n.fa-sun-alt::before {\n content: \"\\e28f\"; }\n\n.fa-warehouse::before {\n content: \"\\f494\"; }\n\n.fa-conveyor-belt-arm::before {\n content: \"\\e5f8\"; }\n\n.fa-lock-keyhole-open::before {\n content: \"\\f3c2\"; }\n\n.fa-lock-open-alt::before {\n content: \"\\f3c2\"; }\n\n.fa-square-fragile::before {\n content: \"\\f49b\"; }\n\n.fa-box-fragile::before {\n content: \"\\f49b\"; }\n\n.fa-square-wine-glass-crack::before {\n content: \"\\f49b\"; }\n\n.fa-arrow-up-right-dots::before {\n content: \"\\e4b7\"; }\n\n.fa-square-n::before {\n content: \"\\e277\"; }\n\n.fa-splotch::before {\n content: \"\\f5bc\"; }\n\n.fa-face-grin-hearts::before {\n content: \"\\f584\"; }\n\n.fa-grin-hearts::before {\n content: \"\\f584\"; }\n\n.fa-meter::before {\n content: \"\\e1e8\"; }\n\n.fa-mandolin::before {\n content: \"\\f6f9\"; }\n\n.fa-dice-four::before {\n content: \"\\f524\"; }\n\n.fa-sim-card::before {\n content: \"\\f7c4\"; }\n\n.fa-transgender::before {\n content: \"\\f225\"; }\n\n.fa-transgender-alt::before {\n content: \"\\f225\"; }\n\n.fa-mercury::before {\n content: \"\\f223\"; }\n\n.fa-up-from-bracket::before {\n content: \"\\e590\"; }\n\n.fa-knife-kitchen::before {\n content: \"\\f6f5\"; }\n\n.fa-border-right::before {\n content: \"\\f852\"; }\n\n.fa-arrow-turn-down::before {\n content: \"\\f149\"; }\n\n.fa-level-down::before {\n content: \"\\f149\"; }\n\n.fa-spade::before {\n content: \"\\f2f4\"; }\n\n.fa-card-spade::before {\n content: \"\\e3ec\"; }\n\n.fa-line-columns::before {\n content: \"\\f870\"; }\n\n.fa-ant::before {\n content: \"\\e680\"; }\n\n.fa-arrow-right-to-line::before {\n content: \"\\f340\"; }\n\n.fa-arrow-to-right::before {\n content: \"\\f340\"; }\n\n.fa-person-falling-burst::before {\n content: \"\\e547\"; }\n\n.fa-flag-pennant::before {\n content: \"\\f456\"; }\n\n.fa-pennant::before {\n content: \"\\f456\"; }\n\n.fa-conveyor-belt-empty::before {\n content: \"\\e150\"; }\n\n.fa-user-group-simple::before {\n content: \"\\e603\"; }\n\n.fa-award::before {\n content: \"\\f559\"; }\n\n.fa-ticket-simple::before {\n content: \"\\f3ff\"; }\n\n.fa-ticket-alt::before {\n content: \"\\f3ff\"; }\n\n.fa-building::before {\n content: \"\\f1ad\"; }\n\n.fa-angles-left::before {\n content: \"\\f100\"; }\n\n.fa-angle-double-left::before {\n content: \"\\f100\"; }\n\n.fa-camcorder::before {\n content: \"\\f8a8\"; }\n\n.fa-video-handheld::before {\n content: \"\\f8a8\"; }\n\n.fa-pancakes::before {\n content: \"\\e42d\"; }\n\n.fa-album-circle-user::before {\n content: \"\\e48d\"; }\n\n.fa-subtitles-slash::before {\n content: \"\\e610\"; }\n\n.fa-qrcode::before {\n content: \"\\f029\"; }\n\n.fa-dice-d10::before {\n content: \"\\f6cd\"; }\n\n.fa-fireplace::before {\n content: \"\\f79a\"; }\n\n.fa-browser::before {\n content: \"\\f37e\"; }\n\n.fa-pen-paintbrush::before {\n content: \"\\f618\"; }\n\n.fa-pencil-paintbrush::before {\n content: \"\\f618\"; }\n\n.fa-fish-cooked::before {\n content: \"\\f7fe\"; }\n\n.fa-chair-office::before {\n content: \"\\f6c1\"; }\n\n.fa-magnifying-glass-music::before {\n content: \"\\e65f\"; }\n\n.fa-nesting-dolls::before {\n content: \"\\e3ba\"; }\n\n.fa-clock-rotate-left::before {\n content: \"\\f1da\"; }\n\n.fa-history::before {\n content: \"\\f1da\"; }\n\n.fa-trumpet::before {\n content: \"\\f8e3\"; }\n\n.fa-face-grin-beam-sweat::before {\n content: \"\\f583\"; }\n\n.fa-grin-beam-sweat::before {\n content: \"\\f583\"; }\n\n.fa-fire-smoke::before {\n content: \"\\f74b\"; }\n\n.fa-phone-missed::before {\n content: \"\\e226\"; }\n\n.fa-file-export::before {\n content: \"\\f56e\"; }\n\n.fa-arrow-right-from-file::before {\n content: \"\\f56e\"; }\n\n.fa-shield::before {\n content: \"\\f132\"; }\n\n.fa-shield-blank::before {\n content: \"\\f132\"; }\n\n.fa-arrow-up-short-wide::before {\n content: \"\\f885\"; }\n\n.fa-sort-amount-up-alt::before {\n content: \"\\f885\"; }\n\n.fa-arrows-repeat-1::before {\n content: \"\\f366\"; }\n\n.fa-repeat-1-alt::before {\n content: \"\\f366\"; }\n\n.fa-gun-slash::before {\n content: \"\\e19c\"; }\n\n.fa-avocado::before {\n content: \"\\e0aa\"; }\n\n.fa-binary::before {\n content: \"\\e33b\"; }\n\n.fa-glasses-round::before {\n content: \"\\f5f5\"; }\n\n.fa-glasses-alt::before {\n content: \"\\f5f5\"; }\n\n.fa-phone-plus::before {\n content: \"\\f4d2\"; }\n\n.fa-ditto::before {\n content: \"\\22\"; }\n\n.fa-person-seat::before {\n content: \"\\e21e\"; }\n\n.fa-house-medical::before {\n content: \"\\e3b2\"; }\n\n.fa-golf-ball-tee::before {\n content: \"\\f450\"; }\n\n.fa-golf-ball::before {\n content: \"\\f450\"; }\n\n.fa-circle-chevron-left::before {\n content: \"\\f137\"; }\n\n.fa-chevron-circle-left::before {\n content: \"\\f137\"; }\n\n.fa-house-chimney-window::before {\n content: \"\\e00d\"; }\n\n.fa-scythe::before {\n content: \"\\f710\"; }\n\n.fa-pen-nib::before {\n content: \"\\f5ad\"; }\n\n.fa-ban-parking::before {\n content: \"\\f616\"; }\n\n.fa-parking-circle-slash::before {\n content: \"\\f616\"; }\n\n.fa-tent-arrow-turn-left::before {\n content: \"\\e580\"; }\n\n.fa-face-diagonal-mouth::before {\n content: \"\\e47e\"; }\n\n.fa-diagram-cells::before {\n content: \"\\e475\"; }\n\n.fa-cricket-bat-ball::before {\n content: \"\\f449\"; }\n\n.fa-cricket::before {\n content: \"\\f449\"; }\n\n.fa-tents::before {\n content: \"\\e582\"; }\n\n.fa-wand-magic::before {\n content: \"\\f0d0\"; }\n\n.fa-magic::before {\n content: \"\\f0d0\"; }\n\n.fa-dog::before {\n content: \"\\f6d3\"; }\n\n.fa-pen-line::before {\n content: \"\\e212\"; }\n\n.fa-atom-simple::before {\n content: \"\\f5d3\"; }\n\n.fa-atom-alt::before {\n content: \"\\f5d3\"; }\n\n.fa-ampersand::before {\n content: \"\\26\"; }\n\n.fa-carrot::before {\n content: \"\\f787\"; }\n\n.fa-arrow-up-from-line::before {\n content: \"\\f342\"; }\n\n.fa-arrow-from-bottom::before {\n content: \"\\f342\"; }\n\n.fa-moon::before {\n content: \"\\f186\"; }\n\n.fa-pen-slash::before {\n content: \"\\e213\"; }\n\n.fa-wine-glass-empty::before {\n content: \"\\f5ce\"; }\n\n.fa-wine-glass-alt::before {\n content: \"\\f5ce\"; }\n\n.fa-square-star::before {\n content: \"\\e27f\"; }\n\n.fa-cheese::before {\n content: \"\\f7ef\"; }\n\n.fa-send-backward::before {\n content: \"\\f87f\"; }\n\n.fa-yin-yang::before {\n content: \"\\f6ad\"; }\n\n.fa-music::before {\n content: \"\\f001\"; }\n\n.fa-compass-slash::before {\n content: \"\\f5e9\"; }\n\n.fa-clock-one::before {\n content: \"\\e34e\"; }\n\n.fa-file-music::before {\n content: \"\\f8b6\"; }\n\n.fa-code-commit::before {\n content: \"\\f386\"; }\n\n.fa-temperature-low::before {\n content: \"\\f76b\"; }\n\n.fa-person-biking::before {\n content: \"\\f84a\"; }\n\n.fa-biking::before {\n content: \"\\f84a\"; }\n\n.fa-display-chart-up-circle-currency::before {\n content: \"\\e5e5\"; }\n\n.fa-skeleton::before {\n content: \"\\f620\"; }\n\n.fa-circle-g::before {\n content: \"\\e10f\"; }\n\n.fa-circle-arrow-up-left::before {\n content: \"\\e0fb\"; }\n\n.fa-coin-blank::before {\n content: \"\\e3fb\"; }\n\n.fa-broom::before {\n content: \"\\f51a\"; }\n\n.fa-vacuum::before {\n content: \"\\e04d\"; }\n\n.fa-shield-heart::before {\n content: \"\\e574\"; }\n\n.fa-card-heart::before {\n content: \"\\e3eb\"; }\n\n.fa-lightbulb-cfl-on::before {\n content: \"\\e5a7\"; }\n\n.fa-melon::before {\n content: \"\\e310\"; }\n\n.fa-gopuram::before {\n content: \"\\f664\"; }\n\n.fa-earth-oceania::before {\n content: \"\\e47b\"; }\n\n.fa-globe-oceania::before {\n content: \"\\e47b\"; }\n\n.fa-container-storage::before {\n content: \"\\f4b7\"; }\n\n.fa-face-pouting::before {\n content: \"\\e387\"; }\n\n.fa-square-xmark::before {\n content: \"\\f2d3\"; }\n\n.fa-times-square::before {\n content: \"\\f2d3\"; }\n\n.fa-xmark-square::before {\n content: \"\\f2d3\"; }\n\n.fa-face-explode::before {\n content: \"\\e2fe\"; }\n\n.fa-exploding-head::before {\n content: \"\\e2fe\"; }\n\n.fa-hashtag::before {\n content: \"\\23\"; }\n\n.fa-up-right-and-down-left-from-center::before {\n content: \"\\f424\"; }\n\n.fa-expand-alt::before {\n content: \"\\f424\"; }\n\n.fa-oil-can::before {\n content: \"\\f613\"; }\n\n.fa-t::before {\n content: \"\\54\"; }\n\n.fa-transformer-bolt::before {\n content: \"\\e2a4\"; }\n\n.fa-hippo::before {\n content: \"\\f6ed\"; }\n\n.fa-chart-column::before {\n content: \"\\e0e3\"; }\n\n.fa-cassette-vhs::before {\n content: \"\\f8ec\"; }\n\n.fa-vhs::before {\n content: \"\\f8ec\"; }\n\n.fa-infinity::before {\n content: \"\\f534\"; }\n\n.fa-vial-circle-check::before {\n content: \"\\e596\"; }\n\n.fa-chimney::before {\n content: \"\\f78b\"; }\n\n.fa-object-intersect::before {\n content: \"\\e49d\"; }\n\n.fa-person-arrow-down-to-line::before {\n content: \"\\e538\"; }\n\n.fa-voicemail::before {\n content: \"\\f897\"; }\n\n.fa-block-brick::before {\n content: \"\\e3db\"; }\n\n.fa-wall-brick::before {\n content: \"\\e3db\"; }\n\n.fa-fan::before {\n content: \"\\f863\"; }\n\n.fa-bags-shopping::before {\n content: \"\\f847\"; }\n\n.fa-paragraph-left::before {\n content: \"\\f878\"; }\n\n.fa-paragraph-rtl::before {\n content: \"\\f878\"; }\n\n.fa-person-walking-luggage::before {\n content: \"\\e554\"; }\n\n.fa-caravan-simple::before {\n content: \"\\e000\"; }\n\n.fa-caravan-alt::before {\n content: \"\\e000\"; }\n\n.fa-turtle::before {\n content: \"\\f726\"; }\n\n.fa-pencil-mechanical::before {\n content: \"\\e5ca\"; }\n\n.fa-up-down::before {\n content: \"\\f338\"; }\n\n.fa-arrows-alt-v::before {\n content: \"\\f338\"; }\n\n.fa-cloud-moon-rain::before {\n content: \"\\f73c\"; }\n\n.fa-booth-curtain::before {\n content: \"\\f734\"; }\n\n.fa-calendar::before {\n content: \"\\f133\"; }\n\n.fa-box-heart::before {\n content: \"\\f49d\"; }\n\n.fa-trailer::before {\n content: \"\\e041\"; }\n\n.fa-user-doctor-message::before {\n content: \"\\f82e\"; }\n\n.fa-user-md-chat::before {\n content: \"\\f82e\"; }\n\n.fa-bahai::before {\n content: \"\\f666\"; }\n\n.fa-haykal::before {\n content: \"\\f666\"; }\n\n.fa-lighthouse::before {\n content: \"\\e612\"; }\n\n.fa-amp-guitar::before {\n content: \"\\f8a1\"; }\n\n.fa-sd-card::before {\n content: \"\\f7c2\"; }\n\n.fa-volume-slash::before {\n content: \"\\f2e2\"; }\n\n.fa-border-bottom::before {\n content: \"\\f84d\"; }\n\n.fa-wifi-weak::before {\n content: \"\\f6aa\"; }\n\n.fa-wifi-1::before {\n content: \"\\f6aa\"; }\n\n.fa-dragon::before {\n content: \"\\f6d5\"; }\n\n.fa-shoe-prints::before {\n content: \"\\f54b\"; }\n\n.fa-circle-plus::before {\n content: \"\\f055\"; }\n\n.fa-plus-circle::before {\n content: \"\\f055\"; }\n\n.fa-face-grin-tongue-wink::before {\n content: \"\\f58b\"; }\n\n.fa-grin-tongue-wink::before {\n content: \"\\f58b\"; }\n\n.fa-hand-holding::before {\n content: \"\\f4bd\"; }\n\n.fa-plug-circle-exclamation::before {\n content: \"\\e55d\"; }\n\n.fa-link-slash::before {\n content: \"\\f127\"; }\n\n.fa-chain-broken::before {\n content: \"\\f127\"; }\n\n.fa-chain-slash::before {\n content: \"\\f127\"; }\n\n.fa-unlink::before {\n content: \"\\f127\"; }\n\n.fa-clone::before {\n content: \"\\f24d\"; }\n\n.fa-person-walking-arrow-loop-left::before {\n content: \"\\e551\"; }\n\n.fa-arrow-up-z-a::before {\n content: \"\\f882\"; }\n\n.fa-sort-alpha-up-alt::before {\n content: \"\\f882\"; }\n\n.fa-fire-flame-curved::before {\n content: \"\\f7e4\"; }\n\n.fa-fire-alt::before {\n content: \"\\f7e4\"; }\n\n.fa-tornado::before {\n content: \"\\f76f\"; }\n\n.fa-file-circle-plus::before {\n content: \"\\e494\"; }\n\n.fa-delete-right::before {\n content: \"\\e154\"; }\n\n.fa-book-quran::before {\n content: \"\\f687\"; }\n\n.fa-quran::before {\n content: \"\\f687\"; }\n\n.fa-circle-quarter::before {\n content: \"\\e11f\"; }\n\n.fa-anchor::before {\n content: \"\\f13d\"; }\n\n.fa-border-all::before {\n content: \"\\f84c\"; }\n\n.fa-function::before {\n content: \"\\f661\"; }\n\n.fa-face-angry::before {\n content: \"\\f556\"; }\n\n.fa-angry::before {\n content: \"\\f556\"; }\n\n.fa-people-simple::before {\n content: \"\\e21b\"; }\n\n.fa-cookie-bite::before {\n content: \"\\f564\"; }\n\n.fa-arrow-trend-down::before {\n content: \"\\e097\"; }\n\n.fa-rss::before {\n content: \"\\f09e\"; }\n\n.fa-feed::before {\n content: \"\\f09e\"; }\n\n.fa-face-monocle::before {\n content: \"\\e380\"; }\n\n.fa-draw-polygon::before {\n content: \"\\f5ee\"; }\n\n.fa-scale-balanced::before {\n content: \"\\f24e\"; }\n\n.fa-balance-scale::before {\n content: \"\\f24e\"; }\n\n.fa-calendar-lines::before {\n content: \"\\e0d5\"; }\n\n.fa-calendar-note::before {\n content: \"\\e0d5\"; }\n\n.fa-arrow-down-big-small::before {\n content: \"\\f88c\"; }\n\n.fa-sort-size-down::before {\n content: \"\\f88c\"; }\n\n.fa-gauge-simple-high::before {\n content: \"\\f62a\"; }\n\n.fa-tachometer::before {\n content: \"\\f62a\"; }\n\n.fa-tachometer-fast::before {\n content: \"\\f62a\"; }\n\n.fa-do-not-enter::before {\n content: \"\\f5ec\"; }\n\n.fa-shower::before {\n content: \"\\f2cc\"; }\n\n.fa-dice-d8::before {\n content: \"\\f6d2\"; }\n\n.fa-desktop::before {\n content: \"\\f390\"; }\n\n.fa-desktop-alt::before {\n content: \"\\f390\"; }\n\n.fa-m::before {\n content: \"\\4d\"; }\n\n.fa-spinner-scale::before {\n content: \"\\e62a\"; }\n\n.fa-grip-dots-vertical::before {\n content: \"\\e411\"; }\n\n.fa-face-viewfinder::before {\n content: \"\\e2ff\"; }\n\n.fa-soft-serve::before {\n content: \"\\e400\"; }\n\n.fa-creemee::before {\n content: \"\\e400\"; }\n\n.fa-h5::before {\n content: \"\\e412\"; }\n\n.fa-hand-back-point-down::before {\n content: \"\\e19e\"; }\n\n.fa-table-list::before {\n content: \"\\f00b\"; }\n\n.fa-th-list::before {\n content: \"\\f00b\"; }\n\n.fa-basket-shopping-minus::before {\n content: \"\\e652\"; }\n\n.fa-comment-sms::before {\n content: \"\\f7cd\"; }\n\n.fa-sms::before {\n content: \"\\f7cd\"; }\n\n.fa-rectangle::before {\n content: \"\\f2fa\"; }\n\n.fa-rectangle-landscape::before {\n content: \"\\f2fa\"; }\n\n.fa-clipboard-list-check::before {\n content: \"\\f737\"; }\n\n.fa-turkey::before {\n content: \"\\f725\"; }\n\n.fa-book::before {\n content: \"\\f02d\"; }\n\n.fa-user-plus::before {\n content: \"\\f234\"; }\n\n.fa-ice-skate::before {\n content: \"\\f7ac\"; }\n\n.fa-check::before {\n content: \"\\f00c\"; }\n\n.fa-battery-three-quarters::before {\n content: \"\\f241\"; }\n\n.fa-battery-4::before {\n content: \"\\f241\"; }\n\n.fa-tomato::before {\n content: \"\\e330\"; }\n\n.fa-sword-laser::before {\n content: \"\\e03b\"; }\n\n.fa-house-circle-check::before {\n content: \"\\e509\"; }\n\n.fa-buildings::before {\n content: \"\\e0cc\"; }\n\n.fa-angle-left::before {\n content: \"\\f104\"; }\n\n.fa-cart-flatbed-boxes::before {\n content: \"\\f475\"; }\n\n.fa-dolly-flatbed-alt::before {\n content: \"\\f475\"; }\n\n.fa-diagram-successor::before {\n content: \"\\e47a\"; }\n\n.fa-truck-arrow-right::before {\n content: \"\\e58b\"; }\n\n.fa-square-w::before {\n content: \"\\e285\"; }\n\n.fa-arrows-split-up-and-left::before {\n content: \"\\e4bc\"; }\n\n.fa-lamp::before {\n content: \"\\f4ca\"; }\n\n.fa-airplay::before {\n content: \"\\e089\"; }\n\n.fa-hand-fist::before {\n content: \"\\f6de\"; }\n\n.fa-fist-raised::before {\n content: \"\\f6de\"; }\n\n.fa-shield-quartered::before {\n content: \"\\e575\"; }\n\n.fa-slash-forward::before {\n content: \"\\2f\"; }\n\n.fa-location-pen::before {\n content: \"\\f607\"; }\n\n.fa-map-marker-edit::before {\n content: \"\\f607\"; }\n\n.fa-cloud-moon::before {\n content: \"\\f6c3\"; }\n\n.fa-pot-food::before {\n content: \"\\e43f\"; }\n\n.fa-briefcase::before {\n content: \"\\f0b1\"; }\n\n.fa-person-falling::before {\n content: \"\\e546\"; }\n\n.fa-image-portrait::before {\n content: \"\\f3e0\"; }\n\n.fa-portrait::before {\n content: \"\\f3e0\"; }\n\n.fa-user-tag::before {\n content: \"\\f507\"; }\n\n.fa-rug::before {\n content: \"\\e569\"; }\n\n.fa-print-slash::before {\n content: \"\\f686\"; }\n\n.fa-earth-europe::before {\n content: \"\\f7a2\"; }\n\n.fa-globe-europe::before {\n content: \"\\f7a2\"; }\n\n.fa-cart-flatbed-suitcase::before {\n content: \"\\f59d\"; }\n\n.fa-luggage-cart::before {\n content: \"\\f59d\"; }\n\n.fa-hand-back-point-ribbon::before {\n content: \"\\e1a0\"; }\n\n.fa-rectangle-xmark::before {\n content: \"\\f410\"; }\n\n.fa-rectangle-times::before {\n content: \"\\f410\"; }\n\n.fa-times-rectangle::before {\n content: \"\\f410\"; }\n\n.fa-window-close::before {\n content: \"\\f410\"; }\n\n.fa-tire-rugged::before {\n content: \"\\f634\"; }\n\n.fa-lightbulb-dollar::before {\n content: \"\\f670\"; }\n\n.fa-cowbell::before {\n content: \"\\f8b3\"; }\n\n.fa-baht-sign::before {\n content: \"\\e0ac\"; }\n\n.fa-corner::before {\n content: \"\\e3fe\"; }\n\n.fa-chevrons-right::before {\n content: \"\\f324\"; }\n\n.fa-chevron-double-right::before {\n content: \"\\f324\"; }\n\n.fa-book-open::before {\n content: \"\\f518\"; }\n\n.fa-book-journal-whills::before {\n content: \"\\f66a\"; }\n\n.fa-journal-whills::before {\n content: \"\\f66a\"; }\n\n.fa-inhaler::before {\n content: \"\\f5f9\"; }\n\n.fa-handcuffs::before {\n content: \"\\e4f8\"; }\n\n.fa-snake::before {\n content: \"\\f716\"; }\n\n.fa-triangle-exclamation::before {\n content: \"\\f071\"; }\n\n.fa-exclamation-triangle::before {\n content: \"\\f071\"; }\n\n.fa-warning::before {\n content: \"\\f071\"; }\n\n.fa-note-medical::before {\n content: \"\\e200\"; }\n\n.fa-database::before {\n content: \"\\f1c0\"; }\n\n.fa-down-left::before {\n content: \"\\e16a\"; }\n\n.fa-share::before {\n content: \"\\f064\"; }\n\n.fa-mail-forward::before {\n content: \"\\f064\"; }\n\n.fa-face-thinking::before {\n content: \"\\e39b\"; }\n\n.fa-turn-down-right::before {\n content: \"\\e455\"; }\n\n.fa-bottle-droplet::before {\n content: \"\\e4c4\"; }\n\n.fa-mask-face::before {\n content: \"\\e1d7\"; }\n\n.fa-hill-rockslide::before {\n content: \"\\e508\"; }\n\n.fa-scanner-keyboard::before {\n content: \"\\f489\"; }\n\n.fa-circle-o::before {\n content: \"\\e119\"; }\n\n.fa-grid-horizontal::before {\n content: \"\\e307\"; }\n\n.fa-message-dollar::before {\n content: \"\\f650\"; }\n\n.fa-comment-alt-dollar::before {\n content: \"\\f650\"; }\n\n.fa-right-left::before {\n content: \"\\f362\"; }\n\n.fa-exchange-alt::before {\n content: \"\\f362\"; }\n\n.fa-columns-3::before {\n content: \"\\e361\"; }\n\n.fa-paper-plane::before {\n content: \"\\f1d8\"; }\n\n.fa-road-circle-exclamation::before {\n content: \"\\e565\"; }\n\n.fa-dungeon::before {\n content: \"\\f6d9\"; }\n\n.fa-hand-holding-box::before {\n content: \"\\f47b\"; }\n\n.fa-input-text::before {\n content: \"\\e1bf\"; }\n\n.fa-window-flip::before {\n content: \"\\f40f\"; }\n\n.fa-window-alt::before {\n content: \"\\f40f\"; }\n\n.fa-align-right::before {\n content: \"\\f038\"; }\n\n.fa-scanner-gun::before {\n content: \"\\f488\"; }\n\n.fa-scanner::before {\n content: \"\\f488\"; }\n\n.fa-tire::before {\n content: \"\\f631\"; }\n\n.fa-engine::before {\n content: \"\\e16e\"; }\n\n.fa-money-bill-1-wave::before {\n content: \"\\f53b\"; }\n\n.fa-money-bill-wave-alt::before {\n content: \"\\f53b\"; }\n\n.fa-life-ring::before {\n content: \"\\f1cd\"; }\n\n.fa-hands::before {\n content: \"\\f2a7\"; }\n\n.fa-sign-language::before {\n content: \"\\f2a7\"; }\n\n.fa-signing::before {\n content: \"\\f2a7\"; }\n\n.fa-circle-caret-right::before {\n content: \"\\f330\"; }\n\n.fa-caret-circle-right::before {\n content: \"\\f330\"; }\n\n.fa-turn-left::before {\n content: \"\\e636\"; }\n\n.fa-wheat::before {\n content: \"\\f72d\"; }\n\n.fa-file-spreadsheet::before {\n content: \"\\f65b\"; }\n\n.fa-audio-description-slash::before {\n content: \"\\e0a8\"; }\n\n.fa-bell-ring::before {\n content: \"\\e62c\"; }\n\n.fa-calendar-day::before {\n content: \"\\f783\"; }\n\n.fa-water-ladder::before {\n content: \"\\f5c5\"; }\n\n.fa-ladder-water::before {\n content: \"\\f5c5\"; }\n\n.fa-swimming-pool::before {\n content: \"\\f5c5\"; }\n\n.fa-arrows-up-down::before {\n content: \"\\f07d\"; }\n\n.fa-arrows-v::before {\n content: \"\\f07d\"; }\n\n.fa-chess-pawn-piece::before {\n content: \"\\f444\"; }\n\n.fa-chess-pawn-alt::before {\n content: \"\\f444\"; }\n\n.fa-face-grimace::before {\n content: \"\\f57f\"; }\n\n.fa-grimace::before {\n content: \"\\f57f\"; }\n\n.fa-wheelchair-move::before {\n content: \"\\e2ce\"; }\n\n.fa-wheelchair-alt::before {\n content: \"\\e2ce\"; }\n\n.fa-turn-down::before {\n content: \"\\f3be\"; }\n\n.fa-level-down-alt::before {\n content: \"\\f3be\"; }\n\n.fa-square-s::before {\n content: \"\\e27d\"; }\n\n.fa-rectangle-barcode::before {\n content: \"\\f463\"; }\n\n.fa-barcode-alt::before {\n content: \"\\f463\"; }\n\n.fa-person-walking-arrow-right::before {\n content: \"\\e552\"; }\n\n.fa-square-envelope::before {\n content: \"\\f199\"; }\n\n.fa-envelope-square::before {\n content: \"\\f199\"; }\n\n.fa-dice::before {\n content: \"\\f522\"; }\n\n.fa-unicorn::before {\n content: \"\\f727\"; }\n\n.fa-bowling-ball::before {\n content: \"\\f436\"; }\n\n.fa-pompebled::before {\n content: \"\\e43d\"; }\n\n.fa-brain::before {\n content: \"\\f5dc\"; }\n\n.fa-watch-smart::before {\n content: \"\\e2cc\"; }\n\n.fa-book-user::before {\n content: \"\\f7e7\"; }\n\n.fa-sensor-cloud::before {\n content: \"\\e02c\"; }\n\n.fa-sensor-smoke::before {\n content: \"\\e02c\"; }\n\n.fa-clapperboard-play::before {\n content: \"\\e132\"; }\n\n.fa-bandage::before {\n content: \"\\f462\"; }\n\n.fa-band-aid::before {\n content: \"\\f462\"; }\n\n.fa-calendar-minus::before {\n content: \"\\f272\"; }\n\n.fa-circle-xmark::before {\n content: \"\\f057\"; }\n\n.fa-times-circle::before {\n content: \"\\f057\"; }\n\n.fa-xmark-circle::before {\n content: \"\\f057\"; }\n\n.fa-circle-4::before {\n content: \"\\e0f1\"; }\n\n.fa-gifts::before {\n content: \"\\f79c\"; }\n\n.fa-album-collection::before {\n content: \"\\f8a0\"; }\n\n.fa-hotel::before {\n content: \"\\f594\"; }\n\n.fa-earth-asia::before {\n content: \"\\f57e\"; }\n\n.fa-globe-asia::before {\n content: \"\\f57e\"; }\n\n.fa-id-card-clip::before {\n content: \"\\f47f\"; }\n\n.fa-id-card-alt::before {\n content: \"\\f47f\"; }\n\n.fa-magnifying-glass-plus::before {\n content: \"\\f00e\"; }\n\n.fa-search-plus::before {\n content: \"\\f00e\"; }\n\n.fa-thumbs-up::before {\n content: \"\\f164\"; }\n\n.fa-cloud-showers::before {\n content: \"\\f73f\"; }\n\n.fa-user-clock::before {\n content: \"\\f4fd\"; }\n\n.fa-onion::before {\n content: \"\\e427\"; }\n\n.fa-clock-twelve-thirty::before {\n content: \"\\e359\"; }\n\n.fa-arrow-down-to-dotted-line::before {\n content: \"\\e095\"; }\n\n.fa-hand-dots::before {\n content: \"\\f461\"; }\n\n.fa-allergies::before {\n content: \"\\f461\"; }\n\n.fa-file-invoice::before {\n content: \"\\f570\"; }\n\n.fa-window-minimize::before {\n content: \"\\f2d1\"; }\n\n.fa-rectangle-wide::before {\n content: \"\\f2fc\"; }\n\n.fa-comment-arrow-up::before {\n content: \"\\e144\"; }\n\n.fa-garlic::before {\n content: \"\\e40e\"; }\n\n.fa-mug-saucer::before {\n content: \"\\f0f4\"; }\n\n.fa-coffee::before {\n content: \"\\f0f4\"; }\n\n.fa-brush::before {\n content: \"\\f55d\"; }\n\n.fa-tree-decorated::before {\n content: \"\\f7dc\"; }\n\n.fa-mask::before {\n content: \"\\f6fa\"; }\n\n.fa-calendar-heart::before {\n content: \"\\e0d3\"; }\n\n.fa-magnifying-glass-minus::before {\n content: \"\\f010\"; }\n\n.fa-search-minus::before {\n content: \"\\f010\"; }\n\n.fa-flower::before {\n content: \"\\f7ff\"; }\n\n.fa-arrow-down-from-arc::before {\n content: \"\\e614\"; }\n\n.fa-right-left-large::before {\n content: \"\\e5e1\"; }\n\n.fa-ruler-vertical::before {\n content: \"\\f548\"; }\n\n.fa-circles-overlap::before {\n content: \"\\e600\"; }\n\n.fa-user-large::before {\n content: \"\\f406\"; }\n\n.fa-user-alt::before {\n content: \"\\f406\"; }\n\n.fa-starship-freighter::before {\n content: \"\\e03a\"; }\n\n.fa-train-tram::before {\n content: \"\\e5b4\"; }\n\n.fa-bridge-suspension::before {\n content: \"\\e4cd\"; }\n\n.fa-trash-check::before {\n content: \"\\e2af\"; }\n\n.fa-user-nurse::before {\n content: \"\\f82f\"; }\n\n.fa-boombox::before {\n content: \"\\f8a5\"; }\n\n.fa-syringe::before {\n content: \"\\f48e\"; }\n\n.fa-cloud-sun::before {\n content: \"\\f6c4\"; }\n\n.fa-shield-exclamation::before {\n content: \"\\e247\"; }\n\n.fa-stopwatch-20::before {\n content: \"\\e06f\"; }\n\n.fa-square-full::before {\n content: \"\\f45c\"; }\n\n.fa-grip-dots::before {\n content: \"\\e410\"; }\n\n.fa-comment-exclamation::before {\n content: \"\\f4af\"; }\n\n.fa-pen-swirl::before {\n content: \"\\e214\"; }\n\n.fa-falafel::before {\n content: \"\\e40a\"; }\n\n.fa-circle-2::before {\n content: \"\\e0ef\"; }\n\n.fa-magnet::before {\n content: \"\\f076\"; }\n\n.fa-jar::before {\n content: \"\\e516\"; }\n\n.fa-gramophone::before {\n content: \"\\f8bd\"; }\n\n.fa-dice-d12::before {\n content: \"\\f6ce\"; }\n\n.fa-note-sticky::before {\n content: \"\\f249\"; }\n\n.fa-sticky-note::before {\n content: \"\\f249\"; }\n\n.fa-down::before {\n content: \"\\f354\"; }\n\n.fa-arrow-alt-down::before {\n content: \"\\f354\"; }\n\n.fa-hundred-points::before {\n content: \"\\e41c\"; }\n\n.fa-100::before {\n content: \"\\e41c\"; }\n\n.fa-paperclip-vertical::before {\n content: \"\\e3c2\"; }\n\n.fa-wind-warning::before {\n content: \"\\f776\"; }\n\n.fa-wind-circle-exclamation::before {\n content: \"\\f776\"; }\n\n.fa-location-pin-slash::before {\n content: \"\\f60c\"; }\n\n.fa-map-marker-slash::before {\n content: \"\\f60c\"; }\n\n.fa-face-sad-sweat::before {\n content: \"\\e38a\"; }\n\n.fa-bug-slash::before {\n content: \"\\e490\"; }\n\n.fa-cupcake::before {\n content: \"\\e402\"; }\n\n.fa-light-switch-off::before {\n content: \"\\e018\"; }\n\n.fa-toggle-large-off::before {\n content: \"\\e5b0\"; }\n\n.fa-pen-fancy-slash::before {\n content: \"\\e210\"; }\n\n.fa-truck-container::before {\n content: \"\\f4dc\"; }\n\n.fa-boot::before {\n content: \"\\f782\"; }\n\n.fa-arrow-up-from-water-pump::before {\n content: \"\\e4b6\"; }\n\n.fa-file-check::before {\n content: \"\\f316\"; }\n\n.fa-bone::before {\n content: \"\\f5d7\"; }\n\n.fa-cards-blank::before {\n content: \"\\e4df\"; }\n\n.fa-circle-3::before {\n content: \"\\e0f0\"; }\n\n.fa-bench-tree::before {\n content: \"\\e2e7\"; }\n\n.fa-keyboard-brightness-low::before {\n content: \"\\e1c1\"; }\n\n.fa-ski-boot-ski::before {\n content: \"\\e3cd\"; }\n\n.fa-brain-circuit::before {\n content: \"\\e0c6\"; }\n\n.fa-user-injured::before {\n content: \"\\f728\"; }\n\n.fa-block-brick-fire::before {\n content: \"\\e3dc\"; }\n\n.fa-firewall::before {\n content: \"\\e3dc\"; }\n\n.fa-face-sad-tear::before {\n content: \"\\f5b4\"; }\n\n.fa-sad-tear::before {\n content: \"\\f5b4\"; }\n\n.fa-plane::before {\n content: \"\\f072\"; }\n\n.fa-tent-arrows-down::before {\n content: \"\\e581\"; }\n\n.fa-exclamation::before {\n content: \"\\21\"; }\n\n.fa-arrows-spin::before {\n content: \"\\e4bb\"; }\n\n.fa-face-smile-relaxed::before {\n content: \"\\e392\"; }\n\n.fa-comment-xmark::before {\n content: \"\\f4b5\"; }\n\n.fa-comment-times::before {\n content: \"\\f4b5\"; }\n\n.fa-print::before {\n content: \"\\f02f\"; }\n\n.fa-turkish-lira-sign::before {\n content: \"\\e2bb\"; }\n\n.fa-try::before {\n content: \"\\e2bb\"; }\n\n.fa-turkish-lira::before {\n content: \"\\e2bb\"; }\n\n.fa-face-nose-steam::before {\n content: \"\\e382\"; }\n\n.fa-circle-waveform-lines::before {\n content: \"\\e12d\"; }\n\n.fa-waveform-circle::before {\n content: \"\\e12d\"; }\n\n.fa-dollar-sign::before {\n content: \"\\24\"; }\n\n.fa-dollar::before {\n content: \"\\24\"; }\n\n.fa-usd::before {\n content: \"\\24\"; }\n\n.fa-ferris-wheel::before {\n content: \"\\e174\"; }\n\n.fa-computer-speaker::before {\n content: \"\\f8b2\"; }\n\n.fa-skull-cow::before {\n content: \"\\f8de\"; }\n\n.fa-x::before {\n content: \"\\58\"; }\n\n.fa-magnifying-glass-dollar::before {\n content: \"\\f688\"; }\n\n.fa-search-dollar::before {\n content: \"\\f688\"; }\n\n.fa-users-gear::before {\n content: \"\\f509\"; }\n\n.fa-users-cog::before {\n content: \"\\f509\"; }\n\n.fa-person-military-pointing::before {\n content: \"\\e54a\"; }\n\n.fa-building-columns::before {\n content: \"\\f19c\"; }\n\n.fa-bank::before {\n content: \"\\f19c\"; }\n\n.fa-institution::before {\n content: \"\\f19c\"; }\n\n.fa-museum::before {\n content: \"\\f19c\"; }\n\n.fa-university::before {\n content: \"\\f19c\"; }\n\n.fa-circle-t::before {\n content: \"\\e124\"; }\n\n.fa-sack::before {\n content: \"\\f81c\"; }\n\n.fa-grid-2::before {\n content: \"\\e196\"; }\n\n.fa-camera-cctv::before {\n content: \"\\f8ac\"; }\n\n.fa-cctv::before {\n content: \"\\f8ac\"; }\n\n.fa-umbrella::before {\n content: \"\\f0e9\"; }\n\n.fa-trowel::before {\n content: \"\\e589\"; }\n\n.fa-horizontal-rule::before {\n content: \"\\f86c\"; }\n\n.fa-bed-front::before {\n content: \"\\f8f7\"; }\n\n.fa-bed-alt::before {\n content: \"\\f8f7\"; }\n\n.fa-d::before {\n content: \"\\44\"; }\n\n.fa-stapler::before {\n content: \"\\e5af\"; }\n\n.fa-masks-theater::before {\n content: \"\\f630\"; }\n\n.fa-theater-masks::before {\n content: \"\\f630\"; }\n\n.fa-file-gif::before {\n content: \"\\e645\"; }\n\n.fa-kip-sign::before {\n content: \"\\e1c4\"; }\n\n.fa-face-woozy::before {\n content: \"\\e3a2\"; }\n\n.fa-cloud-question::before {\n content: \"\\e492\"; }\n\n.fa-pineapple::before {\n content: \"\\e31f\"; }\n\n.fa-hand-point-left::before {\n content: \"\\f0a5\"; }\n\n.fa-gallery-thumbnails::before {\n content: \"\\e3aa\"; }\n\n.fa-circle-j::before {\n content: \"\\e112\"; }\n\n.fa-eyes::before {\n content: \"\\e367\"; }\n\n.fa-handshake-simple::before {\n content: \"\\f4c6\"; }\n\n.fa-handshake-alt::before {\n content: \"\\f4c6\"; }\n\n.fa-page-caret-up::before {\n content: \"\\e42a\"; }\n\n.fa-file-caret-up::before {\n content: \"\\e42a\"; }\n\n.fa-jet-fighter::before {\n content: \"\\f0fb\"; }\n\n.fa-fighter-jet::before {\n content: \"\\f0fb\"; }\n\n.fa-comet::before {\n content: \"\\e003\"; }\n\n.fa-square-share-nodes::before {\n content: \"\\f1e1\"; }\n\n.fa-share-alt-square::before {\n content: \"\\f1e1\"; }\n\n.fa-reflect-vertical::before {\n content: \"\\e665\"; }\n\n.fa-shield-keyhole::before {\n content: \"\\e248\"; }\n\n.fa-file-mp4::before {\n content: \"\\e649\"; }\n\n.fa-barcode::before {\n content: \"\\f02a\"; }\n\n.fa-bulldozer::before {\n content: \"\\e655\"; }\n\n.fa-plus-minus::before {\n content: \"\\e43c\"; }\n\n.fa-square-sliders-vertical::before {\n content: \"\\f3f2\"; }\n\n.fa-sliders-v-square::before {\n content: \"\\f3f2\"; }\n\n.fa-video::before {\n content: \"\\f03d\"; }\n\n.fa-video-camera::before {\n content: \"\\f03d\"; }\n\n.fa-message-middle::before {\n content: \"\\e1e1\"; }\n\n.fa-comment-middle-alt::before {\n content: \"\\e1e1\"; }\n\n.fa-graduation-cap::before {\n content: \"\\f19d\"; }\n\n.fa-mortar-board::before {\n content: \"\\f19d\"; }\n\n.fa-hand-holding-medical::before {\n content: \"\\e05c\"; }\n\n.fa-person-circle-check::before {\n content: \"\\e53e\"; }\n\n.fa-square-z::before {\n content: \"\\e288\"; }\n\n.fa-message-text::before {\n content: \"\\e1e6\"; }\n\n.fa-comment-alt-text::before {\n content: \"\\e1e6\"; }\n\n.fa-turn-up::before {\n content: \"\\f3bf\"; }\n\n.fa-level-up-alt::before {\n content: \"\\f3bf\"; }\n\n.sr-only,\n.fa-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0; }\n\n.sr-only-focusable:not(:focus),\n.fa-sr-only-focusable:not(:focus) {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0; }\n",".tykon::before {\n font-family: tykon, sans-serif !important;\n font-style: normal !important;\n font-weight: normal !important;\n font-variant: normal !important;\n text-transform: none !important;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.tykon-arrowdown::before {\n content: \"\\61\";\n}\n\n.tykon-arrowleft::before {\n content: \"\\62\";\n}\n\n.tykon-arrowright::before {\n content: \"\\63\";\n}\n\n.tykon-arrowup::before {\n content: \"\\64\";\n}\n\n.tykon-doublearrowdown::before {\n content: \"\\65\";\n}\n\n.tykon-filter::before {\n content: \"\\66\";\n}\n\n.tykon-graph1::before {\n content: \"\\67\";\n}\n\n.tykon-graph2::before {\n content: \"\\68\";\n}\n\n.tykon-label::before {\n content: \"\\69\";\n}\n\n.tykon-reload::before {\n content: \"\\6a\";\n}\n\n.tykon-select::before {\n content: \"\\6b\";\n}\n\n.tykon-target::before {\n content: \"\\6c\";\n}\n\n.tykon-undo::before {\n content: \"\\6d\";\n}\n\n.tykon-deployment::before {\n content: \"\\6e\";\n}\n\n.tykon-team::before {\n content: \"\\6f\";\n}\n\n.tykon-overview::before {\n content: \"\\70\";\n}\n\n.tykon-loadout::before {\n content: \"\\71\";\n}\n\n.tykon-entitlement::before {\n content: \"\\72\";\n}\n\n.tykon-users::before {\n content: \"\\73\";\n}\n\n.tykon-arrowsort::before {\n content: \"\\57\";\n}\n\n.tykon-check::before {\n content: \"\\56\";\n}\n\n.tykon-copy::before {\n content: \"\\43\";\n}\n\n.tykon-delete::before {\n content: \"\\55\";\n}\n\n.tykon-download::before {\n content: \"\\4c\";\n}\n\n.tykon-draft::before {\n content: \"\\44\";\n}\n\n.tykon-edit::before {\n content: \"\\45\";\n}\n\n.tykon-graphq2::before {\n content: \"\\68\";\n}\n\n.tykon-help::before {\n content: \"\\3f\";\n}\n\n.tykon-link::before {\n content: \"\\52\";\n}\n\n.tykon-lock1::before {\n content: \"\\59\";\n}\n\n.tykon-lock2::before {\n content: \"\\5A\";\n}\n\n.tykon-notifications::before {\n content: \"\\4E\";\n}\n\n.tykon-plus::before {\n content: \"\\2B\";\n}\n\n.tykon-profile::before {\n content: \"\\50\";\n}\n\n.tykon-search::before {\n content: \"\\4F\";\n}\n\n.tykon-settings::before {\n content: \"\\53\";\n}\n\n.tykon-warning::before {\n content: \"\\21\";\n}\n\n.tykon-x::before {\n content: \"\\58\";\n}\n\n.tykon-waiting::before {\n content: \"\\54\";\n}\n\n.tykon-fullscreen::before {\n content: \"\\e000\";\n}\n\n.tykon-fullscreen-exit::before {\n content: \"\\e001\";\n}\n\n.tykon-time::before {\n content: \"\\74\";\n}\n","h1, h2, h3, h4, h5, h6 {\n margin-block-end: var(--headings-margin-bottom);\n font-family: var(--headings-font-family);\n font-weight: var(--headings-font-weight);\n color: var(--headings-color);\n}\n\nlabel {\n display: inline-block;\n max-inline-size: 100%;\n margin-block-end: 5px;\n color: var(--label-color);\n}\n\nh1 {\n font-size: var(--xxl-font-size);\n line-height: var(--xxl-line-height);\n}\n\nh2 {\n font-size: var(--xl-font-size);\n line-height: var(--xl-line-height);\n}\n\nh3 {\n font-size: var(--lg-font-size);\n line-height: var(--lg-line-height);\n}\n\nh4 {\n font-size: var(--md-font-size);\n line-height: var(--md-line-height);\n}\n\nh5 {\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n}\n\nh6 {\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n}\n\np,\nlabel {\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-regular);\n\n a {\n font-size: var(--sm-font-size);\n text-decoration: underline;\n }\n}\n\nstrong {\n font-family: var(--font-family-bold);\n}\n\na:not(.tyk-button) {\n cursor: pointer;\n color: var(--text-color);\n font-family: var(--font-family-regular);\n\n &.link--bold {\n font-family: var(--font-family-bold);\n }\n\n + a {\n margin-inline-start: 5px;\n }\n\n i {\n font-size: 9px\n }\n}\n\n.font-family-regular {\n font-family: var(--font-family-regular);\n}\n\n.font-family-medium {\n font-family: var(--font-family-medium);\n}\n\n.font-family-bold {\n font-family: var(--font-family-bold);\n}\n\n.heading-font-family-regular {\n font-family: var(--headings-font-family-regular);\n}\n\n.heading-font-family-medium {\n font-family: var(--headings-font-family-medium);\n}\n\n.heading-font-family-bold {\n font-family: var(--headings-font-family-bold);\n}\n\n.text--info {\n color: var(--color-info-base);\n}\n\n.text--medium {\n font-family: var(--font-family-medium);\n}\n\n.text--bold {\n font-family: var(--font-family-bold);\n}\n\n.text--uppercase {\n text-transform: uppercase;\n}\n\n.text--ellipsis {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.text--underline {\n text-decoration: underline;\n}\n\n.text--default-light {\n color: var(--color-default-light) !important;\n}\n\n.text--default {\n color: var(--color-default-base) !important;\n}\n\n.text--primary {\n color: var(--color-primary-base) !important;\n}\n\n.text--danger {\n color: var(--color-danger-base) !important;\n}\n\n.text--success {\n color: var(--color-success-base) !important;\n}\n\n.text--warning {\n color: var(--color-warning-base) !important;\n}\n\ntd.text-ellipsis {\n max-inline-size: 250px;\n}\n\n.section-title {\n font-family: var(--headings-font-family-bold);\n margin-block-end: 5px;\n\n .tyk-icon {\n margin-inline-start: 5px;\n }\n}\n\n.sub-section-title {\n margin-block-end: 5px;\n font-family: var(--font-family-medium);\n font-size: var(--md-font-size);\n line-height: var(--md-line-height);\n\n .tyk-icon {\n margin-inline-start: 5px;\n }\n}\n\n.section-group-title {\n margin-block-end: 5px;\n font-family: var(--font-family-bold);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n text-transform: uppercase;\n\n .tyk-icon {\n margin-inline-start: 5px;\n }\n}\n",".tyk-form-section__title {\n font-size: var(--base-font-size);\n margin-block: var(--spacing-xs) var(--spacing-base);\n margin-inline: 0;\n}\n\n.tyk-form-section__title--light {\n color: var(--color-background-dark);\n}\n\n.tyk-form-group {\n margin-block-end: var(--form-group-margin-bottom);\n\n &.has-error > .tyk-form-control__wrapper > .tyk-form-control,\n &.has-error > .tyk-form-control__wrapper > .tyk-input-group > .tyk-form-control,\n &.has-error .tyk-file-input__wrapper > .tyk-form-control {\n border: var(--error-border);\n border-inline-start: var(--error-border-left);\n outline: none;\n\n &:focus {\n border-inline-start: 2px solid var(--color-danger-dark);\n border-color: var(--color-danger-dark);\n outline: none;\n }\n }\n\n label {\n font-family: var(--font-family-medium);\n }\n}\n\n.tyk-form-group--inline {\n align-items: stretch;\n display: flex;\n flex-wrap: nowrap;\n\n .tyk-form-control__wrapper {\n flex: 1;\n }\n\n label {\n display: flex;\n white-space: nowrap;\n margin-inline-end: var(--spacing-md);\n margin-block-start: 14px;\n }\n\n input,\n select {\n display: flex;\n }\n\n .tyk-form-control__help-block {\n display: flex;\n margin-inline-start: auto;\n }\n}\n\n.tyk-form-group--default {\n color: var(--text-color);\n\n > .tyk-form-control__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-file-input__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-input-group > .tyk-form-control {\n border: var(--general-border-width) solid var(--form-default-color);\n color: var(--text-color);\n\n &[disabled] {\n border: var(--general-border-width) solid var(--form-default-color);\n background-color: var(--form-control-disabled-background-color);\n color: var(--form-control-disabled-color);\n cursor: not-allowed;\n\n + .tyk-input-group__addon {\n background-color: var(--form-control-disabled-background-color);\n }\n }\n\n &::placeholder {\n opacity: 0.8;\n }\n\n &:-ms-input-placeholder {\n opacity: 0.8;\n }\n }\n\n &.tyk-form-group--addon-left {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-default-color);\n border-inline-start: 2px solid var(--form-default-color);\n color: var(--text-color);\n }\n }\n\n &.tyk-form-group--addon-right {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-default-color);\n border-inline-end: 2px solid var(--form-default-color);\n color: var(--text-color);\n }\n }\n}\n\n.tyk-form-group--primary {\n color: var(--text-color);\n\n > .tyk-form-control__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-file-input__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-input-group > .tyk-form-control {\n border: var(--general-border-width) solid var(--form-primary-color);\n color: var(--text-color);\n\n &[disabled] {\n border: var(--general-border-width) solid var(--form-primary-color);\n background-color: var(--form-control-disabled-background-color);\n color: var(--form-control-disabled-color);\n cursor: not-allowed;\n\n + .tyk-input-group__addon {\n background-color: var(--form-control-disabled-background-color);\n }\n }\n\n &::placeholder {\n opacity: 0.8;\n }\n\n &:-ms-input-placeholder {\n opacity: 0.8;\n }\n }\n\n &.tyk-form-group--addon-left {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-primary-color);\n border-inline-start: 2px solid var(--form-primary-color);\n color: var(--form-primary-color);\n }\n }\n\n &.tyk-form-group--addon-right {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-primary-color);\n border-inline-end: 2px solid var(--form-primary-color);\n color: var(--form-primary-color);\n }\n }\n}\n\n.tyk-form-group--success {\n color: var(--text-color);\n\n > .tyk-form-control__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-file-input__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-input-group > .tyk-form-control {\n border: var(--general-border-width) solid var(--form-success-color);\n color: var(--text-color);\n\n &[disabled] {\n border: var(--general-border-width) solid var(--form-success-color);\n background-color: var(--form-control-disabled-background-color);\n color: var(--form-control-disabled-color);\n cursor: not-allowed;\n\n + .tyk-input-group__addon {\n background-color: var(--form-control-disabled-background-color);\n }\n }\n\n &::placeholder {\n opacity: 0.8;\n }\n\n &:-ms-input-placeholder {\n opacity: 0.8;\n }\n }\n\n &.tyk-form-group--addon-left {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-success-color);\n border-inline-start: 2px solid var(--form-success-color);\n color: var(--form-success-color);\n }\n }\n\n &.tyk-form-group--addon-right {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-success-color);\n border-inline-end: 2px solid var(--form-success-color);\n color: var(--form-success-color);\n }\n }\n}\n\n.tyk-form-group--rounded-corners {\n &.has-error > .tyk-form-control__wrapper > .tyk-form-control {\n border-inline-start: var(--error-border);\n\n &:focus {\n border-inline-start: var(--error-border);\n outline: none;\n }\n }\n\n .tyk-form-control {\n border-radius: var(--general-border-radius);\n }\n}\n\n.tyk-form-group--addon-right input {\n border-inline-end: 0 !important;\n padding-inline-end: 0;\n}\n\n.tyk-form-group--addon-left input {\n border-inline-start: 0 !important;\n padding-inline-start: 0;\n}\n\n.tyk-form-group--rounded-corners.tyk-form-group--addon-right {\n input {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n\n .tyk-input-group__addon {\n background: var(--form-control-addon-background-color);\n border-start-end-radius: var(--general-border-radius);\n border-end-end-radius: var(--general-border-radius);\n color: var(--text-color);\n }\n}\n\n.tyk-form-group--rounded-corners.tyk-form-group--addon-left {\n input {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n border-inline-start: 0 !important;\n }\n\n .tyk-input-group__addon {\n background: var(--form-control-addon-background-color);\n border-start-start-radius: var(--general-border-radius);\n border-end-start-radius: var(--general-border-radius);\n color: var(--text-color);\n }\n}\n\n.tyk-form-control__error-message {\n font-family: var(--font-family-regular);\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n margin-block-start: 5px;\n padding: var(--error-message-padding);\n position: relative;\n\n &::before {\n content: '!';\n background: var(--color-danger-base);\n color: white;\n font-family: var(--font-family-bold);\n border-radius: 8px;\n display: inline-block;\n margin-inline-end: 5px;\n padding-block: 0;\n padding-inline: 7px;\n }\n}\n\n.tyk-input-group {\n align-items: center;\n display: flex;\n outline: none;\n}\n\n.tyk-input-group__addon {\n align-items: center;\n background-color: var(--form-control-addon-background-color);\n border: var(--form-control-border);\n display: flex;\n block-size: var(--form-control-height);\n padding-block: var(--form-control-addon-padding-top) var(--form-control-addon-padding-bottom);\n padding-inline: var(--form-control-addon-padding-left) var(--form-control-addon-padding-right);\n\n &:first-child {\n border-inline-end: 0;\n }\n\n &:last-child {\n border-inline-start: 0;\n }\n}\n\n.tyk-form-control {\n font-family: var(--font-family-medium);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n border: var(--form-control-border);\n background-color: white;\n color: var(--text-color);\n display: block;\n block-size: var(--form-control-height);\n padding-block: var(--form-control-padding-top) var(--form-control-padding-bottom);\n padding-inline: var(--form-control-padding-left) var(--form-control-padding-right);\n transition: all .2s linear;\n inline-size: 100%;\n\n &[disabled] {\n background-color: var(--form-control-disabled-background-color);\n\n .tyk-input-group__addon {\n background-color: var(--form-control-disabled-background-color);\n }\n\n cursor: not-allowed;\n }\n\n &::placeholder {\n font-family: var(--form-control-placeholder-font-family);\n color: var(--form-control-placeholder-color);\n }\n\n &:focus,\n &:active {\n outline: none;\n border: var(--form-control-border-focus) !important;\n\n + .tyk-input-group__addon {\n border: var(--form-control-border-focus) !important;\n border-inline-start: none !important;\n }\n }\n}\n\n.tyk-form-control__help-block {\n color: var(--help-block-color);\n font-style: var(--help-block-font-style);\n font-family: var(--font-family-regular);\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n padding: var(--help-block-padding);\n margin-block: 5px 0;\n margin-inline: 0;\n}\n\nselect {\n border-radius: 0;\n appearance: none;\n}\n\n.inline-form-wrapper {\n align-items: center;\n display: flex;\n inline-size: 100%;\n\n .inline-form {\n inline-size: 100%;\n }\n\n > button {\n margin-inline-start: 10px;\n margin-block-end: var(--spacing-base);\n }\n}\n\n.tyk-checkbox,\n.tyk-radio {\n margin-block: 10px;\n margin-inline: 0;\n\n label {\n font-family: var(--font-family-medium);\n }\n\n input {\n margin-block: 0;\n margin-inline: 0 5px;\n }\n}\n\n.tyk-checkbox--inline,\n.tyk-radio--inline {\n display: inline-flex;\n margin-inline-start: var(--spacing-base);\n\n &:first-child {\n margin-inline-start: 0;\n }\n}\n\n.tyk-inline-form {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n\n .tyk-form-group {\n flex: 1;\n margin-inline-start: var(--spacing-md);\n min-inline-size: 200px;\n\n &:first-child {\n margin-inline-start:0\n }\n }\n\n > .tyk-button {\n margin-inline-start: var(--spacing-md);\n margin-block-end: var(--spacing-base);\n }\n}\n",":root {\n --accordion-item-header-padding-y: var(--spacing-base);\n --accordion-item-header-padding-x: var(--spacing-base);\n --accordion-item-header-font-size: var(--base-font-size);\n --accordion-item-outside-trigger-width: var(--spacing-xxl);\n}\n\n.tyk-accordion__item {\n display: grid;\n}\n\n.tyk-accordion__item--trigger-position-left {\n grid-template-columns: var(--accordion-item-outside-trigger-width) auto;\n grid-template-areas:\n \"trigger header\"\n \"trigger content\";\n}\n\n.tyk-accordion__item--trigger-position-right {\n grid-template-columns: auto var(--accordion-item-outside-trigger-width);\n grid-template-areas:\n \"header trigger\"\n \"content trigger\";\n}\n\n.tyk-accordion__item--trigger-in-header {\n grid-template-columns: auto;\n grid-template-areas:\n \"header\"\n \"content\";\n}\n\n.tyk-accordion__trigger-wrapper {\n grid-area: trigger;\n display: flex;\n align-items: flex-start;\n justify-content: center;\n\n .tyk-icon {\n margin-inline: auto;\n }\n}\n\n.tyk-accordion__trigger,\n.tyk-accordion__item-header > button {\n background: none;\n border: none;\n cursor: pointer;\n display: flex;\n font-size: var(--accordion-item-header-font-size);\n outline: none;\n padding-inline: var(--accordion-item-header-padding-x);\n padding-block: var(--accordion-item-header-padding-y);\n inline-size: 100%;\n\n .tyk-icon {\n margin-inline-start: auto;\n }\n}\n\n.tyk-accordion__item-header {\n grid-area: header;\n}\n\n.tyk-accordion__trigger--disabled {\n color: var(--color-background-base);\n}\n\n.tyk-accordion__item-header.tyk-accordion__arrow-trigger {\n align-items: center;\n display: flex;\n\n > div {\n flex: 1;\n }\n\n > button {\n margin-inline-start: auto;\n inline-size: auto;\n }\n}\n\n.tyk-accordion__item-content {\n grid-area: content;\n}\n",":root {\n --button-font-family: var(--font-family-bold);\n --button-border-radius: var(--spacing-md);\n\n --padding-y-button-sm: 3px;\n --padding-x-button-sm: var(--spacing-base);\n --padding-y-button-md: 8px;\n --padding-x-button-md: 23px;\n --padding-y-button-lg: 13px;\n --padding-x-button-lg: 23px;\n\n --line-height-button-sm: var(--xs-line-height);\n --line-height-button-md: var(--md-line-height);\n --line-height-button-lg: var(--lg-line-height);\n\n --button-default-color: var(--color-default-base);\n --button-default-hover-color: var(--color-default-dark);\n --button-default-gradient-start-color: var(--color-default-base);\n --button-default-gradient-end-color: var(--color-default-dark);\n\n --button-primary-color: var(--color-default-base-light);\n --button-primary-hover-color: var(--color-default-dark);\n --button-primary-text-color: white;\n --button-primary-gradient-start-color: var(--color-primary-base);\n --button-primary-gradient-end-color: var(--color-primary-dark);\n\n --button-success-color: var(--color-success-base);\n --button-success-hover-color: var(--color-success-dark);\n --button-success-gradient-start-color: var(--color-success-base);\n --button-success-gradient-end-color: var(--color-success-dark);\n\n --button-danger-color: var(--color-danger-base);\n --button-danger-hover-color: var(--color-danger-dark);\n --button-danger-gradient-start-color: var(--color-danger-base);\n --button-danger-gradient-end-color: var(--color-danger-dark);\n\n --button-warning-color: var(--color-warning-base);\n --button-warning-font-color: white;\n --button-warning-gradient-start-color: var(--color-warning-base);\n --button-warning-gradient-end-color: var(--color-warning-light);\n\n --button-info-color: var(--color-info-base);\n --button-info-font-color: var(--text-color);\n --button-info-gradient-start-color: var(--color-info-base);\n --button-info-gradient-end-color: var(--color-info-light);\n\n --button-icon-only-background-hover: var(--color-background-light);\n}\n\n.tyk-button {\n --button-padding-y: var(--padding-y-button-md);\n --button-padding-x: var(--padding-x-button-md);\n --button-font-size: var(--sm-font-size);\n --button-line-height: var(--line-height-button-md);\n\n background-color: transparent;\n border: none;\n color: white;\n cursor: pointer;\n display: inline-block;\n font-family: var(--button-font-family);\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n transition: all .2s linear;\n user-select: none;\n vertical-align: middle;\n white-space: nowrap;\n\n + .tyk-button,\n + .tyk-dropdown,\n + .tyk-toggle {\n margin-inline-start: var(--spacing-sm);\n }\n\n span + i {\n margin-inline-start: var(--spacing-sm);\n }\n\n i + span {\n margin-inline-start: var(--spacing-sm);\n }\n\n &.disabled {\n cursor: not-allowed;\n opacity: 0.7;\n }\n\n &:hover {\n color: white;\n text-decoration: none;\n }\n\n &:focus {\n outline: none;\n }\n}\n\n.tyk-button--white {\n --button-variant-background: white;\n --button-variant-border: transparent;\n --button-variant-color: var(--color-default-base);\n --button-variant-hover-background: var(--color-background-dark);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--primary {\n --button-variant-background: var(--button-primary-color);\n --button-variant-border: var(--button-primary-color);\n --button-variant-color: var(--button-primary-text-color);\n --button-variant-hover-background: var(--button-primary-hover-color);\n --button-variant-hover-color: var(--button-primary-text-color);\n}\n\n.tyk-button--success {\n --button-variant-background: var(--button-success-color);\n --button-variant-border: var(--button-success-color);\n --button-variant-color: white;\n --button-variant-hover-background: var(--button-success-hover-color);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--danger {\n --button-variant-background: var(--button-danger-color);\n --button-variant-border: var(--button-danger-color);\n --button-variant-color: white;\n --button-variant-hover-background: var(--button-danger-hover-color);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--warning {\n --button-variant-background: var(--button-warning-color);\n --button-variant-border: transparent;\n --button-variant-color: var(--button-warning-font-color);\n --button-variant-hover-background: color-mix(in srgb, var(--button-variant-background), black 15%);\n --button-variant-hover-color: var(--button-warning-font-color);\n}\n\n.tyk-button--info {\n --button-variant-background: var(--button-info-color);\n --button-variant-border: var(--button-info-color);\n --button-variant-color: white;\n --button-variant-hover-background: color-mix(in srgb, var(--button-variant-background), black 15%);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--default {\n --button-variant-background: var(--button-default-color);\n --button-variant-border: var(--button-default-color);\n --button-variant-color: white;\n --button-variant-hover-background: var(--button-default-hover-color);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--white,\n.tyk-button--primary,\n.tyk-button--success,\n.tyk-button--danger,\n.tyk-button--warning,\n.tyk-button--info,\n.tyk-button--default {\n background-color: var(--button-variant-background);\n color: var(--button-variant-color);\n border: var(--general-border-width) solid var(--button-variant-border);\n\n &:hover {\n background-color: var(--button-variant-hover-background);\n color: var(--button-variant-hover-color);\n }\n}\n\n.tyk-button--primary-link {\n --button-variant-link-color: var(--button-primary-color);\n}\n\n.tyk-button--success-link {\n --button-variant-link-color: var(--button-success-color);\n}\n\n.tyk-button--danger-link {\n --button-variant-link-color: var(--button-danger-color);\n}\n\n.tyk-button--warning-link {\n --button-variant-link-color: var(--button-warning-color);\n}\n\n.tyk-button--info-link {\n --button-variant-link-color: var(--button-info-color);\n}\n\n.tyk-button--default-link {\n --button-variant-link-color: var(--text-color);\n}\n\n.tyk-button--primary-link,\n.tyk-button--success-link,\n.tyk-button--danger-link,\n.tyk-button--warning-link,\n.tyk-button--info-link,\n.tyk-button--default-link {\n background-color: transparent;\n border: var(--general-border-width) solid transparent;\n color: var(--button-variant-link-color);\n\n &:hover {\n background-color: transparent;\n color: var(--button-variant-link-color);\n border-color: var(--button-variant-link-color);\n text-decoration: underline;\n }\n}\n\n.tyk-button--primary-outline {\n --button-variant-outline-border: var(--button-primary-color);\n --button-variant-outline-color: var(--button-primary-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--success-outline {\n --button-variant-outline-border: var(--button-success-color);\n --button-variant-outline-color: var(--button-success-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--danger-outline {\n --button-variant-outline-border: var(--button-danger-color);\n --button-variant-outline-color: var(--button-danger-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--warning-outline {\n --button-variant-outline-border: var(--button-warning-color);\n --button-variant-outline-color: var(--button-warning-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--info-outline {\n --button-variant-outline-border: var(--button-info-color);\n --button-variant-outline-color: var(--button-info-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--default-outline {\n --button-variant-outline-border: var(--button-default-color);\n --button-variant-outline-color: var(--button-default-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--primary-outline,\n.tyk-button--success-outline,\n.tyk-button--danger-outline,\n.tyk-button--warning-outline,\n.tyk-button--info-outline,\n.tyk-button--default-outline {\n border: var(--general-border-width) solid var(--button-variant-outline-border);\n background-color: transparent;\n color: var(--button-variant-outline-color);\n\n &:hover {\n background-color: var(--button-variant-outline-border);\n color: var(--button-variant-outline-hover-color);\n }\n\n &.disabled {\n color: var(--button-variant-outline-border);\n\n &:hover {\n background-color: transparent;\n color: var(--button-variant-outline-border);\n }\n }\n}\n\n.tyk-button--primary-gradient {\n --button-variant-gradient-left-color: var(--button-primary-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-primary-gradient-end-color);\n}\n\n.tyk-button--success-gradient {\n --button-variant-gradient-left-color: var(--button-success-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-success-gradient-end-color);\n}\n\n.tyk-button--danger-gradient {\n --button-variant-gradient-left-color: var(--button-danger-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-danger-gradient-end-color);\n}\n\n.tyk-button--warning-gradient {\n --button-variant-gradient-left-color: var(--button-warning-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-warning-gradient-end-color);\n --button-variant-gradient-color: var(--button-warning-font-color);\n}\n\n.tyk-button--info-gradient {\n --button-variant-gradient-left-color: var(--button-info-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-info-gradient-end-color);\n --button-variant-gradient-color: var(--button-info-font-color);\n}\n\n.tyk-button--default-gradient {\n --button-variant-gradient-left-color: var(--button-default-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-default-gradient-end-color);\n}\n\n.tyk-button--primary-gradient,\n.tyk-button--success-gradient,\n.tyk-button--danger-gradient,\n.tyk-button--warning-gradient,\n.tyk-button--info-gradient,\n.tyk-button--default-gradient {\n border-image: linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color)) 0 round;\n background: transparent linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: var(--button-variant-gradient-color, white);\n\n &:hover,\n &:active,\n &:active:focus {\n border-image: linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color)) 0 round;\n background: transparent linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color));\n background-position: 100% 0;\n background-size: 200% auto;\n background-clip: border-box;\n\n &.disabled {\n border-image: linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color)) 0 round;\n background: transparent linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: var(--button-variant-gradient-color, white);\n }\n }\n}\n\n.tyk-button--sm {\n --button-padding-y: var(--padding-y-button-sm);\n --button-padding-x: var(--padding-x-button-sm);\n --button-font-size: var(--xs-font-size);\n --button-line-height: var(--xs-line-height);\n}\n\n.tyk-button--md {\n --button-padding-y: var(--padding-y-button-md);\n --button-padding-x: var(--padding-x-button-md);\n --button-font-size: var(--sm-font-size);\n --button-line-height: var(--sm-line-height);\n}\n\n.tyk-button--lg {\n --button-padding-y: var(--padding-y-button-lg);\n --button-padding-x: var(--padding-x-button-lg);\n --button-font-size: var(--md-font-size);\n --button-line-height: var(--line-height-button-md);\n}\n\n.tyk-button,\n.tyk-button--sm,\n.tyk-button--md,\n.tyk-button--lg {\n padding-block: var(--button-padding-y);\n padding-inline: var(--button-padding-x);\n font-size: var(--button-font-size);\n line-height: var(--button-line-height);\n border-radius: var(--button-border-radius);\n}\n\n.tyk-button--icon-only {\n border-radius: var(--general-border-radius);\n padding: 0;\n line-height: var(--spacing-md);\n inline-size: 24px;\n\n &:hover {\n border-radius: var(--general-border-radius);\n }\n}\n\n.tyk-button--fit {\n block-size: auto;\n inline-size: auto;\n line-height: normal;\n}\n\n.tyk-button--no-style {\n background: transparent;\n border: none;\n color: var(--text-color);\n\n &:hover {\n background: transparent;\n border: none;\n color: var(--text-color);\n }\n}\n",".tyk-button-group__wrapper {\n display: inline-block;\n position: relative;\n vertical-align: middle;\n\n label {\n font-family: var(--font-family-medium);\n }\n\n + .tyk-button,\n + .tyk-dropdown,\n + .tyk-toggle,\n + .tyk-button-group__wrapper {\n margin-inline-start: var(--spacing-sm);\n }\n\n .tyk-button-group {\n display: flex;\n\n > .tyk-button-group:not(:first-child) {\n > .tyk-button {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n }\n\n > .tyk-button-group:not(:last-child) {\n > .tyk-button {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n }\n\n .tyk-button {\n border-radius: 0;\n\n + .tyk-button {\n margin-inline-start: 0;\n }\n\n + .tyk-dropdown {\n margin-inline-start: 0;\n }\n\n &:first-child {\n border-start-start-radius: var(--spacing-md);\n border-end-start-radius: var(--spacing-md);\n }\n\n &:last-child {\n border-start-end-radius: var(--spacing-md);\n border-end-end-radius: var(--spacing-md);\n\n &.tyk-button--icon-only {\n inline-size: 42px;\n }\n }\n }\n }\n}\n",".tyk-card {\n background-color: white;\n border: 1px solid var(--color-background-base);\n border-radius: 8px;\n box-shadow: 2px 2px 3px var(--color-background-base);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.tyk-card__header {\n align-items: center;\n display: flex;\n font-family: var(--font-inter-regular);\n font-size: var(--sm-font-size);\n padding-block: var(--spacing-base) 0;\n padding-inline: var(--spacing-base);\n}\n\n.tyk-card__header-right {\n margin-inline-start: auto;\n}\n\n.tyk-card__title-group {\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: center;\n\n .tyk-card__title-icon {\n align-items: center;\n display: flex;\n inline-size: 42px;\n block-size: 42px;\n justify-content: center;\n margin-inline-end: 10px;\n grid-row: span 2;\n }\n}\n\n.tyk-card__title {\n font-family: var(--font-inter-bold);\n font-size: var(--lg-font-size);\n display: -webkit-box;\n -webkit-box-orient: vertical;\n overflow: hidden;\n margin: 0;\n text-overflow: ellipsis;\n}\n\n.tyk-card__title--max-1-lines {\n -webkit-line-clamp: 1;\n}\n\n.tyk-card__title--max-2-lines {\n -webkit-line-clamp: 2;\n}\n\n.tyk-card__sub-title {\n font-family: var(--font-inter-medium);\n font-size: var(--xs-font-size);\n margin: 0;\n}\n\n.tyk-card__title-group + .tyk-card__summary,\n.tyk-card__sub-title + .tyk-card__summary,\n.tyk-card__title + .tyk-card__summary {\n margin-block-start: var(--spacing-sm);\n}\n\n.tyk-card__summary {\n color: var(--text-color);\n font-family: var(--font-inter-regular);\n font-size: var(--sm-font-size);\n display: -webkit-box;\n -webkit-box-orient: vertical;\n overflow: hidden;\n margin: 0;\n text-overflow: ellipsis;\n}\n\n.tyk-card__summary--max-1-lines {\n -webkit-line-clamp: 1;\n}\n\n.tyk-card__summary--max-2-lines {\n -webkit-line-clamp: 2;\n}\n\n.tyk-card__summary--max-3-lines {\n -webkit-line-clamp: 3;\n}\n\n.tyk-card__summary--max-4-lines {\n -webkit-line-clamp: 4;\n}\n\n.tyk-card__summary--max-5-lines {\n -webkit-line-clamp: 5;\n}\n\n.tyk-card__body {\n display: flex;\n flex: 1 0 auto;\n flex-grow: 1;\n padding: var(--spacing-base);\n}\n\n.tyk-card__body--align-top {\n align-items: flex-start;\n}\n\n.tyk-card__body--align-center {\n align-items: center;\n}\n\n.tyk-card__body--align-bottom {\n align-items: flex-end;\n}\n\n.tyk-card__footer {\n display: flex;\n justify-content: end;\n border-block-start: 1px solid var(--color-background-base);\n padding: var(--spacing-base);\n}",".tyk-chart__wrapper {\n position: relative;\n}\n\n.tyk-chart--no-data,\n.tyk-chart--loading-chart {\n filter: blur(var(--spacing-sm));\n}\n",".collapse-exit,\n.collapse-exit-active,\n.collapse-exit-done {\n block-size: 0;\n}\n\n.collapse-wrapper {\n overflow: hidden;\n transition: all .2s;\n}\n\n.collapse-horizontal-exit,\n.collapse-horizontal-exit-active,\n.collapse-horizontal-exit-done {\n inline-size: 0;\n}\n\n.collapse-horizontal-enter,\n.collapse-horizontal-enter-active,\n.collapse-horizontal-enter-done {\n inline-size: 100%;\n}\n",".tyk-copy-to-clipboard {\n position: absolute;\n inset-inline-start: -1000px;\n inset-block-start: -1000px;\n}",":root {\n --fixed-wrapper-top: 0;\n --fixed-wrapper-left: 0;\n --fixed-wrapper-right: 0;\n}\n\n.tyk-fixed-wrapper {\n inset-inline-start: var(--fixed-wrapper-left);\n inset-inline-end: var(--fixed-wrapper-right);\n position: sticky;\n inset-block-start: var(--fixed-wrapper-top);\n z-index: 8;\n}\n\n.tyk-fixed-wrapper--scrolled {\n box-shadow: 2px 2px 5px rgba(0 0 0 / 10%);\n}\n",".floating-container {\n position: fixed;\n inset-block-start: -9999px;\n overflow: auto;\n z-index: var(--modal-z-index, 1080);\n}\n\n.floating-container__content-wrapper {\n block-size: 100%;\n}",".tyk-icon {\n + .tyk-icon {\n margin-inline-start: var(--spacing-sm);\n }\n}\n",".tyk-infinite-scroller {\n block-size: 100%;\n overflow: hidden;\n position: relative;\n\n .loading {\n background: linear-gradient(180deg, rgba(255 255 255 / 0%), rgba(255 255 255 / 100%));\n justify-content: center;\n display: flex;\n inset-inline: 0;\n inset-block-start: auto;\n inset-block-end: 0;\n padding-block: var(--spacing-base);\n padding-inline: 0;\n inline-size: 100%;\n }\n}\n\n.tyk-infinite-scroller__wrapper {\n block-size: 100%;\n overflow-y: auto;\n}\n",".tyk-info-note {\n border-radius: 0;\n position: relative;\n\n p + p {\n margin-block-start: var(--spacing-base);\n }\n\n &::after {\n content: '';\n border-style: solid;\n border-width: 0 var(--spacing-md) var(--spacing-md) 0;\n border-color: transparent var(--color-info-base) transparent transparent;\n block-size: 0;\n position: absolute;\n inset-inline-end: 0;\n inset-block-start: 0;\n inline-size: 0;\n }\n\n .tyk-message {\n border-radius: 0;\n padding-block: 40px;\n }\n}\n",".tyk-loading__wrapper {\n background: rgba(255 255 255 / 60%);\n position: absolute;\n inset: 0;\n z-index: 99;\n}\n\n.loader-wrapper {\n min-block-size: 100px;\n position: relative;\n}\n\n.loading {\n position: absolute;\n inset-block-start: calc(50% - var(--spacing-sm));\n inset-inline-start: 50%;\n\n &.relative {\n inset-inline-start: auto;\n padding: 25px;\n position: relative;\n text-align: center;\n inset-block-start: auto;\n inline-size: 100%;\n }\n}\n\n.loading-bar {\n display: inline-block;\n inline-size: 4px;\n block-size: var(--spacing-md);\n border-radius: 4px;\n animation: loading 1s ease-in-out infinite;\n margin-inline-start: 2px;\n}\n\n.loading-bar:nth-child(1) {\n animation-delay: 0;\n background-color: var(--color-success-base);\n opacity: 1;\n}\n\n.loading-bar:nth-child(2) {\n animation-delay: 0.09s;\n background-color: var(--color-success-base);\n opacity: 0.80;\n}\n\n.loading-bar:nth-child(3) {\n animation-delay: .18s;\n background-color: var(--color-success-base);\n opacity: 0.60;\n}\n\n.loading-bar:nth-child(4) {\n animation-delay: .27s;\n background-color: var(--color-success-base);\n opacity: 0.40;\n}\n\n@keyframes loading {\n 0% {\n transform: scale(1);\n }\n\n 20% {\n transform: scale(1, 2.2);\n }\n\n 40% {\n transform: scale(1);\n }\n}\n",".tyk-list {\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n font-size: var(--sm-font-size);\n list-style-type: none;\n margin: 0;\n max-block-size: 191px;\n padding: 0;\n overflow: auto;\n\n li {\n border-block-end: 1px solid var(--color-default-light);\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-md);\n font-family: var(--font-family-medium);\n\n &.tyk-list__item--selected {\n background-color: var(--color-default-light);\n }\n\n &:last-child {\n border: none;\n }\n }\n}\n\n.tyk-list--with-inline-label {\n display: flex;\n\n > label {\n margin-inline-end: var(--spacing-md);\n }\n}\n\n.tyk-list--default {\n border-color: var(--color-default-light);\n}\n\n.tyk-list--primary {\n border-color: var(--color-primary-base);\n\n li {\n border-color: var(--color-primary-light);\n color: var(--text-color);\n\n &.tyk-list__item--selected {\n background-color: var(--color-primary-light);\n }\n }\n}\n\n.tyk-list--primary-light {\n border-color: var(--color-primary-light);\n\n li {\n border-color: var(--color-primary-light);\n color: var(--text-color);\n\n &.tyk-list__item--selected {\n background-color: var(--color-primary-light);\n }\n }\n}\n\n.tyk-list--success {\n border-color: var(--color-success-base);\n color: var(--color-success-base);\n\n li {\n border-color: var(--color-success-base);\n\n &.tyk-list__item--selected {\n background-color: var(--color-success-light);\n }\n }\n}\n\n.tyk-list--danger {\n border-color: var(--color-danger-base);\n color: var(--text-color);\n\n li {\n border-color: var(--color-danger-light);\n\n &.tyk-list__item--selected {\n background-color: var(--color-danger-light);\n }\n }\n}\n\nul.tyk-list--inline {\n align-items: center;\n display: flex;\n\n li {\n padding-block: 0;\n padding-inline: var(--spacing-sm);\n }\n\n &.tyk-list--with-separator {\n li:not(:first-child) {\n border-inline-start: 1px solid var(--color-default-base);\n }\n }\n}\n",":root {\n --tyk-message-padding-top: var(--spacing-md);\n --tyk-message-padding-right: var(--spacing-md);\n --tyk-message-padding-bottom: var(--spacing-md);\n --tyk-message-padding-left: var(--spacing-md);\n --tyk-message-border-radius: var(--general-border-radius);\n --tyk-message-default-background: var(--color-primary-light);\n --tyk-message-default-border: var(--color-default-dark);\n --tyk-message-default-text-color: var(--color-default-dark);\n --tyk-message-info-background: var(--color-info-light);\n --tyk-message-info-border: var(--color-info-base);\n --tyk-message-info-text-color: var(--color-info-base);\n --tyk-message-success-background: var(--color-success-light);\n --tyk-message-success-border: var(--color-success-dark);\n --tyk-message-success-text-color: var(--color-success-dark);\n --tyk-message-warning-background: var(--color-warning-light);\n --tyk-message-warning-border: var(--color-warning-base);\n --tyk-message-warning-text-color: var(--color-warning-dark);\n --tyk-message-danger-background: var(--color-danger-extra-light);\n --tyk-message-danger-border: var(--color-danger-base);\n --tyk-message-danger-text-color: var(--color-danger-dark);\n}\n\n.tyk-message {\n display: flex;\n align-items: center;\n border-radius: var(--tyk-message-border-radius);\n margin-block-end: var(--spacing-md);\n padding-block: var(--tyk-message-padding-top) var(--tyk-message-padding-bottom);\n padding-inline: var(--tyk-message-padding-left) var(--tyk-message-padding-right);\n\n > .tyk-icon:first-child {\n inline-size: 32px;\n block-size: 32px;\n flex-shrink: 0;\n border-radius: 50%;\n color: white;\n\n &::before {\n display: flex;\n inline-size: 100%;\n block-size: 100%;\n align-items: center;\n justify-content: center;\n }\n }\n\n > .tyk-icon:last-child {\n cursor: pointer;\n }\n\n /* &--default {\n @include message-variant(\n $tyk-message-default-background,\n $tyk-message-default-border,\n $tyk-message-default-text-color\n );\n\n > .tyk-icon:first-child {\n transform: rotate(180deg);\n }\n }\n\n &--info {\n @include message-variant(\n $tyk-message-info-background,\n $tyk-message-info-border,\n $tyk-message-info-text-color\n );\n }\n\n &--success {\n @include message-variant(\n $tyk-message-success-background,\n $tyk-message-success-border,\n $tyk-message-success-text-color\n );\n }\n\n &--warning {\n @include message-variant(\n $tyk-message-warning-background,\n $tyk-message-warning-border,\n $tyk-message-warning-text-color\n );\n }\n\n &--danger {\n @include message-variant(\n $tyk-message-danger-background,\n $tyk-message-danger-border,\n $tyk-message-danger-text-color\n );\n } */\n}\n\n.tyk-message__content {\n flex-grow: 1;\n margin-inline: var(--spacing-md);\n color: var(--tyk-message-default-text-color);\n font-weight: bold;\n}\n\n.tyk-message--default {\n --message-variant-background: var(--tyk-message-default-background);\n --message-variant-border: var(--tyk-message-default-border);\n --message-variant-color: var(--tyk-message-default-text-color);\n\n > .tyk-icon:first-child {\n transform: rotate(180deg);\n }\n}\n\n.tyk-message--info {\n --message-variant-background: var(--tyk-message-info-background);\n --message-variant-border: var(--tyk-message-info-border);\n --message-variant-color: var(--tyk-message-info-text-color);\n}\n\n.tyk-message--success {\n --message-variant-background: var(--tyk-message-success-background);\n --message-variant-border: var(--tyk-message-success-border);\n --message-variant-color: var(--tyk-message-success-text-color);\n}\n\n.tyk-message--warning {\n --message-variant-background: var(--tyk-message-warning-background);\n --message-variant-border: var(--tyk-message-warning-border);\n --message-variant-color: var(--tyk-message-warning-text-color);\n}\n\n.tyk-message--danger {\n --message-variant-background: var(--tyk-message-danger-background);\n --message-variant-border: var(--tyk-message-danger-border);\n --message-variant-color: var(--tyk-message-danger-text-color);\n}\n\n.tyk-message--default,\n.tyk-message--info,\n.tyk-message--success,\n.tyk-message--warning,\n.tyk-message--danger {\n background-color: var(--message-variant-background);\n border: var(--general-border-width) solid var(--message-variant-border);\n color: var(--message-variant-color);\n\n & > .tyk-icon:first-child {\n background-color: var(--message-variant-border);\n }\n}\n",":root {\n --tyk-modal-body-padding: var(--spacing-lg);\n --tyk-modal-footer-padding: var(--spacing-lg);\n\n /* Deprecated Modal.Header and Modal.Title */\n --tyk-modal-header-padding: var(--spacing-lg);\n --tyk-modal-borders-color: var(--color-background-light);\n\n /* End of deprecated styles */\n}\n\n.tyk-modal {\n --theme-header-height: 15px;\n --theme-header-icon-size: 65px;\n\n align-items: center;\n pointer-events: none;\n position: fixed;\n inset: 0;\n z-index: -1;\n\n .tyk-panel {\n border: var(--general-border-width) solid var(--color-background-dark);\n box-shadow: none;\n }\n\n .tyk-modal__dialog {\n opacity: 0;\n transition: all .2s ease;\n }\n\n &.opened {\n display: flex;\n z-index: var(--modal-z-index);\n\n .tyk-modal__dialog {\n display: flex;\n max-block-size: 92vh;\n opacity: 1;\n pointer-events: all;\n }\n }\n\n &.appear-enter-done {\n .tyk-modal__dialog {\n opacity: 1;\n margin-block-start: 0;\n }\n }\n}\n\n.tyk-modal__theme-header {\n position: absolute;\n inset-block-start: -1px;\n inset-inline: 0;\n block-size: var(--theme-header-height);\n border-start-start-radius: var(--general-border-radius);\n border-start-end-radius: var(--general-border-radius);\n\n .tyk-icon {\n position: absolute;\n inset-inline-start: calc(50% - var(--theme-header-icon-size) / 2);\n inset-block-start: calc((var(--theme-header-icon-size) - var(--theme-header-height)) / -2);\n inline-size: var(--theme-header-icon-size);\n block-size: var(--theme-header-icon-size);\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: var(--xxl-font-size);\n color: white;\n }\n}\n\n.tyk-modal--theme-success {\n .tyk-modal__theme-header {\n background-color: var(--color-success-base);\n\n .tyk-icon {\n background-color: var(--color-success-base);\n }\n }\n}\n\n.tyk-modal--theme-warning {\n .tyk-modal__theme-header {\n background-color: var(--color-warning-base);\n\n .tyk-icon {\n background-color: var(--color-warning-base);\n }\n }\n}\n\n.tyk-modal--theme-danger {\n .tyk-modal__theme-header {\n background-color: var(--color-danger-base);\n\n .tyk-icon {\n background-color: var(--color-danger-base);\n }\n }\n}\n\n.tyk-modal__dialog {\n opacity: 0;\n margin-inline: auto;\n margin-block-start: -5%;\n margin-block-end: 0;\n pointer-events: all;\n transition: all .2s linear;\n inline-size: 85%;\n}\n\n@media only screen and (width >= 768px) {\n .tyk-modal__dialog {\n inline-size: 600px;\n\n &.tyk-modal--lg {\n inline-size: 800px;\n }\n }\n}\n\n.tyk-modal__content {\n background: white;\n border-radius: var(--general-border-radius);\n display: flex;\n flex-direction: column;\n position: relative;\n inline-size: 100%;\n}\n\n.tyk-modal__body {\n flex: 1;\n overflow: auto;\n padding-block-start: calc(var(--tyk-modal-body-padding) + (var(--theme-header-icon-size) - var(--theme-header-height)) / 2);\n padding-block-end: var(--tyk-modal-body-padding);\n padding-inline: var(--tyk-modal-body-padding);\n\n &.no-padding {\n padding: 0;\n }\n}\n\n.tyk-modal__footer {\n align-items: center;\n display: flex;\n justify-content: flex-end;\n padding: var(--tyk-modal-footer-padding);\n\n >:not(:first-child) {\n margin-inline-start: var(--spacing-xs);\n }\n}\n\n.tyk-modal__backdrop {\n background-color: var(--color-default-dark);\n border: none;\n display: none;\n position: fixed;\n inset: 0;\n inline-size: 100%;\n z-index: var(--modal-z-index) - 1;\n\n &.opened {\n display: block;\n opacity: 0.5;\n transition: opacity .2s ease;\n }\n\n &.fade-enter-done {\n opacity: 0.5;\n z-index: 9;\n }\n}\n\n/* Deprecated Modal.Header and Modal.Title */\n.tyk-modal__header {\n padding-block-start: calc(var(--tyk-modal-header-padding) + (var(--theme-header-icon-size) - var(--theme-header-height)) / 2);\n padding-block-end: var(--tyk-modal-header-padding);\n padding-inline: var(--tyk-modal-header-padding);\n align-items: center;\n border-block-end: 1px solid var(--tyk-modal-borders-color);\n display: flex;\n inline-size: 100%;\n\n .tyk-modal--theme-none & {\n padding-block-start: var(--tyk-modal-header-padding);\n }\n\n button {\n margin-inline-start: auto;\n padding-block: 0;\n padding-inline: 5px;\n }\n\n + .tyk-modal__body {\n padding-block-start: var(--tyk-modal-body-padding);\n }\n}\n\n.tyk-modal__title {\n font-family: var(--font-family-medium);\n font-weight: 500;\n margin: 0;\n inline-size: 100%;\n}\n\n/* End of deprecated styles */\n",":root {\n --navigation-background-color: white;\n --navigation-item-padding-y: var(--spacing-sm);\n --navigation-item-padding-x: var(--spacing-md);\n --navigation-item-background-color: white;\n --navigation-item-color: var(--text-color);\n --navigation-item-hover-background-color: var(--color-primary-base);\n --navigation-item-hover-color: white;\n --navigation-item-active-background-color: var(--color-primary-dark);\n --navigation-item-active-color: white;\n --navigation-padding: 0;\n}\n\n.tyk-navigation {\n background-color: var(--navigation-background-color);\n block-size: 100%;\n overflow: auto;\n padding: var(--navigation-padding);\n inline-size: 100%;\n\n .tyk-navigation-item {\n inline-size: 100%;\n\n a {\n color: var(--navigation-item-color);\n display: flex;\n padding-block: var(--navigation-item-padding-y);\n padding-inline: var(--navigation-item-padding-x);\n text-decoration: none;\n transition: all .2s ease;\n\n &:hover {\n background-color: var(--navigation-item-hover-background-color);\n color: var(--navigation-item-hover-color);\n }\n\n &.active {\n background-color: var(--navigation-item-active-background-color);\n color: var(--navigation-item-active-color);\n }\n }\n }\n}\n",":root {\n --nav-bar-background-color: white;\n --nav-bar-text-color: var(--color-default-base);\n --nav-bar-padding-left: 265px;\n --nav-bar-animate-left: 245px;\n --nav-bar-top-padding: var(--spacing-sm);\n --nav-bar-bottom-padding: 0;\n --nav-bar-left-padding: var(--spacing-md);\n --nav-bar-right-padding: var(--spacing-md);\n --nav-bar-padding: 0 var(--nav-bar-right-padding) 0 var(--nav-bar-left-padding);\n --nav-bar-top: 51px;\n --nav-bar-header-font-size: var(--xxl-font-size);\n --nav-bar-header-font-family: var(--headings-font-family-bold);\n --nav-bar-header-line-height: var(--xxl-line-height);\n --nav-bar-height: 92px;\n --nav-bar-font-family: var(--font-family-regular);\n}\n\n.tyk-nav-bar {\n align-items: center;\n border: none;\n background-color: var(--nav-bar-background-color);\n font-family: var(--nav-bar-font-family);\n color: var(--nav-bar-text-color);\n margin: 0;\n padding: var(--nav-bar-padding);\n inline-size: 100%;\n z-index: 8;\n transition: all .2s linear;\n\n &.tyk-nav-bar__with-tabs .tyk-tabs--default > ul li button {\n padding-block-start: 0;\n }\n\n @media screen and (width <= 1024px) {\n padding-inline-start: var(--spacing-md);\n\n .menu-opened & {\n transform: translate(var(--nav-bar-animate-left));\n }\n }\n\n h1 {\n color: var(--nav-bar-text-color);\n }\n\n h4 {\n margin: 0;\n }\n\n .tyk-nav-bar__wrapper {\n align-items: center;\n padding-block-end: var(--nav-bar-bottom-padding);\n display: flex;\n flex-wrap: wrap;\n block-size: var(--nav-bar-height);\n\n &.tyk-nav-bar--align-top {\n align-items: flex-start;\n }\n\n @media screen and (width <= 1024px) {\n padding-inline-start: 0;\n }\n\n h1 {\n font-size: var(--nav-bar-header-font-size);\n font-family: var(--nav-bar-header-font-family);\n line-height: var(--nav-bar-header-line-height);\n margin: 0;\n padding-inline-end: var(--spacing-sm);\n }\n\n h4 {\n padding-inline-end: var(--spacing-sm);\n }\n\n .tyk-nav-bar__container {\n align-items: center;\n display: flex;\n flex-grow: 1;\n justify-content: space-between;\n }\n\n .tyk-nav-bar__left {\n flex-grow: 1;\n }\n\n .tyk-nav-bar__right {\n margin-inline-start: auto;\n }\n }\n}\n\n.tyk-nav-bar__pre {\n align-self: flex-end;\n color: var(--text-color);\n flex-basis: 100%;\n\n a {\n font-family: var(--font-family-bold);\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n color: var(--text-color);\n }\n}\n",":root {\n --padding-y-panel-header: var(--spacing-sm);\n --padding-x-panel-header: 25px;\n --padding-y-blank-panel-header: var(--spacing-md);\n --padding-panel-body: 25px;\n --padding-x-right-panel-collapsable: 48px;\n --padding-x-left-panel-collapsable: var(--padding-x-right-panel-collapsable);\n --panel-border-radius: 0;\n --panel-default-border-bottom-color: var(--color-background-base);\n --panel-header-font-size: var(--base-font-size);\n --panel-header-font-family: var(--font-family-medium);\n --panel-primary-header-color: var(--color-primary-base);\n --panel-primary-body-color: white;\n --panel-primary-header-text-color: white;\n --panel-primary-body-text-color: var(--text-color);\n --panel-primary-label-color: var(--text-color);\n --panel-primary-border-color: none;\n}\n\n.tyk-panel {\n background: white;\n border-radius: var(--panel-border-radius);\n margin-block-end: 20px;\n font-family: var(--font-family-medium);\n position: relative;\n\n &.has-error,\n & &.has-error {\n border: var(--general-border-width) solid var(--color-danger-base);\n }\n\n .tyk-panel {\n border: var(--general-border-width) solid var(--color-default-light);\n box-shadow: none;\n }\n}\n\n.tyk-panel--blank,\n.tyk-panel--primary,\n.tyk-panel--success,\n.tyk-panel--danger,\n.tyk-panel--warning {\n .tyk-panel__header {\n border: none;\n font-size: var(--lg-font-size);\n line-height: var(--lg-line-height);\n }\n}\n\n.tyk-panel--blank {\n &.tyk-panel--collapsed {\n margin-block-end: 20px;\n\n .tyk-panel__header {\n margin-block-end: 0;\n }\n }\n\n .tyk-panel__header {\n margin-block-end: -20px;\n padding-block: var(--padding-y-blank-panel-header);\n padding-inline: var(--padding-x-panel-header);\n background-color: white;\n color: var(--color-default-base);\n }\n}\n\n.tyk-panel--primary {\n background-color: transparent;\n\n .tyk-panel__header {\n background-color: var(--panel-primary-header-color);\n color: var(--panel-primary-header-text-color);\n border: var(--panel-primary-border-color);\n }\n\n .tyk-panel__body {\n background-color: var(--panel-primary-body-color);\n color: var(--panel-primary-body-text-color);\n }\n\n & .tyk-form-group {\n label {\n color: var(--panel-primary-label-color);\n }\n }\n\n .tyk-toggle {\n .tyk-toggle__label {\n color: var(--panel-primary-label-color);\n }\n }\n}\n\n.tyk-panel--success {\n .tyk-panel__header {\n background-color: var(--color-success-base);\n color: white;\n }\n}\n\n.tyk-panel--danger {\n .tyk-panel__header {\n background-color: var(--color-danger-base);\n color: white;\n }\n}\n\n.tyk-panel--warning {\n .tyk-panel__header {\n background-color: var(--color-warning-base);\n color: white;\n }\n}\n\n.tyk-panel__body {\n background-color: white;\n border-radius: var(--panel-border-radius);\n font-family: var(--font-family-regular);\n padding: var(--padding-panel-body);\n position: relative;\n transition: block-size .2s;\n\n & ~ .tyk-panel__header {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n\n &.no-padding {\n padding: 0;\n }\n}\n\n.tyk-panel__header {\n display: flex;\n align-items: center;\n border-block-end: 1px solid var(--panel-default-border-bottom-color);\n border-radius: var(--panel-border-radius);\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n font-family: var(--panel-header-font-family);\n overflow: hidden;\n padding-block: var(--padding-y-panel-header);\n padding-inline: var(--padding-x-panel-header);\n position: relative;\n\n > .tyk-icon,\n > .tyk-tooltip__wrapper {\n margin-inline-start: 5px;\n }\n\n .tyk-panel--collapsed & {\n border-end-start-radius: var(--panel-border-radius);\n border-end-end-radius: var(--panel-border-radius);\n }\n\n & ~ .tyk-panel__body {\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n\n & h3 {\n margin: 0;\n }\n\n ng-transclude {\n vertical-align: middle;\n }\n\n &.collapsable {\n cursor: pointer;\n\n .tyk-panel__icon-collapse--right & {\n padding-inline-end: var(--padding-x-right-panel-collapsable);\n }\n\n .tyk-panel__icon-collapse--left & {\n padding-inline-start: var(--padding-x-left-panel-collapsable);\n }\n }\n\n .collapsable__arrow-right {\n font-size: var(--sm-font-size);\n position: absolute;\n padding: var(--spacing-sm);\n inset-inline-end: var(--spacing-sm);\n inset-block-start: calc(50% - 21px);\n }\n\n .collapsable__arrow-left {\n font-size: var(--sm-font-size);\n position: absolute;\n padding-block: 8px var(--spacing-sm);\n padding-inline: 20px 0;\n inset-inline-start: 0;\n inset-block-start: calc(50% - 21px);\n }\n}\n\n.tyk-panel__footer {\n align-items: center;\n border-block-start: 1px solid var(--color-background-light);\n display: flex;\n justify-content: flex-end;\n padding: var(--spacing-lg);\n\n >:not(:first-child) {\n margin-inline-start: 5px;\n }\n}\n",".tyk-pill {\n align-items: center;\n border-radius: var(--general-border-radius);\n display: inline-flex;\n font-size: var(--xs-font-size);\n line-height: 19px;\n margin: var(--pill-margin);\n padding-block: 6px;\n padding-inline: var(--spacing-base);\n font-family: var(--font-family-medium);\n\n i {\n font-size: var(--xs-font-size);\n }\n\n + .tyk-pill {\n margin-inline-end: var(--spacing-sm);\n }\n\n button + span {\n margin-inline-start: var(--spacing-sm);\n }\n\n span + button {\n margin-inline-start: var(--spacing-sm);\n }\n\n &:first-child {\n margin-inline-end: var(--spacing-sm);\n }\n\n &:last-child {\n margin-inline-end: 0;\n }\n}\n\n.tyk-pill--square {\n border-radius: 8px;\n}\n\n.tyk-pill--default {\n background-color: var(--default-pill-background-color);\n color: var(--default-pill-color);\n\n i {\n color: var(--default-pill-color);\n }\n}\n\n.tyk-pill--default-outline {\n box-shadow: var(--default-outline-pill-box-shadow);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--primary {\n background-color: var(--color-primary-base);\n color: white;\n\n i {\n color: var(--default-pill-color);\n }\n}\n\n.tyk-pill--primary-outline {\n box-shadow: inset 0 0 0 2px var(--color-primary-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--success {\n background-color: var(--color-success-base);\n color: white;\n\n i {\n color: white;\n }\n}\n\n.tyk-pill--success-outline {\n box-shadow: inset 0 0 0 2px var(--color-success-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--danger {\n background-color: var(--color-danger-base);\n color: white;\n\n i {\n color: white;\n }\n}\n\n.tyk-pill--danger-outline {\n box-shadow: inset 0 0 0 2px var(--color-danger-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--warning {\n background-color: var(--color-warning-base);\n color: white;\n\n i {\n color: white;\n }\n}\n\n.tyk-pill--warning-outline {\n box-shadow: inset 0 0 0 2px var(--color-warning-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--info {\n background-color: var(--color-info-base);\n color: white;\n\n i {\n color: white;\n }\n}\n\n.tyk-pill--info-outline {\n box-shadow: inset 0 0 0 2px var(--color-info-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n",".tyk-ui-reveal-wrapper {\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n align-items: stretch;\n inline-size: 100%;\n block-size: 100%;\n z-index: 1000;\n position: absolute;\n inset-block-end: 0;\n inset-inline-start: 0;\n pointer-events: none;\n}\n\n.tyk-ui-reveal-wrapper__panel {\n max-block-size: calc(100% - 2rem);\n background-color: white;\n padding: 0;\n margin: 0;\n display: flex;\n flex-direction: column;\n pointer-events: all;\n flex-shrink: 0;\n overflow: auto;\n}\n\n.tyk-ui-reveal-wrapper__hole {\n flex-grow: 1;\n opacity: 0;\n inline-size: 100%;\n background-color: green;\n -webkit-user-select: none;\n user-select: none;\n pointer-events: none;\n z-index: -1;\n}\n\n.tyk-ui-reveal-wrapper__gutter {\n block-size: 2rem;\n inline-size: 100%;\n cursor: row-resize;\n display: flex;\n background-color: var(--color-primary-base);\n z-index: 2;\n pointer-events: all;\n justify-content: space-between;\n align-items: stretch;\n position: relative;\n box-shadow: 0 5px 10px rgba(0 0 0 / 30%);\n}\n\n.tyk-ui-reveal-wrapper__gutter__headerleft,\n.tyk-ui-reveal-wrapper__gutter__headerright {\n display: flex;\n align-items: center;\n flex: 1;\n}\n\n.tyk-ui-reveal-wrapper__gutter__headerleft {\n justify-content: flex-start;\n}\n\n.tyk-ui-reveal-wrapper__gutter__headerright {\n justify-content: flex-end;\n}\n\n.tyk-ui-reveal-wrapper__gutter__logo {\n inline-size: 1rem;\n block-size: 1rem;\n -webkit-user-select: none;\n user-select: none;\n pointer-events: none;\n padding: 0.2rem;\n z-index: 2;\n background-image: url('./images/drag.svg');\n align-self: center;\n\n &:hover {\n border: dashed;\n }\n}\n",":root {\n --sidebar-background-color: white;\n --sidebar-top: 58px;\n --sidebar-height: calc(100vh - 58px);\n --sidebar-width: 280px;\n --sidebar-padding: 0;\n}\n\n.tyk-sidebar {\n background-color: var(--sidebar-background-color);\n block-size: var(--sidebar-height);\n flex: 0 0 var(--sidebar-width);\n padding: var(--sidebar-padding);\n position: sticky;\n overflow: auto;\n inset-block-start: var(--sidebar-top);\n}\n",":root {\n --table-th-padding: var(--spacing-base) var(--spacing-sm);\n --table-td-padding-y: var(--spacing-xs);\n --table-td-padding-x: var(--spacing-sm);\n --table-first-last-padding: 20px;\n --table-pagination-padding: var(--spacing-md) 25px;\n}\n\n.tyk-table {\n border-collapse: collapse;\n border-spacing: 0;\n background-color: white;\n border-radius: var(--general-border-radius);\n inline-size: 100%;\n\n > thead th {\n border-inline-end: 1px solid var(--color-default-light);\n color: var(--text-color);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-bold);\n text-transform: uppercase;\n padding: var(--table-th-padding);\n\n &:last-child {\n border-inline-end: none;\n }\n\n i {\n font-size: var(--xs-font-size);\n }\n\n .tyk-button {\n background: none;\n color: var(--color-default-base);\n padding: 0;\n }\n }\n\n > tbody tr:hover {\n background: rgba(var(--color-background-light) / 40%);\n }\n\n > tbody td {\n border-inline-end: 1px solid var(--color-default-light);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-regular);\n padding-block: var(--table-td-padding-y);\n padding-inline: var(--table-td-padding-x);\n vertical-align: middle;\n\n &:last-child {\n border-inline-end: none;\n }\n\n &.fit {\n white-space: nowrap;\n inline-size: 1%;\n }\n\n input:not([type='checkbox'], [type='radio']) {\n margin-block-start: var(--spacing-base);\n }\n\n a {\n color: var(--text-color);\n font-family: var(--font-family-medium);\n }\n\n label {\n margin: 0;\n }\n\n input[type='checkbox'] {\n margin: 0;\n }\n }\n\n tbody > tr {\n border-block-start: 1px solid var(--color-default-light);\n transition: all .4s linear;\n border-radius: var(--general-border-radius);\n\n &.clickable {\n cursor: pointer;\n }\n }\n\n > tbody tr td:first-child,\n > thead tr th:first-child {\n padding-inline-start: var(--table-first-last-padding);\n\n &.with-icon {\n padding-inline-start: var(--spacing-base);\n }\n }\n\n > tbody tr td:last-child,\n > thead tr th:last-child {\n padding-inline-end: var(--table-first-last-padding);\n\n &.with-icon {\n padding-inline-end: var(--spacing-base);\n }\n }\n\n .tyk-pagination {\n padding: var(--table-pagination-padding);\n\n li:first-child {\n margin-inline-start: auto;\n }\n }\n\n .nowrap {\n white-space: nowrap;\n }\n\n .wrap {\n word-break: break-all;\n }\n}\n\n.tyk-table__wrapper {\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n overflow: auto;\n\n &.no-innner-horizontal-borders {\n & .tyk-table > thead th,\n & .tyk-table > tbody td {\n border-inline-end: none;\n }\n }\n}\n\n.tyk-table__wrapper--no-border {\n border: none\n}\n\n.tyk-table-search {\n padding-block: var(--spacing-sm) 0;\n padding-inline: 25px;\n\n label {\n font-size: var(--sm-font-size);\n text-transform: uppercase;\n }\n}\n\n.header-sort {\n padding-inline-start: 3px;\n padding-block-start: var(--spacing-xs);\n vertical-align: middle;\n}\n\n.new-table-pagination {\n float: inline-end;\n}\n\n.selectable > div {\n margin-inline-start: var(--spacing-md);\n}\n\n.scrollable {\n display: block;\n overflow: auto;\n}\n\n.fixed-header {\n background: white;\n position: sticky;\n inset-block-start: 0;\n}\n\n.tyk-table.has-error,\n.tyk-table__wrapper.has-error {\n border: var(--general-border-width) solid var(--color-danger-base) !important;\n}",":root {\n --tabs-default-content-padding: 25px;\n --tab-button-padding: var(--spacing-sm) 2px 3px 2px;\n --tab-button-margin: 0;\n --tabs-font-familly: var(--font-family-medium);\n --tab-button-color: var(--text-color);\n --tab-active-button-color: var(--text-color);\n --tab-border-color: var(--color-success-base);\n}\n\n.tyk-tabs--default {\n > ul {\n display: flex;\n list-style-type: none;\n margin: 0;\n padding: 0;\n overflow: auto;\n\n li {\n display: flex;\n white-space: nowrap;\n margin-inline-end: var(--tab-button-margin);\n\n &:last-child {\n margin-inline-end: 0;\n }\n\n &.active button,\n button:hover {\n border-block-end-color: var(--tab-border-color);\n color: var(--tab-active-button-color);\n opacity: 1;\n }\n\n button {\n background: none;\n border: none;\n border-block-end: 4px solid transparent;\n color: var(--tab-button-color);\n cursor: pointer;\n font-size: var(--sm-font-size);\n font-family: var(--tabs-font-familly);\n padding: var(--tab-button-padding);\n margin-inline-end: var(--spacing-md);\n transition: all .2s linear;\n opacity: 0.7;\n\n &:focus {\n outline: none;\n }\n }\n }\n }\n}\n\n.tyk-tab__content {\n padding: var(--tabs-default-content-padding);\n}\n",".tyk-toast__container {\n inset-block-end: 0;\n min-inline-size: 300px;\n position: fixed;\n inset-inline-end: var(--spacing-md);\n z-index: 11;\n}\n\n.tyk-toast__message {\n position: relative;\n}\n\n.tyk-toast-message__button {\n color: var(--text-color);\n block-size: var(--spacing-md);\n line-height: 1;\n padding: var(--spacing-xs);\n position: absolute;\n inset-inline-end: var(--spacing-xs);\n inset-block-start: var(--spacing-xs);\n inline-size: var(--spacing-md);\n\n &:hover {\n background: rgba(255 255 255 / 30%);\n color: var(--text-color);\n }\n}\n",":root {\n --tooltip-max-width: 450px;\n}\n\n.tyk-tooltip {\n display: flex;\n align-items: center;\n background-color: var(--color-primary-light);\n border: 2px solid var(--color-primary-base);\n border-radius: var(--general-border-radius);\n max-inline-size: var(--tooltip-max-width);\n padding: var(--spacing-md);\n\n > .tyk-icon:first-child {\n inline-size: 32px;\n block-size: 32px;\n border-radius: 50%;\n color: white;\n background-color: var(--color-default-base-light);\n\n &::before {\n display: flex;\n inline-size: 100%;\n block-size: 100%;\n align-items: center;\n justify-content: center;\n }\n }\n\n > .tyk-icon + .tyk-tooltip__content {\n margin-inline-start: var(--spacing-md);\n }\n\n > .tyk-icon:last-child {\n cursor: pointer;\n }\n}\n\n.tyk-tooltip__content {\n color: var(--color-default-dark);\n word-break: break-word;\n word-wrap: break-word;\n\n + .tyk-icon {\n margin-inline-start: var(--spacing-md);\n }\n}\n",":root {\n --tyk-combobox-pill-background: #F0F0F0;\n --tyk-combobox-pill-color: var(--text-color);\n --tyk-combobox-list-item-hover-color: var(--form-default-color);\n --tyk-combobox-list-item-disabled-color: var(--form-default-color);\n}\n\n.tyk-combobox2 {\n --container-trigger-width: 40px;\n --values-default-height: 38px;\n\n outline: none;\n\n &.disabled {\n .tyk-form-control {\n border: var(--form-control-disabled-border) !important;\n background-color: var(--form-control-disabled-background-color);\n color: var(--form-control-disabled-color);\n cursor: not-allowed;\n }\n\n .tyk-combobox2__current-values .tyk-pill--combobox button {\n cursor: not-allowed;\n }\n\n &:not(.is-expand-mode) .tyk-combobox2__values-container-trigger {\n cursor: not-allowed;\n }\n\n .tyk-combobox2__entry-field {\n background-color: transparent;\n cursor: not-allowed;\n }\n }\n\n .tyk-form-control {\n display: flex;\n flex-direction: row;\n position: relative;\n min-block-size: 40px;\n block-size: auto;\n padding: 0;\n\n &:focus-within {\n outline: none;\n border: var(--form-control-border-focus);\n }\n }\n}\n\n.tyk-combobox2__current-values {\n display: flex;\n flex-grow: 1;\n flex-wrap: wrap;\n padding-block: 2px;\n padding-inline-start: var(--spacing-sm);\n max-inline-size: calc(100% - var(--container-trigger-width));\n\n &.expand-mode {\n max-block-size: 1000px;\n overflow: hidden;\n transition: max-block-size 1s ease;\n }\n\n .tyk-pill--combobox {\n margin-block: 3px;\n background-color: var(--tyk-combobox-pill-background);\n border-radius: var(--spacing-sm);\n color: var(--tyk-combobox-pill-color);\n padding-block: var(--spacing-xs);\n padding-inline: var(--spacing-sm);\n max-inline-size: 100%;\n max-block-size: 26px;\n\n button {\n background: none;\n border: none;\n cursor: pointer;\n inline-size: 23px;\n outline: none;\n\n + span {\n margin-inline-start: 0;\n }\n }\n\n span {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n i {\n margin-inline-end: var(--spacing-xs);\n }\n }\n}\n\n.tyk-combobox2__current-values--collapsed.expand-mode {\n max-block-size: var(--values-default-height);\n transition: max-block-size .2s ease;\n}\n\n.tyk-combobox2__entry-field {\n border: none;\n line-height: 30px;\n\n &:focus,\n &:active {\n border: none;\n outline: none;\n }\n\n &::placeholder {\n color: var(--form-control-placeholder-color);\n font-family: var(--form-control-placeholder-font-family);\n }\n}\n\n.tyk-combobox2__text-value {\n font-family: var(--font-family-medium);\n font-size: var(--sm-font-size);\n padding-block: 9px;\n padding-inline: 5px;\n inline-size: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 1;\n outline: none;\n\n &.overflow-single {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n &.is-placeholder {\n color: var(--form-control-placeholder-color);\n font-family: var(--form-control-placeholder-font-family);\n }\n}\n\n.tyk-combobox2__values-container-trigger {\n position: relative;\n flex-basis: var(--container-trigger-width);\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n outline: none;\n transition: all .2s;\n color: var(--text-color);\n\n .tyk-icon {\n block-size: 14px;\n }\n}\n\n.tyk-combobox2__values-container-trigger--expanded {\n transform: rotate(180deg);\n}\n\n.tyk-form-group--rounded-corners .tyk-combobox2-disabled-overlay {\n border-radius: calc(var(--general-border-radius) - 2px);\n}\n\n.tyk-combobox2__combobox-dropdown {\n display: flex;\n flex-direction: column;\n border: var(--general-border-width) solid var(--form-default-color);\n background-color: white;\n\n &.tyk-form-group--rounded-corners {\n border-radius: var(--general-border-radius);\n z-index: 1081;\n }\n\n .tyk-combobox2__combobox-search {\n background-color: white;\n position: sticky;\n inset-block-start: 0;\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-md);\n\n + .combobox-list {\n border-block-start: 1px solid var(--form-default-color);\n }\n }\n\n .tyk-combobox2__combobox-list {\n max-block-size: 255px;\n\n li {\n display: flex;\n cursor: pointer;\n padding-block: 9px;\n padding-inline: var(--spacing-md);\n transition: all .2s;\n font-family: var(--font-family-medium);\n\n &:hover,\n &.active {\n background-color: var(--tyk-combobox-list-item-hover-color);\n }\n\n &.disabled {\n color: var(--tyk-combobox-list-item-disabled-color);\n background-color: initial;\n }\n\n + li {\n border-block-start: 1px solid var(--form-default-color);\n }\n\n i {\n margin-inline-end: var(--spacing-xs);\n }\n\n .item-name {\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 16px;\n }\n }\n }\n}\n",":root {\n --tyk-checkbox-theme-light-label-color: white;\n --tyk-checkbox-theme-light-label-disabled-color: white;\n --tyk-checkbox-theme-dark-label-color: var(--text-color);\n --tyk-checkbox-theme-dark-label-disabled-color: var(--text-color);\n}\n\n.tyk-checkbox {\n label {\n --label-indent: 20px;\n\n display: flex;\n align-items: flex-start;\n padding-inline-start: var(--label-indent);\n\n input {\n margin-inline-start: calc(-1 * var(--label-indent));\n margin-block-start: 5px;\n }\n }\n}\n\n.tyk-checkbox--theme-light {\n label {\n color: var(--tyk-checkbox-theme-light-label-color);\n }\n\n &.tyk-checkbox--is-disabled {\n label {\n color: var(--tyk-checkbox-theme-light-label-disabled-color);\n }\n }\n}\n\n.tyk-checkbox--is-disabled {\n label, p {\n cursor: not-allowed;\n opacity: 0.5;\n }\n}",".flatpickr-calendar{background:transparent;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;-webkit-animation:none;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;background:#fff;-webkit-box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,0.08);box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,0.08)}.flatpickr-calendar.open,.flatpickr-calendar.inline{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1);animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none !important;box-shadow:none !important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-calendar .hasWeeks .dayContainer,.flatpickr-calendar .hasTime .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:before,.flatpickr-calendar:after{position:absolute;display:block;pointer-events:none;border:solid transparent;content:'';height:0;width:0;left:22px}.flatpickr-calendar.rightMost:before,.flatpickr-calendar.arrowRight:before,.flatpickr-calendar.rightMost:after,.flatpickr-calendar.arrowRight:after{left:auto;right:22px}.flatpickr-calendar.arrowCenter:before,.flatpickr-calendar.arrowCenter:after{left:50%;right:50%}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-months .flatpickr-month{background:transparent;color:rgba(0,0,0,0.9);fill:rgba(0,0,0,0.9);height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:rgba(0,0,0,0.9);fill:rgba(0,0,0,0.9)}.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,.flatpickr-months .flatpickr-next-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-prev-month i,.flatpickr-months .flatpickr-next-month i{position:relative}.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,.flatpickr-months .flatpickr-next-month.flatpickr-prev-month{/*\n /*rtl:begin:ignore*/left:0/*\n /*rtl:end:ignore*/}/*\n /*rtl:begin:ignore*/\n/*\n /*rtl:end:ignore*/\n.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,.flatpickr-months .flatpickr-next-month.flatpickr-next-month{/*\n /*rtl:begin:ignore*/right:0/*\n /*rtl:end:ignore*/}/*\n /*rtl:begin:ignore*/\n/*\n /*rtl:end:ignore*/\n.flatpickr-months .flatpickr-prev-month:hover,.flatpickr-months .flatpickr-next-month:hover{color:#959ea9}.flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-outer-spin-button,.numInputWrapper input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,0.15);-webkit-box-sizing:border-box;box-sizing:border-box}.numInputWrapper span:hover{background:rgba(0,0,0,0.1)}.numInputWrapper span:active{background:rgba(0,0,0,0.2)}.numInputWrapper span:after{display:block;content:\"\";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,0.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,0.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:rgba(0,0,0,0.5)}.numInputWrapper:hover{background:rgba(0,0,0,0.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0 0;line-height:1;height:34px;display:inline-block;text-align:center;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,0.05)}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\\0;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:rgba(0,0,0,0.9)}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:rgba(0,0,0,0.9)}.flatpickr-current-month input.cur-year{background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:initial;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:rgba(0,0,0,0.5);background:transparent;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:transparent;border:none;border-radius:0;box-sizing:border-box;color:inherit;cursor:pointer;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0 0;outline:none;padding:0 0 0 .5ch;position:relative;vertical-align:initial;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:focus,.flatpickr-current-month .flatpickr-monthDropdown-months:active{outline:none}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,0.05)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:none;padding:0}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:transparent;color:rgba(0,0,0,0.54);line-height:1;margin:0;text-align:center;display:block;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0 0}.flatpickr-days{position:relative;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.dayContainer + .dayContainer{-webkit-box-shadow:-1px 0 0 #e6e6e6;box-shadow:-1px 0 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;-webkit-flex-basis:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.today.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day:hover,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover,.flatpickr-day:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.nextMonthDay:focus{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:hover,.flatpickr-day.today:focus{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:#569ff7;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 0 #569ff7}.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange,.flatpickr-day.endRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.notAllowed.nextMonthDay{color:rgba(57,57,57,0.3);background:transparent;border-color:transparent;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:rgba(57,57,57,0.1)}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;-webkit-box-shadow:1px 0 0 #e6e6e6;box-shadow:1px 0 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:rgba(57,57,57,0.3);background:transparent;cursor:default;border:none}.flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-time:after{content:\"\";display:table;clear:both}.flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;width:40%;height:40px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:transparent;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:14px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-time input.flatpickr-hour{font-weight:bold}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-time-separator,.flatpickr-time .flatpickr-am-pm{height:inherit;float:left;line-height:inherit;color:#393939;font-weight:bold;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time input:hover,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time .flatpickr-am-pm:focus{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}","@import 'flatpickr/dist/flatpickr.min.css';\n\n.flatpickr-day.selected,\n.flatpickr-day.startRange,\n.flatpickr-day.endRange,\n.flatpickr-day.selected.inRange,\n.flatpickr-day.startRange.inRange,\n.flatpickr-day.endRange.inRange,\n.flatpickr-day.selected:focus,\n.flatpickr-day.startRange:focus,\n.flatpickr-day.endRange:focus,\n.flatpickr-day.selected:hover,\n.flatpickr-day.startRange:hover,\n.flatpickr-day.endRange:hover,\n.flatpickr-day.selected.prevMonthDay,\n.flatpickr-day.startRange.prevMonthDay,\n.flatpickr-day.endRange.prevMonthDay,\n.flatpickr-day.selected.nextMonthDay,\n.flatpickr-day.startRange.nextMonthDay,\n.flatpickr-day.endRange.nextMonthDay {\n background: var(--color-success-base) !important;\n border-color: var(--color-success-base) !important;\n}",":root {\n --tyk-dropdown-item-background: white;\n --tyk-dropdown-item-background-hover: var(--color-background-light);\n --tyk-dropdown-item-border-color: white;\n --tyk-dropdown-item-text-color: var(--text-color);\n --tyk-dropdown-item-hover-text-color: var(--text-color);\n}\n\n.tyk-dropdown {\n display: inline-block;\n\n + .tyk-button,\n + .tyk-dropdown,\n + .tyk-toggle {\n margin-inline-start: var(--spacing-sm)\n }\n\n label {\n display: block;\n }\n\n &.theme-list .tyk-button {\n background: white;\n border: var(--general-border-width) solid var(--color-default-base);\n border-radius: var(--general-border-radius);\n color: var(--text-color);\n\n &:hover,\n &:active,\n &:active:focus,\n &:focus {\n background: white;\n border-color: var(--color-background-dark);\n color: var(--text-color);\n }\n }\n}\n\n.tyk-dropdown--block {\n inset-inline: var(--spacing-md);\n}\n\n.tyk-dropdown--relative {\n inset-inline: auto;\n}\n\n.tyk-dropdown--custom {\n padding-block: var(--spacing-md);\n padding-inline: 25px;\n}\n\n.tyk-dropdown__trigger {\n position: relative;\n}\n\n.tyk-dropdown-menu {\n background: var(--tyk-dropdown-item-background);\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n filter: drop-shadow(1px 2px 1px rgba(0 0 0 / 10%));\n list-style-type: none;\n margin-inline: 0;\n margin-block: 3px 0;\n overflow: hidden;\n padding: 0;\n z-index: 1081;\n\n &.tyk-dropdown--scrollable {\n overflow: auto;\n }\n\n .tyk-panel {\n margin: 0;\n }\n\n &.opened {\n display: flex;\n flex-direction: column;\n position: absolute;\n }\n\n > li {\n background: var(--tyk-dropdown-item-background);\n border-block-end: 1px solid var(--tyk-dropdown-item-border-color);\n display: flex;\n position: relative;\n z-index: 7;\n\n &:last-child {\n border: none;\n }\n\n i {\n position: absolute;\n inset-inline-start: 7px;\n inset-block-start: 9px;\n }\n }\n}\n\n.tyk-dropdown-menu > li > a {\n cursor: pointer;\n color: var(--tyk-dropdown-item-text-color);\n display: flex;\n font-size: 12px;\n padding-block: 7px;\n padding-inline: 24px;\n text-transform: uppercase;\n text-decoration: none;\n inline-size: 100%;\n\n &:hover {\n color: var(--tyk-dropdown-item-hover-text-color);\n background-color: var(--tyk-dropdown-item-background-hover);\n text-decoration: none;\n }\n\n .badge {\n background: var(--text-color);\n color: white;\n font-size: var(--spacing-sm);\n margin-block-start: -4px;\n margin-inline-start: 6px;\n }\n}\n\n.tyk-dropdown--relative.opened {\n position: relative;\n}\n",".dropdown__menu {\n .tyk-list {\n background: white;\n max-block-size: none;\n\n li {\n padding: 0;\n\n &:hover {\n background: var(--primary-light);\n }\n\n a {\n cursor: pointer;\n display: block;\n padding-block: 10px;\n padding-inline: 20px;\n text-decoration: none;\n }\n }\n }\n}",".tyk-editable-list__submit-btn {\n white-space: nowrap;\n}\n\n.tyk-editable-list__form {\n align-items: center;\n display: flex;\n\n .tyk-form-group {\n margin-block-end: 0;\n }\n\n span.inline {\n margin-block-start: 0;\n }\n\n > span {\n margin-inline-start: var(--spacing-base);\n\n &.inline-with-label {\n align-self: flex-end;\n }\n }\n}\n\n.tyk-editable-list__form--sticked {\n margin-inline-start: 0;\n\n button {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n border-start-end-radius: 3px;\n border-end-end-radius: 3px;\n padding-block: var(--spacing-sm) 11px;\n padding-inline: var(--spacing-base);\n }\n}\n\n.tyk-editable-list__header {\n padding-block: var(--spacing-base);\n font-size: 11px;\n text-transform: uppercase;\n background-color: white;\n border-start-start-radius: var(--general-border-radius);\n border-start-end-radius: var(--general-border-radius);\n border: var(--general-border-width) solid var(--color-default-light);\n border-block-end: 1px solid var(--color-default-light) !important;\n color: var(--text-color) !important;\n font-family: var(--font-family-bold);\n margin-block-start: var(--spacing-sm);\n\n & + .tyk-editable-list-items.table {\n border-block-start: none;\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n\n .tyk-row {\n margin: 0;\n }\n}\n\n.tyk-editable-list-items {\n overflow: hidden;\n list-style: none;\n padding-block: var(--spacing-md) 0;\n padding-inline: 0;\n\n .edit-mode-wrapper.table button {\n margin-block-start: 23px;\n }\n\n .tyk-row {\n margin: 0;\n }\n\n button[disabled] {\n cursor: not-allowed;\n }\n\n &.tyk-editable-list-items--inline {\n align-items: center;\n color: var(--text-color);\n display: flex;\n flex-wrap: wrap;\n }\n\n li {\n border-block-start: 1px solid var(--color-default-light);\n transition: all .2s linear;\n\n &.tyk-editable-list-item--inline {\n background-color: var(--color-default-light);\n border-radius: 25px;\n border: none;\n color: white;\n float: inline-start;\n font-family: var(--font-family-medium);\n margin-block-end: var(--spacing-sm);\n margin-inline-end: var(--spacing-base);\n padding-block: 0;\n padding-inline: var(--spacing-base);\n white-space: nowrap;\n\n .tyk-editable-list-item__text {\n color: var(--text-color);\n padding-block: var(--spacing-xs);\n padding-inline: 0;\n }\n\n .tyk-editable-list-action__button.on-edit {\n margin-block-start: 0;\n }\n }\n\n &:first-child {\n border-block-start: none;\n }\n\n .tyk-editable-list-item__text {\n display: flex;\n padding-block: var(--spacing-sm);\n padding-inline: 0;\n\n > span {\n flex-grow: 1;\n }\n\n > div:first-child {\n flex-grow: 1;\n\n .error-message {\n margin: 0;\n }\n }\n }\n\n .tyk-editable-list-items {\n overflow: hidden;\n padding-block-end: var(--spacing-sm);\n }\n\n .tyk-editable-list {\n border-block-start: var(--spacing-xs) solid var(--background-dark);\n background: var(--background-light);\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-base);\n }\n }\n\n .tyk-editable-list-item__text {\n display: block;\n word-wrap: break-word;\n word-break:break-all;\n }\n\n .tyk-editable-list-action__button {\n border: none;\n background: transparent;\n\n &.on-edit {\n margin-inline-start: var(--spacing-sm);\n }\n }\n\n .tyk-editable-list-item-controls {\n flex-grow: 0;\n text-align: end;\n }\n}\n\n.tyk-editable-list-item__controls {\n text-align: end;\n}\n\n.tyk-editable-list-items.table {\n background-color: white;\n border-radius: var(--general-border-radius);\n border: var(--general-border-width) solid var(--color-default-light);\n padding: 0 !important;\n\n li {\n border-color: var(--color-default-light);\n\n &:hover {\n background: var(--color-background-light);\n }\n }\n\n .tyk-editable-list-item__text {\n background: transparent;\n }\n\n .tyk-editable-list-action__button {\n border-radius: 6px;\n cursor: pointer;\n margin-inline-end: var(--spacing-sm);\n }\n}\n","/* stylelint-disable number-max-precision */\n\n.editable-list__header {\n align-items: center;\n display: flex;\n margin-block-end: 10px;\n\n .tyk-button {\n margin-inline-start: auto;\n }\n}\n\n.editable-list__wrapper.has-error .editable-list__list{\n border: var(--general-border-width) solid var(--color-danger-base);\n}\n\n.editable-list__list {\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n display: flex;\n flex-direction: column-reverse;\n}\n\n.editable-list__item {\n border-block-end: 1px solid var(--color-default-light);\n display: flex;\n flex-wrap: nowrap;\n inline-size: 100%;\n\n &:first-child {\n border-block-end: none;\n }\n}\n\n.editable-list__item-header {\n border-block-end: 1px solid var(--color-default-light);\n color: var(--text-color);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-bold);\n text-transform: uppercase;\n\n .editable-list__item-cell {\n padding: 10px;\n }\n}\n\n.editable-list__item-cell {\n border-inline-start: 1px solid var(--color-default-light);\n overflow: hidden;\n padding-block: 0;\n padding-inline: 10px;\n\n .tyk-form-control--readonly {\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: break-all;\n }\n\n &:first-child {\n border-inline-start: none;\n padding-inline-start: 15px;\n }\n\n &:last-child {\n padding-inline-end: 15px;\n }\n\n .tyk-form-group {\n margin-block: 10px;\n margin-inline: 0;\n inline-size: 100%;\n }\n}\n\n.editable-list__item--size-1 {\n display: flex;\n flex-grow: 2;\n inline-size: 8.3333333333%;\n}\n\n.editable-list__item--size-2 {\n display: flex;\n flex-grow: 3;\n inline-size: 16.6666666667%;\n}\n\n.editable-list__item--size-3 {\n display: flex;\n flex-grow: 4;\n inline-size: 25%;\n}\n\n.editable-list__item--size-4 {\n display: flex;\n flex-grow: 5;\n inline-size: 33.3333333333%;\n}\n\n.editable-list__item--size-5 {\n display: flex;\n flex-grow: 6;\n inline-size: 41.6666666667%;\n}\n\n.editable-list__item--size-6 {\n display: flex;\n flex-grow: 7;\n inline-size: 50%;\n}\n\n.editable-list__item--size-7 {\n display: flex;\n flex-grow: 8;\n inline-size: 58.3333333333%;\n}\n\n.editable-list__item--size-8 {\n display: flex;\n flex-grow: 9;\n inline-size: 66.6666666667%;\n}\n\n.editable-list__item--size-9 {\n display: flex;\n flex-grow: 10;\n inline-size: 75%;\n}\n\n.editable-list__item--size-10 {\n display: flex;\n flex-grow: 11;\n inline-size: 83.3333333333%;\n}\n\n.editable-list__item--size-11 {\n display: flex;\n flex-grow: 12;\n inline-size: 91.6666666667%;\n}\n\n.editable-list__item--size-12 {\n display: flex;\n flex-grow: 13;\n inline-size: 100%;\n}\n\n.editable-list__item--size-fit {\n inline-size: fit-content;\n}\n\n.editable-list__item-action {\n align-items: flex-start;\n display: flex;\n justify-content: center;\n inline-size: 100px;\n\n .tyk-button {\n margin-block-start: 20px;\n }\n}\n\n.editable-list__item-action--read-only {\n color: var(--color-default-light);\n align-items: center;\n\n .tyk-button {\n margin-block-start: 0;\n }\n}",".tyk-file-input__wrapper {\n position: relative;\n\n > input {\n padding-block: 6px;\n padding-inline: var(--spacing-md);\n }\n\n > button {\n background: none;\n border: none;\n cursor: pointer;\n position: absolute;\n inset-inline-end: var(--spacing-base);\n inset-block-start: 9px;\n }\n}\n",".tyk-multiselect {\n align-items: flex-start;\n border-radius: var(--general-border-radius);\n flex-wrap: wrap;\n display: flex;\n margin-block-end: var(--spacing-md);\n inline-size: 100%;\n\n /* FALLBACK FOR ANGULAR COMPONENTS */\n .input-group .input-group-addon + .form-control {\n border-width: 1px !important;\n border-inline-start: none !important;\n border-start-start-radius: 0 !important;\n border-start-end-radius: 0 !important;\n border-end-start-radius: 0 !important;\n border-end-end-radius: 0 !important;\n }\n\n .input-group .input-group-addon {\n background: transparent !important;\n border-width: 1px !important;\n border-inline-end: 0 !important;\n border-start-start-radius: 0 !important;\n border-start-end-radius: 0 !important;\n border-end-start-radius: 0 !important;\n border-end-end-radius: 0 !important;\n }\n\n /* END FALLBACK FOR ANGULAR COMPONENTS */\n\n &.has-error {\n border: var(--general-border-width) solid var(--color-danger-base);\n }\n\n .tyk-form-group {\n margin: 0;\n }\n\n .tyk-multiselect-item__controls {\n display: flex;\n margin-inline-start: auto;\n flex-wrap: nowrap;\n\n .tyk-button {\n color: var(--text-color);\n margin-inline-start: var(--spacing-xs);\n\n &:last-child {\n margin-inline-start: 0;\n }\n }\n }\n}\n\n.tyk-multiselect__header {\n background-color: var(--color-default-base);\n border-start-start-radius: var(--general-border-radius);\n border-start-end-radius: var(--general-border-radius);\n color: white;\n display: flex;\n inline-size: 100%;\n\n > div {\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-base);\n inline-size: 50%;\n }\n}\n\n.tyk-multiselect__panel-wrapper {\n border: var(--form-control-border);\n border-block-start: none;\n border-end-start-radius: var(--general-border-radius);\n border-end-end-radius: var(--general-border-radius);\n display: flex;\n flex: 1;\n block-size: 265px;\n inline-size: 100%;\n}\n\n.tyk-multiselect__panel {\n display: flex;\n flex-direction: column;\n margin-block: 0;\n margin-inline: -1px 0;\n position: relative;\n inline-size: calc(50% + 1px);\n\n &:last-child {\n border-inline-start: var(--form-control-border);\n\n .tyk-form-group {\n margin-inline-start: -1px;\n inline-size: calc(100% + 2px);\n }\n }\n\n .tyk-message {\n margin-block: var(--spacing-md) 0;\n margin-inline: var(--spacing-md);\n }\n}\n\n.tyk-multiselect__list {\n list-style-type: none;\n margin: 0;\n padding: 0;\n\n > li {\n border-block-end: var(--form-control-border);\n display: flex;\n flex-direction: column;\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-base);\n\n > div {\n align-items: start;\n display: flex;\n inline-size: 100%;\n }\n\n .loading {\n justify-content: center;\n }\n\n &:last-child {\n border-block-end: none;\n }\n }\n}\n\n.tyk-multiselect__list--scroll {\n block-size: 100%;\n overflow-y: auto;\n}\n\n.tyk-multiselect-item__name {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n",":root {\n --pagination-border-radius: var(--general-border-radius);\n --pagination-button-padding: var(--spacing-sm) var(--spacing-base);\n}\n\n.tyk-pagination {\n display: flex;\n list-style-type: none;\n margin-block: var(--spacing-sm);\n margin-inline: 0;\n padding: 0;\n\n li {\n align-items: center;\n display: flex;\n }\n\n li:first-child button {\n border-start-start-radius: var(--pagination-border-radius);\n border-end-start-radius: var(--pagination-border-radius);\n }\n\n li:last-child button {\n border-start-end-radius: var(--pagination-border-radius);\n border-end-end-radius: var(--pagination-border-radius);\n }\n\n span {\n margin-block: 0;\n margin-inline: var(--spacing-sm);\n }\n\n button {\n background: white;\n border: none;\n font-size: var(--sm-font-size);\n font-family: var(--font-family-bold);\n cursor: pointer;\n color: var(--color-default-base);\n margin-inline-start: -1px;\n padding: var(--pagination-button-padding);\n\n &:hover {\n background-color: var(--color-success-light);\n }\n }\n\n .active button {\n background-color: var(--color-success-base);\n color: white;\n }\n}\n",":root {\n --radio-description-text-padding: 0 0 0 20px;\n}\n\n.tyk-radio {\n label {\n align-items: center;\n display: flex;\n }\n}\n\n.tyk-radio--is-disabled {\n label, p {\n cursor: not-allowed;\n opacity: 0.5;\n }\n}\n\n.tyk-radio__description-text {\n padding: var(--radio-description-text-padding);\n}",".tyk-select {\n background: transparent url('./images/arrow_down.svg') no-repeat calc(100% - 15px) center;\n background-size: var(--spacing-base) var(--spacing-base);\n}",".tyk-selectable-list {\n margin-block-end: var(--spacing-md);\n inline-size: 100%;\n\n li:not(.tyk-selectable-list__no-items-message) {\n font-family: var(--font-family-medium);\n padding: 0;\n\n .tyk-message {\n margin-block-end: 0;\n }\n\n label {\n font-family: var(--font-family-medium);\n margin: 0;\n }\n\n > label {\n align-items: center;\n cursor: pointer;\n display: flex;\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-md);\n\n input[type=\"checkbox\"] {\n margin-inline-start: auto;\n }\n }\n }\n}\n\n.tyk-selectable-list__item--with-icon {\n & input[type=\"checkbox\"] {\n visibility: hidden;\n }\n}\n","textarea.tyk-form-control {\n block-size: auto;\n}\n",":root {\n --toggle-font-family: var(--font-family-bold);\n --toggle-list-background-color: var(--color-background-light);\n --toggle-list-text-color: white;\n --toggle-list-background-color-on-dark: white;\n --toggle-list-text-color-on-dark: var(--text-color);\n --toggle-top: 4px;\n --toggle-bottom: 4px;\n --toggle-label-font-size: var(--sm-font-size);\n --toggle-label-font-family: var(--font-family-medium);\n --toggle-label-color: var(--label-color);\n --toggle-padding: 0;\n}\n\n.tyk-toggle {\n display: inline-flex;\n flex-wrap: wrap;\n font-family: var(--toggle-font-family);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n white-space: nowrap;\n\n &.block {\n margin-block-end: var(--spacing-md);\n inline-size: 100%;\n\n + .tyk-toggle {\n margin-inline-start: 0;\n }\n }\n\n &.inline-label {\n align-items: center;\n flex-wrap: nowrap;\n }\n\n + .tyk-button,\n + .tyk-dropdown,\n + .tyk-toggle {\n margin-inline-start: var(--spacing-sm)\n }\n}\n\n.tyk-toggle__list--has-error {\n border: var(--error-border);\n}\n\n.tyk-toggle .tyk-toggle__label {\n display: block;\n font-family: var(--toggle-label-font-family);\n font-size: var(--toggle-label-font-size);\n padding: var(--toggle-padding);\n inline-size: 100%;\n color: var(--toggle-label-color);\n}\n\n.tyk-toggle.inline-label .tyk-toggle__label {\n margin-inline-end: var(--spacing-sm);\n inline-size: auto;\n}\n\n.tyk-toggle--disabled-true {\n cursor: not-allowed;\n opacity: 0.7;\n}\n\n.tyk-toggle--column {\n .tyk-toggle__list--separated {\n display: flex;\n flex-direction: column;\n margin-inline-end: var(--spacing-md);\n\n .tyk-toggle__item {\n background-color: var(--toggle-list-background-color);\n margin-inline-end: auto;\n }\n }\n}\n\n.tyk-toggle__list {\n background: var(--toggle-list-background-color);\n border-radius: 25px;\n display: flex;\n list-style-type: none;\n margin: 0;\n padding: 0;\n position: relative;\n}\n\n.tyk-toggle__list--separated {\n background: transparent;\n flex-wrap: wrap;\n}\n\n.tyk-toggle--on-dark .tyk-toggle__list {\n background: var(--toggle-list-background-color-on-dark);\n}\n\n.tyk-toggle--default .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--default .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--default .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--button-default-color);\n color: white;\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--button-default-color);\n color: white;\n }\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle--primary .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--primary .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--primary .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--color-primary-base);\n color: white;\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--color-primary-base);\n color: white;\n }\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle--success .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--success .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--success .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--color-success-dark);\n color: white;\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--color-success-dark);\n color: white;\n }\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle--danger .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--danger .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--danger .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--color-danger-base);\n color: white;\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--color-danger-base);\n color: white;\n }\n}\n\n.tyk-toggle--warning .tyk-toggle__item--active span {\n color: var(--text-color);\n}\n\n.tyk-toggle--warning .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--warning .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--color-warning-base);\n color: var(--text-color);\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--color-warning-base);\n color: var(--text-color);\n }\n}\n\n\n.tyk-toggle--primary-gradient .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--primary-gradient .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--primary-gradient .tyk-toggle__list--separated .tyk-toggle__item--active {\n border-image: linear-gradient(to right, var(--color-primary-base), var(--color-primary-dark), var(--color-primary-base)) 0 round;\n background: transparent linear-gradient(to right, var(--color-primary-base), var(--color-primary-dark), var(--color-primary-base));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: white;\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle--success-gradient .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--success-gradient .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--success-gradient .tyk-toggle__list--separated .tyk-toggle__item--active {\n border-image: linear-gradient(to right, var(--color-success-base), var(--color-success-dark), var(--color-success-base)) 0 round;\n background: transparent linear-gradient(to right, var(--color-success-base), var(--color-success-dark), var(--color-success-base));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: white;\n\n span {\n color: white;\n }\n}\n\n\n.tyk-toggle--danger-gradient .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--danger-gradient .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--danger-gradient .tyk-toggle__list--separated .tyk-toggle__item--active {\n border-image: linear-gradient(to right, var(--color-danger-base), var(--color-danger-dark), var(--color-danger-base)) 0 round;\n background: transparent linear-gradient(to right, var(--color-danger-base), var(--color-danger-dark), var(--color-danger-base));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: white;\n\n span {\n color: white;\n }\n}\n\n\n.tyk-toggle--warning-gradient .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--warning-gradient .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--warning-gradient .tyk-toggle__list--separated .tyk-toggle__item--active {\n border-image: linear-gradient(to right, var(--color-warning-light), var(--color-warning-base), var(--color-warning-light)) 0 round;\n background: transparent linear-gradient(to right, var(--color-warning-light), var(--color-warning-base), var(--color-warning-light));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: var(--text-color);\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle__item {\n color: var(--toggle-list-text-color);\n text-transform: uppercase;\n z-index: 2;\n border: 2px solid transparent;\n\n &:first-child {\n border-start-start-radius: 25px;\n border-end-start-radius: 25px;\n }\n\n &:last-child {\n border-start-end-radius: 25px;\n border-end-end-radius: 25px;\n }\n\n .tyk-toggle__list--separated & {\n border-radius: 25px;\n margin-block: var(--spacing-xs);\n margin-inline-end: var(--spacing-sm);\n\n &:last-child {\n margin-inline-end: 0;\n }\n }\n\n input {\n display: none;\n }\n\n label {\n cursor: pointer;\n font-family: var(--toggle-font-family);\n position: relative;\n margin: 0;\n transition: all .2s ease;\n\n .tyk-toggle__list--single & {\n padding-inline-start: 45px;\n }\n }\n}\n\n.tyk-toggle__list--single .tyk-toggle__item--active {\n label {\n padding-inline-start: 25px;\n padding-inline-end: 45px;\n\n .tyk-toggle__item-notch {\n inset-inline-start: calc(100% - 35px);\n }\n }\n}\n\n.tyk-toggle--on-dark .tyk-toggle__item:not(.tyk-toggle__item--active) {\n color: var(--toggle-list-text-color-on-dark);\n}\n\n.tyk-toggle--on-dark .tyk-toggle__item-notch--single {\n background: var(--color-background-light);\n}\n\n.tyk-toggle--sm label {\n padding-block: calc(var(--padding-y-button-sm) + 2px);\n padding-inline: calc(var(--padding-x-button-sm) + 2px);\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n border-radius: var(--button-border-radius);\n}\n\n.tyk-toggle--sm .tyk-toggle__list--single label {\n padding-inline-start: 35px;\n}\n\n.tyk-toggle--sm .tyk-toggle__list--single .tyk-toggle__item--active label {\n padding-inline-start: 17px;\n padding-inline-end: 35px;\n\n .tyk-toggle__item-notch {\n inset-inline-start: calc(100% - 27px);\n }\n}\n\n.tyk-toggle--md label {\n padding-block: calc(var(--padding-y-button-md) + 2px);\n padding-inline: calc(var(--padding-x-button-md) + 2px);\n font-size: var(--sm-font-size);\n line-height: var(--line-height-button-sm);\n border-radius: var(--button-border-radius);\n}\n\n.tyk-toggle--lg label {\n padding-block: calc(var(--padding-y-button-lg) + 2px);\n padding-inline: calc(var(--padding-x-button-lg) + 2px);\n font-size: var(--sm-font-size);\n line-height: var(--line-height-button-sm);\n border-radius: var(--button-border-radius);\n}\n\n.tyk-toggle--lg .tyk-toggle__list--single label {\n padding-inline-start: 45px;\n}\n\n.tyk-toggle--lg .tyk-toggle__list--single .tyk-toggle__item--active label {\n padding-inline-start: 25px;\n padding-inline-end: 45px;\n\n .tyk-toggle__item-notch {\n inset-inline-start: calc(100% - 43px);\n }\n}\n\n.tyk-toggle__item-notch {\n border-radius: 25px;\n inset-block: 2px;\n position: absolute;\n transition: all .2s ease;\n}\n\n.tyk-toggle__item-notch--single {\n background: white;\n inset-inline-start: 2px;\n inline-size: 32px;\n}\n\n.tyk-toggle--sm .tyk-toggle__item-notch--single {\n inline-size: 24px;\n}\n\n.tyk-toggle--lg .tyk-toggle__item-notch--single {\n inline-size: 40px;\n}\n\n.tyk-toggle__notch {\n border-radius: 25px;\n inset-inline-start: 0;\n position: absolute;\n inset-block-start: var(--toggle-top);\n inset-block-end: var(--toggle-bottom);\n transition: all .2s ease;\n inline-size: 100px;\n z-index: 1;\n}\n\n.tyk-toggle--default .tyk-toggle__notch {\n --toggle-notch-background: var(--button-default-color);\n --toggle-notch-border: transparent;\n --toggle-notch-color: white;\n --toggle-notch-hover-background: var(--button-default-color);\n --toggle-notch-hover-color: white;\n}\n\n.tyk-toggle--primary .tyk-toggle__notch {\n --toggle-notch-background: var(--primary-base);\n --toggle-notch-border: transparent;\n --toggle-notch-color: white;\n --toggle-notch-hover-background: var(--primary-base);\n --toggle-notch-hover-color: white;\n}\n\n.tyk-toggle--success .tyk-toggle__notch {\n --toggle-notch-background: var(--success-base);\n --toggle-notch-border: transparent;\n --toggle-notch-color: white;\n --toggle-notch-hover-background: var(--success-base);\n --toggle-notch-hover-color: white;\n}\n\n.tyk-toggle--danger .tyk-toggle__notch {\n --toggle-notch-background: var(--color-danger-base);\n --toggle-notch-border: transparent;\n --toggle-notch-color: white;\n --toggle-notch-hover-background: var(--color-danger-base);\n --toggle-notch-hover-color: white;\n}\n\n.tyk-toggle--warning .tyk-toggle__notch {\n --toggle-notch-background: var(--color-warning-base);\n --toggle-notch-border: transparent;\n --toggle-notch-color: var(--text-color);\n --toggle-notch-hover-background: var(--color-warning-base);\n --toggle-notch-hover-color: var(--text-color);\n}\n\n.tyk-toggle--default .tyk-toggle__notch,\n.tyk-toggle--primary .tyk-toggle__notch,\n.tyk-toggle--success .tyk-toggle__notch,\n.tyk-toggle--danger .tyk-toggle__notch,\n.tyk-toggle--warning .tyk-toggle__notch {\n background-color: var(--toggle-notch-background);\n color: var(--toggle-notch-color);\n border: var(--general-border-width) solid var(--toggle-notch-border);\n\n &:hover {\n background-color: var(--toggle-notch-hover-background);\n color: var(--toggle-notch-hover-color);\n }\n}\n\n.tyk-toggle--primary-gradient .tyk-toggle__notch {\n --toggle-notch-gradient-left-color: var(--color-primary-base);\n --toggle-notch-gradient-right-color: var(--color-primary-dark);\n --toggle-notch-gradient-color: white;\n}\n\n.tyk-toggle--success-gradient .tyk-toggle__notch {\n --toggle-notch-gradient-left-color: var(--color-success-base);\n --toggle-notch-gradient-right-color: var(--color-success-dark);\n --toggle-notch-gradient-color: white;\n}\n\n.tyk-toggle--danger-gradient .tyk-toggle__notch {\n --toggle-notch-gradient-left-color: var(--color-danger-base);\n --toggle-notch-gradient-right-color: var(--color-danger-dark);\n --toggle-notch-gradient-color: white;\n}\n\n.tyk-toggle--warning-gradient .tyk-toggle__notch {\n --toggle-notch-gradient-left-color: var(--color-warning-light);\n --toggle-notch-gradient-right-color: var(--color-warning-base);\n --toggle-notch-gradient-color: var(--text-color);\n}\n\n.tyk-toggle--primary-gradient .tyk-toggle__notch,\n.tyk-toggle--success-gradient .tyk-toggle__notch,\n.tyk-toggle--danger-gradient .tyk-toggle__notch,\n.tyk-toggle--warning-gradient .tyk-toggle__notch {\n border-image: linear-gradient(to right, var(--toggle-notch-gradient-left-color), var(--toggle-notch-gradient-right-color), var(--toggle-notch-gradient-left-color)) 0 round;\n background: transparent linear-gradient(to right, var(--toggle-notch-gradient-left-color), var(--toggle-notch-gradient-right-color), var(--toggle-notch-gradient-left-color));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: var(--toggle-notch-gradient-color);\n}\n\n.empty-toggle {\n padding: 1px;\n}","* {\n box-sizing: border-box;\n}\n\nbody {\n background-color: var(--color-background-base);\n color: var(--text-color);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-regular);\n}\n\n.tyk-main-wrapper {\n display: flex;\n flex-wrap: nowrap;\n}\n\n.tyk-main-content-wrapper {\n flex: 1;\n}\n\n.well {\n background: transparent;\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n box-shadow: none;\n\n &.has-error {\n border-color: var(--color-danger-base);\n }\n}\n",".title-medium {\n font-family: var(--font-family-medium);\n color: var(--label-color);\n font-size: var(--title-medium-font-size);\n}",".right-align {\n text-align: end !important;\n}\n\n.left-align {\n text-align: start !important;\n}\n\n.center-align {\n text-align: center !important;\n}\n\n.left {\n float: inline-start !important;\n}\n\n.right {\n float: inline-end !important;\n}\n\n.hide {\n display: none !important;\n}\n\n.no-margin {\n margin: 0 !important;\n}\n\n.no-margin-bottom {\n margin-block-end: 0 !important;\n}\n\n.no-margin-top {\n margin-block-start: 0 !important;\n}\n\n.no-margin-right {\n margin-inline-end: 0 !important;\n}\n\n.no-margin-left {\n margin-inline-start: 0 !important;\n}\n\n.disabled-section {\n color: var(--color-default-light);\n}\n\n.top-buffer-large {\n margin-block-start: var(--top-buffer-large) !important;\n}\n\n.top-buffer-small {\n margin-block-start: var(--top-buffer-small) !important;\n}\n\n.top-buffer-medium {\n margin-block-start: var(--top-buffer-medium) !important;\n}\n\n.bottom-buffer-large {\n margin-block-end: var(--bottom-buffer-large) !important;\n}\n\n.bottom-buffer-small {\n margin-block-end: var(--bottom-buffer-small) !important;\n}\n\n.bottom-buffer-medium {\n margin-block-end: var(--bottom-buffer-medium) !important;\n}\n\n.right-buffer-large {\n margin-inline-end: var(--right-buffer-large) !important;\n}\n\n.right-buffer-small {\n margin-inline-end: var(--right-buffer-small) !important;\n}\n\n.right-buffer-medium {\n margin-inline-end: var(--right-buffer-medium) !important;\n}\n\n.left-buffer-large {\n margin-inline-start: var(--left-buffer-large) !important;\n}\n\n.left-buffer-small {\n margin-inline-start: var(--left-buffer-small) !important;\n}\n\n.left-buffer-medium {\n margin-inline-start: var(--left-buffer-medium) !important;\n}\n\n.word-wrap {\n word-wrap: break-word;\n word-break: break-all;\n}\n\n.clear-left {\n clear: inline-start;\n}\n\n.flex-container {\n display: flex;\n}\n\n.vertical-center-align {\n align-items: center;\n}\n\n\n.right-align-controls {\n align-items: center;\n display: flex;\n margin-inline-start: auto;\n}\n\n.inline-label {\n margin-inline-end: 15px;\n}\n\n.nowrap {\n white-space: nowrap;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"tyk-ui.css","mappings":"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,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,4BAA6B,CAC7B,iCACF,CAEA,uBACE,wBACF,CACF,CAEA,6CACE,eACE,gBAA2B,CAC3B,qBACF,CAEA,sBACE,qBACF,CAEA,eACE,gCAAsC,CACtC,qCACF,CAEA,sBACE,iCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,4BAA6B,CAC7B,iCACF,CAEA,uBACE,wBACF,CACF,CAEA,2CACE,eACE,gBAA2B,CAC3B,qBACF,CAEA,sBACE,qBACF,CAEA,eACE,gCAAsC,CACtC,qCACF,CAEA,sBACE,iCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,4BAA6B,CAC7B,iCACF,CAEA,uBACE,wBACF,CACF,CAEA,mCACE,eACE,gBAA2B,CAC3B,qBACF,CAEA,sBACE,qBACF,CAEA,eACE,gCAAsC,CACtC,qCACF,CAEA,sBACE,iCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,4BAA6B,CAC7B,iCACF,CAEA,uBACE,wBACF,CACF,CC1iBA,WACE,sBAAuB,CAIvB,iBAAkB,CADlB,eAAmB,CAFnB,qGAIF,CAEA,WACE,uBAAwB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A,wBACE,aACF,CAEA,yBACE,aACF,CAEA,sBACE,aACF,CAEA,8BACE,aACF,CAEA,qBACE,aACF,CAEA,qBACE,aACF,CAEA,qBACE,aACF,CAEA,oBACE,aACF,CAEA,qBACE,aACF,CAEA,qBACE,aACF,CAEA,qBACE,aACF,CAEA,mBACE,aACF,CAEA,yBACE,aACF,CAEA,mBACE,aACF,CAEA,uBACE,aACF,CAEA,sBACE,aACF,CAEA,0BACE,aACF,CAEA,oBACE,aACF,CAEA,wBACE,aACF,CAEA,oBACE,aACF,CAEA,mBACE,aACF,CAEA,qBACE,aACF,CAEA,uBACE,aACF,CAEA,oBACE,aACF,CAEA,mBACE,aACF,CAEA,sBACE,aACF,CAEA,mBACE,aACF,CAEA,mBACE,aACF,CAEA,oBACE,aACF,CAEA,oBACE,aACF,CAEA,4BACE,aACF,CAEA,mBACE,aACF,CAEA,sBACE,aACF,CAEA,qBACE,aACF,CAEA,uBACE,aACF,CAEA,sBACE,aACF,CAEA,gBACE,aACF,CAEA,sBACE,aACF,CAEA,yBACE,eACF,CAEA,8BACE,eACF,CAEA,mBACE,aACF,CCjLA,kBAIE,2BAA4B,CAF5B,uCAAwC,CACxC,uCAAwC,CAFxC,8CAIF,CAEA,MAIE,wBAAyB,CAHzB,oBAAqB,CAErB,oBAAqB,CADrB,oBAGF,CAEA,GACE,8BAA+B,CAC/B,kCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,QAIE,sCAAuC,CAFvC,6BAA8B,CAC9B,iCAAkC,CAGlC,EACE,6BAA8B,CAC9B,yBACF,CACF,CAEA,OACE,mCACF,CAEA,mBAEE,uBAAwB,CADxB,cAAe,CAEf,sCAAuC,CAEvC,aACE,mCACF,CAEA,GACE,uBACF,CAEA,EACE,aACF,CACF,CAEA,qBACE,sCACF,CAEA,oBACE,qCACF,CAEA,kBACE,mCACF,CAEA,6BACE,+CACF,CAEA,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B,CAG7B,uBAAwB,CADxB,yBAA0B,CAJ1B,uKAA2K,CAM3K,wCACF,CAEA,cACE,WACF,CC3fA,EACE,qBACF,CAEA,KACE,6CAA8C,CAC9C,uBAAwB,CAGxB,sCAAuC,CAFvC,6BAA8B,CAC9B,iCAEF,CAEA,kBACE,YAAa,CACb,gBACF,CAEA,0BACE,MACF,CAEA,MACE,sBAAuB,CACvB,mEAAoE,CACpE,0CAA2C,CAC3C,eAAgB,CAEhB,YACE,qCACF,CACF,CC9BA,cAEE,wBAAyB,CADzB,qCAAsC,CAEtC,uCACF,CCJA,aACE,wBACF,CAEA,YACE,0BACF,CAEA,cACE,2BACF,CAEA,MACE,4BACF,CAEA,OACE,0BACF,CAEA,MACE,sBACF,CAEA,WACE,kBACF,CAEA,kBACE,4BACF,CAEA,eACE,8BACF,CAEA,iBACE,6BACF,CAEA,gBACE,+BACF,CAEA,kBACE,gCACF,CAEA,kBACE,oDACF,CAEA,kBACE,oDACF,CAEA,mBACE,qDACF,CAEA,qBACE,qDACF,CAEA,qBACE,qDACF,CAEA,sBACE,sDACF,CAEA,oBACE,qDACF,CAEA,oBACE,qDACF,CAEA,qBACE,sDACF,CAEA,mBACE,sDACF,CAEA,mBACE,sDACF,CAEA,oBACE,uDACF,CAEA,WACE,oBAAqB,CACrB,oBACF,CAEA,YACE,kBACF,CAEA,gBACE,YACF,CAEA,uBACE,kBACF,CAGA,sBACE,kBAAmB,CACnB,YAAa,CACb,wBACF,CAEA,cACE,sBACF,CAEA,QACE,kBACF","sources":["webpack://@tyk-technologies/tyk-ui/./src/common/css/reset.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/variables.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/grid.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/fonts.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/fontawesome/light.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/fontawesome/regular.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/fontawesome/solid.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/fontawesome/fontawesome.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/tykon.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/typography.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/form.css","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/Accordion.css","webpack://@tyk-technologies/tyk-ui/./src/components/Button/Button.css","webpack://@tyk-technologies/tyk-ui/./src/components/ButtonGroup/ButtonGroup.css","webpack://@tyk-technologies/tyk-ui/./src/components/Card/Card.css","webpack://@tyk-technologies/tyk-ui/./src/components/Chart/Chart.css","webpack://@tyk-technologies/tyk-ui/./src/components/Collapsible/Collapsible.css","webpack://@tyk-technologies/tyk-ui/./src/components/CopyToClipboard/CopyToClipboard.css","webpack://@tyk-technologies/tyk-ui/./src/components/FixedWrapper/FixedWrapper.css","webpack://@tyk-technologies/tyk-ui/./src/components/FloatingContainer/FloatingContainer.css","webpack://@tyk-technologies/tyk-ui/./src/components/Icon/Icon.css","webpack://@tyk-technologies/tyk-ui/./src/components/InfiniteScroller/InfiniteScroller.css","webpack://@tyk-technologies/tyk-ui/./src/components/InfoNote/InfoNote.css","webpack://@tyk-technologies/tyk-ui/./src/components/Loader/Loader.css","webpack://@tyk-technologies/tyk-ui/./src/components/List/List.css","webpack://@tyk-technologies/tyk-ui/./src/components/Message/Message.css","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/Modal.css","webpack://@tyk-technologies/tyk-ui/./src/components/Navigation/Navigation.css","webpack://@tyk-technologies/tyk-ui/./src/components/NavBar/NavBar.css","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/Panel.css","webpack://@tyk-technologies/tyk-ui/./src/components/Pill/Pill.css","webpack://@tyk-technologies/tyk-ui/./src/components/RevealPanel/RevealPanel.css","webpack://@tyk-technologies/tyk-ui/./src/components/Sidebar/Sidebar.css","webpack://@tyk-technologies/tyk-ui/./src/components/Table/Table.css","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/Tabs.css","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/Toast.css","webpack://@tyk-technologies/tyk-ui/./src/components/Tooltip/Tooltip.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/Combobox.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Checkbox/Checkbox.css","webpack://@tyk-technologies/tyk-ui/./node_modules/flatpickr/dist/flatpickr.min.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/DatePicker/DatePicker.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/Dropdown.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/Dropdown.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList/EditableList.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/EditableList2.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/FileInput/FileInput.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/Multiselect.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Pagination/Pagination.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Radio/Radio.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Select/Select.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/SelectableList/SelectableList.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Textarea/Textarea.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/Toggle.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/layout.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/texts.css","webpack://@tyk-technologies/tyk-ui/./src/utils/css-helpers/helpers.css"],"sourcesContent":["html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font: inherit;\n font-size: 100%;\n vertical-align: baseline;\n}\n\n/* HTML5 display-role reset for older browsers */\n\narticle, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {\n display: block; }\n\nbody {\n line-height: 1; }\n\nol, ul {\n list-style: none; }\n\nblockquote, q {\n quotes: none; }\n\nblockquote {\n &::before, &::after {\n content: '';\n content: none; } }\n\nq {\n &::before, &::after {\n content: '';\n content: none; } }\n\ntable {\n border-collapse: collapse;\n border-spacing: 0; }\n",":root {\n --general-border-radius: 18px;\n --general-border-width: 2px;\n\n --color-default-base: #36364C;\n --color-default-base-light: #7A79A1;\n --color-default-light: #C3C3E5;\n --color-default-dark: #505071;\n --color-primary-base: #A2A2CC;\n --color-primary-light: #EDEDF9;\n --color-primary-dark: #505071;\n --color-success-base: #00d9ba;\n --color-success-light: #C2F2E9;\n --color-success-dark: #00B798;\n --color-info-base: #82BBC6;\n --color-info-light: #D3EBEF;\n --color-danger-base: #FF6C7D;\n --color-danger-extra-light: #F5CCD1;\n --color-danger-light: #FFBBC5;\n --color-danger-dark: #EA4766;\n --color-warning-base: #D6B218;\n --color-warning-light: #FFE885;\n --color-warning-dark: #C58C11;\n --color-foreground-base: #393939;\n --color-foreground-base-dark: #22272B;\n --color-foreground-light: #5a5a68;\n --color-foreground-dark: #161B20;\n --color-foreground-extra-dark: #0A0D10;\n --color-background-base: #E1E1E1;\n --color-background-light: #EDEDF9;\n --color-background-dark: #43435B;\n --color-background-extra-dark: #0A0D10;\n\n --text-color: var(--color-default-dark);\n --label-color: var(--color-default-base);\n\n --xs-line-height: 16px;\n --sm-line-height: 19px;\n --md-line-height: 22px;\n --lg-line-height: 23px;\n --xl-line-height: 24px;\n --xxl-line-height: 30px;\n\n --xs-font-size: 13px;\n --sm-font-size: 14px;\n --md-font-size: 16px;\n --lg-font-size: 18px;\n --xl-font-size: 20px;\n --xxl-font-size: 25px;\n\n --base-font-size: var(--sm-font-size);\n --base-line-height: var(--sm-line-height);\n\n --spacing-xs: 5px;\n --spacing-sm: 10px;\n --spacing-base: 15px;\n --spacing-md: 20px;\n --spacing-lg: 25px;\n --spacing-xl: 30px;\n --spacing-xxl: 40px;\n\n --grid-gutter: var(--spacing-md);\n --grid-max-width: calc(1200px + var(--grid-gutter) * 2);\n\n --breakpoint-xs: 420px;\n --breakpoint-sm: 768px;\n --breakpoint-md: 1024px;\n --breakpoint-lg: 1248px;\n\n --font-inter-light: 'Inter-Light';\n --font-inter-medium: 'Inter-Medium';\n --font-inter-regular: 'Inter-Regular';\n --font-inter-bold: 'Inter-Bold';\n\n --font-family-regular: 'OpenSans-regular';\n --font-family-medium: 'OpenSans-SemiBold';\n --font-family-bold: 'OpenSans-Bold';\n\n --headings-color: var(--color-default-base);\n --headings-font-family-regular: 'smoolthan_regular';\n --headings-font-family-medium: 'smoolthan_medium';\n --headings-font-family-bold: 'smoolthan_bold';\n\n --headings-margin-bottom: 15px;\n --headings-font-family: var(--headings-font-family-medium);\n --headings-font-weight: 500;\n --headings-line-height: var(--base-line-height);\n\n --form-group-margin-bottom: 15px;\n --form-control-height: 39px;\n --form-control-padding-left: var(--spacing-md);\n --form-control-padding-right: var(--spacing-md);\n --form-control-padding-top: 10px;\n --form-control-padding-bottom: 10px;\n --form-control-addon-background-color: white;\n --form-control-addon-padding-top: 10px;\n --form-control-addon-padding-bottom: 10px;\n --form-control-addon-padding-left: 10px;\n --form-control-addon-padding-right: 10px;\n --form-control-border: var(--general-border-width) solid var(--color-default-light);\n --form-control-disabled-border: var(--general-border-width) solid var(--color-default-light);\n --form-control-placeholder-color: var(--color-primary-base);\n --form-control-disabled-background-color: var(--color-background-light);\n --form-control-disabled-color:var(--text-color);\n --form-control-border-focus: 2px solid var(--color-success-base);\n --form-control-placeholder-font-family: var(--font-family-medium);\n --form-control-error-colour: var(--color-danger-dark);\n --form-default-color: var(--color-default-light);\n --form-primary-color: var(--color-primary-base);\n --form-success-color: var(--color-success-base);\n\n --error-border: var(--general-border-width) solid var(--color-danger-base);\n --error-border-left: 2px solid var(--color-danger-dark);\n --help-block-color: var(--color-default-base);\n --help-block-font-style: normal;\n --help-block-padding: 0 0 0 var(--form-control-padding-left);\n --error-message-padding: 0 0 0 var(--form-control-padding-left);\n --default-pill-background-color: var(--color-default-base);\n --default-pill-color: white;\n --pill-margin: 0 0 10px 0;\n --default-outline-pill-box-shadow: inset 0 0 0 2px var(--color-default-base);\n --default-outline-pill-color: var(--text-color);\n\n --title-medium-font-size: 16px;\n\n --bottom-buffer-large: var(--spacing-md);\n --bottom-buffer-medium: 10px;\n --bottom-buffer-small: 5px;\n --top-buffer-large: var(--spacing-md);\n --top-buffer-medium: 10px;\n --top-buffer-small: 5px;\n --right-buffer-large: var(--spacing-md);\n --right-buffer-medium: 10px;\n --right-buffer-small: 5px;\n --left-buffer-large: var(--spacing-md);\n --left-buffer-medium: 10px;\n --left-buffer-small: 5px;\n\n --modal-z-index: 1080;\n}\n","/* stylelint-disable number-max-precision */\n\n.container {\n max-inline-size: var(--grid-max-width);\n margin-block: 0;\n margin-inline: auto;\n}\n\n.container,\n.container-fluid {\n padding-block: 0;\n padding-inline: var(--grid-gutter);\n}\n\n.tyk-row {\n display: flex;\n box-sizing: border-box;\n list-style: none;\n flex: 0 1 auto;\n flex-direction: row;\n flex-wrap: wrap;\n margin-inline-start: calc(-1 * var(--grid-gutter));\n inline-size: calc(100% + var(--grid-gutter));\n\n &.no-gutters {\n margin: 0;\n }\n\n &.tyk-row--gutterless {\n margin: 0;\n inline-size: 100%;\n }\n\n &.tyk-row--reverse {\n flex-direction: row-reverse;\n }\n}\n\n.tyk-col {\n max-inline-size: calc(100% - var(--grid-gutter));\n box-sizing: border-box;\n flex: 0 0 auto;\n flex-grow: 1;\n flex-basis: calc(100% - var(--grid-gutter));\n margin-inline-start: var(--grid-gutter);\n inline-size: calc(100% - var(--grid-gutter));\n\n &:last-child {\n margin-inline-end: 0;\n }\n\n .tyk-row--gutterless & {\n margin: 0;\n }\n\n &.tyk-col--reverse {\n flex-direction: column-reverse;\n }\n\n &.tyk-col--align-bottom {\n align-self: flex-end;\n }\n\n &.tyk-col--align-top {\n align-self: flex-start;\n }\n\n &.tyk-col--align-center {\n align-self: center;\n }\n\n &.tyk-col--align-baseline {\n align-self: baseline;\n }\n\n &.tyk-col--align-stretch {\n align-self: stretch;\n }\n}\n\n@media screen and (width >= 1248px) {\n .tyk-col--lg-0 {\n flex-basis: calc(0% - 20px);\n max-inline-size: calc(0% - 20px);\n }\n\n .tyk-col--offset-lg-0 {\n margin-inline-start: 0%;\n }\n\n .tyk-col--lg-1 {\n flex-basis: calc(8.3333333333% - 20px);\n max-inline-size: calc(8.3333333333% - 20px);\n }\n\n .tyk-col--offset-lg-1 {\n margin-inline-start: 8.3333333333%;\n }\n\n .tyk-col--lg-2 {\n flex-basis: calc(16.6666666667% - 20px);\n max-inline-size: calc(16.6666666667% - 20px);\n }\n\n .tyk-col--offset-lg-2 {\n margin-inline-start: 16.6666666667%;\n }\n\n .tyk-col--lg-3 {\n flex-basis: calc(25% - 20px);\n max-inline-size: calc(25% - 20px);\n }\n\n .tyk-col--offset-lg-3 {\n margin-inline-start: 25%;\n }\n\n .tyk-col--lg-4 {\n flex-basis: calc(33.3333333333% - 20px);\n max-inline-size: calc(33.3333333333% - 20px);\n }\n\n .tyk-col--offset-lg-4 {\n margin-inline-start: 33.3333333333%;\n }\n\n .tyk-col--lg-5 {\n flex-basis: calc(41.6666666667% - 20px);\n max-inline-size: calc(41.6666666667% - 20px);\n }\n\n .tyk-col--offset-lg-5 {\n margin-inline-start: 41.6666666667%;\n }\n\n .tyk-col--lg-6 {\n flex-basis: calc(50% - 20px);\n max-inline-size: calc(50% - 20px);\n }\n\n .tyk-col--offset-lg-6 {\n margin-inline-start: 50%;\n }\n\n .tyk-col--lg-7 {\n flex-basis: calc(58.3333333333% - 20px);\n max-inline-size: calc(58.3333333333% - 20px);\n }\n\n .tyk-col--offset-lg-7 {\n margin-inline-start: 58.3333333333%;\n }\n\n .tyk-col--lg-8 {\n flex-basis: calc(66.6666666667% - 20px);\n max-inline-size: calc(66.6666666667% - 20px);\n }\n\n .tyk-col--offset-lg-8 {\n margin-inline-start: 66.6666666667%;\n }\n\n .tyk-col--lg-9 {\n flex-basis: calc(75% - 20px);\n max-inline-size: calc(75% - 20px);\n }\n\n .tyk-col--offset-lg-9 {\n margin-inline-start: 75%;\n }\n\n .tyk-col--lg-10 {\n flex-basis: calc(83.3333333333% - 20px);\n max-inline-size: calc(83.3333333333% - 20px);\n }\n\n .tyk-col--offset-lg-10 {\n margin-inline-start: 83.3333333333%;\n }\n\n .tyk-col--lg-11 {\n flex-basis: calc(91.6666666667% - 20px);\n max-inline-size: calc(91.6666666667% - 20px);\n }\n\n .tyk-col--offset-lg-11 {\n margin-inline-start: 91.6666666667%;\n }\n\n .tyk-col--lg-12 {\n flex-basis: calc(100% - 20px);\n max-inline-size: calc(100% - 20px);\n }\n\n .tyk-col--offset-lg-12 {\n margin-inline-start: 100%;\n }\n}\n\n@media screen and (1024px <= width < 1248px) {\n .tyk-col--md-0 {\n flex-basis: calc(0% - 20px);\n max-inline-size: calc(0% - 20px);\n }\n\n .tyk-col--offset-md-0 {\n margin-inline-start: 0%;\n }\n\n .tyk-col--md-1 {\n flex-basis: calc(8.3333333333% - 20px);\n max-inline-size: calc(8.3333333333% - 20px);\n }\n\n .tyk-col--offset-md-1 {\n margin-inline-start: 8.3333333333%;\n }\n\n .tyk-col--md-2 {\n flex-basis: calc(16.6666666667% - 20px);\n max-inline-size: calc(16.6666666667% - 20px);\n }\n\n .tyk-col--offset-md-2 {\n margin-inline-start: 16.6666666667%;\n }\n\n .tyk-col--md-3 {\n flex-basis: calc(25% - 20px);\n max-inline-size: calc(25% - 20px);\n }\n\n .tyk-col--offset-md-3 {\n margin-inline-start: 25%;\n }\n\n .tyk-col--md-4 {\n flex-basis: calc(33.3333333333% - 20px);\n max-inline-size: calc(33.3333333333% - 20px);\n }\n\n .tyk-col--offset-md-4 {\n margin-inline-start: 33.3333333333%;\n }\n\n .tyk-col--md-5 {\n flex-basis: calc(41.6666666667% - 20px);\n max-inline-size: calc(41.6666666667% - 20px);\n }\n\n .tyk-col--offset-md-5 {\n margin-inline-start: 41.6666666667%;\n }\n\n .tyk-col--md-6 {\n flex-basis: calc(50% - 20px);\n max-inline-size: calc(50% - 20px);\n }\n\n .tyk-col--offset-md-6 {\n margin-inline-start: 50%;\n }\n\n .tyk-col--md-7 {\n flex-basis: calc(58.3333333333% - 20px);\n max-inline-size: calc(58.3333333333% - 20px);\n }\n\n .tyk-col--offset-md-7 {\n margin-inline-start: 58.3333333333%;\n }\n\n .tyk-col--md-8 {\n flex-basis: calc(66.6666666667% - 20px);\n max-inline-size: calc(66.6666666667% - 20px);\n }\n\n .tyk-col--offset-md-8 {\n margin-inline-start: 66.6666666667%;\n }\n\n .tyk-col--md-9 {\n flex-basis: calc(75% - 20px);\n max-inline-size: calc(75% - 20px);\n }\n\n .tyk-col--offset-md-9 {\n margin-inline-start: 75%;\n }\n\n .tyk-col--md-10 {\n flex-basis: calc(83.3333333333% - 20px);\n max-inline-size: calc(83.3333333333% - 20px);\n }\n\n .tyk-col--offset-md-10 {\n margin-inline-start: 83.3333333333%;\n }\n\n .tyk-col--md-11 {\n flex-basis: calc(91.6666666667% - 20px);\n max-inline-size: calc(91.6666666667% - 20px);\n }\n\n .tyk-col--offset-md-11 {\n margin-inline-start: 91.6666666667%;\n }\n\n .tyk-col--md-12 {\n flex-basis: calc(100% - 20px);\n max-inline-size: calc(100% - 20px);\n }\n\n .tyk-col--offset-md-12 {\n margin-inline-start: 100%;\n }\n}\n\n@media screen and (768px < width < 1024px) {\n .tyk-col--sm-0 {\n flex-basis: calc(0% - 20px);\n max-inline-size: calc(0% - 20px);\n }\n\n .tyk-col--offset-sm-0 {\n margin-inline-start: 0%;\n }\n\n .tyk-col--sm-1 {\n flex-basis: calc(8.3333333333% - 20px);\n max-inline-size: calc(8.3333333333% - 20px);\n }\n\n .tyk-col--offset-sm-1 {\n margin-inline-start: 8.3333333333%;\n }\n\n .tyk-col--sm-2 {\n flex-basis: calc(16.6666666667% - 20px);\n max-inline-size: calc(16.6666666667% - 20px);\n }\n\n .tyk-col--offset-sm-2 {\n margin-inline-start: 16.6666666667%;\n }\n\n .tyk-col--sm-3 {\n flex-basis: calc(25% - 20px);\n max-inline-size: calc(25% - 20px);\n }\n\n .tyk-col--offset-sm-3 {\n margin-inline-start: 25%;\n }\n\n .tyk-col--sm-4 {\n flex-basis: calc(33.3333333333% - 20px);\n max-inline-size: calc(33.3333333333% - 20px);\n }\n\n .tyk-col--offset-sm-4 {\n margin-inline-start: 33.3333333333%;\n }\n\n .tyk-col--sm-5 {\n flex-basis: calc(41.6666666667% - 20px);\n max-inline-size: calc(41.6666666667% - 20px);\n }\n\n .tyk-col--offset-sm-5 {\n margin-inline-start: 41.6666666667%;\n }\n\n .tyk-col--sm-6 {\n flex-basis: calc(50% - 20px);\n max-inline-size: calc(50% - 20px);\n }\n\n .tyk-col--offset-sm-6 {\n margin-inline-start: 50%;\n }\n\n .tyk-col--sm-7 {\n flex-basis: calc(58.3333333333% - 20px);\n max-inline-size: calc(58.3333333333% - 20px);\n }\n\n .tyk-col--offset-sm-7 {\n margin-inline-start: 58.3333333333%;\n }\n\n .tyk-col--sm-8 {\n flex-basis: calc(66.6666666667% - 20px);\n max-inline-size: calc(66.6666666667% - 20px);\n }\n\n .tyk-col--offset-sm-8 {\n margin-inline-start: 66.6666666667%;\n }\n\n .tyk-col--sm-9 {\n flex-basis: calc(75% - 20px);\n max-inline-size: calc(75% - 20px);\n }\n\n .tyk-col--offset-sm-9 {\n margin-inline-start: 75%;\n }\n\n .tyk-col--sm-10 {\n flex-basis: calc(83.3333333333% - 20px);\n max-inline-size: calc(83.3333333333% - 20px);\n }\n\n .tyk-col--offset-sm-10 {\n margin-inline-start: 83.3333333333%;\n }\n\n .tyk-col--sm-11 {\n flex-basis: calc(91.6666666667% - 20px);\n max-inline-size: calc(91.6666666667% - 20px);\n }\n\n .tyk-col--offset-sm-11 {\n margin-inline-start: 91.6666666667%;\n }\n\n .tyk-col--sm-12 {\n flex-basis: calc(100% - 20px);\n max-inline-size: calc(100% - 20px);\n }\n\n .tyk-col--offset-sm-12 {\n margin-inline-start: 100%;\n }\n}\n\n@media screen and (width <= 768px) {\n .tyk-col--xs-0 {\n flex-basis: calc(0% - 20px);\n max-inline-size: calc(0% - 20px);\n }\n\n .tyk-col--offset-xs-0 {\n margin-inline-start: 0%;\n }\n\n .tyk-col--xs-1 {\n flex-basis: calc(8.3333333333% - 20px);\n max-inline-size: calc(8.3333333333% - 20px);\n }\n\n .tyk-col--offset-xs-1 {\n margin-inline-start: 8.3333333333%;\n }\n\n .tyk-col--xs-2 {\n flex-basis: calc(16.6666666667% - 20px);\n max-inline-size: calc(16.6666666667% - 20px);\n }\n\n .tyk-col--offset-xs-2 {\n margin-inline-start: 16.6666666667%;\n }\n\n .tyk-col--xs-3 {\n flex-basis: calc(25% - 20px);\n max-inline-size: calc(25% - 20px);\n }\n\n .tyk-col--offset-xs-3 {\n margin-inline-start: 25%;\n }\n\n .tyk-col--xs-4 {\n flex-basis: calc(33.3333333333% - 20px);\n max-inline-size: calc(33.3333333333% - 20px);\n }\n\n .tyk-col--offset-xs-4 {\n margin-inline-start: 33.3333333333%;\n }\n\n .tyk-col--xs-5 {\n flex-basis: calc(41.6666666667% - 20px);\n max-inline-size: calc(41.6666666667% - 20px);\n }\n\n .tyk-col--offset-xs-5 {\n margin-inline-start: 41.6666666667%;\n }\n\n .tyk-col--xs-6 {\n flex-basis: calc(50% - 20px);\n max-inline-size: calc(50% - 20px);\n }\n\n .tyk-col--offset-xs-6 {\n margin-inline-start: 50%;\n }\n\n .tyk-col--xs-7 {\n flex-basis: calc(58.3333333333% - 20px);\n max-inline-size: calc(58.3333333333% - 20px);\n }\n\n .tyk-col--offset-xs-7 {\n margin-inline-start: 58.3333333333%;\n }\n\n .tyk-col--xs-8 {\n flex-basis: calc(66.6666666667% - 20px);\n max-inline-size: calc(66.6666666667% - 20px);\n }\n\n .tyk-col--offset-xs-8 {\n margin-inline-start: 66.6666666667%;\n }\n\n .tyk-col--xs-9 {\n flex-basis: calc(75% - 20px);\n max-inline-size: calc(75% - 20px);\n }\n\n .tyk-col--offset-xs-9 {\n margin-inline-start: 75%;\n }\n\n .tyk-col--xs-10 {\n flex-basis: calc(83.3333333333% - 20px);\n max-inline-size: calc(83.3333333333% - 20px);\n }\n\n .tyk-col--offset-xs-10 {\n margin-inline-start: 83.3333333333%;\n }\n\n .tyk-col--xs-11 {\n flex-basis: calc(91.6666666667% - 20px);\n max-inline-size: calc(91.6666666667% - 20px);\n }\n\n .tyk-col--offset-xs-11 {\n margin-inline-start: 91.6666666667%;\n }\n\n .tyk-col--xs-12 {\n flex-basis: calc(100% - 20px);\n max-inline-size: calc(100% - 20px);\n }\n\n .tyk-col--offset-xs-12 {\n margin-inline-start: 100%;\n }\n}\n","@font-face {\n font-family: Inter-Bold;\n src: url('../fonts/inter/Inter-Bold.woff2') format('woff2'),\n url('../fonts/inter/Inter-Bold.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: Inter-Light;\n src: url('../fonts/inter/Inter-Light.woff2') format('woff2'),\n url('../fonts/inter/Inter-Light.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: Inter-Medium;\n src: url('../fonts/inter/Inter-Medium.woff2') format('woff2'),\n url('../fonts/inter/Inter-Medium.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: Inter-Regular;\n src: url('../fonts/inter/Inter-Regular.woff2') format('woff2'),\n url('../fonts/inter/Inter-Regular.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: Inter-SemiBold;\n src: url('../fonts/inter/Inter-SemiBold.woff2') format('woff2'),\n url('../fonts/inter/Inter-SemiBold.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: OpenSans-Bold;\n src: url('../fonts/OpenSans-Bold.woff2') format('woff2'),\n url('../fonts/OpenSans-Bold.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: OpenSans-SemiBold;\n src: url('../fonts/OpenSans-SemiBold.woff2') format('woff2'),\n url('../fonts/OpenSans-SemiBold.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: OpenSans-Regular;\n src: url('../fonts/OpenSans-Regular.woff2') format('woff2'),\n url('../fonts/OpenSans-Regular.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'smoolthan_bold';\n src: url('../fonts/smoolthan_bold-webfont.woff2') format('woff2'),\n url('../fonts/smoolthan_bold-webfont.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'smoolthan_medium';\n src: url('../fonts/smoolthan_medium-webfont.woff2') format('woff2'),\n url('../fonts/smoolthan_medium-webfont.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'smoolthan_regular';\n src: url('../fonts/smoolthan_regular-webfont.woff2') format('woff2'),\n url('../fonts/smoolthan_regular-webfont.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: tykon;\n src: url('../fonts/tykon.woff2') format('woff2'),\n url('../fonts/tykon.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n","/*!\n * Font Awesome Pro 6.5.2 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license (Commercial License)\n * Copyright 2024 Fonticons, Inc.\n */\n:root, :host {\n --fa-style-family-classic: 'Font Awesome 6 Pro';\n --fa-font-light: normal 300 1em/1 'Font Awesome 6 Pro'; }\n\n@font-face {\n font-family: 'Font Awesome 6 Pro';\n font-style: normal;\n font-weight: 300;\n font-display: block;\n src: url(\"../../fonts/fontawesome/fa-light-300.woff2\") format(\"woff2\"), url(\"../../fonts/fontawesome/fa-light-300.ttf\") format(\"truetype\"); }\n\n.fal,\n.fa-light {\n font-weight: 300; }\n","/*!\n * Font Awesome Pro 6.5.2 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license (Commercial License)\n * Copyright 2024 Fonticons, Inc.\n */\n:root, :host {\n --fa-style-family-classic: 'Font Awesome 6 Pro';\n --fa-font-regular: normal 400 1em/1 'Font Awesome 6 Pro'; }\n\n@font-face {\n font-family: 'Font Awesome 6 Pro';\n font-style: normal;\n font-weight: 400;\n font-display: block;\n src: url(\"../../fonts/fontawesome/fa-regular-400.woff2\") format(\"woff2\"), url(\"../../fonts/fontawesome/fa-regular-400.ttf\") format(\"truetype\"); }\n\n.far,\n.fa-regular {\n font-weight: 400; }\n","/*!\n * Font Awesome Pro 6.5.2 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license (Commercial License)\n * Copyright 2024 Fonticons, Inc.\n */\n:root, :host {\n --fa-style-family-classic: 'Font Awesome 6 Pro';\n --fa-font-solid: normal 900 1em/1 'Font Awesome 6 Pro'; }\n\n@font-face {\n font-family: 'Font Awesome 6 Pro';\n font-style: normal;\n font-weight: 900;\n font-display: block;\n src: url(\"../../fonts/fontawesome/fa-solid-900.woff2\") format(\"woff2\"), url(\"../../fonts/fontawesome/fa-solid-900.ttf\") format(\"truetype\"); }\n\n.fas,\n.fa-solid {\n font-weight: 900; }\n","/*!\n * Font Awesome Pro 6.5.2 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license (Commercial License)\n * Copyright 2024 Fonticons, Inc.\n */\n.fa {\n font-family: var(--fa-style-family, \"Font Awesome 6 Pro\");\n font-weight: var(--fa-style, 900); }\n\n.fa,\n.fa-classic,\n.fa-sharp,\n.fas,\n.fa-solid,\n.far,\n.fa-regular,\n.fasr,\n.fal,\n.fa-light,\n.fasl,\n.fat,\n.fa-thin,\n.fast,\n.fad,\n.fa-duotone,\n.fass,\n.fa-sharp-solid,\n.fab,\n.fa-brands {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n display: var(--fa-display, inline-block);\n font-style: normal;\n font-variant: normal;\n line-height: 1;\n text-rendering: auto; }\n\n.fas,\n.fa-classic,\n.fa-solid,\n.far,\n.fa-regular,\n.fal,\n.fa-light,\n.fat,\n.fa-thin {\n font-family: 'Font Awesome 6 Pro'; }\n\n.fab,\n.fa-brands {\n font-family: 'Font Awesome 6 Brands'; }\n\n.fad,\n.fa-classic.fa-duotone,\n.fa-duotone {\n font-family: 'Font Awesome 6 Duotone'; }\n\n.fass,\n.fasr,\n.fasl,\n.fast,\n.fa-sharp {\n font-family: 'Font Awesome 6 Sharp'; }\n\n.fass,\n.fa-sharp {\n font-weight: 900; }\n\n.fa-1x {\n font-size: 1em; }\n\n.fa-2x {\n font-size: 2em; }\n\n.fa-3x {\n font-size: 3em; }\n\n.fa-4x {\n font-size: 4em; }\n\n.fa-5x {\n font-size: 5em; }\n\n.fa-6x {\n font-size: 6em; }\n\n.fa-7x {\n font-size: 7em; }\n\n.fa-8x {\n font-size: 8em; }\n\n.fa-9x {\n font-size: 9em; }\n\n.fa-10x {\n font-size: 10em; }\n\n.fa-2xs {\n font-size: 0.625em;\n line-height: 0.1em;\n vertical-align: 0.225em; }\n\n.fa-xs {\n font-size: 0.75em;\n line-height: 0.08333em;\n vertical-align: 0.125em; }\n\n.fa-sm {\n font-size: 0.875em;\n line-height: 0.07143em;\n vertical-align: 0.05357em; }\n\n.fa-lg {\n font-size: 1.25em;\n line-height: 0.05em;\n vertical-align: -0.075em; }\n\n.fa-xl {\n font-size: 1.5em;\n line-height: 0.04167em;\n vertical-align: -0.125em; }\n\n.fa-2xl {\n font-size: 2em;\n line-height: 0.03125em;\n vertical-align: -0.1875em; }\n\n.fa-fw {\n text-align: center;\n width: 1.25em; }\n\n.fa-ul {\n list-style-type: none;\n margin-left: var(--fa-li-margin, 2.5em);\n padding-left: 0; }\n .fa-ul > li {\n position: relative; }\n\n.fa-li {\n left: calc(var(--fa-li-width, 2em) * -1);\n position: absolute;\n text-align: center;\n width: var(--fa-li-width, 2em);\n line-height: inherit; }\n\n.fa-border {\n border-color: var(--fa-border-color, #eee);\n border-radius: var(--fa-border-radius, 0.1em);\n border-style: var(--fa-border-style, solid);\n border-width: var(--fa-border-width, 0.08em);\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); }\n\n.fa-pull-left {\n float: left;\n margin-right: var(--fa-pull-margin, 0.3em); }\n\n.fa-pull-right {\n float: right;\n margin-left: var(--fa-pull-margin, 0.3em); }\n\n.fa-beat {\n -webkit-animation-name: fa-beat;\n animation-name: fa-beat;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out); }\n\n.fa-bounce {\n -webkit-animation-name: fa-bounce;\n animation-name: fa-bounce;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); }\n\n.fa-fade {\n -webkit-animation-name: fa-fade;\n animation-name: fa-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); }\n\n.fa-beat-fade {\n -webkit-animation-name: fa-beat-fade;\n animation-name: fa-beat-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); }\n\n.fa-flip {\n -webkit-animation-name: fa-flip;\n animation-name: fa-flip;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out); }\n\n.fa-shake {\n -webkit-animation-name: fa-shake;\n animation-name: fa-shake;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear); }\n\n.fa-spin {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 2s);\n animation-duration: var(--fa-animation-duration, 2s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear); }\n\n.fa-spin-reverse {\n --fa-animation-direction: reverse; }\n\n.fa-pulse,\n.fa-spin-pulse {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, steps(8));\n animation-timing-function: var(--fa-animation-timing, steps(8)); }\n\n@media (prefers-reduced-motion: reduce) {\n .fa-beat,\n .fa-bounce,\n .fa-fade,\n .fa-beat-fade,\n .fa-flip,\n .fa-pulse,\n .fa-shake,\n .fa-spin,\n .fa-spin-pulse {\n -webkit-animation-delay: -1ms;\n animation-delay: -1ms;\n -webkit-animation-duration: 1ms;\n animation-duration: 1ms;\n -webkit-animation-iteration-count: 1;\n animation-iteration-count: 1;\n -webkit-transition-delay: 0s;\n transition-delay: 0s;\n -webkit-transition-duration: 0s;\n transition-duration: 0s; } }\n\n@-webkit-keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1); }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25)); } }\n\n@keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1); }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25)); } }\n\n@-webkit-keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); } }\n\n@keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); } }\n\n@-webkit-keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4); } }\n\n@keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4); } }\n\n@-webkit-keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1); }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125)); } }\n\n@keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1); }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125)); } }\n\n@-webkit-keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } }\n\n@keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } }\n\n@-webkit-keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg); }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg); }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg); }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg); }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg); }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg); }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg); }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg); }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); } }\n\n@keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg); }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg); }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg); }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg); }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg); }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg); }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg); }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg); }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); } }\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n.fa-rotate-90 {\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg); }\n\n.fa-rotate-180 {\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg); }\n\n.fa-rotate-270 {\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg); }\n\n.fa-flip-horizontal {\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1); }\n\n.fa-flip-vertical {\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1); }\n\n.fa-flip-both,\n.fa-flip-horizontal.fa-flip-vertical {\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1); }\n\n.fa-rotate-by {\n -webkit-transform: rotate(var(--fa-rotate-angle, 0));\n transform: rotate(var(--fa-rotate-angle, 0)); }\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n line-height: 2em;\n position: relative;\n vertical-align: middle;\n width: 2.5em; }\n\n.fa-stack-1x,\n.fa-stack-2x {\n left: 0;\n position: absolute;\n text-align: center;\n width: 100%;\n z-index: var(--fa-stack-z-index, auto); }\n\n.fa-stack-1x {\n line-height: inherit; }\n\n.fa-stack-2x {\n font-size: 2em; }\n\n.fa-inverse {\n color: var(--fa-inverse, #fff); }\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\nreaders do not read off random characters that represent icons */\n\n.fa-0::before {\n content: \"\\30\"; }\n\n.fa-1::before {\n content: \"\\31\"; }\n\n.fa-2::before {\n content: \"\\32\"; }\n\n.fa-3::before {\n content: \"\\33\"; }\n\n.fa-4::before {\n content: \"\\34\"; }\n\n.fa-5::before {\n content: \"\\35\"; }\n\n.fa-6::before {\n content: \"\\36\"; }\n\n.fa-7::before {\n content: \"\\37\"; }\n\n.fa-8::before {\n content: \"\\38\"; }\n\n.fa-9::before {\n content: \"\\39\"; }\n\n.fa-fill-drip::before {\n content: \"\\f576\"; }\n\n.fa-arrows-to-circle::before {\n content: \"\\e4bd\"; }\n\n.fa-circle-chevron-right::before {\n content: \"\\f138\"; }\n\n.fa-chevron-circle-right::before {\n content: \"\\f138\"; }\n\n.fa-wagon-covered::before {\n content: \"\\f8ee\"; }\n\n.fa-line-height::before {\n content: \"\\f871\"; }\n\n.fa-bagel::before {\n content: \"\\e3d7\"; }\n\n.fa-transporter-7::before {\n content: \"\\e2a8\"; }\n\n.fa-at::before {\n content: \"\\40\"; }\n\n.fa-rectangles-mixed::before {\n content: \"\\e323\"; }\n\n.fa-phone-arrow-up-right::before {\n content: \"\\e224\"; }\n\n.fa-phone-arrow-up::before {\n content: \"\\e224\"; }\n\n.fa-phone-outgoing::before {\n content: \"\\e224\"; }\n\n.fa-trash-can::before {\n content: \"\\f2ed\"; }\n\n.fa-trash-alt::before {\n content: \"\\f2ed\"; }\n\n.fa-circle-l::before {\n content: \"\\e114\"; }\n\n.fa-head-side-goggles::before {\n content: \"\\f6ea\"; }\n\n.fa-head-vr::before {\n content: \"\\f6ea\"; }\n\n.fa-text-height::before {\n content: \"\\f034\"; }\n\n.fa-user-xmark::before {\n content: \"\\f235\"; }\n\n.fa-user-times::before {\n content: \"\\f235\"; }\n\n.fa-face-hand-yawn::before {\n content: \"\\e379\"; }\n\n.fa-gauge-simple-min::before {\n content: \"\\f62d\"; }\n\n.fa-tachometer-slowest::before {\n content: \"\\f62d\"; }\n\n.fa-stethoscope::before {\n content: \"\\f0f1\"; }\n\n.fa-coffin::before {\n content: \"\\f6c6\"; }\n\n.fa-message::before {\n content: \"\\f27a\"; }\n\n.fa-comment-alt::before {\n content: \"\\f27a\"; }\n\n.fa-salad::before {\n content: \"\\f81e\"; }\n\n.fa-bowl-salad::before {\n content: \"\\f81e\"; }\n\n.fa-info::before {\n content: \"\\f129\"; }\n\n.fa-robot-astromech::before {\n content: \"\\e2d2\"; }\n\n.fa-ring-diamond::before {\n content: \"\\e5ab\"; }\n\n.fa-fondue-pot::before {\n content: \"\\e40d\"; }\n\n.fa-theta::before {\n content: \"\\f69e\"; }\n\n.fa-face-hand-peeking::before {\n content: \"\\e481\"; }\n\n.fa-square-user::before {\n content: \"\\e283\"; }\n\n.fa-down-left-and-up-right-to-center::before {\n content: \"\\f422\"; }\n\n.fa-compress-alt::before {\n content: \"\\f422\"; }\n\n.fa-explosion::before {\n content: \"\\e4e9\"; }\n\n.fa-file-lines::before {\n content: \"\\f15c\"; }\n\n.fa-file-alt::before {\n content: \"\\f15c\"; }\n\n.fa-file-text::before {\n content: \"\\f15c\"; }\n\n.fa-wave-square::before {\n content: \"\\f83e\"; }\n\n.fa-ring::before {\n content: \"\\f70b\"; }\n\n.fa-building-un::before {\n content: \"\\e4d9\"; }\n\n.fa-dice-three::before {\n content: \"\\f527\"; }\n\n.fa-tire-pressure-warning::before {\n content: \"\\f633\"; }\n\n.fa-wifi-fair::before {\n content: \"\\f6ab\"; }\n\n.fa-wifi-2::before {\n content: \"\\f6ab\"; }\n\n.fa-calendar-days::before {\n content: \"\\f073\"; }\n\n.fa-calendar-alt::before {\n content: \"\\f073\"; }\n\n.fa-mp3-player::before {\n content: \"\\f8ce\"; }\n\n.fa-anchor-circle-check::before {\n content: \"\\e4aa\"; }\n\n.fa-tally-4::before {\n content: \"\\e297\"; }\n\n.fa-rectangle-history::before {\n content: \"\\e4a2\"; }\n\n.fa-building-circle-arrow-right::before {\n content: \"\\e4d1\"; }\n\n.fa-volleyball::before {\n content: \"\\f45f\"; }\n\n.fa-volleyball-ball::before {\n content: \"\\f45f\"; }\n\n.fa-sun-haze::before {\n content: \"\\f765\"; }\n\n.fa-text-size::before {\n content: \"\\f894\"; }\n\n.fa-ufo::before {\n content: \"\\e047\"; }\n\n.fa-fork::before {\n content: \"\\f2e3\"; }\n\n.fa-utensil-fork::before {\n content: \"\\f2e3\"; }\n\n.fa-arrows-up-to-line::before {\n content: \"\\e4c2\"; }\n\n.fa-mobile-signal::before {\n content: \"\\e1ef\"; }\n\n.fa-barcode-scan::before {\n content: \"\\f465\"; }\n\n.fa-sort-down::before {\n content: \"\\f0dd\"; }\n\n.fa-sort-desc::before {\n content: \"\\f0dd\"; }\n\n.fa-folder-arrow-down::before {\n content: \"\\e053\"; }\n\n.fa-folder-download::before {\n content: \"\\e053\"; }\n\n.fa-circle-minus::before {\n content: \"\\f056\"; }\n\n.fa-minus-circle::before {\n content: \"\\f056\"; }\n\n.fa-face-icicles::before {\n content: \"\\e37c\"; }\n\n.fa-shovel::before {\n content: \"\\f713\"; }\n\n.fa-door-open::before {\n content: \"\\f52b\"; }\n\n.fa-films::before {\n content: \"\\e17a\"; }\n\n.fa-right-from-bracket::before {\n content: \"\\f2f5\"; }\n\n.fa-sign-out-alt::before {\n content: \"\\f2f5\"; }\n\n.fa-face-glasses::before {\n content: \"\\e377\"; }\n\n.fa-nfc::before {\n content: \"\\e1f7\"; }\n\n.fa-atom::before {\n content: \"\\f5d2\"; }\n\n.fa-soap::before {\n content: \"\\e06e\"; }\n\n.fa-icons::before {\n content: \"\\f86d\"; }\n\n.fa-heart-music-camera-bolt::before {\n content: \"\\f86d\"; }\n\n.fa-microphone-lines-slash::before {\n content: \"\\f539\"; }\n\n.fa-microphone-alt-slash::before {\n content: \"\\f539\"; }\n\n.fa-closed-captioning-slash::before {\n content: \"\\e135\"; }\n\n.fa-calculator-simple::before {\n content: \"\\f64c\"; }\n\n.fa-calculator-alt::before {\n content: \"\\f64c\"; }\n\n.fa-bridge-circle-check::before {\n content: \"\\e4c9\"; }\n\n.fa-sliders-up::before {\n content: \"\\f3f1\"; }\n\n.fa-sliders-v::before {\n content: \"\\f3f1\"; }\n\n.fa-location-minus::before {\n content: \"\\f609\"; }\n\n.fa-map-marker-minus::before {\n content: \"\\f609\"; }\n\n.fa-pump-medical::before {\n content: \"\\e06a\"; }\n\n.fa-fingerprint::before {\n content: \"\\f577\"; }\n\n.fa-ski-boot::before {\n content: \"\\e3cc\"; }\n\n.fa-standard-definition::before {\n content: \"\\e28a\"; }\n\n.fa-rectangle-sd::before {\n content: \"\\e28a\"; }\n\n.fa-h1::before {\n content: \"\\f313\"; }\n\n.fa-hand-point-right::before {\n content: \"\\f0a4\"; }\n\n.fa-magnifying-glass-location::before {\n content: \"\\f689\"; }\n\n.fa-search-location::before {\n content: \"\\f689\"; }\n\n.fa-message-bot::before {\n content: \"\\e3b8\"; }\n\n.fa-forward-step::before {\n content: \"\\f051\"; }\n\n.fa-step-forward::before {\n content: \"\\f051\"; }\n\n.fa-face-smile-beam::before {\n content: \"\\f5b8\"; }\n\n.fa-smile-beam::before {\n content: \"\\f5b8\"; }\n\n.fa-light-ceiling::before {\n content: \"\\e016\"; }\n\n.fa-message-exclamation::before {\n content: \"\\f4a5\"; }\n\n.fa-comment-alt-exclamation::before {\n content: \"\\f4a5\"; }\n\n.fa-bowl-scoop::before {\n content: \"\\e3de\"; }\n\n.fa-bowl-shaved-ice::before {\n content: \"\\e3de\"; }\n\n.fa-square-x::before {\n content: \"\\e286\"; }\n\n.fa-building-memo::before {\n content: \"\\e61e\"; }\n\n.fa-utility-pole-double::before {\n content: \"\\e2c4\"; }\n\n.fa-flag-checkered::before {\n content: \"\\f11e\"; }\n\n.fa-chevrons-up::before {\n content: \"\\f325\"; }\n\n.fa-chevron-double-up::before {\n content: \"\\f325\"; }\n\n.fa-football::before {\n content: \"\\f44e\"; }\n\n.fa-football-ball::before {\n content: \"\\f44e\"; }\n\n.fa-user-vneck::before {\n content: \"\\e461\"; }\n\n.fa-school-circle-exclamation::before {\n content: \"\\e56c\"; }\n\n.fa-crop::before {\n content: \"\\f125\"; }\n\n.fa-angles-down::before {\n content: \"\\f103\"; }\n\n.fa-angle-double-down::before {\n content: \"\\f103\"; }\n\n.fa-users-rectangle::before {\n content: \"\\e594\"; }\n\n.fa-people-roof::before {\n content: \"\\e537\"; }\n\n.fa-square-arrow-right::before {\n content: \"\\f33b\"; }\n\n.fa-arrow-square-right::before {\n content: \"\\f33b\"; }\n\n.fa-location-plus::before {\n content: \"\\f60a\"; }\n\n.fa-map-marker-plus::before {\n content: \"\\f60a\"; }\n\n.fa-lightbulb-exclamation-on::before {\n content: \"\\e1ca\"; }\n\n.fa-people-line::before {\n content: \"\\e534\"; }\n\n.fa-beer-mug-empty::before {\n content: \"\\f0fc\"; }\n\n.fa-beer::before {\n content: \"\\f0fc\"; }\n\n.fa-crate-empty::before {\n content: \"\\e151\"; }\n\n.fa-diagram-predecessor::before {\n content: \"\\e477\"; }\n\n.fa-transporter::before {\n content: \"\\e042\"; }\n\n.fa-calendar-circle-user::before {\n content: \"\\e471\"; }\n\n.fa-arrow-up-long::before {\n content: \"\\f176\"; }\n\n.fa-long-arrow-up::before {\n content: \"\\f176\"; }\n\n.fa-person-carry-box::before {\n content: \"\\f4cf\"; }\n\n.fa-person-carry::before {\n content: \"\\f4cf\"; }\n\n.fa-fire-flame-simple::before {\n content: \"\\f46a\"; }\n\n.fa-burn::before {\n content: \"\\f46a\"; }\n\n.fa-person::before {\n content: \"\\f183\"; }\n\n.fa-male::before {\n content: \"\\f183\"; }\n\n.fa-laptop::before {\n content: \"\\f109\"; }\n\n.fa-file-csv::before {\n content: \"\\f6dd\"; }\n\n.fa-menorah::before {\n content: \"\\f676\"; }\n\n.fa-union::before {\n content: \"\\f6a2\"; }\n\n.fa-chevrons-left::before {\n content: \"\\f323\"; }\n\n.fa-chevron-double-left::before {\n content: \"\\f323\"; }\n\n.fa-circle-heart::before {\n content: \"\\f4c7\"; }\n\n.fa-heart-circle::before {\n content: \"\\f4c7\"; }\n\n.fa-truck-plane::before {\n content: \"\\e58f\"; }\n\n.fa-record-vinyl::before {\n content: \"\\f8d9\"; }\n\n.fa-bring-forward::before {\n content: \"\\f856\"; }\n\n.fa-square-p::before {\n content: \"\\e279\"; }\n\n.fa-face-grin-stars::before {\n content: \"\\f587\"; }\n\n.fa-grin-stars::before {\n content: \"\\f587\"; }\n\n.fa-sigma::before {\n content: \"\\f68b\"; }\n\n.fa-camera-movie::before {\n content: \"\\f8a9\"; }\n\n.fa-bong::before {\n content: \"\\f55c\"; }\n\n.fa-clarinet::before {\n content: \"\\f8ad\"; }\n\n.fa-truck-flatbed::before {\n content: \"\\e2b6\"; }\n\n.fa-spaghetti-monster-flying::before {\n content: \"\\f67b\"; }\n\n.fa-pastafarianism::before {\n content: \"\\f67b\"; }\n\n.fa-arrow-down-up-across-line::before {\n content: \"\\e4af\"; }\n\n.fa-arrows-rotate-reverse::before {\n content: \"\\e630\"; }\n\n.fa-leaf-heart::before {\n content: \"\\f4cb\"; }\n\n.fa-house-building::before {\n content: \"\\e1b1\"; }\n\n.fa-cheese-swiss::before {\n content: \"\\f7f0\"; }\n\n.fa-spoon::before {\n content: \"\\f2e5\"; }\n\n.fa-utensil-spoon::before {\n content: \"\\f2e5\"; }\n\n.fa-jar-wheat::before {\n content: \"\\e517\"; }\n\n.fa-envelopes-bulk::before {\n content: \"\\f674\"; }\n\n.fa-mail-bulk::before {\n content: \"\\f674\"; }\n\n.fa-file-circle-exclamation::before {\n content: \"\\e4eb\"; }\n\n.fa-bow-arrow::before {\n content: \"\\f6b9\"; }\n\n.fa-cart-xmark::before {\n content: \"\\e0dd\"; }\n\n.fa-hexagon-xmark::before {\n content: \"\\f2ee\"; }\n\n.fa-times-hexagon::before {\n content: \"\\f2ee\"; }\n\n.fa-xmark-hexagon::before {\n content: \"\\f2ee\"; }\n\n.fa-circle-h::before {\n content: \"\\f47e\"; }\n\n.fa-hospital-symbol::before {\n content: \"\\f47e\"; }\n\n.fa-merge::before {\n content: \"\\e526\"; }\n\n.fa-pager::before {\n content: \"\\f815\"; }\n\n.fa-cart-minus::before {\n content: \"\\e0db\"; }\n\n.fa-address-book::before {\n content: \"\\f2b9\"; }\n\n.fa-contact-book::before {\n content: \"\\f2b9\"; }\n\n.fa-pan-frying::before {\n content: \"\\e42c\"; }\n\n.fa-grid::before {\n content: \"\\e195\"; }\n\n.fa-grid-3::before {\n content: \"\\e195\"; }\n\n.fa-football-helmet::before {\n content: \"\\f44f\"; }\n\n.fa-hand-love::before {\n content: \"\\e1a5\"; }\n\n.fa-trees::before {\n content: \"\\f724\"; }\n\n.fa-strikethrough::before {\n content: \"\\f0cc\"; }\n\n.fa-page::before {\n content: \"\\e428\"; }\n\n.fa-k::before {\n content: \"\\4b\"; }\n\n.fa-diagram-previous::before {\n content: \"\\e478\"; }\n\n.fa-gauge-min::before {\n content: \"\\f628\"; }\n\n.fa-tachometer-alt-slowest::before {\n content: \"\\f628\"; }\n\n.fa-folder-grid::before {\n content: \"\\e188\"; }\n\n.fa-eggplant::before {\n content: \"\\e16c\"; }\n\n.fa-excavator::before {\n content: \"\\e656\"; }\n\n.fa-ram::before {\n content: \"\\f70a\"; }\n\n.fa-landmark-flag::before {\n content: \"\\e51c\"; }\n\n.fa-lips::before {\n content: \"\\f600\"; }\n\n.fa-pencil::before {\n content: \"\\f303\"; }\n\n.fa-pencil-alt::before {\n content: \"\\f303\"; }\n\n.fa-backward::before {\n content: \"\\f04a\"; }\n\n.fa-caret-right::before {\n content: \"\\f0da\"; }\n\n.fa-comments::before {\n content: \"\\f086\"; }\n\n.fa-paste::before {\n content: \"\\f0ea\"; }\n\n.fa-file-clipboard::before {\n content: \"\\f0ea\"; }\n\n.fa-desktop-arrow-down::before {\n content: \"\\e155\"; }\n\n.fa-code-pull-request::before {\n content: \"\\e13c\"; }\n\n.fa-pumpkin::before {\n content: \"\\f707\"; }\n\n.fa-clipboard-list::before {\n content: \"\\f46d\"; }\n\n.fa-pen-field::before {\n content: \"\\e211\"; }\n\n.fa-blueberries::before {\n content: \"\\e2e8\"; }\n\n.fa-truck-ramp-box::before {\n content: \"\\f4de\"; }\n\n.fa-truck-loading::before {\n content: \"\\f4de\"; }\n\n.fa-note::before {\n content: \"\\e1ff\"; }\n\n.fa-arrow-down-to-square::before {\n content: \"\\e096\"; }\n\n.fa-user-check::before {\n content: \"\\f4fc\"; }\n\n.fa-cloud-xmark::before {\n content: \"\\e35f\"; }\n\n.fa-vial-virus::before {\n content: \"\\e597\"; }\n\n.fa-book-blank::before {\n content: \"\\f5d9\"; }\n\n.fa-book-alt::before {\n content: \"\\f5d9\"; }\n\n.fa-golf-flag-hole::before {\n content: \"\\e3ac\"; }\n\n.fa-message-arrow-down::before {\n content: \"\\e1db\"; }\n\n.fa-comment-alt-arrow-down::before {\n content: \"\\e1db\"; }\n\n.fa-face-unamused::before {\n content: \"\\e39f\"; }\n\n.fa-sheet-plastic::before {\n content: \"\\e571\"; }\n\n.fa-circle-9::before {\n content: \"\\e0f6\"; }\n\n.fa-blog::before {\n content: \"\\f781\"; }\n\n.fa-user-ninja::before {\n content: \"\\f504\"; }\n\n.fa-pencil-slash::before {\n content: \"\\e215\"; }\n\n.fa-bowling-pins::before {\n content: \"\\f437\"; }\n\n.fa-person-arrow-up-from-line::before {\n content: \"\\e539\"; }\n\n.fa-down-right::before {\n content: \"\\e16b\"; }\n\n.fa-scroll-torah::before {\n content: \"\\f6a0\"; }\n\n.fa-torah::before {\n content: \"\\f6a0\"; }\n\n.fa-webhook::before {\n content: \"\\e5d5\"; }\n\n.fa-blinds-open::before {\n content: \"\\f8fc\"; }\n\n.fa-fence::before {\n content: \"\\e303\"; }\n\n.fa-up::before {\n content: \"\\f357\"; }\n\n.fa-arrow-alt-up::before {\n content: \"\\f357\"; }\n\n.fa-broom-ball::before {\n content: \"\\f458\"; }\n\n.fa-quidditch::before {\n content: \"\\f458\"; }\n\n.fa-quidditch-broom-ball::before {\n content: \"\\f458\"; }\n\n.fa-drumstick::before {\n content: \"\\f6d6\"; }\n\n.fa-square-v::before {\n content: \"\\e284\"; }\n\n.fa-face-awesome::before {\n content: \"\\e409\"; }\n\n.fa-gave-dandy::before {\n content: \"\\e409\"; }\n\n.fa-dial-off::before {\n content: \"\\e162\"; }\n\n.fa-toggle-off::before {\n content: \"\\f204\"; }\n\n.fa-face-smile-horns::before {\n content: \"\\e391\"; }\n\n.fa-box-archive::before {\n content: \"\\f187\"; }\n\n.fa-archive::before {\n content: \"\\f187\"; }\n\n.fa-grapes::before {\n content: \"\\e306\"; }\n\n.fa-person-drowning::before {\n content: \"\\e545\"; }\n\n.fa-dial-max::before {\n content: \"\\e15e\"; }\n\n.fa-circle-m::before {\n content: \"\\e115\"; }\n\n.fa-calendar-image::before {\n content: \"\\e0d4\"; }\n\n.fa-circle-caret-down::before {\n content: \"\\f32d\"; }\n\n.fa-caret-circle-down::before {\n content: \"\\f32d\"; }\n\n.fa-arrow-down-9-1::before {\n content: \"\\f886\"; }\n\n.fa-sort-numeric-desc::before {\n content: \"\\f886\"; }\n\n.fa-sort-numeric-down-alt::before {\n content: \"\\f886\"; }\n\n.fa-face-grin-tongue-squint::before {\n content: \"\\f58a\"; }\n\n.fa-grin-tongue-squint::before {\n content: \"\\f58a\"; }\n\n.fa-shish-kebab::before {\n content: \"\\f821\"; }\n\n.fa-spray-can::before {\n content: \"\\f5bd\"; }\n\n.fa-alarm-snooze::before {\n content: \"\\f845\"; }\n\n.fa-scarecrow::before {\n content: \"\\f70d\"; }\n\n.fa-truck-monster::before {\n content: \"\\f63b\"; }\n\n.fa-gift-card::before {\n content: \"\\f663\"; }\n\n.fa-w::before {\n content: \"\\57\"; }\n\n.fa-code-pull-request-draft::before {\n content: \"\\e3fa\"; }\n\n.fa-square-b::before {\n content: \"\\e264\"; }\n\n.fa-elephant::before {\n content: \"\\f6da\"; }\n\n.fa-earth-africa::before {\n content: \"\\f57c\"; }\n\n.fa-globe-africa::before {\n content: \"\\f57c\"; }\n\n.fa-rainbow::before {\n content: \"\\f75b\"; }\n\n.fa-circle-notch::before {\n content: \"\\f1ce\"; }\n\n.fa-tablet-screen-button::before {\n content: \"\\f3fa\"; }\n\n.fa-tablet-alt::before {\n content: \"\\f3fa\"; }\n\n.fa-paw::before {\n content: \"\\f1b0\"; }\n\n.fa-message-question::before {\n content: \"\\e1e3\"; }\n\n.fa-cloud::before {\n content: \"\\f0c2\"; }\n\n.fa-trowel-bricks::before {\n content: \"\\e58a\"; }\n\n.fa-square-3::before {\n content: \"\\e258\"; }\n\n.fa-face-flushed::before {\n content: \"\\f579\"; }\n\n.fa-flushed::before {\n content: \"\\f579\"; }\n\n.fa-hospital-user::before {\n content: \"\\f80d\"; }\n\n.fa-microwave::before {\n content: \"\\e01b\"; }\n\n.fa-chf-sign::before {\n content: \"\\e602\"; }\n\n.fa-tent-arrow-left-right::before {\n content: \"\\e57f\"; }\n\n.fa-cart-circle-arrow-up::before {\n content: \"\\e3f0\"; }\n\n.fa-trash-clock::before {\n content: \"\\e2b0\"; }\n\n.fa-reflect-both::before {\n content: \"\\e66f\"; }\n\n.fa-gavel::before {\n content: \"\\f0e3\"; }\n\n.fa-legal::before {\n content: \"\\f0e3\"; }\n\n.fa-sprinkler-ceiling::before {\n content: \"\\e44c\"; }\n\n.fa-browsers::before {\n content: \"\\e0cb\"; }\n\n.fa-trillium::before {\n content: \"\\e588\"; }\n\n.fa-music-slash::before {\n content: \"\\f8d1\"; }\n\n.fa-truck-ramp::before {\n content: \"\\f4e0\"; }\n\n.fa-binoculars::before {\n content: \"\\f1e5\"; }\n\n.fa-microphone-slash::before {\n content: \"\\f131\"; }\n\n.fa-box-tissue::before {\n content: \"\\e05b\"; }\n\n.fa-circle-c::before {\n content: \"\\e101\"; }\n\n.fa-star-christmas::before {\n content: \"\\f7d4\"; }\n\n.fa-chart-bullet::before {\n content: \"\\e0e1\"; }\n\n.fa-motorcycle::before {\n content: \"\\f21c\"; }\n\n.fa-tree-christmas::before {\n content: \"\\f7db\"; }\n\n.fa-tire-flat::before {\n content: \"\\f632\"; }\n\n.fa-sunglasses::before {\n content: \"\\f892\"; }\n\n.fa-badge::before {\n content: \"\\f335\"; }\n\n.fa-message-pen::before {\n content: \"\\f4a4\"; }\n\n.fa-comment-alt-edit::before {\n content: \"\\f4a4\"; }\n\n.fa-message-edit::before {\n content: \"\\f4a4\"; }\n\n.fa-bell-concierge::before {\n content: \"\\f562\"; }\n\n.fa-concierge-bell::before {\n content: \"\\f562\"; }\n\n.fa-pen-ruler::before {\n content: \"\\f5ae\"; }\n\n.fa-pencil-ruler::before {\n content: \"\\f5ae\"; }\n\n.fa-file-mp3::before {\n content: \"\\e648\"; }\n\n.fa-arrow-progress::before {\n content: \"\\e5df\"; }\n\n.fa-chess-rook-piece::before {\n content: \"\\f448\"; }\n\n.fa-chess-rook-alt::before {\n content: \"\\f448\"; }\n\n.fa-square-root::before {\n content: \"\\f697\"; }\n\n.fa-album-collection-circle-plus::before {\n content: \"\\e48e\"; }\n\n.fa-people-arrows::before {\n content: \"\\e068\"; }\n\n.fa-people-arrows-left-right::before {\n content: \"\\e068\"; }\n\n.fa-sign-post::before {\n content: \"\\e624\"; }\n\n.fa-face-angry-horns::before {\n content: \"\\e368\"; }\n\n.fa-mars-and-venus-burst::before {\n content: \"\\e523\"; }\n\n.fa-tombstone::before {\n content: \"\\f720\"; }\n\n.fa-square-caret-right::before {\n content: \"\\f152\"; }\n\n.fa-caret-square-right::before {\n content: \"\\f152\"; }\n\n.fa-scissors::before {\n content: \"\\f0c4\"; }\n\n.fa-cut::before {\n content: \"\\f0c4\"; }\n\n.fa-list-music::before {\n content: \"\\f8c9\"; }\n\n.fa-sun-plant-wilt::before {\n content: \"\\e57a\"; }\n\n.fa-toilets-portable::before {\n content: \"\\e584\"; }\n\n.fa-hockey-puck::before {\n content: \"\\f453\"; }\n\n.fa-mustache::before {\n content: \"\\e5bc\"; }\n\n.fa-hyphen::before {\n content: \"\\2d\"; }\n\n.fa-table::before {\n content: \"\\f0ce\"; }\n\n.fa-user-chef::before {\n content: \"\\e3d2\"; }\n\n.fa-message-image::before {\n content: \"\\e1e0\"; }\n\n.fa-comment-alt-image::before {\n content: \"\\e1e0\"; }\n\n.fa-users-medical::before {\n content: \"\\f830\"; }\n\n.fa-sensor-triangle-exclamation::before {\n content: \"\\e029\"; }\n\n.fa-sensor-alert::before {\n content: \"\\e029\"; }\n\n.fa-magnifying-glass-arrow-right::before {\n content: \"\\e521\"; }\n\n.fa-tachograph-digital::before {\n content: \"\\f566\"; }\n\n.fa-digital-tachograph::before {\n content: \"\\f566\"; }\n\n.fa-face-mask::before {\n content: \"\\e37f\"; }\n\n.fa-pickleball::before {\n content: \"\\e435\"; }\n\n.fa-star-sharp-half::before {\n content: \"\\e28c\"; }\n\n.fa-users-slash::before {\n content: \"\\e073\"; }\n\n.fa-clover::before {\n content: \"\\e139\"; }\n\n.fa-meat::before {\n content: \"\\f814\"; }\n\n.fa-reply::before {\n content: \"\\f3e5\"; }\n\n.fa-mail-reply::before {\n content: \"\\f3e5\"; }\n\n.fa-star-and-crescent::before {\n content: \"\\f699\"; }\n\n.fa-empty-set::before {\n content: \"\\f656\"; }\n\n.fa-house-fire::before {\n content: \"\\e50c\"; }\n\n.fa-square-minus::before {\n content: \"\\f146\"; }\n\n.fa-minus-square::before {\n content: \"\\f146\"; }\n\n.fa-helicopter::before {\n content: \"\\f533\"; }\n\n.fa-bird::before {\n content: \"\\e469\"; }\n\n.fa-compass::before {\n content: \"\\f14e\"; }\n\n.fa-square-caret-down::before {\n content: \"\\f150\"; }\n\n.fa-caret-square-down::before {\n content: \"\\f150\"; }\n\n.fa-heart-half-stroke::before {\n content: \"\\e1ac\"; }\n\n.fa-heart-half-alt::before {\n content: \"\\e1ac\"; }\n\n.fa-file-circle-question::before {\n content: \"\\e4ef\"; }\n\n.fa-truck-utensils::before {\n content: \"\\e628\"; }\n\n.fa-laptop-code::before {\n content: \"\\f5fc\"; }\n\n.fa-joystick::before {\n content: \"\\f8c5\"; }\n\n.fa-grill-fire::before {\n content: \"\\e5a4\"; }\n\n.fa-rectangle-vertical-history::before {\n content: \"\\e237\"; }\n\n.fa-swatchbook::before {\n content: \"\\f5c3\"; }\n\n.fa-prescription-bottle::before {\n content: \"\\f485\"; }\n\n.fa-bars::before {\n content: \"\\f0c9\"; }\n\n.fa-navicon::before {\n content: \"\\f0c9\"; }\n\n.fa-keyboard-left::before {\n content: \"\\e1c3\"; }\n\n.fa-people-group::before {\n content: \"\\e533\"; }\n\n.fa-hourglass-end::before {\n content: \"\\f253\"; }\n\n.fa-hourglass-3::before {\n content: \"\\f253\"; }\n\n.fa-heart-crack::before {\n content: \"\\f7a9\"; }\n\n.fa-heart-broken::before {\n content: \"\\f7a9\"; }\n\n.fa-face-beam-hand-over-mouth::before {\n content: \"\\e47c\"; }\n\n.fa-droplet-percent::before {\n content: \"\\f750\"; }\n\n.fa-humidity::before {\n content: \"\\f750\"; }\n\n.fa-square-up-right::before {\n content: \"\\f360\"; }\n\n.fa-external-link-square-alt::before {\n content: \"\\f360\"; }\n\n.fa-face-kiss-beam::before {\n content: \"\\f597\"; }\n\n.fa-kiss-beam::before {\n content: \"\\f597\"; }\n\n.fa-corn::before {\n content: \"\\f6c7\"; }\n\n.fa-roller-coaster::before {\n content: \"\\e324\"; }\n\n.fa-photo-film-music::before {\n content: \"\\e228\"; }\n\n.fa-radar::before {\n content: \"\\e024\"; }\n\n.fa-sickle::before {\n content: \"\\f822\"; }\n\n.fa-film::before {\n content: \"\\f008\"; }\n\n.fa-coconut::before {\n content: \"\\e2f6\"; }\n\n.fa-ruler-horizontal::before {\n content: \"\\f547\"; }\n\n.fa-shield-cross::before {\n content: \"\\f712\"; }\n\n.fa-cassette-tape::before {\n content: \"\\f8ab\"; }\n\n.fa-square-terminal::before {\n content: \"\\e32a\"; }\n\n.fa-people-robbery::before {\n content: \"\\e536\"; }\n\n.fa-lightbulb::before {\n content: \"\\f0eb\"; }\n\n.fa-caret-left::before {\n content: \"\\f0d9\"; }\n\n.fa-comment-middle::before {\n content: \"\\e149\"; }\n\n.fa-trash-can-list::before {\n content: \"\\e2ab\"; }\n\n.fa-block::before {\n content: \"\\e46a\"; }\n\n.fa-circle-exclamation::before {\n content: \"\\f06a\"; }\n\n.fa-exclamation-circle::before {\n content: \"\\f06a\"; }\n\n.fa-school-circle-xmark::before {\n content: \"\\e56d\"; }\n\n.fa-arrow-right-from-bracket::before {\n content: \"\\f08b\"; }\n\n.fa-sign-out::before {\n content: \"\\f08b\"; }\n\n.fa-face-frown-slight::before {\n content: \"\\e376\"; }\n\n.fa-circle-chevron-down::before {\n content: \"\\f13a\"; }\n\n.fa-chevron-circle-down::before {\n content: \"\\f13a\"; }\n\n.fa-sidebar-flip::before {\n content: \"\\e24f\"; }\n\n.fa-unlock-keyhole::before {\n content: \"\\f13e\"; }\n\n.fa-unlock-alt::before {\n content: \"\\f13e\"; }\n\n.fa-temperature-list::before {\n content: \"\\e299\"; }\n\n.fa-cloud-showers-heavy::before {\n content: \"\\f740\"; }\n\n.fa-headphones-simple::before {\n content: \"\\f58f\"; }\n\n.fa-headphones-alt::before {\n content: \"\\f58f\"; }\n\n.fa-sitemap::before {\n content: \"\\f0e8\"; }\n\n.fa-pipe-section::before {\n content: \"\\e438\"; }\n\n.fa-space-station-moon-construction::before {\n content: \"\\e034\"; }\n\n.fa-space-station-moon-alt::before {\n content: \"\\e034\"; }\n\n.fa-circle-dollar-to-slot::before {\n content: \"\\f4b9\"; }\n\n.fa-donate::before {\n content: \"\\f4b9\"; }\n\n.fa-memory::before {\n content: \"\\f538\"; }\n\n.fa-face-sleeping::before {\n content: \"\\e38d\"; }\n\n.fa-road-spikes::before {\n content: \"\\e568\"; }\n\n.fa-fire-burner::before {\n content: \"\\e4f1\"; }\n\n.fa-squirrel::before {\n content: \"\\f71a\"; }\n\n.fa-arrow-up-to-line::before {\n content: \"\\f341\"; }\n\n.fa-arrow-to-top::before {\n content: \"\\f341\"; }\n\n.fa-flag::before {\n content: \"\\f024\"; }\n\n.fa-face-cowboy-hat::before {\n content: \"\\e36e\"; }\n\n.fa-hanukiah::before {\n content: \"\\f6e6\"; }\n\n.fa-chart-scatter-3d::before {\n content: \"\\e0e8\"; }\n\n.fa-display-chart-up::before {\n content: \"\\e5e3\"; }\n\n.fa-square-code::before {\n content: \"\\e267\"; }\n\n.fa-feather::before {\n content: \"\\f52d\"; }\n\n.fa-volume-low::before {\n content: \"\\f027\"; }\n\n.fa-volume-down::before {\n content: \"\\f027\"; }\n\n.fa-xmark-to-slot::before {\n content: \"\\f771\"; }\n\n.fa-times-to-slot::before {\n content: \"\\f771\"; }\n\n.fa-vote-nay::before {\n content: \"\\f771\"; }\n\n.fa-box-taped::before {\n content: \"\\f49a\"; }\n\n.fa-box-alt::before {\n content: \"\\f49a\"; }\n\n.fa-comment-slash::before {\n content: \"\\f4b3\"; }\n\n.fa-swords::before {\n content: \"\\f71d\"; }\n\n.fa-cloud-sun-rain::before {\n content: \"\\f743\"; }\n\n.fa-album::before {\n content: \"\\f89f\"; }\n\n.fa-circle-n::before {\n content: \"\\e118\"; }\n\n.fa-compress::before {\n content: \"\\f066\"; }\n\n.fa-wheat-awn::before {\n content: \"\\e2cd\"; }\n\n.fa-wheat-alt::before {\n content: \"\\e2cd\"; }\n\n.fa-ankh::before {\n content: \"\\f644\"; }\n\n.fa-hands-holding-child::before {\n content: \"\\e4fa\"; }\n\n.fa-asterisk::before {\n content: \"\\2a\"; }\n\n.fa-key-skeleton-left-right::before {\n content: \"\\e3b4\"; }\n\n.fa-comment-lines::before {\n content: \"\\f4b0\"; }\n\n.fa-luchador-mask::before {\n content: \"\\f455\"; }\n\n.fa-luchador::before {\n content: \"\\f455\"; }\n\n.fa-mask-luchador::before {\n content: \"\\f455\"; }\n\n.fa-square-check::before {\n content: \"\\f14a\"; }\n\n.fa-check-square::before {\n content: \"\\f14a\"; }\n\n.fa-shredder::before {\n content: \"\\f68a\"; }\n\n.fa-book-open-cover::before {\n content: \"\\e0c0\"; }\n\n.fa-book-open-alt::before {\n content: \"\\e0c0\"; }\n\n.fa-sandwich::before {\n content: \"\\f81f\"; }\n\n.fa-peseta-sign::before {\n content: \"\\e221\"; }\n\n.fa-square-parking-slash::before {\n content: \"\\f617\"; }\n\n.fa-parking-slash::before {\n content: \"\\f617\"; }\n\n.fa-train-tunnel::before {\n content: \"\\e454\"; }\n\n.fa-heading::before {\n content: \"\\f1dc\"; }\n\n.fa-header::before {\n content: \"\\f1dc\"; }\n\n.fa-ghost::before {\n content: \"\\f6e2\"; }\n\n.fa-face-anguished::before {\n content: \"\\e369\"; }\n\n.fa-hockey-sticks::before {\n content: \"\\f454\"; }\n\n.fa-abacus::before {\n content: \"\\f640\"; }\n\n.fa-film-simple::before {\n content: \"\\f3a0\"; }\n\n.fa-film-alt::before {\n content: \"\\f3a0\"; }\n\n.fa-list::before {\n content: \"\\f03a\"; }\n\n.fa-list-squares::before {\n content: \"\\f03a\"; }\n\n.fa-tree-palm::before {\n content: \"\\f82b\"; }\n\n.fa-square-phone-flip::before {\n content: \"\\f87b\"; }\n\n.fa-phone-square-alt::before {\n content: \"\\f87b\"; }\n\n.fa-cart-plus::before {\n content: \"\\f217\"; }\n\n.fa-gamepad::before {\n content: \"\\f11b\"; }\n\n.fa-border-center-v::before {\n content: \"\\f89d\"; }\n\n.fa-circle-dot::before {\n content: \"\\f192\"; }\n\n.fa-dot-circle::before {\n content: \"\\f192\"; }\n\n.fa-clipboard-medical::before {\n content: \"\\e133\"; }\n\n.fa-face-dizzy::before {\n content: \"\\f567\"; }\n\n.fa-dizzy::before {\n content: \"\\f567\"; }\n\n.fa-egg::before {\n content: \"\\f7fb\"; }\n\n.fa-up-to-line::before {\n content: \"\\f34d\"; }\n\n.fa-arrow-alt-to-top::before {\n content: \"\\f34d\"; }\n\n.fa-house-medical-circle-xmark::before {\n content: \"\\e513\"; }\n\n.fa-watch-fitness::before {\n content: \"\\f63e\"; }\n\n.fa-clock-nine-thirty::before {\n content: \"\\e34d\"; }\n\n.fa-campground::before {\n content: \"\\f6bb\"; }\n\n.fa-folder-plus::before {\n content: \"\\f65e\"; }\n\n.fa-jug::before {\n content: \"\\f8c6\"; }\n\n.fa-futbol::before {\n content: \"\\f1e3\"; }\n\n.fa-futbol-ball::before {\n content: \"\\f1e3\"; }\n\n.fa-soccer-ball::before {\n content: \"\\f1e3\"; }\n\n.fa-snow-blowing::before {\n content: \"\\f761\"; }\n\n.fa-paintbrush::before {\n content: \"\\f1fc\"; }\n\n.fa-paint-brush::before {\n content: \"\\f1fc\"; }\n\n.fa-lock::before {\n content: \"\\f023\"; }\n\n.fa-arrow-down-from-line::before {\n content: \"\\f345\"; }\n\n.fa-arrow-from-top::before {\n content: \"\\f345\"; }\n\n.fa-gas-pump::before {\n content: \"\\f52f\"; }\n\n.fa-signal-bars-slash::before {\n content: \"\\f694\"; }\n\n.fa-signal-alt-slash::before {\n content: \"\\f694\"; }\n\n.fa-monkey::before {\n content: \"\\f6fb\"; }\n\n.fa-rectangle-pro::before {\n content: \"\\e235\"; }\n\n.fa-pro::before {\n content: \"\\e235\"; }\n\n.fa-house-night::before {\n content: \"\\e010\"; }\n\n.fa-hot-tub-person::before {\n content: \"\\f593\"; }\n\n.fa-hot-tub::before {\n content: \"\\f593\"; }\n\n.fa-globe-pointer::before {\n content: \"\\e60e\"; }\n\n.fa-blanket::before {\n content: \"\\f498\"; }\n\n.fa-map-location::before {\n content: \"\\f59f\"; }\n\n.fa-map-marked::before {\n content: \"\\f59f\"; }\n\n.fa-house-flood-water::before {\n content: \"\\e50e\"; }\n\n.fa-comments-question-check::before {\n content: \"\\e14f\"; }\n\n.fa-tree::before {\n content: \"\\f1bb\"; }\n\n.fa-arrows-cross::before {\n content: \"\\e0a2\"; }\n\n.fa-backpack::before {\n content: \"\\f5d4\"; }\n\n.fa-square-small::before {\n content: \"\\e27e\"; }\n\n.fa-folder-arrow-up::before {\n content: \"\\e054\"; }\n\n.fa-folder-upload::before {\n content: \"\\e054\"; }\n\n.fa-bridge-lock::before {\n content: \"\\e4cc\"; }\n\n.fa-crosshairs-simple::before {\n content: \"\\e59f\"; }\n\n.fa-sack-dollar::before {\n content: \"\\f81d\"; }\n\n.fa-pen-to-square::before {\n content: \"\\f044\"; }\n\n.fa-edit::before {\n content: \"\\f044\"; }\n\n.fa-square-sliders::before {\n content: \"\\f3f0\"; }\n\n.fa-sliders-h-square::before {\n content: \"\\f3f0\"; }\n\n.fa-car-side::before {\n content: \"\\f5e4\"; }\n\n.fa-message-middle-top::before {\n content: \"\\e1e2\"; }\n\n.fa-comment-middle-top-alt::before {\n content: \"\\e1e2\"; }\n\n.fa-lightbulb-on::before {\n content: \"\\f672\"; }\n\n.fa-knife::before {\n content: \"\\f2e4\"; }\n\n.fa-utensil-knife::before {\n content: \"\\f2e4\"; }\n\n.fa-share-nodes::before {\n content: \"\\f1e0\"; }\n\n.fa-share-alt::before {\n content: \"\\f1e0\"; }\n\n.fa-display-chart-up-circle-dollar::before {\n content: \"\\e5e6\"; }\n\n.fa-wave-sine::before {\n content: \"\\f899\"; }\n\n.fa-heart-circle-minus::before {\n content: \"\\e4ff\"; }\n\n.fa-circle-w::before {\n content: \"\\e12c\"; }\n\n.fa-circle-calendar::before {\n content: \"\\e102\"; }\n\n.fa-calendar-circle::before {\n content: \"\\e102\"; }\n\n.fa-hourglass-half::before {\n content: \"\\f252\"; }\n\n.fa-hourglass-2::before {\n content: \"\\f252\"; }\n\n.fa-microscope::before {\n content: \"\\f610\"; }\n\n.fa-sunset::before {\n content: \"\\f767\"; }\n\n.fa-sink::before {\n content: \"\\e06d\"; }\n\n.fa-calendar-exclamation::before {\n content: \"\\f334\"; }\n\n.fa-truck-container-empty::before {\n content: \"\\e2b5\"; }\n\n.fa-hand-heart::before {\n content: \"\\f4bc\"; }\n\n.fa-bag-shopping::before {\n content: \"\\f290\"; }\n\n.fa-shopping-bag::before {\n content: \"\\f290\"; }\n\n.fa-arrow-down-z-a::before {\n content: \"\\f881\"; }\n\n.fa-sort-alpha-desc::before {\n content: \"\\f881\"; }\n\n.fa-sort-alpha-down-alt::before {\n content: \"\\f881\"; }\n\n.fa-mitten::before {\n content: \"\\f7b5\"; }\n\n.fa-reply-clock::before {\n content: \"\\e239\"; }\n\n.fa-reply-time::before {\n content: \"\\e239\"; }\n\n.fa-person-rays::before {\n content: \"\\e54d\"; }\n\n.fa-right::before {\n content: \"\\f356\"; }\n\n.fa-arrow-alt-right::before {\n content: \"\\f356\"; }\n\n.fa-circle-f::before {\n content: \"\\e10e\"; }\n\n.fa-users::before {\n content: \"\\f0c0\"; }\n\n.fa-face-pleading::before {\n content: \"\\e386\"; }\n\n.fa-eye-slash::before {\n content: \"\\f070\"; }\n\n.fa-flask-vial::before {\n content: \"\\e4f3\"; }\n\n.fa-police-box::before {\n content: \"\\e021\"; }\n\n.fa-cucumber::before {\n content: \"\\e401\"; }\n\n.fa-head-side-brain::before {\n content: \"\\f808\"; }\n\n.fa-hand::before {\n content: \"\\f256\"; }\n\n.fa-hand-paper::before {\n content: \"\\f256\"; }\n\n.fa-person-biking-mountain::before {\n content: \"\\f84b\"; }\n\n.fa-biking-mountain::before {\n content: \"\\f84b\"; }\n\n.fa-utensils-slash::before {\n content: \"\\e464\"; }\n\n.fa-print-magnifying-glass::before {\n content: \"\\f81a\"; }\n\n.fa-print-search::before {\n content: \"\\f81a\"; }\n\n.fa-turn-right::before {\n content: \"\\e639\"; }\n\n.fa-folder-bookmark::before {\n content: \"\\e186\"; }\n\n.fa-arrow-turn-left-down::before {\n content: \"\\e633\"; }\n\n.fa-om::before {\n content: \"\\f679\"; }\n\n.fa-pi::before {\n content: \"\\f67e\"; }\n\n.fa-flask-round-potion::before {\n content: \"\\f6e1\"; }\n\n.fa-flask-potion::before {\n content: \"\\f6e1\"; }\n\n.fa-face-shush::before {\n content: \"\\e38c\"; }\n\n.fa-worm::before {\n content: \"\\e599\"; }\n\n.fa-house-circle-xmark::before {\n content: \"\\e50b\"; }\n\n.fa-plug::before {\n content: \"\\f1e6\"; }\n\n.fa-calendar-circle-exclamation::before {\n content: \"\\e46e\"; }\n\n.fa-square-i::before {\n content: \"\\e272\"; }\n\n.fa-chevron-up::before {\n content: \"\\f077\"; }\n\n.fa-face-saluting::before {\n content: \"\\e484\"; }\n\n.fa-gauge-simple-low::before {\n content: \"\\f62c\"; }\n\n.fa-tachometer-slow::before {\n content: \"\\f62c\"; }\n\n.fa-face-persevering::before {\n content: \"\\e385\"; }\n\n.fa-circle-camera::before {\n content: \"\\e103\"; }\n\n.fa-camera-circle::before {\n content: \"\\e103\"; }\n\n.fa-hand-spock::before {\n content: \"\\f259\"; }\n\n.fa-spider-web::before {\n content: \"\\f719\"; }\n\n.fa-circle-microphone::before {\n content: \"\\e116\"; }\n\n.fa-microphone-circle::before {\n content: \"\\e116\"; }\n\n.fa-book-arrow-up::before {\n content: \"\\e0ba\"; }\n\n.fa-popsicle::before {\n content: \"\\e43e\"; }\n\n.fa-command::before {\n content: \"\\e142\"; }\n\n.fa-blinds::before {\n content: \"\\f8fb\"; }\n\n.fa-stopwatch::before {\n content: \"\\f2f2\"; }\n\n.fa-saxophone::before {\n content: \"\\f8dc\"; }\n\n.fa-square-2::before {\n content: \"\\e257\"; }\n\n.fa-field-hockey-stick-ball::before {\n content: \"\\f44c\"; }\n\n.fa-field-hockey::before {\n content: \"\\f44c\"; }\n\n.fa-arrow-up-square-triangle::before {\n content: \"\\f88b\"; }\n\n.fa-sort-shapes-up-alt::before {\n content: \"\\f88b\"; }\n\n.fa-face-scream::before {\n content: \"\\e38b\"; }\n\n.fa-square-m::before {\n content: \"\\e276\"; }\n\n.fa-camera-web::before {\n content: \"\\f832\"; }\n\n.fa-webcam::before {\n content: \"\\f832\"; }\n\n.fa-comment-arrow-down::before {\n content: \"\\e143\"; }\n\n.fa-lightbulb-cfl::before {\n content: \"\\e5a6\"; }\n\n.fa-window-frame-open::before {\n content: \"\\e050\"; }\n\n.fa-face-kiss::before {\n content: \"\\f596\"; }\n\n.fa-kiss::before {\n content: \"\\f596\"; }\n\n.fa-bridge-circle-xmark::before {\n content: \"\\e4cb\"; }\n\n.fa-period::before {\n content: \"\\2e\"; }\n\n.fa-face-grin-tongue::before {\n content: \"\\f589\"; }\n\n.fa-grin-tongue::before {\n content: \"\\f589\"; }\n\n.fa-up-to-dotted-line::before {\n content: \"\\e457\"; }\n\n.fa-thought-bubble::before {\n content: \"\\e32e\"; }\n\n.fa-skeleton-ribs::before {\n content: \"\\e5cb\"; }\n\n.fa-raygun::before {\n content: \"\\e025\"; }\n\n.fa-flute::before {\n content: \"\\f8b9\"; }\n\n.fa-acorn::before {\n content: \"\\f6ae\"; }\n\n.fa-video-arrow-up-right::before {\n content: \"\\e2c9\"; }\n\n.fa-grate-droplet::before {\n content: \"\\e194\"; }\n\n.fa-seal-exclamation::before {\n content: \"\\e242\"; }\n\n.fa-chess-bishop::before {\n content: \"\\f43a\"; }\n\n.fa-message-sms::before {\n content: \"\\e1e5\"; }\n\n.fa-coffee-beans::before {\n content: \"\\e13f\"; }\n\n.fa-hat-witch::before {\n content: \"\\f6e7\"; }\n\n.fa-face-grin-wink::before {\n content: \"\\f58c\"; }\n\n.fa-grin-wink::before {\n content: \"\\f58c\"; }\n\n.fa-clock-three-thirty::before {\n content: \"\\e357\"; }\n\n.fa-ear-deaf::before {\n content: \"\\f2a4\"; }\n\n.fa-deaf::before {\n content: \"\\f2a4\"; }\n\n.fa-deafness::before {\n content: \"\\f2a4\"; }\n\n.fa-hard-of-hearing::before {\n content: \"\\f2a4\"; }\n\n.fa-alarm-clock::before {\n content: \"\\f34e\"; }\n\n.fa-eclipse::before {\n content: \"\\f749\"; }\n\n.fa-face-relieved::before {\n content: \"\\e389\"; }\n\n.fa-road-circle-check::before {\n content: \"\\e564\"; }\n\n.fa-dice-five::before {\n content: \"\\f523\"; }\n\n.fa-octagon-minus::before {\n content: \"\\f308\"; }\n\n.fa-minus-octagon::before {\n content: \"\\f308\"; }\n\n.fa-square-rss::before {\n content: \"\\f143\"; }\n\n.fa-rss-square::before {\n content: \"\\f143\"; }\n\n.fa-face-zany::before {\n content: \"\\e3a4\"; }\n\n.fa-tricycle::before {\n content: \"\\e5c3\"; }\n\n.fa-land-mine-on::before {\n content: \"\\e51b\"; }\n\n.fa-square-arrow-up-left::before {\n content: \"\\e263\"; }\n\n.fa-i-cursor::before {\n content: \"\\f246\"; }\n\n.fa-chart-mixed-up-circle-dollar::before {\n content: \"\\e5d9\"; }\n\n.fa-salt-shaker::before {\n content: \"\\e446\"; }\n\n.fa-stamp::before {\n content: \"\\f5bf\"; }\n\n.fa-file-plus::before {\n content: \"\\f319\"; }\n\n.fa-draw-square::before {\n content: \"\\f5ef\"; }\n\n.fa-toilet-paper-under-slash::before {\n content: \"\\e2a1\"; }\n\n.fa-toilet-paper-reverse-slash::before {\n content: \"\\e2a1\"; }\n\n.fa-stairs::before {\n content: \"\\e289\"; }\n\n.fa-drone-front::before {\n content: \"\\f860\"; }\n\n.fa-drone-alt::before {\n content: \"\\f860\"; }\n\n.fa-glass-empty::before {\n content: \"\\e191\"; }\n\n.fa-dial-high::before {\n content: \"\\e15c\"; }\n\n.fa-user-helmet-safety::before {\n content: \"\\f82c\"; }\n\n.fa-user-construction::before {\n content: \"\\f82c\"; }\n\n.fa-user-hard-hat::before {\n content: \"\\f82c\"; }\n\n.fa-i::before {\n content: \"\\49\"; }\n\n.fa-hryvnia-sign::before {\n content: \"\\f6f2\"; }\n\n.fa-hryvnia::before {\n content: \"\\f6f2\"; }\n\n.fa-arrow-down-left-and-arrow-up-right-to-center::before {\n content: \"\\e092\"; }\n\n.fa-pills::before {\n content: \"\\f484\"; }\n\n.fa-face-grin-wide::before {\n content: \"\\f581\"; }\n\n.fa-grin-alt::before {\n content: \"\\f581\"; }\n\n.fa-tooth::before {\n content: \"\\f5c9\"; }\n\n.fa-basketball-hoop::before {\n content: \"\\f435\"; }\n\n.fa-objects-align-bottom::before {\n content: \"\\e3bb\"; }\n\n.fa-v::before {\n content: \"\\56\"; }\n\n.fa-sparkles::before {\n content: \"\\f890\"; }\n\n.fa-squid::before {\n content: \"\\e450\"; }\n\n.fa-leafy-green::before {\n content: \"\\e41d\"; }\n\n.fa-circle-arrow-up-right::before {\n content: \"\\e0fc\"; }\n\n.fa-calendars::before {\n content: \"\\e0d7\"; }\n\n.fa-bangladeshi-taka-sign::before {\n content: \"\\e2e6\"; }\n\n.fa-bicycle::before {\n content: \"\\f206\"; }\n\n.fa-hammer-war::before {\n content: \"\\f6e4\"; }\n\n.fa-circle-d::before {\n content: \"\\e104\"; }\n\n.fa-spider-black-widow::before {\n content: \"\\f718\"; }\n\n.fa-staff-snake::before {\n content: \"\\e579\"; }\n\n.fa-rod-asclepius::before {\n content: \"\\e579\"; }\n\n.fa-rod-snake::before {\n content: \"\\e579\"; }\n\n.fa-staff-aesculapius::before {\n content: \"\\e579\"; }\n\n.fa-pear::before {\n content: \"\\e20c\"; }\n\n.fa-head-side-cough-slash::before {\n content: \"\\e062\"; }\n\n.fa-file-mov::before {\n content: \"\\e647\"; }\n\n.fa-triangle::before {\n content: \"\\f2ec\"; }\n\n.fa-apartment::before {\n content: \"\\e468\"; }\n\n.fa-truck-medical::before {\n content: \"\\f0f9\"; }\n\n.fa-ambulance::before {\n content: \"\\f0f9\"; }\n\n.fa-pepper::before {\n content: \"\\e432\"; }\n\n.fa-piano::before {\n content: \"\\f8d4\"; }\n\n.fa-gun-squirt::before {\n content: \"\\e19d\"; }\n\n.fa-wheat-awn-circle-exclamation::before {\n content: \"\\e598\"; }\n\n.fa-snowman::before {\n content: \"\\f7d0\"; }\n\n.fa-user-alien::before {\n content: \"\\e04a\"; }\n\n.fa-shield-check::before {\n content: \"\\f2f7\"; }\n\n.fa-mortar-pestle::before {\n content: \"\\f5a7\"; }\n\n.fa-road-barrier::before {\n content: \"\\e562\"; }\n\n.fa-chart-candlestick::before {\n content: \"\\e0e2\"; }\n\n.fa-briefcase-blank::before {\n content: \"\\e0c8\"; }\n\n.fa-school::before {\n content: \"\\f549\"; }\n\n.fa-igloo::before {\n content: \"\\f7ae\"; }\n\n.fa-bracket-round::before {\n content: \"\\28\"; }\n\n.fa-parenthesis::before {\n content: \"\\28\"; }\n\n.fa-joint::before {\n content: \"\\f595\"; }\n\n.fa-horse-saddle::before {\n content: \"\\f8c3\"; }\n\n.fa-mug-marshmallows::before {\n content: \"\\f7b7\"; }\n\n.fa-filters::before {\n content: \"\\e17e\"; }\n\n.fa-bell-on::before {\n content: \"\\f8fa\"; }\n\n.fa-angle-right::before {\n content: \"\\f105\"; }\n\n.fa-dial-med::before {\n content: \"\\e15f\"; }\n\n.fa-horse::before {\n content: \"\\f6f0\"; }\n\n.fa-q::before {\n content: \"\\51\"; }\n\n.fa-monitor-waveform::before {\n content: \"\\f611\"; }\n\n.fa-monitor-heart-rate::before {\n content: \"\\f611\"; }\n\n.fa-link-simple::before {\n content: \"\\e1cd\"; }\n\n.fa-whistle::before {\n content: \"\\f460\"; }\n\n.fa-g::before {\n content: \"\\47\"; }\n\n.fa-wine-glass-crack::before {\n content: \"\\f4bb\"; }\n\n.fa-fragile::before {\n content: \"\\f4bb\"; }\n\n.fa-slot-machine::before {\n content: \"\\e3ce\"; }\n\n.fa-notes-medical::before {\n content: \"\\f481\"; }\n\n.fa-car-wash::before {\n content: \"\\f5e6\"; }\n\n.fa-escalator::before {\n content: \"\\e171\"; }\n\n.fa-comment-image::before {\n content: \"\\e148\"; }\n\n.fa-temperature-half::before {\n content: \"\\f2c9\"; }\n\n.fa-temperature-2::before {\n content: \"\\f2c9\"; }\n\n.fa-thermometer-2::before {\n content: \"\\f2c9\"; }\n\n.fa-thermometer-half::before {\n content: \"\\f2c9\"; }\n\n.fa-dong-sign::before {\n content: \"\\e169\"; }\n\n.fa-donut::before {\n content: \"\\e406\"; }\n\n.fa-doughnut::before {\n content: \"\\e406\"; }\n\n.fa-capsules::before {\n content: \"\\f46b\"; }\n\n.fa-poo-storm::before {\n content: \"\\f75a\"; }\n\n.fa-poo-bolt::before {\n content: \"\\f75a\"; }\n\n.fa-tally-1::before {\n content: \"\\e294\"; }\n\n.fa-file-vector::before {\n content: \"\\e64c\"; }\n\n.fa-face-frown-open::before {\n content: \"\\f57a\"; }\n\n.fa-frown-open::before {\n content: \"\\f57a\"; }\n\n.fa-square-dashed::before {\n content: \"\\e269\"; }\n\n.fa-bag-shopping-plus::before {\n content: \"\\e651\"; }\n\n.fa-square-j::before {\n content: \"\\e273\"; }\n\n.fa-hand-point-up::before {\n content: \"\\f0a6\"; }\n\n.fa-money-bill::before {\n content: \"\\f0d6\"; }\n\n.fa-arrow-up-big-small::before {\n content: \"\\f88e\"; }\n\n.fa-sort-size-up::before {\n content: \"\\f88e\"; }\n\n.fa-barcode-read::before {\n content: \"\\f464\"; }\n\n.fa-baguette::before {\n content: \"\\e3d8\"; }\n\n.fa-bowl-soft-serve::before {\n content: \"\\e46b\"; }\n\n.fa-face-holding-back-tears::before {\n content: \"\\e482\"; }\n\n.fa-square-up::before {\n content: \"\\f353\"; }\n\n.fa-arrow-alt-square-up::before {\n content: \"\\f353\"; }\n\n.fa-train-subway-tunnel::before {\n content: \"\\e2a3\"; }\n\n.fa-subway-tunnel::before {\n content: \"\\e2a3\"; }\n\n.fa-square-exclamation::before {\n content: \"\\f321\"; }\n\n.fa-exclamation-square::before {\n content: \"\\f321\"; }\n\n.fa-semicolon::before {\n content: \"\\3b\"; }\n\n.fa-bookmark::before {\n content: \"\\f02e\"; }\n\n.fa-fan-table::before {\n content: \"\\e004\"; }\n\n.fa-align-justify::before {\n content: \"\\f039\"; }\n\n.fa-battery-low::before {\n content: \"\\e0b1\"; }\n\n.fa-battery-1::before {\n content: \"\\e0b1\"; }\n\n.fa-credit-card-front::before {\n content: \"\\f38a\"; }\n\n.fa-brain-arrow-curved-right::before {\n content: \"\\f677\"; }\n\n.fa-mind-share::before {\n content: \"\\f677\"; }\n\n.fa-umbrella-beach::before {\n content: \"\\f5ca\"; }\n\n.fa-helmet-un::before {\n content: \"\\e503\"; }\n\n.fa-location-smile::before {\n content: \"\\f60d\"; }\n\n.fa-map-marker-smile::before {\n content: \"\\f60d\"; }\n\n.fa-arrow-left-to-line::before {\n content: \"\\f33e\"; }\n\n.fa-arrow-to-left::before {\n content: \"\\f33e\"; }\n\n.fa-bullseye::before {\n content: \"\\f140\"; }\n\n.fa-sushi::before {\n content: \"\\e48a\"; }\n\n.fa-nigiri::before {\n content: \"\\e48a\"; }\n\n.fa-message-captions::before {\n content: \"\\e1de\"; }\n\n.fa-comment-alt-captions::before {\n content: \"\\e1de\"; }\n\n.fa-trash-list::before {\n content: \"\\e2b1\"; }\n\n.fa-bacon::before {\n content: \"\\f7e5\"; }\n\n.fa-option::before {\n content: \"\\e318\"; }\n\n.fa-raccoon::before {\n content: \"\\e613\"; }\n\n.fa-hand-point-down::before {\n content: \"\\f0a7\"; }\n\n.fa-arrow-up-from-bracket::before {\n content: \"\\e09a\"; }\n\n.fa-head-side-gear::before {\n content: \"\\e611\"; }\n\n.fa-trash-plus::before {\n content: \"\\e2b2\"; }\n\n.fa-file-cad::before {\n content: \"\\e672\"; }\n\n.fa-objects-align-top::before {\n content: \"\\e3c0\"; }\n\n.fa-folder::before {\n content: \"\\f07b\"; }\n\n.fa-folder-blank::before {\n content: \"\\f07b\"; }\n\n.fa-face-anxious-sweat::before {\n content: \"\\e36a\"; }\n\n.fa-credit-card-blank::before {\n content: \"\\f389\"; }\n\n.fa-file-waveform::before {\n content: \"\\f478\"; }\n\n.fa-file-medical-alt::before {\n content: \"\\f478\"; }\n\n.fa-microchip-ai::before {\n content: \"\\e1ec\"; }\n\n.fa-mug::before {\n content: \"\\f874\"; }\n\n.fa-plane-up-slash::before {\n content: \"\\e22e\"; }\n\n.fa-radiation::before {\n content: \"\\f7b9\"; }\n\n.fa-pen-circle::before {\n content: \"\\e20e\"; }\n\n.fa-bag-seedling::before {\n content: \"\\e5f2\"; }\n\n.fa-chart-simple::before {\n content: \"\\e473\"; }\n\n.fa-crutches::before {\n content: \"\\f7f8\"; }\n\n.fa-circle-parking::before {\n content: \"\\f615\"; }\n\n.fa-parking-circle::before {\n content: \"\\f615\"; }\n\n.fa-mars-stroke::before {\n content: \"\\f229\"; }\n\n.fa-leaf-oak::before {\n content: \"\\f6f7\"; }\n\n.fa-square-bolt::before {\n content: \"\\e265\"; }\n\n.fa-vial::before {\n content: \"\\f492\"; }\n\n.fa-gauge::before {\n content: \"\\f624\"; }\n\n.fa-dashboard::before {\n content: \"\\f624\"; }\n\n.fa-gauge-med::before {\n content: \"\\f624\"; }\n\n.fa-tachometer-alt-average::before {\n content: \"\\f624\"; }\n\n.fa-wand-magic-sparkles::before {\n content: \"\\e2ca\"; }\n\n.fa-magic-wand-sparkles::before {\n content: \"\\e2ca\"; }\n\n.fa-lambda::before {\n content: \"\\f66e\"; }\n\n.fa-e::before {\n content: \"\\45\"; }\n\n.fa-pizza::before {\n content: \"\\f817\"; }\n\n.fa-bowl-chopsticks-noodles::before {\n content: \"\\e2ea\"; }\n\n.fa-h3::before {\n content: \"\\f315\"; }\n\n.fa-pen-clip::before {\n content: \"\\f305\"; }\n\n.fa-pen-alt::before {\n content: \"\\f305\"; }\n\n.fa-bridge-circle-exclamation::before {\n content: \"\\e4ca\"; }\n\n.fa-badge-percent::before {\n content: \"\\f646\"; }\n\n.fa-rotate-reverse::before {\n content: \"\\e631\"; }\n\n.fa-user::before {\n content: \"\\f007\"; }\n\n.fa-sensor::before {\n content: \"\\e028\"; }\n\n.fa-comma::before {\n content: \"\\2c\"; }\n\n.fa-school-circle-check::before {\n content: \"\\e56b\"; }\n\n.fa-toilet-paper-under::before {\n content: \"\\e2a0\"; }\n\n.fa-toilet-paper-reverse::before {\n content: \"\\e2a0\"; }\n\n.fa-light-emergency::before {\n content: \"\\e41f\"; }\n\n.fa-arrow-down-to-arc::before {\n content: \"\\e4ae\"; }\n\n.fa-dumpster::before {\n content: \"\\f793\"; }\n\n.fa-van-shuttle::before {\n content: \"\\f5b6\"; }\n\n.fa-shuttle-van::before {\n content: \"\\f5b6\"; }\n\n.fa-building-user::before {\n content: \"\\e4da\"; }\n\n.fa-light-switch::before {\n content: \"\\e017\"; }\n\n.fa-square-caret-left::before {\n content: \"\\f191\"; }\n\n.fa-caret-square-left::before {\n content: \"\\f191\"; }\n\n.fa-highlighter::before {\n content: \"\\f591\"; }\n\n.fa-wave-pulse::before {\n content: \"\\f5f8\"; }\n\n.fa-heart-rate::before {\n content: \"\\f5f8\"; }\n\n.fa-key::before {\n content: \"\\f084\"; }\n\n.fa-arrow-left-to-bracket::before {\n content: \"\\e669\"; }\n\n.fa-hat-santa::before {\n content: \"\\f7a7\"; }\n\n.fa-tamale::before {\n content: \"\\e451\"; }\n\n.fa-box-check::before {\n content: \"\\f467\"; }\n\n.fa-bullhorn::before {\n content: \"\\f0a1\"; }\n\n.fa-steak::before {\n content: \"\\f824\"; }\n\n.fa-location-crosshairs-slash::before {\n content: \"\\f603\"; }\n\n.fa-location-slash::before {\n content: \"\\f603\"; }\n\n.fa-person-dolly::before {\n content: \"\\f4d0\"; }\n\n.fa-globe::before {\n content: \"\\f0ac\"; }\n\n.fa-synagogue::before {\n content: \"\\f69b\"; }\n\n.fa-file-chart-column::before {\n content: \"\\f659\"; }\n\n.fa-file-chart-line::before {\n content: \"\\f659\"; }\n\n.fa-person-half-dress::before {\n content: \"\\e548\"; }\n\n.fa-folder-image::before {\n content: \"\\e18a\"; }\n\n.fa-calendar-pen::before {\n content: \"\\f333\"; }\n\n.fa-calendar-edit::before {\n content: \"\\f333\"; }\n\n.fa-road-bridge::before {\n content: \"\\e563\"; }\n\n.fa-face-smile-tear::before {\n content: \"\\e393\"; }\n\n.fa-message-plus::before {\n content: \"\\f4a8\"; }\n\n.fa-comment-alt-plus::before {\n content: \"\\f4a8\"; }\n\n.fa-location-arrow::before {\n content: \"\\f124\"; }\n\n.fa-c::before {\n content: \"\\43\"; }\n\n.fa-tablet-button::before {\n content: \"\\f10a\"; }\n\n.fa-person-dress-fairy::before {\n content: \"\\e607\"; }\n\n.fa-rectangle-history-circle-user::before {\n content: \"\\e4a4\"; }\n\n.fa-building-lock::before {\n content: \"\\e4d6\"; }\n\n.fa-chart-line-up::before {\n content: \"\\e0e5\"; }\n\n.fa-mailbox::before {\n content: \"\\f813\"; }\n\n.fa-sign-posts::before {\n content: \"\\e625\"; }\n\n.fa-truck-bolt::before {\n content: \"\\e3d0\"; }\n\n.fa-pizza-slice::before {\n content: \"\\f818\"; }\n\n.fa-money-bill-wave::before {\n content: \"\\f53a\"; }\n\n.fa-chart-area::before {\n content: \"\\f1fe\"; }\n\n.fa-area-chart::before {\n content: \"\\f1fe\"; }\n\n.fa-house-flag::before {\n content: \"\\e50d\"; }\n\n.fa-circle-three-quarters-stroke::before {\n content: \"\\e5d4\"; }\n\n.fa-person-circle-minus::before {\n content: \"\\e540\"; }\n\n.fa-scalpel::before {\n content: \"\\f61d\"; }\n\n.fa-ban::before {\n content: \"\\f05e\"; }\n\n.fa-cancel::before {\n content: \"\\f05e\"; }\n\n.fa-bell-exclamation::before {\n content: \"\\f848\"; }\n\n.fa-circle-bookmark::before {\n content: \"\\e100\"; }\n\n.fa-bookmark-circle::before {\n content: \"\\e100\"; }\n\n.fa-egg-fried::before {\n content: \"\\f7fc\"; }\n\n.fa-face-weary::before {\n content: \"\\e3a1\"; }\n\n.fa-uniform-martial-arts::before {\n content: \"\\e3d1\"; }\n\n.fa-camera-rotate::before {\n content: \"\\e0d8\"; }\n\n.fa-sun-dust::before {\n content: \"\\f764\"; }\n\n.fa-comment-text::before {\n content: \"\\e14d\"; }\n\n.fa-spray-can-sparkles::before {\n content: \"\\f5d0\"; }\n\n.fa-air-freshener::before {\n content: \"\\f5d0\"; }\n\n.fa-signal-bars::before {\n content: \"\\f690\"; }\n\n.fa-signal-alt::before {\n content: \"\\f690\"; }\n\n.fa-signal-alt-4::before {\n content: \"\\f690\"; }\n\n.fa-signal-bars-strong::before {\n content: \"\\f690\"; }\n\n.fa-diamond-exclamation::before {\n content: \"\\e405\"; }\n\n.fa-star::before {\n content: \"\\f005\"; }\n\n.fa-dial-min::before {\n content: \"\\e161\"; }\n\n.fa-repeat::before {\n content: \"\\f363\"; }\n\n.fa-cross::before {\n content: \"\\f654\"; }\n\n.fa-page-caret-down::before {\n content: \"\\e429\"; }\n\n.fa-file-caret-down::before {\n content: \"\\e429\"; }\n\n.fa-box::before {\n content: \"\\f466\"; }\n\n.fa-venus-mars::before {\n content: \"\\f228\"; }\n\n.fa-clock-seven-thirty::before {\n content: \"\\e351\"; }\n\n.fa-arrow-pointer::before {\n content: \"\\f245\"; }\n\n.fa-mouse-pointer::before {\n content: \"\\f245\"; }\n\n.fa-clock-four-thirty::before {\n content: \"\\e34b\"; }\n\n.fa-signal-bars-good::before {\n content: \"\\f693\"; }\n\n.fa-signal-alt-3::before {\n content: \"\\f693\"; }\n\n.fa-cactus::before {\n content: \"\\f8a7\"; }\n\n.fa-lightbulb-gear::before {\n content: \"\\e5fd\"; }\n\n.fa-maximize::before {\n content: \"\\f31e\"; }\n\n.fa-expand-arrows-alt::before {\n content: \"\\f31e\"; }\n\n.fa-charging-station::before {\n content: \"\\f5e7\"; }\n\n.fa-shapes::before {\n content: \"\\f61f\"; }\n\n.fa-triangle-circle-square::before {\n content: \"\\f61f\"; }\n\n.fa-plane-tail::before {\n content: \"\\e22c\"; }\n\n.fa-gauge-simple-max::before {\n content: \"\\f62b\"; }\n\n.fa-tachometer-fastest::before {\n content: \"\\f62b\"; }\n\n.fa-circle-u::before {\n content: \"\\e127\"; }\n\n.fa-shield-slash::before {\n content: \"\\e24b\"; }\n\n.fa-square-phone-hangup::before {\n content: \"\\e27a\"; }\n\n.fa-phone-square-down::before {\n content: \"\\e27a\"; }\n\n.fa-arrow-up-left::before {\n content: \"\\e09d\"; }\n\n.fa-transporter-1::before {\n content: \"\\e043\"; }\n\n.fa-peanuts::before {\n content: \"\\e431\"; }\n\n.fa-shuffle::before {\n content: \"\\f074\"; }\n\n.fa-random::before {\n content: \"\\f074\"; }\n\n.fa-person-running::before {\n content: \"\\f70c\"; }\n\n.fa-running::before {\n content: \"\\f70c\"; }\n\n.fa-mobile-retro::before {\n content: \"\\e527\"; }\n\n.fa-grip-lines-vertical::before {\n content: \"\\f7a5\"; }\n\n.fa-bin-bottles-recycle::before {\n content: \"\\e5f6\"; }\n\n.fa-arrow-up-from-square::before {\n content: \"\\e09c\"; }\n\n.fa-file-dashed-line::before {\n content: \"\\f877\"; }\n\n.fa-page-break::before {\n content: \"\\f877\"; }\n\n.fa-bracket-curly-right::before {\n content: \"\\7d\"; }\n\n.fa-spider::before {\n content: \"\\f717\"; }\n\n.fa-clock-three::before {\n content: \"\\e356\"; }\n\n.fa-hands-bound::before {\n content: \"\\e4f9\"; }\n\n.fa-scalpel-line-dashed::before {\n content: \"\\f61e\"; }\n\n.fa-scalpel-path::before {\n content: \"\\f61e\"; }\n\n.fa-file-invoice-dollar::before {\n content: \"\\f571\"; }\n\n.fa-pipe-smoking::before {\n content: \"\\e3c4\"; }\n\n.fa-face-astonished::before {\n content: \"\\e36b\"; }\n\n.fa-window::before {\n content: \"\\f40e\"; }\n\n.fa-plane-circle-exclamation::before {\n content: \"\\e556\"; }\n\n.fa-ear::before {\n content: \"\\f5f0\"; }\n\n.fa-file-lock::before {\n content: \"\\e3a6\"; }\n\n.fa-diagram-venn::before {\n content: \"\\e15a\"; }\n\n.fa-arrow-down-from-bracket::before {\n content: \"\\e667\"; }\n\n.fa-x-ray::before {\n content: \"\\f497\"; }\n\n.fa-goal-net::before {\n content: \"\\e3ab\"; }\n\n.fa-coffin-cross::before {\n content: \"\\e051\"; }\n\n.fa-spell-check::before {\n content: \"\\f891\"; }\n\n.fa-location-xmark::before {\n content: \"\\f60e\"; }\n\n.fa-map-marker-times::before {\n content: \"\\f60e\"; }\n\n.fa-map-marker-xmark::before {\n content: \"\\f60e\"; }\n\n.fa-circle-quarter-stroke::before {\n content: \"\\e5d3\"; }\n\n.fa-lasso::before {\n content: \"\\f8c8\"; }\n\n.fa-slash::before {\n content: \"\\f715\"; }\n\n.fa-person-to-portal::before {\n content: \"\\e022\"; }\n\n.fa-portal-enter::before {\n content: \"\\e022\"; }\n\n.fa-calendar-star::before {\n content: \"\\f736\"; }\n\n.fa-computer-mouse::before {\n content: \"\\f8cc\"; }\n\n.fa-mouse::before {\n content: \"\\f8cc\"; }\n\n.fa-arrow-right-to-bracket::before {\n content: \"\\f090\"; }\n\n.fa-sign-in::before {\n content: \"\\f090\"; }\n\n.fa-pegasus::before {\n content: \"\\f703\"; }\n\n.fa-files-medical::before {\n content: \"\\f7fd\"; }\n\n.fa-cannon::before {\n content: \"\\e642\"; }\n\n.fa-nfc-lock::before {\n content: \"\\e1f8\"; }\n\n.fa-person-ski-lift::before {\n content: \"\\f7c8\"; }\n\n.fa-ski-lift::before {\n content: \"\\f7c8\"; }\n\n.fa-square-6::before {\n content: \"\\e25b\"; }\n\n.fa-shop-slash::before {\n content: \"\\e070\"; }\n\n.fa-store-alt-slash::before {\n content: \"\\e070\"; }\n\n.fa-wind-turbine::before {\n content: \"\\f89b\"; }\n\n.fa-sliders-simple::before {\n content: \"\\e253\"; }\n\n.fa-grid-round::before {\n content: \"\\e5da\"; }\n\n.fa-badge-sheriff::before {\n content: \"\\f8a2\"; }\n\n.fa-server::before {\n content: \"\\f233\"; }\n\n.fa-virus-covid-slash::before {\n content: \"\\e4a9\"; }\n\n.fa-intersection::before {\n content: \"\\f668\"; }\n\n.fa-shop-lock::before {\n content: \"\\e4a5\"; }\n\n.fa-family::before {\n content: \"\\e300\"; }\n\n.fa-hourglass-start::before {\n content: \"\\f251\"; }\n\n.fa-hourglass-1::before {\n content: \"\\f251\"; }\n\n.fa-user-hair-buns::before {\n content: \"\\e3d3\"; }\n\n.fa-blender-phone::before {\n content: \"\\f6b6\"; }\n\n.fa-hourglass-clock::before {\n content: \"\\e41b\"; }\n\n.fa-person-seat-reclined::before {\n content: \"\\e21f\"; }\n\n.fa-paper-plane-top::before {\n content: \"\\e20a\"; }\n\n.fa-paper-plane-alt::before {\n content: \"\\e20a\"; }\n\n.fa-send::before {\n content: \"\\e20a\"; }\n\n.fa-message-arrow-up::before {\n content: \"\\e1dc\"; }\n\n.fa-comment-alt-arrow-up::before {\n content: \"\\e1dc\"; }\n\n.fa-lightbulb-exclamation::before {\n content: \"\\f671\"; }\n\n.fa-layer-minus::before {\n content: \"\\f5fe\"; }\n\n.fa-layer-group-minus::before {\n content: \"\\f5fe\"; }\n\n.fa-chart-pie-simple-circle-currency::before {\n content: \"\\e604\"; }\n\n.fa-circle-e::before {\n content: \"\\e109\"; }\n\n.fa-building-wheat::before {\n content: \"\\e4db\"; }\n\n.fa-gauge-max::before {\n content: \"\\f626\"; }\n\n.fa-tachometer-alt-fastest::before {\n content: \"\\f626\"; }\n\n.fa-person-breastfeeding::before {\n content: \"\\e53a\"; }\n\n.fa-apostrophe::before {\n content: \"\\27\"; }\n\n.fa-file-png::before {\n content: \"\\e666\"; }\n\n.fa-fire-hydrant::before {\n content: \"\\e17f\"; }\n\n.fa-right-to-bracket::before {\n content: \"\\f2f6\"; }\n\n.fa-sign-in-alt::before {\n content: \"\\f2f6\"; }\n\n.fa-video-plus::before {\n content: \"\\f4e1\"; }\n\n.fa-square-right::before {\n content: \"\\f352\"; }\n\n.fa-arrow-alt-square-right::before {\n content: \"\\f352\"; }\n\n.fa-comment-smile::before {\n content: \"\\f4b4\"; }\n\n.fa-venus::before {\n content: \"\\f221\"; }\n\n.fa-passport::before {\n content: \"\\f5ab\"; }\n\n.fa-inbox-in::before {\n content: \"\\f310\"; }\n\n.fa-inbox-arrow-down::before {\n content: \"\\f310\"; }\n\n.fa-heart-pulse::before {\n content: \"\\f21e\"; }\n\n.fa-heartbeat::before {\n content: \"\\f21e\"; }\n\n.fa-circle-8::before {\n content: \"\\e0f5\"; }\n\n.fa-clouds-moon::before {\n content: \"\\f745\"; }\n\n.fa-clock-ten-thirty::before {\n content: \"\\e355\"; }\n\n.fa-people-carry-box::before {\n content: \"\\f4ce\"; }\n\n.fa-people-carry::before {\n content: \"\\f4ce\"; }\n\n.fa-folder-user::before {\n content: \"\\e18e\"; }\n\n.fa-trash-can-xmark::before {\n content: \"\\e2ae\"; }\n\n.fa-temperature-high::before {\n content: \"\\f769\"; }\n\n.fa-microchip::before {\n content: \"\\f2db\"; }\n\n.fa-left-long-to-line::before {\n content: \"\\e41e\"; }\n\n.fa-crown::before {\n content: \"\\f521\"; }\n\n.fa-weight-hanging::before {\n content: \"\\f5cd\"; }\n\n.fa-xmarks-lines::before {\n content: \"\\e59a\"; }\n\n.fa-file-prescription::before {\n content: \"\\f572\"; }\n\n.fa-table-cells-lock::before {\n content: \"\\e679\"; }\n\n.fa-calendar-range::before {\n content: \"\\e0d6\"; }\n\n.fa-flower-daffodil::before {\n content: \"\\f800\"; }\n\n.fa-hand-back-point-up::before {\n content: \"\\e1a2\"; }\n\n.fa-weight-scale::before {\n content: \"\\f496\"; }\n\n.fa-weight::before {\n content: \"\\f496\"; }\n\n.fa-arrow-up-to-arc::before {\n content: \"\\e617\"; }\n\n.fa-star-exclamation::before {\n content: \"\\f2f3\"; }\n\n.fa-books::before {\n content: \"\\f5db\"; }\n\n.fa-user-group::before {\n content: \"\\f500\"; }\n\n.fa-user-friends::before {\n content: \"\\f500\"; }\n\n.fa-arrow-up-a-z::before {\n content: \"\\f15e\"; }\n\n.fa-sort-alpha-up::before {\n content: \"\\f15e\"; }\n\n.fa-layer-plus::before {\n content: \"\\f5ff\"; }\n\n.fa-layer-group-plus::before {\n content: \"\\f5ff\"; }\n\n.fa-play-pause::before {\n content: \"\\e22f\"; }\n\n.fa-block-question::before {\n content: \"\\e3dd\"; }\n\n.fa-snooze::before {\n content: \"\\f880\"; }\n\n.fa-zzz::before {\n content: \"\\f880\"; }\n\n.fa-scanner-image::before {\n content: \"\\f8f3\"; }\n\n.fa-tv-retro::before {\n content: \"\\f401\"; }\n\n.fa-square-t::before {\n content: \"\\e280\"; }\n\n.fa-farm::before {\n content: \"\\f864\"; }\n\n.fa-barn-silo::before {\n content: \"\\f864\"; }\n\n.fa-chess-knight::before {\n content: \"\\f441\"; }\n\n.fa-bars-sort::before {\n content: \"\\e0ae\"; }\n\n.fa-pallet-boxes::before {\n content: \"\\f483\"; }\n\n.fa-palette-boxes::before {\n content: \"\\f483\"; }\n\n.fa-pallet-alt::before {\n content: \"\\f483\"; }\n\n.fa-face-laugh-squint::before {\n content: \"\\f59b\"; }\n\n.fa-laugh-squint::before {\n content: \"\\f59b\"; }\n\n.fa-code-simple::before {\n content: \"\\e13d\"; }\n\n.fa-bolt-slash::before {\n content: \"\\e0b8\"; }\n\n.fa-panel-fire::before {\n content: \"\\e42f\"; }\n\n.fa-binary-circle-check::before {\n content: \"\\e33c\"; }\n\n.fa-comment-minus::before {\n content: \"\\f4b1\"; }\n\n.fa-burrito::before {\n content: \"\\f7ed\"; }\n\n.fa-violin::before {\n content: \"\\f8ed\"; }\n\n.fa-objects-column::before {\n content: \"\\e3c1\"; }\n\n.fa-square-chevron-down::before {\n content: \"\\f329\"; }\n\n.fa-chevron-square-down::before {\n content: \"\\f329\"; }\n\n.fa-comment-plus::before {\n content: \"\\f4b2\"; }\n\n.fa-triangle-instrument::before {\n content: \"\\f8e2\"; }\n\n.fa-triangle-music::before {\n content: \"\\f8e2\"; }\n\n.fa-wheelchair::before {\n content: \"\\f193\"; }\n\n.fa-user-pilot-tie::before {\n content: \"\\e2c1\"; }\n\n.fa-piano-keyboard::before {\n content: \"\\f8d5\"; }\n\n.fa-bed-empty::before {\n content: \"\\f8f9\"; }\n\n.fa-circle-arrow-up::before {\n content: \"\\f0aa\"; }\n\n.fa-arrow-circle-up::before {\n content: \"\\f0aa\"; }\n\n.fa-toggle-on::before {\n content: \"\\f205\"; }\n\n.fa-rectangle-vertical::before {\n content: \"\\f2fb\"; }\n\n.fa-rectangle-portrait::before {\n content: \"\\f2fb\"; }\n\n.fa-person-walking::before {\n content: \"\\f554\"; }\n\n.fa-walking::before {\n content: \"\\f554\"; }\n\n.fa-l::before {\n content: \"\\4c\"; }\n\n.fa-signal-stream::before {\n content: \"\\f8dd\"; }\n\n.fa-down-to-bracket::before {\n content: \"\\e4e7\"; }\n\n.fa-circle-z::before {\n content: \"\\e130\"; }\n\n.fa-stars::before {\n content: \"\\f762\"; }\n\n.fa-fire::before {\n content: \"\\f06d\"; }\n\n.fa-bed-pulse::before {\n content: \"\\f487\"; }\n\n.fa-procedures::before {\n content: \"\\f487\"; }\n\n.fa-house-day::before {\n content: \"\\e00e\"; }\n\n.fa-shuttle-space::before {\n content: \"\\f197\"; }\n\n.fa-space-shuttle::before {\n content: \"\\f197\"; }\n\n.fa-shirt-long-sleeve::before {\n content: \"\\e3c7\"; }\n\n.fa-chart-pie-simple::before {\n content: \"\\f64e\"; }\n\n.fa-chart-pie-alt::before {\n content: \"\\f64e\"; }\n\n.fa-face-laugh::before {\n content: \"\\f599\"; }\n\n.fa-laugh::before {\n content: \"\\f599\"; }\n\n.fa-folder-open::before {\n content: \"\\f07c\"; }\n\n.fa-album-collection-circle-user::before {\n content: \"\\e48f\"; }\n\n.fa-candy::before {\n content: \"\\e3e7\"; }\n\n.fa-bowl-hot::before {\n content: \"\\f823\"; }\n\n.fa-soup::before {\n content: \"\\f823\"; }\n\n.fa-flatbread::before {\n content: \"\\e40b\"; }\n\n.fa-heart-circle-plus::before {\n content: \"\\e500\"; }\n\n.fa-code-fork::before {\n content: \"\\e13b\"; }\n\n.fa-city::before {\n content: \"\\f64f\"; }\n\n.fa-signal-bars-weak::before {\n content: \"\\f691\"; }\n\n.fa-signal-alt-1::before {\n content: \"\\f691\"; }\n\n.fa-microphone-lines::before {\n content: \"\\f3c9\"; }\n\n.fa-microphone-alt::before {\n content: \"\\f3c9\"; }\n\n.fa-clock-twelve::before {\n content: \"\\e358\"; }\n\n.fa-pepper-hot::before {\n content: \"\\f816\"; }\n\n.fa-citrus-slice::before {\n content: \"\\e2f5\"; }\n\n.fa-sheep::before {\n content: \"\\f711\"; }\n\n.fa-unlock::before {\n content: \"\\f09c\"; }\n\n.fa-colon-sign::before {\n content: \"\\e140\"; }\n\n.fa-headset::before {\n content: \"\\f590\"; }\n\n.fa-badger-honey::before {\n content: \"\\f6b4\"; }\n\n.fa-h4::before {\n content: \"\\f86a\"; }\n\n.fa-store-slash::before {\n content: \"\\e071\"; }\n\n.fa-road-circle-xmark::before {\n content: \"\\e566\"; }\n\n.fa-signal-slash::before {\n content: \"\\f695\"; }\n\n.fa-user-minus::before {\n content: \"\\f503\"; }\n\n.fa-mars-stroke-up::before {\n content: \"\\f22a\"; }\n\n.fa-mars-stroke-v::before {\n content: \"\\f22a\"; }\n\n.fa-champagne-glasses::before {\n content: \"\\f79f\"; }\n\n.fa-glass-cheers::before {\n content: \"\\f79f\"; }\n\n.fa-taco::before {\n content: \"\\f826\"; }\n\n.fa-hexagon-plus::before {\n content: \"\\f300\"; }\n\n.fa-plus-hexagon::before {\n content: \"\\f300\"; }\n\n.fa-clipboard::before {\n content: \"\\f328\"; }\n\n.fa-house-circle-exclamation::before {\n content: \"\\e50a\"; }\n\n.fa-file-arrow-up::before {\n content: \"\\f574\"; }\n\n.fa-file-upload::before {\n content: \"\\f574\"; }\n\n.fa-wifi::before {\n content: \"\\f1eb\"; }\n\n.fa-wifi-3::before {\n content: \"\\f1eb\"; }\n\n.fa-wifi-strong::before {\n content: \"\\f1eb\"; }\n\n.fa-messages::before {\n content: \"\\f4b6\"; }\n\n.fa-comments-alt::before {\n content: \"\\f4b6\"; }\n\n.fa-bath::before {\n content: \"\\f2cd\"; }\n\n.fa-bathtub::before {\n content: \"\\f2cd\"; }\n\n.fa-umbrella-simple::before {\n content: \"\\e2bc\"; }\n\n.fa-umbrella-alt::before {\n content: \"\\e2bc\"; }\n\n.fa-rectangle-history-circle-plus::before {\n content: \"\\e4a3\"; }\n\n.fa-underline::before {\n content: \"\\f0cd\"; }\n\n.fa-prescription-bottle-pill::before {\n content: \"\\e5c0\"; }\n\n.fa-user-pen::before {\n content: \"\\f4ff\"; }\n\n.fa-user-edit::before {\n content: \"\\f4ff\"; }\n\n.fa-binary-slash::before {\n content: \"\\e33e\"; }\n\n.fa-square-o::before {\n content: \"\\e278\"; }\n\n.fa-caduceus::before {\n content: \"\\e681\"; }\n\n.fa-signature::before {\n content: \"\\f5b7\"; }\n\n.fa-stroopwafel::before {\n content: \"\\f551\"; }\n\n.fa-bold::before {\n content: \"\\f032\"; }\n\n.fa-anchor-lock::before {\n content: \"\\e4ad\"; }\n\n.fa-building-ngo::before {\n content: \"\\e4d7\"; }\n\n.fa-transporter-3::before {\n content: \"\\e045\"; }\n\n.fa-engine-warning::before {\n content: \"\\f5f2\"; }\n\n.fa-engine-exclamation::before {\n content: \"\\f5f2\"; }\n\n.fa-circle-down-right::before {\n content: \"\\e108\"; }\n\n.fa-square-k::before {\n content: \"\\e274\"; }\n\n.fa-manat-sign::before {\n content: \"\\e1d5\"; }\n\n.fa-money-check-pen::before {\n content: \"\\f872\"; }\n\n.fa-money-check-edit::before {\n content: \"\\f872\"; }\n\n.fa-not-equal::before {\n content: \"\\f53e\"; }\n\n.fa-border-top-left::before {\n content: \"\\f853\"; }\n\n.fa-border-style::before {\n content: \"\\f853\"; }\n\n.fa-map-location-dot::before {\n content: \"\\f5a0\"; }\n\n.fa-map-marked-alt::before {\n content: \"\\f5a0\"; }\n\n.fa-tilde::before {\n content: \"\\7e\"; }\n\n.fa-jedi::before {\n content: \"\\f669\"; }\n\n.fa-square-poll-vertical::before {\n content: \"\\f681\"; }\n\n.fa-poll::before {\n content: \"\\f681\"; }\n\n.fa-arrow-down-square-triangle::before {\n content: \"\\f889\"; }\n\n.fa-sort-shapes-down-alt::before {\n content: \"\\f889\"; }\n\n.fa-mug-hot::before {\n content: \"\\f7b6\"; }\n\n.fa-dog-leashed::before {\n content: \"\\f6d4\"; }\n\n.fa-car-battery::before {\n content: \"\\f5df\"; }\n\n.fa-battery-car::before {\n content: \"\\f5df\"; }\n\n.fa-face-downcast-sweat::before {\n content: \"\\e371\"; }\n\n.fa-mailbox-flag-up::before {\n content: \"\\e5bb\"; }\n\n.fa-memo-circle-info::before {\n content: \"\\e49a\"; }\n\n.fa-gift::before {\n content: \"\\f06b\"; }\n\n.fa-dice-two::before {\n content: \"\\f528\"; }\n\n.fa-volume::before {\n content: \"\\f6a8\"; }\n\n.fa-volume-medium::before {\n content: \"\\f6a8\"; }\n\n.fa-transporter-5::before {\n content: \"\\e2a6\"; }\n\n.fa-gauge-circle-bolt::before {\n content: \"\\e496\"; }\n\n.fa-coin-front::before {\n content: \"\\e3fc\"; }\n\n.fa-file-slash::before {\n content: \"\\e3a7\"; }\n\n.fa-message-arrow-up-right::before {\n content: \"\\e1dd\"; }\n\n.fa-treasure-chest::before {\n content: \"\\f723\"; }\n\n.fa-chess-queen::before {\n content: \"\\f445\"; }\n\n.fa-paintbrush-fine::before {\n content: \"\\f5a9\"; }\n\n.fa-paint-brush-alt::before {\n content: \"\\f5a9\"; }\n\n.fa-paint-brush-fine::before {\n content: \"\\f5a9\"; }\n\n.fa-paintbrush-alt::before {\n content: \"\\f5a9\"; }\n\n.fa-glasses::before {\n content: \"\\f530\"; }\n\n.fa-hood-cloak::before {\n content: \"\\f6ef\"; }\n\n.fa-square-quote::before {\n content: \"\\e329\"; }\n\n.fa-up-left::before {\n content: \"\\e2bd\"; }\n\n.fa-bring-front::before {\n content: \"\\f857\"; }\n\n.fa-chess-board::before {\n content: \"\\f43c\"; }\n\n.fa-burger-cheese::before {\n content: \"\\f7f1\"; }\n\n.fa-cheeseburger::before {\n content: \"\\f7f1\"; }\n\n.fa-building-circle-check::before {\n content: \"\\e4d2\"; }\n\n.fa-repeat-1::before {\n content: \"\\f365\"; }\n\n.fa-arrow-down-to-line::before {\n content: \"\\f33d\"; }\n\n.fa-arrow-to-bottom::before {\n content: \"\\f33d\"; }\n\n.fa-grid-5::before {\n content: \"\\e199\"; }\n\n.fa-swap-arrows::before {\n content: \"\\e60a\"; }\n\n.fa-right-long-to-line::before {\n content: \"\\e444\"; }\n\n.fa-person-chalkboard::before {\n content: \"\\e53d\"; }\n\n.fa-mars-stroke-right::before {\n content: \"\\f22b\"; }\n\n.fa-mars-stroke-h::before {\n content: \"\\f22b\"; }\n\n.fa-hand-back-fist::before {\n content: \"\\f255\"; }\n\n.fa-hand-rock::before {\n content: \"\\f255\"; }\n\n.fa-grid-round-5::before {\n content: \"\\e5de\"; }\n\n.fa-tally::before {\n content: \"\\f69c\"; }\n\n.fa-tally-5::before {\n content: \"\\f69c\"; }\n\n.fa-square-caret-up::before {\n content: \"\\f151\"; }\n\n.fa-caret-square-up::before {\n content: \"\\f151\"; }\n\n.fa-cloud-showers-water::before {\n content: \"\\e4e4\"; }\n\n.fa-chart-bar::before {\n content: \"\\f080\"; }\n\n.fa-bar-chart::before {\n content: \"\\f080\"; }\n\n.fa-hands-bubbles::before {\n content: \"\\e05e\"; }\n\n.fa-hands-wash::before {\n content: \"\\e05e\"; }\n\n.fa-less-than-equal::before {\n content: \"\\f537\"; }\n\n.fa-train::before {\n content: \"\\f238\"; }\n\n.fa-up-from-dotted-line::before {\n content: \"\\e456\"; }\n\n.fa-eye-low-vision::before {\n content: \"\\f2a8\"; }\n\n.fa-low-vision::before {\n content: \"\\f2a8\"; }\n\n.fa-traffic-light-go::before {\n content: \"\\f638\"; }\n\n.fa-face-exhaling::before {\n content: \"\\e480\"; }\n\n.fa-sensor-fire::before {\n content: \"\\e02a\"; }\n\n.fa-user-unlock::before {\n content: \"\\e058\"; }\n\n.fa-hexagon-divide::before {\n content: \"\\e1ad\"; }\n\n.fa-00::before {\n content: \"\\e467\"; }\n\n.fa-crow::before {\n content: \"\\f520\"; }\n\n.fa-cassette-betamax::before {\n content: \"\\f8a4\"; }\n\n.fa-betamax::before {\n content: \"\\f8a4\"; }\n\n.fa-sailboat::before {\n content: \"\\e445\"; }\n\n.fa-window-restore::before {\n content: \"\\f2d2\"; }\n\n.fa-nfc-magnifying-glass::before {\n content: \"\\e1f9\"; }\n\n.fa-file-binary::before {\n content: \"\\e175\"; }\n\n.fa-circle-v::before {\n content: \"\\e12a\"; }\n\n.fa-square-plus::before {\n content: \"\\f0fe\"; }\n\n.fa-plus-square::before {\n content: \"\\f0fe\"; }\n\n.fa-bowl-scoops::before {\n content: \"\\e3df\"; }\n\n.fa-mistletoe::before {\n content: \"\\f7b4\"; }\n\n.fa-custard::before {\n content: \"\\e403\"; }\n\n.fa-lacrosse-stick::before {\n content: \"\\e3b5\"; }\n\n.fa-hockey-mask::before {\n content: \"\\f6ee\"; }\n\n.fa-sunrise::before {\n content: \"\\f766\"; }\n\n.fa-subtitles::before {\n content: \"\\e60f\"; }\n\n.fa-panel-ews::before {\n content: \"\\e42e\"; }\n\n.fa-torii-gate::before {\n content: \"\\f6a1\"; }\n\n.fa-cloud-exclamation::before {\n content: \"\\e491\"; }\n\n.fa-message-lines::before {\n content: \"\\f4a6\"; }\n\n.fa-comment-alt-lines::before {\n content: \"\\f4a6\"; }\n\n.fa-frog::before {\n content: \"\\f52e\"; }\n\n.fa-bucket::before {\n content: \"\\e4cf\"; }\n\n.fa-floppy-disk-pen::before {\n content: \"\\e182\"; }\n\n.fa-image::before {\n content: \"\\f03e\"; }\n\n.fa-window-frame::before {\n content: \"\\e04f\"; }\n\n.fa-microphone::before {\n content: \"\\f130\"; }\n\n.fa-cow::before {\n content: \"\\f6c8\"; }\n\n.fa-file-zip::before {\n content: \"\\e5ee\"; }\n\n.fa-square-ring::before {\n content: \"\\e44f\"; }\n\n.fa-down-from-line::before {\n content: \"\\f349\"; }\n\n.fa-arrow-alt-from-top::before {\n content: \"\\f349\"; }\n\n.fa-caret-up::before {\n content: \"\\f0d8\"; }\n\n.fa-shield-xmark::before {\n content: \"\\e24c\"; }\n\n.fa-shield-times::before {\n content: \"\\e24c\"; }\n\n.fa-screwdriver::before {\n content: \"\\f54a\"; }\n\n.fa-circle-sort-down::before {\n content: \"\\e031\"; }\n\n.fa-sort-circle-down::before {\n content: \"\\e031\"; }\n\n.fa-folder-closed::before {\n content: \"\\e185\"; }\n\n.fa-house-tsunami::before {\n content: \"\\e515\"; }\n\n.fa-square-nfi::before {\n content: \"\\e576\"; }\n\n.fa-forklift::before {\n content: \"\\f47a\"; }\n\n.fa-arrow-up-from-ground-water::before {\n content: \"\\e4b5\"; }\n\n.fa-bracket-square-right::before {\n content: \"\\5d\"; }\n\n.fa-martini-glass::before {\n content: \"\\f57b\"; }\n\n.fa-glass-martini-alt::before {\n content: \"\\f57b\"; }\n\n.fa-rotate-left::before {\n content: \"\\f2ea\"; }\n\n.fa-rotate-back::before {\n content: \"\\f2ea\"; }\n\n.fa-rotate-backward::before {\n content: \"\\f2ea\"; }\n\n.fa-undo-alt::before {\n content: \"\\f2ea\"; }\n\n.fa-table-columns::before {\n content: \"\\f0db\"; }\n\n.fa-columns::before {\n content: \"\\f0db\"; }\n\n.fa-square-a::before {\n content: \"\\e25f\"; }\n\n.fa-tick::before {\n content: \"\\e32f\"; }\n\n.fa-lemon::before {\n content: \"\\f094\"; }\n\n.fa-head-side-mask::before {\n content: \"\\e063\"; }\n\n.fa-handshake::before {\n content: \"\\f2b5\"; }\n\n.fa-gem::before {\n content: \"\\f3a5\"; }\n\n.fa-dolly::before {\n content: \"\\f472\"; }\n\n.fa-dolly-box::before {\n content: \"\\f472\"; }\n\n.fa-smoking::before {\n content: \"\\f48d\"; }\n\n.fa-minimize::before {\n content: \"\\f78c\"; }\n\n.fa-compress-arrows-alt::before {\n content: \"\\f78c\"; }\n\n.fa-refrigerator::before {\n content: \"\\e026\"; }\n\n.fa-monument::before {\n content: \"\\f5a6\"; }\n\n.fa-octagon-xmark::before {\n content: \"\\f2f0\"; }\n\n.fa-times-octagon::before {\n content: \"\\f2f0\"; }\n\n.fa-xmark-octagon::before {\n content: \"\\f2f0\"; }\n\n.fa-align-slash::before {\n content: \"\\f846\"; }\n\n.fa-snowplow::before {\n content: \"\\f7d2\"; }\n\n.fa-angles-right::before {\n content: \"\\f101\"; }\n\n.fa-angle-double-right::before {\n content: \"\\f101\"; }\n\n.fa-truck-ramp-couch::before {\n content: \"\\f4dd\"; }\n\n.fa-truck-couch::before {\n content: \"\\f4dd\"; }\n\n.fa-cannabis::before {\n content: \"\\f55f\"; }\n\n.fa-circle-play::before {\n content: \"\\f144\"; }\n\n.fa-play-circle::before {\n content: \"\\f144\"; }\n\n.fa-arrow-up-right-and-arrow-down-left-from-center::before {\n content: \"\\e0a0\"; }\n\n.fa-location-arrow-up::before {\n content: \"\\e63a\"; }\n\n.fa-tablets::before {\n content: \"\\f490\"; }\n\n.fa-360-degrees::before {\n content: \"\\e2dc\"; }\n\n.fa-ethernet::before {\n content: \"\\f796\"; }\n\n.fa-euro-sign::before {\n content: \"\\f153\"; }\n\n.fa-eur::before {\n content: \"\\f153\"; }\n\n.fa-euro::before {\n content: \"\\f153\"; }\n\n.fa-chair::before {\n content: \"\\f6c0\"; }\n\n.fa-circle-check::before {\n content: \"\\f058\"; }\n\n.fa-check-circle::before {\n content: \"\\f058\"; }\n\n.fa-square-dashed-circle-plus::before {\n content: \"\\e5c2\"; }\n\n.fa-hand-holding-circle-dollar::before {\n content: \"\\e621\"; }\n\n.fa-money-simple-from-bracket::before {\n content: \"\\e313\"; }\n\n.fa-bat::before {\n content: \"\\f6b5\"; }\n\n.fa-circle-stop::before {\n content: \"\\f28d\"; }\n\n.fa-stop-circle::before {\n content: \"\\f28d\"; }\n\n.fa-head-side-headphones::before {\n content: \"\\f8c2\"; }\n\n.fa-phone-rotary::before {\n content: \"\\f8d3\"; }\n\n.fa-arrow-up-to-bracket::before {\n content: \"\\e66a\"; }\n\n.fa-compass-drafting::before {\n content: \"\\f568\"; }\n\n.fa-drafting-compass::before {\n content: \"\\f568\"; }\n\n.fa-plate-wheat::before {\n content: \"\\e55a\"; }\n\n.fa-calendar-circle-minus::before {\n content: \"\\e46f\"; }\n\n.fa-chopsticks::before {\n content: \"\\e3f7\"; }\n\n.fa-car-wrench::before {\n content: \"\\f5e3\"; }\n\n.fa-car-mechanic::before {\n content: \"\\f5e3\"; }\n\n.fa-icicles::before {\n content: \"\\f7ad\"; }\n\n.fa-person-shelter::before {\n content: \"\\e54f\"; }\n\n.fa-neuter::before {\n content: \"\\f22c\"; }\n\n.fa-id-badge::before {\n content: \"\\f2c1\"; }\n\n.fa-kazoo::before {\n content: \"\\f8c7\"; }\n\n.fa-marker::before {\n content: \"\\f5a1\"; }\n\n.fa-bin-bottles::before {\n content: \"\\e5f5\"; }\n\n.fa-face-laugh-beam::before {\n content: \"\\f59a\"; }\n\n.fa-laugh-beam::before {\n content: \"\\f59a\"; }\n\n.fa-square-arrow-down-left::before {\n content: \"\\e261\"; }\n\n.fa-battery-bolt::before {\n content: \"\\f376\"; }\n\n.fa-tree-large::before {\n content: \"\\f7dd\"; }\n\n.fa-helicopter-symbol::before {\n content: \"\\e502\"; }\n\n.fa-aperture::before {\n content: \"\\e2df\"; }\n\n.fa-universal-access::before {\n content: \"\\f29a\"; }\n\n.fa-gear-complex::before {\n content: \"\\e5e9\"; }\n\n.fa-file-magnifying-glass::before {\n content: \"\\f865\"; }\n\n.fa-file-search::before {\n content: \"\\f865\"; }\n\n.fa-up-right::before {\n content: \"\\e2be\"; }\n\n.fa-circle-chevron-up::before {\n content: \"\\f139\"; }\n\n.fa-chevron-circle-up::before {\n content: \"\\f139\"; }\n\n.fa-user-police::before {\n content: \"\\e333\"; }\n\n.fa-lari-sign::before {\n content: \"\\e1c8\"; }\n\n.fa-volcano::before {\n content: \"\\f770\"; }\n\n.fa-teddy-bear::before {\n content: \"\\e3cf\"; }\n\n.fa-stocking::before {\n content: \"\\f7d5\"; }\n\n.fa-person-walking-dashed-line-arrow-right::before {\n content: \"\\e553\"; }\n\n.fa-image-slash::before {\n content: \"\\e1b7\"; }\n\n.fa-mask-snorkel::before {\n content: \"\\e3b7\"; }\n\n.fa-smoke::before {\n content: \"\\f760\"; }\n\n.fa-sterling-sign::before {\n content: \"\\f154\"; }\n\n.fa-gbp::before {\n content: \"\\f154\"; }\n\n.fa-pound-sign::before {\n content: \"\\f154\"; }\n\n.fa-battery-exclamation::before {\n content: \"\\e0b0\"; }\n\n.fa-viruses::before {\n content: \"\\e076\"; }\n\n.fa-square-person-confined::before {\n content: \"\\e577\"; }\n\n.fa-user-tie::before {\n content: \"\\f508\"; }\n\n.fa-up-to-bracket::before {\n content: \"\\e66e\"; }\n\n.fa-arrow-down-long::before {\n content: \"\\f175\"; }\n\n.fa-long-arrow-down::before {\n content: \"\\f175\"; }\n\n.fa-tent-arrow-down-to-line::before {\n content: \"\\e57e\"; }\n\n.fa-certificate::before {\n content: \"\\f0a3\"; }\n\n.fa-crystal-ball::before {\n content: \"\\e362\"; }\n\n.fa-reply-all::before {\n content: \"\\f122\"; }\n\n.fa-mail-reply-all::before {\n content: \"\\f122\"; }\n\n.fa-suitcase::before {\n content: \"\\f0f2\"; }\n\n.fa-person-skating::before {\n content: \"\\f7c5\"; }\n\n.fa-skating::before {\n content: \"\\f7c5\"; }\n\n.fa-star-shooting::before {\n content: \"\\e036\"; }\n\n.fa-binary-lock::before {\n content: \"\\e33d\"; }\n\n.fa-filter-circle-dollar::before {\n content: \"\\f662\"; }\n\n.fa-funnel-dollar::before {\n content: \"\\f662\"; }\n\n.fa-camera-retro::before {\n content: \"\\f083\"; }\n\n.fa-circle-arrow-down::before {\n content: \"\\f0ab\"; }\n\n.fa-arrow-circle-down::before {\n content: \"\\f0ab\"; }\n\n.fa-comment-pen::before {\n content: \"\\f4ae\"; }\n\n.fa-comment-edit::before {\n content: \"\\f4ae\"; }\n\n.fa-file-import::before {\n content: \"\\f56f\"; }\n\n.fa-arrow-right-to-file::before {\n content: \"\\f56f\"; }\n\n.fa-banjo::before {\n content: \"\\f8a3\"; }\n\n.fa-square-arrow-up-right::before {\n content: \"\\f14c\"; }\n\n.fa-external-link-square::before {\n content: \"\\f14c\"; }\n\n.fa-light-emergency-on::before {\n content: \"\\e420\"; }\n\n.fa-kerning::before {\n content: \"\\f86f\"; }\n\n.fa-box-open::before {\n content: \"\\f49e\"; }\n\n.fa-square-f::before {\n content: \"\\e270\"; }\n\n.fa-scroll::before {\n content: \"\\f70e\"; }\n\n.fa-spa::before {\n content: \"\\f5bb\"; }\n\n.fa-arrow-left-from-line::before {\n content: \"\\f344\"; }\n\n.fa-arrow-from-right::before {\n content: \"\\f344\"; }\n\n.fa-strawberry::before {\n content: \"\\e32b\"; }\n\n.fa-location-pin-lock::before {\n content: \"\\e51f\"; }\n\n.fa-pause::before {\n content: \"\\f04c\"; }\n\n.fa-clock-eight-thirty::before {\n content: \"\\e346\"; }\n\n.fa-plane-engines::before {\n content: \"\\f3de\"; }\n\n.fa-plane-alt::before {\n content: \"\\f3de\"; }\n\n.fa-hill-avalanche::before {\n content: \"\\e507\"; }\n\n.fa-temperature-empty::before {\n content: \"\\f2cb\"; }\n\n.fa-temperature-0::before {\n content: \"\\f2cb\"; }\n\n.fa-thermometer-0::before {\n content: \"\\f2cb\"; }\n\n.fa-thermometer-empty::before {\n content: \"\\f2cb\"; }\n\n.fa-bomb::before {\n content: \"\\f1e2\"; }\n\n.fa-gauge-low::before {\n content: \"\\f627\"; }\n\n.fa-tachometer-alt-slow::before {\n content: \"\\f627\"; }\n\n.fa-registered::before {\n content: \"\\f25d\"; }\n\n.fa-trash-can-plus::before {\n content: \"\\e2ac\"; }\n\n.fa-address-card::before {\n content: \"\\f2bb\"; }\n\n.fa-contact-card::before {\n content: \"\\f2bb\"; }\n\n.fa-vcard::before {\n content: \"\\f2bb\"; }\n\n.fa-scale-unbalanced-flip::before {\n content: \"\\f516\"; }\n\n.fa-balance-scale-right::before {\n content: \"\\f516\"; }\n\n.fa-globe-snow::before {\n content: \"\\f7a3\"; }\n\n.fa-subscript::before {\n content: \"\\f12c\"; }\n\n.fa-diamond-turn-right::before {\n content: \"\\f5eb\"; }\n\n.fa-directions::before {\n content: \"\\f5eb\"; }\n\n.fa-integral::before {\n content: \"\\f667\"; }\n\n.fa-burst::before {\n content: \"\\e4dc\"; }\n\n.fa-house-laptop::before {\n content: \"\\e066\"; }\n\n.fa-laptop-house::before {\n content: \"\\e066\"; }\n\n.fa-face-tired::before {\n content: \"\\f5c8\"; }\n\n.fa-tired::before {\n content: \"\\f5c8\"; }\n\n.fa-money-bills::before {\n content: \"\\e1f3\"; }\n\n.fa-blinds-raised::before {\n content: \"\\f8fd\"; }\n\n.fa-smog::before {\n content: \"\\f75f\"; }\n\n.fa-ufo-beam::before {\n content: \"\\e048\"; }\n\n.fa-circle-caret-up::before {\n content: \"\\f331\"; }\n\n.fa-caret-circle-up::before {\n content: \"\\f331\"; }\n\n.fa-user-vneck-hair-long::before {\n content: \"\\e463\"; }\n\n.fa-square-a-lock::before {\n content: \"\\e44d\"; }\n\n.fa-crutch::before {\n content: \"\\f7f7\"; }\n\n.fa-gas-pump-slash::before {\n content: \"\\f5f4\"; }\n\n.fa-cloud-arrow-up::before {\n content: \"\\f0ee\"; }\n\n.fa-cloud-upload::before {\n content: \"\\f0ee\"; }\n\n.fa-cloud-upload-alt::before {\n content: \"\\f0ee\"; }\n\n.fa-palette::before {\n content: \"\\f53f\"; }\n\n.fa-transporter-4::before {\n content: \"\\e2a5\"; }\n\n.fa-chart-mixed-up-circle-currency::before {\n content: \"\\e5d8\"; }\n\n.fa-objects-align-right::before {\n content: \"\\e3bf\"; }\n\n.fa-arrows-turn-right::before {\n content: \"\\e4c0\"; }\n\n.fa-vest::before {\n content: \"\\e085\"; }\n\n.fa-pig::before {\n content: \"\\f706\"; }\n\n.fa-inbox-full::before {\n content: \"\\e1ba\"; }\n\n.fa-circle-envelope::before {\n content: \"\\e10c\"; }\n\n.fa-envelope-circle::before {\n content: \"\\e10c\"; }\n\n.fa-triangle-person-digging::before {\n content: \"\\f85d\"; }\n\n.fa-construction::before {\n content: \"\\f85d\"; }\n\n.fa-ferry::before {\n content: \"\\e4ea\"; }\n\n.fa-bullseye-arrow::before {\n content: \"\\f648\"; }\n\n.fa-arrows-down-to-people::before {\n content: \"\\e4b9\"; }\n\n.fa-seedling::before {\n content: \"\\f4d8\"; }\n\n.fa-sprout::before {\n content: \"\\f4d8\"; }\n\n.fa-clock-seven::before {\n content: \"\\e350\"; }\n\n.fa-left-right::before {\n content: \"\\f337\"; }\n\n.fa-arrows-alt-h::before {\n content: \"\\f337\"; }\n\n.fa-boxes-packing::before {\n content: \"\\e4c7\"; }\n\n.fa-circle-arrow-left::before {\n content: \"\\f0a8\"; }\n\n.fa-arrow-circle-left::before {\n content: \"\\f0a8\"; }\n\n.fa-flashlight::before {\n content: \"\\f8b8\"; }\n\n.fa-file-jpg::before {\n content: \"\\e646\"; }\n\n.fa-group-arrows-rotate::before {\n content: \"\\e4f6\"; }\n\n.fa-bowl-food::before {\n content: \"\\e4c6\"; }\n\n.fa-square-9::before {\n content: \"\\e25e\"; }\n\n.fa-candy-cane::before {\n content: \"\\f786\"; }\n\n.fa-arrow-down-wide-short::before {\n content: \"\\f160\"; }\n\n.fa-sort-amount-asc::before {\n content: \"\\f160\"; }\n\n.fa-sort-amount-down::before {\n content: \"\\f160\"; }\n\n.fa-square-dollar::before {\n content: \"\\f2e9\"; }\n\n.fa-dollar-square::before {\n content: \"\\f2e9\"; }\n\n.fa-usd-square::before {\n content: \"\\f2e9\"; }\n\n.fa-phone-arrow-right::before {\n content: \"\\e5be\"; }\n\n.fa-hand-holding-seedling::before {\n content: \"\\f4bf\"; }\n\n.fa-message-check::before {\n content: \"\\f4a2\"; }\n\n.fa-comment-alt-check::before {\n content: \"\\f4a2\"; }\n\n.fa-cloud-bolt::before {\n content: \"\\f76c\"; }\n\n.fa-thunderstorm::before {\n content: \"\\f76c\"; }\n\n.fa-chart-line-up-down::before {\n content: \"\\e5d7\"; }\n\n.fa-text-slash::before {\n content: \"\\f87d\"; }\n\n.fa-remove-format::before {\n content: \"\\f87d\"; }\n\n.fa-watch::before {\n content: \"\\f2e1\"; }\n\n.fa-circle-down-left::before {\n content: \"\\e107\"; }\n\n.fa-text::before {\n content: \"\\f893\"; }\n\n.fa-projector::before {\n content: \"\\f8d6\"; }\n\n.fa-face-smile-wink::before {\n content: \"\\f4da\"; }\n\n.fa-smile-wink::before {\n content: \"\\f4da\"; }\n\n.fa-tombstone-blank::before {\n content: \"\\f721\"; }\n\n.fa-tombstone-alt::before {\n content: \"\\f721\"; }\n\n.fa-chess-king-piece::before {\n content: \"\\f440\"; }\n\n.fa-chess-king-alt::before {\n content: \"\\f440\"; }\n\n.fa-circle-6::before {\n content: \"\\e0f3\"; }\n\n.fa-waves-sine::before {\n content: \"\\e65d\"; }\n\n.fa-left::before {\n content: \"\\f355\"; }\n\n.fa-arrow-alt-left::before {\n content: \"\\f355\"; }\n\n.fa-file-word::before {\n content: \"\\f1c2\"; }\n\n.fa-file-powerpoint::before {\n content: \"\\f1c4\"; }\n\n.fa-square-down::before {\n content: \"\\f350\"; }\n\n.fa-arrow-alt-square-down::before {\n content: \"\\f350\"; }\n\n.fa-objects-align-center-vertical::before {\n content: \"\\e3bd\"; }\n\n.fa-arrows-left-right::before {\n content: \"\\f07e\"; }\n\n.fa-arrows-h::before {\n content: \"\\f07e\"; }\n\n.fa-house-lock::before {\n content: \"\\e510\"; }\n\n.fa-cloud-arrow-down::before {\n content: \"\\f0ed\"; }\n\n.fa-cloud-download::before {\n content: \"\\f0ed\"; }\n\n.fa-cloud-download-alt::before {\n content: \"\\f0ed\"; }\n\n.fa-wreath::before {\n content: \"\\f7e2\"; }\n\n.fa-children::before {\n content: \"\\e4e1\"; }\n\n.fa-meter-droplet::before {\n content: \"\\e1ea\"; }\n\n.fa-chalkboard::before {\n content: \"\\f51b\"; }\n\n.fa-blackboard::before {\n content: \"\\f51b\"; }\n\n.fa-user-large-slash::before {\n content: \"\\f4fa\"; }\n\n.fa-user-alt-slash::before {\n content: \"\\f4fa\"; }\n\n.fa-signal-strong::before {\n content: \"\\f68f\"; }\n\n.fa-signal-4::before {\n content: \"\\f68f\"; }\n\n.fa-lollipop::before {\n content: \"\\e424\"; }\n\n.fa-lollypop::before {\n content: \"\\e424\"; }\n\n.fa-list-tree::before {\n content: \"\\e1d2\"; }\n\n.fa-envelope-open::before {\n content: \"\\f2b6\"; }\n\n.fa-draw-circle::before {\n content: \"\\f5ed\"; }\n\n.fa-cat-space::before {\n content: \"\\e001\"; }\n\n.fa-handshake-simple-slash::before {\n content: \"\\e05f\"; }\n\n.fa-handshake-alt-slash::before {\n content: \"\\e05f\"; }\n\n.fa-rabbit-running::before {\n content: \"\\f709\"; }\n\n.fa-rabbit-fast::before {\n content: \"\\f709\"; }\n\n.fa-memo-pad::before {\n content: \"\\e1da\"; }\n\n.fa-mattress-pillow::before {\n content: \"\\e525\"; }\n\n.fa-alarm-plus::before {\n content: \"\\f844\"; }\n\n.fa-alicorn::before {\n content: \"\\f6b0\"; }\n\n.fa-comment-question::before {\n content: \"\\e14b\"; }\n\n.fa-gingerbread-man::before {\n content: \"\\f79d\"; }\n\n.fa-guarani-sign::before {\n content: \"\\e19a\"; }\n\n.fa-burger-fries::before {\n content: \"\\e0cd\"; }\n\n.fa-mug-tea::before {\n content: \"\\f875\"; }\n\n.fa-border-top::before {\n content: \"\\f855\"; }\n\n.fa-arrows-rotate::before {\n content: \"\\f021\"; }\n\n.fa-refresh::before {\n content: \"\\f021\"; }\n\n.fa-sync::before {\n content: \"\\f021\"; }\n\n.fa-circle-book-open::before {\n content: \"\\e0ff\"; }\n\n.fa-book-circle::before {\n content: \"\\e0ff\"; }\n\n.fa-arrows-to-dotted-line::before {\n content: \"\\e0a6\"; }\n\n.fa-fire-extinguisher::before {\n content: \"\\f134\"; }\n\n.fa-magnifying-glass-arrows-rotate::before {\n content: \"\\e65e\"; }\n\n.fa-garage-open::before {\n content: \"\\e00b\"; }\n\n.fa-shelves-empty::before {\n content: \"\\e246\"; }\n\n.fa-cruzeiro-sign::before {\n content: \"\\e152\"; }\n\n.fa-watch-apple::before {\n content: \"\\e2cb\"; }\n\n.fa-watch-calculator::before {\n content: \"\\f8f0\"; }\n\n.fa-list-dropdown::before {\n content: \"\\e1cf\"; }\n\n.fa-cabinet-filing::before {\n content: \"\\f64b\"; }\n\n.fa-burger-soda::before {\n content: \"\\f858\"; }\n\n.fa-square-arrow-up::before {\n content: \"\\f33c\"; }\n\n.fa-arrow-square-up::before {\n content: \"\\f33c\"; }\n\n.fa-greater-than-equal::before {\n content: \"\\f532\"; }\n\n.fa-pallet-box::before {\n content: \"\\e208\"; }\n\n.fa-face-confounded::before {\n content: \"\\e36c\"; }\n\n.fa-shield-halved::before {\n content: \"\\f3ed\"; }\n\n.fa-shield-alt::before {\n content: \"\\f3ed\"; }\n\n.fa-truck-plow::before {\n content: \"\\f7de\"; }\n\n.fa-book-atlas::before {\n content: \"\\f558\"; }\n\n.fa-atlas::before {\n content: \"\\f558\"; }\n\n.fa-virus::before {\n content: \"\\e074\"; }\n\n.fa-grid-round-2::before {\n content: \"\\e5db\"; }\n\n.fa-comment-middle-top::before {\n content: \"\\e14a\"; }\n\n.fa-wave::before {\n content: \"\\e65b\"; }\n\n.fa-envelope-circle-check::before {\n content: \"\\e4e8\"; }\n\n.fa-layer-group::before {\n content: \"\\f5fd\"; }\n\n.fa-restroom-simple::before {\n content: \"\\e23a\"; }\n\n.fa-arrows-to-dot::before {\n content: \"\\e4be\"; }\n\n.fa-border-outer::before {\n content: \"\\f851\"; }\n\n.fa-hashtag-lock::before {\n content: \"\\e415\"; }\n\n.fa-clock-two-thirty::before {\n content: \"\\e35b\"; }\n\n.fa-archway::before {\n content: \"\\f557\"; }\n\n.fa-heart-circle-check::before {\n content: \"\\e4fd\"; }\n\n.fa-house-chimney-crack::before {\n content: \"\\f6f1\"; }\n\n.fa-house-damage::before {\n content: \"\\f6f1\"; }\n\n.fa-file-zipper::before {\n content: \"\\f1c6\"; }\n\n.fa-file-archive::before {\n content: \"\\f1c6\"; }\n\n.fa-ticket-perforated::before {\n content: \"\\e63e\"; }\n\n.fa-heart-half::before {\n content: \"\\e1ab\"; }\n\n.fa-comment-check::before {\n content: \"\\f4ac\"; }\n\n.fa-square::before {\n content: \"\\f0c8\"; }\n\n.fa-memo::before {\n content: \"\\e1d8\"; }\n\n.fa-martini-glass-empty::before {\n content: \"\\f000\"; }\n\n.fa-glass-martini::before {\n content: \"\\f000\"; }\n\n.fa-couch::before {\n content: \"\\f4b8\"; }\n\n.fa-cedi-sign::before {\n content: \"\\e0df\"; }\n\n.fa-italic::before {\n content: \"\\f033\"; }\n\n.fa-glass-citrus::before {\n content: \"\\f869\"; }\n\n.fa-calendar-lines-pen::before {\n content: \"\\e472\"; }\n\n.fa-table-cells-column-lock::before {\n content: \"\\e678\"; }\n\n.fa-church::before {\n content: \"\\f51d\"; }\n\n.fa-person-snowmobiling::before {\n content: \"\\f7d1\"; }\n\n.fa-snowmobile::before {\n content: \"\\f7d1\"; }\n\n.fa-face-hushed::before {\n content: \"\\e37b\"; }\n\n.fa-comments-dollar::before {\n content: \"\\f653\"; }\n\n.fa-tickets-simple::before {\n content: \"\\e659\"; }\n\n.fa-pickaxe::before {\n content: \"\\e5bf\"; }\n\n.fa-link-simple-slash::before {\n content: \"\\e1ce\"; }\n\n.fa-democrat::before {\n content: \"\\f747\"; }\n\n.fa-face-confused::before {\n content: \"\\e36d\"; }\n\n.fa-pinball::before {\n content: \"\\e229\"; }\n\n.fa-z::before {\n content: \"\\5a\"; }\n\n.fa-person-skiing::before {\n content: \"\\f7c9\"; }\n\n.fa-skiing::before {\n content: \"\\f7c9\"; }\n\n.fa-deer::before {\n content: \"\\f78e\"; }\n\n.fa-input-pipe::before {\n content: \"\\e1be\"; }\n\n.fa-road-lock::before {\n content: \"\\e567\"; }\n\n.fa-a::before {\n content: \"\\41\"; }\n\n.fa-bookmark-slash::before {\n content: \"\\e0c2\"; }\n\n.fa-temperature-arrow-down::before {\n content: \"\\e03f\"; }\n\n.fa-temperature-down::before {\n content: \"\\e03f\"; }\n\n.fa-mace::before {\n content: \"\\f6f8\"; }\n\n.fa-feather-pointed::before {\n content: \"\\f56b\"; }\n\n.fa-feather-alt::before {\n content: \"\\f56b\"; }\n\n.fa-sausage::before {\n content: \"\\f820\"; }\n\n.fa-trash-can-clock::before {\n content: \"\\e2aa\"; }\n\n.fa-p::before {\n content: \"\\50\"; }\n\n.fa-broom-wide::before {\n content: \"\\e5d1\"; }\n\n.fa-snowflake::before {\n content: \"\\f2dc\"; }\n\n.fa-stomach::before {\n content: \"\\f623\"; }\n\n.fa-newspaper::before {\n content: \"\\f1ea\"; }\n\n.fa-rectangle-ad::before {\n content: \"\\f641\"; }\n\n.fa-ad::before {\n content: \"\\f641\"; }\n\n.fa-guitar-electric::before {\n content: \"\\f8be\"; }\n\n.fa-arrow-turn-down-right::before {\n content: \"\\e3d6\"; }\n\n.fa-moon-cloud::before {\n content: \"\\f754\"; }\n\n.fa-bread-slice-butter::before {\n content: \"\\e3e1\"; }\n\n.fa-circle-arrow-right::before {\n content: \"\\f0a9\"; }\n\n.fa-arrow-circle-right::before {\n content: \"\\f0a9\"; }\n\n.fa-user-group-crown::before {\n content: \"\\f6a5\"; }\n\n.fa-users-crown::before {\n content: \"\\f6a5\"; }\n\n.fa-circle-i::before {\n content: \"\\e111\"; }\n\n.fa-toilet-paper-check::before {\n content: \"\\e5b2\"; }\n\n.fa-filter-circle-xmark::before {\n content: \"\\e17b\"; }\n\n.fa-locust::before {\n content: \"\\e520\"; }\n\n.fa-sort::before {\n content: \"\\f0dc\"; }\n\n.fa-unsorted::before {\n content: \"\\f0dc\"; }\n\n.fa-list-ol::before {\n content: \"\\f0cb\"; }\n\n.fa-list-1-2::before {\n content: \"\\f0cb\"; }\n\n.fa-list-numeric::before {\n content: \"\\f0cb\"; }\n\n.fa-chart-waterfall::before {\n content: \"\\e0eb\"; }\n\n.fa-sparkle::before {\n content: \"\\e5d6\"; }\n\n.fa-face-party::before {\n content: \"\\e383\"; }\n\n.fa-kidneys::before {\n content: \"\\f5fb\"; }\n\n.fa-wifi-exclamation::before {\n content: \"\\e2cf\"; }\n\n.fa-chart-network::before {\n content: \"\\f78a\"; }\n\n.fa-person-dress-burst::before {\n content: \"\\e544\"; }\n\n.fa-dice-d4::before {\n content: \"\\f6d0\"; }\n\n.fa-money-check-dollar::before {\n content: \"\\f53d\"; }\n\n.fa-money-check-alt::before {\n content: \"\\f53d\"; }\n\n.fa-vector-square::before {\n content: \"\\f5cb\"; }\n\n.fa-bread-slice::before {\n content: \"\\f7ec\"; }\n\n.fa-language::before {\n content: \"\\f1ab\"; }\n\n.fa-wheat-awn-slash::before {\n content: \"\\e338\"; }\n\n.fa-face-kiss-wink-heart::before {\n content: \"\\f598\"; }\n\n.fa-kiss-wink-heart::before {\n content: \"\\f598\"; }\n\n.fa-dagger::before {\n content: \"\\f6cb\"; }\n\n.fa-podium::before {\n content: \"\\f680\"; }\n\n.fa-memo-circle-check::before {\n content: \"\\e1d9\"; }\n\n.fa-route-highway::before {\n content: \"\\f61a\"; }\n\n.fa-down-to-line::before {\n content: \"\\f34a\"; }\n\n.fa-arrow-alt-to-bottom::before {\n content: \"\\f34a\"; }\n\n.fa-filter::before {\n content: \"\\f0b0\"; }\n\n.fa-square-g::before {\n content: \"\\e271\"; }\n\n.fa-circle-phone::before {\n content: \"\\e11b\"; }\n\n.fa-phone-circle::before {\n content: \"\\e11b\"; }\n\n.fa-clipboard-prescription::before {\n content: \"\\f5e8\"; }\n\n.fa-user-nurse-hair::before {\n content: \"\\e45d\"; }\n\n.fa-question::before {\n content: \"\\3f\"; }\n\n.fa-file-signature::before {\n content: \"\\f573\"; }\n\n.fa-toggle-large-on::before {\n content: \"\\e5b1\"; }\n\n.fa-up-down-left-right::before {\n content: \"\\f0b2\"; }\n\n.fa-arrows-alt::before {\n content: \"\\f0b2\"; }\n\n.fa-dryer-heat::before {\n content: \"\\f862\"; }\n\n.fa-dryer-alt::before {\n content: \"\\f862\"; }\n\n.fa-house-chimney-user::before {\n content: \"\\e065\"; }\n\n.fa-hand-holding-heart::before {\n content: \"\\f4be\"; }\n\n.fa-arrow-up-small-big::before {\n content: \"\\f88f\"; }\n\n.fa-sort-size-up-alt::before {\n content: \"\\f88f\"; }\n\n.fa-train-track::before {\n content: \"\\e453\"; }\n\n.fa-puzzle-piece::before {\n content: \"\\f12e\"; }\n\n.fa-money-check::before {\n content: \"\\f53c\"; }\n\n.fa-star-half-stroke::before {\n content: \"\\f5c0\"; }\n\n.fa-star-half-alt::before {\n content: \"\\f5c0\"; }\n\n.fa-file-exclamation::before {\n content: \"\\f31a\"; }\n\n.fa-code::before {\n content: \"\\f121\"; }\n\n.fa-whiskey-glass::before {\n content: \"\\f7a0\"; }\n\n.fa-glass-whiskey::before {\n content: \"\\f7a0\"; }\n\n.fa-moon-stars::before {\n content: \"\\f755\"; }\n\n.fa-building-circle-exclamation::before {\n content: \"\\e4d3\"; }\n\n.fa-clothes-hanger::before {\n content: \"\\e136\"; }\n\n.fa-mobile-notch::before {\n content: \"\\e1ee\"; }\n\n.fa-mobile-iphone::before {\n content: \"\\e1ee\"; }\n\n.fa-magnifying-glass-chart::before {\n content: \"\\e522\"; }\n\n.fa-arrow-up-right-from-square::before {\n content: \"\\f08e\"; }\n\n.fa-external-link::before {\n content: \"\\f08e\"; }\n\n.fa-cubes-stacked::before {\n content: \"\\e4e6\"; }\n\n.fa-images-user::before {\n content: \"\\e1b9\"; }\n\n.fa-won-sign::before {\n content: \"\\f159\"; }\n\n.fa-krw::before {\n content: \"\\f159\"; }\n\n.fa-won::before {\n content: \"\\f159\"; }\n\n.fa-image-polaroid-user::before {\n content: \"\\e1b6\"; }\n\n.fa-virus-covid::before {\n content: \"\\e4a8\"; }\n\n.fa-square-ellipsis::before {\n content: \"\\e26e\"; }\n\n.fa-pie::before {\n content: \"\\f705\"; }\n\n.fa-chess-knight-piece::before {\n content: \"\\f442\"; }\n\n.fa-chess-knight-alt::before {\n content: \"\\f442\"; }\n\n.fa-austral-sign::before {\n content: \"\\e0a9\"; }\n\n.fa-cloud-plus::before {\n content: \"\\e35e\"; }\n\n.fa-f::before {\n content: \"\\46\"; }\n\n.fa-leaf::before {\n content: \"\\f06c\"; }\n\n.fa-bed-bunk::before {\n content: \"\\f8f8\"; }\n\n.fa-road::before {\n content: \"\\f018\"; }\n\n.fa-taxi::before {\n content: \"\\f1ba\"; }\n\n.fa-cab::before {\n content: \"\\f1ba\"; }\n\n.fa-person-circle-plus::before {\n content: \"\\e541\"; }\n\n.fa-chart-pie::before {\n content: \"\\f200\"; }\n\n.fa-pie-chart::before {\n content: \"\\f200\"; }\n\n.fa-bolt-lightning::before {\n content: \"\\e0b7\"; }\n\n.fa-clock-eight::before {\n content: \"\\e345\"; }\n\n.fa-sack-xmark::before {\n content: \"\\e56a\"; }\n\n.fa-file-xls::before {\n content: \"\\e64d\"; }\n\n.fa-file-excel::before {\n content: \"\\f1c3\"; }\n\n.fa-file-contract::before {\n content: \"\\f56c\"; }\n\n.fa-fish-fins::before {\n content: \"\\e4f2\"; }\n\n.fa-circle-q::before {\n content: \"\\e11e\"; }\n\n.fa-building-flag::before {\n content: \"\\e4d5\"; }\n\n.fa-face-grin-beam::before {\n content: \"\\f582\"; }\n\n.fa-grin-beam::before {\n content: \"\\f582\"; }\n\n.fa-object-ungroup::before {\n content: \"\\f248\"; }\n\n.fa-face-disguise::before {\n content: \"\\e370\"; }\n\n.fa-circle-arrow-down-right::before {\n content: \"\\e0fa\"; }\n\n.fa-alien-8bit::before {\n content: \"\\f8f6\"; }\n\n.fa-alien-monster::before {\n content: \"\\f8f6\"; }\n\n.fa-hand-point-ribbon::before {\n content: \"\\e1a6\"; }\n\n.fa-poop::before {\n content: \"\\f619\"; }\n\n.fa-object-exclude::before {\n content: \"\\e49c\"; }\n\n.fa-telescope::before {\n content: \"\\e03e\"; }\n\n.fa-location-pin::before {\n content: \"\\f041\"; }\n\n.fa-map-marker::before {\n content: \"\\f041\"; }\n\n.fa-square-list::before {\n content: \"\\e489\"; }\n\n.fa-kaaba::before {\n content: \"\\f66b\"; }\n\n.fa-toilet-paper::before {\n content: \"\\f71e\"; }\n\n.fa-helmet-safety::before {\n content: \"\\f807\"; }\n\n.fa-hard-hat::before {\n content: \"\\f807\"; }\n\n.fa-hat-hard::before {\n content: \"\\f807\"; }\n\n.fa-comment-code::before {\n content: \"\\e147\"; }\n\n.fa-sim-cards::before {\n content: \"\\e251\"; }\n\n.fa-starship::before {\n content: \"\\e039\"; }\n\n.fa-eject::before {\n content: \"\\f052\"; }\n\n.fa-circle-right::before {\n content: \"\\f35a\"; }\n\n.fa-arrow-alt-circle-right::before {\n content: \"\\f35a\"; }\n\n.fa-plane-circle-check::before {\n content: \"\\e555\"; }\n\n.fa-seal::before {\n content: \"\\e241\"; }\n\n.fa-user-cowboy::before {\n content: \"\\f8ea\"; }\n\n.fa-hexagon-vertical-nft::before {\n content: \"\\e505\"; }\n\n.fa-face-rolling-eyes::before {\n content: \"\\f5a5\"; }\n\n.fa-meh-rolling-eyes::before {\n content: \"\\f5a5\"; }\n\n.fa-bread-loaf::before {\n content: \"\\f7eb\"; }\n\n.fa-rings-wedding::before {\n content: \"\\f81b\"; }\n\n.fa-object-group::before {\n content: \"\\f247\"; }\n\n.fa-french-fries::before {\n content: \"\\f803\"; }\n\n.fa-chart-line::before {\n content: \"\\f201\"; }\n\n.fa-line-chart::before {\n content: \"\\f201\"; }\n\n.fa-calendar-arrow-down::before {\n content: \"\\e0d0\"; }\n\n.fa-calendar-download::before {\n content: \"\\e0d0\"; }\n\n.fa-send-back::before {\n content: \"\\f87e\"; }\n\n.fa-mask-ventilator::before {\n content: \"\\e524\"; }\n\n.fa-tickets::before {\n content: \"\\e658\"; }\n\n.fa-signature-lock::before {\n content: \"\\e3ca\"; }\n\n.fa-arrow-right::before {\n content: \"\\f061\"; }\n\n.fa-signs-post::before {\n content: \"\\f277\"; }\n\n.fa-map-signs::before {\n content: \"\\f277\"; }\n\n.fa-octagon-plus::before {\n content: \"\\f301\"; }\n\n.fa-plus-octagon::before {\n content: \"\\f301\"; }\n\n.fa-cash-register::before {\n content: \"\\f788\"; }\n\n.fa-person-circle-question::before {\n content: \"\\e542\"; }\n\n.fa-melon-slice::before {\n content: \"\\e311\"; }\n\n.fa-space-station-moon::before {\n content: \"\\e033\"; }\n\n.fa-message-smile::before {\n content: \"\\f4aa\"; }\n\n.fa-comment-alt-smile::before {\n content: \"\\f4aa\"; }\n\n.fa-cup-straw::before {\n content: \"\\e363\"; }\n\n.fa-left-from-line::before {\n content: \"\\f348\"; }\n\n.fa-arrow-alt-from-right::before {\n content: \"\\f348\"; }\n\n.fa-h::before {\n content: \"\\48\"; }\n\n.fa-basket-shopping-simple::before {\n content: \"\\e0af\"; }\n\n.fa-shopping-basket-alt::before {\n content: \"\\e0af\"; }\n\n.fa-hands-holding-heart::before {\n content: \"\\f4c3\"; }\n\n.fa-hands-heart::before {\n content: \"\\f4c3\"; }\n\n.fa-clock-nine::before {\n content: \"\\e34c\"; }\n\n.fa-hammer-brush::before {\n content: \"\\e620\"; }\n\n.fa-tarp::before {\n content: \"\\e57b\"; }\n\n.fa-face-sleepy::before {\n content: \"\\e38e\"; }\n\n.fa-hand-horns::before {\n content: \"\\e1a9\"; }\n\n.fa-screwdriver-wrench::before {\n content: \"\\f7d9\"; }\n\n.fa-tools::before {\n content: \"\\f7d9\"; }\n\n.fa-arrows-to-eye::before {\n content: \"\\e4bf\"; }\n\n.fa-circle-three-quarters::before {\n content: \"\\e125\"; }\n\n.fa-trophy-star::before {\n content: \"\\f2eb\"; }\n\n.fa-trophy-alt::before {\n content: \"\\f2eb\"; }\n\n.fa-plug-circle-bolt::before {\n content: \"\\e55b\"; }\n\n.fa-face-thermometer::before {\n content: \"\\e39a\"; }\n\n.fa-grid-round-4::before {\n content: \"\\e5dd\"; }\n\n.fa-sign-posts-wrench::before {\n content: \"\\e626\"; }\n\n.fa-shirt-running::before {\n content: \"\\e3c8\"; }\n\n.fa-book-circle-arrow-up::before {\n content: \"\\e0bd\"; }\n\n.fa-face-nauseated::before {\n content: \"\\e381\"; }\n\n.fa-heart::before {\n content: \"\\f004\"; }\n\n.fa-file-chart-pie::before {\n content: \"\\f65a\"; }\n\n.fa-mars-and-venus::before {\n content: \"\\f224\"; }\n\n.fa-house-user::before {\n content: \"\\e1b0\"; }\n\n.fa-home-user::before {\n content: \"\\e1b0\"; }\n\n.fa-circle-arrow-down-left::before {\n content: \"\\e0f9\"; }\n\n.fa-dumpster-fire::before {\n content: \"\\f794\"; }\n\n.fa-hexagon-minus::before {\n content: \"\\f307\"; }\n\n.fa-minus-hexagon::before {\n content: \"\\f307\"; }\n\n.fa-left-to-line::before {\n content: \"\\f34b\"; }\n\n.fa-arrow-alt-to-left::before {\n content: \"\\f34b\"; }\n\n.fa-house-crack::before {\n content: \"\\e3b1\"; }\n\n.fa-paw-simple::before {\n content: \"\\f701\"; }\n\n.fa-paw-alt::before {\n content: \"\\f701\"; }\n\n.fa-arrow-left-long-to-line::before {\n content: \"\\e3d4\"; }\n\n.fa-brackets-round::before {\n content: \"\\e0c5\"; }\n\n.fa-parentheses::before {\n content: \"\\e0c5\"; }\n\n.fa-martini-glass-citrus::before {\n content: \"\\f561\"; }\n\n.fa-cocktail::before {\n content: \"\\f561\"; }\n\n.fa-user-shakespeare::before {\n content: \"\\e2c2\"; }\n\n.fa-arrow-right-to-arc::before {\n content: \"\\e4b2\"; }\n\n.fa-face-surprise::before {\n content: \"\\f5c2\"; }\n\n.fa-surprise::before {\n content: \"\\f5c2\"; }\n\n.fa-bottle-water::before {\n content: \"\\e4c5\"; }\n\n.fa-circle-pause::before {\n content: \"\\f28b\"; }\n\n.fa-pause-circle::before {\n content: \"\\f28b\"; }\n\n.fa-gauge-circle-plus::before {\n content: \"\\e498\"; }\n\n.fa-folders::before {\n content: \"\\f660\"; }\n\n.fa-angel::before {\n content: \"\\f779\"; }\n\n.fa-value-absolute::before {\n content: \"\\f6a6\"; }\n\n.fa-rabbit::before {\n content: \"\\f708\"; }\n\n.fa-toilet-paper-slash::before {\n content: \"\\e072\"; }\n\n.fa-circle-euro::before {\n content: \"\\e5ce\"; }\n\n.fa-apple-whole::before {\n content: \"\\f5d1\"; }\n\n.fa-apple-alt::before {\n content: \"\\f5d1\"; }\n\n.fa-kitchen-set::before {\n content: \"\\e51a\"; }\n\n.fa-diamond-half::before {\n content: \"\\e5b7\"; }\n\n.fa-lock-keyhole::before {\n content: \"\\f30d\"; }\n\n.fa-lock-alt::before {\n content: \"\\f30d\"; }\n\n.fa-r::before {\n content: \"\\52\"; }\n\n.fa-temperature-quarter::before {\n content: \"\\f2ca\"; }\n\n.fa-temperature-1::before {\n content: \"\\f2ca\"; }\n\n.fa-thermometer-1::before {\n content: \"\\f2ca\"; }\n\n.fa-thermometer-quarter::before {\n content: \"\\f2ca\"; }\n\n.fa-square-info::before {\n content: \"\\f30f\"; }\n\n.fa-info-square::before {\n content: \"\\f30f\"; }\n\n.fa-wifi-slash::before {\n content: \"\\f6ac\"; }\n\n.fa-toilet-paper-xmark::before {\n content: \"\\e5b3\"; }\n\n.fa-hands-holding-dollar::before {\n content: \"\\f4c5\"; }\n\n.fa-hands-usd::before {\n content: \"\\f4c5\"; }\n\n.fa-cube::before {\n content: \"\\f1b2\"; }\n\n.fa-arrow-down-triangle-square::before {\n content: \"\\f888\"; }\n\n.fa-sort-shapes-down::before {\n content: \"\\f888\"; }\n\n.fa-bitcoin-sign::before {\n content: \"\\e0b4\"; }\n\n.fa-shutters::before {\n content: \"\\e449\"; }\n\n.fa-shield-dog::before {\n content: \"\\e573\"; }\n\n.fa-solar-panel::before {\n content: \"\\f5ba\"; }\n\n.fa-lock-open::before {\n content: \"\\f3c1\"; }\n\n.fa-table-tree::before {\n content: \"\\e293\"; }\n\n.fa-house-chimney-heart::before {\n content: \"\\e1b2\"; }\n\n.fa-tally-3::before {\n content: \"\\e296\"; }\n\n.fa-elevator::before {\n content: \"\\e16d\"; }\n\n.fa-money-bill-transfer::before {\n content: \"\\e528\"; }\n\n.fa-money-bill-trend-up::before {\n content: \"\\e529\"; }\n\n.fa-house-flood-water-circle-arrow-right::before {\n content: \"\\e50f\"; }\n\n.fa-square-poll-horizontal::before {\n content: \"\\f682\"; }\n\n.fa-poll-h::before {\n content: \"\\f682\"; }\n\n.fa-circle::before {\n content: \"\\f111\"; }\n\n.fa-left-to-bracket::before {\n content: \"\\e66d\"; }\n\n.fa-cart-circle-exclamation::before {\n content: \"\\e3f2\"; }\n\n.fa-sword::before {\n content: \"\\f71c\"; }\n\n.fa-backward-fast::before {\n content: \"\\f049\"; }\n\n.fa-fast-backward::before {\n content: \"\\f049\"; }\n\n.fa-recycle::before {\n content: \"\\f1b8\"; }\n\n.fa-user-astronaut::before {\n content: \"\\f4fb\"; }\n\n.fa-interrobang::before {\n content: \"\\e5ba\"; }\n\n.fa-plane-slash::before {\n content: \"\\e069\"; }\n\n.fa-circle-dashed::before {\n content: \"\\e105\"; }\n\n.fa-trademark::before {\n content: \"\\f25c\"; }\n\n.fa-basketball::before {\n content: \"\\f434\"; }\n\n.fa-basketball-ball::before {\n content: \"\\f434\"; }\n\n.fa-fork-knife::before {\n content: \"\\f2e6\"; }\n\n.fa-utensils-alt::before {\n content: \"\\f2e6\"; }\n\n.fa-satellite-dish::before {\n content: \"\\f7c0\"; }\n\n.fa-badge-check::before {\n content: \"\\f336\"; }\n\n.fa-circle-up::before {\n content: \"\\f35b\"; }\n\n.fa-arrow-alt-circle-up::before {\n content: \"\\f35b\"; }\n\n.fa-slider::before {\n content: \"\\e252\"; }\n\n.fa-mobile-screen-button::before {\n content: \"\\f3cd\"; }\n\n.fa-mobile-alt::before {\n content: \"\\f3cd\"; }\n\n.fa-clock-one-thirty::before {\n content: \"\\e34f\"; }\n\n.fa-inbox-out::before {\n content: \"\\f311\"; }\n\n.fa-inbox-arrow-up::before {\n content: \"\\f311\"; }\n\n.fa-cloud-slash::before {\n content: \"\\e137\"; }\n\n.fa-volume-high::before {\n content: \"\\f028\"; }\n\n.fa-volume-up::before {\n content: \"\\f028\"; }\n\n.fa-users-rays::before {\n content: \"\\e593\"; }\n\n.fa-wallet::before {\n content: \"\\f555\"; }\n\n.fa-octagon-check::before {\n content: \"\\e426\"; }\n\n.fa-flatbread-stuffed::before {\n content: \"\\e40c\"; }\n\n.fa-clipboard-check::before {\n content: \"\\f46c\"; }\n\n.fa-cart-circle-plus::before {\n content: \"\\e3f3\"; }\n\n.fa-truck-clock::before {\n content: \"\\f48c\"; }\n\n.fa-shipping-timed::before {\n content: \"\\f48c\"; }\n\n.fa-pool-8-ball::before {\n content: \"\\e3c5\"; }\n\n.fa-file-audio::before {\n content: \"\\f1c7\"; }\n\n.fa-turn-down-left::before {\n content: \"\\e331\"; }\n\n.fa-lock-hashtag::before {\n content: \"\\e423\"; }\n\n.fa-chart-radar::before {\n content: \"\\e0e7\"; }\n\n.fa-staff::before {\n content: \"\\f71b\"; }\n\n.fa-burger::before {\n content: \"\\f805\"; }\n\n.fa-hamburger::before {\n content: \"\\f805\"; }\n\n.fa-utility-pole::before {\n content: \"\\e2c3\"; }\n\n.fa-transporter-6::before {\n content: \"\\e2a7\"; }\n\n.fa-arrow-turn-left::before {\n content: \"\\e632\"; }\n\n.fa-wrench::before {\n content: \"\\f0ad\"; }\n\n.fa-bugs::before {\n content: \"\\e4d0\"; }\n\n.fa-vector-polygon::before {\n content: \"\\e2c7\"; }\n\n.fa-diagram-nested::before {\n content: \"\\e157\"; }\n\n.fa-rupee-sign::before {\n content: \"\\f156\"; }\n\n.fa-rupee::before {\n content: \"\\f156\"; }\n\n.fa-file-image::before {\n content: \"\\f1c5\"; }\n\n.fa-circle-question::before {\n content: \"\\f059\"; }\n\n.fa-question-circle::before {\n content: \"\\f059\"; }\n\n.fa-tickets-perforated::before {\n content: \"\\e63f\"; }\n\n.fa-image-user::before {\n content: \"\\e1b8\"; }\n\n.fa-buoy::before {\n content: \"\\e5b5\"; }\n\n.fa-plane-departure::before {\n content: \"\\f5b0\"; }\n\n.fa-handshake-slash::before {\n content: \"\\e060\"; }\n\n.fa-book-bookmark::before {\n content: \"\\e0bb\"; }\n\n.fa-border-center-h::before {\n content: \"\\f89c\"; }\n\n.fa-can-food::before {\n content: \"\\e3e6\"; }\n\n.fa-typewriter::before {\n content: \"\\f8e7\"; }\n\n.fa-arrow-right-from-arc::before {\n content: \"\\e4b1\"; }\n\n.fa-circle-k::before {\n content: \"\\e113\"; }\n\n.fa-face-hand-over-mouth::before {\n content: \"\\e378\"; }\n\n.fa-popcorn::before {\n content: \"\\f819\"; }\n\n.fa-house-water::before {\n content: \"\\f74f\"; }\n\n.fa-house-flood::before {\n content: \"\\f74f\"; }\n\n.fa-object-subtract::before {\n content: \"\\e49e\"; }\n\n.fa-code-branch::before {\n content: \"\\f126\"; }\n\n.fa-warehouse-full::before {\n content: \"\\f495\"; }\n\n.fa-warehouse-alt::before {\n content: \"\\f495\"; }\n\n.fa-hat-cowboy::before {\n content: \"\\f8c0\"; }\n\n.fa-bridge::before {\n content: \"\\e4c8\"; }\n\n.fa-phone-flip::before {\n content: \"\\f879\"; }\n\n.fa-phone-alt::before {\n content: \"\\f879\"; }\n\n.fa-arrow-down-from-dotted-line::before {\n content: \"\\e090\"; }\n\n.fa-file-doc::before {\n content: \"\\e5ed\"; }\n\n.fa-square-quarters::before {\n content: \"\\e44e\"; }\n\n.fa-truck-front::before {\n content: \"\\e2b7\"; }\n\n.fa-cat::before {\n content: \"\\f6be\"; }\n\n.fa-trash-xmark::before {\n content: \"\\e2b4\"; }\n\n.fa-circle-caret-left::before {\n content: \"\\f32e\"; }\n\n.fa-caret-circle-left::before {\n content: \"\\f32e\"; }\n\n.fa-files::before {\n content: \"\\e178\"; }\n\n.fa-anchor-circle-exclamation::before {\n content: \"\\e4ab\"; }\n\n.fa-face-clouds::before {\n content: \"\\e47d\"; }\n\n.fa-user-crown::before {\n content: \"\\f6a4\"; }\n\n.fa-basket-shopping-plus::before {\n content: \"\\e653\"; }\n\n.fa-truck-field::before {\n content: \"\\e58d\"; }\n\n.fa-route::before {\n content: \"\\f4d7\"; }\n\n.fa-cart-circle-check::before {\n content: \"\\e3f1\"; }\n\n.fa-clipboard-question::before {\n content: \"\\e4e3\"; }\n\n.fa-panorama::before {\n content: \"\\e209\"; }\n\n.fa-comment-medical::before {\n content: \"\\f7f5\"; }\n\n.fa-teeth-open::before {\n content: \"\\f62f\"; }\n\n.fa-user-tie-hair-long::before {\n content: \"\\e460\"; }\n\n.fa-file-circle-minus::before {\n content: \"\\e4ed\"; }\n\n.fa-head-side-medical::before {\n content: \"\\f809\"; }\n\n.fa-arrow-turn-right::before {\n content: \"\\e635\"; }\n\n.fa-tags::before {\n content: \"\\f02c\"; }\n\n.fa-wine-glass::before {\n content: \"\\f4e3\"; }\n\n.fa-forward-fast::before {\n content: \"\\f050\"; }\n\n.fa-fast-forward::before {\n content: \"\\f050\"; }\n\n.fa-face-meh-blank::before {\n content: \"\\f5a4\"; }\n\n.fa-meh-blank::before {\n content: \"\\f5a4\"; }\n\n.fa-user-robot::before {\n content: \"\\e04b\"; }\n\n.fa-square-parking::before {\n content: \"\\f540\"; }\n\n.fa-parking::before {\n content: \"\\f540\"; }\n\n.fa-card-diamond::before {\n content: \"\\e3ea\"; }\n\n.fa-face-zipper::before {\n content: \"\\e3a5\"; }\n\n.fa-face-raised-eyebrow::before {\n content: \"\\e388\"; }\n\n.fa-house-signal::before {\n content: \"\\e012\"; }\n\n.fa-square-chevron-up::before {\n content: \"\\f32c\"; }\n\n.fa-chevron-square-up::before {\n content: \"\\f32c\"; }\n\n.fa-bars-progress::before {\n content: \"\\f828\"; }\n\n.fa-tasks-alt::before {\n content: \"\\f828\"; }\n\n.fa-faucet-drip::before {\n content: \"\\e006\"; }\n\n.fa-arrows-to-line::before {\n content: \"\\e0a7\"; }\n\n.fa-dolphin::before {\n content: \"\\e168\"; }\n\n.fa-arrow-up-right::before {\n content: \"\\e09f\"; }\n\n.fa-circle-r::before {\n content: \"\\e120\"; }\n\n.fa-cart-flatbed::before {\n content: \"\\f474\"; }\n\n.fa-dolly-flatbed::before {\n content: \"\\f474\"; }\n\n.fa-ban-smoking::before {\n content: \"\\f54d\"; }\n\n.fa-smoking-ban::before {\n content: \"\\f54d\"; }\n\n.fa-circle-sort-up::before {\n content: \"\\e032\"; }\n\n.fa-sort-circle-up::before {\n content: \"\\e032\"; }\n\n.fa-terminal::before {\n content: \"\\f120\"; }\n\n.fa-mobile-button::before {\n content: \"\\f10b\"; }\n\n.fa-house-medical-flag::before {\n content: \"\\e514\"; }\n\n.fa-basket-shopping::before {\n content: \"\\f291\"; }\n\n.fa-shopping-basket::before {\n content: \"\\f291\"; }\n\n.fa-tape::before {\n content: \"\\f4db\"; }\n\n.fa-chestnut::before {\n content: \"\\e3f6\"; }\n\n.fa-bus-simple::before {\n content: \"\\f55e\"; }\n\n.fa-bus-alt::before {\n content: \"\\f55e\"; }\n\n.fa-eye::before {\n content: \"\\f06e\"; }\n\n.fa-face-sad-cry::before {\n content: \"\\f5b3\"; }\n\n.fa-sad-cry::before {\n content: \"\\f5b3\"; }\n\n.fa-heat::before {\n content: \"\\e00c\"; }\n\n.fa-ticket-airline::before {\n content: \"\\e29a\"; }\n\n.fa-ticket-perforated-plane::before {\n content: \"\\e29a\"; }\n\n.fa-ticket-plane::before {\n content: \"\\e29a\"; }\n\n.fa-boot-heeled::before {\n content: \"\\e33f\"; }\n\n.fa-arrows-minimize::before {\n content: \"\\e0a5\"; }\n\n.fa-compress-arrows::before {\n content: \"\\e0a5\"; }\n\n.fa-audio-description::before {\n content: \"\\f29e\"; }\n\n.fa-person-military-to-person::before {\n content: \"\\e54c\"; }\n\n.fa-file-shield::before {\n content: \"\\e4f0\"; }\n\n.fa-hexagon::before {\n content: \"\\f312\"; }\n\n.fa-manhole::before {\n content: \"\\e1d6\"; }\n\n.fa-user-slash::before {\n content: \"\\f506\"; }\n\n.fa-pen::before {\n content: \"\\f304\"; }\n\n.fa-tower-observation::before {\n content: \"\\e586\"; }\n\n.fa-floppy-disks::before {\n content: \"\\e183\"; }\n\n.fa-toilet-paper-blank-under::before {\n content: \"\\e29f\"; }\n\n.fa-toilet-paper-reverse-alt::before {\n content: \"\\e29f\"; }\n\n.fa-file-code::before {\n content: \"\\f1c9\"; }\n\n.fa-signal::before {\n content: \"\\f012\"; }\n\n.fa-signal-5::before {\n content: \"\\f012\"; }\n\n.fa-signal-perfect::before {\n content: \"\\f012\"; }\n\n.fa-pump::before {\n content: \"\\e442\"; }\n\n.fa-bus::before {\n content: \"\\f207\"; }\n\n.fa-heart-circle-xmark::before {\n content: \"\\e501\"; }\n\n.fa-arrow-up-left-from-circle::before {\n content: \"\\e09e\"; }\n\n.fa-house-chimney::before {\n content: \"\\e3af\"; }\n\n.fa-home-lg::before {\n content: \"\\e3af\"; }\n\n.fa-window-maximize::before {\n content: \"\\f2d0\"; }\n\n.fa-dryer::before {\n content: \"\\f861\"; }\n\n.fa-face-frown::before {\n content: \"\\f119\"; }\n\n.fa-frown::before {\n content: \"\\f119\"; }\n\n.fa-chess-bishop-piece::before {\n content: \"\\f43b\"; }\n\n.fa-chess-bishop-alt::before {\n content: \"\\f43b\"; }\n\n.fa-shirt-tank-top::before {\n content: \"\\e3c9\"; }\n\n.fa-diploma::before {\n content: \"\\f5ea\"; }\n\n.fa-scroll-ribbon::before {\n content: \"\\f5ea\"; }\n\n.fa-screencast::before {\n content: \"\\e23e\"; }\n\n.fa-walker::before {\n content: \"\\f831\"; }\n\n.fa-prescription::before {\n content: \"\\f5b1\"; }\n\n.fa-shop::before {\n content: \"\\f54f\"; }\n\n.fa-store-alt::before {\n content: \"\\f54f\"; }\n\n.fa-floppy-disk::before {\n content: \"\\f0c7\"; }\n\n.fa-save::before {\n content: \"\\f0c7\"; }\n\n.fa-vihara::before {\n content: \"\\f6a7\"; }\n\n.fa-face-kiss-closed-eyes::before {\n content: \"\\e37d\"; }\n\n.fa-scale-unbalanced::before {\n content: \"\\f515\"; }\n\n.fa-balance-scale-left::before {\n content: \"\\f515\"; }\n\n.fa-file-user::before {\n content: \"\\f65c\"; }\n\n.fa-user-police-tie::before {\n content: \"\\e334\"; }\n\n.fa-face-tongue-money::before {\n content: \"\\e39d\"; }\n\n.fa-tennis-ball::before {\n content: \"\\f45e\"; }\n\n.fa-square-l::before {\n content: \"\\e275\"; }\n\n.fa-sort-up::before {\n content: \"\\f0de\"; }\n\n.fa-sort-asc::before {\n content: \"\\f0de\"; }\n\n.fa-calendar-arrow-up::before {\n content: \"\\e0d1\"; }\n\n.fa-calendar-upload::before {\n content: \"\\e0d1\"; }\n\n.fa-comment-dots::before {\n content: \"\\f4ad\"; }\n\n.fa-commenting::before {\n content: \"\\f4ad\"; }\n\n.fa-plant-wilt::before {\n content: \"\\e5aa\"; }\n\n.fa-scarf::before {\n content: \"\\f7c1\"; }\n\n.fa-album-circle-plus::before {\n content: \"\\e48c\"; }\n\n.fa-user-nurse-hair-long::before {\n content: \"\\e45e\"; }\n\n.fa-diamond::before {\n content: \"\\f219\"; }\n\n.fa-square-left::before {\n content: \"\\f351\"; }\n\n.fa-arrow-alt-square-left::before {\n content: \"\\f351\"; }\n\n.fa-face-grin-squint::before {\n content: \"\\f585\"; }\n\n.fa-grin-squint::before {\n content: \"\\f585\"; }\n\n.fa-circle-ellipsis-vertical::before {\n content: \"\\e10b\"; }\n\n.fa-hand-holding-dollar::before {\n content: \"\\f4c0\"; }\n\n.fa-hand-holding-usd::before {\n content: \"\\f4c0\"; }\n\n.fa-grid-dividers::before {\n content: \"\\e3ad\"; }\n\n.fa-bacterium::before {\n content: \"\\e05a\"; }\n\n.fa-hand-pointer::before {\n content: \"\\f25a\"; }\n\n.fa-drum-steelpan::before {\n content: \"\\f56a\"; }\n\n.fa-hand-scissors::before {\n content: \"\\f257\"; }\n\n.fa-hands-praying::before {\n content: \"\\f684\"; }\n\n.fa-praying-hands::before {\n content: \"\\f684\"; }\n\n.fa-face-pensive::before {\n content: \"\\e384\"; }\n\n.fa-user-music::before {\n content: \"\\f8eb\"; }\n\n.fa-arrow-rotate-right::before {\n content: \"\\f01e\"; }\n\n.fa-arrow-right-rotate::before {\n content: \"\\f01e\"; }\n\n.fa-arrow-rotate-forward::before {\n content: \"\\f01e\"; }\n\n.fa-redo::before {\n content: \"\\f01e\"; }\n\n.fa-messages-dollar::before {\n content: \"\\f652\"; }\n\n.fa-comments-alt-dollar::before {\n content: \"\\f652\"; }\n\n.fa-sensor-on::before {\n content: \"\\e02b\"; }\n\n.fa-balloon::before {\n content: \"\\e2e3\"; }\n\n.fa-biohazard::before {\n content: \"\\f780\"; }\n\n.fa-chess-queen-piece::before {\n content: \"\\f446\"; }\n\n.fa-chess-queen-alt::before {\n content: \"\\f446\"; }\n\n.fa-location-crosshairs::before {\n content: \"\\f601\"; }\n\n.fa-location::before {\n content: \"\\f601\"; }\n\n.fa-mars-double::before {\n content: \"\\f227\"; }\n\n.fa-left-from-bracket::before {\n content: \"\\e66c\"; }\n\n.fa-house-person-leave::before {\n content: \"\\e00f\"; }\n\n.fa-house-leave::before {\n content: \"\\e00f\"; }\n\n.fa-house-person-depart::before {\n content: \"\\e00f\"; }\n\n.fa-ruler-triangle::before {\n content: \"\\f61c\"; }\n\n.fa-card-club::before {\n content: \"\\e3e9\"; }\n\n.fa-child-dress::before {\n content: \"\\e59c\"; }\n\n.fa-users-between-lines::before {\n content: \"\\e591\"; }\n\n.fa-lungs-virus::before {\n content: \"\\e067\"; }\n\n.fa-spinner-third::before {\n content: \"\\f3f4\"; }\n\n.fa-face-grin-tears::before {\n content: \"\\f588\"; }\n\n.fa-grin-tears::before {\n content: \"\\f588\"; }\n\n.fa-phone::before {\n content: \"\\f095\"; }\n\n.fa-computer-mouse-scrollwheel::before {\n content: \"\\f8cd\"; }\n\n.fa-mouse-alt::before {\n content: \"\\f8cd\"; }\n\n.fa-calendar-xmark::before {\n content: \"\\f273\"; }\n\n.fa-calendar-times::before {\n content: \"\\f273\"; }\n\n.fa-child-reaching::before {\n content: \"\\e59d\"; }\n\n.fa-table-layout::before {\n content: \"\\e290\"; }\n\n.fa-narwhal::before {\n content: \"\\f6fe\"; }\n\n.fa-ramp-loading::before {\n content: \"\\f4d4\"; }\n\n.fa-calendar-circle-plus::before {\n content: \"\\e470\"; }\n\n.fa-toothbrush::before {\n content: \"\\f635\"; }\n\n.fa-border-inner::before {\n content: \"\\f84e\"; }\n\n.fa-paw-claws::before {\n content: \"\\f702\"; }\n\n.fa-kiwi-fruit::before {\n content: \"\\e30c\"; }\n\n.fa-traffic-light-slow::before {\n content: \"\\f639\"; }\n\n.fa-rectangle-code::before {\n content: \"\\e322\"; }\n\n.fa-head-side-virus::before {\n content: \"\\e064\"; }\n\n.fa-keyboard-brightness::before {\n content: \"\\e1c0\"; }\n\n.fa-books-medical::before {\n content: \"\\f7e8\"; }\n\n.fa-lightbulb-slash::before {\n content: \"\\f673\"; }\n\n.fa-house-blank::before {\n content: \"\\e487\"; }\n\n.fa-home-blank::before {\n content: \"\\e487\"; }\n\n.fa-square-5::before {\n content: \"\\e25a\"; }\n\n.fa-square-heart::before {\n content: \"\\f4c8\"; }\n\n.fa-heart-square::before {\n content: \"\\f4c8\"; }\n\n.fa-puzzle::before {\n content: \"\\e443\"; }\n\n.fa-user-gear::before {\n content: \"\\f4fe\"; }\n\n.fa-user-cog::before {\n content: \"\\f4fe\"; }\n\n.fa-pipe-circle-check::before {\n content: \"\\e436\"; }\n\n.fa-arrow-up-1-9::before {\n content: \"\\f163\"; }\n\n.fa-sort-numeric-up::before {\n content: \"\\f163\"; }\n\n.fa-octagon-exclamation::before {\n content: \"\\e204\"; }\n\n.fa-dial-low::before {\n content: \"\\e15d\"; }\n\n.fa-door-closed::before {\n content: \"\\f52a\"; }\n\n.fa-laptop-mobile::before {\n content: \"\\f87a\"; }\n\n.fa-phone-laptop::before {\n content: \"\\f87a\"; }\n\n.fa-conveyor-belt-boxes::before {\n content: \"\\f46f\"; }\n\n.fa-conveyor-belt-alt::before {\n content: \"\\f46f\"; }\n\n.fa-shield-virus::before {\n content: \"\\e06c\"; }\n\n.fa-starfighter-twin-ion-engine-advanced::before {\n content: \"\\e28e\"; }\n\n.fa-starfighter-alt-advanced::before {\n content: \"\\e28e\"; }\n\n.fa-dice-six::before {\n content: \"\\f526\"; }\n\n.fa-starfighter-twin-ion-engine::before {\n content: \"\\e038\"; }\n\n.fa-starfighter-alt::before {\n content: \"\\e038\"; }\n\n.fa-rocket-launch::before {\n content: \"\\e027\"; }\n\n.fa-mosquito-net::before {\n content: \"\\e52c\"; }\n\n.fa-vent-damper::before {\n content: \"\\e465\"; }\n\n.fa-bridge-water::before {\n content: \"\\e4ce\"; }\n\n.fa-ban-bug::before {\n content: \"\\f7f9\"; }\n\n.fa-debug::before {\n content: \"\\f7f9\"; }\n\n.fa-person-booth::before {\n content: \"\\f756\"; }\n\n.fa-text-width::before {\n content: \"\\f035\"; }\n\n.fa-garage-car::before {\n content: \"\\e00a\"; }\n\n.fa-square-kanban::before {\n content: \"\\e488\"; }\n\n.fa-hat-wizard::before {\n content: \"\\f6e8\"; }\n\n.fa-chart-kanban::before {\n content: \"\\e64f\"; }\n\n.fa-pen-fancy::before {\n content: \"\\f5ac\"; }\n\n.fa-coffee-pot::before {\n content: \"\\e002\"; }\n\n.fa-mouse-field::before {\n content: \"\\e5a8\"; }\n\n.fa-person-digging::before {\n content: \"\\f85e\"; }\n\n.fa-digging::before {\n content: \"\\f85e\"; }\n\n.fa-shower-down::before {\n content: \"\\e24d\"; }\n\n.fa-shower-alt::before {\n content: \"\\e24d\"; }\n\n.fa-box-circle-check::before {\n content: \"\\e0c4\"; }\n\n.fa-brightness::before {\n content: \"\\e0c9\"; }\n\n.fa-car-side-bolt::before {\n content: \"\\e344\"; }\n\n.fa-file-xml::before {\n content: \"\\e654\"; }\n\n.fa-ornament::before {\n content: \"\\f7b8\"; }\n\n.fa-phone-arrow-down-left::before {\n content: \"\\e223\"; }\n\n.fa-phone-arrow-down::before {\n content: \"\\e223\"; }\n\n.fa-phone-incoming::before {\n content: \"\\e223\"; }\n\n.fa-cloud-word::before {\n content: \"\\e138\"; }\n\n.fa-hand-fingers-crossed::before {\n content: \"\\e1a3\"; }\n\n.fa-trash::before {\n content: \"\\f1f8\"; }\n\n.fa-gauge-simple::before {\n content: \"\\f629\"; }\n\n.fa-gauge-simple-med::before {\n content: \"\\f629\"; }\n\n.fa-tachometer-average::before {\n content: \"\\f629\"; }\n\n.fa-arrow-down-small-big::before {\n content: \"\\f88d\"; }\n\n.fa-sort-size-down-alt::before {\n content: \"\\f88d\"; }\n\n.fa-book-medical::before {\n content: \"\\f7e6\"; }\n\n.fa-face-melting::before {\n content: \"\\e483\"; }\n\n.fa-poo::before {\n content: \"\\f2fe\"; }\n\n.fa-pen-clip-slash::before {\n content: \"\\e20f\"; }\n\n.fa-pen-alt-slash::before {\n content: \"\\e20f\"; }\n\n.fa-quote-right::before {\n content: \"\\f10e\"; }\n\n.fa-quote-right-alt::before {\n content: \"\\f10e\"; }\n\n.fa-scroll-old::before {\n content: \"\\f70f\"; }\n\n.fa-guitars::before {\n content: \"\\f8bf\"; }\n\n.fa-phone-xmark::before {\n content: \"\\e227\"; }\n\n.fa-hose::before {\n content: \"\\e419\"; }\n\n.fa-clock-six::before {\n content: \"\\e352\"; }\n\n.fa-shirt::before {\n content: \"\\f553\"; }\n\n.fa-t-shirt::before {\n content: \"\\f553\"; }\n\n.fa-tshirt::before {\n content: \"\\f553\"; }\n\n.fa-billboard::before {\n content: \"\\e5cd\"; }\n\n.fa-square-r::before {\n content: \"\\e27c\"; }\n\n.fa-cubes::before {\n content: \"\\f1b3\"; }\n\n.fa-envelope-open-dollar::before {\n content: \"\\f657\"; }\n\n.fa-divide::before {\n content: \"\\f529\"; }\n\n.fa-sun-cloud::before {\n content: \"\\f763\"; }\n\n.fa-lamp-floor::before {\n content: \"\\e015\"; }\n\n.fa-square-7::before {\n content: \"\\e25c\"; }\n\n.fa-tenge-sign::before {\n content: \"\\f7d7\"; }\n\n.fa-tenge::before {\n content: \"\\f7d7\"; }\n\n.fa-headphones::before {\n content: \"\\f025\"; }\n\n.fa-hands-holding::before {\n content: \"\\f4c2\"; }\n\n.fa-campfire::before {\n content: \"\\f6ba\"; }\n\n.fa-circle-ampersand::before {\n content: \"\\e0f8\"; }\n\n.fa-snowflakes::before {\n content: \"\\f7cf\"; }\n\n.fa-hands-clapping::before {\n content: \"\\e1a8\"; }\n\n.fa-republican::before {\n content: \"\\f75e\"; }\n\n.fa-leaf-maple::before {\n content: \"\\f6f6\"; }\n\n.fa-arrow-left::before {\n content: \"\\f060\"; }\n\n.fa-person-circle-xmark::before {\n content: \"\\e543\"; }\n\n.fa-ruler::before {\n content: \"\\f545\"; }\n\n.fa-arrow-left-from-bracket::before {\n content: \"\\e668\"; }\n\n.fa-cup-straw-swoosh::before {\n content: \"\\e364\"; }\n\n.fa-temperature-sun::before {\n content: \"\\f76a\"; }\n\n.fa-temperature-hot::before {\n content: \"\\f76a\"; }\n\n.fa-align-left::before {\n content: \"\\f036\"; }\n\n.fa-dice-d6::before {\n content: \"\\f6d1\"; }\n\n.fa-restroom::before {\n content: \"\\f7bd\"; }\n\n.fa-high-definition::before {\n content: \"\\e1ae\"; }\n\n.fa-rectangle-hd::before {\n content: \"\\e1ae\"; }\n\n.fa-j::before {\n content: \"\\4a\"; }\n\n.fa-galaxy::before {\n content: \"\\e008\"; }\n\n.fa-users-viewfinder::before {\n content: \"\\e595\"; }\n\n.fa-file-video::before {\n content: \"\\f1c8\"; }\n\n.fa-cherries::before {\n content: \"\\e0ec\"; }\n\n.fa-up-right-from-square::before {\n content: \"\\f35d\"; }\n\n.fa-external-link-alt::before {\n content: \"\\f35d\"; }\n\n.fa-circle-sort::before {\n content: \"\\e030\"; }\n\n.fa-sort-circle::before {\n content: \"\\e030\"; }\n\n.fa-table-cells::before {\n content: \"\\f00a\"; }\n\n.fa-th::before {\n content: \"\\f00a\"; }\n\n.fa-bag-shopping-minus::before {\n content: \"\\e650\"; }\n\n.fa-file-pdf::before {\n content: \"\\f1c1\"; }\n\n.fa-siren::before {\n content: \"\\e02d\"; }\n\n.fa-arrow-up-to-dotted-line::before {\n content: \"\\e0a1\"; }\n\n.fa-image-landscape::before {\n content: \"\\e1b5\"; }\n\n.fa-landscape::before {\n content: \"\\e1b5\"; }\n\n.fa-tank-water::before {\n content: \"\\e452\"; }\n\n.fa-curling-stone::before {\n content: \"\\f44a\"; }\n\n.fa-curling::before {\n content: \"\\f44a\"; }\n\n.fa-gamepad-modern::before {\n content: \"\\e5a2\"; }\n\n.fa-gamepad-alt::before {\n content: \"\\e5a2\"; }\n\n.fa-messages-question::before {\n content: \"\\e1e7\"; }\n\n.fa-book-bible::before {\n content: \"\\f647\"; }\n\n.fa-bible::before {\n content: \"\\f647\"; }\n\n.fa-o::before {\n content: \"\\4f\"; }\n\n.fa-suitcase-medical::before {\n content: \"\\f0fa\"; }\n\n.fa-medkit::before {\n content: \"\\f0fa\"; }\n\n.fa-briefcase-arrow-right::before {\n content: \"\\e2f2\"; }\n\n.fa-expand-wide::before {\n content: \"\\f320\"; }\n\n.fa-clock-eleven-thirty::before {\n content: \"\\e348\"; }\n\n.fa-rv::before {\n content: \"\\f7be\"; }\n\n.fa-user-secret::before {\n content: \"\\f21b\"; }\n\n.fa-otter::before {\n content: \"\\f700\"; }\n\n.fa-dreidel::before {\n content: \"\\f792\"; }\n\n.fa-person-dress::before {\n content: \"\\f182\"; }\n\n.fa-female::before {\n content: \"\\f182\"; }\n\n.fa-comment-dollar::before {\n content: \"\\f651\"; }\n\n.fa-business-time::before {\n content: \"\\f64a\"; }\n\n.fa-briefcase-clock::before {\n content: \"\\f64a\"; }\n\n.fa-flower-tulip::before {\n content: \"\\f801\"; }\n\n.fa-people-pants-simple::before {\n content: \"\\e21a\"; }\n\n.fa-cloud-drizzle::before {\n content: \"\\f738\"; }\n\n.fa-table-cells-large::before {\n content: \"\\f009\"; }\n\n.fa-th-large::before {\n content: \"\\f009\"; }\n\n.fa-book-tanakh::before {\n content: \"\\f827\"; }\n\n.fa-tanakh::before {\n content: \"\\f827\"; }\n\n.fa-solar-system::before {\n content: \"\\e02f\"; }\n\n.fa-seal-question::before {\n content: \"\\e243\"; }\n\n.fa-phone-volume::before {\n content: \"\\f2a0\"; }\n\n.fa-volume-control-phone::before {\n content: \"\\f2a0\"; }\n\n.fa-disc-drive::before {\n content: \"\\f8b5\"; }\n\n.fa-hat-cowboy-side::before {\n content: \"\\f8c1\"; }\n\n.fa-table-rows::before {\n content: \"\\e292\"; }\n\n.fa-rows::before {\n content: \"\\e292\"; }\n\n.fa-location-exclamation::before {\n content: \"\\f608\"; }\n\n.fa-map-marker-exclamation::before {\n content: \"\\f608\"; }\n\n.fa-face-fearful::before {\n content: \"\\e375\"; }\n\n.fa-clipboard-user::before {\n content: \"\\f7f3\"; }\n\n.fa-bus-school::before {\n content: \"\\f5dd\"; }\n\n.fa-film-slash::before {\n content: \"\\e179\"; }\n\n.fa-square-arrow-down-right::before {\n content: \"\\e262\"; }\n\n.fa-book-sparkles::before {\n content: \"\\f6b8\"; }\n\n.fa-book-spells::before {\n content: \"\\f6b8\"; }\n\n.fa-washing-machine::before {\n content: \"\\f898\"; }\n\n.fa-washer::before {\n content: \"\\f898\"; }\n\n.fa-child::before {\n content: \"\\f1ae\"; }\n\n.fa-lira-sign::before {\n content: \"\\f195\"; }\n\n.fa-user-visor::before {\n content: \"\\e04c\"; }\n\n.fa-file-plus-minus::before {\n content: \"\\e177\"; }\n\n.fa-chess-clock-flip::before {\n content: \"\\f43e\"; }\n\n.fa-chess-clock-alt::before {\n content: \"\\f43e\"; }\n\n.fa-satellite::before {\n content: \"\\f7bf\"; }\n\n.fa-truck-fire::before {\n content: \"\\e65a\"; }\n\n.fa-plane-lock::before {\n content: \"\\e558\"; }\n\n.fa-steering-wheel::before {\n content: \"\\f622\"; }\n\n.fa-tag::before {\n content: \"\\f02b\"; }\n\n.fa-stretcher::before {\n content: \"\\f825\"; }\n\n.fa-book-section::before {\n content: \"\\e0c1\"; }\n\n.fa-book-law::before {\n content: \"\\e0c1\"; }\n\n.fa-inboxes::before {\n content: \"\\e1bb\"; }\n\n.fa-coffee-bean::before {\n content: \"\\e13e\"; }\n\n.fa-circle-yen::before {\n content: \"\\e5d0\"; }\n\n.fa-brackets-curly::before {\n content: \"\\f7ea\"; }\n\n.fa-ellipsis-stroke-vertical::before {\n content: \"\\f39c\"; }\n\n.fa-ellipsis-v-alt::before {\n content: \"\\f39c\"; }\n\n.fa-comment::before {\n content: \"\\f075\"; }\n\n.fa-square-1::before {\n content: \"\\e256\"; }\n\n.fa-cake-candles::before {\n content: \"\\f1fd\"; }\n\n.fa-birthday-cake::before {\n content: \"\\f1fd\"; }\n\n.fa-cake::before {\n content: \"\\f1fd\"; }\n\n.fa-head-side::before {\n content: \"\\f6e9\"; }\n\n.fa-truck-ladder::before {\n content: \"\\e657\"; }\n\n.fa-envelope::before {\n content: \"\\f0e0\"; }\n\n.fa-dolly-empty::before {\n content: \"\\f473\"; }\n\n.fa-face-tissue::before {\n content: \"\\e39c\"; }\n\n.fa-angles-up::before {\n content: \"\\f102\"; }\n\n.fa-angle-double-up::before {\n content: \"\\f102\"; }\n\n.fa-bin-recycle::before {\n content: \"\\e5f7\"; }\n\n.fa-paperclip::before {\n content: \"\\f0c6\"; }\n\n.fa-chart-line-down::before {\n content: \"\\f64d\"; }\n\n.fa-arrow-right-to-city::before {\n content: \"\\e4b3\"; }\n\n.fa-lock-a::before {\n content: \"\\e422\"; }\n\n.fa-ribbon::before {\n content: \"\\f4d6\"; }\n\n.fa-lungs::before {\n content: \"\\f604\"; }\n\n.fa-person-pinball::before {\n content: \"\\e21d\"; }\n\n.fa-arrow-up-9-1::before {\n content: \"\\f887\"; }\n\n.fa-sort-numeric-up-alt::before {\n content: \"\\f887\"; }\n\n.fa-apple-core::before {\n content: \"\\e08f\"; }\n\n.fa-circle-y::before {\n content: \"\\e12f\"; }\n\n.fa-h6::before {\n content: \"\\e413\"; }\n\n.fa-litecoin-sign::before {\n content: \"\\e1d3\"; }\n\n.fa-bottle-baby::before {\n content: \"\\e673\"; }\n\n.fa-circle-small::before {\n content: \"\\e122\"; }\n\n.fa-border-none::before {\n content: \"\\f850\"; }\n\n.fa-arrow-turn-down-left::before {\n content: \"\\e2e1\"; }\n\n.fa-circle-wifi-circle-wifi::before {\n content: \"\\e67e\"; }\n\n.fa-circle-wifi-group::before {\n content: \"\\e67e\"; }\n\n.fa-circle-nodes::before {\n content: \"\\e4e2\"; }\n\n.fa-parachute-box::before {\n content: \"\\f4cd\"; }\n\n.fa-reflect-horizontal::before {\n content: \"\\e664\"; }\n\n.fa-message-medical::before {\n content: \"\\f7f4\"; }\n\n.fa-comment-alt-medical::before {\n content: \"\\f7f4\"; }\n\n.fa-rugby-ball::before {\n content: \"\\e3c6\"; }\n\n.fa-comment-music::before {\n content: \"\\f8b0\"; }\n\n.fa-indent::before {\n content: \"\\f03c\"; }\n\n.fa-tree-deciduous::before {\n content: \"\\f400\"; }\n\n.fa-tree-alt::before {\n content: \"\\f400\"; }\n\n.fa-puzzle-piece-simple::before {\n content: \"\\e231\"; }\n\n.fa-puzzle-piece-alt::before {\n content: \"\\e231\"; }\n\n.fa-truck-field-un::before {\n content: \"\\e58e\"; }\n\n.fa-nfc-trash::before {\n content: \"\\e1fd\"; }\n\n.fa-hourglass::before {\n content: \"\\f254\"; }\n\n.fa-hourglass-empty::before {\n content: \"\\f254\"; }\n\n.fa-mountain::before {\n content: \"\\f6fc\"; }\n\n.fa-file-xmark::before {\n content: \"\\f317\"; }\n\n.fa-file-times::before {\n content: \"\\f317\"; }\n\n.fa-house-heart::before {\n content: \"\\f4c9\"; }\n\n.fa-home-heart::before {\n content: \"\\f4c9\"; }\n\n.fa-house-chimney-blank::before {\n content: \"\\e3b0\"; }\n\n.fa-meter-bolt::before {\n content: \"\\e1e9\"; }\n\n.fa-user-doctor::before {\n content: \"\\f0f0\"; }\n\n.fa-user-md::before {\n content: \"\\f0f0\"; }\n\n.fa-slash-back::before {\n content: \"\\5c\"; }\n\n.fa-circle-info::before {\n content: \"\\f05a\"; }\n\n.fa-info-circle::before {\n content: \"\\f05a\"; }\n\n.fa-fishing-rod::before {\n content: \"\\e3a8\"; }\n\n.fa-hammer-crash::before {\n content: \"\\e414\"; }\n\n.fa-message-heart::before {\n content: \"\\e5c9\"; }\n\n.fa-cloud-meatball::before {\n content: \"\\f73b\"; }\n\n.fa-camera-polaroid::before {\n content: \"\\f8aa\"; }\n\n.fa-camera::before {\n content: \"\\f030\"; }\n\n.fa-camera-alt::before {\n content: \"\\f030\"; }\n\n.fa-square-virus::before {\n content: \"\\e578\"; }\n\n.fa-cart-arrow-up::before {\n content: \"\\e3ee\"; }\n\n.fa-meteor::before {\n content: \"\\f753\"; }\n\n.fa-car-on::before {\n content: \"\\e4dd\"; }\n\n.fa-sleigh::before {\n content: \"\\f7cc\"; }\n\n.fa-arrow-down-1-9::before {\n content: \"\\f162\"; }\n\n.fa-sort-numeric-asc::before {\n content: \"\\f162\"; }\n\n.fa-sort-numeric-down::before {\n content: \"\\f162\"; }\n\n.fa-buoy-mooring::before {\n content: \"\\e5b6\"; }\n\n.fa-square-4::before {\n content: \"\\e259\"; }\n\n.fa-hand-holding-droplet::before {\n content: \"\\f4c1\"; }\n\n.fa-hand-holding-water::before {\n content: \"\\f4c1\"; }\n\n.fa-file-eps::before {\n content: \"\\e644\"; }\n\n.fa-tricycle-adult::before {\n content: \"\\e5c4\"; }\n\n.fa-waveform::before {\n content: \"\\f8f1\"; }\n\n.fa-water::before {\n content: \"\\f773\"; }\n\n.fa-star-sharp-half-stroke::before {\n content: \"\\e28d\"; }\n\n.fa-star-sharp-half-alt::before {\n content: \"\\e28d\"; }\n\n.fa-nfc-signal::before {\n content: \"\\e1fb\"; }\n\n.fa-plane-prop::before {\n content: \"\\e22b\"; }\n\n.fa-calendar-check::before {\n content: \"\\f274\"; }\n\n.fa-clock-desk::before {\n content: \"\\e134\"; }\n\n.fa-calendar-clock::before {\n content: \"\\e0d2\"; }\n\n.fa-calendar-time::before {\n content: \"\\e0d2\"; }\n\n.fa-braille::before {\n content: \"\\f2a1\"; }\n\n.fa-prescription-bottle-medical::before {\n content: \"\\f486\"; }\n\n.fa-prescription-bottle-alt::before {\n content: \"\\f486\"; }\n\n.fa-plate-utensils::before {\n content: \"\\e43b\"; }\n\n.fa-family-pants::before {\n content: \"\\e302\"; }\n\n.fa-hose-reel::before {\n content: \"\\e41a\"; }\n\n.fa-house-window::before {\n content: \"\\e3b3\"; }\n\n.fa-landmark::before {\n content: \"\\f66f\"; }\n\n.fa-truck::before {\n content: \"\\f0d1\"; }\n\n.fa-music-magnifying-glass::before {\n content: \"\\e662\"; }\n\n.fa-crosshairs::before {\n content: \"\\f05b\"; }\n\n.fa-cloud-rainbow::before {\n content: \"\\f73e\"; }\n\n.fa-person-cane::before {\n content: \"\\e53c\"; }\n\n.fa-alien::before {\n content: \"\\f8f5\"; }\n\n.fa-tent::before {\n content: \"\\e57d\"; }\n\n.fa-laptop-binary::before {\n content: \"\\e5e7\"; }\n\n.fa-vest-patches::before {\n content: \"\\e086\"; }\n\n.fa-people-dress-simple::before {\n content: \"\\e218\"; }\n\n.fa-check-double::before {\n content: \"\\f560\"; }\n\n.fa-arrow-down-a-z::before {\n content: \"\\f15d\"; }\n\n.fa-sort-alpha-asc::before {\n content: \"\\f15d\"; }\n\n.fa-sort-alpha-down::before {\n content: \"\\f15d\"; }\n\n.fa-bowling-ball-pin::before {\n content: \"\\e0c3\"; }\n\n.fa-bell-school-slash::before {\n content: \"\\f5d6\"; }\n\n.fa-plus-large::before {\n content: \"\\e59e\"; }\n\n.fa-money-bill-wheat::before {\n content: \"\\e52a\"; }\n\n.fa-camera-viewfinder::before {\n content: \"\\e0da\"; }\n\n.fa-screenshot::before {\n content: \"\\e0da\"; }\n\n.fa-message-music::before {\n content: \"\\f8af\"; }\n\n.fa-comment-alt-music::before {\n content: \"\\f8af\"; }\n\n.fa-car-building::before {\n content: \"\\f859\"; }\n\n.fa-border-bottom-right::before {\n content: \"\\f854\"; }\n\n.fa-border-style-alt::before {\n content: \"\\f854\"; }\n\n.fa-octagon::before {\n content: \"\\f306\"; }\n\n.fa-comment-arrow-up-right::before {\n content: \"\\e145\"; }\n\n.fa-octagon-divide::before {\n content: \"\\e203\"; }\n\n.fa-cookie::before {\n content: \"\\f563\"; }\n\n.fa-arrow-rotate-left::before {\n content: \"\\f0e2\"; }\n\n.fa-arrow-left-rotate::before {\n content: \"\\f0e2\"; }\n\n.fa-arrow-rotate-back::before {\n content: \"\\f0e2\"; }\n\n.fa-arrow-rotate-backward::before {\n content: \"\\f0e2\"; }\n\n.fa-undo::before {\n content: \"\\f0e2\"; }\n\n.fa-tv-music::before {\n content: \"\\f8e6\"; }\n\n.fa-hard-drive::before {\n content: \"\\f0a0\"; }\n\n.fa-hdd::before {\n content: \"\\f0a0\"; }\n\n.fa-reel::before {\n content: \"\\e238\"; }\n\n.fa-face-grin-squint-tears::before {\n content: \"\\f586\"; }\n\n.fa-grin-squint-tears::before {\n content: \"\\f586\"; }\n\n.fa-dumbbell::before {\n content: \"\\f44b\"; }\n\n.fa-rectangle-list::before {\n content: \"\\f022\"; }\n\n.fa-list-alt::before {\n content: \"\\f022\"; }\n\n.fa-tarp-droplet::before {\n content: \"\\e57c\"; }\n\n.fa-alarm-exclamation::before {\n content: \"\\f843\"; }\n\n.fa-house-medical-circle-check::before {\n content: \"\\e511\"; }\n\n.fa-traffic-cone::before {\n content: \"\\f636\"; }\n\n.fa-grate::before {\n content: \"\\e193\"; }\n\n.fa-arrow-down-right::before {\n content: \"\\e093\"; }\n\n.fa-person-skiing-nordic::before {\n content: \"\\f7ca\"; }\n\n.fa-skiing-nordic::before {\n content: \"\\f7ca\"; }\n\n.fa-calendar-plus::before {\n content: \"\\f271\"; }\n\n.fa-person-from-portal::before {\n content: \"\\e023\"; }\n\n.fa-portal-exit::before {\n content: \"\\e023\"; }\n\n.fa-plane-arrival::before {\n content: \"\\f5af\"; }\n\n.fa-cowbell-circle-plus::before {\n content: \"\\f8b4\"; }\n\n.fa-cowbell-more::before {\n content: \"\\f8b4\"; }\n\n.fa-circle-left::before {\n content: \"\\f359\"; }\n\n.fa-arrow-alt-circle-left::before {\n content: \"\\f359\"; }\n\n.fa-distribute-spacing-vertical::before {\n content: \"\\e366\"; }\n\n.fa-signal-bars-fair::before {\n content: \"\\f692\"; }\n\n.fa-signal-alt-2::before {\n content: \"\\f692\"; }\n\n.fa-sportsball::before {\n content: \"\\e44b\"; }\n\n.fa-game-console-handheld-crank::before {\n content: \"\\e5b9\"; }\n\n.fa-train-subway::before {\n content: \"\\f239\"; }\n\n.fa-subway::before {\n content: \"\\f239\"; }\n\n.fa-chart-gantt::before {\n content: \"\\e0e4\"; }\n\n.fa-face-smile-upside-down::before {\n content: \"\\e395\"; }\n\n.fa-ball-pile::before {\n content: \"\\f77e\"; }\n\n.fa-badge-dollar::before {\n content: \"\\f645\"; }\n\n.fa-money-bills-simple::before {\n content: \"\\e1f4\"; }\n\n.fa-money-bills-alt::before {\n content: \"\\e1f4\"; }\n\n.fa-list-timeline::before {\n content: \"\\e1d1\"; }\n\n.fa-indian-rupee-sign::before {\n content: \"\\e1bc\"; }\n\n.fa-indian-rupee::before {\n content: \"\\e1bc\"; }\n\n.fa-inr::before {\n content: \"\\e1bc\"; }\n\n.fa-crop-simple::before {\n content: \"\\f565\"; }\n\n.fa-crop-alt::before {\n content: \"\\f565\"; }\n\n.fa-money-bill-1::before {\n content: \"\\f3d1\"; }\n\n.fa-money-bill-alt::before {\n content: \"\\f3d1\"; }\n\n.fa-left-long::before {\n content: \"\\f30a\"; }\n\n.fa-long-arrow-alt-left::before {\n content: \"\\f30a\"; }\n\n.fa-keyboard-down::before {\n content: \"\\e1c2\"; }\n\n.fa-circle-up-right::before {\n content: \"\\e129\"; }\n\n.fa-cloud-bolt-moon::before {\n content: \"\\f76d\"; }\n\n.fa-thunderstorm-moon::before {\n content: \"\\f76d\"; }\n\n.fa-turn-left-up::before {\n content: \"\\e638\"; }\n\n.fa-dna::before {\n content: \"\\f471\"; }\n\n.fa-virus-slash::before {\n content: \"\\e075\"; }\n\n.fa-bracket-round-right::before {\n content: \"\\29\"; }\n\n.fa-circle-sterling::before {\n content: \"\\e5cf\"; }\n\n.fa-circle-5::before {\n content: \"\\e0f2\"; }\n\n.fa-minus::before {\n content: \"\\f068\"; }\n\n.fa-subtract::before {\n content: \"\\f068\"; }\n\n.fa-fire-flame::before {\n content: \"\\f6df\"; }\n\n.fa-flame::before {\n content: \"\\f6df\"; }\n\n.fa-right-to-line::before {\n content: \"\\f34c\"; }\n\n.fa-arrow-alt-to-right::before {\n content: \"\\f34c\"; }\n\n.fa-gif::before {\n content: \"\\e190\"; }\n\n.fa-chess::before {\n content: \"\\f439\"; }\n\n.fa-trash-slash::before {\n content: \"\\e2b3\"; }\n\n.fa-arrow-left-long::before {\n content: \"\\f177\"; }\n\n.fa-long-arrow-left::before {\n content: \"\\f177\"; }\n\n.fa-plug-circle-check::before {\n content: \"\\e55c\"; }\n\n.fa-font-case::before {\n content: \"\\f866\"; }\n\n.fa-street-view::before {\n content: \"\\f21d\"; }\n\n.fa-arrow-down-left::before {\n content: \"\\e091\"; }\n\n.fa-franc-sign::before {\n content: \"\\e18f\"; }\n\n.fa-flask-round-poison::before {\n content: \"\\f6e0\"; }\n\n.fa-flask-poison::before {\n content: \"\\f6e0\"; }\n\n.fa-volume-off::before {\n content: \"\\f026\"; }\n\n.fa-book-circle-arrow-right::before {\n content: \"\\e0bc\"; }\n\n.fa-chart-user::before {\n content: \"\\f6a3\"; }\n\n.fa-user-chart::before {\n content: \"\\f6a3\"; }\n\n.fa-hands-asl-interpreting::before {\n content: \"\\f2a3\"; }\n\n.fa-american-sign-language-interpreting::before {\n content: \"\\f2a3\"; }\n\n.fa-asl-interpreting::before {\n content: \"\\f2a3\"; }\n\n.fa-hands-american-sign-language-interpreting::before {\n content: \"\\f2a3\"; }\n\n.fa-presentation-screen::before {\n content: \"\\f685\"; }\n\n.fa-presentation::before {\n content: \"\\f685\"; }\n\n.fa-circle-bolt::before {\n content: \"\\e0fe\"; }\n\n.fa-face-smile-halo::before {\n content: \"\\e38f\"; }\n\n.fa-cart-circle-arrow-down::before {\n content: \"\\e3ef\"; }\n\n.fa-house-person-return::before {\n content: \"\\e011\"; }\n\n.fa-house-person-arrive::before {\n content: \"\\e011\"; }\n\n.fa-house-return::before {\n content: \"\\e011\"; }\n\n.fa-message-xmark::before {\n content: \"\\f4ab\"; }\n\n.fa-comment-alt-times::before {\n content: \"\\f4ab\"; }\n\n.fa-message-times::before {\n content: \"\\f4ab\"; }\n\n.fa-file-certificate::before {\n content: \"\\f5f3\"; }\n\n.fa-file-award::before {\n content: \"\\f5f3\"; }\n\n.fa-user-doctor-hair-long::before {\n content: \"\\e459\"; }\n\n.fa-camera-security::before {\n content: \"\\f8fe\"; }\n\n.fa-camera-home::before {\n content: \"\\f8fe\"; }\n\n.fa-gear::before {\n content: \"\\f013\"; }\n\n.fa-cog::before {\n content: \"\\f013\"; }\n\n.fa-droplet-slash::before {\n content: \"\\f5c7\"; }\n\n.fa-tint-slash::before {\n content: \"\\f5c7\"; }\n\n.fa-book-heart::before {\n content: \"\\f499\"; }\n\n.fa-mosque::before {\n content: \"\\f678\"; }\n\n.fa-duck::before {\n content: \"\\f6d8\"; }\n\n.fa-mosquito::before {\n content: \"\\e52b\"; }\n\n.fa-star-of-david::before {\n content: \"\\f69a\"; }\n\n.fa-flag-swallowtail::before {\n content: \"\\f74c\"; }\n\n.fa-flag-alt::before {\n content: \"\\f74c\"; }\n\n.fa-person-military-rifle::before {\n content: \"\\e54b\"; }\n\n.fa-car-garage::before {\n content: \"\\f5e2\"; }\n\n.fa-cart-shopping::before {\n content: \"\\f07a\"; }\n\n.fa-shopping-cart::before {\n content: \"\\f07a\"; }\n\n.fa-book-font::before {\n content: \"\\e0bf\"; }\n\n.fa-shield-plus::before {\n content: \"\\e24a\"; }\n\n.fa-vials::before {\n content: \"\\f493\"; }\n\n.fa-eye-dropper-full::before {\n content: \"\\e172\"; }\n\n.fa-distribute-spacing-horizontal::before {\n content: \"\\e365\"; }\n\n.fa-tablet-rugged::before {\n content: \"\\f48f\"; }\n\n.fa-temperature-snow::before {\n content: \"\\f768\"; }\n\n.fa-temperature-frigid::before {\n content: \"\\f768\"; }\n\n.fa-moped::before {\n content: \"\\e3b9\"; }\n\n.fa-face-smile-plus::before {\n content: \"\\f5b9\"; }\n\n.fa-smile-plus::before {\n content: \"\\f5b9\"; }\n\n.fa-radio-tuner::before {\n content: \"\\f8d8\"; }\n\n.fa-radio-alt::before {\n content: \"\\f8d8\"; }\n\n.fa-face-swear::before {\n content: \"\\e399\"; }\n\n.fa-water-arrow-down::before {\n content: \"\\f774\"; }\n\n.fa-water-lower::before {\n content: \"\\f774\"; }\n\n.fa-scanner-touchscreen::before {\n content: \"\\f48a\"; }\n\n.fa-circle-7::before {\n content: \"\\e0f4\"; }\n\n.fa-plug-circle-plus::before {\n content: \"\\e55f\"; }\n\n.fa-person-ski-jumping::before {\n content: \"\\f7c7\"; }\n\n.fa-ski-jump::before {\n content: \"\\f7c7\"; }\n\n.fa-place-of-worship::before {\n content: \"\\f67f\"; }\n\n.fa-water-arrow-up::before {\n content: \"\\f775\"; }\n\n.fa-water-rise::before {\n content: \"\\f775\"; }\n\n.fa-waveform-lines::before {\n content: \"\\f8f2\"; }\n\n.fa-waveform-path::before {\n content: \"\\f8f2\"; }\n\n.fa-split::before {\n content: \"\\e254\"; }\n\n.fa-film-canister::before {\n content: \"\\f8b7\"; }\n\n.fa-film-cannister::before {\n content: \"\\f8b7\"; }\n\n.fa-folder-xmark::before {\n content: \"\\f65f\"; }\n\n.fa-folder-times::before {\n content: \"\\f65f\"; }\n\n.fa-toilet-paper-blank::before {\n content: \"\\f71f\"; }\n\n.fa-toilet-paper-alt::before {\n content: \"\\f71f\"; }\n\n.fa-tablet-screen::before {\n content: \"\\f3fc\"; }\n\n.fa-tablet-android-alt::before {\n content: \"\\f3fc\"; }\n\n.fa-hexagon-vertical-nft-slanted::before {\n content: \"\\e506\"; }\n\n.fa-folder-music::before {\n content: \"\\e18d\"; }\n\n.fa-display-medical::before {\n content: \"\\e166\"; }\n\n.fa-desktop-medical::before {\n content: \"\\e166\"; }\n\n.fa-share-all::before {\n content: \"\\f367\"; }\n\n.fa-peapod::before {\n content: \"\\e31c\"; }\n\n.fa-chess-clock::before {\n content: \"\\f43d\"; }\n\n.fa-axe::before {\n content: \"\\f6b2\"; }\n\n.fa-square-d::before {\n content: \"\\e268\"; }\n\n.fa-grip-vertical::before {\n content: \"\\f58e\"; }\n\n.fa-mobile-signal-out::before {\n content: \"\\e1f0\"; }\n\n.fa-arrow-turn-up::before {\n content: \"\\f148\"; }\n\n.fa-level-up::before {\n content: \"\\f148\"; }\n\n.fa-u::before {\n content: \"\\55\"; }\n\n.fa-arrow-up-from-dotted-line::before {\n content: \"\\e09b\"; }\n\n.fa-square-root-variable::before {\n content: \"\\f698\"; }\n\n.fa-square-root-alt::before {\n content: \"\\f698\"; }\n\n.fa-light-switch-on::before {\n content: \"\\e019\"; }\n\n.fa-arrow-down-arrow-up::before {\n content: \"\\f883\"; }\n\n.fa-sort-alt::before {\n content: \"\\f883\"; }\n\n.fa-raindrops::before {\n content: \"\\f75c\"; }\n\n.fa-dash::before {\n content: \"\\e404\"; }\n\n.fa-minus-large::before {\n content: \"\\e404\"; }\n\n.fa-clock::before {\n content: \"\\f017\"; }\n\n.fa-clock-four::before {\n content: \"\\f017\"; }\n\n.fa-input-numeric::before {\n content: \"\\e1bd\"; }\n\n.fa-truck-tow::before {\n content: \"\\e2b8\"; }\n\n.fa-backward-step::before {\n content: \"\\f048\"; }\n\n.fa-step-backward::before {\n content: \"\\f048\"; }\n\n.fa-pallet::before {\n content: \"\\f482\"; }\n\n.fa-car-bolt::before {\n content: \"\\e341\"; }\n\n.fa-arrows-maximize::before {\n content: \"\\f31d\"; }\n\n.fa-expand-arrows::before {\n content: \"\\f31d\"; }\n\n.fa-faucet::before {\n content: \"\\e005\"; }\n\n.fa-cloud-sleet::before {\n content: \"\\f741\"; }\n\n.fa-lamp-street::before {\n content: \"\\e1c5\"; }\n\n.fa-list-radio::before {\n content: \"\\e1d0\"; }\n\n.fa-pen-nib-slash::before {\n content: \"\\e4a1\"; }\n\n.fa-baseball-bat-ball::before {\n content: \"\\f432\"; }\n\n.fa-square-up-left::before {\n content: \"\\e282\"; }\n\n.fa-overline::before {\n content: \"\\f876\"; }\n\n.fa-s::before {\n content: \"\\53\"; }\n\n.fa-timeline::before {\n content: \"\\e29c\"; }\n\n.fa-keyboard::before {\n content: \"\\f11c\"; }\n\n.fa-arrows-from-dotted-line::before {\n content: \"\\e0a3\"; }\n\n.fa-usb-drive::before {\n content: \"\\f8e9\"; }\n\n.fa-ballot::before {\n content: \"\\f732\"; }\n\n.fa-caret-down::before {\n content: \"\\f0d7\"; }\n\n.fa-location-dot-slash::before {\n content: \"\\f605\"; }\n\n.fa-map-marker-alt-slash::before {\n content: \"\\f605\"; }\n\n.fa-cards::before {\n content: \"\\e3ed\"; }\n\n.fa-house-chimney-medical::before {\n content: \"\\f7f2\"; }\n\n.fa-clinic-medical::before {\n content: \"\\f7f2\"; }\n\n.fa-boxing-glove::before {\n content: \"\\f438\"; }\n\n.fa-glove-boxing::before {\n content: \"\\f438\"; }\n\n.fa-temperature-three-quarters::before {\n content: \"\\f2c8\"; }\n\n.fa-temperature-3::before {\n content: \"\\f2c8\"; }\n\n.fa-thermometer-3::before {\n content: \"\\f2c8\"; }\n\n.fa-thermometer-three-quarters::before {\n content: \"\\f2c8\"; }\n\n.fa-bell-school::before {\n content: \"\\f5d5\"; }\n\n.fa-mobile-screen::before {\n content: \"\\f3cf\"; }\n\n.fa-mobile-android-alt::before {\n content: \"\\f3cf\"; }\n\n.fa-plane-up::before {\n content: \"\\e22d\"; }\n\n.fa-folder-heart::before {\n content: \"\\e189\"; }\n\n.fa-circle-location-arrow::before {\n content: \"\\f602\"; }\n\n.fa-location-circle::before {\n content: \"\\f602\"; }\n\n.fa-face-head-bandage::before {\n content: \"\\e37a\"; }\n\n.fa-sushi-roll::before {\n content: \"\\e48b\"; }\n\n.fa-maki-roll::before {\n content: \"\\e48b\"; }\n\n.fa-makizushi::before {\n content: \"\\e48b\"; }\n\n.fa-car-bump::before {\n content: \"\\f5e0\"; }\n\n.fa-piggy-bank::before {\n content: \"\\f4d3\"; }\n\n.fa-racquet::before {\n content: \"\\f45a\"; }\n\n.fa-car-mirrors::before {\n content: \"\\e343\"; }\n\n.fa-industry-windows::before {\n content: \"\\f3b3\"; }\n\n.fa-industry-alt::before {\n content: \"\\f3b3\"; }\n\n.fa-bolt-auto::before {\n content: \"\\e0b6\"; }\n\n.fa-battery-half::before {\n content: \"\\f242\"; }\n\n.fa-battery-3::before {\n content: \"\\f242\"; }\n\n.fa-flux-capacitor::before {\n content: \"\\f8ba\"; }\n\n.fa-mountain-city::before {\n content: \"\\e52e\"; }\n\n.fa-coins::before {\n content: \"\\f51e\"; }\n\n.fa-honey-pot::before {\n content: \"\\e418\"; }\n\n.fa-olive::before {\n content: \"\\e316\"; }\n\n.fa-khanda::before {\n content: \"\\f66d\"; }\n\n.fa-filter-list::before {\n content: \"\\e17c\"; }\n\n.fa-outlet::before {\n content: \"\\e01c\"; }\n\n.fa-sliders::before {\n content: \"\\f1de\"; }\n\n.fa-sliders-h::before {\n content: \"\\f1de\"; }\n\n.fa-cauldron::before {\n content: \"\\f6bf\"; }\n\n.fa-people::before {\n content: \"\\e216\"; }\n\n.fa-folder-tree::before {\n content: \"\\f802\"; }\n\n.fa-network-wired::before {\n content: \"\\f6ff\"; }\n\n.fa-croissant::before {\n content: \"\\f7f6\"; }\n\n.fa-map-pin::before {\n content: \"\\f276\"; }\n\n.fa-hamsa::before {\n content: \"\\f665\"; }\n\n.fa-cent-sign::before {\n content: \"\\e3f5\"; }\n\n.fa-swords-laser::before {\n content: \"\\e03d\"; }\n\n.fa-flask::before {\n content: \"\\f0c3\"; }\n\n.fa-person-pregnant::before {\n content: \"\\e31e\"; }\n\n.fa-square-u::before {\n content: \"\\e281\"; }\n\n.fa-wand-sparkles::before {\n content: \"\\f72b\"; }\n\n.fa-router::before {\n content: \"\\f8da\"; }\n\n.fa-ellipsis-vertical::before {\n content: \"\\f142\"; }\n\n.fa-ellipsis-v::before {\n content: \"\\f142\"; }\n\n.fa-sword-laser-alt::before {\n content: \"\\e03c\"; }\n\n.fa-ticket::before {\n content: \"\\f145\"; }\n\n.fa-power-off::before {\n content: \"\\f011\"; }\n\n.fa-coin::before {\n content: \"\\f85c\"; }\n\n.fa-laptop-slash::before {\n content: \"\\e1c7\"; }\n\n.fa-right-long::before {\n content: \"\\f30b\"; }\n\n.fa-long-arrow-alt-right::before {\n content: \"\\f30b\"; }\n\n.fa-circle-b::before {\n content: \"\\e0fd\"; }\n\n.fa-person-dress-simple::before {\n content: \"\\e21c\"; }\n\n.fa-pipe-collar::before {\n content: \"\\e437\"; }\n\n.fa-lights-holiday::before {\n content: \"\\f7b2\"; }\n\n.fa-citrus::before {\n content: \"\\e2f4\"; }\n\n.fa-flag-usa::before {\n content: \"\\f74d\"; }\n\n.fa-laptop-file::before {\n content: \"\\e51d\"; }\n\n.fa-tty::before {\n content: \"\\f1e4\"; }\n\n.fa-teletype::before {\n content: \"\\f1e4\"; }\n\n.fa-chart-tree-map::before {\n content: \"\\e0ea\"; }\n\n.fa-diagram-next::before {\n content: \"\\e476\"; }\n\n.fa-person-rifle::before {\n content: \"\\e54e\"; }\n\n.fa-clock-five-thirty::before {\n content: \"\\e34a\"; }\n\n.fa-pipe-valve::before {\n content: \"\\e439\"; }\n\n.fa-arrow-up-from-arc::before {\n content: \"\\e4b4\"; }\n\n.fa-face-spiral-eyes::before {\n content: \"\\e485\"; }\n\n.fa-compress-wide::before {\n content: \"\\f326\"; }\n\n.fa-circle-phone-hangup::before {\n content: \"\\e11d\"; }\n\n.fa-phone-circle-down::before {\n content: \"\\e11d\"; }\n\n.fa-gear-complex-code::before {\n content: \"\\e5eb\"; }\n\n.fa-house-medical-circle-exclamation::before {\n content: \"\\e512\"; }\n\n.fa-badminton::before {\n content: \"\\e33a\"; }\n\n.fa-closed-captioning::before {\n content: \"\\f20a\"; }\n\n.fa-person-hiking::before {\n content: \"\\f6ec\"; }\n\n.fa-hiking::before {\n content: \"\\f6ec\"; }\n\n.fa-right-from-line::before {\n content: \"\\f347\"; }\n\n.fa-arrow-alt-from-left::before {\n content: \"\\f347\"; }\n\n.fa-venus-double::before {\n content: \"\\f226\"; }\n\n.fa-images::before {\n content: \"\\f302\"; }\n\n.fa-calculator::before {\n content: \"\\f1ec\"; }\n\n.fa-shuttlecock::before {\n content: \"\\f45b\"; }\n\n.fa-user-hair::before {\n content: \"\\e45a\"; }\n\n.fa-eye-evil::before {\n content: \"\\f6db\"; }\n\n.fa-people-pulling::before {\n content: \"\\e535\"; }\n\n.fa-n::before {\n content: \"\\4e\"; }\n\n.fa-swap::before {\n content: \"\\e609\"; }\n\n.fa-garage::before {\n content: \"\\e009\"; }\n\n.fa-cable-car::before {\n content: \"\\f7da\"; }\n\n.fa-tram::before {\n content: \"\\f7da\"; }\n\n.fa-shovel-snow::before {\n content: \"\\f7c3\"; }\n\n.fa-cloud-rain::before {\n content: \"\\f73d\"; }\n\n.fa-face-lying::before {\n content: \"\\e37e\"; }\n\n.fa-sprinkler::before {\n content: \"\\e035\"; }\n\n.fa-building-circle-xmark::before {\n content: \"\\e4d4\"; }\n\n.fa-person-sledding::before {\n content: \"\\f7cb\"; }\n\n.fa-sledding::before {\n content: \"\\f7cb\"; }\n\n.fa-game-console-handheld::before {\n content: \"\\f8bb\"; }\n\n.fa-ship::before {\n content: \"\\f21a\"; }\n\n.fa-clock-six-thirty::before {\n content: \"\\e353\"; }\n\n.fa-battery-slash::before {\n content: \"\\f377\"; }\n\n.fa-tugrik-sign::before {\n content: \"\\e2ba\"; }\n\n.fa-arrows-down-to-line::before {\n content: \"\\e4b8\"; }\n\n.fa-download::before {\n content: \"\\f019\"; }\n\n.fa-angles-up-down::before {\n content: \"\\e60d\"; }\n\n.fa-shelves::before {\n content: \"\\f480\"; }\n\n.fa-inventory::before {\n content: \"\\f480\"; }\n\n.fa-cloud-snow::before {\n content: \"\\f742\"; }\n\n.fa-face-grin::before {\n content: \"\\f580\"; }\n\n.fa-grin::before {\n content: \"\\f580\"; }\n\n.fa-delete-left::before {\n content: \"\\f55a\"; }\n\n.fa-backspace::before {\n content: \"\\f55a\"; }\n\n.fa-oven::before {\n content: \"\\e01d\"; }\n\n.fa-cloud-binary::before {\n content: \"\\e601\"; }\n\n.fa-eye-dropper::before {\n content: \"\\f1fb\"; }\n\n.fa-eye-dropper-empty::before {\n content: \"\\f1fb\"; }\n\n.fa-eyedropper::before {\n content: \"\\f1fb\"; }\n\n.fa-comment-captions::before {\n content: \"\\e146\"; }\n\n.fa-comments-question::before {\n content: \"\\e14e\"; }\n\n.fa-scribble::before {\n content: \"\\e23f\"; }\n\n.fa-rotate-exclamation::before {\n content: \"\\e23c\"; }\n\n.fa-file-circle-check::before {\n content: \"\\e5a0\"; }\n\n.fa-glass::before {\n content: \"\\f804\"; }\n\n.fa-loader::before {\n content: \"\\e1d4\"; }\n\n.fa-forward::before {\n content: \"\\f04e\"; }\n\n.fa-user-pilot::before {\n content: \"\\e2c0\"; }\n\n.fa-mobile::before {\n content: \"\\f3ce\"; }\n\n.fa-mobile-android::before {\n content: \"\\f3ce\"; }\n\n.fa-mobile-phone::before {\n content: \"\\f3ce\"; }\n\n.fa-code-pull-request-closed::before {\n content: \"\\e3f9\"; }\n\n.fa-face-meh::before {\n content: \"\\f11a\"; }\n\n.fa-meh::before {\n content: \"\\f11a\"; }\n\n.fa-align-center::before {\n content: \"\\f037\"; }\n\n.fa-book-skull::before {\n content: \"\\f6b7\"; }\n\n.fa-book-dead::before {\n content: \"\\f6b7\"; }\n\n.fa-id-card::before {\n content: \"\\f2c2\"; }\n\n.fa-drivers-license::before {\n content: \"\\f2c2\"; }\n\n.fa-face-dotted::before {\n content: \"\\e47f\"; }\n\n.fa-face-worried::before {\n content: \"\\e3a3\"; }\n\n.fa-outdent::before {\n content: \"\\f03b\"; }\n\n.fa-dedent::before {\n content: \"\\f03b\"; }\n\n.fa-court-sport::before {\n content: \"\\e643\"; }\n\n.fa-heart-circle-exclamation::before {\n content: \"\\e4fe\"; }\n\n.fa-house::before {\n content: \"\\f015\"; }\n\n.fa-home::before {\n content: \"\\f015\"; }\n\n.fa-home-alt::before {\n content: \"\\f015\"; }\n\n.fa-home-lg-alt::before {\n content: \"\\f015\"; }\n\n.fa-vector-circle::before {\n content: \"\\e2c6\"; }\n\n.fa-car-circle-bolt::before {\n content: \"\\e342\"; }\n\n.fa-calendar-week::before {\n content: \"\\f784\"; }\n\n.fa-flying-disc::before {\n content: \"\\e3a9\"; }\n\n.fa-laptop-medical::before {\n content: \"\\f812\"; }\n\n.fa-square-down-right::before {\n content: \"\\e26c\"; }\n\n.fa-b::before {\n content: \"\\42\"; }\n\n.fa-seat-airline::before {\n content: \"\\e244\"; }\n\n.fa-moon-over-sun::before {\n content: \"\\f74a\"; }\n\n.fa-eclipse-alt::before {\n content: \"\\f74a\"; }\n\n.fa-pipe::before {\n content: \"\\7c\"; }\n\n.fa-file-medical::before {\n content: \"\\f477\"; }\n\n.fa-potato::before {\n content: \"\\e440\"; }\n\n.fa-dice-one::before {\n content: \"\\f525\"; }\n\n.fa-circle-a::before {\n content: \"\\e0f7\"; }\n\n.fa-helmet-battle::before {\n content: \"\\f6eb\"; }\n\n.fa-butter::before {\n content: \"\\e3e4\"; }\n\n.fa-blanket-fire::before {\n content: \"\\e3da\"; }\n\n.fa-kiwi-bird::before {\n content: \"\\f535\"; }\n\n.fa-castle::before {\n content: \"\\e0de\"; }\n\n.fa-golf-club::before {\n content: \"\\f451\"; }\n\n.fa-arrow-right-arrow-left::before {\n content: \"\\f0ec\"; }\n\n.fa-exchange::before {\n content: \"\\f0ec\"; }\n\n.fa-rotate-right::before {\n content: \"\\f2f9\"; }\n\n.fa-redo-alt::before {\n content: \"\\f2f9\"; }\n\n.fa-rotate-forward::before {\n content: \"\\f2f9\"; }\n\n.fa-utensils::before {\n content: \"\\f2e7\"; }\n\n.fa-cutlery::before {\n content: \"\\f2e7\"; }\n\n.fa-arrow-up-wide-short::before {\n content: \"\\f161\"; }\n\n.fa-sort-amount-up::before {\n content: \"\\f161\"; }\n\n.fa-chart-pie-simple-circle-dollar::before {\n content: \"\\e605\"; }\n\n.fa-balloons::before {\n content: \"\\e2e4\"; }\n\n.fa-mill-sign::before {\n content: \"\\e1ed\"; }\n\n.fa-bowl-rice::before {\n content: \"\\e2eb\"; }\n\n.fa-timeline-arrow::before {\n content: \"\\e29d\"; }\n\n.fa-skull::before {\n content: \"\\f54c\"; }\n\n.fa-game-board-simple::before {\n content: \"\\f868\"; }\n\n.fa-game-board-alt::before {\n content: \"\\f868\"; }\n\n.fa-circle-video::before {\n content: \"\\e12b\"; }\n\n.fa-video-circle::before {\n content: \"\\e12b\"; }\n\n.fa-chart-scatter-bubble::before {\n content: \"\\e0e9\"; }\n\n.fa-house-turret::before {\n content: \"\\e1b4\"; }\n\n.fa-banana::before {\n content: \"\\e2e5\"; }\n\n.fa-hand-holding-skull::before {\n content: \"\\e1a4\"; }\n\n.fa-people-dress::before {\n content: \"\\e217\"; }\n\n.fa-loveseat::before {\n content: \"\\f4cc\"; }\n\n.fa-couch-small::before {\n content: \"\\f4cc\"; }\n\n.fa-tower-broadcast::before {\n content: \"\\f519\"; }\n\n.fa-broadcast-tower::before {\n content: \"\\f519\"; }\n\n.fa-truck-pickup::before {\n content: \"\\f63c\"; }\n\n.fa-block-quote::before {\n content: \"\\e0b5\"; }\n\n.fa-up-long::before {\n content: \"\\f30c\"; }\n\n.fa-long-arrow-alt-up::before {\n content: \"\\f30c\"; }\n\n.fa-stop::before {\n content: \"\\f04d\"; }\n\n.fa-code-merge::before {\n content: \"\\f387\"; }\n\n.fa-money-check-dollar-pen::before {\n content: \"\\f873\"; }\n\n.fa-money-check-edit-alt::before {\n content: \"\\f873\"; }\n\n.fa-up-from-line::before {\n content: \"\\f346\"; }\n\n.fa-arrow-alt-from-bottom::before {\n content: \"\\f346\"; }\n\n.fa-upload::before {\n content: \"\\f093\"; }\n\n.fa-hurricane::before {\n content: \"\\f751\"; }\n\n.fa-grid-round-2-plus::before {\n content: \"\\e5dc\"; }\n\n.fa-people-pants::before {\n content: \"\\e219\"; }\n\n.fa-mound::before {\n content: \"\\e52d\"; }\n\n.fa-windsock::before {\n content: \"\\f777\"; }\n\n.fa-circle-half::before {\n content: \"\\e110\"; }\n\n.fa-brake-warning::before {\n content: \"\\e0c7\"; }\n\n.fa-toilet-portable::before {\n content: \"\\e583\"; }\n\n.fa-compact-disc::before {\n content: \"\\f51f\"; }\n\n.fa-file-arrow-down::before {\n content: \"\\f56d\"; }\n\n.fa-file-download::before {\n content: \"\\f56d\"; }\n\n.fa-saxophone-fire::before {\n content: \"\\f8db\"; }\n\n.fa-sax-hot::before {\n content: \"\\f8db\"; }\n\n.fa-camera-web-slash::before {\n content: \"\\f833\"; }\n\n.fa-webcam-slash::before {\n content: \"\\f833\"; }\n\n.fa-folder-medical::before {\n content: \"\\e18c\"; }\n\n.fa-folder-gear::before {\n content: \"\\e187\"; }\n\n.fa-folder-cog::before {\n content: \"\\e187\"; }\n\n.fa-hand-wave::before {\n content: \"\\e1a7\"; }\n\n.fa-arrow-up-arrow-down::before {\n content: \"\\e099\"; }\n\n.fa-sort-up-down::before {\n content: \"\\e099\"; }\n\n.fa-caravan::before {\n content: \"\\f8ff\"; }\n\n.fa-shield-cat::before {\n content: \"\\e572\"; }\n\n.fa-message-slash::before {\n content: \"\\f4a9\"; }\n\n.fa-comment-alt-slash::before {\n content: \"\\f4a9\"; }\n\n.fa-bolt::before {\n content: \"\\f0e7\"; }\n\n.fa-zap::before {\n content: \"\\f0e7\"; }\n\n.fa-trash-can-check::before {\n content: \"\\e2a9\"; }\n\n.fa-glass-water::before {\n content: \"\\e4f4\"; }\n\n.fa-oil-well::before {\n content: \"\\e532\"; }\n\n.fa-person-simple::before {\n content: \"\\e220\"; }\n\n.fa-arrow-turn-left-up::before {\n content: \"\\e634\"; }\n\n.fa-vault::before {\n content: \"\\e2c5\"; }\n\n.fa-mars::before {\n content: \"\\f222\"; }\n\n.fa-toilet::before {\n content: \"\\f7d8\"; }\n\n.fa-plane-circle-xmark::before {\n content: \"\\e557\"; }\n\n.fa-yen-sign::before {\n content: \"\\f157\"; }\n\n.fa-cny::before {\n content: \"\\f157\"; }\n\n.fa-jpy::before {\n content: \"\\f157\"; }\n\n.fa-rmb::before {\n content: \"\\f157\"; }\n\n.fa-yen::before {\n content: \"\\f157\"; }\n\n.fa-gear-code::before {\n content: \"\\e5e8\"; }\n\n.fa-notes::before {\n content: \"\\e202\"; }\n\n.fa-ruble-sign::before {\n content: \"\\f158\"; }\n\n.fa-rouble::before {\n content: \"\\f158\"; }\n\n.fa-rub::before {\n content: \"\\f158\"; }\n\n.fa-ruble::before {\n content: \"\\f158\"; }\n\n.fa-trash-undo::before {\n content: \"\\f895\"; }\n\n.fa-trash-arrow-turn-left::before {\n content: \"\\f895\"; }\n\n.fa-champagne-glass::before {\n content: \"\\f79e\"; }\n\n.fa-glass-champagne::before {\n content: \"\\f79e\"; }\n\n.fa-objects-align-center-horizontal::before {\n content: \"\\e3bc\"; }\n\n.fa-sun::before {\n content: \"\\f185\"; }\n\n.fa-trash-can-slash::before {\n content: \"\\e2ad\"; }\n\n.fa-trash-alt-slash::before {\n content: \"\\e2ad\"; }\n\n.fa-screen-users::before {\n content: \"\\f63d\"; }\n\n.fa-users-class::before {\n content: \"\\f63d\"; }\n\n.fa-guitar::before {\n content: \"\\f7a6\"; }\n\n.fa-square-arrow-left::before {\n content: \"\\f33a\"; }\n\n.fa-arrow-square-left::before {\n content: \"\\f33a\"; }\n\n.fa-square-8::before {\n content: \"\\e25d\"; }\n\n.fa-face-smile-hearts::before {\n content: \"\\e390\"; }\n\n.fa-brackets-square::before {\n content: \"\\f7e9\"; }\n\n.fa-brackets::before {\n content: \"\\f7e9\"; }\n\n.fa-laptop-arrow-down::before {\n content: \"\\e1c6\"; }\n\n.fa-hockey-stick-puck::before {\n content: \"\\e3ae\"; }\n\n.fa-house-tree::before {\n content: \"\\e1b3\"; }\n\n.fa-signal-fair::before {\n content: \"\\f68d\"; }\n\n.fa-signal-2::before {\n content: \"\\f68d\"; }\n\n.fa-face-laugh-wink::before {\n content: \"\\f59c\"; }\n\n.fa-laugh-wink::before {\n content: \"\\f59c\"; }\n\n.fa-circle-dollar::before {\n content: \"\\f2e8\"; }\n\n.fa-dollar-circle::before {\n content: \"\\f2e8\"; }\n\n.fa-usd-circle::before {\n content: \"\\f2e8\"; }\n\n.fa-horse-head::before {\n content: \"\\f7ab\"; }\n\n.fa-arrows-repeat::before {\n content: \"\\f364\"; }\n\n.fa-repeat-alt::before {\n content: \"\\f364\"; }\n\n.fa-bore-hole::before {\n content: \"\\e4c3\"; }\n\n.fa-industry::before {\n content: \"\\f275\"; }\n\n.fa-image-polaroid::before {\n content: \"\\f8c4\"; }\n\n.fa-wave-triangle::before {\n content: \"\\f89a\"; }\n\n.fa-turn-left-down::before {\n content: \"\\e637\"; }\n\n.fa-person-running-fast::before {\n content: \"\\e5ff\"; }\n\n.fa-circle-down::before {\n content: \"\\f358\"; }\n\n.fa-arrow-alt-circle-down::before {\n content: \"\\f358\"; }\n\n.fa-grill::before {\n content: \"\\e5a3\"; }\n\n.fa-arrows-turn-to-dots::before {\n content: \"\\e4c1\"; }\n\n.fa-chart-mixed::before {\n content: \"\\f643\"; }\n\n.fa-analytics::before {\n content: \"\\f643\"; }\n\n.fa-florin-sign::before {\n content: \"\\e184\"; }\n\n.fa-arrow-down-short-wide::before {\n content: \"\\f884\"; }\n\n.fa-sort-amount-desc::before {\n content: \"\\f884\"; }\n\n.fa-sort-amount-down-alt::before {\n content: \"\\f884\"; }\n\n.fa-less-than::before {\n content: \"\\3c\"; }\n\n.fa-display-code::before {\n content: \"\\e165\"; }\n\n.fa-desktop-code::before {\n content: \"\\e165\"; }\n\n.fa-face-drooling::before {\n content: \"\\e372\"; }\n\n.fa-oil-temperature::before {\n content: \"\\f614\"; }\n\n.fa-oil-temp::before {\n content: \"\\f614\"; }\n\n.fa-square-question::before {\n content: \"\\f2fd\"; }\n\n.fa-question-square::before {\n content: \"\\f2fd\"; }\n\n.fa-air-conditioner::before {\n content: \"\\f8f4\"; }\n\n.fa-angle-down::before {\n content: \"\\f107\"; }\n\n.fa-mountains::before {\n content: \"\\f6fd\"; }\n\n.fa-omega::before {\n content: \"\\f67a\"; }\n\n.fa-car-tunnel::before {\n content: \"\\e4de\"; }\n\n.fa-person-dolly-empty::before {\n content: \"\\f4d1\"; }\n\n.fa-pan-food::before {\n content: \"\\e42b\"; }\n\n.fa-head-side-cough::before {\n content: \"\\e061\"; }\n\n.fa-grip-lines::before {\n content: \"\\f7a4\"; }\n\n.fa-thumbs-down::before {\n content: \"\\f165\"; }\n\n.fa-user-lock::before {\n content: \"\\f502\"; }\n\n.fa-arrow-right-long::before {\n content: \"\\f178\"; }\n\n.fa-long-arrow-right::before {\n content: \"\\f178\"; }\n\n.fa-tickets-airline::before {\n content: \"\\e29b\"; }\n\n.fa-tickets-perforated-plane::before {\n content: \"\\e29b\"; }\n\n.fa-tickets-plane::before {\n content: \"\\e29b\"; }\n\n.fa-tent-double-peak::before {\n content: \"\\e627\"; }\n\n.fa-anchor-circle-xmark::before {\n content: \"\\e4ac\"; }\n\n.fa-ellipsis::before {\n content: \"\\f141\"; }\n\n.fa-ellipsis-h::before {\n content: \"\\f141\"; }\n\n.fa-nfc-slash::before {\n content: \"\\e1fc\"; }\n\n.fa-chess-pawn::before {\n content: \"\\f443\"; }\n\n.fa-kit-medical::before {\n content: \"\\f479\"; }\n\n.fa-first-aid::before {\n content: \"\\f479\"; }\n\n.fa-grid-2-plus::before {\n content: \"\\e197\"; }\n\n.fa-bells::before {\n content: \"\\f77f\"; }\n\n.fa-person-through-window::before {\n content: \"\\e5a9\"; }\n\n.fa-toolbox::before {\n content: \"\\f552\"; }\n\n.fa-envelope-dot::before {\n content: \"\\e16f\"; }\n\n.fa-envelope-badge::before {\n content: \"\\e16f\"; }\n\n.fa-magnifying-glass-waveform::before {\n content: \"\\e661\"; }\n\n.fa-hands-holding-circle::before {\n content: \"\\e4fb\"; }\n\n.fa-bug::before {\n content: \"\\f188\"; }\n\n.fa-bowl-chopsticks::before {\n content: \"\\e2e9\"; }\n\n.fa-credit-card::before {\n content: \"\\f09d\"; }\n\n.fa-credit-card-alt::before {\n content: \"\\f09d\"; }\n\n.fa-circle-s::before {\n content: \"\\e121\"; }\n\n.fa-box-ballot::before {\n content: \"\\f735\"; }\n\n.fa-car::before {\n content: \"\\f1b9\"; }\n\n.fa-automobile::before {\n content: \"\\f1b9\"; }\n\n.fa-hand-holding-hand::before {\n content: \"\\e4f7\"; }\n\n.fa-user-tie-hair::before {\n content: \"\\e45f\"; }\n\n.fa-podium-star::before {\n content: \"\\f758\"; }\n\n.fa-user-hair-mullet::before {\n content: \"\\e45c\"; }\n\n.fa-business-front::before {\n content: \"\\e45c\"; }\n\n.fa-party-back::before {\n content: \"\\e45c\"; }\n\n.fa-trian-balbot::before {\n content: \"\\e45c\"; }\n\n.fa-microphone-stand::before {\n content: \"\\f8cb\"; }\n\n.fa-book-open-reader::before {\n content: \"\\f5da\"; }\n\n.fa-book-reader::before {\n content: \"\\f5da\"; }\n\n.fa-family-dress::before {\n content: \"\\e301\"; }\n\n.fa-circle-x::before {\n content: \"\\e12e\"; }\n\n.fa-cabin::before {\n content: \"\\e46d\"; }\n\n.fa-mountain-sun::before {\n content: \"\\e52f\"; }\n\n.fa-chart-simple-horizontal::before {\n content: \"\\e474\"; }\n\n.fa-arrows-left-right-to-line::before {\n content: \"\\e4ba\"; }\n\n.fa-hand-back-point-left::before {\n content: \"\\e19f\"; }\n\n.fa-message-dots::before {\n content: \"\\f4a3\"; }\n\n.fa-comment-alt-dots::before {\n content: \"\\f4a3\"; }\n\n.fa-messaging::before {\n content: \"\\f4a3\"; }\n\n.fa-file-heart::before {\n content: \"\\e176\"; }\n\n.fa-beer-mug::before {\n content: \"\\e0b3\"; }\n\n.fa-beer-foam::before {\n content: \"\\e0b3\"; }\n\n.fa-dice-d20::before {\n content: \"\\f6cf\"; }\n\n.fa-drone::before {\n content: \"\\f85f\"; }\n\n.fa-truck-droplet::before {\n content: \"\\e58c\"; }\n\n.fa-file-circle-xmark::before {\n content: \"\\e5a1\"; }\n\n.fa-temperature-arrow-up::before {\n content: \"\\e040\"; }\n\n.fa-temperature-up::before {\n content: \"\\e040\"; }\n\n.fa-medal::before {\n content: \"\\f5a2\"; }\n\n.fa-person-fairy::before {\n content: \"\\e608\"; }\n\n.fa-bed::before {\n content: \"\\f236\"; }\n\n.fa-book-copy::before {\n content: \"\\e0be\"; }\n\n.fa-square-h::before {\n content: \"\\f0fd\"; }\n\n.fa-h-square::before {\n content: \"\\f0fd\"; }\n\n.fa-square-c::before {\n content: \"\\e266\"; }\n\n.fa-clock-two::before {\n content: \"\\e35a\"; }\n\n.fa-square-ellipsis-vertical::before {\n content: \"\\e26f\"; }\n\n.fa-calendar-users::before {\n content: \"\\e5e2\"; }\n\n.fa-podcast::before {\n content: \"\\f2ce\"; }\n\n.fa-bee::before {\n content: \"\\e0b2\"; }\n\n.fa-temperature-full::before {\n content: \"\\f2c7\"; }\n\n.fa-temperature-4::before {\n content: \"\\f2c7\"; }\n\n.fa-thermometer-4::before {\n content: \"\\f2c7\"; }\n\n.fa-thermometer-full::before {\n content: \"\\f2c7\"; }\n\n.fa-bell::before {\n content: \"\\f0f3\"; }\n\n.fa-candy-bar::before {\n content: \"\\e3e8\"; }\n\n.fa-chocolate-bar::before {\n content: \"\\e3e8\"; }\n\n.fa-xmark-large::before {\n content: \"\\e59b\"; }\n\n.fa-pinata::before {\n content: \"\\e3c3\"; }\n\n.fa-file-ppt::before {\n content: \"\\e64a\"; }\n\n.fa-arrows-from-line::before {\n content: \"\\e0a4\"; }\n\n.fa-superscript::before {\n content: \"\\f12b\"; }\n\n.fa-bowl-spoon::before {\n content: \"\\e3e0\"; }\n\n.fa-hexagon-check::before {\n content: \"\\e416\"; }\n\n.fa-plug-circle-xmark::before {\n content: \"\\e560\"; }\n\n.fa-star-of-life::before {\n content: \"\\f621\"; }\n\n.fa-phone-slash::before {\n content: \"\\f3dd\"; }\n\n.fa-traffic-light-stop::before {\n content: \"\\f63a\"; }\n\n.fa-paint-roller::before {\n content: \"\\f5aa\"; }\n\n.fa-accent-grave::before {\n content: \"\\60\"; }\n\n.fa-handshake-angle::before {\n content: \"\\f4c4\"; }\n\n.fa-hands-helping::before {\n content: \"\\f4c4\"; }\n\n.fa-circle-0::before {\n content: \"\\e0ed\"; }\n\n.fa-dial-med-low::before {\n content: \"\\e160\"; }\n\n.fa-location-dot::before {\n content: \"\\f3c5\"; }\n\n.fa-map-marker-alt::before {\n content: \"\\f3c5\"; }\n\n.fa-crab::before {\n content: \"\\e3ff\"; }\n\n.fa-box-open-full::before {\n content: \"\\f49c\"; }\n\n.fa-box-full::before {\n content: \"\\f49c\"; }\n\n.fa-file::before {\n content: \"\\f15b\"; }\n\n.fa-greater-than::before {\n content: \"\\3e\"; }\n\n.fa-quotes::before {\n content: \"\\e234\"; }\n\n.fa-pretzel::before {\n content: \"\\e441\"; }\n\n.fa-t-rex::before {\n content: \"\\e629\"; }\n\n.fa-person-swimming::before {\n content: \"\\f5c4\"; }\n\n.fa-swimmer::before {\n content: \"\\f5c4\"; }\n\n.fa-arrow-down::before {\n content: \"\\f063\"; }\n\n.fa-user-robot-xmarks::before {\n content: \"\\e4a7\"; }\n\n.fa-message-quote::before {\n content: \"\\e1e4\"; }\n\n.fa-comment-alt-quote::before {\n content: \"\\e1e4\"; }\n\n.fa-candy-corn::before {\n content: \"\\f6bd\"; }\n\n.fa-folder-magnifying-glass::before {\n content: \"\\e18b\"; }\n\n.fa-folder-search::before {\n content: \"\\e18b\"; }\n\n.fa-notebook::before {\n content: \"\\e201\"; }\n\n.fa-circle-wifi::before {\n content: \"\\e67d\"; }\n\n.fa-droplet::before {\n content: \"\\f043\"; }\n\n.fa-tint::before {\n content: \"\\f043\"; }\n\n.fa-bullseye-pointer::before {\n content: \"\\f649\"; }\n\n.fa-eraser::before {\n content: \"\\f12d\"; }\n\n.fa-hexagon-image::before {\n content: \"\\e504\"; }\n\n.fa-earth-americas::before {\n content: \"\\f57d\"; }\n\n.fa-earth::before {\n content: \"\\f57d\"; }\n\n.fa-earth-america::before {\n content: \"\\f57d\"; }\n\n.fa-globe-americas::before {\n content: \"\\f57d\"; }\n\n.fa-file-svg::before {\n content: \"\\e64b\"; }\n\n.fa-crate-apple::before {\n content: \"\\f6b1\"; }\n\n.fa-apple-crate::before {\n content: \"\\f6b1\"; }\n\n.fa-person-burst::before {\n content: \"\\e53b\"; }\n\n.fa-game-board::before {\n content: \"\\f867\"; }\n\n.fa-hat-chef::before {\n content: \"\\f86b\"; }\n\n.fa-hand-back-point-right::before {\n content: \"\\e1a1\"; }\n\n.fa-dove::before {\n content: \"\\f4ba\"; }\n\n.fa-snowflake-droplets::before {\n content: \"\\e5c1\"; }\n\n.fa-battery-empty::before {\n content: \"\\f244\"; }\n\n.fa-battery-0::before {\n content: \"\\f244\"; }\n\n.fa-grid-4::before {\n content: \"\\e198\"; }\n\n.fa-socks::before {\n content: \"\\f696\"; }\n\n.fa-face-sunglasses::before {\n content: \"\\e398\"; }\n\n.fa-inbox::before {\n content: \"\\f01c\"; }\n\n.fa-square-0::before {\n content: \"\\e255\"; }\n\n.fa-section::before {\n content: \"\\e447\"; }\n\n.fa-square-this-way-up::before {\n content: \"\\f49f\"; }\n\n.fa-box-up::before {\n content: \"\\f49f\"; }\n\n.fa-gauge-high::before {\n content: \"\\f625\"; }\n\n.fa-tachometer-alt::before {\n content: \"\\f625\"; }\n\n.fa-tachometer-alt-fast::before {\n content: \"\\f625\"; }\n\n.fa-square-ampersand::before {\n content: \"\\e260\"; }\n\n.fa-envelope-open-text::before {\n content: \"\\f658\"; }\n\n.fa-lamp-desk::before {\n content: \"\\e014\"; }\n\n.fa-hospital::before {\n content: \"\\f0f8\"; }\n\n.fa-hospital-alt::before {\n content: \"\\f0f8\"; }\n\n.fa-hospital-wide::before {\n content: \"\\f0f8\"; }\n\n.fa-poll-people::before {\n content: \"\\f759\"; }\n\n.fa-whiskey-glass-ice::before {\n content: \"\\f7a1\"; }\n\n.fa-glass-whiskey-rocks::before {\n content: \"\\f7a1\"; }\n\n.fa-wine-bottle::before {\n content: \"\\f72f\"; }\n\n.fa-chess-rook::before {\n content: \"\\f447\"; }\n\n.fa-user-bounty-hunter::before {\n content: \"\\e2bf\"; }\n\n.fa-bars-staggered::before {\n content: \"\\f550\"; }\n\n.fa-reorder::before {\n content: \"\\f550\"; }\n\n.fa-stream::before {\n content: \"\\f550\"; }\n\n.fa-diagram-sankey::before {\n content: \"\\e158\"; }\n\n.fa-cloud-hail-mixed::before {\n content: \"\\f73a\"; }\n\n.fa-circle-up-left::before {\n content: \"\\e128\"; }\n\n.fa-dharmachakra::before {\n content: \"\\f655\"; }\n\n.fa-objects-align-left::before {\n content: \"\\e3be\"; }\n\n.fa-oil-can-drip::before {\n content: \"\\e205\"; }\n\n.fa-face-smiling-hands::before {\n content: \"\\e396\"; }\n\n.fa-broccoli::before {\n content: \"\\e3e2\"; }\n\n.fa-route-interstate::before {\n content: \"\\f61b\"; }\n\n.fa-ear-muffs::before {\n content: \"\\f795\"; }\n\n.fa-hotdog::before {\n content: \"\\f80f\"; }\n\n.fa-transporter-empty::before {\n content: \"\\e046\"; }\n\n.fa-person-walking-with-cane::before {\n content: \"\\f29d\"; }\n\n.fa-blind::before {\n content: \"\\f29d\"; }\n\n.fa-angle-90::before {\n content: \"\\e08d\"; }\n\n.fa-rectangle-terminal::before {\n content: \"\\e236\"; }\n\n.fa-kite::before {\n content: \"\\f6f4\"; }\n\n.fa-drum::before {\n content: \"\\f569\"; }\n\n.fa-scrubber::before {\n content: \"\\f2f8\"; }\n\n.fa-ice-cream::before {\n content: \"\\f810\"; }\n\n.fa-heart-circle-bolt::before {\n content: \"\\e4fc\"; }\n\n.fa-fish-bones::before {\n content: \"\\e304\"; }\n\n.fa-deer-rudolph::before {\n content: \"\\f78f\"; }\n\n.fa-fax::before {\n content: \"\\f1ac\"; }\n\n.fa-paragraph::before {\n content: \"\\f1dd\"; }\n\n.fa-head-side-heart::before {\n content: \"\\e1aa\"; }\n\n.fa-square-e::before {\n content: \"\\e26d\"; }\n\n.fa-meter-fire::before {\n content: \"\\e1eb\"; }\n\n.fa-cloud-hail::before {\n content: \"\\f739\"; }\n\n.fa-check-to-slot::before {\n content: \"\\f772\"; }\n\n.fa-vote-yea::before {\n content: \"\\f772\"; }\n\n.fa-money-from-bracket::before {\n content: \"\\e312\"; }\n\n.fa-star-half::before {\n content: \"\\f089\"; }\n\n.fa-car-bus::before {\n content: \"\\f85a\"; }\n\n.fa-speaker::before {\n content: \"\\f8df\"; }\n\n.fa-timer::before {\n content: \"\\e29e\"; }\n\n.fa-boxes-stacked::before {\n content: \"\\f468\"; }\n\n.fa-boxes::before {\n content: \"\\f468\"; }\n\n.fa-boxes-alt::before {\n content: \"\\f468\"; }\n\n.fa-landmark-magnifying-glass::before {\n content: \"\\e622\"; }\n\n.fa-grill-hot::before {\n content: \"\\e5a5\"; }\n\n.fa-ballot-check::before {\n content: \"\\f733\"; }\n\n.fa-link::before {\n content: \"\\f0c1\"; }\n\n.fa-chain::before {\n content: \"\\f0c1\"; }\n\n.fa-ear-listen::before {\n content: \"\\f2a2\"; }\n\n.fa-assistive-listening-systems::before {\n content: \"\\f2a2\"; }\n\n.fa-file-minus::before {\n content: \"\\f318\"; }\n\n.fa-tree-city::before {\n content: \"\\e587\"; }\n\n.fa-play::before {\n content: \"\\f04b\"; }\n\n.fa-font::before {\n content: \"\\f031\"; }\n\n.fa-cup-togo::before {\n content: \"\\f6c5\"; }\n\n.fa-coffee-togo::before {\n content: \"\\f6c5\"; }\n\n.fa-square-down-left::before {\n content: \"\\e26b\"; }\n\n.fa-burger-lettuce::before {\n content: \"\\e3e3\"; }\n\n.fa-table-cells-row-lock::before {\n content: \"\\e67a\"; }\n\n.fa-rupiah-sign::before {\n content: \"\\e23d\"; }\n\n.fa-magnifying-glass::before {\n content: \"\\f002\"; }\n\n.fa-search::before {\n content: \"\\f002\"; }\n\n.fa-table-tennis-paddle-ball::before {\n content: \"\\f45d\"; }\n\n.fa-ping-pong-paddle-ball::before {\n content: \"\\f45d\"; }\n\n.fa-table-tennis::before {\n content: \"\\f45d\"; }\n\n.fa-person-dots-from-line::before {\n content: \"\\f470\"; }\n\n.fa-diagnoses::before {\n content: \"\\f470\"; }\n\n.fa-chevrons-down::before {\n content: \"\\f322\"; }\n\n.fa-chevron-double-down::before {\n content: \"\\f322\"; }\n\n.fa-trash-can-arrow-up::before {\n content: \"\\f82a\"; }\n\n.fa-trash-restore-alt::before {\n content: \"\\f82a\"; }\n\n.fa-signal-good::before {\n content: \"\\f68e\"; }\n\n.fa-signal-3::before {\n content: \"\\f68e\"; }\n\n.fa-location-question::before {\n content: \"\\f60b\"; }\n\n.fa-map-marker-question::before {\n content: \"\\f60b\"; }\n\n.fa-floppy-disk-circle-xmark::before {\n content: \"\\e181\"; }\n\n.fa-floppy-disk-times::before {\n content: \"\\e181\"; }\n\n.fa-save-circle-xmark::before {\n content: \"\\e181\"; }\n\n.fa-save-times::before {\n content: \"\\e181\"; }\n\n.fa-naira-sign::before {\n content: \"\\e1f6\"; }\n\n.fa-peach::before {\n content: \"\\e20b\"; }\n\n.fa-taxi-bus::before {\n content: \"\\e298\"; }\n\n.fa-bracket-curly::before {\n content: \"\\7b\"; }\n\n.fa-bracket-curly-left::before {\n content: \"\\7b\"; }\n\n.fa-lobster::before {\n content: \"\\e421\"; }\n\n.fa-cart-flatbed-empty::before {\n content: \"\\f476\"; }\n\n.fa-dolly-flatbed-empty::before {\n content: \"\\f476\"; }\n\n.fa-colon::before {\n content: \"\\3a\"; }\n\n.fa-cart-arrow-down::before {\n content: \"\\f218\"; }\n\n.fa-wand::before {\n content: \"\\f72a\"; }\n\n.fa-walkie-talkie::before {\n content: \"\\f8ef\"; }\n\n.fa-file-pen::before {\n content: \"\\f31c\"; }\n\n.fa-file-edit::before {\n content: \"\\f31c\"; }\n\n.fa-receipt::before {\n content: \"\\f543\"; }\n\n.fa-table-picnic::before {\n content: \"\\e32d\"; }\n\n.fa-square-pen::before {\n content: \"\\f14b\"; }\n\n.fa-pen-square::before {\n content: \"\\f14b\"; }\n\n.fa-pencil-square::before {\n content: \"\\f14b\"; }\n\n.fa-circle-microphone-lines::before {\n content: \"\\e117\"; }\n\n.fa-microphone-circle-alt::before {\n content: \"\\e117\"; }\n\n.fa-display-slash::before {\n content: \"\\e2fa\"; }\n\n.fa-desktop-slash::before {\n content: \"\\e2fa\"; }\n\n.fa-suitcase-rolling::before {\n content: \"\\f5c1\"; }\n\n.fa-person-circle-exclamation::before {\n content: \"\\e53f\"; }\n\n.fa-transporter-2::before {\n content: \"\\e044\"; }\n\n.fa-hands-holding-diamond::before {\n content: \"\\f47c\"; }\n\n.fa-hand-receiving::before {\n content: \"\\f47c\"; }\n\n.fa-money-bill-simple-wave::before {\n content: \"\\e1f2\"; }\n\n.fa-chevron-down::before {\n content: \"\\f078\"; }\n\n.fa-battery-full::before {\n content: \"\\f240\"; }\n\n.fa-battery::before {\n content: \"\\f240\"; }\n\n.fa-battery-5::before {\n content: \"\\f240\"; }\n\n.fa-bell-plus::before {\n content: \"\\f849\"; }\n\n.fa-book-arrow-right::before {\n content: \"\\e0b9\"; }\n\n.fa-hospitals::before {\n content: \"\\f80e\"; }\n\n.fa-club::before {\n content: \"\\f327\"; }\n\n.fa-skull-crossbones::before {\n content: \"\\f714\"; }\n\n.fa-droplet-degree::before {\n content: \"\\f748\"; }\n\n.fa-dewpoint::before {\n content: \"\\f748\"; }\n\n.fa-code-compare::before {\n content: \"\\e13a\"; }\n\n.fa-list-ul::before {\n content: \"\\f0ca\"; }\n\n.fa-list-dots::before {\n content: \"\\f0ca\"; }\n\n.fa-hand-holding-magic::before {\n content: \"\\f6e5\"; }\n\n.fa-watermelon-slice::before {\n content: \"\\e337\"; }\n\n.fa-circle-ellipsis::before {\n content: \"\\e10a\"; }\n\n.fa-school-lock::before {\n content: \"\\e56f\"; }\n\n.fa-tower-cell::before {\n content: \"\\e585\"; }\n\n.fa-sd-cards::before {\n content: \"\\e240\"; }\n\n.fa-jug-bottle::before {\n content: \"\\e5fb\"; }\n\n.fa-down-long::before {\n content: \"\\f309\"; }\n\n.fa-long-arrow-alt-down::before {\n content: \"\\f309\"; }\n\n.fa-envelopes::before {\n content: \"\\e170\"; }\n\n.fa-phone-office::before {\n content: \"\\f67d\"; }\n\n.fa-ranking-star::before {\n content: \"\\e561\"; }\n\n.fa-chess-king::before {\n content: \"\\f43f\"; }\n\n.fa-nfc-pen::before {\n content: \"\\e1fa\"; }\n\n.fa-person-harassing::before {\n content: \"\\e549\"; }\n\n.fa-magnifying-glass-play::before {\n content: \"\\e660\"; }\n\n.fa-hat-winter::before {\n content: \"\\f7a8\"; }\n\n.fa-brazilian-real-sign::before {\n content: \"\\e46c\"; }\n\n.fa-landmark-dome::before {\n content: \"\\f752\"; }\n\n.fa-landmark-alt::before {\n content: \"\\f752\"; }\n\n.fa-bone-break::before {\n content: \"\\f5d8\"; }\n\n.fa-arrow-up::before {\n content: \"\\f062\"; }\n\n.fa-down-from-dotted-line::before {\n content: \"\\e407\"; }\n\n.fa-tv::before {\n content: \"\\f26c\"; }\n\n.fa-television::before {\n content: \"\\f26c\"; }\n\n.fa-tv-alt::before {\n content: \"\\f26c\"; }\n\n.fa-border-left::before {\n content: \"\\f84f\"; }\n\n.fa-circle-divide::before {\n content: \"\\e106\"; }\n\n.fa-shrimp::before {\n content: \"\\e448\"; }\n\n.fa-list-check::before {\n content: \"\\f0ae\"; }\n\n.fa-tasks::before {\n content: \"\\f0ae\"; }\n\n.fa-diagram-subtask::before {\n content: \"\\e479\"; }\n\n.fa-jug-detergent::before {\n content: \"\\e519\"; }\n\n.fa-circle-user::before {\n content: \"\\f2bd\"; }\n\n.fa-user-circle::before {\n content: \"\\f2bd\"; }\n\n.fa-square-y::before {\n content: \"\\e287\"; }\n\n.fa-user-doctor-hair::before {\n content: \"\\e458\"; }\n\n.fa-planet-ringed::before {\n content: \"\\e020\"; }\n\n.fa-mushroom::before {\n content: \"\\e425\"; }\n\n.fa-user-shield::before {\n content: \"\\f505\"; }\n\n.fa-megaphone::before {\n content: \"\\f675\"; }\n\n.fa-wreath-laurel::before {\n content: \"\\e5d2\"; }\n\n.fa-circle-exclamation-check::before {\n content: \"\\e10d\"; }\n\n.fa-wind::before {\n content: \"\\f72e\"; }\n\n.fa-box-dollar::before {\n content: \"\\f4a0\"; }\n\n.fa-box-usd::before {\n content: \"\\f4a0\"; }\n\n.fa-car-burst::before {\n content: \"\\f5e1\"; }\n\n.fa-car-crash::before {\n content: \"\\f5e1\"; }\n\n.fa-y::before {\n content: \"\\59\"; }\n\n.fa-user-headset::before {\n content: \"\\f82d\"; }\n\n.fa-arrows-retweet::before {\n content: \"\\f361\"; }\n\n.fa-retweet-alt::before {\n content: \"\\f361\"; }\n\n.fa-person-snowboarding::before {\n content: \"\\f7ce\"; }\n\n.fa-snowboarding::before {\n content: \"\\f7ce\"; }\n\n.fa-square-chevron-right::before {\n content: \"\\f32b\"; }\n\n.fa-chevron-square-right::before {\n content: \"\\f32b\"; }\n\n.fa-lacrosse-stick-ball::before {\n content: \"\\e3b6\"; }\n\n.fa-truck-fast::before {\n content: \"\\f48b\"; }\n\n.fa-shipping-fast::before {\n content: \"\\f48b\"; }\n\n.fa-user-magnifying-glass::before {\n content: \"\\e5c5\"; }\n\n.fa-star-sharp::before {\n content: \"\\e28b\"; }\n\n.fa-comment-heart::before {\n content: \"\\e5c8\"; }\n\n.fa-circle-1::before {\n content: \"\\e0ee\"; }\n\n.fa-circle-star::before {\n content: \"\\e123\"; }\n\n.fa-star-circle::before {\n content: \"\\e123\"; }\n\n.fa-fish::before {\n content: \"\\f578\"; }\n\n.fa-cloud-fog::before {\n content: \"\\f74e\"; }\n\n.fa-fog::before {\n content: \"\\f74e\"; }\n\n.fa-waffle::before {\n content: \"\\e466\"; }\n\n.fa-music-note::before {\n content: \"\\f8cf\"; }\n\n.fa-music-alt::before {\n content: \"\\f8cf\"; }\n\n.fa-hexagon-exclamation::before {\n content: \"\\e417\"; }\n\n.fa-cart-shopping-fast::before {\n content: \"\\e0dc\"; }\n\n.fa-object-union::before {\n content: \"\\e49f\"; }\n\n.fa-user-graduate::before {\n content: \"\\f501\"; }\n\n.fa-starfighter::before {\n content: \"\\e037\"; }\n\n.fa-circle-half-stroke::before {\n content: \"\\f042\"; }\n\n.fa-adjust::before {\n content: \"\\f042\"; }\n\n.fa-arrow-right-long-to-line::before {\n content: \"\\e3d5\"; }\n\n.fa-square-arrow-down::before {\n content: \"\\f339\"; }\n\n.fa-arrow-square-down::before {\n content: \"\\f339\"; }\n\n.fa-diamond-half-stroke::before {\n content: \"\\e5b8\"; }\n\n.fa-clapperboard::before {\n content: \"\\e131\"; }\n\n.fa-square-chevron-left::before {\n content: \"\\f32a\"; }\n\n.fa-chevron-square-left::before {\n content: \"\\f32a\"; }\n\n.fa-phone-intercom::before {\n content: \"\\e434\"; }\n\n.fa-link-horizontal::before {\n content: \"\\e1cb\"; }\n\n.fa-chain-horizontal::before {\n content: \"\\e1cb\"; }\n\n.fa-mango::before {\n content: \"\\e30f\"; }\n\n.fa-music-note-slash::before {\n content: \"\\f8d0\"; }\n\n.fa-music-alt-slash::before {\n content: \"\\f8d0\"; }\n\n.fa-circle-radiation::before {\n content: \"\\f7ba\"; }\n\n.fa-radiation-alt::before {\n content: \"\\f7ba\"; }\n\n.fa-face-tongue-sweat::before {\n content: \"\\e39e\"; }\n\n.fa-globe-stand::before {\n content: \"\\f5f6\"; }\n\n.fa-baseball::before {\n content: \"\\f433\"; }\n\n.fa-baseball-ball::before {\n content: \"\\f433\"; }\n\n.fa-circle-p::before {\n content: \"\\e11a\"; }\n\n.fa-award-simple::before {\n content: \"\\e0ab\"; }\n\n.fa-jet-fighter-up::before {\n content: \"\\e518\"; }\n\n.fa-diagram-project::before {\n content: \"\\f542\"; }\n\n.fa-project-diagram::before {\n content: \"\\f542\"; }\n\n.fa-pedestal::before {\n content: \"\\e20d\"; }\n\n.fa-chart-pyramid::before {\n content: \"\\e0e6\"; }\n\n.fa-sidebar::before {\n content: \"\\e24e\"; }\n\n.fa-snowman-head::before {\n content: \"\\f79b\"; }\n\n.fa-frosty-head::before {\n content: \"\\f79b\"; }\n\n.fa-copy::before {\n content: \"\\f0c5\"; }\n\n.fa-burger-glass::before {\n content: \"\\e0ce\"; }\n\n.fa-volume-xmark::before {\n content: \"\\f6a9\"; }\n\n.fa-volume-mute::before {\n content: \"\\f6a9\"; }\n\n.fa-volume-times::before {\n content: \"\\f6a9\"; }\n\n.fa-hand-sparkles::before {\n content: \"\\e05d\"; }\n\n.fa-bars-filter::before {\n content: \"\\e0ad\"; }\n\n.fa-paintbrush-pencil::before {\n content: \"\\e206\"; }\n\n.fa-party-bell::before {\n content: \"\\e31a\"; }\n\n.fa-user-vneck-hair::before {\n content: \"\\e462\"; }\n\n.fa-jack-o-lantern::before {\n content: \"\\f30e\"; }\n\n.fa-grip::before {\n content: \"\\f58d\"; }\n\n.fa-grip-horizontal::before {\n content: \"\\f58d\"; }\n\n.fa-share-from-square::before {\n content: \"\\f14d\"; }\n\n.fa-share-square::before {\n content: \"\\f14d\"; }\n\n.fa-keynote::before {\n content: \"\\f66c\"; }\n\n.fa-child-combatant::before {\n content: \"\\e4e0\"; }\n\n.fa-child-rifle::before {\n content: \"\\e4e0\"; }\n\n.fa-gun::before {\n content: \"\\e19b\"; }\n\n.fa-square-phone::before {\n content: \"\\f098\"; }\n\n.fa-phone-square::before {\n content: \"\\f098\"; }\n\n.fa-hat-beach::before {\n content: \"\\e606\"; }\n\n.fa-plus::before {\n content: \"\\2b\"; }\n\n.fa-add::before {\n content: \"\\2b\"; }\n\n.fa-expand::before {\n content: \"\\f065\"; }\n\n.fa-computer::before {\n content: \"\\e4e5\"; }\n\n.fa-fort::before {\n content: \"\\e486\"; }\n\n.fa-cloud-check::before {\n content: \"\\e35c\"; }\n\n.fa-xmark::before {\n content: \"\\f00d\"; }\n\n.fa-close::before {\n content: \"\\f00d\"; }\n\n.fa-multiply::before {\n content: \"\\f00d\"; }\n\n.fa-remove::before {\n content: \"\\f00d\"; }\n\n.fa-times::before {\n content: \"\\f00d\"; }\n\n.fa-face-smirking::before {\n content: \"\\e397\"; }\n\n.fa-arrows-up-down-left-right::before {\n content: \"\\f047\"; }\n\n.fa-arrows::before {\n content: \"\\f047\"; }\n\n.fa-chalkboard-user::before {\n content: \"\\f51c\"; }\n\n.fa-chalkboard-teacher::before {\n content: \"\\f51c\"; }\n\n.fa-rhombus::before {\n content: \"\\e23b\"; }\n\n.fa-claw-marks::before {\n content: \"\\f6c2\"; }\n\n.fa-peso-sign::before {\n content: \"\\e222\"; }\n\n.fa-face-smile-tongue::before {\n content: \"\\e394\"; }\n\n.fa-cart-circle-xmark::before {\n content: \"\\e3f4\"; }\n\n.fa-building-shield::before {\n content: \"\\e4d8\"; }\n\n.fa-circle-phone-flip::before {\n content: \"\\e11c\"; }\n\n.fa-phone-circle-alt::before {\n content: \"\\e11c\"; }\n\n.fa-baby::before {\n content: \"\\f77c\"; }\n\n.fa-users-line::before {\n content: \"\\e592\"; }\n\n.fa-quote-left::before {\n content: \"\\f10d\"; }\n\n.fa-quote-left-alt::before {\n content: \"\\f10d\"; }\n\n.fa-tractor::before {\n content: \"\\f722\"; }\n\n.fa-down-from-bracket::before {\n content: \"\\e66b\"; }\n\n.fa-key-skeleton::before {\n content: \"\\f6f3\"; }\n\n.fa-trash-arrow-up::before {\n content: \"\\f829\"; }\n\n.fa-trash-restore::before {\n content: \"\\f829\"; }\n\n.fa-arrow-down-up-lock::before {\n content: \"\\e4b0\"; }\n\n.fa-arrow-down-to-bracket::before {\n content: \"\\e094\"; }\n\n.fa-lines-leaning::before {\n content: \"\\e51e\"; }\n\n.fa-square-q::before {\n content: \"\\e27b\"; }\n\n.fa-ruler-combined::before {\n content: \"\\f546\"; }\n\n.fa-symbols::before {\n content: \"\\f86e\"; }\n\n.fa-icons-alt::before {\n content: \"\\f86e\"; }\n\n.fa-copyright::before {\n content: \"\\f1f9\"; }\n\n.fa-flask-gear::before {\n content: \"\\e5f1\"; }\n\n.fa-highlighter-line::before {\n content: \"\\e1af\"; }\n\n.fa-bracket-square::before {\n content: \"\\5b\"; }\n\n.fa-bracket::before {\n content: \"\\5b\"; }\n\n.fa-bracket-left::before {\n content: \"\\5b\"; }\n\n.fa-island-tropical::before {\n content: \"\\f811\"; }\n\n.fa-island-tree-palm::before {\n content: \"\\f811\"; }\n\n.fa-arrow-right-from-line::before {\n content: \"\\f343\"; }\n\n.fa-arrow-from-left::before {\n content: \"\\f343\"; }\n\n.fa-h2::before {\n content: \"\\f314\"; }\n\n.fa-equals::before {\n content: \"\\3d\"; }\n\n.fa-cake-slice::before {\n content: \"\\e3e5\"; }\n\n.fa-shortcake::before {\n content: \"\\e3e5\"; }\n\n.fa-building-magnifying-glass::before {\n content: \"\\e61c\"; }\n\n.fa-peanut::before {\n content: \"\\e430\"; }\n\n.fa-wrench-simple::before {\n content: \"\\e2d1\"; }\n\n.fa-blender::before {\n content: \"\\f517\"; }\n\n.fa-teeth::before {\n content: \"\\f62e\"; }\n\n.fa-tally-2::before {\n content: \"\\e295\"; }\n\n.fa-shekel-sign::before {\n content: \"\\f20b\"; }\n\n.fa-ils::before {\n content: \"\\f20b\"; }\n\n.fa-shekel::before {\n content: \"\\f20b\"; }\n\n.fa-sheqel::before {\n content: \"\\f20b\"; }\n\n.fa-sheqel-sign::before {\n content: \"\\f20b\"; }\n\n.fa-cars::before {\n content: \"\\f85b\"; }\n\n.fa-axe-battle::before {\n content: \"\\f6b3\"; }\n\n.fa-user-hair-long::before {\n content: \"\\e45b\"; }\n\n.fa-map::before {\n content: \"\\f279\"; }\n\n.fa-arrow-left-from-arc::before {\n content: \"\\e615\"; }\n\n.fa-file-circle-info::before {\n content: \"\\e493\"; }\n\n.fa-face-disappointed::before {\n content: \"\\e36f\"; }\n\n.fa-lasso-sparkles::before {\n content: \"\\e1c9\"; }\n\n.fa-clock-eleven::before {\n content: \"\\e347\"; }\n\n.fa-rocket::before {\n content: \"\\f135\"; }\n\n.fa-siren-on::before {\n content: \"\\e02e\"; }\n\n.fa-clock-ten::before {\n content: \"\\e354\"; }\n\n.fa-candle-holder::before {\n content: \"\\f6bc\"; }\n\n.fa-video-arrow-down-left::before {\n content: \"\\e2c8\"; }\n\n.fa-photo-film::before {\n content: \"\\f87c\"; }\n\n.fa-photo-video::before {\n content: \"\\f87c\"; }\n\n.fa-floppy-disk-circle-arrow-right::before {\n content: \"\\e180\"; }\n\n.fa-save-circle-arrow-right::before {\n content: \"\\e180\"; }\n\n.fa-folder-minus::before {\n content: \"\\f65d\"; }\n\n.fa-planet-moon::before {\n content: \"\\e01f\"; }\n\n.fa-face-eyes-xmarks::before {\n content: \"\\e374\"; }\n\n.fa-chart-scatter::before {\n content: \"\\f7ee\"; }\n\n.fa-circle-gf::before {\n content: \"\\e67f\"; }\n\n.fa-display-arrow-down::before {\n content: \"\\e164\"; }\n\n.fa-store::before {\n content: \"\\f54e\"; }\n\n.fa-arrow-trend-up::before {\n content: \"\\e098\"; }\n\n.fa-plug-circle-minus::before {\n content: \"\\e55e\"; }\n\n.fa-olive-branch::before {\n content: \"\\e317\"; }\n\n.fa-angle::before {\n content: \"\\e08c\"; }\n\n.fa-vacuum-robot::before {\n content: \"\\e04e\"; }\n\n.fa-sign-hanging::before {\n content: \"\\f4d9\"; }\n\n.fa-sign::before {\n content: \"\\f4d9\"; }\n\n.fa-square-divide::before {\n content: \"\\e26a\"; }\n\n.fa-folder-check::before {\n content: \"\\e64e\"; }\n\n.fa-signal-stream-slash::before {\n content: \"\\e250\"; }\n\n.fa-bezier-curve::before {\n content: \"\\f55b\"; }\n\n.fa-eye-dropper-half::before {\n content: \"\\e173\"; }\n\n.fa-store-lock::before {\n content: \"\\e4a6\"; }\n\n.fa-bell-slash::before {\n content: \"\\f1f6\"; }\n\n.fa-cloud-bolt-sun::before {\n content: \"\\f76e\"; }\n\n.fa-thunderstorm-sun::before {\n content: \"\\f76e\"; }\n\n.fa-camera-slash::before {\n content: \"\\e0d9\"; }\n\n.fa-comment-quote::before {\n content: \"\\e14c\"; }\n\n.fa-tablet::before {\n content: \"\\f3fb\"; }\n\n.fa-tablet-android::before {\n content: \"\\f3fb\"; }\n\n.fa-school-flag::before {\n content: \"\\e56e\"; }\n\n.fa-message-code::before {\n content: \"\\e1df\"; }\n\n.fa-glass-half::before {\n content: \"\\e192\"; }\n\n.fa-glass-half-empty::before {\n content: \"\\e192\"; }\n\n.fa-glass-half-full::before {\n content: \"\\e192\"; }\n\n.fa-fill::before {\n content: \"\\f575\"; }\n\n.fa-message-minus::before {\n content: \"\\f4a7\"; }\n\n.fa-comment-alt-minus::before {\n content: \"\\f4a7\"; }\n\n.fa-angle-up::before {\n content: \"\\f106\"; }\n\n.fa-dinosaur::before {\n content: \"\\e5fe\"; }\n\n.fa-drumstick-bite::before {\n content: \"\\f6d7\"; }\n\n.fa-link-horizontal-slash::before {\n content: \"\\e1cc\"; }\n\n.fa-chain-horizontal-slash::before {\n content: \"\\e1cc\"; }\n\n.fa-holly-berry::before {\n content: \"\\f7aa\"; }\n\n.fa-nose::before {\n content: \"\\e5bd\"; }\n\n.fa-arrow-left-to-arc::before {\n content: \"\\e616\"; }\n\n.fa-chevron-left::before {\n content: \"\\f053\"; }\n\n.fa-bacteria::before {\n content: \"\\e059\"; }\n\n.fa-clouds::before {\n content: \"\\f744\"; }\n\n.fa-money-bill-simple::before {\n content: \"\\e1f1\"; }\n\n.fa-hand-lizard::before {\n content: \"\\f258\"; }\n\n.fa-table-pivot::before {\n content: \"\\e291\"; }\n\n.fa-filter-slash::before {\n content: \"\\e17d\"; }\n\n.fa-trash-can-undo::before {\n content: \"\\f896\"; }\n\n.fa-trash-can-arrow-turn-left::before {\n content: \"\\f896\"; }\n\n.fa-trash-undo-alt::before {\n content: \"\\f896\"; }\n\n.fa-notdef::before {\n content: \"\\e1fe\"; }\n\n.fa-disease::before {\n content: \"\\f7fa\"; }\n\n.fa-person-to-door::before {\n content: \"\\e433\"; }\n\n.fa-turntable::before {\n content: \"\\f8e4\"; }\n\n.fa-briefcase-medical::before {\n content: \"\\f469\"; }\n\n.fa-genderless::before {\n content: \"\\f22d\"; }\n\n.fa-chevron-right::before {\n content: \"\\f054\"; }\n\n.fa-signal-weak::before {\n content: \"\\f68c\"; }\n\n.fa-signal-1::before {\n content: \"\\f68c\"; }\n\n.fa-clock-five::before {\n content: \"\\e349\"; }\n\n.fa-retweet::before {\n content: \"\\f079\"; }\n\n.fa-car-rear::before {\n content: \"\\f5de\"; }\n\n.fa-car-alt::before {\n content: \"\\f5de\"; }\n\n.fa-pump-soap::before {\n content: \"\\e06b\"; }\n\n.fa-computer-classic::before {\n content: \"\\f8b1\"; }\n\n.fa-frame::before {\n content: \"\\e495\"; }\n\n.fa-video-slash::before {\n content: \"\\f4e2\"; }\n\n.fa-battery-quarter::before {\n content: \"\\f243\"; }\n\n.fa-battery-2::before {\n content: \"\\f243\"; }\n\n.fa-ellipsis-stroke::before {\n content: \"\\f39b\"; }\n\n.fa-ellipsis-h-alt::before {\n content: \"\\f39b\"; }\n\n.fa-radio::before {\n content: \"\\f8d7\"; }\n\n.fa-baby-carriage::before {\n content: \"\\f77d\"; }\n\n.fa-carriage-baby::before {\n content: \"\\f77d\"; }\n\n.fa-face-expressionless::before {\n content: \"\\e373\"; }\n\n.fa-down-to-dotted-line::before {\n content: \"\\e408\"; }\n\n.fa-cloud-music::before {\n content: \"\\f8ae\"; }\n\n.fa-traffic-light::before {\n content: \"\\f637\"; }\n\n.fa-cloud-minus::before {\n content: \"\\e35d\"; }\n\n.fa-thermometer::before {\n content: \"\\f491\"; }\n\n.fa-shield-minus::before {\n content: \"\\e249\"; }\n\n.fa-vr-cardboard::before {\n content: \"\\f729\"; }\n\n.fa-car-tilt::before {\n content: \"\\f5e5\"; }\n\n.fa-gauge-circle-minus::before {\n content: \"\\e497\"; }\n\n.fa-brightness-low::before {\n content: \"\\e0ca\"; }\n\n.fa-hand-middle-finger::before {\n content: \"\\f806\"; }\n\n.fa-percent::before {\n content: \"\\25\"; }\n\n.fa-percentage::before {\n content: \"\\25\"; }\n\n.fa-truck-moving::before {\n content: \"\\f4df\"; }\n\n.fa-glass-water-droplet::before {\n content: \"\\e4f5\"; }\n\n.fa-conveyor-belt::before {\n content: \"\\f46e\"; }\n\n.fa-location-check::before {\n content: \"\\f606\"; }\n\n.fa-map-marker-check::before {\n content: \"\\f606\"; }\n\n.fa-coin-vertical::before {\n content: \"\\e3fd\"; }\n\n.fa-display::before {\n content: \"\\e163\"; }\n\n.fa-person-sign::before {\n content: \"\\f757\"; }\n\n.fa-face-smile::before {\n content: \"\\f118\"; }\n\n.fa-smile::before {\n content: \"\\f118\"; }\n\n.fa-phone-hangup::before {\n content: \"\\e225\"; }\n\n.fa-signature-slash::before {\n content: \"\\e3cb\"; }\n\n.fa-thumbtack::before {\n content: \"\\f08d\"; }\n\n.fa-thumb-tack::before {\n content: \"\\f08d\"; }\n\n.fa-wheat-slash::before {\n content: \"\\e339\"; }\n\n.fa-trophy::before {\n content: \"\\f091\"; }\n\n.fa-clouds-sun::before {\n content: \"\\f746\"; }\n\n.fa-person-praying::before {\n content: \"\\f683\"; }\n\n.fa-pray::before {\n content: \"\\f683\"; }\n\n.fa-hammer::before {\n content: \"\\f6e3\"; }\n\n.fa-face-vomit::before {\n content: \"\\e3a0\"; }\n\n.fa-speakers::before {\n content: \"\\f8e0\"; }\n\n.fa-tty-answer::before {\n content: \"\\e2b9\"; }\n\n.fa-teletype-answer::before {\n content: \"\\e2b9\"; }\n\n.fa-mug-tea-saucer::before {\n content: \"\\e1f5\"; }\n\n.fa-diagram-lean-canvas::before {\n content: \"\\e156\"; }\n\n.fa-alt::before {\n content: \"\\e08a\"; }\n\n.fa-dial::before {\n content: \"\\e15b\"; }\n\n.fa-dial-med-high::before {\n content: \"\\e15b\"; }\n\n.fa-hand-peace::before {\n content: \"\\f25b\"; }\n\n.fa-circle-trash::before {\n content: \"\\e126\"; }\n\n.fa-trash-circle::before {\n content: \"\\e126\"; }\n\n.fa-rotate::before {\n content: \"\\f2f1\"; }\n\n.fa-sync-alt::before {\n content: \"\\f2f1\"; }\n\n.fa-circle-quarters::before {\n content: \"\\e3f8\"; }\n\n.fa-spinner::before {\n content: \"\\f110\"; }\n\n.fa-tower-control::before {\n content: \"\\e2a2\"; }\n\n.fa-arrow-up-triangle-square::before {\n content: \"\\f88a\"; }\n\n.fa-sort-shapes-up::before {\n content: \"\\f88a\"; }\n\n.fa-whale::before {\n content: \"\\f72c\"; }\n\n.fa-robot::before {\n content: \"\\f544\"; }\n\n.fa-peace::before {\n content: \"\\f67c\"; }\n\n.fa-party-horn::before {\n content: \"\\e31b\"; }\n\n.fa-gears::before {\n content: \"\\f085\"; }\n\n.fa-cogs::before {\n content: \"\\f085\"; }\n\n.fa-sun-bright::before {\n content: \"\\e28f\"; }\n\n.fa-sun-alt::before {\n content: \"\\e28f\"; }\n\n.fa-warehouse::before {\n content: \"\\f494\"; }\n\n.fa-conveyor-belt-arm::before {\n content: \"\\e5f8\"; }\n\n.fa-lock-keyhole-open::before {\n content: \"\\f3c2\"; }\n\n.fa-lock-open-alt::before {\n content: \"\\f3c2\"; }\n\n.fa-square-fragile::before {\n content: \"\\f49b\"; }\n\n.fa-box-fragile::before {\n content: \"\\f49b\"; }\n\n.fa-square-wine-glass-crack::before {\n content: \"\\f49b\"; }\n\n.fa-arrow-up-right-dots::before {\n content: \"\\e4b7\"; }\n\n.fa-square-n::before {\n content: \"\\e277\"; }\n\n.fa-splotch::before {\n content: \"\\f5bc\"; }\n\n.fa-face-grin-hearts::before {\n content: \"\\f584\"; }\n\n.fa-grin-hearts::before {\n content: \"\\f584\"; }\n\n.fa-meter::before {\n content: \"\\e1e8\"; }\n\n.fa-mandolin::before {\n content: \"\\f6f9\"; }\n\n.fa-dice-four::before {\n content: \"\\f524\"; }\n\n.fa-sim-card::before {\n content: \"\\f7c4\"; }\n\n.fa-transgender::before {\n content: \"\\f225\"; }\n\n.fa-transgender-alt::before {\n content: \"\\f225\"; }\n\n.fa-mercury::before {\n content: \"\\f223\"; }\n\n.fa-up-from-bracket::before {\n content: \"\\e590\"; }\n\n.fa-knife-kitchen::before {\n content: \"\\f6f5\"; }\n\n.fa-border-right::before {\n content: \"\\f852\"; }\n\n.fa-arrow-turn-down::before {\n content: \"\\f149\"; }\n\n.fa-level-down::before {\n content: \"\\f149\"; }\n\n.fa-spade::before {\n content: \"\\f2f4\"; }\n\n.fa-card-spade::before {\n content: \"\\e3ec\"; }\n\n.fa-line-columns::before {\n content: \"\\f870\"; }\n\n.fa-ant::before {\n content: \"\\e680\"; }\n\n.fa-arrow-right-to-line::before {\n content: \"\\f340\"; }\n\n.fa-arrow-to-right::before {\n content: \"\\f340\"; }\n\n.fa-person-falling-burst::before {\n content: \"\\e547\"; }\n\n.fa-flag-pennant::before {\n content: \"\\f456\"; }\n\n.fa-pennant::before {\n content: \"\\f456\"; }\n\n.fa-conveyor-belt-empty::before {\n content: \"\\e150\"; }\n\n.fa-user-group-simple::before {\n content: \"\\e603\"; }\n\n.fa-award::before {\n content: \"\\f559\"; }\n\n.fa-ticket-simple::before {\n content: \"\\f3ff\"; }\n\n.fa-ticket-alt::before {\n content: \"\\f3ff\"; }\n\n.fa-building::before {\n content: \"\\f1ad\"; }\n\n.fa-angles-left::before {\n content: \"\\f100\"; }\n\n.fa-angle-double-left::before {\n content: \"\\f100\"; }\n\n.fa-camcorder::before {\n content: \"\\f8a8\"; }\n\n.fa-video-handheld::before {\n content: \"\\f8a8\"; }\n\n.fa-pancakes::before {\n content: \"\\e42d\"; }\n\n.fa-album-circle-user::before {\n content: \"\\e48d\"; }\n\n.fa-subtitles-slash::before {\n content: \"\\e610\"; }\n\n.fa-qrcode::before {\n content: \"\\f029\"; }\n\n.fa-dice-d10::before {\n content: \"\\f6cd\"; }\n\n.fa-fireplace::before {\n content: \"\\f79a\"; }\n\n.fa-browser::before {\n content: \"\\f37e\"; }\n\n.fa-pen-paintbrush::before {\n content: \"\\f618\"; }\n\n.fa-pencil-paintbrush::before {\n content: \"\\f618\"; }\n\n.fa-fish-cooked::before {\n content: \"\\f7fe\"; }\n\n.fa-chair-office::before {\n content: \"\\f6c1\"; }\n\n.fa-magnifying-glass-music::before {\n content: \"\\e65f\"; }\n\n.fa-nesting-dolls::before {\n content: \"\\e3ba\"; }\n\n.fa-clock-rotate-left::before {\n content: \"\\f1da\"; }\n\n.fa-history::before {\n content: \"\\f1da\"; }\n\n.fa-trumpet::before {\n content: \"\\f8e3\"; }\n\n.fa-face-grin-beam-sweat::before {\n content: \"\\f583\"; }\n\n.fa-grin-beam-sweat::before {\n content: \"\\f583\"; }\n\n.fa-fire-smoke::before {\n content: \"\\f74b\"; }\n\n.fa-phone-missed::before {\n content: \"\\e226\"; }\n\n.fa-file-export::before {\n content: \"\\f56e\"; }\n\n.fa-arrow-right-from-file::before {\n content: \"\\f56e\"; }\n\n.fa-shield::before {\n content: \"\\f132\"; }\n\n.fa-shield-blank::before {\n content: \"\\f132\"; }\n\n.fa-arrow-up-short-wide::before {\n content: \"\\f885\"; }\n\n.fa-sort-amount-up-alt::before {\n content: \"\\f885\"; }\n\n.fa-arrows-repeat-1::before {\n content: \"\\f366\"; }\n\n.fa-repeat-1-alt::before {\n content: \"\\f366\"; }\n\n.fa-gun-slash::before {\n content: \"\\e19c\"; }\n\n.fa-avocado::before {\n content: \"\\e0aa\"; }\n\n.fa-binary::before {\n content: \"\\e33b\"; }\n\n.fa-glasses-round::before {\n content: \"\\f5f5\"; }\n\n.fa-glasses-alt::before {\n content: \"\\f5f5\"; }\n\n.fa-phone-plus::before {\n content: \"\\f4d2\"; }\n\n.fa-ditto::before {\n content: \"\\22\"; }\n\n.fa-person-seat::before {\n content: \"\\e21e\"; }\n\n.fa-house-medical::before {\n content: \"\\e3b2\"; }\n\n.fa-golf-ball-tee::before {\n content: \"\\f450\"; }\n\n.fa-golf-ball::before {\n content: \"\\f450\"; }\n\n.fa-circle-chevron-left::before {\n content: \"\\f137\"; }\n\n.fa-chevron-circle-left::before {\n content: \"\\f137\"; }\n\n.fa-house-chimney-window::before {\n content: \"\\e00d\"; }\n\n.fa-scythe::before {\n content: \"\\f710\"; }\n\n.fa-pen-nib::before {\n content: \"\\f5ad\"; }\n\n.fa-ban-parking::before {\n content: \"\\f616\"; }\n\n.fa-parking-circle-slash::before {\n content: \"\\f616\"; }\n\n.fa-tent-arrow-turn-left::before {\n content: \"\\e580\"; }\n\n.fa-face-diagonal-mouth::before {\n content: \"\\e47e\"; }\n\n.fa-diagram-cells::before {\n content: \"\\e475\"; }\n\n.fa-cricket-bat-ball::before {\n content: \"\\f449\"; }\n\n.fa-cricket::before {\n content: \"\\f449\"; }\n\n.fa-tents::before {\n content: \"\\e582\"; }\n\n.fa-wand-magic::before {\n content: \"\\f0d0\"; }\n\n.fa-magic::before {\n content: \"\\f0d0\"; }\n\n.fa-dog::before {\n content: \"\\f6d3\"; }\n\n.fa-pen-line::before {\n content: \"\\e212\"; }\n\n.fa-atom-simple::before {\n content: \"\\f5d3\"; }\n\n.fa-atom-alt::before {\n content: \"\\f5d3\"; }\n\n.fa-ampersand::before {\n content: \"\\26\"; }\n\n.fa-carrot::before {\n content: \"\\f787\"; }\n\n.fa-arrow-up-from-line::before {\n content: \"\\f342\"; }\n\n.fa-arrow-from-bottom::before {\n content: \"\\f342\"; }\n\n.fa-moon::before {\n content: \"\\f186\"; }\n\n.fa-pen-slash::before {\n content: \"\\e213\"; }\n\n.fa-wine-glass-empty::before {\n content: \"\\f5ce\"; }\n\n.fa-wine-glass-alt::before {\n content: \"\\f5ce\"; }\n\n.fa-square-star::before {\n content: \"\\e27f\"; }\n\n.fa-cheese::before {\n content: \"\\f7ef\"; }\n\n.fa-send-backward::before {\n content: \"\\f87f\"; }\n\n.fa-yin-yang::before {\n content: \"\\f6ad\"; }\n\n.fa-music::before {\n content: \"\\f001\"; }\n\n.fa-compass-slash::before {\n content: \"\\f5e9\"; }\n\n.fa-clock-one::before {\n content: \"\\e34e\"; }\n\n.fa-file-music::before {\n content: \"\\f8b6\"; }\n\n.fa-code-commit::before {\n content: \"\\f386\"; }\n\n.fa-temperature-low::before {\n content: \"\\f76b\"; }\n\n.fa-person-biking::before {\n content: \"\\f84a\"; }\n\n.fa-biking::before {\n content: \"\\f84a\"; }\n\n.fa-display-chart-up-circle-currency::before {\n content: \"\\e5e5\"; }\n\n.fa-skeleton::before {\n content: \"\\f620\"; }\n\n.fa-circle-g::before {\n content: \"\\e10f\"; }\n\n.fa-circle-arrow-up-left::before {\n content: \"\\e0fb\"; }\n\n.fa-coin-blank::before {\n content: \"\\e3fb\"; }\n\n.fa-broom::before {\n content: \"\\f51a\"; }\n\n.fa-vacuum::before {\n content: \"\\e04d\"; }\n\n.fa-shield-heart::before {\n content: \"\\e574\"; }\n\n.fa-card-heart::before {\n content: \"\\e3eb\"; }\n\n.fa-lightbulb-cfl-on::before {\n content: \"\\e5a7\"; }\n\n.fa-melon::before {\n content: \"\\e310\"; }\n\n.fa-gopuram::before {\n content: \"\\f664\"; }\n\n.fa-earth-oceania::before {\n content: \"\\e47b\"; }\n\n.fa-globe-oceania::before {\n content: \"\\e47b\"; }\n\n.fa-container-storage::before {\n content: \"\\f4b7\"; }\n\n.fa-face-pouting::before {\n content: \"\\e387\"; }\n\n.fa-square-xmark::before {\n content: \"\\f2d3\"; }\n\n.fa-times-square::before {\n content: \"\\f2d3\"; }\n\n.fa-xmark-square::before {\n content: \"\\f2d3\"; }\n\n.fa-face-explode::before {\n content: \"\\e2fe\"; }\n\n.fa-exploding-head::before {\n content: \"\\e2fe\"; }\n\n.fa-hashtag::before {\n content: \"\\23\"; }\n\n.fa-up-right-and-down-left-from-center::before {\n content: \"\\f424\"; }\n\n.fa-expand-alt::before {\n content: \"\\f424\"; }\n\n.fa-oil-can::before {\n content: \"\\f613\"; }\n\n.fa-t::before {\n content: \"\\54\"; }\n\n.fa-transformer-bolt::before {\n content: \"\\e2a4\"; }\n\n.fa-hippo::before {\n content: \"\\f6ed\"; }\n\n.fa-chart-column::before {\n content: \"\\e0e3\"; }\n\n.fa-cassette-vhs::before {\n content: \"\\f8ec\"; }\n\n.fa-vhs::before {\n content: \"\\f8ec\"; }\n\n.fa-infinity::before {\n content: \"\\f534\"; }\n\n.fa-vial-circle-check::before {\n content: \"\\e596\"; }\n\n.fa-chimney::before {\n content: \"\\f78b\"; }\n\n.fa-object-intersect::before {\n content: \"\\e49d\"; }\n\n.fa-person-arrow-down-to-line::before {\n content: \"\\e538\"; }\n\n.fa-voicemail::before {\n content: \"\\f897\"; }\n\n.fa-block-brick::before {\n content: \"\\e3db\"; }\n\n.fa-wall-brick::before {\n content: \"\\e3db\"; }\n\n.fa-fan::before {\n content: \"\\f863\"; }\n\n.fa-bags-shopping::before {\n content: \"\\f847\"; }\n\n.fa-paragraph-left::before {\n content: \"\\f878\"; }\n\n.fa-paragraph-rtl::before {\n content: \"\\f878\"; }\n\n.fa-person-walking-luggage::before {\n content: \"\\e554\"; }\n\n.fa-caravan-simple::before {\n content: \"\\e000\"; }\n\n.fa-caravan-alt::before {\n content: \"\\e000\"; }\n\n.fa-turtle::before {\n content: \"\\f726\"; }\n\n.fa-pencil-mechanical::before {\n content: \"\\e5ca\"; }\n\n.fa-up-down::before {\n content: \"\\f338\"; }\n\n.fa-arrows-alt-v::before {\n content: \"\\f338\"; }\n\n.fa-cloud-moon-rain::before {\n content: \"\\f73c\"; }\n\n.fa-booth-curtain::before {\n content: \"\\f734\"; }\n\n.fa-calendar::before {\n content: \"\\f133\"; }\n\n.fa-box-heart::before {\n content: \"\\f49d\"; }\n\n.fa-trailer::before {\n content: \"\\e041\"; }\n\n.fa-user-doctor-message::before {\n content: \"\\f82e\"; }\n\n.fa-user-md-chat::before {\n content: \"\\f82e\"; }\n\n.fa-bahai::before {\n content: \"\\f666\"; }\n\n.fa-haykal::before {\n content: \"\\f666\"; }\n\n.fa-lighthouse::before {\n content: \"\\e612\"; }\n\n.fa-amp-guitar::before {\n content: \"\\f8a1\"; }\n\n.fa-sd-card::before {\n content: \"\\f7c2\"; }\n\n.fa-volume-slash::before {\n content: \"\\f2e2\"; }\n\n.fa-border-bottom::before {\n content: \"\\f84d\"; }\n\n.fa-wifi-weak::before {\n content: \"\\f6aa\"; }\n\n.fa-wifi-1::before {\n content: \"\\f6aa\"; }\n\n.fa-dragon::before {\n content: \"\\f6d5\"; }\n\n.fa-shoe-prints::before {\n content: \"\\f54b\"; }\n\n.fa-circle-plus::before {\n content: \"\\f055\"; }\n\n.fa-plus-circle::before {\n content: \"\\f055\"; }\n\n.fa-face-grin-tongue-wink::before {\n content: \"\\f58b\"; }\n\n.fa-grin-tongue-wink::before {\n content: \"\\f58b\"; }\n\n.fa-hand-holding::before {\n content: \"\\f4bd\"; }\n\n.fa-plug-circle-exclamation::before {\n content: \"\\e55d\"; }\n\n.fa-link-slash::before {\n content: \"\\f127\"; }\n\n.fa-chain-broken::before {\n content: \"\\f127\"; }\n\n.fa-chain-slash::before {\n content: \"\\f127\"; }\n\n.fa-unlink::before {\n content: \"\\f127\"; }\n\n.fa-clone::before {\n content: \"\\f24d\"; }\n\n.fa-person-walking-arrow-loop-left::before {\n content: \"\\e551\"; }\n\n.fa-arrow-up-z-a::before {\n content: \"\\f882\"; }\n\n.fa-sort-alpha-up-alt::before {\n content: \"\\f882\"; }\n\n.fa-fire-flame-curved::before {\n content: \"\\f7e4\"; }\n\n.fa-fire-alt::before {\n content: \"\\f7e4\"; }\n\n.fa-tornado::before {\n content: \"\\f76f\"; }\n\n.fa-file-circle-plus::before {\n content: \"\\e494\"; }\n\n.fa-delete-right::before {\n content: \"\\e154\"; }\n\n.fa-book-quran::before {\n content: \"\\f687\"; }\n\n.fa-quran::before {\n content: \"\\f687\"; }\n\n.fa-circle-quarter::before {\n content: \"\\e11f\"; }\n\n.fa-anchor::before {\n content: \"\\f13d\"; }\n\n.fa-border-all::before {\n content: \"\\f84c\"; }\n\n.fa-function::before {\n content: \"\\f661\"; }\n\n.fa-face-angry::before {\n content: \"\\f556\"; }\n\n.fa-angry::before {\n content: \"\\f556\"; }\n\n.fa-people-simple::before {\n content: \"\\e21b\"; }\n\n.fa-cookie-bite::before {\n content: \"\\f564\"; }\n\n.fa-arrow-trend-down::before {\n content: \"\\e097\"; }\n\n.fa-rss::before {\n content: \"\\f09e\"; }\n\n.fa-feed::before {\n content: \"\\f09e\"; }\n\n.fa-face-monocle::before {\n content: \"\\e380\"; }\n\n.fa-draw-polygon::before {\n content: \"\\f5ee\"; }\n\n.fa-scale-balanced::before {\n content: \"\\f24e\"; }\n\n.fa-balance-scale::before {\n content: \"\\f24e\"; }\n\n.fa-calendar-lines::before {\n content: \"\\e0d5\"; }\n\n.fa-calendar-note::before {\n content: \"\\e0d5\"; }\n\n.fa-arrow-down-big-small::before {\n content: \"\\f88c\"; }\n\n.fa-sort-size-down::before {\n content: \"\\f88c\"; }\n\n.fa-gauge-simple-high::before {\n content: \"\\f62a\"; }\n\n.fa-tachometer::before {\n content: \"\\f62a\"; }\n\n.fa-tachometer-fast::before {\n content: \"\\f62a\"; }\n\n.fa-do-not-enter::before {\n content: \"\\f5ec\"; }\n\n.fa-shower::before {\n content: \"\\f2cc\"; }\n\n.fa-dice-d8::before {\n content: \"\\f6d2\"; }\n\n.fa-desktop::before {\n content: \"\\f390\"; }\n\n.fa-desktop-alt::before {\n content: \"\\f390\"; }\n\n.fa-m::before {\n content: \"\\4d\"; }\n\n.fa-spinner-scale::before {\n content: \"\\e62a\"; }\n\n.fa-grip-dots-vertical::before {\n content: \"\\e411\"; }\n\n.fa-face-viewfinder::before {\n content: \"\\e2ff\"; }\n\n.fa-soft-serve::before {\n content: \"\\e400\"; }\n\n.fa-creemee::before {\n content: \"\\e400\"; }\n\n.fa-h5::before {\n content: \"\\e412\"; }\n\n.fa-hand-back-point-down::before {\n content: \"\\e19e\"; }\n\n.fa-table-list::before {\n content: \"\\f00b\"; }\n\n.fa-th-list::before {\n content: \"\\f00b\"; }\n\n.fa-basket-shopping-minus::before {\n content: \"\\e652\"; }\n\n.fa-comment-sms::before {\n content: \"\\f7cd\"; }\n\n.fa-sms::before {\n content: \"\\f7cd\"; }\n\n.fa-rectangle::before {\n content: \"\\f2fa\"; }\n\n.fa-rectangle-landscape::before {\n content: \"\\f2fa\"; }\n\n.fa-clipboard-list-check::before {\n content: \"\\f737\"; }\n\n.fa-turkey::before {\n content: \"\\f725\"; }\n\n.fa-book::before {\n content: \"\\f02d\"; }\n\n.fa-user-plus::before {\n content: \"\\f234\"; }\n\n.fa-ice-skate::before {\n content: \"\\f7ac\"; }\n\n.fa-check::before {\n content: \"\\f00c\"; }\n\n.fa-battery-three-quarters::before {\n content: \"\\f241\"; }\n\n.fa-battery-4::before {\n content: \"\\f241\"; }\n\n.fa-tomato::before {\n content: \"\\e330\"; }\n\n.fa-sword-laser::before {\n content: \"\\e03b\"; }\n\n.fa-house-circle-check::before {\n content: \"\\e509\"; }\n\n.fa-buildings::before {\n content: \"\\e0cc\"; }\n\n.fa-angle-left::before {\n content: \"\\f104\"; }\n\n.fa-cart-flatbed-boxes::before {\n content: \"\\f475\"; }\n\n.fa-dolly-flatbed-alt::before {\n content: \"\\f475\"; }\n\n.fa-diagram-successor::before {\n content: \"\\e47a\"; }\n\n.fa-truck-arrow-right::before {\n content: \"\\e58b\"; }\n\n.fa-square-w::before {\n content: \"\\e285\"; }\n\n.fa-arrows-split-up-and-left::before {\n content: \"\\e4bc\"; }\n\n.fa-lamp::before {\n content: \"\\f4ca\"; }\n\n.fa-airplay::before {\n content: \"\\e089\"; }\n\n.fa-hand-fist::before {\n content: \"\\f6de\"; }\n\n.fa-fist-raised::before {\n content: \"\\f6de\"; }\n\n.fa-shield-quartered::before {\n content: \"\\e575\"; }\n\n.fa-slash-forward::before {\n content: \"\\2f\"; }\n\n.fa-location-pen::before {\n content: \"\\f607\"; }\n\n.fa-map-marker-edit::before {\n content: \"\\f607\"; }\n\n.fa-cloud-moon::before {\n content: \"\\f6c3\"; }\n\n.fa-pot-food::before {\n content: \"\\e43f\"; }\n\n.fa-briefcase::before {\n content: \"\\f0b1\"; }\n\n.fa-person-falling::before {\n content: \"\\e546\"; }\n\n.fa-image-portrait::before {\n content: \"\\f3e0\"; }\n\n.fa-portrait::before {\n content: \"\\f3e0\"; }\n\n.fa-user-tag::before {\n content: \"\\f507\"; }\n\n.fa-rug::before {\n content: \"\\e569\"; }\n\n.fa-print-slash::before {\n content: \"\\f686\"; }\n\n.fa-earth-europe::before {\n content: \"\\f7a2\"; }\n\n.fa-globe-europe::before {\n content: \"\\f7a2\"; }\n\n.fa-cart-flatbed-suitcase::before {\n content: \"\\f59d\"; }\n\n.fa-luggage-cart::before {\n content: \"\\f59d\"; }\n\n.fa-hand-back-point-ribbon::before {\n content: \"\\e1a0\"; }\n\n.fa-rectangle-xmark::before {\n content: \"\\f410\"; }\n\n.fa-rectangle-times::before {\n content: \"\\f410\"; }\n\n.fa-times-rectangle::before {\n content: \"\\f410\"; }\n\n.fa-window-close::before {\n content: \"\\f410\"; }\n\n.fa-tire-rugged::before {\n content: \"\\f634\"; }\n\n.fa-lightbulb-dollar::before {\n content: \"\\f670\"; }\n\n.fa-cowbell::before {\n content: \"\\f8b3\"; }\n\n.fa-baht-sign::before {\n content: \"\\e0ac\"; }\n\n.fa-corner::before {\n content: \"\\e3fe\"; }\n\n.fa-chevrons-right::before {\n content: \"\\f324\"; }\n\n.fa-chevron-double-right::before {\n content: \"\\f324\"; }\n\n.fa-book-open::before {\n content: \"\\f518\"; }\n\n.fa-book-journal-whills::before {\n content: \"\\f66a\"; }\n\n.fa-journal-whills::before {\n content: \"\\f66a\"; }\n\n.fa-inhaler::before {\n content: \"\\f5f9\"; }\n\n.fa-handcuffs::before {\n content: \"\\e4f8\"; }\n\n.fa-snake::before {\n content: \"\\f716\"; }\n\n.fa-triangle-exclamation::before {\n content: \"\\f071\"; }\n\n.fa-exclamation-triangle::before {\n content: \"\\f071\"; }\n\n.fa-warning::before {\n content: \"\\f071\"; }\n\n.fa-note-medical::before {\n content: \"\\e200\"; }\n\n.fa-database::before {\n content: \"\\f1c0\"; }\n\n.fa-down-left::before {\n content: \"\\e16a\"; }\n\n.fa-share::before {\n content: \"\\f064\"; }\n\n.fa-mail-forward::before {\n content: \"\\f064\"; }\n\n.fa-face-thinking::before {\n content: \"\\e39b\"; }\n\n.fa-turn-down-right::before {\n content: \"\\e455\"; }\n\n.fa-bottle-droplet::before {\n content: \"\\e4c4\"; }\n\n.fa-mask-face::before {\n content: \"\\e1d7\"; }\n\n.fa-hill-rockslide::before {\n content: \"\\e508\"; }\n\n.fa-scanner-keyboard::before {\n content: \"\\f489\"; }\n\n.fa-circle-o::before {\n content: \"\\e119\"; }\n\n.fa-grid-horizontal::before {\n content: \"\\e307\"; }\n\n.fa-message-dollar::before {\n content: \"\\f650\"; }\n\n.fa-comment-alt-dollar::before {\n content: \"\\f650\"; }\n\n.fa-right-left::before {\n content: \"\\f362\"; }\n\n.fa-exchange-alt::before {\n content: \"\\f362\"; }\n\n.fa-columns-3::before {\n content: \"\\e361\"; }\n\n.fa-paper-plane::before {\n content: \"\\f1d8\"; }\n\n.fa-road-circle-exclamation::before {\n content: \"\\e565\"; }\n\n.fa-dungeon::before {\n content: \"\\f6d9\"; }\n\n.fa-hand-holding-box::before {\n content: \"\\f47b\"; }\n\n.fa-input-text::before {\n content: \"\\e1bf\"; }\n\n.fa-window-flip::before {\n content: \"\\f40f\"; }\n\n.fa-window-alt::before {\n content: \"\\f40f\"; }\n\n.fa-align-right::before {\n content: \"\\f038\"; }\n\n.fa-scanner-gun::before {\n content: \"\\f488\"; }\n\n.fa-scanner::before {\n content: \"\\f488\"; }\n\n.fa-tire::before {\n content: \"\\f631\"; }\n\n.fa-engine::before {\n content: \"\\e16e\"; }\n\n.fa-money-bill-1-wave::before {\n content: \"\\f53b\"; }\n\n.fa-money-bill-wave-alt::before {\n content: \"\\f53b\"; }\n\n.fa-life-ring::before {\n content: \"\\f1cd\"; }\n\n.fa-hands::before {\n content: \"\\f2a7\"; }\n\n.fa-sign-language::before {\n content: \"\\f2a7\"; }\n\n.fa-signing::before {\n content: \"\\f2a7\"; }\n\n.fa-circle-caret-right::before {\n content: \"\\f330\"; }\n\n.fa-caret-circle-right::before {\n content: \"\\f330\"; }\n\n.fa-turn-left::before {\n content: \"\\e636\"; }\n\n.fa-wheat::before {\n content: \"\\f72d\"; }\n\n.fa-file-spreadsheet::before {\n content: \"\\f65b\"; }\n\n.fa-audio-description-slash::before {\n content: \"\\e0a8\"; }\n\n.fa-bell-ring::before {\n content: \"\\e62c\"; }\n\n.fa-calendar-day::before {\n content: \"\\f783\"; }\n\n.fa-water-ladder::before {\n content: \"\\f5c5\"; }\n\n.fa-ladder-water::before {\n content: \"\\f5c5\"; }\n\n.fa-swimming-pool::before {\n content: \"\\f5c5\"; }\n\n.fa-arrows-up-down::before {\n content: \"\\f07d\"; }\n\n.fa-arrows-v::before {\n content: \"\\f07d\"; }\n\n.fa-chess-pawn-piece::before {\n content: \"\\f444\"; }\n\n.fa-chess-pawn-alt::before {\n content: \"\\f444\"; }\n\n.fa-face-grimace::before {\n content: \"\\f57f\"; }\n\n.fa-grimace::before {\n content: \"\\f57f\"; }\n\n.fa-wheelchair-move::before {\n content: \"\\e2ce\"; }\n\n.fa-wheelchair-alt::before {\n content: \"\\e2ce\"; }\n\n.fa-turn-down::before {\n content: \"\\f3be\"; }\n\n.fa-level-down-alt::before {\n content: \"\\f3be\"; }\n\n.fa-square-s::before {\n content: \"\\e27d\"; }\n\n.fa-rectangle-barcode::before {\n content: \"\\f463\"; }\n\n.fa-barcode-alt::before {\n content: \"\\f463\"; }\n\n.fa-person-walking-arrow-right::before {\n content: \"\\e552\"; }\n\n.fa-square-envelope::before {\n content: \"\\f199\"; }\n\n.fa-envelope-square::before {\n content: \"\\f199\"; }\n\n.fa-dice::before {\n content: \"\\f522\"; }\n\n.fa-unicorn::before {\n content: \"\\f727\"; }\n\n.fa-bowling-ball::before {\n content: \"\\f436\"; }\n\n.fa-pompebled::before {\n content: \"\\e43d\"; }\n\n.fa-brain::before {\n content: \"\\f5dc\"; }\n\n.fa-watch-smart::before {\n content: \"\\e2cc\"; }\n\n.fa-book-user::before {\n content: \"\\f7e7\"; }\n\n.fa-sensor-cloud::before {\n content: \"\\e02c\"; }\n\n.fa-sensor-smoke::before {\n content: \"\\e02c\"; }\n\n.fa-clapperboard-play::before {\n content: \"\\e132\"; }\n\n.fa-bandage::before {\n content: \"\\f462\"; }\n\n.fa-band-aid::before {\n content: \"\\f462\"; }\n\n.fa-calendar-minus::before {\n content: \"\\f272\"; }\n\n.fa-circle-xmark::before {\n content: \"\\f057\"; }\n\n.fa-times-circle::before {\n content: \"\\f057\"; }\n\n.fa-xmark-circle::before {\n content: \"\\f057\"; }\n\n.fa-circle-4::before {\n content: \"\\e0f1\"; }\n\n.fa-gifts::before {\n content: \"\\f79c\"; }\n\n.fa-album-collection::before {\n content: \"\\f8a0\"; }\n\n.fa-hotel::before {\n content: \"\\f594\"; }\n\n.fa-earth-asia::before {\n content: \"\\f57e\"; }\n\n.fa-globe-asia::before {\n content: \"\\f57e\"; }\n\n.fa-id-card-clip::before {\n content: \"\\f47f\"; }\n\n.fa-id-card-alt::before {\n content: \"\\f47f\"; }\n\n.fa-magnifying-glass-plus::before {\n content: \"\\f00e\"; }\n\n.fa-search-plus::before {\n content: \"\\f00e\"; }\n\n.fa-thumbs-up::before {\n content: \"\\f164\"; }\n\n.fa-cloud-showers::before {\n content: \"\\f73f\"; }\n\n.fa-user-clock::before {\n content: \"\\f4fd\"; }\n\n.fa-onion::before {\n content: \"\\e427\"; }\n\n.fa-clock-twelve-thirty::before {\n content: \"\\e359\"; }\n\n.fa-arrow-down-to-dotted-line::before {\n content: \"\\e095\"; }\n\n.fa-hand-dots::before {\n content: \"\\f461\"; }\n\n.fa-allergies::before {\n content: \"\\f461\"; }\n\n.fa-file-invoice::before {\n content: \"\\f570\"; }\n\n.fa-window-minimize::before {\n content: \"\\f2d1\"; }\n\n.fa-rectangle-wide::before {\n content: \"\\f2fc\"; }\n\n.fa-comment-arrow-up::before {\n content: \"\\e144\"; }\n\n.fa-garlic::before {\n content: \"\\e40e\"; }\n\n.fa-mug-saucer::before {\n content: \"\\f0f4\"; }\n\n.fa-coffee::before {\n content: \"\\f0f4\"; }\n\n.fa-brush::before {\n content: \"\\f55d\"; }\n\n.fa-tree-decorated::before {\n content: \"\\f7dc\"; }\n\n.fa-mask::before {\n content: \"\\f6fa\"; }\n\n.fa-calendar-heart::before {\n content: \"\\e0d3\"; }\n\n.fa-magnifying-glass-minus::before {\n content: \"\\f010\"; }\n\n.fa-search-minus::before {\n content: \"\\f010\"; }\n\n.fa-flower::before {\n content: \"\\f7ff\"; }\n\n.fa-arrow-down-from-arc::before {\n content: \"\\e614\"; }\n\n.fa-right-left-large::before {\n content: \"\\e5e1\"; }\n\n.fa-ruler-vertical::before {\n content: \"\\f548\"; }\n\n.fa-circles-overlap::before {\n content: \"\\e600\"; }\n\n.fa-user-large::before {\n content: \"\\f406\"; }\n\n.fa-user-alt::before {\n content: \"\\f406\"; }\n\n.fa-starship-freighter::before {\n content: \"\\e03a\"; }\n\n.fa-train-tram::before {\n content: \"\\e5b4\"; }\n\n.fa-bridge-suspension::before {\n content: \"\\e4cd\"; }\n\n.fa-trash-check::before {\n content: \"\\e2af\"; }\n\n.fa-user-nurse::before {\n content: \"\\f82f\"; }\n\n.fa-boombox::before {\n content: \"\\f8a5\"; }\n\n.fa-syringe::before {\n content: \"\\f48e\"; }\n\n.fa-cloud-sun::before {\n content: \"\\f6c4\"; }\n\n.fa-shield-exclamation::before {\n content: \"\\e247\"; }\n\n.fa-stopwatch-20::before {\n content: \"\\e06f\"; }\n\n.fa-square-full::before {\n content: \"\\f45c\"; }\n\n.fa-grip-dots::before {\n content: \"\\e410\"; }\n\n.fa-comment-exclamation::before {\n content: \"\\f4af\"; }\n\n.fa-pen-swirl::before {\n content: \"\\e214\"; }\n\n.fa-falafel::before {\n content: \"\\e40a\"; }\n\n.fa-circle-2::before {\n content: \"\\e0ef\"; }\n\n.fa-magnet::before {\n content: \"\\f076\"; }\n\n.fa-jar::before {\n content: \"\\e516\"; }\n\n.fa-gramophone::before {\n content: \"\\f8bd\"; }\n\n.fa-dice-d12::before {\n content: \"\\f6ce\"; }\n\n.fa-note-sticky::before {\n content: \"\\f249\"; }\n\n.fa-sticky-note::before {\n content: \"\\f249\"; }\n\n.fa-down::before {\n content: \"\\f354\"; }\n\n.fa-arrow-alt-down::before {\n content: \"\\f354\"; }\n\n.fa-hundred-points::before {\n content: \"\\e41c\"; }\n\n.fa-100::before {\n content: \"\\e41c\"; }\n\n.fa-paperclip-vertical::before {\n content: \"\\e3c2\"; }\n\n.fa-wind-warning::before {\n content: \"\\f776\"; }\n\n.fa-wind-circle-exclamation::before {\n content: \"\\f776\"; }\n\n.fa-location-pin-slash::before {\n content: \"\\f60c\"; }\n\n.fa-map-marker-slash::before {\n content: \"\\f60c\"; }\n\n.fa-face-sad-sweat::before {\n content: \"\\e38a\"; }\n\n.fa-bug-slash::before {\n content: \"\\e490\"; }\n\n.fa-cupcake::before {\n content: \"\\e402\"; }\n\n.fa-light-switch-off::before {\n content: \"\\e018\"; }\n\n.fa-toggle-large-off::before {\n content: \"\\e5b0\"; }\n\n.fa-pen-fancy-slash::before {\n content: \"\\e210\"; }\n\n.fa-truck-container::before {\n content: \"\\f4dc\"; }\n\n.fa-boot::before {\n content: \"\\f782\"; }\n\n.fa-arrow-up-from-water-pump::before {\n content: \"\\e4b6\"; }\n\n.fa-file-check::before {\n content: \"\\f316\"; }\n\n.fa-bone::before {\n content: \"\\f5d7\"; }\n\n.fa-cards-blank::before {\n content: \"\\e4df\"; }\n\n.fa-circle-3::before {\n content: \"\\e0f0\"; }\n\n.fa-bench-tree::before {\n content: \"\\e2e7\"; }\n\n.fa-keyboard-brightness-low::before {\n content: \"\\e1c1\"; }\n\n.fa-ski-boot-ski::before {\n content: \"\\e3cd\"; }\n\n.fa-brain-circuit::before {\n content: \"\\e0c6\"; }\n\n.fa-user-injured::before {\n content: \"\\f728\"; }\n\n.fa-block-brick-fire::before {\n content: \"\\e3dc\"; }\n\n.fa-firewall::before {\n content: \"\\e3dc\"; }\n\n.fa-face-sad-tear::before {\n content: \"\\f5b4\"; }\n\n.fa-sad-tear::before {\n content: \"\\f5b4\"; }\n\n.fa-plane::before {\n content: \"\\f072\"; }\n\n.fa-tent-arrows-down::before {\n content: \"\\e581\"; }\n\n.fa-exclamation::before {\n content: \"\\21\"; }\n\n.fa-arrows-spin::before {\n content: \"\\e4bb\"; }\n\n.fa-face-smile-relaxed::before {\n content: \"\\e392\"; }\n\n.fa-comment-xmark::before {\n content: \"\\f4b5\"; }\n\n.fa-comment-times::before {\n content: \"\\f4b5\"; }\n\n.fa-print::before {\n content: \"\\f02f\"; }\n\n.fa-turkish-lira-sign::before {\n content: \"\\e2bb\"; }\n\n.fa-try::before {\n content: \"\\e2bb\"; }\n\n.fa-turkish-lira::before {\n content: \"\\e2bb\"; }\n\n.fa-face-nose-steam::before {\n content: \"\\e382\"; }\n\n.fa-circle-waveform-lines::before {\n content: \"\\e12d\"; }\n\n.fa-waveform-circle::before {\n content: \"\\e12d\"; }\n\n.fa-dollar-sign::before {\n content: \"\\24\"; }\n\n.fa-dollar::before {\n content: \"\\24\"; }\n\n.fa-usd::before {\n content: \"\\24\"; }\n\n.fa-ferris-wheel::before {\n content: \"\\e174\"; }\n\n.fa-computer-speaker::before {\n content: \"\\f8b2\"; }\n\n.fa-skull-cow::before {\n content: \"\\f8de\"; }\n\n.fa-x::before {\n content: \"\\58\"; }\n\n.fa-magnifying-glass-dollar::before {\n content: \"\\f688\"; }\n\n.fa-search-dollar::before {\n content: \"\\f688\"; }\n\n.fa-users-gear::before {\n content: \"\\f509\"; }\n\n.fa-users-cog::before {\n content: \"\\f509\"; }\n\n.fa-person-military-pointing::before {\n content: \"\\e54a\"; }\n\n.fa-building-columns::before {\n content: \"\\f19c\"; }\n\n.fa-bank::before {\n content: \"\\f19c\"; }\n\n.fa-institution::before {\n content: \"\\f19c\"; }\n\n.fa-museum::before {\n content: \"\\f19c\"; }\n\n.fa-university::before {\n content: \"\\f19c\"; }\n\n.fa-circle-t::before {\n content: \"\\e124\"; }\n\n.fa-sack::before {\n content: \"\\f81c\"; }\n\n.fa-grid-2::before {\n content: \"\\e196\"; }\n\n.fa-camera-cctv::before {\n content: \"\\f8ac\"; }\n\n.fa-cctv::before {\n content: \"\\f8ac\"; }\n\n.fa-umbrella::before {\n content: \"\\f0e9\"; }\n\n.fa-trowel::before {\n content: \"\\e589\"; }\n\n.fa-horizontal-rule::before {\n content: \"\\f86c\"; }\n\n.fa-bed-front::before {\n content: \"\\f8f7\"; }\n\n.fa-bed-alt::before {\n content: \"\\f8f7\"; }\n\n.fa-d::before {\n content: \"\\44\"; }\n\n.fa-stapler::before {\n content: \"\\e5af\"; }\n\n.fa-masks-theater::before {\n content: \"\\f630\"; }\n\n.fa-theater-masks::before {\n content: \"\\f630\"; }\n\n.fa-file-gif::before {\n content: \"\\e645\"; }\n\n.fa-kip-sign::before {\n content: \"\\e1c4\"; }\n\n.fa-face-woozy::before {\n content: \"\\e3a2\"; }\n\n.fa-cloud-question::before {\n content: \"\\e492\"; }\n\n.fa-pineapple::before {\n content: \"\\e31f\"; }\n\n.fa-hand-point-left::before {\n content: \"\\f0a5\"; }\n\n.fa-gallery-thumbnails::before {\n content: \"\\e3aa\"; }\n\n.fa-circle-j::before {\n content: \"\\e112\"; }\n\n.fa-eyes::before {\n content: \"\\e367\"; }\n\n.fa-handshake-simple::before {\n content: \"\\f4c6\"; }\n\n.fa-handshake-alt::before {\n content: \"\\f4c6\"; }\n\n.fa-page-caret-up::before {\n content: \"\\e42a\"; }\n\n.fa-file-caret-up::before {\n content: \"\\e42a\"; }\n\n.fa-jet-fighter::before {\n content: \"\\f0fb\"; }\n\n.fa-fighter-jet::before {\n content: \"\\f0fb\"; }\n\n.fa-comet::before {\n content: \"\\e003\"; }\n\n.fa-square-share-nodes::before {\n content: \"\\f1e1\"; }\n\n.fa-share-alt-square::before {\n content: \"\\f1e1\"; }\n\n.fa-reflect-vertical::before {\n content: \"\\e665\"; }\n\n.fa-shield-keyhole::before {\n content: \"\\e248\"; }\n\n.fa-file-mp4::before {\n content: \"\\e649\"; }\n\n.fa-barcode::before {\n content: \"\\f02a\"; }\n\n.fa-bulldozer::before {\n content: \"\\e655\"; }\n\n.fa-plus-minus::before {\n content: \"\\e43c\"; }\n\n.fa-square-sliders-vertical::before {\n content: \"\\f3f2\"; }\n\n.fa-sliders-v-square::before {\n content: \"\\f3f2\"; }\n\n.fa-video::before {\n content: \"\\f03d\"; }\n\n.fa-video-camera::before {\n content: \"\\f03d\"; }\n\n.fa-message-middle::before {\n content: \"\\e1e1\"; }\n\n.fa-comment-middle-alt::before {\n content: \"\\e1e1\"; }\n\n.fa-graduation-cap::before {\n content: \"\\f19d\"; }\n\n.fa-mortar-board::before {\n content: \"\\f19d\"; }\n\n.fa-hand-holding-medical::before {\n content: \"\\e05c\"; }\n\n.fa-person-circle-check::before {\n content: \"\\e53e\"; }\n\n.fa-square-z::before {\n content: \"\\e288\"; }\n\n.fa-message-text::before {\n content: \"\\e1e6\"; }\n\n.fa-comment-alt-text::before {\n content: \"\\e1e6\"; }\n\n.fa-turn-up::before {\n content: \"\\f3bf\"; }\n\n.fa-level-up-alt::before {\n content: \"\\f3bf\"; }\n\n.sr-only,\n.fa-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0; }\n\n.sr-only-focusable:not(:focus),\n.fa-sr-only-focusable:not(:focus) {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0; }\n",".tykon::before {\n font-family: tykon, sans-serif !important;\n font-style: normal !important;\n font-weight: normal !important;\n font-variant: normal !important;\n text-transform: none !important;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.tykon-arrowdown::before {\n content: \"\\61\";\n}\n\n.tykon-arrowleft::before {\n content: \"\\62\";\n}\n\n.tykon-arrowright::before {\n content: \"\\63\";\n}\n\n.tykon-arrowup::before {\n content: \"\\64\";\n}\n\n.tykon-doublearrowdown::before {\n content: \"\\65\";\n}\n\n.tykon-filter::before {\n content: \"\\66\";\n}\n\n.tykon-graph1::before {\n content: \"\\67\";\n}\n\n.tykon-graph2::before {\n content: \"\\68\";\n}\n\n.tykon-label::before {\n content: \"\\69\";\n}\n\n.tykon-reload::before {\n content: \"\\6a\";\n}\n\n.tykon-select::before {\n content: \"\\6b\";\n}\n\n.tykon-target::before {\n content: \"\\6c\";\n}\n\n.tykon-undo::before {\n content: \"\\6d\";\n}\n\n.tykon-deployment::before {\n content: \"\\6e\";\n}\n\n.tykon-team::before {\n content: \"\\6f\";\n}\n\n.tykon-overview::before {\n content: \"\\70\";\n}\n\n.tykon-loadout::before {\n content: \"\\71\";\n}\n\n.tykon-entitlement::before {\n content: \"\\72\";\n}\n\n.tykon-users::before {\n content: \"\\73\";\n}\n\n.tykon-arrowsort::before {\n content: \"\\57\";\n}\n\n.tykon-check::before {\n content: \"\\56\";\n}\n\n.tykon-copy::before {\n content: \"\\43\";\n}\n\n.tykon-delete::before {\n content: \"\\55\";\n}\n\n.tykon-download::before {\n content: \"\\4c\";\n}\n\n.tykon-draft::before {\n content: \"\\44\";\n}\n\n.tykon-edit::before {\n content: \"\\45\";\n}\n\n.tykon-graphq2::before {\n content: \"\\68\";\n}\n\n.tykon-help::before {\n content: \"\\3f\";\n}\n\n.tykon-link::before {\n content: \"\\52\";\n}\n\n.tykon-lock1::before {\n content: \"\\59\";\n}\n\n.tykon-lock2::before {\n content: \"\\5A\";\n}\n\n.tykon-notifications::before {\n content: \"\\4E\";\n}\n\n.tykon-plus::before {\n content: \"\\2B\";\n}\n\n.tykon-profile::before {\n content: \"\\50\";\n}\n\n.tykon-search::before {\n content: \"\\4F\";\n}\n\n.tykon-settings::before {\n content: \"\\53\";\n}\n\n.tykon-warning::before {\n content: \"\\21\";\n}\n\n.tykon-x::before {\n content: \"\\58\";\n}\n\n.tykon-waiting::before {\n content: \"\\54\";\n}\n\n.tykon-fullscreen::before {\n content: \"\\e000\";\n}\n\n.tykon-fullscreen-exit::before {\n content: \"\\e001\";\n}\n\n.tykon-time::before {\n content: \"\\74\";\n}\n","h1, h2, h3, h4, h5, h6 {\n margin-block-end: var(--headings-margin-bottom);\n font-family: var(--headings-font-family);\n font-weight: var(--headings-font-weight);\n color: var(--headings-color);\n}\n\nlabel {\n display: inline-block;\n max-inline-size: 100%;\n margin-block-end: 5px;\n color: var(--label-color);\n}\n\nh1 {\n font-size: var(--xxl-font-size);\n line-height: var(--xxl-line-height);\n}\n\nh2 {\n font-size: var(--xl-font-size);\n line-height: var(--xl-line-height);\n}\n\nh3 {\n font-size: var(--lg-font-size);\n line-height: var(--lg-line-height);\n}\n\nh4 {\n font-size: var(--md-font-size);\n line-height: var(--md-line-height);\n}\n\nh5 {\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n}\n\nh6 {\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n}\n\np,\nlabel {\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-regular);\n\n a {\n font-size: var(--sm-font-size);\n text-decoration: underline;\n }\n}\n\nstrong {\n font-family: var(--font-family-bold);\n}\n\na:not(.tyk-button) {\n cursor: pointer;\n color: var(--text-color);\n font-family: var(--font-family-regular);\n\n &.link--bold {\n font-family: var(--font-family-bold);\n }\n\n + a {\n margin-inline-start: 5px;\n }\n\n i {\n font-size: 9px\n }\n}\n\n.font-family-regular {\n font-family: var(--font-family-regular);\n}\n\n.font-family-medium {\n font-family: var(--font-family-medium);\n}\n\n.font-family-bold {\n font-family: var(--font-family-bold);\n}\n\n.heading-font-family-regular {\n font-family: var(--headings-font-family-regular);\n}\n\n.heading-font-family-medium {\n font-family: var(--headings-font-family-medium);\n}\n\n.heading-font-family-bold {\n font-family: var(--headings-font-family-bold);\n}\n\n.text--info {\n color: var(--color-info-base);\n}\n\n.text--medium {\n font-family: var(--font-family-medium);\n}\n\n.text--bold {\n font-family: var(--font-family-bold);\n}\n\n.text--uppercase {\n text-transform: uppercase;\n}\n\n.text--ellipsis {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.text--underline {\n text-decoration: underline;\n}\n\n.text--default-light {\n color: var(--color-default-light) !important;\n}\n\n.text--default {\n color: var(--color-default-base) !important;\n}\n\n.text--primary {\n color: var(--color-primary-base) !important;\n}\n\n.text--danger {\n color: var(--color-danger-base) !important;\n}\n\n.text--success {\n color: var(--color-success-base) !important;\n}\n\n.text--warning {\n color: var(--color-warning-base) !important;\n}\n\ntd.text-ellipsis {\n max-inline-size: 250px;\n}\n\n.section-title {\n font-family: var(--headings-font-family-bold);\n margin-block-end: 5px;\n\n .tyk-icon {\n margin-inline-start: 5px;\n }\n}\n\n.sub-section-title {\n margin-block-end: 5px;\n font-family: var(--font-family-medium);\n font-size: var(--md-font-size);\n line-height: var(--md-line-height);\n\n .tyk-icon {\n margin-inline-start: 5px;\n }\n}\n\n.section-group-title {\n margin-block-end: 5px;\n font-family: var(--font-family-bold);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n text-transform: uppercase;\n\n .tyk-icon {\n margin-inline-start: 5px;\n }\n}\n",".tyk-form-section__title {\n font-size: var(--base-font-size);\n margin-block: var(--spacing-xs) var(--spacing-base);\n margin-inline: 0;\n}\n\n.tyk-form-section__title--light {\n color: var(--color-background-dark);\n}\n\n.tyk-form-group {\n margin-block-end: var(--form-group-margin-bottom);\n\n &.has-error > .tyk-form-control__wrapper > .tyk-form-control,\n &.has-error > .tyk-form-control__wrapper > .tyk-input-group > .tyk-form-control,\n &.has-error .tyk-file-input__wrapper > .tyk-form-control {\n border: var(--error-border);\n border-inline-start: var(--error-border-left);\n outline: none;\n\n &:focus {\n border-inline-start: 2px solid var(--color-danger-dark);\n border-color: var(--color-danger-dark);\n outline: none;\n }\n }\n\n label {\n font-family: var(--font-family-medium);\n }\n}\n\n.tyk-form-group--inline {\n align-items: stretch;\n display: flex;\n flex-wrap: nowrap;\n\n .tyk-form-control__wrapper {\n flex: 1;\n }\n\n label {\n display: flex;\n white-space: nowrap;\n margin-inline-end: var(--spacing-md);\n margin-block-start: 14px;\n }\n\n input,\n select {\n display: flex;\n }\n\n .tyk-form-control__help-block {\n display: flex;\n margin-inline-start: auto;\n }\n}\n\n.tyk-form-group--default {\n color: var(--text-color);\n\n > .tyk-form-control__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-file-input__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-input-group > .tyk-form-control {\n border: var(--general-border-width) solid var(--form-default-color);\n color: var(--text-color);\n\n &[disabled] {\n border: var(--general-border-width) solid var(--form-default-color);\n background-color: var(--form-control-disabled-background-color);\n color: var(--form-control-disabled-color);\n cursor: not-allowed;\n\n + .tyk-input-group__addon {\n background-color: var(--form-control-disabled-background-color);\n }\n }\n\n &::placeholder {\n opacity: 0.8;\n }\n\n &:-ms-input-placeholder {\n opacity: 0.8;\n }\n }\n\n &.tyk-form-group--addon-left {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-default-color);\n border-inline-start: 2px solid var(--form-default-color);\n color: var(--text-color);\n }\n }\n\n &.tyk-form-group--addon-right {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-default-color);\n border-inline-end: 2px solid var(--form-default-color);\n color: var(--text-color);\n }\n }\n}\n\n.tyk-form-group--primary {\n color: var(--text-color);\n\n > .tyk-form-control__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-file-input__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-input-group > .tyk-form-control {\n border: var(--general-border-width) solid var(--form-primary-color);\n color: var(--text-color);\n\n &[disabled] {\n border: var(--general-border-width) solid var(--form-primary-color);\n background-color: var(--form-control-disabled-background-color);\n color: var(--form-control-disabled-color);\n cursor: not-allowed;\n\n + .tyk-input-group__addon {\n background-color: var(--form-control-disabled-background-color);\n }\n }\n\n &::placeholder {\n opacity: 0.8;\n }\n\n &:-ms-input-placeholder {\n opacity: 0.8;\n }\n }\n\n &.tyk-form-group--addon-left {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-primary-color);\n border-inline-start: 2px solid var(--form-primary-color);\n color: var(--form-primary-color);\n }\n }\n\n &.tyk-form-group--addon-right {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-primary-color);\n border-inline-end: 2px solid var(--form-primary-color);\n color: var(--form-primary-color);\n }\n }\n}\n\n.tyk-form-group--success {\n color: var(--text-color);\n\n > .tyk-form-control__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-file-input__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-input-group > .tyk-form-control {\n border: var(--general-border-width) solid var(--form-success-color);\n color: var(--text-color);\n\n &[disabled] {\n border: var(--general-border-width) solid var(--form-success-color);\n background-color: var(--form-control-disabled-background-color);\n color: var(--form-control-disabled-color);\n cursor: not-allowed;\n\n + .tyk-input-group__addon {\n background-color: var(--form-control-disabled-background-color);\n }\n }\n\n &::placeholder {\n opacity: 0.8;\n }\n\n &:-ms-input-placeholder {\n opacity: 0.8;\n }\n }\n\n &.tyk-form-group--addon-left {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-success-color);\n border-inline-start: 2px solid var(--form-success-color);\n color: var(--form-success-color);\n }\n }\n\n &.tyk-form-group--addon-right {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-success-color);\n border-inline-end: 2px solid var(--form-success-color);\n color: var(--form-success-color);\n }\n }\n}\n\n.tyk-form-group--rounded-corners {\n &.has-error > .tyk-form-control__wrapper > .tyk-form-control {\n border-inline-start: var(--error-border);\n\n &:focus {\n border-inline-start: var(--error-border);\n outline: none;\n }\n }\n\n .tyk-form-control {\n border-radius: var(--general-border-radius);\n }\n}\n\n.tyk-form-group--addon-right input {\n border-inline-end: 0 !important;\n padding-inline-end: 0;\n}\n\n.tyk-form-group--addon-left input {\n border-inline-start: 0 !important;\n padding-inline-start: 0;\n}\n\n.tyk-form-group--rounded-corners.tyk-form-group--addon-right {\n input {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n\n .tyk-input-group__addon {\n background: var(--form-control-addon-background-color);\n border-start-end-radius: var(--general-border-radius);\n border-end-end-radius: var(--general-border-radius);\n color: var(--text-color);\n }\n}\n\n.tyk-form-group--rounded-corners.tyk-form-group--addon-left {\n input {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n border-inline-start: 0 !important;\n }\n\n .tyk-input-group__addon {\n background: var(--form-control-addon-background-color);\n border-start-start-radius: var(--general-border-radius);\n border-end-start-radius: var(--general-border-radius);\n color: var(--text-color);\n }\n}\n\n.tyk-form-control__error-message {\n font-family: var(--font-family-regular);\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n margin-block-start: 5px;\n padding: var(--error-message-padding);\n position: relative;\n\n &::before {\n content: '!';\n background: var(--color-danger-base);\n color: white;\n font-family: var(--font-family-bold);\n border-radius: 8px;\n display: inline-block;\n margin-inline-end: 5px;\n padding-block: 0;\n padding-inline: 7px;\n }\n}\n\n.tyk-input-group {\n align-items: center;\n display: flex;\n outline: none;\n}\n\n.tyk-input-group__addon {\n align-items: center;\n background-color: var(--form-control-addon-background-color);\n border: var(--form-control-border);\n display: flex;\n block-size: var(--form-control-height);\n padding-block: var(--form-control-addon-padding-top) var(--form-control-addon-padding-bottom);\n padding-inline: var(--form-control-addon-padding-left) var(--form-control-addon-padding-right);\n\n &:first-child {\n border-inline-end: 0;\n }\n\n &:last-child {\n border-inline-start: 0;\n }\n}\n\n.tyk-form-control {\n font-family: var(--font-family-medium);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n border: var(--form-control-border);\n background-color: white;\n color: var(--text-color);\n display: block;\n block-size: var(--form-control-height);\n padding-block: var(--form-control-padding-top) var(--form-control-padding-bottom);\n padding-inline: var(--form-control-padding-left) var(--form-control-padding-right);\n transition: all .2s linear;\n inline-size: 100%;\n\n &[disabled] {\n background-color: var(--form-control-disabled-background-color);\n\n .tyk-input-group__addon {\n background-color: var(--form-control-disabled-background-color);\n }\n\n cursor: not-allowed;\n }\n\n &::placeholder {\n font-family: var(--form-control-placeholder-font-family);\n color: var(--form-control-placeholder-color);\n }\n\n &:focus,\n &:active {\n outline: none;\n border: var(--form-control-border-focus) !important;\n\n + .tyk-input-group__addon {\n border: var(--form-control-border-focus) !important;\n border-inline-start: none !important;\n }\n }\n}\n\n.tyk-form-control__help-block {\n color: var(--help-block-color);\n font-style: var(--help-block-font-style);\n font-family: var(--font-family-regular);\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n padding: var(--help-block-padding);\n margin-block: 5px 0;\n margin-inline: 0;\n}\n\nselect {\n border-radius: 0;\n appearance: none;\n}\n\n.inline-form-wrapper {\n align-items: center;\n display: flex;\n inline-size: 100%;\n\n .inline-form {\n inline-size: 100%;\n }\n\n > button {\n margin-inline-start: 10px;\n margin-block-end: var(--spacing-base);\n }\n}\n\n.tyk-checkbox,\n.tyk-radio {\n margin-block: 10px;\n margin-inline: 0;\n\n label {\n font-family: var(--font-family-medium);\n }\n\n input {\n margin-block: 0;\n margin-inline: 0 5px;\n }\n}\n\n.tyk-checkbox--inline,\n.tyk-radio--inline {\n display: inline-flex;\n margin-inline-start: var(--spacing-base);\n\n &:first-child {\n margin-inline-start: 0;\n }\n}\n\n.tyk-inline-form {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n\n .tyk-form-group {\n flex: 1;\n margin-inline-start: var(--spacing-md);\n min-inline-size: 200px;\n\n &:first-child {\n margin-inline-start:0\n }\n }\n\n > .tyk-button {\n margin-inline-start: var(--spacing-md);\n margin-block-end: var(--spacing-base);\n }\n}\n",":root {\n --accordion-item-header-padding-y: var(--spacing-base);\n --accordion-item-header-padding-x: var(--spacing-base);\n --accordion-item-header-font-size: var(--base-font-size);\n --accordion-item-outside-trigger-width: var(--spacing-xxl);\n}\n\n.tyk-accordion__item {\n display: grid;\n}\n\n.tyk-accordion__item--trigger-position-left {\n grid-template-columns: var(--accordion-item-outside-trigger-width) auto;\n grid-template-areas:\n \"trigger header\"\n \"trigger content\";\n}\n\n.tyk-accordion__item--trigger-position-right {\n grid-template-columns: auto var(--accordion-item-outside-trigger-width);\n grid-template-areas:\n \"header trigger\"\n \"content trigger\";\n}\n\n.tyk-accordion__item--trigger-in-header {\n grid-template-columns: auto;\n grid-template-areas:\n \"header\"\n \"content\";\n}\n\n.tyk-accordion__trigger-wrapper {\n grid-area: trigger;\n display: flex;\n align-items: flex-start;\n justify-content: center;\n\n .tyk-icon {\n margin-inline: auto;\n }\n}\n\n.tyk-accordion__trigger,\n.tyk-accordion__item-header > button {\n background: none;\n border: none;\n cursor: pointer;\n display: flex;\n font-size: var(--accordion-item-header-font-size);\n outline: none;\n padding-inline: var(--accordion-item-header-padding-x);\n padding-block: var(--accordion-item-header-padding-y);\n inline-size: 100%;\n\n .tyk-icon {\n margin-inline-start: auto;\n }\n}\n\n.tyk-accordion__item-header {\n grid-area: header;\n}\n\n.tyk-accordion__trigger--disabled {\n color: var(--color-background-base);\n}\n\n.tyk-accordion__item-header.tyk-accordion__arrow-trigger {\n align-items: center;\n display: flex;\n\n > div {\n flex: 1;\n }\n\n > button {\n margin-inline-start: auto;\n inline-size: auto;\n }\n}\n\n.tyk-accordion__item-content {\n grid-area: content;\n}\n",":root {\n --button-font-family: var(--font-family-bold);\n --button-border-radius: var(--spacing-md);\n\n --padding-y-button-sm: 3px;\n --padding-x-button-sm: var(--spacing-base);\n --padding-y-button-md: 8px;\n --padding-x-button-md: 23px;\n --padding-y-button-lg: 13px;\n --padding-x-button-lg: 23px;\n\n --line-height-button-sm: var(--xs-line-height);\n --line-height-button-md: var(--md-line-height);\n --line-height-button-lg: var(--lg-line-height);\n\n --button-default-color: var(--color-default-base);\n --button-default-hover-color: var(--color-default-dark);\n --button-default-gradient-start-color: var(--color-default-base);\n --button-default-gradient-end-color: var(--color-default-dark);\n\n --button-primary-color: var(--color-default-base-light);\n --button-primary-hover-color: var(--color-default-dark);\n --button-primary-text-color: white;\n --button-primary-gradient-start-color: var(--color-primary-base);\n --button-primary-gradient-end-color: var(--color-primary-dark);\n\n --button-success-color: var(--color-success-base);\n --button-success-hover-color: var(--color-success-dark);\n --button-success-gradient-start-color: var(--color-success-base);\n --button-success-gradient-end-color: var(--color-success-dark);\n\n --button-danger-color: var(--color-danger-base);\n --button-danger-hover-color: var(--color-danger-dark);\n --button-danger-gradient-start-color: var(--color-danger-base);\n --button-danger-gradient-end-color: var(--color-danger-dark);\n\n --button-warning-color: var(--color-warning-base);\n --button-warning-font-color: white;\n --button-warning-gradient-start-color: var(--color-warning-base);\n --button-warning-gradient-end-color: var(--color-warning-light);\n\n --button-info-color: var(--color-info-base);\n --button-info-font-color: var(--text-color);\n --button-info-gradient-start-color: var(--color-info-base);\n --button-info-gradient-end-color: var(--color-info-light);\n\n --button-icon-only-background-hover: var(--color-background-light);\n}\n\n.tyk-button {\n --button-padding-y: var(--padding-y-button-md);\n --button-padding-x: var(--padding-x-button-md);\n --button-font-size: var(--sm-font-size);\n --button-line-height: var(--line-height-button-md);\n\n background-color: transparent;\n border: none;\n color: white;\n cursor: pointer;\n display: inline-block;\n font-family: var(--button-font-family);\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n transition: all .2s linear;\n user-select: none;\n vertical-align: middle;\n white-space: nowrap;\n\n + .tyk-button,\n + .tyk-dropdown,\n + .tyk-toggle {\n margin-inline-start: var(--spacing-sm);\n }\n\n span + i {\n margin-inline-start: var(--spacing-sm);\n }\n\n i + span {\n margin-inline-start: var(--spacing-sm);\n }\n\n &.disabled {\n cursor: not-allowed;\n opacity: 0.7;\n }\n\n &:hover {\n color: white;\n text-decoration: none;\n }\n\n &:focus {\n outline: none;\n }\n}\n\n.tyk-button--white {\n --button-variant-background: white;\n --button-variant-border: transparent;\n --button-variant-color: var(--color-default-base);\n --button-variant-hover-background: var(--color-background-dark);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--primary {\n --button-variant-background: var(--button-primary-color);\n --button-variant-border: var(--button-primary-color);\n --button-variant-color: var(--button-primary-text-color);\n --button-variant-hover-background: var(--button-primary-hover-color);\n --button-variant-hover-color: var(--button-primary-text-color);\n}\n\n.tyk-button--success {\n --button-variant-background: var(--button-success-color);\n --button-variant-border: var(--button-success-color);\n --button-variant-color: white;\n --button-variant-hover-background: var(--button-success-hover-color);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--danger {\n --button-variant-background: var(--button-danger-color);\n --button-variant-border: var(--button-danger-color);\n --button-variant-color: white;\n --button-variant-hover-background: var(--button-danger-hover-color);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--warning {\n --button-variant-background: var(--button-warning-color);\n --button-variant-border: transparent;\n --button-variant-color: var(--button-warning-font-color);\n --button-variant-hover-background: color-mix(in srgb, var(--button-variant-background), black 15%);\n --button-variant-hover-color: var(--button-warning-font-color);\n}\n\n.tyk-button--info {\n --button-variant-background: var(--button-info-color);\n --button-variant-border: var(--button-info-color);\n --button-variant-color: white;\n --button-variant-hover-background: color-mix(in srgb, var(--button-variant-background), black 15%);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--default {\n --button-variant-background: var(--button-default-color);\n --button-variant-border: var(--button-default-color);\n --button-variant-color: white;\n --button-variant-hover-background: var(--button-default-hover-color);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--white,\n.tyk-button--primary,\n.tyk-button--success,\n.tyk-button--danger,\n.tyk-button--warning,\n.tyk-button--info,\n.tyk-button--default {\n background-color: var(--button-variant-background);\n color: var(--button-variant-color);\n border: var(--general-border-width) solid var(--button-variant-border);\n\n &:hover {\n background-color: var(--button-variant-hover-background);\n color: var(--button-variant-hover-color);\n }\n}\n\n.tyk-button--primary-link {\n --button-variant-link-color: var(--button-primary-color);\n}\n\n.tyk-button--success-link {\n --button-variant-link-color: var(--button-success-color);\n}\n\n.tyk-button--danger-link {\n --button-variant-link-color: var(--button-danger-color);\n}\n\n.tyk-button--warning-link {\n --button-variant-link-color: var(--button-warning-color);\n}\n\n.tyk-button--info-link {\n --button-variant-link-color: var(--button-info-color);\n}\n\n.tyk-button--default-link {\n --button-variant-link-color: var(--text-color);\n}\n\n.tyk-button--primary-link,\n.tyk-button--success-link,\n.tyk-button--danger-link,\n.tyk-button--warning-link,\n.tyk-button--info-link,\n.tyk-button--default-link {\n background-color: transparent;\n border: var(--general-border-width) solid transparent;\n color: var(--button-variant-link-color);\n\n &:hover {\n background-color: transparent;\n color: var(--button-variant-link-color);\n border-color: var(--button-variant-link-color);\n text-decoration: underline;\n }\n}\n\n.tyk-button--primary-outline {\n --button-variant-outline-border: var(--button-primary-color);\n --button-variant-outline-color: var(--button-primary-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--success-outline {\n --button-variant-outline-border: var(--button-success-color);\n --button-variant-outline-color: var(--button-success-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--danger-outline {\n --button-variant-outline-border: var(--button-danger-color);\n --button-variant-outline-color: var(--button-danger-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--warning-outline {\n --button-variant-outline-border: var(--button-warning-color);\n --button-variant-outline-color: var(--button-warning-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--info-outline {\n --button-variant-outline-border: var(--button-info-color);\n --button-variant-outline-color: var(--button-info-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--default-outline {\n --button-variant-outline-border: var(--button-default-color);\n --button-variant-outline-color: var(--button-default-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--primary-outline,\n.tyk-button--success-outline,\n.tyk-button--danger-outline,\n.tyk-button--warning-outline,\n.tyk-button--info-outline,\n.tyk-button--default-outline {\n border: var(--general-border-width) solid var(--button-variant-outline-border);\n background-color: transparent;\n color: var(--button-variant-outline-color);\n\n &:hover {\n background-color: var(--button-variant-outline-border);\n color: var(--button-variant-outline-hover-color);\n }\n\n &.disabled {\n color: var(--button-variant-outline-border);\n\n &:hover {\n background-color: transparent;\n color: var(--button-variant-outline-border);\n }\n }\n}\n\n.tyk-button--primary-gradient {\n --button-variant-gradient-left-color: var(--button-primary-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-primary-gradient-end-color);\n}\n\n.tyk-button--success-gradient {\n --button-variant-gradient-left-color: var(--button-success-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-success-gradient-end-color);\n}\n\n.tyk-button--danger-gradient {\n --button-variant-gradient-left-color: var(--button-danger-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-danger-gradient-end-color);\n}\n\n.tyk-button--warning-gradient {\n --button-variant-gradient-left-color: var(--button-warning-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-warning-gradient-end-color);\n --button-variant-gradient-color: var(--button-warning-font-color);\n}\n\n.tyk-button--info-gradient {\n --button-variant-gradient-left-color: var(--button-info-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-info-gradient-end-color);\n --button-variant-gradient-color: var(--button-info-font-color);\n}\n\n.tyk-button--default-gradient {\n --button-variant-gradient-left-color: var(--button-default-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-default-gradient-end-color);\n}\n\n.tyk-button--primary-gradient,\n.tyk-button--success-gradient,\n.tyk-button--danger-gradient,\n.tyk-button--warning-gradient,\n.tyk-button--info-gradient,\n.tyk-button--default-gradient {\n border-image: linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color)) 0 round;\n background: transparent linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: var(--button-variant-gradient-color, white);\n\n &:hover,\n &:active,\n &:active:focus {\n border-image: linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color)) 0 round;\n background: transparent linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color));\n background-position: 100% 0;\n background-size: 200% auto;\n background-clip: border-box;\n\n &.disabled {\n border-image: linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color)) 0 round;\n background: transparent linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: var(--button-variant-gradient-color, white);\n }\n }\n}\n\n.tyk-button--sm {\n --button-padding-y: var(--padding-y-button-sm);\n --button-padding-x: var(--padding-x-button-sm);\n --button-font-size: var(--xs-font-size);\n --button-line-height: var(--xs-line-height);\n}\n\n.tyk-button--md {\n --button-padding-y: var(--padding-y-button-md);\n --button-padding-x: var(--padding-x-button-md);\n --button-font-size: var(--sm-font-size);\n --button-line-height: var(--sm-line-height);\n}\n\n.tyk-button--lg {\n --button-padding-y: var(--padding-y-button-lg);\n --button-padding-x: var(--padding-x-button-lg);\n --button-font-size: var(--md-font-size);\n --button-line-height: var(--line-height-button-md);\n}\n\n.tyk-button,\n.tyk-button--sm,\n.tyk-button--md,\n.tyk-button--lg {\n padding-block: var(--button-padding-y);\n padding-inline: var(--button-padding-x);\n font-size: var(--button-font-size);\n line-height: var(--button-line-height);\n border-radius: var(--button-border-radius);\n}\n\n.tyk-button--icon-only {\n border-radius: var(--general-border-radius);\n padding: 0;\n line-height: var(--spacing-md);\n inline-size: 24px;\n\n &:hover {\n border-radius: var(--general-border-radius);\n }\n}\n\n.tyk-button--fit {\n block-size: auto;\n inline-size: auto;\n line-height: normal;\n}\n\n.tyk-button--no-style {\n background: transparent;\n border: none;\n color: var(--text-color);\n\n &:hover {\n background: transparent;\n border: none;\n color: var(--text-color);\n }\n}\n",".tyk-button-group__wrapper {\n display: inline-block;\n position: relative;\n vertical-align: middle;\n\n label {\n font-family: var(--font-family-medium);\n }\n\n + .tyk-button,\n + .tyk-dropdown,\n + .tyk-toggle,\n + .tyk-button-group__wrapper {\n margin-inline-start: var(--spacing-sm);\n }\n\n .tyk-button-group {\n display: flex;\n\n > .tyk-button-group:not(:first-child) {\n > .tyk-button {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n }\n\n > .tyk-button-group:not(:last-child) {\n > .tyk-button {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n }\n\n .tyk-button {\n border-radius: 0;\n\n + .tyk-button {\n margin-inline-start: 0;\n }\n\n + .tyk-dropdown {\n margin-inline-start: 0;\n }\n\n &:first-child {\n border-start-start-radius: var(--spacing-md);\n border-end-start-radius: var(--spacing-md);\n }\n\n &:last-child {\n border-start-end-radius: var(--spacing-md);\n border-end-end-radius: var(--spacing-md);\n\n &.tyk-button--icon-only {\n inline-size: 42px;\n }\n }\n }\n }\n}\n",".tyk-card {\n background-color: white;\n border: 1px solid var(--color-background-base);\n border-radius: 8px;\n box-shadow: 2px 2px 3px var(--color-background-base);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.tyk-card__header {\n align-items: center;\n display: flex;\n font-family: var(--font-inter-regular);\n font-size: var(--sm-font-size);\n padding-block: var(--spacing-base) 0;\n padding-inline: var(--spacing-base);\n}\n\n.tyk-card__header-right {\n margin-inline-start: auto;\n}\n\n.tyk-card__title-group {\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: center;\n\n .tyk-card__title-icon {\n align-items: center;\n display: flex;\n inline-size: 42px;\n block-size: 42px;\n justify-content: center;\n margin-inline-end: 10px;\n grid-row: span 2;\n }\n}\n\n.tyk-card__title {\n font-family: var(--font-inter-bold);\n font-size: var(--lg-font-size);\n display: -webkit-box;\n -webkit-box-orient: vertical;\n overflow: hidden;\n margin: 0;\n text-overflow: ellipsis;\n}\n\n.tyk-card__title--max-1-lines {\n -webkit-line-clamp: 1;\n}\n\n.tyk-card__title--max-2-lines {\n -webkit-line-clamp: 2;\n}\n\n.tyk-card__sub-title {\n font-family: var(--font-inter-medium);\n font-size: var(--xs-font-size);\n margin: 0;\n}\n\n.tyk-card__title-group + .tyk-card__summary,\n.tyk-card__sub-title + .tyk-card__summary,\n.tyk-card__title + .tyk-card__summary {\n margin-block-start: var(--spacing-sm);\n}\n\n.tyk-card__summary {\n color: var(--text-color);\n font-family: var(--font-inter-regular);\n font-size: var(--sm-font-size);\n display: -webkit-box;\n -webkit-box-orient: vertical;\n overflow: hidden;\n margin: 0;\n text-overflow: ellipsis;\n}\n\n.tyk-card__summary--max-1-lines {\n -webkit-line-clamp: 1;\n}\n\n.tyk-card__summary--max-2-lines {\n -webkit-line-clamp: 2;\n}\n\n.tyk-card__summary--max-3-lines {\n -webkit-line-clamp: 3;\n}\n\n.tyk-card__summary--max-4-lines {\n -webkit-line-clamp: 4;\n}\n\n.tyk-card__summary--max-5-lines {\n -webkit-line-clamp: 5;\n}\n\n.tyk-card__body {\n display: flex;\n flex: 1 0 auto;\n flex-grow: 1;\n padding: var(--spacing-base);\n}\n\n.tyk-card__body--align-top {\n align-items: flex-start;\n}\n\n.tyk-card__body--align-center {\n align-items: center;\n}\n\n.tyk-card__body--align-bottom {\n align-items: flex-end;\n}\n\n.tyk-card__footer {\n display: flex;\n justify-content: end;\n border-block-start: 1px solid var(--color-background-base);\n padding: var(--spacing-base);\n}",".tyk-chart__wrapper {\n position: relative;\n}\n\n.tyk-chart--no-data,\n.tyk-chart--loading-chart {\n filter: blur(var(--spacing-sm));\n}\n",".collapse-exit,\n.collapse-exit-active,\n.collapse-exit-done {\n block-size: 0;\n}\n\n.collapse-wrapper {\n overflow: hidden;\n transition: all .2s;\n}\n\n.collapse-horizontal-exit,\n.collapse-horizontal-exit-active,\n.collapse-horizontal-exit-done {\n inline-size: 0;\n}\n\n.collapse-horizontal-enter,\n.collapse-horizontal-enter-active,\n.collapse-horizontal-enter-done {\n inline-size: 100%;\n}\n",".tyk-copy-to-clipboard {\n position: absolute;\n inset-inline-start: -1000px;\n inset-block-start: -1000px;\n}",":root {\n --fixed-wrapper-top: 0;\n --fixed-wrapper-left: 0;\n --fixed-wrapper-right: 0;\n}\n\n.tyk-fixed-wrapper {\n inset-inline-start: var(--fixed-wrapper-left);\n inset-inline-end: var(--fixed-wrapper-right);\n position: sticky;\n inset-block-start: var(--fixed-wrapper-top);\n z-index: 8;\n}\n\n.tyk-fixed-wrapper--scrolled {\n box-shadow: 2px 2px 5px rgba(0 0 0 / 10%);\n}\n",".floating-container {\n position: fixed;\n inset-block-start: -9999px;\n overflow: auto;\n z-index: var(--modal-z-index, 1080);\n}\n\n.floating-container__content-wrapper {\n block-size: 100%;\n}",".tyk-icon {\n + .tyk-icon {\n margin-inline-start: var(--spacing-sm);\n }\n}\n",".tyk-infinite-scroller {\n block-size: 100%;\n overflow: hidden;\n position: relative;\n\n .loading {\n background: linear-gradient(180deg, rgba(255 255 255 / 0%), rgba(255 255 255 / 100%));\n justify-content: center;\n display: flex;\n inset-inline: 0;\n inset-block-start: auto;\n inset-block-end: 0;\n padding-block: var(--spacing-base);\n padding-inline: 0;\n inline-size: 100%;\n }\n}\n\n.tyk-infinite-scroller__wrapper {\n block-size: 100%;\n overflow-y: auto;\n}\n",".tyk-info-note {\n border-radius: 0;\n position: relative;\n\n p + p {\n margin-block-start: var(--spacing-base);\n }\n\n &::after {\n content: '';\n border-style: solid;\n border-width: 0 var(--spacing-md) var(--spacing-md) 0;\n border-color: transparent var(--color-info-base) transparent transparent;\n block-size: 0;\n position: absolute;\n inset-inline-end: 0;\n inset-block-start: 0;\n inline-size: 0;\n }\n\n .tyk-message {\n border-radius: 0;\n padding-block: 40px;\n }\n}\n",".tyk-loading__wrapper {\n background: rgba(255 255 255 / 60%);\n position: absolute;\n inset: 0;\n z-index: 99;\n}\n\n.loader-wrapper {\n min-block-size: 100px;\n position: relative;\n}\n\n.loading {\n position: absolute;\n inset-block-start: calc(50% - var(--spacing-sm));\n inset-inline-start: 50%;\n\n &.relative {\n inset-inline-start: auto;\n padding: 25px;\n position: relative;\n text-align: center;\n inset-block-start: auto;\n inline-size: 100%;\n }\n}\n\n.loading-bar {\n display: inline-block;\n inline-size: 4px;\n block-size: var(--spacing-md);\n border-radius: 4px;\n animation: loading 1s ease-in-out infinite;\n margin-inline-start: 2px;\n}\n\n.loading-bar:nth-child(1) {\n animation-delay: 0;\n background-color: var(--color-success-base);\n opacity: 1;\n}\n\n.loading-bar:nth-child(2) {\n animation-delay: 0.09s;\n background-color: var(--color-success-base);\n opacity: 0.80;\n}\n\n.loading-bar:nth-child(3) {\n animation-delay: .18s;\n background-color: var(--color-success-base);\n opacity: 0.60;\n}\n\n.loading-bar:nth-child(4) {\n animation-delay: .27s;\n background-color: var(--color-success-base);\n opacity: 0.40;\n}\n\n@keyframes loading {\n 0% {\n transform: scale(1);\n }\n\n 20% {\n transform: scale(1, 2.2);\n }\n\n 40% {\n transform: scale(1);\n }\n}\n",".tyk-list {\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n font-size: var(--sm-font-size);\n list-style-type: none;\n margin: 0;\n max-block-size: 191px;\n padding: 0;\n overflow: auto;\n\n li {\n border-block-end: 1px solid var(--color-default-light);\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-md);\n font-family: var(--font-family-medium);\n\n &.tyk-list__item--selected {\n background-color: var(--color-default-light);\n }\n\n &:last-child {\n border: none;\n }\n }\n}\n\n.tyk-list--with-inline-label {\n display: flex;\n\n > label {\n margin-inline-end: var(--spacing-md);\n }\n}\n\n.tyk-list--default {\n border-color: var(--color-default-light);\n}\n\n.tyk-list--primary {\n border-color: var(--color-primary-base);\n\n li {\n border-color: var(--color-primary-light);\n color: var(--text-color);\n\n &.tyk-list__item--selected {\n background-color: var(--color-primary-light);\n }\n }\n}\n\n.tyk-list--primary-light {\n border-color: var(--color-primary-light);\n\n li {\n border-color: var(--color-primary-light);\n color: var(--text-color);\n\n &.tyk-list__item--selected {\n background-color: var(--color-primary-light);\n }\n }\n}\n\n.tyk-list--success {\n border-color: var(--color-success-base);\n color: var(--color-success-base);\n\n li {\n border-color: var(--color-success-base);\n\n &.tyk-list__item--selected {\n background-color: var(--color-success-light);\n }\n }\n}\n\n.tyk-list--danger {\n border-color: var(--color-danger-base);\n color: var(--text-color);\n\n li {\n border-color: var(--color-danger-light);\n\n &.tyk-list__item--selected {\n background-color: var(--color-danger-light);\n }\n }\n}\n\nul.tyk-list--inline {\n align-items: center;\n display: flex;\n\n li {\n padding-block: 0;\n padding-inline: var(--spacing-sm);\n }\n\n &.tyk-list--with-separator {\n li:not(:first-child) {\n border-inline-start: 1px solid var(--color-default-base);\n }\n }\n}\n",":root {\n --tyk-message-padding-top: var(--spacing-md);\n --tyk-message-padding-right: var(--spacing-md);\n --tyk-message-padding-bottom: var(--spacing-md);\n --tyk-message-padding-left: var(--spacing-md);\n --tyk-message-border-radius: var(--general-border-radius);\n --tyk-message-default-background: var(--color-primary-light);\n --tyk-message-default-border: var(--color-default-dark);\n --tyk-message-default-text-color: var(--color-default-dark);\n --tyk-message-info-background: var(--color-info-light);\n --tyk-message-info-border: var(--color-info-base);\n --tyk-message-info-text-color: var(--color-info-base);\n --tyk-message-success-background: var(--color-success-light);\n --tyk-message-success-border: var(--color-success-dark);\n --tyk-message-success-text-color: var(--color-success-dark);\n --tyk-message-warning-background: var(--color-warning-light);\n --tyk-message-warning-border: var(--color-warning-base);\n --tyk-message-warning-text-color: var(--color-warning-dark);\n --tyk-message-danger-background: var(--color-danger-extra-light);\n --tyk-message-danger-border: var(--color-danger-base);\n --tyk-message-danger-text-color: var(--color-danger-dark);\n}\n\n.tyk-message {\n display: flex;\n align-items: center;\n border-radius: var(--tyk-message-border-radius);\n margin-block-end: var(--spacing-md);\n padding-block: var(--tyk-message-padding-top) var(--tyk-message-padding-bottom);\n padding-inline: var(--tyk-message-padding-left) var(--tyk-message-padding-right);\n\n > .tyk-icon:first-child {\n inline-size: 32px;\n block-size: 32px;\n flex-shrink: 0;\n border-radius: 50%;\n color: white;\n\n &::before {\n display: flex;\n inline-size: 100%;\n block-size: 100%;\n align-items: center;\n justify-content: center;\n }\n }\n\n > .tyk-icon:last-child {\n cursor: pointer;\n }\n\n /* &--default {\n @include message-variant(\n $tyk-message-default-background,\n $tyk-message-default-border,\n $tyk-message-default-text-color\n );\n\n > .tyk-icon:first-child {\n transform: rotate(180deg);\n }\n }\n\n &--info {\n @include message-variant(\n $tyk-message-info-background,\n $tyk-message-info-border,\n $tyk-message-info-text-color\n );\n }\n\n &--success {\n @include message-variant(\n $tyk-message-success-background,\n $tyk-message-success-border,\n $tyk-message-success-text-color\n );\n }\n\n &--warning {\n @include message-variant(\n $tyk-message-warning-background,\n $tyk-message-warning-border,\n $tyk-message-warning-text-color\n );\n }\n\n &--danger {\n @include message-variant(\n $tyk-message-danger-background,\n $tyk-message-danger-border,\n $tyk-message-danger-text-color\n );\n } */\n}\n\n.tyk-message__content {\n flex-grow: 1;\n margin-inline: var(--spacing-md);\n color: var(--tyk-message-default-text-color);\n font-weight: bold;\n}\n\n.tyk-message--default {\n --message-variant-background: var(--tyk-message-default-background);\n --message-variant-border: var(--tyk-message-default-border);\n --message-variant-color: var(--tyk-message-default-text-color);\n\n > .tyk-icon:first-child {\n transform: rotate(180deg);\n }\n}\n\n.tyk-message--info {\n --message-variant-background: var(--tyk-message-info-background);\n --message-variant-border: var(--tyk-message-info-border);\n --message-variant-color: var(--tyk-message-info-text-color);\n}\n\n.tyk-message--success {\n --message-variant-background: var(--tyk-message-success-background);\n --message-variant-border: var(--tyk-message-success-border);\n --message-variant-color: var(--tyk-message-success-text-color);\n}\n\n.tyk-message--warning {\n --message-variant-background: var(--tyk-message-warning-background);\n --message-variant-border: var(--tyk-message-warning-border);\n --message-variant-color: var(--tyk-message-warning-text-color);\n}\n\n.tyk-message--danger {\n --message-variant-background: var(--tyk-message-danger-background);\n --message-variant-border: var(--tyk-message-danger-border);\n --message-variant-color: var(--tyk-message-danger-text-color);\n}\n\n.tyk-message--default,\n.tyk-message--info,\n.tyk-message--success,\n.tyk-message--warning,\n.tyk-message--danger {\n background-color: var(--message-variant-background);\n border: var(--general-border-width) solid var(--message-variant-border);\n color: var(--message-variant-color);\n\n & > .tyk-icon:first-child {\n background-color: var(--message-variant-border);\n }\n}\n",":root {\n --tyk-modal-body-padding: var(--spacing-lg);\n --tyk-modal-footer-padding: var(--spacing-lg);\n\n /* Deprecated Modal.Header and Modal.Title */\n --tyk-modal-header-padding: var(--spacing-lg);\n --tyk-modal-borders-color: var(--color-background-light);\n\n /* End of deprecated styles */\n}\n\n.tyk-modal {\n --theme-header-height: 15px;\n --theme-header-icon-size: 65px;\n\n align-items: center;\n pointer-events: none;\n position: fixed;\n inset: 0;\n z-index: -1;\n\n .tyk-panel {\n border: var(--general-border-width) solid var(--color-background-dark);\n box-shadow: none;\n }\n\n .tyk-modal__dialog {\n opacity: 0;\n transition: all .2s ease;\n }\n\n &.opened {\n display: flex;\n z-index: var(--modal-z-index);\n\n .tyk-modal__dialog {\n display: flex;\n max-block-size: 92vh;\n opacity: 1;\n pointer-events: all;\n }\n }\n\n &.appear-enter-done {\n .tyk-modal__dialog {\n opacity: 1;\n margin-block-start: 0;\n }\n }\n}\n\n.tyk-modal__theme-header {\n position: absolute;\n inset-block-start: -1px;\n inset-inline: 0;\n block-size: var(--theme-header-height);\n border-start-start-radius: var(--general-border-radius);\n border-start-end-radius: var(--general-border-radius);\n\n .tyk-icon {\n position: absolute;\n inset-inline-start: calc(50% - var(--theme-header-icon-size) / 2);\n inset-block-start: calc((var(--theme-header-icon-size) - var(--theme-header-height)) / -2);\n inline-size: var(--theme-header-icon-size);\n block-size: var(--theme-header-icon-size);\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: var(--xxl-font-size);\n color: white;\n }\n}\n\n.tyk-modal--theme-success {\n .tyk-modal__theme-header {\n background-color: var(--color-success-base);\n\n .tyk-icon {\n background-color: var(--color-success-base);\n }\n }\n}\n\n.tyk-modal--theme-warning {\n .tyk-modal__theme-header {\n background-color: var(--color-warning-base);\n\n .tyk-icon {\n background-color: var(--color-warning-base);\n }\n }\n}\n\n.tyk-modal--theme-danger {\n .tyk-modal__theme-header {\n background-color: var(--color-danger-base);\n\n .tyk-icon {\n background-color: var(--color-danger-base);\n }\n }\n}\n\n.tyk-modal__dialog {\n opacity: 0;\n margin-inline: auto;\n margin-block-start: -5%;\n margin-block-end: 0;\n pointer-events: all;\n transition: all .2s linear;\n inline-size: 85%;\n}\n\n@media only screen and (width >= 768px) {\n .tyk-modal__dialog {\n inline-size: 600px;\n\n &.tyk-modal--lg {\n inline-size: 800px;\n }\n }\n}\n\n.tyk-modal__content {\n background: white;\n border-radius: var(--general-border-radius);\n display: flex;\n flex-direction: column;\n position: relative;\n inline-size: 100%;\n}\n\n.tyk-modal__body {\n flex: 1;\n overflow: auto;\n padding-block-start: calc(var(--tyk-modal-body-padding) + (var(--theme-header-icon-size) - var(--theme-header-height)) / 2);\n padding-block-end: var(--tyk-modal-body-padding);\n padding-inline: var(--tyk-modal-body-padding);\n\n &.no-padding {\n padding: 0;\n }\n}\n\n.tyk-modal__footer {\n align-items: center;\n display: flex;\n justify-content: flex-end;\n padding: var(--tyk-modal-footer-padding);\n\n >:not(:first-child) {\n margin-inline-start: var(--spacing-xs);\n }\n}\n\n.tyk-modal__backdrop {\n background-color: var(--color-default-dark);\n border: none;\n display: none;\n position: fixed;\n inset: 0;\n inline-size: 100%;\n z-index: var(--modal-z-index) - 1;\n\n &.opened {\n display: block;\n opacity: 0.5;\n transition: opacity .2s ease;\n }\n\n &.fade-enter-done {\n opacity: 0.5;\n z-index: 9;\n }\n}\n\n/* Deprecated Modal.Header and Modal.Title */\n.tyk-modal__header {\n padding-block-start: calc(var(--tyk-modal-header-padding) + (var(--theme-header-icon-size) - var(--theme-header-height)) / 2);\n padding-block-end: var(--tyk-modal-header-padding);\n padding-inline: var(--tyk-modal-header-padding);\n align-items: center;\n border-block-end: 1px solid var(--tyk-modal-borders-color);\n display: flex;\n inline-size: 100%;\n\n .tyk-modal--theme-none & {\n padding-block-start: var(--tyk-modal-header-padding);\n }\n\n button {\n margin-inline-start: auto;\n padding-block: 0;\n padding-inline: 5px;\n }\n\n + .tyk-modal__body {\n padding-block-start: var(--tyk-modal-body-padding);\n }\n}\n\n.tyk-modal__title {\n font-family: var(--font-family-medium);\n font-weight: 500;\n margin: 0;\n inline-size: 100%;\n}\n\n/* End of deprecated styles */\n",":root {\n --navigation-background-color: white;\n --navigation-item-padding-y: var(--spacing-sm);\n --navigation-item-padding-x: var(--spacing-md);\n --navigation-item-background-color: white;\n --navigation-item-color: var(--text-color);\n --navigation-item-hover-background-color: var(--color-primary-base);\n --navigation-item-hover-color: white;\n --navigation-item-active-background-color: var(--color-primary-dark);\n --navigation-item-active-color: white;\n --navigation-padding: 0;\n}\n\n.tyk-navigation {\n background-color: var(--navigation-background-color);\n block-size: 100%;\n overflow: auto;\n padding: var(--navigation-padding);\n inline-size: 100%;\n\n .tyk-navigation-item {\n inline-size: 100%;\n\n a {\n color: var(--navigation-item-color);\n display: flex;\n padding-block: var(--navigation-item-padding-y);\n padding-inline: var(--navigation-item-padding-x);\n text-decoration: none;\n transition: all .2s ease;\n\n &:hover {\n background-color: var(--navigation-item-hover-background-color);\n color: var(--navigation-item-hover-color);\n }\n\n &.active {\n background-color: var(--navigation-item-active-background-color);\n color: var(--navigation-item-active-color);\n }\n }\n }\n}\n",":root {\n --nav-bar-background-color: white;\n --nav-bar-text-color: var(--color-default-base);\n --nav-bar-padding-left: 265px;\n --nav-bar-animate-left: 245px;\n --nav-bar-top-padding: var(--spacing-sm);\n --nav-bar-bottom-padding: 0;\n --nav-bar-left-padding: var(--spacing-md);\n --nav-bar-right-padding: var(--spacing-md);\n --nav-bar-padding: 0 var(--nav-bar-right-padding) 0 var(--nav-bar-left-padding);\n --nav-bar-top: 51px;\n --nav-bar-header-font-size: var(--xxl-font-size);\n --nav-bar-header-font-family: var(--headings-font-family-bold);\n --nav-bar-header-line-height: var(--xxl-line-height);\n --nav-bar-height: 92px;\n --nav-bar-font-family: var(--font-family-regular);\n}\n\n.tyk-nav-bar {\n align-items: center;\n border: none;\n background-color: var(--nav-bar-background-color);\n font-family: var(--nav-bar-font-family);\n color: var(--nav-bar-text-color);\n margin: 0;\n padding: var(--nav-bar-padding);\n inline-size: 100%;\n z-index: 8;\n transition: all .2s linear;\n\n &.tyk-nav-bar__with-tabs .tyk-tabs--default > ul li button {\n padding-block-start: 0;\n }\n\n @media screen and (width <= 1024px) {\n padding-inline-start: var(--spacing-md);\n\n .menu-opened & {\n transform: translate(var(--nav-bar-animate-left));\n }\n }\n\n h1 {\n color: var(--nav-bar-text-color);\n }\n\n h4 {\n margin: 0;\n }\n\n .tyk-nav-bar__wrapper {\n align-items: center;\n padding-block-end: var(--nav-bar-bottom-padding);\n display: flex;\n flex-wrap: wrap;\n block-size: var(--nav-bar-height);\n\n &.tyk-nav-bar--align-top {\n align-items: flex-start;\n }\n\n @media screen and (width <= 1024px) {\n padding-inline-start: 0;\n }\n\n h1 {\n font-size: var(--nav-bar-header-font-size);\n font-family: var(--nav-bar-header-font-family);\n line-height: var(--nav-bar-header-line-height);\n margin: 0;\n padding-inline-end: var(--spacing-sm);\n }\n\n h4 {\n padding-inline-end: var(--spacing-sm);\n }\n\n .tyk-nav-bar__container {\n align-items: center;\n display: flex;\n flex-grow: 1;\n justify-content: space-between;\n }\n\n .tyk-nav-bar__left {\n flex-grow: 1;\n }\n\n .tyk-nav-bar__right {\n margin-inline-start: auto;\n }\n }\n}\n\n.tyk-nav-bar__pre {\n align-self: flex-end;\n color: var(--text-color);\n flex-basis: 100%;\n\n a {\n font-family: var(--font-family-bold);\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n color: var(--text-color);\n }\n}\n",":root {\n --padding-y-panel-header: var(--spacing-sm);\n --padding-x-panel-header: 25px;\n --padding-y-blank-panel-header: var(--spacing-md);\n --padding-panel-body: 25px;\n --padding-x-right-panel-collapsable: 48px;\n --padding-x-left-panel-collapsable: var(--padding-x-right-panel-collapsable);\n --panel-border-radius: 0;\n --panel-default-border-bottom-color: var(--color-background-base);\n --panel-header-font-size: var(--base-font-size);\n --panel-header-font-family: var(--font-family-medium);\n --panel-primary-header-color: var(--color-primary-base);\n --panel-primary-body-color: white;\n --panel-primary-header-text-color: white;\n --panel-primary-body-text-color: var(--text-color);\n --panel-primary-label-color: var(--text-color);\n --panel-primary-border-color: none;\n}\n\n.tyk-panel {\n background: white;\n border-radius: var(--panel-border-radius);\n margin-block-end: 20px;\n font-family: var(--font-family-medium);\n position: relative;\n\n &.has-error,\n & &.has-error {\n border: var(--general-border-width) solid var(--color-danger-base);\n }\n\n .tyk-panel {\n border: var(--general-border-width) solid var(--color-default-light);\n box-shadow: none;\n }\n}\n\n.tyk-panel--blank,\n.tyk-panel--primary,\n.tyk-panel--success,\n.tyk-panel--danger,\n.tyk-panel--warning {\n .tyk-panel__header {\n border: none;\n font-size: var(--lg-font-size);\n line-height: var(--lg-line-height);\n }\n}\n\n.tyk-panel--blank {\n &.tyk-panel--collapsed {\n margin-block-end: 20px;\n\n .tyk-panel__header {\n margin-block-end: 0;\n }\n }\n\n .tyk-panel__header {\n margin-block-end: -20px;\n padding-block: var(--padding-y-blank-panel-header);\n padding-inline: var(--padding-x-panel-header);\n background-color: white;\n color: var(--color-default-base);\n }\n}\n\n.tyk-panel--primary {\n background-color: transparent;\n\n .tyk-panel__header {\n background-color: var(--panel-primary-header-color);\n color: var(--panel-primary-header-text-color);\n border: var(--panel-primary-border-color);\n }\n\n .tyk-panel__body {\n background-color: var(--panel-primary-body-color);\n color: var(--panel-primary-body-text-color);\n }\n\n & .tyk-form-group {\n label {\n color: var(--panel-primary-label-color);\n }\n }\n\n .tyk-toggle {\n .tyk-toggle__label {\n color: var(--panel-primary-label-color);\n }\n }\n}\n\n.tyk-panel--success {\n .tyk-panel__header {\n background-color: var(--color-success-base);\n color: white;\n }\n}\n\n.tyk-panel--danger {\n .tyk-panel__header {\n background-color: var(--color-danger-base);\n color: white;\n }\n}\n\n.tyk-panel--warning {\n .tyk-panel__header {\n background-color: var(--color-warning-base);\n color: white;\n }\n}\n\n.tyk-panel__body {\n background-color: white;\n border-radius: var(--panel-border-radius);\n font-family: var(--font-family-regular);\n padding: var(--padding-panel-body);\n position: relative;\n transition: block-size .2s;\n\n & ~ .tyk-panel__header {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n\n &.no-padding {\n padding: 0;\n }\n}\n\n.tyk-panel__header {\n display: flex;\n align-items: center;\n border-block-end: 1px solid var(--panel-default-border-bottom-color);\n border-radius: var(--panel-border-radius);\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n font-family: var(--panel-header-font-family);\n overflow: hidden;\n padding-block: var(--padding-y-panel-header);\n padding-inline: var(--padding-x-panel-header);\n position: relative;\n\n > .tyk-icon,\n > .tyk-tooltip__wrapper {\n margin-inline-start: 5px;\n }\n\n .tyk-panel--collapsed & {\n border-end-start-radius: var(--panel-border-radius);\n border-end-end-radius: var(--panel-border-radius);\n }\n\n & ~ .tyk-panel__body {\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n\n & h3 {\n margin: 0;\n }\n\n ng-transclude {\n vertical-align: middle;\n }\n\n &.collapsable {\n cursor: pointer;\n\n .tyk-panel__icon-collapse--right & {\n padding-inline-end: var(--padding-x-right-panel-collapsable);\n }\n\n .tyk-panel__icon-collapse--left & {\n padding-inline-start: var(--padding-x-left-panel-collapsable);\n }\n }\n\n .collapsable__arrow-right {\n font-size: var(--sm-font-size);\n position: absolute;\n padding: var(--spacing-sm);\n inset-inline-end: var(--spacing-sm);\n inset-block-start: calc(50% - 21px);\n }\n\n .collapsable__arrow-left {\n font-size: var(--sm-font-size);\n position: absolute;\n padding-block: 8px var(--spacing-sm);\n padding-inline: 20px 0;\n inset-inline-start: 0;\n inset-block-start: calc(50% - 21px);\n }\n}\n\n.tyk-panel__footer {\n align-items: center;\n border-block-start: 1px solid var(--color-background-light);\n display: flex;\n justify-content: flex-end;\n padding: var(--spacing-lg);\n\n >:not(:first-child) {\n margin-inline-start: 5px;\n }\n}\n",".tyk-pill {\n align-items: center;\n border-radius: var(--general-border-radius);\n display: inline-flex;\n font-size: var(--xs-font-size);\n line-height: 19px;\n margin: var(--pill-margin);\n padding-block: 6px;\n padding-inline: var(--spacing-base);\n font-family: var(--font-family-medium);\n\n i {\n font-size: var(--xs-font-size);\n }\n\n + .tyk-pill {\n margin-inline-end: var(--spacing-sm);\n }\n\n button + span {\n margin-inline-start: var(--spacing-sm);\n }\n\n span + button {\n margin-inline-start: var(--spacing-sm);\n }\n\n &:first-child {\n margin-inline-end: var(--spacing-sm);\n }\n\n &:last-child {\n margin-inline-end: 0;\n }\n}\n\n.tyk-pill--square {\n border-radius: 8px;\n}\n\n.tyk-pill--default {\n background-color: var(--default-pill-background-color);\n color: var(--default-pill-color);\n\n i {\n color: var(--default-pill-color);\n }\n}\n\n.tyk-pill--default-outline {\n box-shadow: var(--default-outline-pill-box-shadow);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--primary {\n background-color: var(--color-primary-base);\n color: white;\n\n i {\n color: var(--default-pill-color);\n }\n}\n\n.tyk-pill--primary-outline {\n box-shadow: inset 0 0 0 2px var(--color-primary-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--success {\n background-color: var(--color-success-base);\n color: white;\n\n i {\n color: white;\n }\n}\n\n.tyk-pill--success-outline {\n box-shadow: inset 0 0 0 2px var(--color-success-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--danger {\n background-color: var(--color-danger-base);\n color: white;\n\n i {\n color: white;\n }\n}\n\n.tyk-pill--danger-outline {\n box-shadow: inset 0 0 0 2px var(--color-danger-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--warning {\n background-color: var(--color-warning-base);\n color: white;\n\n i {\n color: white;\n }\n}\n\n.tyk-pill--warning-outline {\n box-shadow: inset 0 0 0 2px var(--color-warning-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--info {\n background-color: var(--color-info-base);\n color: white;\n\n i {\n color: white;\n }\n}\n\n.tyk-pill--info-outline {\n box-shadow: inset 0 0 0 2px var(--color-info-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n",".tyk-ui-reveal-wrapper {\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n align-items: stretch;\n inline-size: 100%;\n block-size: 100%;\n z-index: 1000;\n position: absolute;\n inset-block-end: 0;\n inset-inline-start: 0;\n pointer-events: none;\n}\n\n.tyk-ui-reveal-wrapper__panel {\n max-block-size: calc(100% - 2rem);\n background-color: white;\n padding: 0;\n margin: 0;\n display: flex;\n flex-direction: column;\n pointer-events: all;\n flex-shrink: 0;\n overflow: auto;\n}\n\n.tyk-ui-reveal-wrapper__hole {\n flex-grow: 1;\n opacity: 0;\n inline-size: 100%;\n background-color: green;\n -webkit-user-select: none;\n user-select: none;\n pointer-events: none;\n z-index: -1;\n}\n\n.tyk-ui-reveal-wrapper__gutter {\n block-size: 2rem;\n inline-size: 100%;\n cursor: row-resize;\n display: flex;\n background-color: var(--color-primary-base);\n z-index: 2;\n pointer-events: all;\n justify-content: space-between;\n align-items: stretch;\n position: relative;\n box-shadow: 0 5px 10px rgba(0 0 0 / 30%);\n}\n\n.tyk-ui-reveal-wrapper__gutter__headerleft,\n.tyk-ui-reveal-wrapper__gutter__headerright {\n display: flex;\n align-items: center;\n flex: 1;\n}\n\n.tyk-ui-reveal-wrapper__gutter__headerleft {\n justify-content: flex-start;\n}\n\n.tyk-ui-reveal-wrapper__gutter__headerright {\n justify-content: flex-end;\n}\n\n.tyk-ui-reveal-wrapper__gutter__logo {\n inline-size: 1rem;\n block-size: 1rem;\n -webkit-user-select: none;\n user-select: none;\n pointer-events: none;\n padding: 0.2rem;\n z-index: 2;\n background-image: url('./images/drag.svg');\n align-self: center;\n\n &:hover {\n border: dashed;\n }\n}\n",":root {\n --sidebar-background-color: white;\n --sidebar-top: 58px;\n --sidebar-height: calc(100vh - 58px);\n --sidebar-width: 280px;\n --sidebar-padding: 0;\n}\n\n.tyk-sidebar {\n background-color: var(--sidebar-background-color);\n block-size: var(--sidebar-height);\n flex: 0 0 var(--sidebar-width);\n padding: var(--sidebar-padding);\n position: sticky;\n overflow: auto;\n inset-block-start: var(--sidebar-top);\n}\n",":root {\n --table-th-padding: var(--spacing-base) var(--spacing-sm);\n --table-td-padding-y: var(--spacing-xs);\n --table-td-padding-x: var(--spacing-sm);\n --table-first-last-padding: 20px;\n --table-pagination-padding: var(--spacing-md) 25px;\n}\n\n.tyk-table {\n border-collapse: collapse;\n border-spacing: 0;\n background-color: white;\n border-radius: var(--general-border-radius);\n inline-size: 100%;\n\n > thead th {\n border-inline-end: 1px solid var(--color-default-light);\n color: var(--text-color);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-bold);\n text-transform: uppercase;\n padding: var(--table-th-padding);\n\n &:last-child {\n border-inline-end: none;\n }\n\n i {\n font-size: var(--xs-font-size);\n }\n\n .tyk-button {\n background: none;\n color: var(--color-default-base);\n padding: 0;\n }\n }\n\n > tbody tr:hover {\n background: rgba(var(--color-background-light) / 40%);\n }\n\n > tbody td {\n border-inline-end: 1px solid var(--color-default-light);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-regular);\n padding-block: var(--table-td-padding-y);\n padding-inline: var(--table-td-padding-x);\n vertical-align: middle;\n\n &:last-child {\n border-inline-end: none;\n }\n\n &.fit {\n white-space: nowrap;\n inline-size: 1%;\n }\n\n input:not([type='checkbox'], [type='radio']) {\n margin-block-start: var(--spacing-base);\n }\n\n a {\n color: var(--text-color);\n font-family: var(--font-family-medium);\n }\n\n label {\n margin: 0;\n }\n\n input[type='checkbox'] {\n margin: 0;\n }\n }\n\n tbody > tr {\n border-block-start: 1px solid var(--color-default-light);\n transition: all .4s linear;\n border-radius: var(--general-border-radius);\n\n &.clickable {\n cursor: pointer;\n }\n }\n\n > tbody tr td:first-child,\n > thead tr th:first-child {\n padding-inline-start: var(--table-first-last-padding);\n\n &.with-icon {\n padding-inline-start: var(--spacing-base);\n }\n }\n\n > tbody tr td:last-child,\n > thead tr th:last-child {\n padding-inline-end: var(--table-first-last-padding);\n\n &.with-icon {\n padding-inline-end: var(--spacing-base);\n }\n }\n\n .tyk-pagination {\n padding: var(--table-pagination-padding);\n\n li:first-child {\n margin-inline-start: auto;\n }\n }\n\n .nowrap {\n white-space: nowrap;\n }\n\n .wrap {\n word-break: break-all;\n }\n}\n\n.tyk-table__wrapper {\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n overflow: auto;\n\n &.no-innner-horizontal-borders {\n & .tyk-table > thead th,\n & .tyk-table > tbody td {\n border-inline-end: none;\n }\n }\n}\n\n.tyk-table__wrapper--no-border {\n border: none\n}\n\n.tyk-table-search {\n padding-block: var(--spacing-sm) 0;\n padding-inline: 25px;\n\n label {\n font-size: var(--sm-font-size);\n text-transform: uppercase;\n }\n}\n\n.header-sort {\n padding-inline-start: 3px;\n padding-block-start: var(--spacing-xs);\n vertical-align: middle;\n}\n\n.new-table-pagination {\n float: inline-end;\n}\n\n.selectable > div {\n margin-inline-start: var(--spacing-md);\n}\n\n.scrollable {\n display: block;\n overflow: auto;\n}\n\n.fixed-header {\n background: white;\n position: sticky;\n inset-block-start: 0;\n}\n\n.tyk-table.has-error,\n.tyk-table__wrapper.has-error {\n border: var(--general-border-width) solid var(--color-danger-base) !important;\n}",":root {\n --tabs-default-content-padding: 25px;\n --tab-button-padding: var(--spacing-sm) 2px 3px 2px;\n --tab-button-margin: 0;\n --tabs-font-familly: var(--font-family-medium);\n --tab-button-color: var(--text-color);\n --tab-active-button-color: var(--text-color);\n --tab-border-color: var(--color-success-base);\n}\n\n.tyk-tabs--default {\n > ul {\n display: flex;\n list-style-type: none;\n margin: 0;\n padding: 0;\n overflow: auto;\n\n li {\n display: flex;\n white-space: nowrap;\n margin-inline-end: var(--tab-button-margin);\n\n &:last-child {\n margin-inline-end: 0;\n }\n\n &.active button,\n button:hover {\n border-block-end-color: var(--tab-border-color);\n color: var(--tab-active-button-color);\n opacity: 1;\n }\n\n button {\n background: none;\n border: none;\n border-block-end: 4px solid transparent;\n color: var(--tab-button-color);\n cursor: pointer;\n font-size: var(--sm-font-size);\n font-family: var(--tabs-font-familly);\n padding: var(--tab-button-padding);\n margin-inline-end: var(--spacing-md);\n transition: all .2s linear;\n opacity: 0.7;\n\n &:focus {\n outline: none;\n }\n }\n }\n }\n}\n\n.tyk-tab__content {\n padding: var(--tabs-default-content-padding);\n}\n",".tyk-toast__container {\n inset-block-end: 0;\n min-inline-size: 300px;\n position: fixed;\n inset-inline-end: var(--spacing-md);\n z-index: 11;\n}\n\n.tyk-toast__message {\n position: relative;\n}\n\n.tyk-toast-message__button {\n color: var(--text-color);\n block-size: var(--spacing-md);\n line-height: 1;\n padding: var(--spacing-xs);\n position: absolute;\n inset-inline-end: var(--spacing-xs);\n inset-block-start: var(--spacing-xs);\n inline-size: var(--spacing-md);\n\n &:hover {\n background: rgba(255 255 255 / 30%);\n color: var(--text-color);\n }\n}\n",":root {\n --tooltip-max-width: 450px;\n}\n\n.tyk-tooltip {\n display: flex;\n align-items: center;\n background-color: var(--color-primary-light);\n border: 2px solid var(--color-primary-base);\n border-radius: var(--general-border-radius);\n max-inline-size: var(--tooltip-max-width);\n padding: var(--spacing-md);\n\n > .tyk-icon:first-child {\n inline-size: 32px;\n block-size: 32px;\n border-radius: 50%;\n color: white;\n background-color: var(--color-default-base-light);\n\n &::before {\n display: flex;\n inline-size: 100%;\n block-size: 100%;\n align-items: center;\n justify-content: center;\n }\n }\n\n > .tyk-icon + .tyk-tooltip__content {\n margin-inline-start: var(--spacing-md);\n }\n\n > .tyk-icon:last-child {\n cursor: pointer;\n }\n}\n\n.tyk-tooltip__content {\n color: var(--color-default-dark);\n word-break: break-word;\n word-wrap: break-word;\n\n + .tyk-icon {\n margin-inline-start: var(--spacing-md);\n }\n}\n",":root {\n --tyk-combobox-pill-background: #F0F0F0;\n --tyk-combobox-pill-color: var(--text-color);\n --tyk-combobox-list-item-hover-color: var(--form-default-color);\n --tyk-combobox-list-item-disabled-color: var(--form-default-color);\n}\n\n.tyk-combobox2 {\n --container-trigger-width: 40px;\n --values-default-height: 38px;\n\n outline: none;\n\n &.disabled {\n .tyk-form-control {\n border: var(--form-control-disabled-border) !important;\n background-color: var(--form-control-disabled-background-color);\n color: var(--form-control-disabled-color);\n cursor: not-allowed;\n }\n\n .tyk-combobox2__current-values .tyk-pill--combobox button {\n cursor: not-allowed;\n }\n\n &:not(.is-expand-mode) .tyk-combobox2__values-container-trigger {\n cursor: not-allowed;\n }\n\n .tyk-combobox2__entry-field {\n background-color: transparent;\n cursor: not-allowed;\n }\n }\n\n .tyk-form-control {\n display: flex;\n flex-direction: row;\n position: relative;\n min-block-size: 40px;\n block-size: auto;\n padding: 0;\n\n &:focus-within {\n outline: none;\n border: var(--form-control-border-focus);\n }\n }\n}\n\n.tyk-combobox2__current-values {\n display: flex;\n flex-grow: 1;\n flex-wrap: wrap;\n padding-block: 2px;\n padding-inline-start: var(--spacing-sm);\n max-inline-size: calc(100% - var(--container-trigger-width));\n\n &.expand-mode {\n max-block-size: 1000px;\n overflow: hidden;\n transition: max-block-size 1s ease;\n }\n\n .tyk-pill--combobox {\n margin-block: 3px;\n background-color: var(--tyk-combobox-pill-background);\n border-radius: var(--spacing-sm);\n color: var(--tyk-combobox-pill-color);\n padding-block: var(--spacing-xs);\n padding-inline: var(--spacing-sm);\n max-inline-size: 100%;\n max-block-size: 26px;\n\n button {\n background: none;\n border: none;\n cursor: pointer;\n inline-size: 23px;\n outline: none;\n\n + span {\n margin-inline-start: 0;\n }\n }\n\n span {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n i {\n margin-inline-end: var(--spacing-xs);\n }\n }\n}\n\n.tyk-combobox2__current-values--collapsed.expand-mode {\n max-block-size: var(--values-default-height);\n transition: max-block-size .2s ease;\n}\n\n.tyk-combobox2__entry-field {\n border: none;\n line-height: 30px;\n\n &:focus,\n &:active {\n border: none;\n outline: none;\n }\n\n &::placeholder {\n color: var(--form-control-placeholder-color);\n font-family: var(--form-control-placeholder-font-family);\n }\n}\n\n.tyk-combobox2__text-value {\n font-family: var(--font-family-medium);\n font-size: var(--sm-font-size);\n padding-block: 9px;\n padding-inline: 5px;\n inline-size: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 1;\n outline: none;\n\n &.overflow-single {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n &.is-placeholder {\n color: var(--form-control-placeholder-color);\n font-family: var(--form-control-placeholder-font-family);\n }\n}\n\n.tyk-combobox2__values-container-trigger {\n position: relative;\n flex-basis: var(--container-trigger-width);\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n outline: none;\n transition: all .2s;\n color: var(--text-color);\n\n .tyk-icon {\n block-size: 14px;\n }\n}\n\n.tyk-combobox2__values-container-trigger--expanded {\n transform: rotate(180deg);\n}\n\n.tyk-form-group--rounded-corners .tyk-combobox2-disabled-overlay {\n border-radius: calc(var(--general-border-radius) - 2px);\n}\n\n.tyk-combobox2__combobox-dropdown {\n display: flex;\n flex-direction: column;\n border: var(--general-border-width) solid var(--form-default-color);\n background-color: white;\n\n &.tyk-form-group--rounded-corners {\n border-radius: var(--general-border-radius);\n z-index: 1081;\n }\n\n .tyk-combobox2__combobox-search {\n background-color: white;\n position: sticky;\n inset-block-start: 0;\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-md);\n\n + .combobox-list {\n border-block-start: 1px solid var(--form-default-color);\n }\n }\n\n .tyk-combobox2__combobox-list {\n max-block-size: 255px;\n\n li {\n display: flex;\n cursor: pointer;\n padding-block: 9px;\n padding-inline: var(--spacing-md);\n transition: all .2s;\n font-family: var(--font-family-medium);\n\n &:hover,\n &.active {\n background-color: var(--tyk-combobox-list-item-hover-color);\n }\n\n &.disabled {\n color: var(--tyk-combobox-list-item-disabled-color);\n background-color: initial;\n }\n\n + li {\n border-block-start: 1px solid var(--form-default-color);\n }\n\n i {\n margin-inline-end: var(--spacing-xs);\n }\n\n .item-name {\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 16px;\n }\n }\n }\n}\n",":root {\n --tyk-checkbox-theme-light-label-color: white;\n --tyk-checkbox-theme-light-label-disabled-color: white;\n --tyk-checkbox-theme-dark-label-color: var(--text-color);\n --tyk-checkbox-theme-dark-label-disabled-color: var(--text-color);\n}\n\n.tyk-checkbox {\n label {\n --label-indent: 20px;\n\n display: flex;\n align-items: flex-start;\n padding-inline-start: var(--label-indent);\n\n input {\n margin-inline-start: calc(-1 * var(--label-indent));\n margin-block-start: 5px;\n }\n }\n}\n\n.tyk-checkbox--theme-light {\n label {\n color: var(--tyk-checkbox-theme-light-label-color);\n }\n\n &.tyk-checkbox--is-disabled {\n label {\n color: var(--tyk-checkbox-theme-light-label-disabled-color);\n }\n }\n}\n\n.tyk-checkbox--is-disabled {\n label, p {\n cursor: not-allowed;\n opacity: 0.5;\n }\n}",".flatpickr-calendar{background:transparent;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;-webkit-animation:none;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;background:#fff;-webkit-box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,0.08);box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,0.08)}.flatpickr-calendar.open,.flatpickr-calendar.inline{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1);animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none !important;box-shadow:none !important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-calendar .hasWeeks .dayContainer,.flatpickr-calendar .hasTime .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:before,.flatpickr-calendar:after{position:absolute;display:block;pointer-events:none;border:solid transparent;content:'';height:0;width:0;left:22px}.flatpickr-calendar.rightMost:before,.flatpickr-calendar.arrowRight:before,.flatpickr-calendar.rightMost:after,.flatpickr-calendar.arrowRight:after{left:auto;right:22px}.flatpickr-calendar.arrowCenter:before,.flatpickr-calendar.arrowCenter:after{left:50%;right:50%}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-months .flatpickr-month{background:transparent;color:rgba(0,0,0,0.9);fill:rgba(0,0,0,0.9);height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:rgba(0,0,0,0.9);fill:rgba(0,0,0,0.9)}.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,.flatpickr-months .flatpickr-next-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-prev-month i,.flatpickr-months .flatpickr-next-month i{position:relative}.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,.flatpickr-months .flatpickr-next-month.flatpickr-prev-month{/*\n /*rtl:begin:ignore*/left:0/*\n /*rtl:end:ignore*/}/*\n /*rtl:begin:ignore*/\n/*\n /*rtl:end:ignore*/\n.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,.flatpickr-months .flatpickr-next-month.flatpickr-next-month{/*\n /*rtl:begin:ignore*/right:0/*\n /*rtl:end:ignore*/}/*\n /*rtl:begin:ignore*/\n/*\n /*rtl:end:ignore*/\n.flatpickr-months .flatpickr-prev-month:hover,.flatpickr-months .flatpickr-next-month:hover{color:#959ea9}.flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-outer-spin-button,.numInputWrapper input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,0.15);-webkit-box-sizing:border-box;box-sizing:border-box}.numInputWrapper span:hover{background:rgba(0,0,0,0.1)}.numInputWrapper span:active{background:rgba(0,0,0,0.2)}.numInputWrapper span:after{display:block;content:\"\";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,0.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,0.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:rgba(0,0,0,0.5)}.numInputWrapper:hover{background:rgba(0,0,0,0.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0 0;line-height:1;height:34px;display:inline-block;text-align:center;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,0.05)}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\\0;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:rgba(0,0,0,0.9)}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:rgba(0,0,0,0.9)}.flatpickr-current-month input.cur-year{background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:initial;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:rgba(0,0,0,0.5);background:transparent;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:transparent;border:none;border-radius:0;box-sizing:border-box;color:inherit;cursor:pointer;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0 0;outline:none;padding:0 0 0 .5ch;position:relative;vertical-align:initial;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:focus,.flatpickr-current-month .flatpickr-monthDropdown-months:active{outline:none}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,0.05)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:none;padding:0}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:transparent;color:rgba(0,0,0,0.54);line-height:1;margin:0;text-align:center;display:block;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0 0}.flatpickr-days{position:relative;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.dayContainer + .dayContainer{-webkit-box-shadow:-1px 0 0 #e6e6e6;box-shadow:-1px 0 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;-webkit-flex-basis:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.today.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day:hover,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover,.flatpickr-day:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.nextMonthDay:focus{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:hover,.flatpickr-day.today:focus{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:#569ff7;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 0 #569ff7}.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange,.flatpickr-day.endRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.notAllowed.nextMonthDay{color:rgba(57,57,57,0.3);background:transparent;border-color:transparent;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:rgba(57,57,57,0.1)}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;-webkit-box-shadow:1px 0 0 #e6e6e6;box-shadow:1px 0 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:rgba(57,57,57,0.3);background:transparent;cursor:default;border:none}.flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-time:after{content:\"\";display:table;clear:both}.flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;width:40%;height:40px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:transparent;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:14px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-time input.flatpickr-hour{font-weight:bold}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-time-separator,.flatpickr-time .flatpickr-am-pm{height:inherit;float:left;line-height:inherit;color:#393939;font-weight:bold;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time input:hover,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time .flatpickr-am-pm:focus{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}","@import 'flatpickr/dist/flatpickr.min.css';\n\n.flatpickr-day.selected,\n.flatpickr-day.startRange,\n.flatpickr-day.endRange,\n.flatpickr-day.selected.inRange,\n.flatpickr-day.startRange.inRange,\n.flatpickr-day.endRange.inRange,\n.flatpickr-day.selected:focus,\n.flatpickr-day.startRange:focus,\n.flatpickr-day.endRange:focus,\n.flatpickr-day.selected:hover,\n.flatpickr-day.startRange:hover,\n.flatpickr-day.endRange:hover,\n.flatpickr-day.selected.prevMonthDay,\n.flatpickr-day.startRange.prevMonthDay,\n.flatpickr-day.endRange.prevMonthDay,\n.flatpickr-day.selected.nextMonthDay,\n.flatpickr-day.startRange.nextMonthDay,\n.flatpickr-day.endRange.nextMonthDay {\n background: var(--color-success-base) !important;\n border-color: var(--color-success-base) !important;\n}",":root {\n --tyk-dropdown-item-background: white;\n --tyk-dropdown-item-background-hover: var(--color-background-light);\n --tyk-dropdown-item-border-color: white;\n --tyk-dropdown-item-text-color: var(--text-color);\n --tyk-dropdown-item-hover-text-color: var(--text-color);\n}\n\n.tyk-dropdown {\n display: inline-block;\n\n + .tyk-button,\n + .tyk-dropdown,\n + .tyk-toggle {\n margin-inline-start: var(--spacing-sm)\n }\n\n label {\n display: block;\n }\n\n &.theme-list .tyk-button {\n background: white;\n border: var(--general-border-width) solid var(--color-default-base);\n border-radius: var(--general-border-radius);\n color: var(--text-color);\n\n &:hover,\n &:active,\n &:active:focus,\n &:focus {\n background: white;\n border-color: var(--color-background-dark);\n color: var(--text-color);\n }\n }\n}\n\n.tyk-dropdown--block {\n inset-inline: var(--spacing-md);\n}\n\n.tyk-dropdown--relative {\n inset-inline: auto;\n}\n\n.tyk-dropdown--custom {\n padding-block: var(--spacing-md);\n padding-inline: 25px;\n}\n\n.tyk-dropdown__trigger {\n position: relative;\n}\n\n.tyk-dropdown-menu {\n background: var(--tyk-dropdown-item-background);\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n filter: drop-shadow(1px 2px 1px rgba(0 0 0 / 10%));\n list-style-type: none;\n margin-inline: 0;\n margin-block: 3px 0;\n overflow: hidden;\n padding: 0;\n z-index: 1081;\n\n &.tyk-dropdown--scrollable {\n overflow: auto;\n }\n\n .tyk-panel {\n margin: 0;\n }\n\n &.opened {\n display: flex;\n flex-direction: column;\n position: absolute;\n }\n\n > li {\n background: var(--tyk-dropdown-item-background);\n border-block-end: 1px solid var(--tyk-dropdown-item-border-color);\n display: flex;\n position: relative;\n z-index: 7;\n\n &:last-child {\n border: none;\n }\n\n i {\n position: absolute;\n inset-inline-start: 7px;\n inset-block-start: 9px;\n }\n }\n}\n\n.tyk-dropdown-menu > li > a {\n cursor: pointer;\n color: var(--tyk-dropdown-item-text-color);\n display: flex;\n font-size: 12px;\n padding-block: 7px;\n padding-inline: 24px;\n text-transform: uppercase;\n text-decoration: none;\n inline-size: 100%;\n\n &:hover {\n color: var(--tyk-dropdown-item-hover-text-color);\n background-color: var(--tyk-dropdown-item-background-hover);\n text-decoration: none;\n }\n\n .badge {\n background: var(--text-color);\n color: white;\n font-size: var(--spacing-sm);\n margin-block-start: -4px;\n margin-inline-start: 6px;\n }\n}\n\n.tyk-dropdown--relative.opened {\n position: relative;\n}\n",".dropdown__menu {\n .tyk-list {\n background: white;\n max-block-size: none;\n\n li {\n padding: 0;\n\n &:hover {\n background: var(--primary-light);\n }\n\n a {\n cursor: pointer;\n display: block;\n padding-block: 10px;\n padding-inline: 20px;\n text-decoration: none;\n }\n }\n }\n}",".tyk-editable-list__submit-btn {\n white-space: nowrap;\n}\n\n.tyk-editable-list__form {\n align-items: center;\n display: flex;\n\n .tyk-form-group {\n margin-block-end: 0;\n }\n\n span.inline {\n margin-block-start: 0;\n }\n\n > span {\n margin-inline-start: var(--spacing-base);\n\n &.inline-with-label {\n align-self: flex-end;\n }\n }\n}\n\n.tyk-editable-list__form--sticked {\n margin-inline-start: 0;\n\n button {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n border-start-end-radius: 3px;\n border-end-end-radius: 3px;\n padding-block: var(--spacing-sm) 11px;\n padding-inline: var(--spacing-base);\n }\n}\n\n.tyk-editable-list__header {\n padding-block: var(--spacing-base);\n font-size: 11px;\n text-transform: uppercase;\n background-color: white;\n border-start-start-radius: var(--general-border-radius);\n border-start-end-radius: var(--general-border-radius);\n border: var(--general-border-width) solid var(--color-default-light);\n border-block-end: 1px solid var(--color-default-light) !important;\n color: var(--text-color) !important;\n font-family: var(--font-family-bold);\n margin-block-start: var(--spacing-sm);\n\n & + .tyk-editable-list-items.table {\n border-block-start: none;\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n\n .tyk-row {\n margin: 0;\n }\n}\n\n.tyk-editable-list-items {\n overflow: hidden;\n list-style: none;\n padding-block: var(--spacing-md) 0;\n padding-inline: 0;\n\n .edit-mode-wrapper.table button {\n margin-block-start: 23px;\n }\n\n .tyk-row {\n margin: 0;\n }\n\n button[disabled] {\n cursor: not-allowed;\n }\n\n &.tyk-editable-list-items--inline {\n align-items: center;\n color: var(--text-color);\n display: flex;\n flex-wrap: wrap;\n }\n\n li {\n border-block-start: 1px solid var(--color-default-light);\n transition: all .2s linear;\n\n &.tyk-editable-list-item--inline {\n background-color: var(--color-default-light);\n border-radius: 25px;\n border: none;\n color: white;\n float: inline-start;\n font-family: var(--font-family-medium);\n margin-block-end: var(--spacing-sm);\n margin-inline-end: var(--spacing-base);\n padding-block: 0;\n padding-inline: var(--spacing-base);\n white-space: nowrap;\n\n .tyk-editable-list-item__text {\n color: var(--text-color);\n padding-block: var(--spacing-xs);\n padding-inline: 0;\n }\n\n .tyk-editable-list-action__button.on-edit {\n margin-block-start: 0;\n }\n }\n\n &:first-child {\n border-block-start: none;\n }\n\n .tyk-editable-list-item__text {\n display: flex;\n padding-block: var(--spacing-sm);\n padding-inline: 0;\n\n > span {\n flex-grow: 1;\n }\n\n > div:first-child {\n flex-grow: 1;\n\n .error-message {\n margin: 0;\n }\n }\n }\n\n .tyk-editable-list-items {\n overflow: hidden;\n padding-block-end: var(--spacing-sm);\n }\n\n .tyk-editable-list {\n border-block-start: var(--spacing-xs) solid var(--background-dark);\n background: var(--background-light);\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-base);\n }\n }\n\n .tyk-editable-list-item__text {\n display: block;\n word-wrap: break-word;\n word-break:break-all;\n }\n\n .tyk-editable-list-action__button {\n border: none;\n background: transparent;\n\n &.on-edit {\n margin-inline-start: var(--spacing-sm);\n }\n }\n\n .tyk-editable-list-item-controls {\n flex-grow: 0;\n text-align: end;\n }\n}\n\n.tyk-editable-list-item__controls {\n text-align: end;\n}\n\n.tyk-editable-list-items.table {\n background-color: white;\n border-radius: var(--general-border-radius);\n border: var(--general-border-width) solid var(--color-default-light);\n padding: 0 !important;\n\n li {\n border-color: var(--color-default-light);\n\n &:hover {\n background: var(--color-background-light);\n }\n }\n\n .tyk-editable-list-item__text {\n background: transparent;\n }\n\n .tyk-editable-list-action__button {\n border-radius: 6px;\n cursor: pointer;\n margin-inline-end: var(--spacing-sm);\n }\n}\n","/* stylelint-disable number-max-precision */\n\n.editable-list__header {\n align-items: center;\n display: flex;\n margin-block-end: 10px;\n\n .tyk-button {\n margin-inline-start: auto;\n }\n}\n\n.editable-list__wrapper.has-error .editable-list__list{\n border: var(--general-border-width) solid var(--color-danger-base);\n}\n\n.editable-list__list {\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n display: flex;\n flex-direction: column-reverse;\n}\n\n.editable-list__item {\n border-block-end: 1px solid var(--color-default-light);\n display: flex;\n flex-wrap: nowrap;\n inline-size: 100%;\n\n &:first-child {\n border-block-end: none;\n }\n}\n\n.editable-list__item-header {\n border-block-end: 1px solid var(--color-default-light);\n color: var(--text-color);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-bold);\n text-transform: uppercase;\n\n .editable-list__item-cell {\n padding: 10px;\n }\n}\n\n.editable-list__item-cell {\n border-inline-start: 1px solid var(--color-default-light);\n overflow: hidden;\n padding-block: 0;\n padding-inline: 10px;\n\n .tyk-form-control--readonly {\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: break-all;\n }\n\n &:first-child {\n border-inline-start: none;\n padding-inline-start: 15px;\n }\n\n &:last-child {\n padding-inline-end: 15px;\n }\n\n .tyk-form-group {\n margin-block: 10px;\n margin-inline: 0;\n inline-size: 100%;\n }\n}\n\n.editable-list__item--size-1 {\n display: flex;\n flex-grow: 2;\n inline-size: 8.3333333333%;\n}\n\n.editable-list__item--size-2 {\n display: flex;\n flex-grow: 3;\n inline-size: 16.6666666667%;\n}\n\n.editable-list__item--size-3 {\n display: flex;\n flex-grow: 4;\n inline-size: 25%;\n}\n\n.editable-list__item--size-4 {\n display: flex;\n flex-grow: 5;\n inline-size: 33.3333333333%;\n}\n\n.editable-list__item--size-5 {\n display: flex;\n flex-grow: 6;\n inline-size: 41.6666666667%;\n}\n\n.editable-list__item--size-6 {\n display: flex;\n flex-grow: 7;\n inline-size: 50%;\n}\n\n.editable-list__item--size-7 {\n display: flex;\n flex-grow: 8;\n inline-size: 58.3333333333%;\n}\n\n.editable-list__item--size-8 {\n display: flex;\n flex-grow: 9;\n inline-size: 66.6666666667%;\n}\n\n.editable-list__item--size-9 {\n display: flex;\n flex-grow: 10;\n inline-size: 75%;\n}\n\n.editable-list__item--size-10 {\n display: flex;\n flex-grow: 11;\n inline-size: 83.3333333333%;\n}\n\n.editable-list__item--size-11 {\n display: flex;\n flex-grow: 12;\n inline-size: 91.6666666667%;\n}\n\n.editable-list__item--size-12 {\n display: flex;\n flex-grow: 13;\n inline-size: 100%;\n}\n\n.editable-list__item--size-fit {\n inline-size: fit-content;\n}\n\n.editable-list__item-action {\n align-items: flex-start;\n display: flex;\n justify-content: center;\n inline-size: 100px;\n\n .tyk-button {\n margin-block-start: 20px;\n }\n}\n\n.editable-list__item-action--read-only {\n color: var(--color-default-light);\n align-items: center;\n\n .tyk-button {\n margin-block-start: 0;\n }\n}",".tyk-file-input__wrapper {\n position: relative;\n\n > input {\n padding-block: 6px;\n padding-inline: var(--spacing-md);\n }\n\n > button {\n background: none;\n border: none;\n cursor: pointer;\n position: absolute;\n inset-inline-end: var(--spacing-base);\n inset-block-start: 9px;\n }\n}\n",".tyk-multiselect {\n align-items: flex-start;\n border-radius: var(--general-border-radius);\n flex-wrap: wrap;\n display: flex;\n margin-block-end: var(--spacing-md);\n inline-size: 100%;\n\n /* FALLBACK FOR ANGULAR COMPONENTS */\n .input-group .input-group-addon + .form-control {\n border-width: 1px !important;\n border-inline-start: none !important;\n border-start-start-radius: 0 !important;\n border-start-end-radius: 0 !important;\n border-end-start-radius: 0 !important;\n border-end-end-radius: 0 !important;\n }\n\n .input-group .input-group-addon {\n background: transparent !important;\n border-width: 1px !important;\n border-inline-end: 0 !important;\n border-start-start-radius: 0 !important;\n border-start-end-radius: 0 !important;\n border-end-start-radius: 0 !important;\n border-end-end-radius: 0 !important;\n }\n\n /* END FALLBACK FOR ANGULAR COMPONENTS */\n\n &.has-error {\n border: var(--general-border-width) solid var(--color-danger-base);\n }\n\n .tyk-form-group {\n margin: 0;\n }\n\n .tyk-multiselect-item__controls {\n display: flex;\n margin-inline-start: auto;\n flex-wrap: nowrap;\n\n .tyk-button {\n color: var(--text-color);\n margin-inline-start: var(--spacing-xs);\n\n &:last-child {\n margin-inline-start: 0;\n }\n }\n }\n}\n\n.tyk-multiselect__header {\n background-color: var(--color-default-base);\n border-start-start-radius: var(--general-border-radius);\n border-start-end-radius: var(--general-border-radius);\n color: white;\n display: flex;\n inline-size: 100%;\n\n > div {\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-base);\n inline-size: 50%;\n }\n}\n\n.tyk-multiselect__panel-wrapper {\n border: var(--form-control-border);\n border-block-start: none;\n border-end-start-radius: var(--general-border-radius);\n border-end-end-radius: var(--general-border-radius);\n display: flex;\n flex: 1;\n block-size: 265px;\n inline-size: 100%;\n}\n\n.tyk-multiselect__panel {\n display: flex;\n flex-direction: column;\n margin-block: 0;\n margin-inline: -1px 0;\n position: relative;\n inline-size: calc(50% + 1px);\n\n &:last-child {\n border-inline-start: var(--form-control-border);\n\n .tyk-form-group {\n margin-inline-start: -1px;\n inline-size: calc(100% + 2px);\n }\n }\n\n .tyk-message {\n margin-block: var(--spacing-md) 0;\n margin-inline: var(--spacing-md);\n }\n}\n\n.tyk-multiselect__list {\n list-style-type: none;\n margin: 0;\n padding: 0;\n\n > li {\n border-block-end: var(--form-control-border);\n display: flex;\n flex-direction: column;\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-base);\n\n > div {\n align-items: start;\n display: flex;\n inline-size: 100%;\n }\n\n .loading {\n justify-content: center;\n }\n\n &:last-child {\n border-block-end: none;\n }\n }\n}\n\n.tyk-multiselect__list--scroll {\n block-size: 100%;\n overflow-y: auto;\n}\n\n.tyk-multiselect-item__name {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n",":root {\n --pagination-border-radius: var(--general-border-radius);\n --pagination-button-padding: var(--spacing-sm) var(--spacing-base);\n}\n\n.tyk-pagination {\n display: flex;\n list-style-type: none;\n margin-block: var(--spacing-sm);\n margin-inline: 0;\n padding: 0;\n\n li {\n align-items: center;\n display: flex;\n }\n\n li:first-child button {\n border-start-start-radius: var(--pagination-border-radius);\n border-end-start-radius: var(--pagination-border-radius);\n }\n\n li:last-child button {\n border-start-end-radius: var(--pagination-border-radius);\n border-end-end-radius: var(--pagination-border-radius);\n }\n\n span {\n margin-block: 0;\n margin-inline: var(--spacing-sm);\n }\n\n button {\n background: white;\n border: none;\n font-size: var(--sm-font-size);\n font-family: var(--font-family-bold);\n cursor: pointer;\n color: var(--color-default-base);\n margin-inline-start: -1px;\n padding: var(--pagination-button-padding);\n\n &:hover {\n background-color: var(--color-success-light);\n }\n }\n\n .active button {\n background-color: var(--color-success-base);\n color: white;\n }\n}\n",":root {\n --radio-description-text-padding: 0 0 0 20px;\n}\n\n.tyk-radio {\n label {\n align-items: center;\n display: flex;\n }\n}\n\n.tyk-radio--is-disabled {\n label, p {\n cursor: not-allowed;\n opacity: 0.5;\n }\n}\n\n.tyk-radio__description-text {\n padding: var(--radio-description-text-padding);\n}",".tyk-select {\n background: transparent url('./images/arrow_down.svg') no-repeat calc(100% - 15px) center;\n background-size: var(--spacing-base) var(--spacing-base);\n}",".tyk-selectable-list {\n margin-block-end: var(--spacing-md);\n inline-size: 100%;\n\n li:not(.tyk-selectable-list__no-items-message) {\n font-family: var(--font-family-medium);\n padding: 0;\n\n .tyk-message {\n margin-block-end: 0;\n }\n\n label {\n font-family: var(--font-family-medium);\n margin: 0;\n }\n\n > label {\n align-items: center;\n cursor: pointer;\n display: flex;\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-md);\n\n input[type=\"checkbox\"] {\n margin-inline-start: auto;\n }\n }\n }\n}\n\n.tyk-selectable-list__item--with-icon {\n & input[type=\"checkbox\"] {\n visibility: hidden;\n }\n}\n","textarea.tyk-form-control {\n block-size: auto;\n}\n",":root {\n --toggle-font-family: var(--font-family-bold);\n --toggle-list-background-color: var(--color-background-light);\n --toggle-list-text-color: white;\n --toggle-list-background-color-on-dark: white;\n --toggle-list-text-color-on-dark: var(--text-color);\n --toggle-top: 4px;\n --toggle-bottom: 4px;\n --toggle-label-font-size: var(--sm-font-size);\n --toggle-label-font-family: var(--font-family-medium);\n --toggle-label-color: var(--label-color);\n --toggle-padding: 0;\n}\n\n.tyk-toggle {\n display: inline-flex;\n flex-wrap: wrap;\n font-family: var(--toggle-font-family);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n white-space: nowrap;\n\n &.block {\n margin-block-end: var(--spacing-md);\n inline-size: 100%;\n\n + .tyk-toggle {\n margin-inline-start: 0;\n }\n }\n\n &.inline-label {\n align-items: center;\n flex-wrap: nowrap;\n }\n\n + .tyk-button,\n + .tyk-dropdown,\n + .tyk-toggle {\n margin-inline-start: var(--spacing-sm)\n }\n}\n\n.tyk-toggle__list--has-error {\n border: var(--error-border);\n}\n\n.tyk-toggle .tyk-toggle__label {\n display: block;\n font-family: var(--toggle-label-font-family);\n font-size: var(--toggle-label-font-size);\n padding: var(--toggle-padding);\n inline-size: 100%;\n color: var(--toggle-label-color);\n}\n\n.tyk-toggle.inline-label .tyk-toggle__label {\n margin-inline-end: var(--spacing-sm);\n inline-size: auto;\n}\n\n.tyk-toggle--disabled-true {\n cursor: not-allowed;\n opacity: 0.7;\n}\n\n.tyk-toggle--column {\n .tyk-toggle__list--separated {\n display: flex;\n flex-direction: column;\n margin-inline-end: var(--spacing-md);\n\n .tyk-toggle__item {\n background-color: var(--toggle-list-background-color);\n margin-inline-end: auto;\n }\n }\n}\n\n.tyk-toggle__list {\n background: var(--toggle-list-background-color);\n border-radius: 25px;\n display: flex;\n list-style-type: none;\n margin: 0;\n padding: 0;\n position: relative;\n}\n\n.tyk-toggle__list--separated {\n background: transparent;\n flex-wrap: wrap;\n}\n\n.tyk-toggle--on-dark .tyk-toggle__list {\n background: var(--toggle-list-background-color-on-dark);\n}\n\n.tyk-toggle--default .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--default .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--default .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--button-default-color);\n color: white;\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--button-default-color);\n color: white;\n }\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle--primary .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--primary .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--primary .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--color-primary-base);\n color: white;\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--color-primary-base);\n color: white;\n }\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle--success .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--success .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--success .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--color-success-dark);\n color: white;\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--color-success-dark);\n color: white;\n }\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle--danger .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--danger .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--danger .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--color-danger-base);\n color: white;\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--color-danger-base);\n color: white;\n }\n}\n\n.tyk-toggle--warning .tyk-toggle__item--active span {\n color: var(--text-color);\n}\n\n.tyk-toggle--warning .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--warning .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--color-warning-base);\n color: var(--text-color);\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--color-warning-base);\n color: var(--text-color);\n }\n}\n\n\n.tyk-toggle--primary-gradient .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--primary-gradient .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--primary-gradient .tyk-toggle__list--separated .tyk-toggle__item--active {\n border-image: linear-gradient(to right, var(--color-primary-base), var(--color-primary-dark), var(--color-primary-base)) 0 round;\n background: transparent linear-gradient(to right, var(--color-primary-base), var(--color-primary-dark), var(--color-primary-base));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: white;\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle--success-gradient .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--success-gradient .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--success-gradient .tyk-toggle__list--separated .tyk-toggle__item--active {\n border-image: linear-gradient(to right, var(--color-success-base), var(--color-success-dark), var(--color-success-base)) 0 round;\n background: transparent linear-gradient(to right, var(--color-success-base), var(--color-success-dark), var(--color-success-base));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: white;\n\n span {\n color: white;\n }\n}\n\n\n.tyk-toggle--danger-gradient .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--danger-gradient .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--danger-gradient .tyk-toggle__list--separated .tyk-toggle__item--active {\n border-image: linear-gradient(to right, var(--color-danger-base), var(--color-danger-dark), var(--color-danger-base)) 0 round;\n background: transparent linear-gradient(to right, var(--color-danger-base), var(--color-danger-dark), var(--color-danger-base));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: white;\n\n span {\n color: white;\n }\n}\n\n\n.tyk-toggle--warning-gradient .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--warning-gradient .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--warning-gradient .tyk-toggle__list--separated .tyk-toggle__item--active {\n border-image: linear-gradient(to right, var(--color-warning-light), var(--color-warning-base), var(--color-warning-light)) 0 round;\n background: transparent linear-gradient(to right, var(--color-warning-light), var(--color-warning-base), var(--color-warning-light));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: var(--text-color);\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle__item {\n color: var(--toggle-list-text-color);\n text-transform: uppercase;\n z-index: 2;\n border: 2px solid transparent;\n\n &:first-child {\n border-start-start-radius: 25px;\n border-end-start-radius: 25px;\n }\n\n &:last-child {\n border-start-end-radius: 25px;\n border-end-end-radius: 25px;\n }\n\n .tyk-toggle__list--separated & {\n border-radius: 25px;\n margin-block: var(--spacing-xs);\n margin-inline-end: var(--spacing-sm);\n\n &:last-child {\n margin-inline-end: 0;\n }\n }\n\n input {\n display: none;\n }\n\n label {\n cursor: pointer;\n font-family: var(--toggle-font-family);\n position: relative;\n margin: 0;\n transition: all .2s ease;\n\n .tyk-toggle__list--single & {\n padding-inline-start: 45px;\n }\n }\n}\n\n.tyk-toggle__list--single .tyk-toggle__item--active {\n label {\n padding-inline-start: 25px;\n padding-inline-end: 45px;\n\n .tyk-toggle__item-notch {\n inset-inline-start: calc(100% - 35px);\n }\n }\n}\n\n.tyk-toggle--on-dark .tyk-toggle__item:not(.tyk-toggle__item--active) {\n color: var(--toggle-list-text-color-on-dark);\n}\n\n.tyk-toggle--on-dark .tyk-toggle__item-notch--single {\n background: var(--color-background-light);\n}\n\n.tyk-toggle--sm label {\n padding-block: calc(var(--padding-y-button-sm) + 2px);\n padding-inline: calc(var(--padding-x-button-sm) + 2px);\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n border-radius: var(--button-border-radius);\n}\n\n.tyk-toggle--sm .tyk-toggle__list--single label {\n padding-inline-start: 35px;\n}\n\n.tyk-toggle--sm .tyk-toggle__list--single .tyk-toggle__item--active label {\n padding-inline-start: 17px;\n padding-inline-end: 35px;\n\n .tyk-toggle__item-notch {\n inset-inline-start: calc(100% - 27px);\n }\n}\n\n.tyk-toggle--md label {\n padding-block: calc(var(--padding-y-button-md) + 2px);\n padding-inline: calc(var(--padding-x-button-md) + 2px);\n font-size: var(--sm-font-size);\n line-height: var(--line-height-button-sm);\n border-radius: var(--button-border-radius);\n}\n\n.tyk-toggle--lg label {\n padding-block: calc(var(--padding-y-button-lg) + 2px);\n padding-inline: calc(var(--padding-x-button-lg) + 2px);\n font-size: var(--sm-font-size);\n line-height: var(--line-height-button-sm);\n border-radius: var(--button-border-radius);\n}\n\n.tyk-toggle--lg .tyk-toggle__list--single label {\n padding-inline-start: 45px;\n}\n\n.tyk-toggle--lg .tyk-toggle__list--single .tyk-toggle__item--active label {\n padding-inline-start: 25px;\n padding-inline-end: 45px;\n\n .tyk-toggle__item-notch {\n inset-inline-start: calc(100% - 43px);\n }\n}\n\n.tyk-toggle__item-notch {\n border-radius: 25px;\n inset-block: 2px;\n position: absolute;\n transition: all .2s ease;\n}\n\n.tyk-toggle__item-notch--single {\n background: white;\n inset-inline-start: 2px;\n inline-size: 32px;\n}\n\n.tyk-toggle--sm .tyk-toggle__item-notch--single {\n inline-size: 24px;\n}\n\n.tyk-toggle--lg .tyk-toggle__item-notch--single {\n inline-size: 40px;\n}\n\n.tyk-toggle__notch {\n border-radius: 25px;\n inset-inline-start: 0;\n position: absolute;\n inset-block-start: var(--toggle-top);\n inset-block-end: var(--toggle-bottom);\n transition: all .2s ease;\n inline-size: 100px;\n z-index: 1;\n}\n\n.tyk-toggle--default .tyk-toggle__notch {\n --toggle-notch-background: var(--button-default-color);\n --toggle-notch-border: transparent;\n --toggle-notch-color: white;\n --toggle-notch-hover-background: var(--button-default-color);\n --toggle-notch-hover-color: white;\n}\n\n.tyk-toggle--primary .tyk-toggle__notch {\n --toggle-notch-background: var(--primary-base);\n --toggle-notch-border: transparent;\n --toggle-notch-color: white;\n --toggle-notch-hover-background: var(--primary-base);\n --toggle-notch-hover-color: white;\n}\n\n.tyk-toggle--success .tyk-toggle__notch {\n --toggle-notch-background: var(--success-base);\n --toggle-notch-border: transparent;\n --toggle-notch-color: white;\n --toggle-notch-hover-background: var(--success-base);\n --toggle-notch-hover-color: white;\n}\n\n.tyk-toggle--danger .tyk-toggle__notch {\n --toggle-notch-background: var(--color-danger-base);\n --toggle-notch-border: transparent;\n --toggle-notch-color: white;\n --toggle-notch-hover-background: var(--color-danger-base);\n --toggle-notch-hover-color: white;\n}\n\n.tyk-toggle--warning .tyk-toggle__notch {\n --toggle-notch-background: var(--color-warning-base);\n --toggle-notch-border: transparent;\n --toggle-notch-color: var(--text-color);\n --toggle-notch-hover-background: var(--color-warning-base);\n --toggle-notch-hover-color: var(--text-color);\n}\n\n.tyk-toggle--default .tyk-toggle__notch,\n.tyk-toggle--primary .tyk-toggle__notch,\n.tyk-toggle--success .tyk-toggle__notch,\n.tyk-toggle--danger .tyk-toggle__notch,\n.tyk-toggle--warning .tyk-toggle__notch {\n background-color: var(--toggle-notch-background);\n color: var(--toggle-notch-color);\n border: var(--general-border-width) solid var(--toggle-notch-border);\n\n &:hover {\n background-color: var(--toggle-notch-hover-background);\n color: var(--toggle-notch-hover-color);\n }\n}\n\n.tyk-toggle--primary-gradient .tyk-toggle__notch {\n --toggle-notch-gradient-left-color: var(--color-primary-base);\n --toggle-notch-gradient-right-color: var(--color-primary-dark);\n --toggle-notch-gradient-color: white;\n}\n\n.tyk-toggle--success-gradient .tyk-toggle__notch {\n --toggle-notch-gradient-left-color: var(--color-success-base);\n --toggle-notch-gradient-right-color: var(--color-success-dark);\n --toggle-notch-gradient-color: white;\n}\n\n.tyk-toggle--danger-gradient .tyk-toggle__notch {\n --toggle-notch-gradient-left-color: var(--color-danger-base);\n --toggle-notch-gradient-right-color: var(--color-danger-dark);\n --toggle-notch-gradient-color: white;\n}\n\n.tyk-toggle--warning-gradient .tyk-toggle__notch {\n --toggle-notch-gradient-left-color: var(--color-warning-light);\n --toggle-notch-gradient-right-color: var(--color-warning-base);\n --toggle-notch-gradient-color: var(--text-color);\n}\n\n.tyk-toggle--primary-gradient .tyk-toggle__notch,\n.tyk-toggle--success-gradient .tyk-toggle__notch,\n.tyk-toggle--danger-gradient .tyk-toggle__notch,\n.tyk-toggle--warning-gradient .tyk-toggle__notch {\n border-image: linear-gradient(to right, var(--toggle-notch-gradient-left-color), var(--toggle-notch-gradient-right-color), var(--toggle-notch-gradient-left-color)) 0 round;\n background: transparent linear-gradient(to right, var(--toggle-notch-gradient-left-color), var(--toggle-notch-gradient-right-color), var(--toggle-notch-gradient-left-color));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: var(--toggle-notch-gradient-color);\n}\n\n.empty-toggle {\n padding: 1px;\n}","* {\n box-sizing: border-box;\n}\n\nbody {\n background-color: var(--color-background-base);\n color: var(--text-color);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-regular);\n}\n\n.tyk-main-wrapper {\n display: flex;\n flex-wrap: nowrap;\n}\n\n.tyk-main-content-wrapper {\n flex: 1;\n}\n\n.well {\n background: transparent;\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n box-shadow: none;\n\n &.has-error {\n border-color: var(--color-danger-base);\n }\n}\n",".title-medium {\n font-family: var(--font-family-medium);\n color: var(--label-color);\n font-size: var(--title-medium-font-size);\n}",".right-align {\n text-align: end !important;\n}\n\n.left-align {\n text-align: start !important;\n}\n\n.center-align {\n text-align: center !important;\n}\n\n.left {\n float: inline-start !important;\n}\n\n.right {\n float: inline-end !important;\n}\n\n.hide {\n display: none !important;\n}\n\n.no-margin {\n margin: 0 !important;\n}\n\n.no-margin-bottom {\n margin-block-end: 0 !important;\n}\n\n.no-margin-top {\n margin-block-start: 0 !important;\n}\n\n.no-margin-right {\n margin-inline-end: 0 !important;\n}\n\n.no-margin-left {\n margin-inline-start: 0 !important;\n}\n\n.disabled-section {\n color: var(--color-default-light);\n}\n\n.top-buffer-large {\n margin-block-start: var(--top-buffer-large) !important;\n}\n\n.top-buffer-small {\n margin-block-start: var(--top-buffer-small) !important;\n}\n\n.top-buffer-medium {\n margin-block-start: var(--top-buffer-medium) !important;\n}\n\n.bottom-buffer-large {\n margin-block-end: var(--bottom-buffer-large) !important;\n}\n\n.bottom-buffer-small {\n margin-block-end: var(--bottom-buffer-small) !important;\n}\n\n.bottom-buffer-medium {\n margin-block-end: var(--bottom-buffer-medium) !important;\n}\n\n.right-buffer-large {\n margin-inline-end: var(--right-buffer-large) !important;\n}\n\n.right-buffer-small {\n margin-inline-end: var(--right-buffer-small) !important;\n}\n\n.right-buffer-medium {\n margin-inline-end: var(--right-buffer-medium) !important;\n}\n\n.left-buffer-large {\n margin-inline-start: var(--left-buffer-large) !important;\n}\n\n.left-buffer-small {\n margin-inline-start: var(--left-buffer-small) !important;\n}\n\n.left-buffer-medium {\n margin-inline-start: var(--left-buffer-medium) !important;\n}\n\n.word-wrap {\n word-wrap: break-word;\n word-break: break-all;\n}\n\n.clear-left {\n clear: inline-start;\n}\n\n.flex-container {\n display: flex;\n}\n\n.vertical-center-align {\n align-items: center;\n}\n\n\n.right-align-controls {\n align-items: center;\n display: flex;\n margin-inline-start: auto;\n}\n\n.inline-label {\n margin-inline-end: 15px;\n}\n\n.nowrap {\n white-space: nowrap;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/lib/tyk-ui.js b/lib/tyk-ui.js index e75b3065..3662abfc 100644 --- a/lib/tyk-ui.js +++ b/lib/tyk-ui.js @@ -1,3 +1,3 @@ /*! For license information please see tyk-ui.js.LICENSE.txt */ -(()=>{var e={239:(e,t,n)=>{e=n.nmd(e),function(){var e=function(){return this}();e||"undefined"==typeof window||(e=window);var t=function(e,n,o){"string"==typeof e?(2==arguments.length&&(o=n),t.modules[e]||(t.payloads[e]=o,t.modules[e]=null)):t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace())};t.modules={},t.payloads={};var n,o,i=function(e,t,n){if("string"==typeof t){var o=a(e,t);if(null!=o)return n&&n(),o}else if("[object Array]"===Object.prototype.toString.call(t)){for(var i=[],s=0,l=t.length;sn.length)&&(t=n.length),t-=e.length;var o=n.indexOf(e,t);return-1!==o&&o===t})),String.prototype.repeat||o(String.prototype,"repeat",(function(e){for(var t="",n=this;e>0;)1&e&&(t+=n),(e>>=1)&&(n+=n);return t})),String.prototype.includes||o(String.prototype,"includes",(function(e,t){return-1!=this.indexOf(e,t)})),Object.assign||(Object.assign=function(e){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),n=1;n>>0,o=0|arguments[1],i=o<0?Math.max(n+o,0):Math.min(o,n),r=arguments[2],s=void 0===r?n:0|r,a=s<0?Math.max(n+s,0):Math.min(s,n);i0;)1&t&&(n+=e),(t>>=1)&&(e+=e);return n};var o=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(o,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){for(var t=[],n=0,o=e.length;n65535?2:1}})),ace.define("ace/lib/useragent",["require","exports","module"],(function(e,t,n){"use strict";t.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},t.getOS=function(){return t.isMac?t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS};var o="object"==typeof navigator?navigator:{},i=(/mac|win|linux/i.exec(o.platform)||["other"])[0].toLowerCase(),r=o.userAgent||"",s=o.appName||"";t.isWin="win"==i,t.isMac="mac"==i,t.isLinux="linux"==i,t.isIE="Microsoft Internet Explorer"==s||s.indexOf("MSAppHost")>=0?parseFloat((r.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((r.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=r.match(/ Gecko\/\d+/),t.isOpera="object"==typeof opera&&"[object Opera]"==Object.prototype.toString.call(window.opera),t.isWebKit=parseFloat(r.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(r.split(" Chrome/")[1])||void 0,t.isSafari=parseFloat(r.split(" Safari/")[1])&&!t.isChrome||void 0,t.isEdge=parseFloat(r.split(" Edge/")[1])||void 0,t.isAIR=r.indexOf("AdobeAIR")>=0,t.isAndroid=r.indexOf("Android")>=0,t.isChromeOS=r.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(r)&&!window.MSStream,t.isIOS&&(t.isMac=!0),t.isMobile=t.isIOS||t.isAndroid})),ace.define("ace/lib/dom",["require","exports","module","ace/lib/useragent"],(function(e,t,n){"use strict";var o,i=e("./useragent");t.buildDom=function e(t,n,o){if("string"==typeof t&&t){var i=document.createTextNode(t);return n&&n.appendChild(i),i}if(!Array.isArray(t))return t&&t.appendChild&&n&&n.appendChild(t),t;if("string"!=typeof t[0]||!t[0]){for(var r=[],s=0;s=1.5,i.isChromeOS&&(t.HI_DPI=!1),"undefined"!=typeof document){var l=document.createElement("div");t.HI_DPI&&void 0!==l.style.transform&&(t.HAS_CSS_TRANSFORMS=!0),i.isEdge||void 0===l.style.animationName||(t.HAS_CSS_ANIMATION=!0),l=null}t.HAS_CSS_TRANSFORMS?t.translate=function(e,t,n){e.style.transform="translate("+Math.round(t)+"px, "+Math.round(n)+"px)"}:t.translate=function(e,t,n){e.style.top=Math.round(n)+"px",e.style.left=Math.round(t)+"px"}})),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("./dom");t.get=function(e,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.onreadystatechange=function(){4===n.readyState&&t(n.responseText)},n.send(null)},t.loadScript=function(e,t){var n=o.getDocumentHead(),i=document.createElement("script");i.src=e,n.appendChild(i),i.onload=i.onreadystatechange=function(e,n){!n&&i.readyState&&"loaded"!=i.readyState&&"complete"!=i.readyState||(i=i.onload=i.onreadystatechange=null,n||t())}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}})),ace.define("ace/lib/oop",["require","exports","module"],(function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}})),ace.define("ace/lib/event_emitter",["require","exports","module"],(function(e,t,n){"use strict";var o={},i=function(){this.propagationStopped=!0},r=function(){this.defaultPrevented=!0};o._emit=o._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],o=this._defaultHandlers[e];if(n.length||o){"object"==typeof t&&t||(t={}),t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=r),n=n.slice();for(var s=0;s1&&(i=n[n.length-2]);var s=l[t+"Path"];return null==s?s=l.basePath:"/"==o&&(t=o=""),s&&"/"!=s.slice(-1)&&(s+="/"),s+t+o+i+this.get("suffix")},t.setModuleUrl=function(e,t){return l.$moduleUrls[e]=t},t.setLoader=function(e){a=e},t.dynamicModules=Object.create(null),t.$loading={},t.$loaded={},t.loadModule=function(n,o){var r,s;Array.isArray(n)&&(s=n[0],n=n[1]);var l=function(r){if(r&&!t.$loading[n])return o&&o(r);if(t.$loading[n]||(t.$loading[n]=[]),t.$loading[n].push(o),!(t.$loading[n].length>1)){var l=function(){!function(t,n){"ace/theme/textmate"===t||"./theme/textmate"===t?n(0,e("./theme/textmate")):a?a(t,n):console.error("loader is not configured")}(n,(function(e,o){o&&(t.$loaded[n]=o),t._emit("load.module",{name:n,module:o});var i=t.$loading[n];t.$loading[n]=null,i.forEach((function(e){e&&e(o)}))}))};if(!t.get("packaged"))return l();i.loadScript(t.moduleUrl(n,s),l),c()}};if(t.dynamicModules[n])t.dynamicModules[n]().then((function(e){e.default?l(e.default):l(e)}));else{try{r=this.$require(n)}catch(e){}l(r||t.$loaded[n])}},t.$require=function(e){if("function"==typeof n.require)return n.require(e)},t.setModuleLoader=function(e,n){t.dynamicModules[e]=n};var c=function(){l.basePath||l.workerPath||l.modePath||l.themePath||Object.keys(l.$moduleUrls).length||(console.error("Unable to infer path to ace from script src,","use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes","or with webpack use ace/webpack-resolver"),c=function(){})};t.version="1.32.0"})),ace.define("ace/loader_build",["require","exports","module","ace/lib/fixoldbrowsers","ace/config"],(function(e,t,o){"use strict";e("./lib/fixoldbrowsers");var i=e("./config");i.setLoader((function(t,n){e([t],(function(e){n(null,e)}))}));var r=function(){return this||"undefined"!=typeof window&&window}();function s(t){if(r&&r.document){i.set("packaged",t||e.packaged||o.packaged||r.define&&n.amdD.packaged);var s={},a="",l=document.currentScript||document._currentScript,c=l&&l.ownerDocument||document;l&&l.src&&(a=l.src.split(/[?#]/)[0].split("/").slice(0,-1).join("/")||"");for(var u,h=c.getElementsByTagName("script"),d=0;d ["+this.end.row+"/"+this.end.column+"]"},e.prototype.contains=function(e,t){return 0==this.compare(e,t)},e.prototype.compareRange=function(e){var t,n=e.end,o=e.start;return 1==(t=this.compare(n.row,n.column))?1==(t=this.compare(o.row,o.column))?2:0==t?1:0:-1==t?-2:-1==(t=this.compare(o.row,o.column))?-1:1==t?42:0},e.prototype.comparePoint=function(e){return this.compare(e.row,e.column)},e.prototype.containsRange=function(e){return 0==this.comparePoint(e.start)&&0==this.comparePoint(e.end)},e.prototype.intersects=function(e){var t=this.compareRange(e);return-1==t||0==t||1==t},e.prototype.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},e.prototype.isStart=function(e,t){return this.start.row==e&&this.start.column==t},e.prototype.setStart=function(e,t){"object"==typeof e?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},e.prototype.setEnd=function(e,t){"object"==typeof e?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},e.prototype.inside=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)&&!this.isStart(e,t)},e.prototype.insideStart=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)},e.prototype.insideEnd=function(e,t){return 0==this.compare(e,t)&&!this.isStart(e,t)},e.prototype.compare=function(e,t){return this.isMultiLine()||e!==this.start.row?ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0:tthis.end.column?1:0},e.prototype.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},e.prototype.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},e.prototype.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},e.prototype.clipRows=function(t,n){if(this.end.row>n)var o={row:n+1,column:0};else this.end.rown)var i={row:n+1,column:0};else this.start.row1?++h>4&&(h=1):h=1,r.isIE){var s=Math.abs(e.clientX-a)>5||Math.abs(e.clientY-l)>5;c&&!s||(h=1),c&&clearTimeout(c),c=setTimeout((function(){c=null}),n[h-1]||600),1==h&&(a=e.clientX,l=e.clientY)}if(e._clicks=h,o[i]("mousedown",e),h>4)h=0;else if(h>1)return o[i](d[h],e)}Array.isArray(e)||(e=[e]),e.forEach((function(e){u(e,"mousedown",p,s)}))};var d=function(e){return(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)};function p(e,t,n){var o=d(t);if(!r.isMac&&s){if(t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(o|=8),s.altGr){if(!(3&~o))return;s.altGr=0}if(18===n||17===n){var l="location"in t?t.location:t.keyLocation;17===n&&1===l?1==s[n]&&(a=t.timeStamp):18===n&&3===o&&2===l&&t.timeStamp-a<50&&(s.altGr=!0)}}if(n in i.MODIFIER_KEYS&&(n=-1),o||13!==n||3!==(l="location"in t?t.location:t.keyLocation)||(e(t,o,-n),!t.defaultPrevented)){if(r.isChromeOS&&8&o){if(e(t,o,n),t.defaultPrevented)return;o&=-9}return!!(o||n in i.FUNCTION_KEYS||n in i.PRINTABLE_KEYS)&&e(t,o,n)}}function g(){s=Object.create(null)}if(t.getModifierString=function(e){return i.KEY_MODS[d(e)]},t.addCommandKeyListener=function(e,n,o){if(r.isOldGecko||r.isOpera&&!("KeyboardEvent"in window)){var i=null;u(e,"keydown",(function(e){i=e.keyCode}),o),u(e,"keypress",(function(e){return p(n,e,i)}),o)}else{var a=null;u(e,"keydown",(function(e){s[e.keyCode]=(s[e.keyCode]||0)+1;var t=p(n,e,e.keyCode);return a=e.defaultPrevented,t}),o),u(e,"keypress",(function(e){a&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),a=null)}),o),u(e,"keyup",(function(e){s[e.keyCode]=null}),o),s||(g(),u(window,"focus",g))}},"object"==typeof window&&window.postMessage&&!r.isOldIE){var m=1;t.nextTick=function(e,n){n=n||window;var o="zero-timeout-message-"+m++,i=function(r){r.data==o&&(t.stopPropagation(r),h(n,"message",i),e())};u(n,"message",i),n.postMessage(o,"*")}}t.$idleBlocked=!1,t.onIdle=function(e,n){return setTimeout((function n(){t.$idleBlocked?setTimeout(n,100):e()}),n)},t.$idleBlockId=null,t.blockIdle=function(e){t.$idleBlockId&&clearTimeout(t.$idleBlockId),t.$idleBlocked=!0,t.$idleBlockId=setTimeout((function(){t.$idleBlocked=!1}),e||100)},t.nextFrame="object"==typeof window&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}})),ace.define("ace/clipboard",["require","exports","module"],(function(e,t,n){"use strict";var o;n.exports={lineMode:!1,pasteCancelled:function(){return!!(o&&o>Date.now()-50)||(o=!1)},cancel:function(){o=Date.now()}}})),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/config","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/clipboard","ace/lib/keys"],(function(e,t,n){"use strict";var o=e("../lib/event"),i=e("../config").nls,r=e("../lib/useragent"),s=e("../lib/dom"),a=e("../lib/lang"),l=e("../clipboard"),c=r.isChrome<18,u=r.isIE,h=r.isChrome>63,d=400,p=e("../lib/keys"),g=p.KEY_MODS,m=r.isIOS,f=m?/\s/:/\n/,y=r.isMobile;t.TextInput=function(e,t){var n=s.createElement("textarea");n.className="ace_text-input",n.setAttribute("wrap","off"),n.setAttribute("autocorrect","off"),n.setAttribute("autocapitalize","off"),n.setAttribute("spellcheck",!1),n.style.opacity="0",e.insertBefore(n,e.firstChild);var v=!1,b=!1,w=!1,x=!1,k="";y||(n.style.fontSize="1px");var C=!1,$=!1,S="",E=0,O=0,T=0,A=Number.MAX_SAFE_INTEGER,_=Number.MIN_SAFE_INTEGER,L=0;try{var M=document.activeElement===n}catch(e){}this.setNumberOfExtraLines=function(e){A=Number.MAX_SAFE_INTEGER,_=Number.MIN_SAFE_INTEGER,L=e<0?0:e},this.setAriaOptions=function(e){if(e.activeDescendant?(n.setAttribute("aria-haspopup","true"),n.setAttribute("aria-autocomplete",e.inline?"both":"list"),n.setAttribute("aria-activedescendant",e.activeDescendant)):(n.setAttribute("aria-haspopup","false"),n.setAttribute("aria-autocomplete","both"),n.removeAttribute("aria-activedescendant")),e.role&&n.setAttribute("role",e.role),e.setLabel&&(n.setAttribute("aria-roledescription",i("editor")),t.session)){var o=t.session.selection.cursor.row;n.setAttribute("aria-label",i("Cursor at row $0",[o+1]))}},this.setAriaOptions({role:"textbox"}),o.addListener(n,"blur",(function(e){$||(t.onBlur(e),M=!1)}),t),o.addListener(n,"focus",(function(e){if(!$){if(M=!0,r.isEdge)try{if(!document.hasFocus())return}catch(e){}t.onFocus(e),r.isEdge?setTimeout(N):N()}}),t),this.$focusScroll=!1,this.focus=function(){if(this.setAriaOptions({setLabel:t.renderer.enableKeyboardAccessibility}),k||h||"browser"==this.$focusScroll)return n.focus({preventScroll:!0});var e=n.style.top;n.style.position="fixed",n.style.top="0px";try{var o=0!=n.getBoundingClientRect().top}catch(e){return}var i=[];if(o)for(var r=n.parentElement;r&&1==r.nodeType;)i.push(r),r.setAttribute("ace_nocontext",!0),r=!r.parentElement&&r.getRootNode?r.getRootNode().host:r.parentElement;n.focus({preventScroll:!0}),o&&i.forEach((function(e){e.removeAttribute("ace_nocontext")})),setTimeout((function(){n.style.position="","0px"==n.style.top&&(n.style.top=e)}),0)},this.blur=function(){n.blur()},this.isFocused=function(){return M},t.on("beforeEndOperation",(function(){var e=t.curOp,o=e&&e.command&&e.command.name;if("insertstring"!=o){var i=o&&(e.docChanged||e.selectionChanged);w&&i&&(S=n.value="",U()),N()}}));var R=function(e,n){for(var o=n,i=1;i<=e-A&&i<2*L+1;i++)o+=t.session.getLine(e-i).length+1;return o},N=m?function(e){if(M&&(!v||e)&&!x){e||(e="");var o="\n ab"+e+"cde fg\n";o!=n.value&&(n.value=S=o);var i=4+(e.length||(t.selection.isEmpty()?0:1));4==E&&O==i||n.setSelectionRange(4,i),E=4,O=i}}:function(){if(!w&&!x&&(M||P)){w=!0;var e=0,o=0,i="";if(t.session){var r=t.selection,s=r.getRange(),a=r.cursor.row;a===_+1?_=(A=_+1)+2*L:a===A-1?A=(_=A-1)-2*L:(a_+1)&&(A=a>L?a-L:0,_=a>L?a+L:2*L);for(var l=[],c=A;c<=_;c++)l.push(t.session.getLine(c));if(i=l.join("\n"),e=R(s.start.row,s.start.column),o=R(s.end.row,s.end.column),s.start.row_){var h=t.session.getLine(_+1);o=s.end.row>_+1?h.length:s.end.column,o+=i.length+1,i=i+"\n"+h}else y&&a>0&&(i="\n"+i,o+=1,e+=1);i.length>d&&(e0&&S[d]==e[d];)d++,a--;for(c=c.slice(d),d=1;l>0&&S.length-d>E-1&&S[S.length-d]==e[e.length-d];)d++,l--;u-=d-1,h-=d-1;var p=c.length-d+1;if(p<0&&(a=-p,p=0),c=c.slice(0,p),!(o||c||u||a||l||h))return"";x=!0;var g=!1;return r.isAndroid&&". "==c&&(c=" ",g=!0),c&&!a&&!l&&!u&&!h||C?t.onTextInput(c):t.onTextInput(c,{extendLeft:a,extendRight:l,restoreStart:u,restoreEnd:h}),x=!1,S=e,E=i,O=s,T=h,g?"\n":c},F=function(e){if(w)return V();if(e&&e.inputType){if("historyUndo"==e.inputType)return t.execCommand("undo");if("historyRedo"==e.inputType)return t.execCommand("redo")}var o=n.value,i=D(o,!0);(o.length>500||f.test(i)||y&&E<1&&E==O)&&N()},B=function(e,t,n){var o=e.clipboardData||window.clipboardData;if(o&&!c){var i=u||n?"Text":"text/plain";try{return t?!1!==o.setData(i,t):o.getData(i)}catch(e){if(!n)return B(e,t,!0)}}},W=function(e,i){var r=t.getCopyText();if(!r)return o.preventDefault(e);B(e,r)?(m&&(N(r),v=r,setTimeout((function(){v=!1}),10)),i?t.onCut():t.onCopy(),o.preventDefault(e)):(v=!0,n.value=r,n.select(),setTimeout((function(){v=!1,N(),i?t.onCut():t.onCopy()})))},H=function(e){W(e,!0)},j=function(e){W(e,!1)},z=function(e){var i=B(e);l.pasteCancelled()||("string"==typeof i?(i&&t.onPaste(i,e),r.isIE&&setTimeout(N),o.preventDefault(e)):(n.value="",b=!0))};o.addCommandKeyListener(n,t.onCommandKey.bind(t),t),o.addListener(n,"select",(function(e){w||(v?v=!1:function(e){return 0===e.selectionStart&&e.selectionEnd>=S.length&&e.value===S&&S&&e.selectionEnd!==O}(n)?(t.selectAll(),N()):y&&n.selectionStart!=E&&N())}),t),o.addListener(n,"input",F,t),o.addListener(n,"cut",H,t),o.addListener(n,"copy",j,t),o.addListener(n,"paste",z,t),"oncut"in n&&"oncopy"in n&&"onpaste"in n||o.addListener(e,"keydown",(function(e){if((!r.isMac||e.metaKey)&&e.ctrlKey)switch(e.keyCode){case 67:j(e);break;case 86:z(e);break;case 88:H(e)}}),t);var V=function(){if(w&&t.onCompositionUpdate&&!t.$readOnly){if(C)return G();if(w.useTextareaForIME)t.onCompositionUpdate(n.value);else{var e=n.value;D(e),w.markerRange&&(w.context&&(w.markerRange.start.column=w.selectionStart=w.context.compositionStartOffset),w.markerRange.end.column=w.markerRange.start.column+O-w.selectionStart+T)}}},U=function(e){t.onCompositionEnd&&!t.$readOnly&&(w=!1,t.onCompositionEnd(),t.off("mousedown",G),e&&F())};function G(){$=!0,n.blur(),n.focus(),$=!1}var K,q=a.delayedCall(V,50).schedule.bind(null,null);function Y(){clearTimeout(K),K=setTimeout((function(){k&&(n.style.cssText=k,k=""),t.renderer.$isMousePressed=!1,t.renderer.$keepTextAreaAtCursor&&t.renderer.$moveTextAreaToCursor()}),0)}o.addListener(n,"compositionstart",(function(e){if(!w&&t.onCompositionStart&&!t.$readOnly&&(w={},!C)){e.data&&(w.useTextareaForIME=!1),setTimeout(V,0),t._signal("compositionStart"),t.on("mousedown",G);var o=t.getSelectionRange();o.end.row=o.start.row,o.end.column=o.start.column,w.markerRange=o,w.selectionStart=E,t.onCompositionStart(w),w.useTextareaForIME?(S=n.value="",E=0,O=0):(n.msGetInputContext&&(w.context=n.msGetInputContext()),n.getInputContext&&(w.context=n.getInputContext()))}}),t),o.addListener(n,"compositionupdate",V,t),o.addListener(n,"keyup",(function(e){27==e.keyCode&&n.value.lengthO&&"\n"==S[r]?s=p.end:oO&&S.slice(0,r).split("\n").length>2?s=p.down:r>O&&" "==S[r-1]?(s=p.right,a=g.option):(r>O||r==O&&O!=E&&o==r)&&(s=p.right),o!==r&&(a|=g.shift),s){if(!t.onCommandKey({},a,s)&&t.commands){s=p.keyCodeToString(s);var l=t.commands.findKeyCommand(a,s);l&&t.execCommand(l)}E=o,O=r,N("")}}};document.addEventListener("selectionchange",r),t.on("destroy",(function(){document.removeEventListener("selectionchange",r)}))}(0,t,n),this.destroy=function(){n.parentElement&&n.parentElement.removeChild(n)}},t.$setUserAgentForTests=function(e,t){y=e,m=t}})),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("../lib/useragent"),i=function(){function e(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e)),["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"].forEach((function(t){e[t]=this[t]}),this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}return e.prototype.onMouseDown=function(e){var t=e.inSelection(),n=e.getDocumentPosition();this.mousedownEvent=e;var i=this.editor,r=e.getButton();return 0!==r?((i.getSelectionRange().isEmpty()||1==r)&&i.selection.moveToPosition(n),void(2==r&&(i.textInput.onContextMenu(e.domEvent),o.isMozilla||e.preventDefault()))):(this.mousedownEvent.time=Date.now(),!t||i.isFocused()||(i.focus(),!this.$focusTimeout||this.$clickSelection||i.inMultiSelectMode)?(this.captureMouse(e),this.startSelect(n,e.domEvent._clicks>1),e.preventDefault()):(this.setState("focusWait"),void this.captureMouse(e)))},e.prototype.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var n=this.editor;this.mousedownEvent&&(this.mousedownEvent.getShiftKey()?n.selection.selectToPosition(e):t||n.selection.moveToPosition(e),t||this.select(),n.setStyle("ace_selecting"),this.setState("select"))},e.prototype.select=function(){var e,t=this.editor,n=t.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var o=this.$clickSelection.comparePoint(n);if(-1==o)e=this.$clickSelection.end;else if(1==o)e=this.$clickSelection.start;else{var i=r(this.$clickSelection,n);n=i.cursor,e=i.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(n),t.renderer.scrollCursorIntoView()},e.prototype.extendSelectionBy=function(e){var t,n=this.editor,o=n.renderer.screenToTextCoordinates(this.x,this.y),i=n.selection[e](o.row,o.column);if(this.$clickSelection){var s=this.$clickSelection.comparePoint(i.start),a=this.$clickSelection.comparePoint(i.end);if(-1==s&&a<=0)t=this.$clickSelection.end,i.end.row==o.row&&i.end.column==o.column||(o=i.start);else if(1==a&&s>=0)t=this.$clickSelection.start,i.start.row==o.row&&i.start.column==o.column||(o=i.end);else if(-1==s&&1==a)o=i.end,t=i.start;else{var l=r(this.$clickSelection,o);o=l.cursor,t=l.anchor}n.selection.setSelectionAnchor(t.row,t.column)}n.selection.selectToPosition(o),n.renderer.scrollCursorIntoView()},e.prototype.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting")},e.prototype.focusWait=function(){var e,t,n,o,i=(e=this.mousedownEvent.x,t=this.mousedownEvent.y,n=this.x,o=this.y,Math.sqrt(Math.pow(n-e,2)+Math.pow(o-t,2))),r=Date.now();(i>0||r-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},e.prototype.onDoubleClick=function(e){var t=e.getDocumentPosition(),n=this.editor,o=n.session.getBracketRange(t);o?(o.isEmpty()&&(o.start.column--,o.end.column++),this.setState("select")):(o=n.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=o,this.select()},e.prototype.onTripleClick=function(e){var t=e.getDocumentPosition(),n=this.editor;this.setState("selectByLines");var o=n.getSelectionRange();o.isMultiLine()&&o.contains(t.row,t.column)?(this.$clickSelection=n.selection.getLineRange(o.start.row),this.$clickSelection.end=n.selection.getLineRange(o.end.row).end):this.$clickSelection=n.selection.getLineRange(t.row),this.select()},e.prototype.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},e.prototype.onMouseWheel=function(e){if(!e.getAccelKey()){e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var n=this.$lastScroll,o=e.domEvent.timeStamp,i=o-n.t,r=i?e.wheelX/i:n.vx,s=i?e.wheelY/i:n.vy;i<550&&(r=(r+n.vx)/2,s=(s+n.vy)/2);var a=Math.abs(r/s),l=!1;return a>=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(l=!0),a<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(l=!0),l?n.allowed=o:o-n.allowed<550&&(Math.abs(r)<=1.5*Math.abs(n.vx)&&Math.abs(s)<=1.5*Math.abs(n.vy)?(l=!0,n.allowed=o):n.allowed=0),n.t=o,n.vx=r,n.vy=s,l?(t.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()):void 0}},e}();function r(e,t){if(e.start.row==e.end.row)var n=2*t.column-e.start.column-e.end.column;else if(e.start.row!=e.end.row-1||e.start.column||e.end.column)n=2*t.row-e.start.row-e.end.row;else n=t.column-4;return n<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}i.prototype.selectEnd=i.prototype.selectByLinesEnd,i.prototype.selectAllEnd=i.prototype.selectByLinesEnd,i.prototype.selectByWordsEnd=i.prototype.selectByLinesEnd,t.DefaultHandlers=i})),ace.define("ace/tooltip",["require","exports","module","ace/lib/dom","ace/lib/event","ace/range"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],o=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&o>=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},s=e("./lib/dom"),a=e("./lib/event"),l=e("./range").Range,c="ace_tooltip",u=function(){function e(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}return e.prototype.$init=function(){return this.$element=s.createElement("div"),this.$element.className=c,this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},e.prototype.getElement=function(){return this.$element||this.$init()},e.prototype.setText=function(e){this.getElement().textContent=e},e.prototype.setHtml=function(e){this.getElement().innerHTML=e},e.prototype.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},e.prototype.setClassName=function(e){s.addCssClass(this.getElement(),e)},e.prototype.setTheme=function(e){this.$element.className=c+" "+(e.isDark?"ace_dark ":"")+(e.cssClass||"")},e.prototype.show=function(e,t,n){null!=e&&this.setText(e),null!=t&&null!=n&&this.setPosition(t,n),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},e.prototype.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.getElement().className=c,this.isOpen=!1)},e.prototype.getHeight=function(){return this.getElement().offsetHeight},e.prototype.getWidth=function(){return this.getElement().offsetWidth},e.prototype.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)},e}(),h=new(function(){function e(){this.popups=[]}return e.prototype.addPopup=function(e){this.popups.push(e),this.updatePopups()},e.prototype.removePopup=function(e){var t=this.popups.indexOf(e);-1!==t&&(this.popups.splice(t,1),this.updatePopups())},e.prototype.updatePopups=function(){var e,t,n,o;this.popups.sort((function(e,t){return t.priority-e.priority}));var i=[];try{for(var s=r(this.popups),a=s.next();!a.done;a=s.next()){var l=a.value,c=!0;try{for(var u=(n=void 0,r(i)),h=u.next();!h.done;h=u.next()){var d=h.value;if(this.doPopupsOverlap(d,l)){c=!1;break}}}catch(e){n={error:e}}finally{try{h&&!h.done&&(o=u.return)&&o.call(u)}finally{if(n)throw n.error}}c?i.push(l):l.hide()}}catch(t){e={error:t}}finally{try{a&&!a.done&&(t=s.return)&&t.call(s)}finally{if(e)throw e.error}}},e.prototype.doPopupsOverlap=function(e,t){var n=e.getElement().getBoundingClientRect(),o=t.getElement().getBoundingClientRect();return n.lefto.left&&n.topo.top},e}());t.popupManager=h,t.Tooltip=u;var d=function(e){function t(t){void 0===t&&(t=document.body);var n=e.call(this,t)||this;n.timeout=void 0,n.lastT=0,n.idleTime=350,n.lastEvent=void 0,n.onMouseOut=n.onMouseOut.bind(n),n.onMouseMove=n.onMouseMove.bind(n),n.waitForHover=n.waitForHover.bind(n),n.hide=n.hide.bind(n);var o=n.getElement();return o.style.whiteSpace="pre-wrap",o.style.pointerEvents="auto",o.addEventListener("mouseout",n.onMouseOut),o.tabIndex=-1,o.addEventListener("blur",function(){o.contains(document.activeElement)||this.hide()}.bind(n)),o.addEventListener("wheel",a.stopPropagation),n}return i(t,e),t.prototype.addToEditor=function(e){e.on("mousemove",this.onMouseMove),e.on("mousedown",this.hide),e.renderer.getMouseEventTarget().addEventListener("mouseout",this.onMouseOut,!0)},t.prototype.removeFromEditor=function(e){e.off("mousemove",this.onMouseMove),e.off("mousedown",this.hide),e.renderer.getMouseEventTarget().removeEventListener("mouseout",this.onMouseOut,!0),this.timeout&&(clearTimeout(this.timeout),this.timeout=null)},t.prototype.onMouseMove=function(e,t){this.lastEvent=e,this.lastT=Date.now();var n=t.$mouseHandler.isMousePressed;if(this.isOpen){var o=this.lastEvent&&this.lastEvent.getDocumentPosition();this.range&&this.range.contains(o.row,o.column)&&!n&&!this.isOutsideOfText(this.lastEvent)||this.hide()}this.timeout||n||(this.lastEvent=e,this.timeout=setTimeout(this.waitForHover,this.idleTime))},t.prototype.waitForHover=function(){this.timeout&&clearTimeout(this.timeout);var e=Date.now()-this.lastT;this.idleTime-e>10?this.timeout=setTimeout(this.waitForHover,this.idleTime-e):(this.timeout=null,this.lastEvent&&!this.isOutsideOfText(this.lastEvent)&&this.$gatherData(this.lastEvent,this.lastEvent.editor))},t.prototype.isOutsideOfText=function(e){var t=e.editor,n=e.getDocumentPosition(),o=t.session.getLine(n.row);if(n.column==o.length){var i=t.renderer.pixelToScreenCoordinates(e.clientX,e.clientY),r=t.session.documentToScreenPosition(n.row,n.column);if(r.column!=i.column||r.row!=i.row)return!0}return!1},t.prototype.setDataProvider=function(e){this.$gatherData=e},t.prototype.showForRange=function(e,t,n,o){if(!(o&&o!=this.lastEvent||this.isOpen&&document.activeElement==this.getElement())){var i=e.renderer;this.isOpen||(h.addPopup(this),this.$registerCloseEvents(),this.setTheme(i.theme)),this.isOpen=!0,this.addMarker(t,e.session),this.range=l.fromPoints(t.start,t.end);var r=i.textToScreenCoordinates(t.start.row,t.start.column),s=i.scroller.getBoundingClientRect();r.pageX=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},s=e("../lib/dom"),a=e("../lib/event"),l=e("../tooltip").Tooltip,c=e("../config").nls;t.GutterHandler=function(e){var t,n,o=e.editor,i=o.renderer.$gutterLayer,r=new u(o);function l(){t&&(t=clearTimeout(t)),r.isOpen&&(r.hideTooltip(),o.off("mousewheel",l))}function c(e){r.setPosition(e.x,e.y)}e.editor.setDefaultHandler("guttermousedown",(function(t){if(o.isFocused()&&0==t.getButton()&&"foldWidgets"!=i.getRegion(t)){var n=t.getDocumentPosition().row,r=o.session.selection;if(t.getShiftKey())r.selectTo(n,0);else{if(2==t.domEvent.detail)return o.selectAll(),t.preventDefault();e.$clickSelection=o.selection.getLineRange(n)}return e.setState("selectByLines"),e.captureMouse(t),t.preventDefault()}})),e.editor.setDefaultHandler("guttermousemove",(function(a){var u=a.domEvent.target||a.domEvent.srcElement;if(s.hasCssClass(u,"ace_fold-widget"))return l();r.isOpen&&e.$tooltipFollowsMouse&&c(a),n=a,t||(t=setTimeout((function(){t=null,n&&!e.isMousePressed?function(){var t=n.getDocumentPosition().row;if(t==o.session.getLength()){var s=o.renderer.pixelToScreenCoordinates(0,n.y).row,a=n.$pos;if(s>o.session.documentToScreenRow(a.row,a.column))return l()}if(r.showTooltip(t),r.isOpen)if(o.on("mousewheel",l),e.$tooltipFollowsMouse)c(n);else{var u=n.getGutterRow(),h=i.$lines.get(u);if(h){var d=h.element.querySelector(".ace_gutter_annotation").getBoundingClientRect(),p=r.getElement().style;p.left=d.right+"px",p.top=d.bottom+"px"}else c(n)}}():l()}),50))})),a.addListener(o.renderer.$gutter,"mouseout",(function(e){n=null,r.isOpen&&!t&&(t=setTimeout((function(){t=null,l()}),50))}),o),o.on("changeSession",l),o.on("input",l)};var u=function(e){function t(t){var n=e.call(this,t.container)||this;return n.editor=t,n}return i(t,e),t.prototype.setPosition=function(e,t){var n=window.innerWidth||document.documentElement.clientWidth,o=window.innerHeight||document.documentElement.clientHeight,i=this.getWidth(),r=this.getHeight();(e+=15)+i>n&&(e-=e+i-n),(t+=15)+r>o&&(t-=20+r),l.prototype.setPosition.call(this,e,t)},Object.defineProperty(t,"annotationLabels",{get:function(){return{error:{singular:c("error"),plural:c("errors")},warning:{singular:c("warning"),plural:c("warnings")},info:{singular:c("information message"),plural:c("information messages")}}},enumerable:!1,configurable:!0}),t.prototype.showTooltip=function(e){var n,o=this.editor.renderer.$gutterLayer,i=o.$annotations[e];n=i?{text:Array.from(i.text),type:Array.from(i.type)}:{text:[],type:[]};var r=o.session.getFoldLine(e);if(r&&o.$showFoldedAnnotations){for(var s,a={error:[],warning:[],info:[]},l=e+1;l<=r.end.row;l++)if(o.$annotations[l])for(var c=0;c ").concat(n.text[l]);d[n.type[l].replace("_fold","")].push(g)}var m=[].concat(d.error,d.warning,d.info).join("
    ");this.setHtml(m),this.$element.setAttribute("aria-live","polite"),this.isOpen||(this.setTheme(this.editor.renderer.theme),this.setClassName("ace_gutter-tooltip")),this.show(),this.editor._signal("showGutterTooltip",this)},t.prototype.hideTooltip=function(){this.$element.removeAttribute("aria-live"),this.hide(),this.editor._signal("hideGutterTooltip",this)},t.annotationsToSummaryString=function(e){var n,o,i=[];try{for(var s=r(["error","warning","info"]),a=s.next();!a.done;a=s.next()){var l=a.value;if(e[l].length){var c=1===e[l].length?t.annotationLabels[l].singular:t.annotationLabels[l].plural;i.push("".concat(e[l].length," ").concat(c))}}}catch(e){n={error:e}}finally{try{a&&!a.done&&(o=s.return)&&o.call(s)}finally{if(n)throw n.error}}return i.join(", ")},t}(l);t.GutterTooltip=u})),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("../lib/event"),i=e("../lib/useragent"),r=function(){function e(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1}return e.prototype.stopPropagation=function(){o.stopPropagation(this.domEvent),this.propagationStopped=!0},e.prototype.preventDefault=function(){o.preventDefault(this.domEvent),this.defaultPrevented=!0},e.prototype.stop=function(){this.stopPropagation(),this.preventDefault()},e.prototype.getDocumentPosition=function(){return this.$pos||(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY)),this.$pos},e.prototype.getGutterRow=function(){var e=this.getDocumentPosition().row;return this.editor.session.documentToScreenRow(e,0)-this.editor.session.documentToScreenRow(this.editor.renderer.$gutterLayer.$lines.get(0).row,0)},e.prototype.inSelection=function(){if(null!==this.$inSelection)return this.$inSelection;var e=this.editor.getSelectionRange();if(e.isEmpty())this.$inSelection=!1;else{var t=this.getDocumentPosition();this.$inSelection=e.contains(t.row,t.column)}return this.$inSelection},e.prototype.getButton=function(){return o.getButton(this.domEvent)},e.prototype.getShiftKey=function(){return this.domEvent.shiftKey},e.prototype.getAccelKey=function(){return i.isMac?this.domEvent.metaKey:this.domEvent.ctrlKey},e}();t.MouseEvent=r})),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=e("../lib/event"),r=e("../lib/useragent");function s(e){var t=e.editor,n=o.createElement("div");n.style.cssText="top:-100px;position:absolute;z-index:2147483647;opacity:0.5",n.textContent=" ",["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"].forEach((function(t){e[t]=this[t]}),this),t.on("mousedown",this.onMouseDown.bind(e));var s,l,c,u,h,d,p,g,m,f,y,v=t.container,b=0;function w(){var e=d;(function(e,n){var o=Date.now(),i=!n||e.row!=n.row,r=!n||e.column!=n.column;!f||i||r?(t.moveCursorToPosition(e),f=o,y={x:l,y:c}):a(y.x,y.y,l,c)>5?f=null:o-f>=200&&(t.renderer.scrollCursorIntoView(),f=null)})(d=t.renderer.screenToTextCoordinates(l,c),e),function(e,n){var o=Date.now(),i=t.renderer.layerConfig.lineHeight,r=t.renderer.layerConfig.characterWidth,s=t.renderer.scroller.getBoundingClientRect(),a={x:{left:l-s.left,right:s.right-l},y:{top:c-s.top,bottom:s.bottom-c}},u=Math.min(a.x.left,a.x.right),h=Math.min(a.y.top,a.y.bottom),d={row:e.row,column:e.column};u/r<=2&&(d.column+=a.x.left=200&&t.renderer.scrollCursorIntoView(d):m=o:m=null}(d,e)}function x(){h=t.selection.toOrientedRange(),s=t.session.addMarker(h,"ace_selection",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(u),w(),u=setInterval(w,20),b=0,i.addListener(document,"mousemove",$)}function k(){clearInterval(u),t.session.removeMarker(s),s=null,t.selection.fromOrientedRange(h),t.isFocused()&&!g&&t.$resetCursorStyle(),h=null,d=null,b=0,m=null,f=null,i.removeListener(document,"mousemove",$)}this.onDragStart=function(e){if(this.cancelDrag||!v.draggable){var o=this;return setTimeout((function(){o.startSelect(),o.captureMouse(e)}),0),e.preventDefault()}h=t.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=t.getReadOnly()?"copy":"copyMove",t.container.appendChild(n),i.setDragImage&&i.setDragImage(n,0,0),setTimeout((function(){t.container.removeChild(n)})),i.clearData(),i.setData("Text",t.session.getTextRange()),g=!0,this.setState("drag")},this.onDragEnd=function(e){if(v.draggable=!1,g=!1,this.setState(null),!t.getReadOnly()){var n=e.dataTransfer.dropEffect;p||"move"!=n||t.session.remove(t.getSelectionRange()),t.$resetCursorStyle()}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(!t.getReadOnly()&&S(e.dataTransfer))return l=e.clientX,c=e.clientY,s||x(),b++,e.dataTransfer.dropEffect=p=E(e),i.preventDefault(e)},this.onDragOver=function(e){if(!t.getReadOnly()&&S(e.dataTransfer))return l=e.clientX,c=e.clientY,s||(x(),b++),null!==C&&(C=null),e.dataTransfer.dropEffect=p=E(e),i.preventDefault(e)},this.onDragLeave=function(e){if(--b<=0&&s)return k(),p=null,i.preventDefault(e)},this.onDrop=function(e){if(d){var n=e.dataTransfer;if(g)switch(p){case"move":h=h.contains(d.row,d.column)?{start:d,end:d}:t.moveText(h,d);break;case"copy":h=t.moveText(h,d,!0)}else{var o=n.getData("Text");h={start:d,end:t.session.insert(d,o)},t.focus(),p=null}return k(),i.preventDefault(e)}},i.addListener(v,"dragstart",this.onDragStart.bind(e),t),i.addListener(v,"dragend",this.onDragEnd.bind(e),t),i.addListener(v,"dragenter",this.onDragEnter.bind(e),t),i.addListener(v,"dragover",this.onDragOver.bind(e),t),i.addListener(v,"dragleave",this.onDragLeave.bind(e),t),i.addListener(v,"drop",this.onDrop.bind(e),t);var C=null;function $(){null==C&&(C=setTimeout((function(){null!=C&&s&&k()}),20))}function S(e){var t=e.types;return!t||Array.prototype.some.call(t,(function(e){return"text/plain"==e||"Text"==e}))}function E(e){var t=["copy","copymove","all","uninitialized"],n=r.isMac?e.altKey:e.ctrlKey,o="uninitialized";try{o=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var i="none";return n&&t.indexOf(o)>=0?i="copy":["move","copymove","linkmove","all","uninitialized"].indexOf(o)>=0?i="move":t.indexOf(o)>=0&&(i="copy"),i}}function a(e,t,n,o){return Math.sqrt(Math.pow(n-e,2)+Math.pow(o-t,2))}(function(){this.dragWait=function(){Date.now()-this.mousedownEvent.time>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){this.editor.container.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor;e.container.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var t=r.isWin?"default":"move";e.renderer.setCursorStyle(t),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;r.isIE&&"dragReady"==this.state&&a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>3&&t.dragDrop(),"dragWait"===this.state&&a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))},this.onMouseDown=function(e){if(this.$dragEnabled){this.mousedownEvent=e;var t=this.editor,n=e.inSelection(),o=e.getButton();if(1===(e.domEvent.detail||1)&&0===o&&n){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var i=e.domEvent.target||e.domEvent.srcElement;"unselectable"in i&&(i.unselectable="on"),t.getDragDelay()?(r.isWebKit&&(this.cancelDrag=!0,t.container.draggable=!0),this.setState("dragWait")):this.startDrag(),this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}}).call(s.prototype),t.DragdropHandler=s})),ace.define("ace/mouse/touch_handler",["require","exports","module","ace/mouse/mouse_event","ace/lib/event","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("./mouse_event").MouseEvent,i=e("../lib/event"),r=e("../lib/dom");t.addTouchListeners=function(e,t){var n,s,a,l,c,u,h,d,p,g="scroll",m=0,f=0,y=0,v=0;function b(){var e,n,o;p||(e=window.navigator&&window.navigator.clipboard,n=!1,o=function(o){var i,s,a=o.target.getAttribute("action");if("more"==a||!n)return n=!n,i=t.getCopyText(),s=t.session.getUndoManager().hasUndo(),void p.replaceChild(r.buildDom(n?["span",!i&&["span",{class:"ace_mobile-button",action:"selectall"},"Select All"],i&&["span",{class:"ace_mobile-button",action:"copy"},"Copy"],i&&["span",{class:"ace_mobile-button",action:"cut"},"Cut"],e&&["span",{class:"ace_mobile-button",action:"paste"},"Paste"],s&&["span",{class:"ace_mobile-button",action:"undo"},"Undo"],["span",{class:"ace_mobile-button",action:"find"},"Find"],["span",{class:"ace_mobile-button",action:"openCommandPalette"},"Palette"]]:["span"]),p.firstChild);"paste"==a?e.readText().then((function(e){t.execCommand(a,e)})):a&&("cut"!=a&&"copy"!=a||(e?e.writeText(t.getCopyText()):document.execCommand("copy")),t.execCommand(a)),p.firstChild.style.display="none",n=!1,"openCommandPalette"!=a&&t.focus()},p=r.buildDom(["div",{class:"ace_mobile-menu",ontouchstart:function(e){g="menu",e.stopPropagation(),e.preventDefault(),t.textInput.focus()},ontouchend:function(e){e.stopPropagation(),e.preventDefault(),o(e)},onclick:o},["span"],["span",{class:"ace_mobile-button",action:"more"},"..."]],t.container));var i=t.selection.cursor,s=t.renderer.textToScreenCoordinates(i.row,i.column),a=t.renderer.textToScreenCoordinates(0,0).pageX,l=t.renderer.scrollLeft,c=t.container.getBoundingClientRect();p.style.top=s.pageY-c.top-3+"px",s.pageX-c.left1)return clearTimeout(c),c=null,a=-1,void(g="zoom");d=t.$mouseHandler.isMousePressed=!0;var r=t.renderer.layerConfig.lineHeight,u=t.renderer.layerConfig.lineHeight,p=e.timeStamp;l=p;var b=i[0],w=b.clientX,k=b.clientY;Math.abs(n-w)+Math.abs(s-k)>r&&(a=-1),n=e.clientX=w,s=e.clientY=k,y=v=0;var C=new o(e,t);if(h=C.getDocumentPosition(),p-a<500&&1==i.length&&!m)f++,e.preventDefault(),e.button=0,function(){c=null,clearTimeout(c),t.selection.moveToPosition(h);var e=f>=2?t.selection.getLineRange(h.row):t.session.getBracketRange(h);e&&!e.isEmpty()?t.selection.setRange(e):t.selection.selectWord(),g="wait"}();else{f=0;var $=t.selection.cursor,S=t.selection.isEmpty()?$:t.selection.anchor,E=t.renderer.$cursorLayer.getPixelPosition($,!0),O=t.renderer.$cursorLayer.getPixelPosition(S,!0),T=t.renderer.scroller.getBoundingClientRect(),A=t.renderer.layerConfig.offset,_=t.renderer.scrollLeft,L=function(e,t){return(e/=u)*e+(t=t/r-.75)*t};if(e.clientXR?"cursor":"anchor"),g=R<3.5?"anchor":M<3.5?"cursor":"scroll",c=setTimeout(x,450)}a=p}),t),i.addListener(e,"touchend",(function(e){d=t.$mouseHandler.isMousePressed=!1,u&&clearInterval(u),"zoom"==g?(g="",m=0):c?(t.selection.moveToPosition(h),m=0,b()):"scroll"==g?(m+=60,u=setInterval((function(){m--<=0&&(clearInterval(u),u=null),Math.abs(y)<.01&&(y=0),Math.abs(v)<.01&&(v=0),m<20&&(y*=.9),m<20&&(v*=.9);var e=t.session.getScrollTop();t.renderer.scrollBy(10*y,10*v),e==t.session.getScrollTop()&&(m=0)}),10),w()):b(),clearTimeout(c),c=null}),t),i.addListener(e,"touchmove",(function(e){c&&(clearTimeout(c),c=null);var i=e.touches;if(!(i.length>1||"zoom"==g)){var r=i[0],a=n-r.clientX,u=s-r.clientY;if("wait"==g){if(!(a*a+u*u>4))return e.preventDefault();g="cursor"}n=r.clientX,s=r.clientY,e.clientX=r.clientX,e.clientY=r.clientY;var h=e.timeStamp,d=h-l;if(l=h,"scroll"==g){var p=new o(e,t);p.speed=1,p.wheelX=a,p.wheelY=u,10*Math.abs(a)=e){for(r=h+1;r=e;)r++;for(a=h,l=r-1;a=t.length||2!=(l=n[i-1])&&3!=l||2!=(c=t[i+1])&&3!=c?4:(r&&(c=3),c==l?c:4);case 10:return 2==(l=i>0?n[i-1]:5)&&i+10&&2==n[i-1])return 2;if(r)return 4;for(p=i+1,d=t.length;p=1425&&m<=2303||64286==m;if(l=t[p],f&&(1==l||7==l))return 1}return i<1||5==(l=t[i-1])?4:n[i-1];case 5:return r=!1,s=!0,o;case 6:return a=!0,4;case 13:case 14:case 16:case 17:case 15:r=!1;case h:return 4}}function f(e){var t=e.charCodeAt(0),n=t>>8;return 0==n?t>191?0:d[t]:5==n?/[\u0591-\u05f4]/.test(e)?1:0:6==n?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?12:/[\u0660-\u0669\u066b-\u066c]/.test(e)?3:1642==t?u:/[\u06f0-\u06f9]/.test(e)?2:7:32==n&&t<=8287?p[255&t]:254==n&&t>=65136?7:4}t.L=0,t.R=1,t.EN=2,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.RLE=7,t.DOT="·",t.doBidiReorder=function(e,n,u){if(e.length<2)return{};var d=e.split(""),p=new Array(d.length),y=new Array(d.length),v=[];o=u?1:0,function(e,t,n,u){var h=o?c:l,d=null,p=null,g=null,y=0,v=null,b=-1,w=null,x=null,k=[];if(!u)for(w=0,u=[];w0)if(16==v){for(w=b;w-1){for(w=b;w=0&&8==u[C];C--)t[C]=o}}(d,v,d.length,n);for(var b=0;b7&&n[b]<13||4===n[b]||n[b]===h)?v[b]=t.ON_R:b>0&&"ل"===d[b-1]&&/\u0622|\u0623|\u0625|\u0627/.test(d[b])&&(v[b-1]=v[b]=t.R_H,b++);for(d[d.length-1]===t.DOT&&(v[d.length-1]=t.B),"‫"===d[0]&&(v[0]=t.RLE),b=0;b=0&&(e=this.session.$docRowCache[n])}return e},e.prototype.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length)for(var n,o=this.session.$getRowCacheIndex(t,this.currentRow);this.currentRow-e>0&&(n=this.session.$getRowCacheIndex(t,this.currentRow-e-1))===o;)o=n,e++;else e=this.currentRow;return e},e.prototype.updateRowLine=function(e,t){void 0===e&&(e=this.getDocumentRow());var n=e===this.session.getLength()-1?this.EOF:this.EOL;if(this.wrapIndent=0,this.line=this.session.getLine(e),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE,this.session.$useWrapMode){var r=this.session.$wrapData[e];r&&(void 0===t&&(t=this.getSplitIndex()),t>0&&r.length?(this.wrapIndent=r.indent,this.wrapOffset=this.wrapIndent*this.charWidths[o.L],this.line=tt?this.session.getOverwrite()?e:e-1:t,i=o.getVisualFromLogicalIdx(n,this.bidiMap),r=this.bidiMap.bidiLevels,s=0;!this.session.getOverwrite()&&e<=t&&r[i]%2!=0&&i++;for(var a=0;at&&r[i]%2==0&&(s+=this.charWidths[r[i]]),this.wrapIndent&&(s+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(s+=this.rtlLineOffset),s},e.prototype.getSelections=function(e,t){var n,o=this.bidiMap,i=o.bidiLevels,r=[],s=0,a=Math.min(e,t)-this.wrapIndent,l=Math.max(e,t)-this.wrapIndent,c=!1,u=!1,h=0;this.wrapIndent&&(s+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var d,p=0;p=a&&dn+r/2;){if(n+=r,o===i.length-1){r=0;break}r=this.charWidths[i[++o]]}return o>0&&i[o-1]%2!=0&&i[o]%2==0?(e0&&i[o-1]%2==0&&i[o]%2!=0?t=1+(e>n?this.bidiMap.logicalFromVisual[o]:this.bidiMap.logicalFromVisual[o-1]):this.isRtlDir&&o===i.length-1&&0===r&&i[o-1]%2==0||!this.isRtlDir&&0===o&&i[o]%2!=0?t=1+this.bidiMap.logicalFromVisual[o]:(o>0&&i[o-1]%2!=0&&0!==r&&o--,t=this.bidiMap.logicalFromVisual[o]),0===t&&this.isRtlDir&&t++,t+this.wrapIndent},e}();t.BidiHandler=s})),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],(function(e,t,n){"use strict";var o=e("./lib/oop"),i=e("./lib/lang"),r=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,a=function(){function e(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var t=this;this.cursor.on("change",(function(e){t.$cursorChanged=!0,t.$silent||t._emit("changeCursor"),t.$isEmpty||t.$silent||t._emit("changeSelection"),t.$keepDesiredColumnOnChange||e.old.column==e.value.column||(t.$desiredColumn=null)})),this.anchor.on("change",(function(){t.$anchorChanged=!0,t.$isEmpty||t.$silent||t._emit("changeSelection")}))}return e.prototype.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},e.prototype.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},e.prototype.getCursor=function(){return this.lead.getPosition()},e.prototype.setAnchor=function(e,t){this.$isEmpty=!1,this.anchor.setPosition(e,t)},e.prototype.getAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},e.prototype.getSelectionLead=function(){return this.lead.getPosition()},e.prototype.isBackwards=function(){var e=this.anchor,t=this.lead;return e.row>t.row||e.row==t.row&&e.column>t.column},e.prototype.getRange=function(){var e=this.anchor,t=this.lead;return this.$isEmpty?s.fromPoints(t,t):this.isBackwards()?s.fromPoints(t,e):s.fromPoints(e,t)},e.prototype.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},e.prototype.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},e.prototype.setRange=function(e,t){var n=t?e.end:e.start,o=t?e.start:e.end;this.$setSelection(n.row,n.column,o.row,o.column)},e.prototype.$setSelection=function(e,t,n,o){if(!this.$silent){var i=this.$isEmpty,r=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(e,t),this.cursor.setPosition(n,o),this.$isEmpty=!s.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),(this.$cursorChanged||this.$anchorChanged||i!=this.$isEmpty||r)&&this._emit("changeSelection")}},e.prototype.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},e.prototype.selectTo=function(e,t){this.$moveSelection((function(){this.moveCursorTo(e,t)}))},e.prototype.selectToPosition=function(e){this.$moveSelection((function(){this.moveCursorToPosition(e)}))},e.prototype.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},e.prototype.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},e.prototype.selectUp=function(){this.$moveSelection(this.moveCursorUp)},e.prototype.selectDown=function(){this.$moveSelection(this.moveCursorDown)},e.prototype.selectRight=function(){this.$moveSelection(this.moveCursorRight)},e.prototype.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},e.prototype.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},e.prototype.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},e.prototype.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},e.prototype.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},e.prototype.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},e.prototype.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},e.prototype.getWordRange=function(e,t){if(void 0===t){var n=e||this.lead;e=n.row,t=n.column}return this.session.getWordRange(e,t)},e.prototype.selectWord=function(){this.setSelectionRange(this.getWordRange())},e.prototype.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},e.prototype.getLineRange=function(e,t){var n,o="number"==typeof e?e:this.lead.row,i=this.session.getFoldLine(o);return i?(o=i.start.row,n=i.end.row):n=o,!0===t?new s(o,0,n,this.session.getLine(n).length):new s(o,0,n+1,0)},e.prototype.selectLine=function(){this.setSelectionRange(this.getLineRange())},e.prototype.moveCursorUp=function(){this.moveCursorBy(-1,0)},e.prototype.moveCursorDown=function(){this.moveCursorBy(1,0)},e.prototype.wouldMoveIntoSoftTab=function(e,t,n){var o=e.column,i=e.column+t;return n<0&&(o=e.column-t,i=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(o,i).split(" ").length-1==t},e.prototype.moveCursorLeft=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(0===t.column)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var n=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,n,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},e.prototype.moveCursorRight=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(e.end.row,e.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=o)}}this.moveCursorTo(t.row,t.column)},e.prototype.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},e.prototype.moveCursorFileStart=function(){this.moveCursorTo(0,0)},e.prototype.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),o=n.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var i=this.session.getFoldAt(e,t,1);if(i)this.moveCursorTo(i.end.row,i.end.column);else{if(this.session.nonTokenRe.exec(o)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,o=n.substring(t)),t>=n.length)return this.moveCursorTo(e,n.length),this.moveCursorRight(),void(e0&&this.moveCursorWordLeft());this.session.tokenRe.exec(r)&&(n-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,n)}},e.prototype.$shortWordEndIndex=function(e){var t,n=0,o=/\s/,i=this.session.tokenRe;if(i.lastIndex=0,this.session.tokenRe.exec(e))n=this.session.tokenRe.lastIndex;else{for(;(t=e[n])&&o.test(t);)n++;if(n<1)for(i.lastIndex=0;(t=e[n])&&!i.test(t);)if(i.lastIndex=0,n++,o.test(t)){if(n>2){n--;break}for(;(t=e[n])&&o.test(t);)n++;if(n>2)break}}return i.lastIndex=0,n},e.prototype.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),o=n.substring(t),i=this.session.getFoldAt(e,t,1);if(i)return this.moveCursorTo(i.end.row,i.end.column);if(t==n.length){var r=this.doc.getLength();do{e++,o=this.doc.getLine(e)}while(e0&&/^\s*$/.test(o));n=o.length,/\s+$/.test(o)||(o="")}var r=i.stringReverse(o),s=this.$shortWordEndIndex(r);return this.moveCursorTo(t,n-s)},e.prototype.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},e.prototype.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},e.prototype.moveCursorBy=function(e,t){var n,o=this.session.documentToScreenPosition(this.lead.row,this.lead.column);if(0===t&&(0!==e&&(this.session.$bidiHandler.isBidiRow(o.row,this.lead.row)?(n=this.session.$bidiHandler.getPosLeft(o.column),o.column=Math.round(n/this.session.$bidiHandler.charWidths[0])):n=o.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?o.column=this.$desiredColumn:this.$desiredColumn=o.column),0!=e&&this.session.lineWidgets&&this.session.lineWidgets[this.lead.row]){var i=this.session.lineWidgets[this.lead.row];e<0?e-=i.rowsAbove||0:e>0&&(e+=i.rowCount-(i.rowsAbove||0))}var r=this.session.screenToDocumentPosition(o.row+e,o.column,n);0!==e&&0===t&&r.row===this.lead.row&&(r.column,this.lead.column),this.moveCursorTo(r.row,r.column+t,0===t)},e.prototype.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},e.prototype.moveCursorTo=function(e,t,n){var o=this.session.getFoldAt(e,t,1);o&&(e=o.start.row,t=o.start.column),this.$keepDesiredColumnOnChange=!0;var i=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(i.charAt(t))&&i.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},e.prototype.moveCursorToScreen=function(e,t,n){var o=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(o.row,o.column,n)},e.prototype.detach=function(){this.lead.detach(),this.anchor.detach()},e.prototype.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},e.prototype.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},e.prototype.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var n=this.getCursor();return s.fromPoints(t,n)}catch(e){return s.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},e.prototype.toJSON=function(){if(this.rangeCount)var e=this.ranges.map((function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t}));else(e=this.getRange()).isBackwards=this.isBackwards();return e},e.prototype.fromJSON=function(e){if(null==e.start){if(this.rangeList&&e.length>1){this.toSingleRange(e[0]);for(var t=e.length;t--;){var n=s.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},e.prototype.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0},e}();a.prototype.setSelectionAnchor=a.prototype.setAnchor,a.prototype.getSelectionAnchor=a.prototype.getAnchor,a.prototype.setSelectionRange=a.prototype.setRange,o.implement(a.prototype,r),t.Selection=a})),ace.define("ace/tokenizer",["require","exports","module","ace/lib/report_error"],(function(e,t,n){"use strict";var o=e("./lib/report_error").reportError,i=2e3,r=function(){function e(e){for(var t in this.states=e,this.regExps={},this.matchMappings={},this.states){for(var n=this.states[t],o=[],i=0,r=this.matchMappings[t]={defaultToken:"text"},s="g",a=[],l=0;l1?this.$applyToken:c.token),h>1&&(/\\\d/.test(c.regex)?u=c.regex.replace(/\\([0-9]+)/g,(function(e,t){return"\\"+(parseInt(t,10)+i+1)})):(h=1,u=this.removeCapturingGroups(c.regex)),c.splitRegex||"string"==typeof c.token||a.push(c)),r[i]=l,i+=h,o.push(u),c.onMatch||(c.onMatch=null)}}o.length||(r[0]=0,o.push("$")),a.forEach((function(e){e.splitRegex=this.createSplitterRegexp(e.regex,s)}),this),this.regExps[t]=new RegExp("("+o.join(")|(")+")|($)",s)}}return e.prototype.$setMaxTokenCount=function(e){i=0|e},e.prototype.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),n=this.token.apply(this,t);if("string"==typeof n)return[{type:n,value:e}];for(var o=[],i=0,r=n.length;iu){var y=e.substring(u,f-m.length);d.type==p?d.value+=y:(d.type&&c.push(d),d={type:p,value:y})}for(var v=0;vi){for(h>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});u1&&n[0]!==o&&n.unshift("#tmp",o),{tokens:c,state:n.length?n:o}},e}();r.prototype.reportError=o,t.Tokenizer=r})),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/deep_copy"],(function(e,t,n){"use strict";var o=e("../lib/deep_copy").deepCopy,i=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(t)for(var n in e){for(var o=e[n],i=0;i=this.$rowTokens.length;){if(this.$row+=1,e||(e=this.$session.getLength()),this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},e.prototype.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},e.prototype.getCurrentTokenRow=function(){return this.$row},e.prototype.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,n=e[t].start;if(void 0!==n)return n;for(n=0;t>0;)n+=e[t-=1].value.length;return n},e.prototype.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},e.prototype.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new o(this.$row,t,this.$row,t+e.value.length)},e}();t.TokenIterator=i})),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],(function(e,t,n){"use strict";var o,i=e("../../lib/oop"),r=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,a=e("../../lib/lang"),l=["text","paren.rparen","rparen","paren","punctuation.operator"],c=["text","paren.rparen","rparen","paren","punctuation.operator","comment"],u={},h={'"':'"',"'":"'"},d=function(e){var t=-1;if(e.multiSelect&&(t=e.selection.index,u.rangeCount!=e.multiSelect.rangeCount&&(u={rangeCount:e.multiSelect.rangeCount})),u[t])return o=u[t];o=u[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},p=function(e,t,n,o){var i=e.end.row-e.start.row;return{text:n+t+o,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},g=function(e){e=e||{},this.add("braces","insertion",(function(t,n,i,r,s){var l=i.getCursorPosition(),c=r.doc.getLine(l.row);if("{"==s){d(i);var u=i.getSelectionRange(),h=r.doc.getTextRange(u);if(""!==h&&"{"!==h&&i.getWrapBehavioursEnabled())return p(u,h,"{","}");if(g.isSaneInsertion(i,r))return/[\]\}\)]/.test(c[l.column])||i.inMultiSelectMode||e.braces?(g.recordAutoInsert(i,r,"}"),{text:"{}",selection:[1,1]}):(g.recordMaybeInsert(i,r,"{"),{text:"{",selection:[1,1]})}else if("}"==s){if(d(i),"}"==c.substring(l.column,l.column+1)&&null!==r.$findOpeningBracket("}",{column:l.column+1,row:l.row})&&g.isAutoInsertedClosing(l,c,s))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}else{if("\n"==s||"\r\n"==s){d(i);var m="";if(g.isMaybeInsertedClosing(l,c)&&(m=a.stringRepeat("}",o.maybeInsertedBrackets),g.clearMaybeInsertedClosing()),"}"===c.substring(l.column,l.column+1)){var f=r.findMatchingBracket({row:l.row,column:l.column+1},"}");if(!f)return null;var y=this.$getIndent(r.getLine(f.row))}else{if(!m)return void g.clearMaybeInsertedClosing();y=this.$getIndent(c)}var v=y+r.getTabString();return{text:"\n"+v+"\n"+y+m,selection:[1,v.length,1,v.length]}}g.clearMaybeInsertedClosing()}})),this.add("braces","deletion",(function(e,t,n,i,r){var s=i.doc.getTextRange(r);if(!r.isMultiLine()&&"{"==s){if(d(n),"}"==i.doc.getLine(r.start.row).substring(r.end.column,r.end.column+1))return r.end.column++,r;o.maybeInsertedBrackets--}})),this.add("parens","insertion",(function(e,t,n,o,i){if("("==i){d(n);var r=n.getSelectionRange(),s=o.doc.getTextRange(r);if(""!==s&&n.getWrapBehavioursEnabled())return p(r,s,"(",")");if(g.isSaneInsertion(n,o))return g.recordAutoInsert(n,o,")"),{text:"()",selection:[1,1]}}else if(")"==i){d(n);var a=n.getCursorPosition(),l=o.doc.getLine(a.row);if(")"==l.substring(a.column,a.column+1)&&null!==o.$findOpeningBracket(")",{column:a.column+1,row:a.row})&&g.isAutoInsertedClosing(a,l,i))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}})),this.add("parens","deletion",(function(e,t,n,o,i){var r=o.doc.getTextRange(i);if(!i.isMultiLine()&&"("==r&&(d(n),")"==o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)))return i.end.column++,i})),this.add("brackets","insertion",(function(e,t,n,o,i){if("["==i){d(n);var r=n.getSelectionRange(),s=o.doc.getTextRange(r);if(""!==s&&n.getWrapBehavioursEnabled())return p(r,s,"[","]");if(g.isSaneInsertion(n,o))return g.recordAutoInsert(n,o,"]"),{text:"[]",selection:[1,1]}}else if("]"==i){d(n);var a=n.getCursorPosition(),l=o.doc.getLine(a.row);if("]"==l.substring(a.column,a.column+1)&&null!==o.$findOpeningBracket("]",{column:a.column+1,row:a.row})&&g.isAutoInsertedClosing(a,l,i))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}})),this.add("brackets","deletion",(function(e,t,n,o,i){var r=o.doc.getTextRange(i);if(!i.isMultiLine()&&"["==r&&(d(n),"]"==o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)))return i.end.column++,i})),this.add("string_dquotes","insertion",(function(e,t,n,o,i){var r=o.$mode.$quotes||h;if(1==i.length&&r[i]){if(this.lineCommentStart&&-1!=this.lineCommentStart.indexOf(i))return;d(n);var s=i,a=n.getSelectionRange(),l=o.doc.getTextRange(a);if(!(""===l||1==l.length&&r[l])&&n.getWrapBehavioursEnabled())return p(a,l,s,s);if(!l){var c=n.getCursorPosition(),u=o.doc.getLine(c.row),g=u.substring(c.column-1,c.column),m=u.substring(c.column,c.column+1),f=o.getTokenAt(c.row,c.column),y=o.getTokenAt(c.row,c.column+1);if("\\"==g&&f&&/escape/.test(f.type))return null;var v,b=f&&/string|escape/.test(f.type),w=!y||/string|escape/.test(y.type);if(m==s)(v=b!==w)&&/string\.end/.test(y.type)&&(v=!1);else{if(b&&!w)return null;if(b&&w)return null;var x=o.$mode.tokenRe;x.lastIndex=0;var k=x.test(g);x.lastIndex=0;var C=x.test(m),$=o.$mode.$pairQuotesAfter;if(!($&&$[s]&&$[s].test(g))&&k||C)return null;if(m&&!/[\s;,.})\]\\]/.test(m))return null;var S=u[c.column-2];if(g==s&&(S==s||x.test(S)))return null;v=!0}return{text:v?s+s:"",selection:[1,1]}}}})),this.add("string_dquotes","deletion",(function(e,t,n,o,i){var r=o.$mode.$quotes||h,s=o.doc.getTextRange(i);if(!i.isMultiLine()&&r.hasOwnProperty(s)&&(d(n),o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)==s))return i.end.column++,i})),!1!==e.closeDocComment&&this.add("doc comment end","insertion",(function(e,t,n,o,i){if("doc-start"===e&&("\n"===i||"\r\n"===i)&&n.selection.isEmpty()){var r=n.getCursorPosition(),s=o.doc.getLine(r.row),a=o.doc.getLine(r.row+1),l=this.$getIndent(s);if(/\s*\*/.test(a))return/^\s*\*/.test(s)?{text:i+l+"* ",selection:[1,3+l.length,1,3+l.length]}:{text:i+l+" * ",selection:[1,3+l.length,1,3+l.length]};if(/\/\*\*/.test(s.substring(0,r.column)))return{text:i+l+" * "+i+" "+l+"*/",selection:[1,4+l.length,1,4+l.length]}}}))};g.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),o=new s(t,n.row,n.column);if(!this.$matchTokenType(o.getCurrentToken()||"text",l)){if(/[)}\]]/.test(e.session.getLine(n.row)[n.column]))return!0;var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",l))return!1}return o.stepForward(),o.getCurrentTokenRow()!==n.row||this.$matchTokenType(o.getCurrentToken()||"text",c)},g.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},g.recordAutoInsert=function(e,t,n){var i=e.getCursorPosition(),r=t.doc.getLine(i.row);this.isAutoInsertedClosing(i,r,o.autoInsertedLineEnd[0])||(o.autoInsertedBrackets=0),o.autoInsertedRow=i.row,o.autoInsertedLineEnd=n+r.substr(i.column),o.autoInsertedBrackets++},g.recordMaybeInsert=function(e,t,n){var i=e.getCursorPosition(),r=t.doc.getLine(i.row);this.isMaybeInsertedClosing(i,r)||(o.maybeInsertedBrackets=0),o.maybeInsertedRow=i.row,o.maybeInsertedLineStart=r.substr(0,i.column)+n,o.maybeInsertedLineEnd=r.substr(i.column),o.maybeInsertedBrackets++},g.isAutoInsertedClosing=function(e,t,n){return o.autoInsertedBrackets>0&&e.row===o.autoInsertedRow&&n===o.autoInsertedLineEnd[0]&&t.substr(e.column)===o.autoInsertedLineEnd},g.isMaybeInsertedClosing=function(e,t){return o.maybeInsertedBrackets>0&&e.row===o.maybeInsertedRow&&t.substr(e.column)===o.maybeInsertedLineEnd&&t.substr(0,e.column)==o.maybeInsertedLineStart},g.popAutoInsertedClosing=function(){o.autoInsertedLineEnd=o.autoInsertedLineEnd.substr(1),o.autoInsertedBrackets--},g.clearMaybeInsertedClosing=function(){o&&(o.maybeInsertedBrackets=0,o.maybeInsertedRow=-1)},i.inherits(g,r),t.CstyleBehaviour=g})),ace.define("ace/unicode",["require","exports","module"],(function(e,t,n){"use strict";for(var o=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],i=0,r=[],s=0;s2?o%c!=c-1:o%c==0})}else{if(!this.blockComment)return!1;var p=this.blockComment.start,g=this.blockComment.end,m=new RegExp("^(\\s*)(?:"+l.escapeRegExp(p)+")"),f=new RegExp("(?:"+l.escapeRegExp(g)+")\\s*$"),y=function(e,t){b(e,t)||r&&!/\S/.test(e)||(i.insertInLine({row:t,column:e.length},g),i.insertInLine({row:t,column:a},p))},v=function(e,t){var n;(n=e.match(f))&&i.removeInLine(t,e.length-n[0].length,e.length),(n=e.match(m))&&i.removeInLine(t,n[1].length,n[0].length)},b=function(e,n){if(m.test(e))return!0;for(var o=t.getTokens(n),i=0;ie.length&&(x=e.length)})),a==1/0&&(a=x,r=!1,s=!1),u&&a%c!=0&&(a=Math.floor(a/c)*c),w(s?v:y)},this.toggleBlockComment=function(e,t,n,o){var i=this.blockComment;if(i){!i.start&&i[0]&&(i=i[0]);var r,s,a=(m=new c(t,o.row,o.column)).getCurrentToken(),l=(t.selection,t.selection.toOrientedRange());if(a&&/comment/.test(a.type)){for(var h,d;a&&/comment/.test(a.type);){if(-1!=(f=a.value.indexOf(i.start))){var p=m.getCurrentTokenRow(),g=m.getCurrentTokenColumn()+f;h=new u(p,g,p,g+i.start.length);break}a=m.stepBackward()}var m;for(a=(m=new c(t,o.row,o.column)).getCurrentToken();a&&/comment/.test(a.type);){var f;if(-1!=(f=a.value.indexOf(i.end))){p=m.getCurrentTokenRow(),g=m.getCurrentTokenColumn()+f,d=new u(p,g,p,g+i.end.length);break}a=m.stepForward()}d&&t.remove(d),h&&(t.remove(h),r=h.start.row,s=-i.start.length)}else s=i.start.length,r=n.start.row,t.insert(n.end,i.end),t.insert(n.start,i.start);l.start.row==r&&(l.start.column+=s),l.end.row==r&&(l.end.column+=s),t.selection.fromOrientedRange(l)}},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.autoOutdent=function(e,t,n){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){for(var t in this.$embeds=[],this.$modes={},e)if(e[t]){var n=e[t],i=n.prototype.$id,r=o.$modes[i];r||(o.$modes[i]=r=new n),o.$modes[t]||(o.$modes[t]=r),this.$embeds.push(t),this.$modes[t]=r}var s=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"];for(t=0;tthis.row)){var t=function(e,t,n){var o="insert"==e.action,i=(o?1:-1)*(e.end.row-e.start.row),r=(o?1:-1)*(e.end.column-e.start.column),a=e.start,l=o?a:e.end;return s(t,a,n)?{row:t.row,column:t.column}:s(l,t,!n)?{row:t.row+i,column:t.column+(t.row==l.row?r:0)}:{row:a.row,column:a.column}}(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(t.row,t.column,!0)}},e.prototype.setPosition=function(e,t,n){var o;if(o=n?{row:e,column:t}:this.$clipPositionToDocument(e,t),this.row!=o.row||this.column!=o.column){var i={row:this.row,column:this.column};this.row=o.row,this.column=o.column,this._signal("change",{old:i,value:o})}},e.prototype.detach=function(){this.document.off("change",this.$onChange)},e.prototype.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},e.prototype.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n},e}();function s(e,t,n){var o=n?e.column<=t.column:e.column=n&&(e=n-1,t=void 0);var o=this.getLine(e);return null==t&&(t=o.length),{row:e,column:t=Math.min(Math.max(t,0),o.length)}},e.prototype.clonePos=function(e){return{row:e.row,column:e.column}},e.prototype.pos=function(e,t){return{row:e,column:t}},e.prototype.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},e.prototype.insertFullLines=function(e,t){var n=0;(e=Math.min(Math.max(e,0),this.getLength()))0,o=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},e.prototype.replace=function(e,t){return e instanceof s||(e=s.fromPoints(e.start,e.end)),0===t.length&&e.isEmpty()?e.start:t==this.getTextRange(e)?e.end:(this.remove(e),t?this.insert(e.start,t):e.start)},e.prototype.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},e.prototype.applyDelta=function(e,t){var n="insert"==e.action;(n?e.lines.length<=1&&!e.lines[0]:!s.comparePoints(e.start,e.end))||(n&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(i(this.$lines,e,t),this._signal("change",e)))},e.prototype.$safeApplyDelta=function(e){var t=this.$lines.length;("remove"==e.action&&e.start.row20){n.running=setTimeout(n.$worker,20);break}}n.currentLine=t,-1==o&&(o=t),r<=o&&n.fireUpdateEvent(r,o)}}}return e.prototype.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},e.prototype.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},e.prototype.fireUpdateEvent=function(e,t){var n={first:e,last:t};this._signal("update",{data:n})},e.prototype.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},e.prototype.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},e.prototype.$updateOnChange=function(e){var t=e.start.row,n=e.end.row-t;if(0===n)this.lines[t]=null;else if("remove"==e.action)this.lines.splice(t,n+1,null),this.states.splice(t,n+1,null);else{var o=Array(n+1);o.unshift(t,1),this.lines.splice.apply(this.lines,o),this.states.splice.apply(this.states,o)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},e.prototype.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},e.prototype.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},e.prototype.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},e.prototype.$tokenizeRow=function(e){var t=this.doc.getLine(e),n=this.states[e-1],o=this.tokenizer.getLineTokens(t,n,e);return this.states[e]+""!=o.state+""?(this.states[e]=o.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=o.tokens},e.prototype.cleanup=function(){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.removeAllListeners()},e}();o.implement(r.prototype,i),t.BackgroundTokenizer=r})),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/range"],(function(e,t,n){"use strict";var o=e("./lib/lang"),i=e("./range").Range,r=function(){function e(e,t,n){void 0===n&&(n="text"),this.setRegexp(e),this.clazz=t,this.type=n}return e.prototype.setRegexp=function(e){this.regExp+""!=e+""&&(this.regExp=e,this.cache=[])},e.prototype.update=function(e,t,n,r){if(this.regExp)for(var s=r.firstRow,a=r.lastRow,l={},c=s;c<=a;c++){var u=this.cache[c];null==u&&((u=o.getMatchOffsets(n.getLine(c),this.regExp)).length>this.MAX_RANGES&&(u=u.slice(0,this.MAX_RANGES)),u=u.map((function(e){return new i(c,e.offset,c,e.offset+e.length)})),this.cache[c]=u.length?u:"");for(var h=u.length;h--;){var d=u[h].toScreenRange(n),p=d.toString();l[p]||(l[p]=!0,t.drawSingleLineMarker(e,d,this.clazz,r))}}},e}();r.prototype.MAX_RANGES=500,t.SearchHighlight=r})),ace.define("ace/undomanager",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=function(){function e(){this.$maxRev=0,this.$fromUndo=!1,this.$undoDepth=1/0,this.reset()}return e.prototype.addSession=function(e){this.$session=e},e.prototype.add=function(e,t,n){if(!this.$fromUndo&&e!=this.$lastDelta){if(this.$keepRedoStack||(this.$redoStack.length=0),!1===t||!this.lastDeltas){this.lastDeltas=[];var o=this.$undoStack.length;o>this.$undoDepth-1&&this.$undoStack.splice(0,o-this.$undoDepth+1),this.$undoStack.push(this.lastDeltas),e.id=this.$rev=++this.$maxRev}"remove"!=e.action&&"insert"!=e.action||(this.$lastDelta=e),this.lastDeltas.push(e)}},e.prototype.addSelection=function(e,t){this.selections.push({value:e,rev:t||this.$rev})},e.prototype.startNewGroup=function(){return this.lastDeltas=null,this.$rev},e.prototype.markIgnored=function(e,t){null==t&&(t=this.$rev+1);for(var n=this.$undoStack,o=n.length;o--;){var i=n[o][0];if(i.id<=e)break;i.id0},e.prototype.canRedo=function(){return this.$redoStack.length>0},e.prototype.bookmark=function(e){null==e&&(e=this.$rev),this.mark=e},e.prototype.isAtBookmark=function(){return this.$rev===this.mark},e.prototype.toJSON=function(){return{$redoStack:this.$redoStack,$undoStack:this.$undoStack}},e.prototype.fromJSON=function(e){this.reset(),this.$undoStack=e.$undoStack,this.$redoStack=e.$redoStack},e.prototype.$prettyPrint=function(e){return e?a(e):a(this.$undoStack)+"\n---\n"+a(this.$redoStack)},e}();o.prototype.hasUndo=o.prototype.canUndo,o.prototype.hasRedo=o.prototype.canRedo,o.prototype.isClean=o.prototype.isAtBookmark,o.prototype.markClean=o.prototype.bookmark;var i=e("./range").Range,r=i.comparePoints;function s(e){return{row:e.row,column:e.column}}function a(e){if(e=e||this,Array.isArray(e))return e.map(a).join("\n");var t="";return e.action?(t="insert"==e.action?"+":"-",t+="["+e.lines+"]"):e.value&&(t=Array.isArray(e.value)?e.value.map(l).join("\n"):l(e.value)),e.start&&(t+=l(e)),(e.id||e.rev)&&(t+="\t("+(e.id||e.rev)+")"),t}function l(e){return e.start.row+":"+e.start.column+"=>"+e.end.row+":"+e.end.column}function c(e,t){var n="insert"==e.action,o="insert"==t.action;if(n&&o)if(r(t.start,e.end)>=0)d(t,e,-1);else{if(!(r(t.start,e.start)<=0))return null;d(e,t,1)}else if(n&&!o)if(r(t.start,e.end)>=0)d(t,e,-1);else{if(!(r(t.end,e.start)<=0))return null;d(e,t,-1)}else if(!n&&o)if(r(t.start,e.start)>=0)d(t,e,1);else{if(!(r(t.start,e.start)<=0))return null;d(e,t,1)}else if(!n&&!o)if(r(t.start,e.start)>=0)d(t,e,1);else{if(!(r(t.end,e.start)<=0))return null;d(e,t,-1)}return[t,e]}function u(e,t){for(var n=e.length;n--;)for(var o=0;o=0?d(e,t,-1):(r(e.start,t.start)<=0||d(e,i.fromPoints(t.start,e.start),-1),d(t,e,1));else if(!n&&o)r(t.start,e.end)>=0?d(t,e,-1):(r(t.start,e.start)<=0||d(t,i.fromPoints(e.start,t.start),-1),d(e,t,1));else if(!n&&!o)if(r(t.start,e.end)>=0)d(t,e,-1);else{var s,a;if(!(r(t.end,e.start)<=0))return r(e.start,t.start)<0&&(s=e,e=g(e,t.start)),r(e.end,t.end)>0&&(a=g(e,t.end)),p(t.end,e.start,e.end,-1),a&&!s&&(e.lines=a.lines,e.start=a.start,e.end=a.end,a=e),[t,s,a].filter(Boolean);d(e,t,-1)}return[t,e]}function d(e,t,n){p(e.start,t.start,t.end,n),p(e.end,t.start,t.end,n)}function p(e,t,n,o){e.row==(1==o?t:n).row&&(e.column+=o*(n.column-t.column)),e.row+=o*(n.row-t.row)}function g(e,t){var n=e.lines,o=e.end;e.end=s(t);var i=e.end.row-e.start.row,r=n.splice(i,n.length),a=i?t.column:t.column-e.start.column;return n.push(r[0].substring(0,a)),r[0]=r[0].substr(a),{start:s(t),end:o,lines:r,action:e.action}}function m(e,t){t=function(e){return{start:s(e.start),end:s(e.end),action:e.action,lines:e.lines.slice()}}(t);for(var n=e.length;n--;){for(var o=e[n],i=0;ithis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort((function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)})),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},e.prototype.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},e.prototype.walk=function(e,t,n){var o,i,r=0,s=this.folds,a=!0;null==t&&(t=this.end.row,n=this.end.column);for(var l=0;l0)){var l=o(e,s.start);return 0===a?t&&0!==l?-r-2:r:l>0||0===l&&!t?r:-r-1}}return-r-1},e.prototype.add=function(e){var t=!e.isEmpty(),n=this.pointIndex(e.start,t);n<0&&(n=-n-1);var o=this.pointIndex(e.end,t,n);return o<0?o=-o-1:o++,this.ranges.splice(n,o-n,e)},e.prototype.addList=function(e){for(var t=[],n=e.length;n--;)t.push.apply(t,this.add(e[n]));return t},e.prototype.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},e.prototype.merge=function(){for(var e,t=[],n=this.ranges,i=(n=n.sort((function(e,t){return o(e.start,t.start)})))[0],r=1;r=0},e.prototype.containsPoint=function(e){return this.pointIndex(e)>=0},e.prototype.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},e.prototype.clipRows=function(e,t){var n=this.ranges;if(n[0].start.row>t||n[n.length-1].start.row=o);s++);if("insert"==e.action){for(var l=i-o,c=-t.column+n.column;so);s++)if(u.start.row==o&&u.start.column>=t.column&&(u.start.column==t.column&&this.$bias<=0||(u.start.column+=c,u.start.row+=l)),u.end.row==o&&u.end.column>=t.column){if(u.end.column==t.column&&this.$bias<0)continue;u.end.column==t.column&&c>0&&su.start.column&&u.end.column==r[s+1].start.column&&(u.end.column-=c),u.end.column+=c,u.end.row+=l}}else for(l=o-i,c=t.column-n.column;si);s++)u.end.rowt.column)&&(u.end.column=t.column,u.end.row=t.row):(u.end.column+=c,u.end.row+=l):u.end.row>i&&(u.end.row+=l),u.start.rowt.column)&&(u.start.column=t.column,u.start.row=t.row):(u.start.column+=c,u.start.row+=l):u.start.row>i&&(u.start.row+=l);if(0!=l&&s=e)return i;if(i.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var n=this.$foldData,o=0;for(t&&(o=n.indexOf(t)),-1==o&&(o=0);o=e)return i}return null},this.getFoldedRowCount=function(e,t){for(var n=this.$foldData,o=t-e+1,i=0;i=t){a=e?o-=t-a:o=0);break}s>=e&&(o-=a>=e?s-a:s-e+1)}return o},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort((function(e,t){return e.start.row-t.start.row})),e},this.addFold=function(e,t){var n,o=this.$foldData,s=!1;e instanceof r?n=e:(n=new r(t,e)).collapseChildren=t.collapseChildren,this.$clipRangeToDocument(n.range);var a=n.start.row,l=n.start.column,c=n.end.row,u=n.end.column,h=this.getFoldAt(a,l,1),d=this.getFoldAt(c,u,-1);if(h&&d==h)return h.addSubFold(n);h&&!h.range.isStart(a,l)&&this.removeFold(h),d&&!d.range.isEnd(c,u)&&this.removeFold(d);var p=this.getFoldsInRange(n.range);p.length>0&&(this.removeFolds(p),n.collapseChildren||p.forEach((function(e){n.addSubFold(e)})));for(var g=0;g0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach((function(e){this.expandFold(e)}),this)},this.unfold=function(e,t){var n,i;if(null==e)n=new o(0,0,this.getLength(),0),null==t&&(t=!0);else if("number"==typeof e)n=new o(e,0,e,this.getLine(e).length);else if("row"in e)n=o.fromPoints(e,e);else{if(Array.isArray(e))return i=[],e.forEach((function(e){i=i.concat(this.unfold(e))}),this),i;n=e}for(var r=i=this.getFoldsInRangeList(n);1==i.length&&o.comparePoints(i[0].start,n.start)<0&&o.comparePoints(i[0].end,n.end)>0;)this.expandFolds(i),i=this.getFoldsInRangeList(n);if(0!=t?this.removeFolds(i):this.expandFolds(i),r.length)return r},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var n=this.getFoldLine(e,t);return n?n.end.row:e},this.getRowFoldStart=function(e,t){var n=this.getFoldLine(e,t);return n?n.start.row:e},this.getFoldDisplayLine=function(e,t,n,o,i){null==o&&(o=e.start.row),null==i&&(i=0),null==t&&(t=e.end.row),null==n&&(n=this.getLine(t).length);var r=this.doc,s="";return e.walk((function(e,t,n,a){if(!(tu)break}while(r&&l.test(r.type)&&!/^comment.start/.test(r.type));r=i.stepBackward()}else r=i.getCurrentToken();return c.end.row=i.getCurrentTokenRow(),c.end.column=i.getCurrentTokenColumn(),/^comment.end/.test(r.type)||(c.end.column+=r.value.length-2),c}},this.foldAll=function(e,t,n,o){null==n&&(n=1e5);var i=this.foldWidgets;if(i){t=t||this.getLength();for(var r=e=e||0;r=e&&(r=s.end.row,s.collapseChildren=n,this.addFold("...",s))}}},this.foldToLevel=function(e){for(this.foldAll();e-- >0;)this.unfold(null,!1)},this.foldAllComments=function(){var e=this;this.foldAll(null,null,null,(function(t){for(var n=e.getTokens(t),o=0;o=0;){var r=n[i];if(null==r&&(r=n[i]=this.getFoldWidget(i)),"start"==r){var s=this.getFoldWidgetRange(i);if(o||(o=s),s&&s.end.row>=e)break}i--}return{range:-1!==i&&s,firstRange:o}},this.onFoldWidgetClick=function(e,t){t instanceof a&&(t=t.domEvent);var n={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey};if(!this.$toggleFoldWidget(e,n)){var o=t.target||t.srcElement;o&&/ace_fold-widget/.test(o.className)&&(o.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(this.getFoldWidget){var n=this.getFoldWidget(e),o=this.getLine(e),i="end"===n?-1:1,r=this.getFoldAt(e,-1===i?0:o.length,i);if(r)return t.children||t.all?this.removeFold(r):this.expandFold(r),r;var s=this.getFoldWidgetRange(e,!0);if(s&&!s.isMultiLine()&&(r=this.getFoldAt(s.start.row,s.start.column,1))&&s.isEqual(r.range))return this.removeFold(r),r;if(t.siblings){var a=this.getParentFoldRangeData(e);if(a.range)var l=a.range.start.row+1,c=a.range.end.row;this.foldAll(l,c,t.all?1e4:0)}else t.children?(c=s?s.end.row:this.getLength(),this.foldAll(e+1,c,t.all?1e4:0)):s&&(t.all&&(s.collapseChildren=1e4),this.addFold("...",s));return s}},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var n=this.$toggleFoldWidget(t,{});if(!n){var o=this.getParentFoldRangeData(t,!0);if(n=o.range||o.firstRange){t=n.start.row;var i=this.getFoldAt(t,this.getLine(t).length,1);i?this.removeFold(i):this.addFold("...",n)}}},this.updateFoldWidgets=function(e){var t=e.start.row,n=e.end.row-t;if(0===n)this.foldWidgets[t]=null;else if("remove"==e.action)this.foldWidgets.splice(t,n+1,null);else{var o=Array(n+1);o.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,o)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}})),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],(function(e,t,n){"use strict";var o=e("../token_iterator").TokenIterator,i=e("../range").Range;t.BracketMatch=function(){this.findMatchingBracket=function(e,t){if(0==e.column)return null;var n=t||this.getLine(e.row).charAt(e.column-1);if(""==n)return null;var o=n.match(/([\(\[\{])|([\)\]\}])/);return o?o[1]?this.$findClosingBracket(o[1],e):this.$findOpeningBracket(o[2],e):null},this.getBracketRange=function(e){var t,n=this.getLine(e.row),o=!0,r=n.charAt(e.column-1),s=r&&r.match(/([\(\[\{])|([\)\]\}])/);if(s||(r=n.charAt(e.column),e={row:e.row,column:e.column+1},s=r&&r.match(/([\(\[\{])|([\)\]\}])/),o=!1),!s)return null;if(s[1]){if(!(a=this.$findClosingBracket(s[1],e)))return null;t=i.fromPoints(e,a),o||(t.end.column++,t.start.column--),t.cursor=t.end}else{var a;if(!(a=this.$findOpeningBracket(s[2],e)))return null;t=i.fromPoints(a,e),o||(t.start.column++,t.end.column--),t.cursor=t.start}return t},this.getMatchingBracketRanges=function(e,t){var n=this.getLine(e.row),o=/([\(\[\{])|([\)\]\}])/,r=!t&&n.charAt(e.column-1),s=r&&r.match(o);if(s||(r=(void 0===t||t)&&n.charAt(e.column),e={row:e.row,column:e.column+1},s=r&&r.match(o)),!s)return null;var a=new i(e.row,e.column-1,e.row,e.column),l=s[1]?this.$findClosingBracket(s[1],e):this.$findOpeningBracket(s[2],e);return l?[a,new i(l.row,l.column,l.row,l.column+1)]:[a]},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(e,t,n){var i=this.$brackets[e],r=1,s=new o(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){n||(n=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)").replace(/-close\b/,"-(close|open)")+")+"));for(var l=t.column-s.getCurrentTokenColumn()-2,c=a.value;;){for(;l>=0;){var u=c.charAt(l);if(u==i){if(0==(r-=1))return{row:s.getCurrentTokenRow(),column:l+s.getCurrentTokenColumn()}}else u==e&&(r+=1);l-=1}do{a=s.stepBackward()}while(a&&!n.test(a.type));if(null==a)break;l=(c=a.value).length-1}return null}},this.$findClosingBracket=function(e,t,n){var i=this.$brackets[e],r=1,s=new o(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){n||(n=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)").replace(/-open\b/,"-(close|open)")+")+"));for(var l=t.column-s.getCurrentTokenColumn();;){for(var c=a.value,u=c.length;l"===t.value?o=!0:-1!==t.type.indexOf("tag-name")&&(n=!0))}while(t&&!n);return t},this.$findClosingTag=function(e,t){var n,o=t.value,r=t.value,s=0,a=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);t=e.stepForward();var l=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length),c=!1;do{if(n=t,t=e.stepForward()){if(">"===t.value&&!c){var u=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);c=!0}if(-1!==t.type.indexOf("tag-name")){if(r===(o=t.value))if("<"===n.value)s++;else if(""!==t.value)return;var p=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1)}}else r===o&&"/>"===t.value&&--s<0&&(p=d=h=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+2),u=new i(l.end.row,l.end.column,l.end.row,l.end.column+1))}}while(t&&s>=0);if(a&&u&&h&&p&&l&&d)return{openTag:new i(a.start.row,a.start.column,u.end.row,u.end.column),closeTag:new i(h.start.row,h.start.column,p.end.row,p.end.column),openTagName:l,closeTagName:d}},this.$findOpeningTag=function(e,t){var n=e.getCurrentToken(),o=t.value,r=0,s=e.getCurrentTokenRow(),a=e.getCurrentTokenColumn(),l=a+2,c=new i(s,a,s,l);e.stepForward();var u=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length);if((t=e.stepForward())&&">"===t.value){var h=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);e.stepBackward(),e.stepBackward();do{if(t=n,s=e.getCurrentTokenRow(),l=(a=e.getCurrentTokenColumn())+t.value.length,n=e.stepBackward(),t)if(-1!==t.type.indexOf("tag-name")){if(o===t.value)if("<"===n.value){if(++r>0){var d=new i(s,a,s,l),p=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);do{t=e.stepForward()}while(t&&">"!==t.value);var g=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1)}}else""===t.value){for(var m=0,f=n;f;){if(-1!==f.type.indexOf("tag-name")&&f.value===o){r--;break}if("<"===f.value)break;f=e.stepBackward(),m++}for(var y=0;yn&&(this.$docRowCache.splice(n,t),this.$screenRowCache.splice(n,t))},e.prototype.$getRowCacheIndex=function(e,t){for(var n=0,o=e.length-1;n<=o;){var i=n+o>>1,r=e[i];if(t>r)n=i+1;else{if(!(t=t);r++);return(n=o[r])?(n.index=r,n.start=i-n.value.length,n):null},e.prototype.setUndoManager=function(e){if(this.$undoManager=e,this.$informUndoManager&&this.$informUndoManager.cancel(),e){var t=this;e.addSession(this),this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.mergeUndoDeltas=!1},this.$informUndoManager=i.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},e.prototype.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},e.prototype.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},e.prototype.getTabString=function(){return this.getUseSoftTabs()?i.stringRepeat(" ",this.getTabSize()):"\t"},e.prototype.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},e.prototype.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},e.prototype.setTabSize=function(e){this.setOption("tabSize",e)},e.prototype.getTabSize=function(){return this.$tabSize},e.prototype.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize==0},e.prototype.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},e.prototype.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},e.prototype.setOverwrite=function(e){this.setOption("overwrite",e)},e.prototype.getOverwrite=function(){return this.$overwrite},e.prototype.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},e.prototype.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},e.prototype.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},e.prototype.getBreakpoints=function(){return this.$breakpoints},e.prototype.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(o=!!n.charAt(t-1).match(this.tokenRe)),o||(o=!!n.charAt(t).match(this.tokenRe)),o)var i=this.tokenRe;else i=/^\s+$/.test(n.slice(t-1,t+1))?/\s/:this.nonTokenRe;var r=t;if(r>0){do{r--}while(r>=0&&n.charAt(r).match(i));r++}for(var s=t;se&&(e=t.screenWidth)})),this.lineWidgetWidth=e},e.prototype.$computeWidth=function(e){if(this.$modified||e){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var t=this.doc.getAllLines(),n=this.$rowLengthCache,o=0,i=0,r=this.$foldData[i],s=r?r.start.row:1/0,a=t.length,l=0;ls){if((l=r.end.row+1)>=a)break;s=(r=this.$foldData[i++])?r.start.row:1/0}null==n[l]&&(n[l]=this.$getStringScreenWidth(t[l])[0]),n[l]>o&&(o=n[l])}this.screenWidth=o}},e.prototype.getLine=function(e){return this.doc.getLine(e)},e.prototype.getLines=function(e,t){return this.doc.getLines(e,t)},e.prototype.getLength=function(){return this.doc.getLength()},e.prototype.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},e.prototype.insert=function(e,t){return this.doc.insert(e,t)},e.prototype.remove=function(e){return this.doc.remove(e)},e.prototype.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},e.prototype.undoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var n=e.length-1;-1!=n;n--){var o=e[n];"insert"==o.action||"remove"==o.action?this.doc.revertDelta(o):o.folds&&this.addFolds(o.folds)}!t&&this.$undoSelect&&(e.selectionBefore?this.selection.fromJSON(e.selectionBefore):this.selection.setRange(this.$getUndoSelection(e,!0))),this.$fromUndo=!1}},e.prototype.redoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var n=0;ne.end.column&&(r.start.column+=c),r.end.row==e.end.row&&r.end.column>e.end.column&&(r.end.column+=c)),s&&r.start.row>=e.end.row&&(r.start.row+=s,r.end.row+=s)}if(r.end=this.insert(r.start,o),i.length){var a=e.start,l=r.start,c=(s=l.row-a.row,l.column-a.column);this.addFolds(i.map((function(e){return(e=e.clone()).start.row==a.row&&(e.start.column+=c),e.end.row==a.row&&(e.end.column+=c),e.start.row+=s,e.end.row+=s,e})))}return r},e.prototype.indentRows=function(e,t,n){n=n.replace(/\t/g,this.getTabString());for(var o=e;o<=t;o++)this.doc.insertInLine({row:o,column:0},n)},e.prototype.outdentRows=function(e){for(var t=e.collapseRows(),n=new u(0,0,0,0),o=this.getTabSize(),i=t.start.row;i<=t.end.row;++i){var r=this.getLine(i);n.start.row=i,n.end.row=i;for(var s=0;s0){var i;if((i=this.getRowFoldEnd(t+n))>this.doc.getLength()-1)return 0;o=i-t}else e=this.$clipRowToDocument(e),o=(t=this.$clipRowToDocument(t))-e+1;var r=new u(e,0,t,Number.MAX_VALUE),s=this.getFoldsInRange(r).map((function(e){return(e=e.clone()).start.row+=o,e.end.row+=o,e})),a=0==n?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+o,a),s.length&&this.addFolds(s),o},e.prototype.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},e.prototype.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},e.prototype.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},e.prototype.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},e.prototype.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},e.prototype.$clipPositionToDocument=function(e,t){if(t=Math.max(0,t),e<0)e=0,t=0;else{var n=this.doc.getLength();e>=n?(e=n-1,t=this.doc.getLine(n-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},e.prototype.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},e.prototype.setUseWrapMode=function(e){if(e!=this.$useWrapMode){if(this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0),e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},e.prototype.getUseWrapMode=function(){return this.$useWrapMode},e.prototype.setWrapLimitRange=function(e,t){this.$wrapLimitRange.min===e&&this.$wrapLimitRange.max===t||(this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},e.prototype.adjustWrapLimit=function(e,t){var n=this.$wrapLimitRange;n.max<0&&(n={min:t,max:t});var o=this.$constrainWrapLimit(e,n.min,n.max);return o!=this.$wrapLimit&&o>1&&(this.$wrapLimit=o,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0)},e.prototype.$constrainWrapLimit=function(e,t,n){return t&&(e=Math.max(t,e)),n&&(e=Math.min(n,e)),e},e.prototype.getWrapLimit=function(){return this.$wrapLimit},e.prototype.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},e.prototype.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},e.prototype.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,n=e.action,o=e.start,i=e.end,r=o.row,s=i.row,a=s-r,l=null;if(this.$updating=!0,0!=a)if("remove"===n){this[t?"$wrapData":"$rowLengthCache"].splice(r,a);var c=this.$foldData;l=this.getFoldsInRange(e),this.removeFolds(l);var u=0;if(m=this.getFoldLine(i.row)){m.addRemoveChars(i.row,i.column,o.column-i.column),m.shiftRow(-a);var h=this.getFoldLine(r);h&&h!==m&&(h.merge(m),m=h),u=c.indexOf(m)+1}for(;u=i.row&&m.shiftRow(-a);s=r}else{var d=Array(a);d.unshift(r,0);var p=t?this.$wrapData:this.$rowLengthCache;if(p.splice.apply(p,d),c=this.$foldData,u=0,m=this.getFoldLine(r)){var g=m.range.compareInside(o.row,o.column);0==g?(m=m.split(o.row,o.column))&&(m.shiftRow(a),m.addRemoveChars(s,0,i.column-o.column)):-1==g&&(m.addRemoveChars(r,0,i.column-o.column),m.shiftRow(a)),u=c.indexOf(m)+1}for(;u=r&&m.shiftRow(a)}}else a=Math.abs(e.start.column-e.end.column),"remove"===n&&(l=this.getFoldsInRange(e),this.removeFolds(l),a=-a),(m=this.getFoldLine(r))&&m.addRemoveChars(r,o.column,a);return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(r,s):this.$updateRowLengthCache(r,s),l},e.prototype.$updateRowLengthCache=function(e,t,n){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},e.prototype.$updateWrapData=function(e,t){var n,o,i=this.doc.getAllLines(),r=this.getTabSize(),s=this.$wrapData,a=this.$wrapLimit,l=e;for(t=Math.min(t,i.length-1);l<=t;)(o=this.getFoldLine(l,o))?(n=[],o.walk(function(e,t,o,r){var s;if(null!=e){(s=this.$getDisplayTokens(e,n.length))[0]=v;for(var a=1;at-h;){var d=r+t-h;if(e[d-1]>=x&&e[d]>=x)u(d);else if(e[d]!=v&&e[d]!=b){for(var p=Math.max(d-(t-(t>>2)),r-1);d>p&&e[d]p&&e[d]p&&e[d]==w;)d--}else for(;d>p&&e[d]p?u(++d):(e[d=r+t]==y&&d--,u(d-h))}else{for(;d!=r-1&&e[d]!=v;d--);if(d>r){u(d);continue}for(d=r+t;d39&&r<48||r>57&&r<64?o.push(w):r>=4352&&$(r)?o.push(f,y):o.push(f)}return o},e.prototype.$getStringScreenWidth=function(e,t,n){if(0==t)return[0,0];var o,i;for(null==t&&(t=1/0),n=n||0,i=0;i=4352&&$(o)?n+=2:n+=1,!(n>t));i++);return[n,i]},e.prototype.getRowLength=function(e){var t=1;return this.lineWidgets&&(t+=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0),this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+t:t},e.prototype.getRowLineCount=function(e){return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1:1},e.prototype.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),n=this.$wrapData[t.row];return n.length&&n[0]=0){a=c[u],r=this.$docRowCache[u];var d=e>c[h-1]}else d=!h;for(var p=this.getLength()-1,g=this.getNextFoldLine(r),m=g?g.start.row:1/0;a<=e&&!(a+(l=this.getRowLength(r))>e||r>=p);)a+=l,++r>m&&(r=g.end.row+1,m=(g=this.getNextFoldLine(r,g))?g.start.row:1/0),d&&(this.$docRowCache.push(r),this.$screenRowCache.push(a));if(g&&g.start.row<=r)o=this.getFoldDisplayLine(g),r=g.start.row;else{if(a+l<=e||r>p)return{row:p,column:this.getLine(p).length};o=this.getLine(r),g=null}var f=0,y=Math.floor(e-a);if(this.$useWrapMode){var v=this.$wrapData[r];v&&(i=v[y],y>0&&v.length&&(f=v.indent,s=v[y-1]||v[v.length-1],o=o.substring(s)))}return void 0!==n&&this.$bidiHandler.isBidiRow(a+y,r,y)&&(t=this.$bidiHandler.offsetToCol(n)),s+=this.$getStringScreenWidth(o,t-f)[1],this.$useWrapMode&&s>=i&&(s=i-1),g?g.idxToPosition(s):{row:r,column:s}},e.prototype.documentToScreenPosition=function(e,t){if(void 0===t)var n=this.$clipPositionToDocument(e.row,e.column);else n=this.$clipPositionToDocument(e,t);e=n.row,t=n.column;var o,i=0,r=null;(o=this.getFoldAt(e,t,1))&&(e=o.start.row,t=o.start.column);var s,a=0,l=this.$docRowCache,c=this.$getRowCacheIndex(l,e),u=l.length;if(u&&c>=0){a=l[c],i=this.$screenRowCache[c];var h=e>l[u-1]}else h=!u;for(var d=this.getNextFoldLine(a),p=d?d.start.row:1/0;a=p){if((s=d.end.row+1)>e)break;p=(d=this.getNextFoldLine(s,d))?d.start.row:1/0}else s=a+1;i+=this.getRowLength(a),a=s,h&&(this.$docRowCache.push(a),this.$screenRowCache.push(i))}var g="";d&&a>=p?(g=this.getFoldDisplayLine(d,e,t),r=d.start.row):(g=this.getLine(e).substring(0,t),r=e);var m=0;if(this.$useWrapMode){var f=this.$wrapData[r];if(f){for(var y=0;g.length>=f[y];)i++,y++;g=g.substring(f[y-1]||0,g.length),m=y>0?f.indent:0}}return this.lineWidgets&&this.lineWidgets[a]&&this.lineWidgets[a].rowsAbove&&(i+=this.lineWidgets[a].rowsAbove),{row:i,column:m+this.$getStringScreenWidth(g)[0]}},e.prototype.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},e.prototype.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},e.prototype.getScreenLength=function(){var e=0,t=null;if(this.$useWrapMode)for(var n=this.$wrapData.length,o=0,i=(a=0,(t=this.$foldData[a++])?t.start.row:1/0);oi&&(o=t.end.row+1,i=(t=this.$foldData[a++])?t.start.row:1/0)}else{e=this.getLength();for(var s=this.$foldData,a=0;an);r++);return[o,r]})},e.prototype.destroy=function(){this.destroyed||(this.bgTokenizer.setDocument(null),this.bgTokenizer.cleanup(),this.destroyed=!0),this.$stopWorker(),this.removeAllListeners(),this.doc&&this.doc.off("change",this.$onChange),this.selection.detach()},e}();m.$uid=0,m.prototype.$modes=s.$modes,m.prototype.getValue=m.prototype.toString,m.prototype.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},m.prototype.$overwrite=!1,m.prototype.$mode=null,m.prototype.$modeId=null,m.prototype.$scrollTop=0,m.prototype.$scrollLeft=0,m.prototype.$wrapLimit=80,m.prototype.$useWrapMode=!1,m.prototype.$wrapLimitRange={min:null,max:null},m.prototype.lineWidgets=null,m.prototype.isFullWidth=$,o.implement(m.prototype,a);var f=1,y=2,v=3,b=4,w=9,x=10,k=11,C=12;function $(e){return!(e<4352)&&(e>=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510)}e("./edit_session/folding").Folding.call(m.prototype),e("./edit_session/bracket_match").BracketMatch.call(m.prototype),s.defineOptions(m.prototype,"session",{wrap:{set:function(e){if(e&&"off"!=e?"free"==e?e=!0:"printMargin"==e?e=-1:"string"==typeof e&&(e=parseInt(e,10)||!1):e=!1,this.$wrap!=e)if(this.$wrap=e,e){var t="number"==typeof e?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}else this.setUseWrapMode(!1)},get:function(){return this.getUseWrapMode()?-1==this.$wrap?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){(e="auto"==e?"text"!=this.$mode.type:"text"!=e)!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){(e=parseInt(e))>0&&this.$tabSize!==e&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function(e){this.setFoldStyle(e)},handlesSet:!0},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId},handlesSet:!0}}),t.EditSession=m})),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],(function(e,t,n){"use strict";var o=e("./lib/lang"),i=e("./lib/oop"),r=e("./range").Range,s=function(){function e(){this.$options={}}return e.prototype.set=function(e){return i.mixin(this.$options,e),this},e.prototype.getOptions=function(){return o.copyObject(this.$options)},e.prototype.setOptions=function(e){this.$options=e},e.prototype.find=function(e){var t=this.$options,n=this.$matchIterator(e,t);if(!n)return!1;var o=null;return n.forEach((function(e,n,i,s){return o=new r(e,n,i,s),!(n==s&&t.start&&t.start.start&&0!=t.skipCurrent&&o.isEqual(t.start)&&(o=null,1))})),o},e.prototype.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var n=t.range,i=n?e.getLines(n.start.row,n.end.row):e.doc.getAllLines(),s=[],a=t.re;if(t.$isMultiLine){var l,c=a.length,u=i.length-c;e:for(var h=a.offset||0;h<=u;h++){for(var d=0;dm||(s.push(l=new r(h,m,h+c-1,f)),c>2&&(h=h+c-2))}}else for(var y=0;yx&&s[d].end.row==k;)d--;for(s=s.slice(y,d+1),y=0,d=s.length;y=c;n--)if(p(n,Number.MAX_VALUE,e))return;if(0!=t.wrap)for(n=u,c=l.row;n>=c;n--)if(p(n,Number.MAX_VALUE,e))return}};else h=function(e){var n=l.row;if(!p(n,l.column,e)){for(n+=1;n<=u;n++)if(p(n,0,e))return;if(0!=t.wrap)for(n=c,u=l.row;n<=u;n++)if(p(n,0,e))return}};if(t.$isMultiLine)var d=n.length,p=function(t,o,r){var s=i?t-d+1:t;if(!(s<0||s+d>e.getLength())){var a=e.getLine(s),l=a.search(n[0]);if(!(!i&&lo))return!!r(s,l,s+d-1,u)||void 0}}};else p=i?function(t,i,r){var a,l=e.getLine(t),c=[],u=0;for(n.lastIndex=0;a=n.exec(l);){var h=a[0].length;if(u=a.index,!h){if(u>=l.length)break;n.lastIndex=u+=o.skipEmptyMatch(l,u,s)}if(a.index+h>i)break;c.push(a.index,h)}for(var d=c.length-1;d>=0;d-=2){var p=c[d-1];if(r(t,p,t,p+(h=c[d])))return!0}}:function(t,i,r){var a,l,c=e.getLine(t);for(n.lastIndex=i;l=n.exec(c);){var u=l[0].length;if(r(t,a=l.index,t,a+u))return!0;if(!u&&(n.lastIndex=a+=o.skipEmptyMatch(c,a,s),a>=c.length))return!1}};return{forEach:h}},e}();t.Search=s})),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("../lib/keys"),s=e("../lib/useragent"),a=r.KEY_MODS,l=function(){function e(e,t){this.$init(e,t,!1)}return e.prototype.$init=function(e,t,n){this.platform=t||(s.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=n},e.prototype.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},e.prototype.removeCommand=function(e,t){var n=e&&("string"==typeof e?e:e.name);e=this.commands[n],t||delete this.commands[n];var o=this.commandKeyBinding;for(var i in o){var r=o[i];if(r==e)delete o[i];else if(Array.isArray(r)){var s=r.indexOf(e);-1!=s&&(r.splice(s,1),1==r.length&&(o[i]=r[0]))}}},e.prototype.bindKey=function(e,t,n){if("object"==typeof e&&e&&(null==n&&(n=e.position),e=e[this.platform]),e)return"function"==typeof t?this.addCommand({exec:t,bindKey:e,name:t.name||e}):void e.split("|").forEach((function(e){var o="";if(-1!=e.indexOf(" ")){var i=e.split(/\s+/);e=i.pop(),i.forEach((function(e){var t=this.parseKeys(e),n=a[t.hashId]+t.key;o+=(o?" ":"")+n,this._addCommandToBinding(o,"chainKeys")}),this),o+=" "}var r=this.parseKeys(e),s=a[r.hashId]+r.key;this._addCommandToBinding(o+s,t,n)}),this)},e.prototype._addCommandToBinding=function(e,t,n){var o,i=this.commandKeyBinding;if(t)if(!i[e]||this.$singleCommand)i[e]=t;else{Array.isArray(i[e])?-1!=(o=i[e].indexOf(t))&&i[e].splice(o,1):i[e]=[i[e]],"number"!=typeof n&&(n=c(t));var r=i[e];for(o=0;on);o++);r.splice(o,0,t)}else delete i[e]},e.prototype.addCommands=function(e){e&&Object.keys(e).forEach((function(t){var n=e[t];if(n){if("string"==typeof n)return this.bindKey(n,t);"function"==typeof n&&(n={exec:n}),"object"==typeof n&&(n.name||(n.name=t),this.addCommand(n))}}),this)},e.prototype.removeCommands=function(e){Object.keys(e).forEach((function(t){this.removeCommand(e[t])}),this)},e.prototype.bindKeys=function(e){Object.keys(e).forEach((function(t){this.bindKey(t,e[t])}),this)},e.prototype._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},e.prototype.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter((function(e){return e})),n=t.pop(),o=r[n];if(r.FUNCTION_KEYS[o])n=r.FUNCTION_KEYS[o].toLowerCase();else{if(!t.length)return{key:n,hashId:-1};if(1==t.length&&"shift"==t[0])return{key:n.toUpperCase(),hashId:-1}}for(var i=0,s=t.length;s--;){var a=r.KEY_MODS[t[s]];if(null==a)return"undefined"!=typeof console&&console.error("invalid modifier "+t[s]+" in "+e),!1;i|=a}return{key:n,hashId:i}},e.prototype.findKeyCommand=function(e,t){var n=a[e]+t;return this.commandKeyBinding[n]},e.prototype.handleKeyboard=function(e,t,n,o){if(!(o<0)){var i=a[t]+n,r=this.commandKeyBinding[i];return e.$keyChain&&(e.$keyChain+=" "+i,r=this.commandKeyBinding[e.$keyChain]||r),!r||"chainKeys"!=r&&"chainKeys"!=r[r.length-1]?(e.$keyChain&&(t&&4!=t||1!=n.length?(-1==t||o>0)&&(e.$keyChain=""):e.$keyChain=e.$keyChain.slice(0,-i.length-1)),{command:r}):(e.$keyChain=e.$keyChain||i,{command:"null"})}},e.prototype.getStatusText=function(e,t){return t.$keyChain||""},e}();function c(e){return"object"==typeof e&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}var u=function(e){function t(t,n){var o=e.call(this,t,n)||this;return o.$singleCommand=!0,o}return i(t,e),t}(l);u.call=function(e,t,n){l.prototype.$init.call(e,t,n,!0)},l.call=function(e,t,n){l.prototype.$init.call(e,t,n,!1)},t.HashHandler=u,t.MultiHashHandler=l})),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("../lib/oop"),s=e("../keyboard/hash_handler").MultiHashHandler,a=e("../lib/event_emitter").EventEmitter,l=function(e){function t(t,n){var o=e.call(this,n,t)||this;return o.byName=o.commands,o.setDefaultHandler("exec",(function(e){return e.args?e.command.exec(e.editor,e.args,e.event,!1):e.command.exec(e.editor,{},e.event,!0)})),o}return i(t,e),t.prototype.exec=function(e,t,n){if(Array.isArray(e)){for(var o=e.length;o--;)if(this.exec(e[o],t,n))return!0;return!1}if("string"==typeof e&&(e=this.commands[e]),!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;if(0!=this.$checkCommandState&&e.isAvailable&&!e.isAvailable(t))return!1;var i={editor:t,command:e,args:n};return i.returnValue=this._emit("exec",i),this._signal("afterExec",i),!1!==i.returnValue},t.prototype.toggleRecording=function(e){if(!this.$inReplay)return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.off("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},t.prototype.replay=function(e){if(!this.$inReplay&&this.macro){if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach((function(t){"string"==typeof t?this.exec(t,e):this.exec(t[0],e,t[1])}),this)}finally{this.$inReplay=!1}}},t.prototype.trimMacro=function(e){return e.map((function(e){return"string"!=typeof e[0]&&(e[0]=e[0].name),e[1]||(e=e[0]),e}))},t}(s);r.implement(l.prototype,a),t.CommandManager=l})),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],(function(e,t,n){"use strict";var o=e("../lib/lang"),i=e("../config"),r=e("../range").Range;function s(e,t){return{win:e,mac:t}}t.commands=[{name:"showSettingsMenu",description:"Show settings menu",bindKey:s("Ctrl-,","Command-,"),exec:function(e){i.loadModule("ace/ext/settings_menu",(function(t){t.init(e),e.showSettingsMenu()}))},readOnly:!0},{name:"goToNextError",description:"Go to next error",bindKey:s("Alt-E","F4"),exec:function(e){i.loadModule("ace/ext/error_marker",(function(t){t.showErrorMarker(e,1)}))},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",description:"Go to previous error",bindKey:s("Alt-Shift-E","Shift-F4"),exec:function(e){i.loadModule("ace/ext/error_marker",(function(t){t.showErrorMarker(e,-1)}))},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:s("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:s(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:s("Ctrl-L","Command-L"),exec:function(e,t){"number"!=typeof t||isNaN(t)||e.gotoLine(t),e.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:s("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:s("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",description:"Toggle fold widget",bindKey:s("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",description:"Toggle parent fold widget",bindKey:s("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:s(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldAllComments",description:"Fold all comments",bindKey:s(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAllComments()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:s("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:s("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:s("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:s("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:s("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:s("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:s("Ctrl-F","Command-F"),exec:function(e){i.loadModule("ace/ext/searchbox",(function(t){t.Search(e)}))},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:s("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:s("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:s("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:s("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:s("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:s("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:s("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:s("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:s("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:s("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:s("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:s("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:s("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:s("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:s("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:s("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:s("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:s("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:s("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:s("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:s(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:s("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:s(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:s("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:s("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:s("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:s("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:s("Ctrl-\\|Ctrl-P","Command-\\"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:s("Ctrl-Shift-\\|Ctrl-Shift-P","Command-Shift-\\"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:s("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:s(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(e){},readOnly:!0},{name:"cut",description:"Cut",exec:function(e){var t=e.$copyWithEmptySelection&&e.selection.isEmpty()?e.selection.getLineRange():e.selection.getRange();e._emit("cut",t),t.isEmpty()||e.session.remove(t),e.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:s("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:s("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:s("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:s("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:s("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:s("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:s("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:s("Ctrl-H","Command-Option-F"),exec:function(e){i.loadModule("ace/ext/searchbox",(function(t){t.Search(e,!0)}))}},{name:"undo",description:"Undo",bindKey:s("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",description:"Redo",bindKey:s("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:s("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:s("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:s("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:s("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:s("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:s("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:s("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:s("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:s("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:s("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:s("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:s("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:s("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:s("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:s("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:s("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:s("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(e,t){e.insert(o.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:s(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:s("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:s("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:s("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"autoindent",description:"Auto Indent",bindKey:s(null,null),exec:function(e){e.autoIndent()},multiSelectAction:"forEachLine",scrollIntoView:"animate"},{name:"expandtoline",description:"Expand to line",bindKey:s("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"openlink",bindKey:s("Ctrl+F3","F3"),exec:function(e){e.openLink()}},{name:"joinlines",description:"Join lines",bindKey:s(null,null),exec:function(e){for(var t=e.selection.isBackwards(),n=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),i=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),s=e.session.doc.getLine(n.row).length,a=e.session.doc.getTextRange(e.selection.getRange()).replace(/\n\s*/," ").length,l=e.session.doc.getLine(n.row),c=n.row+1;c<=i.row+1;c++){var u=o.stringTrimLeft(o.stringTrimRight(e.session.doc.getLine(c)));0!==u.length&&(u=" "+u),l+=u}i.row+10?(e.selection.moveCursorTo(n.row,n.column),e.selection.selectTo(n.row,n.column+a)):(s=e.session.doc.getLine(n.row).length>s?s+1:s,e.selection.moveCursorTo(n.row,s))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:s(null,null),exec:function(e){var t=e.session.doc.getLength()-1,n=e.session.doc.getLine(t).length,o=e.selection.rangeList.ranges,i=[];o.length<1&&(o=[e.selection.getRange()]);for(var s=0;st[n].column&&n++,r.unshift(n,0),t.splice.apply(t,r),this.$updateRows()}}},e.prototype.$updateRows=function(){var e=this.session.lineWidgets;if(e){var t=!0;e.forEach((function(e,n){if(e)for(t=!1,e.row=n;e.$oldWidget;)e.$oldWidget.row=n,e=e.$oldWidget})),t&&(this.session.lineWidgets=null)}},e.prototype.$registerLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var t=this.session.lineWidgets[e.row];return t&&(e.$oldWidget=t,t.el&&t.el.parentNode&&(t.el.parentNode.removeChild(t.el),t._inDocument=!1)),this.session.lineWidgets[e.row]=e,e},e.prototype.addLineWidget=function(e){if(this.$registerLineWidget(e),e.session=this.session,!this.editor)return e;var t=this.editor.renderer;e.html&&!e.el&&(e.el=o.createElement("div"),e.el.innerHTML=e.html),e.text&&!e.el&&(e.el=o.createElement("div"),e.el.textContent=e.text),e.el&&(o.addCssClass(e.el,"ace_lineWidgetContainer"),e.className&&o.addCssClass(e.el,e.className),e.el.style.position="absolute",e.el.style.zIndex=5,t.container.appendChild(e.el),e._inDocument=!0,e.coverGutter||(e.el.style.zIndex=3),null==e.pixelHeight&&(e.pixelHeight=e.el.offsetHeight)),null==e.rowCount&&(e.rowCount=e.pixelHeight/t.layerConfig.lineHeight);var n=this.session.getFoldAt(e.row,0);if(e.$fold=n,n){var i=this.session.lineWidgets;e.row!=n.end.row||i[n.start.row]?e.hidden=!0:i[n.start.row]=e}return this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,t),this.onWidgetChanged(e),e},e.prototype.removeLineWidget=function(e){if(e._inDocument=!1,e.session=null,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el),e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(e){}if(this.session.lineWidgets){var t=this.session.lineWidgets[e.row];if(t==e)this.session.lineWidgets[e.row]=e.$oldWidget,e.$oldWidget&&this.onWidgetChanged(e.$oldWidget);else for(;t;){if(t.$oldWidget==e){t.$oldWidget=e.$oldWidget;break}t=t.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows()},e.prototype.getWidgetsAtRow=function(e){for(var t=this.session.lineWidgets,n=t&&t[e],o=[];n;)o.push(n),n=n.$oldWidget;return o},e.prototype.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},e.prototype.measureWidgets=function(e,t){var n=this.session._changedWidgets,o=t.layerConfig;if(n&&n.length){for(var i=1/0,r=0;r0&&!o[i];)i--;this.firstRow=n.firstRow,this.lastRow=n.lastRow,t.$cursorLayer.config=n;for(var s=i;s<=r;s++){var a=o[s];if(a&&a.el)if(a.hidden)a.el.style.top=-100-(a.pixelHeight||0)+"px";else{a._inDocument||(a._inDocument=!0,t.container.appendChild(a.el));var l=t.$cursorLayer.getPixelPosition({row:s,column:0},!0).top;a.coverLine||(l+=n.lineHeight*this.session.getRowLineCount(a.row)),a.el.style.top=l-n.offset+"px";var c=a.coverGutter?0:t.gutterWidth;a.fixedWidth||(c-=t.scrollLeft),a.el.style.left=c+"px",a.fullWidth&&a.screenWidth&&(a.el.style.minWidth=n.width+2*n.padding+"px"),a.fixedWidth?a.el.style.right=t.scrollBar.getWidth()+"px":a.el.style.right=""}}}},e}();t.LineWidgets=i})),ace.define("ace/keyboard/gutter_handler",["require","exports","module","ace/lib/keys","ace/mouse/default_gutter_handler"],(function(e,t,n){"use strict";var o=e("../lib/keys"),i=e("../mouse/default_gutter_handler").GutterTooltip,r=function(){function e(e){this.editor=e,this.gutterLayer=e.renderer.$gutterLayer,this.element=e.renderer.$gutter,this.lines=e.renderer.$gutterLayer.$lines,this.activeRowIndex=null,this.activeLane=null,this.annotationTooltip=new i(this.editor)}return e.prototype.addListener=function(){this.element.addEventListener("keydown",this.$onGutterKeyDown.bind(this)),this.element.addEventListener("focusout",this.$blurGutter.bind(this)),this.editor.on("mousewheel",this.$blurGutter.bind(this))},e.prototype.removeListener=function(){this.element.removeEventListener("keydown",this.$onGutterKeyDown.bind(this)),this.element.removeEventListener("focusout",this.$blurGutter.bind(this)),this.editor.off("mousewheel",this.$blurGutter.bind(this))},e.prototype.$onGutterKeyDown=function(e){if(this.annotationTooltip.isOpen)return e.preventDefault(),void(e.keyCode===o.escape&&this.annotationTooltip.hideTooltip());if(e.target===this.element){if(e.keyCode!=o.enter)return;e.preventDefault();var t=this.editor.getCursorPosition().row;return this.editor.isRowVisible(t)||this.editor.scrollToLine(t,!0,!0),void setTimeout(function(){var e=this.$rowToRowIndex(this.gutterLayer.$cursorCell.row),t=this.$findNearestFoldWidget(e),n=this.$findNearestAnnotation(e);if(null!==t||null!==n)return null===t&&null!==n?(this.activeRowIndex=n,this.activeLane="annotation",void this.$focusAnnotation(this.activeRowIndex)):null!==t&&null===n?(this.activeRowIndex=t,this.activeLane="fold",void this.$focusFoldWidget(this.activeRowIndex)):Math.abs(n-e)0||e+t=0&&this.$isFoldWidgetVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isFoldWidgetVisible(e+t))return e+t}return null},e.prototype.$findNearestAnnotation=function(e){if(this.$isAnnotationVisible(e))return e;for(var t=0;e-t>0||e+t=0&&this.$isAnnotationVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isAnnotationVisible(e+t))return e+t}return null},e.prototype.$focusFoldWidget=function(e){if(null!=e){var t=this.$getFoldWidget(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()}},e.prototype.$focusAnnotation=function(e){if(null!=e){var t=this.$getAnnotation(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()}},e.prototype.$blurFoldWidget=function(e){var t=this.$getFoldWidget(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},e.prototype.$blurAnnotation=function(e){var t=this.$getAnnotation(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},e.prototype.$moveFoldWidgetUp=function(){for(var e=this.activeRowIndex;e>0;)if(e--,this.$isFoldWidgetVisible(e))return this.$blurFoldWidget(this.activeRowIndex),this.activeRowIndex=e,void this.$focusFoldWidget(this.activeRowIndex)},e.prototype.$moveFoldWidgetDown=function(){for(var e=this.activeRowIndex;e0;)if(e--,this.$isAnnotationVisible(e))return this.$blurAnnotation(this.activeRowIndex),this.activeRowIndex=e,void this.$focusAnnotation(this.activeRowIndex)},e.prototype.$moveAnnotationDown=function(){for(var e=this.activeRowIndex;e=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},i=e("./lib/oop"),r=e("./lib/dom"),s=e("./lib/lang"),a=e("./lib/useragent"),l=e("./keyboard/textinput").TextInput,c=e("./mouse/mouse_handler").MouseHandler,u=e("./mouse/fold_handler").FoldHandler,h=e("./keyboard/keybinding").KeyBinding,d=e("./edit_session").EditSession,p=e("./search").Search,g=e("./range").Range,m=e("./lib/event_emitter").EventEmitter,f=e("./commands/command_manager").CommandManager,y=e("./commands/default_commands").commands,v=e("./config"),b=e("./token_iterator").TokenIterator,w=e("./line_widgets").LineWidgets,x=e("./keyboard/gutter_handler").GutterKeyboardHandler,k=e("./config").nls,C=e("./clipboard"),$=e("./lib/keys"),S=function(){function e(t,n,o){this.$toDestroy=[];var i=t.getContainerElement();this.container=i,this.renderer=t,this.id="editor"+ ++e.$uid,this.commands=new f(a.isMac?"mac":"win",y),"object"==typeof document&&(this.textInput=new l(t.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new c(this),new u(this)),this.keyBinding=new h(this),this.$search=(new p).set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=s.delayedCall(function(){this._signal("input",{}),this.session&&!this.session.destroyed&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",(function(e,t){t._$emitInputEvent.schedule(31)})),this.setSession(n||o&&o.session||new d("")),v.resetOptions(this),o&&this.setOptions(o),v._signal("editor",this)}return e.prototype.$initOperationListeners=function(){this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0),this.$opResetTimer=s.delayedCall(this.endOperation.bind(this,!0)),this.on("change",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.docChanged=!0}.bind(this),!0),this.on("changeSelection",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.selectionChanged=!0}.bind(this),!0)},e.prototype.startOperation=function(e){if(this.curOp){if(!e||this.curOp.command)return;this.prevOp=this.curOp}e||(this.previousCommand=null,e={}),this.$opResetTimer.schedule(),this.curOp=this.session.curOp={command:e.command||{},args:e.args,scrollTop:this.renderer.scrollTop},this.curOp.selectionBefore=this.selection.toJSON()},e.prototype.endOperation=function(e){if(this.curOp&&this.session){if(e&&!1===e.returnValue||!this.session)return this.curOp=null;if(1==e&&this.curOp.command&&"mouse"==this.curOp.command.name)return;if(this._signal("beforeEndOperation"),!this.curOp)return;var t=this.curOp.command,n=t&&t.scrollIntoView;if(n){switch(n){case"center-animate":n="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var o=this.selection.getRange(),i=this.renderer.layerConfig;(o.start.row>=i.lastRow||o.end.row<=i.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead)}"animate"==n&&this.renderer.animateScrolling(this.curOp.scrollTop)}var r=this.selection.toJSON();this.curOp.selectionAfter=r,this.$lastSel=this.selection.toJSON(),this.session.getUndoManager().addSelection(r),this.prevOp=this.curOp,this.curOp=null}},e.prototype.$historyTracker=function(e){if(this.$mergeUndoDeltas){var t=this.prevOp,n=this.$mergeableCommands,o=t.command&&e.command.name==t.command.name;if("insertstring"==e.command.name){var i=e.args;void 0===this.mergeNextCommand&&(this.mergeNextCommand=!0),o=o&&this.mergeNextCommand&&(!/\s/.test(i)||/\s/.test(t.args)),this.mergeNextCommand=!0}else o=o&&-1!==n.indexOf(e.command.name);"always"!=this.$mergeUndoDeltas&&Date.now()-this.sequenceStartTime>2e3&&(o=!1),o?this.session.mergeUndoDeltas=!0:-1!==n.indexOf(e.command.name)&&(this.sequenceStartTime=Date.now())}},e.prototype.setKeyboardHandler=function(e,t){if(e&&"string"==typeof e&&"ace"!=e){this.$keybindingId=e;var n=this;v.loadModule(["keybinding",e],(function(o){n.$keybindingId==e&&n.keyBinding.setKeyboardHandler(o&&o.handler),t&&t()}))}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},e.prototype.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},e.prototype.setSession=function(e){if(this.session!=e){this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var n=this.session.getSelection();n.off("changeCursor",this.$onCursorChange),n.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this}),e&&!e.destroyed&&e.bgTokenizer.scheduleStart()}},e.prototype.getSession=function(){return this.session},e.prototype.setValue=function(e,t){return this.session.doc.setValue(e),t?1==t?this.navigateFileEnd():-1==t&&this.navigateFileStart():this.selectAll(),e},e.prototype.getValue=function(){return this.session.getValue()},e.prototype.getSelection=function(){return this.selection},e.prototype.resize=function(e){this.renderer.onResize(e)},e.prototype.setTheme=function(e,t){this.renderer.setTheme(e,t)},e.prototype.getTheme=function(){return this.renderer.getTheme()},e.prototype.setStyle=function(e){this.renderer.setStyle(e)},e.prototype.unsetStyle=function(e){this.renderer.unsetStyle(e)},e.prototype.getFontSize=function(){return this.getOption("fontSize")||r.computedStyle(this.container).fontSize},e.prototype.setFontSize=function(e){this.setOption("fontSize",e)},e.prototype.$highlightBrackets=function(){if(!this.$highlightPending){var e=this;this.$highlightPending=!0,setTimeout((function(){e.$highlightPending=!1;var t=e.session;if(t&&!t.destroyed){t.$bracketHighlight&&(t.$bracketHighlight.markerIds.forEach((function(e){t.removeMarker(e)})),t.$bracketHighlight=null);var n=e.getCursorPosition(),o=e.getKeyboardHandler(),i=o&&o.$getDirectionForHighlight&&o.$getDirectionForHighlight(e),r=t.getMatchingBracketRanges(n,i);if(!r){var s=new b(t,n.row,n.column).getCurrentToken();if(s&&/\b(?:tag-open|tag-name)/.test(s.type)){var a=t.getMatchingTags(n);a&&(r=[a.openTagName,a.closeTagName])}}if(!r&&t.$mode.getMatching&&(r=t.$mode.getMatching(e.session)),r){var l="ace_bracket";Array.isArray(r)?1==r.length&&(l="ace_error_bracket"):r=[r],2==r.length&&(0==g.comparePoints(r[0].end,r[1].start)?r=[g.fromPoints(r[0].start,r[1].end)]:0==g.comparePoints(r[0].start,r[1].end)&&(r=[g.fromPoints(r[1].start,r[0].end)])),t.$bracketHighlight={ranges:r,markerIds:r.map((function(e){return t.addMarker(e,l,"text")}))},e.getHighlightIndentGuides()&&e.renderer.$textLayer.$highlightIndentGuide()}else e.getHighlightIndentGuides()&&e.renderer.$textLayer.$highlightIndentGuide()}}),50)}},e.prototype.focus=function(){this.textInput.focus()},e.prototype.isFocused=function(){return this.textInput.isFocused()},e.prototype.blur=function(){this.textInput.blur()},e.prototype.onFocus=function(e){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",e))},e.prototype.onBlur=function(e){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",e))},e.prototype.$cursorChange=function(){this.renderer.updateCursor(),this.$highlightBrackets(),this.$updateHighlightActiveLine()},e.prototype.onDocumentChange=function(e){var t=this.session.$useWrapMode,n=e.start.row==e.end.row?e.end.row:1/0;this.renderer.updateLines(e.start.row,n,t),this._signal("change",e),this.$cursorChange()},e.prototype.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},e.prototype.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},e.prototype.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},e.prototype.onCursorChange=function(){this.$cursorChange(),this._signal("changeSelection")},e.prototype.$updateHighlightActiveLine=function(){var e,t=this.getSession();if(this.$highlightActiveLine&&("line"==this.$selectionStyle&&this.selection.isMultiLine()||(e=this.getCursorPosition()),this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(e=!1),!this.renderer.$maxLines||1!==this.session.getLength()||this.renderer.$minLines>1||(e=!1)),t.$highlightLineMarker&&!e)t.removeMarker(t.$highlightLineMarker.id),t.$highlightLineMarker=null;else if(!t.$highlightLineMarker&&e){var n=new g(e.row,e.column,e.row,1/0);n.id=t.addMarker(n,"ace_active-line","screenLine"),t.$highlightLineMarker=n}else e&&(t.$highlightLineMarker.start.row=e.row,t.$highlightLineMarker.end.row=e.row,t.$highlightLineMarker.start.column=e.column,t._signal("changeBackMarker"))},e.prototype.onSelectionChange=function(e){var t=this.session;if(t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var n=this.selection.getRange(),o=this.getSelectionStyle();t.$selectionMarker=t.addMarker(n,"ace_selection",o)}var i=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(i),this._signal("changeSelection")},e.prototype.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(!t.isEmpty()&&!t.isMultiLine()){var n=t.start.column,o=t.end.column,i=e.getLine(t.start.row),r=i.substring(n,o);if(!(r.length>5e3)&&/[\w\d]/.test(r)){var s=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:r}),a=i.substring(n-1,o+1);if(s.test(a))return s}}},e.prototype.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},e.prototype.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},e.prototype.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},e.prototype.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},e.prototype.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},e.prototype.onChangeWrapLimit=function(){this.renderer.updateFull()},e.prototype.onChangeWrapMode=function(){this.renderer.onResize(!0)},e.prototype.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},e.prototype.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},e.prototype.getCopyText=function(){var e=this.getSelectedText(),t=this.session.doc.getNewLineCharacter(),n=!1;if(!e&&this.$copyWithEmptySelection){n=!0;for(var o=this.selection.getAllRanges(),i=0;ia.search(/\S|$/)){var l=a.substr(i.column).search(/\S|$/);n.doc.removeInLine(i.row,i.column,i.column+l)}}this.clearSelection();var c=i.column,u=n.getState(i.row),h=(a=n.getLine(i.row),o.checkOutdent(u,a,e));if(n.insert(i,e),r&&r.selection&&(2==r.selection.length?this.selection.setSelectionRange(new g(i.row,c+r.selection[0],i.row,c+r.selection[1])):this.selection.setSelectionRange(new g(i.row+r.selection[0],r.selection[1],i.row+r.selection[2],r.selection[3]))),this.$enableAutoIndent){if(n.getDocument().isNewLine(e)){var d=o.getNextLineIndent(u,a.slice(0,i.column),n.getTabString());n.insert({row:i.row+1,column:0},d)}h&&o.autoOutdent(u,n,i.row)}},e.prototype.autoIndent=function(){var e,t,n=this.session,o=n.getMode();if(this.selection.isEmpty())e=0,t=n.doc.getLength()-1;else{var i=this.getSelectionRange();e=i.start.row,t=i.end.row}for(var r,s,a,l="",c="",u="",h=n.getTabString(),d=e;d<=t;d++)d>0&&(l=n.getState(d-1),c=n.getLine(d-1),u=o.getNextLineIndent(l,c,h)),r=n.getLine(d),u!==(s=o.$getIndent(r))&&(s.length>0&&(a=new g(d,0,d,s.length),n.remove(a)),u.length>0&&n.insert({row:d,column:0},u)),o.autoOutdent(l,n,d)},e.prototype.onTextInput=function(e,t){if(!t)return this.keyBinding.onTextInput(e);this.startOperation({command:{name:"insertstring"}});var n=this.applyComposition.bind(this,e,t);this.selection.rangeCount?this.forEachSelection(n):n(),this.endOperation()},e.prototype.applyComposition=function(e,t){var n;(t.extendLeft||t.extendRight)&&((n=this.selection.getRange()).start.column-=t.extendLeft,n.end.column+=t.extendRight,n.start.column<0&&(n.start.row--,n.start.column+=this.session.getLine(n.start.row).length+1),this.selection.setRange(n),e||n.isEmpty()||this.remove()),!e&&this.selection.isEmpty()||this.insert(e,!0),(t.restoreStart||t.restoreEnd)&&((n=this.selection.getRange()).start.column-=t.restoreStart,n.end.column-=t.restoreEnd,this.selection.setRange(n))},e.prototype.onCommandKey=function(e,t,n){return this.keyBinding.onCommandKey(e,t,n)},e.prototype.setOverwrite=function(e){this.session.setOverwrite(e)},e.prototype.getOverwrite=function(){return this.session.getOverwrite()},e.prototype.toggleOverwrite=function(){this.session.toggleOverwrite()},e.prototype.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},e.prototype.getScrollSpeed=function(){return this.getOption("scrollSpeed")},e.prototype.setDragDelay=function(e){this.setOption("dragDelay",e)},e.prototype.getDragDelay=function(){return this.getOption("dragDelay")},e.prototype.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},e.prototype.getSelectionStyle=function(){return this.getOption("selectionStyle")},e.prototype.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},e.prototype.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},e.prototype.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},e.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},e.prototype.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},e.prototype.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},e.prototype.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},e.prototype.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},e.prototype.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},e.prototype.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},e.prototype.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},e.prototype.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},e.prototype.setHighlightIndentGuides=function(e){this.renderer.setHighlightIndentGuides(e)},e.prototype.getHighlightIndentGuides=function(){return this.renderer.getHighlightIndentGuides()},e.prototype.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},e.prototype.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},e.prototype.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},e.prototype.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},e.prototype.setReadOnly=function(e){this.setOption("readOnly",e)},e.prototype.getReadOnly=function(){return this.getOption("readOnly")},e.prototype.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},e.prototype.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},e.prototype.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},e.prototype.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},e.prototype.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},e.prototype.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},e.prototype.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},e.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},e.prototype.remove=function(e){this.selection.isEmpty()&&("left"==e?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var n=this.session,o=n.getState(t.start.row),i=n.getMode().transformAction(o,"deletion",this,n,t);if(0===t.end.column){var r=n.getTextRange(t);if("\n"==r[r.length-1]){var s=n.getLine(t.end.row);/^\s+$/.test(s)&&(t.end.column=s.length)}}i&&(t=i)}this.session.remove(t),this.clearSelection()},e.prototype.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},e.prototype.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},e.prototype.setGhostText=function(e,t){this.session.widgetManager||(this.session.widgetManager=new w(this.session),this.session.widgetManager.attach(this)),this.renderer.setGhostText(e,t)},e.prototype.removeGhostText=function(){this.session.widgetManager&&this.renderer.removeGhostText()},e.prototype.transposeLetters=function(){if(this.selection.isEmpty()){var e=this.getCursorPosition(),t=e.column;if(0!==t){var n,o,i=this.session.getLine(e.row);tt.toLowerCase()?1:0}));var i=new g(0,0,0,0);for(o=e.first;o<=e.last;o++){var r=t.getLine(o);i.start.row=o,i.end.row=o,i.end.column=r.length,t.replace(i,n[o-e.first])}},e.prototype.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},e.prototype.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),n=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,n,e)},e.prototype.getNumberAt=function(e,t){var n=/[\-]?[0-9]+(?:\.[0-9]+)?/g;n.lastIndex=0;for(var o=this.session.getLine(e);n.lastIndex=t)return{value:i[0],start:i.index,end:i.index+i[0].length}}return null},e.prototype.modifyNumber=function(e){var t=this.selection.getCursor().row,n=this.selection.getCursor().column,o=new g(t,n-1,t,n),i=this.session.getTextRange(o);if(!isNaN(parseFloat(i))&&isFinite(i)){var r=this.getNumberAt(t,n);if(r){var s=r.value.indexOf(".")>=0?r.start+r.value.indexOf(".")+1:r.end,a=r.start+r.value.length-s,l=parseFloat(r.value);l*=Math.pow(10,a),s!==r.end&&n=a&&r<=l&&(n=t,c.selection.clearSelection(),c.moveCursorTo(e,a+o),c.selection.selectTo(e,l+o)),a=l}));for(var u,h=this.$toggleWordPairs,d=0;d=l&&s<=c&&d.match(/((?:https?|ftp):\/\/[\S]+)/)){a=d.replace(/[\s:.,'";}\]]+$/,"");break}l=c}}catch(e){n={error:e}}finally{try{h&&!h.done&&(i=u.return)&&i.call(u)}finally{if(n)throw n.error}}return a},e.prototype.openLink=function(){var e=this.selection.getCursor(),t=this.findLinkAt(e.row,e.column);return t&&window.open(t,"_blank"),null!=t},e.prototype.removeLines=function(){var e=this.$getSelectedRows();this.session.removeFullLines(e.first,e.last),this.clearSelection()},e.prototype.duplicateSelection=function(){var e=this.selection,t=this.session,n=e.getRange(),o=e.isBackwards();if(n.isEmpty()){var i=n.start.row;t.duplicateLines(i,i)}else{var r=o?n.start:n.end,s=t.insert(r,t.getTextRange(n),!1);n.start=r,n.end=s,e.setSelectionRange(n,o)}},e.prototype.moveLinesDown=function(){this.$moveLines(1,!1)},e.prototype.moveLinesUp=function(){this.$moveLines(-1,!1)},e.prototype.moveText=function(e,t,n){return this.session.moveText(e,t,n)},e.prototype.copyLinesUp=function(){this.$moveLines(-1,!0)},e.prototype.copyLinesDown=function(){this.$moveLines(1,!0)},e.prototype.$moveLines=function(e,t){var n,o,i=this.selection;if(!i.inMultiSelectMode||this.inVirtualSelectionMode){var r=i.toOrientedRange();n=this.$getSelectedRows(r),o=this.session.$moveLines(n.first,n.last,t?0:e),t&&-1==e&&(o=0),r.moveBy(o,0),i.fromOrientedRange(r)}else{var s=i.rangeList.ranges;i.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;for(var a=0,l=0,c=s.length,u=0;up+1)break;p=g.last}for(u--,a=this.session.$moveLines(d,p,t?0:e),t&&-1==e&&(h=u+1);h<=u;)s[h].moveBy(a,0),h++;t||(a=0),l+=a}i.fromOrientedRange(i.ranges[0]),i.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},e.prototype.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},e.prototype.onCompositionStart=function(e){this.renderer.showComposition(e)},e.prototype.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},e.prototype.onCompositionEnd=function(){this.renderer.hideComposition()},e.prototype.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},e.prototype.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},e.prototype.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},e.prototype.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},e.prototype.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},e.prototype.$moveByPage=function(e,t){var n=this.renderer,o=this.renderer.layerConfig,i=e*Math.floor(o.height/o.lineHeight);!0===t?this.selection.$moveSelection((function(){this.moveCursorBy(i,0)})):!1===t&&(this.selection.moveCursorBy(i,0),this.selection.clearSelection());var r=n.scrollTop;n.scrollBy(0,i*o.lineHeight),null!=t&&n.scrollCursorIntoView(null,.5),n.animateScrolling(r)},e.prototype.selectPageDown=function(){this.$moveByPage(1,!0)},e.prototype.selectPageUp=function(){this.$moveByPage(-1,!0)},e.prototype.gotoPageDown=function(){this.$moveByPage(1,!1)},e.prototype.gotoPageUp=function(){this.$moveByPage(-1,!1)},e.prototype.scrollPageDown=function(){this.$moveByPage(1)},e.prototype.scrollPageUp=function(){this.$moveByPage(-1)},e.prototype.scrollToRow=function(e){this.renderer.scrollToRow(e)},e.prototype.scrollToLine=function(e,t,n,o){this.renderer.scrollToLine(e,t,n,o)},e.prototype.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},e.prototype.getCursorPosition=function(){return this.selection.getCursor()},e.prototype.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},e.prototype.getSelectionRange=function(){return this.selection.getRange()},e.prototype.selectAll=function(){this.selection.selectAll()},e.prototype.clearSelection=function(){this.selection.clearSelection()},e.prototype.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},e.prototype.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},e.prototype.jumpToMatching=function(e,t){var n=this.getCursorPosition(),o=new b(this.session,n.row,n.column),i=o.getCurrentToken(),r=0;i&&-1!==i.type.indexOf("tag-name")&&(i=o.stepBackward());var s=i||o.stepForward();if(s){var a,l,c=!1,u={},h=n.column-s.start,d={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(s.value.match(/[{}()\[\]]/g)){for(;h1?u[s.value]++:"=0;--r)this.$tryReplace(n[r],e)&&o++;return this.selection.setSelectionRange(i),o},e.prototype.$tryReplace=function(e,t){var n=this.session.getTextRange(e);return null!==(t=this.$search.replace(n,t))?(e.end=this.session.replace(e,t),e):null},e.prototype.getLastSearchOptions=function(){return this.$search.getOptions()},e.prototype.find=function(e,t,n){t||(t={}),"string"==typeof e||e instanceof RegExp?t.needle=e:"object"==typeof e&&i.mixin(t,e);var o=this.selection.getRange();null==t.needle&&((e=this.session.getTextRange(o)||this.$search.$options.needle)||(o=this.session.getWordRange(o.start.row,o.start.column),e=this.session.getTextRange(o)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:o});var r=this.$search.find(this.session);return t.preventScroll?r:r?(this.revealRange(r,n),r):(t.backwards?o.start=o.end:o.end=o.start,void this.selection.setRange(o))},e.prototype.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},e.prototype.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},e.prototype.revealRange=function(e,t){this.session.unfold(e),this.selection.setSelectionRange(e);var n=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),!1!==t&&this.renderer.animateScrolling(n)},e.prototype.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},e.prototype.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},e.prototype.destroy=function(){this.$toDestroy&&(this.$toDestroy.forEach((function(e){e.destroy()})),this.$toDestroy=null),this.$mouseHandler&&this.$mouseHandler.destroy(),this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy(),this._$emitInputEvent&&this._$emitInputEvent.cancel(),this.removeAllListeners()},e.prototype.setAutoScrollEditorIntoView=function(e){if(e){var t,n=this,o=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var i=this.$scrollAnchor;i.style.cssText="position:absolute",this.container.insertBefore(i,this.container.firstChild);var r=this.on("changeSelection",(function(){o=!0})),s=this.renderer.on("beforeRender",(function(){o&&(t=n.renderer.container.getBoundingClientRect())})),a=this.renderer.on("afterRender",(function(){if(o&&t&&(n.isFocused()||n.searchBox&&n.searchBox.isFocused())){var e=n.renderer,r=e.$cursorLayer.$pixelPos,s=e.layerConfig,a=r.top-s.offset;null!=(o=r.top>=0&&a+t.top<0||!(r.topwindow.innerHeight)&&null)&&(i.style.top=a+"px",i.style.left=r.left+"px",i.style.height=s.lineHeight+"px",i.scrollIntoView(o)),o=t=null}}));this.setAutoScrollEditorIntoView=function(e){e||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",r),this.renderer.off("afterRender",a),this.renderer.off("beforeRender",s))}}},e.prototype.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;t&&(t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&"wide"!=e,r.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e)))},e.prototype.prompt=function(e,t,n){var o=this;v.loadModule("ace/ext/prompt",(function(i){i.prompt(o,e,t,n)}))},e}();S.$uid=0,S.prototype.curOp=null,S.prototype.prevOp={},S.prototype.$mergeableCommands=["backspace","del","insertstring"],S.prototype.$toggleWordPairs=[["first","last"],["true","false"],["yes","no"],["width","height"],["top","bottom"],["right","left"],["on","off"],["x","y"],["get","set"],["max","min"],["horizontal","vertical"],["show","hide"],["add","remove"],["up","down"],["before","after"],["even","odd"],["in","out"],["inside","outside"],["next","previous"],["increase","decrease"],["attach","detach"],["&&","||"],["==","!="]],i.implement(S.prototype,m),v.defineOptions(S.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.textInput.setReadOnly(e),this.$resetCursorStyle()},initialValue:!1},copyWithEmptySelection:{set:function(e){this.textInput.setCopyWithEmptySelection(e)},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},enableAutoIndent:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(e){this.session.setValue(e)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(e){this.setSession(e)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(e){this.renderer.$gutterLayer.setShowLineNumbers(e),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),e&&this.$relativeLineNumbers?E.attach(this):E.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(e){this.$showLineNumbers&&e?E.attach(this):E.detach(this)}},placeholder:{set:function(e){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var e=this.session&&(this.renderer.$composition||this.session.getLength()>1||this.session.getLine(0).length>0);if(e&&this.renderer.placeholderNode)this.renderer.off("afterRender",this.$updatePlaceholder),r.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(e||this.renderer.placeholderNode)!e&&this.renderer.placeholderNode&&(this.renderer.placeholderNode.textContent=this.$placeholder||"");else{this.renderer.on("afterRender",this.$updatePlaceholder),r.addCssClass(this.container,"ace_hasPlaceholder");var t=r.createElement("div");t.className="ace_placeholder",t.textContent=this.$placeholder||"",this.renderer.placeholderNode=t,this.renderer.content.appendChild(this.renderer.placeholderNode)}}.bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},enableKeyboardAccessibility:{set:function(e){var t,n={name:"blurTextInput",description:"Set focus to the editor content div to allow tabbing through the page",bindKey:"Esc",exec:function(e){e.blur(),e.renderer.scroller.focus()},readOnly:!0},o=function(e){if(e.target==this.renderer.scroller&&e.keyCode===$.enter){e.preventDefault();var t=this.getCursorPosition().row;this.isRowVisible(t)||this.scrollToLine(t,!0,!0),this.focus()}};e?(this.renderer.enableKeyboardAccessibility=!0,this.renderer.keyboardFocusClassName="ace_keyboard-focus",this.textInput.getElement().setAttribute("tabindex",-1),this.textInput.setNumberOfExtraLines(a.isWin?3:0),this.renderer.scroller.setAttribute("tabindex",0),this.renderer.scroller.setAttribute("role","group"),this.renderer.scroller.setAttribute("aria-roledescription",k("editor")),this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName),this.renderer.scroller.setAttribute("aria-label",k("Editor content, press Enter to start editing, press Escape to exit")),this.renderer.scroller.addEventListener("keyup",o.bind(this)),this.commands.addCommand(n),this.renderer.$gutter.setAttribute("tabindex",0),this.renderer.$gutter.setAttribute("aria-hidden",!1),this.renderer.$gutter.setAttribute("role","group"),this.renderer.$gutter.setAttribute("aria-roledescription",k("editor")),this.renderer.$gutter.setAttribute("aria-label",k("Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit")),this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName),this.renderer.content.setAttribute("aria-hidden",!0),t||(t=new x(this)),t.addListener()):(this.renderer.enableKeyboardAccessibility=!1,this.textInput.getElement().setAttribute("tabindex",0),this.textInput.setNumberOfExtraLines(0),this.renderer.scroller.setAttribute("tabindex",-1),this.renderer.scroller.removeAttribute("role"),this.renderer.scroller.removeAttribute("aria-roledescription"),this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName),this.renderer.scroller.removeAttribute("aria-label"),this.renderer.scroller.removeEventListener("keyup",o.bind(this)),this.commands.removeCommand(n),this.renderer.content.removeAttribute("aria-hidden"),this.renderer.$gutter.setAttribute("tabindex",-1),this.renderer.$gutter.setAttribute("aria-hidden",!0),this.renderer.$gutter.removeAttribute("role"),this.renderer.$gutter.removeAttribute("aria-roledescription"),this.renderer.$gutter.removeAttribute("aria-label"),this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName),t&&t.removeListener())},initialValue:!1},customScrollbar:"renderer",hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",highlightIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",useResizeObserver:"renderer",useSvgGutterIcons:"renderer",showFoldedAnnotations:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimeout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var E={getText:function(e,t){return(Math.abs(e.selection.lead.row-t)||t+1+(t<9?"·":""))+""},getWidth:function(e,t,n){return Math.max(t.toString().length,(n.lastRow+1).toString().length,2)*n.characterWidth},update:function(e,t){t.renderer.$loop.schedule(t.renderer.CHANGE_GUTTER)},attach:function(e){e.renderer.$gutterLayer.$renderer=this,e.on("changeSelection",this.update),this.update(null,e)},detach:function(e){e.renderer.$gutterLayer.$renderer==this&&(e.renderer.$gutterLayer.$renderer=null),e.off("changeSelection",this.update),this.update(null,e)}};t.Editor=S})),ace.define("ace/layer/lines",["require","exports","module","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=function(){function e(e,t){this.element=e,this.canvasHeight=t||5e5,this.element.style.height=2*this.canvasHeight+"px",this.cells=[],this.cellCache=[],this.$offsetCoefficient=0}return e.prototype.moveContainer=function(e){o.translate(this.element,0,-e.firstRowScreen*e.lineHeight%this.canvasHeight-e.offset*this.$offsetCoefficient)},e.prototype.pageChanged=function(e,t){return Math.floor(e.firstRowScreen*e.lineHeight/this.canvasHeight)!==Math.floor(t.firstRowScreen*t.lineHeight/this.canvasHeight)},e.prototype.computeLineTop=function(e,t,n){var o=t.firstRowScreen*t.lineHeight,i=Math.floor(o/this.canvasHeight);return n.documentToScreenRow(e,0)*t.lineHeight-i*this.canvasHeight},e.prototype.computeLineHeight=function(e,t,n){return t.lineHeight*n.getRowLineCount(e)},e.prototype.getLength=function(){return this.cells.length},e.prototype.get=function(e){return this.cells[e]},e.prototype.shift=function(){this.$cacheCell(this.cells.shift())},e.prototype.pop=function(){this.$cacheCell(this.cells.pop())},e.prototype.push=function(e){if(Array.isArray(e)){this.cells.push.apply(this.cells,e);for(var t=o.createFragment(this.element),n=0;nr&&(l=i.end.row+1,r=(i=t.getNextFoldLine(l,i))?i.start.row:1/0),l>o){for(;this.$lines.getLength()>a+1;)this.$lines.pop();break}(s=this.$lines.get(++a))?s.row=l:(s=this.$lines.createCell(l,e,this.session,u),this.$lines.push(s)),this.$renderCell(s,e,i,l),l++}this._signal("afterRender"),this.$updateGutterWidth(e)},e.prototype.$updateGutterWidth=function(e){var t=this.session,n=t.gutterRenderer||this.$renderer,o=t.$firstLineNumber,i=this.$lines.last()?this.$lines.last().text:"";(this.$fixedWidth||t.$useWrapMode)&&(i=t.getLength()+o-1);var r=n?n.getWidth(t,i,e):i.toString().length*e.characterWidth,s=this.$padding||this.$computePadding();(r+=s.left+s.right)===this.gutterWidth||isNaN(r)||(this.gutterWidth=r,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",r))},e.prototype.$updateCursorRow=function(){if(this.$highlightGutterLine){var e=this.session.selection.getCursor();this.$cursorRow!==e.row&&(this.$cursorRow=e.row)}},e.prototype.updateLineHighlight=function(){if(this.$highlightGutterLine){var e=this.session.selection.cursor.row;if(this.$cursorRow=e,!this.$cursorCell||this.$cursorCell.row!=e){this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var t=this.$lines.cells;this.$cursorCell=null;for(var n=0;n=this.$cursorRow){if(o.row>this.$cursorRow){var i=this.session.getFoldLine(this.$cursorRow);if(!(n>0&&i&&i.start.row==t[n-1].row))break;o=t[n-1]}o.element.className="ace_gutter-active-line "+o.element.className,this.$cursorCell=o;break}}}}},e.prototype.scrollLines=function(e){var t=this.config;if(this.config=e,this.$updateCursorRow(),this.$lines.pageChanged(t,e))return this.update(e);this.$lines.moveContainer(e);var n=Math.min(e.lastRow+e.gutterOffset,this.session.getLength()-1),o=this.oldLastRow;if(this.oldLastRow=n,!t||o0;i--)this.$lines.shift();if(o>n)for(i=this.session.getFoldedRowCount(n+1,o);i>0;i--)this.$lines.pop();e.firstRowo&&this.$lines.push(this.$renderLines(e,o+1,n)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(e)},e.prototype.$renderLines=function(e,t,n){for(var o=[],i=t,r=this.session.getNextFoldLine(i),s=r?r.start.row:1/0;i>s&&(i=r.end.row+1,s=(r=this.session.getNextFoldLine(i,r))?r.start.row:1/0),!(i>n);){var a=this.$lines.createCell(i,e,this.session,u);this.$renderCell(a,e,r,i),o.push(a),i++}return o},e.prototype.$renderCell=function(e,t,n,i){var r=e.element,s=this.session,a=r.childNodes[0],c=r.childNodes[1],u=r.childNodes[2],h=u.firstChild,d=s.$firstLineNumber,p=s.$breakpoints,g=s.$decorations,m=s.gutterRenderer||this.$renderer,f=this.$showFoldWidgets&&s.foldWidgets,y=n?n.start.row:Number.MAX_VALUE,v=t.lineHeight+"px",b=this.$useSvgGutterIcons?"ace_gutter-cell_svg-icons ":"ace_gutter-cell ",w=this.$useSvgGutterIcons?"ace_icon_svg":"ace_icon",x=(m?m.getText(s,i):i+d).toString();if(this.$highlightGutterLine&&(i==this.$cursorRow||n&&i=y&&this.$cursorRow<=n.end.row)&&(b+="ace_gutter-active-line ",this.$cursorCell!=e&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=e)),p[i]&&(b+=p[i]),g[i]&&(b+=g[i]),this.$annotations[i]&&i!==y&&(b+=this.$annotations[i].className),f){var k=f[i];null==k&&(k=f[i]=s.getFoldWidget(i))}if(k){var C="ace_fold-widget ace_"+k,$="start"==k&&i==y&&in.right-t.right?"foldWidgets":void 0},e}();function u(e){var t=document.createTextNode("");e.appendChild(t);var n=o.createElement("span");e.appendChild(n);var i=o.createElement("span");e.appendChild(i);var r=o.createElement("span");return i.appendChild(r),e}c.prototype.$fixedWidth=!1,c.prototype.$highlightGutterLine=!0,c.prototype.$renderer="",c.prototype.$showLineNumbers=!0,c.prototype.$showFoldWidgets=!0,i.implement(c.prototype,s),t.Gutter=c})),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("../range").Range,i=e("../lib/dom"),r=function(){function e(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)}return e.prototype.setPadding=function(e){this.$padding=e},e.prototype.setSession=function(e){this.session=e},e.prototype.setMarkers=function(e){this.markers=e},e.prototype.elt=function(e,t){var n=-1!=this.i&&this.element.childNodes[this.i];n?this.i++:(n=document.createElement("div"),this.element.appendChild(n),this.i=-1),n.style.cssText=t,n.className=e},e.prototype.update=function(e){if(e){var t;for(var n in this.config=e,this.i=0,this.markers){var o=this.markers[n];if(o.range){var i=o.range.clipRows(e.firstRow,e.lastRow);if(!i.isEmpty())if(i=i.toScreenRange(this.session),o.renderer){var r=this.$getTop(i.start.row,e),s=this.$padding+i.start.column*e.characterWidth;o.renderer(t,i,s,r,e)}else"fullLine"==o.type?this.drawFullLineMarker(t,i,o.clazz,e):"screenLine"==o.type?this.drawScreenLineMarker(t,i,o.clazz,e):i.isMultiLine()?"text"==o.type?this.drawTextMarker(t,i,o.clazz,e):this.drawMultiLineMarker(t,i,o.clazz,e):this.drawSingleLineMarker(t,i,o.clazz+" ace_start ace_br15",e)}else o.update(t,this,this.session,e)}if(-1!=this.i)for(;this.id?4:0)|(c==l?8:0)),i,c==l?0:1,r)},e.prototype.drawMultiLineMarker=function(e,t,n,o,i){var r=this.$padding,s=o.lineHeight,a=this.$getTop(t.start.row,o),l=r+t.start.column*o.characterWidth;if(i=i||"",this.session.$bidiHandler.isBidiRow(t.start.row)?((c=t.clone()).end.row=c.start.row,c.end.column=this.session.getLine(c.start.row).length,this.drawBidiSingleLineMarker(e,c,n+" ace_br1 ace_start",o,null,i)):this.elt(n+" ace_br1 ace_start","height:"+s+"px;right:0;top:"+a+"px;left:"+l+"px;"+(i||"")),this.session.$bidiHandler.isBidiRow(t.end.row)){var c;(c=t.clone()).start.row=c.end.row,c.start.column=0,this.drawBidiSingleLineMarker(e,c,n+" ace_br12",o,null,i)}else{a=this.$getTop(t.end.row,o);var u=t.end.column*o.characterWidth;this.elt(n+" ace_br12","height:"+s+"px;width:"+u+"px;top:"+a+"px;left:"+r+"px;"+(i||""))}if(!((s=(t.end.row-t.start.row-1)*o.lineHeight)<=0)){a=this.$getTop(t.start.row+1,o);var h=(t.start.column?1:0)|(t.end.column?0:8);this.elt(n+(h?" ace_br"+h:""),"height:"+s+"px;right:0;top:"+a+"px;left:"+r+"px;"+(i||""))}},e.prototype.drawSingleLineMarker=function(e,t,n,o,i,r){if(this.session.$bidiHandler.isBidiRow(t.start.row))return this.drawBidiSingleLineMarker(e,t,n,o,i,r);var s=o.lineHeight,a=(t.end.column+(i||0)-t.start.column)*o.characterWidth,l=this.$getTop(t.start.row,o),c=this.$padding+t.start.column*o.characterWidth;this.elt(n,"height:"+s+"px;width:"+a+"px;top:"+l+"px;left:"+c+"px;"+(r||""))},e.prototype.drawBidiSingleLineMarker=function(e,t,n,o,i,r){var s=o.lineHeight,a=this.$getTop(t.start.row,o),l=this.$padding;this.session.$bidiHandler.getSelections(t.start.column,t.end.column).forEach((function(e){this.elt(n,"height:"+s+"px;width:"+(e.width+(i||0))+"px;top:"+a+"px;left:"+(l+e.left)+"px;"+(r||""))}),this)},e.prototype.drawFullLineMarker=function(e,t,n,o,i){var r=this.$getTop(t.start.row,o),s=o.lineHeight;t.start.row!=t.end.row&&(s+=this.$getTop(t.end.row,o)-r),this.elt(n,"height:"+s+"px;top:"+r+"px;left:0;right:0;"+(i||""))},e.prototype.drawScreenLineMarker=function(e,t,n,o,i){var r=this.$getTop(t.start.row,o),s=o.lineHeight;this.elt(n,"height:"+s+"px;top:"+r+"px;left:0;right:0;"+(i||""))},e}();r.prototype.$padding=0,t.Marker=r})),ace.define("ace/layer/text_util",["require","exports","module"],(function(e,t,n){var o=new Set(["text","rparen","lparen"]);t.isTextToken=function(e){return o.has(e)}})),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter","ace/config","ace/layer/text_util"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("../lib/dom"),r=e("../lib/lang"),s=e("./lines").Lines,a=e("../lib/event_emitter").EventEmitter,l=e("../config").nls,c=e("./text_util").isTextToken,u=function(){function e(e){this.dom=i,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new s(this.element)}return e.prototype.$updateEolChar=function(){var e=this.session.doc,t="\n"==e.getNewLineCharacter()&&"windows"!=e.getNewLineMode()?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=t)return this.EOL_CHAR=t,!0},e.prototype.setPadding=function(e){this.$padding=e,this.element.style.margin="0 "+e+"px"},e.prototype.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},e.prototype.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},e.prototype.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},e.prototype.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},e.prototype.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},e.prototype.setSession=function(e){this.session=e,e&&this.$computeTabString()},e.prototype.setShowInvisibles=function(e){return this.showInvisibles!=e&&(this.showInvisibles=e,"string"==typeof e?(this.showSpaces=/tab/i.test(e),this.showTabs=/space/i.test(e),this.showEOL=/eol/i.test(e)):this.showSpaces=this.showTabs=this.showEOL=e,this.$computeTabString(),!0)},e.prototype.setDisplayIndentGuides=function(e){return this.displayIndentGuides!=e&&(this.displayIndentGuides=e,this.$computeTabString(),!0)},e.prototype.setHighlightIndentGuides=function(e){return this.$highlightIndentGuides!==e&&(this.$highlightIndentGuides=e,e)},e.prototype.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var t=this.$tabStrings=[0],n=1;nu&&(a=l.end.row+1,u=(l=this.session.getNextFoldLine(a,l))?l.start.row:1/0),!(a>i);){var h=r[s++];if(h){this.dom.removeChildren(h),this.$renderLine(h,a,a==u&&l),c&&(h.style.top=this.$lines.computeLineTop(a,e,this.session)+"px");var d=e.lineHeight*this.session.getRowLength(a)+"px";h.style.height!=d&&(c=!0,h.style.height=d)}a++}if(c)for(;s0;i--)this.$lines.shift();if(t.lastRow>e.lastRow)for(i=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);i>0;i--)this.$lines.pop();e.firstRowt.lastRow&&this.$lines.push(this.$renderLinesFragment(e,t.lastRow+1,e.lastRow)),this.$highlightIndentGuide()},e.prototype.$renderLinesFragment=function(e,t,n){for(var o=[],r=t,s=this.session.getNextFoldLine(r),a=s?s.start.row:1/0;r>a&&(r=s.end.row+1,a=(s=this.session.getNextFoldLine(r,s))?s.start.row:1/0),!(r>n);){var l=this.$lines.createCell(r,e,this.session),c=l.element;this.dom.removeChildren(c),i.setStyle(c.style,"height",this.$lines.computeLineHeight(r,e,this.session)+"px"),i.setStyle(c.style,"top",this.$lines.computeLineTop(r,e,this.session)+"px"),this.$renderLine(c,r,r==a&&s),this.$useLineGroups()?c.className="ace_line_group":c.className="ace_line",o.push(l),r++}return o},e.prototype.update=function(e){this.$lines.moveContainer(e),this.config=e;for(var t=e.firstRow,n=e.lastRow,o=this.$lines;o.getLength();)o.pop();o.push(this.$renderLinesFragment(e,t,n))},e.prototype.$renderToken=function(e,t,n,o){for(var i,s=this,a=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC\u2066\u2067\u2068\u202A\u202B\u202D\u202E\u202C\u2069]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,u=this.dom.createFragment(this.element),h=0;i=a.exec(o);){var d=i[1],p=i[2],g=i[3],m=i[4],f=i[5];if(s.showSpaces||!p){var y=h!=i.index?o.slice(h,i.index):"";if(h=i.index+i[0].length,y&&u.appendChild(this.dom.createTextNode(y,this.element)),d){var v=s.session.getScreenTabSize(t+i.index);u.appendChild(s.$tabStrings[v].cloneNode(!0)),t+=v-1}else p?s.showSpaces?((w=this.dom.createElement("span")).className="ace_invisible ace_invisible_space",w.textContent=r.stringRepeat(s.SPACE_CHAR,p.length),u.appendChild(w)):u.appendChild(this.dom.createTextNode(p,this.element)):g?((w=this.dom.createElement("span")).className="ace_invisible ace_invisible_space ace_invalid",w.textContent=r.stringRepeat(s.SPACE_CHAR,g.length),u.appendChild(w)):m?(t+=1,(w=this.dom.createElement("span")).style.width=2*s.config.characterWidth+"px",w.className=s.showSpaces?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",w.textContent=s.showSpaces?s.SPACE_CHAR:m,u.appendChild(w)):f&&(t+=1,(w=this.dom.createElement("span")).style.width=2*s.config.characterWidth+"px",w.className="ace_cjk",w.textContent=f,u.appendChild(w))}}if(u.appendChild(this.dom.createTextNode(h?o.slice(h):o,this.element)),c(n.type))e.appendChild(u);else{var b="ace_"+n.type.replace(/\./g," ace_"),w=this.dom.createElement("span");"fold"==n.type&&(w.style.width=n.value.length*this.config.characterWidth+"px",w.setAttribute("title",l("Unfold code"))),w.className=b,w.appendChild(u),e.appendChild(w)}return t+o.length},e.prototype.renderIndentGuide=function(e,t,n){var o=t.search(this.$indentGuideRe);if(o<=0||o>=n)return t;if(" "==t[0]){for(var i=(o-=o%this.tabSize)/this.tabSize,r=0;ri[r].start.row?this.$highlightIndentGuideMarker.dir=-1:this.$highlightIndentGuideMarker.dir=1;break}if(!this.$highlightIndentGuideMarker.end&&""!==e[t.row]&&t.column===e[t.row].length)for(this.$highlightIndentGuideMarker.dir=1,r=t.row+1;r0)for(var o=0;o=this.$highlightIndentGuideMarker.start+1){if(o.row>=this.$highlightIndentGuideMarker.end)break;this.$setIndentGuideActive(o,t)}}else for(n=e.length-1;n>=0;n--)if(o=e[n],this.$highlightIndentGuideMarker.end&&o.row=s;)a=this.$renderToken(l,a,u,h.substring(0,s-o)),h=h.substring(s-o),o=s,l=this.$createLineElement(),e.appendChild(l),l.appendChild(this.dom.createTextNode(r.stringRepeat(" ",n.indent),this.element)),a=0,s=n[++i]||Number.MAX_VALUE;0!=h.length&&(o+=h.length,a=this.$renderToken(l,a,u,h))}}n[n.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(l,a,null,"",!0)},e.prototype.$renderSimpleLine=function(e,t){for(var n=0,o=0;othis.MAX_LINE_LENGTH)return this.$renderOverflowMessage(e,n,i,r);n=this.$renderToken(e,n,i,r)}}},e.prototype.$renderOverflowMessage=function(e,t,n,o,i){n&&this.$renderToken(e,t,n,o.slice(0,this.MAX_LINE_LENGTH-t));var r=this.dom.createElement("span");r.className="ace_inline_button ace_keyword ace_toggle_wrap",r.textContent=i?"":"",e.appendChild(r)},e.prototype.$renderLine=function(e,t,n){if(n||0==n||(n=this.session.getFoldLine(t)),n)var o=this.$getFoldLineTokens(t,n);else o=this.session.getTokens(t);var i=e;if(o.length){var r=this.session.getRowSplitData(t);r&&r.length?(this.$renderWrappedLine(e,o,r),i=e.lastChild):(i=e,this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i)),this.$renderSimpleLine(i,o))}else this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i));if(this.showEOL&&i){n&&(t=n.end.row);var s=this.dom.createElement("span");s.className="ace_invisible ace_invisible_eol",s.textContent=t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,i.appendChild(s)}},e.prototype.$getFoldLineTokens=function(e,t){var n=this.session,o=[],i=n.getTokens(e);return t.walk((function(e,t,r,s,a){null!=e?o.push({type:"fold",value:e}):(a&&(i=n.getTokens(t)),i.length&&function(e,t,n){for(var i=0,r=0;r+e[i].value.lengthn-t&&(s=s.substring(0,n-t)),o.push({type:e[i].type,value:s}),r=t+s.length,i+=1);rn?o.push({type:e[i].type,value:s.substring(0,n-r)}):o.push(e[i]),r+=s.length,i+=1}}(i,s,r))}),t.end.row,this.session.getLine(t.end.row).length),o},e.prototype.$useLineGroups=function(){return this.session.getUseWrapMode()},e}();u.prototype.EOF_CHAR="¶",u.prototype.EOL_CHAR_LF="¬",u.prototype.EOL_CHAR_CRLF="¤",u.prototype.EOL_CHAR=u.prototype.EOL_CHAR_LF,u.prototype.TAB_CHAR="—",u.prototype.SPACE_CHAR="·",u.prototype.$padding=0,u.prototype.MAX_LINE_LENGTH=1e4,u.prototype.showInvisibles=!1,u.prototype.showSpaces=!1,u.prototype.showTabs=!1,u.prototype.showEOL=!1,u.prototype.displayIndentGuides=!0,u.prototype.$highlightIndentGuides=!0,u.prototype.$tabStrings=[],u.prototype.destroy={},u.prototype.onChangeTabSize=u.prototype.$computeTabString,o.implement(u.prototype,a),t.Text=u})),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=function(){function e(e){this.element=o.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),o.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)}return e.prototype.$updateOpacity=function(e){for(var t=this.cursors,n=t.length;n--;)o.setStyle(t[n].style,"opacity",e?"":"0")},e.prototype.$startCssAnimation=function(){for(var e=this.cursors,t=e.length;t--;)e[t].style.animationDuration=this.blinkInterval+"ms";this.$isAnimating=!0,setTimeout(function(){this.$isAnimating&&o.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},e.prototype.$stopCssAnimation=function(){this.$isAnimating=!1,o.removeCssClass(this.element,"ace_animate-blinking")},e.prototype.setPadding=function(e){this.$padding=e},e.prototype.setSession=function(e){this.session=e},e.prototype.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},e.prototype.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},e.prototype.setSmoothBlinking=function(e){e!=this.smoothBlinking&&(this.smoothBlinking=e,o.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.restartTimer())},e.prototype.addCursor=function(){var e=o.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},e.prototype.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},e.prototype.hideCursor=function(){this.isVisible=!1,o.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},e.prototype.showCursor=function(){this.isVisible=!0,o.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},e.prototype.restartTimer=function(){var e=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&(this.$isSmoothBlinking=!1,o.removeCssClass(this.element,"ace_smooth-blinking")),e(!0),this.isBlinking&&this.blinkInterval&&this.isVisible)if(this.smoothBlinking&&(this.$isSmoothBlinking=!0,setTimeout(function(){this.$isSmoothBlinking&&o.addCssClass(this.element,"ace_smooth-blinking")}.bind(this))),o.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var t=function(){this.timeoutId=setTimeout((function(){e(!1)}),.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval((function(){e(!0),t()}),this.blinkInterval),t()}else this.$stopCssAnimation()},e.prototype.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var n=this.session.documentToScreenPosition(e);return{left:this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e.row)?this.session.$bidiHandler.getPosLeft(n.column):n.column*this.config.characterWidth),top:(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight}},e.prototype.isCursorInView=function(e,t){return e.top>=0&&e.tope.height+e.offset||s.top<0)&&n>1)){var a=this.cursors[i++]||this.addCursor(),l=a.style;this.drawCursor?this.drawCursor(a,s,e,t[n],this.session):this.isCursorInView(s,e)?(o.setStyle(l,"display","block"),o.translate(a,s.left,s.top),o.setStyle(l,"width",Math.round(e.characterWidth)+"px"),o.setStyle(l,"height",e.lineHeight+"px")):o.setStyle(l,"display","none")}}for(;this.cursors.length>i;)this.removeCursor();var c=this.session.getOverwrite();this.$setOverwrite(c),this.$pixelPos=s,this.restartTimer()},e.prototype.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?o.addCssClass(this.element,"ace_overwrite-cursors"):o.removeCssClass(this.element,"ace_overwrite-cursors"))},e.prototype.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)},e}();i.prototype.$padding=0,i.prototype.drawCursor=null,t.Cursor=i})),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("./lib/oop"),s=e("./lib/dom"),a=e("./lib/event"),l=e("./lib/event_emitter").EventEmitter,c=32768,u=function(){function e(e,t){this.element=s.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+t,this.inner=s.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent=" ",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addListener(this.element,"scroll",this.onScroll.bind(this)),a.addListener(this.element,"mousedown",a.preventDefault)}return e.prototype.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1},e}();r.implement(u.prototype,l);var h=function(e){function t(t,n){var o=e.call(this,t,"-v")||this;return o.scrollTop=0,o.scrollHeight=0,n.$scrollbarWidth=o.width=s.scrollbarWidth(t.ownerDocument),o.inner.style.width=o.element.style.width=(o.width||15)+5+"px",o.$minWidth=0,o}return i(t,e),t.prototype.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,1!=this.coeff){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},t.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},t.prototype.setHeight=function(e){this.element.style.height=e+"px"},t.prototype.setScrollHeight=function(e){this.scrollHeight=e,e>c?(this.coeff=c/e,e=c):1!=this.coeff&&(this.coeff=1),this.inner.style.height=e+"px"},t.prototype.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)},t}(u);h.prototype.setInnerHeight=h.prototype.setScrollHeight;var d=function(e){function t(t,n){var o=e.call(this,t,"-h")||this;return o.scrollLeft=0,o.height=n.$scrollbarWidth,o.inner.style.height=o.element.style.height=(o.height||15)+5+"px",o}return i(t,e),t.prototype.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},t.prototype.getHeight=function(){return this.isVisible?this.height:0},t.prototype.setWidth=function(e){this.element.style.width=e+"px"},t.prototype.setInnerWidth=function(e){this.inner.style.width=e+"px"},t.prototype.setScrollWidth=function(e){this.inner.style.width=e+"px"},t.prototype.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)},t}(u);t.ScrollBar=h,t.ScrollBarV=h,t.ScrollBarH=d,t.VScrollBar=h,t.HScrollBar=d})),ace.define("ace/scrollbar_custom",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("./lib/oop"),s=e("./lib/dom"),a=e("./lib/event"),l=e("./lib/event_emitter").EventEmitter;s.importCssString(".ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{\n position: absolute;\n background: rgba(128, 128, 128, 0.6);\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n border: 1px solid #bbb;\n border-radius: 2px;\n z-index: 8;\n}\n.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h {\n position: absolute;\n z-index: 6;\n background: none;\n overflow: hidden!important;\n}\n.ace_editor>.ace_sb-v {\n z-index: 6;\n right: 0;\n top: 0;\n width: 12px;\n}\n.ace_editor>.ace_sb-v div {\n z-index: 8;\n right: 0;\n width: 100%;\n}\n.ace_editor>.ace_sb-h {\n bottom: 0;\n left: 0;\n height: 12px;\n}\n.ace_editor>.ace_sb-h div {\n bottom: 0;\n height: 100%;\n}\n.ace_editor>.ace_sb_grabbed {\n z-index: 8;\n background: #000;\n}","ace_scrollbar.css",!1);var c=function(){function e(e,t){this.element=s.createElement("div"),this.element.className="ace_sb"+t,this.inner=s.createElement("div"),this.inner.className="",this.element.appendChild(this.inner),this.VScrollWidth=12,this.HScrollHeight=12,e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addMultiMouseDownListener(this.element,[500,300,300],this,"onMouseDown")}return e.prototype.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1},e}();r.implement(c.prototype,l);var u=function(e){function t(t,n){var o=e.call(this,t,"-v")||this;return o.scrollTop=0,o.scrollHeight=0,o.parent=t,o.width=o.VScrollWidth,o.renderer=n,o.inner.style.width=o.element.style.width=(o.width||15)+"px",o.$minWidth=0,o}return i(t,e),t.prototype.onMouseDown=function(e,t){if("mousedown"===e&&0===a.getButton(t)&&2!==t.detail){if(t.target===this.inner){var n=this,o=t.clientY,i=t.clientY,r=this.thumbTop;a.capture(this.inner,(function(e){o=e.clientY}),(function(){clearInterval(s)}));var s=setInterval((function(){if(void 0!==o){var e=n.scrollTopFromThumbTop(r+o-i);e!==n.scrollTop&&n._emit("scroll",{data:e})}}),20);return a.preventDefault(t)}var l=t.clientY-this.element.getBoundingClientRect().top-this.thumbHeight/2;return this._emit("scroll",{data:this.scrollTopFromThumbTop(l)}),a.preventDefault(t)}},t.prototype.getHeight=function(){return this.height},t.prototype.scrollTopFromThumbTop=function(e){var t=e*(this.pageHeight-this.viewHeight)/(this.slideHeight-this.thumbHeight);return(t|=0)<0?t=0:t>this.pageHeight-this.viewHeight&&(t=this.pageHeight-this.viewHeight),t},t.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},t.prototype.setHeight=function(e){this.height=Math.max(0,e),this.slideHeight=this.height,this.viewHeight=this.height,this.setScrollHeight(this.pageHeight,!0)},t.prototype.setScrollHeight=function(e,t){(this.pageHeight!==e||t)&&(this.pageHeight=e,this.thumbHeight=this.slideHeight*this.viewHeight/this.pageHeight,this.thumbHeight>this.slideHeight&&(this.thumbHeight=this.slideHeight),this.thumbHeight<15&&(this.thumbHeight=15),this.inner.style.height=this.thumbHeight+"px",this.scrollTop>this.pageHeight-this.viewHeight&&(this.scrollTop=this.pageHeight-this.viewHeight,this.scrollTop<0&&(this.scrollTop=0),this._emit("scroll",{data:this.scrollTop})))},t.prototype.setScrollTop=function(e){this.scrollTop=e,e<0&&(e=0),this.thumbTop=e*(this.slideHeight-this.thumbHeight)/(this.pageHeight-this.viewHeight),this.inner.style.top=this.thumbTop+"px"},t}(c);u.prototype.setInnerHeight=u.prototype.setScrollHeight;var h=function(e){function t(t,n){var o=e.call(this,t,"-h")||this;return o.scrollLeft=0,o.scrollWidth=0,o.height=o.HScrollHeight,o.inner.style.height=o.element.style.height=(o.height||12)+"px",o.renderer=n,o}return i(t,e),t.prototype.onMouseDown=function(e,t){if("mousedown"===e&&0===a.getButton(t)&&2!==t.detail){if(t.target===this.inner){var n=this,o=t.clientX,i=t.clientX,r=this.thumbLeft;a.capture(this.inner,(function(e){o=e.clientX}),(function(){clearInterval(s)}));var s=setInterval((function(){if(void 0!==o){var e=n.scrollLeftFromThumbLeft(r+o-i);e!==n.scrollLeft&&n._emit("scroll",{data:e})}}),20);return a.preventDefault(t)}var l=t.clientX-this.element.getBoundingClientRect().left-this.thumbWidth/2;return this._emit("scroll",{data:this.scrollLeftFromThumbLeft(l)}),a.preventDefault(t)}},t.prototype.getHeight=function(){return this.isVisible?this.height:0},t.prototype.scrollLeftFromThumbLeft=function(e){var t=e*(this.pageWidth-this.viewWidth)/(this.slideWidth-this.thumbWidth);return(t|=0)<0?t=0:t>this.pageWidth-this.viewWidth&&(t=this.pageWidth-this.viewWidth),t},t.prototype.setWidth=function(e){this.width=Math.max(0,e),this.element.style.width=this.width+"px",this.slideWidth=this.width,this.viewWidth=this.width,this.setScrollWidth(this.pageWidth,!0)},t.prototype.setScrollWidth=function(e,t){(this.pageWidth!==e||t)&&(this.pageWidth=e,this.thumbWidth=this.slideWidth*this.viewWidth/this.pageWidth,this.thumbWidth>this.slideWidth&&(this.thumbWidth=this.slideWidth),this.thumbWidth<15&&(this.thumbWidth=15),this.inner.style.width=this.thumbWidth+"px",this.scrollLeft>this.pageWidth-this.viewWidth&&(this.scrollLeft=this.pageWidth-this.viewWidth,this.scrollLeft<0&&(this.scrollLeft=0),this._emit("scroll",{data:this.scrollLeft})))},t.prototype.setScrollLeft=function(e){this.scrollLeft=e,e<0&&(e=0),this.thumbLeft=e*(this.slideWidth-this.thumbWidth)/(this.pageWidth-this.viewWidth),this.inner.style.left=this.thumbLeft+"px"},t}(c);h.prototype.setInnerWidth=h.prototype.setScrollWidth,t.ScrollBar=u,t.ScrollBarV=u,t.ScrollBarH=h,t.VScrollBar=u,t.HScrollBar=h})),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],(function(e,t,n){"use strict";var o=e("./lib/event"),i=function(){function e(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=t||window;var n=this;this._flush=function(e){n.pending=!1;var t=n.changes;if(t&&(o.blockIdle(100),n.changes=0,n.onRender(t)),n.changes){if(n.$recursionLimit--<0)return;n.schedule()}else n.$recursionLimit=2}}return e.prototype.schedule=function(e){this.changes=this.changes|e,this.changes&&!this.pending&&(o.nextFrame(this._flush),this.pending=!0)},e.prototype.clear=function(e){var t=this.changes;return this.changes=0,t},e}();t.RenderLoop=i})),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],(function(e,t,n){var o=e("../lib/oop"),i=e("../lib/dom"),r=e("../lib/lang"),s=e("../lib/event"),a=e("../lib/useragent"),l=e("../lib/event_emitter").EventEmitter,c=512,u="function"==typeof ResizeObserver,h=200,d=function(){function e(e){this.el=i.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=i.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=i.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),this.$measureNode.textContent=r.stringRepeat("X",c),this.$characterSize={width:0,height:0},u?this.$addObserver():this.checkForSizeChanges()}return e.prototype.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",a.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},e.prototype.checkForSizeChanges=function(e){if(void 0===e&&(e=this.$measureSizes()),e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},e.prototype.$addObserver=function(){var e=this;this.$observer=new window.ResizeObserver((function(t){e.checkForSizeChanges()})),this.$observer.observe(this.$measureNode)},e.prototype.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=s.onIdle((function t(){e.checkForSizeChanges(),s.onIdle(t,500)}),500)},e.prototype.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},e.prototype.$measureSizes=function(e){var t={height:(e||this.$measureNode).clientHeight,width:(e||this.$measureNode).clientWidth/c};return 0===t.width||0===t.height?null:t},e.prototype.$measureCharWidth=function(e){return this.$main.textContent=r.stringRepeat(e,c),this.$main.getBoundingClientRect().width/c},e.prototype.getCharacterWidth=function(e){var t=this.charSizes[e];return void 0===t&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},e.prototype.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},e.prototype.$getZoom=function(e){return e&&e.parentElement?(window.getComputedStyle(e).zoom||1)*this.$getZoom(e.parentElement):1},e.prototype.$initTransformMeasureNodes=function(){var e=function(e,t){return["div",{style:"position: absolute;top:"+e+"px;left:"+t+"px;"}]};this.els=i.buildDom([e(0,0),e(h,0),e(0,h),e(h,h)],this.el)},e.prototype.transformCoordinates=function(e,t){function n(e,t,n){var o=e[1]*t[0]-e[0]*t[1];return[(-t[1]*n[0]+t[0]*n[1])/o,(+e[1]*n[0]-e[0]*n[1])/o]}function o(e,t){return[e[0]-t[0],e[1]-t[1]]}function i(e,t){return[e[0]+t[0],e[1]+t[1]]}function r(e,t){return[e*t[0],e*t[1]]}function s(e){var t=e.getBoundingClientRect();return[t.left,t.top]}e&&(e=r(1/this.$getZoom(this.el),e)),this.els||this.$initTransformMeasureNodes();var a=s(this.els[0]),l=s(this.els[1]),c=s(this.els[2]),u=s(this.els[3]),d=n(o(u,l),o(u,c),o(i(l,c),i(u,a))),p=r(1+d[0],o(l,a)),g=r(1+d[1],o(c,a));if(t){var m=t,f=d[0]*m[0]/h+d[1]*m[1]/h+1,y=i(r(m[0],p),r(m[1],g));return i(r(1/f/h,y),a)}var v=o(e,a),b=n(o(p,r(d[0],v)),o(g,r(d[1],v)),v);return r(h,b)},e}();d.prototype.$characterSize={width:0,height:0},o.implement(d.prototype,l),t.FontMetrics=d})),ace.define("ace/css/editor-css",["require","exports","module"],(function(e,t,n){n.exports='\n.ace_br1 {border-top-left-radius : 3px;}\n.ace_br2 {border-top-right-radius : 3px;}\n.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\n.ace_br4 {border-bottom-right-radius: 3px;}\n.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\n.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\n.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\n.ace_br8 {border-bottom-left-radius : 3px;}\n.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\n.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\n.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n\n\n.ace_editor {\n position: relative;\n overflow: hidden;\n padding: 0;\n font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'Source Code Pro\', \'source-code-pro\', monospace;\n direction: ltr;\n text-align: left;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\n.ace_scroller {\n position: absolute;\n overflow: hidden;\n top: 0;\n bottom: 0;\n background-color: inherit;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n cursor: text;\n}\n\n.ace_content {\n position: absolute;\n box-sizing: border-box;\n min-width: 100%;\n contain: style size layout;\n font-variant-ligatures: no-common-ligatures;\n}\n\n.ace_keyboard-focus:focus {\n box-shadow: inset 0 0 0 2px #5E9ED6;\n outline: none;\n}\n\n.ace_dragging .ace_scroller:before{\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n content: \'\';\n background: rgba(250, 250, 250, 0.01);\n z-index: 1000;\n}\n.ace_dragging.ace_dark .ace_scroller:before{\n background: rgba(0, 0, 0, 0.01);\n}\n\n.ace_gutter {\n position: absolute;\n overflow : hidden;\n width: auto;\n top: 0;\n bottom: 0;\n left: 0;\n cursor: default;\n z-index: 4;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n contain: style size layout;\n}\n\n.ace_gutter-active-line {\n position: absolute;\n left: 0;\n right: 0;\n}\n\n.ace_scroller.ace_scroll-left:after {\n content: "";\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\n pointer-events: none;\n}\n\n.ace_gutter-cell, .ace_gutter-cell_svg-icons {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n padding-left: 19px;\n padding-right: 6px;\n background-repeat: no-repeat;\n}\n\n.ace_gutter-cell_svg-icons .ace_gutter_annotation {\n margin-left: -14px;\n float: left;\n}\n\n.ace_gutter-cell .ace_gutter_annotation {\n margin-left: -19px;\n float: left;\n}\n\n.ace_gutter-cell.ace_error, .ace_icon.ace_error, .ace_icon.ace_error_fold {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_warning, .ace_icon.ace_warning, .ace_icon.ace_warning_fold {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_info, .ace_icon.ace_info {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n.ace_dark .ace_gutter-cell.ace_info, .ace_dark .ace_icon.ace_info {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");\n}\n\n.ace_icon_svg.ace_error {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJyZWQiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KPGNpcmNsZSBmaWxsPSJub25lIiBjeD0iOCIgY3k9IjgiIHI9IjciIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPGxpbmUgeDE9IjExIiB5MT0iNSIgeDI9IjUiIHkyPSIxMSIvPgo8bGluZSB4MT0iMTEiIHkxPSIxMSIgeDI9IjUiIHkyPSI1Ii8+CjwvZz4KPC9zdmc+");\n background-color: crimson;\n}\n.ace_icon_svg.ace_warning {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJkYXJrb3JhbmdlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+Cjxwb2x5Z29uIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGZpbGw9Im5vbmUiIHBvaW50cz0iOCAxIDE1IDE1IDEgMTUgOCAxIi8+CjxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iMC4wMSIgaGVpZ2h0PSIwLjAxIi8+CjxsaW5lIHgxPSI4IiB5MT0iNiIgeDI9IjgiIHkyPSIxMCIvPgo8L2c+Cjwvc3ZnPg==");\n background-color: darkorange;\n}\n.ace_icon_svg.ace_info {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJibHVlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CjxjaXJjbGUgZmlsbD0ibm9uZSIgY3g9IjgiIGN5PSI4IiByPSI3IiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjxwb2x5bGluZSBwb2ludHM9IjggMTEgOCA4Ii8+Cjxwb2x5bGluZSBwb2ludHM9IjkgOCA2IDgiLz4KPGxpbmUgeDE9IjEwIiB5MT0iMTEiIHgyPSI2IiB5Mj0iMTEiLz4KPHJlY3QgeD0iOCIgeT0iNSIgd2lkdGg9IjAuMDEiIGhlaWdodD0iMC4wMSIvPgo8L2c+Cjwvc3ZnPg==");\n background-color: royalblue;\n}\n\n.ace_icon_svg.ace_error_fold {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSI+CiAgPHBhdGggZD0ibSAxOC45Mjk4NTEsNy44Mjk4MDc2IGMgMC4xNDYzNTMsNi4zMzc0NjA0IC02LjMyMzE0Nyw3Ljc3Nzg0NDQgLTcuNDc3OTEyLDcuNzc3ODQ0NCAtMi4xMDcyNzI2LC0wLjEyODc1IDUuMTE3Njc4LDAuMzU2MjQ5IDUuMDUxNjk4LC03Ljg3MDA2MTggLTAuNjA0NjcyLC04LjAwMzk3MzQ5IC03LjA3NzI3MDYsLTcuNTYzMTE4OSAtNC44NTczLC03LjQzMDM5NTU2IDEuNjA2LC0wLjExNTE0MjI1IDYuODk3NDg1LDEuMjYyNTQ1OTYgNy4yODM1MTQsNy41MjI2MTI5NiB6IiBmaWxsPSJjcmltc29uIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0ibSA4LjExNDc1NjIsMi4wNTI5ODI4IGMgMy4zNDkxNjk4LDAgNi4wNjQxMzI4LDIuNjc2ODYyNyA2LjA2NDEzMjgsNS45Nzg5NTMgMCwzLjMwMjExMjIgLTIuNzE0OTYzLDUuOTc4OTIwMiAtNi4wNjQxMzI4LDUuOTc4OTIwMiAtMy4zNDkxNDczLDAgLTYuMDY0MTc3MiwtMi42NzY4MDggLTYuMDY0MTc3MiwtNS45Nzg5MjAyIDAuMDA1MzksLTMuMjk5ODg2MSAyLjcxNzI2NTYsLTUuOTczNjQwOCA2LjA2NDE3NzIsLTUuOTc4OTUzIHogbSAwLC0xLjczNTgyNzE5IGMgLTQuMzIxNDgzNiwwIC03LjgyNDc0MDM4LDMuNDU0MDE4NDkgLTcuODI0NzQwMzgsNy43MTQ3ODAxOSAwLDQuMjYwNzI4MiAzLjUwMzI1Njc4LDcuNzE0NzQ1MiA3LjgyNDc0MDM4LDcuNzE0NzQ1MiA0LjMyMTQ0OTgsMCA3LjgyNDY5OTgsLTMuNDU0MDE3IDcuODI0Njk5OCwtNy43MTQ3NDUyIDAsLTIuMDQ2MDkxNCAtMC44MjQzOTIsLTQuMDA4MzY3MiAtMi4yOTE3NTYsLTUuNDU1MTc0NiBDIDEyLjE4MDIyNSwxLjEyOTk2NDggMTAuMTkwMDEzLDAuMzE3MTU1NjEgOC4xMTQ3NTYyLDAuMzE3MTU1NjEgWiBNIDYuOTM3NDU2Myw4LjI0MDU5ODUgNC42NzE4Njg1LDEwLjQ4NTg1MiA2LjAwODY4MTQsMTEuODc2NzI4IDguMzE3MDAzNSw5LjYwMDc5MTEgMTAuNjI1MzM3LDExLjg3NjcyOCAxMS45NjIxMzgsMTAuNDg1ODUyIDkuNjk2NTUwOCw4LjI0MDU5ODUgMTEuOTYyMTM4LDYuMDA2ODA2NiAxMC41NzMyNDYsNC42Mzc0MzM1IDguMzE3MDAzNSw2Ljg3MzQyOTcgNi4wNjA3NjA3LDQuNjM3NDMzNSA0LjY3MTg2ODUsNi4wMDY4MDY2IFoiIGZpbGw9ImNyaW1zb24iIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4=");\n background-color: crimson;\n}\n.ace_icon_svg.ace_warning_fold {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNC43NzY5IDE0LjczMzdMOC42NTE5MiAyLjQ4MzY5QzguMzI5NDYgMS44Mzg3NyA3LjQwOTEzIDEuODM4NzcgNy4wODY2NyAyLjQ4MzY5TDAuOTYxNjY5IDE0LjczMzdDMC42NzA3NzUgMTUuMzE1NSAxLjA5MzgzIDE2IDEuNzQ0MjkgMTZIMTMuOTk0M0MxNC42NDQ4IDE2IDE1LjA2NzggMTUuMzE1NSAxNC43NzY5IDE0LjczMzdaTTMuMTYwMDcgMTQuMjVMNy44NjkyOSA0LjgzMTU2TDEyLjU3ODUgMTQuMjVIMy4xNjAwN1pNOC43NDQyOSAxMS42MjVWMTMuMzc1SDYuOTk0MjlWMTEuNjI1SDguNzQ0MjlaTTYuOTk0MjkgMTAuNzVWNy4yNUg4Ljc0NDI5VjEwLjc1SDYuOTk0MjlaIiBmaWxsPSIjRUM3MjExIi8+CjxwYXRoIGQ9Ik0xMS4xOTkxIDIuOTUyMzhDMTAuODgwOSAyLjMxNDY3IDEwLjM1MzcgMS44MDUyNiA5LjcwNTUgMS41MDlMMTEuMDQxIDEuMDY5NzhDMTEuNjg4MyAwLjk0OTgxNCAxMi4zMzcgMS4yNzI2MyAxMi42MzE3IDEuODYxNDFMMTcuNjEzNiAxMS44MTYxQzE4LjM1MjcgMTMuMjkyOSAxNy41OTM4IDE1LjA4MDQgMTYuMDE4IDE1LjU3NDVDMTYuNDA0NCAxNC40NTA3IDE2LjMyMzEgMTMuMjE4OCAxNS43OTI0IDEyLjE1NTVMMTEuMTk5MSAyLjk1MjM4WiIgZmlsbD0iI0VDNzIxMSIvPgo8L3N2Zz4=");\n background-color: darkorange;\n}\n\n.ace_scrollbar {\n contain: strict;\n position: absolute;\n right: 0;\n bottom: 0;\n z-index: 6;\n}\n\n.ace_scrollbar-inner {\n position: absolute;\n cursor: text;\n left: 0;\n top: 0;\n}\n\n.ace_scrollbar-v{\n overflow-x: hidden;\n overflow-y: scroll;\n top: 0;\n}\n\n.ace_scrollbar-h {\n overflow-x: scroll;\n overflow-y: hidden;\n left: 0;\n}\n\n.ace_print-margin {\n position: absolute;\n height: 100%;\n}\n\n.ace_text-input {\n position: absolute;\n z-index: 0;\n width: 0.5em;\n height: 1em;\n opacity: 0;\n background: transparent;\n -moz-appearance: none;\n appearance: none;\n border: none;\n resize: none;\n outline: none;\n overflow: hidden;\n font: inherit;\n padding: 0 1px;\n margin: 0 -1px;\n contain: strict;\n -ms-user-select: text;\n -moz-user-select: text;\n -webkit-user-select: text;\n user-select: text;\n /*with `pre-line` chrome inserts   instead of space*/\n white-space: pre!important;\n}\n.ace_text-input.ace_composition {\n background: transparent;\n color: inherit;\n z-index: 1000;\n opacity: 1;\n}\n.ace_composition_placeholder { color: transparent }\n.ace_composition_marker { \n border-bottom: 1px solid;\n position: absolute;\n border-radius: 0;\n margin-top: 1px;\n}\n\n[ace_nocontext=true] {\n transform: none!important;\n filter: none!important;\n clip-path: none!important;\n mask : none!important;\n contain: none!important;\n perspective: none!important;\n mix-blend-mode: initial!important;\n z-index: auto;\n}\n\n.ace_layer {\n z-index: 1;\n position: absolute;\n overflow: hidden;\n /* workaround for chrome bug https://github.com/ajaxorg/ace/issues/2312*/\n word-wrap: normal;\n white-space: pre;\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n /* setting pointer-events: auto; on node under the mouse, which changes\n during scroll, will break mouse wheel scrolling in Safari */\n pointer-events: none;\n}\n\n.ace_gutter-layer {\n position: relative;\n width: auto;\n text-align: right;\n pointer-events: auto;\n height: 1000000px;\n contain: style size layout;\n}\n\n.ace_text-layer {\n font: inherit !important;\n position: absolute;\n height: 1000000px;\n width: 1000000px;\n contain: style size layout;\n}\n\n.ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group {\n contain: style size layout;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n}\n\n.ace_hidpi .ace_text-layer,\n.ace_hidpi .ace_gutter-layer,\n.ace_hidpi .ace_content,\n.ace_hidpi .ace_gutter {\n contain: strict;\n}\n.ace_hidpi .ace_text-layer > .ace_line, \n.ace_hidpi .ace_text-layer > .ace_line_group {\n contain: strict;\n}\n\n.ace_cjk {\n display: inline-block;\n text-align: center;\n}\n\n.ace_cursor-layer {\n z-index: 4;\n}\n\n.ace_cursor {\n z-index: 4;\n position: absolute;\n box-sizing: border-box;\n border-left: 2px solid;\n /* workaround for smooth cursor repaintng whole screen in chrome */\n transform: translatez(0);\n}\n\n.ace_multiselect .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_slim-cursors .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_overwrite-cursors .ace_cursor {\n border-left-width: 0;\n border-bottom: 1px solid;\n}\n\n.ace_hidden-cursors .ace_cursor {\n opacity: 0.2;\n}\n\n.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {\n opacity: 0;\n}\n\n.ace_smooth-blinking .ace_cursor {\n transition: opacity 0.18s;\n}\n\n.ace_animate-blinking .ace_cursor {\n animation-duration: 1000ms;\n animation-timing-function: step-end;\n animation-name: blink-ace-animate;\n animation-iteration-count: infinite;\n}\n\n.ace_animate-blinking.ace_smooth-blinking .ace_cursor {\n animation-duration: 1000ms;\n animation-timing-function: ease-in-out;\n animation-name: blink-ace-animate-smooth;\n}\n \n@keyframes blink-ace-animate {\n from, to { opacity: 1; }\n 60% { opacity: 0; }\n}\n\n@keyframes blink-ace-animate-smooth {\n from, to { opacity: 1; }\n 45% { opacity: 1; }\n 60% { opacity: 0; }\n 85% { opacity: 0; }\n}\n\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\n position: absolute;\n z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n position: absolute;\n z-index: 5;\n}\n\n.ace_marker-layer .ace_bracket {\n position: absolute;\n z-index: 6;\n}\n\n.ace_marker-layer .ace_error_bracket {\n position: absolute;\n border-bottom: 1px solid #DE5555;\n border-radius: 0;\n}\n\n.ace_marker-layer .ace_active-line {\n position: absolute;\n z-index: 2;\n}\n\n.ace_marker-layer .ace_selected-word {\n position: absolute;\n z-index: 4;\n box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n box-sizing: border-box;\n\n display: inline-block;\n height: 11px;\n margin-top: -2px;\n vertical-align: middle;\n\n background-image:\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");\n background-repeat: no-repeat, repeat-x;\n background-position: center center, top left;\n color: transparent;\n\n border: 1px solid black;\n border-radius: 2px;\n\n cursor: pointer;\n pointer-events: auto;\n}\n\n.ace_dark .ace_fold {\n}\n\n.ace_fold:hover{\n background-image:\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");\n}\n\n.ace_tooltip {\n background-color: #f5f5f5;\n border: 1px solid gray;\n border-radius: 1px;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\n color: black;\n max-width: 100%;\n padding: 3px 4px;\n position: fixed;\n z-index: 999999;\n box-sizing: border-box;\n cursor: default;\n white-space: pre-wrap;\n word-wrap: break-word;\n line-height: normal;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n pointer-events: none;\n overflow: auto;\n max-width: min(60em, 66vw);\n}\n.ace_tooltip pre {\n white-space: pre-wrap;\n}\n\n.ace_tooltip.ace_dark {\n background-color: #636363;\n color: #fff;\n}\n\n.ace_tooltip:focus {\n outline: 1px solid #5E9ED6;\n}\n\n.ace_icon {\n display: inline-block;\n width: 18px;\n vertical-align: top;\n}\n\n.ace_icon_svg {\n display: inline-block;\n width: 12px;\n vertical-align: top;\n -webkit-mask-repeat: no-repeat;\n -webkit-mask-size: 12px;\n -webkit-mask-position: center;\n}\n\n.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons {\n padding-right: 13px;\n}\n\n.ace_fold-widget {\n box-sizing: border-box;\n\n margin: 0 -12px 0 1px;\n display: none;\n width: 11px;\n vertical-align: top;\n\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: center;\n\n border-radius: 3px;\n \n border: 1px solid transparent;\n cursor: pointer;\n}\n\n.ace_folding-enabled .ace_fold-widget {\n display: inline-block; \n}\n\n.ace_fold-widget.ace_end {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");\n}\n\n.ace_fold-widget.ace_closed {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");\n}\n\n.ace_fold-widget:hover {\n border: 1px solid rgba(0, 0, 0, 0.3);\n background-color: rgba(255, 255, 255, 0.2);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n}\n\n.ace_fold-widget:active {\n border: 1px solid rgba(0, 0, 0, 0.4);\n background-color: rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n}\n/**\n * Dark version for fold widgets\n */\n.ace_dark .ace_fold-widget {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");\n}\n.ace_dark .ace_fold-widget.ace_end {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");\n}\n.ace_dark .ace_fold-widget.ace_closed {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");\n}\n.ace_dark .ace_fold-widget:hover {\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n background-color: rgba(255, 255, 255, 0.1);\n}\n.ace_dark .ace_fold-widget:active {\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n}\n\n.ace_inline_button {\n border: 1px solid lightgray;\n display: inline-block;\n margin: -1px 8px;\n padding: 0 5px;\n pointer-events: auto;\n cursor: pointer;\n}\n.ace_inline_button:hover {\n border-color: gray;\n background: rgba(200,200,200,0.2);\n display: inline-block;\n pointer-events: auto;\n}\n\n.ace_fold-widget.ace_invalid {\n background-color: #FFB4B4;\n border-color: #DE5555;\n}\n\n.ace_fade-fold-widgets .ace_fold-widget {\n transition: opacity 0.4s ease 0.05s;\n opacity: 0;\n}\n\n.ace_fade-fold-widgets:hover .ace_fold-widget {\n transition: opacity 0.05s ease 0.05s;\n opacity:1;\n}\n\n.ace_underline {\n text-decoration: underline;\n}\n\n.ace_bold {\n font-weight: bold;\n}\n\n.ace_nobold .ace_bold {\n font-weight: normal;\n}\n\n.ace_italic {\n font-style: italic;\n}\n\n\n.ace_error-marker {\n background-color: rgba(255, 0, 0,0.2);\n position: absolute;\n z-index: 9;\n}\n\n.ace_highlight-marker {\n background-color: rgba(255, 255, 0,0.2);\n position: absolute;\n z-index: 8;\n}\n\n.ace_mobile-menu {\n position: absolute;\n line-height: 1.5;\n border-radius: 4px;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n background: white;\n box-shadow: 1px 3px 2px grey;\n border: 1px solid #dcdcdc;\n color: black;\n}\n.ace_dark > .ace_mobile-menu {\n background: #333;\n color: #ccc;\n box-shadow: 1px 3px 2px grey;\n border: 1px solid #444;\n\n}\n.ace_mobile-button {\n padding: 2px;\n cursor: pointer;\n overflow: hidden;\n}\n.ace_mobile-button:hover {\n background-color: #eee;\n opacity:1;\n}\n.ace_mobile-button:active {\n background-color: #ddd;\n}\n\n.ace_placeholder {\n font-family: arial;\n transform: scale(0.9);\n transform-origin: left;\n white-space: pre;\n opacity: 0.7;\n margin: 0 10px;\n}\n\n.ace_ghost_text {\n opacity: 0.5;\n font-style: italic;\n white-space: pre;\n}\n\n.ace_screenreader-only {\n position:absolute;\n left:-10000px;\n top:auto;\n width:1px;\n height:1px;\n overflow:hidden;\n}'})),ace.define("ace/layer/decorators",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=e("../lib/oop"),r=e("../lib/event_emitter").EventEmitter,s=function(){function e(e,t){this.canvas=o.createElement("canvas"),this.renderer=t,this.pixelRatio=1,this.maxHeight=t.layerConfig.maxHeight,this.lineHeight=t.layerConfig.lineHeight,this.canvasHeight=e.parent.scrollHeight,this.heightRatio=this.canvasHeight/this.maxHeight,this.canvasWidth=e.width,this.minDecorationHeight=2*this.pixelRatio|0,this.halfMinDecorationHeight=this.minDecorationHeight/2|0,this.canvas.width=this.canvasWidth,this.canvas.height=this.canvasHeight,this.canvas.style.top="0px",this.canvas.style.right="0px",this.canvas.style.zIndex="7px",this.canvas.style.position="absolute",this.colors={},this.colors.dark={error:"rgba(255, 18, 18, 1)",warning:"rgba(18, 136, 18, 1)",info:"rgba(18, 18, 136, 1)"},this.colors.light={error:"rgb(255,51,51)",warning:"rgb(32,133,72)",info:"rgb(35,68,138)"},e.element.appendChild(this.canvas)}return e.prototype.$updateDecorators=function(e){var t=!0===this.renderer.theme.isDark?this.colors.dark:this.colors.light;e&&(this.maxHeight=e.maxHeight,this.lineHeight=e.lineHeight,this.canvasHeight=e.height,(e.lastRow+1)*this.lineHeightt.priority?1:0}));for(var r=this.renderer.session.$foldData,s=0;sthis.canvasHeight&&(d=this.canvasHeight-this.halfMinDecorationHeight),u=Math.round(d-this.halfMinDecorationHeight),h=Math.round(d+this.halfMinDecorationHeight)}n.fillStyle=t[o[s].type]||null,n.fillRect(0,c,this.canvasWidth,h-u)}}var p=this.renderer.session.selection.getCursor();p&&(l=this.compensateFoldRows(p.row,r),c=Math.round((p.row-l)*this.lineHeight*this.heightRatio),n.fillStyle="rgba(0, 0, 0, 0.5)",n.fillRect(0,c,this.canvasWidth,2))},e.prototype.compensateFoldRows=function(e,t){var n=0;if(t&&t.length>0)for(var o=0;ot[o].start.row&&e=t[o].end.row&&(n+=t[o].end.row-t[o].start.row);return n},e}();i.implement(s.prototype,r),t.Decorator=s})),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/config","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/scrollbar_custom","ace/scrollbar_custom","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter","ace/css/editor-css","ace/layer/decorators","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("./lib/oop"),i=e("./lib/dom"),r=e("./lib/lang"),s=e("./config"),a=e("./layer/gutter").Gutter,l=e("./layer/marker").Marker,c=e("./layer/text").Text,u=e("./layer/cursor").Cursor,h=e("./scrollbar").HScrollBar,d=e("./scrollbar").VScrollBar,p=e("./scrollbar_custom").HScrollBar,g=e("./scrollbar_custom").VScrollBar,m=e("./renderloop").RenderLoop,f=e("./layer/font_metrics").FontMetrics,y=e("./lib/event_emitter").EventEmitter,v=e("./css/editor-css"),b=e("./layer/decorators").Decorator,w=e("./lib/useragent");i.importCssString(v,"ace_editor.css",!1);var x=function(){function e(e,t){var n=this;this.container=e||i.createElement("div"),i.addCssClass(this.container,"ace_editor"),i.HI_DPI&&i.addCssClass(this.container,"ace_hidpi"),this.setTheme(t),null==s.get("useStrictCSP")&&s.set("useStrictCSP",!1),this.$gutter=i.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=i.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=i.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new a(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new l(this.content);var o=this.$textLayer=new c(this.content);this.canvas=o.element,this.$markerFront=new l(this.content),this.$cursorLayer=new u(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new d(this.container,this),this.scrollBarH=new h(this.container,this),this.scrollBarV.on("scroll",(function(e){n.$scrollAnimation||n.session.setScrollTop(e.data-n.scrollMargin.top)})),this.scrollBarH.on("scroll",(function(e){n.$scrollAnimation||n.session.setScrollLeft(e.data-n.scrollMargin.left)})),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new f(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.on("changeCharacterSize",(function(e){n.updateCharacterSize(),n.onResize(!0,n.gutterWidth,n.$size.width,n.$size.height),n._signal("changeCharacterSize",e)})),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.margin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$keepTextAreaAtCursor=!w.isIOS,this.$loop=new m(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),this.$addResizeObserver(),s.resetOptions(this),s._signal("renderer",this)}return e.prototype.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin(),i.setStyle(this.scroller.style,"line-height",this.lineHeight+"px")},e.prototype.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e),e&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},e.prototype.updateLines=function(e,t,n){if(void 0===t&&(t=1/0),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},e.prototype.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},e.prototype.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},e.prototype.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},e.prototype.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},e.prototype.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},e.prototype.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},e.prototype.onResize=function(e,t,n,o){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=e?1:0;var i=this.container;o||(o=i.clientHeight||i.scrollHeight),n||(n=i.clientWidth||i.scrollWidth);var r=this.$updateCachedSize(e,t,n,o);if(this.$resizeTimer&&this.$resizeTimer.cancel(),!this.$size.scrollerHeight||!n&&!o)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(r|this.$changes,!0):this.$loop.schedule(r|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.$customScrollbar&&this.$updateCustomScrollbar(!0)}},e.prototype.$updateCachedSize=function(e,t,n,o){o-=this.$extraHeight||0;var r=0,s=this.$size,a={width:s.width,height:s.height,scrollerHeight:s.scrollerHeight,scrollerWidth:s.scrollerWidth};if(o&&(e||s.height!=o)&&(s.height=o,r|=this.CHANGE_SIZE,s.scrollerHeight=s.height,this.$horizScroll&&(s.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.setHeight(s.scrollerHeight),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",r|=this.CHANGE_SCROLL),n&&(e||s.width!=n)){r|=this.CHANGE_SIZE,s.width=n,null==t&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,i.setStyle(this.scrollBarH.element.style,"left",t+"px"),i.setStyle(this.scroller.style,"left",t+this.margin.left+"px"),s.scrollerWidth=Math.max(0,n-t-this.scrollBarV.getWidth()-this.margin.h),i.setStyle(this.$gutter.style,"left",this.margin.left+"px");var l=this.scrollBarV.getWidth()+"px";i.setStyle(this.scrollBarH.element.style,"right",l),i.setStyle(this.scroller.style,"right",l),i.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight()),this.scrollBarH.setWidth(s.scrollerWidth),(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)&&(r|=this.CHANGE_FULL)}return s.$dirty=!n||!o,r&&this._signal("resize",a),r},e.prototype.onGutterResize=function(e){var t=this.$showGutter?e:0;t!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,t,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()||this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},e.prototype.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-2*this.$padding,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},e.prototype.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},e.prototype.getAnimatedScroll=function(){return this.$animatedScroll},e.prototype.setShowInvisibles=function(e){this.setOption("showInvisibles",e),this.session.$bidiHandler.setShowInvisibles(e)},e.prototype.getShowInvisibles=function(){return this.getOption("showInvisibles")},e.prototype.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},e.prototype.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},e.prototype.getHighlightIndentGuides=function(){return this.getOption("highlightIndentGuides")},e.prototype.setHighlightIndentGuides=function(e){this.setOption("highlightIndentGuides",e)},e.prototype.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},e.prototype.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},e.prototype.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},e.prototype.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},e.prototype.getShowGutter=function(){return this.getOption("showGutter")},e.prototype.setShowGutter=function(e){return this.setOption("showGutter",e)},e.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},e.prototype.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},e.prototype.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},e.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},e.prototype.$updatePrintMargin=function(){if(this.$showPrintMargin||this.$printMarginEl){if(!this.$printMarginEl){var e=i.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=i.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&-1==this.session.$wrap&&this.adjustWrapLimit()}},e.prototype.getContainerElement=function(){return this.container},e.prototype.getMouseEventTarget=function(){return this.scroller},e.prototype.getTextAreaContainer=function(){return this.container},e.prototype.$moveTextAreaToCursor=function(){if(!this.$isMousePressed){var e=this.textarea.style,t=this.$composition;if(this.$keepTextAreaAtCursor||t){var n=this.$cursorLayer.$pixelPos;if(n){t&&t.markerRange&&(n=this.$cursorLayer.getPixelPosition(t.markerRange.start,!0));var o=this.layerConfig,r=n.top,s=n.left;r-=o.offset;var a=t&&t.useTextareaForIME||w.isMobile?this.lineHeight:1;if(r<0||r>o.height-a)i.translate(this.textarea,0,0);else{var l=1,c=this.$size.height-a;if(t)if(t.useTextareaForIME){var u=this.textarea.value;l=this.characterWidth*this.session.$getStringScreenWidth(u)[0]}else r+=this.lineHeight+2;else r+=this.lineHeight;(s-=this.scrollLeft)>this.$size.scrollerWidth-l&&(s=this.$size.scrollerWidth-l),s+=this.gutterWidth+this.margin.left,i.setStyle(e,"height",a+"px"),i.setStyle(e,"width",l+"px"),i.translate(this.textarea,Math.min(s,this.$size.scrollerWidth-l),Math.min(r,c))}}}else i.translate(this.textarea,-100,0)}},e.prototype.getFirstVisibleRow=function(){return this.layerConfig.firstRow},e.prototype.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(0===this.layerConfig.offset?0:1)},e.prototype.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow;return this.session.documentToScreenRow(t,0)*e.lineHeight-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},e.prototype.getLastVisibleRow=function(){return this.layerConfig.lastRow},e.prototype.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},e.prototype.setScrollMargin=function(e,t,n,o){var i=this.scrollMargin;i.top=0|e,i.bottom=0|t,i.right=0|o,i.left=0|n,i.v=i.top+i.bottom,i.h=i.left+i.right,i.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-i.top),this.updateFull()},e.prototype.setMargin=function(e,t,n,o){var i=this.margin;i.top=0|e,i.bottom=0|t,i.right=0|o,i.left=0|n,i.v=i.top+i.bottom,i.h=i.left+i.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},e.prototype.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},e.prototype.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},e.prototype.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},e.prototype.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},e.prototype.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},e.prototype.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},e.prototype.freeze=function(){this.$frozen=!0},e.prototype.unfreeze=function(){this.$frozen=!1},e.prototype.$renderChanges=function(e,t){if(this.$changes&&(e|=this.$changes,this.$changes=0),this.session&&this.container.offsetWidth&&!this.$frozen&&(e||t)){if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender",e),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var n=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){if(e|=this.$computeLayerConfig()|this.$loop.clear(),n.firstRow!=this.layerConfig.firstRow&&n.firstRowScreen==this.layerConfig.firstRowScreen){var o=this.scrollTop+(n.firstRow-Math.max(this.layerConfig.firstRow,0))*this.lineHeight;o>0&&(this.scrollTop=o,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig()|this.$loop.clear())}n=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),i.translate(this.content,-this.scrollLeft,-n.offset);var r=n.width+2*this.$padding+"px",s=n.minHeight+"px";i.setStyle(this.content.style,"width",r),i.setStyle(this.content.style,"height",s)}if(e&this.CHANGE_H_SCROLL&&(i.translate(this.content,-this.scrollLeft,-n.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller ":"ace_scroller ace_scroll-left ",this.enableKeyboardAccessibility&&(this.scroller.className+=this.keyboardFocusClassName)),e&this.CHANGE_FULL)return this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),void this._signal("afterRender",e);if(e&this.CHANGE_SCROLL)return this.$changedLines=null,e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(n):this.$textLayer.scrollLines(n),this.$showGutter&&(e&this.CHANGE_GUTTER||e&this.CHANGE_LINES?this.$gutterLayer.update(n):this.$gutterLayer.scrollLines(n)),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),void this._signal("afterRender",e);e&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_LINES?((this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER?(this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_CURSOR&&(this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(n),this.$moveTextAreaToCursor()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(n),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(n),this._signal("afterRender",e)}else this.$changes|=e},e.prototype.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,n=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(n+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&n>this.$maxPixelHeight&&(n=this.$maxPixelHeight);var o=!(n<=2*this.lineHeight)&&e>t;if(n!=this.desiredHeight||this.$size.height!=this.desiredHeight||o!=this.$vScroll){o!=this.$vScroll&&(this.$vScroll=o,this.scrollBarV.setVisible(o));var i=this.container.clientWidth;this.container.style.height=n+"px",this.$updateCachedSize(!0,this.$gutterWidth,i,n),this.desiredHeight=n,this._signal("autosize")}},e.prototype.$computeLayerConfig=function(){var e=this.session,t=this.$size,n=t.height<=2*this.lineHeight,o=this.session.getScreenLength()*this.lineHeight,i=this.$getLongestLine(),r=!n&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-i-2*this.$padding<0),s=this.$horizScroll!==r;s&&(this.$horizScroll=r,this.scrollBarH.setVisible(r));var a=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var l=t.scrollerHeight+this.lineHeight,c=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;o+=c;var u=this.scrollMargin;this.session.setScrollTop(Math.max(-u.top,Math.min(this.scrollTop,o-t.scrollerHeight+u.bottom))),this.session.setScrollLeft(Math.max(-u.left,Math.min(this.scrollLeft,i+2*this.$padding-t.scrollerWidth+u.right)));var h=!n&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-o+c<0||this.scrollTop>u.top),d=a!==h;d&&(this.$vScroll=h,this.scrollBarV.setVisible(h));var p,g,m=this.scrollTop%this.lineHeight,f=Math.ceil(l/this.lineHeight)-1,y=Math.max(0,Math.round((this.scrollTop-m)/this.lineHeight)),v=y+f,b=this.lineHeight;y=e.screenToDocumentRow(y,0);var w=e.getFoldLine(y);w&&(y=w.start.row),p=e.documentToScreenRow(y,0),g=e.getRowLength(y)*b,v=Math.min(e.screenToDocumentRow(v,0),e.getLength()-1),l=t.scrollerHeight+e.getRowLength(v)*b+g,m=this.scrollTop-p*b;var x=0;return(this.layerConfig.width!=i||s)&&(x=this.CHANGE_H_SCROLL),(s||d)&&(x|=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),d&&(i=this.$getLongestLine())),this.layerConfig={width:i,padding:this.$padding,firstRow:y,firstRowScreen:p,lastRow:v,lineHeight:b,characterWidth:this.characterWidth,minHeight:l,maxHeight:o,offset:m,gutterOffset:b?Math.max(0,Math.ceil((m+t.height-t.scrollerHeight)/b)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(i-this.$padding),x},e.prototype.$updateLines=function(){if(this.$changedLines){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var n=this.layerConfig;if(!(e>n.lastRow+1||tthis.$textLayer.MAX_LINE_LENGTH&&(e=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(e*this.characterWidth))},e.prototype.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},e.prototype.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},e.prototype.addGutterDecoration=function(e,t){this.$gutterLayer.addGutterDecoration(e,t)},e.prototype.removeGutterDecoration=function(e,t){this.$gutterLayer.removeGutterDecoration(e,t)},e.prototype.updateBreakpoints=function(e){this.$loop.schedule(this.CHANGE_GUTTER)},e.prototype.setAnnotations=function(e){this.$gutterLayer.setAnnotations(e),this.$loop.schedule(this.CHANGE_GUTTER)},e.prototype.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},e.prototype.hideCursor=function(){this.$cursorLayer.hideCursor()},e.prototype.showCursor=function(){this.$cursorLayer.showCursor()},e.prototype.scrollSelectionIntoView=function(e,t,n){this.scrollCursorIntoView(e,n),this.scrollCursorIntoView(t,n)},e.prototype.scrollCursorIntoView=function(e,t,n){if(0!==this.$size.scrollerHeight){var o=this.$cursorLayer.getPixelPosition(e),i=o.left,r=o.top,s=n&&n.top||0,a=n&&n.bottom||0;this.$scrollAnimation&&(this.$stopAnimation=!0);var l=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;l+s>r?(t&&l+s>r+this.lineHeight&&(r-=t*this.$size.scrollerHeight),0===r&&(r=-this.scrollMargin.top),this.session.setScrollTop(r)):l+this.$size.scrollerHeight-a=1-this.scrollMargin.top||t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right||void 0},e.prototype.pixelToScreenCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var o=this.$fontMetrics.transformCoordinates([e,t]);e=o[1]-this.gutterWidth-this.margin.left,t=o[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,r=i/this.characterWidth,s=Math.floor((t+this.scrollTop-n.top)/this.lineHeight),a=this.$blockCursor?Math.floor(r):Math.round(r);return{row:s,column:a,side:r-a>0?1:-1,offsetX:i}},e.prototype.screenToTextCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var o=this.$fontMetrics.transformCoordinates([e,t]);e=o[1]-this.gutterWidth-this.margin.left,t=o[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,r=i/this.characterWidth,s=this.$blockCursor?Math.floor(r):Math.round(r),a=Math.floor((t+this.scrollTop-n.top)/this.lineHeight);return this.session.screenToDocumentPosition(a,Math.max(s,0),i)},e.prototype.textToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),o=this.session.documentToScreenPosition(e,t),i=this.$padding+(this.session.$bidiHandler.isBidiRow(o.row,e)?this.session.$bidiHandler.getPosLeft(o.column):Math.round(o.column*this.characterWidth)),r=o.row*this.lineHeight;return{pageX:n.left+i-this.scrollLeft,pageY:n.top+r-this.scrollTop}},e.prototype.visualizeFocus=function(){i.addCssClass(this.container,"ace_focus")},e.prototype.visualizeBlur=function(){i.removeCssClass(this.container,"ace_focus")},e.prototype.showComposition=function(e){this.$composition=e,e.cssText||(e.cssText=this.textarea.style.cssText),null==e.useTextareaForIME&&(e.useTextareaForIME=this.$useTextareaForIME),this.$useTextareaForIME?(i.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display="none"):e.markerId=this.session.addMarker(e.markerRange,"ace_composition_marker","text")},e.prototype.setCompositionText=function(e){var t=this.session.selection.cursor;this.addToken(e,"composition_placeholder",t.row,t.column),this.$moveTextAreaToCursor()},e.prototype.hideComposition=function(){if(this.$composition){this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),i.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText;var e=this.session.selection.cursor;this.removeExtraToken(e.row,e.column),this.$composition=null,this.$cursorLayer.element.style.display=""}},e.prototype.setGhostText=function(e,t){var n=this.session.selection.cursor,o=t||{row:n.row,column:n.column};this.removeGhostText();var i=e.split("\n");if(this.addToken(i[0],"ghost_text",o.row,o.column),this.$ghostText={text:e,position:{row:o.row,column:o.column}},i.length>1){this.$ghostTextWidget={text:i.slice(1).join("\n"),row:o.row,column:o.column,className:"ace_ghost_text"},this.session.widgetManager.addLineWidget(this.$ghostTextWidget);var r=this.$cursorLayer.getPixelPosition(o,!0),s=this.container.getBoundingClientRect().height,a=i.length*this.lineHeight;if(a1||Math.abs(e.$size.height-o)>1?e.$resizeTimer.delay():e.$resizeTimer.cancel()})),this.$resizeObserver.observe(this.container)}},e}();x.prototype.CHANGE_CURSOR=1,x.prototype.CHANGE_MARKER=2,x.prototype.CHANGE_GUTTER=4,x.prototype.CHANGE_SCROLL=8,x.prototype.CHANGE_LINES=16,x.prototype.CHANGE_TEXT=32,x.prototype.CHANGE_SIZE=64,x.prototype.CHANGE_MARKER_BACK=128,x.prototype.CHANGE_MARKER_FRONT=256,x.prototype.CHANGE_FULL=512,x.prototype.CHANGE_H_SCROLL=1024,x.prototype.$changes=0,x.prototype.$padding=null,x.prototype.$frozen=!1,x.prototype.STEPS=8,o.implement(x.prototype,y),s.defineOptions(x.prototype,"renderer",{useResizeObserver:{set:function(e){!e&&this.$resizeObserver?(this.$resizeObserver.disconnect(),this.$resizeTimer.cancel(),this.$resizeTimer=this.$resizeObserver=null):e&&!this.$resizeObserver&&this.$addResizeObserver()}},animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){"number"==typeof e&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},useSvgGutterIcons:{set:function(e){this.$gutterLayer.$useSvgGutterIcons=e},initialValue:!1},showFoldedAnnotations:{set:function(e){this.$gutterLayer.$showFoldedAnnotations=e},initialValue:!1},fadeFoldWidgets:{set:function(e){i.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightIndentGuides:{set:function(e){1==this.$textLayer.setHighlightIndentGuides(e)?this.$textLayer.$highlightIndentGuide():this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells)},initialValue:!0},highlightGutterLine:{set:function(e){this.$gutterLayer.setHighlightGutterLine(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},hScrollBarAlwaysVisible:{set:function(e){this.$hScrollBarAlwaysVisible&&this.$horizScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){this.$vScrollBarAlwaysVisible&&this.$vScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){"number"==typeof e&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.$minLines<562949953421311||(this.$minLines=0),this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0,this.$scrollPastEnd!=e&&(this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},customScrollbar:{set:function(e){this.$updateCustomScrollbar(e)},initialValue:!1},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0},hasCssTransforms:{},useTextareaForIME:{initialValue:!w.isMobile&&!w.isIE}}),t.VirtualRenderer=x})),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("../lib/net"),r=e("../lib/event_emitter").EventEmitter,s=e("../config");function a(e){if("undefined"==typeof Worker)return{postMessage:function(){},terminate:function(){}};if(s.get("loadWorkerFromBlob")){var t=function(e){var t="importScripts('"+i.qualifyURL(e)+"');";try{return new Blob([t],{type:"application/javascript"})}catch(e){var n=new(window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder);return n.append(t),n.getBlob("application/javascript")}}(e),n=(window.URL||window.webkitURL).createObjectURL(t);return new Worker(n)}return new Worker(e)}var l=function(e){e.postMessage||(e=this.$createWorkerFromOldConfig.apply(this,arguments)),this.$worker=e,this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){o.implement(this,r),this.$createWorkerFromOldConfig=function(t,n,o,i,r){if(e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl),s.get("packaged")||!e.toUrl)i=i||s.moduleUrl(n,"worker");else{var l=this.$normalizePath;i=i||l(e.toUrl("ace/worker/worker.js",null,"_"));var c={};t.forEach((function(t){c[t]=l(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))}))}return this.$worker=a(i),r&&this.send("importScripts",r),this.$worker.postMessage({init:!0,tlns:c,module:n,classname:o}),this.$worker},this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var n=this.callbacks[t.id];n&&(n(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return i.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker.onerror=function(e){e.preventDefault()},this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,n){if(n){var o=this.callbackId++;this.callbacks[o]=n,t.push(o)}this.send(e,t)},this.emit=function(e,t){try{t.data&&t.data.err&&(t.data.err={message:t.data.err.message,stack:t.data.err.stack,code:t.data.err.code}),this.$worker&&this.$worker.postMessage({event:e,data:{data:t.data}})}catch(e){console.error(e.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener,!0)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),"insert"==e.action?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;e&&(this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e}))}}).call(l.prototype),t.UIWorkerClient=function(e,t,n){var o=null,i=!1,a=Object.create(r),c=[],u=new l({messageBuffer:c,terminate:function(){},postMessage:function(e){c.push(e),o&&(i?setTimeout(h):h())}});u.setEmitSync=function(e){i=e};var h=function(){var e=c.shift();e.command?o[e.command].apply(o,e.args):e.event&&a._signal(e.event,e.data)};return a.postMessage=function(e){u.onMessage({data:e})},a.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},a.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},s.loadModule(["worker",t],(function(e){for(o=new e[n](a);c.length;)h()})),u},t.WorkerClient=l,t.createWorker=a})),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],(function(e,t,n){"use strict";var o=e("./range").Range,i=e("./lib/event_emitter").EventEmitter,r=e("./lib/oop"),s=function(){function e(e,t,n,o,i,r){var s=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=i,this.othersClass=r,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate,!0),this.$others=o,this.$onCursorChange=function(){setTimeout((function(){s.onCursorChange()}))},this.$pos=n;var a=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=a.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)}return e.prototype.setup=function(){var e=this,t=this.doc,n=this.session;this.selectionBefore=n.selection.toJSON(),n.selection.inMultiSelectMode&&n.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var i=this.pos;i.$insertRight=!0,i.detach(),i.markerId=n.addMarker(new o(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach((function(n){var o=t.createAnchor(n.row,n.column);o.$insertRight=!0,o.detach(),e.others.push(o)})),n.setUndoSelect(!1)},e.prototype.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach((function(n){n.markerId=e.addMarker(new o(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1)}))}},e.prototype.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,r=t.start.column-this.pos.column;if(this.updateAnchors(e),i&&(this.length+=n),i&&!this.session.$fromUndo)if("insert"===e.action)for(var s=this.others.length-1;s>=0;s--){var a={row:(l=this.others[s]).row,column:l.column+r};this.doc.insertMergedLines(a,e.lines)}else if("remove"===e.action)for(s=this.others.length-1;s>=0;s--){var l;a={row:(l=this.others[s]).row,column:l.column+r},this.doc.remove(new o(a.row,a.column,a.row,a.column-n))}this.$updating=!1,this.updateMarkers()}},e.prototype.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},e.prototype.updateMarkers=function(){if(!this.$updating){var e=this,t=this.session,n=function(n,i){t.removeMarker(n.markerId),n.markerId=t.addMarker(new o(n.row,n.column,n.row,n.column+e.length),i,null,!1)};n(this.pos,this.mainClass);for(var i=this.others.length;i--;)n(this.others[i],this.othersClass)}},e.prototype.onCursorChange=function(e){if(!this.$updating&&this.session){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))}},e.prototype.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.off("change",this.$onUpdate),this.session.selection.off("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},e.prototype.cancel=function(){if(-1!==this.$undoStackDepth){for(var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth,n=0;n1?e.multiSelect.joinSelections():e.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"splitSelectionIntoLines",description:"Split into lines",exec:function(e){e.multiSelect.splitIntoLines()},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(e){e.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(e){e.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],t.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(e){e.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(e){return e&&e.inMultiSelectMode}}];var o=e("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new o(t.multiSelectCommands)})),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],(function(e,t,n){var o=e("./range_list").RangeList,i=e("./range").Range,r=e("./selection").Selection,s=e("./mouse/multi_select_handler").onMouseDown,a=e("./lib/event"),l=e("./lib/lang"),c=e("./commands/multi_select_commands");t.commands=c.defaultCommands.concat(c.multiSelectCommands);var u=new(0,e("./search").Search),h=e("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(h.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(e){if(!this.inMultiSelectMode&&0===this.rangeCount){var n=this.toOrientedRange();if(this.rangeList.add(n),this.rangeList.add(e),2!=this.rangeList.ranges.length)return this.rangeList.removeAll(),t||this.fromOrientedRange(e);this.rangeList.removeAll(),this.rangeList.add(n),this.$onAddRange(n)}e.cursor||(e.cursor=e.end);var o=this.rangeList.add(e);return this.$onAddRange(e),o.length&&this.$onRemoveRange(o),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)}},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length&&this.$onRemoveRange(e)},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){if(this.rangeCount=this.rangeList.ranges.length,1==this.rangeCount&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var o=this.ranges.indexOf(e[n]);this.ranges.splice(o,1)}this._signal("removeRange",{ranges:e}),0===this.rangeCount&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),(t=t||this.ranges[0])&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new o,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){for(var e=this.ranges.length?this.ranges:[this.getRange()],t=[],n=0;n1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var o=this.session.documentToScreenPosition(this.cursor),r=this.session.documentToScreenPosition(this.anchor);this.rectangularRangeBlock(o,r).forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var o=[],r=e.column0;)v--;if(v>0)for(var b=0;o[b].isEmpty();)b++;for(var w=v;w>=b;w--)o[w].isEmpty()&&o.splice(w,1)}return o}}.call(r.prototype);var d=e("./editor").Editor;function p(e){e.$multiselectOnSessionChange||(e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on("changeSession",e.$multiselectOnSessionChange),e.on("mousedown",s),e.commands.addCommands(c.defaultCommands),function(e){if(e.textInput){var t=e.textInput.getElement(),n=!1;a.addListener(t,"keydown",(function(t){var i=18==t.keyCode&&!(t.ctrlKey||t.shiftKey||t.metaKey);e.$blockSelectEnabled&&i?n||(e.renderer.setMouseCursor("crosshair"),n=!0):n&&o()}),e),a.addListener(t,"keyup",o,e),a.addListener(t,"blur",o,e)}function o(t){n&&(e.renderer.setMouseCursor(""),n=!1)}}(e))}(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(e.marker){this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);-1!=t&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(e){for(var t=this.session.$selectionMarkers,n=e.length;n--;){var o=e[n];if(o.marker){this.session.removeMarker(o.marker);var i=t.indexOf(o);-1!=i&&t.splice(i,1)}}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(c.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(e){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(c.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(n.multiSelect){if(t.multiSelectAction)"forEach"==t.multiSelectAction?o=n.forEachSelection(t,e.args):"forEachLine"==t.multiSelectAction?o=n.forEachSelection(t,e.args,!0):"single"==t.multiSelectAction?(n.exitMultiSelectMode(),o=t.exec(n,e.args||{})):o=t.multiSelectAction(n,e.args||{});else{var o=t.exec(n,e.args||{});n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()}return o}},this.forEachSelection=function(e,t,n){if(!this.inVirtualSelectionMode){var o,i=n&&n.keepOrder,s=1==n||n&&n.$byLines,a=this.session,l=this.selection,c=l.rangeList,u=(i?l:c).ranges;if(!u.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var h=l._eventRegistry;l._eventRegistry={};var d=new r(a);this.inVirtualSelectionMode=!0;for(var p=u.length;p--;){if(s)for(;p>0&&u[p].start.row==u[p-1].end.row;)p--;d.fromOrientedRange(u[p]),d.index=p,this.selection=a.selection=d;var g=e.exec?e.exec(this,t||{}):e(this,t||{});o||void 0===g||(o=g),d.toOrientedRange(u[p])}d.detach(),this.selection=a.selection=l,this.inVirtualSelectionMode=!1,l._eventRegistry=h,l.mergeOverlappingRanges(),l.ranges[0]&&l.fromOrientedRange(l.ranges[0]);var m=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),m&&m.from==m.to&&this.renderer.animateScrolling(m.from),o}},this.exitMultiSelectMode=function(){this.inMultiSelectMode&&!this.inVirtualSelectionMode&&this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var t=this.multiSelect.rangeList.ranges,n=[],o=0;os&&(s=n.column),ou?e.insert(o,l.stringRepeat(" ",r-u)):e.remove(new i(o.row,o.column,o.row,o.column-r+u)),t.start.column=t.end.column=s,t.start.row=t.end.row=o.row,t.cursor=t.end})),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}else{var u=this.selection.getRange(),h=u.start.row,d=u.end.row,p=h==d;if(p){var g,m=this.session.getLength();do{g=this.session.getLine(d)}while(/[=:]/.test(g)&&++d0);h<0&&(h=0),d>=m&&(d=m-1)}var f=this.session.removeFullLines(h,d);f=this.$reAlignText(f,p),this.session.insert({row:h,column:0},f.join("\n")+"\n"),p||(u.start.column=0,u.end.column=f[f.length-1].length),this.selection.setRange(u)}},this.$reAlignText=function(e,t){var n,o,i,r=!0,s=!0;return e.map((function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?null==n?(n=t[1].length,o=t[2].length,i=t[3].length,t):(n+o+i!=t[1].length+t[2].length+t[3].length&&(s=!1),n!=t[1].length&&(r=!1),n>t[1].length&&(n=t[1].length),ot[3].length&&(i=t[3].length),t):[e]})).map(t?c:r?s?function(e){return e[2]?a(n+o-e[2].length)+e[2]+a(i)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}:c:function(e){return e[2]?a(n)+e[2]+a(i)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]});function a(e){return l.stringRepeat(" ",e)}function c(e){return e[2]?a(n)+e[2]+a(o-e[2].length+i)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}}}).call(d.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var n=e.oldSession;n&&(n.multiSelect.off("addRange",this.$onAddRange),n.multiSelect.off("removeRange",this.$onRemoveRange),n.multiSelect.off("multiSelect",this.$onMultiSelect),n.multiSelect.off("singleSelect",this.$onSingleSelect),n.multiSelect.lead.off("change",this.$checkMultiselectChange),n.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=p,e("./config").defineOptions(d.prototype,"editor",{enableMultiselect:{set:function(e){p(this),e?this.on("mousedown",s):this.off("mousedown",s)},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})})),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../../range").Range,i=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);return this.foldingStartMarker.test(o)?"start":"markbeginend"==t&&this.foldingStopMarker&&this.foldingStopMarker.test(o)?"end":""},this.getFoldWidgetRange=function(e,t,n){return null},this.indentationBlock=function(e,t,n){var i=/\S/,r=e.getLine(t),s=r.search(i);if(-1!=s){for(var a=n||r.length,l=e.getLength(),c=t,u=t;++tc){var p=e.getLine(u).length;return new o(c,a,u,p)}}},this.openingBracketBlock=function(e,t,n,i,r){var s={row:n,column:i+1},a=e.$findClosingBracket(t,s,r);if(a){var l=e.foldWidgets[a.row];return null==l&&(l=e.getFoldWidget(a.row)),"start"==l&&a.row>s.row&&(a.row--,a.column=e.getLine(a.row).length),o.fromPoints(s,a)}},this.closingBracketBlock=function(e,t,n,i,r){var s={row:n,column:i},a=e.$findOpeningBracket(t,s);if(a)return a.column++,s.column--,o.fromPoints(a,s)}}).call(i.prototype)})),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range","ace/config"],(function(e,t,n){"use strict";var o=e("../line_widgets").LineWidgets,i=e("../lib/dom"),r=e("../range").Range,s=e("../config").nls;t.showErrorMarker=function(e,t){var n=e.session;n.widgetManager||(n.widgetManager=new o(n),n.widgetManager.attach(e));var a=e.getCursorPosition(),l=a.row,c=n.widgetManager.getWidgetsAtRow(l).filter((function(e){return"errorMarker"==e.type}))[0];c?c.destroy():l-=t;var u,h=function(e,t,n){var o=e.getAnnotations().sort(r.comparePoints);if(o.length){var i=function(e,t,n){for(var o=0,i=e.length-1;o<=i;){var r=o+i>>1,s=n(t,e[r]);if(s>0)o=r+1;else{if(!(s<0))return r;i=r-1}}return-(o+1)}(o,{row:t,column:-1},r.comparePoints);i<0&&(i=-i-1),i>=o.length?i=n>0?0:o.length-1:0===i&&n<0&&(i=o.length-1);var s=o[i];if(s&&n){if(s.row===t){do{s=o[i+=n]}while(s&&s.row===t);if(!s)return o.slice()}var a=[];t=s.row;do{a[n<0?"unshift":"push"](s),s=o[i+=n]}while(s&&s.row==t);return a.length&&a}}}(n,l,t);if(h){var d=h[0];a.column=(d.pos&&"number"!=typeof d.column?d.pos.sc:d.column)||0,a.row=d.row,u=e.renderer.$gutterLayer.$annotations[a.row]}else{if(c)return;u={text:[s("Looks good!")],className:"ace_ok"}}e.session.unfold(a.row),e.selection.moveToPosition(a);var p={row:a.row,fixedWidth:!0,coverGutter:!0,el:i.createElement("div"),type:"errorMarker"},g=p.el.appendChild(i.createElement("div")),m=p.el.appendChild(i.createElement("div"));m.className="error_widget_arrow "+u.className;var f=e.renderer.$cursorLayer.getPixelPosition(a).left;m.style.left=f+e.renderer.gutterWidth-5+"px",p.el.className="error_widget_wrapper",g.className="error_widget "+u.className,g.innerHTML=u.text.join("
    "),g.appendChild(i.createElement("div"));var y=function(e,t,n){if(0===t&&("esc"===n||"return"===n))return p.destroy(),{command:"null"}};p.destroy=function(){e.$mouseHandler.isMousePressed||(e.keyBinding.removeKeyboardHandler(y),n.widgetManager.removeLineWidget(p),e.off("changeSelection",p.destroy),e.off("changeSession",p.destroy),e.off("mouseup",p.destroy),e.off("change",p.destroy))},e.keyBinding.addKeyboardHandler(y),e.on("changeSelection",p.destroy),e.on("changeSession",p.destroy),e.on("mouseup",p.destroy),e.on("change",p.destroy),e.session.widgetManager.addLineWidget(p),p.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:p.el.offsetHeight})},i.importCssString("\n .error_widget_wrapper {\n background: inherit;\n color: inherit;\n border:none\n }\n .error_widget {\n border-top: solid 2px;\n border-bottom: solid 2px;\n margin: 5px 0;\n padding: 10px 40px;\n white-space: pre-wrap;\n }\n .error_widget.ace_error, .error_widget_arrow.ace_error{\n border-color: #ff5a5a\n }\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\n border-color: #F1D817\n }\n .error_widget.ace_info, .error_widget_arrow.ace_info{\n border-color: #5a5a5a\n }\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\n border-color: #5aaa5a\n }\n .error_widget_arrow {\n position: absolute;\n border: solid 5px;\n border-top-color: transparent!important;\n border-right-color: transparent!important;\n border-left-color: transparent!important;\n top: -5px;\n }\n","error_marker.css",!1)})),ace.define("ace/ace",["require","exports","module","ace/lib/dom","ace/range","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config","ace/loader_build"],(function(e,t,n){"use strict";e("./loader_build")(t);var o=e("./lib/dom"),i=e("./range").Range,r=e("./editor").Editor,s=e("./edit_session").EditSession,a=e("./undomanager").UndoManager,l=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.edit=function(e,n){if("string"==typeof e){var i=e;if(!(e=document.getElementById(i)))throw new Error("ace.edit can't find div #"+i)}if(e&&e.env&&e.env.editor instanceof r)return e.env.editor;var s="";if(e&&/input|textarea/i.test(e.tagName)){var a=e;s=a.value,e=o.createElement("pre"),a.parentNode.replaceChild(e,a)}else e&&(s=e.textContent,e.innerHTML="");var c=t.createEditSession(s),u=new r(new l(e),c,n),h={document:c,editor:u,onResize:u.resize.bind(u,null)};return a&&(h.textarea=a),u.on("destroy",(function(){h.editor.container.env=null})),u.container.env=u.env=h,u},t.createEditSession=function(e,t){var n=new s(e,t);return n.setUndoManager(new a),n},t.Range=i,t.Editor=r,t.EditSession=s,t.UndoManager=a,t.VirtualRenderer=l,t.version=t.config.version})),ace.require(["ace/ace"],(function(t){t&&(t.config.init(!0),t.define=ace.define);var n=function(){return this}();for(var o in n||"undefined"==typeof window||(n=window),n||"undefined"==typeof self||(n=self),n.ace||(n.ace=t),t)t.hasOwnProperty(o)&&(n.ace[o]=t[o]);n.ace.default=n.ace,e&&(e.exports=n.ace)}))},134:(e,t,n)=>{e=n.nmd(e),ace.define("ace/ext/beautify",["require","exports","module","ace/token_iterator"],(function(e,t,n){"use strict";var o=e("../token_iterator").TokenIterator;function i(e,t){return e.type.lastIndexOf(t+".xml")>-1}t.singletonTags=["area","base","br","col","command","embed","hr","html","img","input","keygen","link","meta","param","source","track","wbr"],t.blockTags=["article","aside","blockquote","body","div","dl","fieldset","footer","form","head","header","html","nav","ol","p","script","section","style","table","tbody","tfoot","thead","ul"],t.formatOptions={lineBreaksAfterCommasInCurlyBlock:!0},t.beautify=function(e){for(var n,r,s,a=new o(e,0,0),l=a.getCurrentToken(),c=e.getTabString(),u=t.singletonTags,h=t.blockTags,d=t.formatOptions||{},p=!1,g=!1,m=!1,f="",y="",v="",b=0,w=0,x=0,k=0,C=0,$=0,S=0,E=0,O=0,T=!1,A=!1,_=!1,L=!1,M={0:0},R=[],N=!1,I=function(){n&&n.value&&"string.regexp"!==n.type&&(n.value=n.value.replace(/^\s*/,""))},P=function(){for(var e=f.length-1;0!=e&&" "===f[e];)e-=1;f=f.slice(0,e+1)},D=function(){f=f.trimRight(),p=!1};null!==l;){if(E=a.getCurrentTokenRow(),a.$rowTokens,n=a.stepForward(),void 0!==l){if(y=l.value,C=0,_="style"===v||"ace/mode/css"===e.$modeId,i(l,"tag-open")?(A=!0,n&&(L=-1!==h.indexOf(n.value)),"0;O--)f+="\n";p=!0,i(l,"comment")||l.type.match(/^(comment|string)$/)||(y=y.trimLeft())}if(y){if("keyword"===l.type&&y.match(/^(if|else|elseif|for|foreach|while|switch)$/)?(R[b]=y,I(),m=!0,y.match(/^(else|elseif)$/)&&f.match(/\}[\s]*$/)&&(D(),g=!0)):"paren.lparen"===l.type?(I(),"{"===y.substr(-1)&&(m=!0,T=!1,A||(O=1)),"{"===y.substr(0,1)&&(g=!0,"["!==f.substr(-1)&&"["===f.trimRight().substr(-1)?(D(),g=!1):")"===f.trimRight().substr(-1)?D():P())):"paren.rparen"===l.type?(C=1,"}"===y.substr(0,1)&&("case"===R[b-1]&&C++,"{"===f.trimRight().substr(-1)?D():(g=!0,_&&(O+=2))),"]"===y.substr(0,1)&&"}"!==f.substr(-1)&&"}"===f.trimRight().substr(-1)&&(g=!1,k++,D()),")"===y.substr(0,1)&&"("!==f.substr(-1)&&"("===f.trimRight().substr(-1)&&(g=!1,k++,D()),P()):"keyword.operator"!==l.type&&"keyword"!==l.type||!y.match(/^(=|==|===|!=|!==|&&|\|\||and|or|xor|\+=|.=|>|>=|<|<=|=>)$/)?"punctuation.operator"===l.type&&";"===y?(D(),I(),m=!0,_&&O++):"punctuation.operator"===l.type&&y.match(/^(:|,)$/)?(D(),I(),y.match(/^(,)$/)&&S>0&&0===$&&d.lineBreaksAfterCommasInCurlyBlock?O++:(m=!0,p=!1)):"support.php_tag"!==l.type||"?>"!==y||p?i(l,"attribute-name")&&f.substr(-1).match(/^\s$/)?g=!0:i(l,"attribute-equals")?(P(),I()):i(l,"tag-close")?(P(),"/>"===y&&(g=!0)):"keyword"===l.type&&y.match(/^(case|default)$/)&&N&&(C=1):(D(),g=!0):(D(),I(),g=!0,m=!0),p&&(!l.type.match(/^(comment)$/)||y.substr(0,1).match(/^[/#]$/))&&(!l.type.match(/^(string)$/)||y.substr(0,1).match(/^['"@]$/))){if(k=x,b>w)for(k++,s=b;s>w;s--)M[s]=k;else b"===y)&&(O=L&&n&&""===y&&b--),i(l,"tag-name")&&(v=y),r=E}}l=n}f=f.trim(),e.doc.setValue(f)},t.commands=[{name:"beautify",description:"Format selection (Beautify)",exec:function(e){t.beautify(e.session)},bindKey:"Ctrl-Shift-B"}]})),ace.require(["ace/ext/beautify"],(function(t){e&&(e.exports=t)}))},604:(e,t,n)=>{e=n.nmd(e),ace.define("ace/ext/searchbox-css",["require","exports","module"],(function(e,t,n){n.exports='\n\n/* ------------------------------------------------------------------------------------------\n * Editor Search Form\n * --------------------------------------------------------------------------------------- */\n.ace_search {\n background-color: #ddd;\n color: #666;\n border: 1px solid #cbcbcb;\n border-top: 0 none;\n overflow: hidden;\n margin: 0;\n padding: 4px 6px 0 4px;\n position: absolute;\n top: 0;\n z-index: 99;\n white-space: normal;\n}\n.ace_search.left {\n border-left: 0 none;\n border-radius: 0px 0px 5px 0px;\n left: 0;\n}\n.ace_search.right {\n border-radius: 0px 0px 0px 5px;\n border-right: 0 none;\n right: 0;\n}\n\n.ace_search_form, .ace_replace_form {\n margin: 0 20px 4px 0;\n overflow: hidden;\n line-height: 1.9;\n}\n.ace_replace_form {\n margin-right: 0;\n}\n.ace_search_form.ace_nomatch {\n outline: 1px solid red;\n}\n\n.ace_search_field {\n border-radius: 3px 0 0 3px;\n background-color: white;\n color: black;\n border: 1px solid #cbcbcb;\n border-right: 0 none;\n outline: 0;\n padding: 0;\n font-size: inherit;\n margin: 0;\n line-height: inherit;\n padding: 0 6px;\n min-width: 17em;\n vertical-align: top;\n min-height: 1.8em;\n box-sizing: content-box;\n}\n.ace_searchbtn {\n border: 1px solid #cbcbcb;\n line-height: inherit;\n display: inline-block;\n padding: 0 6px;\n background: #fff;\n border-right: 0 none;\n border-left: 1px solid #dcdcdc;\n cursor: pointer;\n margin: 0;\n position: relative;\n color: #666;\n}\n.ace_searchbtn:last-child {\n border-radius: 0 3px 3px 0;\n border-right: 1px solid #cbcbcb;\n}\n.ace_searchbtn:disabled {\n background: none;\n cursor: default;\n}\n.ace_searchbtn:hover {\n background-color: #eef1f6;\n}\n.ace_searchbtn.prev, .ace_searchbtn.next {\n padding: 0px 0.7em\n}\n.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\n content: "";\n border: solid 2px #888;\n width: 0.5em;\n height: 0.5em;\n border-width: 2px 0 0 2px;\n display:inline-block;\n transform: rotate(-45deg);\n}\n.ace_searchbtn.next:after {\n border-width: 0 2px 2px 0 ;\n}\n.ace_searchbtn_close {\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\n border-radius: 50%;\n border: 0 none;\n color: #656565;\n cursor: pointer;\n font: 16px/16px Arial;\n padding: 0;\n height: 14px;\n width: 14px;\n top: 9px;\n right: 7px;\n position: absolute;\n}\n.ace_searchbtn_close:hover {\n background-color: #656565;\n background-position: 50% 100%;\n color: white;\n}\n\n.ace_button {\n margin-left: 2px;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -o-user-select: none;\n -ms-user-select: none;\n user-select: none;\n overflow: hidden;\n opacity: 0.7;\n border: 1px solid rgba(100,100,100,0.23);\n padding: 1px;\n box-sizing: border-box!important;\n color: black;\n}\n\n.ace_button:hover {\n background-color: #eee;\n opacity:1;\n}\n.ace_button:active {\n background-color: #ddd;\n}\n\n.ace_button.checked {\n border-color: #3399ff;\n opacity:1;\n}\n\n.ace_search_options{\n margin-bottom: 3px;\n text-align: right;\n -webkit-user-select: none;\n -moz-user-select: none;\n -o-user-select: none;\n -ms-user-select: none;\n user-select: none;\n clear: both;\n}\n\n.ace_search_counter {\n float: left;\n font-family: arial;\n padding: 0 8px;\n}'})),ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/ext/searchbox-css","ace/keyboard/hash_handler","ace/lib/keys","ace/config"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=e("../lib/lang"),r=e("../lib/event"),s=e("./searchbox-css"),a=e("../keyboard/hash_handler").HashHandler,l=e("../lib/keys"),c=e("../config").nls;o.importCssString(s,"ace_searchbox",!1);var u=function(){function e(e,t,n){var i=o.createElement("div");o.buildDom(["div",{class:"ace_search right"},["span",{action:"hide",class:"ace_searchbtn_close"}],["div",{class:"ace_search_form"},["input",{class:"ace_search_field",placeholder:c("Search for"),spellcheck:"false"}],["span",{action:"findPrev",class:"ace_searchbtn prev"},"​"],["span",{action:"findNext",class:"ace_searchbtn next"},"​"],["span",{action:"findAll",class:"ace_searchbtn",title:"Alt-Enter"},c("All")]],["div",{class:"ace_replace_form"},["input",{class:"ace_search_field",placeholder:c("Replace with"),spellcheck:"false"}],["span",{action:"replaceAndFindNext",class:"ace_searchbtn"},c("Replace")],["span",{action:"replaceAll",class:"ace_searchbtn"},c("All")]],["div",{class:"ace_search_options"},["span",{action:"toggleReplace",class:"ace_button",title:c("Toggle Replace mode"),style:"float:left;margin-top:-2px;padding:0 5px;"},"+"],["span",{class:"ace_search_counter"}],["span",{action:"toggleRegexpMode",class:"ace_button",title:c("RegExp Search")},".*"],["span",{action:"toggleCaseSensitive",class:"ace_button",title:c("CaseSensitive Search")},"Aa"],["span",{action:"toggleWholeWords",class:"ace_button",title:c("Whole Word Search")},"\\b"],["span",{action:"searchInSelection",class:"ace_button",title:c("Search In Selection")},"S"]]],i),this.element=i.firstChild,this.setSession=this.setSession.bind(this),this.$init(),this.setEditor(e),o.importCssString(s,"ace_searchbox",e.container)}return e.prototype.setEditor=function(e){e.searchBox=this,e.renderer.scroller.appendChild(this.element),this.editor=e},e.prototype.setSession=function(e){this.searchRange=null,this.$syncOptions(!0)},e.prototype.$initElements=function(e){this.searchBox=e.querySelector(".ace_search_form"),this.replaceBox=e.querySelector(".ace_replace_form"),this.searchOption=e.querySelector("[action=searchInSelection]"),this.replaceOption=e.querySelector("[action=toggleReplace]"),this.regExpOption=e.querySelector("[action=toggleRegexpMode]"),this.caseSensitiveOption=e.querySelector("[action=toggleCaseSensitive]"),this.wholeWordOption=e.querySelector("[action=toggleWholeWords]"),this.searchInput=this.searchBox.querySelector(".ace_search_field"),this.replaceInput=this.replaceBox.querySelector(".ace_search_field"),this.searchCounter=e.querySelector(".ace_search_counter")},e.prototype.$init=function(){var e=this.element;this.$initElements(e);var t=this;r.addListener(e,"mousedown",(function(e){setTimeout((function(){t.activeInput.focus()}),0),r.stopPropagation(e)})),r.addListener(e,"click",(function(e){var n=(e.target||e.srcElement).getAttribute("action");n&&t[n]?t[n]():t.$searchBarKb.commands[n]&&t.$searchBarKb.commands[n].exec(t),r.stopPropagation(e)})),r.addCommandKeyListener(e,(function(e,n,o){var i=l.keyCodeToString(o),s=t.$searchBarKb.findKeyCommand(n,i);s&&s.exec&&(s.exec(t),r.stopEvent(e))})),this.$onChange=i.delayedCall((function(){t.find(!1,!1)})),r.addListener(this.searchInput,"input",(function(){t.$onChange.schedule(20)})),r.addListener(this.searchInput,"focus",(function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()})),r.addListener(this.replaceInput,"focus",(function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()}))},e.prototype.setSearchRange=function(e){this.searchRange=e,e?this.searchRangeMarker=this.editor.session.addMarker(e,"ace_active-line"):this.searchRangeMarker&&(this.editor.session.removeMarker(this.searchRangeMarker),this.searchRangeMarker=null)},e.prototype.$syncOptions=function(e){o.setCssClass(this.replaceOption,"checked",this.searchRange),o.setCssClass(this.searchOption,"checked",this.searchOption.checked),this.replaceOption.textContent=this.replaceOption.checked?"-":"+",o.setCssClass(this.regExpOption,"checked",this.regExpOption.checked),o.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked),o.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked);var t=this.editor.getReadOnly();this.replaceOption.style.display=t?"none":"",this.replaceBox.style.display=this.replaceOption.checked&&!t?"":"none",this.find(!1,!1,e)},e.prototype.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},e.prototype.find=function(e,t,n){var i=!this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:n,range:this.searchRange})&&this.searchInput.value;o.setCssClass(this.searchBox,"ace_nomatch",i),this.editor._emit("findSearchBox",{match:!i}),this.highlight(),this.updateCounter()},e.prototype.updateCounter=function(){var e=this.editor,t=e.$search.$options.re,n=t.unicode,o=0,r=0;if(t){var s=this.searchRange?e.session.getTextRange(this.searchRange):e.getValue(),a=e.session.doc.positionToIndex(e.selection.anchor);this.searchRange&&(a-=e.session.doc.positionToIndex(this.searchRange.start));for(var l,u=t.lastIndex=0;(l=t.exec(s))&&(o++,(u=l.index)<=a&&r++,!(o>999))&&(l[0]||(t.lastIndex=u+=i.skipEmptyMatch(s,u,n),!(u>=s.length))););}this.searchCounter.textContent=c("$0 of $1",[r,o>999?"999+":o])},e.prototype.findNext=function(){this.find(!0,!1)},e.prototype.findPrev=function(){this.find(!0,!0)},e.prototype.findAll=function(){var e=!this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked})&&this.searchInput.value;o.setCssClass(this.searchBox,"ace_nomatch",e),this.editor._emit("findSearchBox",{match:!e}),this.highlight(),this.hide()},e.prototype.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},e.prototype.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},e.prototype.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},e.prototype.hide=function(){this.active=!1,this.setSearchRange(null),this.editor.off("changeSession",this.setSession),this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},e.prototype.show=function(e,t){this.active=!0,this.editor.on("changeSession",this.setSession),this.element.style.display="",this.replaceOption.checked=t,e&&(this.searchInput.value=e),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb),this.$syncOptions(!0)},e.prototype.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput},e}(),h=new a;h.bindKeys({"Ctrl-f|Command-f":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?"":"none",e.replaceOption.checked=!1,e.$syncOptions(),e.searchInput.focus()},"Ctrl-H|Command-Option-F":function(e){e.editor.getReadOnly()||(e.replaceOption.checked=!0,e.$syncOptions(),e.replaceInput.focus())},"Ctrl-G|Command-G":function(e){e.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(e){e.findPrev()},esc:function(e){setTimeout((function(){e.hide()}))},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},"Shift-Return":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},"Alt-Return":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),h.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}},{name:"toggleReplace",exec:function(e){e.replaceOption.checked=!e.replaceOption.checked,e.$syncOptions()}},{name:"searchInSelection",exec:function(e){e.searchOption.checked=!e.searchRange,e.setSearchRange(e.searchOption.checked&&e.editor.getSelectionRange()),e.$syncOptions()}}]);var d=new a([{bindKey:"Esc",name:"closeSearchBar",exec:function(e){e.searchBox.hide()}}]);u.prototype.$searchBarKb=h,u.prototype.$closeSearchBarKb=d,t.SearchBox=u,t.Search=function(e,t){(e.searchBox||new u(e)).show(e.session.getTextRange(),t)}})),ace.require(["ace/ext/searchbox"],(function(t){e&&(e.exports=t)}))},549:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=(e("../lib/lang"),e("./text_highlight_rules").TextHighlightRules),r=t.supportType="align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index",s=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|flex-end|flex-start|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom",l=t.supportConstantColor="aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen",c=t.supportConstantFonts="arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",u=t.numRe="\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",d=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",p=function(){var e=this.createKeywordMapper({"support.function":s,"support.constant":a,"support.type":r,"support.constant.color":l,"support.constant.fonts":c},"text",!0);this.$rules={start:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"paren.rparen",regex:"\\}"},{token:"string",regex:"@(?!viewport)",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"keyword",regex:"%"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant.numeric",regex:u},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"start"},{token:"paren.rparen",regex:"\\}",next:"start"},{token:"string",regex:";",next:"start"},{token:"keyword",regex:"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)"}],comments:[{token:"comment",regex:"\\/\\*",push:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}]}],ruleset:[{regex:"-(webkit|ms|moz|o)-",token:"text"},{token:"punctuation.operator",regex:"[:;]"},{token:"paren.rparen",regex:"\\}",next:"start"},{include:["strings","url","comments"]},{token:["constant.numeric","keyword"],regex:"("+u+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"},{token:"constant.numeric",regex:u},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:d},{include:"url"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}],url:[{token:"support.function",regex:"(?:url(:?-prefix)?|domain|regexp)\\(",push:[{token:"support.function",regex:"\\)",next:"pop"},{defaultToken:"string"}]}],strings:[{token:"string.start",regex:"'",push:[{token:"string.end",regex:"'|$",next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]},{token:"string.start",regex:'"',push:[{token:"string.end",regex:'"|$',next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]}],escapes:[{token:"constant.language.escape",regex:/\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/}]},this.normalizeRules()};o.inherits(p,i),t.CssHighlightRules=p})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/css_completions",["require","exports","module"],(function(e,t,n){"use strict";var o={background:{"#$0":1},"background-color":{"#$0":1,transparent:1,fixed:1},"background-image":{"url('/$0')":1},"background-repeat":{repeat:1,"repeat-x":1,"repeat-y":1,"no-repeat":1,inherit:1},"background-position":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},"background-attachment":{scroll:1,fixed:1},"background-size":{cover:1,contain:1},"background-clip":{"border-box":1,"padding-box":1,"content-box":1},"background-origin":{"border-box":1,"padding-box":1,"content-box":1},border:{"solid $0":1,"dashed $0":1,"dotted $0":1,"#$0":1},"border-color":{"#$0":1},"border-style":{solid:2,dashed:2,dotted:2,double:2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},"border-collapse":{collapse:1,separate:1},bottom:{px:1,em:1,"%":1},clear:{left:1,right:1,both:1,none:1},color:{"#$0":1,"rgb(#$00,0,0)":1},cursor:{default:1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,"n-resize":1,"ne-resize":1,"e-resize":1,"se-resize":1,"s-resize":1,"sw-resize":1,"w-resize":1,"nw-resize":1},display:{none:1,block:1,inline:1,"inline-block":1,"table-cell":1},"empty-cells":{show:1,hide:1},float:{left:1,right:1,none:1},"font-family":{Arial:2,"Comic Sans MS":2,Consolas:2,"Courier New":2,Courier:2,Georgia:2,Monospace:2,"Sans-Serif":2,"Segoe UI":2,Tahoma:2,"Times New Roman":2,"Trebuchet MS":2,Verdana:1},"font-size":{px:1,em:1,"%":1},"font-weight":{bold:1,normal:1},"font-style":{italic:1,normal:1},"font-variant":{normal:1,"small-caps":1},height:{px:1,em:1,"%":1},left:{px:1,em:1,"%":1},"letter-spacing":{normal:1},"line-height":{normal:1},"list-style-type":{none:1,disc:1,circle:1,square:1,decimal:1,"decimal-leading-zero":1,"lower-roman":1,"upper-roman":1,"lower-greek":1,"lower-latin":1,"upper-latin":1,georgian:1,"lower-alpha":1,"upper-alpha":1},margin:{px:1,em:1,"%":1},"margin-right":{px:1,em:1,"%":1},"margin-left":{px:1,em:1,"%":1},"margin-top":{px:1,em:1,"%":1},"margin-bottom":{px:1,em:1,"%":1},"max-height":{px:1,em:1,"%":1},"max-width":{px:1,em:1,"%":1},"min-height":{px:1,em:1,"%":1},"min-width":{px:1,em:1,"%":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},"overflow-x":{hidden:1,visible:1,auto:1,scroll:1},"overflow-y":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,"%":1},"padding-top":{px:1,em:1,"%":1},"padding-right":{px:1,em:1,"%":1},"padding-bottom":{px:1,em:1,"%":1},"padding-left":{px:1,em:1,"%":1},"page-break-after":{auto:1,always:1,avoid:1,left:1,right:1},"page-break-before":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,static:1},right:{px:1,em:1,"%":1},"table-layout":{fixed:1,auto:1},"text-decoration":{none:1,underline:1,"line-through":1,blink:1},"text-align":{left:1,right:1,center:1,justify:1},"text-transform":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,"%":1},"vertical-align":{top:1,bottom:1},visibility:{hidden:1,visible:1},"white-space":{nowrap:1,normal:1,pre:1,"pre-line":1,"pre-wrap":1},width:{px:1,em:1,"%":1},"word-spacing":{normal:1},filter:{"alpha(opacity=$0100)":1},"text-shadow":{"$02px 2px 2px #777":1},"text-overflow":{"ellipsis-word":1,clip:1,ellipsis:1},"-moz-border-radius":1,"-moz-border-radius-topright":1,"-moz-border-radius-bottomright":1,"-moz-border-radius-topleft":1,"-moz-border-radius-bottomleft":1,"-webkit-border-radius":1,"-webkit-border-top-right-radius":1,"-webkit-border-top-left-radius":1,"-webkit-border-bottom-right-radius":1,"-webkit-border-bottom-left-radius":1,"-moz-box-shadow":1,"-webkit-box-shadow":1,transform:{"rotate($00deg)":1,"skew($00deg)":1},"-moz-transform":{"rotate($00deg)":1,"skew($00deg)":1},"-webkit-transform":{"rotate($00deg)":1,"skew($00deg)":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement("c").style;for(var t in e)if("string"==typeof e[t]){var n=t.replace(/[A-Z]/g,(function(e){return"-"+e.toLowerCase()}));o.hasOwnProperty(n)||(o[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,o){if(this.completionsDefined||this.defineCompletions(),"ruleset"===e||"ace/mode/scss"==t.$mode.$id){var i=t.getLine(n.row).substr(0,n.column),r=/\([^)]*$/.test(i);return r&&(i=i.substr(i.lastIndexOf("(")+1)),/:[^;]+$/.test(i)?(/([\w\-]+):[^:]*$/.test(i),this.getPropertyValueCompletions(e,t,n,o)):this.getPropertyCompletions(e,t,n,o,r)}return[]},this.getPropertyCompletions=function(e,t,n,i,r){return r=r||!1,Object.keys(o).map((function(e){return{caption:e,snippet:e+": $0"+(r?"":";"),meta:"property",score:1e6}}))},this.getPropertyValueCompletions=function(e,t,n,i){var r=t.getLine(n.row).substr(0,n.column),s=(/([\w\-]+):[^:]*$/.exec(r)||{})[1];if(!s)return[];var a=[];return s in o&&"object"==typeof o[s]&&(a=Object.keys(o[s])),a.map((function(e){return{caption:e,snippet:e,meta:"property value",score:1e6}}))}}).call(i.prototype),t.CssCompletions=i})),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=(e("../behaviour").Behaviour,e("./cstyle").CstyleBehaviour),r=e("../../token_iterator").TokenIterator,s=function(){this.inherit(i),this.add("colon","insertion",(function(e,t,n,o,i){if(":"===i&&n.selection.isEmpty()){var s=n.getCursorPosition(),a=new r(o,s.row,s.column),l=a.getCurrentToken();if(l&&l.value.match(/\s+/)&&(l=a.stepBackward()),l&&"support.type"===l.type){var c=o.doc.getLine(s.row);if(":"===c.substring(s.column,s.column+1))return{text:"",selection:[1,1]};if(/^(\s+[^;]|\s*$)/.test(c.substring(s.column)))return{text:":;",selection:[1,1]}}}})),this.add("colon","deletion",(function(e,t,n,o,i){var s=o.doc.getTextRange(i);if(!i.isMultiLine()&&":"===s){var a=n.getCursorPosition(),l=new r(o,a.row,a.column),c=l.getCurrentToken();if(c&&c.value.match(/\s+/)&&(c=l.stepBackward()),c&&"support.type"===c.type&&";"===o.doc.getLine(i.start.row).substring(i.end.column,i.end.column+1))return i.end.column++,i}})),this.add("semicolon","insertion",(function(e,t,n,o,i){if(";"===i&&n.selection.isEmpty()){var r=n.getCursorPosition();if(";"===o.doc.getLine(r.row).substring(r.column,r.column+1))return{text:"",selection:[1,1]}}})),this.add("!important","insertion",(function(e,t,n,o,i){if("!"===i&&n.selection.isEmpty()){var r=n.getCursorPosition(),s=o.doc.getLine(r.row);if(/^\s*(;|}|$)/.test(s.substring(r.column)))return{text:"!important",selection:[10,10]}}}))};o.inherits(s,i),t.CssBehaviour=s})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./css_highlight_rules").CssHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../worker/worker_client").WorkerClient,l=e("./css_completions").CssCompletions,c=e("./behaviour/css").CssBehaviour,u=e("./folding/cstyle").FoldMode,h=function(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=new c,this.$completer=new l,this.foldingRules=new u};o.inherits(h,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;return i.length&&"comment"==i[i.length-1].type||t.match(/^.*\{\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,o){return this.$completer.getCompletions(e,t,n,o)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/css",this.snippetFileId="ace/snippets/css"}.call(h.prototype),t.Mode=h})),ace.require(["ace/mode/css"],(function(t){e&&(e.exports=t)}))},576:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},r.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};o.inherits(r,i),r.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},r.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},r.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=r})),ace.define("ace/mode/golang_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],(function(e,t,n){var o=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,r=e("./text_highlight_rules").TextHighlightRules,s=function(){var e=this.createKeywordMapper({keyword:"else|break|case|return|goto|if|const|select|continue|struct|default|switch|for|range|func|import|package|chan|defer|fallthrough|go|interface|map|range|select|type|var","constant.language":"nil|true|false|iota","support.function":"new|close|cap|copy|panic|panicln|print|println|len|make|delete|real|recover|imag|append","support.type":"string|uint8|uint16|uint32|uint64|int8|int16|int32|int64|float32|float64|complex64|complex128|byte|rune|uint|int|uintptr|bool|error"},""),t="\\\\(?:[0-7]{3}|x\\h{2}|u{4}|U\\h{6}|[abfnrtv'\"\\\\])".replace(/\\h/g,"[a-fA-F\\d]");this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},i.getStartRule("doc-start"),{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"string",regex:/"(?:[^"\\]|\\.)*?"/},{token:"string",regex:"`",next:"bqstring"},{token:"constant.numeric",regex:"'(?:[^\\'\ud800-\udbff]|[\ud800-\udbff][\udc00-\udfff]|"+t.replace('"',"")+")'"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:["keyword","text","entity.name.function"],regex:"(func)(\\s+)([a-zA-Z_$][a-zA-Z0-9_$]*)\\b"},{token:function(t){return"("==t[t.length-1]?[{type:e(t.slice(0,-1))||"support.function",value:t.slice(0,-1)},{type:"paren.lparen",value:t.slice(-1)}]:e(t)||"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b\\(?"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^="},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}],bqstring:[{token:"string",regex:"`",next:"start"},{defaultToken:"string"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};o.inherits(s,r),t.GolangHighlightRules=s})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/golang",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/golang_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle"],(function(e,t,n){var o=e("../lib/oop"),i=e("./text").Mode,r=e("./golang_highlight_rules").GolangHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=r,this.$outdent=new s,this.foldingRules=new a,this.$behaviour=this.$defaultBehaviour};o.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),r=i.tokens;return i.state,r.length&&"comment"==r[r.length-1].type||"start"==e&&t.match(/^.*[\{\(\[]\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/golang"}.call(l.prototype),t.Mode=l})),ace.require(["ace/mode/golang"],(function(t){e&&(e.exports=t)}))},395:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/jsdoc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:["comment.doc.tag","comment.doc.text","lparen.doc"],regex:"(@(?:param|member|typedef|property|namespace|var|const|callback))(\\s*)({)",push:[{token:"lparen.doc",regex:"{",push:[{include:"doc-syntax"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"}]},{token:["rparen.doc","text.doc","variable.parameter.doc","lparen.doc","variable.parameter.doc","rparen.doc"],regex:/(})(\s*)(?:([\w=:\/\.]+)|(?:(\[)([\w=:\/\.]+)(\])))/,next:"pop"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"},{include:"doc-syntax"},{defaultToken:"text.doc"}]},{token:["comment.doc.tag","text.doc","lparen.doc"],regex:"(@(?:returns?|yields|type|this|suppress|public|protected|private|package|modifies|implements|external|exception|throws|enum|define|extends))(\\s*)({)",push:[{token:"lparen.doc",regex:"{",push:[{include:"doc-syntax"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"}]},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"},{include:"doc-syntax"},{defaultToken:"text.doc"}]},{token:["comment.doc.tag","text.doc","variable.parameter.doc"],regex:'(@(?:alias|memberof|instance|module|name|lends|namespace|external|this|template|requires|param|implements|function|extends|typedef|mixes|constructor|var|memberof\\!|event|listens|exports|class|constructs|interface|emits|fires|throws|const|callback|borrows|augments))(\\s+)(\\w[\\w#.:/~"\\-]*)?'},{token:["comment.doc.tag","text.doc","variable.parameter.doc"],regex:"(@method)(\\s+)(\\w[\\w.\\(\\)]*)"},{token:"comment.doc.tag",regex:"@access\\s+(?:private|public|protected)"},{token:"comment.doc.tag",regex:"@kind\\s+(?:class|constant|event|external|file|function|member|mixin|module|namespace|typedef)"},{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},r.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}],"doc-syntax":[{token:"operator.doc",regex:/[|:]/},{token:"paren.doc",regex:/[\[\]]/}]},this.normalizeRules()};o.inherits(r,i),r.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},r.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},r.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.JsDocCommentHighlightRules=r})),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/jsdoc_comment_highlight_rules","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./jsdoc_comment_highlight_rules").JsDocCommentHighlightRules,r=e("./text_highlight_rules").TextHighlightRules,s="[a-zA-Z\\$_¡-￿][a-zA-Z\\d\\$_¡-￿]*",a=function(e){var t=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static|constructor","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},"identifier"),n="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)";this.$rules={no_regex:[i.getStartRule("doc-start"),c("no_regex"),{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+s+")(\\.)(prototype)(\\.)("+s+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+s+")(\\.)("+s+")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+s+")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+s+")(\\.)("+s+")(\\s*)(=)(\\s*)(function\\*?)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function\\*?)(\\s+)("+s+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+s+")(\\s*)(:)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:"keyword",regex:"from(?=\\s*('|\"))"},{token:"keyword",regex:"(?:case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void)\\b",next:"start"},{token:"support.constant",regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:s},{token:"punctuation.operator",regex:/[.](?![.])/,next:"property"},{token:"storage.type",regex:/=>/,next:"start"},{token:"keyword.operator",regex:/--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],property:[{token:"text",regex:"\\s+"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+s+")(\\.)("+s+")(\\s*)(=)(\\s*)(function\\*?)(?:(\\s+)(\\w+))?(\\s*)(\\()",next:"function_arguments"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"support.function",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|lter|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward|rEach)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:"support.function.dom",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:"support.constant",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:"identifier",regex:s},{regex:"",token:"empty",next:"no_regex"}],start:[i.getStartRule("doc-start"),c("start"),{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+|^$",next:"start"},{token:"empty",regex:"",next:"no_regex"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/[sxngimy]*",next:"no_regex"},{token:"invalid",regex:/\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/},{token:"constant.language.delimiter",regex:/\|/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp"}],regex_character_class:[{token:"regexp.charclass.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp.charachterclass"}],default_parameter:[{token:"string",regex:"'(?=.)",push:[{token:"string",regex:"'|$",next:"pop"},{include:"qstring"}]},{token:"string",regex:'"(?=.)',push:[{token:"string",regex:'"|$',next:"pop"},{include:"qqstring"}]},{token:"constant.language",regex:"null|Infinity|NaN|undefined"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:"punctuation.operator",regex:",",next:"function_arguments"},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],function_arguments:[c("function_arguments"),{token:"variable.parameter",regex:s},{token:"punctuation.operator",regex:","},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],qqstring:[{token:"constant.language.escape",regex:n},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:n},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},e&&e.noES6||(this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){if(this.next="{"==e?this.nextState:"","{"==e&&n.length)n.unshift("start",t);else if("}"==e&&n.length&&(n.shift(),this.next=n.shift(),-1!=this.next.indexOf("string")||-1!=this.next.indexOf("jsx")))return"paren.quasi.end";return"{"==e?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:n},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]},{token:["variable.parameter","text"],regex:"("+s+")(\\s*)(?=\\=>)"},{token:"paren.lparen",regex:"(\\()(?=.+\\s*=>)",next:"function_arguments"},{token:"variable.language",regex:"(?:(?:(?:Weak)?(?:Set|Map))|Promise)\\b"}),this.$rules.function_arguments.unshift({token:"keyword.operator",regex:"=",next:"default_parameter"},{token:"keyword.operator",regex:"\\.{3}"}),this.$rules.property.unshift({token:"support.function",regex:"(findIndex|repeat|startsWith|endsWith|includes|isSafeInteger|trunc|cbrt|log2|log10|sign|then|catch|finally|resolve|reject|race|any|all|allSettled|keys|entries|isInteger)\\b(?=\\()"},{token:"constant.language",regex:"(?:MAX_SAFE_INTEGER|MIN_SAFE_INTEGER|EPSILON)\\b"}),e&&0==e.jsx||l.call(this)),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};function l(){var e=s.replace("\\d","\\d\\-"),t={onMatch:function(e,t,n){var o="/"==e.charAt(1)?2:1;return 1==o?(t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++):2==o&&t==this.nextState&&(n[1]--,(!n[1]||n[1]<0)&&(n.shift(),n.shift())),[{type:"meta.tag.punctuation."+(1==o?"":"end-")+"tag-open.xml",value:e.slice(0,o)},{type:"meta.tag.tag-name.xml",value:e.substr(o)}]},regex:"",onMatch:function(e,t,n){return t==n[0]&&n.shift(),2==e.length&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||"start",[{type:this.token,value:e}]},nextState:"jsx"},n,c("jsxAttributes"),{token:"entity.other.attribute-name.xml",regex:e},{token:"keyword.operator.attribute-equals.xml",regex:"="},{token:"text.tag-whitespace.xml",regex:"\\s+"},{token:"string.attribute-value.xml",regex:"'",stateName:"jsx_attr_q",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',stateName:"jsx_attr_qq",push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},t],this.$rules.reference=[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}]}function c(e){return[{token:"comment",regex:/\/\*/,next:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]},{token:"comment",regex:"\\/\\/",next:[i.getTagRule(),{token:"comment",regex:"$|^",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]}]}o.inherits(a,r),t.JavaScriptHighlightRules=a})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./javascript_highlight_rules").JavaScriptHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../worker/worker_client").WorkerClient,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,u=function(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=new l,this.foldingRules=new c};o.inherits(u,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$quotes={'"':'"',"'":"'","`":"`"},this.$pairQuotesAfter={"`":/\w/},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),r=i.tokens,s=i.state;if(r.length&&"comment"==r[r.length-1].type)return o;if("start"==e||"no_regex"==e)(a=t.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/))&&(o+=n);else if("doc-start"==e){if("start"==s||"no_regex"==s)return"";var a;(a=t.match(/^\s*(\/?)\*/))&&(a[1]&&(o+=" "),o+="* ")}return o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/javascript",this.snippetFileId="ace/snippets/javascript"}.call(u.prototype),t.Mode=u})),ace.require(["ace/mode/javascript"],(function(t){e&&(e.exports=t)}))},252:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"punctuation.operator",regex:/[,]/},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};o.inherits(r,i),t.JsonHighlightRules=r})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle","ace/worker/worker_client"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./json_highlight_rules").JsonHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./folding/cstyle").FoldMode,l=e("../worker/worker_client").WorkerClient,c=function(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new a};o.inherits(c,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t);return"start"==e&&t.match(/^.*[\{\(\[]\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new l(["ace"],"ace/mode/json_worker","JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/json"}.call(c.prototype),t.Mode=c})),ace.require(["ace/mode/json"],(function(t){e&&(e.exports=t)}))},711:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},r.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};o.inherits(r,i),r.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},r.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},r.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=r})),ace.define("ace/mode/jsx_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],(function(e,t,n){var o=e("../lib/oop"),i=e("../lib/lang"),r=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,a=function(){var e=i.arrayToMap("break|do|instanceof|typeof|case|else|new|var|catch|finally|return|void|continue|for|switch|default|while|function|this|if|throw|delete|in|try|class|extends|super|import|from|into|implements|interface|static|mixin|override|abstract|final|number|int|string|boolean|variant|log|assert".split("|")),t=i.arrayToMap("null|true|false|NaN|Infinity|__FILE__|__LINE__|undefined".split("|")),n=i.arrayToMap("debugger|with|const|export|let|private|public|yield|protected|extern|native|as|operator|__fake__|__readonly__".split("|")),o="[a-zA-Z_][a-zA-Z0-9_]*\\b";this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},r.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:["storage.type","text","entity.name.function"],regex:"(function)(\\s+)("+o+")"},{token:function(o){return"this"==o?"variable.language":"function"==o?"storage.type":e.hasOwnProperty(o)||n.hasOwnProperty(o)?"keyword":t.hasOwnProperty(o)?"constant.language":/^_?[A-Z][a-zA-Z0-9_]*$/.test(o)?"language.support.class":"identifier"},regex:o},{token:"keyword.operator",regex:"!|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({<]"},{token:"paren.rparen",regex:"[\\])}>]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]},this.embedRules(r,"doc-",[r.getEndRule("start")])};o.inherits(a,s),t.JsxHighlightRules=a})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/jsx",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/jsx_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./jsx_highlight_rules").JsxHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./folding/cstyle").FoldMode;function l(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new a}o.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;return i.length&&"comment"==i[i.length-1].type||"start"==e&&t.match(/^.*[\{\(\[]\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/jsx"}.call(l.prototype),t.Mode=l})),ace.require(["ace/mode/jsx"],(function(t){e&&(e.exports=t)}))},7:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/python_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){var e=this.createKeywordMapper({"invalid.deprecated":"debugger","support.function":"abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|binfile|bin|iter|property|tuple|bool|filter|len|range|type|bytearray|float|list|raw_input|unichr|callable|format|locals|reduce|unicode|chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|__import__|complex|hash|min|apply|delattr|help|next|setattr|set|buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern|ascii|breakpoint|bytes","variable.language":"self|cls","constant.language":"True|False|None|NotImplemented|Ellipsis|__debug__",keyword:"and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield|async|await|nonlocal"},"identifier"),t="[uU]?",n="[rR]",o="[fF]",i="(?:[rR][fF]|[fF][rR])",r="(?:(?:(?:[1-9]\\d*)|(?:0))|(?:0[oO]?[0-7]+)|(?:0[xX][\\dA-Fa-f]+)|(?:0[bB][01]+))",s="(?:\\d+)",a="(?:(?:"+s+"?(?:\\.\\d+))|(?:"+s+"\\.))",l="(?:(?:(?:"+a+"|"+s+")(?:[eE][+-]?\\d+))|"+a+")",c="\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\abfnrtv'\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})";this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string",regex:t+'"{3}',next:"qqstring3"},{token:"string",regex:t+'"(?=.)',next:"qqstring"},{token:"string",regex:t+"'{3}",next:"qstring3"},{token:"string",regex:t+"'(?=.)",next:"qstring"},{token:"string",regex:n+'"{3}',next:"rawqqstring3"},{token:"string",regex:n+'"(?=.)',next:"rawqqstring"},{token:"string",regex:n+"'{3}",next:"rawqstring3"},{token:"string",regex:n+"'(?=.)",next:"rawqstring"},{token:"string",regex:o+'"{3}',next:"fqqstring3"},{token:"string",regex:o+'"(?=.)',next:"fqqstring"},{token:"string",regex:o+"'{3}",next:"fqstring3"},{token:"string",regex:o+"'(?=.)",next:"fqstring"},{token:"string",regex:i+'"{3}',next:"rfqqstring3"},{token:"string",regex:i+'"(?=.)',next:"rfqqstring"},{token:"string",regex:i+"'{3}",next:"rfqstring3"},{token:"string",regex:i+"'(?=.)",next:"rfqstring"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|%|@|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"punctuation",regex:",|:|;|\\->|\\+=|\\-=|\\*=|\\/=|\\/\\/=|%=|@=|&=|\\|=|^=|>>=|<<=|\\*\\*="},{token:"paren.lparen",regex:"[\\[\\(\\{]"},{token:"paren.rparen",regex:"[\\]\\)\\}]"},{token:["keyword","text","entity.name.function"],regex:"(def|class)(\\s+)([\\u00BF-\\u1FFF\\u2C00-\\uD7FF\\w]+)"},{token:"text",regex:"\\s+"},{include:"constants"}],qqstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:'"{3}',next:"start"},{defaultToken:"string"}],qstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:"'{3}",next:"start"},{defaultToken:"string"}],qqstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"start"},{defaultToken:"string"}],rawqqstring3:[{token:"string",regex:'"{3}',next:"start"},{defaultToken:"string"}],rawqstring3:[{token:"string",regex:"'{3}",next:"start"},{defaultToken:"string"}],rawqqstring:[{token:"string",regex:"\\\\$",next:"rawqqstring"},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],rawqstring:[{token:"string",regex:"\\\\$",next:"rawqstring"},{token:"string",regex:"'|$",next:"start"},{defaultToken:"string"}],fqqstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:'"{3}',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:"'{3}",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqqstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"\\\\$",next:"fqqstring"},{token:"string",regex:'"|$',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"'|$",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqqstring3:[{token:"string",regex:'"{3}',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqstring3:[{token:"string",regex:"'{3}",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqqstring:[{token:"string",regex:"\\\\$",next:"rfqqstring"},{token:"string",regex:'"|$',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqstring:[{token:"string",regex:"'|$",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqstringParRules:[{token:"paren.lparen",regex:"[\\[\\(]"},{token:"paren.rparen",regex:"[\\]\\)]"},{token:"string",regex:"\\s+"},{token:"string",regex:"'[^']*'"},{token:"string",regex:'"[^"]*"'},{token:"function.support",regex:"(!s|!r|!a)"},{include:"constants"},{token:"paren.rparen",regex:"}",next:"pop"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"}],constants:[{token:"constant.numeric",regex:"(?:"+l+"|\\d+)[jJ]\\b"},{token:"constant.numeric",regex:l},{token:"constant.numeric",regex:r+"[lL]\\b"},{token:"constant.numeric",regex:r+"\\b"},{token:["punctuation","function.support"],regex:"(\\.)([a-zA-Z_]+)\\b"},{token:e,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"}]},this.normalizeRules()};o.inherits(r,i),t.PythonHighlightRules=r})),ace.define("ace/mode/folding/pythonic",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("./fold_mode").FoldMode,r=t.FoldMode=function(e){this.foldingStartMarker=new RegExp("([\\[{])(?:\\s*)$|("+e+")(?:\\s*)(?:#.*)?$")};o.inherits(r,i),function(){this.getFoldWidgetRange=function(e,t,n){var o=e.getLine(n).match(this.foldingStartMarker);if(o)return o[1]?this.openingBracketBlock(e,o[1],n,o.index):o[2]?this.indentationBlock(e,n,o.index+o[2].length):this.indentationBlock(e,n)}}.call(r.prototype)})),ace.define("ace/mode/python",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/python_highlight_rules","ace/mode/folding/pythonic","ace/range"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./python_highlight_rules").PythonHighlightRules,s=e("./folding/pythonic").FoldMode,a=e("../range").Range,l=function(){this.HighlightRules=r,this.foldingRules=new s("\\:"),this.$behaviour=this.$defaultBehaviour};o.inherits(l,i),function(){this.lineCommentStart="#",this.$pairQuotesAfter={"'":/[ruf]/i,'"':/[ruf]/i},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;return i.length&&"comment"==i[i.length-1].type||"start"==e&&t.match(/^.*[\{\(\[:]\s*$/)&&(o+=n),o};var e={pass:1,return:1,raise:1,break:1,continue:1};this.checkOutdent=function(t,n,o){if("\r\n"!==o&&"\r"!==o&&"\n"!==o)return!1;var i=this.getTokenizer().getLineTokens(n.trim(),t).tokens;if(!i)return!1;do{var r=i.pop()}while(r&&("comment"==r.type||"text"==r.type&&r.value.match(/^\s+$/)));return!!r&&"keyword"==r.type&&e[r.value]},this.autoOutdent=function(e,t,n){n+=1;var o=this.$getIndent(t.getLine(n)),i=t.getTabString();o.slice(-i.length)==i&&t.remove(new a(n,o.length-i.length,n,o.length))},this.$id="ace/mode/python",this.snippetFileId="ace/snippets/python"}.call(l.prototype),t.Mode=l})),ace.require(["ace/mode/python"],(function(t){e&&(e.exports=t)}))},202:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(e){var t="[_:a-zA-ZÀ-￿][-_:.a-zA-Z0-9À-￿]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.start.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"",next:"start"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.end.xml",regex:"--\x3e",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:t},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===r&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),o.inherits(r,i),t.XmlHighlightRules=r})),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../behaviour").Behaviour,r=e("../../token_iterator").TokenIterator;function s(e,t){return e&&e.type.lastIndexOf(t+".xml")>-1}e("../../lib/lang");var a=function(){this.add("string_dquotes","insertion",(function(e,t,n,o,i){if('"'==i||"'"==i){var a=i,l=o.doc.getTextRange(n.getSelectionRange());if(""!==l&&"'"!==l&&'"'!=l&&n.getWrapBehavioursEnabled())return{text:a+l+a,selection:!1};var c=n.getCursorPosition(),u=o.doc.getLine(c.row).substring(c.column,c.column+1),h=new r(o,c.row,c.column),d=h.getCurrentToken();if(u==a&&(s(d,"attribute-value")||s(d,"string")))return{text:"",selection:[1,1]};if(d||(d=h.stepBackward()),!d)return;for(;s(d,"tag-whitespace")||s(d,"whitespace");)d=h.stepBackward();var p=!u||u.match(/\s/);if(s(d,"attribute-equals")&&(p||">"==u)||s(d,"decl-attribute-equals")&&(p||"?"==u))return{text:a+a,selection:[1,1]}}})),this.add("string_dquotes","deletion",(function(e,t,n,o,i){var r=o.doc.getTextRange(i);if(!i.isMultiLine()&&('"'==r||"'"==r)&&o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)==r)return i.end.column++,i})),this.add("autoclosing","insertion",(function(e,t,n,o,i){if(">"==i){var a=n.getSelectionRange().start,l=new r(o,a.row,a.column),c=l.getCurrentToken()||l.stepBackward();if(!c||!(s(c,"tag-name")||s(c,"tag-whitespace")||s(c,"attribute-name")||s(c,"attribute-equals")||s(c,"attribute-value")))return;if(s(c,"reference.attribute-value"))return;if(s(c,"attribute-value")){var u=l.getCurrentTokenColumn()+c.value.length;if(a.column/.test(o.getLine(a.row).slice(a.column)))return;for(;!s(c,"tag-name");)if("<"==(c=l.stepBackward()).value){c=l.stepForward();break}var d=l.getCurrentTokenRow(),p=l.getCurrentTokenColumn();if(s(l.stepBackward(),"end-tag-open"))return;var g=c.value;if(d==a.row&&(g=g.substring(0,a.column-p)),this.voidElements.hasOwnProperty(g.toLowerCase()))return;return{text:">",selection:[1,1]}}})),this.add("autoindent","insertion",(function(e,t,n,o,i){if("\n"==i){var s=n.getCursorPosition(),a=o.getLine(s.row),l=new r(o,s.row,s.column),c=l.getCurrentToken();if(c&&-1!==c.type.indexOf("tag-close")){if("/>"==c.value)return;for(;c&&-1===c.type.indexOf("tag-name");)c=l.stepBackward();if(!c)return;var u=c.value,h=l.getCurrentTokenRow();if(!(c=l.stepBackward())||-1!==c.type.indexOf("end-tag"))return;if(this.voidElements&&!this.voidElements[u]){var d=o.getTokenAt(s.row,s.column+1),p=(a=o.getLine(h),this.$getIndent(a)),g=p+o.getTabString();return d&&"-1}(function(){this.getFoldWidget=function(e,t,n){var o=this._getFirstTagInLine(e,n);return o?o.closing||!o.tagName&&o.selfClosing?"markbeginend"===t?"end":"":!o.tagName||o.selfClosing||this.voidElements.hasOwnProperty(o.tagName.toLowerCase())||this._findEndTagInLine(e,n,o.tagName,o.end.column)?"":"start":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/"==r.value;break}return o}if(l(r,"tag-close"))return o.selfClosing="/>"==r.value,o;o.start.column+=r.value.length}return null},this._findEndTagInLine=function(e,t,n,o){for(var i=e.getTokens(t),r=0,s=0;s{e=n.nmd(e),ace.define("ace/theme/github-css",["require","exports","module"],(function(e,t,n){n.exports='/* CSS style content from github\'s default pygments highlighter template.\n Cursor and selection styles from textmate.css. */\n.ace-github .ace_gutter {\n background: #e8e8e8;\n color: #AAA;\n}\n\n.ace-github {\n background: #fff;\n color: #000;\n}\n\n.ace-github .ace_keyword {\n font-weight: bold;\n}\n\n.ace-github .ace_string {\n color: #D14;\n}\n\n.ace-github .ace_variable.ace_class {\n color: teal;\n}\n\n.ace-github .ace_constant.ace_numeric {\n color: #099;\n}\n\n.ace-github .ace_constant.ace_buildin {\n color: #0086B3;\n}\n\n.ace-github .ace_support.ace_function {\n color: #0086B3;\n}\n\n.ace-github .ace_comment {\n color: #998;\n font-style: italic;\n}\n\n.ace-github .ace_variable.ace_language {\n color: #0086B3;\n}\n\n.ace-github .ace_paren {\n font-weight: bold;\n}\n\n.ace-github .ace_boolean {\n font-weight: bold;\n}\n\n.ace-github .ace_string.ace_regexp {\n color: #009926;\n font-weight: normal;\n}\n\n.ace-github .ace_variable.ace_instance {\n color: teal;\n}\n\n.ace-github .ace_constant.ace_language {\n font-weight: bold;\n}\n\n.ace-github .ace_cursor {\n color: black;\n}\n\n.ace-github.ace_focus .ace_marker-layer .ace_active-line {\n background: rgb(255, 255, 204);\n}\n.ace-github .ace_marker-layer .ace_active-line {\n background: rgb(245, 245, 245);\n}\n\n.ace-github .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-github.ace_multiselect .ace_selection.ace_start {\n box-shadow: 0 0 3px 0px white;\n}\n/* bold keywords cause cursor issues for some fonts */\n/* this disables bold style for editor and keeps for static highlighter */\n.ace-github.ace_nobold .ace_line > span {\n font-weight: normal !important;\n}\n\n.ace-github .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-github .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-github .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-github .ace_gutter-active-line {\n background-color : rgba(0, 0, 0, 0.07);\n}\n\n.ace-github .ace_marker-layer .ace_selected-word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-github .ace_invisible {\n color: #BFBFBF\n}\n\n.ace-github .ace_print-margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-github .ace_indent-guide {\n background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;\n}\n\n.ace-github .ace_indent-guide-active {\n background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC") right repeat-y;\n}\n'})),ace.define("ace/theme/github",["require","exports","module","ace/theme/github-css","ace/lib/dom"],(function(e,t,n){t.isDark=!1,t.cssClass="ace-github",t.cssText=e("./github-css"),e("../lib/dom").importCssString(t.cssText,t.cssClass,!1)})),ace.require(["ace/theme/github"],(function(t){e&&(e.exports=t)}))},745:(e,t,n)=>{"use strict";var o=n(137);t.s=o.createRoot,o.hydrateRoot},590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,o="function"==typeof Set,i="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function r(e,s){if(e===s)return!0;if(e&&s&&"object"==typeof e&&"object"==typeof s){if(e.constructor!==s.constructor)return!1;var a,l,c,u;if(Array.isArray(e)){if((a=e.length)!=s.length)return!1;for(l=a;0!=l--;)if(!r(e[l],s[l]))return!1;return!0}if(n&&e instanceof Map&&s instanceof Map){if(e.size!==s.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!s.has(l.value[0]))return!1;for(u=e.entries();!(l=u.next()).done;)if(!r(l.value[1],s.get(l.value[0])))return!1;return!0}if(o&&e instanceof Set&&s instanceof Set){if(e.size!==s.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!s.has(l.value[0]))return!1;return!0}if(i&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(s)){if((a=e.length)!=s.length)return!1;for(l=a;0!=l--;)if(e[l]!==s[l])return!1;return!0}if(e.constructor===RegExp)return e.source===s.source&&e.flags===s.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof s.valueOf)return e.valueOf()===s.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof s.toString)return e.toString()===s.toString();if((a=(c=Object.keys(e)).length)!==Object.keys(s).length)return!1;for(l=a;0!=l--;)if(!Object.prototype.hasOwnProperty.call(s,c[l]))return!1;if(t&&e instanceof Element)return!1;for(l=a;0!=l--;)if(("_owner"!==c[l]&&"__v"!==c[l]&&"__o"!==c[l]||!e.$$typeof)&&!r(e[c[l]],s[c[l]]))return!1;return!0}return e!=e&&s!=s}e.exports=function(e,t){try{return r(e,t)}catch(e){if((e.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw e}}},137:e=>{"use strict";e.exports=require("react-dom")}},t={};function n(o){var i=t[o];if(void 0!==i)return i.exports;var r=t[o]={id:o,loaded:!1,exports:{}};return e[o](r,r.exports,n),r.loaded=!0,r.exports}n.amdD=function(){throw new Error("define cannot be used indirect")},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n.p="";var o={};(()=>{"use strict";n.r(o),n.d(o,{Accordion:()=>D,Button:()=>U,ButtonGroup:()=>K,Card:()=>he,Chart:()=>Te,Checkbox:()=>Io,CodeEditor:()=>gr,Collapsible:()=>R,Column:()=>li,Combobox:()=>Sr,Combobox2:()=>Wr,Confirm:()=>St,CopyToClipboard:()=>ut,DatePicker:()=>Zr,Dropdown:()=>Oi,Dropdown2:()=>Zi,EditableList:()=>ha,EditableList2:()=>Na,FieldCodeEditor:()=>ru,FieldCombobox:()=>gu,FieldCombobox2:()=>ju,FieldDatePicker:()=>Xu,FieldDropdown:()=>Cu,FieldEditableList:()=>sh,FieldFileInput:()=>fh,FieldInput:()=>Eh,FieldMultiselect:()=>Ih,FieldPagination:()=>Ru,FieldSelect:()=>Uh,FieldSelectableList:()=>ed,FieldToggle:()=>cd,FileInput:()=>za,FixedWrapper:()=>Ot,FloatingContainer:()=>Pt,FormikCheckbox:()=>Nc,FormikCodeEditor:()=>Ic,FormikCombobox:()=>Pc,FormikCombobox2:()=>Dc,FormikDatePicker:()=>Fc,FormikEditableList:()=>Bc,FormikEditableList2:()=>Wc,FormikFileInput:()=>Hc,FormikInput:()=>jc,FormikInput2:()=>zc,FormikMultiselect:()=>Vc,FormikRadio:()=>Uc,FormikSelect:()=>Gc,FormikSelectableList:()=>Kc,FormikTextarea:()=>qc,FormikToggle:()=>Yc,FormikWrapper:()=>Rc,Icon:()=>g,InfiniteScroller:()=>At,InfoNote:()=>Ft,Input:()=>Qa,Input2:()=>ll,List:()=>jt,Loader:()=>ye,Message:()=>be,Modal:()=>Ct,Multiselect:()=>Cl,NavBar:()=>Vt,Navigation:()=>qt,Pagination:()=>po,Panel:()=>pn,Pill:()=>mn,Radio:()=>Rl,RevealPanel:()=>Nn,Row:()=>yi,Select:()=>jl,SelectableList:()=>Xl,Table:()=>ti,Tabs:()=>eo,TextEllipsis:()=>uo,Textarea:()=>rc,Toggle:()=>bc,Tooltip:()=>lo,setConfig:()=>xc,toast:()=>ot,useComponentSize:()=>C,useEventListener:()=>$,useInterval:()=>ud,usePrevious:()=>me,useTimeout:()=>_e});const e=require("react");var t=n.n(e);const i=require("prop-types");var r=n.n(i);const s=(0,e.createContext)(),a=(0,e.createContext)();var l=Object.defineProperty,c=Object.getOwnPropertySymbols,u=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable,d=(e,t,n)=>t in e?l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function p(e){var n=e,{className:o,family:i,type:r,weight:s}=n,a=((e,t)=>{var n={};for(var o in e)u.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&c)for(var o of c(e))t.indexOf(o)<0&&h.call(e,o)&&(n[o]=e[o]);return n})(n,["className","family","type","weight"]);return t().createElement("i",((e,t)=>{for(var n in t||(t={}))u.call(t,n)&&d(e,n,t[n]);if(c)for(var n of c(t))h.call(t,n)&&d(e,n,t[n]);return e})({className:function(){const e=i||"fa";return["tyk-icon","fa"!==e&&e,`${e}-${r}`,"fa"===e?`fa-${s||"light"}`:"",o].filter(Boolean).join(" ")}()},a))}p.propTypes={className:r().string,family:r().string,type:r().string.isRequired,weight:r().string};const g=p;function m({wrap:n}){const{collapsed:o,disabled:i,toggleChange:r}=(0,e.useContext)(a),s=o?"chevron-down":"chevron-up",l=["tyk-accordion__trigger",i&&"tyk-accordion__trigger--disabled"].filter(Boolean).join(" "),c=t().createElement("button",{className:l,onClick:r,type:"button","aria-label":"collapse/expand"},t().createElement(g,{className:"collapsable__arrow",type:s}));return n?t().createElement("div",{className:"tyk-accordion__trigger-wrapper"},c):c}m.propTypes={wrap:r().bool};const f=m;function y({collapsed:n,children:o,className:i,disabled:r},l){const{arrow:c}=(0,e.useContext)(s),[u,h]=(0,e.useState)(n),d=()=>{r||h(!u)},p=(0,e.useMemo)((()=>["tyk-accordion__item",c.expandToContent?`tyk-accordion__item--trigger-position-${c.position}`:"tyk-accordion__item--trigger-in-header",i,!1===u&&"tyk-accordion__item--active"].filter(Boolean).join(" ")),[c,i,u]),g=(0,e.useMemo)((()=>({collapsed:u,disabled:r,toggleChange:d})),[u,r,d]);return t().createElement("div",{ref:l,className:p},t().createElement(a.Provider,{value:g},c.expandToContent&&t().createElement(f,{wrap:!0}),o))}y.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),collapsed:r().bool,className:r().string,disabled:r().bool},y.defaultProps={collapsed:!1};const v=(0,e.forwardRef)(y);function b({className:n,children:o}){const{collapsed:i,disabled:r,toggleChange:l}=(0,e.useContext)(a),{usearrowastrigger:c,arrow:u}=(0,e.useContext)(s),h=i?"chevron-down":"chevron-up",d=["tyk-accordion__item-header",c&&"tyk-accordion__arrow-trigger",n].filter(Boolean).join(" ");return t().createElement("div",{className:d},c?t().createElement(t().Fragment,null,!u.expandToContent&&"left"===u.position&&t().createElement(f,null),t().createElement("div",null,o),!u.expandToContent&&"right"===u.position&&t().createElement(f,null)):t().createElement("button",{className:r?"tyk-accordion__trigger--disabled":"",onClick:l,type:"button"},t().createElement("span",null,o),t().createElement(g,{className:"collapsable__arrow",type:h})))}b.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string};const w=b,x=require("react-transition-group"),k=e=>e?{width:e.offsetWidth,height:e.offsetHeight}:{width:0,height:0},C=t=>{const[n,o]=(0,e.useState)(k(t?t.current:{})),i=(0,e.useCallback)((()=>{t.current&&o(k(t.current))}),[t]);return(0,e.useLayoutEffect)((()=>{i();let e=new ResizeObserver((()=>{i()}));return e.observe(t.current),()=>{e.disconnect(t.current),e=null}}),[t.current]),n},$=(t,n,o)=>{const i=(0,e.useRef)();(0,e.useEffect)((()=>{i.current=n}),[n]),(0,e.useEffect)((()=>{if(!(null==o?void 0:o.addEventListener))return;const e=e=>i.current(e);return o.addEventListener(t,e),()=>{o.removeEventListener(t,e)}}),[t,o])};var S=Object.defineProperty,E=Object.defineProperties,O=Object.getOwnPropertyDescriptors,T=Object.getOwnPropertySymbols,A=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable,L=(e,t,n)=>t in e?S(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function M(n){var o=n,{className:i,collapsed:r,children:s}=o,a=((e,t)=>{var n={};for(var o in e)A.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&T)for(var o of T(e))t.indexOf(o)<0&&_.call(e,o)&&(n[o]=e[o]);return n})(o,["className","collapsed","children"]);const l=(0,e.useRef)(null),c=(0,e.useRef)(null),u=C(l),[h,d]=(0,e.useState)({height:r?0:"auto"}),p=e=>{d({height:`${e}px`})},g=()=>l.current?l.current.clientHeight:0;(0,e.useEffect)((()=>{!r&&(null==u?void 0:u.height)&&h.height!==(null==u?void 0:u.height)&&p(u.height)}),[u.height]);const m=(0,e.useCallback)((()=>{!r&&l.current&&(p(g()),c.current.style.height=`${g()}px`)}),[r,l.current]);return $("resize",m,window),t().createElement(x.CSSTransition,{onEnter:()=>{p(g())},onExit:()=>{p(0)},in:!r,timeout:0,classNames:"collapse"},t().createElement("div",{className:"collapse-wrapper",ref:c,style:h},t().createElement("div",(f=((e,t)=>{for(var n in t||(t={}))A.call(t,n)&&L(e,n,t[n]);if(T)for(var n of T(t))_.call(t,n)&&L(e,n,t[n]);return e})({},a),E(f,O({className:i,ref:l}))),s)));var f}M.propTypes={children:r().oneOfType([r().element,r().node,r().string]),collapsed:r().bool,className:r().string};const R=M;function N({children:n,className:o}){const{collapsed:i}=(0,e.useContext)(a),r=["tyk-accordion__item-content",o].filter(Boolean).join(" ");return t().createElement("div",{className:r},t().createElement(R,{collapsed:i},n))}N.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string};const I=N;function P({className:n,children:o,usearrowastrigger:i,arrow:r={position:"right",expandToContent:!1}}){const a=["tyk-accordion",n].filter(Boolean).join(" "),l=(0,e.useMemo)((()=>({usearrowastrigger:i,arrow:r})),[i,r]);return t().createElement("div",{className:a},t().createElement(s.Provider,{value:l},o))}P.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,usearrowastrigger:r().bool,arrow:r().shape({position:r().oneOf(["left","right"]),expandToContent:r().bool})},P.defaultProps={usearrowastrigger:!1},P.Item=v,P.Item.Header=w,P.Item.Content=I;const D=P;var F=Object.defineProperty,B=Object.getOwnPropertySymbols,W=Object.prototype.hasOwnProperty,H=Object.prototype.propertyIsEnumerable,j=(e,t,n)=>t in e?F(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,z=(e,t)=>{for(var n in t||(t={}))W.call(t,n)&&j(e,n,t[n]);if(B)for(var n of B(t))H.call(t,n)&&j(e,n,t[n]);return e};function V(n,o){const i=n,{customButton:r,children:s,iconType:a,iconFamily:l,iconPosition:c,iconOnly:u,id:h,className:d,disabled:p,display:m,href:f,onClick:y,noStyle:v,size:b,theme:w,type:x}=i,k=((e,t)=>{var n={};for(var o in e)W.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&B)for(var o of B(e))t.indexOf(o)<0&&H.call(e,o)&&(n[o]=e[o]);return n})(i,["customButton","children","iconType","iconFamily","iconPosition","iconOnly","id","className","disabled","display","href","onClick","noStyle","size","theme","type"]),C=()=>{const e=["tyk-button"].concat(d?d.split(" "):[]),t=b?`tyk-button--${b}`:"tyk-button--md",n=p?"disabled":"",o=m||"",i=w?`tyk-button--${w}`:"",r=u?"tyk-button--icon-only":"",s=v?"tyk-button--no-style":"";return e.push(r),e.push(i),e.push(t),e.push(n),e.push(o),e.push(s),a&&e.push(`icon-${c||"left"}`),e.join(" ")},$=e=>a&&(c||"left")===e?t().createElement(g,{family:l,type:a}):null;return(()=>{let n;return r?t().createElement(t().Fragment,null,(0,e.cloneElement)(r,{className:C(),disabled:p})):(n=f?t().createElement("a",z({id:h,className:C(),disabled:p,onClick:y,href:f,ref:o},k),$("left"),s,$("right")):t().createElement("button",z({id:h,className:C(),disabled:p,onClick:y,type:x||"button",ref:o},k),$("left"),s&&t().createElement("span",null,s),$("right")),n)})()}V.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),customButton:r().oneOfType([r().arrayOf(r().node),r().node,r().element]),className:r().string,display:r().string,disabled:r().bool,id:r().string,href:r().string,iconPosition:r().string,iconFamily:r().string,iconOnly:r().bool,iconType:r().string,noStyle:r().bool,onClick:r().func,theme:r().string,type:r().string,size:r().string},V.defaultProps={theme:"",type:"button"};const U=(0,e.forwardRef)(V);function G({className:e,children:n,label:o},i){return t().createElement("div",{ref:i,className:`tyk-button-group__wrapper ${e}`},Boolean(o)&&t().createElement("label",null,o),t().createElement("div",{className:"tyk-button-group"},n))}G.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string.isRequired,label:r().string.isRequired};const K=(0,e.forwardRef)(G);function q({right:e=null,children:n}){return t().createElement("div",{className:"tyk-card__header"},n&&t().createElement("div",{className:"tyk-card__header-content"},n),e&&t().createElement("div",{className:"tyk-card__header-right"},e))}q.propTypes={right:r().oneOfType([r().element,r().node,r().string]),children:r().oneOfType([r().element,r().node,r().string])};const Y=q;function J({align:e="top",children:n}){return t().createElement("div",{className:`tyk-card__body tyk-card__body--align-${e}`},t().createElement("div",null,n))}J.propTypes={align:r().oneOf(["top","center","bottom"]),children:r().oneOfType([r().element,r().node,r().string])};const X=J;function Q({children:e}){return t().createElement("div",{className:"tyk-card__footer"},e)}Q.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const Z=Q;function ee({maxLines:e=1,children:n}){return t().createElement("h4",{className:`tyk-card__title tyk-card__title--max-${e}-lines`},n)}ee.propTypes={maxLines:r().number,children:r().oneOfType([r().element,r().node,r().string])};const te=ee;function ne({children:e}){return t().createElement("div",{className:"tyk-card__title-group"},e)}ne.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const oe=ne;function ie({children:e}){return t().createElement("h5",{className:"tyk-card__sub-title"},e)}ie.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const re=ie;function se({maxLines:e=2,children:n}){return t().createElement("p",{className:`tyk-card__summary tyk-card__summary--max-${e}-lines`},n)}se.propTypes={maxLines:r().number,children:r().oneOfType([r().element,r().node,r().string])};const ae=se;function le({children:e}){return t().createElement("div",{className:"tyk-card__title-icon"},e)}le.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const ce=le;function ue({className:e="",height:n="auto",children:o}){return t().createElement("div",{style:{height:n},className:`tyk-card ${e}`},o)}ue.propTypes={className:r().string,height:r().oneOfType([r().number,r().string]),children:r().oneOfType([r().element,r().node,r().string])},ue.Header=Y,ue.Body=X,ue.Footer=Z,ue.Title=te,ue.TitleGroup=oe,ue.Icon=ce,ue.SubTitle=re,ue.Summary=ae;const he=ue,de=require("echarts"),pe=require("immutable"),ge=(e,t,n)=>{let o;return function(...i){const r=this,s=n&&!o;clearTimeout(o),o=setTimeout((()=>{o=null,n||e.apply(r,i)}),t),s&&e.apply(r,i)}},me=t=>{const n=(0,e.useRef)();return(0,e.useEffect)((()=>{n.current=t}),[t]),n.current};function fe({className:e,position:n="relative",withbackground:o=!1}){const i=["loading",n,e].filter(Boolean).join(" "),r=t().createElement("div",{className:i},t().createElement("div",{className:"loading-bar"}),t().createElement("div",{className:"loading-bar"}),t().createElement("div",{className:"loading-bar"}),t().createElement("div",{className:"loading-bar"}));return o?t().createElement("div",{className:"tyk-loading__wrapper"},r):r}fe.propTypes={className:r().string,position:r().string,withbackground:r().bool};const ye=fe;function ve({children:e,theme:n,onClose:o,noMargin:i,className:r}){const s="success"===n?"check":"warning";return t().createElement("div",{className:["tyk-message",`tyk-message--${n||"info"}`,i&&"no-margin",r].filter(Boolean).join(" ")},t().createElement(g,{family:"tykon",type:s}),t().createElement("div",{className:"tyk-message__content"},e),o&&t().createElement(g,{family:"tykon",type:"x",onClick:o}))}ve.propTypes={theme:r().string,children:r().oneOfType([r().element,r().node,r().string]),className:r().string,noMargin:r().bool,onClose:r().func};const be=ve,we=JSON.parse('{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:OGC:1.3:CRS84"}},"features":[{"geometry":{"type":"Polygon","coordinates":[[[47.97822265625001,7.9970703125],[46.97822265625001,7.9970703125],[43.98378906250002,9.008837890624989],[43.482519531250006,9.379492187499991],[43.181640625,9.879980468749991],[42.84160156250002,10.203076171874997],[42.65644531250001,10.6],[42.92275390625002,10.999316406249989],[43.24599609375002,11.499804687499989],[43.85273437500001,10.784277343749991],[44.38652343750002,10.430224609374989],[44.94296875,10.43671875],[45.81669921875002,10.835888671874997],[46.565039062500006,10.745996093749994],[47.40498046875001,11.174023437499997],[48.01923828125001,11.139355468749997],[48.57255859375002,11.320507812499997],[48.938574218750006,11.258447265624994],[50.11005859375001,11.529296875],[50.79228515625002,11.983691406249989],[51.2548828125,11.830712890624994],[51.08427734375002,11.335644531249997],[51.140625,10.656884765624994],[51.031835937500006,10.444775390624997],[51.19296875,10.554638671874997],[51.390234375,10.422607421875],[50.93007812500002,10.33554687499999],[50.825,9.428173828124997],[50.10283203125002,8.199804687499991],[49.85205078125,7.962548828124994],[49.234960937500006,6.77734375],[49.04931640625,6.173632812499989],[47.97529296875001,4.497021484374997],[46.87880859375002,3.28564453125],[46.05117187500002,2.475146484374989],[44.92021484375002,1.81015625],[43.71757812500002,0.857861328124997],[41.97988281250002,-0.973046875],[41.53271484375,-1.6953125],[41.521875,-1.572265625],[41.42695312500001,-1.449511718750003],[41.24980468750002,-1.220507812500003],[40.97871093750001,-0.870312500000011],[40.964453125,2.814648437499997],[41.341796875,3.20166015625],[41.61347656250001,3.590478515624994],[41.88398437500001,3.977734375],[41.91533203125002,4.031298828124989],[42.02412109375001,4.137939453125],[42.85664062500001,4.32421875],[43.12568359375001,4.644482421874997],[43.58349609375,4.85498046875],[43.988867187500006,4.950537109374991],[44.940527343750006,4.912011718749994],[47.97822265625001,7.9970703125]]]},"properties":{"name":"Somalia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[9.579979133936737,47.05856388629306],[9.409458596647225,47.02019676540292],[9.46249431093294,47.09010747968864],[9.46249431093294,47.19858962254578],[9.527658197470123,47.27026989773668],[9.579979133936737,47.05856388629306]]]},"properties":{"name":"Liechtenstein","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-8.683349609375,27.77800740805682],[-13.038761787013554,27.81190166624856],[-12.948925781249926,27.914160156250034],[-11.552685546874955,28.31010742187496],[-10.486474609374994,29.06494140625],[-10.200585937499994,29.380371093750057],[-9.667089843749949,30.10927734375005],[-9.652929687499977,30.447558593750045],[-9.875488281249943,30.717919921874966],[-9.80869140624992,31.42460937499996],[-9.347460937499932,32.086376953124955],[-9.245849609375,32.572460937499955],[-8.512841796874994,33.25244140625003],[-6.900976562499949,33.96904296874999],[-6.353125,34.77607421875001],[-5.924804687499943,35.78579101562502],[-5.277832031249943,35.90273437500002],[-5.252685546874972,35.61474609374997],[-4.628320312499966,35.206396484375006],[-4.329980468749937,35.161474609375006],[-3.693261718749994,35.27998046874998],[-3.394726562499926,35.21181640625005],[-2.972216796874989,35.40727539062499],[-2.839941406249949,35.127832031249994],[-2.731396484374955,35.13520507812498],[-2.636816406249977,35.11269531250002],[-2.423730468749994,35.12348632812498],[-2.219628906249966,35.10419921874998],[-1.795605468749926,34.751904296874955],[-1.67919921875,33.31865234375002],[-1.550732421874955,33.073583984375006],[-1.510009765625,32.877636718749955],[-1.45,32.784814453124966],[-1.352148437499977,32.70336914062497],[-1.29638671875,32.67568359375002],[-1.188232421875,32.608496093750006],[-1.111035156249983,32.55229492187502],[-1.065527343749949,32.46831054687496],[-1.16259765625,32.399169921875],[-1.275341796874983,32.089013671874966],[-2.863427734374937,32.07470703124997],[-2.930859374999926,32.04252929687499],[-2.988232421874983,31.874218749999983],[-3.01738281249996,31.834277343750017],[-3.439794921874949,31.704541015624983],[-3.604589843749949,31.686767578125],[-3.700244140624989,31.70009765625005],[-3.768164062499977,31.689550781250034],[-3.837109374999983,31.512353515624994],[-3.833398437499937,31.197802734375045],[-3.626904296874955,31.000927734374983],[-4.148779296874977,30.8095703125],[-4.322851562500006,30.698876953124994],[-4.52915039062492,30.62553710937499],[-4.778515624999926,30.552392578124994],[-4.968261718749943,30.465380859375045],[-5.061914062499937,30.326416015625057],[-5.180126953124955,30.166162109374994],[-5.293652343749983,30.058642578125045],[-5.44877929687496,29.956933593750023],[-6.00429687499999,29.83125],[-6.479736328124943,29.82036132812499],[-6.520556640624989,29.659863281249983],[-6.59775390624992,29.578955078125006],[-6.635351562499949,29.568798828124983],[-6.755126953125,29.583837890625034],[-6.855566406249949,29.601611328125017],[-7.142431640624949,29.61958007812504],[-7.427685546874983,29.425],[-7.485742187499994,29.392236328124994],[-8.659912109375,28.718603515625063],[-8.683349609375,27.900390625],[-8.683349609375,27.77800740805682]]]},"properties":{"name":"Morocco","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-13.038761787013554,27.81190166624856],[-8.683349609375,27.77800740805682],[-8.683349609375,27.65644531250004],[-8.817822265624955,27.65644531250004],[-8.817822265624951,27.656445312499997],[-8.683349609375,27.656445312499997],[-8.683349609375,27.2859375],[-8.682861328125,26.921337890624997],[-8.6826171875,26.72314453125],[-8.682324218749983,26.497705078124994],[-8.68212890625,26.273193359375],[-8.68212890625,26.10947265625],[-8.682226562499977,25.995507812499994],[-12.016308593749983,25.995410156250003],[-12.016308593749983,25.740136718749994],[-12.016308593749983,25.331689453124994],[-12.016308593749983,25.059375],[-12.016308593749983,24.923242187499994],[-12.016308593749983,24.378662109375],[-12.016308593749983,23.97021484375],[-12.0234375,23.467578125],[-12.372900390624977,23.318017578124994],[-12.559375,23.290820312500003],[-12.620410156249989,23.27133789062499],[-13.031494140625,23.000244140625],[-13.153271484374983,22.820507812499997],[-13.12702845982141,22.703770926339278],[-13.136540684091575,22.708182548616723],[-13.094335937499977,22.495996093749994],[-13.051220703124983,21.854785156250003],[-13.041748046875,21.713818359374997],[-13.0322265625,21.572070312500003],[-13.025097656249983,21.466796875],[-13.016210937499977,21.333935546874997],[-15.231201171875,21.331298828125],[-16.964550781249983,21.329248046874994],[-17.06396484375,20.89882812499999],[-17.048046874999983,20.80615234375],[-17.098779296874994,20.856884765624997],[-16.930859374999983,21.9],[-16.35874023437495,22.594531250000045],[-16.21025390624999,23.097900390625],[-15.789257812499926,23.792871093750023],[-15.980712890624943,23.670312500000023],[-15.899316406249966,23.844433593749955],[-14.904296875000028,24.719775390625017],[-14.794921874999943,25.404150390625006],[-14.413867187499932,26.25371093749999],[-13.57578125,26.735107421875],[-13.175976562499983,27.655712890624983],[-13.038761787013554,27.81190166624856]],[[-8.774365234374983,27.460546875],[-8.794873046874983,27.120703125000034],[-8.794873046874983,27.120703125],[-8.774365234374983,27.460546875]]]},"properties":{"name":"W. Sahara","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[21.5625,42.247509765625],[21.560839843750017,42.24765625],[21.389550781250023,42.21982421875],[21.28662109375,42.100390625],[21.05976562500001,42.171289062499994],[20.778125,42.071044921875],[20.725,41.87353515625],[20.566210937500017,41.873681640624994],[20.485449218750006,42.223388671875],[20.06396484375,42.54726562499999],[20.054296875,42.760058593749996],[20.344335937500006,42.827929687499996],[20.40996305279786,42.84373166741877],[20.344335937500063,42.82792968750002],[19.670996093750006,43.163964843749994],[19.21875,43.449951171875],[19.196484375000068,43.48500976562502],[19.19160156250004,43.52104492187499],[19.19433593749997,43.533300781250006],[19.495117187500057,43.642871093750045],[19.245019531249994,43.96503906250004],[19.583789062500017,44.04345703125003],[19.118457031250074,44.359960937500006],[19.348632812500057,44.88090820312502],[19.007128906250045,44.86918945312502],[19.062890625000023,45.13720703125],[19.4,45.2125],[19.004687500000074,45.39951171875006],[19.064257812500045,45.51499023437506],[18.839062499999983,45.83574218750002],[18.905371093750006,45.931738281250034],[19.421289062500023,46.064453125],[19.61347656250001,46.169189453125],[19.84443359375001,46.145898437499966],[19.934082031250057,46.161474609375034],[20.161425781250017,46.14189453124996],[20.210156250000068,46.12602539062502],[20.241796875000034,46.10859375000001],[20.301367187500006,46.05068359375002],[20.35859375000004,45.975488281249994],[20.581152343749977,45.86948242187506],[20.65273437499999,45.779394531250006],[20.709277343750074,45.735253906249994],[20.727832031250017,45.73740234374998],[20.746875,45.74897460937501],[20.76015625000005,45.75810546875002],[20.775,45.74980468750002],[20.794042968750006,45.467871093750034],[21.431445312500017,45.192529296874994],[21.465429687500006,45.171875],[21.357031250000034,44.99077148437502],[21.532324218750063,44.900683593750045],[21.519921875000023,44.88081054687498],[21.442187500000074,44.87338867187498],[21.384375,44.87006835937501],[21.357910156250057,44.86181640625003],[21.36005859375004,44.82666015624997],[21.52314453125004,44.79008789062499],[21.63613281250005,44.71044921875],[21.909277343750034,44.666113281250034],[22.026953125,44.61987304687503],[22.093066406250074,44.541943359374955],[22.200976562500017,44.560693359374966],[22.350683593750063,44.676123046875034],[22.497656249999977,44.70625],[22.64208984375,44.65097656249998],[22.720898437499983,44.605517578125045],[22.734375,44.56992187499998],[22.700781250000063,44.55551757812498],[22.620117187500057,44.562353515625034],[22.554003906250017,44.54033203124999],[22.49453125000005,44.43544921875002],[22.687890625000023,44.248291015625],[22.42080078125005,44.00742187500006],[22.399023437500063,43.96953125],[22.36542968750004,43.86210937500002],[22.36962890625003,43.78129882812499],[22.55458984375005,43.45449218750002],[22.767578125,43.35415039062502],[22.81972656250005,43.300732421874955],[22.85957031250001,43.252343749999966],[22.97685546874999,43.18798828125],[22.799902343750006,42.985742187499994],[22.706152343750006,42.88393554687505],[22.466796875,42.842480468749955],[22.53242187500004,42.48120117187497],[22.523535156250006,42.440966796875045],[22.44570312500005,42.35913085937497],[22.42207031250004,42.32885742187503],[22.344042968750045,42.31396484375003],[22.23974609375003,42.303110028468716],[21.81464843750001,42.303125],[21.5625,42.24750976562498],[21.5625,42.247509765625]]]},"properties":{"name":"Serbia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[74.54140625000002,37.02216796875],[74.03886718750002,36.825732421874996],[73.116796875,36.868554687499994],[72.24980468750002,36.734716796875],[71.23291015625,36.12177734375],[71.18505859375,36.04208984375],[71.57197265625001,35.546826171875],[71.62050781250002,35.183007812499994],[70.965625,34.53037109375],[71.095703125,34.369433593749996],[71.05156250000002,34.049707031249994],[70.65400390625001,33.952294921874994],[69.8896484375,34.007275390625],[70.26113281250002,33.289013671875],[69.5015625,33.020068359374996],[69.24140625000001,32.433544921875],[69.279296875,31.936816406249996],[68.86894531250002,31.634228515624997],[68.59765625,31.802978515625],[68.16103515625002,31.802978515625],[67.57822265625,31.506494140624994],[67.737890625,31.343945312499997],[67.45283203125001,31.234619140625],[66.82929687500001,31.263671875],[66.346875,30.802783203124996],[66.23125,29.86572265625],[65.09550781250002,29.559472656249994],[64.39375,29.544335937499994],[64.09873046875,29.391943359375],[63.56757812500001,29.497998046874997],[62.4765625,29.408349609374994],[62.0009765625,29.530419921874994],[61.22441406250002,29.749414062499994],[60.843359375,29.858691406249996],[61.331640625,30.363720703124997],[61.55947265625002,30.599365234375],[61.7841796875,30.831933593749994],[61.81083984375002,30.91328125],[61.81425781250002,31.072558593749996],[61.75507812500001,31.285302734374994],[61.66015625,31.382421875],[61.34648437500002,31.421630859375],[61.11074218750002,31.451123046874997],[60.854101562500006,31.483251953125],[60.82070312500002,31.495166015624996],[60.791601562500006,31.660595703124997],[60.804296875,31.73447265625],[60.7875,31.877197265625],[60.78994140625002,31.987109375],[60.827246093750006,32.16796875],[60.82929687500001,32.249414062499994],[60.71044921875,32.6],[60.57656250000002,32.994873046875],[60.560546875,33.137841796874994],[60.9169921875,33.505224609375],[60.573828125,33.588330078125],[60.4859375,33.7119140625],[60.48574218750002,34.094775390624996],[60.642675781250006,34.307177734374996],[60.88945312500002,34.31943359375],[60.80390625000001,34.418017578124996],[60.76259765625002,34.475244140624994],[60.73613281250002,34.491796875],[60.72626953125001,34.51826171875],[60.73945312500001,34.544726562499996],[60.80234375,34.554638671875],[60.8453125,34.587695312499996],[60.91474609375001,34.633984375],[60.951171875,34.653857421874996],[61.080078125,34.855615234374994],[61.1,35.272314453125],[61.18925781250002,35.31201171875],[61.24550781250002,35.474072265625],[61.27851562500001,35.51376953125],[61.281835937500006,35.55341796875],[61.26201171875002,35.619580078125],[61.3447265625,35.6294921875],[61.62099609375002,35.43232421875],[62.08964843750002,35.3796875],[62.30781250000001,35.170800781249994],[62.688085937500006,35.255322265625],[63.056640625,35.44580078125],[63.08417968750001,35.56806640625],[63.16972656250002,35.678125],[63.129980468750006,35.84619140625],[63.8625,36.012353515624994],[64.184375,36.14892578125],[64.51103515625002,36.340673828125],[64.56582031250002,36.427587890625],[64.6025390625,36.554541015625],[64.78242187500001,37.05927734375],[64.81630859375002,37.132080078125],[64.95156250000002,37.1935546875],[65.08964843750002,37.237939453124994],[65.30361328125002,37.24677734375],[65.55498046875002,37.251171875],[65.76503906250002,37.569140625],[66.471875,37.3447265625],[66.52226562500002,37.348486328125],[66.827734375,37.3712890625],[67.06884765625,37.334814453125],[67.19550781250001,37.235205078125],[67.31972656250002,37.2095703125],[67.44169921875002,37.2580078125],[67.51728515625001,37.266650390624996],[67.546484375,37.235644531249996],[67.607421875,37.222509765625],[67.7,37.22724609375],[67.7529296875,37.1998046875],[67.75898437500001,37.172216796875],[67.76601562500002,37.14013671875],[67.83447265625,37.064208984375],[67.9580078125,36.972021484375],[68.06777343750002,36.9498046875],[68.26093750000001,37.013085937499994],[68.284765625,37.036328125],[68.29951171875001,37.088427734374996],[68.38691406250001,37.1375],[68.66914062500001,37.2583984375],[68.7232421875,37.268017578125],[68.78203125000002,37.2580078125],[68.82373046875,37.270703125],[68.8384765625,37.30283203125],[68.85537109375002,37.316845703125],[68.88525390625,37.328076171875],[68.91181640625001,37.333935546875],[68.96044921875,37.325048828125],[69.18017578125,37.15830078125],[69.26484375000001,37.1083984375],[69.30390625000001,37.116943359375],[69.35380859375002,37.150048828124994],[69.41445312500002,37.207763671875],[69.4296875,37.290869140625],[69.39921875000002,37.399316406249994],[69.42011718750001,37.48671875],[69.49208984375002,37.553076171875],[69.62578125000002,37.594042968749996],[69.8208984375,37.6095703125],[69.9849609375,37.566162109375],[70.18867187500001,37.582470703125],[70.25146484375,37.66416015625],[70.25498046875,37.765380859375],[70.19941406250001,37.886035156249996],[70.21464843750002,37.9244140625],[70.41777343750002,38.075439453125],[70.7359375,38.42255859375],[71.255859375,38.306982421875],[71.33271484375001,38.170263671875],[71.27851562500001,37.918408203125],[71.319921875,37.90185546875],[71.3896484375,37.906298828124996],[71.48779296875,37.931884765625],[71.55195312500001,37.933154296874996],[71.58222656250001,37.910107421875],[71.43291015625002,37.1275390625],[71.530859375,36.845117187499994],[71.665625,36.696923828124994],[72.65742187500001,37.029052734375],[72.8955078125,37.267529296875],[73.21113281250001,37.408496093749996],[73.38291015625,37.462255859375],[73.48134765625002,37.4716796875],[73.60468750000001,37.446044921875],[73.65712890625002,37.43046875],[73.72060546875002,37.41875],[73.73378906250002,37.37578125],[73.71728515625,37.329443359375],[73.6275390625,37.261572265625],[73.65351562500001,37.23935546875],[73.749609375,37.231787109375],[74.16708984375,37.329443359375],[74.20351562500002,37.372460937499994],[74.25966796875002,37.415429687499994],[74.659375,37.394482421875],[74.73056640625,37.35703125],[74.83046875000002,37.2859375],[74.89130859375001,37.231640625],[74.84023437500002,37.225048828125],[74.76738281250002,37.249169921874994],[74.73896484375001,37.28564453125],[74.72666015625,37.29072265625],[74.6689453125,37.26669921875],[74.55898437500002,37.236621093749996],[74.37216796875,37.15771484375],[74.37617187500001,37.137353515624994],[74.49794921875002,37.0572265625],[74.52646484375,37.030664062499994],[74.54140625000002,37.02216796875]]]},"properties":{"name":"Afghanistan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[17.57958984375,-8.099023437500009],[17.643359375000017,-8.090722656250009],[18.00878906250003,-8.107617187499983],[18.56269531250001,-7.9359375],[18.944433593750063,-8.001464843750028],[19.142675781250034,-8.001464843750028],[19.34082031249997,-7.966601562500031],[19.369921875000045,-7.706542968749986],[19.371679687500063,-7.655078124999989],[19.47988281250008,-7.472167968750028],[19.48378906250008,-7.279492187500026],[19.527636718750017,-7.144433593749952],[19.87519531250004,-6.986328124999986],[19.99746093750008,-6.976464843750023],[20.190039062500063,-6.9462890625],[20.482226562500074,-6.915820312500017],[20.59003906250001,-6.919921874999957],[20.598730468750006,-6.935156249999949],[20.536914062500045,-7.121777343749955],[20.535839843749983,-7.182812499999955],[20.558398437500045,-7.244433593749989],[20.60781250000008,-7.277734375000023],[20.910937500000017,-7.281445312499983],[21.190332031250023,-7.284960937499989],[21.751074218750034,-7.305468749999989],[21.80605468750005,-7.32861328125],[21.905371093750034,-8.693359374999943],[21.813183593750068,-9.46875],[22.19775390625,-10.040625],[22.30703125000005,-10.691308593750023],[22.203515625000023,-10.829492187500009],[22.226171875,-11.121972656250009],[22.27880859375,-11.19414062499996],[22.314941406250057,-11.198632812499994],[22.39296875000005,-11.159472656250003],[22.486132812500045,-11.086718750000017],[22.56103515625003,-11.05585937500004],[22.814746093750017,-11.08027343750004],[23.076269531250006,-11.087890624999986],[23.463964843750034,-10.969335937499991],[23.83388671875008,-11.013671874999972],[23.96650390625001,-10.871777343750011],[23.98388671875,-11.725],[23.909375,-12.636132812500009],[23.886523437500045,-12.743261718749991],[23.882421875,-12.799023437499983],[23.968066406250045,-12.956933593749994],[23.962988281250006,-12.988476562500026],[23.843164062500023,-13.0009765625],[22.209570312500006,-13.0009765625],[21.97890625000008,-13.0009765625],[21.979101562500034,-13.798730468749994],[21.979296875000074,-14.11962890625],[21.979394531249994,-14.440527343750006],[21.97978515624999,-15.955566406250014],[22.193945312500006,-16.628125],[23.380664062500017,-17.640625],[22.32421875,-17.8375],[20.74550781250008,-18.019726562499983],[20.194335937500057,-17.86367187499999],[18.95527343750004,-17.80351562499999],[18.39638671875005,-17.3994140625],[16.14843750000003,-17.39023437499999],[14.017480468750023,-17.40888671874997],[13.475976562500023,-17.04003906249997],[13.179492187500017,-16.971679687499986],[12.548144531250017,-17.212695312499974],[12.35927734375008,-17.205859375],[12.318457031250006,-17.21337890625003],[12.213378906250028,-17.209960937500043],[12.013964843750074,-17.168554687500034],[11.902539062500011,-17.226562499999957],[11.743066406250023,-17.24921875000004],[11.780078125000017,-16.87128906249997],[11.818945312500034,-16.704101562500014],[11.750878906250023,-15.831933593749966],[12.016113281250057,-15.513671874999957],[12.55048828125004,-13.437792968750003],[12.983203124999989,-12.775683593750017],[13.4169921875,-12.52041015624998],[13.597949218750017,-12.286132812500028],[13.785351562499983,-11.81279296874996],[13.833593750000063,-10.9296875],[13.33222656250004,-9.998925781250009],[12.99853515625,-9.048046875],[13.358984375,-8.687207031250026],[13.378515625000063,-8.369726562500006],[12.82343750000004,-6.954785156249955],[12.283300781250063,-6.12431640624996],[13.184375,-5.85625],[13.346484375000017,-5.863378906250006],[13.978515625,-5.857226562500003],[16.315234375000074,-5.865625],[16.431445312500045,-5.90019531249996],[16.53710937499997,-5.9658203125],[16.697265625,-6.164257812500026],[16.74296874999999,-6.618457031250003],[16.813085937500063,-6.772558593749963],[16.919433593750057,-6.93398437499998],[16.98476562500005,-7.257421874999977],[17.57958984375,-8.099023437500009]]],[[[12.50146484375,-4.5875],[12.848144531250028,-4.428906249999983],[12.881054687500068,-4.445117187499989],[12.971386718750068,-4.551757812499957],[13.048046875000068,-4.619238281250034],[13.072753906250028,-4.634765625],[13.057324218750011,-4.651074218750026],[12.947460937500011,-4.695312499999986],[12.829687499999977,-4.73662109374996],[12.451464843750017,-5.071484374999969],[12.453222656250034,-5.090625],[12.52236328125008,-5.148925781250028],[12.484570312500011,-5.71875],[12.213671875000074,-5.758691406249994],[12.177148437499994,-5.324804687499977],[12.018359375000074,-5.004296874999966],[12.50146484375,-4.5875]]]]},"properties":{"name":"Angola","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[20.06396484375,42.54726562499999],[20.485449218750006,42.223388671875],[20.566210937500017,41.873681640624994],[20.48896484375001,41.272607421874994],[20.709277343750017,40.928369140624994],[20.964257812500023,40.849902343749996],[20.95576171875001,40.775292968749994],[21.030859375,40.622460937499994],[20.881640625000017,40.467919921874994],[20.65742187500001,40.1173828125],[20.4560546875,40.065576171874994],[20.408007812500017,40.049462890624994],[20.383691406250023,40.0171875],[20.338476562500006,39.991064453125],[20.311132812500006,39.979443359375],[20.311328125000017,39.95078125],[20.381640625000017,39.841796875],[20.382421875,39.802636718749994],[20.206835937500017,39.653515625],[20.13105468750001,39.66162109375],[20.05976562500001,39.699121093749994],[20.022558593750006,39.710693359375],[20.001269531250017,39.709423828125],[19.851855468750017,40.0435546875],[19.322265625,40.407080078125],[19.45917968750001,40.40537109375],[19.3375,40.663818359375],[19.57568359375,41.640429687499996],[19.577539062500023,41.7875],[19.342382812500006,41.869091796875],[19.280664062500023,42.17255859375],[19.65449218750001,42.628564453124994],[19.78828125000001,42.476171875],[20.06396484375,42.54726562499999]]]},"properties":{"name":"Albania","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[19.66230468750001,60.187158203124994],[19.53652343750005,60.14497070312501],[19.551367187500063,60.24384765625001],[19.66230468750001,60.187158203124994]]],[[[19.989550781250074,60.351171875],[20.258886718750063,60.26127929687499],[19.799804687500057,60.08173828125001],[19.68691406250005,60.267626953125045],[19.84765625000003,60.22055664062506],[19.823046875000074,60.390185546875045],[19.989550781250074,60.351171875]]]]},"properties":{"name":"Aland","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[1.7060546875,42.503320312499994],[1.534082031250023,42.441699218749996],[1.448828125,42.437451171875],[1.428125,42.46132812499999],[1.414843750000017,42.548388671874996],[1.428320312500006,42.5958984375],[1.501367187500023,42.642724609374994],[1.568164062500017,42.635009765625],[1.709863281250023,42.604443359375],[1.739453125000011,42.575927734375],[1.740234375,42.55673828125],[1.713964843750006,42.525634765625],[1.7060546875,42.503320312499994]]]},"properties":{"name":"Andorra","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[53.927832031250006,24.177197265624983],[53.63447265625004,24.169775390624977],[53.83378906250002,24.258935546875023],[53.927832031250006,24.177197265624983]]],[[[53.3322265625001,24.258593750000045],[53.19091796874997,24.290917968749966],[53.412402343750074,24.411035156250023],[53.3322265625001,24.258593750000045]]],[[[56.29785156250003,25.650683593750045],[56.38798828125002,24.97919921875004],[56.06386718750005,24.73876953125],[56.00058593750006,24.953222656249977],[55.795703125000074,24.868115234374955],[55.76083984375006,24.24267578125],[55.92861328125005,24.215136718750074],[55.98515625000002,24.063378906249966],[55.4684570312501,23.94111328125001],[55.53164062499999,23.81904296875001],[55.1999023437501,23.034765625000034],[55.185839843750074,22.7041015625],[55.104296875000074,22.621484375000023],[52.55507812500005,22.932812499999955],[51.592578125000074,24.07885742187503],[51.56835937500003,24.286181640625074],[51.76757812500003,24.25439453125],[51.84316406250005,24.010888671875023],[52.118554687499994,23.97109375],[52.64824218750002,24.154638671875006],[53.80175781249997,24.069482421874966],[54.14794921875003,24.17119140624999],[54.39707031250006,24.278173828125034],[54.74677734375004,24.810449218750023],[55.94121093750002,25.793994140625017],[56.08046875,26.06264648437505],[56.16748046875003,26.047460937499977],[56.144628906250006,25.690527343750006],[56.29785156250003,25.650683593750045]]]]},"properties":{"name":"United Arab Emirates","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-64.54916992187498,-54.71621093749998],[-63.81542968749997,-54.725097656250014],[-64.637353515625,-54.90253906250001],[-64.75732421875,-54.82656249999999],[-64.54916992187498,-54.71621093749998]]],[[[-68.65322265624994,-54.85361328124999],[-68.62993164062499,-52.65263671875004],[-68.24013671875,-53.08183593749999],[-68.43115234375,-53.0552734375],[-68.48852539062497,-53.260937499999976],[-68.16113281249997,-53.30644531250001],[-68.00849609374995,-53.5640625],[-67.29423828125002,-54.049804687500014],[-66.23564453124999,-54.53349609374997],[-65.17900390624993,-54.678125],[-65.47114257812495,-54.91464843749999],[-66.5111328125,-55.032128906249945],[-67.127099609375,-54.90380859375001],[-68.65322265624994,-54.85361328124999]]],[[[-61.084716796875,-23.65644531250001],[-60.83984375000003,-23.85810546874997],[-59.89248046874994,-24.093554687499974],[-59.18725585937497,-24.56230468749999],[-57.82167968749994,-25.136425781249983],[-57.56313476562494,-25.473730468749963],[-57.943115234375,-26.05292968750001],[-58.18149414062498,-26.30742187499999],[-58.222070312499994,-26.65],[-58.618603515624955,-27.13212890624996],[-58.64174804687494,-27.196093750000017],[-58.60483398437498,-27.314355468750037],[-58.16826171874993,-27.27343749999997],[-56.437158203124966,-27.553808593749977],[-56.16406250000003,-27.321484374999983],[-55.95146484374996,-27.325683593749957],[-55.789990234374926,-27.416406249999966],[-55.71464843749996,-27.41484375],[-55.632910156250006,-27.35712890624997],[-55.59379882812502,-27.288085937500014],[-55.597265625,-27.207617187499963],[-55.56489257812498,-27.15],[-55.496728515624966,-27.11533203124999],[-55.45063476562498,-27.068359375000014],[-55.426660156249994,-27.00927734374997],[-55.13593750000001,-26.931152343749957],[-54.934472656249994,-26.70253906250001],[-54.677734375,-26.308789062499997],[-54.631933593750006,-26.005761718749994],[-54.615869140624994,-25.576074218750023],[-54.44394531249998,-25.625],[-54.15458984374999,-25.523046874999963],[-53.89116210937499,-25.66884765625001],[-53.668554687500006,-26.288183593749977],[-53.83818359375002,-27.121093750000014],[-54.32700195312495,-27.423535156249997],[-54.82910156250003,-27.55058593750003],[-55.10151367187501,-27.866796874999963],[-55.72548828125002,-28.20410156250003],[-55.68725585937497,-28.38164062499996],[-55.890527343749994,-28.370019531249994],[-56.938623046874994,-29.594824218750034],[-57.22465820312499,-29.782128906249994],[-57.40522460937501,-30.03388671875004],[-57.563867187499994,-30.139941406249974],[-57.60888671875003,-30.187792968750045],[-57.65087890624997,-30.295019531250034],[-57.71269531249996,-30.38447265624997],[-57.83120117187502,-30.495214843749963],[-57.87250976562501,-30.591015625000026],[-57.81059570312499,-30.85859375000001],[-57.88632812499998,-30.937402343749994],[-57.86840820312497,-31.104394531249994],[-57.89335937499999,-31.195312499999957],[-58.03339843750001,-31.416601562500006],[-58.053857421874994,-31.494921874999974],[-58.009667968749966,-31.534375],[-57.98798828124998,-31.576171875],[-58.00698242187494,-31.684960937499966],[-58.04233398437495,-31.769238281249997],[-58.16748046874997,-31.87265625],[-58.18901367187499,-31.924218750000037],[-58.16040039062503,-31.986523437500026],[-58.156347656250006,-32.0515625],[-58.17700195312494,-32.11904296875002],[-58.16479492187494,-32.18486328125002],[-58.119726562500006,-32.24892578125002],[-58.12304687499997,-32.321875],[-58.201171875,-32.471679687500014],[-58.219970703125,-32.563964843749986],[-58.17099609374998,-32.95927734374996],[-58.424462890624994,-33.11152343749998],[-58.54721679687498,-33.66347656249998],[-58.392480468749966,-34.192968750000034],[-58.52548828124998,-34.29619140625002],[-58.28334960937494,-34.68349609375005],[-57.54785156250003,-35.018945312499994],[-57.170654296875,-35.3625],[-57.35390624999994,-35.72031249999998],[-57.33544921875,-36.026757812499966],[-57.07617187499994,-36.296777343749994],[-56.74946289062501,-36.346484375],[-56.67202148437494,-36.85126953124998],[-57.546972656250034,-38.085644531250026],[-58.17919921874994,-38.435839843750045],[-59.82832031250001,-38.83818359375003],[-61.112207031249994,-38.99296875000003],[-61.84790039062497,-38.961816406249994],[-62.33476562499993,-38.80009765625],[-62.29506835937502,-39.24326171874996],[-62.053662109374955,-39.373828125],[-62.179345703124994,-39.38046875000002],[-62.076806640624966,-39.46152343750002],[-62.131542968749926,-39.82539062499998],[-62.28691406249996,-39.89531250000002],[-62.40185546875003,-40.19658203125002],[-62.24633789062494,-40.674609374999974],[-62.39501953124997,-40.89082031249997],[-62.95903320312493,-41.10966796875006],[-63.621777343749955,-41.15976562499996],[-64.86948242187503,-40.735839843750014],[-65.13339843749998,-40.88066406250003],[-64.98637695312496,-42.102050781249986],[-64.53774414062494,-42.25458984374998],[-64.57099609374998,-42.416015625],[-64.42041015625003,-42.43378906249998],[-64.10087890624993,-42.395117187500006],[-64.06118164062494,-42.266113281250014],[-64.228515625,-42.21826171874996],[-63.795556640624994,-42.113867187500006],[-63.6298828125,-42.28271484375003],[-63.61733398437502,-42.695800781249986],[-64.03476562499998,-42.88125],[-64.48784179687499,-42.51347656250006],[-64.97070312499997,-42.66630859375002],[-65.02690429687496,-42.75888671874996],[-64.31914062499999,-42.968945312500026],[-64.83994140624998,-43.18886718749998],[-65.25234374999997,-43.571875],[-65.26552734375,-44.2796875],[-65.64760742187502,-44.661425781250045],[-65.63876953125,-45.0078125],[-66.19013671874995,-44.96474609375002],[-66.94140625,-45.25732421875003],[-67.59956054687495,-46.05253906250003],[-67.5064453125,-46.44277343749995],[-66.77685546874994,-47.005859375],[-65.99853515625,-47.09375],[-65.73808593749999,-47.34492187499998],[-65.81430664062495,-47.63818359374996],[-66.22524414062502,-47.826757812500006],[-65.93422851562497,-47.826757812500006],[-65.81005859374997,-47.941113281250026],[-67.46630859375,-48.95175781250004],[-67.68486328125002,-49.2466796875],[-67.82597656249999,-49.91962890625005],[-68.2572265625,-50.104589843749984],[-68.66757812500003,-49.75253906250003],[-68.66162109374997,-49.93574218750005],[-68.97958984375,-50.003027343749984],[-68.59794921874996,-50.00947265624997],[-68.421875,-50.15791015625001],[-69.04477539062495,-50.49912109374998],[-69.35859374999993,-51.028125],[-69.20102539062498,-50.99365234375001],[-69.03530273437497,-51.48896484375002],[-69.46542968750003,-51.58447265625003],[-68.96533203125003,-51.67714843749999],[-68.443359375,-52.35664062500004],[-69.96025390624993,-52.00820312500002],[-71.91865234374995,-51.98955078125004],[-72.40766601562501,-51.54082031250002],[-72.34023437499997,-50.68183593749999],[-72.50981445312496,-50.607519531250034],[-73.15292968749998,-50.73828125000003],[-73.50126953124996,-50.125292968750024],[-73.55419921875,-49.463867187500014],[-73.46157226562497,-49.31386718750001],[-73.13525390625,-49.30068359374999],[-73.03364257812501,-49.014355468750004],[-72.65126953125,-48.84160156249998],[-72.582861328125,-48.47539062499999],[-72.35473632812497,-48.36582031250005],[-72.32832031250001,-48.11005859374998],[-72.517919921875,-47.87636718749998],[-72.34594726562497,-47.49267578124997],[-71.90498046875001,-47.201660156250014],[-71.94023437499999,-46.83125],[-71.69965820312501,-46.6513671875],[-71.87568359374998,-46.160546875],[-71.63154296874998,-45.95371093749998],[-71.74619140624998,-45.57890625],[-71.34931640624995,-45.33193359374995],[-71.5962890625,-44.97919921875004],[-72.04169921874998,-44.90419921875004],[-72.06372070312503,-44.771875],[-71.26113281250002,-44.763085937499966],[-71.15971679687496,-44.56025390625004],[-71.21259765624998,-44.44121093750003],[-71.82001953124993,-44.38310546875],[-71.68007812500002,-43.92958984374998],[-71.90498046875001,-43.34755859374998],[-71.750634765625,-43.237304687499986],[-72.14643554687498,-42.990039062499974],[-72.10820312499993,-42.25185546874995],[-71.75,-42.04677734375001],[-71.91127929687497,-41.650390624999986],[-71.93212890624994,-40.69169921874999],[-71.70898437499997,-40.381738281249994],[-71.81831054687493,-40.17666015624995],[-71.65976562499998,-40.02080078125],[-71.71992187499995,-39.63525390624997],[-71.53945312499997,-39.60244140624995],[-71.40156249999995,-38.93505859374996],[-70.858642578125,-38.60449218750003],[-71.16757812499998,-37.76230468749996],[-71.19218750000002,-36.84365234375004],[-71.05551757812498,-36.52373046874996],[-70.40478515625,-36.06171874999998],[-70.41572265625001,-35.52304687500002],[-70.55517578125,-35.246875],[-70.39316406250003,-35.146875],[-70.05205078124999,-34.30078124999997],[-69.85244140625,-34.224316406250026],[-69.81962890624999,-33.28378906249999],[-70.08486328125002,-33.20175781249998],[-70.02197265625,-32.88457031250002],[-70.36376953125,-32.08349609374997],[-70.25439453125,-31.957714843750026],[-70.585205078125,-31.569433593749963],[-70.51958007812493,-31.1484375],[-70.30908203124994,-31.02265625000004],[-70.15322265625,-30.360937499999963],[-69.95634765624996,-30.35820312500003],[-69.84428710937493,-30.175],[-69.95996093749997,-30.078320312500026],[-70.02680664062501,-29.324023437500017],[-69.82788085937497,-29.10322265624997],[-69.65693359374995,-28.413574218749986],[-69.17441406249998,-27.924707031250037],[-68.84633789062494,-27.153710937499994],[-68.59208984375002,-27.140039062499966],[-68.31865234374999,-26.973242187500006],[-68.59160156249999,-26.47041015624997],[-68.41450195312498,-26.153710937500023],[-68.59208984375002,-25.420019531250034],[-68.38422851562495,-25.091894531249977],[-68.56201171875,-24.74736328125003],[-68.25029296875002,-24.391992187500023],[-67.35620117187503,-24.033789062499963],[-67.00878906249994,-23.00136718750005],[-67.19487304687493,-22.821679687500037],[-66.99111328125,-22.509863281250006],[-66.71171874999999,-22.216308593749986],[-66.36518554687501,-22.113769531249957],[-66.32246093750001,-22.053125],[-66.28212890624997,-21.94746093750001],[-66.24760742187496,-21.83046875],[-66.22016601562495,-21.802539062499974],[-66.174658203125,-21.805664062499986],[-66.09858398437495,-21.83505859375002],[-66.05859375,-21.87949218750002],[-65.86015624999999,-22.019726562499983],[-65.77104492187493,-22.099609375000014],[-65.68618164062497,-22.11025390625005],[-65.51879882812497,-22.094531250000045],[-64.99262695312498,-22.109667968750017],[-64.60551757812499,-22.228808593750045],[-64.52363281250001,-22.37158203125],[-64.47773437499998,-22.485351562499986],[-64.44550781249998,-22.585351562500023],[-64.37397460937498,-22.761035156250017],[-64.32529296875,-22.82763671875],[-64.30791015624993,-22.7953125],[-64.26640625000002,-22.60332031249996],[-63.97612304687502,-22.072558593750003],[-63.92167968749993,-22.028613281250017],[-62.843359375,-21.997265625000026],[-62.62597656250003,-22.29042968749998],[-62.54155273437496,-22.349609374999957],[-62.37250976562498,-22.439160156249997],[-62.21416015624996,-22.612402343750034],[-61.798535156249955,-23.18203125],[-61.084716796875,-23.65644531250001]]]]},"properties":{"name":"Argentina","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[46.490625,38.90668945312498],[46.1144531250001,38.877783203125034],[45.977441406249994,39.24389648437503],[45.76630859375004,39.37846679687499],[45.78447265625002,39.54560546875001],[45.456835937500074,39.494482421875006],[45.15283203125003,39.58266601562502],[45.03164062500005,39.76513671874997],[44.76826171875004,39.70351562500005],[44.28925781250004,40.040380859375006],[43.66621093750004,40.12636718750002],[43.56933593750003,40.48237304687498],[43.72265624999997,40.71953124999999],[43.43945312500003,41.10712890625001],[44.077246093750006,41.182519531249994],[44.81132812500002,41.259375],[45.001367187499994,41.29096679687498],[45.188574218750006,41.14741210937504],[45.07050781250004,41.075585937499966],[45.5875,40.846923828125],[45.37890624999997,40.67358398437506],[45.45439453125002,40.532373046874966],[45.96464843750002,40.233789062499966],[45.8859375000001,40.024853515624955],[45.57978515625004,39.9775390625],[46.202050781249994,39.59448242187503],[46.48144531249997,39.55517578125003],[46.36523437500003,39.402490234374994],[46.584765625000074,39.22368164062499],[46.400292968749994,39.1921875],[46.490625,38.90668945312498]]]},"properties":{"name":"Armenia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-170.72626953125,-14.351171875],[-170.8205078125,-14.312109375],[-170.568115234375,-14.266796875000011],[-170.72626953125,-14.351171875]]]},"properties":{"name":"American Samoa","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[69.2824218750001,-49.05888671875002],[69.16718750000004,-48.88291015624996],[69.36875,-48.89042968749998],[69.2824218750001,-49.05888671875002]]],[[[69.18486328125002,-49.10957031250004],[69.59277343749997,-48.97099609375005],[69.64404296875003,-49.11738281250003],[69.40507812500002,-49.18173828125],[69.5423828125,-49.25566406250005],[70.32021484375005,-49.05859374999996],[70.55546875000007,-49.201464843750024],[70.38613281250005,-49.433984374999966],[70.16582031250002,-49.34296874999998],[69.75996093750004,-49.430175781249986],[69.98642578125006,-49.58164062500003],[70.2477539062501,-49.53066406250003],[70.12431640625002,-49.70439453124999],[69.153125,-49.5296875],[68.99296875000007,-49.704980468750016],[68.81474609375002,-49.69960937499999],[68.88339843750006,-49.16494140624995],[68.76953125000003,-49.06591796875003],[69.00244140624997,-48.661230468750006],[69.13613281250005,-48.86103515625003],[69.05214843750005,-49.08193359375001],[69.18486328125002,-49.10957031250004]]],[[[51.83457031250006,-46.43994140625],[51.65927734375006,-46.37363281249999],[51.7418945312501,-46.32685546874997],[51.83457031250006,-46.43994140625]]]]},"properties":{"name":"Fr. S. Antarctic Lands","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[-61.71606445312503,17.037011718749994],[-61.85966796874996,17.013330078124966],[-61.887109374999966,17.09814453125],[-61.81728515624994,17.168945312500057],[-61.71606445312503,17.037011718749994]]]},"properties":{"name":"Antigua and Barb.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[147.35605468750006,-43.396972656250014],[147.30888671875007,-43.50078125000002],[147.10498046875003,-43.43115234374996],[147.28388671875004,-43.278906250000034],[147.35605468750006,-43.396972656250014]]],[[[145.04296875000003,-40.78671875],[145.28300781250002,-40.76992187500002],[146.31748046875006,-41.16347656250001],[146.72343750000002,-41.07802734375001],[146.84814453124997,-41.16806640624996],[146.98984375000006,-40.99238281249997],[147.45478515625004,-41.00166015624998],[147.62167968750012,-40.844726562499986],[147.87294921875005,-40.87255859374997],[147.96875,-40.779589843750045],[148.215234375,-40.85488281250002],[148.34257812500007,-42.21533203124997],[148.21367187500002,-41.97001953125],[147.92441406250006,-42.5724609375],[147.94541015625006,-43.18183593749997],[147.7858398437501,-43.22001953125002],[147.69892578125004,-43.12255859374997],[147.64794921874997,-43.02060546874999],[147.8,-42.928125],[147.57382812500006,-42.84570312499997],[147.4523437500001,-43.03339843750001],[147.29794921875006,-42.790917968749994],[147.24501953125005,-43.21591796874999],[146.99697265625005,-43.15634765625002],[147.07734375000004,-43.27587890625003],[146.87392578125,-43.6125],[146.54853515625004,-43.50888671874999],[146.04316406250004,-43.547167968749974],[145.99443359375007,-43.37607421875002],[146.20800781249997,-43.31621093749999],[145.8732421875001,-43.29238281250002],[145.48759765625002,-42.92666015625004],[145.19882812500006,-42.23085937500004],[145.46826171874997,-42.492871093750026],[145.51660156249997,-42.3544921875],[145.33105468750003,-42.14707031250002],[145.23486328124997,-42.19697265624997],[145.23818359375,-42.01962890624999],[144.76611328125003,-41.39003906249998],[144.64609375000006,-40.980859375],[144.71855468750002,-40.67226562500002],[145.04296875000003,-40.78671875]]],[[[148.23691406250006,-40.515136718749986],[148.18779296875007,-40.592578125000045],[148.11728515625012,-40.52148437499996],[148.23691406250006,-40.515136718749986]]],[[[144.784375,-40.506738281249966],[144.74804687499997,-40.589453125000034],[144.7833984375001,-40.434863281249974],[144.784375,-40.506738281249966]]],[[[148.32626953125006,-40.30693359375003],[148.40400390625004,-40.486523437500026],[148.02011718750012,-40.40419921874995],[148.32626953125006,-40.30693359375003]]],[[[148.000390625,-39.75761718750003],[148.29736328125003,-39.985742187499966],[148.31357421875012,-40.173535156250026],[148.10566406250004,-40.26210937499995],[147.76718750000012,-39.87031249999998],[148.000390625,-39.75761718750003]]],[[[143.92792968750004,-40.116113281249966],[143.83857421875004,-39.90410156250003],[144.00078125000007,-39.580175781250034],[144.14101562500005,-39.953808593750026],[143.92792968750004,-40.116113281249966]]],[[[145.31445312500003,-38.49082031249996],[145.35507812500012,-38.55703124999995],[145.12841796875003,-38.52763671875],[145.31445312500003,-38.49082031249996]]],[[[137.59648437500007,-35.73867187499998],[137.92890625000004,-35.72607421875],[138.12343750000005,-35.85234375],[137.67089843749997,-35.897949218750014],[137.44843750000004,-36.07480468749999],[137.20957031250012,-35.982421875],[136.7550781250001,-36.03310546875002],[136.540625,-35.89013671875003],[136.63867187499997,-35.74882812500002],[137.33408203125006,-35.59248046875004],[137.58496093749997,-35.620214843750006],[137.59648437500007,-35.73867187499998]]],[[[153.53876953125004,-27.436425781250037],[153.42656250000002,-27.70644531249998],[153.43544921875,-27.40537109375002],[153.53876953125004,-27.436425781250037]]],[[[113.18300781250005,-26.053125],[112.96425781250005,-25.78310546875001],[112.94707031250002,-25.531542968750017],[113.18300781250005,-26.053125]]],[[[153.07744140625002,-25.75078125],[152.97666015625012,-25.551367187499963],[153.03808593750003,-25.193164062500003],[153.22753906249997,-25.00576171875001],[153.14375,-24.814843750000023],[153.25693359375012,-24.72890625],[153.35019531250012,-25.063085937499963],[153.07744140625002,-25.75078125]]],[[[151.14658203125006,-23.49082031250002],[151.24013671875,-23.529687500000037],[151.23828124999997,-23.77578125],[151.03330078125006,-23.530175781250037],[151.14658203125006,-23.49082031250002]]],[[[115.44619140625005,-20.78779296875001],[115.31806640625004,-20.850585937500014],[115.43457031249997,-20.66796875000003],[115.44619140625005,-20.78779296875001]]],[[[149.04375,-20.29150390624997],[148.93886718750005,-20.283691406249986],[148.98105468750012,-20.153515625000026],[149.04375,-20.29150390624997]]],[[[146.27832031249997,-18.23125],[146.29882812499997,-18.48476562500005],[146.09882812500004,-18.251757812500003],[146.27832031249997,-18.23125]]],[[[139.45917968750004,-17.11455078124996],[139.49277343750006,-16.990429687499983],[139.57089843750006,-17.09443359375004],[139.45917968750004,-17.11455078124996]]],[[[139.50781250000003,-16.57304687499996],[139.1595703125,-16.74169921875003],[139.29296875000003,-16.467285156249986],[139.58789062499997,-16.39521484374997],[139.69775390624997,-16.514941406250017],[139.50781250000003,-16.57304687499996]]],[[[137.09365234375005,-15.778125],[136.94267578125002,-15.711718749999989],[137.00957031250007,-15.594824218749977],[137.09365234375005,-15.778125]]],[[[124.59726562500006,-15.40195312500002],[124.52421875000002,-15.421484375],[124.51933593750002,-15.26748046874998],[124.59726562500006,-15.40195312500002]]],[[[125.19882812500006,-14.57949218749998],[125.0912109375,-14.59169921874998],[125.15996093750002,-14.456054687499972],[125.19882812500006,-14.57949218749998]]],[[[136.71464843750002,-13.803906249999983],[136.89082031250004,-13.786621093750014],[136.74531250000004,-14.072656250000023],[136.95078125000006,-14.184277343750026],[136.89433593750002,-14.293066406249977],[136.33544921875003,-14.211816406250037],[136.42470703125,-13.864843749999963],[136.6556640625,-13.675878906250006],[136.71464843750002,-13.803906249999983]]],[[[136.23740234375006,-13.824511718750003],[136.12265625000012,-13.816601562499983],[136.21542968750012,-13.664746093750054],[136.23740234375006,-13.824511718750003]]],[[[136.33867187500007,-11.602343749999989],[136.18027343750006,-11.676757812499957],[136.47929687500002,-11.465917968749991],[136.33867187500007,-11.602343749999989]]],[[[130.45927734375007,-11.679296875000034],[130.60625,-11.816601562500026],[130.04326171875007,-11.787304687500011],[130.19755859375007,-11.658203125],[130.15283203124997,-11.477539062499972],[130.29492187499997,-11.33681640624998],[130.45927734375007,-11.679296875000034]]],[[[130.6188476562501,-11.376074218749991],[131.02304687500006,-11.334375],[131.26826171875004,-11.18984375],[131.53857421874997,-11.436914062500037],[130.95097656250007,-11.926464843750026],[130.51191406250004,-11.617871093749955],[130.38457031250002,-11.1921875],[130.6188476562501,-11.376074218749991]]],[[[136.59853515625,-11.378906249999943],[136.52656250000004,-11.438867187499994],[136.78027343749997,-11.0125],[136.59853515625,-11.378906249999943]]],[[[132.59335937500006,-11.302832031249991],[132.48378906250005,-11.037304687499983],[132.57880859375004,-10.968847656249977],[132.59335937500006,-11.302832031249991]]],[[[143.17890625000004,-11.954492187499966],[143.11025390625,-12.303515625000017],[143.40156250000004,-12.639941406249989],[143.5866210937501,-13.443652343750031],[143.54843750000012,-13.74101562499996],[143.75634765625003,-14.348828124999969],[143.96181640625005,-14.462890625000028],[144.473046875,-14.231835937500023],[144.64804687500006,-14.492480468750017],[145.28769531250006,-14.943164062499989],[145.42607421875002,-16.406152343749966],[145.75478515625,-16.879492187500034],[145.91210937499997,-16.9125],[146.12587890625005,-17.63525390625],[146.03222656249997,-18.272851562500037],[146.3332031250001,-18.55371093749997],[146.38339843750006,-18.97705078124997],[147.13876953125006,-19.39316406250002],[147.41855468750012,-19.378125],[147.7423828125001,-19.770117187499977],[148.759375,-20.28955078125003],[148.88476562499997,-20.480859375],[148.72998046874997,-20.4677734375],[148.68369140625012,-20.58017578124999],[149.20488281250007,-21.125097656249977],[149.45410156249997,-21.57871093750002],[149.70390625000002,-22.440527343750006],[149.82246093750004,-22.389843749999983],[149.97441406250007,-22.55068359374998],[149.94189453125003,-22.30810546875003],[150.07617187500003,-22.16445312499998],[150.54130859375002,-22.55908203125],[150.56855468750004,-22.38398437500004],[150.67246093750012,-22.418164062499983],[150.84316406250005,-23.4580078125],[151.15380859375003,-23.784082031249994],[151.83164062500006,-24.12294921875001],[152.12988281250003,-24.59755859374998],[152.45634765625007,-24.802441406249983],[152.65429687499997,-25.201953125000017],[152.91347656250005,-25.432128906250014],[152.98496093750012,-25.816210937500003],[153.16494140625,-25.964160156250045],[153.11679687500006,-27.194433593750034],[153.57568359375003,-28.24052734374999],[153.6168945312501,-28.673046875],[153.03056640625002,-30.563378906249994],[152.94394531250012,-31.43486328124999],[152.5592773437501,-32.045703125],[152.4704101562501,-32.439062500000034],[152.13652343750002,-32.678125],[152.1642578125001,-32.75742187499996],[151.812890625,-32.90107421875001],[151.29208984375012,-33.580957031249966],[151.28027343750003,-33.92666015625005],[151.12480468750007,-34.00527343749998],[151.23154296875006,-34.0296875],[150.8712890625001,-34.49912109374996],[150.80458984375,-35.01289062500001],[150.19531249999997,-35.83359374999996],[149.93271484375012,-37.528515625000026],[149.480859375,-37.77119140625],[147.87675781250002,-37.93417968749998],[146.8568359375,-38.663476562499966],[146.21748046875004,-38.72744140625004],[146.33662109375004,-38.89423828125],[146.46660156250007,-38.84033203125003],[146.40000000000012,-39.14550781250003],[146.1583984375001,-38.86572265624996],[145.93535156250002,-38.90175781250002],[145.79082031250007,-38.66699218749997],[145.39726562500002,-38.53535156249998],[145.54218750000004,-38.39384765625002],[145.4757812500001,-38.24375],[145.29277343750002,-38.237597656249974],[144.95957031250012,-38.500781250000045],[144.71777343749997,-38.34033203125004],[144.91142578125007,-38.34404296874999],[145.11992187500007,-38.091308593750014],[144.89130859375004,-37.899804687499994],[144.39550781250003,-38.13691406249998],[144.6652343750001,-38.20996093750003],[143.53896484375005,-38.82089843749998],[142.45585937500002,-38.38632812499999],[141.725,-38.27138671875002],[141.5939453125001,-38.38779296875002],[141.42421875,-38.36347656250004],[141.0109375000001,-38.07695312500003],[140.39042968750007,-37.89667968749998],[139.78427734375012,-37.24580078124998],[139.85732421875,-36.662109375],[139.72900390625003,-36.37138671875002],[138.9689453125001,-35.58076171874997],[139.17802734375007,-35.52304687500002],[139.289453125,-35.61132812499997],[139.28251953125002,-35.375390624999966],[138.521875,-35.6423828125],[138.184375,-35.612695312499994],[138.5111328125,-35.02441406249996],[138.48994140625004,-34.76357421875002],[138.0892578125,-34.16982421875002],[137.69169921875002,-35.14296875000004],[136.88359375000007,-35.23974609375004],[137.01425781250012,-34.91582031250003],[137.39101562500005,-34.91328124999997],[137.49384765625004,-34.16113281250003],[137.9318359375001,-33.57910156250003],[137.85234375000007,-33.20078124999996],[137.99257812500005,-33.094238281250014],[137.78320312500003,-32.578125],[137.79091796875,-32.82324218749996],[137.44228515625,-33.1935546875],[137.23730468750003,-33.62949218749999],[136.43066406249997,-34.02998046875004],[135.891015625,-34.660937499999974],[135.96972656249997,-34.98183593749998],[135.7923828125,-34.863281249999986],[135.64755859375006,-34.93964843750001],[135.12304687499997,-34.58574218750003],[135.21679687499997,-34.48730468749996],[135.45,-34.58105468749996],[135.21894531250004,-33.959765625000045],[134.88876953125012,-33.62636718749998],[134.79101562499997,-33.32832031250001],[134.60771484375002,-33.19013671875001],[134.30126953124997,-33.16503906249996],[134.17353515625004,-32.979101562500006],[134.10039062500007,-32.748632812500034],[134.22714843750006,-32.73056640624999],[134.23417968750007,-32.54853515625004],[133.66533203125007,-32.207226562500054],[133.21210937500004,-32.18378906249998],[132.75742187500012,-31.95625],[132.21464843750002,-32.00712890624996],[131.14365234375006,-31.49570312500005],[130.78300781250002,-31.604003906249986],[129.1876953125001,-31.659960937500017],[127.31982421874997,-32.2640625],[125.91718750000004,-32.296972656250034],[124.75878906250003,-32.882714843749994],[124.24375,-33.01523437499999],[123.50683593749997,-33.916210937500054],[122.15097656250006,-33.99179687499999],[122.06113281250006,-33.874414062499966],[121.40507812500007,-33.826757812500034],[119.85410156250012,-33.97470703124998],[119.45058593750005,-34.368261718750034],[118.89531250000007,-34.47988281250004],[118.13554687500002,-34.98662109374999],[117.58193359375005,-35.09775390624998],[116.51718750000012,-34.98789062499998],[115.98671875000005,-34.795019531250034],[115.56503906250012,-34.42578125000003],[115.00878906250003,-34.25585937499997],[114.9938476562501,-33.51533203125],[115.3587890625,-33.63994140624999],[115.68300781250005,-33.19287109375003],[115.6984375000001,-31.694531250000054],[115.07792968750007,-30.560449218750023],[114.85683593750005,-29.14296875],[114.16513671875012,-28.08066406250002],[114.028125,-27.34726562499999],[113.18476562500004,-26.182226562499963],[113.32324218749997,-26.243847656249997],[113.35605468750012,-26.080468750000023],[113.58164062500006,-26.558105468749986],[113.73369140625002,-26.59511718749998],[113.83642578125003,-26.50058593749999],[113.85283203125007,-26.33212890625005],[113.39531250000002,-25.71328125],[113.4513671875001,-25.599121093750014],[113.7130859375001,-25.83076171875004],[113.72373046875006,-26.129785156250037],[113.85390625,-26.01445312499999],[113.99199218750007,-26.32148437500001],[114.09033203124997,-26.393652343749963],[114.21572265625,-26.289453124999966],[114.2142578125,-25.851562500000014],[113.41767578125004,-24.435644531250034],[113.48984375000012,-23.869628906250014],[113.7570312500001,-23.418164062500054],[113.79511718750004,-22.91455078125003],[113.68281250000004,-22.637792968749963],[114.02285156250005,-21.881445312499977],[114.12392578125005,-21.828613281249957],[114.14160156250003,-22.483105468749983],[114.37773437500007,-22.341503906249997],[114.70927734375002,-21.82343749999997],[115.45615234375012,-21.49169921874997],[116.0109375000001,-21.030371093749963],[116.7067382812501,-20.653808593749986],[117.40625,-20.72119140625003],[118.19921875000003,-20.37519531249997],[118.75146484374997,-20.261914062499983],[119.10449218749997,-19.995312500000026],[119.58593750000003,-20.03828125],[120.99794921875,-19.604394531249966],[121.33769531250002,-19.31992187500002],[121.83378906250002,-18.477050781249986],[122.34541015625004,-18.11191406250002],[122.14746093749997,-17.54902343750001],[122.2609375000001,-17.135742187500014],[122.72041015625004,-16.78769531249999],[122.97070312499997,-16.436816406250003],[123.56308593750006,-17.520898437499966],[123.59355468750007,-17.03037109375005],[123.83105468750003,-17.120800781249997],[123.8744140625,-16.918652343750026],[123.4904296875001,-16.49072265624997],[123.62597656249997,-16.416308593750003],[123.60703125000006,-16.224023437499994],[123.72890625,-16.192480468749963],[123.85917968750007,-16.38232421875],[124.04443359374997,-16.264941406249974],[124.30039062500006,-16.388281249999977],[124.77197265624997,-16.40263671874996],[124.40488281250006,-16.298925781249977],[124.41640625,-16.133496093750026],[124.5768554687501,-16.11367187499998],[124.64853515625012,-15.870214843750034],[124.50429687500005,-15.972460937499989],[124.38164062500002,-15.758203125000037],[124.43955078125012,-15.493554687500037],[124.56162109375012,-15.496289062499969],[124.69257812500004,-15.273632812499997],[125.06298828125003,-15.44228515624998],[125.0729492187501,-15.306738281249991],[124.90917968750003,-15.310058593749957],[124.83906250000004,-15.160742187500006],[125.03818359375012,-15.004101562499969],[125.35566406250004,-15.119824218750011],[125.17871093749997,-14.714746093749994],[125.57978515625004,-14.483203124999989],[125.62773437500002,-14.256640625000017],[125.70458984374997,-14.29140625],[125.66162109375003,-14.529492187500011],[125.81953125000004,-14.469140624999966],[125.890625,-14.61796875],[126.0207031250001,-14.49453125],[126.0539062500001,-13.977246093750026],[126.1842773437501,-14.00205078125002],[126.25849609375004,-14.163574218749972],[126.403125,-14.018945312499994],[126.5697265625,-14.160937499999974],[126.7806640625,-13.955175781249977],[126.77558593750004,-13.788476562500037],[126.90322265625,-13.744140624999972],[127.45761718750006,-14.031445312499969],[128.18046875000007,-14.711621093749983],[128.06943359375012,-15.329296874999969],[128.15546875000004,-15.225585937499972],[128.25468750000002,-15.298535156250011],[128.175,-15.043164062500026],[128.57578125000006,-14.774511718750006],[129.05820312500012,-14.884375],[129.21582031249997,-15.160253906249991],[129.26757812500003,-14.871484375000051],[129.63476562499997,-15.139746093749991],[129.637109375,-14.850976562500037],[129.84873046875012,-14.828906249999989],[129.60468750000004,-14.647070312499977],[129.69794921875004,-14.557421875000017],[129.37871093750002,-14.39248046874998],[129.70986328125,-13.979980468749972],[129.83886718749997,-13.572949218749997],[130.25976562500003,-13.30224609375],[130.1349609375001,-13.145507812499957],[130.1681640625001,-12.957421875],[130.39990234374997,-12.68789062499999],[130.61748046875007,-12.646875],[130.62265625000006,-12.43105468749998],[130.8673828125001,-12.557812499999955],[130.87382812500007,-12.367187500000028],[131.29160156250006,-12.067871093749972],[131.43828125000002,-12.27695312500002],[132.06406250000006,-12.28076171875],[132.25322265625007,-12.186035156249972],[132.41103515625,-12.295117187499997],[132.51054687500002,-12.134863281250034],[132.71279296875,-12.1234375],[132.63046875000012,-12.035156249999972],[132.67421875000005,-11.649023437499991],[132.47519531250006,-11.491503906249974],[132.07285156250006,-11.474707031250006],[131.82246093750004,-11.302441406249997],[131.96152343750006,-11.180859375000011],[132.15546875000004,-11.311132812499991],[132.33398437499997,-11.223535156249994],[132.6828125000001,-11.505566406249997],[132.96103515625012,-11.407324218749963],[133.18525390625004,-11.705664062499991],[133.90419921875,-11.832031249999972],[134.4173828125,-12.052734375],[134.73027343750002,-11.984375],[135.02968750000005,-12.19375],[135.2179687500001,-12.221679687499957],[135.92246093750012,-11.825781250000034],[135.70439453125007,-12.209863281250037],[136.00849609375004,-12.19140625],[136.08183593750007,-12.422460937500006],[136.26064453125,-12.433789062499997],[136.32851562500005,-12.305566406249994],[136.24990234375,-12.173046875],[136.44335937499997,-11.951464843749974],[136.7194335937501,-12.226464843749952],[136.89746093749997,-12.243554687499966],[136.94746093750004,-12.34990234374996],[136.53701171875,-12.784277343749991],[136.59433593750012,-13.003808593750051],[136.46103515625006,-13.225195312500034],[136.29414062500004,-13.137988281250031],[135.92734375000012,-13.304296874999977],[135.95449218750005,-13.934863281250017],[135.40517578125005,-14.758203124999966],[135.4533203125001,-14.923144531250003],[136.20537109375002,-15.403417968749963],[136.29140625000005,-15.570117187500003],[136.70488281250007,-15.685253906250011],[136.78466796874997,-15.89423828125004],[137.00214843750004,-15.878320312499994],[137.70371093750006,-16.233007812499963],[138.24501953125005,-16.718359374999977],[139.00986328125006,-16.899316406249994],[139.2484375,-17.328613281249957],[140.03583984375004,-17.702636718749957],[140.51113281250005,-17.62451171875003],[140.83046875,-17.414453125000037],[141.29140625,-16.46347656250002],[141.62548828124997,-15.056640625000014],[141.52294921875003,-14.470117187499994],[141.59433593750006,-14.152832031250014],[141.47255859375,-13.797558593750011],[141.64541015625,-13.259082031250003],[141.61357421875002,-12.943457031250006],[141.92978515625006,-12.73984375],[141.67773437500003,-12.491406250000011],[141.68857421875012,-12.351074218750028],[141.87050781250005,-11.9755859375],[141.96113281250004,-12.054296874999963],[142.168359375,-10.946582031249974],[142.45644531250005,-10.707324218749989],[142.60507812500012,-10.748242187499983],[142.55273437500003,-10.874414062500023],[142.7796875,-11.115332031249977],[142.87255859374997,-11.821386718750034],[143.17890625000004,-11.954492187499966]]],[[[142.2748046875,-10.704785156250011],[142.19140624999997,-10.762011718750031],[142.1310546875001,-10.640625],[142.19794921875004,-10.59199218750004],[142.2748046875,-10.704785156250011]]]]},"properties":{"name":"Australia","childNum":30}},{"geometry":{"type":"Polygon","coordinates":[[[16.953125,48.598828125],[16.86542968750001,48.3869140625],[17.147363281250023,48.00595703125],[17.06660156250001,47.707568359374996],[16.421289062500023,47.674462890624994],[16.676562500000017,47.536035156249994],[16.44287109375,47.39951171875],[16.453417968750017,47.006787109375],[16.093066406250017,46.86328125],[15.957617187500006,46.677636718749994],[14.893261718750011,46.605908203125],[14.5498046875,46.399707031249996],[13.7,46.520263671875],[13.490039062500017,46.555566406249994],[13.3515625,46.557910156249996],[13.16875,46.57265625],[12.479199218750011,46.672509765624994],[12.38828125,46.70263671875],[12.330078125,46.759814453124996],[12.267968750000023,46.835888671875],[12.154101562500017,46.93525390625],[12.130761718750023,46.98476562499999],[12.16552734375,47.028173828125],[12.201269531250006,47.060888671875],[12.197167968750023,47.075],[12.16943359375,47.08212890625],[11.775683593750017,46.986083984375],[11.527539062500011,46.997412109375],[11.433203125,46.983056640624994],[11.244433593750017,46.97568359375],[11.133886718750006,46.936181640624994],[11.0634765625,46.859130859375],[11.025097656250011,46.79697265625],[10.993261718750006,46.777001953124994],[10.92734375,46.769482421875],[10.828906250000017,46.775244140625],[10.759765625,46.793310546875],[10.689257812500017,46.84638671875],[10.579785156250011,46.8537109375],[10.479394531250023,46.855126953124994],[10.452832031250011,46.86494140625],[10.45458984375,46.8994140625],[10.414941406250023,46.964404296874996],[10.349414062500017,46.98476562499999],[10.133496093750011,46.851513671875],[9.580273437500011,47.057373046875],[9.527539062500011,47.270751953125],[9.625878906250023,47.467041015625],[9.524023437500006,47.52421875],[9.748925781250023,47.575537109375],[9.839160156250017,47.552294921874996],[9.971582031250023,47.505322265625],[10.034082031250023,47.473583984375],[10.059863281250017,47.449072265625],[10.066308593750023,47.393359375],[10.200292968750006,47.363427734374994],[10.183007812500023,47.27880859375],[10.369140625,47.366064453125],[10.40390625,47.4169921875],[10.439453125,47.5515625],[10.482812500000023,47.541796875],[10.65869140625,47.547216796875],[10.741601562500023,47.52412109375],[10.873046875,47.52021484375],[11.0419921875,47.393115234374996],[12.185644531250006,47.61953125],[12.203808593750011,47.646728515625],[12.196875,47.70908203125],[12.209277343750017,47.71826171875],[12.268359375000017,47.702734375],[12.353540736607165,47.70264787946429],[12.492553013392856,47.68551897321428],[12.685839843750017,47.669335937499994],[12.771386718750023,47.639404296875],[12.796191406250017,47.60703125],[12.781152343750023,47.5904296875],[12.7828125,47.56416015625],[12.809375,47.5421875],[12.87890625,47.5064453125],[12.968066406250017,47.47568359375],[13.014355468750011,47.478076171874996],[13.031542968750017,47.5080078125],[13.047949218750006,47.579150390624996],[13.054101562500023,47.655126953125],[12.897656250000011,47.721875],[12.953515625000023,47.890625],[12.760351562500006,48.106982421874996],[13.215234375000023,48.301904296874994],[13.322851562500006,48.33125],[13.409375,48.394140625],[13.459863281250023,48.56455078125],[13.4716796875,48.571826171874996],[13.486621093750017,48.581835937499996],[13.636623883928596,48.580904017857144],[13.785351562500011,48.587451171874996],[13.798828125,48.6216796875],[13.802929687500011,48.747509765625],[13.814746093750017,48.766943359375],[14.049121093750017,48.602490234375],[14.691308593750023,48.59921875],[15.066796875000023,48.997851562499996],[16.057226562500006,48.754785156249994],[16.543554687500006,48.796240234375],[16.953125,48.598828125]]]},"properties":{"name":"Austria","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[46.1144531250001,38.877783203125034],[45.4796875000001,39.00625],[44.81718750000002,39.65043945312496],[44.76826171875004,39.70351562500005],[45.03164062500005,39.76513671874997],[45.15283203125003,39.58266601562502],[45.456835937500074,39.494482421875006],[45.78447265625002,39.54560546875001],[45.76630859375004,39.37846679687499],[45.977441406249994,39.24389648437503],[46.1144531250001,38.877783203125034]]],[[[48.572851562500006,41.84448242187503],[49.45673828125004,40.79985351562502],[49.77597656250006,40.583984375],[50.18251953125005,40.50478515625002],[50.3659179687501,40.279492187499955],[49.91884765625005,40.31640625000003],[49.55117187499999,40.19414062499999],[49.3244140625001,39.60834960937501],[49.36279296875003,39.349560546874955],[49.16533203125002,39.03027343750003],[49.013476562500074,39.13398437500001],[48.85449218750003,38.83881835937501],[48.86875,38.43549804687498],[48.59267578125005,38.41108398437498],[47.99648437499999,38.85375976562503],[48.292089843750006,39.01884765624999],[48.10439453125005,39.241113281249994],[48.322167968749994,39.39907226562502],[47.995898437500074,39.683935546875034],[46.490625,38.90668945312498],[46.400292968749994,39.1921875],[46.584765625000074,39.22368164062499],[46.36523437500003,39.402490234374994],[46.48144531249997,39.55517578125003],[46.202050781249994,39.59448242187503],[45.57978515625004,39.9775390625],[45.8859375000001,40.024853515624955],[45.96464843750002,40.233789062499966],[45.45439453125002,40.532373046874966],[45.37890624999997,40.67358398437506],[45.5875,40.846923828125],[45.07050781250004,41.075585937499966],[45.188574218750006,41.14741210937504],[45.001367187499994,41.29096679687498],[45.2171875,41.423193359375006],[45.28095703125004,41.449560546875034],[46.086523437500006,41.183837890625],[46.43095703125002,41.077050781249994],[46.534375,41.08857421875004],[46.62636718750005,41.15966796875006],[46.66240234375002,41.24550781250002],[46.67255859375004,41.28681640625001],[46.61894531250002,41.34375],[46.30546875000002,41.507714843749994],[46.18427734375004,41.70214843749997],[46.42988281250004,41.890966796875006],[46.74931640625002,41.812597656250006],[47.31767578125002,41.28242187500001],[47.79101562499997,41.19926757812502],[48.572851562500006,41.84448242187503]]]]},"properties":{"name":"Azerbaijan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[30.553613281250023,-2.400097656250011],[30.53369140625,-2.42626953125],[30.441992187500006,-2.613476562500011],[30.424218750000023,-2.6416015625],[30.47333984375001,-2.6943359375],[30.42402343750001,-2.824023437500003],[30.433496093750023,-2.87451171875],[30.515039062500023,-2.917578125],[30.604296875000017,-2.935253906250011],[30.70947265625,-2.977246093750011],[30.7802734375,-2.98486328125],[30.811132812500006,-3.116406250000011],[30.79023437500001,-3.274609375000011],[30.4,-3.65390625],[29.947265625,-4.307324218750011],[29.7177734375,-4.455859375],[29.403222656250023,-4.449316406250006],[29.211816406250023,-3.833789062500003],[29.224414062500017,-3.053515625],[29.01435546875001,-2.72021484375],[29.10205078125,-2.595703125],[29.390234375,-2.80859375],[29.698046875000017,-2.794726562500003],[29.8681640625,-2.71640625],[29.93017578125,-2.339550781250011],[30.117285156250006,-2.416601562500006],[30.408496093750017,-2.31298828125],[30.553613281250023,-2.400097656250011]]]},"properties":{"name":"Burundi","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[5.693554687500011,50.774755859375006],[5.993945312500017,50.75043945312504],[6.340917968750006,50.451757812500034],[6.116503906250045,50.120996093749966],[6.08906250000004,50.15458984374996],[6.054785156249977,50.154296875],[5.976269531250068,50.167187499999955],[5.866894531250068,50.08281250000002],[5.817382812500028,50.01269531250003],[5.7880859375,49.96123046875002],[5.744042968749994,49.91962890624998],[5.789746093749983,49.53828125000001],[5.50732421875,49.51088867187502],[4.867578125000051,49.78813476562502],[4.818652343750045,50.153173828125034],[4.545019531250063,49.96025390624999],[4.149316406250023,49.971582031249994],[4.174609375000017,50.24648437500005],[3.689355468750023,50.30605468750002],[3.595410156250068,50.47734374999999],[3.27333984375008,50.53154296875002],[3.10683593750008,50.779443359374994],[2.759375,50.750634765624994],[2.52490234375,51.097119140624955],[3.35009765625,51.37768554687503],[3.43251953125008,51.24575195312505],[3.902050781250011,51.20766601562502],[4.226171875000034,51.38647460937503],[5.03095703125004,51.46909179687498],[5.214160156250045,51.278955078124966],[5.796484375000034,51.153076171875],[5.693554687500011,50.774755859375006]]]},"properties":{"name":"Belgium","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[3.595410156250011,11.6962890625],[3.553906250000011,11.631884765624989],[3.490527343750017,11.49921875],[3.48779296875,11.395410156249994],[3.638867187500011,11.176855468749991],[3.65625,11.154589843749989],[3.6953125,11.1203125],[3.71640625,11.07958984375],[3.7568359375,10.76875],[3.83447265625,10.607421875],[3.771777343750017,10.417626953124994],[3.646582031250006,10.408984374999989],[3.60205078125,10.004541015624994],[3.3251953125,9.778466796874994],[3.044921875,9.083837890624991],[2.774804687500023,9.048535156249997],[2.703125,8.371826171875],[2.68603515625,7.873730468749997],[2.719335937500006,7.616259765624989],[2.7509765625,7.541894531249994],[2.78515625,7.476855468749989],[2.783984375000017,7.443408203124989],[2.765820312500011,7.422509765624994],[2.75048828125,7.395068359374989],[2.756738281250023,7.067919921874989],[2.721386718750011,6.980273437499989],[2.731738281250017,6.852832031249989],[2.7529296875,6.771630859374994],[2.774609375000011,6.711718749999989],[2.753710937500017,6.661767578124994],[2.735644531250017,6.595703125],[2.706445312500023,6.369238281249991],[1.62265625,6.216796875],[1.777929687500006,6.294628906249997],[1.530957031250011,6.992431640625],[1.624707031250011,6.997314453125],[1.600195312500006,9.050048828125],[1.3857421875,9.361669921874991],[1.330078125,9.996972656249994],[0.763378906250011,10.386669921874997],[0.900488281250006,10.993261718749991],[1.4267578125,11.447119140624991],[1.980371093750023,11.418408203124997],[2.38916015625,11.897070312499991],[2.366015625000017,12.221923828125],[2.805273437500006,12.383837890624989],[3.595410156250011,11.6962890625]]]},"properties":{"name":"Benin","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[0.217480468750011,14.911474609374991],[0.163867187500017,14.497216796874994],[0.382519531250011,14.245800781249997],[0.42919921875,13.972119140624997],[0.6181640625,13.703417968750003],[1.201171875,13.357519531249991],[0.988476562500011,13.36484375],[0.9873046875,13.041894531249994],[1.56494140625,12.635400390624994],[2.104589843750006,12.701269531249991],[2.226269531250011,12.466064453125],[2.072949218750011,12.309375],[2.38916015625,11.897070312499991],[1.980371093750023,11.418408203124997],[1.4267578125,11.447119140624991],[0.900488281250006,10.993261718749991],[0.49267578125,10.954980468749994],[-0.068603515625,11.115625],[-0.299462890624994,11.166894531249994],[-0.627148437499983,10.927392578124994],[-1.04248046875,11.010058593749989],[-2.829931640624977,10.998388671874991],[-2.914892578124977,10.592333984374989],[-2.791162109374994,10.432421874999989],[-2.780517578125,9.745849609375],[-2.765966796874977,9.658056640624991],[-2.706201171874994,9.533935546875],[-2.695849609374989,9.481347656249994],[-2.7171875,9.457128906249991],[-2.7666015625,9.424707031249994],[-2.816748046874977,9.425830078124989],[-2.875146484374994,9.500927734374997],[-2.90087890625,9.534619140624997],[-2.948144531249994,9.610742187499994],[-2.98828125,9.687353515624991],[-3.042626953124994,9.720898437499997],[-3.095800781249977,9.752099609374994],[-3.160693359374989,9.849169921874989],[-3.223535156249994,9.895458984374997],[-3.289697265624994,9.882226562499994],[-3.581152343749977,9.92431640625],[-3.790625,9.9171875],[-4.18115234375,9.78173828125],[-4.267187499999977,9.743261718749991],[-4.332226562499983,9.645703125],[-4.406201171874983,9.647998046874989],[-4.526611328125,9.723486328124991],[-4.625830078124977,9.713574218749997],[-4.721777343749977,9.756542968749997],[-5.262304687499977,10.319677734374991],[-5.523535156249977,10.426025390625],[-5.490478515625,11.042382812499994],[-5.250244140625,11.375781249999989],[-5.288134765624989,11.827929687499989],[-4.699316406249977,12.076171875],[-4.4287109375,12.337597656249997],[-4.480615234374994,12.672216796874991],[-4.227099609374989,12.793701171875],[-4.328710937499977,13.119042968749994],[-4.151025390624994,13.306201171875003],[-3.947314453124989,13.402197265624991],[-3.527636718749989,13.182714843749991],[-3.3017578125,13.28076171875],[-3.248632812499977,13.658349609374994],[-2.950830078124994,13.6484375],[-2.873925781249994,13.950732421875003],[-2.586718749999989,14.227587890625003],[-2.113232421874983,14.16845703125],[-1.97304687499999,14.45654296875],[-1.049560546875,14.81953125],[-0.760449218749983,15.047753906249994],[-0.235888671874989,15.059423828124991],[0.217480468750011,14.911474609374991]]]},"properties":{"name":"Burkina Faso","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[91.94921875000003,21.50805664062503],[91.85947265625012,21.532958984375057],[91.90771484374997,21.722949218750017],[91.94921875000003,21.50805664062503]]],[[[91.87382812500002,21.832128906249977],[91.8375976562501,21.750244140625],[91.85068359375012,21.927050781250045],[91.87382812500002,21.832128906249977]]],[[[91.15078125000005,22.175195312499966],[91.04472656250002,22.10517578125001],[91.0794921875,22.519726562499983],[91.15078125000005,22.175195312499966]]],[[[91.55673828125006,22.38222656250005],[91.41132812500004,22.475683593750006],[91.45605468749997,22.61650390624999],[91.55673828125006,22.38222656250005]]],[[[90.77763671875007,22.089306640624983],[90.51503906250005,22.06513671875001],[90.68046875000007,22.327490234375006],[90.50292968749997,22.835351562499994],[90.59648437500002,22.863525390625057],[90.86816406250003,22.48486328125],[90.77763671875007,22.089306640624983]]],[[[88.94072265625002,26.24536132812497],[88.97041015625004,26.250878906250023],[88.95195312500002,26.412109375],[89.01865234375012,26.410253906249977],[89.28925781250004,26.03759765625],[89.54990234375006,26.005273437499994],[89.57275390625003,26.13232421875003],[89.67089843750003,26.21381835937504],[89.8229492187501,25.94140625000003],[89.82490234375004,25.56015625],[89.80087890625012,25.33613281250001],[89.81406250000006,25.305371093749955],[89.86630859375012,25.293164062499955],[90.11962890625003,25.21997070312497],[90.61308593750002,25.16772460937497],[92.04970703125005,25.16948242187499],[92.46835937500006,24.94414062499999],[92.38496093750004,24.848779296875023],[92.25126953125007,24.895068359375045],[92.22832031250002,24.88134765625],[92.22666015625012,24.77099609374997],[92.11748046875002,24.493945312500017],[92.06416015625004,24.374365234375006],[91.84619140624997,24.17529296875003],[91.72656250000003,24.20507812499997],[91.35019531250012,24.06049804687501],[91.16044921875007,23.66064453125],[91.359375,23.06835937500003],[91.43623046875004,23.19990234375001],[91.55351562500002,22.991552734375006],[91.61953125,22.97968750000001],[91.75097656250003,23.053515625000017],[91.75419921875007,23.287304687499955],[91.79003906249997,23.361035156249983],[91.937890625,23.504687500000017],[91.92949218750007,23.598242187499977],[91.92958984375,23.68598632812501],[91.97851562500003,23.691992187499977],[92.04404296875006,23.677783203125017],[92.24609375000003,23.683593750000057],[92.33378906250002,23.242382812499955],[92.36162109375002,22.929003906250074],[92.46445312500006,22.734423828125045],[92.49140625000004,22.685400390625006],[92.5612304687501,22.04804687500001],[92.57490234375004,21.978076171875045],[92.58281250000002,21.940332031249994],[92.5934570312501,21.46733398437499],[92.63164062500002,21.306201171875045],[92.33056640624997,21.439794921874977],[92.17958984375005,21.293115234375023],[92.32412109375,20.791845703125063],[92.0560546875,21.1748046875],[91.86337890625012,22.350488281249966],[91.7970703125001,22.297460937500006],[91.48007812500006,22.884814453125045],[91.2162109375,22.642236328124994],[90.94560546875002,22.597021484375034],[90.65625,23.025488281250006],[90.60400390624997,23.59135742187499],[90.55566406249997,23.42153320312505],[90.26914062500012,23.455859375000017],[90.59091796875012,23.266406250000045],[90.43505859374997,22.751904296874955],[90.61611328125,22.362158203125034],[90.23056640625006,21.82978515625004],[90.07119140625005,21.887255859375017],[90.20957031250006,22.156591796875006],[89.95419921875006,22.022851562500023],[89.91806640625012,22.11616210937501],[89.98515625000002,22.466406250000063],[89.81191406250005,21.983496093750006],[89.56855468750004,21.767431640625034],[89.48320312500007,22.275537109374994],[89.50058593750006,21.914355468750045],[89.35371093750004,21.72109375],[89.09394531250004,21.872753906249983],[89.05,22.274609374999983],[88.92070312500002,22.632031249999955],[88.89970703125002,22.843505859375057],[88.85058593749997,23.040527343750057],[88.928125,23.186621093750063],[88.72441406250002,23.254980468750034],[88.69765625,23.493017578125034],[88.63574218749997,23.55],[88.56738281249997,23.674414062500034],[88.69980468750006,24.002539062500006],[88.71376953125,24.069628906250017],[88.72656250000003,24.186230468749955],[88.7335937500001,24.23090820312501],[88.72353515625,24.27490234375],[88.64228515625004,24.325976562500017],[88.49853515625003,24.34663085937504],[88.3375,24.45385742187503],[88.225,24.460644531249983],[88.14550781250003,24.485791015624955],[88.07910156249997,24.549902343750063],[88.02343750000003,24.62783203125005],[88.03027343749997,24.66445312500005],[88.0451171875001,24.713037109374994],[88.1498046875,24.914648437500034],[88.1888671875,24.92060546875001],[88.27949218750004,24.881933593750034],[88.31337890625005,24.8818359375],[88.37294921875,24.961523437499977],[88.45625,25.18842773437504],[88.57382812500006,25.18789062499999],[88.92978515625012,25.222998046875063],[88.94414062500002,25.290771484375],[88.85478515625002,25.333544921875017],[88.76914062500006,25.490478515625],[88.50244140624997,25.537011718749994],[88.14746093749997,25.811425781250023],[88.1066406250001,25.841113281250045],[88.15078125000005,26.08715820312497],[88.33398437499997,26.257519531249955],[88.44042968749997,26.369482421875034],[88.38623046875003,26.471533203125034],[88.35146484375005,26.482568359374966],[88.36992187500002,26.564111328124994],[88.51826171875004,26.517773437499955],[88.68281250000004,26.291699218749983],[88.94072265625002,26.24536132812497]]]]},"properties":{"name":"Bangladesh","childNum":6}},{"geometry":{"type":"Polygon","coordinates":[[[28.585351562500023,43.742236328124996],[28.465429687500006,43.389306640624994],[28.133691406250023,43.39560546875],[27.92890625000001,43.1861328125],[27.88886718750001,42.74970703125],[27.484765625000023,42.468066406249996],[28.014453125000017,41.969042968749996],[27.47480468750001,41.946875],[27.294921875,42.079541015625],[27.24433593750001,42.09326171875],[27.01171875,42.058642578124996],[26.96875,42.02685546875],[26.884863281250006,41.991845703124994],[26.615332031250006,41.964892578124996],[26.549707031250023,41.896728515625],[26.51142578125001,41.8263671875],[26.3603515625,41.8015625],[26.327246093750006,41.772802734375],[26.31796875,41.744677734374996],[26.320898437500006,41.716552734375],[26.200585937500023,41.743798828124994],[26.107421875,41.72568359375],[26.085546875,41.704150390624996],[26.066015625,41.673242187499994],[26.1435546875,41.521533203124996],[26.155175781250023,41.434863281249996],[26.135351562500006,41.3857421875],[26.06640625,41.35068359375],[25.92333984375,41.311914062499994],[25.784960937500017,41.330419921875],[25.52705078125001,41.2998046875],[25.381933593750006,41.26435546875],[25.25117187500001,41.243554687499994],[24.773730468750017,41.356103515624994],[24.595996093750017,41.442724609375],[24.5693359375,41.4673828125],[24.51826171875001,41.552539062499996],[24.487890625,41.555224609374996],[24.056054687500023,41.527246093749994],[24.03291015625001,41.469091796875],[24.011328125,41.46005859375],[23.635156250000023,41.386767578124996],[23.53583984375001,41.386035156249996],[23.433398437500017,41.398730468749996],[23.3720703125,41.3896484375],[23.23984375,41.3849609375],[23.15595703125001,41.322070312499996],[22.916015625,41.336279296875],[23.00361328125001,41.73984375],[22.836816406250023,41.993603515625],[22.344042968750017,42.31396484375],[22.42207031250001,42.328857421875],[22.445703125000023,42.359130859375],[22.523535156250006,42.440966796874996],[22.53242187500001,42.481201171875],[22.524218750000017,42.50390625],[22.43623046875001,42.6291015625],[22.466796875,42.84248046875],[22.799902343750006,42.985742187499994],[22.976855468750017,43.18798828125],[22.85957031250001,43.25234375],[22.819726562500023,43.300732421875],[22.767578125,43.354150390624994],[22.554589843750023,43.454492187499994],[22.36962890625,43.781298828124996],[22.36542968750001,43.862109375],[22.399023437500006,43.96953125],[22.420800781250023,44.007421875],[22.452529688228115,44.0510441391688],[22.547921095934313,44.113823956634434],[22.688564844478098,44.254306249271906],[23.02851562500001,44.077978515625],[22.868261718750006,43.947900390624994],[22.919042968750006,43.83447265625],[25.4970703125,43.670800781249994],[26.2158203125,44.007275390625],[27.0869140625,44.167382812499994],[27.425390625,44.0205078125],[27.88427734375,43.987353515624996],[28.221972656250017,43.772851562499994],[28.585351562500023,43.742236328124996]]]},"properties":{"name":"Bulgaria","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[50.60722656250002,25.883105468750003],[50.57490234375001,25.806787109374994],[50.465917968750006,25.965527343749997],[50.46992187500001,26.228955078124997],[50.5859375,26.24072265625],[50.60722656250002,25.883105468750003]]]},"properties":{"name":"Bahrain","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-73.02685546874994,21.19238281250003],[-73.16455078125003,20.979150390625023],[-73.68115234375003,20.9755859375],[-73.68037109374995,21.103320312500017],[-73.52309570312497,21.190820312499966],[-73.23535156249997,21.15449218750004],[-73.05849609375,21.313378906249994],[-73.02685546874994,21.19238281250003]]],[[[-73.041015625,22.429052734375006],[-72.74726562500001,22.32739257812497],[-73.16191406250002,22.380712890625006],[-73.041015625,22.429052734375006]]],[[[-74.20673828124998,22.213769531250023],[-74.27690429687499,22.183691406250006],[-73.906396484375,22.527441406250063],[-73.95419921874995,22.71552734375001],[-73.84995117187503,22.731054687500063],[-73.83652343749998,22.538427734374977],[-74.20673828124998,22.213769531250023]]],[[[-74.05751953124997,22.723486328125034],[-74.27460937499995,22.71166992187503],[-74.30703125,22.83959960937497],[-74.05751953124997,22.723486328125034]]],[[[-74.84047851562494,22.894335937500017],[-75.22333984374995,23.165332031250074],[-75.13056640624998,23.267919921875006],[-75.31596679687502,23.668359374999966],[-74.84047851562494,22.894335937500017]]],[[[-75.66455078124997,23.45014648437501],[-76.03710937500003,23.60278320312503],[-76.01044921875001,23.671386718750057],[-75.66455078124997,23.45014648437501]]],[[[-74.42944335937497,24.068066406249955],[-74.55092773437502,23.96894531250001],[-74.52690429687502,24.105078125000034],[-74.42944335937497,24.068066406249955]]],[[[-77.65771484374994,24.249462890624955],[-77.75527343750002,24.163476562500023],[-77.61538085937494,24.216357421875045],[-77.5615234375,24.136816406250006],[-77.57373046875,23.739160156249994],[-77.77128906249999,23.752539062499977],[-77.99990234374994,24.219824218750063],[-77.65771484374994,24.249462890624955]]],[[[-75.30839843749999,24.2],[-75.50322265624996,24.139062500000023],[-75.40893554687503,24.265771484374994],[-75.72666015625,24.68935546875005],[-75.30839843749999,24.2]]],[[[-77.34755859375,25.013867187499983],[-77.56191406249997,25.030029296875],[-77.27558593750001,25.055761718750006],[-77.34755859375,25.013867187499983]]],[[[-77.74384765625001,24.70742187499999],[-77.74521484375,24.463476562500034],[-78.04492187499997,24.287451171875063],[-78.14580078125002,24.493457031250017],[-78.36650390624993,24.544189453125057],[-78.435302734375,24.627587890624994],[-78.24272460937493,24.65380859375],[-78.21137695312495,25.191259765624977],[-77.97529296874998,25.084814453125063],[-77.74384765625001,24.70742187499999]]],[[[-76.64882812499994,25.487402343750006],[-76.34379882812496,25.33203124999997],[-76.12661132812497,25.14052734375005],[-76.16953125,24.6494140625],[-76.319970703125,24.81767578124999],[-76.21376953124994,24.822460937499983],[-76.160400390625,25.119335937499983],[-76.36928710937502,25.312597656250006],[-76.62070312499998,25.43164062500003],[-76.78066406249997,25.426855468750006],[-76.71083984374997,25.564892578124983],[-76.64882812499994,25.487402343750006]]],[[[-78.49287109375001,26.729052734375017],[-77.92246093749998,26.69111328125001],[-78.74365234374994,26.50068359375004],[-78.98564453124996,26.689501953125045],[-78.79804687500001,26.58242187499999],[-78.59711914062493,26.797949218750006],[-78.49287109375001,26.729052734375017]]],[[[-77.22563476562496,25.904199218750023],[-77.40317382812498,26.02470703124996],[-77.24677734374998,26.156347656250034],[-77.238623046875,26.561132812500006],[-77.510595703125,26.845996093750045],[-77.94375,26.90356445312503],[-77.53388671874995,26.903417968750006],[-77.06635742187501,26.530175781249994],[-77.03828124999998,26.333447265624983],[-77.16728515624996,26.240332031250006],[-77.22563476562496,25.904199218750023]]]]},"properties":{"name":"Bahamas","childNum":14}},{"geometry":{"type":"Polygon","coordinates":[[[19.007128906250045,44.86918945312502],[19.348632812500057,44.88090820312502],[19.118457031250074,44.359960937500006],[19.583789062500017,44.04345703125003],[19.245019531249994,43.96503906250004],[19.495117187500057,43.642871093750045],[19.19433593749997,43.533300781250006],[19.164355468750017,43.53544921874999],[19.11279296874997,43.52773437500002],[19.080078125000057,43.51772460937502],[19.0283203125,43.53251953125002],[18.97421875,43.54233398437498],[18.95068359375,43.52666015624999],[19.036718750000034,43.35732421875002],[19.026660156250017,43.292431640624955],[18.97871093750001,43.28540039062503],[18.934667968750006,43.339453125000034],[18.85107421875003,43.34633789062502],[18.749218750000068,43.283544921875006],[18.67421875000008,43.230810546875006],[18.623632812500063,43.027685546875034],[18.488476562500068,43.01215820312498],[18.44384765625003,42.96845703125004],[18.46601562500001,42.777246093749994],[18.54589843750003,42.64160156249997],[18.436328125000017,42.559716796874994],[17.667578125000063,42.897119140624994],[17.585156250000068,42.93837890625005],[17.650488281250063,43.006591796875],[17.27382812500005,43.44575195312501],[16.300097656250017,44.12451171875],[16.10341796875008,44.52099609375006],[15.736621093750045,44.76582031250001],[15.788085937500057,45.17895507812497],[16.028320312500057,45.18959960937502],[16.29335937500005,45.00883789062496],[16.53066406250008,45.21669921875002],[16.918652343749983,45.27656249999998],[17.812792968750074,45.078125],[18.66259765625,45.07744140624999],[18.83642578125,44.883251953124955],[19.007128906250045,44.86918945312502]]]},"properties":{"name":"Bosnia and Herz.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.14794921875,56.142919921875],[28.284277343750006,56.055908203125],[29.375,55.938720703125],[29.353417968750023,55.784375],[29.412988281250023,55.724853515625],[29.482226562500017,55.6845703125],[29.63007812500001,55.751171875],[29.6845703125,55.7697265625],[29.744140625,55.77041015625],[29.82392578125001,55.7951171875],[29.881640625000017,55.832324218749996],[29.93701171875,55.845263671874996],[30.04267578125001,55.83642578125],[30.23359375000001,55.84521484375],[30.625585937500006,55.666259765625],[30.906835937500006,55.57001953125],[30.90058593750001,55.397412109375],[30.82099609375001,55.3302734375],[30.810546875,55.306982421875],[30.814453125,55.2787109375],[30.87744140625,55.2234375],[30.958886718750023,55.13759765625],[30.97773437500001,55.08779296875],[30.97773437500001,55.05048828125],[30.829882812500017,54.914990234375],[30.804492187500017,54.8609375],[30.791015625,54.806005859375],[30.798828125,54.783251953124996],[30.984179687500017,54.6958984375],[31.12128906250001,54.648486328124996],[31.152148437500017,54.625341796875],[31.074804687500006,54.491796875],[31.18476562500001,54.452978515625],[31.299121093750017,54.29169921875],[31.403613281250017,54.195947265625],[31.62841796875,54.111181640625],[31.7919921875,54.055908203125],[31.825976562500017,54.030712890625],[31.837792968750023,54.00078125],[31.825292968750006,53.935009765625],[31.783007812500017,53.85498046875],[31.754199218750017,53.81044921875],[31.82080078125,53.791943359375],[31.9921875,53.796875],[32.20039062500001,53.78125],[32.45097656250002,53.6533203125],[32.70429687500001,53.336328125],[32.64443359375002,53.32890625],[32.57802734375002,53.31240234375],[32.469335937500006,53.2703125],[32.14199218750002,53.091162109375],[31.849707031250006,53.106201171875],[31.668261718750017,53.200927734375],[31.417871093750023,53.196044921875],[31.38837890625001,53.184814453125],[31.364550781250017,53.138964843749996],[31.30292968750001,53.060888671875],[31.2587890625,53.01669921875],[31.29511718750001,52.989794921874996],[31.35302734375,52.933447265625],[31.442773437500023,52.86181640625],[31.53515625,52.7982421875],[31.564843750000023,52.759228515625],[31.585546875,52.532470703125],[31.57734375000001,52.312304687499996],[31.6015625,52.284814453125],[31.64990234375,52.26220703125],[31.690625,52.220654296875],[31.758593750000017,52.125830078125],[31.76337890625001,52.10107421875],[31.57373046875,52.10810546875],[31.345996093750017,52.10537109375],[31.21796875000001,52.050244140625],[30.98066406250001,52.046191406249996],[30.845703125,51.953076171875],[30.755273437500023,51.895166015625],[30.667285156250017,51.814111328125],[30.583886718750023,51.68896484375],[30.533007812500017,51.596337890624994],[30.56074218750001,51.531494140625],[30.602343750000017,51.471240234374996],[30.611718750000023,51.40634765625],[30.63251953125001,51.355419921875],[30.449511718750017,51.274316406249994],[30.160742187500006,51.477880859375],[29.346484375000017,51.382568359375],[29.10205078125,51.6275390625],[29.06074218750001,51.625439453125],[29.013085937500023,51.598925781249996],[28.97773437500001,51.57177734375],[28.927539062500017,51.562158203124994],[28.849511718750023,51.540185546874994],[28.73125,51.433398437499996],[28.690234375000017,51.438867187499994],[28.647753906250017,51.45654296875],[28.599023437500023,51.542626953124994],[28.532031250000017,51.562451171875],[27.85859375000001,51.5923828125],[27.7,51.477978515625],[27.689746093750017,51.572412109374994],[27.296289062500023,51.597412109375],[27.270117187500006,51.613574218749996],[27.141992187500023,51.75205078125],[27.074121093750023,51.76083984375],[26.95283203125001,51.75400390625],[26.7734375,51.770703125],[25.785742187500006,51.923828125],[24.361914062500006,51.867529296875],[24.280078125000017,51.774707031249996],[24.126855468750023,51.6646484375],[23.978320312500017,51.59130859375],[23.951171875,51.58505859375],[23.8642578125,51.623974609375],[23.79169921875001,51.637109375],[23.706835937500017,51.64130859375],[23.61376953125,51.525390625],[23.605273437500017,51.517919921875],[23.652441406250006,52.040380859375],[23.175097656250017,52.28662109375],[23.915429687500023,52.770263671875],[23.484667968750017,53.939794921875],[23.55908203125,53.91982421875],[23.733691406250017,53.912255859375],[24.191308593750023,53.950439453125],[24.236621093750017,53.919970703124996],[24.31796875,53.89296875],[24.620703125,53.979833984375],[24.768164062500006,53.974658203124996],[24.78925781250001,53.9982421875],[24.82568359375,54.118994140625],[24.869531250000023,54.145166015625],[25.04609375000001,54.133056640625],[25.111425781250006,54.154931640625],[25.179492187500017,54.2142578125],[25.46113281250001,54.292773437499996],[25.505664062500017,54.264941406249996],[25.52734375,54.215136718749996],[25.497363281250017,54.175244140625],[25.573046875000017,54.139892578125],[25.765234375,54.17978515625],[25.702539062500023,54.29296875],[25.61689453125001,54.310107421874996],[25.557519531250023,54.310693359375],[25.54736328125,54.331835937499996],[25.56757812500001,54.37705078125],[25.62031250000001,54.460400390625],[25.68515625,54.535791015625],[25.72480468750001,54.564257812499996],[25.73164062500001,54.590380859374996],[25.722460937500017,54.71787109375],[25.859277343750023,54.919287109375],[25.964453125,54.94716796875],[26.09296875000001,54.9623046875],[26.175195312500023,55.003271484375],[26.250781250000017,55.12451171875],[26.291796875000017,55.139599609375],[26.601171875,55.130175781249996],[26.6484375,55.20419921875],[26.775683593750017,55.273095703125],[26.760156250000023,55.293359375],[26.68125,55.306445312499996],[26.49531250000001,55.318017578125],[26.457617187500006,55.34248046875],[26.469531250000017,55.371923828125],[26.51923828125001,55.44814453125],[26.56660156250001,55.546484375],[26.5908203125,55.62265625],[26.593554687500017,55.667529296874996],[27.052539062500017,55.83056640625],[27.576757812500006,55.798779296875],[28.14794921875,56.142919921875]]]},"properties":{"name":"Belarus","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-87.8529296875,17.4228515625],[-87.92998046874996,17.283007812500017],[-87.826416015625,17.546289062499994],[-87.8529296875,17.4228515625]]],[[[-88.89404296875,15.890625],[-89.2328125,15.888671875],[-89.16147460937503,17.81484375],[-89.13354492187503,17.970800781249977],[-88.80634765624998,17.965527343749983],[-88.52299804687499,18.445898437500063],[-88.29565429687494,18.47241210937503],[-88.34926757812494,18.358837890624983],[-88.1302734375,18.350732421875023],[-88.08525390624999,18.226123046875045],[-88.27172851562494,17.60986328125],[-88.203466796875,17.5166015625],[-88.31342773437501,16.632763671874983],[-88.89404296875,15.890625]]]]},"properties":{"name":"Belize","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-64.73027343749999,32.29345703125],[-64.86284179687499,32.273876953125],[-64.66831054687499,32.38193359375],[-64.73027343749999,32.29345703125]]]},"properties":{"name":"Bermuda","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-58.15976562499999,-20.164648437500006],[-58.18017578125,-19.81787109375],[-59.09052734375,-19.286230468750006],[-60.00737304687499,-19.29755859375001],[-61.7568359375,-19.6453125],[-62.276318359375,-20.5625],[-62.27666015624999,-21.066015625],[-62.65097656249999,-22.233691406250003],[-62.84335937499999,-21.99726562500001],[-63.92167968749999,-22.028613281250003],[-63.97612304687499,-22.072558593750003],[-64.26640624999999,-22.603320312500003],[-64.30791015624999,-22.7953125],[-64.32529296874999,-22.82763671875],[-64.373974609375,-22.761035156250003],[-64.4455078125,-22.58535156250001],[-64.477734375,-22.4853515625],[-64.5236328125,-22.37158203125],[-64.60551757812499,-22.228808593750003],[-64.992626953125,-22.109667968750003],[-65.518798828125,-22.09453125],[-65.686181640625,-22.11025390625001],[-65.77104492187499,-22.099609375],[-65.86015624999999,-22.01972656250001],[-66.05859375,-21.879492187500006],[-66.098583984375,-21.835058593750006],[-66.17465820312499,-21.8056640625],[-66.220166015625,-21.802539062500003],[-66.24760742187499,-21.83046875],[-66.28212890625,-21.94746093750001],[-66.3224609375,-22.053125],[-66.365185546875,-22.11376953125],[-66.71171874999999,-22.21630859375],[-66.99111328125,-22.509863281250006],[-67.19487304687499,-22.82167968750001],[-67.362255859375,-22.85517578125001],[-67.57993164062499,-22.891699218750006],[-67.79443359375,-22.879492187500006],[-67.87944335937499,-22.82294921875001],[-67.88173828125,-22.49335937500001],[-68.18642578125,-21.61855468750001],[-68.197021484375,-21.30029296875],[-68.558251953125,-20.901953125],[-68.484326171875,-20.62841796875],[-68.74516601562499,-20.45859375],[-68.75932617187499,-20.115527343750003],[-68.560693359375,-19.967089843750003],[-68.559375,-19.90234375],[-68.578271484375,-19.856542968750006],[-68.69619140625,-19.74072265625],[-68.69829101562499,-19.72109375],[-68.57529296874999,-19.56015625],[-68.462890625,-19.43281250000001],[-68.470166015625,-19.409960937500003],[-68.49199218749999,-19.381933593750006],[-68.85795898437499,-19.093359375],[-68.96831054687499,-18.96796875000001],[-68.97885742187499,-18.81298828125],[-69.026806640625,-18.65625],[-69.09228515625,-18.28242187500001],[-69.145458984375,-18.14404296875],[-69.0939453125,-18.05048828125001],[-69.28232421874999,-17.96484375],[-69.31337890625,-17.943164062500003],[-69.5109375,-17.50605468750001],[-69.51108398437499,-17.5048828125],[-69.510986328125,-17.46035156250001],[-69.521923828125,-17.388964843750003],[-69.645703125,-17.24853515625],[-69.62485351562499,-17.2001953125],[-69.020703125,-16.6421875],[-69.03291015625,-16.47597656250001],[-68.8427734375,-16.337890625],[-69.21757812499999,-16.14912109375001],[-69.4208984375,-15.640625],[-69.17246093749999,-15.236621093750003],[-69.37470703125,-14.962988281250006],[-69.35947265624999,-14.7953125],[-68.87089843749999,-14.169726562500003],[-69.07412109375,-13.682812500000011],[-68.97861328124999,-12.880078125000011],[-68.68525390625,-12.501953125],[-69.57861328125,-10.951757812500006],[-69.228515625,-10.955664062500006],[-68.84833984375,-11.011132812500009],[-68.678369140625,-11.11279296875],[-68.39799804687499,-11.01875],[-68.0716796875,-10.703125],[-67.99169921875,-10.674414062500006],[-67.83500976562499,-10.662792968750011],[-67.72177734374999,-10.68310546875],[-67.416943359375,-10.389843750000011],[-66.575341796875,-9.89990234375],[-65.396142578125,-9.71240234375],[-65.298583984375,-10.146777343750003],[-65.31308593749999,-10.253027343750006],[-65.395458984375,-10.392285156250011],[-65.4369140625,-10.449023437500003],[-65.44711914062499,-10.507421875],[-65.33403320312499,-10.892773437500011],[-65.32377929687499,-11.024804687500009],[-65.389892578125,-11.246289062500011],[-65.1857421875,-11.74951171875],[-64.783447265625,-12.059375],[-64.42050781249999,-12.439746093750003],[-63.68857421874999,-12.47802734375],[-63.3466796875,-12.680078125],[-63.06748046874999,-12.669140625000011],[-62.76547851562499,-12.997265625000011],[-62.11801757812499,-13.159765625],[-62.09477539062499,-13.241992187500003],[-61.944726562499994,-13.40625],[-61.87412109374999,-13.470410156250011],[-61.789941406249994,-13.525585937500011],[-61.57568359375,-13.524804687500009],[-61.51157226562499,-13.541210937500011],[-61.41606445312499,-13.526562500000011],[-61.129150390625,-13.49853515625],[-61.07700195312499,-13.48974609375],[-60.506591796875,-13.78984375],[-60.372705078124994,-14.41875],[-60.273339843749994,-15.088769531250009],[-60.402001953124994,-15.0927734375],[-60.583203125,-15.098339843750011],[-60.53046875,-15.143164062500006],[-60.38046875,-15.318261718750009],[-60.242333984374994,-15.479589843750006],[-60.20664062499999,-15.901953125],[-60.18720703125,-16.132128906250003],[-60.17558593749999,-16.269335937500003],[-58.53793945312499,-16.328222656250006],[-58.49658203125,-16.32666015625],[-58.42368164062499,-16.307910156250003],[-58.37539062499999,-16.28359375],[-58.345605468749994,-16.284375],[-58.35039062499999,-16.490820312500006],[-58.470605468749994,-16.650195312500003],[-58.478125,-16.70068359375],[-58.45981445312499,-16.910742187500006],[-58.417382812499994,-17.08056640625],[-58.39599609375,-17.23427734375001],[-58.34775390624999,-17.28212890625001],[-57.99091796875,-17.51289062500001],[-57.905029296875,-17.532324218750006],[-57.832470703125,-17.512109375],[-57.78886718749999,-17.573046875],[-57.780175781249994,-17.67177734375001],[-57.66166992187499,-17.947363281250006],[-57.58647460937499,-18.12226562500001],[-57.49565429687499,-18.214648437500003],[-57.57402343749999,-18.279296875],[-57.725,-18.733203125],[-57.783105468749994,-18.91425781250001],[-57.716796875,-19.044042968750006],[-58.131494140624994,-19.74453125],[-57.860742187499994,-19.979589843750006],[-57.887597656249994,-20.02041015625001],[-57.96015625,-20.04072265625001],[-58.021142578124994,-20.05517578125],[-58.09375,-20.15107421875001],[-58.15976562499999,-20.164648437500006]]]},"properties":{"name":"Bolivia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-48.48588867187493,-27.76699218749998],[-48.554589843749994,-27.81220703125004],[-48.542187499999955,-27.57480468749999],[-48.41489257812495,-27.399609375],[-48.48588867187493,-27.76699218749998]]],[[[-48.584423828124955,-26.401562499999983],[-48.665771484375,-26.289648437500006],[-48.53974609374998,-26.170312500000023],[-48.584423828124955,-26.401562499999983]]],[[[-45.26025390624997,-23.889160156249986],[-45.451416015625,-23.895605468749977],[-45.30234375,-23.727539062500014],[-45.26025390624997,-23.889160156249986]]],[[[-44.12929687499994,-23.14189453124999],[-44.36015624999999,-23.17207031250001],[-44.24287109374998,-23.074121093750037],[-44.12929687499994,-23.14189453124999]]],[[[-38.90356445312497,-13.473437499999974],[-38.97758789062496,-13.523535156249963],[-39.02216796874998,-13.445605468749989],[-38.907128906249994,-13.401074218749983],[-38.90356445312497,-13.473437499999974]]],[[[-38.743847656249955,-13.097070312500037],[-38.668115234374966,-12.880175781249989],[-38.601171875,-12.99257812499998],[-38.743847656249955,-13.097070312500037]]],[[[-44.49931640625002,-2.939648437499983],[-44.597753906250006,-3.037597656249943],[-44.4814453125,-2.717578125000031],[-44.49931640625002,-2.939648437499983]]],[[[-44.88310546874996,-1.317871093749986],[-45.020849609375034,-1.372363281249974],[-44.978662109374966,-1.267285156249983],[-44.88310546874996,-1.317871093749986]]],[[[-51.83251953124997,-1.433789062499969],[-51.938378906249966,-1.452636718749986],[-51.680029296875006,-1.086132812500026],[-51.546044921874966,-0.649609375],[-51.25400390624998,-0.54140625],[-51.16074218749998,-0.666699218750011],[-51.27631835937498,-1.02177734374996],[-51.83251953124997,-1.433789062499969]]],[[[-49.62866210937497,-0.229199218749969],[-49.11699218749999,-0.163574218750014],[-48.39267578124995,-0.29736328125],[-48.83359375,-1.390039062500023],[-49.038476562499994,-1.5140625],[-49.17270507812498,-1.41259765625],[-49.233984375000034,-1.59951171874998],[-49.50664062499999,-1.511621093750023],[-49.587890625,-1.712402343749972],[-49.805126953124955,-1.790234375000026],[-50.06572265625002,-1.703808593749997],[-50.50761718749999,-1.787988281250009],[-50.759765625,-1.240234374999972],[-50.72949218749997,-1.126757812499946],[-50.57695312499999,-1.103125],[-50.709619140624994,-1.07773437499999],[-50.796093749999955,-0.90625],[-50.6455078125,-0.27285156249998],[-50.24824218749998,-0.11640625],[-49.62866210937497,-0.229199218749969]]],[[[-50.65288085937499,-0.131640624999989],[-50.926367187500034,-0.327343749999983],[-51.03808593749994,-0.225878906250003],[-50.84218750000002,-0.050195312500009],[-50.65288085937499,-0.131640624999989]]],[[[-49.44389648437499,-0.112402343749977],[-49.83007812499997,-0.093896484375023],[-49.50346679687496,0.083691406250011],[-49.37231445312497,0.001074218749963],[-49.44389648437499,-0.112402343749977]]],[[[-49.73823242187498,0.26816406250002],[-49.917089843750006,-0.023193359375014],[-50.339453125,0.043359375000051],[-50.27265624999998,0.231738281249974],[-49.73823242187498,0.26816406250002]]],[[[-50.42612304687498,0.139257812500048],[-50.44394531249998,-0.007666015624949],[-50.623925781249966,0.054394531249983],[-50.372753906249955,0.590869140625031],[-50.33227539062497,0.259033203125028],[-50.42612304687498,0.139257812500048]]],[[[-50.152929687500006,0.393017578125054],[-50.26132812499998,0.359179687500003],[-50.281689453124955,0.51650390624998],[-50.05883789062503,0.638037109374963],[-50.152929687500006,0.393017578125054]]],[[[-50.29897460937502,1.93852539062496],[-50.45610351562496,1.910498046875034],[-50.49101562499996,2.128613281249969],[-50.34199218749998,2.14174804687498],[-50.29897460937502,1.93852539062496]]],[[[-59.69970703125,4.353515625],[-59.73857421874993,4.226757812500026],[-59.62021484374998,4.023144531250026],[-59.557763671874966,3.960009765625031],[-59.551123046875034,3.933544921874969],[-59.854394531249994,3.5875],[-59.99433593749998,2.689990234375031],[-59.88964843749997,2.362939453125009],[-59.75522460937495,2.27412109375004],[-59.74350585937498,2.12163085937496],[-59.75175781249996,1.962402343750028],[-59.75620117187498,1.900634765624972],[-59.666601562500006,1.746289062499969],[-59.53569335937499,1.7],[-59.23120117187494,1.376025390625031],[-58.82177734374994,1.201220703125031],[-58.787207031250006,1.208496093750014],[-58.73032226562498,1.247509765625054],[-58.68461914062499,1.28105468749996],[-58.511865234374966,1.284667968749986],[-58.506054687499926,1.438671875000011],[-58.39580078124993,1.481738281249989],[-58.38037109375,1.530224609375011],[-58.34067382812498,1.587548828125051],[-58.03466796875,1.520263671875014],[-57.9828125,1.648437500000014],[-57.87343750000002,1.667285156250045],[-57.79565429687497,1.7],[-57.59443359375001,1.704101562499986],[-57.54575195312495,1.726074218750028],[-57.31748046874998,1.963476562499991],[-57.27558593749998,1.959228515625014],[-57.189599609374966,1.981591796875037],[-57.11889648437494,2.013964843749974],[-57.09267578125002,2.005810546874997],[-57.03759765625,1.936474609374997],[-56.96953124999999,1.91640625],[-56.48281249999994,1.942138671874986],[-56.019921874999966,1.842236328124983],[-55.96333007812498,1.85708007812498],[-55.929638671874955,1.8875],[-55.92163085937503,1.976660156250006],[-55.91533203124999,2.039550781250028],[-55.96196289062496,2.09511718749998],[-56.02006835937499,2.15815429687504],[-56.073632812499994,2.236767578124969],[-56.13769531249997,2.259033203124986],[-56.12939453124997,2.299511718749969],[-56.08779296875002,2.341308593750043],[-56.045117187499955,2.364404296875037],[-56.02036132812498,2.392773437500054],[-55.993505859375006,2.497509765624983],[-55.9755859375,2.515966796875006],[-55.957470703124955,2.52045898437504],[-55.730566406250006,2.406152343750023],[-55.385351562500006,2.440625],[-55.34399414062503,2.488769531249972],[-55.28603515625002,2.49965820312498],[-55.18769531249998,2.547509765625037],[-55.114111328125006,2.539208984375037],[-55.07031249999994,2.548339843750028],[-55.005810546874955,2.592968749999983],[-54.97866210937502,2.597656250000043],[-54.968408203124966,2.548339843750028],[-54.92656249999999,2.497363281250045],[-54.876074218750006,2.450390624999969],[-54.72221679687499,2.441650390624972],[-54.69741210937502,2.359814453124997],[-54.66186523437497,2.327539062499994],[-54.61625976562499,2.326757812500006],[-54.59194335937502,2.313769531250031],[-54.55048828125001,2.293066406249991],[-54.51508789062498,2.245458984374963],[-54.43310546875,2.207519531250057],[-54.13007812499998,2.121044921875026],[-53.76777343749998,2.354833984375048],[-52.90346679687502,2.211523437499977],[-52.58300781250003,2.528906249999977],[-52.327880859375,3.18173828125002],[-51.65253906249998,4.061279296874972],[-51.54707031250001,4.31088867187502],[-51.219921874999955,4.093603515624991],[-50.71440429687502,2.134033203125],[-50.458886718749994,1.829589843749972],[-49.957128906250006,1.65986328125004],[-49.898876953124955,1.16298828124998],[-50.29443359374997,0.835742187500003],[-50.755078124999955,0.222558593749966],[-51.28291015625001,-0.085205078125028],[-51.98081054687498,-1.367968749999974],[-52.22924804687497,-1.3625],[-52.664160156250034,-1.551757812500028],[-51.94755859374996,-1.586718749999946],[-50.89492187500002,-0.937597656249963],[-50.690039062500006,-1.761718749999986],[-50.40322265625002,-2.015527343750009],[-49.999218749999955,-1.831835937499974],[-49.71953125000002,-1.926367187499963],[-49.31367187500001,-1.731738281250003],[-49.63652343749996,-2.656933593750026],[-49.45751953125,-2.504589843749983],[-49.21103515624998,-1.916503906249986],[-48.99130859374998,-1.829785156249997],[-48.71000976562496,-1.487695312500023],[-48.46293945312499,-1.613964843749997],[-48.349804687499926,-1.482128906249955],[-48.46806640624996,-1.393847656250003],[-48.44980468749998,-1.145507812499943],[-48.11508789062498,-0.7375],[-47.557324218749955,-0.669921874999957],[-47.418652343749955,-0.765917968749974],[-47.39809570312502,-0.626660156250026],[-45.45859374999995,-1.35625],[-45.32915039062496,-1.71728515625],[-45.07636718749998,-1.466406249999949],[-44.72114257812498,-1.733496093750006],[-44.778515624999955,-1.798828125],[-44.651269531249966,-1.745800781250026],[-44.537792968749955,-2.052734374999943],[-44.75634765624997,-2.265527343749952],[-44.66240234375002,-2.373242187499955],[-44.435449218749966,-2.168066406249991],[-44.38183593749997,-2.365527343749989],[-44.52011718749998,-2.40546875000004],[-44.589013671874994,-2.573437499999983],[-44.72304687500002,-3.204785156249997],[-44.43754882812496,-2.944433593749977],[-44.228613281250006,-2.471289062499949],[-44.105566406250006,-2.493457031250031],[-44.19267578124999,-2.809570312499943],[-43.93291015624999,-2.583496093749986],[-43.45512695312499,-2.502050781250006],[-43.38007812499998,-2.376074218750006],[-42.93671874999998,-2.465039062500011],[-42.24960937499998,-2.7919921875],[-41.876171874999926,-2.746582031249986],[-41.479931640624955,-2.916503906249972],[-40.474560546874926,-2.795605468750026],[-39.96469726562498,-2.861523437499955],[-38.475781249999955,-3.717480468749997],[-38.04882812500003,-4.216406250000034],[-37.626318359375006,-4.592089843750003],[-37.30146484375001,-4.713085937499969],[-37.174658203125006,-4.912402343749974],[-36.590722656249966,-5.097558593749952],[-35.549414062500006,-5.129394531249957],[-35.39257812499994,-5.250878906250009],[-34.833886718749994,-7.024414062500014],[-34.83466796874998,-7.97148437499996],[-35.34086914062499,-9.230664062499983],[-35.76396484374993,-9.702539062500023],[-35.890820312499926,-9.687011718749957],[-35.88544921875001,-9.84765625],[-36.39833984374994,-10.484082031249983],[-36.768310546875,-10.671679687500017],[-37.18281249999998,-11.06845703125002],[-37.35600585937502,-11.403906249999977],[-37.35922851562495,-11.252539062499963],[-37.68872070312503,-12.1],[-38.019238281249955,-12.591308593750028],[-38.401757812499994,-12.966210937500023],[-38.69096679687502,-12.623925781250009],[-38.85175781250001,-12.790136718750034],[-38.76372070312502,-12.9072265625],[-38.835302734375034,-13.147167968750026],[-39.030908203124994,-13.365136718750023],[-39.08935546875,-13.588183593749989],[-38.988623046875006,-13.61503906249996],[-39.04814453124996,-14.043945312500028],[-38.94233398437498,-14.030664062499994],[-39.05957031249997,-14.654785156249957],[-38.88061523437503,-15.864257812499972],[-39.20288085937503,-17.178125],[-39.154003906249926,-17.70390625000003],[-39.650781249999966,-18.252343750000037],[-39.78330078124998,-19.571777343749986],[-40.001367187499994,-19.74199218750003],[-40.39594726562501,-20.56943359375002],[-40.78925781250001,-20.90605468750003],[-40.954541015624926,-21.237890624999963],[-41.04726562499999,-21.505664062499974],[-41.00029296875002,-21.99902343750003],[-41.70551757812498,-22.30966796874999],[-41.980419921874955,-22.580664062499963],[-42.042382812499966,-22.947070312500003],[-42.95830078124996,-22.96708984374999],[-43.154296875,-22.725195312500006],[-43.22416992187502,-22.991210937500014],[-43.898828124999966,-23.10146484375001],[-43.97382812499998,-23.057324218749983],[-43.675976562499955,-23.00947265625001],[-43.86616210937498,-22.910546875000023],[-44.63725585937496,-23.05546875],[-44.67382812499994,-23.206640625000034],[-44.56967773437495,-23.27402343749999],[-45.32539062499998,-23.59970703124999],[-45.464306640624955,-23.802539062500017],[-45.97207031250002,-23.795507812500006],[-46.86728515624998,-24.236328125000014],[-47.989160156249994,-25.03574218749999],[-47.92939453124998,-25.16826171874999],[-48.20273437499998,-25.41650390625003],[-48.18593749999994,-25.309863281249974],[-48.402490234374994,-25.27207031249999],[-48.47612304687499,-25.44296875],[-48.73173828124993,-25.36875],[-48.6921875,-25.49150390625003],[-48.40117187500002,-25.59736328125001],[-48.665771484375,-25.844335937499963],[-48.576318359374994,-25.935449218749966],[-48.61943359374996,-26.17939453125001],[-48.74829101562503,-26.26865234374999],[-48.55415039062498,-27.195996093749997],[-48.62080078124998,-28.075585937499966],[-48.799658203125006,-28.575292968749977],[-49.27128906249999,-28.87119140625005],[-49.745996093749966,-29.363183593749994],[-50.299511718749955,-30.42578125000003],[-50.92138671874997,-31.25839843750002],[-52.039208984374994,-32.11484374999996],[-52.063232421875,-31.830371093750017],[-51.68066406249994,-31.774609375000026],[-51.272167968749955,-31.476953125000037],[-51.16142578124996,-31.11884765625001],[-50.980078125000034,-31.09423828124997],[-50.94082031249994,-30.903710937499966],[-50.68930664062495,-30.70419921874999],[-50.71630859374994,-30.425976562499983],[-50.58193359375002,-30.438867187500037],[-50.56352539062499,-30.25361328125004],[-51.02495117187493,-30.36865234375003],[-51.29804687499998,-30.03486328124997],[-51.15727539062499,-30.364257812500014],[-51.283056640625034,-30.751562499999963],[-51.35908203124998,-30.674511718749983],[-51.506298828124955,-31.104492187500014],[-51.97246093749999,-31.383789062499986],[-52.19355468749998,-31.885546874999974],[-52.12739257812501,-32.1677734375],[-52.652246093749994,-33.137792968750006],[-53.37060546874997,-33.74218750000003],[-53.39755859374995,-33.737304687500014],[-53.46357421875001,-33.70986328125002],[-53.531347656250034,-33.65546875000004],[-53.531347656250034,-33.1708984375],[-53.511865234374966,-33.10869140625003],[-53.482861328124926,-33.068554687500026],[-53.39521484375001,-33.01035156249998],[-53.31010742187499,-32.927050781249974],[-53.21406249999998,-32.82109375],[-53.12558593749998,-32.73671875],[-53.15727539062496,-32.680078125],[-53.601708984374994,-32.40302734374997],[-53.76171875,-32.05683593749997],[-53.920605468749926,-31.95234375],[-54.220556640625034,-31.855175781249997],[-54.58764648437503,-31.48515625000003],[-55.036035156249994,-31.27900390625004],[-55.091162109375034,-31.31396484374997],[-55.173535156249926,-31.279589843749974],[-55.557324218749955,-30.8759765625],[-55.60302734375003,-30.85078125000001],[-55.62714843749998,-30.858105468749997],[-55.650488281250034,-30.89208984375],[-55.66523437500001,-30.92490234375002],[-55.807763671874994,-31.036718749999977],[-55.87368164062502,-31.069628906250017],[-55.95200195312498,-31.08085937499999],[-56.0046875,-31.079199218750006],[-56.01845703125002,-30.991894531249983],[-55.998974609374955,-30.837207031250003],[-56.4072265625,-30.44746093750001],[-56.83271484374998,-30.107226562499974],[-57.120507812499994,-30.144433593749994],[-57.21445312499995,-30.283398437499983],[-57.55229492187496,-30.261230468749986],[-57.60888671875003,-30.187792968750045],[-57.563867187499994,-30.139941406249974],[-57.40522460937501,-30.03388671875004],[-57.22465820312499,-29.782128906249994],[-56.938623046874994,-29.594824218750034],[-55.890527343749994,-28.370019531249994],[-55.68725585937497,-28.38164062499996],[-55.72548828125002,-28.20410156250003],[-55.10151367187501,-27.866796874999963],[-54.82910156250003,-27.55058593750003],[-54.32700195312495,-27.423535156249997],[-53.83818359375002,-27.121093750000014],[-53.668554687500006,-26.288183593749977],[-53.89116210937499,-25.66884765625001],[-54.15458984374999,-25.523046874999963],[-54.44394531249998,-25.625],[-54.615869140624994,-25.576074218750023],[-54.61054687499998,-25.432714843750034],[-54.47314453124997,-25.22021484375],[-54.43623046875001,-25.12128906250001],[-54.281005859375,-24.30605468750001],[-54.31826171874994,-24.128125],[-54.26689453124996,-24.06582031250001],[-54.241796875,-24.047265624999966],[-54.44023437500002,-23.90175781249998],[-54.62548828125,-23.8125],[-54.98266601562494,-23.974511718749966],[-55.081884765625006,-23.997656249999977],[-55.1943359375,-24.017480468750023],[-55.28691406249993,-24.00429687499999],[-55.366308593750034,-23.99101562499996],[-55.41591796875002,-23.95136718749997],[-55.4423828125,-23.86533203125002],[-55.4423828125,-23.792578125000034],[-55.458886718749966,-23.686718750000054],[-55.51845703124994,-23.627246093750017],[-55.53828124999998,-23.580957031249994],[-55.61767578125,-22.67148437499999],[-55.74663085937499,-22.51269531249997],[-55.753271484375006,-22.410156250000043],[-55.84916992187499,-22.307617187500014],[-55.991406249999926,-22.28115234375005],[-56.18984374999994,-22.28115234375005],[-56.246044921874926,-22.26464843749997],[-56.39487304687498,-22.092675781250023],[-56.44780273437502,-22.07617187500003],[-56.77519531249999,-22.261328125],[-57.955908203125034,-22.109179687500003],[-57.94267578124999,-21.79833984375],[-57.830224609374994,-20.99794921875001],[-57.91513671874998,-20.690332031249966],[-57.97905273437493,-20.65732421874999],[-58.00224609374996,-20.465429687499977],[-58.02539062499997,-20.41582031249999],[-58.05844726562495,-20.38613281249998],[-58.091503906249926,-20.33320312500004],[-58.124609375000034,-20.293457031250014],[-58.13779296874995,-20.237304687500043],[-58.15976562499998,-20.164648437499977],[-58.09375,-20.15107421874997],[-58.021142578124994,-20.05517578124997],[-57.96015625000001,-20.04072265625004],[-57.887597656249966,-20.020410156249994],[-57.860742187499994,-19.97958984375002],[-58.029931640624994,-19.83271484375004],[-58.131494140624994,-19.74453125],[-57.71679687499997,-19.044042968750034],[-57.73085937499999,-18.91718750000004],[-57.783105468749994,-18.91425781249997],[-57.725,-18.73320312500003],[-57.57402343749993,-18.279296875000014],[-57.49565429687496,-18.21464843749999],[-57.58647460937499,-18.122265625],[-57.66166992187493,-17.94736328124999],[-57.78017578125002,-17.67177734374998],[-57.78886718750002,-17.573046875000017],[-57.83247070312501,-17.512109375000037],[-57.90502929687497,-17.53232421874999],[-57.990917968749955,-17.512890625000026],[-58.20556640625,-17.363085937499974],[-58.347753906250006,-17.282128906249994],[-58.39599609374997,-17.234277343750023],[-58.417382812499994,-17.08056640624997],[-58.459814453125006,-16.910742187500006],[-58.478125,-16.70068359375003],[-58.470605468749994,-16.650195312500045],[-58.35039062500002,-16.49082031249999],[-58.34560546875002,-16.284375],[-58.375390624999966,-16.283593749999966],[-58.423681640625034,-16.30791015625003],[-58.49658203124994,-16.32666015625003],[-58.537939453125034,-16.32822265624999],[-60.17558593749996,-16.26933593749999],[-60.187207031249955,-16.132128906250017],[-60.206640625,-15.90195312500002],[-60.242333984374994,-15.479589843750034],[-60.38046874999998,-15.318261718750023],[-60.53046874999998,-15.143164062499977],[-60.58320312499998,-15.098339843749983],[-60.273339843749994,-15.088769531249994],[-60.372705078124994,-14.41875],[-60.506591796875,-13.78984375],[-61.077001953125034,-13.489746093750014],[-61.129150390625,-13.498535156250028],[-61.41606445312502,-13.526562499999969],[-61.511572265625006,-13.541210937500011],[-61.789941406249966,-13.525585937500026],[-61.87412109374998,-13.470410156249983],[-61.944726562499966,-13.40625],[-62.09477539062499,-13.241992187499989],[-62.118017578125006,-13.15976562500002],[-62.765478515625034,-12.99726562500004],[-63.01518554687502,-12.80556640624998],[-63.067480468750006,-12.669140624999983],[-63.34667968749994,-12.68007812499999],[-63.68857421874998,-12.478027343749957],[-64.42050781249995,-12.439746093749974],[-64.783447265625,-12.059375],[-65.18574218749998,-11.749511718749957],[-65.389892578125,-11.246289062500011],[-65.33403320312499,-10.892773437500026],[-65.44711914062503,-10.507421875000034],[-65.4369140625,-10.449023437499946],[-65.39545898437498,-10.392285156250026],[-65.31308593749998,-10.253027343749991],[-65.29858398437497,-10.146777343750017],[-65.39614257812494,-9.712402343749986],[-66.57534179687502,-9.899902343749986],[-67.41694335937495,-10.389843749999969],[-67.72177734374998,-10.683105468749943],[-67.83500976562496,-10.662792968749983],[-67.99169921875,-10.674414062499949],[-68.07167968749994,-10.703125],[-68.39799804687499,-11.01875],[-68.678369140625,-11.11279296875],[-68.84833984374998,-11.01113281249998],[-69.228515625,-10.955664062499963],[-69.46254882812497,-10.948144531250023],[-69.57861328125,-10.951757812499963],[-69.67402343749998,-10.9541015625],[-69.83979492187501,-10.93339843749996],[-69.96035156249997,-10.92988281250004],[-70.06630859374997,-10.982421875],[-70.22006835937503,-11.04765625],[-70.29038085937498,-11.064257812499974],[-70.34199218750001,-11.066699218750017],[-70.39228515624995,-11.058593749999972],[-70.45087890624998,-11.024804687500009],[-70.53325195312496,-10.946875],[-70.59653320312498,-10.976855468750017],[-70.642333984375,-11.010253906249986],[-70.59916992187499,-9.620507812500009],[-70.54111328124998,-9.4375],[-70.60791015625,-9.463671875000031],[-70.63691406249995,-9.478222656249969],[-71.041748046875,-9.81875],[-71.11528320312499,-9.852441406250009],[-71.33940429687499,-9.988574218750031],[-72.18159179687495,-10.003710937500003],[-72.37905273437497,-9.51015625],[-73.20942382812493,-9.411425781249946],[-73.08984375,-9.26572265625002],[-72.970361328125,-9.120117187500028],[-72.97402343750002,-8.9931640625],[-73.07050781249995,-8.8828125],[-73.203125,-8.719335937499991],[-73.30244140624995,-8.654003906250011],[-73.36040039062496,-8.479296875000031],[-73.39814453125001,-8.458984374999986],[-73.54912109374993,-8.34580078125002],[-73.73203125,-7.875390625],[-73.72041015624993,-7.782519531250017],[-73.76689453124999,-7.753515624999963],[-73.82207031249996,-7.738964843750026],[-73.89462890624998,-7.654785156250014],[-73.946875,-7.611230468750023],[-73.98173828124996,-7.58505859375002],[-74.00205078125003,-7.556054687499966],[-73.98173828124996,-7.535742187500006],[-73.95849609374994,-7.506640625000031],[-73.96430664062498,-7.378906250000028],[-73.74946289062498,-7.335351562500037],[-73.72041015624993,-7.309277343749969],[-73.758203125,-7.172753906249952],[-73.79301757812499,-7.135058593750003],[-73.75810546874999,-6.90576171875],[-73.137353515625,-6.4658203125],[-73.23554687500001,-6.098437500000017],[-73.209375,-6.028710937500023],[-73.16289062499996,-5.933398437499974],[-72.97988281249997,-5.634863281249991],[-72.88706054687498,-5.122753906250026],[-72.83193359374994,-5.09375],[-72.69873046874997,-5.067187499999989],[-72.60834960937495,-5.009570312499974],[-72.46899414062497,-4.901269531250023],[-72.35283203124993,-4.786035156249994],[-72.25678710937501,-4.74892578124998],[-71.8447265625,-4.504394531249986],[-70.97368164062499,-4.350488281249994],[-70.86601562499999,-4.229589843749963],[-70.79951171874995,-4.173339843749957],[-70.72158203124997,-4.15888671875004],[-70.53066406249997,-4.167578125000034],[-70.40463867187498,-4.150097656250026],[-70.34365234375,-4.193652343750017],[-70.31689453124994,-4.246972656250037],[-70.23916015625002,-4.30117187499998],[-70.12880859375,-4.286621093749943],[-70.05332031249998,-4.333105468750006],[-70.00395507812496,-4.327246093749963],[-69.97202148437503,-4.30117187499998],[-69.96591796875003,-4.2359375],[-69.94819335937498,-4.200585937500009],[-69.66904296875003,-2.667675781249997],[-69.40024414062498,-1.194921874999977],[-69.63398437500001,-0.50927734375],[-70.07050781249993,-0.13886718750004],[-70.05390624999993,0.578613281250028],[-69.47211914062498,0.72993164062504],[-69.15332031249994,0.65878906250002],[-69.31181640624999,1.050488281249969],[-69.85214843750003,1.05952148437504],[-69.84858398437493,1.708740234375043],[-68.17656249999999,1.719824218749991],[-68.25595703125,1.845507812500017],[-68.19379882812495,1.987011718749983],[-67.93623046874998,1.748486328124969],[-67.40043945312499,2.116699218750028],[-67.11923828124998,1.703613281249986],[-67.082275390625,1.185400390625006],[-66.87602539062499,1.223046875000037],[-66.34711914062498,0.7671875],[-66.06005859375003,0.78535156250004],[-65.68144531249999,0.983447265624989],[-65.52299804687493,0.843408203124966],[-65.55605468750002,0.687988281250014],[-65.47338867187497,0.691259765624977],[-65.10375976562497,1.108105468749983],[-64.20502929687493,1.52949218750004],[-64.00849609374995,1.931591796874969],[-63.43251953124994,2.155566406250045],[-63.389257812500006,2.411914062500045],[-64.04658203124998,2.502392578124997],[-64.22109375000002,3.587402343749972],[-64.66899414062496,4.01181640625002],[-64.788671875,4.276025390625023],[-64.57636718750001,4.139892578125],[-64.19248046874995,4.126855468750009],[-64.02148437500003,3.929101562500051],[-63.33867187500002,3.943896484375045],[-62.85698242187502,3.593457031249969],[-62.71210937499998,4.01791992187502],[-62.41064453124994,4.156738281249972],[-62.153125,4.098388671874986],[-61.82084960937496,4.197021484375],[-61.28007812500002,4.516894531249974],[-61.00283203125002,4.535253906249991],[-60.603857421875006,4.94936523437498],[-60.671972656250034,5.164355468749989],[-60.71196289062499,5.191552734375023],[-60.742138671874926,5.202050781250037],[-60.6513671875,5.221142578125011],[-60.45952148437499,5.188085937500034],[-60.40878906249998,5.21015625],[-60.33520507812497,5.199316406250006],[-60.241650390624926,5.257958984374966],[-60.14204101562498,5.238818359374974],[-59.990673828124955,5.082861328124991],[-60.14863281249998,4.533251953125031],[-59.69970703125,4.353515625]]]]},"properties":{"name":"Brazil","childNum":17}},{"geometry":{"type":"Polygon","coordinates":[[[-59.493310546874994,13.081982421874997],[-59.611328125,13.102099609374989],[-59.6466796875,13.303125],[-59.427636718749994,13.152783203124997],[-59.493310546874994,13.081982421874997]]]},"properties":{"name":"Barbados","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[115.02675781250005,4.899707031249989],[115.1400390625,4.899755859374991],[115.290625,4.352587890624989],[115.10703125000006,4.390429687499974],[115.02675781250005,4.899707031249989]]],[[[115.02675781250005,4.899707031249989],[114.74667968750006,4.718066406250017],[114.84023437500005,4.393212890625009],[114.65410156250007,4.037646484375045],[114.0638671875,4.592675781249966],[114.42441406250006,4.660400390625],[114.99541015625002,5.022363281250023],[115.02675781250005,4.899707031249989]]]]},"properties":{"name":"Brunei","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[91.63193359375003,27.759960937499997],[91.5947265625,27.557666015624996],[91.74306640625002,27.442529296874994],[91.85126953125001,27.438623046874994],[91.95097656249999,27.458300781249996],[91.99082031250003,27.4501953125],[92.044921875,27.364697265624997],[92.08339843750002,27.290625],[92.03115234375002,27.214306640624997],[92.00253906250003,27.147363281249994],[91.99228515625003,27.099902343749996],[91.99863281250003,27.079296875],[92.03085937500003,27.040820312499996],[92.06816406249999,26.9751953125],[92.07343750000001,26.91484375],[92.04970703125002,26.874853515625],[91.99833984374999,26.85498046875],[91.84208984374999,26.852978515624997],[91.67158203125001,26.802001953125],[91.517578125,26.807324218749997],[91.45585937499999,26.866894531249997],[91.4267578125,26.867089843749994],[91.28652343750002,26.789941406249994],[90.73964843750002,26.771679687499997],[90.34589843750001,26.890332031249997],[90.2060546875,26.847509765625],[90.12294921875002,26.754589843749997],[89.94316406249999,26.723925781249996],[89.76386718750001,26.7015625],[89.60996093750003,26.719433593749997],[89.58613281250001,26.778955078124994],[89.33212890625003,26.8486328125],[89.14824218749999,26.816162109375],[89.04091796875002,26.865039062499996],[88.85761718750001,26.961474609374996],[88.73876953125,27.175585937499996],[88.76035156250003,27.218115234375],[88.88164062499999,27.2974609375],[88.89140624999999,27.316064453124994],[88.94755859374999,27.464013671874994],[89.48066406250001,28.059960937499994],[89.53691406249999,28.107421875],[89.65273437500002,28.15830078125],[89.74980468749999,28.188183593749997],[89.81689453125,28.256298828124997],[89.89785156250002,28.294140625],[89.98105468750003,28.311181640624994],[90.34824218750003,28.243945312499996],[90.36298828125001,28.216503906249997],[90.33310546875003,28.093994140625],[90.35273437500001,28.080224609374994],[90.47734374999999,28.070849609374996],[90.63007812500001,28.078564453124997],[90.71572265625002,28.071728515624997],[91.02080078124999,27.970068359375],[91.07773437500003,27.974462890625],[91.22587890624999,28.071240234374997],[91.27304687500003,28.078369140625],[91.30683593750001,28.064013671874996],[91.36757812500002,28.021630859374994],[91.64189453124999,27.923242187499994],[91.63193359375003,27.759960937499997]]]},"properties":{"name":"Bhutan","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[25.2587890625,-17.793554687500006],[25.242285156250006,-17.969042968750003],[25.939355468750023,-18.93867187500001],[26.168066406250006,-19.53828125000001],[27.17822265625,-20.10097656250001],[27.28076171875,-20.47871093750001],[27.679296875,-20.503027343750006],[27.66943359375,-21.064257812500003],[28.014062500000023,-21.55419921875],[29.02558593750001,-21.796875],[29.042382812500023,-22.018359375],[29.237207031250023,-22.07949218750001],[29.315234375000017,-22.15771484375],[29.36484375,-22.193945312500006],[29.1298828125,-22.21328125],[29.013476562500017,-22.278417968750006],[28.94580078125,-22.395117187500006],[28.83984375,-22.480859375],[28.21015625000001,-22.693652343750003],[27.812597656250006,-23.108007812500006],[27.7685546875,-23.14892578125],[27.085546875,-23.577929687500003],[26.835058593750006,-24.240820312500006],[26.617773437500006,-24.3955078125],[26.451757812500006,-24.58271484375001],[26.39716796875001,-24.613574218750003],[26.130859375,-24.671484375],[26.031835937500006,-24.702441406250003],[25.912109375,-24.74746093750001],[25.518164062500006,-25.66279296875001],[25.21337890625,-25.75625],[24.33056640625,-25.74287109375001],[24.19296875,-25.632910156250006],[23.969531250000017,-25.626074218750006],[23.89375,-25.600878906250003],[23.389257812500006,-25.29140625],[23.148730468750017,-25.288671875],[22.878808593750023,-25.45791015625001],[22.59765625,-26.13271484375001],[22.548632812500017,-26.17841796875001],[22.47089843750001,-26.219042968750003],[22.217578125000017,-26.38886718750001],[22.090917968750006,-26.580175781250006],[22.01093750000001,-26.635839843750006],[21.78828125000001,-26.710058593750006],[21.738085937500017,-26.80683593750001],[21.694726562500023,-26.840917968750006],[20.73984375,-26.84882812500001],[20.641406250000017,-26.7421875],[20.79316406250001,-25.915625],[20.4306640625,-25.147070312500006],[19.98046875,-24.77675781250001],[19.977343750000017,-22.00019531250001],[20.9794921875,-21.9619140625],[20.97412109375,-18.31884765625],[23.219335937500006,-17.99970703125001],[23.599707031250006,-18.4599609375],[24.243945312500017,-18.0234375],[24.530566406250017,-18.052734375],[24.909082031250023,-17.821386718750006],[25.2587890625,-17.793554687500006]]]},"properties":{"name":"Botswana","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[22.86005859375001,10.919677734375],[23.646289062500017,9.822900390624994],[23.62265625,9.340625],[23.46826171875,9.11474609375],[23.53730468750001,8.815820312499994],[24.147363281250023,8.665625],[24.291406250000023,8.29140625],[24.853320312500017,8.137548828124991],[25.20039062500001,7.807910156249989],[25.18134765625001,7.557226562499991],[25.27890625,7.427490234375],[26.36181640625,6.635302734374989],[26.30859375,6.455322265625],[26.514257812500006,6.069238281249994],[27.143945312500023,5.722949218749989],[27.4033203125,5.109179687499989],[27.071875,5.199755859374989],[26.822070312500017,5.062402343749994],[25.52509765625001,5.31210937499999],[25.065234375000017,4.967431640624994],[24.31982421875,4.994140625],[23.41718750000001,4.663134765624989],[22.864550781250017,4.723876953125],[22.422167968750017,4.134960937499997],[20.55810546875,4.462695312499989],[20.226367187500017,4.829638671874989],[19.806542968750023,5.089306640624997],[19.5009765625,5.127490234374989],[19.06855468750001,4.891406249999989],[18.594140625000023,4.346240234374989],[18.6103515625,3.478417968749994],[18.474414062500017,3.622998046874997],[18.160937500000017,3.499804687499989],[17.491601562500023,3.687304687499989],[16.610742187500023,3.50537109375],[16.468554687500017,2.831738281249997],[16.183398437500017,2.270068359374989],[16.0634765625,2.90859375],[15.128710937500017,3.826904296875],[15.063574218750006,4.284863281249997],[14.73125,4.602392578124991],[14.56298828125,5.279931640624994],[14.616894531250011,5.865136718749994],[14.43115234375,6.038720703124994],[14.7392578125,6.27978515625],[15.206738281250011,7.206152343749991],[15.480078125,7.523779296874991],[15.957617187500006,7.507568359375],[16.37890625,7.683544921874997],[16.545312500000023,7.865478515625],[16.784765625,7.550976562499997],[17.6494140625,7.98359375],[18.56416015625001,8.0458984375],[19.108691406250017,8.656152343749994],[18.886035156250017,8.836035156249991],[18.95625,8.938867187499994],[20.342089843750017,9.127099609374994],[20.773242187500017,9.405664062499994],[21.682714843750006,10.289843749999989],[21.771484375,10.642822265625],[22.49384765625001,10.996240234374994],[22.86005859375001,10.919677734375]]]},"properties":{"name":"Central African Rep.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-59.78759765624997,43.939599609374994],[-60.11748046874996,43.95336914062506],[-59.727148437500006,44.002832031249994],[-59.78759765624997,43.939599609374994]]],[[[-66.7625,44.68178710937502],[-66.8970703125,44.62890625],[-66.80214843749994,44.80537109374998],[-66.7625,44.68178710937502]]],[[[-60.961572265624966,45.48994140625001],[-61.081738281249926,45.55781249999998],[-60.91245117187498,45.56728515625005],[-60.961572265624966,45.48994140625001]]],[[[-73.69531249999997,45.58549804687502],[-73.85771484375002,45.573583984375006],[-73.57236328124998,45.69448242187502],[-73.69531249999997,45.58549804687502]]],[[[-73.56650390625003,45.469091796875034],[-73.960546875,45.44140624999997],[-73.68745117187498,45.561425781249994],[-73.47607421874997,45.704736328124994],[-73.56650390625003,45.469091796875034]]],[[[-61.10517578124998,45.94472656250002],[-60.86523437499997,45.983496093750006],[-61.05903320312501,45.70336914062497],[-60.73789062499995,45.75141601562498],[-60.46059570312494,45.96870117187501],[-60.733300781249994,45.956591796875045],[-60.297949218750034,46.31123046874998],[-60.22646484374994,46.19555664062506],[-59.86503906249993,46.159521484375006],[-59.8421875,45.941552734374994],[-60.67294921874995,45.59082031250006],[-61.28369140624994,45.573876953124966],[-61.44980468749995,45.71621093750002],[-61.40864257812501,46.17036132812498],[-60.87016601562499,46.796777343749966],[-60.40820312500003,47.00351562499998],[-60.332910156249966,46.737011718749955],[-60.49453125000002,46.270263671875],[-61.10517578124998,45.94472656250002]]],[[[-63.811279296875,46.46870117187501],[-63.68144531249993,46.561914062499994],[-63.12939453125,46.422216796875034],[-62.02373046874999,46.42158203125001],[-62.52607421875001,46.20288085937503],[-62.531347656250034,45.977294921875],[-63.02207031249998,46.06660156249998],[-62.89453125000003,46.12358398437496],[-63.056347656249955,46.22392578124996],[-62.97846679687498,46.31635742187498],[-63.21347656249998,46.15986328124998],[-63.641015624999966,46.23046874999997],[-63.758642578125034,46.397607421874994],[-64.11083984375003,46.425439453124994],[-64.13603515624999,46.59970703125006],[-64.388037109375,46.640869140625],[-63.99355468750002,47.06157226562502],[-64.08789062499997,46.77543945312499],[-63.811279296875,46.46870117187501]]],[[[-61.91411132812496,47.284521484375034],[-61.77255859374998,47.25981445312499],[-62.00830078124994,47.23427734375002],[-61.924707031249966,47.425146484375006],[-61.3955078125,47.63764648437504],[-61.91411132812496,47.284521484375034]]],[[[-54.227148437500034,47.44135742187501],[-54.32597656250002,47.408105468749994],[-54.12817382812494,47.646826171875034],[-54.227148437500034,47.44135742187501]]],[[[-74.70888671874997,45.0038574218751],[-73.55810546875,45.425097656250045],[-73.1595703125,46.01005859375002],[-72.10927734374997,46.55122070312504],[-71.26118164062495,46.75625],[-70.51948242187501,47.032519531250045],[-69.47104492187503,47.96728515625006],[-68.23818359374994,48.62641601562504],[-66.17817382812493,49.21313476562503],[-64.83632812499994,49.191748046875006],[-64.2162109375,48.873632812500034],[-64.51372070312493,48.84111328124999],[-64.24609374999994,48.69111328124998],[-64.34882812500001,48.423193359375034],[-65.259423828125,48.02124023437503],[-65.92670898437495,48.188867187499994],[-66.70439453125002,48.0224609375],[-66.35961914062494,48.06064453125006],[-65.84941406250002,47.91103515625005],[-65.60722656249996,47.67001953125006],[-65.00166015624995,47.84682617187502],[-64.70322265625,47.72485351562503],[-64.91220703125003,47.36865234375003],[-65.31889648437502,47.101220703124994],[-64.831396484375,47.06079101562503],[-64.88251953124993,46.822851562500034],[-64.54150390625,46.240332031250034],[-63.91591796875002,46.165820312500045],[-63.831933593749966,46.107177734375],[-64.05639648437503,46.021337890625006],[-63.70288085937494,45.858007812500034],[-62.70068359374997,45.740576171875006],[-62.750097656250006,45.64824218750002],[-62.483056640624966,45.62182617187506],[-61.955517578124955,45.86816406249997],[-61.776513671874994,45.655615234375006],[-61.49228515624998,45.68701171875],[-61.350488281249966,45.57368164062501],[-61.28198242187494,45.441064453124994],[-61.46098632812502,45.36669921875003],[-61.03154296875002,45.29174804687506],[-63.306298828124994,44.64257812500003],[-63.60400390624997,44.68320312500006],[-63.60976562499999,44.47998046875006],[-63.999707031249926,44.64492187499999],[-64.10087890624993,44.487451171874966],[-64.1669921875,44.58666992187503],[-64.28608398437493,44.55034179687499],[-64.27568359374993,44.33408203124998],[-65.48168945312497,43.51806640625],[-65.73813476562498,43.56074218750001],[-65.88691406250001,43.79521484374999],[-66.125732421875,43.813818359375034],[-66.19306640624995,44.143847656250045],[-65.86801757812498,44.56879882812501],[-66.14638671875002,44.43593750000005],[-66.090625,44.50493164062499],[-64.44814453125,45.33745117187502],[-64.13549804687497,45.023046875],[-64.09316406249997,45.21708984375002],[-63.368017578125034,45.36479492187502],[-64.87314453124998,45.35458984375006],[-64.31464843749998,45.83569335937503],[-64.48222656250002,45.80634765624998],[-64.63271484375002,45.94663085937506],[-64.77851562499998,45.63842773437497],[-65.88447265624995,45.22290039062506],[-66.10976562500002,45.316601562499955],[-66.02656249999995,45.417578125],[-66.43984374999994,45.09589843750001],[-66.87246093749997,45.067285156249966],[-67.12485351562498,45.16943359375],[-67.366943359375,45.17377929687498],[-67.43266601562496,45.603125],[-67.80224609374994,45.7275390625],[-67.806787109375,47.08281249999999],[-68.23549804687502,47.34594726562503],[-68.93720703124998,47.21123046875002],[-69.0501953125,47.426611328125034],[-69.24287109374998,47.46298828124998],[-70.00771484375002,46.70893554687501],[-70.296240234375,45.90610351562506],[-70.86503906249999,45.27070312500001],[-71.327294921875,45.29008789062496],[-71.51752929687495,45.00756835937497],[-74.663232421875,45.00390625000003],[-74.70888671874997,45.0038574218751]]],[[[-126.09208984374995,49.35400390625003],[-126.06401367187499,49.26362304687501],[-126.22963867187498,49.29565429687506],[-126.09208984374995,49.35400390625003]]],[[[-54.55439453125001,49.5888671875],[-54.786523437499966,49.496142578125045],[-54.86357421875002,49.576074218749966],[-54.55439453125001,49.5888671875]]],[[[-54.093701171874955,49.74443359374999],[-53.98066406250001,49.66196289062498],[-54.28613281249997,49.595361328124994],[-54.27763671875002,49.71147460937502],[-54.093701171874955,49.74443359374999]]],[[[-126.64121093749999,49.605810546875006],[-126.93857421874999,49.71845703125004],[-126.92583007812497,49.837744140625006],[-126.73813476562502,49.84365234375005],[-126.64121093749999,49.605810546875006]]],[[[-61.801123046875034,49.093896484374966],[-63.04150390624994,49.224951171875034],[-64.485205078125,49.88696289062497],[-64.13144531249995,49.94165039062503],[-62.858544921874966,49.70546875000005],[-61.817138671875,49.28354492187498],[-61.69614257812495,49.139013671875006],[-61.801123046875034,49.093896484374966]]],[[[-125.18413085937497,50.09711914062498],[-125.301171875,50.4140625],[-125.07402343750002,50.22065429687501],[-125.18413085937497,50.09711914062498]]],[[[-127.19731445312495,50.640380859375],[-125.48208007812501,50.316796874999966],[-124.83061523437499,49.53007812500002],[-123.99580078125,49.22402343750002],[-123.49702148437498,48.58208007812499],[-123.38989257812501,48.67021484374999],[-123.31064453125003,48.41103515625002],[-123.57314453124995,48.32280273437499],[-123.91694335937501,48.386572265625034],[-125.12070312500002,48.76079101562496],[-124.84965820312496,49.02827148437501],[-124.81264648437497,49.212646484375],[-124.92734374999998,49.01420898437499],[-125.489453125,48.933789062499955],[-125.82851562499998,49.09184570312499],[-125.64423828125001,49.18579101562506],[-125.95166015625001,49.24804687500003],[-125.93540039062499,49.401464843750006],[-126.51914062499999,49.396777343750045],[-126.54189453125001,49.590478515624966],[-126.13408203124997,49.672314453124955],[-126.52524414062499,49.71958007812498],[-126.90332031250001,49.94414062499999],[-127.114306640625,49.879736328125034],[-127.24980468749999,50.13798828124996],[-127.34941406249995,50.05195312500001],[-127.46713867187503,50.163427734375006],[-127.86391601562495,50.12773437500002],[-127.90585937499998,50.44521484375002],[-127.48652343749998,50.404638671875034],[-127.46591796874996,50.58310546875006],[-128.05834960937494,50.498486328124955],[-128.34604492187503,50.744238281250006],[-127.91806640624998,50.86054687500001],[-127.19731445312495,50.640380859375]]],[[[-55.45874023437494,51.53652343750005],[-55.58339843749994,51.38857421875002],[-56.031103515625034,51.328369140625],[-55.8,51.033300781250034],[-56.732324218749966,50.007714843749994],[-56.822167968749966,49.613476562499955],[-56.179394531249955,50.114990234375],[-56.161279296874994,49.94013671874998],[-55.50292968749997,49.98315429687503],[-56.14018554687496,49.61914062500006],[-55.869824218749955,49.67016601562506],[-56.08730468750002,49.45195312499999],[-55.375927734374955,49.48974609374997],[-55.34384765624998,49.37290039062506],[-55.22954101562496,49.508154296875006],[-55.35317382812502,49.07944335937506],[-54.50219726562503,49.52734375],[-54.44824218749997,49.329443359375006],[-53.957714843749955,49.44184570312498],[-53.61943359374996,49.321630859375006],[-53.57343750000001,49.141210937500034],[-54.16127929687494,48.787695312500034],[-53.852880859375006,48.81132812499996],[-53.966015624999955,48.70668945312505],[-53.70634765624999,48.65551757812503],[-54.11445312499998,48.393603515625045],[-53.027587890625,48.634716796874955],[-53.1357421875,48.40185546875003],[-53.60976562500002,48.20771484375001],[-53.56943359374998,48.088085937499955],[-53.869580078124926,48.019677734374966],[-53.63823242187496,48.01464843750003],[-53.863671874999966,47.787011718749994],[-53.67236328125,47.64824218749999],[-53.28271484375,47.99785156249996],[-52.86601562499993,48.11298828124998],[-53.16982421875002,47.51210937500005],[-52.945019531249955,47.55283203124998],[-52.782421874999955,47.769433593749966],[-52.653662109375034,47.549414062500006],[-53.11484375,46.65581054687502],[-53.32304687499996,46.71835937499998],[-53.589794921874955,46.638867187499955],[-53.59736328124998,47.14599609374997],[-54.00957031249993,46.839599609375],[-54.173730468749994,46.88037109375003],[-53.84951171875002,47.440332031249994],[-53.98901367187503,47.756201171875034],[-54.191845703124955,47.85981445312501],[-54.488134765625006,47.40385742187502],[-54.47392578124996,47.54707031249998],[-54.856640624999955,47.385009765625],[-55.31572265624993,46.905712890624955],[-55.78852539062498,46.86723632812502],[-55.91923828124996,47.01689453124996],[-55.49150390624996,47.16064453125003],[-54.78461914062501,47.664746093749955],[-55.366308593750034,47.66108398437501],[-55.57612304687498,47.46523437499999],[-56.12724609374999,47.50283203125002],[-55.867089843749994,47.592333984375045],[-55.85791015625,47.81918945312498],[-56.774121093749955,47.56499023437499],[-58.33686523437501,47.73085937500002],[-59.11694335937494,47.57070312499999],[-59.32065429687498,47.736914062500006],[-59.272070312500034,47.99555664062504],[-58.330224609374994,48.52211914062502],[-59.16767578124998,48.558496093749966],[-58.84179687500003,48.74643554687498],[-58.906445312499955,48.65019531249999],[-58.716455078124994,48.59804687500002],[-58.403662109375034,49.08432617187498],[-57.99052734374996,48.987939453124966],[-58.09892578124993,49.07744140624999],[-57.98007812499998,49.229638671874994],[-58.19091796875003,49.25874023437498],[-58.21337890625,49.38666992187501],[-58.01582031249998,49.54248046874997],[-57.79130859374999,49.48999023437503],[-57.92617187499999,49.700830078124994],[-57.4326171875,50.50581054687504],[-57.179589843749966,50.614843750000034],[-57.29799804687502,50.69873046874997],[-57.03593750000002,51.01083984374998],[-56.68242187500002,51.332763671875],[-56.025585937499955,51.56835937500006],[-55.6904296875,51.471337890624994],[-55.666406249999966,51.57890624999999],[-55.45874023437494,51.53652343750005]]],[[[-127.92465820312498,51.47387695312497],[-128.14877929687498,51.62670898437503],[-128.03173828125006,51.708398437499966],[-127.92465820312498,51.47387695312497]]],[[[-79.38427734374997,51.951953125000045],[-79.64375,52.01005859374996],[-79.27128906249996,52.086816406249966],[-79.38427734374997,51.951953125000045]]],[[[-128.36875,52.40087890625],[-128.43979492187503,52.696386718750006],[-128.24726562499998,52.784375],[-128.36875,52.40087890625]]],[[[-80.73168945312494,52.74726562499998],[-82.03925781249998,53.04990234374998],[-81.84731445312494,53.18627929687497],[-81.135595703125,53.20581054687503],[-80.73168945312494,52.74726562499998]]],[[[-131.7537109375,53.195556640625],[-131.63466796874997,52.92216796874999],[-131.97177734374998,52.87983398437498],[-131.45522460937502,52.70170898437502],[-131.59057617187494,52.578222656250006],[-131.25971679687495,52.415917968749966],[-131.31992187499998,52.30307617187498],[-131.142626953125,52.291113281250034],[-131.221533203125,52.15361328124999],[-132.16508789062493,52.783300781250034],[-132.14375,52.99931640624999],[-132.54677734374997,53.1375],[-131.7537109375,53.195556640625]]],[[[-128.55244140624998,52.93974609375002],[-128.50991210937502,52.51860351562502],[-128.678955078125,52.289648437500006],[-128.74633789062494,52.763378906249955],[-128.89980468749997,52.67382812500003],[-129.175927734375,52.964941406250006],[-129.033251953125,53.27993164062505],[-128.63266601562498,53.1125],[-128.55244140624998,52.93974609375002]]],[[[-129.167724609375,53.11787109374998],[-129.32387695312502,53.142138671875045],[-129.23818359374997,53.33007812500006],[-129.167724609375,53.11787109374998]]],[[[-129.84858398437498,53.167919921874955],[-130.51757812500003,53.54423828124999],[-130.45200195312498,53.63115234375002],[-129.94472656250002,53.436376953125034],[-129.75483398437498,53.244775390624994],[-129.84858398437498,53.167919921874955]]],[[[-130.236279296875,53.95854492187502],[-130.38422851562504,53.84394531250001],[-130.703173828125,53.892236328124994],[-130.44799804687497,54.08901367187502],[-130.236279296875,53.95854492187502]]],[[[-132.65551757812503,54.12749023437496],[-132.30336914062497,54.098876953125],[-132.16611328124998,53.95522460937505],[-132.53466796875,53.651708984375034],[-132.18696289062504,53.68481445312503],[-132.134423828125,54.03427734374998],[-131.66762695312502,54.14135742187503],[-131.957421875,53.308691406250034],[-132.34726562500003,53.18920898437503],[-132.747509765625,53.310498046874955],[-132.425,53.33696289062502],[-132.84501953125,53.507714843749994],[-133.07949218749997,53.837011718750034],[-133.04838867187493,54.15893554687497],[-132.65551757812503,54.12749023437496]]],[[[-130.92714843749997,54.47905273437499],[-130.90683593750003,54.63178710937504],[-130.75800781249998,54.61376953125],[-130.92714843749997,54.47905273437499]]],[[[-130.57534179687497,54.769677734374966],[-130.2140625,55.02587890625003],[-130.34941406249996,54.814550781250034],[-130.57534179687497,54.769677734374966]]],[[[-79.97758789062499,56.20703125000006],[-80.057470703125,56.28735351562497],[-79.57973632812502,56.466357421875045],[-79.97758789062499,56.20703125000006]]],[[[-78.93559570312496,56.26606445312498],[-79.17548828124998,55.88505859374999],[-79.18212890625,56.21215820312503],[-79.4951171875,55.87475585937503],[-79.76474609374995,55.80678710937505],[-79.54472656249999,56.12836914062501],[-79.9875,55.89213867187502],[-79.45888671875,56.53974609374998],[-79.53632812499995,56.180078124999966],[-79.27241210937493,56.600439453125006],[-78.93559570312496,56.26606445312498]]],[[[-61.743603515624955,57.55458984375005],[-61.6375,57.41606445312499],[-62.01123046875003,57.54848632812505],[-61.743603515624955,57.55458984375005]]],[[[-79.71650390624998,57.515527343749994],[-79.80844726562498,57.44243164062502],[-79.74257812499997,57.60795898437499],[-79.71650390624998,57.515527343749994]]],[[[-69.16005859375,59.04023437500001],[-69.35283203125002,58.96074218749999],[-69.30322265625003,59.144873046875006],[-69.16005859375,59.04023437500001]]],[[[-64.40703125,60.367089843749966],[-64.44194335937496,60.2978515625],[-64.73793945312497,60.37563476562502],[-64.83642578124997,60.50102539062499],[-64.40703125,60.367089843749966]]],[[[-68.23378906250002,60.24091796875001],[-68.36787109374998,60.314746093750045],[-68.08759765624998,60.58784179687501],[-67.81884765624994,60.449511718750074],[-68.23378906250002,60.24091796875001]]],[[[-78.531640625,60.72856445312499],[-78.66889648437498,60.716894531250006],[-78.24169921875,60.818652343750045],[-78.531640625,60.72856445312499]]],[[[-64.83261718749998,61.366064453125006],[-65.43212890625,61.649511718750034],[-64.78964843750003,61.662207031250034],[-64.83261718749998,61.366064453125006]]],[[[-65.03056640624999,61.879052734374966],[-64.89658203124995,61.73330078125005],[-65.23535156249997,61.89770507812506],[-65.03056640624999,61.879052734374966]]],[[[-79.54531250000002,62.41171875000006],[-79.28647460937495,62.247656250000034],[-79.32392578124995,62.02607421875001],[-79.81611328124995,61.59462890625002],[-80.26518554687496,61.818212890625006],[-80.26005859374996,62.10903320312502],[-79.9267578125,62.39287109375002],[-79.54531250000002,62.41171875000006]]],[[[-64.82382812499998,62.558740234374994],[-64.46503906249998,62.535937500000045],[-64.47832031250002,62.417871093749966],[-64.901220703125,62.421044921874994],[-64.82382812499998,62.558740234374994]]],[[[-70.33706054687497,62.548730468749994],[-70.76606445312498,62.596875],[-71.22011718750002,62.873925781249966],[-70.44262695312497,62.73378906250002],[-70.33706054687497,62.548730468749994]]],[[[-82.00048828124997,62.95419921874998],[-82.02583007812498,62.73007812499998],[-82.56826171875002,62.403222656249994],[-83.01582031249998,62.20991210937498],[-83.69887695312497,62.16025390624998],[-83.91049804687498,62.45415039062499],[-83.37641601562498,62.904931640624994],[-82.00048828124997,62.95419921874998]]],[[[-77.87670898437497,63.470556640625034],[-77.53271484374997,63.233642578125],[-77.94243164062496,63.11440429687502],[-78.536767578125,63.423730468749994],[-77.87670898437497,63.470556640625034]]],[[[-76.67758789062503,63.393945312499966],[-77.36474609374994,63.588330078124955],[-77.13369140624997,63.68203125000002],[-76.65244140624998,63.503564453124994],[-76.67758789062503,63.393945312499966]]],[[[-84.91962890624995,65.26108398437503],[-84.50112304687497,65.45844726562501],[-84.08486328125,65.21782226562502],[-82.05,64.64428710937506],[-81.67612304687498,64.21264648437503],[-81.88710937499997,64.01640625000002],[-80.82895507812495,64.08994140625],[-80.30205078124999,63.76220703125003],[-81.04638671875003,63.461572265624966],[-82.378125,63.706787109375],[-82.46708984375002,63.92695312500001],[-83.30395507812497,64.14379882812506],[-84.63291015625,63.30922851562502],[-85.39262695312496,63.119677734375045],[-85.76894531249997,63.70034179687502],[-87.15190429687499,63.58564453125001],[-86.93203124999997,63.90166015625002],[-86.252099609375,64.13686523437497],[-86.37426757812503,64.56582031249997],[-86.074609375,65.533837890625],[-85.55468750000003,65.91865234374995],[-85.17622070312501,65.746875],[-85.23994140624993,65.51030273437499],[-84.91962890624995,65.26108398437503]]],[[[-84.67475585937498,65.575],[-85.096337890625,65.756201171875],[-85.14960937500001,66.01538085937506],[-84.75737304687496,65.85893554687505],[-84.67475585937498,65.575]]],[[[-83.72597656249997,65.796728515625],[-83.23374023437495,65.71503906249995],[-83.332421875,65.63105468749998],[-84.11826171874995,65.77177734375007],[-84.40717773437501,66.13100585937497],[-83.78696289062495,65.96577148437498],[-83.72597656249997,65.796728515625]]],[[[-108.09272460937501,67.00517578124999],[-107.80551757812493,66.99858398437507],[-107.94394531249999,66.8578125],[-108.09272460937501,67.00517578124999]]],[[[-62.681542968749966,67.05629882812502],[-62.87163085937499,67.06259765625006],[-62.41679687499996,67.18847656250003],[-62.681542968749966,67.05629882812502]]],[[[-107.89985351562497,67.40180664062495],[-107.95024414062503,67.31821289062498],[-108.15224609374997,67.429443359375],[-108.04897460937498,67.664892578125],[-107.89985351562497,67.40180664062495]]],[[[-73.621728515625,67.783837890625],[-74.573388671875,67.82866210937507],[-74.70654296875003,68.06708984374995],[-73.49375,68.00063476562502],[-73.40717773437498,67.79306640625],[-73.621728515625,67.783837890625]]],[[[-86.59555664062498,67.7359375],[-86.89252929687498,67.836572265625],[-86.95981445312503,68.10024414062497],[-86.70209960937501,68.30561523437498],[-86.42114257812497,68.18344726562503],[-86.59555664062498,67.7359375]]],[[[-75.67587890624998,68.32250976562506],[-75.078125,68.17314453124999],[-75.20195312499996,67.45917968750001],[-75.78007812499996,67.28354492187503],[-76.94418945312498,67.25029296875002],[-77.30439453125001,67.68510742187505],[-77.12587890624997,67.94707031250002],[-76.59580078124998,68.27895507812497],[-75.67587890624998,68.32250976562506]]],[[[-78.98271484374999,68.19282226562501],[-79.17475585937493,68.26445312500002],[-78.95258789062495,68.35302734375006],[-78.98271484374999,68.19282226562501]]],[[[-104.54067382812497,68.405908203125],[-105.05136718749999,68.55903320312501],[-104.60200195312503,68.56152343749997],[-104.54067382812497,68.405908203125]]],[[[-74.880859375,68.34868164062505],[-75.40024414062503,68.52548828125],[-75.28740234374996,68.68774414062503],[-74.98364257812497,68.64760742187502],[-74.880859375,68.34868164062505]]],[[[-101.84589843749994,68.58632812499997],[-102.30815429687497,68.681982421875],[-102.01337890624995,68.82539062500001],[-101.73295898437495,68.75341796875],[-101.84589843749994,68.58632812499997]]],[[[-100.21723632812497,68.80668945312502],[-100.59653320312496,68.76640625000007],[-100.56547851562495,69.02680664062501],[-100.21723632812497,68.80668945312502]]],[[[-99.99467773437502,69.01352539062503],[-100.19570312500002,68.991455078125],[-100.153125,69.12949218750003],[-99.99467773437502,69.01352539062503]]],[[[-79.21064453124995,68.845458984375],[-79.24267578125,69.04926757812495],[-78.33256835937496,69.38603515624999],[-78.77919921875,68.95048828124999],[-79.21064453124995,68.845458984375]]],[[[-90.1998046875,69.419091796875],[-90.33027343749993,69.252197265625],[-90.49204101562503,69.369873046875],[-90.1998046875,69.419091796875]]],[[[-76.99536132812503,69.14375],[-77.37939453125,69.2740234375],[-77.18754882812502,69.440087890625],[-76.66884765625002,69.36616210937504],[-76.99536132812503,69.14375]]],[[[-101.171728515625,69.39707031250003],[-101.31289062499998,69.57607421875],[-101.00063476562497,69.4619140625],[-101.171728515625,69.39707031250003]]],[[[-95.51367187499997,69.57363281250002],[-95.43745117187498,69.37846679687505],[-95.73012695312502,69.34755859374997],[-95.80620117187499,69.56049804687501],[-95.89345703125,69.35175781250004],[-95.87583007812495,69.60600585937505],[-95.51367187499997,69.57363281250002]]],[[[-67.91469726562494,69.54096679687504],[-68.22138671874998,69.61674804687502],[-67.908837890625,69.68183593749995],[-67.91469726562494,69.54096679687504]]],[[[-78.02910156249993,69.71489257812502],[-78.03999023437495,69.6083984375],[-78.84819335937502,69.4828125],[-78.02910156249993,69.71489257812502]]],[[[-79.43066406250003,69.78779296874995],[-79.55283203124995,69.63085937500006],[-80.04750976562502,69.63432617187505],[-79.97783203124993,69.50966796874997],[-80.794775390625,69.68925781250005],[-80.42421875000002,69.797607421875],[-79.43066406250003,69.78779296874995]]],[[[-97.439453125,69.64267578125006],[-96.29995117187494,69.34438476562505],[-95.7513671875,68.89765624999998],[-95.26777343749998,68.82607421874997],[-96.40156249999995,68.47070312500003],[-97.47202148437498,68.543701171875],[-98.320556640625,68.84272460937498],[-98.70380859374993,68.80278320312502],[-98.90449218749995,68.93242187500005],[-99.25400390625002,68.86318359374997],[-99.49467773437493,68.95957031249998],[-99.455712890625,69.13120117187503],[-98.45595703124997,69.33466796875001],[-98.54599609375,69.57290039062497],[-98.04135742187498,69.456640625],[-98.20048828124996,69.79697265625006],[-97.79072265624998,69.86162109374999],[-97.439453125,69.64267578125006]]],[[[-86.91303710937501,70.11323242187501],[-86.55766601562499,69.99531249999995],[-87.3232421875,70.08012695312502],[-86.91303710937501,70.11323242187501]]],[[[-74.70888671874997,45.0038574218751],[-74.76245117187494,44.99907226562502],[-74.99614257812496,44.970117187499966],[-75.40126953124997,44.77226562499999],[-75.81933593749997,44.468017578125],[-76.18579101562503,44.24223632812502],[-76.819970703125,43.62880859375011],[-77.59653320312492,43.62861328125007],[-78.45825195312497,43.63149414062511],[-78.72041015624993,43.62495117187501],[-78.84555664062492,43.58334960937506],[-79.171875,43.466552734375085],[-79.0830566406249,43.33139648437509],[-79.05922851562494,43.27807617187506],[-79.066064453125,43.10610351562502],[-79.02617187499996,43.01733398437506],[-78.98076171874993,42.98061523437502],[-78.91508789062496,42.90913085937504],[-79.17373046875,42.74853515625],[-80.24755859374991,42.366015625000045],[-81.02822265624997,42.247167968750006],[-81.50732421874997,42.10346679687504],[-81.97416992187496,41.88872070312499],[-82.43906249999989,41.6748535156251],[-82.69003906249995,41.675195312499994],[-83.141943359375,41.97587890624996],[-83.10952148437497,42.25068359375001],[-82.54531249999997,42.62470703124998],[-82.19038085937495,43.47407226562501],[-82.137841796875,43.570898437500034],[-82.48505859374993,45.08374023437503],[-82.55107421874987,45.3473632812501],[-82.91933593749994,45.51796875000002],[-83.59267578125,45.81713867187506],[-83.46948242187503,45.99467773437499],[-83.61596679687503,46.116845703124994],[-83.97778320312494,46.08491210937507],[-84.12319335937497,46.50292968749997],[-84.44047851562496,46.49814453125006],[-84.66577148437503,46.54326171875002],[-84.87597656249994,46.89990234375003],[-85.07006835937497,46.97993164062498],[-85.65224609375,47.21997070312503],[-86.67216796874996,47.636425781249955],[-87.20800781249997,47.848486328125006],[-87.74389648437497,48.06054687500003],[-88.37817382812497,48.30307617187506],[-89.45566406249992,47.99624023437508],[-90.79731445312495,48.13105468750001],[-91.04345703124991,48.19370117187498],[-91.38720703124997,48.05854492187498],[-92.00517578125002,48.301855468750006],[-92.3484375,48.276611328125],[-92.41459960937493,48.276611328125],[-92.50058593749995,48.43535156250002],[-92.83671875,48.567773437499994],[-93.25795898437497,48.62885742187501],[-93.37788085937498,48.61655273437498],[-93.70771484374995,48.525439453125074],[-93.85161132812496,48.607275390625034],[-94.6208984374999,48.7426269531251],[-94.71279296874997,48.863427734374994],[-94.80346679687497,49.0029296875],[-94.86040039062493,49.258593750000045],[-94.85434570312495,49.304589843749994],[-95.15527343749997,49.3696777343751],[-95.16206054687493,48.991748046875045],[-95.39790039062493,48.99316406249997],[-96.25068359374993,48.99316406249997],[-96.67705078124993,48.99316406249997],[-97.52983398437493,48.99316406249997],[-98.80898437499995,48.99316406249997],[-104.77832031249997,48.993115234375125],[-110.7476562499999,48.993066406250136],[-116.71704101562493,48.993066406250136],[-118.84892578124993,48.993066406250136],[-119.27534179687494,48.993066406250136],[-119.70170898437495,48.99301757812495],[-120.98085937499995,48.99301757812495],[-122.78876953124994,48.99301757812495],[-122.82670898437495,49.028417968750034],[-122.9241699218749,49.07465820312504],[-122.96269531249993,49.07460937500005],[-123.06328125,48.97773437500001],[-123.22944335937493,49.260498046875085],[-122.87910156249995,49.39892578125003],[-123.27675781249997,49.34394531250001],[-123.1875,49.680322265624994],[-123.53056640624989,49.39731445312506],[-124.02861328125002,49.602880859375006],[-123.99262695312497,49.736181640625006],[-123.81718749999993,49.58657226562508],[-123.58247070312498,49.68125],[-123.87441406250005,49.736816406250114],[-123.82543945312493,50.14423828124998],[-123.94589843749995,50.18393554687509],[-123.9849121093749,49.87558593749998],[-124.28125,49.77211914062502],[-124.78237304687492,50.02011718749992],[-125.05668945312495,50.418652343750125],[-124.8598632812499,50.872412109375006],[-125.05878906249993,50.51386718749998],[-125.4763183593749,50.49716796874995],[-125.53935546874996,50.64902343749998],[-125.64130859374994,50.46621093750005],[-126.09433593749995,50.497607421875045],[-126.44746093750004,50.58774414062492],[-125.90410156250002,50.704931640625006],[-126.51435546875,50.679394531250125],[-126.37460937499995,50.83735351562498],[-126.5217773437499,50.86606445312498],[-126.51733398437497,51.0568359375001],[-126.63178710937494,50.915136718750006],[-127.057568359375,50.86752929687509],[-127.70810546875,51.15117187499996],[-127.41967773437496,51.608056640625136],[-126.69145507812502,51.70341796875002],[-127.33872070312489,51.70737304687495],[-127.66870117187497,51.47758789062502],[-127.85053710937498,51.67319335937509],[-127.79536132812493,52.19101562500006],[-127.43793945312504,52.356152343750125],[-127.24223632812496,52.39511718750009],[-126.71396484374989,52.060693359374994],[-127.19399414062498,52.45766601562502],[-126.95136718749994,52.7510253906251],[-127.01933593750002,52.8424804687501],[-127.06621093749989,52.65268554687498],[-127.79189453124994,52.28935546875002],[-128.10224609374993,51.78842773437495],[-128.3576171875,52.1588867187501],[-128.0375,52.318164062500045],[-127.94023437499996,52.545166015625085],[-128.27153320312493,52.3629882812501],[-128.05327148437487,52.91069335937496],[-128.3650390624999,52.82578125000006],[-128.52470703125002,53.1406738281251],[-129.08090820312492,53.36728515625006],[-129.1715820312499,53.53359375000002],[-128.8545898437499,53.70454101562504],[-128.90561523437492,53.559326171875114],[-128.5421386718749,53.420654296875114],[-128.13271484375002,53.417773437500045],[-127.92783203125,53.274707031250045],[-128.2072265624999,53.483203125000074],[-128.67553710937494,53.55458984375005],[-128.76367187500003,53.746875],[-128.5321289062499,53.85810546875007],[-128.959375,53.84145507812505],[-129.2578613281249,53.417968750000085],[-129.56372070312506,53.251464843750114],[-130.33525390625002,53.723925781250074],[-130.04331054687495,54.13354492187503],[-129.62602539062493,54.23027343750002],[-130.08422851562503,54.18139648437503],[-130.4302734375,54.42099609374998],[-129.56064453124995,55.46254882812508],[-129.79516601562503,55.559570312500114],[-130.04848632812494,55.05727539062511],[-130.01406249999997,55.950537109375006],[-130.09785156249995,56.10927734375002],[-130.41313476562487,56.12250976562507],[-130.47709960937496,56.230566406250034],[-130.649072265625,56.26367187500003],[-131.471875,56.55673828125006],[-131.82426757812496,56.58999023437508],[-131.86616210937495,56.792822265625006],[-132.1042968749999,56.85678710937509],[-132.062890625,56.95336914062503],[-132.33798828124992,57.07944335937498],[-132.27939453124998,57.14536132812506],[-132.23217773437494,57.198535156250074],[-132.30166015625005,57.2763183593751],[-132.44248046874986,57.40673828125003],[-132.55048828124995,57.499902343749994],[-133.00141601562495,57.948974609375],[-133.27529296875,58.22285156250004],[-133.54638671874997,58.50346679687499],[-134.21850585937503,58.849902343750045],[-134.32963867187505,58.93969726562506],[-134.39306640625,59.009179687499994],[-134.67724609374997,59.19926757812499],[-134.94375,59.28828125000001],[-135.05102539062491,59.57866210937502],[-135.36787109374998,59.743310546874994],[-135.70258789062504,59.72875976562506],[-136.3218261718749,59.604833984375034],[-136.27797851562494,59.48032226562506],[-136.46635742187493,59.459082031250006],[-136.57875976562494,59.15224609375002],[-136.81328125000002,59.15004882812511],[-137.12622070312491,59.04096679687507],[-137.2775390624999,58.988183593749994],[-137.43857421874995,58.903125],[-137.52089843749994,58.91538085937506],[-137.59331054687493,59.22626953124998],[-138.317626953125,59.611132812500074],[-138.86875,59.94575195312501],[-139.18515624999986,60.083593750000034],[-139.13696289062494,60.17270507812506],[-139.07924804687497,60.279443359375136],[-139.07924804687497,60.3437011718751],[-139.23476562499997,60.339746093749994],[-139.67631835937505,60.32832031249998],[-139.97329101562497,60.183154296875074],[-140.45283203125004,60.29970703125002],[-140.5254394531249,60.21835937499995],[-140.76274414062505,60.25913085937509],[-141.00214843750004,60.300244140625125],[-141.00214843750004,60.884667968749994],[-141.00214843750004,61.761279296875045],[-141.00214843750004,63.22226562499998],[-141.00214843750004,64.09887695312506],[-141.00214843750004,65.55991210937498],[-141.00214843750004,66.43652343750006],[-141.00214843750004,67.89755859374998],[-141.00214843750004,68.77416992187506],[-141.00214843750004,69.65078125000011],[-139.18154296874997,69.51552734375008],[-137.25996093749998,68.96411132812503],[-136.12236328124993,68.88222656250002],[-135.258837890625,68.68432617187503],[-135.93901367187487,68.9741699218751],[-135.575537109375,69.02695312500003],[-135.91020507812487,69.11147460937502],[-135.6914550781249,69.31118164062502],[-135.29282226562486,69.30786132812506],[-135.1408203124999,69.46782226562496],[-134.45683593749993,69.47763671875],[-134.40893554687494,69.68178710937502],[-133.87978515624997,69.50771484375011],[-134.17431640624991,69.25283203125005],[-133.16313476562496,69.43388671874999],[-132.91533203125002,69.62963867187506],[-132.40390625,69.65874023437496],[-132.48847656249993,69.73808593749996],[-132.16342773437498,69.70498046875014],[-131.13637695312497,69.90688476562505],[-130.66547851562495,70.12705078124998],[-129.944970703125,70.09091796875006],[-129.675634765625,70.19296875000009],[-129.64829101562495,69.9977539062501],[-130.83208007812487,69.65146484375006],[-131.9377929687499,69.5347167968751],[-132.8174804687499,69.20576171875004],[-133.41831054687492,68.84428710937493],[-133.138037109375,68.74658203125011],[-133.33666992187497,68.83525390625005],[-132.57763671874997,68.84780273437514],[-132.71894531249998,69.07919921875],[-131.78837890625002,69.43198242187495],[-131.32470703124997,69.36118164062509],[-131.06342773437504,69.45068359375003],[-130.97065429687495,69.20908203125],[-130.1176269531249,69.720068359375],[-128.89892578124994,69.96616210937506],[-129.15791015624995,69.80009765624999],[-129.05434570312502,69.70107421875005],[-128.85302734375003,69.7510253906251],[-127.68378906249994,70.26035156249995],[-128.17011718749998,70.41845703125],[-127.99101562499992,70.57382812500003],[-127.22597656249992,70.29614257812497],[-126.25043945312495,69.54526367187492],[-125.52495117187495,69.35156250000009],[-125.171875,69.42797851562503],[-125.35693359374991,69.62597656250003],[-124.767919921875,69.99003906249996],[-124.99038085937494,70.02661132812511],[-124.55502929687488,70.15122070312509],[-124.40693359374991,69.76743164062506],[-124.12460937499995,69.6899902343751],[-124.33808593749991,69.36484374999995],[-123.5284179687499,69.38935546874995],[-123.02578125,69.81000976562504],[-122.07006835937499,69.81616210937506],[-120.96245117187502,69.66040039062511],[-120.13999023437488,69.38056640625013],[-117.22695312499998,68.913427734375],[-116.05947265625,68.83701171875006],[-116.2434082031249,68.9740722656251],[-115.44228515624994,68.94091796875009],[-114.62016601562496,68.74609375],[-113.96440429687495,68.39907226562502],[-114.09594726562491,68.26679687500007],[-114.76528320312494,68.27021484375004],[-115.12705078124992,68.13203124999995],[-115.43447265624994,67.90234375000006],[-115.13320312499994,67.819189453125],[-112.50302734374993,67.6819335937501],[-110.9900390624999,67.79082031250007],[-110.07392578124995,67.99291992187506],[-109.63037109374991,67.73271484374996],[-109.03803710937504,67.69116210937503],[-108.85200195312497,67.42197265625009],[-108.61333007812493,67.59804687500008],[-107.98872070312495,67.2563964843751],[-107.99130859374995,67.09516601562513],[-108.49604492187493,67.09228515625006],[-107.25947265624998,66.39853515624995],[-107.71035156250001,66.74003906250007],[-107.7250976562499,66.98413085937506],[-107.15649414062497,66.88173828124997],[-107.9583984375,67.81860351562506],[-107.79829101562498,68.03691406249996],[-106.42426757812491,68.20058593750008],[-105.7501953125,68.59228515625011],[-106.45805664062496,68.51645507812495],[-106.60849609374988,68.35737304687504],[-107.61933593749994,68.3310546875],[-107.73417968749989,68.17373046875011],[-108.3228027343749,68.15410156250002],[-108.71811523437488,68.29746093750009],[-108.31347656249996,68.61079101562498],[-106.16445312499992,68.91987304687507],[-105.68559570312489,68.82817382812505],[-105.3774414062499,68.413818359375],[-104.65317382812488,68.23007812500003],[-104.48681640624991,68.06318359374998],[-103.47412109374993,68.11503906250005],[-102.32036132812489,67.73564453125005],[-101.55498046874992,67.69316406250007],[-100.21293945312489,67.83857421875004],[-98.92045898437502,67.72578124999998],[-98.41210937499991,67.80717773437505],[-98.63154296875004,68.0725585937501],[-97.45493164062486,67.61699218750002],[-97.20654296874989,67.85507812500003],[-97.73911132812495,67.97817382812505],[-98.19252929687494,67.92299804687502],[-98.65048828124989,68.36352539062506],[-98.21855468750002,68.31743164062507],[-97.7942382812499,68.38759765625],[-97.9250976562499,68.523681640625],[-97.41035156249993,68.49653320312498],[-96.97670898437497,68.25541992187505],[-96.43066406249991,68.3105957031251],[-96.72207031250005,68.03876953124998],[-95.9703125,68.24912109375],[-96.36914062499991,67.50976562500003],[-96.14145507812489,67.27182617187503],[-95.71992187499998,67.31679687500014],[-95.77768554687495,67.18461914062505],[-95.41591796875005,67.15556640624999],[-95.41889648437504,67.01323242187493],[-96.42255859374995,67.05175781249997],[-95.7875488281249,66.616796875],[-96.03686523437489,66.9375],[-95.39965820312503,66.94946289062509],[-95.25874023437493,67.26254882812492],[-95.65048828124986,67.73745117187505],[-95.46069335937503,68.02138671875],[-94.74443359374993,68.07089843749995],[-93.44892578124998,68.61889648437503],[-93.85244140624994,69.00034179687495],[-94.06489257812495,68.78476562500006],[-94.600439453125,68.80322265625011],[-94.08364257812497,69.12309570312507],[-94.254736328125,69.31376953125002],[-93.61948242187492,69.41699218750009],[-93.74853515624991,69.2261230468751],[-93.5322753906249,69.48090820312495],[-94.2708007812499,69.45512695312505],[-94.63383789062496,69.64965820312506],[-94.82250976562494,69.577783203125],[-95.96494140624989,69.80278320312499],[-96.5513671875,70.21030273437506],[-96.29770507812492,70.51137695312511],[-95.87861328124998,70.54897460937514],[-95.88632812499986,70.69428710937507],[-96.25800781249993,70.64228515625013],[-96.54892578124995,70.80874023437511],[-96.44658203124996,71.23989257812502],[-96.06201171874997,71.41386718749993],[-95.5642578124999,71.33676757812503],[-95.40625,71.49165039062498],[-95.87231445312494,71.57314453125005],[-94.73486328124994,71.98295898437507],[-94.30834960937491,71.76489257812506],[-93.74628906249998,71.742822265625],[-92.94868164062493,71.26210937500011],[-92.98144531249994,70.8522460937501],[-91.56406249999995,70.1782714843751],[-92.32050781250004,70.2353515625],[-92.51186523437494,70.10385742187503],[-91.976708984375,70.03867187500009],[-92.88779296874989,69.66821289062511],[-92.31166992187494,69.67290039062499],[-91.91196289062495,69.53125],[-91.20180664062494,69.64477539062494],[-91.43994140624997,69.52568359375002],[-90.4155761718749,69.45698242187507],[-90.89228515625004,69.26728515624995],[-91.23720703125005,69.28554687500014],[-90.47900390624994,68.88115234374999],[-90.57363281250005,68.47470703124998],[-90.20478515625004,68.25747070312511],[-89.27954101562491,69.25546875000003],[-88.22353515625,68.91503906249997],[-87.81357421874986,68.34570312499997],[-87.89267578125,68.24814453125],[-88.34697265624993,68.28828125000001],[-88.313818359375,67.95034179687508],[-87.359375,67.17724609374997],[-86.56079101562491,67.48212890625007],[-85.64316406249992,68.69970703124997],[-84.86757812499994,68.77333984375005],[-85.10664062499995,68.84404296875007],[-84.86220703125,69.07397460937503],[-85.38676757812493,69.23188476562504],[-85.50737304687487,69.84526367187493],[-82.61835937499993,69.69106445312514],[-82.39023437499989,69.60087890625007],[-82.75483398437493,69.49438476562506],[-82.30986328124996,69.41000976562509],[-82.22753906249997,69.24887695312495],[-81.37783203125005,69.18564453125003],[-81.95791015624991,68.88364257812498],[-81.38090820312496,68.85004882812504],[-81.28154296874987,68.65722656250003],[-81.91484374999993,68.4587890625001],[-82.55268554687504,68.44648437500007],[-82.22241210937489,68.145263671875],[-82.0125,68.19389648437496],[-81.97646484374997,67.86201171875001],[-81.2943359375,67.497412109375],[-81.46757812499996,67.0698730468751],[-83.40644531249998,66.37124023437508],[-84.53847656249994,66.97280273437505],[-84.84575195312502,67.02871093750008],[-85.11372070312498,66.90693359375013],[-84.73774414062504,66.93359375000006],[-84.223046875,66.68247070312506],[-83.86904296875,66.2135742187501],[-84.29306640624995,66.29179687500005],[-84.628076171875,66.20771484374998],[-85.603857421875,66.56826171875005],[-86.708154296875,66.52304687500009],[-86.68510742187502,66.36040039062499],[-85.95874023437491,66.11904296875002],[-87.45288085937503,65.33896484375009],[-87.96997070312503,65.34892578124999],[-89.7494140625,65.93603515625006],[-89.88969726562487,65.86855468749997],[-91.42724609374994,65.94790039062497],[-91.04111328124989,65.82983398437509],[-90.98344726562496,65.91923828124999],[-89.92407226562497,65.78027343750011],[-88.97402343749994,65.34829101562502],[-87.02753906249995,65.19809570312498],[-88.10561523437497,64.18330078125001],[-88.81772460937489,63.99223632812499],[-89.20063476562493,64.11376953125006],[-89.13154296874998,63.96850585937494],[-89.61582031249995,64.030615234375],[-89.8113281249999,64.18056640625],[-90.04165039062494,64.14086914062509],[-89.85571289062497,63.9569824218751],[-90.16816406250004,63.978759765625085],[-90.15473632812498,63.68964843749998],[-90.81191406249991,63.580908203125034],[-91.98222656249996,63.82241210937502],[-92.33842773437496,63.787646484375045],[-93.69633789062493,64.14716796875013],[-93.55981445312491,63.865283203125074],[-93.27021484374998,63.840869140625074],[-93.37851562499992,63.94848632812497],[-92.15688476562491,63.691699218750045],[-92.46508789062491,63.55507812500011],[-91.84184570312496,63.69755859374999],[-90.97006835937489,63.442773437500136],[-90.69858398437492,63.06386718750005],[-91.44897460937503,62.804052734375034],[-92.3612792968749,62.81938476562496],[-91.93583984374993,62.59238281250009],[-92.55141601562491,62.546728515625034],[-92.76596679687492,62.34995117187509],[-92.52797851562494,62.16840820312504],[-93.20537109374993,62.364941406250125],[-92.90551757812503,62.21513671874996],[-93.3330566406249,61.93291015625002],[-93.58178710937494,61.94204101562511],[-93.31201171874997,61.76728515625004],[-93.91274414062497,61.48144531250006],[-94.509375,60.60454101562493],[-94.76171874999991,60.498242187500125],[-94.78828124999998,59.26787109374993],[-94.95732421874996,59.068847656250085],[-94.28706054687493,58.716015625000125],[-94.33222656249998,58.297363281250114],[-94.12319335937494,58.73671875000008],[-93.1787597656249,58.72563476562496],[-92.43281249999993,57.3203125],[-92.7981445312499,56.921972656250034],[-90.89746093750003,57.25693359375006],[-88.94848632812489,56.85131835937503],[-88.07509765624997,56.46728515624994],[-87.48242187499991,56.021289062500045],[-85.55932617187491,55.54018554687508],[-85.21801757812491,55.348974609375034],[-85.3652832031249,55.07929687499998],[-85.06093749999997,55.285644531250085],[-83.91059570312493,55.314648437499955],[-82.39326171874998,55.067822265625125],[-82.219384765625,54.8134765625],[-82.42416992187486,54.2445800781251],[-82.14145507812492,53.81762695312497],[-82.29155273437496,53.03071289062507],[-81.5994140624999,52.432617187500085],[-81.82788085937489,52.22421875000009],[-81.46621093749994,52.204492187500136],[-80.588037109375,51.667236328125114],[-80.4433105468749,51.38857421875002],[-80.85122070312497,51.125],[-80.47832031249993,51.30732421874998],[-80.10356445312487,51.282861328125136],[-79.34790039062494,50.76264648437504],[-79.737451171875,51.186279296875],[-79.33867187500002,51.62817382812497],[-79.04052734375003,51.46376953125005],[-78.90317382812495,51.200292968750034],[-78.73134765624994,51.497460937499994],[-78.98164062499993,51.774560546875136],[-78.44809570312495,52.26137695312502],[-78.74414062499994,52.65537109374998],[-79.10034179687497,53.65664062500005],[-78.99604492187493,54.00249023437499],[-79.241796875,54.098876953125085],[-79.14672851562491,54.16923828125002],[-79.71235351562495,54.6718261718751],[-77.77529296874994,55.291259765625],[-76.60405273437496,56.19956054687495],[-76.52558593749998,56.8917968750001],[-76.80981445312497,57.65795898437506],[-77.15678710937496,58.018896484375034],[-78.51508789062493,58.68237304687503],[-77.76069335937498,59.38002929687505],[-77.72617187499995,59.67587890624992],[-77.34907226562495,59.57895507812509],[-77.48530273437493,59.684570312500114],[-77.28920898437494,60.0220214843751],[-77.58588867187498,60.088183593750074],[-77.45288085937497,60.1458007812501],[-77.6814453124999,60.427099609375034],[-77.503564453125,60.54272460937497],[-77.7908203124999,60.63984375000004],[-77.58955078124993,60.808593750000114],[-78.18134765624995,60.81914062499996],[-77.51435546874998,61.55629882812505],[-78.02138671874997,61.8320800781251],[-78.13339843749986,62.28227539062496],[-77.372412109375,62.572509765625114],[-75.81689453124991,62.31586914062507],[-75.7898437499999,62.17958984375002],[-75.3412109375,62.312109375],[-74.63256835937497,62.115673828125125],[-74.6458007812499,62.21113281250004],[-73.70507812499991,62.47314453124994],[-72.68696289062498,62.12456054687499],[-72.771630859375,61.840429687500006],[-72.50556640624998,61.922656250000074],[-72.22612304687487,61.83159179687499],[-72.04003906249991,61.68027343750006],[-72.21586914062502,61.58725585937495],[-71.86611328125,61.68852539062499],[-71.63828124999995,61.6171875],[-71.85439453124991,61.43979492187492],[-71.42270507812489,61.158935546875085],[-70.27929687499991,61.06865234374999],[-69.99243164062491,60.8564941406251],[-69.50332031249994,61.04042968750011],[-69.40473632812493,60.84677734375009],[-69.75947265624998,60.440234375000045],[-69.67373046874994,60.07587890625007],[-70.65483398437496,60.02622070312506],[-69.73393554687493,59.918017578125045],[-69.68188476562489,59.34174804687507],[-69.3440429687499,59.303076171875006],[-69.53164062499994,58.86923828125009],[-69.64838867187493,58.82080078125],[-69.78417968749994,58.95571289062511],[-70.15434570312496,58.76059570312498],[-69.78989257812486,58.689306640625034],[-69.27109374999986,58.88393554687505],[-68.69819335937495,58.904541015625],[-68.38115234374993,58.74350585937506],[-68.22939453124994,58.48457031250007],[-68.35654296874989,58.163232421875136],[-69.04082031249996,57.902490234375136],[-68.41357421874997,58.0517578125],[-68.02104492187493,58.48530273437504],[-67.88828124999989,58.29575195312495],[-68.06386718750005,58.13896484374999],[-67.75595703124992,58.4045898437501],[-67.6782714843749,57.99111328125008],[-67.5696289062499,58.21347656250006],[-66.72216796874991,58.49101562499996],[-66.36240234374989,58.791162109374994],[-66.0023925781249,58.43120117187502],[-66.04306640624995,58.82065429687495],[-65.72099609374996,59.02377929687495],[-65.38354492187494,59.06020507812508],[-65.7,59.21333007812501],[-65.4117187499999,59.31499023437496],[-65.47509765624994,59.47031249999998],[-65.03823242187494,59.38789062500007],[-65.40742187499993,59.53935546875002],[-65.4333984374999,59.776513671874994],[-65.02817382812495,59.77070312500007],[-65.17172851562489,59.90800781249996],[-64.81733398437498,60.3310546875],[-64.49941406250005,60.26826171875001],[-64.41958007812494,60.17138671874997],[-64.76845703124997,60.01210937500005],[-64.28349609374993,60.06406249999998],[-64.22631835937491,59.741210937500085],[-64.05605468750005,59.82255859374996],[-63.7501953124999,59.51259765625005],[-63.945458984374994,59.380175781250074],[-63.775878906249915,59.277148437500045],[-63.539892578124864,59.332861328125034],[-63.41513671874995,59.194384765625074],[-63.97114257812498,59.053808593750034],[-63.24843749999991,59.068310546874955],[-63.28212890624994,58.86738281250007],[-63.05029296874997,58.87817382812494],[-62.87387695312489,58.67246093749998],[-63.537060546874926,58.329931640625006],[-63.209960937499886,58.46694335937502],[-62.593847656249864,58.47402343750005],[-62.81206054687502,58.20039062500007],[-63.26152343749993,58.014697265625074],[-62.486230468749966,58.15405273437506],[-62.30566406249997,57.97226562499995],[-61.95864257812505,57.91176757812508],[-61.9679687499999,57.61191406250009],[-62.495556640624926,57.489208984375125],[-61.92114257812497,57.42080078125005],[-61.977441406249966,57.24794921875002],[-61.33374023437494,57.01059570312498],[-61.37163085937502,56.68081054687511],[-62.497265624999926,56.80170898437504],[-61.73774414062498,56.52602539062502],[-61.940429687499886,56.423583984375114],[-61.42529296874994,56.360644531250074],[-61.713085937499955,56.230957031250114],[-61.364697265624926,56.2160156250001],[-61.30112304687495,56.04716796874999],[-61.4495117187499,55.99570312499998],[-61.08935546874997,55.86635742187511],[-60.74326171874989,55.94145507812493],[-60.56210937499995,55.727001953125125],[-60.341015624999926,55.78466796874997],[-60.40830078124995,55.649560546874994],[-60.19238281249994,55.4809082031251],[-60.617138671874955,55.060205078124994],[-59.75878906249997,55.3095703125],[-59.68906249999989,55.19633789062502],[-59.43789062500005,55.175927734375136],[-59.837792968749994,54.813964843750114],[-59.25957031249996,55.19995117187506],[-58.99711914062496,55.149462890625074],[-58.780175781249994,54.838378906250114],[-58.39814453124998,54.77412109374998],[-57.96245117187493,54.875732421875085],[-57.40449218750004,54.59086914062496],[-57.69926757812496,54.38657226562506],[-58.435205078124966,54.228125],[-58.63320312499999,54.04956054687497],[-59.8230468749999,53.83442382812504],[-60.14492187499994,53.59614257812498],[-60.395410156249994,53.653320312500085],[-60.1002929687499,53.48696289062511],[-60.329492187499966,53.26611328125006],[-58.652050781249926,53.97788085937495],[-57.935986328124955,54.09116210937492],[-58.31748046874989,54.11445312500007],[-58.192089843749926,54.228173828125136],[-57.4160644531249,54.162744140625136],[-57.134960937499926,53.79184570312506],[-57.524072265624966,53.61142578125006],[-57.331738281249955,53.469091796875034],[-56.84086914062496,53.73945312500004],[-56.46499023437505,53.76503906250011],[-55.96611328125002,53.4711425781251],[-55.79794921874995,53.211962890625045],[-55.80283203124989,52.64316406249998],[-56.324902343749926,52.54453124999998],[-55.74648437499994,52.4745605468751],[-55.7771484374999,52.3642578125],[-56.01171874999997,52.394482421875125],[-55.695214843749994,52.13779296875006],[-56.97597656250005,51.45766601562505],[-58.510351562500006,51.295068359375136],[-59.88632812499992,50.316406250000085],[-61.72485351562503,50.10405273437499],[-61.91953124999989,50.2328613281251],[-62.71542968749995,50.30166015625008],[-66.49550781249991,50.2118652343751],[-66.94116210937503,49.993701171875045],[-67.37202148437495,49.348437500000045],[-68.28193359374998,49.197167968750136],[-69.67387695312496,48.19916992187504],[-71.01826171874993,48.455615234375045],[-69.86552734374993,48.17226562500005],[-69.775,48.09809570312504],[-69.9944335937499,47.73989257812508],[-70.70585937499996,47.13979492187505],[-71.26777343749995,46.79594726562499],[-71.87958984374998,46.68681640624996],[-72.98100585937493,46.209716796875085],[-73.4766113281249,45.738232421874955],[-74.03784179687494,45.501855468750136],[-74.31508789062494,45.531054687500045],[-73.97382812499995,45.345117187499994],[-74.70888671874997,45.0038574218751]]],[[[-96.78232421874998,72.93662109375],[-97.0927734375,72.99692382812503],[-96.86240234374995,73.18881835937506],[-96.78232421874998,72.93662109375]]],[[[-114.52153320312502,72.592919921875],[-113.57807617187501,72.65209960937506],[-113.2923828125,72.94980468750003],[-112.75361328125001,72.98603515624995],[-111.26972656249994,72.71372070312498],[-111.895166015625,72.35610351562497],[-111.67509765625002,72.30014648437503],[-110.20512695312495,72.66127929687497],[-110.66083984374998,73.00820312500002],[-110.00844726562494,72.983642578125],[-108.75498046875002,72.55107421874999],[-108.18823242187501,71.72377929687502],[-107.812841796875,71.62617187500004],[-107.30600585937496,71.89467773437502],[-108.23740234374999,73.14990234375003],[-108.029052734375,73.34873046875003],[-106.48212890624998,73.19619140624997],[-105.41513671874995,72.788330078125],[-104.38593749999997,71.57695312500005],[-104.51479492187502,71.06425781250005],[-103.58457031249995,70.63085937500003],[-103.07719726562497,70.50883789062505],[-103.04956054687503,70.65507812499999],[-101.67631835937495,70.27827148437495],[-101.56240234375001,70.135009765625],[-101.04267578125,70.11079101562504],[-100.98237304687497,69.67988281250001],[-101.483837890625,69.85019531250006],[-101.64765624999997,69.69853515625007],[-102.18212890624997,69.845947265625],[-102.59589843749997,69.71791992187502],[-102.62109374999996,69.55151367187506],[-103.464892578125,69.64448242187498],[-103.04892578124999,69.47177734375006],[-103.12021484374995,69.20458984374997],[-102.44677734374997,69.476318359375],[-102.04594726562493,69.46484374999997],[-101.85712890625001,69.02397460937505],[-102.89506835937499,68.8236328125],[-104.57143554687501,68.87211914062502],[-105.105859375,68.92041015625],[-105.019580078125,69.08125],[-106.27016601562497,69.19458007812497],[-106.65908203124997,69.439599609375],[-107.43989257812497,69.00214843749995],[-108.36499023437497,68.93476562499998],[-109.47211914062501,68.67670898437498],[-113.12773437500002,68.49414062500003],[-113.61684570312501,68.8384765625],[-113.69414062499995,69.19501953124998],[-115.61811523437495,69.28295898437506],[-116.51347656249993,69.42460937500005],[-117.19541015624995,70.05405273437503],[-114.59233398437497,70.31245117187498],[-112.63789062499997,70.225244140625],[-111.63256835937497,70.30883789062497],[-113.75727539062503,70.69072265625005],[-115.99091796874997,70.586279296875],[-117.58706054687498,70.62954101562502],[-118.2640625,70.888330078125],[-118.26909179687493,71.03471679687505],[-115.30341796874997,71.49370117187505],[-117.93564453125003,71.39208984375003],[-118.22646484374995,71.46708984375005],[-117.742333984375,71.65932617187502],[-118.58300781250003,71.64902343749998],[-118.98769531249997,71.7642578125],[-118.94462890624997,71.98554687499995],[-118.21347656249998,72.26289062499998],[-118.481298828125,72.42768554687498],[-118.13310546874995,72.63281250000003],[-114.63823242187499,73.37265625000003],[-114.20639648437495,73.29780273437495],[-114.05170898437497,73.07099609375004],[-114.52153320312502,72.592919921875]]],[[[-105.28891601562499,72.919921875],[-106.92153320312497,73.479833984375],[-106.61396484375001,73.69560546875002],[-105.31796874999995,73.76713867187502],[-104.5875,73.57807617187495],[-104.62172851562495,73.3111328125],[-105.28891601562499,72.919921875]]],[[[-79.53730468749998,73.65449218749998],[-78.2865234375,73.66582031250007],[-77.20654296874997,73.49956054687505],[-76.18339843749999,72.84306640625005],[-77.83593750000003,72.89682617187498],[-79.3193359375,72.75771484375],[-79.820703125,72.82631835937502],[-80.18330078124995,73.22465820312499],[-80.77641601562502,73.33417968750001],[-80.84887695312503,73.72124023437499],[-79.53730468749998,73.65449218749998]]],[[[-86.58935546874997,71.01079101562507],[-85.64384765624999,71.15244140624998],[-85.09487304687497,71.15195312500006],[-84.82373046874997,71.02861328125005],[-84.69941406249995,71.63144531250003],[-85.33906249999998,71.69726562500003],[-85.91162109375,71.98652343749998],[-85.321875,72.23315429687506],[-84.28374023437499,72.04448242187499],[-84.84199218749995,72.30815429687505],[-84.62304687500003,72.37656250000003],[-85.34111328124993,72.42153320312497],[-85.64990234374997,72.72216796875003],[-85.26210937500002,72.95400390625],[-84.25664062499999,72.79672851562503],[-85.454736328125,73.10546875000003],[-84.41606445312496,73.45649414062495],[-83.781884765625,73.41689453125],[-83.72983398437495,73.57587890624995],[-81.946142578125,73.72983398437506],[-81.40615234374997,73.634521484375],[-80.27724609375,72.77016601562502],[-81.229345703125,72.31171874999998],[-80.61147460937497,72.450830078125],[-80.925146484375,71.90766601562501],[-80.18193359374996,72.20878906250007],[-79.884375,72.17719726562501],[-80.10893554687499,72.33217773437497],[-79.83129882812503,72.44628906250003],[-79.000244140625,72.27202148437507],[-79.00781250000003,72.04291992187501],[-78.58510742187497,71.880615234375],[-78.86274414062495,72.100830078125],[-78.69926757812496,72.35141601562498],[-77.51650390624997,72.17778320312505],[-78.48427734374994,72.47060546875002],[-77.75322265624996,72.72475585937502],[-75.70429687499998,72.57153320312497],[-75.05268554687493,72.22636718749999],[-75.92280273437501,71.71723632812501],[-74.90317382812503,72.10048828125002],[-74.20932617187498,71.978662109375],[-74.31572265624999,71.84267578125],[-75.20478515625001,71.70913085937497],[-74.70078125,71.67558593750005],[-74.99619140624998,71.21811523437503],[-74.48808593750002,71.64838867187501],[-73.8140625,71.77143554687495],[-74.197265625,71.404150390625],[-73.71284179687498,71.58759765624998],[-73.18061523437501,71.282861328125],[-73.27822265625,71.53798828125],[-72.901953125,71.67778320312507],[-71.64067382812499,71.51625976562502],[-71.22939453124997,71.33876953125],[-71.49501953124997,71.10512695312502],[-71.93793945312498,71.09428710937502],[-72.63271484374994,70.83076171874998],[-71.74252929687495,71.046875],[-71.370849609375,70.97514648437499],[-70.82607421874994,71.10874023437503],[-70.67265625,71.05219726562498],[-70.76171874999997,70.79223632812503],[-71.89018554687502,70.43154296875002],[-71.27587890625,70.50029296874999],[-71.42944335937503,70.12778320312503],[-70.97978515624999,70.5810546875],[-69.94980468750003,70.84501953125005],[-68.49575195312502,70.61025390625],[-68.363525390625,70.48125],[-70.05771484375,70.042626953125],[-68.77822265625,70.20356445312501],[-69.00830078124997,69.97895507812501],[-68.74404296874997,69.94140625],[-68.05908203124997,70.317236328125],[-67.36367187499994,70.03442382812503],[-67.22163085937495,69.73071289062506],[-68.02041015625,69.77006835937499],[-69.25078124999999,69.51191406249998],[-68.51303710937498,69.57729492187497],[-67.236962890625,69.460107421875],[-66.71674804687495,69.31186523437498],[-66.70742187500002,69.16821289062503],[-68.40629882812499,69.23222656250002],[-69.040625,69.09799804687503],[-68.41552734375,69.17207031250001],[-67.8326171875,69.06596679687499],[-67.88320312500002,68.78398437499999],[-69.31909179687497,68.85698242187505],[-68.21040039062495,68.702978515625],[-67.9384765625,68.524169921875],[-66.74272460937502,68.45776367187497],[-67.032958984375,68.32607421874997],[-66.923095703125,68.06572265625005],[-66.72900390624997,68.12900390625006],[-66.66269531249995,68.03442382812497],[-66.63095703124998,68.21064453124998],[-66.21240234374997,68.280419921875],[-66.44394531249998,67.83383789062506],[-65.94238281250003,68.07094726562505],[-65.86435546875003,67.92285156249997],[-65.50908203124996,67.96826171875],[-65.40126953125002,67.67485351562499],[-65.41533203124996,67.87924804687498],[-64.92231445312495,68.03164062500002],[-65.02109375,67.78754882812495],[-64.63779296875,67.84023437500002],[-63.850195312500034,67.56606445312502],[-64.00795898437502,67.34731445312497],[-64.69995117187494,67.35053710937501],[-63.83623046874993,67.26411132812498],[-63.59160156250002,67.3775390625],[-63.040136718750034,67.235009765625],[-63.70156249999994,66.82236328125003],[-62.962304687499966,66.94926757812505],[-62.37973632812495,66.90537109375],[-62.12358398437499,67.046728515625],[-61.35341796874994,66.689208984375],[-61.52783203124994,66.55810546875003],[-62.12333984374993,66.64306640625003],[-61.57080078125,66.37290039062506],[-61.95634765624993,66.30932617187497],[-62.553125,66.40683593750003],[-62.53359374999994,66.22700195312498],[-61.99160156250002,66.03530273437502],[-62.624121093750006,66.01625976562505],[-62.381982421874966,65.83330078124999],[-62.65888671874998,65.63994140625002],[-63.16894531249997,65.65732421875],[-63.45874023437494,65.85302734375],[-63.42089843749997,65.70859374999998],[-63.651074218749955,65.66098632812506],[-63.33745117187493,65.61674804687502],[-63.36337890624998,65.22973632812503],[-63.606591796874966,64.92807617187503],[-64.345703125,65.17241210937499],[-64.26967773437497,65.40078124999997],[-64.55507812500002,65.1166015625],[-65.401611328125,65.764013671875],[-64.44536132812496,66.31713867187497],[-65.0044921875,66.07773437500003],[-65.82573242187499,65.996923828125],[-65.65634765625003,66.204736328125],[-66.06372070312497,66.13271484374997],[-66.986328125,66.62749023437505],[-67.07685546874995,66.52548828125006],[-67.30732421874993,66.5697265625],[-67.22539062499993,66.31025390624998],[-67.88339843749995,66.46743164062502],[-67.18320312499995,66.03442382812503],[-67.350439453125,65.92973632812502],[-67.82802734374997,65.96518554687503],[-68.45991210937498,66.249267578125],[-68.74892578125,66.200048828125],[-68.21718750000002,66.078857421875],[-68.18671874999993,65.87099609375002],[-67.86645507812497,65.773681640625],[-67.936767578125,65.56489257812501],[-67.56962890624999,65.64355468749997],[-67.11796874999999,65.44038085937495],[-67.3365234375,65.34658203125005],[-66.69741210937502,64.81518554687506],[-66.63549804687503,65.00034179687503],[-66.21464843749999,64.72241210937497],[-65.93852539062496,64.88574218750003],[-65.2748046875,64.63154296875004],[-65.52934570312499,64.50478515624997],[-65.074609375,64.43666992187502],[-65.21298828125003,64.30327148437502],[-65.580322265625,64.29384765624997],[-65.16987304687495,64.02817382812503],[-64.67846679687503,64.027978515625],[-64.79814453124999,63.91596679687498],[-64.4109375,63.70634765625002],[-64.66464843749995,63.24536132812497],[-65.19184570312498,63.764257812500006],[-65.06894531249998,63.26347656250002],[-64.67236328125003,62.921972656250006],[-65.16279296875001,62.93261718750003],[-65.10849609374998,62.62646484375],[-66.22402343749994,63.10717773437497],[-66.228662109375,62.99096679687503],[-66.41445312500002,63.027197265625034],[-66.65498046874998,63.264746093750006],[-66.69746093749993,63.069531249999955],[-67.89326171874993,63.733740234375006],[-67.72255859374997,63.422753906249966],[-68.49375,63.725488281249994],[-68.91108398437498,63.703222656250006],[-68.141259765625,63.17231445312501],[-67.67597656249998,63.093554687500045],[-67.73696289062497,63.00957031249999],[-65.98017578125001,62.20888671875002],[-66.12387695312498,61.89306640625],[-68.53588867187503,62.25561523437506],[-69.12558593749998,62.423974609374966],[-69.604736328125,62.76772460937502],[-70.23613281250002,62.76337890625001],[-70.801416015625,62.91049804687506],[-71.10576171874999,63.00224609375002],[-70.94604492187497,63.12070312499998],[-71.34726562499998,63.066113281249955],[-71.99223632812493,63.41616210937505],[-71.380859375,63.580322265625],[-72.29013671874995,63.72797851562498],[-72.17426757812498,63.893408203125006],[-72.49843749999994,63.82348632812497],[-73.45454101562495,64.39926757812503],[-73.27128906250002,64.58251953125],[-73.91035156249998,64.578125],[-74.064794921875,64.42465820312498],[-74.13046874999998,64.6078125],[-74.46123046874996,64.64467773437505],[-74.68139648437497,64.8306640625],[-74.91943359374997,64.76552734374997],[-74.69472656250002,64.49658203124997],[-75.71503906249995,64.52436523437495],[-75.76669921875,64.39194335937498],[-76.85615234374998,64.23764648437498],[-77.76049804687503,64.36015624999999],[-78.04521484374993,64.499267578125],[-78.09560546875,64.93925781250002],[-77.36088867187496,65.19653320312503],[-77.32670898437493,65.453125],[-75.82832031249993,65.22705078125003],[-75.45209960937495,64.84160156250002],[-75.35712890624995,65.00874023437495],[-75.79868164062503,65.297509765625],[-75.16630859374999,65.28393554687497],[-74.13847656250002,65.50346679687502],[-73.55078125000003,65.48525390625005],[-74.41640624999997,66.16708984375003],[-73.03325195312502,66.72817382812505],[-72.78881835937494,67.030615234375],[-72.22001953124999,67.25429687500002],[-73.28447265624993,68.35698242187505],[-73.82050781249998,68.36293945312502],[-73.82211914062495,68.68598632812501],[-74.11796875000002,68.70092773437506],[-73.9892578125,68.54863281250002],[-74.2701171875,68.54121093750001],[-74.89296875,68.80815429687505],[-74.71669921874997,69.04550781249998],[-76.58505859375,68.69873046875003],[-76.55722656250003,69.00947265625001],[-75.9537109375,69.03081054687502],[-75.64775390625002,69.212548828125],[-76.46494140624995,69.46943359375001],[-76.23408203125001,69.66210937500003],[-76.742333984375,69.57290039062497],[-77.08994140625,69.63510742187503],[-76.85859374999995,69.775390625],[-77.591650390625,69.84560546875002],[-77.77402343750003,70.23852539062503],[-78.28281250000003,70.229150390625],[-79.06640624999997,70.60356445312507],[-79.40522460937498,70.40073242187503],[-78.86284179687499,70.24189453125001],[-78.88964843750003,69.97749023437495],[-79.51542968749996,69.88759765625005],[-81.65195312500003,70.09462890625002],[-80.92172851562503,69.73090820312501],[-81.56469726562503,69.94272460937498],[-82.29384765624997,69.83691406250003],[-83.14995117187493,70.00908203125002],[-83.85908203124998,69.96274414062498],[-85.43237304687497,70.11137695312507],[-85.780029296875,70.03666992187505],[-86.32202148437503,70.14541015625],[-86.396875,70.46533203124997],[-87.838134765625,70.24658203125],[-88.78271484374997,70.49448242187503],[-89.45590820312498,71.06171874999995],[-87.84492187499995,70.94438476562505],[-87.14008789062498,71.01162109374997],[-89.80537109374993,71.46230468750005],[-89.86152343750001,72.41191406250005],[-88.70517578124998,73.40327148437495],[-87.71977539062496,73.72290039062497],[-85.95078124999998,73.85014648437505],[-84.94677734375,73.72163085937498],[-86.00053710937499,73.31254882812505],[-86.65629882812502,72.72402343750005],[-86.21845703124998,71.89912109375004],[-85.02338867187495,71.35322265625001],[-86.58935546874997,71.01079101562507]]],[[[-100.00190429687497,73.9458984375],[-99.15795898437499,73.73159179687497],[-97.66997070312499,73.88774414062499],[-97.1705078125,73.82485351562497],[-97.001708984375,73.66650390625003],[-97.62587890624997,73.50229492187498],[-97.27250976562502,73.38681640624998],[-98.42177734375002,72.94101562500003],[-97.63632812499998,73.02763671874999],[-97.128125,72.62758789062502],[-96.59208984374996,72.71025390624999],[-96.44560546874996,72.55244140624998],[-96.80146484374998,72.32241210937502],[-96.61342773437494,71.83383789062506],[-97.58227539062497,71.62968750000005],[-98.18134765624998,71.66245117187503],[-98.32270507812501,71.85234375000002],[-98.19863281249994,71.44086914062501],[-98.66289062499993,71.302099609375],[-99.22363281249996,71.387109375],[-100.594482421875,72.15234375000003],[-101.20854492187495,72.31699218749998],[-101.72392578124996,72.31489257812501],[-102.70874023437496,72.76450195312503],[-102.20400390624998,73.077294921875],[-101.27319335937497,72.7216796875],[-100.48476562500002,72.77294921874997],[-100.395703125,72.97700195312498],[-100.128125,72.90668945312495],[-100.53637695312497,73.19785156250003],[-99.82514648437503,73.2138671875],[-100.36611328125001,73.359033203125],[-100.88935546875003,73.27534179687501],[-101.52319335937501,73.48637695312502],[-100.97578124999995,73.59975585937502],[-100.5216796875,73.44931640625],[-100.96298828125002,73.79140625],[-99.99111328125,73.79516601562503],[-100.00190429687497,73.9458984375]]],[[[-98.270361328125,73.86850585937498],[-98.97392578124997,73.81206054687502],[-99.4169921875,73.89541015625002],[-97.69824218749997,74.10869140625005],[-98.270361328125,73.86850585937498]]],[[[-93.17084960937498,74.16098632812506],[-92.22270507812502,73.97236328124998],[-90.62744140625,73.95170898437505],[-90.38139648437496,73.82475585937502],[-92.11791992187497,72.75380859375],[-94.21132812499997,72.75693359375],[-93.77055664062496,72.66821289062506],[-93.55517578124994,72.42114257812497],[-94.03754882812498,72.02875976562498],[-95.00786132812496,72.01279296875],[-95.60214843749998,72.88447265624995],[-95.63291015625003,73.69545898437497],[-94.697607421875,73.66357421874997],[-95.134130859375,73.88125],[-94.97353515625,74.04140625000002],[-93.17084960937498,74.16098632812506]]],[[[-119.73632812499997,74.11264648437498],[-119.20595703125002,74.19799804687503],[-119.11796874999995,74.01552734375],[-118.54399414062499,74.24462890625003],[-117.51484375000001,74.23173828124999],[-115.51069335937501,73.61875],[-115.446875,73.43886718750002],[-118.96157226562497,72.68413085937499],[-119.51284179687501,72.30268554687501],[-120.17988281250001,72.21264648437506],[-120.61933593750001,71.50576171875002],[-121.47216796875003,71.38901367187503],[-121.74936523437502,71.44477539062501],[-123.09565429687503,71.09379882812502],[-124.00776367187494,71.67744140624998],[-125.29667968749999,71.973046875],[-125.84531250000002,71.978662109375],[-123.79726562499997,73.76816406250003],[-124.69624023437497,74.34819335937499],[-121.50415039062497,74.54511718749998],[-119.56264648437494,74.23281250000002],[-119.73632812499997,74.11264648437498]]],[[[-97.35551757812496,74.52631835937495],[-97.75,74.51054687500005],[-97.41650390624994,74.62656250000003],[-97.35551757812496,74.52631835937495]]],[[[-95.306640625,74.50541992187505],[-95.850732421875,74.58247070312504],[-95.51020507812498,74.63676757812499],[-95.306640625,74.50541992187505]]],[[[-104.11992187499995,75.03632812500004],[-104.88740234374998,75.14775390624999],[-104.34619140624996,75.42993164062503],[-103.64350585937497,75.18657226562499],[-104.11992187499995,75.03632812500004]]],[[[-93.54257812499995,75.0279296875],[-93.57309570312495,74.66884765625005],[-94.53452148437498,74.63671874999997],[-96.59960937499997,75.03178710937499],[-95.95463867187493,75.44379882812501],[-94.878173828125,75.63002929687502],[-93.90908203125002,75.42250976562502],[-93.54257812499995,75.0279296875]]],[[[-96.07856445312495,75.510107421875],[-96.91513671875003,75.37968749999999],[-96.98281249999997,75.50981445312505],[-96.367822265625,75.65463867187506],[-96.07856445312495,75.510107421875]]],[[[-94.52656249999995,75.74931640624999],[-94.901220703125,75.93076171875],[-94.53789062499996,75.99643554687506],[-94.52656249999995,75.74931640624999]]],[[[-118.328125,75.57968749999998],[-118.81713867187503,75.52211914062497],[-119.39458007812499,75.617333984375],[-117.63369140624998,76.11508789062498],[-118.328125,75.57968749999998]]],[[[-79.0630859375,75.92587890624998],[-79.63876953124995,75.84291992187505],[-79.00932617187499,76.14589843750005],[-79.0630859375,75.92587890624998]]],[[[-102.22734374999995,76.014892578125],[-102.00800781250003,75.93940429687498],[-102.57958984375003,75.78022460937498],[-103.31474609374996,75.76420898437499],[-103.04150390624999,75.91884765624997],[-103.98525390624997,75.93310546875003],[-103.80078124999994,76.03701171874997],[-104.24248046874996,76.04697265625006],[-104.35063476562497,76.18232421875001],[-102.72802734374999,76.30703125],[-102.22734374999995,76.014892578125]]],[[[-104.02285156249998,76.58310546875003],[-103.05131835937495,76.44985351562497],[-103.31137695312499,76.34755859375],[-104.35751953124995,76.33461914062502],[-104.58569335937499,76.60649414062499],[-104.07451171875003,76.66611328124998],[-104.02285156249998,76.58310546875003]]],[[[-97.70092773437497,76.46650390624998],[-97.89052734374997,75.7603515625],[-97.40751953124999,75.67250976562497],[-97.33603515624998,75.41982421875],[-97.65332031249997,75.50776367187498],[-97.87822265624996,75.41611328125003],[-97.67431640624997,75.127294921875],[-98.04531249999997,75.20083007812497],[-98.12094726562503,75.03271484375],[-100.234375,75.00771484374997],[-100.48349609374995,75.18842773437501],[-100.14570312499995,75.24614257812505],[-100.71191406250003,75.40634765625],[-99.19458007812499,75.698388671875],[-102.58740234375001,75.51367187500003],[-102.79750976562501,75.59965820312505],[-102.14472656249998,75.87504882812502],[-100.97280273437498,75.79843750000003],[-101.414990234375,75.84584960937502],[-101.87211914062496,76.08310546875003],[-101.52895507812495,76.21728515625003],[-102.1046875,76.33120117187505],[-101.41518554687495,76.42490234375003],[-99.86547851562499,75.92421875],[-100.11284179687502,76.11723632812507],[-99.54106445312497,76.14628906250005],[-100.41420898437495,76.242529296875],[-99.97773437500003,76.31245117187495],[-100.82973632812497,76.52387695312495],[-99.8140625,76.6322265625],[-98.89033203125,76.46557617187497],[-98.71083984374994,76.69384765625003],[-97.70092773437497,76.46650390624998]]],[[[-101.22612304687497,76.57934570312497],[-101.61308593749995,76.60458984375006],[-100.26914062499998,76.73413085937497],[-101.22612304687497,76.57934570312497]]],[[[-108.29238281250001,76.05712890625],[-107.72348632812502,75.99541015625002],[-108.020703125,75.80478515625],[-107.21621093749997,75.89155273437501],[-106.91352539062503,75.67963867187501],[-106.67700195312499,76.02373046875002],[-105.63266601562493,75.94536132812505],[-105.51948242187497,75.63237304687505],[-106.09262695312495,75.08945312500003],[-107.15341796874996,74.9271484375],[-108.47475585937495,74.94721679687501],[-108.83129882812501,75.06489257812498],[-112.51933593749997,74.41684570312503],[-113.67158203124997,74.45302734375005],[-114.31269531250003,74.71508789062506],[-112.835986328125,74.9755859375],[-111.67109375,75.01943359374997],[-111.09345703125001,75.25629882812498],[-113.71176757812499,75.06860351562503],[-113.85332031249996,75.259375],[-113.46708984374996,75.41611328125003],[-114.01650390624998,75.43427734375001],[-114.16845703124994,75.23950195312503],[-114.51381835937497,75.27548828125],[-114.45175781250002,75.08789062499997],[-115.02011718749999,74.97617187500003],[-115.41318359374995,75.11499023437497],[-115.72885742187496,74.968115234375],[-116.47607421874996,75.17177734375],[-117.56523437499997,75.23334960937504],[-117.25761718750002,75.45952148437502],[-116.07714843749996,75.49296874999999],[-115.14184570312501,75.67851562500005],[-116.42563476562498,75.58535156249997],[-117.16362304687496,75.64487304687503],[-116.80214843749995,75.77158203124998],[-114.99150390625002,75.896337890625],[-116.66455078124999,75.95756835937505],[-116.20986328125,76.19443359374998],[-114.77861328124999,76.17260742187497],[-115.82216796874997,76.27001953125003],[-114.99848632812503,76.4974609375],[-114.19394531249999,76.45146484375005],[-113.82348632812501,76.20683593750002],[-112.69760742187496,76.20170898437505],[-111.05268554687495,75.54853515625001],[-108.94716796875,75.54179687499999],[-108.94477539062495,75.69897460937503],[-109.8705078125,75.929052734375],[-109.48681640624999,76.14467773437497],[-110.31445312500001,76.369384765625],[-109.09824218749996,76.811865234375],[-108.46699218749997,76.73759765625007],[-108.29238281250001,76.05712890625]]],[[[-89.72646484374994,76.50742187499998],[-90.55625,76.73457031249998],[-90.13632812499995,76.83696289062505],[-89.69541015625,76.74116210937498],[-89.72646484374994,76.50742187499998]]],[[[-113.56069335937494,76.74326171874998],[-114.83525390624999,76.79467773437497],[-113.89165039062495,76.89487304687503],[-113.56069335937494,76.74326171874998]]],[[[-94.29497070312493,76.91245117187498],[-93.23002929687496,76.77026367187497],[-93.53457031250002,76.44770507812498],[-92.99536132812494,76.62041015624999],[-91.305029296875,76.68076171875003],[-90.54262695312494,76.495751953125],[-91.41508789062496,76.45585937500005],[-89.28452148437498,76.30161132812506],[-89.40659179687498,76.18916015624998],[-91.40732421874998,76.22006835937506],[-89.27758789062497,75.79506835937497],[-89.64604492187499,75.5650390625],[-88.91669921874998,75.45395507812503],[-88.64497070312495,75.65844726562503],[-88.201318359375,75.51201171875005],[-87.72973632812503,75.57563476562495],[-87.53911132812502,75.48486328125003],[-87.25693359374998,75.61772460937499],[-85.95146484374993,75.39501953125],[-85.97299804687498,75.5287109375],[-83.931982421875,75.81894531250003],[-83.23710937499993,75.75083007812503],[-82.153662109375,75.83105468750003],[-80.32197265624998,75.62910156250001],[-79.50908203125002,75.25981445312499],[-80.38198242187494,75.03417968750003],[-79.40141601562502,74.91762695312502],[-79.944482421875,74.83364257812505],[-80.34775390624998,74.90297851562505],[-80.26274414062499,74.58447265625],[-81.94018554687494,74.47270507812505],[-82.73579101562495,74.53027343749997],[-83.5220703125,74.90146484375],[-83.53188476562494,74.58569335937497],[-84.42553710937503,74.50810546875007],[-85.06142578125,74.60693359375003],[-85.133447265625,74.517431640625],[-85.44233398437495,74.6005859375],[-85.80800781249994,74.49897460937498],[-88.42304687499995,74.49414062499997],[-88.53496093749993,74.83173828125001],[-89.55869140624995,74.55473632812507],[-90.55327148437499,74.61274414062498],[-90.88022460937498,74.8177734375],[-91.13457031250002,74.64985351562498],[-91.54912109375002,74.65556640624999],[-92.3892578125,75.263330078125],[-92.18510742187499,75.84653320312498],[-93.09174804687495,76.35400390624997],[-95.27387695312498,76.26440429687503],[-96.03969726562494,76.48671875000002],[-95.65097656249998,76.58466796874998],[-96.88071289062495,76.73833007812505],[-96.40156249999995,76.79721679687503],[-96.75830078124997,76.97177734374998],[-95.84951171875002,77.06621093750005],[-94.29497070312493,76.91245117187498]]],[[[-115.55126953125001,77.36328125],[-116.32919921874996,77.137060546875],[-115.81005859374999,76.939111328125],[-116.25273437500002,76.90141601562505],[-115.94628906250003,76.71127929687503],[-116.99921874999995,76.531591796875],[-117.23359375000001,76.28154296875005],[-117.99296874999999,76.40581054687505],[-117.88081054687497,76.80507812500005],[-118.79140624999994,76.51298828125005],[-119.080712890625,76.12407226562505],[-119.58037109375,76.32651367187498],[-119.52612304687496,75.99721679687505],[-119.91289062499997,75.85883789062501],[-120.40888671874995,75.82563476562498],[-120.84838867187496,76.18266601562499],[-121.21347656249999,75.98369140625005],[-122.53305664062498,75.95092773437503],[-122.59272460937497,76.16206054687495],[-122.90278320312498,76.13471679687498],[-122.51938476562503,76.353173828125],[-121.56113281250003,76.453466796875],[-119.09018554687496,77.30507812500002],[-116.84355468749995,77.33955078124995],[-117.03974609374995,77.46513671875005],[-116.51132812500003,77.54760742187497],[-115.55126953125001,77.36328125]]],[[[-89.83325195312503,77.26762695312505],[-90.22827148437503,77.21245117187499],[-90.99321289062499,77.32949218750002],[-91.01904296875003,77.64389648437503],[-89.83896484375003,77.49140624999998],[-89.83325195312503,77.26762695312505]]],[[[-104.55815429687497,77.14174804687497],[-105.21508789062496,77.18208007812501],[-106.03559570312495,77.73984375000006],[-105.58789062499997,77.73598632812497],[-104.54223632812501,77.33774414062503],[-104.55815429687497,77.14174804687497]]],[[[-95.484375,77.79199218750003],[-93.30097656249995,77.73979492187505],[-93.54394531249997,77.466650390625],[-95.98706054687497,77.484130859375],[-96.19458007812497,77.70053710937503],[-95.484375,77.79199218750003]]],[[[-101.6935546875,77.69658203125005],[-102.37783203124995,77.728125],[-102.44770507812498,77.88061523437506],[-101.19321289062493,77.82978515624998],[-101.00205078124998,77.73510742187497],[-101.6935546875,77.69658203125005]]],[[[-113.83247070312497,77.75463867187506],[-114.28720703124998,77.72148437500005],[-114.98041992187498,77.91542968750002],[-114.33037109374997,78.07753906250002],[-113.83247070312497,77.75463867187506]]],[[[-110.45805664062496,78.10322265625001],[-109.62226562499995,78.07475585937499],[-110.865625,77.834130859375],[-110.15273437500002,77.76293945312506],[-110.19848632812501,77.52451171874998],[-112.37265625000002,77.36411132812498],[-113.16435546875002,77.5302734375],[-113.21518554687498,77.90351562500001],[-110.45805664062496,78.10322265625001]]],[[[-109.81596679687499,78.65039062500003],[-109.48447265624995,78.31640625],[-111.16918945312499,78.38627929687505],[-111.51748046874997,78.27470703125005],[-112.13125,78.366064453125],[-113.22304687499998,78.29790039062505],[-112.85585937499997,78.46684570312502],[-110.877587890625,78.73505859375004],[-109.81596679687499,78.65039062500003]]],[[[-96.20449218749994,78.53129882812499],[-94.91538085937495,78.39052734375002],[-95.32924804687497,78.22504882812495],[-94.93427734374998,78.07563476562498],[-96.98964843749994,77.80600585937503],[-97.65815429687498,78.090625],[-96.944677734375,78.15185546874997],[-98.04951171874995,78.325927734375],[-98.33261718749998,78.77353515625006],[-97.38232421875,78.78291015625001],[-96.20449218749994,78.53129882812499]]],[[[-103.42602539062499,79.315625],[-102.57617187499996,78.87939453125003],[-101.70366210937502,79.07890625000002],[-101.128125,78.80166015625002],[-100.43549804687503,78.8203125],[-99.60942382812495,78.58305664062507],[-99.16640625000002,77.85693359375003],[-100.27465820312503,77.83271484374995],[-101.07412109375001,78.19384765625],[-102.60698242187502,78.24892578125002],[-102.73134765624995,78.37104492187495],[-103.94658203124999,78.26000976562497],[-104.76357421874998,78.35166015625],[-104.90961914062498,78.55263671875],[-103.57050781250003,78.53984375000005],[-104.02084960937502,78.63491210937497],[-103.37158203125,78.73632812500003],[-104.18500976562498,78.78129882812505],[-104.15195312499999,78.989892578125],[-104.89550781249996,78.80815429687502],[-104.74677734375003,79.02709960937503],[-105.53564453124999,79.03251953125007],[-105.51455078124995,79.24248046875002],[-105.38769531249994,79.32358398437503],[-103.42602539062499,79.315625]]],[[[-98.79160156249995,79.98110351562505],[-98.94521484375,79.72407226562498],[-100.05683593749997,79.89824218750005],[-100.05327148437496,80.093359375],[-99.15322265625001,80.12421874999998],[-98.79160156249995,79.98110351562505]]],[[[-91.88554687499999,81.13286132812505],[-90.64301757812498,80.59370117187498],[-89.23559570312494,80.51064453125002],[-88.85732421874997,80.16621093750001],[-88.19990234374998,80.11147460937497],[-88.5248046875,80.41801757812507],[-87.675,80.37211914062505],[-87.92231445312501,80.09770507812499],[-86.97719726562502,79.89423828125001],[-87.29516601562494,79.58017578124998],[-86.33696289062496,79.63496093749995],[-86.00703124999998,79.47944335937498],[-85.6478515625,79.61142578125006],[-85.04213867187497,79.2845703125],[-86.95717773437502,78.97490234375005],[-87.61738281249995,78.67631835937505],[-88.04018554687494,78.99531250000004],[-87.98286132812498,78.53706054687501],[-88.74160156250002,78.58403320312499],[-88.82241210937497,78.18588867187498],[-90.037109375,78.60683593750002],[-89.52568359374999,78.15961914062495],[-90.29721679687495,78.32802734374997],[-90.614404296875,78.14985351562501],[-92.35126953125001,78.312890625],[-92.8482421875,78.46010742187497],[-91.86689453124998,78.54267578125001],[-93.26660156249997,78.60830078124997],[-93.63442382812502,78.75092773437498],[-93.15986328124998,78.77563476562503],[-94.11459960937498,78.92890625000001],[-92.54721679687495,79.28261718750002],[-91.29990234375003,79.372705078125],[-92.82192382812497,79.44990234375001],[-93.93315429687496,79.29072265624998],[-94.11030273437498,79.40156250000001],[-95.10317382812502,79.289892578125],[-95.66289062500002,79.52734374999997],[-94.40185546874997,79.736328125],[-95.73935546874995,79.66015625000003],[-96.58906249999995,79.91665039062497],[-96.77324218749999,80.13579101562502],[-94.64589843749994,80.04873046874997],[-94.26259765625002,80.19487304687499],[-95.40507812499996,80.13500976562506],[-96.39409179687493,80.31503906250003],[-95.549072265625,80.36660156249997],[-95.92695312499998,80.72065429687498],[-93.92792968749995,80.55917968750003],[-95.51474609375003,80.83813476562503],[-94.98051757812499,81.04965820312503],[-93.28671874999998,81.10029296874998],[-94.22011718749997,81.33076171875004],[-93.03466796874997,81.3462890625],[-91.88554687499999,81.13286132812505]]],[[[-69.4888671875,83.01679687499998],[-66.42255859374998,82.92685546875003],[-68.46933593749995,82.65336914062502],[-65.29902343749995,82.79960937500005],[-64.98388671874997,82.90229492187501],[-64.50400390625,82.77841796874998],[-63.641015624999966,82.81259765625003],[-63.246777343749926,82.4501953125],[-62.47519531249995,82.51958007812502],[-61.392480468749994,82.44189453125],[-61.61538085937502,82.18442382812503],[-64.43579101562497,81.74262695312501],[-66.62573242187497,81.61640624999995],[-68.68852539062493,81.29331054687503],[-64.78007812499993,81.49287109375001],[-69.55068359375,80.38325195312498],[-70.71259765625001,80.53959960937505],[-70.264892578125,80.23359374999998],[-72.05595703124996,80.12324218749995],[-70.56840820312493,80.09370117187498],[-71.387841796875,79.76176757812505],[-72.43652343750003,79.69438476562499],[-74.39448242187495,79.87407226562499],[-73.47246093749996,79.7564453125],[-73.36152343750001,79.50400390625],[-75.50341796875,79.41416015625],[-76.898828125,79.5123046875],[-75.60273437499998,79.23955078125005],[-74.48120117187503,79.22949218750006],[-74.64091796874996,79.03554687499997],[-78.58164062499998,79.075],[-77.88276367187498,78.9423828125],[-76.255859375,79.00683593749997],[-74.486328125,78.75009765624998],[-74.87861328124998,78.54482421875],[-76.41611328124995,78.51152343750005],[-75.19345703125,78.327734375],[-75.86596679687497,78.00981445312499],[-78.01259765624997,77.94604492187506],[-78.07617187500003,77.51904296875],[-78.70849609374997,77.34213867187503],[-80.57304687499996,77.31479492187506],[-81.65908203124997,77.52543945312499],[-81.3013671875,77.34404296875007],[-82.056787109375,77.29653320312497],[-81.75634765624997,77.20400390625005],[-79.49726562500001,77.19609375000005],[-78.97919921874998,76.89287109374999],[-78.28886718750002,76.97797851562501],[-77.98330078124994,76.75498046875006],[-78.284326171875,76.57124023437501],[-80.79970703124997,76.173583984375],[-80.97451171874994,76.470068359375],[-81.71738281250003,76.494970703125],[-82.52983398437499,76.723291015625],[-82.23315429687494,76.46582031250003],[-83.88569335937501,76.453125],[-84.22377929687497,76.67534179687499],[-84.27534179687498,76.35654296875006],[-85.141259765625,76.30458984375005],[-86.45371093750003,76.58486328125002],[-86.68022460937499,76.37661132812497],[-87.35419921874998,76.44804687500005],[-87.48979492187499,76.58583984374997],[-87.49755859374997,76.38627929687499],[-88.39599609374997,76.40527343750003],[-88.49584960937497,76.77285156249997],[-88.54580078125002,76.42089843750003],[-89.36962890624997,76.474462890625],[-89.49975585937503,76.82680664062502],[-88.39814453124995,77.10395507812501],[-86.81225585937497,77.18491210937498],[-87.68144531249996,77.43637695312503],[-88.01699218750002,77.78471679687505],[-86.75507812499998,77.86372070312498],[-85.58847656249998,77.46113281250004],[-84.73867187499997,77.36103515624998],[-83.72128906249998,77.41420898437497],[-82.7103515625,77.84951171875002],[-82.5953125,77.99213867187504],[-83.77939453125,77.53261718750002],[-85.28935546874996,77.55903320312498],[-85.54755859374998,77.92768554687495],[-84.61542968749998,78.19570312500002],[-84.22270507812499,78.176025390625],[-84.91035156249993,78.23969726562501],[-84.78320312499997,78.52758789062506],[-85.5859375,78.10957031249998],[-86.21777343750003,78.08120117187497],[-85.92006835937494,78.34287109374998],[-86.91323242187494,78.126806640625],[-87.5517578125,78.17661132812503],[-86.80791015624999,78.77436523437495],[-85.00375976562495,78.912255859375],[-83.27143554687501,78.77031250000002],[-81.75009765624995,78.97578124999995],[-82.43876953125002,78.903662109375],[-84.41201171875002,78.99658203125003],[-84.38359375000002,79.1185546875],[-83.57587890624995,79.05366210937501],[-86.42075195312498,79.84521484374997],[-86.49853515625003,80.25825195312501],[-83.72363281250003,80.22895507812501],[-81.68837890625,79.685791015625],[-80.47592773437498,79.60625],[-80.12446289062495,79.66948242187507],[-81.01015625000002,79.693115234375],[-82.98701171874995,80.32260742187498],[-76.86298828124995,80.86479492187505],[-78.71621093749994,80.95166015624997],[-76.88510742187503,81.43027343750006],[-81.00703125000001,80.6548828125],[-82.88432617187502,80.57753906249997],[-82.22236328124998,80.77231445312503],[-84.41782226562495,80.52675781250002],[-86.250341796875,80.56577148437506],[-86.60307617187499,80.66401367187498],[-85.63930664062494,80.92460937500007],[-83.288818359375,81.14794921875],[-85.780859375,81.03505859375],[-87.32988281250002,80.669775390625],[-88.00366210937497,80.675390625],[-89.16689453125,80.94130859375],[-86.47675781249993,81.03574218750006],[-84.94121093750002,81.28623046875],[-87.27509765624995,81.080810546875],[-89.623046875,81.032470703125],[-89.94731445312499,81.17265625000005],[-89.20869140624998,81.25009765625003],[-89.67368164062503,81.32861328125003],[-87.59702148437498,81.52583007812498],[-88.47905273437502,81.56464843749998],[-90.41630859374996,81.40537109375003],[-89.82167968749997,81.63486328124998],[-91.29238281250002,81.57124023437498],[-91.64755859374998,81.68383789062503],[-88.06318359375001,82.09648437500007],[-87.01821289062502,81.95874023437497],[-86.62680664062495,82.05102539062503],[-85.04482421874997,81.9828125],[-86.615625,82.21855468750007],[-84.89682617187503,82.44941406250001],[-82.63369140625002,82.07729492187497],[-82.53691406250002,82.24726562499995],[-79.465625,81.85112304687499],[-82.44755859374993,82.39501953125003],[-81.68115234375003,82.51865234375],[-82.11684570312497,82.62866210937503],[-80.8625,82.57153320312503],[-81.01015625000002,82.77905273437503],[-78.748779296875,82.67939453124998],[-80.15493164062497,82.91113281250003],[-77.61806640624997,82.89584960937503],[-76.009375,82.53515625],[-75.565625,82.60854492187502],[-77.12490234374994,83.00854492187497],[-74.41416015624995,83.01313476562501],[-72.65869140625,82.72163085937495],[-73.44189453124994,82.90483398437499],[-72.811669921875,83.08120117187502],[-71.98320312499996,83.10141601562498],[-70.94038085937495,82.90224609375],[-71.08481445312498,83.08266601562497],[-69.96992187499995,83.11611328125005],[-69.4888671875,83.01679687499998]]]]},"properties":{"name":"Canada","childNum":110}},{"geometry":{"type":"Polygon","coordinates":[[[9.527658197470123,47.27026989773668],[9.46249431093294,47.19858962254578],[9.46249431093294,47.09010747968864],[9.409458596647225,47.02019676540292],[9.579979133936737,47.05856388629306],[9.580273437500011,47.057373046875],[10.133496093750011,46.851513671875],[10.349414062500017,46.98476562499999],[10.414941406250023,46.964404296874996],[10.45458984375,46.8994140625],[10.452832031250011,46.86494140625],[10.406054687500017,46.73486328125],[10.39794921875,46.6650390625],[10.4306640625,46.550048828125],[10.195507812500011,46.62109375],[10.1375,46.61435546875],[10.087011718750006,46.599902343749996],[10.061230468750011,46.546777343749994],[10.038281250000011,46.483203125],[10.045605468750011,46.447900390624994],[10.081933593750023,46.420751953125],[10.109667968750017,46.362841796874996],[10.128320312500023,46.238232421875],[10.08056640625,46.227978515625],[10.041015625,46.238085937499996],[9.939257812500017,46.36181640625],[9.884472656250011,46.3677734375],[9.787792968750011,46.346044921875],[9.639453125000017,46.2958984375],[9.57958984375,46.29609375],[9.528710937500023,46.306201171874996],[9.427636718750023,46.482324218749994],[9.399316406250023,46.4806640625],[9.304394531250011,46.495556640625],[9.203417968750017,46.21923828125],[9.11874162946429,46.014892578125],[8.97551618303573,45.81677455357143],[8.74961495535715,46.02246372767857],[8.818554687500011,46.0771484375],[8.458398437500023,46.245898437499996],[8.370703125,46.445117187499996],[8.298535156250011,46.40341796875],[8.23193359375,46.341210937499994],[8.08154296875,46.256005859374994],[7.9931640625,46.015917968749996],[7.327929687500017,45.912353515625],[7.129003906250006,45.880419921874996],[7.055761718750006,45.90380859375],[7.02109375,45.92578125],[6.953710937500006,46.017138671874996],[6.897265625000017,46.0517578125],[6.772070312500006,46.16513671875],[6.758105468750017,46.415771484375],[6.578222656250006,46.437353515625],[6.428906250000011,46.430517578125],[6.321875,46.393701171874994],[6.234667968750017,46.3326171875],[6.199414062500011,46.19306640625],[6.086621093750011,46.147021484374996],[6.006640625000017,46.142333984375],[5.971484375000017,46.151220703125],[5.970019531250017,46.214697265625],[6.0361328125,46.238085937499996],[6.095898437500011,46.27939453125],[6.129687500000017,46.5669921875],[6.41015625,46.755419921874996],[6.429003906250017,46.832275390625],[6.45625,46.94833984375],[6.624804687500017,47.004345703125],[6.666894531250023,47.026513671874994],[6.688085937500006,47.058251953124994],[6.820703125000023,47.16318359375],[6.952050781250023,47.2671875],[6.978515625,47.302050781249996],[7.000585937500006,47.322509765625],[7.000585937500006,47.339453125],[6.900390625,47.39423828125],[6.968359375,47.45322265625],[7.136035156250017,47.48984375],[7.343164062500023,47.43310546875],[7.615625,47.592724609375],[8.454003906250023,47.59619140625],[8.559472656250023,47.6240234375],[8.570507812500011,47.63779296875],[8.567089843750011,47.651904296874996],[8.55234375,47.659130859375],[8.451757812500006,47.651806640625],[8.413281250000011,47.6626953125],[8.403417968750006,47.687792968749996],[8.435742187500011,47.731347656249994],[8.572656250000023,47.775634765625],[9.524023437500006,47.52421875],[9.625878906250023,47.467041015625],[9.527539062500011,47.270751953125],[9.527658197470123,47.27026989773668]]]},"properties":{"name":"Switzerland","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-67.28886718749999,-55.776855468749964],[-67.55996093749997,-55.72480468750002],[-67.39736328124997,-55.58515625],[-67.28886718749999,-55.776855468749964]]],[[[-67.07993164062498,-55.15380859374996],[-67.33969726562495,-55.292578124999984],[-67.4947265625,-55.177441406249976],[-68.07001953124995,-55.22109374999999],[-68.30136718750003,-54.98066406250003],[-67.245263671875,-54.977636718750034],[-67.07993164062498,-55.15380859374996]]],[[[-69.70297851562503,-54.91904296875],[-68.90078125000002,-55.01777343750004],[-68.45800781249997,-54.95966796875002],[-68.61328124999997,-55.155566406250045],[-68.28266601562495,-55.25517578125],[-68.04833984375,-55.6431640625],[-68.86704101562498,-55.45019531250003],[-68.89008789062498,-55.2412109375],[-69.19262695312497,-55.171875],[-69.35922851562498,-55.300683593749945],[-69.18085937499995,-55.47480468749998],[-69.41181640624995,-55.44423828124997],[-69.97978515625002,-55.14746093749999],[-69.88442382812494,-54.88203125000001],[-69.70297851562503,-54.91904296875]]],[[[-70.9916015625,-54.86796874999999],[-70.80483398437497,-54.96767578124996],[-70.41752929687493,-54.908886718749976],[-70.29785156249997,-55.11376953124997],[-70.47558593749994,-55.17705078124998],[-71.43720703125001,-54.88925781249997],[-70.9916015625,-54.86796874999999]]],[[[-71.390478515625,-54.03281250000002],[-71.02192382812495,-54.111816406250036],[-71.14326171874998,-54.374023437499986],[-71.473291015625,-54.23115234375001],[-71.94853515624999,-54.300878906250006],[-72.21044921874997,-54.04775390624995],[-71.996484375,-53.884863281249984],[-71.390478515625,-54.03281250000002]]],[[[-72.92324218749997,-53.481640625],[-72.88222656249997,-53.578320312499976],[-72.48227539062503,-53.58808593750001],[-72.20541992187503,-53.80742187500002],[-72.408544921875,-54.00380859374997],[-72.87099609375,-54.12656250000002],[-72.76376953125,-53.86484375],[-73.03945312499994,-53.83281250000004],[-73.08076171875001,-53.99804687499995],[-73.21064453125001,-53.98583984374995],[-73.31435546875,-53.72919921874998],[-73.845458984375,-53.54580078125001],[-73.44707031249993,-53.41005859374998],[-72.92324218749997,-53.481640625]]],[[[-74.38574218749994,-52.92236328125001],[-73.65400390624998,-53.06982421875003],[-73.13520507812498,-53.35390625],[-73.56728515625,-53.3068359375],[-73.86694335937494,-53.096875],[-74.27021484374995,-53.08154296875002],[-74.71201171874998,-52.74873046874998],[-74.38574218749994,-52.92236328125001]]],[[[-68.62993164062499,-52.65263671875004],[-68.65322265624994,-54.85361328124999],[-69.48627929687493,-54.85888671875],[-69.72343750000002,-54.71210937500003],[-70.49716796875,-54.80957031249999],[-71.83154296874997,-54.62617187500002],[-71.92773437500003,-54.52871093749997],[-71.80014648437498,-54.433984374999945],[-71.07993164062498,-54.444238281249994],[-70.79726562500002,-54.32724609374996],[-70.70112304687498,-54.48544921875004],[-70.31098632812498,-54.52851562500002],[-70.86308593749993,-54.11044921875003],[-70.86772460937499,-53.88417968750002],[-70.53129882812502,-53.627343750000016],[-70.37973632812495,-53.98671874999995],[-70.62983398437493,-54.005566406249976],[-70.53530273437494,-54.136132812500016],[-70.16899414062502,-54.37929687499999],[-69.74184570312494,-54.30585937500005],[-69.25317382812494,-54.557421875000045],[-69.04433593749997,-54.40673828124999],[-69.98813476562503,-54.10908203125001],[-70.15112304687503,-53.88808593750002],[-70.09111328124996,-53.72177734374998],[-69.35595703125003,-53.41630859375001],[-69.63701171874999,-53.33408203125004],[-70.32929687499998,-53.37763671875003],[-70.44335937499994,-53.085546875000034],[-70.130615234375,-52.942773437499994],[-70.38012695312494,-52.75195312500002],[-69.93544921874997,-52.82109374999998],[-69.41406249999997,-52.48623046874997],[-69.16704101562499,-52.66757812499997],[-68.78979492187497,-52.576757812500034],[-68.62993164062499,-52.65263671875004]]],[[[-74.82294921874993,-51.63017578125001],[-74.53681640624998,-51.96513671875004],[-74.69448242187497,-52.27919921874999],[-74.85180664062494,-52.27070312500003],[-75.10537109375,-51.78886718750001],[-74.82294921874993,-51.63017578125001]]],[[[-74.55864257812499,-51.27705078125001],[-74.62036132812497,-51.395703125000026],[-75.04736328125,-51.39833984375003],[-75.28911132812496,-51.625390625000016],[-75.15366210937498,-51.278808593750014],[-74.73666992187503,-51.20761718749999],[-74.55864257812499,-51.27705078125001]]],[[[-75.302001953125,-50.67998046875005],[-75.411376953125,-50.76435546875001],[-75.42763671875002,-50.48056640625002],[-75.11533203124998,-50.510449218749976],[-75.302001953125,-50.67998046875005]]],[[[-75.05478515625,-50.29609375],[-75.44912109374997,-50.34335937500004],[-75.32666015624997,-50.01181640625],[-74.8759765625,-50.10996093750001],[-75.05478515625,-50.29609375]]],[[[-75.106689453125,-48.83652343750001],[-75.38994140624999,-49.15917968750002],[-75.64116210937499,-49.195410156250034],[-75.48764648437498,-49.082421875000016],[-75.58310546874998,-48.85888671874995],[-75.106689453125,-48.83652343750001]]],[[[-74.47617187499998,-49.14785156250002],[-74.59472656249997,-50.00664062500001],[-74.76298828124996,-50.01142578125001],[-74.88041992187502,-49.72587890625001],[-74.72382812499998,-49.42382812500003],[-74.960107421875,-49.533007812499974],[-75.06601562499998,-49.85234375000002],[-75.54980468749994,-49.79130859375002],[-75.30585937499998,-49.49404296875003],[-75.46748046874995,-49.35888671875003],[-75.08603515624998,-49.27021484375],[-75.21015624999995,-49.14804687499998],[-74.94921875,-48.960156249999976],[-74.89624023437503,-48.73320312500002],[-74.54609374999993,-48.76689453125004],[-74.47617187499998,-49.14785156250002]]],[[[-75.51025390624997,-48.76347656250005],[-75.65092773437496,-48.58632812500002],[-75.57148437499993,-48.095898437500026],[-75.39140625000002,-48.01972656249997],[-75.15849609374999,-48.62265624999996],[-75.51025390624997,-48.76347656250005]]],[[[-74.56728515625,-48.591992187500026],[-74.92304687499998,-48.62646484375003],[-75.21289062499997,-48.141699218750034],[-75.19829101562502,-47.974609375000014],[-74.895654296875,-47.839355468749986],[-74.56728515625,-48.591992187500026]]],[[[-75.11220703124997,-47.8376953125],[-75.26103515625002,-47.76386718749998],[-74.92646484374998,-47.72314453125003],[-75.11220703124997,-47.8376953125]]],[[[-74.31289062500002,-45.69150390625002],[-74.46552734374995,-45.757226562499994],[-74.68984375,-45.66259765625],[-74.310546875,-45.17265625000002],[-74.31289062500002,-45.69150390625002]]],[[[-73.63217773437498,-44.82148437499997],[-73.81845703125,-44.65214843750002],[-73.72392578124993,-44.544238281249974],[-73.63217773437498,-44.82148437499997]]],[[[-72.98613281249999,-44.780078124999974],[-73.22846679687498,-44.85996093749999],[-73.39707031249998,-44.77431640624995],[-73.44506835937497,-44.641015624999966],[-73.20771484374993,-44.33496093749997],[-72.7763671875,-44.50859374999999],[-72.98613281249999,-44.780078124999974]]],[[[-73.73535156249997,-44.39453125000003],[-74.00205078125003,-44.59091796874998],[-73.728173828125,-45.195898437500034],[-74.016259765625,-45.344921875000026],[-74.61777343749998,-44.64794921874996],[-74.50180664062498,-44.47353515624995],[-74.09721679687496,-44.38935546875004],[-73.99492187499999,-44.140234375],[-73.70322265624998,-44.27412109375001],[-73.73535156249997,-44.39453125000003]]],[[[-73.81064453125003,-43.827246093750006],[-73.95566406249998,-43.921972656250034],[-74.14296874999997,-43.872167968750006],[-73.81064453125003,-43.827246093750006]]],[[[-73.77338867187498,-43.3458984375],[-74.114404296875,-43.35791015624996],[-74.387353515625,-43.231640625],[-74.03666992187496,-41.79550781249998],[-73.52783203124997,-41.89628906249999],[-73.42290039062499,-42.192871093750014],[-73.47080078124998,-42.46630859375004],[-73.78925781249993,-42.58574218750003],[-73.43632812499996,-42.9365234375],[-73.74965820312494,-43.15908203124995],[-73.77338867187498,-43.3458984375]]],[[[-78.80415039062501,-33.646484374999986],[-78.98945312499993,-33.66171874999998],[-78.87744140625003,-33.57519531250003],[-78.80415039062501,-33.646484374999986]]],[[[-109.27998046874994,-27.14042968749996],[-109.434130859375,-27.171289062500023],[-109.39047851562499,-27.068359375000014],[-109.27998046874994,-27.14042968749996]]],[[[-67.19487304687493,-22.821679687500037],[-67.00878906249994,-23.00136718750005],[-67.35620117187503,-24.033789062499963],[-68.25029296875002,-24.391992187500023],[-68.56201171875,-24.74736328125003],[-68.38422851562495,-25.091894531249977],[-68.59208984375002,-25.420019531250034],[-68.41450195312498,-26.153710937500023],[-68.59160156249999,-26.47041015624997],[-68.31865234374999,-26.973242187500006],[-68.59208984375002,-27.140039062499966],[-68.84633789062494,-27.153710937499994],[-69.17441406249998,-27.924707031250037],[-69.65693359374995,-28.413574218749986],[-69.82788085937497,-29.10322265624997],[-70.02680664062501,-29.324023437500017],[-69.95996093749997,-30.078320312500026],[-69.84428710937493,-30.175],[-69.95634765624996,-30.35820312500003],[-70.15322265625,-30.360937499999963],[-70.30908203124994,-31.02265625000004],[-70.51958007812493,-31.1484375],[-70.585205078125,-31.569433593749963],[-70.25439453125,-31.957714843750026],[-70.36376953125,-32.08349609374997],[-70.02197265625,-32.88457031250002],[-70.08486328125002,-33.20175781249998],[-69.81962890624999,-33.28378906249999],[-69.85244140625,-34.224316406250026],[-70.05205078124999,-34.30078124999997],[-70.39316406250003,-35.146875],[-70.55517578125,-35.246875],[-70.41572265625001,-35.52304687500002],[-70.40478515625,-36.06171874999998],[-71.05551757812498,-36.52373046874996],[-71.19218750000002,-36.84365234375004],[-71.16757812499998,-37.76230468749996],[-70.858642578125,-38.60449218750003],[-71.40156249999995,-38.93505859374996],[-71.53945312499997,-39.60244140624995],[-71.71992187499995,-39.63525390624997],[-71.65976562499998,-40.02080078125],[-71.81831054687493,-40.17666015624995],[-71.70898437499997,-40.381738281249994],[-71.93212890624994,-40.69169921874999],[-71.91127929687497,-41.650390624999986],[-71.75,-42.04677734375001],[-72.10820312499993,-42.25185546874995],[-72.14643554687498,-42.990039062499974],[-71.750634765625,-43.237304687499986],[-71.90498046875001,-43.34755859374998],[-71.68007812500002,-43.92958984374998],[-71.82001953124993,-44.38310546875],[-71.21259765624998,-44.44121093750003],[-71.15971679687496,-44.56025390625004],[-71.26113281250002,-44.763085937499966],[-72.06372070312503,-44.771875],[-72.04169921874998,-44.90419921875004],[-71.5962890625,-44.97919921875004],[-71.34931640624995,-45.33193359374995],[-71.74619140624998,-45.57890625],[-71.63154296874998,-45.95371093749998],[-71.87568359374998,-46.160546875],[-71.69965820312501,-46.6513671875],[-71.94023437499999,-46.83125],[-71.90498046875001,-47.201660156250014],[-72.34594726562497,-47.49267578124997],[-72.517919921875,-47.87636718749998],[-72.32832031250001,-48.11005859374998],[-72.35473632812497,-48.36582031250005],[-72.582861328125,-48.47539062499999],[-72.65126953125,-48.84160156249998],[-73.03364257812501,-49.014355468750004],[-73.13525390625,-49.30068359374999],[-73.46157226562497,-49.31386718750001],[-73.55419921875,-49.463867187500014],[-73.50126953124996,-50.125292968750024],[-73.15292968749998,-50.73828125000003],[-72.50981445312496,-50.607519531250034],[-72.34023437499997,-50.68183593749999],[-72.40766601562501,-51.54082031250002],[-71.91865234374995,-51.98955078125004],[-69.96025390624993,-52.00820312500002],[-68.443359375,-52.35664062500004],[-69.24101562499996,-52.20546874999997],[-69.62031249999995,-52.46474609374995],[-70.79511718749995,-52.76875],[-70.99584960937497,-53.77929687499997],[-71.29775390625002,-53.88339843750004],[-72.1744140625,-53.632324218749964],[-72.41289062500002,-53.35019531250004],[-71.94169921874993,-53.23408203125001],[-71.89169921874998,-53.523535156250006],[-71.79145507812498,-53.48457031249997],[-71.74052734374999,-53.232617187499976],[-71.28896484375002,-53.03369140624995],[-71.22714843750003,-52.810644531249984],[-71.38774414062496,-52.76425781250004],[-72.27802734374998,-53.13232421874997],[-72.54892578125,-53.4607421875],[-73.05273437499997,-53.24345703125005],[-72.72768554687502,-52.7623046875],[-72.453466796875,-52.814453124999964],[-72.11757812499997,-52.65],[-71.51127929687502,-52.60537109375],[-72.22568359374998,-52.52099609374995],[-72.43769531250001,-52.62578124999998],[-72.71210937499995,-52.53554687499999],[-73.12246093749997,-53.073925781249976],[-73.64521484374998,-52.83701171875003],[-73.2408203125,-52.707128906250034],[-73.12392578125,-52.487988281249976],[-73.24414062499997,-52.62402343749998],[-73.58569335937503,-52.68574218750003],[-74.01445312499999,-52.63935546875],[-74.26494140624993,-52.1048828125],[-73.83447265625,-52.23398437500001],[-73.68432617187494,-52.07773437499998],[-73.26044921874993,-52.157812500000034],[-72.79501953124998,-51.94951171875005],[-72.57084960937496,-52.200097656249945],[-72.67705078125002,-52.38466796874998],[-72.52333984374997,-52.255468750000034],[-72.62460937499998,-51.94648437499997],[-72.48964843750002,-51.76367187500003],[-72.76123046875,-51.57324218749996],[-73.16875,-51.45390624999998],[-72.60004882812495,-51.79912109374997],[-73.51816406250003,-52.04101562499996],[-73.75263671874993,-51.795507812500034],[-74.19667968749997,-51.68056640624997],[-73.92978515624995,-51.61787109374999],[-73.93950195312499,-51.26630859375005],[-74.81474609374996,-51.06289062499999],[-75.09467773437495,-50.68125],[-74.68574218749995,-50.662011718749945],[-74.77587890625003,-50.46992187499998],[-74.64448242187498,-50.360937499999984],[-74.365576171875,-50.487890625],[-74.13940429687503,-50.81777343749997],[-73.80654296875,-50.93837890625003],[-73.654443359375,-50.49267578125],[-73.97802734375003,-50.827050781249994],[-74.18559570312493,-50.485351562500014],[-73.95034179687497,-50.510546875],[-74.62958984374998,-50.19404296875],[-74.333740234375,-49.97460937499997],[-73.95859374999998,-49.994726562499984],[-74.32392578124995,-49.783398437500004],[-74.29082031249996,-49.604101562499984],[-73.83637695312493,-49.609375],[-74.09443359374993,-49.42968749999998],[-73.93496093749994,-49.02089843750001],[-74.2212890625,-49.500585937500034],[-74.36655273437503,-49.40048828124998],[-74.34101562499998,-48.59570312499998],[-74.00908203124996,-48.475],[-74.47441406249999,-48.46396484374996],[-74.58466796874998,-47.999023437500014],[-73.39106445312498,-48.14589843750001],[-73.60991210937499,-47.993945312500045],[-73.71586914062499,-47.65546875000001],[-73.94086914062498,-47.92939453125004],[-74.22705078124994,-47.96894531250001],[-74.654931640625,-47.702246093750034],[-74.5337890625,-47.567675781249974],[-74.24296874999999,-47.67929687499998],[-74.13408203125002,-47.590820312499986],[-74.48266601562497,-47.43046875],[-74.15839843749998,-47.18251953125002],[-74.31357421874998,-46.78818359374998],[-74.45419921875003,-46.76679687499997],[-74.51225585937496,-46.88515625000002],[-75.00595703125,-46.74111328124998],[-74.98417968750002,-46.51210937499995],[-75.54033203124999,-46.69873046874996],[-75.43037109374995,-46.93457031249996],[-75.70639648437498,-46.70527343749997],[-74.924462890625,-46.159667968750014],[-75.06669921874993,-45.874902343749994],[-74.15786132812497,-45.7671875],[-74.122705078125,-45.49619140625002],[-73.95717773437494,-45.40439453124998],[-73.825,-45.446875],[-74.01992187500002,-46.055859375],[-74.39296875,-46.21738281250005],[-73.96757812500002,-46.15410156250003],[-73.87871093749993,-45.846875],[-73.73525390624994,-45.81171875],[-73.70815429687502,-46.070312500000014],[-73.94863281249997,-46.533105468749966],[-73.845361328125,-46.56601562500002],[-73.59184570312493,-45.89912109375004],[-73.73076171874999,-45.47998046875],[-73.26621093749995,-45.346191406250014],[-72.933837890625,-45.45234374999997],[-73.44497070312497,-45.23818359374995],[-73.36245117187502,-44.97822265625001],[-72.73896484375001,-44.73417968750003],[-72.680078125,-44.59394531249997],[-72.66386718749999,-44.43642578124995],[-73.26508789062498,-44.16865234375001],[-73.22446289062498,-43.89794921875003],[-73.06879882812495,-43.86201171874998],[-72.99658203125,-43.63154296875001],[-73.07597656250002,-43.323632812499994],[-72.75800781249998,-43.039453125],[-72.84804687500002,-42.66914062499997],[-72.77392578125003,-42.505175781250045],[-72.63183593750003,-42.509667968749994],[-72.77324218749996,-42.257714843749994],[-72.63105468749995,-42.199804687500006],[-72.412353515625,-42.388183593750014],[-72.49941406249997,-41.98085937499999],[-72.82407226562503,-41.90878906249996],[-72.36040039062499,-41.64912109375],[-72.31826171875,-41.49902343749997],[-72.54238281250002,-41.690625],[-72.95283203124995,-41.51474609374998],[-73.24179687499995,-41.78085937500002],[-73.62402343750003,-41.77363281249997],[-73.73515625000002,-41.74248046875002],[-73.62392578125,-41.581347656250045],[-73.81074218749995,-41.51748046875001],[-73.96586914062493,-41.118261718750034],[-73.67099609375,-39.96318359374999],[-73.41040039062503,-39.78916015624998],[-73.22646484375002,-39.22441406250003],[-73.52021484375001,-38.509375],[-73.46479492187498,-38.04033203125003],[-73.66181640624998,-37.69853515625003],[-73.66240234375002,-37.341015625000026],[-73.60166015624998,-37.18847656250003],[-73.21596679687502,-37.16689453124998],[-73.11806640624997,-36.68837890625002],[-72.58735351562493,-35.759667968749994],[-72.62392578125002,-35.5857421875],[-72.22377929687494,-35.096191406250014],[-72.00283203124997,-34.16533203125],[-71.66435546875002,-33.65263671875],[-71.74296875,-33.09511718750001],[-71.45224609374998,-32.65957031250001],[-71.70893554687495,-30.62802734375002],[-71.66948242187499,-30.33037109374996],[-71.40039062499997,-30.142968749999966],[-71.31572265624996,-29.649707031250017],[-71.51923828124993,-28.926464843750026],[-71.30673828124998,-28.672460937499963],[-71.08652343749998,-27.814453124999957],[-70.92578125,-27.588671874999974],[-70.64658203124998,-26.329394531250017],[-70.71372070312498,-25.78417968749997],[-70.44536132812502,-25.17265624999999],[-70.57412109374994,-24.644335937500003],[-70.39233398437494,-23.565917968749957],[-70.59335937499995,-23.255468750000034],[-70.56318359374995,-23.057031250000023],[-70.33168945312494,-22.848632812500014],[-70.08002929687501,-21.356835937500037],[-70.19702148437494,-20.725390625],[-70.15742187499995,-19.70585937500003],[-70.41826171874999,-18.345605468750023],[-69.92636718749998,-18.206054687500014],[-69.80258789062498,-17.990234375000014],[-69.85209960937493,-17.70380859375001],[-69.68476562499995,-17.649804687500023],[-69.58642578125,-17.57324218749997],[-69.51093749999998,-17.50605468749997],[-69.31337890624997,-17.943164062500017],[-69.28232421875003,-17.96484375],[-69.09394531249993,-18.05048828125004],[-69.14545898437495,-18.14404296875],[-69.09228515624994,-18.28242187500004],[-69.02680664062493,-18.65625],[-68.97885742187503,-18.81298828125003],[-68.96831054687502,-18.967968749999983],[-68.85795898437499,-19.09335937500005],[-68.62055664062495,-19.29667968749999],[-68.54785156249997,-19.341113281249974],[-68.49199218749996,-19.381933593750034],[-68.47016601562495,-19.409960937499974],[-68.46289062499997,-19.43281250000001],[-68.57529296874998,-19.56015625000002],[-68.69829101562499,-19.721093750000037],[-68.69619140625,-19.74072265625003],[-68.57827148437494,-19.856542968750006],[-68.559375,-19.902343750000014],[-68.56069335937502,-19.96708984374996],[-68.75932617187499,-20.115527343750003],[-68.74516601562493,-20.45859375],[-68.48432617187498,-20.628417968749957],[-68.55825195312497,-20.90195312499999],[-68.197021484375,-21.30029296874997],[-68.18642578124997,-21.618554687499966],[-67.88173828124997,-22.493359375000026],[-67.87944335937496,-22.822949218750026],[-67.57993164062495,-22.89169921874999],[-67.36225585937493,-22.85517578125001],[-67.19487304687493,-22.821679687500037]]]]},"properties":{"name":"Chile","childNum":26}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[110.88876953125006,19.99194335937497],[111.01367187500003,19.65546875000001],[110.64091796875002,19.291210937499955],[110.45126953125012,18.747949218750023],[110.06738281249997,18.447558593750045],[109.51933593750007,18.21826171875003],[108.7015625,18.535253906250034],[108.66552734375003,19.304101562499994],[109.27666015625002,19.761132812500023],[109.17744140625004,19.768457031250023],[109.26347656250007,19.882666015625006],[110.1715820312501,20.053710937500057],[110.58818359375002,19.976367187500017],[110.6517578125,20.137744140625017],[110.88876953125006,19.99194335937497]]],[[[110.38515625000005,21.093164062499966],[110.52158203125006,21.083105468750063],[110.50390625000003,20.96772460937501],[110.28095703125004,21.001171874999983],[110.38515625000005,21.093164062499966]]],[[[112.64375,21.63964843750003],[112.525,21.62304687500003],[112.64765625000004,21.710253906250017],[112.64375,21.63964843750003]]],[[[112.79023437500004,21.601855468750045],[112.78203125000007,21.772265625000045],[112.86259765625002,21.75263671875004],[112.79023437500004,21.601855468750045]]],[[[118.1830078125,24.496289062499983],[118.0905273437501,24.446142578125063],[118.10380859375002,24.552343750000034],[118.1830078125,24.496289062499983]]],[[[119.82089843750006,25.45698242187504],[119.70029296875012,25.432714843750063],[119.72255859375005,25.638818359375023],[119.83837890625003,25.591064453125],[119.82089843750006,25.45698242187504]]],[[[121.2513671875,28.086425781250057],[121.13154296875004,28.062597656250006],[121.20546875,28.204394531250017],[121.2513671875,28.086425781250057]]],[[[122.29589843750003,29.96342773437499],[122.02402343750012,30.01333007812505],[121.96943359375004,30.143115234375017],[122.28447265625007,30.068017578124994],[122.29589843750003,29.96342773437499]]],[[[121.86269531250005,31.492285156249977],[121.519921875,31.549609375000017],[121.2111328125001,31.80537109375001],[121.86269531250005,31.492285156249977]]],[[[130.52695312500012,42.535400390625],[130.24667968750012,42.744824218749955],[130.24033203125006,42.891796874999955],[129.89824218750002,42.998144531250034],[129.69785156250012,42.448144531249994],[129.3136718750001,42.41357421874997],[128.92343750000006,42.038232421874966],[128.04521484375007,41.9875],[128.28925781250004,41.60742187500006],[128.14941406249997,41.38774414062496],[127.17968750000003,41.531347656250006],[126.95478515625004,41.76948242187501],[126.74306640625,41.724853515625],[125.98906250000002,40.904638671875034],[124.8893554687501,40.459814453125006],[124.36210937500002,40.004052734374994],[124.10576171875002,39.84101562499998],[123.65087890625003,39.881591796875],[122.8400390625001,39.600830078125],[121.98232421875,39.05317382812498],[121.67724609374997,39.00341796875006],[121.64990234375003,38.865087890625034],[121.16357421874997,38.73164062500001],[121.10673828125002,38.920800781249994],[121.6798828125001,39.10869140625002],[121.62763671875004,39.22016601562498],[121.81845703125006,39.38652343750002],[121.27548828125006,39.38476562500003],[121.26748046875,39.544677734375],[121.51757812499997,39.638964843750045],[121.51738281250002,39.84482421875006],[121.8009765625001,39.950537109375006],[122.27500000000012,40.541845703125034],[121.83486328125005,40.97426757812502],[121.72929687500002,40.84614257812504],[121.1745117187501,40.901269531249994],[120.47910156250006,40.23095703125003],[119.39111328125003,39.75249023437499],[118.976953125,39.182568359374955],[118.29785156249997,39.067089843749955],[118.04091796875,39.22675781249998],[117.86572265625003,39.191259765625034],[117.61669921875003,38.852880859375034],[117.5578125000001,38.625146484374994],[117.76669921875012,38.311669921874994],[118.01494140625007,38.18339843749996],[118.94003906250006,38.04277343750002],[119.08916015625007,37.70073242187496],[118.95263671875003,37.33115234374998],[119.28740234375002,37.138281250000034],[119.76054687500007,37.15507812499999],[120.31152343750003,37.62270507812505],[120.2572265625,37.67900390624996],[120.75,37.83393554687501],[121.64023437500012,37.46035156250002],[122.05664062500003,37.528906250000034],[122.66699218750003,37.40283203125003],[122.4466796875,37.06811523437503],[122.51972656250004,36.94682617187502],[122.34091796875012,36.83222656250004],[121.93271484375006,36.95947265625003],[121.05380859375006,36.61137695312499],[120.81083984375007,36.6328125],[120.89580078125007,36.44414062500002],[120.71152343750006,36.41328125000004],[120.6378906250001,36.129931640625045],[120.39306640625003,36.053857421874994],[120.32773437500006,36.228173828124994],[120.18330078125004,36.20244140624999],[120.094140625,36.11889648437503],[120.28476562500006,35.98442382812499],[119.42968749999997,35.301416015624994],[119.16533203125002,34.84882812499998],[119.20097656250002,34.748437499999966],[120.26669921875006,34.274023437500034],[120.87109374999997,33.016503906249994],[120.8532226562501,32.66137695312503],[121.34169921875005,32.42504882812503],[121.40390625000006,32.20625],[121.85634765625,31.816455078125045],[121.86630859375006,31.703564453124955],[121.68085937500004,31.71215820312503],[121.351953125,31.85878906250005],[120.97353515625,31.86938476562497],[120.52011718750006,32.10585937500002],[120.03593750000002,31.93627929687503],[120.7155273437501,31.983740234375006],[120.7877929687501,31.81977539062501],[121.66064453124997,31.319726562499994],[121.87792968750003,30.91699218750003],[121.41894531249997,30.789794921875057],[120.8214843750001,30.354638671875023],[120.44980468750006,30.38784179687505],[120.19462890625002,30.241308593750034],[120.49453125,30.303076171875006],[120.63339843750006,30.133154296875034],[121.25800781250004,30.30410156250005],[121.67792968750004,29.979101562500006],[122.08291015625005,29.870361328125057],[121.50625,29.484570312499955],[121.94121093750002,29.605908203124983],[121.91777343750007,29.13500976562497],[121.71748046875004,29.25634765625],[121.48710937500007,29.193164062500017],[121.67968749999997,28.953125],[121.54003906250003,28.931884765625],[121.6625,28.851416015625034],[121.47519531250006,28.64140625],[121.60996093750006,28.29213867187505],[121.27226562500002,28.222119140624983],[121.14570312500004,28.32666015624997],[120.95859375000006,28.037011718750023],[120.74765625000006,28.00996093750001],[120.83300781249997,27.891455078125034],[120.58750000000012,27.580761718749983],[120.60751953125012,27.41240234374996],[120.2787109375,27.097070312500023],[120.08671875000007,26.67158203125004],[119.88222656250005,26.610449218750006],[119.82421874999997,26.84638671875001],[119.71044921874997,26.728662109375023],[119.58818359375002,26.784960937500045],[119.8810546875001,26.33417968750004],[119.46308593750004,26.05468750000003],[119.13945312500007,26.12177734375001],[119.33203124999997,25.94873046875003],[119.61875000000012,26.003564453124994],[119.53945312500005,25.59125976562504],[119.6224609375,25.391162109375017],[119.180078125,25.449804687499977],[119.285546875,25.232226562500074],[118.97753906249997,25.209277343750017],[118.90908203125005,24.92890625000001],[118.63691406250004,24.835546874999977],[118.65703125000002,24.621435546874977],[118.0871093750001,24.627001953125045],[118.00595703125006,24.48198242187499],[117.84267578125005,24.47431640625004],[118.0560546875,24.24609374999997],[117.62822265625002,23.836718750000074],[117.46640625000012,23.84057617187497],[117.36767578124997,23.58862304687497],[117.29082031250007,23.71435546875],[117.08251953124997,23.578759765625023],[116.91064453124997,23.646679687499983],[116.86093750000006,23.453076171874983],[116.62939453124997,23.353857421875034],[116.69882812500006,23.277783203124983],[116.53828125000004,23.17968749999997],[116.47070312499997,22.945898437500034],[116.25185546875005,22.981347656249994],[115.85214843750006,22.801562500000045],[115.64042968750002,22.853417968750023],[115.49833984375002,22.718847656250063],[115.19580078125003,22.81728515625005],[114.85380859375007,22.616796875000063],[114.65166015625002,22.755273437500023],[114.55419921874997,22.52890625],[114.26601562500005,22.540966796874983],[114.01542968750007,22.51191406250001],[113.61962890624997,22.861425781249977],[113.6205078125,23.12749023437499],[113.51972656250004,23.102099609375074],[113.33105468749997,22.912011718749966],[113.55302734375002,22.594042968750045],[113.54912109375002,22.225195312500034],[113.14902343750012,22.075],[113.08876953125,22.207958984374983],[112.95390625000007,21.907324218750034],[112.80859374999997,21.944628906250074],[112.58632812500005,21.77685546875],[112.35966796875007,21.97802734375003],[112.30498046875002,21.74169921875003],[111.94394531250012,21.84965820312499],[111.60273437500004,21.55908203125003],[111.01689453125007,21.51171874999997],[110.56718750000002,21.21406250000001],[110.41093750000007,21.33813476562497],[110.15400390625004,20.944628906250017],[110.36542968750004,20.837597656249955],[110.31308593750012,20.67167968749999],[110.51152343750007,20.51826171875001],[110.34472656249997,20.29482421875005],[109.88251953125004,20.364062500000045],[109.96835937500006,20.448144531250023],[109.66259765625003,20.91689453125005],[109.68125000000012,21.13164062499999],[109.93076171875012,21.480566406250034],[109.6869140625,21.52460937500004],[109.56640624999997,21.690576171874994],[109.54404296875012,21.537939453125006],[109.14863281250004,21.425537109375],[109.1017578125001,21.59047851562505],[108.77167968750004,21.63046875],[108.59375,21.901025390624994],[108.47988281250005,21.904638671875006],[108.50214843750004,21.633447265624994],[108.32480468750006,21.693505859374994],[108.24628906250004,21.55839843749999],[107.97265624999997,21.507958984375023],[107.75927734374997,21.655029296875057],[107.35117187500012,21.60888671874997],[106.97099609375002,21.923925781250034],[106.66357421875003,21.97890625000005],[106.55039062500006,22.501367187499994],[106.78027343749997,22.778906250000034],[106.54179687500007,22.908349609375023],[106.2790039062501,22.857470703125045],[106.14843749999997,22.970068359375006],[105.8429687500001,22.922802734374955],[105.27539062500003,23.34521484375003],[104.86474609375003,23.136376953125023],[104.68730468750002,22.822216796874983],[104.37177734375004,22.704052734374983],[104.14306640624997,22.800146484375006],[103.94150390625006,22.540087890625045],[103.62021484375006,22.782031250000045],[103.49296875000007,22.587988281250034],[103.32666015625003,22.769775390625057],[102.98193359374997,22.4482421875],[102.47089843750004,22.75092773437501],[102.40644531250004,22.70800781249997],[102.2370117187501,22.466015624999983],[102.1759765625001,22.414648437500006],[102.12744140624997,22.379199218750045],[101.84179687500003,22.38847656249999],[101.75996093750004,22.490332031250034],[101.73876953124997,22.495263671874994],[101.70751953125003,22.486572265625],[101.67148437500006,22.462304687500023],[101.64619140625004,22.405419921874966],[101.61992187500002,22.32744140624999],[101.56787109374997,22.27636718749997],[101.52451171875006,22.25366210937497],[101.7365234375001,21.826513671874977],[101.74394531250007,21.77797851562505],[101.74726562500004,21.605761718750045],[101.72294921875007,21.31494140625003],[101.80058593750007,21.212597656249983],[101.78349609375007,21.204150390625017],[101.728125,21.156396484374994],[101.7047851562501,21.15014648437503],[101.54238281250005,21.23427734375005],[101.2814453125001,21.184130859375045],[101.24785156250007,21.197314453125045],[101.22441406250002,21.223730468750034],[101.21181640625,21.278222656250023],[101.2199218750001,21.34243164062505],[101.17539062500006,21.407519531250074],[101.19667968750005,21.522070312500063],[101.1388671875001,21.567480468749977],[101.07978515625004,21.75585937499997],[100.60458984375012,21.471777343750006],[100.14765625000004,21.480517578125017],[99.94072265625007,21.75874023437504],[99.9176757812501,22.02802734375001],[99.19296875000006,22.12597656249997],[99.50712890625002,22.959130859374994],[99.41806640625006,23.069238281250023],[98.86376953125003,23.191259765625034],[98.8322265625001,23.624365234374977],[98.67675781250003,23.905078125000045],[98.83505859375006,24.121191406250034],[98.2125,24.110644531250017],[97.56455078125012,23.911035156250023],[97.7082031250001,24.228759765625],[97.53144531250004,24.49169921875003],[97.58330078125002,24.77480468750005],[97.73789062500006,24.869873046875057],[97.8195312500001,25.251855468749994],[98.01074218749997,25.292529296875017],[98.14287109375007,25.571093750000017],[98.33378906250007,25.586767578125006],[98.65625,25.86357421874999],[98.56406250000006,26.072412109374994],[98.68554687499997,26.189355468750023],[98.7384765625001,26.785742187500006],[98.65117187500007,27.572460937499983],[98.4525390625,27.6572265625],[98.29882812499997,27.550097656250045],[98.06162109375012,28.185888671874977],[97.59921875000006,28.51704101562504],[97.53789062500002,28.510205078124983],[97.43144531250002,28.353906250000023],[97.35644531249997,28.254492187500006],[97.32158929493812,28.217097107438057],[97.3027336276825,28.08710519614969],[97.34382779482424,27.982305259167095],[97.04929369561631,27.76000444316393],[96.96494598325154,27.699301564540924],[96.19423412199573,28.04146177926422],[95.73730002295082,28.117613231051525],[95.11298892962586,27.748338353239472],[94.07167814294401,27.588707868507477],[93.61247595136224,27.323800298697016],[93.30681393470121,26.786120363519142],[92.74319481218781,26.833531317384058],[92.04974640832253,26.874866505386724],[92.07342257335648,26.915311275859864],[92.06813426293174,26.9752569185349],[92.02985139563152,27.03987087331446],[91.99856592104459,27.079255842602592],[91.99177981607339,27.100605151743654],[92.0025114452454,27.147290053160265],[92.03101585307499,27.214271359861193],[92.08387457645458,27.29090135496722],[92.04520857607581,27.364442429033787],[91.99069061380867,27.450181624174498],[91.95099838734396,27.45828799115413],[91.85276579410389,27.438593286730903],[91.74366351462741,27.442853010105477],[91.59505352446729,27.557262710287986],[91.63193359375012,27.759960937499983],[91.64189453125002,27.923242187500023],[91.36259958579089,28.02438066407592],[91.27304687500012,28.078369140625],[91.22587890625007,28.071240234374983],[91.07773437500012,27.974462890624977],[91.02080078125002,27.970068359374977],[90.71572265625,28.071728515624983],[90.63007812500004,28.078564453124955],[90.47734375000007,28.07084960937499],[90.3527343750001,28.080224609375023],[90.33310546875012,28.093994140625],[90.36298828125004,28.21650390625001],[90.34824218750006,28.24394531249999],[90.22080078125006,28.27773437500005],[90.10449218749997,28.302050781250017],[89.98105468750006,28.311181640625023],[89.8978515625,28.29414062500001],[89.81689453125003,28.25629882812501],[89.74980468750002,28.18818359375001],[89.65273437500005,28.158300781250034],[89.53691406250007,28.10742187499997],[89.4806640625001,28.059960937499994],[88.89140625000002,27.316064453124966],[88.83251953125003,27.36284179687499],[88.7648437500001,27.429882812499983],[88.74902343749997,27.521875],[88.82988281250002,27.76738281249999],[88.84882812500004,27.86865234375],[88.80371093750003,28.006933593750034],[88.57792968750002,28.093359375000034],[88.42597656250004,28.01166992187501],[88.27519531250007,27.968847656250006],[88.14111328125003,27.94892578125001],[88.10898437500006,27.933007812499966],[88.10976562500005,27.870605468750057],[87.8607421875,27.886083984375006],[87.62255859374997,27.81518554687503],[87.29072265625004,27.821923828124994],[87.14140625000002,27.838330078124955],[87.02011718750006,27.928662109374983],[86.9337890625001,27.96845703125001],[86.84238281250012,27.99916992187505],[86.750390625,28.022070312500006],[86.71962890625005,28.070654296875034],[86.69052734375006,28.09492187500001],[86.61445312500004,28.10302734374997],[86.55449218750007,28.08520507812497],[86.51689453125007,27.963525390624966],[86.40869140625003,27.928662109374983],[86.32861328124997,27.95952148437496],[86.2179687500001,28.022070312500006],[86.13701171875002,28.114355468750063],[86.07871093750006,28.08359375],[86.0641601562501,27.934716796874966],[85.99453125000005,27.910400390625],[85.95410156249997,27.92822265624997],[85.92167968750002,27.989697265624983],[85.84023437500005,28.135351562499977],[85.75947265625004,28.220654296874955],[85.67832031250012,28.277441406249977],[85.41064453125003,28.27602539062505],[85.21210937500004,28.292626953124966],[85.1224609375,28.315966796875017],[85.08857421875004,28.37226562500001],[85.121484375,28.484277343750023],[85.16015624999997,28.571875],[85.15908203125,28.592236328124983],[85.1263671875,28.602636718750063],[85.06914062500007,28.60966796874999],[84.85507812500006,28.553613281250023],[84.796875,28.560205078125023],[84.2287109375001,28.911767578124966],[84.17558593750002,29.036376953125057],[84.12783203125005,29.15629882812496],[84.10136718750002,29.21997070312497],[84.02197265624997,29.25385742187504],[83.93593750000005,29.27949218750001],[83.58349609375003,29.18359375000003],[83.15546875000004,29.612646484375034],[82.22070312500003,30.063867187500023],[82.04335937500005,30.326757812500034],[81.8548828125,30.362402343750006],[81.64189453125007,30.3875],[81.4171875000001,30.33759765625001],[81.25507812500004,30.09331054687499],[81.17714843750005,30.039892578125034],[80.98544921875006,30.23710937499999],[80.87353515625003,30.290576171875045],[80.19121093750002,30.56840820312496],[80.20712890625006,30.683740234375023],[79.92451171875004,30.888769531250034],[79.66425781250004,30.96523437499999],[79.38847656250007,31.064208984375],[79.10712890625004,31.402636718750017],[78.74355468750005,31.323779296875017],[78.7550781250001,31.55029296875],[78.69345703125006,31.740380859374994],[78.72558593750003,31.983789062500023],[78.49589843750002,32.21577148437504],[78.4552734375001,32.30034179687502],[78.41748046874997,32.466699218749994],[78.38964843749997,32.51987304687498],[78.73671875,32.55839843750002],[78.75351562500012,32.49926757812506],[78.91894531249997,32.35820312500002],[79.16992187500003,32.497216796874994],[79.14550781250003,33.00146484375006],[79.10283203125007,33.05253906249996],[79.13515625000005,33.17192382812496],[79.1125,33.22626953125001],[78.94843750000004,33.346533203125006],[78.86503906250002,33.43110351562501],[78.78378906250006,33.80878906250004],[78.72666015625006,34.013378906249955],[78.97060546875,34.22822265625004],[78.93642578125,34.35195312500002],[78.86484375000006,34.39033203125001],[78.32695312500007,34.60639648437498],[78.15849609375002,34.94648437499998],[78.07578125000006,35.13491210937502],[78.0426757812501,35.47978515625002],[77.79941406250006,35.49589843750002],[77.44648437500004,35.47558593750006],[77.29482421875005,35.508154296875034],[77.09003906250004,35.55205078124999],[76.87890625000003,35.61328125000003],[76.76689453125002,35.661718750000034],[76.72753906250003,35.67866210937504],[76.63183593749997,35.729394531249966],[76.56347656249997,35.77299804687499],[76.55126953124997,35.887060546875034],[76.50205078125006,35.87822265625002],[76.38574218750003,35.837158203125],[76.25166015625004,35.8109375],[76.17783203125012,35.810546875],[76.14785156250005,35.82900390625002],[76.07089843750006,35.983007812500034],[75.91230468750004,36.048974609374994],[75.97441406250007,36.38242187500006],[75.9518554687501,36.458105468750034],[75.9330078125,36.52158203124998],[75.840234375,36.64970703124999],[75.7721679687501,36.694921875000034],[75.6671875000001,36.741992187500045],[75.57373046874997,36.75932617187502],[75.46025390625002,36.725048828124955],[75.42421875000005,36.73823242187498],[75.37685546875,36.88369140625005],[75.34667968749997,36.913476562499966],[75.05390625000004,36.98715820312498],[74.94912109375,36.96835937500006],[74.88925781250006,36.95244140625002],[74.69218750000007,37.035742187500006],[74.60058593749997,37.03666992187502],[74.54140625,37.02216796875001],[74.52646484375006,37.03066406250005],[74.49794921875,37.057226562500034],[74.37617187500004,37.13735351562502],[74.37216796875006,37.15771484375],[74.558984375,37.23662109374999],[74.66894531250003,37.266699218750006],[74.72666015625006,37.29072265625001],[74.7389648437501,37.28564453125003],[74.76738281250002,37.249169921874966],[74.840234375,37.22504882812504],[74.89130859375004,37.231640624999955],[75.11875,37.38569335937498],[74.8942382812501,37.60141601562498],[74.81230468750002,38.46030273437498],[74.27744140625,38.659765625000034],[74.02558593750004,38.53984375000002],[73.80166015625,38.60688476562501],[73.69609375000007,38.85429687499996],[73.8052734375,38.968652343749994],[73.60732421875,39.229199218749955],[73.63632812500006,39.396679687499955],[73.63164062500007,39.44887695312502],[73.82294921875004,39.48896484375004],[73.90712890625,39.578515624999966],[73.9146484375,39.60649414062499],[73.88251953125004,39.71455078124998],[73.83974609375005,39.76284179687505],[73.8353515625,39.800146484375006],[73.85625,39.828662109375045],[73.88457031250002,39.87792968750006],[73.93876953125002,39.97880859374999],[73.99160156250005,40.04311523437502],[74.83046875,40.32851562499999],[74.80126953124997,40.428515625000045],[74.83515625000004,40.482617187499955],[74.865625,40.493505859375034],[75.0044921875,40.44951171874996],[75.11132812499997,40.4541015625],[75.24101562500002,40.48027343750002],[75.52080078125002,40.627539062500006],[75.55556640625,40.625195312499955],[75.6771484375,40.305810546874994],[75.87197265625,40.30322265625],[76.25830078124997,40.43076171875006],[76.3185546875001,40.352246093749955],[76.39638671875005,40.389794921874966],[76.4801757812501,40.44951171874996],[76.57792968750002,40.577880859375],[76.62216796875006,40.66235351562497],[76.6398437500001,40.74223632812499],[76.66113281249997,40.77963867187498],[76.70839843750005,40.818115234375],[76.82402343750002,40.982324218749966],[76.90771484374997,41.02416992187497],[76.98662109375002,41.039160156250006],[77.58173828125004,40.99277343750006],[77.71933593750012,41.024316406249994],[77.81523437500002,41.05561523437498],[77.9564453125,41.05068359375005],[78.1234375,41.07563476562498],[78.34628906250012,41.28144531249998],[78.36240234375012,41.37163085937496],[78.44287109374997,41.41752929687499],[78.742578125,41.56005859375],[79.29355468750006,41.78281249999998],[79.76611328124997,41.89887695312501],[79.84042968750012,41.99575195312502],[79.90966796875003,42.014990234375034],[80.21621093750005,42.03242187500004],[80.23515625000007,42.04345703124997],[80.24619140625012,42.05981445312503],[80.209375,42.190039062500006],[80.20224609375012,42.73447265624998],[80.53896484375005,42.873486328124955],[80.39023437500006,43.043115234374966],[80.78574218750006,43.16157226562504],[80.35527343750002,44.09726562500006],[80.48154296875006,44.71464843749999],[79.871875,44.88378906249997],[80.05917968750012,45.006445312500006],[81.69199218750012,45.34936523437497],[81.94492187500006,45.16083984375001],[82.26660156249997,45.21909179687498],[82.52148437500003,45.12548828125],[82.61162109375007,45.424267578124955],[82.31523437500002,45.59492187499998],[83.02949218750004,47.18593750000002],[84.016015625,46.97050781250002],[84.66660156250006,46.97236328125004],[84.78613281249997,46.83071289062505],[85.484765625,47.06352539062496],[85.65664062500005,47.254638671875],[85.52597656250006,47.915625],[85.7494140625,48.38505859374999],[86.54941406250012,48.52861328125002],[86.8083007812501,49.04970703125002],[87.32285156250012,49.085791015625006],[87.41669921875004,49.07661132812501],[87.5158203125001,49.122412109375006],[87.7625,49.16582031249996],[87.81425781250002,49.162304687499955],[87.87216796875012,49.000146484374966],[87.74316406250003,48.88164062499999],[87.83183593750007,48.79165039062505],[88.02792968750006,48.735595703125],[88.06005859375003,48.707177734374966],[87.9796875000001,48.55512695312498],[88.30996093750005,48.47207031250002],[88.41396484375,48.403417968750006],[88.51708984374997,48.384472656249955],[88.56679687500005,48.31743164062496],[88.57597656250007,48.220166015624955],[88.68183593750004,48.170556640624994],[88.83828125000005,48.101708984374994],[88.91777343750007,48.089013671874966],[89.04765625000007,48.002539062500034],[89.47919921875004,48.02905273437503],[89.5609375,48.00395507812496],[89.778125,47.82700195312498],[89.83134765625002,47.82329101562502],[89.91044921875007,47.844335937500034],[89.95869140625004,47.88632812499998],[90.02792968750012,47.877685546875],[90.1032226562501,47.74541015624996],[90.19101562500012,47.70209960937501],[90.31328125000007,47.67617187499999],[90.33066406250006,47.655175781249966],[90.42519531250005,47.50410156250001],[90.49619140625012,47.28515625],[90.64335937500007,47.10029296874998],[90.71552734375004,47.00385742187498],[90.7990234375001,46.98515624999999],[90.86992187500002,46.95449218750005],[90.91054687500005,46.88325195312501],[90.9857421875,46.7490234375],[90.9115234375,46.270654296874994],[90.94755859375002,46.17729492187499],[90.99677734375004,46.10498046875],[91.00175781250007,46.03579101562502],[90.6618164062501,45.525244140625006],[90.87724609375002,45.19609375000002],[91.05,45.217431640624994],[91.584375,45.07651367187498],[92.42382812499997,45.008935546874994],[92.57890625000002,45.01098632812506],[92.78789062500007,45.035742187500034],[93.51621093750012,44.944482421874994],[94.71201171875012,44.35083007812503],[95.35029296875004,44.27807617187503],[95.32558593750005,44.03935546874999],[95.52558593750004,43.953955078125006],[95.85957031250004,43.27597656249998],[96.38544921875004,42.72036132812502],[97.20566406250012,42.78979492187506],[99.46787109375012,42.568212890625034],[99.98378906250005,42.67734375000006],[100.08632812500005,42.67075195312506],[100.51904296875003,42.61679687499998],[101.09199218750004,42.55131835937496],[101.49531250000004,42.53876953124998],[101.57910156249997,42.52353515624998],[101.65996093750002,42.50004882812499],[101.97294921875002,42.21586914062502],[102.15664062500005,42.158105468749966],[102.57519531249997,42.09208984375002],[103.07285156250006,42.00595703125006],[103.7111328125001,41.75131835937506],[103.99726562500004,41.796972656250034],[104.30517578124997,41.84614257812501],[104.49824218750004,41.87700195312499],[104.49824218750004,41.65869140625],[104.86035156250003,41.64375],[104.98203125000012,41.59550781250002],[105.05058593750002,41.61591796875001],[105.1154296875001,41.66328124999998],[105.19707031250002,41.738037109375],[105.31435546875005,41.77089843750005],[105.86757812500005,41.993994140625034],[106.77001953125003,42.28872070312502],[108.17119140625002,42.44731445312502],[108.68730468750002,42.416113281250034],[109.33984374999997,42.43837890625005],[109.44316406250002,42.455957031249994],[110.40039062499997,42.77368164062497],[111.00722656250005,43.34140624999998],[111.878125,43.68017578125],[111.93173828125012,43.81494140625],[111.40224609375005,44.367285156250006],[111.89804687500006,45.064062500000034],[112.03261718750005,45.08164062500006],[112.11289062500006,45.06293945312498],[112.41132812500004,45.05820312499998],[112.49931640625002,45.01093750000004],[112.59677734375006,44.917675781249955],[112.7067382812501,44.883447265624994],[113.04941406250006,44.81035156250002],[113.3009765625001,44.79165039062502],[113.50791015625006,44.76235351562502],[113.58701171875006,44.745703125],[113.65263671875002,44.76347656249999],[113.87705078125012,44.89619140625001],[114.03027343749997,44.942578124999955],[114.08027343750004,44.97114257812501],[114.41914062500004,45.20258789062501],[114.56015625000012,45.38999023437498],[114.73876953124997,45.41962890624998],[114.91923828125007,45.378271484375006],[115.16259765624997,45.390234375000034],[115.6810546875,45.45825195312503],[116.19765625,45.739355468750006],[116.240625,45.795996093750006],[116.22910156250012,45.84575195312502],[116.21298828125012,45.88691406249998],[116.56259765625012,46.28979492187497],[116.85908203125004,46.387939453125],[117.3333984375,46.36201171875004],[117.35693359375003,46.391308593749955],[117.35634765625,46.436669921874966],[117.39218750000012,46.53759765625003],[117.40556640625007,46.57089843750006],[117.43808593750012,46.58623046874999],[117.546875,46.58828125000005],[117.74121093749997,46.51816406250006],[118.07128906249997,46.666601562500006],[118.15683593750006,46.678564453125034],[118.30869140625012,46.71704101562497],[118.40439453125006,46.70317382812499],[118.58046875,46.69189453125],[118.64873046875002,46.70166015625006],[118.72294921875007,46.69189453125],[118.8439453125001,46.76020507812498],[118.95712890625006,46.73486328124997],[119.16210937499997,46.638671875],[119.33183593750002,46.61381835937499],[119.47402343750005,46.626660156249955],[119.62021484375006,46.60395507812504],[119.70664062500006,46.60600585937502],[119.74746093750005,46.62719726562497],[119.86718750000003,46.67216796874999],[119.89785156250005,46.857812499999966],[119.71113281250004,47.15],[119.08193359375,47.654150390625034],[119.01757812500003,47.68535156249999],[118.88027343750005,47.72509765625],[118.75996093750004,47.75761718749996],[118.69052734375012,47.822265625],[118.56777343750005,47.94326171875005],[118.49843750000005,47.98398437499998],[117.76835937500002,47.98789062499998],[117.3507812500001,47.65219726562498],[117.28593750000002,47.666357421875034],[117.06972656250005,47.80639648437506],[116.95166015624997,47.836572265624966],[116.90117187500007,47.85307617187496],[116.76054687500002,47.869775390624994],[116.65195312500012,47.86450195312497],[116.51347656250007,47.839550781249955],[116.37822265625002,47.84404296874999],[116.31718750000002,47.85986328125],[116.2311523437501,47.85820312500002],[116.07480468750012,47.78955078125],[115.99384765625004,47.71132812500005],[115.89824218750002,47.68691406250005],[115.6164062500001,47.874804687500045],[115.52509765625004,48.13085937499997],[115.63945312500007,48.18623046874998],[115.785546875,48.24824218750001],[115.7965820312501,48.346337890624994],[115.7916992187501,48.455712890624994],[115.8205078125001,48.57724609375006],[116.6833007812501,49.82377929687499],[117.8734375,49.51347656250002],[118.4515625,49.84448242187503],[119.25986328125012,50.06640625000003],[119.34628906250012,50.278955078124994],[119.16367187500006,50.40600585937503],[120.06689453125003,51.60068359375006],[120.74980468750007,52.096533203125006],[120.65615234375,52.56665039062503],[120.0675781250001,52.632910156250034],[120.09453125000007,52.787207031250034],[120.98544921875012,53.28457031250002],[123.6078125,53.546533203124994],[124.81230468750002,53.133837890625045],[125.075,53.20366210937496],[125.64902343750012,53.042285156250045],[126.34169921875,52.36201171875001],[126.92480468749997,51.10014648437496],[127.30703125000005,50.70795898437501],[127.33720703125007,50.35014648437502],[127.590234375,50.20898437500003],[127.55078124999997,49.801806640625045],[127.99960937500006,49.56860351562506],[128.70400390625,49.60014648437499],[129.0651367187501,49.374658203124966],[129.49814453125012,49.38881835937502],[130.1959960937501,48.89165039062499],[130.553125,48.861181640625006],[130.5521484375,48.602490234374955],[130.80429687500012,48.34150390624998],[130.7326171875001,48.01923828124998],[130.96191406249997,47.70932617187498],[132.47626953125004,47.714990234374994],[132.7072265625001,47.94726562500006],[133.14404296875003,48.10566406249998],[133.46835937500006,48.09716796875003],[134.29335937500005,48.37343750000002],[134.66523437500004,48.25390625],[134.56601562500006,48.02250976562502],[134.75234375,47.71542968749998],[134.1676757812501,47.30219726562501],[133.86132812500003,46.24775390625004],[133.43642578125,45.60468750000004],[133.18603515625003,45.49482421875004],[133.1134765625001,45.130712890625006],[132.93603515624997,45.029931640624994],[131.85185546875002,45.32685546875001],[131.44687500000012,44.984033203124966],[130.9816406250001,44.844335937500034],[131.2552734375,44.07158203124999],[131.25732421875003,43.378076171874994],[131.06855468750004,42.90224609375005],[130.42480468749997,42.72705078124997],[130.52695312500012,42.535400390625]]],[[[113.9977539062501,22.210498046875045],[113.83886718749997,22.24169921875003],[114.04394531250003,22.33339843750005],[113.9977539062501,22.210498046875045]]],[[[114.01542968750007,22.51191406250001],[114.26601562500005,22.540966796874983],[114.26796875,22.295556640624966],[113.93730468750002,22.364990234375],[114.01542968750007,22.51191406250001]]],[],[[[118.4074218750001,24.522119140624994],[118.43271484375006,24.414355468750074],[118.29511718750004,24.436328125000017],[118.4074218750001,24.522119140624994]]],[[[121.00878906249997,22.62036132812497],[120.83984375000003,21.925],[120.2328125,22.71791992187505],[120.0724609375001,23.149755859375006],[120.13212890625007,23.652929687500034],[121.040625,25.032812500000034],[121.59365234375,25.275341796874983],[121.92900390625002,24.973730468749977],[121.39746093750003,23.172509765625023],[121.00878906249997,22.62036132812497]]]]},"properties":{"name":"China","childNum":15}},{"geometry":{"type":"Polygon","coordinates":[[[-5.262304687499977,10.319677734374991],[-4.72177734374992,9.756542968750026],[-4.625830078125006,9.713574218749969],[-4.526611328124943,9.723486328125034],[-4.406201171874926,9.647998046875031],[-4.332226562499955,9.645703125],[-4.18115234375,9.78173828125],[-3.790625,9.917187499999983],[-3.581152343749977,9.924316406250014],[-3.289697265625023,9.882226562500051],[-3.223535156249937,9.895458984374997],[-3.160693359374932,9.849169921874974],[-3.095800781249949,9.752099609375009],[-3.042626953124937,9.72089843750004],[-2.988281249999972,9.687353515624963],[-2.900878906249943,9.534619140625026],[-2.875146484374937,9.500927734374997],[-2.816748046874949,9.425830078124974],[-2.766601562499943,9.424707031250009],[-2.7171875,9.457128906250048],[-2.695849609374989,9.481347656250009],[-2.686132812499977,9.43173828125002],[-2.705761718749983,9.351367187499989],[-2.74692382812492,9.04511718750004],[-2.689892578124955,9.02509765625004],[-2.649218750000017,8.956591796875031],[-2.600390625000017,8.800439453125023],[-2.505859375000028,8.208740234375],[-2.538281249999955,8.171630859374986],[-2.61171875,8.147558593749963],[-2.619970703125006,8.12109375],[-2.600976562499937,8.082226562499983],[-2.613378906249977,8.046679687500017],[-2.668847656249994,8.022216796875014],[-2.789746093749955,7.931933593750003],[-2.959082031249977,7.454541015624997],[-3.227148437499977,6.749121093749991],[-2.998291015624972,5.711328125000051],[-2.793652343749955,5.600097656250028],[-2.754980468749977,5.432519531249994],[-2.815673828125,5.153027343749997],[-3.168701171874972,5.203027343749966],[-3.199951171874943,5.3544921875],[-3.347558593749994,5.13066406249996],[-4.120166015625017,5.309716796875023],[-4.60888671875,5.235888671875003],[-4.037207031249977,5.23012695312498],[-4.899707031249932,5.138330078125023],[-5.282373046874994,5.210253906250017],[-5.36752929687492,5.15078125],[-5.061816406249989,5.13066406249996],[-5.913769531249926,5.0109375],[-7.544970703124989,4.351318359375],[-7.574658203124983,4.572314453124989],[-7.585058593749977,4.916748046875],[-7.39990234375,5.550585937499989],[-7.454394531249989,5.841308593749972],[-7.636132812499994,5.90771484375],[-7.730371093749994,5.919042968749991],[-7.800927734374994,6.038916015624991],[-7.833251953125,6.076367187499983],[-7.855517578125017,6.150146484375],[-7.888623046875011,6.234863281250028],[-7.981591796874937,6.2861328125],[-8.287109375,6.31904296875004],[-8.587890625,6.490527343749989],[-8.324511718749989,6.920019531249991],[-8.408740234374989,7.411816406249997],[-8.429980468749989,7.601855468749989],[-8.351757812499926,7.590576171875],[-8.231884765624955,7.556738281250034],[-8.205957031249994,7.590234375000023],[-8.115429687499926,7.760742187500028],[-8.126855468749937,7.867724609374974],[-8.00986328124992,8.078515625000023],[-8.048583984375,8.169726562500045],[-8.140625,8.181445312500031],[-8.217138671874949,8.219677734375011],[-8.256103515625,8.253710937500017],[-8.244140624999943,8.407910156249983],[-8.236962890624994,8.455664062500034],[-7.953125,8.477734375],[-7.823583984374977,8.467675781249994],[-7.738964843749983,8.375244140624986],[-7.696093749999932,8.375585937499977],[-7.71958007812492,8.643017578125011],[-7.950976562499989,8.786816406249997],[-7.938183593749983,8.97978515624996],[-7.902099609375,9.017089843750014],[-7.777978515624937,9.080859375000031],[-7.799804687499943,9.115039062499989],[-7.839404296875017,9.151611328124972],[-7.918066406249949,9.188525390625031],[-7.896191406249955,9.415869140624991],[-8.136962890624972,9.49570312499999],[-8.155175781249937,9.973193359375017],[-7.990625,10.1625],[-7.661132812500028,10.427441406250011],[-7.385058593749989,10.340136718749989],[-7.01708984375,10.143261718750026],[-6.950341796874994,10.342333984374989],[-6.693261718750023,10.34946289062502],[-6.669335937499937,10.39218750000002],[-6.69199218749992,10.512011718750017],[-6.686132812499977,10.578027343750051],[-6.676367187499949,10.633789062500043],[-6.654150390624949,10.65644531250004],[-6.482617187499983,10.561230468749997],[-6.250244140625,10.717919921875037],[-6.190673828124943,10.400292968749994],[-6.192626953124972,10.369433593750003],[-6.241308593749949,10.279199218750009],[-6.238378906249977,10.26162109374998],[-6.117187499999972,10.201904296874986],[-6.034570312499937,10.194824218750057],[-5.907568359375006,10.307226562500034],[-5.896191406249983,10.354736328125028],[-5.843847656249977,10.389550781250023],[-5.694287109374983,10.433203125000034],[-5.556591796874983,10.439941406249986],[-5.382275390625011,10.314013671875003],[-5.262304687499977,10.319677734374991]]]},"properties":{"name":"Côte d\'Ivoire","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[15.480078125,7.523779296874991],[15.206738281250011,7.206152343749991],[14.7392578125,6.27978515625],[14.43115234375,6.038720703124994],[14.616894531250011,5.865136718749994],[14.56298828125,5.279931640624994],[14.73125,4.602392578124991],[15.063574218750006,4.284863281249997],[15.128710937500017,3.826904296875],[16.0634765625,2.90859375],[16.183398437500017,2.270068359374989],[16.059375,1.676220703124997],[15.741601562500023,1.914990234374997],[14.902441406250006,2.012304687499991],[14.578906250000017,2.199121093749994],[13.293554687500006,2.161572265624997],[13.2203125,2.256445312499991],[11.558984375000023,2.302197265624997],[11.348437500000017,2.299707031249994],[11.328710937500006,2.167431640624997],[11.096582031250023,2.16748046875],[10.790917968750023,2.16757812499999],[9.979882812500023,2.167773437499989],[9.8701171875,2.21328125],[9.8369140625,2.242382812499997],[9.830371093750017,2.275488281249991],[9.826171875,2.297802734374997],[9.80078125,2.304443359375],[9.82177734375,2.539257812499997],[9.948437500000011,3.079052734374997],[9.672070312500011,3.53759765625],[9.765722656250006,3.623828124999989],[9.642382812500017,3.611767578124997],[9.55615234375,3.798046875],[9.739648437500023,3.852929687499994],[9.639941406250017,3.96533203125],[9.688867187500023,4.056396484375],[9.483691406250017,4.066113281249997],[9.42529296875,3.922314453124997],[9.000097656250006,4.091601562499989],[8.918261718750017,4.553759765624989],[8.660351562500011,4.670996093749991],[8.65625,4.516357421875],[8.53955078125,4.571875],[8.715625,5.046875],[8.997167968750006,5.917724609375],[9.490234375,6.418652343749997],[9.779882812500006,6.76015625],[9.820703125000023,6.783935546875],[9.874218750000011,6.803271484374989],[10.038867187500017,6.92138671875],[10.1435546875,6.996435546874991],[10.167773437500017,6.959179687499997],[10.185546875,6.912792968749997],[10.205468750000023,6.8916015625],[10.293066406250006,6.876757812499989],[10.413183593750006,6.877734374999989],[10.60625,7.063085937499991],[10.954199218750006,6.7765625],[11.032519531250017,6.697900390624994],[11.1064453125,6.457714843749997],[11.1533203125,6.437939453124997],[11.2373046875,6.450537109374991],[11.401757812500023,6.533935546875],[11.551660156250023,6.697265625],[11.580078125,6.888867187499997],[11.657519531250017,6.9515625],[11.861425781250006,7.11640625],[11.767382812500017,7.272265624999989],[11.809179687500006,7.345068359374991],[12.016015625000023,7.589746093749994],[12.2333984375,8.282324218749991],[12.403515625000011,8.595556640624991],[12.582714843750011,8.624121093749991],[12.651562500000011,8.667773437499989],[12.7822265625,8.81787109375],[12.806542968750023,8.886621093749994],[12.875683593750011,9.303515624999989],[12.929492187500017,9.42626953125],[13.19873046875,9.563769531249989],[13.269921875000023,10.036181640624989],[13.41455078125,10.171435546874989],[13.535351562500011,10.60507812499999],[13.699902343750011,10.873144531249991],[13.89208984375,11.140087890624997],[13.9814453125,11.211865234374997],[14.056738281250006,11.245019531249994],[14.143261718750011,11.24853515625],[14.202343750000011,11.268164062499991],[14.559765625000011,11.492285156249991],[14.619726562500006,12.150976562499991],[14.518945312500023,12.298242187499994],[14.272851562500023,12.356494140624989],[14.184863281250017,12.447216796874997],[14.06396484375,13.07851562499999],[14.244824218750011,13.07734375],[14.461718750000017,13.021777343749989],[14.847070312500023,12.502099609374994],[15.08125,11.845507812499989],[15.029882812500006,11.11367187499999],[15.132226562500023,10.648486328124989],[15.276074218750011,10.357373046874997],[15.654882812500006,10.0078125],[14.243261718750006,9.979736328125],[13.977246093750011,9.691552734374994],[14.332324218750017,9.20351562499999],[15.1162109375,8.557324218749997],[15.5498046875,7.787890624999989],[15.480078125,7.523779296874991]]]},"properties":{"name":"Cameroon","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[27.4033203125,5.109179687499989],[27.7880859375,4.644677734374994],[28.19208984375001,4.350244140624994],[28.427539062500017,4.324169921874997],[28.72705078125,4.504980468749991],[29.224902343750017,4.391894531249989],[29.469628906250023,4.61181640625],[29.676855468750006,4.5869140625],[30.194921875,3.98193359375],[30.50830078125,3.835693359375],[30.586718750000017,3.62421875],[30.757226562500023,3.62421875],[30.83857421875001,3.49072265625],[30.90644531250001,3.408935546875],[30.754003906250006,3.041796874999989],[30.8466796875,2.847021484374991],[30.728613281250006,2.455371093749989],[31.176367187500006,2.270068359374989],[31.252734375000017,2.044580078124994],[29.94287109375,0.819238281249994],[29.934472656250023,0.4990234375],[29.717675781250023,0.098339843749997],[29.576953125000017,-1.387890625000011],[29.196582031250017,-1.719921875000011],[29.13154296875001,-2.195117187500003],[28.876367187500023,-2.400292968750009],[28.893945312500023,-2.635058593750003],[29.01435546875001,-2.72021484375],[29.224414062500017,-3.053515625],[29.211816406250023,-3.833789062500003],[29.403222656250023,-4.449316406250006],[29.404199218750023,-4.496679687500006],[29.32568359375,-4.835644531250011],[29.32343750000001,-4.898828125],[29.3427734375,-4.983105468750011],[29.542382812500023,-5.499804687500003],[29.594140625000023,-5.65078125],[29.60703125,-5.72265625],[29.59638671875001,-5.775976562500006],[29.490820312500006,-5.965429687500006],[29.480078125,-6.025],[29.50625,-6.172070312500011],[29.540820312500017,-6.313867187500009],[29.590625,-6.394433593750009],[29.70966796875001,-6.616894531250011],[29.798144531250017,-6.69189453125],[29.961816406250023,-6.803125],[30.10625,-6.9150390625],[30.212695312500017,-7.037890625],[30.31318359375001,-7.203710937500006],[30.40673828125,-7.460644531250011],[30.75117187500001,-8.193652343750003],[28.89814453125001,-8.485449218750006],[28.869531250000023,-8.785839843750011],[28.400683593750017,-9.224804687500011],[28.60419921875001,-9.678808593750006],[28.6455078125,-10.550195312500009],[28.383398437500006,-11.566699218750003],[28.482519531250006,-11.812109375],[29.064355468750023,-12.348828125000011],[29.48554687500001,-12.41845703125],[29.508203125000023,-12.228222656250011],[29.79511718750001,-12.155468750000011],[29.775195312500017,-13.438085937500006],[29.55419921875,-13.248925781250009],[29.20185546875001,-13.398339843750009],[29.014257812500006,-13.368847656250011],[28.730078125,-12.925488281250011],[28.550878906250006,-12.836132812500011],[28.412890625000017,-12.51806640625],[27.573828125,-12.22705078125],[27.1591796875,-11.579199218750006],[26.824023437500017,-11.965234375],[26.025976562500006,-11.89013671875],[25.349414062500017,-11.623046875],[25.28876953125001,-11.21240234375],[24.3779296875,-11.417089843750006],[24.36572265625,-11.1298828125],[23.96650390625001,-10.871777343750011],[23.901171875000017,-10.983203125],[23.833886718750023,-11.013671875],[23.463964843750006,-10.969335937500006],[23.076269531250006,-11.087890625],[22.814746093750017,-11.080273437500011],[22.56103515625,-11.055859375000011],[22.486132812500017,-11.08671875],[22.392968750000023,-11.159472656250003],[22.31494140625,-11.198632812500009],[22.27880859375,-11.194140625],[22.226171875,-11.121972656250009],[22.203515625000023,-10.829492187500009],[22.307031250000023,-10.691308593750009],[22.19775390625,-10.040625],[21.81318359375001,-9.46875],[21.905371093750006,-8.693359375],[21.806054687500023,-7.32861328125],[21.751074218750006,-7.30546875],[21.190332031250023,-7.284960937500003],[20.910937500000017,-7.281445312500011],[20.607812500000023,-7.277734375],[20.558398437500017,-7.244433593750003],[20.53583984375001,-7.182812500000011],[20.536914062500017,-7.121777343750011],[20.598730468750006,-6.93515625],[20.59003906250001,-6.919921875],[20.482226562500017,-6.915820312500003],[20.190039062500006,-6.9462890625],[19.997460937500023,-6.976464843750009],[19.87519531250001,-6.986328125],[19.527636718750017,-7.144433593750009],[19.483789062500023,-7.279492187500011],[19.479882812500023,-7.47216796875],[19.371679687500006,-7.655078125],[19.369921875000017,-7.70654296875],[19.3408203125,-7.966601562500003],[19.142675781250006,-8.00146484375],[18.944433593750006,-8.00146484375],[18.56269531250001,-7.9359375],[18.0087890625,-8.107617187500011],[17.643359375000017,-8.090722656250009],[17.57958984375,-8.099023437500009],[16.984765625000023,-7.257421875],[16.91943359375,-6.933984375],[16.813085937500006,-6.772558593750006],[16.742968750000017,-6.618457031250003],[16.697265625,-6.164257812500011],[16.537109375,-5.9658203125],[16.431445312500017,-5.900195312500003],[16.315234375000017,-5.865625],[13.978515625,-5.857226562500003],[13.346484375000017,-5.863378906250006],[13.184375,-5.85625],[12.452929687500017,-6.00048828125],[12.213671875000017,-5.758691406250009],[12.484570312500011,-5.71875],[12.451464843750017,-5.071484375000011],[12.502734375000017,-5.036914062500003],[12.573535156250017,-4.99658203125],[12.59619140625,-4.978417968750009],[12.8296875,-4.736621093750003],[12.947460937500011,-4.6953125],[13.057324218750011,-4.651074218750011],[13.07275390625,-4.634765625],[13.08740234375,-4.601953125],[13.136621093750023,-4.604296875],[13.414941406250023,-4.83740234375],[13.659570312500023,-4.721484375],[13.717089843750017,-4.454492187500009],[13.94091796875,-4.484667968750003],[14.358300781250023,-4.299414062500006],[14.449804687500006,-4.449511718750003],[14.365429687500011,-4.585546875],[14.410742187500006,-4.83125],[14.707910156250023,-4.881738281250009],[15.990039062500017,-3.766210937500006],[16.217382812500006,-3.0302734375],[16.21533203125,-2.177832031250006],[16.54072265625001,-1.840136718750003],[16.8798828125,-1.225878906250003],[17.752832031250023,-0.549023437500011],[18.072167968750023,2.01328125],[18.49091796875001,2.924414062499991],[18.6103515625,3.478417968749994],[18.594140625000023,4.346240234374989],[19.06855468750001,4.891406249999989],[19.5009765625,5.127490234374989],[19.806542968750023,5.089306640624997],[20.226367187500017,4.829638671874989],[20.55810546875,4.462695312499989],[22.422167968750017,4.134960937499997],[22.864550781250017,4.723876953125],[23.41718750000001,4.663134765624989],[24.31982421875,4.994140625],[25.065234375000017,4.967431640624994],[25.52509765625001,5.31210937499999],[26.822070312500017,5.062402343749994],[27.071875,5.199755859374989],[27.4033203125,5.109179687499989]]]},"properties":{"name":"Dem. Rep. Congo","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[18.6103515625,3.478417968749994],[18.49091796875001,2.924414062499991],[18.072167968750023,2.01328125],[17.752832031250023,-0.549023437500011],[16.8798828125,-1.225878906250003],[16.54072265625001,-1.840136718750003],[16.21533203125,-2.177832031250006],[16.217382812500006,-3.0302734375],[15.990039062500017,-3.766210937500006],[14.707910156250023,-4.881738281250009],[14.410742187500006,-4.83125],[14.365429687500011,-4.585546875],[14.449804687500006,-4.449511718750003],[14.358300781250023,-4.299414062500006],[13.94091796875,-4.484667968750003],[13.717089843750017,-4.454492187500009],[13.659570312500023,-4.721484375],[13.414941406250023,-4.83740234375],[13.136621093750023,-4.604296875],[13.08740234375,-4.601953125],[13.07275390625,-4.634765625],[13.048046875000011,-4.619238281250006],[12.971386718750011,-4.5517578125],[12.881054687500011,-4.445117187500003],[12.84814453125,-4.428906250000011],[12.50146484375,-4.5875],[12.018359375000017,-5.004296875],[11.777539062500011,-4.565820312500009],[11.130175781250017,-3.916308593750003],[11.234472656250006,-3.690820312500009],[11.504296875000023,-3.5203125],[11.685742187500011,-3.68203125],[11.8798828125,-3.665917968750009],[11.934179687500006,-3.318554687500011],[11.715429687500006,-3.176953125000011],[11.760156250000023,-2.983105468750011],[11.537792968750011,-2.83671875],[11.60546875,-2.342578125],[12.064453125,-2.41259765625],[12.446386718750006,-2.329980468750009],[12.43212890625,-1.928906250000011],[12.590429687500006,-1.826855468750011],[12.793554687500006,-1.931835937500011],[12.991992187500017,-2.313378906250009],[13.464941406250006,-2.395410156250009],[13.733789062500023,-2.138476562500003],[13.886914062500011,-2.465429687500006],[13.993847656250011,-2.490625],[14.199804687500006,-2.354199218750011],[14.162890625000017,-2.217578125],[14.383984375000011,-1.890039062500009],[14.47412109375,-0.573437500000011],[13.860058593750011,-0.203320312500011],[13.949609375000023,0.353808593749989],[14.32421875,0.62421875],[14.429882812500011,0.901464843749991],[14.180859375000011,1.370214843749991],[13.851367187500017,1.41875],[13.21630859375,1.2484375],[13.172167968750017,1.78857421875],[13.293554687500006,2.161572265624997],[14.578906250000017,2.199121093749994],[14.902441406250006,2.012304687499991],[15.741601562500023,1.914990234374997],[16.059375,1.676220703124997],[16.183398437500017,2.270068359374989],[16.468554687500017,2.831738281249997],[16.610742187500023,3.50537109375],[17.491601562500023,3.687304687499989],[18.160937500000017,3.499804687499989],[18.474414062500017,3.622998046874997],[18.6103515625,3.478417968749994]]]},"properties":{"name":"Congo","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-71.31972656249997,11.861914062500048],[-71.95810546875,11.66640625],[-72.24848632812501,11.196435546875009],[-72.690087890625,10.835839843749994],[-72.86933593750001,10.49125976562496],[-73.00654296874998,9.789160156250006],[-73.36621093749997,9.194140625000017],[-73.05839843749999,9.259570312500031],[-72.79638671874997,9.10898437499999],[-72.66542968749994,8.62758789062498],[-72.39033203124995,8.287060546874969],[-72.47197265624996,7.524267578124991],[-72.20771484374995,7.37026367187498],[-72.00664062499993,7.032617187500023],[-71.12861328124993,6.98671875],[-70.73715820312503,7.090039062499997],[-70.12919921874999,6.95361328125],[-69.42714843749997,6.123974609374997],[-68.47177734375,6.156542968749974],[-67.85917968749999,6.289892578124963],[-67.48198242187499,6.18027343750002],[-67.47387695312503,5.929980468750003],[-67.82490234374995,5.270458984375026],[-67.85527343750002,4.506884765624989],[-67.66162109375,3.864257812499986],[-67.3111328125,3.41586914062502],[-67.85908203124998,2.793603515624994],[-67.61870117187496,2.793603515624994],[-67.21083984375,2.390136718750043],[-66.87602539062499,1.223046875000037],[-67.082275390625,1.185400390625006],[-67.11923828124998,1.703613281249986],[-67.40043945312499,2.116699218750028],[-67.93623046874998,1.748486328124969],[-68.19379882812495,1.987011718749983],[-68.25595703125,1.845507812500017],[-68.17656249999999,1.719824218749991],[-69.84858398437493,1.708740234375043],[-69.85214843750003,1.05952148437504],[-69.31181640624999,1.050488281249969],[-69.15332031249994,0.65878906250002],[-69.47211914062498,0.72993164062504],[-70.05390624999993,0.578613281250028],[-70.07050781249993,-0.13886718750004],[-69.63398437500001,-0.50927734375],[-69.40024414062498,-1.194921874999977],[-69.66904296875003,-2.667675781249997],[-69.94819335937498,-4.200585937500009],[-69.96591796875003,-4.2359375],[-70.16752929687499,-4.050195312500009],[-70.24028320312496,-3.882714843749994],[-70.2984375,-3.844238281249972],[-70.33950195312502,-3.814355468750009],[-70.73510742187497,-3.781542968749989],[-70.09584960937494,-2.658203125000014],[-70.16474609374995,-2.639843750000011],[-70.24443359375002,-2.606542968749977],[-70.29462890624995,-2.552539062499989],[-70.57587890624995,-2.418261718749989],[-70.64799804687499,-2.405761718750014],[-70.70537109374996,-2.341992187499983],[-70.91455078125003,-2.218554687499974],[-70.96855468750002,-2.206835937499989],[-71.02729492187498,-2.225781250000026],[-71.11337890625003,-2.245410156250031],[-71.19638671874998,-2.313085937499963],[-71.39697265625,-2.334082031249977],[-71.55947265624997,-2.224218749999977],[-71.75253906249995,-2.15273437499998],[-71.80273437499997,-2.166308593749989],[-71.86728515624998,-2.227734374999983],[-71.932470703125,-2.288671874999963],[-71.98427734375,-2.326562499999952],[-72.21845703125001,-2.400488281250006],[-72.94111328124998,-2.394042968750028],[-72.9896484375,-2.33974609374998],[-73.15449218749993,-2.278222656249966],[-73.19697265624995,-1.830273437500011],[-73.49628906249993,-1.69306640625004],[-73.66430664062497,-1.248828124999946],[-73.86318359374997,-1.19667968749998],[-73.92695312500001,-1.125195312499983],[-73.98681640625003,-1.098144531249986],[-74.05439453124995,-1.028613281250031],[-74.18076171875,-0.997753906249955],[-74.24638671874999,-0.970605468750023],[-74.28388671874998,-0.927832031250006],[-74.33442382812498,-0.85087890624996],[-74.41787109375,-0.580664062499977],[-74.46518554687498,-0.517675781250034],[-74.51386718749993,-0.470117187500023],[-74.555078125,-0.429882812499997],[-74.61635742187494,-0.370019531249966],[-74.691650390625,-0.335253906249989],[-74.75537109375003,-0.298632812499989],[-74.78046874999998,-0.24453125],[-74.80175781249997,-0.200097656249994],[-75.13837890624998,-0.050488281249969],[-75.28447265624999,-0.10654296875002],[-75.77666015624999,0.08925781249998],[-76.27060546874998,0.439404296874997],[-76.49462890624997,0.23544921875002],[-77.396337890625,0.393896484374963],[-77.46767578124997,0.636523437500017],[-77.702880859375,0.837841796874997],[-78.1806640625,0.968554687499974],[-78.85966796874996,1.455371093750031],[-79.02543945312499,1.623681640625037],[-78.79296874999994,1.848730468749963],[-78.576904296875,1.773779296874977],[-78.59169921875,2.356640624999969],[-78.41689453125,2.483496093749963],[-78.06665039062494,2.509130859375034],[-77.81357421875,2.716357421874974],[-77.076806640625,3.913281250000026],[-77.26352539062503,3.893212890625023],[-77.27802734374995,4.058496093750023],[-77.35820312499996,3.944726562500037],[-77.40874023437496,4.24775390625004],[-77.52070312499993,4.212792968750023],[-77.35351562499997,4.398291015624977],[-77.28632812499995,4.72172851562496],[-77.373291015625,5.323974609375],[-77.53442382812497,5.537109374999986],[-77.24926757812497,5.780175781250037],[-77.46943359374995,6.176757812500014],[-77.368798828125,6.575585937499994],[-77.90117187499999,7.229345703125048],[-77.76191406249995,7.698828125000034],[-77.53828124999995,7.56625976562502],[-77.19599609374995,7.972460937500003],[-77.47851562499994,8.498437500000037],[-77.37421874999993,8.65830078125002],[-76.85185546875002,8.09047851562498],[-76.924658203125,7.973193359374974],[-76.78657226562493,7.931591796875026],[-76.7720703125,8.310546875000043],[-76.92045898437496,8.573730468750014],[-76.27685546875,8.989111328124991],[-76.02724609374997,9.365771484374989],[-75.63935546874998,9.450439453125014],[-75.680029296875,9.729785156249989],[-75.53857421874997,10.205175781250034],[-75.708349609375,10.143408203124963],[-75.44599609374995,10.610888671874989],[-74.84458007812498,11.109716796875006],[-74.330224609375,10.996679687499991],[-74.51625976562497,10.8625],[-74.40087890625,10.76523437499999],[-74.14291992187503,11.320849609375031],[-73.31337890624997,11.295751953124991],[-72.275,11.88925781250002],[-72.13574218749994,12.188574218749977],[-71.71455078124993,12.41997070312496],[-71.26210937499997,12.335302734375034],[-71.13730468750003,12.04633789062504],[-71.31972656249997,11.861914062500048]]]},"properties":{"name":"Colombia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[43.788671875,-12.307031250000023],[43.85898437500006,-12.368261718749977],[43.66367187500006,-12.342871093749949],[43.63134765624997,-12.247070312499972],[43.788671875,-12.307031250000023]]],[[[44.476367187500074,-12.08154296875],[44.504980468750006,-12.356542968749991],[44.220117187499994,-12.171386718750014],[44.476367187500074,-12.08154296875]]],[[[43.46582031249997,-11.901269531249966],[43.226660156250006,-11.75185546874998],[43.2990234375001,-11.374511718750028],[43.39296875000005,-11.408593749999952],[43.46582031249997,-11.901269531249966]]]]},"properties":{"name":"Comoros","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-24.308251953124966,14.856298828124991],[-24.44052734374992,14.834814453124963],[-24.496875,14.980273437500017],[-24.329492187499937,15.019482421875011],[-24.308251953124966,14.856298828124991]]],[[[-23.18212890624997,15.136767578125017],[-23.210253906250017,15.32353515625006],[-23.119335937499955,15.26840820312502],[-23.18212890624997,15.136767578125017]]],[[[-23.444238281249994,15.00795898437498],[-23.5046875,14.916113281250006],[-23.70537109374999,14.96132812499998],[-23.74809570312499,15.328515625],[-23.444238281249994,15.00795898437498]]],[[[-22.917724609375,16.237255859374955],[-22.69262695312497,16.169042968750006],[-22.710107421874994,16.043359374999966],[-22.95927734374996,16.045117187499983],[-22.917724609375,16.237255859374955]]],[[[-24.08769531249999,16.62250976562501],[-24.03271484374997,16.57202148437503],[-24.243066406250023,16.599414062500017],[-24.32236328124992,16.49311523437504],[-24.398095703124966,16.61840820312497],[-24.08769531249999,16.62250976562501]]],[[[-22.888330078124966,16.659082031249994],[-22.980615234374937,16.700878906249983],[-22.93291015624999,16.84101562500004],[-22.888330078124966,16.659082031249994]]],[[[-24.88706054687495,16.81811523437497],[-25.09306640624999,16.83251953125],[-24.936474609374983,16.92211914062503],[-24.88706054687495,16.81811523437497]]],[[[-25.169824218749994,16.94648437500001],[-25.308300781249955,16.93583984374999],[-25.337109374999955,17.091015624999983],[-25.03466796875,17.176464843749983],[-24.979687499999983,17.09472656250003],[-25.169824218749994,16.94648437500001]]]]},"properties":{"name":"Cape Verde","childNum":8}},{"geometry":{"type":"Polygon","coordinates":[[[-83.6419921875,10.917236328125],[-83.346826171875,10.315380859374997],[-82.77841796874999,9.66953125],[-82.56357421874999,9.57666015625],[-82.56923828125,9.55820312499999],[-82.58652343749999,9.538818359375],[-82.64409179687499,9.505859375],[-82.801025390625,9.591796875],[-82.843994140625,9.57080078125],[-82.86015624999999,9.511474609375],[-82.88896484374999,9.481005859374989],[-82.925048828125,9.469042968749989],[-82.93984375,9.449169921874997],[-82.94033203125,9.060107421874989],[-82.88134765625,9.055859375],[-82.78305664062499,8.990283203124989],[-82.741162109375,8.951708984374989],[-82.72783203124999,8.916064453124989],[-82.91704101562499,8.740332031249991],[-82.855712890625,8.635302734374989],[-82.84477539062499,8.489355468749991],[-82.86162109374999,8.45351562499999],[-83.02734375,8.337744140624991],[-82.879345703125,8.070654296874991],[-83.12333984374999,8.353076171874989],[-83.16240234374999,8.588183593749989],[-83.4697265625,8.706835937499989],[-83.29150390625,8.406005859375],[-83.54375,8.445849609374989],[-83.73408203125,8.614453125],[-83.613720703125,8.804052734374991],[-83.73691406249999,9.150292968749994],[-84.58159179687499,9.568359375],[-84.71494140624999,9.8994140625],[-85.23564453124999,10.242089843749994],[-85.2365234375,10.107373046874997],[-84.88642578125,9.820947265624994],[-85.07705078125,9.60195312499999],[-85.31455078124999,9.8109375],[-85.62485351562499,9.902441406249991],[-85.84965820312499,10.292041015624989],[-85.667236328125,10.745019531249994],[-85.90800781249999,10.897558593749991],[-85.7443359375,11.06210937499999],[-85.5841796875,11.189453125],[-84.9091796875,10.9453125],[-84.6341796875,11.045605468749997],[-83.91928710937499,10.7353515625],[-83.71293945312499,10.785888671875],[-83.6419921875,10.917236328125]]]},"properties":{"name":"Costa Rica","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-82.56176757812503,21.571679687500023],[-82.959619140625,21.441308593750023],[-83.18378906250001,21.59345703125004],[-82.97358398437498,21.592285156250057],[-83.08251953124997,21.791406250000023],[-82.99121093750003,21.942724609375034],[-82.71455078124998,21.890283203125023],[-82.56176757812503,21.571679687500023]]],[[[-77.66899414062493,21.951953125000045],[-77.91855468749998,22.088085937499983],[-77.63369140624994,22.054003906250074],[-77.66899414062493,21.951953125000045]]],[[[-77.87939453125,22.127539062500034],[-78.04165039062502,22.201269531250034],[-77.99921874999998,22.298730468749994],[-77.87939453125,22.127539062500034]]],[[[-81.83745117187499,23.163037109374955],[-81.26235351562497,23.156835937500034],[-81.14462890624998,23.054931640625057],[-80.65014648437494,23.10307617187499],[-80.36489257812502,22.943408203125074],[-79.82026367187498,22.887011718750045],[-79.27568359374999,22.407617187499994],[-78.68647460937493,22.366845703125023],[-77.63681640624995,21.79736328125],[-77.49711914062502,21.78833007812503],[-77.58315429687497,21.889257812499977],[-77.49726562499995,21.871630859375045],[-77.14414062499995,21.643603515625017],[-77.36616210937498,21.612646484375034],[-77.25288085937498,21.483496093750006],[-77.0986328125,21.589013671875023],[-76.86743164062497,21.330419921875006],[-75.72294921874996,21.111035156249983],[-75.59580078125,20.99467773437499],[-75.72456054687493,20.71455078125004],[-74.882568359375,20.65063476562497],[-74.51313476562495,20.384570312500045],[-74.16748046874997,20.292187499999955],[-74.15371093750002,20.168554687500006],[-75.11640624999995,19.901416015625017],[-75.151611328125,20.008349609375045],[-75.29047851562495,19.893115234375017],[-76.15844726562497,19.98974609374997],[-77.715087890625,19.85546874999997],[-77.10380859374999,20.407519531250017],[-77.22958984374995,20.64375],[-78.11635742187497,20.761865234374994],[-78.49077148437493,21.05371093750003],[-78.72768554687497,21.592724609374955],[-79.35742187500003,21.58515625000001],[-80.23134765625,21.872167968750063],[-80.48544921874998,22.1234375],[-81.03564453124997,22.073583984375063],[-81.18549804687495,22.26796875000005],[-81.284375,22.109423828125074],[-81.84941406249993,22.21367187499999],[-82.077734375,22.3876953125],[-81.71035156250002,22.496679687500006],[-81.83881835937498,22.672460937500034],[-82.73803710937497,22.689257812500074],[-83.37963867187503,22.222998046875034],[-83.90073242187495,22.17011718750001],[-84.03095703124993,21.94311523437503],[-84.502587890625,21.776171875000045],[-84.50136718750002,21.930273437499977],[-84.88720703125003,21.856982421875074],[-84.32636718749998,22.074316406250034],[-84.36127929687498,22.37890625],[-84.04492187500003,22.666015625000057],[-83.25781249999997,22.967578125000017],[-81.83745117187499,23.163037109374955]]]]},"properties":{"name":"Cuba","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[-68.75107421874999,12.059765625],[-68.9951171875,12.141845703125],[-69.15888671875,12.380273437499994],[-68.75107421874999,12.059765625]]]},"properties":{"name":"Curaçao","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-81.36953124999997,19.34887695312497],[-81.10712890624995,19.305175781250057],[-81.40478515624994,19.278417968750006],[-81.36953124999997,19.34887695312497]]],[[[-79.823388671875,19.711914062500057],[-79.90620117187501,19.702539062499994],[-79.74228515625,19.757128906250017],[-79.823388671875,19.711914062500057]]]]},"properties":{"name":"Cayman Is.","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[34.004492187500006,35.065234375],[33.47578125000001,35.000341796875],[33.3837890625,35.1626953125],[32.91953125,35.087841796875],[32.71269531250002,35.171044921874994],[32.8798828125,35.180566406249994],[32.94160156250001,35.390429687499996],[33.60761718750001,35.354150390624994],[34.55605468750002,35.662060546875],[33.941992187500006,35.292041015624996],[34.004492187500006,35.065234375]]]},"properties":{"name":"N. Cyprus","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[32.71269531250002,35.171044921874994],[32.91953125,35.087841796875],[33.3837890625,35.1626953125],[33.47578125000001,35.000341796875],[34.004492187500006,35.065234375],[34.05019531250002,34.98837890625],[33.69941406250001,34.969873046874994],[33.007910156250006,34.569580078125],[32.44902343750002,34.729443359375],[32.31718750000002,34.9533203125],[32.30097656250001,35.082958984375],[32.71269531250002,35.171044921874994]]]},"properties":{"name":"Cyprus","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[14.809375,50.858984375],[14.895800781250017,50.861376953124996],[14.98291015625,50.886572265625],[14.99375,51.01435546875],[16.007226562500023,50.611621093749996],[16.2822265625,50.655615234375],[16.419726562500017,50.573632812499994],[16.210351562500023,50.423730468749994],[16.63916015625,50.1021484375],[16.989648437500023,50.2369140625],[16.88007812500001,50.427050781249996],[17.41523437500001,50.254785156249994],[17.702246093750006,50.307177734374996],[17.627050781250006,50.11640625],[17.874804687500017,49.972265625],[18.0283203125,50.03525390625],[18.562402343750023,49.879345703125],[18.83222656250001,49.510791015624996],[18.160937500000017,49.257373046874996],[18.0859375,49.06513671875],[17.75849609375001,48.888134765625],[17.135644531250023,48.841064453125],[16.953125,48.598828125],[16.543554687500006,48.796240234375],[16.057226562500006,48.754785156249994],[15.066796875000023,48.997851562499996],[14.691308593750023,48.59921875],[14.049121093750017,48.602490234375],[13.814746093750017,48.766943359375],[13.769921875000023,48.815966796874996],[13.684960937500023,48.876708984375],[13.547656250000017,48.95966796875],[13.440722656250017,48.95556640625],[13.401171875000017,48.977587890624996],[12.916699218750011,49.33046875],[12.68115234375,49.414501953125],[12.390527343750023,49.739648437499994],[12.5125,49.87744140625],[12.09921875,50.310986328125],[12.134863281250006,50.3109375],[12.1748046875,50.288378906249996],[12.231152343750011,50.244873046875],[12.27734375,50.181445312499996],[12.3056640625,50.205712890624994],[12.549023437500011,50.393408203125],[13.016406250000017,50.490380859374994],[13.18115234375,50.510498046875],[14.369042968750023,50.898730468749996],[14.319726562500023,51.03779296875],[14.545703125000017,50.993945312499996],[14.559667968750006,50.954931640625],[14.59521484375,50.918603515624994],[14.623828125000017,50.91474609375],[14.613574218750017,50.85556640625],[14.658203125,50.8326171875],[14.723339843750011,50.814697265625],[14.766503906250023,50.818310546875],[14.797460937500006,50.842333984374996],[14.809375,50.858984375]]]},"properties":{"name":"Czech Rep.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[14.1982421875,53.919042968750034],[13.92578125,53.879052734374966],[13.827734375,54.12724609374999],[14.1982421875,53.919042968750034]]],[[[13.709179687500011,54.382714843749994],[13.707324218750074,54.281152343749994],[13.190039062500034,54.32563476562501],[13.336816406249994,54.697119140625006],[13.65761718750008,54.55957031249997],[13.709179687500011,54.382714843749994]]],[[[9.739746093750028,54.82553710937498],[10.022167968750011,54.673925781250006],[9.86865234375,54.47246093749999],[10.731542968750006,54.31625976562506],[11.013378906250068,54.37915039062497],[11.008593750000074,54.18115234374997],[10.810742187500068,54.075146484374955],[10.917773437500045,53.99531250000004],[11.39960937500004,53.94462890625002],[12.111328125,54.168310546875006],[12.57539062500004,54.467382812500006],[13.028613281250017,54.411035156249994],[13.448046875000017,54.14086914062503],[13.724218750000063,54.153222656249966],[13.865527343750074,53.85336914062498],[14.258886718750006,53.729638671874994],[14.298730468750051,53.55644531249999],[14.41455078125,53.28349609374996],[14.412304687500011,53.216748046874955],[14.410937500000074,53.19902343749999],[14.368554687500051,53.105566406250034],[14.293164062500068,53.026757812499966],[14.138867187500068,52.93286132812503],[14.128613281250011,52.87822265625002],[14.253710937500017,52.78251953124996],[14.514062500000023,52.645605468750034],[14.619433593750017,52.52851562499998],[14.569726562499994,52.431103515624955],[14.554589843750023,52.35966796874996],[14.573925781250068,52.31416015625001],[14.615625,52.277636718750045],[14.679882812500068,52.25],[14.752539062500034,52.08183593750002],[14.601660156250034,51.832373046875006],[14.738671875000051,51.62714843750004],[14.7109375,51.54492187499997],[14.724707031250063,51.523876953124955],[14.90595703125004,51.463330078124955],[14.935546875000028,51.435351562500045],[14.9638671875,51.095117187499994],[14.917480468750057,51.00874023437498],[14.814257812499989,50.871630859375045],[14.809375,50.858984375000034],[14.797460937500034,50.84233398437502],[14.766503906250051,50.81831054687501],[14.72333984375004,50.81469726562497],[14.658203125,50.832617187500006],[14.613574218750045,50.85556640625006],[14.623828125000017,50.91474609375004],[14.595214843750057,50.91860351562502],[14.559667968750006,50.954931640625034],[14.545703124999989,50.99394531249999],[14.319726562500051,51.037792968749955],[14.36904296875008,50.89873046874996],[13.18115234375,50.510498046875],[13.016406250000017,50.490380859374994],[12.549023437500011,50.393408203125034],[12.3056640625,50.205712890624994],[12.27734375,50.18144531250002],[12.231152343749983,50.24487304687497],[12.174804687500057,50.28837890624996],[12.134863281250006,50.31093750000002],[12.099218750000034,50.31098632812504],[12.089843749999972,50.30175781250003],[12.089746093750051,50.2685546875],[12.294598214285761,50.13608119419641],[12.5125,49.87744140625],[12.390527343750051,49.739648437499994],[12.68115234375,49.41450195312501],[12.91669921875004,49.33046875000002],[13.401171875000074,48.97758789062499],[13.440722656250045,48.95556640625003],[13.547656250000074,48.95966796874998],[13.684960937500051,48.87670898437506],[13.769921875000051,48.81596679687502],[13.814746093750017,48.76694335937498],[13.802929687500011,48.74750976562501],[13.798828124999972,48.62167968750006],[13.785351562499983,48.58745117187502],[13.486621093750074,48.58183593750002],[13.471679687500028,48.57182617187502],[13.459863281250023,48.564550781250034],[13.409375,48.39414062500006],[13.322851562500006,48.33125],[13.215234375000023,48.301904296874994],[12.760351562500063,48.10698242187499],[12.95351562500008,47.890625],[12.897656250000068,47.721875],[13.054101562500051,47.655126953125034],[13.047949218750034,47.57915039062502],[13.031542968750074,47.50800781250001],[13.01435546875004,47.478076171875045],[12.968066406250017,47.475683593750006],[12.878906250000057,47.506445312500034],[12.809375,47.542187499999955],[12.782812500000034,47.56416015624998],[12.781152343750051,47.590429687500006],[12.796191406249989,47.60703125],[12.771386718750023,47.63940429687503],[12.685839843750074,47.66933593750002],[12.209277343750074,47.71826171875003],[12.196875,47.709082031250034],[12.203808593750011,47.64672851562503],[12.185644531250063,47.61953125],[11.041992187500028,47.39311523437496],[10.98085937499999,47.39814453125001],[10.893945312500051,47.470458984375],[10.870605468750028,47.500781250000045],[10.873046874999972,47.52021484375001],[10.741601562500023,47.52412109375001],[10.65869140625,47.547216796875006],[10.482812500000051,47.54179687499996],[10.439453125000028,47.55156249999999],[10.403906250000063,47.41699218750003],[10.369140625,47.366064453125034],[10.18300781250008,47.27880859375003],[10.200292968750063,47.36342773437505],[10.066308593750023,47.39335937500002],[10.064575892857171,47.42369419642856],[10.059863281250045,47.44907226562498],[10.034082031250023,47.47358398437501],[9.971582031249994,47.50532226562498],[9.839160156250017,47.55229492187496],[9.748925781250023,47.575537109375006],[9.524023437500034,47.52421875000002],[8.572656250000023,47.775634765625],[8.435742187500011,47.73134765625002],[8.403417968750006,47.687792968750045],[8.413281250000068,47.66269531249998],[8.451757812500006,47.65180664062498],[8.552343750000063,47.65913085937498],[8.56708984375004,47.65190429687502],[8.57050781250004,47.63779296874998],[8.55947265625008,47.62402343750003],[8.477636718750034,47.61269531250002],[8.454003906249994,47.59619140625003],[7.615625,47.59272460937504],[7.616601562500023,48.15678710937502],[8.134863281250006,48.97358398437498],[7.450585937500051,49.152197265625034],[6.735449218750006,49.16059570312498],[6.344335937500006,49.45273437499998],[6.4873046875,49.798486328124994],[6.204882812500017,49.915136718750034],[6.13818359375,49.97431640625001],[6.10976562500008,50.034375],[6.116503906250045,50.120996093749966],[6.340917968750006,50.451757812500034],[5.993945312500017,50.75043945312504],[6.048437500000034,50.90488281250006],[5.857519531250034,51.030126953125006],[6.129980468750034,51.14741210937501],[6.198828125000034,51.45],[5.948730468750057,51.80268554687501],[6.800390625,51.96738281249998],[6.724511718749994,52.080224609374966],[7.035156250000057,52.38022460937498],[6.748828125000074,52.464013671874994],[6.710742187500045,52.61787109374998],[7.033007812500045,52.65136718749997],[7.197265625000028,53.28227539062499],[7.074316406250034,53.477636718750006],[7.285253906250034,53.68134765625001],[8.00927734375,53.69072265624999],[8.108496093750063,53.46767578125002],[8.245214843750006,53.44531249999997],[8.333886718750051,53.606201171875],[8.495214843750063,53.39423828124998],[8.618945312500045,53.875],[9.20556640625,53.85595703124997],[9.783984375000074,53.554638671874955],[9.31201171875,53.859130859375],[8.92041015625,53.96533203125006],[8.906640625000023,54.26079101562502],[8.625781250000017,54.35395507812501],[8.951855468750011,54.46757812499996],[8.670312500000023,54.903417968750034],[9.739746093750028,54.82553710937498]]],[[[8.307714843750034,54.786962890625034],[8.451464843750017,55.05537109374998],[8.3798828125,54.89985351562501],[8.629589843750068,54.891748046874966],[8.307714843750034,54.786962890625034]]]]},"properties":{"name":"Germany","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[43.24599609375002,11.499804687499989],[42.92275390625002,10.999316406249989],[42.557714843750006,11.080761718749997],[41.79824218750002,10.98046875],[41.79267578125001,11.68603515625],[42.378515625,12.46640625],[42.40859375000002,12.494384765625],[42.45,12.521337890624991],[42.47939453125002,12.513623046874997],[42.703710937500006,12.380322265624997],[42.76748046875002,12.4228515625],[42.825292968750006,12.5693359375],[42.86591796875001,12.622802734375],[42.88330078125,12.621289062499997],[43.00566406250002,12.662304687499997],[43.11669921875,12.70859375],[43.353515625,12.367041015624991],[43.38027343750002,12.091259765624997],[42.64003906250002,11.560107421874989],[42.52177734375002,11.572167968749994],[42.58378906250002,11.496777343749997],[43.04277343750002,11.588476562499991],[43.24599609375002,11.499804687499989]]]},"properties":{"name":"Djibouti","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-61.281689453125,15.2490234375],[-61.37539062499999,15.227294921875],[-61.45810546874999,15.633105468750003],[-61.277246093749994,15.526708984374991],[-61.281689453125,15.2490234375]]]},"properties":{"name":"Dominica","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[11.361425781250006,54.891650390625045],[11.739550781250017,54.80742187500002],[11.765917968750074,54.67944335937506],[11.457421875000023,54.628857421874955],[11.035546875000051,54.77309570312505],[11.058593750000028,54.940576171874966],[11.361425781250006,54.891650390625045]]],[[[12.549218750000051,54.96577148437504],[12.11884765625004,54.91440429687506],[12.274023437500034,55.064111328124994],[12.549218750000051,54.96577148437504]]],[[[10.061230468750068,54.88637695312502],[9.80625,54.90600585937503],[9.78125,55.06904296875001],[10.061230468750068,54.88637695312502]]],[[[10.734082031250011,54.750732421875],[10.621679687500006,54.851416015625006],[10.95107421875008,55.15620117187501],[10.734082031250011,54.750732421875]]],[[[15.087695312500017,55.021875],[14.684179687500063,55.10224609375004],[14.765332031250068,55.296728515625034],[15.132617187500017,55.14453125000003],[15.087695312500017,55.021875]]],[[[10.645117187500006,55.60981445312498],[10.785253906250034,55.13339843749998],[10.44277343750008,55.04877929687498],[9.988769531250028,55.163183593750006],[9.860644531250045,55.515478515625034],[10.645117187500006,55.60981445312498]]],[[[12.665722656250068,55.596533203125006],[12.550878906250034,55.55625],[12.59921875,55.68022460937502],[12.665722656250068,55.596533203125006]]],[[[12.56875,55.785058593749966],[12.215039062500011,55.46650390624998],[12.413085937500028,55.28618164062502],[12.089941406250006,55.18813476562505],[12.050390625000034,54.81533203125002],[11.8623046875,54.77260742187502],[11.653808593750057,55.186914062499966],[11.286328125000068,55.20444335937498],[10.978906250000051,55.721533203125006],[11.322265625000028,55.752539062500006],[11.627734375000074,55.95688476562498],[11.819726562500023,55.69765625000002],[11.86640625000004,55.968164062499966],[12.218945312499983,56.11865234374997],[12.578710937500006,56.06406250000006],[12.56875,55.785058593749966]]],[[[11.052148437500051,57.25253906250006],[10.873828125000045,57.26225585937499],[11.174511718750011,57.322900390624994],[11.052148437500051,57.25253906250006]]],[[[9.739746093750028,54.82553710937498],[8.670312500000023,54.903417968750034],[8.61591796875004,55.41821289062503],[8.132128906250074,55.59980468749998],[8.16396484375008,56.60688476562498],[8.671679687500045,56.49565429687496],[8.88808593750008,56.73505859374998],[9.06708984375004,56.79384765625005],[9.196386718750006,56.70166015625],[9.2548828125,57.01171875000003],[8.992773437499977,57.01611328125003],[8.771972656250028,56.72529296875004],[8.468359375,56.66455078125],[8.284082031250023,56.85234374999999],[8.618554687500051,57.11127929687498],[9.43359375,57.17431640625003],[9.96230468750008,57.580957031249994],[10.609960937500034,57.73691406249998],[10.282714843750057,56.620507812499994],[10.926171875000051,56.44326171875002],[10.753417968750028,56.24199218749999],[10.31875,56.212890625],[10.18300781250008,55.86518554687504],[9.903710937500023,55.84282226562502],[10.02363281250004,55.76142578125004],[9.591113281250017,55.49321289062502],[9.670996093750063,55.26640624999999],[9.453710937500006,55.03955078125006],[9.732324218750023,54.96801757812506],[9.739746093750028,54.82553710937498]]]]},"properties":{"name":"Denmark","childNum":10,"cp":[10.2768332,56.1773879]}},{"geometry":{"type":"Polygon","coordinates":[[[-71.647216796875,19.195947265624994],[-71.746484375,19.285839843749997],[-71.71147460937499,19.486572265625],[-71.75742187499999,19.688183593749997],[-71.779248046875,19.718164062499994],[-71.6673828125,19.8486328125],[-70.95415039062499,19.913964843749994],[-70.19384765625,19.63803710937499],[-69.95683593749999,19.671875],[-69.739404296875,19.29921875],[-69.23247070312499,19.27182617187499],[-69.60595703125,19.206494140624997],[-69.62363281249999,19.117822265624994],[-68.684765625,18.90478515625],[-68.33916015624999,18.611523437499997],[-68.68740234375,18.21494140624999],[-68.9349609375,18.408007812500003],[-69.27451171874999,18.43984375],[-69.770654296875,18.443554687499997],[-70.479931640625,18.21728515625],[-70.644677734375,18.336230468750003],[-71.02783203125,18.273193359375],[-71.43896484375,17.63559570312499],[-71.63173828125,17.773632812499997],[-71.768310546875,18.03916015624999],[-71.76376953124999,18.20395507812499],[-71.737255859375,18.270800781250003],[-71.7619140625,18.34130859375],[-71.87255859375,18.416210937499997],[-71.940380859375,18.512597656249994],[-72.000390625,18.597900390625],[-71.98686523437499,18.6103515625],[-71.86650390624999,18.614160156249994],[-71.74321289062499,18.73291015625],[-71.72705078125,18.80322265625],[-71.733642578125,18.856396484374997],[-71.80712890625,18.987011718749997],[-71.647216796875,19.195947265624994]]]},"properties":{"name":"Dominican Rep.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[8.207617187500006,36.518945312499994],[8.348730468750006,36.36796875],[8.318066406250011,35.654931640624994],[8.31640625,35.403125],[8.35986328125,35.299609375],[8.394238281250011,35.203857421875],[8.312109375,35.084619140624994],[8.27685546875,34.9794921875],[8.24560546875,34.73408203125],[7.513867187500011,34.080517578125],[7.534375,33.717919921874994],[7.877246093750017,33.172119140625],[8.1125,33.055322265624994],[8.333398437500023,32.543603515624994],[9.044042968750006,32.07236328125],[9.160253906250006,31.621337890625],[9.224023437500023,31.373681640624994],[9.51875,30.229394531249994],[9.310253906250011,30.115234375],[9.805273437500006,29.176953125],[9.916015625,27.785693359374996],[9.74755859375,27.330859375],[9.883203125000023,26.630810546874997],[9.491406250000011,26.333740234375],[9.4482421875,26.067138671875],[10.000683593750011,25.332080078125003],[10.255859375,24.591015625],[10.395898437500023,24.485595703125],[10.686132812500006,24.55136718749999],[11.507617187500017,24.314355468749994],[11.967871093750006,23.517871093750003],[7.481738281250017,20.873095703125003],[5.836621093750011,19.479150390624994],[4.227636718750006,19.142773437499997],[3.3564453125,18.986621093750003],[3.119726562500006,19.103173828124994],[3.255859375,19.4109375],[3.130273437500023,19.85019531249999],[1.685449218750023,20.378369140624997],[1.610644531250017,20.555566406249994],[1.165722656250011,20.817431640625003],[1.1455078125,21.102246093749997],[-1.947900390624994,23.124804687500003],[-4.822607421874977,24.99560546875],[-8.683349609375,27.2859375],[-8.683349609375,27.656445312499997],[-8.683349609375,27.900390625],[-8.659912109375,28.718603515625],[-7.485742187499994,29.392236328124994],[-7.427685546874983,29.425],[-7.142431640624977,29.619580078124997],[-6.855566406249977,29.601611328124996],[-6.755126953125,29.583837890625],[-6.635351562499977,29.568798828124997],[-6.597753906249977,29.578955078125],[-6.520556640624989,29.659863281249997],[-6.479736328125,29.820361328124996],[-6.00429687499999,29.83125],[-5.448779296874989,29.956933593749994],[-5.293652343749983,30.058642578124996],[-5.180126953124983,30.166162109374994],[-4.96826171875,30.465380859374996],[-4.778515624999983,30.552392578124994],[-4.529150390624977,30.625537109374996],[-4.322851562499977,30.698876953124994],[-4.148779296874977,30.8095703125],[-3.626904296874983,31.000927734374997],[-3.833398437499994,31.197802734374996],[-3.837109374999983,31.512353515624994],[-3.768164062499977,31.68955078125],[-3.700244140624989,31.700097656249994],[-3.604589843749977,31.686767578125],[-3.439794921874977,31.704541015624997],[-3.017382812499989,31.834277343749996],[-2.988232421874983,31.87421875],[-2.930859374999983,32.042529296874996],[-2.863427734374994,32.07470703125],[-1.275341796874983,32.089013671874994],[-1.16259765625,32.399169921875],[-1.111035156249983,32.552294921874996],[-1.188232421875,32.60849609375],[-1.29638671875,32.675683593749994],[-1.352148437499977,32.703369140625],[-1.45,32.784814453124994],[-1.510009765625,32.87763671875],[-1.550732421874983,33.073583984375],[-1.67919921875,33.318652343749996],[-1.795605468749983,34.751904296875],[-2.131787109374983,34.970849609374994],[-2.190771484374977,35.02978515625],[-2.219628906249994,35.10419921875],[-1.673632812499989,35.18310546875],[-0.426123046874977,35.8615234375],[-0.048242187499994,35.8328125],[0.312207031250011,36.162353515625],[0.9716796875,36.4439453125],[2.593359375,36.60068359375],[2.972851562500011,36.784472656249996],[3.779003906250011,36.89619140625],[4.758105468750017,36.896337890625],[5.29541015625,36.648242187499996],[6.486523437500011,37.085742187499996],[6.927539062500017,36.91943359375],[7.238476562500011,36.968505859375],[7.204296875000011,37.0923828125],[7.910449218750017,36.856347656249994],[8.576562500000023,36.93720703125],[8.601269531250011,36.833935546875],[8.207617187500006,36.518945312499994]]]},"properties":{"name":"Algeria","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-80.131591796875,-2.973144531249957],[-80.27294921875003,-2.995898437499974],[-80.22368164062502,-2.753125],[-80.08076171874995,-2.668847656249966],[-79.90903320312495,-2.725585937499972],[-80.131591796875,-2.973144531249957]]],[[[-90.42392578125,-1.339941406250034],[-90.51953124999994,-1.299121093749974],[-90.47719726562494,-1.22099609374996],[-90.42392578125,-1.339941406250034]]],[[[-89.41889648437498,-0.911035156249966],[-89.60859374999998,-0.888574218750009],[-89.28784179687503,-0.689843750000023],[-89.41889648437498,-0.911035156249966]]],[[[-90.33486328125,-0.771582031249977],[-90.54213867187502,-0.676464843749955],[-90.53168945312493,-0.581445312499966],[-90.26938476562498,-0.48466796874996],[-90.19272460937498,-0.658789062500006],[-90.33486328125,-0.771582031249977]]],[[[-91.42597656249995,-0.460839843749994],[-91.61074218749994,-0.44394531250002],[-91.64667968749998,-0.284472656249946],[-91.46015625000001,-0.255664062500031],[-91.42597656249995,-0.460839843749994]]],[[[-90.57392578124993,-0.333984375],[-90.8677734375,-0.271386718750037],[-90.78037109374998,-0.160449218749989],[-90.57392578124993,-0.333984375]]],[[[-91.27216796874998,0.025146484374986],[-90.799658203125,-0.752050781249991],[-90.90551757812497,-0.94052734375002],[-91.13105468750001,-1.019628906249977],[-91.41904296874998,-0.996679687500006],[-91.49541015624999,-0.860937499999977],[-91.120947265625,-0.559082031250028],[-91.36918945312493,-0.287207031249977],[-91.42885742187502,-0.023388671874955],[-91.59682617187497,0.002099609374994],[-91.36137695312496,0.125830078124977],[-91.27216796874998,0.025146484374986]]],[[[-78.90922851562502,1.252783203124977],[-78.99169921875003,1.293212890625043],[-78.89980468749997,1.359765625],[-78.90922851562502,1.252783203124977]]],[[[-75.28447265624999,-0.10654296875002],[-75.62626953124999,-0.122851562499974],[-75.63203125000001,-0.157617187500037],[-75.56059570312502,-0.200097656249994],[-75.49106445312498,-0.24833984374996],[-75.42470703124997,-0.408886718749983],[-75.259375,-0.59013671874996],[-75.24960937499998,-0.951855468750026],[-75.34819335937499,-0.966796874999957],[-75.38012695312503,-0.94023437499996],[-75.40805664062503,-0.92431640625],[-75.42041015624997,-0.962207031250003],[-75.570556640625,-1.53125],[-76.08979492187501,-2.133105468749974],[-76.6791015625,-2.562597656249991],[-77.860595703125,-2.981640625000011],[-78.240380859375,-3.472558593750009],[-78.345361328125,-3.397363281249966],[-78.64799804687499,-4.248144531250006],[-78.68603515625003,-4.562402343749994],[-78.86152343749998,-4.665039062499943],[-78.90761718749997,-4.714453124999977],[-78.92578125,-4.770703124999983],[-78.91420898437497,-4.818652343749974],[-78.919189453125,-4.858398437499986],[-78.97539062499999,-4.873242187499997],[-78.99526367187497,-4.908007812499974],[-79.03330078124998,-4.96914062499999],[-79.07626953125003,-4.990625],[-79.18666992187497,-4.958203124999983],[-79.26811523437493,-4.957617187499949],[-79.33095703124997,-4.92783203125002],[-79.39941406249997,-4.840039062499983],[-79.45576171874998,-4.766210937499949],[-79.50190429687495,-4.670605468750011],[-79.51616210937493,-4.539160156249963],[-79.57768554687496,-4.50058593750002],[-79.638525390625,-4.454882812500031],[-79.71098632812502,-4.467578124999946],[-79.79726562500002,-4.47636718749996],[-79.8451171875,-4.445898437499977],[-79.962890625,-4.390332031250026],[-80.06352539062499,-4.327539062500023],[-80.13955078125002,-4.296093750000011],[-80.19746093750001,-4.311035156249943],[-80.293359375,-4.416796875],[-80.38349609374998,-4.46367187499996],[-80.424169921875,-4.461425781250028],[-80.47856445312499,-4.430078125000037],[-80.48847656249995,-4.393652343749991],[-80.44384765625003,-4.335839843750023],[-80.35288085937495,-4.208496093750014],[-80.453759765625,-4.205175781249963],[-80.48847656249995,-4.165527343749972],[-80.49345703124999,-4.119140625000014],[-80.510009765625,-4.06953125000004],[-80.49013671874994,-4.010058593750003],[-80.43720703125001,-3.978613281249991],[-80.30327148437499,-4.005078124999969],[-80.26689453124993,-3.948828124999963],[-80.23051757812499,-3.924023437499969],[-80.19414062499996,-3.905859375],[-80.24375,-3.576757812500006],[-80.32465820312498,-3.387890625],[-79.96333007812501,-3.15771484375],[-79.72988281249997,-2.579101562499972],[-79.842138671875,-2.0673828125],[-79.92558593749996,-2.548535156249969],[-80.03017578124994,-2.556738281249949],[-80.00664062499993,-2.353808593750003],[-80.28471679687502,-2.706738281249955],[-80.93217773437493,-2.269140624999977],[-80.76059570312498,-1.934570312500028],[-80.90239257812499,-1.078906249999974],[-80.55390624999998,-0.847949218749989],[-80.45546875,-0.585449218749986],[-80.282373046875,-0.620507812500023],[-80.48227539062503,-0.368261718749963],[-80.046142578125,0.155371093750048],[-80.08828124999997,0.78476562500002],[-78.89965820312503,1.20625],[-78.85966796874996,1.455371093750031],[-78.1806640625,0.968554687499974],[-77.702880859375,0.837841796874997],[-77.46767578124997,0.636523437500017],[-77.396337890625,0.393896484374963],[-76.49462890624997,0.23544921875002],[-76.27060546874998,0.439404296874997],[-75.77666015624999,0.08925781249998],[-75.28447265624999,-0.10654296875002]]]]},"properties":{"name":"Ecuador","childNum":9}},{"geometry":{"type":"Polygon","coordinates":[[[34.24531250000001,31.208300781249996],[34.904296875,29.47734375],[34.736425781250006,29.27060546875],[34.39970703125002,28.01601562499999],[34.22011718750002,27.764306640624994],[33.76025390625,28.04765625],[33.24775390625001,28.567724609375],[32.56572265625002,29.973974609375],[32.35976562500002,29.630664062499996],[32.89824218750002,28.565234375],[33.54707031250001,27.898144531249997],[33.5498046875,27.607373046874997],[33.84931640625001,27.184912109375],[33.959082031250006,26.6490234375],[35.19414062500002,24.475146484375003],[35.78388671875001,23.937792968750003],[35.54082031250002,23.920654296875],[35.50439453125,23.779296875],[35.697851562500006,22.946191406249994],[36.22968750000001,22.628808593749994],[36.87138671875002,21.996728515624994],[31.434472656250023,21.995849609375],[31.486132812500017,22.14780273437499],[31.400292968750023,22.202441406250003],[31.260644531250023,22.00229492187499],[31.092675781250023,21.994873046875],[28.036425781250017,21.995361328125],[24.980273437500017,21.995849609375],[24.980273437500017,25.5888671875],[24.980273437500017,29.181884765625],[24.703222656250006,30.201074218749994],[24.96142578125,30.678515625],[24.85273437500001,31.334814453125],[25.150488281250006,31.654980468749997],[25.382226562500023,31.51279296875],[25.89326171875001,31.620898437499996],[27.248046875,31.377880859374997],[27.5400390625,31.212695312499996],[28.51484375000001,31.050439453124994],[29.072070312500017,30.830273437499997],[29.929785156250006,31.227490234374997],[30.22265625,31.2583984375],[30.395117187500006,31.4576171875],[30.92353515625001,31.566845703124997],[30.56298828125,31.4169921875],[31.001757812500017,31.462792968749994],[31.082910156250023,31.603320312499996],[31.5244140625,31.458251953125],[31.888964843750017,31.54140625],[32.13603515625002,31.341064453125],[31.8921875,31.482470703124996],[31.77109375,31.292578125],[32.10175781250001,31.092822265624996],[32.281835937500006,31.200878906249997],[32.21621093750002,31.29375],[32.60332031250002,31.06875],[33.66650390625,31.130419921874996],[34.19814453125002,31.322607421875],[34.24531250000001,31.208300781249996]]]},"properties":{"name":"Egypt","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[40.141210937500006,15.696142578125034],[40.399023437500006,15.579882812500045],[39.975195312500006,15.612451171875023],[39.94746093750004,15.696142578125034],[40.07050781250004,15.676611328125034],[39.93994140625003,15.744531250000023],[39.9567382812501,15.889404296875057],[40.141210937500006,15.696142578125034]]],[[[40.07646484375002,16.082421875000023],[40.11005859375004,15.985742187500051],[39.99609375000003,16.04267578125001],[40.07646484375002,16.082421875000023]]],[[[40.938574218750006,13.983105468749997],[40.82011718750002,14.111669921874991],[40.22148437500002,14.431152343749972],[39.531835937500006,14.53671875],[39.198046875000074,14.479394531250037],[39.1354492187501,14.581884765625034],[39.07421874999997,14.628222656249974],[39.02382812499999,14.628222656249974],[38.99570312500006,14.586865234374983],[38.81201171875003,14.482324218750009],[38.50439453124997,14.42441406250002],[38.43144531250002,14.428613281249994],[38.221484375000074,14.649658203124986],[38.002539062500006,14.737109375000045],[37.94345703125006,14.810546875],[37.884179687499994,14.852294921874972],[37.82031250000003,14.708496093749986],[37.70839843750005,14.45722656250004],[37.64843750000003,14.32255859375006],[37.571191406249994,14.149072265624966],[37.546777343749994,14.143847656249974],[37.507226562499994,14.156396484375037],[37.257226562499994,14.453759765625051],[37.024511718750006,14.271972656250057],[36.81191406250005,14.315039062500034],[36.67910156250005,14.307568359375026],[36.542382812499994,14.25820312499999],[36.52431640625005,14.256835937499986],[36.492285156250006,14.544335937500023],[36.470800781250006,14.736474609375009],[36.448144531249994,14.940087890625009],[36.42675781249997,15.132080078125043],[36.566015625,15.362109375],[36.9137695312501,16.296191406250045],[36.887792968750006,16.624658203124994],[36.9787109375001,16.800585937500045],[36.9757812500001,16.866552734375006],[36.99521484375006,17.020556640625017],[37.00898437500004,17.058886718750017],[37.06152343749997,17.061279296875057],[37.16953125000006,17.04140625],[37.41103515625005,17.061718749999955],[37.452929687500074,17.108691406250017],[37.51015625,17.28813476562499],[37.54746093750006,17.32412109375005],[37.78242187500004,17.458007812500057],[38.253515625,17.584765625000017],[38.26728515625004,17.616699218750057],[38.28984375000002,17.637011718750017],[38.34736328125004,17.68359375],[38.37373046875004,17.717333984375045],[38.42246093750006,17.823925781249983],[38.60947265625006,18.00507812500004],[39.03447265625002,17.085546875000034],[39.298925781250006,15.921093750000011],[39.78554687499999,15.124853515624991],[39.86376953124997,15.470312500000034],[40.20410156250003,15.014111328124983],[41.17646484375004,14.620312500000054],[41.65820312499997,13.983056640624994],[42.24511718749997,13.587646484374986],[42.39931640625005,13.212597656249969],[42.522851562499994,13.221484375],[42.796191406250074,12.864257812500057],[42.96953125000002,12.808349609375028],[42.99902343750003,12.899511718750048],[43.08291015625005,12.824609374999966],[43.11669921874997,12.708593749999963],[43.00566406250002,12.66230468750004],[42.88330078124997,12.621289062500026],[42.86591796875004,12.622802734374986],[42.82529296875006,12.569335937500014],[42.767480468749994,12.422851562500014],[42.70371093750006,12.380322265625054],[42.479394531249994,12.513623046875026],[42.45,12.521337890625006],[42.40859375,12.494384765625014],[42.37851562500006,12.46640625],[42.28994140625005,12.570214843750009],[42.225,12.661962890624963],[42.13427734374997,12.771435546874969],[41.95214843749997,12.88232421875],[41.85957031250004,13.025878906250028],[41.76503906250005,13.183935546874991],[41.362890625,13.499804687500031],[40.938574218750006,13.983105468749997]]]]},"properties":{"name":"Eritrea","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-17.887939453125,27.809570312500057],[-17.984765625000023,27.646386718750023],[-18.160546874999937,27.76147460937503],[-17.887939453125,27.809570312500057]]],[[[-15.400585937499955,28.147363281250023],[-15.436767578124972,27.810693359375023],[-15.71030273437492,27.784082031250023],[-15.809472656249966,27.994482421874977],[-15.682763671874994,28.15405273437497],[-15.400585937499955,28.147363281250023]]],[[[-17.184667968749977,28.02197265624997],[-17.324902343749955,28.11767578125003],[-17.25859375,28.203173828125045],[-17.103759765624943,28.111132812500017],[-17.184667968749977,28.02197265624997]]],[[[-16.33447265624997,28.37993164062499],[-16.41821289062497,28.15141601562496],[-16.65800781249999,28.007177734374977],[-16.905322265625017,28.33959960937503],[-16.12363281249992,28.57597656249996],[-16.33447265624997,28.37993164062499]]],[[[-14.196777343749943,28.169287109375063],[-14.332617187500006,28.056005859374977],[-14.49179687499992,28.100927734374977],[-14.231982421875017,28.21582031250003],[-14.003369140624983,28.706689453125023],[-13.85722656249996,28.73803710937503],[-13.928027343749989,28.25346679687499],[-14.196777343749943,28.169287109375063]]],[[[-17.83427734374999,28.49321289062496],[-18.00078124999999,28.758251953124955],[-17.928808593749977,28.844580078125063],[-17.7265625,28.724462890625006],[-17.83427734374999,28.49321289062496]]],[[[-13.715966796874966,28.911230468750034],[-13.85991210937496,28.869091796874983],[-13.823632812499966,29.013330078124966],[-13.463574218749955,29.237207031250023],[-13.477929687499966,29.00659179687503],[-13.715966796874966,28.911230468750034]]],[[[1.593945312500068,38.672070312499955],[1.40576171875,38.670996093750006],[1.436328125000017,38.768212890624994],[1.593945312500068,38.672070312499955]]],[[[1.445214843750051,38.91870117187503],[1.223339843750068,38.90385742187502],[1.3486328125,39.080810546875],[1.564453125,39.12104492187504],[1.623632812499977,39.03881835937497],[1.445214843750051,38.91870117187503]]],[[[3.145312500000017,39.79008789062499],[3.461816406250023,39.69775390625003],[3.072851562500006,39.30126953124997],[2.799804687500057,39.38505859374999],[2.700585937500023,39.54213867187502],[2.49951171875,39.47788085937498],[2.37001953125008,39.57207031249999],[3.15869140625,39.97050781249999],[3.145312500000017,39.79008789062499]]],[[[4.293652343750011,39.84184570312499],[3.8671875,39.958740234375],[3.853417968750051,40.06303710937502],[4.22578125000004,40.032373046874966],[4.293652343750011,39.84184570312499]]],[[[-1.794042968749949,43.407324218750006],[-1.410693359374932,43.240087890625034],[-1.460839843749937,43.05175781250006],[-1.300048828124943,43.10097656250002],[-0.586425781249943,42.798974609374966],[0.631640625000045,42.689599609374994],[0.696875,42.84511718750005],[1.428320312499977,42.59589843749998],[1.414843750000074,42.54838867187499],[1.448828124999977,42.43745117187504],[1.534082031250051,42.44169921875002],[1.7060546875,42.50332031250005],[1.859765625000051,42.457080078125045],[1.927929687500068,42.42631835937499],[2.032714843750028,42.353515625],[3.21142578125,42.43115234375],[3.248046875,41.94423828125002],[3.0048828125,41.76743164062506],[2.082617187500063,41.287402343750045],[1.032910156250068,41.06206054687496],[0.714648437500074,40.822851562500006],[0.891113281250057,40.72236328125004],[0.59609375000008,40.614501953125],[-0.327001953124949,39.519873046875006],[-0.204931640624949,39.062597656250034],[0.20156250000008,38.75917968750002],[-0.520800781249989,38.317285156249966],[-0.814648437500011,37.76992187500002],[-0.721582031249966,37.63105468749998],[-1.327539062499937,37.561132812500034],[-1.640966796874949,37.38696289062497],[-2.111523437499983,36.77666015624999],[-4.366845703124994,36.71811523437506],[-4.67412109374996,36.506445312500006],[-5.171484374999949,36.423779296874955],[-5.3609375,36.134912109374994],[-5.62548828125,36.02592773437499],[-6.040673828124937,36.18842773437498],[-6.38413085937492,36.63701171874996],[-6.216796875000028,36.91357421875],[-6.396191406249983,36.831640625],[-6.863769531250028,37.27890625],[-7.406152343749937,37.17944335937497],[-7.44394531249992,37.72827148437497],[-6.957568359374932,38.18789062499999],[-7.106396484374983,38.181005859375006],[-7.343017578124943,38.45742187500002],[-6.997949218749994,39.05644531250002],[-7.53569335937496,39.66157226562501],[-7.117675781249972,39.681689453125045],[-6.975390624999932,39.79838867187502],[-6.896093749999949,40.02182617187506],[-7.032617187499966,40.16791992187498],[-6.8101562499999,40.343115234375034],[-6.928466796874972,41.009130859375006],[-6.2125,41.53203125],[-6.542187499999955,41.672509765624994],[-6.61826171874992,41.9423828125],[-7.147119140625023,41.98115234374998],[-7.40361328124996,41.833691406249955],[-8.152490234374937,41.81196289062498],[-8.266064453124983,42.13740234375001],[-8.777148437500017,41.941064453124994],[-8.887207031249943,42.105273437500045],[-8.690917968749943,42.274169921875],[-8.815820312499966,42.285253906250034],[-8.730029296874989,42.411718750000034],[-8.8115234375,42.64033203124998],[-9.033105468750023,42.593847656250006],[-8.927197265624926,42.79858398437497],[-9.235205078124977,42.97690429687498],[-9.178076171874977,43.17402343749998],[-8.248925781249937,43.43940429687498],[-8.256738281249937,43.57988281249999],[-8.004687499999932,43.69438476562496],[-7.503613281249983,43.73994140625001],[-7.060986328124955,43.55395507812503],[-5.846679687499943,43.645068359375045],[-4.52304687499992,43.41572265625004],[-3.604638671874966,43.51948242187504],[-3.045605468749926,43.37158203125],[-2.875048828125017,43.454443359375006],[-2.337109374999926,43.32802734375002],[-1.794042968749949,43.407324218750006]]]]},"properties":{"name":"Spain","childNum":12,"cp":[-2.9366964,40.3438963]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[22.61738281250004,58.62124023437502],[23.323242187500057,58.45083007812502],[22.730273437500045,58.23066406250001],[22.371679687499977,58.217138671875006],[21.996875,57.93134765624998],[22.187695312500068,58.15434570312502],[21.88212890624999,58.262353515624994],[21.862304687500057,58.497167968750034],[22.61738281250004,58.62124023437502]]],[[[23.343554687500017,58.550341796875045],[23.10908203125004,58.65922851562502],[23.332812500000045,58.648583984374994],[23.343554687500017,58.550341796875045]]],[[[22.923730468750023,58.826904296875],[22.54218750000001,58.68999023437499],[22.411035156250023,58.863378906250034],[22.05625,58.94360351562506],[22.6494140625,59.08710937499998],[22.90986328125004,58.99121093749997],[22.923730468750023,58.826904296875]]],[[[28.0125,59.484277343749966],[28.15107421875004,59.374414062499966],[27.434179687500006,58.787255859374994],[27.502441406250057,58.221337890624994],[27.778515625000068,57.87070312500006],[27.542089843750063,57.799414062500006],[27.4,57.66679687499999],[27.35195312500005,57.528125],[26.96601562500001,57.60913085937506],[26.532617187499994,57.53100585937503],[26.29804687500001,57.60107421875],[25.66015625,57.920166015625],[25.27265625000001,58.009375],[25.11103515625004,58.06342773437498],[24.45888671875005,57.907861328124994],[24.3625,57.86616210937501],[24.322558593750074,57.87060546875003],[24.529101562500045,58.35424804687497],[24.114843750000034,58.26611328125006],[23.767578125000057,58.36083984374997],[23.50927734375003,58.65854492187498],[23.680761718750063,58.787158203125074],[23.43203125,58.920654296875],[23.494433593750017,59.19565429687498],[24.083398437500023,59.29189453125005],[24.38037109375003,59.47265625],[25.44375,59.52114257812502],[25.50927734374997,59.63901367187506],[26.974707031250006,59.450634765624955],[28.0125,59.484277343749966]]]]},"properties":{"name":"Estonia","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[38.43144531250002,14.428613281249994],[38.50439453125,14.424414062499991],[38.81201171875,14.482324218749994],[38.995703125,14.586865234374997],[39.02382812500002,14.628222656250003],[39.07421875,14.628222656250003],[39.13544921875001,14.581884765624991],[39.19804687500002,14.479394531249994],[39.531835937500006,14.53671875],[40.22148437500002,14.43115234375],[40.82011718750002,14.111669921874991],[40.938574218750006,13.983105468749997],[41.362890625,13.499804687500003],[41.76503906250002,13.183935546874991],[41.85957031250001,13.02587890625],[41.9521484375,12.88232421875],[42.13427734375,12.771435546874997],[42.225,12.661962890624991],[42.28994140625002,12.570214843749994],[42.378515625,12.46640625],[41.79267578125001,11.68603515625],[41.79824218750002,10.98046875],[42.557714843750006,11.080761718749997],[42.92275390625002,10.999316406249989],[42.65644531250001,10.6],[42.84160156250002,10.203076171874997],[43.181640625,9.879980468749991],[43.482519531250006,9.379492187499991],[43.98378906250002,9.008837890624989],[46.97822265625001,7.9970703125],[47.97822265625001,7.9970703125],[44.940527343750006,4.912011718749994],[43.988867187500006,4.950537109374991],[43.58349609375,4.85498046875],[43.12568359375001,4.644482421874997],[42.85664062500001,4.32421875],[42.02412109375001,4.137939453125],[41.91533203125002,4.031298828124989],[41.88398437500001,3.977734375],[41.73769531250002,3.979052734374989],[41.48193359375,3.96328125],[41.37246093750002,3.946191406249994],[41.22089843750001,3.943554687499997],[41.02080078125002,4.057470703124991],[40.765234375,4.27304687499999],[39.84218750000002,3.851464843749994],[39.79033203125002,3.754248046874991],[39.65751953125002,3.577832031249997],[39.49443359375002,3.456103515624989],[38.608007812500006,3.60009765625],[38.45156250000002,3.604833984374991],[38.22529296875001,3.618994140624991],[38.08613281250001,3.64882812499999],[37.15458984375002,4.254541015624994],[36.90556640625002,4.411474609374991],[36.02197265625,4.468115234374991],[35.76308593750002,4.808007812499994],[35.75615234375002,4.950488281249989],[35.779296875,5.105566406249991],[35.80029296875,5.156933593749997],[35.74501953125002,5.343994140625],[35.325292968750006,5.364892578124994],[35.2646484375,5.412060546874997],[35.26386718750001,5.457910156249994],[35.26835937500002,5.492285156249991],[34.98359375000001,5.858300781249994],[34.71064453125001,6.660302734374994],[34.06425781250002,7.225732421874994],[33.902441406250006,7.509521484375],[32.99892578125002,7.899511718749991],[33.28105468750002,8.437255859375],[33.95332031250001,8.443505859374994],[34.07275390625,8.545263671874991],[34.078125,9.461523437499991],[34.31123046875001,10.190869140624997],[34.34394531250001,10.658642578124997],[34.571875,10.880175781249989],[34.77128906250002,10.746191406249991],[34.93144531250002,10.864794921874989],[35.1123046875,11.816552734374994],[35.67021484375002,12.623730468749997],[36.12519531250001,12.75703125],[36.52431640625002,14.2568359375],[36.54238281250002,14.25820312499999],[36.67910156250002,14.307568359374997],[36.81191406250002,14.315039062499991],[37.024511718750006,14.27197265625],[37.25722656250002,14.453759765624994],[37.50722656250002,14.156396484374994],[37.54677734375002,14.143847656250003],[37.57119140625002,14.149072265624994],[37.6484375,14.322558593750003],[37.70839843750002,14.457226562499997],[37.8203125,14.70849609375],[37.88417968750002,14.852294921875],[37.943457031250006,14.810546875],[38.002539062500006,14.737109375],[38.22148437500002,14.649658203125],[38.43144531250002,14.428613281249994]]]},"properties":{"name":"Ethiopia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[22.17509765624999,60.370751953124994],[22.41552734375003,60.30336914062505],[22.36054687500004,60.165576171875045],[22.07714843750003,60.286328124999955],[22.17509765624999,60.370751953124994]]],[[[21.450878906250068,60.529589843750045],[21.3,60.47978515625002],[21.224707031250006,60.62060546875003],[21.450878906250068,60.529589843750045]]],[[[21.2177734375,63.241308593750034],[21.415625,63.19736328125006],[21.25341796875,63.152001953124966],[21.08388671875008,63.277539062499955],[21.2177734375,63.241308593750034]]],[[[24.848242187500034,64.99101562499999],[24.576562500000023,65.04287109375],[24.970605468750023,65.05532226562502],[24.848242187500034,64.99101562499999]]],[[[28.96582031250003,69.02197265625],[28.414062500000057,68.90415039062506],[28.77285156250005,68.84003906249995],[28.470703125000057,68.48837890625],[28.685156250000034,68.189794921875],[29.343847656250006,68.06186523437506],[29.988085937500017,67.66826171874999],[29.066210937500045,66.89174804687497],[30.102734375000097,65.72626953125004],[29.715917968750063,65.62456054687502],[29.608007812500006,65.248681640625],[29.826953125000017,65.14506835937502],[29.60419921875004,64.968408203125],[30.072851562500063,64.76503906250005],[30.04189453125005,64.44335937499997],[30.513769531250006,64.2],[30.50390625000003,64.02060546875],[29.991503906250074,63.73515625000002],[31.180859375000097,63.208300781250074],[31.533984375000017,62.885400390624994],[31.18671875000004,62.48139648437504],[29.69013671875004,61.54609375000001],[27.797656250000074,60.53613281250003],[26.53466796874997,60.412890625000074],[26.56933593750003,60.62456054687502],[26.377734375000074,60.42407226562503],[25.955957031250023,60.474218750000034],[26.03583984375004,60.34150390625001],[25.75800781250004,60.26752929687504],[25.65644531250004,60.33320312499998],[24.44560546874999,60.021289062500045],[23.46357421875004,59.986230468749994],[23.021289062500074,59.81601562500006],[23.19843750000001,60.02182617187498],[22.911718750000063,60.20971679687497],[22.749804687500017,60.057275390624994],[22.462695312500045,60.029199218749966],[22.5849609375,60.380566406249955],[21.436035156250057,60.596386718749955],[21.605957031250057,61.59155273437503],[21.255957031250063,61.98964843750005],[21.143847656250045,62.73999023437506],[21.650976562500063,63.039306640625],[21.545117187499983,63.204296874999955],[22.31972656250005,63.310449218749994],[22.532324218750034,63.647851562499994],[23.598925781250074,64.04091796874997],[24.557910156250045,64.801025390625],[25.288183593750063,64.8603515625],[25.34785156250004,65.47924804687497],[24.674902343750006,65.67070312499999],[24.628027343750034,65.85917968750002],[24.15546875000004,65.80527343750006],[23.700292968750034,66.25263671874998],[23.988574218750045,66.81054687500003],[23.64150390625005,67.12939453124997],[23.733593750000068,67.42290039062499],[23.454882812500045,67.46025390625007],[23.63886718750004,67.95439453125002],[22.854101562500034,68.36733398437502],[21.99746093750005,68.52060546874998],[20.622167968750006,69.036865234375],[21.065722656250017,69.04174804687503],[21.06611328125001,69.21411132812497],[21.59375,69.273583984375],[22.410937500000074,68.719873046875],[23.324023437500017,68.64897460937502],[23.85400390625,68.80590820312503],[24.94140625000003,68.59326171875006],[25.748339843750017,68.99013671875],[26.07246093750004,69.69155273437497],[26.525390625000057,69.91503906250003],[27.127539062500063,69.90649414062497],[27.747851562500045,70.06484375],[29.14160156250003,69.67143554687505],[29.33339843750005,69.47299804687503],[28.846289062500006,69.17690429687502],[28.96582031250003,69.02197265625]]]]},"properties":{"name":"Finland","childNum":5}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[178.48789062500018,-18.97412109375],[177.95869140624998,-19.121582031250014],[178.33427734375013,-18.93447265625001],[178.48789062500018,-18.97412109375]]],[[[179.34931640625015,-18.10234375000003],[179.25351562500018,-18.030566406249974],[179.30644531250013,-17.944042968750026],[179.34931640625015,-18.10234375000003]]],[[[178.28017578124994,-17.37197265625001],[178.59160156249996,-17.651464843750006],[178.66767578125004,-18.080859375],[177.95546875000005,-18.264062500000023],[177.32138671875,-18.077539062500037],[177.26396484375007,-17.86347656250004],[177.5044921875,-17.539550781250043],[177.81796875000012,-17.38847656249999],[178.28017578124994,-17.37197265625001]]],[[[180,-16.96308593750001],[179.89697265625003,-16.96406250000004],[180,-16.785742187500034],[180,-16.96308593750001]]],[[[-179.97490234374996,-16.92480468750003],[-180,-16.96298828124999],[-180,-16.907812500000034],[-180,-16.82431640624999],[-180,-16.78554687499999],[-179.86098632812502,-16.68828124999999],[-179.97490234374996,-16.92480468750003]]],[[[-179.92944335937503,-16.502832031250037],[-179.999951171875,-16.540039062499986],[-179.900927734375,-16.431542968749994],[-179.92944335937503,-16.502832031250037]]],[[[179.99921875000004,-16.168554687499977],[179.56416015625004,-16.636914062499997],[179.56816406249996,-16.747460937499966],[179.93037109375004,-16.51943359375005],[179.9279296875001,-16.74443359374996],[179.41933593750005,-16.80654296875001],[179.20234375000004,-16.71269531249999],[179.00683593750003,-16.90019531249999],[178.70664062500018,-16.97617187500002],[178.4974609375,-16.78789062500003],[178.58359375000012,-16.621875],[178.80507812499994,-16.631445312500034],[179.55175781250003,-16.249902343750023],[180,-16.15292968749999],[179.99921875000004,-16.168554687499977]]]]},"properties":{"name":"Fiji","childNum":7}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-61.01875,-51.7857421875],[-60.87597656250003,-51.79423828125004],[-60.94755859374996,-51.94628906250002],[-61.14501953125003,-51.83945312500001],[-61.01875,-51.7857421875]]],[[[-60.28623046874995,-51.461914062500014],[-59.38759765625002,-51.35996093750003],[-59.26806640625,-51.42753906250003],[-59.92138671874997,-51.969531250000045],[-60.246337890625,-51.98642578125003],[-60.35346679687498,-52.13994140625004],[-60.686376953125034,-52.18837890624996],[-60.96142578125003,-52.05732421874999],[-60.23847656249998,-51.771972656250036],[-60.58251953125,-51.71269531250004],[-60.24516601562493,-51.638867187500004],[-60.56845703124998,-51.357812499999945],[-60.28623046874995,-51.461914062500014]]],[[[-60.11171875000002,-51.39589843749998],[-60.275341796874955,-51.28056640625002],[-60.06982421875,-51.307910156249996],[-60.11171875000002,-51.39589843749998]]],[[[-58.85019531249995,-51.26992187499998],[-58.42583007812502,-51.32421875000003],[-58.508935546874994,-51.48359375],[-58.271582031250034,-51.57470703124999],[-58.25922851562501,-51.417089843750034],[-57.976513671874955,-51.384375],[-57.80849609375002,-51.51796875],[-57.96044921874997,-51.58320312500003],[-57.79179687499999,-51.63613281249998],[-58.68349609375002,-51.93623046875001],[-58.65278320312498,-52.09921875],[-59.19584960937496,-52.01767578125],[-59.06801757812502,-52.17304687500003],[-59.341503906249955,-52.19599609375],[-59.395654296874966,-52.308007812499994],[-59.64873046875002,-52.134375],[-59.57080078124994,-51.92539062500003],[-59.05952148437498,-51.685449218749994],[-59.09663085937498,-51.49140624999998],[-58.85019531249995,-51.26992187499998]]]]},"properties":{"name":"Falkland Is.","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[55.79736328125003,-21.33935546875003],[55.36269531250005,-21.27363281250004],[55.23281250000005,-21.05839843749999],[55.311328125000074,-20.90410156249999],[55.661914062500074,-20.90625],[55.8390625000001,-21.13857421874998],[55.79736328125003,-21.33935546875003]]],[[[45.180273437500006,-12.97675781250004],[45.069433593750006,-12.895605468750034],[45.09238281250006,-12.653027343749997],[45.22314453124997,-12.752148437500026],[45.180273437500006,-12.97675781250004]]],[[[-51.65253906249998,4.061279296874972],[-52.327880859375,3.18173828125002],[-52.58300781250003,2.528906249999977],[-52.90346679687502,2.211523437499977],[-53.76777343749998,2.354833984375048],[-54.13007812499998,2.121044921875026],[-54.43310546875,2.207519531250057],[-54.51508789062498,2.245458984374963],[-54.55048828125001,2.293066406249991],[-54.59194335937502,2.313769531250031],[-54.61625976562499,2.326757812500006],[-54.60473632812497,2.335791015624991],[-54.56840820312502,2.342578125000031],[-54.53593749999999,2.343310546875003],[-54.48554687500001,2.416113281250006],[-54.402001953124966,2.46152343750002],[-54.25673828125002,2.713720703124977],[-54.19550781249998,2.817871093750057],[-54.17070312499999,2.993603515624969],[-54.203125,3.138183593750028],[-54.18803710937499,3.178759765625031],[-54.063183593749955,3.353320312499989],[-54.00957031249993,3.448535156250017],[-54.03422851562499,3.62939453125],[-54.350732421874994,4.054101562500023],[-54.47968749999998,4.836523437499991],[-53.91992187499997,5.768994140624983],[-52.899316406249966,5.425048828124986],[-52.29052734375003,4.942187500000031],[-52.324609374999966,4.770898437500037],[-52.21997070312494,4.862792968750014],[-52.05810546875003,4.717382812499963],[-52.00292968749997,4.352294921875014],[-51.82753906250002,4.635693359375026],[-51.65253906249998,4.061279296874972]]],[[[-60.826269531250006,14.494482421874991],[-61.063720703125,14.467089843750017],[-61.01132812499998,14.601904296875034],[-61.21333007812501,14.848583984375011],[-60.927148437499966,14.755175781249989],[-60.826269531250006,14.494482421874991]]],[[[-61.23046875000003,15.889941406250074],[-61.310742187499955,15.894677734374966],[-61.25,16.006298828124983],[-61.23046875000003,15.889941406250074]]],[[[-61.58955078125001,16.006933593750006],[-61.759423828124966,16.062060546875045],[-61.74804687499997,16.355273437500017],[-61.55234374999998,16.270898437499966],[-61.58955078125001,16.006933593750006]]],[[[-61.3271484375,16.230419921874983],[-61.522167968749955,16.22802734375003],[-61.47119140624994,16.506640625000045],[-61.17260742187497,16.25610351562497],[-61.3271484375,16.230419921874983]]],[[[9.480371093750023,42.80541992187503],[9.550683593750051,42.12973632812506],[9.186132812500034,41.38491210937502],[8.80751953125008,41.58837890625],[8.886816406249977,41.70068359375003],[8.621875,41.93071289062502],[8.700976562500045,42.09560546875002],[8.565625,42.35771484374996],[8.81484375000008,42.60791015625003],[9.313378906250023,42.71318359374999],[9.363183593750051,43.01738281249996],[9.480371093750023,42.80541992187503]]],[[[-1.17832031249992,45.904052734375],[-1.213574218750011,45.81660156250004],[-1.388671874999972,46.05039062500006],[-1.17832031249992,45.904052734375]]],[[[5.789746093749983,49.53828125000001],[5.823437500000011,49.50507812499998],[5.9013671875,49.48974609374997],[5.928906250000011,49.47753906249997],[5.959472656250028,49.45463867187502],[6.01142578125004,49.44545898437502],[6.074121093750023,49.45463867187502],[6.119921875000017,49.485205078125034],[6.181054687500051,49.498925781249966],[6.344335937500006,49.45273437499998],[6.735449218750006,49.16059570312498],[7.450585937500051,49.152197265625034],[8.134863281250006,48.97358398437498],[7.616601562500023,48.15678710937502],[7.615625,47.59272460937504],[7.343164062499994,47.43310546875003],[7.136035156249989,47.489843750000034],[6.968359375000034,47.453222656250034],[6.900390625000028,47.39423828125001],[7.000585937500034,47.339453125000034],[7.000585937500034,47.32250976562506],[6.978515625000057,47.30205078124996],[6.95205078125008,47.26718750000006],[6.820703125000051,47.163183593750006],[6.688085937500034,47.05825195312505],[6.66689453125008,47.026513671874966],[6.624804687500017,47.00434570312498],[6.45625,46.948339843750034],[6.438646763392874,46.774418247767855],[6.129687500000045,46.56699218750006],[6.118111049107182,46.447459542410726],[6.095898437500011,46.279394531250006],[5.970019531250045,46.214697265625034],[5.971484375000074,46.151220703125006],[6.006640625000045,46.14233398437506],[6.086621093750068,46.14702148437502],[6.19941406250004,46.19306640624998],[6.234667968750045,46.332617187500006],[6.321875,46.39370117187502],[6.428906250000011,46.43051757812506],[6.578222656250034,46.437353515625034],[6.758105468750017,46.41577148437497],[6.772070312500006,46.16513671874998],[6.897265625000017,46.05175781249997],[6.953710937500063,46.017138671875045],[7.00390625,45.95883789062506],[7.021093750000034,45.92578124999997],[6.790917968750023,45.740869140624966],[7.146386718750051,45.381738281249994],[7.07832031250004,45.23994140624998],[6.634765625000028,45.06816406249996],[6.99267578125,44.82729492187502],[6.900195312499989,44.33574218749996],[7.318554687500068,44.13798828125002],[7.637207031250057,44.16484375],[7.4931640625,43.767138671875045],[6.570214843750023,43.199072265625034],[6.115917968750011,43.07236328124998],[5.406542968750074,43.228515625],[5.05976562500004,43.44453125000004],[4.712109375000011,43.373291015625],[3.910839843750011,43.563085937500034],[3.258886718750063,43.193212890625006],[3.051757812500057,42.915136718750006],[3.21142578125,42.43115234375],[2.032714843750028,42.353515625],[1.927929687500068,42.42631835937499],[1.859765625000051,42.457080078125045],[1.7060546875,42.50332031250005],[1.709863281250051,42.604443359374955],[1.568164062500045,42.63500976562506],[1.501367187500023,42.64272460937502],[1.428320312499977,42.59589843749998],[0.696875,42.84511718750005],[0.631640625000045,42.689599609374994],[-0.586425781249943,42.798974609374966],[-1.300048828124943,43.10097656250002],[-1.460839843749937,43.05175781250006],[-1.410693359374932,43.240087890625034],[-1.794042968749949,43.407324218750006],[-1.484863281249943,43.56376953124999],[-1.245507812499937,44.55986328124999],[-1.07695312499996,44.68984375],[-1.152880859374989,44.764013671875006],[-1.245214843749977,44.66669921874998],[-1.081005859374983,45.532421874999955],[-0.548486328124966,45.00058593750006],[-0.790771484375028,45.46801757812497],[-1.195996093749983,45.714453125],[-1.03173828125,45.741064453125006],[-1.14628906249996,46.311376953125034],[-1.786523437499937,46.51484375000001],[-2.059375,46.81030273437497],[-2.01889648437492,47.03764648437502],[-2.197070312499989,47.16293945312506],[-2.027587890625028,47.27358398437502],[-1.742529296874949,47.21596679687502],[-1.97539062499996,47.31069335937505],[-2.503125,47.31206054687496],[-2.427685546874983,47.47089843749998],[-2.770312499999989,47.513867187499955],[-2.787207031249949,47.62553710937496],[-4.312109374999949,47.82290039062502],[-4.678808593749949,48.03950195312501],[-4.32944335937492,48.169970703125045],[-4.577148437499943,48.2900390625],[-4.241406249999926,48.30366210937501],[-4.719384765624966,48.363134765625034],[-4.7625,48.45024414062502],[-4.531201171874983,48.61997070312506],[-3.231445312499972,48.84082031250003],[-2.692333984374983,48.53681640624998],[-2.446191406249937,48.64829101562506],[-2.00371093749996,48.58208007812499],[-1.905712890624955,48.69711914062506],[-1.376464843749972,48.65258789062503],[-1.565478515624932,48.805517578125034],[-1.583105468749977,49.20239257812506],[-1.856445312499972,49.68378906249998],[-1.258642578124949,49.68017578125006],[-1.138525390624977,49.38789062500001],[-0.163476562499937,49.296777343749994],[0.41689453125008,49.448388671874994],[0.129394531250028,49.508447265624966],[0.186718749999983,49.703027343749994],[1.245507812500051,49.99824218750001],[1.5927734375,50.25219726562506],[1.672265625000023,50.885009765625],[2.52490234375,51.097119140624955],[2.759375,50.750634765624994],[3.10683593750008,50.779443359374994],[3.27333984375008,50.53154296875002],[3.595410156250068,50.47734374999999],[3.689355468750023,50.30605468750002],[4.174609375000017,50.24648437500005],[4.149316406250023,49.971582031249994],[4.545019531250063,49.96025390624999],[4.818652343750045,50.153173828125034],[4.867578125000051,49.78813476562502],[5.50732421875,49.51088867187502],[5.789746093749983,49.53828125000001]]]]},"properties":{"name":"France","childNum":10,"cp":[2.8719426,46.8222422]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-7.186865234374949,62.139306640624966],[-7.116796874999977,62.046826171874955],[-7.379101562499926,62.07480468749998],[-7.186865234374949,62.139306640624966]]],[[[-6.631054687499955,62.22788085937498],[-6.655810546874932,62.09360351562498],[-6.840527343749983,62.119287109374994],[-6.725195312499949,61.95146484374999],[-7.17216796874996,62.28559570312501],[-6.631054687499955,62.22788085937498]]],[[[-6.406054687499932,62.258642578125034],[-6.544140624999926,62.20561523437499],[-6.554589843749994,62.35566406250001],[-6.406054687499932,62.258642578125034]]]]},"properties":{"name":"Faeroe Is.","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[158.31484375,6.813671875],[158.18339843750002,6.801269531250057],[158.13476562499997,6.944824218749986],[158.29462890625004,6.951074218750023],[158.31484375,6.813671875]]],[[[138.14267578125006,9.50068359375004],[138.06708984375004,9.419042968750006],[138.18583984375007,9.593310546874989],[138.14267578125006,9.50068359375004]]]]},"properties":{"name":"Micronesia","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[13.293554687500006,2.161572265624997],[13.172167968750017,1.78857421875],[13.21630859375,1.2484375],[13.851367187500017,1.41875],[14.180859375000011,1.370214843749991],[14.429882812500011,0.901464843749991],[14.32421875,0.62421875],[13.949609375000023,0.353808593749989],[13.860058593750011,-0.203320312500011],[14.47412109375,-0.573437500000011],[14.383984375000011,-1.890039062500009],[14.162890625000017,-2.217578125],[14.199804687500006,-2.354199218750011],[13.993847656250011,-2.490625],[13.886914062500011,-2.465429687500006],[13.733789062500023,-2.138476562500003],[13.464941406250006,-2.395410156250009],[12.991992187500017,-2.313378906250009],[12.793554687500006,-1.931835937500011],[12.590429687500006,-1.826855468750011],[12.43212890625,-1.928906250000011],[12.446386718750006,-2.329980468750009],[12.064453125,-2.41259765625],[11.60546875,-2.342578125],[11.537792968750011,-2.83671875],[11.760156250000023,-2.983105468750011],[11.715429687500006,-3.176953125000011],[11.934179687500006,-3.318554687500011],[11.8798828125,-3.665917968750009],[11.685742187500011,-3.68203125],[11.504296875000023,-3.5203125],[11.234472656250006,-3.690820312500009],[11.130175781250017,-3.916308593750003],[10.34765625,-3.013085937500009],[9.722070312500023,-2.467578125],[10.06201171875,-2.549902343750006],[9.624609375,-2.367089843750009],[9.298925781250006,-1.903027343750011],[9.483203125000017,-1.894628906250006],[9.265625,-1.825097656250009],[9.036328125000011,-1.308886718750003],[9.31884765625,-1.632031250000011],[9.501074218750006,-1.55517578125],[9.295800781250023,-1.515234375],[9.3466796875,-1.325],[9.203808593750011,-1.382421875],[9.064648437500011,-1.29833984375],[8.703125,-0.591015625000011],[8.946386718750006,-0.688769531250003],[9.296679687500017,-0.351269531250011],[9.354882812500023,0.343603515624991],[9.468164062500023,0.15976562499999],[9.796777343750023,0.044238281249989],[10.00146484375,0.194970703124994],[9.546484375,0.295947265624989],[9.324804687500006,0.552099609374991],[9.495312500000011,0.664843749999989],[9.617968750000017,0.576513671874991],[9.5908203125,1.031982421875],[9.636132812500023,1.046679687499989],[9.676464843750011,1.07470703125],[9.70458984375,1.079980468749994],[9.760546875000017,1.07470703125],[9.788671875,1.025683593749989],[9.803906250000011,0.998730468749997],[9.90673828125,0.960107421874994],[11.335351562500023,0.999707031249997],[11.332324218750017,1.528369140624989],[11.328710937500006,2.167431640624997],[11.348437500000017,2.299707031249994],[11.558984375000023,2.302197265624997],[13.2203125,2.256445312499991],[13.293554687500006,2.161572265624997]]]},"properties":{"name":"Gabon","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-1.065576171874966,50.69023437500002],[-1.25146484375,50.58881835937498],[-1.563427734374955,50.666113281250006],[-1.31279296874996,50.77348632812502],[-1.065576171874966,50.69023437500002]]],[[[-4.196777343749972,53.321435546874966],[-4.04936523437496,53.30576171874998],[-4.373046875,53.13417968750002],[-4.56787109375,53.386474609375],[-4.315087890625023,53.41723632812503],[-4.196777343749972,53.321435546874966]]],[[[-6.218017578125,54.08872070312506],[-6.649804687499937,54.05864257812496],[-7.007714843749937,54.40668945312501],[-7.324511718750017,54.13344726562502],[-7.606542968750006,54.14384765625002],[-8.118261718749977,54.41425781250004],[-7.75439453125,54.59492187499998],[-7.910595703124955,54.698339843750006],[-7.55039062499992,54.767968749999966],[-7.218652343749937,55.09199218749998],[-6.475048828124955,55.24101562499999],[-6.035791015624994,55.14453125000003],[-5.71684570312496,54.817480468750034],[-5.878613281249955,54.64130859375001],[-5.582519531249943,54.66342773437498],[-5.470410156249926,54.500195312499955],[-5.671093749999955,54.54975585937501],[-5.60678710937492,54.272558593750034],[-6.019042968749972,54.05126953124997],[-6.218017578125,54.08872070312506]]],[[[-5.105419921875011,55.448828125000034],[-5.331494140624955,55.481054687500034],[-5.318115234375,55.709179687499955],[-5.105419921875011,55.448828125000034]]],[[[-6.128906249999972,55.93056640625002],[-6.055322265624994,55.69531249999997],[-6.305078124999966,55.60693359375],[-6.286425781249989,55.77250976562499],[-6.491357421874994,55.697314453125045],[-6.462841796874955,55.808251953124994],[-6.128906249999972,55.93056640625002]]],[[[-5.970068359374949,55.814550781250034],[-6.071972656250011,55.893115234375045],[-5.72514648437496,56.118554687499966],[-5.970068359374949,55.814550781250034]]],[[[-5.77788085937496,56.344335937500034],[-6.313427734374983,56.29365234375001],[-6.138867187499955,56.490625],[-6.286328124999983,56.61186523437502],[-6.102734374999955,56.645654296874966],[-5.760839843749949,56.49067382812501],[-5.77788085937496,56.344335937500034]]],[[[-7.249853515624977,57.115332031250006],[-7.410546874999937,57.38110351562506],[-7.26713867187496,57.37177734375001],[-7.249853515624977,57.115332031250006]]],[[[-6.144726562499983,57.50498046874998],[-6.135546874999989,57.31425781250002],[-5.672460937499977,57.252685546875],[-5.94907226562492,57.045166015625],[-6.034375,57.20122070312499],[-6.322705078124926,57.20249023437498],[-6.761132812499994,57.4423828125],[-6.305957031249989,57.67197265624998],[-6.144726562499983,57.50498046874998]]],[[[-7.205566406250028,57.682958984375006],[-7.182617187499972,57.53330078125006],[-7.514746093749949,57.60195312500002],[-7.205566406250028,57.682958984375006]]],[[[-6.198681640624983,58.36328125000003],[-6.554589843749994,58.092871093750006],[-6.425195312499937,58.02128906249999],[-6.983105468749983,57.75],[-7.083447265624926,57.81376953124999],[-6.856835937499937,57.92353515624998],[-7.085253906249932,58.18217773437499],[-6.726464843749937,58.189404296874955],[-6.776464843750006,58.30151367187497],[-6.237451171874966,58.50283203125005],[-6.198681640624983,58.36328125000003]]],[[[-3.109667968749932,58.515478515625034],[-3.212353515624983,58.32124023437501],[-3.99003906249996,57.95903320312502],[-4.035595703124926,57.85200195312498],[-3.857128906249983,57.81855468750001],[-4.134521484375,57.57773437500006],[-3.402783203124955,57.708251953125],[-2.074072265624977,57.70239257812506],[-1.780664062499994,57.474023437499966],[-2.592675781249937,56.56157226562499],[-3.309960937499966,56.36347656250004],[-2.885156249999937,56.397509765625045],[-2.674267578124955,56.25341796875],[-3.362255859374955,56.02763671875002],[-3.789062499999972,56.09521484375],[-3.048730468749937,55.951953125000045],[-2.599316406249955,56.02729492187501],[-2.14707031249992,55.90297851562502],[-1.655371093749949,55.57036132812502],[-1.232421874999943,54.703710937500034],[-0.084375,54.118066406249994],[-0.20556640625,54.021728515625],[0.115332031250006,53.609277343749994],[-0.270019531249972,53.73676757812504],[-0.659912109375,53.72402343750002],[-0.293701171875,53.69233398437504],[0.270996093750028,53.33549804687499],[0.355761718750045,53.15996093750002],[0.0458984375,52.90561523437498],[0.279785156250028,52.80869140625006],[0.55878906250004,52.96694335937505],[1.05556640625008,52.95898437500003],[1.656738281249972,52.753710937500045],[1.74658203125,52.46899414062503],[1.59140625,52.11977539062502],[1.232421875000057,51.97124023437496],[1.188476562500057,51.803369140624966],[0.752246093750017,51.729589843750034],[0.890917968750017,51.571435546874966],[0.42451171875004,51.465625],[1.414941406250023,51.36328125],[1.397558593750034,51.18203125000002],[0.960156250000011,50.92587890624998],[0.299707031249994,50.775976562500006],[-0.785253906249949,50.76542968749999],[-1.416455078124955,50.896875],[-1.334472656249943,50.82080078124997],[-1.516748046874937,50.747460937499966],[-2.031054687499932,50.72539062499999],[-2.035839843749926,50.603076171875045],[-2.999414062499937,50.71660156249999],[-3.40458984374996,50.63242187499998],[-3.679785156250006,50.239941406249955],[-4.194580078124972,50.39331054687503],[-4.727978515624926,50.29047851562504],[-5.11850585937492,50.038330078125],[-5.622119140624932,50.05068359375002],[-4.188183593749926,51.18852539062502],[-3.135986328124972,51.20502929687501],[-2.433056640624926,51.74072265625],[-3.293115234374994,51.390429687500045],[-3.890771484374994,51.591650390625006],[-4.234570312499955,51.56909179687503],[-4.091015624999926,51.65991210937506],[-4.38627929687496,51.74106445312506],[-4.902294921874926,51.626269531250045],[-5.168359374999937,51.74072265625],[-5.183349609374972,51.94965820312501],[-4.217724609374983,52.277441406250006],[-3.980322265624949,52.54174804687503],[-4.101464843750023,52.915478515624955],[-4.683056640624926,52.80615234374997],[-4.268554687499943,53.14453125],[-3.427734374999972,53.34067382812498],[-3.097558593749937,53.260302734375045],[-3.064746093749932,53.426855468750034],[-2.74951171875,53.310205078124994],[-3.064599609374994,53.512841796874966],[-2.84648437499996,54.135302734375045],[-3.165966796874955,54.12792968750006],[-3.56938476562496,54.46757812499996],[-3.464599609374943,54.77309570312505],[-3.036230468749977,54.95307617187501],[-3.550439453124937,54.94741210937502],[-3.957910156249994,54.780957031249955],[-4.818066406249983,54.84614257812501],[-4.911230468749949,54.68945312500006],[-5.032324218749949,54.76137695312505],[-5.172705078124949,54.98588867187496],[-4.676757812499972,55.50131835937498],[-4.871679687499977,55.87392578125005],[-4.58408203124992,55.93867187500001],[-4.844091796874949,56.05117187499999],[-4.80029296875,56.158349609374994],[-5.228222656249983,55.886328125],[-5.084326171874977,56.197460937499955],[-5.41044921874996,55.995361328125],[-5.55644531249996,55.389599609374955],[-5.730664062499926,55.33413085937502],[-5.504492187499949,55.80239257812502],[-5.609570312499955,56.055273437500034],[-5.188378906249937,56.75805664062503],[-5.652441406249977,56.531982421875],[-6.133691406249966,56.706689453124966],[-5.730615234374994,56.853076171875045],[-5.86142578124992,56.902685546875006],[-5.561914062499994,57.23271484375002],[-5.794921874999972,57.37880859375002],[-5.581787109374972,57.546777343749966],[-5.744921874999989,57.668310546875034],[-5.608349609374955,57.88134765625],[-5.157226562499972,57.88134765625],[-5.413183593750006,58.06972656250002],[-5.338281250000023,58.23872070312498],[-5.008300781250028,58.262646484374955],[-5.016748046874966,58.566552734374966],[-4.433251953124937,58.51284179687505],[-3.25913085937492,58.65],[-3.053076171874949,58.63481445312502],[-3.109667968749932,58.515478515625034]]],[[[-3.057421874999932,59.02963867187498],[-2.793017578124989,58.906933593749955],[-3.331640624999949,58.97124023437499],[-3.31035156249996,59.13081054687498],[-3.057421874999932,59.02963867187498]]],[[[-1.30810546875,60.5375],[-1.052441406249955,60.44448242187502],[-1.299462890624994,59.87866210937503],[-1.290917968749937,60.153466796874966],[-1.663769531249983,60.282519531250074],[-1.374609374999949,60.33291015625002],[-1.571777343749972,60.494433593750074],[-1.363964843750011,60.60957031249998],[-1.30810546875,60.5375]]]]},"properties":{"name":"United Kingdom","childNum":14,"cp":[-2.5830348,54.4598409]}},{"geometry":{"type":"Polygon","coordinates":[[[46.30546875000002,41.507714843749994],[46.61894531250002,41.34375],[46.67255859375001,41.28681640625],[46.66240234375002,41.245507812499994],[46.62636718750002,41.15966796875],[46.534375,41.08857421875],[46.43095703125002,41.077050781249994],[46.086523437500006,41.183837890625],[45.28095703125001,41.449560546875],[45.21718750000002,41.423193359375],[45.00136718750002,41.290966796875],[44.97587890625002,41.277490234374994],[44.81132812500002,41.259375],[44.077246093750006,41.182519531249994],[43.43339843750002,41.155517578125],[43.20546875000002,41.199169921875],[43.15283203125,41.23642578125],[43.14101562500002,41.26484375],[43.17128906250002,41.287939453125],[43.149023437500006,41.30712890625],[43.05712890625,41.352832031249996],[42.90673828125,41.466845703124996],[42.82167968750002,41.4923828125],[42.78789062500002,41.563720703125],[42.75410156250001,41.57890625],[42.68242187500002,41.585742187499996],[42.60683593750002,41.57880859375],[42.590429687500006,41.57070312499999],[42.5673828125,41.55927734375],[42.46640625,41.43984375],[41.92578125,41.495654296874996],[41.82353515625002,41.432373046875],[41.779394531250006,41.44052734375],[41.701757812500006,41.471582031249994],[41.57656250000002,41.497314453125],[41.51005859375002,41.517480468749994],[41.701757812500006,41.705419921875],[41.76298828125002,41.970019531249996],[41.48876953125,42.659326171874994],[40.83662109375001,43.0634765625],[40.46210937500001,43.145703125],[39.97832031250002,43.419824218749994],[40.02373046875002,43.48486328125],[40.084570312500006,43.553125],[40.648046875,43.53388671875],[40.941992187500006,43.41806640625],[41.083105468750006,43.374462890625],[41.35820312500002,43.333398437499994],[41.46074218750002,43.276318359375],[41.58056640625,43.21923828125],[42.76064453125002,43.169580078124994],[42.99160156250002,43.09150390625],[43.00019531250001,43.049658203125],[43.08916015625002,42.9890625],[43.55781250000001,42.844482421875],[43.623046875,42.80771484375],[43.78261718750002,42.747021484375],[43.79873046875002,42.727783203125],[43.79541015625,42.702978515625],[43.74990234375002,42.657519531249996],[43.738378906250006,42.616992187499996],[43.759863281250006,42.59384765625],[43.82597656250002,42.571533203125],[43.95742187500002,42.566552734374994],[44.00468750000002,42.595605468749994],[44.10273437500001,42.616357421874994],[44.32949218750002,42.70351562499999],[44.505859375,42.7486328125],[44.77109375,42.616796875],[44.85048828125002,42.746826171875],[44.87099609375002,42.756396484374996],[44.943359375,42.730273437499996],[45.07158203125002,42.694140625],[45.160253906250006,42.675],[45.34375,42.52978515625],[45.56289062500002,42.5357421875],[45.70527343750001,42.498095703124996],[45.7275390625,42.475048828125],[45.63427734375,42.234716796875],[45.63857421875002,42.205078125],[46.21269531250002,41.989892578124994],[46.42988281250001,41.890966796875],[46.18427734375001,41.7021484375],[46.30546875000002,41.507714843749994]]]},"properties":{"name":"Georgia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-0.068603515625,11.115625],[0.009423828125023,11.02099609375],[-0.08632812499999,10.673046875],[0.380859375,10.291845703124991],[0.264550781250023,9.644726562499997],[0.342578125000017,9.604150390624994],[0.2333984375,9.463525390624994],[0.525683593750017,9.398486328124989],[0.48876953125,8.851464843749994],[0.37255859375,8.75927734375],[0.686328125000017,8.354882812499994],[0.5,7.546875],[0.634765625,7.353662109374994],[0.525585937500011,6.850927734374991],[0.736914062500006,6.452587890624997],[1.187207031250011,6.089404296874989],[0.94970703125,5.810253906249997],[0.259667968750023,5.75732421875],[-2.001855468749994,4.762451171875],[-3.114013671875,5.088671874999989],[-2.815673828125,5.153027343749997],[-2.754980468749977,5.432519531249994],[-2.793652343749983,5.60009765625],[-2.998291015625,5.71132812499999],[-3.227148437499977,6.749121093749991],[-2.959082031249977,7.454541015624997],[-2.789746093749983,7.931933593749989],[-2.668847656249994,8.022216796875],[-2.613378906249977,8.046679687499989],[-2.600976562499994,8.082226562499997],[-2.619970703124977,8.12109375],[-2.61171875,8.147558593749991],[-2.538281249999983,8.171630859375],[-2.505859375,8.208740234375],[-2.600390624999989,8.800439453124994],[-2.649218749999989,8.956591796874989],[-2.689892578124983,9.025097656249997],[-2.746923828124977,9.045117187499997],[-2.705761718749983,9.351367187499989],[-2.695849609374989,9.481347656249994],[-2.706201171874994,9.533935546875],[-2.765966796874977,9.658056640624991],[-2.780517578125,9.745849609375],[-2.791162109374994,10.432421874999989],[-2.914892578124977,10.592333984374989],[-2.829931640624977,10.998388671874991],[-1.04248046875,11.010058593749989],[-0.627148437499983,10.927392578124994],[-0.299462890624994,11.166894531249994],[-0.068603515625,11.115625]]]},"properties":{"name":"Ghana","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-11.389404296875,12.404394531249991],[-11.502197265625,12.198632812499994],[-11.30517578125,12.015429687499989],[-10.933203124999977,12.205175781249991],[-10.709228515625,11.898730468749989],[-10.274853515624983,12.212646484375],[-9.754003906249977,12.029931640624994],[-9.358105468749983,12.255419921874989],[-9.395361328124977,12.464648437499989],[-9.043066406249977,12.40234375],[-8.818310546874983,11.922509765624994],[-8.822021484375,11.673242187499994],[-8.398535156249977,11.366552734374991],[-8.666699218749983,11.009472656249997],[-8.33740234375,10.990625],[-8.266650390624989,10.485986328124994],[-8.007275390624983,10.321875],[-7.990625,10.1625],[-8.155175781249994,9.973193359374989],[-8.136962890625,9.49570312499999],[-7.896191406249983,9.415869140624991],[-7.918066406249977,9.188525390624989],[-7.839404296874989,9.151611328125],[-7.7998046875,9.115039062499989],[-7.777978515624994,9.080859374999989],[-7.902099609375,9.01708984375],[-7.938183593749983,8.979785156249989],[-7.950976562499989,8.786816406249997],[-7.719580078124977,8.643017578124997],[-7.696093749999989,8.375585937499991],[-7.823583984374977,8.467675781249994],[-7.953125,8.477734375],[-8.236962890624994,8.455664062499991],[-8.244140625,8.407910156249997],[-8.256103515625,8.253710937499989],[-8.217138671874977,8.219677734374997],[-8.140625,8.181445312499989],[-8.048583984375,8.169726562499989],[-8.009863281249977,8.07851562499999],[-8.126855468749994,7.867724609374989],[-8.115429687499983,7.7607421875],[-8.205957031249994,7.59023437499999],[-8.231884765624983,7.556738281249991],[-8.429980468749989,7.601855468749989],[-8.486425781249977,7.558496093749994],[-8.659765624999977,7.688378906249994],[-8.8896484375,7.2626953125],[-9.11757812499999,7.215917968749991],[-9.463818359374983,7.415869140624991],[-9.369140625,7.703808593749997],[-9.518261718749983,8.34609375],[-9.781982421875,8.537695312499991],[-10.064355468749994,8.429882812499997],[-10.147412109374983,8.519726562499997],[-10.233056640624994,8.488818359374989],[-10.283203125,8.485156249999989],[-10.360058593749983,8.495507812499994],[-10.394433593749994,8.48095703125],[-10.496435546874977,8.362109374999989],[-10.557714843749977,8.315673828125],[-10.686962890624983,8.321679687499994],[-10.712109374999983,8.335253906249989],[-10.677343749999977,8.400585937499997],[-10.500537109374989,8.687548828124989],[-10.615966796875,9.059179687499991],[-10.726855468749989,9.081689453124994],[-10.747021484374983,9.095263671874989],[-10.749951171874983,9.122363281249989],[-10.687646484374994,9.261132812499994],[-10.682714843749977,9.289355468749989],[-10.758593749999989,9.385351562499991],[-11.047460937499977,9.786328125],[-11.180859374999983,9.925341796874989],[-11.205664062499977,9.977734375],[-11.273632812499983,9.996533203124997],[-11.911083984374983,9.993017578124991],[-12.142333984375,9.87539062499999],[-12.427978515625,9.898144531249997],[-12.557861328125,9.704980468749994],[-12.755859375,9.373583984374989],[-12.958789062499989,9.263330078124994],[-13.077294921874994,9.069628906249989],[-13.292675781249983,9.04921875],[-13.436279296875,9.4203125],[-13.691357421874983,9.535791015624994],[-13.689794921874977,9.927783203124989],[-13.820117187499989,9.88720703125],[-14.045019531249977,10.141259765624994],[-14.426904296874994,10.248339843749989],[-14.609570312499983,10.549853515624989],[-14.593505859375,10.766699218749991],[-14.677343749999977,10.68896484375],[-14.775927734374989,10.931640625],[-14.88671875,10.968066406249989],[-14.975,10.803417968749997],[-15.051220703124983,10.834570312499991],[-15.043017578124989,10.940136718749997],[-14.9990234375,10.9921875],[-14.944433593749977,11.072167968749994],[-14.779296875,11.405517578125],[-14.720263671874989,11.48193359375],[-14.682958984374977,11.508496093749997],[-14.604785156249989,11.511621093749994],[-14.452441406249989,11.556201171874989],[-14.327832031249983,11.629785156249994],[-14.265576171874983,11.659912109375],[-14.122314453125,11.65195312499999],[-13.953222656249977,11.664599609374989],[-13.732763671874977,11.736035156249997],[-13.730664062499983,11.959863281249994],[-13.737988281249983,12.009667968749994],[-13.816308593749994,12.054492187499989],[-13.948876953124994,12.178173828124997],[-13.8875,12.246875],[-13.759765625,12.262353515624994],[-13.673535156249983,12.478515625],[-13.732617187499983,12.592822265624989],[-13.729248046875,12.673925781249991],[-13.082910156249994,12.633544921875],[-13.061279296875,12.489990234375],[-12.930712890624989,12.532275390624989],[-12.399072265624994,12.340087890625],[-11.389404296875,12.404394531249991]]]},"properties":{"name":"Guinea","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-16.763330078124994,13.064160156249997],[-16.824804687499977,13.341064453125],[-16.669335937499994,13.475],[-16.41337890624999,13.269726562499997],[-15.427490234375,13.46835937499999],[-16.135449218749983,13.4482421875],[-16.351806640625,13.34335937499999],[-16.56230468749999,13.587304687499994],[-15.509667968749994,13.586230468750003],[-15.426855468749977,13.727001953124997],[-15.108349609374983,13.81210937499999],[-14.405468749999983,13.503710937500003],[-13.977392578124977,13.54345703125],[-13.826708984374989,13.4078125],[-14.246777343749983,13.23583984375],[-15.151123046875,13.556494140624991],[-15.286230468749977,13.39599609375],[-15.814404296874983,13.325146484374997],[-15.834277343749989,13.156445312499997],[-16.648779296874977,13.154150390624991],[-16.763330078124994,13.064160156249997]]]},"properties":{"name":"Gambia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-15.895898437499966,11.082470703124969],[-15.963964843749977,11.05898437499998],[-15.937695312499955,11.192773437499966],[-15.895898437499966,11.082470703124969]]],[[[-16.11450195312503,11.059423828124977],[-16.236425781249977,11.113427734374966],[-16.06733398437501,11.197216796874983],[-16.11450195312503,11.059423828124977]]],[[[-15.901806640624926,11.4658203125],[-16.02319335937497,11.477148437499991],[-15.964550781249926,11.59829101562498],[-15.901806640624926,11.4658203125]]],[[[-15.986425781249949,11.882031249999969],[-16.038330078124943,11.759716796875011],[-16.15244140624992,11.876806640624963],[-15.986425781249949,11.882031249999969]]],[[[-13.759765625,12.262353515624994],[-13.8875,12.246875],[-13.948876953124966,12.178173828124997],[-13.737988281250011,12.009667968750037],[-13.730664062499926,11.959863281250009],[-13.73276367187492,11.736035156249983],[-13.953222656249977,11.664599609374989],[-14.265576171874926,11.659912109375014],[-14.327832031250011,11.629785156250009],[-14.452441406249989,11.556201171875017],[-14.604785156249932,11.511621093749994],[-14.682958984374949,11.508496093749983],[-14.720263671875017,11.481933593749986],[-14.779296874999972,11.405517578125057],[-14.944433593749949,11.072167968749994],[-14.999023437499972,10.992187500000043],[-15.04301757812496,10.940136718750011],[-15.09375,11.011035156249974],[-15.054589843749994,11.141943359375006],[-15.222119140624926,11.030908203125037],[-15.216699218749994,11.15625],[-15.39311523437496,11.217236328124983],[-15.354687499999955,11.396337890624963],[-15.479492187499972,11.410302734374966],[-15.072656249999937,11.597802734374966],[-15.230371093750023,11.686767578124972],[-15.412988281249994,11.615234374999972],[-15.501904296875011,11.723779296874966],[-15.467187499999937,11.842822265624974],[-15.078271484374937,11.968994140625014],[-15.941748046875006,11.786621093749986],[-15.92021484374996,11.93779296874996],[-16.138427734375,11.917285156250045],[-16.32807617187501,12.051611328124963],[-16.244580078124955,12.237109375],[-16.43681640624996,12.204150390625045],[-16.711816406249937,12.354833984375006],[-16.656933593749955,12.364355468749991],[-16.52133789062495,12.348632812499986],[-16.41630859374996,12.367675781250057],[-16.24150390624996,12.443310546875011],[-16.144189453124937,12.457421875000037],[-15.839550781249955,12.437890624999966],[-15.57480468749992,12.490380859375009],[-15.19609375,12.679931640624986],[-14.3492187499999,12.67641601562498],[-14.064843749999966,12.675292968750014],[-13.729248046875,12.673925781250006],[-13.732617187499983,12.592822265625003],[-13.673535156249926,12.478515624999986],[-13.759765625,12.262353515624994]]]]},"properties":{"name":"Guinea-Bissau","childNum":5}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[11.332324218750017,1.528369140624989],[11.335351562500023,0.999707031250011],[9.906738281250028,0.960107421875037],[9.80390625000004,0.998730468749997],[9.788671875000034,1.025683593749974],[9.760546874999989,1.074707031250014],[9.704589843750057,1.079980468750023],[9.676464843750011,1.074707031250014],[9.636132812500051,1.046679687499989],[9.590820312500057,1.031982421875014],[9.599414062500045,1.054443359374972],[9.509863281250006,1.114794921875017],[9.385937500000068,1.13925781250002],[9.807031250000051,1.927490234375028],[9.77968750000008,2.068212890625006],[9.800781250000028,2.304443359375],[9.826171875000057,2.297802734374969],[9.8369140625,2.242382812500054],[9.870117187500028,2.21328125],[9.979882812499994,2.167773437500045],[10.790917968750023,2.167578125],[11.096582031250051,2.167480468749986],[11.328710937500006,2.167431640624969],[11.332324218750017,1.528369140624989]]],[[[8.735742187500023,3.758300781249972],[8.910058593750023,3.758203125000051],[8.946093750000074,3.627539062499977],[8.704003906250051,3.223632812500028],[8.474902343749989,3.264648437500043],[8.464648437500045,3.450585937499994],[8.735742187500023,3.758300781249972]]]]},"properties":{"name":"Eq. Guinea","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[23.852246093749983,35.53544921874999],[24.166015625000057,35.59521484375],[24.108984374999977,35.49580078124998],[24.35400390625,35.359472656250034],[25.73017578125004,35.34858398437501],[25.791308593750074,35.122851562500045],[26.32021484375008,35.315136718749955],[26.165625,35.018603515625045],[24.79980468750003,34.93447265625002],[24.70888671875008,35.08906250000001],[24.463671875000045,35.160351562499955],[23.59277343749997,35.257226562499966],[23.56982421875,35.534765625000034],[23.67265624999999,35.51391601562506],[23.736914062500034,35.65551757812503],[23.852246093749983,35.53544921874999]]],[[[27.17607421874999,35.46528320312498],[27.070703125000023,35.59775390624998],[27.22314453125,35.820458984374966],[27.17607421874999,35.46528320312498]]],[[[23.053808593750034,36.18979492187498],[22.91083984375004,36.220996093750045],[22.950488281250045,36.38393554687502],[23.053808593750034,36.18979492187498]]],[[[27.84277343750003,35.929296875000034],[27.71552734375004,35.95732421874996],[27.71630859375003,36.17158203125001],[28.23183593750005,36.43364257812502],[28.087792968750023,36.06533203125002],[27.84277343750003,35.929296875000034]]],[[[25.48242187500003,36.39262695312502],[25.37050781250005,36.35893554687499],[25.408984375000074,36.473730468750006],[25.48242187500003,36.39262695312502]]],[[[26.46064453125001,36.58540039062501],[26.270019531250057,36.54692382812499],[26.370019531250023,36.63857421875002],[26.46064453125001,36.58540039062501]]],[[[26.94960937500005,36.72709960937502],[27.214941406250006,36.89863281249998],[27.352148437499977,36.86889648437506],[26.94960937500005,36.72709960937502]]],[[[25.859375,36.79042968750005],[25.74316406250003,36.78974609374998],[26.06445312500003,36.90273437500002],[25.859375,36.79042968750005]]],[[[27.01972656250004,36.95903320312502],[26.91992187500003,36.94521484375005],[26.88867187499997,37.087255859375034],[27.01972656250004,36.95903320312502]]],[[[25.278906250000034,37.06840820312502],[25.105468750000057,37.034960937500045],[25.235058593750068,37.148535156250006],[25.278906250000034,37.06840820312502]]],[[[25.54589843749997,36.96757812499999],[25.45673828125001,36.9296875],[25.361914062500063,37.07041015624998],[25.52529296875005,37.19638671875006],[25.54589843749997,36.96757812499999]]],[[[24.523535156250063,37.125097656250006],[24.42480468750003,37.131982421874994],[24.48378906250005,37.21020507812503],[24.523535156250063,37.125097656250006]]],[[[25.402734375000023,37.419140624999955],[25.312695312500068,37.48930664062496],[25.462988281250063,37.47109375],[25.402734375000023,37.419140624999955]]],[[[26.029296875000057,37.529394531250034],[26.086328125000023,37.63491210937505],[26.351367187500017,37.67431640625],[26.029296875000057,37.529394531250034]]],[[[25.255859375000057,37.59960937500006],[25.156347656250034,37.54506835937505],[24.99648437500005,37.676904296874994],[25.255859375000057,37.59960937500006]]],[[[24.35595703125003,37.57685546875004],[24.28896484375005,37.52827148437498],[24.37910156250004,37.682714843750006],[24.35595703125003,37.57685546875004]]],[[[26.82441406250004,37.81142578125005],[27.05507812500005,37.70927734375002],[26.84492187500004,37.64472656250001],[26.58105468750003,37.723730468750034],[26.82441406250004,37.81142578125005]]],[[[20.888476562500074,37.805371093749955],[20.993945312500074,37.70800781250003],[20.81855468750004,37.66474609375001],[20.61953125000008,37.855029296875045],[20.691503906250006,37.929541015625034],[20.888476562500074,37.805371093749955]]],[[[24.991699218750057,37.75961914062506],[24.962207031250074,37.69238281250003],[24.7001953125,37.961669921875],[24.956347656250045,37.90478515625006],[24.991699218750057,37.75961914062506]]],[[[20.61230468750003,38.38334960937502],[20.761328125,38.07055664062497],[20.523535156250063,38.106640624999955],[20.4521484375,38.23417968750002],[20.35253906250003,38.179882812499955],[20.563183593750068,38.474951171875034],[20.61230468750003,38.38334960937502]]],[[[26.094042968750017,38.21806640625002],[25.891894531250045,38.243310546874994],[25.991406250000068,38.353515625],[25.846093750000023,38.57402343749996],[26.16035156250001,38.54072265625001],[26.094042968750017,38.21806640625002]]],[[[20.68671875000001,38.60869140625002],[20.5546875,38.58256835937502],[20.69414062499999,38.84423828125003],[20.68671875000001,38.60869140625002]]],[[[24.67470703125005,38.80922851562502],[24.54101562499997,38.788671875],[24.485644531250074,38.980273437500045],[24.67470703125005,38.80922851562502]]],[[[23.41542968750008,38.958642578124994],[23.525,38.8134765625],[24.127539062500034,38.648486328125045],[24.27578125000005,38.22001953124996],[24.58837890625003,38.12397460937504],[24.53652343750005,37.97973632812506],[24.212011718750006,38.11752929687506],[24.040136718750006,38.389990234375034],[23.65078125000008,38.44306640625001],[23.25214843750004,38.80122070312498],[22.870312500000068,38.870507812499966],[23.258203125000023,39.03134765625006],[23.41542968750008,38.958642578124994]]],[[[26.41015625000003,39.329443359375034],[26.59560546875005,39.04882812499997],[26.488671875000023,39.074804687500034],[26.46875,38.97280273437502],[26.10791015625,39.08105468749997],[26.273144531249983,39.19755859374999],[26.072363281250034,39.095605468749994],[25.84414062500008,39.20004882812506],[26.16542968750008,39.37353515625006],[26.41015625000003,39.329443359375034]]],[[[20.077929687500045,39.432714843750034],[19.883984375000068,39.461523437500034],[19.646484375,39.76708984375003],[19.926074218750017,39.773730468750045],[19.8466796875,39.66811523437502],[20.077929687500045,39.432714843750034]]],[[[25.43769531250004,39.98330078125002],[25.357031250000063,39.80810546875003],[25.24941406250005,39.89414062500006],[25.06220703125004,39.852392578125006],[25.05800781250005,39.999658203124966],[25.43769531250004,39.98330078125002]]],[[[24.774218750000074,40.615185546874955],[24.515527343750023,40.64702148437496],[24.623339843750045,40.79291992187501],[24.774218750000074,40.615185546874955]]],[[[26.03896484375008,40.726757812499955],[25.10449218750003,40.994726562500006],[24.792968750000057,40.857519531250034],[24.47705078125,40.94775390625003],[24.082324218750074,40.72407226562504],[23.762792968750063,40.74780273437497],[23.866796875000034,40.41855468750006],[24.21279296875008,40.32778320312502],[24.343359375000034,40.14770507812503],[23.913183593750063,40.35878906250005],[23.72792968750008,40.329736328124994],[23.96748046875001,40.11455078125002],[23.947070312500045,39.96557617187506],[23.66455078125003,40.22382812499998],[23.42626953125,40.26396484374999],[23.62734375,39.92407226562503],[22.896484375000057,40.39990234374997],[22.92226562500008,40.59086914062499],[22.629492187500034,40.49555664062501],[22.59218750000005,40.03691406250002],[23.327734374999977,39.174902343750006],[23.15468750000008,39.10146484375005],[23.16171875,39.25776367187501],[22.92138671874997,39.30634765625004],[22.886035156250074,39.16997070312496],[23.066699218750017,39.03793945312498],[22.569140625000074,38.86748046874999],[23.25292968750003,38.66123046875006],[23.68398437500008,38.35244140625002],[23.96699218750001,38.275],[24.024511718750006,38.139794921874966],[24.01972656250001,37.67773437499997],[23.50175781249999,38.03486328124998],[23.03632812500004,37.87836914062501],[23.48925781250003,37.440185546875],[23.16152343750005,37.333837890625006],[22.725390625000017,37.542138671874966],[23.16015625000003,36.448095703125034],[22.717187500000023,36.79394531250006],[22.42773437500003,36.47578124999998],[22.08046875000008,37.028955078124966],[21.95556640625003,36.990087890625034],[21.892382812500045,36.73730468749997],[21.58291015625005,37.080957031249994],[21.678906250000068,37.38720703125003],[21.124707031250068,37.89160156250003],[21.40371093750005,38.19667968750002],[21.658398437500068,38.17509765624996],[21.82470703125003,38.328125],[22.846386718750068,37.96757812499996],[23.18349609375008,38.133691406249966],[22.421679687500045,38.43852539062499],[22.319921875,38.35683593750005],[21.96533203124997,38.412451171875006],[21.47255859375005,38.321386718750006],[21.3310546875,38.48730468749997],[21.303320312500034,38.373925781249966],[21.113183593750023,38.38466796875002],[20.768554687500057,38.874414062499966],[21.111621093750045,38.89628906249999],[21.11835937500001,39.029980468749955],[20.71337890625,39.03515625000003],[20.300781250000057,39.32709960937501],[20.19140625,39.545800781249966],[20.099414062500074,39.641259765624966],[20.001269531250074,39.70942382812501],[20.022558593750063,39.710693359375],[20.059765624999983,39.69912109375002],[20.13105468750004,39.66162109375003],[20.206835937500017,39.65351562499998],[20.382421875,39.802636718749994],[20.381640625000017,39.84179687500006],[20.311328125000074,39.95078125000006],[20.311132812500034,39.97944335937504],[20.338476562500006,39.991064453125006],[20.38369140625008,40.0171875],[20.408007812500074,40.049462890624994],[20.4560546875,40.065576171874994],[20.657421875000068,40.11738281249998],[20.881640625000017,40.467919921874994],[21.030859375000034,40.62246093750002],[20.95576171875001,40.775292968749994],[20.96425781250005,40.84990234374999],[21.575781250000034,40.86894531249996],[21.627539062500006,40.896337890625034],[21.77949218750004,40.95043945312506],[21.99335937500001,41.13095703125006],[22.18447265625005,41.15864257812501],[22.49355468750005,41.118505859375006],[22.603613281249977,41.14018554687499],[22.724804687500068,41.17851562499999],[22.78388671875004,41.33198242187498],[23.155957031250068,41.32207031249999],[23.239843750000034,41.38496093750001],[23.372070312500057,41.3896484375],[23.433398437500017,41.39873046874999],[23.53583984375001,41.38603515624999],[23.63515625000008,41.386767578125045],[24.011328124999977,41.460058593750034],[24.03291015625004,41.469091796875034],[24.05605468750005,41.527246093749966],[24.38671875,41.523535156250006],[24.487890625,41.55522460937499],[24.518261718750068,41.55253906249996],[24.773730468750045,41.356103515624994],[24.99355468750008,41.36499023437503],[25.133398437500063,41.31577148437506],[25.251171875000068,41.243554687499994],[25.923339843750057,41.311914062499966],[26.066406250000057,41.35068359375006],[26.135351562499977,41.3857421875],[26.155175781250023,41.43486328124999],[26.143554687500057,41.52153320312496],[26.085546875000063,41.704150390625045],[26.10742187499997,41.72568359374998],[26.20058593750005,41.74379882812502],[26.320898437500034,41.716552734375],[26.581347656250074,41.60126953125004],[26.62490234375008,41.401757812499994],[26.330664062499977,41.23876953125],[26.331054687500057,40.954492187499994],[26.03896484375008,40.726757812499955]]]]},"properties":{"name":"Greece","childNum":29}},{"geometry":{"type":"Polygon","coordinates":[[[-61.71552734375,12.012646484374997],[-61.714990234374994,12.18515625],[-61.60703125,12.223291015624994],[-61.71552734375,12.012646484374997]]]},"properties":{"name":"Grenada","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-46.266699218750006,60.781396484374994],[-46.381542968749955,60.66030273437502],[-46.7880859375,60.758398437500034],[-46.205224609374994,60.943505859374994],[-46.266699218750006,60.781396484374994]]],[[[-37.03125,65.53198242187497],[-37.23842773437494,65.60986328125003],[-37.047509765624966,65.722265625],[-37.03125,65.53198242187497]]],[[[-51.01367187499994,69.55249023437497],[-51.202050781249966,69.525],[-51.33886718749994,69.73203125000006],[-51.094580078125006,69.92416992187503],[-50.67900390624999,69.84853515625],[-51.01367187499994,69.55249023437497]]],[[[-52.73115234375001,69.94472656250005],[-52.0453125,69.8072265625],[-51.90019531249999,69.60478515625007],[-53.57841796874996,69.25664062500002],[-54.18271484374995,69.40351562500001],[-53.65830078124998,69.46513671875005],[-53.825,69.54033203124999],[-54.91914062499998,69.71362304687503],[-54.78789062499996,69.94985351562502],[-54.322607421875034,69.94189453125],[-54.83076171875001,70.13295898437502],[-54.37163085937499,70.31728515625],[-53.296728515625034,70.20537109375002],[-52.73115234375001,69.94472656250005]]],[[[-51.67514648437498,70.855224609375],[-52.11938476562497,70.87065429687502],[-52.10673828124999,70.96801757812497],[-51.67514648437498,70.855224609375]]],[[[-25.43232421875001,70.92133789062495],[-25.402246093749994,70.65268554687503],[-26.217871093749977,70.45405273437498],[-26.604687499999926,70.55336914062497],[-28.03525390624995,70.48681640625],[-27.61723632812496,70.91376953125001],[-26.621777343749955,70.87563476562497],[-25.81889648437499,71.04365234375001],[-25.43232421875001,70.92133789062495]]],[[[-53.53520507812493,71.04082031250005],[-53.9578125,71.12773437499999],[-53.58447265625003,71.29707031249995],[-53.53520507812493,71.04082031250005]]],[[[-55.01689453124999,72.79111328125003],[-55.56660156249998,72.56435546875002],[-56.214794921874955,72.71918945312495],[-55.01689453124999,72.79111328125003]]],[[[-18.000537109374932,75.40732421875003],[-17.391992187499937,75.03691406250007],[-18.670800781249966,75.00166015624998],[-18.856054687499977,75.31914062500002],[-18.000537109374932,75.40732421875003]]],[[[-18.58261718749995,76.042333984375],[-19.085351562499966,76.43037109375001],[-18.882470703124937,76.70380859375001],[-18.58261718749995,76.042333984375]]],[[[-71.667333984375,77.32529296874998],[-72.48955078124999,77.43164062499997],[-71.43344726562495,77.394384765625],[-71.667333984375,77.32529296874998]]],[[[-17.6125,79.82587890624995],[-18.662011718749966,79.72001953125005],[-19.13828125,79.85234375000002],[-17.98291015625,80.05517578125003],[-17.471386718749955,80.02871093749997],[-17.6125,79.82587890624995]]],[[[-44.86455078124999,82.08364257812502],[-46.75190429687501,82.34819335937502],[-47.27226562499996,82.65693359375001],[-46.399169921875,82.692138671875],[-44.91748046875003,82.48051757812505],[-44.86455078124999,82.08364257812502]]],[[[-29.952880859375,83.56484374999997],[-25.795068359374994,83.26098632812497],[-31.99267578125,83.0853515625],[-32.03271484374997,82.98344726562502],[-25.12338867187495,83.15961914062501],[-24.47031249999995,82.87739257812498],[-21.582519531249943,82.6341796875],[-23.118066406249966,82.32470703125003],[-29.57939453124996,82.16118164062502],[-29.887402343749983,82.05483398437502],[-29.543847656249994,81.93994140624997],[-27.839501953124966,82.04887695312505],[-25.148828124999966,82.001123046875],[-24.293066406249977,81.70097656250005],[-23.103710937499983,82.01181640625003],[-21.337988281249977,82.068701171875],[-21.230517578125017,81.60136718749999],[-23.11772460937499,80.77817382812498],[-19.62993164062499,81.63989257812503],[-17.456054687499943,81.397705078125],[-16.12070312499995,81.776611328125],[-14.241992187500017,81.81386718750005],[-12.434423828125006,81.68251953125002],[-11.430664062499972,81.45683593750005],[-13.126220703124972,81.08779296875],[-14.452343749999955,80.99311523437498],[-14.503564453124994,80.76328125000006],[-16.76059570312492,80.573388671875],[-15.937255859374972,80.42763671874997],[-16.48876953124997,80.25195312499997],[-18.070947265624994,80.17207031249995],[-19.429199218749943,80.25771484375],[-20.150146484375,80.01123046874997],[-18.99199218749996,79.17836914062502],[-21.133740234374926,78.65864257812501],[-21.729589843749977,77.70854492187499],[-20.862597656249932,77.91186523437503],[-19.490429687499983,77.71889648437497],[-19.46752929687503,77.56582031250005],[-20.162060546874926,77.68984375],[-20.680810546875023,77.61899414062503],[-20.23193359374997,77.36840820312497],[-19.30029296874997,77.22236328124995],[-18.442626953124943,77.259375],[-18.51030273437496,76.77817382812498],[-20.48671875,76.92080078125],[-21.614697265624926,76.68789062499997],[-22.18525390625001,76.79409179687502],[-22.609326171874983,76.70429687500004],[-21.877343749999966,76.57348632812503],[-21.488232421874926,76.271875],[-20.10361328124992,76.21909179687503],[-19.508984374999926,75.75751953124995],[-19.52636718750003,75.18022460937505],[-20.484960937500006,75.31425781249999],[-21.649316406249966,75.02343749999997],[-22.232861328124926,75.11972656249998],[-21.69511718749999,74.96445312500003],[-20.985791015624983,75.07436523437497],[-20.86157226562497,74.63593750000001],[-20.41708984374995,74.9751953125],[-19.98491210937499,74.9751953125],[-19.287011718750023,74.54638671875006],[-19.36914062499997,74.28403320312498],[-20.256445312499977,74.2828125],[-20.653125,74.13735351562502],[-21.954931640624977,74.24428710937497],[-21.942919921874932,74.56572265624999],[-22.32158203124999,74.30253906250002],[-22.134814453124932,73.99047851562503],[-20.36728515624992,73.8482421875],[-20.509667968749966,73.49287109375001],[-22.346875,73.26923828125001],[-23.23320312499999,73.39770507812497],[-24.157714843749943,73.76445312499999],[-24.67724609375,73.602197265625],[-25.521289062500017,73.85161132812499],[-24.79125976562497,73.51127929687502],[-26.062304687500017,73.25302734375],[-27.270410156250023,73.43627929687503],[-26.541845703125006,73.24897460937495],[-27.561621093750006,73.13847656250002],[-27.348046875000023,73.06782226562501],[-25.057031250000023,73.396484375],[-24.132666015625006,73.409375],[-22.036328124999955,72.91845703125006],[-22.29321289062497,72.11953125],[-24.06904296875001,72.49873046874998],[-24.629980468749977,73.03764648437499],[-26.657617187499966,72.71582031249997],[-24.81333007812492,72.90151367187497],[-24.65,72.58251953125],[-25.117871093749983,72.34697265625005],[-24.66684570312492,72.437353515625],[-21.959667968749955,71.74467773437502],[-22.479638671874937,71.38344726562497],[-22.417578125,71.24868164062505],[-22.29902343750001,71.43232421874998],[-21.75224609374999,71.47832031250002],[-21.522656249999926,70.52622070312503],[-22.38413085937492,70.46240234375],[-22.437011718749943,70.860009765625],[-22.690673828124943,70.43730468750002],[-23.327832031249983,70.45097656250007],[-23.97138671875001,70.64946289062499],[-24.562207031249926,71.22353515624997],[-25.885156249999966,71.571923828125],[-27.08720703124999,71.6265625],[-27.107031250000034,71.53266601562498],[-25.842724609374955,71.48017578124995],[-25.74223632812499,71.18359375],[-26.717919921874994,70.95048828125005],[-28.39843749999997,70.99291992187497],[-27.99218749999997,70.89521484374998],[-28.06987304687499,70.69902343750005],[-29.07207031249999,70.444970703125],[-26.621777343749955,70.46337890625],[-26.576806640625023,70.35708007812502],[-27.560839843749932,70.12446289062498],[-27.384179687500023,69.9916015625],[-27.027734374999966,70.20122070312499],[-25.529882812499977,70.35317382812502],[-23.66733398437495,70.139306640625],[-22.28447265624996,70.12583007812498],[-22.287060546874955,70.03339843749998],[-23.03364257812501,69.90083007812498],[-23.04956054687497,69.79272460937497],[-23.86572265624997,69.73671875000002],[-23.739404296874994,69.58862304687497],[-24.296679687500017,69.58554687500006],[-24.295556640624966,69.439306640625],[-25.188574218750006,69.26054687500002],[-25.092431640624937,69.16518554687502],[-25.697998046874943,68.889892578125],[-26.48291015624997,68.67592773437502],[-29.24951171874997,68.29877929687501],[-29.86850585937495,68.31157226562505],[-30.318115234375,68.19331054687501],[-30.72001953124999,68.25117187499998],[-30.610742187499994,68.11791992187503],[-30.97856445312499,68.06132812500005],[-32.32744140624999,68.43730468749999],[-32.16455078125,67.99111328125002],[-33.15698242187497,67.62670898437506],[-34.1982421875,66.65507812499999],[-35.18857421874995,66.25029296875002],[-35.86723632812502,66.44140624999997],[-35.630078124999926,66.13994140625002],[-36.37919921874996,65.830810546875],[-36.52724609375002,66.00771484375],[-36.665185546874966,65.79008789062507],[-37.06279296874996,65.87143554687503],[-37.410058593749994,65.65634765625],[-37.954785156249955,65.63359375000007],[-37.278710937499994,66.30439453124995],[-38.156640624999966,66.38559570312498],[-37.75234375000002,66.26152343750002],[-38.13994140625002,65.90351562499998],[-38.52036132812498,66.00966796875002],[-38.20336914062497,65.71171874999999],[-40.17353515624998,65.55615234375],[-39.57792968749996,65.34077148437501],[-39.937255859375,65.14160156250003],[-40.253125,65.04887695312505],[-41.08442382812501,65.10083007812497],[-40.966015624999955,64.86884765624995],[-40.655468749999926,64.91533203125002],[-40.18222656249998,64.47993164062495],[-40.78173828125,64.22177734375003],[-41.581005859374926,64.29833984375],[-41.03056640624996,64.12104492187504],[-40.61777343749998,64.13173828125],[-40.550390625000034,63.72524414062505],[-40.77519531249999,63.53364257812501],[-41.04873046875002,63.51381835937505],[-41.387890624999926,63.06186523437498],[-41.84448242187497,63.07026367187501],[-42.174511718749955,63.20878906249999],[-41.63447265624998,62.972460937500074],[-41.90898437499996,62.73710937499999],[-42.94165039062503,62.72021484375003],[-42.15297851562502,62.568457031250006],[-42.32148437499998,62.15273437500005],[-42.110205078125006,61.857226562500074],[-42.58530273437498,61.71748046875001],[-42.34736328125001,61.61743164062497],[-42.717041015625,60.767480468749994],[-43.04409179687502,60.523681640625],[-43.92270507812495,60.59536132812502],[-43.21298828124998,60.390673828125074],[-43.122900390625006,60.06123046875001],[-43.32011718749993,59.928125],[-43.95502929687498,60.025488281250006],[-43.65791015625001,59.85864257812503],[-43.90654296874996,59.815478515625045],[-44.11699218750002,59.83193359375002],[-44.06547851562499,59.92480468750003],[-44.412939453125006,59.922607421875],[-44.22436523437494,60.273535156250006],[-44.61328124999997,60.01665039062499],[-45.37924804687495,60.20292968750002],[-45.367773437500006,60.37294921875002],[-44.97470703124995,60.457226562499955],[-44.756738281249966,60.66459960937502],[-45.38051757812494,60.444921875],[-46.04663085937503,60.61572265625],[-46.141943359375006,60.776513671874994],[-45.87021484374998,61.21831054687502],[-46.87446289062501,60.81640625000003],[-48.180810546874966,60.76923828125001],[-47.77031249999999,60.99775390625001],[-48.386425781249926,61.004736328125034],[-48.42817382812501,61.18740234375002],[-48.92207031249998,61.27744140624998],[-49.28906249999997,61.58994140625006],[-49.380273437499994,61.89018554687502],[-48.82871093749998,62.0796875],[-49.62377929687494,61.99858398437499],[-49.553466796875,62.23271484374999],[-50.319238281249966,62.473193359375045],[-50.298730468749966,62.72197265625002],[-49.793115234374994,63.04462890625004],[-50.39008789062501,62.82202148437497],[-51.46884765624995,63.64228515625001],[-51.547509765624994,64.00610351562497],[-50.260693359374955,64.21425781250002],[-50.48662109374996,64.20888671875],[-50.43706054687499,64.31284179687503],[-51.58491210937498,64.10317382812502],[-51.70786132812498,64.205078125],[-51.403759765624926,64.46318359375002],[-50.49208984375002,64.69316406250005],[-50.00898437500001,64.44726562499997],[-50.12163085937493,64.703759765625],[-50.51699218750002,64.76650390625],[-50.96064453124998,65.20112304687498],[-50.721582031249966,64.79760742187503],[-51.22060546875002,64.62846679687502],[-51.25537109375,64.75810546875005],[-51.92260742187503,64.21875],[-52.259033203125,65.154931640625],[-52.537695312500034,65.32880859374998],[-51.61914062500003,65.71318359375002],[-51.091894531250006,65.77578125],[-51.7234375,65.723486328125],[-52.55126953125003,65.46137695312498],[-52.760937499999926,65.59082031249997],[-53.198974609375,65.59404296875002],[-53.106347656249966,65.97714843749998],[-53.39204101562498,66.04833984375],[-51.225,66.88154296875001],[-53.035791015624966,66.20141601562503],[-53.538769531249955,66.13935546874998],[-53.41875,66.64853515624998],[-53.038281249999955,66.82680664062497],[-52.38686523437502,66.88115234375005],[-53.44360351562503,66.924658203125],[-53.88442382812502,67.13554687499999],[-53.79858398437494,67.41816406250001],[-52.666455078124955,67.74970703124995],[-50.613476562499955,67.5279296875],[-51.171044921874966,67.693603515625],[-50.96884765624998,67.80664062500003],[-51.765234375000034,67.73784179687505],[-52.34482421874998,67.83691406249997],[-53.735205078125006,67.54902343750004],[-53.151562499999926,68.20776367187503],[-51.779980468749926,68.05673828124998],[-51.456494140624926,68.116064453125],[-51.21015625000001,68.419921875],[-52.19853515624993,68.22080078125],[-53.38315429687495,68.29736328124997],[-53.03945312500002,68.61088867187499],[-52.60458984374998,68.70874023437503],[-51.62314453124995,68.53481445312505],[-50.945703124999966,68.68266601562505],[-50.807714843750006,68.81699218749998],[-51.24941406250002,68.73994140625001],[-51.084863281249994,69.12827148437498],[-50.29736328124994,69.17060546874998],[-51.07695312499996,69.20947265625],[-50.291699218749955,70.01445312500005],[-52.254638671875,70.05893554687503],[-53.02304687499995,70.30190429687497],[-54.01445312499996,70.42167968750005],[-54.53076171875,70.69926757812502],[-54.16582031249999,70.82011718750005],[-52.801953124999955,70.7505859375],[-50.87236328124993,70.36489257812502],[-50.66328124999998,70.417578125],[-51.32285156249998,70.58876953124997],[-51.25659179687497,70.85268554687502],[-51.77431640625002,71.01044921875001],[-51.018945312499966,71.001318359375],[-51.37666015625001,71.11904296875],[-53.007568359375,71.17998046874999],[-52.89184570312497,71.457666015625],[-51.76992187500002,71.67172851562498],[-53.44008789062502,71.57900390625002],[-53.14453125000003,71.80742187500002],[-53.65214843749996,72.36264648437506],[-53.92773437499997,72.31879882812501],[-53.47758789062502,71.84995117187506],[-54.01992187500002,71.657861328125],[-53.96298828124995,71.45898437499997],[-54.6890625,71.36723632812505],[-55.59404296874999,71.55351562500005],[-55.315576171874994,72.11069335937498],[-54.84013671874996,72.35610351562497],[-55.581445312499994,72.178857421875],[-55.63583984374998,72.300439453125],[-55.29570312499996,72.35439453124997],[-55.60170898437494,72.453466796875],[-54.924951171874994,72.57197265624998],[-54.737939453124994,72.87250976562501],[-55.07309570312498,73.01513671875003],[-55.28891601562498,72.93320312500003],[-55.66855468749998,73.00791015624998],[-55.288281249999955,73.32709960937498],[-56.10405273437496,73.55815429687499],[-55.83828125,73.75971679687501],[-56.22539062499999,74.12910156249995],[-57.23056640624995,74.12529296875007],[-56.70634765625002,74.21918945312501],[-56.717675781249994,74.42924804687499],[-56.25546874999998,74.52680664062498],[-58.56552734374998,75.35273437500001],[-58.249658203124994,75.50668945312503],[-58.51621093749995,75.68906250000006],[-61.18823242187494,76.157861328125],[-63.29130859374996,76.35205078125003],[-63.84306640624999,76.21713867187498],[-64.307275390625,76.31650390624998],[-65.36992187499993,76.13056640625004],[-65.87573242187494,76.23833007812505],[-66.46577148437498,76.13916015625],[-66.99257812500002,76.21293945312502],[-66.67480468750003,75.977392578125],[-68.14873046875002,76.06704101562497],[-69.48408203125001,76.39916992187503],[-68.1142578125,76.65063476562503],[-69.67382812499994,76.73588867187507],[-69.69423828125002,76.98945312500004],[-70.613134765625,76.82182617187499],[-71.14145507812498,77.02866210937503],[-70.86284179687496,77.175439453125],[-68.97832031250002,77.19531250000006],[-68.13554687499999,77.37958984375001],[-66.38945312499999,77.28027343750003],[-66.69121093749999,77.68120117187502],[-67.68808593749995,77.523779296875],[-68.62153320312498,77.60185546875002],[-69.35136718749999,77.467138671875],[-70.53540039062497,77.699560546875],[-70.11445312500001,77.84135742187505],[-71.27163085937494,77.81313476562497],[-72.81806640624995,78.1943359375],[-72.47250976562498,78.48203125],[-71.65131835937493,78.62314453124998],[-68.99345703124999,78.857421875],[-68.37705078124998,79.037841796875],[-65.82553710937503,79.17373046874997],[-64.79228515624993,80.00063476562502],[-64.17915039062498,80.09926757812497],[-66.84365234374997,80.07622070312507],[-67.05063476562503,80.384521484375],[-64.51552734374997,81],[-63.72197265624993,81.05732421875001],[-63.028662109375006,80.88955078125002],[-62.90336914062496,81.21835937500003],[-61.43598632812498,81.13359375000002],[-60.842871093750034,81.85537109374997],[-59.28193359374998,81.88403320312503],[-56.615136718749994,81.362890625],[-59.26181640624998,82.00664062500005],[-54.54887695312496,82.35063476562505],[-53.671337890624955,82.16406249999997],[-53.55566406250003,81.65327148437501],[-53.022558593750034,82.32172851562504],[-50.894433593749994,81.89521484375001],[-49.54106445312496,81.91806640625003],[-50.93554687500003,82.38281250000003],[-50.03710937499994,82.472412109375],[-44.7294921875,81.77983398437505],[-44.23886718749998,82.3681640625],[-45.55654296875002,82.74702148437498],[-41.87646484375,82.680322265625],[-41.36962890625003,82.75],[-46.136816406250006,82.85883789062504],[-46.169042968750006,83.06386718749997],[-45.41459960937496,83.01767578124998],[-43.00927734375003,83.26459960937501],[-41.300146484375006,83.10078125000004],[-40.35683593750002,83.332177734375],[-38.15625,82.9986328125],[-38.74956054687496,83.37084960937497],[-37.72333984374998,83.49775390624998],[-29.952880859375,83.56484374999997]]]]},"properties":{"name":"Greenland","childNum":14}},{"geometry":{"type":"Polygon","coordinates":[[[-89.2328125,15.888671875],[-88.89404296875,15.890625],[-88.60336914062499,15.76416015625],[-88.5939453125,15.950292968749991],[-88.22832031249999,15.72900390625],[-88.271435546875,15.694873046875003],[-88.36455078124999,15.616015625],[-88.68447265625,15.360498046874994],[-88.96098632812499,15.152441406249991],[-89.142578125,15.072314453125003],[-89.22236328125,14.866064453124991],[-89.16220703124999,14.669238281250003],[-89.17177734375,14.606884765624997],[-89.28671875,14.529980468749997],[-89.36259765624999,14.416015625],[-89.5736328125,14.390087890624997],[-89.54716796874999,14.241259765625003],[-90.04814453124999,13.904052734375],[-90.09521484375,13.736523437499997],[-90.60693359375,13.929003906250003],[-91.37734375,13.990185546874997],[-92.23515624999999,14.54541015625],[-92.15854492187499,14.963574218749997],[-92.14423828125,15.001953125],[-92.09873046874999,15.026757812499994],[-92.07480468749999,15.07421875],[-92.187158203125,15.320898437499991],[-92.08212890624999,15.495556640624997],[-91.9572265625,15.703222656249991],[-91.736572265625,16.07016601562499],[-91.433984375,16.070458984374994],[-90.97958984374999,16.07080078125],[-90.70322265624999,16.071044921875],[-90.52197265625,16.071191406249994],[-90.44716796875,16.072705078124997],[-90.45986328125,16.162353515625],[-90.450146484375,16.261376953124994],[-90.4169921875,16.351318359375],[-90.4169921875,16.39101562499999],[-90.47109375,16.43955078124999],[-90.57578125,16.467822265625003],[-90.63408203124999,16.5107421875],[-90.634375,16.565136718749997],[-90.65996093749999,16.630908203125003],[-90.710693359375,16.70810546874999],[-90.975830078125,16.867822265624994],[-91.409619140625,17.255859375],[-91.1955078125,17.254101562499997],[-90.99296874999999,17.25244140625],[-90.98916015625,17.81640625],[-89.16147460937499,17.81484375],[-89.2328125,15.888671875]]]},"properties":{"name":"Guatemala","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[144.74179687500003,13.25927734375],[144.64931640625002,13.4287109375],[144.87539062500002,13.614648437499994],[144.94082031250002,13.5703125],[144.74179687500003,13.25927734375]]]},"properties":{"name":"Guam","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-57.194775390625,5.5484375],[-57.3185546875,5.335351562499994],[-57.20981445312499,5.195410156249991],[-57.331005859375,5.020166015624994],[-57.711083984374994,4.991064453124991],[-57.91704101562499,4.820410156249991],[-57.84599609374999,4.668164062499997],[-58.05429687499999,4.101660156249991],[-57.646728515625,3.39453125],[-57.303662109375,3.377099609374994],[-57.19736328124999,2.853271484375],[-56.704345703125,2.036474609374991],[-56.4828125,1.942138671875],[-56.96953124999999,1.91640625],[-57.03759765625,1.936474609374997],[-57.092675781249994,2.005810546874997],[-57.118896484375,2.013964843749989],[-57.31748046874999,1.963476562499991],[-57.41269531249999,1.908935546875],[-57.500439453125,1.77382812499999],[-57.54575195312499,1.72607421875],[-57.59443359375,1.7041015625],[-57.795654296875,1.7],[-57.8734375,1.667285156249989],[-57.9828125,1.6484375],[-58.03466796875,1.520263671875],[-58.34067382812499,1.587548828124994],[-58.38037109375,1.530224609374997],[-58.39580078124999,1.481738281249989],[-58.5060546875,1.438671875],[-58.511865234374994,1.28466796875],[-58.68461914062499,1.281054687499989],[-58.73032226562499,1.247509765624997],[-58.78720703124999,1.20849609375],[-58.82177734375,1.201220703124989],[-59.231201171875,1.376025390624989],[-59.53569335937499,1.7],[-59.66660156249999,1.746289062499997],[-59.66850585937499,1.842333984374989],[-59.74072265625,1.874169921874994],[-59.75620117187499,1.900634765625],[-59.75522460937499,2.274121093749997],[-59.8896484375,2.362939453124994],[-59.9943359375,2.689990234374989],[-59.854394531249994,3.5875],[-59.55112304687499,3.933544921874997],[-59.557763671874994,3.960009765624989],[-59.62021484374999,4.023144531249997],[-59.73857421874999,4.226757812499997],[-59.69970703125,4.353515625],[-60.1486328125,4.533251953124989],[-59.990673828125,5.082861328124991],[-60.142041015625,5.238818359374989],[-60.241650390625,5.257958984374994],[-60.335205078125,5.199316406249991],[-60.45952148437499,5.188085937499991],[-60.6513671875,5.221142578124997],[-60.742138671875,5.202050781249994],[-61.37680664062499,5.906982421875],[-61.3908203125,5.938769531249989],[-61.303125,6.049511718749997],[-61.22495117187499,6.129199218749989],[-61.15947265624999,6.174414062499991],[-61.12871093749999,6.214306640624997],[-61.152294921875,6.385107421874991],[-61.151025390624994,6.446533203125],[-61.181591796875,6.513378906249997],[-61.20361328125,6.58837890625],[-61.14560546874999,6.69453125],[-60.717919921874994,6.768310546875],[-60.35209960937499,7.002880859374997],[-60.32207031249999,7.092041015625],[-60.32548828124999,7.133984375],[-60.34506835937499,7.15],[-60.46494140624999,7.166552734374989],[-60.523193359375,7.143701171874994],[-60.583203125,7.156201171874997],[-60.63330078125,7.211083984374994],[-60.718652343749994,7.535937499999989],[-60.513623046875,7.813183593749997],[-60.032421875,8.053564453124991],[-59.99072265625,8.162011718749994],[-59.96484375,8.191601562499997],[-59.849072265625,8.248681640624994],[-59.83164062499999,8.305957031249989],[-60.017529296875,8.54931640625],[-59.20024414062499,8.07460937499999],[-58.51108398437499,7.39804687499999],[-58.48056640624999,7.038134765624989],[-58.67294921874999,6.390771484374994],[-58.414990234375,6.85117187499999],[-57.982568359374994,6.785888671875],[-57.54013671874999,6.33154296875],[-57.2275390625,6.178417968749997],[-57.194775390625,5.5484375]]]},"properties":{"name":"Guyana","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[73.70742187500002,-53.13710937499999],[73.46513671875002,-53.184179687500006],[73.25117187500001,-52.97578125000001],[73.83779296875002,-53.11279296875],[73.70742187500002,-53.13710937499999]]]},"properties":{"name":"Heard I. and McDonald Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-83.635498046875,14.876416015624997],[-84.53764648437496,14.633398437499963],[-84.64594726562498,14.661083984375011],[-84.86044921874998,14.809765625000011],[-84.98515624999999,14.752441406249972],[-85.059375,14.582958984374997],[-85.20834960937498,14.311816406250003],[-85.73393554687496,13.85869140625006],[-85.75341796875,13.852050781250028],[-85.78671874999995,13.844433593749997],[-85.98378906249997,13.965673828125006],[-86.04038085937503,14.050146484374977],[-86.33173828124995,13.770068359375031],[-86.37695312500003,13.755664062500031],[-86.61025390624997,13.774853515625026],[-86.73364257812494,13.763476562500017],[-86.75898437499995,13.746142578125045],[-86.77060546875003,13.698730468749972],[-86.763525390625,13.635253906250014],[-86.72958984375,13.4072265625],[-86.710693359375,13.31337890624998],[-86.72929687499996,13.284375],[-86.79213867187497,13.279785156249972],[-86.87353515624994,13.266503906250023],[-86.918212890625,13.223583984374983],[-87.00932617187499,13.007812499999986],[-87.0591796875,12.991455078125028],[-87.337255859375,12.979248046875028],[-87.48911132812503,13.352929687500051],[-87.814208984375,13.399169921875057],[-87.781884765625,13.521386718749994],[-87.71533203125003,13.812695312500011],[-87.73144531250003,13.841064453125014],[-87.80224609374997,13.889990234375034],[-87.89199218749997,13.894970703124983],[-87.99101562499996,13.879638671874972],[-88.15102539062497,13.987353515624974],[-88.44912109374994,13.850976562499994],[-88.48266601562503,13.854248046875043],[-88.49765624999998,13.904541015624986],[-88.50434570312501,13.964208984374963],[-88.51254882812498,13.97895507812504],[-89.12050781249994,14.370214843749991],[-89.36259765624996,14.416015625],[-89.17177734375,14.606884765624983],[-89.16220703125,14.669238281249989],[-89.22236328125001,14.86606445312502],[-89.142578125,15.072314453125031],[-88.96098632812496,15.15244140625002],[-88.68447265625002,15.360498046875037],[-88.36455078124996,15.616015625000045],[-88.27143554687498,15.694873046875045],[-88.22832031249999,15.729003906249972],[-88.131103515625,15.701025390625034],[-87.87495117187495,15.879345703124955],[-86.35664062499998,15.783203125],[-85.93627929687497,15.953417968750045],[-85.98564453124999,16.02416992187497],[-85.48369140624996,15.899511718749977],[-84.97373046874998,15.989892578124994],[-84.55966796875,15.802001953125],[-84.26142578124998,15.822607421875034],[-83.765283203125,15.405468750000054],[-83.972802734375,15.519628906250034],[-84.11132812499997,15.492431640625],[-84.09506835937503,15.400927734375017],[-83.92744140624998,15.394042968750028],[-83.76044921874998,15.220361328124994],[-83.49794921874997,15.222119140624997],[-83.64638671875,15.368408203125043],[-83.36918945312493,15.239990234375],[-83.29086914062498,15.078906250000045],[-83.2255859375,15.042285156250045],[-83.15751953124999,14.993066406249966],[-83.41503906249994,15.008056640625],[-83.5365234375,14.977001953124983],[-83.635498046875,14.876416015624997]]]},"properties":{"name":"Honduras","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[17.60781250000005,42.76904296875],[17.744238281250063,42.70034179687505],[17.34414062500008,42.790380859375006],[17.60781250000005,42.76904296875]]],[[[16.650683593750017,42.99658203125],[17.188281250000045,42.917041015625045],[16.850683593750006,42.8955078125],[16.650683593750017,42.99658203125]]],[[[17.667578125000063,42.897119140624994],[18.436328125000017,42.559716796874994],[18.517480468750023,42.43291015624999],[17.823828125,42.79741210937502],[17.045410156250057,43.014892578125],[17.667578125000063,42.897119140624994]]],[[[16.785253906250006,43.270654296874966],[16.490332031250034,43.28618164062502],[16.44892578125004,43.38706054687506],[16.89130859375001,43.314648437499955],[16.785253906250006,43.270654296874966]]],[[[15.371386718750074,43.973828124999955],[15.437207031250068,43.899511718750006],[15.270019531250028,44.01074218750003],[15.371386718750074,43.973828124999955]]],[[[14.488085937500074,44.66005859375005],[14.31240234375008,44.90039062499997],[14.33125,45.16499023437498],[14.488085937500074,44.66005859375005]]],[[[14.810253906250068,44.97705078124997],[14.45039062500004,45.079199218750006],[14.571093750000017,45.224755859374994],[14.810253906250068,44.97705078124997]]],[[[18.905371093750006,45.931738281250034],[18.839062499999983,45.83574218750002],[19.064257812500045,45.51499023437506],[19.004687500000074,45.39951171875006],[19.4,45.2125],[19.062890625000023,45.13720703125],[19.007128906250045,44.86918945312502],[18.83642578125,44.883251953124955],[18.66259765625,45.07744140624999],[17.812792968750074,45.078125],[16.918652343749983,45.27656249999998],[16.53066406250008,45.21669921875002],[16.29335937500005,45.00883789062496],[16.028320312500057,45.18959960937502],[15.788085937500057,45.17895507812497],[15.736621093750045,44.76582031250001],[16.10341796875008,44.52099609375006],[16.300097656250017,44.12451171875],[17.27382812500005,43.44575195312501],[17.650488281250063,43.006591796875],[17.585156250000068,42.93837890625005],[16.903125,43.392431640625006],[16.393945312500023,43.54335937500002],[15.985546875000068,43.519775390625],[15.185839843750017,44.17211914062503],[15.122949218749994,44.256787109374955],[15.470996093750045,44.27197265625003],[14.981347656250023,44.60292968750005],[14.854589843750034,45.08100585937501],[14.550488281249983,45.297705078125006],[14.31269531250004,45.33779296875002],[13.86074218750008,44.83740234375003],[13.517187500000063,45.481787109375034],[13.878710937500017,45.428369140624994],[14.369921875000074,45.48144531250006],[14.427343750000034,45.50576171875002],[14.56884765625,45.65722656249997],[14.591796875000057,45.65126953125002],[14.649511718750006,45.57148437500001],[14.793066406250034,45.47822265625001],[14.95458984375,45.499902343749994],[15.110449218750034,45.450781250000034],[15.242089843750023,45.44140624999997],[15.339453125000063,45.46704101562506],[15.326660156250028,45.502294921875034],[15.291210937500011,45.541552734375045],[15.283593750000051,45.5796875],[15.35371093750004,45.659912109375],[15.27705078125004,45.73261718749998],[15.652148437500074,45.86215820312498],[15.675585937500045,45.98369140624996],[15.666210937500011,46.04848632812502],[15.596875,46.10922851562506],[15.592578125000017,46.139990234375006],[15.608984374999977,46.171923828125045],[16.1064453125,46.382226562499994],[16.32119140625005,46.53461914062504],[16.42763671875005,46.5244140625],[16.516210937499977,46.499902343749966],[16.569921875,46.48500976562505],[16.748046875000057,46.41640625000002],[16.87148437500008,46.33930664062504],[17.310644531250006,45.99614257812502],[17.80712890625,45.79042968750002],[18.358300781250023,45.75302734375006],[18.533593750000023,45.79614257812503],[18.56464843750004,45.81328124999999],[18.666015625,45.90747070312497],[18.905371093750006,45.931738281250034]]]]},"properties":{"name":"Croatia","childNum":8}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-72.80458984374997,18.777685546875063],[-72.82221679687501,18.707128906249977],[-73.07797851562498,18.790917968749994],[-73.27641601562499,18.95405273437501],[-72.80458984374997,18.777685546875063]]],[[[-71.647216796875,19.195947265624994],[-71.80712890624997,18.987011718749983],[-71.733642578125,18.85639648437501],[-71.72705078125,18.80322265625003],[-71.74321289062502,18.73291015625],[-71.86650390624999,18.61416015625005],[-71.98686523437499,18.61035156249997],[-72.000390625,18.59790039062503],[-71.94038085937493,18.51259765625005],[-71.87255859374997,18.416210937499955],[-71.76191406249998,18.34130859374997],[-71.73725585937495,18.27080078124999],[-71.76831054687497,18.039160156250063],[-71.85292968749997,18.119140625],[-71.94609375,18.186083984375045],[-72.05986328124993,18.228564453125017],[-72.87666015624998,18.151757812499994],[-73.38515625000002,18.251171874999983],[-73.747314453125,18.190234375000017],[-73.88496093749998,18.041894531249994],[-74.478125,18.45],[-74.3875,18.624707031249983],[-74.22773437499998,18.662695312499977],[-72.78935546874996,18.434814453125],[-72.37607421874998,18.57446289062503],[-72.34765624999994,18.674951171874994],[-72.81108398437496,19.071582031250074],[-72.70322265625,19.441064453125023],[-73.43837890624994,19.722119140624983],[-73.21777343750003,19.88369140625005],[-72.63701171875002,19.90087890625],[-72.21982421875003,19.744628906250057],[-71.834716796875,19.696728515624983],[-71.77924804687498,19.718164062499994],[-71.75742187499998,19.68818359375001],[-71.71147460937493,19.486572265625057],[-71.74648437499997,19.28583984375001],[-71.647216796875,19.195947265624994]]]]},"properties":{"name":"Haiti","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[22.1318359375,48.405322265624996],[22.253710937500017,48.407373046874994],[22.582421875000023,48.134033203125],[22.769140625,48.109619140625],[22.87666015625001,47.947265625],[21.99970703125001,47.505029296874994],[21.121679687500006,46.282421875],[20.76025390625,46.246240234374994],[20.613671875000023,46.13349609375],[20.508105468750017,46.166943359375],[20.28095703125001,46.1330078125],[20.241796875,46.10859375],[20.21015625000001,46.126025390624996],[20.161425781250017,46.141894531249996],[19.93408203125,46.161474609375],[19.84443359375001,46.145898437499994],[19.61347656250001,46.169189453125],[19.421289062500023,46.064453125],[18.666015625,45.907470703125],[18.56464843750001,45.81328125],[18.533593750000023,45.796142578125],[18.358300781250023,45.75302734375],[17.80712890625,45.790429687499994],[17.310644531250006,45.996142578124996],[16.871484375000023,46.339306640625],[16.748046875,46.41640625],[16.569921875,46.485009765624994],[16.516210937500006,46.499902343749994],[16.283593750000023,46.857275390625],[16.093066406250017,46.86328125],[16.453417968750017,47.006787109375],[16.44287109375,47.39951171875],[16.676562500000017,47.536035156249994],[16.421289062500023,47.674462890624994],[17.06660156250001,47.707568359374996],[17.147363281250023,48.00595703125],[17.76191406250001,47.770166015624994],[18.72421875,47.787158203124996],[18.791894531250023,48.000292968749996],[19.625390625000023,48.223095703125],[19.95039062500001,48.146630859374994],[20.333789062500017,48.295556640624994],[20.490039062500017,48.526904296874996],[21.45136718750001,48.55224609375],[21.766992187500023,48.3380859375],[22.1318359375,48.405322265624996]]]},"properties":{"name":"Hungary","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[122.9489257812501,-10.90927734375002],[122.82617187500003,-10.899121093749983],[122.84570312500003,-10.761816406249991],[123.37109375000003,-10.474902343749989],[123.41816406250004,-10.651269531250037],[122.9489257812501,-10.90927734375002]]],[[[121.8830078125001,-10.590332031249957],[121.70468750000006,-10.5556640625],[121.99833984375002,-10.446972656249983],[121.8830078125001,-10.590332031249957]]],[[[123.41621093750004,-10.302636718749966],[123.3255859375,-10.264160156249943],[123.45878906250002,-10.13994140624996],[123.41621093750004,-10.302636718749966]]],[[[120.0125,-9.374707031250026],[120.78447265625002,-9.95703125],[120.83261718750006,-10.0375],[120.69804687500002,-10.206640624999949],[120.4391601562501,-10.294042968749991],[120.14482421875002,-10.200097656249952],[119.60107421874997,-9.773535156250006],[119.08544921875003,-9.706933593750023],[118.95878906250002,-9.519335937500003],[119.29589843749997,-9.3671875],[119.9420898437501,-9.301464843750026],[120.0125,-9.374707031250026]]],[[[125.06816406250002,-9.511914062499997],[124.42753906250002,-10.14863281250004],[123.7472656250001,-10.347167968749986],[123.60478515625002,-10.270117187500006],[123.71640625000012,-10.078613281249986],[123.5892578125,-9.966796875000028],[123.709375,-9.61484375],[124.0363281250001,-9.341601562500031],[124.28232421875012,-9.427929687500026],[124.44443359375012,-9.190332031250023],[124.92226562500005,-8.942480468749977],[124.93681640625007,-9.053417968750026],[125.14902343750012,-9.042578125000034],[125.10048828125,-9.189843750000023],[124.96015625000004,-9.213769531250009],[125.06816406250002,-9.511914062499997]]],[[[115.60996093750012,-8.769824218749974],[115.48046875000003,-8.715429687500006],[115.56142578125,-8.669921874999972],[115.60996093750012,-8.769824218749974]]],[[[122.97734375000002,-8.54521484374996],[122.88779296875006,-8.587304687500009],[123.01054687500002,-8.448339843750034],[123.153125,-8.475781250000026],[122.97734375000002,-8.54521484374996]]],[[[119.46406250000004,-8.741015624999974],[119.38554687500002,-8.736035156250026],[119.4464843750001,-8.429199218749957],[119.55722656250012,-8.518847656250003],[119.46406250000004,-8.741015624999974]]],[[[123.31748046875012,-8.354785156249974],[123.02500000000012,-8.395507812500014],[123.21708984375002,-8.235449218750006],[123.33603515625006,-8.269042968750014],[123.31748046875012,-8.354785156249974]]],[[[116.64082031250004,-8.613867187500006],[116.51425781250012,-8.820996093750011],[116.58652343750012,-8.886132812499966],[116.23935546875006,-8.912109375000014],[115.85732421875005,-8.787890625000017],[116.07646484375002,-8.744921874999974],[116.06113281250006,-8.437402343750023],[116.4015625000001,-8.204199218750034],[116.7189453125001,-8.336035156249977],[116.64082031250004,-8.613867187500006]]],[[[124.28662109375003,-8.32949218749998],[124.14667968750004,-8.531445312499997],[123.92773437500003,-8.448925781249969],[124.23955078125002,-8.20341796874996],[124.28662109375003,-8.32949218749998]]],[[[123.92480468750003,-8.2724609375],[123.55302734375007,-8.566796875],[123.23007812500006,-8.530664062500023],[123.47587890625007,-8.322265625000014],[123.39121093750012,-8.280468750000026],[123.77597656250006,-8.190429687499986],[123.92480468750003,-8.2724609375]]],[[[138.89511718750006,-8.388671874999957],[138.56337890625,-8.30908203125],[138.79619140625007,-8.173632812500017],[138.89511718750006,-8.388671874999957]]],[[[117.55634765625004,-8.367285156249949],[117.49052734375007,-8.183398437499974],[117.66503906249997,-8.148242187500003],[117.55634765625004,-8.367285156249949]]],[[[124.5755859375,-8.140820312499997],[125.05029296874997,-8.179589843749994],[125.13173828125,-8.326464843749989],[124.38066406250002,-8.41513671875002],[124.43066406249997,-8.18320312500002],[124.5755859375,-8.140820312499997]]],[[[127.8234375000001,-8.098828124999969],[128.11923828125012,-8.17070312499996],[128.02353515625006,-8.255371093749972],[127.82089843750012,-8.190234375000031],[127.8234375000001,-8.098828124999969]]],[[[122.7829101562501,-8.61171875],[121.65136718749997,-8.898730468749946],[121.41464843750006,-8.81484375],[121.32832031250004,-8.916894531250009],[121.03525390625012,-8.935449218749966],[120.55048828125004,-8.80185546875002],[119.909375,-8.857617187500011],[119.80791015625002,-8.697656250000023],[119.87480468750007,-8.419824218749994],[120.61025390625005,-8.24042968750004],[121.44453125000004,-8.57783203125004],[121.96650390625004,-8.455175781250006],[122.32324218749997,-8.628320312500023],[122.85048828125,-8.304394531250011],[122.91914062500004,-8.221875],[122.75859375000002,-8.185937499999952],[122.91699218749997,-8.105566406250006],[123.00595703125006,-8.329101562499986],[122.7829101562501,-8.61171875]]],[[[130.86220703125,-8.31875],[130.77519531250002,-8.34990234374996],[131.02011718750012,-8.091308593749943],[131.17636718750006,-8.130761718749994],[130.86220703125,-8.31875]]],[[[118.24238281250004,-8.317773437499994],[118.61191406250006,-8.28066406249998],[118.71386718749997,-8.41494140624998],[118.926171875,-8.297656249999974],[119.12968750000002,-8.668164062499969],[118.74589843750002,-8.735449218749991],[118.83261718750012,-8.833398437499966],[118.47861328125012,-8.856445312499957],[118.37890625000003,-8.674609375000031],[118.18994140624997,-8.840527343749997],[117.06132812500002,-9.099023437499994],[116.78847656250005,-9.006347656250028],[116.83505859375012,-8.532421875000026],[117.16484375000007,-8.367187500000014],[117.56708984375004,-8.426367187499991],[117.80605468750005,-8.711132812500011],[117.96953125000002,-8.728027343749986],[118.23486328124997,-8.591894531249963],[117.81484375000005,-8.342089843749974],[117.7552734375,-8.149511718749991],[118.11748046875007,-8.12226562500004],[118.24238281250004,-8.317773437499994]]],[[[115.44785156250012,-8.155175781249994],[115.70429687500004,-8.40712890624998],[115.14492187500005,-8.849023437500037],[115.05507812500005,-8.573046874999946],[114.61318359375,-8.37832031249998],[114.46757812500007,-8.166308593749946],[114.93847656249997,-8.18710937500002],[115.15400390625004,-8.065722656249974],[115.44785156250012,-8.155175781249994]]],[[[129.83886718749997,-7.954589843749986],[129.71347656250012,-8.04072265625004],[129.60898437500006,-7.803417968750011],[129.81298828124997,-7.819726562499952],[129.83886718749997,-7.954589843749986]]],[[[126.80097656250004,-7.667871093750009],[126.4720703125,-7.950390625000011],[126.04003906250003,-7.885839843750006],[125.79824218750005,-7.984570312499969],[125.97529296875004,-7.663378906249989],[126.21367187500002,-7.706738281250026],[126.60957031250004,-7.571777343749972],[126.80097656250004,-7.667871093750009]]],[[[127.41943359375003,-7.623046875000028],[127.37070312500012,-7.512792968749949],[127.47519531250012,-7.531054687500031],[127.41943359375003,-7.623046875000028]]],[[[138.53535156250004,-8.273632812499969],[138.2962890625,-8.405175781250037],[137.65039062499997,-8.386132812499966],[138.08183593750002,-7.566210937500003],[138.29550781250012,-7.4384765625],[138.76982421875002,-7.390429687499974],[138.98906250000002,-7.696093749999989],[138.53535156250004,-8.273632812499969]]],[[[131.3255859375,-7.999511718749986],[131.11376953125003,-7.997363281249989],[131.13779296875012,-7.684863281250017],[131.64345703125,-7.11279296875],[131.73613281250007,-7.197070312500017],[131.64384765625002,-7.266894531249946],[131.62441406250005,-7.626171874999955],[131.3255859375,-7.999511718749986]]],[[[131.98203125000006,-7.202050781249966],[131.75078125000002,-7.116796875],[131.92226562500005,-7.104492187499986],[131.98203125000006,-7.202050781249966]]],[[[128.6701171875001,-7.183300781249969],[128.52978515625003,-7.134570312499989],[128.62773437500007,-7.06875],[128.6701171875001,-7.183300781249969]]],[[[120.77441406250003,-7.118945312500003],[120.64082031250004,-7.115820312499991],[120.63339843750006,-7.018261718750011],[120.77441406250003,-7.118945312500003]]],[[[113.84453125000007,-7.105371093749994],[113.12695312499997,-7.224121093750028],[112.72587890625007,-7.072753906250014],[112.86806640625,-6.899902343749972],[113.06738281250003,-6.879980468749991],[113.97470703125012,-6.873046875],[114.0736328125,-6.960156249999983],[113.84453125000007,-7.105371093749994]]],[[[115.37705078125006,-6.97080078125002],[115.22031250000012,-6.952539062500037],[115.24052734375007,-6.861230468749994],[115.54609375000004,-6.938671874999955],[115.37705078125006,-6.97080078125002]]],[[[105.25283203125005,-6.640429687499946],[105.12138671875007,-6.614941406249997],[105.26054687500002,-6.523925781250014],[105.25283203125005,-6.640429687499946]]],[[[134.53681640625004,-6.442285156249994],[134.32275390624997,-6.84873046875002],[134.09082031249997,-6.833789062500003],[134.10703125000006,-6.471582031250009],[134.19462890625007,-6.459765625],[134.11464843750005,-6.190820312500009],[134.53681640625004,-6.442285156249994]]],[[[107.37392578125005,-6.007617187499989],[107.66679687500002,-6.215820312499957],[108.33017578125012,-6.286035156249966],[108.67783203125006,-6.790527343749972],[110.42626953124997,-6.947265625000028],[110.83476562500002,-6.424218749999952],[110.97226562500012,-6.435644531249977],[111.18154296875005,-6.686718749999969],[111.54033203125002,-6.648242187500031],[112.0873046875,-6.89335937499996],[112.53925781250004,-6.926464843749955],[112.64873046875007,-7.221289062499977],[112.7943359375,-7.304492187499974],[112.79453125000012,-7.55244140625004],[113.01357421875005,-7.657714843749986],[113.49765625000006,-7.723828124999955],[114.07070312500005,-7.633007812500011],[114.40927734375012,-7.79248046875],[114.38691406250004,-8.405175781250037],[114.58378906250002,-8.769628906250034],[113.25332031250005,-8.286718749999963],[112.67880859375006,-8.409179687499957],[111.50996093750004,-8.30507812499998],[110.60722656250002,-8.149414062499972],[109.28164062500005,-7.704882812500003],[108.74121093749997,-7.667089843750034],[108.45175781250006,-7.79697265625002],[107.91748046875003,-7.724121093750014],[107.28496093750007,-7.471679687500014],[106.45527343750004,-7.368652343749986],[106.51972656250004,-7.053710937499943],[106.19824218749997,-6.927832031249977],[105.25546875000012,-6.835253906250031],[105.37089843750002,-6.664355468750031],[105.48369140625007,-6.781542968750017],[105.65507812500002,-6.469531249999946],[105.78691406250002,-6.456933593749966],[105.86826171875006,-6.11640625000004],[106.075,-5.914160156249963],[106.82519531249997,-6.098242187499977],[107.0462890625,-5.90419921874998],[107.37392578125005,-6.007617187499989]]],[[[120.52832031249997,-6.2984375],[120.48730468749997,-6.464843749999972],[120.47734375000007,-5.775292968750009],[120.52832031249997,-6.2984375]]],[[[112.7194335937501,-5.81103515625],[112.58603515625006,-5.803613281249994],[112.69003906250006,-5.726171875000034],[112.7194335937501,-5.81103515625]]],[[[132.80712890625003,-5.850781250000011],[132.68144531250002,-5.91259765625],[132.63017578125002,-5.60703125],[132.80712890625003,-5.850781250000011]]],[[[134.74697265625,-5.707031249999957],[134.71416015625007,-6.29511718750004],[134.44111328125004,-6.334863281249966],[134.15488281250006,-6.06289062499998],[134.3019531250001,-6.009765624999986],[134.34306640625002,-5.833007812499943],[134.20537109375002,-5.707226562499997],[134.34130859375003,-5.712890624999986],[134.57080078124997,-5.42734375],[134.74697265625,-5.707031249999957]]],[[[132.92626953124997,-5.902050781249983],[132.84501953125002,-5.987988281249997],[133.13847656250002,-5.317871093749986],[133.11962890625003,-5.575976562499989],[132.92626953124997,-5.902050781249983]]],[[[102.36718750000003,-5.478710937499983],[102.1107421875,-5.32255859374996],[102.3717773437501,-5.366406250000011],[102.36718750000003,-5.478710937499983]]],[[[123.62675781250007,-5.271582031249963],[123.58261718750006,-5.36738281250004],[123.54277343750002,-5.271093749999963],[123.62675781250007,-5.271582031249963]]],[[[122.04296874999997,-5.437988281250028],[121.80849609375,-5.256152343750017],[121.91367187500012,-5.072265624999957],[122.04101562500003,-5.158789062499991],[122.04296874999997,-5.437988281250028]]],[[[122.64511718750012,-5.26943359374998],[122.5638671875,-5.3875],[122.28310546875,-5.319531249999969],[122.39628906250002,-5.069824218749986],[122.36894531250007,-4.767187499999977],[122.70195312500002,-4.61865234375],[122.75986328125012,-4.933886718750003],[122.61406250000007,-5.138671874999986],[122.64511718750012,-5.26943359374998]]],[[[123.17978515625006,-4.551171875000023],[123.195703125,-4.82265625],[123.05517578124997,-4.748242187500026],[122.97167968750003,-5.138476562500031],[123.18730468750007,-5.333007812499957],[122.96875,-5.405761718749943],[122.81210937500012,-5.671289062499952],[122.64501953124997,-5.663378906250031],[122.58642578124997,-5.488867187500006],[122.76650390625005,-5.210156249999983],[122.85332031250007,-4.618359375000026],[123.074609375,-4.38691406250004],[123.17978515625006,-4.551171875000023]]],[[[133.57080078124997,-4.245898437500003],[133.621875,-4.299316406249957],[133.32089843750006,-4.111035156249969],[133.57080078124997,-4.245898437500003]]],[[[123.2423828125001,-4.112988281250011],[123.07617187499997,-4.227148437499991],[122.96904296875002,-4.029980468749969],[123.21191406250003,-3.997558593750028],[123.2423828125001,-4.112988281250011]]],[[[128.56259765625012,-3.58544921875],[128.39160156250003,-3.637890625000026],[128.45156250000005,-3.514746093749991],[128.56259765625012,-3.58544921875]]],[[[128.2755859375001,-3.67460937499996],[127.97802734374997,-3.770996093749972],[127.925,-3.69931640625002],[128.32910156249997,-3.51591796874996],[128.2755859375001,-3.67460937499996]]],[[[116.42412109375007,-3.464453124999963],[116.38779296875012,-3.636718749999972],[116.3265625,-3.539062499999972],[116.42412109375007,-3.464453124999963]]],[[[116.30332031250006,-3.868164062499957],[116.05878906250004,-4.006933593749991],[116.06357421875006,-3.457910156249952],[116.26972656250004,-3.251074218750006],[116.30332031250006,-3.868164062499957]]],[[[126.86113281250007,-3.087890624999986],[127.22734375000007,-3.391015625],[127.22958984375006,-3.633007812500011],[126.68632812500007,-3.823632812500037],[126.21455078125004,-3.605175781250026],[126.05654296875,-3.420996093749991],[126.08828125,-3.105468750000014],[126.86113281250007,-3.087890624999986]]],[[[106.88642578125004,-3.005273437500023],[106.7428710937501,-2.932812500000011],[106.91064453124997,-2.93398437499998],[106.88642578125004,-3.005273437500023]]],[[[129.75468750000007,-2.865820312500034],[130.3791015625001,-2.989355468749977],[130.56992187500006,-3.130859375000028],[130.85996093750006,-3.570312500000028],[130.805078125,-3.85771484374996],[129.844140625,-3.327148437499957],[129.51171875000003,-3.32851562499998],[129.46767578125005,-3.453222656249977],[128.8625,-3.234960937500006],[128.51660156249997,-3.449121093750037],[128.13203125000004,-3.157421875000026],[127.90234374999997,-3.496289062499955],[127.87792968749997,-3.222070312499966],[128.19853515625002,-2.865917968749969],[128.99111328125,-2.82851562499998],[129.17441406250006,-2.933496093749966],[129.48417968750002,-2.785742187499977],[129.75468750000007,-2.865820312500034]]],[[[100.42509765625007,-3.182910156249974],[100.46513671875007,-3.32851562499998],[100.20429687500004,-2.98681640625],[100.19853515625002,-2.785546875000023],[100.45458984375003,-3.001953124999972],[100.42509765625007,-3.182910156249974]]],[[[108.2072265625001,-2.997656249999977],[108.05527343750006,-3.22685546874996],[107.85820312500002,-3.086328125000023],[107.61445312500004,-3.209375],[107.56347656250003,-2.920117187499997],[107.66630859375002,-2.566308593750037],[107.83779296875005,-2.530273437499972],[108.21513671875002,-2.696972656250011],[108.29062500000012,-2.829980468750023],[108.2072265625001,-2.997656249999977]]],[[[100.20410156249997,-2.741015625000017],[100.01494140625007,-2.819726562499966],[99.98789062500006,-2.525390624999957],[100.20410156249997,-2.741015625000017]]],[[[99.84306640625007,-2.343066406250031],[99.60703125000012,-2.257519531250011],[99.57216796875005,-2.025781249999966],[99.84306640625007,-2.343066406250031]]],[[[126.055078125,-2.451269531249963],[125.86289062500006,-2.077148437499943],[125.92275390625,-1.974804687499969],[126.055078125,-2.451269531249963]]],[[[126.02421875000007,-1.789746093750011],[126.33173828125004,-1.822851562500006],[125.47919921875004,-1.940039062499991],[125.38720703124997,-1.843066406249946],[126.02421875000007,-1.789746093750011]]],[[[130.35332031250007,-1.690527343749963],[130.41884765625,-1.971289062499963],[130.24804687500003,-2.047753906249994],[129.7376953125,-1.866894531250011],[130.35332031250007,-1.690527343749963]]],[[[124.96953125000007,-1.70546875],[125.18789062500005,-1.712890624999986],[125.31406250000006,-1.877148437499969],[124.41777343750002,-2.005175781250031],[124.32968750000012,-1.858886718749972],[124.41757812500006,-1.659277343749991],[124.96953125000007,-1.70546875]]],[[[135.47421875000006,-1.591796875000014],[136.89257812500003,-1.799707031249994],[136.22812500000012,-1.893652343749949],[135.47421875000006,-1.591796875000014]]],[[[108.953125,-1.61962890625],[108.83789062499997,-1.661621093750028],[108.80371093750003,-1.567773437499994],[108.953125,-1.61962890625]]],[[[106.04570312500002,-1.669433593750014],[106.36591796875004,-2.464843749999972],[106.81845703125006,-2.573339843749963],[106.6120117187501,-2.895507812499957],[106.66718750000004,-3.071777343749986],[105.99873046875004,-2.824902343749955],[105.7858398437501,-2.18134765625004],[105.13339843750012,-2.042578125],[105.45957031250006,-1.574707031249986],[105.58544921875003,-1.526757812499994],[105.7008789062501,-1.731054687499963],[105.7204101562501,-1.533886718750026],[105.91005859375,-1.504980468749991],[106.04570312500002,-1.669433593750014]]],[[[123.59755859375,-1.704296875000011],[123.48251953125006,-1.681445312499974],[123.52851562500004,-1.502832031250009],[123.59755859375,-1.704296875000011]]],[[[128.1530273437501,-1.66054687499998],[127.56162109375012,-1.728515624999972],[127.39501953125003,-1.589843749999972],[127.64667968750004,-1.332421875],[128.1530273437501,-1.66054687499998]]],[[[123.2123046875,-1.171289062499966],[123.23779296874997,-1.389355468749983],[123.43476562500004,-1.236816406249986],[123.54726562500005,-1.337402343749957],[123.51191406250004,-1.447363281249977],[123.27490234374997,-1.437207031249955],[123.17294921875006,-1.616015624999974],[123.15039062500003,-1.304492187500003],[122.89042968750007,-1.58720703124996],[122.81083984375002,-1.432128906249986],[122.90800781250002,-1.182226562499963],[123.2123046875,-1.171289062499966]]],[[[109.71025390625007,-1.1806640625],[109.46367187500002,-1.277539062500026],[109.4759765625,-0.9853515625],[109.74335937500004,-1.039355468749989],[109.71025390625007,-1.1806640625]]],[[[134.96533203124997,-1.116015624999974],[134.86171875,-1.114160156249952],[134.82792968750002,-0.978808593750003],[134.99628906250004,-1.03408203124998],[134.96533203124997,-1.116015624999974]]],[[[99.16386718750007,-1.777929687500006],[98.82773437500006,-1.609960937499977],[98.60175781250004,-1.197851562499949],[98.67607421875007,-0.970507812500003],[98.93261718750003,-0.954003906250009],[99.2672851562501,-1.62773437499996],[99.16386718750007,-1.777929687500006]]],[[[131.00185546875005,-1.315527343750034],[130.78232421875006,-1.255468749999963],[130.67294921875006,-0.959765625000031],[131.03300781250007,-0.917578124999963],[131.00185546875005,-1.315527343750034]]],[[[135.38300781250004,-0.6513671875],[135.89355468749997,-0.725781249999969],[136.37529296875007,-1.094042968750031],[136.1647460937501,-1.214746093750023],[135.91503906250003,-1.178417968749997],[135.74707031249997,-0.823046874999974],[135.64570312500004,-0.881933593749991],[135.38300781250004,-0.6513671875]]],[[[127.30039062500012,-0.780957031250026],[127.1564453125001,-0.760937500000026],[127.20908203125006,-0.619335937499955],[127.30039062500012,-0.780957031250026]]],[[[130.6266601562501,-0.528710937499966],[130.46542968750006,-0.486523437499983],[130.6159179687501,-0.417285156250003],[130.6266601562501,-0.528710937499966]]],[[[121.86435546875012,-0.406835937500006],[121.88125,-0.502636718749983],[121.65527343749997,-0.526171874999989],[121.86435546875012,-0.406835937500006]]],[[[140.97343750000007,-2.609765625],[140.97353515625,-2.803417968750026],[140.975,-6.346093750000023],[140.86230468749997,-6.740039062499989],[140.97519531250006,-6.90537109375002],[140.97617187500012,-9.11875],[140.00292968749997,-8.19550781250004],[140.11699218750002,-7.923730468750009],[139.93476562500004,-8.101171875],[139.38564453125,-8.189062499999963],[139.24882812500002,-7.982421874999972],[138.890625,-8.237792968749943],[139.08798828125012,-7.587207031250017],[138.74794921875,-7.25146484375],[139.17685546875006,-7.1904296875],[138.84570312500003,-7.13632812499999],[138.60136718750007,-6.936523437499972],[138.86455078125007,-6.858398437499943],[138.43867187500004,-6.343359375],[138.2962890625,-5.94902343749996],[138.37460937500006,-5.84365234374998],[138.19960937500005,-5.80703125],[138.33964843750007,-5.675683593749966],[138.08710937500004,-5.70917968750004],[138.06083984375002,-5.46523437499998],[137.27978515624997,-4.945410156249949],[136.61884765625004,-4.81875],[135.97968750000004,-4.530859374999963],[135.19560546875007,-4.450683593749972],[134.67968749999997,-4.079101562499943],[134.70654296875003,-3.954785156250026],[134.88652343750007,-3.938476562499986],[134.26621093750012,-3.945800781249972],[134.14707031250006,-3.79677734374998],[133.97382812500004,-3.817968750000034],[133.67832031250006,-3.4794921875],[133.8415039062501,-3.054785156249991],[133.70039062500004,-3.0875],[133.653125,-3.364355468749991],[133.51816406250012,-3.411914062500003],[133.40087890625003,-3.899023437500034],[133.24873046875004,-4.062304687499989],[132.91445312500005,-4.05693359374996],[132.75390625000003,-3.703613281250014],[132.86972656250006,-3.550976562499997],[132.75136718750005,-3.294628906249997],[131.97119140624997,-2.788574218750014],[132.2306640625001,-2.680371093749997],[132.725,-2.789062500000028],[133.19101562500006,-2.43779296874996],[133.70009765625005,-2.624609375],[133.75332031250005,-2.450683593750014],[133.90488281250012,-2.390917968750003],[133.79101562500003,-2.293652343749997],[133.92158203125004,-2.102050781249957],[132.96279296875005,-2.272558593749963],[132.30761718749997,-2.24228515625002],[132.02343749999997,-1.99033203125002],[131.93037109375004,-1.559667968750034],[131.29375,-1.393457031250009],[130.99589843750007,-1.42470703124998],[131.1908203125,-1.165820312500003],[131.2572265625,-0.855468750000014],[131.80429687500006,-0.703808593750026],[132.39375,-0.355468750000028],[132.85644531250003,-0.417382812500023],[133.47265624999997,-0.726171874999963],[133.97451171875,-0.744335937500026],[134.11152343750004,-0.84677734375002],[134.07197265625004,-1.001855468749994],[134.25957031250007,-1.362988281250026],[134.105859375,-1.720996093749946],[134.19482421875003,-2.309082031249943],[134.45996093749997,-2.83232421874996],[134.48330078125,-2.583007812499972],[134.62744140624997,-2.536718749999963],[134.70214843749997,-2.933593749999986],[134.84335937500006,-2.909179687499986],[134.88681640625006,-3.209863281249966],[135.25156250000012,-3.368554687499966],[135.48662109375002,-3.34511718749998],[135.85917968750002,-2.99531250000004],[136.38994140625002,-2.273339843750037],[137.07207031250002,-2.105078124999949],[137.1710937500001,-2.025488281249991],[137.1234375,-1.840917968749963],[137.80625000000012,-1.483203125],[139.78955078125003,-2.34824218750002],[140.62255859374997,-2.44580078125],[140.74746093750005,-2.607128906249997],[140.97343750000007,-2.609765625]]],[[[104.47421875000012,-0.334667968749955],[104.59013671875002,-0.466601562500017],[104.36318359375,-0.658593749999966],[104.25712890625002,-0.463281249999966],[104.47421875000012,-0.334667968749955]]],[[[127.56699218750006,-0.318945312499949],[127.68242187500002,-0.46835937500002],[127.60498046874997,-0.610156249999946],[127.88017578125002,-0.808691406249991],[127.7611328125,-0.883691406249994],[127.62382812500002,-0.76601562499999],[127.46269531250002,-0.80595703124996],[127.46865234375,-0.64296875],[127.3,-0.500292968749946],[127.32509765625,-0.335839843750023],[127.45517578125012,-0.406347656249991],[127.56699218750006,-0.318945312499949]]],[[[127.24990234375005,-0.4953125],[127.11914062500003,-0.520507812499986],[127.12646484375003,-0.278613281250003],[127.29003906250003,-0.284375],[127.24990234375005,-0.4953125]]],[[[103.73652343750004,-0.347949218750003],[103.461328125,-0.357617187500011],[103.54892578125006,-0.227539062499986],[103.73652343750004,-0.347949218750003]]],[[[130.81328125000007,-0.004101562500026],[131.27685546875003,-0.149804687499952],[131.33974609375005,-0.290332031249989],[131.00537109374997,-0.360742187500037],[130.62216796875006,-0.0859375],[130.89921875000002,-0.344433593749997],[130.7501953125001,-0.44384765625],[130.6886718750001,-0.296582031250011],[130.55078124999997,-0.366406250000026],[130.23662109375002,-0.209667968749983],[130.3625,-0.072851562500006],[130.81328125000007,-0.004101562500026]]],[[[98.45927734375007,-0.530468749999969],[98.30966796875012,-0.531835937499977],[98.4271484375,-0.226464843750037],[98.3229492187501,-0.000781249999974],[98.54414062500004,-0.257617187499989],[98.45927734375007,-0.530468749999969]]],[[[104.77861328125007,-0.175976562499955],[105.00537109374997,-0.282812499999963],[104.44707031250002,-0.189160156249983],[104.54267578125004,0.01772460937498],[104.77861328125007,-0.175976562499955]]],[[[103.28447265625002,0.541943359375011],[103.13955078125,0.549072265625043],[103.18740234375,0.699755859375017],[103.28447265625002,0.541943359375011]]],[[[103.0275390625001,0.746630859374974],[102.4904296875001,0.856640625],[102.50664062500002,1.088769531250037],[103.00244140624997,0.859277343750009],[103.0275390625001,0.746630859374974]]],[[[103.42392578125012,1.048339843749972],[103.31542968750003,1.071289062500028],[103.37998046875006,1.133642578125034],[103.42392578125012,1.048339843749972]]],[[[103.16640625000005,0.870166015625003],[102.7018554687501,1.0537109375],[102.72558593749997,1.158837890625023],[102.99941406250005,1.067773437500023],[103.16640625000005,0.870166015625003]]],[[[104.02480468750005,1.180566406250009],[104.13984375000004,1.165576171874974],[104.06611328125004,0.989550781249989],[103.93222656250012,1.071386718749963],[104.02480468750005,1.180566406250009]]],[[[104.58535156250005,1.21611328124996],[104.66289062500002,1.04951171875004],[104.57519531250003,0.831933593750037],[104.43925781250002,1.050439453125051],[104.25195312499997,1.014892578125],[104.36181640624997,1.18149414062502],[104.58535156250005,1.21611328124996]]],[[[102.4271484375,0.990136718750023],[102.27958984375002,1.075683593750043],[102.25634765625003,1.397070312499963],[102.44287109374997,1.234228515625006],[102.4271484375,0.990136718750023]]],[[[97.48154296875006,1.465087890624972],[97.93193359375002,0.973925781250003],[97.82041015625012,0.564453124999986],[97.683984375,0.596093750000037],[97.60390625000005,0.83388671874998],[97.40537109375012,0.946972656250026],[97.07919921875006,1.425488281249983],[97.35595703124997,1.539746093749997],[97.48154296875006,1.465087890624972]]],[[[102.49189453125004,1.459179687500011],[102.49941406250005,1.330908203124991],[102.02402343750012,1.607958984375031],[102.49189453125004,1.459179687500011]]],[[[124.88886718750004,0.995312500000011],[124.42753906250002,0.470605468750051],[123.75380859375,0.305517578124991],[123.26542968750007,0.326611328125026],[122.996875,0.493505859375006],[121.01298828125002,0.441699218750017],[120.57900390625,0.5283203125],[120.19228515625,0.268505859374997],[120.01328125000012,-0.196191406249994],[120.062890625,-0.555566406250023],[120.240625,-0.868261718749949],[120.51757812499997,-1.039453125],[120.66738281250005,-1.370117187499972],[121.14853515625012,-1.33945312500002],[121.5755859375,-0.828515625000023],[121.96962890625005,-0.933300781249969],[122.27998046875004,-0.757031250000026],[122.88876953125006,-0.755175781250003],[122.8294921875,-0.658886718750026],[123.17148437500012,-0.57070312499999],[123.37968750000002,-0.648535156249949],[123.43417968750006,-0.778222656249994],[123.37792968749997,-1.004101562500011],[122.90283203125003,-0.900976562499963],[122.25068359375004,-1.555273437500034],[121.8585937500001,-1.69326171874998],[121.65097656250006,-1.895410156249952],[121.35546874999997,-1.878222656250003],[122.29169921875004,-2.907617187500023],[122.39902343750006,-3.200878906249997],[122.25292968749997,-3.620410156250017],[122.68964843750004,-4.084472656249972],[122.84794921875002,-4.064550781250006],[122.8722656250001,-4.391992187500009],[122.71972656250003,-4.340722656249952],[122.11425781250003,-4.540234375000011],[122.03808593749997,-4.832421875000023],[121.58867187500007,-4.759570312500017],[121.48652343750004,-4.581054687499972],[121.61806640625,-4.092675781249952],[120.89179687500004,-3.520605468750034],[121.05429687500012,-3.167089843749949],[121.0521484375,-2.751660156249955],[120.87939453124997,-2.64560546875002],[120.65361328125002,-2.667578124999977],[120.26103515625007,-2.949316406249991],[120.43662109375012,-3.70732421874996],[120.42011718750004,-4.617382812500011],[120.27929687499997,-5.146093749999977],[120.4303710937501,-5.591015625000026],[119.9515625,-5.577636718749972],[119.71728515625003,-5.693359375000014],[119.55742187500007,-5.611035156250026],[119.36035156249997,-5.314160156250026],[119.59404296875007,-4.523144531249997],[119.62363281250006,-4.034375],[119.46748046875004,-3.512988281249989],[118.99462890624997,-3.537597656250028],[118.86767578124997,-3.39804687500002],[118.78330078125006,-2.720800781249977],[119.09218750000005,-2.482910156250014],[119.32187500000012,-1.929687500000014],[119.308984375,-1.408203125],[119.508203125,-0.906738281249972],[119.71132812500005,-0.680761718750034],[119.84433593750006,-0.861914062499991],[119.721875,-0.088476562499991],[119.865625,0.040087890625003],[119.80927734375004,0.238671875000051],[119.9132812500001,0.445068359375],[120.26953125000003,0.970800781249991],[120.60253906249997,0.854394531249994],[120.86796875000007,1.25283203124998],[121.0817382812501,1.327636718750028],[121.40410156250002,1.243603515624969],[121.59179687499997,1.067968749999977],[122.43662109375006,1.018066406250028],[122.83828125,0.845703125],[123.06650390625006,0.941796875000037],[123.93076171875006,0.850439453124977],[124.53369140624997,1.230468750000043],[124.94707031250002,1.672167968749974],[125.11093750000012,1.685693359374966],[125.2337890625,1.502294921875006],[124.88886718750004,0.995312500000011]]],[[[101.70810546875006,2.078417968750045],[101.71943359375004,1.789160156250006],[101.50078125000002,1.733203124999974],[101.40966796875003,2.021679687500026],[101.70810546875006,2.078417968750045]]],[[[127.73271484375007,0.848144531250043],[127.8810546875001,0.832128906249977],[127.96728515624997,1.042578125000048],[128.16074218750006,1.1578125],[128.22246093750002,1.400634765624986],[128.68837890625,1.572558593750017],[128.70263671874997,1.106396484374997],[128.29882812500003,0.87680664062502],[128.26064453125,0.733789062500023],[128.61123046875,0.549951171875051],[128.89960937500004,0.216259765625011],[127.9831054687501,0.471875],[127.88740234375004,0.298339843750043],[127.97783203125002,-0.24833984374996],[128.4254882812501,-0.892675781249949],[128.04638671875003,-0.706054687499943],[127.69160156250004,-0.241894531249983],[127.70869140625004,0.288085937499986],[127.53710937500003,0.610888671875031],[127.60800781250006,0.848242187499977],[127.42851562500002,1.139990234374991],[127.63173828125,1.843701171875011],[128.03642578125002,2.199023437500017],[127.88681640625012,1.83295898437504],[128.0109375000001,1.701220703125031],[128.01171874999997,1.331738281249983],[127.65283203124997,1.013867187499969],[127.73271484375007,0.848144531250043]]],[[[97.3341796875001,2.075634765625011],[97.10830078125,2.216894531250006],[97.29140625,2.200830078125023],[97.3341796875001,2.075634765625011]]],[[[128.45390625000002,2.051757812500028],[128.29589843749997,2.034716796875017],[128.2179687500001,2.297460937499991],[128.60214843750012,2.59760742187504],[128.68847656250003,2.473681640625017],[128.62324218750004,2.224414062500031],[128.45390625000002,2.051757812500028]]],[[[96.46367187500002,2.360009765625037],[95.80859374999997,2.655615234375034],[95.7171875,2.825976562500017],[95.89580078125007,2.8890625],[96.41728515625007,2.515185546875031],[96.46367187500002,2.360009765625037]]],[[[108.8875,2.905419921875037],[108.7865234375,2.885644531250009],[108.88574218750003,2.998974609374997],[108.8875,2.905419921875037]]],[[[105.76035156250006,2.863037109375014],[105.69218750000002,3.0625],[105.83671875000007,2.97651367187504],[105.76035156250006,2.863037109375014]]],[[[106.28525390625006,3.15712890624998],[106.28369140624997,3.088232421874977],[106.20097656250002,3.204882812500031],[106.28525390625006,3.15712890624998]]],[[[117.65839843750004,3.280517578124986],[117.54785156250003,3.43198242187502],[117.68085937500004,3.407519531250017],[117.65839843750004,3.280517578124986]]],[[[125.65810546875,3.436035156250043],[125.51152343750007,3.461132812500011],[125.46884765625006,3.73325195312502],[125.65810546875,3.436035156250043]]],[[[117.88476562499997,4.186132812500006],[117.92285156250003,4.054296874999977],[117.73681640624997,4.004003906250034],[117.64902343750012,4.168994140624974],[117.88476562499997,4.186132812500006]]],[[[108.31601562500006,3.689648437500026],[108.10039062500002,3.70454101562504],[108.24326171875006,3.810351562500017],[108.00234375,3.982861328124983],[108.24833984375002,4.21713867187502],[108.39287109375007,3.986181640625034],[108.31601562500006,3.689648437500026]]],[[[117.5744140625001,4.17060546875004],[117.46533203124997,4.076074218749966],[117.77724609375005,3.689257812500031],[117.05595703125007,3.622656249999963],[117.34628906250006,3.426611328124991],[117.35244140625,3.19375],[117.61064453125002,3.064355468749994],[117.56914062500002,2.92929687500002],[117.69765625,2.887304687499991],[117.6388671875001,2.825292968749963],[118.0666015625001,2.317822265624969],[117.7892578125001,2.026855468750014],[118.98496093750006,0.982128906249983],[118.53476562500006,0.813525390625017],[118.19609375000002,0.874365234374977],[117.91162109374997,1.098681640625017],[117.96425781250005,0.889550781250051],[117.74511718749997,0.72963867187498],[117.52216796875004,0.235888671875017],[117.46289062500003,-0.323730468749957],[117.5625,-0.770898437500009],[116.91396484375,-1.223632812499972],[116.73984375000006,-1.044238281250017],[116.75341796874997,-1.327343749999955],[116.27548828125006,-1.784863281249997],[116.42431640625003,-1.784863281249997],[116.45195312500002,-1.923144531250017],[116.31396484374997,-2.139843750000011],[116.56542968749997,-2.299707031249994],[116.52929687499997,-2.51054687499996],[116.31679687500005,-2.55185546875002],[116.33066406250012,-2.902148437499974],[116.16630859375002,-2.934570312500014],[116.2572265625,-3.126367187500009],[115.95615234375012,-3.595019531250003],[114.6935546875001,-4.169726562500017],[114.5255859375001,-3.376660156250011],[114.44599609375004,-3.481835937500037],[114.34433593750012,-3.444433593749963],[114.34433593750012,-3.23515625],[114.23632812500003,-3.36113281249996],[114.0822265625001,-3.27890625],[113.70507812499997,-3.45527343750004],[113.6100585937501,-3.195703125],[113.34316406250005,-3.246484374999966],[113.03398437500002,-2.933496093749966],[112.97148437500002,-3.187109375000034],[112.75800781250004,-3.322167968750009],[112.60029296875004,-3.400488281249977],[112.28496093750002,-3.32099609375004],[111.85810546875004,-3.551855468750006],[111.82304687500007,-3.057226562499949],[111.69472656250005,-2.88945312499996],[110.93007812500005,-3.071093750000017],[110.82968750000012,-2.9951171875],[110.89931640625,-2.908593749999952],[110.703125,-3.020898437500009],[110.57402343750007,-2.89140625],[110.25605468750004,-2.966113281249946],[110.09658203125,-2.001367187499966],[109.95986328125,-1.862792968749972],[109.98330078125,-1.274804687499994],[109.78740234375007,-1.011328124999963],[109.25878906250003,-0.807421874999989],[109.37275390625004,-0.638183593749972],[109.12109375000003,-0.39091796874996],[109.2575195312501,0.031152343750051],[108.94453125000004,0.355664062499997],[108.91679687500007,0.912646484375045],[108.95859375000006,1.134619140624963],[109.1315429687501,1.253857421875011],[109.01025390624997,1.239648437500051],[109.07587890625004,1.495898437500031],[109.37851562500006,1.922705078125034],[109.62890625000003,2.027539062499983],[109.53896484375,1.89619140625004],[109.65400390625004,1.614892578125023],[110.50576171875005,0.861962890625023],[111.10136718750002,1.050537109374986],[111.80898437500005,1.011669921874969],[112.078515625,1.143359374999974],[112.1857421875001,1.4390625],[112.47617187500006,1.559082031250028],[112.94296875000006,1.566992187500034],[113.00654296875004,1.433886718750003],[113.6222656250001,1.2359375],[113.90234375000003,1.434277343749997],[114.5125,1.452001953124963],[114.83056640625003,1.980029296874989],[114.78642578125002,2.250488281250014],[115.1791015625,2.523193359374972],[115.08076171875004,2.63422851562504],[115.117578125,2.89487304687502],[115.24697265625005,3.025927734374989],[115.45439453125002,3.034326171875009],[115.67880859375006,4.193017578124994],[115.86074218750005,4.348046875000037],[116.51474609375006,4.370800781249969],[117.10058593750003,4.337060546875023],[117.5744140625001,4.17060546875004]]],[[[126.81660156250004,4.033496093750003],[126.70449218750005,4.070996093749997],[126.81357421875006,4.258496093750011],[126.72207031250005,4.344189453124969],[126.75732421874997,4.547900390624989],[126.9210937500001,4.291015624999972],[126.81660156250004,4.033496093750003]]],[[[96.49257812500005,5.229345703124991],[97.54716796875002,5.205859375],[98.2484375,4.41455078125],[98.3073242187501,4.09287109375002],[99.73232421875005,3.183056640625026],[100.523828125,2.18916015625004],[100.88789062500004,1.948242187499986],[100.82822265625012,2.242578125],[101.04619140625002,2.257470703125023],[101.47666015625006,1.693066406250054],[102.019921875,1.442138671875],[102.38994140625007,0.84199218750004],[103.03183593750006,0.57890625],[103.0075195312501,0.415332031249974],[102.55,0.216455078124966],[103.33896484375012,0.513720703125045],[103.67265625000007,0.288916015624977],[103.78671875000012,0.046972656249991],[103.42851562500007,-0.19179687499998],[103.40517578125005,-0.36220703124998],[103.5091796875,-0.465527343749969],[103.43857421875006,-0.575585937500009],[103.72109375,-0.886718749999986],[104.36054687500004,-1.038378906249974],[104.51591796875002,-1.81943359375002],[104.84521484375003,-2.092968749999969],[104.65078125000005,-2.595214843749972],[104.97080078125012,-2.370898437500017],[105.39697265624997,-2.380175781249946],[106.0443359375,-3.10625],[105.84375,-3.61367187499998],[105.93046875000007,-3.833007812499986],[105.83144531250005,-4.16289062499996],[105.88720703124997,-5.009570312499974],[105.74833984375007,-5.818261718749966],[105.34941406250007,-5.549511718750011],[105.08134765625002,-5.74550781249998],[104.63955078125005,-5.520410156250037],[104.68398437500005,-5.89267578125002],[104.60156249999997,-5.90458984374996],[103.8314453125,-5.079589843750028],[102.53769531250006,-4.152148437499989],[102.12753906250006,-3.599218749999963],[101.57861328124997,-3.166992187500014],[100.88955078125,-2.248535156249957],[100.85527343750002,-1.934179687499949],[100.30820312500006,-0.82666015625],[99.66982421875005,0.045068359375037],[99.15917968749997,0.351757812499997],[98.59531250000006,1.864599609375006],[97.70078125000006,2.358544921875009],[97.59082031249997,2.846582031250037],[97.3913085937501,2.975292968749969],[96.9689453125001,3.575146484374969],[96.44472656250005,3.81630859374998],[95.57861328125003,4.661962890625048],[95.20664062500006,5.284033203125034],[95.22783203125002,5.564794921875034],[95.62890625000003,5.609082031249997],[96.13330078125003,5.294287109374991],[96.49257812500005,5.229345703124991]]]]},"properties":{"name":"Indonesia","childNum":107}},{"geometry":{"type":"Polygon","coordinates":[[[-4.412060546874983,54.185351562499996],[-4.785351562499983,54.073046875],[-4.424707031249994,54.407177734375],[-4.412060546874983,54.185351562499996]]]},"properties":{"name":"Isle of Man","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[75.32221348233018,32.28516356678968],[75.62496871116024,32.28516356678968],[75.73585997688717,32.78417426256088],[76.32728006076415,32.87658365066666],[76.62299010270264,33.32014871357439],[77.06655516561037,33.301666835953235],[77.71342088235082,32.6917648744551],[78.10154031239509,32.87658365066666],[78.49194250885338,32.53122786149202],[78.38964843749997,32.51987304687498],[78.41748046874997,32.466699218749994],[78.4552734375001,32.30034179687502],[78.49589843750002,32.21577148437504],[78.72558593750009,31.983789062500023],[78.71972656250009,31.887646484374983],[78.69345703125006,31.740380859374994],[78.7550781250001,31.55029296875],[78.74355468750005,31.323779296875017],[79.10712890625004,31.402636718750102],[79.38847656250013,31.064208984375085],[79.66425781250004,30.96523437499999],[79.92451171875004,30.888769531250034],[80.20712890625006,30.683740234375023],[80.19121093750002,30.56840820312496],[80.87353515625003,30.290576171875045],[80.98544921875006,30.23710937499999],[81.01025390625014,30.164501953125097],[80.96611328125002,30.180029296875063],[80.90761718750005,30.171923828125017],[80.84814453125009,30.139746093750034],[80.81992187500012,30.119335937499955],[80.68408203125014,29.994335937500068],[80.54902343750015,29.899804687499994],[80.40185546875003,29.730273437500102],[80.31689453125014,29.572070312500017],[80.25488281250009,29.423339843750114],[80.25595703125006,29.318017578125136],[80.23300781250006,29.194628906250045],[80.16953125000012,29.124316406250102],[80.13046875000006,29.100390625000045],[80.08457031249995,28.994189453125074],[80.05166015625,28.870312500000068],[80.07070312500005,28.830175781250063],[80.22656250000003,28.723339843750125],[80.32480468750012,28.66640625000008],[80.41855468749995,28.61201171875001],[80.47910156250012,28.604882812499994],[80.49580078125015,28.635791015625074],[80.51787109375002,28.665185546875023],[80.58701171875006,28.64960937500004],[81.16894531250014,28.335009765625074],[81.85263671875018,27.867089843750136],[81.89687500000011,27.87446289062504],[81.94521484375005,27.89926757812495],[81.98769531250016,27.91376953125004],[82.03701171875,27.90058593750004],[82.11191406250006,27.86494140625004],[82.28769531250018,27.756542968749983],[82.45136718750004,27.671826171874955],[82.62988281249997,27.687060546875045],[82.67734375000006,27.67343749999995],[82.71083984375005,27.596679687500114],[82.73339843750003,27.518994140625097],[83.28974609375004,27.370996093750136],[83.36943359375002,27.410253906249977],[83.38398437500004,27.444824218750085],[83.44716796875011,27.46533203125],[83.55166015625011,27.456347656249932],[83.74697265625011,27.395947265625068],[83.8288085937501,27.377832031250108],[84.09101562499993,27.491357421875136],[84.22978515625007,27.427832031250006],[84.48085937500005,27.348193359375102],[84.61015625000002,27.298681640624977],[84.64072265625012,27.249853515624977],[84.65478515625014,27.20366210937499],[84.65380859375009,27.09169921875008],[84.68535156250013,27.041015625000057],[85.19179687500011,26.766552734375097],[85.29296875000009,26.741015625000045],[85.56845703125012,26.839843750000114],[85.64843749999997,26.829003906250023],[85.69990234375004,26.781640624999966],[85.73730468750003,26.639746093750034],[85.79453125000006,26.60415039062505],[86.00732421875009,26.64936523437504],[86.70136718750015,26.435058593750057],[87.01640625000002,26.555419921875085],[87.2874023437499,26.360302734375125],[87.41357421875014,26.42294921875009],[87.84921875000006,26.43691406250008],[87.99511718750014,26.38237304687499],[88.02695312500023,26.395019531250085],[88.05488281250004,26.43002929687492],[88.11152343750004,26.58642578125],[88.1615234375,26.724804687500125],[88.15722656250009,26.807324218750068],[88.1110351562501,26.928466796875057],[87.99316406250009,27.086083984374994],[87.984375,27.133935546874994],[88.14697265625014,27.749218750000097],[88.15029296875011,27.843310546875074],[88.10976562500005,27.87060546874997],[88.10898437499995,27.93300781250005],[88.14111328125003,27.948925781250097],[88.27519531250013,27.96884765625009],[88.42597656250015,28.011669921875097],[88.57792968750002,28.093359375000034],[88.80371093750003,28.006933593750034],[88.74902343749997,27.521875000000136],[88.7648437500001,27.429882812500068],[88.83251953125003,27.362841796875074],[88.89140625000002,27.316064453125136],[88.88164062500007,27.29746093750009],[88.76035156250006,27.21811523437509],[88.73876953125009,27.175585937499932],[88.85761718750015,26.961474609375017],[89.14824218750002,26.816162109375085],[89.33212890625018,26.848632812500114],[89.58613281250004,26.778955078125136],[89.60996093750012,26.719433593750097],[89.71093750000009,26.713916015625045],[89.76386718750004,26.7015625],[89.94316406250013,26.723925781249932],[90.12294921875011,26.754589843749983],[90.20605468749997,26.847509765625063],[90.34589843750004,26.890332031250097],[90.73964843750005,26.771679687500068],[91.2865234375,26.78994140625008],[91.42675781249997,26.867089843749966],[91.45585937500013,26.866894531250125],[91.51757812500009,26.807324218750068],[91.67158203124993,26.80200195312503],[91.84208984375013,26.852978515625125],[91.94375,26.860839843750114],[91.99833984375013,26.85498046875],[92.04970703125016,26.87485351562495],[92.73155507489682,26.833697862861648],[93.30975376159499,26.784950522650554],[93.61047043679247,27.32239435188504],[94.06979001484449,27.589407158584788],[95.10800937321915,27.749636881153737],[95.74000740838363,28.116850432722256],[96.19577594042592,28.04291597700983],[96.96279296875,27.698291015625017],[96.88359375000013,27.514843750000125],[96.90195312500012,27.43959960937508],[97.10371093749993,27.163330078125114],[97.10205078125003,27.115429687500125],[96.95341796875013,27.13330078125003],[96.79785156249997,27.29619140624999],[96.19082031250005,27.26127929687499],[95.20146484375007,26.641406250000017],[95.05976562500015,26.473974609375006],[95.06894531250006,26.191113281250097],[95.10839843750014,26.091406250000034],[95.12929687500011,26.070410156250034],[95.13242187500006,26.041259765624943],[94.99199218750002,25.77045898437504],[94.66777343750007,25.458886718749966],[94.55302734375013,25.215722656249994],[94.70371093750012,25.097851562499955],[94.49316406250003,24.637646484374983],[94.37724609375002,24.473730468750006],[94.29306640625012,24.321875],[94.07480468750006,23.8720703125],[93.68339843750007,24.00654296875004],[93.45214843750003,23.987402343750034],[93.32626953125006,24.064208984375057],[93.36601562500007,23.132519531249955],[93.34941406250007,23.08496093750003],[93.20390625000002,23.03701171875005],[93.07871093750018,22.718212890625097],[93.16201171875,22.360205078125006],[93.07060546875002,22.20942382812501],[92.96455078125015,22.003759765625034],[92.90947265625013,21.988916015625023],[92.85429687500002,22.010156250000108],[92.77138671875,22.104785156250017],[92.68896484375009,22.130957031250006],[92.63037109375014,22.011328124999977],[92.57490234374993,21.97807617187496],[92.5612304687501,22.04804687500001],[92.49140625000004,22.685400390625006],[92.46445312500006,22.734423828125045],[92.36162109375002,22.929003906250074],[92.33378906250002,23.242382812499955],[92.24609375000003,23.68359374999997],[92.04404296875006,23.677783203125017],[91.97851562500003,23.691992187500063],[91.92958984375011,23.685986328125097],[91.92949218750019,23.598242187499977],[91.93789062500011,23.504687500000102],[91.75419921875013,23.28730468750004],[91.75097656250003,23.053515625000017],[91.55351562500013,22.991552734375006],[91.43623046875004,23.19990234375001],[91.359375,23.06835937500003],[91.16044921875019,23.660644531250085],[91.35019531250012,24.06049804687501],[91.72656250000003,24.20507812499997],[91.84619140624997,24.175292968749943],[92.06416015625004,24.374365234375006],[92.11748046875002,24.493945312500017],[92.22666015625012,24.77099609374997],[92.22832031250002,24.881347656250085],[92.2512695312499,24.895068359375045],[92.38496093750004,24.848779296875023],[92.46835937500018,24.944140625000074],[92.04970703125016,25.16948242187499],[90.61308593750002,25.16772460937497],[90.11962890625003,25.21997070312497],[89.86630859375012,25.293164062499955],[89.81406250000006,25.305371093749955],[89.80087890625012,25.33613281250001],[89.82490234375004,25.56015625],[89.82294921875015,25.94140625000003],[89.67089843750009,26.213818359375125],[89.57275390625003,26.13232421875003],[89.54990234375006,26.00527343750008],[89.28925781250015,26.037597656250085],[89.01865234375012,26.410253906249977],[88.95195312500002,26.412109375],[88.97041015625004,26.250878906250023],[88.94072265625002,26.24536132812497],[88.68281250000004,26.291699218749983],[88.51826171875004,26.51777343750004],[88.36992187500002,26.56411132812508],[88.35146484375005,26.482568359374966],[88.38623046875003,26.471533203125034],[88.44042968749997,26.369482421875034],[88.33398437499997,26.257519531249955],[88.15078125000005,26.087158203125057],[88.1066406250001,25.841113281250045],[88.14746093749997,25.811425781250023],[88.50244140625009,25.53701171875008],[88.76914062500006,25.490478515625],[88.85478515625002,25.333544921875017],[88.94414062500002,25.290771484375],[88.92978515625012,25.222998046875063],[88.57382812500006,25.18789062499999],[88.45625,25.188427734375125],[88.37294921875016,24.961523437500063],[88.31337890625011,24.8818359375],[88.27949218750015,24.881933593750034],[88.18886718750016,24.920605468750097],[88.14980468750011,24.91464843749995],[88.04511718750015,24.71303710937508],[88.03027343750009,24.664453125000136],[88.02343750000003,24.627832031250136],[88.07910156250009,24.549902343750063],[88.14550781250003,24.485791015624955],[88.225,24.460644531249983],[88.3375,24.45385742187503],[88.49853515625003,24.34663085937504],[88.64228515625015,24.325976562500102],[88.72353515625011,24.27490234375],[88.7335937500001,24.230908203125097],[88.72656250000009,24.18623046875004],[88.71376953125016,24.069628906250102],[88.69980468750006,24.00253906249992],[88.56738281250009,23.674414062500034],[88.63574218749997,23.55],[88.69765625,23.493017578125034],[88.72441406250002,23.254980468750034],[88.89707031250018,23.21040039062501],[88.92812500000011,23.186621093749977],[88.89970703125002,22.843505859375057],[88.92070312500002,22.632031249999955],[89.05,22.274609374999983],[89.02792968750023,21.937207031249983],[88.94931640625018,21.937939453125125],[89.05166015625,21.654101562500045],[88.85751953125012,21.744677734375017],[88.74501953125011,21.584375],[88.74023437500003,22.005419921875017],[88.64160156250003,22.121972656250136],[88.58466796875015,21.659716796874932],[88.44599609375004,21.614257812500085],[88.28750000000016,21.758203125000108],[88.25371093750002,21.622314453124943],[88.0568359375001,21.694140625000017],[88.19628906249997,22.139550781249994],[87.94140625000003,22.374316406250045],[88.15927734375018,22.12172851562508],[87.82373046875003,21.727343750000045],[87.20068359375009,21.544873046874983],[86.95410156250014,21.365332031250006],[86.84228515625009,21.106347656249994],[86.97548828125005,20.70014648437501],[86.75039062500011,20.313232421875057],[86.37656250000006,20.006738281249966],[86.24521484375012,20.05302734374999],[86.27949218750021,19.919433593749943],[85.575,19.69291992187499],[85.496875,19.696923828125108],[85.50410156250004,19.887695312500057],[85.24863281250006,19.757666015625034],[85.18076171875018,19.59487304687508],[85.44160156249993,19.626562499999977],[84.77099609375009,19.125390625000023],[84.10410156250018,18.29267578125001],[82.35957031250004,17.09619140624997],[82.25878906250014,16.55986328124996],[81.76191406250015,16.32949218750008],[81.28613281249997,16.337060546875023],[80.97871093750004,15.758349609375074],[80.64658203125006,15.895019531250028],[80.29345703125014,15.710742187499989],[80.0534179687501,15.074023437499932],[80.17871093750003,14.478320312500074],[80.11171875000005,14.212207031250045],[80.30654296875016,13.485058593750054],[80.15625,13.713769531250108],[80.06210937500006,13.60625],[80.34238281250006,13.361328125000071],[80.22910156250018,12.690332031249966],[79.85849609375018,11.988769531250043],[79.69316406250007,11.312548828124946],[79.79902343750004,11.338671874999932],[79.84863281250009,11.196875],[79.83818359375002,10.322558593750045],[79.31455078125018,10.256689453124949],[78.93994140625009,9.565771484375063],[79.01992187500005,9.333349609374963],[79.41142578125002,9.192382812500014],[78.97958984375018,9.268554687500085],[78.42148437500006,9.105029296874989],[78.19248046874995,8.890869140625057],[78.06015625000006,8.384570312499932],[77.51757812500003,8.078320312500068],[77.06591796875003,8.315917968749986],[76.5534179687501,8.902783203124997],[76.32460937500016,9.452099609374997],[76.24238281250004,9.927099609374949],[76.37558593750006,9.539892578124935],[76.45878906250013,9.536230468750077],[76.34648437500002,9.922119140625],[76.19560546875002,10.086132812500026],[75.72382812500015,11.361767578125026],[74.94550781250004,12.56455078124992],[74.38222656250005,14.494726562500048],[73.94921875000014,15.074755859375088],[73.80078125000009,15.39697265625],[73.93193359375013,15.39697265625],[73.77177734375013,15.573046874999989],[73.83281250000013,15.659375],[73.67988281250015,15.708886718750136],[73.47607421875003,16.05424804687496],[72.87548828124997,18.642822265625114],[72.97207031250011,19.15332031250003],[72.8346679687501,18.975585937500057],[72.80302734375013,19.07929687500004],[72.81162109375,19.298925781250006],[72.98720703125,19.27744140625009],[72.78789062500013,19.362988281250097],[72.66777343750019,19.83095703125005],[72.89375,20.672753906250136],[72.81386718750011,21.117187500000085],[72.62382812500002,21.371972656250108],[72.73476562500016,21.470800781250006],[72.61328125000009,21.461816406250108],[73.1125,21.750439453125125],[72.54306640625,21.69658203124999],[72.70019531250003,21.971923828124943],[72.52226562500013,21.976220703125108],[72.55302734375007,22.159960937500074],[72.80917968749995,22.23330078125008],[72.18281250000015,22.26972656250004],[72.30644531250002,22.18920898437497],[72.27441406250009,22.089746093749966],[72.03720703125006,21.82304687499999],[72.2103515625,21.72822265625004],[72.25400390625006,21.531005859375],[72.01523437500012,21.155712890625097],[71.0246093750001,20.73886718750009],[70.71933593750006,20.740429687500068],[70.12734375,21.094677734375097],[68.96992187500021,22.29028320312497],[69.05166015625016,22.437304687500074],[69.27656250000004,22.285498046875063],[70.17724609375014,22.57275390624997],[70.48925781250009,23.08950195312508],[70.33945312500012,22.939746093749932],[69.66464843750006,22.759082031250074],[69.23593749999995,22.848535156250023],[68.64072265625006,23.189941406250114],[68.41748046875009,23.57148437500004],[68.7767578125,23.852099609375017],[68.23496093749995,23.596972656250074],[68.16503906250009,23.857324218749994],[68.28251953125013,23.927978515625],[68.38125000000016,23.950878906250068],[68.48867187500011,23.96723632812501],[68.5866210937501,23.966601562500074],[68.72412109375003,23.964697265625034],[68.72812500000012,24.265625],[68.73964843750016,24.291992187500085],[68.75898437499993,24.307226562500006],[68.78115234375011,24.313720703125085],[68.8,24.30908203125003],[68.82832031250004,24.26401367187509],[68.86347656250015,24.26650390625005],[68.90078125000011,24.29243164062501],[68.98457031250015,24.273095703124966],[69.05156250000013,24.28632812500001],[69.11953125000011,24.26865234374995],[69.23505859374993,24.268261718750068],[69.44345703124995,24.275390625000085],[69.55917968750006,24.273095703124966],[69.80517578125009,24.16523437500004],[70.0982421875,24.2875],[70.28906250000009,24.356298828125063],[70.54677734375,24.418310546875063],[70.56503906250006,24.385791015625017],[70.55585937500015,24.331103515625074],[70.57929687500015,24.279052734374943],[70.65947265625013,24.24609374999997],[70.71630859375009,24.237988281250097],[70.7672851562501,24.245410156250017],[70.80507812500011,24.26196289062503],[70.88623046875014,24.34375],[70.92812500000016,24.362353515625045],[70.98281250000011,24.361035156250125],[71.04404296875006,24.400097656250097],[71.04531250000005,24.42998046874996],[70.96982421875012,24.571875],[70.97636718750013,24.61875],[71.00234375000016,24.6539062499999],[71.04785156250003,24.687744140625085],[71.02070312500021,24.75766601562492],[70.95087890625015,24.89160156250003],[70.87773437500019,25.06298828124997],[70.65205078125004,25.422900390625102],[70.64843750000003,25.666943359375068],[70.5695312500001,25.705957031250023],[70.50585937500009,25.685302734375085],[70.44853515625013,25.681347656249983],[70.26464843750009,25.70654296874997],[70.10019531250006,25.91005859375005],[70.14921875000002,26.347558593749994],[70.11464843750016,26.548046874999983],[69.47001953125002,26.804443359375],[69.56796875,27.174609375000102],[69.89628906250007,27.473632812500085],[70.04980468750009,27.694726562500023],[70.14453125000003,27.849023437499994],[70.19394531250006,27.89487304687492],[70.24433593750004,27.934130859375102],[70.4037109375,28.025048828124994],[70.48857421875013,28.023144531250125],[70.62910156250015,27.937451171875068],[70.6916015625001,27.76899414062504],[70.79794921875012,27.709619140625023],[70.87490234375016,27.71445312499995],[71.18476562500004,27.831640625],[71.54296875000003,27.869873046875],[71.8703125000001,27.9625],[71.88886718750004,28.04746093749992],[71.94804687500002,28.177294921875102],[72.12851562500012,28.34633789062508],[72.29199218750003,28.69726562499997],[72.34189453125006,28.751904296875097],[72.90332031250003,29.02875976562501],[73.38164062500013,29.934375],[73.8091796875,30.093359375],[73.88652343750013,30.162011718750136],[73.93339843750002,30.222070312500108],[73.92460937500007,30.28164062499999],[73.88271484375,30.352148437499977],[73.89931640625,30.435351562500045],[74.00898437500004,30.519677734374994],[74.33935546875003,30.893554687499943],[74.38037109375003,30.89340820312509],[74.50976562500009,30.959667968750097],[74.63281250000014,31.034667968750114],[74.62578125000002,31.068750000000108],[74.61035156250009,31.112841796875045],[74.51767578125012,31.185595703124932],[74.53496093750007,31.261376953125108],[74.59394531249993,31.465380859375102],[74.58183593750013,31.523925781250114],[74.50996093750015,31.712939453125074],[74.52597656249995,31.765136718750057],[74.55556640625011,31.818554687500097],[74.63574218750003,31.889746093750034],[74.73945312500015,31.948828125],[75.07148437500015,32.08935546875003],[75.13876953125,32.10478515624999],[75.25410156250004,32.140332031250125],[75.33349609374997,32.279199218749994],[75.32221348233018,32.28516356678968]]]]},"properties":{"name":"India","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[72.49199218750002,-7.37744140625],[72.42910156250002,-7.435351562500003],[72.34970703125,-7.263378906250011],[72.447265625,-7.395703125000011],[72.44560546875002,-7.220410156250011],[72.49199218750002,-7.37744140625]]]},"properties":{"name":"Br. Indian Ocean Ter.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-9.948193359374926,53.91313476562499],[-10.265722656249949,53.977685546874994],[-9.99638671874996,54.00361328125004],[-9.948193359374926,53.91313476562499]]],[[[-6.218017578125,54.08872070312506],[-6.347607421874926,53.94130859375005],[-6.027392578124989,52.927099609375006],[-6.463183593749932,52.345361328124994],[-6.325,52.246679687500034],[-6.890234375,52.15922851562499],[-6.965771484374926,52.24951171875],[-8.057812499999926,51.82558593750005],[-8.4091796875,51.888769531250034],[-8.349121093749943,51.73930664062496],[-8.813427734374926,51.584912109374955],[-9.737304687499943,51.473730468750034],[-9.524902343750028,51.68110351562501],[-10.120751953124994,51.60068359375006],[-9.598828124999983,51.87441406250005],[-10.341064453124943,51.798925781250034],[-9.909667968749972,52.122949218749966],[-10.39023437499992,52.134912109374994],[-10.356689453125,52.20693359375002],[-9.772119140624937,52.250097656250034],[-9.90605468749996,52.403710937499966],[-9.632226562499937,52.54692382812502],[-8.783447265624943,52.679638671874955],[-8.990283203124989,52.755419921875045],[-9.175390624999949,52.634912109374994],[-9.916601562499977,52.56972656250005],[-9.46489257812496,52.82319335937498],[-9.299218749999966,53.09755859375002],[-8.930126953124983,53.207080078125045],[-9.51420898437496,53.23823242187498],[-10.091259765624926,53.41284179687503],[-10.116992187499932,53.548535156249955],[-9.720654296874926,53.6044921875],[-9.901611328124943,53.72719726562502],[-9.578222656249949,53.80541992187497],[-9.578857421875,53.879833984374955],[-9.9140625,53.863720703124955],[-9.856445312499972,54.095361328124994],[-10.092675781249966,54.15576171875003],[-10.056396484374943,54.25781250000006],[-8.545556640624994,54.24121093750003],[-8.623144531249977,54.346875],[-8.133447265624966,54.64082031250001],[-8.763916015624972,54.68120117187496],[-8.377294921874977,54.88945312500002],[-8.274609374999955,55.146289062500045],[-7.667089843749977,55.25649414062502],[-7.65874023437496,54.97094726562503],[-7.308789062500011,55.365820312500006],[-6.961669921874972,55.23789062500006],[-7.218652343749937,55.09199218749998],[-7.55039062499992,54.767968749999966],[-7.910595703124955,54.698339843750006],[-7.75439453125,54.59492187499998],[-8.118261718749977,54.41425781250004],[-7.606542968750006,54.14384765625002],[-7.324511718750017,54.13344726562502],[-7.007714843749937,54.40668945312501],[-6.649804687499937,54.05864257812496],[-6.218017578125,54.08872070312506]]]]},"properties":{"name":"Ireland","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[56.18798828125003,26.92114257812497],[55.95429687500004,26.70112304687501],[55.31152343749997,26.592626953125006],[55.76259765625005,26.81196289062504],[55.75761718750002,26.94765625000005],[56.279394531250006,26.952099609374983],[56.18798828125003,26.92114257812497]]],[[[46.1144531250001,38.877783203125034],[46.490625,38.90668945312498],[47.995898437500074,39.683935546875034],[48.322167968749994,39.39907226562502],[48.10439453125005,39.241113281249994],[48.292089843750006,39.01884765624999],[47.99648437499999,38.85375976562503],[48.59267578125005,38.41108398437498],[48.86875,38.43549804687498],[48.95996093750003,37.89013671875],[49.171191406250074,37.60058593749997],[50.13046875,37.407128906249994],[50.53320312499997,37.01367187500006],[51.11855468750005,36.742578124999966],[52.19013671875004,36.62172851562505],[53.76767578125006,36.93032226562502],[53.91542968750005,36.93032226562502],[53.67949218750002,36.853125],[53.970117187499994,36.818310546874955],[53.91416015625006,37.34355468750002],[54.6994140625001,37.47016601562498],[54.90009765625004,37.77792968750006],[55.38085937500003,38.051123046875034],[56.272070312500006,38.080419921875034],[56.440625,38.249414062499994],[57.1935546875001,38.216406250000034],[57.35371093750004,37.97333984374998],[58.261621093749994,37.665820312500045],[58.81542968750003,37.683496093749994],[59.30175781249997,37.51064453125005],[59.454980468749994,37.25283203125002],[60.06279296875002,36.962890625],[60.34130859375003,36.63764648437501],[61.11962890625003,36.64257812500003],[61.212011718750006,36.190527343750034],[61.15292968750006,35.97675781250001],[61.25214843750004,35.86762695312498],[61.26201171875002,35.61958007812498],[61.28183593750006,35.55341796875001],[61.2785156250001,35.513769531250006],[61.245507812499994,35.47407226562501],[61.18925781250002,35.31201171875003],[61.1,35.272314453125034],[61.08007812499997,34.85561523437505],[60.95117187499997,34.65385742187499],[60.91474609375004,34.63398437500001],[60.80234375000006,34.55463867187501],[60.73945312500004,34.544726562500045],[60.7262695312501,34.51826171874998],[60.736132812500074,34.491796875],[60.76259765625005,34.475244140624994],[60.88945312500002,34.31943359375006],[60.642675781250006,34.30717773437496],[60.48574218750005,34.09477539062502],[60.4859375,33.7119140625],[60.57382812500006,33.58833007812498],[60.91699218749997,33.505224609375006],[60.56054687499997,33.13784179687502],[60.5765625,32.99487304687503],[60.71044921874997,32.6],[60.82929687500004,32.24941406250005],[60.82724609375006,32.16796874999997],[60.789941406249994,31.98710937499999],[60.7875,31.87719726562497],[60.791601562500006,31.660595703124983],[60.82070312499999,31.495166015625045],[60.854101562500006,31.483251953125006],[61.110742187499994,31.45112304687504],[61.346484375000074,31.42163085937497],[61.66015625000003,31.382421874999977],[61.7550781250001,31.285302734374994],[61.814257812500074,31.072558593750017],[61.810839843750074,30.913281249999983],[61.78417968749997,30.831933593750023],[61.55947265625005,30.59936523437497],[61.33164062500006,30.36372070312501],[60.84335937500006,29.85869140624999],[61.03417968750003,29.663427734374977],[61.15214843750002,29.542724609375],[61.8898437500001,28.546533203124994],[62.7625,28.202050781249994],[62.782324218750006,27.800537109375],[62.75273437500002,27.265625],[63.16679687500002,27.25249023437499],[63.19609375000002,27.243945312500017],[63.25625,27.20791015625005],[63.30156250000002,27.151464843750006],[63.30517578124997,27.124560546875017],[63.242089843749994,27.07768554687499],[63.25039062499999,26.879248046875063],[63.24160156250005,26.86474609375003],[63.18613281250006,26.83759765625001],[63.168066406250006,26.66557617187496],[62.31230468750002,26.490869140624994],[62.23935546875006,26.357031249999977],[62.12597656249997,26.368994140625034],[61.842382812500006,26.225927734375006],[61.809960937499994,26.165283203125],[61.78076171874997,25.99584960937503],[61.75439453125003,25.843359375000063],[61.737695312499994,25.821093750000045],[61.66865234375004,25.76899414062501],[61.6618164062501,25.751269531250017],[61.67138671874997,25.69238281250003],[61.64013671875003,25.584619140624994],[61.61542968750004,25.28613281250003],[61.58789062499997,25.20234375000001],[61.533105468749994,25.195507812499955],[61.41220703125006,25.102099609375017],[60.66386718750002,25.28222656250003],[60.51054687500002,25.437060546875045],[60.40019531250002,25.311572265625074],[59.45605468749997,25.481494140625045],[59.0460937500001,25.417285156250017],[58.79785156249997,25.554589843750023],[57.334570312500006,25.791552734375074],[57.03603515625005,26.80068359375005],[56.728125,27.127685546875057],[56.118066406249994,27.14311523437499],[54.75927734375003,26.50507812500004],[54.24707031250003,26.696630859374977],[53.70576171875004,26.72558593750003],[52.69160156250004,27.323388671875023],[52.475878906250074,27.61650390624999],[52.03076171874997,27.824414062499955],[51.58906250000004,27.864208984374983],[51.27890625,28.13134765624997],[51.06201171874997,28.72612304687499],[50.86699218750002,28.870166015625017],[50.87578125000002,29.062695312499983],[50.67519531250005,29.146582031250034],[50.64960937500004,29.420068359374966],[50.16894531250003,29.921240234375034],[50.071582031250074,30.198535156250017],[49.55488281250004,30.028955078125023],[49.028125,30.333447265624983],[49.224511718749994,30.472314453125023],[49.00195312500003,30.506542968749983],[48.91914062500004,30.120898437500017],[48.54648437500006,29.962353515624955],[48.47851562499997,30.003808593749966],[48.43457031249997,30.03759765625],[48.33105468749997,30.28544921874996],[48.01494140625002,30.465625],[48.01064453125005,30.989794921875017],[47.679492187500074,31.00239257812501],[47.679492187500074,31.400585937499955],[47.75390624999997,31.601367187500017],[47.829980468749994,31.79443359375],[47.71455078125004,31.936425781249966],[47.5915039062501,32.087988281250034],[47.51191406250004,32.15083007812504],[47.3297851562501,32.45551757812501],[47.28515625000003,32.474023437499966],[47.121386718750074,32.46660156249996],[46.569921875,32.83393554687501],[46.37705078125006,32.92924804687499],[46.29824218750005,32.95024414062502],[46.11279296875003,32.957666015624994],[46.09306640625002,32.97587890624999],[46.08046875,33.028222656249994],[46.0807617187501,33.08652343750006],[46.14111328125003,33.174414062500034],[46.145898437499994,33.229638671874994],[46.01992187500005,33.41572265624998],[45.39707031250006,33.970849609374994],[45.542773437500074,34.21552734375004],[45.459375,34.470361328124994],[45.50078125000002,34.58159179687499],[45.6375,34.573828125],[45.678125,34.798437500000034],[45.92089843750003,35.02851562500001],[46.04179687500002,35.08017578125006],[46.13378906249997,35.127636718749955],[46.15468750000005,35.19672851562498],[46.112109375000074,35.32167968750005],[45.97109375000005,35.524169921875],[46.03740234375002,35.67314453124999],[46.180957031250074,35.71137695312504],[46.2625,35.74414062500006],[46.27343749999997,35.77324218750002],[46.16748046874997,35.820556640625],[45.77636718749997,35.82182617187499],[45.36162109375002,36.015332031249955],[45.241113281249994,36.35595703125],[45.20654296874997,36.397167968749955],[45.15527343749997,36.407373046874994],[45.11240234375006,36.409277343750034],[45.053125,36.47163085937501],[44.76513671875003,37.142431640625006],[44.79414062500004,37.290380859375034],[44.574023437500074,37.435400390625006],[44.589941406250006,37.710351562499966],[44.21132812499999,37.908056640625006],[44.4499023437501,38.33422851562506],[44.2985351562501,38.38627929687499],[44.27167968750004,38.83603515625006],[44.02324218750002,39.37744140625006],[44.3893554687501,39.422119140625],[44.58710937500004,39.76855468750006],[44.81718750000002,39.65043945312496],[45.4796875000001,39.00625],[46.1144531250001,38.877783203125034]]]]},"properties":{"name":"Iran","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[45.6375,34.573828125],[45.50078125000002,34.581591796874996],[45.459375,34.470361328124994],[45.54277343750002,34.21552734375],[45.397070312500006,33.970849609374994],[46.01992187500002,33.41572265625],[46.14589843750002,33.229638671874994],[46.14111328125,33.1744140625],[46.08076171875001,33.0865234375],[46.08046875000002,33.028222656249994],[46.09306640625002,32.975878906249996],[46.11279296875,32.957666015624994],[46.377050781250006,32.929248046874996],[46.569921875,32.833935546875],[47.12138671875002,32.466601562499996],[47.28515625,32.474023437499994],[47.32978515625001,32.455517578125],[47.51191406250001,32.150830078125],[47.59150390625001,32.08798828125],[47.71455078125001,31.936425781249994],[47.82998046875002,31.79443359375],[47.75390625,31.601367187499996],[47.67949218750002,31.400585937499997],[47.67949218750002,31.002392578124997],[48.01064453125002,30.989794921874996],[48.01494140625002,30.465625],[48.3310546875,30.285449218749996],[48.546484375,29.962353515624997],[48.454199218750006,29.9384765625],[48.354589843750006,29.956738281249997],[48.141699218750006,30.040917968749994],[47.982519531250006,30.011328125],[47.97871093750001,29.9828125],[47.64375,30.097314453124994],[47.14824218750002,30.0009765625],[46.905859375,29.5375],[46.76933593750002,29.347460937499996],[46.69375,29.259667968749994],[46.53144531250001,29.096240234374996],[46.3564453125,29.063671875],[44.71650390625001,29.193603515625],[43.77373046875002,29.84921875],[42.07441406250001,31.080371093749996],[40.47890625000002,31.893359375],[40.36933593750001,31.93896484375],[40.02783203125,31.995019531249994],[39.7041015625,32.042529296874996],[39.14541015625002,32.12451171875],[39.29277343750002,32.24384765625],[39.24746093750002,32.350976562499994],[39.04140625000002,32.3056640625],[38.773535156250006,33.372216796874994],[40.98701171875001,34.429052734375],[41.19472656250002,34.768994140625],[41.354101562500006,35.640429687499996],[41.295996093750006,36.383349609374996],[41.41679687500002,36.5146484375],[41.78857421875,36.59716796875],[42.358984375,37.10859375],[42.45585937500002,37.128710937499996],[42.63544921875001,37.249267578125],[42.74111328125002,37.3619140625],[42.77460937500001,37.371875],[42.869140625,37.334912109375],[42.936621093750006,37.324755859374996],[43.09248046875001,37.3673828125],[43.67578125,37.22724609375],[43.83642578125,37.223535156249994],[44.01318359375,37.313525390624996],[44.11445312500001,37.30185546875],[44.15625,37.282958984375],[44.19179687500002,37.249853515625],[44.20839843750002,37.20263671875],[44.20166015625,37.051806640624996],[44.281835937500006,36.97802734375],[44.32558593750002,37.0107421875],[44.401953125,37.058496093749994],[44.60595703125,37.176025390625],[44.66933593750002,37.173583984375],[44.73095703125,37.165283203125],[44.76513671875,37.142431640625],[45.053125,36.471630859375],[45.112402343750006,36.40927734375],[45.1552734375,36.407373046874994],[45.20654296875,36.39716796875],[45.24111328125002,36.35595703125],[45.36162109375002,36.01533203125],[45.7763671875,35.821826171874996],[46.16748046875,35.820556640625],[46.2734375,35.773242187499996],[46.2625,35.744140625],[46.18095703125002,35.711376953125],[46.03740234375002,35.673144531249996],[45.97109375000002,35.524169921875],[46.11210937500002,35.321679687499994],[46.15468750000002,35.196728515625],[46.1337890625,35.12763671875],[46.04179687500002,35.08017578125],[45.9208984375,35.028515625],[45.678125,34.7984375],[45.6375,34.573828125]]]},"properties":{"name":"Iraq","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-15.543115234374994,66.228515625],[-14.595849609374994,66.38154296875],[-15.117382812499983,66.125634765625],[-14.698193359374983,66.02021484375],[-14.827099609374983,65.7642578125],[-14.391845703125,65.78740234375],[-14.473388671875,65.575341796875],[-14.166943359374983,65.64228515625],[-13.617871093749983,65.5193359375],[-13.804785156249977,65.35478515625],[-13.599316406249983,65.0359375],[-14.04443359375,64.74189453125],[-14.385107421874977,64.74521484375],[-14.475390624999989,64.493994140625],[-14.927392578124994,64.319677734375],[-15.832910156249994,64.17666015625],[-16.640332031249983,63.865478515625],[-17.81572265624999,63.71298828125],[-17.946923828124994,63.5357421875],[-18.65361328124999,63.406689453125],[-20.198144531249994,63.555810546874994],[-20.494042968749994,63.687353515625],[-20.413964843749994,63.80517578125],[-20.65092773437499,63.73740234375],[-21.15239257812499,63.94453125],[-22.652197265624977,63.827734375],[-22.701171875,64.083203125],[-22.51005859374999,63.991455078125],[-22.187597656249977,64.039208984375],[-21.463330078124983,64.379150390625],[-22.053369140624994,64.313916015625],[-21.950341796874994,64.514990234375],[-21.590625,64.6263671875],[-22.10600585937499,64.533056640625],[-22.467041015625,64.794970703125],[-23.818994140624994,64.73916015625],[-24.02617187499999,64.863427734375],[-22.7880859375,65.046484375],[-21.89213867187499,65.048779296875],[-21.779980468749983,65.1876953125],[-22.50908203124999,65.19677734375],[-21.844384765624994,65.44736328125],[-22.902490234374994,65.58046875],[-23.89990234375,65.407568359375],[-24.475683593749977,65.5251953125],[-24.248925781249994,65.614990234375],[-23.85673828124999,65.53837890625],[-24.092626953124977,65.77646484375],[-23.615917968749983,65.67958984375],[-23.285351562499983,65.75],[-23.832617187499977,65.84921875],[-23.52495117187499,65.880029296875],[-23.77734375,66.017578125],[-23.434472656249994,66.02421875],[-23.452539062499994,66.181005859375],[-23.018994140624983,65.98212890625],[-22.659863281249983,66.025927734375],[-22.61601562499999,65.86748046875],[-22.44169921874999,65.90830078125],[-22.4453125,66.07001953125],[-22.947900390624994,66.212744140625],[-22.48442382812499,66.26630859375],[-23.116943359375,66.338720703125],[-22.9443359375,66.429443359375],[-22.426123046874977,66.430126953125],[-21.406884765624994,66.0255859375],[-21.374902343749994,65.74189453125],[-21.658447265625,65.723583984375],[-21.12968749999999,65.2666015625],[-20.804345703124994,65.63642578125],[-20.454833984375,65.571044921875],[-20.20751953125,66.10009765625],[-19.489697265624983,65.76806640625],[-19.382958984374994,66.07568359375],[-18.845898437499983,66.183935546875],[-18.141943359374977,65.73408203125],[-18.29716796874999,66.157421875],[-17.906982421875,66.143310546875],[-17.550439453124994,65.964404296875],[-17.153027343749983,66.20283203125],[-16.838037109374994,66.125244140625],[-16.485009765624994,66.195947265625],[-16.540673828124994,66.446728515625],[-16.24931640624999,66.522900390625],[-15.985400390624989,66.5146484375],[-15.543115234374994,66.228515625]]]},"properties":{"name":"Iceland","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[35.78730468750001,32.734912109374996],[35.572851562500006,32.640869140625],[35.56904296875001,32.619873046875],[35.55146484375001,32.3955078125],[35.484375,32.401660156249996],[35.40263671875002,32.450634765625],[35.38671875,32.493017578125],[35.303808593750006,32.512939453125],[35.19326171875002,32.534423828125],[35.065039062500006,32.46044921875],[35.01054687500002,32.338183593749996],[34.95595703125002,32.1609375],[34.98974609375,31.91328125],[34.97832031250002,31.86640625],[34.95380859375001,31.841259765624997],[34.96113281250001,31.82333984375],[34.983007812500006,31.81679687499999],[35.05322265625,31.837939453124996],[35.12714843750001,31.816748046875],[35.203710937500006,31.75],[34.95097656250002,31.602294921875],[34.88046875,31.3681640625],[35.45058593750002,31.479296875],[34.97343750000002,29.555029296875],[34.904296875,29.47734375],[34.24531250000001,31.208300781249996],[34.34833984375001,31.292919921874997],[34.350195312500006,31.362744140624997],[34.52558593750001,31.525634765625],[34.47734375000002,31.584863281249994],[34.483984375,31.59228515625],[34.67841796875001,31.895703125],[35.10859375000001,33.08369140625],[35.411230468750006,33.07568359375],[35.869140625,33.43173828125],[35.91347656250002,32.94960937499999],[35.78730468750001,32.734912109374996]]]},"properties":{"name":"Israel","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[15.576562500000051,38.220312500000034],[15.099511718750023,37.45859375],[15.295703125000017,37.05517578124997],[15.112597656250017,36.687841796875006],[14.501855468750023,36.798681640625034],[14.142968750000023,37.103662109374994],[13.90546875000004,37.10063476562502],[13.169921875000028,37.47929687499996],[12.640234375000034,37.594335937500034],[12.435546874999972,37.819775390624955],[12.734375,38.18305664062498],[12.902734375000023,38.03486328124998],[13.291113281250034,38.19145507812502],[13.788867187499989,37.981201171875],[15.11875,38.15273437500002],[15.498730468750011,38.290869140625006],[15.576562500000051,38.220312500000034]]],[[[8.478906250000023,39.067529296874966],[8.421484375000034,38.968652343749994],[8.366796875,39.115917968749955],[8.478906250000023,39.067529296874966]]],[[[8.28603515625008,41.03984375],[8.205664062500034,40.99746093750005],[8.320214843750023,41.121875],[8.28603515625008,41.03984375]]],[[[9.632031250000011,40.88203124999998],[9.805273437500063,40.499560546875045],[9.642968750000023,40.268408203125006],[9.5625,39.16601562500006],[9.056347656250068,39.23916015625002],[8.966601562500074,38.963720703125034],[8.648535156250034,38.92656250000002],[8.418164062500068,39.205712890624966],[8.547753906250023,39.83920898437506],[8.4078125,39.91723632812497],[8.471289062500063,40.29267578124998],[8.189941406250028,40.651611328125],[8.22421875,40.91333007812503],[8.571875,40.85019531250006],[9.228417968750023,41.257080078125],[9.615332031249977,41.01728515624998],[9.632031250000011,40.88203124999998]]],[[[10.395117187500034,42.85815429687503],[10.419335937499994,42.71318359374999],[10.13125,42.742041015625006],[10.395117187500034,42.85815429687503]]],[[[13.420996093750006,46.212304687499994],[13.63251953125004,46.17705078125002],[13.634960937499983,46.15776367187499],[13.61660156250008,46.133105468750045],[13.54804687500004,46.08911132812503],[13.486425781250034,46.03955078124997],[13.480273437500017,46.00922851562501],[13.487695312500023,45.987109375000045],[13.509179687500051,45.973779296874994],[13.6005859375,45.97978515624996],[13.663476562500023,45.7919921875],[13.831152343750006,45.680419921875],[13.719824218750063,45.58759765625001],[13.628320312500051,45.77094726562498],[13.206347656250074,45.771386718749966],[12.27431640625008,45.44604492187503],[12.225683593750034,45.24150390625002],[12.523437500000028,44.96796874999998],[12.248339843750045,44.72250976562498],[12.396289062500074,44.223876953125],[13.56416015625004,43.57128906250003],[14.010449218750011,42.68955078125006],[14.54072265625004,42.24428710937502],[15.16875,41.93403320312498],[16.164648437500034,41.89619140624998],[15.900488281250034,41.51206054687498],[17.954980468749994,40.65517578125002],[18.460644531249983,40.221044921875034],[18.34375,39.82138671874998],[18.077929687500017,39.93696289062498],[17.865039062500074,40.28017578125002],[17.395800781250045,40.34023437499999],[17.179980468750045,40.50278320312498],[16.92822265625,40.45805664062502],[16.521875,39.74755859375003],[17.114550781250017,39.38061523437497],[17.174609375000017,38.998095703125045],[16.61669921875003,38.800146484375034],[16.54560546875001,38.40908203125002],[16.05683593750001,37.941845703124955],[15.72451171875008,37.93911132812502],[15.645800781250017,38.034228515625045],[15.87890625,38.61391601562502],[16.19677734375,38.759228515624955],[16.20996093750003,38.94111328124998],[15.692773437499994,39.99018554687501],[14.95087890625004,40.23901367187497],[14.94765625000008,40.469335937500006],[14.765722656250063,40.66840820312498],[14.339941406250006,40.59882812500001],[14.460546875000063,40.72871093750001],[14.04433593750008,40.81225585937506],[13.733398437500057,41.23564453124999],[13.088671875000074,41.243847656249955],[12.630859374999972,41.469677734374955],[11.637304687500063,42.287548828124955],[11.141210937499977,42.38989257812503],[11.167773437500074,42.53515625000006],[10.708398437500023,42.93632812499999],[10.514843750000011,42.96752929687503],[10.188085937500063,43.947509765625],[8.76582031250004,44.42231445312501],[8.004980468750006,43.87675781249999],[7.4931640625,43.767138671875045],[7.637207031250057,44.16484375],[7.318554687500068,44.13798828125002],[6.900195312499989,44.33574218749996],[6.99267578125,44.82729492187502],[6.634765625000028,45.06816406249996],[7.07832031250004,45.23994140624998],[7.146386718750051,45.381738281249994],[6.790917968750023,45.740869140624966],[7.021093750000034,45.92578124999997],[7.055761718749977,45.90380859375003],[7.129003906249977,45.88041992187499],[7.327929687500017,45.912353515625],[7.9931640625,46.01591796874996],[8.081542968750057,46.25600585937502],[8.231933593750057,46.341210937499966],[8.29853515625004,46.403417968750034],[8.370703125,46.44511718750002],[8.458398437500023,46.24589843750002],[8.818554687500011,46.0771484375],[8.826757812500006,46.06103515625],[8.77802734375004,45.996191406250034],[8.953710937500034,45.83002929687501],[9.023730468750074,45.845703125],[9.203417968750017,46.21923828125],[9.304394531250068,46.49555664062498],[9.399316406250023,46.480664062499955],[9.427636718750023,46.48232421875002],[9.528710937500023,46.306201171875045],[9.57958984375,46.29609375000001],[9.639453125000017,46.29589843749997],[9.78779296875004,46.34604492187498],[9.884472656250011,46.36777343750006],[9.939257812500074,46.36181640625],[10.041015625000028,46.23808593750002],[10.08056640625,46.22797851562501],[10.128320312500051,46.238232421874955],[10.109667968750074,46.36284179687502],[10.081933593750023,46.420751953125006],[10.045605468750068,46.44790039062505],[10.038281250000011,46.483203125000045],[10.061230468750068,46.54677734375002],[10.087011718750063,46.59990234375002],[10.1375,46.614355468750034],[10.195507812500068,46.62109374999997],[10.4306640625,46.55004882812497],[10.409352678571473,46.6092047991071],[10.39794921875,46.66503906250006],[10.406054687500045,46.73486328124997],[10.452832031249983,46.86494140625001],[10.47939453125008,46.85512695312505],[10.579785156250011,46.85371093750001],[10.689257812500017,46.846386718749955],[10.759765625,46.79331054687498],[10.828906250000045,46.775244140625034],[10.927343750000034,46.76948242187501],[10.993261718750034,46.77700195312502],[11.02509765625004,46.796972656250006],[11.063476562500057,46.85913085937497],[11.133886718750006,46.93618164062505],[11.244433593750045,46.975683593750006],[11.433203125000063,46.983056640624994],[11.527539062500011,46.99741210937498],[11.775683593750017,46.986083984375],[12.169433593750028,47.082128906250006],[12.19716796875008,47.075],[12.201269531250034,47.060888671875034],[12.165527343750028,47.028173828125034],[12.130761718750051,46.98476562499999],[12.154101562500017,46.93525390625004],[12.267968750000023,46.83588867187504],[12.330078125,46.75981445312499],[12.388281250000034,46.70263671874997],[12.479199218749983,46.672509765624966],[13.16875,46.572656249999966],[13.3515625,46.55791015624999],[13.490039062500045,46.55556640625002],[13.7,46.52026367187503],[13.679687500000057,46.46289062499997],[13.63710937500008,46.44853515624999],[13.563281250000045,46.41508789062502],[13.399511718749977,46.31752929687502],[13.420996093750006,46.212304687499994]]]]},"properties":{"name":"Italy","childNum":6}},{"geometry":{"type":"Polygon","coordinates":[[[-77.261474609375,18.45742187499999],[-76.349853515625,18.15185546875],[-76.21079101562499,17.913525390624997],[-76.524609375,17.8662109375],[-76.85322265625,17.97373046874999],[-76.94414062499999,17.848779296874994],[-77.11948242187499,17.880078125],[-77.20498046875,17.71494140624999],[-77.36142578124999,17.833691406249997],[-77.76816406249999,17.877392578124997],[-78.04448242187499,18.173828125],[-78.339501953125,18.28720703124999],[-78.21669921875,18.44809570312499],[-77.8734375,18.522216796875],[-77.261474609375,18.45742187499999]]]},"properties":{"name":"Jamaica","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-2.018652343749977,49.23125],[-2.23583984375,49.1763671875],[-2.220507812499989,49.266357421875],[-2.018652343749977,49.23125]]]},"properties":{"name":"Jersey","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[39.14541015625002,32.12451171875],[38.9970703125,32.007470703124994],[38.96230468750002,31.994921875],[38.37548828125,31.847460937499996],[38.111425781250006,31.781152343749994],[37.49335937500001,31.625878906249994],[37.215625,31.556103515624997],[36.95859375,31.491503906249996],[37.980078125,30.5],[37.862890625,30.442626953125],[37.66972656250002,30.34814453125],[37.64990234375,30.330957031249994],[37.63359375000002,30.31328125],[37.55361328125002,30.144580078124996],[37.49072265625,30.01171875],[37.46923828125,29.995068359374997],[36.75527343750002,29.866015625],[36.70390625000002,29.831640625],[36.591796875,29.66611328125],[36.47607421875,29.4951171875],[36.2828125,29.355371093749994],[36.068457031250006,29.200537109375],[34.95078125,29.353515625],[34.97343750000002,29.555029296875],[35.45058593750002,31.479296875],[35.57207031250002,32.237890625],[35.55146484375001,32.3955078125],[35.56904296875001,32.619873046875],[35.572851562500006,32.640869140625],[35.78730468750001,32.734912109374996],[36.3720703125,32.3869140625],[36.818359375,32.317285156249994],[38.773535156250006,33.372216796874994],[39.04140625000002,32.3056640625],[39.24746093750002,32.350976562499994],[39.29277343750002,32.24384765625],[39.14541015625002,32.12451171875]]]},"properties":{"name":"Jordan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[123.88867187499997,24.280126953124977],[123.67978515625012,24.317773437500023],[123.77148437499997,24.41445312499999],[123.93486328125002,24.362011718749983],[123.88867187499997,24.280126953124977]]],[[[124.29316406250004,24.515917968750074],[124.13574218750003,24.347607421874983],[124.08476562500002,24.435839843750017],[124.30195312500004,24.58710937500001],[124.29316406250004,24.515917968750074]]],[[[125.44414062500002,24.7431640625],[125.26894531250005,24.732519531250063],[125.28359375,24.871923828125034],[125.44414062500002,24.7431640625]]],[[[128.25878906249997,26.65278320312501],[127.86708984375,26.442480468749977],[127.80361328125005,26.152539062499983],[127.653125,26.0947265625],[127.90722656250003,26.69360351562497],[128.09765624999997,26.66777343749996],[128.25488281249997,26.88188476562496],[128.25878906249997,26.65278320312501]]],[[[128.99814453125012,27.720800781250006],[128.90000000000012,27.727783203125],[128.9076171875,27.897998046875045],[128.99814453125012,27.720800781250006]]],[[[129.45253906250005,28.20898437499997],[129.3664062500001,28.127734375000045],[129.16464843750012,28.24975585937503],[129.68955078125012,28.517480468750023],[129.45253906250005,28.20898437499997]]],[[[130.6227539062501,30.262988281250017],[130.44560546875002,30.264697265625017],[130.38808593750005,30.38818359375003],[130.49716796875006,30.465527343749983],[130.64355468749997,30.388964843750017],[130.6227539062501,30.262988281250017]]],[[[130.95976562500007,30.39692382812504],[130.87031250000004,30.444238281249994],[131.06035156250007,30.828466796875006],[130.95976562500007,30.39692382812504]]],[[[130.38105468750004,32.42373046875002],[130.24169921874997,32.462792968749994],[130.46142578124997,32.515722656250034],[130.38105468750004,32.42373046875002]]],[[[130.08251953124997,32.22968750000001],[129.9601562500001,32.24375],[130.00976562499997,32.521630859374994],[130.16777343750002,32.54121093749998],[130.19951171875002,32.34057617187506],[130.08251953124997,32.22968750000001]]],[[[128.66533203125002,32.783886718749955],[128.89453124999997,32.65214843750002],[128.69296875000012,32.60473632812506],[128.66533203125002,32.783886718749955]]],[[[129.07695312500002,32.84028320312498],[128.99726562500004,32.95185546874998],[129.10976562500005,33.13256835937503],[129.18193359375002,32.99311523437504],[129.07695312500002,32.84028320312498]]],[[[129.49179687500006,33.22304687499999],[129.37041015625002,33.176025390625],[129.56992187500006,33.36103515625004],[129.49179687500006,33.22304687499999]]],[[[129.79570312500007,33.74882812499999],[129.67480468749997,33.73969726562498],[129.71728515624997,33.8583984375],[129.79570312500007,33.74882812499999]]],[[[131.17460937500007,33.602587890625045],[131.69628906250003,33.60283203124999],[131.53740234375007,33.274072265624994],[131.89658203125006,33.25458984375001],[131.8478515625001,33.118066406249994],[132.0021484375001,32.882373046875045],[131.6603515625001,32.465625],[131.33720703125007,31.4046875],[131.07080078124997,31.436865234374977],[131.09843750000002,31.256152343750017],[130.68574218750004,31.01513671875003],[130.77626953125,31.70629882812497],[130.65507812500002,31.71840820312505],[130.5560546875,31.563085937500034],[130.58876953125,31.178515625000017],[130.20068359374997,31.291894531250023],[130.14726562500002,31.40849609374996],[130.2941406250001,31.45068359375003],[130.3219726562501,31.601464843750023],[130.18789062500005,31.768847656250017],[130.19443359375012,32.090771484374955],[130.64052734375005,32.61923828124998],[130.49785156250002,32.65693359375001],[130.547265625,32.83159179687499],[130.2375,33.177636718749966],[130.12685546875005,33.10483398437506],[130.175,32.851318359375],[130.32646484375002,32.852636718750006],[130.34042968750012,32.70185546875004],[130.05410156250005,32.770800781250045],[129.76855468749997,32.57099609375001],[129.82675781250006,32.72534179687503],[129.67910156250005,33.059960937499966],[129.99169921875003,32.85156249999997],[129.58007812500003,33.23627929687501],[129.61015625000002,33.34365234375005],[129.844140625,33.32177734375003],[129.82568359374997,33.43701171875006],[130.36503906250007,33.634472656249955],[130.4837890625,33.834619140624966],[130.715625,33.92778320312502],[130.953125,33.87202148437504],[131.17460937500007,33.602587890625045]]],[[[132.266015625,33.945166015625006],[132.44492187500006,33.91318359374998],[132.20878906250007,33.87285156250002],[132.266015625,33.945166015625006]]],[[[129.27949218750004,34.123388671875006],[129.18642578125,34.14501953125006],[129.21484374999997,34.320654296875034],[129.3371093750001,34.284765625],[129.27949218750004,34.123388671875006]]],[[[134.35742187500003,34.25634765625],[134.6375,34.22661132812499],[134.73886718750012,33.82050781250001],[134.37705078125012,33.60839843749997],[134.18164062500003,33.24721679687502],[133.95869140625004,33.44833984375006],[133.63203125000004,33.51098632812503],[133.28593750000007,33.35996093749998],[132.97724609375004,32.84199218749998],[132.80429687500006,32.75200195312502],[132.6417968750001,32.76245117187503],[132.70898437500003,32.90249023437505],[132.49511718749997,32.91660156249998],[132.41279296875004,33.43046875],[132.0326171875,33.339990234374994],[132.64306640624997,33.68994140624997],[132.93515625000006,34.09531250000006],[133.19306640625004,33.93320312499998],[133.58203124999997,34.01713867187502],[133.60263671875006,34.24384765625001],[133.94833984375006,34.34804687500002],[134.35742187500003,34.25634765625]]],[[[134.35185546875002,34.48364257812503],[134.25185546875,34.42304687500004],[134.18212890625003,34.51923828124998],[134.35185546875002,34.48364257812503]]],[[[134.9328125000001,34.28813476562499],[134.82441406250004,34.202929687500045],[134.66787109375005,34.294140624999955],[135.00468750000002,34.54404296874998],[134.9328125000001,34.28813476562499]]],[[[129.38564453125,34.35366210937502],[129.26669921875012,34.37045898437506],[129.45107421875005,34.68657226562499],[129.38564453125,34.35366210937502]]],[[[133.37050781250005,36.203857421875],[133.23925781249997,36.178759765625045],[133.20615234375006,36.293408203124955],[133.29570312500002,36.34013671874996],[133.37050781250005,36.203857421875]]],[[[138.34404296875007,37.822119140625006],[138.22519531250006,37.82939453124996],[138.25,38.078466796875006],[138.50361328125004,38.31591796875006],[138.45361328124997,38.07568359375006],[138.57519531249997,38.065527343750034],[138.34404296875007,37.822119140625006]]],[[[141.22929687500007,41.37265625],[141.45546875000005,41.404736328124955],[141.43046875000002,40.72333984374998],[141.7970703125001,40.29116210937502],[141.97695312500005,39.428808593750034],[141.90078125,39.111328125],[141.5462890625,38.762841796874966],[141.4674804687501,38.404150390625006],[141.10839843750003,38.33793945312502],[140.9621093750001,38.148876953124955],[141.00166015625004,37.11464843750002],[140.57353515625007,36.23134765625002],[140.87402343749997,35.72495117187506],[140.457421875,35.51025390625],[140.35468750000004,35.18144531249999],[139.8439453125001,34.914892578125034],[139.82646484375002,35.29667968750002],[140.096875,35.58515624999998],[139.83476562500002,35.658056640625006],[139.65000000000012,35.40913085937501],[139.675,35.149267578125006],[139.47441406250002,35.298535156249955],[139.24941406250005,35.27802734375004],[139.08603515625006,34.83916015624999],[138.8375,34.619238281250034],[138.80273437499997,34.97480468749998],[138.90361328125002,35.02524414062506],[138.71962890625,35.12407226562502],[138.18906250000012,34.596337890624994],[137.543359375,34.66420898437505],[137.06171875000004,34.58281249999999],[137.27519531250002,34.77250976562499],[136.96328125000005,34.83491210937501],[136.87128906250004,34.733105468749955],[136.89707031250006,35.03554687500002],[136.80419921874997,35.05029296875],[136.53300781250007,34.678369140624994],[136.8802734375,34.43359375000006],[136.8537109375001,34.324072265625034],[136.32988281250007,34.17685546875006],[135.91621093750004,33.561718749999955],[135.69531250000003,33.48696289062502],[135.4528320312501,33.55336914062505],[135.12792968749997,34.006982421874994],[135.10009765624997,34.288378906250045],[135.41591796875,34.61748046875002],[134.74003906250007,34.765234375],[134.246875,34.71386718750003],[133.96826171874997,34.52729492187504],[133.14238281250002,34.30244140624998],[132.65654296875007,34.24609375000003],[132.31259765625006,34.32495117187503],[132.14648437499997,33.83876953125002],[131.74052734375007,34.05205078125002],[130.91884765625,33.97573242187502],[130.88925781250012,34.261816406250034],[131.00419921875007,34.39257812500003],[131.35439453125,34.41318359375006],[132.92294921875006,35.511279296875045],[133.98125,35.50722656250002],[135.17431640625003,35.74707031250003],[135.32695312500002,35.52553710937502],[135.68027343750006,35.503125],[135.903125,35.60688476562498],[136.09531250000006,35.767626953125045],[136.06748046875006,36.11684570312505],[136.69814453125005,36.742041015625034],[136.84345703125004,37.38212890624999],[137.32265625,37.52207031249998],[136.89990234375003,37.11767578125],[137.01669921875006,36.83720703124999],[137.24628906250004,36.753173828125],[137.5140625,36.95156250000002],[138.31992187500012,37.21840820312502],[138.88505859375007,37.84394531250001],[139.36386718750006,38.09902343750002],[139.80195312500004,38.881591796875],[140.06474609375002,39.624414062499994],[139.99472656250006,39.855078125],[139.74150390625002,39.92084960937498],[140.01113281250005,40.26035156250006],[139.92285156250003,40.59843750000002],[140.28125,40.84609375000002],[140.3444335937501,41.203320312499955],[140.62763671875004,41.195410156250034],[140.74863281250012,40.830322265625],[140.93603515625003,40.940771484375034],[141.1185546875,40.88227539062501],[141.24423828125006,41.20561523437499],[140.80058593750002,41.138818359374966],[140.80185546875012,41.253662109375],[140.9369140625,41.50556640624998],[141.22929687500007,41.37265625]]],[[[139.48125,42.08100585937498],[139.43134765625004,42.19956054687498],[139.55839843750002,42.235205078125034],[139.48125,42.08100585937498]]],[[[141.29541015625003,45.11933593750001],[141.14531250000002,45.153906250000034],[141.19375,45.24785156249999],[141.29541015625003,45.11933593750001]]],[[[141.07275390624997,45.33286132812498],[141.03398437500007,45.26933593750002],[140.97167968749997,45.465478515624994],[141.07275390624997,45.33286132812498]]],[[[143.82431640625012,44.11699218749999],[144.71523437500005,43.92797851562503],[145.36953125000005,44.32739257812506],[145.13964843750003,43.6625],[145.34082031249997,43.30253906249999],[145.83300781249997,43.38593750000001],[144.92138671874997,43.00092773437498],[143.96933593750006,42.88139648437499],[143.42949218750002,42.41889648437498],[143.2365234375001,42.000195312499955],[141.85136718750007,42.57905273437501],[141.40664062500005,42.54692382812496],[140.98613281250002,42.34213867187498],[140.70976562500002,42.555615234374955],[140.48046875000003,42.559375],[140.32666015625003,42.29335937499999],[141.15097656250012,41.80507812499999],[140.99951171874997,41.73740234375006],[140.65986328125004,41.815576171874994],[140.3849609375001,41.51928710937503],[140.08515625000004,41.43408203125],[139.99531250000004,41.57641601562503],[140.10839843749997,41.912939453125034],[139.83544921874997,42.278076171875],[139.86015625000002,42.58173828125004],[140.43222656250012,42.95410156250006],[140.39238281250002,43.303125],[141.13818359374997,43.17993164062506],[141.37412109375006,43.279638671875006],[141.7609375000001,44.482519531250034],[141.58300781250003,45.15595703125001],[141.66796874999997,45.401269531249966],[141.93769531250004,45.509521484375],[142.88476562499997,44.670117187499955],[143.82431640625012,44.11699218749999]]]]},"properties":{"name":"Japan","childNum":28}},{"geometry":{"type":"Polygon","coordinates":[[[77.04863281249999,35.109912109374996],[76.927734375,35.346630859375],[76.88222656250002,35.4357421875],[76.81279296874999,35.571826171874996],[76.76689453124999,35.66171875],[76.87890625,35.61328125],[77.09003906250001,35.552050781249996],[77.29482421875002,35.508154296875],[77.44648437500001,35.4755859375],[77.57255859374999,35.471826171874994],[77.72402343750002,35.48056640625],[77.79941406250003,35.495898437499996],[77.42343750000003,35.302587890625],[77.16855468750003,35.171533203124994],[77.04863281249999,35.109912109374996]]]},"properties":{"name":"Siachen Glacier","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[50.184472656249994,44.854638671874994],[49.99511718750003,44.93696289062498],[50.10986328124997,45.08193359375002],[50.038867187500074,44.949121093749966],[50.184472656249994,44.854638671874994]]],[[[87.32285156250012,49.085791015625006],[86.8083007812501,49.04970703125002],[86.54941406250012,48.52861328125002],[85.7494140625,48.38505859374999],[85.52597656250006,47.915625],[85.65664062500005,47.254638671875],[85.484765625,47.06352539062496],[84.78613281249997,46.83071289062505],[84.66660156250006,46.97236328125004],[84.016015625,46.97050781250002],[83.02949218750004,47.18593750000002],[82.31523437500002,45.59492187499998],[82.61162109375007,45.424267578124955],[82.52148437500003,45.12548828125],[82.26660156249997,45.21909179687498],[81.94492187500006,45.16083984375001],[81.69199218750012,45.34936523437497],[80.05917968750012,45.006445312500006],[79.871875,44.88378906249997],[80.48154296875006,44.71464843749999],[80.35527343750002,44.09726562500006],[80.78574218750006,43.16157226562504],[80.39023437500006,43.043115234374966],[80.53896484375005,42.873486328124955],[80.20224609375012,42.73447265624998],[80.209375,42.190039062500006],[80.07128906249997,42.302978515625],[79.92109375000004,42.41313476562496],[79.49013671875,42.45756835937496],[79.42822265624997,42.483496093750006],[79.20302734375005,42.66601562499997],[79.16484375000007,42.759033203125],[79.1266601562501,42.775732421875034],[76.98808593750007,42.97358398437501],[76.64648437500003,42.928808593750034],[76.50917968750005,42.91889648437498],[75.9322265625,42.92851562499999],[75.84033203125003,42.9375],[75.78955078124997,42.93291015624999],[75.68173828125,42.83046875],[75.04765625000007,42.904394531250034],[74.20908203125006,43.24038085937502],[73.88603515625002,43.132568359375],[73.55625,43.002783203125006],[73.45019531249997,42.703027343749966],[73.421875,42.59350585937503],[73.49296875000007,42.409033203125034],[73.41162109375003,42.41977539062498],[73.316015625,42.46699218750001],[73.2829101562501,42.50410156250004],[72.85507812500006,42.561132812500006],[72.75292968750003,42.63789062500001],[72.54316406250004,42.67773437500006],[72.27578125,42.757666015625006],[71.76054687500002,42.82148437500004],[71.5142578125,42.766943359375006],[71.42207031250004,42.78315429687504],[71.25664062500002,42.733544921874966],[70.89287109375007,42.339990234374994],[70.94677734374997,42.24868164062505],[69.15361328125002,41.42524414062498],[68.58408203125,40.876269531250045],[68.57265625,40.62265624999998],[68.29189453125,40.656103515625034],[68.04765625000007,40.80927734374998],[68.11308593750007,41.02861328124999],[67.9357421875001,41.19658203125002],[66.70966796875004,41.17915039062501],[66.49863281250006,41.99487304687503],[66.00957031250007,42.00488281250003],[66.1002929687501,42.99082031249998],[65.80302734375002,42.87695312500006],[65.49619140625,43.310546875],[64.9054687500001,43.714697265625006],[64.44316406250007,43.55117187499999],[63.20703125000003,43.62797851562502],[61.99023437500003,43.492138671874955],[61.007910156250006,44.39379882812497],[58.555273437500006,45.55537109375001],[55.97568359375006,44.99492187499996],[55.97744140625005,41.32221679687504],[55.434375,41.296289062499994],[54.85380859375002,41.965185546875006],[54.120996093749994,42.335205078125],[53.0558593750001,42.14775390624999],[52.4938476562501,41.780371093750034],[52.59658203125005,42.760156249999966],[51.898242187500074,42.86962890624997],[51.61601562500002,43.15844726562503],[51.29541015624997,43.17412109375002],[51.30175781249997,43.48237304687501],[50.8307617187501,44.192773437499966],[50.331152343750006,44.32548828125002],[50.25292968749997,44.461523437500006],[50.409472656250074,44.6240234375],[51.543554687500006,44.53100585937506],[51.009375,44.92182617187501],[51.4157226562501,45.35786132812501],[53.20039062500004,45.33198242187498],[52.77382812499999,45.57275390625],[53.13525390625003,46.19165039062497],[53.069433593750006,46.85605468750006],[52.48320312500002,46.99067382812504],[52.13828125,46.82861328124997],[51.178027343750074,47.110156250000045],[49.886328125,46.59565429687504],[49.347460937500074,46.51914062499998],[49.232226562500074,46.33715820312503],[48.54121093750004,46.60561523437502],[48.558398437500074,46.75712890624999],[48.959375,46.77460937499998],[48.16699218750003,47.70878906249996],[47.48193359374997,47.80390624999998],[47.292382812499994,47.74091796875004],[47.06464843750004,48.23247070312499],[46.660937500000074,48.41225585937502],[46.70263671875003,48.80556640625002],[47.031347656250006,49.150292968749994],[46.80205078125002,49.36708984375002],[46.889550781249994,49.69697265625001],[47.42919921874997,50.35795898437502],[47.7057617187501,50.37797851562502],[48.33496093750003,49.858251953125006],[48.7589843750001,49.92832031250006],[48.625097656250006,50.61269531250005],[49.32343750000004,50.851708984374966],[49.49804687500003,51.08359375000006],[50.246875,51.28950195312498],[50.79394531249997,51.729199218749955],[51.16347656250005,51.6474609375],[51.344531250000074,51.47534179687503],[52.21914062499999,51.709375],[52.57119140625005,51.481640624999955],[53.33808593750004,51.48237304687504],[54.139746093750006,51.04077148437503],[54.555273437500006,50.535791015624994],[54.64160156250003,51.011572265625034],[55.68623046875004,50.582861328125006],[56.49140625000004,51.01953124999997],[57.01171874999997,51.06518554687503],[57.44218750000002,50.88886718749998],[57.83886718750003,51.091650390625006],[58.359179687500074,51.063818359375034],[58.88369140625005,50.694433593750006],[59.4523437500001,50.62041015625002],[59.523046875,50.492871093749955],[59.812402343749994,50.58203125],[60.05859374999997,50.850292968749955],[60.42480468749997,50.67915039062498],[60.94228515625005,50.69550781250004],[61.38945312500002,50.86103515625001],[61.55468750000003,51.32460937500005],[60.464746093749994,51.651171875000045],[60.03027343749997,51.93325195312505],[60.99453125000005,52.33686523437504],[60.77441406249997,52.67578124999997],[61.047460937500006,52.97246093750002],[62.08271484375004,53.00541992187499],[61.65986328125004,53.22846679687504],[61.19921874999997,53.28715820312502],[61.22890625,53.445898437500006],[61.53496093750002,53.52329101562506],[60.97949218749997,53.62172851562505],[61.231054687500006,54.01948242187498],[61.92871093750003,53.94648437500004],[64.46123046875002,54.38417968750002],[65.08837890624997,54.340185546875034],[65.476953125,54.62329101562497],[68.15585937500006,54.97670898437505],[68.20625,55.16093750000002],[68.9772460937501,55.389599609374955],[70.18242187500002,55.162451171875034],[70.73808593750007,55.30517578125],[71.18554687500003,54.59931640624998],[71.09316406250005,54.21220703124999],[72.00449218750006,54.20566406249998],[72.18603515625003,54.32563476562501],[72.44677734375003,53.94184570312498],[72.62226562500004,54.13432617187502],[73.22988281250005,53.957812500000045],[73.71240234375003,54.04238281250002],[73.30566406250003,53.707226562499955],[73.40693359375004,53.44755859374999],[73.85898437500006,53.61972656249998],[74.35156250000003,53.487646484375006],[74.45195312500007,53.64726562500002],[75.22021484374997,53.89379882812506],[75.43720703125004,54.08964843749999],[76.8373046875,54.4423828125],[76.65458984375007,54.14526367187503],[76.42167968750007,54.151513671874966],[76.48476562500005,54.02255859374998],[77.85996093750006,53.269189453124994],[79.98623046875,50.774560546874966],[80.42363281250002,50.94628906249997],[80.44804687500002,51.18334960937503],[80.73525390625,51.29340820312498],[81.12724609375002,51.19106445312502],[81.0714843750001,50.96875],[81.38828125000006,50.95649414062501],[81.46591796875006,50.73984375],[82.49394531250007,50.72758789062499],[82.76083984375012,50.89335937500002],[83.35732421875005,50.99458007812504],[83.94511718750007,50.774658203125],[84.32324218749997,50.239160156249966],[84.9894531250001,50.061425781249994],[85.2326171875001,49.61582031249998],[86.1808593750001,49.49931640624996],[86.67548828125004,49.77729492187501],[86.62646484374997,49.56269531250001],[87.32285156250012,49.085791015625006]]]]},"properties":{"name":"Kazakhstan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[35.325292968750006,5.364892578124994],[35.745019531249994,5.343994140625],[35.80029296874997,5.156933593749983],[35.77929687499997,5.105566406250006],[35.756152343750074,4.950488281250031],[35.76308593750005,4.808007812500051],[36.02197265625003,4.468115234374991],[36.90556640625002,4.411474609374991],[37.15458984375002,4.254541015624994],[37.944921875,3.746728515625023],[38.0861328125001,3.648828124999966],[38.22529296875004,3.61899414062502],[38.45156250000005,3.604833984374977],[38.608007812500006,3.600097656249986],[39.49443359375002,3.45610351562496],[39.65751953125002,3.577832031249983],[39.79033203125002,3.754248046875034],[39.8421875,3.851464843750037],[40.765234375,4.273046875000034],[41.02080078125002,4.057470703124991],[41.22089843750004,3.943554687499969],[41.372460937499994,3.94619140624998],[41.48193359375003,3.96328125],[41.737695312499994,3.979052734375003],[41.88398437500004,3.977734375000011],[41.6134765625001,3.59047851562498],[41.34179687499997,3.20166015625],[40.964453125,2.814648437500026],[40.9787109375001,-0.870312500000011],[41.249804687500074,-1.220507812499946],[41.4269531250001,-1.449511718749974],[41.521875,-1.572265625000028],[41.53271484374997,-1.695312499999957],[41.26748046875005,-1.945019531250026],[40.889746093750006,-2.023535156250034],[40.89824218750002,-2.269921874999966],[40.64414062500006,-2.53945312499998],[40.22246093750002,-2.688378906250037],[40.1154296875001,-3.250585937499991],[39.8609375,-3.576757812500006],[39.49091796875004,-4.478417968750023],[39.221777343750006,-4.692382812500014],[37.608203125000074,-3.497070312500028],[37.643847656250074,-3.045410156250028],[33.90322265625005,-1.002050781250034],[33.94316406250002,0.173779296874969],[34.160937500000074,0.605175781250026],[34.4108398437501,0.867285156250034],[34.48173828125002,1.042138671875051],[34.79863281250002,1.24453125],[34.976464843749994,1.719628906250051],[34.97753906249997,1.861914062499991],[34.9640625000001,2.06240234374998],[34.8830078125001,2.417919921875026],[34.90576171875003,2.4796875],[34.44785156250006,3.163476562500037],[34.40722656249997,3.357519531250034],[34.39941406249997,3.412695312500006],[34.44179687499999,3.60625],[34.43769531250004,3.650585937499969],[34.392871093750074,3.691503906250048],[34.26708984375003,3.733154296875],[34.16503906250003,3.812988281250014],[34.18574218750004,3.869775390625037],[34.13203125000004,3.889160156249986],[33.97607421874997,4.220214843750028],[34.176855468750006,4.419091796875037],[34.38017578125002,4.620654296874974],[34.6398437500001,4.875488281250028],[34.878320312499994,5.109570312500026],[35.08447265624997,5.31186523437502],[35.268359375000074,5.492285156250006],[35.325292968750006,5.364892578124994]]]},"properties":{"name":"Kenya","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[72.63994140625002,39.385986328125],[72.22998046875,39.20751953125],[72.14736328125002,39.2607421875],[72.08417968750001,39.31064453125],[72.04277343750002,39.3521484375],[71.77861328125002,39.277978515624994],[71.73222656250002,39.422998046874994],[71.50332031250002,39.478808593749996],[71.51738281250002,39.553857421874994],[71.50302734375,39.582177734374994],[71.4703125,39.603662109374994],[70.79931640625,39.3947265625],[70.50117187500001,39.587353515625],[69.29765625000002,39.524804687499994],[69.2447265625,39.827099609375],[69.27880859375,39.917773437499996],[69.3072265625,39.968554687499996],[69.36542968750001,39.947070312499996],[69.43193359375002,39.909765625],[69.47626953125001,39.919726562499996],[69.47099609375002,39.990625],[69.46875,40.020751953125],[69.966796875,40.20224609375],[70.59921875,39.974511718749994],[70.990625,40.2548828125],[71.3046875,40.286914062499996],[71.69248046875,40.15234375],[72.13125,40.438623046874994],[72.3892578125,40.427392578124994],[72.40205078125001,40.578076171875],[72.6041015625,40.525439453124996],[73.13212890625002,40.82851562499999],[72.65830078125,40.869921875],[72.36406250000002,41.04345703125],[72.294921875,41.039941406249994],[72.21308593750001,41.0142578125],[72.18730468750002,41.025927734374996],[72.18095703125002,41.118457031249996],[72.16425781250001,41.173730468749994],[72.11542968750001,41.186572265624996],[72.05244140625001,41.16474609375],[71.95849609375,41.187060546874996],[71.87861328125001,41.19501953125],[71.8580078125,41.311376953125],[71.79248046875,41.413134765624996],[71.75771484375002,41.428027343749996],[71.70068359375,41.454003906249994],[71.66494140625002,41.5412109375],[71.6375,41.5341796875],[71.60224609375001,41.503271484375],[71.60625,41.367431640625],[71.54560546875001,41.308056640625],[71.5,41.307470703125],[71.4208984375,41.34189453125],[71.40839843750001,41.136035156249996],[71.39306640625,41.123388671875],[71.11074218750002,41.152636718749996],[70.86044921875,41.224902343749996],[70.734375,41.400537109374994],[70.18095703125002,41.571435546874994],[70.85664062500001,42.030810546874996],[71.0322265625,42.077783203124994],[71.228515625,42.162890625],[71.23232421875002,42.186279296875],[71.21269531250002,42.206445312499994],[71.12998046875,42.25],[71.03603515625002,42.28466796875],[70.97900390625,42.266552734375],[70.94677734375,42.248681640624994],[70.89287109375002,42.339990234374994],[71.25664062500002,42.733544921874994],[71.42207031250001,42.783154296875],[71.5142578125,42.766943359375],[71.76054687500002,42.821484375],[72.16181640625001,42.760693359375],[72.27578125000002,42.757666015625],[72.54316406250001,42.677734375],[72.7529296875,42.637890625],[72.855078125,42.5611328125],[73.28291015625001,42.5041015625],[73.316015625,42.4669921875],[73.41162109375,42.419775390625],[73.49296875000002,42.409033203125],[73.421875,42.593505859375],[73.4501953125,42.703027343749994],[73.55625,43.002783203125],[73.88603515625002,43.132568359375],[74.20908203125,43.240380859374994],[75.04765625000002,42.90439453125],[75.68173828125,42.83046875],[75.78955078125,42.932910156249996],[75.84033203125,42.9375],[75.9322265625,42.928515625],[76.50917968750002,42.918896484375],[76.646484375,42.92880859375],[76.98808593749999,42.973583984375],[79.12666015625001,42.775732421875],[79.20302734375002,42.666015625],[79.29550781250003,42.604833984375],[79.36777343750003,42.547216796875],[79.42822265625,42.48349609375],[79.92109375000001,42.413134765624996],[80.0712890625,42.302978515625],[80.209375,42.1900390625],[80.24619140625003,42.059814453125],[80.23515624999999,42.04345703125],[80.21621093750002,42.032421875],[79.90966796875,42.014990234375],[79.84042968750003,41.995751953124994],[79.76611328125,41.898876953125],[78.74257812500002,41.56005859375],[78.54316406250001,41.4595703125],[78.44287109375,41.417529296874996],[78.36240234375003,41.371630859374996],[78.34628906250003,41.2814453125],[78.12343750000002,41.075634765625],[77.95644531250002,41.050683593749994],[77.81523437499999,41.055615234375],[77.71933593750003,41.024316406249994],[77.58173828125001,40.9927734375],[76.98662109374999,41.03916015625],[76.90771484375,41.024169921875],[76.82402343749999,40.982324218749994],[76.70839843750002,40.818115234375],[76.6611328125,40.779638671875],[76.63984375000001,40.742236328124996],[76.62216796875003,40.662353515625],[76.57792968749999,40.577880859375],[76.48017578125001,40.449511718749996],[76.39638671875002,40.389794921874994],[76.31855468750001,40.35224609375],[76.25830078125,40.43076171875],[75.87197265625002,40.30322265625],[75.67714843750002,40.305810546874994],[75.55556640625002,40.6251953125],[75.52080078125002,40.6275390625],[75.24101562500002,40.480273437499996],[75.111328125,40.4541015625],[75.0044921875,40.449511718749996],[74.865625,40.493505859375],[74.80126953125,40.428515625],[74.83046875000002,40.32851562499999],[74.41191406250002,40.13720703125],[74.24267578125,40.092041015625],[74.08515625000001,40.07431640625],[73.99160156250002,40.043115234374994],[73.93876953125002,39.978808593749996],[73.88457031250002,39.8779296875],[73.85625,39.828662109374996],[73.83535156250002,39.800146484375],[73.83974609375002,39.762841796874994],[73.88251953125001,39.71455078125],[73.9146484375,39.606494140624996],[73.90712890625002,39.57851562499999],[73.87275390625001,39.53330078125],[73.82294921875001,39.48896484375],[73.71572265625002,39.462255859375],[73.63164062500002,39.448876953124994],[73.47041015625001,39.460595703124994],[73.38740234375001,39.442724609375],[73.33613281250001,39.412353515625],[73.2349609375,39.374560546874996],[73.10927734375002,39.3619140625],[72.63994140625002,39.385986328125]],[[70.66416015625,39.85546875],[70.56708984375001,39.866601562499994],[70.49775390625001,39.882421875],[70.48281250000002,39.882714843749994],[70.4892578125,39.863037109375],[70.5595703125,39.790917968749994],[70.61210937500002,39.786767578124994],[70.70166015625,39.82529296875],[70.66416015625,39.85546875]],[[71.20615234375,39.892578125],[71.22871093750001,40.048144531249996],[71.08037109375002,40.079882812499996],[71.02412109375001,40.149169921875],[71.00546875,40.152294921875],[70.96064453125001,40.08798828125],[71.04482421875002,39.992529296875],[71.04365234375001,39.976318359375],[71.01171875,39.8951171875],[71.06425781250002,39.884912109374994],[71.15625,39.883447265624994],[71.20615234375,39.892578125]]]},"properties":{"name":"Kyrgyzstan","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[104.42636718750006,10.411230468749991],[103.87050781250005,10.655126953125034],[103.58710937500004,10.552197265625026],[103.54042968750005,10.668701171875043],[103.721875,10.890136718750043],[103.5324218750001,11.146679687499997],[103.35361328125006,10.921582031250054],[103.15283203124997,10.913720703125051],[103.12548828124997,11.460644531250011],[102.9486328125,11.773486328124974],[102.93388671875002,11.706689453125037],[102.73662109375007,12.089794921875011],[102.75566406250002,12.42626953125],[102.49960937500012,12.669970703125003],[102.33632812500005,13.560302734375014],[102.546875,13.585693359375043],[102.90927734375006,14.136718750000028],[103.19941406250004,14.332617187499977],[104.77900390625004,14.427832031250006],[105.07412109375005,14.227441406250037],[105.12597656250003,14.280957031250011],[105.16914062500004,14.336083984374966],[105.1833007812501,14.346240234374989],[105.18554687500003,14.319091796874972],[105.20703125000003,14.259375],[105.24570312500006,14.200537109374977],[105.35019531250006,14.109570312500011],[105.53154296875007,14.156152343749994],[105.73974609375003,14.084960937500057],[105.83144531250005,13.976611328125003],[105.9044921875001,13.924511718750054],[106.06679687500005,13.921191406250003],[106.12470703125004,14.049121093750031],[106.09667968749997,14.127099609375023],[106.00410156250004,14.262890624999983],[105.97890625,14.343017578125043],[106.00839843750012,14.357177734375],[106.1652343750001,14.372363281249989],[106.19072265625007,14.388134765624997],[106.22539062500002,14.476220703125009],[106.26796875,14.466210937500009],[106.35498046875003,14.454785156249997],[106.44697265625004,14.515039062500009],[106.50146484375003,14.578222656250006],[106.53115234375005,14.549414062499991],[106.5636718750001,14.505078125000026],[106.59921875000006,14.479394531250037],[106.66542968750005,14.441308593749994],[106.73818359375005,14.387744140625017],[106.78349609375002,14.335107421875037],[106.81992187500006,14.314697265625057],[106.91318359375006,14.329394531250031],[106.93808593750006,14.327343750000054],[106.99218750000003,14.391015624999966],[107.03017578125,14.425683593750009],[107.06240234375,14.415771484375043],[107.109375,14.416699218750054],[107.29267578125004,14.592382812500048],[107.37988281250003,14.555322265625051],[107.41474609375004,14.56289062499999],[107.51943359375005,14.705078125],[107.3314453125,14.126611328125009],[107.60546874999997,13.437792968750017],[107.47539062500002,13.030371093749963],[107.50644531250006,12.364550781250031],[107.39335937500002,12.260498046874972],[107.21210937500004,12.30400390624996],[106.70009765625,11.979296874999974],[106.41386718750002,11.9484375],[106.39921875000007,11.687011718750028],[106.0060546875001,11.758007812500011],[105.85146484375005,11.635009765625],[105.85605468750006,11.294287109375048],[106.16093750000002,11.037109375000057],[106.16396484375005,10.794921875],[105.85332031250007,10.86357421874996],[105.75507812500004,10.989990234375043],[105.40576171875003,10.95161132812504],[105.3146484375001,10.845166015625026],[105.04570312500002,10.911376953125014],[105.04638671874997,10.701660156250014],[104.85058593749997,10.534472656249974],[104.42636718750006,10.411230468749991]]]},"properties":{"name":"Cambodia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-157.34213867187503,1.855566406250034],[-157.17578125,1.73984375],[-157.57895507812498,1.902050781249997],[-157.43583984374993,1.84726562500002],[-157.365185546875,1.94609375],[-157.44189453125003,2.025048828125009],[-157.321875,1.968554687500045],[-157.34213867187503,1.855566406250034]]],[[[-159.3390625,3.923535156249983],[-159.27475585937503,3.796582031250054],[-159.40903320312503,3.87324218750004],[-159.3390625,3.923535156249983]]]]},"properties":{"name":"Kiribati","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[126.32695312500002,33.2236328125],[126.16562500000012,33.31201171875],[126.33769531250002,33.46040039062501],[126.90117187500002,33.51513671874997],[126.87285156250002,33.34116210937498],[126.32695312500002,33.2236328125]]],[[[126.23369140625002,34.370507812499994],[126.12285156250002,34.443945312500034],[126.34384765625012,34.544921875],[126.23369140625002,34.370507812499994]]],[[[126.17197265625006,34.73115234375001],[126.00751953125004,34.86748046874999],[126.07841796875002,34.914843750000045],[126.17197265625006,34.73115234375001]]],[[[128.0658203125,34.80585937500004],[128.05468750000003,34.70805664062502],[127.87343750000005,34.73496093749998],[127.8322265625001,34.87451171875],[128.0658203125,34.80585937500004]]],[[[128.74101562500007,34.798535156249955],[128.64667968750004,34.73686523437502],[128.48925781250003,34.86528320312496],[128.66796875000003,35.0087890625],[128.74101562500007,34.798535156249955]]],[[[126.52070312500004,37.73681640625003],[126.516015625,37.60468750000001],[126.42333984375003,37.62363281250006],[126.41162109374997,37.82265625000002],[126.52070312500004,37.73681640625003]]],[[[128.37460937500012,38.6234375],[129.41826171875002,37.059033203124955],[129.40351562500004,36.052148437499994],[129.57285156250006,36.05053710937503],[129.4191406250001,35.49785156249996],[129.07675781250006,35.12270507812502],[128.5109375000001,35.10097656250002],[128.44394531250012,34.87036132812503],[128.03623046875006,35.02197265625],[127.71484374999997,34.95468749999998],[127.71542968750012,34.72104492187498],[127.40429687499997,34.823095703125006],[127.47910156250012,34.625244140625],[127.324609375,34.463281249999966],[127.17343750000006,34.54614257812497],[127.24707031249997,34.755126953125],[126.89746093749997,34.438867187499966],[126.75478515625005,34.511865234374994],[126.53144531250004,34.31425781249999],[126.26445312500002,34.67324218750002],[126.52451171875006,34.697900390624966],[126.59335937500012,34.824365234374994],[126.42070312500002,34.823388671874966],[126.29111328125012,35.154150390625034],[126.61406250000007,35.57099609375004],[126.4884765625001,35.647070312500006],[126.75302734375006,35.871972656249994],[126.5404296875,36.166162109374966],[126.4876953125,36.69379882812498],[126.18085937500004,36.69160156249998],[126.16054687500005,36.77192382812501],[126.48701171875004,37.00747070312502],[126.78447265625007,36.94843749999998],[126.87207031249997,36.82446289062506],[126.97685546875002,36.93940429687501],[126.74638671875002,37.19355468750001],[126.63388671875012,37.78183593750006],[127.09033203125003,38.28388671875001],[128.03896484375,38.30854492187498],[128.37460937500012,38.6234375]]]]},"properties":{"name":"Korea","childNum":7}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[48.27539062499997,29.624316406250017],[48.17968750000003,29.611425781250063],[48.081445312499994,29.798925781250063],[48.1847656250001,29.978857421875034],[48.348242187500006,29.78266601562504],[48.27539062499997,29.624316406250017]]],[[[48.442480468750006,28.542919921874983],[47.671289062499994,28.53315429687504],[47.433203125,28.989550781250017],[46.53144531250004,29.09624023437499],[46.69375,29.259667968749966],[46.76933593750002,29.347460937500017],[46.90585937500006,29.5375],[47.14824218750002,30.0009765625],[47.64375,30.097314453125023],[47.75390624999997,30.076611328124955],[47.97871093750004,29.98281250000005],[48.00566406250002,29.835791015625034],[48.143457031249994,29.57246093750001],[47.96962890625005,29.61669921874997],[47.72265624999997,29.393017578124955],[48.0514648437501,29.355371093750023],[48.442480468750006,28.542919921874983]]]]},"properties":{"name":"Kuwait","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[102.12744140625011,22.37919921874999],[102.58251953125006,21.904296875000057],[102.66201171875008,21.676025390625057],[102.73857421875005,21.677929687500125],[102.77109375000015,21.70966796875001],[102.79824218750014,21.797949218750034],[102.81591796875,21.807373046875],[102.94960937500008,21.681347656250068],[102.85117187500009,21.26591796874999],[102.8837890625,21.202587890625068],[103.1044921875,20.89165039062499],[103.21074218749999,20.840625],[103.46357421874995,20.779833984375102],[103.6350585937501,20.697070312500102],[104.10136718750005,20.945507812500125],[104.1953125,20.91396484375008],[104.349609375,20.82109374999999],[104.58320312500001,20.646679687499955],[104.53271484375,20.554882812500125],[104.47861328124998,20.529589843750102],[104.40781250000015,20.485742187500023],[104.36777343750015,20.441406250000057],[104.39218750000015,20.424755859375068],[104.49619140625003,20.41367187499992],[104.61884765624995,20.374511718750114],[104.65644531250001,20.328515624999966],[104.66191406250005,20.289013671875125],[104.67695312500007,20.224707031249977],[104.69873046875006,20.205322265625114],[104.84785156250007,20.202441406250045],[104.88867187500006,20.169091796875023],[104.92919921874994,20.082812500000045],[104.92792968750007,20.01811523437499],[104.81513671875001,19.90400390625001],[104.80175781250011,19.836132812500068],[104.74316406250006,19.754736328124977],[104.58789062500006,19.61875],[104.54628906250014,19.610546875000068],[104.25986328125003,19.685498046875068],[104.06279296875005,19.678417968750068],[104.03203124999999,19.67514648437492],[104.0134765625001,19.646484374999943],[104.05156250000005,19.564160156250068],[104.06289062500002,19.482568359375136],[104.02753906250013,19.420458984375102],[103.93203125000002,19.366064453125034],[103.89638671875002,19.339990234375023],[103.89160156249994,19.30498046874999],[105.146484375,18.650976562499977],[105.14541015625014,18.616796874999977],[105.08701171875015,18.49624023437508],[105.11455078125005,18.405273437500057],[105.45820312500007,18.154296875000057],[105.51855468750011,18.077441406250045],[105.58847656250015,17.983691406249932],[105.69140625,17.737841796874932],[106.00625,17.415283203124943],[106.26953125,17.216796875000057],[106.33339843750002,17.14370117187508],[106.42597656250007,17.00253906250009],[106.50224609374999,16.9541015625],[106.52597656250003,16.876611328125023],[106.53369140625,16.821044921875057],[106.54619140625005,16.650732421874977],[106.65644531250013,16.492626953125125],[106.73955078124999,16.452539062500136],[106.79160156250015,16.490332031249977],[106.83242187500008,16.526269531250023],[106.85107421875,16.515625],[106.89277343750013,16.396533203125102],[106.93066406250006,16.353125],[107.39638671875008,16.04301757812499],[107.39199218750008,15.951660156250057],[107.36064453125005,15.921728515624977],[107.18886718750008,15.838623046875114],[107.16591796875002,15.802490234375],[107.27939453125003,15.618701171875045],[107.33876953125002,15.560498046875125],[107.56425781249999,15.3916015625],[107.62167968750015,15.309863281250045],[107.653125,15.255224609375091],[107.63369140625008,15.18984375000008],[107.58964843749999,15.118457031250102],[107.55527343750009,15.057031250000023],[107.48037109375014,14.979882812500136],[107.5046875000001,14.91591796875008],[107.52451171875003,14.871826171874943],[107.51376953124998,14.817382812500057],[107.51943359375008,14.705078125000114],[107.46513671875005,14.664990234375125],[107.41474609375007,14.56289062500008],[107.37988281250006,14.555322265625136],[107.29267578125007,14.592382812500034],[107.109375,14.416699218749955],[107.06240234375008,14.415771484374943],[107.03017578125008,14.425683593750023],[106.99218749999994,14.39101562500008],[106.93808593750015,14.327343750000068],[106.91318359375003,14.329394531249932],[106.81992187500003,14.314697265624943],[106.7834960937501,14.335107421875023],[106.73818359375008,14.387744140625102],[106.66542968750002,14.441308593750023],[106.59921875000003,14.479394531250136],[106.56367187500007,14.505078125000011],[106.53115234375002,14.549414062499977],[106.50146484375,14.578222656250034],[106.22539062500005,14.476220703125023],[106.1907226562501,14.388134765625011],[106.16523437500007,14.372363281249989],[106.00839843750009,14.357177734375114],[105.97890625000014,14.343017578125057],[106.00410156250013,14.262890625000068],[106.09667968750011,14.127099609375136],[106.12470703124995,14.049121093750045],[106.06679687500008,13.921191406250102],[105.90449218750007,13.924511718750068],[105.83144531250008,13.976611328124989],[105.73974609375006,14.084960937500057],[105.5315429687501,14.156152343750023],[105.35019531250009,14.109570312500125],[105.24570312500015,14.200537109374977],[105.20703125000006,14.259375],[105.18554687499994,14.319091796875],[105.18330078125001,14.346240234374989],[105.24365234375006,14.367871093749955],[105.34218750000008,14.416699218749955],[105.42265624999993,14.471630859374955],[105.47558593750006,14.530126953124977],[105.49736328125005,14.590673828125034],[105.52304687500015,14.843310546874989],[105.54667968749999,14.932470703125034],[105.53339843750013,15.041601562500091],[105.49042968750007,15.127587890625023],[105.49042968750007,15.256591796875],[105.615625,15.488281249999943],[105.63886718750013,15.585937499999943],[105.64101562500002,15.656542968749932],[105.62207031250006,15.699951171875114],[105.39892578125011,15.829882812500102],[105.40625,15.987451171875023],[105.33066406250003,16.037890625000045],[105.1487304687501,16.09355468749999],[105.04716796874999,16.16025390625009],[104.81933593749994,16.466064453125057],[104.75058593750015,16.647558593750034],[104.74355468750014,16.884375],[104.75898437500013,17.0771484375],[104.81601562499998,17.30029296875],[104.73964843750008,17.461669921875],[104.428125,17.698974609375057],[104.32265625000002,17.815820312500023],[104.19619140625002,17.988378906250034],[104.04873046875002,18.216699218749966],[103.94960937500008,18.318994140625023],[103.89882812500002,18.295312500000023],[103.79228515624999,18.31650390625009],[103.62968750000005,18.382568359375057],[103.48798828124995,18.41816406250001],[103.36699218750005,18.42333984375],[103.28828124999995,18.408398437499955],[103.25175781249999,18.373486328125125],[103.24892578125014,18.338964843750034],[103.27958984374999,18.304980468750045],[103.26318359375,18.278466796875136],[103.19970703125006,18.25947265625001],[103.14853515625009,18.221728515624932],[103.09121093750014,18.13823242187499],[103.05136718750003,18.02851562500001],[102.80742187500005,17.945556640625],[102.71757812500005,17.892236328125136],[102.67519531250014,17.851757812500068],[102.68007812500008,17.824121093750136],[102.66064453125,17.8179687499999],[102.61679687500015,17.833349609375034],[102.59824218750009,17.926757812500057],[102.55253906249999,17.965087890625057],[102.4587890625001,17.984619140624943],[102.35185546874999,18.045947265625045],[102.14824218750005,18.203857421875057],[102.10146484375014,18.21064453125001],[102.03457031250002,18.169824218750023],[101.94746093750001,18.081494140624955],[101.87548828125011,18.046435546874932],[101.81865234375005,18.064648437500125],[101.77480468750002,18.033398437500125],[101.6875,17.889404296875114],[101.56367187500001,17.820507812500125],[101.55507812500002,17.812353515625034],[101.41367187500015,17.71875],[101.16748046875011,17.4990234375],[101.10517578125001,17.479541015625102],[100.9084960937501,17.583886718750023],[101.14394531250008,18.14262695312499],[101.1375,18.286865234375057],[101.0505859375001,18.407031250000045],[101.04697265625003,18.441992187500034],[101.28632812499995,18.977148437500034],[101.19755859374999,19.327929687500045],[101.22080078125015,19.486621093750045],[101.21191406250011,19.548339843750057],[100.51357421875008,19.553466796875],[100.39765625000013,19.756103515625057],[100.51953125000006,20.177929687500068],[100.31796875000003,20.385888671875136],[100.2180664062501,20.339599609375114],[100.13974609375015,20.245410156250102],[100.11494140625007,20.25766601562492],[100.12246093750002,20.316650390625057],[100.12968750000005,20.372216796875023],[100.1838867187501,20.589111328124943],[100.2493164062501,20.730273437499932],[100.32607421875008,20.795703124999932],[100.40742187499995,20.823242187500057],[100.56513671875013,20.82509765625008],[100.62294921875002,20.85957031250001],[100.61767578125,20.87924804687509],[100.54931640625011,20.884228515625068],[100.5222656250001,20.921923828125102],[100.53613281250006,20.992382812500068],[100.703125,21.25136718750008],[101.0803710937501,21.46865234375008],[101.13886718750013,21.567480468749977],[101.19667968750002,21.522070312499977],[101.17539062500009,21.407519531250102],[101.21992187500013,21.342431640625136],[101.21181640625008,21.278222656250023],[101.22441406249999,21.22373046874992],[101.24785156249993,21.197314453125045],[101.28144531250007,21.184130859375045],[101.44355468750001,21.230810546874977],[101.54238281250008,21.234277343750136],[101.70478515625013,21.150146484375057],[101.728125,21.15639648437508],[101.78349609374999,21.204150390625045],[101.8005859375001,21.212597656249955],[101.7229492187501,21.314941406250057],[101.74726562500007,21.60576171874999],[101.7439453125001,21.77797851562508],[101.73652343750001,21.826513671874977],[101.52451171874998,22.253662109375],[101.56787109375011,22.2763671875],[101.6199218750001,22.327441406250102],[101.67148437500009,22.462304687500023],[101.70751953125,22.486572265625],[101.73876953125011,22.495263671874966],[101.75996093750001,22.490332031250034],[101.841796875,22.388476562500102],[102.02441406250006,22.439208984375114],[102.09150390625007,22.412255859375136],[102.12744140625011,22.37919921874999]]]},"properties":{"name":"Lao PDR","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[35.869140625,33.43173828125],[35.411230468750006,33.07568359375],[35.10859375000001,33.08369140625],[35.64785156250002,34.2482421875],[35.97626953125001,34.629199218749996],[36.383886718750006,34.65791015625],[36.32988281250002,34.499609375],[36.50439453125,34.432373046875],[36.5849609375,34.221240234374996],[36.27783203125,33.92529296875],[36.36503906250002,33.83935546875],[35.98613281250002,33.75263671875],[36.03447265625002,33.58505859375],[35.869140625,33.43173828125]]]},"properties":{"name":"Lebanon","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-8.486425781249977,7.558496093749994],[-8.408740234374989,7.411816406249997],[-8.324511718749989,6.920019531249991],[-8.587890625,6.490527343749989],[-8.287109375,6.319042968749997],[-7.981591796874994,6.2861328125],[-7.888623046874983,6.23486328125],[-7.800927734374994,6.038916015624991],[-7.730371093749994,5.919042968749991],[-7.636132812499994,5.90771484375],[-7.454394531249989,5.84130859375],[-7.39990234375,5.550585937499989],[-7.585058593749977,4.916748046875],[-7.574658203124983,4.572314453124989],[-7.544970703124989,4.351318359375],[-8.259033203125,4.589990234374994],[-9.132177734374977,5.054638671874997],[-10.2763671875,6.07763671875],[-11.291601562499977,6.688232421875],[-11.507519531249983,6.906542968749989],[-11.267675781249977,7.232617187499997],[-10.878076171874994,7.538232421874994],[-10.6474609375,7.759375],[-10.570849609374989,8.071142578124991],[-10.516748046874994,8.125292968749989],[-10.359814453124983,8.187939453124997],[-10.283203125,8.485156249999989],[-10.233056640624994,8.488818359374989],[-10.147412109374983,8.519726562499997],[-10.064355468749994,8.429882812499997],[-9.781982421875,8.537695312499991],[-9.518261718749983,8.34609375],[-9.369140625,7.703808593749997],[-9.463818359374983,7.415869140624991],[-9.11757812499999,7.215917968749991],[-8.8896484375,7.2626953125],[-8.659765624999977,7.688378906249994],[-8.486425781249977,7.558496093749994]]]},"properties":{"name":"Liberia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[25.150488281250006,31.654980468749997],[24.85273437500001,31.334814453125],[24.96142578125,30.678515625],[24.703222656250006,30.201074218749994],[24.980273437500017,29.181884765625],[24.980273437500017,25.5888671875],[24.980273437500017,21.995849609375],[24.9794921875,20.002587890624994],[23.980273437500017,19.99594726562499],[23.980273437500017,19.496630859375003],[20.14765625000001,21.38925781249999],[15.984082031250011,23.445214843749994],[14.97900390625,22.99619140624999],[14.215527343750011,22.619677734375003],[13.48125,23.18017578125],[11.967871093750006,23.517871093750003],[11.507617187500017,24.314355468749994],[10.686132812500006,24.55136718749999],[10.395898437500023,24.485595703125],[10.255859375,24.591015625],[10.000683593750011,25.332080078125003],[9.4482421875,26.067138671875],[9.491406250000011,26.333740234375],[9.883203125000023,26.630810546874997],[9.74755859375,27.330859375],[9.916015625,27.785693359374996],[9.805273437500006,29.176953125],[9.310253906250011,30.115234375],[9.51875,30.229394531249994],[9.89501953125,30.3873046875],[9.932519531250023,30.425341796874996],[10.059765625000011,30.580078125],[10.21640625,30.783203125],[10.114941406250011,31.463769531249994],[10.274609375000011,31.684960937499994],[10.475781250000011,31.736035156249997],[10.60888671875,31.929541015625],[10.826367187500011,32.0806640625],[11.005175781250017,32.172705078125],[11.168261718750017,32.256738281249994],[11.358007812500006,32.34521484375],[11.504980468750006,32.413671875],[11.535937500000017,32.47333984375],[11.533789062500006,32.524951171874996],[11.453906250000017,32.642578125],[11.453906250000017,32.781689453125],[11.459179687500011,32.897363281249994],[11.467187500000023,32.965722656249994],[11.504589843750011,33.181933593749996],[11.657128906250023,33.118896484375],[11.8134765625,33.093701171875],[12.279882812500006,32.858544921874994],[12.753515625,32.801074218749996],[13.283496093750017,32.9146484375],[15.176562500000017,32.391162109374996],[15.705957031250023,31.426416015624994],[17.830468750000023,30.927587890625],[18.669824218750023,30.415673828124994],[19.12373046875001,30.26611328125],[19.713281250000023,30.48837890625],[20.11152343750001,30.963720703125],[19.926367187500006,31.817529296874994],[20.121484375000023,32.21875],[20.62109375,32.58017578125],[21.63593750000001,32.937304687499996],[22.187402343750023,32.918261718749996],[23.090625,32.61875],[23.10625,32.331445312499994],[23.28632812500001,32.213818359375],[24.129687500000017,32.009228515625],[24.878515625,31.984277343749994],[25.150488281250006,31.654980468749997]]]},"properties":{"name":"Libya","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-60.89521484375,13.821972656249997],[-60.951416015625,13.717578125],[-61.073144531249994,13.865576171874991],[-60.908105468749994,14.09335937499999],[-60.89521484375,13.821972656249997]]]},"properties":{"name":"Saint Lucia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[79.87480468750002,9.050732421875026],[79.90371093750005,8.975],[79.74765625000006,9.104589843749991],[79.87480468750002,9.050732421875026]]],[[[79.98232421875,9.812695312500011],[80.25283203125005,9.796337890625054],[80.71113281250004,9.366357421875023],[81.226953125,8.50551757812498],[81.37285156250002,8.431445312499989],[81.42216796875007,8.147851562500023],[81.87412109375012,7.288330078124986],[81.86142578125012,6.901269531249994],[81.63740234375004,6.425146484374991],[80.72412109375003,5.97905273437496],[80.26738281250007,6.009765625],[80.09531250000012,6.153173828125006],[79.859375,6.829296874999983],[79.71298828125012,8.18232421875004],[79.74980468750007,8.294238281250003],[79.78349609375007,8.018457031250051],[79.92890625000004,8.899218749999974],[80.09960937499997,9.209960937500043],[80.08632812500005,9.577832031250026],[80.42832031250006,9.480957031250014],[80.04580078125005,9.649902343749972],[79.98232421875,9.812695312500011]]]]},"properties":{"name":"Sri Lanka","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[28.646875,-30.1265625],[28.39208984375,-30.147558593750006],[28.128710937500017,-30.52509765625001],[28.05683593750001,-30.63105468750001],[27.753125,-30.6],[27.364062500000017,-30.27919921875001],[27.19355468750001,-29.94130859375001],[27.056933593750017,-29.625585937500006],[27.29453125,-29.519335937500003],[27.73554687500001,-28.940039062500006],[27.959863281250023,-28.873339843750003],[28.084375,-28.77998046875001],[28.23261718750001,-28.701269531250006],[28.471875,-28.615820312500006],[28.583398437500023,-28.594140625],[28.625781250000017,-28.58173828125001],[29.301367187500006,-29.08984375],[29.38671875,-29.31972656250001],[29.34882812500001,-29.441992187500006],[29.293554687500006,-29.56689453125],[29.1421875,-29.700976562500003],[29.098046875000023,-29.919042968750006],[28.646875,-30.1265625]]]},"properties":{"name":"Lesotho","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[20.957812500000074,55.27890625000006],[20.89980468750008,55.286669921875045],[21.11484375,55.61650390624999],[20.957812500000074,55.27890625000006]]],[[[25.573046875000017,54.139892578125],[25.497363281250045,54.17524414062501],[25.52734375000003,54.21513671874996],[25.505664062500045,54.26494140624999],[25.46113281250004,54.29277343749996],[25.179492187500017,54.214257812499966],[25.111425781250006,54.15493164062505],[25.04609375000004,54.13305664062503],[24.869531250000023,54.14516601562502],[24.82568359374997,54.118994140625006],[24.78925781250001,53.99824218750001],[24.768164062499977,53.97465820312499],[24.31796875,53.892968749999966],[24.236621093750045,53.91997070312496],[24.19130859375005,53.95043945312503],[23.559082031250057,53.91982421875002],[23.484667968750074,53.939794921875006],[23.453613281250057,54.14345703125002],[23.3701171875,54.20048828124999],[23.282324218750063,54.240332031250034],[23.17031250000008,54.28144531249998],[23.0875,54.299462890624994],[23.042187500000068,54.30419921875],[23.01552734375005,54.34833984375001],[22.976757812500068,54.36635742187505],[22.89394531250008,54.390527343749994],[22.82373046874997,54.39580078124999],[22.766210937499977,54.356787109375034],[22.679882812500068,54.493017578125006],[22.684472656250023,54.56293945312504],[22.82470703125,54.87128906249998],[22.56728515625005,55.05913085937496],[22.072363281250034,55.06367187499998],[21.235742187500023,55.26411132812498],[21.237890625000034,55.455029296874955],[21.06191406250005,55.81342773437498],[21.053808593750006,56.02294921875003],[21.04609375000004,56.07006835937503],[21.31464843750004,56.18813476562502],[21.65351562500004,56.314550781250006],[22.084570312500034,56.40673828125006],[22.875585937500063,56.39643554687501],[22.96826171875003,56.38041992187502],[23.042968750000057,56.324072265625006],[23.119824218749983,56.330664062500006],[23.195898437500034,56.36713867187498],[24.120703125000063,56.26425781249998],[24.90302734375001,56.398193359375],[25.069921875,56.20039062500004],[25.663183593750063,56.104833984375006],[26.593554687500074,55.66752929687502],[26.590820312500057,55.62265625],[26.56660156250001,55.546484375000034],[26.51923828125004,55.448144531249994],[26.469531250000045,55.371923828125006],[26.457617187500006,55.342480468749955],[26.49531250000004,55.31801757812502],[26.68125,55.30644531249999],[26.76015625000008,55.29335937499999],[26.775683593750045,55.27309570312502],[26.601171875000034,55.130175781250045],[26.291796875000074,55.13959960937501],[26.250781250000045,55.12451171875006],[26.175195312500023,55.003271484375034],[26.092968750000068,54.96230468750005],[25.964453124999977,54.947167968749966],[25.85927734375005,54.91928710937498],[25.722460937500074,54.71787109374998],[25.731640625000068,54.59038085937502],[25.72480468750001,54.564257812500045],[25.68515625,54.53579101562502],[25.62031250000004,54.46040039062501],[25.56757812500004,54.377050781250006],[25.54736328125,54.33183593750002],[25.55751953125005,54.310693359374994],[25.702539062499994,54.29296875],[25.765234374999977,54.179785156250034],[25.573046875000017,54.139892578125]]]]},"properties":{"name":"Lithuania","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[6.4873046875,49.798486328124994],[6.344335937500006,49.452734375],[6.181054687500023,49.498925781249994],[6.119921875000017,49.485205078125],[6.074121093750023,49.454638671874996],[6.011425781250011,49.445458984374994],[5.95947265625,49.454638671874996],[5.928906250000011,49.4775390625],[5.9013671875,49.48974609375],[5.823437500000011,49.505078125],[5.789746093750011,49.53828125],[5.776710379464286,49.639953962053575],[5.744042968750023,49.91962890625],[5.7880859375,49.961230468749996],[5.8173828125,50.0126953125],[5.866894531250011,50.0828125],[5.976269531250011,50.1671875],[6.089062500000011,50.154589843749996],[6.110058593750011,50.123779296875],[6.116503906250017,50.120996093749994],[6.109765625000023,50.034375],[6.13818359375,49.97431640625],[6.204882812500017,49.91513671875],[6.272327008928583,49.887234933035714],[6.4873046875,49.798486328124994]]]},"properties":{"name":"Luxembourg","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.14794921875,56.142919921875],[27.576757812500006,55.798779296875],[27.052539062500017,55.83056640625],[26.593554687500017,55.667529296874996],[25.663183593750006,56.104833984375],[25.069921875,56.200390625],[24.90302734375001,56.398193359375],[24.120703125,56.2642578125],[23.81269531250001,56.329248046875],[23.195898437500006,56.367138671875],[23.11982421875001,56.3306640625],[23.04296875,56.324072265625],[22.875585937500006,56.396435546875],[22.084570312500006,56.40673828125],[21.730566406250006,56.325976562499996],[21.65351562500001,56.31455078125],[21.31464843750001,56.188134765625],[21.04609375000001,56.070068359375],[21.0712890625,56.82373046875],[21.72871093750001,57.57099609375],[22.554589843750023,57.724267578125],[23.28730468750001,57.08974609375],[23.647753906250017,56.971044921875],[24.382617187500017,57.250048828124996],[24.322558593750017,57.87060546875],[24.3625,57.866162109375],[24.458886718750023,57.907861328125],[25.11103515625001,58.063427734375],[25.27265625000001,58.009375],[25.66015625,57.920166015625],[26.29804687500001,57.60107421875],[26.532617187500023,57.531005859375],[26.96601562500001,57.609130859375],[27.187109375,57.538330078125],[27.326562500000023,57.52548828125],[27.4697265625,57.5240234375],[27.538671875,57.42978515625],[27.796875,57.316943359374996],[27.82861328125,57.293310546875],[27.838281250000023,57.247705078125],[27.83027343750001,57.194482421875],[27.639453125000017,56.845654296875],[27.806054687500023,56.86708984375],[27.8486328125,56.85341796875],[27.89208984375,56.741064453125],[28.00751953125001,56.599853515625],[28.103125,56.545703125],[28.11083984375,56.510693359375],[28.169238281250017,56.386865234375],[28.191699218750017,56.315576171875],[28.202050781250023,56.260400390625],[28.14794921875,56.142919921875]]]},"properties":{"name":"Latvia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.2125,45.450439453125],[28.07470703125,45.598974609375],[28.23945312500001,46.6408203125],[28.07177734375,46.978417968749994],[27.614062500000017,47.34052734375],[26.980761718750017,48.155029296875],[26.618945312500017,48.25986328125],[26.640429687500017,48.294140625],[26.847070312500023,48.387158203125],[26.90058593750001,48.371923828125],[27.228515625,48.371435546875],[27.549218750000023,48.477734375],[28.34052734375001,48.144433593749994],[28.42304687500001,48.146875],[29.125390625000023,47.96455078125],[29.134863281250006,47.489697265625],[29.455664062500006,47.292626953124994],[29.57197265625001,46.964013671874994],[29.7197265625,46.88291015625],[29.877832031250023,46.82890625],[29.942480468750006,46.723779296874994],[29.93476562500001,46.625],[29.92431640625,46.538867187499996],[30.13105468750001,46.423095703125],[30.07568359375,46.377832031249994],[29.878027343750006,46.360205078125],[29.837890625,46.350537109375],[29.458789062500017,46.453759765624994],[29.30488281250001,46.466601562499996],[29.22382812500001,46.376953125],[29.20458984375,46.379345703125],[29.20078125,46.50498046875],[29.18623046875001,46.523974609374996],[29.146289062500017,46.526904296874996],[28.958398437500023,46.45849609375],[28.92744140625001,46.424121093749996],[28.930566406250023,46.362255859375],[28.94375,46.288427734375],[29.00625,46.17646484375],[28.971875,46.12763671875],[28.94775390625,46.049951171874994],[28.849511718750023,45.978662109374994],[28.73876953125,45.937158203124994],[28.729296875000017,45.852001953125],[28.667578125,45.793847656249994],[28.562304687500017,45.735791015625],[28.491601562500023,45.665771484375],[28.4990234375,45.517724609374994],[28.310351562500017,45.498583984374996],[28.26484375000001,45.48388671875],[28.2125,45.450439453125]]]},"properties":{"name":"Moldova","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[49.936425781249994,-16.90292968750002],[49.82402343750002,-17.08652343750002],[50.02304687500006,-16.6953125],[49.936425781249994,-16.90292968750002]]],[[[48.3421875,-13.363867187500034],[48.21191406250003,-13.385253906249957],[48.191210937500074,-13.259960937500011],[48.308886718750074,-13.198242187499957],[48.3421875,-13.363867187500034]]],[[[49.53828125000004,-12.432128906250014],[49.9375,-13.072265624999957],[50.23535156249997,-14.732031249999963],[50.482714843750074,-15.385644531249994],[50.20898437499997,-15.960449218750028],[50.02041015625005,-15.801757812500028],[49.89257812500003,-15.457714843750011],[49.664355468750074,-15.521582031249977],[49.83906250000004,-16.486523437499997],[49.76718750000006,-16.815136718749983],[49.44931640625006,-17.240625],[49.477832031250074,-17.89853515624999],[49.362890625,-18.336328125],[47.934472656249994,-22.393945312500023],[47.55800781250005,-23.874609374999963],[47.17734375,-24.787207031249977],[46.72851562499997,-25.14990234374997],[46.15869140624997,-25.230371093750023],[45.5080078125001,-25.56318359374997],[45.2057617187501,-25.57050781250004],[44.0353515625001,-24.995703125],[43.670019531250006,-24.30029296875],[43.722265625,-23.529687500000037],[43.2648437500001,-22.38359375],[43.29052734374997,-21.93251953124998],[43.50185546875005,-21.356445312499957],[43.800195312499994,-21.179199218749986],[44.40468750000005,-19.922070312500026],[44.44882812500006,-19.42871093749997],[44.23876953124997,-19.075195312499986],[44.23310546875004,-18.740625],[44.04003906249997,-18.288476562500023],[43.979394531249994,-17.3916015625],[44.42138671874997,-16.70263671874997],[44.476171875,-16.217285156249957],[44.90917968749997,-16.174511718750026],[45.2228515625001,-15.95048828124996],[45.3421875,-16.03671875000002],[45.598242187500006,-15.992578125],[45.70019531249997,-15.813769531249989],[46.157519531250074,-15.738281249999972],[46.3996093750001,-15.924609375000017],[46.331445312499994,-15.713671875000031],[46.47509765625003,-15.513476562500003],[46.942285156249994,-15.219042968749974],[47.09921875,-15.43417968750002],[47.092578125000074,-15.150097656249969],[47.35195312500005,-14.766113281249986],[47.46474609375005,-14.713281249999966],[47.47832031250002,-15.009375],[47.77402343750006,-14.63671875],[47.964160156250074,-14.672558593750026],[47.773339843749994,-14.369921875],[47.995507812499994,-13.960449218749986],[47.88359375000002,-13.807519531250009],[47.94101562500006,-13.662402343750017],[48.03984375000002,-13.596289062499963],[48.25527343750005,-13.719335937499977],[48.796484375,-13.267480468750023],[48.91943359375003,-12.839062499999969],[48.78632812500004,-12.470898437500011],[48.931738281250006,-12.4390625],[49.20703124999997,-12.079589843749957],[49.53828125000004,-12.432128906250014]]]]},"properties":{"name":"Madagascar","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-91.68369140624998,18.677343750000034],[-91.81611328124995,18.675878906250006],[-91.53671874999998,18.760009765625],[-91.68369140624998,18.677343750000034]]],[[[-86.93964843750001,20.303320312500006],[-86.97797851562498,20.489794921875074],[-86.76328124999995,20.579052734374955],[-86.93964843750001,20.303320312500006]]],[[[-106.50224609374999,21.61083984375003],[-106.60703124999993,21.561474609374983],[-106.63935546874995,21.697851562499977],[-106.50224609374999,21.61083984375003]]],[[[-110.56738281249994,25.003466796875017],[-110.5388671875,24.89155273437504],[-110.69926757812499,25.081445312499994],[-110.56738281249994,25.003466796875017]]],[[[-112.05727539062498,24.545703125000017],[-112.29677734375002,24.789648437500063],[-112.15942382812501,25.28564453125003],[-112.19501953124998,24.841064453125057],[-112.05727539062498,24.545703125000017]]],[[[-111.10029296874998,26.020605468750006],[-111.224658203125,25.83588867187504],[-111.18291015625002,26.040625],[-111.10029296874998,26.020605468750006]]],[[[-115.17060546875001,28.06938476562496],[-115.35292968750002,28.103955078124983],[-115.23354492187495,28.36835937500004],[-115.17060546875001,28.06938476562496]]],[[[-112.20307617187503,29.00532226562504],[-112.27841796875,28.769335937500017],[-112.51406249999997,28.847607421874955],[-112.42353515625,29.203662109375017],[-112.28505859374994,29.240429687499955],[-112.20307617187503,29.00532226562504]]],[[[-113.15561523437502,29.05224609375],[-113.49633789062497,29.30761718749997],[-113.58720703125002,29.57304687499996],[-113.20214843749999,29.301855468750034],[-113.15561523437502,29.05224609375]]],[[[-97.14624023437494,25.961474609375045],[-97.66767578124995,24.389990234374977],[-97.84248046874995,22.510302734375017],[-97.76328124999998,22.105859374999966],[-97.31450195312496,21.56420898437503],[-97.40917968749997,21.272558593750034],[-97.38344726562497,21.56669921874999],[-97.75380859375002,22.02666015624999],[-97.18632812499996,20.717041015625],[-96.45605468749994,19.869775390624966],[-96.28955078124994,19.34375],[-95.778125,18.805517578125034],[-95.92036132812495,18.81958007812497],[-95.62680664062503,18.690576171874994],[-95.71982421874998,18.768359375000017],[-95.18183593749995,18.700732421875017],[-94.79814453124996,18.51459960937501],[-94.45976562499993,18.166650390624994],[-93.55234375,18.430468750000017],[-92.88476562499997,18.468652343749966],[-92.44101562499998,18.67529296874997],[-91.97377929687502,18.715869140625074],[-91.91357421875,18.52851562500001],[-91.53398437499993,18.45654296875],[-91.27524414062498,18.62446289062501],[-91.34306640624996,18.900585937499955],[-91.43666992187502,18.889794921874966],[-90.73925781249994,19.352246093749955],[-90.69316406249996,19.729882812499966],[-90.49169921874997,19.94677734375003],[-90.353125,21.009423828124966],[-89.81977539062495,21.274609374999983],[-88.46669921874997,21.569384765625017],[-88.0068359375,21.604052734375045],[-87.25087890625,21.44697265625004],[-87.18828124999993,21.546435546875045],[-87.36850585937498,21.57373046875],[-87.034765625,21.592236328124955],[-86.824072265625,21.421679687500017],[-86.77177734374999,21.150537109375023],[-86.92622070312493,20.786474609375034],[-87.42138671875,20.23139648437501],[-87.44174804687498,19.861523437499983],[-87.68769531249998,19.63710937499999],[-87.6453125,19.55390625000001],[-87.42475585937498,19.583349609375063],[-87.65869140625003,19.352343750000074],[-87.65576171874997,19.25786132812499],[-87.50107421874998,19.287792968749983],[-87.76181640624998,18.446142578125006],[-87.88198242187497,18.27387695312501],[-88.05644531249996,18.524462890625074],[-88.03173828125,18.838916015625017],[-88.29565429687494,18.47241210937503],[-88.52299804687499,18.445898437500063],[-88.80634765624998,17.965527343749983],[-89.13354492187503,17.970800781249977],[-89.16147460937503,17.81484375],[-90.98916015624997,17.81640624999997],[-90.99296874999993,17.25244140625],[-91.19550781249998,17.254101562499983],[-91.40961914062501,17.255859375],[-90.975830078125,16.867822265624994],[-90.710693359375,16.708105468750034],[-90.65996093749996,16.630908203125045],[-90.634375,16.565136718749955],[-90.63408203125002,16.51074218749997],[-90.57578124999995,16.467822265625017],[-90.47109374999994,16.439550781250034],[-90.41699218750003,16.391015625000023],[-90.41699218750003,16.351318359375],[-90.45014648437493,16.261376953124994],[-90.45986328124997,16.16235351562497],[-90.44716796874994,16.07270507812501],[-90.52197265625,16.07119140625005],[-90.70322265624998,16.07104492187503],[-90.97958984374998,16.07080078124997],[-91.433984375,16.070458984374994],[-91.736572265625,16.070166015625006],[-91.95722656250001,15.703222656250034],[-92.08212890624998,15.495556640625011],[-92.18715820312497,15.320898437499963],[-92.07480468749998,15.074218749999972],[-92.09873046874998,15.026757812499994],[-92.14423828125001,15.001953125],[-92.158544921875,14.963574218749997],[-92.23515625,14.545410156249986],[-93.91606445312493,16.053564453125006],[-94.374169921875,16.284765625000034],[-94.426416015625,16.22626953125001],[-94.00126953124996,16.018945312499966],[-94.66152343750002,16.20190429687503],[-94.58710937499995,16.315820312499966],[-94.79082031249999,16.28715820312499],[-94.85869140624996,16.41972656249999],[-95.02084960937503,16.277636718750017],[-94.79941406249995,16.20966796875001],[-95.134375,16.17695312500001],[-96.21357421874993,15.693066406250011],[-96.80795898437495,15.726416015624977],[-97.18466796874998,15.909277343750006],[-97.75478515624994,15.966845703125017],[-98.52031249999993,16.30483398437505],[-98.76220703125,16.534765624999977],[-99.69067382812499,16.719628906249994],[-100.847802734375,17.20048828124999],[-101.91870117187494,17.959765625000045],[-102.69956054687495,18.062841796875006],[-103.44160156249995,18.32539062500001],[-103.91245117187496,18.828466796875006],[-104.9384765625,19.309375],[-105.482080078125,19.97607421875003],[-105.66943359374997,20.385595703124977],[-105.26015625,20.579052734374955],[-105.32705078124994,20.752978515625045],[-105.51083984374999,20.808740234375023],[-105.23706054687499,21.119189453125045],[-105.20869140624998,21.490820312499977],[-105.43144531249997,21.618261718750006],[-105.64912109375001,21.988085937500045],[-105.64550781249999,22.32690429687497],[-105.79179687500003,22.627490234375017],[-106.93549804687497,23.88125],[-107.76494140625002,24.47192382812497],[-107.52724609375001,24.36005859375001],[-107.51191406249998,24.489160156250023],[-107.95117187499994,24.614892578124966],[-108.28076171874994,25.08154296875],[-108.05146484374995,25.067041015624994],[-108.69638671874998,25.382910156250034],[-108.78725585937502,25.53803710937501],[-109.02880859375003,25.48046875000003],[-108.886572265625,25.733447265625045],[-109.19648437499998,25.59252929687503],[-109.38496093750001,25.727148437500006],[-109.42563476562495,26.032568359375063],[-109.19970703125003,26.30522460937499],[-109.11669921874999,26.25273437499996],[-109.27626953125,26.533886718749955],[-109.48286132812498,26.710351562500023],[-109.75478515624995,26.702929687500017],[-109.94399414062495,27.079345703125057],[-110.37729492187495,27.233300781249966],[-110.59267578124995,27.544335937500023],[-110.52988281249995,27.864208984374983],[-111.12138671875002,27.966992187499983],[-112.16176757812495,29.018896484375034],[-113.05766601562496,30.651025390625023],[-113.04672851562495,31.17924804687499],[-113.62348632812494,31.34589843750001],[-113.75942382812501,31.557763671874994],[-113.94775390625001,31.62934570312501],[-114.14931640624995,31.507373046875045],[-114.93359374999994,31.900732421874977],[-114.78989257812498,31.647119140624994],[-114.88188476562499,31.156396484375023],[-114.55048828124997,30.02226562499999],[-113.75546875,29.367480468750017],[-113.49970703124995,28.92670898437501],[-113.20556640624997,28.798779296874955],[-113.09365234375001,28.511767578125017],[-112.870849609375,28.42421875000005],[-112.73403320312501,27.825976562500017],[-112.32919921874996,27.52343750000003],[-111.86264648437495,26.678515625000017],[-111.6994140625,26.58095703125005],[-111.79526367187499,26.8796875],[-111.56967773437495,26.707617187500006],[-111.29160156249996,25.78979492187497],[-110.68676757812501,24.867675781250057],[-110.65932617187502,24.34145507812505],[-110.36743164062497,24.100488281249994],[-110.30375976562497,24.339453125],[-110.02280273437502,24.17460937499999],[-109.6765625,23.66157226562501],[-109.42084960937495,23.480126953124994],[-109.49570312500002,23.159814453125023],[-110.00625,22.894042968750057],[-110.3626953125,23.60493164062501],[-111.68291015625002,24.555810546875023],[-111.80249023437494,24.542529296875074],[-112.07255859374999,24.84003906250001],[-112.06987304687497,25.572851562500006],[-112.37724609374997,26.21391601562496],[-113.02075195312499,26.58325195312497],[-113.15581054687496,26.94624023437504],[-113.27226562499997,26.79096679687501],[-113.59853515625001,26.721289062500034],[-113.84096679687502,26.966503906249983],[-114.44526367187503,27.218164062499994],[-114.53989257812495,27.431103515624955],[-114.99350585937499,27.736035156249983],[-115.03647460937495,27.84184570312496],[-114.57001953124995,27.78393554687497],[-114.30058593749995,27.87299804687501],[-114.30224609375003,27.775732421875006],[-114.0693359375,27.67568359375005],[-114.15839843750003,27.919677734375],[-114.26586914062499,27.934472656249994],[-114.04848632812502,28.42617187499999],[-114.93730468749999,29.35161132812496],[-115.67382812500003,29.756396484375017],[-116.06215820312501,30.80415039062504],[-116.29628906250001,30.97050781249999],[-116.33344726562494,31.202783203124994],[-116.66215820312495,31.56489257812504],[-116.72207031249998,31.734570312499955],[-116.62080078124995,31.85107421874997],[-116.84799804687496,31.997363281250045],[-117.12827148437495,32.533349609374994],[-114.72475585937495,32.71533203125003],[-114.83593749999994,32.50830078125003],[-111.0419921875,31.32421875000003],[-108.21445312499993,31.329443359375034],[-108.21181640625002,31.779345703125017],[-106.44541015624996,31.768408203125006],[-106.14804687499995,31.450927734375],[-104.97880859374996,30.645947265624955],[-104.50400390624995,29.677685546874955],[-104.110595703125,29.386132812499994],[-103.16831054687498,28.998193359374994],[-102.8919921875,29.216406250000034],[-102.61494140624994,29.75234375],[-102.26894531249998,29.871191406250034],[-101.44038085937503,29.77685546875],[-100.75458984375001,29.182519531249994],[-100.29604492187495,28.32768554687499],[-99.50532226562497,27.54833984375003],[-99.45654296874999,27.05668945312496],[-99.10776367187498,26.446923828124994],[-97.37563476562497,25.871826171875],[-97.14624023437494,25.961474609375045]]]]},"properties":{"name":"Mexico","childNum":10}},{"geometry":{"type":"Polygon","coordinates":[[[22.344042968750017,42.31396484375],[22.836816406250023,41.993603515625],[23.00361328125001,41.73984375],[22.916015625,41.336279296875],[22.78388671875001,41.331982421875],[22.72480468750001,41.178515625],[22.603613281250006,41.140185546874996],[22.493554687500023,41.118505859375],[22.184472656250023,41.158642578125],[21.99335937500001,41.13095703125],[21.77949218750001,40.950439453125],[21.627539062500006,40.896337890625],[21.57578125,40.868945312499996],[20.964257812500023,40.849902343749996],[20.709277343750017,40.928369140624994],[20.48896484375001,41.272607421874994],[20.566210937500017,41.873681640624994],[20.725,41.87353515625],[20.778125,42.071044921875],[21.05976562500001,42.171289062499994],[21.28662109375,42.100390625],[21.389550781250023,42.21982421875],[21.560839843750017,42.24765625],[21.5625,42.247509765625],[21.81464843750001,42.303125],[22.344042968750017,42.31396484375]]]},"properties":{"name":"Macedonia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[4.227636718750006,19.142773437499997],[4.234667968750017,16.996386718750003],[4.121289062500011,16.357714843750003],[3.842968750000011,15.701708984375003],[3.5205078125,15.483105468749997],[3.504296875000023,15.356347656249994],[3.06015625,15.427197265624997],[3.001074218750006,15.340966796874994],[1.300195312500023,15.272265625],[0.947460937500011,14.982128906249997],[0.217480468750011,14.911474609374991],[-0.235888671874989,15.059423828124991],[-0.760449218749983,15.047753906249994],[-1.049560546875,14.81953125],[-1.97304687499999,14.45654296875],[-2.113232421874983,14.16845703125],[-2.586718749999989,14.227587890625003],[-2.873925781249994,13.950732421875003],[-2.950830078124994,13.6484375],[-3.248632812499977,13.658349609374994],[-3.3017578125,13.28076171875],[-3.527636718749989,13.182714843749991],[-3.947314453124989,13.402197265624991],[-4.151025390624994,13.306201171875003],[-4.328710937499977,13.119042968749994],[-4.227099609374989,12.793701171875],[-4.480615234374994,12.672216796874991],[-4.4287109375,12.337597656249997],[-4.699316406249977,12.076171875],[-5.288134765624989,11.827929687499989],[-5.250244140625,11.375781249999989],[-5.490478515625,11.042382812499994],[-5.523535156249977,10.426025390625],[-5.556591796874983,10.43994140625],[-5.694287109374983,10.43320312499999],[-5.843847656249977,10.389550781249994],[-5.896191406249983,10.354736328125],[-5.907568359374977,10.307226562499991],[-6.034570312499994,10.19482421875],[-6.1171875,10.201904296875],[-6.238378906249977,10.261621093749994],[-6.241308593749977,10.279199218749994],[-6.192626953125,10.369433593749989],[-6.190673828125,10.400292968749994],[-6.250244140625,10.717919921874994],[-6.482617187499983,10.561230468749997],[-6.564599609374994,10.58642578125],[-6.654150390624977,10.656445312499997],[-6.676367187499977,10.6337890625],[-6.686132812499977,10.578027343749994],[-6.691992187499977,10.512011718749989],[-6.669335937499994,10.3921875],[-6.693261718749994,10.349462890624991],[-6.950341796874994,10.342333984374989],[-7.01708984375,10.143261718749997],[-7.385058593749989,10.340136718749989],[-7.6611328125,10.427441406249997],[-7.990625,10.1625],[-8.007275390624983,10.321875],[-8.266650390624989,10.485986328124994],[-8.33740234375,10.990625],[-8.666699218749983,11.009472656249997],[-8.398535156249977,11.366552734374991],[-8.822021484375,11.673242187499994],[-8.818310546874983,11.922509765624994],[-9.043066406249977,12.40234375],[-9.395361328124977,12.464648437499989],[-9.358105468749983,12.255419921874989],[-9.754003906249977,12.029931640624994],[-10.274853515624983,12.212646484375],[-10.709228515625,11.898730468749989],[-10.933203124999977,12.205175781249991],[-11.30517578125,12.015429687499989],[-11.502197265625,12.198632812499994],[-11.389404296875,12.404394531249991],[-11.390380859375,12.941992187499991],[-11.634960937499983,13.369873046875],[-11.831689453124994,13.315820312499994],[-12.05419921875,13.633056640625],[-11.960888671874983,13.875292968750003],[-12.019189453124994,14.206494140624997],[-12.228417968749994,14.45859375],[-12.280615234374977,14.809033203124997],[-12.104687499999983,14.745361328125],[-12.08154296875,14.766357421875],[-12.021582031249977,14.804931640625],[-11.76015625,15.425537109375],[-11.675878906249977,15.512060546874991],[-11.502685546875,15.636816406249991],[-11.455224609374994,15.62539062499999],[-10.9482421875,15.151123046875],[-10.696582031249989,15.42265625],[-9.94140625,15.373779296875],[-9.446923828124994,15.458203125],[-9.447705078124983,15.574853515624994],[-9.426562499999989,15.623046875],[-9.3505859375,15.677392578124994],[-9.33544921875,15.525683593750003],[-9.293701171875,15.502832031249994],[-5.5125,15.496289062499997],[-5.359912109374989,16.282861328124994],[-5.509619140624977,16.442041015624994],[-5.628662109375,16.568652343750003],[-5.65625,16.8095703125],[-5.684765624999983,17.058251953124994],[-5.713183593749989,17.306884765625],[-5.74169921875,17.555566406249994],[-5.827099609374983,18.3015625],[-6.026416015624989,20.0421875],[-6.396582031249977,23.274804687499994],[-6.482031249999977,24.020800781250003],[-6.538964843749994,24.51816406249999],[-6.5673828125,24.766796875],[-6.594091796874977,24.99462890625],[-6.287207031249977,24.994824218749997],[-5.959814453124977,24.99497070312499],[-5.640771484374994,24.995166015625003],[-4.822607421874977,24.99560546875],[-1.947900390624994,23.124804687500003],[1.1455078125,21.102246093749997],[1.165722656250011,20.817431640625003],[1.610644531250017,20.555566406249994],[1.685449218750023,20.378369140624997],[3.130273437500023,19.85019531249999],[3.255859375,19.4109375],[3.119726562500006,19.103173828124994],[3.3564453125,18.986621093750003],[4.227636718750006,19.142773437499997]]]},"properties":{"name":"Mali","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[14.566210937499989,35.85273437499998],[14.436425781250023,35.82167968750005],[14.351269531250011,35.978417968749994],[14.566210937499989,35.85273437499998]]]},"properties":{"name":"Malta","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[98.18261718749997,9.933447265625006],[98.11806640625,9.877880859375054],[98.2916992187501,10.051318359375031],[98.18261718749997,9.933447265625006]]],[[[98.20976562500002,10.952734375],[98.27148437499997,10.73989257812498],[98.08046875000005,10.886621093750037],[98.20976562500002,10.952734375]]],[[[98.55380859375012,11.744873046875],[98.52841796875012,11.538671875],[98.43476562500004,11.567089843750026],[98.37646484374997,11.79150390625],[98.55380859375012,11.744873046875]]],[[[98.516015625,11.905029296875028],[98.46621093750005,12.08427734374996],[98.60957031250004,11.956640624999977],[98.516015625,11.905029296875028]]],[[[98.06611328125004,12.389794921875023],[98.00234375000005,12.279003906250011],[97.93867187500004,12.34609375],[98.06611328125004,12.389794921875023]]],[[[98.41396484375005,12.597949218749974],[98.45947265625003,12.473730468749991],[98.3138671875,12.335986328124989],[98.31210937500006,12.678173828124983],[98.41396484375005,12.597949218749974]]],[[[98.31542968749997,13.099072265625026],[98.30917968750012,12.934716796875023],[98.26533203125004,13.202246093749991],[98.31542968749997,13.099072265625026]]],[[[94.80488281250004,15.8193359375],[94.73349609375006,15.823046875000045],[94.82802734375005,15.933007812499966],[94.80488281250004,15.8193359375]]],[[[94.47675781250004,15.945947265625023],[94.41191406250007,15.848388671875057],[94.3878906250001,15.994140624999972],[94.60126953125004,16.205517578124983],[94.47675781250004,15.945947265625023]]],[[[97.575,16.253222656250017],[97.48037109375,16.305712890625045],[97.54199218749997,16.505078124999983],[97.575,16.253222656250017]]],[[[93.6908203125,18.68427734375004],[93.4875,18.867529296875063],[93.74472656250006,18.865527343750017],[93.6908203125,18.68427734375004]]],[[[93.71484374999997,19.558251953124994],[93.94570312500005,19.428613281249966],[93.90195312500012,19.33203125],[93.75585937500003,19.325683593750057],[93.64404296874997,19.49506835937501],[93.71484374999997,19.558251953124994]]],[[[93.49179687500012,19.892578125],[93.51328125000006,19.754785156249994],[93.41289062500002,19.950341796875023],[93.49179687500012,19.892578125]]],[[[93.01015625000005,19.923925781249977],[93.02324218750007,19.82885742187497],[92.91464843750006,20.086474609375045],[93.01015625000005,19.923925781249977]]],[[[101.1388671875001,21.567480468749977],[101.08037109375007,21.468652343749994],[100.703125,21.251367187499966],[100.613671875,21.059326171875],[100.56660156250004,21.038183593750063],[100.53613281250003,20.992382812499955],[100.52226562500007,20.92192382812499],[100.54931640624997,20.884228515624955],[100.61767578125003,20.879248046875006],[100.62294921875005,20.859570312499983],[100.5651367187501,20.825097656249994],[100.4074218750001,20.823242187500057],[100.32607421875005,20.795703125000045],[100.24931640625002,20.730273437500045],[100.18388671875002,20.589111328125057],[100.12968750000002,20.372216796874994],[100.12246093750005,20.316650390625057],[100.0036132812501,20.37958984375001],[99.9542968750001,20.415429687500023],[99.8903320312501,20.424414062499977],[99.72011718750005,20.32543945312497],[99.45888671875005,20.363037109375],[99.48593750000006,20.14985351562501],[99.07421875000003,20.09936523437503],[98.9166992187501,19.77290039062504],[98.37128906250004,19.68916015625004],[98.01503906250005,19.74951171874997],[97.816796875,19.459960937500057],[97.74589843750002,18.58818359374999],[97.37392578125,18.51796875],[97.63222656250005,18.290332031250074],[97.7064453125,17.79711914062503],[98.4388671875,16.975683593750034],[98.66074218750006,16.330419921875006],[98.83544921875003,16.417578125],[98.88828125000006,16.351904296875034],[98.81796875000012,16.180810546874994],[98.59238281250006,16.05068359375005],[98.55693359375007,15.367675781249986],[98.19101562500012,15.204101562499972],[98.20214843749997,14.97592773437502],[98.57001953125004,14.359912109375031],[99.13681640625006,13.716699218749994],[99.12392578125,13.030761718750043],[99.40507812500002,12.547900390625003],[99.61474609374997,11.781201171875026],[99.1901367187501,11.105273437499989],[98.7572265625,10.660937499999974],[98.70253906250005,10.19038085937504],[98.56259765625006,10.034960937499989],[98.46494140625006,10.675830078124989],[98.67558593750007,10.986914062500034],[98.74140625000004,11.591699218749966],[98.87597656250003,11.719726562500028],[98.63632812500006,11.738378906250006],[98.69628906250003,12.225244140624994],[98.6002929687501,12.2453125],[98.67871093749997,12.348486328124963],[98.57597656250002,13.161914062500031],[98.20039062500004,13.980175781250026],[98.14951171875012,13.647607421875037],[98.11064453125007,13.712890625000014],[98.10019531250006,14.161523437500023],[97.90976562500012,14.652685546874991],[98.01875,14.652587890625057],[97.81230468750007,14.858935546874989],[97.7103515625,15.875537109375074],[97.58427734375007,16.019580078125017],[97.72597656250005,16.56855468750004],[97.37587890625005,16.52294921874997],[97.20019531249997,17.095410156249983],[96.85146484375005,17.401025390624994],[96.90859375000005,17.03095703125001],[96.76542968750002,16.710351562499966],[96.43115234374997,16.504931640625045],[96.18906250000012,16.768310546875057],[96.32431640625006,16.444433593750063],[95.76328125000006,16.169042968750006],[95.38955078125005,15.722753906250034],[95.30146484375004,15.756152343749989],[95.34677734375012,16.09760742187501],[95.17695312500004,15.825683593750028],[94.9425781250001,15.818261718750023],[94.89316406250006,16.182812499999955],[94.66152343750005,15.904394531250006],[94.70332031250004,16.511914062499955],[94.4416015625001,16.094384765624966],[94.22382812500004,16.016455078125006],[94.58896484375006,17.5693359375],[94.17070312500007,18.73242187499997],[94.24570312500006,18.741162109374983],[94.07001953125004,18.893408203125006],[94.04492187500003,19.287402343750074],[93.92919921874997,18.89965820312503],[93.70546875000005,19.026904296875017],[93.49306640625005,19.369482421875006],[93.82490234375004,19.238476562499955],[93.99814453125006,19.440869140624983],[93.61171875000005,19.776074218749983],[93.70703125000003,19.912158203125074],[93.25,20.070117187500017],[93.12949218750012,19.858007812500063],[93.00195312499997,20.074853515624994],[93.06679687500005,20.377636718749955],[92.82832031250004,20.177587890625063],[92.89111328124997,20.34033203125],[92.73564453125007,20.56269531250001],[92.72285156250004,20.29560546875004],[92.32412109375,20.791845703125063],[92.17958984375005,21.293115234375023],[92.33056640624997,21.439794921874977],[92.63164062500002,21.306201171875045],[92.5934570312501,21.46733398437499],[92.58281250000002,21.940332031249994],[92.57490234375004,21.978076171875045],[92.68896484374997,22.130957031250006],[92.72099609375002,22.132421875000063],[92.77138671875,22.104785156250017],[92.9645507812501,22.003759765625034],[93.07060546875002,22.20942382812501],[93.16201171875,22.360205078125006],[93.07871093750006,22.71821289062501],[93.20390625000002,23.03701171875005],[93.34941406250007,23.08496093750003],[93.36601562500007,23.132519531249955],[93.32626953125006,24.064208984375057],[93.45214843750003,23.987402343750034],[93.68339843750007,24.00654296875004],[94.07480468750006,23.8720703125],[94.29306640625012,24.321875],[94.37724609375002,24.473730468750006],[94.49316406250003,24.637646484374983],[94.70371093750012,25.097851562499955],[94.55302734375007,25.215722656249994],[94.66777343750007,25.458886718749966],[94.99199218750002,25.77045898437504],[95.01523437500006,25.912939453125006],[95.0929687500001,25.98730468749997],[95.13242187500006,26.041259765625057],[95.12929687500005,26.070410156250034],[95.10839843749997,26.091406250000034],[95.06894531250006,26.19111328125001],[95.0597656250001,26.473974609375006],[95.20146484375007,26.641406250000017],[96.19082031250005,27.26127929687499],[96.79785156249997,27.29619140624999],[96.95341796875002,27.13330078125003],[97.10205078125003,27.11542968750004],[97.10371093750004,27.16333007812503],[96.90195312500012,27.439599609374994],[96.88359375000002,27.514843749999955],[96.96279296875,27.698291015625017],[97.04970703125005,27.760009765625],[97.34355468750002,27.982324218749994],[97.30273437499997,28.08598632812496],[97.3224609375001,28.21796875000004],[97.35644531249997,28.254492187500006],[97.43144531250002,28.353906250000023],[97.53789062500002,28.510205078124983],[97.59921875000006,28.51704101562504],[98.06162109375012,28.185888671874977],[98.29882812499997,27.550097656250045],[98.4525390625,27.6572265625],[98.65117187500007,27.572460937499983],[98.7384765625001,26.785742187500006],[98.68554687499997,26.189355468750023],[98.56406250000006,26.072412109374994],[98.65625,25.86357421874999],[98.33378906250007,25.586767578125006],[98.14287109375007,25.571093750000017],[98.01074218749997,25.292529296875017],[97.8195312500001,25.251855468749994],[97.73789062500006,24.869873046875057],[97.58330078125002,24.77480468750005],[97.53144531250004,24.49169921875003],[97.7082031250001,24.228759765625],[97.56455078125012,23.911035156250023],[98.2125,24.110644531250017],[98.83505859375006,24.121191406250034],[98.67675781250003,23.905078125000045],[98.8322265625001,23.624365234374977],[98.86376953125003,23.191259765625034],[99.41806640625006,23.069238281250023],[99.50712890625002,22.959130859374994],[99.19296875000006,22.12597656249997],[99.9176757812501,22.02802734375001],[99.94072265625007,21.75874023437504],[100.14765625000004,21.480517578125017],[100.60458984375012,21.471777343750006],[101.07978515625004,21.75585937499997],[101.1388671875001,21.567480468749977]]]]},"properties":{"name":"Myanmar","childNum":15}},{"geometry":{"type":"Polygon","coordinates":[[[19.21875,43.449951171875],[19.670996093750006,43.163964843749994],[20.344335937500006,42.827929687499996],[20.054296875,42.760058593749996],[20.06396484375,42.54726562499999],[19.78828125000001,42.476171875],[19.65449218750001,42.628564453124994],[19.280664062500023,42.17255859375],[19.342382812500006,41.869091796875],[18.436328125000017,42.559716796874994],[18.5458984375,42.6416015625],[18.46601562500001,42.777246093749994],[18.44384765625,42.96845703125],[18.46015625000001,42.997900390625],[18.48847656250001,43.012158203125],[18.623632812500006,43.027685546875],[18.621875,43.124609375],[18.674218750000023,43.230810546875],[18.74921875000001,43.283544921875],[18.85107421875,43.346337890624994],[18.934667968750006,43.339453125],[18.97871093750001,43.285400390625],[19.026660156250017,43.292431640625],[19.03671875,43.357324218749994],[18.940234375000017,43.496728515624994],[18.95068359375,43.526660156249996],[18.97421875,43.542333984375],[19.0283203125,43.532519531249996],[19.080078125,43.517724609374994],[19.11279296875,43.52773437499999],[19.164355468750017,43.535449218749996],[19.1943359375,43.53330078125],[19.21875,43.449951171875]]]},"properties":{"name":"Montenegro","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[111.878125,43.68017578125],[111.00722656250002,43.34140625],[110.400390625,42.773681640625],[109.44316406249999,42.455957031249994],[109.33984375,42.438378906249994],[108.68730468749999,42.41611328125],[108.17119140624999,42.447314453124996],[106.77001953125,42.288720703124994],[105.86757812500002,41.993994140625],[105.31435546875002,41.770898437499994],[105.19707031249999,41.738037109375],[105.11542968750001,41.66328125],[105.05058593749999,41.61591796875],[104.98203125000003,41.595507812499996],[104.49824218750001,41.65869140625],[104.49824218750001,41.877001953124996],[104.30517578125,41.846142578125],[103.99726562500001,41.79697265625],[103.71113281250001,41.751318359375],[103.07285156250003,42.00595703125],[102.5751953125,42.092089843749996],[102.15664062500002,42.158105468749994],[101.97294921874999,42.215869140624996],[101.65996093749999,42.500048828124996],[101.5791015625,42.52353515625],[101.49531250000001,42.53876953125],[101.09199218750001,42.551318359374996],[100.51904296875,42.616796875],[100.08632812500002,42.670751953125],[99.98378906250002,42.67734375],[99.46787109375003,42.568212890625],[97.20566406250003,42.789794921875],[96.38544921875001,42.720361328124994],[95.85957031250001,43.2759765625],[95.52558593750001,43.953955078125],[95.32558593750002,44.039355468749996],[95.35029296875001,44.278076171875],[94.71201171875003,44.350830078125],[93.51621093750003,44.944482421874994],[92.78789062499999,45.0357421875],[92.57890624999999,45.010986328125],[92.423828125,45.008935546874994],[92.17265624999999,45.03525390625],[92.02978515625,45.068505859374994],[91.584375,45.076513671875],[91.05,45.217431640624994],[90.87724609374999,45.19609375],[90.66181640625001,45.525244140625],[91.00175781249999,46.035791015624994],[90.99677734375001,46.10498046875],[90.94755859374999,46.177294921874996],[90.91152343750002,46.270654296874994],[90.98574218750002,46.7490234375],[90.91054687500002,46.883251953125],[90.86992187499999,46.954492187499994],[90.79902343750001,46.98515625],[90.71552734375001,47.003857421875],[90.49619140625003,47.28515625],[90.42519531250002,47.5041015625],[90.34746093749999,47.596972656249996],[90.33066406250003,47.655175781249994],[90.31328124999999,47.67617187499999],[90.19101562500003,47.702099609375],[90.10322265625001,47.745410156249996],[90.02792968750003,47.877685546875],[89.95869140625001,47.886328125],[89.91044921874999,47.8443359375],[89.83134765624999,47.823291015624996],[89.778125,47.827001953125],[89.56093750000002,48.003955078124996],[89.47919921875001,48.029052734375],[89.04765624999999,48.0025390625],[88.97109375000002,48.049951171874994],[88.91777343749999,48.089013671874994],[88.83828125000002,48.101708984374994],[88.68183593750001,48.170556640624994],[88.57597656249999,48.220166015625],[88.56679687500002,48.317431640624996],[88.51708984375,48.38447265625],[88.41396484375002,48.40341796875],[88.30996093750002,48.472070312499994],[87.97968750000001,48.555126953125],[88.06005859375,48.707177734374994],[87.83183593749999,48.791650390624994],[87.7431640625,48.881640625],[87.87216796875003,49.000146484374994],[87.81630859375002,49.0802734375],[87.8251953125,49.11630859375],[87.81425781249999,49.1623046875],[87.93476562500001,49.16455078125],[87.98808593749999,49.186914062499994],[88.02851562500001,49.219775390624996],[88.11572265625,49.256298828125],[88.19257812500001,49.451708984374996],[88.63320312500002,49.486132812499996],[88.83164062500003,49.4484375],[88.86386718750003,49.527636718749996],[88.90019531249999,49.539697265624994],[88.94541015625003,49.507666015625],[88.97060546875002,49.483740234375],[89.00839843750003,49.472802734374994],[89.10947265625003,49.501367187499994],[89.17998046874999,49.5322265625],[89.20292968749999,49.595703125],[89.24394531249999,49.62705078125],[89.39560546875003,49.6115234375],[89.475,49.66054687499999],[89.57919921875003,49.69970703125],[89.65410156249999,49.71748046875],[89.64384765624999,49.90302734375],[90.0537109375,50.09375],[90.65507812499999,50.22236328125],[90.71435546875,50.259423828124994],[90.7607421875,50.305957031249996],[91.02158203125003,50.415478515625],[91.23378906250002,50.452392578125],[91.30058593749999,50.46337890625],[91.3408203125,50.470068359375],[91.4150390625,50.468017578125],[91.44648437500001,50.52216796875],[91.80429687500003,50.693603515625],[92.10400390625,50.6919921875],[92.1923828125,50.700585937499994],[92.35478515624999,50.864160156249994],[92.42636718750003,50.803076171875],[92.62666015625001,50.68828125],[92.68134765625001,50.683203125],[92.73867187500002,50.7109375],[92.779296875,50.778662109375],[92.8564453125,50.789111328124996],[92.94130859375002,50.778222656249994],[93.103125,50.60390625],[94.25107421875003,50.556396484375],[94.35468750000001,50.221826171874994],[94.61474609375,50.023730468749996],[94.67548828125001,50.028076171875],[94.71806640624999,50.043261718749996],[94.93027343750003,50.04375],[95.11142578125003,49.935449218749994],[95.52265625000001,49.91123046875],[96.06552734375003,49.99873046875],[96.31503906250003,49.901123046875],[96.98574218750002,49.8828125],[97.20859375000003,49.730810546875],[97.35976562500002,49.741455078125],[97.58935546875,49.911474609375],[98.00390625,50.0142578125],[98.25029296874999,50.30244140625],[98.27949218750001,50.533251953124996],[98.14501953125,50.5685546875],[98.07890624999999,50.603808593749996],[98.02978515625,50.64462890625],[97.82529296875003,50.985253906249994],[98.103125,51.483544921874994],[98.64052734375002,51.801171875],[98.89316406250003,52.11728515625],[99.92167968749999,51.755517578125],[100.03457031250002,51.737109375],[100.23037109375002,51.729833984375],[100.46894531250001,51.72607421875],[100.53623046875003,51.7134765625],[101.38125,51.45263671875],[101.57089843750003,51.4671875],[101.82119140625002,51.421044921874994],[102.11152343750001,51.353466796875],[102.15566406250002,51.313769531249996],[102.16005859375002,51.26083984375],[102.14238281249999,51.216064453125],[102.15195312500003,51.10751953125],[102.19453125000001,51.050683593749994],[102.21503906250001,50.829443359375],[102.31660156250001,50.71845703125],[102.28837890624999,50.585107421874994],[103.30439453125001,50.20029296875],[103.63291015625003,50.138574218749994],[103.72324218750003,50.153857421874996],[103.80263671875002,50.176074218749996],[104.07871093750003,50.154248046875],[105.38359374999999,50.47373046875],[106.21787109375003,50.304589843749994],[106.36845703124999,50.317578125],[106.57441406250001,50.32880859375],[106.71113281250001,50.31259765625],[106.94130859375002,50.196679687499994],[107.04023437500001,50.086474609374996],[107.14306640625,50.033007812499996],[107.23330078125002,49.989404296874994],[107.34707031250002,49.986669921875],[107.63095703125003,49.98310546875],[107.91660156250003,49.947802734374996],[107.96542968750003,49.653515625],[108.40693359375001,49.396386718749994],[108.5224609375,49.34150390625],[108.61367187500002,49.322802734374996],[109.23671875000002,49.334912109375],[109.45371093750003,49.296337890625],[109.52871093750002,49.269873046875],[110.19990234375001,49.17041015625],[110.42783203125003,49.219970703125],[110.70976562499999,49.14296875],[110.82792968749999,49.166162109374994],[111.20419921875003,49.304296875],[111.33662109375001,49.35585937499999],[111.42929687500003,49.342626953125],[112.07968750000003,49.42421875],[112.49492187499999,49.53232421875],[112.69736328125003,49.507275390625],[112.80644531249999,49.523583984374994],[112.91484374999999,49.569238281249994],[113.05556640625002,49.616259765624996],[113.09208984374999,49.692529296874994],[113.16416015625003,49.797167968749996],[113.31904296875001,49.874316406249996],[113.44550781250001,49.9416015625],[113.57421875,50.00703125],[114.29707031250001,50.2744140625],[114.7431640625,50.233691406249996],[115.00332031250002,50.138574218749994],[115.27451171875003,49.948876953124994],[115.36503906249999,49.911767578124994],[115.42919921875,49.896484375],[115.58798828125003,49.886035156249996],[115.7177734375,49.880615234375],[115.79521484374999,49.905908203124994],[115.92597656250001,49.9521484375],[116.13457031249999,50.010791015624996],[116.216796875,50.00927734375],[116.35117187500003,49.978076171874996],[116.55117187500002,49.9203125],[116.68330078125001,49.823779296874996],[115.82050781250001,48.57724609375],[115.79169921875001,48.455712890624994],[115.79658203125001,48.346337890624994],[115.78554687500002,48.2482421875],[115.63945312499999,48.18623046875],[115.52509765625001,48.130859375],[115.61640625000001,47.874804687499996],[115.89824218749999,47.686914062499994],[115.99384765625001,47.71132812499999],[116.07480468750003,47.78955078125],[116.23115234375001,47.858203125],[116.31718749999999,47.85986328125],[116.37822265624999,47.844042968749996],[116.51347656249999,47.83955078125],[116.65195312500003,47.864501953125],[116.76054687499999,47.869775390624994],[116.90117187499999,47.853076171874996],[116.95166015625,47.836572265624994],[117.06972656250002,47.806396484375],[117.28593749999999,47.666357421875],[117.35078125000001,47.652197265625],[117.76835937499999,47.987890625],[118.49843750000002,47.983984375],[118.56777343750002,47.943261718749994],[118.69052734375003,47.822265625],[118.75996093750001,47.757617187499996],[118.88027343750002,47.72509765625],[119.017578125,47.685351562499996],[119.08193359375002,47.654150390625],[119.71113281250001,47.15],[119.89785156250002,46.8578125],[119.8671875,46.672167968749996],[119.74746093750002,46.627197265625],[119.70664062500003,46.606005859374996],[119.62021484375003,46.603955078125],[119.47402343750002,46.62666015625],[119.33183593749999,46.613818359374996],[119.162109375,46.638671875],[118.95712890625003,46.73486328125],[118.84394531250001,46.760205078125],[118.79033203124999,46.7470703125],[118.72294921874999,46.69189453125],[118.64873046874999,46.70166015625],[118.58046875000002,46.69189453125],[118.40439453125003,46.703173828124996],[118.30869140625003,46.717041015625],[118.15683593750003,46.678564453125],[118.0712890625,46.6666015625],[117.7412109375,46.5181640625],[117.546875,46.58828125],[117.43808593750003,46.586230468749996],[117.40556640624999,46.5708984375],[117.39218750000003,46.53759765625],[117.35634765625002,46.436669921874994],[117.35693359375,46.39130859375],[117.33339843750002,46.36201171875],[116.85908203125001,46.387939453125],[116.56259765625003,46.289794921875],[116.21298828125003,45.8869140625],[116.22910156250003,45.845751953124996],[116.240625,45.79599609375],[116.19765625000002,45.73935546875],[115.68105468750002,45.458251953125],[115.16259765625,45.390234375],[114.91923828124999,45.378271484375],[114.73876953125,45.41962890625],[114.56015625000003,45.389990234375],[114.41914062500001,45.202587890625],[114.16738281250002,45.049853515624996],[114.08027343750001,44.971142578125],[113.87705078125003,44.89619140625],[113.65263671874999,44.763476562499996],[113.58701171875003,44.745703125],[113.04941406250003,44.810351562499996],[112.70673828125001,44.883447265624994],[112.59677734375003,44.91767578125],[112.49931640624999,45.0109375],[112.41132812500001,45.058203125],[112.11289062500003,45.062939453125],[112.03261718750002,45.081640625],[111.89804687500003,45.0640625],[111.40224609375002,44.36728515625],[111.93173828125003,43.81494140625],[111.878125,43.68017578125]]]},"properties":{"name":"Mongolia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[145.75195312499997,15.133154296874991],[145.71318359375007,15.215283203125026],[145.821875,15.265380859375014],[145.75195312499997,15.133154296874991]]]},"properties":{"name":"N. Mariana Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[32.112890625,-26.839453125],[32.10595703125,-26.52001953125],[32.04140625000002,-26.28125],[32.060546875,-26.018359375],[31.9482421875,-25.957617187500006],[31.98583984375,-24.46064453125001],[31.799609375000017,-23.8921875],[31.54560546875001,-23.48232421875001],[31.287890625000017,-22.40205078125001],[31.429492187500017,-22.298828125],[32.429785156250006,-21.29707031250001],[32.353613281250006,-21.136523437500003],[32.49238281250001,-20.659765625],[32.992773437500006,-19.98486328125],[32.77763671875002,-19.388769531250006],[32.84980468750001,-19.10439453125001],[32.69970703125,-18.94091796875],[32.99306640625002,-18.35957031250001],[32.87626953125002,-16.88359375],[32.94804687500002,-16.71230468750001],[31.939843750000023,-16.428808593750006],[31.236230468750023,-16.02363281250001],[30.437792968750017,-15.995312500000011],[30.39609375,-15.64306640625],[30.231835937500023,-14.990332031250006],[33.201757812500006,-14.013378906250011],[33.63642578125001,-14.568164062500003],[34.375,-14.4248046875],[34.50527343750002,-14.59814453125],[34.54082031250002,-15.297265625],[34.24609375,-15.829394531250003],[34.528125,-16.319140625],[34.93339843750002,-16.760351562500006],[35.11210937500002,-16.898535156250006],[35.06464843750001,-17.07861328125],[35.124609375,-17.127246093750003],[35.20136718750001,-17.13105468750001],[35.272558593750006,-17.118457031250003],[35.29042968750002,-17.096972656250003],[35.28115234375002,-16.80781250000001],[35.22978515625002,-16.639257812500006],[35.178320312500006,-16.573339843750006],[35.16718750000001,-16.56025390625001],[35.242773437500006,-16.375390625],[35.358496093750006,-16.160546875],[35.59931640625001,-16.12587890625001],[35.70888671875002,-16.095800781250006],[35.75527343750002,-16.05830078125001],[35.79121093750001,-15.958691406250011],[35.89277343750001,-14.891796875000011],[35.86669921875,-14.86376953125],[35.84716796875,-14.6708984375],[35.6904296875,-14.465527343750011],[35.48847656250001,-14.201074218750009],[35.37578125000002,-14.058691406250006],[35.24746093750002,-13.896875],[35.01386718750001,-13.643457031250009],[34.61152343750001,-13.437890625],[34.54570312500002,-13.21630859375],[34.542578125,-13.108691406250003],[34.35781250000002,-12.164746093750011],[34.60625,-11.690039062500006],[34.65957031250002,-11.588671875],[34.82656250000002,-11.57568359375],[34.95947265625,-11.578125],[35.1826171875,-11.574804687500006],[35.41826171875002,-11.583203125000011],[35.50439453125,-11.604785156250003],[35.56435546875002,-11.60234375],[35.630957031250006,-11.58203125],[35.78544921875002,-11.452929687500003],[35.91132812500001,-11.4546875],[36.08222656250001,-11.537304687500011],[36.17548828125001,-11.609277343750009],[36.19130859375002,-11.670703125],[36.3056640625,-11.706347656250003],[36.97890625000002,-11.566992187500006],[37.37285156250002,-11.71044921875],[37.54169921875001,-11.675097656250003],[37.72480468750001,-11.580664062500006],[37.92021484375002,-11.294726562500003],[38.491796875,-11.413281250000011],[38.9875,-11.167285156250003],[39.81708984375001,-10.912402343750003],[39.98867187500002,-10.82080078125],[40.46357421875001,-10.46435546875],[40.61171875000002,-10.661523437500009],[40.48662109375002,-10.76513671875],[40.59716796875,-10.830664062500006],[40.40283203125,-11.33203125],[40.53154296875002,-12.004589843750011],[40.48710937500002,-12.4921875],[40.58085937500002,-12.635546875],[40.43681640625002,-12.983105468750011],[40.56875,-12.984667968750003],[40.595703125,-14.122851562500003],[40.715625,-14.214453125],[40.64609375,-14.538671875],[40.775,-14.421289062500009],[40.84453125000002,-14.718652343750009],[40.617773437500006,-15.115527343750003],[40.650976562500006,-15.260937500000011],[39.98359375000001,-16.22548828125001],[39.79091796875002,-16.29453125],[39.84462890625002,-16.435644531250006],[39.084375,-16.97285156250001],[38.14492187500002,-17.242773437500006],[37.24453125000002,-17.73994140625001],[36.93935546875002,-17.993457031250003],[36.40371093750002,-18.76972656250001],[36.26289062500001,-18.71962890625001],[36.23564453125002,-18.861328125],[35.85371093750001,-18.99335937500001],[34.947851562500006,-19.81269531250001],[34.6494140625,-19.70136718750001],[34.75576171875002,-19.82197265625001],[34.705078125,-20.473046875],[34.98232421875002,-20.80625],[35.267675781250006,-21.650976562500006],[35.31572265625002,-22.396875],[35.38300781250001,-22.45458984375],[35.45634765625002,-22.11591796875001],[35.53007812500002,-22.248144531250006],[35.57539062500001,-22.96308593750001],[35.37041015625002,-23.79824218750001],[35.5419921875,-23.82441406250001],[35.48964843750002,-24.065527343750006],[34.99208984375002,-24.65058593750001],[32.96113281250001,-25.49042968750001],[32.590429687500006,-26.00410156250001],[32.84882812500001,-26.26806640625],[32.95488281250002,-26.08359375],[32.93359375,-26.25234375],[32.88916015625,-26.83046875],[32.88613281250002,-26.84931640625001],[32.353515625,-26.861621093750003],[32.19960937500002,-26.83349609375],[32.112890625,-26.839453125]]]},"properties":{"name":"Mozambique","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-16.37333984374999,19.706445312499994],[-16.437548828124932,19.609277343749994],[-16.477001953124983,19.710351562499994],[-16.343652343749994,19.86621093750003],[-16.37333984374999,19.706445312499994]]],[[[-5.359912109374989,16.282861328124994],[-5.5125,15.496289062499983],[-9.293701171875,15.502832031249994],[-9.350585937499943,15.677392578125023],[-9.38535156249992,15.667626953124994],[-9.4265625,15.623046875000057],[-9.447705078124926,15.574853515624994],[-9.446923828124937,15.458203124999955],[-9.941406249999972,15.373779296874986],[-10.696582031249989,15.42265625],[-10.9482421875,15.151123046875014],[-11.455224609374994,15.62539062499999],[-11.760156249999937,15.425537109375057],[-11.828759765624966,15.244873046875014],[-11.872851562499989,14.995166015625031],[-12.02158203124992,14.804931640625],[-12.081542968749972,14.766357421875057],[-12.104687499999955,14.745361328125043],[-12.40869140625,14.889013671874991],[-12.735253906249994,15.13125],[-13.105273437499989,15.57177734375],[-13.40966796875,16.059179687500006],[-13.756640624999989,16.172509765624994],[-13.868457031249932,16.14814453125001],[-14.300097656249932,16.58027343750001],[-14.990625,16.676904296874994],[-15.768212890624994,16.485107421875],[-16.23901367187497,16.53129882812499],[-16.44101562499992,16.20454101562504],[-16.480078124999977,16.097216796875017],[-16.50205078124992,15.917333984375063],[-16.53525390624995,15.838378906250057],[-16.53574218749995,16.28681640625001],[-16.463623046875,16.60151367187501],[-16.030322265625017,17.88793945312497],[-16.213085937499926,19.003320312500023],[-16.51445312499996,19.361962890624994],[-16.305273437499977,19.51264648437504],[-16.44487304687499,19.47314453124997],[-16.21044921875003,20.227929687500023],[-16.42978515624995,20.652343750000057],[-16.622509765624955,20.634179687499994],[-16.87607421874992,21.086132812499955],[-16.998242187499926,21.039697265625023],[-17.048046874999955,20.80615234375003],[-17.06396484375,20.89882812499999],[-16.96455078125001,21.329248046875023],[-15.231201171875,21.331298828125],[-14.084667968749926,21.33271484375001],[-13.626025390624932,21.33325195312503],[-13.396728515624943,21.333544921875017],[-13.167431640624926,21.333789062500074],[-13.016210937499949,21.33393554687501],[-13.025097656249983,21.46679687499997],[-13.032226562500028,21.572070312500017],[-13.041748046875,21.71381835937504],[-13.051220703124983,21.854785156250074],[-13.094335937499977,22.49599609375005],[-13.153271484374983,22.820507812499983],[-13.031494140624943,23.000244140625],[-12.895996093749972,23.08955078125001],[-12.739599609375006,23.192724609375063],[-12.62041015624996,23.271337890625006],[-12.559375,23.290820312500045],[-12.372900390624977,23.318017578124994],[-12.023437499999943,23.467578125000017],[-12.016308593749983,23.97021484375],[-12.016308593749983,24.378662109375],[-12.016308593749983,24.923242187499994],[-12.016308593749983,25.059375],[-12.016308593749983,25.331689453124994],[-12.016308593749983,25.740136718749994],[-12.016308593749983,25.995410156250017],[-10.376123046874966,25.995458984375034],[-9.444531249999983,25.99550781250005],[-9.071923828124937,25.99550781250005],[-8.885644531249994,25.99550781250005],[-8.682226562499949,25.99550781250005],[-8.68212890625,26.109472656250006],[-8.68212890625,26.273193359375057],[-8.682324218749955,26.49770507812505],[-8.682617187500028,26.723144531250057],[-8.682861328124972,26.92133789062501],[-8.683349609375,27.285937500000045],[-4.822607421874949,24.99560546875],[-5.640771484374994,24.99516601562499],[-5.959814453124977,24.994970703125063],[-6.287207031249977,24.99482421875001],[-6.594091796874977,24.99462890624997],[-6.396582031249977,23.274804687499994],[-6.02641601562496,20.04218750000001],[-5.827099609374955,18.301562500000045],[-5.741699218749943,17.555566406250023],[-5.713183593750017,17.306884765625],[-5.684765624999983,17.058251953124966],[-5.628662109375028,16.568652343750045],[-5.50961914062492,16.442041015625023],[-5.359912109374989,16.282861328124994]]]]},"properties":{"name":"Mauritania","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-62.1484375,16.74033203124999],[-62.221630859375,16.699511718750003],[-62.191357421875,16.804394531249997],[-62.1484375,16.74033203124999]]]},"properties":{"name":"Montserrat","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[57.65126953125002,-20.48486328125],[57.31767578125002,-20.42763671875001],[57.416015625,-20.18378906250001],[57.65654296875002,-19.98994140625001],[57.7919921875,-20.21259765625001],[57.65126953125002,-20.48486328125]]]},"properties":{"name":"Mauritius","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[34.95947265625003,-11.578125],[34.82656250000005,-11.575683593749972],[34.65957031250005,-11.58867187499996],[34.61855468750005,-11.620214843749991],[34.60625,-11.690039062500006],[34.3578125,-12.164746093749997],[34.542578125,-13.108691406250003],[34.54570312500002,-13.21630859375],[34.6115234375001,-13.437890625000023],[35.0138671875001,-13.64345703124998],[35.247460937499994,-13.896875],[35.37578125000002,-14.05869140625002],[35.48847656250004,-14.20107421874998],[35.69042968749997,-14.465527343750026],[35.84716796875003,-14.670898437500043],[35.8927734375001,-14.891796875000011],[35.7912109375001,-15.958691406250026],[35.75527343750005,-16.058300781249983],[35.708886718749994,-16.095800781249977],[35.5993164062501,-16.12587890624998],[35.35849609375006,-16.160546875000023],[35.242773437500006,-16.375390625],[35.16718750000004,-16.56025390625001],[35.178320312500006,-16.57333984375002],[35.22978515625002,-16.639257812500034],[35.281152343749994,-16.8078125],[35.29042968750005,-17.096972656250017],[35.27255859375006,-17.11845703124996],[35.2013671875001,-17.13105468750004],[35.124609375,-17.127246093749974],[35.06464843750004,-17.078613281250014],[35.11210937500002,-16.898535156250006],[34.93339843750002,-16.760351562500006],[34.528125,-16.319140625],[34.24609374999997,-15.829394531249974],[34.54082031250002,-15.297265625],[34.50527343750005,-14.598144531249957],[34.375,-14.4248046875],[33.63642578125004,-14.568164062499974],[33.148046875,-13.94091796875],[32.98125,-14.009375],[32.797460937500006,-13.6884765625],[32.67041015624997,-13.590429687500006],[32.96757812500002,-13.225],[32.97519531250006,-12.701367187499983],[33.51230468750006,-12.347753906249977],[33.340136718750074,-12.308300781250011],[33.25234375000005,-12.112597656250031],[33.3039062500001,-11.69082031249998],[33.23271484375002,-11.417675781250026],[33.26835937500002,-11.403906249999977],[33.379785156249994,-11.15791015625004],[33.29277343750002,-10.85234375],[33.661523437499994,-10.553125],[33.55371093749997,-10.391308593750011],[33.53759765624997,-10.351562499999986],[33.52890625,-10.234667968749974],[33.31152343750003,-10.037988281249966],[33.3371093750001,-9.954003906249994],[33.350976562499994,-9.862207031250037],[33.25,-9.759570312500003],[33.148046875,-9.603515625],[32.99599609375005,-9.622851562499946],[32.91992187500003,-9.407421875000026],[33.88886718750004,-9.670117187499983],[33.99560546875003,-9.495410156250003],[34.32089843750006,-9.731542968749977],[34.56992187500006,-10.241113281249966],[34.66708984375006,-10.792480468750028],[34.60791015624997,-11.08046875],[34.77382812500005,-11.341699218750009],[34.890625,-11.3935546875],[34.93701171874997,-11.463476562500034],[34.95947265625003,-11.578125]]]},"properties":{"name":"Malawi","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[111.38925781250006,2.415332031250031],[111.31152343749997,2.437597656250034],[111.33349609374997,2.768310546875],[111.38925781250006,2.415332031250031]]],[[[104.22158203125,2.731738281250003],[104.1291015625001,2.767236328125037],[104.18476562500004,2.871728515625009],[104.22158203125,2.731738281250003]]],[[[117.88476562499997,4.186132812500006],[117.64902343750012,4.168994140624974],[117.70800781249997,4.262402343749997],[117.88476562499997,4.186132812500006]]],[[[100.28896484375005,5.294726562499989],[100.19101562500006,5.28286132812498],[100.2455078125,5.467773437499986],[100.33886718749997,5.410058593750037],[100.28896484375005,5.294726562499989]]],[[[99.848046875,6.465722656249994],[99.9186523437501,6.358593750000011],[99.74375,6.263281249999963],[99.64628906250002,6.418359375000023],[99.848046875,6.465722656249994]]],[[[102.10107421874997,6.242236328125031],[102.34013671875002,6.172021484375023],[102.534375,5.862548828125028],[103.09707031250005,5.408447265624986],[103.41582031250007,4.85029296875004],[103.43945312499997,2.93310546875],[103.8122070312501,2.58046875],[104.21855468750002,1.722851562499997],[104.25009765625012,1.388574218750009],[104.11494140625004,1.412255859375037],[103.98144531250003,1.623632812500034],[103.99150390625002,1.454785156249997],[103.6945312500001,1.449658203125026],[103.48027343750007,1.329492187499966],[103.35683593750005,1.546142578125057],[102.72714843750012,1.855566406250034],[101.29550781250012,2.885205078125011],[101.29990234375012,3.253271484375034],[100.71542968750006,3.966210937499966],[100.79550781250012,4.023388671874983],[100.61455078125002,4.3734375],[100.34326171874997,5.984179687500031],[100.11914062499997,6.441992187500048],[100.26142578125004,6.682714843749963],[100.3454101562501,6.549902343750006],[100.75449218750012,6.460058593749991],[100.87392578125,6.24541015624996],[101.05351562500002,6.242578125],[100.98164062500004,5.771044921875045],[101.1139648437501,5.636767578125045],[101.5560546875,5.907763671875003],[101.67841796875004,5.778808593750028],[101.87363281250012,5.825292968749991],[102.10107421874997,6.242236328125031]]],[[[117.5744140625001,4.17060546875004],[117.10058593750003,4.337060546875023],[116.51474609375006,4.370800781249969],[115.86074218750005,4.348046875000037],[115.67880859375006,4.193017578124994],[115.45439453125002,3.034326171875009],[115.24697265625005,3.025927734374989],[115.117578125,2.89487304687502],[115.08076171875004,2.63422851562504],[115.1791015625,2.523193359374972],[114.78642578125002,2.250488281250014],[114.83056640625003,1.980029296874989],[114.5125,1.452001953124963],[113.90234375000003,1.434277343749997],[113.6222656250001,1.2359375],[113.00654296875004,1.433886718750003],[112.94296875000006,1.566992187500034],[112.47617187500006,1.559082031250028],[112.1857421875001,1.4390625],[112.078515625,1.143359374999974],[111.80898437500005,1.011669921874969],[111.10136718750002,1.050537109374986],[110.50576171875005,0.861962890625023],[109.65400390625004,1.614892578125023],[109.53896484375,1.89619140625004],[109.62890625000003,2.027539062499983],[109.86484375000012,1.764453125000031],[110.34921875000012,1.719726562499972],[111.22324218750012,1.395849609374991],[111.0287109375,1.557812500000026],[111.26816406250012,2.13974609375002],[111.20859375000012,2.379638671875043],[111.44384765625003,2.381542968749983],[111.5125,2.743017578124991],[112.98789062500006,3.161914062499974],[113.92392578125006,4.243212890625003],[114.0638671875,4.592675781249966],[114.65410156250007,4.037646484375045],[114.84023437500005,4.393212890625009],[114.74667968750006,4.718066406250017],[115.02675781250005,4.899707031249989],[115.10703125000006,4.390429687499974],[115.290625,4.352587890624989],[115.1400390625,4.899755859374991],[115.37490234375,4.932763671874966],[115.55449218750007,5.093554687500045],[115.41904296875012,5.413183593749963],[115.60390625,5.603417968749994],[115.74082031250012,5.533007812500045],[115.8771484375001,5.613525390625014],[116.74980468750007,6.977099609374989],[116.8498046875001,6.826708984374989],[116.78808593749997,6.606103515624994],[117.12851562500012,6.968896484375009],[117.2298828125,6.939990234374974],[117.29404296875006,6.676904296875023],[117.60966796875002,6.512646484375054],[117.69375,6.35],[117.64453124999997,6.001855468749994],[117.5011718750001,5.884667968750009],[118.00380859375,6.053320312499991],[118.11582031250006,5.8625],[117.93476562500004,5.7875],[117.97363281249997,5.70625],[118.35312500000012,5.80605468749998],[118.59482421875006,5.592089843750003],[119.22343750000007,5.412646484375031],[119.2663085937501,5.308105468750057],[119.21962890625,5.159814453125037],[118.9125,5.02290039062504],[118.26054687500007,4.988867187500034],[118.18535156250002,4.828515625000051],[118.5625,4.502148437499997],[118.54833984375003,4.379248046875006],[118.008203125,4.250244140625014],[117.6964843750001,4.342822265625045],[117.5744140625001,4.17060546875004]]],[[[117.14160156250003,7.168212890625028],[117.08066406250006,7.115283203124989],[117.06425781250007,7.26069335937504],[117.2640625,7.351660156250006],[117.26679687500004,7.220800781249991],[117.14160156250003,7.168212890625028]]]]},"properties":{"name":"Malaysia","childNum":8}},{"geometry":{"type":"Polygon","coordinates":[[[23.380664062500017,-17.640625],[24.27490234375,-17.481054687500006],[24.73291015625,-17.51777343750001],[25.001757812500017,-17.56855468750001],[25.2587890625,-17.793554687500006],[24.909082031250023,-17.821386718750006],[24.530566406250017,-18.052734375],[24.243945312500017,-18.0234375],[23.599707031250006,-18.4599609375],[23.219335937500006,-17.99970703125001],[20.97412109375,-18.31884765625],[20.9794921875,-21.9619140625],[19.977343750000017,-22.00019531250001],[19.98046875,-24.77675781250001],[19.98046875,-28.310351562500003],[19.98046875,-28.451269531250006],[19.539843750000017,-28.574609375],[19.31269531250001,-28.73330078125001],[19.24580078125001,-28.901660156250003],[19.16171875,-28.938769531250003],[18.310839843750017,-28.88623046875],[17.44794921875001,-28.69814453125001],[17.34785156250001,-28.50117187500001],[17.358691406250017,-28.26943359375001],[17.1884765625,-28.13251953125001],[17.05625,-28.031054687500003],[16.93330078125001,-28.069628906250003],[16.875292968750017,-28.1279296875],[16.841210937500023,-28.21894531250001],[16.81015625,-28.26455078125001],[16.7875,-28.39472656250001],[16.755761718750023,-28.4521484375],[16.62617187500001,-28.487890625],[16.487109375000017,-28.572851562500006],[16.447558593750017,-28.617578125],[15.719042968750017,-27.9658203125],[15.341503906250011,-27.386523437500003],[15.139062500000023,-26.50800781250001],[14.9677734375,-26.31806640625001],[14.837109375000011,-25.033203125],[14.5015625,-24.201953125],[14.462792968750023,-22.44912109375001],[13.450585937500023,-20.91669921875001],[13.168359375000023,-20.184667968750006],[12.458203125000011,-18.9267578125],[11.77587890625,-18.001757812500003],[11.733496093750006,-17.7509765625],[11.743066406250023,-17.24921875000001],[11.902539062500011,-17.2265625],[12.013964843750017,-17.168554687500006],[12.21337890625,-17.2099609375],[12.318457031250006,-17.21337890625],[12.359277343750023,-17.205859375],[12.548144531250017,-17.212695312500003],[13.179492187500017,-16.9716796875],[13.475976562500023,-17.0400390625],[14.017480468750023,-17.40888671875001],[16.1484375,-17.390234375],[18.396386718750023,-17.3994140625],[18.95527343750001,-17.803515625],[20.1943359375,-17.863671875],[20.745507812500023,-18.01972656250001],[22.32421875,-17.8375],[23.380664062500017,-17.640625]]]},"properties":{"name":"Namibia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[167.54443359375003,-22.62324218750001],[167.44375,-22.63916015624997],[167.44345703125006,-22.541406250000037],[167.54443359375003,-22.62324218750001]]],[[[168.01093750000004,-21.429980468750017],[168.1390625,-21.44521484375001],[168.12070312500012,-21.615820312500034],[167.96679687500003,-21.641601562499957],[167.81542968749997,-21.392675781249963],[167.9884765625001,-21.337890624999986],[168.01093750000004,-21.429980468750017]]],[[[167.40087890625003,-21.16064453125003],[167.07265625,-20.99726562499997],[167.03271484374997,-20.922558593750026],[167.18945312500003,-20.803515625000017],[167.05576171875012,-20.720214843750014],[167.29794921875006,-20.732519531250034],[167.40087890625003,-21.16064453125003]]],[[[164.20234375000004,-20.246093749999957],[164.4359375,-20.282226562499957],[165.191796875,-20.768847656249974],[165.66279296875004,-21.267187499999977],[166.94238281250003,-22.09013671875003],[166.97031250000012,-22.32285156250002],[166.77412109375004,-22.37617187500004],[166.4679687500001,-22.256054687499997],[164.92744140625004,-21.289843749999974],[164.16972656250007,-20.48017578125004],[164.05966796875012,-20.141503906249966],[164.20234375000004,-20.246093749999957]]]]},"properties":{"name":"New Caledonia","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[14.97900390625,22.99619140624999],[15.181835937500011,21.523388671874997],[15.607324218750023,20.954394531250003],[15.587109375000011,20.733300781249994],[15.963183593750017,20.34619140625],[15.735058593750011,19.904052734375],[15.474316406250011,16.908398437499997],[14.367968750000017,15.750146484374994],[13.4482421875,14.380664062500003],[13.505761718750023,14.134423828124994],[13.606347656250023,13.70458984375],[13.426953125000011,13.701757812499991],[13.323828125,13.670849609374997],[12.871679687500006,13.449023437500003],[12.65478515625,13.3265625],[12.463183593750017,13.09375],[10.958886718750023,13.371533203124997],[10.475878906250017,13.330224609374994],[10.229589843750006,13.281005859375],[10.184667968750006,13.270117187499991],[9.615917968750011,12.810644531249991],[9.201562500000023,12.821484375],[8.750585937500006,12.908154296874997],[8.4560546875,13.059667968749991],[8.095019531250017,13.291162109374994],[7.955761718750011,13.32275390625],[7.788671875,13.337890625],[7.056738281250006,13.000195312499997],[6.804296875,13.107666015625],[6.2998046875,13.658789062499991],[6.184277343750011,13.66367187499999],[5.838183593750017,13.765380859375],[5.491992187500017,13.872851562500003],[5.415820312500017,13.859179687500003],[5.361621093750017,13.836865234374997],[5.241894531250011,13.757226562499994],[4.664843750000017,13.733203125],[4.147558593750006,13.457714843749997],[3.947851562500006,12.775048828124994],[3.646679687500011,12.529980468749997],[3.595410156250011,11.6962890625],[2.805273437500006,12.383837890624989],[2.366015625000017,12.221923828125],[2.38916015625,11.897070312499991],[2.072949218750011,12.309375],[2.226269531250011,12.466064453125],[2.104589843750006,12.701269531249991],[1.56494140625,12.635400390624994],[0.9873046875,13.041894531249994],[0.988476562500011,13.36484375],[1.201171875,13.357519531249991],[0.6181640625,13.703417968750003],[0.42919921875,13.972119140624997],[0.382519531250011,14.245800781249997],[0.163867187500017,14.497216796874994],[0.217480468750011,14.911474609374991],[0.947460937500011,14.982128906249997],[1.300195312500023,15.272265625],[3.001074218750006,15.340966796874994],[3.06015625,15.427197265624997],[3.504296875000023,15.356347656249994],[3.5205078125,15.483105468749997],[3.842968750000011,15.701708984375003],[4.121289062500011,16.357714843750003],[4.234667968750017,16.996386718750003],[4.227636718750006,19.142773437499997],[5.836621093750011,19.479150390624994],[7.481738281250017,20.873095703125003],[11.967871093750006,23.517871093750003],[13.48125,23.18017578125],[14.215527343750011,22.619677734375003],[14.97900390625,22.99619140624999]]]},"properties":{"name":"Niger","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[7.30078125,4.418164062500026],[7.140429687500017,4.395117187500034],[7.227343750000045,4.527343749999972],[7.30078125,4.418164062500026]]],[[[6.804296875,13.107666015625],[7.056738281250006,13.00019531250004],[7.788671875,13.337890625],[7.955761718750011,13.322753906250028],[8.095019531250045,13.29116210937498],[8.750585937500034,12.908154296875026],[9.20156250000008,12.82148437500004],[9.615917968750011,12.810644531249963],[10.184667968750063,13.270117187499963],[10.229589843749977,13.281005859375043],[10.475878906250074,13.330224609375037],[10.958886718750051,13.371533203125011],[12.463183593750017,13.09375],[12.654785156250057,13.3265625],[13.426953125000068,13.701757812499963],[13.606347656250023,13.704589843750014],[13.932324218750011,13.258496093749997],[14.06396484375,13.078515625],[14.160058593750023,12.612792968749986],[14.184863281250017,12.447216796874997],[14.272851562500023,12.356494140624989],[14.518945312500051,12.298242187500023],[14.619726562500063,12.150976562500048],[14.559765625000011,11.492285156249963],[14.20234375000004,11.268164062499963],[14.143261718750068,11.248535156250043],[14.056738281250034,11.245019531250037],[13.981445312500057,11.21186523437504],[13.892089843750057,11.140087890624983],[13.699902343749983,10.873144531250048],[13.53535156250004,10.605078124999963],[13.414550781250028,10.171435546874989],[13.269921875000051,10.036181640624974],[13.198730468750028,9.563769531250003],[12.929492187500074,9.426269531249972],[12.87568359375004,9.303515625000017],[12.80654296875008,8.886621093749994],[12.7822265625,8.817871093750014],[12.651562500000011,8.667773437499989],[12.40351562500004,8.59555664062502],[12.311328125000074,8.419726562499989],[12.2333984375,8.282324218749977],[12.016015625000051,7.589746093750009],[11.809179687500006,7.345068359374991],[11.767382812500017,7.272265624999989],[11.861425781249977,7.11640625000004],[11.657519531250017,6.951562500000023],[11.580078125000057,6.88886718750004],[11.551660156250023,6.697265625],[11.153320312500057,6.437939453125011],[11.1064453125,6.457714843750054],[11.032519531250045,6.697900390625037],[10.954199218750006,6.7765625],[10.60625,7.063085937500006],[10.413183593750006,6.877734375],[10.293066406250034,6.876757812499974],[10.205468750000051,6.891601562499986],[10.185546874999972,6.91279296875004],[10.167773437500017,6.959179687499983],[10.143554687500057,6.99643554687502],[10.038867187500045,6.921386718750014],[9.874218750000068,6.803271484375017],[9.82070312500008,6.783935546874986],[9.779882812500034,6.760156250000023],[9.725585937499972,6.65],[9.659960937500017,6.531982421874986],[9.490234375,6.418652343749997],[8.997167968750006,5.917724609375],[8.715625,5.046875],[8.514843750000068,4.724707031250034],[8.23378906250008,4.907470703124972],[8.293066406250006,4.557617187500014],[7.644238281250068,4.525341796875011],[7.530761718750028,4.655175781249994],[7.284375,4.547656250000031],[7.076562500000051,4.716162109374991],[7.15468750000008,4.514404296875],[6.92324218750008,4.390673828125017],[6.767675781250006,4.724707031250034],[6.860351562500057,4.373339843750045],[6.633007812500011,4.340234375000051],[6.579980468750051,4.475976562499994],[6.554589843750023,4.34140625000002],[6.263671875,4.309423828124991],[6.270996093749972,4.432128906250028],[6.173339843749972,4.277392578125031],[5.970703125,4.338574218749983],[5.587792968750051,4.647216796874972],[5.448144531250023,4.945849609374974],[5.383300781250057,5.129003906249977],[5.475976562500023,5.153857421874989],[5.370019531250023,5.195019531250026],[5.367968750000045,5.337744140624963],[5.549707031250023,5.474218749999963],[5.385839843750034,5.401757812500037],[5.199218750000028,5.533544921874977],[5.456640624999977,5.61171875],[5.327343750000011,5.707519531249986],[5.112402343750034,5.64155273437504],[4.861035156250068,6.026318359374997],[4.431347656250011,6.348583984375026],[3.450781249999977,6.427050781250017],[3.71699218750004,6.597949218750017],[3.430175781250057,6.525],[3.335546875000063,6.396923828125011],[2.706445312500051,6.369238281249963],[2.735644531250045,6.595703125],[2.753710937499989,6.661767578124966],[2.774609374999983,6.711718750000017],[2.752929687500028,6.771630859374966],[2.731738281250045,6.852832031249989],[2.721386718750068,6.980273437500017],[2.75673828125008,7.067919921875017],[2.750488281250057,7.39506835937496],[2.765820312500068,7.422509765625051],[2.783984375000045,7.443408203125045],[2.78515625,7.476855468750017],[2.703125,8.371826171875],[2.774804687500023,9.048535156250026],[3.044921875,9.08383789062502],[3.325195312499972,9.778466796875051],[3.60205078125,10.004541015625009],[3.646582031250006,10.408984374999989],[3.771777343750017,10.417626953124966],[3.83447265625,10.607421875],[3.7568359375,10.76875],[3.71640625,11.07958984375],[3.695312499999972,11.12031250000004],[3.63886718750004,11.176855468750006],[3.487792968749972,11.395410156250037],[3.490527343750017,11.499218750000054],[3.55390625000004,11.631884765624989],[3.595410156250068,11.696289062500057],[3.664746093750068,11.762451171875028],[3.646679687500011,12.529980468749983],[3.947851562500006,12.775048828124994],[4.147558593750006,13.457714843749983],[4.664843750000045,13.733203124999974],[5.241894531250011,13.757226562499994],[5.361621093750074,13.836865234375054],[5.415820312500017,13.859179687499974],[5.491992187500074,13.872851562500003],[6.2998046875,13.658789062500006],[6.804296875,13.107666015625]]]]},"properties":{"name":"Nigeria","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-83.6419921875,10.917236328125],[-83.71293945312499,10.785888671875],[-83.91928710937499,10.7353515625],[-84.6341796875,11.045605468749997],[-84.9091796875,10.9453125],[-85.5841796875,11.189453125],[-85.7443359375,11.06210937499999],[-87.670166015625,12.965673828124991],[-87.58505859374999,13.043310546874991],[-87.42436523437499,12.921142578125],[-87.33725585937499,12.979248046875],[-87.05917968749999,12.991455078125],[-87.00932617187499,13.0078125],[-86.918212890625,13.223583984374997],[-86.87353515625,13.266503906249994],[-86.792138671875,13.27978515625],[-86.72929687499999,13.284375],[-86.710693359375,13.313378906249994],[-86.76352539062499,13.63525390625],[-86.77060546874999,13.69873046875],[-86.758984375,13.746142578125003],[-86.733642578125,13.763476562500003],[-86.61025390625,13.774853515624997],[-86.376953125,13.755664062500003],[-86.33173828125,13.770068359375003],[-86.238232421875,13.899462890625003],[-86.15122070312499,13.994580078124997],[-86.0892578125,14.037207031249991],[-86.04038085937499,14.050146484374991],[-85.9837890625,13.965673828124991],[-85.78671875,13.844433593749997],[-85.75341796875,13.85205078125],[-85.73393554687499,13.858691406250003],[-85.727734375,13.876074218749991],[-85.731201171875,13.931835937499997],[-85.68193359374999,13.982568359374994],[-85.20834960937499,14.311816406250003],[-85.059375,14.582958984374997],[-84.86044921874999,14.809765625],[-84.645947265625,14.661083984374997],[-84.53764648437499,14.633398437499991],[-83.635498046875,14.876416015624997],[-83.5365234375,14.977001953124997],[-83.4150390625,15.008056640625],[-83.15751953124999,14.993066406249994],[-83.18535156249999,14.956396484374991],[-83.21591796874999,14.932373046875],[-83.27988281249999,14.812792968750003],[-83.344384765625,14.902099609375],[-83.413720703125,14.825341796874994],[-83.29921875,14.7490234375],[-83.187744140625,14.340087890625],[-83.4123046875,13.99648437499999],[-83.567333984375,13.3203125],[-83.5109375,12.411816406249997],[-83.627197265625,12.459326171874991],[-83.59335937499999,12.713085937499997],[-83.75424804687499,12.501953125],[-83.680419921875,12.024316406249994],[-83.7671875,12.059277343749997],[-83.82890624999999,11.861035156249997],[-83.70458984375,11.824560546874991],[-83.6517578125,11.642041015624997],[-83.86787109375,11.300048828125],[-83.6419921875,10.917236328125]]]},"properties":{"name":"Nicaragua","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-169.80341796875,-19.0830078125],[-169.94833984375,-19.072851562500006],[-169.834033203125,-18.96601562500001],[-169.80341796875,-19.0830078125]]]},"properties":{"name":"Niue","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-68.205810546875,12.144580078124989],[-68.25434570312495,12.032080078124977],[-68.36923828125,12.301953124999983],[-68.205810546875,12.144580078124989]]],[[[4.226171875000034,51.38647460937503],[3.902050781250011,51.20766601562502],[3.43251953125008,51.24575195312505],[3.35009765625,51.37768554687503],[4.226171875000034,51.38647460937503]]],[[[3.94912109375008,51.73945312500001],[4.07509765625008,51.648779296875006],[3.699023437500017,51.70991210937501],[3.94912109375008,51.73945312500001]]],[[[4.886132812500023,53.07070312500005],[4.70917968750004,53.036035156249994],[4.886425781249983,53.18330078124998],[4.886132812500023,53.07070312500005]]],[[[4.226171875000034,51.38647460937503],[3.448925781250068,51.54077148437503],[3.743945312500017,51.596044921875006],[4.27412109375004,51.47163085937498],[4.004785156250051,51.595849609374966],[4.182617187500057,51.61030273437498],[3.946875,51.810546875],[4.482812500000023,52.30917968749998],[4.76875,52.941308593749966],[5.061230468750068,52.96064453125001],[5.532031250000074,53.268701171874966],[6.062207031250068,53.407080078125006],[6.816210937500045,53.44116210937503],[7.197265625000028,53.28227539062499],[7.033007812500045,52.65136718749997],[6.710742187500045,52.61787109374998],[6.748828125000074,52.464013671874994],[7.035156250000057,52.38022460937498],[6.724511718749994,52.080224609374966],[6.800390625,51.96738281249998],[5.948730468750057,51.80268554687501],[6.198828125000034,51.45],[6.129980468750034,51.14741210937501],[5.857519531250034,51.030126953125006],[6.048437500000034,50.90488281250006],[5.993945312500017,50.75043945312504],[5.693554687500011,50.774755859375006],[5.796484375000034,51.153076171875],[5.214160156250045,51.278955078124966],[5.03095703125004,51.46909179687498],[4.226171875000034,51.38647460937503]]],[[[5.325781250000063,53.38574218750003],[5.190234375000074,53.39179687500001],[5.582617187500063,53.438085937500034],[5.325781250000063,53.38574218750003]]]]},"properties":{"name":"Netherlands","childNum":6,"cp":[5.0752777,52.358465]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[5.085839843750023,60.30756835937501],[5.089062500000068,60.188769531250045],[4.95722656250004,60.44726562500006],[5.085839843750023,60.30756835937501]]],[[[4.958691406250068,61.084570312500034],[4.79902343750004,61.08271484375001],[4.861621093749989,61.19384765625],[4.958691406250068,61.084570312500034]]],[[[8.10273437500004,63.33759765625004],[7.804003906250017,63.413916015625034],[8.073535156250045,63.47080078124998],[8.10273437500004,63.33759765625004]]],[[[8.470800781250063,63.66713867187502],[8.287109375000028,63.68715820312502],[8.764648437500057,63.804638671874955],[8.78652343750008,63.703466796875034],[8.470800781250063,63.66713867187502]]],[[[11.2314453125,64.865869140625],[10.739843750000034,64.87031250000001],[11.02099609375,64.97871093749995],[11.2314453125,64.865869140625]]],[[[12.971777343750063,67.87412109375],[12.824023437500074,67.82124023437498],[13.068066406250068,68.07133789062505],[12.971777343750063,67.87412109375]]],[[[13.872851562500045,68.26533203125004],[14.096777343750034,68.218603515625],[13.229394531250051,67.995361328125],[13.300195312499994,68.16044921875007],[13.872851562500045,68.26533203125004]]],[[[15.207128906250006,68.943115234375],[15.222070312500023,68.61630859375003],[14.404687500000051,68.663232421875],[15.037792968750068,69.00053710937507],[15.207128906250006,68.943115234375]]],[[[15.760351562500006,68.56123046875001],[16.328906250000017,68.87631835937498],[16.519238281250068,68.63300781249998],[15.975292968750011,68.402490234375],[14.257519531249983,68.19077148437503],[15.412597656250028,68.61582031250003],[15.483007812500006,69.04345703125003],[16.04804687500001,69.30205078125002],[15.760351562500006,68.56123046875001]]],[[[17.503027343750034,69.59624023437502],[18.004101562500068,69.50498046874998],[17.95068359375003,69.19814453125],[17.487890625000063,69.19682617187499],[17.08251953124997,69.013671875],[16.81044921875008,69.07070312499997],[17.001757812500045,69.36191406250006],[17.36083984375003,69.38149414062497],[17.503027343750034,69.59624023437502]]],[[[29.956152343750006,69.79677734375002],[29.766210937500006,69.76752929687501],[29.835839843749994,69.90556640625005],[29.956152343750006,69.79677734375002]]],[[[20.779199218750023,70.08974609375002],[20.46425781250005,70.0765625],[20.492773437500006,70.20332031249995],[20.78603515625008,70.21953124999999],[20.779199218750023,70.08974609375002]]],[[[19.25507812500001,70.06640625000006],[19.607812500000023,70.019140625],[19.334765625000074,69.82026367187501],[18.784765625000034,69.57900390624997],[18.12988281250003,69.557861328125],[18.34931640625004,69.76787109374999],[18.67402343750004,69.78164062500002],[19.13271484375005,70.24414062500003],[19.25507812500001,70.06640625000006]]],[[[19.76748046875005,70.21669921875002],[20.005957031250034,70.07622070312502],[19.599023437499994,70.26616210937507],[19.76748046875005,70.21669921875002]]],[[[23.615332031250034,70.54931640625003],[23.15917968750003,70.28261718750005],[22.941015625000063,70.444580078125],[23.546679687500017,70.61708984374997],[23.615332031250034,70.54931640625003]]],[[[24.01757812500003,70.56738281249997],[23.716601562500074,70.561865234375],[23.778417968750063,70.74736328125005],[24.01757812500003,70.56738281249997]]],[[[23.440527343750063,70.81577148437503],[22.8291015625,70.54155273437505],[22.358691406250017,70.514794921875],[21.99453125000008,70.65712890624997],[23.440527343750063,70.81577148437503]]],[[[30.869726562500006,69.78344726562506],[30.860742187499994,69.53842773437503],[30.18017578124997,69.63583984375],[30.08730468750005,69.43286132812503],[29.38828125,69.29814453125005],[28.96582031250003,69.02197265625],[28.846289062500006,69.17690429687502],[29.33339843750005,69.47299804687503],[29.14160156250003,69.67143554687505],[27.747851562500045,70.06484375],[27.127539062500063,69.90649414062497],[26.525390625000057,69.91503906250003],[26.07246093750004,69.69155273437497],[25.748339843750017,68.99013671875],[24.94140625000003,68.59326171875006],[23.85400390625,68.80590820312503],[23.324023437500017,68.64897460937502],[22.410937500000074,68.719873046875],[21.59375,69.273583984375],[21.06611328125001,69.21411132812497],[21.065722656250017,69.04174804687503],[20.622167968750006,69.036865234375],[20.116699218750057,69.02089843750005],[20.348046875000023,68.84873046875003],[19.969824218750063,68.35639648437501],[18.303027343750045,68.55541992187497],[17.91669921875001,67.96489257812502],[17.324609375000023,68.10380859374999],[16.783593750000023,67.89501953125],[16.12744140625,67.42583007812507],[16.40351562500004,67.05498046875002],[15.422949218750006,66.48984374999998],[15.483789062500051,66.30595703124999],[14.543261718750045,66.12934570312498],[14.47968750000004,65.30146484374998],[13.650292968750023,64.58154296874997],[14.077636718750028,64.464013671875],[14.141210937500006,64.17353515624998],[13.960546875000063,64.01401367187498],[13.203515625000023,64.07509765625],[12.792773437500017,64],[12.175195312500051,63.595947265625],[11.999902343750051,63.29169921875001],[12.303515625000074,62.28559570312501],[12.155371093750006,61.720751953125045],[12.88076171875008,61.35229492187506],[12.706054687500028,61.059863281250074],[12.29414062500004,61.00268554687506],[12.588671874999989,60.450732421875045],[12.486132812500074,60.10678710937506],[11.680761718750034,59.59228515625003],[11.798144531250074,59.28989257812498],[11.64277343750004,58.92607421875002],[11.470703125000057,58.909521484375034],[11.388281250000063,59.036523437499966],[10.834472656250028,59.18393554687498],[10.595312500000063,59.764550781249966],[10.179394531250068,59.00927734375003],[9.842578125000017,58.95849609374997],[9.557226562500063,59.11269531250002],[9.65693359375004,58.97119140624997],[8.166113281250063,58.145312500000045],[7.0048828125,58.024218750000074],[6.877050781250006,58.15073242187498],[6.590527343750068,58.09731445312502],[6.659863281250068,58.26274414062499],[5.706835937500074,58.52363281250001],[5.55556640625008,58.975195312500006],[6.099023437500023,58.87026367187502],[6.363281250000028,59.00092773437501],[6.099414062500017,58.951953125000074],[5.88916015625,59.097949218750045],[5.951855468750068,59.299072265625],[6.415332031250074,59.547119140625],[5.17324218750008,59.16254882812498],[5.2421875,59.564306640625034],[5.472460937500017,59.713085937499955],[5.77216796875004,59.66093749999999],[6.216601562499989,59.818359375],[5.73046875,59.863085937500045],[6.348730468750006,60.35297851562504],[6.57363281250008,60.36059570312497],[6.526855468750057,60.152929687500034],[6.995703125,60.511962890625],[6.1533203125,60.34624023437499],[5.145800781250074,59.63881835937502],[5.205664062500006,60.087939453125045],[5.688574218749977,60.12319335937502],[5.285839843750011,60.20571289062505],[5.13710937500008,60.445605468750074],[5.648339843750051,60.68798828124997],[5.244042968750023,60.569580078125],[5.115820312500006,60.63598632812503],[5.008593750000017,61.038183593750006],[6.777832031250028,61.142431640625006],[7.038671875000063,60.952929687500045],[7.040136718750006,61.091162109375034],[7.604492187500057,61.210546875000034],[7.34658203125008,61.30058593749999],[7.442578125000011,61.43461914062502],[7.173535156250011,61.16596679687501],[6.599902343750017,61.28964843749998],[6.383496093750068,61.133886718750034],[5.451269531250034,61.10234375000002],[5.106738281250017,61.187548828125045],[5.002734375000074,61.43359375],[5.338671875000017,61.485498046874994],[4.927832031249977,61.71069335937506],[4.93007812499999,61.878320312499994],[6.01582031250004,61.7875],[6.730761718750045,61.86977539062505],[5.266894531250045,61.935595703125045],[5.143164062500063,62.159912109375],[5.908300781249977,62.41601562500003],[6.083496093750057,62.349609375],[6.580078125000057,62.407275390625045],[6.692382812500028,62.46806640624999],[6.136132812500051,62.40747070312497],[6.352929687500051,62.61113281249999],[7.653125,62.56401367187499],[7.538378906250074,62.67207031249998],[8.045507812500006,62.77124023437503],[6.734960937500006,62.72070312500003],[6.940429687500028,62.930468750000045],[7.571875,63.09951171875002],[8.100585937500028,63.090966796874966],[8.623144531250006,62.84624023437502],[8.158007812500017,63.16152343750005],[8.635546875000045,63.34233398437502],[8.360742187500023,63.498876953125034],[8.576171875000028,63.60117187499998],[9.135839843750006,63.593652343749966],[9.156054687500045,63.459326171875034],[9.696875,63.624560546875045],[10.020996093750028,63.39082031250004],[10.76015625000008,63.461279296875006],[10.725292968750068,63.625],[11.370703125000034,63.804833984374994],[11.175585937500074,63.89887695312498],[11.457617187500063,64.00297851562505],[11.306640625000028,64.04887695312499],[10.91425781250004,63.92109374999998],[10.934863281250045,63.770214843749955],[10.055078125000051,63.5126953125],[9.567285156250051,63.70615234374998],[10.565625,64.418310546875],[11.523828125000051,64.744384765625],[11.632910156250063,64.81391601562495],[11.296777343750051,64.75478515625],[11.489355468750034,64.975830078125],[12.15966796875,65.178955078125],[12.508398437499977,65.09941406250005],[12.915527343750057,65.33925781249997],[12.417578125000063,65.18408203124997],[12.133886718749977,65.27915039062498],[12.68886718750008,65.90219726562498],[13.033105468750051,65.95625],[12.783789062500063,66.10043945312506],[14.034179687500057,66.29755859374998],[13.118847656250011,66.23066406250004],[13.211425781250028,66.64082031250001],[13.959472656250028,66.79433593750002],[13.651562500000011,66.90708007812498],[14.10878906250008,67.11923828125003],[15.41572265625004,67.20244140625002],[14.441699218750045,67.27138671875005],[14.961914062500057,67.57426757812502],[15.59443359375004,67.34853515625005],[15.691503906250006,67.52138671875],[15.24873046875004,67.6021484375],[15.303906250000011,67.76528320312502],[14.854687500000068,67.66333007812506],[14.798925781250063,67.80932617187503],[15.13427734375,67.97270507812502],[15.621386718750017,67.94829101562502],[15.316015624999977,68.06875],[16.007910156250006,68.22871093750004],[16.312304687500017,67.88144531249998],[16.20380859375001,68.31674804687503],[17.552832031250063,68.42626953125006],[16.51435546875004,68.53256835937503],[18.101464843749994,69.15629882812499],[18.259765625,69.47060546875],[18.915917968750023,69.33559570312502],[18.614453125000068,69.49057617187498],[19.197265625000057,69.74785156249999],[19.722460937500017,69.78164062500002],[19.64150390625005,69.42402343750001],[20.324218750000057,69.94531249999997],[20.054492187500074,69.33266601562497],[20.486718750000023,69.54208984375],[20.739453124999983,69.52050781250003],[20.622070312500057,69.91391601562498],[21.163085937500057,69.88950195312498],[21.432910156250045,70.01318359375006],[21.974707031250034,69.83457031249998],[21.355761718750045,70.23339843749997],[22.321972656250068,70.264501953125],[22.684570312500057,70.374755859375],[23.35390625000008,69.98339843750003],[23.3291015625,70.20722656249995],[24.420019531250034,70.70200195312503],[24.263476562500017,70.82631835937497],[24.658007812500017,71.00102539062505],[25.264648437500057,70.843505859375],[25.768164062500063,70.85317382812502],[25.043847656250023,70.10903320312502],[26.66132812500004,70.93974609374999],[26.585058593750034,70.41000976562498],[26.989355468750063,70.51137695312502],[27.183691406250034,70.74404296875],[27.546484375000063,70.80400390625005],[27.23525390625008,70.94721679687498],[27.59707031250005,71.09130859375003],[28.392285156250068,70.97529296875004],[27.898046875,70.67792968750001],[28.271777343750017,70.66796875000003],[28.192968750000034,70.24858398437505],[28.83154296875003,70.86396484375001],[29.7375,70.646826171875],[30.065136718750097,70.70297851562498],[30.944140625000017,70.27441406249997],[30.262988281250074,70.12470703125004],[28.804296875000063,70.09252929687506],[29.601367187500017,69.97675781249998],[29.792089843750063,69.727880859375],[30.08828125,69.71757812500005],[30.237597656250017,69.86220703125002],[30.428320312500006,69.722265625],[30.869726562500006,69.78344726562506]]],[[[25.58632812500005,71.14208984375],[26.13378906250003,70.99580078125004],[25.582031250000057,70.960791015625],[25.31494140625,71.03413085937504],[25.58632812500005,71.14208984375]]],[[[-8.953564453124983,70.83916015625002],[-8.001367187499966,71.17768554687495],[-8.002099609374937,71.04125976562497],[-8.953564453124983,70.83916015625002]]],[[[19.219335937500006,74.39101562500002],[18.86123046875008,74.51416015624997],[19.182910156250045,74.51791992187503],[19.219335937500006,74.39101562500002]]],[[[21.60810546875004,78.59570312499997],[22.04316406250004,78.57695312500007],[22.29951171875004,78.22817382812497],[23.451953125000074,78.14946289062502],[23.11669921874997,77.99150390624999],[24.901855468750057,77.756591796875],[22.55371093750003,77.26665039062502],[22.685351562500045,77.55351562500002],[20.928125,77.45966796874998],[21.653125,77.92353515624998],[20.22792968750005,78.47783203125005],[21.60810546875004,78.59570312499997]]],[[[11.250292968750017,78.610693359375],[12.116406250000068,78.232568359375],[11.121289062500011,78.46328125],[10.558203125000063,78.90292968750003],[11.250292968750017,78.610693359375]]],[[[29.047070312500068,78.91206054687504],[29.69667968750005,78.90473632812495],[27.88906250000005,78.8521484375],[28.511132812500023,78.96733398437502],[29.047070312500068,78.91206054687504]]],[[[16.786718750000034,79.90673828125],[17.834570312499977,79.80004882812503],[17.66875,79.38593750000004],[18.39736328125008,79.60517578125001],[18.677832031250006,79.26171875000003],[19.893554687500057,79.05620117187499],[20.61103515625004,79.10664062499998],[21.388769531250034,78.74042968749998],[19.67675781250003,78.60957031249995],[16.700488281250045,76.57929687499995],[14.365820312500034,77.23447265625003],[13.995703125000034,77.50820312500002],[14.69501953125004,77.525048828125],[14.920800781250023,77.68881835937506],[17.033300781250006,77.79770507812503],[16.91406250000003,77.89799804687505],[14.089941406250063,77.77138671875],[13.680566406250051,78.028125],[14.307226562500006,78.00507812500001],[15.783886718750011,78.32705078125005],[17.00292968750003,78.36938476562497],[16.44863281250008,78.50356445312502],[16.78261718750008,78.66362304687505],[15.417382812500023,78.47324218749998],[15.384179687500023,78.77119140625001],[15.01630859375004,78.63012695312497],[14.689257812500017,78.720947265625],[14.638281250000034,78.41459960937502],[14.110449218750063,78.27089843749997],[13.150195312499989,78.2375],[11.365429687500011,78.95039062500004],[12.323437500000068,78.91425781249995],[12.083984375000028,79.26752929687498],[11.579785156250068,79.28349609375005],[11.208105468750034,79.12963867187503],[10.737597656250017,79.52016601562502],[10.804003906250045,79.79877929687504],[11.150390625,79.71699218749998],[11.702343750000011,79.82060546875005],[12.287792968750068,79.713134765625],[12.279980468749983,79.81596679687507],[13.692871093749972,79.860986328125],[13.777539062500011,79.71528320312498],[12.555371093750068,79.56948242187502],[13.333789062500017,79.57480468750006],[14.029589843750017,79.34414062500005],[14.59365234375008,79.79873046875002],[16.34375,78.97612304687502],[15.816113281250011,79.68183593750001],[16.245703125000034,80.04946289062502],[16.786718750000034,79.90673828125]]],[[[32.52597656250006,80.119140625],[31.48193359374997,80.10791015625003],[33.62929687499999,80.21743164062497],[32.52597656250006,80.119140625]]],[[[20.897851562500023,80.24995117187501],[22.289746093749983,80.04921874999997],[22.450781250000034,80.40224609375005],[23.00800781250004,80.473974609375],[23.114550781250074,80.18696289062498],[24.29755859375004,80.36040039062505],[26.86083984375,80.16000976562498],[27.19863281250008,79.90659179687506],[25.641210937500034,79.40302734374995],[23.94775390625,79.19428710937498],[22.903710937500023,79.23066406250001],[22.865527343750045,79.41186523437497],[20.861132812500017,79.39785156249997],[20.128222656250074,79.489599609375],[19.674609375000045,79.591162109375],[20.784082031250023,79.74858398437502],[18.725,79.7607421875],[18.25537109375,79.92919921875003],[18.855957031250057,80.03662109375],[17.91689453125005,80.14311523437502],[19.343359375000063,80.11640624999998],[19.733300781249994,80.47783203124999],[20.897851562500023,80.24995117187501]]]]},"properties":{"name":"Norway","childNum":27}},{"geometry":{"type":"Polygon","coordinates":[[[87.984375,27.133935546874994],[87.9931640625,27.086083984374994],[88.11103515625001,26.928466796875],[88.1572265625,26.807324218749997],[88.16152343750002,26.724804687499997],[88.11152343750001,26.58642578125],[88.05488281250001,26.430029296875],[88.02695312500003,26.39501953125],[87.9951171875,26.382373046874996],[87.28740234374999,26.360302734374997],[87.01640624999999,26.555419921875],[86.70136718750001,26.43505859375],[86.00732421875,26.649365234374997],[85.79453125000003,26.604150390624994],[85.7373046875,26.63974609375],[85.6484375,26.829003906249994],[85.56845703125003,26.83984375],[85.29296875,26.741015625],[85.19179687500002,26.766552734374997],[84.68535156249999,27.041015625],[84.65380859375,27.091699218749994],[84.65478515625,27.203662109374996],[84.64072265625003,27.249853515625],[84.61015624999999,27.298681640625],[84.48085937500002,27.348193359374996],[84.22978515624999,27.42783203125],[84.09101562500001,27.491357421874994],[83.82880859375001,27.377832031249994],[83.74697265625002,27.395947265624997],[83.55166015625002,27.456347656249996],[83.44716796875002,27.46533203125],[83.38398437500001,27.44482421875],[83.36943359374999,27.41025390625],[83.28974609375001,27.370996093749994],[82.7333984375,27.518994140624997],[82.71083984375002,27.5966796875],[82.67734375000003,27.6734375],[82.6298828125,27.687060546874996],[82.45136718750001,27.671826171874997],[82.28769531250003,27.756542968749997],[82.11191406250003,27.864941406249997],[82.03701171875002,27.900585937499997],[81.98769531250002,27.913769531249997],[81.94521484375002,27.899267578125],[81.896875,27.874462890624997],[81.85263671875003,27.867089843749994],[81.1689453125,28.335009765624996],[80.58701171875003,28.649609375],[80.51787109374999,28.665185546874994],[80.49580078125001,28.635791015624996],[80.47910156250003,28.604882812499994],[80.41855468750003,28.612011718749997],[80.32480468750003,28.66640625],[80.2265625,28.723339843749997],[80.07070312500002,28.83017578125],[80.05166015625002,28.8703125],[80.08457031250003,28.994189453124996],[80.13046875000003,29.100390625],[80.16953125000003,29.124316406249996],[80.23300781250003,29.194628906249996],[80.25595703125003,29.318017578124994],[80.2548828125,29.42333984375],[80.31689453125,29.572070312499996],[80.40185546875,29.730273437499996],[80.54902343750001,29.899804687499994],[80.81992187500003,30.119335937499997],[80.84814453125,30.13974609375],[80.90761718750002,30.171923828124996],[80.96611328124999,30.180029296875],[81.17714843750002,30.039892578125],[81.25507812500001,30.093310546874996],[81.41718750000001,30.337597656249997],[81.64189453124999,30.3875],[81.85488281250002,30.36240234375],[82.04335937500002,30.3267578125],[82.220703125,30.063867187499994],[83.15546875000001,29.612646484375],[83.58349609375,29.18359375],[83.93593750000002,29.279492187499997],[84.02197265625,29.253857421874997],[84.10136718749999,29.219970703125],[84.12783203125002,29.156298828124996],[84.17558593749999,29.036376953125],[84.22871093750001,28.911767578124994],[84.796875,28.560205078124994],[84.85507812500003,28.553613281249994],[85.06914062499999,28.609667968749996],[85.12636718750002,28.60263671875],[85.15908203125002,28.592236328124997],[85.16015625,28.571875],[85.12148437500002,28.484277343749994],[85.08857421875001,28.372265625],[85.12246093750002,28.315966796874996],[85.21210937500001,28.292626953124994],[85.41064453125,28.276025390624994],[85.67832031250003,28.27744140625],[85.75947265625001,28.220654296874997],[85.84023437500002,28.1353515625],[85.92167968749999,27.989697265624997],[85.9541015625,27.92822265625],[85.99453125000002,27.910400390625],[86.06416015625001,27.934716796874994],[86.07871093750003,28.08359375],[86.13701171874999,28.11435546875],[86.21796875000001,28.0220703125],[86.32861328125,27.959521484374996],[86.40869140625,27.928662109374997],[86.51689453124999,27.963525390624994],[86.55449218749999,28.085205078125],[86.61445312500001,28.10302734375],[86.69052734375003,28.094921875],[86.71962890625002,28.070654296875],[86.75039062500002,28.0220703125],[86.93378906250001,27.968457031249997],[87.02011718750003,27.928662109374997],[87.14140624999999,27.838330078124997],[87.29072265625001,27.821923828124994],[87.62255859375,27.815185546875],[87.86074218750002,27.886083984375],[88.10976562500002,27.87060546875],[87.984375,27.133935546874994]]]},"properties":{"name":"Nepal","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[169.17822265624997,-52.497265625],[169.12753906250006,-52.570312499999964],[169.02177734375002,-52.49541015624998],[169.17822265624997,-52.497265625]]],[[[166.22109375,-50.76152343749997],[166.2428710937501,-50.84570312499998],[165.88916015624997,-50.80771484374996],[166.10136718750002,-50.538964843750016],[166.26748046875005,-50.558593750000014],[166.22109375,-50.76152343749997]]],[[[168.14492187500005,-46.862207031249966],[168.04316406250004,-46.9326171875],[168.2409179687501,-47.070019531250026],[167.52197265624997,-47.258691406249994],[167.80078125000003,-46.90654296875002],[167.78398437500007,-46.699804687500006],[167.9557617187501,-46.69443359374998],[168.14492187500005,-46.862207031249966]]],[[[166.97949218749997,-45.17968750000003],[167.02265625000004,-45.299804687499986],[166.89267578125012,-45.24052734374999],[166.97949218749997,-45.17968750000003]]],[[[-176.17763671874997,-43.74033203124998],[-176.38173828124997,-43.86679687499998],[-176.40737304687497,-43.7609375],[-176.516552734375,-43.78476562499996],[-176.33359375000003,-44.02529296875004],[-176.51552734374997,-44.11660156249998],[-176.62934570312495,-44.036132812500014],[-176.55512695312504,-43.85195312499998],[-176.84765625000003,-43.82392578125004],[-176.56611328124995,-43.717578125000045],[-176.17763671874997,-43.74033203124998]]],[[[173.91464843750018,-40.86367187500004],[173.78085937500012,-40.921777343749966],[173.964453125,-40.71298828124998],[173.91464843750018,-40.86367187500004]]],[[[173.11533203125006,-41.27929687499997],[173.94716796875005,-40.92412109375],[173.79785156250003,-41.271972656249986],[173.99941406250005,-40.99326171874996],[174.30253906249996,-41.019531249999986],[174.03857421875003,-41.24189453125],[174.37011718750009,-41.1037109375],[174.06933593750009,-41.42949218750002],[174.08369140625015,-41.67080078124998],[174.2831054687501,-41.740625],[173.22119140624997,-42.976562499999986],[172.62402343749997,-43.27246093749996],[172.73476562500005,-43.35478515625003],[172.52666015625002,-43.464746093749966],[172.69345703125006,-43.444335937499986],[172.80703125000005,-43.620996093749994],[173.07324218750003,-43.676171874999966],[173.065625,-43.87460937499998],[172.50273437500002,-43.84365234374998],[172.48037109375,-43.726660156250034],[172.29658203125004,-43.867871093750026],[172.035546875,-43.70175781250002],[172.17978515625006,-43.895996093749986],[171.24072265624997,-44.26416015625003],[171.14628906250002,-44.9123046875],[170.99902343750003,-44.91142578124999],[171.11328125000003,-45.03925781250001],[170.7005859375,-45.68427734374997],[170.77626953125005,-45.870898437499974],[170.4191406250001,-45.94101562499996],[169.68662109375006,-46.55166015625002],[169.34228515625003,-46.62050781250001],[168.38212890625007,-46.60537109374995],[168.1891601562501,-46.362207031249966],[167.8419921875001,-46.366210937499986],[167.539453125,-46.14853515624996],[167.36894531250007,-46.24150390624999],[166.73154296875006,-46.19785156249998],[166.91669921875004,-45.95722656249998],[166.64990234374997,-46.04169921875004],[166.71796875000004,-45.88935546875001],[166.49316406249997,-45.9638671875],[166.48828124999997,-45.83183593750002],[167.0033203125,-45.71210937500004],[166.79765625000002,-45.64560546874999],[166.99082031250012,-45.531738281249986],[166.73398437500012,-45.54355468749999],[166.74306640625,-45.46845703124997],[166.91992187499997,-45.40791015624998],[166.86923828125006,-45.31123046875],[167.15566406250005,-45.410937499999974],[167.23007812500012,-45.29033203125],[167.02587890624997,-45.12363281249998],[167.25947265625004,-45.08222656249997],[167.19453125000004,-44.963476562500034],[167.41074218750006,-44.82792968750003],[167.4662109375,-44.958300781250045],[167.48496093750006,-44.77138671874998],[167.78701171875,-44.59501953125002],[167.90898437500002,-44.66474609375001],[167.85654296875012,-44.50068359374998],[168.45742187500005,-44.030566406250045],[169.17890625000004,-43.9130859375],[169.16953125000006,-43.77705078125],[169.83388671875,-43.53701171875004],[170.24023437499997,-43.163867187500045],[170.39609375000012,-43.18222656249996],[170.30283203125012,-43.10761718750004],[170.61181640625003,-43.091796875000014],[170.5236328125001,-43.00898437500001],[170.6654296875,-42.961230468749974],[170.73525390625005,-43.029785156249986],[170.96992187500004,-42.71835937499996],[171.01171875000003,-42.88505859374999],[171.027734375,-42.696093750000045],[171.31337890625005,-42.460156250000026],[171.48623046875,-41.7947265625],[171.94804687500002,-41.53867187499996],[172.13945312500002,-40.947265625000014],[172.640625,-40.51826171875001],[172.94365234375007,-40.51875],[172.73261718750004,-40.54375],[172.70439453125002,-40.6677734375],[172.988671875,-40.84824218749999],[173.11533203125006,-41.27929687499997]]],[[[175.54316406250015,-36.279296874999986],[175.34619140624997,-36.217773437499986],[175.3895507812501,-36.07773437499996],[175.54316406250015,-36.279296874999986]]],[[[173.26943359375,-34.93476562499998],[173.44785156250012,-34.844335937500034],[173.47265625000003,-34.94697265624998],[174.10400390625003,-35.14287109375002],[174.1431640625,-35.3],[174.32031250000003,-35.246679687500034],[174.58066406250018,-35.78554687500004],[174.39580078124996,-35.79736328124996],[174.8021484375,-36.30947265625001],[174.72246093750007,-36.84121093749998],[175.29951171875004,-36.99326171874996],[175.38535156250012,-37.206933593749966],[175.54248046874997,-37.2013671875],[175.46083984375005,-36.475683593750034],[175.77216796875004,-36.73515625],[176.10839843749997,-37.64511718749998],[177.27402343750012,-37.993457031249974],[178.0091796875,-37.55488281249998],[178.53623046875006,-37.69208984375004],[178.26767578125006,-38.551171875],[177.976171875,-38.72226562500005],[177.90878906250012,-39.23955078125],[177.52294921875003,-39.07382812499999],[177.07675781250012,-39.22177734375002],[176.93925781249996,-39.55527343750002],[177.10986328125009,-39.673144531250045],[176.8421875000001,-40.15781250000002],[175.98291015625003,-41.21328125000002],[175.30976562499998,-41.610644531249974],[175.16562500000012,-41.41738281249995],[174.88134765624997,-41.42402343749997],[174.8656250000001,-41.223046874999966],[174.63535156250012,-41.28945312499999],[175.1625,-40.62158203125],[175.25410156250004,-40.28935546875],[175.1559570312501,-40.11494140625],[175.00927734375009,-39.95214843749996],[173.93437500000013,-39.50908203125002],[173.76367187499997,-39.31875],[173.84433593750006,-39.13935546875001],[174.39843749999997,-38.96259765624998],[174.59736328124998,-38.78505859374995],[174.80166015625005,-37.895507812500014],[174.92802734375002,-37.80449218750003],[174.58583984374994,-37.09775390625002],[174.73427734375,-37.21523437499998],[174.92890625000004,-37.084765625000045],[174.78203125000013,-36.94375],[174.47558593750009,-36.94189453124997],[174.1888671875001,-36.492285156250034],[174.4015625000001,-36.60195312499999],[174.39277343750004,-36.24003906249999],[174.26787109375002,-36.16308593750003],[174.25371093749996,-36.24912109374998],[174.03642578125013,-36.12246093750001],[173.91445312499994,-35.908691406249986],[173.91728515625002,-36.01816406249999],[174.16640624999994,-36.327636718749986],[174.05468749999991,-36.35976562500004],[173.41220703125012,-35.542578125],[173.62617187500004,-35.31914062499996],[173.3763671875001,-35.50009765624996],[173.31396484375003,-35.44335937499996],[173.11669921874997,-35.205273437500026],[173.190625,-35.01621093749998],[172.70595703125005,-34.45517578124998],[173.04394531249997,-34.429101562499994],[172.96376953125,-34.53515625000003],[173.26943359375,-34.93476562499998]]]]},"properties":{"name":"New Zealand","childNum":9}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[58.722070312499994,20.21875],[58.640917968750074,20.210693359375057],[58.64121093750006,20.33735351562501],[58.884375,20.680566406250023],[58.95078125000006,20.516162109375017],[58.722070312499994,20.21875]]],[[[56.38798828125002,24.97919921875004],[56.640625,24.4703125],[57.12304687500003,23.980712890625],[58.773046875,23.517187499999977],[59.42939453125004,22.660839843749955],[59.82324218749997,22.50898437500004],[59.8,22.21992187500001],[59.37148437500005,21.498828125000017],[58.89570312500004,21.11279296874997],[58.47421875000006,20.406884765624966],[58.20898437500003,20.423974609374994],[58.245019531249994,20.599218749999977],[58.16943359375003,20.58950195312505],[57.86181640624997,20.24414062500003],[57.71416015625002,19.678417968749983],[57.81162109375006,19.01708984374997],[56.825976562500074,18.753515625],[56.3834960937501,17.98798828125001],[55.479101562500006,17.84326171875003],[55.25537109375003,17.58564453125004],[55.275195312500074,17.320898437500006],[55.06416015625004,17.038916015625034],[54.06816406250002,17.005517578124966],[53.60986328124997,16.75996093750004],[53.08564453125004,16.648388671874955],[51.977636718750006,18.996142578125074],[54.97734375000002,19.995947265625006],[55.64101562499999,22.001855468749994],[55.185839843750074,22.7041015625],[55.1999023437501,23.034765625000034],[55.53164062499999,23.81904296875001],[55.4684570312501,23.94111328125001],[55.98515625000002,24.063378906249966],[55.92861328125005,24.215136718750074],[55.76083984375006,24.24267578125],[55.795703125000074,24.868115234374955],[56.00058593750006,24.953222656249977],[56.06386718750005,24.73876953125],[56.38798828125002,24.97919921875004]]],[[[56.29785156250003,25.650683593750045],[56.144628906250006,25.690527343750006],[56.16748046875003,26.047460937499977],[56.08046875,26.06264648437505],[56.41308593749997,26.351171875000034],[56.29785156250003,25.650683593750045]]]]},"properties":{"name":"Oman","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[73.08961802927895,36.86435907947333],[73.08203125000107,36.43949943991182],[72.31128647748268,35.77290936638241],[73.13410859949555,34.82510160558277],[73.19895048106557,33.88770931468204],[74.00809389139292,33.25375789331485],[73.98984375,33.22119140625],[74.30361328125002,32.991796875],[74.30546875000002,32.810449218749994],[74.35458984375,32.768701171874994],[74.58828125000002,32.753222656249996],[74.632421875,32.770898437499994],[74.66328125000001,32.757666015625],[74.64335937500002,32.607714843749996],[74.68574218750001,32.493798828124994],[74.78886718750002,32.4578125],[74.9873046875,32.462207031249996],[75.33349609375,32.279199218749994],[75.25410156250001,32.14033203125],[75.13876953125,32.104785156249996],[75.07148437500001,32.08935546875],[74.73945312500001,31.948828125],[74.6357421875,31.88974609375],[74.55556640625002,31.818554687499997],[74.5259765625,31.76513671875],[74.50996093750001,31.712939453124996],[74.58183593750002,31.52392578125],[74.59394531250001,31.465380859374996],[74.53496093750002,31.261376953124994],[74.51767578125,31.185595703124996],[74.6103515625,31.112841796874996],[74.62578125000002,31.06875],[74.6328125,31.03466796875],[74.509765625,30.959667968749997],[74.38037109375,30.893408203125],[74.33935546875,30.8935546875],[74.00898437500001,30.519677734374994],[73.89931640625002,30.435351562499996],[73.88271484375002,30.3521484375],[73.92460937500002,30.28164062499999],[73.93339843750002,30.222070312499994],[73.88652343750002,30.162011718749994],[73.8091796875,30.093359375],[73.38164062500002,29.934375],[72.9033203125,29.028759765624997],[72.34189453125,28.751904296874997],[72.2919921875,28.697265625],[72.128515625,28.346337890624994],[71.94804687500002,28.177294921874996],[71.88886718750001,28.0474609375],[71.87031250000001,27.9625],[71.54296875,27.869873046875],[71.18476562500001,27.831640625],[70.87490234375002,27.714453125],[70.79794921875,27.709619140624994],[70.69160156250001,27.768994140624997],[70.62910156250001,27.937451171874997],[70.40371093750002,28.025048828124994],[70.24433593750001,27.934130859374996],[70.1939453125,27.894873046875],[70.14453125,27.849023437499994],[70.0498046875,27.694726562499994],[69.89628906250002,27.4736328125],[69.56796875,27.174609375],[69.47001953125002,26.804443359375],[70.11464843750002,26.548046875],[70.14921875000002,26.347558593749994],[70.1001953125,25.910058593749994],[70.2646484375,25.70654296875],[70.3251953125,25.685742187499997],[70.44853515625002,25.681347656249997],[70.505859375,25.685302734375],[70.56953125000001,25.705957031249994],[70.6484375,25.666943359374997],[70.65205078125001,25.422900390625003],[70.87773437500002,25.06298828125],[70.95087890625001,24.8916015625],[71.02070312500001,24.75766601562499],[71.0478515625,24.687744140625],[71.00234375000002,24.65390625],[70.97636718750002,24.61875],[70.96982421875,24.571875],[71.04531250000002,24.429980468750003],[71.04404296875,24.400097656249997],[70.98281250000002,24.361035156249997],[70.928125,24.362353515625003],[70.88623046875,24.34375],[70.80507812500002,24.261962890625],[70.76728515625001,24.245410156250003],[70.71630859375,24.237988281249997],[70.65947265625002,24.24609375],[70.57929687500001,24.279052734375],[70.55585937500001,24.331103515625003],[70.5650390625,24.385791015625003],[70.54677734375002,24.41831054687499],[70.2890625,24.35629882812499],[70.0982421875,24.2875],[69.80517578125,24.165234375],[69.71621093750002,24.172607421875],[69.63417968750002,24.22519531249999],[69.5591796875,24.273095703124994],[69.44345703125,24.275390625],[69.23505859375001,24.268261718749997],[69.11953125000002,24.26865234374999],[69.05156250000002,24.286328125],[68.98457031250001,24.273095703124994],[68.90078125000002,24.292431640624997],[68.86347656250001,24.266503906249994],[68.82832031250001,24.26401367187499],[68.78115234375002,24.313720703125],[68.75898437500001,24.30722656249999],[68.73964843750002,24.2919921875],[68.728125,24.265625],[68.72412109375,23.96469726562499],[68.48867187500002,23.967236328124997],[68.38125,23.950878906249997],[68.28251953125002,23.927978515625],[68.1650390625,23.857324218749994],[68.11552734375002,23.753369140624997],[67.8599609375,23.90268554687499],[67.66845703125,23.810986328124997],[67.309375,24.1748046875],[67.171484375,24.756103515625],[66.70302734375002,24.8609375],[66.69863281250002,25.226318359375],[66.32421875,25.601806640625],[66.13115234375002,25.49326171874999],[66.46767578125002,25.4453125],[64.77666015625002,25.307324218749997],[64.65898437500002,25.18408203125],[64.059375,25.40292968749999],[63.556640625,25.353173828124994],[63.49140625000001,25.210839843749994],[61.56689453125,25.186328125],[61.587890625,25.20234375],[61.61542968750001,25.2861328125],[61.64013671875,25.584619140624994],[61.67138671875,25.6923828125],[61.66181640625001,25.751269531250003],[61.66865234375001,25.768994140624997],[61.73769531250002,25.82109375],[61.75439453125,25.84335937499999],[61.78076171875,25.995849609375],[61.80996093750002,26.165283203125],[61.842382812500006,26.225927734375],[62.1259765625,26.368994140625],[62.239355468750006,26.35703125],[62.31230468750002,26.490869140624994],[63.168066406250006,26.665576171874996],[63.186132812500006,26.837597656249997],[63.24160156250002,26.86474609375],[63.25039062500002,26.879248046875],[63.24208984375002,27.077685546874996],[63.30517578125,27.124560546874996],[63.30156250000002,27.15146484375],[63.25625,27.207910156249994],[63.19609375000002,27.243945312499996],[63.16679687500002,27.252490234374996],[62.75273437500002,27.265625],[62.782324218750006,27.800537109375],[62.7625,28.202050781249994],[61.88984375000001,28.546533203124994],[61.15214843750002,29.542724609375],[61.0341796875,29.663427734375],[60.843359375,29.858691406249996],[61.22441406250002,29.749414062499994],[62.0009765625,29.530419921874994],[62.4765625,29.408349609374994],[63.56757812500001,29.497998046874997],[64.09873046875,29.391943359375],[64.39375,29.544335937499994],[65.09550781250002,29.559472656249994],[66.23125,29.86572265625],[66.346875,30.802783203124996],[66.82929687500001,31.263671875],[67.45283203125001,31.234619140625],[67.737890625,31.343945312499997],[67.57822265625,31.506494140624994],[68.16103515625002,31.802978515625],[68.59765625,31.802978515625],[68.86894531250002,31.634228515624997],[69.279296875,31.936816406249996],[69.24140625000001,32.433544921875],[69.5015625,33.020068359374996],[70.26113281250002,33.289013671875],[69.8896484375,34.007275390625],[70.65400390625001,33.952294921874994],[71.05156250000002,34.049707031249994],[71.095703125,34.369433593749996],[70.965625,34.53037109375],[71.62050781250002,35.183007812499994],[71.57197265625001,35.546826171875],[71.18505859375,36.04208984375],[71.23291015625,36.12177734375],[72.24980468750002,36.734716796875],[73.08961802927895,36.86435907947333]]]},"properties":{"name":"Pakistan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-81.60327148437497,7.332812499999989],[-81.85205078125003,7.453320312500026],[-81.812158203125,7.59238281250002],[-81.72875976562494,7.62119140625002],[-81.60327148437497,7.332812499999989]]],[[[-78.89833984375002,8.27426757812502],[-78.960595703125,8.435839843749989],[-78.88325195312495,8.460253906249989],[-78.89833984375002,8.27426757812502]]],[[[-77.37421874999993,8.65830078125002],[-77.47851562499994,8.498437500000037],[-77.19599609374995,7.972460937500003],[-77.53828124999995,7.56625976562502],[-77.76191406249995,7.698828125000034],[-77.90117187499999,7.229345703125048],[-78.42158203124995,8.060986328125011],[-78.28735351562497,8.091796874999972],[-78.14189453125002,8.386083984374977],[-77.76054687499993,8.133251953124983],[-78.09946289062498,8.496972656250009],[-78.22304687500002,8.396630859374994],[-78.39921874999993,8.505664062500003],[-78.40986328124998,8.35532226562502],[-78.51406249999997,8.628173828125],[-79.08637695312495,8.997167968750034],[-79.50708007812494,8.97006835937502],[-79.68745117187493,8.850976562500009],[-79.81591796875,8.639208984375031],[-79.75043945312498,8.595507812500017],[-80.458984375,8.213867187499972],[-80.45810546875,8.077050781249994],[-80.01123046875,7.500048828125031],[-80.66669921874995,7.225683593750006],[-80.90122070312503,7.277148437500017],[-81.06386718749994,7.89975585937502],[-81.26840820312495,7.625488281250014],[-81.50415039062503,7.721191406249972],[-81.72763671875,8.137548828124977],[-82.15986328124995,8.19482421875],[-82.23544921874998,8.311035156250057],[-82.67954101562503,8.321972656249969],[-82.86611328124994,8.246337890625014],[-82.87934570312498,8.07065429687502],[-83.02734375,8.337744140624991],[-82.86162109374999,8.453515625000037],[-82.84477539062493,8.489355468749963],[-82.85571289062494,8.635302734375031],[-82.91704101562502,8.740332031250034],[-82.88198242187497,8.805322265625037],[-82.72783203125002,8.916064453125031],[-82.78305664062498,8.990283203124974],[-82.88134765625003,9.055859375000011],[-82.94033203124997,9.060107421874989],[-82.93984374999994,9.449169921875026],[-82.92504882812494,9.469042968749989],[-82.88896484374999,9.481005859375017],[-82.86015625,9.511474609375014],[-82.84399414062497,9.570800781250014],[-82.801025390625,9.591796875000028],[-82.64409179687502,9.505859375000028],[-82.56357421875003,9.576660156249972],[-82.50034179687503,9.523242187500017],[-82.37080078124993,9.428564453124991],[-82.33974609375,9.209179687499983],[-82.18813476562502,9.191748046874977],[-82.24418945312499,9.031494140625014],[-82.07788085937503,8.93486328124996],[-81.78022460937495,8.957226562499983],[-81.89448242187495,9.140429687500003],[-81.35478515624996,8.78056640624996],[-80.83867187499999,8.887207031250014],[-80.12709960937497,9.20991210937504],[-79.57729492187497,9.597851562500026],[-78.08276367187494,9.236279296874997],[-77.37421874999993,8.65830078125002]]]]},"properties":{"name":"Panama","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[-73.137353515625,-6.4658203125],[-73.75810546874999,-6.90576171875],[-73.79301757812499,-7.135058593750003],[-73.758203125,-7.172753906250009],[-73.72041015625,-7.309277343750011],[-73.964306640625,-7.37890625],[-73.95849609375,-7.506640625],[-73.98173828124999,-7.535742187500006],[-74.00205078124999,-7.556054687500009],[-73.98173828124999,-7.585058593750006],[-73.946875,-7.611230468750009],[-73.89462890624999,-7.65478515625],[-73.82207031249999,-7.738964843750011],[-73.76689453124999,-7.753515625],[-73.72041015625,-7.782519531250003],[-73.73203125,-7.875390625],[-73.54912109374999,-8.345800781250006],[-73.39814453125,-8.458984375],[-73.36040039062499,-8.479296875],[-73.351708984375,-8.51416015625],[-73.35673828124999,-8.566992187500006],[-73.30244140625,-8.654003906250011],[-73.203125,-8.719335937500006],[-73.0705078125,-8.8828125],[-72.9740234375,-8.9931640625],[-72.970361328125,-9.1201171875],[-73.08984375,-9.265722656250006],[-73.209423828125,-9.411425781250003],[-72.379052734375,-9.51015625],[-72.181591796875,-10.003710937500003],[-71.33940429687499,-9.988574218750003],[-71.11528320312499,-9.852441406250009],[-71.041748046875,-9.81875],[-70.6369140625,-9.478222656250011],[-70.60791015625,-9.463671875],[-70.54111328124999,-9.4375],[-70.57016601562499,-9.48984375],[-70.592236328125,-9.54345703125],[-70.59916992187499,-9.620507812500009],[-70.642333984375,-11.01025390625],[-70.59653320312499,-10.976855468750003],[-70.53325195312499,-10.946875],[-70.45087890625,-11.024804687500009],[-70.39228515625,-11.05859375],[-70.3419921875,-11.066699218750003],[-70.29038085937499,-11.064257812500003],[-70.22006835937499,-11.04765625],[-70.06630859375,-10.982421875],[-69.9603515625,-10.929882812500011],[-69.839794921875,-10.933398437500003],[-69.6740234375,-10.9541015625],[-69.57861328125,-10.951757812500006],[-68.68525390625,-12.501953125],[-68.97861328124999,-12.880078125000011],[-69.07412109375,-13.682812500000011],[-68.87089843749999,-14.169726562500003],[-69.35947265624999,-14.7953125],[-69.37470703125,-14.962988281250006],[-69.17246093749999,-15.236621093750003],[-69.4208984375,-15.640625],[-69.21757812499999,-16.14912109375001],[-68.8427734375,-16.337890625],[-69.03291015625,-16.47597656250001],[-69.020703125,-16.6421875],[-69.62485351562499,-17.2001953125],[-69.645703125,-17.24853515625],[-69.521923828125,-17.388964843750003],[-69.510986328125,-17.46035156250001],[-69.51108398437499,-17.5048828125],[-69.5109375,-17.50605468750001],[-69.58642578125,-17.5732421875],[-69.684765625,-17.64980468750001],[-69.85209960937499,-17.70380859375001],[-69.80258789062499,-17.990234375],[-69.92636718749999,-18.2060546875],[-70.41826171874999,-18.34560546875001],[-71.33696289062499,-17.68251953125001],[-71.5322265625,-17.29433593750001],[-72.46767578125,-16.708105468750006],[-73.727685546875,-16.20166015625],[-75.104248046875,-15.411914062500003],[-75.533642578125,-14.89921875],[-75.93388671874999,-14.63359375],[-76.37646484375,-13.863085937500003],[-76.259228515625,-13.802832031250006],[-76.2236328125,-13.371191406250006],[-76.83212890624999,-12.348730468750006],[-77.152734375,-12.060351562500003],[-77.2203125,-11.663378906250003],[-77.633203125,-11.287792968750011],[-77.736083984375,-10.83671875],[-78.18559570312499,-10.089062500000011],[-78.76225585937499,-8.616992187500003],[-79.37724609374999,-7.835546875],[-79.99497070312499,-6.768945312500009],[-81.142041015625,-6.056738281250006],[-81.164306640625,-5.875292968750003],[-80.9306640625,-5.8408203125],[-80.88193359374999,-5.635058593750003],[-81.33662109375,-4.66953125],[-81.283203125,-4.322265625],[-80.503662109375,-3.49609375],[-80.324658203125,-3.387890625000011],[-80.24375,-3.576757812500006],[-80.19414062499999,-3.905859375],[-80.23051757812499,-3.924023437500011],[-80.26689453124999,-3.948828125],[-80.30327148437499,-4.005078125000011],[-80.43720703125,-3.978613281250006],[-80.49013671875,-4.010058593750003],[-80.510009765625,-4.069531250000011],[-80.49345703124999,-4.119140625],[-80.4884765625,-4.16552734375],[-80.453759765625,-4.205175781250006],[-80.35288085937499,-4.20849609375],[-80.44384765625,-4.335839843750009],[-80.4884765625,-4.393652343750006],[-80.47856445312499,-4.430078125],[-80.42416992187499,-4.46142578125],[-80.38349609375,-4.463671875],[-80.293359375,-4.416796875],[-80.1974609375,-4.31103515625],[-80.13955078125,-4.296093750000011],[-80.06352539062499,-4.327539062500009],[-79.962890625,-4.390332031250011],[-79.8451171875,-4.445898437500006],[-79.797265625,-4.476367187500003],[-79.71098632812499,-4.467578125],[-79.63852539062499,-4.454882812500003],[-79.57768554687499,-4.500585937500006],[-79.51616210937499,-4.539160156250006],[-79.501904296875,-4.670605468750011],[-79.45576171875,-4.766210937500006],[-79.3994140625,-4.840039062500011],[-79.33095703125,-4.927832031250006],[-79.26811523437499,-4.957617187500006],[-79.186669921875,-4.958203125000011],[-79.07626953124999,-4.990625],[-79.03330078124999,-4.969140625],[-78.995263671875,-4.908007812500003],[-78.97539062499999,-4.873242187500011],[-78.919189453125,-4.8583984375],[-78.92578125,-4.770703125000011],[-78.9076171875,-4.714453125],[-78.8615234375,-4.6650390625],[-78.68603515625,-4.562402343750009],[-78.64799804687499,-4.248144531250006],[-78.345361328125,-3.397363281250009],[-78.240380859375,-3.472558593750009],[-77.860595703125,-2.981640625000011],[-76.6791015625,-2.562597656250006],[-76.089794921875,-2.133105468750003],[-75.570556640625,-1.53125],[-75.42041015625,-0.962207031250003],[-75.40805664062499,-0.92431640625],[-75.24960937499999,-0.951855468750011],[-75.259375,-0.590136718750003],[-75.42470703125,-0.408886718750011],[-75.49106445312499,-0.248339843750003],[-75.56059570312499,-0.200097656250009],[-75.63203125,-0.157617187500009],[-75.62626953124999,-0.122851562500003],[-75.340478515625,-0.1421875],[-75.13837890625,-0.050488281250011],[-74.8017578125,-0.200097656250009],[-74.78046875,-0.24453125],[-74.75537109375,-0.298632812500003],[-74.691650390625,-0.335253906250003],[-74.616357421875,-0.370019531250009],[-74.555078125,-0.429882812500011],[-74.5138671875,-0.470117187500009],[-74.46518554687499,-0.517675781250006],[-74.41787109375,-0.580664062500006],[-74.334423828125,-0.850878906250003],[-74.28388671875,-0.927832031250006],[-74.24638671874999,-0.970605468750009],[-74.05439453125,-1.028613281250003],[-73.98681640625,-1.09814453125],[-73.926953125,-1.125195312500011],[-73.86318359375,-1.196679687500009],[-73.664306640625,-1.248828125],[-73.4962890625,-1.693066406250011],[-73.19697265625,-1.830273437500011],[-73.1544921875,-2.278222656250009],[-72.9896484375,-2.339746093750009],[-72.94111328125,-2.39404296875],[-72.21845703125,-2.400488281250006],[-71.98427734375,-2.3265625],[-71.93247070312499,-2.288671875],[-71.86728515624999,-2.227734375000011],[-71.802734375,-2.166308593750003],[-71.75253906249999,-2.152734375],[-71.55947265625,-2.22421875],[-71.39697265625,-2.334082031250006],[-71.19638671874999,-2.313085937500006],[-71.11337890624999,-2.245410156250003],[-71.027294921875,-2.225781250000011],[-70.96855468749999,-2.206835937500003],[-70.70537109374999,-2.341992187500011],[-70.64799804687499,-2.40576171875],[-70.57587890625,-2.418261718750003],[-70.29462890625,-2.552539062500003],[-70.24443359374999,-2.606542968750006],[-70.16474609375,-2.639843750000011],[-70.095849609375,-2.658203125],[-70.735107421875,-3.781542968750003],[-70.5296875,-3.866406250000011],[-70.48583984375,-3.869335937500011],[-70.42109375,-3.849609375],[-70.37919921874999,-3.81875],[-70.339501953125,-3.814355468750009],[-70.2984375,-3.84423828125],[-70.24028320312499,-3.882714843750009],[-70.16752929687499,-4.050195312500009],[-70.0171875,-4.162011718750009],[-69.96591796874999,-4.2359375],[-69.97202148437499,-4.301171875],[-70.00395507812499,-4.327246093750006],[-70.05332031249999,-4.333105468750006],[-70.12880859375,-4.28662109375],[-70.23916015625,-4.301171875],[-70.31689453125,-4.246972656250009],[-70.34365234375,-4.193652343750003],[-70.40463867187499,-4.150097656250011],[-70.5306640625,-4.167578125],[-70.72158203125,-4.158886718750011],[-70.79951171875,-4.17333984375],[-70.97368164062499,-4.350488281250009],[-71.8447265625,-4.50439453125],[-72.256787109375,-4.748925781250009],[-72.35283203124999,-4.786035156250009],[-72.468994140625,-4.901269531250009],[-72.608349609375,-5.009570312500003],[-72.69873046875,-5.0671875],[-72.83193359375,-5.09375],[-72.88706054687499,-5.122753906250011],[-72.9798828125,-5.634863281250006],[-73.16289062499999,-5.933398437500003],[-73.209375,-6.028710937500009],[-73.235546875,-6.0984375],[-73.137353515625,-6.4658203125]]]},"properties":{"name":"Peru","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[120.250390625,5.256591796875043],[119.82148437500004,5.06953125000004],[120.1652343750001,5.332421875000037],[120.250390625,5.256591796875043]]],[[[121.159375,6.075634765625011],[121.41103515625005,5.939843749999966],[121.29443359374997,5.869970703125034],[120.8763671875,5.95263671875],[121.159375,6.075634765625011]]],[[[122.09287109375012,6.428320312500006],[121.95917968750004,6.415820312500045],[121.83203125000003,6.664062499999986],[122.0583007812501,6.740722656249972],[122.32353515625002,6.602246093750011],[122.09287109375012,6.428320312500006]]],[[[122.93710937500006,7.409130859374983],[122.80468750000003,7.315966796875017],[122.82216796875,7.428466796875014],[122.93710937500006,7.409130859374983]]],[[[117.07988281250007,7.883398437499977],[117.02832031249997,7.807519531249966],[116.96953125000007,7.894921875],[116.9935546875,8.050537109375014],[117.07705078125,8.069140624999974],[117.07988281250007,7.883398437499977]]],[[[117.35527343750002,8.21464843749996],[117.28701171875,8.191015625000034],[117.28085937500006,8.314990234374974],[117.35527343750002,8.21464843749996]]],[[[124.80664062500003,9.142626953125003],[124.66582031250002,9.132324218750043],[124.65332031250003,9.225830078125],[124.80664062500003,9.142626953125003]]],[[[123.69765625000005,9.237304687500028],[123.61445312500004,9.103320312499989],[123.49345703125002,9.192089843750054],[123.69765625000005,9.237304687500028]]],[[[126.00595703125006,9.320947265625009],[126.19335937499997,9.276708984374963],[126.30458984375,8.952050781249994],[126.13955078125005,8.59565429687504],[126.36533203125012,8.483886718750014],[126.45869140625004,8.20283203125004],[126.43535156250002,7.832812499999974],[126.57011718750002,7.677246093749986],[126.58154296875003,7.247753906249969],[126.1920898437501,6.852539062500014],[126.18935546875,6.309667968749991],[125.82441406250004,7.333300781249989],[125.68925781250007,7.263037109374977],[125.38066406250007,6.689941406250014],[125.58847656250012,6.465771484374997],[125.66796874999997,5.97866210937498],[125.34648437500002,5.598974609374977],[125.23154296875006,6.069531250000011],[124.92734375000006,5.875341796874977],[124.21279296875,6.233251953124977],[124.078125,6.404443359375037],[123.98525390625,6.993701171875003],[124.20664062500006,7.396435546874983],[123.66582031250002,7.817773437500023],[123.49306640625,7.80791015624996],[123.39091796875007,7.407519531250017],[123.09667968749997,7.700439453125],[122.8429687500001,7.529296875000043],[122.79179687500002,7.72246093749996],[122.61621093749997,7.763134765624983],[122.14248046875,6.949658203124997],[121.96425781250005,6.96821289062504],[121.92460937500002,7.199511718750003],[122.24335937500004,7.945117187500031],[122.91113281250003,8.156445312499997],[123.05058593750002,8.433935546875048],[123.43457031249997,8.70332031250004],[123.84921875000006,8.432714843749977],[123.79941406250006,8.049121093749989],[124.19765625,8.229541015624974],[124.40488281250006,8.599853515625014],[124.7311523437501,8.562988281250043],[124.86894531250002,8.972265625000034],[125.141015625,8.86875],[125.20966796875004,9.027148437500017],[125.49873046875004,9.014746093749977],[125.47128906250006,9.756787109374983],[126.00595703125006,9.320947265625009]]],[[[126.059375,9.766210937500034],[125.99121093750003,9.838525390625023],[126.07382812500006,10.059228515625051],[126.1725585937501,9.79995117187498],[126.059375,9.766210937500034]]],[[[124.59384765625006,9.787207031249963],[124.1224609375,9.599316406249969],[123.93564453125012,9.623974609375011],[123.81718750000002,9.817382812499986],[124.17285156250003,10.135205078124983],[124.33574218750002,10.159912109375043],[124.57714843749997,10.026708984374991],[124.59384765625006,9.787207031249963]]],[[[125.69023437500007,9.914453125000037],[125.49482421875004,10.118701171875003],[125.66679687500002,10.440136718750026],[125.69023437500007,9.914453125000037]]],[[[119.91621093750004,10.485986328125037],[119.79316406250004,10.455273437499997],[119.85205078124997,10.64013671875],[120.00839843750012,10.570117187500031],[119.91621093750004,10.485986328125037]]],[[[122.64951171875012,10.472705078125003],[122.53837890625002,10.424951171875037],[122.5375,10.607568359375023],[122.70126953125006,10.740625],[122.64951171875012,10.472705078125003]]],[[[123.13085937500003,9.064111328124994],[122.99472656250006,9.058837890624986],[122.8666015625,9.319824218750043],[122.5625,9.482812500000037],[122.39951171875006,9.823046874999989],[122.47148437500007,9.961523437500034],[122.85556640625006,10.0869140625],[122.81699218750012,10.503808593750023],[122.98330078125,10.886621093750037],[123.25664062500007,10.99394531249996],[123.51064453125005,10.923046875],[123.5675781250001,10.780761718750057],[123.16201171875,9.864257812500028],[123.1498046875,9.606152343750026],[123.32050781250004,9.27294921875],[123.13085937500003,9.064111328124994]]],[[[123.37031250000004,9.449609375000023],[123.38623046874997,9.967089843750017],[124.03886718750002,11.273535156249991],[124.00498046875012,10.40009765625004],[123.70048828125007,10.128320312500009],[123.37031250000004,9.449609375000023]]],[[[123.75703125000004,11.28330078125002],[123.815625,11.15073242187502],[123.73671875,11.151464843749991],[123.75703125000004,11.28330078125002]]],[[[117.31113281250012,8.439599609375051],[117.21855468750007,8.367285156249963],[117.34990234375002,8.713574218749997],[119.22382812500004,10.477294921875043],[119.30566406250003,10.9736328125],[119.55332031250012,11.31352539062496],[119.52666015625002,10.953173828125003],[119.68691406250005,10.500341796875034],[119.36933593750004,10.327294921875037],[119.19150390625012,10.061083984374989],[118.78212890625005,9.91611328125002],[118.4349609375,9.256005859375009],[117.31113281250012,8.439599609375051]]],[[[119.86142578125006,11.52534179687504],[119.83066406250012,11.375683593750011],[119.72998046874997,11.431933593750017],[119.86142578125006,11.52534179687504]]],[[[124.574609375,11.343066406250031],[124.92998046875002,11.372851562499974],[125.02656250000004,11.21171875],[125.01318359374997,10.785693359374989],[125.26845703125005,10.307714843750048],[125.14257812499997,10.189453125000028],[124.9875,10.36757812499998],[125.02656250000004,10.033105468749966],[124.78076171874997,10.16806640625002],[124.78671875000012,10.781396484375009],[124.66269531250006,10.961962890625017],[124.44550781250004,10.923583984375014],[124.33066406250012,11.535205078125003],[124.574609375,11.343066406250031]]],[[[124.60839843750003,11.492187500000043],[124.48349609375006,11.485839843749986],[124.36035156250003,11.665917968749994],[124.5109375000001,11.687109375000048],[124.60839843750003,11.492187500000043]]],[[[122.49619140625006,11.615087890625034],[122.83808593750004,11.595654296874983],[122.89453125000003,11.44130859374998],[123.15830078125012,11.53554687499999],[123.11953125,11.286816406250026],[122.8029296875001,10.99003906249996],[122.76992187500005,10.823828125000034],[121.95400390625,10.444384765625003],[122.10351562499997,11.64291992187502],[121.91601562499997,11.854345703125006],[122.02919921875005,11.895410156250023],[122.49619140625006,11.615087890625034]]],[[[120.03876953125004,11.703320312499969],[119.94492187500006,11.690722656249989],[119.86093750000006,11.953955078124963],[120.03593750000002,11.917236328125028],[120.03876953125004,11.703320312499969]]],[[[120.1,12.167675781249983],[120.22822265625004,12.219824218750034],[120.31455078125012,12.012402343749969],[120.01054687500002,12.008251953125011],[119.88574218749997,12.299853515625003],[120.1,12.167675781249983]]],[[[122.65449218750004,12.309033203125011],[122.42294921875006,12.455078125],[122.60361328125006,12.49160156249998],[122.65449218750004,12.309033203125011]]],[[[125.23955078125002,12.527880859375003],[125.32021484375,12.321826171875031],[125.53564453125003,12.191406250000028],[125.49179687500006,11.594335937499977],[125.57353515625002,11.238232421874997],[125.73564453125002,11.049609375000017],[125.23339843749997,11.145068359375017],[125.03427734375012,11.341259765625026],[124.91699218750003,11.558398437500031],[124.99501953125,11.764941406250003],[124.445703125,12.152783203124969],[124.29472656250007,12.569335937500014],[125.23955078125002,12.527880859375003]]],[[[123.71660156250007,12.287353515625028],[124.04033203125002,11.966796875],[124.04550781250012,11.752441406250028],[123.47373046875006,12.21665039062502],[123.15781250000012,11.925634765624963],[123.23642578125012,12.583496093750057],[123.71660156250007,12.287353515625028]]],[[[122.09404296875002,12.354882812500023],[122.01396484375002,12.105615234375037],[121.9232421875,12.331298828125014],[122.00156250000006,12.598535156250009],[122.14501953124997,12.652636718750017],[122.09404296875002,12.354882812500023]]],[[[123.77539062499997,12.453906250000031],[123.77910156250002,12.366259765625031],[123.62148437500005,12.67490234375002],[123.77539062499997,12.453906250000031]]],[[[123.28183593750006,12.85341796874998],[123.36718750000003,12.70083007812498],[122.95751953124997,13.107177734374986],[123.28183593750006,12.85341796874998]]],[[[120.70439453125002,13.479492187499986],[121.20273437500006,13.432324218749969],[121.52275390625007,13.131201171874991],[121.540625,12.63818359375],[121.39433593750002,12.300585937499974],[121.23671875000005,12.218798828125003],[120.92216796875002,12.51162109374998],[120.65136718749997,13.169140625],[120.33847656250012,13.412353515624986],[120.40126953125,13.517041015624997],[120.70439453125002,13.479492187499986]]],[[[121.91484375000002,13.540332031250031],[122.11455078125002,13.463183593750031],[122.00488281249997,13.204980468750009],[121.82919921875006,13.328613281249972],[121.91484375000002,13.540332031250031]]],[[[124.35361328125006,13.632226562500009],[124.17539062500012,13.531542968750017],[124.03886718750002,13.663134765625003],[124.22490234375007,14.077587890624969],[124.41718750000004,13.871044921874997],[124.35361328125006,13.632226562500009]]],[[[122.03349609375002,15.005029296875009],[121.93300781250005,14.656054687500045],[121.83984374999997,15.038134765625003],[122.03349609375002,15.005029296875009]]],[[[121.10156249999997,18.615283203125017],[121.84560546875,18.29541015625003],[122.03847656250005,18.32792968749999],[122.14667968750004,18.486572265625],[122.26552734375005,18.458837890625034],[122.15234374999997,17.664404296875006],[122.51914062500012,17.124853515625034],[122.13515625000005,16.18481445312503],[121.59531250000012,15.933251953125023],[121.60703125000006,15.669824218749994],[121.39228515625004,15.324414062499969],[121.69541015625006,14.7373046875],[121.62792968749997,14.581152343749977],[121.76660156249997,14.16806640625002],[122.21171875000002,13.930175781250057],[122.2875,13.996191406250006],[122.19970703125003,14.148046875000034],[122.6271484375001,14.317529296875009],[122.93417968750012,14.18808593750002],[123.101953125,13.750244140624986],[123.29697265625012,13.836425781250043],[123.32031249999997,14.061669921875023],[123.81572265625002,13.837109375000011],[123.80625000000012,13.721728515625045],[123.54960937500007,13.645751953125014],[123.81923828125,13.269482421875011],[123.78515625000003,13.110546875000054],[124.14277343750004,13.035791015625009],[124.0597656250001,12.567089843749997],[123.87783203125005,12.689697265625014],[123.94853515625007,12.916406250000023],[123.31093750000005,13.044091796875009],[123.16328125000004,13.44174804687502],[122.59521484374997,13.90761718749998],[122.46796875000004,13.886718749999986],[122.66787109375,13.395361328124991],[122.59990234375002,13.194140625000031],[122.37656250000012,13.520605468750006],[121.77792968750006,13.93764648437498],[121.50107421875006,13.8421875],[121.344140625,13.649121093749997],[121.09550781250007,13.679492187500045],[120.84072265625,13.884716796875026],[120.637109375,13.804492187500031],[120.61679687500006,14.188037109375003],[120.9220703125001,14.493115234374983],[120.94130859375,14.645068359375031],[120.58369140625004,14.88125],[120.58867187500002,14.483105468749983],[120.43876953125002,14.453369140624972],[120.25078125000002,14.793310546875034],[120.08212890625012,14.851074218749986],[119.77255859375012,16.25512695312503],[119.83076171875004,16.326562500000023],[120.15976562500012,16.047656250000045],[120.36875,16.109570312499955],[120.35839843749997,17.63818359375],[120.59970703125012,18.507861328125074],[121.10156249999997,18.615283203125017]]],[[[121.92167968750007,18.89472656250001],[121.82519531250003,18.842724609374983],[121.94335937500003,19.010449218749955],[121.92167968750007,18.89472656250001]]],[[[121.52089843750005,19.361962890624994],[121.53125,19.271337890625006],[121.37460937500006,19.356298828124977],[121.52089843750005,19.361962890624994]]]]},"properties":{"name":"Philippines","childNum":37}},{"geometry":{"type":"Polygon","coordinates":[[[134.5954101562501,7.382031249999969],[134.51572265625012,7.525781250000037],[134.65117187500002,7.712109374999983],[134.5954101562501,7.382031249999969]]]},"properties":{"name":"Palau","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[153.53613281249997,-11.476171874999949],[153.75986328125006,-11.586328125],[153.55371093749997,-11.630566406249969],[153.28681640625004,-11.516992187500009],[153.20361328124997,-11.32412109374998],[153.53613281249997,-11.476171874999949]]],[[[154.28076171874997,-11.36142578125002],[154.12119140625006,-11.425683593749966],[154.02343750000003,-11.347949218750031],[154.28076171874997,-11.36142578125002]]],[[[150.89873046875002,-10.565332031250023],[150.88466796875,-10.643457031250037],[150.78574218750006,-10.603417968749966],[150.89873046875002,-10.565332031250023]]],[[[151.08095703125,-10.020117187499963],[151.29648437500012,-9.956738281250026],[151.230859375,-10.194726562500009],[150.95917968750004,-10.092578124999989],[150.77607421875004,-9.70908203125002],[151.08095703125,-10.020117187499963]]],[[[150.52841796875006,-9.34658203124998],[150.78867187500006,-9.417968749999957],[150.89404296875003,-9.667480468749986],[150.43623046875004,-9.624609374999949],[150.5084960937501,-9.536132812499957],[150.43730468750007,-9.359960937500034],[150.52841796875006,-9.34658203124998]]],[[[150.3454101562501,-9.493847656249955],[150.10976562500005,-9.361914062499991],[150.20830078125002,-9.206347656250003],[150.32011718750007,-9.264160156249972],[150.3454101562501,-9.493847656249955]]],[[[152.63095703125012,-8.959375],[152.95292968750007,-9.07011718749996],[152.96689453125006,-9.208984375000014],[152.51513671874997,-9.009863281250034],[152.63095703125012,-8.959375]]],[[[151.10683593750005,-8.733496093749949],[151.12412109375012,-8.804882812500011],[151.00498046875006,-8.523828124999952],[151.117578125,-8.41884765624998],[151.10683593750005,-8.733496093749949]]],[[[143.58681640625005,-8.481738281250003],[143.321875,-8.367578125],[143.5814453125,-8.390917968749974],[143.58681640625005,-8.481738281250003]]],[[[148.02578125,-5.826367187500011],[147.78105468750007,-5.627246093749946],[147.7946289062501,-5.492382812500011],[148.05478515625006,-5.61152343750004],[148.02578125,-5.826367187500011]]],[[[155.95761718750006,-6.686816406249989],[155.71933593750012,-6.862792968749957],[155.34404296875007,-6.721679687499986],[155.20214843750003,-6.3076171875],[154.75927734375003,-5.931347656249997],[154.72929687500002,-5.444433593750006],[155.09384765625006,-5.620214843750034],[155.46699218750004,-6.145117187500034],[155.82255859375002,-6.38046875000002],[155.95761718750006,-6.686816406249989]]],[[[147.17626953124997,-5.431933593749946],[147.00585937499997,-5.30703125],[147.1310546875001,-5.190820312500037],[147.17626953124997,-5.431933593749946]]],[[[154.64726562500002,-5.43271484375002],[154.54003906250003,-5.11083984375],[154.63261718750007,-5.013867187499955],[154.72714843750006,-5.218066406249989],[154.64726562500002,-5.43271484375002]]],[[[146.01933593750007,-4.726171874999963],[145.88359375000007,-4.66748046875],[145.9958007812501,-4.539257812499983],[146.01933593750007,-4.726171874999963]]],[[[151.915625,-4.296777343749966],[152.11718749999997,-4.212207031249974],[152.40566406250005,-4.340722656249952],[152.35117187500006,-4.82216796874998],[151.98369140625007,-5.07441406250004],[152.14296875,-5.357031249999963],[152.07705078125,-5.458300781249989],[151.86542968750004,-5.564843750000023],[151.51513671874997,-5.552343749999963],[151.22929687500002,-5.919921874999986],[150.47353515625,-6.263378906249969],[149.65253906250004,-6.290429687499966],[149.38232421874997,-6.078125],[149.0990234375,-6.116992187499989],[148.33720703125007,-5.669433593750014],[148.43203125,-5.471777343749991],[149.35888671875003,-5.583984375000014],[149.8314453125,-5.524121093749997],[149.96279296875,-5.447753906249972],[150.0900390625001,-5.011816406249977],[150.1703125,-5.070605468749974],[150.0724609375001,-5.309570312499986],[150.18310546874997,-5.523632812499983],[150.90029296875005,-5.447167968750037],[151.32656250000005,-4.96035156249998],[151.67119140625007,-4.88330078125],[151.59306640625007,-4.200781249999949],[151.915625,-4.296777343749966]]],[[[152.67060546875004,-3.13339843750002],[152.64619140625004,-3.221191406249957],[152.54326171875002,-3.095605468749952],[152.63876953125012,-3.042773437500031],[152.67060546875004,-3.13339843750002]]],[[[140.97617187500012,-9.11875],[140.97519531250006,-6.90537109375002],[140.86230468749997,-6.740039062499989],[140.975,-6.346093750000023],[140.97353515625,-2.803417968750026],[140.97343750000007,-2.609765625],[142.90517578125,-3.32070312499998],[143.50898437500004,-3.431152343750014],[144.06640625000003,-3.80517578125],[144.4777343750001,-3.82529296875002],[145.08779296875,-4.349121093749972],[145.33457031250012,-4.385253906249972],[145.7669921875,-4.823046874999989],[145.74521484375012,-5.402441406249977],[147.56669921875002,-6.056933593750003],[147.80205078125002,-6.31523437499996],[147.84550781250007,-6.662402343749989],[147.11914062499997,-6.721679687499986],[146.95361328124997,-6.834082031249963],[147.19003906250012,-7.378125],[148.12675781250007,-8.103613281249963],[148.246875,-8.554296875000034],[148.45117187499997,-8.694531250000011],[148.58310546875006,-9.051757812499957],[149.19833984375006,-9.03125],[149.26318359374997,-9.497851562499974],[150.01103515625007,-9.688183593750026],[149.76123046874997,-9.805859375000011],[149.87441406250005,-10.012988281250031],[150.84951171875,-10.236035156249997],[150.44609375000007,-10.30732421875004],[150.6471679687501,-10.517968749999966],[150.31992187500012,-10.654882812499963],[150.0167968750001,-10.577148437500028],[149.75410156250004,-10.353027343750028],[147.76865234375012,-10.070117187500031],[147.01718750000006,-9.38789062500004],[146.96376953125,-9.059570312499943],[146.63085937499997,-8.951171874999972],[146.03320312499997,-8.076367187500011],[144.97382812500004,-7.802148437500009],[144.86425781249997,-7.631542968749983],[144.50986328125006,-7.567382812499972],[144.14287109375007,-7.757226562500009],[143.65488281250012,-7.460351562500009],[143.94228515625005,-7.944238281250009],[143.8333984375,-8.029101562499974],[143.51816406250006,-8.000683593749955],[143.61376953125003,-8.200390624999969],[142.52412109375004,-8.32167968749998],[142.34746093750002,-8.167480468750014],[142.20683593750002,-8.195800781250014],[142.47480468750004,-8.369433593750031],[142.79794921875006,-8.345019531250031],[143.11181640624997,-8.474511718750037],[143.37724609375007,-8.762207031250028],[143.36621093750003,-8.961035156250034],[142.6471679687501,-9.327832031249969],[142.22958984375012,-9.169921874999957],[141.13320312500005,-9.221289062500034],[140.97617187500012,-9.11875]]],[[[152.96582031249997,-4.756347656249986],[152.89169921875006,-4.832421875000023],[152.73994140625004,-4.635839843750034],[152.66816406250004,-4.131835937500028],[152.27939453125006,-3.582421875],[151.06679687500005,-2.829003906249994],[150.74609374999997,-2.73886718750002],[150.8253906250001,-2.572949218749969],[152.03291015625004,-3.25136718749998],[153.01679687500004,-4.105664062500026],[153.1325195312501,-4.352441406250037],[152.96582031249997,-4.756347656249986]]],[[[150.43662109375012,-2.66181640625004],[150.16572265625004,-2.660253906249991],[149.96162109375004,-2.473828125000026],[150.22714843750006,-2.384179687499966],[150.42949218750007,-2.47041015625004],[150.43662109375012,-2.66181640625004]]],[[[147.06757812500004,-1.96015625],[147.43808593750012,-2.05898437499998],[147.20634765625007,-2.181933593749974],[146.54648437500012,-2.20859375],[146.65625,-1.97402343749998],[147.06757812500004,-1.96015625]]],[[[149.76542968750007,-1.553027343750017],[149.54589843749997,-1.471679687499957],[149.58095703125005,-1.353222656249983],[149.76542968750007,-1.553027343750017]]]]},"properties":{"name":"Papua New Guinea","childNum":21}},{"geometry":{"type":"Polygon","coordinates":[[[23.484667968750017,53.939794921875],[23.915429687500023,52.770263671875],[23.175097656250017,52.28662109375],[23.652441406250006,52.040380859375],[23.605273437500017,51.517919921875],[23.664453125000023,51.31005859375],[24.095800781250006,50.87275390625],[23.9970703125,50.809375],[24.089941406250006,50.53046875],[23.97265625,50.410058593749994],[23.711718750000017,50.37734375],[23.03632812500001,49.899072265624994],[22.706152343750006,49.606201171875],[22.6494140625,49.539013671875],[22.66064453125,49.483691406249996],[22.71992187500001,49.353808593749996],[22.732421875,49.295166015625],[22.705664062500006,49.171191406249996],[22.847070312500023,49.08125],[22.538671875,49.072705078125],[22.473046875000023,49.081298828125],[22.020117187500006,49.209521484374996],[21.6396484375,49.411962890625],[21.079394531250017,49.418261718749996],[20.868457031250017,49.314697265625],[20.36298828125001,49.38525390625],[20.0576171875,49.181298828124994],[19.756640625000017,49.204394531249996],[19.77392578125,49.37216796875],[19.44160156250001,49.597705078124996],[19.1494140625,49.4],[18.83222656250001,49.510791015624996],[18.562402343750023,49.879345703125],[18.0283203125,50.03525390625],[17.874804687500017,49.972265625],[17.627050781250006,50.11640625],[17.702246093750006,50.307177734374996],[17.41523437500001,50.254785156249994],[16.88007812500001,50.427050781249996],[16.989648437500023,50.2369140625],[16.63916015625,50.1021484375],[16.210351562500023,50.423730468749994],[16.419726562500017,50.573632812499994],[16.2822265625,50.655615234375],[16.007226562500023,50.611621093749996],[14.99375,51.01435546875],[14.98291015625,50.886572265625],[14.895800781250017,50.861376953124996],[14.809375,50.858984375],[14.814257812500017,50.871630859374996],[14.91748046875,51.008740234375],[14.9638671875,51.095117187499994],[14.935546875,51.435351562499996],[14.905957031250011,51.463330078125],[14.724707031250006,51.523876953125],[14.7109375,51.544921875],[14.738671875000023,51.6271484375],[14.601660156250006,51.832373046875],[14.752539062500006,52.081835937499996],[14.679882812500011,52.25],[14.615625,52.277636718749996],[14.573925781250011,52.31416015625],[14.554589843750023,52.359667968749996],[14.569726562500023,52.431103515625],[14.619433593750017,52.528515625],[14.514062500000023,52.64560546875],[14.253710937500017,52.782519531249996],[14.128613281250011,52.878222656249996],[14.138867187500011,52.932861328125],[14.293164062500011,53.0267578125],[14.368554687500023,53.10556640625],[14.410937500000017,53.199023437499996],[14.412304687500011,53.216748046875],[14.41455078125,53.283496093749996],[14.258886718750006,53.729638671875],[14.58349609375,53.63935546875],[14.558398437500017,53.823193359375],[14.21142578125,53.950341796875],[16.186328125000017,54.290380859375],[16.55976562500001,54.55380859375],[18.32343750000001,54.838183593749996],[18.75927734375,54.6845703125],[18.43623046875001,54.7447265625],[18.83642578125,54.369580078125],[19.604394531250023,54.4591796875],[20.20820312500001,54.420751953125],[22.16845703125,54.35986328125],[22.731835937500023,54.35009765625],[22.766210937500006,54.356787109375],[22.82373046875,54.395800781249996],[22.893945312500023,54.39052734375],[22.97675781250001,54.366357421875],[23.015527343750023,54.34833984375],[23.04218750000001,54.30419921875],[23.0875,54.299462890625],[23.170312500000023,54.2814453125],[23.282324218750006,54.24033203125],[23.3701171875,54.200488281249996],[23.45361328125,54.14345703125],[23.484667968750017,53.939794921875]]]},"properties":{"name":"Poland","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-65.42558593749999,18.105615234374994],[-65.57221679687493,18.137304687499977],[-65.29487304687501,18.133349609375045],[-65.42558593749999,18.105615234374994]]],[[[-66.12939453125003,18.444921875000034],[-65.62880859375,18.381396484375045],[-65.62084960937497,18.242333984374966],[-65.97080078124995,17.974365234375],[-67.196875,17.994189453125045],[-67.2640625,18.364599609375006],[-67.15864257812501,18.499218749999983],[-66.12939453125003,18.444921875000034]]]]},"properties":{"name":"Puerto Rico","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[130.52695312500012,42.535400390625],[130.68730468750007,42.30253906249999],[130.2357421875,42.183203125000034],[129.75634765624997,41.712255859375006],[129.70869140625004,40.857324218749994],[129.34111328125002,40.72631835937506],[128.51123046874997,40.130224609375006],[127.56816406250002,39.78198242187503],[127.39453125000003,39.207910156249966],[127.78613281250003,39.084130859374966],[128.37460937500012,38.6234375],[128.03896484375,38.30854492187498],[127.09033203125003,38.28388671875001],[126.63388671875012,37.78183593750006],[126.36992187500007,37.87836914062501],[126.11669921875003,37.74291992187503],[125.76914062500006,37.98535156250003],[125.35781250000005,37.72480468749998],[125.31074218750004,37.843505859375],[124.98876953124997,37.93144531249999],[125.2067382812501,38.08154296875],[124.69091796874997,38.12919921875002],[125.06738281250003,38.556738281250006],[125.55449218750002,38.68623046875001],[125.16884765625,38.80551757812506],[125.40966796875003,39.28837890625002],[125.36083984375003,39.52661132812497],[124.77529296875,39.75805664062506],[124.63828125000006,39.61508789062506],[124.36210937500002,40.004052734374994],[124.8893554687501,40.459814453125006],[125.98906250000002,40.904638671875034],[126.74306640625,41.724853515625],[126.95478515625004,41.76948242187501],[127.17968750000003,41.531347656250006],[128.14941406249997,41.38774414062496],[128.28925781250004,41.60742187500006],[128.04521484375007,41.9875],[128.92343750000006,42.038232421874966],[129.3136718750001,42.41357421874997],[129.69785156250012,42.448144531249994],[129.89824218750002,42.998144531250034],[130.24033203125006,42.891796874999955],[130.24667968750012,42.744824218749955],[130.52695312500012,42.535400390625]]]},"properties":{"name":"Dem. Rep. Korea","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-17.190869140624926,32.86860351562498],[-16.693261718749966,32.75800781250001],[-17.018261718749926,32.66279296874998],[-17.226025390624983,32.76684570312503],[-17.190869140624926,32.86860351562498]]],[[[-25.64897460937499,37.840917968750006],[-25.18193359374996,37.837890625],[-25.19072265624999,37.764355468749955],[-25.73447265624992,37.76289062500001],[-25.845898437499983,37.89404296875],[-25.64897460937499,37.840917968750006]]],[[[-28.14726562499996,38.45268554687502],[-28.064794921875034,38.412744140624966],[-28.454492187500023,38.40864257812504],[-28.54882812499997,38.51855468750003],[-28.14726562499996,38.45268554687502]]],[[[-28.641308593749983,38.525],[-28.842041015625,38.5984375],[-28.69775390625,38.638476562500045],[-28.641308593749983,38.525]]],[[[-27.07524414062496,38.643457031249994],[-27.38593750000001,38.765820312499955],[-27.127001953125017,38.78984375],[-27.07524414062496,38.643457031249994]]],[[[-31.137109374999937,39.40693359375001],[-31.282958984375,39.39409179687496],[-31.260839843750034,39.49677734375001],[-31.137109374999937,39.40693359375001]]],[[[-7.406152343749937,37.17944335937497],[-7.834130859374994,37.005712890625034],[-8.597656249999943,37.12133789062506],[-8.997802734375028,37.03227539062502],[-8.814160156249983,37.43081054687502],[-8.881103515624943,38.44667968750005],[-8.668310546874949,38.42431640625003],[-8.798876953124989,38.518164062500034],[-9.213281249999937,38.44809570312498],[-9.250390624999966,38.65673828125003],[-9.021484374999943,38.746875],[-8.79160156249992,39.07817382812502],[-9.13579101562496,38.74277343749998],[-9.35673828124996,38.697900390624994],[-9.479736328124972,38.79877929687501],[-9.374755859374972,39.338281249999966],[-8.837841796874926,40.11567382812498],[-8.684619140624989,40.75253906250006],[-8.755419921874932,41.69838867187502],[-8.887597656249937,41.76459960937501],[-8.777148437500017,41.941064453124994],[-8.266064453124983,42.13740234375001],[-8.152490234374937,41.81196289062498],[-7.40361328124996,41.833691406249955],[-7.147119140625023,41.98115234374998],[-6.61826171874992,41.9423828125],[-6.542187499999955,41.672509765624994],[-6.2125,41.53203125],[-6.928466796874972,41.009130859375006],[-6.8101562499999,40.343115234375034],[-7.032617187499966,40.16791992187498],[-6.896093749999949,40.02182617187506],[-6.975390624999932,39.79838867187502],[-7.117675781249972,39.681689453125045],[-7.53569335937496,39.66157226562501],[-6.997949218749994,39.05644531250002],[-7.343017578124943,38.45742187500002],[-7.106396484374983,38.181005859375006],[-6.957568359374932,38.18789062499999],[-7.44394531249992,37.72827148437497],[-7.406152343749937,37.17944335937497]]]]},"properties":{"name":"Portugal","childNum":7,"cp":[-8.7440694,39.9251454]}},{"geometry":{"type":"Polygon","coordinates":[[[-58.15976562499999,-20.164648437500006],[-58.13779296874999,-20.2373046875],[-58.12460937499999,-20.29345703125],[-58.09150390625,-20.33320312500001],[-58.05844726562499,-20.38613281250001],[-58.025390625,-20.415820312500003],[-58.00224609374999,-20.465429687500006],[-57.97905273437499,-20.657324218750006],[-57.91513671874999,-20.69033203125001],[-57.830224609374994,-20.99794921875001],[-57.94267578124999,-21.79833984375],[-57.95590820312499,-22.109179687500003],[-56.77519531249999,-22.261328125],[-56.44780273437499,-22.076171875],[-56.39487304687499,-22.09267578125001],[-56.35185546874999,-22.17861328125001],[-56.246044921875,-22.2646484375],[-56.18984375,-22.28115234375001],[-55.99140625,-22.28115234375001],[-55.84916992187499,-22.3076171875],[-55.75327148437499,-22.41015625],[-55.74663085937499,-22.5126953125],[-55.61767578125,-22.671484375],[-55.53828125,-23.58095703125001],[-55.518457031249994,-23.627246093750003],[-55.458886718749994,-23.68671875000001],[-55.4423828125,-23.792578125],[-55.4423828125,-23.865332031250006],[-55.415917968749994,-23.95136718750001],[-55.36630859374999,-23.991015625],[-55.28691406249999,-24.004296875],[-55.1943359375,-24.01748046875001],[-55.08188476562499,-23.99765625],[-54.982666015625,-23.97451171875001],[-54.62548828125,-23.8125],[-54.44023437499999,-23.90175781250001],[-54.37080078125,-23.97119140625],[-54.24179687499999,-24.047265625],[-54.281005859375,-24.30605468750001],[-54.43623046875,-25.12128906250001],[-54.47314453125,-25.22021484375],[-54.610546875,-25.432714843750006],[-54.615869140624994,-25.57607421875001],[-54.63193359374999,-26.00576171875001],[-54.677734375,-26.30878906250001],[-54.934472656249994,-26.70253906250001],[-55.1359375,-26.93115234375],[-55.426660156249994,-27.00927734375],[-55.450634765625,-27.068359375],[-55.496728515624994,-27.115332031250006],[-55.564892578125,-27.15],[-55.59726562499999,-27.207617187500006],[-55.59379882812499,-27.2880859375],[-55.63291015624999,-27.35712890625001],[-55.71464843749999,-27.41484375],[-55.789990234375,-27.41640625],[-55.95146484374999,-27.32568359375],[-56.1640625,-27.32148437500001],[-56.437158203124994,-27.553808593750006],[-58.16826171874999,-27.2734375],[-58.60483398437499,-27.31435546875001],[-58.641748046874994,-27.19609375],[-58.618603515625,-27.132128906250003],[-58.222070312499994,-26.65],[-58.18149414062499,-26.307421875],[-57.943115234375,-26.05292968750001],[-57.563134765624994,-25.473730468750006],[-57.821679687499994,-25.13642578125001],[-59.187255859375,-24.562304687500003],[-59.892480468749994,-24.093554687500003],[-60.83984375,-23.85810546875001],[-61.084716796875,-23.65644531250001],[-61.79853515625,-23.18203125],[-62.21416015624999,-22.612402343750006],[-62.372509765625,-22.43916015625001],[-62.54155273437499,-22.349609375],[-62.6259765625,-22.29042968750001],[-62.62568359375,-22.261523437500003],[-62.65097656249999,-22.233691406250003],[-62.27666015624999,-21.066015625],[-62.276318359375,-20.5625],[-61.7568359375,-19.6453125],[-60.00737304687499,-19.29755859375001],[-59.09052734375,-19.286230468750006],[-58.18017578125,-19.81787109375],[-58.15976562499999,-20.164648437500006]]]},"properties":{"name":"Paraguay","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[34.34833984375004,31.292919921874955],[34.2453125000001,31.208300781250045],[34.2125,31.292285156250017],[34.198144531249994,31.322607421875063],[34.47734375000002,31.584863281250023],[34.52412109375004,31.541650390624994],[34.5255859375001,31.52563476562503],[34.34833984375004,31.292919921874955]]],[[[34.88046875,31.3681640625],[34.950976562500074,31.60229492187503],[35.20371093750006,31.75],[35.1271484375001,31.816748046875006],[35.05322265625003,31.83793945312496],[34.983007812500006,31.816796875000023],[34.9611328125001,31.823339843750006],[34.95380859375004,31.84125976562504],[34.98974609374997,31.913281249999955],[34.955957031249994,32.1609375],[35.01054687500002,32.33818359375002],[35.06503906250006,32.46044921875006],[35.19326171875005,32.53442382812503],[35.303808593750006,32.512939453125],[35.38671875000003,32.493017578125034],[35.402636718750074,32.45063476562501],[35.484375,32.40166015624999],[35.5514648437501,32.39550781250006],[35.57207031250002,32.237890625],[35.450585937499994,31.479296875000017],[34.88046875,31.3681640625]]]]},"properties":{"name":"Palestine","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-149.321533203125,-17.690039062499963],[-149.177685546875,-17.736621093750045],[-149.18178710937497,-17.86230468749997],[-149.34111328125,-17.732421874999986],[-149.57890624999993,-17.734960937499963],[-149.635009765625,-17.564257812500003],[-149.37919921874993,-17.522363281249994],[-149.321533203125,-17.690039062499963]]],[[[-143.44057617187497,-16.619726562499963],[-143.38618164062498,-16.668847656250023],[-143.55068359375002,-16.62109374999997],[-143.44057617187497,-16.619726562499963]]],[[[-139.02431640624997,-9.695214843750037],[-138.82734375,-9.74160156249998],[-139.13408203124996,-9.829492187500037],[-139.02431640624997,-9.695214843750037]]],[[[-140.075634765625,-9.425976562499983],[-140.14438476562498,-9.359375],[-140.07094726562497,-9.328125],[-140.075634765625,-9.425976562499983]]],[[[-140.07260742187503,-8.910449218750031],[-140.21743164062497,-8.929687499999957],[-140.24003906249993,-8.79755859375004],[-140.057666015625,-8.801464843750026],[-140.07260742187503,-8.910449218750031]]]]},"properties":{"name":"Fr. Polynesia","childNum":5}},{"geometry":{"type":"Polygon","coordinates":[[[51.26796875000002,24.607226562500003],[51.17802734375002,24.58671875],[51.093359375,24.564648437499997],[51.02275390625002,24.565234375],[50.96601562500001,24.573925781249997],[50.928320312500006,24.595117187499994],[50.85566406250001,24.679638671874997],[50.80439453125001,24.789257812499997],[50.8359375,24.850390625],[50.846777343750006,24.888574218749994],[50.75458984375001,25.39926757812499],[51.003125,25.9814453125],[51.262304687500006,26.153271484374997],[51.543066406250006,25.902392578125003],[51.4853515625,25.524707031250003],[51.60888671875,25.052880859374994],[51.42792968750001,24.668261718750003],[51.26796875000002,24.607226562500003]]]},"properties":{"name":"Qatar","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.2125,45.450439453125],[28.317675781250017,45.347119140625],[28.451269531250006,45.2921875],[28.78828125000001,45.240966796875],[28.78173828125,45.309863281249996],[28.894335937500017,45.289941406249994],[29.223535156250023,45.4029296875],[29.403710937500023,45.419677734375],[29.567675781250017,45.37080078125],[29.705859375000017,45.259912109374994],[29.557519531250023,44.843408203124994],[29.048242187500023,44.757568359375],[29.0953125,44.975048828125],[28.891503906250023,44.91865234375],[28.585351562500023,43.742236328124996],[28.221972656250017,43.772851562499994],[27.88427734375,43.987353515624996],[27.425390625,44.0205078125],[27.0869140625,44.167382812499994],[26.2158203125,44.007275390625],[25.4970703125,43.670800781249994],[22.919042968750006,43.83447265625],[22.868261718750006,43.947900390624994],[23.02851562500001,44.077978515625],[22.705078125,44.23779296875],[22.687890625000023,44.248291015625],[22.494531250000023,44.435449218749994],[22.554003906250017,44.540332031249996],[22.6201171875,44.562353515625],[22.70078125,44.555517578125],[22.734375,44.569921875],[22.72089843750001,44.605517578124996],[22.64208984375,44.6509765625],[22.49765625,44.70625],[22.350683593750006,44.676123046875],[22.200976562500017,44.560693359374994],[22.093066406250017,44.541943359375],[21.909277343750006,44.66611328125],[21.636132812500023,44.71044921875],[21.52314453125001,44.790087890624996],[21.36005859375001,44.82666015625],[21.35791015625,44.86181640625],[21.384375,44.870068359375],[21.442187500000017,44.873388671875],[21.519921875000023,44.880810546875],[21.532324218750006,44.900683593749996],[21.35703125,44.990771484374996],[21.465429687500006,45.171875],[21.431445312500017,45.192529296874994],[20.794042968750006,45.46787109375],[20.775,45.749804687499996],[20.760156250000023,45.758105468749996],[20.746875,45.748974609375],[20.727832031250017,45.73740234375],[20.709277343750017,45.735253906249994],[20.652734375000023,45.77939453125],[20.581152343750006,45.869482421875],[20.35859375000001,45.975488281249994],[20.241796875,46.10859375],[20.28095703125001,46.1330078125],[20.508105468750017,46.166943359375],[20.613671875000023,46.13349609375],[20.76025390625,46.246240234374994],[21.121679687500006,46.282421875],[21.99970703125001,47.505029296874994],[22.87666015625001,47.947265625],[23.054785156250006,48.00654296875],[23.139453125000017,48.08740234375],[23.20263671875,48.084521484374996],[23.408203125,47.989990234375],[23.628710937500017,47.995849609375],[24.578906250000017,47.931054687499994],[24.979101562500006,47.72412109375],[25.464257812500023,47.910791015624994],[25.689257812500017,47.932470703125],[25.90869140625,47.967578125],[26.162695312500006,47.992529296875],[26.236230468750023,48.064355468749994],[26.276953125,48.113232421875],[26.3056640625,48.203759765624994],[26.4423828125,48.22998046875],[26.618945312500017,48.25986328125],[26.980761718750017,48.155029296875],[27.614062500000017,47.34052734375],[28.07177734375,46.978417968749994],[28.23945312500001,46.6408203125],[28.07470703125,45.598974609375],[28.2125,45.450439453125]]]},"properties":{"name":"Romania","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[146.71396484375012,43.743798828124994],[146.62197265625,43.81298828125006],[146.88408203125002,43.82915039062496],[146.71396484375012,43.743798828124994]]],[[[146.20761718750006,44.49765625],[146.5677734375,44.44042968749997],[145.91406249999997,44.10371093750004],[145.58681640625,43.84511718750002],[145.5558593750001,43.66459960937502],[145.46171875000007,43.870898437500045],[146.20761718750006,44.49765625]]],[[[148.59951171875,45.317626953125],[147.91376953125004,44.99038085937502],[147.65781250000012,44.97714843749998],[146.89746093750003,44.404296875],[147.24658203124997,44.856054687500006],[147.88554687500007,45.22563476562499],[147.9240234375001,45.38330078125006],[148.05605468750005,45.26210937500005],[148.32421874999997,45.28242187500001],[148.8122070312501,45.510009765625],[148.83710937500004,45.36269531250002],[148.59951171875,45.317626953125]]],[[[149.68769531250004,45.64204101562501],[149.44707031250002,45.593359375000034],[149.9623046875,46.02192382812504],[150.553125,46.208544921875045],[149.68769531250004,45.64204101562501]]],[[[152.00205078125006,46.89716796874998],[151.72343750000007,46.82880859375001],[152.28886718750007,47.1421875],[152.00205078125006,46.89716796874998]]],[[[154.81044921875005,49.31201171875],[154.61093750000006,49.29404296874998],[154.82490234375004,49.64692382812501],[154.81044921875005,49.31201171875]]],[[[155.9210937500001,50.30219726562501],[155.39716796875004,50.04125976562497],[155.24306640625,50.09462890625002],[155.21835937500012,50.29785156250003],[155.68017578124997,50.400732421875034],[156.096875,50.771875],[155.9210937500001,50.30219726562501]]],[[[156.40507812500002,50.65761718750005],[156.16796874999997,50.73188476562498],[156.37646484374997,50.86210937499996],[156.4875,50.84296874999998],[156.40507812500002,50.65761718750005]]],[[[142.76103515625002,54.393945312499966],[143.32470703125003,52.96308593749998],[143.15556640625002,52.08374023437497],[143.29951171875004,51.632373046875045],[143.81601562500006,50.28261718750002],[144.71376953125,48.64028320312502],[144.04873046875,49.249169921874994],[143.73232421875,49.31201171875],[143.10498046875003,49.198828125000034],[142.57421874999997,48.07216796875002],[142.55693359375002,47.737890625000034],[143.21767578125005,46.79487304687504],[143.48564453125002,46.752050781250006],[143.58066406250012,46.360693359375034],[143.43164062500003,46.02866210937498],[143.28232421875006,46.55898437500002],[142.57802734375005,46.700781250000034],[142.07714843749997,45.91704101562499],[141.83037109375002,46.451074218749966],[142.03867187500012,47.140283203124966],[141.9640625000001,47.58745117187502],[142.18173828125012,48.01337890625001],[141.86630859375006,48.750097656250006],[142.1422851562501,49.56914062499999],[142.06601562500006,50.630468750000034],[142.20673828125004,51.22255859375002],[141.72236328125004,51.73632812499997],[141.66083984375004,52.27294921874997],[141.85556640625012,52.79350585937499],[141.82353515625007,53.33950195312502],[142.1419921875,53.49560546875003],[142.52617187500002,53.44746093749998],[142.70595703125,53.89570312499998],[142.33496093749997,54.28071289062501],[142.76103515625002,54.393945312499966]]],[[[137.17861328125005,55.100439453125034],[137.05527343750006,54.9267578125],[136.71464843750002,54.956152343750034],[137.17861328125005,55.100439453125034]]],[[[137.94052734375012,55.092626953125034],[138.20615234375012,55.03354492187498],[137.72148437500007,54.66323242187505],[137.46269531250002,54.873388671875034],[137.23291015624997,54.79057617187496],[137.5773437500001,55.19702148437497],[137.94052734375012,55.092626953125034]]],[[[21.235742187500023,55.26411132812498],[22.072363281250034,55.06367187499998],[22.56728515625005,55.05913085937496],[22.82470703125,54.87128906249998],[22.684472656250023,54.56293945312504],[22.679882812500068,54.493017578125006],[22.766210937499977,54.356787109375034],[22.168457031250057,54.35986328125006],[21.14052734375008,54.39179687499998],[19.604394531250023,54.45917968750004],[19.974511718750023,54.92119140625002],[20.520312500000017,54.994873046875],[20.89980468750008,55.286669921875045],[20.957812500000074,55.27890625000006],[20.594824218750006,54.982373046874955],[20.995898437500017,54.90268554687506],[21.18886718750008,54.93520507812502],[21.235742187500023,55.26411132812498]]],[[[166.65029296875005,54.83906249999998],[166.64511718750006,54.69409179687503],[165.75107421875006,55.294531250000034],[166.27578125000005,55.311962890624955],[166.24804687499997,55.16542968750002],[166.65029296875005,54.83906249999998]]],[[[150.58994140625006,59.01875],[150.47021484375003,59.05405273437498],[150.66621093750004,59.16015625000003],[150.58994140625006,59.01875]]],[[[163.63515625000005,58.603369140625006],[163.47138671875004,58.509375],[163.7609375000001,59.01503906250002],[164.57265625,59.22114257812501],[164.61572265624997,58.885595703125034],[163.63515625000005,58.603369140625006]]],[[[35.8161132812501,65.18208007812501],[35.77871093750005,64.97666015625],[35.52890625000006,65.15107421875001],[35.8161132812501,65.18208007812501]]],[[[70.02070312500004,66.502197265625],[69.65136718750003,66.56533203125],[69.50273437500002,66.75107421875],[70.07666015624997,66.69589843750003],[70.02070312500004,66.502197265625]]],[[[-179.79853515625,68.9404296875],[-178.873876953125,68.75410156249995],[-178.69262695312503,68.54599609375],[-178.09746093750002,68.4248046875],[-178.05581054687497,68.26489257812503],[-177.79677734374997,68.33798828125],[-178.37304687500003,68.56567382812503],[-177.52724609375002,68.29438476562501],[-177.58920898437503,68.22421875],[-175.34521484375,67.67807617187503],[-175.37470703124998,67.35737304687498],[-175.00268554687494,67.4375],[-174.849853515625,67.34887695312503],[-174.92490234375,66.62314453125006],[-174.503759765625,66.537939453125],[-174.39409179687496,66.34423828124997],[-174.084765625,66.47309570312504],[-174.06503906249998,66.22958984374998],[-173.77397460937502,66.43466796875003],[-174.23159179687497,66.63188476562505],[-174.08642578125,66.94287109375],[-174.55009765624993,67.090625],[-173.6796875,67.144775390625],[-173.15781249999998,67.06909179687503],[-173.32353515625,66.95483398437503],[-173.25893554687497,66.84008789062503],[-173.19301757812497,66.99360351562504],[-172.5201171875,66.952490234375],[-173.00751953125,67.06489257812498],[-171.79555664062502,66.93173828125003],[-170.50952148437503,66.34365234375005],[-170.604443359375,66.24892578125002],[-170.30122070312504,66.29404296874998],[-170.24394531250002,66.16928710937503],[-169.777880859375,66.14311523437505],[-169.83168945312497,65.99892578124997],[-170.54067382812497,65.86542968749995],[-170.66630859375,65.62153320312501],[-171.42153320312502,65.81035156250002],[-171.10585937500002,65.51103515625005],[-171.90712890625,65.495947265625],[-172.78330078124998,65.68105468749997],[-172.23281250000002,65.45571289062497],[-172.30927734375004,65.27563476562497],[-172.66191406249993,65.24853515625006],[-172.28603515625002,65.20571289062502],[-172.21318359375,65.04814453124999],[-173.08579101562498,64.81733398437495],[-172.80107421874996,64.79052734375],[-172.90087890624994,64.62885742187501],[-172.40146484374998,64.413916015625],[-172.73916015624997,64.41225585937502],[-172.90317382812498,64.52607421875004],[-172.96005859375003,64.32768554687502],[-173.27548828124998,64.2896484375],[-173.327490234375,64.53955078125003],[-173.72973632812497,64.36450195312497],[-174.57055664062503,64.7177734375],[-175.39511718749998,64.80239257812502],[-175.85385742187498,65.01083984375003],[-176.09326171875,65.471044921875],[-177.05625,65.613623046875],[-177.48876953125,65.50371093749999],[-178.4125,65.49555664062501],[-178.93906249999998,66.03276367187505],[-178.74672851562497,66.01367187500006],[-178.52656250000004,66.40156250000004],[-178.86811523437498,66.18706054687502],[-179.14340820312503,66.37504882812505],[-179.327197265625,66.16259765625003],[-179.68330078124998,66.18413085937505],[-179.78969726562497,65.90087890625],[-179.352099609375,65.51674804687497],[-180,65.06723632812498],[-180,65.31196289062501],[-180,65.55678710937497],[-180,65.80156250000002],[-180,66.04628906250002],[-180,66.29106445312499],[-180,66.53583984375004],[-180,66.78056640625005],[-180,67.02534179687501],[-180,67.27011718750006],[-180,67.51484374999998],[-180,67.75961914062503],[-180,68.00439453124997],[-180,68.24912109375],[-180,68.49389648437497],[-180,68.738671875],[-179.999951171875,68.98344726562505],[-179.79853515625,68.9404296875]]],[[[50.265234375,69.18559570312502],[49.62626953125002,68.85971679687498],[48.91035156250004,68.74306640625002],[48.4390625,68.80488281249998],[48.319921875,69.26923828125001],[48.8449218750001,69.49472656250003],[49.22519531250006,69.51123046875],[50.265234375,69.18559570312502]]],[[[161.46708984375002,68.90097656250003],[161.08281250000007,69.4056640625],[161.50517578125007,69.63945312500002],[161.46708984375002,68.90097656250003]]],[[[169.20078125000006,69.58046875],[168.34804687500005,69.66435546875005],[167.86474609375003,69.90107421875004],[168.35791015625003,70.01567382812502],[169.37480468750007,69.88261718749999],[169.20078125000006,69.58046875]]],[[[60.450488281250074,69.93486328124999],[60.44023437500002,69.72592773437506],[59.637011718750074,69.72104492187503],[59.50263671875004,69.86621093750003],[58.952734375,69.89277343750004],[58.51992187500005,70.31831054687504],[59.04804687500004,70.46049804687505],[60.450488281250074,69.93486328124999]]],[[[52.90332031250003,71.36499023437503],[53.19257812500004,71.21528320312498],[53.0226562500001,70.96870117187501],[52.24960937500006,71.28491210937506],[52.90332031250003,71.36499023437503]]],[[[178.8615234375001,70.826416015625],[178.68388671875013,71.10566406250004],[180,71.53774414062505],[180,70.993017578125],[178.8615234375001,70.826416015625]]],[[[137.95986328125005,71.50766601562503],[137.71181640625005,71.4232421875],[137.06406250000006,71.52988281250003],[137.816796875,71.58789062500006],[137.95986328125005,71.50766601562503]]],[[[-178.87646484375,71.57705078124997],[-178.13388671874998,71.46547851562497],[-177.523583984375,71.16689453125],[-179.415673828125,70.91899414062502],[-179.999951171875,70.993017578125],[-179.999951171875,71.53774414062505],[-178.87646484375,71.57705078124997]]],[[[77.6325195312501,72.291259765625],[76.87109374999997,72.317041015625],[77.74853515625003,72.63120117187506],[78.36513671875005,72.48242187500003],[77.6325195312501,72.291259765625]]],[[[79.50146484374997,72.72192382812497],[78.63320312500005,72.85073242187502],[79.16425781250004,73.0943359375],[79.50146484374997,72.72192382812497]]],[[[74.660546875,72.87343750000002],[74.18066406250003,72.975341796875],[74.19853515625002,73.10908203124998],[74.9615234375,73.0625],[74.660546875,72.87343750000002]]],[[[120.26132812500012,73.08984374999997],[119.79208984375006,73.04541015624997],[119.64042968750002,73.12431640625007],[120.26132812500012,73.08984374999997]]],[[[55.31982421875003,73.30830078124998],[56.42958984375005,73.201171875],[56.121679687500006,72.80659179687498],[55.40332031249997,72.54907226562503],[55.29785156249997,71.93535156250005],[56.45439453125002,71.10737304687504],[57.62539062500005,70.72880859374999],[57.14589843750005,70.58911132812506],[56.38574218749997,70.73413085937503],[56.49970703125004,70.56640625000003],[55.687304687500074,70.69218749999999],[54.60117187500006,70.68007812500002],[53.383593750000074,70.87353515625],[53.670507812500006,71.08691406250003],[54.155664062499994,71.12548828125],[53.40996093750002,71.34013671875002],[53.41162109375003,71.530126953125],[51.93789062500005,71.47470703124998],[51.511328125,71.64809570312497],[51.58251953124997,72.07119140625],[52.252050781250006,72.12973632812503],[52.66191406250002,72.33686523437495],[52.91660156250006,72.66889648437501],[52.5792968750001,72.791357421875],[53.3698242187501,72.91674804687506],[53.2511718750001,73.182958984375],[54.80390625000004,73.38764648437498],[55.31982421875003,73.30830078124998]]],[[[70.67392578125006,73.09501953125005],[70.04072265625004,73.03715820312507],[69.99589843750002,73.359375],[70.94023437500002,73.51440429687503],[71.6261718750001,73.17397460937497],[70.67392578125006,73.09501953125005]]],[[[142.18486328125007,73.89589843750005],[143.34375,73.56875],[143.45146484375007,73.231298828125],[141.59667968750003,73.31083984375005],[140.66279296875004,73.45200195312503],[139.785546875,73.35522460937503],[141.08476562500002,73.86586914062497],[142.18486328125007,73.89589843750005]]],[[[83.5490234375001,74.07177734375],[82.8177734375,74.09160156250005],[83.14980468750005,74.151611328125],[83.5490234375001,74.07177734375]]],[[[141.01025390625003,73.99946289062501],[140.40947265625002,73.92167968750005],[140.1935546875001,74.23671875000002],[141.03857421875003,74.24272460937502],[141.01025390625003,73.99946289062501]]],[[[113.38720703124997,74.40043945312499],[112.78242187500004,74.09506835937503],[111.50341796874997,74.35307617187502],[111.87978515625,74.36381835937499],[112.08447265624997,74.54897460937505],[113.38720703124997,74.40043945312499]]],[[[86.653125,74.981298828125],[87.05214843750005,74.982568359375],[86.92714843750005,74.83076171874998],[86.25859375000002,74.89350585937498],[86.653125,74.981298828125]]],[[[82.17236328125003,75.41938476562501],[81.97851562499997,75.24711914062499],[81.65478515625003,75.28891601562498],[81.71210937500004,75.45141601562506],[82.165625,75.515625],[82.17236328125003,75.41938476562501]]],[[[146.79521484375007,75.37075195312505],[148.43242187500002,75.41352539062495],[148.59013671875007,75.23637695312502],[150.82236328125006,75.15654296875002],[150.64628906250002,74.944580078125],[149.596875,74.77260742187505],[148.296875,74.80043945312502],[146.14853515625012,75.19829101562499],[146.5375,75.58178710937506],[146.79521484375007,75.37075195312505]]],[[[135.9486328125,75.40957031250005],[135.45195312500007,75.38955078124997],[135.6986328125,75.84526367187499],[136.16894531249997,75.60556640625],[135.9486328125,75.40957031250005]]],[[[140.04873046875,75.82895507812503],[140.81591796874997,75.63071289062498],[141.48544921875012,76.13715820312495],[142.66953125000012,75.86342773437497],[143.68583984375002,75.86367187500002],[145.35996093750006,75.53046874999998],[144.01972656250004,75.04467773437506],[143.1703125,75.11689453125001],[142.72949218749997,75.33764648437506],[142.941796875,75.71328125000002],[142.30791015625007,75.69169921875005],[142.19882812500006,75.39267578124998],[143.12792968749997,74.9703125],[142.47275390625006,74.82041015625],[141.98730468750003,74.99125976562499],[140.26787109375002,74.846923828125],[139.68125,74.96406249999995],[139.09912109374997,74.65654296875002],[138.09228515625003,74.79746093750003],[136.94765625000005,75.32553710937498],[137.28974609375004,75.34863281249997],[137.26884765625002,75.7494140625],[137.70654296875003,75.75957031250002],[137.56054687499997,75.95522460937502],[138.20761718750006,76.11494140624995],[138.91953125000006,76.19672851562501],[140.04873046875,75.82895507812503]]],[[[96.5324218750001,76.278125],[96.30058593750002,76.121728515625],[95.31113281250006,76.21474609375002],[95.37988281250003,76.2890625],[96.5324218750001,76.278125]]],[[[112.47802734375003,76.62089843749999],[112.531640625,76.450048828125],[111.96894531250004,76.62617187500001],[112.47802734375003,76.62089843749999]]],[[[149.15019531250002,76.65991210937506],[148.39863281250004,76.64824218750007],[149.4064453125001,76.78208007812498],[149.15019531250002,76.65991210937506]]],[[[67.7653320312501,76.23759765624999],[61.35595703124997,75.31484375000002],[60.27685546875003,75.00756835937503],[60.501367187499994,74.90463867187503],[59.67402343750004,74.61015624999999],[59.24013671875005,74.69296874999998],[59.040429687499994,74.48554687500001],[58.53466796875003,74.49892578124997],[58.6178710937501,74.22739257812498],[57.76738281250002,74.013818359375],[57.755957031250006,73.769189453125],[57.313085937500006,73.838037109375],[57.54257812500006,73.65820312500003],[56.96386718750003,73.36655273437503],[56.43037109375004,73.29721679687503],[55.00683593750003,73.45385742187506],[54.29990234375006,73.35097656249997],[53.7628906250001,73.76616210937499],[54.64267578125006,73.95957031250006],[55.34091796875006,74.41962890624998],[56.13710937500005,74.49609375000003],[55.5822265625001,74.627685546875],[56.4987304687501,74.95708007812505],[55.81005859374997,75.12490234374997],[56.03554687499999,75.19423828124997],[56.57031250000003,75.09775390625003],[56.8444335937501,75.351416015625],[57.606835937499994,75.34125976562498],[58.05830078125004,75.6630859375],[58.88125,75.85478515625007],[60.27929687499997,76.09624023437505],[60.94218750000002,76.07128906250003],[61.20166015624997,76.28203125000007],[62.97148437500002,76.23666992187498],[64.4634765625,76.37817382812503],[67.65185546874997,77.011572265625],[68.48574218750005,76.93369140625003],[68.94169921875002,76.707666015625],[67.7653320312501,76.23759765624999]]],[[[96.28544921875002,77.02666015625007],[95.27031250000007,77.01884765624999],[96.52841796875006,77.20551757812501],[96.28544921875002,77.02666015625007]]],[[[89.51425781250006,77.18881835937498],[89.14169921875012,77.22680664062497],[89.61621093749997,77.31103515625],[89.51425781250006,77.18881835937498]]],[[[130.68730468750007,42.30253906249999],[130.52695312500012,42.535400390625],[130.42480468749997,42.72705078124997],[131.06855468750004,42.90224609375005],[131.25732421875003,43.378076171874994],[131.2552734375,44.07158203124999],[130.9816406250001,44.844335937500034],[131.44687500000012,44.984033203124966],[131.85185546875002,45.32685546875001],[132.93603515624997,45.029931640624994],[133.1134765625001,45.130712890625006],[133.18603515625003,45.49482421875004],[133.43642578125,45.60468750000004],[133.86132812500003,46.24775390625004],[134.1676757812501,47.30219726562501],[134.75234375,47.71542968749998],[134.56601562500006,48.02250976562502],[134.66523437500004,48.25390625],[134.29335937500005,48.37343750000002],[133.46835937500006,48.09716796875003],[133.14404296875003,48.10566406249998],[132.7072265625001,47.94726562500006],[132.47626953125004,47.714990234374994],[130.96191406249997,47.70932617187498],[130.7326171875001,48.01923828124998],[130.80429687500012,48.34150390624998],[130.5521484375,48.602490234374955],[130.553125,48.861181640625006],[130.1959960937501,48.89165039062499],[129.49814453125012,49.38881835937502],[129.0651367187501,49.374658203124966],[128.70400390625,49.60014648437499],[127.99960937500006,49.56860351562506],[127.55078124999997,49.801806640625045],[127.590234375,50.20898437500003],[127.33720703125007,50.35014648437502],[127.30703125000005,50.70795898437501],[126.92480468749997,51.10014648437496],[126.34169921875,52.36201171875001],[125.64902343750012,53.042285156250045],[125.075,53.20366210937496],[124.81230468750002,53.133837890625045],[123.6078125,53.546533203124994],[120.98544921875012,53.28457031250002],[120.09453125000007,52.787207031250034],[120.0675781250001,52.632910156250034],[120.65615234375,52.56665039062503],[120.74980468750007,52.096533203125006],[120.06689453125003,51.60068359375006],[119.16367187500006,50.40600585937503],[119.34628906250012,50.278955078124994],[119.25986328125012,50.06640625000003],[118.4515625,49.84448242187503],[117.8734375,49.51347656250002],[116.6833007812501,49.82377929687499],[116.551171875,49.92031250000002],[116.35117187500012,49.97807617187499],[116.21679687500003,50.00927734375003],[116.13457031250002,50.01079101562499],[115.9259765625001,49.95214843750003],[115.79521484375002,49.90590820312502],[115.71777343750003,49.88061523437503],[115.58798828125006,49.88603515624996],[115.42919921874997,49.89648437499997],[115.36503906250002,49.911767578124966],[115.27451171875006,49.948876953124994],[115.00332031250005,50.138574218749994],[114.74316406249997,50.23369140625002],[114.29707031250004,50.27441406250006],[113.57421874999997,50.00703125000001],[113.44550781250004,49.94160156250001],[113.31904296875004,49.87431640624999],[113.16416015625012,49.79716796874999],[113.09208984375007,49.692529296874994],[113.05556640625,49.61625976562499],[112.91484375000002,49.569238281249994],[112.80644531250007,49.52358398437502],[112.69736328125012,49.50727539062498],[112.49492187500002,49.532324218750034],[112.07968750000006,49.42421875000002],[111.42929687500006,49.342626953125034],[111.3366210937501,49.355859374999966],[111.20419921875012,49.304296875000034],[110.82792968750002,49.16616210937505],[110.70976562500002,49.14296875000002],[110.42783203125006,49.219970703125],[110.32138671875012,49.215869140625045],[110.19990234375004,49.17041015625003],[109.5287109375,49.269873046875034],[109.45371093750012,49.29633789062501],[109.23671875000005,49.334912109374955],[108.61367187500005,49.32280273437499],[108.52246093750003,49.34150390624998],[108.4069335937501,49.39638671875005],[107.96542968750012,49.65351562500004],[107.91660156250012,49.947802734375045],[107.63095703125012,49.98310546875004],[107.3470703125,49.986669921875034],[107.23330078125,49.989404296874994],[107.14306640625003,50.03300781249999],[107.04023437500004,50.086474609375045],[106.94130859375005,50.19667968750002],[106.71113281250004,50.312597656250006],[106.57441406250004,50.32880859375004],[106.36845703125002,50.317578124999955],[106.21787109375006,50.304589843749966],[105.38359375000002,50.47373046874998],[104.07871093750012,50.15424804687498],[103.63291015625006,50.138574218749994],[103.49628906250004,50.16494140625005],[103.42119140625002,50.18706054687502],[103.3043945312501,50.200292968750034],[102.28837890625007,50.58510742187502],[102.31660156250004,50.71845703125001],[102.21503906250004,50.82944335937506],[102.19453125000004,51.05068359375002],[102.15195312500006,51.107519531250034],[102.14238281250007,51.21606445312503],[102.16005859375005,51.260839843750006],[102.1556640625,51.31376953124996],[102.1115234375001,51.353466796874955],[101.97919921875004,51.382226562499966],[101.82119140625,51.421044921874966],[101.57089843750006,51.46718750000005],[101.38125,51.45263671875],[100.53623046875006,51.713476562500034],[100.46894531250004,51.72607421875003],[100.23037109375,51.729833984375006],[100.0345703125,51.73710937499996],[99.92167968750002,51.755517578124994],[99.71923828124997,51.87163085937502],[98.89316406250006,52.11728515625006],[98.64052734375005,51.80117187500005],[98.103125,51.483544921874994],[97.82529296875012,50.985253906249994],[97.953125,50.85517578124998],[98.02978515625003,50.64462890624998],[98.07890625000002,50.60380859375002],[98.14501953124997,50.56855468750001],[98.22050781250007,50.55717773437502],[98.2794921875001,50.53325195312502],[98.25029296875002,50.30244140624998],[98.00390625000003,50.01425781249998],[97.35976562500005,49.741455078125],[97.20859375000006,49.73081054687506],[96.98574218750005,49.88281250000003],[96.31503906250012,49.90112304687503],[96.06552734375006,49.99873046875001],[95.52265625000004,49.911230468750034],[95.11142578125012,49.935449218749994],[94.93027343750006,50.04375],[94.8112304687501,50.04819335937506],[94.71806640625002,50.04326171875002],[94.67548828125004,50.02807617187506],[94.61474609375003,50.02373046874996],[94.56464843750004,50.08793945312499],[94.35468750000004,50.221826171874994],[94.25107421875006,50.55639648437503],[93.103125,50.60390625000002],[92.94130859375005,50.77822265625002],[92.85644531250003,50.78911132812502],[92.77929687500003,50.778662109375006],[92.738671875,50.71093749999997],[92.68134765625004,50.683203125],[92.6266601562501,50.68828124999999],[92.57890625000002,50.725439453125006],[92.42636718750006,50.803076171875006],[92.35478515625002,50.86416015625002],[92.29580078125,50.84980468750004],[92.19238281249997,50.700585937499994],[91.80429687500006,50.693603515625],[91.4464843750001,50.52216796874998],[91.41503906249997,50.46801757812506],[91.34082031249997,50.470068359375034],[91.30058593750002,50.46337890625],[91.2337890625,50.45239257812497],[91.02158203125012,50.41547851562501],[90.83808593750004,50.32373046874997],[90.76074218749997,50.30595703124999],[90.71435546874997,50.25942382812502],[90.65507812500007,50.22236328125001],[90.05371093750003,50.09375],[89.64384765625002,49.90302734374998],[89.65410156250007,49.71748046875001],[89.57919921875006,49.69970703125003],[89.475,49.66054687500005],[89.39560546875006,49.61152343750001],[89.24394531250007,49.62705078125006],[89.20292968750007,49.59570312499997],[89.17998046875002,49.5322265625],[89.10947265625012,49.50136718750002],[89.00839843750006,49.472802734374994],[88.97060546875,49.483740234375006],[88.94541015625012,49.50766601562498],[88.90019531250002,49.53969726562502],[88.86386718750006,49.52763671874996],[88.83164062500012,49.44843749999998],[88.633203125,49.486132812500045],[88.19257812500004,49.451708984375045],[88.13554687500002,49.38149414062502],[88.11572265624997,49.25629882812501],[88.0285156250001,49.219775390625045],[87.98808593750002,49.186914062499994],[87.9347656250001,49.16455078124997],[87.81425781250002,49.162304687499955],[87.7625,49.16582031249996],[87.5158203125001,49.122412109375006],[87.41669921875004,49.07661132812501],[87.32285156250012,49.085791015625006],[86.62646484374997,49.56269531250001],[86.67548828125004,49.77729492187501],[86.1808593750001,49.49931640624996],[85.2326171875001,49.61582031249998],[84.9894531250001,50.061425781249994],[84.32324218749997,50.239160156249966],[83.94511718750007,50.774658203125],[83.35732421875005,50.99458007812504],[82.76083984375012,50.89335937500002],[82.49394531250007,50.72758789062499],[81.46591796875006,50.73984375],[81.38828125000006,50.95649414062501],[81.0714843750001,50.96875],[81.12724609375002,51.19106445312502],[80.73525390625,51.29340820312498],[80.44804687500002,51.18334960937503],[80.42363281250002,50.94628906249997],[79.98623046875,50.774560546874966],[77.85996093750006,53.269189453124994],[76.48476562500005,54.02255859374998],[76.42167968750007,54.151513671874966],[76.65458984375007,54.14526367187503],[76.8373046875,54.4423828125],[75.43720703125004,54.08964843749999],[75.22021484374997,53.89379882812506],[74.45195312500007,53.64726562500002],[74.35156250000003,53.487646484375006],[73.85898437500006,53.61972656249998],[73.40693359375004,53.44755859374999],[73.30566406250003,53.707226562499955],[73.71240234375003,54.04238281250002],[73.22988281250005,53.957812500000045],[72.62226562500004,54.13432617187502],[72.44677734375003,53.94184570312498],[72.18603515625003,54.32563476562501],[72.00449218750006,54.20566406249998],[71.09316406250005,54.21220703124999],[71.18554687500003,54.59931640624998],[70.73808593750007,55.30517578125],[70.18242187500002,55.162451171875034],[68.9772460937501,55.389599609374955],[68.20625,55.16093750000002],[68.15585937500006,54.97670898437505],[65.476953125,54.62329101562497],[65.08837890624997,54.340185546875034],[64.46123046875002,54.38417968750002],[61.92871093750003,53.94648437500004],[61.231054687500006,54.01948242187498],[60.97949218749997,53.62172851562505],[61.53496093750002,53.52329101562506],[61.22890625,53.445898437500006],[61.19921874999997,53.28715820312502],[61.65986328125004,53.22846679687504],[62.08271484375004,53.00541992187499],[61.047460937500006,52.97246093750002],[60.77441406249997,52.67578124999997],[60.99453125000005,52.33686523437504],[60.03027343749997,51.93325195312505],[60.464746093749994,51.651171875000045],[61.55468750000003,51.32460937500005],[61.38945312500002,50.86103515625001],[60.94228515625005,50.69550781250004],[60.42480468749997,50.67915039062498],[60.05859374999997,50.850292968749955],[59.812402343749994,50.58203125],[59.523046875,50.492871093749955],[59.4523437500001,50.62041015625002],[58.88369140625005,50.694433593750006],[58.359179687500074,51.063818359375034],[57.83886718750003,51.091650390625006],[57.44218750000002,50.88886718749998],[57.01171874999997,51.06518554687503],[56.49140625000004,51.01953124999997],[55.68623046875004,50.582861328125006],[54.64160156250003,51.011572265625034],[54.555273437500006,50.535791015624994],[54.139746093750006,51.04077148437503],[53.33808593750004,51.48237304687504],[52.57119140625005,51.481640624999955],[52.21914062499999,51.709375],[51.344531250000074,51.47534179687503],[51.16347656250005,51.6474609375],[50.79394531249997,51.729199218749955],[50.246875,51.28950195312498],[49.49804687500003,51.08359375000006],[49.32343750000004,50.851708984374966],[48.625097656250006,50.61269531250005],[48.7589843750001,49.92832031250006],[48.33496093750003,49.858251953125006],[47.7057617187501,50.37797851562502],[47.42919921874997,50.35795898437502],[46.889550781249994,49.69697265625001],[46.80205078125002,49.36708984375002],[47.031347656250006,49.150292968749994],[46.70263671875003,48.80556640625002],[46.660937500000074,48.41225585937502],[47.06464843750004,48.23247070312499],[47.292382812499994,47.74091796875004],[47.48193359374997,47.80390624999998],[48.16699218750003,47.70878906249996],[48.959375,46.77460937499998],[48.558398437500074,46.75712890624999],[48.54121093750004,46.60561523437502],[49.232226562500074,46.33715820312503],[48.683691406250006,46.08618164062497],[48.72958984375006,45.896826171875034],[48.4870117187501,45.93486328124996],[47.63330078124997,45.58403320312499],[47.46328125,45.67968750000003],[47.5294921875001,45.530224609374955],[47.3512695312501,45.21772460937498],[46.7072265625001,44.503320312499994],[47.30703125000005,44.103125],[47.462792968749994,43.55502929687498],[47.64648437500003,43.88461914062498],[47.463183593750074,43.03505859375002],[48.572851562500006,41.84448242187503],[47.79101562499997,41.19926757812502],[47.31767578125002,41.28242187500001],[46.74931640625002,41.812597656250006],[46.42988281250004,41.890966796875006],[46.21269531250002,41.989892578124994],[45.63857421875005,42.20507812500003],[45.63427734374997,42.234716796875034],[45.72753906249997,42.47504882812498],[45.70527343750004,42.49809570312496],[45.56289062499999,42.53574218749998],[45.34375,42.52978515625003],[45.16025390625006,42.675],[45.07158203125002,42.69414062500002],[44.94335937499997,42.73027343750002],[44.870996093749994,42.75639648437499],[44.850488281249994,42.746826171875],[44.77109375000006,42.61679687499998],[44.69179687499999,42.709619140624966],[44.64433593750002,42.734716796875034],[44.50585937500003,42.748632812500006],[44.329492187499994,42.703515624999966],[44.10273437500004,42.616357421874994],[44.004687500000074,42.59560546875002],[43.95742187500005,42.56655273437505],[43.825976562500074,42.571533203125],[43.759863281250006,42.593847656250006],[43.738378906250006,42.61699218750002],[43.74990234375005,42.65751953125002],[43.79541015624997,42.702978515625034],[43.78261718750005,42.747021484374955],[43.62304687500003,42.80771484374998],[43.5578125000001,42.844482421875],[43.089160156250074,42.9890625],[43.00019531250004,43.04965820312506],[42.991601562499994,43.09150390624998],[42.76064453125005,43.169580078124966],[41.58056640624997,43.21923828124997],[41.460742187500074,43.276318359374955],[41.35820312500002,43.33339843750005],[41.08310546875006,43.37446289062498],[40.94199218750006,43.41806640624998],[40.801660156249994,43.479931640624955],[40.64804687500006,43.53388671875004],[40.084570312500006,43.553125],[40.02373046875002,43.48486328125],[39.873632812500006,43.47280273437502],[38.71728515624997,44.28808593750003],[38.18125,44.41967773437503],[37.851464843749994,44.698828125000034],[37.49511718750003,44.69526367187504],[37.20478515625004,44.97197265624999],[36.62763671875004,45.15131835937504],[36.941210937500074,45.289697265624994],[36.72041015625004,45.371875],[36.8659179687501,45.42705078124999],[37.21357421875004,45.272314453125006],[37.6471679687501,45.37719726562506],[37.61240234375006,45.56469726562506],[37.93310546875003,46.001708984375],[38.014257812500006,46.047753906249966],[38.07958984375003,45.93481445312506],[38.18359374999997,46.09482421875006],[38.49228515625006,46.09052734374998],[37.913867187500074,46.40649414062503],[37.766503906249994,46.63613281250002],[38.50097656249997,46.663671875000034],[38.43867187500004,46.813085937500006],[39.29345703125003,47.105761718750045],[39.19570312499999,47.268847656250045],[39.023730468750074,47.27221679687503],[38.928320312500006,47.175683593749994],[38.55244140625004,47.15034179687498],[38.7619140625001,47.261621093749994],[38.21435546875003,47.091455078124966],[38.36884765625004,47.609960937500006],[38.90029296875005,47.85512695312502],[39.77871093750005,47.88754882812506],[39.95791015625005,48.268896484375034],[39.8356445312501,48.54277343749996],[39.6447265625001,48.591210937499966],[39.792871093749994,48.807714843750034],[40.00361328125004,48.82207031250002],[39.68652343749997,49.007910156250034],[40.10878906250005,49.251562500000034],[40.080664062500006,49.576855468749955],[39.780566406250074,49.57202148437503],[39.17480468750003,49.85595703124997],[38.91835937499999,49.82470703125],[38.258593750000074,50.05234375],[38.046875,49.92001953125006],[37.42285156249997,50.411474609375006],[36.619433593750074,50.209228515625],[36.1164062500001,50.408544921875006],[35.59111328125002,50.36875],[35.31191406250005,51.043896484374955],[35.0640625,51.203417968750045],[34.21386718750003,51.25537109375006],[34.12109375000003,51.67915039062498],[34.397851562499994,51.780419921874994],[33.735253906249994,52.344775390625045],[32.435449218749994,52.307226562500034],[32.12226562500004,52.05058593749996],[31.763378906250097,52.10107421875003],[31.758593750000017,52.125830078125034],[31.690625,52.22065429687498],[31.64990234374997,52.26220703125],[31.60156250000003,52.284814453124994],[31.57734375000004,52.31230468749999],[31.585546875,52.532470703125],[31.56484375,52.75922851562501],[31.53515624999997,52.798242187499966],[31.442773437499994,52.86181640625003],[31.35302734374997,52.93344726562498],[31.295117187500097,52.98979492187499],[31.25878906249997,53.01669921875006],[31.364550781250017,53.13896484375002],[31.388378906250097,53.18481445312503],[31.41787109375005,53.196044921875],[31.849707031250006,53.106201171875],[32.14199218750005,53.091162109375034],[32.46933593750006,53.270312500000045],[32.578027343749994,53.312402343749994],[32.644433593749994,53.32890624999999],[32.70429687500004,53.33632812499999],[32.45097656250002,53.6533203125],[32.20039062500004,53.78125],[31.99218750000003,53.796875],[31.82080078124997,53.79194335937498],[31.754199218750017,53.81044921875002],[31.825292968750006,53.93500976562501],[31.837792968749994,54.00078124999999],[31.825976562500074,54.030712890624955],[31.79199218749997,54.05590820312503],[31.62841796874997,54.111181640625006],[31.403613281250017,54.195947265624966],[31.299121093750017,54.29169921875001],[31.184765625000097,54.452978515625006],[31.074804687500063,54.491796875],[31.154882812500063,54.610937500000034],[31.152148437500017,54.625341796875034],[31.12128906250004,54.64848632812496],[30.984179687500074,54.695898437500034],[30.79882812499997,54.78325195312499],[30.79101562499997,54.806005859375006],[30.804492187500074,54.8609375],[30.829882812500017,54.91499023437498],[30.977734375000097,55.05048828124998],[30.977734375000097,55.08779296875002],[30.958886718749994,55.13759765625005],[30.87744140625003,55.223437500000045],[30.81445312499997,55.27871093750002],[30.81054687499997,55.306982421875006],[30.82099609375004,55.330273437499955],[30.900585937500097,55.397412109374955],[30.906835937500063,55.57001953125004],[30.625585937500006,55.666259765625],[30.23359375000004,55.84521484375006],[30.04267578125004,55.83642578125003],[29.93701171874997,55.84526367187499],[29.881640625000074,55.83232421875002],[29.82392578125004,55.79511718749998],[29.74414062499997,55.770410156249994],[29.630078125000097,55.75117187499998],[29.482226562500074,55.6845703125],[29.412988281249994,55.72485351562506],[29.35341796875005,55.784375],[29.375,55.938720703125],[28.284277343750006,56.055908203125],[28.14794921875003,56.142919921875034],[28.202050781250023,56.260400390624994],[28.191699218750045,56.31557617187505],[28.169238281250017,56.386865234374994],[28.11083984375,56.51069335937501],[28.103125,56.545703125000045],[27.89208984375003,56.741064453125034],[27.88154296875001,56.82416992187501],[27.848632812500057,56.85341796875002],[27.806054687499994,56.86708984375005],[27.639453125000074,56.84565429687504],[27.83027343750004,57.19448242187505],[27.83828125000008,57.247705078124966],[27.82861328124997,57.293310546875006],[27.796875,57.316943359375045],[27.538671875000063,57.429785156250034],[27.51113281250005,57.508154296875006],[27.469726562500057,57.524023437500034],[27.35195312500005,57.528125],[27.4,57.66679687499999],[27.542089843750063,57.799414062500006],[27.778515625000068,57.87070312500006],[27.502441406250057,58.221337890624994],[27.434179687500006,58.787255859374994],[28.15107421875004,59.374414062499966],[28.0125,59.484277343749966],[28.05800781250008,59.781542968750045],[28.334570312500034,59.69252929687502],[28.518164062500034,59.849560546874955],[28.947265625000057,59.828759765624994],[29.147265625000045,59.999755859375],[30.12255859374997,59.873583984375074],[30.172656250000017,59.957128906250034],[29.72119140624997,60.19531249999997],[29.069140625000017,60.19145507812499],[28.643164062500006,60.375292968750045],[28.512792968750006,60.67729492187502],[27.797656250000074,60.53613281250003],[29.69013671875004,61.54609375000001],[31.18671875000004,62.48139648437504],[31.533984375000017,62.885400390624994],[31.180859375000097,63.208300781250074],[29.991503906250074,63.73515625000002],[30.50390625000003,64.02060546875],[30.513769531250006,64.2],[30.04189453125005,64.44335937499997],[30.072851562500063,64.76503906250005],[29.60419921875004,64.968408203125],[29.826953125000017,65.14506835937502],[29.608007812500006,65.248681640625],[29.715917968750063,65.62456054687502],[30.102734375000097,65.72626953125004],[29.066210937500045,66.89174804687497],[29.988085937500017,67.66826171874999],[29.343847656250006,68.06186523437506],[28.685156250000034,68.189794921875],[28.470703125000057,68.48837890625],[28.77285156250005,68.84003906249995],[28.414062500000057,68.90415039062506],[28.96582031250003,69.02197265625],[29.38828125,69.29814453125005],[30.08730468750005,69.43286132812503],[30.18017578124997,69.63583984375],[30.860742187499994,69.53842773437503],[30.869726562500006,69.78344726562506],[31.546972656250063,69.696923828125],[31.997949218749994,69.80991210937503],[31.98457031250004,69.95366210937499],[33.00781249999997,69.72211914062498],[32.91503906249997,69.60170898437497],[32.17675781250003,69.67402343749995],[32.37773437500002,69.47910156250003],[32.99980468750002,69.4701171875],[32.97890625000005,69.367333984375],[33.45429687500004,69.42817382812495],[33.14121093750006,69.068701171875],[33.684375,69.31025390625001],[35.85791015625003,69.19174804687503],[37.73056640625006,68.69213867187503],[38.43017578125003,68.35561523437505],[39.568945312500006,68.07172851562501],[39.82333984375006,68.05859375],[39.80927734375004,68.15083007812498],[40.38066406250002,67.831884765625],[40.96640625000006,67.71347656250003],[41.358789062499994,67.20966796874998],[41.18896484375003,66.82617187500003],[40.10332031250002,66.29995117187502],[38.65390625000006,66.06904296874995],[35.51347656250002,66.39580078125002],[34.82460937499999,66.61113281249999],[34.48261718750004,66.55034179687505],[34.4515625,66.651220703125],[33.15019531250002,66.84394531250001],[32.93046875000002,67.08681640625002],[31.895312500000074,67.16142578125002],[33.65595703125004,66.44262695312506],[33.36054687500004,66.32954101562501],[34.112695312499994,66.225244140625],[34.69179687500005,65.95185546874998],[34.77695312500006,65.76826171874998],[34.40644531250004,65.39575195312503],[35.03535156250004,64.44023437500005],[35.802050781250074,64.3353515625],[36.3649414062501,64.00283203125002],[37.44218750000002,63.813378906249966],[37.9679687500001,63.949121093749994],[38.0622070312501,64.09101562499995],[37.953710937500006,64.32011718749999],[37.183691406250006,64.40849609375007],[36.6242187500001,64.75053710937502],[36.534570312499994,64.93862304687497],[36.88281249999997,65.17236328124997],[39.7580078125001,64.57705078125002],[40.05781250000004,64.77075195312497],[40.44492187500006,64.7787109375],[39.7980468750001,65.349853515625],[39.816503906250006,65.59794921874999],[41.4757812500001,66.12343750000002],[42.21054687500006,66.51967773437502],[43.23320312500002,66.41552734375003],[43.653125,66.2509765625],[43.54189453125005,66.12338867187503],[43.84375,66.14238281249999],[44.10439453125005,66.00859374999999],[44.42929687500006,66.93774414062503],[43.7824218750001,67.25449218749998],[44.20468750000006,68.25375976562498],[43.33320312500004,68.67338867187502],[44.04804687500004,68.54882812499997],[45.891992187499994,68.47968750000001],[46.69042968750003,67.84882812500001],[45.52871093750005,67.75756835937497],[44.90214843750002,67.41313476562505],[45.56220703125004,67.18559570312507],[45.88535156250006,66.89106445312501],[46.4923828125001,66.80019531249997],[47.65585937500006,66.97592773437498],[47.87470703125004,67.58417968749998],[48.83320312500004,67.681494140625],[48.75429687500005,67.89594726562501],[49.15527343750003,67.87041015625005],[51.994726562500006,68.53876953124995],[52.3966796875001,68.35170898437505],[52.72265624999997,68.484033203125],[52.34404296875002,68.60815429687497],[53.80195312500004,68.99589843750002],[54.49121093750003,68.992333984375],[53.797656250000074,68.90747070312503],[53.9308593750001,68.43554687499997],[53.260546875000074,68.26748046875002],[54.476171875,68.29414062499995],[54.86132812500003,68.20185546874998],[55.418066406250006,68.56782226562501],[56.04365234375004,68.64887695312501],[57.126855468749994,68.55400390625005],[58.17304687500004,68.88974609375006],[59.0573242187501,69.00605468750004],[59.37050781250005,68.73837890625003],[59.09902343750005,68.4443359375],[59.725683593750006,68.35161132812502],[59.89599609374997,68.70634765624999],[60.489160156249994,68.72895507812498],[60.93359374999997,68.98676757812501],[60.17060546875004,69.59091796875],[60.90908203125005,69.84711914062495],[64.19042968750003,69.53466796875],[64.89628906250002,69.247802734375],[67.00244140625003,68.87358398437505],[68.37119140625006,68.31425781250005],[69.14052734375005,68.95063476562501],[68.54277343750002,68.96708984374999],[68.00585937499997,69.48002929687505],[67.62412109375,69.58442382812501],[67.06445312500003,69.69370117187498],[66.89667968750004,69.55380859374998],[67.28476562500006,70.73872070312498],[67.14335937500002,70.83754882812502],[66.70224609375006,70.81850585937497],[66.63964843749997,71.08139648437498],[68.2692382812501,71.68281250000001],[69.61181640625003,72.98193359375],[69.73828124999997,72.88496093749998],[71.5001953125001,72.91367187500003],[72.812109375,72.69140624999997],[72.57412109375,72.01254882812506],[71.86728515625,71.457373046875],[72.70449218750005,70.96323242187498],[72.5767578125,68.96870117187498],[73.59169921875005,68.48188476562501],[73.13945312500002,68.18134765624998],[73.06679687500005,67.766943359375],[71.84746093750002,67.00761718750005],[71.36523437500003,66.96152343749998],[71.53955078125003,66.68310546875],[70.72490234375007,66.51943359374997],[70.38281249999997,66.60249023437501],[70.69072265625002,66.74531249999998],[70.2833984375001,66.68579101562503],[69.8771484375001,66.84545898437506],[69.21777343749997,66.82861328125],[69.01347656250002,66.78833007812503],[69.19433593749997,66.57866210937505],[70.33945312500006,66.34238281250006],[71.35800781250006,66.35942382812505],[71.91699218749997,66.24672851562502],[72.32158203125002,66.33212890625],[72.4173828125,66.56079101562506],[73.79208984375,66.99531250000001],[74.07451171875007,67.41411132812499],[74.76953124999997,67.76635742187497],[74.39140625000007,68.42060546874995],[74.57958984375003,68.751220703125],[76.10751953125006,68.975732421875],[76.45917968750004,68.97827148437497],[77.2384765625001,68.46958007812498],[77.17441406250012,67.77851562499998],[77.77158203125006,67.57026367187501],[78.92246093750006,67.58911132812503],[77.58828125000005,67.75190429687498],[77.66484375000002,68.19038085937495],[77.99511718749997,68.25947265624998],[77.65068359375007,68.90302734375001],[76.00097656249997,69.23505859374998],[75.42001953125,69.23862304687498],[74.81484375,69.09057617187503],[73.83603515625006,69.143212890625],[73.578125,69.80297851562503],[74.34335937500006,70.57871093749998],[73.08623046875007,71.44492187500006],[73.67177734375,71.84506835937503],[74.99218749999997,72.14482421874999],[74.78681640625004,72.811865234375],[75.15244140625,72.85273437499998],[75.74140625000004,72.29624023437503],[75.273828125,71.95893554687495],[75.33203125000003,71.34174804687498],[76.92900390625002,71.12788085937504],[77.58964843750007,71.16791992187501],[78.32060546875002,70.93041992187503],[78.94218750000002,70.93378906250001],[79.08388671875,71.00200195312505],[78.58769531250007,70.993896484375],[78.21259765625004,71.26630859374998],[76.43339843750002,71.55249023437503],[76.03242187500004,71.91040039062503],[76.87138671875002,72.03300781250005],[77.77753906250004,71.83642578125006],[78.23242187500003,71.95229492187502],[78.01640625000007,72.092041015625],[77.49287109375004,72.07172851562504],[77.47158203125,72.19213867187506],[78.22539062500007,72.37744140625006],[79.4220703125001,72.38076171875002],[80.7625,72.08916015625002],[81.66162109374997,71.71596679687502],[82.75781250000003,71.76411132812498],[83.23359375000004,71.66816406249995],[82.32285156250006,71.26000976562503],[82.16318359375012,70.59814453125003],[82.22119140625003,70.39570312499998],[82.86914062499997,70.95483398437503],[83.03017578125,70.58051757812498],[82.6823242187501,70.21772460937498],[83.0807617187501,70.09301757812497],[83.07382812500012,70.276708984375],[83.73593750000006,70.54648437499998],[83.15126953125005,71.10361328124998],[83.534375,71.68393554687498],[83.20029296875012,71.87470703125004],[82.64541015625005,71.92524414062504],[82.09365234375,72.26542968750005],[80.82705078125005,72.48828124999997],[80.84160156250007,72.94916992187498],[80.4245117187501,73.23115234374998],[80.5832031250001,73.56845703125003],[85.20058593750005,73.72153320312506],[86.89296875,73.88710937500002],[85.79257812500012,73.438330078125],[86.67705078125002,73.10678710937503],[85.93896484374997,73.45649414062495],[87.12011718750003,73.61503906250002],[87.57119140625,73.81074218750001],[86.57109375000007,74.24375],[86.0013671875,74.316015625],[86.39580078125007,74.45009765624997],[86.89794921874997,74.32534179687497],[87.22968750000004,74.3638671875],[85.79101562499997,74.6451171875],[86.20126953125006,74.81621093750005],[86.65146484375012,74.68242187500005],[87.04179687500007,74.77885742187499],[87.46757812500002,75.01323242187505],[86.93906250000006,75.06811523437503],[87.00595703125012,75.16982421874997],[87.67138671874997,75.12958984375004],[90.18496093750005,75.59106445312497],[94.07519531249997,75.91289062499999],[92.89042968750002,75.90996093750002],[93.25927734375003,76.09877929687502],[95.57871093750012,76.13730468749998],[96.07548828125007,76.08198242187498],[95.65332031250003,75.89218750000003],[96.50859375000002,76.00556640624995],[96.49707031249997,75.89121093750003],[98.66201171875005,76.24267578125003],[99.77041015625,76.02875976562498],[99.5407226562501,75.79858398437497],[99.85136718750007,75.93027343749998],[99.8253906250001,76.13593749999995],[98.80566406250003,76.48066406250004],[100.84375,76.52519531250005],[101.59775390625006,76.43920898437503],[100.92802734375002,76.55673828124998],[100.98994140625004,76.99047851562497],[102.61015625000007,77.508544921875],[104.01455078125,77.73041992187501],[106.05957031249997,77.39052734375002],[104.20244140625002,77.101806640625],[106.9416015625001,77.034375],[107.42978515625006,76.92656250000002],[106.41357421874997,76.51225585937499],[107.72216796875003,76.52231445312498],[108.18164062500003,76.73784179687502],[111.39248046875,76.686669921875],[112.09394531250004,76.48032226562506],[111.94267578125002,76.38046875000003],[112.61953125,76.38354492187506],[112.65625,76.05356445312498],[113.2726562500001,76.25166015625001],[113.5638671875,75.89165039062502],[113.85722656250007,75.92128906250002],[113.56757812500004,75.56840820312499],[112.45302734375,75.83017578125003],[112.95566406250006,75.571923828125],[113.24296875000007,75.61142578125003],[113.72617187500012,75.45063476562498],[112.92490234375012,75.01503906249997],[109.84033203124997,74.32197265624998],[109.8102539062501,74.16918945312503],[108.19951171875002,73.69409179687497],[107.27109375000006,73.62104492187501],[106.67939453125004,73.3306640625],[106.1886718750001,73.3080078125],[105.14394531250005,72.77705078125001],[105.7082031250001,72.836669921875],[106.47792968750005,73.13940429687503],[107.750390625,73.17314453125007],[109.33105468749997,73.48745117187497],[109.85527343750002,73.47246093750002],[110.86816406249997,73.73071289062497],[109.70673828125004,73.74375],[110.2614257812501,74.01743164062503],[111.05625,73.93935546875002],[111.13085937500003,74.05283203125003],[111.55058593750007,74.02851562499998],[111.22812500000012,73.96855468750002],[111.40039062500003,73.827734375],[112.14726562500007,73.70893554687498],[112.79541015625003,73.74609375],[112.83593750000003,73.96206054687502],[113.03281250000006,73.91386718750007],[113.4162109375001,73.647607421875],[113.15693359375004,73.45957031249998],[113.49091796875004,73.34609375000002],[113.12783203125,72.8306640625],[113.66455078124997,72.63452148437503],[113.2155273437501,72.80585937500001],[113.88623046875003,73.34580078124998],[113.51035156250012,73.50498046874998],[115.33769531250007,73.70258789062501],[118.87089843750007,73.53789062500002],[118.45703124999997,73.46440429687507],[118.43027343750012,73.24653320312501],[119.750390625,72.97910156250006],[122.26015625,72.88056640624995],[122.75195312500003,72.906494140625],[122.61523437499997,73.02792968750006],[123.1603515625001,72.95488281250002],[123.62226562500004,73.19326171875],[123.49111328125005,73.666357421875],[124.54121093750004,73.75126953125007],[125.59853515625005,73.447412109375],[126.25449218750012,73.548193359375],[126.55253906250007,73.33491210937498],[127.03134765625006,73.54746093750003],[127.74033203125012,73.48154296875],[129.10058593750003,73.11235351562502],[128.5990234375,72.895166015625],[129.01728515625004,72.8724609375],[129.250390625,72.70517578125003],[128.41826171875002,72.53515625000003],[129.28134765625006,72.43769531249998],[129.41064453124997,72.16630859375002],[128.93496093750005,72.07949218750002],[127.8034179687501,72.43403320312504],[127.84140625000012,72.308251953125],[128.91142578125002,71.75532226562495],[129.21025390625007,71.91694335937501],[129.46083984375,71.73930664062499],[128.84326171875003,71.6634765625],[129.76191406250004,71.11953125000002],[130.53710937500003,70.89252929687495],[130.75712890625002,70.96235351562498],[131.02158203125006,70.74609374999997],[132.0353515625001,71.24404296875],[132.65390625000006,71.92597656250001],[133.6888671875,71.434228515625],[134.70273437500012,71.38681640625003],[135.55917968750006,71.6103515625],[136.09033203125003,71.61958007812501],[137.9396484375001,71.1333984375],[137.84404296875007,71.22680664062503],[138.31406250000006,71.32553710937498],[137.918359375,71.38408203124999],[138.23417968750007,71.596337890625],[138.78017578125,71.62900390624998],[139.209375,71.44477539062501],[139.98417968750007,71.49150390625005],[139.72294921875002,71.88496093749998],[139.35927734375005,71.95136718750001],[140.18769531250004,72.19130859374997],[139.17636718750006,72.16347656249997],[139.14082031250004,72.32973632812502],[139.60117187500012,72.49609374999997],[141.07929687500004,72.5869140625],[140.80820312500006,72.89096679687503],[142.06142578125005,72.72080078125],[146.25292968749997,72.442236328125],[146.234765625,72.34970703125],[144.77636718749997,72.38227539062495],[144.16923828125002,72.25878906250003],[144.29492187499997,72.19262695312497],[146.83183593750007,72.29541015625003],[146.11328125000003,71.94497070312497],[146.23027343750007,72.1375],[145.75859375000007,72.22587890624999],[145.75673828125005,71.94130859375002],[145.06396484374997,71.92607421875002],[145.18857421875012,71.69580078125],[146.07324218749997,71.80834960937503],[147.26181640625006,72.327880859375],[149.50156250000012,72.16430664062497],[150.01689453125002,71.89565429687505],[149.04873046875005,71.79575195312503],[148.9681640625,71.69047851562499],[150.59980468750004,71.5201171875],[150.09765624999997,71.22656249999997],[150.96777343749997,71.38046874999998],[151.58242187500005,71.28696289062503],[152.09277343749997,71.02329101562503],[151.76201171875002,70.98247070312499],[152.50878906250003,70.83447265625003],[156.68457031250003,71.09375],[158.03701171875005,71.03925781250001],[159.35068359375006,70.79072265625001],[160.00644531250006,70.30966796875006],[159.72939453125005,69.87021484375006],[160.91074218750012,69.60634765625002],[161.03554687500005,69.09819335937507],[161.30986328125007,68.98227539062498],[160.85605468750006,68.53833007812506],[161.565625,68.90517578125],[161.53691406250002,69.379541015625],[162.16601562499997,69.61157226562503],[163.20136718750004,69.71474609375],[166.82031250000003,69.49956054687505],[167.8568359375,69.72822265624998],[168.30302734375002,69.27148437500003],[169.31064453125006,69.07954101562498],[169.60986328124997,68.78603515624997],[170.53759765624997,68.82539062500001],[170.99541015625002,69.04531250000005],[170.58222656250004,69.58334960937506],[170.16093750000007,69.62656249999998],[170.48681640625003,70.107568359375],[173.27744140625006,69.823828125],[173.43867187500004,69.94682617187502],[175.92148437500012,69.89531250000002],[179.27265624999998,69.25966796875002],[180,68.98344726562505],[180,65.06723632812498],[178.51953125000003,64.60297851562498],[177.7486328125,64.71704101562503],[176.88085937499997,65.08193359375002],[176.34101562500015,65.04731445312501],[177.03730468750004,64.99965820312497],[177.22285156250004,64.861669921875],[177.06875,64.78666992187502],[176.06113281250012,64.96088867187498],[174.54882812500009,64.68388671875005],[176.0565429687501,64.90473632812498],[176.35097656250005,64.70512695312502],[176.14091796875007,64.58583984375005],[177.42744140625015,64.76337890624998],[177.43291015625002,64.44448242187502],[177.6875,64.30473632812507],[178.04472656250013,64.21958007812503],[178.22949218749991,64.36440429687497],[178.38144531250018,64.26088867187502],[178.73144531250003,63.667089843750006],[178.44042968750009,63.605566406250006],[178.74404296874994,63.39477539062503],[178.79296874999997,63.54033203125002],[179.38857421875,63.14721679687497],[179.25957031250002,63.00830078125],[179.5705078125001,62.6875],[179.12070312500012,62.32036132812499],[177.292578125,62.59902343750002],[177.33896484375006,62.781347656250034],[177.02353515625012,62.777246093749994],[177.15947265625007,62.56098632812498],[174.51435546875015,61.823632812499966],[173.6234375,61.716064453125],[173.13183593749997,61.40664062500002],[172.85654296875006,61.469189453124955],[172.90800781250002,61.311621093750006],[172.39609375000006,61.16738281250002],[172.39277343750004,61.061767578125],[170.60820312500007,60.434912109375034],[170.3509765625,59.965527343749955],[169.9826171875001,60.067089843749955],[169.2267578125001,60.59594726562497],[168.1375,60.57392578125001],[167.22675781250004,60.406298828125045],[166.27304687500012,59.85625],[166.13603515625007,59.979345703125034],[166.35214843750006,60.48481445312498],[165.08457031250006,60.09858398437498],[164.95371093750006,59.843603515625006],[164.52529296875,60.06127929687503],[164.11328125000003,59.89755859374998],[164.13505859375002,59.984375],[163.74384765625004,60.02802734374998],[163.36484375000012,59.78144531250004],[163.27285156250005,59.302587890625006],[162.14160156249997,58.44741210937502],[161.96005859375012,58.07690429687506],[162.39140625000002,57.717236328124955],[162.65429687499997,57.94824218750003],[163.22578125000004,57.790380859375034],[162.77929687500003,57.35761718749998],[162.79111328125012,56.875390624999966],[162.92207031250004,56.72265625000003],[163.2565429687501,56.68803710937499],[163.33554687500012,56.232519531250006],[163.04736328125003,56.044677734375],[162.84033203125003,56.065625],[162.628125,56.232275390625034],[163.03837890625002,56.521875],[162.67148437500006,56.49008789062498],[162.52822265625005,56.260693359374955],[162.08496093749997,56.08964843750002],[161.72392578125002,55.49614257812499],[162.10556640625006,54.75214843750004],[161.62480468750002,54.51625976562502],[160.77265625000004,54.54135742187498],[160.0744140625001,54.18916015625001],[159.84375,53.78364257812498],[160.02509765625004,53.129589843749955],[159.58593750000003,53.237695312499966],[158.74541015625002,52.90893554687506],[158.47207031250005,53.032373046874966],[158.6087890625,52.873632812500034],[158.49316406249997,52.383154296875034],[158.10351562500003,51.80961914062499],[156.84746093750002,51.006591796875],[156.74775390625004,50.969287109375045],[156.52119140625004,51.38027343750002],[156.36474609374997,52.509375],[156.11035156250003,52.86616210937504],[155.62031250000004,54.86455078125002],[155.5548828125001,55.348486328125034],[155.98251953125012,56.69521484375002],[156.8488281250001,57.290185546874994],[156.97675781250004,57.46630859375],[156.82988281250007,57.77963867187498],[157.4503906250001,57.79926757812498],[157.66640625000005,58.01977539062506],[158.27519531250007,58.00898437499998],[159.21064453125004,58.519433593749966],[159.8473632812501,59.127148437499955],[161.75351562500012,60.15229492187501],[162.06816406250002,60.466406250000034],[163.70996093749997,60.916796875000045],[163.55351562500002,61.02563476562503],[164.00546875000006,61.34379882812499],[163.80439453125004,61.46137695312498],[164.20722656250004,62.29223632812506],[164.59833984375004,62.470556640625034],[165.20810546875012,62.37397460937501],[165.41738281250005,62.447070312500045],[164.418359375,62.704638671875045],[163.33173828125004,62.550927734374994],[163.01767578125006,61.89106445312504],[163.25781249999997,61.69946289062497],[163.08525390625002,61.570556640625],[162.85595703125003,61.705029296874955],[162.39257812500003,61.662109375],[160.76660156249997,60.753320312499966],[160.17363281250002,60.638427734375],[160.37890625000003,61.02548828124998],[159.79042968750005,60.956640625],[160.309375,61.894384765625006],[159.55234375000012,61.71948242187497],[159.18925781250007,61.92939453125001],[158.07011718750002,61.75361328125001],[157.46933593750012,61.798925781250006],[157.0841796875001,61.67568359375002],[155.71611328125002,60.682373046875],[154.97080078125012,60.376660156249955],[154.29306640625006,59.833349609375034],[154.1498046875,59.52851562500001],[154.97128906250006,59.44960937500002],[155.16044921875002,59.19013671875001],[154.45800781250003,59.21655273437497],[154.01093750000004,59.075537109375006],[153.69521484375005,59.22475585937505],[153.36113281250002,59.214794921874955],[152.81787109375003,58.92626953124997],[152.31962890625002,59.03076171875003],[152.08789062499997,58.910449218750045],[151.32675781250006,58.875097656250034],[151.12109375000003,59.08251953125003],[152.26064453125,59.22358398437498],[151.34824218750012,59.561132812500006],[150.4835937500001,59.494384765625],[150.66728515625002,59.55634765625001],[149.64257812499997,59.770410156249994],[149.06523437500002,59.63051757812502],[149.20498046875,59.488183593749966],[148.79707031250004,59.532324218750006],[148.74414062499997,59.37353515624997],[148.96464843750007,59.36914062499997],[148.72666015625006,59.257910156250034],[148.25742187500006,59.414208984374994],[147.51445312500002,59.2685546875],[146.53720703125006,59.45698242187501],[146.0495117187501,59.17055664062502],[145.55458984375,59.413525390624955],[143.19218750000002,59.3701171875],[142.58027343750004,59.240136718749966],[140.79023437500004,58.30346679687503],[140.446875,57.81367187499998],[138.66210937500003,56.96552734375004],[137.69150390625006,56.13935546875004],[135.2625,54.94331054687498],[135.25771484375005,54.73149414062499],[135.85156249999997,54.583935546874955],[136.797265625,54.62099609375005],[136.71884765625006,53.804101562499994],[137.15537109375012,53.82167968750002],[137.14160156249997,54.182226562500006],[137.66601562500003,54.283300781250006],[137.3392578125,54.10053710937498],[137.83476562500002,53.94672851562498],[137.25371093750007,53.546142578125],[137.95048828125007,53.60356445312499],[138.52792968750012,53.959863281249994],[138.56914062500002,53.818798828124955],[138.24970703125004,53.524023437500034],[138.45068359375003,53.53701171875002],[138.69941406250004,53.869726562500034],[138.65722656249997,54.29833984375003],[139.31972656250005,54.19296874999998],[139.707421875,54.27714843749999],[140.68759765625012,53.59643554687503],[141.3737304687501,53.29277343749999],[141.18125,53.01528320312505],[140.83964843750002,53.087890625],[141.25585937499997,52.84013671874996],[141.13242187500006,52.435693359374994],[141.48525390625,52.17851562500002],[141.36689453125004,51.92065429687506],[140.93261718750003,51.61992187499999],[140.5208984375,50.80019531250005],[140.62451171874997,50.08242187500002],[140.46269531250002,49.911474609375006],[140.51718750000012,49.59614257812498],[140.17060546875004,48.52368164062497],[138.58681640625005,47.057226562500006],[138.33691406250003,46.543408203124955],[137.68544921875,45.81835937500003],[136.14228515625004,44.489111328125034],[135.87460937500012,44.37353515625003],[135.1310546875001,43.52573242187506],[134.01044921875004,42.94746093750001],[133.15996093750007,42.69697265624998],[132.70898437500003,42.875830078125006],[132.30380859375006,42.88330078125],[132.30957031249997,43.31352539062499],[131.8666015625,43.09516601562501],[131.93896484374997,43.30195312500004],[131.15830078125012,42.62602539062499],[130.709375,42.656396484374966],[130.8341796875001,42.52294921875006],[130.68730468750007,42.30253906249999]]],[[[107.69550781250004,78.13090820312505],[107.48164062500004,78.057763671875],[106.41552734375003,78.13984375000001],[107.69550781250004,78.13090820312505]]],[[[102.88476562499997,79.25395507812505],[102.4123046875001,78.83544921874997],[103.80078124999997,79.14926757812503],[104.45205078125005,78.880029296875],[105.14599609375003,78.81884765625006],[105.31259765625012,78.49990234375],[104.74179687500012,78.33974609374997],[102.79667968750007,78.18789062500002],[101.20410156249997,78.19194335937505],[99.50029296875002,77.97607421875003],[101.590625,79.350439453125],[102.25126953125002,79.25605468749995],[102.40488281250006,79.43320312499998],[102.88476562499997,79.25395507812505]]],[[[76.24892578125005,79.65107421874995],[77.58896484375012,79.50190429687504],[76.64951171875012,79.493408203125],[76.24892578125005,79.65107421874995]]],[[[92.68349609375005,79.685205078125],[91.37626953125007,79.83549804687505],[91.22929687500007,80.03071289062504],[93.803125,79.904541015625],[92.68349609375005,79.685205078125]]],[[[51.409277343750006,79.94423828125],[50.09140625,79.98056640625003],[50.93632812500002,80.09423828125],[51.409277343750006,79.94423828125]]],[[[59.68886718750005,79.95581054687506],[58.91923828125002,79.98461914062506],[59.54453125000006,80.11884765624995],[59.68886718750005,79.95581054687506]]],[[[97.67451171875004,80.15825195312499],[97.65166015625002,79.76064453125],[98.59648437500002,80.05219726562495],[100.0612304687501,79.77709960937506],[99.68066406250003,79.32333984374998],[99.04179687500007,79.29301757812502],[99.92929687500012,78.96142578124997],[98.41113281250003,78.78779296875004],[95.53105468750007,79.09809570312501],[95.02041015625005,79.05268554687498],[94.21875,79.40234375],[93.07080078124997,79.49531250000001],[94.98730468749997,80.096826171875],[95.28134765625012,80.030517578125],[97.67451171875004,80.15825195312499]]],[[[50.05175781250003,80.07431640625003],[49.55605468750005,80.15893554687503],[49.883691406249994,80.230224609375],[50.05175781250003,80.07431640625003]]],[[[57.07871093750006,80.35092773437498],[56.986914062500006,80.07148437499998],[55.811621093750006,80.08715820312497],[56.02441406250003,80.34130859374997],[57.07871093750006,80.35092773437498]]],[[[53.521386718749994,80.18520507812497],[52.34355468750002,80.213232421875],[52.85390625,80.40239257812499],[53.85166015625006,80.26835937500005],[53.521386718749994,80.18520507812497]]],[[[57.95625,80.12324218749995],[57.33232421875002,80.15810546875005],[57.075,80.49394531249999],[59.25546875000006,80.34321289062501],[58.39794921874997,80.31875],[57.95625,80.12324218749995]]],[[[54.41533203125002,80.47280273437502],[53.811914062499994,80.47622070312502],[53.87724609375002,80.60527343750002],[54.41533203125002,80.47280273437502]]],[[[47.441992187500006,80.853662109375],[48.44570312500005,80.80600585937506],[48.68359375000003,80.63325195312504],[47.7052734375001,80.76518554687499],[46.141406250000074,80.44672851562495],[45.969042968750074,80.56948242187502],[44.9049804687501,80.61127929687501],[47.441992187500006,80.853662109375]]],[[[62.167773437500074,80.83476562500005],[62.07578125000006,80.616943359375],[61.05126953124997,80.418603515625],[60.27832031249997,80.49443359374999],[59.649804687499994,80.43125],[59.59228515625003,80.81650390624998],[62.167773437500074,80.83476562500005]]],[[[50.278125,80.92724609374997],[51.70361328125003,80.68764648437502],[48.81103515625003,80.35371093750001],[48.97753906250003,80.16259765624997],[47.73730468749997,80.08168945312502],[47.89296875000005,80.23925781249997],[46.991015625000074,80.182763671875],[46.644433593749994,80.30034179687507],[47.89580078125002,80.52905273437503],[49.087792968749994,80.515771484375],[49.24433593750004,80.82138671875],[50.278125,80.92724609374997]]],[[[80.02666015625007,80.84814453125003],[79.09853515625005,80.81206054687505],[79.21738281250012,80.96035156249997],[80.27958984375007,80.94980468750003],[80.02666015625007,80.84814453125003]]],[[[61.1408203125001,80.95034179687497],[60.0783203125001,80.99916992187497],[61.45742187499999,81.10395507812501],[61.1408203125001,80.95034179687497]]],[[[54.71894531250004,81.11596679687497],[56.47226562500006,80.99824218749995],[57.58037109375002,80.75546874999998],[55.88339843750006,80.62841796875003],[54.66816406250004,80.73867187500002],[54.04541015624997,80.87197265625],[54.71894531250004,81.11596679687497]]],[[[58.62236328125002,81.04165039062502],[58.930566406249994,80.83168945312497],[58.28564453124997,80.76489257812503],[57.21093749999997,81.01708984374997],[58.04951171875004,81.11845703125002],[58.62236328125002,81.04165039062502]]],[[[63.37382812500002,80.70009765624997],[62.59257812500002,80.85302734375006],[64.80205078125002,81.197265625],[65.43740234375005,80.93071289062507],[63.37382812500002,80.70009765624997]]],[[[91.56718750000007,81.14121093750003],[91.2228515625001,81.063818359375],[89.90117187500002,81.17070312500002],[91.56718750000007,81.14121093750003]]],[[[96.52656250000004,81.0755859375],[97.86992187500007,80.76328125000006],[97.02539062499997,80.53554687500002],[97.29843750000006,80.27275390625005],[93.6546875,80.009619140625],[91.52382812500005,80.35854492187502],[93.2625,80.79125976562497],[92.59257812500007,80.780859375],[92.7103515625,80.87216796875003],[95.1595703125,81.27099609375003],[95.80068359375005,81.28046874999998],[96.52656250000004,81.0755859375]]],[[[57.81025390625004,81.54604492187502],[58.563867187499994,81.41840820312504],[57.858691406250074,81.36806640625],[57.76972656250004,81.16972656249999],[55.71669921875005,81.1884765625],[55.46601562500004,81.31118164062502],[57.81025390625004,81.54604492187502]]],[[[63.65097656250006,81.60932617187501],[62.10644531249997,81.679345703125],[63.709570312500006,81.68730468750002],[63.65097656250006,81.60932617187501]]],[[[58.29541015625003,81.715185546875],[58.13457031250002,81.82797851562498],[59.261816406250006,81.85419921874998],[59.35644531250003,81.75898437499995],[58.29541015625003,81.715185546875]]]]},"properties":{"name":"Russia","childNum":73}},{"geometry":{"type":"Polygon","coordinates":[[[30.50996093750001,-1.067285156250009],[30.47705078125,-1.0830078125],[30.47021484375,-1.131152343750003],[30.508105468750017,-1.208203125000011],[30.631933593750006,-1.367480468750003],[30.710742187500017,-1.396777343750003],[30.76220703125,-1.458691406250011],[30.812597656250006,-1.563085937500006],[30.8765625,-2.143359375],[30.85498046875,-2.265429687500003],[30.828710937500006,-2.338476562500006],[30.7625,-2.371679687500006],[30.71484375,-2.363476562500011],[30.656640625000023,-2.373828125],[30.593359375,-2.396777343750003],[30.553613281250023,-2.400097656250011],[30.408496093750017,-2.31298828125],[30.117285156250006,-2.416601562500006],[29.93017578125,-2.339550781250011],[29.8681640625,-2.71640625],[29.698046875000017,-2.794726562500003],[29.390234375,-2.80859375],[29.10205078125,-2.595703125],[29.01435546875001,-2.72021484375],[28.893945312500023,-2.635058593750003],[28.876367187500023,-2.400292968750009],[29.13154296875001,-2.195117187500003],[29.196582031250017,-1.719921875000011],[29.576953125000017,-1.387890625000011],[29.82539062500001,-1.335546875],[29.930078125000023,-1.469921875000011],[30.360253906250023,-1.074609375],[30.41230468750001,-1.063085937500006],[30.46992187500001,-1.066015625],[30.50996093750001,-1.067285156250009]]]},"properties":{"name":"Rwanda","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[41.98769531250005,16.715625],[42.059960937499994,16.803515625000017],[42.15781250000006,16.570703125000023],[41.80156250000002,16.778759765624955],[41.86044921875006,17.002539062499977],[41.98769531250005,16.715625]]],[[[46.53144531250004,29.09624023437499],[47.433203125,28.989550781250017],[47.671289062499994,28.53315429687504],[48.442480468750006,28.542919921874983],[48.80898437499999,27.895898437499966],[48.797167968750074,27.72431640625001],[49.2375,27.49272460937499],[49.17509765625002,27.43764648437505],[49.40527343749997,27.18095703124996],[50.149804687499994,26.66264648437499],[50.00810546875002,26.678515625000017],[50.21386718750003,26.30849609375005],[50.15546875000004,26.100537109374955],[50.03164062499999,26.11098632812505],[50.55791015625002,25.086669921875],[50.66689453125005,24.96381835937501],[50.72558593749997,24.869384765625057],[50.80439453125004,24.789257812499983],[50.928320312500006,24.595117187500023],[50.96601562500004,24.573925781249983],[51.022753906250074,24.56523437499999],[51.09335937500006,24.564648437499955],[51.178027343750074,24.586718750000017],[51.26796875,24.607226562500017],[51.33847656250006,24.564355468749994],[51.41123046875006,24.570800781250057],[51.30986328125002,24.340380859375017],[51.56835937500003,24.286181640625074],[51.592578125000074,24.07885742187503],[52.55507812500005,22.932812499999955],[55.104296875000074,22.621484375000023],[55.185839843750074,22.7041015625],[55.64101562499999,22.001855468749994],[54.97734375000002,19.995947265625006],[51.977636718750006,18.996142578125074],[49.04199218750003,18.58178710937503],[48.17216796875002,18.156933593749983],[47.57958984374997,17.448339843750034],[47.44179687499999,17.111865234375045],[47.14355468749997,16.946679687499966],[46.97568359375006,16.953466796875034],[46.72763671875006,17.26557617187501],[45.5353515625001,17.30205078124999],[45.14804687500006,17.427441406249955],[43.91699218749997,17.32470703124997],[43.41796875000003,17.516259765625023],[43.19091796875003,17.359375],[43.16503906249997,16.689404296874955],[42.79931640624997,16.37177734375001],[42.29394531249997,17.434960937499966],[41.75,17.88574218749997],[41.22949218750003,18.678417968749983],[40.75917968750005,19.755468750000034],[40.080664062500006,20.265917968750017],[39.728320312500074,20.390332031249955],[39.27607421875004,20.973974609375034],[39.093554687500074,21.31035156249999],[39.14707031250006,21.518994140624955],[38.98789062500006,21.88173828125005],[39.06201171874997,22.592187500000023],[38.46416015625002,23.71186523437504],[37.91972656250002,24.185400390625063],[37.54306640625006,24.291650390625023],[37.18085937500004,24.82001953125001],[37.26630859375004,24.960058593750034],[37.14882812499999,25.291113281249977],[35.18046875000002,28.03486328125004],[34.722070312499994,28.130664062500017],[34.625,28.064501953125017],[34.95078125,29.353515625],[36.068457031250006,29.200537109375006],[36.28281250000006,29.355371093750023],[36.47607421874997,29.49511718749997],[36.59179687500003,29.666113281250006],[36.703906250000074,29.831640624999977],[36.75527343750005,29.86601562499996],[37.46923828125003,29.995068359374955],[37.49072265625003,30.01171874999997],[37.55361328125005,30.14458007812496],[37.63359375000002,30.313281250000045],[37.64990234374997,30.330957031249994],[37.669726562500074,30.34814453125003],[37.862890625,30.44262695312503],[37.98007812500006,30.5],[37.47900390624997,31.007763671874955],[37.10527343750002,31.35517578125004],[36.95859375000006,31.491503906250017],[37.215625,31.55610351562501],[37.49335937500004,31.625878906250023],[38.111425781250006,31.78115234375005],[38.37548828124997,31.84746093749996],[38.962304687499994,31.99492187499999],[38.99707031249997,32.00747070312505],[39.145410156249994,32.12451171875],[39.36865234374997,32.09174804687498],[39.70410156250003,32.04252929687499],[40.02783203124997,31.995019531249994],[40.3693359375001,31.93896484375003],[40.47890625000005,31.89335937499999],[42.07441406250004,31.08037109374999],[43.77373046875002,29.84921875],[44.71650390625004,29.19360351562503],[46.35644531250003,29.06367187500001],[46.53144531250004,29.09624023437499]]]]},"properties":{"name":"Saudi Arabia","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[36.87138671875002,21.996728515624994],[36.92695312500001,21.58652343749999],[37.25859375000002,21.108544921874994],[37.25722656250002,21.03940429687499],[37.15058593750001,21.103759765625],[37.14111328125,20.98178710937499],[37.19316406250002,20.12070312499999],[37.471289062500006,18.820117187500003],[38.609472656250006,18.005078125],[38.422460937500006,17.823925781249997],[38.39716796875001,17.778369140625003],[38.38554687500002,17.751269531250003],[38.37373046875001,17.717333984375003],[38.34736328125001,17.68359375],[38.28984375000002,17.637011718750003],[38.26728515625001,17.61669921875],[38.253515625,17.584765625],[37.78242187500001,17.4580078125],[37.547460937500006,17.324121093749994],[37.51015625000002,17.288134765625003],[37.45292968750002,17.108691406250003],[37.41103515625002,17.06171875],[37.24882812500002,17.056884765625],[37.16953125,17.04140625],[37.0615234375,17.061279296875],[37.00898437500001,17.058886718750003],[36.995214843750006,17.020556640625003],[36.97578125000001,16.86655273437499],[36.97871093750001,16.800585937500003],[36.887792968750006,16.624658203124994],[36.91376953125001,16.296191406250003],[36.566015625,15.362109375],[36.4267578125,15.132080078125],[36.44814453125002,14.940087890624994],[36.470800781250006,14.736474609374994],[36.52431640625002,14.2568359375],[36.12519531250001,12.75703125],[35.67021484375002,12.623730468749997],[35.1123046875,11.816552734374994],[34.93144531250002,10.864794921874989],[34.77128906250002,10.746191406249991],[34.571875,10.880175781249989],[34.34394531250001,10.658642578124997],[34.31123046875001,10.190869140624997],[34.078125,9.461523437499991],[33.87148437500002,9.506152343749989],[33.96328125000002,9.861767578124997],[33.90703125000002,10.181445312499989],[33.13007812500001,10.745947265624991],[33.073339843750006,11.606103515624994],[33.199316406250006,12.21728515625],[32.721875,12.223095703124997],[32.73671875000002,12.009667968749994],[32.072265625,12.006738281249994],[32.338476562500006,11.710107421874994],[32.42080078125002,11.089111328125],[31.224902343750017,9.799267578124997],[30.75537109375,9.731201171875],[30.003027343750006,10.277392578124989],[29.60546875,10.065087890624994],[29.47314453125,9.768603515624989],[28.979589843750006,9.594189453124997],[28.844531250000017,9.326074218749994],[28.048925781250006,9.32861328125],[27.880859375,9.601611328124989],[27.07421875,9.613818359374989],[26.65869140625,9.484130859375],[25.91914062500001,10.169335937499994],[25.858203125000017,10.406494140625],[25.211718750000017,10.329931640624991],[25.066992187500006,10.293798828124991],[24.785253906250006,9.774658203125],[24.53193359375001,8.886914062499997],[24.147363281250023,8.665625],[23.53730468750001,8.815820312499994],[23.46826171875,9.11474609375],[23.62265625,9.340625],[23.646289062500017,9.822900390624994],[22.86005859375001,10.919677734375],[22.922656250000017,11.344873046874994],[22.591113281250017,11.579882812499989],[22.580957031250023,11.990136718749994],[22.472460937500017,12.067773437499994],[22.352343750000017,12.660449218749989],[21.928125,12.678125],[21.825292968750006,12.79052734375],[22.228125,13.32958984375],[22.1064453125,13.7998046875],[22.53857421875,14.161865234375],[22.38154296875001,14.550488281249997],[22.6708984375,14.722460937500003],[22.93232421875001,15.162109375],[22.933886718750017,15.533105468749994],[23.10517578125001,15.702539062499994],[23.970800781250006,15.721533203124991],[23.980273437500017,19.496630859375003],[23.980273437500017,19.99594726562499],[24.9794921875,20.002587890624994],[24.980273437500017,21.995849609375],[28.036425781250017,21.995361328125],[31.092675781250023,21.994873046875],[31.260644531250023,22.00229492187499],[31.400292968750023,22.202441406250003],[31.486132812500017,22.14780273437499],[31.434472656250023,21.995849609375],[36.87138671875002,21.996728515624994]]]},"properties":{"name":"Sudan","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[34.078125,9.461523437499991],[34.07275390625,8.545263671874991],[33.95332031250001,8.443505859374994],[33.28105468750002,8.437255859375],[32.99892578125002,7.899511718749991],[33.902441406250006,7.509521484375],[34.06425781250002,7.225732421874994],[34.71064453125001,6.660302734374994],[34.98359375000001,5.858300781249994],[35.26835937500002,5.492285156249991],[35.08447265625,5.311865234374991],[34.87832031250002,5.109570312499997],[34.63984375000001,4.87548828125],[34.38017578125002,4.620654296874989],[34.176855468750006,4.419091796874994],[33.97607421875,4.22021484375],[33.74160156250002,3.985253906249994],[33.568457031250006,3.81171875],[33.489355468750006,3.755078125],[32.99726562500001,3.880175781249989],[32.33574218750002,3.706201171874994],[32.13593750000001,3.519726562499997],[31.79804687500001,3.802636718749994],[31.547167968750017,3.677587890624991],[31.15234375,3.785595703124997],[30.83857421875001,3.49072265625],[30.757226562500023,3.62421875],[30.586718750000017,3.62421875],[30.50830078125,3.835693359375],[30.194921875,3.98193359375],[29.676855468750006,4.5869140625],[29.469628906250023,4.61181640625],[29.224902343750017,4.391894531249989],[28.72705078125,4.504980468749991],[28.427539062500017,4.324169921874997],[28.19208984375001,4.350244140624994],[27.7880859375,4.644677734374994],[27.4033203125,5.109179687499989],[27.143945312500023,5.722949218749989],[26.514257812500006,6.069238281249994],[26.30859375,6.455322265625],[26.36181640625,6.635302734374989],[25.27890625,7.427490234375],[25.18134765625001,7.557226562499991],[25.20039062500001,7.807910156249989],[24.853320312500017,8.137548828124991],[24.291406250000023,8.29140625],[24.147363281250023,8.665625],[24.53193359375001,8.886914062499997],[24.785253906250006,9.774658203125],[25.066992187500006,10.293798828124991],[25.211718750000017,10.329931640624991],[25.858203125000017,10.406494140625],[25.91914062500001,10.169335937499994],[26.65869140625,9.484130859375],[27.07421875,9.613818359374989],[27.880859375,9.601611328124989],[28.048925781250006,9.32861328125],[28.844531250000017,9.326074218749994],[28.979589843750006,9.594189453124997],[29.47314453125,9.768603515624989],[29.60546875,10.065087890624994],[30.003027343750006,10.277392578124989],[30.75537109375,9.731201171875],[31.224902343750017,9.799267578124997],[32.42080078125002,11.089111328125],[32.338476562500006,11.710107421874994],[32.072265625,12.006738281249994],[32.73671875000002,12.009667968749994],[32.721875,12.223095703124997],[33.199316406250006,12.21728515625],[33.073339843750006,11.606103515624994],[33.13007812500001,10.745947265624991],[33.90703125000002,10.181445312499989],[33.96328125000002,9.861767578124997],[33.87148437500002,9.506152343749989],[34.078125,9.461523437499991]]]},"properties":{"name":"S. Sudan","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-12.280615234374977,14.809033203124997],[-12.228417968749994,14.45859375],[-12.019189453124994,14.206494140624997],[-11.960888671874983,13.875292968750003],[-12.05419921875,13.633056640625],[-11.831689453124994,13.315820312499994],[-11.634960937499983,13.369873046875],[-11.390380859375,12.941992187499991],[-11.389404296875,12.404394531249991],[-12.399072265624994,12.340087890625],[-12.930712890624989,12.532275390624989],[-13.061279296875,12.489990234375],[-13.082910156249994,12.633544921875],[-13.729248046875,12.673925781249991],[-14.06484375,12.67529296875],[-14.349218749999977,12.676416015624994],[-15.196093749999989,12.679931640625],[-15.3779296875,12.588964843749991],[-15.574804687499977,12.490380859374994],[-15.839550781249983,12.43789062499999],[-16.144189453124994,12.45742187499999],[-16.24150390624999,12.443310546874997],[-16.41630859374999,12.36767578125],[-16.521337890624977,12.3486328125],[-16.656933593749983,12.364355468749991],[-16.711816406249994,12.354833984374991],[-16.76030273437499,12.52578125],[-16.44287109375,12.609472656249991],[-16.59765625,12.715283203124997],[-16.743896484375,12.58544921875],[-16.763330078124994,13.064160156249997],[-16.648779296874977,13.154150390624991],[-15.834277343749989,13.156445312499997],[-15.814404296874983,13.325146484374997],[-15.286230468749977,13.39599609375],[-15.151123046875,13.556494140624991],[-14.246777343749983,13.23583984375],[-13.826708984374989,13.4078125],[-13.977392578124977,13.54345703125],[-14.405468749999983,13.503710937500003],[-15.108349609374983,13.81210937499999],[-15.426855468749977,13.727001953124997],[-15.509667968749994,13.586230468750003],[-16.56230468749999,13.587304687499994],[-16.766943359374977,13.904931640624994],[-16.618115234374983,14.04052734375],[-16.791748046875,14.004150390625],[-17.168066406249977,14.640625],[-17.345800781249977,14.729296875],[-17.445019531249983,14.651611328125],[-17.53564453125,14.755126953125],[-17.147167968749983,14.922021484374994],[-16.843408203124994,15.293994140625003],[-16.570751953124983,15.734423828125003],[-16.535253906249977,15.83837890625],[-16.502050781249977,15.917333984374991],[-16.480078124999977,16.097216796875003],[-16.441015624999977,16.204541015624997],[-16.239013671875,16.531298828125003],[-15.768212890624994,16.485107421875],[-14.990625,16.676904296874994],[-14.300097656249989,16.580273437499997],[-13.868457031249989,16.148144531249997],[-13.756640624999989,16.172509765624994],[-13.40966796875,16.05917968749999],[-13.105273437499989,15.57177734375],[-12.735253906249994,15.13125],[-12.40869140625,14.889013671874991],[-12.280615234374977,14.809033203124997]]]},"properties":{"name":"Senegal","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[103.9697265625,1.331445312499994],[103.65019531249999,1.325537109374991],[103.81796875000003,1.447070312499989],[103.9697265625,1.331445312499994]]]},"properties":{"name":"Singapore","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-37.10332031249996,-54.065625],[-36.70380859375001,-54.10810546874999],[-36.64741210937498,-54.26230468749996],[-36.32646484374996,-54.251171875],[-35.79858398437497,-54.76347656250002],[-36.08549804687499,-54.86679687500001],[-36.885986328125,-54.33945312499996],[-37.63090820312496,-54.16748046875001],[-37.61884765625001,-54.04208984375004],[-38.017431640625034,-54.008007812500026],[-37.10332031249996,-54.065625]]]},"properties":{"name":"S. Geo. and S. Sandw. Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-5.692138671874972,-15.997753906249997],[-5.782519531250017,-16.00400390625002],[-5.707861328124977,-15.90615234374998],[-5.692138671874972,-15.997753906249997]]]},"properties":{"name":"Saint Helena","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[160.57626953125006,-11.797851562500028],[160.44306640625004,-11.814941406249957],[159.98632812499997,-11.494726562500006],[160.57626953125006,-11.797851562500028]]],[[[166.13320312500005,-10.757812499999972],[165.90400390625004,-10.851464843749966],[165.79101562500003,-10.784765624999963],[166.02382812500005,-10.6611328125],[166.13320312500005,-10.757812499999972]]],[[[161.71533203124997,-10.387304687499991],[162.10537109375005,-10.45380859375004],[162.37333984375002,-10.823242187499986],[161.78681640625004,-10.716894531249991],[161.53789062500007,-10.566406249999972],[161.4870117187501,-10.361425781249963],[161.29394531250003,-10.326464843750031],[161.30478515625012,-10.204394531250031],[161.71533203124997,-10.387304687499991]]],[[[161.54785156249997,-9.625683593749997],[161.55380859375012,-9.769726562500026],[161.40976562500006,-9.681640625000028],[161.36416015625,-9.353417968750037],[161.54785156249997,-9.625683593749997]]],[[[159.75039062500005,-9.272656250000011],[159.97060546875,-9.433300781249969],[160.35458984375006,-9.421582031249983],[160.81894531250006,-9.862792968749986],[160.64921875000002,-9.92861328124998],[159.80273437499997,-9.763476562500003],[159.61230468749997,-9.470703124999943],[159.62558593750012,-9.311230468749969],[159.75039062500005,-9.272656250000011]]],[[[160.1681640625001,-8.995507812500037],[160.40751953125007,-9.140332031249969],[160.10537109375,-9.080761718749997],[160.1681640625001,-8.995507812500037]]],[[[159.18857421875006,-9.123535156250014],[159.03632812500004,-9.075],[159.12978515625,-8.99306640624998],[159.22841796875005,-9.029980468749955],[159.18857421875006,-9.123535156250014]]],[[[158.10791015625003,-8.684179687500034],[157.93759765625006,-8.73642578125002],[157.90927734375006,-8.565625],[158.10546874999997,-8.536816406250026],[158.10791015625003,-8.684179687500034]]],[[[157.38896484375002,-8.713476562499963],[157.2123046875,-8.565039062500006],[157.37949218750012,-8.420898437499943],[157.38896484375002,-8.713476562499963]]],[[[160.7494140625,-8.313964843750014],[160.99765625000006,-8.612011718749983],[160.94433593750003,-8.799023437499983],[161.15869140624997,-8.961816406250009],[161.36738281250004,-9.61123046874998],[160.77207031250012,-8.963867187499986],[160.7140625000001,-8.539257812499997],[160.59042968750006,-8.372753906249997],[160.7494140625,-8.313964843750014]]],[[[157.76347656250002,-8.242187499999957],[157.89843749999997,-8.506347656249943],[157.81933593750003,-8.612011718749983],[157.58789062500003,-8.445410156249963],[157.5580078125,-8.269921875],[157.30244140625004,-8.33330078124996],[157.21757812500002,-8.262792968749977],[157.490625,-7.965722656250037],[157.76347656250002,-8.242187499999957]]],[[[157.171875,-8.108105468749997],[156.95830078125002,-8.014355468749997],[157.02412109375004,-7.867871093749997],[157.18613281250006,-7.941210937500017],[157.171875,-8.108105468749997]]],[[[156.687890625,-7.92304687500004],[156.5109375000001,-7.707812499999974],[156.5609375,-7.574023437499989],[156.80908203124997,-7.722851562500026],[156.687890625,-7.92304687500004]]],[[[159.8791015625001,-8.534277343749949],[158.9440429687501,-8.04072265625004],[158.457421875,-7.544726562499974],[158.734375,-7.604296875000031],[159.43144531250002,-8.029003906249955],[159.84306640625002,-8.326953124999989],[159.8791015625001,-8.534277343749949]]],[[[155.83984374999997,-7.097167968750014],[155.67753906250002,-7.08896484375002],[155.73896484375004,-6.972949218750017],[155.83984374999997,-7.097167968750014]]],[[[157.48671875000005,-7.330371093750003],[157.44130859375,-7.425683593749966],[157.10156249999997,-7.323632812499966],[156.4525390625,-6.638281249999963],[157.03027343750003,-6.891992187499952],[157.19335937499997,-7.160351562499997],[157.48671875000005,-7.330371093750003]]]]},"properties":{"name":"Solomon Is.","childNum":16}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-12.526074218749926,7.436328125000017],[-12.951611328124926,7.570849609374989],[-12.615234374999972,7.63720703125],[-12.5125,7.582421875000037],[-12.526074218749926,7.436328125000017]]],[[[-10.758593749999989,9.385351562499991],[-10.682714843750006,9.289355468749974],[-10.687646484374937,9.261132812499994],[-10.749951171874926,9.12236328124996],[-10.747021484374955,9.095263671875045],[-10.726855468749932,9.081689453125023],[-10.615966796875,9.059179687499977],[-10.500537109375017,8.687548828125017],[-10.677343749999977,8.400585937499997],[-10.712109374999955,8.335253906250017],[-10.686962890624983,8.321679687500009],[-10.652636718749989,8.330273437499983],[-10.604003906249943,8.319482421874994],[-10.55771484374992,8.315673828125028],[-10.496435546874977,8.362109374999974],[-10.394433593749966,8.480957031250028],[-10.360058593749983,8.49550781249998],[-10.283203124999972,8.48515625],[-10.285742187499949,8.454101562499986],[-10.314648437499983,8.310839843750017],[-10.359814453124926,8.187939453125026],[-10.570849609374932,8.071142578125034],[-10.6474609375,7.759375],[-10.878076171874994,7.538232421874994],[-11.267675781249977,7.232617187499997],[-11.507519531249983,6.906542968750003],[-12.48564453124996,7.386279296875045],[-12.480273437499932,7.75327148437502],[-12.697607421874977,7.715869140625045],[-12.850878906249932,7.818701171875034],[-12.956933593749966,8.145312500000045],[-13.148974609374989,8.214599609375043],[-13.272753906249989,8.429736328124989],[-13.085009765624932,8.42475585937504],[-12.894091796874932,8.62978515624998],[-13.181835937499955,8.576904296875043],[-13.206933593749994,8.843115234375006],[-13.059472656249966,8.881152343750031],[-13.292675781249955,9.04921875],[-13.077294921874966,9.069628906249974],[-12.958789062499989,9.263330078124994],[-12.755859374999943,9.373583984374989],[-12.557861328125,9.704980468749994],[-12.427978515625028,9.898144531250011],[-12.142333984375,9.87539062499999],[-11.911083984374955,9.993017578124977],[-11.273632812499955,9.996533203124983],[-11.205664062499949,9.977734374999969],[-11.180859374999955,9.925341796875045],[-11.047460937499977,9.786328125000054],[-10.758593749999989,9.385351562499991]]]]},"properties":{"name":"Sierra Leone","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-89.36259765624999,14.416015625],[-89.1205078125,14.370214843749991],[-88.51254882812499,13.978955078124997],[-88.504345703125,13.964208984374991],[-88.49765625,13.904541015625],[-88.482666015625,13.854248046875],[-88.44912109375,13.850976562499994],[-88.40849609374999,13.87539062499999],[-88.27622070312499,13.942675781250003],[-88.151025390625,13.987353515625003],[-87.99101562499999,13.879638671875],[-87.8919921875,13.894970703124997],[-87.80224609375,13.889990234374991],[-87.7314453125,13.841064453125],[-87.71533203125,13.812695312499997],[-87.781884765625,13.521386718749994],[-87.930859375,13.1806640625],[-88.68564453124999,13.281494140625],[-88.51201171874999,13.183935546874991],[-89.80419921875,13.560107421875003],[-90.09521484375,13.736523437499997],[-90.04814453124999,13.904052734375],[-89.54716796874999,14.241259765625003],[-89.5736328125,14.390087890624997],[-89.36259765624999,14.416015625]]]},"properties":{"name":"El Salvador","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-56.26708984374997,46.838476562500034],[-56.38476562499994,46.81943359375006],[-56.36464843749994,47.09897460937498],[-56.26708984374997,46.838476562500034]]]},"properties":{"name":"St. Pierre and Miquelon","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[6.659960937499989,0.120654296874989],[6.51972656250004,0.066308593750023],[6.468164062499994,0.22734375],[6.68691406250008,0.404394531249977],[6.75,0.24345703124996],[6.659960937499989,0.120654296874989]]],[[[7.423828125,1.567724609375006],[7.330664062500034,1.603369140624991],[7.414453125000051,1.699121093750037],[7.423828125,1.567724609375006]]]]},"properties":{"name":"São Tomé and Principe","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-54.03422851562499,3.62939453125],[-54.00957031249999,3.448535156249989],[-54.06318359375,3.353320312499989],[-54.18803710937499,3.178759765624989],[-54.203125,3.13818359375],[-54.17070312499999,2.993603515624997],[-54.18808593749999,2.874853515624991],[-54.1955078125,2.81787109375],[-54.256738281249994,2.713720703124991],[-54.402001953124994,2.461523437499991],[-54.53593749999999,2.343310546874989],[-54.56840820312499,2.342578124999989],[-54.604736328125,2.335791015624991],[-54.61625976562499,2.326757812499991],[-54.661865234375,2.327539062499994],[-54.697412109374994,2.359814453124997],[-54.72221679687499,2.441650390625],[-54.87607421874999,2.450390625],[-54.92656249999999,2.497363281249989],[-54.968408203124994,2.54833984375],[-54.978662109374994,2.59765625],[-55.005810546875,2.59296875],[-55.0703125,2.54833984375],[-55.11411132812499,2.539208984374994],[-55.1876953125,2.547509765624994],[-55.286035156249994,2.499658203124994],[-55.343994140625,2.48876953125],[-55.38535156249999,2.440625],[-55.73056640624999,2.406152343749994],[-55.957470703125,2.520458984374997],[-55.99350585937499,2.497509765624997],[-56.02036132812499,2.392773437499997],[-56.0451171875,2.364404296874994],[-56.087792968749994,2.34130859375],[-56.12939453125,2.299511718749997],[-56.1376953125,2.259033203125],[-56.073632812499994,2.236767578124997],[-56.02006835937499,2.158154296874997],[-55.96196289062499,2.095117187499994],[-55.91533203124999,2.03955078125],[-55.921630859375,1.976660156249991],[-55.929638671875,1.8875],[-56.01992187499999,1.842236328124997],[-56.4828125,1.942138671875],[-56.704345703125,2.036474609374991],[-57.19736328124999,2.853271484375],[-57.303662109375,3.377099609374994],[-57.646728515625,3.39453125],[-58.05429687499999,4.101660156249991],[-57.84599609374999,4.668164062499997],[-57.91704101562499,4.820410156249991],[-57.711083984374994,4.991064453124991],[-57.331005859375,5.020166015624994],[-57.20981445312499,5.195410156249991],[-57.3185546875,5.335351562499994],[-57.194775390625,5.5484375],[-56.96982421874999,5.992871093749997],[-56.235595703125,5.885351562499991],[-55.897607421874994,5.699316406249991],[-55.909912109375,5.892626953124989],[-55.648339843749994,5.985888671874989],[-54.83369140625,5.988330078124989],[-54.05419921875,5.807910156249989],[-54.08046875,5.502246093749989],[-54.4796875,4.836523437499991],[-54.350732421874994,4.054101562499994],[-54.03422851562499,3.62939453125]]]},"properties":{"name":"Suriname","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[22.538671875,49.072705078125],[22.52412109375001,49.031396484374994],[22.389453125000017,48.873486328125],[22.295214843750017,48.685839843749996],[22.142871093750017,48.568505859374994],[22.1318359375,48.405322265624996],[21.766992187500023,48.3380859375],[21.45136718750001,48.55224609375],[20.490039062500017,48.526904296874996],[20.333789062500017,48.295556640624994],[19.95039062500001,48.146630859374994],[19.625390625000023,48.223095703125],[18.791894531250023,48.000292968749996],[18.72421875,47.787158203124996],[17.76191406250001,47.770166015624994],[17.147363281250023,48.00595703125],[16.86542968750001,48.3869140625],[16.953125,48.598828125],[17.135644531250023,48.841064453125],[17.75849609375001,48.888134765625],[18.0859375,49.06513671875],[18.160937500000017,49.257373046874996],[18.83222656250001,49.510791015624996],[19.1494140625,49.4],[19.44160156250001,49.597705078124996],[19.77392578125,49.37216796875],[19.756640625000017,49.204394531249996],[20.0576171875,49.181298828124994],[20.36298828125001,49.38525390625],[20.868457031250017,49.314697265625],[21.079394531250017,49.418261718749996],[21.6396484375,49.411962890625],[22.020117187500006,49.209521484374996],[22.473046875000023,49.081298828125],[22.538671875,49.072705078125]]]},"properties":{"name":"Slovakia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[16.516210937500006,46.499902343749994],[16.427636718750023,46.5244140625],[16.321191406250023,46.534619140625],[16.1064453125,46.382226562499994],[15.608984375,46.171923828124996],[15.592578125000017,46.139990234375],[15.596875,46.109228515625],[15.675585937500017,45.983691406249996],[15.652148437500017,45.862158203125],[15.277050781250011,45.7326171875],[15.353710937500011,45.659912109375],[15.283593750000023,45.5796875],[15.291210937500011,45.541552734374996],[15.32666015625,45.502294921875],[15.339453125,45.467041015625],[15.242089843750023,45.44140625],[15.110449218750006,45.45078125],[14.95458984375,45.499902343749994],[14.793066406250006,45.47822265625],[14.649511718750006,45.571484375],[14.591796875,45.651269531249994],[14.56884765625,45.6572265625],[14.548448660714302,45.628388671875],[14.507586495535731,45.59039341517857],[14.42734375,45.505761718749994],[14.369921875000017,45.4814453125],[13.878710937500017,45.428369140624994],[13.577929687500017,45.516894531249996],[13.8447265625,45.59287109375],[13.831152343750006,45.680419921875],[13.663476562500023,45.7919921875],[13.6005859375,45.979785156249996],[13.509179687500023,45.973779296874994],[13.487695312500023,45.987109375],[13.480273437500017,46.009228515625],[13.486425781250006,46.03955078125],[13.548046875000011,46.089111328125],[13.616601562500023,46.133105468749996],[13.634960937500011,46.157763671874996],[13.632519531250011,46.177050781249996],[13.420996093750006,46.212304687499994],[13.399511718750006,46.317529296874994],[13.563281250000017,46.415087890624996],[13.637109375000023,46.448535156249996],[13.6796875,46.462890625],[13.7,46.520263671875],[14.5498046875,46.399707031249996],[14.893261718750011,46.605908203125],[15.957617187500006,46.677636718749994],[16.093066406250017,46.86328125],[16.283593750000023,46.857275390625],[16.516210937500006,46.499902343749994]]]},"properties":{"name":"Slovenia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[16.52851562500001,56.29052734375],[16.431640625,56.24375],[16.41230468750004,56.568994140624994],[17.02539062499997,57.345068359375006],[16.52851562500001,56.29052734375]]],[[[19.076464843750045,57.8359375],[18.813867187500023,57.70620117187502],[18.907910156250068,57.39833984375002],[18.146386718749994,56.920507812500006],[18.285351562500068,57.08320312500001],[18.136523437500045,57.55664062500003],[18.53740234374999,57.83056640625006],[18.90058593750001,57.91547851562504],[19.076464843750045,57.8359375]]],[[[19.156347656250063,57.92260742187497],[19.086523437500034,57.86499023437506],[19.134863281250034,57.98134765625002],[19.331445312500023,57.962890625],[19.156347656250063,57.92260742187497]]],[[[24.15546875000004,65.80527343750006],[23.102343750000074,65.73535156250003],[22.400976562500006,65.86210937499999],[22.254003906250006,65.59755859375002],[21.565527343750063,65.40810546874997],[21.609179687500074,65.261376953125],[21.410351562500068,65.31743164062505],[21.57392578125001,65.12578124999999],[21.138183593750057,64.80869140625006],[21.519628906250034,64.46308593749998],[20.76269531250003,63.86782226562505],[18.60644531250003,63.17827148437499],[18.31289062500008,62.996386718750045],[18.46308593750004,62.895849609375006],[18.170019531250034,62.789355468750074],[17.906640625000023,62.88676757812502],[18.037304687500068,62.60053710937498],[17.834472656250057,62.50273437500002],[17.410253906250063,62.508398437500034],[17.633691406249994,62.23300781250006],[17.374511718750057,61.866308593750034],[17.465429687500006,61.68447265625005],[17.196386718750006,61.72456054687504],[17.13076171875005,61.57573242187499],[17.25097656250003,60.70078125],[17.6611328125,60.53515625000003],[17.955761718750068,60.589794921874955],[18.85273437500001,60.02587890625],[18.970507812500045,59.757226562499994],[17.964257812500023,59.359375],[18.56025390625004,59.39448242187498],[18.285351562500068,59.109375],[16.978125,58.65415039062506],[16.214257812500023,58.636669921874955],[16.92382812499997,58.49257812499999],[16.651953125,58.43432617187503],[16.65224609375008,57.50068359374998],[16.348730468750063,56.70927734374996],[15.826660156250028,56.12495117187501],[14.782031250000017,56.16191406250002],[14.754785156250051,56.03315429687498],[14.401953125000034,55.97675781250004],[14.21503906250004,55.83261718749998],[14.341699218749994,55.52773437500002],[14.17373046875008,55.396630859374966],[12.885839843750063,55.41137695312506],[12.973925781250074,55.748144531250006],[12.471191406250057,56.29052734375],[12.801660156250051,56.263916015625],[12.65644531250004,56.44057617187502],[12.857421875000028,56.45239257812503],[12.883691406250051,56.61772460937496],[12.421484375000034,56.906396484374966],[11.449316406250063,58.118359374999955],[11.43154296875008,58.339990234374994],[11.24824218750004,58.369140625],[11.14716796875004,58.98862304687498],[11.19580078125,59.07827148437505],[11.388281250000063,59.036523437499966],[11.470703125000057,58.909521484375034],[11.64277343750004,58.92607421875002],[11.798144531250074,59.28989257812498],[11.680761718750034,59.59228515625003],[12.486132812500074,60.10678710937506],[12.588671874999989,60.450732421875045],[12.29414062500004,61.00268554687506],[12.706054687500028,61.059863281250074],[12.88076171875008,61.35229492187506],[12.155371093750006,61.720751953125045],[12.303515625000074,62.28559570312501],[11.999902343750051,63.29169921875001],[12.175195312500051,63.595947265625],[12.792773437500017,64],[13.203515625000023,64.07509765625],[13.960546875000063,64.01401367187498],[14.141210937500006,64.17353515624998],[14.077636718750028,64.464013671875],[13.650292968750023,64.58154296874997],[14.47968750000004,65.30146484374998],[14.543261718750045,66.12934570312498],[15.483789062500051,66.30595703124999],[15.422949218750006,66.48984374999998],[16.40351562500004,67.05498046875002],[16.12744140625,67.42583007812507],[16.783593750000023,67.89501953125],[17.324609375000023,68.10380859374999],[17.91669921875001,67.96489257812502],[18.303027343750045,68.55541992187497],[19.969824218750063,68.35639648437501],[20.348046875000023,68.84873046875003],[20.116699218750057,69.02089843750005],[20.622167968750006,69.036865234375],[21.99746093750005,68.52060546874998],[22.854101562500034,68.36733398437502],[23.63886718750004,67.95439453125002],[23.454882812500045,67.46025390625007],[23.733593750000068,67.42290039062499],[23.64150390625005,67.12939453124997],[23.988574218750045,66.81054687500003],[23.700292968750034,66.25263671874998],[24.15546875000004,65.80527343750006]]]]},"properties":{"name":"Sweden","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[31.9482421875,-25.957617187500006],[32.060546875,-26.018359375],[32.04140625000002,-26.28125],[32.10595703125,-26.52001953125],[32.112890625,-26.839453125],[32.02480468750002,-26.811132812500006],[31.994726562500006,-26.817480468750006],[31.967187500000023,-26.96064453125001],[31.946093750000017,-27.173632812500003],[31.958398437500023,-27.30585937500001],[31.742578125000023,-27.30996093750001],[31.469531250000017,-27.295507812500006],[31.274023437500006,-27.238378906250006],[31.063378906250023,-27.1123046875],[30.938085937500006,-26.915820312500003],[30.88330078125,-26.79238281250001],[30.806738281250006,-26.785253906250006],[30.794335937500023,-26.764257812500006],[30.803320312500006,-26.41347656250001],[31.08808593750001,-25.98066406250001],[31.207324218750017,-25.843359375],[31.33515625000001,-25.75556640625001],[31.382617187500017,-25.74296875],[31.415136718750006,-25.74658203125],[31.921679687500017,-25.96875],[31.9482421875,-25.957617187500006]]]},"properties":{"name":"Swaziland","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[55.54033203125002,-4.693066406250011],[55.54296875,-4.785546875],[55.383398437500006,-4.609277343750009],[55.45576171875001,-4.558789062500011],[55.54033203125002,-4.693066406250011]]]},"properties":{"name":"Seychelles","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[42.358984375,37.10859375],[41.78857421875,36.59716796875],[41.41679687500002,36.5146484375],[41.295996093750006,36.383349609374996],[41.354101562500006,35.640429687499996],[41.19472656250002,34.768994140625],[40.98701171875001,34.429052734375],[38.773535156250006,33.372216796874994],[36.818359375,32.317285156249994],[36.3720703125,32.3869140625],[35.78730468750001,32.734912109374996],[35.91347656250002,32.94960937499999],[35.869140625,33.43173828125],[36.03447265625002,33.58505859375],[35.98613281250002,33.75263671875],[36.36503906250002,33.83935546875],[36.27783203125,33.92529296875],[36.5849609375,34.221240234374996],[36.50439453125,34.432373046875],[36.32988281250002,34.499609375],[36.383886718750006,34.65791015625],[35.97626953125001,34.629199218749996],[35.902441406250006,35.420703125],[35.76445312500002,35.571582031249996],[35.83964843750002,35.84921875],[35.892675781250006,35.916552734374996],[35.96757812500002,35.910058593749994],[36.12734375000002,35.831445312499994],[36.15361328125002,35.833886718749994],[36.34755859375002,36.003515625],[36.37539062500002,36.171240234375],[36.63671875,36.233984375],[36.64140625000002,36.263525390625],[36.5375,36.45742187499999],[36.54667968750002,36.50634765625],[36.596875,36.7013671875],[36.62841796875,36.777685546875],[36.65859375000002,36.802539062499996],[36.77656250000001,36.79267578125],[36.94179687500002,36.7583984375],[36.9853515625,36.702392578125],[37.06621093750002,36.652636718749996],[37.43632812500002,36.643310546875],[37.523535156250006,36.6783203125],[37.7203125,36.743701171874996],[37.90664062500002,36.79462890625],[38.19169921875002,36.9015625],[38.7666015625,36.693115234375],[38.90644531250001,36.694677734375],[39.1083984375,36.680566406249994],[39.35664062500001,36.681591796875],[39.50146484375,36.70224609375],[39.6865234375,36.738623046875],[40.01640625000002,36.826074218749994],[40.705664062500006,37.097705078124996],[41.886816406250006,37.156396484374994],[42.05986328125002,37.2060546875],[42.16787109375002,37.288623046874996],[42.202734375,37.29726562499999],[42.24755859375,37.2822265625],[42.2685546875,37.2765625],[42.31289062500002,37.22958984375],[42.358984375,37.10859375]]]},"properties":{"name":"Syria","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-72.3328125,21.85136718749999],[-72.14433593750002,21.79272460937503],[-72.33544921874994,21.758007812499983],[-72.3328125,21.85136718749999]]]},"properties":{"name":"Turks and Caicos Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[23.980273437500017,19.496630859375003],[23.970800781250006,15.721533203124991],[23.10517578125001,15.702539062499994],[22.933886718750017,15.533105468749994],[22.93232421875001,15.162109375],[22.6708984375,14.722460937500003],[22.38154296875001,14.550488281249997],[22.53857421875,14.161865234375],[22.1064453125,13.7998046875],[22.228125,13.32958984375],[21.825292968750006,12.79052734375],[21.928125,12.678125],[22.352343750000017,12.660449218749989],[22.472460937500017,12.067773437499994],[22.580957031250023,11.990136718749994],[22.591113281250017,11.579882812499989],[22.922656250000017,11.344873046874994],[22.86005859375001,10.919677734375],[22.49384765625001,10.996240234374994],[21.771484375,10.642822265625],[21.682714843750006,10.289843749999989],[20.773242187500017,9.405664062499994],[20.342089843750017,9.127099609374994],[18.95625,8.938867187499994],[18.886035156250017,8.836035156249991],[19.108691406250017,8.656152343749994],[18.56416015625001,8.0458984375],[17.6494140625,7.98359375],[16.784765625,7.550976562499997],[16.545312500000023,7.865478515625],[16.37890625,7.683544921874997],[15.957617187500006,7.507568359375],[15.480078125,7.523779296874991],[15.5498046875,7.787890624999989],[15.1162109375,8.557324218749997],[14.332324218750017,9.20351562499999],[13.977246093750011,9.691552734374994],[14.243261718750006,9.979736328125],[15.654882812500006,10.0078125],[15.276074218750011,10.357373046874997],[15.132226562500023,10.648486328124989],[15.029882812500006,11.11367187499999],[15.08125,11.845507812499989],[14.847070312500023,12.502099609374994],[14.461718750000017,13.021777343749989],[14.244824218750011,13.07734375],[14.06396484375,13.07851562499999],[13.932324218750011,13.258496093749997],[13.606347656250023,13.70458984375],[13.505761718750023,14.134423828124994],[13.4482421875,14.380664062500003],[14.367968750000017,15.750146484374994],[15.474316406250011,16.908398437499997],[15.735058593750011,19.904052734375],[15.963183593750017,20.34619140625],[15.587109375000011,20.733300781249994],[15.607324218750023,20.954394531250003],[15.181835937500011,21.523388671874997],[14.97900390625,22.99619140624999],[15.984082031250011,23.445214843749994],[20.14765625000001,21.38925781249999],[23.980273437500017,19.496630859375003]]]},"properties":{"name":"Chad","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[0.900488281250006,10.993261718749991],[0.763378906250011,10.386669921874997],[1.330078125,9.996972656249994],[1.3857421875,9.361669921874991],[1.600195312500006,9.050048828125],[1.624707031250011,6.997314453125],[1.530957031250011,6.992431640625],[1.777929687500006,6.294628906249997],[1.62265625,6.216796875],[1.187207031250011,6.089404296874989],[0.736914062500006,6.452587890624997],[0.525585937500011,6.850927734374991],[0.634765625,7.353662109374994],[0.5,7.546875],[0.686328125000017,8.354882812499994],[0.37255859375,8.75927734375],[0.48876953125,8.851464843749994],[0.525683593750017,9.398486328124989],[0.2333984375,9.463525390624994],[0.342578125000017,9.604150390624994],[0.264550781250023,9.644726562499997],[0.380859375,10.291845703124991],[-0.08632812499999,10.673046875],[0.009423828125023,11.02099609375],[-0.068603515625,11.115625],[0.49267578125,10.954980468749994],[0.900488281250006,10.993261718749991]]]},"properties":{"name":"Togo","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[98.40908203125005,7.90205078125004],[98.2962890625,7.776074218750054],[98.32207031250007,8.166308593749974],[98.4349609375,8.085644531249969],[98.40908203125005,7.90205078125004]]],[[[100.070703125,9.58603515625002],[99.96240234375003,9.421630859375],[99.93955078125006,9.559960937500037],[100.070703125,9.58603515625002]]],[[[102.42675781250003,11.988720703125026],[102.30195312500004,11.98081054687502],[102.27744140625006,12.151855468750043],[102.42675781250003,11.988720703125026]]],[[[100.12246093750005,20.316650390625057],[100.11494140625004,20.257666015625034],[100.13974609375012,20.245410156250017],[100.31796875000006,20.38588867187505],[100.51953125000003,20.17792968750004],[100.39765625000004,19.756103515625],[100.51357421875005,19.553466796875],[101.21191406249997,19.54833984375003],[101.22080078125006,19.486621093750074],[101.19755859375007,19.327929687500074],[101.2863281250001,18.977148437500006],[101.04697265625012,18.441992187500063],[101.05058593750002,18.407031250000045],[101.1375,18.28686523437497],[101.14394531250005,18.14262695312499],[100.90849609375002,17.583886718750023],[100.95585937500002,17.541113281250006],[101.10517578125004,17.47954101562499],[101.16748046874997,17.49902343749997],[101.41367187500012,17.71875],[101.55507812500005,17.812353515625034],[101.56367187500004,17.82050781250001],[101.6875,17.889404296875],[101.77480468750005,18.03339843750004],[101.81865234375002,18.06464843750001],[101.87548828124997,18.046435546875017],[101.94746093750004,18.081494140624983],[102.03457031250005,18.169824218750023],[102.10146484375,18.210644531249983],[102.14824218750002,18.20385742187503],[102.35185546875002,18.045947265625017],[102.45878906250002,17.984619140625057],[102.55253906250007,17.96508789062497],[102.61679687500006,17.833349609375034],[102.66064453124997,17.817968750000034],[102.680078125,17.824121093750023],[103.05136718750006,18.02851562500001],[103.0912109375,18.13823242187499],[103.14853515625006,18.221728515625045],[103.19970703124997,18.259472656249983],[103.26318359374997,18.27846679687505],[103.27958984375002,18.304980468750017],[103.24892578125,18.338964843750034],[103.25175781250002,18.373486328124955],[103.2882812500001,18.408398437499955],[103.36699218750007,18.42333984374997],[103.48798828125004,18.418164062499983],[103.62968750000002,18.38256835937503],[103.79228515625002,18.316503906249977],[103.89882812500005,18.295312500000023],[103.949609375,18.31899414062505],[104.04873046875005,18.216699218749994],[104.19619140625005,17.988378906250006],[104.32265625,17.815820312500023],[104.428125,17.69897460937503],[104.7396484375,17.461669921875],[104.81601562500012,17.30029296874997],[104.75898437500004,17.0771484375],[104.7435546875,16.884375],[104.75058593750012,16.647558593750063],[104.81933593750003,16.46606445312503],[105.04716796875007,16.160253906249977],[105.14873046875007,16.09355468749999],[105.33066406250006,16.037890625000017],[105.40625,15.987451171875051],[105.39892578124997,15.829882812500017],[105.62207031250003,15.699951171875],[105.641015625,15.656542968750045],[105.6388671875001,15.585937500000057],[105.615625,15.488281250000057],[105.49042968750004,15.256591796875],[105.49042968750004,15.127587890625009],[105.5333984375001,15.041601562499991],[105.54667968750002,14.932470703124963],[105.52304687500012,14.843310546875003],[105.49736328125002,14.590673828124963],[105.47558593750003,14.530126953124977],[105.42265625000007,14.471630859375054],[105.34218750000005,14.416699218750054],[105.24365234375003,14.367871093750054],[105.1833007812501,14.346240234374989],[105.16914062500004,14.336083984374966],[105.12597656250003,14.280957031250011],[105.07412109375005,14.227441406250037],[104.77900390625004,14.427832031250006],[103.19941406250004,14.332617187499977],[102.90927734375006,14.136718750000028],[102.546875,13.585693359375043],[102.33632812500005,13.560302734375014],[102.49960937500012,12.669970703125003],[102.75566406250002,12.42626953125],[102.73662109375007,12.089794921875011],[102.93388671875002,11.706689453125037],[102.594140625,12.203027343749994],[102.54023437500004,12.109228515624977],[101.83574218750002,12.640380859375014],[100.89775390625007,12.653808593749986],[100.96269531250007,13.431982421874991],[100.60292968750005,13.568164062500017],[100.23564453125002,13.48447265625002],[99.99052734375007,13.243457031250031],[100.08994140625006,13.045654296874972],[99.96396484375006,12.690039062500006],[99.98906250000007,12.170800781249994],[99.16503906250003,10.319824218750028],[99.25390625000003,9.265234375000034],[99.83554687500012,9.288378906250031],[99.98955078125007,8.589208984374977],[100.129296875,8.428076171875006],[100.16347656250005,8.508398437500034],[100.27939453125006,8.268505859375011],[100.54521484375002,7.226904296874991],[100.43935546875005,7.280761718750043],[100.38037109375003,7.541503906250043],[100.28378906250006,7.551513671875043],[100.25664062500002,7.774902343749986],[100.16074218750012,7.599267578124994],[100.4235351562501,7.18784179687502],[101.01787109375002,6.860937500000034],[101.49794921875005,6.865283203125031],[102.10107421874997,6.242236328125031],[101.87363281250012,5.825292968749991],[101.67841796875004,5.778808593750028],[101.5560546875,5.907763671875003],[101.1139648437501,5.636767578125045],[100.98164062500004,5.771044921875045],[101.05351562500002,6.242578125],[100.87392578125,6.24541015624996],[100.75449218750012,6.460058593749991],[100.3454101562501,6.549902343750006],[100.26142578125004,6.682714843749963],[100.11914062499997,6.441992187500048],[99.69599609375004,6.87666015625004],[99.72031250000012,7.106201171875],[99.55302734375002,7.218798828125031],[99.59697265625002,7.355615234375009],[99.35859375000004,7.372216796875023],[99.26367187499997,7.619042968750037],[99.07763671874997,7.718066406250045],[99.05107421875002,7.887841796874994],[98.78867187500012,8.059814453125028],[98.703515625,8.256738281250009],[98.57919921875006,8.344287109374989],[98.42099609375006,8.17822265625],[98.30546875000007,8.226220703125009],[98.24179687500006,8.767871093750045],[98.70253906250005,10.19038085937504],[98.7572265625,10.660937499999974],[99.1901367187501,11.105273437499989],[99.61474609374997,11.781201171875026],[99.40507812500002,12.547900390625003],[99.12392578125,13.030761718750043],[99.13681640625006,13.716699218749994],[98.57001953125004,14.359912109375031],[98.20214843749997,14.97592773437502],[98.19101562500012,15.204101562499972],[98.55693359375007,15.367675781249986],[98.59238281250006,16.05068359375005],[98.81796875000012,16.180810546874994],[98.88828125000006,16.351904296875034],[98.83544921875003,16.417578125],[98.66074218750006,16.330419921875006],[98.4388671875,16.975683593750034],[97.7064453125,17.79711914062503],[97.63222656250005,18.290332031250074],[97.37392578125,18.51796875],[97.74589843750002,18.58818359374999],[97.816796875,19.459960937500057],[98.01503906250005,19.74951171874997],[98.37128906250004,19.68916015625004],[98.9166992187501,19.77290039062504],[99.07421875000003,20.09936523437503],[99.48593750000006,20.14985351562501],[99.45888671875005,20.363037109375],[99.72011718750005,20.32543945312497],[99.8903320312501,20.424414062499977],[99.9542968750001,20.415429687500023],[100.0036132812501,20.37958984375001],[100.12246093750005,20.316650390625057]]]]},"properties":{"name":"Thailand","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[70.66416015625,39.85546875],[70.55957031250003,39.790917968749994],[70.48925781250003,39.86303710937503],[70.48281250000005,39.88271484375005],[70.49775390625004,39.88242187499998],[70.56708984375004,39.86660156250005],[70.66416015625,39.85546875]]],[[[70.95800781250003,40.238867187500034],[70.59921875,39.974511718749994],[69.96679687499997,40.202246093750034],[69.46875,40.020751953125],[69.47099609375002,39.990625],[69.43193359375007,39.909765625000034],[69.36542968750004,39.94707031250002],[69.30722656250006,39.968554687500045],[69.27880859374997,39.91777343749999],[69.24472656250006,39.82709960937498],[69.29765625000007,39.52480468750005],[70.50117187500004,39.58735351562501],[70.79931640625003,39.39472656250001],[71.4703125,39.60366210937502],[71.50302734375006,39.58217773437502],[71.51738281250002,39.55385742187502],[71.50585937499997,39.51708984374997],[71.5033203125,39.47880859374999],[71.73222656250002,39.422998046874994],[71.77861328125007,39.27797851562502],[72.04277343750002,39.352148437500034],[72.08417968750004,39.310644531250034],[72.14736328125005,39.26074218749997],[72.22998046874997,39.20751953124997],[72.63994140625002,39.385986328125],[73.10927734375,39.36191406249998],[73.2349609375,39.37456054687499],[73.3361328125001,39.41235351562506],[73.38740234375004,39.442724609375034],[73.4704101562501,39.46059570312502],[73.63164062500007,39.44887695312502],[73.63632812500006,39.396679687499955],[73.60732421875,39.229199218749955],[73.8052734375,38.968652343749994],[73.69609375000007,38.85429687499996],[73.80166015625,38.60688476562501],[74.02558593750004,38.53984375000002],[74.27744140625,38.659765625000034],[74.81230468750002,38.46030273437498],[74.8942382812501,37.60141601562498],[75.11875,37.38569335937498],[74.89130859375004,37.231640624999955],[74.875390625,37.24199218750002],[74.83046875,37.28593750000002],[74.73056640625006,37.35703125],[74.659375,37.39448242187501],[74.34902343750005,37.41875],[74.25966796875005,37.41542968750002],[74.20351562500005,37.37246093750005],[74.16708984375,37.32944335937498],[73.74960937500006,37.23178710937498],[73.6535156250001,37.239355468750034],[73.62753906250006,37.261572265625006],[73.71728515625003,37.32944335937498],[73.7337890625,37.37578125000002],[73.72060546875,37.41875],[73.65712890625005,37.43046875],[73.6046875000001,37.44604492187503],[73.48134765625,37.4716796875],[73.38291015625006,37.462255859375034],[73.21113281250004,37.40849609375002],[72.89550781250003,37.26752929687498],[72.65742187500004,37.029052734375],[71.665625,36.696923828124994],[71.530859375,36.845117187499994],[71.43291015625007,37.12753906249998],[71.5822265625001,37.91010742187498],[71.55195312500004,37.93315429687496],[71.48779296874997,37.93188476562497],[71.38964843750003,37.90629882812502],[71.31992187500006,37.90185546875],[71.27851562500004,37.91840820312498],[71.33271484375004,38.170263671875034],[71.25585937499997,38.306982421875006],[70.7359375,38.42255859375001],[70.41777343750002,38.075439453125],[70.21464843750002,37.92441406250006],[70.19941406250004,37.88603515624996],[70.25498046875006,37.76538085937497],[70.25146484374997,37.66416015625006],[70.18867187500004,37.58247070312501],[70.11982421875004,37.54350585937499],[69.9849609375,37.566162109375],[69.8208984375,37.60957031250004],[69.62578125000002,37.59404296874999],[69.49208984375,37.55307617187498],[69.42011718750004,37.486718749999966],[69.39921875000007,37.39931640625002],[69.42968749999997,37.290869140625034],[69.414453125,37.20776367187497],[69.35380859375007,37.15004882812502],[69.3039062500001,37.11694335937503],[69.26484375000004,37.1083984375],[69.18017578125003,37.158300781250034],[68.96044921875003,37.32504882812498],[68.9118164062501,37.33393554687501],[68.88525390624997,37.32807617187498],[68.85537109375005,37.31684570312501],[68.83847656250006,37.30283203124998],[68.82373046874997,37.27070312500001],[68.78203125000002,37.25800781250001],[68.7232421875,37.26801757812501],[68.6691406250001,37.258398437500006],[68.3869140625001,37.1375],[68.29951171875004,37.08842773437502],[68.28476562500006,37.036328124999955],[68.2609375000001,37.01308593750002],[68.2121093750001,37.02153320312496],[68.0677734375,36.949804687500006],[67.95800781249997,36.972021484375006],[67.83447265624997,37.06420898437506],[67.75898437500004,37.172216796875034],[67.7980468750001,37.244970703125006],[67.81435546875005,37.48701171875004],[68.3502929687501,38.211035156250006],[68.08720703125002,38.47353515625002],[68.13251953125004,38.927636718749966],[67.69443359375006,38.99462890625003],[67.64833984375005,39.13105468750004],[67.3576171875001,39.216699218749994],[67.426171875,39.46557617187497],[67.71904296875007,39.62138671875002],[68.46328125,39.53671874999998],[68.63896484375007,39.8388671875],[68.86875,39.90747070312503],[68.80468750000003,40.05034179687499],[68.9720703125,40.08994140624998],[68.63066406250007,40.16708984374998],[69.27490234374997,40.19809570312498],[69.20625,40.566552734374994],[69.35722656250002,40.76738281249996],[69.71289062500003,40.65698242187503],[70.40195312500006,41.03510742187498],[70.75107421875006,40.721777343750006],[70.37158203125003,40.38413085937506],[70.653125,40.201171875],[70.95800781250003,40.238867187500034]]]]},"properties":{"name":"Tajikistan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[66.52226562500007,37.34848632812506],[66.471875,37.3447265625],[65.7650390625,37.56914062499996],[65.55498046875002,37.25117187500004],[65.30361328125005,37.24677734375001],[65.08964843750007,37.237939453124994],[64.9515625,37.19355468750001],[64.81630859375005,37.13208007812503],[64.7824218750001,37.05927734375001],[64.60253906250003,36.554541015625034],[64.5658203125,36.427587890625034],[64.51103515625002,36.34067382812498],[64.184375,36.14892578125],[63.8625,36.012353515624994],[63.12998046875006,35.84619140624997],[63.169726562500074,35.678125],[63.05664062500003,35.44580078125003],[62.98027343750002,35.40917968750003],[62.85800781250006,35.34965820312499],[62.688085937500006,35.25532226562504],[62.3078125000001,35.17080078125005],[62.08964843750002,35.3796875],[61.62099609375005,35.43232421875004],[61.34472656249997,35.62949218750006],[61.26201171875002,35.61958007812498],[61.25214843750004,35.86762695312498],[61.15292968750006,35.97675781250001],[61.212011718750006,36.190527343750034],[61.11962890625003,36.64257812500003],[60.34130859375003,36.63764648437501],[60.06279296875002,36.962890625],[59.454980468749994,37.25283203125002],[59.30175781249997,37.51064453125005],[58.81542968750003,37.683496093749994],[58.261621093749994,37.665820312500045],[57.35371093750004,37.97333984374998],[57.1935546875001,38.216406250000034],[56.440625,38.249414062499994],[56.272070312500006,38.080419921875034],[55.38085937500003,38.051123046875034],[54.90009765625004,37.77792968750006],[54.6994140625001,37.47016601562498],[53.91416015625006,37.34355468750002],[53.86865234375003,38.949267578125045],[53.70458984375003,39.209570312500034],[53.33632812500005,39.34082031250006],[53.15664062499999,39.26499023437506],[53.23564453125002,39.608544921874966],[53.603125,39.546972656250034],[53.472265625,39.66879882812498],[53.48730468749997,39.909375],[52.9875,39.98759765625002],[53.03554687500005,39.7744140625],[52.80468749999997,40.054003906250045],[52.73369140625002,40.39873046875002],[52.943457031250006,41.03808593750006],[53.1452148437501,40.82495117187497],[53.61523437500003,40.818505859374994],[53.87001953125005,40.64868164062503],[54.37734375,40.693261718749966],[54.319433593750006,40.83457031249998],[54.68505859375003,40.873046875],[54.70371093750006,41.071142578125034],[54.094824218750006,41.51938476562506],[53.80468749999997,42.11762695312498],[53.16416015625006,42.09379882812502],[52.97001953125002,41.97622070312505],[52.81484375,41.711816406249994],[52.850390625000074,41.20029296875006],[52.4938476562501,41.780371093750034],[53.0558593750001,42.14775390624999],[54.120996093749994,42.335205078125],[54.85380859375002,41.965185546875006],[55.434375,41.296289062499994],[55.97744140625005,41.32221679687504],[57.01796875,41.26347656249996],[57.11884765625004,41.35029296874998],[56.96406250000004,41.856542968750006],[57.290625,42.123779296875],[57.814257812500074,42.18984375000005],[58.02890625,42.48764648437506],[58.474414062500074,42.29936523437496],[58.15156250000004,42.628076171874966],[58.477148437500006,42.66284179687503],[58.5890625000001,42.778466796874966],[59.35429687500002,42.32329101562496],[59.98515625000002,42.21171875],[59.94179687499999,41.97353515625002],[60.20078125000006,41.803125],[60.07558593750005,41.759667968749966],[60.089648437500074,41.39941406250003],[60.454980468749994,41.221630859374955],[61.2423828125001,41.18920898437503],[61.496972656249994,41.276074218749955],[61.90283203124997,41.09370117187501],[62.48320312500002,39.97563476562496],[63.76367187500003,39.16054687499999],[64.3099609375,38.97729492187497],[65.612890625,38.23857421875002],[65.97119140624997,38.244238281250006],[66.60625,37.98671875000005],[66.52558593750004,37.785742187500034],[66.51132812500006,37.59916992187496],[66.51064453125,37.45869140625004],[66.52226562500007,37.34848632812506]]]},"properties":{"name":"Turkmenistan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[124.0363281250001,-9.341601562500031],[124.44443359375012,-9.190332031250023],[124.28232421875012,-9.427929687500026],[124.0363281250001,-9.341601562500031]]],[[[125.06816406250002,-9.511914062499997],[124.96015625000004,-9.213769531250009],[125.10048828125,-9.189843750000023],[125.14902343750012,-9.042578125000034],[124.93681640625007,-9.053417968750026],[124.92226562500005,-8.942480468749977],[125.17802734375002,-8.647851562499994],[125.38183593749997,-8.575390624999983],[126.61972656250006,-8.459472656249986],[126.96640625000012,-8.315722656250017],[127.29609375000004,-8.424511718749969],[126.91523437500004,-8.715234374999966],[125.40800781250002,-9.275781250000023],[125.06816406250002,-9.511914062499997]]],[[[125.64609375000006,-8.139941406250003],[125.5794921875,-8.311816406250017],[125.50712890625007,-8.275097656249997],[125.64609375000006,-8.139941406250003]]]]},"properties":{"name":"Timor-Leste","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-175.1619140625,-21.169335937500023],[-175.07817382812496,-21.129003906249977],[-175.15659179687495,-21.26367187499997],[-175.36235351562496,-21.106835937499994],[-175.1619140625,-21.169335937500023]]],[[[-173.953515625,-18.63935546875001],[-174.06914062500002,-18.640234375],[-173.96806640624993,-18.565332031250023],[-173.953515625,-18.63935546875001]]]]},"properties":{"name":"Tonga","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-61.012109374999966,10.134326171874989],[-61.906103515625006,10.069140625000031],[-61.49931640624999,10.268554687499972],[-61.47827148437497,10.603369140624977],[-61.65117187499993,10.718066406249974],[-60.917626953124966,10.84023437499999],[-61.03374023437502,10.669873046875026],[-61.012109374999966,10.134326171874989]]]},"properties":{"name":"Trinidad and Tobago","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[10.957617187500063,33.72207031250005],[10.722070312500051,33.738916015624994],[10.745214843750063,33.88867187500006],[11.017871093749989,33.82333984374998],[10.957617187500063,33.72207031250005]]],[[[11.278027343750068,34.753808593749994],[11.123632812500063,34.68168945312496],[11.254882812500057,34.82031250000006],[11.278027343750068,34.753808593749994]]],[[[10.274609375000011,31.684960937499994],[10.114941406250068,31.46376953125005],[10.216406250000063,30.78320312500003],[10.05976562500004,30.58007812500003],[9.932519531250051,30.42534179687496],[9.895019531250028,30.387304687500034],[9.51875,30.229394531249994],[9.224023437500023,31.373681640624994],[9.160253906250006,31.621337890625],[9.044042968750034,32.072363281250034],[8.333398437500051,32.54360351562502],[8.1125,33.055322265624994],[7.877246093750017,33.172119140625],[7.534375,33.717919921874994],[7.513867187500068,34.080517578124955],[8.24560546875,34.73408203124998],[8.276855468750057,34.97949218749997],[8.312109375000063,35.084619140624994],[8.394238281250011,35.20385742187503],[8.318066406250011,35.654931640624994],[8.348730468750063,36.367968750000045],[8.207617187500006,36.518945312499994],[8.601269531250068,36.83393554687504],[8.576562500000023,36.93720703125001],[9.687988281250057,37.34038085937499],[9.838476562500063,37.30898437499999],[9.830273437499983,37.13535156250006],[9.875585937499977,37.25415039062503],[10.196386718750063,37.205859375000045],[10.293261718750074,36.781494140625],[10.412304687499983,36.73183593750002],[11.053906250000068,37.07250976562506],[11.12666015625004,36.874072265625045],[10.476562500000028,36.175146484375006],[10.590820312500028,35.88725585937499],[11.00429687500008,35.63383789062496],[11.120117187500057,35.24028320312499],[10.69091796875,34.67846679687503],[10.118359375000068,34.280078125000045],[10.049023437500068,34.056298828124994],[10.305273437500034,33.72827148437497],[10.713183593750017,33.68901367187496],[10.722753906250006,33.514404296875],[10.958007812500057,33.62631835937498],[11.257421875000034,33.30883789062506],[11.202636718749972,33.24921874999998],[11.50458984375004,33.181933593750045],[11.502441406250028,33.15556640624999],[11.467187500000051,32.96572265625005],[11.459179687500011,32.897363281249966],[11.453906250000017,32.64257812500003],[11.533789062500034,32.52495117187496],[11.535937500000017,32.47333984375001],[11.504980468750034,32.413671875000034],[11.358007812500006,32.34521484375003],[11.168261718750074,32.25673828125002],[11.005175781250074,32.17270507812506],[10.826367187500068,32.080664062500034],[10.771582031250006,32.02119140625001],[10.60888671875,31.929541015624977],[10.47578125000004,31.736035156249983],[10.274609375000011,31.684960937499994]]]]},"properties":{"name":"Tunisia","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[25.970019531250045,40.136328125],[25.6689453125,40.13588867187502],[25.918359375000023,40.23798828125004],[25.970019531250045,40.136328125]]],[[[43.43339843750002,41.155517578125],[43.43945312500003,41.10712890625001],[43.72265624999997,40.71953124999999],[43.56933593750003,40.48237304687498],[43.66621093750004,40.12636718750002],[44.28925781250004,40.040380859375006],[44.76826171875004,39.70351562500005],[44.81718750000002,39.65043945312496],[44.58710937500004,39.76855468750006],[44.3893554687501,39.422119140625],[44.02324218750002,39.37744140625006],[44.27167968750004,38.83603515625006],[44.2985351562501,38.38627929687499],[44.4499023437501,38.33422851562506],[44.21132812499999,37.908056640625006],[44.589941406250006,37.710351562499966],[44.574023437500074,37.435400390625006],[44.79414062500004,37.290380859375034],[44.76513671875003,37.142431640625006],[44.73095703124997,37.16528320312503],[44.66933593750005,37.17358398437503],[44.60595703124997,37.176025390625],[44.401953125,37.05849609375002],[44.325585937499994,37.0107421875],[44.28183593750006,36.97802734374997],[44.24570312500006,36.983300781249994],[44.20166015624997,37.05180664062502],[44.208398437499994,37.20263671875],[44.19179687499999,37.249853515625034],[44.15625,37.28295898437503],[44.11445312500004,37.30185546875006],[44.01318359375003,37.313525390625045],[43.83642578124997,37.223535156249994],[43.67578125000003,37.227246093749955],[43.09248046875004,37.36738281249998],[42.936621093750006,37.32475585937502],[42.77460937500004,37.371875],[42.74111328125005,37.361914062500034],[42.6354492187501,37.249267578125],[42.45585937500002,37.128710937500045],[42.358984375,37.10859375000004],[42.31289062499999,37.22958984374998],[42.26855468749997,37.276562499999955],[42.24755859375003,37.28222656250006],[42.20273437500006,37.29726562499999],[42.16787109375005,37.28862304687502],[42.059863281250074,37.2060546875],[41.886816406250006,37.156396484374994],[40.70566406250006,37.09770507812502],[40.4503906250001,37.00888671875006],[40.016406250000074,36.82607421875002],[39.68652343749997,36.73862304687506],[39.50146484374997,36.702246093750034],[39.35664062500004,36.68159179687498],[39.10839843749997,36.68056640625005],[38.90644531250004,36.69467773437498],[38.76660156249997,36.69311523437503],[38.19169921875002,36.90156250000004],[37.90664062500005,36.79462890625001],[37.7203125,36.74370117187502],[37.52353515625006,36.678320312500034],[37.436328125000074,36.643310546875],[37.327050781249994,36.64658203125006],[37.18740234375005,36.655908203124994],[37.066210937500074,36.652636718750045],[36.98535156250003,36.70239257812506],[36.94179687499999,36.758398437500006],[36.77656250000004,36.79267578124998],[36.65859375000005,36.80253906250002],[36.62841796875003,36.777685546875034],[36.596875,36.70136718750001],[36.546679687500074,36.50634765625],[36.5375,36.457421874999966],[36.63671874999997,36.233984375],[36.37539062499999,36.171240234375034],[36.347558593749994,36.003515625000034],[36.20195312500002,35.93754882812502],[36.15361328125002,35.83388671875005],[36.12734375,35.831445312499994],[35.967578125000074,35.91005859375002],[35.89267578125006,35.91655273437502],[35.81093750000005,36.30986328125002],[36.18847656250003,36.65898437499999],[36.048925781250006,36.91059570312501],[35.393164062500006,36.57519531249997],[34.70361328125003,36.81679687499999],[33.694726562499994,36.18198242187498],[32.794824218749994,36.03588867187497],[32.37773437500002,36.18364257812496],[32.02197265625003,36.53530273437502],[31.35253906249997,36.80107421874999],[30.64404296874997,36.86567382812501],[30.446093750000074,36.269873046875034],[29.6890625,36.15668945312498],[29.22363281249997,36.32446289062497],[28.96962890625008,36.71533203125003],[28.303710937500057,36.81196289062498],[28.01943359375005,36.63447265624998],[28.083984375000057,36.75146484375],[27.453906250000017,36.712158203125],[28.00537109375003,36.83198242187498],[28.242382812500068,37.029052734375],[27.262988281250045,36.97656250000003],[27.30019531250005,37.12685546875002],[27.53505859375005,37.16386718750002],[27.06796875,37.65791015625004],[27.224414062500074,37.725439453125006],[27.23242187500003,37.978662109374994],[26.29072265625001,38.27719726562498],[26.44130859375005,38.64121093749998],[26.67421875000008,38.33574218750002],[27.14423828125001,38.45195312499996],[26.906835937500034,38.48173828124999],[26.763671875,38.709619140624966],[27.013671875000057,38.88686523437502],[26.814941406250057,38.96098632812502],[26.853613281250034,39.115625],[26.68183593750004,39.292236328125],[26.89921874999999,39.549658203125034],[26.113085937500074,39.46738281249998],[26.101367187500074,39.56894531249998],[26.18134765625004,39.99008789062498],[26.738085937500045,40.40024414062506],[27.28457031250008,40.45561523437496],[27.4755859375,40.319921875000034],[27.72802734375,40.32880859374998],[27.84853515625005,40.38173828125002],[27.73183593750008,40.48149414062499],[27.87490234375008,40.512939453125],[27.989550781250074,40.48945312500001],[27.96259765625001,40.369873046875],[29.00712890624999,40.389746093750034],[28.787890625000017,40.534033203125034],[28.95800781250003,40.63056640624998],[29.849218750000063,40.760107421875006],[29.113867187499977,40.93784179687506],[29.14814453125004,41.221044921875034],[31.25488281249997,41.10761718750001],[31.45800781249997,41.32001953125004],[32.306445312500074,41.72958984374998],[33.38134765625003,42.01757812500003],[34.75048828124997,41.95683593749999],[35.006445312500006,42.06328125000002],[35.15488281250006,42.02753906250001],[35.12207031250003,41.89111328125003],[35.297753906249994,41.72851562500003],[35.558007812499994,41.63403320312506],[36.05175781249997,41.68256835937498],[36.40537109375006,41.27460937500001],[36.77773437499999,41.36347656250001],[37.066210937500074,41.184423828125034],[38.38105468750004,40.92451171875001],[39.426367187500006,41.10644531250003],[40.26523437500006,40.96132812500005],[41.08359375000006,41.26118164062504],[41.41435546875002,41.42363281249999],[41.510058593750074,41.51748046875002],[41.70175781250006,41.471582031249994],[41.77939453125006,41.44052734374998],[41.823535156250074,41.432373046875],[41.92578125000003,41.49565429687502],[42.46640625,41.43984375000002],[42.56738281249997,41.55927734375001],[42.590429687500006,41.57070312500002],[42.60683593750005,41.57880859374998],[42.682421875000074,41.58574218749999],[42.75410156250004,41.57890625000002],[42.787890625000074,41.56372070312503],[42.82167968750005,41.49238281249998],[42.90673828125003,41.46684570312502],[43.05712890625003,41.35283203124996],[43.149023437500006,41.30712890624997],[43.171289062499994,41.28793945312498],[43.14101562499999,41.26484374999998],[43.15283203124997,41.23642578125006],[43.20546875000005,41.19916992187501],[43.43339843750002,41.155517578125]]],[[[27.47480468750001,41.946875],[28.014453125000017,41.96904296874999],[28.197851562500063,41.55449218750002],[29.057226562500006,41.22973632812503],[28.95625,41.00820312499999],[28.172167968750074,41.08071289062502],[27.49941406250005,40.97314453124997],[27.258007812499983,40.687353515625006],[26.772070312500034,40.498046875],[26.202734375000034,40.07539062500004],[26.25380859375005,40.31469726562503],[26.792089843750034,40.626611328124994],[26.10546875000003,40.61132812499997],[26.03896484375008,40.726757812499955],[26.331054687500057,40.954492187499994],[26.330664062499977,41.23876953125],[26.62490234375008,41.401757812499994],[26.581347656250074,41.60126953125004],[26.320898437500034,41.716552734375],[26.3603515625,41.80156249999999],[26.51142578125004,41.82636718749998],[26.549707031250023,41.896728515625],[26.5796875,41.947949218749955],[26.615332031250063,41.964892578125045],[26.884863281250006,41.99184570312502],[26.96875,42.02685546875006],[27.01171875,42.05864257812496],[27.193359375000057,42.07709960937498],[27.24433593750004,42.09326171875],[27.294921875000057,42.079541015624955],[27.47480468750001,41.946875]]]]},"properties":{"name":"Turkey","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[39.71132812499999,-7.977441406250023],[39.602929687499994,-7.936132812499949],[39.907128906249994,-7.649218750000031],[39.71132812499999,-7.977441406250023]]],[[[39.49648437499999,-6.174609375],[39.573046875000074,-6.387402343750011],[39.48095703124997,-6.45371093750002],[39.18232421875004,-6.172558593750026],[39.30898437499999,-5.721972656249974],[39.49648437499999,-6.174609375]]],[[[39.86503906250002,-4.906152343750037],[39.74931640625002,-5.443847656249986],[39.646777343750074,-5.368554687500009],[39.6734375,-4.927050781250031],[39.86503906250002,-4.906152343750037]]],[[[33.90322265625005,-1.002050781250034],[37.643847656250074,-3.045410156250028],[37.608203125000074,-3.497070312500028],[39.221777343750006,-4.692382812500014],[38.80468750000003,-6.070117187500031],[38.87402343750003,-6.33125],[39.5460937500001,-7.024023437500034],[39.288476562499994,-7.517871093750003],[39.28701171875005,-7.787695312500006],[39.4284179687501,-7.81279296874996],[39.441015625,-8.011523437499946],[39.304003906250074,-8.44384765625],[39.451269531250006,-8.94296875],[39.64130859375004,-9.19248046875002],[39.72519531250006,-10.000488281249972],[40.46357421875004,-10.464355468749972],[39.98867187499999,-10.820800781250014],[39.81708984375004,-10.912402343750031],[38.9875,-11.167285156250003],[38.49179687500006,-11.413281250000026],[37.92021484375002,-11.294726562500031],[37.72480468750004,-11.58066406250002],[37.54169921875004,-11.675097656249974],[37.37285156250002,-11.710449218749986],[36.97890625000005,-11.566992187499977],[36.30566406250003,-11.706347656249946],[36.191308593749994,-11.670703124999974],[36.17548828125004,-11.60927734374998],[36.08222656250004,-11.537304687499969],[35.91132812500004,-11.45468750000002],[35.785449218750074,-11.452929687500017],[35.63095703125006,-11.582031250000028],[35.564355468749994,-11.602343749999989],[35.418261718750074,-11.583203125],[35.18261718750003,-11.574804687499977],[34.95947265625003,-11.578125],[34.93701171874997,-11.463476562500034],[34.890625,-11.3935546875],[34.77382812500005,-11.341699218750009],[34.60791015624997,-11.08046875],[34.66708984375006,-10.792480468750028],[34.56992187500006,-10.241113281249966],[34.32089843750006,-9.731542968749977],[33.99560546875003,-9.495410156250003],[33.88886718750004,-9.670117187499983],[32.91992187500003,-9.407421875000026],[32.75664062500002,-9.322265625],[31.94257812500004,-9.05400390624996],[31.91865234375004,-8.942187500000017],[31.886132812499994,-8.921972656249977],[31.81806640625004,-8.902246093749952],[31.673632812500017,-8.908789062499963],[31.55625,-8.80546875],[31.44921874999997,-8.65390625],[31.35058593750003,-8.607031250000034],[31.07636718750004,-8.611914062499963],[30.968359375000063,-8.550976562499983],[30.89199218750005,-8.473730468749963],[30.830664062500063,-8.385546875000031],[30.720898437500097,-8.104394531250037],[30.40673828125003,-7.460644531249983],[30.313183593750097,-7.203710937499949],[30.212695312500017,-7.037890625000017],[30.10625,-6.915039062500028],[29.961816406249994,-6.803125],[29.798144531250017,-6.691894531249957],[29.70966796875004,-6.61689453125004],[29.590625,-6.394433593750023],[29.540820312500017,-6.313867187500037],[29.50625,-6.172070312500011],[29.480078125,-6.025],[29.490820312500063,-5.96542968750002],[29.59638671875004,-5.775976562499963],[29.60703125,-5.722656250000028],[29.59414062500005,-5.650781250000037],[29.542382812499994,-5.499804687500017],[29.34277343749997,-4.983105468749997],[29.32343750000004,-4.898828124999966],[29.32568359374997,-4.835644531249969],[29.404199218749994,-4.49667968750002],[29.40322265625005,-4.449316406249963],[29.71777343750003,-4.45585937499996],[29.94726562499997,-4.307324218749983],[30.4,-3.65390625],[30.790234375000097,-3.274609375000011],[30.811132812500006,-3.116406250000011],[30.78027343750003,-2.984863281249957],[30.70947265624997,-2.977246093749997],[30.604296875000074,-2.935253906249969],[30.515039062499994,-2.917578125],[30.45556640625003,-2.893164062500006],[30.433496093749994,-2.874511718750028],[30.424023437500097,-2.82402343749996],[30.473339843750097,-2.6943359375],[30.42421875000005,-2.641601562500014],[30.441992187500006,-2.613476562499969],[30.53369140624997,-2.426269531250014],[30.55361328125005,-2.400097656250011],[30.593359375000063,-2.39677734374996],[30.65664062500005,-2.373828124999989],[30.71484375000003,-2.363476562500011],[30.7625,-2.371679687499991],[30.828710937500006,-2.338476562499977],[30.85498046874997,-2.265429687500017],[30.8765625,-2.143359375000017],[30.864648437499994,-2.044042968749949],[30.819140625000017,-1.967480468749983],[30.812597656250006,-1.56308593750002],[30.76220703124997,-1.458691406249983],[30.710742187500074,-1.396777343749974],[30.631933593750006,-1.36748046874996],[30.508105468750074,-1.208203125000026],[30.47021484374997,-1.13115234374996],[30.47705078124997,-1.0830078125],[30.509960937500097,-1.067285156249994],[30.51992187499999,-1.0625],[30.67275390625005,-1.051367187499949],[30.741992187500017,-1.007519531249997],[30.809179687500063,-0.994921875],[30.82363281250005,-0.999023437499943],[30.84472656250003,-1.002050781250034],[32.371875,-1.002050781250034],[33.90322265625005,-1.002050781250034]]]]},"properties":{"name":"Tanzania","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[30.50996093750001,-1.067285156250009],[30.46992187500001,-1.066015625],[30.41230468750001,-1.063085937500006],[30.360253906250023,-1.074609375],[29.930078125000023,-1.469921875000011],[29.82539062500001,-1.335546875],[29.576953125000017,-1.387890625000011],[29.717675781250023,0.098339843749997],[29.934472656250023,0.4990234375],[29.94287109375,0.819238281249994],[31.252734375000017,2.044580078124994],[31.176367187500006,2.270068359374989],[30.728613281250006,2.455371093749989],[30.8466796875,2.847021484374991],[30.754003906250006,3.041796874999989],[30.90644531250001,3.408935546875],[30.83857421875001,3.49072265625],[31.15234375,3.785595703124997],[31.547167968750017,3.677587890624991],[31.79804687500001,3.802636718749994],[32.13593750000001,3.519726562499997],[32.33574218750002,3.706201171874994],[32.99726562500001,3.880175781249989],[33.489355468750006,3.755078125],[33.568457031250006,3.81171875],[33.74160156250002,3.985253906249994],[33.97607421875,4.22021484375],[34.13203125000001,3.88916015625],[34.18574218750001,3.869775390624994],[34.1650390625,3.81298828125],[34.26708984375,3.733154296875],[34.39287109375002,3.691503906249991],[34.43769531250001,3.650585937499997],[34.44179687500002,3.60625],[34.3994140625,3.412695312499991],[34.4072265625,3.357519531249991],[34.447851562500006,3.163476562499994],[34.90576171875,2.4796875],[34.88300781250001,2.417919921874997],[34.96406250000001,2.062402343749994],[34.9775390625,1.861914062499991],[34.97646484375002,1.719628906249994],[34.79863281250002,1.24453125],[34.48173828125002,1.042138671874994],[34.41083984375001,0.867285156249991],[34.16093750000002,0.605175781249997],[33.94316406250002,0.173779296874997],[33.90322265625002,-1.002050781250006],[32.371875,-1.002050781250006],[30.8447265625,-1.002050781250006],[30.823632812500023,-0.9990234375],[30.809179687500006,-0.994921875],[30.741992187500017,-1.007519531250011],[30.672753906250023,-1.051367187500006],[30.598730468750006,-1.069726562500009],[30.519921875000023,-1.0625],[30.50996093750001,-1.067285156250009]]]},"properties":{"name":"Uganda","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[32.01220703124997,46.20390624999999],[32.15009765625004,46.1546875],[31.56386718750005,46.25776367187504],[31.50878906250003,46.373144531250006],[32.01220703124997,46.20390624999999]]],[[[38.21435546875003,47.091455078124966],[37.54335937499999,47.07456054687498],[36.794824218749994,46.71440429687499],[36.55878906250004,46.76269531250006],[35.82714843749997,46.62431640625002],[35.01455078125005,46.10600585937502],[35.280175781249994,46.27949218750001],[35.23037109375005,46.440625],[34.84960937500003,46.189892578124955],[35.02285156250005,45.70097656250002],[35.45751953124997,45.316308593749994],[36.170507812500006,45.453076171874955],[36.575,45.3935546875],[36.39335937500002,45.06538085937501],[35.87011718750003,45.005322265624955],[35.472558593749994,45.098486328125006],[35.08769531250002,44.802636718749966],[34.46992187500004,44.7216796875],[33.909960937500074,44.387597656249966],[33.45068359374997,44.553662109374955],[33.55517578125003,45.09765625000003],[32.5080078125001,45.40380859375006],[33.664843750000074,45.94707031249996],[33.59414062500005,46.09624023437499],[33.42988281250004,46.05761718750003],[33.20224609375006,46.17573242187501],[32.47675781250004,46.08369140625001],[31.83125,46.28168945312501],[32.00849609375004,46.42998046875002],[31.554882812500097,46.554296875000034],[32.36132812499997,46.474951171875034],[32.578027343749994,46.615625],[32.04433593750005,46.642480468749966],[31.75917968750005,47.21284179687501],[31.872851562500017,46.649755859375034],[31.532128906249994,46.66474609374998],[31.56337890625005,46.77729492187501],[31.402929687500063,46.62880859375002],[30.796289062499994,46.55200195312503],[30.219042968750074,45.866748046875045],[29.62841796875003,45.722460937500045],[29.705859375000074,45.25991210937505],[29.567675781250074,45.37080078124998],[29.40371093750005,45.419677734375],[29.22353515625005,45.402929687500034],[28.894335937500017,45.28994140625002],[28.78173828125,45.30986328125002],[28.76660156250003,45.28623046874998],[28.78828125000001,45.240966796875],[28.451269531250006,45.292187499999955],[28.317675781250045,45.347119140624955],[28.2125,45.45043945312506],[28.26484375000004,45.48388671875003],[28.310351562500074,45.49858398437499],[28.499023437500057,45.517724609374994],[28.513769531250034,45.57241210937502],[28.49160156250005,45.66577148437503],[28.562304687500074,45.73579101562501],[28.667578125,45.79384765625002],[28.729296875000074,45.852001953124955],[28.73876953125003,45.937158203124994],[28.84951171875005,45.97866210937502],[28.94775390624997,46.049951171874966],[28.971875,46.12763671874998],[29.00625,46.17646484374998],[28.94375,46.28842773437506],[28.930566406250023,46.36225585937501],[28.92744140625001,46.42412109374999],[28.958398437500023,46.45849609374997],[29.146289062500017,46.52690429687496],[29.186230468750068,46.52397460937499],[29.20078125,46.504980468750034],[29.20458984374997,46.37934570312501],[29.223828125000097,46.37695312499997],[29.458789062500017,46.453759765624994],[29.83789062499997,46.35053710937501],[29.878027343750063,46.360205078125034],[30.07568359375003,46.377832031249966],[30.131054687500097,46.42309570312506],[29.92431640624997,46.53886718750002],[29.934765625000097,46.625],[29.942480468750063,46.72377929687502],[29.918066406250063,46.78242187499998],[29.877832031249994,46.828906250000045],[29.57197265625004,46.96401367187502],[29.455664062500006,47.292626953124994],[29.134863281250006,47.48969726562501],[29.125390625000023,47.96455078125001],[28.42304687500001,48.146875],[28.34052734375001,48.144433593749994],[27.54921875000008,48.47773437500004],[27.22851562500003,48.37143554687506],[26.90058593750001,48.37192382812506],[26.847070312500023,48.387158203124955],[26.640429687500045,48.29414062500001],[26.618945312500017,48.25986328125006],[26.4423828125,48.22998046875],[26.162695312500063,47.992529296875034],[25.90869140625,47.96757812500002],[25.689257812500045,47.93247070312506],[25.46425781250005,47.910791015624994],[24.979101562500063,47.72412109374997],[24.578906250000074,47.93105468750005],[23.628710937500017,47.995849609375],[23.40820312500003,47.98999023437506],[23.20263671875,48.084521484375045],[23.13945312499999,48.08740234375],[22.87666015625001,47.94726562500006],[22.769140625000063,48.109619140625],[22.582421875000023,48.134033203125],[22.253710937500017,48.407373046874994],[22.131835937500057,48.40532226562502],[22.142871093750017,48.568505859374966],[22.295214843750045,48.68583984374999],[22.389453125000045,48.87348632812501],[22.52412109375004,49.03139648437502],[22.538671875,49.07270507812501],[22.847070312500023,49.08125],[22.705664062500006,49.17119140624999],[22.6494140625,49.53901367187498],[22.706152343750006,49.60620117187497],[23.03632812500004,49.899072265624966],[23.711718750000045,50.377343749999966],[23.97265625,50.410058593749966],[24.089941406250006,50.53046874999998],[24.0947265625,50.617041015625034],[23.9970703125,50.809375],[24.095800781250063,50.87275390625001],[23.664453125000023,51.31005859375],[23.61376953125,51.525390625],[23.706835937500045,51.64130859374998],[23.79169921875001,51.63710937500002],[23.864257812500057,51.62397460937501],[23.951171875,51.58505859374998],[23.978320312500017,51.59130859375003],[24.12685546875008,51.664648437500034],[24.280078125000017,51.77470703124999],[24.361914062500006,51.86752929687498],[25.785742187500006,51.923828125],[26.77343750000003,51.77070312499998],[26.952832031249983,51.754003906250034],[27.074121093750023,51.760839843750006],[27.14199218750008,51.75205078124998],[27.29628906250008,51.59741210937503],[27.689746093750017,51.572412109374994],[27.7,51.47797851562501],[27.85859375000004,51.59238281250006],[28.532031250000017,51.56245117187501],[28.59902343750008,51.54262695312505],[28.647753906250074,51.45654296875],[28.690234375000017,51.43886718750005],[28.73125,51.43339843749999],[28.84951171875005,51.540185546874994],[28.927539062500045,51.56215820312502],[28.97773437500004,51.57177734375003],[29.01308593750005,51.59892578124996],[29.06074218750001,51.625439453124955],[29.102050781250057,51.627539062500034],[29.346484375000017,51.38256835937503],[30.160742187500006,51.477880859375006],[30.449511718750017,51.274316406249994],[30.63251953125004,51.35541992187501],[30.61171875000005,51.406347656250006],[30.602343750000017,51.47124023437499],[30.56074218750004,51.531494140625],[30.533007812500017,51.596337890624966],[30.583886718749994,51.68896484375003],[30.667285156250017,51.81411132812502],[30.755273437499994,51.89516601562502],[30.84570312500003,51.95307617187501],[30.980664062500097,52.04619140624996],[31.217968750000097,52.05024414062498],[31.345996093750074,52.10537109375002],[31.57373046875003,52.108105468749955],[31.763378906250097,52.10107421875003],[32.12226562500004,52.05058593749996],[32.435449218749994,52.307226562500034],[33.735253906249994,52.344775390625045],[34.397851562499994,51.780419921874994],[34.12109375000003,51.67915039062498],[34.21386718750003,51.25537109375006],[35.0640625,51.203417968750045],[35.31191406250005,51.043896484374955],[35.59111328125002,50.36875],[36.1164062500001,50.408544921875006],[36.619433593750074,50.209228515625],[37.42285156249997,50.411474609375006],[38.046875,49.92001953125006],[38.258593750000074,50.05234375],[38.91835937499999,49.82470703125],[39.17480468750003,49.85595703124997],[39.780566406250074,49.57202148437503],[40.080664062500006,49.576855468749955],[40.10878906250005,49.251562500000034],[39.68652343749997,49.007910156250034],[40.00361328125004,48.82207031250002],[39.792871093749994,48.807714843750034],[39.6447265625001,48.591210937499966],[39.8356445312501,48.54277343749996],[39.95791015625005,48.268896484375034],[39.77871093750005,47.88754882812506],[38.90029296875005,47.85512695312502],[38.36884765625004,47.609960937500006],[38.21435546875003,47.091455078124966]]]]},"properties":{"name":"Ukraine","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-57.81059570312499,-30.85859375000001],[-57.872509765625,-30.59101562500001],[-57.831201171874994,-30.495214843750006],[-57.71269531249999,-30.38447265625001],[-57.65087890625,-30.295019531250006],[-57.645751953125,-30.226953125],[-57.60888671875,-30.187792968750003],[-57.55229492187499,-30.26123046875],[-57.21445312499999,-30.28339843750001],[-57.186914062499994,-30.26484375000001],[-57.120507812499994,-30.14443359375001],[-56.83271484375,-30.107226562500003],[-56.4072265625,-30.44746093750001],[-55.998974609375,-30.837207031250003],[-56.018457031249994,-30.99189453125001],[-56.00468749999999,-31.079199218750006],[-55.873681640624994,-31.069628906250003],[-55.6271484375,-30.85810546875001],[-55.60302734375,-30.85078125000001],[-55.55732421875,-30.8759765625],[-55.17353515625,-31.279589843750003],[-55.09116210937499,-31.31396484375],[-55.036035156249994,-31.27900390625001],[-54.587646484375,-31.48515625],[-54.22055664062499,-31.85517578125001],[-53.76171875,-32.05683593750001],[-53.601708984374994,-32.40302734375001],[-53.12558593749999,-32.73671875],[-53.2140625,-32.82109375],[-53.31010742187499,-32.92705078125],[-53.39521484375,-33.010351562500006],[-53.482861328125,-33.06855468750001],[-53.511865234374994,-33.10869140625],[-53.53134765624999,-33.1708984375],[-53.53134765624999,-33.65546875000001],[-53.37060546875,-33.7421875],[-53.419580078124994,-33.77919921875001],[-53.47246093749999,-33.84931640625001],[-53.53452148437499,-34.01748046875001],[-53.742919921875,-34.24951171875],[-53.785302734374994,-34.38037109375],[-54.16855468749999,-34.670703125],[-54.902294921875,-34.93281250000001],[-55.67314453124999,-34.77568359375],[-56.249951171875,-34.90126953125001],[-57.17070312499999,-34.45234375000001],[-57.8291015625,-34.47734375],[-58.40019531249999,-33.91240234375],[-58.363525390625,-33.18232421875001],[-58.08232421874999,-32.893652343750006],[-58.12958984375,-32.75722656250001],[-58.16220703124999,-32.566503906250006],[-58.201171875,-32.4716796875],[-58.123046875,-32.321875],[-58.11972656249999,-32.24892578125001],[-58.164794921875,-32.18486328125],[-58.177001953125,-32.11904296875001],[-58.15634765624999,-32.0515625],[-58.160400390625,-31.98652343750001],[-58.18901367187499,-31.92421875],[-58.16748046875,-31.87265625],[-58.04233398437499,-31.76923828125001],[-58.006982421874994,-31.68496093750001],[-58.053857421874994,-31.494921875],[-58.0333984375,-31.416601562500006],[-57.89335937499999,-31.1953125],[-57.868408203125,-31.10439453125001],[-57.88632812499999,-30.93740234375001],[-57.81059570312499,-30.85859375000001]]]},"properties":{"name":"Uruguay","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-155.58134765624996,19.012011718750017],[-155.88129882812495,19.07050781250001],[-156.04868164062498,19.749951171874983],[-155.82031249999997,20.01416015624997],[-155.83164062499998,20.27583007812501],[-155.198779296875,19.99438476562503],[-154.80419921875,19.524462890625045],[-155.58134765624996,19.012011718750017]]],[[[-156.84960937499997,20.772656249999955],[-156.97338867187497,20.757519531249983],[-157.0505859375,20.912451171875034],[-156.88056640624995,20.904833984375074],[-156.84960937499997,20.772656249999955]]],[[[-156.48681640624994,20.93256835937504],[-156.27753906250004,20.951269531250034],[-155.98984374999998,20.75712890624999],[-156.40878906249998,20.60517578125004],[-156.480078125,20.80122070312501],[-156.69775390625003,20.949072265625034],[-156.58540039062495,21.034326171874994],[-156.48681640624994,20.93256835937504]]],[[[-157.21362304687497,21.215380859375017],[-156.71215820312506,21.155078125000074],[-156.85986328125,21.05634765625004],[-157.29033203124996,21.112597656250017],[-157.21362304687497,21.215380859375017]]],[[[-157.79936523437502,21.456640625000034],[-157.63540039062502,21.30761718749997],[-158.11035156249994,21.318603515625],[-158.27314453125,21.585253906250045],[-157.9625,21.701367187499983],[-157.79936523437502,21.456640625000034]]],[[[-159.37275390625,21.93237304687497],[-159.60883789062495,21.909521484375034],[-159.78916015625003,22.041796875000074],[-159.57919921874998,22.22314453124997],[-159.35205078124997,22.219580078125034],[-159.37275390625,21.93237304687497]]],[[[-81.04418945312503,24.716796875000057],[-81.137353515625,24.710498046875017],[-80.93046875,24.75947265625004],[-81.04418945312503,24.716796875000057]]],[[[-80.3818359375,25.142285156249955],[-80.58056640624997,24.954248046875023],[-80.25708007812497,25.34760742187504],[-80.3818359375,25.142285156249955]]],[[[-97.17070312499996,26.159375],[-97.40209960937494,26.820507812499983],[-97.38598632812494,27.19648437500004],[-97.17070312499996,26.159375]]],[[[-80.18676757812497,27.278417968750034],[-80.17050781250003,27.20478515625004],[-80.43691406249994,27.850537109374955],[-80.18676757812497,27.278417968750034]]],[[[-91.793701171875,29.50073242187497],[-92.00664062499996,29.61030273437501],[-91.875244140625,29.640966796875034],[-91.793701171875,29.50073242187497]]],[[[-84.90791015624998,29.642626953125017],[-85.11674804687499,29.63281249999997],[-84.737158203125,29.732421875],[-84.90791015624998,29.642626953125017]]],[[[-89.22397460937498,30.084082031249977],[-89.34199218749995,30.062841796875006],[-89.18466796874995,30.168652343749983],[-89.22397460937498,30.084082031249977]]],[[[-118.34794921875002,33.3857421875],[-118.29746093750003,33.312109375],[-118.44628906249997,33.317089843749955],[-118.56943359375002,33.46416015624999],[-118.34794921875002,33.3857421875]]],[[[-120.04355468749995,33.918847656249994],[-120.25190429687494,34.01386718749998],[-120.07182617187493,34.026513671874966],[-120.04355468749995,33.918847656249994]]],[[[-119.88237304687497,34.07968749999998],[-119.54926757812497,34.02817382812506],[-119.80957031249997,33.9677734375],[-119.88237304687497,34.07968749999998]]],[[[-75.54414062499995,35.240087890625034],[-75.69008789062502,35.221582031249994],[-75.53637695312497,35.27861328124999],[-75.50351562500003,35.769140625],[-75.46474609374994,35.448632812499966],[-75.54414062499995,35.240087890625034]]],[[[-74.13320312500002,39.680761718750034],[-74.25048828125,39.529394531250006],[-74.10673828124996,39.74643554687498],[-74.13320312500002,39.680761718750034]]],[[[-72.50976562500003,40.98603515625001],[-72.58085937499996,40.92133789062498],[-71.90322265625,41.06069335937505],[-73.19428710937495,40.654199218749994],[-74.01489257812497,40.581201171874966],[-73.87924804687498,40.79165039062502],[-73.573828125,40.91962890624998],[-72.62509765624998,40.99184570312505],[-72.27412109374998,41.15302734375001],[-72.50976562500003,40.98603515625001]]],[[[-69.9779296875,41.26557617187504],[-70.23305664062502,41.28632812500001],[-70.04121093750001,41.3974609375],[-69.9779296875,41.26557617187504]]],[[[-70.50991210937502,41.376318359375034],[-70.82919921874995,41.35898437500006],[-70.61601562499996,41.45722656250001],[-70.50991210937502,41.376318359375034]]],[[[-71.24140625000001,41.49194335937497],[-71.34624023437496,41.469384765624994],[-71.23203124999995,41.654296875],[-71.24140625000001,41.49194335937497]]],[[[-68.18725585937497,44.33247070312501],[-68.41171875000003,44.294335937499966],[-68.29941406249998,44.456494140624955],[-68.18725585937497,44.33247070312501]]],[[[-122.394140625,47.39526367187503],[-122.50991210937497,47.358007812500006],[-122.486474609375,47.48876953125],[-122.394140625,47.39526367187503]]],[[[-122.57275390624999,48.15664062499999],[-122.38315429687499,47.923193359375034],[-122.74150390624999,48.22529296875004],[-122.62861328125,48.38422851562498],[-122.54243164062503,48.29399414062499],[-122.69702148437499,48.228662109374994],[-122.57275390624999,48.15664062499999]]],[[[-94.80346679687497,49.0029296875],[-94.71279296874997,48.863427734374994],[-94.62089843749999,48.74262695312501],[-93.85161132812496,48.607275390625034],[-93.70771484374995,48.52543945312499],[-93.37788085937498,48.61655273437498],[-93.25795898437497,48.62885742187501],[-92.83671875,48.567773437499994],[-92.50058593749995,48.43535156250002],[-92.41459960937493,48.276611328125],[-92.3484375,48.276611328125],[-92.00517578125002,48.301855468750006],[-91.38720703124997,48.05854492187498],[-91.04345703125003,48.19370117187498],[-90.84033203125003,48.20053710937506],[-90.79731445312495,48.13105468750001],[-89.4556640625,47.996240234374994],[-88.37817382812497,48.30307617187498],[-87.74389648437497,48.06054687500003],[-87.20800781249997,47.848486328125006],[-86.67216796874996,47.636425781249955],[-85.65224609375,47.21997070312503],[-85.07006835937497,46.97993164062498],[-84.87597656249994,46.89990234375003],[-84.66577148437503,46.54326171875002],[-84.44047851562496,46.49814453125006],[-84.12319335937497,46.50292968749997],[-83.97778320312503,46.08491210937498],[-83.61596679687503,46.116845703124994],[-83.46948242187503,45.99467773437499],[-83.59267578125,45.81713867187506],[-82.91933593749994,45.51796875000002],[-82.55107421874996,45.34736328125001],[-82.48505859374993,45.08374023437503],[-82.137841796875,43.570898437500034],[-82.19038085937495,43.47407226562501],[-82.54531249999997,42.62470703124998],[-83.10952148437497,42.25068359375001],[-83.141943359375,41.97587890624996],[-82.69003906249995,41.675195312499994],[-82.43906249999998,41.67485351562502],[-81.97416992187496,41.88872070312499],[-81.50732421874997,42.10346679687504],[-81.02822265624997,42.247167968750006],[-80.24755859375,42.36601562499996],[-79.17373046875,42.74853515625],[-78.91508789062496,42.90913085937504],[-78.98076171874993,42.98061523437502],[-79.02617187499996,43.01733398437506],[-79.066064453125,43.10610351562502],[-79.171875,43.466552734375],[-79.00249023437502,43.52714843749999],[-78.845556640625,43.58334960937498],[-78.72041015625001,43.62495117187501],[-78.45825195312497,43.63149414062502],[-77.596533203125,43.62861328124998],[-76.819970703125,43.62880859375002],[-76.18579101562503,44.24223632812502],[-75.81933593749997,44.468017578125],[-75.40126953124997,44.77226562499999],[-74.99614257812496,44.970117187499966],[-74.76245117187494,44.99907226562502],[-74.663232421875,45.00390625000003],[-71.51752929687495,45.00756835937497],[-71.327294921875,45.29008789062496],[-70.86503906249999,45.27070312500001],[-70.296240234375,45.90610351562506],[-70.00771484375002,46.70893554687501],[-69.24287109374998,47.46298828124998],[-69.0501953125,47.426611328125034],[-68.93720703124998,47.21123046875002],[-68.23549804687502,47.34594726562503],[-67.806787109375,47.08281249999999],[-67.80224609374994,45.7275390625],[-67.43266601562496,45.603125],[-67.366943359375,45.17377929687498],[-67.12485351562498,45.16943359375],[-66.98701171874995,44.82768554687502],[-67.191259765625,44.67558593750002],[-67.83906249999998,44.576269531250034],[-68.056640625,44.38432617187502],[-68.15205078124998,44.50200195312499],[-68.45058593749997,44.50761718749999],[-68.53251953124996,44.25864257812498],[-68.81191406249994,44.33935546875],[-68.76269531249994,44.57075195312498],[-69.22607421875003,43.98647460937505],[-69.52075195312503,43.89736328125002],[-69.55668945312496,43.982763671875006],[-69.62392578125,43.88061523437497],[-69.65288085937493,43.99389648437506],[-69.808349609375,43.772314453125034],[-69.965234375,43.855078125],[-70.17880859374998,43.76635742187506],[-70.73310546875001,43.07001953125004],[-70.82905273437493,42.82534179687502],[-70.61293945312497,42.623242187499955],[-71.04619140624993,42.331103515625045],[-70.73828125,42.228857421875006],[-70.42666015625002,41.75727539062501],[-70.00141601562498,41.82617187500003],[-70.24106445312495,42.09121093750002],[-70.10893554687496,42.07832031249998],[-69.97788085937498,41.961279296875006],[-69.94863281249997,41.67714843750005],[-70.65712890625,41.53422851562496],[-70.70112304687498,41.71484375],[-71.1685546875,41.489404296874994],[-71.14873046874996,41.74570312499998],[-71.27109375,41.68125],[-71.39013671875003,41.79531250000005],[-71.52285156249997,41.378955078125045],[-72.92470703125002,41.28515625000003],[-73.98710937499999,40.751367187499994],[-73.87197265625,41.05517578124997],[-73.96992187499995,41.24970703125001],[-73.92719726562495,40.914257812499955],[-74.26420898437496,40.52861328124999],[-73.972265625,40.40034179687498],[-74.079931640625,39.78813476562496],[-74.06459960937497,39.99311523437498],[-74.79448242187499,39.00190429687501],[-74.95429687499995,38.949951171875],[-74.89702148437502,39.14545898437504],[-75.52421874999999,39.49018554687501],[-75.421875,39.78969726562502],[-75.07416992187495,39.98349609375006],[-75.40063476562503,39.83159179687502],[-75.58759765625001,39.64077148437505],[-75.3921875,39.09277343750006],[-75.08867187499999,38.777539062499955],[-75.18710937499995,38.59111328124999],[-75.03876953124993,38.426367187500006],[-75.934375,37.15190429687496],[-75.97504882812498,37.3984375],[-75.65927734374995,37.953955078125034],[-75.850830078125,37.971582031249994],[-75.85869140624999,38.36206054687503],[-76.05122070312495,38.27954101562503],[-76.2646484375,38.436425781249994],[-76.26416015625,38.599951171875006],[-76.016943359375,38.62509765624998],[-76.21298828124998,38.75830078125003],[-76.34116210937498,38.70966796874998],[-76.16816406249998,38.85273437499998],[-76.32958984375,38.95278320312505],[-76.13520507812493,39.082128906250006],[-76.23569335937498,39.19160156250001],[-76.153125,39.315039062500034],[-75.87597656249997,39.3759765625],[-76.003125,39.41083984375001],[-75.87294921874997,39.510888671874966],[-75.95893554687498,39.58505859374998],[-76.2763671875,39.32275390625],[-76.330810546875,39.40390625],[-76.42089843749997,39.225],[-76.57041015624995,39.26933593749996],[-76.42758789062498,39.12602539062499],[-76.55854492187493,39.065234375000045],[-76.39409179687502,38.368994140625034],[-76.67734374999998,38.611962890624966],[-76.66855468749998,38.5375],[-76.34116210937498,38.08701171875006],[-76.86811523437495,38.39028320312502],[-76.88974609375,38.292089843750006],[-77.00117187499995,38.44526367187504],[-77.23251953125,38.40771484375003],[-77.03037109374995,38.88925781249998],[-77.26040039062502,38.6],[-77.27324218749996,38.35175781249998],[-77.04677734375002,38.356689453125],[-76.26425781250003,37.89355468749997],[-76.34414062499997,37.675683593749994],[-76.49248046874999,37.682226562500006],[-77.11108398437497,38.165673828124994],[-76.54946289062494,37.66914062500001],[-76.30556640625,37.57148437500001],[-76.26347656249996,37.35703125],[-76.40097656249998,37.386132812499994],[-76.45390624999993,37.27353515625006],[-76.75771484375002,37.50541992187496],[-76.28330078125,37.05268554687501],[-76.40087890624997,36.991308593750034],[-76.63090820312493,37.22172851562499],[-77.25087890624994,37.329199218750034],[-76.671875,37.172949218750006],[-76.48784179687502,36.89702148437499],[-75.99941406249997,36.91264648437499],[-75.53417968749997,35.81909179687506],[-75.94648437499995,36.65908203125002],[-75.99277343749995,36.47377929687502],[-75.82006835937494,36.11284179687502],[-76.14785156250002,36.279296875],[-76.15,36.14575195312497],[-76.27060546874998,36.18989257812501],[-76.22739257812498,36.11601562499996],[-76.559375,36.015332031249955],[-76.733642578125,36.229150390624994],[-76.726220703125,35.957617187500034],[-76.06977539062501,35.970312500000034],[-76.08359374999998,35.69052734375006],[-75.85390625,35.96015625000001],[-75.75883789062499,35.84326171875],[-75.77392578124997,35.64697265624997],[-76.17382812499997,35.354150390624994],[-76.489501953125,35.397021484375045],[-76.57719726562502,35.53232421874998],[-76.74140624999998,35.431494140625034],[-77.03999023437495,35.527392578125045],[-76.51293945312497,35.270410156249994],[-76.77915039062503,34.990332031250034],[-77.07026367187501,35.154638671875034],[-76.97495117187503,35.025195312500045],[-76.74497070312498,34.94096679687502],[-76.45673828124998,34.989355468750034],[-76.36220703125,34.9365234375],[-76.43979492187498,34.84291992187502],[-77.29624023437503,34.602929687499994],[-77.41225585937497,34.730810546875034],[-77.37978515625,34.526611328125],[-77.750732421875,34.28496093749996],[-77.92783203125,33.93974609374999],[-77.95327148437494,34.16899414062496],[-78.01333007812502,33.91181640624998],[-78.40585937499995,33.91757812499998],[-78.84145507812497,33.72407226562501],[-79.19379882812498,33.24414062500003],[-79.22646484375,33.40488281249998],[-79.27602539062497,33.135400390624966],[-79.80498046874999,32.78740234374996],[-79.93310546874997,32.81005859375006],[-79.94072265625002,32.667138671874966],[-80.36284179687496,32.500732421875],[-80.6341796875,32.51171875000003],[-80.474267578125,32.42275390625002],[-80.579345703125,32.28730468750004],[-80.80253906249999,32.44804687500002],[-80.69423828124997,32.21572265625002],[-81.11328124999997,31.87861328125001],[-81.06611328124995,31.787988281250023],[-81.259375,31.538916015624977],[-81.17543945312494,31.531298828125017],[-81.38095703124998,31.353271484375],[-81.28847656249997,31.263916015625],[-81.441748046875,31.19970703124997],[-81.5162109375,30.801806640625017],[-81.24951171875003,29.793798828125006],[-80.52412109374995,28.48608398437503],[-80.5849609375,28.271582031250034],[-80.456884765625,27.90068359374996],[-80.61000976562494,28.177587890624977],[-80.60693359375003,28.522900390624983],[-80.693505859375,28.34497070312497],[-80.68847656250003,28.578515625000023],[-80.83818359374999,28.757666015625034],[-80.74863281250003,28.381005859375023],[-80.050048828125,26.807714843750063],[-80.1263671875,25.83349609375],[-80.48466796874999,25.229833984375034],[-81.11049804687494,25.138037109374977],[-81.13603515624999,25.309667968750034],[-80.94042968750003,25.264208984375017],[-81.11333007812499,25.367236328125045],[-81.36494140625001,25.83105468750003],[-81.715478515625,25.98315429687503],[-81.95893554687495,26.489941406249983],[-81.82866210937496,26.68706054687499],[-82.03959960937496,26.552050781250017],[-82.01328125,26.96157226562505],[-82.24287109374998,26.848876953125],[-82.44135742187501,27.059667968750034],[-82.71459960937497,27.499609375000063],[-82.40576171874994,27.862890624999977],[-82.67519531249994,27.963769531250023],[-82.61098632812502,27.77724609375005],[-82.74287109374995,27.709375],[-82.84350585937494,27.845996093750017],[-82.65146484375,28.8875],[-83.69438476562502,29.92597656250001],[-84.04423828124996,30.10380859374999],[-84.30966796874995,30.064746093750045],[-84.38281250000003,29.90737304687505],[-85.31894531249995,29.680224609375045],[-85.413818359375,29.76757812499997],[-85.413818359375,29.842480468749955],[-85.31489257812493,29.758105468750017],[-85.35361328125,29.875732421875],[-85.67578125,30.121923828125063],[-85.60351562500003,30.286767578124966],[-85.75581054687495,30.1669921875],[-86.454443359375,30.39912109375004],[-86.12382812499999,30.40581054687499],[-86.25737304687502,30.493017578124977],[-87.201171875,30.339257812499994],[-86.98579101562498,30.43085937500001],[-86.99755859375,30.5703125],[-87.17060546874998,30.538769531249983],[-87.28105468750002,30.339257812499994],[-87.47578124999998,30.294287109375006],[-87.44829101562499,30.394140625],[-87.62226562499998,30.264746093750006],[-88.00595703124998,30.230908203124955],[-87.79028320312503,30.291796875000017],[-88.011328125,30.694189453125006],[-88.13544921874998,30.366601562499994],[-88.90522460937495,30.415136718750006],[-89.32055664062503,30.3453125],[-89.58847656249998,30.165966796874955],[-90.12597656249997,30.369091796874955],[-90.33198242187493,30.277587890625057],[-90.41303710937501,30.140332031249983],[-90.17534179687499,30.02910156249996],[-89.73745117187497,30.171972656250034],[-89.66503906249994,30.117041015625034],[-89.81518554687497,30.007275390624955],[-89.631689453125,29.90380859375003],[-89.400732421875,30.04604492187505],[-89.35444335937501,29.82021484375005],[-89.72089843749995,29.619287109374966],[-89.01572265625,29.202880859375057],[-89.15551757812497,29.01660156250003],[-89.23608398437494,29.081103515625017],[-89.37612304687497,28.981347656250023],[-89.44316406249996,29.194140625000045],[-90.15908203124997,29.537158203125017],[-90.05278320312499,29.336816406249966],[-90.21279296875,29.104931640624983],[-90.37919921874996,29.29511718750001],[-90.75102539062496,29.13085937500003],[-91.29013671875,29.288964843749994],[-91.15078124999994,29.317919921875045],[-91.24882812499993,29.56420898437503],[-91.51420898437499,29.55537109375001],[-91.8931640625,29.836035156249977],[-92.135498046875,29.699462890625057],[-92.08403320312499,29.59282226562499],[-92.26083984374995,29.55683593750004],[-93.17568359375,29.778955078124994],[-93.82646484374999,29.725146484375045],[-93.84145507812502,29.97973632812503],[-93.89047851562495,29.689355468750023],[-94.759619140625,29.384277343750057],[-94.52626953125,29.547949218750006],[-94.77827148437498,29.54785156249997],[-94.74194335937497,29.75],[-95.0228515625,29.70234375000001],[-94.88828125000003,29.37055664062501],[-95.27348632812499,28.96386718750003],[-96.23452148437502,28.488964843749983],[-96.01103515624996,28.631933593749977],[-96.44873046874997,28.594482421875],[-96.64003906249994,28.708789062500017],[-96.42109374999993,28.457324218750045],[-96.67636718749998,28.34130859375003],[-96.77353515624998,28.421630859375057],[-96.839501953125,28.194384765625017],[-97.156494140625,28.144335937500045],[-97.141259765625,28.060742187499983],[-97.034326171875,28.093847656250063],[-97.07309570312498,27.98608398437503],[-97.43149414062498,27.83720703124999],[-97.28872070312494,27.670605468749983],[-97.43911132812502,27.328271484374966],[-97.76845703124997,27.45751953125],[-97.69238281250003,27.287158203125017],[-97.48510742187497,27.237402343750006],[-97.55468749999994,26.96733398437496],[-97.43505859375,26.48583984375003],[-97.14624023437494,25.961474609375045],[-97.37563476562497,25.871826171875],[-99.10776367187498,26.446923828124994],[-99.45654296874999,27.05668945312496],[-99.50532226562497,27.54833984375003],[-100.29604492187495,28.32768554687499],[-100.75458984375001,29.182519531249994],[-101.44038085937503,29.77685546875],[-102.26894531249998,29.871191406250034],[-102.61494140624994,29.75234375],[-102.8919921875,29.216406250000034],[-103.16831054687498,28.998193359374994],[-104.110595703125,29.386132812499994],[-104.50400390624995,29.677685546874955],[-104.97880859374996,30.645947265624955],[-106.14804687499995,31.450927734375],[-106.44541015624996,31.768408203125006],[-108.21181640625002,31.779345703125017],[-108.21445312499993,31.329443359375034],[-111.0419921875,31.32421875000003],[-114.83593749999994,32.50830078125003],[-114.72475585937495,32.71533203125003],[-117.12827148437495,32.533349609374994],[-117.46743164062495,33.295507812500006],[-118.08051757812497,33.72216796874997],[-118.41044921874996,33.74394531249996],[-118.506201171875,34.01738281249999],[-119.14375,34.11201171874998],[-119.60605468749999,34.41801757812499],[-120.48120117187503,34.47163085937498],[-120.64467773437502,34.57998046875002],[-120.65908203124994,35.122412109375034],[-120.85737304687501,35.209667968749955],[-120.899609375,35.42509765624999],[-121.28383789062494,35.67631835937499],[-121.87739257812498,36.33105468749997],[-121.80742187499995,36.851220703124994],[-122.394921875,37.20751953125003],[-122.49921875000001,37.542626953124994],[-122.44560546875002,37.797998046874966],[-122.07050781249998,37.47827148437503],[-122.38544921875001,37.960595703124966],[-122.31425781249999,38.00732421874997],[-121.52534179687503,38.05590820312503],[-122.39335937499995,38.14482421875002],[-122.52133789062499,37.82641601562497],[-122.93198242187498,38.05546875000002],[-122.998779296875,37.98862304687498],[-122.90815429687501,38.19658203124999],[-123.701123046875,38.90727539062502],[-123.83291015624994,39.775488281250034],[-124.35654296875003,40.37109374999997],[-124.07192382812497,41.45952148437502],[-124.53964843750003,42.812890624999966],[-124.14873046874997,43.691748046875034],[-123.92934570312495,45.57695312499996],[-123.989306640625,46.21938476562502],[-123.22060546874998,46.153613281250045],[-123.46484375,46.27109374999998],[-124.07275390624996,46.279443359374994],[-124.04433593750002,46.605078125],[-123.946142578125,46.43256835937501],[-123.88916015625003,46.660009765625006],[-124.11254882812497,46.862695312499994],[-123.84287109375002,46.963183593750045],[-124.11171875,47.03520507812496],[-124.1392578125,46.95468749999998],[-124.376025390625,47.658642578124955],[-124.66308593749996,47.97412109375003],[-124.7099609375,48.38037109375],[-123.97578125,48.16845703125],[-122.97387695312499,48.07329101562496],[-122.77861328125,48.13759765625002],[-122.65664062500002,47.88115234374999],[-122.77841796874996,47.738427734374966],[-122.82138671875,47.79316406250001],[-123.1390625,47.386083984375034],[-122.92216796874993,47.40766601562498],[-123.066796875,47.39965820312506],[-123.04863281249995,47.479345703125034],[-122.53281250000002,47.919726562500045],[-122.67548828124995,47.612353515625045],[-122.57788085937496,47.29316406250001],[-122.76777343750001,47.21835937500006],[-122.82846679687503,47.336572265624994],[-123.02758789062501,47.13891601562503],[-122.70195312500002,47.11088867187502],[-122.35380859374996,47.37158203125],[-122.40180664062497,47.78427734374998],[-122.24199218750002,48.01074218750003],[-122.5169921875,48.15966796874997],[-122.40854492187502,48.29389648437498],[-122.66899414062496,48.465234374999966],[-122.49677734374995,48.50556640625001],[-122.51274414062502,48.66943359375],[-122.56201171875001,48.777978515624994],[-122.68593749999995,48.794287109375034],[-122.72246093750002,48.85302734375003],[-122.78876953125003,48.993017578125034],[-121.40722656249994,48.993017578125034],[-119.70170898437495,48.993017578125034],[-119.27534179687494,48.99306640625005],[-118.84892578124993,48.99306640625005],[-117.99619140625002,48.99306640625005],[-116.71704101562501,48.99306640625005],[-110.74765625,48.99306640625005],[-104.77832031249997,48.993115234374955],[-98.80898437499995,48.99316406249997],[-97.52983398437493,48.99316406249997],[-96.67705078124993,48.99316406249997],[-96.25068359374993,48.99316406249997],[-95.39790039062493,48.99316406249997],[-95.16206054687493,48.991748046875045],[-95.15527343749997,49.36967773437502],[-94.85434570312495,49.304589843749994],[-94.86040039062493,49.258593750000045],[-94.80346679687497,49.0029296875]]],[[[-176.28671874999998,51.79199218750006],[-176.34965820312502,51.733300781249994],[-176.41372070312502,51.840576171875],[-176.28671874999998,51.79199218750006]]],[[[-177.87905273437502,51.64970703125002],[-178.05888671875,51.67260742187497],[-177.98637695312493,51.76425781249998],[-178.16826171874996,51.90302734375001],[-177.644482421875,51.826269531250006],[-177.87905273437502,51.64970703125002]]],[[[-177.14819335937497,51.71674804687498],[-177.67021484375002,51.701074218749994],[-177.11005859375,51.92875976562502],[-177.14819335937497,51.71674804687498]]],[[[-176.593310546875,51.86669921875],[-176.45234374999995,51.735693359375034],[-176.96162109374998,51.60366210937505],[-176.69833984374998,51.986035156249955],[-176.593310546875,51.86669921875]]],[[[179.72773437500015,51.905419921874966],[179.50390625000003,51.97958984374998],[179.6271484375001,52.03041992187502],[179.72773437500015,51.905419921874966]]],[[[177.4154296875,51.88281249999997],[177.25029296875013,51.902929687500006],[177.6696289062501,52.10302734375],[177.4154296875,51.88281249999997]]],[[[-173.5533203125,52.13627929687502],[-173.02290039062504,52.07915039062502],[-173.83579101562498,52.048193359375006],[-173.99248046874993,52.12333984374996],[-173.5533203125,52.13627929687502]]],[[[-172.464794921875,52.27226562500002],[-172.61982421874998,52.27285156250005],[-172.47041015625,52.38803710937506],[-172.31362304687497,52.32958984375006],[-172.464794921875,52.27226562500002]]],[[[-174.67739257812502,52.035009765625006],[-175.29555664062502,52.022167968749955],[-174.30615234375,52.216162109375034],[-174.43554687499997,52.317236328125034],[-174.168896484375,52.42016601562503],[-174.04560546875,52.36723632812499],[-174.12065429687493,52.13520507812498],[-174.67739257812502,52.035009765625006]]],[[[173.72275390625018,52.35957031250004],[173.40234375000009,52.40478515625],[173.77607421875004,52.49511718750003],[173.72275390625018,52.35957031250004]]],[[[172.81181640625002,53.01298828125002],[173.43603515625003,52.85205078125],[172.93515625000012,52.752099609374966],[172.49482421875004,52.93789062499999],[172.81181640625002,53.01298828125002]]],[[[-167.96435546875003,53.345117187499994],[-169.088916015625,52.83203125],[-168.68984375000002,53.227246093749955],[-168.38041992187496,53.28344726562506],[-168.28769531249998,53.500146484374966],[-167.82807617187495,53.50795898437505],[-167.96435546875003,53.345117187499994]]],[[[-166.61533203124998,53.90092773437499],[-166.37231445312494,53.99897460937498],[-166.230859375,53.93261718750006],[-166.54560546875,53.726464843749966],[-166.354541015625,53.67353515625004],[-166.85097656249997,53.45288085937503],[-167.78085937500003,53.30024414062501],[-167.13608398437503,53.526464843750006],[-167.01572265625003,53.69838867187502],[-166.80898437500002,53.64614257812505],[-166.741259765625,53.71293945312496],[-167.10561523437497,53.813378906249994],[-167.03808593749997,53.9421875],[-166.67329101562498,54.00595703124998],[-166.61533203124998,53.90092773437499]]],[[[-165.841552734375,54.070654296875006],[-166.05664062500003,54.054345703124994],[-166.08774414062498,54.16914062500001],[-165.89287109375,54.20698242187498],[-165.69287109375,54.09990234375002],[-165.841552734375,54.070654296875006]]],[[[-165.56113281249998,54.13671874999997],[-165.55063476562498,54.28452148437498],[-165.40786132812502,54.19682617187496],[-165.56113281249998,54.13671874999997]]],[[[-162.29814453124993,54.847021484375006],[-162.43388671875,54.931542968749994],[-162.26459960937504,54.983496093750006],[-162.29814453124993,54.847021484375006]]],[[[-163.476025390625,54.98071289062497],[-163.37895507812496,54.81552734374998],[-163.083251953125,54.66899414062496],[-163.35810546874995,54.73569335937506],[-164.82343749999998,54.41909179687505],[-164.887646484375,54.60781250000002],[-164.47861328124998,54.906835937500006],[-163.80712890624997,55.04907226562503],[-163.476025390625,54.98071289062497]]],[[[-159.51513671875,55.15185546875003],[-159.617724609375,55.05732421875004],[-159.54506835937497,55.22597656250002],[-159.51513671875,55.15185546875003]]],[[[-131.33974609375002,55.079833984375],[-131.32954101562498,54.887744140625045],[-131.592236328125,55.02568359374999],[-131.5654296875,55.26411132812498],[-131.33974609375002,55.079833984375]]],[[[-159.87299804687495,55.128759765625034],[-160.22705078124997,54.92270507812506],[-160.17207031249995,55.123046875],[-159.88735351562497,55.27299804687502],[-159.87299804687495,55.128759765625034]]],[[[-132.86225585937504,54.894433593749966],[-132.61723632812493,54.892431640625006],[-132.70581054687497,54.684179687500034],[-133.42905273437498,55.30380859374998],[-133.097412109375,55.213720703125006],[-132.86225585937504,54.894433593749966]]],[[[-160.329296875,55.337695312500045],[-160.34331054687493,55.25878906250006],[-160.51748046875,55.33383789062506],[-160.329296875,55.337695312500045]]],[[[-160.68491210937498,55.314794921875006],[-160.552783203125,55.38076171875002],[-160.48754882812503,55.18486328124999],[-160.79506835937497,55.14521484375001],[-160.72392578124993,55.404638671875006],[-160.68491210937498,55.314794921875006]]],[[[-133.30507812500002,55.54375],[-133.6501953125,55.26928710937506],[-133.73710937500002,55.49692382812498],[-133.30507812500002,55.54375]]],[[[-155.56601562500003,55.82119140625005],[-155.73735351562493,55.82978515625001],[-155.59394531250004,55.92431640625],[-155.56601562500003,55.82119140625005]]],[[[-130.97915039062502,55.489160156249994],[-131.187890625,55.206298828125],[-131.44755859374996,55.40878906250006],[-131.7625,55.16582031250002],[-131.84609374999997,55.41625976562497],[-131.62495117187504,55.831689453124966],[-131.26923828125004,55.95537109375002],[-130.997802734375,55.727636718750006],[-130.97915039062502,55.489160156249994]]],[[[-133.56611328125,56.33920898437498],[-133.202978515625,56.31982421875003],[-133.096630859375,56.09003906250001],[-132.59760742187504,55.89501953125],[-132.17270507812498,55.48061523437502],[-132.51127929687493,55.59394531250001],[-132.63129882812495,55.47319335937502],[-132.41787109375002,55.48291015625006],[-132.20668945312497,55.22441406249996],[-131.97641601562498,55.208593750000034],[-132.06474609375002,54.713134765625],[-133.11855468750002,55.32763671875003],[-132.95888671875002,55.39555664062502],[-133.0333984375,55.589697265625034],[-133.68017578124994,55.78515625],[-133.24150390624993,55.920800781249994],[-133.371240234375,56.035888671875],[-133.74252929687498,55.96484375],[-133.530859375,56.145654296874966],[-133.56611328125,56.33920898437498]]],[[[-132.77988281249998,56.24726562499998],[-133.03500976562498,56.34091796875006],[-132.90205078124998,56.45375976562505],[-132.62910156249995,56.411914062500045],[-132.77988281249998,56.24726562499998]]],[[[-132.11235351562493,56.109375],[-132.13295898437497,55.94326171875005],[-132.28730468749995,55.92939453124998],[-132.65991210937503,56.07817382812499],[-132.379833984375,56.49877929687497],[-132.06689453125,56.24423828124998],[-132.11235351562493,56.109375]]],[[[-154.208642578125,56.51489257812497],[-154.32221679687504,56.570605468750045],[-154.11040039062496,56.602929687499966],[-154.208642578125,56.51489257812497]]],[[[-169.755224609375,56.63505859375002],[-169.47431640624998,56.59404296875002],[-169.6326171875,56.545703125000045],[-169.755224609375,56.63505859375002]]],[[[-132.746875,56.525683593750045],[-132.94804687500002,56.56723632812498],[-132.842529296875,56.79477539062506],[-132.56796875000003,56.57583007812505],[-132.746875,56.525683593750045]]],[[[-133.98959960937503,56.84497070312497],[-133.73837890625,56.65043945312496],[-133.94970703125,56.12773437499996],[-134.18959960937502,56.07695312500002],[-134.084375,56.456347656250045],[-134.37368164062502,56.838671875000045],[-134.14326171874998,56.93232421875001],[-133.98959960937503,56.84497070312497]]],[[[-133.36621093750006,57.003515625000034],[-132.99624023437497,56.93041992187497],[-132.95917968749998,56.67705078124996],[-133.03491210937494,56.62075195312505],[-133.32895507812498,56.83007812499997],[-133.158154296875,56.495166015625045],[-133.4841796875,56.45175781249998],[-133.979443359375,57.009570312500045],[-133.36621093750006,57.003515625000034]]],[[[-153.007080078125,57.12485351562498],[-153.37460937499998,57.05190429687505],[-153.285205078125,57.18505859375],[-152.90839843750004,57.152441406250006],[-153.007080078125,57.12485351562498]]],[[[-134.96977539062496,57.351416015625034],[-134.62070312499998,56.71831054687502],[-134.68188476562503,56.216162109375034],[-134.98056640625003,56.518945312499994],[-134.88344726562497,56.679052734375034],[-135.33061523437505,56.821875],[-135.19960937499997,57.02734375],[-135.45493164062503,57.24941406250005],[-135.81230468750002,57.00952148437503],[-135.82275390625,57.280419921874966],[-135.448681640625,57.534375],[-134.96977539062496,57.351416015625034]]],[[[-152.89804687499998,57.82392578125004],[-152.42875976562493,57.82568359375003],[-152.48261718749998,57.70332031249998],[-152.21621093749997,57.577001953125006],[-152.41220703125003,57.454785156249955],[-152.94077148437498,57.49809570312499],[-152.67905273437503,57.345117187499994],[-153.274365234375,57.22636718749996],[-153.732568359375,57.052343750000034],[-153.643310546875,56.960742187500045],[-154.02734375,56.77797851562502],[-153.793212890625,56.98950195312503],[-154.24375,57.143017578124955],[-154.33896484374998,56.9208984375],[-154.67319335937498,57.44609375],[-154.11616210937498,57.651220703125006],[-153.6876953125,57.30512695312504],[-153.841552734375,57.86284179687496],[-153.48793945312497,57.73095703125],[-153.21748046875004,57.79575195312506],[-153.16044921875,57.97197265624999],[-152.85039062499993,57.896777343750045],[-152.89804687499998,57.82392578125004]]],[[[-135.73037109375002,58.244238281250034],[-135.61323242187507,57.99184570312505],[-135.346630859375,58.12412109374998],[-134.9546875,58.01533203125004],[-134.97065429687495,57.817236328125006],[-135.33847656250003,57.768652343750034],[-134.97885742187503,57.724365234375],[-134.93149414062498,57.48115234375001],[-135.564208984375,57.66640625],[-135.691943359375,57.41992187500006],[-135.91079101562502,57.44658203124999],[-136.568603515625,57.97216796875003],[-136.32197265625,58.21889648437502],[-136.14375,58.098486328125006],[-136.09438476562502,58.198144531249966],[-135.73037109375002,58.244238281250034]]],[[[-134.68027343749998,58.16166992187499],[-134.24008789062498,58.143994140624955],[-133.82275390624997,57.62866210937503],[-134.29233398437498,58.044726562500074],[-133.91113281250003,57.3525390625],[-134.51601562499997,57.042578125],[-134.48676757812495,57.48203125],[-134.92348632812497,58.354638671874966],[-134.68027343749998,58.16166992187499]]],[[[-152.416943359375,58.360205078125034],[-151.974365234375,58.30986328124999],[-152.068896484375,58.17792968750001],[-152.26835937499993,58.25170898437506],[-152.30922851562502,58.133886718750034],[-152.5982421875,58.16259765625],[-152.92841796875004,57.99370117187499],[-153.38134765625003,58.08720703125002],[-152.976123046875,58.29702148437505],[-152.771875,58.278564453125],[-152.84111328125002,58.41640625000002],[-152.416943359375,58.360205078125034]]],[[[-152.486083984375,58.485009765624966],[-152.63662109375002,58.54169921874998],[-152.3955078125,58.619384765625],[-152.486083984375,58.485009765624966]]],[[[-160.918994140625,58.57709960937498],[-161.13149414062502,58.668212890625],[-160.71513671875005,58.79521484375002],[-160.918994140625,58.57709960937498]]],[[[-148.02177734375,60.06533203125005],[-148.271875,60.05327148437499],[-148.07958984375003,60.151660156250045],[-148.02177734375,60.06533203125005]]],[[[-147.735888671875,59.81323242187503],[-147.76806640625,59.94375],[-147.180859375,60.358251953125034],[-147.01987304687498,60.33222656249998],[-147.735888671875,59.81323242187503]]],[[[-166.13544921875,60.38354492187503],[-165.72968750000004,60.31420898437503],[-165.591796875,59.913134765625045],[-166.14873046874996,59.764111328124955],[-167.13886718749998,60.00854492187503],[-167.43642578125002,60.20664062500006],[-166.836328125,60.21699218750004],[-166.47568359374998,60.382763671874955],[-166.13544921875,60.38354492187503]]],[[[-146.3939453125,60.44965820312501],[-146.10224609374998,60.41118164062499],[-146.61831054687497,60.27368164062503],[-146.70253906249997,60.40854492187498],[-146.3939453125,60.44965820312501]]],[[[-147.658251953125,60.45048828124999],[-147.787841796875,60.17792968749998],[-147.89145507812498,60.299414062500034],[-147.658251953125,60.45048828124999]]],[[[-172.74223632812496,60.45737304687498],[-172.23208007812494,60.299121093750074],[-172.63574218750003,60.328857421875],[-173.04765625000002,60.56831054687501],[-172.74223632812496,60.45737304687498]]],[[[-171.46303710937494,63.640039062499994],[-171.03486328125,63.58549804687499],[-170.29936523437502,63.68061523437501],[-169.55454101562498,63.373486328124955],[-168.71601562500004,63.310595703125045],[-168.76132812500003,63.21376953125002],[-169.364697265625,63.17114257812506],[-169.67636718750003,62.95610351562502],[-169.81860351562494,63.122363281250045],[-170.84838867187494,63.44438476562502],[-171.63183593749997,63.351220703124966],[-171.74638671874993,63.703076171874955],[-171.46303710937494,63.640039062499994]]],[[[-141.00214843750004,68.77416992187506],[-141.00214843750004,67.89755859374998],[-141.00214843750004,66.43652343750006],[-141.00214843750004,65.55991210937498],[-141.00214843750004,64.09887695312506],[-141.00214843750004,63.22226562499998],[-141.00214843750004,61.761279296875045],[-141.00214843750004,60.884667968749994],[-141.00214843750004,60.30024414062504],[-140.76274414062505,60.259130859375006],[-140.525439453125,60.218359375000034],[-140.45283203125004,60.29970703125002],[-139.97329101562497,60.183154296875074],[-139.67631835937505,60.32832031249998],[-139.23476562499997,60.339746093749994],[-139.07924804687497,60.34370117187501],[-139.07924804687497,60.279443359374966],[-139.136962890625,60.17270507812498],[-139.18515624999998,60.083593750000034],[-138.86875,59.94575195312501],[-138.317626953125,59.611132812500074],[-137.59331054687493,59.22626953124998],[-137.52089843750002,58.91538085937498],[-137.43857421875003,58.903125],[-137.2775390625,58.988183593749994],[-137.126220703125,59.04096679687498],[-136.81328125000002,59.150048828124994],[-136.57875976562502,59.15224609375002],[-136.46635742187493,59.459082031250006],[-136.27797851562502,59.48032226562506],[-136.321826171875,59.604833984375034],[-135.70258789062504,59.72875976562506],[-135.36787109374998,59.743310546874994],[-135.051025390625,59.57866210937502],[-134.94375,59.28828125000001],[-134.67724609374997,59.19926757812499],[-134.39306640625,59.009179687499994],[-134.32963867187505,58.93969726562506],[-134.21850585937503,58.849902343750045],[-133.54638671874997,58.50346679687499],[-133.27529296875,58.22285156250004],[-133.00141601562495,57.948974609375],[-132.55048828125,57.499902343749994],[-132.44248046874998,57.40673828125003],[-132.30166015624997,57.27631835937501],[-132.232177734375,57.19853515624999],[-132.27939453124998,57.14536132812498],[-132.33798828124998,57.07944335937506],[-132.15703125,57.048193359375006],[-132.03154296875,57.02656250000004],[-132.062890625,56.95336914062503],[-132.104296875,56.856787109375006],[-131.86616210937495,56.792822265625006],[-131.82426757812496,56.589990234374994],[-131.471875,56.55673828125006],[-130.649072265625,56.26367187500003],[-130.47709960937496,56.230566406250034],[-130.413134765625,56.12250976562498],[-130.09785156249995,56.10927734375002],[-130.01406249999997,55.950537109375006],[-130.2140625,55.02587890625003],[-130.57534179687497,54.769677734374966],[-130.849609375,54.80761718750006],[-131.04785156249997,55.157666015624955],[-130.74819335937502,55.31801757812502],[-131.127685546875,55.96015625000001],[-131.032763671875,56.08808593749998],[-131.78417968749997,55.876562500000034],[-131.98339843749994,55.535009765625006],[-132.15541992187502,55.59956054687501],[-132.20751953124997,55.75341796875],[-131.84384765625003,56.16010742187498],[-131.55136718749998,56.206787109375],[-131.88789062500004,56.24165039062498],[-132.18203125000002,56.42065429687506],[-132.82460937500002,57.05581054687505],[-133.465869140625,57.17216796875002],[-133.64873046874993,57.64228515624998],[-133.11704101562498,57.56621093750002],[-133.535205078125,57.83295898437501],[-133.1943359375,57.87768554687506],[-133.559375,57.924462890624994],[-133.72231445312502,57.84423828125],[-134.03110351562498,58.072167968749966],[-133.87675781249996,58.51816406249998],[-134.20883789062503,58.232958984375045],[-134.77612304687506,58.45385742187503],[-135.36367187500002,59.41943359375],[-135.50234375000002,59.202294921874994],[-135.090234375,58.245849609375],[-135.57177734374994,58.41206054687504],[-135.89755859374998,58.40019531250002],[-136.04311523437497,58.82163085937498],[-135.82636718750004,58.89794921874997],[-136.0166015625,58.87397460937498],[-136.150048828125,59.04809570312503],[-136.22583007812497,58.765478515625006],[-136.98901367187503,59.03447265624999],[-137.05903320312498,58.87373046875001],[-136.613916015625,58.809277343749955],[-136.48374023437503,58.61767578125],[-136.224609375,58.602246093749955],[-136.06147460937495,58.45273437500006],[-136.607421875,58.24399414062498],[-137.54399414062502,58.58120117187502],[-138.51489257812503,59.16591796875005],[-139.77329101562498,59.52729492187504],[-139.51303710937498,59.698095703125006],[-139.5123046875,59.95356445312501],[-139.28671874999998,59.610937500000034],[-139.22080078125003,59.819873046875045],[-138.9880859375,59.83500976562502],[-139.43144531249996,60.012255859375074],[-140.41982421874997,59.71074218750002],[-141.40830078125,59.90278320312498],[-141.408740234375,60.11767578125006],[-141.67016601562497,59.969873046874966],[-142.94565429687503,60.09697265625002],[-144.14721679687494,60.01640625000002],[-144.185498046875,60.150732421875034],[-144.901318359375,60.335156249999955],[-144.69111328125,60.66909179687502],[-145.248291015625,60.38012695312506],[-145.898876953125,60.47817382812505],[-145.67490234374998,60.65112304687503],[-146.57045898437497,60.72915039062502],[-146.39199218749997,60.810839843750045],[-146.63842773437497,60.89731445312498],[-146.59912109374994,61.05351562500002],[-146.284912109375,61.11264648437498],[-147.89111328125,60.889892578125],[-148.00512695312494,60.96855468750002],[-147.75185546874997,61.218945312499955],[-148.34189453125,61.060400390625006],[-148.34443359374998,60.853564453125045],[-148.55615234374994,60.82700195312506],[-148.25673828124997,60.67529296874997],[-148.64013671875,60.48945312500004],[-148.11918945312502,60.57514648437498],[-147.96411132812494,60.48486328124997],[-148.430712890625,59.98911132812498],[-149.2666015625,59.99829101562497],[-149.395263671875,60.10576171875002],[-149.59804687500002,59.77045898437501],[-149.7138671875,59.91958007812502],[-149.80126953124994,59.737939453124966],[-150.00532226562507,59.78442382812503],[-150.19804687499996,59.56655273437505],[-150.60737304687504,59.56337890625002],[-150.934521484375,59.249121093750034],[-151.18276367187502,59.30078124999997],[-151.73818359375002,59.18852539062502],[-151.94951171875,59.26508789062498],[-151.88461914062503,59.386328125],[-151.39960937499995,59.51630859375001],[-151.04648437499998,59.771826171875034],[-151.45009765624997,59.65039062499997],[-151.85322265625,59.78208007812498],[-151.39599609375006,60.27446289062502],[-151.35644531249997,60.72294921874999],[-150.44125976562503,61.02358398437505],[-149.07509765624997,60.87641601562498],[-150.05327148437496,61.17109374999998],[-149.433544921875,61.50078125000002],[-149.97568359374998,61.27934570312502],[-150.61225585937495,61.301123046875006],[-151.59350585937494,60.979638671874966],[-152.54091796874997,60.265429687500045],[-153.025,60.29565429687497],[-152.660107421875,59.99721679687502],[-153.21123046875002,59.84272460937498],[-153.09360351562503,59.70913085937505],[-153.65253906250004,59.64702148437499],[-154.17832031250003,59.155566406250074],[-153.41826171875,58.9599609375],[-153.43759765625003,58.754833984374955],[-154.289013671875,58.30434570312502],[-154.247021484375,58.15942382812497],[-155.006884765625,58.01606445312501],[-155.77797851562497,57.56821289062498],[-156.43588867187498,57.359960937500006],[-156.62900390624998,57.00996093750001],[-158.41440429687498,56.435839843750045],[-158.5521484375,56.31269531249998],[-158.27563476562497,56.19624023437498],[-158.5046875,56.062109375],[-158.59116210937503,56.18452148437498],[-158.78984375000002,55.98691406250006],[-159.52324218749993,55.81000976562498],[-159.65966796875003,55.625927734374955],[-159.77138671874997,55.84111328125002],[-160.49931640625002,55.53730468750004],[-161.38193359374998,55.371289062499955],[-161.44379882812495,55.513281250000034],[-161.202099609375,55.54355468750006],[-161.51694335937503,55.61840820312503],[-162.073974609375,55.13930664062505],[-162.38637695312497,55.05234375],[-162.63037109375003,55.24667968749998],[-162.67436523437505,54.99658203125],[-162.86503906249996,54.954541015624955],[-163.11962890624997,55.06469726562503],[-163.131103515625,54.916552734375045],[-163.33530273437503,54.83916015624999],[-163.27880859374997,55.12182617187503],[-162.906591796875,55.19555664062503],[-161.69731445312502,55.9072265625],[-161.215625,56.02143554687498],[-160.8986328125,55.99365234375],[-161.00537109375,55.88715820312498],[-160.80283203125003,55.754443359375045],[-160.70634765625002,55.870458984375034],[-160.29169921875,55.80507812500005],[-160.53906250000006,56.00629882812501],[-160.30205078125,56.31411132812502],[-158.91801757812502,56.882177734375006],[-158.675146484375,56.79487304687498],[-158.66079101562502,57.03940429687498],[-158.32094726562497,57.29790039062499],[-157.84575195312496,57.52807617187497],[-157.4619140625,57.506201171875034],[-157.697216796875,57.679443359375],[-157.610888671875,58.050830078125074],[-157.19370117187498,58.19418945312506],[-157.48837890624998,58.25371093750002],[-157.52363281249998,58.421337890624955],[-156.97465820312496,58.736328125],[-156.80888671875005,59.13427734375],[-157.14204101562504,58.87763671875001],[-158.19091796875003,58.6142578125],[-158.50317382812494,58.85034179687497],[-158.42563476562498,58.99931640625002],[-158.080517578125,58.97744140625002],[-158.422802734375,59.08984375],[-158.67827148437502,58.92939453124998],[-158.80947265625002,58.973876953125],[-158.78862304687493,58.440966796875045],[-158.95068359375,58.404541015625],[-159.67026367187498,58.9111328125],[-159.92021484375,58.819873046875074],[-160.36313476562498,59.05117187500002],[-161.246826171875,58.799462890624994],[-161.36132812499994,58.66953124999998],[-162.144921875,58.64423828124998],[-161.724365234375,58.794287109375006],[-161.64438476562498,59.109667968750045],[-161.9810546875,59.14614257812502],[-161.82871093749998,59.588623046875],[-162.421337890625,60.28398437500002],[-161.96201171875003,60.695361328125045],[-162.68496093749997,60.268945312499966],[-162.57075195312495,59.98974609375],[-163.68037109374998,59.80151367187503],[-164.14282226562497,59.89677734374999],[-165.02651367187497,60.500634765624994],[-165.35380859375002,60.54121093750001],[-164.80517578125,60.89204101562498],[-164.31850585937497,60.77128906249999],[-164.37236328125002,60.59184570312502],[-163.999560546875,60.76606445312498],[-163.72998046874997,60.589990234374994],[-163.420947265625,60.757421875],[-163.90654296874996,60.85380859375002],[-163.58691406249994,60.902978515624994],[-163.74902343750003,60.9697265625],[-163.99462890624997,60.86469726562501],[-165.11484375,60.93281250000004],[-164.86899414062503,61.11176757812498],[-165.27978515624994,61.169628906249955],[-165.27363281250004,61.27485351562498],[-165.56586914062498,61.10234375000002],[-165.86396484375004,61.33569335937503],[-165.84531249999998,61.536230468750034],[-166.152734375,61.545947265625074],[-166.16811523437502,61.65083007812501],[-165.80893554687503,61.69609375000002],[-166.07880859375,61.803125],[-165.61279296875003,61.86928710937502],[-165.707275390625,62.10043945312506],[-165.19453125,62.47353515625002],[-164.75786132812493,62.496728515624966],[-164.589453125,62.709375],[-164.79267578125,62.623193359374966],[-164.79965820312503,62.918066406250006],[-164.384228515625,63.03046874999998],[-164.40903320312503,63.21503906250001],[-163.94287109375,63.247216796874994],[-163.61630859374998,63.125146484374994],[-163.73784179687496,63.016406250000045],[-163.504345703125,63.105859374999966],[-163.28784179687494,63.046435546875045],[-162.621484375,63.26582031249998],[-162.28281250000003,63.529199218749994],[-161.97397460937498,63.45292968749999],[-161.09970703125003,63.557910156250045],[-160.778564453125,63.818945312500034],[-160.987548828125,64.25126953125002],[-161.49072265625003,64.43378906249998],[-160.93193359374996,64.5791015625],[-160.855908203125,64.755615234375],[-161.13017578125005,64.92543945312505],[-161.759375,64.816259765625],[-162.80703124999997,64.37421875000001],[-163.20390625,64.65200195312502],[-163.14433593750002,64.423828125],[-163.71308593749998,64.588232421875],[-164.978759765625,64.45366210937502],[-166.1427734375,64.58276367187503],[-166.48139648437498,64.72807617187507],[-166.415234375,64.926513671875],[-166.92841796875,65.15708007812498],[-166.15703125,65.28583984375001],[-167.40400390625,65.42211914062497],[-168.08837890624997,65.65776367187502],[-166.39873046875002,66.14443359375005],[-165.62993164062496,66.131201171875],[-165.77617187500002,66.31904296875001],[-164.46049804687502,66.58842773437499],[-163.63823242187502,66.57465820312504],[-163.89394531249997,66.57587890625001],[-164.03374023437493,66.21552734374995],[-163.69536132812502,66.08383789062503],[-161.93369140625003,66.04287109374997],[-161.45541992187503,66.28139648437497],[-161.03427734375003,66.18881835937503],[-161.12031249999995,66.334326171875],[-161.91689453124997,66.41181640624998],[-162.54365234375004,66.80512695312501],[-162.36162109375,66.94731445312502],[-161.591015625,66.45952148437502],[-160.23168945312503,66.420263671875],[-160.360888671875,66.6125],[-160.864013671875,66.67084960937501],[-161.39804687499998,66.55185546875],[-161.85668945312497,66.70034179687497],[-161.719921875,67.02055664062502],[-163.5318359375,67.10258789062502],[-164.1251953125,67.60673828125007],[-166.786279296875,68.35961914062497],[-166.38051757812502,68.425146484375],[-166.20908203125,68.88535156250003],[-165.04394531249994,68.882470703125],[-163.867919921875,69.03666992187505],[-161.88095703125003,70.33173828125001],[-162.073876953125,70.16196289062498],[-160.9962890625,70.30458984375],[-160.11713867187495,70.59121093750002],[-159.86567382812498,70.27885742187499],[-159.81499023437496,70.49707031250003],[-159.38676757812493,70.52451171875003],[-160.081591796875,70.63486328125003],[-159.680908203125,70.786767578125],[-159.31450195312496,70.87851562500003],[-159.251171875,70.7484375],[-157.909375,70.860107421875],[-156.47021484374994,71.40766601562501],[-156.469970703125,71.29155273437507],[-155.57944335937503,71.12109374999997],[-156.14658203125,70.92783203125003],[-155.97353515625002,70.84199218749995],[-155.16684570312498,71.09921875000006],[-154.19521484375002,70.80112304687498],[-153.23291015625,70.93256835937504],[-152.49121093749994,70.88095703125],[-152.23291015625,70.81035156249999],[-152.39921875,70.62045898437503],[-151.76904296875,70.56015625],[-151.94467773437498,70.45209960937501],[-149.26943359374997,70.50078124999999],[-147.70537109375,70.21723632812495],[-145.82314453124997,70.16005859375002],[-145.19736328125003,70.00869140625002],[-143.218310546875,70.11625976562499],[-142.70786132812498,70.03378906249998],[-141.40791015625,69.65336914062502],[-141.00214843750004,69.65078125000002],[-141.00214843750004,68.77416992187506]]]]},"properties":{"name":"United States","childNum":76}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[71.20615234375006,39.892578125],[71.15625,39.88344726562502],[71.06425781250002,39.88491210937505],[71.01171874999997,39.895117187500006],[71.04365234375004,39.97631835937503],[71.04482421875005,39.992529296875034],[70.96064453125004,40.087988281250034],[71.00546875,40.15229492187498],[71.0241210937501,40.14916992187497],[71.08037109375007,40.07988281249999],[71.2287109375001,40.04814453124999],[71.20615234375006,39.892578125]]],[[[70.94677734374997,42.24868164062505],[70.97900390625003,42.26655273437504],[71.03603515625,42.28466796875],[71.12998046875006,42.25],[71.21269531250002,42.20644531250005],[71.23232421875005,42.18627929687503],[71.22851562499997,42.16289062499996],[70.18095703125007,41.571435546874994],[70.734375,41.400537109374994],[70.86044921875006,41.22490234375002],[71.11074218750005,41.152636718750045],[71.29882812500003,41.152490234374994],[71.39306640625003,41.123388671875034],[71.40839843750004,41.13603515625002],[71.42089843750003,41.341894531250034],[71.60625,41.367431640625],[71.66494140625,41.54121093749998],[71.70068359374997,41.454003906249966],[71.75771484375005,41.42802734375002],[71.79248046875003,41.41313476562499],[71.85800781250006,41.311376953125034],[71.8786132812501,41.195019531249955],[71.95849609375003,41.18706054687502],[72.05244140625004,41.16474609375001],[72.1154296875001,41.18657226562502],[72.1642578125001,41.173730468749966],[72.18095703125002,41.11845703124999],[72.18730468750002,41.02592773437499],[72.2130859375001,41.014257812500006],[72.36406250000002,41.04345703125],[72.65830078125,40.86992187499999],[73.13212890625002,40.82851562499999],[72.6041015625,40.52543945312499],[72.40205078125004,40.578076171874955],[72.3892578125,40.427392578124994],[72.13125,40.438623046874966],[71.69248046875,40.15234375],[71.30468749999997,40.28691406249996],[70.990625,40.2548828125],[70.95800781250003,40.238867187500034],[70.653125,40.201171875],[70.37158203125003,40.38413085937506],[70.75107421875006,40.721777343750006],[70.40195312500006,41.03510742187498],[69.71289062500003,40.65698242187503],[69.35722656250002,40.76738281249996],[69.20625,40.566552734374994],[69.27490234374997,40.19809570312498],[68.63066406250007,40.16708984374998],[68.9720703125,40.08994140624998],[68.80468750000003,40.05034179687499],[68.86875,39.90747070312503],[68.63896484375007,39.8388671875],[68.46328125,39.53671874999998],[67.71904296875007,39.62138671875002],[67.426171875,39.46557617187497],[67.3576171875001,39.216699218749994],[67.64833984375005,39.13105468750004],[67.69443359375006,38.99462890625003],[68.13251953125004,38.927636718749966],[68.08720703125002,38.47353515625002],[68.3502929687501,38.211035156250006],[67.81435546875005,37.48701171875004],[67.7980468750001,37.244970703125006],[67.75898437500004,37.172216796875034],[67.75292968749997,37.199804687500034],[67.7,37.227246093749955],[67.60742187499997,37.22250976562506],[67.5172851562501,37.26665039062499],[67.44169921875007,37.25800781250001],[67.3197265625,37.209570312500006],[67.1955078125001,37.23520507812498],[67.06884765624997,37.334814453125006],[66.82773437500006,37.37128906249998],[66.52226562500007,37.34848632812506],[66.51064453125,37.45869140625004],[66.51132812500006,37.59916992187496],[66.52558593750004,37.785742187500034],[66.60625,37.98671875000005],[65.97119140624997,38.244238281250006],[65.612890625,38.23857421875002],[64.3099609375,38.97729492187497],[63.76367187500003,39.16054687499999],[62.48320312500002,39.97563476562496],[61.90283203124997,41.09370117187501],[61.496972656249994,41.276074218749955],[61.2423828125001,41.18920898437503],[60.454980468749994,41.221630859374955],[60.089648437500074,41.39941406250003],[60.07558593750005,41.759667968749966],[60.20078125000006,41.803125],[59.94179687499999,41.97353515625002],[59.98515625000002,42.21171875],[59.35429687500002,42.32329101562496],[58.5890625000001,42.778466796874966],[58.477148437500006,42.66284179687503],[58.15156250000004,42.628076171874966],[58.474414062500074,42.29936523437496],[58.02890625,42.48764648437506],[57.814257812500074,42.18984375000005],[57.290625,42.123779296875],[56.96406250000004,41.856542968750006],[57.11884765625004,41.35029296874998],[57.01796875,41.26347656249996],[55.97744140625005,41.32221679687504],[55.97568359375006,44.99492187499996],[58.555273437500006,45.55537109375001],[61.007910156250006,44.39379882812497],[61.99023437500003,43.492138671874955],[63.20703125000003,43.62797851562502],[64.44316406250007,43.55117187499999],[64.9054687500001,43.714697265625006],[65.49619140625,43.310546875],[65.80302734375002,42.87695312500006],[66.1002929687501,42.99082031249998],[66.00957031250007,42.00488281250003],[66.49863281250006,41.99487304687503],[66.70966796875004,41.17915039062501],[67.9357421875001,41.19658203125002],[68.11308593750007,41.02861328124999],[68.04765625000007,40.80927734374998],[68.29189453125,40.656103515625034],[68.57265625,40.62265624999998],[68.58408203125,40.876269531250045],[69.15361328125002,41.42524414062498],[70.94677734374997,42.24868164062505]]]]},"properties":{"name":"Uzbekistan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-61.17451171875001,13.158105468749966],[-61.268457031249966,13.287695312499991],[-61.13896484374996,13.358740234374991],[-61.17451171875001,13.158105468749966]]]},"properties":{"name":"St. Vin. and Gren.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-60.99790039062498,8.867333984374966],[-61.069189453125034,8.947314453125003],[-60.91582031249996,9.070312500000014],[-60.86142578124998,8.949609375000037],[-60.99790039062498,8.867333984374966]]],[[[-60.821191406249966,9.138378906250026],[-60.94140625000003,9.105566406250006],[-60.73583984374997,9.203320312500026],[-60.821191406249966,9.138378906250026]]],[[[-63.84936523437494,11.131005859374994],[-63.917626953124994,10.887548828125048],[-64.40234375,10.981591796875023],[-64.21367187500002,11.086132812499997],[-64.0283203125,11.00185546874998],[-63.84936523437494,11.131005859374994]]],[[[-60.742138671874926,5.202050781250037],[-60.71196289062499,5.191552734375023],[-60.671972656250034,5.164355468749989],[-60.603857421875006,4.94936523437498],[-61.00283203125002,4.535253906249991],[-61.28007812500002,4.516894531249974],[-61.82084960937496,4.197021484375],[-62.153125,4.098388671874986],[-62.41064453124994,4.156738281249972],[-62.71210937499998,4.01791992187502],[-62.85698242187502,3.593457031249969],[-63.33867187500002,3.943896484375045],[-64.02148437500003,3.929101562500051],[-64.19248046874995,4.126855468750009],[-64.57636718750001,4.139892578125],[-64.788671875,4.276025390625023],[-64.66899414062496,4.01181640625002],[-64.22109375000002,3.587402343749972],[-64.04658203124998,2.502392578124997],[-63.389257812500006,2.411914062500045],[-63.43251953124994,2.155566406250045],[-64.00849609374995,1.931591796874969],[-64.20502929687493,1.52949218750004],[-65.10375976562497,1.108105468749983],[-65.47338867187497,0.691259765624977],[-65.55605468750002,0.687988281250014],[-65.52299804687493,0.843408203124966],[-65.68144531249999,0.983447265624989],[-66.06005859375003,0.78535156250004],[-66.34711914062498,0.7671875],[-66.87602539062499,1.223046875000037],[-67.21083984375,2.390136718750043],[-67.61870117187496,2.793603515624994],[-67.85908203124998,2.793603515624994],[-67.3111328125,3.41586914062502],[-67.66162109375,3.864257812499986],[-67.85527343750002,4.506884765624989],[-67.82490234374995,5.270458984375026],[-67.47387695312503,5.929980468750003],[-67.48198242187499,6.18027343750002],[-67.85917968749999,6.289892578124963],[-68.47177734375,6.156542968749974],[-69.42714843749997,6.123974609374997],[-70.12919921874999,6.95361328125],[-70.73715820312503,7.090039062499997],[-71.12861328124993,6.98671875],[-72.00664062499993,7.032617187500023],[-72.20771484374995,7.37026367187498],[-72.47197265624996,7.524267578124991],[-72.39033203124995,8.287060546874969],[-72.66542968749994,8.62758789062498],[-72.79638671874997,9.10898437499999],[-73.05839843749999,9.259570312500031],[-73.36621093749997,9.194140625000017],[-73.00654296874998,9.789160156250006],[-72.86933593750001,10.49125976562496],[-72.690087890625,10.835839843749994],[-72.24848632812501,11.196435546875009],[-71.95810546875,11.66640625],[-71.31972656249997,11.861914062500048],[-71.95693359375002,11.569921874999977],[-71.835107421875,11.190332031250009],[-71.6416015625,11.013525390625048],[-71.73090820312498,10.994677734375017],[-71.59433593749995,10.657373046875051],[-72.11284179687499,9.815576171874966],[-71.61953124999994,9.047949218749991],[-71.24140625000001,9.160449218750003],[-71.08583984375002,9.348242187499977],[-71.05268554687501,9.705810546874986],[-71.49423828125,10.533203124999972],[-71.46953124999993,10.964160156250017],[-70.23251953124998,11.372998046874997],[-70.09711914062493,11.519775390624972],[-69.80478515624998,11.47421875000002],[-69.81733398437495,11.672070312499997],[-70.19257812499993,11.62460937500002],[-70.28652343749997,11.886035156249989],[-70.20278320312497,12.098388671874986],[-70.00395507812496,12.177880859375023],[-69.63159179687494,11.479931640625026],[-68.827978515625,11.431738281249977],[-68.39863281249995,11.160986328124977],[-68.29628906249997,10.689355468749994],[-68.13994140624999,10.492724609374989],[-66.24721679687497,10.632226562499994],[-65.85175781249995,10.257763671874997],[-65.12910156249998,10.070068359375043],[-64.85048828125,10.098095703124969],[-64.188330078125,10.457812499999989],[-63.73188476562501,10.503417968750043],[-64.24750976562498,10.54257812500002],[-64.298193359375,10.635156249999966],[-61.879492187500006,10.741015625000031],[-62.379980468750006,10.546875],[-62.91357421875,10.531494140624986],[-62.68583984374996,10.289794921875043],[-62.740576171875006,10.056152343750043],[-62.55034179687499,10.200439453125043],[-62.320410156250034,9.783056640625006],[-62.22114257812498,9.882568359375028],[-62.15336914062493,9.821777343749986],[-62.15532226562499,9.979248046875014],[-62.077099609374926,9.97504882812504],[-61.73593749999998,9.631201171874977],[-61.76591796874996,9.813818359374963],[-61.58886718749994,9.894531249999986],[-60.79248046874997,9.360742187500037],[-61.02314453124998,9.15458984374996],[-61.24726562499998,8.600341796875014],[-61.61870117187499,8.59746093749996],[-61.30400390624999,8.410400390625043],[-60.800976562499926,8.592138671875034],[-60.16748046875,8.616992187500031],[-60.01752929687501,8.549316406250014],[-59.83164062499998,8.305957031250003],[-59.84907226562498,8.248681640624966],[-59.96484375000003,8.191601562499969],[-59.99072265624997,8.16201171874998],[-60.032421874999926,8.053564453125006],[-60.51362304687501,7.813183593749969],[-60.71865234374994,7.535937499999974],[-60.606542968750006,7.320849609375031],[-60.63330078124997,7.211083984374966],[-60.58320312499998,7.156201171874969],[-60.523193359375,7.143701171875009],[-60.464941406250034,7.166552734375045],[-60.39238281249999,7.164550781249986],[-60.34506835937495,7.15],[-60.32548828124996,7.133984374999983],[-60.32207031249996,7.092041015625043],[-60.35209960937496,7.002880859374997],[-60.39501953125,6.945361328125003],[-60.717919921874966,6.768310546875],[-61.14560546874998,6.694531249999983],[-61.20361328124997,6.588378906250028],[-61.181591796874926,6.513378906250026],[-61.15102539062502,6.446533203124986],[-61.15229492187501,6.385107421875006],[-61.12871093749999,6.214306640625026],[-61.15947265624996,6.174414062499977],[-61.22495117187498,6.129199218750003],[-61.303125,6.049511718750026],[-61.39082031250001,5.938769531250017],[-61.376806640625006,5.906982421875028],[-61.167187499999926,5.674218750000037],[-60.95400390625002,5.437402343750023],[-60.742138671874926,5.202050781250037]]]]},"properties":{"name":"Venezuela","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[-64.765625,17.794335937499994],[-64.58046874999994,17.750195312499983],[-64.88911132812495,17.701708984375045],[-64.765625,17.794335937499994]]]},"properties":{"name":"U.S. Virgin Is.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[104.06396484375003,10.390820312500011],[104.01845703125,10.029199218749966],[103.84951171875005,10.371093749999986],[104.06396484375003,10.390820312500011]]],[[[107.52128906250007,20.926611328124977],[107.39921875000007,20.903466796874966],[107.55126953125003,21.034033203125006],[107.52128906250007,20.926611328124977]]],[[[107.60273437500004,21.21679687500003],[107.40351562500004,21.093652343749994],[107.47626953125004,21.268945312499994],[107.60273437500004,21.21679687500003]]],[[[107.97265624999997,21.507958984375023],[107.40996093750002,21.284814453125023],[107.35429687500007,21.055175781250057],[107.1647460937501,20.94873046875003],[106.68339843750007,21.000292968750074],[106.75341796875003,20.73505859375004],[106.55078124999997,20.52656250000001],[106.57285156250012,20.392187499999977],[105.98408203125004,19.939062500000034],[105.62177734375004,18.96630859375003],[105.88828125000006,18.502490234375045],[106.49902343749997,17.946435546874994],[106.47890625000005,17.719580078125063],[106.3705078125,17.746875],[107.83378906250002,16.322460937499983],[108.02939453125012,16.331103515625074],[108.82128906249997,15.377929687500028],[109.30332031250012,13.856445312500043],[109.271875,13.279345703124974],[109.42392578125006,12.955957031249994],[109.44492187500006,12.599609375000057],[109.33554687500012,12.751904296874997],[109.21894531250004,12.64580078124996],[109.30468750000003,12.391162109375045],[109.20683593750007,12.415380859375006],[109.1986328125,11.724853515625014],[109.03964843750012,11.592675781249994],[108.98671875,11.336376953124997],[108.09492187500004,10.897265624999989],[108.0013671875,10.720361328125009],[107.26152343750007,10.39838867187504],[107.00664062500002,10.66054687499998],[106.94746093750004,10.400341796874997],[106.72734375000007,10.535644531250028],[106.605859375,10.46494140625002],[106.74121093750003,10.444384765625003],[106.75742187500006,10.295800781250023],[106.46406250000004,10.298291015624997],[106.78525390625012,10.116455078124986],[106.59560546875005,9.859863281250028],[106.1364257812501,10.221679687500014],[106.56435546875005,9.715625],[106.48408203125004,9.559423828125006],[105.83095703125005,10.000732421875028],[106.15859375,9.59414062499998],[106.16835937500005,9.396728515625],[105.50097656249997,9.093212890624983],[105.11435546875006,8.629199218750031],[104.77041015625,8.59765625],[104.89628906250007,8.746630859374974],[104.81855468750004,8.801855468750034],[104.84521484375003,9.606152343750026],[105.08447265625003,9.99570312499999],[104.8019531250001,10.202734374999977],[104.66347656250005,10.169921875000043],[104.42636718750006,10.411230468749991],[104.85058593749997,10.534472656249974],[105.04638671874997,10.701660156250014],[105.04570312500002,10.911376953125014],[105.3146484375001,10.845166015625026],[105.40576171875003,10.95161132812504],[105.75507812500004,10.989990234375043],[105.85332031250007,10.86357421874996],[106.16396484375005,10.794921875],[106.16093750000002,11.037109375000057],[105.85605468750006,11.294287109375048],[105.85146484375005,11.635009765625],[106.0060546875001,11.758007812500011],[106.39921875000007,11.687011718750028],[106.41386718750002,11.9484375],[106.70009765625,11.979296874999974],[107.21210937500004,12.30400390624996],[107.39335937500002,12.260498046874972],[107.50644531250006,12.364550781250031],[107.47539062500002,13.030371093749963],[107.60546874999997,13.437792968750017],[107.3314453125,14.126611328125009],[107.51943359375005,14.705078125],[107.51376953125012,14.817382812500057],[107.52451171875012,14.871826171875043],[107.50468750000007,14.915917968749966],[107.48037109375,14.979882812500037],[107.55527343750006,15.057031250000023],[107.58964843750002,15.118457031250017],[107.63369140625005,15.18984375],[107.653125,15.255224609374991],[107.62167968750006,15.309863281250017],[107.56425781250002,15.391601562499972],[107.45957031250012,15.4658203125],[107.33876953125,15.560498046875011],[107.27939453125006,15.618701171875045],[107.16591796875005,15.802490234375028],[107.1888671875,15.838623046875],[107.36064453125002,15.921728515624977],[107.3919921875,15.951660156250028],[107.39638671875,16.04301757812499],[106.93066406249997,16.353125],[106.8927734375001,16.396533203125074],[106.85107421875003,16.515625],[106.83242187500005,16.526269531250023],[106.79160156250006,16.490332031250006],[106.73955078125007,16.452539062500023],[106.6564453125001,16.49262695312501],[106.54619140625002,16.650732421874977],[106.53369140625003,16.821044921875057],[106.52597656250006,16.876611328124994],[106.50224609375002,16.95410156249997],[106.26953125000003,17.21679687500003],[106.00625,17.415283203125057],[105.69140625000003,17.737841796875045],[105.58847656250012,17.983691406250045],[105.51855468749997,18.077441406250045],[105.45820312500004,18.15429687499997],[105.11455078125002,18.40527343750003],[105.08701171875006,18.496240234374994],[105.14541015625,18.616796875000063],[105.14648437500003,18.650976562500006],[103.89160156250003,19.304980468750017],[103.89638671875,19.339990234375023],[103.93203125,19.366064453125006],[104.0275390625001,19.42045898437499],[104.062890625,19.48256835937505],[104.05156250000007,19.564160156249955],[104.01347656250007,19.64648437500003],[104.03203125000002,19.675146484375006],[104.06279296875007,19.678417968749983],[104.25986328125006,19.685498046874983],[104.5462890625,19.61054687500001],[104.58789062500003,19.61875],[104.74316406250003,19.754736328124977],[104.80175781249997,19.83613281250004],[104.81513671875004,19.90400390625001],[104.9279296875001,20.01811523437499],[104.92919921875003,20.082812500000017],[104.88867187500003,20.169091796875023],[104.84785156250004,20.202441406250045],[104.69873046875003,20.20532226562503],[104.67695312500004,20.224707031249977],[104.66191406250007,20.28901367187501],[104.65644531250004,20.32851562499999],[104.6188476562501,20.37451171875003],[104.49619140625006,20.413671875],[104.39218750000012,20.424755859374955],[104.36777343750012,20.44140624999997],[104.40781250000012,20.48574218750005],[104.47861328125006,20.529589843750017],[104.53271484374997,20.55488281250001],[104.58320312500004,20.646679687499955],[104.34960937499997,20.821093750000074],[104.19531249999997,20.913964843749966],[104.10136718750002,20.94550781250001],[103.63505859375007,20.697070312500017],[103.46357421875004,20.779833984375017],[103.21074218750002,20.840625],[103.10449218749997,20.891650390625045],[102.88378906250003,21.202587890624983],[102.85117187500006,21.26591796874999],[102.94960937500005,21.681347656249983],[102.84521484374997,21.73476562500005],[102.81591796874997,21.807373046875],[102.7982421875,21.797949218750034],[102.77109375000006,21.709667968749983],[102.73857421875002,21.67792968750001],[102.66201171875005,21.67602539062497],[102.58251953125003,21.90429687500003],[102.12744140624997,22.379199218750045],[102.1759765625001,22.414648437500006],[102.2370117187501,22.466015624999983],[102.40644531250004,22.70800781249997],[102.47089843750004,22.75092773437501],[102.98193359374997,22.4482421875],[103.32666015625003,22.769775390625057],[103.49296875000007,22.587988281250034],[103.62021484375006,22.782031250000045],[103.94150390625006,22.540087890625045],[104.14306640624997,22.800146484375006],[104.37177734375004,22.704052734374983],[104.68730468750002,22.822216796874983],[104.86474609375003,23.136376953125023],[105.27539062500003,23.34521484375003],[105.8429687500001,22.922802734374955],[106.14843749999997,22.970068359375006],[106.2790039062501,22.857470703125045],[106.54179687500007,22.908349609375023],[106.78027343749997,22.778906250000034],[106.55039062500006,22.501367187499994],[106.66357421875003,21.97890625000005],[106.97099609375002,21.923925781250034],[107.35117187500012,21.60888671874997],[107.75927734374997,21.655029296875057],[107.97265624999997,21.507958984375023]]]]},"properties":{"name":"Vietnam","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[169.49130859375006,-19.54013671875002],[169.34726562500006,-19.623535156249957],[169.2174804687501,-19.476367187500003],[169.24746093750005,-19.3447265625],[169.49130859375006,-19.54013671875002]]],[[[169.334375,-18.940234375000017],[168.98691406250006,-18.87128906250001],[169.01582031250004,-18.64375],[169.14384765625002,-18.63105468750001],[169.334375,-18.940234375000017]]],[[[168.44580078124997,-17.54218750000004],[168.58496093750003,-17.695898437500006],[168.52460937500004,-17.798046875000026],[168.15820312500003,-17.710546874999963],[168.2731445312501,-17.552246093749957],[168.44580078124997,-17.54218750000004]]],[[[168.44677734375003,-16.778808593749957],[168.18144531250002,-16.804003906250017],[168.13535156250006,-16.636914062499997],[168.44677734375003,-16.778808593749957]]],[[[168.29667968750007,-16.33652343749999],[167.92900390625002,-16.22871093749997],[168.16386718750002,-16.081640625000034],[168.29667968750007,-16.33652343749999]]],[[[167.4125,-16.095898437499997],[167.83662109375004,-16.449707031249957],[167.44931640625012,-16.554980468750003],[167.34921875000006,-16.15449218750004],[167.15146484375006,-16.080468749999966],[167.19951171875002,-15.885058593750031],[167.33574218750007,-15.916699218749997],[167.4125,-16.095898437499997]]],[[[167.9113281250001,-15.435937500000023],[167.67421875,-15.4515625],[168.00253906250012,-15.283203124999986],[167.9113281250001,-15.435937500000023]]],[[[166.74580078125004,-14.826855468750011],[166.81015625000012,-15.15742187500004],[167.0755859375,-14.935644531249977],[167.20078125000012,-15.443066406249969],[167.0939453125001,-15.580859374999974],[166.75830078125003,-15.631152343750003],[166.63105468750004,-15.406054687499974],[166.56738281250003,-14.641796874999969],[166.74580078125004,-14.826855468750011]]],[[[167.58486328125,-14.260937500000011],[167.43027343750012,-14.294921875],[167.41074218750006,-14.19746093750004],[167.50644531250012,-14.142187499999977],[167.58486328125,-14.260937500000011]]],[[[167.48886718750006,-13.907226562499972],[167.3917968750001,-13.788378906250017],[167.48105468750006,-13.709472656250014],[167.48886718750006,-13.907226562499972]]]]},"properties":{"name":"Vanuatu","childNum":10}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-171.4541015625,-14.04648437500002],[-171.9119140625,-14.001660156250026],[-172.04589843750003,-13.857128906249983],[-171.60390624999997,-13.879199218750045],[-171.4541015625,-14.04648437500002]]],[[[-172.33349609375,-13.46523437499999],[-172.17685546874998,-13.68466796875002],[-172.224951171875,-13.804296874999963],[-172.535693359375,-13.791699218749983],[-172.77851562499998,-13.516796875000011],[-172.33349609375,-13.46523437499999]]]]},"properties":{"name":"Samoa","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[53.76318359374997,12.636816406249991],[54.18740234375005,12.664013671875026],[54.511132812499994,12.552783203125017],[54.12949218750006,12.360644531250045],[53.71884765625006,12.318994140624994],[53.31582031250005,12.533154296875011],[53.53496093750002,12.715771484374997],[53.76318359374997,12.636816406249991]]],[[[42.75585937500003,13.70429687500004],[42.689746093750074,13.673632812500017],[42.7941406250001,13.766113281250028],[42.75585937500003,13.70429687500004]]],[[[42.787402343750074,13.971484375000031],[42.69404296875004,14.007910156249991],[42.76210937500005,14.067480468750048],[42.787402343750074,13.971484375000031]]],[[[53.08564453125004,16.648388671874955],[52.327734375,16.293554687500063],[52.17402343750004,15.956835937500017],[52.2174804687501,15.655517578125],[51.3224609375001,15.22626953125004],[49.34990234375002,14.637792968749977],[48.66835937499999,14.050146484374977],[47.9899414062501,14.048095703125],[47.40771484374997,13.661621093750057],[46.78886718750002,13.465576171874986],[45.65732421875006,13.338720703124991],[45.03867187500006,12.815869140624969],[44.617773437500006,12.817236328124977],[44.00585937499997,12.607666015625],[43.634375,12.744482421874991],[43.487597656250074,12.69882812500002],[43.23193359375003,13.267089843750057],[43.2824218750001,13.692529296875037],[43.08906250000004,14.010986328125],[42.93642578125005,14.938574218749963],[42.85566406250004,15.132958984375037],[42.65781250000006,15.232812500000051],[42.79902343750004,15.326269531249991],[42.71718750000005,15.654638671875006],[42.83964843750002,16.032031250000074],[42.79931640624997,16.37177734375001],[43.16503906249997,16.689404296874955],[43.19091796875003,17.359375],[43.41796875000003,17.516259765625023],[43.91699218749997,17.32470703124997],[45.14804687500006,17.427441406249955],[45.5353515625001,17.30205078124999],[46.72763671875006,17.26557617187501],[46.97568359375006,16.953466796875034],[47.14355468749997,16.946679687499966],[47.44179687499999,17.111865234375045],[47.57958984374997,17.448339843750034],[48.17216796875002,18.156933593749983],[49.04199218750003,18.58178710937503],[51.977636718750006,18.996142578125074],[53.08564453125004,16.648388671874955]]]]},"properties":{"name":"Yemen","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[37.85693359375003,-46.94423828124998],[37.5900390625001,-46.90800781250006],[37.78955078124997,-46.8375],[37.85693359375003,-46.94423828124998]]],[[[31.799609375000017,-23.8921875],[31.98583984374997,-24.460644531249983],[31.921679687500017,-25.96875],[31.335156250000097,-25.755566406249997],[31.207324218750074,-25.843359375000034],[31.08808593750004,-25.980664062500026],[30.803320312500006,-26.41347656250001],[30.806738281250006,-26.78525390624999],[30.88330078124997,-26.792382812500023],[30.938085937500006,-26.91582031250003],[31.06337890625005,-27.1123046875],[31.274023437500063,-27.23837890625002],[31.469531250000017,-27.29550781250002],[31.74257812500005,-27.309960937500037],[31.95839843750005,-27.305859375],[31.946093750000017,-27.173632812499974],[31.96718750000005,-26.96064453125001],[31.994726562500006,-26.817480468749977],[32.024804687499994,-26.81113281250002],[32.112890625,-26.83945312500002],[32.19960937499999,-26.833496093749957],[32.35351562499997,-26.861621093750003],[32.7765625000001,-26.850976562499966],[32.88613281250005,-26.849316406249983],[32.53476562500006,-28.19970703125003],[32.285742187500006,-28.62148437499998],[31.335156250000097,-29.378125],[29.97119140625003,-31.322070312500017],[28.449414062500068,-32.62460937499999],[27.077441406250074,-33.52119140625004],[26.429492187500045,-33.75957031250002],[25.80585937500001,-33.737109374999974],[25.574218750000057,-34.03535156249998],[25.00292968750003,-33.97363281250003],[24.8271484375,-34.16894531250003],[24.595507812500074,-34.17451171875],[23.697851562500063,-33.99277343750002],[23.268164062500006,-34.08115234374999],[22.553808593750063,-34.01005859374999],[22.24550781250005,-34.06914062500003],[21.788964843750023,-34.37265624999996],[20.529882812500034,-34.4630859375],[20.020605468750006,-34.785742187500006],[19.298242187500023,-34.61503906249996],[19.330761718750068,-34.49238281250001],[19.098339843750068,-34.350097656249986],[18.831347656250017,-34.36406249999999],[18.75214843750004,-34.08261718750002],[18.50039062499999,-34.10927734375004],[18.46162109375001,-34.346875],[18.35205078124997,-34.1884765625],[18.43300781250005,-33.71728515625003],[17.851074218750057,-32.82744140625002],[17.96523437500005,-32.70859374999996],[18.125,-32.74912109374996],[18.325292968750034,-32.50498046874996],[18.21083984375008,-31.74248046874996],[17.34707031250005,-30.44482421875],[16.95,-29.40341796875002],[16.739453124999983,-29.009375],[16.447558593750045,-28.61757812499998],[16.755761718750023,-28.45214843750003],[16.7875,-28.39472656249997],[16.81015625,-28.264550781249994],[16.841210937500023,-28.21894531250004],[16.875292968750045,-28.12792968749997],[16.93330078125004,-28.06962890624999],[17.05625,-28.03105468750003],[17.1884765625,-28.13251953125001],[17.358691406250017,-28.269433593750023],[17.44794921875001,-28.698144531249966],[18.310839843750017,-28.88623046875],[19.16171875,-28.93876953124996],[19.245800781250068,-28.90166015625003],[19.31269531250004,-28.733300781250023],[19.539843750000017,-28.574609375000023],[19.98046875,-28.45126953125002],[19.98046875,-28.310351562500003],[19.98046875,-24.77675781249998],[20.430664062500057,-25.14707031250002],[20.79316406250001,-25.915625],[20.641406250000017,-26.7421875],[20.739843749999977,-26.84882812499997],[21.694726562500023,-26.840917968749963],[21.738085937500045,-26.806835937500026],[21.788281250000068,-26.710058593750034],[22.01093750000004,-26.635839843750006],[22.090917968749977,-26.580175781250034],[22.217578125000045,-26.38886718749997],[22.47089843750004,-26.219042968750003],[22.548632812500074,-26.178417968749997],[22.59765625000003,-26.13271484375001],[22.878808593750023,-25.457910156250023],[23.148730468750017,-25.288671875],[23.389257812500006,-25.291406250000023],[23.89375,-25.600878906250017],[23.96953124999999,-25.62607421874999],[24.192968750000034,-25.632910156249963],[24.33056640625,-25.742871093749983],[25.21337890625,-25.75625],[25.518164062500006,-25.66279296875001],[25.91210937499997,-24.747460937499966],[26.031835937500034,-24.70244140625003],[26.130859375000057,-24.671484375000034],[26.39716796875004,-24.61357421874996],[26.451757812500063,-24.582714843749983],[26.835058593750063,-24.240820312499963],[27.085546875000034,-23.577929687500003],[27.7685546875,-23.14892578125],[27.812597656250006,-23.108007812500006],[28.210156249999983,-22.693652343749974],[28.83984375000003,-22.480859374999966],[28.94580078125003,-22.39511718749999],[29.013476562500045,-22.27841796875002],[29.129882812500057,-22.21328125],[29.364843750000063,-22.19394531250005],[29.37744140625003,-22.19277343749998],[29.66308593749997,-22.146289062500017],[29.90234375000003,-22.184179687500006],[30.19042968750003,-22.291113281250034],[30.460156250000097,-22.329003906250023],[30.71162109375004,-22.297851562499986],[31.07343750000004,-22.30781249999997],[31.19726562499997,-22.344921874999983],[31.287890625000074,-22.402050781249983],[31.54560546875004,-23.48232421874998],[31.799609375000017,-23.8921875]],[[27.19355468750001,-29.94130859375001],[27.364062500000017,-30.27919921875001],[27.753125,-30.6],[28.05683593750001,-30.63105468750001],[28.128710937500017,-30.52509765625001],[28.39208984375003,-30.14755859375002],[28.646875,-30.1265625],[29.09804687500005,-29.919042968750006],[29.142187500000063,-29.70097656249999],[29.293554687500006,-29.56689453125003],[29.348828125000097,-29.441992187499977],[29.38671874999997,-29.319726562500023],[29.301367187500006,-29.08984375],[28.625781250000017,-28.581738281250054],[28.583398437499994,-28.59414062499999],[28.471875,-28.615820312499977],[28.23261718750004,-28.701269531249977],[28.084375,-28.779980468750026],[27.95986328125008,-28.87333984375003],[27.73554687500004,-28.940039062500034],[27.294531250000063,-29.519335937500017],[27.056933593750074,-29.62558593749999],[27.19355468750001,-29.94130859375001]]]]},"properties":{"name":"South Africa","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[33.148046875,-9.603515625],[33.25,-9.759570312500003],[33.35097656250002,-9.862207031250009],[33.33710937500001,-9.954003906250009],[33.3115234375,-10.037988281250009],[33.52890625,-10.234667968750003],[33.53759765625,-10.3515625],[33.5537109375,-10.391308593750011],[33.66152343750002,-10.553125],[33.29277343750002,-10.85234375],[33.37978515625002,-11.157910156250011],[33.26835937500002,-11.40390625],[33.23271484375002,-11.417675781250011],[33.22636718750002,-11.534863281250011],[33.30390625000001,-11.690820312500009],[33.25234375000002,-12.112597656250003],[33.34013671875002,-12.308300781250011],[33.512304687500006,-12.347753906250006],[32.975195312500006,-12.701367187500011],[32.96757812500002,-13.225],[32.67041015625,-13.590429687500006],[32.797460937500006,-13.6884765625],[32.98125,-14.009375],[33.148046875,-13.94091796875],[33.201757812500006,-14.013378906250011],[30.231835937500023,-14.990332031250006],[30.39609375,-15.64306640625],[29.4873046875,-15.69677734375],[28.9130859375,-15.98779296875],[28.760546875000017,-16.53212890625001],[27.932226562500006,-16.89619140625001],[27.020800781250017,-17.95839843750001],[26.779882812500006,-18.04150390625],[26.333398437500023,-17.929296875],[25.995898437500017,-17.969824218750006],[25.2587890625,-17.793554687500006],[25.001757812500017,-17.56855468750001],[24.73291015625,-17.51777343750001],[24.27490234375,-17.481054687500006],[23.380664062500017,-17.640625],[22.193945312500006,-16.628125],[21.979785156250017,-15.95556640625],[21.979394531250023,-14.440527343750006],[21.979296875000017,-14.11962890625],[21.979101562500006,-13.798730468750009],[21.978906250000023,-13.0009765625],[22.209570312500006,-13.0009765625],[23.843164062500023,-13.0009765625],[23.962988281250006,-12.988476562500011],[23.882421875,-12.799023437500011],[23.886523437500017,-12.743261718750006],[23.909375,-12.636132812500009],[23.98388671875,-11.725],[23.96650390625001,-10.871777343750011],[24.36572265625,-11.1298828125],[24.3779296875,-11.417089843750006],[25.28876953125001,-11.21240234375],[25.349414062500017,-11.623046875],[26.025976562500006,-11.89013671875],[26.824023437500017,-11.965234375],[27.1591796875,-11.579199218750006],[27.573828125,-12.22705078125],[28.412890625000017,-12.51806640625],[28.550878906250006,-12.836132812500011],[28.730078125,-12.925488281250011],[29.014257812500006,-13.368847656250011],[29.20185546875001,-13.398339843750009],[29.55419921875,-13.248925781250009],[29.775195312500017,-13.438085937500006],[29.79511718750001,-12.155468750000011],[29.508203125000023,-12.228222656250011],[29.48554687500001,-12.41845703125],[29.064355468750023,-12.348828125000011],[28.482519531250006,-11.812109375],[28.383398437500006,-11.566699218750003],[28.6455078125,-10.550195312500009],[28.60419921875001,-9.678808593750006],[28.400683593750017,-9.224804687500011],[28.869531250000023,-8.785839843750011],[28.89814453125001,-8.485449218750006],[30.75117187500001,-8.193652343750003],[30.830664062500006,-8.385546875],[30.891992187500023,-8.473730468750006],[30.968359375,-8.550976562500011],[31.07636718750001,-8.611914062500006],[31.3505859375,-8.60703125],[31.44921875,-8.65390625],[31.53486328125001,-8.71328125],[31.55625,-8.80546875],[31.673632812500017,-8.908789062500006],[31.91865234375001,-8.9421875],[31.921875,-9.019433593750009],[31.94257812500001,-9.054003906250003],[32.75664062500002,-9.322265625],[32.919921875,-9.407421875000011],[32.99599609375002,-9.622851562500003],[33.148046875,-9.603515625]]]},"properties":{"name":"Zambia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[31.287890625000017,-22.40205078125001],[31.07343750000001,-22.30781250000001],[30.71162109375001,-22.2978515625],[30.46015625000001,-22.32900390625001],[30.1904296875,-22.291113281250006],[29.90234375,-22.184179687500006],[29.6630859375,-22.146289062500003],[29.37744140625,-22.19277343750001],[29.36484375,-22.193945312500006],[29.315234375000017,-22.15771484375],[29.237207031250023,-22.07949218750001],[29.042382812500023,-22.018359375],[29.02558593750001,-21.796875],[28.014062500000023,-21.55419921875],[27.66943359375,-21.064257812500003],[27.679296875,-20.503027343750006],[27.28076171875,-20.47871093750001],[27.17822265625,-20.10097656250001],[26.168066406250006,-19.53828125000001],[25.939355468750023,-18.93867187500001],[25.242285156250006,-17.969042968750003],[25.2587890625,-17.793554687500006],[25.995898437500017,-17.969824218750006],[26.333398437500023,-17.929296875],[26.779882812500006,-18.04150390625],[27.020800781250017,-17.95839843750001],[27.932226562500006,-16.89619140625001],[28.760546875000017,-16.53212890625001],[28.9130859375,-15.98779296875],[29.4873046875,-15.69677734375],[30.39609375,-15.64306640625],[30.437792968750017,-15.995312500000011],[31.236230468750023,-16.02363281250001],[31.939843750000023,-16.428808593750006],[32.94804687500002,-16.71230468750001],[32.87626953125002,-16.88359375],[32.99306640625002,-18.35957031250001],[32.69970703125,-18.94091796875],[32.84980468750001,-19.10439453125001],[32.77763671875002,-19.388769531250006],[32.992773437500006,-19.98486328125],[32.49238281250001,-20.659765625],[32.353613281250006,-21.136523437500003],[32.429785156250006,-21.29707031250001],[31.429492187500017,-22.298828125],[31.287890625000017,-22.40205078125001]]]},"properties":{"name":"Zimbabwe","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[74.00809389139292,33.25375789331485],[73.19660141888893,33.898124784580936],[73.13410859949555,34.82510160558277],[72.31128647748268,35.77290936638241],[73.08203125000107,36.43949943991182],[73.08961802927895,36.86435907947333],[73.116796875,36.868554687499994],[74.03886718750002,36.825732421874996],[74.54140625000002,37.02216796875],[74.69218750000002,37.0357421875],[74.8892578125,36.952441406249996],[74.94912109375002,36.968359375],[75.05390625000001,36.987158203125],[75.14521484375001,36.9732421875],[75.3466796875,36.913476562499994],[75.37685546875002,36.883691406249994],[75.42421875000002,36.738232421875],[75.46025390625002,36.725048828125],[75.57373046875,36.759326171874996],[75.66718750000001,36.741992187499996],[75.77216796875001,36.694921875],[75.84023437500002,36.649707031249996],[75.88496093750001,36.600732421874994],[75.93300781250002,36.52158203125],[75.95185546875001,36.45810546875],[75.97441406250002,36.382421875],[75.91230468750001,36.048974609374994],[76.07089843750003,35.9830078125],[76.14785156250002,35.829003906249994],[76.17783203125003,35.810546875],[76.25166015625001,35.8109375],[76.3857421875,35.837158203125],[76.50205078125003,35.878222656249996],[76.55126953125,35.887060546875],[76.5634765625,35.772998046874996],[76.6318359375,35.729394531249994],[76.7275390625,35.678662109375],[76.76689453124999,35.66171875],[76.81279296874999,35.571826171874996],[76.88222656250002,35.4357421875],[76.927734375,35.346630859375],[77.04863281249999,35.109912109374996],[77.00087890625002,34.991992187499996],[76.78291015625001,34.900195312499996],[76.75751953125001,34.877832031249994],[76.7490234375,34.847558593749994],[76.6962890625,34.786914062499996],[76.59443359375001,34.73583984375],[76.45673828125001,34.756103515625],[76.17246093750003,34.667724609375],[76.041015625,34.669921875],[75.93828125000002,34.612548828125],[75.86210937500002,34.56025390625],[75.70917968750001,34.503076171874994],[74.300390625,34.765380859375],[74.17197265625,34.7208984375],[74.05585937500001,34.6806640625],[73.96123046875002,34.653466796874994],[73.79453125,34.378222656249996],[73.80996093750002,34.325341796874994],[73.92460937500002,34.287841796875],[73.97236328125001,34.236621093749996],[73.9794921875,34.191308593749994],[73.90390625,34.1080078125],[73.94990234375001,34.018798828125],[74.24648437500002,33.990185546875],[73.97646484375002,33.7212890625],[74.15,33.506982421874994],[74.00809389139292,33.25375789331485]]]},"properties":{"name":"","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[78.49194250885338,32.53122786149202],[78.10154031239509,32.87658365066666],[77.71342088235082,32.6917648744551],[77.06655516561037,33.301666835953235],[76.62299010270264,33.32014871357439],[76.32728006076415,32.87658365066666],[75.73585997688717,32.78417426256088],[75.62496871116024,32.28516356678968],[75.32221348233018,32.28516356678968],[74.98730468749997,32.46220703124996],[74.78886718750013,32.4578125],[74.6857421875001,32.493798828124994],[74.66328125000004,32.75766601562495],[74.63242187499995,32.770898437500136],[74.58828125000011,32.7532226562501],[74.35458984375012,32.76870117187505],[74.30546875000007,32.81044921875002],[74.30361328125005,32.991796875000034],[73.98984375000006,33.22119140625006],[74.15,33.506982421874994],[73.97646484375016,33.72128906249998],[74.24648437500011,33.99018554687504],[73.9499023437501,34.018798828125],[73.90390625000012,34.10800781250006],[73.97949218750009,34.191308593749966],[73.97236328125004,34.23662109374996],[73.92460937500007,34.287841796875114],[73.80996093750016,34.32534179687511],[73.79453125000006,34.378222656250045],[73.96123046875007,34.653466796874994],[74.05585937500015,34.68066406250003],[74.17197265624995,34.72089843750004],[74.30039062500006,34.76538085937506],[75.70917968750004,34.50307617187508],[75.86210937500002,34.56025390625001],[75.93828125000019,34.612548828125],[76.04101562500014,34.66992187499997],[76.17246093750006,34.66772460937506],[76.4567382812501,34.756103515625114],[76.5944335937501,34.73583984375006],[76.69628906249997,34.78691406249999],[76.74902343750014,34.84755859375008],[76.7575195312501,34.87783203125005],[76.7829101562501,34.90019531249999],[77.00087890625011,34.99199218750002],[77.03066406250011,35.06235351562498],[77.04863281250007,35.109912109375074],[77.42343749999995,35.30258789062506],[77.57158203125002,35.37875976562495],[77.69697265625015,35.443261718750136],[77.79941406250006,35.49589843750002],[78.0426757812501,35.4797851562501],[78.07578125000006,35.13491210937502],[78.15849609375002,34.94648437499998],[78.32695312500007,34.60639648437498],[78.86484375000006,34.39033203125001],[78.93642578125,34.35195312500002],[78.97060546875011,34.22822265625004],[78.72666015625006,34.013378906249955],[78.78378906250006,33.80878906250004],[78.86503906250002,33.43110351562501],[78.94843750000004,33.346533203125006],[79.1125,33.22626953125001],[79.13515625000005,33.17192382812496],[79.10283203125007,33.05253906249996],[79.14550781250003,33.00146484375006],[79.16992187500003,32.497216796874994],[78.91894531249997,32.3582031250001],[78.75351562500012,32.49926757812506],[78.73671875,32.55839843750002],[78.49194250885338,32.53122786149202]]]]},"properties":{"name":"","childNum":1}}]}');var xe=Object.defineProperty,ke=Object.getOwnPropertySymbols,Ce=Object.prototype.hasOwnProperty,$e=Object.prototype.propertyIsEnumerable,Se=(e,t,n)=>t in e?xe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ee=(e,t)=>{for(var n in t||(t={}))Ce.call(t,n)&&Se(e,n,t[n]);if(ke)for(var n of ke(t))$e.call(t,n)&&Se(e,n,t[n]);return e};function Oe({areaStyleColors:n,dataLoaded:o,hasData:i,highlight:r,type:s,option:a,series:l,onChange:c,zoomStart:u,zoomEnd:h,title:d,seriesConfig:p=[],noDataComponent:g=null,zoomColors:m,style:f}){const[y,v]=(0,e.useState)(null),b=(0,e.useRef)(null),w=()=>{y&&y.resize()},x=(0,e.useMemo)((()=>g?g():t().createElement(be,{theme:"info"},"No data to display")),[g]),k={defaultOpts:(0,pe.fromJS)({title:{show:!0,text:d,left:0},color:[],toolbox:{right:"0",orient:"horizontal",itemSize:15,showTitle:!0,feature:null},dataZoom:[{show:!0,start:0,end:100,orient:"horizontal",dataBackground:{lineStyle:{color:(null==m?void 0:m.lineStyle)||"#368493"},areaStyle:{color:(null==m?void 0:m.areaStyle)||"#368493"}},handleStyle:{color:(null==m?void 0:m.handleStyle)||"#368493"},textStyle:{color:(null==m?void 0:m.textStyle)||"#368493"},borderColor:"transparent",fillerColor:(null==m?void 0:m.fillerColor)||"rgba(54, 132, 147, 0.1)"}],legend:{show:!1},tooltip:{trigger:"axis",axisPointer:{type:"cross"}},grid:{left:"1%",right:"1%",bottom:"50px",top:"40px",containLabel:!0},xAxis:{boundaryGap:!1,type:"category",splitLine:{show:!0,lineStyle:{type:"dotted",color:"#F0F0F0"}},axisLine:{show:!1},axisTick:{show:!1},data:[]},yAxis:{min:"dataMin",boundaryGap:!0,axisPointer:{show:!0},splitLine:{lineStyle:{type:"dotted",color:"#F0F0F0"},show:!0},axisLabel:{show:!0},axisLine:{show:!0},axisTick:{show:!1},type:"value"},textStyle:{color:"#5a5a68"},series:[],animationEasing:"elasticOut"}),seriesDefault:(0,pe.fromJS)({data:[],type:"line",areaStyle:{opacity:1,color:n?new de.graphic.LinearGradient(0,0,1,1,n.map(((e,t)=>({offset:t,color:e})))):[]},smooth:!1,symbolSize:7,name:""})},C={defaultOpts:(0,pe.fromJS)({tooltip:{trigger:"axis",formatter:"{b}: {c} ({d}%)"},legend:{orient:"horizontal",x:"left",y:"top",data:[]},color:[],series:[]}),seriesDefault:(0,pe.fromJS)({type:"pie",center:["50%","55%"],radius:["50%","75%"],avoidLabelOverlap:!1,animationType:"scale",animationEasing:"elasticOut",labelLine:{normal:{show:!0,smooth:.2,length:6,length2:6}},data:[]})},$={defaultOpts:(0,pe.fromJS)({series:[]}),seriesDefault:(0,pe.fromJS)({type:"map",data:[]})};(0,e.useEffect)((()=>(window.addEventListener("resize",w),()=>{window.removeEventListener("resize",w)})),[y]),(0,e.useEffect)((()=>{if(null==b?void 0:b.current)return v(de.init(b.current)),()=>{y&&y.dispose()}}),[b.current]);const S=e=>{c&&c(e)};(0,e.useEffect)((()=>{let e;return y&&(e=ge(S,500),y.on("dataZoom",e),y.on("restore",e),y.on("click",e),y.on("mousemove",(e=>{e.data&&y.getZr().setCursorStyle("pointer")}))),()=>{y&&(y.off("dataZoom",e),y.off("restore",e),y.off("click",e))}}),[y,c]);const E=me(y),O=me(a),T=me(s),A=me(l);(0,e.useEffect)((()=>{var e,t,n,o,i,r;!y||(null==(t=null==(e=(0,pe.fromJS)(E))?void 0:e.equals)?void 0:t.call(e,(0,pe.fromJS)(y)))&&(null==(o=null==(n=(0,pe.fromJS)(O))?void 0:n.equals)?void 0:o.call(n,(0,pe.fromJS)(a)))&&T===s&&(null==(r=(i=(0,pe.fromJS)(A)).equals)?void 0:r.call(i,(0,pe.fromJS)(l)))||(y.clear(),y.setOption(((e,t,n)=>{let o={};switch(e){case"pie":o=C.defaultOpts.mergeDeep((0,pe.fromJS)(t)).toJS(),n.forEach((e=>{o.series.push(C.seriesDefault.mergeDeep((0,pe.fromJS)(e)).toJS())}));break;case"geo":o=$.defaultOpts.mergeDeep((0,pe.fromJS)(t)).toJS(),n.forEach((e=>{o.series.push($.seriesDefault.mergeDeep((0,pe.fromJS)(e)).toJS())}));break;default:o=k.defaultOpts.mergeDeep((0,pe.fromJS)(t)).toJS(),Array.isArray(t.yAxis)&&(o.yAxis=t.yAxis),n.forEach(((e,t)=>{const n=Ee(Ee(Ee({},k.seriesDefault.toJS()),p[t]),e);o.series.push(n)}))}return o})(s,a,l)),y.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:!0}))}),[y,a,l,s]),(0,e.useEffect)((()=>{y&&r&&(y.dispatchAction({type:"highlight",seriesIndex:r.seriesIndex,dataIndex:r.dataIndex}),y.dispatchAction({type:"showTip",seriesIndex:r.seriesIndex,dataIndex:r.dataIndex}))}),[r]);const _=me(u),L=me(h);(0,e.useEffect)((()=>{!y||-1===u||-1===h||_===u&&L===h||y.dispatchAction({type:"dataZoom",startValue:u,endValue:h})}),[u,h]);const M=()=>!o||!1!==i&&!0!==i||i;return t().createElement("div",{className:"tyk-chart__wrapper"},o?null:t().createElement(ye,null),t().createElement("div",{className:(()=>{const e=["tyk-chart"];return o||e.push("tyk-chart--loading-chart"),M()||e.push("tyk-chart--no-data"),e.join(" ")})(),style:(()=>{const e=f||{};return e.height||(e.height="300px"),e.width||(e.width="100%"),e})(),"data-type":s,ref:b}),M()?null:x)}de.registerMap("world",we),Oe.propTypes={areaStyleColors:r().instanceOf(Array),dataLoaded:r().bool,hasData:r().bool,highlight:r().oneOfType([r().number,r().string,r().instanceOf(Array)]),noDataComponent:r().func,zoomStart:r().number,zoomEnd:r().number,zoomColors:r().instanceOf(Object),option:r().instanceOf(Object),onChange:r().func,style:r().instanceOf(Object),type:r().string,title:r().string,series:r().instanceOf(Array),seriesConfig:r().instanceOf(Object)};const Te=(0,e.memo)(Oe);var Ae=n(745);const _e=(t,n)=>{const o=(0,e.useRef)();(0,e.useEffect)((()=>{o.current=t}),[t]),(0,e.useEffect)((()=>{if(null!==n){const e=setTimeout((function(){o.current()}),n);return()=>clearTimeout(e)}return()=>{}}),[n])};var Le=Object.defineProperty,Me=Object.getOwnPropertySymbols,Re=Object.prototype.hasOwnProperty,Ne=Object.prototype.propertyIsEnumerable,Ie=(e,t,n)=>t in e?Le(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Pe(e){const{children:n,options:o,onClose:i,index:r}=e,s=((e,t)=>{for(var n in t||(t={}))Re.call(t,n)&&Ie(e,n,t[n]);if(Me)for(var n of Me(t))Ne.call(t,n)&&Ie(e,n,t[n]);return e})({theme:"success",delay:3e3},o),a=e=>{i(e),clearTimeout(void 0)};return _e((()=>a(r)),s.delay),t().createElement(be,{className:"tyk-toast__message",theme:s.theme,onClose:()=>a(r)},n)}Pe.propTypes={children:r().oneOfType([r().element,r().node,r().string]),options:r().instanceOf(Object),onClose:r().func,index:r().number};const De=Pe;var Fe=Object.defineProperty,Be=Object.defineProperties,We=Object.getOwnPropertyDescriptors,He=Object.getOwnPropertySymbols,je=Object.prototype.hasOwnProperty,ze=Object.prototype.propertyIsEnumerable,Ve=(e,t,n)=>t in e?Fe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ue=(e,t)=>{for(var n in t||(t={}))je.call(t,n)&&Ve(e,n,t[n]);if(He)for(var n of He(t))ze.call(t,n)&&Ve(e,n,t[n]);return e};function Ge(n){const[o,i]=(0,e.useState)({}),{notify:r}=n,s=(e,t)=>{const n=Math.floor(1e6*Math.random());i((o=>{return i=Ue({},o),Be(i,We({[n]:{message:e,options:t}}));var i}))};(0,e.useEffect)((()=>{r(s)}),[o]);const a=e=>{delete Ue({},o)[e],i((t=>{const n=Ue({},t);return delete n[e],n}))};return t().createElement("div",{className:"tyk-toast__container"},Object.keys(o).map((e=>o[e]?t().createElement(De,{options:o[e].options,onClose:a.bind(null,e),index:e,key:e},o[e].message):null)))}Ge.propTypes={notify:r().func};const Ke=Ge;var qe=Object.defineProperty,Ye=Object.defineProperties,Je=Object.getOwnPropertyDescriptors,Xe=Object.getOwnPropertySymbols,Qe=Object.prototype.hasOwnProperty,Ze=Object.prototype.propertyIsEnumerable,et=(e,t,n)=>t in e?qe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,tt=(e,t)=>{for(var n in t||(t={}))Qe.call(t,n)&&et(e,n,t[n]);if(Xe)for(var n of Xe(t))Ze.call(t,n)&&et(e,n,t[n]);return e},nt=(e,t)=>Ye(e,Je(t));const ot=new class{constructor(){var e;et(this,"symbol"!=typeof(e="bindNotify")?e+"":e,(e=>{this.createNotification=e}));const n=document.createElement("div");n.className="tyk-toast",document.body.appendChild(n),(0,Ae.s)(n).render(t().createElement(Ke,{notify:this.bindNotify}))}notify(e,t){this.createNotification&&this.createNotification(e,t)}danger(e,t){this.notify(e,nt(tt({},t),{theme:"danger"}))}success(e,t){this.notify(e,nt(tt({},t),{theme:"success"}))}warning(e,t){this.notify(e,nt(tt({},t),{theme:"warning"}))}info(e,t){this.notify(e,nt(tt({},t),{theme:"info"}))}};var it=Object.defineProperty,rt=Object.getOwnPropertySymbols,st=Object.prototype.hasOwnProperty,at=Object.prototype.propertyIsEnumerable,lt=(e,t,n)=>t in e?it(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function ct(n){const{display:o,copy:i,children:r,onCopy:s,message:a="copied"}=n,l=(0,e.createRef)(),c=(0,e.useCallback)((()=>{if(s&&s(),!window.navigator.clipboard)return l.current.select(),document.execCommand("copy"),void ot.success(a);window.navigator.clipboard.writeText(i),ot.success(a)}),[s,l]);return t().createElement(t().Fragment,null,t().createElement(n.element,((e,t)=>{for(var n in t||(t={}))st.call(t,n)&<(e,n,t[n]);if(rt)for(var n of rt(t))at.call(t,n)&<(e,n,t[n]);return e})({onClick:c,onKeyUp:c},n),r||o),window.navigator.clipboard?null:t().createElement("textarea",{ref:l,className:"tyk-copy-to-clipboard",name:"copy",value:i},i))}ct.propTypes={message:r().string,onCopy:r().func,copy:r().string.isRequired,display:r().string,children:r().oneOfType([r().element,r().string,r().object,r().node])};const ut=ct;var ht=n(137),dt=n.n(ht);function pt({children:e}){return t().createElement("div",{className:"tyk-modal__footer"},e)}pt.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const gt=pt;function mt({children:e}){return t().createElement("div",{className:"tyk-modal__body"},e)}mt.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const ft=mt;var yt=Object.defineProperty,vt=Object.getOwnPropertySymbols,bt=Object.prototype.hasOwnProperty,wt=Object.prototype.propertyIsEnumerable,xt=(e,t,n)=>t in e?yt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function kt(e){var n=e,{children:o,theme:i="none",disableCloseCommands:r=!1,opened:s=!1,onClose:a=(()=>{}),size:l="md",className:c="",showBackdrop:u=!0}=n,h=((e,t)=>{var n={};for(var o in e)bt.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&vt)for(var o of vt(e))t.indexOf(o)<0&&wt.call(e,o)&&(n[o]=e[o]);return n})(n,["children","theme","disableCloseCommands","opened","onClose","size","className","showBackdrop"]);const d=["tyk-modal",`tyk-modal--theme-${i}`,s&&"opened"].concat(c.split(" ")).filter(Boolean).join(" "),p=["tyk-modal__backdrop",s&&"opened"].filter(Boolean).join(" "),m={success:"check",warning:"warning",danger:"delete"}[i];return t().createElement(t().Fragment,null,dt().createPortal(t().createElement(x.CSSTransition,{in:s,timeout:100,classNames:"appear"},t().createElement("div",((e,t)=>{for(var n in t||(t={}))bt.call(t,n)&&xt(e,n,t[n]);if(vt)for(var n of vt(t))wt.call(t,n)&&xt(e,n,t[n]);return e})({className:d},h),t().createElement("div",{className:`tyk-modal__dialog tyk-modal--${l}`},t().createElement("div",{className:"tyk-modal__content"},"none"!==i&&t().createElement("div",{className:"tyk-modal__theme-header"},t().createElement(g,{family:"tykon",type:m})),o)))),document.querySelector("body")),u&&dt().createPortal(t().createElement(x.CSSTransition,{in:s,timeout:100,classNames:"fade"},t().createElement("button",{className:p,onClick:()=>!r&&a(),onKeyDown:()=>{},type:"button","aria-label":"Close"})),document.querySelector("body")))}kt.Body=ft,kt.Footer=gt,kt.Header=({children:e})=>(console.warn("%cModal.Header%c is deprecated.","font-weight: bold",""),t().createElement("div",{className:"tyk-modal__header"},e)),kt.Header.propTypes={children:r().element},kt.Title=({children:e})=>(console.warn("%cModal.Title%c is deprecated.","font-weight: bold",""),t().createElement("h4",{className:"tyk-modal__title"},e)),kt.Title.propTypes={children:r().element},kt.propTypes={children:r().oneOfType([r().element,r().node,r().string]),className:r().string,theme:r().string,disableCloseCommands:r().bool,opened:r().bool,onClose:r().func,size:r().string,showBackdrop:r().bool};const Ct=kt;function $t(n){const{children:o,title:i,description:r,confirmBtnText:s="Confirm",cancelBtnText:a="Cancel"}=n,[l,c]=(0,e.useState)(!1),[u,h]=(0,e.useState)(null),[d,p]=(0,e.useState)(null),g=()=>{c(!1),h(null),p(null)},m=()=>{d&&d(),g()};return t().createElement(t().Fragment,null,o(((e,t,n)=>(...o)=>{n&&n(...o),c(!0),h((()=>()=>e(...o))),t&&p((()=>()=>t(...o)))})),t().createElement(Ct,{opened:l,onClose:m},t().createElement(Ct.Body,null,t().createElement("h4",null,i),r),t().createElement(Ct.Footer,null,t().createElement(U,{onClick:m,theme:"default"},a),t().createElement(U,{onClick:()=>{u(),g()},theme:"success"},s))))}$t.propTypes={confirmBtnText:r().string,cancelBtnText:r().string,title:r().string,description:r().string,children:r().oneOfType([r().element,r().string,r().object,r().node,r().func])};const St=$t;function Et({children:n,className:o,showShadow:i}){const r=(0,e.useRef)(null),s=(0,e.useCallback)((()=>{const e=r.current;e&&(window.scrollY?e.classList.add("tyk-fixed-wrapper--scrolled"):e.classList.remove("tyk-fixed-wrapper--scrolled"))}),[r.current]),a=(0,e.useCallback)(ge(s,100),[s]);return(0,e.useEffect)((()=>(i&&window.addEventListener("scroll",a),()=>{window.removeEventListener("scroll",a)})),[a,i]),t().createElement("div",{className:`tyk-fixed-wrapper ${o}`,ref:r},n)}Et.propTypes={children:r().oneOfType([r().element,r().node,r().string]),className:r().string,showShadow:r().bool},Et.defaultProps={className:""};const Ot=Et;function Tt({children:n,hasMore:o,initialLoad:i,loadMore:r,pageNumber:s,refChild:a}){const[l,c]=(0,e.useState)(!1),u=(0,e.useRef)(null),h=C(a);(0,e.useEffect)((()=>{i&&"function"==typeof r&&(c(!1),r(s))}),[i]);const d=(0,e.useCallback)((()=>{if(!u.current)return!1;const{clientHeight:e,scrollTop:t}=u.current;return o&&(e+Math.round(t)===h.height||e>=h.height)}),[u,h.height]),p=(0,e.useCallback)((()=>{o&&"function"==typeof r?(r(s+1),c(!0)):c(!1)}),[o,s]),g=me(s),m=(0,e.useCallback)(ge((()=>{d()&&g<=s&&p()}),200),[p,d]);(0,e.useEffect)((()=>{var e;return null==(e=u.current)||e.addEventListener("scroll",m),()=>{var e;return null==(e=u.current)?void 0:e.removeEventListener("scroll",m)}}),[u,m]),(0,e.useEffect)((()=>{g>0&&0===s&&(u.current.scrollTop=0)}),[u,s]);const f=me(h);return(0,e.useEffect)((()=>{h&&f&&h.height!==f.height&&!0===l&&c(!1)}),[l,h.height]),(0,e.useEffect)((()=>{a&&h.heightt in e?_t(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function It({element:n,size:o="auto",forceDisplay:i="auto",displayAxis:r="auto",preferredPosition:s,offset:a=0,className:l,children:c,infiniteScrollerConfig:u},h){const d=(0,e.useRef)(null),p=h||d,g=(0,e.useRef)(null),m=(0,e.useRef)(null);return(0,e.useEffect)((()=>{window.requestAnimationFrame((function e(){(function(){var e;const t="auto"!==i?i:function(){const e=n.current,t=p.current;if(!t)return(null!=s?s:"vertical"===r)?"bottom":"right";const{left:o,top:i}=e.getBoundingClientRect(),a=i,l=window.innerHeight-i-e.offsetHeight,c=o,u=window.innerWidth-o-e.offsetWidth,h=a>t.scrollHeight,d=l>t.scrollHeight,g=c>t.offsetWidth,m=u>t.offsetWidth,f=o+e.offsetWidth/2-t.offsetWidth/2>0,y=i+e.offsetHeight/2-t.scrollHeight/2>0;return"vertical"===r||"auto"===r&&(h||d)&&f?function({preferredPosition:e,hasTopSpace:t,hasBottomSpace:n,topSpace:o,bottomSpace:i}){return"top"===e&&t?"top":"bottom"===e&&n||n||i>o?"bottom":"top"}({preferredPosition:s,hasTopSpace:h,hasBottomSpace:d,topSpace:a,bottomSpace:l}):"horizontal"===r?function({preferredPosition:e,hasLeftSpace:t,hasRightSpace:n,leftSpace:o,rightSpace:i}){return"left"===e&&t?"left":"right"===e&&n||n||i>o?"right":"left"}({preferredPosition:s,hasLeftSpace:g,hasRightSpace:m,leftSpace:c,rightSpace:u}):function({preferredPosition:e,hasTopSpace:t,hasBottomSpace:n,hasLeftSpace:o,hasRightSpace:i,positionedHorizontallyFitsInViewport:r,positionedVerticallyFitsInViewport:s}){return t&&s?"top":n&&s?"bottom":i&&r?"right":o&&r?"left":null!=e?e:"bottom"}({preferredPosition:s,hasTopSpace:h,hasBottomSpace:d,hasLeftSpace:g,hasRightSpace:m,positionedHorizontallyFitsInViewport:y,positionedVerticallyFitsInViewport:f})}(),l=n.current,c=p.current;if(!l||!c)return;const u=l.getBoundingClientRect(),{left:h,top:d}=null!=(e=m.current)?e:{left:0,top:0};if("top"===t&&Object.assign(c.style,function({container:e,targetPosition:t,target:n,size:o,offset:i,vpLeft:r,vpTop:s}){const a={},l={auto:t.left+n.offsetWidth/2-e.offsetWidth/2,matchElement:t.left,matchStart:t.left,matchEnd:t.right-e.offsetWidth}[o],c=t.top-e.offsetHeight-i;return a.left=`${l+r}px`,a.top=`${c+s}px`,"matchElement"===o?a.width=`${n.offsetWidth}px`:"matchEnd"===o?a.maxWidth=t.right-5+"px":"function"==typeof o&&(a.width=`${o(n.offsetWidth)}px`),a.maxHeight=t.top-i+"px",a}({container:c,targetPosition:u,target:l,size:o,offset:a,vpLeft:h,vpTop:d})),"bottom"===t&&Object.assign(c.style,function({targetPosition:e,target:t,container:n,size:o,offset:i,vpLeft:r,vpTop:s}){const a={},l={auto:e.left+t.offsetWidth/2-n.offsetWidth/2,matchElement:e.left,matchStart:e.left,matchEnd:e.right-n.offsetWidth}[o],c=e.bottom+i;return a.left=`${l+r}px`,a.top=`${c+s}px`,"matchElement"===o?a.width=`${t.offsetWidth}px`:"matchEnd"===o?a.maxWidth=e.right-5+"px":"function"==typeof o&&(a.width=`${o(t.offsetWidth)}px`),a.maxHeight=window.innerHeight-e.bottom-i+"px",a}({container:c,targetPosition:u,target:l,size:o,offset:a,vpLeft:h,vpTop:d})),"left"===t&&Object.assign(c.style,function({targetPosition:e,target:t,container:n,size:o,offset:i}){const r={},s=e.left-n.offsetWidth-i,a={auto:e.top+t.offsetHeight/2-n.offsetHeight/2,matchElement:e.top,matchStart:e.top,matchEnd:e.bottom-n.offsetHeight}[o];return r.left=`${s}px`,r.top=`${a}px`,"matchElement"===o?r.height=`${t.offsetHeight}px`:"function"==typeof o&&(r.height=`${o(t.offsetHeight)}px`),r.maxWidth=e.left-i+"px",r}({targetPosition:u,target:l,container:c,size:o,offset:a})),"right"===t&&Object.assign(c.style,function({targetPosition:e,target:t,container:n,size:o,offset:i,vpLeft:r,vpTop:s}){const a={},l=e.left+t.offsetWidth+i,c={auto:e.top+t.offsetHeight/2-n.offsetHeight/2,matchElement:e.top,matchStart:e.top,matchEnd:e.bottom-n.offsetHeight}[o];return a.left="auto"===o?`${l+r}px`:`${l}px`,a.top="auto"===o?`${c+s}px`:`${c}px`,"matchElement"===o?a.height=`${t.offsetHeight}px`:"function"==typeof o&&(a.height=`${o(t.offsetHeight)}px`),a.maxWidth=window.innerWidth-e.left-t.offsetWidth-i+"px",a}({targetPosition:u,target:l,container:c,size:o,offset:a,vpLeft:h,vpTop:d})),null===m.current)if("matchEnd"===o)m.current={left:0,top:0};else{const e=Number(c.style.left.replace("px","")),t=Number(c.style.top.replace("px",""));m.current={left:e<0?5-e:0,top:t<0?5-t:0}}})(),window.requestAnimationFrame(e)}))}),[]),(0,ht.createPortal)(t().createElement("div",{className:`floating-container ${l||""}`,ref:p},t().createElement(At,((e,t)=>{for(var n in t||(t={}))Mt.call(t,n)&&Nt(e,n,t[n]);if(Lt)for(var n of Lt(t))Rt.call(t,n)&&Nt(e,n,t[n]);return e})({refChild:g},u),t().createElement("div",{className:"floating-container__content-wrapper",ref:g},c))),document.querySelector("body"))}It.propTypes={element:r().instanceOf(Object),className:r().string,size:r().oneOfType([r().oneOf(["auto","matchElement","matchStart","matchEnd"]),r().func]),offset:r().number,forceDisplay:r().oneOf(["auto","top","bottom","left","right"]),displayAxis:r().oneOf(["auto","vertical","horizontal"]),preferredPosition:r().oneOf(["top","bottom","left","right"]),infiniteScrollerConfig:r().instanceOf(Object)};const Pt=(0,e.forwardRef)(It);function Dt({children:e}){return t().createElement("div",{className:"tyk-info-note"},t().createElement(be,{theme:"info"},e))}Dt.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const Ft=Dt;function Bt(e){const{className:n,children:o,selected:i}=e;return t().createElement("li",{className:`${n} ${i?"tyk-list__item--selected":""}`},o)}Bt.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,selected:r().bool},Bt.defaultProps={className:""};const Wt=Bt;function Ht(e){const{className:n,children:o,label:i,labelwidth:r,theme:s,style:a}=e;return t().createElement("div",{className:"tyk-list__wrapper "+(r?"tyk-list--with-inline-label":"")},void 0!==i?t().createElement("label",{style:{flexBasis:r||"auto"}},i):null,t().createElement("ul",{className:(()=>{let e=["tyk-list"];return s&&e.push(`tyk-list--${s}`),n&&(e=e.concat(n.split(" "))),e.join(" ")})(),style:(()=>{const e=structuredClone(a);return r&&(e.flexBasis=`calc(100% - ${r} - 20px)`),e})()},o))}Ht.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,label:r().string,labelwidth:r().string,theme:r().string,style:r().instanceOf(Object)},Ht.defaultProps={theme:"default",style:{}},Ht.Item=Wt;const jt=Ht;function zt({align:e="center",children:n,left:o,right:i,title:r,pre:s,subtitle:a,withTabs:l}){const c=a?t().createElement("p",{className:"font-family-medium"},a):null;return t().createElement("section",{className:"tyk-nav-bar "+(l?"tyk-nav-bar__with-tabs":"")},t().createElement("div",{className:`tyk-nav-bar__wrapper tyk-nav-bar--align-${e}`},s&&t().createElement("div",{className:"tyk-nav-bar__pre"},s),r?t().createElement("div",null,t().createElement("h1",null,r),c):c,t().createElement("div",{className:"tyk-nav-bar__container"},o&&t().createElement("div",{className:"tyk-nav-bar__left"},o),i&&t().createElement("div",{className:"tyk-nav-bar__right"},i))),n)}zt.propTypes={align:r().string,children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),title:r().string,subtitle:r().string,pre:r().oneOfType([r().element,r().node]),left:r().oneOfType([r().element,r().node]),right:r().oneOfType([r().element,r().node]),withTabs:r().bool};const Vt=zt;function Ut({children:e}){return t().createElement("li",{className:"tyk-navigation-item"},e)}Ut.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string])};const Gt=Ut;function Kt({children:e}){return t().createElement("ul",{className:"tyk-navigation"},e)}Kt.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string])},Kt.Item=Gt;const qt=Kt,Yt=(0,e.createContext)();var Jt=Object.defineProperty,Xt=Object.defineProperties,Qt=Object.getOwnPropertyDescriptors,Zt=Object.getOwnPropertySymbols,en=Object.prototype.hasOwnProperty,tn=Object.prototype.propertyIsEnumerable,nn=(e,t,n)=>t in e?Jt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,on=(e,t)=>{for(var n in t||(t={}))en.call(t,n)&&nn(e,n,t[n]);if(Zt)for(var n of Zt(t))tn.call(t,n)&&nn(e,n,t[n]);return e},rn=(e,t)=>Xt(e,Qt(t));function sn(n){var o=n,{children:i,noPadding:r,className:s}=o,a=((e,t)=>{var n={};for(var o in e)en.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Zt)for(var o of Zt(e))t.indexOf(o)<0&&tn.call(e,o)&&(n[o]=e[o]);return n})(o,["children","noPadding","className"]);const l=(0,e.useCallback)((()=>["tyk-panel__body",s,r&&"no-padding"].filter(Boolean).join(" ")),[s,r]);return t().createElement(Yt.Consumer,null,(e=>e.collapsable?t().createElement(R,rn(on({},a),{collapsed:e.collapsed,className:l()}),i):t().createElement("div",rn(on({},a),{className:l()}),i)))}sn.propTypes={children:r().oneOfType([r().element,r().node,r().string]),noPadding:r().bool,className:r().string};const an=sn;function ln(e){const{children:n}=e;return t().createElement("div",{className:"tyk-panel__footer"},n)}ln.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const cn=ln;class un extends e.Component{getCssClasses(e){const{className:t}=this.props;let n=["tyk-panel__header"];return e.collapsable&&n.push("collapsable"),t&&(n=n.concat(t.split(" "))),n.join(" ")}render(){const{children:e}=this.props;return t().createElement(Yt.Consumer,null,(n=>{const o="blank"===n.theme?"h3":"div",i=n.collapsed?"chevron-down":"chevron-up";return t().createElement(o,{className:this.getCssClasses(n),onClick:n.collapsable?n.onToggle:void 0},e,n.collapsable?t().createElement("div",{className:`collapsable__arrow-${n.collapsibleIconPosition}`},t().createElement(g,{type:i})):null)}))}}un.propTypes={children:r().oneOfType([r().element,r().node,r().string]).isRequired,className:r().string};const hn=un;function dn(n){const{children:o,className:i,collapsed:r,collapsable:s,theme:a,onToggleCollapse:l,collapsibleIconPosition:c="right"}=n,[u,h]=(0,e.useState)(r||!1);(0,e.useEffect)((()=>{r!==u&&h(r)}),[r]);const d=(0,e.useCallback)((()=>{h(!u),l&&l(!u)}),[u,l]),p=(0,e.useMemo)((()=>({collapsable:s,collapsed:u,onToggle:d,theme:a,collapsibleIconPosition:c})),[s,u,c,a,d]);return t().createElement("div",{className:(()=>{let e=["tyk-panel"];const t=`tyk-panel--${a||"default"}`,n=`tyk-panel__icon-collapse--${c}`;return e.push(t),e.push(n),i&&(e=e.concat(i.split(" "))),u&&e.push("tyk-panel--collapsed"),e.join(" ")})()},t().createElement(Yt.Provider,{value:p},"function"==typeof o?o({toggleCollapse:d}):o))}dn.propTypes={children:r().oneOfType([r().func,r().element,r().node,r().string]),className:r().string,collapsable:r().bool,collapsibleIconPosition:r().string,collapsed:r().bool,theme:r().string,onToggleCollapse:r().func},dn.Body=an,dn.Footer=cn,dn.Header=hn;const pn=dn;function gn(e){const{children:n,className:o,theme:i}=e;return t().createElement("div",{className:(()=>{let e=["tyk-pill",...i.split(" ").map((e=>`tyk-pill--${e}`))];return o&&(e=e.concat(o)),e.join(" ")})()},n)}gn.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,theme:r().string},gn.defaultProps={theme:"default"};const mn=gn;var fn,yn,vn,bn,wn,xn,kn,Cn,$n=(e,t,n)=>{if(!t.has(e))throw TypeError("Cannot "+n)},Sn=(e,t,n)=>($n(e,t,"read from private field"),n?n.call(e):t.get(e)),En=(e,t,n)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,n)},On=(e,t,n,o)=>($n(e,t,"write to private field"),o?o.call(e,n):t.set(e,n),n);class Tn{constructor(){En(this,fn,null),En(this,yn,null),En(this,vn,null),En(this,bn,null),En(this,wn,[]),En(this,xn,[]),En(this,kn,[]),En(this,Cn,!1)}on(e,t){let n=null;"onHeightChange"===e?n=Sn(this,wn):"onDragStart"===e?n=Sn(this,xn):"onDragEnd"===e&&(n=Sn(this,kn)),n&&this.addListener(n,t)}off(e,t){let n=null;"onHeightChange"===e?n=Sn(this,wn):"onDragStart"===e?n=Sn(this,xn):"onDragEnd"===e&&(n=Sn(this,kn)),n&&this.removeListener(n,t)}setRefs(e,t,n){(Sn(this,yn)||Sn(this,vn)||Sn(this,bn))&&this.unbindEvents(),On(this,bn,e),On(this,yn,t),On(this,vn,n),On(this,fn,null),this.bindEvents()}bindEvents(){this.ensureRefs("bindEvents"),Sn(this,vn).addEventListener("mousedown",this.onMouseDown.bind(this)),document.addEventListener("mousemove",this.onMouseMove.bind(this)),document.addEventListener("mouseup",this.onMouseUp.bind(this))}getHeight(){return this.ensureRefs("getHeight"),Sn(this,yn).getBoundingClientRect().height}onMouseDown(e){this.ensureRefs("onMouseDown"),On(this,fn,{mouseDown:!0,initialRect:Sn(this,yn).getBoundingClientRect(),initialEvent:e})}onMouseMove(e){if(this.ensureRefs("onMouseMove"),!Sn(this,fn))return;if(!this.isPrimaryMouseButtonDown(e))return void this.onMouseUp();Sn(this,Cn)||(On(this,Cn,!0),this.onDragStart.bind(this)());const t=Sn(this,fn).initialEvent.y-e.y,n=Math.ceil(Sn(this,fn).initialRect.height+t);this.setHeight(`${n}px`,"mousemove")}notifyListeners(e,t){e&&Array.isArray(e)&&e.length&&e.forEach((e=>{"function"==typeof e&&e(t)}))}addListener(e,t){e&&Array.isArray(e)&&"function"==typeof t&&e.push(t)}removeListener(e,t){if(e&&Array.isArray(e)&&"function"==typeof t&&e.length){const n=e.indexOf(t);n>-1&&e.splice(n,1)}}onDragEnd(){Sn(this,Cn)&&this.notifyListeners(Sn(this,kn),this.getHeight())}onDragStart(){this.notifyListeners(Sn(this,xn),this.getHeight())}isPrimaryMouseButtonDown(e){return 1===(void 0!==e.buttons?e.buttons:e.which)}onMouseUp(){On(this,fn,null),this.onDragEnd.bind(this)(),On(this,Cn,!1)}setHeight(e){let t=e;this.ensureRefs("setHeight"),"number"==typeof t&&(t+="px"),Sn(this,yn).style.height=t,this.notifyListeners(Sn(this,wn),this.getHeight())}ensureRefs(e){if(!Sn(this,yn)||!Sn(this,vn)||!Sn(this,bn))throw new Error(`${e}: Wrapper, panel, and gutter elements are required. Use setRefs method first.`)}isHidden(){return this.ensureRefs("isHidden"),"hidden"===Sn(this,bn).style.visibility}hide(){this.ensureRefs("hide"),Sn(this,bn).style.visibility="hidden"}show(){this.ensureRefs("show"),Sn(this,bn).style.visibility="visible"}unbindEvents(){On(this,wn,[]),On(this,xn,[]),On(this,kn,[]),Sn(this,vn).removeEventListener("mousedown",this.onMouseDown.bind(this)),document.removeEventListener("mousemove",this.onMouseMove.bind(this)),document.removeEventListener("mouseup",this.onMouseUp.bind(this))}deinit(){this.unbindEvents()}}function An({children:e}){return t().createElement(t().Fragment,null,e)}function _n({children:e}){return t().createElement(t().Fragment,null,e)}fn=new WeakMap,yn=new WeakMap,vn=new WeakMap,bn=new WeakMap,wn=new WeakMap,xn=new WeakMap,kn=new WeakMap,Cn=new WeakMap,An.propTypes={children:r().instanceOf({})},_n.propTypes={children:r().instanceOf({})};const Ln=(...e)=>e.map((e=>(e||"").trim())).filter(Boolean).join(" ");function Mn({children:n,height:o,onHeightChange:i=null,onDragStart:r=null,onDragEnd:s=null,style:a=null,parentSelector:l=null,contentStyle:c,contentClassName:u,gutterClassName:h,wrapperClassName:d},p){const g=(0,e.useRef)(null),m=(0,e.useRef)(null),f=(0,e.useRef)(null),y=(0,e.useRef)(new Tn).current;(0,e.useEffect)((()=>{if(g.current&&m.current&&f.current&&y)return y.setRefs(f.current,g.current,m.current),y.on("onHeightChange",i),y.on("onDragStart",r),y.on("onDragEnd",s),y.setHeight(o,"initialize"),()=>{y.unbindEvents()}}),[]),(0,e.useImperativeHandle)(p,(()=>{const e=e=>e.bind(y);return{getHeight:e(y.getHeight),setHeight:e(y.setHeight),hide:e(y.hide),show:e(y.show),isHidden:e(y.isHidden),deinit:e(y.deinit),on:e(y.on),off:e(y.off)}}),[]);let v=null,b=null;const w=[];t().Children.forEach(n,(e=>{e&&t().isValidElement(e)&&(e.type===An?v=e:e.type===_n?b=e:w.push(e))}));const x=t().createElement("div",{className:Ln("tyk-ui-reveal-wrapper",d||"cem"),ref:f,style:a},t().createElement("div",{className:"tyk-ui-reveal-wrapper__hole"}),t().createElement("div",{ref:m,className:Ln("tyk-ui-reveal-wrapper__gutter",h)},t().createElement("div",{className:"tyk-ui-reveal-wrapper__gutter__headerleft"},v),t().createElement("div",{className:"tyk-ui-reveal-wrapper__gutter__logo"}," "),t().createElement("div",{className:"tyk-ui-reveal-wrapper__gutter__headerright"},b)),t().createElement("div",{ref:g,className:Ln("tyk-ui-reveal-wrapper__panel",u),style:c},w));if(l)return(0,ht.createPortal)(x,document.querySelector(l))}Mn.propTypes={children:r().instanceOf({}),height:r().string,onHeightChange:r().func,onDragStart:r().func,onDragEnd:r().func,parentSelector:r().string,style:r().instanceOf({}),contentStyle:r().instanceOf({}),contentClassName:r().string,gutterClassName:r().string,wrapperClassName:r().string};const Rn=(0,e.forwardRef)(Mn);Rn.HeaderLeft=An,Rn.HeaderRight=_n;const Nn=Rn,In=(0,e.createContext)(),Pn=(0,e.createContext)();var Dn=Object.defineProperty,Fn=Object.getOwnPropertySymbols,Bn=Object.prototype.hasOwnProperty,Wn=Object.prototype.propertyIsEnumerable,Hn=(e,t,n)=>t in e?Dn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,jn=(e,t)=>{for(var n in t||(t={}))Bn.call(t,n)&&Hn(e,n,t[n]);if(Fn)for(var n of Fn(t))Wn.call(t,n)&&Hn(e,n,t[n]);return e};function zn(n){const{addTab:o,hideTab:i,updateTab:r,showTab:s,children:a,selectedPath:l,tabData:c,tabsId:u,tabExists:h,path:d,rendered:p,hideTabContent:g,tabs:m}=n;(0,e.useEffect)((()=>{const e=jn({},c);h(d)||o(e,d)}),[c,d]);const f=me(c);(0,e.useEffect)((()=>{if(h(d)&&(null==c?void 0:c.title)&&((null==f?void 0:f.title)!==(null==c?void 0:c.title)||(null==f?void 0:f.selected)!==c.selected)){const e=jn({},c);r(e,d)}}),[c,d,f,m]),(0,e.useEffect)((()=>(s(d),()=>i(d))),[]);const y=(0,e.useMemo)((()=>!!Object.keys(m).length&&!g&&!1!==m[c.id].show&&(p?l&&l.indexOf(c.id)>-1:h(d))),[g,p,l,c,m]),v=(0,e.useMemo)((()=>({path:d,tabsId:u})),[d,u]);return y?t().createElement("div",{key:c.id,className:"tyk-tab__content",style:{display:l&&l.indexOf(c.id)>-1?"block":"none"}},t().createElement(Pn.Provider,{value:v},a)):null}zn.propTypes={addTab:r().func,updateTab:r().func,hideTab:r().func,showTab:r().func,children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),path:r().instanceOf(Array),hideTabContent:r().bool,rendered:r().bool,selectedPath:r().instanceOf(Array),tabExists:r().func,tabsId:r().string,tabData:r().instanceOf(Object),tabs:r().instanceOf(Object)};const Vn=zn;function Un(n){const{id:o}=n,i=(0,e.useContext)(In),r=(0,e.useContext)(Pn),{tabExists:s,selectedPath:a,addTab:l,updateTab:c,hideTab:u,showTab:h,rendered:d,hideTabContent:p,tabs:g}=i,{children:m}=n,[f,y]=(0,e.useState)("");return(0,e.useEffect)((()=>{let e;e=r&&f&&r.tabsId===i.id?r.path.concat([o]):[o],y(e)}),[r]),f?t().createElement(Vn,{addTab:l,updateTab:c,hideTab:u,showTab:h,tabExists:s,tabData:n,path:f,tabsId:i.id,selectedPath:a,rendered:d,hideTabContent:p,tabs:g},m):null}Un.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),id:r().string},Un.defaultProps={};const Gn=Un;var Kn=Object.defineProperty,qn=Object.getOwnPropertySymbols,Yn=Object.prototype.hasOwnProperty,Jn=Object.prototype.propertyIsEnumerable,Xn=(e,t,n)=>t in e?Kn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Qn=(e,t)=>{for(var n in t||(t={}))Yn.call(t,n)&&Xn(e,n,t[n]);if(qn)for(var n of qn(t))Jn.call(t,n)&&Xn(e,n,t[n]);return e};function Zn(n){const{children:o,className:i,id:r,onTabChange:s,type:a,hideTabContent:l}=n,[c,u]=(0,e.useState)({}),[h,d]=(0,e.useState)([]),[p,m]=(0,e.useState)(!1),[f,y]=(0,e.useState)(null);(0,e.useEffect)((()=>{d(f)}),[f]);const v=(e,t)=>{const n=e.slice(0);let o=!0;t.collapsible&&(n.push(Object.keys(t.tabs)[0]),o=!1),u((t=>{let n=Qn({},t);return n=((e,t)=>{let n=Qn({},e);const o=t.slice(0);for(;o.length>1;)n=n[o.shift()];const i=o.shift();return void 0===n[i].collapsed?n[i].collapsed=!0:n[i].collapsed=!n[i].collapsed,n})(n,e),n})),d(n),m(o),s&&s(t)},b=e=>{const t=[];return h&&h.indexOf(e)>-1&&t.push("active"),t.join(" ")},w=(e,n)=>e?t().createElement("ul",null,Object.keys(e).map(((o,i)=>{const r=n?n.concat([e[o].id]):[e[o].id],s=e[o].collapsed?"chevron-up":"chevron-down";return!1===e[o].show?null:t().createElement("li",{className:b(e[o].id),key:e[o].id},t().createElement("button",{type:"button",onClick:v.bind(null,r,e[o]),onKeyDown:v.bind(null,r,e[o]),tabIndex:i},e[o].title,e[o].collapsible?t().createElement(g,{className:"collapsable-arrow",type:s}):null),e[o].collapsible?t().createElement(R,{collapsed:e[o].collapsed},w(e[o].tabs,r)):w(e[o].tabs,r))}))):null,x=(e,t)=>{u((n=>((e,t,n)=>{let o=Qn({},e);const i=Qn({},n),r=t.slice(0);for(;r.length>1;)o=o[r.shift()],o||(o={});return i.tempPath=r,o[r.shift()]=i,o})(Qn({},n),t,e))),e.selected&&y(t)},k=(e,t)=>{u((t=>{const n=Qn({},t);return n[e.id]=e,n})),e.selected&&v(t,e)},C=e=>{u((t=>{const n=Qn({},t);return n[e].show=!1,n}))},$=e=>{u((t=>{const n=Qn({},t);return n[e].show=!0,n}))},S=e=>{let t=Qn({},c);const n=e.slice(0);for(;n.length>1;)t=t[n.shift()];const o=n.shift();return Boolean(null==t?void 0:t[o])},E=(0,e.useMemo)((()=>({id:r,addTab:x,hideTab:C,updateTab:k,showTab:$,tabExists:S,selectedPath:h,rendered:p,hideTabContent:l,tabs:c})),[r,x,C,k,$,S,h,p,l,c]);return t().createElement("div",{className:(()=>{let e=["tyk-tabs"];return e.push(`tyk-tabs--${a||"default"}`),i&&(e=e.concat(i.split(" "))),e.join(" ")})()},w(c),t().createElement(In.Provider,{value:E},"function"==typeof o?o({hideTab:C,showTab:$}):o))}Zn.propTypes={className:r().string,children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),hideTabContent:r().bool,id:r().string,onTabChange:r().func,type:r().string},Zn.Tab=Gn;const eo=Zn;var to=Object.defineProperty,no=Object.getOwnPropertySymbols,oo=Object.prototype.hasOwnProperty,io=Object.prototype.propertyIsEnumerable,ro=(e,t,n)=>t in e?to(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,so=(e,t)=>{for(var n in t||(t={}))oo.call(t,n)&&ro(e,n,t[n]);if(no)for(var n of no(t))io.call(t,n)&&ro(e,n,t[n]);return e};function ao(n){var o=n,{render:i,className:r,children:s,position:a="auto",style:l,icon:c=!1,closable:u,isOpened:h=!1,additionalClickParents:d=[]}=o,p=((e,t)=>{var n={};for(var o in e)oo.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&no)for(var o of no(e))t.indexOf(o)<0&&io.call(e,o)&&(n[o]=e[o]);return n})(o,["render","className","children","position","style","icon","closable","isOpened","additionalClickParents"]);const[m,f]=(0,e.useState)(!1),y=(0,e.useRef)(null),v=(0,e.useRef)(null),b=u?{onClick:()=>f(!0)}:{onMouseEnter:()=>f(!0),onMouseLeave:()=>f(!1),onFocus:()=>f(!0),onBlur:()=>f(!1)},w=(0,e.useCallback)((e=>{[...d,v.current].some((t=>{var n;return null==(n=null==t?void 0:t.contains)?void 0:n.call(t,e.target)}))||f(!1)}),[d]);(0,e.useEffect)((()=>(document.addEventListener("click",w,!0),()=>document.removeEventListener("click",w,!0))),[w]),(0,e.useEffect)((()=>{f(h)}),[h]);const x=["tyk-tooltip",r].filter(Boolean).join(" ");return t().createElement("div",so(so({className:"tyk-tooltip__wrapper",style:so({display:"inline-block"},l),ref:y},b),p),s,m&&t().createElement(Pt,{element:y,forceDisplay:a,preferredPosition:"top",offset:20},t().createElement("div",{className:x,ref:v},c&&(!0===c?t().createElement(g,{family:"tykon",type:"help"}):c),t().createElement("div",{className:"tyk-tooltip__content"},i),u&&t().createElement(g,{family:"tykon",type:"x",onClick:e=>{e.stopPropagation(),f(!1)}}))))}ao.propTypes={children:r().node.isRequired,style:r().instanceOf(Object),position:r().string,render:r().oneOfType([r().node,r().string]),className:r().string,icon:r().oneOfType([r().bool,r().node]),closable:r().bool,isOpened:r().bool,additionalClickParents:r().instanceOf(Array)};const lo=ao;function co({text:e,limit:n,position:o}){return e.length>n?t().createElement(lo,{render:e,position:o},e.substring(0,n),"..."):e}co.propTypes={text:r().string,limit:r().number,position:r().string};const uo=co;function ho(n){const{value:o=0,totalNrOfPages:i,onChange:r}=n,[s,a]=(0,e.useState)(o),l=(0,e.useMemo)((()=>function(e,t){let n;const o=[];for(n=0;n<=e;n+=1)i=n,r=t,((s=e)<10||r<5&&i<5||r>s-5&&i>s-5||i>=r-2&&i<=r+2||[0,1,s-1,s].includes(i))&&(n>o.at(-1)&&o.push(`...-${n}`),o.push(n+1));var i,r,s;return o}(i,s)),[s,i]);function c(e){a(e),r&&r(e)}return i?t().createElement("ul",{className:"tyk-pagination"},s>0&&i>5&&t().createElement("li",null,t().createElement("button",{onClick:()=>c(s-1),type:"button"},"Previous")),l.map((e=>t().createElement("li",{key:e,className:s===e-1?"active":""},String(e).startsWith("...")?t().createElement("span",null,"..."):t().createElement("button",{onClick:()=>c(e-1),type:"button"},e)))),s5&&t().createElement("li",null,t().createElement("button",{onClick:()=>c(s+1),type:"button"},"Next"))):null}ho.propTypes={value:r().number,totalNrOfPages:r().number,onChange:r().func};const po=ho,go=(0,e.createContext)();function mo({column:n}){const{sortable:o}=n,[i,r]=(0,e.useState)((null==o?void 0:o.default)||"ASC"),{state:s,sendMessage:a}=(0,e.useContext)(go);return t().createElement("th",{key:n.id,onClick:o?()=>{a("sort",{column:n,sortOrder:i}),r("ASC"===i?"DESC":"ASC")}:null,className:s.maxHeight?"fixed-header":""},n.name,n.sortable&&t().createElement("span",{className:"header-sort"},t().createElement(g,{family:"tykon",type:"arrowsort"})))}mo.propTypes={column:r().instanceOf(Object)};var fo=Object.defineProperty,yo=Object.defineProperties,vo=Object.getOwnPropertyDescriptors,bo=Object.getOwnPropertySymbols,wo=Object.prototype.hasOwnProperty,xo=Object.prototype.propertyIsEnumerable,ko=(e,t,n)=>t in e?fo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Co=(e,t)=>{for(var n in t||(t={}))wo.call(t,n)&&ko(e,n,t[n]);if(bo)for(var n of bo(t))xo.call(t,n)&&ko(e,n,t[n]);return e},$o=(e,t)=>yo(e,vo(t));function So({allRowsSelected:n}){const{state:o,sendMessage:i}=(0,e.useContext)(go),{columns:r,selectable:s}=o,a=()=>{var e;const r=s.type;return t().createElement("th",{className:o.maxHeight?"fixed-header":""},(null==s?void 0:s.allowSelectAll)?t().createElement("div",{className:null==s?void 0:s.style},t().createElement(r,$o(Co({},s.values),{value:n,onChange:e=>{var t,n;const o="input"===(null==(t=null==e?void 0:e.target)?void 0:t.tagName.toLowerCase())&&"checkbox"===(null==(n=null==e?void 0:e.target)?void 0:n.type.toLowerCase());i("header.selectAll.change",o?e.target.checked:Boolean(e))}}),null==(e=s.values)?void 0:e.value)):s.name||"Select")};return t().createElement("thead",null,t().createElement("tr",null,"LEFT"===(null==s?void 0:s.position)&&a(),r.map((e=>t().createElement(mo,{key:e.id,column:e}))),"RIGHT"===(null==s?void 0:s.position)&&a()))}So.propTypes={allRowsSelected:r().bool};var Eo=Object.defineProperty,Oo=Object.defineProperties,To=Object.getOwnPropertyDescriptors,Ao=Object.getOwnPropertySymbols,_o=Object.prototype.hasOwnProperty,Lo=Object.prototype.propertyIsEnumerable,Mo=(e,t,n)=>t in e?Eo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ro=(e,t)=>{for(var n in t||(t={}))_o.call(t,n)&&Mo(e,n,t[n]);if(Ao)for(var n of Ao(t))Lo.call(t,n)&&Mo(e,n,t[n]);return e};class No extends e.Component{getCssClasses(){const{inline:e,disabled:t,readOnly:n,theme:o="",wrapperClassName:i=""}=this.props,r=[i];return r.push("tyk-checkbox"),e&&r.push("tyk-checkbox--inline"),o.trim()&&r.push(...o.split(" ").map((e=>`tyk-checkbox--theme-${e}`))),(t||n)&&r.push("tyk-checkbox--is-disabled"),r.join(" ")}displayError(){const{error:e}=this.props;return e?t().createElement("p",{className:"tyk-form-control__error-message"},e):null}displayNote(){const{note:e}=this.props;return e?t().createElement("p",{className:"tyk-form-control__help-block"},e):null}render(){const e=this.props,{input:n,value:o,label:i}=e,r=((e,t)=>{var n={};for(var o in e)_o.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ao)for(var o of Ao(e))t.indexOf(o)<0&&Lo.call(e,o)&&(n[o]=e[o]);return n})(e,["input","value","label"]);return t().createElement("div",{className:this.getCssClasses()},t().createElement("div",{className:"tyk-form-control__wrapper"},t().createElement("label",null,t().createElement("input",(s=Ro(Ro({checked:n?n.value:o},n),r),Oo(s,To({type:"checkbox"})))),i),this.displayNote(),this.displayError()));var s}}No.propTypes={disabled:r().bool,readOnly:r().bool,inline:r().bool,theme:r().string,error:r().oneOfType([r().string,r().bool]),note:r().string,input:r().instanceOf(Object),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),name:r().string,value:r().oneOfType([r().string,r().bool]),checked:r().oneOfType([r().string,r().bool]),onChange:r().func,wrapperClassName:r().string};const Io=No;var Po=Object.defineProperty,Do=Object.getOwnPropertySymbols,Fo=Object.prototype.hasOwnProperty,Bo=Object.prototype.propertyIsEnumerable,Wo=(e,t,n)=>t in e?Po(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ho=(e,t)=>{for(var n in t||(t={}))Fo.call(t,n)&&Wo(e,n,t[n]);if(Do)for(var n of Do(t))Bo.call(t,n)&&Wo(e,n,t[n]);return e};function jo({col:e,row:n}){var o,i,r,s,a;if(!n.values[e.id])return t().createElement("td",null);if("string"===e.type)return t().createElement("td",Ho({className:(null==(o=n.values[e.id].styling)?void 0:o.className)||null},null==(i=n.values[e.id])?void 0:i.events),null==(r=n.values[e.id])?void 0:r.value);const l=e.type;return t().createElement("td",Ho({className:(null==(s=n.values[e.id].styling)?void 0:s.className)||null},null==(a=n.values[e.id])?void 0:a.events),t().createElement(l,Ho({},n.values[e.id].props),n.values[e.id].children?n.values[e.id].children:null))}function zo({row:n,index:o}){var i,r;const{state:s,sendMessage:a}=(0,e.useContext)(go),{columns:l,selectable:c}=s,u=(0,e.useCallback)((()=>t().createElement("td",null,t().createElement(Io,{value:n.selected,onChange:e=>a("row.selected",{index:o,selected:e.target.checked})}))),[n.selected,o]);return t().createElement("tr",{onClick:null==(i=n.events)?void 0:i.onClick,className:null==(r=n.styling)?void 0:r.className},c&&"LEFT"===c.position&&u(),l.map((e=>t().createElement(jo,{key:e.id,col:e,row:n,index:o}))),c&&"RIGHT"===c.position&&u())}function Vo(){const{state:n}=(0,e.useContext)(go),{rows:o}=n;return t().createElement("tbody",null,o.map(((e,n)=>t().createElement(zo,{key:n,row:e,index:n}))))}jo.propTypes={col:r().instanceOf(Object),row:r().instanceOf(Object),index:r().number},zo.propTypes={row:r().instanceOf(Object),index:r().number};var Uo=Object.defineProperty,Go=Object.defineProperties,Ko=Object.getOwnPropertyDescriptors,qo=Object.getOwnPropertySymbols,Yo=Object.prototype.hasOwnProperty,Jo=Object.prototype.propertyIsEnumerable,Xo=(e,t,n)=>t in e?Uo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Qo=(e,t)=>{for(var n in t||(t={}))Yo.call(t,n)&&Xo(e,n,t[n]);if(qo)for(var n of qo(t))Jo.call(t,n)&&Xo(e,n,t[n]);return e},Zo=(e,t)=>Go(e,Ko(t));function ei({value:n,onChange:o,noDataMessage:i,loading:r,infiniteScrolling:s}){var a;const[l,c]=(0,e.useState)(null),[u,h]=(0,e.useState)("api"),d=(0,e.useRef)(null),p=(0,e.useCallback)(((e,t)=>{c((n=>Zo(Qo({},n),{sort:{order:t,col:e}})))}),[]),g=(0,e.useCallback)((e=>{c((t=>Zo(Qo({},t),{rows:t.rows.map((t=>Zo(Qo({},t),{selected:e})))})))}),[]),m=(0,e.useCallback)((({index:e,selected:t})=>{c((n=>Zo(Qo({},n),{rows:[...n.rows.slice(0,e),Zo(Qo({},n.rows[e]),{selected:t}),...n.rows.slice(e+1)]})))}),[]),f=(0,e.useCallback)((e=>{c((t=>Zo(Qo({},t),{pagination:Zo(Qo({},t.pagination),{current:e+1})})))}),[]),y={getState:()=>l,setState:e=>c(e)},v=(0,e.useCallback)(((e,t)=>{h(e),"sort"===e&&p(t.column.id,t.sortOrder),"header.selectAll.change"===e&&g(t),"row.selected"===e&&m(t),"pagination.change"===e&&f(t)}),[p,g,m,f]),b=(0,e.useMemo)((()=>({state:l,sendMessage:v})),[l,v]);if((0,e.useEffect)((()=>c(n)),[n]),(0,e.useEffect)((()=>{o&&o(u,l,y),h("api")}),[l]),!l)return t().createElement(ye,{position:"absolute"});if(l.rows<=0)return t().createElement(be,{theme:"info"},i||"No Data Available");const w=()=>t().createElement("table",{className:"tyk-table",ref:d},t().createElement(So,{allRowsSelected:l.rows.every((({selected:e})=>e))}),t().createElement(Vo,null));return t().createElement(go.Provider,{value:b},t().createElement("div",{className:`scrollable ${(null==(a=l.styling)?void 0:a.className)||""}`,style:{height:l.maxHeight?l.maxHeight:"auto",position:"relative"}},r&&t().createElement(ye,{position:"absolute",withbackground:!0}),s&&l.pagination?t().createElement(At,{refChild:d,hasMore:l.pagination.totalPages>l.pagination.current,loadMore:e=>v("pagination.change",e),pageNumber:l.pagination.current-1,initialLoad:!1},w()):w()),l.pagination&&!s&&t().createElement("div",{className:"new-table-pagination"},t().createElement(po,{value:l.pagination.current-1,nrItemsOnPage:l.pagination.perPage-1,totalNrOfPages:l.pagination.totalPages-1,onChange:e=>v("pagination.change",e)})))}ei.propTypes={value:r().shape({columns:r().arrayOf(r().shape({id:r().string.isRequired,name:r().string,type:r().oneOfType([r().string,r().element,r().func]),sortable:r().oneOfType([r().bool,r().shape({default:r().string})])})),rows:r().arrayOf(r().shape({})),selectable:r().shape({}),pagination:r().shape({}),maxHeight:r().string,styling:r().shape({className:r().string})}).isRequired,onChange:r().func,noDataMessage:r().string,loading:r().bool,infiniteScrolling:r().bool},ei.defaultProps={loading:!1,infiniteScrolling:!1,noDataMessage:"No Data Available",onChange:null};const ti=ei;var ni=Object.defineProperty,oi=Object.getOwnPropertySymbols,ii=Object.prototype.hasOwnProperty,ri=Object.prototype.propertyIsEnumerable,si=(e,t,n)=>t in e?ni(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function ai(e){var n=e,{children:o,align:i,className:r,offset:s,size:a}=n,l=((e,t)=>{var n={};for(var o in e)ii.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&oi)for(var o of oi(e))t.indexOf(o)<0&&ri.call(e,o)&&(n[o]=e[o]);return n})(n,["children","align","className","offset","size"]);const c=["tyk-col",r,i&&`tyk-col--align-${i}`,...a.split(" ").map((e=>`tyk-col--${e}`)),...(s?s.split(" "):[]).map((e=>`tyk-col--offset-${e}`))].filter(Boolean).join(" ");return t().createElement("div",((e,t)=>{for(var n in t||(t={}))ii.call(t,n)&&si(e,n,t[n]);if(oi)for(var n of oi(t))ri.call(t,n)&&si(e,n,t[n]);return e})({className:c},l),o)}ai.propTypes={align:r().string,className:r().string,size:r().string.isRequired,offset:r().string,children:r().oneOfType([r().element,r().string,r().object,r().node])};const li=ai;var ci=Object.defineProperty,ui=Object.defineProperties,hi=Object.getOwnPropertyDescriptors,di=Object.getOwnPropertySymbols,pi=Object.prototype.hasOwnProperty,gi=Object.prototype.propertyIsEnumerable,mi=(e,t,n)=>t in e?ci(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function fi(e){var n=e,{className:o,nogutters:i,children:r}=n,s=((e,t)=>{var n={};for(var o in e)pi.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&di)for(var o of di(e))t.indexOf(o)<0&&gi.call(e,o)&&(n[o]=e[o]);return n})(n,["className","nogutters","children"]);const a=["tyk-row",o,i&&"no-gutters",i&&"tyk-row--gutterless"].filter(Boolean).join(" ");return t().createElement("div",(l=((e,t)=>{for(var n in t||(t={}))pi.call(t,n)&&mi(e,n,t[n]);if(di)for(var n of di(t))gi.call(t,n)&&mi(e,n,t[n]);return e})({},s),ui(l,hi({className:a}))),r);var l}fi.propTypes={children:r().oneOfType([r().element,r().node]),className:r().string,nogutters:r().bool};const yi=fi,vi=(0,e.createContext)();function bi(n){const{customdropdownitem:o,children:i,eventKey:r,href:s,target:a,title:l,onClick:c}=n,u=(0,e.useCallback)(((e,t)=>{e.onSelectItem(r,t),c&&c(r)}),[]);return t().createElement(vi.Consumer,null,(c=>t().createElement("li",{onClick:()=>u(c,n),onKeyUp:()=>{}},o?(0,e.cloneElement)(o,{}):t().createElement("a",{href:s,target:a},r&&c.selectedItem===r&&c.showCheckmark?t().createElement(g,{type:"check"}):null,t().createElement("span",null,l||i)))))}bi.propTypes={children:r().oneOfType([r().element,r().node,r().string]),customdropdownitem:r().oneOfType([r().arrayOf(r().node),r().node,r().element]),eventKey:r().string,href:r().string,target:r().string,onClick:r().func,title:r().string};const wi=bi;var xi=Object.defineProperty,ki=Object.getOwnPropertySymbols,Ci=Object.prototype.hasOwnProperty,$i=Object.prototype.propertyIsEnumerable,Si=(e,t,n)=>t in e?xi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Ei extends e.Component{static isElemInRightView(e,t){const n=window.innerWidth;return e.getBoundingClientRect().left+t<=n}static isElemInBottomView(e,t){const n=window.innerHeight,o=e.getBoundingClientRect(),i=e.clientHeight;return o.top+i+t<=n}constructor(t){super(t);const{selectedItem:n,open:o}=this.props;this.state={opened:o,selectedItem:n||null},this.dropdownRef=(0,e.createRef)(),this.dropdownListRef=(0,e.createRef)(),this.dropdownButtonRef=(0,e.createRef)(),this.onSelectItem=this.onSelectItem.bind(this),this.toggleDropdown=this.toggleDropdown.bind(this),this.handleClickOutside=this.handleClickOutside.bind(this)}componentDidMount(){document.addEventListener("mousedown",this.handleClickOutside),this.dropdownListRef.current&&this.getStyles()}componentDidUpdate(e){const{open:t}=this.props,{opened:n}=this.state;this.dropdownListRef.current&&this.getStyles(),e.open||!0!==t||n||this.toggleDropdown(),e.open&&!1===t&&n&&this.closeDropdown()}componentWillUnmount(){document.removeEventListener("mousedown",this.handleClickOutside)}handleClickOutside(e){this.dropdownListRef.current&&!this.dropdownListRef.current.contains(e.target)&&this.dropdownRef.current&&!this.dropdownRef.current.contains(e.target)&&this.closeDropdown()}onSelectItem(e,t){const{closeOnSelect:n,onSelect:o}=this.props,i={selectedItem:e,selectedItemProps:t};n&&(i.opened=!1),this.setState(i),o&&"function"==typeof o&&o(e)}getStyles(){const{display:e,position:t,offset:n}=this.props,o=this.dropdownListRef.current;if(n)return o.style.top=`${n.top}`,void(o.style.left=`${n.left}`);const i=Math.max(document.documentElement.scrollTop,document.body.scrollTop,window.scrollY),r=this.dropdownRef.current,s=r.clientHeight,a=o?o.clientHeight:0,l=o?o.clientWidth:0,c=r.getBoundingClientRect(),{left:u,top:h}=c;let d=0,p=u;d=Ei.isElemInBottomView(r,a)?h+i+s:h+i-a-5,Ei.isElemInRightView(r,l)||(p=u+r.clientWidth-l),"relative"!==t&&(o.style.top=`${d}px`,"block"!==e&&(o.style.left=`${p}px`)),"block"!==e&&(o.style.minWidth=`${this.dropdownButtonRef.current.clientWidth}px`)}getWrapperCssClasses(){const{btnGroup:e,btnGroupSize:t,className:n,btnTheme:o,wrapperClassName:i=""}=this.props;let r=[i,"tyk-dropdown"];return r.push(`theme-${o||"default"}`),n&&(r=r.concat(n.split(" "))),e&&(r.push("tyk-button-group"),r.push(t?`tyk-button-group--${t}`:"tyk-button-group--md")),r.join(" ")}getCssClasses(){const{opened:e}=this.state,{hasCustomContent:t,display:n,listclassnames:o,position:i,maxHeight:r}=this.props;let s=["tyk-dropdown-menu","tyk-dropdown"];return r&&s.push("tyk-dropdown--scrollable"),e&&s.push("opened"),o&&(s=s.concat(o.split(" "))),n&&s.push("tyk-dropdown--block"),t&&s.push("tyk-dropdown--custom"),"relative"===i&&s.push("tyk-dropdown--relative"),s.join(" ")}getBtnTitle(){const{btnTitle:e,stopButtonTextChange:t}=this.props,{selectedItemProps:n}=this.state;return!t&&(null==n?void 0:n.title)?n.title:e}closeDropdown(){const{onClose:e}=this.props;this.setState({opened:!1},(()=>{e&&e()}))}toggleDropdown(){const{opened:e}=this.state;e?this.closeDropdown():this.setState({opened:!0})}render(){const{appendTo:e,btnClassName:n,btnSize:o,customBtnTitle:i,hasCustomContent:r,btnTheme:s,children:a,label:l,showDropdownIcon:c,showTriggerButton:u,showCheckmark:h,disabled:d=!1,maxHeight:p}=this.props,{selectedItem:g,opened:m}=this.state,f=r?"div":"ul";return t().createElement("div",{className:this.getWrapperCssClasses(),ref:this.dropdownRef},l?t().createElement("label",{className:"font-family-medium"},l):null,u?t().createElement(U,{className:`tyk-dropdown__trigger ${m?"tyk-dropdown__trigger--opened ":" "} ${n}`,theme:s||"default",onClick:this.toggleDropdown,iconType:c?"chevron-down":null,iconPosition:"right",size:o||"md",type:"button",disabled:d,ref:this.dropdownButtonRef},i||this.getBtnTitle()):null,m?dt().createPortal(t().createElement(vi.Provider,{value:{onSelectItem:this.onSelectItem,selectedItem:g,showCheckmark:h}},m?t().createElement(f,((e,t)=>{for(var n in t||(t={}))Ci.call(t,n)&&Si(e,n,t[n]);if(ki)for(var n of ki(t))$i.call(t,n)&&Si(e,n,t[n]);return e})({className:this.getCssClasses(),ref:this.dropdownListRef},p&&{style:{maxHeight:p}}),"function"==typeof a?a({closeDropdown:this.closeDropdown.bind(this)}):a):null),document.querySelector(e||"body")):null)}}Ei.propTypes={appendTo:r().string,children:r().oneOfType([r().element,r().node,r().string,r().func]),closeOnSelect:r().bool,btnClassName:r().string,btnSize:r().string,btnGroupSize:r().string,btnTheme:r().string,btnTitle:r().oneOfType([r().node,r().element,r().string]),customBtnTitle:r().oneOfType([r().node,r().element,r().string]),btnGroup:r().bool,className:r().string,display:r().string,disabled:r().bool,hasCustomContent:r().bool,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),listclassnames:r().string,onClose:r().func,onSelect:r().func,open:r().bool,offset:r().instanceOf(Object),position:r().string,selectedItem:r().string,showDropdownIcon:r().bool,stopButtonTextChange:r().bool,showTriggerButton:r().bool,showCheckmark:r().bool,maxHeight:r().string,wrapperClassName:r().string},Ei.defaultProps={closeOnSelect:!1,showDropdownIcon:!0,showTriggerButton:!0,showCheckmark:!0,open:!1},Ei.Item=wi;const Oi=Ei;var Ti=Object.defineProperty,Ai=Object.getOwnPropertySymbols,_i=Object.prototype.hasOwnProperty,Li=Object.prototype.propertyIsEnumerable,Mi=(e,t,n)=>t in e?Ti(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Ri({title:e,theme:n="primary",splitTrigger:o,toggle:i,onTriggerClick:r,value:s},a){return o?t().createElement(K,{ref:a},t().createElement(U,((e,t)=>{for(var n in t||(t={}))_i.call(t,n)&&Mi(e,n,t[n]);if(Ai)for(var n of Ai(t))Li.call(t,n)&&Mi(e,n,t[n]);return e})({theme:n},r&&{onClick:()=>r(s)}),e),t().createElement(U,{className:"dropdown__trigger",iconType:"arrowdown",iconFamily:"tykon",iconPosition:"right",theme:n,onClick:i,iconOnly:!0})):t().createElement(U,{className:"dropdown__trigger",iconType:"arrowdown",iconFamily:"tykon",iconPosition:"right",theme:n,ref:a,onClick:i},e)}Ri.propTypes={title:r().string,theme:r().string,splitTrigger:r().bool,toggle:r().func,dropdownRef:r().shape({current:r().instanceOf(Element)}).isRequired,onTriggerClick:r().func,value:r().oneOfType([r().string,r().number])};const Ni=(0,e.forwardRef)(Ri);var Ii=Object.defineProperty,Pi=Object.getOwnPropertySymbols,Di=Object.prototype.hasOwnProperty,Fi=Object.prototype.propertyIsEnumerable,Bi=(e,t,n)=>t in e?Ii(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Wi=(e,t)=>{for(var n in t||(t={}))Di.call(t,n)&&Bi(e,n,t[n]);if(Pi)for(var n of Pi(t))Fi.call(t,n)&&Bi(e,n,t[n]);return e};function Hi({children:e,element:n,maxWidth:o},i){return t().createElement(Pt,{element:n,ref:i,className:"dropdown__menu",position:"bottom",alignment:"auto",offset:5,arrow:!0},t().createElement(jt,{style:Wi({},o&&{maxWidth:o}),theme:"primary"},e))}Hi.propTypes={element:r().shape({current:r().instanceOf(Element)}),children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),maxWidth:r().string};const ji=(0,e.forwardRef)(Hi),zi=(0,e.createContext)();var Vi=Object.defineProperty,Ui=Object.getOwnPropertySymbols,Gi=Object.prototype.hasOwnProperty,Ki=Object.prototype.propertyIsEnumerable,qi=(e,t,n)=>t in e?Vi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Yi=(e,t)=>{for(var n in t||(t={}))Gi.call(t,n)&&qi(e,n,t[n]);if(Ui)for(var n of Ui(t))Ki.call(t,n)&&qi(e,n,t[n]);return e};function Ji({children:n,value:o}){const{onChange:i,value:r}=(0,e.useContext)(zi);return t().createElement(jt.Item,Yi({},o===r&&{selected:!0}),t().createElement("a",Yi({},i&&{onClick:()=>i(o)}),n))}Ji.propTypes={children:r().node,value:r().any};const Xi=Ji;function Qi({children:n,title:o,theme:i,splitTrigger:r,onChange:s,value:a,setSelectedValueAsTitle:l,maxWidth:c,onTriggerClick:u}){const{isOpen:h,toggle:d,dropdownRef:p,dropdownListRef:g}=(({splitTrigger:t})=>{const[n,o]=(0,e.useState)(!1),i=(0,e.useRef)(null),r=(0,e.useRef)(null),s=(0,e.useCallback)((e=>{const s=t?i.current.querySelector(".dropdown__trigger"):i.current;!n||s.contains(e.target)||r.current.contains(e.target)||o(!1)}),[n]);return(0,e.useEffect)((()=>(document.addEventListener("mousedown",s),()=>{document.removeEventListener("mousedown",s)})),[s]),{isOpen:n,toggle:()=>o(!n),dropdownRef:i,dropdownListRef:r}})({splitTrigger:r}),m=(0,e.useMemo)((()=>({onChange:s,value:a})),[s,a]);return t().createElement(zi.Provider,{value:m},t().createElement(Ni,{title:l?a:o,onTriggerClick:u,theme:i,splitTrigger:r,toggle:d,ref:p,value:a}),h&&t().createElement(ji,{element:p,ref:g,maxWidth:c},n))}Qi.propTypes={title:r().string,theme:r().string,children:r().node,splitTrigger:r().bool,onChange:r().func,value:r().oneOfType([r().string,r().number]),setSelectedValueAsTitle:r().bool,maxWidth:r().string,onTriggerClick:r().func},Qi.Item=Xi;const Zi=Qi;var er=n(239),tr=n.n(er);const nr=require("react-ace");var or=n.n(nr);n(395),n(576),n(7),n(549),n(252),n(202),n(711),n(604),n(134),n(203);const ir=n.p+"ee385296b124aae4e5d9.js";var rr=Object.defineProperty,sr=Object.defineProperties,ar=Object.getOwnPropertyDescriptors,lr=Object.getOwnPropertySymbols,cr=Object.prototype.hasOwnProperty,ur=Object.prototype.propertyIsEnumerable,hr=(e,t,n)=>t in e?rr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,dr=(e,t)=>{for(var n in t||(t={}))cr.call(t,n)&&hr(e,n,t[n]);if(lr)for(var n of lr(t))ur.call(t,n)&&hr(e,n,t[n]);return e};function pr(n){const{disabled:o,readOnly:i,disableValidation:r,id:s,error:a,label:l,labelwidth:c,note:u,onBlur:h,onChange:d,theme:p,value:g,setOptions:m,wrapperClassName:f}=n,y=["tyk-form-group",f,...p?p.split(" ").map((e=>`tyk-form-group--${e}`)):[],c&&"tyk-form-group--label-has-width",a&&"has-error"].filter(Boolean).join(" "),v=dr(dr({},m),r&&{useWorker:!1}),b=(0,e.useCallback)((()=>a&&"true"!==a&&"false"!==a?t().createElement("p",{className:"tyk-form-control__error-message"},a):null),[a]),w=(0,e.useCallback)((()=>c?{flexBasis:c}:{}),[c]),x=(0,e.useCallback)((()=>c?{flexBasis:`calc(100% - ${c} - 20px)`}:{}),[c]),k=(0,e.useCallback)((e=>{d&&d(e)}),[d]),C=(0,e.useCallback)((()=>{h&&h(g)}),[h,g]);return t().createElement("div",{className:y},l?t().createElement("label",{htmlFor:s,style:w()},l):null,t().createElement("div",{className:"tyk-form-control__wrapper",style:x()},t().createElement(or(),($=dr({className:"tyk-form-control"},n),sr($,ar({onChange:k,onBlur:C,theme:"github",editorProps:{$blockScrolling:!0},readOnly:i||o,onLoad:e=>{e.container.style.resize="both",document.addEventListener("mouseup",(()=>e.resize()))},setOptions:v})))),u?t().createElement("p",{className:"tyk-form-control__help-block"},u):null,b()));var $}tr().config.setModuleUrl("ace/mode/json_worker",ir),pr.propTypes={disabled:r().bool,readOnly:r().bool,disableValidation:r().bool,id:r().string,error:r().oneOfType([r().string,r().bool]),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,mode:r().string,name:r().string,note:r().string,onBlur:r().func,onChange:r().func,theme:r().string,value:r().string,setOptions:r().instanceOf(Object),wrapperClassName:r().string};const gr=pr;var mr=Object.defineProperty,fr=Object.defineProperties,yr=Object.getOwnPropertyDescriptors,vr=Object.getOwnPropertySymbols,br=Object.prototype.hasOwnProperty,wr=Object.prototype.propertyIsEnumerable,xr=(e,t,n)=>t in e?mr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,kr=(e,t)=>{for(var n in t||(t={}))br.call(t,n)&&xr(e,n,t[n]);if(vr)for(var n of vr(t))wr.call(t,n)&&xr(e,n,t[n]);return e};const Cr=(e,t,n)=>n||(e||t?[]:null);class $r extends e.Component{static closeList(){return{cursor:-1,opened:!1}}static openList(){return{opened:!0}}static filterByName(e,t){return e.name.toLowerCase().indexOf(t)>-1}constructor(t){super(t);const{multiple:n,tags:o,value:i}=t;this.state={cursor:-1,opened:!1,width:50,initialValue:i,stateSelectedValues:Cr(n,o,i),searchText:"",tags:o},this.comboboxRef=(0,e.createRef)(),this.valuesListRef=(0,e.createRef)(),this.inputRef=(0,e.createRef)(),this.textRef=(0,e.createRef)(),this.focusInput=this.focusInput.bind(this),this.onKeyUp=this.onKeyUp.bind(this),$r.openList=$r.openList.bind(this),this.handleClickOutside=this.handleClickOutside.bind(this),this.handleItemsNavigation=this.handleItemsNavigation.bind(this),this.handleComboboxDropdownClick=this.handleComboboxDropdownClick.bind(this),this.handleListItemClick=this.handleListItemClick.bind(this),this.handlePillRemoveClick=this.handlePillRemoveClick.bind(this),this.manageSelectedTags=this.manageSelectedTags.bind(this)}componentDidMount(){const{tags:e}=this.props;e&&this.setInputWidth(),this.bindEvents()}componentWillUnmount(){this.unBindEvents()}static getDerivedStateFromProps(e,t){return JSON.stringify(e.value)!==JSON.stringify(t.initialValue)||e.tags!==t.tags?{initialValue:e.value,stateSelectedValues:Cr(e.multiple,e.tags,e.value),tags:e.tags}:null}handleItemsNavigation(e){const{tags:t}=this.props;if(-1===["ArrowDown","ArrowUp"].indexOf(e.key))return;const{cursor:n}=this.state,o=this.filterValues();let i;if(e.preventDefault(),"ArrowDown"===e.key&&(-1===n||n===o.length-1?i=0:n0?n-1:o.length-1),this.valuesListRef.current&&i>4){const e=38*(i-4);this.valuesListRef.current.scrollTop=t?e:60+e}else this.valuesListRef.current&&(this.valuesListRef.current.scrollTop=0);this.setState((e=>{return t=kr({},e),fr(t,yr({opened:!0,cursor:i}));var t}))}handleListItemClick(e){if(this.props.values[e].disabled)return;const{multiple:t,tags:n}=this.props,o=n?"manageSelectedTags":"manageSelectedValues",i=kr(kr({},this.state),this[o](e));this.setState((e=>(t||n||(i.opened=!1),kr(kr({},e),i))))}handlePillRemoveClick(e){const{disabled:t}=this.props;if(t)return;const n=this.removeSelectedValue(e);this.setState((e=>kr(kr({},e),n)))}handleClickOutside(e){this.valuesListRef.current&&!this.valuesListRef.current.contains(e.target)&&this.comboboxRef.current&&!this.comboboxRef.current.contains(e.target)&&this.setState((e=>kr(kr({},e),$r.closeList())))}handleComboboxDropdownClick(){const{disabled:e}=this.props;e||this.setState((e=>kr(kr({},e),$r.openList())))}onKeyUp(e){const{tags:t,allowCustomValues:n}=this.props,{cursor:o,opened:i}=this.state,r=this.filterValues();let s=this.getSearchText();if(t&&"Escape"!==e.key&&(s=kr(kr({},s),this.setInputWidth())),"Enter"===e.key){const e=t?"manageSelectedTags":"manageSelectedValues";s=kr(kr({},s),this[e](o))}n&&" "!==e.key&&t&&(s=kr(kr({},s),this.manageSelectedTags())),!i&&this.inputRef.current.value&&(null==r?void 0:r.length)&&"Escape"!==e.key&&(s=kr(kr({},s),$r.openList())),"Escape"===e.key&&i&&(s=kr(kr({},s),$r.closeList())),i&&r&&!r.length&&(s=kr(kr({},s),$r.closeList())),this.setState((e=>kr(kr({},e),s)))}getLabelStyles(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=e),t}getNonLabelWidth(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=`calc(100% - ${e} - 20px)`),t}setInputWidth(){return{width:50+this.textRef.current.offsetWidth}}getSelectedIndex(e){const{stateSelectedValues:t}=this.state;let n=-1;return Array.isArray(t)?t.forEach(((t,o)=>{t.id===e.id&&(n=o)})):t&&t.id===e.id&&(n=0),n}getSearchText(){return{searchText:this.inputRef.current.value}}getListItemCssClasses(e,t){const n=[],{cursor:o}=this.state;return o===t&&n.push("active"),e.disabled&&n.push("disabled"),n.join(" ")}getComboboxListCssClass(){const{opened:e}=this.state,{tags:t,theme:n}=this.props,o=n?n.split(" "):[],i=["tyk-combobox__list"];return e&&i.push("tyk-combobox__list--opened"),t&&i.push("tyk-combobox__list--has-tags"),o.length&&o.forEach((e=>{i.push(`tyk-form-group--${e}`)})),i.join(" ")}getCssClasses(){const{error:e,disabled:t,theme:n,labelwidth:o}=this.props,i=["tyk-form-group","tyk-combobox"],r=n?n.split(" "):[];return e&&i.push("has-error"),o&&i.push("tyk-form-group--label-has-width"),r.length&&r.forEach((e=>{i.push(`tyk-form-group--${e}`)})),t&&i.push("disabled"),i.join(" ")}getInputError(){const{error:e}=this.props;return e&&"true"!==e&&"false"!==e?t().createElement("p",{className:"tyk-form-control__error-message"},e):null}getStyles(){const{scrollTop:e}=document.documentElement,t=this.comboboxRef.current,n=t.offsetHeight,o=t.offsetWidth,i=t.getBoundingClientRect(),{left:r}=i;let s=0;return s=i.top+e+n,{top:s-1+"px",left:`${r}px`,width:`${o}px`}}getComboboxDisplayData(){const{stateSelectedValues:e}=this.state,{multiple:t,placeholder:n,values:o}=this.props;return e?e&&Array.isArray(e)&&!e.length?n:!e||Array.isArray(e)||e.id?Array.isArray(e)&&t?e.reduce(((t,n,o)=>t+n.name+(o!==e.length-1?", ":"")),""):!(null==o?void 0:o.length)||Array.isArray(e)||e.name?e.name:o.filter((t=>t.id===e.id))[0].name:n:n}manageSelectedTags(e){const{max:t,allowCustomValues:n}=this.props,{stateSelectedValues:o}=this.state,i=this.filterValues(),r={id:this.inputRef.current.value,name:this.inputRef.current.value};if(!1===n&&-1===e)return null;const s=i[e]||r,a=this.getSelectedIndex(s);let l={};if(this.inputRef.current.value="",a>-1&&this.isInInitialValues(s))l=this.removeSelectedValue(a);else if(-1===a){if(t&&o.length>=t)return l;l=this.addSelectedValue(s)}return l}manageSelectedValues(e){const{stateSelectedValues:t}=this.state,{multiple:n,onChange:o,max:i}=this.props,r=this.filterValues(),s=r[e];let a;const l=this.getSelectedIndex(s);if(s&&n)if(l>-1)a=this.removeSelectedValue(l);else{if(i&&t.length>=i)return a;a=this.addSelectedValue(r[e])}else a={stateSelectedValues:-1===l?s:{id:null}},null==o||o(-1===l?s:null);return a}removeSelectedValue(e){const{stateSelectedValues:t}=this.state,{onChange:n}=this.props,o=JSON.parse(JSON.stringify(t));return o.splice(e,1),n&&"function"==typeof n&&n(o.length?o:null),{stateSelectedValues:o,searchText:""}}addSelectedValue(e){const{stateSelectedValues:t}=this.state,{onChange:n}=this.props,o=JSON.parse(JSON.stringify(t));return o.push(e),n&&"function"==typeof n&&n(o.length?o:null),{stateSelectedValues:o,searchText:""}}isInInitialValues(e){const{values:t}=this.props;let n=!1;return t.forEach((t=>{e.id===t.id&&(n=!0)})),n}filterValues(){const{values:e,searchItem:t}=this.props;return this.inputRef.current?e.filter((e=>t?t(e,this.inputRef.current.value.toLowerCase()):$r.filterByName(e,this.inputRef.current.value.toLowerCase()))):e}bindEvents(){document.addEventListener("mousedown",this.handleClickOutside)}unBindEvents(){document.removeEventListener("mousedown",this.handleClickOutside)}reset(){const{multiple:e,tags:t,value:n}=this.props;this.setState({stateSelectedValues:Cr(e,t,n)})}focusInput(){this.inputRef.current&&this.inputRef.current.focus()}renderInput(e){const{disabled:n,tags:o,max:i,placeholder:r}=this.props,{width:s,searchText:a,stateSelectedValues:l}=this.state;return t().createElement("ul",{className:"tyk-form-control"+(o?" tyk-form-control--with-tags":""),onClick:this.focusInput,onKeyDown:()=>{},ref:this.comboboxRef},o?t().createElement(t().Fragment,null,(l||[]).map(((e,n)=>t().createElement("li",{className:"pill",key:e.id},t().createElement("button",{type:"button",onClick:this.handlePillRemoveClick.bind(this,n),"aria-label":"remove"},t().createElement(g,{type:"times"})),t().createElement("span",null,e.name)))),t().createElement("li",{className:"tyk-combobox__search-box",style:{width:(null==l?void 0:l.length)?"auto":"100%"}},(void 0===i||(null==l?void 0:l.length){"Enter"===e.key&&e.preventDefault(),this.handleItemsNavigation(e)},onKeyUp:this.onKeyUp,placeholder:(null==l?void 0:l.length)?"":r,ref:this.inputRef,style:{width:(null==l?void 0:l.length)?`${s}px`:"100%"}}),t().createElement("span",{ref:this.textRef,style:{visbility:"hidden",position:"absolute",top:"-9999px"}},a)),e.length>0&&t().createElement(U,{className:"tyk-combobox--with-tags__button-down",iconType:"arrow-down",iconOnly:!0,onClick:this.handleComboboxDropdownClick}))):t().createElement("li",{className:"tyk-combobox__placeholder",onClick:this.handleComboboxDropdownClick,onKeyDown:()=>{}},this.getComboboxDisplayData(),t().createElement(g,{family:"tykon",type:"arrowdown"})))}renderDropdown(e){const{tags:n}=this.props,{opened:o}=this.state;return t().createElement("ul",{className:this.getComboboxListCssClass(),ref:this.valuesListRef,style:this.getStyles()},n?null:t().createElement("li",{className:"combobox-search__container"},t().createElement("input",{autoFocus:o,className:"tyk-form-control",onKeyUp:this.onKeyUp,onKeyDown:this.handleItemsNavigation,key:"searchInput",ref:this.inputRef})),e.map(((e,n)=>t().createElement("li",{className:this.getListItemCssClasses(e,n),onClick:this.handleListItemClick.bind(this,n),onKeyDown:()=>{},key:e.id},this.getSelectedIndex(e)>-1?t().createElement(g,{type:"check"}):null,t().createElement("span",null," ",e.name)))))}render(){const{CustomListComponent:e,id:n,label:o,note:i}=this.props,{opened:r}=this.state,s=this.filterValues();return t().createElement(t().Fragment,null,t().createElement("div",{className:this.getCssClasses()},o?t().createElement("label",{htmlFor:n,style:this.getLabelStyles()},o):null,t().createElement("div",{className:"tyk-form-control__wrapper",style:this.getNonLabelWidth()},this.renderInput(s),i?t().createElement("p",{className:"tyk-form-control__help-block"},i):null,this.getInputError())),e?t().createElement(e,{ref:this.valuesListRef,className:this.getComboboxListCssClass(),getListItemCssClasses:this.getListItemCssClasses.bind(this),getSelectedIndex:this.getSelectedIndex.bind(this),filteredValues:s,handleListItemClick:this.handleListItemClick.bind(this)}):r&&s.length?dt().createPortal(this.renderDropdown(s),document.querySelector("body")):null)}}$r.propTypes={allowCustomValues:r().bool,CustomListComponent:r().elementType,searchItem:r().func,disabled:r().bool,error:r().string,id:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,multiple:r().bool,max:r().number,note:r().oneOfType([r().node,r().element,r().string]),onChange:r().func,placeholder:r().string,tags:r().bool,theme:r().string,value:r().oneOfType([r().string,r().instanceOf(Object),r().instanceOf(Array)]),values:r().instanceOf(Array)},$r.defaultProps={allowCustomValues:!0};const Sr=$r;function Er(n){const{value:o,max:i,tags:r,tagSeparators:s,addTagOnBlur:a,placeholder:l,disabled:c,renderValue:u,valueOverflow:h,focus:d,onMessage:p,readOnly:m}=n,f=(0,e.useRef)(null),y=(0,e.useRef)(null),[v,b]=(0,e.useState)(""),[w,x]=(0,e.useState)("70px");function k(e){if(s.some((t=>e.slice(-1)===t)))return;const t=y.current;t.innerHTML=e,x(`${Math.max(t.clientWidth,60)+10}px`),b(e),p("tag.input.change",e)}function C(){p("text-value.click")}function $(e,n=!1){if(m)return e||"-";const o=["tyk-combobox2__text-value",`overflow-${h}`,n&&"is-placeholder"].filter(Boolean).join(" ");return t().createElement("span",{className:o,title:"single"===h?e:void 0,role:"none",tabIndex:c?"-1":"0",onClick:C,onKeyDown:C},e)}function S(e){return u(e,{tags:r,tagSeparators:s,placeholder:l,disabled:c,renderValue:u,sendMessage:p})}return(0,e.useEffect)((()=>{d&&f.current&&f.current.focus()}),[d]),m?t().createElement("div",{className:"tyk-form-control--readonly"},$(o.map((e=>e.name)).join(", "))):r?t().createElement(t().Fragment,null,o.map((function(e){return u?S(e):t().createElement(mn,{key:e.id,theme:"combobox"},t().createElement("button",{type:"button",onClick:t=>{t.stopPropagation(),p("tag.remove",e.id)},"aria-label":"remove"},t().createElement(g,{type:"times"})),t().createElement("span",{title:e.name},e.name))})),o.lengthk(e.target.value),onKeyDown:e=>{"Enter"===e.key&&e.preventDefault(),function(e,t){if(r){if(""!==t||"Backspace"!==e||!o.length)return"Enter"===e?(p("tag.input.enter",t),void k("")):void("ArrowUp"!==e?"ArrowDown"!==e?"Escape"!==e?s.includes(e)&&(p("tag.add",t),k("")):p("tag.input.escape"):p("tag.input.arrowDown"):p("tag.input.arrowUp"));p("tag.remove",o[o.length-1].id)}}(e.key,e.target.value)},onFocus:()=>p("tag.input.focus"),onBlur:e=>{p("tag.input.blur",e.target.value),a&&k("")}}),t().createElement("span",{ref:y,style:{visbility:"hidden",position:"absolute",top:"-9999px"}}))):u?0===o.length?$(l,!0):o.map(S):0===o.length?$(l,!0):$(o.map((e=>e.name)).join(", "))}Er.propTypes={value:r().instanceOf(Array),max:r().number,tags:r().instanceOf(Array),tagSeparators:r().instanceOf(Array),addTagOnBlur:r().bool,placeholder:r().string,disabled:r().bool,renderValue:r().func,valueOverflow:r().string,focus:r().bool,onMessage:r().func,readOnly:r().bool};const Or=Er;function Tr(n){const{listRef:o,tags:i,values:r,searchValue:s,activeItem:a,onMessage:l,renderListItem:c,selectAll:u,showSearch:h}=n;return(0,e.useEffect)((()=>{if(!o.current)return;const e=o.current.querySelector(".active");e&&e.scrollIntoView({block:"end"})}),[a]),t().createElement(t().Fragment,null,!i&&h&&t().createElement("div",{className:"tyk-combobox2__combobox-search"},t().createElement("input",{autoFocus:!0,className:"tyk-form-control",value:s,onChange:e=>l("search.change",e.target.value),onKeyDown:e=>{"Escape"===e.key&&l("search.escape"),"ArrowUp"===e.key&&l("search.arrowUp"),"ArrowDown"===e.key&&l("search.arrowDown"),"Enter"===e.key&&l("search.enter")}})),r.length>0&&t().createElement("ul",{ref:o,className:"tyk-combobox2__combobox-list"},Boolean(u)&&function(){var e,n,o;const i=r.every((e=>e.selected)),s=r.every((e=>!e.selected)),a=null!=(e=null==u?void 0:u.label)?e:"Select All",c=null!=(n=null==u?void 0:u.mode)?n:"select",h=null!=(o=null==u?void 0:u.show)?o:"always",d=null==u?void 0:u.render;return"always"!==h&&("select"===c?i:s)?null:d?d({label:a,mode:c,show:h,isAllSelected:i,isNoneSelected:s},l):t().createElement("li",{onClick:()=>l("value.select-all","select"===c?!i:s),onKeyDown:()=>{}},("select"===c?i:s)&&t().createElement(g,{type:"check"}),a)}(),r.map((function(e){return c?c(e,{tags:i,searchValue:s,sendMessage:l,activeItem:a}):t().createElement("li",{key:e.id,title:e.name,className:[e.disabled&&"disabled",a&&e.id===a.id&&"active"].filter(Boolean).join(" "),onClick:()=>!e.disabled&&l("value.select",{item:e}),onKeyDown:()=>{}},e.selected&&t().createElement(g,{type:"check"}),t().createElement("span",{className:"item-name"},e.name))}))))}Tr.propTypes={listRef:r().instanceOf(Object),tags:r().bool,values:r().instanceOf(Array),searchValue:r().string,activeItem:r().instanceOf(Object),onMessage:r().func,renderListItem:r().func,selectAll:r().oneOfType([r().bool,r().shape({label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),mode:r().oneOf(["select","unselect"]),show:r().oneOf(["always","notSameState"]),render:r().func})]),showSearch:r().bool};const Ar=Tr;var _r=Object.defineProperty,Lr=Object.defineProperties,Mr=Object.getOwnPropertyDescriptors,Rr=Object.getOwnPropertySymbols,Nr=Object.prototype.hasOwnProperty,Ir=Object.prototype.propertyIsEnumerable,Pr=(e,t,n)=>t in e?_r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Dr=(e,t)=>{for(var n in t||(t={}))Nr.call(t,n)&&Pr(e,n,t[n]);if(Rr)for(var n of Rr(t))Ir.call(t,n)&&Pr(e,n,t[n]);return e},Fr=(e,t)=>Lr(e,Mr(t));function Br(n){var o=n,{value:i,values:r=[],valueOverflow:s="single",label:a="",labelwidth:l,tags:c=!1,tagSeparators:u=[" ","Enter"],addTagOnBlur:h=!1,max:d,multiple:p=!1,placeholder:m="",theme:f,note:y="",error:v="",disabled:b=!1,readOnly:w=!1,allowCustomValues:x=!0,searchItem:k,renderValue:C,renderListItem:$,renderList:S,CustomListComponent:E,onBeforeChange:O=(()=>!0),onChange:T=(()=>{}),floatingContainerConfig:A,expandMode:_,infiniteScrollerConfig:L,displayDropdownTrigger:M=!0,selectAll:R,closeOnSelect:N,showSearch:I=!1,required:P=!1,validateOnChange:D=(()=>{}),wrapperClassName:F=""}=o,B=((e,t)=>{var n={};for(var o in e)Nr.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Rr)for(var o of Rr(e))t.indexOf(o)<0&&Ir.call(e,o)&&(n[o]=e[o]);return n})(o,["value","values","valueOverflow","label","labelwidth","tags","tagSeparators","addTagOnBlur","max","multiple","placeholder","theme","note","error","disabled","readOnly","allowCustomValues","searchItem","renderValue","renderListItem","renderList","CustomListComponent","onBeforeChange","onChange","floatingContainerConfig","expandMode","infiniteScrollerConfig","displayDropdownTrigger","selectAll","closeOnSelect","showSearch","required","validateOnChange","wrapperClassName"]);const W=(0,e.useMemo)((()=>p?1/0:d||(c?1/0:1)),[p,d,c]),H=E?(e,{sendMessage:n})=>t().createElement(E,{filteredValues:e,handleListItemClick:t=>n("value.select",{item:e[t]})}):S,j=(0,e.useRef)(null),z=(0,e.useRef)(null),V=(0,e.useRef)(null),U=(0,e.useRef)(null),[G,K]=(0,e.useState)(jr(i,r)),[q,Y]=(0,e.useState)(r.map((e=>Hr(e)))),[J,X]=(0,e.useState)(""),[Q,Z]=(0,e.useState)(null),[ee,te]=(0,e.useState)(!1),[ne,oe]=(0,e.useState)(!1),[ie,re]=(0,e.useState)("");function se(){return(f?f.split(" "):[]).map((e=>`tyk-form-group--${e}`))}function ae(){const e=k||((e,t)=>{var n,o;return null==(o=null==(n=null==e?void 0:e.name)?void 0:n.toLowerCase())?void 0:o.includes(t)});return q.filter((t=>e(t,J.toLowerCase())))}function le(){te(!0)}function ce(){te(!1),c||ue(""),Z(null)}function ue(e){X(e),Q&&ae().every((e=>e.id!==Q.id))&&Z(null),e&&!ee&&le()}function he(e,t){const n=D(e,t);return re(n),void 0===n}function de(e){K(e),T(1!==W||c?e:e[0]||null)}function pe(e){if(!e)return;if(G.length>=W)return;if(G.some((({name:t})=>t===e)))return;const t=q.findIndex((t=>t.name===e));let n,o,i=[...G];-1===t?x&&(n={id:e,name:e},i=[...G,n]):(o=[...q.slice(0,t),Fr(Dr({},q[t]),{selected:!0}),...q.slice(t+1)],n=q[t],i=[...G,q[t]]),he(i,n)&&O(G,i)&&(o&&Y(o),de(i))}function ge({id:e}){const t=q.find((t=>t.id===e)),n=q.findIndex((t=>t.id===e));let o=G,i=q;t.selected?P&&1===W||(o=G.filter((e=>e.id!==t.id)),i=q.with(n,Fr(Dr({},t),{selected:!1}))):G.lengthFr(Dr({},e),{selected:e.id===t.id})))),he(o,t)&&O(G,o)&&(de(o),Y(i)),(1===W||N)&&ce()}function me(e){if(q.length>W)return;const t=e?[...q]:[];O(G,t)&&(de(t),Y(q.map((t=>Fr(Dr({},t),{selected:e})))),N&&ce())}function fe(){const e=ae().filter((e=>!e.disabled));if(0===e.length)return;if(null===Q||1===e.length)return void Z(e[e.length-1]);const t=e.findIndex((e=>e.id===Q.id));Z(e[t>0?t-1:e.length-1])}function ye(){const e=ae().filter((e=>!e.disabled));if(0===e.length)return;if(null===Q||1===e.length)return void Z(e[0]);const t=e.findIndex((e=>e.id===Q.id));Z(e[tt.id===e)),n=G.filter((t=>t.id!==e));O(G,n)&&(-1!==t&&Y([...q.slice(0,t),Fr(Dr({},q[t]),{selected:!1}),...q.slice(t+1)]),de(n))}(t),"input.change"===e&&ue(t),"input.enter"===e&&(Q?ge(Q):u.includes("Enter")&&(pe(t),ue(""))),"input.arrowUp"===e&&(le(),fe()),"input.arrowDown"===e&&(le(),ye()),"input.escape"===e&&ce(),"input.blur"===e&&h&&(pe(t),ue("")),"input.focus"===e&&le()}const xe=(0,e.useCallback)(((e,t)=>{e.startsWith("tag.")&&we(e.slice(4),t),"value.select"===e&&ge(t.item),"value.select-all"===e&&me(t),"text-value.click"===e&&le(),"search.change"===e&&ue(t),"search.escape"===e&&ce(),"search.arrowUp"===e&&fe(),"search.arrowDown"===e&&ye(),"search.enter"===e&&Q&&ge(Q)}),[we,ge,me,le,ue,ce,fe,ye]),ke=(0,e.useCallback)((()=>_?t().createElement(g,{type:ne?"compress-arrows-alt":"expand-arrows-alt"}):t().createElement(g,{family:"tykon",type:"arrowdown"})),[_,ne]);(0,e.useEffect)((()=>(window.addEventListener("click",be,!0),()=>window.removeEventListener("click",be,!0))),[]),(0,e.useEffect)((()=>{if(r.length){const e=r.map((e=>Fr(Dr({},Hr(e)),{selected:G.some((t=>t.id===e.id))})));Y(e),K((t=>t.map((t=>e.find((e=>e.id===t.id))||t))))}else q.length&&Y([])}),[r]),(0,e.useEffect)((()=>{const e=jr(i,q);K(e),Y((t=>t.map((t=>Fr(Dr({},Hr(t)),{selected:e.some((e=>e.id===t.id))})))))}),[i]),(0,e.useEffect)((()=>{if(!_)return()=>{};const e=z.current.querySelector(".tyk-combobox2__current-values"),t=()=>{e.scrollTop=e.scrollHeight},n=new MutationObserver(t),o=new ResizeObserver(t);return n.observe(e,{attributes:!0,childList:!0,subtree:!0}),o.observe(e),()=>{n.disconnect(),o.disconnect()}}));const Ce=ae(),$e=["tyk-combobox2__current-values",_&&"expand-mode","tyk-combobox2__current-values--"+(ne?"expanded":"collapsed")].join(" ");return t().createElement("div",Fr(Dr({ref:j,tabIndex:b?"-1":"0",onClickCapture:function(e){if(!b)return;if(!_)return void e.stopPropagation();const t=j.current.querySelector(".tyk-combobox2__values-container-trigger");t&&(t===e.target||t.contains(e.target)||e.stopPropagation())}},B),{className:[F,"tyk-form-group","tyk-combobox2",...se(),(v||ie)&&"has-error",l&&"tyk-form-group--label-has-width",b&&"disabled",_&&"is-expand-mode"].filter(Boolean).join(" ")}),a&&t().createElement("label",{style:{flexBasis:l||"auto"}},a),!w&&t().createElement("div",{className:"tyk-form-control__wrapper",style:{flexBasis:`calc(100% - ${l} - 20px)`}},t().createElement("div",{className:"tyk-form-control",ref:z},t().createElement("div",{className:$e,onClick:le,role:"none"},t().createElement(Or,{value:G,max:W,tags:c,tagSeparators:u,addTagOnBlur:h,allowCustomValues:x,placeholder:m,disabled:b,valueOverflow:s,renderValue:C,focus:ee,onMessage:xe,readOnly:w})),M&&t().createElement("div",{className:"tyk-combobox2__values-container-trigger"+(ne?" tyk-combobox2__values-container-trigger--expanded":""),role:"button",tabIndex:b?-1:0,onClick:ve,onKeyDown:ve},ke())),ee&&(!c||Ce.length>0)&&t().createElement(Pt,Fr(Dr({element:z,size:"matchElement",className:`tyk-combobox2__combobox-dropdown tyk-form-group ${se().join(" ")}`,ref:V,displayAxis:"vertical"},A),{infiniteScrollerConfig:L}),H?H(Ce,{tags:c,searchValue:J,activeItem:Q,listRef:U,sendMessage:xe}):t().createElement(Ar,{listRef:U,showSearch:I,values:Ce,tags:c,searchValue:J,activeItem:Q,onMessage:xe,renderListItem:$,selectAll:R})),y&&t().createElement("p",{className:"tyk-form-control__help-block"},y),(v&&"true"!==v&&"false"!==v||Boolean(ie))&&t().createElement("p",{className:"tyk-form-control__error-message"},v||ie)),w&&t().createElement("div",null,t().createElement(Or,{value:G,tags:c,renderValue:C,readOnly:w})))}Br.propTypes={allowCustomValues:r().bool,CustomListComponent:r().elementType,searchItem:r().func,renderValue:r().func,renderListItem:r().func,renderList:r().func,disabled:r().bool,readOnly:r().bool,error:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,max:r().number,multiple:r().bool,note:r().oneOfType([r().node,r().element,r().string]),onBeforeChange:r().func,onChange:r().func,placeholder:r().string,tags:r().bool,tagSeparators:r().arrayOf(r().string),addTagOnBlur:r().bool,theme:r().string,value:r().oneOfType([r().string,r().instanceOf(Array),r().instanceOf(Object)]),values:r().instanceOf(Array),floatingContainerConfig:r().instanceOf(Object),valueOverflow:r().oneOf(["single","multiple"]),expandMode:r().bool,infiniteScrollerConfig:r().instanceOf(Object),displayDropdownTrigger:r().bool,selectAll:r().oneOfType([r().bool,r().shape({label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),mode:r().oneOf(["select","unselect"]),show:r().oneOf(["always","notSameState"]),render:r().func})]),closeOnSelect:r().bool,showSearch:r().bool,required:r().bool,validateOnChange:r().func,wrapperClassName:r().string};const Wr=Br;function Hr(e,t){let n=e;if("string"==typeof e?n={id:e,name:e}:e.hasOwnProperty("name")||(n=Fr(Dr({},e),{name:e.id})),!t)return n;const o=t.find((e=>e.id===n.id));return o?Dr(Dr({},n),o):n}function jr(e,t){return e?Array.isArray(e)?e.map((e=>Hr(e,t))):[Hr(e,t)]:[]}const zr=require("flatpickr");var Vr=n.n(zr),Ur=Object.defineProperty,Gr=Object.defineProperties,Kr=Object.getOwnPropertyDescriptors,qr=Object.getOwnPropertySymbols,Yr=Object.prototype.hasOwnProperty,Jr=Object.prototype.propertyIsEnumerable,Xr=(e,t,n)=>t in e?Ur(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Qr({children:n,disabled:o,readOnly:i=!1,error:r,id:s,label:a,labelwidth:l,note:c,onClose:u,onChange:h,onOpen:d,theme:p,config:m={},value:f,wrapperClassName:y=""}){const[v,b]=(0,e.useState)(null),w=(0,e.useRef)(null),x=me(f),k=(0,e.useCallback)(((e,t)=>{if(!e)return!0;if(!Array.isArray(t))return e.getTime()!==t.getTime();let n=t;return e&&t.length&&e.length?(n=t.filter(((t,n)=>t.getTime()!==e[n].getTime())),n.length>0):t.length>0}),[]),C=(0,e.useCallback)((e=>{const t="range"===m.mode?e:e[0]||null;h&&("range"===m.mode?2===t.length&&k(x,t)&&h(t):h(t))}),[x,h,k]);(0,e.useEffect)((()=>{if(w.current&&!v){const t=Vr()(w.current,(e=((e,t)=>{for(var n in t||(t={}))Yr.call(t,n)&&Xr(e,n,t[n]);if(qr)for(var n of qr(t))Jr.call(t,n)&&Xr(e,n,t[n]);return e})({},m),Gr(e,Kr({defaultDate:f,onChange:C,onClose:u,onOpen:d}))));b(t)}var e;return()=>{v&&v.destroy()}}),[v]),(0,e.useEffect)((()=>{if(v){let e=f;"string"==typeof f?e=new Date(f):Array.isArray(f)&&(e=f.map((e=>new Date(e)))),k(x,e)&&(v.set("onChange",C),"range"===m.mode?e&&2===e.length&&v.setDate(e,!0):v.setDate(e,!0))}}),[x,f,v]);const $=["tyk-form-group","tyk-form-group--addon-right",y,...p?p.split(" ").map((e=>`tyk-form-group--${e}`)):[],l&&"tyk-form-group--label-has-width",r&&"has-error"].filter(Boolean).join(" "),S=(0,e.useCallback)((()=>{v&&v.open()}),[v]);return t().createElement(t().Fragment,null,(null==n?void 0:n.length)?n({openCalendar:S,ref:w}):t().createElement("div",{className:$},a?t().createElement("label",{htmlFor:s,style:l?{flexBasis:l}:{}},a):null,!i&&t().createElement("div",{className:"tyk-form-control__wrapper flatpickr",style:l?{flexBasis:`calc(100% - ${l} - 20px)`}:{}},t().createElement("div",{className:"tyk-input-group"},(()=>{let e={},n={};return(null==m?void 0:m.inline)&&(e={height:0,padding:0,width:0,visibility:"hidden"},n={display:"none"}),t().createElement(t().Fragment,null,t().createElement("input",{disabled:o,className:"tyk-form-control","data-input":!0,type:"date",ref:w,style:e}),t().createElement("div",{className:"tyk-input-group__addon",onClick:S,role:"button",onKeyUp:()=>{},tabIndex:0,style:n,"aria-label":"show calendar"},t().createElement(g,{type:"calendar"})))})()),c?t().createElement("p",{className:"tyk-form-control__help-block"},c):null,r&&"true"!==r&&"false"!==r?t().createElement("p",{className:"tyk-form-control__error-message"},r):null)),t().createElement("div",{className:"tyk-form-control--readonly"},i&&!f&&"-",i&&f&&Vr().formatDate(f,m.dateFormat||"d/m/Y")))}Qr.propTypes={config:r().instanceOf(Object),children:r().oneOfType([r().element,r().node,r().string,r().func]),disabled:r().bool,readOnly:r().bool,id:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,note:r().string,onChange:r().oneOfType([r().func,r().instanceOf(Array)]),onClose:r().oneOfType([r().func,r().instanceOf(Array)]),onOpen:r().oneOfType([r().func,r().instanceOf(Array)]),theme:r().string,error:r().string,value:r().oneOfType([r().instanceOf(Array),r().instanceOf(Object),r().string]),wrapperClassName:r().string};const Zr=Qr;function es(e){return es="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},es(e)}function ts(e,t){if(t.length1?"s":"")+" required, but only "+t.length+" present")}function ns(e){return ts(1,arguments),e instanceof Date||"object"===es(e)&&"[object Date]"===Object.prototype.toString.call(e)}function os(e){ts(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||"object"===es(e)&&"[object Date]"===t?new Date(e.getTime()):"number"==typeof e||"[object Number]"===t?new Date(e):("string"!=typeof e&&"[object String]"!==t||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn((new Error).stack)),new Date(NaN))}function is(e){if(null===e||!0===e||!1===e)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function rs(e){ts(1,arguments);var t=os(e),n=t.getUTCDay(),o=(n<1?7:0)+n-1;return t.setUTCDate(t.getUTCDate()-o),t.setUTCHours(0,0,0,0),t}function ss(e){ts(1,arguments);var t=os(e),n=t.getUTCFullYear(),o=new Date(0);o.setUTCFullYear(n+1,0,4),o.setUTCHours(0,0,0,0);var i=rs(o),r=new Date(0);r.setUTCFullYear(n,0,4),r.setUTCHours(0,0,0,0);var s=rs(r);return t.getTime()>=i.getTime()?n+1:t.getTime()>=s.getTime()?n:n-1}var as={};function ls(){return as}function cs(e,t){var n,o,i,r,s,a,l,c;ts(1,arguments);var u=ls(),h=is(null!==(n=null!==(o=null!==(i=null!==(r=null==t?void 0:t.weekStartsOn)&&void 0!==r?r:null==t||null===(s=t.locale)||void 0===s||null===(a=s.options)||void 0===a?void 0:a.weekStartsOn)&&void 0!==i?i:u.weekStartsOn)&&void 0!==o?o:null===(l=u.locale)||void 0===l||null===(c=l.options)||void 0===c?void 0:c.weekStartsOn)&&void 0!==n?n:0);if(!(h>=0&&h<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var d=os(e),p=d.getUTCDay(),g=(p=1&&p<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var g=new Date(0);g.setUTCFullYear(h+1,0,p),g.setUTCHours(0,0,0,0);var m=cs(g,t),f=new Date(0);f.setUTCFullYear(h,0,p),f.setUTCHours(0,0,0,0);var y=cs(f,t);return u.getTime()>=m.getTime()?h+1:u.getTime()>=y.getTime()?h:h-1}function hs(e,t){for(var n=e<0?"-":"",o=Math.abs(e).toString();o.length0?n:1-n;return hs("yy"===t?o%100:o,t.length)},ps=function(e,t){var n=e.getUTCMonth();return"M"===t?String(n+1):hs(n+1,2)},gs=function(e,t){return hs(e.getUTCDate(),t.length)},ms=function(e,t){return hs(e.getUTCHours()%12||12,t.length)},fs=function(e,t){return hs(e.getUTCHours(),t.length)},ys=function(e,t){return hs(e.getUTCMinutes(),t.length)},vs=function(e,t){return hs(e.getUTCSeconds(),t.length)},bs=function(e,t){var n=t.length,o=e.getUTCMilliseconds();return hs(Math.floor(o*Math.pow(10,n-3)),t.length)};var ws={G:function(e,t,n){var o=e.getUTCFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(o,{width:"abbreviated"});case"GGGGG":return n.era(o,{width:"narrow"});default:return n.era(o,{width:"wide"})}},y:function(e,t,n){if("yo"===t){var o=e.getUTCFullYear(),i=o>0?o:1-o;return n.ordinalNumber(i,{unit:"year"})}return ds(e,t)},Y:function(e,t,n,o){var i=us(e,o),r=i>0?i:1-i;return"YY"===t?hs(r%100,2):"Yo"===t?n.ordinalNumber(r,{unit:"year"}):hs(r,t.length)},R:function(e,t){return hs(ss(e),t.length)},u:function(e,t){return hs(e.getUTCFullYear(),t.length)},Q:function(e,t,n){var o=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"Q":return String(o);case"QQ":return hs(o,2);case"Qo":return n.ordinalNumber(o,{unit:"quarter"});case"QQQ":return n.quarter(o,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(o,{width:"narrow",context:"formatting"});default:return n.quarter(o,{width:"wide",context:"formatting"})}},q:function(e,t,n){var o=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"q":return String(o);case"qq":return hs(o,2);case"qo":return n.ordinalNumber(o,{unit:"quarter"});case"qqq":return n.quarter(o,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(o,{width:"narrow",context:"standalone"});default:return n.quarter(o,{width:"wide",context:"standalone"})}},M:function(e,t,n){var o=e.getUTCMonth();switch(t){case"M":case"MM":return ps(e,t);case"Mo":return n.ordinalNumber(o+1,{unit:"month"});case"MMM":return n.month(o,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(o,{width:"narrow",context:"formatting"});default:return n.month(o,{width:"wide",context:"formatting"})}},L:function(e,t,n){var o=e.getUTCMonth();switch(t){case"L":return String(o+1);case"LL":return hs(o+1,2);case"Lo":return n.ordinalNumber(o+1,{unit:"month"});case"LLL":return n.month(o,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(o,{width:"narrow",context:"standalone"});default:return n.month(o,{width:"wide",context:"standalone"})}},w:function(e,t,n,o){var i=function(e,t){ts(1,arguments);var n=os(e),o=cs(n,t).getTime()-function(e,t){var n,o,i,r,s,a,l,c;ts(1,arguments);var u=ls(),h=is(null!==(n=null!==(o=null!==(i=null!==(r=null==t?void 0:t.firstWeekContainsDate)&&void 0!==r?r:null==t||null===(s=t.locale)||void 0===s||null===(a=s.options)||void 0===a?void 0:a.firstWeekContainsDate)&&void 0!==i?i:u.firstWeekContainsDate)&&void 0!==o?o:null===(l=u.locale)||void 0===l||null===(c=l.options)||void 0===c?void 0:c.firstWeekContainsDate)&&void 0!==n?n:1),d=us(e,t),p=new Date(0);return p.setUTCFullYear(d,0,h),p.setUTCHours(0,0,0,0),cs(p,t)}(n,t).getTime();return Math.round(o/6048e5)+1}(e,o);return"wo"===t?n.ordinalNumber(i,{unit:"week"}):hs(i,t.length)},I:function(e,t,n){var o=function(e){ts(1,arguments);var t=os(e),n=rs(t).getTime()-function(e){ts(1,arguments);var t=ss(e),n=new Date(0);return n.setUTCFullYear(t,0,4),n.setUTCHours(0,0,0,0),rs(n)}(t).getTime();return Math.round(n/6048e5)+1}(e);return"Io"===t?n.ordinalNumber(o,{unit:"week"}):hs(o,t.length)},d:function(e,t,n){return"do"===t?n.ordinalNumber(e.getUTCDate(),{unit:"date"}):gs(e,t)},D:function(e,t,n){var o=function(e){ts(1,arguments);var t=os(e),n=t.getTime();t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0);var o=n-t.getTime();return Math.floor(o/864e5)+1}(e);return"Do"===t?n.ordinalNumber(o,{unit:"dayOfYear"}):hs(o,t.length)},E:function(e,t,n){var o=e.getUTCDay();switch(t){case"E":case"EE":case"EEE":return n.day(o,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(o,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(o,{width:"short",context:"formatting"});default:return n.day(o,{width:"wide",context:"formatting"})}},e:function(e,t,n,o){var i=e.getUTCDay(),r=(i-o.weekStartsOn+8)%7||7;switch(t){case"e":return String(r);case"ee":return hs(r,2);case"eo":return n.ordinalNumber(r,{unit:"day"});case"eee":return n.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(i,{width:"short",context:"formatting"});default:return n.day(i,{width:"wide",context:"formatting"})}},c:function(e,t,n,o){var i=e.getUTCDay(),r=(i-o.weekStartsOn+8)%7||7;switch(t){case"c":return String(r);case"cc":return hs(r,t.length);case"co":return n.ordinalNumber(r,{unit:"day"});case"ccc":return n.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(i,{width:"narrow",context:"standalone"});case"cccccc":return n.day(i,{width:"short",context:"standalone"});default:return n.day(i,{width:"wide",context:"standalone"})}},i:function(e,t,n){var o=e.getUTCDay(),i=0===o?7:o;switch(t){case"i":return String(i);case"ii":return hs(i,t.length);case"io":return n.ordinalNumber(i,{unit:"day"});case"iii":return n.day(o,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(o,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(o,{width:"short",context:"formatting"});default:return n.day(o,{width:"wide",context:"formatting"})}},a:function(e,t,n){var o=e.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(o,{width:"narrow",context:"formatting"});default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},b:function(e,t,n){var o,i=e.getUTCHours();switch(o=12===i?"noon":0===i?"midnight":i/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(o,{width:"narrow",context:"formatting"});default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},B:function(e,t,n){var o,i=e.getUTCHours();switch(o=i>=17?"evening":i>=12?"afternoon":i>=4?"morning":"night",t){case"B":case"BB":case"BBB":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(o,{width:"narrow",context:"formatting"});default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},h:function(e,t,n){if("ho"===t){var o=e.getUTCHours()%12;return 0===o&&(o=12),n.ordinalNumber(o,{unit:"hour"})}return ms(e,t)},H:function(e,t,n){return"Ho"===t?n.ordinalNumber(e.getUTCHours(),{unit:"hour"}):fs(e,t)},K:function(e,t,n){var o=e.getUTCHours()%12;return"Ko"===t?n.ordinalNumber(o,{unit:"hour"}):hs(o,t.length)},k:function(e,t,n){var o=e.getUTCHours();return 0===o&&(o=24),"ko"===t?n.ordinalNumber(o,{unit:"hour"}):hs(o,t.length)},m:function(e,t,n){return"mo"===t?n.ordinalNumber(e.getUTCMinutes(),{unit:"minute"}):ys(e,t)},s:function(e,t,n){return"so"===t?n.ordinalNumber(e.getUTCSeconds(),{unit:"second"}):vs(e,t)},S:function(e,t){return bs(e,t)},X:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();if(0===i)return"Z";switch(t){case"X":return ks(i);case"XXXX":case"XX":return Cs(i);default:return Cs(i,":")}},x:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();switch(t){case"x":return ks(i);case"xxxx":case"xx":return Cs(i);default:return Cs(i,":")}},O:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+xs(i,":");default:return"GMT"+Cs(i,":")}},z:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+xs(i,":");default:return"GMT"+Cs(i,":")}},t:function(e,t,n,o){var i=o._originalDate||e;return hs(Math.floor(i.getTime()/1e3),t.length)},T:function(e,t,n,o){return hs((o._originalDate||e).getTime(),t.length)}};function xs(e,t){var n=e>0?"-":"+",o=Math.abs(e),i=Math.floor(o/60),r=o%60;if(0===r)return n+String(i);var s=t||"";return n+String(i)+s+hs(r,2)}function ks(e,t){return e%60==0?(e>0?"-":"+")+hs(Math.abs(e)/60,2):Cs(e,t)}function Cs(e,t){var n=t||"",o=e>0?"-":"+",i=Math.abs(e);return o+hs(Math.floor(i/60),2)+n+hs(i%60,2)}const $s=ws;var Ss=function(e,t){switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},Es=function(e,t){switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},Os={p:Es,P:function(e,t){var n,o=e.match(/(P+)(p+)?/)||[],i=o[1],r=o[2];if(!r)return Ss(e,t);switch(i){case"P":n=t.dateTime({width:"short"});break;case"PP":n=t.dateTime({width:"medium"});break;case"PPP":n=t.dateTime({width:"long"});break;default:n=t.dateTime({width:"full"})}return n.replace("{{date}}",Ss(i,t)).replace("{{time}}",Es(r,t))}};const Ts=Os;var As=["D","DD"],_s=["YY","YYYY"];function Ls(e,t,n){if("YYYY"===e)throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("YY"===e)throw new RangeError("Use `yy` instead of `YY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("D"===e)throw new RangeError("Use `d` instead of `D` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("DD"===e)throw new RangeError("Use `dd` instead of `DD` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))}var Ms={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function Rs(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}var Ns,Is={date:Rs({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:Rs({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:Rs({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},Ps={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function Ds(e){return function(t,n){var o;if("formatting"===(null!=n&&n.context?String(n.context):"standalone")&&e.formattingValues){var i=e.defaultFormattingWidth||e.defaultWidth,r=null!=n&&n.width?String(n.width):i;o=e.formattingValues[r]||e.formattingValues[i]}else{var s=e.defaultWidth,a=null!=n&&n.width?String(n.width):e.defaultWidth;o=e.values[a]||e.values[s]}return o[e.argumentCallback?e.argumentCallback(t):t]}}function Fs(e){return function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=n.width,i=o&&e.matchPatterns[o]||e.matchPatterns[e.defaultMatchWidth],r=t.match(i);if(!r)return null;var s,a=r[0],l=o&&e.parsePatterns[o]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(l)?function(e,t){for(var n=0;n0?"in "+o:o+" ago":o},formatLong:Is,formatRelative:function(e,t,n,o){return Ps[e]},localize:{ordinalNumber:function(e,t){var n=Number(e),o=n%100;if(o>20||o<10)switch(o%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:Ds({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:Ds({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:Ds({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:Ds({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:Ds({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(Ns={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(e){return parseInt(e,10)}},function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.match(Ns.matchPattern);if(!n)return null;var o=n[0],i=e.match(Ns.parsePattern);if(!i)return null;var r=Ns.valueCallback?Ns.valueCallback(i[0]):i[0];return{value:r=t.valueCallback?t.valueCallback(r):r,rest:e.slice(o.length)}}),era:Fs({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:Fs({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:Fs({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:Fs({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:Fs({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};var Ws=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Hs=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,js=/^'([^]*?)'?$/,zs=/''/g,Vs=/[a-zA-Z]/;function Us(e,t,n){var o,i,r,s,a,l,c,u,h,d,p,g,m,f,y,v,b,w;ts(2,arguments);var x=String(t),k=ls(),C=null!==(o=null!==(i=null==n?void 0:n.locale)&&void 0!==i?i:k.locale)&&void 0!==o?o:Bs,$=is(null!==(r=null!==(s=null!==(a=null!==(l=null==n?void 0:n.firstWeekContainsDate)&&void 0!==l?l:null==n||null===(c=n.locale)||void 0===c||null===(u=c.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==a?a:k.firstWeekContainsDate)&&void 0!==s?s:null===(h=k.locale)||void 0===h||null===(d=h.options)||void 0===d?void 0:d.firstWeekContainsDate)&&void 0!==r?r:1);if(!($>=1&&$<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var S=is(null!==(p=null!==(g=null!==(m=null!==(f=null==n?void 0:n.weekStartsOn)&&void 0!==f?f:null==n||null===(y=n.locale)||void 0===y||null===(v=y.options)||void 0===v?void 0:v.weekStartsOn)&&void 0!==m?m:k.weekStartsOn)&&void 0!==g?g:null===(b=k.locale)||void 0===b||null===(w=b.options)||void 0===w?void 0:w.weekStartsOn)&&void 0!==p?p:0);if(!(S>=0&&S<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!C.localize)throw new RangeError("locale must contain localize property");if(!C.formatLong)throw new RangeError("locale must contain formatLong property");var E=os(e);if(!function(e){if(ts(1,arguments),!ns(e)&&"number"!=typeof e)return!1;var t=os(e);return!isNaN(Number(t))}(E))throw new RangeError("Invalid time value");var O=function(e){var t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e.getTime()-t.getTime()}(E),T=function(e,t){return ts(2,arguments),function(e,t){ts(2,arguments);var n=os(e).getTime(),o=is(t);return new Date(n+o)}(e,-is(t))}(E,O),A={firstWeekContainsDate:$,weekStartsOn:S,locale:C,_originalDate:E};return x.match(Hs).map((function(e){var t=e[0];return"p"===t||"P"===t?(0,Ts[t])(e,C.formatLong):e})).join("").match(Ws).map((function(o){if("''"===o)return"'";var i,r,s=o[0];if("'"===s)return(r=(i=o).match(js))?r[1].replace(zs,"'"):i;var a,l=$s[s];if(l)return null!=n&&n.useAdditionalWeekYearTokens||(a=o,-1===_s.indexOf(a))||Ls(o,t,String(e)),null!=n&&n.useAdditionalDayOfYearTokens||!function(e){return-1!==As.indexOf(e)}(o)||Ls(o,t,String(e)),l(T,o,C.localize,A);if(s.match(Vs))throw new RangeError("Format string contains an unescaped latin alphabet character `"+s+"`");return o})).join("")}var Gs=n(590),Ks=n.n(Gs),qs=Object.defineProperty,Ys=Object.defineProperties,Js=Object.getOwnPropertyDescriptors,Xs=Object.getOwnPropertySymbols,Qs=Object.prototype.hasOwnProperty,Zs=Object.prototype.propertyIsEnumerable,ea=(e,t,n)=>t in e?qs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ta=(e,t)=>{for(var n in t||(t={}))Qs.call(t,n)&&ea(e,n,t[n]);if(Xs)for(var n of Xs(t))Zs.call(t,n)&&ea(e,n,t[n]);return e};class na extends e.Component{static getMainFormValue(e){const t=new Array(e.length);return e.forEach(((e,n)=>{t[n]=e.props.value||void 0})),t}constructor(t){super(t);const{components:n}=t;this.submitButtonRef=(0,e.createRef)(),this.handleOnChange=this.handleOnChange.bind(this),this.submitForm=this.submitForm.bind(this),this.state={components:n,errors:{},mainError:null,mainFormValue:na.getMainFormValue(n),refs:[]}}componentDidMount(){const{addValueOnFieldChange:e,getMainFormButtonWidth:t}=this.props;this.createRefs(),t&&t(e?0:this.submitButtonRef.current.clientWidth)}static getDerivedStateFromProps(e,t){const n={},{components:o}=e,{components:i}=t;return Ks()(o,i)||Ks()(na.getMainFormValue(o),na.getMainFormValue(i))||(n.mainFormValue=na.getMainFormValue(o),n.components=o),n}handleOnChange(e,t,n){const{addValueOnFieldChange:o}=this.props;let i=this.state;i=ta(ta({},i),this.validateValue(n,e.props)),i.errors[e.props.name]||(i.mainFormValue[t]=n,e.props.onChange&&e.props.onChange(n)),this.setState((e=>ta(ta({},e),i)),(()=>{o&&this.submitForm()}))}getFormCssClasses(){const{noLabels:e}=this.props,t=["tyk-editable-list__form"];return e&&t.push("no-labels"),t.join(" ")}getButtonClassName(){const{buttonStyle:e,displayType:t}=this.props,n=[];return e&&n.push(e),t&&n.push(t),n.join(" ")}getComponentsError(e){const{error:t,errors:n,mainError:o}=this.state;return t||o?n[e.props.name]="true":t||o||"true"!==n[e.props.name]||delete n[e.props.name],n[e.props.name]?n[e.props.name].toString():void 0}createRefs(){const{components:t}=this.props,n=[];t.forEach((()=>{n.push((0,e.createRef)())})),this.setState({refs:n})}validateValue(e,t){const{mainError:n,errors:o}=this.state,{error:i,errorPersist:r}=this.props,s=t.validate?Object.keys(t.validate):[],a={errors:i||n?{}:ta({},o)};let l=!0;if(r)return a;for(const n of s)if((0,t.validate[n])(e)){a.errors[t.name]=t.validationmessages[n],l=!1;break}return l&&delete a.errors[t.name],a.mainError=null,a}hasMainFormErrors(e){const{components:t,errorPersist:n}=this.props,{mainFormValue:o}=this.state,i={errors:ta({},e)};return(!n||-1!==o.indexOf(void 0))&&(Object.keys(i.errors).length>0||(t.forEach(((e,t)=>{i.errors=ta(ta({},i.errors),this.validateValue(o[t],e.props).errors)})),Object.keys(i.errors).length>0))}resetForm(){const{refs:e}=this.state,{components:t}=this.props;e.forEach((e=>{var t;(null==(t=e.current)?void 0:t.reset)&&e.current.reset()})),this.setState({errors:{},mainError:null,mainFormValue:na.getMainFormValue(t)})}showMainError(e){this.setState({mainError:e})}submitForm(){const{errors:e,mainFormValue:t}=this.state,{errorPersist:n,onSubmit:o,validate:i,validationmessage:r}=this.props;n&&(o(t),this.resetForm()),0===Object.keys(e).length&&o&&"function"==typeof o&&(i&&i(t)?this.showMainError(r):(o(t),this.resetForm()))}render(){const{addValueOnFieldChange:e,components:n,buttonName:o,disabled:i,displayType:r,error:s}=this.props,{mainError:a,refs:l,errors:c}=this.state;return t().createElement("div",null,t().createElement("div",{className:this.getFormCssClasses()},t().createElement(yi,null,n.map(((e,n)=>{const o=e.name;console.log("ComponentName",o);const s=e.props,{onChange:a,value:c}=s,u=((e,t)=>{var n={};for(var o in e)Qs.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Xs)for(var o of Xs(e))t.indexOf(o)<0&&Zs.call(e,o)&&(n[o]=e[o]);return n})(s,["onChange","value"]);return t().createElement(li,{size:`md-${e.size||"12"} lg-${e.size||"12"}`,key:e.props.name},t().createElement(o,(h=ta({disabled:i||e.props.disabled,onChange:this.handleOnChange.bind(this,e,n)},u),d={label:"inline"===r?"":e.props.label,error:this.getComponentsError(e),ref:l[n],value:c},Ys(h,Js(d)))));var h,d}))),e?null:t().createElement("span",{className:this.getButtonClassName(),ref:this.submitButtonRef},t().createElement(U,{disabled:this.hasMainFormErrors(c),className:"tyk-editable-list__submit-btn",onClick:this.submitForm,theme:"default",type:"button",size:"inline"===r?"sm":"md"},o||"ADD"))),s||a?t().createElement("div",{className:"tyk-editable-list-main-error"},t().createElement("p",{className:"error-message"},s||a)):null)}}na.propTypes={addValueOnFieldChange:r().bool,noLabels:r().bool,buttonName:r().string,buttonStyle:r().string,components:r().instanceOf(Array),displayType:r().string,disabled:r().bool,getMainFormButtonWidth:r().func,error:r().string,errorPersist:r().bool,onSubmit:r().func,validate:r().func,validationmessage:r().string};const oa=na;var ia=Object.defineProperty,ra=Object.getOwnPropertySymbols,sa=Object.prototype.hasOwnProperty,aa=Object.prototype.propertyIsEnumerable,la=(e,t,n)=>t in e?ia(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ca=(e,t)=>{for(var n in t||(t={}))sa.call(t,n)&&la(e,n,t[n]);if(ra)for(var n of ra(t))aa.call(t,n)&&la(e,n,t[n]);return e};class ua extends e.Component{static getItemListValue(e){let t=null;return"string"==typeof e&&(t=e),"[object Object]"===Object.prototype.toString.call(e)&&(t=e.name),ns(e)&&(t=Us(e,"dd/MM/yyyy")),t}static getListItemCssClass(e){const t=[];return"inline"===e&&t.push("tyk-editable-list-item--inline"),t.join(" ")}constructor(t){super(t);const{value:n}=this.props;this.state={initialValue:n||"",value:n||[],buttonWidth:0},this.startIndex=1,this.handleFormSubmit=this.handleFormSubmit.bind(this),this.getMainFormButtonWidth=this.getMainFormButtonWidth.bind(this),this.dropdownListItemRef=(0,e.createRef)()}static getDerivedStateFromProps(e,t){const n={};return e.value&&JSON.stringify(e.value)!==JSON.stringify(t.initialValue)&&(n.value=e.value||[],n.initialValue=e.value||""),n.value?n:null}handleFormSubmit(e){const t=this.addValues(e);this.setState((e=>ca(ca({},e),t)),(()=>{this.triggerOnChange(t.value.length-1,null,e)}))}handleItemUpdate(e,t){let n;this.setState((o=>{const i=ca({},o);return n=(0,pe.fromJS)(i.value[e].value).toJS(),i.value[e].value=t,i.value[e].editMode=!1,i}),(()=>{this.triggerOnChange(e,n,t)}))}handleChildrenOnChange(e,t){let n;this.setState((o=>{const i=ca({},o);return n=(0,pe.fromJS)(i.value[e].children).toJS(),i.value[e].children=t,i}),(()=>{this.triggerOnChange(e,n,t)}))}getListItemsCssClass(e){const{config:t}=this.props,n=["tyk-editable-list-items"];return n.push(t.displayType||"table"),"inline"===e&&n.push("tyk-editable-list-items--inline"),n.join(" ")}getFormInputKey(){return this.startIndex+=1,this.startIndex}getListItemText(e){const{config:n}=this.props;let o=null;switch(n.displayType){case"list":case"inline":o=e.value.reduce(((t,n,o)=>{const i=ua.getItemListValue(n);let r=", ";return o===e.value.length-1&&(r=""),t+i+r}),"");break;default:o=t().createElement(yi,null,n.components.map(((n,o)=>t().createElement(li,{key:this.getFormInputKey(),size:`md-${n.size} lg-${n.size}`},ua.getItemListValue(e.value[o])))))}return o}getMainFormButtonWidth(e){this.setState({buttonWidth:e})}setItemEditMode(e){const t=this.closeListItems();this.setState((n=>{const o=ca({},n);return o.value=t,o.value[e].editMode=!o.value[e].editMode,o}))}isInList(e,t){const{value:n}=this.state;let o=!1;return n.forEach(((n,i)=>{JSON.stringify(n.value)===JSON.stringify(t)&&(o=!(e>=0&&i===e))})),o}addValues(e){const{value:t}=this.state,{config:n}=this.props,o={editMode:!1,value:e},i={value:t.slice(0)};return n.children&&(o.children=[]),i.value.push(o),i}removeListItem(e){let t;this.setState((n=>{const o=n.value.slice(0);return t=o.splice(e,1),{value:o}}),(()=>{this.triggerOnChange(e,t,null)}))}closeListItems(){const{value:e}=this.state;return e.map((e=>{const t=ca({},e);return t.editMode?(t.editMode=!1,t):t}))}triggerOnChange(e,t,n){const{onChange:o}=this.props,{value:i}=this.state;o&&"function"==typeof o&&o(i.length?i:null,e,t,n)}genListItem(e,n){var o;const{config:i,disabled:r}=this.props,{buttonWidth:s,value:a}=this.state,l=(0,pe.fromJS)(i.components).toJS();return e.value.forEach(((e,t)=>{l[t].props.value=e})),t().createElement("li",{key:n,className:ua.getListItemCssClass(i.displayType),ref:this.dropdownListItemRef},t().createElement("div",{className:`tyk-editable-list-item__text ${i.displayType||"table"}${e.editMode?" edit-mode-wrapper":""}`},e.editMode?t().createElement(t().Fragment,null,t().createElement(oa,{buttonName:"Update",noLabels:i.noLabels,disabled:r,displayType:i.displayType,components:l,onSubmit:this.handleItemUpdate.bind(this,n),validate:this.isInList.bind(this,n),validationmessage:"This value is already in the list"}),t().createElement("button",{type:"button",className:"tyk-editable-list-action__button on-edit",onClick:this.removeListItem.bind(this,n),"aria-label":"remove"},t().createElement(g,{type:"trash"}))):t().createElement(t().Fragment,null,this.getListItemText(e,n),t().createElement("div",{className:"tyk-editable-list-item__controls",style:{display:"block",width:"inline"===i.displayType?"auto":`${s+60}px`}},t().createElement("button",{disabled:r,type:"button",className:"tyk-editable-list-action__button",onClick:this.setItemEditMode.bind(this,n),"aria-label":"edit"},t().createElement(g,{type:"edit"})),t().createElement("button",{disabled:r,type:"button",className:"tyk-editable-list-action__button",onClick:this.removeListItem.bind(this,n),"aria-label":"remove"},t().createElement(g,{type:"trash"}))))),i.children?t().createElement(ua,{disabled:r,onChange:this.handleChildrenOnChange.bind(this,n),config:i.children.config,value:(null==(o=a[n])?void 0:o.children)||[]}):null)}genList(){const{config:e}=this.props,{buttonWidth:n,value:o}=this.state;return o&&0!==o.length?t().createElement(t().Fragment,null,"table"!==e.displayType&&e.displayType?null:t().createElement("div",{className:"tyk-editable-list__header",style:{paddingRight:`${n+60}px`}},t().createElement(yi,null,e.components.map(((e,n)=>t().createElement(li,{key:e.props.label||n,size:`md-${e.size||12} lg-${e.size||12}`},e.props.label))))),t().createElement("ul",{className:this.getListItemsCssClass(e.displayType)},o.map(((e,t)=>this.genListItem(e,t))))):null}render(){const{addValueOnFieldChange:e,config:n,error:o,disabled:i,label:r}=this.props,s=document.querySelector(n.appendTo)||document.querySelector("body");return t().createElement("div",{className:"tyk-editable-list"},r?t().createElement("label",null,r):null,t().createElement(oa,{addValueOnFieldChange:e,components:n.components,buttonName:n.formButtonTitle,buttonStyle:n.formButtonStyle,disabled:i,error:o,errorPersist:!!o,noLabels:n.noLabels,onSubmit:this.handleFormSubmit,validate:this.isInList.bind(this,-1),validationmessage:"This value is already in the list",getMainFormButtonWidth:this.getMainFormButtonWidth}),n.appendTo?dt().createPortal(this.genList(),s):this.genList())}}ua.propTypes={addValueOnFieldChange:r().bool,disabled:r().bool,error:r().string,config:r().instanceOf(Object),onChange:r().func,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),value:r().oneOfType([r().instanceOf(Array),r().instanceOf(Object)])};const ha=ua;function da({label:e,addButtonName:n,onAddRow:o,disabled:i,readOnly:r}){return t().createElement("div",{className:"editable-list__header"},e?t().createElement("label",null,e):null,!i&&!r&&t().createElement(U,{theme:"primary rounded-corners",onClick:o},n||"Add"))}da.propTypes={disabled:r().bool,readOnly:r().bool,onAddRow:r().func,addButtonName:r().string,label:r().oneOfType([r().string,r().element,r().node])};const pa=da;function ga({fields:e,readOnly:n}){return t().createElement("li",{className:"editable-list__item editable-list__item-header"},e.map((e=>{var n,o;return t().createElement("div",{key:(null==(n=null==e?void 0:e.props)?void 0:n.label)||JSON.stringify(e),className:`editable-list__item-cell editable-list__item--size-${(null==e?void 0:e.size)||12}`},null==(o=null==e?void 0:e.props)?void 0:o.label)})),t().createElement("div",{className:`editable-list__item-cell editable-list__item-action ${n&&"editable-list__item-action--read-only"}`},"Delete"))}ga.propTypes={fields:r().instanceOf(Array),readOnly:r().bool};const ma=ga;var fa=Object.defineProperty,ya=Object.defineProperties,va=Object.getOwnPropertyDescriptors,ba=Object.getOwnPropertySymbols,wa=Object.prototype.hasOwnProperty,xa=Object.prototype.propertyIsEnumerable,ka=(e,t,n)=>t in e?fa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Ca({fields:e,disabled:n,readOnly:o,errors:i,components:r,onChange:s,onDelete:a,value:l,rowIndex:c}){return t().createElement("li",{className:"editable-list__item"},r.map(((r,a)=>{var u,h,d;const p=e[a],g="function"==typeof p?p(c,a):p;return t().createElement("div",{key:`${c}-${a}`,className:`editable-list__item-cell editable-list__item--size-${(null==(u=e[a])?void 0:u.size)||12}`},t().createElement(r,(m=((e,t)=>{for(var n in t||(t={}))wa.call(t,n)&&ka(e,n,t[n]);if(ba)for(var n of ba(t))xa.call(t,n)&&ka(e,n,t[n]);return e})({},null==g?void 0:g.props),f={label:"",value:l[a],onChange:s.bind(null,a),error:null==i?void 0:i[a],disabled:n||(null==(h=null==g?void 0:g.props)?void 0:h.disabled),readOnly:o||(null==(d=null==g?void 0:g.props)?void 0:d.readOnly)},ya(m,va(f)))));var m,f})),t().createElement("div",{className:`editable-list__item-cell editable-list__item-action ${o&&"editable-list__item-action--read-only"}`},t().createElement(U,{iconOnly:!0,iconType:"trash-alt",theme:"primary-link",onClick:a,disabled:o||n})))}Ca.propTypes={disabled:r().bool,readOnly:r().bool,rowIndex:r().oneOfType([r().string,r().number]),fields:r().instanceOf(Array),errors:r().instanceOf(Array),components:r().instanceOf(Array),value:r().instanceOf(Array),onChange:r().func,onDelete:r().func};const $a=Ca;var Sa=Object.defineProperty,Ea=Object.defineProperties,Oa=Object.getOwnPropertyDescriptors,Ta=Object.getOwnPropertySymbols,Aa=Object.prototype.hasOwnProperty,_a=Object.prototype.propertyIsEnumerable,La=(e,t,n)=>t in e?Sa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;let Ma=1;function Ra({addButtonName:n,disabled:o,readOnly:i,fields:r,label:s,error:a,value:l=[],onChange:c=(()=>{}),hideOnEmpty:u=!0,wrapperClassName:h=""}){const[d,p]=(0,e.useState)(null),g=(e,t,n,o)=>{var i;const s=l?[...l]:[];if(l){const o=[...s[e]];o[t]=n,s[e]=o,s[e].id=l[e].id}else s[e]=[...new Array(r.length)],s[e][t]=n;if((null==(i=null==d?void 0:d[e])?void 0:i[t])&&o){const n=[...d],o=[...n[e]];o[t]=null,n[e]=o,p(n)}c(s)},m=(0,e.useMemo)((()=>r.map((n=>{const o="function"==typeof n?n():n;return i=(null==o?void 0:o.component)||null,n=>{var o=n,{onChange:r,validate:s,error:a}=o,l=((e,t)=>{var n={};for(var o in e)Aa.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ta)for(var o of Ta(e))t.indexOf(o)<0&&_a.call(e,o)&&(n[o]=e[o]);return n})(o,["onChange","validate","error"]);const[c,u]=(0,e.useState)(null),h=(0,e.useCallback)((e=>{const t=(null==e?void 0:e.target)?["radio","checkbox"].includes(e.target.type)?e.target.checked:null==e?void 0:e.target.value:e;let n=!0;if(s&&"function"==typeof s){const e=s(t);n=!e,u(e)}r(t,n)}),[s,r]);return t().createElement(i,(d=((e,t)=>{for(var n in t||(t={}))Aa.call(t,n)&&La(e,n,t[n]);if(Ta)for(var n of Ta(t))_a.call(t,n)&&La(e,n,t[n]);return e})({},l),Ea(d,Oa({onChange:h,error:c||a}))));var d};var i}))),[]),f=e=>{if(!l)return;const t=[...l];t.splice(e,1),c(t)};return t().createElement("div",{className:`editable-list__wrapper tyk-form-group tyk-form-group--default ${a?"has-error":""} ${h}`},t().createElement(pa,{disabled:o,readOnly:i,label:s,addButtonName:n,onAddRow:()=>{const e=((e,t)=>{var n;return null==(n=t||[[void 0,void 0]])?void 0:n.map((t=>null==t?void 0:t.map(((t,n)=>{var o,i;return null==(i=(o=e[n].props).validate)?void 0:i.call(o,t)}))))})(r,l);if((e=>{var t;return Boolean(null==(t=null==e?void 0:e.flat())?void 0:t.filter(Boolean).length)})(e))return void p(e);const t=[...new Array(r.length)];t.id="row-"+Ma++,c([...l,t])}}),(null==l?void 0:l.length)||!u?t().createElement("ul",{className:"editable-list__list"},(l||[[]]).map(((e,n)=>t().createElement($a,{key:e.id||n,rowIndex:n,disabled:o,readOnly:i,fields:r,onChange:g.bind(null,n),onDelete:f.bind(null,n),value:e,errors:null==d?void 0:d[n],components:m}))),t().createElement(ma,{fields:r,readOnly:i})):null,a&&"true"!==a&&"false"!==a?t().createElement("p",{className:"tyk-form-control__error-message"},a):null)}Ra.propTypes={disabled:r().bool,readOnly:r().bool,addButtonName:r().string,label:r().oneOfType([r().string,r().element,r().node]),fields:r().instanceOf(Array),onChange:r().func,value:r().oneOfType([r().instanceOf(Object),r().instanceOf(Array)]),error:r().string,hideOnEmpty:r().bool,wrapperClassName:r().string};const Na=Ra;var Ia=Object.defineProperty,Pa=Object.defineProperties,Da=Object.getOwnPropertyDescriptors,Fa=Object.getOwnPropertySymbols,Ba=Object.prototype.hasOwnProperty,Wa=Object.prototype.propertyIsEnumerable,Ha=(e,t,n)=>t in e?Ia(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function ja(n){var o=n,{error:i,theme:r,labelwidth:s,wrapperClassName:a="",id:l,label:c,note:u,accept:h,value:d,onChange:p}=o,m=((e,t)=>{var n={};for(var o in e)Ba.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Fa)for(var o of Fa(e))t.indexOf(o)<0&&Wa.call(e,o)&&(n[o]=e[o]);return n})(o,["error","theme","labelwidth","wrapperClassName","id","label","note","accept","value","onChange"]);const f=(0,e.useRef)();return t().createElement("div",{className:function(){const e=[a,"tyk-form-group"],t=r?r.split(" "):[];return t.length&&t.forEach((t=>{e.push(`tyk-form-group--${t}`)})),s&&e.push("tyk-form-group--label-has-width"),i&&e.push("has-error"),e.join(" ")}()},c?t().createElement("label",{htmlFor:l,style:function(){const e={};return s&&(e.flexBasis=s),e}()},c):null,t().createElement("div",{className:"tyk-form-control__wrapper"},t().createElement("div",{className:"tyk-file-input__wrapper",style:function(){const e={};return s&&(e.flexBasis=`calc(100% - ${s} - 20px)`),e}()},t().createElement("input",(y=((e,t)=>{for(var n in t||(t={}))Ba.call(t,n)&&Ha(e,n,t[n]);if(Fa)for(var n of Fa(t))Wa.call(t,n)&&Ha(e,n,t[n]);return e})({accept:h,className:"tyk-form-control"},m),Pa(y,Da({onChange:function(e){p(e.target.files)},ref:f,type:"file"})))),f.current&&f.current.files.length>0?t().createElement("button",{onClick:function(){f.current.value="",p("")},type:"button","aria-label":"clear value"},t().createElement(g,{type:"times"})):null),u?t().createElement("p",{className:"tyk-form-control__help-block"},u):null),i&&"true"!==i&&"false"!==i?t().createElement("p",{className:"tyk-form-control__error-message"},i):null);var y}ja.propTypes={accept:r().string,disabled:r().bool,id:r().string,error:r().oneOfType([r().string,r().bool]),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,placeholder:r().string,theme:r().string,value:r().instanceOf(Object),wrapperClassName:r().string};const za=ja;var Va=Object.defineProperty,Ua=Object.defineProperties,Ga=Object.getOwnPropertyDescriptors,Ka=Object.getOwnPropertySymbols,qa=Object.prototype.hasOwnProperty,Ya=Object.prototype.propertyIsEnumerable,Ja=(e,t,n)=>t in e?Va(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Xa extends e.Component{static getAddon(e){return t().createElement("div",{className:"tyk-input-group__addon"},e)}constructor(e){super(e);const{value:t}=this.props;this.state={initValue:t,stateValue:t},this.handleOnChange=this.handleOnChange.bind(this)}componentDidUpdate(e){const{isfield:t,value:n,onChange:o}=this.props;t||e.value===n||this.setState({stateValue:n},(()=>{o&&o(n)}))}handleOnChange(e){const{onChange:t,isfield:n}=this.props,o=e.target.value;n?t(o):this.setState({stateValue:o},(()=>{t&&t(o)}))}getLabelStyles(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=e),t}getNonLabelWidth(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=`calc(100% - ${e} - 20px)`),t}getInputError(){const{error:e}=this.props;return e&&"true"!==e&&"false"!==e?t().createElement("p",{className:"tyk-form-control__error-message"},e):null}getCssClasses(){const{error:e,theme:t,labelwidth:n,inputgroupaddonleft:o,inputgroupaddonright:i}=this.props,r=["tyk-form-group"],s=t?t.split(" "):[];return s.length&&s.forEach((e=>{r.push(`tyk-form-group--${e}`)})),o&&r.push("tyk-form-group--addon-left"),i&&r.push("tyk-form-group--addon-right"),n&&r.push("tyk-form-group--label-has-width"),e&&r.push("has-error"),r.join(" ")}getInputGroupAddon(){const{inputgroupaddonleft:e,inputgroupaddonright:n}=this.props;return t().createElement("div",{className:"tyk-input-group"},e?Xa.getAddon(e):null,this.getInputComponent(),n?Xa.getAddon(n):null)}getInputComponent(){const e=this.props,{isfield:n,onChange:o,value:i}=e,r=((e,t)=>{var n={};for(var o in e)qa.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ka)for(var o of Ka(e))t.indexOf(o)<0&&Ya.call(e,o)&&(n[o]=e[o]);return n})(e,["isfield","onChange","value"]),{stateValue:s}=this.state;return t().createElement("input",(a=((e,t)=>{for(var n in t||(t={}))qa.call(t,n)&&Ja(e,n,t[n]);if(Ka)for(var n of Ka(t))Ya.call(t,n)&&Ja(e,n,t[n]);return e})({autoComplete:"off",className:"tyk-form-control"},r),l={onChange:this.handleOnChange,value:n?i:s},Ua(a,Ga(l))));var a,l}reset(){const{initValue:e}=this.state;this.setState({stateValue:e})}render(){const{label:e,id:n,inputgroupaddonleft:o,inputgroupaddonright:i,note:r,readOnly:s,value:a}=this.props;return t().createElement("div",{className:this.getCssClasses()},e?t().createElement("label",{htmlFor:n,style:this.getLabelStyles()},e):null,!s&&t().createElement("div",{className:"tyk-form-control__wrapper",style:this.getNonLabelWidth()},o||i?this.getInputGroupAddon():this.getInputComponent(),r?t().createElement("p",{className:"tyk-form-control__help-block"},r):null,this.getInputError()),s&&t().createElement("div",{className:"tyk-form-control--readonly"},a||"-"))}}Xa.propTypes={disabled:r().bool,readOnly:r().bool,id:r().string,isfield:r().bool,error:r().oneOfType([r().string,r().bool]),inputgroupaddonleft:r().oneOfType([r().element,r().node,r().string]),inputgroupaddonright:r().oneOfType([r().element,r().node,r().string]),label:r().oneOfType([r().string,r().element,r().node]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,placeholder:r().string,theme:r().string,value:r().oneOfType([r().number,r().string])};const Qa=Xa;var Za=Object.defineProperty,el=Object.defineProperties,tl=Object.getOwnPropertyDescriptors,nl=Object.getOwnPropertySymbols,ol=Object.prototype.hasOwnProperty,il=Object.prototype.propertyIsEnumerable,rl=(e,t,n)=>t in e?Za(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,sl=(e,t)=>{for(var n in t||(t={}))ol.call(t,n)&&rl(e,n,t[n]);if(nl)for(var n of nl(t))il.call(t,n)&&rl(e,n,t[n]);return e};function al(n,o){var i=n,{error:r,onChange:s,readOnly:a,id:l,inputgroupaddonleft:c,inputgroupaddonright:u,label:h,labelwidth:d,note:p,theme:g,value:m,wrapperClassName:f=""}=i,y=((e,t)=>{var n={};for(var o in e)ol.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&nl)for(var o of nl(e))t.indexOf(o)<0&&il.call(e,o)&&(n[o]=e[o]);return n})(i,["error","onChange","readOnly","id","inputgroupaddonleft","inputgroupaddonright","label","labelwidth","note","theme","value","wrapperClassName"]);const v=(0,e.useRef)();(0,e.useImperativeHandle)(o,(()=>({focus:()=>{v.current.focus()}})));const b=e=>t().createElement("div",{className:"tyk-input-group__addon"},e),w=e=>{s(e,e.target.value)},x=()=>{return t().createElement("input",(e=sl({autoComplete:"off",className:"tyk-form-control"},y),el(e,tl({onChange:w,value:m,ref:v}))));var e};return t().createElement("div",{className:(()=>{const e=[f,"tyk-form-group"],t=g?g.split(" "):[];return t.length&&t.forEach((t=>{e.push(`tyk-form-group--${t}`)})),c&&e.push("tyk-form-group--addon-left"),u&&e.push("tyk-form-group--addon-right"),d&&e.push("tyk-form-group--label-has-width"),r&&e.push("has-error"),e.join(" ")})()},h?t().createElement("label",{htmlFor:l,style:sl({},d&&{flexBasis:d})},h):null,!a&&t().createElement("div",{className:"tyk-form-control__wrapper",style:sl({},d&&{flexBasis:`calc(100% - ${d} - 20px)`})},c||u?t().createElement("div",{className:"tyk-input-group"},c?b(c):null,x(),u?b(u):null):x(),p?t().createElement("p",{className:"tyk-form-control__help-block"},p):null,r&&"true"!==r&&"false"!==r?t().createElement("p",{className:"tyk-form-control__error-message"},r):null),a&&t().createElement("div",{className:"tyk-form-control--readonly"},m||"-"))}al.propTypes={disabled:r().bool,readOnly:r().bool,id:r().string,error:r().oneOfType([r().string,r().bool]),inputgroupaddonleft:r().oneOfType([r().element,r().node,r().string]),inputgroupaddonright:r().oneOfType([r().element,r().node,r().string]),label:r().oneOfType([r().string,r().element,r().node]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,placeholder:r().string,theme:r().string,value:r().oneOfType([r().number,r().string]),wrapperClassName:r().string};const ll=(0,e.forwardRef)(al),cl=(0,e.createContext)();function ul({item:n,itemType:o,searchValue:i,onChange:r}){const s=(0,e.useCallback)((e=>(null==e?void 0:e.length)>0?e.some((e=>{var t;return null==(t=n[e])?void 0:t.includes(i)})):JSON.stringify(n).includes(i)),[n,i]),a=(0,e.useCallback)((()=>{r(n)}),[r,n]);return t().createElement(cl.Consumer,null,(e=>s(e.fieldsToSearchOn)?t().createElement("li",null,t().createElement("div",null,t().createElement("span",{className:"tyk-multiselect-item__name"},e.itemDisplayTemplate?e.itemDisplayTemplate(n):JSON.stringify(n)),t().createElement("span",{className:"tyk-multiselect-item__controls"},t().createElement(U,{iconType:"normal"===o?"plus":"minus",iconOnly:!0,onClick:a,disabled:e.disabled||e.maxSelections&&e.maxSelections===e.nrSelectedItems&&"normal"===o}),t().createElement(U,{iconType:e.opened[n.id]?"chevron-up":"chevron-down",iconOnly:!0,onClick:()=>e.onGetItemDetails(n)}))),n.details?t().createElement(R,{collapsed:!e.opened[n.id],className:"tyk-multiselect-item__details"},((e,t)=>e.detailsDisplayTemplate?e.detailsDisplayTemplate(t):JSON.stringify(t.details))(e,n)):((e,n)=>{const{opened:o}=e;return o[n.id]?t().createElement(ye,{position:"relative"}):null})(e,n)):null))}ul.propTypes={item:r().instanceOf(Object),itemType:r().string,searchValue:r().string,onChange:r().func};const hl=ul;function dl({inputPlaceholder:n,noItemsMessage:o,items:i,onCustomSearch:r,onChange:s,customSearch:a,panelType:l,serverLoad:c,itemsPageNumber:u,itemsNrPages:h,loadMoreItems:d}){const[p,m]=(0,e.useState)(""),f=(0,e.useRef)(0),y=(0,e.useRef)(),v=(0,e.useCallback)((e=>{r?r(e):m(e)}),[r]),b=(0,e.useCallback)((e=>{let t=structuredClone(i);t=t.filter((t=>e.id!==t.id)),s(t,e)}),[i]);function w(){return t().createElement("ul",{className:"tyk-multiselect__list"+(c?"":" tyk-multiselect__list--scroll"),ref:y},i.map((e=>t().createElement(hl,{itemType:l,key:(f.current+=1,f.current),onChange:b,searchValue:a?"":p,item:e}))))}return t().createElement("div",{className:"tyk-multiselect__panel"},t().createElement(Qa,{inputgroupaddonleft:t().createElement(g,{type:"search"}),name:"search",onChange:v,placeholder:n,value:p}),i.length?c?t().createElement(At,{refChild:y,hasMore:h>u,loadMore:d,pageNumber:u},w()):w():t().createElement(be,{theme:"info"},o))}dl.propTypes={customSearch:r().bool,onCustomSearch:r().func,panelType:r().string,onChange:r().func,items:r().instanceOf(Array),itemsPageNumber:r().number,itemsNrPages:r().number,inputPlaceholder:r().string,loadMoreItems:r().func,noItemsMessage:r().string,serverLoad:r().bool};const pl=dl;var gl=Object.defineProperty,ml=Object.defineProperties,fl=Object.getOwnPropertyDescriptors,yl=Object.getOwnPropertySymbols,vl=Object.prototype.hasOwnProperty,bl=Object.prototype.propertyIsEnumerable,wl=(e,t,n)=>t in e?gl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const xl=(e,t)=>t.filter((t=>!e.find((e=>e.id===t.id))));function kl({customSearch:n,entityNamePlural:o,disabled:i,error:r,getItemDetails:s,itemDisplayTemplate:a,detailsDisplayTemplate:l,fieldsToSearchOn:c,items:u,itemsPageNumber:h,itemsNrPages:d,loadMoreItems:p,maxSelections:g,note:m,value:f,onChange:y,wrapperClassName:v=""}){const[b,w]=(0,e.useState)({}),x=(0,e.useCallback)((e=>{w((t=>{return n=((e,t)=>{for(var n in t||(t={}))vl.call(t,n)&&wl(e,n,t[n]);if(yl)for(var n of yl(t))bl.call(t,n)&&wl(e,n,t[n]);return e})({},t),o={[e.id]:!t[e.id]},ml(n,fl(o));var n,o})),s&&s(e)}),[s]),k=(0,e.useCallback)((()=>[v,"tyk-multiselect",r&&"has-error"].filter(Boolean).join(" ")),[v,r]),C=(0,e.useCallback)(((e,t)=>{const n=structuredClone(f);n.unshift(t),y(n,t,"added")}),[f]),$=(0,e.useCallback)(((e,t)=>{y(e,t,"removed")}),[u]),S=(0,e.useMemo)((()=>({disabled:i,itemDisplayTemplate:a,detailsDisplayTemplate:l,fieldsToSearchOn:c,maxSelections:g,nrSelectedItems:f.length,onGetItemDetails:x,opened:b})),[i,a,l,c,g,f,x,b]);return t().createElement(t().Fragment,null,t().createElement("div",{className:k()},t().createElement(cl.Provider,{value:S},t().createElement("div",{className:"tyk-multiselect__header"},t().createElement("div",null,f.length," ","Selected"," ",o),t().createElement("div",null,"Select from existing",o)),t().createElement("div",{className:"tyk-multiselect__panel-wrapper"},t().createElement(pl,{inputPlaceholder:`Search through selected ${o}`,noItemsMessage:`Selected ${o} will show here`,items:f,onChange:$,panelType:"selected"}),t().createElement(pl,{inputPlaceholder:`Search existing ${o}`,noItemsMessage:`No ${o} to display`,entityNamePlural:o,customSearch:!!n,onCustomSearch:n,items:xl(f,u),onChange:C,serverLoad:!!p,loadMoreItems:p,itemsPageNumber:h,itemsNrPages:d,panelType:"normal"})))),t().createElement("div",null,m?t().createElement("p",{className:"tyk-form-control__help-block"},m):null),r&&"true"!==r&&"false"!==r?t().createElement("p",{className:"tyk-form-control__error-message"},r):null)}kl.propTypes={customSearch:r().func,disabled:r().bool,error:r().string,entityNamePlural:r().string,items:r().instanceOf(Array),itemDisplayTemplate:r().func,detailsDisplayTemplate:r().func,fieldsToSearchOn:r().instanceOf(Array),onChange:r().func,getItemDetails:r().func,itemsPageNumber:r().number,itemsNrPages:r().number,loadMoreItems:r().func,note:r().string,maxSelections:r().number,value:r().instanceOf(Array),wrapperClassName:r().string};const Cl=kl;var $l=Object.defineProperty,Sl=Object.defineProperties,El=Object.getOwnPropertyDescriptors,Ol=Object.getOwnPropertySymbols,Tl=Object.prototype.hasOwnProperty,Al=Object.prototype.propertyIsEnumerable,_l=(e,t,n)=>t in e?$l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ll=(e,t)=>{for(var n in t||(t={}))Tl.call(t,n)&&_l(e,n,t[n]);if(Ol)for(var n of Ol(t))Al.call(t,n)&&_l(e,n,t[n]);return e};function Ml(e){var n=e,{label:o,input:i,note:r,inline:s,nospace:a,theme:l="",disabled:c,readOnly:u,wrapperClassName:h=""}=n,d=((e,t)=>{var n={};for(var o in e)Tl.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ol)for(var o of Ol(e))t.indexOf(o)<0&&Al.call(e,o)&&(n[o]=e[o]);return n})(n,["label","input","note","inline","nospace","theme","disabled","readOnly","wrapperClassName"]);const p=[s?"tyk-radio--inline":"tyk-radio",h,a&&"no-margin",...l?l.split(" ").filter(Boolean).map((e=>`tyk-radio--theme-${e}`)):[],(u||c)&&"tyk-radio--is-disabled"].filter(Boolean).join(" ");return t().createElement("div",{className:p},t().createElement("label",null,t().createElement("input",(g=Ll(Ll({},i),d),Sl(g,El({type:"radio",disabled:u||c})))),o),r&&t().createElement("p",{className:"tyk-form-control__help-block"},r));var g}Ml.propTypes={disabled:r().bool,readOnly:r().bool,inline:r().bool,theme:r().string,input:r().instanceOf(Object),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),name:r().string,nospace:r().bool,value:r().string,note:r().oneOfType([r().string,r().element,r().node]),wrapperClassName:r().string};const Rl=Ml;var Nl=Object.defineProperty,Il=Object.defineProperties,Pl=Object.getOwnPropertyDescriptors,Dl=Object.getOwnPropertySymbols,Fl=Object.prototype.hasOwnProperty,Bl=Object.prototype.propertyIsEnumerable,Wl=(e,t,n)=>t in e?Nl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Hl(n){const o=n,{value:i,onChange:r,onBlur:s,isfield:a,label:l,labelwidth:c,id:u,note:h,readOnly:d,options:p,error:g,theme:m,wrapperClassName:f=""}=o,y=((e,t)=>{var n={};for(var o in e)Fl.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Dl)for(var o of Dl(e))t.indexOf(o)<0&&Bl.call(e,o)&&(n[o]=e[o]);return n})(o,["value","onChange","onBlur","isfield","label","labelwidth","id","note","readOnly","options","error","theme","wrapperClassName"]),[v,b]=(0,e.useState)(i);(0,e.useEffect)((()=>{a||v===i||(b(i),r&&r(i))}),[v,i]);const w=(0,e.useCallback)((e=>{const t=p.find((t=>t.id===e.target.value));a||b(t),r(t.id?t:null)}),[p,a,r]),x=(0,e.useCallback)((()=>{s&&s(i)}),[s]),k=(0,e.useCallback)((()=>g&&"true"!==g&&"false"!==g?t().createElement("p",{className:"tyk-form-control__error-message"},g):null),[g]),C=(0,e.useCallback)((()=>["tyk-form-group",f,...m?m.split(" ").map((e=>`tyk-form-group--${e}`)):[],c&&"tyk-form-group--label-has-width",g&&"has-error"].filter(Boolean).join(" ")),[f,m,c,g]),$=(0,e.useCallback)((()=>c?{flexBasis:c}:{}),[c]),S=(0,e.useCallback)((()=>c?{flexBasis:`calc(100% - ${c} - 20px)`}:{}),[c]),E=(0,e.useCallback)((()=>{const e=a&&i?i:v;return t().createElement("select",(n=((e,t)=>{for(var n in t||(t={}))Fl.call(t,n)&&Wl(e,n,t[n]);if(Dl)for(var n of Dl(t))Bl.call(t,n)&&Wl(e,n,t[n]);return e})({className:"tyk-form-control tyk-select"},y),o={onChange:w,onBlur:x,value:e?e.id:""},Il(n,Pl(o))),p.map((e=>t().createElement("option",{key:e.id,value:e.id},e.name))));var n,o}),[a,i,v,w,x,p,y]);return t().createElement("div",{className:C()},l?t().createElement("label",{htmlFor:u,style:$()},l):null,!d&&t().createElement("div",{className:"tyk-form-control__wrapper",style:S()},E(),h?t().createElement("p",{className:"tyk-form-control__help-block"},h):null,k()),d&&t().createElement("div",{className:"tyk-form-control--readonly"},i||"-"))}Hl.propTypes={disabled:r().bool,readOnly:r().bool,id:r().string,isfield:r().bool,error:r().oneOfType([r().string,r().bool]),options:r().instanceOf(Array),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,name:r().string,note:r().string,onBlur:r().func,onChange:r().func,placeholder:r().string,theme:r().string,value:r().oneOfType([r().string,r().object]),wrapperClassName:r().string};const jl=Hl;var zl=Object.defineProperty,Vl=Object.defineProperties,Ul=Object.getOwnPropertyDescriptors,Gl=Object.getOwnPropertySymbols,Kl=Object.prototype.hasOwnProperty,ql=Object.prototype.propertyIsEnumerable,Yl=(e,t,n)=>t in e?zl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Jl(e){const{checkboxalticon:n,items:o,itemTemplate:i,value:r,noItemsMessage:s="No items in the list",onChange:a,theme:l,primaryKey:c,wrapperClassName:u=""}=e,h=e=>{const t=structuredClone(r),n=t.findIndex((t=>JSON.stringify(t)===JSON.stringify(Array.isArray(t)?e.target.value.split(","):e.target.value)));if(e.target.checked&&-1===n){const n=e.target.value.split(","),o=n.length>1?n:e.target.value;t.push(o)}else!e.target.checked&&n>-1&&t.splice(n,1);a&&a(t)},d=e=>{const t=[];return n&&t.push("tyk-selectable-list__item--with-icon"),e&&t.push("tyk-selectable-list__item--active"),t.join(" ")};return t().createElement(jt,(p=((e,t)=>{for(var n in t||(t={}))Kl.call(t,n)&&Yl(e,n,t[n]);if(Gl)for(var n of Gl(t))ql.call(t,n)&&Yl(e,n,t[n]);return e})({},e),Vl(p,Ul({theme:l||"default",className:`tyk-selectable-list ${u}`}))),o.length?o.map(((e,o)=>{return t().createElement(jt.Item,{key:o,className:d(r.includes(e[c]))},t().createElement("label",null,t().createElement("div",{className:"tyk-selectable-list__item"},i?i(e):e.name),t().createElement("input",{type:"checkbox",checked:(s=r,a=e[c],Boolean(s.find((e=>JSON.stringify(a)===JSON.stringify(e))))),onChange:h.bind(e),value:e[c]}),n?t().createElement(g,{type:n}):null));var s,a})):t().createElement("li",{className:"tyk-selectable-list__no-items-message"},t().createElement(be,{theme:"info"},s)));var p}Jl.propTypes={items:r().instanceOf(Array),itemTemplate:r().oneOfType([r().node,r().element,r().string,r().func]),value:r().instanceOf(Array),onChange:r().func,primaryKey:r().string,noItemsMessage:r().string,checkboxalticon:r().oneOfType([r().node,r().element,r().string]),theme:r().string,wrapperClassName:r().string},Jl.defaultProps={items:[],primaryKey:"id",value:[]};const Xl=Jl;var Ql=Object.defineProperty,Zl=Object.getOwnPropertySymbols,ec=Object.prototype.hasOwnProperty,tc=Object.prototype.propertyIsEnumerable,nc=(e,t,n)=>t in e?Ql(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,oc=(e,t)=>{for(var n in t||(t={}))ec.call(t,n)&&nc(e,n,t[n]);if(Zl)for(var n of Zl(t))tc.call(t,n)&&nc(e,n,t[n]);return e};function ic(e){var n=e,{id:o,input:i,label:r,note:s,error:a,theme:l,labelwidth:c,value:u,readOnly:h,wrapperClassName:d}=n,p=((e,t)=>{var n={};for(var o in e)ec.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Zl)for(var o of Zl(e))t.indexOf(o)<0&&tc.call(e,o)&&(n[o]=e[o]);return n})(n,["id","input","label","note","error","theme","labelwidth","value","readOnly","wrapperClassName"]);const g=["tyk-form-group",d,...l?l.split(" ").map((e=>`tyk-form-group--${e}`)):[],c&&"tyk-form-group--label-has-width",a&&"has-error"].filter(Boolean).join(" ");return t().createElement("div",{className:g},r?t().createElement("label",{htmlFor:o,style:c?{flexBasis:c}:{}},r):null,!h&&t().createElement("div",{className:"tyk-form-control__wrapper",style:c?{flexBasis:`calc(100% - ${c} - 20px)`}:{}},t().createElement("textarea",oc(oc({className:"tyk-form-control"},p),i),u),s?t().createElement("p",{className:"tyk-form-control__help-block"},s):null,a&&"true"!==a&&"false"!==a?t().createElement("p",{className:"tyk-form-control__error-message"},a):null),h&&t().createElement("div",{className:"tyk-form-control--readonly"},u||"-"))}ic.propTypes={disabled:r().bool,readOnly:r().bool,input:r().instanceOf(Object),error:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,id:r().string,theme:r().string,value:r().string,wrapperClassName:r().string};const rc=ic,sc=(0,e.createContext)();class ac extends e.Component{static getNotchCssClasses(e){return["tyk-toggle__item-notch",`tyk-toggle__item-notch--${e.type}`].join(" ")}constructor(t){super(t),this.itemRef=(0,e.createRef)()}componentDidMount(){const{context:e,value:t}=this.props;e.value===t&&e.saveSelectedRef(this.itemRef)}componentDidUpdate(e){const{context:t,value:n}=this.props;e.context.value!==t.value&&t.value===n&&t.saveSelectedRef(this.itemRef)}onChange(e){const{context:t,value:n}=this.props,{disabled:o,readOnly:i}=t;o||i||t.onItemSelected("single"===t.type?!t.value:n,e)}render(){const{context:e,label:n,name:o,value:i}=this.props;return t().createElement("li",{className:"tyk-toggle__item "+(!e.value||"single"!==e.type&&e.value!==i?"":"tyk-toggle__item--active"),ref:this.itemRef},t().createElement("label",null,t().createElement("input",{type:"single"===e.type?"checkbox":"radio",name:o,checked:e.value===i,onChange:this.onChange.bind(this),value:i}),n?t().createElement("span",null,n):t().createElement("span",{className:"empty-toggle"}," "),"single"===e.type?t().createElement("span",{className:ac.getNotchCssClasses(e)}):null))}}ac.propTypes={context:r().instanceOf(Object),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),name:r().string,value:r().string};const lc=ac;var cc=Object.defineProperty,uc=Object.defineProperties,hc=Object.getOwnPropertyDescriptors,dc=Object.getOwnPropertySymbols,pc=Object.prototype.hasOwnProperty,gc=Object.prototype.propertyIsEnumerable,mc=(e,t,n)=>t in e?cc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function fc(e,n){var o=e,{children:i}=o,r=((e,t)=>{var n={};for(var o in e)pc.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&dc)for(var o of dc(e))t.indexOf(o)<0&&gc.call(e,o)&&(n[o]=e[o]);return n})(o,["children"]);return t().createElement(sc.Consumer,null,(e=>{return t().createElement(lc,(o=((e,t)=>{for(var n in t||(t={}))pc.call(t,n)&&mc(e,n,t[n]);if(dc)for(var n of dc(t))gc.call(t,n)&&mc(e,n,t[n]);return e})({},r),uc(o,hc({context:e,ref:n}))),i);var o}))}fc.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string])};const yc=(0,e.forwardRef)(fc);function vc({className:n,disabled:o,readOnly:i,size:r,theme:s,direction:a,onDark:l,wrapperClassName:c="",onChange:u,labelwidth:h,label:d,separated:p,children:g,type:m,value:f,error:y}){const[v,b]=(0,e.useState)(null),w=(0,e.useRef)(),x=(0,e.useRef)(),k=[c,n,"tyk-toggle",`tyk-toggle--disabled-${i||o}`,`tyk-toggle--${r||"md"}`,`tyk-toggle--${s}`,`tyk-toggle--${a}`,l&&"tyk-toggle--on-dark"].filter(Boolean).join(" "),C=(0,e.useCallback)(((e,t)=>{u&&u(e,t)}),[u]),$=(0,e.useCallback)((()=>h?{flexBasis:h}:{}),[h]),S=(0,e.useCallback)((()=>{if(!v||p)return{};const e=v.current.offsetWidth;return{left:v.current.getBoundingClientRect().left-x.current.getBoundingClientRect().left+4+"px",width:e-8+"px"}}),[v,p]),E=(0,e.useMemo)((()=>({disabled:o,readOnly:i,onItemSelected:C,saveSelectedRef:b,separated:p,type:m,value:f})),[o,i,C,p,m,f]);return t().createElement(t().Fragment,null,t().createElement("div",{className:k,ref:x},t().createElement(sc.Provider,{value:E},d?t().createElement("label",{className:"tyk-toggle__label",style:$()},d):null,t().createElement("ul",{className:`tyk-toggle__list tyk-toggle__list--${m} ${y&&"tyk-toggle__list--has-error"} tyk-toggle__list--${p?"separated":"not-separated"}`},g,"multiple"!==m||p?null:t().createElement("li",{className:"tyk-toggle__notch",ref:w,style:S()})))),y&&t().createElement("p",{className:"tyk-form-control__error-message"},y))}vc.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,disabled:r().bool,readOnly:r().bool,error:r().string,onChange:r().func,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,theme:r().string,type:r().string,size:r().string,separated:r().bool,direction:r().string,value:r().oneOfType([r().bool,r().string]),onDark:r().bool,wrapperClassName:r().string},vc.defaultProps={separated:!1,theme:"primary",type:"single",direction:"row"},vc.Item=yc;const bc=vc,wc={FORM_DEBOUNCE:200};function xc(e,t){wc[e]=t}const kc=wc;var Cc=Object.defineProperty,$c=Object.defineProperties,Sc=Object.getOwnPropertyDescriptors,Ec=Object.getOwnPropertySymbols,Oc=Object.prototype.hasOwnProperty,Tc=Object.prototype.propertyIsEnumerable,Ac=(e,t,n)=>t in e?Cc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,_c=(e,t)=>{for(var n in t||(t={}))Oc.call(t,n)&&Ac(e,n,t[n]);if(Ec)for(var n of Ec(t))Tc.call(t,n)&&Ac(e,n,t[n]);return e},Lc=(e,t)=>$c(e,Sc(t));function Mc(e,t){return t.split(/[\][.]/).filter(Boolean).reduce(((e,t)=>e?e[t]:e),e)}const Rc=(n,o)=>i=>{var r,s=i,{field:a,form:l}=s,c=((e,t)=>{var n={};for(var o in e)Oc.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ec)for(var o of Ec(e))t.indexOf(o)<0&&Tc.call(e,o)&&(n[o]=e[o]);return n})(s,["field","form"]);const u="number"==typeof kc.FORM_DEBOUNCE?kc.FORM_DEBOUNCE:200,[h,d]=(0,e.useState)(a.value),p=_c({getOnChangeProps:()=>({}),hasIsFieldProp:!1},o),g=(0,e.useCallback)((()=>{const e=e=>e();return!1===c.debounce||!1===kc.FORM_DEBOUNCE&&!c.debounce?e:function(e,t){let n;return(...o)=>{clearTimeout(n),n=setTimeout(e,t,...o)}}(e,"number"==typeof c.debounce?c.debounce:u)})(),[]),m=e=>{const t=(null==(n=e)?void 0:n.target)?"INPUT"!==n.target.nodeName||"checkbox"!==n.target.type&&"radio"!==n.target.type?n.target.value:n.target.checked:n;var n;const o=p.getOnChangeProps(t,a,l,c),i=o.value||c.value||t;g((()=>{"function"==typeof c.onChange&&c.onChange(i),a.onChange({target:_c({name:a.name,value:i},o)})})),d(i)},f=(Mc(l.touched,a.name)||Boolean(l.submitCount))&&Mc(l.errors,a.name),y="string"==typeof f?f:"";(0,e.useEffect)((()=>{d(a.value)}),[a.value]),(null==(r=l.status)?void 0:r.disabled)&&(c.disabled=!0);const v=_c({},c);return delete v.debounce,Object.hasOwn(v,"className")&&void 0===v.className&&delete v.className,Object.hasOwn(v,"children")&&void 0===v.children&&delete v.children,t().createElement(n,Lc(_c(_c(Lc(_c({},a),{error:y}),p.hasIsFieldProp?{isfield:!0}:{}),v),{checked:"string"==typeof c.value?a.value===c.value:a.value,onChange:m,value:h,input:{value:h,onChange:m}}))},Nc=Rc(Io,{getOnChangeProps:e=>({checked:e})}),Ic=Rc(gr),Pc=Rc(Sr),Dc=Rc(Wr),Fc=Rc(Zr),Bc=Rc(ha,{getOnChangeProps:e=>({value:e||[]})}),Wc=Rc(Na),Hc=Rc(za),jc=Rc(Qa,{hasIsFieldProp:!0}),zc=Rc(ll),Vc=Rc(Cl),Uc=Rc(Rl,{getOnChangeProps:(e,t,n,o)=>({checked:e===o.value,value:o.value})}),Gc=Rc(jl,{hasIsFieldProp:!0}),Kc=Rc(Xl),qc=Rc(rc),Yc=Rc(bc);var Jc=Object.defineProperty,Xc=Object.defineProperties,Qc=Object.getOwnPropertyDescriptors,Zc=Object.getOwnPropertySymbols,eu=Object.prototype.hasOwnProperty,tu=Object.prototype.propertyIsEnumerable,nu=(e,t,n)=>t in e?Jc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ou=(e,t)=>{for(var n in t||(t={}))eu.call(t,n)&&nu(e,n,t[n]);if(Zc)for(var n of Zc(t))tu.call(t,n)&&nu(e,n,t[n]);return e};class iu extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.prop,{onChange:n}=t;n((0,pe.fromJS)(e))}getInputError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)eu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Zc)for(var o of Zc(e))t.indexOf(o)<0&&tu.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(gr,(i=ou(ou({},n),o),r={error:this.getInputError()},Xc(i,Qc(r))));var i,r}}iu.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const ru=iu;var su=Object.defineProperty,au=Object.defineProperties,lu=Object.getOwnPropertyDescriptors,cu=Object.getOwnPropertySymbols,uu=Object.prototype.hasOwnProperty,hu=Object.prototype.propertyIsEnumerable,du=(e,t,n)=>t in e?su(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class pu extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}getComboboxError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=((e,t)=>{var n={};for(var o in e)uu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&cu)for(var o of cu(e))t.indexOf(o)<0&&hu.call(e,o)&&(n[o]=e[o]);return n})(this.props,[]);return t().createElement(Sr,(n=((e,t)=>{for(var n in t||(t={}))uu.call(t,n)&&du(e,n,t[n]);if(cu)for(var n of cu(t))hu.call(t,n)&&du(e,n,t[n]);return e})({},e),o={onChange:this.handleOnChange,value:e.input.value?e.input.value.toJS():e.input.value,error:this.getComboboxError()},au(n,lu(o))));var n,o}}pu.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const gu=pu;var mu=Object.defineProperty,fu=Object.defineProperties,yu=Object.getOwnPropertyDescriptors,vu=Object.getOwnPropertySymbols,bu=Object.prototype.hasOwnProperty,wu=Object.prototype.propertyIsEnumerable,xu=(e,t,n)=>t in e?mu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class ku extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}render(){const e=this.props,{children:n,input:o}=e,i=((e,t)=>{var n={};for(var o in e)bu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&vu)for(var o of vu(e))t.indexOf(o)<0&&wu.call(e,o)&&(n[o]=e[o]);return n})(e,["children","input"]);return t().createElement(Oi,(r=((e,t)=>{for(var n in t||(t={}))bu.call(t,n)&&xu(e,n,t[n]);if(vu)for(var n of vu(t))wu.call(t,n)&&xu(e,n,t[n]);return e})({},i),s={onSelect:this.handleOnChange,selectedItem:o.value},fu(r,yu(s))),n);var r,s}}ku.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),input:r().instanceOf(Object)};const Cu=ku;var $u=Object.defineProperty,Su=Object.defineProperties,Eu=Object.getOwnPropertyDescriptors,Ou=Object.getOwnPropertySymbols,Tu=Object.prototype.hasOwnProperty,Au=Object.prototype.propertyIsEnumerable,_u=(e,t,n)=>t in e?$u(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Lu=(e,t)=>{for(var n in t||(t={}))Tu.call(t,n)&&_u(e,n,t[n]);if(Ou)for(var n of Ou(t))Au.call(t,n)&&_u(e,n,t[n]);return e};function Mu(e){const n=e,{input:o}=n,i=((e,t)=>{var n={};for(var o in e)Tu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ou)for(var o of Ou(e))t.indexOf(o)<0&&Au.call(e,o)&&(n[o]=e[o]);return n})(n,["input"]);return t().createElement(po,(r=Lu(Lu({},o),i),s={onChange:o.onChange,value:o.value?o.value:0},Su(r,Eu(s))));var r,s}Mu.propTypes={input:r().instanceOf(Object)};const Ru=Mu;var Nu=Object.defineProperty,Iu=Object.defineProperties,Pu=Object.getOwnPropertyDescriptors,Du=Object.getOwnPropertySymbols,Fu=Object.prototype.hasOwnProperty,Bu=Object.prototype.propertyIsEnumerable,Wu=(e,t,n)=>t in e?Nu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Hu(e){const{input:n,meta:o,validationmessages:i}=e;return t().createElement(Wr,(r=((e,t)=>{for(var n in t||(t={}))Fu.call(t,n)&&Wu(e,n,t[n]);if(Du)for(var n of Du(t))Bu.call(t,n)&&Wu(e,n,t[n]);return e})({},e),s={onChange:e=>{const{onChange:t}=n;t((0,pe.fromJS)(e))},value:n.value?n.value.toJS():n.value,error:(()=>{const{touched:e,error:t,warning:n}=o;let r=null;return e&&t&&i[t]?r=i[t]:e&&n&&(r="warning"),r})()},Iu(r,Pu(s))));var r,s}Hu.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const ju=Hu;var zu=Object.defineProperty,Vu=Object.defineProperties,Uu=Object.getOwnPropertyDescriptors,Gu=Object.getOwnPropertySymbols,Ku=Object.prototype.hasOwnProperty,qu=Object.prototype.propertyIsEnumerable,Yu=(e,t,n)=>t in e?zu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Ju(e){const n=e,{input:o,meta:i,validationmessages:r}=n,s=((e,t)=>{var n={};for(var o in e)Ku.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Gu)for(var o of Gu(e))t.indexOf(o)<0&&qu.call(e,o)&&(n[o]=e[o]);return n})(n,["input","meta","validationmessages"]);return t().createElement(Zr,(a=((e,t)=>{for(var n in t||(t={}))Ku.call(t,n)&&Yu(e,n,t[n]);if(Gu)for(var n of Gu(t))qu.call(t,n)&&Yu(e,n,t[n]);return e})({},s),l={onChange:e=>{const{onChange:t}=o;t((0,pe.fromJS)(e))},value:o.value?o.value.toJS():o.value,error:(()=>{const{touched:e,error:t}=i;let n=null;return e&&t&&r[t]&&(n=r[t]),n})()},Vu(a,Uu(l))));var a,l}Ju.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Xu=Ju;var Qu=Object.defineProperty,Zu=Object.defineProperties,eh=Object.getOwnPropertyDescriptors,th=Object.getOwnPropertySymbols,nh=Object.prototype.hasOwnProperty,oh=Object.prototype.propertyIsEnumerable,ih=(e,t,n)=>t in e?Qu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class rh extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}getEditableListError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o}=e;let i=null;return n&&o&&t[o]&&(i=t[o]),i}render(){const e=((e,t)=>{var n={};for(var o in e)nh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&th)for(var o of th(e))t.indexOf(o)<0&&oh.call(e,o)&&(n[o]=e[o]);return n})(this.props,[]);return t().createElement(ha,(n=((e,t)=>{for(var n in t||(t={}))nh.call(t,n)&&ih(e,n,t[n]);if(th)for(var n of th(t))oh.call(t,n)&&ih(e,n,t[n]);return e})({},e),o={onChange:this.handleOnChange,value:e.input.value?e.input.value.toJS():null,error:this.getEditableListError()},Zu(n,eh(o))));var n,o}}rh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const sh=rh;var ah=Object.defineProperty,lh=Object.defineProperties,ch=Object.getOwnPropertyDescriptors,uh=Object.getOwnPropertySymbols,hh=Object.prototype.hasOwnProperty,dh=Object.prototype.propertyIsEnumerable,ph=(e,t,n)=>t in e?ah(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,gh=(e,t)=>{for(var n in t||(t={}))hh.call(t,n)&&ph(e,n,t[n]);if(uh)for(var n of uh(t))dh.call(t,n)&&ph(e,n,t[n]);return e};class mh extends e.Component{getInputError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)hh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&uh)for(var o of uh(e))t.indexOf(o)<0&&dh.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(za,(i=gh(gh({},n),o),r={error:this.getInputError()},lh(i,ch(r))));var i,r}}mh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const fh=mh;var yh=Object.defineProperty,vh=Object.defineProperties,bh=Object.getOwnPropertyDescriptors,wh=Object.getOwnPropertySymbols,xh=Object.prototype.hasOwnProperty,kh=Object.prototype.propertyIsEnumerable,Ch=(e,t,n)=>t in e?yh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,$h=(e,t)=>{for(var n in t||(t={}))xh.call(t,n)&&Ch(e,n,t[n]);if(wh)for(var n of wh(t))kh.call(t,n)&&Ch(e,n,t[n]);return e};class Sh extends e.Component{getInputError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)xh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&wh)for(var o of wh(e))t.indexOf(o)<0&&kh.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(Qa,(i=$h($h({},n),o),r={isfield:!0,error:this.getInputError()},vh(i,bh(r))));var i,r}}Sh.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Eh=Sh;var Oh=Object.defineProperty,Th=Object.defineProperties,Ah=Object.getOwnPropertyDescriptors,_h=Object.getOwnPropertySymbols,Lh=Object.prototype.hasOwnProperty,Mh=Object.prototype.propertyIsEnumerable,Rh=(e,t,n)=>t in e?Oh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Nh extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}getMultiselectError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=((e,t)=>{var n={};for(var o in e)Lh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&_h)for(var o of _h(e))t.indexOf(o)<0&&Mh.call(e,o)&&(n[o]=e[o]);return n})(this.props,[]);return t().createElement(Cl,(n=((e,t)=>{for(var n in t||(t={}))Lh.call(t,n)&&Rh(e,n,t[n]);if(_h)for(var n of _h(t))Mh.call(t,n)&&Rh(e,n,t[n]);return e})({},e),o={onChange:this.handleOnChange,value:e.input.value?e.input.value.toJS():e.input.value,error:this.getMultiselectError()},Th(n,Ah(o))));var n,o}}Nh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Ih=Nh;var Ph=Object.defineProperty,Dh=Object.defineProperties,Fh=Object.getOwnPropertyDescriptors,Bh=Object.getOwnPropertySymbols,Wh=Object.prototype.hasOwnProperty,Hh=Object.prototype.propertyIsEnumerable,jh=(e,t,n)=>t in e?Ph(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,zh=(e,t)=>{for(var n in t||(t={}))Wh.call(t,n)&&jh(e,n,t[n]);if(Bh)for(var n of Bh(t))Hh.call(t,n)&&jh(e,n,t[n]);return e};class Vh extends e.Component{constructor(e){super(e),this.handleEvent=this.handleEvent.bind(this)}handleEvent(e){const{input:t}=this.props,{onChange:n,value:o}=t;n((0,pe.fromJS)(void 0!==e?e:o))}getSelectError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)Wh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Bh)for(var o of Bh(e))t.indexOf(o)<0&&Hh.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(jl,(i=zh(zh({},n),o),r={isfield:!0,error:this.getSelectError(),onChange:this.handleEvent,onBlur:this.handleEvent,value:n.value?n.value.toJS():n.value},Dh(i,Fh(r))));var i,r}}Vh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Uh=Vh;var Gh=Object.defineProperty,Kh=Object.defineProperties,qh=Object.getOwnPropertyDescriptors,Yh=Object.getOwnPropertySymbols,Jh=Object.prototype.hasOwnProperty,Xh=Object.prototype.propertyIsEnumerable,Qh=(e,t,n)=>t in e?Gh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Zh extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props;t.onChange((0,pe.fromJS)(e))}render(){const e=this.props,{children:n}=e,o=((e,t)=>{var n={};for(var o in e)Jh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Yh)for(var o of Yh(e))t.indexOf(o)<0&&Xh.call(e,o)&&(n[o]=e[o]);return n})(e,["children"]);return t().createElement(Xl,(i=((e,t)=>{for(var n in t||(t={}))Jh.call(t,n)&&Qh(e,n,t[n]);if(Yh)for(var n of Yh(t))Xh.call(t,n)&&Qh(e,n,t[n]);return e})({},o),r={onChange:this.handleOnChange,value:o.input.value?o.input.value.toJS():[]},Kh(i,qh(r))));var i,r}}Zh.propTypes={children:r().oneOfType([r().node]),onChange:r().func,input:r().instanceOf(Object)};const ed=Zh;var td=Object.defineProperty,nd=Object.defineProperties,od=Object.getOwnPropertyDescriptors,id=Object.getOwnPropertySymbols,rd=Object.prototype.hasOwnProperty,sd=Object.prototype.propertyIsEnumerable,ad=(e,t,n)=>t in e?td(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class ld extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props;t.onChange((0,pe.fromJS)(e))}render(){const e=this.props,{children:n}=e,o=((e,t)=>{var n={};for(var o in e)rd.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&id)for(var o of id(e))t.indexOf(o)<0&&sd.call(e,o)&&(n[o]=e[o]);return n})(e,["children"]);return t().createElement(bc,(i=((e,t)=>{for(var n in t||(t={}))rd.call(t,n)&&ad(e,n,t[n]);if(id)for(var n of id(t))sd.call(t,n)&&ad(e,n,t[n]);return e})({},o),r={onChange:this.handleOnChange,value:o.input.value},nd(i,od(r))),n);var i,r}}ld.propTypes={children:r().oneOfType([r().node]),onChange:r().func,input:r().instanceOf(Object)};const cd=ld;function ud(t,n,...o){const i=(0,e.useRef)();(0,e.useEffect)((()=>{i.current=t}),[t]),(0,e.useEffect)((()=>{if(null!=n){const e=setInterval((function(){i.current(...o)}),n);return()=>clearInterval(e)}}),[n])}})(),module.exports=o})(); +(()=>{var e={239:(e,t,n)=>{e=n.nmd(e),function(){var e=function(){return this}();e||"undefined"==typeof window||(e=window);var t=function(e,n,o){"string"==typeof e?(2==arguments.length&&(o=n),t.modules[e]||(t.payloads[e]=o,t.modules[e]=null)):t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace())};t.modules={},t.payloads={};var n,o,i=function(e,t,n){if("string"==typeof t){var o=a(e,t);if(null!=o)return n&&n(),o}else if("[object Array]"===Object.prototype.toString.call(t)){for(var i=[],s=0,l=t.length;sn.length)&&(t=n.length),t-=e.length;var o=n.indexOf(e,t);return-1!==o&&o===t})),String.prototype.repeat||o(String.prototype,"repeat",(function(e){for(var t="",n=this;e>0;)1&e&&(t+=n),(e>>=1)&&(n+=n);return t})),String.prototype.includes||o(String.prototype,"includes",(function(e,t){return-1!=this.indexOf(e,t)})),Object.assign||(Object.assign=function(e){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),n=1;n>>0,o=0|arguments[1],i=o<0?Math.max(n+o,0):Math.min(o,n),r=arguments[2],s=void 0===r?n:0|r,a=s<0?Math.max(n+s,0):Math.min(s,n);i0;)1&t&&(n+=e),(t>>=1)&&(e+=e);return n};var o=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(o,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){for(var t=[],n=0,o=e.length;n65535?2:1}})),ace.define("ace/lib/useragent",["require","exports","module"],(function(e,t,n){"use strict";t.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},t.getOS=function(){return t.isMac?t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS};var o="object"==typeof navigator?navigator:{},i=(/mac|win|linux/i.exec(o.platform)||["other"])[0].toLowerCase(),r=o.userAgent||"",s=o.appName||"";t.isWin="win"==i,t.isMac="mac"==i,t.isLinux="linux"==i,t.isIE="Microsoft Internet Explorer"==s||s.indexOf("MSAppHost")>=0?parseFloat((r.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((r.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=r.match(/ Gecko\/\d+/),t.isOpera="object"==typeof opera&&"[object Opera]"==Object.prototype.toString.call(window.opera),t.isWebKit=parseFloat(r.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(r.split(" Chrome/")[1])||void 0,t.isSafari=parseFloat(r.split(" Safari/")[1])&&!t.isChrome||void 0,t.isEdge=parseFloat(r.split(" Edge/")[1])||void 0,t.isAIR=r.indexOf("AdobeAIR")>=0,t.isAndroid=r.indexOf("Android")>=0,t.isChromeOS=r.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(r)&&!window.MSStream,t.isIOS&&(t.isMac=!0),t.isMobile=t.isIOS||t.isAndroid})),ace.define("ace/lib/dom",["require","exports","module","ace/lib/useragent"],(function(e,t,n){"use strict";var o,i=e("./useragent");t.buildDom=function e(t,n,o){if("string"==typeof t&&t){var i=document.createTextNode(t);return n&&n.appendChild(i),i}if(!Array.isArray(t))return t&&t.appendChild&&n&&n.appendChild(t),t;if("string"!=typeof t[0]||!t[0]){for(var r=[],s=0;s=1.5,i.isChromeOS&&(t.HI_DPI=!1),"undefined"!=typeof document){var l=document.createElement("div");t.HI_DPI&&void 0!==l.style.transform&&(t.HAS_CSS_TRANSFORMS=!0),i.isEdge||void 0===l.style.animationName||(t.HAS_CSS_ANIMATION=!0),l=null}t.HAS_CSS_TRANSFORMS?t.translate=function(e,t,n){e.style.transform="translate("+Math.round(t)+"px, "+Math.round(n)+"px)"}:t.translate=function(e,t,n){e.style.top=Math.round(n)+"px",e.style.left=Math.round(t)+"px"}})),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("./dom");t.get=function(e,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.onreadystatechange=function(){4===n.readyState&&t(n.responseText)},n.send(null)},t.loadScript=function(e,t){var n=o.getDocumentHead(),i=document.createElement("script");i.src=e,n.appendChild(i),i.onload=i.onreadystatechange=function(e,n){!n&&i.readyState&&"loaded"!=i.readyState&&"complete"!=i.readyState||(i=i.onload=i.onreadystatechange=null,n||t())}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}})),ace.define("ace/lib/oop",["require","exports","module"],(function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}})),ace.define("ace/lib/event_emitter",["require","exports","module"],(function(e,t,n){"use strict";var o={},i=function(){this.propagationStopped=!0},r=function(){this.defaultPrevented=!0};o._emit=o._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],o=this._defaultHandlers[e];if(n.length||o){"object"==typeof t&&t||(t={}),t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=r),n=n.slice();for(var s=0;s1&&(i=n[n.length-2]);var s=l[t+"Path"];return null==s?s=l.basePath:"/"==o&&(t=o=""),s&&"/"!=s.slice(-1)&&(s+="/"),s+t+o+i+this.get("suffix")},t.setModuleUrl=function(e,t){return l.$moduleUrls[e]=t},t.setLoader=function(e){a=e},t.dynamicModules=Object.create(null),t.$loading={},t.$loaded={},t.loadModule=function(n,o){var r,s;Array.isArray(n)&&(s=n[0],n=n[1]);var l=function(r){if(r&&!t.$loading[n])return o&&o(r);if(t.$loading[n]||(t.$loading[n]=[]),t.$loading[n].push(o),!(t.$loading[n].length>1)){var l=function(){!function(t,n){"ace/theme/textmate"===t||"./theme/textmate"===t?n(0,e("./theme/textmate")):a?a(t,n):console.error("loader is not configured")}(n,(function(e,o){o&&(t.$loaded[n]=o),t._emit("load.module",{name:n,module:o});var i=t.$loading[n];t.$loading[n]=null,i.forEach((function(e){e&&e(o)}))}))};if(!t.get("packaged"))return l();i.loadScript(t.moduleUrl(n,s),l),c()}};if(t.dynamicModules[n])t.dynamicModules[n]().then((function(e){e.default?l(e.default):l(e)}));else{try{r=this.$require(n)}catch(e){}l(r||t.$loaded[n])}},t.$require=function(e){if("function"==typeof n.require)return n.require(e)},t.setModuleLoader=function(e,n){t.dynamicModules[e]=n};var c=function(){l.basePath||l.workerPath||l.modePath||l.themePath||Object.keys(l.$moduleUrls).length||(console.error("Unable to infer path to ace from script src,","use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes","or with webpack use ace/webpack-resolver"),c=function(){})};t.version="1.32.0"})),ace.define("ace/loader_build",["require","exports","module","ace/lib/fixoldbrowsers","ace/config"],(function(e,t,o){"use strict";e("./lib/fixoldbrowsers");var i=e("./config");i.setLoader((function(t,n){e([t],(function(e){n(null,e)}))}));var r=function(){return this||"undefined"!=typeof window&&window}();function s(t){if(r&&r.document){i.set("packaged",t||e.packaged||o.packaged||r.define&&n.amdD.packaged);var s={},a="",l=document.currentScript||document._currentScript,c=l&&l.ownerDocument||document;l&&l.src&&(a=l.src.split(/[?#]/)[0].split("/").slice(0,-1).join("/")||"");for(var u,h=c.getElementsByTagName("script"),d=0;d ["+this.end.row+"/"+this.end.column+"]"},e.prototype.contains=function(e,t){return 0==this.compare(e,t)},e.prototype.compareRange=function(e){var t,n=e.end,o=e.start;return 1==(t=this.compare(n.row,n.column))?1==(t=this.compare(o.row,o.column))?2:0==t?1:0:-1==t?-2:-1==(t=this.compare(o.row,o.column))?-1:1==t?42:0},e.prototype.comparePoint=function(e){return this.compare(e.row,e.column)},e.prototype.containsRange=function(e){return 0==this.comparePoint(e.start)&&0==this.comparePoint(e.end)},e.prototype.intersects=function(e){var t=this.compareRange(e);return-1==t||0==t||1==t},e.prototype.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},e.prototype.isStart=function(e,t){return this.start.row==e&&this.start.column==t},e.prototype.setStart=function(e,t){"object"==typeof e?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},e.prototype.setEnd=function(e,t){"object"==typeof e?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},e.prototype.inside=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)&&!this.isStart(e,t)},e.prototype.insideStart=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)},e.prototype.insideEnd=function(e,t){return 0==this.compare(e,t)&&!this.isStart(e,t)},e.prototype.compare=function(e,t){return this.isMultiLine()||e!==this.start.row?ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0:tthis.end.column?1:0},e.prototype.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},e.prototype.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},e.prototype.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},e.prototype.clipRows=function(t,n){if(this.end.row>n)var o={row:n+1,column:0};else this.end.rown)var i={row:n+1,column:0};else this.start.row1?++h>4&&(h=1):h=1,r.isIE){var s=Math.abs(e.clientX-a)>5||Math.abs(e.clientY-l)>5;c&&!s||(h=1),c&&clearTimeout(c),c=setTimeout((function(){c=null}),n[h-1]||600),1==h&&(a=e.clientX,l=e.clientY)}if(e._clicks=h,o[i]("mousedown",e),h>4)h=0;else if(h>1)return o[i](d[h],e)}Array.isArray(e)||(e=[e]),e.forEach((function(e){u(e,"mousedown",p,s)}))};var d=function(e){return(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)};function p(e,t,n){var o=d(t);if(!r.isMac&&s){if(t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(o|=8),s.altGr){if(!(3&~o))return;s.altGr=0}if(18===n||17===n){var l="location"in t?t.location:t.keyLocation;17===n&&1===l?1==s[n]&&(a=t.timeStamp):18===n&&3===o&&2===l&&t.timeStamp-a<50&&(s.altGr=!0)}}if(n in i.MODIFIER_KEYS&&(n=-1),o||13!==n||3!==(l="location"in t?t.location:t.keyLocation)||(e(t,o,-n),!t.defaultPrevented)){if(r.isChromeOS&&8&o){if(e(t,o,n),t.defaultPrevented)return;o&=-9}return!!(o||n in i.FUNCTION_KEYS||n in i.PRINTABLE_KEYS)&&e(t,o,n)}}function g(){s=Object.create(null)}if(t.getModifierString=function(e){return i.KEY_MODS[d(e)]},t.addCommandKeyListener=function(e,n,o){if(r.isOldGecko||r.isOpera&&!("KeyboardEvent"in window)){var i=null;u(e,"keydown",(function(e){i=e.keyCode}),o),u(e,"keypress",(function(e){return p(n,e,i)}),o)}else{var a=null;u(e,"keydown",(function(e){s[e.keyCode]=(s[e.keyCode]||0)+1;var t=p(n,e,e.keyCode);return a=e.defaultPrevented,t}),o),u(e,"keypress",(function(e){a&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),a=null)}),o),u(e,"keyup",(function(e){s[e.keyCode]=null}),o),s||(g(),u(window,"focus",g))}},"object"==typeof window&&window.postMessage&&!r.isOldIE){var m=1;t.nextTick=function(e,n){n=n||window;var o="zero-timeout-message-"+m++,i=function(r){r.data==o&&(t.stopPropagation(r),h(n,"message",i),e())};u(n,"message",i),n.postMessage(o,"*")}}t.$idleBlocked=!1,t.onIdle=function(e,n){return setTimeout((function n(){t.$idleBlocked?setTimeout(n,100):e()}),n)},t.$idleBlockId=null,t.blockIdle=function(e){t.$idleBlockId&&clearTimeout(t.$idleBlockId),t.$idleBlocked=!0,t.$idleBlockId=setTimeout((function(){t.$idleBlocked=!1}),e||100)},t.nextFrame="object"==typeof window&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}})),ace.define("ace/clipboard",["require","exports","module"],(function(e,t,n){"use strict";var o;n.exports={lineMode:!1,pasteCancelled:function(){return!!(o&&o>Date.now()-50)||(o=!1)},cancel:function(){o=Date.now()}}})),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/config","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/clipboard","ace/lib/keys"],(function(e,t,n){"use strict";var o=e("../lib/event"),i=e("../config").nls,r=e("../lib/useragent"),s=e("../lib/dom"),a=e("../lib/lang"),l=e("../clipboard"),c=r.isChrome<18,u=r.isIE,h=r.isChrome>63,d=400,p=e("../lib/keys"),g=p.KEY_MODS,m=r.isIOS,f=m?/\s/:/\n/,y=r.isMobile;t.TextInput=function(e,t){var n=s.createElement("textarea");n.className="ace_text-input",n.setAttribute("wrap","off"),n.setAttribute("autocorrect","off"),n.setAttribute("autocapitalize","off"),n.setAttribute("spellcheck",!1),n.style.opacity="0",e.insertBefore(n,e.firstChild);var v=!1,b=!1,w=!1,x=!1,k="";y||(n.style.fontSize="1px");var C=!1,$=!1,S="",E=0,O=0,T=0,A=Number.MAX_SAFE_INTEGER,_=Number.MIN_SAFE_INTEGER,L=0;try{var M=document.activeElement===n}catch(e){}this.setNumberOfExtraLines=function(e){A=Number.MAX_SAFE_INTEGER,_=Number.MIN_SAFE_INTEGER,L=e<0?0:e},this.setAriaOptions=function(e){if(e.activeDescendant?(n.setAttribute("aria-haspopup","true"),n.setAttribute("aria-autocomplete",e.inline?"both":"list"),n.setAttribute("aria-activedescendant",e.activeDescendant)):(n.setAttribute("aria-haspopup","false"),n.setAttribute("aria-autocomplete","both"),n.removeAttribute("aria-activedescendant")),e.role&&n.setAttribute("role",e.role),e.setLabel&&(n.setAttribute("aria-roledescription",i("editor")),t.session)){var o=t.session.selection.cursor.row;n.setAttribute("aria-label",i("Cursor at row $0",[o+1]))}},this.setAriaOptions({role:"textbox"}),o.addListener(n,"blur",(function(e){$||(t.onBlur(e),M=!1)}),t),o.addListener(n,"focus",(function(e){if(!$){if(M=!0,r.isEdge)try{if(!document.hasFocus())return}catch(e){}t.onFocus(e),r.isEdge?setTimeout(N):N()}}),t),this.$focusScroll=!1,this.focus=function(){if(this.setAriaOptions({setLabel:t.renderer.enableKeyboardAccessibility}),k||h||"browser"==this.$focusScroll)return n.focus({preventScroll:!0});var e=n.style.top;n.style.position="fixed",n.style.top="0px";try{var o=0!=n.getBoundingClientRect().top}catch(e){return}var i=[];if(o)for(var r=n.parentElement;r&&1==r.nodeType;)i.push(r),r.setAttribute("ace_nocontext",!0),r=!r.parentElement&&r.getRootNode?r.getRootNode().host:r.parentElement;n.focus({preventScroll:!0}),o&&i.forEach((function(e){e.removeAttribute("ace_nocontext")})),setTimeout((function(){n.style.position="","0px"==n.style.top&&(n.style.top=e)}),0)},this.blur=function(){n.blur()},this.isFocused=function(){return M},t.on("beforeEndOperation",(function(){var e=t.curOp,o=e&&e.command&&e.command.name;if("insertstring"!=o){var i=o&&(e.docChanged||e.selectionChanged);w&&i&&(S=n.value="",U()),N()}}));var R=function(e,n){for(var o=n,i=1;i<=e-A&&i<2*L+1;i++)o+=t.session.getLine(e-i).length+1;return o},N=m?function(e){if(M&&(!v||e)&&!x){e||(e="");var o="\n ab"+e+"cde fg\n";o!=n.value&&(n.value=S=o);var i=4+(e.length||(t.selection.isEmpty()?0:1));4==E&&O==i||n.setSelectionRange(4,i),E=4,O=i}}:function(){if(!w&&!x&&(M||P)){w=!0;var e=0,o=0,i="";if(t.session){var r=t.selection,s=r.getRange(),a=r.cursor.row;a===_+1?_=(A=_+1)+2*L:a===A-1?A=(_=A-1)-2*L:(a_+1)&&(A=a>L?a-L:0,_=a>L?a+L:2*L);for(var l=[],c=A;c<=_;c++)l.push(t.session.getLine(c));if(i=l.join("\n"),e=R(s.start.row,s.start.column),o=R(s.end.row,s.end.column),s.start.row_){var h=t.session.getLine(_+1);o=s.end.row>_+1?h.length:s.end.column,o+=i.length+1,i=i+"\n"+h}else y&&a>0&&(i="\n"+i,o+=1,e+=1);i.length>d&&(e0&&S[d]==e[d];)d++,a--;for(c=c.slice(d),d=1;l>0&&S.length-d>E-1&&S[S.length-d]==e[e.length-d];)d++,l--;u-=d-1,h-=d-1;var p=c.length-d+1;if(p<0&&(a=-p,p=0),c=c.slice(0,p),!(o||c||u||a||l||h))return"";x=!0;var g=!1;return r.isAndroid&&". "==c&&(c=" ",g=!0),c&&!a&&!l&&!u&&!h||C?t.onTextInput(c):t.onTextInput(c,{extendLeft:a,extendRight:l,restoreStart:u,restoreEnd:h}),x=!1,S=e,E=i,O=s,T=h,g?"\n":c},F=function(e){if(w)return V();if(e&&e.inputType){if("historyUndo"==e.inputType)return t.execCommand("undo");if("historyRedo"==e.inputType)return t.execCommand("redo")}var o=n.value,i=D(o,!0);(o.length>500||f.test(i)||y&&E<1&&E==O)&&N()},B=function(e,t,n){var o=e.clipboardData||window.clipboardData;if(o&&!c){var i=u||n?"Text":"text/plain";try{return t?!1!==o.setData(i,t):o.getData(i)}catch(e){if(!n)return B(e,t,!0)}}},W=function(e,i){var r=t.getCopyText();if(!r)return o.preventDefault(e);B(e,r)?(m&&(N(r),v=r,setTimeout((function(){v=!1}),10)),i?t.onCut():t.onCopy(),o.preventDefault(e)):(v=!0,n.value=r,n.select(),setTimeout((function(){v=!1,N(),i?t.onCut():t.onCopy()})))},H=function(e){W(e,!0)},j=function(e){W(e,!1)},z=function(e){var i=B(e);l.pasteCancelled()||("string"==typeof i?(i&&t.onPaste(i,e),r.isIE&&setTimeout(N),o.preventDefault(e)):(n.value="",b=!0))};o.addCommandKeyListener(n,t.onCommandKey.bind(t),t),o.addListener(n,"select",(function(e){w||(v?v=!1:function(e){return 0===e.selectionStart&&e.selectionEnd>=S.length&&e.value===S&&S&&e.selectionEnd!==O}(n)?(t.selectAll(),N()):y&&n.selectionStart!=E&&N())}),t),o.addListener(n,"input",F,t),o.addListener(n,"cut",H,t),o.addListener(n,"copy",j,t),o.addListener(n,"paste",z,t),"oncut"in n&&"oncopy"in n&&"onpaste"in n||o.addListener(e,"keydown",(function(e){if((!r.isMac||e.metaKey)&&e.ctrlKey)switch(e.keyCode){case 67:j(e);break;case 86:z(e);break;case 88:H(e)}}),t);var V=function(){if(w&&t.onCompositionUpdate&&!t.$readOnly){if(C)return G();if(w.useTextareaForIME)t.onCompositionUpdate(n.value);else{var e=n.value;D(e),w.markerRange&&(w.context&&(w.markerRange.start.column=w.selectionStart=w.context.compositionStartOffset),w.markerRange.end.column=w.markerRange.start.column+O-w.selectionStart+T)}}},U=function(e){t.onCompositionEnd&&!t.$readOnly&&(w=!1,t.onCompositionEnd(),t.off("mousedown",G),e&&F())};function G(){$=!0,n.blur(),n.focus(),$=!1}var K,q=a.delayedCall(V,50).schedule.bind(null,null);function Y(){clearTimeout(K),K=setTimeout((function(){k&&(n.style.cssText=k,k=""),t.renderer.$isMousePressed=!1,t.renderer.$keepTextAreaAtCursor&&t.renderer.$moveTextAreaToCursor()}),0)}o.addListener(n,"compositionstart",(function(e){if(!w&&t.onCompositionStart&&!t.$readOnly&&(w={},!C)){e.data&&(w.useTextareaForIME=!1),setTimeout(V,0),t._signal("compositionStart"),t.on("mousedown",G);var o=t.getSelectionRange();o.end.row=o.start.row,o.end.column=o.start.column,w.markerRange=o,w.selectionStart=E,t.onCompositionStart(w),w.useTextareaForIME?(S=n.value="",E=0,O=0):(n.msGetInputContext&&(w.context=n.msGetInputContext()),n.getInputContext&&(w.context=n.getInputContext()))}}),t),o.addListener(n,"compositionupdate",V,t),o.addListener(n,"keyup",(function(e){27==e.keyCode&&n.value.lengthO&&"\n"==S[r]?s=p.end:oO&&S.slice(0,r).split("\n").length>2?s=p.down:r>O&&" "==S[r-1]?(s=p.right,a=g.option):(r>O||r==O&&O!=E&&o==r)&&(s=p.right),o!==r&&(a|=g.shift),s){if(!t.onCommandKey({},a,s)&&t.commands){s=p.keyCodeToString(s);var l=t.commands.findKeyCommand(a,s);l&&t.execCommand(l)}E=o,O=r,N("")}}};document.addEventListener("selectionchange",r),t.on("destroy",(function(){document.removeEventListener("selectionchange",r)}))}(0,t,n),this.destroy=function(){n.parentElement&&n.parentElement.removeChild(n)}},t.$setUserAgentForTests=function(e,t){y=e,m=t}})),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("../lib/useragent"),i=function(){function e(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e)),["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"].forEach((function(t){e[t]=this[t]}),this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}return e.prototype.onMouseDown=function(e){var t=e.inSelection(),n=e.getDocumentPosition();this.mousedownEvent=e;var i=this.editor,r=e.getButton();return 0!==r?((i.getSelectionRange().isEmpty()||1==r)&&i.selection.moveToPosition(n),void(2==r&&(i.textInput.onContextMenu(e.domEvent),o.isMozilla||e.preventDefault()))):(this.mousedownEvent.time=Date.now(),!t||i.isFocused()||(i.focus(),!this.$focusTimeout||this.$clickSelection||i.inMultiSelectMode)?(this.captureMouse(e),this.startSelect(n,e.domEvent._clicks>1),e.preventDefault()):(this.setState("focusWait"),void this.captureMouse(e)))},e.prototype.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var n=this.editor;this.mousedownEvent&&(this.mousedownEvent.getShiftKey()?n.selection.selectToPosition(e):t||n.selection.moveToPosition(e),t||this.select(),n.setStyle("ace_selecting"),this.setState("select"))},e.prototype.select=function(){var e,t=this.editor,n=t.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var o=this.$clickSelection.comparePoint(n);if(-1==o)e=this.$clickSelection.end;else if(1==o)e=this.$clickSelection.start;else{var i=r(this.$clickSelection,n);n=i.cursor,e=i.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(n),t.renderer.scrollCursorIntoView()},e.prototype.extendSelectionBy=function(e){var t,n=this.editor,o=n.renderer.screenToTextCoordinates(this.x,this.y),i=n.selection[e](o.row,o.column);if(this.$clickSelection){var s=this.$clickSelection.comparePoint(i.start),a=this.$clickSelection.comparePoint(i.end);if(-1==s&&a<=0)t=this.$clickSelection.end,i.end.row==o.row&&i.end.column==o.column||(o=i.start);else if(1==a&&s>=0)t=this.$clickSelection.start,i.start.row==o.row&&i.start.column==o.column||(o=i.end);else if(-1==s&&1==a)o=i.end,t=i.start;else{var l=r(this.$clickSelection,o);o=l.cursor,t=l.anchor}n.selection.setSelectionAnchor(t.row,t.column)}n.selection.selectToPosition(o),n.renderer.scrollCursorIntoView()},e.prototype.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting")},e.prototype.focusWait=function(){var e,t,n,o,i=(e=this.mousedownEvent.x,t=this.mousedownEvent.y,n=this.x,o=this.y,Math.sqrt(Math.pow(n-e,2)+Math.pow(o-t,2))),r=Date.now();(i>0||r-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},e.prototype.onDoubleClick=function(e){var t=e.getDocumentPosition(),n=this.editor,o=n.session.getBracketRange(t);o?(o.isEmpty()&&(o.start.column--,o.end.column++),this.setState("select")):(o=n.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=o,this.select()},e.prototype.onTripleClick=function(e){var t=e.getDocumentPosition(),n=this.editor;this.setState("selectByLines");var o=n.getSelectionRange();o.isMultiLine()&&o.contains(t.row,t.column)?(this.$clickSelection=n.selection.getLineRange(o.start.row),this.$clickSelection.end=n.selection.getLineRange(o.end.row).end):this.$clickSelection=n.selection.getLineRange(t.row),this.select()},e.prototype.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},e.prototype.onMouseWheel=function(e){if(!e.getAccelKey()){e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var n=this.$lastScroll,o=e.domEvent.timeStamp,i=o-n.t,r=i?e.wheelX/i:n.vx,s=i?e.wheelY/i:n.vy;i<550&&(r=(r+n.vx)/2,s=(s+n.vy)/2);var a=Math.abs(r/s),l=!1;return a>=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(l=!0),a<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(l=!0),l?n.allowed=o:o-n.allowed<550&&(Math.abs(r)<=1.5*Math.abs(n.vx)&&Math.abs(s)<=1.5*Math.abs(n.vy)?(l=!0,n.allowed=o):n.allowed=0),n.t=o,n.vx=r,n.vy=s,l?(t.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()):void 0}},e}();function r(e,t){if(e.start.row==e.end.row)var n=2*t.column-e.start.column-e.end.column;else if(e.start.row!=e.end.row-1||e.start.column||e.end.column)n=2*t.row-e.start.row-e.end.row;else n=t.column-4;return n<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}i.prototype.selectEnd=i.prototype.selectByLinesEnd,i.prototype.selectAllEnd=i.prototype.selectByLinesEnd,i.prototype.selectByWordsEnd=i.prototype.selectByLinesEnd,t.DefaultHandlers=i})),ace.define("ace/tooltip",["require","exports","module","ace/lib/dom","ace/lib/event","ace/range"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],o=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&o>=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},s=e("./lib/dom"),a=e("./lib/event"),l=e("./range").Range,c="ace_tooltip",u=function(){function e(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}return e.prototype.$init=function(){return this.$element=s.createElement("div"),this.$element.className=c,this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},e.prototype.getElement=function(){return this.$element||this.$init()},e.prototype.setText=function(e){this.getElement().textContent=e},e.prototype.setHtml=function(e){this.getElement().innerHTML=e},e.prototype.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},e.prototype.setClassName=function(e){s.addCssClass(this.getElement(),e)},e.prototype.setTheme=function(e){this.$element.className=c+" "+(e.isDark?"ace_dark ":"")+(e.cssClass||"")},e.prototype.show=function(e,t,n){null!=e&&this.setText(e),null!=t&&null!=n&&this.setPosition(t,n),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},e.prototype.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.getElement().className=c,this.isOpen=!1)},e.prototype.getHeight=function(){return this.getElement().offsetHeight},e.prototype.getWidth=function(){return this.getElement().offsetWidth},e.prototype.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)},e}(),h=new(function(){function e(){this.popups=[]}return e.prototype.addPopup=function(e){this.popups.push(e),this.updatePopups()},e.prototype.removePopup=function(e){var t=this.popups.indexOf(e);-1!==t&&(this.popups.splice(t,1),this.updatePopups())},e.prototype.updatePopups=function(){var e,t,n,o;this.popups.sort((function(e,t){return t.priority-e.priority}));var i=[];try{for(var s=r(this.popups),a=s.next();!a.done;a=s.next()){var l=a.value,c=!0;try{for(var u=(n=void 0,r(i)),h=u.next();!h.done;h=u.next()){var d=h.value;if(this.doPopupsOverlap(d,l)){c=!1;break}}}catch(e){n={error:e}}finally{try{h&&!h.done&&(o=u.return)&&o.call(u)}finally{if(n)throw n.error}}c?i.push(l):l.hide()}}catch(t){e={error:t}}finally{try{a&&!a.done&&(t=s.return)&&t.call(s)}finally{if(e)throw e.error}}},e.prototype.doPopupsOverlap=function(e,t){var n=e.getElement().getBoundingClientRect(),o=t.getElement().getBoundingClientRect();return n.lefto.left&&n.topo.top},e}());t.popupManager=h,t.Tooltip=u;var d=function(e){function t(t){void 0===t&&(t=document.body);var n=e.call(this,t)||this;n.timeout=void 0,n.lastT=0,n.idleTime=350,n.lastEvent=void 0,n.onMouseOut=n.onMouseOut.bind(n),n.onMouseMove=n.onMouseMove.bind(n),n.waitForHover=n.waitForHover.bind(n),n.hide=n.hide.bind(n);var o=n.getElement();return o.style.whiteSpace="pre-wrap",o.style.pointerEvents="auto",o.addEventListener("mouseout",n.onMouseOut),o.tabIndex=-1,o.addEventListener("blur",function(){o.contains(document.activeElement)||this.hide()}.bind(n)),o.addEventListener("wheel",a.stopPropagation),n}return i(t,e),t.prototype.addToEditor=function(e){e.on("mousemove",this.onMouseMove),e.on("mousedown",this.hide),e.renderer.getMouseEventTarget().addEventListener("mouseout",this.onMouseOut,!0)},t.prototype.removeFromEditor=function(e){e.off("mousemove",this.onMouseMove),e.off("mousedown",this.hide),e.renderer.getMouseEventTarget().removeEventListener("mouseout",this.onMouseOut,!0),this.timeout&&(clearTimeout(this.timeout),this.timeout=null)},t.prototype.onMouseMove=function(e,t){this.lastEvent=e,this.lastT=Date.now();var n=t.$mouseHandler.isMousePressed;if(this.isOpen){var o=this.lastEvent&&this.lastEvent.getDocumentPosition();this.range&&this.range.contains(o.row,o.column)&&!n&&!this.isOutsideOfText(this.lastEvent)||this.hide()}this.timeout||n||(this.lastEvent=e,this.timeout=setTimeout(this.waitForHover,this.idleTime))},t.prototype.waitForHover=function(){this.timeout&&clearTimeout(this.timeout);var e=Date.now()-this.lastT;this.idleTime-e>10?this.timeout=setTimeout(this.waitForHover,this.idleTime-e):(this.timeout=null,this.lastEvent&&!this.isOutsideOfText(this.lastEvent)&&this.$gatherData(this.lastEvent,this.lastEvent.editor))},t.prototype.isOutsideOfText=function(e){var t=e.editor,n=e.getDocumentPosition(),o=t.session.getLine(n.row);if(n.column==o.length){var i=t.renderer.pixelToScreenCoordinates(e.clientX,e.clientY),r=t.session.documentToScreenPosition(n.row,n.column);if(r.column!=i.column||r.row!=i.row)return!0}return!1},t.prototype.setDataProvider=function(e){this.$gatherData=e},t.prototype.showForRange=function(e,t,n,o){if(!(o&&o!=this.lastEvent||this.isOpen&&document.activeElement==this.getElement())){var i=e.renderer;this.isOpen||(h.addPopup(this),this.$registerCloseEvents(),this.setTheme(i.theme)),this.isOpen=!0,this.addMarker(t,e.session),this.range=l.fromPoints(t.start,t.end);var r=i.textToScreenCoordinates(t.start.row,t.start.column),s=i.scroller.getBoundingClientRect();r.pageX=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},s=e("../lib/dom"),a=e("../lib/event"),l=e("../tooltip").Tooltip,c=e("../config").nls;t.GutterHandler=function(e){var t,n,o=e.editor,i=o.renderer.$gutterLayer,r=new u(o);function l(){t&&(t=clearTimeout(t)),r.isOpen&&(r.hideTooltip(),o.off("mousewheel",l))}function c(e){r.setPosition(e.x,e.y)}e.editor.setDefaultHandler("guttermousedown",(function(t){if(o.isFocused()&&0==t.getButton()&&"foldWidgets"!=i.getRegion(t)){var n=t.getDocumentPosition().row,r=o.session.selection;if(t.getShiftKey())r.selectTo(n,0);else{if(2==t.domEvent.detail)return o.selectAll(),t.preventDefault();e.$clickSelection=o.selection.getLineRange(n)}return e.setState("selectByLines"),e.captureMouse(t),t.preventDefault()}})),e.editor.setDefaultHandler("guttermousemove",(function(a){var u=a.domEvent.target||a.domEvent.srcElement;if(s.hasCssClass(u,"ace_fold-widget"))return l();r.isOpen&&e.$tooltipFollowsMouse&&c(a),n=a,t||(t=setTimeout((function(){t=null,n&&!e.isMousePressed?function(){var t=n.getDocumentPosition().row;if(t==o.session.getLength()){var s=o.renderer.pixelToScreenCoordinates(0,n.y).row,a=n.$pos;if(s>o.session.documentToScreenRow(a.row,a.column))return l()}if(r.showTooltip(t),r.isOpen)if(o.on("mousewheel",l),e.$tooltipFollowsMouse)c(n);else{var u=n.getGutterRow(),h=i.$lines.get(u);if(h){var d=h.element.querySelector(".ace_gutter_annotation").getBoundingClientRect(),p=r.getElement().style;p.left=d.right+"px",p.top=d.bottom+"px"}else c(n)}}():l()}),50))})),a.addListener(o.renderer.$gutter,"mouseout",(function(e){n=null,r.isOpen&&!t&&(t=setTimeout((function(){t=null,l()}),50))}),o),o.on("changeSession",l),o.on("input",l)};var u=function(e){function t(t){var n=e.call(this,t.container)||this;return n.editor=t,n}return i(t,e),t.prototype.setPosition=function(e,t){var n=window.innerWidth||document.documentElement.clientWidth,o=window.innerHeight||document.documentElement.clientHeight,i=this.getWidth(),r=this.getHeight();(e+=15)+i>n&&(e-=e+i-n),(t+=15)+r>o&&(t-=20+r),l.prototype.setPosition.call(this,e,t)},Object.defineProperty(t,"annotationLabels",{get:function(){return{error:{singular:c("error"),plural:c("errors")},warning:{singular:c("warning"),plural:c("warnings")},info:{singular:c("information message"),plural:c("information messages")}}},enumerable:!1,configurable:!0}),t.prototype.showTooltip=function(e){var n,o=this.editor.renderer.$gutterLayer,i=o.$annotations[e];n=i?{text:Array.from(i.text),type:Array.from(i.type)}:{text:[],type:[]};var r=o.session.getFoldLine(e);if(r&&o.$showFoldedAnnotations){for(var s,a={error:[],warning:[],info:[]},l=e+1;l<=r.end.row;l++)if(o.$annotations[l])for(var c=0;c ").concat(n.text[l]);d[n.type[l].replace("_fold","")].push(g)}var m=[].concat(d.error,d.warning,d.info).join("
    ");this.setHtml(m),this.$element.setAttribute("aria-live","polite"),this.isOpen||(this.setTheme(this.editor.renderer.theme),this.setClassName("ace_gutter-tooltip")),this.show(),this.editor._signal("showGutterTooltip",this)},t.prototype.hideTooltip=function(){this.$element.removeAttribute("aria-live"),this.hide(),this.editor._signal("hideGutterTooltip",this)},t.annotationsToSummaryString=function(e){var n,o,i=[];try{for(var s=r(["error","warning","info"]),a=s.next();!a.done;a=s.next()){var l=a.value;if(e[l].length){var c=1===e[l].length?t.annotationLabels[l].singular:t.annotationLabels[l].plural;i.push("".concat(e[l].length," ").concat(c))}}}catch(e){n={error:e}}finally{try{a&&!a.done&&(o=s.return)&&o.call(s)}finally{if(n)throw n.error}}return i.join(", ")},t}(l);t.GutterTooltip=u})),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("../lib/event"),i=e("../lib/useragent"),r=function(){function e(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1}return e.prototype.stopPropagation=function(){o.stopPropagation(this.domEvent),this.propagationStopped=!0},e.prototype.preventDefault=function(){o.preventDefault(this.domEvent),this.defaultPrevented=!0},e.prototype.stop=function(){this.stopPropagation(),this.preventDefault()},e.prototype.getDocumentPosition=function(){return this.$pos||(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY)),this.$pos},e.prototype.getGutterRow=function(){var e=this.getDocumentPosition().row;return this.editor.session.documentToScreenRow(e,0)-this.editor.session.documentToScreenRow(this.editor.renderer.$gutterLayer.$lines.get(0).row,0)},e.prototype.inSelection=function(){if(null!==this.$inSelection)return this.$inSelection;var e=this.editor.getSelectionRange();if(e.isEmpty())this.$inSelection=!1;else{var t=this.getDocumentPosition();this.$inSelection=e.contains(t.row,t.column)}return this.$inSelection},e.prototype.getButton=function(){return o.getButton(this.domEvent)},e.prototype.getShiftKey=function(){return this.domEvent.shiftKey},e.prototype.getAccelKey=function(){return i.isMac?this.domEvent.metaKey:this.domEvent.ctrlKey},e}();t.MouseEvent=r})),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=e("../lib/event"),r=e("../lib/useragent");function s(e){var t=e.editor,n=o.createElement("div");n.style.cssText="top:-100px;position:absolute;z-index:2147483647;opacity:0.5",n.textContent=" ",["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"].forEach((function(t){e[t]=this[t]}),this),t.on("mousedown",this.onMouseDown.bind(e));var s,l,c,u,h,d,p,g,m,f,y,v=t.container,b=0;function w(){var e=d;(function(e,n){var o=Date.now(),i=!n||e.row!=n.row,r=!n||e.column!=n.column;!f||i||r?(t.moveCursorToPosition(e),f=o,y={x:l,y:c}):a(y.x,y.y,l,c)>5?f=null:o-f>=200&&(t.renderer.scrollCursorIntoView(),f=null)})(d=t.renderer.screenToTextCoordinates(l,c),e),function(e,n){var o=Date.now(),i=t.renderer.layerConfig.lineHeight,r=t.renderer.layerConfig.characterWidth,s=t.renderer.scroller.getBoundingClientRect(),a={x:{left:l-s.left,right:s.right-l},y:{top:c-s.top,bottom:s.bottom-c}},u=Math.min(a.x.left,a.x.right),h=Math.min(a.y.top,a.y.bottom),d={row:e.row,column:e.column};u/r<=2&&(d.column+=a.x.left=200&&t.renderer.scrollCursorIntoView(d):m=o:m=null}(d,e)}function x(){h=t.selection.toOrientedRange(),s=t.session.addMarker(h,"ace_selection",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(u),w(),u=setInterval(w,20),b=0,i.addListener(document,"mousemove",$)}function k(){clearInterval(u),t.session.removeMarker(s),s=null,t.selection.fromOrientedRange(h),t.isFocused()&&!g&&t.$resetCursorStyle(),h=null,d=null,b=0,m=null,f=null,i.removeListener(document,"mousemove",$)}this.onDragStart=function(e){if(this.cancelDrag||!v.draggable){var o=this;return setTimeout((function(){o.startSelect(),o.captureMouse(e)}),0),e.preventDefault()}h=t.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=t.getReadOnly()?"copy":"copyMove",t.container.appendChild(n),i.setDragImage&&i.setDragImage(n,0,0),setTimeout((function(){t.container.removeChild(n)})),i.clearData(),i.setData("Text",t.session.getTextRange()),g=!0,this.setState("drag")},this.onDragEnd=function(e){if(v.draggable=!1,g=!1,this.setState(null),!t.getReadOnly()){var n=e.dataTransfer.dropEffect;p||"move"!=n||t.session.remove(t.getSelectionRange()),t.$resetCursorStyle()}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(!t.getReadOnly()&&S(e.dataTransfer))return l=e.clientX,c=e.clientY,s||x(),b++,e.dataTransfer.dropEffect=p=E(e),i.preventDefault(e)},this.onDragOver=function(e){if(!t.getReadOnly()&&S(e.dataTransfer))return l=e.clientX,c=e.clientY,s||(x(),b++),null!==C&&(C=null),e.dataTransfer.dropEffect=p=E(e),i.preventDefault(e)},this.onDragLeave=function(e){if(--b<=0&&s)return k(),p=null,i.preventDefault(e)},this.onDrop=function(e){if(d){var n=e.dataTransfer;if(g)switch(p){case"move":h=h.contains(d.row,d.column)?{start:d,end:d}:t.moveText(h,d);break;case"copy":h=t.moveText(h,d,!0)}else{var o=n.getData("Text");h={start:d,end:t.session.insert(d,o)},t.focus(),p=null}return k(),i.preventDefault(e)}},i.addListener(v,"dragstart",this.onDragStart.bind(e),t),i.addListener(v,"dragend",this.onDragEnd.bind(e),t),i.addListener(v,"dragenter",this.onDragEnter.bind(e),t),i.addListener(v,"dragover",this.onDragOver.bind(e),t),i.addListener(v,"dragleave",this.onDragLeave.bind(e),t),i.addListener(v,"drop",this.onDrop.bind(e),t);var C=null;function $(){null==C&&(C=setTimeout((function(){null!=C&&s&&k()}),20))}function S(e){var t=e.types;return!t||Array.prototype.some.call(t,(function(e){return"text/plain"==e||"Text"==e}))}function E(e){var t=["copy","copymove","all","uninitialized"],n=r.isMac?e.altKey:e.ctrlKey,o="uninitialized";try{o=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var i="none";return n&&t.indexOf(o)>=0?i="copy":["move","copymove","linkmove","all","uninitialized"].indexOf(o)>=0?i="move":t.indexOf(o)>=0&&(i="copy"),i}}function a(e,t,n,o){return Math.sqrt(Math.pow(n-e,2)+Math.pow(o-t,2))}(function(){this.dragWait=function(){Date.now()-this.mousedownEvent.time>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){this.editor.container.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor;e.container.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var t=r.isWin?"default":"move";e.renderer.setCursorStyle(t),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;r.isIE&&"dragReady"==this.state&&a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>3&&t.dragDrop(),"dragWait"===this.state&&a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))},this.onMouseDown=function(e){if(this.$dragEnabled){this.mousedownEvent=e;var t=this.editor,n=e.inSelection(),o=e.getButton();if(1===(e.domEvent.detail||1)&&0===o&&n){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var i=e.domEvent.target||e.domEvent.srcElement;"unselectable"in i&&(i.unselectable="on"),t.getDragDelay()?(r.isWebKit&&(this.cancelDrag=!0,t.container.draggable=!0),this.setState("dragWait")):this.startDrag(),this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}}).call(s.prototype),t.DragdropHandler=s})),ace.define("ace/mouse/touch_handler",["require","exports","module","ace/mouse/mouse_event","ace/lib/event","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("./mouse_event").MouseEvent,i=e("../lib/event"),r=e("../lib/dom");t.addTouchListeners=function(e,t){var n,s,a,l,c,u,h,d,p,g="scroll",m=0,f=0,y=0,v=0;function b(){var e,n,o;p||(e=window.navigator&&window.navigator.clipboard,n=!1,o=function(o){var i,s,a=o.target.getAttribute("action");if("more"==a||!n)return n=!n,i=t.getCopyText(),s=t.session.getUndoManager().hasUndo(),void p.replaceChild(r.buildDom(n?["span",!i&&["span",{class:"ace_mobile-button",action:"selectall"},"Select All"],i&&["span",{class:"ace_mobile-button",action:"copy"},"Copy"],i&&["span",{class:"ace_mobile-button",action:"cut"},"Cut"],e&&["span",{class:"ace_mobile-button",action:"paste"},"Paste"],s&&["span",{class:"ace_mobile-button",action:"undo"},"Undo"],["span",{class:"ace_mobile-button",action:"find"},"Find"],["span",{class:"ace_mobile-button",action:"openCommandPalette"},"Palette"]]:["span"]),p.firstChild);"paste"==a?e.readText().then((function(e){t.execCommand(a,e)})):a&&("cut"!=a&&"copy"!=a||(e?e.writeText(t.getCopyText()):document.execCommand("copy")),t.execCommand(a)),p.firstChild.style.display="none",n=!1,"openCommandPalette"!=a&&t.focus()},p=r.buildDom(["div",{class:"ace_mobile-menu",ontouchstart:function(e){g="menu",e.stopPropagation(),e.preventDefault(),t.textInput.focus()},ontouchend:function(e){e.stopPropagation(),e.preventDefault(),o(e)},onclick:o},["span"],["span",{class:"ace_mobile-button",action:"more"},"..."]],t.container));var i=t.selection.cursor,s=t.renderer.textToScreenCoordinates(i.row,i.column),a=t.renderer.textToScreenCoordinates(0,0).pageX,l=t.renderer.scrollLeft,c=t.container.getBoundingClientRect();p.style.top=s.pageY-c.top-3+"px",s.pageX-c.left1)return clearTimeout(c),c=null,a=-1,void(g="zoom");d=t.$mouseHandler.isMousePressed=!0;var r=t.renderer.layerConfig.lineHeight,u=t.renderer.layerConfig.lineHeight,p=e.timeStamp;l=p;var b=i[0],w=b.clientX,k=b.clientY;Math.abs(n-w)+Math.abs(s-k)>r&&(a=-1),n=e.clientX=w,s=e.clientY=k,y=v=0;var C=new o(e,t);if(h=C.getDocumentPosition(),p-a<500&&1==i.length&&!m)f++,e.preventDefault(),e.button=0,function(){c=null,clearTimeout(c),t.selection.moveToPosition(h);var e=f>=2?t.selection.getLineRange(h.row):t.session.getBracketRange(h);e&&!e.isEmpty()?t.selection.setRange(e):t.selection.selectWord(),g="wait"}();else{f=0;var $=t.selection.cursor,S=t.selection.isEmpty()?$:t.selection.anchor,E=t.renderer.$cursorLayer.getPixelPosition($,!0),O=t.renderer.$cursorLayer.getPixelPosition(S,!0),T=t.renderer.scroller.getBoundingClientRect(),A=t.renderer.layerConfig.offset,_=t.renderer.scrollLeft,L=function(e,t){return(e/=u)*e+(t=t/r-.75)*t};if(e.clientXR?"cursor":"anchor"),g=R<3.5?"anchor":M<3.5?"cursor":"scroll",c=setTimeout(x,450)}a=p}),t),i.addListener(e,"touchend",(function(e){d=t.$mouseHandler.isMousePressed=!1,u&&clearInterval(u),"zoom"==g?(g="",m=0):c?(t.selection.moveToPosition(h),m=0,b()):"scroll"==g?(m+=60,u=setInterval((function(){m--<=0&&(clearInterval(u),u=null),Math.abs(y)<.01&&(y=0),Math.abs(v)<.01&&(v=0),m<20&&(y*=.9),m<20&&(v*=.9);var e=t.session.getScrollTop();t.renderer.scrollBy(10*y,10*v),e==t.session.getScrollTop()&&(m=0)}),10),w()):b(),clearTimeout(c),c=null}),t),i.addListener(e,"touchmove",(function(e){c&&(clearTimeout(c),c=null);var i=e.touches;if(!(i.length>1||"zoom"==g)){var r=i[0],a=n-r.clientX,u=s-r.clientY;if("wait"==g){if(!(a*a+u*u>4))return e.preventDefault();g="cursor"}n=r.clientX,s=r.clientY,e.clientX=r.clientX,e.clientY=r.clientY;var h=e.timeStamp,d=h-l;if(l=h,"scroll"==g){var p=new o(e,t);p.speed=1,p.wheelX=a,p.wheelY=u,10*Math.abs(a)=e){for(r=h+1;r=e;)r++;for(a=h,l=r-1;a=t.length||2!=(l=n[i-1])&&3!=l||2!=(c=t[i+1])&&3!=c?4:(r&&(c=3),c==l?c:4);case 10:return 2==(l=i>0?n[i-1]:5)&&i+10&&2==n[i-1])return 2;if(r)return 4;for(p=i+1,d=t.length;p=1425&&m<=2303||64286==m;if(l=t[p],f&&(1==l||7==l))return 1}return i<1||5==(l=t[i-1])?4:n[i-1];case 5:return r=!1,s=!0,o;case 6:return a=!0,4;case 13:case 14:case 16:case 17:case 15:r=!1;case h:return 4}}function f(e){var t=e.charCodeAt(0),n=t>>8;return 0==n?t>191?0:d[t]:5==n?/[\u0591-\u05f4]/.test(e)?1:0:6==n?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?12:/[\u0660-\u0669\u066b-\u066c]/.test(e)?3:1642==t?u:/[\u06f0-\u06f9]/.test(e)?2:7:32==n&&t<=8287?p[255&t]:254==n&&t>=65136?7:4}t.L=0,t.R=1,t.EN=2,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.RLE=7,t.DOT="·",t.doBidiReorder=function(e,n,u){if(e.length<2)return{};var d=e.split(""),p=new Array(d.length),y=new Array(d.length),v=[];o=u?1:0,function(e,t,n,u){var h=o?c:l,d=null,p=null,g=null,y=0,v=null,b=-1,w=null,x=null,k=[];if(!u)for(w=0,u=[];w0)if(16==v){for(w=b;w-1){for(w=b;w=0&&8==u[C];C--)t[C]=o}}(d,v,d.length,n);for(var b=0;b7&&n[b]<13||4===n[b]||n[b]===h)?v[b]=t.ON_R:b>0&&"ل"===d[b-1]&&/\u0622|\u0623|\u0625|\u0627/.test(d[b])&&(v[b-1]=v[b]=t.R_H,b++);for(d[d.length-1]===t.DOT&&(v[d.length-1]=t.B),"‫"===d[0]&&(v[0]=t.RLE),b=0;b=0&&(e=this.session.$docRowCache[n])}return e},e.prototype.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length)for(var n,o=this.session.$getRowCacheIndex(t,this.currentRow);this.currentRow-e>0&&(n=this.session.$getRowCacheIndex(t,this.currentRow-e-1))===o;)o=n,e++;else e=this.currentRow;return e},e.prototype.updateRowLine=function(e,t){void 0===e&&(e=this.getDocumentRow());var n=e===this.session.getLength()-1?this.EOF:this.EOL;if(this.wrapIndent=0,this.line=this.session.getLine(e),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE,this.session.$useWrapMode){var r=this.session.$wrapData[e];r&&(void 0===t&&(t=this.getSplitIndex()),t>0&&r.length?(this.wrapIndent=r.indent,this.wrapOffset=this.wrapIndent*this.charWidths[o.L],this.line=tt?this.session.getOverwrite()?e:e-1:t,i=o.getVisualFromLogicalIdx(n,this.bidiMap),r=this.bidiMap.bidiLevels,s=0;!this.session.getOverwrite()&&e<=t&&r[i]%2!=0&&i++;for(var a=0;at&&r[i]%2==0&&(s+=this.charWidths[r[i]]),this.wrapIndent&&(s+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(s+=this.rtlLineOffset),s},e.prototype.getSelections=function(e,t){var n,o=this.bidiMap,i=o.bidiLevels,r=[],s=0,a=Math.min(e,t)-this.wrapIndent,l=Math.max(e,t)-this.wrapIndent,c=!1,u=!1,h=0;this.wrapIndent&&(s+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var d,p=0;p=a&&dn+r/2;){if(n+=r,o===i.length-1){r=0;break}r=this.charWidths[i[++o]]}return o>0&&i[o-1]%2!=0&&i[o]%2==0?(e0&&i[o-1]%2==0&&i[o]%2!=0?t=1+(e>n?this.bidiMap.logicalFromVisual[o]:this.bidiMap.logicalFromVisual[o-1]):this.isRtlDir&&o===i.length-1&&0===r&&i[o-1]%2==0||!this.isRtlDir&&0===o&&i[o]%2!=0?t=1+this.bidiMap.logicalFromVisual[o]:(o>0&&i[o-1]%2!=0&&0!==r&&o--,t=this.bidiMap.logicalFromVisual[o]),0===t&&this.isRtlDir&&t++,t+this.wrapIndent},e}();t.BidiHandler=s})),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],(function(e,t,n){"use strict";var o=e("./lib/oop"),i=e("./lib/lang"),r=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,a=function(){function e(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var t=this;this.cursor.on("change",(function(e){t.$cursorChanged=!0,t.$silent||t._emit("changeCursor"),t.$isEmpty||t.$silent||t._emit("changeSelection"),t.$keepDesiredColumnOnChange||e.old.column==e.value.column||(t.$desiredColumn=null)})),this.anchor.on("change",(function(){t.$anchorChanged=!0,t.$isEmpty||t.$silent||t._emit("changeSelection")}))}return e.prototype.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},e.prototype.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},e.prototype.getCursor=function(){return this.lead.getPosition()},e.prototype.setAnchor=function(e,t){this.$isEmpty=!1,this.anchor.setPosition(e,t)},e.prototype.getAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},e.prototype.getSelectionLead=function(){return this.lead.getPosition()},e.prototype.isBackwards=function(){var e=this.anchor,t=this.lead;return e.row>t.row||e.row==t.row&&e.column>t.column},e.prototype.getRange=function(){var e=this.anchor,t=this.lead;return this.$isEmpty?s.fromPoints(t,t):this.isBackwards()?s.fromPoints(t,e):s.fromPoints(e,t)},e.prototype.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},e.prototype.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},e.prototype.setRange=function(e,t){var n=t?e.end:e.start,o=t?e.start:e.end;this.$setSelection(n.row,n.column,o.row,o.column)},e.prototype.$setSelection=function(e,t,n,o){if(!this.$silent){var i=this.$isEmpty,r=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(e,t),this.cursor.setPosition(n,o),this.$isEmpty=!s.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),(this.$cursorChanged||this.$anchorChanged||i!=this.$isEmpty||r)&&this._emit("changeSelection")}},e.prototype.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},e.prototype.selectTo=function(e,t){this.$moveSelection((function(){this.moveCursorTo(e,t)}))},e.prototype.selectToPosition=function(e){this.$moveSelection((function(){this.moveCursorToPosition(e)}))},e.prototype.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},e.prototype.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},e.prototype.selectUp=function(){this.$moveSelection(this.moveCursorUp)},e.prototype.selectDown=function(){this.$moveSelection(this.moveCursorDown)},e.prototype.selectRight=function(){this.$moveSelection(this.moveCursorRight)},e.prototype.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},e.prototype.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},e.prototype.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},e.prototype.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},e.prototype.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},e.prototype.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},e.prototype.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},e.prototype.getWordRange=function(e,t){if(void 0===t){var n=e||this.lead;e=n.row,t=n.column}return this.session.getWordRange(e,t)},e.prototype.selectWord=function(){this.setSelectionRange(this.getWordRange())},e.prototype.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},e.prototype.getLineRange=function(e,t){var n,o="number"==typeof e?e:this.lead.row,i=this.session.getFoldLine(o);return i?(o=i.start.row,n=i.end.row):n=o,!0===t?new s(o,0,n,this.session.getLine(n).length):new s(o,0,n+1,0)},e.prototype.selectLine=function(){this.setSelectionRange(this.getLineRange())},e.prototype.moveCursorUp=function(){this.moveCursorBy(-1,0)},e.prototype.moveCursorDown=function(){this.moveCursorBy(1,0)},e.prototype.wouldMoveIntoSoftTab=function(e,t,n){var o=e.column,i=e.column+t;return n<0&&(o=e.column-t,i=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(o,i).split(" ").length-1==t},e.prototype.moveCursorLeft=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(0===t.column)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var n=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,n,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},e.prototype.moveCursorRight=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(e.end.row,e.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=o)}}this.moveCursorTo(t.row,t.column)},e.prototype.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},e.prototype.moveCursorFileStart=function(){this.moveCursorTo(0,0)},e.prototype.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),o=n.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var i=this.session.getFoldAt(e,t,1);if(i)this.moveCursorTo(i.end.row,i.end.column);else{if(this.session.nonTokenRe.exec(o)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,o=n.substring(t)),t>=n.length)return this.moveCursorTo(e,n.length),this.moveCursorRight(),void(e0&&this.moveCursorWordLeft());this.session.tokenRe.exec(r)&&(n-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,n)}},e.prototype.$shortWordEndIndex=function(e){var t,n=0,o=/\s/,i=this.session.tokenRe;if(i.lastIndex=0,this.session.tokenRe.exec(e))n=this.session.tokenRe.lastIndex;else{for(;(t=e[n])&&o.test(t);)n++;if(n<1)for(i.lastIndex=0;(t=e[n])&&!i.test(t);)if(i.lastIndex=0,n++,o.test(t)){if(n>2){n--;break}for(;(t=e[n])&&o.test(t);)n++;if(n>2)break}}return i.lastIndex=0,n},e.prototype.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),o=n.substring(t),i=this.session.getFoldAt(e,t,1);if(i)return this.moveCursorTo(i.end.row,i.end.column);if(t==n.length){var r=this.doc.getLength();do{e++,o=this.doc.getLine(e)}while(e0&&/^\s*$/.test(o));n=o.length,/\s+$/.test(o)||(o="")}var r=i.stringReverse(o),s=this.$shortWordEndIndex(r);return this.moveCursorTo(t,n-s)},e.prototype.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},e.prototype.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},e.prototype.moveCursorBy=function(e,t){var n,o=this.session.documentToScreenPosition(this.lead.row,this.lead.column);if(0===t&&(0!==e&&(this.session.$bidiHandler.isBidiRow(o.row,this.lead.row)?(n=this.session.$bidiHandler.getPosLeft(o.column),o.column=Math.round(n/this.session.$bidiHandler.charWidths[0])):n=o.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?o.column=this.$desiredColumn:this.$desiredColumn=o.column),0!=e&&this.session.lineWidgets&&this.session.lineWidgets[this.lead.row]){var i=this.session.lineWidgets[this.lead.row];e<0?e-=i.rowsAbove||0:e>0&&(e+=i.rowCount-(i.rowsAbove||0))}var r=this.session.screenToDocumentPosition(o.row+e,o.column,n);0!==e&&0===t&&r.row===this.lead.row&&(r.column,this.lead.column),this.moveCursorTo(r.row,r.column+t,0===t)},e.prototype.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},e.prototype.moveCursorTo=function(e,t,n){var o=this.session.getFoldAt(e,t,1);o&&(e=o.start.row,t=o.start.column),this.$keepDesiredColumnOnChange=!0;var i=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(i.charAt(t))&&i.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},e.prototype.moveCursorToScreen=function(e,t,n){var o=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(o.row,o.column,n)},e.prototype.detach=function(){this.lead.detach(),this.anchor.detach()},e.prototype.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},e.prototype.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},e.prototype.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var n=this.getCursor();return s.fromPoints(t,n)}catch(e){return s.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},e.prototype.toJSON=function(){if(this.rangeCount)var e=this.ranges.map((function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t}));else(e=this.getRange()).isBackwards=this.isBackwards();return e},e.prototype.fromJSON=function(e){if(null==e.start){if(this.rangeList&&e.length>1){this.toSingleRange(e[0]);for(var t=e.length;t--;){var n=s.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},e.prototype.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0},e}();a.prototype.setSelectionAnchor=a.prototype.setAnchor,a.prototype.getSelectionAnchor=a.prototype.getAnchor,a.prototype.setSelectionRange=a.prototype.setRange,o.implement(a.prototype,r),t.Selection=a})),ace.define("ace/tokenizer",["require","exports","module","ace/lib/report_error"],(function(e,t,n){"use strict";var o=e("./lib/report_error").reportError,i=2e3,r=function(){function e(e){for(var t in this.states=e,this.regExps={},this.matchMappings={},this.states){for(var n=this.states[t],o=[],i=0,r=this.matchMappings[t]={defaultToken:"text"},s="g",a=[],l=0;l1?this.$applyToken:c.token),h>1&&(/\\\d/.test(c.regex)?u=c.regex.replace(/\\([0-9]+)/g,(function(e,t){return"\\"+(parseInt(t,10)+i+1)})):(h=1,u=this.removeCapturingGroups(c.regex)),c.splitRegex||"string"==typeof c.token||a.push(c)),r[i]=l,i+=h,o.push(u),c.onMatch||(c.onMatch=null)}}o.length||(r[0]=0,o.push("$")),a.forEach((function(e){e.splitRegex=this.createSplitterRegexp(e.regex,s)}),this),this.regExps[t]=new RegExp("("+o.join(")|(")+")|($)",s)}}return e.prototype.$setMaxTokenCount=function(e){i=0|e},e.prototype.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),n=this.token.apply(this,t);if("string"==typeof n)return[{type:n,value:e}];for(var o=[],i=0,r=n.length;iu){var y=e.substring(u,f-m.length);d.type==p?d.value+=y:(d.type&&c.push(d),d={type:p,value:y})}for(var v=0;vi){for(h>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});u1&&n[0]!==o&&n.unshift("#tmp",o),{tokens:c,state:n.length?n:o}},e}();r.prototype.reportError=o,t.Tokenizer=r})),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/deep_copy"],(function(e,t,n){"use strict";var o=e("../lib/deep_copy").deepCopy,i=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(t)for(var n in e){for(var o=e[n],i=0;i=this.$rowTokens.length;){if(this.$row+=1,e||(e=this.$session.getLength()),this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},e.prototype.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},e.prototype.getCurrentTokenRow=function(){return this.$row},e.prototype.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,n=e[t].start;if(void 0!==n)return n;for(n=0;t>0;)n+=e[t-=1].value.length;return n},e.prototype.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},e.prototype.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new o(this.$row,t,this.$row,t+e.value.length)},e}();t.TokenIterator=i})),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],(function(e,t,n){"use strict";var o,i=e("../../lib/oop"),r=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,a=e("../../lib/lang"),l=["text","paren.rparen","rparen","paren","punctuation.operator"],c=["text","paren.rparen","rparen","paren","punctuation.operator","comment"],u={},h={'"':'"',"'":"'"},d=function(e){var t=-1;if(e.multiSelect&&(t=e.selection.index,u.rangeCount!=e.multiSelect.rangeCount&&(u={rangeCount:e.multiSelect.rangeCount})),u[t])return o=u[t];o=u[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},p=function(e,t,n,o){var i=e.end.row-e.start.row;return{text:n+t+o,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},g=function(e){e=e||{},this.add("braces","insertion",(function(t,n,i,r,s){var l=i.getCursorPosition(),c=r.doc.getLine(l.row);if("{"==s){d(i);var u=i.getSelectionRange(),h=r.doc.getTextRange(u);if(""!==h&&"{"!==h&&i.getWrapBehavioursEnabled())return p(u,h,"{","}");if(g.isSaneInsertion(i,r))return/[\]\}\)]/.test(c[l.column])||i.inMultiSelectMode||e.braces?(g.recordAutoInsert(i,r,"}"),{text:"{}",selection:[1,1]}):(g.recordMaybeInsert(i,r,"{"),{text:"{",selection:[1,1]})}else if("}"==s){if(d(i),"}"==c.substring(l.column,l.column+1)&&null!==r.$findOpeningBracket("}",{column:l.column+1,row:l.row})&&g.isAutoInsertedClosing(l,c,s))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}else{if("\n"==s||"\r\n"==s){d(i);var m="";if(g.isMaybeInsertedClosing(l,c)&&(m=a.stringRepeat("}",o.maybeInsertedBrackets),g.clearMaybeInsertedClosing()),"}"===c.substring(l.column,l.column+1)){var f=r.findMatchingBracket({row:l.row,column:l.column+1},"}");if(!f)return null;var y=this.$getIndent(r.getLine(f.row))}else{if(!m)return void g.clearMaybeInsertedClosing();y=this.$getIndent(c)}var v=y+r.getTabString();return{text:"\n"+v+"\n"+y+m,selection:[1,v.length,1,v.length]}}g.clearMaybeInsertedClosing()}})),this.add("braces","deletion",(function(e,t,n,i,r){var s=i.doc.getTextRange(r);if(!r.isMultiLine()&&"{"==s){if(d(n),"}"==i.doc.getLine(r.start.row).substring(r.end.column,r.end.column+1))return r.end.column++,r;o.maybeInsertedBrackets--}})),this.add("parens","insertion",(function(e,t,n,o,i){if("("==i){d(n);var r=n.getSelectionRange(),s=o.doc.getTextRange(r);if(""!==s&&n.getWrapBehavioursEnabled())return p(r,s,"(",")");if(g.isSaneInsertion(n,o))return g.recordAutoInsert(n,o,")"),{text:"()",selection:[1,1]}}else if(")"==i){d(n);var a=n.getCursorPosition(),l=o.doc.getLine(a.row);if(")"==l.substring(a.column,a.column+1)&&null!==o.$findOpeningBracket(")",{column:a.column+1,row:a.row})&&g.isAutoInsertedClosing(a,l,i))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}})),this.add("parens","deletion",(function(e,t,n,o,i){var r=o.doc.getTextRange(i);if(!i.isMultiLine()&&"("==r&&(d(n),")"==o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)))return i.end.column++,i})),this.add("brackets","insertion",(function(e,t,n,o,i){if("["==i){d(n);var r=n.getSelectionRange(),s=o.doc.getTextRange(r);if(""!==s&&n.getWrapBehavioursEnabled())return p(r,s,"[","]");if(g.isSaneInsertion(n,o))return g.recordAutoInsert(n,o,"]"),{text:"[]",selection:[1,1]}}else if("]"==i){d(n);var a=n.getCursorPosition(),l=o.doc.getLine(a.row);if("]"==l.substring(a.column,a.column+1)&&null!==o.$findOpeningBracket("]",{column:a.column+1,row:a.row})&&g.isAutoInsertedClosing(a,l,i))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}})),this.add("brackets","deletion",(function(e,t,n,o,i){var r=o.doc.getTextRange(i);if(!i.isMultiLine()&&"["==r&&(d(n),"]"==o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)))return i.end.column++,i})),this.add("string_dquotes","insertion",(function(e,t,n,o,i){var r=o.$mode.$quotes||h;if(1==i.length&&r[i]){if(this.lineCommentStart&&-1!=this.lineCommentStart.indexOf(i))return;d(n);var s=i,a=n.getSelectionRange(),l=o.doc.getTextRange(a);if(!(""===l||1==l.length&&r[l])&&n.getWrapBehavioursEnabled())return p(a,l,s,s);if(!l){var c=n.getCursorPosition(),u=o.doc.getLine(c.row),g=u.substring(c.column-1,c.column),m=u.substring(c.column,c.column+1),f=o.getTokenAt(c.row,c.column),y=o.getTokenAt(c.row,c.column+1);if("\\"==g&&f&&/escape/.test(f.type))return null;var v,b=f&&/string|escape/.test(f.type),w=!y||/string|escape/.test(y.type);if(m==s)(v=b!==w)&&/string\.end/.test(y.type)&&(v=!1);else{if(b&&!w)return null;if(b&&w)return null;var x=o.$mode.tokenRe;x.lastIndex=0;var k=x.test(g);x.lastIndex=0;var C=x.test(m),$=o.$mode.$pairQuotesAfter;if(!($&&$[s]&&$[s].test(g))&&k||C)return null;if(m&&!/[\s;,.})\]\\]/.test(m))return null;var S=u[c.column-2];if(g==s&&(S==s||x.test(S)))return null;v=!0}return{text:v?s+s:"",selection:[1,1]}}}})),this.add("string_dquotes","deletion",(function(e,t,n,o,i){var r=o.$mode.$quotes||h,s=o.doc.getTextRange(i);if(!i.isMultiLine()&&r.hasOwnProperty(s)&&(d(n),o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)==s))return i.end.column++,i})),!1!==e.closeDocComment&&this.add("doc comment end","insertion",(function(e,t,n,o,i){if("doc-start"===e&&("\n"===i||"\r\n"===i)&&n.selection.isEmpty()){var r=n.getCursorPosition(),s=o.doc.getLine(r.row),a=o.doc.getLine(r.row+1),l=this.$getIndent(s);if(/\s*\*/.test(a))return/^\s*\*/.test(s)?{text:i+l+"* ",selection:[1,3+l.length,1,3+l.length]}:{text:i+l+" * ",selection:[1,3+l.length,1,3+l.length]};if(/\/\*\*/.test(s.substring(0,r.column)))return{text:i+l+" * "+i+" "+l+"*/",selection:[1,4+l.length,1,4+l.length]}}}))};g.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),o=new s(t,n.row,n.column);if(!this.$matchTokenType(o.getCurrentToken()||"text",l)){if(/[)}\]]/.test(e.session.getLine(n.row)[n.column]))return!0;var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",l))return!1}return o.stepForward(),o.getCurrentTokenRow()!==n.row||this.$matchTokenType(o.getCurrentToken()||"text",c)},g.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},g.recordAutoInsert=function(e,t,n){var i=e.getCursorPosition(),r=t.doc.getLine(i.row);this.isAutoInsertedClosing(i,r,o.autoInsertedLineEnd[0])||(o.autoInsertedBrackets=0),o.autoInsertedRow=i.row,o.autoInsertedLineEnd=n+r.substr(i.column),o.autoInsertedBrackets++},g.recordMaybeInsert=function(e,t,n){var i=e.getCursorPosition(),r=t.doc.getLine(i.row);this.isMaybeInsertedClosing(i,r)||(o.maybeInsertedBrackets=0),o.maybeInsertedRow=i.row,o.maybeInsertedLineStart=r.substr(0,i.column)+n,o.maybeInsertedLineEnd=r.substr(i.column),o.maybeInsertedBrackets++},g.isAutoInsertedClosing=function(e,t,n){return o.autoInsertedBrackets>0&&e.row===o.autoInsertedRow&&n===o.autoInsertedLineEnd[0]&&t.substr(e.column)===o.autoInsertedLineEnd},g.isMaybeInsertedClosing=function(e,t){return o.maybeInsertedBrackets>0&&e.row===o.maybeInsertedRow&&t.substr(e.column)===o.maybeInsertedLineEnd&&t.substr(0,e.column)==o.maybeInsertedLineStart},g.popAutoInsertedClosing=function(){o.autoInsertedLineEnd=o.autoInsertedLineEnd.substr(1),o.autoInsertedBrackets--},g.clearMaybeInsertedClosing=function(){o&&(o.maybeInsertedBrackets=0,o.maybeInsertedRow=-1)},i.inherits(g,r),t.CstyleBehaviour=g})),ace.define("ace/unicode",["require","exports","module"],(function(e,t,n){"use strict";for(var o=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],i=0,r=[],s=0;s2?o%c!=c-1:o%c==0})}else{if(!this.blockComment)return!1;var p=this.blockComment.start,g=this.blockComment.end,m=new RegExp("^(\\s*)(?:"+l.escapeRegExp(p)+")"),f=new RegExp("(?:"+l.escapeRegExp(g)+")\\s*$"),y=function(e,t){b(e,t)||r&&!/\S/.test(e)||(i.insertInLine({row:t,column:e.length},g),i.insertInLine({row:t,column:a},p))},v=function(e,t){var n;(n=e.match(f))&&i.removeInLine(t,e.length-n[0].length,e.length),(n=e.match(m))&&i.removeInLine(t,n[1].length,n[0].length)},b=function(e,n){if(m.test(e))return!0;for(var o=t.getTokens(n),i=0;ie.length&&(x=e.length)})),a==1/0&&(a=x,r=!1,s=!1),u&&a%c!=0&&(a=Math.floor(a/c)*c),w(s?v:y)},this.toggleBlockComment=function(e,t,n,o){var i=this.blockComment;if(i){!i.start&&i[0]&&(i=i[0]);var r,s,a=(m=new c(t,o.row,o.column)).getCurrentToken(),l=(t.selection,t.selection.toOrientedRange());if(a&&/comment/.test(a.type)){for(var h,d;a&&/comment/.test(a.type);){if(-1!=(f=a.value.indexOf(i.start))){var p=m.getCurrentTokenRow(),g=m.getCurrentTokenColumn()+f;h=new u(p,g,p,g+i.start.length);break}a=m.stepBackward()}var m;for(a=(m=new c(t,o.row,o.column)).getCurrentToken();a&&/comment/.test(a.type);){var f;if(-1!=(f=a.value.indexOf(i.end))){p=m.getCurrentTokenRow(),g=m.getCurrentTokenColumn()+f,d=new u(p,g,p,g+i.end.length);break}a=m.stepForward()}d&&t.remove(d),h&&(t.remove(h),r=h.start.row,s=-i.start.length)}else s=i.start.length,r=n.start.row,t.insert(n.end,i.end),t.insert(n.start,i.start);l.start.row==r&&(l.start.column+=s),l.end.row==r&&(l.end.column+=s),t.selection.fromOrientedRange(l)}},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.autoOutdent=function(e,t,n){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){for(var t in this.$embeds=[],this.$modes={},e)if(e[t]){var n=e[t],i=n.prototype.$id,r=o.$modes[i];r||(o.$modes[i]=r=new n),o.$modes[t]||(o.$modes[t]=r),this.$embeds.push(t),this.$modes[t]=r}var s=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"];for(t=0;tthis.row)){var t=function(e,t,n){var o="insert"==e.action,i=(o?1:-1)*(e.end.row-e.start.row),r=(o?1:-1)*(e.end.column-e.start.column),a=e.start,l=o?a:e.end;return s(t,a,n)?{row:t.row,column:t.column}:s(l,t,!n)?{row:t.row+i,column:t.column+(t.row==l.row?r:0)}:{row:a.row,column:a.column}}(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(t.row,t.column,!0)}},e.prototype.setPosition=function(e,t,n){var o;if(o=n?{row:e,column:t}:this.$clipPositionToDocument(e,t),this.row!=o.row||this.column!=o.column){var i={row:this.row,column:this.column};this.row=o.row,this.column=o.column,this._signal("change",{old:i,value:o})}},e.prototype.detach=function(){this.document.off("change",this.$onChange)},e.prototype.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},e.prototype.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n},e}();function s(e,t,n){var o=n?e.column<=t.column:e.column=n&&(e=n-1,t=void 0);var o=this.getLine(e);return null==t&&(t=o.length),{row:e,column:t=Math.min(Math.max(t,0),o.length)}},e.prototype.clonePos=function(e){return{row:e.row,column:e.column}},e.prototype.pos=function(e,t){return{row:e,column:t}},e.prototype.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},e.prototype.insertFullLines=function(e,t){var n=0;(e=Math.min(Math.max(e,0),this.getLength()))0,o=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},e.prototype.replace=function(e,t){return e instanceof s||(e=s.fromPoints(e.start,e.end)),0===t.length&&e.isEmpty()?e.start:t==this.getTextRange(e)?e.end:(this.remove(e),t?this.insert(e.start,t):e.start)},e.prototype.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},e.prototype.applyDelta=function(e,t){var n="insert"==e.action;(n?e.lines.length<=1&&!e.lines[0]:!s.comparePoints(e.start,e.end))||(n&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(i(this.$lines,e,t),this._signal("change",e)))},e.prototype.$safeApplyDelta=function(e){var t=this.$lines.length;("remove"==e.action&&e.start.row20){n.running=setTimeout(n.$worker,20);break}}n.currentLine=t,-1==o&&(o=t),r<=o&&n.fireUpdateEvent(r,o)}}}return e.prototype.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},e.prototype.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},e.prototype.fireUpdateEvent=function(e,t){var n={first:e,last:t};this._signal("update",{data:n})},e.prototype.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},e.prototype.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},e.prototype.$updateOnChange=function(e){var t=e.start.row,n=e.end.row-t;if(0===n)this.lines[t]=null;else if("remove"==e.action)this.lines.splice(t,n+1,null),this.states.splice(t,n+1,null);else{var o=Array(n+1);o.unshift(t,1),this.lines.splice.apply(this.lines,o),this.states.splice.apply(this.states,o)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},e.prototype.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},e.prototype.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},e.prototype.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},e.prototype.$tokenizeRow=function(e){var t=this.doc.getLine(e),n=this.states[e-1],o=this.tokenizer.getLineTokens(t,n,e);return this.states[e]+""!=o.state+""?(this.states[e]=o.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=o.tokens},e.prototype.cleanup=function(){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.removeAllListeners()},e}();o.implement(r.prototype,i),t.BackgroundTokenizer=r})),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/range"],(function(e,t,n){"use strict";var o=e("./lib/lang"),i=e("./range").Range,r=function(){function e(e,t,n){void 0===n&&(n="text"),this.setRegexp(e),this.clazz=t,this.type=n}return e.prototype.setRegexp=function(e){this.regExp+""!=e+""&&(this.regExp=e,this.cache=[])},e.prototype.update=function(e,t,n,r){if(this.regExp)for(var s=r.firstRow,a=r.lastRow,l={},c=s;c<=a;c++){var u=this.cache[c];null==u&&((u=o.getMatchOffsets(n.getLine(c),this.regExp)).length>this.MAX_RANGES&&(u=u.slice(0,this.MAX_RANGES)),u=u.map((function(e){return new i(c,e.offset,c,e.offset+e.length)})),this.cache[c]=u.length?u:"");for(var h=u.length;h--;){var d=u[h].toScreenRange(n),p=d.toString();l[p]||(l[p]=!0,t.drawSingleLineMarker(e,d,this.clazz,r))}}},e}();r.prototype.MAX_RANGES=500,t.SearchHighlight=r})),ace.define("ace/undomanager",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=function(){function e(){this.$maxRev=0,this.$fromUndo=!1,this.$undoDepth=1/0,this.reset()}return e.prototype.addSession=function(e){this.$session=e},e.prototype.add=function(e,t,n){if(!this.$fromUndo&&e!=this.$lastDelta){if(this.$keepRedoStack||(this.$redoStack.length=0),!1===t||!this.lastDeltas){this.lastDeltas=[];var o=this.$undoStack.length;o>this.$undoDepth-1&&this.$undoStack.splice(0,o-this.$undoDepth+1),this.$undoStack.push(this.lastDeltas),e.id=this.$rev=++this.$maxRev}"remove"!=e.action&&"insert"!=e.action||(this.$lastDelta=e),this.lastDeltas.push(e)}},e.prototype.addSelection=function(e,t){this.selections.push({value:e,rev:t||this.$rev})},e.prototype.startNewGroup=function(){return this.lastDeltas=null,this.$rev},e.prototype.markIgnored=function(e,t){null==t&&(t=this.$rev+1);for(var n=this.$undoStack,o=n.length;o--;){var i=n[o][0];if(i.id<=e)break;i.id0},e.prototype.canRedo=function(){return this.$redoStack.length>0},e.prototype.bookmark=function(e){null==e&&(e=this.$rev),this.mark=e},e.prototype.isAtBookmark=function(){return this.$rev===this.mark},e.prototype.toJSON=function(){return{$redoStack:this.$redoStack,$undoStack:this.$undoStack}},e.prototype.fromJSON=function(e){this.reset(),this.$undoStack=e.$undoStack,this.$redoStack=e.$redoStack},e.prototype.$prettyPrint=function(e){return e?a(e):a(this.$undoStack)+"\n---\n"+a(this.$redoStack)},e}();o.prototype.hasUndo=o.prototype.canUndo,o.prototype.hasRedo=o.prototype.canRedo,o.prototype.isClean=o.prototype.isAtBookmark,o.prototype.markClean=o.prototype.bookmark;var i=e("./range").Range,r=i.comparePoints;function s(e){return{row:e.row,column:e.column}}function a(e){if(e=e||this,Array.isArray(e))return e.map(a).join("\n");var t="";return e.action?(t="insert"==e.action?"+":"-",t+="["+e.lines+"]"):e.value&&(t=Array.isArray(e.value)?e.value.map(l).join("\n"):l(e.value)),e.start&&(t+=l(e)),(e.id||e.rev)&&(t+="\t("+(e.id||e.rev)+")"),t}function l(e){return e.start.row+":"+e.start.column+"=>"+e.end.row+":"+e.end.column}function c(e,t){var n="insert"==e.action,o="insert"==t.action;if(n&&o)if(r(t.start,e.end)>=0)d(t,e,-1);else{if(!(r(t.start,e.start)<=0))return null;d(e,t,1)}else if(n&&!o)if(r(t.start,e.end)>=0)d(t,e,-1);else{if(!(r(t.end,e.start)<=0))return null;d(e,t,-1)}else if(!n&&o)if(r(t.start,e.start)>=0)d(t,e,1);else{if(!(r(t.start,e.start)<=0))return null;d(e,t,1)}else if(!n&&!o)if(r(t.start,e.start)>=0)d(t,e,1);else{if(!(r(t.end,e.start)<=0))return null;d(e,t,-1)}return[t,e]}function u(e,t){for(var n=e.length;n--;)for(var o=0;o=0?d(e,t,-1):(r(e.start,t.start)<=0||d(e,i.fromPoints(t.start,e.start),-1),d(t,e,1));else if(!n&&o)r(t.start,e.end)>=0?d(t,e,-1):(r(t.start,e.start)<=0||d(t,i.fromPoints(e.start,t.start),-1),d(e,t,1));else if(!n&&!o)if(r(t.start,e.end)>=0)d(t,e,-1);else{var s,a;if(!(r(t.end,e.start)<=0))return r(e.start,t.start)<0&&(s=e,e=g(e,t.start)),r(e.end,t.end)>0&&(a=g(e,t.end)),p(t.end,e.start,e.end,-1),a&&!s&&(e.lines=a.lines,e.start=a.start,e.end=a.end,a=e),[t,s,a].filter(Boolean);d(e,t,-1)}return[t,e]}function d(e,t,n){p(e.start,t.start,t.end,n),p(e.end,t.start,t.end,n)}function p(e,t,n,o){e.row==(1==o?t:n).row&&(e.column+=o*(n.column-t.column)),e.row+=o*(n.row-t.row)}function g(e,t){var n=e.lines,o=e.end;e.end=s(t);var i=e.end.row-e.start.row,r=n.splice(i,n.length),a=i?t.column:t.column-e.start.column;return n.push(r[0].substring(0,a)),r[0]=r[0].substr(a),{start:s(t),end:o,lines:r,action:e.action}}function m(e,t){t=function(e){return{start:s(e.start),end:s(e.end),action:e.action,lines:e.lines.slice()}}(t);for(var n=e.length;n--;){for(var o=e[n],i=0;ithis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort((function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)})),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},e.prototype.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},e.prototype.walk=function(e,t,n){var o,i,r=0,s=this.folds,a=!0;null==t&&(t=this.end.row,n=this.end.column);for(var l=0;l0)){var l=o(e,s.start);return 0===a?t&&0!==l?-r-2:r:l>0||0===l&&!t?r:-r-1}}return-r-1},e.prototype.add=function(e){var t=!e.isEmpty(),n=this.pointIndex(e.start,t);n<0&&(n=-n-1);var o=this.pointIndex(e.end,t,n);return o<0?o=-o-1:o++,this.ranges.splice(n,o-n,e)},e.prototype.addList=function(e){for(var t=[],n=e.length;n--;)t.push.apply(t,this.add(e[n]));return t},e.prototype.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},e.prototype.merge=function(){for(var e,t=[],n=this.ranges,i=(n=n.sort((function(e,t){return o(e.start,t.start)})))[0],r=1;r=0},e.prototype.containsPoint=function(e){return this.pointIndex(e)>=0},e.prototype.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},e.prototype.clipRows=function(e,t){var n=this.ranges;if(n[0].start.row>t||n[n.length-1].start.row=o);s++);if("insert"==e.action){for(var l=i-o,c=-t.column+n.column;so);s++)if(u.start.row==o&&u.start.column>=t.column&&(u.start.column==t.column&&this.$bias<=0||(u.start.column+=c,u.start.row+=l)),u.end.row==o&&u.end.column>=t.column){if(u.end.column==t.column&&this.$bias<0)continue;u.end.column==t.column&&c>0&&su.start.column&&u.end.column==r[s+1].start.column&&(u.end.column-=c),u.end.column+=c,u.end.row+=l}}else for(l=o-i,c=t.column-n.column;si);s++)u.end.rowt.column)&&(u.end.column=t.column,u.end.row=t.row):(u.end.column+=c,u.end.row+=l):u.end.row>i&&(u.end.row+=l),u.start.rowt.column)&&(u.start.column=t.column,u.start.row=t.row):(u.start.column+=c,u.start.row+=l):u.start.row>i&&(u.start.row+=l);if(0!=l&&s=e)return i;if(i.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var n=this.$foldData,o=0;for(t&&(o=n.indexOf(t)),-1==o&&(o=0);o=e)return i}return null},this.getFoldedRowCount=function(e,t){for(var n=this.$foldData,o=t-e+1,i=0;i=t){a=e?o-=t-a:o=0);break}s>=e&&(o-=a>=e?s-a:s-e+1)}return o},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort((function(e,t){return e.start.row-t.start.row})),e},this.addFold=function(e,t){var n,o=this.$foldData,s=!1;e instanceof r?n=e:(n=new r(t,e)).collapseChildren=t.collapseChildren,this.$clipRangeToDocument(n.range);var a=n.start.row,l=n.start.column,c=n.end.row,u=n.end.column,h=this.getFoldAt(a,l,1),d=this.getFoldAt(c,u,-1);if(h&&d==h)return h.addSubFold(n);h&&!h.range.isStart(a,l)&&this.removeFold(h),d&&!d.range.isEnd(c,u)&&this.removeFold(d);var p=this.getFoldsInRange(n.range);p.length>0&&(this.removeFolds(p),n.collapseChildren||p.forEach((function(e){n.addSubFold(e)})));for(var g=0;g0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach((function(e){this.expandFold(e)}),this)},this.unfold=function(e,t){var n,i;if(null==e)n=new o(0,0,this.getLength(),0),null==t&&(t=!0);else if("number"==typeof e)n=new o(e,0,e,this.getLine(e).length);else if("row"in e)n=o.fromPoints(e,e);else{if(Array.isArray(e))return i=[],e.forEach((function(e){i=i.concat(this.unfold(e))}),this),i;n=e}for(var r=i=this.getFoldsInRangeList(n);1==i.length&&o.comparePoints(i[0].start,n.start)<0&&o.comparePoints(i[0].end,n.end)>0;)this.expandFolds(i),i=this.getFoldsInRangeList(n);if(0!=t?this.removeFolds(i):this.expandFolds(i),r.length)return r},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var n=this.getFoldLine(e,t);return n?n.end.row:e},this.getRowFoldStart=function(e,t){var n=this.getFoldLine(e,t);return n?n.start.row:e},this.getFoldDisplayLine=function(e,t,n,o,i){null==o&&(o=e.start.row),null==i&&(i=0),null==t&&(t=e.end.row),null==n&&(n=this.getLine(t).length);var r=this.doc,s="";return e.walk((function(e,t,n,a){if(!(tu)break}while(r&&l.test(r.type)&&!/^comment.start/.test(r.type));r=i.stepBackward()}else r=i.getCurrentToken();return c.end.row=i.getCurrentTokenRow(),c.end.column=i.getCurrentTokenColumn(),/^comment.end/.test(r.type)||(c.end.column+=r.value.length-2),c}},this.foldAll=function(e,t,n,o){null==n&&(n=1e5);var i=this.foldWidgets;if(i){t=t||this.getLength();for(var r=e=e||0;r=e&&(r=s.end.row,s.collapseChildren=n,this.addFold("...",s))}}},this.foldToLevel=function(e){for(this.foldAll();e-- >0;)this.unfold(null,!1)},this.foldAllComments=function(){var e=this;this.foldAll(null,null,null,(function(t){for(var n=e.getTokens(t),o=0;o=0;){var r=n[i];if(null==r&&(r=n[i]=this.getFoldWidget(i)),"start"==r){var s=this.getFoldWidgetRange(i);if(o||(o=s),s&&s.end.row>=e)break}i--}return{range:-1!==i&&s,firstRange:o}},this.onFoldWidgetClick=function(e,t){t instanceof a&&(t=t.domEvent);var n={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey};if(!this.$toggleFoldWidget(e,n)){var o=t.target||t.srcElement;o&&/ace_fold-widget/.test(o.className)&&(o.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(this.getFoldWidget){var n=this.getFoldWidget(e),o=this.getLine(e),i="end"===n?-1:1,r=this.getFoldAt(e,-1===i?0:o.length,i);if(r)return t.children||t.all?this.removeFold(r):this.expandFold(r),r;var s=this.getFoldWidgetRange(e,!0);if(s&&!s.isMultiLine()&&(r=this.getFoldAt(s.start.row,s.start.column,1))&&s.isEqual(r.range))return this.removeFold(r),r;if(t.siblings){var a=this.getParentFoldRangeData(e);if(a.range)var l=a.range.start.row+1,c=a.range.end.row;this.foldAll(l,c,t.all?1e4:0)}else t.children?(c=s?s.end.row:this.getLength(),this.foldAll(e+1,c,t.all?1e4:0)):s&&(t.all&&(s.collapseChildren=1e4),this.addFold("...",s));return s}},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var n=this.$toggleFoldWidget(t,{});if(!n){var o=this.getParentFoldRangeData(t,!0);if(n=o.range||o.firstRange){t=n.start.row;var i=this.getFoldAt(t,this.getLine(t).length,1);i?this.removeFold(i):this.addFold("...",n)}}},this.updateFoldWidgets=function(e){var t=e.start.row,n=e.end.row-t;if(0===n)this.foldWidgets[t]=null;else if("remove"==e.action)this.foldWidgets.splice(t,n+1,null);else{var o=Array(n+1);o.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,o)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}})),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],(function(e,t,n){"use strict";var o=e("../token_iterator").TokenIterator,i=e("../range").Range;t.BracketMatch=function(){this.findMatchingBracket=function(e,t){if(0==e.column)return null;var n=t||this.getLine(e.row).charAt(e.column-1);if(""==n)return null;var o=n.match(/([\(\[\{])|([\)\]\}])/);return o?o[1]?this.$findClosingBracket(o[1],e):this.$findOpeningBracket(o[2],e):null},this.getBracketRange=function(e){var t,n=this.getLine(e.row),o=!0,r=n.charAt(e.column-1),s=r&&r.match(/([\(\[\{])|([\)\]\}])/);if(s||(r=n.charAt(e.column),e={row:e.row,column:e.column+1},s=r&&r.match(/([\(\[\{])|([\)\]\}])/),o=!1),!s)return null;if(s[1]){if(!(a=this.$findClosingBracket(s[1],e)))return null;t=i.fromPoints(e,a),o||(t.end.column++,t.start.column--),t.cursor=t.end}else{var a;if(!(a=this.$findOpeningBracket(s[2],e)))return null;t=i.fromPoints(a,e),o||(t.start.column++,t.end.column--),t.cursor=t.start}return t},this.getMatchingBracketRanges=function(e,t){var n=this.getLine(e.row),o=/([\(\[\{])|([\)\]\}])/,r=!t&&n.charAt(e.column-1),s=r&&r.match(o);if(s||(r=(void 0===t||t)&&n.charAt(e.column),e={row:e.row,column:e.column+1},s=r&&r.match(o)),!s)return null;var a=new i(e.row,e.column-1,e.row,e.column),l=s[1]?this.$findClosingBracket(s[1],e):this.$findOpeningBracket(s[2],e);return l?[a,new i(l.row,l.column,l.row,l.column+1)]:[a]},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(e,t,n){var i=this.$brackets[e],r=1,s=new o(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){n||(n=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)").replace(/-close\b/,"-(close|open)")+")+"));for(var l=t.column-s.getCurrentTokenColumn()-2,c=a.value;;){for(;l>=0;){var u=c.charAt(l);if(u==i){if(0==(r-=1))return{row:s.getCurrentTokenRow(),column:l+s.getCurrentTokenColumn()}}else u==e&&(r+=1);l-=1}do{a=s.stepBackward()}while(a&&!n.test(a.type));if(null==a)break;l=(c=a.value).length-1}return null}},this.$findClosingBracket=function(e,t,n){var i=this.$brackets[e],r=1,s=new o(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){n||(n=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)").replace(/-open\b/,"-(close|open)")+")+"));for(var l=t.column-s.getCurrentTokenColumn();;){for(var c=a.value,u=c.length;l"===t.value?o=!0:-1!==t.type.indexOf("tag-name")&&(n=!0))}while(t&&!n);return t},this.$findClosingTag=function(e,t){var n,o=t.value,r=t.value,s=0,a=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);t=e.stepForward();var l=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length),c=!1;do{if(n=t,t=e.stepForward()){if(">"===t.value&&!c){var u=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);c=!0}if(-1!==t.type.indexOf("tag-name")){if(r===(o=t.value))if("<"===n.value)s++;else if(""!==t.value)return;var p=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1)}}else r===o&&"/>"===t.value&&--s<0&&(p=d=h=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+2),u=new i(l.end.row,l.end.column,l.end.row,l.end.column+1))}}while(t&&s>=0);if(a&&u&&h&&p&&l&&d)return{openTag:new i(a.start.row,a.start.column,u.end.row,u.end.column),closeTag:new i(h.start.row,h.start.column,p.end.row,p.end.column),openTagName:l,closeTagName:d}},this.$findOpeningTag=function(e,t){var n=e.getCurrentToken(),o=t.value,r=0,s=e.getCurrentTokenRow(),a=e.getCurrentTokenColumn(),l=a+2,c=new i(s,a,s,l);e.stepForward();var u=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length);if((t=e.stepForward())&&">"===t.value){var h=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);e.stepBackward(),e.stepBackward();do{if(t=n,s=e.getCurrentTokenRow(),l=(a=e.getCurrentTokenColumn())+t.value.length,n=e.stepBackward(),t)if(-1!==t.type.indexOf("tag-name")){if(o===t.value)if("<"===n.value){if(++r>0){var d=new i(s,a,s,l),p=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);do{t=e.stepForward()}while(t&&">"!==t.value);var g=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1)}}else""===t.value){for(var m=0,f=n;f;){if(-1!==f.type.indexOf("tag-name")&&f.value===o){r--;break}if("<"===f.value)break;f=e.stepBackward(),m++}for(var y=0;yn&&(this.$docRowCache.splice(n,t),this.$screenRowCache.splice(n,t))},e.prototype.$getRowCacheIndex=function(e,t){for(var n=0,o=e.length-1;n<=o;){var i=n+o>>1,r=e[i];if(t>r)n=i+1;else{if(!(t=t);r++);return(n=o[r])?(n.index=r,n.start=i-n.value.length,n):null},e.prototype.setUndoManager=function(e){if(this.$undoManager=e,this.$informUndoManager&&this.$informUndoManager.cancel(),e){var t=this;e.addSession(this),this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.mergeUndoDeltas=!1},this.$informUndoManager=i.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},e.prototype.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},e.prototype.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},e.prototype.getTabString=function(){return this.getUseSoftTabs()?i.stringRepeat(" ",this.getTabSize()):"\t"},e.prototype.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},e.prototype.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},e.prototype.setTabSize=function(e){this.setOption("tabSize",e)},e.prototype.getTabSize=function(){return this.$tabSize},e.prototype.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize==0},e.prototype.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},e.prototype.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},e.prototype.setOverwrite=function(e){this.setOption("overwrite",e)},e.prototype.getOverwrite=function(){return this.$overwrite},e.prototype.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},e.prototype.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},e.prototype.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},e.prototype.getBreakpoints=function(){return this.$breakpoints},e.prototype.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(o=!!n.charAt(t-1).match(this.tokenRe)),o||(o=!!n.charAt(t).match(this.tokenRe)),o)var i=this.tokenRe;else i=/^\s+$/.test(n.slice(t-1,t+1))?/\s/:this.nonTokenRe;var r=t;if(r>0){do{r--}while(r>=0&&n.charAt(r).match(i));r++}for(var s=t;se&&(e=t.screenWidth)})),this.lineWidgetWidth=e},e.prototype.$computeWidth=function(e){if(this.$modified||e){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var t=this.doc.getAllLines(),n=this.$rowLengthCache,o=0,i=0,r=this.$foldData[i],s=r?r.start.row:1/0,a=t.length,l=0;ls){if((l=r.end.row+1)>=a)break;s=(r=this.$foldData[i++])?r.start.row:1/0}null==n[l]&&(n[l]=this.$getStringScreenWidth(t[l])[0]),n[l]>o&&(o=n[l])}this.screenWidth=o}},e.prototype.getLine=function(e){return this.doc.getLine(e)},e.prototype.getLines=function(e,t){return this.doc.getLines(e,t)},e.prototype.getLength=function(){return this.doc.getLength()},e.prototype.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},e.prototype.insert=function(e,t){return this.doc.insert(e,t)},e.prototype.remove=function(e){return this.doc.remove(e)},e.prototype.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},e.prototype.undoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var n=e.length-1;-1!=n;n--){var o=e[n];"insert"==o.action||"remove"==o.action?this.doc.revertDelta(o):o.folds&&this.addFolds(o.folds)}!t&&this.$undoSelect&&(e.selectionBefore?this.selection.fromJSON(e.selectionBefore):this.selection.setRange(this.$getUndoSelection(e,!0))),this.$fromUndo=!1}},e.prototype.redoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var n=0;ne.end.column&&(r.start.column+=c),r.end.row==e.end.row&&r.end.column>e.end.column&&(r.end.column+=c)),s&&r.start.row>=e.end.row&&(r.start.row+=s,r.end.row+=s)}if(r.end=this.insert(r.start,o),i.length){var a=e.start,l=r.start,c=(s=l.row-a.row,l.column-a.column);this.addFolds(i.map((function(e){return(e=e.clone()).start.row==a.row&&(e.start.column+=c),e.end.row==a.row&&(e.end.column+=c),e.start.row+=s,e.end.row+=s,e})))}return r},e.prototype.indentRows=function(e,t,n){n=n.replace(/\t/g,this.getTabString());for(var o=e;o<=t;o++)this.doc.insertInLine({row:o,column:0},n)},e.prototype.outdentRows=function(e){for(var t=e.collapseRows(),n=new u(0,0,0,0),o=this.getTabSize(),i=t.start.row;i<=t.end.row;++i){var r=this.getLine(i);n.start.row=i,n.end.row=i;for(var s=0;s0){var i;if((i=this.getRowFoldEnd(t+n))>this.doc.getLength()-1)return 0;o=i-t}else e=this.$clipRowToDocument(e),o=(t=this.$clipRowToDocument(t))-e+1;var r=new u(e,0,t,Number.MAX_VALUE),s=this.getFoldsInRange(r).map((function(e){return(e=e.clone()).start.row+=o,e.end.row+=o,e})),a=0==n?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+o,a),s.length&&this.addFolds(s),o},e.prototype.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},e.prototype.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},e.prototype.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},e.prototype.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},e.prototype.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},e.prototype.$clipPositionToDocument=function(e,t){if(t=Math.max(0,t),e<0)e=0,t=0;else{var n=this.doc.getLength();e>=n?(e=n-1,t=this.doc.getLine(n-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},e.prototype.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},e.prototype.setUseWrapMode=function(e){if(e!=this.$useWrapMode){if(this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0),e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},e.prototype.getUseWrapMode=function(){return this.$useWrapMode},e.prototype.setWrapLimitRange=function(e,t){this.$wrapLimitRange.min===e&&this.$wrapLimitRange.max===t||(this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},e.prototype.adjustWrapLimit=function(e,t){var n=this.$wrapLimitRange;n.max<0&&(n={min:t,max:t});var o=this.$constrainWrapLimit(e,n.min,n.max);return o!=this.$wrapLimit&&o>1&&(this.$wrapLimit=o,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0)},e.prototype.$constrainWrapLimit=function(e,t,n){return t&&(e=Math.max(t,e)),n&&(e=Math.min(n,e)),e},e.prototype.getWrapLimit=function(){return this.$wrapLimit},e.prototype.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},e.prototype.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},e.prototype.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,n=e.action,o=e.start,i=e.end,r=o.row,s=i.row,a=s-r,l=null;if(this.$updating=!0,0!=a)if("remove"===n){this[t?"$wrapData":"$rowLengthCache"].splice(r,a);var c=this.$foldData;l=this.getFoldsInRange(e),this.removeFolds(l);var u=0;if(m=this.getFoldLine(i.row)){m.addRemoveChars(i.row,i.column,o.column-i.column),m.shiftRow(-a);var h=this.getFoldLine(r);h&&h!==m&&(h.merge(m),m=h),u=c.indexOf(m)+1}for(;u=i.row&&m.shiftRow(-a);s=r}else{var d=Array(a);d.unshift(r,0);var p=t?this.$wrapData:this.$rowLengthCache;if(p.splice.apply(p,d),c=this.$foldData,u=0,m=this.getFoldLine(r)){var g=m.range.compareInside(o.row,o.column);0==g?(m=m.split(o.row,o.column))&&(m.shiftRow(a),m.addRemoveChars(s,0,i.column-o.column)):-1==g&&(m.addRemoveChars(r,0,i.column-o.column),m.shiftRow(a)),u=c.indexOf(m)+1}for(;u=r&&m.shiftRow(a)}}else a=Math.abs(e.start.column-e.end.column),"remove"===n&&(l=this.getFoldsInRange(e),this.removeFolds(l),a=-a),(m=this.getFoldLine(r))&&m.addRemoveChars(r,o.column,a);return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(r,s):this.$updateRowLengthCache(r,s),l},e.prototype.$updateRowLengthCache=function(e,t,n){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},e.prototype.$updateWrapData=function(e,t){var n,o,i=this.doc.getAllLines(),r=this.getTabSize(),s=this.$wrapData,a=this.$wrapLimit,l=e;for(t=Math.min(t,i.length-1);l<=t;)(o=this.getFoldLine(l,o))?(n=[],o.walk(function(e,t,o,r){var s;if(null!=e){(s=this.$getDisplayTokens(e,n.length))[0]=v;for(var a=1;at-h;){var d=r+t-h;if(e[d-1]>=x&&e[d]>=x)u(d);else if(e[d]!=v&&e[d]!=b){for(var p=Math.max(d-(t-(t>>2)),r-1);d>p&&e[d]p&&e[d]p&&e[d]==w;)d--}else for(;d>p&&e[d]p?u(++d):(e[d=r+t]==y&&d--,u(d-h))}else{for(;d!=r-1&&e[d]!=v;d--);if(d>r){u(d);continue}for(d=r+t;d39&&r<48||r>57&&r<64?o.push(w):r>=4352&&$(r)?o.push(f,y):o.push(f)}return o},e.prototype.$getStringScreenWidth=function(e,t,n){if(0==t)return[0,0];var o,i;for(null==t&&(t=1/0),n=n||0,i=0;i=4352&&$(o)?n+=2:n+=1,!(n>t));i++);return[n,i]},e.prototype.getRowLength=function(e){var t=1;return this.lineWidgets&&(t+=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0),this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+t:t},e.prototype.getRowLineCount=function(e){return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1:1},e.prototype.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),n=this.$wrapData[t.row];return n.length&&n[0]=0){a=c[u],r=this.$docRowCache[u];var d=e>c[h-1]}else d=!h;for(var p=this.getLength()-1,g=this.getNextFoldLine(r),m=g?g.start.row:1/0;a<=e&&!(a+(l=this.getRowLength(r))>e||r>=p);)a+=l,++r>m&&(r=g.end.row+1,m=(g=this.getNextFoldLine(r,g))?g.start.row:1/0),d&&(this.$docRowCache.push(r),this.$screenRowCache.push(a));if(g&&g.start.row<=r)o=this.getFoldDisplayLine(g),r=g.start.row;else{if(a+l<=e||r>p)return{row:p,column:this.getLine(p).length};o=this.getLine(r),g=null}var f=0,y=Math.floor(e-a);if(this.$useWrapMode){var v=this.$wrapData[r];v&&(i=v[y],y>0&&v.length&&(f=v.indent,s=v[y-1]||v[v.length-1],o=o.substring(s)))}return void 0!==n&&this.$bidiHandler.isBidiRow(a+y,r,y)&&(t=this.$bidiHandler.offsetToCol(n)),s+=this.$getStringScreenWidth(o,t-f)[1],this.$useWrapMode&&s>=i&&(s=i-1),g?g.idxToPosition(s):{row:r,column:s}},e.prototype.documentToScreenPosition=function(e,t){if(void 0===t)var n=this.$clipPositionToDocument(e.row,e.column);else n=this.$clipPositionToDocument(e,t);e=n.row,t=n.column;var o,i=0,r=null;(o=this.getFoldAt(e,t,1))&&(e=o.start.row,t=o.start.column);var s,a=0,l=this.$docRowCache,c=this.$getRowCacheIndex(l,e),u=l.length;if(u&&c>=0){a=l[c],i=this.$screenRowCache[c];var h=e>l[u-1]}else h=!u;for(var d=this.getNextFoldLine(a),p=d?d.start.row:1/0;a=p){if((s=d.end.row+1)>e)break;p=(d=this.getNextFoldLine(s,d))?d.start.row:1/0}else s=a+1;i+=this.getRowLength(a),a=s,h&&(this.$docRowCache.push(a),this.$screenRowCache.push(i))}var g="";d&&a>=p?(g=this.getFoldDisplayLine(d,e,t),r=d.start.row):(g=this.getLine(e).substring(0,t),r=e);var m=0;if(this.$useWrapMode){var f=this.$wrapData[r];if(f){for(var y=0;g.length>=f[y];)i++,y++;g=g.substring(f[y-1]||0,g.length),m=y>0?f.indent:0}}return this.lineWidgets&&this.lineWidgets[a]&&this.lineWidgets[a].rowsAbove&&(i+=this.lineWidgets[a].rowsAbove),{row:i,column:m+this.$getStringScreenWidth(g)[0]}},e.prototype.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},e.prototype.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},e.prototype.getScreenLength=function(){var e=0,t=null;if(this.$useWrapMode)for(var n=this.$wrapData.length,o=0,i=(a=0,(t=this.$foldData[a++])?t.start.row:1/0);oi&&(o=t.end.row+1,i=(t=this.$foldData[a++])?t.start.row:1/0)}else{e=this.getLength();for(var s=this.$foldData,a=0;an);r++);return[o,r]})},e.prototype.destroy=function(){this.destroyed||(this.bgTokenizer.setDocument(null),this.bgTokenizer.cleanup(),this.destroyed=!0),this.$stopWorker(),this.removeAllListeners(),this.doc&&this.doc.off("change",this.$onChange),this.selection.detach()},e}();m.$uid=0,m.prototype.$modes=s.$modes,m.prototype.getValue=m.prototype.toString,m.prototype.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},m.prototype.$overwrite=!1,m.prototype.$mode=null,m.prototype.$modeId=null,m.prototype.$scrollTop=0,m.prototype.$scrollLeft=0,m.prototype.$wrapLimit=80,m.prototype.$useWrapMode=!1,m.prototype.$wrapLimitRange={min:null,max:null},m.prototype.lineWidgets=null,m.prototype.isFullWidth=$,o.implement(m.prototype,a);var f=1,y=2,v=3,b=4,w=9,x=10,k=11,C=12;function $(e){return!(e<4352)&&(e>=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510)}e("./edit_session/folding").Folding.call(m.prototype),e("./edit_session/bracket_match").BracketMatch.call(m.prototype),s.defineOptions(m.prototype,"session",{wrap:{set:function(e){if(e&&"off"!=e?"free"==e?e=!0:"printMargin"==e?e=-1:"string"==typeof e&&(e=parseInt(e,10)||!1):e=!1,this.$wrap!=e)if(this.$wrap=e,e){var t="number"==typeof e?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}else this.setUseWrapMode(!1)},get:function(){return this.getUseWrapMode()?-1==this.$wrap?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){(e="auto"==e?"text"!=this.$mode.type:"text"!=e)!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){(e=parseInt(e))>0&&this.$tabSize!==e&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function(e){this.setFoldStyle(e)},handlesSet:!0},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId},handlesSet:!0}}),t.EditSession=m})),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],(function(e,t,n){"use strict";var o=e("./lib/lang"),i=e("./lib/oop"),r=e("./range").Range,s=function(){function e(){this.$options={}}return e.prototype.set=function(e){return i.mixin(this.$options,e),this},e.prototype.getOptions=function(){return o.copyObject(this.$options)},e.prototype.setOptions=function(e){this.$options=e},e.prototype.find=function(e){var t=this.$options,n=this.$matchIterator(e,t);if(!n)return!1;var o=null;return n.forEach((function(e,n,i,s){return o=new r(e,n,i,s),!(n==s&&t.start&&t.start.start&&0!=t.skipCurrent&&o.isEqual(t.start)&&(o=null,1))})),o},e.prototype.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var n=t.range,i=n?e.getLines(n.start.row,n.end.row):e.doc.getAllLines(),s=[],a=t.re;if(t.$isMultiLine){var l,c=a.length,u=i.length-c;e:for(var h=a.offset||0;h<=u;h++){for(var d=0;dm||(s.push(l=new r(h,m,h+c-1,f)),c>2&&(h=h+c-2))}}else for(var y=0;yx&&s[d].end.row==k;)d--;for(s=s.slice(y,d+1),y=0,d=s.length;y=c;n--)if(p(n,Number.MAX_VALUE,e))return;if(0!=t.wrap)for(n=u,c=l.row;n>=c;n--)if(p(n,Number.MAX_VALUE,e))return}};else h=function(e){var n=l.row;if(!p(n,l.column,e)){for(n+=1;n<=u;n++)if(p(n,0,e))return;if(0!=t.wrap)for(n=c,u=l.row;n<=u;n++)if(p(n,0,e))return}};if(t.$isMultiLine)var d=n.length,p=function(t,o,r){var s=i?t-d+1:t;if(!(s<0||s+d>e.getLength())){var a=e.getLine(s),l=a.search(n[0]);if(!(!i&&lo))return!!r(s,l,s+d-1,u)||void 0}}};else p=i?function(t,i,r){var a,l=e.getLine(t),c=[],u=0;for(n.lastIndex=0;a=n.exec(l);){var h=a[0].length;if(u=a.index,!h){if(u>=l.length)break;n.lastIndex=u+=o.skipEmptyMatch(l,u,s)}if(a.index+h>i)break;c.push(a.index,h)}for(var d=c.length-1;d>=0;d-=2){var p=c[d-1];if(r(t,p,t,p+(h=c[d])))return!0}}:function(t,i,r){var a,l,c=e.getLine(t);for(n.lastIndex=i;l=n.exec(c);){var u=l[0].length;if(r(t,a=l.index,t,a+u))return!0;if(!u&&(n.lastIndex=a+=o.skipEmptyMatch(c,a,s),a>=c.length))return!1}};return{forEach:h}},e}();t.Search=s})),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("../lib/keys"),s=e("../lib/useragent"),a=r.KEY_MODS,l=function(){function e(e,t){this.$init(e,t,!1)}return e.prototype.$init=function(e,t,n){this.platform=t||(s.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=n},e.prototype.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},e.prototype.removeCommand=function(e,t){var n=e&&("string"==typeof e?e:e.name);e=this.commands[n],t||delete this.commands[n];var o=this.commandKeyBinding;for(var i in o){var r=o[i];if(r==e)delete o[i];else if(Array.isArray(r)){var s=r.indexOf(e);-1!=s&&(r.splice(s,1),1==r.length&&(o[i]=r[0]))}}},e.prototype.bindKey=function(e,t,n){if("object"==typeof e&&e&&(null==n&&(n=e.position),e=e[this.platform]),e)return"function"==typeof t?this.addCommand({exec:t,bindKey:e,name:t.name||e}):void e.split("|").forEach((function(e){var o="";if(-1!=e.indexOf(" ")){var i=e.split(/\s+/);e=i.pop(),i.forEach((function(e){var t=this.parseKeys(e),n=a[t.hashId]+t.key;o+=(o?" ":"")+n,this._addCommandToBinding(o,"chainKeys")}),this),o+=" "}var r=this.parseKeys(e),s=a[r.hashId]+r.key;this._addCommandToBinding(o+s,t,n)}),this)},e.prototype._addCommandToBinding=function(e,t,n){var o,i=this.commandKeyBinding;if(t)if(!i[e]||this.$singleCommand)i[e]=t;else{Array.isArray(i[e])?-1!=(o=i[e].indexOf(t))&&i[e].splice(o,1):i[e]=[i[e]],"number"!=typeof n&&(n=c(t));var r=i[e];for(o=0;on);o++);r.splice(o,0,t)}else delete i[e]},e.prototype.addCommands=function(e){e&&Object.keys(e).forEach((function(t){var n=e[t];if(n){if("string"==typeof n)return this.bindKey(n,t);"function"==typeof n&&(n={exec:n}),"object"==typeof n&&(n.name||(n.name=t),this.addCommand(n))}}),this)},e.prototype.removeCommands=function(e){Object.keys(e).forEach((function(t){this.removeCommand(e[t])}),this)},e.prototype.bindKeys=function(e){Object.keys(e).forEach((function(t){this.bindKey(t,e[t])}),this)},e.prototype._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},e.prototype.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter((function(e){return e})),n=t.pop(),o=r[n];if(r.FUNCTION_KEYS[o])n=r.FUNCTION_KEYS[o].toLowerCase();else{if(!t.length)return{key:n,hashId:-1};if(1==t.length&&"shift"==t[0])return{key:n.toUpperCase(),hashId:-1}}for(var i=0,s=t.length;s--;){var a=r.KEY_MODS[t[s]];if(null==a)return"undefined"!=typeof console&&console.error("invalid modifier "+t[s]+" in "+e),!1;i|=a}return{key:n,hashId:i}},e.prototype.findKeyCommand=function(e,t){var n=a[e]+t;return this.commandKeyBinding[n]},e.prototype.handleKeyboard=function(e,t,n,o){if(!(o<0)){var i=a[t]+n,r=this.commandKeyBinding[i];return e.$keyChain&&(e.$keyChain+=" "+i,r=this.commandKeyBinding[e.$keyChain]||r),!r||"chainKeys"!=r&&"chainKeys"!=r[r.length-1]?(e.$keyChain&&(t&&4!=t||1!=n.length?(-1==t||o>0)&&(e.$keyChain=""):e.$keyChain=e.$keyChain.slice(0,-i.length-1)),{command:r}):(e.$keyChain=e.$keyChain||i,{command:"null"})}},e.prototype.getStatusText=function(e,t){return t.$keyChain||""},e}();function c(e){return"object"==typeof e&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}var u=function(e){function t(t,n){var o=e.call(this,t,n)||this;return o.$singleCommand=!0,o}return i(t,e),t}(l);u.call=function(e,t,n){l.prototype.$init.call(e,t,n,!0)},l.call=function(e,t,n){l.prototype.$init.call(e,t,n,!1)},t.HashHandler=u,t.MultiHashHandler=l})),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("../lib/oop"),s=e("../keyboard/hash_handler").MultiHashHandler,a=e("../lib/event_emitter").EventEmitter,l=function(e){function t(t,n){var o=e.call(this,n,t)||this;return o.byName=o.commands,o.setDefaultHandler("exec",(function(e){return e.args?e.command.exec(e.editor,e.args,e.event,!1):e.command.exec(e.editor,{},e.event,!0)})),o}return i(t,e),t.prototype.exec=function(e,t,n){if(Array.isArray(e)){for(var o=e.length;o--;)if(this.exec(e[o],t,n))return!0;return!1}if("string"==typeof e&&(e=this.commands[e]),!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;if(0!=this.$checkCommandState&&e.isAvailable&&!e.isAvailable(t))return!1;var i={editor:t,command:e,args:n};return i.returnValue=this._emit("exec",i),this._signal("afterExec",i),!1!==i.returnValue},t.prototype.toggleRecording=function(e){if(!this.$inReplay)return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.off("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},t.prototype.replay=function(e){if(!this.$inReplay&&this.macro){if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach((function(t){"string"==typeof t?this.exec(t,e):this.exec(t[0],e,t[1])}),this)}finally{this.$inReplay=!1}}},t.prototype.trimMacro=function(e){return e.map((function(e){return"string"!=typeof e[0]&&(e[0]=e[0].name),e[1]||(e=e[0]),e}))},t}(s);r.implement(l.prototype,a),t.CommandManager=l})),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],(function(e,t,n){"use strict";var o=e("../lib/lang"),i=e("../config"),r=e("../range").Range;function s(e,t){return{win:e,mac:t}}t.commands=[{name:"showSettingsMenu",description:"Show settings menu",bindKey:s("Ctrl-,","Command-,"),exec:function(e){i.loadModule("ace/ext/settings_menu",(function(t){t.init(e),e.showSettingsMenu()}))},readOnly:!0},{name:"goToNextError",description:"Go to next error",bindKey:s("Alt-E","F4"),exec:function(e){i.loadModule("ace/ext/error_marker",(function(t){t.showErrorMarker(e,1)}))},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",description:"Go to previous error",bindKey:s("Alt-Shift-E","Shift-F4"),exec:function(e){i.loadModule("ace/ext/error_marker",(function(t){t.showErrorMarker(e,-1)}))},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:s("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:s(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:s("Ctrl-L","Command-L"),exec:function(e,t){"number"!=typeof t||isNaN(t)||e.gotoLine(t),e.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:s("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:s("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",description:"Toggle fold widget",bindKey:s("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",description:"Toggle parent fold widget",bindKey:s("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:s(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldAllComments",description:"Fold all comments",bindKey:s(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAllComments()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:s("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:s("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:s("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:s("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:s("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:s("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:s("Ctrl-F","Command-F"),exec:function(e){i.loadModule("ace/ext/searchbox",(function(t){t.Search(e)}))},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:s("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:s("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:s("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:s("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:s("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:s("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:s("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:s("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:s("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:s("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:s("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:s("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:s("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:s("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:s("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:s("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:s("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:s("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:s("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:s("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:s(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:s("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:s(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:s("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:s("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:s("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:s("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:s("Ctrl-\\|Ctrl-P","Command-\\"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:s("Ctrl-Shift-\\|Ctrl-Shift-P","Command-Shift-\\"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:s("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:s(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(e){},readOnly:!0},{name:"cut",description:"Cut",exec:function(e){var t=e.$copyWithEmptySelection&&e.selection.isEmpty()?e.selection.getLineRange():e.selection.getRange();e._emit("cut",t),t.isEmpty()||e.session.remove(t),e.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:s("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:s("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:s("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:s("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:s("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:s("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:s("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:s("Ctrl-H","Command-Option-F"),exec:function(e){i.loadModule("ace/ext/searchbox",(function(t){t.Search(e,!0)}))}},{name:"undo",description:"Undo",bindKey:s("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",description:"Redo",bindKey:s("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:s("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:s("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:s("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:s("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:s("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:s("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:s("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:s("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:s("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:s("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:s("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:s("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:s("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:s("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:s("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:s("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:s("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(e,t){e.insert(o.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:s(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:s("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:s("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:s("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"autoindent",description:"Auto Indent",bindKey:s(null,null),exec:function(e){e.autoIndent()},multiSelectAction:"forEachLine",scrollIntoView:"animate"},{name:"expandtoline",description:"Expand to line",bindKey:s("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"openlink",bindKey:s("Ctrl+F3","F3"),exec:function(e){e.openLink()}},{name:"joinlines",description:"Join lines",bindKey:s(null,null),exec:function(e){for(var t=e.selection.isBackwards(),n=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),i=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),s=e.session.doc.getLine(n.row).length,a=e.session.doc.getTextRange(e.selection.getRange()).replace(/\n\s*/," ").length,l=e.session.doc.getLine(n.row),c=n.row+1;c<=i.row+1;c++){var u=o.stringTrimLeft(o.stringTrimRight(e.session.doc.getLine(c)));0!==u.length&&(u=" "+u),l+=u}i.row+10?(e.selection.moveCursorTo(n.row,n.column),e.selection.selectTo(n.row,n.column+a)):(s=e.session.doc.getLine(n.row).length>s?s+1:s,e.selection.moveCursorTo(n.row,s))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:s(null,null),exec:function(e){var t=e.session.doc.getLength()-1,n=e.session.doc.getLine(t).length,o=e.selection.rangeList.ranges,i=[];o.length<1&&(o=[e.selection.getRange()]);for(var s=0;st[n].column&&n++,r.unshift(n,0),t.splice.apply(t,r),this.$updateRows()}}},e.prototype.$updateRows=function(){var e=this.session.lineWidgets;if(e){var t=!0;e.forEach((function(e,n){if(e)for(t=!1,e.row=n;e.$oldWidget;)e.$oldWidget.row=n,e=e.$oldWidget})),t&&(this.session.lineWidgets=null)}},e.prototype.$registerLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var t=this.session.lineWidgets[e.row];return t&&(e.$oldWidget=t,t.el&&t.el.parentNode&&(t.el.parentNode.removeChild(t.el),t._inDocument=!1)),this.session.lineWidgets[e.row]=e,e},e.prototype.addLineWidget=function(e){if(this.$registerLineWidget(e),e.session=this.session,!this.editor)return e;var t=this.editor.renderer;e.html&&!e.el&&(e.el=o.createElement("div"),e.el.innerHTML=e.html),e.text&&!e.el&&(e.el=o.createElement("div"),e.el.textContent=e.text),e.el&&(o.addCssClass(e.el,"ace_lineWidgetContainer"),e.className&&o.addCssClass(e.el,e.className),e.el.style.position="absolute",e.el.style.zIndex=5,t.container.appendChild(e.el),e._inDocument=!0,e.coverGutter||(e.el.style.zIndex=3),null==e.pixelHeight&&(e.pixelHeight=e.el.offsetHeight)),null==e.rowCount&&(e.rowCount=e.pixelHeight/t.layerConfig.lineHeight);var n=this.session.getFoldAt(e.row,0);if(e.$fold=n,n){var i=this.session.lineWidgets;e.row!=n.end.row||i[n.start.row]?e.hidden=!0:i[n.start.row]=e}return this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,t),this.onWidgetChanged(e),e},e.prototype.removeLineWidget=function(e){if(e._inDocument=!1,e.session=null,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el),e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(e){}if(this.session.lineWidgets){var t=this.session.lineWidgets[e.row];if(t==e)this.session.lineWidgets[e.row]=e.$oldWidget,e.$oldWidget&&this.onWidgetChanged(e.$oldWidget);else for(;t;){if(t.$oldWidget==e){t.$oldWidget=e.$oldWidget;break}t=t.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows()},e.prototype.getWidgetsAtRow=function(e){for(var t=this.session.lineWidgets,n=t&&t[e],o=[];n;)o.push(n),n=n.$oldWidget;return o},e.prototype.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},e.prototype.measureWidgets=function(e,t){var n=this.session._changedWidgets,o=t.layerConfig;if(n&&n.length){for(var i=1/0,r=0;r0&&!o[i];)i--;this.firstRow=n.firstRow,this.lastRow=n.lastRow,t.$cursorLayer.config=n;for(var s=i;s<=r;s++){var a=o[s];if(a&&a.el)if(a.hidden)a.el.style.top=-100-(a.pixelHeight||0)+"px";else{a._inDocument||(a._inDocument=!0,t.container.appendChild(a.el));var l=t.$cursorLayer.getPixelPosition({row:s,column:0},!0).top;a.coverLine||(l+=n.lineHeight*this.session.getRowLineCount(a.row)),a.el.style.top=l-n.offset+"px";var c=a.coverGutter?0:t.gutterWidth;a.fixedWidth||(c-=t.scrollLeft),a.el.style.left=c+"px",a.fullWidth&&a.screenWidth&&(a.el.style.minWidth=n.width+2*n.padding+"px"),a.fixedWidth?a.el.style.right=t.scrollBar.getWidth()+"px":a.el.style.right=""}}}},e}();t.LineWidgets=i})),ace.define("ace/keyboard/gutter_handler",["require","exports","module","ace/lib/keys","ace/mouse/default_gutter_handler"],(function(e,t,n){"use strict";var o=e("../lib/keys"),i=e("../mouse/default_gutter_handler").GutterTooltip,r=function(){function e(e){this.editor=e,this.gutterLayer=e.renderer.$gutterLayer,this.element=e.renderer.$gutter,this.lines=e.renderer.$gutterLayer.$lines,this.activeRowIndex=null,this.activeLane=null,this.annotationTooltip=new i(this.editor)}return e.prototype.addListener=function(){this.element.addEventListener("keydown",this.$onGutterKeyDown.bind(this)),this.element.addEventListener("focusout",this.$blurGutter.bind(this)),this.editor.on("mousewheel",this.$blurGutter.bind(this))},e.prototype.removeListener=function(){this.element.removeEventListener("keydown",this.$onGutterKeyDown.bind(this)),this.element.removeEventListener("focusout",this.$blurGutter.bind(this)),this.editor.off("mousewheel",this.$blurGutter.bind(this))},e.prototype.$onGutterKeyDown=function(e){if(this.annotationTooltip.isOpen)return e.preventDefault(),void(e.keyCode===o.escape&&this.annotationTooltip.hideTooltip());if(e.target===this.element){if(e.keyCode!=o.enter)return;e.preventDefault();var t=this.editor.getCursorPosition().row;return this.editor.isRowVisible(t)||this.editor.scrollToLine(t,!0,!0),void setTimeout(function(){var e=this.$rowToRowIndex(this.gutterLayer.$cursorCell.row),t=this.$findNearestFoldWidget(e),n=this.$findNearestAnnotation(e);if(null!==t||null!==n)return null===t&&null!==n?(this.activeRowIndex=n,this.activeLane="annotation",void this.$focusAnnotation(this.activeRowIndex)):null!==t&&null===n?(this.activeRowIndex=t,this.activeLane="fold",void this.$focusFoldWidget(this.activeRowIndex)):Math.abs(n-e)0||e+t=0&&this.$isFoldWidgetVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isFoldWidgetVisible(e+t))return e+t}return null},e.prototype.$findNearestAnnotation=function(e){if(this.$isAnnotationVisible(e))return e;for(var t=0;e-t>0||e+t=0&&this.$isAnnotationVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isAnnotationVisible(e+t))return e+t}return null},e.prototype.$focusFoldWidget=function(e){if(null!=e){var t=this.$getFoldWidget(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()}},e.prototype.$focusAnnotation=function(e){if(null!=e){var t=this.$getAnnotation(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()}},e.prototype.$blurFoldWidget=function(e){var t=this.$getFoldWidget(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},e.prototype.$blurAnnotation=function(e){var t=this.$getAnnotation(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},e.prototype.$moveFoldWidgetUp=function(){for(var e=this.activeRowIndex;e>0;)if(e--,this.$isFoldWidgetVisible(e))return this.$blurFoldWidget(this.activeRowIndex),this.activeRowIndex=e,void this.$focusFoldWidget(this.activeRowIndex)},e.prototype.$moveFoldWidgetDown=function(){for(var e=this.activeRowIndex;e0;)if(e--,this.$isAnnotationVisible(e))return this.$blurAnnotation(this.activeRowIndex),this.activeRowIndex=e,void this.$focusAnnotation(this.activeRowIndex)},e.prototype.$moveAnnotationDown=function(){for(var e=this.activeRowIndex;e=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},i=e("./lib/oop"),r=e("./lib/dom"),s=e("./lib/lang"),a=e("./lib/useragent"),l=e("./keyboard/textinput").TextInput,c=e("./mouse/mouse_handler").MouseHandler,u=e("./mouse/fold_handler").FoldHandler,h=e("./keyboard/keybinding").KeyBinding,d=e("./edit_session").EditSession,p=e("./search").Search,g=e("./range").Range,m=e("./lib/event_emitter").EventEmitter,f=e("./commands/command_manager").CommandManager,y=e("./commands/default_commands").commands,v=e("./config"),b=e("./token_iterator").TokenIterator,w=e("./line_widgets").LineWidgets,x=e("./keyboard/gutter_handler").GutterKeyboardHandler,k=e("./config").nls,C=e("./clipboard"),$=e("./lib/keys"),S=function(){function e(t,n,o){this.$toDestroy=[];var i=t.getContainerElement();this.container=i,this.renderer=t,this.id="editor"+ ++e.$uid,this.commands=new f(a.isMac?"mac":"win",y),"object"==typeof document&&(this.textInput=new l(t.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new c(this),new u(this)),this.keyBinding=new h(this),this.$search=(new p).set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=s.delayedCall(function(){this._signal("input",{}),this.session&&!this.session.destroyed&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",(function(e,t){t._$emitInputEvent.schedule(31)})),this.setSession(n||o&&o.session||new d("")),v.resetOptions(this),o&&this.setOptions(o),v._signal("editor",this)}return e.prototype.$initOperationListeners=function(){this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0),this.$opResetTimer=s.delayedCall(this.endOperation.bind(this,!0)),this.on("change",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.docChanged=!0}.bind(this),!0),this.on("changeSelection",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.selectionChanged=!0}.bind(this),!0)},e.prototype.startOperation=function(e){if(this.curOp){if(!e||this.curOp.command)return;this.prevOp=this.curOp}e||(this.previousCommand=null,e={}),this.$opResetTimer.schedule(),this.curOp=this.session.curOp={command:e.command||{},args:e.args,scrollTop:this.renderer.scrollTop},this.curOp.selectionBefore=this.selection.toJSON()},e.prototype.endOperation=function(e){if(this.curOp&&this.session){if(e&&!1===e.returnValue||!this.session)return this.curOp=null;if(1==e&&this.curOp.command&&"mouse"==this.curOp.command.name)return;if(this._signal("beforeEndOperation"),!this.curOp)return;var t=this.curOp.command,n=t&&t.scrollIntoView;if(n){switch(n){case"center-animate":n="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var o=this.selection.getRange(),i=this.renderer.layerConfig;(o.start.row>=i.lastRow||o.end.row<=i.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead)}"animate"==n&&this.renderer.animateScrolling(this.curOp.scrollTop)}var r=this.selection.toJSON();this.curOp.selectionAfter=r,this.$lastSel=this.selection.toJSON(),this.session.getUndoManager().addSelection(r),this.prevOp=this.curOp,this.curOp=null}},e.prototype.$historyTracker=function(e){if(this.$mergeUndoDeltas){var t=this.prevOp,n=this.$mergeableCommands,o=t.command&&e.command.name==t.command.name;if("insertstring"==e.command.name){var i=e.args;void 0===this.mergeNextCommand&&(this.mergeNextCommand=!0),o=o&&this.mergeNextCommand&&(!/\s/.test(i)||/\s/.test(t.args)),this.mergeNextCommand=!0}else o=o&&-1!==n.indexOf(e.command.name);"always"!=this.$mergeUndoDeltas&&Date.now()-this.sequenceStartTime>2e3&&(o=!1),o?this.session.mergeUndoDeltas=!0:-1!==n.indexOf(e.command.name)&&(this.sequenceStartTime=Date.now())}},e.prototype.setKeyboardHandler=function(e,t){if(e&&"string"==typeof e&&"ace"!=e){this.$keybindingId=e;var n=this;v.loadModule(["keybinding",e],(function(o){n.$keybindingId==e&&n.keyBinding.setKeyboardHandler(o&&o.handler),t&&t()}))}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},e.prototype.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},e.prototype.setSession=function(e){if(this.session!=e){this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var n=this.session.getSelection();n.off("changeCursor",this.$onCursorChange),n.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this}),e&&!e.destroyed&&e.bgTokenizer.scheduleStart()}},e.prototype.getSession=function(){return this.session},e.prototype.setValue=function(e,t){return this.session.doc.setValue(e),t?1==t?this.navigateFileEnd():-1==t&&this.navigateFileStart():this.selectAll(),e},e.prototype.getValue=function(){return this.session.getValue()},e.prototype.getSelection=function(){return this.selection},e.prototype.resize=function(e){this.renderer.onResize(e)},e.prototype.setTheme=function(e,t){this.renderer.setTheme(e,t)},e.prototype.getTheme=function(){return this.renderer.getTheme()},e.prototype.setStyle=function(e){this.renderer.setStyle(e)},e.prototype.unsetStyle=function(e){this.renderer.unsetStyle(e)},e.prototype.getFontSize=function(){return this.getOption("fontSize")||r.computedStyle(this.container).fontSize},e.prototype.setFontSize=function(e){this.setOption("fontSize",e)},e.prototype.$highlightBrackets=function(){if(!this.$highlightPending){var e=this;this.$highlightPending=!0,setTimeout((function(){e.$highlightPending=!1;var t=e.session;if(t&&!t.destroyed){t.$bracketHighlight&&(t.$bracketHighlight.markerIds.forEach((function(e){t.removeMarker(e)})),t.$bracketHighlight=null);var n=e.getCursorPosition(),o=e.getKeyboardHandler(),i=o&&o.$getDirectionForHighlight&&o.$getDirectionForHighlight(e),r=t.getMatchingBracketRanges(n,i);if(!r){var s=new b(t,n.row,n.column).getCurrentToken();if(s&&/\b(?:tag-open|tag-name)/.test(s.type)){var a=t.getMatchingTags(n);a&&(r=[a.openTagName,a.closeTagName])}}if(!r&&t.$mode.getMatching&&(r=t.$mode.getMatching(e.session)),r){var l="ace_bracket";Array.isArray(r)?1==r.length&&(l="ace_error_bracket"):r=[r],2==r.length&&(0==g.comparePoints(r[0].end,r[1].start)?r=[g.fromPoints(r[0].start,r[1].end)]:0==g.comparePoints(r[0].start,r[1].end)&&(r=[g.fromPoints(r[1].start,r[0].end)])),t.$bracketHighlight={ranges:r,markerIds:r.map((function(e){return t.addMarker(e,l,"text")}))},e.getHighlightIndentGuides()&&e.renderer.$textLayer.$highlightIndentGuide()}else e.getHighlightIndentGuides()&&e.renderer.$textLayer.$highlightIndentGuide()}}),50)}},e.prototype.focus=function(){this.textInput.focus()},e.prototype.isFocused=function(){return this.textInput.isFocused()},e.prototype.blur=function(){this.textInput.blur()},e.prototype.onFocus=function(e){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",e))},e.prototype.onBlur=function(e){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",e))},e.prototype.$cursorChange=function(){this.renderer.updateCursor(),this.$highlightBrackets(),this.$updateHighlightActiveLine()},e.prototype.onDocumentChange=function(e){var t=this.session.$useWrapMode,n=e.start.row==e.end.row?e.end.row:1/0;this.renderer.updateLines(e.start.row,n,t),this._signal("change",e),this.$cursorChange()},e.prototype.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},e.prototype.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},e.prototype.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},e.prototype.onCursorChange=function(){this.$cursorChange(),this._signal("changeSelection")},e.prototype.$updateHighlightActiveLine=function(){var e,t=this.getSession();if(this.$highlightActiveLine&&("line"==this.$selectionStyle&&this.selection.isMultiLine()||(e=this.getCursorPosition()),this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(e=!1),!this.renderer.$maxLines||1!==this.session.getLength()||this.renderer.$minLines>1||(e=!1)),t.$highlightLineMarker&&!e)t.removeMarker(t.$highlightLineMarker.id),t.$highlightLineMarker=null;else if(!t.$highlightLineMarker&&e){var n=new g(e.row,e.column,e.row,1/0);n.id=t.addMarker(n,"ace_active-line","screenLine"),t.$highlightLineMarker=n}else e&&(t.$highlightLineMarker.start.row=e.row,t.$highlightLineMarker.end.row=e.row,t.$highlightLineMarker.start.column=e.column,t._signal("changeBackMarker"))},e.prototype.onSelectionChange=function(e){var t=this.session;if(t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var n=this.selection.getRange(),o=this.getSelectionStyle();t.$selectionMarker=t.addMarker(n,"ace_selection",o)}var i=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(i),this._signal("changeSelection")},e.prototype.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(!t.isEmpty()&&!t.isMultiLine()){var n=t.start.column,o=t.end.column,i=e.getLine(t.start.row),r=i.substring(n,o);if(!(r.length>5e3)&&/[\w\d]/.test(r)){var s=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:r}),a=i.substring(n-1,o+1);if(s.test(a))return s}}},e.prototype.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},e.prototype.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},e.prototype.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},e.prototype.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},e.prototype.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},e.prototype.onChangeWrapLimit=function(){this.renderer.updateFull()},e.prototype.onChangeWrapMode=function(){this.renderer.onResize(!0)},e.prototype.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},e.prototype.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},e.prototype.getCopyText=function(){var e=this.getSelectedText(),t=this.session.doc.getNewLineCharacter(),n=!1;if(!e&&this.$copyWithEmptySelection){n=!0;for(var o=this.selection.getAllRanges(),i=0;ia.search(/\S|$/)){var l=a.substr(i.column).search(/\S|$/);n.doc.removeInLine(i.row,i.column,i.column+l)}}this.clearSelection();var c=i.column,u=n.getState(i.row),h=(a=n.getLine(i.row),o.checkOutdent(u,a,e));if(n.insert(i,e),r&&r.selection&&(2==r.selection.length?this.selection.setSelectionRange(new g(i.row,c+r.selection[0],i.row,c+r.selection[1])):this.selection.setSelectionRange(new g(i.row+r.selection[0],r.selection[1],i.row+r.selection[2],r.selection[3]))),this.$enableAutoIndent){if(n.getDocument().isNewLine(e)){var d=o.getNextLineIndent(u,a.slice(0,i.column),n.getTabString());n.insert({row:i.row+1,column:0},d)}h&&o.autoOutdent(u,n,i.row)}},e.prototype.autoIndent=function(){var e,t,n=this.session,o=n.getMode();if(this.selection.isEmpty())e=0,t=n.doc.getLength()-1;else{var i=this.getSelectionRange();e=i.start.row,t=i.end.row}for(var r,s,a,l="",c="",u="",h=n.getTabString(),d=e;d<=t;d++)d>0&&(l=n.getState(d-1),c=n.getLine(d-1),u=o.getNextLineIndent(l,c,h)),r=n.getLine(d),u!==(s=o.$getIndent(r))&&(s.length>0&&(a=new g(d,0,d,s.length),n.remove(a)),u.length>0&&n.insert({row:d,column:0},u)),o.autoOutdent(l,n,d)},e.prototype.onTextInput=function(e,t){if(!t)return this.keyBinding.onTextInput(e);this.startOperation({command:{name:"insertstring"}});var n=this.applyComposition.bind(this,e,t);this.selection.rangeCount?this.forEachSelection(n):n(),this.endOperation()},e.prototype.applyComposition=function(e,t){var n;(t.extendLeft||t.extendRight)&&((n=this.selection.getRange()).start.column-=t.extendLeft,n.end.column+=t.extendRight,n.start.column<0&&(n.start.row--,n.start.column+=this.session.getLine(n.start.row).length+1),this.selection.setRange(n),e||n.isEmpty()||this.remove()),!e&&this.selection.isEmpty()||this.insert(e,!0),(t.restoreStart||t.restoreEnd)&&((n=this.selection.getRange()).start.column-=t.restoreStart,n.end.column-=t.restoreEnd,this.selection.setRange(n))},e.prototype.onCommandKey=function(e,t,n){return this.keyBinding.onCommandKey(e,t,n)},e.prototype.setOverwrite=function(e){this.session.setOverwrite(e)},e.prototype.getOverwrite=function(){return this.session.getOverwrite()},e.prototype.toggleOverwrite=function(){this.session.toggleOverwrite()},e.prototype.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},e.prototype.getScrollSpeed=function(){return this.getOption("scrollSpeed")},e.prototype.setDragDelay=function(e){this.setOption("dragDelay",e)},e.prototype.getDragDelay=function(){return this.getOption("dragDelay")},e.prototype.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},e.prototype.getSelectionStyle=function(){return this.getOption("selectionStyle")},e.prototype.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},e.prototype.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},e.prototype.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},e.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},e.prototype.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},e.prototype.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},e.prototype.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},e.prototype.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},e.prototype.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},e.prototype.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},e.prototype.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},e.prototype.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},e.prototype.setHighlightIndentGuides=function(e){this.renderer.setHighlightIndentGuides(e)},e.prototype.getHighlightIndentGuides=function(){return this.renderer.getHighlightIndentGuides()},e.prototype.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},e.prototype.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},e.prototype.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},e.prototype.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},e.prototype.setReadOnly=function(e){this.setOption("readOnly",e)},e.prototype.getReadOnly=function(){return this.getOption("readOnly")},e.prototype.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},e.prototype.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},e.prototype.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},e.prototype.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},e.prototype.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},e.prototype.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},e.prototype.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},e.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},e.prototype.remove=function(e){this.selection.isEmpty()&&("left"==e?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var n=this.session,o=n.getState(t.start.row),i=n.getMode().transformAction(o,"deletion",this,n,t);if(0===t.end.column){var r=n.getTextRange(t);if("\n"==r[r.length-1]){var s=n.getLine(t.end.row);/^\s+$/.test(s)&&(t.end.column=s.length)}}i&&(t=i)}this.session.remove(t),this.clearSelection()},e.prototype.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},e.prototype.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},e.prototype.setGhostText=function(e,t){this.session.widgetManager||(this.session.widgetManager=new w(this.session),this.session.widgetManager.attach(this)),this.renderer.setGhostText(e,t)},e.prototype.removeGhostText=function(){this.session.widgetManager&&this.renderer.removeGhostText()},e.prototype.transposeLetters=function(){if(this.selection.isEmpty()){var e=this.getCursorPosition(),t=e.column;if(0!==t){var n,o,i=this.session.getLine(e.row);tt.toLowerCase()?1:0}));var i=new g(0,0,0,0);for(o=e.first;o<=e.last;o++){var r=t.getLine(o);i.start.row=o,i.end.row=o,i.end.column=r.length,t.replace(i,n[o-e.first])}},e.prototype.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},e.prototype.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),n=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,n,e)},e.prototype.getNumberAt=function(e,t){var n=/[\-]?[0-9]+(?:\.[0-9]+)?/g;n.lastIndex=0;for(var o=this.session.getLine(e);n.lastIndex=t)return{value:i[0],start:i.index,end:i.index+i[0].length}}return null},e.prototype.modifyNumber=function(e){var t=this.selection.getCursor().row,n=this.selection.getCursor().column,o=new g(t,n-1,t,n),i=this.session.getTextRange(o);if(!isNaN(parseFloat(i))&&isFinite(i)){var r=this.getNumberAt(t,n);if(r){var s=r.value.indexOf(".")>=0?r.start+r.value.indexOf(".")+1:r.end,a=r.start+r.value.length-s,l=parseFloat(r.value);l*=Math.pow(10,a),s!==r.end&&n=a&&r<=l&&(n=t,c.selection.clearSelection(),c.moveCursorTo(e,a+o),c.selection.selectTo(e,l+o)),a=l}));for(var u,h=this.$toggleWordPairs,d=0;d=l&&s<=c&&d.match(/((?:https?|ftp):\/\/[\S]+)/)){a=d.replace(/[\s:.,'";}\]]+$/,"");break}l=c}}catch(e){n={error:e}}finally{try{h&&!h.done&&(i=u.return)&&i.call(u)}finally{if(n)throw n.error}}return a},e.prototype.openLink=function(){var e=this.selection.getCursor(),t=this.findLinkAt(e.row,e.column);return t&&window.open(t,"_blank"),null!=t},e.prototype.removeLines=function(){var e=this.$getSelectedRows();this.session.removeFullLines(e.first,e.last),this.clearSelection()},e.prototype.duplicateSelection=function(){var e=this.selection,t=this.session,n=e.getRange(),o=e.isBackwards();if(n.isEmpty()){var i=n.start.row;t.duplicateLines(i,i)}else{var r=o?n.start:n.end,s=t.insert(r,t.getTextRange(n),!1);n.start=r,n.end=s,e.setSelectionRange(n,o)}},e.prototype.moveLinesDown=function(){this.$moveLines(1,!1)},e.prototype.moveLinesUp=function(){this.$moveLines(-1,!1)},e.prototype.moveText=function(e,t,n){return this.session.moveText(e,t,n)},e.prototype.copyLinesUp=function(){this.$moveLines(-1,!0)},e.prototype.copyLinesDown=function(){this.$moveLines(1,!0)},e.prototype.$moveLines=function(e,t){var n,o,i=this.selection;if(!i.inMultiSelectMode||this.inVirtualSelectionMode){var r=i.toOrientedRange();n=this.$getSelectedRows(r),o=this.session.$moveLines(n.first,n.last,t?0:e),t&&-1==e&&(o=0),r.moveBy(o,0),i.fromOrientedRange(r)}else{var s=i.rangeList.ranges;i.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;for(var a=0,l=0,c=s.length,u=0;up+1)break;p=g.last}for(u--,a=this.session.$moveLines(d,p,t?0:e),t&&-1==e&&(h=u+1);h<=u;)s[h].moveBy(a,0),h++;t||(a=0),l+=a}i.fromOrientedRange(i.ranges[0]),i.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},e.prototype.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},e.prototype.onCompositionStart=function(e){this.renderer.showComposition(e)},e.prototype.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},e.prototype.onCompositionEnd=function(){this.renderer.hideComposition()},e.prototype.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},e.prototype.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},e.prototype.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},e.prototype.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},e.prototype.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},e.prototype.$moveByPage=function(e,t){var n=this.renderer,o=this.renderer.layerConfig,i=e*Math.floor(o.height/o.lineHeight);!0===t?this.selection.$moveSelection((function(){this.moveCursorBy(i,0)})):!1===t&&(this.selection.moveCursorBy(i,0),this.selection.clearSelection());var r=n.scrollTop;n.scrollBy(0,i*o.lineHeight),null!=t&&n.scrollCursorIntoView(null,.5),n.animateScrolling(r)},e.prototype.selectPageDown=function(){this.$moveByPage(1,!0)},e.prototype.selectPageUp=function(){this.$moveByPage(-1,!0)},e.prototype.gotoPageDown=function(){this.$moveByPage(1,!1)},e.prototype.gotoPageUp=function(){this.$moveByPage(-1,!1)},e.prototype.scrollPageDown=function(){this.$moveByPage(1)},e.prototype.scrollPageUp=function(){this.$moveByPage(-1)},e.prototype.scrollToRow=function(e){this.renderer.scrollToRow(e)},e.prototype.scrollToLine=function(e,t,n,o){this.renderer.scrollToLine(e,t,n,o)},e.prototype.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},e.prototype.getCursorPosition=function(){return this.selection.getCursor()},e.prototype.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},e.prototype.getSelectionRange=function(){return this.selection.getRange()},e.prototype.selectAll=function(){this.selection.selectAll()},e.prototype.clearSelection=function(){this.selection.clearSelection()},e.prototype.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},e.prototype.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},e.prototype.jumpToMatching=function(e,t){var n=this.getCursorPosition(),o=new b(this.session,n.row,n.column),i=o.getCurrentToken(),r=0;i&&-1!==i.type.indexOf("tag-name")&&(i=o.stepBackward());var s=i||o.stepForward();if(s){var a,l,c=!1,u={},h=n.column-s.start,d={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(s.value.match(/[{}()\[\]]/g)){for(;h1?u[s.value]++:"=0;--r)this.$tryReplace(n[r],e)&&o++;return this.selection.setSelectionRange(i),o},e.prototype.$tryReplace=function(e,t){var n=this.session.getTextRange(e);return null!==(t=this.$search.replace(n,t))?(e.end=this.session.replace(e,t),e):null},e.prototype.getLastSearchOptions=function(){return this.$search.getOptions()},e.prototype.find=function(e,t,n){t||(t={}),"string"==typeof e||e instanceof RegExp?t.needle=e:"object"==typeof e&&i.mixin(t,e);var o=this.selection.getRange();null==t.needle&&((e=this.session.getTextRange(o)||this.$search.$options.needle)||(o=this.session.getWordRange(o.start.row,o.start.column),e=this.session.getTextRange(o)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:o});var r=this.$search.find(this.session);return t.preventScroll?r:r?(this.revealRange(r,n),r):(t.backwards?o.start=o.end:o.end=o.start,void this.selection.setRange(o))},e.prototype.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},e.prototype.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},e.prototype.revealRange=function(e,t){this.session.unfold(e),this.selection.setSelectionRange(e);var n=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),!1!==t&&this.renderer.animateScrolling(n)},e.prototype.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},e.prototype.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},e.prototype.destroy=function(){this.$toDestroy&&(this.$toDestroy.forEach((function(e){e.destroy()})),this.$toDestroy=null),this.$mouseHandler&&this.$mouseHandler.destroy(),this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy(),this._$emitInputEvent&&this._$emitInputEvent.cancel(),this.removeAllListeners()},e.prototype.setAutoScrollEditorIntoView=function(e){if(e){var t,n=this,o=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var i=this.$scrollAnchor;i.style.cssText="position:absolute",this.container.insertBefore(i,this.container.firstChild);var r=this.on("changeSelection",(function(){o=!0})),s=this.renderer.on("beforeRender",(function(){o&&(t=n.renderer.container.getBoundingClientRect())})),a=this.renderer.on("afterRender",(function(){if(o&&t&&(n.isFocused()||n.searchBox&&n.searchBox.isFocused())){var e=n.renderer,r=e.$cursorLayer.$pixelPos,s=e.layerConfig,a=r.top-s.offset;null!=(o=r.top>=0&&a+t.top<0||!(r.topwindow.innerHeight)&&null)&&(i.style.top=a+"px",i.style.left=r.left+"px",i.style.height=s.lineHeight+"px",i.scrollIntoView(o)),o=t=null}}));this.setAutoScrollEditorIntoView=function(e){e||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",r),this.renderer.off("afterRender",a),this.renderer.off("beforeRender",s))}}},e.prototype.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;t&&(t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&"wide"!=e,r.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e)))},e.prototype.prompt=function(e,t,n){var o=this;v.loadModule("ace/ext/prompt",(function(i){i.prompt(o,e,t,n)}))},e}();S.$uid=0,S.prototype.curOp=null,S.prototype.prevOp={},S.prototype.$mergeableCommands=["backspace","del","insertstring"],S.prototype.$toggleWordPairs=[["first","last"],["true","false"],["yes","no"],["width","height"],["top","bottom"],["right","left"],["on","off"],["x","y"],["get","set"],["max","min"],["horizontal","vertical"],["show","hide"],["add","remove"],["up","down"],["before","after"],["even","odd"],["in","out"],["inside","outside"],["next","previous"],["increase","decrease"],["attach","detach"],["&&","||"],["==","!="]],i.implement(S.prototype,m),v.defineOptions(S.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.textInput.setReadOnly(e),this.$resetCursorStyle()},initialValue:!1},copyWithEmptySelection:{set:function(e){this.textInput.setCopyWithEmptySelection(e)},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},enableAutoIndent:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(e){this.session.setValue(e)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(e){this.setSession(e)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(e){this.renderer.$gutterLayer.setShowLineNumbers(e),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),e&&this.$relativeLineNumbers?E.attach(this):E.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(e){this.$showLineNumbers&&e?E.attach(this):E.detach(this)}},placeholder:{set:function(e){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var e=this.session&&(this.renderer.$composition||this.session.getLength()>1||this.session.getLine(0).length>0);if(e&&this.renderer.placeholderNode)this.renderer.off("afterRender",this.$updatePlaceholder),r.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(e||this.renderer.placeholderNode)!e&&this.renderer.placeholderNode&&(this.renderer.placeholderNode.textContent=this.$placeholder||"");else{this.renderer.on("afterRender",this.$updatePlaceholder),r.addCssClass(this.container,"ace_hasPlaceholder");var t=r.createElement("div");t.className="ace_placeholder",t.textContent=this.$placeholder||"",this.renderer.placeholderNode=t,this.renderer.content.appendChild(this.renderer.placeholderNode)}}.bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},enableKeyboardAccessibility:{set:function(e){var t,n={name:"blurTextInput",description:"Set focus to the editor content div to allow tabbing through the page",bindKey:"Esc",exec:function(e){e.blur(),e.renderer.scroller.focus()},readOnly:!0},o=function(e){if(e.target==this.renderer.scroller&&e.keyCode===$.enter){e.preventDefault();var t=this.getCursorPosition().row;this.isRowVisible(t)||this.scrollToLine(t,!0,!0),this.focus()}};e?(this.renderer.enableKeyboardAccessibility=!0,this.renderer.keyboardFocusClassName="ace_keyboard-focus",this.textInput.getElement().setAttribute("tabindex",-1),this.textInput.setNumberOfExtraLines(a.isWin?3:0),this.renderer.scroller.setAttribute("tabindex",0),this.renderer.scroller.setAttribute("role","group"),this.renderer.scroller.setAttribute("aria-roledescription",k("editor")),this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName),this.renderer.scroller.setAttribute("aria-label",k("Editor content, press Enter to start editing, press Escape to exit")),this.renderer.scroller.addEventListener("keyup",o.bind(this)),this.commands.addCommand(n),this.renderer.$gutter.setAttribute("tabindex",0),this.renderer.$gutter.setAttribute("aria-hidden",!1),this.renderer.$gutter.setAttribute("role","group"),this.renderer.$gutter.setAttribute("aria-roledescription",k("editor")),this.renderer.$gutter.setAttribute("aria-label",k("Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit")),this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName),this.renderer.content.setAttribute("aria-hidden",!0),t||(t=new x(this)),t.addListener()):(this.renderer.enableKeyboardAccessibility=!1,this.textInput.getElement().setAttribute("tabindex",0),this.textInput.setNumberOfExtraLines(0),this.renderer.scroller.setAttribute("tabindex",-1),this.renderer.scroller.removeAttribute("role"),this.renderer.scroller.removeAttribute("aria-roledescription"),this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName),this.renderer.scroller.removeAttribute("aria-label"),this.renderer.scroller.removeEventListener("keyup",o.bind(this)),this.commands.removeCommand(n),this.renderer.content.removeAttribute("aria-hidden"),this.renderer.$gutter.setAttribute("tabindex",-1),this.renderer.$gutter.setAttribute("aria-hidden",!0),this.renderer.$gutter.removeAttribute("role"),this.renderer.$gutter.removeAttribute("aria-roledescription"),this.renderer.$gutter.removeAttribute("aria-label"),this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName),t&&t.removeListener())},initialValue:!1},customScrollbar:"renderer",hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",highlightIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",useResizeObserver:"renderer",useSvgGutterIcons:"renderer",showFoldedAnnotations:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimeout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var E={getText:function(e,t){return(Math.abs(e.selection.lead.row-t)||t+1+(t<9?"·":""))+""},getWidth:function(e,t,n){return Math.max(t.toString().length,(n.lastRow+1).toString().length,2)*n.characterWidth},update:function(e,t){t.renderer.$loop.schedule(t.renderer.CHANGE_GUTTER)},attach:function(e){e.renderer.$gutterLayer.$renderer=this,e.on("changeSelection",this.update),this.update(null,e)},detach:function(e){e.renderer.$gutterLayer.$renderer==this&&(e.renderer.$gutterLayer.$renderer=null),e.off("changeSelection",this.update),this.update(null,e)}};t.Editor=S})),ace.define("ace/layer/lines",["require","exports","module","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=function(){function e(e,t){this.element=e,this.canvasHeight=t||5e5,this.element.style.height=2*this.canvasHeight+"px",this.cells=[],this.cellCache=[],this.$offsetCoefficient=0}return e.prototype.moveContainer=function(e){o.translate(this.element,0,-e.firstRowScreen*e.lineHeight%this.canvasHeight-e.offset*this.$offsetCoefficient)},e.prototype.pageChanged=function(e,t){return Math.floor(e.firstRowScreen*e.lineHeight/this.canvasHeight)!==Math.floor(t.firstRowScreen*t.lineHeight/this.canvasHeight)},e.prototype.computeLineTop=function(e,t,n){var o=t.firstRowScreen*t.lineHeight,i=Math.floor(o/this.canvasHeight);return n.documentToScreenRow(e,0)*t.lineHeight-i*this.canvasHeight},e.prototype.computeLineHeight=function(e,t,n){return t.lineHeight*n.getRowLineCount(e)},e.prototype.getLength=function(){return this.cells.length},e.prototype.get=function(e){return this.cells[e]},e.prototype.shift=function(){this.$cacheCell(this.cells.shift())},e.prototype.pop=function(){this.$cacheCell(this.cells.pop())},e.prototype.push=function(e){if(Array.isArray(e)){this.cells.push.apply(this.cells,e);for(var t=o.createFragment(this.element),n=0;nr&&(l=i.end.row+1,r=(i=t.getNextFoldLine(l,i))?i.start.row:1/0),l>o){for(;this.$lines.getLength()>a+1;)this.$lines.pop();break}(s=this.$lines.get(++a))?s.row=l:(s=this.$lines.createCell(l,e,this.session,u),this.$lines.push(s)),this.$renderCell(s,e,i,l),l++}this._signal("afterRender"),this.$updateGutterWidth(e)},e.prototype.$updateGutterWidth=function(e){var t=this.session,n=t.gutterRenderer||this.$renderer,o=t.$firstLineNumber,i=this.$lines.last()?this.$lines.last().text:"";(this.$fixedWidth||t.$useWrapMode)&&(i=t.getLength()+o-1);var r=n?n.getWidth(t,i,e):i.toString().length*e.characterWidth,s=this.$padding||this.$computePadding();(r+=s.left+s.right)===this.gutterWidth||isNaN(r)||(this.gutterWidth=r,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",r))},e.prototype.$updateCursorRow=function(){if(this.$highlightGutterLine){var e=this.session.selection.getCursor();this.$cursorRow!==e.row&&(this.$cursorRow=e.row)}},e.prototype.updateLineHighlight=function(){if(this.$highlightGutterLine){var e=this.session.selection.cursor.row;if(this.$cursorRow=e,!this.$cursorCell||this.$cursorCell.row!=e){this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var t=this.$lines.cells;this.$cursorCell=null;for(var n=0;n=this.$cursorRow){if(o.row>this.$cursorRow){var i=this.session.getFoldLine(this.$cursorRow);if(!(n>0&&i&&i.start.row==t[n-1].row))break;o=t[n-1]}o.element.className="ace_gutter-active-line "+o.element.className,this.$cursorCell=o;break}}}}},e.prototype.scrollLines=function(e){var t=this.config;if(this.config=e,this.$updateCursorRow(),this.$lines.pageChanged(t,e))return this.update(e);this.$lines.moveContainer(e);var n=Math.min(e.lastRow+e.gutterOffset,this.session.getLength()-1),o=this.oldLastRow;if(this.oldLastRow=n,!t||o0;i--)this.$lines.shift();if(o>n)for(i=this.session.getFoldedRowCount(n+1,o);i>0;i--)this.$lines.pop();e.firstRowo&&this.$lines.push(this.$renderLines(e,o+1,n)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(e)},e.prototype.$renderLines=function(e,t,n){for(var o=[],i=t,r=this.session.getNextFoldLine(i),s=r?r.start.row:1/0;i>s&&(i=r.end.row+1,s=(r=this.session.getNextFoldLine(i,r))?r.start.row:1/0),!(i>n);){var a=this.$lines.createCell(i,e,this.session,u);this.$renderCell(a,e,r,i),o.push(a),i++}return o},e.prototype.$renderCell=function(e,t,n,i){var r=e.element,s=this.session,a=r.childNodes[0],c=r.childNodes[1],u=r.childNodes[2],h=u.firstChild,d=s.$firstLineNumber,p=s.$breakpoints,g=s.$decorations,m=s.gutterRenderer||this.$renderer,f=this.$showFoldWidgets&&s.foldWidgets,y=n?n.start.row:Number.MAX_VALUE,v=t.lineHeight+"px",b=this.$useSvgGutterIcons?"ace_gutter-cell_svg-icons ":"ace_gutter-cell ",w=this.$useSvgGutterIcons?"ace_icon_svg":"ace_icon",x=(m?m.getText(s,i):i+d).toString();if(this.$highlightGutterLine&&(i==this.$cursorRow||n&&i=y&&this.$cursorRow<=n.end.row)&&(b+="ace_gutter-active-line ",this.$cursorCell!=e&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=e)),p[i]&&(b+=p[i]),g[i]&&(b+=g[i]),this.$annotations[i]&&i!==y&&(b+=this.$annotations[i].className),f){var k=f[i];null==k&&(k=f[i]=s.getFoldWidget(i))}if(k){var C="ace_fold-widget ace_"+k,$="start"==k&&i==y&&in.right-t.right?"foldWidgets":void 0},e}();function u(e){var t=document.createTextNode("");e.appendChild(t);var n=o.createElement("span");e.appendChild(n);var i=o.createElement("span");e.appendChild(i);var r=o.createElement("span");return i.appendChild(r),e}c.prototype.$fixedWidth=!1,c.prototype.$highlightGutterLine=!0,c.prototype.$renderer="",c.prototype.$showLineNumbers=!0,c.prototype.$showFoldWidgets=!0,i.implement(c.prototype,s),t.Gutter=c})),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("../range").Range,i=e("../lib/dom"),r=function(){function e(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)}return e.prototype.setPadding=function(e){this.$padding=e},e.prototype.setSession=function(e){this.session=e},e.prototype.setMarkers=function(e){this.markers=e},e.prototype.elt=function(e,t){var n=-1!=this.i&&this.element.childNodes[this.i];n?this.i++:(n=document.createElement("div"),this.element.appendChild(n),this.i=-1),n.style.cssText=t,n.className=e},e.prototype.update=function(e){if(e){var t;for(var n in this.config=e,this.i=0,this.markers){var o=this.markers[n];if(o.range){var i=o.range.clipRows(e.firstRow,e.lastRow);if(!i.isEmpty())if(i=i.toScreenRange(this.session),o.renderer){var r=this.$getTop(i.start.row,e),s=this.$padding+i.start.column*e.characterWidth;o.renderer(t,i,s,r,e)}else"fullLine"==o.type?this.drawFullLineMarker(t,i,o.clazz,e):"screenLine"==o.type?this.drawScreenLineMarker(t,i,o.clazz,e):i.isMultiLine()?"text"==o.type?this.drawTextMarker(t,i,o.clazz,e):this.drawMultiLineMarker(t,i,o.clazz,e):this.drawSingleLineMarker(t,i,o.clazz+" ace_start ace_br15",e)}else o.update(t,this,this.session,e)}if(-1!=this.i)for(;this.id?4:0)|(c==l?8:0)),i,c==l?0:1,r)},e.prototype.drawMultiLineMarker=function(e,t,n,o,i){var r=this.$padding,s=o.lineHeight,a=this.$getTop(t.start.row,o),l=r+t.start.column*o.characterWidth;if(i=i||"",this.session.$bidiHandler.isBidiRow(t.start.row)?((c=t.clone()).end.row=c.start.row,c.end.column=this.session.getLine(c.start.row).length,this.drawBidiSingleLineMarker(e,c,n+" ace_br1 ace_start",o,null,i)):this.elt(n+" ace_br1 ace_start","height:"+s+"px;right:0;top:"+a+"px;left:"+l+"px;"+(i||"")),this.session.$bidiHandler.isBidiRow(t.end.row)){var c;(c=t.clone()).start.row=c.end.row,c.start.column=0,this.drawBidiSingleLineMarker(e,c,n+" ace_br12",o,null,i)}else{a=this.$getTop(t.end.row,o);var u=t.end.column*o.characterWidth;this.elt(n+" ace_br12","height:"+s+"px;width:"+u+"px;top:"+a+"px;left:"+r+"px;"+(i||""))}if(!((s=(t.end.row-t.start.row-1)*o.lineHeight)<=0)){a=this.$getTop(t.start.row+1,o);var h=(t.start.column?1:0)|(t.end.column?0:8);this.elt(n+(h?" ace_br"+h:""),"height:"+s+"px;right:0;top:"+a+"px;left:"+r+"px;"+(i||""))}},e.prototype.drawSingleLineMarker=function(e,t,n,o,i,r){if(this.session.$bidiHandler.isBidiRow(t.start.row))return this.drawBidiSingleLineMarker(e,t,n,o,i,r);var s=o.lineHeight,a=(t.end.column+(i||0)-t.start.column)*o.characterWidth,l=this.$getTop(t.start.row,o),c=this.$padding+t.start.column*o.characterWidth;this.elt(n,"height:"+s+"px;width:"+a+"px;top:"+l+"px;left:"+c+"px;"+(r||""))},e.prototype.drawBidiSingleLineMarker=function(e,t,n,o,i,r){var s=o.lineHeight,a=this.$getTop(t.start.row,o),l=this.$padding;this.session.$bidiHandler.getSelections(t.start.column,t.end.column).forEach((function(e){this.elt(n,"height:"+s+"px;width:"+(e.width+(i||0))+"px;top:"+a+"px;left:"+(l+e.left)+"px;"+(r||""))}),this)},e.prototype.drawFullLineMarker=function(e,t,n,o,i){var r=this.$getTop(t.start.row,o),s=o.lineHeight;t.start.row!=t.end.row&&(s+=this.$getTop(t.end.row,o)-r),this.elt(n,"height:"+s+"px;top:"+r+"px;left:0;right:0;"+(i||""))},e.prototype.drawScreenLineMarker=function(e,t,n,o,i){var r=this.$getTop(t.start.row,o),s=o.lineHeight;this.elt(n,"height:"+s+"px;top:"+r+"px;left:0;right:0;"+(i||""))},e}();r.prototype.$padding=0,t.Marker=r})),ace.define("ace/layer/text_util",["require","exports","module"],(function(e,t,n){var o=new Set(["text","rparen","lparen"]);t.isTextToken=function(e){return o.has(e)}})),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter","ace/config","ace/layer/text_util"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("../lib/dom"),r=e("../lib/lang"),s=e("./lines").Lines,a=e("../lib/event_emitter").EventEmitter,l=e("../config").nls,c=e("./text_util").isTextToken,u=function(){function e(e){this.dom=i,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new s(this.element)}return e.prototype.$updateEolChar=function(){var e=this.session.doc,t="\n"==e.getNewLineCharacter()&&"windows"!=e.getNewLineMode()?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=t)return this.EOL_CHAR=t,!0},e.prototype.setPadding=function(e){this.$padding=e,this.element.style.margin="0 "+e+"px"},e.prototype.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},e.prototype.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},e.prototype.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},e.prototype.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},e.prototype.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},e.prototype.setSession=function(e){this.session=e,e&&this.$computeTabString()},e.prototype.setShowInvisibles=function(e){return this.showInvisibles!=e&&(this.showInvisibles=e,"string"==typeof e?(this.showSpaces=/tab/i.test(e),this.showTabs=/space/i.test(e),this.showEOL=/eol/i.test(e)):this.showSpaces=this.showTabs=this.showEOL=e,this.$computeTabString(),!0)},e.prototype.setDisplayIndentGuides=function(e){return this.displayIndentGuides!=e&&(this.displayIndentGuides=e,this.$computeTabString(),!0)},e.prototype.setHighlightIndentGuides=function(e){return this.$highlightIndentGuides!==e&&(this.$highlightIndentGuides=e,e)},e.prototype.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var t=this.$tabStrings=[0],n=1;nu&&(a=l.end.row+1,u=(l=this.session.getNextFoldLine(a,l))?l.start.row:1/0),!(a>i);){var h=r[s++];if(h){this.dom.removeChildren(h),this.$renderLine(h,a,a==u&&l),c&&(h.style.top=this.$lines.computeLineTop(a,e,this.session)+"px");var d=e.lineHeight*this.session.getRowLength(a)+"px";h.style.height!=d&&(c=!0,h.style.height=d)}a++}if(c)for(;s0;i--)this.$lines.shift();if(t.lastRow>e.lastRow)for(i=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);i>0;i--)this.$lines.pop();e.firstRowt.lastRow&&this.$lines.push(this.$renderLinesFragment(e,t.lastRow+1,e.lastRow)),this.$highlightIndentGuide()},e.prototype.$renderLinesFragment=function(e,t,n){for(var o=[],r=t,s=this.session.getNextFoldLine(r),a=s?s.start.row:1/0;r>a&&(r=s.end.row+1,a=(s=this.session.getNextFoldLine(r,s))?s.start.row:1/0),!(r>n);){var l=this.$lines.createCell(r,e,this.session),c=l.element;this.dom.removeChildren(c),i.setStyle(c.style,"height",this.$lines.computeLineHeight(r,e,this.session)+"px"),i.setStyle(c.style,"top",this.$lines.computeLineTop(r,e,this.session)+"px"),this.$renderLine(c,r,r==a&&s),this.$useLineGroups()?c.className="ace_line_group":c.className="ace_line",o.push(l),r++}return o},e.prototype.update=function(e){this.$lines.moveContainer(e),this.config=e;for(var t=e.firstRow,n=e.lastRow,o=this.$lines;o.getLength();)o.pop();o.push(this.$renderLinesFragment(e,t,n))},e.prototype.$renderToken=function(e,t,n,o){for(var i,s=this,a=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC\u2066\u2067\u2068\u202A\u202B\u202D\u202E\u202C\u2069]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,u=this.dom.createFragment(this.element),h=0;i=a.exec(o);){var d=i[1],p=i[2],g=i[3],m=i[4],f=i[5];if(s.showSpaces||!p){var y=h!=i.index?o.slice(h,i.index):"";if(h=i.index+i[0].length,y&&u.appendChild(this.dom.createTextNode(y,this.element)),d){var v=s.session.getScreenTabSize(t+i.index);u.appendChild(s.$tabStrings[v].cloneNode(!0)),t+=v-1}else p?s.showSpaces?((w=this.dom.createElement("span")).className="ace_invisible ace_invisible_space",w.textContent=r.stringRepeat(s.SPACE_CHAR,p.length),u.appendChild(w)):u.appendChild(this.dom.createTextNode(p,this.element)):g?((w=this.dom.createElement("span")).className="ace_invisible ace_invisible_space ace_invalid",w.textContent=r.stringRepeat(s.SPACE_CHAR,g.length),u.appendChild(w)):m?(t+=1,(w=this.dom.createElement("span")).style.width=2*s.config.characterWidth+"px",w.className=s.showSpaces?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",w.textContent=s.showSpaces?s.SPACE_CHAR:m,u.appendChild(w)):f&&(t+=1,(w=this.dom.createElement("span")).style.width=2*s.config.characterWidth+"px",w.className="ace_cjk",w.textContent=f,u.appendChild(w))}}if(u.appendChild(this.dom.createTextNode(h?o.slice(h):o,this.element)),c(n.type))e.appendChild(u);else{var b="ace_"+n.type.replace(/\./g," ace_"),w=this.dom.createElement("span");"fold"==n.type&&(w.style.width=n.value.length*this.config.characterWidth+"px",w.setAttribute("title",l("Unfold code"))),w.className=b,w.appendChild(u),e.appendChild(w)}return t+o.length},e.prototype.renderIndentGuide=function(e,t,n){var o=t.search(this.$indentGuideRe);if(o<=0||o>=n)return t;if(" "==t[0]){for(var i=(o-=o%this.tabSize)/this.tabSize,r=0;ri[r].start.row?this.$highlightIndentGuideMarker.dir=-1:this.$highlightIndentGuideMarker.dir=1;break}if(!this.$highlightIndentGuideMarker.end&&""!==e[t.row]&&t.column===e[t.row].length)for(this.$highlightIndentGuideMarker.dir=1,r=t.row+1;r0)for(var o=0;o=this.$highlightIndentGuideMarker.start+1){if(o.row>=this.$highlightIndentGuideMarker.end)break;this.$setIndentGuideActive(o,t)}}else for(n=e.length-1;n>=0;n--)if(o=e[n],this.$highlightIndentGuideMarker.end&&o.row=s;)a=this.$renderToken(l,a,u,h.substring(0,s-o)),h=h.substring(s-o),o=s,l=this.$createLineElement(),e.appendChild(l),l.appendChild(this.dom.createTextNode(r.stringRepeat(" ",n.indent),this.element)),a=0,s=n[++i]||Number.MAX_VALUE;0!=h.length&&(o+=h.length,a=this.$renderToken(l,a,u,h))}}n[n.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(l,a,null,"",!0)},e.prototype.$renderSimpleLine=function(e,t){for(var n=0,o=0;othis.MAX_LINE_LENGTH)return this.$renderOverflowMessage(e,n,i,r);n=this.$renderToken(e,n,i,r)}}},e.prototype.$renderOverflowMessage=function(e,t,n,o,i){n&&this.$renderToken(e,t,n,o.slice(0,this.MAX_LINE_LENGTH-t));var r=this.dom.createElement("span");r.className="ace_inline_button ace_keyword ace_toggle_wrap",r.textContent=i?"":"",e.appendChild(r)},e.prototype.$renderLine=function(e,t,n){if(n||0==n||(n=this.session.getFoldLine(t)),n)var o=this.$getFoldLineTokens(t,n);else o=this.session.getTokens(t);var i=e;if(o.length){var r=this.session.getRowSplitData(t);r&&r.length?(this.$renderWrappedLine(e,o,r),i=e.lastChild):(i=e,this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i)),this.$renderSimpleLine(i,o))}else this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i));if(this.showEOL&&i){n&&(t=n.end.row);var s=this.dom.createElement("span");s.className="ace_invisible ace_invisible_eol",s.textContent=t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,i.appendChild(s)}},e.prototype.$getFoldLineTokens=function(e,t){var n=this.session,o=[],i=n.getTokens(e);return t.walk((function(e,t,r,s,a){null!=e?o.push({type:"fold",value:e}):(a&&(i=n.getTokens(t)),i.length&&function(e,t,n){for(var i=0,r=0;r+e[i].value.lengthn-t&&(s=s.substring(0,n-t)),o.push({type:e[i].type,value:s}),r=t+s.length,i+=1);rn?o.push({type:e[i].type,value:s.substring(0,n-r)}):o.push(e[i]),r+=s.length,i+=1}}(i,s,r))}),t.end.row,this.session.getLine(t.end.row).length),o},e.prototype.$useLineGroups=function(){return this.session.getUseWrapMode()},e}();u.prototype.EOF_CHAR="¶",u.prototype.EOL_CHAR_LF="¬",u.prototype.EOL_CHAR_CRLF="¤",u.prototype.EOL_CHAR=u.prototype.EOL_CHAR_LF,u.prototype.TAB_CHAR="—",u.prototype.SPACE_CHAR="·",u.prototype.$padding=0,u.prototype.MAX_LINE_LENGTH=1e4,u.prototype.showInvisibles=!1,u.prototype.showSpaces=!1,u.prototype.showTabs=!1,u.prototype.showEOL=!1,u.prototype.displayIndentGuides=!0,u.prototype.$highlightIndentGuides=!0,u.prototype.$tabStrings=[],u.prototype.destroy={},u.prototype.onChangeTabSize=u.prototype.$computeTabString,o.implement(u.prototype,a),t.Text=u})),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=function(){function e(e){this.element=o.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),o.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)}return e.prototype.$updateOpacity=function(e){for(var t=this.cursors,n=t.length;n--;)o.setStyle(t[n].style,"opacity",e?"":"0")},e.prototype.$startCssAnimation=function(){for(var e=this.cursors,t=e.length;t--;)e[t].style.animationDuration=this.blinkInterval+"ms";this.$isAnimating=!0,setTimeout(function(){this.$isAnimating&&o.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},e.prototype.$stopCssAnimation=function(){this.$isAnimating=!1,o.removeCssClass(this.element,"ace_animate-blinking")},e.prototype.setPadding=function(e){this.$padding=e},e.prototype.setSession=function(e){this.session=e},e.prototype.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},e.prototype.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},e.prototype.setSmoothBlinking=function(e){e!=this.smoothBlinking&&(this.smoothBlinking=e,o.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.restartTimer())},e.prototype.addCursor=function(){var e=o.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},e.prototype.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},e.prototype.hideCursor=function(){this.isVisible=!1,o.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},e.prototype.showCursor=function(){this.isVisible=!0,o.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},e.prototype.restartTimer=function(){var e=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&(this.$isSmoothBlinking=!1,o.removeCssClass(this.element,"ace_smooth-blinking")),e(!0),this.isBlinking&&this.blinkInterval&&this.isVisible)if(this.smoothBlinking&&(this.$isSmoothBlinking=!0,setTimeout(function(){this.$isSmoothBlinking&&o.addCssClass(this.element,"ace_smooth-blinking")}.bind(this))),o.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var t=function(){this.timeoutId=setTimeout((function(){e(!1)}),.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval((function(){e(!0),t()}),this.blinkInterval),t()}else this.$stopCssAnimation()},e.prototype.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var n=this.session.documentToScreenPosition(e);return{left:this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e.row)?this.session.$bidiHandler.getPosLeft(n.column):n.column*this.config.characterWidth),top:(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight}},e.prototype.isCursorInView=function(e,t){return e.top>=0&&e.tope.height+e.offset||s.top<0)&&n>1)){var a=this.cursors[i++]||this.addCursor(),l=a.style;this.drawCursor?this.drawCursor(a,s,e,t[n],this.session):this.isCursorInView(s,e)?(o.setStyle(l,"display","block"),o.translate(a,s.left,s.top),o.setStyle(l,"width",Math.round(e.characterWidth)+"px"),o.setStyle(l,"height",e.lineHeight+"px")):o.setStyle(l,"display","none")}}for(;this.cursors.length>i;)this.removeCursor();var c=this.session.getOverwrite();this.$setOverwrite(c),this.$pixelPos=s,this.restartTimer()},e.prototype.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?o.addCssClass(this.element,"ace_overwrite-cursors"):o.removeCssClass(this.element,"ace_overwrite-cursors"))},e.prototype.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)},e}();i.prototype.$padding=0,i.prototype.drawCursor=null,t.Cursor=i})),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("./lib/oop"),s=e("./lib/dom"),a=e("./lib/event"),l=e("./lib/event_emitter").EventEmitter,c=32768,u=function(){function e(e,t){this.element=s.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+t,this.inner=s.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent=" ",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addListener(this.element,"scroll",this.onScroll.bind(this)),a.addListener(this.element,"mousedown",a.preventDefault)}return e.prototype.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1},e}();r.implement(u.prototype,l);var h=function(e){function t(t,n){var o=e.call(this,t,"-v")||this;return o.scrollTop=0,o.scrollHeight=0,n.$scrollbarWidth=o.width=s.scrollbarWidth(t.ownerDocument),o.inner.style.width=o.element.style.width=(o.width||15)+5+"px",o.$minWidth=0,o}return i(t,e),t.prototype.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,1!=this.coeff){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},t.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},t.prototype.setHeight=function(e){this.element.style.height=e+"px"},t.prototype.setScrollHeight=function(e){this.scrollHeight=e,e>c?(this.coeff=c/e,e=c):1!=this.coeff&&(this.coeff=1),this.inner.style.height=e+"px"},t.prototype.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)},t}(u);h.prototype.setInnerHeight=h.prototype.setScrollHeight;var d=function(e){function t(t,n){var o=e.call(this,t,"-h")||this;return o.scrollLeft=0,o.height=n.$scrollbarWidth,o.inner.style.height=o.element.style.height=(o.height||15)+5+"px",o}return i(t,e),t.prototype.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},t.prototype.getHeight=function(){return this.isVisible?this.height:0},t.prototype.setWidth=function(e){this.element.style.width=e+"px"},t.prototype.setInnerWidth=function(e){this.inner.style.width=e+"px"},t.prototype.setScrollWidth=function(e){this.inner.style.width=e+"px"},t.prototype.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)},t}(u);t.ScrollBar=h,t.ScrollBarV=h,t.ScrollBarH=d,t.VScrollBar=h,t.HScrollBar=d})),ace.define("ace/scrollbar_custom",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("./lib/oop"),s=e("./lib/dom"),a=e("./lib/event"),l=e("./lib/event_emitter").EventEmitter;s.importCssString(".ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{\n position: absolute;\n background: rgba(128, 128, 128, 0.6);\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n border: 1px solid #bbb;\n border-radius: 2px;\n z-index: 8;\n}\n.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h {\n position: absolute;\n z-index: 6;\n background: none;\n overflow: hidden!important;\n}\n.ace_editor>.ace_sb-v {\n z-index: 6;\n right: 0;\n top: 0;\n width: 12px;\n}\n.ace_editor>.ace_sb-v div {\n z-index: 8;\n right: 0;\n width: 100%;\n}\n.ace_editor>.ace_sb-h {\n bottom: 0;\n left: 0;\n height: 12px;\n}\n.ace_editor>.ace_sb-h div {\n bottom: 0;\n height: 100%;\n}\n.ace_editor>.ace_sb_grabbed {\n z-index: 8;\n background: #000;\n}","ace_scrollbar.css",!1);var c=function(){function e(e,t){this.element=s.createElement("div"),this.element.className="ace_sb"+t,this.inner=s.createElement("div"),this.inner.className="",this.element.appendChild(this.inner),this.VScrollWidth=12,this.HScrollHeight=12,e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addMultiMouseDownListener(this.element,[500,300,300],this,"onMouseDown")}return e.prototype.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1},e}();r.implement(c.prototype,l);var u=function(e){function t(t,n){var o=e.call(this,t,"-v")||this;return o.scrollTop=0,o.scrollHeight=0,o.parent=t,o.width=o.VScrollWidth,o.renderer=n,o.inner.style.width=o.element.style.width=(o.width||15)+"px",o.$minWidth=0,o}return i(t,e),t.prototype.onMouseDown=function(e,t){if("mousedown"===e&&0===a.getButton(t)&&2!==t.detail){if(t.target===this.inner){var n=this,o=t.clientY,i=t.clientY,r=this.thumbTop;a.capture(this.inner,(function(e){o=e.clientY}),(function(){clearInterval(s)}));var s=setInterval((function(){if(void 0!==o){var e=n.scrollTopFromThumbTop(r+o-i);e!==n.scrollTop&&n._emit("scroll",{data:e})}}),20);return a.preventDefault(t)}var l=t.clientY-this.element.getBoundingClientRect().top-this.thumbHeight/2;return this._emit("scroll",{data:this.scrollTopFromThumbTop(l)}),a.preventDefault(t)}},t.prototype.getHeight=function(){return this.height},t.prototype.scrollTopFromThumbTop=function(e){var t=e*(this.pageHeight-this.viewHeight)/(this.slideHeight-this.thumbHeight);return(t|=0)<0?t=0:t>this.pageHeight-this.viewHeight&&(t=this.pageHeight-this.viewHeight),t},t.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},t.prototype.setHeight=function(e){this.height=Math.max(0,e),this.slideHeight=this.height,this.viewHeight=this.height,this.setScrollHeight(this.pageHeight,!0)},t.prototype.setScrollHeight=function(e,t){(this.pageHeight!==e||t)&&(this.pageHeight=e,this.thumbHeight=this.slideHeight*this.viewHeight/this.pageHeight,this.thumbHeight>this.slideHeight&&(this.thumbHeight=this.slideHeight),this.thumbHeight<15&&(this.thumbHeight=15),this.inner.style.height=this.thumbHeight+"px",this.scrollTop>this.pageHeight-this.viewHeight&&(this.scrollTop=this.pageHeight-this.viewHeight,this.scrollTop<0&&(this.scrollTop=0),this._emit("scroll",{data:this.scrollTop})))},t.prototype.setScrollTop=function(e){this.scrollTop=e,e<0&&(e=0),this.thumbTop=e*(this.slideHeight-this.thumbHeight)/(this.pageHeight-this.viewHeight),this.inner.style.top=this.thumbTop+"px"},t}(c);u.prototype.setInnerHeight=u.prototype.setScrollHeight;var h=function(e){function t(t,n){var o=e.call(this,t,"-h")||this;return o.scrollLeft=0,o.scrollWidth=0,o.height=o.HScrollHeight,o.inner.style.height=o.element.style.height=(o.height||12)+"px",o.renderer=n,o}return i(t,e),t.prototype.onMouseDown=function(e,t){if("mousedown"===e&&0===a.getButton(t)&&2!==t.detail){if(t.target===this.inner){var n=this,o=t.clientX,i=t.clientX,r=this.thumbLeft;a.capture(this.inner,(function(e){o=e.clientX}),(function(){clearInterval(s)}));var s=setInterval((function(){if(void 0!==o){var e=n.scrollLeftFromThumbLeft(r+o-i);e!==n.scrollLeft&&n._emit("scroll",{data:e})}}),20);return a.preventDefault(t)}var l=t.clientX-this.element.getBoundingClientRect().left-this.thumbWidth/2;return this._emit("scroll",{data:this.scrollLeftFromThumbLeft(l)}),a.preventDefault(t)}},t.prototype.getHeight=function(){return this.isVisible?this.height:0},t.prototype.scrollLeftFromThumbLeft=function(e){var t=e*(this.pageWidth-this.viewWidth)/(this.slideWidth-this.thumbWidth);return(t|=0)<0?t=0:t>this.pageWidth-this.viewWidth&&(t=this.pageWidth-this.viewWidth),t},t.prototype.setWidth=function(e){this.width=Math.max(0,e),this.element.style.width=this.width+"px",this.slideWidth=this.width,this.viewWidth=this.width,this.setScrollWidth(this.pageWidth,!0)},t.prototype.setScrollWidth=function(e,t){(this.pageWidth!==e||t)&&(this.pageWidth=e,this.thumbWidth=this.slideWidth*this.viewWidth/this.pageWidth,this.thumbWidth>this.slideWidth&&(this.thumbWidth=this.slideWidth),this.thumbWidth<15&&(this.thumbWidth=15),this.inner.style.width=this.thumbWidth+"px",this.scrollLeft>this.pageWidth-this.viewWidth&&(this.scrollLeft=this.pageWidth-this.viewWidth,this.scrollLeft<0&&(this.scrollLeft=0),this._emit("scroll",{data:this.scrollLeft})))},t.prototype.setScrollLeft=function(e){this.scrollLeft=e,e<0&&(e=0),this.thumbLeft=e*(this.slideWidth-this.thumbWidth)/(this.pageWidth-this.viewWidth),this.inner.style.left=this.thumbLeft+"px"},t}(c);h.prototype.setInnerWidth=h.prototype.setScrollWidth,t.ScrollBar=u,t.ScrollBarV=u,t.ScrollBarH=h,t.VScrollBar=u,t.HScrollBar=h})),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],(function(e,t,n){"use strict";var o=e("./lib/event"),i=function(){function e(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=t||window;var n=this;this._flush=function(e){n.pending=!1;var t=n.changes;if(t&&(o.blockIdle(100),n.changes=0,n.onRender(t)),n.changes){if(n.$recursionLimit--<0)return;n.schedule()}else n.$recursionLimit=2}}return e.prototype.schedule=function(e){this.changes=this.changes|e,this.changes&&!this.pending&&(o.nextFrame(this._flush),this.pending=!0)},e.prototype.clear=function(e){var t=this.changes;return this.changes=0,t},e}();t.RenderLoop=i})),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],(function(e,t,n){var o=e("../lib/oop"),i=e("../lib/dom"),r=e("../lib/lang"),s=e("../lib/event"),a=e("../lib/useragent"),l=e("../lib/event_emitter").EventEmitter,c=512,u="function"==typeof ResizeObserver,h=200,d=function(){function e(e){this.el=i.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=i.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=i.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),this.$measureNode.textContent=r.stringRepeat("X",c),this.$characterSize={width:0,height:0},u?this.$addObserver():this.checkForSizeChanges()}return e.prototype.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",a.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},e.prototype.checkForSizeChanges=function(e){if(void 0===e&&(e=this.$measureSizes()),e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},e.prototype.$addObserver=function(){var e=this;this.$observer=new window.ResizeObserver((function(t){e.checkForSizeChanges()})),this.$observer.observe(this.$measureNode)},e.prototype.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=s.onIdle((function t(){e.checkForSizeChanges(),s.onIdle(t,500)}),500)},e.prototype.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},e.prototype.$measureSizes=function(e){var t={height:(e||this.$measureNode).clientHeight,width:(e||this.$measureNode).clientWidth/c};return 0===t.width||0===t.height?null:t},e.prototype.$measureCharWidth=function(e){return this.$main.textContent=r.stringRepeat(e,c),this.$main.getBoundingClientRect().width/c},e.prototype.getCharacterWidth=function(e){var t=this.charSizes[e];return void 0===t&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},e.prototype.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},e.prototype.$getZoom=function(e){return e&&e.parentElement?(window.getComputedStyle(e).zoom||1)*this.$getZoom(e.parentElement):1},e.prototype.$initTransformMeasureNodes=function(){var e=function(e,t){return["div",{style:"position: absolute;top:"+e+"px;left:"+t+"px;"}]};this.els=i.buildDom([e(0,0),e(h,0),e(0,h),e(h,h)],this.el)},e.prototype.transformCoordinates=function(e,t){function n(e,t,n){var o=e[1]*t[0]-e[0]*t[1];return[(-t[1]*n[0]+t[0]*n[1])/o,(+e[1]*n[0]-e[0]*n[1])/o]}function o(e,t){return[e[0]-t[0],e[1]-t[1]]}function i(e,t){return[e[0]+t[0],e[1]+t[1]]}function r(e,t){return[e*t[0],e*t[1]]}function s(e){var t=e.getBoundingClientRect();return[t.left,t.top]}e&&(e=r(1/this.$getZoom(this.el),e)),this.els||this.$initTransformMeasureNodes();var a=s(this.els[0]),l=s(this.els[1]),c=s(this.els[2]),u=s(this.els[3]),d=n(o(u,l),o(u,c),o(i(l,c),i(u,a))),p=r(1+d[0],o(l,a)),g=r(1+d[1],o(c,a));if(t){var m=t,f=d[0]*m[0]/h+d[1]*m[1]/h+1,y=i(r(m[0],p),r(m[1],g));return i(r(1/f/h,y),a)}var v=o(e,a),b=n(o(p,r(d[0],v)),o(g,r(d[1],v)),v);return r(h,b)},e}();d.prototype.$characterSize={width:0,height:0},o.implement(d.prototype,l),t.FontMetrics=d})),ace.define("ace/css/editor-css",["require","exports","module"],(function(e,t,n){n.exports='\n.ace_br1 {border-top-left-radius : 3px;}\n.ace_br2 {border-top-right-radius : 3px;}\n.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\n.ace_br4 {border-bottom-right-radius: 3px;}\n.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\n.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\n.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\n.ace_br8 {border-bottom-left-radius : 3px;}\n.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\n.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\n.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n\n\n.ace_editor {\n position: relative;\n overflow: hidden;\n padding: 0;\n font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'Source Code Pro\', \'source-code-pro\', monospace;\n direction: ltr;\n text-align: left;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\n.ace_scroller {\n position: absolute;\n overflow: hidden;\n top: 0;\n bottom: 0;\n background-color: inherit;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n cursor: text;\n}\n\n.ace_content {\n position: absolute;\n box-sizing: border-box;\n min-width: 100%;\n contain: style size layout;\n font-variant-ligatures: no-common-ligatures;\n}\n\n.ace_keyboard-focus:focus {\n box-shadow: inset 0 0 0 2px #5E9ED6;\n outline: none;\n}\n\n.ace_dragging .ace_scroller:before{\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n content: \'\';\n background: rgba(250, 250, 250, 0.01);\n z-index: 1000;\n}\n.ace_dragging.ace_dark .ace_scroller:before{\n background: rgba(0, 0, 0, 0.01);\n}\n\n.ace_gutter {\n position: absolute;\n overflow : hidden;\n width: auto;\n top: 0;\n bottom: 0;\n left: 0;\n cursor: default;\n z-index: 4;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n contain: style size layout;\n}\n\n.ace_gutter-active-line {\n position: absolute;\n left: 0;\n right: 0;\n}\n\n.ace_scroller.ace_scroll-left:after {\n content: "";\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\n pointer-events: none;\n}\n\n.ace_gutter-cell, .ace_gutter-cell_svg-icons {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n padding-left: 19px;\n padding-right: 6px;\n background-repeat: no-repeat;\n}\n\n.ace_gutter-cell_svg-icons .ace_gutter_annotation {\n margin-left: -14px;\n float: left;\n}\n\n.ace_gutter-cell .ace_gutter_annotation {\n margin-left: -19px;\n float: left;\n}\n\n.ace_gutter-cell.ace_error, .ace_icon.ace_error, .ace_icon.ace_error_fold {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_warning, .ace_icon.ace_warning, .ace_icon.ace_warning_fold {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_info, .ace_icon.ace_info {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n.ace_dark .ace_gutter-cell.ace_info, .ace_dark .ace_icon.ace_info {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");\n}\n\n.ace_icon_svg.ace_error {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJyZWQiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KPGNpcmNsZSBmaWxsPSJub25lIiBjeD0iOCIgY3k9IjgiIHI9IjciIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPGxpbmUgeDE9IjExIiB5MT0iNSIgeDI9IjUiIHkyPSIxMSIvPgo8bGluZSB4MT0iMTEiIHkxPSIxMSIgeDI9IjUiIHkyPSI1Ii8+CjwvZz4KPC9zdmc+");\n background-color: crimson;\n}\n.ace_icon_svg.ace_warning {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJkYXJrb3JhbmdlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+Cjxwb2x5Z29uIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGZpbGw9Im5vbmUiIHBvaW50cz0iOCAxIDE1IDE1IDEgMTUgOCAxIi8+CjxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iMC4wMSIgaGVpZ2h0PSIwLjAxIi8+CjxsaW5lIHgxPSI4IiB5MT0iNiIgeDI9IjgiIHkyPSIxMCIvPgo8L2c+Cjwvc3ZnPg==");\n background-color: darkorange;\n}\n.ace_icon_svg.ace_info {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJibHVlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CjxjaXJjbGUgZmlsbD0ibm9uZSIgY3g9IjgiIGN5PSI4IiByPSI3IiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjxwb2x5bGluZSBwb2ludHM9IjggMTEgOCA4Ii8+Cjxwb2x5bGluZSBwb2ludHM9IjkgOCA2IDgiLz4KPGxpbmUgeDE9IjEwIiB5MT0iMTEiIHgyPSI2IiB5Mj0iMTEiLz4KPHJlY3QgeD0iOCIgeT0iNSIgd2lkdGg9IjAuMDEiIGhlaWdodD0iMC4wMSIvPgo8L2c+Cjwvc3ZnPg==");\n background-color: royalblue;\n}\n\n.ace_icon_svg.ace_error_fold {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSI+CiAgPHBhdGggZD0ibSAxOC45Mjk4NTEsNy44Mjk4MDc2IGMgMC4xNDYzNTMsNi4zMzc0NjA0IC02LjMyMzE0Nyw3Ljc3Nzg0NDQgLTcuNDc3OTEyLDcuNzc3ODQ0NCAtMi4xMDcyNzI2LC0wLjEyODc1IDUuMTE3Njc4LDAuMzU2MjQ5IDUuMDUxNjk4LC03Ljg3MDA2MTggLTAuNjA0NjcyLC04LjAwMzk3MzQ5IC03LjA3NzI3MDYsLTcuNTYzMTE4OSAtNC44NTczLC03LjQzMDM5NTU2IDEuNjA2LC0wLjExNTE0MjI1IDYuODk3NDg1LDEuMjYyNTQ1OTYgNy4yODM1MTQsNy41MjI2MTI5NiB6IiBmaWxsPSJjcmltc29uIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0ibSA4LjExNDc1NjIsMi4wNTI5ODI4IGMgMy4zNDkxNjk4LDAgNi4wNjQxMzI4LDIuNjc2ODYyNyA2LjA2NDEzMjgsNS45Nzg5NTMgMCwzLjMwMjExMjIgLTIuNzE0OTYzLDUuOTc4OTIwMiAtNi4wNjQxMzI4LDUuOTc4OTIwMiAtMy4zNDkxNDczLDAgLTYuMDY0MTc3MiwtMi42NzY4MDggLTYuMDY0MTc3MiwtNS45Nzg5MjAyIDAuMDA1MzksLTMuMjk5ODg2MSAyLjcxNzI2NTYsLTUuOTczNjQwOCA2LjA2NDE3NzIsLTUuOTc4OTUzIHogbSAwLC0xLjczNTgyNzE5IGMgLTQuMzIxNDgzNiwwIC03LjgyNDc0MDM4LDMuNDU0MDE4NDkgLTcuODI0NzQwMzgsNy43MTQ3ODAxOSAwLDQuMjYwNzI4MiAzLjUwMzI1Njc4LDcuNzE0NzQ1MiA3LjgyNDc0MDM4LDcuNzE0NzQ1MiA0LjMyMTQ0OTgsMCA3LjgyNDY5OTgsLTMuNDU0MDE3IDcuODI0Njk5OCwtNy43MTQ3NDUyIDAsLTIuMDQ2MDkxNCAtMC44MjQzOTIsLTQuMDA4MzY3MiAtMi4yOTE3NTYsLTUuNDU1MTc0NiBDIDEyLjE4MDIyNSwxLjEyOTk2NDggMTAuMTkwMDEzLDAuMzE3MTU1NjEgOC4xMTQ3NTYyLDAuMzE3MTU1NjEgWiBNIDYuOTM3NDU2Myw4LjI0MDU5ODUgNC42NzE4Njg1LDEwLjQ4NTg1MiA2LjAwODY4MTQsMTEuODc2NzI4IDguMzE3MDAzNSw5LjYwMDc5MTEgMTAuNjI1MzM3LDExLjg3NjcyOCAxMS45NjIxMzgsMTAuNDg1ODUyIDkuNjk2NTUwOCw4LjI0MDU5ODUgMTEuOTYyMTM4LDYuMDA2ODA2NiAxMC41NzMyNDYsNC42Mzc0MzM1IDguMzE3MDAzNSw2Ljg3MzQyOTcgNi4wNjA3NjA3LDQuNjM3NDMzNSA0LjY3MTg2ODUsNi4wMDY4MDY2IFoiIGZpbGw9ImNyaW1zb24iIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4=");\n background-color: crimson;\n}\n.ace_icon_svg.ace_warning_fold {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNC43NzY5IDE0LjczMzdMOC42NTE5MiAyLjQ4MzY5QzguMzI5NDYgMS44Mzg3NyA3LjQwOTEzIDEuODM4NzcgNy4wODY2NyAyLjQ4MzY5TDAuOTYxNjY5IDE0LjczMzdDMC42NzA3NzUgMTUuMzE1NSAxLjA5MzgzIDE2IDEuNzQ0MjkgMTZIMTMuOTk0M0MxNC42NDQ4IDE2IDE1LjA2NzggMTUuMzE1NSAxNC43NzY5IDE0LjczMzdaTTMuMTYwMDcgMTQuMjVMNy44NjkyOSA0LjgzMTU2TDEyLjU3ODUgMTQuMjVIMy4xNjAwN1pNOC43NDQyOSAxMS42MjVWMTMuMzc1SDYuOTk0MjlWMTEuNjI1SDguNzQ0MjlaTTYuOTk0MjkgMTAuNzVWNy4yNUg4Ljc0NDI5VjEwLjc1SDYuOTk0MjlaIiBmaWxsPSIjRUM3MjExIi8+CjxwYXRoIGQ9Ik0xMS4xOTkxIDIuOTUyMzhDMTAuODgwOSAyLjMxNDY3IDEwLjM1MzcgMS44MDUyNiA5LjcwNTUgMS41MDlMMTEuMDQxIDEuMDY5NzhDMTEuNjg4MyAwLjk0OTgxNCAxMi4zMzcgMS4yNzI2MyAxMi42MzE3IDEuODYxNDFMMTcuNjEzNiAxMS44MTYxQzE4LjM1MjcgMTMuMjkyOSAxNy41OTM4IDE1LjA4MDQgMTYuMDE4IDE1LjU3NDVDMTYuNDA0NCAxNC40NTA3IDE2LjMyMzEgMTMuMjE4OCAxNS43OTI0IDEyLjE1NTVMMTEuMTk5MSAyLjk1MjM4WiIgZmlsbD0iI0VDNzIxMSIvPgo8L3N2Zz4=");\n background-color: darkorange;\n}\n\n.ace_scrollbar {\n contain: strict;\n position: absolute;\n right: 0;\n bottom: 0;\n z-index: 6;\n}\n\n.ace_scrollbar-inner {\n position: absolute;\n cursor: text;\n left: 0;\n top: 0;\n}\n\n.ace_scrollbar-v{\n overflow-x: hidden;\n overflow-y: scroll;\n top: 0;\n}\n\n.ace_scrollbar-h {\n overflow-x: scroll;\n overflow-y: hidden;\n left: 0;\n}\n\n.ace_print-margin {\n position: absolute;\n height: 100%;\n}\n\n.ace_text-input {\n position: absolute;\n z-index: 0;\n width: 0.5em;\n height: 1em;\n opacity: 0;\n background: transparent;\n -moz-appearance: none;\n appearance: none;\n border: none;\n resize: none;\n outline: none;\n overflow: hidden;\n font: inherit;\n padding: 0 1px;\n margin: 0 -1px;\n contain: strict;\n -ms-user-select: text;\n -moz-user-select: text;\n -webkit-user-select: text;\n user-select: text;\n /*with `pre-line` chrome inserts   instead of space*/\n white-space: pre!important;\n}\n.ace_text-input.ace_composition {\n background: transparent;\n color: inherit;\n z-index: 1000;\n opacity: 1;\n}\n.ace_composition_placeholder { color: transparent }\n.ace_composition_marker { \n border-bottom: 1px solid;\n position: absolute;\n border-radius: 0;\n margin-top: 1px;\n}\n\n[ace_nocontext=true] {\n transform: none!important;\n filter: none!important;\n clip-path: none!important;\n mask : none!important;\n contain: none!important;\n perspective: none!important;\n mix-blend-mode: initial!important;\n z-index: auto;\n}\n\n.ace_layer {\n z-index: 1;\n position: absolute;\n overflow: hidden;\n /* workaround for chrome bug https://github.com/ajaxorg/ace/issues/2312*/\n word-wrap: normal;\n white-space: pre;\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n /* setting pointer-events: auto; on node under the mouse, which changes\n during scroll, will break mouse wheel scrolling in Safari */\n pointer-events: none;\n}\n\n.ace_gutter-layer {\n position: relative;\n width: auto;\n text-align: right;\n pointer-events: auto;\n height: 1000000px;\n contain: style size layout;\n}\n\n.ace_text-layer {\n font: inherit !important;\n position: absolute;\n height: 1000000px;\n width: 1000000px;\n contain: style size layout;\n}\n\n.ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group {\n contain: style size layout;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n}\n\n.ace_hidpi .ace_text-layer,\n.ace_hidpi .ace_gutter-layer,\n.ace_hidpi .ace_content,\n.ace_hidpi .ace_gutter {\n contain: strict;\n}\n.ace_hidpi .ace_text-layer > .ace_line, \n.ace_hidpi .ace_text-layer > .ace_line_group {\n contain: strict;\n}\n\n.ace_cjk {\n display: inline-block;\n text-align: center;\n}\n\n.ace_cursor-layer {\n z-index: 4;\n}\n\n.ace_cursor {\n z-index: 4;\n position: absolute;\n box-sizing: border-box;\n border-left: 2px solid;\n /* workaround for smooth cursor repaintng whole screen in chrome */\n transform: translatez(0);\n}\n\n.ace_multiselect .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_slim-cursors .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_overwrite-cursors .ace_cursor {\n border-left-width: 0;\n border-bottom: 1px solid;\n}\n\n.ace_hidden-cursors .ace_cursor {\n opacity: 0.2;\n}\n\n.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {\n opacity: 0;\n}\n\n.ace_smooth-blinking .ace_cursor {\n transition: opacity 0.18s;\n}\n\n.ace_animate-blinking .ace_cursor {\n animation-duration: 1000ms;\n animation-timing-function: step-end;\n animation-name: blink-ace-animate;\n animation-iteration-count: infinite;\n}\n\n.ace_animate-blinking.ace_smooth-blinking .ace_cursor {\n animation-duration: 1000ms;\n animation-timing-function: ease-in-out;\n animation-name: blink-ace-animate-smooth;\n}\n \n@keyframes blink-ace-animate {\n from, to { opacity: 1; }\n 60% { opacity: 0; }\n}\n\n@keyframes blink-ace-animate-smooth {\n from, to { opacity: 1; }\n 45% { opacity: 1; }\n 60% { opacity: 0; }\n 85% { opacity: 0; }\n}\n\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\n position: absolute;\n z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n position: absolute;\n z-index: 5;\n}\n\n.ace_marker-layer .ace_bracket {\n position: absolute;\n z-index: 6;\n}\n\n.ace_marker-layer .ace_error_bracket {\n position: absolute;\n border-bottom: 1px solid #DE5555;\n border-radius: 0;\n}\n\n.ace_marker-layer .ace_active-line {\n position: absolute;\n z-index: 2;\n}\n\n.ace_marker-layer .ace_selected-word {\n position: absolute;\n z-index: 4;\n box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n box-sizing: border-box;\n\n display: inline-block;\n height: 11px;\n margin-top: -2px;\n vertical-align: middle;\n\n background-image:\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");\n background-repeat: no-repeat, repeat-x;\n background-position: center center, top left;\n color: transparent;\n\n border: 1px solid black;\n border-radius: 2px;\n\n cursor: pointer;\n pointer-events: auto;\n}\n\n.ace_dark .ace_fold {\n}\n\n.ace_fold:hover{\n background-image:\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");\n}\n\n.ace_tooltip {\n background-color: #f5f5f5;\n border: 1px solid gray;\n border-radius: 1px;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\n color: black;\n max-width: 100%;\n padding: 3px 4px;\n position: fixed;\n z-index: 999999;\n box-sizing: border-box;\n cursor: default;\n white-space: pre-wrap;\n word-wrap: break-word;\n line-height: normal;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n pointer-events: none;\n overflow: auto;\n max-width: min(60em, 66vw);\n}\n.ace_tooltip pre {\n white-space: pre-wrap;\n}\n\n.ace_tooltip.ace_dark {\n background-color: #636363;\n color: #fff;\n}\n\n.ace_tooltip:focus {\n outline: 1px solid #5E9ED6;\n}\n\n.ace_icon {\n display: inline-block;\n width: 18px;\n vertical-align: top;\n}\n\n.ace_icon_svg {\n display: inline-block;\n width: 12px;\n vertical-align: top;\n -webkit-mask-repeat: no-repeat;\n -webkit-mask-size: 12px;\n -webkit-mask-position: center;\n}\n\n.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons {\n padding-right: 13px;\n}\n\n.ace_fold-widget {\n box-sizing: border-box;\n\n margin: 0 -12px 0 1px;\n display: none;\n width: 11px;\n vertical-align: top;\n\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: center;\n\n border-radius: 3px;\n \n border: 1px solid transparent;\n cursor: pointer;\n}\n\n.ace_folding-enabled .ace_fold-widget {\n display: inline-block; \n}\n\n.ace_fold-widget.ace_end {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");\n}\n\n.ace_fold-widget.ace_closed {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");\n}\n\n.ace_fold-widget:hover {\n border: 1px solid rgba(0, 0, 0, 0.3);\n background-color: rgba(255, 255, 255, 0.2);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n}\n\n.ace_fold-widget:active {\n border: 1px solid rgba(0, 0, 0, 0.4);\n background-color: rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n}\n/**\n * Dark version for fold widgets\n */\n.ace_dark .ace_fold-widget {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");\n}\n.ace_dark .ace_fold-widget.ace_end {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");\n}\n.ace_dark .ace_fold-widget.ace_closed {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");\n}\n.ace_dark .ace_fold-widget:hover {\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n background-color: rgba(255, 255, 255, 0.1);\n}\n.ace_dark .ace_fold-widget:active {\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n}\n\n.ace_inline_button {\n border: 1px solid lightgray;\n display: inline-block;\n margin: -1px 8px;\n padding: 0 5px;\n pointer-events: auto;\n cursor: pointer;\n}\n.ace_inline_button:hover {\n border-color: gray;\n background: rgba(200,200,200,0.2);\n display: inline-block;\n pointer-events: auto;\n}\n\n.ace_fold-widget.ace_invalid {\n background-color: #FFB4B4;\n border-color: #DE5555;\n}\n\n.ace_fade-fold-widgets .ace_fold-widget {\n transition: opacity 0.4s ease 0.05s;\n opacity: 0;\n}\n\n.ace_fade-fold-widgets:hover .ace_fold-widget {\n transition: opacity 0.05s ease 0.05s;\n opacity:1;\n}\n\n.ace_underline {\n text-decoration: underline;\n}\n\n.ace_bold {\n font-weight: bold;\n}\n\n.ace_nobold .ace_bold {\n font-weight: normal;\n}\n\n.ace_italic {\n font-style: italic;\n}\n\n\n.ace_error-marker {\n background-color: rgba(255, 0, 0,0.2);\n position: absolute;\n z-index: 9;\n}\n\n.ace_highlight-marker {\n background-color: rgba(255, 255, 0,0.2);\n position: absolute;\n z-index: 8;\n}\n\n.ace_mobile-menu {\n position: absolute;\n line-height: 1.5;\n border-radius: 4px;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n background: white;\n box-shadow: 1px 3px 2px grey;\n border: 1px solid #dcdcdc;\n color: black;\n}\n.ace_dark > .ace_mobile-menu {\n background: #333;\n color: #ccc;\n box-shadow: 1px 3px 2px grey;\n border: 1px solid #444;\n\n}\n.ace_mobile-button {\n padding: 2px;\n cursor: pointer;\n overflow: hidden;\n}\n.ace_mobile-button:hover {\n background-color: #eee;\n opacity:1;\n}\n.ace_mobile-button:active {\n background-color: #ddd;\n}\n\n.ace_placeholder {\n font-family: arial;\n transform: scale(0.9);\n transform-origin: left;\n white-space: pre;\n opacity: 0.7;\n margin: 0 10px;\n}\n\n.ace_ghost_text {\n opacity: 0.5;\n font-style: italic;\n white-space: pre;\n}\n\n.ace_screenreader-only {\n position:absolute;\n left:-10000px;\n top:auto;\n width:1px;\n height:1px;\n overflow:hidden;\n}'})),ace.define("ace/layer/decorators",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=e("../lib/oop"),r=e("../lib/event_emitter").EventEmitter,s=function(){function e(e,t){this.canvas=o.createElement("canvas"),this.renderer=t,this.pixelRatio=1,this.maxHeight=t.layerConfig.maxHeight,this.lineHeight=t.layerConfig.lineHeight,this.canvasHeight=e.parent.scrollHeight,this.heightRatio=this.canvasHeight/this.maxHeight,this.canvasWidth=e.width,this.minDecorationHeight=2*this.pixelRatio|0,this.halfMinDecorationHeight=this.minDecorationHeight/2|0,this.canvas.width=this.canvasWidth,this.canvas.height=this.canvasHeight,this.canvas.style.top="0px",this.canvas.style.right="0px",this.canvas.style.zIndex="7px",this.canvas.style.position="absolute",this.colors={},this.colors.dark={error:"rgba(255, 18, 18, 1)",warning:"rgba(18, 136, 18, 1)",info:"rgba(18, 18, 136, 1)"},this.colors.light={error:"rgb(255,51,51)",warning:"rgb(32,133,72)",info:"rgb(35,68,138)"},e.element.appendChild(this.canvas)}return e.prototype.$updateDecorators=function(e){var t=!0===this.renderer.theme.isDark?this.colors.dark:this.colors.light;e&&(this.maxHeight=e.maxHeight,this.lineHeight=e.lineHeight,this.canvasHeight=e.height,(e.lastRow+1)*this.lineHeightt.priority?1:0}));for(var r=this.renderer.session.$foldData,s=0;sthis.canvasHeight&&(d=this.canvasHeight-this.halfMinDecorationHeight),u=Math.round(d-this.halfMinDecorationHeight),h=Math.round(d+this.halfMinDecorationHeight)}n.fillStyle=t[o[s].type]||null,n.fillRect(0,c,this.canvasWidth,h-u)}}var p=this.renderer.session.selection.getCursor();p&&(l=this.compensateFoldRows(p.row,r),c=Math.round((p.row-l)*this.lineHeight*this.heightRatio),n.fillStyle="rgba(0, 0, 0, 0.5)",n.fillRect(0,c,this.canvasWidth,2))},e.prototype.compensateFoldRows=function(e,t){var n=0;if(t&&t.length>0)for(var o=0;ot[o].start.row&&e=t[o].end.row&&(n+=t[o].end.row-t[o].start.row);return n},e}();i.implement(s.prototype,r),t.Decorator=s})),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/config","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/scrollbar_custom","ace/scrollbar_custom","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter","ace/css/editor-css","ace/layer/decorators","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("./lib/oop"),i=e("./lib/dom"),r=e("./lib/lang"),s=e("./config"),a=e("./layer/gutter").Gutter,l=e("./layer/marker").Marker,c=e("./layer/text").Text,u=e("./layer/cursor").Cursor,h=e("./scrollbar").HScrollBar,d=e("./scrollbar").VScrollBar,p=e("./scrollbar_custom").HScrollBar,g=e("./scrollbar_custom").VScrollBar,m=e("./renderloop").RenderLoop,f=e("./layer/font_metrics").FontMetrics,y=e("./lib/event_emitter").EventEmitter,v=e("./css/editor-css"),b=e("./layer/decorators").Decorator,w=e("./lib/useragent");i.importCssString(v,"ace_editor.css",!1);var x=function(){function e(e,t){var n=this;this.container=e||i.createElement("div"),i.addCssClass(this.container,"ace_editor"),i.HI_DPI&&i.addCssClass(this.container,"ace_hidpi"),this.setTheme(t),null==s.get("useStrictCSP")&&s.set("useStrictCSP",!1),this.$gutter=i.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=i.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=i.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new a(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new l(this.content);var o=this.$textLayer=new c(this.content);this.canvas=o.element,this.$markerFront=new l(this.content),this.$cursorLayer=new u(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new d(this.container,this),this.scrollBarH=new h(this.container,this),this.scrollBarV.on("scroll",(function(e){n.$scrollAnimation||n.session.setScrollTop(e.data-n.scrollMargin.top)})),this.scrollBarH.on("scroll",(function(e){n.$scrollAnimation||n.session.setScrollLeft(e.data-n.scrollMargin.left)})),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new f(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.on("changeCharacterSize",(function(e){n.updateCharacterSize(),n.onResize(!0,n.gutterWidth,n.$size.width,n.$size.height),n._signal("changeCharacterSize",e)})),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.margin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$keepTextAreaAtCursor=!w.isIOS,this.$loop=new m(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),this.$addResizeObserver(),s.resetOptions(this),s._signal("renderer",this)}return e.prototype.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin(),i.setStyle(this.scroller.style,"line-height",this.lineHeight+"px")},e.prototype.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e),e&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},e.prototype.updateLines=function(e,t,n){if(void 0===t&&(t=1/0),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},e.prototype.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},e.prototype.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},e.prototype.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},e.prototype.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},e.prototype.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},e.prototype.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},e.prototype.onResize=function(e,t,n,o){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=e?1:0;var i=this.container;o||(o=i.clientHeight||i.scrollHeight),n||(n=i.clientWidth||i.scrollWidth);var r=this.$updateCachedSize(e,t,n,o);if(this.$resizeTimer&&this.$resizeTimer.cancel(),!this.$size.scrollerHeight||!n&&!o)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(r|this.$changes,!0):this.$loop.schedule(r|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.$customScrollbar&&this.$updateCustomScrollbar(!0)}},e.prototype.$updateCachedSize=function(e,t,n,o){o-=this.$extraHeight||0;var r=0,s=this.$size,a={width:s.width,height:s.height,scrollerHeight:s.scrollerHeight,scrollerWidth:s.scrollerWidth};if(o&&(e||s.height!=o)&&(s.height=o,r|=this.CHANGE_SIZE,s.scrollerHeight=s.height,this.$horizScroll&&(s.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.setHeight(s.scrollerHeight),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",r|=this.CHANGE_SCROLL),n&&(e||s.width!=n)){r|=this.CHANGE_SIZE,s.width=n,null==t&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,i.setStyle(this.scrollBarH.element.style,"left",t+"px"),i.setStyle(this.scroller.style,"left",t+this.margin.left+"px"),s.scrollerWidth=Math.max(0,n-t-this.scrollBarV.getWidth()-this.margin.h),i.setStyle(this.$gutter.style,"left",this.margin.left+"px");var l=this.scrollBarV.getWidth()+"px";i.setStyle(this.scrollBarH.element.style,"right",l),i.setStyle(this.scroller.style,"right",l),i.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight()),this.scrollBarH.setWidth(s.scrollerWidth),(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)&&(r|=this.CHANGE_FULL)}return s.$dirty=!n||!o,r&&this._signal("resize",a),r},e.prototype.onGutterResize=function(e){var t=this.$showGutter?e:0;t!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,t,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()||this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},e.prototype.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-2*this.$padding,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},e.prototype.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},e.prototype.getAnimatedScroll=function(){return this.$animatedScroll},e.prototype.setShowInvisibles=function(e){this.setOption("showInvisibles",e),this.session.$bidiHandler.setShowInvisibles(e)},e.prototype.getShowInvisibles=function(){return this.getOption("showInvisibles")},e.prototype.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},e.prototype.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},e.prototype.getHighlightIndentGuides=function(){return this.getOption("highlightIndentGuides")},e.prototype.setHighlightIndentGuides=function(e){this.setOption("highlightIndentGuides",e)},e.prototype.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},e.prototype.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},e.prototype.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},e.prototype.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},e.prototype.getShowGutter=function(){return this.getOption("showGutter")},e.prototype.setShowGutter=function(e){return this.setOption("showGutter",e)},e.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},e.prototype.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},e.prototype.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},e.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},e.prototype.$updatePrintMargin=function(){if(this.$showPrintMargin||this.$printMarginEl){if(!this.$printMarginEl){var e=i.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=i.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&-1==this.session.$wrap&&this.adjustWrapLimit()}},e.prototype.getContainerElement=function(){return this.container},e.prototype.getMouseEventTarget=function(){return this.scroller},e.prototype.getTextAreaContainer=function(){return this.container},e.prototype.$moveTextAreaToCursor=function(){if(!this.$isMousePressed){var e=this.textarea.style,t=this.$composition;if(this.$keepTextAreaAtCursor||t){var n=this.$cursorLayer.$pixelPos;if(n){t&&t.markerRange&&(n=this.$cursorLayer.getPixelPosition(t.markerRange.start,!0));var o=this.layerConfig,r=n.top,s=n.left;r-=o.offset;var a=t&&t.useTextareaForIME||w.isMobile?this.lineHeight:1;if(r<0||r>o.height-a)i.translate(this.textarea,0,0);else{var l=1,c=this.$size.height-a;if(t)if(t.useTextareaForIME){var u=this.textarea.value;l=this.characterWidth*this.session.$getStringScreenWidth(u)[0]}else r+=this.lineHeight+2;else r+=this.lineHeight;(s-=this.scrollLeft)>this.$size.scrollerWidth-l&&(s=this.$size.scrollerWidth-l),s+=this.gutterWidth+this.margin.left,i.setStyle(e,"height",a+"px"),i.setStyle(e,"width",l+"px"),i.translate(this.textarea,Math.min(s,this.$size.scrollerWidth-l),Math.min(r,c))}}}else i.translate(this.textarea,-100,0)}},e.prototype.getFirstVisibleRow=function(){return this.layerConfig.firstRow},e.prototype.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(0===this.layerConfig.offset?0:1)},e.prototype.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow;return this.session.documentToScreenRow(t,0)*e.lineHeight-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},e.prototype.getLastVisibleRow=function(){return this.layerConfig.lastRow},e.prototype.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},e.prototype.setScrollMargin=function(e,t,n,o){var i=this.scrollMargin;i.top=0|e,i.bottom=0|t,i.right=0|o,i.left=0|n,i.v=i.top+i.bottom,i.h=i.left+i.right,i.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-i.top),this.updateFull()},e.prototype.setMargin=function(e,t,n,o){var i=this.margin;i.top=0|e,i.bottom=0|t,i.right=0|o,i.left=0|n,i.v=i.top+i.bottom,i.h=i.left+i.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},e.prototype.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},e.prototype.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},e.prototype.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},e.prototype.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},e.prototype.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},e.prototype.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},e.prototype.freeze=function(){this.$frozen=!0},e.prototype.unfreeze=function(){this.$frozen=!1},e.prototype.$renderChanges=function(e,t){if(this.$changes&&(e|=this.$changes,this.$changes=0),this.session&&this.container.offsetWidth&&!this.$frozen&&(e||t)){if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender",e),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var n=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){if(e|=this.$computeLayerConfig()|this.$loop.clear(),n.firstRow!=this.layerConfig.firstRow&&n.firstRowScreen==this.layerConfig.firstRowScreen){var o=this.scrollTop+(n.firstRow-Math.max(this.layerConfig.firstRow,0))*this.lineHeight;o>0&&(this.scrollTop=o,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig()|this.$loop.clear())}n=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),i.translate(this.content,-this.scrollLeft,-n.offset);var r=n.width+2*this.$padding+"px",s=n.minHeight+"px";i.setStyle(this.content.style,"width",r),i.setStyle(this.content.style,"height",s)}if(e&this.CHANGE_H_SCROLL&&(i.translate(this.content,-this.scrollLeft,-n.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller ":"ace_scroller ace_scroll-left ",this.enableKeyboardAccessibility&&(this.scroller.className+=this.keyboardFocusClassName)),e&this.CHANGE_FULL)return this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),void this._signal("afterRender",e);if(e&this.CHANGE_SCROLL)return this.$changedLines=null,e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(n):this.$textLayer.scrollLines(n),this.$showGutter&&(e&this.CHANGE_GUTTER||e&this.CHANGE_LINES?this.$gutterLayer.update(n):this.$gutterLayer.scrollLines(n)),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),void this._signal("afterRender",e);e&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_LINES?((this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER?(this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_CURSOR&&(this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(n),this.$moveTextAreaToCursor()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(n),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(n),this._signal("afterRender",e)}else this.$changes|=e},e.prototype.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,n=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(n+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&n>this.$maxPixelHeight&&(n=this.$maxPixelHeight);var o=!(n<=2*this.lineHeight)&&e>t;if(n!=this.desiredHeight||this.$size.height!=this.desiredHeight||o!=this.$vScroll){o!=this.$vScroll&&(this.$vScroll=o,this.scrollBarV.setVisible(o));var i=this.container.clientWidth;this.container.style.height=n+"px",this.$updateCachedSize(!0,this.$gutterWidth,i,n),this.desiredHeight=n,this._signal("autosize")}},e.prototype.$computeLayerConfig=function(){var e=this.session,t=this.$size,n=t.height<=2*this.lineHeight,o=this.session.getScreenLength()*this.lineHeight,i=this.$getLongestLine(),r=!n&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-i-2*this.$padding<0),s=this.$horizScroll!==r;s&&(this.$horizScroll=r,this.scrollBarH.setVisible(r));var a=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var l=t.scrollerHeight+this.lineHeight,c=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;o+=c;var u=this.scrollMargin;this.session.setScrollTop(Math.max(-u.top,Math.min(this.scrollTop,o-t.scrollerHeight+u.bottom))),this.session.setScrollLeft(Math.max(-u.left,Math.min(this.scrollLeft,i+2*this.$padding-t.scrollerWidth+u.right)));var h=!n&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-o+c<0||this.scrollTop>u.top),d=a!==h;d&&(this.$vScroll=h,this.scrollBarV.setVisible(h));var p,g,m=this.scrollTop%this.lineHeight,f=Math.ceil(l/this.lineHeight)-1,y=Math.max(0,Math.round((this.scrollTop-m)/this.lineHeight)),v=y+f,b=this.lineHeight;y=e.screenToDocumentRow(y,0);var w=e.getFoldLine(y);w&&(y=w.start.row),p=e.documentToScreenRow(y,0),g=e.getRowLength(y)*b,v=Math.min(e.screenToDocumentRow(v,0),e.getLength()-1),l=t.scrollerHeight+e.getRowLength(v)*b+g,m=this.scrollTop-p*b;var x=0;return(this.layerConfig.width!=i||s)&&(x=this.CHANGE_H_SCROLL),(s||d)&&(x|=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),d&&(i=this.$getLongestLine())),this.layerConfig={width:i,padding:this.$padding,firstRow:y,firstRowScreen:p,lastRow:v,lineHeight:b,characterWidth:this.characterWidth,minHeight:l,maxHeight:o,offset:m,gutterOffset:b?Math.max(0,Math.ceil((m+t.height-t.scrollerHeight)/b)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(i-this.$padding),x},e.prototype.$updateLines=function(){if(this.$changedLines){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var n=this.layerConfig;if(!(e>n.lastRow+1||tthis.$textLayer.MAX_LINE_LENGTH&&(e=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(e*this.characterWidth))},e.prototype.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},e.prototype.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},e.prototype.addGutterDecoration=function(e,t){this.$gutterLayer.addGutterDecoration(e,t)},e.prototype.removeGutterDecoration=function(e,t){this.$gutterLayer.removeGutterDecoration(e,t)},e.prototype.updateBreakpoints=function(e){this.$loop.schedule(this.CHANGE_GUTTER)},e.prototype.setAnnotations=function(e){this.$gutterLayer.setAnnotations(e),this.$loop.schedule(this.CHANGE_GUTTER)},e.prototype.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},e.prototype.hideCursor=function(){this.$cursorLayer.hideCursor()},e.prototype.showCursor=function(){this.$cursorLayer.showCursor()},e.prototype.scrollSelectionIntoView=function(e,t,n){this.scrollCursorIntoView(e,n),this.scrollCursorIntoView(t,n)},e.prototype.scrollCursorIntoView=function(e,t,n){if(0!==this.$size.scrollerHeight){var o=this.$cursorLayer.getPixelPosition(e),i=o.left,r=o.top,s=n&&n.top||0,a=n&&n.bottom||0;this.$scrollAnimation&&(this.$stopAnimation=!0);var l=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;l+s>r?(t&&l+s>r+this.lineHeight&&(r-=t*this.$size.scrollerHeight),0===r&&(r=-this.scrollMargin.top),this.session.setScrollTop(r)):l+this.$size.scrollerHeight-a=1-this.scrollMargin.top||t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right||void 0},e.prototype.pixelToScreenCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var o=this.$fontMetrics.transformCoordinates([e,t]);e=o[1]-this.gutterWidth-this.margin.left,t=o[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,r=i/this.characterWidth,s=Math.floor((t+this.scrollTop-n.top)/this.lineHeight),a=this.$blockCursor?Math.floor(r):Math.round(r);return{row:s,column:a,side:r-a>0?1:-1,offsetX:i}},e.prototype.screenToTextCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var o=this.$fontMetrics.transformCoordinates([e,t]);e=o[1]-this.gutterWidth-this.margin.left,t=o[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,r=i/this.characterWidth,s=this.$blockCursor?Math.floor(r):Math.round(r),a=Math.floor((t+this.scrollTop-n.top)/this.lineHeight);return this.session.screenToDocumentPosition(a,Math.max(s,0),i)},e.prototype.textToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),o=this.session.documentToScreenPosition(e,t),i=this.$padding+(this.session.$bidiHandler.isBidiRow(o.row,e)?this.session.$bidiHandler.getPosLeft(o.column):Math.round(o.column*this.characterWidth)),r=o.row*this.lineHeight;return{pageX:n.left+i-this.scrollLeft,pageY:n.top+r-this.scrollTop}},e.prototype.visualizeFocus=function(){i.addCssClass(this.container,"ace_focus")},e.prototype.visualizeBlur=function(){i.removeCssClass(this.container,"ace_focus")},e.prototype.showComposition=function(e){this.$composition=e,e.cssText||(e.cssText=this.textarea.style.cssText),null==e.useTextareaForIME&&(e.useTextareaForIME=this.$useTextareaForIME),this.$useTextareaForIME?(i.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display="none"):e.markerId=this.session.addMarker(e.markerRange,"ace_composition_marker","text")},e.prototype.setCompositionText=function(e){var t=this.session.selection.cursor;this.addToken(e,"composition_placeholder",t.row,t.column),this.$moveTextAreaToCursor()},e.prototype.hideComposition=function(){if(this.$composition){this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),i.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText;var e=this.session.selection.cursor;this.removeExtraToken(e.row,e.column),this.$composition=null,this.$cursorLayer.element.style.display=""}},e.prototype.setGhostText=function(e,t){var n=this.session.selection.cursor,o=t||{row:n.row,column:n.column};this.removeGhostText();var i=e.split("\n");if(this.addToken(i[0],"ghost_text",o.row,o.column),this.$ghostText={text:e,position:{row:o.row,column:o.column}},i.length>1){this.$ghostTextWidget={text:i.slice(1).join("\n"),row:o.row,column:o.column,className:"ace_ghost_text"},this.session.widgetManager.addLineWidget(this.$ghostTextWidget);var r=this.$cursorLayer.getPixelPosition(o,!0),s=this.container.getBoundingClientRect().height,a=i.length*this.lineHeight;if(a1||Math.abs(e.$size.height-o)>1?e.$resizeTimer.delay():e.$resizeTimer.cancel()})),this.$resizeObserver.observe(this.container)}},e}();x.prototype.CHANGE_CURSOR=1,x.prototype.CHANGE_MARKER=2,x.prototype.CHANGE_GUTTER=4,x.prototype.CHANGE_SCROLL=8,x.prototype.CHANGE_LINES=16,x.prototype.CHANGE_TEXT=32,x.prototype.CHANGE_SIZE=64,x.prototype.CHANGE_MARKER_BACK=128,x.prototype.CHANGE_MARKER_FRONT=256,x.prototype.CHANGE_FULL=512,x.prototype.CHANGE_H_SCROLL=1024,x.prototype.$changes=0,x.prototype.$padding=null,x.prototype.$frozen=!1,x.prototype.STEPS=8,o.implement(x.prototype,y),s.defineOptions(x.prototype,"renderer",{useResizeObserver:{set:function(e){!e&&this.$resizeObserver?(this.$resizeObserver.disconnect(),this.$resizeTimer.cancel(),this.$resizeTimer=this.$resizeObserver=null):e&&!this.$resizeObserver&&this.$addResizeObserver()}},animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){"number"==typeof e&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},useSvgGutterIcons:{set:function(e){this.$gutterLayer.$useSvgGutterIcons=e},initialValue:!1},showFoldedAnnotations:{set:function(e){this.$gutterLayer.$showFoldedAnnotations=e},initialValue:!1},fadeFoldWidgets:{set:function(e){i.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightIndentGuides:{set:function(e){1==this.$textLayer.setHighlightIndentGuides(e)?this.$textLayer.$highlightIndentGuide():this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells)},initialValue:!0},highlightGutterLine:{set:function(e){this.$gutterLayer.setHighlightGutterLine(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},hScrollBarAlwaysVisible:{set:function(e){this.$hScrollBarAlwaysVisible&&this.$horizScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){this.$vScrollBarAlwaysVisible&&this.$vScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){"number"==typeof e&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.$minLines<562949953421311||(this.$minLines=0),this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0,this.$scrollPastEnd!=e&&(this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},customScrollbar:{set:function(e){this.$updateCustomScrollbar(e)},initialValue:!1},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0},hasCssTransforms:{},useTextareaForIME:{initialValue:!w.isMobile&&!w.isIE}}),t.VirtualRenderer=x})),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("../lib/net"),r=e("../lib/event_emitter").EventEmitter,s=e("../config");function a(e){if("undefined"==typeof Worker)return{postMessage:function(){},terminate:function(){}};if(s.get("loadWorkerFromBlob")){var t=function(e){var t="importScripts('"+i.qualifyURL(e)+"');";try{return new Blob([t],{type:"application/javascript"})}catch(e){var n=new(window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder);return n.append(t),n.getBlob("application/javascript")}}(e),n=(window.URL||window.webkitURL).createObjectURL(t);return new Worker(n)}return new Worker(e)}var l=function(e){e.postMessage||(e=this.$createWorkerFromOldConfig.apply(this,arguments)),this.$worker=e,this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){o.implement(this,r),this.$createWorkerFromOldConfig=function(t,n,o,i,r){if(e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl),s.get("packaged")||!e.toUrl)i=i||s.moduleUrl(n,"worker");else{var l=this.$normalizePath;i=i||l(e.toUrl("ace/worker/worker.js",null,"_"));var c={};t.forEach((function(t){c[t]=l(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))}))}return this.$worker=a(i),r&&this.send("importScripts",r),this.$worker.postMessage({init:!0,tlns:c,module:n,classname:o}),this.$worker},this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var n=this.callbacks[t.id];n&&(n(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return i.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker.onerror=function(e){e.preventDefault()},this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,n){if(n){var o=this.callbackId++;this.callbacks[o]=n,t.push(o)}this.send(e,t)},this.emit=function(e,t){try{t.data&&t.data.err&&(t.data.err={message:t.data.err.message,stack:t.data.err.stack,code:t.data.err.code}),this.$worker&&this.$worker.postMessage({event:e,data:{data:t.data}})}catch(e){console.error(e.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener,!0)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),"insert"==e.action?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;e&&(this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e}))}}).call(l.prototype),t.UIWorkerClient=function(e,t,n){var o=null,i=!1,a=Object.create(r),c=[],u=new l({messageBuffer:c,terminate:function(){},postMessage:function(e){c.push(e),o&&(i?setTimeout(h):h())}});u.setEmitSync=function(e){i=e};var h=function(){var e=c.shift();e.command?o[e.command].apply(o,e.args):e.event&&a._signal(e.event,e.data)};return a.postMessage=function(e){u.onMessage({data:e})},a.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},a.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},s.loadModule(["worker",t],(function(e){for(o=new e[n](a);c.length;)h()})),u},t.WorkerClient=l,t.createWorker=a})),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],(function(e,t,n){"use strict";var o=e("./range").Range,i=e("./lib/event_emitter").EventEmitter,r=e("./lib/oop"),s=function(){function e(e,t,n,o,i,r){var s=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=i,this.othersClass=r,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate,!0),this.$others=o,this.$onCursorChange=function(){setTimeout((function(){s.onCursorChange()}))},this.$pos=n;var a=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=a.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)}return e.prototype.setup=function(){var e=this,t=this.doc,n=this.session;this.selectionBefore=n.selection.toJSON(),n.selection.inMultiSelectMode&&n.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var i=this.pos;i.$insertRight=!0,i.detach(),i.markerId=n.addMarker(new o(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach((function(n){var o=t.createAnchor(n.row,n.column);o.$insertRight=!0,o.detach(),e.others.push(o)})),n.setUndoSelect(!1)},e.prototype.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach((function(n){n.markerId=e.addMarker(new o(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1)}))}},e.prototype.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,r=t.start.column-this.pos.column;if(this.updateAnchors(e),i&&(this.length+=n),i&&!this.session.$fromUndo)if("insert"===e.action)for(var s=this.others.length-1;s>=0;s--){var a={row:(l=this.others[s]).row,column:l.column+r};this.doc.insertMergedLines(a,e.lines)}else if("remove"===e.action)for(s=this.others.length-1;s>=0;s--){var l;a={row:(l=this.others[s]).row,column:l.column+r},this.doc.remove(new o(a.row,a.column,a.row,a.column-n))}this.$updating=!1,this.updateMarkers()}},e.prototype.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},e.prototype.updateMarkers=function(){if(!this.$updating){var e=this,t=this.session,n=function(n,i){t.removeMarker(n.markerId),n.markerId=t.addMarker(new o(n.row,n.column,n.row,n.column+e.length),i,null,!1)};n(this.pos,this.mainClass);for(var i=this.others.length;i--;)n(this.others[i],this.othersClass)}},e.prototype.onCursorChange=function(e){if(!this.$updating&&this.session){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))}},e.prototype.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.off("change",this.$onUpdate),this.session.selection.off("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},e.prototype.cancel=function(){if(-1!==this.$undoStackDepth){for(var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth,n=0;n1?e.multiSelect.joinSelections():e.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"splitSelectionIntoLines",description:"Split into lines",exec:function(e){e.multiSelect.splitIntoLines()},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(e){e.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(e){e.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],t.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(e){e.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(e){return e&&e.inMultiSelectMode}}];var o=e("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new o(t.multiSelectCommands)})),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],(function(e,t,n){var o=e("./range_list").RangeList,i=e("./range").Range,r=e("./selection").Selection,s=e("./mouse/multi_select_handler").onMouseDown,a=e("./lib/event"),l=e("./lib/lang"),c=e("./commands/multi_select_commands");t.commands=c.defaultCommands.concat(c.multiSelectCommands);var u=new(0,e("./search").Search),h=e("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(h.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(e){if(!this.inMultiSelectMode&&0===this.rangeCount){var n=this.toOrientedRange();if(this.rangeList.add(n),this.rangeList.add(e),2!=this.rangeList.ranges.length)return this.rangeList.removeAll(),t||this.fromOrientedRange(e);this.rangeList.removeAll(),this.rangeList.add(n),this.$onAddRange(n)}e.cursor||(e.cursor=e.end);var o=this.rangeList.add(e);return this.$onAddRange(e),o.length&&this.$onRemoveRange(o),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)}},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length&&this.$onRemoveRange(e)},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){if(this.rangeCount=this.rangeList.ranges.length,1==this.rangeCount&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var o=this.ranges.indexOf(e[n]);this.ranges.splice(o,1)}this._signal("removeRange",{ranges:e}),0===this.rangeCount&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),(t=t||this.ranges[0])&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new o,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){for(var e=this.ranges.length?this.ranges:[this.getRange()],t=[],n=0;n1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var o=this.session.documentToScreenPosition(this.cursor),r=this.session.documentToScreenPosition(this.anchor);this.rectangularRangeBlock(o,r).forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var o=[],r=e.column0;)v--;if(v>0)for(var b=0;o[b].isEmpty();)b++;for(var w=v;w>=b;w--)o[w].isEmpty()&&o.splice(w,1)}return o}}.call(r.prototype);var d=e("./editor").Editor;function p(e){e.$multiselectOnSessionChange||(e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on("changeSession",e.$multiselectOnSessionChange),e.on("mousedown",s),e.commands.addCommands(c.defaultCommands),function(e){if(e.textInput){var t=e.textInput.getElement(),n=!1;a.addListener(t,"keydown",(function(t){var i=18==t.keyCode&&!(t.ctrlKey||t.shiftKey||t.metaKey);e.$blockSelectEnabled&&i?n||(e.renderer.setMouseCursor("crosshair"),n=!0):n&&o()}),e),a.addListener(t,"keyup",o,e),a.addListener(t,"blur",o,e)}function o(t){n&&(e.renderer.setMouseCursor(""),n=!1)}}(e))}(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(e.marker){this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);-1!=t&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(e){for(var t=this.session.$selectionMarkers,n=e.length;n--;){var o=e[n];if(o.marker){this.session.removeMarker(o.marker);var i=t.indexOf(o);-1!=i&&t.splice(i,1)}}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(c.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(e){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(c.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(n.multiSelect){if(t.multiSelectAction)"forEach"==t.multiSelectAction?o=n.forEachSelection(t,e.args):"forEachLine"==t.multiSelectAction?o=n.forEachSelection(t,e.args,!0):"single"==t.multiSelectAction?(n.exitMultiSelectMode(),o=t.exec(n,e.args||{})):o=t.multiSelectAction(n,e.args||{});else{var o=t.exec(n,e.args||{});n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()}return o}},this.forEachSelection=function(e,t,n){if(!this.inVirtualSelectionMode){var o,i=n&&n.keepOrder,s=1==n||n&&n.$byLines,a=this.session,l=this.selection,c=l.rangeList,u=(i?l:c).ranges;if(!u.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var h=l._eventRegistry;l._eventRegistry={};var d=new r(a);this.inVirtualSelectionMode=!0;for(var p=u.length;p--;){if(s)for(;p>0&&u[p].start.row==u[p-1].end.row;)p--;d.fromOrientedRange(u[p]),d.index=p,this.selection=a.selection=d;var g=e.exec?e.exec(this,t||{}):e(this,t||{});o||void 0===g||(o=g),d.toOrientedRange(u[p])}d.detach(),this.selection=a.selection=l,this.inVirtualSelectionMode=!1,l._eventRegistry=h,l.mergeOverlappingRanges(),l.ranges[0]&&l.fromOrientedRange(l.ranges[0]);var m=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),m&&m.from==m.to&&this.renderer.animateScrolling(m.from),o}},this.exitMultiSelectMode=function(){this.inMultiSelectMode&&!this.inVirtualSelectionMode&&this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var t=this.multiSelect.rangeList.ranges,n=[],o=0;os&&(s=n.column),ou?e.insert(o,l.stringRepeat(" ",r-u)):e.remove(new i(o.row,o.column,o.row,o.column-r+u)),t.start.column=t.end.column=s,t.start.row=t.end.row=o.row,t.cursor=t.end})),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}else{var u=this.selection.getRange(),h=u.start.row,d=u.end.row,p=h==d;if(p){var g,m=this.session.getLength();do{g=this.session.getLine(d)}while(/[=:]/.test(g)&&++d0);h<0&&(h=0),d>=m&&(d=m-1)}var f=this.session.removeFullLines(h,d);f=this.$reAlignText(f,p),this.session.insert({row:h,column:0},f.join("\n")+"\n"),p||(u.start.column=0,u.end.column=f[f.length-1].length),this.selection.setRange(u)}},this.$reAlignText=function(e,t){var n,o,i,r=!0,s=!0;return e.map((function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?null==n?(n=t[1].length,o=t[2].length,i=t[3].length,t):(n+o+i!=t[1].length+t[2].length+t[3].length&&(s=!1),n!=t[1].length&&(r=!1),n>t[1].length&&(n=t[1].length),ot[3].length&&(i=t[3].length),t):[e]})).map(t?c:r?s?function(e){return e[2]?a(n+o-e[2].length)+e[2]+a(i)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}:c:function(e){return e[2]?a(n)+e[2]+a(i)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]});function a(e){return l.stringRepeat(" ",e)}function c(e){return e[2]?a(n)+e[2]+a(o-e[2].length+i)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}}}).call(d.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var n=e.oldSession;n&&(n.multiSelect.off("addRange",this.$onAddRange),n.multiSelect.off("removeRange",this.$onRemoveRange),n.multiSelect.off("multiSelect",this.$onMultiSelect),n.multiSelect.off("singleSelect",this.$onSingleSelect),n.multiSelect.lead.off("change",this.$checkMultiselectChange),n.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=p,e("./config").defineOptions(d.prototype,"editor",{enableMultiselect:{set:function(e){p(this),e?this.on("mousedown",s):this.off("mousedown",s)},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})})),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../../range").Range,i=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);return this.foldingStartMarker.test(o)?"start":"markbeginend"==t&&this.foldingStopMarker&&this.foldingStopMarker.test(o)?"end":""},this.getFoldWidgetRange=function(e,t,n){return null},this.indentationBlock=function(e,t,n){var i=/\S/,r=e.getLine(t),s=r.search(i);if(-1!=s){for(var a=n||r.length,l=e.getLength(),c=t,u=t;++tc){var p=e.getLine(u).length;return new o(c,a,u,p)}}},this.openingBracketBlock=function(e,t,n,i,r){var s={row:n,column:i+1},a=e.$findClosingBracket(t,s,r);if(a){var l=e.foldWidgets[a.row];return null==l&&(l=e.getFoldWidget(a.row)),"start"==l&&a.row>s.row&&(a.row--,a.column=e.getLine(a.row).length),o.fromPoints(s,a)}},this.closingBracketBlock=function(e,t,n,i,r){var s={row:n,column:i},a=e.$findOpeningBracket(t,s);if(a)return a.column++,s.column--,o.fromPoints(a,s)}}).call(i.prototype)})),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range","ace/config"],(function(e,t,n){"use strict";var o=e("../line_widgets").LineWidgets,i=e("../lib/dom"),r=e("../range").Range,s=e("../config").nls;t.showErrorMarker=function(e,t){var n=e.session;n.widgetManager||(n.widgetManager=new o(n),n.widgetManager.attach(e));var a=e.getCursorPosition(),l=a.row,c=n.widgetManager.getWidgetsAtRow(l).filter((function(e){return"errorMarker"==e.type}))[0];c?c.destroy():l-=t;var u,h=function(e,t,n){var o=e.getAnnotations().sort(r.comparePoints);if(o.length){var i=function(e,t,n){for(var o=0,i=e.length-1;o<=i;){var r=o+i>>1,s=n(t,e[r]);if(s>0)o=r+1;else{if(!(s<0))return r;i=r-1}}return-(o+1)}(o,{row:t,column:-1},r.comparePoints);i<0&&(i=-i-1),i>=o.length?i=n>0?0:o.length-1:0===i&&n<0&&(i=o.length-1);var s=o[i];if(s&&n){if(s.row===t){do{s=o[i+=n]}while(s&&s.row===t);if(!s)return o.slice()}var a=[];t=s.row;do{a[n<0?"unshift":"push"](s),s=o[i+=n]}while(s&&s.row==t);return a.length&&a}}}(n,l,t);if(h){var d=h[0];a.column=(d.pos&&"number"!=typeof d.column?d.pos.sc:d.column)||0,a.row=d.row,u=e.renderer.$gutterLayer.$annotations[a.row]}else{if(c)return;u={text:[s("Looks good!")],className:"ace_ok"}}e.session.unfold(a.row),e.selection.moveToPosition(a);var p={row:a.row,fixedWidth:!0,coverGutter:!0,el:i.createElement("div"),type:"errorMarker"},g=p.el.appendChild(i.createElement("div")),m=p.el.appendChild(i.createElement("div"));m.className="error_widget_arrow "+u.className;var f=e.renderer.$cursorLayer.getPixelPosition(a).left;m.style.left=f+e.renderer.gutterWidth-5+"px",p.el.className="error_widget_wrapper",g.className="error_widget "+u.className,g.innerHTML=u.text.join("
    "),g.appendChild(i.createElement("div"));var y=function(e,t,n){if(0===t&&("esc"===n||"return"===n))return p.destroy(),{command:"null"}};p.destroy=function(){e.$mouseHandler.isMousePressed||(e.keyBinding.removeKeyboardHandler(y),n.widgetManager.removeLineWidget(p),e.off("changeSelection",p.destroy),e.off("changeSession",p.destroy),e.off("mouseup",p.destroy),e.off("change",p.destroy))},e.keyBinding.addKeyboardHandler(y),e.on("changeSelection",p.destroy),e.on("changeSession",p.destroy),e.on("mouseup",p.destroy),e.on("change",p.destroy),e.session.widgetManager.addLineWidget(p),p.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:p.el.offsetHeight})},i.importCssString("\n .error_widget_wrapper {\n background: inherit;\n color: inherit;\n border:none\n }\n .error_widget {\n border-top: solid 2px;\n border-bottom: solid 2px;\n margin: 5px 0;\n padding: 10px 40px;\n white-space: pre-wrap;\n }\n .error_widget.ace_error, .error_widget_arrow.ace_error{\n border-color: #ff5a5a\n }\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\n border-color: #F1D817\n }\n .error_widget.ace_info, .error_widget_arrow.ace_info{\n border-color: #5a5a5a\n }\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\n border-color: #5aaa5a\n }\n .error_widget_arrow {\n position: absolute;\n border: solid 5px;\n border-top-color: transparent!important;\n border-right-color: transparent!important;\n border-left-color: transparent!important;\n top: -5px;\n }\n","error_marker.css",!1)})),ace.define("ace/ace",["require","exports","module","ace/lib/dom","ace/range","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config","ace/loader_build"],(function(e,t,n){"use strict";e("./loader_build")(t);var o=e("./lib/dom"),i=e("./range").Range,r=e("./editor").Editor,s=e("./edit_session").EditSession,a=e("./undomanager").UndoManager,l=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.edit=function(e,n){if("string"==typeof e){var i=e;if(!(e=document.getElementById(i)))throw new Error("ace.edit can't find div #"+i)}if(e&&e.env&&e.env.editor instanceof r)return e.env.editor;var s="";if(e&&/input|textarea/i.test(e.tagName)){var a=e;s=a.value,e=o.createElement("pre"),a.parentNode.replaceChild(e,a)}else e&&(s=e.textContent,e.innerHTML="");var c=t.createEditSession(s),u=new r(new l(e),c,n),h={document:c,editor:u,onResize:u.resize.bind(u,null)};return a&&(h.textarea=a),u.on("destroy",(function(){h.editor.container.env=null})),u.container.env=u.env=h,u},t.createEditSession=function(e,t){var n=new s(e,t);return n.setUndoManager(new a),n},t.Range=i,t.Editor=r,t.EditSession=s,t.UndoManager=a,t.VirtualRenderer=l,t.version=t.config.version})),ace.require(["ace/ace"],(function(t){t&&(t.config.init(!0),t.define=ace.define);var n=function(){return this}();for(var o in n||"undefined"==typeof window||(n=window),n||"undefined"==typeof self||(n=self),n.ace||(n.ace=t),t)t.hasOwnProperty(o)&&(n.ace[o]=t[o]);n.ace.default=n.ace,e&&(e.exports=n.ace)}))},134:(e,t,n)=>{e=n.nmd(e),ace.define("ace/ext/beautify",["require","exports","module","ace/token_iterator"],(function(e,t,n){"use strict";var o=e("../token_iterator").TokenIterator;function i(e,t){return e.type.lastIndexOf(t+".xml")>-1}t.singletonTags=["area","base","br","col","command","embed","hr","html","img","input","keygen","link","meta","param","source","track","wbr"],t.blockTags=["article","aside","blockquote","body","div","dl","fieldset","footer","form","head","header","html","nav","ol","p","script","section","style","table","tbody","tfoot","thead","ul"],t.formatOptions={lineBreaksAfterCommasInCurlyBlock:!0},t.beautify=function(e){for(var n,r,s,a=new o(e,0,0),l=a.getCurrentToken(),c=e.getTabString(),u=t.singletonTags,h=t.blockTags,d=t.formatOptions||{},p=!1,g=!1,m=!1,f="",y="",v="",b=0,w=0,x=0,k=0,C=0,$=0,S=0,E=0,O=0,T=!1,A=!1,_=!1,L=!1,M={0:0},R=[],N=!1,I=function(){n&&n.value&&"string.regexp"!==n.type&&(n.value=n.value.replace(/^\s*/,""))},P=function(){for(var e=f.length-1;0!=e&&" "===f[e];)e-=1;f=f.slice(0,e+1)},D=function(){f=f.trimRight(),p=!1};null!==l;){if(E=a.getCurrentTokenRow(),a.$rowTokens,n=a.stepForward(),void 0!==l){if(y=l.value,C=0,_="style"===v||"ace/mode/css"===e.$modeId,i(l,"tag-open")?(A=!0,n&&(L=-1!==h.indexOf(n.value)),"0;O--)f+="\n";p=!0,i(l,"comment")||l.type.match(/^(comment|string)$/)||(y=y.trimLeft())}if(y){if("keyword"===l.type&&y.match(/^(if|else|elseif|for|foreach|while|switch)$/)?(R[b]=y,I(),m=!0,y.match(/^(else|elseif)$/)&&f.match(/\}[\s]*$/)&&(D(),g=!0)):"paren.lparen"===l.type?(I(),"{"===y.substr(-1)&&(m=!0,T=!1,A||(O=1)),"{"===y.substr(0,1)&&(g=!0,"["!==f.substr(-1)&&"["===f.trimRight().substr(-1)?(D(),g=!1):")"===f.trimRight().substr(-1)?D():P())):"paren.rparen"===l.type?(C=1,"}"===y.substr(0,1)&&("case"===R[b-1]&&C++,"{"===f.trimRight().substr(-1)?D():(g=!0,_&&(O+=2))),"]"===y.substr(0,1)&&"}"!==f.substr(-1)&&"}"===f.trimRight().substr(-1)&&(g=!1,k++,D()),")"===y.substr(0,1)&&"("!==f.substr(-1)&&"("===f.trimRight().substr(-1)&&(g=!1,k++,D()),P()):"keyword.operator"!==l.type&&"keyword"!==l.type||!y.match(/^(=|==|===|!=|!==|&&|\|\||and|or|xor|\+=|.=|>|>=|<|<=|=>)$/)?"punctuation.operator"===l.type&&";"===y?(D(),I(),m=!0,_&&O++):"punctuation.operator"===l.type&&y.match(/^(:|,)$/)?(D(),I(),y.match(/^(,)$/)&&S>0&&0===$&&d.lineBreaksAfterCommasInCurlyBlock?O++:(m=!0,p=!1)):"support.php_tag"!==l.type||"?>"!==y||p?i(l,"attribute-name")&&f.substr(-1).match(/^\s$/)?g=!0:i(l,"attribute-equals")?(P(),I()):i(l,"tag-close")?(P(),"/>"===y&&(g=!0)):"keyword"===l.type&&y.match(/^(case|default)$/)&&N&&(C=1):(D(),g=!0):(D(),I(),g=!0,m=!0),p&&(!l.type.match(/^(comment)$/)||y.substr(0,1).match(/^[/#]$/))&&(!l.type.match(/^(string)$/)||y.substr(0,1).match(/^['"@]$/))){if(k=x,b>w)for(k++,s=b;s>w;s--)M[s]=k;else b"===y)&&(O=L&&n&&""===y&&b--),i(l,"tag-name")&&(v=y),r=E}}l=n}f=f.trim(),e.doc.setValue(f)},t.commands=[{name:"beautify",description:"Format selection (Beautify)",exec:function(e){t.beautify(e.session)},bindKey:"Ctrl-Shift-B"}]})),ace.require(["ace/ext/beautify"],(function(t){e&&(e.exports=t)}))},604:(e,t,n)=>{e=n.nmd(e),ace.define("ace/ext/searchbox-css",["require","exports","module"],(function(e,t,n){n.exports='\n\n/* ------------------------------------------------------------------------------------------\n * Editor Search Form\n * --------------------------------------------------------------------------------------- */\n.ace_search {\n background-color: #ddd;\n color: #666;\n border: 1px solid #cbcbcb;\n border-top: 0 none;\n overflow: hidden;\n margin: 0;\n padding: 4px 6px 0 4px;\n position: absolute;\n top: 0;\n z-index: 99;\n white-space: normal;\n}\n.ace_search.left {\n border-left: 0 none;\n border-radius: 0px 0px 5px 0px;\n left: 0;\n}\n.ace_search.right {\n border-radius: 0px 0px 0px 5px;\n border-right: 0 none;\n right: 0;\n}\n\n.ace_search_form, .ace_replace_form {\n margin: 0 20px 4px 0;\n overflow: hidden;\n line-height: 1.9;\n}\n.ace_replace_form {\n margin-right: 0;\n}\n.ace_search_form.ace_nomatch {\n outline: 1px solid red;\n}\n\n.ace_search_field {\n border-radius: 3px 0 0 3px;\n background-color: white;\n color: black;\n border: 1px solid #cbcbcb;\n border-right: 0 none;\n outline: 0;\n padding: 0;\n font-size: inherit;\n margin: 0;\n line-height: inherit;\n padding: 0 6px;\n min-width: 17em;\n vertical-align: top;\n min-height: 1.8em;\n box-sizing: content-box;\n}\n.ace_searchbtn {\n border: 1px solid #cbcbcb;\n line-height: inherit;\n display: inline-block;\n padding: 0 6px;\n background: #fff;\n border-right: 0 none;\n border-left: 1px solid #dcdcdc;\n cursor: pointer;\n margin: 0;\n position: relative;\n color: #666;\n}\n.ace_searchbtn:last-child {\n border-radius: 0 3px 3px 0;\n border-right: 1px solid #cbcbcb;\n}\n.ace_searchbtn:disabled {\n background: none;\n cursor: default;\n}\n.ace_searchbtn:hover {\n background-color: #eef1f6;\n}\n.ace_searchbtn.prev, .ace_searchbtn.next {\n padding: 0px 0.7em\n}\n.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\n content: "";\n border: solid 2px #888;\n width: 0.5em;\n height: 0.5em;\n border-width: 2px 0 0 2px;\n display:inline-block;\n transform: rotate(-45deg);\n}\n.ace_searchbtn.next:after {\n border-width: 0 2px 2px 0 ;\n}\n.ace_searchbtn_close {\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\n border-radius: 50%;\n border: 0 none;\n color: #656565;\n cursor: pointer;\n font: 16px/16px Arial;\n padding: 0;\n height: 14px;\n width: 14px;\n top: 9px;\n right: 7px;\n position: absolute;\n}\n.ace_searchbtn_close:hover {\n background-color: #656565;\n background-position: 50% 100%;\n color: white;\n}\n\n.ace_button {\n margin-left: 2px;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -o-user-select: none;\n -ms-user-select: none;\n user-select: none;\n overflow: hidden;\n opacity: 0.7;\n border: 1px solid rgba(100,100,100,0.23);\n padding: 1px;\n box-sizing: border-box!important;\n color: black;\n}\n\n.ace_button:hover {\n background-color: #eee;\n opacity:1;\n}\n.ace_button:active {\n background-color: #ddd;\n}\n\n.ace_button.checked {\n border-color: #3399ff;\n opacity:1;\n}\n\n.ace_search_options{\n margin-bottom: 3px;\n text-align: right;\n -webkit-user-select: none;\n -moz-user-select: none;\n -o-user-select: none;\n -ms-user-select: none;\n user-select: none;\n clear: both;\n}\n\n.ace_search_counter {\n float: left;\n font-family: arial;\n padding: 0 8px;\n}'})),ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/ext/searchbox-css","ace/keyboard/hash_handler","ace/lib/keys","ace/config"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=e("../lib/lang"),r=e("../lib/event"),s=e("./searchbox-css"),a=e("../keyboard/hash_handler").HashHandler,l=e("../lib/keys"),c=e("../config").nls;o.importCssString(s,"ace_searchbox",!1);var u=function(){function e(e,t,n){var i=o.createElement("div");o.buildDom(["div",{class:"ace_search right"},["span",{action:"hide",class:"ace_searchbtn_close"}],["div",{class:"ace_search_form"},["input",{class:"ace_search_field",placeholder:c("Search for"),spellcheck:"false"}],["span",{action:"findPrev",class:"ace_searchbtn prev"},"​"],["span",{action:"findNext",class:"ace_searchbtn next"},"​"],["span",{action:"findAll",class:"ace_searchbtn",title:"Alt-Enter"},c("All")]],["div",{class:"ace_replace_form"},["input",{class:"ace_search_field",placeholder:c("Replace with"),spellcheck:"false"}],["span",{action:"replaceAndFindNext",class:"ace_searchbtn"},c("Replace")],["span",{action:"replaceAll",class:"ace_searchbtn"},c("All")]],["div",{class:"ace_search_options"},["span",{action:"toggleReplace",class:"ace_button",title:c("Toggle Replace mode"),style:"float:left;margin-top:-2px;padding:0 5px;"},"+"],["span",{class:"ace_search_counter"}],["span",{action:"toggleRegexpMode",class:"ace_button",title:c("RegExp Search")},".*"],["span",{action:"toggleCaseSensitive",class:"ace_button",title:c("CaseSensitive Search")},"Aa"],["span",{action:"toggleWholeWords",class:"ace_button",title:c("Whole Word Search")},"\\b"],["span",{action:"searchInSelection",class:"ace_button",title:c("Search In Selection")},"S"]]],i),this.element=i.firstChild,this.setSession=this.setSession.bind(this),this.$init(),this.setEditor(e),o.importCssString(s,"ace_searchbox",e.container)}return e.prototype.setEditor=function(e){e.searchBox=this,e.renderer.scroller.appendChild(this.element),this.editor=e},e.prototype.setSession=function(e){this.searchRange=null,this.$syncOptions(!0)},e.prototype.$initElements=function(e){this.searchBox=e.querySelector(".ace_search_form"),this.replaceBox=e.querySelector(".ace_replace_form"),this.searchOption=e.querySelector("[action=searchInSelection]"),this.replaceOption=e.querySelector("[action=toggleReplace]"),this.regExpOption=e.querySelector("[action=toggleRegexpMode]"),this.caseSensitiveOption=e.querySelector("[action=toggleCaseSensitive]"),this.wholeWordOption=e.querySelector("[action=toggleWholeWords]"),this.searchInput=this.searchBox.querySelector(".ace_search_field"),this.replaceInput=this.replaceBox.querySelector(".ace_search_field"),this.searchCounter=e.querySelector(".ace_search_counter")},e.prototype.$init=function(){var e=this.element;this.$initElements(e);var t=this;r.addListener(e,"mousedown",(function(e){setTimeout((function(){t.activeInput.focus()}),0),r.stopPropagation(e)})),r.addListener(e,"click",(function(e){var n=(e.target||e.srcElement).getAttribute("action");n&&t[n]?t[n]():t.$searchBarKb.commands[n]&&t.$searchBarKb.commands[n].exec(t),r.stopPropagation(e)})),r.addCommandKeyListener(e,(function(e,n,o){var i=l.keyCodeToString(o),s=t.$searchBarKb.findKeyCommand(n,i);s&&s.exec&&(s.exec(t),r.stopEvent(e))})),this.$onChange=i.delayedCall((function(){t.find(!1,!1)})),r.addListener(this.searchInput,"input",(function(){t.$onChange.schedule(20)})),r.addListener(this.searchInput,"focus",(function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()})),r.addListener(this.replaceInput,"focus",(function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()}))},e.prototype.setSearchRange=function(e){this.searchRange=e,e?this.searchRangeMarker=this.editor.session.addMarker(e,"ace_active-line"):this.searchRangeMarker&&(this.editor.session.removeMarker(this.searchRangeMarker),this.searchRangeMarker=null)},e.prototype.$syncOptions=function(e){o.setCssClass(this.replaceOption,"checked",this.searchRange),o.setCssClass(this.searchOption,"checked",this.searchOption.checked),this.replaceOption.textContent=this.replaceOption.checked?"-":"+",o.setCssClass(this.regExpOption,"checked",this.regExpOption.checked),o.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked),o.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked);var t=this.editor.getReadOnly();this.replaceOption.style.display=t?"none":"",this.replaceBox.style.display=this.replaceOption.checked&&!t?"":"none",this.find(!1,!1,e)},e.prototype.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},e.prototype.find=function(e,t,n){var i=!this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:n,range:this.searchRange})&&this.searchInput.value;o.setCssClass(this.searchBox,"ace_nomatch",i),this.editor._emit("findSearchBox",{match:!i}),this.highlight(),this.updateCounter()},e.prototype.updateCounter=function(){var e=this.editor,t=e.$search.$options.re,n=t.unicode,o=0,r=0;if(t){var s=this.searchRange?e.session.getTextRange(this.searchRange):e.getValue(),a=e.session.doc.positionToIndex(e.selection.anchor);this.searchRange&&(a-=e.session.doc.positionToIndex(this.searchRange.start));for(var l,u=t.lastIndex=0;(l=t.exec(s))&&(o++,(u=l.index)<=a&&r++,!(o>999))&&(l[0]||(t.lastIndex=u+=i.skipEmptyMatch(s,u,n),!(u>=s.length))););}this.searchCounter.textContent=c("$0 of $1",[r,o>999?"999+":o])},e.prototype.findNext=function(){this.find(!0,!1)},e.prototype.findPrev=function(){this.find(!0,!0)},e.prototype.findAll=function(){var e=!this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked})&&this.searchInput.value;o.setCssClass(this.searchBox,"ace_nomatch",e),this.editor._emit("findSearchBox",{match:!e}),this.highlight(),this.hide()},e.prototype.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},e.prototype.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},e.prototype.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},e.prototype.hide=function(){this.active=!1,this.setSearchRange(null),this.editor.off("changeSession",this.setSession),this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},e.prototype.show=function(e,t){this.active=!0,this.editor.on("changeSession",this.setSession),this.element.style.display="",this.replaceOption.checked=t,e&&(this.searchInput.value=e),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb),this.$syncOptions(!0)},e.prototype.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput},e}(),h=new a;h.bindKeys({"Ctrl-f|Command-f":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?"":"none",e.replaceOption.checked=!1,e.$syncOptions(),e.searchInput.focus()},"Ctrl-H|Command-Option-F":function(e){e.editor.getReadOnly()||(e.replaceOption.checked=!0,e.$syncOptions(),e.replaceInput.focus())},"Ctrl-G|Command-G":function(e){e.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(e){e.findPrev()},esc:function(e){setTimeout((function(){e.hide()}))},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},"Shift-Return":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},"Alt-Return":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),h.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}},{name:"toggleReplace",exec:function(e){e.replaceOption.checked=!e.replaceOption.checked,e.$syncOptions()}},{name:"searchInSelection",exec:function(e){e.searchOption.checked=!e.searchRange,e.setSearchRange(e.searchOption.checked&&e.editor.getSelectionRange()),e.$syncOptions()}}]);var d=new a([{bindKey:"Esc",name:"closeSearchBar",exec:function(e){e.searchBox.hide()}}]);u.prototype.$searchBarKb=h,u.prototype.$closeSearchBarKb=d,t.SearchBox=u,t.Search=function(e,t){(e.searchBox||new u(e)).show(e.session.getTextRange(),t)}})),ace.require(["ace/ext/searchbox"],(function(t){e&&(e.exports=t)}))},549:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=(e("../lib/lang"),e("./text_highlight_rules").TextHighlightRules),r=t.supportType="align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index",s=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|flex-end|flex-start|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom",l=t.supportConstantColor="aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen",c=t.supportConstantFonts="arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",u=t.numRe="\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",d=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",p=function(){var e=this.createKeywordMapper({"support.function":s,"support.constant":a,"support.type":r,"support.constant.color":l,"support.constant.fonts":c},"text",!0);this.$rules={start:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"paren.rparen",regex:"\\}"},{token:"string",regex:"@(?!viewport)",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"keyword",regex:"%"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant.numeric",regex:u},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"start"},{token:"paren.rparen",regex:"\\}",next:"start"},{token:"string",regex:";",next:"start"},{token:"keyword",regex:"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)"}],comments:[{token:"comment",regex:"\\/\\*",push:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}]}],ruleset:[{regex:"-(webkit|ms|moz|o)-",token:"text"},{token:"punctuation.operator",regex:"[:;]"},{token:"paren.rparen",regex:"\\}",next:"start"},{include:["strings","url","comments"]},{token:["constant.numeric","keyword"],regex:"("+u+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"},{token:"constant.numeric",regex:u},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:d},{include:"url"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}],url:[{token:"support.function",regex:"(?:url(:?-prefix)?|domain|regexp)\\(",push:[{token:"support.function",regex:"\\)",next:"pop"},{defaultToken:"string"}]}],strings:[{token:"string.start",regex:"'",push:[{token:"string.end",regex:"'|$",next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]},{token:"string.start",regex:'"',push:[{token:"string.end",regex:'"|$',next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]}],escapes:[{token:"constant.language.escape",regex:/\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/}]},this.normalizeRules()};o.inherits(p,i),t.CssHighlightRules=p})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/css_completions",["require","exports","module"],(function(e,t,n){"use strict";var o={background:{"#$0":1},"background-color":{"#$0":1,transparent:1,fixed:1},"background-image":{"url('/$0')":1},"background-repeat":{repeat:1,"repeat-x":1,"repeat-y":1,"no-repeat":1,inherit:1},"background-position":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},"background-attachment":{scroll:1,fixed:1},"background-size":{cover:1,contain:1},"background-clip":{"border-box":1,"padding-box":1,"content-box":1},"background-origin":{"border-box":1,"padding-box":1,"content-box":1},border:{"solid $0":1,"dashed $0":1,"dotted $0":1,"#$0":1},"border-color":{"#$0":1},"border-style":{solid:2,dashed:2,dotted:2,double:2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},"border-collapse":{collapse:1,separate:1},bottom:{px:1,em:1,"%":1},clear:{left:1,right:1,both:1,none:1},color:{"#$0":1,"rgb(#$00,0,0)":1},cursor:{default:1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,"n-resize":1,"ne-resize":1,"e-resize":1,"se-resize":1,"s-resize":1,"sw-resize":1,"w-resize":1,"nw-resize":1},display:{none:1,block:1,inline:1,"inline-block":1,"table-cell":1},"empty-cells":{show:1,hide:1},float:{left:1,right:1,none:1},"font-family":{Arial:2,"Comic Sans MS":2,Consolas:2,"Courier New":2,Courier:2,Georgia:2,Monospace:2,"Sans-Serif":2,"Segoe UI":2,Tahoma:2,"Times New Roman":2,"Trebuchet MS":2,Verdana:1},"font-size":{px:1,em:1,"%":1},"font-weight":{bold:1,normal:1},"font-style":{italic:1,normal:1},"font-variant":{normal:1,"small-caps":1},height:{px:1,em:1,"%":1},left:{px:1,em:1,"%":1},"letter-spacing":{normal:1},"line-height":{normal:1},"list-style-type":{none:1,disc:1,circle:1,square:1,decimal:1,"decimal-leading-zero":1,"lower-roman":1,"upper-roman":1,"lower-greek":1,"lower-latin":1,"upper-latin":1,georgian:1,"lower-alpha":1,"upper-alpha":1},margin:{px:1,em:1,"%":1},"margin-right":{px:1,em:1,"%":1},"margin-left":{px:1,em:1,"%":1},"margin-top":{px:1,em:1,"%":1},"margin-bottom":{px:1,em:1,"%":1},"max-height":{px:1,em:1,"%":1},"max-width":{px:1,em:1,"%":1},"min-height":{px:1,em:1,"%":1},"min-width":{px:1,em:1,"%":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},"overflow-x":{hidden:1,visible:1,auto:1,scroll:1},"overflow-y":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,"%":1},"padding-top":{px:1,em:1,"%":1},"padding-right":{px:1,em:1,"%":1},"padding-bottom":{px:1,em:1,"%":1},"padding-left":{px:1,em:1,"%":1},"page-break-after":{auto:1,always:1,avoid:1,left:1,right:1},"page-break-before":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,static:1},right:{px:1,em:1,"%":1},"table-layout":{fixed:1,auto:1},"text-decoration":{none:1,underline:1,"line-through":1,blink:1},"text-align":{left:1,right:1,center:1,justify:1},"text-transform":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,"%":1},"vertical-align":{top:1,bottom:1},visibility:{hidden:1,visible:1},"white-space":{nowrap:1,normal:1,pre:1,"pre-line":1,"pre-wrap":1},width:{px:1,em:1,"%":1},"word-spacing":{normal:1},filter:{"alpha(opacity=$0100)":1},"text-shadow":{"$02px 2px 2px #777":1},"text-overflow":{"ellipsis-word":1,clip:1,ellipsis:1},"-moz-border-radius":1,"-moz-border-radius-topright":1,"-moz-border-radius-bottomright":1,"-moz-border-radius-topleft":1,"-moz-border-radius-bottomleft":1,"-webkit-border-radius":1,"-webkit-border-top-right-radius":1,"-webkit-border-top-left-radius":1,"-webkit-border-bottom-right-radius":1,"-webkit-border-bottom-left-radius":1,"-moz-box-shadow":1,"-webkit-box-shadow":1,transform:{"rotate($00deg)":1,"skew($00deg)":1},"-moz-transform":{"rotate($00deg)":1,"skew($00deg)":1},"-webkit-transform":{"rotate($00deg)":1,"skew($00deg)":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement("c").style;for(var t in e)if("string"==typeof e[t]){var n=t.replace(/[A-Z]/g,(function(e){return"-"+e.toLowerCase()}));o.hasOwnProperty(n)||(o[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,o){if(this.completionsDefined||this.defineCompletions(),"ruleset"===e||"ace/mode/scss"==t.$mode.$id){var i=t.getLine(n.row).substr(0,n.column),r=/\([^)]*$/.test(i);return r&&(i=i.substr(i.lastIndexOf("(")+1)),/:[^;]+$/.test(i)?(/([\w\-]+):[^:]*$/.test(i),this.getPropertyValueCompletions(e,t,n,o)):this.getPropertyCompletions(e,t,n,o,r)}return[]},this.getPropertyCompletions=function(e,t,n,i,r){return r=r||!1,Object.keys(o).map((function(e){return{caption:e,snippet:e+": $0"+(r?"":";"),meta:"property",score:1e6}}))},this.getPropertyValueCompletions=function(e,t,n,i){var r=t.getLine(n.row).substr(0,n.column),s=(/([\w\-]+):[^:]*$/.exec(r)||{})[1];if(!s)return[];var a=[];return s in o&&"object"==typeof o[s]&&(a=Object.keys(o[s])),a.map((function(e){return{caption:e,snippet:e,meta:"property value",score:1e6}}))}}).call(i.prototype),t.CssCompletions=i})),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=(e("../behaviour").Behaviour,e("./cstyle").CstyleBehaviour),r=e("../../token_iterator").TokenIterator,s=function(){this.inherit(i),this.add("colon","insertion",(function(e,t,n,o,i){if(":"===i&&n.selection.isEmpty()){var s=n.getCursorPosition(),a=new r(o,s.row,s.column),l=a.getCurrentToken();if(l&&l.value.match(/\s+/)&&(l=a.stepBackward()),l&&"support.type"===l.type){var c=o.doc.getLine(s.row);if(":"===c.substring(s.column,s.column+1))return{text:"",selection:[1,1]};if(/^(\s+[^;]|\s*$)/.test(c.substring(s.column)))return{text:":;",selection:[1,1]}}}})),this.add("colon","deletion",(function(e,t,n,o,i){var s=o.doc.getTextRange(i);if(!i.isMultiLine()&&":"===s){var a=n.getCursorPosition(),l=new r(o,a.row,a.column),c=l.getCurrentToken();if(c&&c.value.match(/\s+/)&&(c=l.stepBackward()),c&&"support.type"===c.type&&";"===o.doc.getLine(i.start.row).substring(i.end.column,i.end.column+1))return i.end.column++,i}})),this.add("semicolon","insertion",(function(e,t,n,o,i){if(";"===i&&n.selection.isEmpty()){var r=n.getCursorPosition();if(";"===o.doc.getLine(r.row).substring(r.column,r.column+1))return{text:"",selection:[1,1]}}})),this.add("!important","insertion",(function(e,t,n,o,i){if("!"===i&&n.selection.isEmpty()){var r=n.getCursorPosition(),s=o.doc.getLine(r.row);if(/^\s*(;|}|$)/.test(s.substring(r.column)))return{text:"!important",selection:[10,10]}}}))};o.inherits(s,i),t.CssBehaviour=s})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./css_highlight_rules").CssHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../worker/worker_client").WorkerClient,l=e("./css_completions").CssCompletions,c=e("./behaviour/css").CssBehaviour,u=e("./folding/cstyle").FoldMode,h=function(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=new c,this.$completer=new l,this.foldingRules=new u};o.inherits(h,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;return i.length&&"comment"==i[i.length-1].type||t.match(/^.*\{\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,o){return this.$completer.getCompletions(e,t,n,o)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/css",this.snippetFileId="ace/snippets/css"}.call(h.prototype),t.Mode=h})),ace.require(["ace/mode/css"],(function(t){e&&(e.exports=t)}))},576:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},r.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};o.inherits(r,i),r.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},r.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},r.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=r})),ace.define("ace/mode/golang_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],(function(e,t,n){var o=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,r=e("./text_highlight_rules").TextHighlightRules,s=function(){var e=this.createKeywordMapper({keyword:"else|break|case|return|goto|if|const|select|continue|struct|default|switch|for|range|func|import|package|chan|defer|fallthrough|go|interface|map|range|select|type|var","constant.language":"nil|true|false|iota","support.function":"new|close|cap|copy|panic|panicln|print|println|len|make|delete|real|recover|imag|append","support.type":"string|uint8|uint16|uint32|uint64|int8|int16|int32|int64|float32|float64|complex64|complex128|byte|rune|uint|int|uintptr|bool|error"},""),t="\\\\(?:[0-7]{3}|x\\h{2}|u{4}|U\\h{6}|[abfnrtv'\"\\\\])".replace(/\\h/g,"[a-fA-F\\d]");this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},i.getStartRule("doc-start"),{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"string",regex:/"(?:[^"\\]|\\.)*?"/},{token:"string",regex:"`",next:"bqstring"},{token:"constant.numeric",regex:"'(?:[^\\'\ud800-\udbff]|[\ud800-\udbff][\udc00-\udfff]|"+t.replace('"',"")+")'"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:["keyword","text","entity.name.function"],regex:"(func)(\\s+)([a-zA-Z_$][a-zA-Z0-9_$]*)\\b"},{token:function(t){return"("==t[t.length-1]?[{type:e(t.slice(0,-1))||"support.function",value:t.slice(0,-1)},{type:"paren.lparen",value:t.slice(-1)}]:e(t)||"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b\\(?"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^="},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}],bqstring:[{token:"string",regex:"`",next:"start"},{defaultToken:"string"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};o.inherits(s,r),t.GolangHighlightRules=s})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/golang",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/golang_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle"],(function(e,t,n){var o=e("../lib/oop"),i=e("./text").Mode,r=e("./golang_highlight_rules").GolangHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=r,this.$outdent=new s,this.foldingRules=new a,this.$behaviour=this.$defaultBehaviour};o.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),r=i.tokens;return i.state,r.length&&"comment"==r[r.length-1].type||"start"==e&&t.match(/^.*[\{\(\[]\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/golang"}.call(l.prototype),t.Mode=l})),ace.require(["ace/mode/golang"],(function(t){e&&(e.exports=t)}))},395:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/jsdoc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:["comment.doc.tag","comment.doc.text","lparen.doc"],regex:"(@(?:param|member|typedef|property|namespace|var|const|callback))(\\s*)({)",push:[{token:"lparen.doc",regex:"{",push:[{include:"doc-syntax"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"}]},{token:["rparen.doc","text.doc","variable.parameter.doc","lparen.doc","variable.parameter.doc","rparen.doc"],regex:/(})(\s*)(?:([\w=:\/\.]+)|(?:(\[)([\w=:\/\.]+)(\])))/,next:"pop"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"},{include:"doc-syntax"},{defaultToken:"text.doc"}]},{token:["comment.doc.tag","text.doc","lparen.doc"],regex:"(@(?:returns?|yields|type|this|suppress|public|protected|private|package|modifies|implements|external|exception|throws|enum|define|extends))(\\s*)({)",push:[{token:"lparen.doc",regex:"{",push:[{include:"doc-syntax"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"}]},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"},{include:"doc-syntax"},{defaultToken:"text.doc"}]},{token:["comment.doc.tag","text.doc","variable.parameter.doc"],regex:'(@(?:alias|memberof|instance|module|name|lends|namespace|external|this|template|requires|param|implements|function|extends|typedef|mixes|constructor|var|memberof\\!|event|listens|exports|class|constructs|interface|emits|fires|throws|const|callback|borrows|augments))(\\s+)(\\w[\\w#.:/~"\\-]*)?'},{token:["comment.doc.tag","text.doc","variable.parameter.doc"],regex:"(@method)(\\s+)(\\w[\\w.\\(\\)]*)"},{token:"comment.doc.tag",regex:"@access\\s+(?:private|public|protected)"},{token:"comment.doc.tag",regex:"@kind\\s+(?:class|constant|event|external|file|function|member|mixin|module|namespace|typedef)"},{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},r.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}],"doc-syntax":[{token:"operator.doc",regex:/[|:]/},{token:"paren.doc",regex:/[\[\]]/}]},this.normalizeRules()};o.inherits(r,i),r.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},r.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},r.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.JsDocCommentHighlightRules=r})),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/jsdoc_comment_highlight_rules","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./jsdoc_comment_highlight_rules").JsDocCommentHighlightRules,r=e("./text_highlight_rules").TextHighlightRules,s="[a-zA-Z\\$_¡-￿][a-zA-Z\\d\\$_¡-￿]*",a=function(e){var t=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static|constructor","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},"identifier"),n="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)";this.$rules={no_regex:[i.getStartRule("doc-start"),c("no_regex"),{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+s+")(\\.)(prototype)(\\.)("+s+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+s+")(\\.)("+s+")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+s+")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+s+")(\\.)("+s+")(\\s*)(=)(\\s*)(function\\*?)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function\\*?)(\\s+)("+s+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+s+")(\\s*)(:)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:"keyword",regex:"from(?=\\s*('|\"))"},{token:"keyword",regex:"(?:case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void)\\b",next:"start"},{token:"support.constant",regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:s},{token:"punctuation.operator",regex:/[.](?![.])/,next:"property"},{token:"storage.type",regex:/=>/,next:"start"},{token:"keyword.operator",regex:/--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],property:[{token:"text",regex:"\\s+"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+s+")(\\.)("+s+")(\\s*)(=)(\\s*)(function\\*?)(?:(\\s+)(\\w+))?(\\s*)(\\()",next:"function_arguments"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"support.function",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|lter|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward|rEach)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:"support.function.dom",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:"support.constant",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:"identifier",regex:s},{regex:"",token:"empty",next:"no_regex"}],start:[i.getStartRule("doc-start"),c("start"),{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+|^$",next:"start"},{token:"empty",regex:"",next:"no_regex"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/[sxngimy]*",next:"no_regex"},{token:"invalid",regex:/\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/},{token:"constant.language.delimiter",regex:/\|/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp"}],regex_character_class:[{token:"regexp.charclass.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp.charachterclass"}],default_parameter:[{token:"string",regex:"'(?=.)",push:[{token:"string",regex:"'|$",next:"pop"},{include:"qstring"}]},{token:"string",regex:'"(?=.)',push:[{token:"string",regex:'"|$',next:"pop"},{include:"qqstring"}]},{token:"constant.language",regex:"null|Infinity|NaN|undefined"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:"punctuation.operator",regex:",",next:"function_arguments"},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],function_arguments:[c("function_arguments"),{token:"variable.parameter",regex:s},{token:"punctuation.operator",regex:","},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],qqstring:[{token:"constant.language.escape",regex:n},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:n},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},e&&e.noES6||(this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){if(this.next="{"==e?this.nextState:"","{"==e&&n.length)n.unshift("start",t);else if("}"==e&&n.length&&(n.shift(),this.next=n.shift(),-1!=this.next.indexOf("string")||-1!=this.next.indexOf("jsx")))return"paren.quasi.end";return"{"==e?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:n},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]},{token:["variable.parameter","text"],regex:"("+s+")(\\s*)(?=\\=>)"},{token:"paren.lparen",regex:"(\\()(?=.+\\s*=>)",next:"function_arguments"},{token:"variable.language",regex:"(?:(?:(?:Weak)?(?:Set|Map))|Promise)\\b"}),this.$rules.function_arguments.unshift({token:"keyword.operator",regex:"=",next:"default_parameter"},{token:"keyword.operator",regex:"\\.{3}"}),this.$rules.property.unshift({token:"support.function",regex:"(findIndex|repeat|startsWith|endsWith|includes|isSafeInteger|trunc|cbrt|log2|log10|sign|then|catch|finally|resolve|reject|race|any|all|allSettled|keys|entries|isInteger)\\b(?=\\()"},{token:"constant.language",regex:"(?:MAX_SAFE_INTEGER|MIN_SAFE_INTEGER|EPSILON)\\b"}),e&&0==e.jsx||l.call(this)),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};function l(){var e=s.replace("\\d","\\d\\-"),t={onMatch:function(e,t,n){var o="/"==e.charAt(1)?2:1;return 1==o?(t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++):2==o&&t==this.nextState&&(n[1]--,(!n[1]||n[1]<0)&&(n.shift(),n.shift())),[{type:"meta.tag.punctuation."+(1==o?"":"end-")+"tag-open.xml",value:e.slice(0,o)},{type:"meta.tag.tag-name.xml",value:e.substr(o)}]},regex:"",onMatch:function(e,t,n){return t==n[0]&&n.shift(),2==e.length&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||"start",[{type:this.token,value:e}]},nextState:"jsx"},n,c("jsxAttributes"),{token:"entity.other.attribute-name.xml",regex:e},{token:"keyword.operator.attribute-equals.xml",regex:"="},{token:"text.tag-whitespace.xml",regex:"\\s+"},{token:"string.attribute-value.xml",regex:"'",stateName:"jsx_attr_q",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',stateName:"jsx_attr_qq",push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},t],this.$rules.reference=[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}]}function c(e){return[{token:"comment",regex:/\/\*/,next:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]},{token:"comment",regex:"\\/\\/",next:[i.getTagRule(),{token:"comment",regex:"$|^",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]}]}o.inherits(a,r),t.JavaScriptHighlightRules=a})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./javascript_highlight_rules").JavaScriptHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../worker/worker_client").WorkerClient,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,u=function(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=new l,this.foldingRules=new c};o.inherits(u,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$quotes={'"':'"',"'":"'","`":"`"},this.$pairQuotesAfter={"`":/\w/},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),r=i.tokens,s=i.state;if(r.length&&"comment"==r[r.length-1].type)return o;if("start"==e||"no_regex"==e)(a=t.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/))&&(o+=n);else if("doc-start"==e){if("start"==s||"no_regex"==s)return"";var a;(a=t.match(/^\s*(\/?)\*/))&&(a[1]&&(o+=" "),o+="* ")}return o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/javascript",this.snippetFileId="ace/snippets/javascript"}.call(u.prototype),t.Mode=u})),ace.require(["ace/mode/javascript"],(function(t){e&&(e.exports=t)}))},252:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"punctuation.operator",regex:/[,]/},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};o.inherits(r,i),t.JsonHighlightRules=r})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle","ace/worker/worker_client"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./json_highlight_rules").JsonHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./folding/cstyle").FoldMode,l=e("../worker/worker_client").WorkerClient,c=function(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new a};o.inherits(c,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t);return"start"==e&&t.match(/^.*[\{\(\[]\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new l(["ace"],"ace/mode/json_worker","JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/json"}.call(c.prototype),t.Mode=c})),ace.require(["ace/mode/json"],(function(t){e&&(e.exports=t)}))},711:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},r.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};o.inherits(r,i),r.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},r.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},r.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=r})),ace.define("ace/mode/jsx_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],(function(e,t,n){var o=e("../lib/oop"),i=e("../lib/lang"),r=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,a=function(){var e=i.arrayToMap("break|do|instanceof|typeof|case|else|new|var|catch|finally|return|void|continue|for|switch|default|while|function|this|if|throw|delete|in|try|class|extends|super|import|from|into|implements|interface|static|mixin|override|abstract|final|number|int|string|boolean|variant|log|assert".split("|")),t=i.arrayToMap("null|true|false|NaN|Infinity|__FILE__|__LINE__|undefined".split("|")),n=i.arrayToMap("debugger|with|const|export|let|private|public|yield|protected|extern|native|as|operator|__fake__|__readonly__".split("|")),o="[a-zA-Z_][a-zA-Z0-9_]*\\b";this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},r.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:["storage.type","text","entity.name.function"],regex:"(function)(\\s+)("+o+")"},{token:function(o){return"this"==o?"variable.language":"function"==o?"storage.type":e.hasOwnProperty(o)||n.hasOwnProperty(o)?"keyword":t.hasOwnProperty(o)?"constant.language":/^_?[A-Z][a-zA-Z0-9_]*$/.test(o)?"language.support.class":"identifier"},regex:o},{token:"keyword.operator",regex:"!|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({<]"},{token:"paren.rparen",regex:"[\\])}>]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]},this.embedRules(r,"doc-",[r.getEndRule("start")])};o.inherits(a,s),t.JsxHighlightRules=a})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/jsx",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/jsx_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./jsx_highlight_rules").JsxHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./folding/cstyle").FoldMode;function l(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new a}o.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;return i.length&&"comment"==i[i.length-1].type||"start"==e&&t.match(/^.*[\{\(\[]\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/jsx"}.call(l.prototype),t.Mode=l})),ace.require(["ace/mode/jsx"],(function(t){e&&(e.exports=t)}))},7:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/python_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){var e=this.createKeywordMapper({"invalid.deprecated":"debugger","support.function":"abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|binfile|bin|iter|property|tuple|bool|filter|len|range|type|bytearray|float|list|raw_input|unichr|callable|format|locals|reduce|unicode|chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|__import__|complex|hash|min|apply|delattr|help|next|setattr|set|buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern|ascii|breakpoint|bytes","variable.language":"self|cls","constant.language":"True|False|None|NotImplemented|Ellipsis|__debug__",keyword:"and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield|async|await|nonlocal"},"identifier"),t="[uU]?",n="[rR]",o="[fF]",i="(?:[rR][fF]|[fF][rR])",r="(?:(?:(?:[1-9]\\d*)|(?:0))|(?:0[oO]?[0-7]+)|(?:0[xX][\\dA-Fa-f]+)|(?:0[bB][01]+))",s="(?:\\d+)",a="(?:(?:"+s+"?(?:\\.\\d+))|(?:"+s+"\\.))",l="(?:(?:(?:"+a+"|"+s+")(?:[eE][+-]?\\d+))|"+a+")",c="\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\abfnrtv'\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})";this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string",regex:t+'"{3}',next:"qqstring3"},{token:"string",regex:t+'"(?=.)',next:"qqstring"},{token:"string",regex:t+"'{3}",next:"qstring3"},{token:"string",regex:t+"'(?=.)",next:"qstring"},{token:"string",regex:n+'"{3}',next:"rawqqstring3"},{token:"string",regex:n+'"(?=.)',next:"rawqqstring"},{token:"string",regex:n+"'{3}",next:"rawqstring3"},{token:"string",regex:n+"'(?=.)",next:"rawqstring"},{token:"string",regex:o+'"{3}',next:"fqqstring3"},{token:"string",regex:o+'"(?=.)',next:"fqqstring"},{token:"string",regex:o+"'{3}",next:"fqstring3"},{token:"string",regex:o+"'(?=.)",next:"fqstring"},{token:"string",regex:i+'"{3}',next:"rfqqstring3"},{token:"string",regex:i+'"(?=.)',next:"rfqqstring"},{token:"string",regex:i+"'{3}",next:"rfqstring3"},{token:"string",regex:i+"'(?=.)",next:"rfqstring"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|%|@|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"punctuation",regex:",|:|;|\\->|\\+=|\\-=|\\*=|\\/=|\\/\\/=|%=|@=|&=|\\|=|^=|>>=|<<=|\\*\\*="},{token:"paren.lparen",regex:"[\\[\\(\\{]"},{token:"paren.rparen",regex:"[\\]\\)\\}]"},{token:["keyword","text","entity.name.function"],regex:"(def|class)(\\s+)([\\u00BF-\\u1FFF\\u2C00-\\uD7FF\\w]+)"},{token:"text",regex:"\\s+"},{include:"constants"}],qqstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:'"{3}',next:"start"},{defaultToken:"string"}],qstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:"'{3}",next:"start"},{defaultToken:"string"}],qqstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"start"},{defaultToken:"string"}],rawqqstring3:[{token:"string",regex:'"{3}',next:"start"},{defaultToken:"string"}],rawqstring3:[{token:"string",regex:"'{3}",next:"start"},{defaultToken:"string"}],rawqqstring:[{token:"string",regex:"\\\\$",next:"rawqqstring"},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],rawqstring:[{token:"string",regex:"\\\\$",next:"rawqstring"},{token:"string",regex:"'|$",next:"start"},{defaultToken:"string"}],fqqstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:'"{3}',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:"'{3}",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqqstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"\\\\$",next:"fqqstring"},{token:"string",regex:'"|$',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"'|$",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqqstring3:[{token:"string",regex:'"{3}',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqstring3:[{token:"string",regex:"'{3}",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqqstring:[{token:"string",regex:"\\\\$",next:"rfqqstring"},{token:"string",regex:'"|$',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqstring:[{token:"string",regex:"'|$",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqstringParRules:[{token:"paren.lparen",regex:"[\\[\\(]"},{token:"paren.rparen",regex:"[\\]\\)]"},{token:"string",regex:"\\s+"},{token:"string",regex:"'[^']*'"},{token:"string",regex:'"[^"]*"'},{token:"function.support",regex:"(!s|!r|!a)"},{include:"constants"},{token:"paren.rparen",regex:"}",next:"pop"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"}],constants:[{token:"constant.numeric",regex:"(?:"+l+"|\\d+)[jJ]\\b"},{token:"constant.numeric",regex:l},{token:"constant.numeric",regex:r+"[lL]\\b"},{token:"constant.numeric",regex:r+"\\b"},{token:["punctuation","function.support"],regex:"(\\.)([a-zA-Z_]+)\\b"},{token:e,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"}]},this.normalizeRules()};o.inherits(r,i),t.PythonHighlightRules=r})),ace.define("ace/mode/folding/pythonic",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("./fold_mode").FoldMode,r=t.FoldMode=function(e){this.foldingStartMarker=new RegExp("([\\[{])(?:\\s*)$|("+e+")(?:\\s*)(?:#.*)?$")};o.inherits(r,i),function(){this.getFoldWidgetRange=function(e,t,n){var o=e.getLine(n).match(this.foldingStartMarker);if(o)return o[1]?this.openingBracketBlock(e,o[1],n,o.index):o[2]?this.indentationBlock(e,n,o.index+o[2].length):this.indentationBlock(e,n)}}.call(r.prototype)})),ace.define("ace/mode/python",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/python_highlight_rules","ace/mode/folding/pythonic","ace/range"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./python_highlight_rules").PythonHighlightRules,s=e("./folding/pythonic").FoldMode,a=e("../range").Range,l=function(){this.HighlightRules=r,this.foldingRules=new s("\\:"),this.$behaviour=this.$defaultBehaviour};o.inherits(l,i),function(){this.lineCommentStart="#",this.$pairQuotesAfter={"'":/[ruf]/i,'"':/[ruf]/i},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;return i.length&&"comment"==i[i.length-1].type||"start"==e&&t.match(/^.*[\{\(\[:]\s*$/)&&(o+=n),o};var e={pass:1,return:1,raise:1,break:1,continue:1};this.checkOutdent=function(t,n,o){if("\r\n"!==o&&"\r"!==o&&"\n"!==o)return!1;var i=this.getTokenizer().getLineTokens(n.trim(),t).tokens;if(!i)return!1;do{var r=i.pop()}while(r&&("comment"==r.type||"text"==r.type&&r.value.match(/^\s+$/)));return!!r&&"keyword"==r.type&&e[r.value]},this.autoOutdent=function(e,t,n){n+=1;var o=this.$getIndent(t.getLine(n)),i=t.getTabString();o.slice(-i.length)==i&&t.remove(new a(n,o.length-i.length,n,o.length))},this.$id="ace/mode/python",this.snippetFileId="ace/snippets/python"}.call(l.prototype),t.Mode=l})),ace.require(["ace/mode/python"],(function(t){e&&(e.exports=t)}))},202:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(e){var t="[_:a-zA-ZÀ-￿][-_:.a-zA-Z0-9À-￿]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.start.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"",next:"start"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.end.xml",regex:"--\x3e",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:t},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===r&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),o.inherits(r,i),t.XmlHighlightRules=r})),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../behaviour").Behaviour,r=e("../../token_iterator").TokenIterator;function s(e,t){return e&&e.type.lastIndexOf(t+".xml")>-1}e("../../lib/lang");var a=function(){this.add("string_dquotes","insertion",(function(e,t,n,o,i){if('"'==i||"'"==i){var a=i,l=o.doc.getTextRange(n.getSelectionRange());if(""!==l&&"'"!==l&&'"'!=l&&n.getWrapBehavioursEnabled())return{text:a+l+a,selection:!1};var c=n.getCursorPosition(),u=o.doc.getLine(c.row).substring(c.column,c.column+1),h=new r(o,c.row,c.column),d=h.getCurrentToken();if(u==a&&(s(d,"attribute-value")||s(d,"string")))return{text:"",selection:[1,1]};if(d||(d=h.stepBackward()),!d)return;for(;s(d,"tag-whitespace")||s(d,"whitespace");)d=h.stepBackward();var p=!u||u.match(/\s/);if(s(d,"attribute-equals")&&(p||">"==u)||s(d,"decl-attribute-equals")&&(p||"?"==u))return{text:a+a,selection:[1,1]}}})),this.add("string_dquotes","deletion",(function(e,t,n,o,i){var r=o.doc.getTextRange(i);if(!i.isMultiLine()&&('"'==r||"'"==r)&&o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)==r)return i.end.column++,i})),this.add("autoclosing","insertion",(function(e,t,n,o,i){if(">"==i){var a=n.getSelectionRange().start,l=new r(o,a.row,a.column),c=l.getCurrentToken()||l.stepBackward();if(!c||!(s(c,"tag-name")||s(c,"tag-whitespace")||s(c,"attribute-name")||s(c,"attribute-equals")||s(c,"attribute-value")))return;if(s(c,"reference.attribute-value"))return;if(s(c,"attribute-value")){var u=l.getCurrentTokenColumn()+c.value.length;if(a.column/.test(o.getLine(a.row).slice(a.column)))return;for(;!s(c,"tag-name");)if("<"==(c=l.stepBackward()).value){c=l.stepForward();break}var d=l.getCurrentTokenRow(),p=l.getCurrentTokenColumn();if(s(l.stepBackward(),"end-tag-open"))return;var g=c.value;if(d==a.row&&(g=g.substring(0,a.column-p)),this.voidElements.hasOwnProperty(g.toLowerCase()))return;return{text:">",selection:[1,1]}}})),this.add("autoindent","insertion",(function(e,t,n,o,i){if("\n"==i){var s=n.getCursorPosition(),a=o.getLine(s.row),l=new r(o,s.row,s.column),c=l.getCurrentToken();if(c&&-1!==c.type.indexOf("tag-close")){if("/>"==c.value)return;for(;c&&-1===c.type.indexOf("tag-name");)c=l.stepBackward();if(!c)return;var u=c.value,h=l.getCurrentTokenRow();if(!(c=l.stepBackward())||-1!==c.type.indexOf("end-tag"))return;if(this.voidElements&&!this.voidElements[u]){var d=o.getTokenAt(s.row,s.column+1),p=(a=o.getLine(h),this.$getIndent(a)),g=p+o.getTabString();return d&&"-1}(function(){this.getFoldWidget=function(e,t,n){var o=this._getFirstTagInLine(e,n);return o?o.closing||!o.tagName&&o.selfClosing?"markbeginend"===t?"end":"":!o.tagName||o.selfClosing||this.voidElements.hasOwnProperty(o.tagName.toLowerCase())||this._findEndTagInLine(e,n,o.tagName,o.end.column)?"":"start":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/"==r.value;break}return o}if(l(r,"tag-close"))return o.selfClosing="/>"==r.value,o;o.start.column+=r.value.length}return null},this._findEndTagInLine=function(e,t,n,o){for(var i=e.getTokens(t),r=0,s=0;s{e=n.nmd(e),ace.define("ace/theme/github-css",["require","exports","module"],(function(e,t,n){n.exports='/* CSS style content from github\'s default pygments highlighter template.\n Cursor and selection styles from textmate.css. */\n.ace-github .ace_gutter {\n background: #e8e8e8;\n color: #AAA;\n}\n\n.ace-github {\n background: #fff;\n color: #000;\n}\n\n.ace-github .ace_keyword {\n font-weight: bold;\n}\n\n.ace-github .ace_string {\n color: #D14;\n}\n\n.ace-github .ace_variable.ace_class {\n color: teal;\n}\n\n.ace-github .ace_constant.ace_numeric {\n color: #099;\n}\n\n.ace-github .ace_constant.ace_buildin {\n color: #0086B3;\n}\n\n.ace-github .ace_support.ace_function {\n color: #0086B3;\n}\n\n.ace-github .ace_comment {\n color: #998;\n font-style: italic;\n}\n\n.ace-github .ace_variable.ace_language {\n color: #0086B3;\n}\n\n.ace-github .ace_paren {\n font-weight: bold;\n}\n\n.ace-github .ace_boolean {\n font-weight: bold;\n}\n\n.ace-github .ace_string.ace_regexp {\n color: #009926;\n font-weight: normal;\n}\n\n.ace-github .ace_variable.ace_instance {\n color: teal;\n}\n\n.ace-github .ace_constant.ace_language {\n font-weight: bold;\n}\n\n.ace-github .ace_cursor {\n color: black;\n}\n\n.ace-github.ace_focus .ace_marker-layer .ace_active-line {\n background: rgb(255, 255, 204);\n}\n.ace-github .ace_marker-layer .ace_active-line {\n background: rgb(245, 245, 245);\n}\n\n.ace-github .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-github.ace_multiselect .ace_selection.ace_start {\n box-shadow: 0 0 3px 0px white;\n}\n/* bold keywords cause cursor issues for some fonts */\n/* this disables bold style for editor and keeps for static highlighter */\n.ace-github.ace_nobold .ace_line > span {\n font-weight: normal !important;\n}\n\n.ace-github .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-github .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-github .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-github .ace_gutter-active-line {\n background-color : rgba(0, 0, 0, 0.07);\n}\n\n.ace-github .ace_marker-layer .ace_selected-word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-github .ace_invisible {\n color: #BFBFBF\n}\n\n.ace-github .ace_print-margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-github .ace_indent-guide {\n background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;\n}\n\n.ace-github .ace_indent-guide-active {\n background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC") right repeat-y;\n}\n'})),ace.define("ace/theme/github",["require","exports","module","ace/theme/github-css","ace/lib/dom"],(function(e,t,n){t.isDark=!1,t.cssClass="ace-github",t.cssText=e("./github-css"),e("../lib/dom").importCssString(t.cssText,t.cssClass,!1)})),ace.require(["ace/theme/github"],(function(t){e&&(e.exports=t)}))},745:(e,t,n)=>{"use strict";var o=n(137);t.s=o.createRoot,o.hydrateRoot},590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,o="function"==typeof Set,i="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function r(e,s){if(e===s)return!0;if(e&&s&&"object"==typeof e&&"object"==typeof s){if(e.constructor!==s.constructor)return!1;var a,l,c,u;if(Array.isArray(e)){if((a=e.length)!=s.length)return!1;for(l=a;0!=l--;)if(!r(e[l],s[l]))return!1;return!0}if(n&&e instanceof Map&&s instanceof Map){if(e.size!==s.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!s.has(l.value[0]))return!1;for(u=e.entries();!(l=u.next()).done;)if(!r(l.value[1],s.get(l.value[0])))return!1;return!0}if(o&&e instanceof Set&&s instanceof Set){if(e.size!==s.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!s.has(l.value[0]))return!1;return!0}if(i&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(s)){if((a=e.length)!=s.length)return!1;for(l=a;0!=l--;)if(e[l]!==s[l])return!1;return!0}if(e.constructor===RegExp)return e.source===s.source&&e.flags===s.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof s.valueOf)return e.valueOf()===s.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof s.toString)return e.toString()===s.toString();if((a=(c=Object.keys(e)).length)!==Object.keys(s).length)return!1;for(l=a;0!=l--;)if(!Object.prototype.hasOwnProperty.call(s,c[l]))return!1;if(t&&e instanceof Element)return!1;for(l=a;0!=l--;)if(("_owner"!==c[l]&&"__v"!==c[l]&&"__o"!==c[l]||!e.$$typeof)&&!r(e[c[l]],s[c[l]]))return!1;return!0}return e!=e&&s!=s}e.exports=function(e,t){try{return r(e,t)}catch(e){if((e.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw e}}},137:e=>{"use strict";e.exports=require("react-dom")}},t={};function n(o){var i=t[o];if(void 0!==i)return i.exports;var r=t[o]={id:o,loaded:!1,exports:{}};return e[o](r,r.exports,n),r.loaded=!0,r.exports}n.amdD=function(){throw new Error("define cannot be used indirect")},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n.p="";var o={};(()=>{"use strict";n.r(o),n.d(o,{Accordion:()=>D,Button:()=>U,ButtonGroup:()=>K,Card:()=>he,Chart:()=>Te,Checkbox:()=>Io,CodeEditor:()=>gr,Collapsible:()=>R,Column:()=>li,Combobox:()=>Sr,Combobox2:()=>Wr,Confirm:()=>St,CopyToClipboard:()=>ut,DatePicker:()=>Zr,Dropdown:()=>Oi,Dropdown2:()=>Zi,EditableList:()=>ha,EditableList2:()=>Na,FieldCodeEditor:()=>ru,FieldCombobox:()=>gu,FieldCombobox2:()=>ju,FieldDatePicker:()=>Xu,FieldDropdown:()=>Cu,FieldEditableList:()=>sh,FieldFileInput:()=>fh,FieldInput:()=>Eh,FieldMultiselect:()=>Ih,FieldPagination:()=>Ru,FieldSelect:()=>Uh,FieldSelectableList:()=>ed,FieldToggle:()=>cd,FileInput:()=>za,FixedWrapper:()=>Ot,FloatingContainer:()=>Pt,FormikCheckbox:()=>Nc,FormikCodeEditor:()=>Ic,FormikCombobox:()=>Pc,FormikCombobox2:()=>Dc,FormikDatePicker:()=>Fc,FormikEditableList:()=>Bc,FormikEditableList2:()=>Wc,FormikFileInput:()=>Hc,FormikInput:()=>jc,FormikInput2:()=>zc,FormikMultiselect:()=>Vc,FormikRadio:()=>Uc,FormikSelect:()=>Gc,FormikSelectableList:()=>Kc,FormikTextarea:()=>qc,FormikToggle:()=>Yc,FormikWrapper:()=>Rc,Icon:()=>g,InfiniteScroller:()=>At,InfoNote:()=>Ft,Input:()=>Qa,Input2:()=>ll,List:()=>jt,Loader:()=>ye,Message:()=>be,Modal:()=>Ct,Multiselect:()=>Cl,NavBar:()=>Vt,Navigation:()=>qt,Pagination:()=>po,Panel:()=>pn,Pill:()=>mn,Radio:()=>Rl,RevealPanel:()=>Nn,Row:()=>yi,Select:()=>jl,SelectableList:()=>Xl,Table:()=>ti,Tabs:()=>eo,TextEllipsis:()=>uo,Textarea:()=>rc,Toggle:()=>bc,Tooltip:()=>lo,setConfig:()=>xc,toast:()=>ot,useComponentSize:()=>C,useEventListener:()=>$,useInterval:()=>ud,usePrevious:()=>me,useTimeout:()=>_e});const e=require("react");var t=n.n(e);const i=require("prop-types");var r=n.n(i);const s=(0,e.createContext)(),a=(0,e.createContext)();var l=Object.defineProperty,c=Object.getOwnPropertySymbols,u=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable,d=(e,t,n)=>t in e?l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function p(e){var n=e,{className:o,family:i,type:r,weight:s}=n,a=((e,t)=>{var n={};for(var o in e)u.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&c)for(var o of c(e))t.indexOf(o)<0&&h.call(e,o)&&(n[o]=e[o]);return n})(n,["className","family","type","weight"]);return t().createElement("i",((e,t)=>{for(var n in t||(t={}))u.call(t,n)&&d(e,n,t[n]);if(c)for(var n of c(t))h.call(t,n)&&d(e,n,t[n]);return e})({className:function(){const e=i||"fa";return["tyk-icon","fa"!==e&&e,`${e}-${r}`,"fa"===e?`fa-${s||"regular"}`:"",o].filter(Boolean).join(" ")}()},a))}p.propTypes={className:r().string,family:r().string,type:r().string.isRequired,weight:r().string};const g=p;function m({wrap:n}){const{collapsed:o,disabled:i,toggleChange:r}=(0,e.useContext)(a),s=o?"chevron-down":"chevron-up",l=["tyk-accordion__trigger",i&&"tyk-accordion__trigger--disabled"].filter(Boolean).join(" "),c=t().createElement("button",{className:l,onClick:r,type:"button","aria-label":"collapse/expand"},t().createElement(g,{className:"collapsable__arrow",type:s}));return n?t().createElement("div",{className:"tyk-accordion__trigger-wrapper"},c):c}m.propTypes={wrap:r().bool};const f=m;function y({collapsed:n,children:o,className:i,disabled:r},l){const{arrow:c}=(0,e.useContext)(s),[u,h]=(0,e.useState)(n),d=()=>{r||h(!u)},p=(0,e.useMemo)((()=>["tyk-accordion__item",c.expandToContent?`tyk-accordion__item--trigger-position-${c.position}`:"tyk-accordion__item--trigger-in-header",i,!1===u&&"tyk-accordion__item--active"].filter(Boolean).join(" ")),[c,i,u]),g=(0,e.useMemo)((()=>({collapsed:u,disabled:r,toggleChange:d})),[u,r,d]);return t().createElement("div",{ref:l,className:p},t().createElement(a.Provider,{value:g},c.expandToContent&&t().createElement(f,{wrap:!0}),o))}y.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),collapsed:r().bool,className:r().string,disabled:r().bool},y.defaultProps={collapsed:!1};const v=(0,e.forwardRef)(y);function b({className:n,children:o}){const{collapsed:i,disabled:r,toggleChange:l}=(0,e.useContext)(a),{usearrowastrigger:c,arrow:u}=(0,e.useContext)(s),h=i?"chevron-down":"chevron-up",d=["tyk-accordion__item-header",c&&"tyk-accordion__arrow-trigger",n].filter(Boolean).join(" ");return t().createElement("div",{className:d},c?t().createElement(t().Fragment,null,!u.expandToContent&&"left"===u.position&&t().createElement(f,null),t().createElement("div",null,o),!u.expandToContent&&"right"===u.position&&t().createElement(f,null)):t().createElement("button",{className:r?"tyk-accordion__trigger--disabled":"",onClick:l,type:"button"},t().createElement("span",null,o),t().createElement(g,{className:"collapsable__arrow",type:h})))}b.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string};const w=b,x=require("react-transition-group"),k=e=>e?{width:e.offsetWidth,height:e.offsetHeight}:{width:0,height:0},C=t=>{const[n,o]=(0,e.useState)(k(t?t.current:{})),i=(0,e.useCallback)((()=>{t.current&&o(k(t.current))}),[t]);return(0,e.useLayoutEffect)((()=>{i();let e=new ResizeObserver((()=>{i()}));return e.observe(t.current),()=>{e.disconnect(t.current),e=null}}),[t.current]),n},$=(t,n,o)=>{const i=(0,e.useRef)();(0,e.useEffect)((()=>{i.current=n}),[n]),(0,e.useEffect)((()=>{if(!(null==o?void 0:o.addEventListener))return;const e=e=>i.current(e);return o.addEventListener(t,e),()=>{o.removeEventListener(t,e)}}),[t,o])};var S=Object.defineProperty,E=Object.defineProperties,O=Object.getOwnPropertyDescriptors,T=Object.getOwnPropertySymbols,A=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable,L=(e,t,n)=>t in e?S(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function M(n){var o=n,{className:i,collapsed:r,children:s}=o,a=((e,t)=>{var n={};for(var o in e)A.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&T)for(var o of T(e))t.indexOf(o)<0&&_.call(e,o)&&(n[o]=e[o]);return n})(o,["className","collapsed","children"]);const l=(0,e.useRef)(null),c=(0,e.useRef)(null),u=C(l),[h,d]=(0,e.useState)({height:r?0:"auto"}),p=e=>{d({height:`${e}px`})},g=()=>l.current?l.current.clientHeight:0;(0,e.useEffect)((()=>{!r&&(null==u?void 0:u.height)&&h.height!==(null==u?void 0:u.height)&&p(u.height)}),[u.height]);const m=(0,e.useCallback)((()=>{!r&&l.current&&(p(g()),c.current.style.height=`${g()}px`)}),[r,l.current]);return $("resize",m,window),t().createElement(x.CSSTransition,{onEnter:()=>{p(g())},onExit:()=>{p(0)},in:!r,timeout:0,classNames:"collapse"},t().createElement("div",{className:"collapse-wrapper",ref:c,style:h},t().createElement("div",(f=((e,t)=>{for(var n in t||(t={}))A.call(t,n)&&L(e,n,t[n]);if(T)for(var n of T(t))_.call(t,n)&&L(e,n,t[n]);return e})({},a),E(f,O({className:i,ref:l}))),s)));var f}M.propTypes={children:r().oneOfType([r().element,r().node,r().string]),collapsed:r().bool,className:r().string};const R=M;function N({children:n,className:o}){const{collapsed:i}=(0,e.useContext)(a),r=["tyk-accordion__item-content",o].filter(Boolean).join(" ");return t().createElement("div",{className:r},t().createElement(R,{collapsed:i},n))}N.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string};const I=N;function P({className:n,children:o,usearrowastrigger:i,arrow:r={position:"right",expandToContent:!1}}){const a=["tyk-accordion",n].filter(Boolean).join(" "),l=(0,e.useMemo)((()=>({usearrowastrigger:i,arrow:r})),[i,r]);return t().createElement("div",{className:a},t().createElement(s.Provider,{value:l},o))}P.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,usearrowastrigger:r().bool,arrow:r().shape({position:r().oneOf(["left","right"]),expandToContent:r().bool})},P.defaultProps={usearrowastrigger:!1},P.Item=v,P.Item.Header=w,P.Item.Content=I;const D=P;var F=Object.defineProperty,B=Object.getOwnPropertySymbols,W=Object.prototype.hasOwnProperty,H=Object.prototype.propertyIsEnumerable,j=(e,t,n)=>t in e?F(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,z=(e,t)=>{for(var n in t||(t={}))W.call(t,n)&&j(e,n,t[n]);if(B)for(var n of B(t))H.call(t,n)&&j(e,n,t[n]);return e};function V(n,o){const i=n,{customButton:r,children:s,iconType:a,iconFamily:l,iconPosition:c,iconOnly:u,id:h,className:d,disabled:p,display:m,href:f,onClick:y,noStyle:v,size:b,theme:w,type:x}=i,k=((e,t)=>{var n={};for(var o in e)W.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&B)for(var o of B(e))t.indexOf(o)<0&&H.call(e,o)&&(n[o]=e[o]);return n})(i,["customButton","children","iconType","iconFamily","iconPosition","iconOnly","id","className","disabled","display","href","onClick","noStyle","size","theme","type"]),C=()=>{const e=["tyk-button"].concat(d?d.split(" "):[]),t=b?`tyk-button--${b}`:"tyk-button--md",n=p?"disabled":"",o=m||"",i=w?`tyk-button--${w}`:"",r=u?"tyk-button--icon-only":"",s=v?"tyk-button--no-style":"";return e.push(r),e.push(i),e.push(t),e.push(n),e.push(o),e.push(s),a&&e.push(`icon-${c||"left"}`),e.join(" ")},$=e=>a&&(c||"left")===e?t().createElement(g,{family:l,type:a}):null;return(()=>{let n;return r?t().createElement(t().Fragment,null,(0,e.cloneElement)(r,{className:C(),disabled:p})):(n=f?t().createElement("a",z({id:h,className:C(),disabled:p,onClick:y,href:f,ref:o},k),$("left"),s,$("right")):t().createElement("button",z({id:h,className:C(),disabled:p,onClick:y,type:x||"button",ref:o},k),$("left"),s&&t().createElement("span",null,s),$("right")),n)})()}V.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),customButton:r().oneOfType([r().arrayOf(r().node),r().node,r().element]),className:r().string,display:r().string,disabled:r().bool,id:r().string,href:r().string,iconPosition:r().string,iconFamily:r().string,iconOnly:r().bool,iconType:r().string,noStyle:r().bool,onClick:r().func,theme:r().string,type:r().string,size:r().string},V.defaultProps={theme:"",type:"button"};const U=(0,e.forwardRef)(V);function G({className:e,children:n,label:o},i){return t().createElement("div",{ref:i,className:`tyk-button-group__wrapper ${e}`},Boolean(o)&&t().createElement("label",null,o),t().createElement("div",{className:"tyk-button-group"},n))}G.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string.isRequired,label:r().string.isRequired};const K=(0,e.forwardRef)(G);function q({right:e=null,children:n}){return t().createElement("div",{className:"tyk-card__header"},n&&t().createElement("div",{className:"tyk-card__header-content"},n),e&&t().createElement("div",{className:"tyk-card__header-right"},e))}q.propTypes={right:r().oneOfType([r().element,r().node,r().string]),children:r().oneOfType([r().element,r().node,r().string])};const Y=q;function J({align:e="top",children:n}){return t().createElement("div",{className:`tyk-card__body tyk-card__body--align-${e}`},t().createElement("div",null,n))}J.propTypes={align:r().oneOf(["top","center","bottom"]),children:r().oneOfType([r().element,r().node,r().string])};const X=J;function Q({children:e}){return t().createElement("div",{className:"tyk-card__footer"},e)}Q.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const Z=Q;function ee({maxLines:e=1,children:n}){return t().createElement("h4",{className:`tyk-card__title tyk-card__title--max-${e}-lines`},n)}ee.propTypes={maxLines:r().number,children:r().oneOfType([r().element,r().node,r().string])};const te=ee;function ne({children:e}){return t().createElement("div",{className:"tyk-card__title-group"},e)}ne.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const oe=ne;function ie({children:e}){return t().createElement("h5",{className:"tyk-card__sub-title"},e)}ie.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const re=ie;function se({maxLines:e=2,children:n}){return t().createElement("p",{className:`tyk-card__summary tyk-card__summary--max-${e}-lines`},n)}se.propTypes={maxLines:r().number,children:r().oneOfType([r().element,r().node,r().string])};const ae=se;function le({children:e}){return t().createElement("div",{className:"tyk-card__title-icon"},e)}le.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const ce=le;function ue({className:e="",height:n="auto",children:o}){return t().createElement("div",{style:{height:n},className:`tyk-card ${e}`},o)}ue.propTypes={className:r().string,height:r().oneOfType([r().number,r().string]),children:r().oneOfType([r().element,r().node,r().string])},ue.Header=Y,ue.Body=X,ue.Footer=Z,ue.Title=te,ue.TitleGroup=oe,ue.Icon=ce,ue.SubTitle=re,ue.Summary=ae;const he=ue,de=require("echarts"),pe=require("immutable"),ge=(e,t,n)=>{let o;return function(...i){const r=this,s=n&&!o;clearTimeout(o),o=setTimeout((()=>{o=null,n||e.apply(r,i)}),t),s&&e.apply(r,i)}},me=t=>{const n=(0,e.useRef)();return(0,e.useEffect)((()=>{n.current=t}),[t]),n.current};function fe({className:e,position:n="relative",withbackground:o=!1}){const i=["loading",n,e].filter(Boolean).join(" "),r=t().createElement("div",{className:i},t().createElement("div",{className:"loading-bar"}),t().createElement("div",{className:"loading-bar"}),t().createElement("div",{className:"loading-bar"}),t().createElement("div",{className:"loading-bar"}));return o?t().createElement("div",{className:"tyk-loading__wrapper"},r):r}fe.propTypes={className:r().string,position:r().string,withbackground:r().bool};const ye=fe;function ve({children:e,theme:n,onClose:o,noMargin:i,className:r}){const s="success"===n?"check":"exclamation";return t().createElement("div",{className:["tyk-message",`tyk-message--${n||"info"}`,i&&"no-margin",r].filter(Boolean).join(" ")},t().createElement(g,{type:s}),t().createElement("div",{className:"tyk-message__content"},e),o&&t().createElement(g,{type:"xmark",onClick:o}))}ve.propTypes={theme:r().string,children:r().oneOfType([r().element,r().node,r().string]),className:r().string,noMargin:r().bool,onClose:r().func};const be=ve,we=JSON.parse('{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:OGC:1.3:CRS84"}},"features":[{"geometry":{"type":"Polygon","coordinates":[[[47.97822265625001,7.9970703125],[46.97822265625001,7.9970703125],[43.98378906250002,9.008837890624989],[43.482519531250006,9.379492187499991],[43.181640625,9.879980468749991],[42.84160156250002,10.203076171874997],[42.65644531250001,10.6],[42.92275390625002,10.999316406249989],[43.24599609375002,11.499804687499989],[43.85273437500001,10.784277343749991],[44.38652343750002,10.430224609374989],[44.94296875,10.43671875],[45.81669921875002,10.835888671874997],[46.565039062500006,10.745996093749994],[47.40498046875001,11.174023437499997],[48.01923828125001,11.139355468749997],[48.57255859375002,11.320507812499997],[48.938574218750006,11.258447265624994],[50.11005859375001,11.529296875],[50.79228515625002,11.983691406249989],[51.2548828125,11.830712890624994],[51.08427734375002,11.335644531249997],[51.140625,10.656884765624994],[51.031835937500006,10.444775390624997],[51.19296875,10.554638671874997],[51.390234375,10.422607421875],[50.93007812500002,10.33554687499999],[50.825,9.428173828124997],[50.10283203125002,8.199804687499991],[49.85205078125,7.962548828124994],[49.234960937500006,6.77734375],[49.04931640625,6.173632812499989],[47.97529296875001,4.497021484374997],[46.87880859375002,3.28564453125],[46.05117187500002,2.475146484374989],[44.92021484375002,1.81015625],[43.71757812500002,0.857861328124997],[41.97988281250002,-0.973046875],[41.53271484375,-1.6953125],[41.521875,-1.572265625],[41.42695312500001,-1.449511718750003],[41.24980468750002,-1.220507812500003],[40.97871093750001,-0.870312500000011],[40.964453125,2.814648437499997],[41.341796875,3.20166015625],[41.61347656250001,3.590478515624994],[41.88398437500001,3.977734375],[41.91533203125002,4.031298828124989],[42.02412109375001,4.137939453125],[42.85664062500001,4.32421875],[43.12568359375001,4.644482421874997],[43.58349609375,4.85498046875],[43.988867187500006,4.950537109374991],[44.940527343750006,4.912011718749994],[47.97822265625001,7.9970703125]]]},"properties":{"name":"Somalia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[9.579979133936737,47.05856388629306],[9.409458596647225,47.02019676540292],[9.46249431093294,47.09010747968864],[9.46249431093294,47.19858962254578],[9.527658197470123,47.27026989773668],[9.579979133936737,47.05856388629306]]]},"properties":{"name":"Liechtenstein","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-8.683349609375,27.77800740805682],[-13.038761787013554,27.81190166624856],[-12.948925781249926,27.914160156250034],[-11.552685546874955,28.31010742187496],[-10.486474609374994,29.06494140625],[-10.200585937499994,29.380371093750057],[-9.667089843749949,30.10927734375005],[-9.652929687499977,30.447558593750045],[-9.875488281249943,30.717919921874966],[-9.80869140624992,31.42460937499996],[-9.347460937499932,32.086376953124955],[-9.245849609375,32.572460937499955],[-8.512841796874994,33.25244140625003],[-6.900976562499949,33.96904296874999],[-6.353125,34.77607421875001],[-5.924804687499943,35.78579101562502],[-5.277832031249943,35.90273437500002],[-5.252685546874972,35.61474609374997],[-4.628320312499966,35.206396484375006],[-4.329980468749937,35.161474609375006],[-3.693261718749994,35.27998046874998],[-3.394726562499926,35.21181640625005],[-2.972216796874989,35.40727539062499],[-2.839941406249949,35.127832031249994],[-2.731396484374955,35.13520507812498],[-2.636816406249977,35.11269531250002],[-2.423730468749994,35.12348632812498],[-2.219628906249966,35.10419921874998],[-1.795605468749926,34.751904296874955],[-1.67919921875,33.31865234375002],[-1.550732421874955,33.073583984375006],[-1.510009765625,32.877636718749955],[-1.45,32.784814453124966],[-1.352148437499977,32.70336914062497],[-1.29638671875,32.67568359375002],[-1.188232421875,32.608496093750006],[-1.111035156249983,32.55229492187502],[-1.065527343749949,32.46831054687496],[-1.16259765625,32.399169921875],[-1.275341796874983,32.089013671874966],[-2.863427734374937,32.07470703124997],[-2.930859374999926,32.04252929687499],[-2.988232421874983,31.874218749999983],[-3.01738281249996,31.834277343750017],[-3.439794921874949,31.704541015624983],[-3.604589843749949,31.686767578125],[-3.700244140624989,31.70009765625005],[-3.768164062499977,31.689550781250034],[-3.837109374999983,31.512353515624994],[-3.833398437499937,31.197802734375045],[-3.626904296874955,31.000927734374983],[-4.148779296874977,30.8095703125],[-4.322851562500006,30.698876953124994],[-4.52915039062492,30.62553710937499],[-4.778515624999926,30.552392578124994],[-4.968261718749943,30.465380859375045],[-5.061914062499937,30.326416015625057],[-5.180126953124955,30.166162109374994],[-5.293652343749983,30.058642578125045],[-5.44877929687496,29.956933593750023],[-6.00429687499999,29.83125],[-6.479736328124943,29.82036132812499],[-6.520556640624989,29.659863281249983],[-6.59775390624992,29.578955078125006],[-6.635351562499949,29.568798828124983],[-6.755126953125,29.583837890625034],[-6.855566406249949,29.601611328125017],[-7.142431640624949,29.61958007812504],[-7.427685546874983,29.425],[-7.485742187499994,29.392236328124994],[-8.659912109375,28.718603515625063],[-8.683349609375,27.900390625],[-8.683349609375,27.77800740805682]]]},"properties":{"name":"Morocco","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-13.038761787013554,27.81190166624856],[-8.683349609375,27.77800740805682],[-8.683349609375,27.65644531250004],[-8.817822265624955,27.65644531250004],[-8.817822265624951,27.656445312499997],[-8.683349609375,27.656445312499997],[-8.683349609375,27.2859375],[-8.682861328125,26.921337890624997],[-8.6826171875,26.72314453125],[-8.682324218749983,26.497705078124994],[-8.68212890625,26.273193359375],[-8.68212890625,26.10947265625],[-8.682226562499977,25.995507812499994],[-12.016308593749983,25.995410156250003],[-12.016308593749983,25.740136718749994],[-12.016308593749983,25.331689453124994],[-12.016308593749983,25.059375],[-12.016308593749983,24.923242187499994],[-12.016308593749983,24.378662109375],[-12.016308593749983,23.97021484375],[-12.0234375,23.467578125],[-12.372900390624977,23.318017578124994],[-12.559375,23.290820312500003],[-12.620410156249989,23.27133789062499],[-13.031494140625,23.000244140625],[-13.153271484374983,22.820507812499997],[-13.12702845982141,22.703770926339278],[-13.136540684091575,22.708182548616723],[-13.094335937499977,22.495996093749994],[-13.051220703124983,21.854785156250003],[-13.041748046875,21.713818359374997],[-13.0322265625,21.572070312500003],[-13.025097656249983,21.466796875],[-13.016210937499977,21.333935546874997],[-15.231201171875,21.331298828125],[-16.964550781249983,21.329248046874994],[-17.06396484375,20.89882812499999],[-17.048046874999983,20.80615234375],[-17.098779296874994,20.856884765624997],[-16.930859374999983,21.9],[-16.35874023437495,22.594531250000045],[-16.21025390624999,23.097900390625],[-15.789257812499926,23.792871093750023],[-15.980712890624943,23.670312500000023],[-15.899316406249966,23.844433593749955],[-14.904296875000028,24.719775390625017],[-14.794921874999943,25.404150390625006],[-14.413867187499932,26.25371093749999],[-13.57578125,26.735107421875],[-13.175976562499983,27.655712890624983],[-13.038761787013554,27.81190166624856]],[[-8.774365234374983,27.460546875],[-8.794873046874983,27.120703125000034],[-8.794873046874983,27.120703125],[-8.774365234374983,27.460546875]]]},"properties":{"name":"W. Sahara","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[21.5625,42.247509765625],[21.560839843750017,42.24765625],[21.389550781250023,42.21982421875],[21.28662109375,42.100390625],[21.05976562500001,42.171289062499994],[20.778125,42.071044921875],[20.725,41.87353515625],[20.566210937500017,41.873681640624994],[20.485449218750006,42.223388671875],[20.06396484375,42.54726562499999],[20.054296875,42.760058593749996],[20.344335937500006,42.827929687499996],[20.40996305279786,42.84373166741877],[20.344335937500063,42.82792968750002],[19.670996093750006,43.163964843749994],[19.21875,43.449951171875],[19.196484375000068,43.48500976562502],[19.19160156250004,43.52104492187499],[19.19433593749997,43.533300781250006],[19.495117187500057,43.642871093750045],[19.245019531249994,43.96503906250004],[19.583789062500017,44.04345703125003],[19.118457031250074,44.359960937500006],[19.348632812500057,44.88090820312502],[19.007128906250045,44.86918945312502],[19.062890625000023,45.13720703125],[19.4,45.2125],[19.004687500000074,45.39951171875006],[19.064257812500045,45.51499023437506],[18.839062499999983,45.83574218750002],[18.905371093750006,45.931738281250034],[19.421289062500023,46.064453125],[19.61347656250001,46.169189453125],[19.84443359375001,46.145898437499966],[19.934082031250057,46.161474609375034],[20.161425781250017,46.14189453124996],[20.210156250000068,46.12602539062502],[20.241796875000034,46.10859375000001],[20.301367187500006,46.05068359375002],[20.35859375000004,45.975488281249994],[20.581152343749977,45.86948242187506],[20.65273437499999,45.779394531250006],[20.709277343750074,45.735253906249994],[20.727832031250017,45.73740234374998],[20.746875,45.74897460937501],[20.76015625000005,45.75810546875002],[20.775,45.74980468750002],[20.794042968750006,45.467871093750034],[21.431445312500017,45.192529296874994],[21.465429687500006,45.171875],[21.357031250000034,44.99077148437502],[21.532324218750063,44.900683593750045],[21.519921875000023,44.88081054687498],[21.442187500000074,44.87338867187498],[21.384375,44.87006835937501],[21.357910156250057,44.86181640625003],[21.36005859375004,44.82666015624997],[21.52314453125004,44.79008789062499],[21.63613281250005,44.71044921875],[21.909277343750034,44.666113281250034],[22.026953125,44.61987304687503],[22.093066406250074,44.541943359374955],[22.200976562500017,44.560693359374966],[22.350683593750063,44.676123046875034],[22.497656249999977,44.70625],[22.64208984375,44.65097656249998],[22.720898437499983,44.605517578125045],[22.734375,44.56992187499998],[22.700781250000063,44.55551757812498],[22.620117187500057,44.562353515625034],[22.554003906250017,44.54033203124999],[22.49453125000005,44.43544921875002],[22.687890625000023,44.248291015625],[22.42080078125005,44.00742187500006],[22.399023437500063,43.96953125],[22.36542968750004,43.86210937500002],[22.36962890625003,43.78129882812499],[22.55458984375005,43.45449218750002],[22.767578125,43.35415039062502],[22.81972656250005,43.300732421874955],[22.85957031250001,43.252343749999966],[22.97685546874999,43.18798828125],[22.799902343750006,42.985742187499994],[22.706152343750006,42.88393554687505],[22.466796875,42.842480468749955],[22.53242187500004,42.48120117187497],[22.523535156250006,42.440966796875045],[22.44570312500005,42.35913085937497],[22.42207031250004,42.32885742187503],[22.344042968750045,42.31396484375003],[22.23974609375003,42.303110028468716],[21.81464843750001,42.303125],[21.5625,42.24750976562498],[21.5625,42.247509765625]]]},"properties":{"name":"Serbia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[74.54140625000002,37.02216796875],[74.03886718750002,36.825732421874996],[73.116796875,36.868554687499994],[72.24980468750002,36.734716796875],[71.23291015625,36.12177734375],[71.18505859375,36.04208984375],[71.57197265625001,35.546826171875],[71.62050781250002,35.183007812499994],[70.965625,34.53037109375],[71.095703125,34.369433593749996],[71.05156250000002,34.049707031249994],[70.65400390625001,33.952294921874994],[69.8896484375,34.007275390625],[70.26113281250002,33.289013671875],[69.5015625,33.020068359374996],[69.24140625000001,32.433544921875],[69.279296875,31.936816406249996],[68.86894531250002,31.634228515624997],[68.59765625,31.802978515625],[68.16103515625002,31.802978515625],[67.57822265625,31.506494140624994],[67.737890625,31.343945312499997],[67.45283203125001,31.234619140625],[66.82929687500001,31.263671875],[66.346875,30.802783203124996],[66.23125,29.86572265625],[65.09550781250002,29.559472656249994],[64.39375,29.544335937499994],[64.09873046875,29.391943359375],[63.56757812500001,29.497998046874997],[62.4765625,29.408349609374994],[62.0009765625,29.530419921874994],[61.22441406250002,29.749414062499994],[60.843359375,29.858691406249996],[61.331640625,30.363720703124997],[61.55947265625002,30.599365234375],[61.7841796875,30.831933593749994],[61.81083984375002,30.91328125],[61.81425781250002,31.072558593749996],[61.75507812500001,31.285302734374994],[61.66015625,31.382421875],[61.34648437500002,31.421630859375],[61.11074218750002,31.451123046874997],[60.854101562500006,31.483251953125],[60.82070312500002,31.495166015624996],[60.791601562500006,31.660595703124997],[60.804296875,31.73447265625],[60.7875,31.877197265625],[60.78994140625002,31.987109375],[60.827246093750006,32.16796875],[60.82929687500001,32.249414062499994],[60.71044921875,32.6],[60.57656250000002,32.994873046875],[60.560546875,33.137841796874994],[60.9169921875,33.505224609375],[60.573828125,33.588330078125],[60.4859375,33.7119140625],[60.48574218750002,34.094775390624996],[60.642675781250006,34.307177734374996],[60.88945312500002,34.31943359375],[60.80390625000001,34.418017578124996],[60.76259765625002,34.475244140624994],[60.73613281250002,34.491796875],[60.72626953125001,34.51826171875],[60.73945312500001,34.544726562499996],[60.80234375,34.554638671875],[60.8453125,34.587695312499996],[60.91474609375001,34.633984375],[60.951171875,34.653857421874996],[61.080078125,34.855615234374994],[61.1,35.272314453125],[61.18925781250002,35.31201171875],[61.24550781250002,35.474072265625],[61.27851562500001,35.51376953125],[61.281835937500006,35.55341796875],[61.26201171875002,35.619580078125],[61.3447265625,35.6294921875],[61.62099609375002,35.43232421875],[62.08964843750002,35.3796875],[62.30781250000001,35.170800781249994],[62.688085937500006,35.255322265625],[63.056640625,35.44580078125],[63.08417968750001,35.56806640625],[63.16972656250002,35.678125],[63.129980468750006,35.84619140625],[63.8625,36.012353515624994],[64.184375,36.14892578125],[64.51103515625002,36.340673828125],[64.56582031250002,36.427587890625],[64.6025390625,36.554541015625],[64.78242187500001,37.05927734375],[64.81630859375002,37.132080078125],[64.95156250000002,37.1935546875],[65.08964843750002,37.237939453124994],[65.30361328125002,37.24677734375],[65.55498046875002,37.251171875],[65.76503906250002,37.569140625],[66.471875,37.3447265625],[66.52226562500002,37.348486328125],[66.827734375,37.3712890625],[67.06884765625,37.334814453125],[67.19550781250001,37.235205078125],[67.31972656250002,37.2095703125],[67.44169921875002,37.2580078125],[67.51728515625001,37.266650390624996],[67.546484375,37.235644531249996],[67.607421875,37.222509765625],[67.7,37.22724609375],[67.7529296875,37.1998046875],[67.75898437500001,37.172216796875],[67.76601562500002,37.14013671875],[67.83447265625,37.064208984375],[67.9580078125,36.972021484375],[68.06777343750002,36.9498046875],[68.26093750000001,37.013085937499994],[68.284765625,37.036328125],[68.29951171875001,37.088427734374996],[68.38691406250001,37.1375],[68.66914062500001,37.2583984375],[68.7232421875,37.268017578125],[68.78203125000002,37.2580078125],[68.82373046875,37.270703125],[68.8384765625,37.30283203125],[68.85537109375002,37.316845703125],[68.88525390625,37.328076171875],[68.91181640625001,37.333935546875],[68.96044921875,37.325048828125],[69.18017578125,37.15830078125],[69.26484375000001,37.1083984375],[69.30390625000001,37.116943359375],[69.35380859375002,37.150048828124994],[69.41445312500002,37.207763671875],[69.4296875,37.290869140625],[69.39921875000002,37.399316406249994],[69.42011718750001,37.48671875],[69.49208984375002,37.553076171875],[69.62578125000002,37.594042968749996],[69.8208984375,37.6095703125],[69.9849609375,37.566162109375],[70.18867187500001,37.582470703125],[70.25146484375,37.66416015625],[70.25498046875,37.765380859375],[70.19941406250001,37.886035156249996],[70.21464843750002,37.9244140625],[70.41777343750002,38.075439453125],[70.7359375,38.42255859375],[71.255859375,38.306982421875],[71.33271484375001,38.170263671875],[71.27851562500001,37.918408203125],[71.319921875,37.90185546875],[71.3896484375,37.906298828124996],[71.48779296875,37.931884765625],[71.55195312500001,37.933154296874996],[71.58222656250001,37.910107421875],[71.43291015625002,37.1275390625],[71.530859375,36.845117187499994],[71.665625,36.696923828124994],[72.65742187500001,37.029052734375],[72.8955078125,37.267529296875],[73.21113281250001,37.408496093749996],[73.38291015625,37.462255859375],[73.48134765625002,37.4716796875],[73.60468750000001,37.446044921875],[73.65712890625002,37.43046875],[73.72060546875002,37.41875],[73.73378906250002,37.37578125],[73.71728515625,37.329443359375],[73.6275390625,37.261572265625],[73.65351562500001,37.23935546875],[73.749609375,37.231787109375],[74.16708984375,37.329443359375],[74.20351562500002,37.372460937499994],[74.25966796875002,37.415429687499994],[74.659375,37.394482421875],[74.73056640625,37.35703125],[74.83046875000002,37.2859375],[74.89130859375001,37.231640625],[74.84023437500002,37.225048828125],[74.76738281250002,37.249169921874994],[74.73896484375001,37.28564453125],[74.72666015625,37.29072265625],[74.6689453125,37.26669921875],[74.55898437500002,37.236621093749996],[74.37216796875,37.15771484375],[74.37617187500001,37.137353515624994],[74.49794921875002,37.0572265625],[74.52646484375,37.030664062499994],[74.54140625000002,37.02216796875]]]},"properties":{"name":"Afghanistan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[17.57958984375,-8.099023437500009],[17.643359375000017,-8.090722656250009],[18.00878906250003,-8.107617187499983],[18.56269531250001,-7.9359375],[18.944433593750063,-8.001464843750028],[19.142675781250034,-8.001464843750028],[19.34082031249997,-7.966601562500031],[19.369921875000045,-7.706542968749986],[19.371679687500063,-7.655078124999989],[19.47988281250008,-7.472167968750028],[19.48378906250008,-7.279492187500026],[19.527636718750017,-7.144433593749952],[19.87519531250004,-6.986328124999986],[19.99746093750008,-6.976464843750023],[20.190039062500063,-6.9462890625],[20.482226562500074,-6.915820312500017],[20.59003906250001,-6.919921874999957],[20.598730468750006,-6.935156249999949],[20.536914062500045,-7.121777343749955],[20.535839843749983,-7.182812499999955],[20.558398437500045,-7.244433593749989],[20.60781250000008,-7.277734375000023],[20.910937500000017,-7.281445312499983],[21.190332031250023,-7.284960937499989],[21.751074218750034,-7.305468749999989],[21.80605468750005,-7.32861328125],[21.905371093750034,-8.693359374999943],[21.813183593750068,-9.46875],[22.19775390625,-10.040625],[22.30703125000005,-10.691308593750023],[22.203515625000023,-10.829492187500009],[22.226171875,-11.121972656250009],[22.27880859375,-11.19414062499996],[22.314941406250057,-11.198632812499994],[22.39296875000005,-11.159472656250003],[22.486132812500045,-11.086718750000017],[22.56103515625003,-11.05585937500004],[22.814746093750017,-11.08027343750004],[23.076269531250006,-11.087890624999986],[23.463964843750034,-10.969335937499991],[23.83388671875008,-11.013671874999972],[23.96650390625001,-10.871777343750011],[23.98388671875,-11.725],[23.909375,-12.636132812500009],[23.886523437500045,-12.743261718749991],[23.882421875,-12.799023437499983],[23.968066406250045,-12.956933593749994],[23.962988281250006,-12.988476562500026],[23.843164062500023,-13.0009765625],[22.209570312500006,-13.0009765625],[21.97890625000008,-13.0009765625],[21.979101562500034,-13.798730468749994],[21.979296875000074,-14.11962890625],[21.979394531249994,-14.440527343750006],[21.97978515624999,-15.955566406250014],[22.193945312500006,-16.628125],[23.380664062500017,-17.640625],[22.32421875,-17.8375],[20.74550781250008,-18.019726562499983],[20.194335937500057,-17.86367187499999],[18.95527343750004,-17.80351562499999],[18.39638671875005,-17.3994140625],[16.14843750000003,-17.39023437499999],[14.017480468750023,-17.40888671874997],[13.475976562500023,-17.04003906249997],[13.179492187500017,-16.971679687499986],[12.548144531250017,-17.212695312499974],[12.35927734375008,-17.205859375],[12.318457031250006,-17.21337890625003],[12.213378906250028,-17.209960937500043],[12.013964843750074,-17.168554687500034],[11.902539062500011,-17.226562499999957],[11.743066406250023,-17.24921875000004],[11.780078125000017,-16.87128906249997],[11.818945312500034,-16.704101562500014],[11.750878906250023,-15.831933593749966],[12.016113281250057,-15.513671874999957],[12.55048828125004,-13.437792968750003],[12.983203124999989,-12.775683593750017],[13.4169921875,-12.52041015624998],[13.597949218750017,-12.286132812500028],[13.785351562499983,-11.81279296874996],[13.833593750000063,-10.9296875],[13.33222656250004,-9.998925781250009],[12.99853515625,-9.048046875],[13.358984375,-8.687207031250026],[13.378515625000063,-8.369726562500006],[12.82343750000004,-6.954785156249955],[12.283300781250063,-6.12431640624996],[13.184375,-5.85625],[13.346484375000017,-5.863378906250006],[13.978515625,-5.857226562500003],[16.315234375000074,-5.865625],[16.431445312500045,-5.90019531249996],[16.53710937499997,-5.9658203125],[16.697265625,-6.164257812500026],[16.74296874999999,-6.618457031250003],[16.813085937500063,-6.772558593749963],[16.919433593750057,-6.93398437499998],[16.98476562500005,-7.257421874999977],[17.57958984375,-8.099023437500009]]],[[[12.50146484375,-4.5875],[12.848144531250028,-4.428906249999983],[12.881054687500068,-4.445117187499989],[12.971386718750068,-4.551757812499957],[13.048046875000068,-4.619238281250034],[13.072753906250028,-4.634765625],[13.057324218750011,-4.651074218750026],[12.947460937500011,-4.695312499999986],[12.829687499999977,-4.73662109374996],[12.451464843750017,-5.071484374999969],[12.453222656250034,-5.090625],[12.52236328125008,-5.148925781250028],[12.484570312500011,-5.71875],[12.213671875000074,-5.758691406249994],[12.177148437499994,-5.324804687499977],[12.018359375000074,-5.004296874999966],[12.50146484375,-4.5875]]]]},"properties":{"name":"Angola","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[20.06396484375,42.54726562499999],[20.485449218750006,42.223388671875],[20.566210937500017,41.873681640624994],[20.48896484375001,41.272607421874994],[20.709277343750017,40.928369140624994],[20.964257812500023,40.849902343749996],[20.95576171875001,40.775292968749994],[21.030859375,40.622460937499994],[20.881640625000017,40.467919921874994],[20.65742187500001,40.1173828125],[20.4560546875,40.065576171874994],[20.408007812500017,40.049462890624994],[20.383691406250023,40.0171875],[20.338476562500006,39.991064453125],[20.311132812500006,39.979443359375],[20.311328125000017,39.95078125],[20.381640625000017,39.841796875],[20.382421875,39.802636718749994],[20.206835937500017,39.653515625],[20.13105468750001,39.66162109375],[20.05976562500001,39.699121093749994],[20.022558593750006,39.710693359375],[20.001269531250017,39.709423828125],[19.851855468750017,40.0435546875],[19.322265625,40.407080078125],[19.45917968750001,40.40537109375],[19.3375,40.663818359375],[19.57568359375,41.640429687499996],[19.577539062500023,41.7875],[19.342382812500006,41.869091796875],[19.280664062500023,42.17255859375],[19.65449218750001,42.628564453124994],[19.78828125000001,42.476171875],[20.06396484375,42.54726562499999]]]},"properties":{"name":"Albania","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[19.66230468750001,60.187158203124994],[19.53652343750005,60.14497070312501],[19.551367187500063,60.24384765625001],[19.66230468750001,60.187158203124994]]],[[[19.989550781250074,60.351171875],[20.258886718750063,60.26127929687499],[19.799804687500057,60.08173828125001],[19.68691406250005,60.267626953125045],[19.84765625000003,60.22055664062506],[19.823046875000074,60.390185546875045],[19.989550781250074,60.351171875]]]]},"properties":{"name":"Aland","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[1.7060546875,42.503320312499994],[1.534082031250023,42.441699218749996],[1.448828125,42.437451171875],[1.428125,42.46132812499999],[1.414843750000017,42.548388671874996],[1.428320312500006,42.5958984375],[1.501367187500023,42.642724609374994],[1.568164062500017,42.635009765625],[1.709863281250023,42.604443359375],[1.739453125000011,42.575927734375],[1.740234375,42.55673828125],[1.713964843750006,42.525634765625],[1.7060546875,42.503320312499994]]]},"properties":{"name":"Andorra","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[53.927832031250006,24.177197265624983],[53.63447265625004,24.169775390624977],[53.83378906250002,24.258935546875023],[53.927832031250006,24.177197265624983]]],[[[53.3322265625001,24.258593750000045],[53.19091796874997,24.290917968749966],[53.412402343750074,24.411035156250023],[53.3322265625001,24.258593750000045]]],[[[56.29785156250003,25.650683593750045],[56.38798828125002,24.97919921875004],[56.06386718750005,24.73876953125],[56.00058593750006,24.953222656249977],[55.795703125000074,24.868115234374955],[55.76083984375006,24.24267578125],[55.92861328125005,24.215136718750074],[55.98515625000002,24.063378906249966],[55.4684570312501,23.94111328125001],[55.53164062499999,23.81904296875001],[55.1999023437501,23.034765625000034],[55.185839843750074,22.7041015625],[55.104296875000074,22.621484375000023],[52.55507812500005,22.932812499999955],[51.592578125000074,24.07885742187503],[51.56835937500003,24.286181640625074],[51.76757812500003,24.25439453125],[51.84316406250005,24.010888671875023],[52.118554687499994,23.97109375],[52.64824218750002,24.154638671875006],[53.80175781249997,24.069482421874966],[54.14794921875003,24.17119140624999],[54.39707031250006,24.278173828125034],[54.74677734375004,24.810449218750023],[55.94121093750002,25.793994140625017],[56.08046875,26.06264648437505],[56.16748046875003,26.047460937499977],[56.144628906250006,25.690527343750006],[56.29785156250003,25.650683593750045]]]]},"properties":{"name":"United Arab Emirates","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-64.54916992187498,-54.71621093749998],[-63.81542968749997,-54.725097656250014],[-64.637353515625,-54.90253906250001],[-64.75732421875,-54.82656249999999],[-64.54916992187498,-54.71621093749998]]],[[[-68.65322265624994,-54.85361328124999],[-68.62993164062499,-52.65263671875004],[-68.24013671875,-53.08183593749999],[-68.43115234375,-53.0552734375],[-68.48852539062497,-53.260937499999976],[-68.16113281249997,-53.30644531250001],[-68.00849609374995,-53.5640625],[-67.29423828125002,-54.049804687500014],[-66.23564453124999,-54.53349609374997],[-65.17900390624993,-54.678125],[-65.47114257812495,-54.91464843749999],[-66.5111328125,-55.032128906249945],[-67.127099609375,-54.90380859375001],[-68.65322265624994,-54.85361328124999]]],[[[-61.084716796875,-23.65644531250001],[-60.83984375000003,-23.85810546874997],[-59.89248046874994,-24.093554687499974],[-59.18725585937497,-24.56230468749999],[-57.82167968749994,-25.136425781249983],[-57.56313476562494,-25.473730468749963],[-57.943115234375,-26.05292968750001],[-58.18149414062498,-26.30742187499999],[-58.222070312499994,-26.65],[-58.618603515624955,-27.13212890624996],[-58.64174804687494,-27.196093750000017],[-58.60483398437498,-27.314355468750037],[-58.16826171874993,-27.27343749999997],[-56.437158203124966,-27.553808593749977],[-56.16406250000003,-27.321484374999983],[-55.95146484374996,-27.325683593749957],[-55.789990234374926,-27.416406249999966],[-55.71464843749996,-27.41484375],[-55.632910156250006,-27.35712890624997],[-55.59379882812502,-27.288085937500014],[-55.597265625,-27.207617187499963],[-55.56489257812498,-27.15],[-55.496728515624966,-27.11533203124999],[-55.45063476562498,-27.068359375000014],[-55.426660156249994,-27.00927734374997],[-55.13593750000001,-26.931152343749957],[-54.934472656249994,-26.70253906250001],[-54.677734375,-26.308789062499997],[-54.631933593750006,-26.005761718749994],[-54.615869140624994,-25.576074218750023],[-54.44394531249998,-25.625],[-54.15458984374999,-25.523046874999963],[-53.89116210937499,-25.66884765625001],[-53.668554687500006,-26.288183593749977],[-53.83818359375002,-27.121093750000014],[-54.32700195312495,-27.423535156249997],[-54.82910156250003,-27.55058593750003],[-55.10151367187501,-27.866796874999963],[-55.72548828125002,-28.20410156250003],[-55.68725585937497,-28.38164062499996],[-55.890527343749994,-28.370019531249994],[-56.938623046874994,-29.594824218750034],[-57.22465820312499,-29.782128906249994],[-57.40522460937501,-30.03388671875004],[-57.563867187499994,-30.139941406249974],[-57.60888671875003,-30.187792968750045],[-57.65087890624997,-30.295019531250034],[-57.71269531249996,-30.38447265624997],[-57.83120117187502,-30.495214843749963],[-57.87250976562501,-30.591015625000026],[-57.81059570312499,-30.85859375000001],[-57.88632812499998,-30.937402343749994],[-57.86840820312497,-31.104394531249994],[-57.89335937499999,-31.195312499999957],[-58.03339843750001,-31.416601562500006],[-58.053857421874994,-31.494921874999974],[-58.009667968749966,-31.534375],[-57.98798828124998,-31.576171875],[-58.00698242187494,-31.684960937499966],[-58.04233398437495,-31.769238281249997],[-58.16748046874997,-31.87265625],[-58.18901367187499,-31.924218750000037],[-58.16040039062503,-31.986523437500026],[-58.156347656250006,-32.0515625],[-58.17700195312494,-32.11904296875002],[-58.16479492187494,-32.18486328125002],[-58.119726562500006,-32.24892578125002],[-58.12304687499997,-32.321875],[-58.201171875,-32.471679687500014],[-58.219970703125,-32.563964843749986],[-58.17099609374998,-32.95927734374996],[-58.424462890624994,-33.11152343749998],[-58.54721679687498,-33.66347656249998],[-58.392480468749966,-34.192968750000034],[-58.52548828124998,-34.29619140625002],[-58.28334960937494,-34.68349609375005],[-57.54785156250003,-35.018945312499994],[-57.170654296875,-35.3625],[-57.35390624999994,-35.72031249999998],[-57.33544921875,-36.026757812499966],[-57.07617187499994,-36.296777343749994],[-56.74946289062501,-36.346484375],[-56.67202148437494,-36.85126953124998],[-57.546972656250034,-38.085644531250026],[-58.17919921874994,-38.435839843750045],[-59.82832031250001,-38.83818359375003],[-61.112207031249994,-38.99296875000003],[-61.84790039062497,-38.961816406249994],[-62.33476562499993,-38.80009765625],[-62.29506835937502,-39.24326171874996],[-62.053662109374955,-39.373828125],[-62.179345703124994,-39.38046875000002],[-62.076806640624966,-39.46152343750002],[-62.131542968749926,-39.82539062499998],[-62.28691406249996,-39.89531250000002],[-62.40185546875003,-40.19658203125002],[-62.24633789062494,-40.674609374999974],[-62.39501953124997,-40.89082031249997],[-62.95903320312493,-41.10966796875006],[-63.621777343749955,-41.15976562499996],[-64.86948242187503,-40.735839843750014],[-65.13339843749998,-40.88066406250003],[-64.98637695312496,-42.102050781249986],[-64.53774414062494,-42.25458984374998],[-64.57099609374998,-42.416015625],[-64.42041015625003,-42.43378906249998],[-64.10087890624993,-42.395117187500006],[-64.06118164062494,-42.266113281250014],[-64.228515625,-42.21826171874996],[-63.795556640624994,-42.113867187500006],[-63.6298828125,-42.28271484375003],[-63.61733398437502,-42.695800781249986],[-64.03476562499998,-42.88125],[-64.48784179687499,-42.51347656250006],[-64.97070312499997,-42.66630859375002],[-65.02690429687496,-42.75888671874996],[-64.31914062499999,-42.968945312500026],[-64.83994140624998,-43.18886718749998],[-65.25234374999997,-43.571875],[-65.26552734375,-44.2796875],[-65.64760742187502,-44.661425781250045],[-65.63876953125,-45.0078125],[-66.19013671874995,-44.96474609375002],[-66.94140625,-45.25732421875003],[-67.59956054687495,-46.05253906250003],[-67.5064453125,-46.44277343749995],[-66.77685546874994,-47.005859375],[-65.99853515625,-47.09375],[-65.73808593749999,-47.34492187499998],[-65.81430664062495,-47.63818359374996],[-66.22524414062502,-47.826757812500006],[-65.93422851562497,-47.826757812500006],[-65.81005859374997,-47.941113281250026],[-67.46630859375,-48.95175781250004],[-67.68486328125002,-49.2466796875],[-67.82597656249999,-49.91962890625005],[-68.2572265625,-50.104589843749984],[-68.66757812500003,-49.75253906250003],[-68.66162109374997,-49.93574218750005],[-68.97958984375,-50.003027343749984],[-68.59794921874996,-50.00947265624997],[-68.421875,-50.15791015625001],[-69.04477539062495,-50.49912109374998],[-69.35859374999993,-51.028125],[-69.20102539062498,-50.99365234375001],[-69.03530273437497,-51.48896484375002],[-69.46542968750003,-51.58447265625003],[-68.96533203125003,-51.67714843749999],[-68.443359375,-52.35664062500004],[-69.96025390624993,-52.00820312500002],[-71.91865234374995,-51.98955078125004],[-72.40766601562501,-51.54082031250002],[-72.34023437499997,-50.68183593749999],[-72.50981445312496,-50.607519531250034],[-73.15292968749998,-50.73828125000003],[-73.50126953124996,-50.125292968750024],[-73.55419921875,-49.463867187500014],[-73.46157226562497,-49.31386718750001],[-73.13525390625,-49.30068359374999],[-73.03364257812501,-49.014355468750004],[-72.65126953125,-48.84160156249998],[-72.582861328125,-48.47539062499999],[-72.35473632812497,-48.36582031250005],[-72.32832031250001,-48.11005859374998],[-72.517919921875,-47.87636718749998],[-72.34594726562497,-47.49267578124997],[-71.90498046875001,-47.201660156250014],[-71.94023437499999,-46.83125],[-71.69965820312501,-46.6513671875],[-71.87568359374998,-46.160546875],[-71.63154296874998,-45.95371093749998],[-71.74619140624998,-45.57890625],[-71.34931640624995,-45.33193359374995],[-71.5962890625,-44.97919921875004],[-72.04169921874998,-44.90419921875004],[-72.06372070312503,-44.771875],[-71.26113281250002,-44.763085937499966],[-71.15971679687496,-44.56025390625004],[-71.21259765624998,-44.44121093750003],[-71.82001953124993,-44.38310546875],[-71.68007812500002,-43.92958984374998],[-71.90498046875001,-43.34755859374998],[-71.750634765625,-43.237304687499986],[-72.14643554687498,-42.990039062499974],[-72.10820312499993,-42.25185546874995],[-71.75,-42.04677734375001],[-71.91127929687497,-41.650390624999986],[-71.93212890624994,-40.69169921874999],[-71.70898437499997,-40.381738281249994],[-71.81831054687493,-40.17666015624995],[-71.65976562499998,-40.02080078125],[-71.71992187499995,-39.63525390624997],[-71.53945312499997,-39.60244140624995],[-71.40156249999995,-38.93505859374996],[-70.858642578125,-38.60449218750003],[-71.16757812499998,-37.76230468749996],[-71.19218750000002,-36.84365234375004],[-71.05551757812498,-36.52373046874996],[-70.40478515625,-36.06171874999998],[-70.41572265625001,-35.52304687500002],[-70.55517578125,-35.246875],[-70.39316406250003,-35.146875],[-70.05205078124999,-34.30078124999997],[-69.85244140625,-34.224316406250026],[-69.81962890624999,-33.28378906249999],[-70.08486328125002,-33.20175781249998],[-70.02197265625,-32.88457031250002],[-70.36376953125,-32.08349609374997],[-70.25439453125,-31.957714843750026],[-70.585205078125,-31.569433593749963],[-70.51958007812493,-31.1484375],[-70.30908203124994,-31.02265625000004],[-70.15322265625,-30.360937499999963],[-69.95634765624996,-30.35820312500003],[-69.84428710937493,-30.175],[-69.95996093749997,-30.078320312500026],[-70.02680664062501,-29.324023437500017],[-69.82788085937497,-29.10322265624997],[-69.65693359374995,-28.413574218749986],[-69.17441406249998,-27.924707031250037],[-68.84633789062494,-27.153710937499994],[-68.59208984375002,-27.140039062499966],[-68.31865234374999,-26.973242187500006],[-68.59160156249999,-26.47041015624997],[-68.41450195312498,-26.153710937500023],[-68.59208984375002,-25.420019531250034],[-68.38422851562495,-25.091894531249977],[-68.56201171875,-24.74736328125003],[-68.25029296875002,-24.391992187500023],[-67.35620117187503,-24.033789062499963],[-67.00878906249994,-23.00136718750005],[-67.19487304687493,-22.821679687500037],[-66.99111328125,-22.509863281250006],[-66.71171874999999,-22.216308593749986],[-66.36518554687501,-22.113769531249957],[-66.32246093750001,-22.053125],[-66.28212890624997,-21.94746093750001],[-66.24760742187496,-21.83046875],[-66.22016601562495,-21.802539062499974],[-66.174658203125,-21.805664062499986],[-66.09858398437495,-21.83505859375002],[-66.05859375,-21.87949218750002],[-65.86015624999999,-22.019726562499983],[-65.77104492187493,-22.099609375000014],[-65.68618164062497,-22.11025390625005],[-65.51879882812497,-22.094531250000045],[-64.99262695312498,-22.109667968750017],[-64.60551757812499,-22.228808593750045],[-64.52363281250001,-22.37158203125],[-64.47773437499998,-22.485351562499986],[-64.44550781249998,-22.585351562500023],[-64.37397460937498,-22.761035156250017],[-64.32529296875,-22.82763671875],[-64.30791015624993,-22.7953125],[-64.26640625000002,-22.60332031249996],[-63.97612304687502,-22.072558593750003],[-63.92167968749993,-22.028613281250017],[-62.843359375,-21.997265625000026],[-62.62597656250003,-22.29042968749998],[-62.54155273437496,-22.349609374999957],[-62.37250976562498,-22.439160156249997],[-62.21416015624996,-22.612402343750034],[-61.798535156249955,-23.18203125],[-61.084716796875,-23.65644531250001]]]]},"properties":{"name":"Argentina","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[46.490625,38.90668945312498],[46.1144531250001,38.877783203125034],[45.977441406249994,39.24389648437503],[45.76630859375004,39.37846679687499],[45.78447265625002,39.54560546875001],[45.456835937500074,39.494482421875006],[45.15283203125003,39.58266601562502],[45.03164062500005,39.76513671874997],[44.76826171875004,39.70351562500005],[44.28925781250004,40.040380859375006],[43.66621093750004,40.12636718750002],[43.56933593750003,40.48237304687498],[43.72265624999997,40.71953124999999],[43.43945312500003,41.10712890625001],[44.077246093750006,41.182519531249994],[44.81132812500002,41.259375],[45.001367187499994,41.29096679687498],[45.188574218750006,41.14741210937504],[45.07050781250004,41.075585937499966],[45.5875,40.846923828125],[45.37890624999997,40.67358398437506],[45.45439453125002,40.532373046874966],[45.96464843750002,40.233789062499966],[45.8859375000001,40.024853515624955],[45.57978515625004,39.9775390625],[46.202050781249994,39.59448242187503],[46.48144531249997,39.55517578125003],[46.36523437500003,39.402490234374994],[46.584765625000074,39.22368164062499],[46.400292968749994,39.1921875],[46.490625,38.90668945312498]]]},"properties":{"name":"Armenia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-170.72626953125,-14.351171875],[-170.8205078125,-14.312109375],[-170.568115234375,-14.266796875000011],[-170.72626953125,-14.351171875]]]},"properties":{"name":"American Samoa","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[69.2824218750001,-49.05888671875002],[69.16718750000004,-48.88291015624996],[69.36875,-48.89042968749998],[69.2824218750001,-49.05888671875002]]],[[[69.18486328125002,-49.10957031250004],[69.59277343749997,-48.97099609375005],[69.64404296875003,-49.11738281250003],[69.40507812500002,-49.18173828125],[69.5423828125,-49.25566406250005],[70.32021484375005,-49.05859374999996],[70.55546875000007,-49.201464843750024],[70.38613281250005,-49.433984374999966],[70.16582031250002,-49.34296874999998],[69.75996093750004,-49.430175781249986],[69.98642578125006,-49.58164062500003],[70.2477539062501,-49.53066406250003],[70.12431640625002,-49.70439453124999],[69.153125,-49.5296875],[68.99296875000007,-49.704980468750016],[68.81474609375002,-49.69960937499999],[68.88339843750006,-49.16494140624995],[68.76953125000003,-49.06591796875003],[69.00244140624997,-48.661230468750006],[69.13613281250005,-48.86103515625003],[69.05214843750005,-49.08193359375001],[69.18486328125002,-49.10957031250004]]],[[[51.83457031250006,-46.43994140625],[51.65927734375006,-46.37363281249999],[51.7418945312501,-46.32685546874997],[51.83457031250006,-46.43994140625]]]]},"properties":{"name":"Fr. S. Antarctic Lands","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[-61.71606445312503,17.037011718749994],[-61.85966796874996,17.013330078124966],[-61.887109374999966,17.09814453125],[-61.81728515624994,17.168945312500057],[-61.71606445312503,17.037011718749994]]]},"properties":{"name":"Antigua and Barb.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[147.35605468750006,-43.396972656250014],[147.30888671875007,-43.50078125000002],[147.10498046875003,-43.43115234374996],[147.28388671875004,-43.278906250000034],[147.35605468750006,-43.396972656250014]]],[[[145.04296875000003,-40.78671875],[145.28300781250002,-40.76992187500002],[146.31748046875006,-41.16347656250001],[146.72343750000002,-41.07802734375001],[146.84814453124997,-41.16806640624996],[146.98984375000006,-40.99238281249997],[147.45478515625004,-41.00166015624998],[147.62167968750012,-40.844726562499986],[147.87294921875005,-40.87255859374997],[147.96875,-40.779589843750045],[148.215234375,-40.85488281250002],[148.34257812500007,-42.21533203124997],[148.21367187500002,-41.97001953125],[147.92441406250006,-42.5724609375],[147.94541015625006,-43.18183593749997],[147.7858398437501,-43.22001953125002],[147.69892578125004,-43.12255859374997],[147.64794921874997,-43.02060546874999],[147.8,-42.928125],[147.57382812500006,-42.84570312499997],[147.4523437500001,-43.03339843750001],[147.29794921875006,-42.790917968749994],[147.24501953125005,-43.21591796874999],[146.99697265625005,-43.15634765625002],[147.07734375000004,-43.27587890625003],[146.87392578125,-43.6125],[146.54853515625004,-43.50888671874999],[146.04316406250004,-43.547167968749974],[145.99443359375007,-43.37607421875002],[146.20800781249997,-43.31621093749999],[145.8732421875001,-43.29238281250002],[145.48759765625002,-42.92666015625004],[145.19882812500006,-42.23085937500004],[145.46826171874997,-42.492871093750026],[145.51660156249997,-42.3544921875],[145.33105468750003,-42.14707031250002],[145.23486328124997,-42.19697265624997],[145.23818359375,-42.01962890624999],[144.76611328125003,-41.39003906249998],[144.64609375000006,-40.980859375],[144.71855468750002,-40.67226562500002],[145.04296875000003,-40.78671875]]],[[[148.23691406250006,-40.515136718749986],[148.18779296875007,-40.592578125000045],[148.11728515625012,-40.52148437499996],[148.23691406250006,-40.515136718749986]]],[[[144.784375,-40.506738281249966],[144.74804687499997,-40.589453125000034],[144.7833984375001,-40.434863281249974],[144.784375,-40.506738281249966]]],[[[148.32626953125006,-40.30693359375003],[148.40400390625004,-40.486523437500026],[148.02011718750012,-40.40419921874995],[148.32626953125006,-40.30693359375003]]],[[[148.000390625,-39.75761718750003],[148.29736328125003,-39.985742187499966],[148.31357421875012,-40.173535156250026],[148.10566406250004,-40.26210937499995],[147.76718750000012,-39.87031249999998],[148.000390625,-39.75761718750003]]],[[[143.92792968750004,-40.116113281249966],[143.83857421875004,-39.90410156250003],[144.00078125000007,-39.580175781250034],[144.14101562500005,-39.953808593750026],[143.92792968750004,-40.116113281249966]]],[[[145.31445312500003,-38.49082031249996],[145.35507812500012,-38.55703124999995],[145.12841796875003,-38.52763671875],[145.31445312500003,-38.49082031249996]]],[[[137.59648437500007,-35.73867187499998],[137.92890625000004,-35.72607421875],[138.12343750000005,-35.85234375],[137.67089843749997,-35.897949218750014],[137.44843750000004,-36.07480468749999],[137.20957031250012,-35.982421875],[136.7550781250001,-36.03310546875002],[136.540625,-35.89013671875003],[136.63867187499997,-35.74882812500002],[137.33408203125006,-35.59248046875004],[137.58496093749997,-35.620214843750006],[137.59648437500007,-35.73867187499998]]],[[[153.53876953125004,-27.436425781250037],[153.42656250000002,-27.70644531249998],[153.43544921875,-27.40537109375002],[153.53876953125004,-27.436425781250037]]],[[[113.18300781250005,-26.053125],[112.96425781250005,-25.78310546875001],[112.94707031250002,-25.531542968750017],[113.18300781250005,-26.053125]]],[[[153.07744140625002,-25.75078125],[152.97666015625012,-25.551367187499963],[153.03808593750003,-25.193164062500003],[153.22753906249997,-25.00576171875001],[153.14375,-24.814843750000023],[153.25693359375012,-24.72890625],[153.35019531250012,-25.063085937499963],[153.07744140625002,-25.75078125]]],[[[151.14658203125006,-23.49082031250002],[151.24013671875,-23.529687500000037],[151.23828124999997,-23.77578125],[151.03330078125006,-23.530175781250037],[151.14658203125006,-23.49082031250002]]],[[[115.44619140625005,-20.78779296875001],[115.31806640625004,-20.850585937500014],[115.43457031249997,-20.66796875000003],[115.44619140625005,-20.78779296875001]]],[[[149.04375,-20.29150390624997],[148.93886718750005,-20.283691406249986],[148.98105468750012,-20.153515625000026],[149.04375,-20.29150390624997]]],[[[146.27832031249997,-18.23125],[146.29882812499997,-18.48476562500005],[146.09882812500004,-18.251757812500003],[146.27832031249997,-18.23125]]],[[[139.45917968750004,-17.11455078124996],[139.49277343750006,-16.990429687499983],[139.57089843750006,-17.09443359375004],[139.45917968750004,-17.11455078124996]]],[[[139.50781250000003,-16.57304687499996],[139.1595703125,-16.74169921875003],[139.29296875000003,-16.467285156249986],[139.58789062499997,-16.39521484374997],[139.69775390624997,-16.514941406250017],[139.50781250000003,-16.57304687499996]]],[[[137.09365234375005,-15.778125],[136.94267578125002,-15.711718749999989],[137.00957031250007,-15.594824218749977],[137.09365234375005,-15.778125]]],[[[124.59726562500006,-15.40195312500002],[124.52421875000002,-15.421484375],[124.51933593750002,-15.26748046874998],[124.59726562500006,-15.40195312500002]]],[[[125.19882812500006,-14.57949218749998],[125.0912109375,-14.59169921874998],[125.15996093750002,-14.456054687499972],[125.19882812500006,-14.57949218749998]]],[[[136.71464843750002,-13.803906249999983],[136.89082031250004,-13.786621093750014],[136.74531250000004,-14.072656250000023],[136.95078125000006,-14.184277343750026],[136.89433593750002,-14.293066406249977],[136.33544921875003,-14.211816406250037],[136.42470703125,-13.864843749999963],[136.6556640625,-13.675878906250006],[136.71464843750002,-13.803906249999983]]],[[[136.23740234375006,-13.824511718750003],[136.12265625000012,-13.816601562499983],[136.21542968750012,-13.664746093750054],[136.23740234375006,-13.824511718750003]]],[[[136.33867187500007,-11.602343749999989],[136.18027343750006,-11.676757812499957],[136.47929687500002,-11.465917968749991],[136.33867187500007,-11.602343749999989]]],[[[130.45927734375007,-11.679296875000034],[130.60625,-11.816601562500026],[130.04326171875007,-11.787304687500011],[130.19755859375007,-11.658203125],[130.15283203124997,-11.477539062499972],[130.29492187499997,-11.33681640624998],[130.45927734375007,-11.679296875000034]]],[[[130.6188476562501,-11.376074218749991],[131.02304687500006,-11.334375],[131.26826171875004,-11.18984375],[131.53857421874997,-11.436914062500037],[130.95097656250007,-11.926464843750026],[130.51191406250004,-11.617871093749955],[130.38457031250002,-11.1921875],[130.6188476562501,-11.376074218749991]]],[[[136.59853515625,-11.378906249999943],[136.52656250000004,-11.438867187499994],[136.78027343749997,-11.0125],[136.59853515625,-11.378906249999943]]],[[[132.59335937500006,-11.302832031249991],[132.48378906250005,-11.037304687499983],[132.57880859375004,-10.968847656249977],[132.59335937500006,-11.302832031249991]]],[[[143.17890625000004,-11.954492187499966],[143.11025390625,-12.303515625000017],[143.40156250000004,-12.639941406249989],[143.5866210937501,-13.443652343750031],[143.54843750000012,-13.74101562499996],[143.75634765625003,-14.348828124999969],[143.96181640625005,-14.462890625000028],[144.473046875,-14.231835937500023],[144.64804687500006,-14.492480468750017],[145.28769531250006,-14.943164062499989],[145.42607421875002,-16.406152343749966],[145.75478515625,-16.879492187500034],[145.91210937499997,-16.9125],[146.12587890625005,-17.63525390625],[146.03222656249997,-18.272851562500037],[146.3332031250001,-18.55371093749997],[146.38339843750006,-18.97705078124997],[147.13876953125006,-19.39316406250002],[147.41855468750012,-19.378125],[147.7423828125001,-19.770117187499977],[148.759375,-20.28955078125003],[148.88476562499997,-20.480859375],[148.72998046874997,-20.4677734375],[148.68369140625012,-20.58017578124999],[149.20488281250007,-21.125097656249977],[149.45410156249997,-21.57871093750002],[149.70390625000002,-22.440527343750006],[149.82246093750004,-22.389843749999983],[149.97441406250007,-22.55068359374998],[149.94189453125003,-22.30810546875003],[150.07617187500003,-22.16445312499998],[150.54130859375002,-22.55908203125],[150.56855468750004,-22.38398437500004],[150.67246093750012,-22.418164062499983],[150.84316406250005,-23.4580078125],[151.15380859375003,-23.784082031249994],[151.83164062500006,-24.12294921875001],[152.12988281250003,-24.59755859374998],[152.45634765625007,-24.802441406249983],[152.65429687499997,-25.201953125000017],[152.91347656250005,-25.432128906250014],[152.98496093750012,-25.816210937500003],[153.16494140625,-25.964160156250045],[153.11679687500006,-27.194433593750034],[153.57568359375003,-28.24052734374999],[153.6168945312501,-28.673046875],[153.03056640625002,-30.563378906249994],[152.94394531250012,-31.43486328124999],[152.5592773437501,-32.045703125],[152.4704101562501,-32.439062500000034],[152.13652343750002,-32.678125],[152.1642578125001,-32.75742187499996],[151.812890625,-32.90107421875001],[151.29208984375012,-33.580957031249966],[151.28027343750003,-33.92666015625005],[151.12480468750007,-34.00527343749998],[151.23154296875006,-34.0296875],[150.8712890625001,-34.49912109374996],[150.80458984375,-35.01289062500001],[150.19531249999997,-35.83359374999996],[149.93271484375012,-37.528515625000026],[149.480859375,-37.77119140625],[147.87675781250002,-37.93417968749998],[146.8568359375,-38.663476562499966],[146.21748046875004,-38.72744140625004],[146.33662109375004,-38.89423828125],[146.46660156250007,-38.84033203125003],[146.40000000000012,-39.14550781250003],[146.1583984375001,-38.86572265624996],[145.93535156250002,-38.90175781250002],[145.79082031250007,-38.66699218749997],[145.39726562500002,-38.53535156249998],[145.54218750000004,-38.39384765625002],[145.4757812500001,-38.24375],[145.29277343750002,-38.237597656249974],[144.95957031250012,-38.500781250000045],[144.71777343749997,-38.34033203125004],[144.91142578125007,-38.34404296874999],[145.11992187500007,-38.091308593750014],[144.89130859375004,-37.899804687499994],[144.39550781250003,-38.13691406249998],[144.6652343750001,-38.20996093750003],[143.53896484375005,-38.82089843749998],[142.45585937500002,-38.38632812499999],[141.725,-38.27138671875002],[141.5939453125001,-38.38779296875002],[141.42421875,-38.36347656250004],[141.0109375000001,-38.07695312500003],[140.39042968750007,-37.89667968749998],[139.78427734375012,-37.24580078124998],[139.85732421875,-36.662109375],[139.72900390625003,-36.37138671875002],[138.9689453125001,-35.58076171874997],[139.17802734375007,-35.52304687500002],[139.289453125,-35.61132812499997],[139.28251953125002,-35.375390624999966],[138.521875,-35.6423828125],[138.184375,-35.612695312499994],[138.5111328125,-35.02441406249996],[138.48994140625004,-34.76357421875002],[138.0892578125,-34.16982421875002],[137.69169921875002,-35.14296875000004],[136.88359375000007,-35.23974609375004],[137.01425781250012,-34.91582031250003],[137.39101562500005,-34.91328124999997],[137.49384765625004,-34.16113281250003],[137.9318359375001,-33.57910156250003],[137.85234375000007,-33.20078124999996],[137.99257812500005,-33.094238281250014],[137.78320312500003,-32.578125],[137.79091796875,-32.82324218749996],[137.44228515625,-33.1935546875],[137.23730468750003,-33.62949218749999],[136.43066406249997,-34.02998046875004],[135.891015625,-34.660937499999974],[135.96972656249997,-34.98183593749998],[135.7923828125,-34.863281249999986],[135.64755859375006,-34.93964843750001],[135.12304687499997,-34.58574218750003],[135.21679687499997,-34.48730468749996],[135.45,-34.58105468749996],[135.21894531250004,-33.959765625000045],[134.88876953125012,-33.62636718749998],[134.79101562499997,-33.32832031250001],[134.60771484375002,-33.19013671875001],[134.30126953124997,-33.16503906249996],[134.17353515625004,-32.979101562500006],[134.10039062500007,-32.748632812500034],[134.22714843750006,-32.73056640624999],[134.23417968750007,-32.54853515625004],[133.66533203125007,-32.207226562500054],[133.21210937500004,-32.18378906249998],[132.75742187500012,-31.95625],[132.21464843750002,-32.00712890624996],[131.14365234375006,-31.49570312500005],[130.78300781250002,-31.604003906249986],[129.1876953125001,-31.659960937500017],[127.31982421874997,-32.2640625],[125.91718750000004,-32.296972656250034],[124.75878906250003,-32.882714843749994],[124.24375,-33.01523437499999],[123.50683593749997,-33.916210937500054],[122.15097656250006,-33.99179687499999],[122.06113281250006,-33.874414062499966],[121.40507812500007,-33.826757812500034],[119.85410156250012,-33.97470703124998],[119.45058593750005,-34.368261718750034],[118.89531250000007,-34.47988281250004],[118.13554687500002,-34.98662109374999],[117.58193359375005,-35.09775390624998],[116.51718750000012,-34.98789062499998],[115.98671875000005,-34.795019531250034],[115.56503906250012,-34.42578125000003],[115.00878906250003,-34.25585937499997],[114.9938476562501,-33.51533203125],[115.3587890625,-33.63994140624999],[115.68300781250005,-33.19287109375003],[115.6984375000001,-31.694531250000054],[115.07792968750007,-30.560449218750023],[114.85683593750005,-29.14296875],[114.16513671875012,-28.08066406250002],[114.028125,-27.34726562499999],[113.18476562500004,-26.182226562499963],[113.32324218749997,-26.243847656249997],[113.35605468750012,-26.080468750000023],[113.58164062500006,-26.558105468749986],[113.73369140625002,-26.59511718749998],[113.83642578125003,-26.50058593749999],[113.85283203125007,-26.33212890625005],[113.39531250000002,-25.71328125],[113.4513671875001,-25.599121093750014],[113.7130859375001,-25.83076171875004],[113.72373046875006,-26.129785156250037],[113.85390625,-26.01445312499999],[113.99199218750007,-26.32148437500001],[114.09033203124997,-26.393652343749963],[114.21572265625,-26.289453124999966],[114.2142578125,-25.851562500000014],[113.41767578125004,-24.435644531250034],[113.48984375000012,-23.869628906250014],[113.7570312500001,-23.418164062500054],[113.79511718750004,-22.91455078125003],[113.68281250000004,-22.637792968749963],[114.02285156250005,-21.881445312499977],[114.12392578125005,-21.828613281249957],[114.14160156250003,-22.483105468749983],[114.37773437500007,-22.341503906249997],[114.70927734375002,-21.82343749999997],[115.45615234375012,-21.49169921874997],[116.0109375000001,-21.030371093749963],[116.7067382812501,-20.653808593749986],[117.40625,-20.72119140625003],[118.19921875000003,-20.37519531249997],[118.75146484374997,-20.261914062499983],[119.10449218749997,-19.995312500000026],[119.58593750000003,-20.03828125],[120.99794921875,-19.604394531249966],[121.33769531250002,-19.31992187500002],[121.83378906250002,-18.477050781249986],[122.34541015625004,-18.11191406250002],[122.14746093749997,-17.54902343750001],[122.2609375000001,-17.135742187500014],[122.72041015625004,-16.78769531249999],[122.97070312499997,-16.436816406250003],[123.56308593750006,-17.520898437499966],[123.59355468750007,-17.03037109375005],[123.83105468750003,-17.120800781249997],[123.8744140625,-16.918652343750026],[123.4904296875001,-16.49072265624997],[123.62597656249997,-16.416308593750003],[123.60703125000006,-16.224023437499994],[123.72890625,-16.192480468749963],[123.85917968750007,-16.38232421875],[124.04443359374997,-16.264941406249974],[124.30039062500006,-16.388281249999977],[124.77197265624997,-16.40263671874996],[124.40488281250006,-16.298925781249977],[124.41640625,-16.133496093750026],[124.5768554687501,-16.11367187499998],[124.64853515625012,-15.870214843750034],[124.50429687500005,-15.972460937499989],[124.38164062500002,-15.758203125000037],[124.43955078125012,-15.493554687500037],[124.56162109375012,-15.496289062499969],[124.69257812500004,-15.273632812499997],[125.06298828125003,-15.44228515624998],[125.0729492187501,-15.306738281249991],[124.90917968750003,-15.310058593749957],[124.83906250000004,-15.160742187500006],[125.03818359375012,-15.004101562499969],[125.35566406250004,-15.119824218750011],[125.17871093749997,-14.714746093749994],[125.57978515625004,-14.483203124999989],[125.62773437500002,-14.256640625000017],[125.70458984374997,-14.29140625],[125.66162109375003,-14.529492187500011],[125.81953125000004,-14.469140624999966],[125.890625,-14.61796875],[126.0207031250001,-14.49453125],[126.0539062500001,-13.977246093750026],[126.1842773437501,-14.00205078125002],[126.25849609375004,-14.163574218749972],[126.403125,-14.018945312499994],[126.5697265625,-14.160937499999974],[126.7806640625,-13.955175781249977],[126.77558593750004,-13.788476562500037],[126.90322265625,-13.744140624999972],[127.45761718750006,-14.031445312499969],[128.18046875000007,-14.711621093749983],[128.06943359375012,-15.329296874999969],[128.15546875000004,-15.225585937499972],[128.25468750000002,-15.298535156250011],[128.175,-15.043164062500026],[128.57578125000006,-14.774511718750006],[129.05820312500012,-14.884375],[129.21582031249997,-15.160253906249991],[129.26757812500003,-14.871484375000051],[129.63476562499997,-15.139746093749991],[129.637109375,-14.850976562500037],[129.84873046875012,-14.828906249999989],[129.60468750000004,-14.647070312499977],[129.69794921875004,-14.557421875000017],[129.37871093750002,-14.39248046874998],[129.70986328125,-13.979980468749972],[129.83886718749997,-13.572949218749997],[130.25976562500003,-13.30224609375],[130.1349609375001,-13.145507812499957],[130.1681640625001,-12.957421875],[130.39990234374997,-12.68789062499999],[130.61748046875007,-12.646875],[130.62265625000006,-12.43105468749998],[130.8673828125001,-12.557812499999955],[130.87382812500007,-12.367187500000028],[131.29160156250006,-12.067871093749972],[131.43828125000002,-12.27695312500002],[132.06406250000006,-12.28076171875],[132.25322265625007,-12.186035156249972],[132.41103515625,-12.295117187499997],[132.51054687500002,-12.134863281250034],[132.71279296875,-12.1234375],[132.63046875000012,-12.035156249999972],[132.67421875000005,-11.649023437499991],[132.47519531250006,-11.491503906249974],[132.07285156250006,-11.474707031250006],[131.82246093750004,-11.302441406249997],[131.96152343750006,-11.180859375000011],[132.15546875000004,-11.311132812499991],[132.33398437499997,-11.223535156249994],[132.6828125000001,-11.505566406249997],[132.96103515625012,-11.407324218749963],[133.18525390625004,-11.705664062499991],[133.90419921875,-11.832031249999972],[134.4173828125,-12.052734375],[134.73027343750002,-11.984375],[135.02968750000005,-12.19375],[135.2179687500001,-12.221679687499957],[135.92246093750012,-11.825781250000034],[135.70439453125007,-12.209863281250037],[136.00849609375004,-12.19140625],[136.08183593750007,-12.422460937500006],[136.26064453125,-12.433789062499997],[136.32851562500005,-12.305566406249994],[136.24990234375,-12.173046875],[136.44335937499997,-11.951464843749974],[136.7194335937501,-12.226464843749952],[136.89746093749997,-12.243554687499966],[136.94746093750004,-12.34990234374996],[136.53701171875,-12.784277343749991],[136.59433593750012,-13.003808593750051],[136.46103515625006,-13.225195312500034],[136.29414062500004,-13.137988281250031],[135.92734375000012,-13.304296874999977],[135.95449218750005,-13.934863281250017],[135.40517578125005,-14.758203124999966],[135.4533203125001,-14.923144531250003],[136.20537109375002,-15.403417968749963],[136.29140625000005,-15.570117187500003],[136.70488281250007,-15.685253906250011],[136.78466796874997,-15.89423828125004],[137.00214843750004,-15.878320312499994],[137.70371093750006,-16.233007812499963],[138.24501953125005,-16.718359374999977],[139.00986328125006,-16.899316406249994],[139.2484375,-17.328613281249957],[140.03583984375004,-17.702636718749957],[140.51113281250005,-17.62451171875003],[140.83046875,-17.414453125000037],[141.29140625,-16.46347656250002],[141.62548828124997,-15.056640625000014],[141.52294921875003,-14.470117187499994],[141.59433593750006,-14.152832031250014],[141.47255859375,-13.797558593750011],[141.64541015625,-13.259082031250003],[141.61357421875002,-12.943457031250006],[141.92978515625006,-12.73984375],[141.67773437500003,-12.491406250000011],[141.68857421875012,-12.351074218750028],[141.87050781250005,-11.9755859375],[141.96113281250004,-12.054296874999963],[142.168359375,-10.946582031249974],[142.45644531250005,-10.707324218749989],[142.60507812500012,-10.748242187499983],[142.55273437500003,-10.874414062500023],[142.7796875,-11.115332031249977],[142.87255859374997,-11.821386718750034],[143.17890625000004,-11.954492187499966]]],[[[142.2748046875,-10.704785156250011],[142.19140624999997,-10.762011718750031],[142.1310546875001,-10.640625],[142.19794921875004,-10.59199218750004],[142.2748046875,-10.704785156250011]]]]},"properties":{"name":"Australia","childNum":30}},{"geometry":{"type":"Polygon","coordinates":[[[16.953125,48.598828125],[16.86542968750001,48.3869140625],[17.147363281250023,48.00595703125],[17.06660156250001,47.707568359374996],[16.421289062500023,47.674462890624994],[16.676562500000017,47.536035156249994],[16.44287109375,47.39951171875],[16.453417968750017,47.006787109375],[16.093066406250017,46.86328125],[15.957617187500006,46.677636718749994],[14.893261718750011,46.605908203125],[14.5498046875,46.399707031249996],[13.7,46.520263671875],[13.490039062500017,46.555566406249994],[13.3515625,46.557910156249996],[13.16875,46.57265625],[12.479199218750011,46.672509765624994],[12.38828125,46.70263671875],[12.330078125,46.759814453124996],[12.267968750000023,46.835888671875],[12.154101562500017,46.93525390625],[12.130761718750023,46.98476562499999],[12.16552734375,47.028173828125],[12.201269531250006,47.060888671875],[12.197167968750023,47.075],[12.16943359375,47.08212890625],[11.775683593750017,46.986083984375],[11.527539062500011,46.997412109375],[11.433203125,46.983056640624994],[11.244433593750017,46.97568359375],[11.133886718750006,46.936181640624994],[11.0634765625,46.859130859375],[11.025097656250011,46.79697265625],[10.993261718750006,46.777001953124994],[10.92734375,46.769482421875],[10.828906250000017,46.775244140625],[10.759765625,46.793310546875],[10.689257812500017,46.84638671875],[10.579785156250011,46.8537109375],[10.479394531250023,46.855126953124994],[10.452832031250011,46.86494140625],[10.45458984375,46.8994140625],[10.414941406250023,46.964404296874996],[10.349414062500017,46.98476562499999],[10.133496093750011,46.851513671875],[9.580273437500011,47.057373046875],[9.527539062500011,47.270751953125],[9.625878906250023,47.467041015625],[9.524023437500006,47.52421875],[9.748925781250023,47.575537109375],[9.839160156250017,47.552294921874996],[9.971582031250023,47.505322265625],[10.034082031250023,47.473583984375],[10.059863281250017,47.449072265625],[10.066308593750023,47.393359375],[10.200292968750006,47.363427734374994],[10.183007812500023,47.27880859375],[10.369140625,47.366064453125],[10.40390625,47.4169921875],[10.439453125,47.5515625],[10.482812500000023,47.541796875],[10.65869140625,47.547216796875],[10.741601562500023,47.52412109375],[10.873046875,47.52021484375],[11.0419921875,47.393115234374996],[12.185644531250006,47.61953125],[12.203808593750011,47.646728515625],[12.196875,47.70908203125],[12.209277343750017,47.71826171875],[12.268359375000017,47.702734375],[12.353540736607165,47.70264787946429],[12.492553013392856,47.68551897321428],[12.685839843750017,47.669335937499994],[12.771386718750023,47.639404296875],[12.796191406250017,47.60703125],[12.781152343750023,47.5904296875],[12.7828125,47.56416015625],[12.809375,47.5421875],[12.87890625,47.5064453125],[12.968066406250017,47.47568359375],[13.014355468750011,47.478076171874996],[13.031542968750017,47.5080078125],[13.047949218750006,47.579150390624996],[13.054101562500023,47.655126953125],[12.897656250000011,47.721875],[12.953515625000023,47.890625],[12.760351562500006,48.106982421874996],[13.215234375000023,48.301904296874994],[13.322851562500006,48.33125],[13.409375,48.394140625],[13.459863281250023,48.56455078125],[13.4716796875,48.571826171874996],[13.486621093750017,48.581835937499996],[13.636623883928596,48.580904017857144],[13.785351562500011,48.587451171874996],[13.798828125,48.6216796875],[13.802929687500011,48.747509765625],[13.814746093750017,48.766943359375],[14.049121093750017,48.602490234375],[14.691308593750023,48.59921875],[15.066796875000023,48.997851562499996],[16.057226562500006,48.754785156249994],[16.543554687500006,48.796240234375],[16.953125,48.598828125]]]},"properties":{"name":"Austria","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[46.1144531250001,38.877783203125034],[45.4796875000001,39.00625],[44.81718750000002,39.65043945312496],[44.76826171875004,39.70351562500005],[45.03164062500005,39.76513671874997],[45.15283203125003,39.58266601562502],[45.456835937500074,39.494482421875006],[45.78447265625002,39.54560546875001],[45.76630859375004,39.37846679687499],[45.977441406249994,39.24389648437503],[46.1144531250001,38.877783203125034]]],[[[48.572851562500006,41.84448242187503],[49.45673828125004,40.79985351562502],[49.77597656250006,40.583984375],[50.18251953125005,40.50478515625002],[50.3659179687501,40.279492187499955],[49.91884765625005,40.31640625000003],[49.55117187499999,40.19414062499999],[49.3244140625001,39.60834960937501],[49.36279296875003,39.349560546874955],[49.16533203125002,39.03027343750003],[49.013476562500074,39.13398437500001],[48.85449218750003,38.83881835937501],[48.86875,38.43549804687498],[48.59267578125005,38.41108398437498],[47.99648437499999,38.85375976562503],[48.292089843750006,39.01884765624999],[48.10439453125005,39.241113281249994],[48.322167968749994,39.39907226562502],[47.995898437500074,39.683935546875034],[46.490625,38.90668945312498],[46.400292968749994,39.1921875],[46.584765625000074,39.22368164062499],[46.36523437500003,39.402490234374994],[46.48144531249997,39.55517578125003],[46.202050781249994,39.59448242187503],[45.57978515625004,39.9775390625],[45.8859375000001,40.024853515624955],[45.96464843750002,40.233789062499966],[45.45439453125002,40.532373046874966],[45.37890624999997,40.67358398437506],[45.5875,40.846923828125],[45.07050781250004,41.075585937499966],[45.188574218750006,41.14741210937504],[45.001367187499994,41.29096679687498],[45.2171875,41.423193359375006],[45.28095703125004,41.449560546875034],[46.086523437500006,41.183837890625],[46.43095703125002,41.077050781249994],[46.534375,41.08857421875004],[46.62636718750005,41.15966796875006],[46.66240234375002,41.24550781250002],[46.67255859375004,41.28681640625001],[46.61894531250002,41.34375],[46.30546875000002,41.507714843749994],[46.18427734375004,41.70214843749997],[46.42988281250004,41.890966796875006],[46.74931640625002,41.812597656250006],[47.31767578125002,41.28242187500001],[47.79101562499997,41.19926757812502],[48.572851562500006,41.84448242187503]]]]},"properties":{"name":"Azerbaijan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[30.553613281250023,-2.400097656250011],[30.53369140625,-2.42626953125],[30.441992187500006,-2.613476562500011],[30.424218750000023,-2.6416015625],[30.47333984375001,-2.6943359375],[30.42402343750001,-2.824023437500003],[30.433496093750023,-2.87451171875],[30.515039062500023,-2.917578125],[30.604296875000017,-2.935253906250011],[30.70947265625,-2.977246093750011],[30.7802734375,-2.98486328125],[30.811132812500006,-3.116406250000011],[30.79023437500001,-3.274609375000011],[30.4,-3.65390625],[29.947265625,-4.307324218750011],[29.7177734375,-4.455859375],[29.403222656250023,-4.449316406250006],[29.211816406250023,-3.833789062500003],[29.224414062500017,-3.053515625],[29.01435546875001,-2.72021484375],[29.10205078125,-2.595703125],[29.390234375,-2.80859375],[29.698046875000017,-2.794726562500003],[29.8681640625,-2.71640625],[29.93017578125,-2.339550781250011],[30.117285156250006,-2.416601562500006],[30.408496093750017,-2.31298828125],[30.553613281250023,-2.400097656250011]]]},"properties":{"name":"Burundi","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[5.693554687500011,50.774755859375006],[5.993945312500017,50.75043945312504],[6.340917968750006,50.451757812500034],[6.116503906250045,50.120996093749966],[6.08906250000004,50.15458984374996],[6.054785156249977,50.154296875],[5.976269531250068,50.167187499999955],[5.866894531250068,50.08281250000002],[5.817382812500028,50.01269531250003],[5.7880859375,49.96123046875002],[5.744042968749994,49.91962890624998],[5.789746093749983,49.53828125000001],[5.50732421875,49.51088867187502],[4.867578125000051,49.78813476562502],[4.818652343750045,50.153173828125034],[4.545019531250063,49.96025390624999],[4.149316406250023,49.971582031249994],[4.174609375000017,50.24648437500005],[3.689355468750023,50.30605468750002],[3.595410156250068,50.47734374999999],[3.27333984375008,50.53154296875002],[3.10683593750008,50.779443359374994],[2.759375,50.750634765624994],[2.52490234375,51.097119140624955],[3.35009765625,51.37768554687503],[3.43251953125008,51.24575195312505],[3.902050781250011,51.20766601562502],[4.226171875000034,51.38647460937503],[5.03095703125004,51.46909179687498],[5.214160156250045,51.278955078124966],[5.796484375000034,51.153076171875],[5.693554687500011,50.774755859375006]]]},"properties":{"name":"Belgium","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[3.595410156250011,11.6962890625],[3.553906250000011,11.631884765624989],[3.490527343750017,11.49921875],[3.48779296875,11.395410156249994],[3.638867187500011,11.176855468749991],[3.65625,11.154589843749989],[3.6953125,11.1203125],[3.71640625,11.07958984375],[3.7568359375,10.76875],[3.83447265625,10.607421875],[3.771777343750017,10.417626953124994],[3.646582031250006,10.408984374999989],[3.60205078125,10.004541015624994],[3.3251953125,9.778466796874994],[3.044921875,9.083837890624991],[2.774804687500023,9.048535156249997],[2.703125,8.371826171875],[2.68603515625,7.873730468749997],[2.719335937500006,7.616259765624989],[2.7509765625,7.541894531249994],[2.78515625,7.476855468749989],[2.783984375000017,7.443408203124989],[2.765820312500011,7.422509765624994],[2.75048828125,7.395068359374989],[2.756738281250023,7.067919921874989],[2.721386718750011,6.980273437499989],[2.731738281250017,6.852832031249989],[2.7529296875,6.771630859374994],[2.774609375000011,6.711718749999989],[2.753710937500017,6.661767578124994],[2.735644531250017,6.595703125],[2.706445312500023,6.369238281249991],[1.62265625,6.216796875],[1.777929687500006,6.294628906249997],[1.530957031250011,6.992431640625],[1.624707031250011,6.997314453125],[1.600195312500006,9.050048828125],[1.3857421875,9.361669921874991],[1.330078125,9.996972656249994],[0.763378906250011,10.386669921874997],[0.900488281250006,10.993261718749991],[1.4267578125,11.447119140624991],[1.980371093750023,11.418408203124997],[2.38916015625,11.897070312499991],[2.366015625000017,12.221923828125],[2.805273437500006,12.383837890624989],[3.595410156250011,11.6962890625]]]},"properties":{"name":"Benin","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[0.217480468750011,14.911474609374991],[0.163867187500017,14.497216796874994],[0.382519531250011,14.245800781249997],[0.42919921875,13.972119140624997],[0.6181640625,13.703417968750003],[1.201171875,13.357519531249991],[0.988476562500011,13.36484375],[0.9873046875,13.041894531249994],[1.56494140625,12.635400390624994],[2.104589843750006,12.701269531249991],[2.226269531250011,12.466064453125],[2.072949218750011,12.309375],[2.38916015625,11.897070312499991],[1.980371093750023,11.418408203124997],[1.4267578125,11.447119140624991],[0.900488281250006,10.993261718749991],[0.49267578125,10.954980468749994],[-0.068603515625,11.115625],[-0.299462890624994,11.166894531249994],[-0.627148437499983,10.927392578124994],[-1.04248046875,11.010058593749989],[-2.829931640624977,10.998388671874991],[-2.914892578124977,10.592333984374989],[-2.791162109374994,10.432421874999989],[-2.780517578125,9.745849609375],[-2.765966796874977,9.658056640624991],[-2.706201171874994,9.533935546875],[-2.695849609374989,9.481347656249994],[-2.7171875,9.457128906249991],[-2.7666015625,9.424707031249994],[-2.816748046874977,9.425830078124989],[-2.875146484374994,9.500927734374997],[-2.90087890625,9.534619140624997],[-2.948144531249994,9.610742187499994],[-2.98828125,9.687353515624991],[-3.042626953124994,9.720898437499997],[-3.095800781249977,9.752099609374994],[-3.160693359374989,9.849169921874989],[-3.223535156249994,9.895458984374997],[-3.289697265624994,9.882226562499994],[-3.581152343749977,9.92431640625],[-3.790625,9.9171875],[-4.18115234375,9.78173828125],[-4.267187499999977,9.743261718749991],[-4.332226562499983,9.645703125],[-4.406201171874983,9.647998046874989],[-4.526611328125,9.723486328124991],[-4.625830078124977,9.713574218749997],[-4.721777343749977,9.756542968749997],[-5.262304687499977,10.319677734374991],[-5.523535156249977,10.426025390625],[-5.490478515625,11.042382812499994],[-5.250244140625,11.375781249999989],[-5.288134765624989,11.827929687499989],[-4.699316406249977,12.076171875],[-4.4287109375,12.337597656249997],[-4.480615234374994,12.672216796874991],[-4.227099609374989,12.793701171875],[-4.328710937499977,13.119042968749994],[-4.151025390624994,13.306201171875003],[-3.947314453124989,13.402197265624991],[-3.527636718749989,13.182714843749991],[-3.3017578125,13.28076171875],[-3.248632812499977,13.658349609374994],[-2.950830078124994,13.6484375],[-2.873925781249994,13.950732421875003],[-2.586718749999989,14.227587890625003],[-2.113232421874983,14.16845703125],[-1.97304687499999,14.45654296875],[-1.049560546875,14.81953125],[-0.760449218749983,15.047753906249994],[-0.235888671874989,15.059423828124991],[0.217480468750011,14.911474609374991]]]},"properties":{"name":"Burkina Faso","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[91.94921875000003,21.50805664062503],[91.85947265625012,21.532958984375057],[91.90771484374997,21.722949218750017],[91.94921875000003,21.50805664062503]]],[[[91.87382812500002,21.832128906249977],[91.8375976562501,21.750244140625],[91.85068359375012,21.927050781250045],[91.87382812500002,21.832128906249977]]],[[[91.15078125000005,22.175195312499966],[91.04472656250002,22.10517578125001],[91.0794921875,22.519726562499983],[91.15078125000005,22.175195312499966]]],[[[91.55673828125006,22.38222656250005],[91.41132812500004,22.475683593750006],[91.45605468749997,22.61650390624999],[91.55673828125006,22.38222656250005]]],[[[90.77763671875007,22.089306640624983],[90.51503906250005,22.06513671875001],[90.68046875000007,22.327490234375006],[90.50292968749997,22.835351562499994],[90.59648437500002,22.863525390625057],[90.86816406250003,22.48486328125],[90.77763671875007,22.089306640624983]]],[[[88.94072265625002,26.24536132812497],[88.97041015625004,26.250878906250023],[88.95195312500002,26.412109375],[89.01865234375012,26.410253906249977],[89.28925781250004,26.03759765625],[89.54990234375006,26.005273437499994],[89.57275390625003,26.13232421875003],[89.67089843750003,26.21381835937504],[89.8229492187501,25.94140625000003],[89.82490234375004,25.56015625],[89.80087890625012,25.33613281250001],[89.81406250000006,25.305371093749955],[89.86630859375012,25.293164062499955],[90.11962890625003,25.21997070312497],[90.61308593750002,25.16772460937497],[92.04970703125005,25.16948242187499],[92.46835937500006,24.94414062499999],[92.38496093750004,24.848779296875023],[92.25126953125007,24.895068359375045],[92.22832031250002,24.88134765625],[92.22666015625012,24.77099609374997],[92.11748046875002,24.493945312500017],[92.06416015625004,24.374365234375006],[91.84619140624997,24.17529296875003],[91.72656250000003,24.20507812499997],[91.35019531250012,24.06049804687501],[91.16044921875007,23.66064453125],[91.359375,23.06835937500003],[91.43623046875004,23.19990234375001],[91.55351562500002,22.991552734375006],[91.61953125,22.97968750000001],[91.75097656250003,23.053515625000017],[91.75419921875007,23.287304687499955],[91.79003906249997,23.361035156249983],[91.937890625,23.504687500000017],[91.92949218750007,23.598242187499977],[91.92958984375,23.68598632812501],[91.97851562500003,23.691992187499977],[92.04404296875006,23.677783203125017],[92.24609375000003,23.683593750000057],[92.33378906250002,23.242382812499955],[92.36162109375002,22.929003906250074],[92.46445312500006,22.734423828125045],[92.49140625000004,22.685400390625006],[92.5612304687501,22.04804687500001],[92.57490234375004,21.978076171875045],[92.58281250000002,21.940332031249994],[92.5934570312501,21.46733398437499],[92.63164062500002,21.306201171875045],[92.33056640624997,21.439794921874977],[92.17958984375005,21.293115234375023],[92.32412109375,20.791845703125063],[92.0560546875,21.1748046875],[91.86337890625012,22.350488281249966],[91.7970703125001,22.297460937500006],[91.48007812500006,22.884814453125045],[91.2162109375,22.642236328124994],[90.94560546875002,22.597021484375034],[90.65625,23.025488281250006],[90.60400390624997,23.59135742187499],[90.55566406249997,23.42153320312505],[90.26914062500012,23.455859375000017],[90.59091796875012,23.266406250000045],[90.43505859374997,22.751904296874955],[90.61611328125,22.362158203125034],[90.23056640625006,21.82978515625004],[90.07119140625005,21.887255859375017],[90.20957031250006,22.156591796875006],[89.95419921875006,22.022851562500023],[89.91806640625012,22.11616210937501],[89.98515625000002,22.466406250000063],[89.81191406250005,21.983496093750006],[89.56855468750004,21.767431640625034],[89.48320312500007,22.275537109374994],[89.50058593750006,21.914355468750045],[89.35371093750004,21.72109375],[89.09394531250004,21.872753906249983],[89.05,22.274609374999983],[88.92070312500002,22.632031249999955],[88.89970703125002,22.843505859375057],[88.85058593749997,23.040527343750057],[88.928125,23.186621093750063],[88.72441406250002,23.254980468750034],[88.69765625,23.493017578125034],[88.63574218749997,23.55],[88.56738281249997,23.674414062500034],[88.69980468750006,24.002539062500006],[88.71376953125,24.069628906250017],[88.72656250000003,24.186230468749955],[88.7335937500001,24.23090820312501],[88.72353515625,24.27490234375],[88.64228515625004,24.325976562500017],[88.49853515625003,24.34663085937504],[88.3375,24.45385742187503],[88.225,24.460644531249983],[88.14550781250003,24.485791015624955],[88.07910156249997,24.549902343750063],[88.02343750000003,24.62783203125005],[88.03027343749997,24.66445312500005],[88.0451171875001,24.713037109374994],[88.1498046875,24.914648437500034],[88.1888671875,24.92060546875001],[88.27949218750004,24.881933593750034],[88.31337890625005,24.8818359375],[88.37294921875,24.961523437499977],[88.45625,25.18842773437504],[88.57382812500006,25.18789062499999],[88.92978515625012,25.222998046875063],[88.94414062500002,25.290771484375],[88.85478515625002,25.333544921875017],[88.76914062500006,25.490478515625],[88.50244140624997,25.537011718749994],[88.14746093749997,25.811425781250023],[88.1066406250001,25.841113281250045],[88.15078125000005,26.08715820312497],[88.33398437499997,26.257519531249955],[88.44042968749997,26.369482421875034],[88.38623046875003,26.471533203125034],[88.35146484375005,26.482568359374966],[88.36992187500002,26.564111328124994],[88.51826171875004,26.517773437499955],[88.68281250000004,26.291699218749983],[88.94072265625002,26.24536132812497]]]]},"properties":{"name":"Bangladesh","childNum":6}},{"geometry":{"type":"Polygon","coordinates":[[[28.585351562500023,43.742236328124996],[28.465429687500006,43.389306640624994],[28.133691406250023,43.39560546875],[27.92890625000001,43.1861328125],[27.88886718750001,42.74970703125],[27.484765625000023,42.468066406249996],[28.014453125000017,41.969042968749996],[27.47480468750001,41.946875],[27.294921875,42.079541015625],[27.24433593750001,42.09326171875],[27.01171875,42.058642578124996],[26.96875,42.02685546875],[26.884863281250006,41.991845703124994],[26.615332031250006,41.964892578124996],[26.549707031250023,41.896728515625],[26.51142578125001,41.8263671875],[26.3603515625,41.8015625],[26.327246093750006,41.772802734375],[26.31796875,41.744677734374996],[26.320898437500006,41.716552734375],[26.200585937500023,41.743798828124994],[26.107421875,41.72568359375],[26.085546875,41.704150390624996],[26.066015625,41.673242187499994],[26.1435546875,41.521533203124996],[26.155175781250023,41.434863281249996],[26.135351562500006,41.3857421875],[26.06640625,41.35068359375],[25.92333984375,41.311914062499994],[25.784960937500017,41.330419921875],[25.52705078125001,41.2998046875],[25.381933593750006,41.26435546875],[25.25117187500001,41.243554687499994],[24.773730468750017,41.356103515624994],[24.595996093750017,41.442724609375],[24.5693359375,41.4673828125],[24.51826171875001,41.552539062499996],[24.487890625,41.555224609374996],[24.056054687500023,41.527246093749994],[24.03291015625001,41.469091796875],[24.011328125,41.46005859375],[23.635156250000023,41.386767578124996],[23.53583984375001,41.386035156249996],[23.433398437500017,41.398730468749996],[23.3720703125,41.3896484375],[23.23984375,41.3849609375],[23.15595703125001,41.322070312499996],[22.916015625,41.336279296875],[23.00361328125001,41.73984375],[22.836816406250023,41.993603515625],[22.344042968750017,42.31396484375],[22.42207031250001,42.328857421875],[22.445703125000023,42.359130859375],[22.523535156250006,42.440966796874996],[22.53242187500001,42.481201171875],[22.524218750000017,42.50390625],[22.43623046875001,42.6291015625],[22.466796875,42.84248046875],[22.799902343750006,42.985742187499994],[22.976855468750017,43.18798828125],[22.85957031250001,43.25234375],[22.819726562500023,43.300732421875],[22.767578125,43.354150390624994],[22.554589843750023,43.454492187499994],[22.36962890625,43.781298828124996],[22.36542968750001,43.862109375],[22.399023437500006,43.96953125],[22.420800781250023,44.007421875],[22.452529688228115,44.0510441391688],[22.547921095934313,44.113823956634434],[22.688564844478098,44.254306249271906],[23.02851562500001,44.077978515625],[22.868261718750006,43.947900390624994],[22.919042968750006,43.83447265625],[25.4970703125,43.670800781249994],[26.2158203125,44.007275390625],[27.0869140625,44.167382812499994],[27.425390625,44.0205078125],[27.88427734375,43.987353515624996],[28.221972656250017,43.772851562499994],[28.585351562500023,43.742236328124996]]]},"properties":{"name":"Bulgaria","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[50.60722656250002,25.883105468750003],[50.57490234375001,25.806787109374994],[50.465917968750006,25.965527343749997],[50.46992187500001,26.228955078124997],[50.5859375,26.24072265625],[50.60722656250002,25.883105468750003]]]},"properties":{"name":"Bahrain","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-73.02685546874994,21.19238281250003],[-73.16455078125003,20.979150390625023],[-73.68115234375003,20.9755859375],[-73.68037109374995,21.103320312500017],[-73.52309570312497,21.190820312499966],[-73.23535156249997,21.15449218750004],[-73.05849609375,21.313378906249994],[-73.02685546874994,21.19238281250003]]],[[[-73.041015625,22.429052734375006],[-72.74726562500001,22.32739257812497],[-73.16191406250002,22.380712890625006],[-73.041015625,22.429052734375006]]],[[[-74.20673828124998,22.213769531250023],[-74.27690429687499,22.183691406250006],[-73.906396484375,22.527441406250063],[-73.95419921874995,22.71552734375001],[-73.84995117187503,22.731054687500063],[-73.83652343749998,22.538427734374977],[-74.20673828124998,22.213769531250023]]],[[[-74.05751953124997,22.723486328125034],[-74.27460937499995,22.71166992187503],[-74.30703125,22.83959960937497],[-74.05751953124997,22.723486328125034]]],[[[-74.84047851562494,22.894335937500017],[-75.22333984374995,23.165332031250074],[-75.13056640624998,23.267919921875006],[-75.31596679687502,23.668359374999966],[-74.84047851562494,22.894335937500017]]],[[[-75.66455078124997,23.45014648437501],[-76.03710937500003,23.60278320312503],[-76.01044921875001,23.671386718750057],[-75.66455078124997,23.45014648437501]]],[[[-74.42944335937497,24.068066406249955],[-74.55092773437502,23.96894531250001],[-74.52690429687502,24.105078125000034],[-74.42944335937497,24.068066406249955]]],[[[-77.65771484374994,24.249462890624955],[-77.75527343750002,24.163476562500023],[-77.61538085937494,24.216357421875045],[-77.5615234375,24.136816406250006],[-77.57373046875,23.739160156249994],[-77.77128906249999,23.752539062499977],[-77.99990234374994,24.219824218750063],[-77.65771484374994,24.249462890624955]]],[[[-75.30839843749999,24.2],[-75.50322265624996,24.139062500000023],[-75.40893554687503,24.265771484374994],[-75.72666015625,24.68935546875005],[-75.30839843749999,24.2]]],[[[-77.34755859375,25.013867187499983],[-77.56191406249997,25.030029296875],[-77.27558593750001,25.055761718750006],[-77.34755859375,25.013867187499983]]],[[[-77.74384765625001,24.70742187499999],[-77.74521484375,24.463476562500034],[-78.04492187499997,24.287451171875063],[-78.14580078125002,24.493457031250017],[-78.36650390624993,24.544189453125057],[-78.435302734375,24.627587890624994],[-78.24272460937493,24.65380859375],[-78.21137695312495,25.191259765624977],[-77.97529296874998,25.084814453125063],[-77.74384765625001,24.70742187499999]]],[[[-76.64882812499994,25.487402343750006],[-76.34379882812496,25.33203124999997],[-76.12661132812497,25.14052734375005],[-76.16953125,24.6494140625],[-76.319970703125,24.81767578124999],[-76.21376953124994,24.822460937499983],[-76.160400390625,25.119335937499983],[-76.36928710937502,25.312597656250006],[-76.62070312499998,25.43164062500003],[-76.78066406249997,25.426855468750006],[-76.71083984374997,25.564892578124983],[-76.64882812499994,25.487402343750006]]],[[[-78.49287109375001,26.729052734375017],[-77.92246093749998,26.69111328125001],[-78.74365234374994,26.50068359375004],[-78.98564453124996,26.689501953125045],[-78.79804687500001,26.58242187499999],[-78.59711914062493,26.797949218750006],[-78.49287109375001,26.729052734375017]]],[[[-77.22563476562496,25.904199218750023],[-77.40317382812498,26.02470703124996],[-77.24677734374998,26.156347656250034],[-77.238623046875,26.561132812500006],[-77.510595703125,26.845996093750045],[-77.94375,26.90356445312503],[-77.53388671874995,26.903417968750006],[-77.06635742187501,26.530175781249994],[-77.03828124999998,26.333447265624983],[-77.16728515624996,26.240332031250006],[-77.22563476562496,25.904199218750023]]]]},"properties":{"name":"Bahamas","childNum":14}},{"geometry":{"type":"Polygon","coordinates":[[[19.007128906250045,44.86918945312502],[19.348632812500057,44.88090820312502],[19.118457031250074,44.359960937500006],[19.583789062500017,44.04345703125003],[19.245019531249994,43.96503906250004],[19.495117187500057,43.642871093750045],[19.19433593749997,43.533300781250006],[19.164355468750017,43.53544921874999],[19.11279296874997,43.52773437500002],[19.080078125000057,43.51772460937502],[19.0283203125,43.53251953125002],[18.97421875,43.54233398437498],[18.95068359375,43.52666015624999],[19.036718750000034,43.35732421875002],[19.026660156250017,43.292431640624955],[18.97871093750001,43.28540039062503],[18.934667968750006,43.339453125000034],[18.85107421875003,43.34633789062502],[18.749218750000068,43.283544921875006],[18.67421875000008,43.230810546875006],[18.623632812500063,43.027685546875034],[18.488476562500068,43.01215820312498],[18.44384765625003,42.96845703125004],[18.46601562500001,42.777246093749994],[18.54589843750003,42.64160156249997],[18.436328125000017,42.559716796874994],[17.667578125000063,42.897119140624994],[17.585156250000068,42.93837890625005],[17.650488281250063,43.006591796875],[17.27382812500005,43.44575195312501],[16.300097656250017,44.12451171875],[16.10341796875008,44.52099609375006],[15.736621093750045,44.76582031250001],[15.788085937500057,45.17895507812497],[16.028320312500057,45.18959960937502],[16.29335937500005,45.00883789062496],[16.53066406250008,45.21669921875002],[16.918652343749983,45.27656249999998],[17.812792968750074,45.078125],[18.66259765625,45.07744140624999],[18.83642578125,44.883251953124955],[19.007128906250045,44.86918945312502]]]},"properties":{"name":"Bosnia and Herz.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.14794921875,56.142919921875],[28.284277343750006,56.055908203125],[29.375,55.938720703125],[29.353417968750023,55.784375],[29.412988281250023,55.724853515625],[29.482226562500017,55.6845703125],[29.63007812500001,55.751171875],[29.6845703125,55.7697265625],[29.744140625,55.77041015625],[29.82392578125001,55.7951171875],[29.881640625000017,55.832324218749996],[29.93701171875,55.845263671874996],[30.04267578125001,55.83642578125],[30.23359375000001,55.84521484375],[30.625585937500006,55.666259765625],[30.906835937500006,55.57001953125],[30.90058593750001,55.397412109375],[30.82099609375001,55.3302734375],[30.810546875,55.306982421875],[30.814453125,55.2787109375],[30.87744140625,55.2234375],[30.958886718750023,55.13759765625],[30.97773437500001,55.08779296875],[30.97773437500001,55.05048828125],[30.829882812500017,54.914990234375],[30.804492187500017,54.8609375],[30.791015625,54.806005859375],[30.798828125,54.783251953124996],[30.984179687500017,54.6958984375],[31.12128906250001,54.648486328124996],[31.152148437500017,54.625341796875],[31.074804687500006,54.491796875],[31.18476562500001,54.452978515625],[31.299121093750017,54.29169921875],[31.403613281250017,54.195947265625],[31.62841796875,54.111181640625],[31.7919921875,54.055908203125],[31.825976562500017,54.030712890625],[31.837792968750023,54.00078125],[31.825292968750006,53.935009765625],[31.783007812500017,53.85498046875],[31.754199218750017,53.81044921875],[31.82080078125,53.791943359375],[31.9921875,53.796875],[32.20039062500001,53.78125],[32.45097656250002,53.6533203125],[32.70429687500001,53.336328125],[32.64443359375002,53.32890625],[32.57802734375002,53.31240234375],[32.469335937500006,53.2703125],[32.14199218750002,53.091162109375],[31.849707031250006,53.106201171875],[31.668261718750017,53.200927734375],[31.417871093750023,53.196044921875],[31.38837890625001,53.184814453125],[31.364550781250017,53.138964843749996],[31.30292968750001,53.060888671875],[31.2587890625,53.01669921875],[31.29511718750001,52.989794921874996],[31.35302734375,52.933447265625],[31.442773437500023,52.86181640625],[31.53515625,52.7982421875],[31.564843750000023,52.759228515625],[31.585546875,52.532470703125],[31.57734375000001,52.312304687499996],[31.6015625,52.284814453125],[31.64990234375,52.26220703125],[31.690625,52.220654296875],[31.758593750000017,52.125830078125],[31.76337890625001,52.10107421875],[31.57373046875,52.10810546875],[31.345996093750017,52.10537109375],[31.21796875000001,52.050244140625],[30.98066406250001,52.046191406249996],[30.845703125,51.953076171875],[30.755273437500023,51.895166015625],[30.667285156250017,51.814111328125],[30.583886718750023,51.68896484375],[30.533007812500017,51.596337890624994],[30.56074218750001,51.531494140625],[30.602343750000017,51.471240234374996],[30.611718750000023,51.40634765625],[30.63251953125001,51.355419921875],[30.449511718750017,51.274316406249994],[30.160742187500006,51.477880859375],[29.346484375000017,51.382568359375],[29.10205078125,51.6275390625],[29.06074218750001,51.625439453125],[29.013085937500023,51.598925781249996],[28.97773437500001,51.57177734375],[28.927539062500017,51.562158203124994],[28.849511718750023,51.540185546874994],[28.73125,51.433398437499996],[28.690234375000017,51.438867187499994],[28.647753906250017,51.45654296875],[28.599023437500023,51.542626953124994],[28.532031250000017,51.562451171875],[27.85859375000001,51.5923828125],[27.7,51.477978515625],[27.689746093750017,51.572412109374994],[27.296289062500023,51.597412109375],[27.270117187500006,51.613574218749996],[27.141992187500023,51.75205078125],[27.074121093750023,51.76083984375],[26.95283203125001,51.75400390625],[26.7734375,51.770703125],[25.785742187500006,51.923828125],[24.361914062500006,51.867529296875],[24.280078125000017,51.774707031249996],[24.126855468750023,51.6646484375],[23.978320312500017,51.59130859375],[23.951171875,51.58505859375],[23.8642578125,51.623974609375],[23.79169921875001,51.637109375],[23.706835937500017,51.64130859375],[23.61376953125,51.525390625],[23.605273437500017,51.517919921875],[23.652441406250006,52.040380859375],[23.175097656250017,52.28662109375],[23.915429687500023,52.770263671875],[23.484667968750017,53.939794921875],[23.55908203125,53.91982421875],[23.733691406250017,53.912255859375],[24.191308593750023,53.950439453125],[24.236621093750017,53.919970703124996],[24.31796875,53.89296875],[24.620703125,53.979833984375],[24.768164062500006,53.974658203124996],[24.78925781250001,53.9982421875],[24.82568359375,54.118994140625],[24.869531250000023,54.145166015625],[25.04609375000001,54.133056640625],[25.111425781250006,54.154931640625],[25.179492187500017,54.2142578125],[25.46113281250001,54.292773437499996],[25.505664062500017,54.264941406249996],[25.52734375,54.215136718749996],[25.497363281250017,54.175244140625],[25.573046875000017,54.139892578125],[25.765234375,54.17978515625],[25.702539062500023,54.29296875],[25.61689453125001,54.310107421874996],[25.557519531250023,54.310693359375],[25.54736328125,54.331835937499996],[25.56757812500001,54.37705078125],[25.62031250000001,54.460400390625],[25.68515625,54.535791015625],[25.72480468750001,54.564257812499996],[25.73164062500001,54.590380859374996],[25.722460937500017,54.71787109375],[25.859277343750023,54.919287109375],[25.964453125,54.94716796875],[26.09296875000001,54.9623046875],[26.175195312500023,55.003271484375],[26.250781250000017,55.12451171875],[26.291796875000017,55.139599609375],[26.601171875,55.130175781249996],[26.6484375,55.20419921875],[26.775683593750017,55.273095703125],[26.760156250000023,55.293359375],[26.68125,55.306445312499996],[26.49531250000001,55.318017578125],[26.457617187500006,55.34248046875],[26.469531250000017,55.371923828125],[26.51923828125001,55.44814453125],[26.56660156250001,55.546484375],[26.5908203125,55.62265625],[26.593554687500017,55.667529296874996],[27.052539062500017,55.83056640625],[27.576757812500006,55.798779296875],[28.14794921875,56.142919921875]]]},"properties":{"name":"Belarus","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-87.8529296875,17.4228515625],[-87.92998046874996,17.283007812500017],[-87.826416015625,17.546289062499994],[-87.8529296875,17.4228515625]]],[[[-88.89404296875,15.890625],[-89.2328125,15.888671875],[-89.16147460937503,17.81484375],[-89.13354492187503,17.970800781249977],[-88.80634765624998,17.965527343749983],[-88.52299804687499,18.445898437500063],[-88.29565429687494,18.47241210937503],[-88.34926757812494,18.358837890624983],[-88.1302734375,18.350732421875023],[-88.08525390624999,18.226123046875045],[-88.27172851562494,17.60986328125],[-88.203466796875,17.5166015625],[-88.31342773437501,16.632763671874983],[-88.89404296875,15.890625]]]]},"properties":{"name":"Belize","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-64.73027343749999,32.29345703125],[-64.86284179687499,32.273876953125],[-64.66831054687499,32.38193359375],[-64.73027343749999,32.29345703125]]]},"properties":{"name":"Bermuda","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-58.15976562499999,-20.164648437500006],[-58.18017578125,-19.81787109375],[-59.09052734375,-19.286230468750006],[-60.00737304687499,-19.29755859375001],[-61.7568359375,-19.6453125],[-62.276318359375,-20.5625],[-62.27666015624999,-21.066015625],[-62.65097656249999,-22.233691406250003],[-62.84335937499999,-21.99726562500001],[-63.92167968749999,-22.028613281250003],[-63.97612304687499,-22.072558593750003],[-64.26640624999999,-22.603320312500003],[-64.30791015624999,-22.7953125],[-64.32529296874999,-22.82763671875],[-64.373974609375,-22.761035156250003],[-64.4455078125,-22.58535156250001],[-64.477734375,-22.4853515625],[-64.5236328125,-22.37158203125],[-64.60551757812499,-22.228808593750003],[-64.992626953125,-22.109667968750003],[-65.518798828125,-22.09453125],[-65.686181640625,-22.11025390625001],[-65.77104492187499,-22.099609375],[-65.86015624999999,-22.01972656250001],[-66.05859375,-21.879492187500006],[-66.098583984375,-21.835058593750006],[-66.17465820312499,-21.8056640625],[-66.220166015625,-21.802539062500003],[-66.24760742187499,-21.83046875],[-66.28212890625,-21.94746093750001],[-66.3224609375,-22.053125],[-66.365185546875,-22.11376953125],[-66.71171874999999,-22.21630859375],[-66.99111328125,-22.509863281250006],[-67.19487304687499,-22.82167968750001],[-67.362255859375,-22.85517578125001],[-67.57993164062499,-22.891699218750006],[-67.79443359375,-22.879492187500006],[-67.87944335937499,-22.82294921875001],[-67.88173828125,-22.49335937500001],[-68.18642578125,-21.61855468750001],[-68.197021484375,-21.30029296875],[-68.558251953125,-20.901953125],[-68.484326171875,-20.62841796875],[-68.74516601562499,-20.45859375],[-68.75932617187499,-20.115527343750003],[-68.560693359375,-19.967089843750003],[-68.559375,-19.90234375],[-68.578271484375,-19.856542968750006],[-68.69619140625,-19.74072265625],[-68.69829101562499,-19.72109375],[-68.57529296874999,-19.56015625],[-68.462890625,-19.43281250000001],[-68.470166015625,-19.409960937500003],[-68.49199218749999,-19.381933593750006],[-68.85795898437499,-19.093359375],[-68.96831054687499,-18.96796875000001],[-68.97885742187499,-18.81298828125],[-69.026806640625,-18.65625],[-69.09228515625,-18.28242187500001],[-69.145458984375,-18.14404296875],[-69.0939453125,-18.05048828125001],[-69.28232421874999,-17.96484375],[-69.31337890625,-17.943164062500003],[-69.5109375,-17.50605468750001],[-69.51108398437499,-17.5048828125],[-69.510986328125,-17.46035156250001],[-69.521923828125,-17.388964843750003],[-69.645703125,-17.24853515625],[-69.62485351562499,-17.2001953125],[-69.020703125,-16.6421875],[-69.03291015625,-16.47597656250001],[-68.8427734375,-16.337890625],[-69.21757812499999,-16.14912109375001],[-69.4208984375,-15.640625],[-69.17246093749999,-15.236621093750003],[-69.37470703125,-14.962988281250006],[-69.35947265624999,-14.7953125],[-68.87089843749999,-14.169726562500003],[-69.07412109375,-13.682812500000011],[-68.97861328124999,-12.880078125000011],[-68.68525390625,-12.501953125],[-69.57861328125,-10.951757812500006],[-69.228515625,-10.955664062500006],[-68.84833984375,-11.011132812500009],[-68.678369140625,-11.11279296875],[-68.39799804687499,-11.01875],[-68.0716796875,-10.703125],[-67.99169921875,-10.674414062500006],[-67.83500976562499,-10.662792968750011],[-67.72177734374999,-10.68310546875],[-67.416943359375,-10.389843750000011],[-66.575341796875,-9.89990234375],[-65.396142578125,-9.71240234375],[-65.298583984375,-10.146777343750003],[-65.31308593749999,-10.253027343750006],[-65.395458984375,-10.392285156250011],[-65.4369140625,-10.449023437500003],[-65.44711914062499,-10.507421875],[-65.33403320312499,-10.892773437500011],[-65.32377929687499,-11.024804687500009],[-65.389892578125,-11.246289062500011],[-65.1857421875,-11.74951171875],[-64.783447265625,-12.059375],[-64.42050781249999,-12.439746093750003],[-63.68857421874999,-12.47802734375],[-63.3466796875,-12.680078125],[-63.06748046874999,-12.669140625000011],[-62.76547851562499,-12.997265625000011],[-62.11801757812499,-13.159765625],[-62.09477539062499,-13.241992187500003],[-61.944726562499994,-13.40625],[-61.87412109374999,-13.470410156250011],[-61.789941406249994,-13.525585937500011],[-61.57568359375,-13.524804687500009],[-61.51157226562499,-13.541210937500011],[-61.41606445312499,-13.526562500000011],[-61.129150390625,-13.49853515625],[-61.07700195312499,-13.48974609375],[-60.506591796875,-13.78984375],[-60.372705078124994,-14.41875],[-60.273339843749994,-15.088769531250009],[-60.402001953124994,-15.0927734375],[-60.583203125,-15.098339843750011],[-60.53046875,-15.143164062500006],[-60.38046875,-15.318261718750009],[-60.242333984374994,-15.479589843750006],[-60.20664062499999,-15.901953125],[-60.18720703125,-16.132128906250003],[-60.17558593749999,-16.269335937500003],[-58.53793945312499,-16.328222656250006],[-58.49658203125,-16.32666015625],[-58.42368164062499,-16.307910156250003],[-58.37539062499999,-16.28359375],[-58.345605468749994,-16.284375],[-58.35039062499999,-16.490820312500006],[-58.470605468749994,-16.650195312500003],[-58.478125,-16.70068359375],[-58.45981445312499,-16.910742187500006],[-58.417382812499994,-17.08056640625],[-58.39599609375,-17.23427734375001],[-58.34775390624999,-17.28212890625001],[-57.99091796875,-17.51289062500001],[-57.905029296875,-17.532324218750006],[-57.832470703125,-17.512109375],[-57.78886718749999,-17.573046875],[-57.780175781249994,-17.67177734375001],[-57.66166992187499,-17.947363281250006],[-57.58647460937499,-18.12226562500001],[-57.49565429687499,-18.214648437500003],[-57.57402343749999,-18.279296875],[-57.725,-18.733203125],[-57.783105468749994,-18.91425781250001],[-57.716796875,-19.044042968750006],[-58.131494140624994,-19.74453125],[-57.860742187499994,-19.979589843750006],[-57.887597656249994,-20.02041015625001],[-57.96015625,-20.04072265625001],[-58.021142578124994,-20.05517578125],[-58.09375,-20.15107421875001],[-58.15976562499999,-20.164648437500006]]]},"properties":{"name":"Bolivia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-48.48588867187493,-27.76699218749998],[-48.554589843749994,-27.81220703125004],[-48.542187499999955,-27.57480468749999],[-48.41489257812495,-27.399609375],[-48.48588867187493,-27.76699218749998]]],[[[-48.584423828124955,-26.401562499999983],[-48.665771484375,-26.289648437500006],[-48.53974609374998,-26.170312500000023],[-48.584423828124955,-26.401562499999983]]],[[[-45.26025390624997,-23.889160156249986],[-45.451416015625,-23.895605468749977],[-45.30234375,-23.727539062500014],[-45.26025390624997,-23.889160156249986]]],[[[-44.12929687499994,-23.14189453124999],[-44.36015624999999,-23.17207031250001],[-44.24287109374998,-23.074121093750037],[-44.12929687499994,-23.14189453124999]]],[[[-38.90356445312497,-13.473437499999974],[-38.97758789062496,-13.523535156249963],[-39.02216796874998,-13.445605468749989],[-38.907128906249994,-13.401074218749983],[-38.90356445312497,-13.473437499999974]]],[[[-38.743847656249955,-13.097070312500037],[-38.668115234374966,-12.880175781249989],[-38.601171875,-12.99257812499998],[-38.743847656249955,-13.097070312500037]]],[[[-44.49931640625002,-2.939648437499983],[-44.597753906250006,-3.037597656249943],[-44.4814453125,-2.717578125000031],[-44.49931640625002,-2.939648437499983]]],[[[-44.88310546874996,-1.317871093749986],[-45.020849609375034,-1.372363281249974],[-44.978662109374966,-1.267285156249983],[-44.88310546874996,-1.317871093749986]]],[[[-51.83251953124997,-1.433789062499969],[-51.938378906249966,-1.452636718749986],[-51.680029296875006,-1.086132812500026],[-51.546044921874966,-0.649609375],[-51.25400390624998,-0.54140625],[-51.16074218749998,-0.666699218750011],[-51.27631835937498,-1.02177734374996],[-51.83251953124997,-1.433789062499969]]],[[[-49.62866210937497,-0.229199218749969],[-49.11699218749999,-0.163574218750014],[-48.39267578124995,-0.29736328125],[-48.83359375,-1.390039062500023],[-49.038476562499994,-1.5140625],[-49.17270507812498,-1.41259765625],[-49.233984375000034,-1.59951171874998],[-49.50664062499999,-1.511621093750023],[-49.587890625,-1.712402343749972],[-49.805126953124955,-1.790234375000026],[-50.06572265625002,-1.703808593749997],[-50.50761718749999,-1.787988281250009],[-50.759765625,-1.240234374999972],[-50.72949218749997,-1.126757812499946],[-50.57695312499999,-1.103125],[-50.709619140624994,-1.07773437499999],[-50.796093749999955,-0.90625],[-50.6455078125,-0.27285156249998],[-50.24824218749998,-0.11640625],[-49.62866210937497,-0.229199218749969]]],[[[-50.65288085937499,-0.131640624999989],[-50.926367187500034,-0.327343749999983],[-51.03808593749994,-0.225878906250003],[-50.84218750000002,-0.050195312500009],[-50.65288085937499,-0.131640624999989]]],[[[-49.44389648437499,-0.112402343749977],[-49.83007812499997,-0.093896484375023],[-49.50346679687496,0.083691406250011],[-49.37231445312497,0.001074218749963],[-49.44389648437499,-0.112402343749977]]],[[[-49.73823242187498,0.26816406250002],[-49.917089843750006,-0.023193359375014],[-50.339453125,0.043359375000051],[-50.27265624999998,0.231738281249974],[-49.73823242187498,0.26816406250002]]],[[[-50.42612304687498,0.139257812500048],[-50.44394531249998,-0.007666015624949],[-50.623925781249966,0.054394531249983],[-50.372753906249955,0.590869140625031],[-50.33227539062497,0.259033203125028],[-50.42612304687498,0.139257812500048]]],[[[-50.152929687500006,0.393017578125054],[-50.26132812499998,0.359179687500003],[-50.281689453124955,0.51650390624998],[-50.05883789062503,0.638037109374963],[-50.152929687500006,0.393017578125054]]],[[[-50.29897460937502,1.93852539062496],[-50.45610351562496,1.910498046875034],[-50.49101562499996,2.128613281249969],[-50.34199218749998,2.14174804687498],[-50.29897460937502,1.93852539062496]]],[[[-59.69970703125,4.353515625],[-59.73857421874993,4.226757812500026],[-59.62021484374998,4.023144531250026],[-59.557763671874966,3.960009765625031],[-59.551123046875034,3.933544921874969],[-59.854394531249994,3.5875],[-59.99433593749998,2.689990234375031],[-59.88964843749997,2.362939453125009],[-59.75522460937495,2.27412109375004],[-59.74350585937498,2.12163085937496],[-59.75175781249996,1.962402343750028],[-59.75620117187498,1.900634765624972],[-59.666601562500006,1.746289062499969],[-59.53569335937499,1.7],[-59.23120117187494,1.376025390625031],[-58.82177734374994,1.201220703125031],[-58.787207031250006,1.208496093750014],[-58.73032226562498,1.247509765625054],[-58.68461914062499,1.28105468749996],[-58.511865234374966,1.284667968749986],[-58.506054687499926,1.438671875000011],[-58.39580078124993,1.481738281249989],[-58.38037109375,1.530224609375011],[-58.34067382812498,1.587548828125051],[-58.03466796875,1.520263671875014],[-57.9828125,1.648437500000014],[-57.87343750000002,1.667285156250045],[-57.79565429687497,1.7],[-57.59443359375001,1.704101562499986],[-57.54575195312495,1.726074218750028],[-57.31748046874998,1.963476562499991],[-57.27558593749998,1.959228515625014],[-57.189599609374966,1.981591796875037],[-57.11889648437494,2.013964843749974],[-57.09267578125002,2.005810546874997],[-57.03759765625,1.936474609374997],[-56.96953124999999,1.91640625],[-56.48281249999994,1.942138671874986],[-56.019921874999966,1.842236328124983],[-55.96333007812498,1.85708007812498],[-55.929638671874955,1.8875],[-55.92163085937503,1.976660156250006],[-55.91533203124999,2.039550781250028],[-55.96196289062496,2.09511718749998],[-56.02006835937499,2.15815429687504],[-56.073632812499994,2.236767578124969],[-56.13769531249997,2.259033203124986],[-56.12939453124997,2.299511718749969],[-56.08779296875002,2.341308593750043],[-56.045117187499955,2.364404296875037],[-56.02036132812498,2.392773437500054],[-55.993505859375006,2.497509765624983],[-55.9755859375,2.515966796875006],[-55.957470703124955,2.52045898437504],[-55.730566406250006,2.406152343750023],[-55.385351562500006,2.440625],[-55.34399414062503,2.488769531249972],[-55.28603515625002,2.49965820312498],[-55.18769531249998,2.547509765625037],[-55.114111328125006,2.539208984375037],[-55.07031249999994,2.548339843750028],[-55.005810546874955,2.592968749999983],[-54.97866210937502,2.597656250000043],[-54.968408203124966,2.548339843750028],[-54.92656249999999,2.497363281250045],[-54.876074218750006,2.450390624999969],[-54.72221679687499,2.441650390624972],[-54.69741210937502,2.359814453124997],[-54.66186523437497,2.327539062499994],[-54.61625976562499,2.326757812500006],[-54.59194335937502,2.313769531250031],[-54.55048828125001,2.293066406249991],[-54.51508789062498,2.245458984374963],[-54.43310546875,2.207519531250057],[-54.13007812499998,2.121044921875026],[-53.76777343749998,2.354833984375048],[-52.90346679687502,2.211523437499977],[-52.58300781250003,2.528906249999977],[-52.327880859375,3.18173828125002],[-51.65253906249998,4.061279296874972],[-51.54707031250001,4.31088867187502],[-51.219921874999955,4.093603515624991],[-50.71440429687502,2.134033203125],[-50.458886718749994,1.829589843749972],[-49.957128906250006,1.65986328125004],[-49.898876953124955,1.16298828124998],[-50.29443359374997,0.835742187500003],[-50.755078124999955,0.222558593749966],[-51.28291015625001,-0.085205078125028],[-51.98081054687498,-1.367968749999974],[-52.22924804687497,-1.3625],[-52.664160156250034,-1.551757812500028],[-51.94755859374996,-1.586718749999946],[-50.89492187500002,-0.937597656249963],[-50.690039062500006,-1.761718749999986],[-50.40322265625002,-2.015527343750009],[-49.999218749999955,-1.831835937499974],[-49.71953125000002,-1.926367187499963],[-49.31367187500001,-1.731738281250003],[-49.63652343749996,-2.656933593750026],[-49.45751953125,-2.504589843749983],[-49.21103515624998,-1.916503906249986],[-48.99130859374998,-1.829785156249997],[-48.71000976562496,-1.487695312500023],[-48.46293945312499,-1.613964843749997],[-48.349804687499926,-1.482128906249955],[-48.46806640624996,-1.393847656250003],[-48.44980468749998,-1.145507812499943],[-48.11508789062498,-0.7375],[-47.557324218749955,-0.669921874999957],[-47.418652343749955,-0.765917968749974],[-47.39809570312502,-0.626660156250026],[-45.45859374999995,-1.35625],[-45.32915039062496,-1.71728515625],[-45.07636718749998,-1.466406249999949],[-44.72114257812498,-1.733496093750006],[-44.778515624999955,-1.798828125],[-44.651269531249966,-1.745800781250026],[-44.537792968749955,-2.052734374999943],[-44.75634765624997,-2.265527343749952],[-44.66240234375002,-2.373242187499955],[-44.435449218749966,-2.168066406249991],[-44.38183593749997,-2.365527343749989],[-44.52011718749998,-2.40546875000004],[-44.589013671874994,-2.573437499999983],[-44.72304687500002,-3.204785156249997],[-44.43754882812496,-2.944433593749977],[-44.228613281250006,-2.471289062499949],[-44.105566406250006,-2.493457031250031],[-44.19267578124999,-2.809570312499943],[-43.93291015624999,-2.583496093749986],[-43.45512695312499,-2.502050781250006],[-43.38007812499998,-2.376074218750006],[-42.93671874999998,-2.465039062500011],[-42.24960937499998,-2.7919921875],[-41.876171874999926,-2.746582031249986],[-41.479931640624955,-2.916503906249972],[-40.474560546874926,-2.795605468750026],[-39.96469726562498,-2.861523437499955],[-38.475781249999955,-3.717480468749997],[-38.04882812500003,-4.216406250000034],[-37.626318359375006,-4.592089843750003],[-37.30146484375001,-4.713085937499969],[-37.174658203125006,-4.912402343749974],[-36.590722656249966,-5.097558593749952],[-35.549414062500006,-5.129394531249957],[-35.39257812499994,-5.250878906250009],[-34.833886718749994,-7.024414062500014],[-34.83466796874998,-7.97148437499996],[-35.34086914062499,-9.230664062499983],[-35.76396484374993,-9.702539062500023],[-35.890820312499926,-9.687011718749957],[-35.88544921875001,-9.84765625],[-36.39833984374994,-10.484082031249983],[-36.768310546875,-10.671679687500017],[-37.18281249999998,-11.06845703125002],[-37.35600585937502,-11.403906249999977],[-37.35922851562495,-11.252539062499963],[-37.68872070312503,-12.1],[-38.019238281249955,-12.591308593750028],[-38.401757812499994,-12.966210937500023],[-38.69096679687502,-12.623925781250009],[-38.85175781250001,-12.790136718750034],[-38.76372070312502,-12.9072265625],[-38.835302734375034,-13.147167968750026],[-39.030908203124994,-13.365136718750023],[-39.08935546875,-13.588183593749989],[-38.988623046875006,-13.61503906249996],[-39.04814453124996,-14.043945312500028],[-38.94233398437498,-14.030664062499994],[-39.05957031249997,-14.654785156249957],[-38.88061523437503,-15.864257812499972],[-39.20288085937503,-17.178125],[-39.154003906249926,-17.70390625000003],[-39.650781249999966,-18.252343750000037],[-39.78330078124998,-19.571777343749986],[-40.001367187499994,-19.74199218750003],[-40.39594726562501,-20.56943359375002],[-40.78925781250001,-20.90605468750003],[-40.954541015624926,-21.237890624999963],[-41.04726562499999,-21.505664062499974],[-41.00029296875002,-21.99902343750003],[-41.70551757812498,-22.30966796874999],[-41.980419921874955,-22.580664062499963],[-42.042382812499966,-22.947070312500003],[-42.95830078124996,-22.96708984374999],[-43.154296875,-22.725195312500006],[-43.22416992187502,-22.991210937500014],[-43.898828124999966,-23.10146484375001],[-43.97382812499998,-23.057324218749983],[-43.675976562499955,-23.00947265625001],[-43.86616210937498,-22.910546875000023],[-44.63725585937496,-23.05546875],[-44.67382812499994,-23.206640625000034],[-44.56967773437495,-23.27402343749999],[-45.32539062499998,-23.59970703124999],[-45.464306640624955,-23.802539062500017],[-45.97207031250002,-23.795507812500006],[-46.86728515624998,-24.236328125000014],[-47.989160156249994,-25.03574218749999],[-47.92939453124998,-25.16826171874999],[-48.20273437499998,-25.41650390625003],[-48.18593749999994,-25.309863281249974],[-48.402490234374994,-25.27207031249999],[-48.47612304687499,-25.44296875],[-48.73173828124993,-25.36875],[-48.6921875,-25.49150390625003],[-48.40117187500002,-25.59736328125001],[-48.665771484375,-25.844335937499963],[-48.576318359374994,-25.935449218749966],[-48.61943359374996,-26.17939453125001],[-48.74829101562503,-26.26865234374999],[-48.55415039062498,-27.195996093749997],[-48.62080078124998,-28.075585937499966],[-48.799658203125006,-28.575292968749977],[-49.27128906249999,-28.87119140625005],[-49.745996093749966,-29.363183593749994],[-50.299511718749955,-30.42578125000003],[-50.92138671874997,-31.25839843750002],[-52.039208984374994,-32.11484374999996],[-52.063232421875,-31.830371093750017],[-51.68066406249994,-31.774609375000026],[-51.272167968749955,-31.476953125000037],[-51.16142578124996,-31.11884765625001],[-50.980078125000034,-31.09423828124997],[-50.94082031249994,-30.903710937499966],[-50.68930664062495,-30.70419921874999],[-50.71630859374994,-30.425976562499983],[-50.58193359375002,-30.438867187500037],[-50.56352539062499,-30.25361328125004],[-51.02495117187493,-30.36865234375003],[-51.29804687499998,-30.03486328124997],[-51.15727539062499,-30.364257812500014],[-51.283056640625034,-30.751562499999963],[-51.35908203124998,-30.674511718749983],[-51.506298828124955,-31.104492187500014],[-51.97246093749999,-31.383789062499986],[-52.19355468749998,-31.885546874999974],[-52.12739257812501,-32.1677734375],[-52.652246093749994,-33.137792968750006],[-53.37060546874997,-33.74218750000003],[-53.39755859374995,-33.737304687500014],[-53.46357421875001,-33.70986328125002],[-53.531347656250034,-33.65546875000004],[-53.531347656250034,-33.1708984375],[-53.511865234374966,-33.10869140625003],[-53.482861328124926,-33.068554687500026],[-53.39521484375001,-33.01035156249998],[-53.31010742187499,-32.927050781249974],[-53.21406249999998,-32.82109375],[-53.12558593749998,-32.73671875],[-53.15727539062496,-32.680078125],[-53.601708984374994,-32.40302734374997],[-53.76171875,-32.05683593749997],[-53.920605468749926,-31.95234375],[-54.220556640625034,-31.855175781249997],[-54.58764648437503,-31.48515625000003],[-55.036035156249994,-31.27900390625004],[-55.091162109375034,-31.31396484374997],[-55.173535156249926,-31.279589843749974],[-55.557324218749955,-30.8759765625],[-55.60302734375003,-30.85078125000001],[-55.62714843749998,-30.858105468749997],[-55.650488281250034,-30.89208984375],[-55.66523437500001,-30.92490234375002],[-55.807763671874994,-31.036718749999977],[-55.87368164062502,-31.069628906250017],[-55.95200195312498,-31.08085937499999],[-56.0046875,-31.079199218750006],[-56.01845703125002,-30.991894531249983],[-55.998974609374955,-30.837207031250003],[-56.4072265625,-30.44746093750001],[-56.83271484374998,-30.107226562499974],[-57.120507812499994,-30.144433593749994],[-57.21445312499995,-30.283398437499983],[-57.55229492187496,-30.261230468749986],[-57.60888671875003,-30.187792968750045],[-57.563867187499994,-30.139941406249974],[-57.40522460937501,-30.03388671875004],[-57.22465820312499,-29.782128906249994],[-56.938623046874994,-29.594824218750034],[-55.890527343749994,-28.370019531249994],[-55.68725585937497,-28.38164062499996],[-55.72548828125002,-28.20410156250003],[-55.10151367187501,-27.866796874999963],[-54.82910156250003,-27.55058593750003],[-54.32700195312495,-27.423535156249997],[-53.83818359375002,-27.121093750000014],[-53.668554687500006,-26.288183593749977],[-53.89116210937499,-25.66884765625001],[-54.15458984374999,-25.523046874999963],[-54.44394531249998,-25.625],[-54.615869140624994,-25.576074218750023],[-54.61054687499998,-25.432714843750034],[-54.47314453124997,-25.22021484375],[-54.43623046875001,-25.12128906250001],[-54.281005859375,-24.30605468750001],[-54.31826171874994,-24.128125],[-54.26689453124996,-24.06582031250001],[-54.241796875,-24.047265624999966],[-54.44023437500002,-23.90175781249998],[-54.62548828125,-23.8125],[-54.98266601562494,-23.974511718749966],[-55.081884765625006,-23.997656249999977],[-55.1943359375,-24.017480468750023],[-55.28691406249993,-24.00429687499999],[-55.366308593750034,-23.99101562499996],[-55.41591796875002,-23.95136718749997],[-55.4423828125,-23.86533203125002],[-55.4423828125,-23.792578125000034],[-55.458886718749966,-23.686718750000054],[-55.51845703124994,-23.627246093750017],[-55.53828124999998,-23.580957031249994],[-55.61767578125,-22.67148437499999],[-55.74663085937499,-22.51269531249997],[-55.753271484375006,-22.410156250000043],[-55.84916992187499,-22.307617187500014],[-55.991406249999926,-22.28115234375005],[-56.18984374999994,-22.28115234375005],[-56.246044921874926,-22.26464843749997],[-56.39487304687498,-22.092675781250023],[-56.44780273437502,-22.07617187500003],[-56.77519531249999,-22.261328125],[-57.955908203125034,-22.109179687500003],[-57.94267578124999,-21.79833984375],[-57.830224609374994,-20.99794921875001],[-57.91513671874998,-20.690332031249966],[-57.97905273437493,-20.65732421874999],[-58.00224609374996,-20.465429687499977],[-58.02539062499997,-20.41582031249999],[-58.05844726562495,-20.38613281249998],[-58.091503906249926,-20.33320312500004],[-58.124609375000034,-20.293457031250014],[-58.13779296874995,-20.237304687500043],[-58.15976562499998,-20.164648437499977],[-58.09375,-20.15107421874997],[-58.021142578124994,-20.05517578124997],[-57.96015625000001,-20.04072265625004],[-57.887597656249966,-20.020410156249994],[-57.860742187499994,-19.97958984375002],[-58.029931640624994,-19.83271484375004],[-58.131494140624994,-19.74453125],[-57.71679687499997,-19.044042968750034],[-57.73085937499999,-18.91718750000004],[-57.783105468749994,-18.91425781249997],[-57.725,-18.73320312500003],[-57.57402343749993,-18.279296875000014],[-57.49565429687496,-18.21464843749999],[-57.58647460937499,-18.122265625],[-57.66166992187493,-17.94736328124999],[-57.78017578125002,-17.67177734374998],[-57.78886718750002,-17.573046875000017],[-57.83247070312501,-17.512109375000037],[-57.90502929687497,-17.53232421874999],[-57.990917968749955,-17.512890625000026],[-58.20556640625,-17.363085937499974],[-58.347753906250006,-17.282128906249994],[-58.39599609374997,-17.234277343750023],[-58.417382812499994,-17.08056640624997],[-58.459814453125006,-16.910742187500006],[-58.478125,-16.70068359375003],[-58.470605468749994,-16.650195312500045],[-58.35039062500002,-16.49082031249999],[-58.34560546875002,-16.284375],[-58.375390624999966,-16.283593749999966],[-58.423681640625034,-16.30791015625003],[-58.49658203124994,-16.32666015625003],[-58.537939453125034,-16.32822265624999],[-60.17558593749996,-16.26933593749999],[-60.187207031249955,-16.132128906250017],[-60.206640625,-15.90195312500002],[-60.242333984374994,-15.479589843750034],[-60.38046874999998,-15.318261718750023],[-60.53046874999998,-15.143164062499977],[-60.58320312499998,-15.098339843749983],[-60.273339843749994,-15.088769531249994],[-60.372705078124994,-14.41875],[-60.506591796875,-13.78984375],[-61.077001953125034,-13.489746093750014],[-61.129150390625,-13.498535156250028],[-61.41606445312502,-13.526562499999969],[-61.511572265625006,-13.541210937500011],[-61.789941406249966,-13.525585937500026],[-61.87412109374998,-13.470410156249983],[-61.944726562499966,-13.40625],[-62.09477539062499,-13.241992187499989],[-62.118017578125006,-13.15976562500002],[-62.765478515625034,-12.99726562500004],[-63.01518554687502,-12.80556640624998],[-63.067480468750006,-12.669140624999983],[-63.34667968749994,-12.68007812499999],[-63.68857421874998,-12.478027343749957],[-64.42050781249995,-12.439746093749974],[-64.783447265625,-12.059375],[-65.18574218749998,-11.749511718749957],[-65.389892578125,-11.246289062500011],[-65.33403320312499,-10.892773437500026],[-65.44711914062503,-10.507421875000034],[-65.4369140625,-10.449023437499946],[-65.39545898437498,-10.392285156250026],[-65.31308593749998,-10.253027343749991],[-65.29858398437497,-10.146777343750017],[-65.39614257812494,-9.712402343749986],[-66.57534179687502,-9.899902343749986],[-67.41694335937495,-10.389843749999969],[-67.72177734374998,-10.683105468749943],[-67.83500976562496,-10.662792968749983],[-67.99169921875,-10.674414062499949],[-68.07167968749994,-10.703125],[-68.39799804687499,-11.01875],[-68.678369140625,-11.11279296875],[-68.84833984374998,-11.01113281249998],[-69.228515625,-10.955664062499963],[-69.46254882812497,-10.948144531250023],[-69.57861328125,-10.951757812499963],[-69.67402343749998,-10.9541015625],[-69.83979492187501,-10.93339843749996],[-69.96035156249997,-10.92988281250004],[-70.06630859374997,-10.982421875],[-70.22006835937503,-11.04765625],[-70.29038085937498,-11.064257812499974],[-70.34199218750001,-11.066699218750017],[-70.39228515624995,-11.058593749999972],[-70.45087890624998,-11.024804687500009],[-70.53325195312496,-10.946875],[-70.59653320312498,-10.976855468750017],[-70.642333984375,-11.010253906249986],[-70.59916992187499,-9.620507812500009],[-70.54111328124998,-9.4375],[-70.60791015625,-9.463671875000031],[-70.63691406249995,-9.478222656249969],[-71.041748046875,-9.81875],[-71.11528320312499,-9.852441406250009],[-71.33940429687499,-9.988574218750031],[-72.18159179687495,-10.003710937500003],[-72.37905273437497,-9.51015625],[-73.20942382812493,-9.411425781249946],[-73.08984375,-9.26572265625002],[-72.970361328125,-9.120117187500028],[-72.97402343750002,-8.9931640625],[-73.07050781249995,-8.8828125],[-73.203125,-8.719335937499991],[-73.30244140624995,-8.654003906250011],[-73.36040039062496,-8.479296875000031],[-73.39814453125001,-8.458984374999986],[-73.54912109374993,-8.34580078125002],[-73.73203125,-7.875390625],[-73.72041015624993,-7.782519531250017],[-73.76689453124999,-7.753515624999963],[-73.82207031249996,-7.738964843750026],[-73.89462890624998,-7.654785156250014],[-73.946875,-7.611230468750023],[-73.98173828124996,-7.58505859375002],[-74.00205078125003,-7.556054687499966],[-73.98173828124996,-7.535742187500006],[-73.95849609374994,-7.506640625000031],[-73.96430664062498,-7.378906250000028],[-73.74946289062498,-7.335351562500037],[-73.72041015624993,-7.309277343749969],[-73.758203125,-7.172753906249952],[-73.79301757812499,-7.135058593750003],[-73.75810546874999,-6.90576171875],[-73.137353515625,-6.4658203125],[-73.23554687500001,-6.098437500000017],[-73.209375,-6.028710937500023],[-73.16289062499996,-5.933398437499974],[-72.97988281249997,-5.634863281249991],[-72.88706054687498,-5.122753906250026],[-72.83193359374994,-5.09375],[-72.69873046874997,-5.067187499999989],[-72.60834960937495,-5.009570312499974],[-72.46899414062497,-4.901269531250023],[-72.35283203124993,-4.786035156249994],[-72.25678710937501,-4.74892578124998],[-71.8447265625,-4.504394531249986],[-70.97368164062499,-4.350488281249994],[-70.86601562499999,-4.229589843749963],[-70.79951171874995,-4.173339843749957],[-70.72158203124997,-4.15888671875004],[-70.53066406249997,-4.167578125000034],[-70.40463867187498,-4.150097656250026],[-70.34365234375,-4.193652343750017],[-70.31689453124994,-4.246972656250037],[-70.23916015625002,-4.30117187499998],[-70.12880859375,-4.286621093749943],[-70.05332031249998,-4.333105468750006],[-70.00395507812496,-4.327246093749963],[-69.97202148437503,-4.30117187499998],[-69.96591796875003,-4.2359375],[-69.94819335937498,-4.200585937500009],[-69.66904296875003,-2.667675781249997],[-69.40024414062498,-1.194921874999977],[-69.63398437500001,-0.50927734375],[-70.07050781249993,-0.13886718750004],[-70.05390624999993,0.578613281250028],[-69.47211914062498,0.72993164062504],[-69.15332031249994,0.65878906250002],[-69.31181640624999,1.050488281249969],[-69.85214843750003,1.05952148437504],[-69.84858398437493,1.708740234375043],[-68.17656249999999,1.719824218749991],[-68.25595703125,1.845507812500017],[-68.19379882812495,1.987011718749983],[-67.93623046874998,1.748486328124969],[-67.40043945312499,2.116699218750028],[-67.11923828124998,1.703613281249986],[-67.082275390625,1.185400390625006],[-66.87602539062499,1.223046875000037],[-66.34711914062498,0.7671875],[-66.06005859375003,0.78535156250004],[-65.68144531249999,0.983447265624989],[-65.52299804687493,0.843408203124966],[-65.55605468750002,0.687988281250014],[-65.47338867187497,0.691259765624977],[-65.10375976562497,1.108105468749983],[-64.20502929687493,1.52949218750004],[-64.00849609374995,1.931591796874969],[-63.43251953124994,2.155566406250045],[-63.389257812500006,2.411914062500045],[-64.04658203124998,2.502392578124997],[-64.22109375000002,3.587402343749972],[-64.66899414062496,4.01181640625002],[-64.788671875,4.276025390625023],[-64.57636718750001,4.139892578125],[-64.19248046874995,4.126855468750009],[-64.02148437500003,3.929101562500051],[-63.33867187500002,3.943896484375045],[-62.85698242187502,3.593457031249969],[-62.71210937499998,4.01791992187502],[-62.41064453124994,4.156738281249972],[-62.153125,4.098388671874986],[-61.82084960937496,4.197021484375],[-61.28007812500002,4.516894531249974],[-61.00283203125002,4.535253906249991],[-60.603857421875006,4.94936523437498],[-60.671972656250034,5.164355468749989],[-60.71196289062499,5.191552734375023],[-60.742138671874926,5.202050781250037],[-60.6513671875,5.221142578125011],[-60.45952148437499,5.188085937500034],[-60.40878906249998,5.21015625],[-60.33520507812497,5.199316406250006],[-60.241650390624926,5.257958984374966],[-60.14204101562498,5.238818359374974],[-59.990673828124955,5.082861328124991],[-60.14863281249998,4.533251953125031],[-59.69970703125,4.353515625]]]]},"properties":{"name":"Brazil","childNum":17}},{"geometry":{"type":"Polygon","coordinates":[[[-59.493310546874994,13.081982421874997],[-59.611328125,13.102099609374989],[-59.6466796875,13.303125],[-59.427636718749994,13.152783203124997],[-59.493310546874994,13.081982421874997]]]},"properties":{"name":"Barbados","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[115.02675781250005,4.899707031249989],[115.1400390625,4.899755859374991],[115.290625,4.352587890624989],[115.10703125000006,4.390429687499974],[115.02675781250005,4.899707031249989]]],[[[115.02675781250005,4.899707031249989],[114.74667968750006,4.718066406250017],[114.84023437500005,4.393212890625009],[114.65410156250007,4.037646484375045],[114.0638671875,4.592675781249966],[114.42441406250006,4.660400390625],[114.99541015625002,5.022363281250023],[115.02675781250005,4.899707031249989]]]]},"properties":{"name":"Brunei","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[91.63193359375003,27.759960937499997],[91.5947265625,27.557666015624996],[91.74306640625002,27.442529296874994],[91.85126953125001,27.438623046874994],[91.95097656249999,27.458300781249996],[91.99082031250003,27.4501953125],[92.044921875,27.364697265624997],[92.08339843750002,27.290625],[92.03115234375002,27.214306640624997],[92.00253906250003,27.147363281249994],[91.99228515625003,27.099902343749996],[91.99863281250003,27.079296875],[92.03085937500003,27.040820312499996],[92.06816406249999,26.9751953125],[92.07343750000001,26.91484375],[92.04970703125002,26.874853515625],[91.99833984374999,26.85498046875],[91.84208984374999,26.852978515624997],[91.67158203125001,26.802001953125],[91.517578125,26.807324218749997],[91.45585937499999,26.866894531249997],[91.4267578125,26.867089843749994],[91.28652343750002,26.789941406249994],[90.73964843750002,26.771679687499997],[90.34589843750001,26.890332031249997],[90.2060546875,26.847509765625],[90.12294921875002,26.754589843749997],[89.94316406249999,26.723925781249996],[89.76386718750001,26.7015625],[89.60996093750003,26.719433593749997],[89.58613281250001,26.778955078124994],[89.33212890625003,26.8486328125],[89.14824218749999,26.816162109375],[89.04091796875002,26.865039062499996],[88.85761718750001,26.961474609374996],[88.73876953125,27.175585937499996],[88.76035156250003,27.218115234375],[88.88164062499999,27.2974609375],[88.89140624999999,27.316064453124994],[88.94755859374999,27.464013671874994],[89.48066406250001,28.059960937499994],[89.53691406249999,28.107421875],[89.65273437500002,28.15830078125],[89.74980468749999,28.188183593749997],[89.81689453125,28.256298828124997],[89.89785156250002,28.294140625],[89.98105468750003,28.311181640624994],[90.34824218750003,28.243945312499996],[90.36298828125001,28.216503906249997],[90.33310546875003,28.093994140625],[90.35273437500001,28.080224609374994],[90.47734374999999,28.070849609374996],[90.63007812500001,28.078564453124997],[90.71572265625002,28.071728515624997],[91.02080078124999,27.970068359375],[91.07773437500003,27.974462890625],[91.22587890624999,28.071240234374997],[91.27304687500003,28.078369140625],[91.30683593750001,28.064013671874996],[91.36757812500002,28.021630859374994],[91.64189453124999,27.923242187499994],[91.63193359375003,27.759960937499997]]]},"properties":{"name":"Bhutan","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[25.2587890625,-17.793554687500006],[25.242285156250006,-17.969042968750003],[25.939355468750023,-18.93867187500001],[26.168066406250006,-19.53828125000001],[27.17822265625,-20.10097656250001],[27.28076171875,-20.47871093750001],[27.679296875,-20.503027343750006],[27.66943359375,-21.064257812500003],[28.014062500000023,-21.55419921875],[29.02558593750001,-21.796875],[29.042382812500023,-22.018359375],[29.237207031250023,-22.07949218750001],[29.315234375000017,-22.15771484375],[29.36484375,-22.193945312500006],[29.1298828125,-22.21328125],[29.013476562500017,-22.278417968750006],[28.94580078125,-22.395117187500006],[28.83984375,-22.480859375],[28.21015625000001,-22.693652343750003],[27.812597656250006,-23.108007812500006],[27.7685546875,-23.14892578125],[27.085546875,-23.577929687500003],[26.835058593750006,-24.240820312500006],[26.617773437500006,-24.3955078125],[26.451757812500006,-24.58271484375001],[26.39716796875001,-24.613574218750003],[26.130859375,-24.671484375],[26.031835937500006,-24.702441406250003],[25.912109375,-24.74746093750001],[25.518164062500006,-25.66279296875001],[25.21337890625,-25.75625],[24.33056640625,-25.74287109375001],[24.19296875,-25.632910156250006],[23.969531250000017,-25.626074218750006],[23.89375,-25.600878906250003],[23.389257812500006,-25.29140625],[23.148730468750017,-25.288671875],[22.878808593750023,-25.45791015625001],[22.59765625,-26.13271484375001],[22.548632812500017,-26.17841796875001],[22.47089843750001,-26.219042968750003],[22.217578125000017,-26.38886718750001],[22.090917968750006,-26.580175781250006],[22.01093750000001,-26.635839843750006],[21.78828125000001,-26.710058593750006],[21.738085937500017,-26.80683593750001],[21.694726562500023,-26.840917968750006],[20.73984375,-26.84882812500001],[20.641406250000017,-26.7421875],[20.79316406250001,-25.915625],[20.4306640625,-25.147070312500006],[19.98046875,-24.77675781250001],[19.977343750000017,-22.00019531250001],[20.9794921875,-21.9619140625],[20.97412109375,-18.31884765625],[23.219335937500006,-17.99970703125001],[23.599707031250006,-18.4599609375],[24.243945312500017,-18.0234375],[24.530566406250017,-18.052734375],[24.909082031250023,-17.821386718750006],[25.2587890625,-17.793554687500006]]]},"properties":{"name":"Botswana","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[22.86005859375001,10.919677734375],[23.646289062500017,9.822900390624994],[23.62265625,9.340625],[23.46826171875,9.11474609375],[23.53730468750001,8.815820312499994],[24.147363281250023,8.665625],[24.291406250000023,8.29140625],[24.853320312500017,8.137548828124991],[25.20039062500001,7.807910156249989],[25.18134765625001,7.557226562499991],[25.27890625,7.427490234375],[26.36181640625,6.635302734374989],[26.30859375,6.455322265625],[26.514257812500006,6.069238281249994],[27.143945312500023,5.722949218749989],[27.4033203125,5.109179687499989],[27.071875,5.199755859374989],[26.822070312500017,5.062402343749994],[25.52509765625001,5.31210937499999],[25.065234375000017,4.967431640624994],[24.31982421875,4.994140625],[23.41718750000001,4.663134765624989],[22.864550781250017,4.723876953125],[22.422167968750017,4.134960937499997],[20.55810546875,4.462695312499989],[20.226367187500017,4.829638671874989],[19.806542968750023,5.089306640624997],[19.5009765625,5.127490234374989],[19.06855468750001,4.891406249999989],[18.594140625000023,4.346240234374989],[18.6103515625,3.478417968749994],[18.474414062500017,3.622998046874997],[18.160937500000017,3.499804687499989],[17.491601562500023,3.687304687499989],[16.610742187500023,3.50537109375],[16.468554687500017,2.831738281249997],[16.183398437500017,2.270068359374989],[16.0634765625,2.90859375],[15.128710937500017,3.826904296875],[15.063574218750006,4.284863281249997],[14.73125,4.602392578124991],[14.56298828125,5.279931640624994],[14.616894531250011,5.865136718749994],[14.43115234375,6.038720703124994],[14.7392578125,6.27978515625],[15.206738281250011,7.206152343749991],[15.480078125,7.523779296874991],[15.957617187500006,7.507568359375],[16.37890625,7.683544921874997],[16.545312500000023,7.865478515625],[16.784765625,7.550976562499997],[17.6494140625,7.98359375],[18.56416015625001,8.0458984375],[19.108691406250017,8.656152343749994],[18.886035156250017,8.836035156249991],[18.95625,8.938867187499994],[20.342089843750017,9.127099609374994],[20.773242187500017,9.405664062499994],[21.682714843750006,10.289843749999989],[21.771484375,10.642822265625],[22.49384765625001,10.996240234374994],[22.86005859375001,10.919677734375]]]},"properties":{"name":"Central African Rep.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-59.78759765624997,43.939599609374994],[-60.11748046874996,43.95336914062506],[-59.727148437500006,44.002832031249994],[-59.78759765624997,43.939599609374994]]],[[[-66.7625,44.68178710937502],[-66.8970703125,44.62890625],[-66.80214843749994,44.80537109374998],[-66.7625,44.68178710937502]]],[[[-60.961572265624966,45.48994140625001],[-61.081738281249926,45.55781249999998],[-60.91245117187498,45.56728515625005],[-60.961572265624966,45.48994140625001]]],[[[-73.69531249999997,45.58549804687502],[-73.85771484375002,45.573583984375006],[-73.57236328124998,45.69448242187502],[-73.69531249999997,45.58549804687502]]],[[[-73.56650390625003,45.469091796875034],[-73.960546875,45.44140624999997],[-73.68745117187498,45.561425781249994],[-73.47607421874997,45.704736328124994],[-73.56650390625003,45.469091796875034]]],[[[-61.10517578124998,45.94472656250002],[-60.86523437499997,45.983496093750006],[-61.05903320312501,45.70336914062497],[-60.73789062499995,45.75141601562498],[-60.46059570312494,45.96870117187501],[-60.733300781249994,45.956591796875045],[-60.297949218750034,46.31123046874998],[-60.22646484374994,46.19555664062506],[-59.86503906249993,46.159521484375006],[-59.8421875,45.941552734374994],[-60.67294921874995,45.59082031250006],[-61.28369140624994,45.573876953124966],[-61.44980468749995,45.71621093750002],[-61.40864257812501,46.17036132812498],[-60.87016601562499,46.796777343749966],[-60.40820312500003,47.00351562499998],[-60.332910156249966,46.737011718749955],[-60.49453125000002,46.270263671875],[-61.10517578124998,45.94472656250002]]],[[[-63.811279296875,46.46870117187501],[-63.68144531249993,46.561914062499994],[-63.12939453125,46.422216796875034],[-62.02373046874999,46.42158203125001],[-62.52607421875001,46.20288085937503],[-62.531347656250034,45.977294921875],[-63.02207031249998,46.06660156249998],[-62.89453125000003,46.12358398437496],[-63.056347656249955,46.22392578124996],[-62.97846679687498,46.31635742187498],[-63.21347656249998,46.15986328124998],[-63.641015624999966,46.23046874999997],[-63.758642578125034,46.397607421874994],[-64.11083984375003,46.425439453124994],[-64.13603515624999,46.59970703125006],[-64.388037109375,46.640869140625],[-63.99355468750002,47.06157226562502],[-64.08789062499997,46.77543945312499],[-63.811279296875,46.46870117187501]]],[[[-61.91411132812496,47.284521484375034],[-61.77255859374998,47.25981445312499],[-62.00830078124994,47.23427734375002],[-61.924707031249966,47.425146484375006],[-61.3955078125,47.63764648437504],[-61.91411132812496,47.284521484375034]]],[[[-54.227148437500034,47.44135742187501],[-54.32597656250002,47.408105468749994],[-54.12817382812494,47.646826171875034],[-54.227148437500034,47.44135742187501]]],[[[-74.70888671874997,45.0038574218751],[-73.55810546875,45.425097656250045],[-73.1595703125,46.01005859375002],[-72.10927734374997,46.55122070312504],[-71.26118164062495,46.75625],[-70.51948242187501,47.032519531250045],[-69.47104492187503,47.96728515625006],[-68.23818359374994,48.62641601562504],[-66.17817382812493,49.21313476562503],[-64.83632812499994,49.191748046875006],[-64.2162109375,48.873632812500034],[-64.51372070312493,48.84111328124999],[-64.24609374999994,48.69111328124998],[-64.34882812500001,48.423193359375034],[-65.259423828125,48.02124023437503],[-65.92670898437495,48.188867187499994],[-66.70439453125002,48.0224609375],[-66.35961914062494,48.06064453125006],[-65.84941406250002,47.91103515625005],[-65.60722656249996,47.67001953125006],[-65.00166015624995,47.84682617187502],[-64.70322265625,47.72485351562503],[-64.91220703125003,47.36865234375003],[-65.31889648437502,47.101220703124994],[-64.831396484375,47.06079101562503],[-64.88251953124993,46.822851562500034],[-64.54150390625,46.240332031250034],[-63.91591796875002,46.165820312500045],[-63.831933593749966,46.107177734375],[-64.05639648437503,46.021337890625006],[-63.70288085937494,45.858007812500034],[-62.70068359374997,45.740576171875006],[-62.750097656250006,45.64824218750002],[-62.483056640624966,45.62182617187506],[-61.955517578124955,45.86816406249997],[-61.776513671874994,45.655615234375006],[-61.49228515624998,45.68701171875],[-61.350488281249966,45.57368164062501],[-61.28198242187494,45.441064453124994],[-61.46098632812502,45.36669921875003],[-61.03154296875002,45.29174804687506],[-63.306298828124994,44.64257812500003],[-63.60400390624997,44.68320312500006],[-63.60976562499999,44.47998046875006],[-63.999707031249926,44.64492187499999],[-64.10087890624993,44.487451171874966],[-64.1669921875,44.58666992187503],[-64.28608398437493,44.55034179687499],[-64.27568359374993,44.33408203124998],[-65.48168945312497,43.51806640625],[-65.73813476562498,43.56074218750001],[-65.88691406250001,43.79521484374999],[-66.125732421875,43.813818359375034],[-66.19306640624995,44.143847656250045],[-65.86801757812498,44.56879882812501],[-66.14638671875002,44.43593750000005],[-66.090625,44.50493164062499],[-64.44814453125,45.33745117187502],[-64.13549804687497,45.023046875],[-64.09316406249997,45.21708984375002],[-63.368017578125034,45.36479492187502],[-64.87314453124998,45.35458984375006],[-64.31464843749998,45.83569335937503],[-64.48222656250002,45.80634765624998],[-64.63271484375002,45.94663085937506],[-64.77851562499998,45.63842773437497],[-65.88447265624995,45.22290039062506],[-66.10976562500002,45.316601562499955],[-66.02656249999995,45.417578125],[-66.43984374999994,45.09589843750001],[-66.87246093749997,45.067285156249966],[-67.12485351562498,45.16943359375],[-67.366943359375,45.17377929687498],[-67.43266601562496,45.603125],[-67.80224609374994,45.7275390625],[-67.806787109375,47.08281249999999],[-68.23549804687502,47.34594726562503],[-68.93720703124998,47.21123046875002],[-69.0501953125,47.426611328125034],[-69.24287109374998,47.46298828124998],[-70.00771484375002,46.70893554687501],[-70.296240234375,45.90610351562506],[-70.86503906249999,45.27070312500001],[-71.327294921875,45.29008789062496],[-71.51752929687495,45.00756835937497],[-74.663232421875,45.00390625000003],[-74.70888671874997,45.0038574218751]]],[[[-126.09208984374995,49.35400390625003],[-126.06401367187499,49.26362304687501],[-126.22963867187498,49.29565429687506],[-126.09208984374995,49.35400390625003]]],[[[-54.55439453125001,49.5888671875],[-54.786523437499966,49.496142578125045],[-54.86357421875002,49.576074218749966],[-54.55439453125001,49.5888671875]]],[[[-54.093701171874955,49.74443359374999],[-53.98066406250001,49.66196289062498],[-54.28613281249997,49.595361328124994],[-54.27763671875002,49.71147460937502],[-54.093701171874955,49.74443359374999]]],[[[-126.64121093749999,49.605810546875006],[-126.93857421874999,49.71845703125004],[-126.92583007812497,49.837744140625006],[-126.73813476562502,49.84365234375005],[-126.64121093749999,49.605810546875006]]],[[[-61.801123046875034,49.093896484374966],[-63.04150390624994,49.224951171875034],[-64.485205078125,49.88696289062497],[-64.13144531249995,49.94165039062503],[-62.858544921874966,49.70546875000005],[-61.817138671875,49.28354492187498],[-61.69614257812495,49.139013671875006],[-61.801123046875034,49.093896484374966]]],[[[-125.18413085937497,50.09711914062498],[-125.301171875,50.4140625],[-125.07402343750002,50.22065429687501],[-125.18413085937497,50.09711914062498]]],[[[-127.19731445312495,50.640380859375],[-125.48208007812501,50.316796874999966],[-124.83061523437499,49.53007812500002],[-123.99580078125,49.22402343750002],[-123.49702148437498,48.58208007812499],[-123.38989257812501,48.67021484374999],[-123.31064453125003,48.41103515625002],[-123.57314453124995,48.32280273437499],[-123.91694335937501,48.386572265625034],[-125.12070312500002,48.76079101562496],[-124.84965820312496,49.02827148437501],[-124.81264648437497,49.212646484375],[-124.92734374999998,49.01420898437499],[-125.489453125,48.933789062499955],[-125.82851562499998,49.09184570312499],[-125.64423828125001,49.18579101562506],[-125.95166015625001,49.24804687500003],[-125.93540039062499,49.401464843750006],[-126.51914062499999,49.396777343750045],[-126.54189453125001,49.590478515624966],[-126.13408203124997,49.672314453124955],[-126.52524414062499,49.71958007812498],[-126.90332031250001,49.94414062499999],[-127.114306640625,49.879736328125034],[-127.24980468749999,50.13798828124996],[-127.34941406249995,50.05195312500001],[-127.46713867187503,50.163427734375006],[-127.86391601562495,50.12773437500002],[-127.90585937499998,50.44521484375002],[-127.48652343749998,50.404638671875034],[-127.46591796874996,50.58310546875006],[-128.05834960937494,50.498486328124955],[-128.34604492187503,50.744238281250006],[-127.91806640624998,50.86054687500001],[-127.19731445312495,50.640380859375]]],[[[-55.45874023437494,51.53652343750005],[-55.58339843749994,51.38857421875002],[-56.031103515625034,51.328369140625],[-55.8,51.033300781250034],[-56.732324218749966,50.007714843749994],[-56.822167968749966,49.613476562499955],[-56.179394531249955,50.114990234375],[-56.161279296874994,49.94013671874998],[-55.50292968749997,49.98315429687503],[-56.14018554687496,49.61914062500006],[-55.869824218749955,49.67016601562506],[-56.08730468750002,49.45195312499999],[-55.375927734374955,49.48974609374997],[-55.34384765624998,49.37290039062506],[-55.22954101562496,49.508154296875006],[-55.35317382812502,49.07944335937506],[-54.50219726562503,49.52734375],[-54.44824218749997,49.329443359375006],[-53.957714843749955,49.44184570312498],[-53.61943359374996,49.321630859375006],[-53.57343750000001,49.141210937500034],[-54.16127929687494,48.787695312500034],[-53.852880859375006,48.81132812499996],[-53.966015624999955,48.70668945312505],[-53.70634765624999,48.65551757812503],[-54.11445312499998,48.393603515625045],[-53.027587890625,48.634716796874955],[-53.1357421875,48.40185546875003],[-53.60976562500002,48.20771484375001],[-53.56943359374998,48.088085937499955],[-53.869580078124926,48.019677734374966],[-53.63823242187496,48.01464843750003],[-53.863671874999966,47.787011718749994],[-53.67236328125,47.64824218749999],[-53.28271484375,47.99785156249996],[-52.86601562499993,48.11298828124998],[-53.16982421875002,47.51210937500005],[-52.945019531249955,47.55283203124998],[-52.782421874999955,47.769433593749966],[-52.653662109375034,47.549414062500006],[-53.11484375,46.65581054687502],[-53.32304687499996,46.71835937499998],[-53.589794921874955,46.638867187499955],[-53.59736328124998,47.14599609374997],[-54.00957031249993,46.839599609375],[-54.173730468749994,46.88037109375003],[-53.84951171875002,47.440332031249994],[-53.98901367187503,47.756201171875034],[-54.191845703124955,47.85981445312501],[-54.488134765625006,47.40385742187502],[-54.47392578124996,47.54707031249998],[-54.856640624999955,47.385009765625],[-55.31572265624993,46.905712890624955],[-55.78852539062498,46.86723632812502],[-55.91923828124996,47.01689453124996],[-55.49150390624996,47.16064453125003],[-54.78461914062501,47.664746093749955],[-55.366308593750034,47.66108398437501],[-55.57612304687498,47.46523437499999],[-56.12724609374999,47.50283203125002],[-55.867089843749994,47.592333984375045],[-55.85791015625,47.81918945312498],[-56.774121093749955,47.56499023437499],[-58.33686523437501,47.73085937500002],[-59.11694335937494,47.57070312499999],[-59.32065429687498,47.736914062500006],[-59.272070312500034,47.99555664062504],[-58.330224609374994,48.52211914062502],[-59.16767578124998,48.558496093749966],[-58.84179687500003,48.74643554687498],[-58.906445312499955,48.65019531249999],[-58.716455078124994,48.59804687500002],[-58.403662109375034,49.08432617187498],[-57.99052734374996,48.987939453124966],[-58.09892578124993,49.07744140624999],[-57.98007812499998,49.229638671874994],[-58.19091796875003,49.25874023437498],[-58.21337890625,49.38666992187501],[-58.01582031249998,49.54248046874997],[-57.79130859374999,49.48999023437503],[-57.92617187499999,49.700830078124994],[-57.4326171875,50.50581054687504],[-57.179589843749966,50.614843750000034],[-57.29799804687502,50.69873046874997],[-57.03593750000002,51.01083984374998],[-56.68242187500002,51.332763671875],[-56.025585937499955,51.56835937500006],[-55.6904296875,51.471337890624994],[-55.666406249999966,51.57890624999999],[-55.45874023437494,51.53652343750005]]],[[[-127.92465820312498,51.47387695312497],[-128.14877929687498,51.62670898437503],[-128.03173828125006,51.708398437499966],[-127.92465820312498,51.47387695312497]]],[[[-79.38427734374997,51.951953125000045],[-79.64375,52.01005859374996],[-79.27128906249996,52.086816406249966],[-79.38427734374997,51.951953125000045]]],[[[-128.36875,52.40087890625],[-128.43979492187503,52.696386718750006],[-128.24726562499998,52.784375],[-128.36875,52.40087890625]]],[[[-80.73168945312494,52.74726562499998],[-82.03925781249998,53.04990234374998],[-81.84731445312494,53.18627929687497],[-81.135595703125,53.20581054687503],[-80.73168945312494,52.74726562499998]]],[[[-131.7537109375,53.195556640625],[-131.63466796874997,52.92216796874999],[-131.97177734374998,52.87983398437498],[-131.45522460937502,52.70170898437502],[-131.59057617187494,52.578222656250006],[-131.25971679687495,52.415917968749966],[-131.31992187499998,52.30307617187498],[-131.142626953125,52.291113281250034],[-131.221533203125,52.15361328124999],[-132.16508789062493,52.783300781250034],[-132.14375,52.99931640624999],[-132.54677734374997,53.1375],[-131.7537109375,53.195556640625]]],[[[-128.55244140624998,52.93974609375002],[-128.50991210937502,52.51860351562502],[-128.678955078125,52.289648437500006],[-128.74633789062494,52.763378906249955],[-128.89980468749997,52.67382812500003],[-129.175927734375,52.964941406250006],[-129.033251953125,53.27993164062505],[-128.63266601562498,53.1125],[-128.55244140624998,52.93974609375002]]],[[[-129.167724609375,53.11787109374998],[-129.32387695312502,53.142138671875045],[-129.23818359374997,53.33007812500006],[-129.167724609375,53.11787109374998]]],[[[-129.84858398437498,53.167919921874955],[-130.51757812500003,53.54423828124999],[-130.45200195312498,53.63115234375002],[-129.94472656250002,53.436376953125034],[-129.75483398437498,53.244775390624994],[-129.84858398437498,53.167919921874955]]],[[[-130.236279296875,53.95854492187502],[-130.38422851562504,53.84394531250001],[-130.703173828125,53.892236328124994],[-130.44799804687497,54.08901367187502],[-130.236279296875,53.95854492187502]]],[[[-132.65551757812503,54.12749023437496],[-132.30336914062497,54.098876953125],[-132.16611328124998,53.95522460937505],[-132.53466796875,53.651708984375034],[-132.18696289062504,53.68481445312503],[-132.134423828125,54.03427734374998],[-131.66762695312502,54.14135742187503],[-131.957421875,53.308691406250034],[-132.34726562500003,53.18920898437503],[-132.747509765625,53.310498046874955],[-132.425,53.33696289062502],[-132.84501953125,53.507714843749994],[-133.07949218749997,53.837011718750034],[-133.04838867187493,54.15893554687497],[-132.65551757812503,54.12749023437496]]],[[[-130.92714843749997,54.47905273437499],[-130.90683593750003,54.63178710937504],[-130.75800781249998,54.61376953125],[-130.92714843749997,54.47905273437499]]],[[[-130.57534179687497,54.769677734374966],[-130.2140625,55.02587890625003],[-130.34941406249996,54.814550781250034],[-130.57534179687497,54.769677734374966]]],[[[-79.97758789062499,56.20703125000006],[-80.057470703125,56.28735351562497],[-79.57973632812502,56.466357421875045],[-79.97758789062499,56.20703125000006]]],[[[-78.93559570312496,56.26606445312498],[-79.17548828124998,55.88505859374999],[-79.18212890625,56.21215820312503],[-79.4951171875,55.87475585937503],[-79.76474609374995,55.80678710937505],[-79.54472656249999,56.12836914062501],[-79.9875,55.89213867187502],[-79.45888671875,56.53974609374998],[-79.53632812499995,56.180078124999966],[-79.27241210937493,56.600439453125006],[-78.93559570312496,56.26606445312498]]],[[[-61.743603515624955,57.55458984375005],[-61.6375,57.41606445312499],[-62.01123046875003,57.54848632812505],[-61.743603515624955,57.55458984375005]]],[[[-79.71650390624998,57.515527343749994],[-79.80844726562498,57.44243164062502],[-79.74257812499997,57.60795898437499],[-79.71650390624998,57.515527343749994]]],[[[-69.16005859375,59.04023437500001],[-69.35283203125002,58.96074218749999],[-69.30322265625003,59.144873046875006],[-69.16005859375,59.04023437500001]]],[[[-64.40703125,60.367089843749966],[-64.44194335937496,60.2978515625],[-64.73793945312497,60.37563476562502],[-64.83642578124997,60.50102539062499],[-64.40703125,60.367089843749966]]],[[[-68.23378906250002,60.24091796875001],[-68.36787109374998,60.314746093750045],[-68.08759765624998,60.58784179687501],[-67.81884765624994,60.449511718750074],[-68.23378906250002,60.24091796875001]]],[[[-78.531640625,60.72856445312499],[-78.66889648437498,60.716894531250006],[-78.24169921875,60.818652343750045],[-78.531640625,60.72856445312499]]],[[[-64.83261718749998,61.366064453125006],[-65.43212890625,61.649511718750034],[-64.78964843750003,61.662207031250034],[-64.83261718749998,61.366064453125006]]],[[[-65.03056640624999,61.879052734374966],[-64.89658203124995,61.73330078125005],[-65.23535156249997,61.89770507812506],[-65.03056640624999,61.879052734374966]]],[[[-79.54531250000002,62.41171875000006],[-79.28647460937495,62.247656250000034],[-79.32392578124995,62.02607421875001],[-79.81611328124995,61.59462890625002],[-80.26518554687496,61.818212890625006],[-80.26005859374996,62.10903320312502],[-79.9267578125,62.39287109375002],[-79.54531250000002,62.41171875000006]]],[[[-64.82382812499998,62.558740234374994],[-64.46503906249998,62.535937500000045],[-64.47832031250002,62.417871093749966],[-64.901220703125,62.421044921874994],[-64.82382812499998,62.558740234374994]]],[[[-70.33706054687497,62.548730468749994],[-70.76606445312498,62.596875],[-71.22011718750002,62.873925781249966],[-70.44262695312497,62.73378906250002],[-70.33706054687497,62.548730468749994]]],[[[-82.00048828124997,62.95419921874998],[-82.02583007812498,62.73007812499998],[-82.56826171875002,62.403222656249994],[-83.01582031249998,62.20991210937498],[-83.69887695312497,62.16025390624998],[-83.91049804687498,62.45415039062499],[-83.37641601562498,62.904931640624994],[-82.00048828124997,62.95419921874998]]],[[[-77.87670898437497,63.470556640625034],[-77.53271484374997,63.233642578125],[-77.94243164062496,63.11440429687502],[-78.536767578125,63.423730468749994],[-77.87670898437497,63.470556640625034]]],[[[-76.67758789062503,63.393945312499966],[-77.36474609374994,63.588330078124955],[-77.13369140624997,63.68203125000002],[-76.65244140624998,63.503564453124994],[-76.67758789062503,63.393945312499966]]],[[[-84.91962890624995,65.26108398437503],[-84.50112304687497,65.45844726562501],[-84.08486328125,65.21782226562502],[-82.05,64.64428710937506],[-81.67612304687498,64.21264648437503],[-81.88710937499997,64.01640625000002],[-80.82895507812495,64.08994140625],[-80.30205078124999,63.76220703125003],[-81.04638671875003,63.461572265624966],[-82.378125,63.706787109375],[-82.46708984375002,63.92695312500001],[-83.30395507812497,64.14379882812506],[-84.63291015625,63.30922851562502],[-85.39262695312496,63.119677734375045],[-85.76894531249997,63.70034179687502],[-87.15190429687499,63.58564453125001],[-86.93203124999997,63.90166015625002],[-86.252099609375,64.13686523437497],[-86.37426757812503,64.56582031249997],[-86.074609375,65.533837890625],[-85.55468750000003,65.91865234374995],[-85.17622070312501,65.746875],[-85.23994140624993,65.51030273437499],[-84.91962890624995,65.26108398437503]]],[[[-84.67475585937498,65.575],[-85.096337890625,65.756201171875],[-85.14960937500001,66.01538085937506],[-84.75737304687496,65.85893554687505],[-84.67475585937498,65.575]]],[[[-83.72597656249997,65.796728515625],[-83.23374023437495,65.71503906249995],[-83.332421875,65.63105468749998],[-84.11826171874995,65.77177734375007],[-84.40717773437501,66.13100585937497],[-83.78696289062495,65.96577148437498],[-83.72597656249997,65.796728515625]]],[[[-108.09272460937501,67.00517578124999],[-107.80551757812493,66.99858398437507],[-107.94394531249999,66.8578125],[-108.09272460937501,67.00517578124999]]],[[[-62.681542968749966,67.05629882812502],[-62.87163085937499,67.06259765625006],[-62.41679687499996,67.18847656250003],[-62.681542968749966,67.05629882812502]]],[[[-107.89985351562497,67.40180664062495],[-107.95024414062503,67.31821289062498],[-108.15224609374997,67.429443359375],[-108.04897460937498,67.664892578125],[-107.89985351562497,67.40180664062495]]],[[[-73.621728515625,67.783837890625],[-74.573388671875,67.82866210937507],[-74.70654296875003,68.06708984374995],[-73.49375,68.00063476562502],[-73.40717773437498,67.79306640625],[-73.621728515625,67.783837890625]]],[[[-86.59555664062498,67.7359375],[-86.89252929687498,67.836572265625],[-86.95981445312503,68.10024414062497],[-86.70209960937501,68.30561523437498],[-86.42114257812497,68.18344726562503],[-86.59555664062498,67.7359375]]],[[[-75.67587890624998,68.32250976562506],[-75.078125,68.17314453124999],[-75.20195312499996,67.45917968750001],[-75.78007812499996,67.28354492187503],[-76.94418945312498,67.25029296875002],[-77.30439453125001,67.68510742187505],[-77.12587890624997,67.94707031250002],[-76.59580078124998,68.27895507812497],[-75.67587890624998,68.32250976562506]]],[[[-78.98271484374999,68.19282226562501],[-79.17475585937493,68.26445312500002],[-78.95258789062495,68.35302734375006],[-78.98271484374999,68.19282226562501]]],[[[-104.54067382812497,68.405908203125],[-105.05136718749999,68.55903320312501],[-104.60200195312503,68.56152343749997],[-104.54067382812497,68.405908203125]]],[[[-74.880859375,68.34868164062505],[-75.40024414062503,68.52548828125],[-75.28740234374996,68.68774414062503],[-74.98364257812497,68.64760742187502],[-74.880859375,68.34868164062505]]],[[[-101.84589843749994,68.58632812499997],[-102.30815429687497,68.681982421875],[-102.01337890624995,68.82539062500001],[-101.73295898437495,68.75341796875],[-101.84589843749994,68.58632812499997]]],[[[-100.21723632812497,68.80668945312502],[-100.59653320312496,68.76640625000007],[-100.56547851562495,69.02680664062501],[-100.21723632812497,68.80668945312502]]],[[[-99.99467773437502,69.01352539062503],[-100.19570312500002,68.991455078125],[-100.153125,69.12949218750003],[-99.99467773437502,69.01352539062503]]],[[[-79.21064453124995,68.845458984375],[-79.24267578125,69.04926757812495],[-78.33256835937496,69.38603515624999],[-78.77919921875,68.95048828124999],[-79.21064453124995,68.845458984375]]],[[[-90.1998046875,69.419091796875],[-90.33027343749993,69.252197265625],[-90.49204101562503,69.369873046875],[-90.1998046875,69.419091796875]]],[[[-76.99536132812503,69.14375],[-77.37939453125,69.2740234375],[-77.18754882812502,69.440087890625],[-76.66884765625002,69.36616210937504],[-76.99536132812503,69.14375]]],[[[-101.171728515625,69.39707031250003],[-101.31289062499998,69.57607421875],[-101.00063476562497,69.4619140625],[-101.171728515625,69.39707031250003]]],[[[-95.51367187499997,69.57363281250002],[-95.43745117187498,69.37846679687505],[-95.73012695312502,69.34755859374997],[-95.80620117187499,69.56049804687501],[-95.89345703125,69.35175781250004],[-95.87583007812495,69.60600585937505],[-95.51367187499997,69.57363281250002]]],[[[-67.91469726562494,69.54096679687504],[-68.22138671874998,69.61674804687502],[-67.908837890625,69.68183593749995],[-67.91469726562494,69.54096679687504]]],[[[-78.02910156249993,69.71489257812502],[-78.03999023437495,69.6083984375],[-78.84819335937502,69.4828125],[-78.02910156249993,69.71489257812502]]],[[[-79.43066406250003,69.78779296874995],[-79.55283203124995,69.63085937500006],[-80.04750976562502,69.63432617187505],[-79.97783203124993,69.50966796874997],[-80.794775390625,69.68925781250005],[-80.42421875000002,69.797607421875],[-79.43066406250003,69.78779296874995]]],[[[-97.439453125,69.64267578125006],[-96.29995117187494,69.34438476562505],[-95.7513671875,68.89765624999998],[-95.26777343749998,68.82607421874997],[-96.40156249999995,68.47070312500003],[-97.47202148437498,68.543701171875],[-98.320556640625,68.84272460937498],[-98.70380859374993,68.80278320312502],[-98.90449218749995,68.93242187500005],[-99.25400390625002,68.86318359374997],[-99.49467773437493,68.95957031249998],[-99.455712890625,69.13120117187503],[-98.45595703124997,69.33466796875001],[-98.54599609375,69.57290039062497],[-98.04135742187498,69.456640625],[-98.20048828124996,69.79697265625006],[-97.79072265624998,69.86162109374999],[-97.439453125,69.64267578125006]]],[[[-86.91303710937501,70.11323242187501],[-86.55766601562499,69.99531249999995],[-87.3232421875,70.08012695312502],[-86.91303710937501,70.11323242187501]]],[[[-74.70888671874997,45.0038574218751],[-74.76245117187494,44.99907226562502],[-74.99614257812496,44.970117187499966],[-75.40126953124997,44.77226562499999],[-75.81933593749997,44.468017578125],[-76.18579101562503,44.24223632812502],[-76.819970703125,43.62880859375011],[-77.59653320312492,43.62861328125007],[-78.45825195312497,43.63149414062511],[-78.72041015624993,43.62495117187501],[-78.84555664062492,43.58334960937506],[-79.171875,43.466552734375085],[-79.0830566406249,43.33139648437509],[-79.05922851562494,43.27807617187506],[-79.066064453125,43.10610351562502],[-79.02617187499996,43.01733398437506],[-78.98076171874993,42.98061523437502],[-78.91508789062496,42.90913085937504],[-79.17373046875,42.74853515625],[-80.24755859374991,42.366015625000045],[-81.02822265624997,42.247167968750006],[-81.50732421874997,42.10346679687504],[-81.97416992187496,41.88872070312499],[-82.43906249999989,41.6748535156251],[-82.69003906249995,41.675195312499994],[-83.141943359375,41.97587890624996],[-83.10952148437497,42.25068359375001],[-82.54531249999997,42.62470703124998],[-82.19038085937495,43.47407226562501],[-82.137841796875,43.570898437500034],[-82.48505859374993,45.08374023437503],[-82.55107421874987,45.3473632812501],[-82.91933593749994,45.51796875000002],[-83.59267578125,45.81713867187506],[-83.46948242187503,45.99467773437499],[-83.61596679687503,46.116845703124994],[-83.97778320312494,46.08491210937507],[-84.12319335937497,46.50292968749997],[-84.44047851562496,46.49814453125006],[-84.66577148437503,46.54326171875002],[-84.87597656249994,46.89990234375003],[-85.07006835937497,46.97993164062498],[-85.65224609375,47.21997070312503],[-86.67216796874996,47.636425781249955],[-87.20800781249997,47.848486328125006],[-87.74389648437497,48.06054687500003],[-88.37817382812497,48.30307617187506],[-89.45566406249992,47.99624023437508],[-90.79731445312495,48.13105468750001],[-91.04345703124991,48.19370117187498],[-91.38720703124997,48.05854492187498],[-92.00517578125002,48.301855468750006],[-92.3484375,48.276611328125],[-92.41459960937493,48.276611328125],[-92.50058593749995,48.43535156250002],[-92.83671875,48.567773437499994],[-93.25795898437497,48.62885742187501],[-93.37788085937498,48.61655273437498],[-93.70771484374995,48.525439453125074],[-93.85161132812496,48.607275390625034],[-94.6208984374999,48.7426269531251],[-94.71279296874997,48.863427734374994],[-94.80346679687497,49.0029296875],[-94.86040039062493,49.258593750000045],[-94.85434570312495,49.304589843749994],[-95.15527343749997,49.3696777343751],[-95.16206054687493,48.991748046875045],[-95.39790039062493,48.99316406249997],[-96.25068359374993,48.99316406249997],[-96.67705078124993,48.99316406249997],[-97.52983398437493,48.99316406249997],[-98.80898437499995,48.99316406249997],[-104.77832031249997,48.993115234375125],[-110.7476562499999,48.993066406250136],[-116.71704101562493,48.993066406250136],[-118.84892578124993,48.993066406250136],[-119.27534179687494,48.993066406250136],[-119.70170898437495,48.99301757812495],[-120.98085937499995,48.99301757812495],[-122.78876953124994,48.99301757812495],[-122.82670898437495,49.028417968750034],[-122.9241699218749,49.07465820312504],[-122.96269531249993,49.07460937500005],[-123.06328125,48.97773437500001],[-123.22944335937493,49.260498046875085],[-122.87910156249995,49.39892578125003],[-123.27675781249997,49.34394531250001],[-123.1875,49.680322265624994],[-123.53056640624989,49.39731445312506],[-124.02861328125002,49.602880859375006],[-123.99262695312497,49.736181640625006],[-123.81718749999993,49.58657226562508],[-123.58247070312498,49.68125],[-123.87441406250005,49.736816406250114],[-123.82543945312493,50.14423828124998],[-123.94589843749995,50.18393554687509],[-123.9849121093749,49.87558593749998],[-124.28125,49.77211914062502],[-124.78237304687492,50.02011718749992],[-125.05668945312495,50.418652343750125],[-124.8598632812499,50.872412109375006],[-125.05878906249993,50.51386718749998],[-125.4763183593749,50.49716796874995],[-125.53935546874996,50.64902343749998],[-125.64130859374994,50.46621093750005],[-126.09433593749995,50.497607421875045],[-126.44746093750004,50.58774414062492],[-125.90410156250002,50.704931640625006],[-126.51435546875,50.679394531250125],[-126.37460937499995,50.83735351562498],[-126.5217773437499,50.86606445312498],[-126.51733398437497,51.0568359375001],[-126.63178710937494,50.915136718750006],[-127.057568359375,50.86752929687509],[-127.70810546875,51.15117187499996],[-127.41967773437496,51.608056640625136],[-126.69145507812502,51.70341796875002],[-127.33872070312489,51.70737304687495],[-127.66870117187497,51.47758789062502],[-127.85053710937498,51.67319335937509],[-127.79536132812493,52.19101562500006],[-127.43793945312504,52.356152343750125],[-127.24223632812496,52.39511718750009],[-126.71396484374989,52.060693359374994],[-127.19399414062498,52.45766601562502],[-126.95136718749994,52.7510253906251],[-127.01933593750002,52.8424804687501],[-127.06621093749989,52.65268554687498],[-127.79189453124994,52.28935546875002],[-128.10224609374993,51.78842773437495],[-128.3576171875,52.1588867187501],[-128.0375,52.318164062500045],[-127.94023437499996,52.545166015625085],[-128.27153320312493,52.3629882812501],[-128.05327148437487,52.91069335937496],[-128.3650390624999,52.82578125000006],[-128.52470703125002,53.1406738281251],[-129.08090820312492,53.36728515625006],[-129.1715820312499,53.53359375000002],[-128.8545898437499,53.70454101562504],[-128.90561523437492,53.559326171875114],[-128.5421386718749,53.420654296875114],[-128.13271484375002,53.417773437500045],[-127.92783203125,53.274707031250045],[-128.2072265624999,53.483203125000074],[-128.67553710937494,53.55458984375005],[-128.76367187500003,53.746875],[-128.5321289062499,53.85810546875007],[-128.959375,53.84145507812505],[-129.2578613281249,53.417968750000085],[-129.56372070312506,53.251464843750114],[-130.33525390625002,53.723925781250074],[-130.04331054687495,54.13354492187503],[-129.62602539062493,54.23027343750002],[-130.08422851562503,54.18139648437503],[-130.4302734375,54.42099609374998],[-129.56064453124995,55.46254882812508],[-129.79516601562503,55.559570312500114],[-130.04848632812494,55.05727539062511],[-130.01406249999997,55.950537109375006],[-130.09785156249995,56.10927734375002],[-130.41313476562487,56.12250976562507],[-130.47709960937496,56.230566406250034],[-130.649072265625,56.26367187500003],[-131.471875,56.55673828125006],[-131.82426757812496,56.58999023437508],[-131.86616210937495,56.792822265625006],[-132.1042968749999,56.85678710937509],[-132.062890625,56.95336914062503],[-132.33798828124992,57.07944335937498],[-132.27939453124998,57.14536132812506],[-132.23217773437494,57.198535156250074],[-132.30166015625005,57.2763183593751],[-132.44248046874986,57.40673828125003],[-132.55048828124995,57.499902343749994],[-133.00141601562495,57.948974609375],[-133.27529296875,58.22285156250004],[-133.54638671874997,58.50346679687499],[-134.21850585937503,58.849902343750045],[-134.32963867187505,58.93969726562506],[-134.39306640625,59.009179687499994],[-134.67724609374997,59.19926757812499],[-134.94375,59.28828125000001],[-135.05102539062491,59.57866210937502],[-135.36787109374998,59.743310546874994],[-135.70258789062504,59.72875976562506],[-136.3218261718749,59.604833984375034],[-136.27797851562494,59.48032226562506],[-136.46635742187493,59.459082031250006],[-136.57875976562494,59.15224609375002],[-136.81328125000002,59.15004882812511],[-137.12622070312491,59.04096679687507],[-137.2775390624999,58.988183593749994],[-137.43857421874995,58.903125],[-137.52089843749994,58.91538085937506],[-137.59331054687493,59.22626953124998],[-138.317626953125,59.611132812500074],[-138.86875,59.94575195312501],[-139.18515624999986,60.083593750000034],[-139.13696289062494,60.17270507812506],[-139.07924804687497,60.279443359375136],[-139.07924804687497,60.3437011718751],[-139.23476562499997,60.339746093749994],[-139.67631835937505,60.32832031249998],[-139.97329101562497,60.183154296875074],[-140.45283203125004,60.29970703125002],[-140.5254394531249,60.21835937499995],[-140.76274414062505,60.25913085937509],[-141.00214843750004,60.300244140625125],[-141.00214843750004,60.884667968749994],[-141.00214843750004,61.761279296875045],[-141.00214843750004,63.22226562499998],[-141.00214843750004,64.09887695312506],[-141.00214843750004,65.55991210937498],[-141.00214843750004,66.43652343750006],[-141.00214843750004,67.89755859374998],[-141.00214843750004,68.77416992187506],[-141.00214843750004,69.65078125000011],[-139.18154296874997,69.51552734375008],[-137.25996093749998,68.96411132812503],[-136.12236328124993,68.88222656250002],[-135.258837890625,68.68432617187503],[-135.93901367187487,68.9741699218751],[-135.575537109375,69.02695312500003],[-135.91020507812487,69.11147460937502],[-135.6914550781249,69.31118164062502],[-135.29282226562486,69.30786132812506],[-135.1408203124999,69.46782226562496],[-134.45683593749993,69.47763671875],[-134.40893554687494,69.68178710937502],[-133.87978515624997,69.50771484375011],[-134.17431640624991,69.25283203125005],[-133.16313476562496,69.43388671874999],[-132.91533203125002,69.62963867187506],[-132.40390625,69.65874023437496],[-132.48847656249993,69.73808593749996],[-132.16342773437498,69.70498046875014],[-131.13637695312497,69.90688476562505],[-130.66547851562495,70.12705078124998],[-129.944970703125,70.09091796875006],[-129.675634765625,70.19296875000009],[-129.64829101562495,69.9977539062501],[-130.83208007812487,69.65146484375006],[-131.9377929687499,69.5347167968751],[-132.8174804687499,69.20576171875004],[-133.41831054687492,68.84428710937493],[-133.138037109375,68.74658203125011],[-133.33666992187497,68.83525390625005],[-132.57763671874997,68.84780273437514],[-132.71894531249998,69.07919921875],[-131.78837890625002,69.43198242187495],[-131.32470703124997,69.36118164062509],[-131.06342773437504,69.45068359375003],[-130.97065429687495,69.20908203125],[-130.1176269531249,69.720068359375],[-128.89892578124994,69.96616210937506],[-129.15791015624995,69.80009765624999],[-129.05434570312502,69.70107421875005],[-128.85302734375003,69.7510253906251],[-127.68378906249994,70.26035156249995],[-128.17011718749998,70.41845703125],[-127.99101562499992,70.57382812500003],[-127.22597656249992,70.29614257812497],[-126.25043945312495,69.54526367187492],[-125.52495117187495,69.35156250000009],[-125.171875,69.42797851562503],[-125.35693359374991,69.62597656250003],[-124.767919921875,69.99003906249996],[-124.99038085937494,70.02661132812511],[-124.55502929687488,70.15122070312509],[-124.40693359374991,69.76743164062506],[-124.12460937499995,69.6899902343751],[-124.33808593749991,69.36484374999995],[-123.5284179687499,69.38935546874995],[-123.02578125,69.81000976562504],[-122.07006835937499,69.81616210937506],[-120.96245117187502,69.66040039062511],[-120.13999023437488,69.38056640625013],[-117.22695312499998,68.913427734375],[-116.05947265625,68.83701171875006],[-116.2434082031249,68.9740722656251],[-115.44228515624994,68.94091796875009],[-114.62016601562496,68.74609375],[-113.96440429687495,68.39907226562502],[-114.09594726562491,68.26679687500007],[-114.76528320312494,68.27021484375004],[-115.12705078124992,68.13203124999995],[-115.43447265624994,67.90234375000006],[-115.13320312499994,67.819189453125],[-112.50302734374993,67.6819335937501],[-110.9900390624999,67.79082031250007],[-110.07392578124995,67.99291992187506],[-109.63037109374991,67.73271484374996],[-109.03803710937504,67.69116210937503],[-108.85200195312497,67.42197265625009],[-108.61333007812493,67.59804687500008],[-107.98872070312495,67.2563964843751],[-107.99130859374995,67.09516601562513],[-108.49604492187493,67.09228515625006],[-107.25947265624998,66.39853515624995],[-107.71035156250001,66.74003906250007],[-107.7250976562499,66.98413085937506],[-107.15649414062497,66.88173828124997],[-107.9583984375,67.81860351562506],[-107.79829101562498,68.03691406249996],[-106.42426757812491,68.20058593750008],[-105.7501953125,68.59228515625011],[-106.45805664062496,68.51645507812495],[-106.60849609374988,68.35737304687504],[-107.61933593749994,68.3310546875],[-107.73417968749989,68.17373046875011],[-108.3228027343749,68.15410156250002],[-108.71811523437488,68.29746093750009],[-108.31347656249996,68.61079101562498],[-106.16445312499992,68.91987304687507],[-105.68559570312489,68.82817382812505],[-105.3774414062499,68.413818359375],[-104.65317382812488,68.23007812500003],[-104.48681640624991,68.06318359374998],[-103.47412109374993,68.11503906250005],[-102.32036132812489,67.73564453125005],[-101.55498046874992,67.69316406250007],[-100.21293945312489,67.83857421875004],[-98.92045898437502,67.72578124999998],[-98.41210937499991,67.80717773437505],[-98.63154296875004,68.0725585937501],[-97.45493164062486,67.61699218750002],[-97.20654296874989,67.85507812500003],[-97.73911132812495,67.97817382812505],[-98.19252929687494,67.92299804687502],[-98.65048828124989,68.36352539062506],[-98.21855468750002,68.31743164062507],[-97.7942382812499,68.38759765625],[-97.9250976562499,68.523681640625],[-97.41035156249993,68.49653320312498],[-96.97670898437497,68.25541992187505],[-96.43066406249991,68.3105957031251],[-96.72207031250005,68.03876953124998],[-95.9703125,68.24912109375],[-96.36914062499991,67.50976562500003],[-96.14145507812489,67.27182617187503],[-95.71992187499998,67.31679687500014],[-95.77768554687495,67.18461914062505],[-95.41591796875005,67.15556640624999],[-95.41889648437504,67.01323242187493],[-96.42255859374995,67.05175781249997],[-95.7875488281249,66.616796875],[-96.03686523437489,66.9375],[-95.39965820312503,66.94946289062509],[-95.25874023437493,67.26254882812492],[-95.65048828124986,67.73745117187505],[-95.46069335937503,68.02138671875],[-94.74443359374993,68.07089843749995],[-93.44892578124998,68.61889648437503],[-93.85244140624994,69.00034179687495],[-94.06489257812495,68.78476562500006],[-94.600439453125,68.80322265625011],[-94.08364257812497,69.12309570312507],[-94.254736328125,69.31376953125002],[-93.61948242187492,69.41699218750009],[-93.74853515624991,69.2261230468751],[-93.5322753906249,69.48090820312495],[-94.2708007812499,69.45512695312505],[-94.63383789062496,69.64965820312506],[-94.82250976562494,69.577783203125],[-95.96494140624989,69.80278320312499],[-96.5513671875,70.21030273437506],[-96.29770507812492,70.51137695312511],[-95.87861328124998,70.54897460937514],[-95.88632812499986,70.69428710937507],[-96.25800781249993,70.64228515625013],[-96.54892578124995,70.80874023437511],[-96.44658203124996,71.23989257812502],[-96.06201171874997,71.41386718749993],[-95.5642578124999,71.33676757812503],[-95.40625,71.49165039062498],[-95.87231445312494,71.57314453125005],[-94.73486328124994,71.98295898437507],[-94.30834960937491,71.76489257812506],[-93.74628906249998,71.742822265625],[-92.94868164062493,71.26210937500011],[-92.98144531249994,70.8522460937501],[-91.56406249999995,70.1782714843751],[-92.32050781250004,70.2353515625],[-92.51186523437494,70.10385742187503],[-91.976708984375,70.03867187500009],[-92.88779296874989,69.66821289062511],[-92.31166992187494,69.67290039062499],[-91.91196289062495,69.53125],[-91.20180664062494,69.64477539062494],[-91.43994140624997,69.52568359375002],[-90.4155761718749,69.45698242187507],[-90.89228515625004,69.26728515624995],[-91.23720703125005,69.28554687500014],[-90.47900390624994,68.88115234374999],[-90.57363281250005,68.47470703124998],[-90.20478515625004,68.25747070312511],[-89.27954101562491,69.25546875000003],[-88.22353515625,68.91503906249997],[-87.81357421874986,68.34570312499997],[-87.89267578125,68.24814453125],[-88.34697265624993,68.28828125000001],[-88.313818359375,67.95034179687508],[-87.359375,67.17724609374997],[-86.56079101562491,67.48212890625007],[-85.64316406249992,68.69970703124997],[-84.86757812499994,68.77333984375005],[-85.10664062499995,68.84404296875007],[-84.86220703125,69.07397460937503],[-85.38676757812493,69.23188476562504],[-85.50737304687487,69.84526367187493],[-82.61835937499993,69.69106445312514],[-82.39023437499989,69.60087890625007],[-82.75483398437493,69.49438476562506],[-82.30986328124996,69.41000976562509],[-82.22753906249997,69.24887695312495],[-81.37783203125005,69.18564453125003],[-81.95791015624991,68.88364257812498],[-81.38090820312496,68.85004882812504],[-81.28154296874987,68.65722656250003],[-81.91484374999993,68.4587890625001],[-82.55268554687504,68.44648437500007],[-82.22241210937489,68.145263671875],[-82.0125,68.19389648437496],[-81.97646484374997,67.86201171875001],[-81.2943359375,67.497412109375],[-81.46757812499996,67.0698730468751],[-83.40644531249998,66.37124023437508],[-84.53847656249994,66.97280273437505],[-84.84575195312502,67.02871093750008],[-85.11372070312498,66.90693359375013],[-84.73774414062504,66.93359375000006],[-84.223046875,66.68247070312506],[-83.86904296875,66.2135742187501],[-84.29306640624995,66.29179687500005],[-84.628076171875,66.20771484374998],[-85.603857421875,66.56826171875005],[-86.708154296875,66.52304687500009],[-86.68510742187502,66.36040039062499],[-85.95874023437491,66.11904296875002],[-87.45288085937503,65.33896484375009],[-87.96997070312503,65.34892578124999],[-89.7494140625,65.93603515625006],[-89.88969726562487,65.86855468749997],[-91.42724609374994,65.94790039062497],[-91.04111328124989,65.82983398437509],[-90.98344726562496,65.91923828124999],[-89.92407226562497,65.78027343750011],[-88.97402343749994,65.34829101562502],[-87.02753906249995,65.19809570312498],[-88.10561523437497,64.18330078125001],[-88.81772460937489,63.99223632812499],[-89.20063476562493,64.11376953125006],[-89.13154296874998,63.96850585937494],[-89.61582031249995,64.030615234375],[-89.8113281249999,64.18056640625],[-90.04165039062494,64.14086914062509],[-89.85571289062497,63.9569824218751],[-90.16816406250004,63.978759765625085],[-90.15473632812498,63.68964843749998],[-90.81191406249991,63.580908203125034],[-91.98222656249996,63.82241210937502],[-92.33842773437496,63.787646484375045],[-93.69633789062493,64.14716796875013],[-93.55981445312491,63.865283203125074],[-93.27021484374998,63.840869140625074],[-93.37851562499992,63.94848632812497],[-92.15688476562491,63.691699218750045],[-92.46508789062491,63.55507812500011],[-91.84184570312496,63.69755859374999],[-90.97006835937489,63.442773437500136],[-90.69858398437492,63.06386718750005],[-91.44897460937503,62.804052734375034],[-92.3612792968749,62.81938476562496],[-91.93583984374993,62.59238281250009],[-92.55141601562491,62.546728515625034],[-92.76596679687492,62.34995117187509],[-92.52797851562494,62.16840820312504],[-93.20537109374993,62.364941406250125],[-92.90551757812503,62.21513671874996],[-93.3330566406249,61.93291015625002],[-93.58178710937494,61.94204101562511],[-93.31201171874997,61.76728515625004],[-93.91274414062497,61.48144531250006],[-94.509375,60.60454101562493],[-94.76171874999991,60.498242187500125],[-94.78828124999998,59.26787109374993],[-94.95732421874996,59.068847656250085],[-94.28706054687493,58.716015625000125],[-94.33222656249998,58.297363281250114],[-94.12319335937494,58.73671875000008],[-93.1787597656249,58.72563476562496],[-92.43281249999993,57.3203125],[-92.7981445312499,56.921972656250034],[-90.89746093750003,57.25693359375006],[-88.94848632812489,56.85131835937503],[-88.07509765624997,56.46728515624994],[-87.48242187499991,56.021289062500045],[-85.55932617187491,55.54018554687508],[-85.21801757812491,55.348974609375034],[-85.3652832031249,55.07929687499998],[-85.06093749999997,55.285644531250085],[-83.91059570312493,55.314648437499955],[-82.39326171874998,55.067822265625125],[-82.219384765625,54.8134765625],[-82.42416992187486,54.2445800781251],[-82.14145507812492,53.81762695312497],[-82.29155273437496,53.03071289062507],[-81.5994140624999,52.432617187500085],[-81.82788085937489,52.22421875000009],[-81.46621093749994,52.204492187500136],[-80.588037109375,51.667236328125114],[-80.4433105468749,51.38857421875002],[-80.85122070312497,51.125],[-80.47832031249993,51.30732421874998],[-80.10356445312487,51.282861328125136],[-79.34790039062494,50.76264648437504],[-79.737451171875,51.186279296875],[-79.33867187500002,51.62817382812497],[-79.04052734375003,51.46376953125005],[-78.90317382812495,51.200292968750034],[-78.73134765624994,51.497460937499994],[-78.98164062499993,51.774560546875136],[-78.44809570312495,52.26137695312502],[-78.74414062499994,52.65537109374998],[-79.10034179687497,53.65664062500005],[-78.99604492187493,54.00249023437499],[-79.241796875,54.098876953125085],[-79.14672851562491,54.16923828125002],[-79.71235351562495,54.6718261718751],[-77.77529296874994,55.291259765625],[-76.60405273437496,56.19956054687495],[-76.52558593749998,56.8917968750001],[-76.80981445312497,57.65795898437506],[-77.15678710937496,58.018896484375034],[-78.51508789062493,58.68237304687503],[-77.76069335937498,59.38002929687505],[-77.72617187499995,59.67587890624992],[-77.34907226562495,59.57895507812509],[-77.48530273437493,59.684570312500114],[-77.28920898437494,60.0220214843751],[-77.58588867187498,60.088183593750074],[-77.45288085937497,60.1458007812501],[-77.6814453124999,60.427099609375034],[-77.503564453125,60.54272460937497],[-77.7908203124999,60.63984375000004],[-77.58955078124993,60.808593750000114],[-78.18134765624995,60.81914062499996],[-77.51435546874998,61.55629882812505],[-78.02138671874997,61.8320800781251],[-78.13339843749986,62.28227539062496],[-77.372412109375,62.572509765625114],[-75.81689453124991,62.31586914062507],[-75.7898437499999,62.17958984375002],[-75.3412109375,62.312109375],[-74.63256835937497,62.115673828125125],[-74.6458007812499,62.21113281250004],[-73.70507812499991,62.47314453124994],[-72.68696289062498,62.12456054687499],[-72.771630859375,61.840429687500006],[-72.50556640624998,61.922656250000074],[-72.22612304687487,61.83159179687499],[-72.04003906249991,61.68027343750006],[-72.21586914062502,61.58725585937495],[-71.86611328125,61.68852539062499],[-71.63828124999995,61.6171875],[-71.85439453124991,61.43979492187492],[-71.42270507812489,61.158935546875085],[-70.27929687499991,61.06865234374999],[-69.99243164062491,60.8564941406251],[-69.50332031249994,61.04042968750011],[-69.40473632812493,60.84677734375009],[-69.75947265624998,60.440234375000045],[-69.67373046874994,60.07587890625007],[-70.65483398437496,60.02622070312506],[-69.73393554687493,59.918017578125045],[-69.68188476562489,59.34174804687507],[-69.3440429687499,59.303076171875006],[-69.53164062499994,58.86923828125009],[-69.64838867187493,58.82080078125],[-69.78417968749994,58.95571289062511],[-70.15434570312496,58.76059570312498],[-69.78989257812486,58.689306640625034],[-69.27109374999986,58.88393554687505],[-68.69819335937495,58.904541015625],[-68.38115234374993,58.74350585937506],[-68.22939453124994,58.48457031250007],[-68.35654296874989,58.163232421875136],[-69.04082031249996,57.902490234375136],[-68.41357421874997,58.0517578125],[-68.02104492187493,58.48530273437504],[-67.88828124999989,58.29575195312495],[-68.06386718750005,58.13896484374999],[-67.75595703124992,58.4045898437501],[-67.6782714843749,57.99111328125008],[-67.5696289062499,58.21347656250006],[-66.72216796874991,58.49101562499996],[-66.36240234374989,58.791162109374994],[-66.0023925781249,58.43120117187502],[-66.04306640624995,58.82065429687495],[-65.72099609374996,59.02377929687495],[-65.38354492187494,59.06020507812508],[-65.7,59.21333007812501],[-65.4117187499999,59.31499023437496],[-65.47509765624994,59.47031249999998],[-65.03823242187494,59.38789062500007],[-65.40742187499993,59.53935546875002],[-65.4333984374999,59.776513671874994],[-65.02817382812495,59.77070312500007],[-65.17172851562489,59.90800781249996],[-64.81733398437498,60.3310546875],[-64.49941406250005,60.26826171875001],[-64.41958007812494,60.17138671874997],[-64.76845703124997,60.01210937500005],[-64.28349609374993,60.06406249999998],[-64.22631835937491,59.741210937500085],[-64.05605468750005,59.82255859374996],[-63.7501953124999,59.51259765625005],[-63.945458984374994,59.380175781250074],[-63.775878906249915,59.277148437500045],[-63.539892578124864,59.332861328125034],[-63.41513671874995,59.194384765625074],[-63.97114257812498,59.053808593750034],[-63.24843749999991,59.068310546874955],[-63.28212890624994,58.86738281250007],[-63.05029296874997,58.87817382812494],[-62.87387695312489,58.67246093749998],[-63.537060546874926,58.329931640625006],[-63.209960937499886,58.46694335937502],[-62.593847656249864,58.47402343750005],[-62.81206054687502,58.20039062500007],[-63.26152343749993,58.014697265625074],[-62.486230468749966,58.15405273437506],[-62.30566406249997,57.97226562499995],[-61.95864257812505,57.91176757812508],[-61.9679687499999,57.61191406250009],[-62.495556640624926,57.489208984375125],[-61.92114257812497,57.42080078125005],[-61.977441406249966,57.24794921875002],[-61.33374023437494,57.01059570312498],[-61.37163085937502,56.68081054687511],[-62.497265624999926,56.80170898437504],[-61.73774414062498,56.52602539062502],[-61.940429687499886,56.423583984375114],[-61.42529296874994,56.360644531250074],[-61.713085937499955,56.230957031250114],[-61.364697265624926,56.2160156250001],[-61.30112304687495,56.04716796874999],[-61.4495117187499,55.99570312499998],[-61.08935546874997,55.86635742187511],[-60.74326171874989,55.94145507812493],[-60.56210937499995,55.727001953125125],[-60.341015624999926,55.78466796874997],[-60.40830078124995,55.649560546874994],[-60.19238281249994,55.4809082031251],[-60.617138671874955,55.060205078124994],[-59.75878906249997,55.3095703125],[-59.68906249999989,55.19633789062502],[-59.43789062500005,55.175927734375136],[-59.837792968749994,54.813964843750114],[-59.25957031249996,55.19995117187506],[-58.99711914062496,55.149462890625074],[-58.780175781249994,54.838378906250114],[-58.39814453124998,54.77412109374998],[-57.96245117187493,54.875732421875085],[-57.40449218750004,54.59086914062496],[-57.69926757812496,54.38657226562506],[-58.435205078124966,54.228125],[-58.63320312499999,54.04956054687497],[-59.8230468749999,53.83442382812504],[-60.14492187499994,53.59614257812498],[-60.395410156249994,53.653320312500085],[-60.1002929687499,53.48696289062511],[-60.329492187499966,53.26611328125006],[-58.652050781249926,53.97788085937495],[-57.935986328124955,54.09116210937492],[-58.31748046874989,54.11445312500007],[-58.192089843749926,54.228173828125136],[-57.4160644531249,54.162744140625136],[-57.134960937499926,53.79184570312506],[-57.524072265624966,53.61142578125006],[-57.331738281249955,53.469091796875034],[-56.84086914062496,53.73945312500004],[-56.46499023437505,53.76503906250011],[-55.96611328125002,53.4711425781251],[-55.79794921874995,53.211962890625045],[-55.80283203124989,52.64316406249998],[-56.324902343749926,52.54453124999998],[-55.74648437499994,52.4745605468751],[-55.7771484374999,52.3642578125],[-56.01171874999997,52.394482421875125],[-55.695214843749994,52.13779296875006],[-56.97597656250005,51.45766601562505],[-58.510351562500006,51.295068359375136],[-59.88632812499992,50.316406250000085],[-61.72485351562503,50.10405273437499],[-61.91953124999989,50.2328613281251],[-62.71542968749995,50.30166015625008],[-66.49550781249991,50.2118652343751],[-66.94116210937503,49.993701171875045],[-67.37202148437495,49.348437500000045],[-68.28193359374998,49.197167968750136],[-69.67387695312496,48.19916992187504],[-71.01826171874993,48.455615234375045],[-69.86552734374993,48.17226562500005],[-69.775,48.09809570312504],[-69.9944335937499,47.73989257812508],[-70.70585937499996,47.13979492187505],[-71.26777343749995,46.79594726562499],[-71.87958984374998,46.68681640624996],[-72.98100585937493,46.209716796875085],[-73.4766113281249,45.738232421874955],[-74.03784179687494,45.501855468750136],[-74.31508789062494,45.531054687500045],[-73.97382812499995,45.345117187499994],[-74.70888671874997,45.0038574218751]]],[[[-96.78232421874998,72.93662109375],[-97.0927734375,72.99692382812503],[-96.86240234374995,73.18881835937506],[-96.78232421874998,72.93662109375]]],[[[-114.52153320312502,72.592919921875],[-113.57807617187501,72.65209960937506],[-113.2923828125,72.94980468750003],[-112.75361328125001,72.98603515624995],[-111.26972656249994,72.71372070312498],[-111.895166015625,72.35610351562497],[-111.67509765625002,72.30014648437503],[-110.20512695312495,72.66127929687497],[-110.66083984374998,73.00820312500002],[-110.00844726562494,72.983642578125],[-108.75498046875002,72.55107421874999],[-108.18823242187501,71.72377929687502],[-107.812841796875,71.62617187500004],[-107.30600585937496,71.89467773437502],[-108.23740234374999,73.14990234375003],[-108.029052734375,73.34873046875003],[-106.48212890624998,73.19619140624997],[-105.41513671874995,72.788330078125],[-104.38593749999997,71.57695312500005],[-104.51479492187502,71.06425781250005],[-103.58457031249995,70.63085937500003],[-103.07719726562497,70.50883789062505],[-103.04956054687503,70.65507812499999],[-101.67631835937495,70.27827148437495],[-101.56240234375001,70.135009765625],[-101.04267578125,70.11079101562504],[-100.98237304687497,69.67988281250001],[-101.483837890625,69.85019531250006],[-101.64765624999997,69.69853515625007],[-102.18212890624997,69.845947265625],[-102.59589843749997,69.71791992187502],[-102.62109374999996,69.55151367187506],[-103.464892578125,69.64448242187498],[-103.04892578124999,69.47177734375006],[-103.12021484374995,69.20458984374997],[-102.44677734374997,69.476318359375],[-102.04594726562493,69.46484374999997],[-101.85712890625001,69.02397460937505],[-102.89506835937499,68.8236328125],[-104.57143554687501,68.87211914062502],[-105.105859375,68.92041015625],[-105.019580078125,69.08125],[-106.27016601562497,69.19458007812497],[-106.65908203124997,69.439599609375],[-107.43989257812497,69.00214843749995],[-108.36499023437497,68.93476562499998],[-109.47211914062501,68.67670898437498],[-113.12773437500002,68.49414062500003],[-113.61684570312501,68.8384765625],[-113.69414062499995,69.19501953124998],[-115.61811523437495,69.28295898437506],[-116.51347656249993,69.42460937500005],[-117.19541015624995,70.05405273437503],[-114.59233398437497,70.31245117187498],[-112.63789062499997,70.225244140625],[-111.63256835937497,70.30883789062497],[-113.75727539062503,70.69072265625005],[-115.99091796874997,70.586279296875],[-117.58706054687498,70.62954101562502],[-118.2640625,70.888330078125],[-118.26909179687493,71.03471679687505],[-115.30341796874997,71.49370117187505],[-117.93564453125003,71.39208984375003],[-118.22646484374995,71.46708984375005],[-117.742333984375,71.65932617187502],[-118.58300781250003,71.64902343749998],[-118.98769531249997,71.7642578125],[-118.94462890624997,71.98554687499995],[-118.21347656249998,72.26289062499998],[-118.481298828125,72.42768554687498],[-118.13310546874995,72.63281250000003],[-114.63823242187499,73.37265625000003],[-114.20639648437495,73.29780273437495],[-114.05170898437497,73.07099609375004],[-114.52153320312502,72.592919921875]]],[[[-105.28891601562499,72.919921875],[-106.92153320312497,73.479833984375],[-106.61396484375001,73.69560546875002],[-105.31796874999995,73.76713867187502],[-104.5875,73.57807617187495],[-104.62172851562495,73.3111328125],[-105.28891601562499,72.919921875]]],[[[-79.53730468749998,73.65449218749998],[-78.2865234375,73.66582031250007],[-77.20654296874997,73.49956054687505],[-76.18339843749999,72.84306640625005],[-77.83593750000003,72.89682617187498],[-79.3193359375,72.75771484375],[-79.820703125,72.82631835937502],[-80.18330078124995,73.22465820312499],[-80.77641601562502,73.33417968750001],[-80.84887695312503,73.72124023437499],[-79.53730468749998,73.65449218749998]]],[[[-86.58935546874997,71.01079101562507],[-85.64384765624999,71.15244140624998],[-85.09487304687497,71.15195312500006],[-84.82373046874997,71.02861328125005],[-84.69941406249995,71.63144531250003],[-85.33906249999998,71.69726562500003],[-85.91162109375,71.98652343749998],[-85.321875,72.23315429687506],[-84.28374023437499,72.04448242187499],[-84.84199218749995,72.30815429687505],[-84.62304687500003,72.37656250000003],[-85.34111328124993,72.42153320312497],[-85.64990234374997,72.72216796875003],[-85.26210937500002,72.95400390625],[-84.25664062499999,72.79672851562503],[-85.454736328125,73.10546875000003],[-84.41606445312496,73.45649414062495],[-83.781884765625,73.41689453125],[-83.72983398437495,73.57587890624995],[-81.946142578125,73.72983398437506],[-81.40615234374997,73.634521484375],[-80.27724609375,72.77016601562502],[-81.229345703125,72.31171874999998],[-80.61147460937497,72.450830078125],[-80.925146484375,71.90766601562501],[-80.18193359374996,72.20878906250007],[-79.884375,72.17719726562501],[-80.10893554687499,72.33217773437497],[-79.83129882812503,72.44628906250003],[-79.000244140625,72.27202148437507],[-79.00781250000003,72.04291992187501],[-78.58510742187497,71.880615234375],[-78.86274414062495,72.100830078125],[-78.69926757812496,72.35141601562498],[-77.51650390624997,72.17778320312505],[-78.48427734374994,72.47060546875002],[-77.75322265624996,72.72475585937502],[-75.70429687499998,72.57153320312497],[-75.05268554687493,72.22636718749999],[-75.92280273437501,71.71723632812501],[-74.90317382812503,72.10048828125002],[-74.20932617187498,71.978662109375],[-74.31572265624999,71.84267578125],[-75.20478515625001,71.70913085937497],[-74.70078125,71.67558593750005],[-74.99619140624998,71.21811523437503],[-74.48808593750002,71.64838867187501],[-73.8140625,71.77143554687495],[-74.197265625,71.404150390625],[-73.71284179687498,71.58759765624998],[-73.18061523437501,71.282861328125],[-73.27822265625,71.53798828125],[-72.901953125,71.67778320312507],[-71.64067382812499,71.51625976562502],[-71.22939453124997,71.33876953125],[-71.49501953124997,71.10512695312502],[-71.93793945312498,71.09428710937502],[-72.63271484374994,70.83076171874998],[-71.74252929687495,71.046875],[-71.370849609375,70.97514648437499],[-70.82607421874994,71.10874023437503],[-70.67265625,71.05219726562498],[-70.76171874999997,70.79223632812503],[-71.89018554687502,70.43154296875002],[-71.27587890625,70.50029296874999],[-71.42944335937503,70.12778320312503],[-70.97978515624999,70.5810546875],[-69.94980468750003,70.84501953125005],[-68.49575195312502,70.61025390625],[-68.363525390625,70.48125],[-70.05771484375,70.042626953125],[-68.77822265625,70.20356445312501],[-69.00830078124997,69.97895507812501],[-68.74404296874997,69.94140625],[-68.05908203124997,70.317236328125],[-67.36367187499994,70.03442382812503],[-67.22163085937495,69.73071289062506],[-68.02041015625,69.77006835937499],[-69.25078124999999,69.51191406249998],[-68.51303710937498,69.57729492187497],[-67.236962890625,69.460107421875],[-66.71674804687495,69.31186523437498],[-66.70742187500002,69.16821289062503],[-68.40629882812499,69.23222656250002],[-69.040625,69.09799804687503],[-68.41552734375,69.17207031250001],[-67.8326171875,69.06596679687499],[-67.88320312500002,68.78398437499999],[-69.31909179687497,68.85698242187505],[-68.21040039062495,68.702978515625],[-67.9384765625,68.524169921875],[-66.74272460937502,68.45776367187497],[-67.032958984375,68.32607421874997],[-66.923095703125,68.06572265625005],[-66.72900390624997,68.12900390625006],[-66.66269531249995,68.03442382812497],[-66.63095703124998,68.21064453124998],[-66.21240234374997,68.280419921875],[-66.44394531249998,67.83383789062506],[-65.94238281250003,68.07094726562505],[-65.86435546875003,67.92285156249997],[-65.50908203124996,67.96826171875],[-65.40126953125002,67.67485351562499],[-65.41533203124996,67.87924804687498],[-64.92231445312495,68.03164062500002],[-65.02109375,67.78754882812495],[-64.63779296875,67.84023437500002],[-63.850195312500034,67.56606445312502],[-64.00795898437502,67.34731445312497],[-64.69995117187494,67.35053710937501],[-63.83623046874993,67.26411132812498],[-63.59160156250002,67.3775390625],[-63.040136718750034,67.235009765625],[-63.70156249999994,66.82236328125003],[-62.962304687499966,66.94926757812505],[-62.37973632812495,66.90537109375],[-62.12358398437499,67.046728515625],[-61.35341796874994,66.689208984375],[-61.52783203124994,66.55810546875003],[-62.12333984374993,66.64306640625003],[-61.57080078125,66.37290039062506],[-61.95634765624993,66.30932617187497],[-62.553125,66.40683593750003],[-62.53359374999994,66.22700195312498],[-61.99160156250002,66.03530273437502],[-62.624121093750006,66.01625976562505],[-62.381982421874966,65.83330078124999],[-62.65888671874998,65.63994140625002],[-63.16894531249997,65.65732421875],[-63.45874023437494,65.85302734375],[-63.42089843749997,65.70859374999998],[-63.651074218749955,65.66098632812506],[-63.33745117187493,65.61674804687502],[-63.36337890624998,65.22973632812503],[-63.606591796874966,64.92807617187503],[-64.345703125,65.17241210937499],[-64.26967773437497,65.40078124999997],[-64.55507812500002,65.1166015625],[-65.401611328125,65.764013671875],[-64.44536132812496,66.31713867187497],[-65.0044921875,66.07773437500003],[-65.82573242187499,65.996923828125],[-65.65634765625003,66.204736328125],[-66.06372070312497,66.13271484374997],[-66.986328125,66.62749023437505],[-67.07685546874995,66.52548828125006],[-67.30732421874993,66.5697265625],[-67.22539062499993,66.31025390624998],[-67.88339843749995,66.46743164062502],[-67.18320312499995,66.03442382812503],[-67.350439453125,65.92973632812502],[-67.82802734374997,65.96518554687503],[-68.45991210937498,66.249267578125],[-68.74892578125,66.200048828125],[-68.21718750000002,66.078857421875],[-68.18671874999993,65.87099609375002],[-67.86645507812497,65.773681640625],[-67.936767578125,65.56489257812501],[-67.56962890624999,65.64355468749997],[-67.11796874999999,65.44038085937495],[-67.3365234375,65.34658203125005],[-66.69741210937502,64.81518554687506],[-66.63549804687503,65.00034179687503],[-66.21464843749999,64.72241210937497],[-65.93852539062496,64.88574218750003],[-65.2748046875,64.63154296875004],[-65.52934570312499,64.50478515624997],[-65.074609375,64.43666992187502],[-65.21298828125003,64.30327148437502],[-65.580322265625,64.29384765624997],[-65.16987304687495,64.02817382812503],[-64.67846679687503,64.027978515625],[-64.79814453124999,63.91596679687498],[-64.4109375,63.70634765625002],[-64.66464843749995,63.24536132812497],[-65.19184570312498,63.764257812500006],[-65.06894531249998,63.26347656250002],[-64.67236328125003,62.921972656250006],[-65.16279296875001,62.93261718750003],[-65.10849609374998,62.62646484375],[-66.22402343749994,63.10717773437497],[-66.228662109375,62.99096679687503],[-66.41445312500002,63.027197265625034],[-66.65498046874998,63.264746093750006],[-66.69746093749993,63.069531249999955],[-67.89326171874993,63.733740234375006],[-67.72255859374997,63.422753906249966],[-68.49375,63.725488281249994],[-68.91108398437498,63.703222656250006],[-68.141259765625,63.17231445312501],[-67.67597656249998,63.093554687500045],[-67.73696289062497,63.00957031249999],[-65.98017578125001,62.20888671875002],[-66.12387695312498,61.89306640625],[-68.53588867187503,62.25561523437506],[-69.12558593749998,62.423974609374966],[-69.604736328125,62.76772460937502],[-70.23613281250002,62.76337890625001],[-70.801416015625,62.91049804687506],[-71.10576171874999,63.00224609375002],[-70.94604492187497,63.12070312499998],[-71.34726562499998,63.066113281249955],[-71.99223632812493,63.41616210937505],[-71.380859375,63.580322265625],[-72.29013671874995,63.72797851562498],[-72.17426757812498,63.893408203125006],[-72.49843749999994,63.82348632812497],[-73.45454101562495,64.39926757812503],[-73.27128906250002,64.58251953125],[-73.91035156249998,64.578125],[-74.064794921875,64.42465820312498],[-74.13046874999998,64.6078125],[-74.46123046874996,64.64467773437505],[-74.68139648437497,64.8306640625],[-74.91943359374997,64.76552734374997],[-74.69472656250002,64.49658203124997],[-75.71503906249995,64.52436523437495],[-75.76669921875,64.39194335937498],[-76.85615234374998,64.23764648437498],[-77.76049804687503,64.36015624999999],[-78.04521484374993,64.499267578125],[-78.09560546875,64.93925781250002],[-77.36088867187496,65.19653320312503],[-77.32670898437493,65.453125],[-75.82832031249993,65.22705078125003],[-75.45209960937495,64.84160156250002],[-75.35712890624995,65.00874023437495],[-75.79868164062503,65.297509765625],[-75.16630859374999,65.28393554687497],[-74.13847656250002,65.50346679687502],[-73.55078125000003,65.48525390625005],[-74.41640624999997,66.16708984375003],[-73.03325195312502,66.72817382812505],[-72.78881835937494,67.030615234375],[-72.22001953124999,67.25429687500002],[-73.28447265624993,68.35698242187505],[-73.82050781249998,68.36293945312502],[-73.82211914062495,68.68598632812501],[-74.11796875000002,68.70092773437506],[-73.9892578125,68.54863281250002],[-74.2701171875,68.54121093750001],[-74.89296875,68.80815429687505],[-74.71669921874997,69.04550781249998],[-76.58505859375,68.69873046875003],[-76.55722656250003,69.00947265625001],[-75.9537109375,69.03081054687502],[-75.64775390625002,69.212548828125],[-76.46494140624995,69.46943359375001],[-76.23408203125001,69.66210937500003],[-76.742333984375,69.57290039062497],[-77.08994140625,69.63510742187503],[-76.85859374999995,69.775390625],[-77.591650390625,69.84560546875002],[-77.77402343750003,70.23852539062503],[-78.28281250000003,70.229150390625],[-79.06640624999997,70.60356445312507],[-79.40522460937498,70.40073242187503],[-78.86284179687499,70.24189453125001],[-78.88964843750003,69.97749023437495],[-79.51542968749996,69.88759765625005],[-81.65195312500003,70.09462890625002],[-80.92172851562503,69.73090820312501],[-81.56469726562503,69.94272460937498],[-82.29384765624997,69.83691406250003],[-83.14995117187493,70.00908203125002],[-83.85908203124998,69.96274414062498],[-85.43237304687497,70.11137695312507],[-85.780029296875,70.03666992187505],[-86.32202148437503,70.14541015625],[-86.396875,70.46533203124997],[-87.838134765625,70.24658203125],[-88.78271484374997,70.49448242187503],[-89.45590820312498,71.06171874999995],[-87.84492187499995,70.94438476562505],[-87.14008789062498,71.01162109374997],[-89.80537109374993,71.46230468750005],[-89.86152343750001,72.41191406250005],[-88.70517578124998,73.40327148437495],[-87.71977539062496,73.72290039062497],[-85.95078124999998,73.85014648437505],[-84.94677734375,73.72163085937498],[-86.00053710937499,73.31254882812505],[-86.65629882812502,72.72402343750005],[-86.21845703124998,71.89912109375004],[-85.02338867187495,71.35322265625001],[-86.58935546874997,71.01079101562507]]],[[[-100.00190429687497,73.9458984375],[-99.15795898437499,73.73159179687497],[-97.66997070312499,73.88774414062499],[-97.1705078125,73.82485351562497],[-97.001708984375,73.66650390625003],[-97.62587890624997,73.50229492187498],[-97.27250976562502,73.38681640624998],[-98.42177734375002,72.94101562500003],[-97.63632812499998,73.02763671874999],[-97.128125,72.62758789062502],[-96.59208984374996,72.71025390624999],[-96.44560546874996,72.55244140624998],[-96.80146484374998,72.32241210937502],[-96.61342773437494,71.83383789062506],[-97.58227539062497,71.62968750000005],[-98.18134765624998,71.66245117187503],[-98.32270507812501,71.85234375000002],[-98.19863281249994,71.44086914062501],[-98.66289062499993,71.302099609375],[-99.22363281249996,71.387109375],[-100.594482421875,72.15234375000003],[-101.20854492187495,72.31699218749998],[-101.72392578124996,72.31489257812501],[-102.70874023437496,72.76450195312503],[-102.20400390624998,73.077294921875],[-101.27319335937497,72.7216796875],[-100.48476562500002,72.77294921874997],[-100.395703125,72.97700195312498],[-100.128125,72.90668945312495],[-100.53637695312497,73.19785156250003],[-99.82514648437503,73.2138671875],[-100.36611328125001,73.359033203125],[-100.88935546875003,73.27534179687501],[-101.52319335937501,73.48637695312502],[-100.97578124999995,73.59975585937502],[-100.5216796875,73.44931640625],[-100.96298828125002,73.79140625],[-99.99111328125,73.79516601562503],[-100.00190429687497,73.9458984375]]],[[[-98.270361328125,73.86850585937498],[-98.97392578124997,73.81206054687502],[-99.4169921875,73.89541015625002],[-97.69824218749997,74.10869140625005],[-98.270361328125,73.86850585937498]]],[[[-93.17084960937498,74.16098632812506],[-92.22270507812502,73.97236328124998],[-90.62744140625,73.95170898437505],[-90.38139648437496,73.82475585937502],[-92.11791992187497,72.75380859375],[-94.21132812499997,72.75693359375],[-93.77055664062496,72.66821289062506],[-93.55517578124994,72.42114257812497],[-94.03754882812498,72.02875976562498],[-95.00786132812496,72.01279296875],[-95.60214843749998,72.88447265624995],[-95.63291015625003,73.69545898437497],[-94.697607421875,73.66357421874997],[-95.134130859375,73.88125],[-94.97353515625,74.04140625000002],[-93.17084960937498,74.16098632812506]]],[[[-119.73632812499997,74.11264648437498],[-119.20595703125002,74.19799804687503],[-119.11796874999995,74.01552734375],[-118.54399414062499,74.24462890625003],[-117.51484375000001,74.23173828124999],[-115.51069335937501,73.61875],[-115.446875,73.43886718750002],[-118.96157226562497,72.68413085937499],[-119.51284179687501,72.30268554687501],[-120.17988281250001,72.21264648437506],[-120.61933593750001,71.50576171875002],[-121.47216796875003,71.38901367187503],[-121.74936523437502,71.44477539062501],[-123.09565429687503,71.09379882812502],[-124.00776367187494,71.67744140624998],[-125.29667968749999,71.973046875],[-125.84531250000002,71.978662109375],[-123.79726562499997,73.76816406250003],[-124.69624023437497,74.34819335937499],[-121.50415039062497,74.54511718749998],[-119.56264648437494,74.23281250000002],[-119.73632812499997,74.11264648437498]]],[[[-97.35551757812496,74.52631835937495],[-97.75,74.51054687500005],[-97.41650390624994,74.62656250000003],[-97.35551757812496,74.52631835937495]]],[[[-95.306640625,74.50541992187505],[-95.850732421875,74.58247070312504],[-95.51020507812498,74.63676757812499],[-95.306640625,74.50541992187505]]],[[[-104.11992187499995,75.03632812500004],[-104.88740234374998,75.14775390624999],[-104.34619140624996,75.42993164062503],[-103.64350585937497,75.18657226562499],[-104.11992187499995,75.03632812500004]]],[[[-93.54257812499995,75.0279296875],[-93.57309570312495,74.66884765625005],[-94.53452148437498,74.63671874999997],[-96.59960937499997,75.03178710937499],[-95.95463867187493,75.44379882812501],[-94.878173828125,75.63002929687502],[-93.90908203125002,75.42250976562502],[-93.54257812499995,75.0279296875]]],[[[-96.07856445312495,75.510107421875],[-96.91513671875003,75.37968749999999],[-96.98281249999997,75.50981445312505],[-96.367822265625,75.65463867187506],[-96.07856445312495,75.510107421875]]],[[[-94.52656249999995,75.74931640624999],[-94.901220703125,75.93076171875],[-94.53789062499996,75.99643554687506],[-94.52656249999995,75.74931640624999]]],[[[-118.328125,75.57968749999998],[-118.81713867187503,75.52211914062497],[-119.39458007812499,75.617333984375],[-117.63369140624998,76.11508789062498],[-118.328125,75.57968749999998]]],[[[-79.0630859375,75.92587890624998],[-79.63876953124995,75.84291992187505],[-79.00932617187499,76.14589843750005],[-79.0630859375,75.92587890624998]]],[[[-102.22734374999995,76.014892578125],[-102.00800781250003,75.93940429687498],[-102.57958984375003,75.78022460937498],[-103.31474609374996,75.76420898437499],[-103.04150390624999,75.91884765624997],[-103.98525390624997,75.93310546875003],[-103.80078124999994,76.03701171874997],[-104.24248046874996,76.04697265625006],[-104.35063476562497,76.18232421875001],[-102.72802734374999,76.30703125],[-102.22734374999995,76.014892578125]]],[[[-104.02285156249998,76.58310546875003],[-103.05131835937495,76.44985351562497],[-103.31137695312499,76.34755859375],[-104.35751953124995,76.33461914062502],[-104.58569335937499,76.60649414062499],[-104.07451171875003,76.66611328124998],[-104.02285156249998,76.58310546875003]]],[[[-97.70092773437497,76.46650390624998],[-97.89052734374997,75.7603515625],[-97.40751953124999,75.67250976562497],[-97.33603515624998,75.41982421875],[-97.65332031249997,75.50776367187498],[-97.87822265624996,75.41611328125003],[-97.67431640624997,75.127294921875],[-98.04531249999997,75.20083007812497],[-98.12094726562503,75.03271484375],[-100.234375,75.00771484374997],[-100.48349609374995,75.18842773437501],[-100.14570312499995,75.24614257812505],[-100.71191406250003,75.40634765625],[-99.19458007812499,75.698388671875],[-102.58740234375001,75.51367187500003],[-102.79750976562501,75.59965820312505],[-102.14472656249998,75.87504882812502],[-100.97280273437498,75.79843750000003],[-101.414990234375,75.84584960937502],[-101.87211914062496,76.08310546875003],[-101.52895507812495,76.21728515625003],[-102.1046875,76.33120117187505],[-101.41518554687495,76.42490234375003],[-99.86547851562499,75.92421875],[-100.11284179687502,76.11723632812507],[-99.54106445312497,76.14628906250005],[-100.41420898437495,76.242529296875],[-99.97773437500003,76.31245117187495],[-100.82973632812497,76.52387695312495],[-99.8140625,76.6322265625],[-98.89033203125,76.46557617187497],[-98.71083984374994,76.69384765625003],[-97.70092773437497,76.46650390624998]]],[[[-101.22612304687497,76.57934570312497],[-101.61308593749995,76.60458984375006],[-100.26914062499998,76.73413085937497],[-101.22612304687497,76.57934570312497]]],[[[-108.29238281250001,76.05712890625],[-107.72348632812502,75.99541015625002],[-108.020703125,75.80478515625],[-107.21621093749997,75.89155273437501],[-106.91352539062503,75.67963867187501],[-106.67700195312499,76.02373046875002],[-105.63266601562493,75.94536132812505],[-105.51948242187497,75.63237304687505],[-106.09262695312495,75.08945312500003],[-107.15341796874996,74.9271484375],[-108.47475585937495,74.94721679687501],[-108.83129882812501,75.06489257812498],[-112.51933593749997,74.41684570312503],[-113.67158203124997,74.45302734375005],[-114.31269531250003,74.71508789062506],[-112.835986328125,74.9755859375],[-111.67109375,75.01943359374997],[-111.09345703125001,75.25629882812498],[-113.71176757812499,75.06860351562503],[-113.85332031249996,75.259375],[-113.46708984374996,75.41611328125003],[-114.01650390624998,75.43427734375001],[-114.16845703124994,75.23950195312503],[-114.51381835937497,75.27548828125],[-114.45175781250002,75.08789062499997],[-115.02011718749999,74.97617187500003],[-115.41318359374995,75.11499023437497],[-115.72885742187496,74.968115234375],[-116.47607421874996,75.17177734375],[-117.56523437499997,75.23334960937504],[-117.25761718750002,75.45952148437502],[-116.07714843749996,75.49296874999999],[-115.14184570312501,75.67851562500005],[-116.42563476562498,75.58535156249997],[-117.16362304687496,75.64487304687503],[-116.80214843749995,75.77158203124998],[-114.99150390625002,75.896337890625],[-116.66455078124999,75.95756835937505],[-116.20986328125,76.19443359374998],[-114.77861328124999,76.17260742187497],[-115.82216796874997,76.27001953125003],[-114.99848632812503,76.4974609375],[-114.19394531249999,76.45146484375005],[-113.82348632812501,76.20683593750002],[-112.69760742187496,76.20170898437505],[-111.05268554687495,75.54853515625001],[-108.94716796875,75.54179687499999],[-108.94477539062495,75.69897460937503],[-109.8705078125,75.929052734375],[-109.48681640624999,76.14467773437497],[-110.31445312500001,76.369384765625],[-109.09824218749996,76.811865234375],[-108.46699218749997,76.73759765625007],[-108.29238281250001,76.05712890625]]],[[[-89.72646484374994,76.50742187499998],[-90.55625,76.73457031249998],[-90.13632812499995,76.83696289062505],[-89.69541015625,76.74116210937498],[-89.72646484374994,76.50742187499998]]],[[[-113.56069335937494,76.74326171874998],[-114.83525390624999,76.79467773437497],[-113.89165039062495,76.89487304687503],[-113.56069335937494,76.74326171874998]]],[[[-94.29497070312493,76.91245117187498],[-93.23002929687496,76.77026367187497],[-93.53457031250002,76.44770507812498],[-92.99536132812494,76.62041015624999],[-91.305029296875,76.68076171875003],[-90.54262695312494,76.495751953125],[-91.41508789062496,76.45585937500005],[-89.28452148437498,76.30161132812506],[-89.40659179687498,76.18916015624998],[-91.40732421874998,76.22006835937506],[-89.27758789062497,75.79506835937497],[-89.64604492187499,75.5650390625],[-88.91669921874998,75.45395507812503],[-88.64497070312495,75.65844726562503],[-88.201318359375,75.51201171875005],[-87.72973632812503,75.57563476562495],[-87.53911132812502,75.48486328125003],[-87.25693359374998,75.61772460937499],[-85.95146484374993,75.39501953125],[-85.97299804687498,75.5287109375],[-83.931982421875,75.81894531250003],[-83.23710937499993,75.75083007812503],[-82.153662109375,75.83105468750003],[-80.32197265624998,75.62910156250001],[-79.50908203125002,75.25981445312499],[-80.38198242187494,75.03417968750003],[-79.40141601562502,74.91762695312502],[-79.944482421875,74.83364257812505],[-80.34775390624998,74.90297851562505],[-80.26274414062499,74.58447265625],[-81.94018554687494,74.47270507812505],[-82.73579101562495,74.53027343749997],[-83.5220703125,74.90146484375],[-83.53188476562494,74.58569335937497],[-84.42553710937503,74.50810546875007],[-85.06142578125,74.60693359375003],[-85.133447265625,74.517431640625],[-85.44233398437495,74.6005859375],[-85.80800781249994,74.49897460937498],[-88.42304687499995,74.49414062499997],[-88.53496093749993,74.83173828125001],[-89.55869140624995,74.55473632812507],[-90.55327148437499,74.61274414062498],[-90.88022460937498,74.8177734375],[-91.13457031250002,74.64985351562498],[-91.54912109375002,74.65556640624999],[-92.3892578125,75.263330078125],[-92.18510742187499,75.84653320312498],[-93.09174804687495,76.35400390624997],[-95.27387695312498,76.26440429687503],[-96.03969726562494,76.48671875000002],[-95.65097656249998,76.58466796874998],[-96.88071289062495,76.73833007812505],[-96.40156249999995,76.79721679687503],[-96.75830078124997,76.97177734374998],[-95.84951171875002,77.06621093750005],[-94.29497070312493,76.91245117187498]]],[[[-115.55126953125001,77.36328125],[-116.32919921874996,77.137060546875],[-115.81005859374999,76.939111328125],[-116.25273437500002,76.90141601562505],[-115.94628906250003,76.71127929687503],[-116.99921874999995,76.531591796875],[-117.23359375000001,76.28154296875005],[-117.99296874999999,76.40581054687505],[-117.88081054687497,76.80507812500005],[-118.79140624999994,76.51298828125005],[-119.080712890625,76.12407226562505],[-119.58037109375,76.32651367187498],[-119.52612304687496,75.99721679687505],[-119.91289062499997,75.85883789062501],[-120.40888671874995,75.82563476562498],[-120.84838867187496,76.18266601562499],[-121.21347656249999,75.98369140625005],[-122.53305664062498,75.95092773437503],[-122.59272460937497,76.16206054687495],[-122.90278320312498,76.13471679687498],[-122.51938476562503,76.353173828125],[-121.56113281250003,76.453466796875],[-119.09018554687496,77.30507812500002],[-116.84355468749995,77.33955078124995],[-117.03974609374995,77.46513671875005],[-116.51132812500003,77.54760742187497],[-115.55126953125001,77.36328125]]],[[[-89.83325195312503,77.26762695312505],[-90.22827148437503,77.21245117187499],[-90.99321289062499,77.32949218750002],[-91.01904296875003,77.64389648437503],[-89.83896484375003,77.49140624999998],[-89.83325195312503,77.26762695312505]]],[[[-104.55815429687497,77.14174804687497],[-105.21508789062496,77.18208007812501],[-106.03559570312495,77.73984375000006],[-105.58789062499997,77.73598632812497],[-104.54223632812501,77.33774414062503],[-104.55815429687497,77.14174804687497]]],[[[-95.484375,77.79199218750003],[-93.30097656249995,77.73979492187505],[-93.54394531249997,77.466650390625],[-95.98706054687497,77.484130859375],[-96.19458007812497,77.70053710937503],[-95.484375,77.79199218750003]]],[[[-101.6935546875,77.69658203125005],[-102.37783203124995,77.728125],[-102.44770507812498,77.88061523437506],[-101.19321289062493,77.82978515624998],[-101.00205078124998,77.73510742187497],[-101.6935546875,77.69658203125005]]],[[[-113.83247070312497,77.75463867187506],[-114.28720703124998,77.72148437500005],[-114.98041992187498,77.91542968750002],[-114.33037109374997,78.07753906250002],[-113.83247070312497,77.75463867187506]]],[[[-110.45805664062496,78.10322265625001],[-109.62226562499995,78.07475585937499],[-110.865625,77.834130859375],[-110.15273437500002,77.76293945312506],[-110.19848632812501,77.52451171874998],[-112.37265625000002,77.36411132812498],[-113.16435546875002,77.5302734375],[-113.21518554687498,77.90351562500001],[-110.45805664062496,78.10322265625001]]],[[[-109.81596679687499,78.65039062500003],[-109.48447265624995,78.31640625],[-111.16918945312499,78.38627929687505],[-111.51748046874997,78.27470703125005],[-112.13125,78.366064453125],[-113.22304687499998,78.29790039062505],[-112.85585937499997,78.46684570312502],[-110.877587890625,78.73505859375004],[-109.81596679687499,78.65039062500003]]],[[[-96.20449218749994,78.53129882812499],[-94.91538085937495,78.39052734375002],[-95.32924804687497,78.22504882812495],[-94.93427734374998,78.07563476562498],[-96.98964843749994,77.80600585937503],[-97.65815429687498,78.090625],[-96.944677734375,78.15185546874997],[-98.04951171874995,78.325927734375],[-98.33261718749998,78.77353515625006],[-97.38232421875,78.78291015625001],[-96.20449218749994,78.53129882812499]]],[[[-103.42602539062499,79.315625],[-102.57617187499996,78.87939453125003],[-101.70366210937502,79.07890625000002],[-101.128125,78.80166015625002],[-100.43549804687503,78.8203125],[-99.60942382812495,78.58305664062507],[-99.16640625000002,77.85693359375003],[-100.27465820312503,77.83271484374995],[-101.07412109375001,78.19384765625],[-102.60698242187502,78.24892578125002],[-102.73134765624995,78.37104492187495],[-103.94658203124999,78.26000976562497],[-104.76357421874998,78.35166015625],[-104.90961914062498,78.55263671875],[-103.57050781250003,78.53984375000005],[-104.02084960937502,78.63491210937497],[-103.37158203125,78.73632812500003],[-104.18500976562498,78.78129882812505],[-104.15195312499999,78.989892578125],[-104.89550781249996,78.80815429687502],[-104.74677734375003,79.02709960937503],[-105.53564453124999,79.03251953125007],[-105.51455078124995,79.24248046875002],[-105.38769531249994,79.32358398437503],[-103.42602539062499,79.315625]]],[[[-98.79160156249995,79.98110351562505],[-98.94521484375,79.72407226562498],[-100.05683593749997,79.89824218750005],[-100.05327148437496,80.093359375],[-99.15322265625001,80.12421874999998],[-98.79160156249995,79.98110351562505]]],[[[-91.88554687499999,81.13286132812505],[-90.64301757812498,80.59370117187498],[-89.23559570312494,80.51064453125002],[-88.85732421874997,80.16621093750001],[-88.19990234374998,80.11147460937497],[-88.5248046875,80.41801757812507],[-87.675,80.37211914062505],[-87.92231445312501,80.09770507812499],[-86.97719726562502,79.89423828125001],[-87.29516601562494,79.58017578124998],[-86.33696289062496,79.63496093749995],[-86.00703124999998,79.47944335937498],[-85.6478515625,79.61142578125006],[-85.04213867187497,79.2845703125],[-86.95717773437502,78.97490234375005],[-87.61738281249995,78.67631835937505],[-88.04018554687494,78.99531250000004],[-87.98286132812498,78.53706054687501],[-88.74160156250002,78.58403320312499],[-88.82241210937497,78.18588867187498],[-90.037109375,78.60683593750002],[-89.52568359374999,78.15961914062495],[-90.29721679687495,78.32802734374997],[-90.614404296875,78.14985351562501],[-92.35126953125001,78.312890625],[-92.8482421875,78.46010742187497],[-91.86689453124998,78.54267578125001],[-93.26660156249997,78.60830078124997],[-93.63442382812502,78.75092773437498],[-93.15986328124998,78.77563476562503],[-94.11459960937498,78.92890625000001],[-92.54721679687495,79.28261718750002],[-91.29990234375003,79.372705078125],[-92.82192382812497,79.44990234375001],[-93.93315429687496,79.29072265624998],[-94.11030273437498,79.40156250000001],[-95.10317382812502,79.289892578125],[-95.66289062500002,79.52734374999997],[-94.40185546874997,79.736328125],[-95.73935546874995,79.66015625000003],[-96.58906249999995,79.91665039062497],[-96.77324218749999,80.13579101562502],[-94.64589843749994,80.04873046874997],[-94.26259765625002,80.19487304687499],[-95.40507812499996,80.13500976562506],[-96.39409179687493,80.31503906250003],[-95.549072265625,80.36660156249997],[-95.92695312499998,80.72065429687498],[-93.92792968749995,80.55917968750003],[-95.51474609375003,80.83813476562503],[-94.98051757812499,81.04965820312503],[-93.28671874999998,81.10029296874998],[-94.22011718749997,81.33076171875004],[-93.03466796874997,81.3462890625],[-91.88554687499999,81.13286132812505]]],[[[-69.4888671875,83.01679687499998],[-66.42255859374998,82.92685546875003],[-68.46933593749995,82.65336914062502],[-65.29902343749995,82.79960937500005],[-64.98388671874997,82.90229492187501],[-64.50400390625,82.77841796874998],[-63.641015624999966,82.81259765625003],[-63.246777343749926,82.4501953125],[-62.47519531249995,82.51958007812502],[-61.392480468749994,82.44189453125],[-61.61538085937502,82.18442382812503],[-64.43579101562497,81.74262695312501],[-66.62573242187497,81.61640624999995],[-68.68852539062493,81.29331054687503],[-64.78007812499993,81.49287109375001],[-69.55068359375,80.38325195312498],[-70.71259765625001,80.53959960937505],[-70.264892578125,80.23359374999998],[-72.05595703124996,80.12324218749995],[-70.56840820312493,80.09370117187498],[-71.387841796875,79.76176757812505],[-72.43652343750003,79.69438476562499],[-74.39448242187495,79.87407226562499],[-73.47246093749996,79.7564453125],[-73.36152343750001,79.50400390625],[-75.50341796875,79.41416015625],[-76.898828125,79.5123046875],[-75.60273437499998,79.23955078125005],[-74.48120117187503,79.22949218750006],[-74.64091796874996,79.03554687499997],[-78.58164062499998,79.075],[-77.88276367187498,78.9423828125],[-76.255859375,79.00683593749997],[-74.486328125,78.75009765624998],[-74.87861328124998,78.54482421875],[-76.41611328124995,78.51152343750005],[-75.19345703125,78.327734375],[-75.86596679687497,78.00981445312499],[-78.01259765624997,77.94604492187506],[-78.07617187500003,77.51904296875],[-78.70849609374997,77.34213867187503],[-80.57304687499996,77.31479492187506],[-81.65908203124997,77.52543945312499],[-81.3013671875,77.34404296875007],[-82.056787109375,77.29653320312497],[-81.75634765624997,77.20400390625005],[-79.49726562500001,77.19609375000005],[-78.97919921874998,76.89287109374999],[-78.28886718750002,76.97797851562501],[-77.98330078124994,76.75498046875006],[-78.284326171875,76.57124023437501],[-80.79970703124997,76.173583984375],[-80.97451171874994,76.470068359375],[-81.71738281250003,76.494970703125],[-82.52983398437499,76.723291015625],[-82.23315429687494,76.46582031250003],[-83.88569335937501,76.453125],[-84.22377929687497,76.67534179687499],[-84.27534179687498,76.35654296875006],[-85.141259765625,76.30458984375005],[-86.45371093750003,76.58486328125002],[-86.68022460937499,76.37661132812497],[-87.35419921874998,76.44804687500005],[-87.48979492187499,76.58583984374997],[-87.49755859374997,76.38627929687499],[-88.39599609374997,76.40527343750003],[-88.49584960937497,76.77285156249997],[-88.54580078125002,76.42089843750003],[-89.36962890624997,76.474462890625],[-89.49975585937503,76.82680664062502],[-88.39814453124995,77.10395507812501],[-86.81225585937497,77.18491210937498],[-87.68144531249996,77.43637695312503],[-88.01699218750002,77.78471679687505],[-86.75507812499998,77.86372070312498],[-85.58847656249998,77.46113281250004],[-84.73867187499997,77.36103515624998],[-83.72128906249998,77.41420898437497],[-82.7103515625,77.84951171875002],[-82.5953125,77.99213867187504],[-83.77939453125,77.53261718750002],[-85.28935546874996,77.55903320312498],[-85.54755859374998,77.92768554687495],[-84.61542968749998,78.19570312500002],[-84.22270507812499,78.176025390625],[-84.91035156249993,78.23969726562501],[-84.78320312499997,78.52758789062506],[-85.5859375,78.10957031249998],[-86.21777343750003,78.08120117187497],[-85.92006835937494,78.34287109374998],[-86.91323242187494,78.126806640625],[-87.5517578125,78.17661132812503],[-86.80791015624999,78.77436523437495],[-85.00375976562495,78.912255859375],[-83.27143554687501,78.77031250000002],[-81.75009765624995,78.97578124999995],[-82.43876953125002,78.903662109375],[-84.41201171875002,78.99658203125003],[-84.38359375000002,79.1185546875],[-83.57587890624995,79.05366210937501],[-86.42075195312498,79.84521484374997],[-86.49853515625003,80.25825195312501],[-83.72363281250003,80.22895507812501],[-81.68837890625,79.685791015625],[-80.47592773437498,79.60625],[-80.12446289062495,79.66948242187507],[-81.01015625000002,79.693115234375],[-82.98701171874995,80.32260742187498],[-76.86298828124995,80.86479492187505],[-78.71621093749994,80.95166015624997],[-76.88510742187503,81.43027343750006],[-81.00703125000001,80.6548828125],[-82.88432617187502,80.57753906249997],[-82.22236328124998,80.77231445312503],[-84.41782226562495,80.52675781250002],[-86.250341796875,80.56577148437506],[-86.60307617187499,80.66401367187498],[-85.63930664062494,80.92460937500007],[-83.288818359375,81.14794921875],[-85.780859375,81.03505859375],[-87.32988281250002,80.669775390625],[-88.00366210937497,80.675390625],[-89.16689453125,80.94130859375],[-86.47675781249993,81.03574218750006],[-84.94121093750002,81.28623046875],[-87.27509765624995,81.080810546875],[-89.623046875,81.032470703125],[-89.94731445312499,81.17265625000005],[-89.20869140624998,81.25009765625003],[-89.67368164062503,81.32861328125003],[-87.59702148437498,81.52583007812498],[-88.47905273437502,81.56464843749998],[-90.41630859374996,81.40537109375003],[-89.82167968749997,81.63486328124998],[-91.29238281250002,81.57124023437498],[-91.64755859374998,81.68383789062503],[-88.06318359375001,82.09648437500007],[-87.01821289062502,81.95874023437497],[-86.62680664062495,82.05102539062503],[-85.04482421874997,81.9828125],[-86.615625,82.21855468750007],[-84.89682617187503,82.44941406250001],[-82.63369140625002,82.07729492187497],[-82.53691406250002,82.24726562499995],[-79.465625,81.85112304687499],[-82.44755859374993,82.39501953125003],[-81.68115234375003,82.51865234375],[-82.11684570312497,82.62866210937503],[-80.8625,82.57153320312503],[-81.01015625000002,82.77905273437503],[-78.748779296875,82.67939453124998],[-80.15493164062497,82.91113281250003],[-77.61806640624997,82.89584960937503],[-76.009375,82.53515625],[-75.565625,82.60854492187502],[-77.12490234374994,83.00854492187497],[-74.41416015624995,83.01313476562501],[-72.65869140625,82.72163085937495],[-73.44189453124994,82.90483398437499],[-72.811669921875,83.08120117187502],[-71.98320312499996,83.10141601562498],[-70.94038085937495,82.90224609375],[-71.08481445312498,83.08266601562497],[-69.96992187499995,83.11611328125005],[-69.4888671875,83.01679687499998]]]]},"properties":{"name":"Canada","childNum":110}},{"geometry":{"type":"Polygon","coordinates":[[[9.527658197470123,47.27026989773668],[9.46249431093294,47.19858962254578],[9.46249431093294,47.09010747968864],[9.409458596647225,47.02019676540292],[9.579979133936737,47.05856388629306],[9.580273437500011,47.057373046875],[10.133496093750011,46.851513671875],[10.349414062500017,46.98476562499999],[10.414941406250023,46.964404296874996],[10.45458984375,46.8994140625],[10.452832031250011,46.86494140625],[10.406054687500017,46.73486328125],[10.39794921875,46.6650390625],[10.4306640625,46.550048828125],[10.195507812500011,46.62109375],[10.1375,46.61435546875],[10.087011718750006,46.599902343749996],[10.061230468750011,46.546777343749994],[10.038281250000011,46.483203125],[10.045605468750011,46.447900390624994],[10.081933593750023,46.420751953125],[10.109667968750017,46.362841796874996],[10.128320312500023,46.238232421875],[10.08056640625,46.227978515625],[10.041015625,46.238085937499996],[9.939257812500017,46.36181640625],[9.884472656250011,46.3677734375],[9.787792968750011,46.346044921875],[9.639453125000017,46.2958984375],[9.57958984375,46.29609375],[9.528710937500023,46.306201171874996],[9.427636718750023,46.482324218749994],[9.399316406250023,46.4806640625],[9.304394531250011,46.495556640625],[9.203417968750017,46.21923828125],[9.11874162946429,46.014892578125],[8.97551618303573,45.81677455357143],[8.74961495535715,46.02246372767857],[8.818554687500011,46.0771484375],[8.458398437500023,46.245898437499996],[8.370703125,46.445117187499996],[8.298535156250011,46.40341796875],[8.23193359375,46.341210937499994],[8.08154296875,46.256005859374994],[7.9931640625,46.015917968749996],[7.327929687500017,45.912353515625],[7.129003906250006,45.880419921874996],[7.055761718750006,45.90380859375],[7.02109375,45.92578125],[6.953710937500006,46.017138671874996],[6.897265625000017,46.0517578125],[6.772070312500006,46.16513671875],[6.758105468750017,46.415771484375],[6.578222656250006,46.437353515625],[6.428906250000011,46.430517578125],[6.321875,46.393701171874994],[6.234667968750017,46.3326171875],[6.199414062500011,46.19306640625],[6.086621093750011,46.147021484374996],[6.006640625000017,46.142333984375],[5.971484375000017,46.151220703125],[5.970019531250017,46.214697265625],[6.0361328125,46.238085937499996],[6.095898437500011,46.27939453125],[6.129687500000017,46.5669921875],[6.41015625,46.755419921874996],[6.429003906250017,46.832275390625],[6.45625,46.94833984375],[6.624804687500017,47.004345703125],[6.666894531250023,47.026513671874994],[6.688085937500006,47.058251953124994],[6.820703125000023,47.16318359375],[6.952050781250023,47.2671875],[6.978515625,47.302050781249996],[7.000585937500006,47.322509765625],[7.000585937500006,47.339453125],[6.900390625,47.39423828125],[6.968359375,47.45322265625],[7.136035156250017,47.48984375],[7.343164062500023,47.43310546875],[7.615625,47.592724609375],[8.454003906250023,47.59619140625],[8.559472656250023,47.6240234375],[8.570507812500011,47.63779296875],[8.567089843750011,47.651904296874996],[8.55234375,47.659130859375],[8.451757812500006,47.651806640625],[8.413281250000011,47.6626953125],[8.403417968750006,47.687792968749996],[8.435742187500011,47.731347656249994],[8.572656250000023,47.775634765625],[9.524023437500006,47.52421875],[9.625878906250023,47.467041015625],[9.527539062500011,47.270751953125],[9.527658197470123,47.27026989773668]]]},"properties":{"name":"Switzerland","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-67.28886718749999,-55.776855468749964],[-67.55996093749997,-55.72480468750002],[-67.39736328124997,-55.58515625],[-67.28886718749999,-55.776855468749964]]],[[[-67.07993164062498,-55.15380859374996],[-67.33969726562495,-55.292578124999984],[-67.4947265625,-55.177441406249976],[-68.07001953124995,-55.22109374999999],[-68.30136718750003,-54.98066406250003],[-67.245263671875,-54.977636718750034],[-67.07993164062498,-55.15380859374996]]],[[[-69.70297851562503,-54.91904296875],[-68.90078125000002,-55.01777343750004],[-68.45800781249997,-54.95966796875002],[-68.61328124999997,-55.155566406250045],[-68.28266601562495,-55.25517578125],[-68.04833984375,-55.6431640625],[-68.86704101562498,-55.45019531250003],[-68.89008789062498,-55.2412109375],[-69.19262695312497,-55.171875],[-69.35922851562498,-55.300683593749945],[-69.18085937499995,-55.47480468749998],[-69.41181640624995,-55.44423828124997],[-69.97978515625002,-55.14746093749999],[-69.88442382812494,-54.88203125000001],[-69.70297851562503,-54.91904296875]]],[[[-70.9916015625,-54.86796874999999],[-70.80483398437497,-54.96767578124996],[-70.41752929687493,-54.908886718749976],[-70.29785156249997,-55.11376953124997],[-70.47558593749994,-55.17705078124998],[-71.43720703125001,-54.88925781249997],[-70.9916015625,-54.86796874999999]]],[[[-71.390478515625,-54.03281250000002],[-71.02192382812495,-54.111816406250036],[-71.14326171874998,-54.374023437499986],[-71.473291015625,-54.23115234375001],[-71.94853515624999,-54.300878906250006],[-72.21044921874997,-54.04775390624995],[-71.996484375,-53.884863281249984],[-71.390478515625,-54.03281250000002]]],[[[-72.92324218749997,-53.481640625],[-72.88222656249997,-53.578320312499976],[-72.48227539062503,-53.58808593750001],[-72.20541992187503,-53.80742187500002],[-72.408544921875,-54.00380859374997],[-72.87099609375,-54.12656250000002],[-72.76376953125,-53.86484375],[-73.03945312499994,-53.83281250000004],[-73.08076171875001,-53.99804687499995],[-73.21064453125001,-53.98583984374995],[-73.31435546875,-53.72919921874998],[-73.845458984375,-53.54580078125001],[-73.44707031249993,-53.41005859374998],[-72.92324218749997,-53.481640625]]],[[[-74.38574218749994,-52.92236328125001],[-73.65400390624998,-53.06982421875003],[-73.13520507812498,-53.35390625],[-73.56728515625,-53.3068359375],[-73.86694335937494,-53.096875],[-74.27021484374995,-53.08154296875002],[-74.71201171874998,-52.74873046874998],[-74.38574218749994,-52.92236328125001]]],[[[-68.62993164062499,-52.65263671875004],[-68.65322265624994,-54.85361328124999],[-69.48627929687493,-54.85888671875],[-69.72343750000002,-54.71210937500003],[-70.49716796875,-54.80957031249999],[-71.83154296874997,-54.62617187500002],[-71.92773437500003,-54.52871093749997],[-71.80014648437498,-54.433984374999945],[-71.07993164062498,-54.444238281249994],[-70.79726562500002,-54.32724609374996],[-70.70112304687498,-54.48544921875004],[-70.31098632812498,-54.52851562500002],[-70.86308593749993,-54.11044921875003],[-70.86772460937499,-53.88417968750002],[-70.53129882812502,-53.627343750000016],[-70.37973632812495,-53.98671874999995],[-70.62983398437493,-54.005566406249976],[-70.53530273437494,-54.136132812500016],[-70.16899414062502,-54.37929687499999],[-69.74184570312494,-54.30585937500005],[-69.25317382812494,-54.557421875000045],[-69.04433593749997,-54.40673828124999],[-69.98813476562503,-54.10908203125001],[-70.15112304687503,-53.88808593750002],[-70.09111328124996,-53.72177734374998],[-69.35595703125003,-53.41630859375001],[-69.63701171874999,-53.33408203125004],[-70.32929687499998,-53.37763671875003],[-70.44335937499994,-53.085546875000034],[-70.130615234375,-52.942773437499994],[-70.38012695312494,-52.75195312500002],[-69.93544921874997,-52.82109374999998],[-69.41406249999997,-52.48623046874997],[-69.16704101562499,-52.66757812499997],[-68.78979492187497,-52.576757812500034],[-68.62993164062499,-52.65263671875004]]],[[[-74.82294921874993,-51.63017578125001],[-74.53681640624998,-51.96513671875004],[-74.69448242187497,-52.27919921874999],[-74.85180664062494,-52.27070312500003],[-75.10537109375,-51.78886718750001],[-74.82294921874993,-51.63017578125001]]],[[[-74.55864257812499,-51.27705078125001],[-74.62036132812497,-51.395703125000026],[-75.04736328125,-51.39833984375003],[-75.28911132812496,-51.625390625000016],[-75.15366210937498,-51.278808593750014],[-74.73666992187503,-51.20761718749999],[-74.55864257812499,-51.27705078125001]]],[[[-75.302001953125,-50.67998046875005],[-75.411376953125,-50.76435546875001],[-75.42763671875002,-50.48056640625002],[-75.11533203124998,-50.510449218749976],[-75.302001953125,-50.67998046875005]]],[[[-75.05478515625,-50.29609375],[-75.44912109374997,-50.34335937500004],[-75.32666015624997,-50.01181640625],[-74.8759765625,-50.10996093750001],[-75.05478515625,-50.29609375]]],[[[-75.106689453125,-48.83652343750001],[-75.38994140624999,-49.15917968750002],[-75.64116210937499,-49.195410156250034],[-75.48764648437498,-49.082421875000016],[-75.58310546874998,-48.85888671874995],[-75.106689453125,-48.83652343750001]]],[[[-74.47617187499998,-49.14785156250002],[-74.59472656249997,-50.00664062500001],[-74.76298828124996,-50.01142578125001],[-74.88041992187502,-49.72587890625001],[-74.72382812499998,-49.42382812500003],[-74.960107421875,-49.533007812499974],[-75.06601562499998,-49.85234375000002],[-75.54980468749994,-49.79130859375002],[-75.30585937499998,-49.49404296875003],[-75.46748046874995,-49.35888671875003],[-75.08603515624998,-49.27021484375],[-75.21015624999995,-49.14804687499998],[-74.94921875,-48.960156249999976],[-74.89624023437503,-48.73320312500002],[-74.54609374999993,-48.76689453125004],[-74.47617187499998,-49.14785156250002]]],[[[-75.51025390624997,-48.76347656250005],[-75.65092773437496,-48.58632812500002],[-75.57148437499993,-48.095898437500026],[-75.39140625000002,-48.01972656249997],[-75.15849609374999,-48.62265624999996],[-75.51025390624997,-48.76347656250005]]],[[[-74.56728515625,-48.591992187500026],[-74.92304687499998,-48.62646484375003],[-75.21289062499997,-48.141699218750034],[-75.19829101562502,-47.974609375000014],[-74.895654296875,-47.839355468749986],[-74.56728515625,-48.591992187500026]]],[[[-75.11220703124997,-47.8376953125],[-75.26103515625002,-47.76386718749998],[-74.92646484374998,-47.72314453125003],[-75.11220703124997,-47.8376953125]]],[[[-74.31289062500002,-45.69150390625002],[-74.46552734374995,-45.757226562499994],[-74.68984375,-45.66259765625],[-74.310546875,-45.17265625000002],[-74.31289062500002,-45.69150390625002]]],[[[-73.63217773437498,-44.82148437499997],[-73.81845703125,-44.65214843750002],[-73.72392578124993,-44.544238281249974],[-73.63217773437498,-44.82148437499997]]],[[[-72.98613281249999,-44.780078124999974],[-73.22846679687498,-44.85996093749999],[-73.39707031249998,-44.77431640624995],[-73.44506835937497,-44.641015624999966],[-73.20771484374993,-44.33496093749997],[-72.7763671875,-44.50859374999999],[-72.98613281249999,-44.780078124999974]]],[[[-73.73535156249997,-44.39453125000003],[-74.00205078125003,-44.59091796874998],[-73.728173828125,-45.195898437500034],[-74.016259765625,-45.344921875000026],[-74.61777343749998,-44.64794921874996],[-74.50180664062498,-44.47353515624995],[-74.09721679687496,-44.38935546875004],[-73.99492187499999,-44.140234375],[-73.70322265624998,-44.27412109375001],[-73.73535156249997,-44.39453125000003]]],[[[-73.81064453125003,-43.827246093750006],[-73.95566406249998,-43.921972656250034],[-74.14296874999997,-43.872167968750006],[-73.81064453125003,-43.827246093750006]]],[[[-73.77338867187498,-43.3458984375],[-74.114404296875,-43.35791015624996],[-74.387353515625,-43.231640625],[-74.03666992187496,-41.79550781249998],[-73.52783203124997,-41.89628906249999],[-73.42290039062499,-42.192871093750014],[-73.47080078124998,-42.46630859375004],[-73.78925781249993,-42.58574218750003],[-73.43632812499996,-42.9365234375],[-73.74965820312494,-43.15908203124995],[-73.77338867187498,-43.3458984375]]],[[[-78.80415039062501,-33.646484374999986],[-78.98945312499993,-33.66171874999998],[-78.87744140625003,-33.57519531250003],[-78.80415039062501,-33.646484374999986]]],[[[-109.27998046874994,-27.14042968749996],[-109.434130859375,-27.171289062500023],[-109.39047851562499,-27.068359375000014],[-109.27998046874994,-27.14042968749996]]],[[[-67.19487304687493,-22.821679687500037],[-67.00878906249994,-23.00136718750005],[-67.35620117187503,-24.033789062499963],[-68.25029296875002,-24.391992187500023],[-68.56201171875,-24.74736328125003],[-68.38422851562495,-25.091894531249977],[-68.59208984375002,-25.420019531250034],[-68.41450195312498,-26.153710937500023],[-68.59160156249999,-26.47041015624997],[-68.31865234374999,-26.973242187500006],[-68.59208984375002,-27.140039062499966],[-68.84633789062494,-27.153710937499994],[-69.17441406249998,-27.924707031250037],[-69.65693359374995,-28.413574218749986],[-69.82788085937497,-29.10322265624997],[-70.02680664062501,-29.324023437500017],[-69.95996093749997,-30.078320312500026],[-69.84428710937493,-30.175],[-69.95634765624996,-30.35820312500003],[-70.15322265625,-30.360937499999963],[-70.30908203124994,-31.02265625000004],[-70.51958007812493,-31.1484375],[-70.585205078125,-31.569433593749963],[-70.25439453125,-31.957714843750026],[-70.36376953125,-32.08349609374997],[-70.02197265625,-32.88457031250002],[-70.08486328125002,-33.20175781249998],[-69.81962890624999,-33.28378906249999],[-69.85244140625,-34.224316406250026],[-70.05205078124999,-34.30078124999997],[-70.39316406250003,-35.146875],[-70.55517578125,-35.246875],[-70.41572265625001,-35.52304687500002],[-70.40478515625,-36.06171874999998],[-71.05551757812498,-36.52373046874996],[-71.19218750000002,-36.84365234375004],[-71.16757812499998,-37.76230468749996],[-70.858642578125,-38.60449218750003],[-71.40156249999995,-38.93505859374996],[-71.53945312499997,-39.60244140624995],[-71.71992187499995,-39.63525390624997],[-71.65976562499998,-40.02080078125],[-71.81831054687493,-40.17666015624995],[-71.70898437499997,-40.381738281249994],[-71.93212890624994,-40.69169921874999],[-71.91127929687497,-41.650390624999986],[-71.75,-42.04677734375001],[-72.10820312499993,-42.25185546874995],[-72.14643554687498,-42.990039062499974],[-71.750634765625,-43.237304687499986],[-71.90498046875001,-43.34755859374998],[-71.68007812500002,-43.92958984374998],[-71.82001953124993,-44.38310546875],[-71.21259765624998,-44.44121093750003],[-71.15971679687496,-44.56025390625004],[-71.26113281250002,-44.763085937499966],[-72.06372070312503,-44.771875],[-72.04169921874998,-44.90419921875004],[-71.5962890625,-44.97919921875004],[-71.34931640624995,-45.33193359374995],[-71.74619140624998,-45.57890625],[-71.63154296874998,-45.95371093749998],[-71.87568359374998,-46.160546875],[-71.69965820312501,-46.6513671875],[-71.94023437499999,-46.83125],[-71.90498046875001,-47.201660156250014],[-72.34594726562497,-47.49267578124997],[-72.517919921875,-47.87636718749998],[-72.32832031250001,-48.11005859374998],[-72.35473632812497,-48.36582031250005],[-72.582861328125,-48.47539062499999],[-72.65126953125,-48.84160156249998],[-73.03364257812501,-49.014355468750004],[-73.13525390625,-49.30068359374999],[-73.46157226562497,-49.31386718750001],[-73.55419921875,-49.463867187500014],[-73.50126953124996,-50.125292968750024],[-73.15292968749998,-50.73828125000003],[-72.50981445312496,-50.607519531250034],[-72.34023437499997,-50.68183593749999],[-72.40766601562501,-51.54082031250002],[-71.91865234374995,-51.98955078125004],[-69.96025390624993,-52.00820312500002],[-68.443359375,-52.35664062500004],[-69.24101562499996,-52.20546874999997],[-69.62031249999995,-52.46474609374995],[-70.79511718749995,-52.76875],[-70.99584960937497,-53.77929687499997],[-71.29775390625002,-53.88339843750004],[-72.1744140625,-53.632324218749964],[-72.41289062500002,-53.35019531250004],[-71.94169921874993,-53.23408203125001],[-71.89169921874998,-53.523535156250006],[-71.79145507812498,-53.48457031249997],[-71.74052734374999,-53.232617187499976],[-71.28896484375002,-53.03369140624995],[-71.22714843750003,-52.810644531249984],[-71.38774414062496,-52.76425781250004],[-72.27802734374998,-53.13232421874997],[-72.54892578125,-53.4607421875],[-73.05273437499997,-53.24345703125005],[-72.72768554687502,-52.7623046875],[-72.453466796875,-52.814453124999964],[-72.11757812499997,-52.65],[-71.51127929687502,-52.60537109375],[-72.22568359374998,-52.52099609374995],[-72.43769531250001,-52.62578124999998],[-72.71210937499995,-52.53554687499999],[-73.12246093749997,-53.073925781249976],[-73.64521484374998,-52.83701171875003],[-73.2408203125,-52.707128906250034],[-73.12392578125,-52.487988281249976],[-73.24414062499997,-52.62402343749998],[-73.58569335937503,-52.68574218750003],[-74.01445312499999,-52.63935546875],[-74.26494140624993,-52.1048828125],[-73.83447265625,-52.23398437500001],[-73.68432617187494,-52.07773437499998],[-73.26044921874993,-52.157812500000034],[-72.79501953124998,-51.94951171875005],[-72.57084960937496,-52.200097656249945],[-72.67705078125002,-52.38466796874998],[-72.52333984374997,-52.255468750000034],[-72.62460937499998,-51.94648437499997],[-72.48964843750002,-51.76367187500003],[-72.76123046875,-51.57324218749996],[-73.16875,-51.45390624999998],[-72.60004882812495,-51.79912109374997],[-73.51816406250003,-52.04101562499996],[-73.75263671874993,-51.795507812500034],[-74.19667968749997,-51.68056640624997],[-73.92978515624995,-51.61787109374999],[-73.93950195312499,-51.26630859375005],[-74.81474609374996,-51.06289062499999],[-75.09467773437495,-50.68125],[-74.68574218749995,-50.662011718749945],[-74.77587890625003,-50.46992187499998],[-74.64448242187498,-50.360937499999984],[-74.365576171875,-50.487890625],[-74.13940429687503,-50.81777343749997],[-73.80654296875,-50.93837890625003],[-73.654443359375,-50.49267578125],[-73.97802734375003,-50.827050781249994],[-74.18559570312493,-50.485351562500014],[-73.95034179687497,-50.510546875],[-74.62958984374998,-50.19404296875],[-74.333740234375,-49.97460937499997],[-73.95859374999998,-49.994726562499984],[-74.32392578124995,-49.783398437500004],[-74.29082031249996,-49.604101562499984],[-73.83637695312493,-49.609375],[-74.09443359374993,-49.42968749999998],[-73.93496093749994,-49.02089843750001],[-74.2212890625,-49.500585937500034],[-74.36655273437503,-49.40048828124998],[-74.34101562499998,-48.59570312499998],[-74.00908203124996,-48.475],[-74.47441406249999,-48.46396484374996],[-74.58466796874998,-47.999023437500014],[-73.39106445312498,-48.14589843750001],[-73.60991210937499,-47.993945312500045],[-73.71586914062499,-47.65546875000001],[-73.94086914062498,-47.92939453125004],[-74.22705078124994,-47.96894531250001],[-74.654931640625,-47.702246093750034],[-74.5337890625,-47.567675781249974],[-74.24296874999999,-47.67929687499998],[-74.13408203125002,-47.590820312499986],[-74.48266601562497,-47.43046875],[-74.15839843749998,-47.18251953125002],[-74.31357421874998,-46.78818359374998],[-74.45419921875003,-46.76679687499997],[-74.51225585937496,-46.88515625000002],[-75.00595703125,-46.74111328124998],[-74.98417968750002,-46.51210937499995],[-75.54033203124999,-46.69873046874996],[-75.43037109374995,-46.93457031249996],[-75.70639648437498,-46.70527343749997],[-74.924462890625,-46.159667968750014],[-75.06669921874993,-45.874902343749994],[-74.15786132812497,-45.7671875],[-74.122705078125,-45.49619140625002],[-73.95717773437494,-45.40439453124998],[-73.825,-45.446875],[-74.01992187500002,-46.055859375],[-74.39296875,-46.21738281250005],[-73.96757812500002,-46.15410156250003],[-73.87871093749993,-45.846875],[-73.73525390624994,-45.81171875],[-73.70815429687502,-46.070312500000014],[-73.94863281249997,-46.533105468749966],[-73.845361328125,-46.56601562500002],[-73.59184570312493,-45.89912109375004],[-73.73076171874999,-45.47998046875],[-73.26621093749995,-45.346191406250014],[-72.933837890625,-45.45234374999997],[-73.44497070312497,-45.23818359374995],[-73.36245117187502,-44.97822265625001],[-72.73896484375001,-44.73417968750003],[-72.680078125,-44.59394531249997],[-72.66386718749999,-44.43642578124995],[-73.26508789062498,-44.16865234375001],[-73.22446289062498,-43.89794921875003],[-73.06879882812495,-43.86201171874998],[-72.99658203125,-43.63154296875001],[-73.07597656250002,-43.323632812499994],[-72.75800781249998,-43.039453125],[-72.84804687500002,-42.66914062499997],[-72.77392578125003,-42.505175781250045],[-72.63183593750003,-42.509667968749994],[-72.77324218749996,-42.257714843749994],[-72.63105468749995,-42.199804687500006],[-72.412353515625,-42.388183593750014],[-72.49941406249997,-41.98085937499999],[-72.82407226562503,-41.90878906249996],[-72.36040039062499,-41.64912109375],[-72.31826171875,-41.49902343749997],[-72.54238281250002,-41.690625],[-72.95283203124995,-41.51474609374998],[-73.24179687499995,-41.78085937500002],[-73.62402343750003,-41.77363281249997],[-73.73515625000002,-41.74248046875002],[-73.62392578125,-41.581347656250045],[-73.81074218749995,-41.51748046875001],[-73.96586914062493,-41.118261718750034],[-73.67099609375,-39.96318359374999],[-73.41040039062503,-39.78916015624998],[-73.22646484375002,-39.22441406250003],[-73.52021484375001,-38.509375],[-73.46479492187498,-38.04033203125003],[-73.66181640624998,-37.69853515625003],[-73.66240234375002,-37.341015625000026],[-73.60166015624998,-37.18847656250003],[-73.21596679687502,-37.16689453124998],[-73.11806640624997,-36.68837890625002],[-72.58735351562493,-35.759667968749994],[-72.62392578125002,-35.5857421875],[-72.22377929687494,-35.096191406250014],[-72.00283203124997,-34.16533203125],[-71.66435546875002,-33.65263671875],[-71.74296875,-33.09511718750001],[-71.45224609374998,-32.65957031250001],[-71.70893554687495,-30.62802734375002],[-71.66948242187499,-30.33037109374996],[-71.40039062499997,-30.142968749999966],[-71.31572265624996,-29.649707031250017],[-71.51923828124993,-28.926464843750026],[-71.30673828124998,-28.672460937499963],[-71.08652343749998,-27.814453124999957],[-70.92578125,-27.588671874999974],[-70.64658203124998,-26.329394531250017],[-70.71372070312498,-25.78417968749997],[-70.44536132812502,-25.17265624999999],[-70.57412109374994,-24.644335937500003],[-70.39233398437494,-23.565917968749957],[-70.59335937499995,-23.255468750000034],[-70.56318359374995,-23.057031250000023],[-70.33168945312494,-22.848632812500014],[-70.08002929687501,-21.356835937500037],[-70.19702148437494,-20.725390625],[-70.15742187499995,-19.70585937500003],[-70.41826171874999,-18.345605468750023],[-69.92636718749998,-18.206054687500014],[-69.80258789062498,-17.990234375000014],[-69.85209960937493,-17.70380859375001],[-69.68476562499995,-17.649804687500023],[-69.58642578125,-17.57324218749997],[-69.51093749999998,-17.50605468749997],[-69.31337890624997,-17.943164062500017],[-69.28232421875003,-17.96484375],[-69.09394531249993,-18.05048828125004],[-69.14545898437495,-18.14404296875],[-69.09228515624994,-18.28242187500004],[-69.02680664062493,-18.65625],[-68.97885742187503,-18.81298828125003],[-68.96831054687502,-18.967968749999983],[-68.85795898437499,-19.09335937500005],[-68.62055664062495,-19.29667968749999],[-68.54785156249997,-19.341113281249974],[-68.49199218749996,-19.381933593750034],[-68.47016601562495,-19.409960937499974],[-68.46289062499997,-19.43281250000001],[-68.57529296874998,-19.56015625000002],[-68.69829101562499,-19.721093750000037],[-68.69619140625,-19.74072265625003],[-68.57827148437494,-19.856542968750006],[-68.559375,-19.902343750000014],[-68.56069335937502,-19.96708984374996],[-68.75932617187499,-20.115527343750003],[-68.74516601562493,-20.45859375],[-68.48432617187498,-20.628417968749957],[-68.55825195312497,-20.90195312499999],[-68.197021484375,-21.30029296874997],[-68.18642578124997,-21.618554687499966],[-67.88173828124997,-22.493359375000026],[-67.87944335937496,-22.822949218750026],[-67.57993164062495,-22.89169921874999],[-67.36225585937493,-22.85517578125001],[-67.19487304687493,-22.821679687500037]]]]},"properties":{"name":"Chile","childNum":26}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[110.88876953125006,19.99194335937497],[111.01367187500003,19.65546875000001],[110.64091796875002,19.291210937499955],[110.45126953125012,18.747949218750023],[110.06738281249997,18.447558593750045],[109.51933593750007,18.21826171875003],[108.7015625,18.535253906250034],[108.66552734375003,19.304101562499994],[109.27666015625002,19.761132812500023],[109.17744140625004,19.768457031250023],[109.26347656250007,19.882666015625006],[110.1715820312501,20.053710937500057],[110.58818359375002,19.976367187500017],[110.6517578125,20.137744140625017],[110.88876953125006,19.99194335937497]]],[[[110.38515625000005,21.093164062499966],[110.52158203125006,21.083105468750063],[110.50390625000003,20.96772460937501],[110.28095703125004,21.001171874999983],[110.38515625000005,21.093164062499966]]],[[[112.64375,21.63964843750003],[112.525,21.62304687500003],[112.64765625000004,21.710253906250017],[112.64375,21.63964843750003]]],[[[112.79023437500004,21.601855468750045],[112.78203125000007,21.772265625000045],[112.86259765625002,21.75263671875004],[112.79023437500004,21.601855468750045]]],[[[118.1830078125,24.496289062499983],[118.0905273437501,24.446142578125063],[118.10380859375002,24.552343750000034],[118.1830078125,24.496289062499983]]],[[[119.82089843750006,25.45698242187504],[119.70029296875012,25.432714843750063],[119.72255859375005,25.638818359375023],[119.83837890625003,25.591064453125],[119.82089843750006,25.45698242187504]]],[[[121.2513671875,28.086425781250057],[121.13154296875004,28.062597656250006],[121.20546875,28.204394531250017],[121.2513671875,28.086425781250057]]],[[[122.29589843750003,29.96342773437499],[122.02402343750012,30.01333007812505],[121.96943359375004,30.143115234375017],[122.28447265625007,30.068017578124994],[122.29589843750003,29.96342773437499]]],[[[121.86269531250005,31.492285156249977],[121.519921875,31.549609375000017],[121.2111328125001,31.80537109375001],[121.86269531250005,31.492285156249977]]],[[[130.52695312500012,42.535400390625],[130.24667968750012,42.744824218749955],[130.24033203125006,42.891796874999955],[129.89824218750002,42.998144531250034],[129.69785156250012,42.448144531249994],[129.3136718750001,42.41357421874997],[128.92343750000006,42.038232421874966],[128.04521484375007,41.9875],[128.28925781250004,41.60742187500006],[128.14941406249997,41.38774414062496],[127.17968750000003,41.531347656250006],[126.95478515625004,41.76948242187501],[126.74306640625,41.724853515625],[125.98906250000002,40.904638671875034],[124.8893554687501,40.459814453125006],[124.36210937500002,40.004052734374994],[124.10576171875002,39.84101562499998],[123.65087890625003,39.881591796875],[122.8400390625001,39.600830078125],[121.98232421875,39.05317382812498],[121.67724609374997,39.00341796875006],[121.64990234375003,38.865087890625034],[121.16357421874997,38.73164062500001],[121.10673828125002,38.920800781249994],[121.6798828125001,39.10869140625002],[121.62763671875004,39.22016601562498],[121.81845703125006,39.38652343750002],[121.27548828125006,39.38476562500003],[121.26748046875,39.544677734375],[121.51757812499997,39.638964843750045],[121.51738281250002,39.84482421875006],[121.8009765625001,39.950537109375006],[122.27500000000012,40.541845703125034],[121.83486328125005,40.97426757812502],[121.72929687500002,40.84614257812504],[121.1745117187501,40.901269531249994],[120.47910156250006,40.23095703125003],[119.39111328125003,39.75249023437499],[118.976953125,39.182568359374955],[118.29785156249997,39.067089843749955],[118.04091796875,39.22675781249998],[117.86572265625003,39.191259765625034],[117.61669921875003,38.852880859375034],[117.5578125000001,38.625146484374994],[117.76669921875012,38.311669921874994],[118.01494140625007,38.18339843749996],[118.94003906250006,38.04277343750002],[119.08916015625007,37.70073242187496],[118.95263671875003,37.33115234374998],[119.28740234375002,37.138281250000034],[119.76054687500007,37.15507812499999],[120.31152343750003,37.62270507812505],[120.2572265625,37.67900390624996],[120.75,37.83393554687501],[121.64023437500012,37.46035156250002],[122.05664062500003,37.528906250000034],[122.66699218750003,37.40283203125003],[122.4466796875,37.06811523437503],[122.51972656250004,36.94682617187502],[122.34091796875012,36.83222656250004],[121.93271484375006,36.95947265625003],[121.05380859375006,36.61137695312499],[120.81083984375007,36.6328125],[120.89580078125007,36.44414062500002],[120.71152343750006,36.41328125000004],[120.6378906250001,36.129931640625045],[120.39306640625003,36.053857421874994],[120.32773437500006,36.228173828124994],[120.18330078125004,36.20244140624999],[120.094140625,36.11889648437503],[120.28476562500006,35.98442382812499],[119.42968749999997,35.301416015624994],[119.16533203125002,34.84882812499998],[119.20097656250002,34.748437499999966],[120.26669921875006,34.274023437500034],[120.87109374999997,33.016503906249994],[120.8532226562501,32.66137695312503],[121.34169921875005,32.42504882812503],[121.40390625000006,32.20625],[121.85634765625,31.816455078125045],[121.86630859375006,31.703564453124955],[121.68085937500004,31.71215820312503],[121.351953125,31.85878906250005],[120.97353515625,31.86938476562497],[120.52011718750006,32.10585937500002],[120.03593750000002,31.93627929687503],[120.7155273437501,31.983740234375006],[120.7877929687501,31.81977539062501],[121.66064453124997,31.319726562499994],[121.87792968750003,30.91699218750003],[121.41894531249997,30.789794921875057],[120.8214843750001,30.354638671875023],[120.44980468750006,30.38784179687505],[120.19462890625002,30.241308593750034],[120.49453125,30.303076171875006],[120.63339843750006,30.133154296875034],[121.25800781250004,30.30410156250005],[121.67792968750004,29.979101562500006],[122.08291015625005,29.870361328125057],[121.50625,29.484570312499955],[121.94121093750002,29.605908203124983],[121.91777343750007,29.13500976562497],[121.71748046875004,29.25634765625],[121.48710937500007,29.193164062500017],[121.67968749999997,28.953125],[121.54003906250003,28.931884765625],[121.6625,28.851416015625034],[121.47519531250006,28.64140625],[121.60996093750006,28.29213867187505],[121.27226562500002,28.222119140624983],[121.14570312500004,28.32666015624997],[120.95859375000006,28.037011718750023],[120.74765625000006,28.00996093750001],[120.83300781249997,27.891455078125034],[120.58750000000012,27.580761718749983],[120.60751953125012,27.41240234374996],[120.2787109375,27.097070312500023],[120.08671875000007,26.67158203125004],[119.88222656250005,26.610449218750006],[119.82421874999997,26.84638671875001],[119.71044921874997,26.728662109375023],[119.58818359375002,26.784960937500045],[119.8810546875001,26.33417968750004],[119.46308593750004,26.05468750000003],[119.13945312500007,26.12177734375001],[119.33203124999997,25.94873046875003],[119.61875000000012,26.003564453124994],[119.53945312500005,25.59125976562504],[119.6224609375,25.391162109375017],[119.180078125,25.449804687499977],[119.285546875,25.232226562500074],[118.97753906249997,25.209277343750017],[118.90908203125005,24.92890625000001],[118.63691406250004,24.835546874999977],[118.65703125000002,24.621435546874977],[118.0871093750001,24.627001953125045],[118.00595703125006,24.48198242187499],[117.84267578125005,24.47431640625004],[118.0560546875,24.24609374999997],[117.62822265625002,23.836718750000074],[117.46640625000012,23.84057617187497],[117.36767578124997,23.58862304687497],[117.29082031250007,23.71435546875],[117.08251953124997,23.578759765625023],[116.91064453124997,23.646679687499983],[116.86093750000006,23.453076171874983],[116.62939453124997,23.353857421875034],[116.69882812500006,23.277783203124983],[116.53828125000004,23.17968749999997],[116.47070312499997,22.945898437500034],[116.25185546875005,22.981347656249994],[115.85214843750006,22.801562500000045],[115.64042968750002,22.853417968750023],[115.49833984375002,22.718847656250063],[115.19580078125003,22.81728515625005],[114.85380859375007,22.616796875000063],[114.65166015625002,22.755273437500023],[114.55419921874997,22.52890625],[114.26601562500005,22.540966796874983],[114.01542968750007,22.51191406250001],[113.61962890624997,22.861425781249977],[113.6205078125,23.12749023437499],[113.51972656250004,23.102099609375074],[113.33105468749997,22.912011718749966],[113.55302734375002,22.594042968750045],[113.54912109375002,22.225195312500034],[113.14902343750012,22.075],[113.08876953125,22.207958984374983],[112.95390625000007,21.907324218750034],[112.80859374999997,21.944628906250074],[112.58632812500005,21.77685546875],[112.35966796875007,21.97802734375003],[112.30498046875002,21.74169921875003],[111.94394531250012,21.84965820312499],[111.60273437500004,21.55908203125003],[111.01689453125007,21.51171874999997],[110.56718750000002,21.21406250000001],[110.41093750000007,21.33813476562497],[110.15400390625004,20.944628906250017],[110.36542968750004,20.837597656249955],[110.31308593750012,20.67167968749999],[110.51152343750007,20.51826171875001],[110.34472656249997,20.29482421875005],[109.88251953125004,20.364062500000045],[109.96835937500006,20.448144531250023],[109.66259765625003,20.91689453125005],[109.68125000000012,21.13164062499999],[109.93076171875012,21.480566406250034],[109.6869140625,21.52460937500004],[109.56640624999997,21.690576171874994],[109.54404296875012,21.537939453125006],[109.14863281250004,21.425537109375],[109.1017578125001,21.59047851562505],[108.77167968750004,21.63046875],[108.59375,21.901025390624994],[108.47988281250005,21.904638671875006],[108.50214843750004,21.633447265624994],[108.32480468750006,21.693505859374994],[108.24628906250004,21.55839843749999],[107.97265624999997,21.507958984375023],[107.75927734374997,21.655029296875057],[107.35117187500012,21.60888671874997],[106.97099609375002,21.923925781250034],[106.66357421875003,21.97890625000005],[106.55039062500006,22.501367187499994],[106.78027343749997,22.778906250000034],[106.54179687500007,22.908349609375023],[106.2790039062501,22.857470703125045],[106.14843749999997,22.970068359375006],[105.8429687500001,22.922802734374955],[105.27539062500003,23.34521484375003],[104.86474609375003,23.136376953125023],[104.68730468750002,22.822216796874983],[104.37177734375004,22.704052734374983],[104.14306640624997,22.800146484375006],[103.94150390625006,22.540087890625045],[103.62021484375006,22.782031250000045],[103.49296875000007,22.587988281250034],[103.32666015625003,22.769775390625057],[102.98193359374997,22.4482421875],[102.47089843750004,22.75092773437501],[102.40644531250004,22.70800781249997],[102.2370117187501,22.466015624999983],[102.1759765625001,22.414648437500006],[102.12744140624997,22.379199218750045],[101.84179687500003,22.38847656249999],[101.75996093750004,22.490332031250034],[101.73876953124997,22.495263671874994],[101.70751953125003,22.486572265625],[101.67148437500006,22.462304687500023],[101.64619140625004,22.405419921874966],[101.61992187500002,22.32744140624999],[101.56787109374997,22.27636718749997],[101.52451171875006,22.25366210937497],[101.7365234375001,21.826513671874977],[101.74394531250007,21.77797851562505],[101.74726562500004,21.605761718750045],[101.72294921875007,21.31494140625003],[101.80058593750007,21.212597656249983],[101.78349609375007,21.204150390625017],[101.728125,21.156396484374994],[101.7047851562501,21.15014648437503],[101.54238281250005,21.23427734375005],[101.2814453125001,21.184130859375045],[101.24785156250007,21.197314453125045],[101.22441406250002,21.223730468750034],[101.21181640625,21.278222656250023],[101.2199218750001,21.34243164062505],[101.17539062500006,21.407519531250074],[101.19667968750005,21.522070312500063],[101.1388671875001,21.567480468749977],[101.07978515625004,21.75585937499997],[100.60458984375012,21.471777343750006],[100.14765625000004,21.480517578125017],[99.94072265625007,21.75874023437504],[99.9176757812501,22.02802734375001],[99.19296875000006,22.12597656249997],[99.50712890625002,22.959130859374994],[99.41806640625006,23.069238281250023],[98.86376953125003,23.191259765625034],[98.8322265625001,23.624365234374977],[98.67675781250003,23.905078125000045],[98.83505859375006,24.121191406250034],[98.2125,24.110644531250017],[97.56455078125012,23.911035156250023],[97.7082031250001,24.228759765625],[97.53144531250004,24.49169921875003],[97.58330078125002,24.77480468750005],[97.73789062500006,24.869873046875057],[97.8195312500001,25.251855468749994],[98.01074218749997,25.292529296875017],[98.14287109375007,25.571093750000017],[98.33378906250007,25.586767578125006],[98.65625,25.86357421874999],[98.56406250000006,26.072412109374994],[98.68554687499997,26.189355468750023],[98.7384765625001,26.785742187500006],[98.65117187500007,27.572460937499983],[98.4525390625,27.6572265625],[98.29882812499997,27.550097656250045],[98.06162109375012,28.185888671874977],[97.59921875000006,28.51704101562504],[97.53789062500002,28.510205078124983],[97.43144531250002,28.353906250000023],[97.35644531249997,28.254492187500006],[97.32158929493812,28.217097107438057],[97.3027336276825,28.08710519614969],[97.34382779482424,27.982305259167095],[97.04929369561631,27.76000444316393],[96.96494598325154,27.699301564540924],[96.19423412199573,28.04146177926422],[95.73730002295082,28.117613231051525],[95.11298892962586,27.748338353239472],[94.07167814294401,27.588707868507477],[93.61247595136224,27.323800298697016],[93.30681393470121,26.786120363519142],[92.74319481218781,26.833531317384058],[92.04974640832253,26.874866505386724],[92.07342257335648,26.915311275859864],[92.06813426293174,26.9752569185349],[92.02985139563152,27.03987087331446],[91.99856592104459,27.079255842602592],[91.99177981607339,27.100605151743654],[92.0025114452454,27.147290053160265],[92.03101585307499,27.214271359861193],[92.08387457645458,27.29090135496722],[92.04520857607581,27.364442429033787],[91.99069061380867,27.450181624174498],[91.95099838734396,27.45828799115413],[91.85276579410389,27.438593286730903],[91.74366351462741,27.442853010105477],[91.59505352446729,27.557262710287986],[91.63193359375012,27.759960937499983],[91.64189453125002,27.923242187500023],[91.36259958579089,28.02438066407592],[91.27304687500012,28.078369140625],[91.22587890625007,28.071240234374983],[91.07773437500012,27.974462890624977],[91.02080078125002,27.970068359374977],[90.71572265625,28.071728515624983],[90.63007812500004,28.078564453124955],[90.47734375000007,28.07084960937499],[90.3527343750001,28.080224609375023],[90.33310546875012,28.093994140625],[90.36298828125004,28.21650390625001],[90.34824218750006,28.24394531249999],[90.22080078125006,28.27773437500005],[90.10449218749997,28.302050781250017],[89.98105468750006,28.311181640625023],[89.8978515625,28.29414062500001],[89.81689453125003,28.25629882812501],[89.74980468750002,28.18818359375001],[89.65273437500005,28.158300781250034],[89.53691406250007,28.10742187499997],[89.4806640625001,28.059960937499994],[88.89140625000002,27.316064453124966],[88.83251953125003,27.36284179687499],[88.7648437500001,27.429882812499983],[88.74902343749997,27.521875],[88.82988281250002,27.76738281249999],[88.84882812500004,27.86865234375],[88.80371093750003,28.006933593750034],[88.57792968750002,28.093359375000034],[88.42597656250004,28.01166992187501],[88.27519531250007,27.968847656250006],[88.14111328125003,27.94892578125001],[88.10898437500006,27.933007812499966],[88.10976562500005,27.870605468750057],[87.8607421875,27.886083984375006],[87.62255859374997,27.81518554687503],[87.29072265625004,27.821923828124994],[87.14140625000002,27.838330078124955],[87.02011718750006,27.928662109374983],[86.9337890625001,27.96845703125001],[86.84238281250012,27.99916992187505],[86.750390625,28.022070312500006],[86.71962890625005,28.070654296875034],[86.69052734375006,28.09492187500001],[86.61445312500004,28.10302734374997],[86.55449218750007,28.08520507812497],[86.51689453125007,27.963525390624966],[86.40869140625003,27.928662109374983],[86.32861328124997,27.95952148437496],[86.2179687500001,28.022070312500006],[86.13701171875002,28.114355468750063],[86.07871093750006,28.08359375],[86.0641601562501,27.934716796874966],[85.99453125000005,27.910400390625],[85.95410156249997,27.92822265624997],[85.92167968750002,27.989697265624983],[85.84023437500005,28.135351562499977],[85.75947265625004,28.220654296874955],[85.67832031250012,28.277441406249977],[85.41064453125003,28.27602539062505],[85.21210937500004,28.292626953124966],[85.1224609375,28.315966796875017],[85.08857421875004,28.37226562500001],[85.121484375,28.484277343750023],[85.16015624999997,28.571875],[85.15908203125,28.592236328124983],[85.1263671875,28.602636718750063],[85.06914062500007,28.60966796874999],[84.85507812500006,28.553613281250023],[84.796875,28.560205078125023],[84.2287109375001,28.911767578124966],[84.17558593750002,29.036376953125057],[84.12783203125005,29.15629882812496],[84.10136718750002,29.21997070312497],[84.02197265624997,29.25385742187504],[83.93593750000005,29.27949218750001],[83.58349609375003,29.18359375000003],[83.15546875000004,29.612646484375034],[82.22070312500003,30.063867187500023],[82.04335937500005,30.326757812500034],[81.8548828125,30.362402343750006],[81.64189453125007,30.3875],[81.4171875000001,30.33759765625001],[81.25507812500004,30.09331054687499],[81.17714843750005,30.039892578125034],[80.98544921875006,30.23710937499999],[80.87353515625003,30.290576171875045],[80.19121093750002,30.56840820312496],[80.20712890625006,30.683740234375023],[79.92451171875004,30.888769531250034],[79.66425781250004,30.96523437499999],[79.38847656250007,31.064208984375],[79.10712890625004,31.402636718750017],[78.74355468750005,31.323779296875017],[78.7550781250001,31.55029296875],[78.69345703125006,31.740380859374994],[78.72558593750003,31.983789062500023],[78.49589843750002,32.21577148437504],[78.4552734375001,32.30034179687502],[78.41748046874997,32.466699218749994],[78.38964843749997,32.51987304687498],[78.73671875,32.55839843750002],[78.75351562500012,32.49926757812506],[78.91894531249997,32.35820312500002],[79.16992187500003,32.497216796874994],[79.14550781250003,33.00146484375006],[79.10283203125007,33.05253906249996],[79.13515625000005,33.17192382812496],[79.1125,33.22626953125001],[78.94843750000004,33.346533203125006],[78.86503906250002,33.43110351562501],[78.78378906250006,33.80878906250004],[78.72666015625006,34.013378906249955],[78.97060546875,34.22822265625004],[78.93642578125,34.35195312500002],[78.86484375000006,34.39033203125001],[78.32695312500007,34.60639648437498],[78.15849609375002,34.94648437499998],[78.07578125000006,35.13491210937502],[78.0426757812501,35.47978515625002],[77.79941406250006,35.49589843750002],[77.44648437500004,35.47558593750006],[77.29482421875005,35.508154296875034],[77.09003906250004,35.55205078124999],[76.87890625000003,35.61328125000003],[76.76689453125002,35.661718750000034],[76.72753906250003,35.67866210937504],[76.63183593749997,35.729394531249966],[76.56347656249997,35.77299804687499],[76.55126953124997,35.887060546875034],[76.50205078125006,35.87822265625002],[76.38574218750003,35.837158203125],[76.25166015625004,35.8109375],[76.17783203125012,35.810546875],[76.14785156250005,35.82900390625002],[76.07089843750006,35.983007812500034],[75.91230468750004,36.048974609374994],[75.97441406250007,36.38242187500006],[75.9518554687501,36.458105468750034],[75.9330078125,36.52158203124998],[75.840234375,36.64970703124999],[75.7721679687501,36.694921875000034],[75.6671875000001,36.741992187500045],[75.57373046874997,36.75932617187502],[75.46025390625002,36.725048828124955],[75.42421875000005,36.73823242187498],[75.37685546875,36.88369140625005],[75.34667968749997,36.913476562499966],[75.05390625000004,36.98715820312498],[74.94912109375,36.96835937500006],[74.88925781250006,36.95244140625002],[74.69218750000007,37.035742187500006],[74.60058593749997,37.03666992187502],[74.54140625,37.02216796875001],[74.52646484375006,37.03066406250005],[74.49794921875,37.057226562500034],[74.37617187500004,37.13735351562502],[74.37216796875006,37.15771484375],[74.558984375,37.23662109374999],[74.66894531250003,37.266699218750006],[74.72666015625006,37.29072265625001],[74.7389648437501,37.28564453125003],[74.76738281250002,37.249169921874966],[74.840234375,37.22504882812504],[74.89130859375004,37.231640624999955],[75.11875,37.38569335937498],[74.8942382812501,37.60141601562498],[74.81230468750002,38.46030273437498],[74.27744140625,38.659765625000034],[74.02558593750004,38.53984375000002],[73.80166015625,38.60688476562501],[73.69609375000007,38.85429687499996],[73.8052734375,38.968652343749994],[73.60732421875,39.229199218749955],[73.63632812500006,39.396679687499955],[73.63164062500007,39.44887695312502],[73.82294921875004,39.48896484375004],[73.90712890625,39.578515624999966],[73.9146484375,39.60649414062499],[73.88251953125004,39.71455078124998],[73.83974609375005,39.76284179687505],[73.8353515625,39.800146484375006],[73.85625,39.828662109375045],[73.88457031250002,39.87792968750006],[73.93876953125002,39.97880859374999],[73.99160156250005,40.04311523437502],[74.83046875,40.32851562499999],[74.80126953124997,40.428515625000045],[74.83515625000004,40.482617187499955],[74.865625,40.493505859375034],[75.0044921875,40.44951171874996],[75.11132812499997,40.4541015625],[75.24101562500002,40.48027343750002],[75.52080078125002,40.627539062500006],[75.55556640625,40.625195312499955],[75.6771484375,40.305810546874994],[75.87197265625,40.30322265625],[76.25830078124997,40.43076171875006],[76.3185546875001,40.352246093749955],[76.39638671875005,40.389794921874966],[76.4801757812501,40.44951171874996],[76.57792968750002,40.577880859375],[76.62216796875006,40.66235351562497],[76.6398437500001,40.74223632812499],[76.66113281249997,40.77963867187498],[76.70839843750005,40.818115234375],[76.82402343750002,40.982324218749966],[76.90771484374997,41.02416992187497],[76.98662109375002,41.039160156250006],[77.58173828125004,40.99277343750006],[77.71933593750012,41.024316406249994],[77.81523437500002,41.05561523437498],[77.9564453125,41.05068359375005],[78.1234375,41.07563476562498],[78.34628906250012,41.28144531249998],[78.36240234375012,41.37163085937496],[78.44287109374997,41.41752929687499],[78.742578125,41.56005859375],[79.29355468750006,41.78281249999998],[79.76611328124997,41.89887695312501],[79.84042968750012,41.99575195312502],[79.90966796875003,42.014990234375034],[80.21621093750005,42.03242187500004],[80.23515625000007,42.04345703124997],[80.24619140625012,42.05981445312503],[80.209375,42.190039062500006],[80.20224609375012,42.73447265624998],[80.53896484375005,42.873486328124955],[80.39023437500006,43.043115234374966],[80.78574218750006,43.16157226562504],[80.35527343750002,44.09726562500006],[80.48154296875006,44.71464843749999],[79.871875,44.88378906249997],[80.05917968750012,45.006445312500006],[81.69199218750012,45.34936523437497],[81.94492187500006,45.16083984375001],[82.26660156249997,45.21909179687498],[82.52148437500003,45.12548828125],[82.61162109375007,45.424267578124955],[82.31523437500002,45.59492187499998],[83.02949218750004,47.18593750000002],[84.016015625,46.97050781250002],[84.66660156250006,46.97236328125004],[84.78613281249997,46.83071289062505],[85.484765625,47.06352539062496],[85.65664062500005,47.254638671875],[85.52597656250006,47.915625],[85.7494140625,48.38505859374999],[86.54941406250012,48.52861328125002],[86.8083007812501,49.04970703125002],[87.32285156250012,49.085791015625006],[87.41669921875004,49.07661132812501],[87.5158203125001,49.122412109375006],[87.7625,49.16582031249996],[87.81425781250002,49.162304687499955],[87.87216796875012,49.000146484374966],[87.74316406250003,48.88164062499999],[87.83183593750007,48.79165039062505],[88.02792968750006,48.735595703125],[88.06005859375003,48.707177734374966],[87.9796875000001,48.55512695312498],[88.30996093750005,48.47207031250002],[88.41396484375,48.403417968750006],[88.51708984374997,48.384472656249955],[88.56679687500005,48.31743164062496],[88.57597656250007,48.220166015624955],[88.68183593750004,48.170556640624994],[88.83828125000005,48.101708984374994],[88.91777343750007,48.089013671874966],[89.04765625000007,48.002539062500034],[89.47919921875004,48.02905273437503],[89.5609375,48.00395507812496],[89.778125,47.82700195312498],[89.83134765625002,47.82329101562502],[89.91044921875007,47.844335937500034],[89.95869140625004,47.88632812499998],[90.02792968750012,47.877685546875],[90.1032226562501,47.74541015624996],[90.19101562500012,47.70209960937501],[90.31328125000007,47.67617187499999],[90.33066406250006,47.655175781249966],[90.42519531250005,47.50410156250001],[90.49619140625012,47.28515625],[90.64335937500007,47.10029296874998],[90.71552734375004,47.00385742187498],[90.7990234375001,46.98515624999999],[90.86992187500002,46.95449218750005],[90.91054687500005,46.88325195312501],[90.9857421875,46.7490234375],[90.9115234375,46.270654296874994],[90.94755859375002,46.17729492187499],[90.99677734375004,46.10498046875],[91.00175781250007,46.03579101562502],[90.6618164062501,45.525244140625006],[90.87724609375002,45.19609375000002],[91.05,45.217431640624994],[91.584375,45.07651367187498],[92.42382812499997,45.008935546874994],[92.57890625000002,45.01098632812506],[92.78789062500007,45.035742187500034],[93.51621093750012,44.944482421874994],[94.71201171875012,44.35083007812503],[95.35029296875004,44.27807617187503],[95.32558593750005,44.03935546874999],[95.52558593750004,43.953955078125006],[95.85957031250004,43.27597656249998],[96.38544921875004,42.72036132812502],[97.20566406250012,42.78979492187506],[99.46787109375012,42.568212890625034],[99.98378906250005,42.67734375000006],[100.08632812500005,42.67075195312506],[100.51904296875003,42.61679687499998],[101.09199218750004,42.55131835937496],[101.49531250000004,42.53876953124998],[101.57910156249997,42.52353515624998],[101.65996093750002,42.50004882812499],[101.97294921875002,42.21586914062502],[102.15664062500005,42.158105468749966],[102.57519531249997,42.09208984375002],[103.07285156250006,42.00595703125006],[103.7111328125001,41.75131835937506],[103.99726562500004,41.796972656250034],[104.30517578124997,41.84614257812501],[104.49824218750004,41.87700195312499],[104.49824218750004,41.65869140625],[104.86035156250003,41.64375],[104.98203125000012,41.59550781250002],[105.05058593750002,41.61591796875001],[105.1154296875001,41.66328124999998],[105.19707031250002,41.738037109375],[105.31435546875005,41.77089843750005],[105.86757812500005,41.993994140625034],[106.77001953125003,42.28872070312502],[108.17119140625002,42.44731445312502],[108.68730468750002,42.416113281250034],[109.33984374999997,42.43837890625005],[109.44316406250002,42.455957031249994],[110.40039062499997,42.77368164062497],[111.00722656250005,43.34140624999998],[111.878125,43.68017578125],[111.93173828125012,43.81494140625],[111.40224609375005,44.367285156250006],[111.89804687500006,45.064062500000034],[112.03261718750005,45.08164062500006],[112.11289062500006,45.06293945312498],[112.41132812500004,45.05820312499998],[112.49931640625002,45.01093750000004],[112.59677734375006,44.917675781249955],[112.7067382812501,44.883447265624994],[113.04941406250006,44.81035156250002],[113.3009765625001,44.79165039062502],[113.50791015625006,44.76235351562502],[113.58701171875006,44.745703125],[113.65263671875002,44.76347656249999],[113.87705078125012,44.89619140625001],[114.03027343749997,44.942578124999955],[114.08027343750004,44.97114257812501],[114.41914062500004,45.20258789062501],[114.56015625000012,45.38999023437498],[114.73876953124997,45.41962890624998],[114.91923828125007,45.378271484375006],[115.16259765624997,45.390234375000034],[115.6810546875,45.45825195312503],[116.19765625,45.739355468750006],[116.240625,45.795996093750006],[116.22910156250012,45.84575195312502],[116.21298828125012,45.88691406249998],[116.56259765625012,46.28979492187497],[116.85908203125004,46.387939453125],[117.3333984375,46.36201171875004],[117.35693359375003,46.391308593749955],[117.35634765625,46.436669921874966],[117.39218750000012,46.53759765625003],[117.40556640625007,46.57089843750006],[117.43808593750012,46.58623046874999],[117.546875,46.58828125000005],[117.74121093749997,46.51816406250006],[118.07128906249997,46.666601562500006],[118.15683593750006,46.678564453125034],[118.30869140625012,46.71704101562497],[118.40439453125006,46.70317382812499],[118.58046875,46.69189453125],[118.64873046875002,46.70166015625006],[118.72294921875007,46.69189453125],[118.8439453125001,46.76020507812498],[118.95712890625006,46.73486328124997],[119.16210937499997,46.638671875],[119.33183593750002,46.61381835937499],[119.47402343750005,46.626660156249955],[119.62021484375006,46.60395507812504],[119.70664062500006,46.60600585937502],[119.74746093750005,46.62719726562497],[119.86718750000003,46.67216796874999],[119.89785156250005,46.857812499999966],[119.71113281250004,47.15],[119.08193359375,47.654150390625034],[119.01757812500003,47.68535156249999],[118.88027343750005,47.72509765625],[118.75996093750004,47.75761718749996],[118.69052734375012,47.822265625],[118.56777343750005,47.94326171875005],[118.49843750000005,47.98398437499998],[117.76835937500002,47.98789062499998],[117.3507812500001,47.65219726562498],[117.28593750000002,47.666357421875034],[117.06972656250005,47.80639648437506],[116.95166015624997,47.836572265624966],[116.90117187500007,47.85307617187496],[116.76054687500002,47.869775390624994],[116.65195312500012,47.86450195312497],[116.51347656250007,47.839550781249955],[116.37822265625002,47.84404296874999],[116.31718750000002,47.85986328125],[116.2311523437501,47.85820312500002],[116.07480468750012,47.78955078125],[115.99384765625004,47.71132812500005],[115.89824218750002,47.68691406250005],[115.6164062500001,47.874804687500045],[115.52509765625004,48.13085937499997],[115.63945312500007,48.18623046874998],[115.785546875,48.24824218750001],[115.7965820312501,48.346337890624994],[115.7916992187501,48.455712890624994],[115.8205078125001,48.57724609375006],[116.6833007812501,49.82377929687499],[117.8734375,49.51347656250002],[118.4515625,49.84448242187503],[119.25986328125012,50.06640625000003],[119.34628906250012,50.278955078124994],[119.16367187500006,50.40600585937503],[120.06689453125003,51.60068359375006],[120.74980468750007,52.096533203125006],[120.65615234375,52.56665039062503],[120.0675781250001,52.632910156250034],[120.09453125000007,52.787207031250034],[120.98544921875012,53.28457031250002],[123.6078125,53.546533203124994],[124.81230468750002,53.133837890625045],[125.075,53.20366210937496],[125.64902343750012,53.042285156250045],[126.34169921875,52.36201171875001],[126.92480468749997,51.10014648437496],[127.30703125000005,50.70795898437501],[127.33720703125007,50.35014648437502],[127.590234375,50.20898437500003],[127.55078124999997,49.801806640625045],[127.99960937500006,49.56860351562506],[128.70400390625,49.60014648437499],[129.0651367187501,49.374658203124966],[129.49814453125012,49.38881835937502],[130.1959960937501,48.89165039062499],[130.553125,48.861181640625006],[130.5521484375,48.602490234374955],[130.80429687500012,48.34150390624998],[130.7326171875001,48.01923828124998],[130.96191406249997,47.70932617187498],[132.47626953125004,47.714990234374994],[132.7072265625001,47.94726562500006],[133.14404296875003,48.10566406249998],[133.46835937500006,48.09716796875003],[134.29335937500005,48.37343750000002],[134.66523437500004,48.25390625],[134.56601562500006,48.02250976562502],[134.75234375,47.71542968749998],[134.1676757812501,47.30219726562501],[133.86132812500003,46.24775390625004],[133.43642578125,45.60468750000004],[133.18603515625003,45.49482421875004],[133.1134765625001,45.130712890625006],[132.93603515624997,45.029931640624994],[131.85185546875002,45.32685546875001],[131.44687500000012,44.984033203124966],[130.9816406250001,44.844335937500034],[131.2552734375,44.07158203124999],[131.25732421875003,43.378076171874994],[131.06855468750004,42.90224609375005],[130.42480468749997,42.72705078124997],[130.52695312500012,42.535400390625]]],[[[113.9977539062501,22.210498046875045],[113.83886718749997,22.24169921875003],[114.04394531250003,22.33339843750005],[113.9977539062501,22.210498046875045]]],[[[114.01542968750007,22.51191406250001],[114.26601562500005,22.540966796874983],[114.26796875,22.295556640624966],[113.93730468750002,22.364990234375],[114.01542968750007,22.51191406250001]]],[],[[[118.4074218750001,24.522119140624994],[118.43271484375006,24.414355468750074],[118.29511718750004,24.436328125000017],[118.4074218750001,24.522119140624994]]],[[[121.00878906249997,22.62036132812497],[120.83984375000003,21.925],[120.2328125,22.71791992187505],[120.0724609375001,23.149755859375006],[120.13212890625007,23.652929687500034],[121.040625,25.032812500000034],[121.59365234375,25.275341796874983],[121.92900390625002,24.973730468749977],[121.39746093750003,23.172509765625023],[121.00878906249997,22.62036132812497]]]]},"properties":{"name":"China","childNum":15}},{"geometry":{"type":"Polygon","coordinates":[[[-5.262304687499977,10.319677734374991],[-4.72177734374992,9.756542968750026],[-4.625830078125006,9.713574218749969],[-4.526611328124943,9.723486328125034],[-4.406201171874926,9.647998046875031],[-4.332226562499955,9.645703125],[-4.18115234375,9.78173828125],[-3.790625,9.917187499999983],[-3.581152343749977,9.924316406250014],[-3.289697265625023,9.882226562500051],[-3.223535156249937,9.895458984374997],[-3.160693359374932,9.849169921874974],[-3.095800781249949,9.752099609375009],[-3.042626953124937,9.72089843750004],[-2.988281249999972,9.687353515624963],[-2.900878906249943,9.534619140625026],[-2.875146484374937,9.500927734374997],[-2.816748046874949,9.425830078124974],[-2.766601562499943,9.424707031250009],[-2.7171875,9.457128906250048],[-2.695849609374989,9.481347656250009],[-2.686132812499977,9.43173828125002],[-2.705761718749983,9.351367187499989],[-2.74692382812492,9.04511718750004],[-2.689892578124955,9.02509765625004],[-2.649218750000017,8.956591796875031],[-2.600390625000017,8.800439453125023],[-2.505859375000028,8.208740234375],[-2.538281249999955,8.171630859374986],[-2.61171875,8.147558593749963],[-2.619970703125006,8.12109375],[-2.600976562499937,8.082226562499983],[-2.613378906249977,8.046679687500017],[-2.668847656249994,8.022216796875014],[-2.789746093749955,7.931933593750003],[-2.959082031249977,7.454541015624997],[-3.227148437499977,6.749121093749991],[-2.998291015624972,5.711328125000051],[-2.793652343749955,5.600097656250028],[-2.754980468749977,5.432519531249994],[-2.815673828125,5.153027343749997],[-3.168701171874972,5.203027343749966],[-3.199951171874943,5.3544921875],[-3.347558593749994,5.13066406249996],[-4.120166015625017,5.309716796875023],[-4.60888671875,5.235888671875003],[-4.037207031249977,5.23012695312498],[-4.899707031249932,5.138330078125023],[-5.282373046874994,5.210253906250017],[-5.36752929687492,5.15078125],[-5.061816406249989,5.13066406249996],[-5.913769531249926,5.0109375],[-7.544970703124989,4.351318359375],[-7.574658203124983,4.572314453124989],[-7.585058593749977,4.916748046875],[-7.39990234375,5.550585937499989],[-7.454394531249989,5.841308593749972],[-7.636132812499994,5.90771484375],[-7.730371093749994,5.919042968749991],[-7.800927734374994,6.038916015624991],[-7.833251953125,6.076367187499983],[-7.855517578125017,6.150146484375],[-7.888623046875011,6.234863281250028],[-7.981591796874937,6.2861328125],[-8.287109375,6.31904296875004],[-8.587890625,6.490527343749989],[-8.324511718749989,6.920019531249991],[-8.408740234374989,7.411816406249997],[-8.429980468749989,7.601855468749989],[-8.351757812499926,7.590576171875],[-8.231884765624955,7.556738281250034],[-8.205957031249994,7.590234375000023],[-8.115429687499926,7.760742187500028],[-8.126855468749937,7.867724609374974],[-8.00986328124992,8.078515625000023],[-8.048583984375,8.169726562500045],[-8.140625,8.181445312500031],[-8.217138671874949,8.219677734375011],[-8.256103515625,8.253710937500017],[-8.244140624999943,8.407910156249983],[-8.236962890624994,8.455664062500034],[-7.953125,8.477734375],[-7.823583984374977,8.467675781249994],[-7.738964843749983,8.375244140624986],[-7.696093749999932,8.375585937499977],[-7.71958007812492,8.643017578125011],[-7.950976562499989,8.786816406249997],[-7.938183593749983,8.97978515624996],[-7.902099609375,9.017089843750014],[-7.777978515624937,9.080859375000031],[-7.799804687499943,9.115039062499989],[-7.839404296875017,9.151611328124972],[-7.918066406249949,9.188525390625031],[-7.896191406249955,9.415869140624991],[-8.136962890624972,9.49570312499999],[-8.155175781249937,9.973193359375017],[-7.990625,10.1625],[-7.661132812500028,10.427441406250011],[-7.385058593749989,10.340136718749989],[-7.01708984375,10.143261718750026],[-6.950341796874994,10.342333984374989],[-6.693261718750023,10.34946289062502],[-6.669335937499937,10.39218750000002],[-6.69199218749992,10.512011718750017],[-6.686132812499977,10.578027343750051],[-6.676367187499949,10.633789062500043],[-6.654150390624949,10.65644531250004],[-6.482617187499983,10.561230468749997],[-6.250244140625,10.717919921875037],[-6.190673828124943,10.400292968749994],[-6.192626953124972,10.369433593750003],[-6.241308593749949,10.279199218750009],[-6.238378906249977,10.26162109374998],[-6.117187499999972,10.201904296874986],[-6.034570312499937,10.194824218750057],[-5.907568359375006,10.307226562500034],[-5.896191406249983,10.354736328125028],[-5.843847656249977,10.389550781250023],[-5.694287109374983,10.433203125000034],[-5.556591796874983,10.439941406249986],[-5.382275390625011,10.314013671875003],[-5.262304687499977,10.319677734374991]]]},"properties":{"name":"Côte d\'Ivoire","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[15.480078125,7.523779296874991],[15.206738281250011,7.206152343749991],[14.7392578125,6.27978515625],[14.43115234375,6.038720703124994],[14.616894531250011,5.865136718749994],[14.56298828125,5.279931640624994],[14.73125,4.602392578124991],[15.063574218750006,4.284863281249997],[15.128710937500017,3.826904296875],[16.0634765625,2.90859375],[16.183398437500017,2.270068359374989],[16.059375,1.676220703124997],[15.741601562500023,1.914990234374997],[14.902441406250006,2.012304687499991],[14.578906250000017,2.199121093749994],[13.293554687500006,2.161572265624997],[13.2203125,2.256445312499991],[11.558984375000023,2.302197265624997],[11.348437500000017,2.299707031249994],[11.328710937500006,2.167431640624997],[11.096582031250023,2.16748046875],[10.790917968750023,2.16757812499999],[9.979882812500023,2.167773437499989],[9.8701171875,2.21328125],[9.8369140625,2.242382812499997],[9.830371093750017,2.275488281249991],[9.826171875,2.297802734374997],[9.80078125,2.304443359375],[9.82177734375,2.539257812499997],[9.948437500000011,3.079052734374997],[9.672070312500011,3.53759765625],[9.765722656250006,3.623828124999989],[9.642382812500017,3.611767578124997],[9.55615234375,3.798046875],[9.739648437500023,3.852929687499994],[9.639941406250017,3.96533203125],[9.688867187500023,4.056396484375],[9.483691406250017,4.066113281249997],[9.42529296875,3.922314453124997],[9.000097656250006,4.091601562499989],[8.918261718750017,4.553759765624989],[8.660351562500011,4.670996093749991],[8.65625,4.516357421875],[8.53955078125,4.571875],[8.715625,5.046875],[8.997167968750006,5.917724609375],[9.490234375,6.418652343749997],[9.779882812500006,6.76015625],[9.820703125000023,6.783935546875],[9.874218750000011,6.803271484374989],[10.038867187500017,6.92138671875],[10.1435546875,6.996435546874991],[10.167773437500017,6.959179687499997],[10.185546875,6.912792968749997],[10.205468750000023,6.8916015625],[10.293066406250006,6.876757812499989],[10.413183593750006,6.877734374999989],[10.60625,7.063085937499991],[10.954199218750006,6.7765625],[11.032519531250017,6.697900390624994],[11.1064453125,6.457714843749997],[11.1533203125,6.437939453124997],[11.2373046875,6.450537109374991],[11.401757812500023,6.533935546875],[11.551660156250023,6.697265625],[11.580078125,6.888867187499997],[11.657519531250017,6.9515625],[11.861425781250006,7.11640625],[11.767382812500017,7.272265624999989],[11.809179687500006,7.345068359374991],[12.016015625000023,7.589746093749994],[12.2333984375,8.282324218749991],[12.403515625000011,8.595556640624991],[12.582714843750011,8.624121093749991],[12.651562500000011,8.667773437499989],[12.7822265625,8.81787109375],[12.806542968750023,8.886621093749994],[12.875683593750011,9.303515624999989],[12.929492187500017,9.42626953125],[13.19873046875,9.563769531249989],[13.269921875000023,10.036181640624989],[13.41455078125,10.171435546874989],[13.535351562500011,10.60507812499999],[13.699902343750011,10.873144531249991],[13.89208984375,11.140087890624997],[13.9814453125,11.211865234374997],[14.056738281250006,11.245019531249994],[14.143261718750011,11.24853515625],[14.202343750000011,11.268164062499991],[14.559765625000011,11.492285156249991],[14.619726562500006,12.150976562499991],[14.518945312500023,12.298242187499994],[14.272851562500023,12.356494140624989],[14.184863281250017,12.447216796874997],[14.06396484375,13.07851562499999],[14.244824218750011,13.07734375],[14.461718750000017,13.021777343749989],[14.847070312500023,12.502099609374994],[15.08125,11.845507812499989],[15.029882812500006,11.11367187499999],[15.132226562500023,10.648486328124989],[15.276074218750011,10.357373046874997],[15.654882812500006,10.0078125],[14.243261718750006,9.979736328125],[13.977246093750011,9.691552734374994],[14.332324218750017,9.20351562499999],[15.1162109375,8.557324218749997],[15.5498046875,7.787890624999989],[15.480078125,7.523779296874991]]]},"properties":{"name":"Cameroon","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[27.4033203125,5.109179687499989],[27.7880859375,4.644677734374994],[28.19208984375001,4.350244140624994],[28.427539062500017,4.324169921874997],[28.72705078125,4.504980468749991],[29.224902343750017,4.391894531249989],[29.469628906250023,4.61181640625],[29.676855468750006,4.5869140625],[30.194921875,3.98193359375],[30.50830078125,3.835693359375],[30.586718750000017,3.62421875],[30.757226562500023,3.62421875],[30.83857421875001,3.49072265625],[30.90644531250001,3.408935546875],[30.754003906250006,3.041796874999989],[30.8466796875,2.847021484374991],[30.728613281250006,2.455371093749989],[31.176367187500006,2.270068359374989],[31.252734375000017,2.044580078124994],[29.94287109375,0.819238281249994],[29.934472656250023,0.4990234375],[29.717675781250023,0.098339843749997],[29.576953125000017,-1.387890625000011],[29.196582031250017,-1.719921875000011],[29.13154296875001,-2.195117187500003],[28.876367187500023,-2.400292968750009],[28.893945312500023,-2.635058593750003],[29.01435546875001,-2.72021484375],[29.224414062500017,-3.053515625],[29.211816406250023,-3.833789062500003],[29.403222656250023,-4.449316406250006],[29.404199218750023,-4.496679687500006],[29.32568359375,-4.835644531250011],[29.32343750000001,-4.898828125],[29.3427734375,-4.983105468750011],[29.542382812500023,-5.499804687500003],[29.594140625000023,-5.65078125],[29.60703125,-5.72265625],[29.59638671875001,-5.775976562500006],[29.490820312500006,-5.965429687500006],[29.480078125,-6.025],[29.50625,-6.172070312500011],[29.540820312500017,-6.313867187500009],[29.590625,-6.394433593750009],[29.70966796875001,-6.616894531250011],[29.798144531250017,-6.69189453125],[29.961816406250023,-6.803125],[30.10625,-6.9150390625],[30.212695312500017,-7.037890625],[30.31318359375001,-7.203710937500006],[30.40673828125,-7.460644531250011],[30.75117187500001,-8.193652343750003],[28.89814453125001,-8.485449218750006],[28.869531250000023,-8.785839843750011],[28.400683593750017,-9.224804687500011],[28.60419921875001,-9.678808593750006],[28.6455078125,-10.550195312500009],[28.383398437500006,-11.566699218750003],[28.482519531250006,-11.812109375],[29.064355468750023,-12.348828125000011],[29.48554687500001,-12.41845703125],[29.508203125000023,-12.228222656250011],[29.79511718750001,-12.155468750000011],[29.775195312500017,-13.438085937500006],[29.55419921875,-13.248925781250009],[29.20185546875001,-13.398339843750009],[29.014257812500006,-13.368847656250011],[28.730078125,-12.925488281250011],[28.550878906250006,-12.836132812500011],[28.412890625000017,-12.51806640625],[27.573828125,-12.22705078125],[27.1591796875,-11.579199218750006],[26.824023437500017,-11.965234375],[26.025976562500006,-11.89013671875],[25.349414062500017,-11.623046875],[25.28876953125001,-11.21240234375],[24.3779296875,-11.417089843750006],[24.36572265625,-11.1298828125],[23.96650390625001,-10.871777343750011],[23.901171875000017,-10.983203125],[23.833886718750023,-11.013671875],[23.463964843750006,-10.969335937500006],[23.076269531250006,-11.087890625],[22.814746093750017,-11.080273437500011],[22.56103515625,-11.055859375000011],[22.486132812500017,-11.08671875],[22.392968750000023,-11.159472656250003],[22.31494140625,-11.198632812500009],[22.27880859375,-11.194140625],[22.226171875,-11.121972656250009],[22.203515625000023,-10.829492187500009],[22.307031250000023,-10.691308593750009],[22.19775390625,-10.040625],[21.81318359375001,-9.46875],[21.905371093750006,-8.693359375],[21.806054687500023,-7.32861328125],[21.751074218750006,-7.30546875],[21.190332031250023,-7.284960937500003],[20.910937500000017,-7.281445312500011],[20.607812500000023,-7.277734375],[20.558398437500017,-7.244433593750003],[20.53583984375001,-7.182812500000011],[20.536914062500017,-7.121777343750011],[20.598730468750006,-6.93515625],[20.59003906250001,-6.919921875],[20.482226562500017,-6.915820312500003],[20.190039062500006,-6.9462890625],[19.997460937500023,-6.976464843750009],[19.87519531250001,-6.986328125],[19.527636718750017,-7.144433593750009],[19.483789062500023,-7.279492187500011],[19.479882812500023,-7.47216796875],[19.371679687500006,-7.655078125],[19.369921875000017,-7.70654296875],[19.3408203125,-7.966601562500003],[19.142675781250006,-8.00146484375],[18.944433593750006,-8.00146484375],[18.56269531250001,-7.9359375],[18.0087890625,-8.107617187500011],[17.643359375000017,-8.090722656250009],[17.57958984375,-8.099023437500009],[16.984765625000023,-7.257421875],[16.91943359375,-6.933984375],[16.813085937500006,-6.772558593750006],[16.742968750000017,-6.618457031250003],[16.697265625,-6.164257812500011],[16.537109375,-5.9658203125],[16.431445312500017,-5.900195312500003],[16.315234375000017,-5.865625],[13.978515625,-5.857226562500003],[13.346484375000017,-5.863378906250006],[13.184375,-5.85625],[12.452929687500017,-6.00048828125],[12.213671875000017,-5.758691406250009],[12.484570312500011,-5.71875],[12.451464843750017,-5.071484375000011],[12.502734375000017,-5.036914062500003],[12.573535156250017,-4.99658203125],[12.59619140625,-4.978417968750009],[12.8296875,-4.736621093750003],[12.947460937500011,-4.6953125],[13.057324218750011,-4.651074218750011],[13.07275390625,-4.634765625],[13.08740234375,-4.601953125],[13.136621093750023,-4.604296875],[13.414941406250023,-4.83740234375],[13.659570312500023,-4.721484375],[13.717089843750017,-4.454492187500009],[13.94091796875,-4.484667968750003],[14.358300781250023,-4.299414062500006],[14.449804687500006,-4.449511718750003],[14.365429687500011,-4.585546875],[14.410742187500006,-4.83125],[14.707910156250023,-4.881738281250009],[15.990039062500017,-3.766210937500006],[16.217382812500006,-3.0302734375],[16.21533203125,-2.177832031250006],[16.54072265625001,-1.840136718750003],[16.8798828125,-1.225878906250003],[17.752832031250023,-0.549023437500011],[18.072167968750023,2.01328125],[18.49091796875001,2.924414062499991],[18.6103515625,3.478417968749994],[18.594140625000023,4.346240234374989],[19.06855468750001,4.891406249999989],[19.5009765625,5.127490234374989],[19.806542968750023,5.089306640624997],[20.226367187500017,4.829638671874989],[20.55810546875,4.462695312499989],[22.422167968750017,4.134960937499997],[22.864550781250017,4.723876953125],[23.41718750000001,4.663134765624989],[24.31982421875,4.994140625],[25.065234375000017,4.967431640624994],[25.52509765625001,5.31210937499999],[26.822070312500017,5.062402343749994],[27.071875,5.199755859374989],[27.4033203125,5.109179687499989]]]},"properties":{"name":"Dem. Rep. Congo","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[18.6103515625,3.478417968749994],[18.49091796875001,2.924414062499991],[18.072167968750023,2.01328125],[17.752832031250023,-0.549023437500011],[16.8798828125,-1.225878906250003],[16.54072265625001,-1.840136718750003],[16.21533203125,-2.177832031250006],[16.217382812500006,-3.0302734375],[15.990039062500017,-3.766210937500006],[14.707910156250023,-4.881738281250009],[14.410742187500006,-4.83125],[14.365429687500011,-4.585546875],[14.449804687500006,-4.449511718750003],[14.358300781250023,-4.299414062500006],[13.94091796875,-4.484667968750003],[13.717089843750017,-4.454492187500009],[13.659570312500023,-4.721484375],[13.414941406250023,-4.83740234375],[13.136621093750023,-4.604296875],[13.08740234375,-4.601953125],[13.07275390625,-4.634765625],[13.048046875000011,-4.619238281250006],[12.971386718750011,-4.5517578125],[12.881054687500011,-4.445117187500003],[12.84814453125,-4.428906250000011],[12.50146484375,-4.5875],[12.018359375000017,-5.004296875],[11.777539062500011,-4.565820312500009],[11.130175781250017,-3.916308593750003],[11.234472656250006,-3.690820312500009],[11.504296875000023,-3.5203125],[11.685742187500011,-3.68203125],[11.8798828125,-3.665917968750009],[11.934179687500006,-3.318554687500011],[11.715429687500006,-3.176953125000011],[11.760156250000023,-2.983105468750011],[11.537792968750011,-2.83671875],[11.60546875,-2.342578125],[12.064453125,-2.41259765625],[12.446386718750006,-2.329980468750009],[12.43212890625,-1.928906250000011],[12.590429687500006,-1.826855468750011],[12.793554687500006,-1.931835937500011],[12.991992187500017,-2.313378906250009],[13.464941406250006,-2.395410156250009],[13.733789062500023,-2.138476562500003],[13.886914062500011,-2.465429687500006],[13.993847656250011,-2.490625],[14.199804687500006,-2.354199218750011],[14.162890625000017,-2.217578125],[14.383984375000011,-1.890039062500009],[14.47412109375,-0.573437500000011],[13.860058593750011,-0.203320312500011],[13.949609375000023,0.353808593749989],[14.32421875,0.62421875],[14.429882812500011,0.901464843749991],[14.180859375000011,1.370214843749991],[13.851367187500017,1.41875],[13.21630859375,1.2484375],[13.172167968750017,1.78857421875],[13.293554687500006,2.161572265624997],[14.578906250000017,2.199121093749994],[14.902441406250006,2.012304687499991],[15.741601562500023,1.914990234374997],[16.059375,1.676220703124997],[16.183398437500017,2.270068359374989],[16.468554687500017,2.831738281249997],[16.610742187500023,3.50537109375],[17.491601562500023,3.687304687499989],[18.160937500000017,3.499804687499989],[18.474414062500017,3.622998046874997],[18.6103515625,3.478417968749994]]]},"properties":{"name":"Congo","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-71.31972656249997,11.861914062500048],[-71.95810546875,11.66640625],[-72.24848632812501,11.196435546875009],[-72.690087890625,10.835839843749994],[-72.86933593750001,10.49125976562496],[-73.00654296874998,9.789160156250006],[-73.36621093749997,9.194140625000017],[-73.05839843749999,9.259570312500031],[-72.79638671874997,9.10898437499999],[-72.66542968749994,8.62758789062498],[-72.39033203124995,8.287060546874969],[-72.47197265624996,7.524267578124991],[-72.20771484374995,7.37026367187498],[-72.00664062499993,7.032617187500023],[-71.12861328124993,6.98671875],[-70.73715820312503,7.090039062499997],[-70.12919921874999,6.95361328125],[-69.42714843749997,6.123974609374997],[-68.47177734375,6.156542968749974],[-67.85917968749999,6.289892578124963],[-67.48198242187499,6.18027343750002],[-67.47387695312503,5.929980468750003],[-67.82490234374995,5.270458984375026],[-67.85527343750002,4.506884765624989],[-67.66162109375,3.864257812499986],[-67.3111328125,3.41586914062502],[-67.85908203124998,2.793603515624994],[-67.61870117187496,2.793603515624994],[-67.21083984375,2.390136718750043],[-66.87602539062499,1.223046875000037],[-67.082275390625,1.185400390625006],[-67.11923828124998,1.703613281249986],[-67.40043945312499,2.116699218750028],[-67.93623046874998,1.748486328124969],[-68.19379882812495,1.987011718749983],[-68.25595703125,1.845507812500017],[-68.17656249999999,1.719824218749991],[-69.84858398437493,1.708740234375043],[-69.85214843750003,1.05952148437504],[-69.31181640624999,1.050488281249969],[-69.15332031249994,0.65878906250002],[-69.47211914062498,0.72993164062504],[-70.05390624999993,0.578613281250028],[-70.07050781249993,-0.13886718750004],[-69.63398437500001,-0.50927734375],[-69.40024414062498,-1.194921874999977],[-69.66904296875003,-2.667675781249997],[-69.94819335937498,-4.200585937500009],[-69.96591796875003,-4.2359375],[-70.16752929687499,-4.050195312500009],[-70.24028320312496,-3.882714843749994],[-70.2984375,-3.844238281249972],[-70.33950195312502,-3.814355468750009],[-70.73510742187497,-3.781542968749989],[-70.09584960937494,-2.658203125000014],[-70.16474609374995,-2.639843750000011],[-70.24443359375002,-2.606542968749977],[-70.29462890624995,-2.552539062499989],[-70.57587890624995,-2.418261718749989],[-70.64799804687499,-2.405761718750014],[-70.70537109374996,-2.341992187499983],[-70.91455078125003,-2.218554687499974],[-70.96855468750002,-2.206835937499989],[-71.02729492187498,-2.225781250000026],[-71.11337890625003,-2.245410156250031],[-71.19638671874998,-2.313085937499963],[-71.39697265625,-2.334082031249977],[-71.55947265624997,-2.224218749999977],[-71.75253906249995,-2.15273437499998],[-71.80273437499997,-2.166308593749989],[-71.86728515624998,-2.227734374999983],[-71.932470703125,-2.288671874999963],[-71.98427734375,-2.326562499999952],[-72.21845703125001,-2.400488281250006],[-72.94111328124998,-2.394042968750028],[-72.9896484375,-2.33974609374998],[-73.15449218749993,-2.278222656249966],[-73.19697265624995,-1.830273437500011],[-73.49628906249993,-1.69306640625004],[-73.66430664062497,-1.248828124999946],[-73.86318359374997,-1.19667968749998],[-73.92695312500001,-1.125195312499983],[-73.98681640625003,-1.098144531249986],[-74.05439453124995,-1.028613281250031],[-74.18076171875,-0.997753906249955],[-74.24638671874999,-0.970605468750023],[-74.28388671874998,-0.927832031250006],[-74.33442382812498,-0.85087890624996],[-74.41787109375,-0.580664062499977],[-74.46518554687498,-0.517675781250034],[-74.51386718749993,-0.470117187500023],[-74.555078125,-0.429882812499997],[-74.61635742187494,-0.370019531249966],[-74.691650390625,-0.335253906249989],[-74.75537109375003,-0.298632812499989],[-74.78046874999998,-0.24453125],[-74.80175781249997,-0.200097656249994],[-75.13837890624998,-0.050488281249969],[-75.28447265624999,-0.10654296875002],[-75.77666015624999,0.08925781249998],[-76.27060546874998,0.439404296874997],[-76.49462890624997,0.23544921875002],[-77.396337890625,0.393896484374963],[-77.46767578124997,0.636523437500017],[-77.702880859375,0.837841796874997],[-78.1806640625,0.968554687499974],[-78.85966796874996,1.455371093750031],[-79.02543945312499,1.623681640625037],[-78.79296874999994,1.848730468749963],[-78.576904296875,1.773779296874977],[-78.59169921875,2.356640624999969],[-78.41689453125,2.483496093749963],[-78.06665039062494,2.509130859375034],[-77.81357421875,2.716357421874974],[-77.076806640625,3.913281250000026],[-77.26352539062503,3.893212890625023],[-77.27802734374995,4.058496093750023],[-77.35820312499996,3.944726562500037],[-77.40874023437496,4.24775390625004],[-77.52070312499993,4.212792968750023],[-77.35351562499997,4.398291015624977],[-77.28632812499995,4.72172851562496],[-77.373291015625,5.323974609375],[-77.53442382812497,5.537109374999986],[-77.24926757812497,5.780175781250037],[-77.46943359374995,6.176757812500014],[-77.368798828125,6.575585937499994],[-77.90117187499999,7.229345703125048],[-77.76191406249995,7.698828125000034],[-77.53828124999995,7.56625976562502],[-77.19599609374995,7.972460937500003],[-77.47851562499994,8.498437500000037],[-77.37421874999993,8.65830078125002],[-76.85185546875002,8.09047851562498],[-76.924658203125,7.973193359374974],[-76.78657226562493,7.931591796875026],[-76.7720703125,8.310546875000043],[-76.92045898437496,8.573730468750014],[-76.27685546875,8.989111328124991],[-76.02724609374997,9.365771484374989],[-75.63935546874998,9.450439453125014],[-75.680029296875,9.729785156249989],[-75.53857421874997,10.205175781250034],[-75.708349609375,10.143408203124963],[-75.44599609374995,10.610888671874989],[-74.84458007812498,11.109716796875006],[-74.330224609375,10.996679687499991],[-74.51625976562497,10.8625],[-74.40087890625,10.76523437499999],[-74.14291992187503,11.320849609375031],[-73.31337890624997,11.295751953124991],[-72.275,11.88925781250002],[-72.13574218749994,12.188574218749977],[-71.71455078124993,12.41997070312496],[-71.26210937499997,12.335302734375034],[-71.13730468750003,12.04633789062504],[-71.31972656249997,11.861914062500048]]]},"properties":{"name":"Colombia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[43.788671875,-12.307031250000023],[43.85898437500006,-12.368261718749977],[43.66367187500006,-12.342871093749949],[43.63134765624997,-12.247070312499972],[43.788671875,-12.307031250000023]]],[[[44.476367187500074,-12.08154296875],[44.504980468750006,-12.356542968749991],[44.220117187499994,-12.171386718750014],[44.476367187500074,-12.08154296875]]],[[[43.46582031249997,-11.901269531249966],[43.226660156250006,-11.75185546874998],[43.2990234375001,-11.374511718750028],[43.39296875000005,-11.408593749999952],[43.46582031249997,-11.901269531249966]]]]},"properties":{"name":"Comoros","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-24.308251953124966,14.856298828124991],[-24.44052734374992,14.834814453124963],[-24.496875,14.980273437500017],[-24.329492187499937,15.019482421875011],[-24.308251953124966,14.856298828124991]]],[[[-23.18212890624997,15.136767578125017],[-23.210253906250017,15.32353515625006],[-23.119335937499955,15.26840820312502],[-23.18212890624997,15.136767578125017]]],[[[-23.444238281249994,15.00795898437498],[-23.5046875,14.916113281250006],[-23.70537109374999,14.96132812499998],[-23.74809570312499,15.328515625],[-23.444238281249994,15.00795898437498]]],[[[-22.917724609375,16.237255859374955],[-22.69262695312497,16.169042968750006],[-22.710107421874994,16.043359374999966],[-22.95927734374996,16.045117187499983],[-22.917724609375,16.237255859374955]]],[[[-24.08769531249999,16.62250976562501],[-24.03271484374997,16.57202148437503],[-24.243066406250023,16.599414062500017],[-24.32236328124992,16.49311523437504],[-24.398095703124966,16.61840820312497],[-24.08769531249999,16.62250976562501]]],[[[-22.888330078124966,16.659082031249994],[-22.980615234374937,16.700878906249983],[-22.93291015624999,16.84101562500004],[-22.888330078124966,16.659082031249994]]],[[[-24.88706054687495,16.81811523437497],[-25.09306640624999,16.83251953125],[-24.936474609374983,16.92211914062503],[-24.88706054687495,16.81811523437497]]],[[[-25.169824218749994,16.94648437500001],[-25.308300781249955,16.93583984374999],[-25.337109374999955,17.091015624999983],[-25.03466796875,17.176464843749983],[-24.979687499999983,17.09472656250003],[-25.169824218749994,16.94648437500001]]]]},"properties":{"name":"Cape Verde","childNum":8}},{"geometry":{"type":"Polygon","coordinates":[[[-83.6419921875,10.917236328125],[-83.346826171875,10.315380859374997],[-82.77841796874999,9.66953125],[-82.56357421874999,9.57666015625],[-82.56923828125,9.55820312499999],[-82.58652343749999,9.538818359375],[-82.64409179687499,9.505859375],[-82.801025390625,9.591796875],[-82.843994140625,9.57080078125],[-82.86015624999999,9.511474609375],[-82.88896484374999,9.481005859374989],[-82.925048828125,9.469042968749989],[-82.93984375,9.449169921874997],[-82.94033203125,9.060107421874989],[-82.88134765625,9.055859375],[-82.78305664062499,8.990283203124989],[-82.741162109375,8.951708984374989],[-82.72783203124999,8.916064453124989],[-82.91704101562499,8.740332031249991],[-82.855712890625,8.635302734374989],[-82.84477539062499,8.489355468749991],[-82.86162109374999,8.45351562499999],[-83.02734375,8.337744140624991],[-82.879345703125,8.070654296874991],[-83.12333984374999,8.353076171874989],[-83.16240234374999,8.588183593749989],[-83.4697265625,8.706835937499989],[-83.29150390625,8.406005859375],[-83.54375,8.445849609374989],[-83.73408203125,8.614453125],[-83.613720703125,8.804052734374991],[-83.73691406249999,9.150292968749994],[-84.58159179687499,9.568359375],[-84.71494140624999,9.8994140625],[-85.23564453124999,10.242089843749994],[-85.2365234375,10.107373046874997],[-84.88642578125,9.820947265624994],[-85.07705078125,9.60195312499999],[-85.31455078124999,9.8109375],[-85.62485351562499,9.902441406249991],[-85.84965820312499,10.292041015624989],[-85.667236328125,10.745019531249994],[-85.90800781249999,10.897558593749991],[-85.7443359375,11.06210937499999],[-85.5841796875,11.189453125],[-84.9091796875,10.9453125],[-84.6341796875,11.045605468749997],[-83.91928710937499,10.7353515625],[-83.71293945312499,10.785888671875],[-83.6419921875,10.917236328125]]]},"properties":{"name":"Costa Rica","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-82.56176757812503,21.571679687500023],[-82.959619140625,21.441308593750023],[-83.18378906250001,21.59345703125004],[-82.97358398437498,21.592285156250057],[-83.08251953124997,21.791406250000023],[-82.99121093750003,21.942724609375034],[-82.71455078124998,21.890283203125023],[-82.56176757812503,21.571679687500023]]],[[[-77.66899414062493,21.951953125000045],[-77.91855468749998,22.088085937499983],[-77.63369140624994,22.054003906250074],[-77.66899414062493,21.951953125000045]]],[[[-77.87939453125,22.127539062500034],[-78.04165039062502,22.201269531250034],[-77.99921874999998,22.298730468749994],[-77.87939453125,22.127539062500034]]],[[[-81.83745117187499,23.163037109374955],[-81.26235351562497,23.156835937500034],[-81.14462890624998,23.054931640625057],[-80.65014648437494,23.10307617187499],[-80.36489257812502,22.943408203125074],[-79.82026367187498,22.887011718750045],[-79.27568359374999,22.407617187499994],[-78.68647460937493,22.366845703125023],[-77.63681640624995,21.79736328125],[-77.49711914062502,21.78833007812503],[-77.58315429687497,21.889257812499977],[-77.49726562499995,21.871630859375045],[-77.14414062499995,21.643603515625017],[-77.36616210937498,21.612646484375034],[-77.25288085937498,21.483496093750006],[-77.0986328125,21.589013671875023],[-76.86743164062497,21.330419921875006],[-75.72294921874996,21.111035156249983],[-75.59580078125,20.99467773437499],[-75.72456054687493,20.71455078125004],[-74.882568359375,20.65063476562497],[-74.51313476562495,20.384570312500045],[-74.16748046874997,20.292187499999955],[-74.15371093750002,20.168554687500006],[-75.11640624999995,19.901416015625017],[-75.151611328125,20.008349609375045],[-75.29047851562495,19.893115234375017],[-76.15844726562497,19.98974609374997],[-77.715087890625,19.85546874999997],[-77.10380859374999,20.407519531250017],[-77.22958984374995,20.64375],[-78.11635742187497,20.761865234374994],[-78.49077148437493,21.05371093750003],[-78.72768554687497,21.592724609374955],[-79.35742187500003,21.58515625000001],[-80.23134765625,21.872167968750063],[-80.48544921874998,22.1234375],[-81.03564453124997,22.073583984375063],[-81.18549804687495,22.26796875000005],[-81.284375,22.109423828125074],[-81.84941406249993,22.21367187499999],[-82.077734375,22.3876953125],[-81.71035156250002,22.496679687500006],[-81.83881835937498,22.672460937500034],[-82.73803710937497,22.689257812500074],[-83.37963867187503,22.222998046875034],[-83.90073242187495,22.17011718750001],[-84.03095703124993,21.94311523437503],[-84.502587890625,21.776171875000045],[-84.50136718750002,21.930273437499977],[-84.88720703125003,21.856982421875074],[-84.32636718749998,22.074316406250034],[-84.36127929687498,22.37890625],[-84.04492187500003,22.666015625000057],[-83.25781249999997,22.967578125000017],[-81.83745117187499,23.163037109374955]]]]},"properties":{"name":"Cuba","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[-68.75107421874999,12.059765625],[-68.9951171875,12.141845703125],[-69.15888671875,12.380273437499994],[-68.75107421874999,12.059765625]]]},"properties":{"name":"Curaçao","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-81.36953124999997,19.34887695312497],[-81.10712890624995,19.305175781250057],[-81.40478515624994,19.278417968750006],[-81.36953124999997,19.34887695312497]]],[[[-79.823388671875,19.711914062500057],[-79.90620117187501,19.702539062499994],[-79.74228515625,19.757128906250017],[-79.823388671875,19.711914062500057]]]]},"properties":{"name":"Cayman Is.","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[34.004492187500006,35.065234375],[33.47578125000001,35.000341796875],[33.3837890625,35.1626953125],[32.91953125,35.087841796875],[32.71269531250002,35.171044921874994],[32.8798828125,35.180566406249994],[32.94160156250001,35.390429687499996],[33.60761718750001,35.354150390624994],[34.55605468750002,35.662060546875],[33.941992187500006,35.292041015624996],[34.004492187500006,35.065234375]]]},"properties":{"name":"N. Cyprus","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[32.71269531250002,35.171044921874994],[32.91953125,35.087841796875],[33.3837890625,35.1626953125],[33.47578125000001,35.000341796875],[34.004492187500006,35.065234375],[34.05019531250002,34.98837890625],[33.69941406250001,34.969873046874994],[33.007910156250006,34.569580078125],[32.44902343750002,34.729443359375],[32.31718750000002,34.9533203125],[32.30097656250001,35.082958984375],[32.71269531250002,35.171044921874994]]]},"properties":{"name":"Cyprus","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[14.809375,50.858984375],[14.895800781250017,50.861376953124996],[14.98291015625,50.886572265625],[14.99375,51.01435546875],[16.007226562500023,50.611621093749996],[16.2822265625,50.655615234375],[16.419726562500017,50.573632812499994],[16.210351562500023,50.423730468749994],[16.63916015625,50.1021484375],[16.989648437500023,50.2369140625],[16.88007812500001,50.427050781249996],[17.41523437500001,50.254785156249994],[17.702246093750006,50.307177734374996],[17.627050781250006,50.11640625],[17.874804687500017,49.972265625],[18.0283203125,50.03525390625],[18.562402343750023,49.879345703125],[18.83222656250001,49.510791015624996],[18.160937500000017,49.257373046874996],[18.0859375,49.06513671875],[17.75849609375001,48.888134765625],[17.135644531250023,48.841064453125],[16.953125,48.598828125],[16.543554687500006,48.796240234375],[16.057226562500006,48.754785156249994],[15.066796875000023,48.997851562499996],[14.691308593750023,48.59921875],[14.049121093750017,48.602490234375],[13.814746093750017,48.766943359375],[13.769921875000023,48.815966796874996],[13.684960937500023,48.876708984375],[13.547656250000017,48.95966796875],[13.440722656250017,48.95556640625],[13.401171875000017,48.977587890624996],[12.916699218750011,49.33046875],[12.68115234375,49.414501953125],[12.390527343750023,49.739648437499994],[12.5125,49.87744140625],[12.09921875,50.310986328125],[12.134863281250006,50.3109375],[12.1748046875,50.288378906249996],[12.231152343750011,50.244873046875],[12.27734375,50.181445312499996],[12.3056640625,50.205712890624994],[12.549023437500011,50.393408203125],[13.016406250000017,50.490380859374994],[13.18115234375,50.510498046875],[14.369042968750023,50.898730468749996],[14.319726562500023,51.03779296875],[14.545703125000017,50.993945312499996],[14.559667968750006,50.954931640625],[14.59521484375,50.918603515624994],[14.623828125000017,50.91474609375],[14.613574218750017,50.85556640625],[14.658203125,50.8326171875],[14.723339843750011,50.814697265625],[14.766503906250023,50.818310546875],[14.797460937500006,50.842333984374996],[14.809375,50.858984375]]]},"properties":{"name":"Czech Rep.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[14.1982421875,53.919042968750034],[13.92578125,53.879052734374966],[13.827734375,54.12724609374999],[14.1982421875,53.919042968750034]]],[[[13.709179687500011,54.382714843749994],[13.707324218750074,54.281152343749994],[13.190039062500034,54.32563476562501],[13.336816406249994,54.697119140625006],[13.65761718750008,54.55957031249997],[13.709179687500011,54.382714843749994]]],[[[9.739746093750028,54.82553710937498],[10.022167968750011,54.673925781250006],[9.86865234375,54.47246093749999],[10.731542968750006,54.31625976562506],[11.013378906250068,54.37915039062497],[11.008593750000074,54.18115234374997],[10.810742187500068,54.075146484374955],[10.917773437500045,53.99531250000004],[11.39960937500004,53.94462890625002],[12.111328125,54.168310546875006],[12.57539062500004,54.467382812500006],[13.028613281250017,54.411035156249994],[13.448046875000017,54.14086914062503],[13.724218750000063,54.153222656249966],[13.865527343750074,53.85336914062498],[14.258886718750006,53.729638671874994],[14.298730468750051,53.55644531249999],[14.41455078125,53.28349609374996],[14.412304687500011,53.216748046874955],[14.410937500000074,53.19902343749999],[14.368554687500051,53.105566406250034],[14.293164062500068,53.026757812499966],[14.138867187500068,52.93286132812503],[14.128613281250011,52.87822265625002],[14.253710937500017,52.78251953124996],[14.514062500000023,52.645605468750034],[14.619433593750017,52.52851562499998],[14.569726562499994,52.431103515624955],[14.554589843750023,52.35966796874996],[14.573925781250068,52.31416015625001],[14.615625,52.277636718750045],[14.679882812500068,52.25],[14.752539062500034,52.08183593750002],[14.601660156250034,51.832373046875006],[14.738671875000051,51.62714843750004],[14.7109375,51.54492187499997],[14.724707031250063,51.523876953124955],[14.90595703125004,51.463330078124955],[14.935546875000028,51.435351562500045],[14.9638671875,51.095117187499994],[14.917480468750057,51.00874023437498],[14.814257812499989,50.871630859375045],[14.809375,50.858984375000034],[14.797460937500034,50.84233398437502],[14.766503906250051,50.81831054687501],[14.72333984375004,50.81469726562497],[14.658203125,50.832617187500006],[14.613574218750045,50.85556640625006],[14.623828125000017,50.91474609375004],[14.595214843750057,50.91860351562502],[14.559667968750006,50.954931640625034],[14.545703124999989,50.99394531249999],[14.319726562500051,51.037792968749955],[14.36904296875008,50.89873046874996],[13.18115234375,50.510498046875],[13.016406250000017,50.490380859374994],[12.549023437500011,50.393408203125034],[12.3056640625,50.205712890624994],[12.27734375,50.18144531250002],[12.231152343749983,50.24487304687497],[12.174804687500057,50.28837890624996],[12.134863281250006,50.31093750000002],[12.099218750000034,50.31098632812504],[12.089843749999972,50.30175781250003],[12.089746093750051,50.2685546875],[12.294598214285761,50.13608119419641],[12.5125,49.87744140625],[12.390527343750051,49.739648437499994],[12.68115234375,49.41450195312501],[12.91669921875004,49.33046875000002],[13.401171875000074,48.97758789062499],[13.440722656250045,48.95556640625003],[13.547656250000074,48.95966796874998],[13.684960937500051,48.87670898437506],[13.769921875000051,48.81596679687502],[13.814746093750017,48.76694335937498],[13.802929687500011,48.74750976562501],[13.798828124999972,48.62167968750006],[13.785351562499983,48.58745117187502],[13.486621093750074,48.58183593750002],[13.471679687500028,48.57182617187502],[13.459863281250023,48.564550781250034],[13.409375,48.39414062500006],[13.322851562500006,48.33125],[13.215234375000023,48.301904296874994],[12.760351562500063,48.10698242187499],[12.95351562500008,47.890625],[12.897656250000068,47.721875],[13.054101562500051,47.655126953125034],[13.047949218750034,47.57915039062502],[13.031542968750074,47.50800781250001],[13.01435546875004,47.478076171875045],[12.968066406250017,47.475683593750006],[12.878906250000057,47.506445312500034],[12.809375,47.542187499999955],[12.782812500000034,47.56416015624998],[12.781152343750051,47.590429687500006],[12.796191406249989,47.60703125],[12.771386718750023,47.63940429687503],[12.685839843750074,47.66933593750002],[12.209277343750074,47.71826171875003],[12.196875,47.709082031250034],[12.203808593750011,47.64672851562503],[12.185644531250063,47.61953125],[11.041992187500028,47.39311523437496],[10.98085937499999,47.39814453125001],[10.893945312500051,47.470458984375],[10.870605468750028,47.500781250000045],[10.873046874999972,47.52021484375001],[10.741601562500023,47.52412109375001],[10.65869140625,47.547216796875006],[10.482812500000051,47.54179687499996],[10.439453125000028,47.55156249999999],[10.403906250000063,47.41699218750003],[10.369140625,47.366064453125034],[10.18300781250008,47.27880859375003],[10.200292968750063,47.36342773437505],[10.066308593750023,47.39335937500002],[10.064575892857171,47.42369419642856],[10.059863281250045,47.44907226562498],[10.034082031250023,47.47358398437501],[9.971582031249994,47.50532226562498],[9.839160156250017,47.55229492187496],[9.748925781250023,47.575537109375006],[9.524023437500034,47.52421875000002],[8.572656250000023,47.775634765625],[8.435742187500011,47.73134765625002],[8.403417968750006,47.687792968750045],[8.413281250000068,47.66269531249998],[8.451757812500006,47.65180664062498],[8.552343750000063,47.65913085937498],[8.56708984375004,47.65190429687502],[8.57050781250004,47.63779296874998],[8.55947265625008,47.62402343750003],[8.477636718750034,47.61269531250002],[8.454003906249994,47.59619140625003],[7.615625,47.59272460937504],[7.616601562500023,48.15678710937502],[8.134863281250006,48.97358398437498],[7.450585937500051,49.152197265625034],[6.735449218750006,49.16059570312498],[6.344335937500006,49.45273437499998],[6.4873046875,49.798486328124994],[6.204882812500017,49.915136718750034],[6.13818359375,49.97431640625001],[6.10976562500008,50.034375],[6.116503906250045,50.120996093749966],[6.340917968750006,50.451757812500034],[5.993945312500017,50.75043945312504],[6.048437500000034,50.90488281250006],[5.857519531250034,51.030126953125006],[6.129980468750034,51.14741210937501],[6.198828125000034,51.45],[5.948730468750057,51.80268554687501],[6.800390625,51.96738281249998],[6.724511718749994,52.080224609374966],[7.035156250000057,52.38022460937498],[6.748828125000074,52.464013671874994],[6.710742187500045,52.61787109374998],[7.033007812500045,52.65136718749997],[7.197265625000028,53.28227539062499],[7.074316406250034,53.477636718750006],[7.285253906250034,53.68134765625001],[8.00927734375,53.69072265624999],[8.108496093750063,53.46767578125002],[8.245214843750006,53.44531249999997],[8.333886718750051,53.606201171875],[8.495214843750063,53.39423828124998],[8.618945312500045,53.875],[9.20556640625,53.85595703124997],[9.783984375000074,53.554638671874955],[9.31201171875,53.859130859375],[8.92041015625,53.96533203125006],[8.906640625000023,54.26079101562502],[8.625781250000017,54.35395507812501],[8.951855468750011,54.46757812499996],[8.670312500000023,54.903417968750034],[9.739746093750028,54.82553710937498]]],[[[8.307714843750034,54.786962890625034],[8.451464843750017,55.05537109374998],[8.3798828125,54.89985351562501],[8.629589843750068,54.891748046874966],[8.307714843750034,54.786962890625034]]]]},"properties":{"name":"Germany","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[43.24599609375002,11.499804687499989],[42.92275390625002,10.999316406249989],[42.557714843750006,11.080761718749997],[41.79824218750002,10.98046875],[41.79267578125001,11.68603515625],[42.378515625,12.46640625],[42.40859375000002,12.494384765625],[42.45,12.521337890624991],[42.47939453125002,12.513623046874997],[42.703710937500006,12.380322265624997],[42.76748046875002,12.4228515625],[42.825292968750006,12.5693359375],[42.86591796875001,12.622802734375],[42.88330078125,12.621289062499997],[43.00566406250002,12.662304687499997],[43.11669921875,12.70859375],[43.353515625,12.367041015624991],[43.38027343750002,12.091259765624997],[42.64003906250002,11.560107421874989],[42.52177734375002,11.572167968749994],[42.58378906250002,11.496777343749997],[43.04277343750002,11.588476562499991],[43.24599609375002,11.499804687499989]]]},"properties":{"name":"Djibouti","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-61.281689453125,15.2490234375],[-61.37539062499999,15.227294921875],[-61.45810546874999,15.633105468750003],[-61.277246093749994,15.526708984374991],[-61.281689453125,15.2490234375]]]},"properties":{"name":"Dominica","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[11.361425781250006,54.891650390625045],[11.739550781250017,54.80742187500002],[11.765917968750074,54.67944335937506],[11.457421875000023,54.628857421874955],[11.035546875000051,54.77309570312505],[11.058593750000028,54.940576171874966],[11.361425781250006,54.891650390625045]]],[[[12.549218750000051,54.96577148437504],[12.11884765625004,54.91440429687506],[12.274023437500034,55.064111328124994],[12.549218750000051,54.96577148437504]]],[[[10.061230468750068,54.88637695312502],[9.80625,54.90600585937503],[9.78125,55.06904296875001],[10.061230468750068,54.88637695312502]]],[[[10.734082031250011,54.750732421875],[10.621679687500006,54.851416015625006],[10.95107421875008,55.15620117187501],[10.734082031250011,54.750732421875]]],[[[15.087695312500017,55.021875],[14.684179687500063,55.10224609375004],[14.765332031250068,55.296728515625034],[15.132617187500017,55.14453125000003],[15.087695312500017,55.021875]]],[[[10.645117187500006,55.60981445312498],[10.785253906250034,55.13339843749998],[10.44277343750008,55.04877929687498],[9.988769531250028,55.163183593750006],[9.860644531250045,55.515478515625034],[10.645117187500006,55.60981445312498]]],[[[12.665722656250068,55.596533203125006],[12.550878906250034,55.55625],[12.59921875,55.68022460937502],[12.665722656250068,55.596533203125006]]],[[[12.56875,55.785058593749966],[12.215039062500011,55.46650390624998],[12.413085937500028,55.28618164062502],[12.089941406250006,55.18813476562505],[12.050390625000034,54.81533203125002],[11.8623046875,54.77260742187502],[11.653808593750057,55.186914062499966],[11.286328125000068,55.20444335937498],[10.978906250000051,55.721533203125006],[11.322265625000028,55.752539062500006],[11.627734375000074,55.95688476562498],[11.819726562500023,55.69765625000002],[11.86640625000004,55.968164062499966],[12.218945312499983,56.11865234374997],[12.578710937500006,56.06406250000006],[12.56875,55.785058593749966]]],[[[11.052148437500051,57.25253906250006],[10.873828125000045,57.26225585937499],[11.174511718750011,57.322900390624994],[11.052148437500051,57.25253906250006]]],[[[9.739746093750028,54.82553710937498],[8.670312500000023,54.903417968750034],[8.61591796875004,55.41821289062503],[8.132128906250074,55.59980468749998],[8.16396484375008,56.60688476562498],[8.671679687500045,56.49565429687496],[8.88808593750008,56.73505859374998],[9.06708984375004,56.79384765625005],[9.196386718750006,56.70166015625],[9.2548828125,57.01171875000003],[8.992773437499977,57.01611328125003],[8.771972656250028,56.72529296875004],[8.468359375,56.66455078125],[8.284082031250023,56.85234374999999],[8.618554687500051,57.11127929687498],[9.43359375,57.17431640625003],[9.96230468750008,57.580957031249994],[10.609960937500034,57.73691406249998],[10.282714843750057,56.620507812499994],[10.926171875000051,56.44326171875002],[10.753417968750028,56.24199218749999],[10.31875,56.212890625],[10.18300781250008,55.86518554687504],[9.903710937500023,55.84282226562502],[10.02363281250004,55.76142578125004],[9.591113281250017,55.49321289062502],[9.670996093750063,55.26640624999999],[9.453710937500006,55.03955078125006],[9.732324218750023,54.96801757812506],[9.739746093750028,54.82553710937498]]]]},"properties":{"name":"Denmark","childNum":10,"cp":[10.2768332,56.1773879]}},{"geometry":{"type":"Polygon","coordinates":[[[-71.647216796875,19.195947265624994],[-71.746484375,19.285839843749997],[-71.71147460937499,19.486572265625],[-71.75742187499999,19.688183593749997],[-71.779248046875,19.718164062499994],[-71.6673828125,19.8486328125],[-70.95415039062499,19.913964843749994],[-70.19384765625,19.63803710937499],[-69.95683593749999,19.671875],[-69.739404296875,19.29921875],[-69.23247070312499,19.27182617187499],[-69.60595703125,19.206494140624997],[-69.62363281249999,19.117822265624994],[-68.684765625,18.90478515625],[-68.33916015624999,18.611523437499997],[-68.68740234375,18.21494140624999],[-68.9349609375,18.408007812500003],[-69.27451171874999,18.43984375],[-69.770654296875,18.443554687499997],[-70.479931640625,18.21728515625],[-70.644677734375,18.336230468750003],[-71.02783203125,18.273193359375],[-71.43896484375,17.63559570312499],[-71.63173828125,17.773632812499997],[-71.768310546875,18.03916015624999],[-71.76376953124999,18.20395507812499],[-71.737255859375,18.270800781250003],[-71.7619140625,18.34130859375],[-71.87255859375,18.416210937499997],[-71.940380859375,18.512597656249994],[-72.000390625,18.597900390625],[-71.98686523437499,18.6103515625],[-71.86650390624999,18.614160156249994],[-71.74321289062499,18.73291015625],[-71.72705078125,18.80322265625],[-71.733642578125,18.856396484374997],[-71.80712890625,18.987011718749997],[-71.647216796875,19.195947265624994]]]},"properties":{"name":"Dominican Rep.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[8.207617187500006,36.518945312499994],[8.348730468750006,36.36796875],[8.318066406250011,35.654931640624994],[8.31640625,35.403125],[8.35986328125,35.299609375],[8.394238281250011,35.203857421875],[8.312109375,35.084619140624994],[8.27685546875,34.9794921875],[8.24560546875,34.73408203125],[7.513867187500011,34.080517578125],[7.534375,33.717919921874994],[7.877246093750017,33.172119140625],[8.1125,33.055322265624994],[8.333398437500023,32.543603515624994],[9.044042968750006,32.07236328125],[9.160253906250006,31.621337890625],[9.224023437500023,31.373681640624994],[9.51875,30.229394531249994],[9.310253906250011,30.115234375],[9.805273437500006,29.176953125],[9.916015625,27.785693359374996],[9.74755859375,27.330859375],[9.883203125000023,26.630810546874997],[9.491406250000011,26.333740234375],[9.4482421875,26.067138671875],[10.000683593750011,25.332080078125003],[10.255859375,24.591015625],[10.395898437500023,24.485595703125],[10.686132812500006,24.55136718749999],[11.507617187500017,24.314355468749994],[11.967871093750006,23.517871093750003],[7.481738281250017,20.873095703125003],[5.836621093750011,19.479150390624994],[4.227636718750006,19.142773437499997],[3.3564453125,18.986621093750003],[3.119726562500006,19.103173828124994],[3.255859375,19.4109375],[3.130273437500023,19.85019531249999],[1.685449218750023,20.378369140624997],[1.610644531250017,20.555566406249994],[1.165722656250011,20.817431640625003],[1.1455078125,21.102246093749997],[-1.947900390624994,23.124804687500003],[-4.822607421874977,24.99560546875],[-8.683349609375,27.2859375],[-8.683349609375,27.656445312499997],[-8.683349609375,27.900390625],[-8.659912109375,28.718603515625],[-7.485742187499994,29.392236328124994],[-7.427685546874983,29.425],[-7.142431640624977,29.619580078124997],[-6.855566406249977,29.601611328124996],[-6.755126953125,29.583837890625],[-6.635351562499977,29.568798828124997],[-6.597753906249977,29.578955078125],[-6.520556640624989,29.659863281249997],[-6.479736328125,29.820361328124996],[-6.00429687499999,29.83125],[-5.448779296874989,29.956933593749994],[-5.293652343749983,30.058642578124996],[-5.180126953124983,30.166162109374994],[-4.96826171875,30.465380859374996],[-4.778515624999983,30.552392578124994],[-4.529150390624977,30.625537109374996],[-4.322851562499977,30.698876953124994],[-4.148779296874977,30.8095703125],[-3.626904296874983,31.000927734374997],[-3.833398437499994,31.197802734374996],[-3.837109374999983,31.512353515624994],[-3.768164062499977,31.68955078125],[-3.700244140624989,31.700097656249994],[-3.604589843749977,31.686767578125],[-3.439794921874977,31.704541015624997],[-3.017382812499989,31.834277343749996],[-2.988232421874983,31.87421875],[-2.930859374999983,32.042529296874996],[-2.863427734374994,32.07470703125],[-1.275341796874983,32.089013671874994],[-1.16259765625,32.399169921875],[-1.111035156249983,32.552294921874996],[-1.188232421875,32.60849609375],[-1.29638671875,32.675683593749994],[-1.352148437499977,32.703369140625],[-1.45,32.784814453124994],[-1.510009765625,32.87763671875],[-1.550732421874983,33.073583984375],[-1.67919921875,33.318652343749996],[-1.795605468749983,34.751904296875],[-2.131787109374983,34.970849609374994],[-2.190771484374977,35.02978515625],[-2.219628906249994,35.10419921875],[-1.673632812499989,35.18310546875],[-0.426123046874977,35.8615234375],[-0.048242187499994,35.8328125],[0.312207031250011,36.162353515625],[0.9716796875,36.4439453125],[2.593359375,36.60068359375],[2.972851562500011,36.784472656249996],[3.779003906250011,36.89619140625],[4.758105468750017,36.896337890625],[5.29541015625,36.648242187499996],[6.486523437500011,37.085742187499996],[6.927539062500017,36.91943359375],[7.238476562500011,36.968505859375],[7.204296875000011,37.0923828125],[7.910449218750017,36.856347656249994],[8.576562500000023,36.93720703125],[8.601269531250011,36.833935546875],[8.207617187500006,36.518945312499994]]]},"properties":{"name":"Algeria","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-80.131591796875,-2.973144531249957],[-80.27294921875003,-2.995898437499974],[-80.22368164062502,-2.753125],[-80.08076171874995,-2.668847656249966],[-79.90903320312495,-2.725585937499972],[-80.131591796875,-2.973144531249957]]],[[[-90.42392578125,-1.339941406250034],[-90.51953124999994,-1.299121093749974],[-90.47719726562494,-1.22099609374996],[-90.42392578125,-1.339941406250034]]],[[[-89.41889648437498,-0.911035156249966],[-89.60859374999998,-0.888574218750009],[-89.28784179687503,-0.689843750000023],[-89.41889648437498,-0.911035156249966]]],[[[-90.33486328125,-0.771582031249977],[-90.54213867187502,-0.676464843749955],[-90.53168945312493,-0.581445312499966],[-90.26938476562498,-0.48466796874996],[-90.19272460937498,-0.658789062500006],[-90.33486328125,-0.771582031249977]]],[[[-91.42597656249995,-0.460839843749994],[-91.61074218749994,-0.44394531250002],[-91.64667968749998,-0.284472656249946],[-91.46015625000001,-0.255664062500031],[-91.42597656249995,-0.460839843749994]]],[[[-90.57392578124993,-0.333984375],[-90.8677734375,-0.271386718750037],[-90.78037109374998,-0.160449218749989],[-90.57392578124993,-0.333984375]]],[[[-91.27216796874998,0.025146484374986],[-90.799658203125,-0.752050781249991],[-90.90551757812497,-0.94052734375002],[-91.13105468750001,-1.019628906249977],[-91.41904296874998,-0.996679687500006],[-91.49541015624999,-0.860937499999977],[-91.120947265625,-0.559082031250028],[-91.36918945312493,-0.287207031249977],[-91.42885742187502,-0.023388671874955],[-91.59682617187497,0.002099609374994],[-91.36137695312496,0.125830078124977],[-91.27216796874998,0.025146484374986]]],[[[-78.90922851562502,1.252783203124977],[-78.99169921875003,1.293212890625043],[-78.89980468749997,1.359765625],[-78.90922851562502,1.252783203124977]]],[[[-75.28447265624999,-0.10654296875002],[-75.62626953124999,-0.122851562499974],[-75.63203125000001,-0.157617187500037],[-75.56059570312502,-0.200097656249994],[-75.49106445312498,-0.24833984374996],[-75.42470703124997,-0.408886718749983],[-75.259375,-0.59013671874996],[-75.24960937499998,-0.951855468750026],[-75.34819335937499,-0.966796874999957],[-75.38012695312503,-0.94023437499996],[-75.40805664062503,-0.92431640625],[-75.42041015624997,-0.962207031250003],[-75.570556640625,-1.53125],[-76.08979492187501,-2.133105468749974],[-76.6791015625,-2.562597656249991],[-77.860595703125,-2.981640625000011],[-78.240380859375,-3.472558593750009],[-78.345361328125,-3.397363281249966],[-78.64799804687499,-4.248144531250006],[-78.68603515625003,-4.562402343749994],[-78.86152343749998,-4.665039062499943],[-78.90761718749997,-4.714453124999977],[-78.92578125,-4.770703124999983],[-78.91420898437497,-4.818652343749974],[-78.919189453125,-4.858398437499986],[-78.97539062499999,-4.873242187499997],[-78.99526367187497,-4.908007812499974],[-79.03330078124998,-4.96914062499999],[-79.07626953125003,-4.990625],[-79.18666992187497,-4.958203124999983],[-79.26811523437493,-4.957617187499949],[-79.33095703124997,-4.92783203125002],[-79.39941406249997,-4.840039062499983],[-79.45576171874998,-4.766210937499949],[-79.50190429687495,-4.670605468750011],[-79.51616210937493,-4.539160156249963],[-79.57768554687496,-4.50058593750002],[-79.638525390625,-4.454882812500031],[-79.71098632812502,-4.467578124999946],[-79.79726562500002,-4.47636718749996],[-79.8451171875,-4.445898437499977],[-79.962890625,-4.390332031250026],[-80.06352539062499,-4.327539062500023],[-80.13955078125002,-4.296093750000011],[-80.19746093750001,-4.311035156249943],[-80.293359375,-4.416796875],[-80.38349609374998,-4.46367187499996],[-80.424169921875,-4.461425781250028],[-80.47856445312499,-4.430078125000037],[-80.48847656249995,-4.393652343749991],[-80.44384765625003,-4.335839843750023],[-80.35288085937495,-4.208496093750014],[-80.453759765625,-4.205175781249963],[-80.48847656249995,-4.165527343749972],[-80.49345703124999,-4.119140625000014],[-80.510009765625,-4.06953125000004],[-80.49013671874994,-4.010058593750003],[-80.43720703125001,-3.978613281249991],[-80.30327148437499,-4.005078124999969],[-80.26689453124993,-3.948828124999963],[-80.23051757812499,-3.924023437499969],[-80.19414062499996,-3.905859375],[-80.24375,-3.576757812500006],[-80.32465820312498,-3.387890625],[-79.96333007812501,-3.15771484375],[-79.72988281249997,-2.579101562499972],[-79.842138671875,-2.0673828125],[-79.92558593749996,-2.548535156249969],[-80.03017578124994,-2.556738281249949],[-80.00664062499993,-2.353808593750003],[-80.28471679687502,-2.706738281249955],[-80.93217773437493,-2.269140624999977],[-80.76059570312498,-1.934570312500028],[-80.90239257812499,-1.078906249999974],[-80.55390624999998,-0.847949218749989],[-80.45546875,-0.585449218749986],[-80.282373046875,-0.620507812500023],[-80.48227539062503,-0.368261718749963],[-80.046142578125,0.155371093750048],[-80.08828124999997,0.78476562500002],[-78.89965820312503,1.20625],[-78.85966796874996,1.455371093750031],[-78.1806640625,0.968554687499974],[-77.702880859375,0.837841796874997],[-77.46767578124997,0.636523437500017],[-77.396337890625,0.393896484374963],[-76.49462890624997,0.23544921875002],[-76.27060546874998,0.439404296874997],[-75.77666015624999,0.08925781249998],[-75.28447265624999,-0.10654296875002]]]]},"properties":{"name":"Ecuador","childNum":9}},{"geometry":{"type":"Polygon","coordinates":[[[34.24531250000001,31.208300781249996],[34.904296875,29.47734375],[34.736425781250006,29.27060546875],[34.39970703125002,28.01601562499999],[34.22011718750002,27.764306640624994],[33.76025390625,28.04765625],[33.24775390625001,28.567724609375],[32.56572265625002,29.973974609375],[32.35976562500002,29.630664062499996],[32.89824218750002,28.565234375],[33.54707031250001,27.898144531249997],[33.5498046875,27.607373046874997],[33.84931640625001,27.184912109375],[33.959082031250006,26.6490234375],[35.19414062500002,24.475146484375003],[35.78388671875001,23.937792968750003],[35.54082031250002,23.920654296875],[35.50439453125,23.779296875],[35.697851562500006,22.946191406249994],[36.22968750000001,22.628808593749994],[36.87138671875002,21.996728515624994],[31.434472656250023,21.995849609375],[31.486132812500017,22.14780273437499],[31.400292968750023,22.202441406250003],[31.260644531250023,22.00229492187499],[31.092675781250023,21.994873046875],[28.036425781250017,21.995361328125],[24.980273437500017,21.995849609375],[24.980273437500017,25.5888671875],[24.980273437500017,29.181884765625],[24.703222656250006,30.201074218749994],[24.96142578125,30.678515625],[24.85273437500001,31.334814453125],[25.150488281250006,31.654980468749997],[25.382226562500023,31.51279296875],[25.89326171875001,31.620898437499996],[27.248046875,31.377880859374997],[27.5400390625,31.212695312499996],[28.51484375000001,31.050439453124994],[29.072070312500017,30.830273437499997],[29.929785156250006,31.227490234374997],[30.22265625,31.2583984375],[30.395117187500006,31.4576171875],[30.92353515625001,31.566845703124997],[30.56298828125,31.4169921875],[31.001757812500017,31.462792968749994],[31.082910156250023,31.603320312499996],[31.5244140625,31.458251953125],[31.888964843750017,31.54140625],[32.13603515625002,31.341064453125],[31.8921875,31.482470703124996],[31.77109375,31.292578125],[32.10175781250001,31.092822265624996],[32.281835937500006,31.200878906249997],[32.21621093750002,31.29375],[32.60332031250002,31.06875],[33.66650390625,31.130419921874996],[34.19814453125002,31.322607421875],[34.24531250000001,31.208300781249996]]]},"properties":{"name":"Egypt","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[40.141210937500006,15.696142578125034],[40.399023437500006,15.579882812500045],[39.975195312500006,15.612451171875023],[39.94746093750004,15.696142578125034],[40.07050781250004,15.676611328125034],[39.93994140625003,15.744531250000023],[39.9567382812501,15.889404296875057],[40.141210937500006,15.696142578125034]]],[[[40.07646484375002,16.082421875000023],[40.11005859375004,15.985742187500051],[39.99609375000003,16.04267578125001],[40.07646484375002,16.082421875000023]]],[[[40.938574218750006,13.983105468749997],[40.82011718750002,14.111669921874991],[40.22148437500002,14.431152343749972],[39.531835937500006,14.53671875],[39.198046875000074,14.479394531250037],[39.1354492187501,14.581884765625034],[39.07421874999997,14.628222656249974],[39.02382812499999,14.628222656249974],[38.99570312500006,14.586865234374983],[38.81201171875003,14.482324218750009],[38.50439453124997,14.42441406250002],[38.43144531250002,14.428613281249994],[38.221484375000074,14.649658203124986],[38.002539062500006,14.737109375000045],[37.94345703125006,14.810546875],[37.884179687499994,14.852294921874972],[37.82031250000003,14.708496093749986],[37.70839843750005,14.45722656250004],[37.64843750000003,14.32255859375006],[37.571191406249994,14.149072265624966],[37.546777343749994,14.143847656249974],[37.507226562499994,14.156396484375037],[37.257226562499994,14.453759765625051],[37.024511718750006,14.271972656250057],[36.81191406250005,14.315039062500034],[36.67910156250005,14.307568359375026],[36.542382812499994,14.25820312499999],[36.52431640625005,14.256835937499986],[36.492285156250006,14.544335937500023],[36.470800781250006,14.736474609375009],[36.448144531249994,14.940087890625009],[36.42675781249997,15.132080078125043],[36.566015625,15.362109375],[36.9137695312501,16.296191406250045],[36.887792968750006,16.624658203124994],[36.9787109375001,16.800585937500045],[36.9757812500001,16.866552734375006],[36.99521484375006,17.020556640625017],[37.00898437500004,17.058886718750017],[37.06152343749997,17.061279296875057],[37.16953125000006,17.04140625],[37.41103515625005,17.061718749999955],[37.452929687500074,17.108691406250017],[37.51015625,17.28813476562499],[37.54746093750006,17.32412109375005],[37.78242187500004,17.458007812500057],[38.253515625,17.584765625000017],[38.26728515625004,17.616699218750057],[38.28984375000002,17.637011718750017],[38.34736328125004,17.68359375],[38.37373046875004,17.717333984375045],[38.42246093750006,17.823925781249983],[38.60947265625006,18.00507812500004],[39.03447265625002,17.085546875000034],[39.298925781250006,15.921093750000011],[39.78554687499999,15.124853515624991],[39.86376953124997,15.470312500000034],[40.20410156250003,15.014111328124983],[41.17646484375004,14.620312500000054],[41.65820312499997,13.983056640624994],[42.24511718749997,13.587646484374986],[42.39931640625005,13.212597656249969],[42.522851562499994,13.221484375],[42.796191406250074,12.864257812500057],[42.96953125000002,12.808349609375028],[42.99902343750003,12.899511718750048],[43.08291015625005,12.824609374999966],[43.11669921874997,12.708593749999963],[43.00566406250002,12.66230468750004],[42.88330078124997,12.621289062500026],[42.86591796875004,12.622802734374986],[42.82529296875006,12.569335937500014],[42.767480468749994,12.422851562500014],[42.70371093750006,12.380322265625054],[42.479394531249994,12.513623046875026],[42.45,12.521337890625006],[42.40859375,12.494384765625014],[42.37851562500006,12.46640625],[42.28994140625005,12.570214843750009],[42.225,12.661962890624963],[42.13427734374997,12.771435546874969],[41.95214843749997,12.88232421875],[41.85957031250004,13.025878906250028],[41.76503906250005,13.183935546874991],[41.362890625,13.499804687500031],[40.938574218750006,13.983105468749997]]]]},"properties":{"name":"Eritrea","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-17.887939453125,27.809570312500057],[-17.984765625000023,27.646386718750023],[-18.160546874999937,27.76147460937503],[-17.887939453125,27.809570312500057]]],[[[-15.400585937499955,28.147363281250023],[-15.436767578124972,27.810693359375023],[-15.71030273437492,27.784082031250023],[-15.809472656249966,27.994482421874977],[-15.682763671874994,28.15405273437497],[-15.400585937499955,28.147363281250023]]],[[[-17.184667968749977,28.02197265624997],[-17.324902343749955,28.11767578125003],[-17.25859375,28.203173828125045],[-17.103759765624943,28.111132812500017],[-17.184667968749977,28.02197265624997]]],[[[-16.33447265624997,28.37993164062499],[-16.41821289062497,28.15141601562496],[-16.65800781249999,28.007177734374977],[-16.905322265625017,28.33959960937503],[-16.12363281249992,28.57597656249996],[-16.33447265624997,28.37993164062499]]],[[[-14.196777343749943,28.169287109375063],[-14.332617187500006,28.056005859374977],[-14.49179687499992,28.100927734374977],[-14.231982421875017,28.21582031250003],[-14.003369140624983,28.706689453125023],[-13.85722656249996,28.73803710937503],[-13.928027343749989,28.25346679687499],[-14.196777343749943,28.169287109375063]]],[[[-17.83427734374999,28.49321289062496],[-18.00078124999999,28.758251953124955],[-17.928808593749977,28.844580078125063],[-17.7265625,28.724462890625006],[-17.83427734374999,28.49321289062496]]],[[[-13.715966796874966,28.911230468750034],[-13.85991210937496,28.869091796874983],[-13.823632812499966,29.013330078124966],[-13.463574218749955,29.237207031250023],[-13.477929687499966,29.00659179687503],[-13.715966796874966,28.911230468750034]]],[[[1.593945312500068,38.672070312499955],[1.40576171875,38.670996093750006],[1.436328125000017,38.768212890624994],[1.593945312500068,38.672070312499955]]],[[[1.445214843750051,38.91870117187503],[1.223339843750068,38.90385742187502],[1.3486328125,39.080810546875],[1.564453125,39.12104492187504],[1.623632812499977,39.03881835937497],[1.445214843750051,38.91870117187503]]],[[[3.145312500000017,39.79008789062499],[3.461816406250023,39.69775390625003],[3.072851562500006,39.30126953124997],[2.799804687500057,39.38505859374999],[2.700585937500023,39.54213867187502],[2.49951171875,39.47788085937498],[2.37001953125008,39.57207031249999],[3.15869140625,39.97050781249999],[3.145312500000017,39.79008789062499]]],[[[4.293652343750011,39.84184570312499],[3.8671875,39.958740234375],[3.853417968750051,40.06303710937502],[4.22578125000004,40.032373046874966],[4.293652343750011,39.84184570312499]]],[[[-1.794042968749949,43.407324218750006],[-1.410693359374932,43.240087890625034],[-1.460839843749937,43.05175781250006],[-1.300048828124943,43.10097656250002],[-0.586425781249943,42.798974609374966],[0.631640625000045,42.689599609374994],[0.696875,42.84511718750005],[1.428320312499977,42.59589843749998],[1.414843750000074,42.54838867187499],[1.448828124999977,42.43745117187504],[1.534082031250051,42.44169921875002],[1.7060546875,42.50332031250005],[1.859765625000051,42.457080078125045],[1.927929687500068,42.42631835937499],[2.032714843750028,42.353515625],[3.21142578125,42.43115234375],[3.248046875,41.94423828125002],[3.0048828125,41.76743164062506],[2.082617187500063,41.287402343750045],[1.032910156250068,41.06206054687496],[0.714648437500074,40.822851562500006],[0.891113281250057,40.72236328125004],[0.59609375000008,40.614501953125],[-0.327001953124949,39.519873046875006],[-0.204931640624949,39.062597656250034],[0.20156250000008,38.75917968750002],[-0.520800781249989,38.317285156249966],[-0.814648437500011,37.76992187500002],[-0.721582031249966,37.63105468749998],[-1.327539062499937,37.561132812500034],[-1.640966796874949,37.38696289062497],[-2.111523437499983,36.77666015624999],[-4.366845703124994,36.71811523437506],[-4.67412109374996,36.506445312500006],[-5.171484374999949,36.423779296874955],[-5.3609375,36.134912109374994],[-5.62548828125,36.02592773437499],[-6.040673828124937,36.18842773437498],[-6.38413085937492,36.63701171874996],[-6.216796875000028,36.91357421875],[-6.396191406249983,36.831640625],[-6.863769531250028,37.27890625],[-7.406152343749937,37.17944335937497],[-7.44394531249992,37.72827148437497],[-6.957568359374932,38.18789062499999],[-7.106396484374983,38.181005859375006],[-7.343017578124943,38.45742187500002],[-6.997949218749994,39.05644531250002],[-7.53569335937496,39.66157226562501],[-7.117675781249972,39.681689453125045],[-6.975390624999932,39.79838867187502],[-6.896093749999949,40.02182617187506],[-7.032617187499966,40.16791992187498],[-6.8101562499999,40.343115234375034],[-6.928466796874972,41.009130859375006],[-6.2125,41.53203125],[-6.542187499999955,41.672509765624994],[-6.61826171874992,41.9423828125],[-7.147119140625023,41.98115234374998],[-7.40361328124996,41.833691406249955],[-8.152490234374937,41.81196289062498],[-8.266064453124983,42.13740234375001],[-8.777148437500017,41.941064453124994],[-8.887207031249943,42.105273437500045],[-8.690917968749943,42.274169921875],[-8.815820312499966,42.285253906250034],[-8.730029296874989,42.411718750000034],[-8.8115234375,42.64033203124998],[-9.033105468750023,42.593847656250006],[-8.927197265624926,42.79858398437497],[-9.235205078124977,42.97690429687498],[-9.178076171874977,43.17402343749998],[-8.248925781249937,43.43940429687498],[-8.256738281249937,43.57988281249999],[-8.004687499999932,43.69438476562496],[-7.503613281249983,43.73994140625001],[-7.060986328124955,43.55395507812503],[-5.846679687499943,43.645068359375045],[-4.52304687499992,43.41572265625004],[-3.604638671874966,43.51948242187504],[-3.045605468749926,43.37158203125],[-2.875048828125017,43.454443359375006],[-2.337109374999926,43.32802734375002],[-1.794042968749949,43.407324218750006]]]]},"properties":{"name":"Spain","childNum":12,"cp":[-2.9366964,40.3438963]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[22.61738281250004,58.62124023437502],[23.323242187500057,58.45083007812502],[22.730273437500045,58.23066406250001],[22.371679687499977,58.217138671875006],[21.996875,57.93134765624998],[22.187695312500068,58.15434570312502],[21.88212890624999,58.262353515624994],[21.862304687500057,58.497167968750034],[22.61738281250004,58.62124023437502]]],[[[23.343554687500017,58.550341796875045],[23.10908203125004,58.65922851562502],[23.332812500000045,58.648583984374994],[23.343554687500017,58.550341796875045]]],[[[22.923730468750023,58.826904296875],[22.54218750000001,58.68999023437499],[22.411035156250023,58.863378906250034],[22.05625,58.94360351562506],[22.6494140625,59.08710937499998],[22.90986328125004,58.99121093749997],[22.923730468750023,58.826904296875]]],[[[28.0125,59.484277343749966],[28.15107421875004,59.374414062499966],[27.434179687500006,58.787255859374994],[27.502441406250057,58.221337890624994],[27.778515625000068,57.87070312500006],[27.542089843750063,57.799414062500006],[27.4,57.66679687499999],[27.35195312500005,57.528125],[26.96601562500001,57.60913085937506],[26.532617187499994,57.53100585937503],[26.29804687500001,57.60107421875],[25.66015625,57.920166015625],[25.27265625000001,58.009375],[25.11103515625004,58.06342773437498],[24.45888671875005,57.907861328124994],[24.3625,57.86616210937501],[24.322558593750074,57.87060546875003],[24.529101562500045,58.35424804687497],[24.114843750000034,58.26611328125006],[23.767578125000057,58.36083984374997],[23.50927734375003,58.65854492187498],[23.680761718750063,58.787158203125074],[23.43203125,58.920654296875],[23.494433593750017,59.19565429687498],[24.083398437500023,59.29189453125005],[24.38037109375003,59.47265625],[25.44375,59.52114257812502],[25.50927734374997,59.63901367187506],[26.974707031250006,59.450634765624955],[28.0125,59.484277343749966]]]]},"properties":{"name":"Estonia","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[38.43144531250002,14.428613281249994],[38.50439453125,14.424414062499991],[38.81201171875,14.482324218749994],[38.995703125,14.586865234374997],[39.02382812500002,14.628222656250003],[39.07421875,14.628222656250003],[39.13544921875001,14.581884765624991],[39.19804687500002,14.479394531249994],[39.531835937500006,14.53671875],[40.22148437500002,14.43115234375],[40.82011718750002,14.111669921874991],[40.938574218750006,13.983105468749997],[41.362890625,13.499804687500003],[41.76503906250002,13.183935546874991],[41.85957031250001,13.02587890625],[41.9521484375,12.88232421875],[42.13427734375,12.771435546874997],[42.225,12.661962890624991],[42.28994140625002,12.570214843749994],[42.378515625,12.46640625],[41.79267578125001,11.68603515625],[41.79824218750002,10.98046875],[42.557714843750006,11.080761718749997],[42.92275390625002,10.999316406249989],[42.65644531250001,10.6],[42.84160156250002,10.203076171874997],[43.181640625,9.879980468749991],[43.482519531250006,9.379492187499991],[43.98378906250002,9.008837890624989],[46.97822265625001,7.9970703125],[47.97822265625001,7.9970703125],[44.940527343750006,4.912011718749994],[43.988867187500006,4.950537109374991],[43.58349609375,4.85498046875],[43.12568359375001,4.644482421874997],[42.85664062500001,4.32421875],[42.02412109375001,4.137939453125],[41.91533203125002,4.031298828124989],[41.88398437500001,3.977734375],[41.73769531250002,3.979052734374989],[41.48193359375,3.96328125],[41.37246093750002,3.946191406249994],[41.22089843750001,3.943554687499997],[41.02080078125002,4.057470703124991],[40.765234375,4.27304687499999],[39.84218750000002,3.851464843749994],[39.79033203125002,3.754248046874991],[39.65751953125002,3.577832031249997],[39.49443359375002,3.456103515624989],[38.608007812500006,3.60009765625],[38.45156250000002,3.604833984374991],[38.22529296875001,3.618994140624991],[38.08613281250001,3.64882812499999],[37.15458984375002,4.254541015624994],[36.90556640625002,4.411474609374991],[36.02197265625,4.468115234374991],[35.76308593750002,4.808007812499994],[35.75615234375002,4.950488281249989],[35.779296875,5.105566406249991],[35.80029296875,5.156933593749997],[35.74501953125002,5.343994140625],[35.325292968750006,5.364892578124994],[35.2646484375,5.412060546874997],[35.26386718750001,5.457910156249994],[35.26835937500002,5.492285156249991],[34.98359375000001,5.858300781249994],[34.71064453125001,6.660302734374994],[34.06425781250002,7.225732421874994],[33.902441406250006,7.509521484375],[32.99892578125002,7.899511718749991],[33.28105468750002,8.437255859375],[33.95332031250001,8.443505859374994],[34.07275390625,8.545263671874991],[34.078125,9.461523437499991],[34.31123046875001,10.190869140624997],[34.34394531250001,10.658642578124997],[34.571875,10.880175781249989],[34.77128906250002,10.746191406249991],[34.93144531250002,10.864794921874989],[35.1123046875,11.816552734374994],[35.67021484375002,12.623730468749997],[36.12519531250001,12.75703125],[36.52431640625002,14.2568359375],[36.54238281250002,14.25820312499999],[36.67910156250002,14.307568359374997],[36.81191406250002,14.315039062499991],[37.024511718750006,14.27197265625],[37.25722656250002,14.453759765624994],[37.50722656250002,14.156396484374994],[37.54677734375002,14.143847656250003],[37.57119140625002,14.149072265624994],[37.6484375,14.322558593750003],[37.70839843750002,14.457226562499997],[37.8203125,14.70849609375],[37.88417968750002,14.852294921875],[37.943457031250006,14.810546875],[38.002539062500006,14.737109375],[38.22148437500002,14.649658203125],[38.43144531250002,14.428613281249994]]]},"properties":{"name":"Ethiopia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[22.17509765624999,60.370751953124994],[22.41552734375003,60.30336914062505],[22.36054687500004,60.165576171875045],[22.07714843750003,60.286328124999955],[22.17509765624999,60.370751953124994]]],[[[21.450878906250068,60.529589843750045],[21.3,60.47978515625002],[21.224707031250006,60.62060546875003],[21.450878906250068,60.529589843750045]]],[[[21.2177734375,63.241308593750034],[21.415625,63.19736328125006],[21.25341796875,63.152001953124966],[21.08388671875008,63.277539062499955],[21.2177734375,63.241308593750034]]],[[[24.848242187500034,64.99101562499999],[24.576562500000023,65.04287109375],[24.970605468750023,65.05532226562502],[24.848242187500034,64.99101562499999]]],[[[28.96582031250003,69.02197265625],[28.414062500000057,68.90415039062506],[28.77285156250005,68.84003906249995],[28.470703125000057,68.48837890625],[28.685156250000034,68.189794921875],[29.343847656250006,68.06186523437506],[29.988085937500017,67.66826171874999],[29.066210937500045,66.89174804687497],[30.102734375000097,65.72626953125004],[29.715917968750063,65.62456054687502],[29.608007812500006,65.248681640625],[29.826953125000017,65.14506835937502],[29.60419921875004,64.968408203125],[30.072851562500063,64.76503906250005],[30.04189453125005,64.44335937499997],[30.513769531250006,64.2],[30.50390625000003,64.02060546875],[29.991503906250074,63.73515625000002],[31.180859375000097,63.208300781250074],[31.533984375000017,62.885400390624994],[31.18671875000004,62.48139648437504],[29.69013671875004,61.54609375000001],[27.797656250000074,60.53613281250003],[26.53466796874997,60.412890625000074],[26.56933593750003,60.62456054687502],[26.377734375000074,60.42407226562503],[25.955957031250023,60.474218750000034],[26.03583984375004,60.34150390625001],[25.75800781250004,60.26752929687504],[25.65644531250004,60.33320312499998],[24.44560546874999,60.021289062500045],[23.46357421875004,59.986230468749994],[23.021289062500074,59.81601562500006],[23.19843750000001,60.02182617187498],[22.911718750000063,60.20971679687497],[22.749804687500017,60.057275390624994],[22.462695312500045,60.029199218749966],[22.5849609375,60.380566406249955],[21.436035156250057,60.596386718749955],[21.605957031250057,61.59155273437503],[21.255957031250063,61.98964843750005],[21.143847656250045,62.73999023437506],[21.650976562500063,63.039306640625],[21.545117187499983,63.204296874999955],[22.31972656250005,63.310449218749994],[22.532324218750034,63.647851562499994],[23.598925781250074,64.04091796874997],[24.557910156250045,64.801025390625],[25.288183593750063,64.8603515625],[25.34785156250004,65.47924804687497],[24.674902343750006,65.67070312499999],[24.628027343750034,65.85917968750002],[24.15546875000004,65.80527343750006],[23.700292968750034,66.25263671874998],[23.988574218750045,66.81054687500003],[23.64150390625005,67.12939453124997],[23.733593750000068,67.42290039062499],[23.454882812500045,67.46025390625007],[23.63886718750004,67.95439453125002],[22.854101562500034,68.36733398437502],[21.99746093750005,68.52060546874998],[20.622167968750006,69.036865234375],[21.065722656250017,69.04174804687503],[21.06611328125001,69.21411132812497],[21.59375,69.273583984375],[22.410937500000074,68.719873046875],[23.324023437500017,68.64897460937502],[23.85400390625,68.80590820312503],[24.94140625000003,68.59326171875006],[25.748339843750017,68.99013671875],[26.07246093750004,69.69155273437497],[26.525390625000057,69.91503906250003],[27.127539062500063,69.90649414062497],[27.747851562500045,70.06484375],[29.14160156250003,69.67143554687505],[29.33339843750005,69.47299804687503],[28.846289062500006,69.17690429687502],[28.96582031250003,69.02197265625]]]]},"properties":{"name":"Finland","childNum":5}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[178.48789062500018,-18.97412109375],[177.95869140624998,-19.121582031250014],[178.33427734375013,-18.93447265625001],[178.48789062500018,-18.97412109375]]],[[[179.34931640625015,-18.10234375000003],[179.25351562500018,-18.030566406249974],[179.30644531250013,-17.944042968750026],[179.34931640625015,-18.10234375000003]]],[[[178.28017578124994,-17.37197265625001],[178.59160156249996,-17.651464843750006],[178.66767578125004,-18.080859375],[177.95546875000005,-18.264062500000023],[177.32138671875,-18.077539062500037],[177.26396484375007,-17.86347656250004],[177.5044921875,-17.539550781250043],[177.81796875000012,-17.38847656249999],[178.28017578124994,-17.37197265625001]]],[[[180,-16.96308593750001],[179.89697265625003,-16.96406250000004],[180,-16.785742187500034],[180,-16.96308593750001]]],[[[-179.97490234374996,-16.92480468750003],[-180,-16.96298828124999],[-180,-16.907812500000034],[-180,-16.82431640624999],[-180,-16.78554687499999],[-179.86098632812502,-16.68828124999999],[-179.97490234374996,-16.92480468750003]]],[[[-179.92944335937503,-16.502832031250037],[-179.999951171875,-16.540039062499986],[-179.900927734375,-16.431542968749994],[-179.92944335937503,-16.502832031250037]]],[[[179.99921875000004,-16.168554687499977],[179.56416015625004,-16.636914062499997],[179.56816406249996,-16.747460937499966],[179.93037109375004,-16.51943359375005],[179.9279296875001,-16.74443359374996],[179.41933593750005,-16.80654296875001],[179.20234375000004,-16.71269531249999],[179.00683593750003,-16.90019531249999],[178.70664062500018,-16.97617187500002],[178.4974609375,-16.78789062500003],[178.58359375000012,-16.621875],[178.80507812499994,-16.631445312500034],[179.55175781250003,-16.249902343750023],[180,-16.15292968749999],[179.99921875000004,-16.168554687499977]]]]},"properties":{"name":"Fiji","childNum":7}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-61.01875,-51.7857421875],[-60.87597656250003,-51.79423828125004],[-60.94755859374996,-51.94628906250002],[-61.14501953125003,-51.83945312500001],[-61.01875,-51.7857421875]]],[[[-60.28623046874995,-51.461914062500014],[-59.38759765625002,-51.35996093750003],[-59.26806640625,-51.42753906250003],[-59.92138671874997,-51.969531250000045],[-60.246337890625,-51.98642578125003],[-60.35346679687498,-52.13994140625004],[-60.686376953125034,-52.18837890624996],[-60.96142578125003,-52.05732421874999],[-60.23847656249998,-51.771972656250036],[-60.58251953125,-51.71269531250004],[-60.24516601562493,-51.638867187500004],[-60.56845703124998,-51.357812499999945],[-60.28623046874995,-51.461914062500014]]],[[[-60.11171875000002,-51.39589843749998],[-60.275341796874955,-51.28056640625002],[-60.06982421875,-51.307910156249996],[-60.11171875000002,-51.39589843749998]]],[[[-58.85019531249995,-51.26992187499998],[-58.42583007812502,-51.32421875000003],[-58.508935546874994,-51.48359375],[-58.271582031250034,-51.57470703124999],[-58.25922851562501,-51.417089843750034],[-57.976513671874955,-51.384375],[-57.80849609375002,-51.51796875],[-57.96044921874997,-51.58320312500003],[-57.79179687499999,-51.63613281249998],[-58.68349609375002,-51.93623046875001],[-58.65278320312498,-52.09921875],[-59.19584960937496,-52.01767578125],[-59.06801757812502,-52.17304687500003],[-59.341503906249955,-52.19599609375],[-59.395654296874966,-52.308007812499994],[-59.64873046875002,-52.134375],[-59.57080078124994,-51.92539062500003],[-59.05952148437498,-51.685449218749994],[-59.09663085937498,-51.49140624999998],[-58.85019531249995,-51.26992187499998]]]]},"properties":{"name":"Falkland Is.","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[55.79736328125003,-21.33935546875003],[55.36269531250005,-21.27363281250004],[55.23281250000005,-21.05839843749999],[55.311328125000074,-20.90410156249999],[55.661914062500074,-20.90625],[55.8390625000001,-21.13857421874998],[55.79736328125003,-21.33935546875003]]],[[[45.180273437500006,-12.97675781250004],[45.069433593750006,-12.895605468750034],[45.09238281250006,-12.653027343749997],[45.22314453124997,-12.752148437500026],[45.180273437500006,-12.97675781250004]]],[[[-51.65253906249998,4.061279296874972],[-52.327880859375,3.18173828125002],[-52.58300781250003,2.528906249999977],[-52.90346679687502,2.211523437499977],[-53.76777343749998,2.354833984375048],[-54.13007812499998,2.121044921875026],[-54.43310546875,2.207519531250057],[-54.51508789062498,2.245458984374963],[-54.55048828125001,2.293066406249991],[-54.59194335937502,2.313769531250031],[-54.61625976562499,2.326757812500006],[-54.60473632812497,2.335791015624991],[-54.56840820312502,2.342578125000031],[-54.53593749999999,2.343310546875003],[-54.48554687500001,2.416113281250006],[-54.402001953124966,2.46152343750002],[-54.25673828125002,2.713720703124977],[-54.19550781249998,2.817871093750057],[-54.17070312499999,2.993603515624969],[-54.203125,3.138183593750028],[-54.18803710937499,3.178759765625031],[-54.063183593749955,3.353320312499989],[-54.00957031249993,3.448535156250017],[-54.03422851562499,3.62939453125],[-54.350732421874994,4.054101562500023],[-54.47968749999998,4.836523437499991],[-53.91992187499997,5.768994140624983],[-52.899316406249966,5.425048828124986],[-52.29052734375003,4.942187500000031],[-52.324609374999966,4.770898437500037],[-52.21997070312494,4.862792968750014],[-52.05810546875003,4.717382812499963],[-52.00292968749997,4.352294921875014],[-51.82753906250002,4.635693359375026],[-51.65253906249998,4.061279296874972]]],[[[-60.826269531250006,14.494482421874991],[-61.063720703125,14.467089843750017],[-61.01132812499998,14.601904296875034],[-61.21333007812501,14.848583984375011],[-60.927148437499966,14.755175781249989],[-60.826269531250006,14.494482421874991]]],[[[-61.23046875000003,15.889941406250074],[-61.310742187499955,15.894677734374966],[-61.25,16.006298828124983],[-61.23046875000003,15.889941406250074]]],[[[-61.58955078125001,16.006933593750006],[-61.759423828124966,16.062060546875045],[-61.74804687499997,16.355273437500017],[-61.55234374999998,16.270898437499966],[-61.58955078125001,16.006933593750006]]],[[[-61.3271484375,16.230419921874983],[-61.522167968749955,16.22802734375003],[-61.47119140624994,16.506640625000045],[-61.17260742187497,16.25610351562497],[-61.3271484375,16.230419921874983]]],[[[9.480371093750023,42.80541992187503],[9.550683593750051,42.12973632812506],[9.186132812500034,41.38491210937502],[8.80751953125008,41.58837890625],[8.886816406249977,41.70068359375003],[8.621875,41.93071289062502],[8.700976562500045,42.09560546875002],[8.565625,42.35771484374996],[8.81484375000008,42.60791015625003],[9.313378906250023,42.71318359374999],[9.363183593750051,43.01738281249996],[9.480371093750023,42.80541992187503]]],[[[-1.17832031249992,45.904052734375],[-1.213574218750011,45.81660156250004],[-1.388671874999972,46.05039062500006],[-1.17832031249992,45.904052734375]]],[[[5.789746093749983,49.53828125000001],[5.823437500000011,49.50507812499998],[5.9013671875,49.48974609374997],[5.928906250000011,49.47753906249997],[5.959472656250028,49.45463867187502],[6.01142578125004,49.44545898437502],[6.074121093750023,49.45463867187502],[6.119921875000017,49.485205078125034],[6.181054687500051,49.498925781249966],[6.344335937500006,49.45273437499998],[6.735449218750006,49.16059570312498],[7.450585937500051,49.152197265625034],[8.134863281250006,48.97358398437498],[7.616601562500023,48.15678710937502],[7.615625,47.59272460937504],[7.343164062499994,47.43310546875003],[7.136035156249989,47.489843750000034],[6.968359375000034,47.453222656250034],[6.900390625000028,47.39423828125001],[7.000585937500034,47.339453125000034],[7.000585937500034,47.32250976562506],[6.978515625000057,47.30205078124996],[6.95205078125008,47.26718750000006],[6.820703125000051,47.163183593750006],[6.688085937500034,47.05825195312505],[6.66689453125008,47.026513671874966],[6.624804687500017,47.00434570312498],[6.45625,46.948339843750034],[6.438646763392874,46.774418247767855],[6.129687500000045,46.56699218750006],[6.118111049107182,46.447459542410726],[6.095898437500011,46.279394531250006],[5.970019531250045,46.214697265625034],[5.971484375000074,46.151220703125006],[6.006640625000045,46.14233398437506],[6.086621093750068,46.14702148437502],[6.19941406250004,46.19306640624998],[6.234667968750045,46.332617187500006],[6.321875,46.39370117187502],[6.428906250000011,46.43051757812506],[6.578222656250034,46.437353515625034],[6.758105468750017,46.41577148437497],[6.772070312500006,46.16513671874998],[6.897265625000017,46.05175781249997],[6.953710937500063,46.017138671875045],[7.00390625,45.95883789062506],[7.021093750000034,45.92578124999997],[6.790917968750023,45.740869140624966],[7.146386718750051,45.381738281249994],[7.07832031250004,45.23994140624998],[6.634765625000028,45.06816406249996],[6.99267578125,44.82729492187502],[6.900195312499989,44.33574218749996],[7.318554687500068,44.13798828125002],[7.637207031250057,44.16484375],[7.4931640625,43.767138671875045],[6.570214843750023,43.199072265625034],[6.115917968750011,43.07236328124998],[5.406542968750074,43.228515625],[5.05976562500004,43.44453125000004],[4.712109375000011,43.373291015625],[3.910839843750011,43.563085937500034],[3.258886718750063,43.193212890625006],[3.051757812500057,42.915136718750006],[3.21142578125,42.43115234375],[2.032714843750028,42.353515625],[1.927929687500068,42.42631835937499],[1.859765625000051,42.457080078125045],[1.7060546875,42.50332031250005],[1.709863281250051,42.604443359374955],[1.568164062500045,42.63500976562506],[1.501367187500023,42.64272460937502],[1.428320312499977,42.59589843749998],[0.696875,42.84511718750005],[0.631640625000045,42.689599609374994],[-0.586425781249943,42.798974609374966],[-1.300048828124943,43.10097656250002],[-1.460839843749937,43.05175781250006],[-1.410693359374932,43.240087890625034],[-1.794042968749949,43.407324218750006],[-1.484863281249943,43.56376953124999],[-1.245507812499937,44.55986328124999],[-1.07695312499996,44.68984375],[-1.152880859374989,44.764013671875006],[-1.245214843749977,44.66669921874998],[-1.081005859374983,45.532421874999955],[-0.548486328124966,45.00058593750006],[-0.790771484375028,45.46801757812497],[-1.195996093749983,45.714453125],[-1.03173828125,45.741064453125006],[-1.14628906249996,46.311376953125034],[-1.786523437499937,46.51484375000001],[-2.059375,46.81030273437497],[-2.01889648437492,47.03764648437502],[-2.197070312499989,47.16293945312506],[-2.027587890625028,47.27358398437502],[-1.742529296874949,47.21596679687502],[-1.97539062499996,47.31069335937505],[-2.503125,47.31206054687496],[-2.427685546874983,47.47089843749998],[-2.770312499999989,47.513867187499955],[-2.787207031249949,47.62553710937496],[-4.312109374999949,47.82290039062502],[-4.678808593749949,48.03950195312501],[-4.32944335937492,48.169970703125045],[-4.577148437499943,48.2900390625],[-4.241406249999926,48.30366210937501],[-4.719384765624966,48.363134765625034],[-4.7625,48.45024414062502],[-4.531201171874983,48.61997070312506],[-3.231445312499972,48.84082031250003],[-2.692333984374983,48.53681640624998],[-2.446191406249937,48.64829101562506],[-2.00371093749996,48.58208007812499],[-1.905712890624955,48.69711914062506],[-1.376464843749972,48.65258789062503],[-1.565478515624932,48.805517578125034],[-1.583105468749977,49.20239257812506],[-1.856445312499972,49.68378906249998],[-1.258642578124949,49.68017578125006],[-1.138525390624977,49.38789062500001],[-0.163476562499937,49.296777343749994],[0.41689453125008,49.448388671874994],[0.129394531250028,49.508447265624966],[0.186718749999983,49.703027343749994],[1.245507812500051,49.99824218750001],[1.5927734375,50.25219726562506],[1.672265625000023,50.885009765625],[2.52490234375,51.097119140624955],[2.759375,50.750634765624994],[3.10683593750008,50.779443359374994],[3.27333984375008,50.53154296875002],[3.595410156250068,50.47734374999999],[3.689355468750023,50.30605468750002],[4.174609375000017,50.24648437500005],[4.149316406250023,49.971582031249994],[4.545019531250063,49.96025390624999],[4.818652343750045,50.153173828125034],[4.867578125000051,49.78813476562502],[5.50732421875,49.51088867187502],[5.789746093749983,49.53828125000001]]]]},"properties":{"name":"France","childNum":10,"cp":[2.8719426,46.8222422]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-7.186865234374949,62.139306640624966],[-7.116796874999977,62.046826171874955],[-7.379101562499926,62.07480468749998],[-7.186865234374949,62.139306640624966]]],[[[-6.631054687499955,62.22788085937498],[-6.655810546874932,62.09360351562498],[-6.840527343749983,62.119287109374994],[-6.725195312499949,61.95146484374999],[-7.17216796874996,62.28559570312501],[-6.631054687499955,62.22788085937498]]],[[[-6.406054687499932,62.258642578125034],[-6.544140624999926,62.20561523437499],[-6.554589843749994,62.35566406250001],[-6.406054687499932,62.258642578125034]]]]},"properties":{"name":"Faeroe Is.","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[158.31484375,6.813671875],[158.18339843750002,6.801269531250057],[158.13476562499997,6.944824218749986],[158.29462890625004,6.951074218750023],[158.31484375,6.813671875]]],[[[138.14267578125006,9.50068359375004],[138.06708984375004,9.419042968750006],[138.18583984375007,9.593310546874989],[138.14267578125006,9.50068359375004]]]]},"properties":{"name":"Micronesia","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[13.293554687500006,2.161572265624997],[13.172167968750017,1.78857421875],[13.21630859375,1.2484375],[13.851367187500017,1.41875],[14.180859375000011,1.370214843749991],[14.429882812500011,0.901464843749991],[14.32421875,0.62421875],[13.949609375000023,0.353808593749989],[13.860058593750011,-0.203320312500011],[14.47412109375,-0.573437500000011],[14.383984375000011,-1.890039062500009],[14.162890625000017,-2.217578125],[14.199804687500006,-2.354199218750011],[13.993847656250011,-2.490625],[13.886914062500011,-2.465429687500006],[13.733789062500023,-2.138476562500003],[13.464941406250006,-2.395410156250009],[12.991992187500017,-2.313378906250009],[12.793554687500006,-1.931835937500011],[12.590429687500006,-1.826855468750011],[12.43212890625,-1.928906250000011],[12.446386718750006,-2.329980468750009],[12.064453125,-2.41259765625],[11.60546875,-2.342578125],[11.537792968750011,-2.83671875],[11.760156250000023,-2.983105468750011],[11.715429687500006,-3.176953125000011],[11.934179687500006,-3.318554687500011],[11.8798828125,-3.665917968750009],[11.685742187500011,-3.68203125],[11.504296875000023,-3.5203125],[11.234472656250006,-3.690820312500009],[11.130175781250017,-3.916308593750003],[10.34765625,-3.013085937500009],[9.722070312500023,-2.467578125],[10.06201171875,-2.549902343750006],[9.624609375,-2.367089843750009],[9.298925781250006,-1.903027343750011],[9.483203125000017,-1.894628906250006],[9.265625,-1.825097656250009],[9.036328125000011,-1.308886718750003],[9.31884765625,-1.632031250000011],[9.501074218750006,-1.55517578125],[9.295800781250023,-1.515234375],[9.3466796875,-1.325],[9.203808593750011,-1.382421875],[9.064648437500011,-1.29833984375],[8.703125,-0.591015625000011],[8.946386718750006,-0.688769531250003],[9.296679687500017,-0.351269531250011],[9.354882812500023,0.343603515624991],[9.468164062500023,0.15976562499999],[9.796777343750023,0.044238281249989],[10.00146484375,0.194970703124994],[9.546484375,0.295947265624989],[9.324804687500006,0.552099609374991],[9.495312500000011,0.664843749999989],[9.617968750000017,0.576513671874991],[9.5908203125,1.031982421875],[9.636132812500023,1.046679687499989],[9.676464843750011,1.07470703125],[9.70458984375,1.079980468749994],[9.760546875000017,1.07470703125],[9.788671875,1.025683593749989],[9.803906250000011,0.998730468749997],[9.90673828125,0.960107421874994],[11.335351562500023,0.999707031249997],[11.332324218750017,1.528369140624989],[11.328710937500006,2.167431640624997],[11.348437500000017,2.299707031249994],[11.558984375000023,2.302197265624997],[13.2203125,2.256445312499991],[13.293554687500006,2.161572265624997]]]},"properties":{"name":"Gabon","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-1.065576171874966,50.69023437500002],[-1.25146484375,50.58881835937498],[-1.563427734374955,50.666113281250006],[-1.31279296874996,50.77348632812502],[-1.065576171874966,50.69023437500002]]],[[[-4.196777343749972,53.321435546874966],[-4.04936523437496,53.30576171874998],[-4.373046875,53.13417968750002],[-4.56787109375,53.386474609375],[-4.315087890625023,53.41723632812503],[-4.196777343749972,53.321435546874966]]],[[[-6.218017578125,54.08872070312506],[-6.649804687499937,54.05864257812496],[-7.007714843749937,54.40668945312501],[-7.324511718750017,54.13344726562502],[-7.606542968750006,54.14384765625002],[-8.118261718749977,54.41425781250004],[-7.75439453125,54.59492187499998],[-7.910595703124955,54.698339843750006],[-7.55039062499992,54.767968749999966],[-7.218652343749937,55.09199218749998],[-6.475048828124955,55.24101562499999],[-6.035791015624994,55.14453125000003],[-5.71684570312496,54.817480468750034],[-5.878613281249955,54.64130859375001],[-5.582519531249943,54.66342773437498],[-5.470410156249926,54.500195312499955],[-5.671093749999955,54.54975585937501],[-5.60678710937492,54.272558593750034],[-6.019042968749972,54.05126953124997],[-6.218017578125,54.08872070312506]]],[[[-5.105419921875011,55.448828125000034],[-5.331494140624955,55.481054687500034],[-5.318115234375,55.709179687499955],[-5.105419921875011,55.448828125000034]]],[[[-6.128906249999972,55.93056640625002],[-6.055322265624994,55.69531249999997],[-6.305078124999966,55.60693359375],[-6.286425781249989,55.77250976562499],[-6.491357421874994,55.697314453125045],[-6.462841796874955,55.808251953124994],[-6.128906249999972,55.93056640625002]]],[[[-5.970068359374949,55.814550781250034],[-6.071972656250011,55.893115234375045],[-5.72514648437496,56.118554687499966],[-5.970068359374949,55.814550781250034]]],[[[-5.77788085937496,56.344335937500034],[-6.313427734374983,56.29365234375001],[-6.138867187499955,56.490625],[-6.286328124999983,56.61186523437502],[-6.102734374999955,56.645654296874966],[-5.760839843749949,56.49067382812501],[-5.77788085937496,56.344335937500034]]],[[[-7.249853515624977,57.115332031250006],[-7.410546874999937,57.38110351562506],[-7.26713867187496,57.37177734375001],[-7.249853515624977,57.115332031250006]]],[[[-6.144726562499983,57.50498046874998],[-6.135546874999989,57.31425781250002],[-5.672460937499977,57.252685546875],[-5.94907226562492,57.045166015625],[-6.034375,57.20122070312499],[-6.322705078124926,57.20249023437498],[-6.761132812499994,57.4423828125],[-6.305957031249989,57.67197265624998],[-6.144726562499983,57.50498046874998]]],[[[-7.205566406250028,57.682958984375006],[-7.182617187499972,57.53330078125006],[-7.514746093749949,57.60195312500002],[-7.205566406250028,57.682958984375006]]],[[[-6.198681640624983,58.36328125000003],[-6.554589843749994,58.092871093750006],[-6.425195312499937,58.02128906249999],[-6.983105468749983,57.75],[-7.083447265624926,57.81376953124999],[-6.856835937499937,57.92353515624998],[-7.085253906249932,58.18217773437499],[-6.726464843749937,58.189404296874955],[-6.776464843750006,58.30151367187497],[-6.237451171874966,58.50283203125005],[-6.198681640624983,58.36328125000003]]],[[[-3.109667968749932,58.515478515625034],[-3.212353515624983,58.32124023437501],[-3.99003906249996,57.95903320312502],[-4.035595703124926,57.85200195312498],[-3.857128906249983,57.81855468750001],[-4.134521484375,57.57773437500006],[-3.402783203124955,57.708251953125],[-2.074072265624977,57.70239257812506],[-1.780664062499994,57.474023437499966],[-2.592675781249937,56.56157226562499],[-3.309960937499966,56.36347656250004],[-2.885156249999937,56.397509765625045],[-2.674267578124955,56.25341796875],[-3.362255859374955,56.02763671875002],[-3.789062499999972,56.09521484375],[-3.048730468749937,55.951953125000045],[-2.599316406249955,56.02729492187501],[-2.14707031249992,55.90297851562502],[-1.655371093749949,55.57036132812502],[-1.232421874999943,54.703710937500034],[-0.084375,54.118066406249994],[-0.20556640625,54.021728515625],[0.115332031250006,53.609277343749994],[-0.270019531249972,53.73676757812504],[-0.659912109375,53.72402343750002],[-0.293701171875,53.69233398437504],[0.270996093750028,53.33549804687499],[0.355761718750045,53.15996093750002],[0.0458984375,52.90561523437498],[0.279785156250028,52.80869140625006],[0.55878906250004,52.96694335937505],[1.05556640625008,52.95898437500003],[1.656738281249972,52.753710937500045],[1.74658203125,52.46899414062503],[1.59140625,52.11977539062502],[1.232421875000057,51.97124023437496],[1.188476562500057,51.803369140624966],[0.752246093750017,51.729589843750034],[0.890917968750017,51.571435546874966],[0.42451171875004,51.465625],[1.414941406250023,51.36328125],[1.397558593750034,51.18203125000002],[0.960156250000011,50.92587890624998],[0.299707031249994,50.775976562500006],[-0.785253906249949,50.76542968749999],[-1.416455078124955,50.896875],[-1.334472656249943,50.82080078124997],[-1.516748046874937,50.747460937499966],[-2.031054687499932,50.72539062499999],[-2.035839843749926,50.603076171875045],[-2.999414062499937,50.71660156249999],[-3.40458984374996,50.63242187499998],[-3.679785156250006,50.239941406249955],[-4.194580078124972,50.39331054687503],[-4.727978515624926,50.29047851562504],[-5.11850585937492,50.038330078125],[-5.622119140624932,50.05068359375002],[-4.188183593749926,51.18852539062502],[-3.135986328124972,51.20502929687501],[-2.433056640624926,51.74072265625],[-3.293115234374994,51.390429687500045],[-3.890771484374994,51.591650390625006],[-4.234570312499955,51.56909179687503],[-4.091015624999926,51.65991210937506],[-4.38627929687496,51.74106445312506],[-4.902294921874926,51.626269531250045],[-5.168359374999937,51.74072265625],[-5.183349609374972,51.94965820312501],[-4.217724609374983,52.277441406250006],[-3.980322265624949,52.54174804687503],[-4.101464843750023,52.915478515624955],[-4.683056640624926,52.80615234374997],[-4.268554687499943,53.14453125],[-3.427734374999972,53.34067382812498],[-3.097558593749937,53.260302734375045],[-3.064746093749932,53.426855468750034],[-2.74951171875,53.310205078124994],[-3.064599609374994,53.512841796874966],[-2.84648437499996,54.135302734375045],[-3.165966796874955,54.12792968750006],[-3.56938476562496,54.46757812499996],[-3.464599609374943,54.77309570312505],[-3.036230468749977,54.95307617187501],[-3.550439453124937,54.94741210937502],[-3.957910156249994,54.780957031249955],[-4.818066406249983,54.84614257812501],[-4.911230468749949,54.68945312500006],[-5.032324218749949,54.76137695312505],[-5.172705078124949,54.98588867187496],[-4.676757812499972,55.50131835937498],[-4.871679687499977,55.87392578125005],[-4.58408203124992,55.93867187500001],[-4.844091796874949,56.05117187499999],[-4.80029296875,56.158349609374994],[-5.228222656249983,55.886328125],[-5.084326171874977,56.197460937499955],[-5.41044921874996,55.995361328125],[-5.55644531249996,55.389599609374955],[-5.730664062499926,55.33413085937502],[-5.504492187499949,55.80239257812502],[-5.609570312499955,56.055273437500034],[-5.188378906249937,56.75805664062503],[-5.652441406249977,56.531982421875],[-6.133691406249966,56.706689453124966],[-5.730615234374994,56.853076171875045],[-5.86142578124992,56.902685546875006],[-5.561914062499994,57.23271484375002],[-5.794921874999972,57.37880859375002],[-5.581787109374972,57.546777343749966],[-5.744921874999989,57.668310546875034],[-5.608349609374955,57.88134765625],[-5.157226562499972,57.88134765625],[-5.413183593750006,58.06972656250002],[-5.338281250000023,58.23872070312498],[-5.008300781250028,58.262646484374955],[-5.016748046874966,58.566552734374966],[-4.433251953124937,58.51284179687505],[-3.25913085937492,58.65],[-3.053076171874949,58.63481445312502],[-3.109667968749932,58.515478515625034]]],[[[-3.057421874999932,59.02963867187498],[-2.793017578124989,58.906933593749955],[-3.331640624999949,58.97124023437499],[-3.31035156249996,59.13081054687498],[-3.057421874999932,59.02963867187498]]],[[[-1.30810546875,60.5375],[-1.052441406249955,60.44448242187502],[-1.299462890624994,59.87866210937503],[-1.290917968749937,60.153466796874966],[-1.663769531249983,60.282519531250074],[-1.374609374999949,60.33291015625002],[-1.571777343749972,60.494433593750074],[-1.363964843750011,60.60957031249998],[-1.30810546875,60.5375]]]]},"properties":{"name":"United Kingdom","childNum":14,"cp":[-2.5830348,54.4598409]}},{"geometry":{"type":"Polygon","coordinates":[[[46.30546875000002,41.507714843749994],[46.61894531250002,41.34375],[46.67255859375001,41.28681640625],[46.66240234375002,41.245507812499994],[46.62636718750002,41.15966796875],[46.534375,41.08857421875],[46.43095703125002,41.077050781249994],[46.086523437500006,41.183837890625],[45.28095703125001,41.449560546875],[45.21718750000002,41.423193359375],[45.00136718750002,41.290966796875],[44.97587890625002,41.277490234374994],[44.81132812500002,41.259375],[44.077246093750006,41.182519531249994],[43.43339843750002,41.155517578125],[43.20546875000002,41.199169921875],[43.15283203125,41.23642578125],[43.14101562500002,41.26484375],[43.17128906250002,41.287939453125],[43.149023437500006,41.30712890625],[43.05712890625,41.352832031249996],[42.90673828125,41.466845703124996],[42.82167968750002,41.4923828125],[42.78789062500002,41.563720703125],[42.75410156250001,41.57890625],[42.68242187500002,41.585742187499996],[42.60683593750002,41.57880859375],[42.590429687500006,41.57070312499999],[42.5673828125,41.55927734375],[42.46640625,41.43984375],[41.92578125,41.495654296874996],[41.82353515625002,41.432373046875],[41.779394531250006,41.44052734375],[41.701757812500006,41.471582031249994],[41.57656250000002,41.497314453125],[41.51005859375002,41.517480468749994],[41.701757812500006,41.705419921875],[41.76298828125002,41.970019531249996],[41.48876953125,42.659326171874994],[40.83662109375001,43.0634765625],[40.46210937500001,43.145703125],[39.97832031250002,43.419824218749994],[40.02373046875002,43.48486328125],[40.084570312500006,43.553125],[40.648046875,43.53388671875],[40.941992187500006,43.41806640625],[41.083105468750006,43.374462890625],[41.35820312500002,43.333398437499994],[41.46074218750002,43.276318359375],[41.58056640625,43.21923828125],[42.76064453125002,43.169580078124994],[42.99160156250002,43.09150390625],[43.00019531250001,43.049658203125],[43.08916015625002,42.9890625],[43.55781250000001,42.844482421875],[43.623046875,42.80771484375],[43.78261718750002,42.747021484375],[43.79873046875002,42.727783203125],[43.79541015625,42.702978515625],[43.74990234375002,42.657519531249996],[43.738378906250006,42.616992187499996],[43.759863281250006,42.59384765625],[43.82597656250002,42.571533203125],[43.95742187500002,42.566552734374994],[44.00468750000002,42.595605468749994],[44.10273437500001,42.616357421874994],[44.32949218750002,42.70351562499999],[44.505859375,42.7486328125],[44.77109375,42.616796875],[44.85048828125002,42.746826171875],[44.87099609375002,42.756396484374996],[44.943359375,42.730273437499996],[45.07158203125002,42.694140625],[45.160253906250006,42.675],[45.34375,42.52978515625],[45.56289062500002,42.5357421875],[45.70527343750001,42.498095703124996],[45.7275390625,42.475048828125],[45.63427734375,42.234716796875],[45.63857421875002,42.205078125],[46.21269531250002,41.989892578124994],[46.42988281250001,41.890966796875],[46.18427734375001,41.7021484375],[46.30546875000002,41.507714843749994]]]},"properties":{"name":"Georgia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-0.068603515625,11.115625],[0.009423828125023,11.02099609375],[-0.08632812499999,10.673046875],[0.380859375,10.291845703124991],[0.264550781250023,9.644726562499997],[0.342578125000017,9.604150390624994],[0.2333984375,9.463525390624994],[0.525683593750017,9.398486328124989],[0.48876953125,8.851464843749994],[0.37255859375,8.75927734375],[0.686328125000017,8.354882812499994],[0.5,7.546875],[0.634765625,7.353662109374994],[0.525585937500011,6.850927734374991],[0.736914062500006,6.452587890624997],[1.187207031250011,6.089404296874989],[0.94970703125,5.810253906249997],[0.259667968750023,5.75732421875],[-2.001855468749994,4.762451171875],[-3.114013671875,5.088671874999989],[-2.815673828125,5.153027343749997],[-2.754980468749977,5.432519531249994],[-2.793652343749983,5.60009765625],[-2.998291015625,5.71132812499999],[-3.227148437499977,6.749121093749991],[-2.959082031249977,7.454541015624997],[-2.789746093749983,7.931933593749989],[-2.668847656249994,8.022216796875],[-2.613378906249977,8.046679687499989],[-2.600976562499994,8.082226562499997],[-2.619970703124977,8.12109375],[-2.61171875,8.147558593749991],[-2.538281249999983,8.171630859375],[-2.505859375,8.208740234375],[-2.600390624999989,8.800439453124994],[-2.649218749999989,8.956591796874989],[-2.689892578124983,9.025097656249997],[-2.746923828124977,9.045117187499997],[-2.705761718749983,9.351367187499989],[-2.695849609374989,9.481347656249994],[-2.706201171874994,9.533935546875],[-2.765966796874977,9.658056640624991],[-2.780517578125,9.745849609375],[-2.791162109374994,10.432421874999989],[-2.914892578124977,10.592333984374989],[-2.829931640624977,10.998388671874991],[-1.04248046875,11.010058593749989],[-0.627148437499983,10.927392578124994],[-0.299462890624994,11.166894531249994],[-0.068603515625,11.115625]]]},"properties":{"name":"Ghana","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-11.389404296875,12.404394531249991],[-11.502197265625,12.198632812499994],[-11.30517578125,12.015429687499989],[-10.933203124999977,12.205175781249991],[-10.709228515625,11.898730468749989],[-10.274853515624983,12.212646484375],[-9.754003906249977,12.029931640624994],[-9.358105468749983,12.255419921874989],[-9.395361328124977,12.464648437499989],[-9.043066406249977,12.40234375],[-8.818310546874983,11.922509765624994],[-8.822021484375,11.673242187499994],[-8.398535156249977,11.366552734374991],[-8.666699218749983,11.009472656249997],[-8.33740234375,10.990625],[-8.266650390624989,10.485986328124994],[-8.007275390624983,10.321875],[-7.990625,10.1625],[-8.155175781249994,9.973193359374989],[-8.136962890625,9.49570312499999],[-7.896191406249983,9.415869140624991],[-7.918066406249977,9.188525390624989],[-7.839404296874989,9.151611328125],[-7.7998046875,9.115039062499989],[-7.777978515624994,9.080859374999989],[-7.902099609375,9.01708984375],[-7.938183593749983,8.979785156249989],[-7.950976562499989,8.786816406249997],[-7.719580078124977,8.643017578124997],[-7.696093749999989,8.375585937499991],[-7.823583984374977,8.467675781249994],[-7.953125,8.477734375],[-8.236962890624994,8.455664062499991],[-8.244140625,8.407910156249997],[-8.256103515625,8.253710937499989],[-8.217138671874977,8.219677734374997],[-8.140625,8.181445312499989],[-8.048583984375,8.169726562499989],[-8.009863281249977,8.07851562499999],[-8.126855468749994,7.867724609374989],[-8.115429687499983,7.7607421875],[-8.205957031249994,7.59023437499999],[-8.231884765624983,7.556738281249991],[-8.429980468749989,7.601855468749989],[-8.486425781249977,7.558496093749994],[-8.659765624999977,7.688378906249994],[-8.8896484375,7.2626953125],[-9.11757812499999,7.215917968749991],[-9.463818359374983,7.415869140624991],[-9.369140625,7.703808593749997],[-9.518261718749983,8.34609375],[-9.781982421875,8.537695312499991],[-10.064355468749994,8.429882812499997],[-10.147412109374983,8.519726562499997],[-10.233056640624994,8.488818359374989],[-10.283203125,8.485156249999989],[-10.360058593749983,8.495507812499994],[-10.394433593749994,8.48095703125],[-10.496435546874977,8.362109374999989],[-10.557714843749977,8.315673828125],[-10.686962890624983,8.321679687499994],[-10.712109374999983,8.335253906249989],[-10.677343749999977,8.400585937499997],[-10.500537109374989,8.687548828124989],[-10.615966796875,9.059179687499991],[-10.726855468749989,9.081689453124994],[-10.747021484374983,9.095263671874989],[-10.749951171874983,9.122363281249989],[-10.687646484374994,9.261132812499994],[-10.682714843749977,9.289355468749989],[-10.758593749999989,9.385351562499991],[-11.047460937499977,9.786328125],[-11.180859374999983,9.925341796874989],[-11.205664062499977,9.977734375],[-11.273632812499983,9.996533203124997],[-11.911083984374983,9.993017578124991],[-12.142333984375,9.87539062499999],[-12.427978515625,9.898144531249997],[-12.557861328125,9.704980468749994],[-12.755859375,9.373583984374989],[-12.958789062499989,9.263330078124994],[-13.077294921874994,9.069628906249989],[-13.292675781249983,9.04921875],[-13.436279296875,9.4203125],[-13.691357421874983,9.535791015624994],[-13.689794921874977,9.927783203124989],[-13.820117187499989,9.88720703125],[-14.045019531249977,10.141259765624994],[-14.426904296874994,10.248339843749989],[-14.609570312499983,10.549853515624989],[-14.593505859375,10.766699218749991],[-14.677343749999977,10.68896484375],[-14.775927734374989,10.931640625],[-14.88671875,10.968066406249989],[-14.975,10.803417968749997],[-15.051220703124983,10.834570312499991],[-15.043017578124989,10.940136718749997],[-14.9990234375,10.9921875],[-14.944433593749977,11.072167968749994],[-14.779296875,11.405517578125],[-14.720263671874989,11.48193359375],[-14.682958984374977,11.508496093749997],[-14.604785156249989,11.511621093749994],[-14.452441406249989,11.556201171874989],[-14.327832031249983,11.629785156249994],[-14.265576171874983,11.659912109375],[-14.122314453125,11.65195312499999],[-13.953222656249977,11.664599609374989],[-13.732763671874977,11.736035156249997],[-13.730664062499983,11.959863281249994],[-13.737988281249983,12.009667968749994],[-13.816308593749994,12.054492187499989],[-13.948876953124994,12.178173828124997],[-13.8875,12.246875],[-13.759765625,12.262353515624994],[-13.673535156249983,12.478515625],[-13.732617187499983,12.592822265624989],[-13.729248046875,12.673925781249991],[-13.082910156249994,12.633544921875],[-13.061279296875,12.489990234375],[-12.930712890624989,12.532275390624989],[-12.399072265624994,12.340087890625],[-11.389404296875,12.404394531249991]]]},"properties":{"name":"Guinea","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-16.763330078124994,13.064160156249997],[-16.824804687499977,13.341064453125],[-16.669335937499994,13.475],[-16.41337890624999,13.269726562499997],[-15.427490234375,13.46835937499999],[-16.135449218749983,13.4482421875],[-16.351806640625,13.34335937499999],[-16.56230468749999,13.587304687499994],[-15.509667968749994,13.586230468750003],[-15.426855468749977,13.727001953124997],[-15.108349609374983,13.81210937499999],[-14.405468749999983,13.503710937500003],[-13.977392578124977,13.54345703125],[-13.826708984374989,13.4078125],[-14.246777343749983,13.23583984375],[-15.151123046875,13.556494140624991],[-15.286230468749977,13.39599609375],[-15.814404296874983,13.325146484374997],[-15.834277343749989,13.156445312499997],[-16.648779296874977,13.154150390624991],[-16.763330078124994,13.064160156249997]]]},"properties":{"name":"Gambia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-15.895898437499966,11.082470703124969],[-15.963964843749977,11.05898437499998],[-15.937695312499955,11.192773437499966],[-15.895898437499966,11.082470703124969]]],[[[-16.11450195312503,11.059423828124977],[-16.236425781249977,11.113427734374966],[-16.06733398437501,11.197216796874983],[-16.11450195312503,11.059423828124977]]],[[[-15.901806640624926,11.4658203125],[-16.02319335937497,11.477148437499991],[-15.964550781249926,11.59829101562498],[-15.901806640624926,11.4658203125]]],[[[-15.986425781249949,11.882031249999969],[-16.038330078124943,11.759716796875011],[-16.15244140624992,11.876806640624963],[-15.986425781249949,11.882031249999969]]],[[[-13.759765625,12.262353515624994],[-13.8875,12.246875],[-13.948876953124966,12.178173828124997],[-13.737988281250011,12.009667968750037],[-13.730664062499926,11.959863281250009],[-13.73276367187492,11.736035156249983],[-13.953222656249977,11.664599609374989],[-14.265576171874926,11.659912109375014],[-14.327832031250011,11.629785156250009],[-14.452441406249989,11.556201171875017],[-14.604785156249932,11.511621093749994],[-14.682958984374949,11.508496093749983],[-14.720263671875017,11.481933593749986],[-14.779296874999972,11.405517578125057],[-14.944433593749949,11.072167968749994],[-14.999023437499972,10.992187500000043],[-15.04301757812496,10.940136718750011],[-15.09375,11.011035156249974],[-15.054589843749994,11.141943359375006],[-15.222119140624926,11.030908203125037],[-15.216699218749994,11.15625],[-15.39311523437496,11.217236328124983],[-15.354687499999955,11.396337890624963],[-15.479492187499972,11.410302734374966],[-15.072656249999937,11.597802734374966],[-15.230371093750023,11.686767578124972],[-15.412988281249994,11.615234374999972],[-15.501904296875011,11.723779296874966],[-15.467187499999937,11.842822265624974],[-15.078271484374937,11.968994140625014],[-15.941748046875006,11.786621093749986],[-15.92021484374996,11.93779296874996],[-16.138427734375,11.917285156250045],[-16.32807617187501,12.051611328124963],[-16.244580078124955,12.237109375],[-16.43681640624996,12.204150390625045],[-16.711816406249937,12.354833984375006],[-16.656933593749955,12.364355468749991],[-16.52133789062495,12.348632812499986],[-16.41630859374996,12.367675781250057],[-16.24150390624996,12.443310546875011],[-16.144189453124937,12.457421875000037],[-15.839550781249955,12.437890624999966],[-15.57480468749992,12.490380859375009],[-15.19609375,12.679931640624986],[-14.3492187499999,12.67641601562498],[-14.064843749999966,12.675292968750014],[-13.729248046875,12.673925781250006],[-13.732617187499983,12.592822265625003],[-13.673535156249926,12.478515624999986],[-13.759765625,12.262353515624994]]]]},"properties":{"name":"Guinea-Bissau","childNum":5}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[11.332324218750017,1.528369140624989],[11.335351562500023,0.999707031250011],[9.906738281250028,0.960107421875037],[9.80390625000004,0.998730468749997],[9.788671875000034,1.025683593749974],[9.760546874999989,1.074707031250014],[9.704589843750057,1.079980468750023],[9.676464843750011,1.074707031250014],[9.636132812500051,1.046679687499989],[9.590820312500057,1.031982421875014],[9.599414062500045,1.054443359374972],[9.509863281250006,1.114794921875017],[9.385937500000068,1.13925781250002],[9.807031250000051,1.927490234375028],[9.77968750000008,2.068212890625006],[9.800781250000028,2.304443359375],[9.826171875000057,2.297802734374969],[9.8369140625,2.242382812500054],[9.870117187500028,2.21328125],[9.979882812499994,2.167773437500045],[10.790917968750023,2.167578125],[11.096582031250051,2.167480468749986],[11.328710937500006,2.167431640624969],[11.332324218750017,1.528369140624989]]],[[[8.735742187500023,3.758300781249972],[8.910058593750023,3.758203125000051],[8.946093750000074,3.627539062499977],[8.704003906250051,3.223632812500028],[8.474902343749989,3.264648437500043],[8.464648437500045,3.450585937499994],[8.735742187500023,3.758300781249972]]]]},"properties":{"name":"Eq. Guinea","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[23.852246093749983,35.53544921874999],[24.166015625000057,35.59521484375],[24.108984374999977,35.49580078124998],[24.35400390625,35.359472656250034],[25.73017578125004,35.34858398437501],[25.791308593750074,35.122851562500045],[26.32021484375008,35.315136718749955],[26.165625,35.018603515625045],[24.79980468750003,34.93447265625002],[24.70888671875008,35.08906250000001],[24.463671875000045,35.160351562499955],[23.59277343749997,35.257226562499966],[23.56982421875,35.534765625000034],[23.67265624999999,35.51391601562506],[23.736914062500034,35.65551757812503],[23.852246093749983,35.53544921874999]]],[[[27.17607421874999,35.46528320312498],[27.070703125000023,35.59775390624998],[27.22314453125,35.820458984374966],[27.17607421874999,35.46528320312498]]],[[[23.053808593750034,36.18979492187498],[22.91083984375004,36.220996093750045],[22.950488281250045,36.38393554687502],[23.053808593750034,36.18979492187498]]],[[[27.84277343750003,35.929296875000034],[27.71552734375004,35.95732421874996],[27.71630859375003,36.17158203125001],[28.23183593750005,36.43364257812502],[28.087792968750023,36.06533203125002],[27.84277343750003,35.929296875000034]]],[[[25.48242187500003,36.39262695312502],[25.37050781250005,36.35893554687499],[25.408984375000074,36.473730468750006],[25.48242187500003,36.39262695312502]]],[[[26.46064453125001,36.58540039062501],[26.270019531250057,36.54692382812499],[26.370019531250023,36.63857421875002],[26.46064453125001,36.58540039062501]]],[[[26.94960937500005,36.72709960937502],[27.214941406250006,36.89863281249998],[27.352148437499977,36.86889648437506],[26.94960937500005,36.72709960937502]]],[[[25.859375,36.79042968750005],[25.74316406250003,36.78974609374998],[26.06445312500003,36.90273437500002],[25.859375,36.79042968750005]]],[[[27.01972656250004,36.95903320312502],[26.91992187500003,36.94521484375005],[26.88867187499997,37.087255859375034],[27.01972656250004,36.95903320312502]]],[[[25.278906250000034,37.06840820312502],[25.105468750000057,37.034960937500045],[25.235058593750068,37.148535156250006],[25.278906250000034,37.06840820312502]]],[[[25.54589843749997,36.96757812499999],[25.45673828125001,36.9296875],[25.361914062500063,37.07041015624998],[25.52529296875005,37.19638671875006],[25.54589843749997,36.96757812499999]]],[[[24.523535156250063,37.125097656250006],[24.42480468750003,37.131982421874994],[24.48378906250005,37.21020507812503],[24.523535156250063,37.125097656250006]]],[[[25.402734375000023,37.419140624999955],[25.312695312500068,37.48930664062496],[25.462988281250063,37.47109375],[25.402734375000023,37.419140624999955]]],[[[26.029296875000057,37.529394531250034],[26.086328125000023,37.63491210937505],[26.351367187500017,37.67431640625],[26.029296875000057,37.529394531250034]]],[[[25.255859375000057,37.59960937500006],[25.156347656250034,37.54506835937505],[24.99648437500005,37.676904296874994],[25.255859375000057,37.59960937500006]]],[[[24.35595703125003,37.57685546875004],[24.28896484375005,37.52827148437498],[24.37910156250004,37.682714843750006],[24.35595703125003,37.57685546875004]]],[[[26.82441406250004,37.81142578125005],[27.05507812500005,37.70927734375002],[26.84492187500004,37.64472656250001],[26.58105468750003,37.723730468750034],[26.82441406250004,37.81142578125005]]],[[[20.888476562500074,37.805371093749955],[20.993945312500074,37.70800781250003],[20.81855468750004,37.66474609375001],[20.61953125000008,37.855029296875045],[20.691503906250006,37.929541015625034],[20.888476562500074,37.805371093749955]]],[[[24.991699218750057,37.75961914062506],[24.962207031250074,37.69238281250003],[24.7001953125,37.961669921875],[24.956347656250045,37.90478515625006],[24.991699218750057,37.75961914062506]]],[[[20.61230468750003,38.38334960937502],[20.761328125,38.07055664062497],[20.523535156250063,38.106640624999955],[20.4521484375,38.23417968750002],[20.35253906250003,38.179882812499955],[20.563183593750068,38.474951171875034],[20.61230468750003,38.38334960937502]]],[[[26.094042968750017,38.21806640625002],[25.891894531250045,38.243310546874994],[25.991406250000068,38.353515625],[25.846093750000023,38.57402343749996],[26.16035156250001,38.54072265625001],[26.094042968750017,38.21806640625002]]],[[[20.68671875000001,38.60869140625002],[20.5546875,38.58256835937502],[20.69414062499999,38.84423828125003],[20.68671875000001,38.60869140625002]]],[[[24.67470703125005,38.80922851562502],[24.54101562499997,38.788671875],[24.485644531250074,38.980273437500045],[24.67470703125005,38.80922851562502]]],[[[23.41542968750008,38.958642578124994],[23.525,38.8134765625],[24.127539062500034,38.648486328125045],[24.27578125000005,38.22001953124996],[24.58837890625003,38.12397460937504],[24.53652343750005,37.97973632812506],[24.212011718750006,38.11752929687506],[24.040136718750006,38.389990234375034],[23.65078125000008,38.44306640625001],[23.25214843750004,38.80122070312498],[22.870312500000068,38.870507812499966],[23.258203125000023,39.03134765625006],[23.41542968750008,38.958642578124994]]],[[[26.41015625000003,39.329443359375034],[26.59560546875005,39.04882812499997],[26.488671875000023,39.074804687500034],[26.46875,38.97280273437502],[26.10791015625,39.08105468749997],[26.273144531249983,39.19755859374999],[26.072363281250034,39.095605468749994],[25.84414062500008,39.20004882812506],[26.16542968750008,39.37353515625006],[26.41015625000003,39.329443359375034]]],[[[20.077929687500045,39.432714843750034],[19.883984375000068,39.461523437500034],[19.646484375,39.76708984375003],[19.926074218750017,39.773730468750045],[19.8466796875,39.66811523437502],[20.077929687500045,39.432714843750034]]],[[[25.43769531250004,39.98330078125002],[25.357031250000063,39.80810546875003],[25.24941406250005,39.89414062500006],[25.06220703125004,39.852392578125006],[25.05800781250005,39.999658203124966],[25.43769531250004,39.98330078125002]]],[[[24.774218750000074,40.615185546874955],[24.515527343750023,40.64702148437496],[24.623339843750045,40.79291992187501],[24.774218750000074,40.615185546874955]]],[[[26.03896484375008,40.726757812499955],[25.10449218750003,40.994726562500006],[24.792968750000057,40.857519531250034],[24.47705078125,40.94775390625003],[24.082324218750074,40.72407226562504],[23.762792968750063,40.74780273437497],[23.866796875000034,40.41855468750006],[24.21279296875008,40.32778320312502],[24.343359375000034,40.14770507812503],[23.913183593750063,40.35878906250005],[23.72792968750008,40.329736328124994],[23.96748046875001,40.11455078125002],[23.947070312500045,39.96557617187506],[23.66455078125003,40.22382812499998],[23.42626953125,40.26396484374999],[23.62734375,39.92407226562503],[22.896484375000057,40.39990234374997],[22.92226562500008,40.59086914062499],[22.629492187500034,40.49555664062501],[22.59218750000005,40.03691406250002],[23.327734374999977,39.174902343750006],[23.15468750000008,39.10146484375005],[23.16171875,39.25776367187501],[22.92138671874997,39.30634765625004],[22.886035156250074,39.16997070312496],[23.066699218750017,39.03793945312498],[22.569140625000074,38.86748046874999],[23.25292968750003,38.66123046875006],[23.68398437500008,38.35244140625002],[23.96699218750001,38.275],[24.024511718750006,38.139794921874966],[24.01972656250001,37.67773437499997],[23.50175781249999,38.03486328124998],[23.03632812500004,37.87836914062501],[23.48925781250003,37.440185546875],[23.16152343750005,37.333837890625006],[22.725390625000017,37.542138671874966],[23.16015625000003,36.448095703125034],[22.717187500000023,36.79394531250006],[22.42773437500003,36.47578124999998],[22.08046875000008,37.028955078124966],[21.95556640625003,36.990087890625034],[21.892382812500045,36.73730468749997],[21.58291015625005,37.080957031249994],[21.678906250000068,37.38720703125003],[21.124707031250068,37.89160156250003],[21.40371093750005,38.19667968750002],[21.658398437500068,38.17509765624996],[21.82470703125003,38.328125],[22.846386718750068,37.96757812499996],[23.18349609375008,38.133691406249966],[22.421679687500045,38.43852539062499],[22.319921875,38.35683593750005],[21.96533203124997,38.412451171875006],[21.47255859375005,38.321386718750006],[21.3310546875,38.48730468749997],[21.303320312500034,38.373925781249966],[21.113183593750023,38.38466796875002],[20.768554687500057,38.874414062499966],[21.111621093750045,38.89628906249999],[21.11835937500001,39.029980468749955],[20.71337890625,39.03515625000003],[20.300781250000057,39.32709960937501],[20.19140625,39.545800781249966],[20.099414062500074,39.641259765624966],[20.001269531250074,39.70942382812501],[20.022558593750063,39.710693359375],[20.059765624999983,39.69912109375002],[20.13105468750004,39.66162109375003],[20.206835937500017,39.65351562499998],[20.382421875,39.802636718749994],[20.381640625000017,39.84179687500006],[20.311328125000074,39.95078125000006],[20.311132812500034,39.97944335937504],[20.338476562500006,39.991064453125006],[20.38369140625008,40.0171875],[20.408007812500074,40.049462890624994],[20.4560546875,40.065576171874994],[20.657421875000068,40.11738281249998],[20.881640625000017,40.467919921874994],[21.030859375000034,40.62246093750002],[20.95576171875001,40.775292968749994],[20.96425781250005,40.84990234374999],[21.575781250000034,40.86894531249996],[21.627539062500006,40.896337890625034],[21.77949218750004,40.95043945312506],[21.99335937500001,41.13095703125006],[22.18447265625005,41.15864257812501],[22.49355468750005,41.118505859375006],[22.603613281249977,41.14018554687499],[22.724804687500068,41.17851562499999],[22.78388671875004,41.33198242187498],[23.155957031250068,41.32207031249999],[23.239843750000034,41.38496093750001],[23.372070312500057,41.3896484375],[23.433398437500017,41.39873046874999],[23.53583984375001,41.38603515624999],[23.63515625000008,41.386767578125045],[24.011328124999977,41.460058593750034],[24.03291015625004,41.469091796875034],[24.05605468750005,41.527246093749966],[24.38671875,41.523535156250006],[24.487890625,41.55522460937499],[24.518261718750068,41.55253906249996],[24.773730468750045,41.356103515624994],[24.99355468750008,41.36499023437503],[25.133398437500063,41.31577148437506],[25.251171875000068,41.243554687499994],[25.923339843750057,41.311914062499966],[26.066406250000057,41.35068359375006],[26.135351562499977,41.3857421875],[26.155175781250023,41.43486328124999],[26.143554687500057,41.52153320312496],[26.085546875000063,41.704150390625045],[26.10742187499997,41.72568359374998],[26.20058593750005,41.74379882812502],[26.320898437500034,41.716552734375],[26.581347656250074,41.60126953125004],[26.62490234375008,41.401757812499994],[26.330664062499977,41.23876953125],[26.331054687500057,40.954492187499994],[26.03896484375008,40.726757812499955]]]]},"properties":{"name":"Greece","childNum":29}},{"geometry":{"type":"Polygon","coordinates":[[[-61.71552734375,12.012646484374997],[-61.714990234374994,12.18515625],[-61.60703125,12.223291015624994],[-61.71552734375,12.012646484374997]]]},"properties":{"name":"Grenada","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-46.266699218750006,60.781396484374994],[-46.381542968749955,60.66030273437502],[-46.7880859375,60.758398437500034],[-46.205224609374994,60.943505859374994],[-46.266699218750006,60.781396484374994]]],[[[-37.03125,65.53198242187497],[-37.23842773437494,65.60986328125003],[-37.047509765624966,65.722265625],[-37.03125,65.53198242187497]]],[[[-51.01367187499994,69.55249023437497],[-51.202050781249966,69.525],[-51.33886718749994,69.73203125000006],[-51.094580078125006,69.92416992187503],[-50.67900390624999,69.84853515625],[-51.01367187499994,69.55249023437497]]],[[[-52.73115234375001,69.94472656250005],[-52.0453125,69.8072265625],[-51.90019531249999,69.60478515625007],[-53.57841796874996,69.25664062500002],[-54.18271484374995,69.40351562500001],[-53.65830078124998,69.46513671875005],[-53.825,69.54033203124999],[-54.91914062499998,69.71362304687503],[-54.78789062499996,69.94985351562502],[-54.322607421875034,69.94189453125],[-54.83076171875001,70.13295898437502],[-54.37163085937499,70.31728515625],[-53.296728515625034,70.20537109375002],[-52.73115234375001,69.94472656250005]]],[[[-51.67514648437498,70.855224609375],[-52.11938476562497,70.87065429687502],[-52.10673828124999,70.96801757812497],[-51.67514648437498,70.855224609375]]],[[[-25.43232421875001,70.92133789062495],[-25.402246093749994,70.65268554687503],[-26.217871093749977,70.45405273437498],[-26.604687499999926,70.55336914062497],[-28.03525390624995,70.48681640625],[-27.61723632812496,70.91376953125001],[-26.621777343749955,70.87563476562497],[-25.81889648437499,71.04365234375001],[-25.43232421875001,70.92133789062495]]],[[[-53.53520507812493,71.04082031250005],[-53.9578125,71.12773437499999],[-53.58447265625003,71.29707031249995],[-53.53520507812493,71.04082031250005]]],[[[-55.01689453124999,72.79111328125003],[-55.56660156249998,72.56435546875002],[-56.214794921874955,72.71918945312495],[-55.01689453124999,72.79111328125003]]],[[[-18.000537109374932,75.40732421875003],[-17.391992187499937,75.03691406250007],[-18.670800781249966,75.00166015624998],[-18.856054687499977,75.31914062500002],[-18.000537109374932,75.40732421875003]]],[[[-18.58261718749995,76.042333984375],[-19.085351562499966,76.43037109375001],[-18.882470703124937,76.70380859375001],[-18.58261718749995,76.042333984375]]],[[[-71.667333984375,77.32529296874998],[-72.48955078124999,77.43164062499997],[-71.43344726562495,77.394384765625],[-71.667333984375,77.32529296874998]]],[[[-17.6125,79.82587890624995],[-18.662011718749966,79.72001953125005],[-19.13828125,79.85234375000002],[-17.98291015625,80.05517578125003],[-17.471386718749955,80.02871093749997],[-17.6125,79.82587890624995]]],[[[-44.86455078124999,82.08364257812502],[-46.75190429687501,82.34819335937502],[-47.27226562499996,82.65693359375001],[-46.399169921875,82.692138671875],[-44.91748046875003,82.48051757812505],[-44.86455078124999,82.08364257812502]]],[[[-29.952880859375,83.56484374999997],[-25.795068359374994,83.26098632812497],[-31.99267578125,83.0853515625],[-32.03271484374997,82.98344726562502],[-25.12338867187495,83.15961914062501],[-24.47031249999995,82.87739257812498],[-21.582519531249943,82.6341796875],[-23.118066406249966,82.32470703125003],[-29.57939453124996,82.16118164062502],[-29.887402343749983,82.05483398437502],[-29.543847656249994,81.93994140624997],[-27.839501953124966,82.04887695312505],[-25.148828124999966,82.001123046875],[-24.293066406249977,81.70097656250005],[-23.103710937499983,82.01181640625003],[-21.337988281249977,82.068701171875],[-21.230517578125017,81.60136718749999],[-23.11772460937499,80.77817382812498],[-19.62993164062499,81.63989257812503],[-17.456054687499943,81.397705078125],[-16.12070312499995,81.776611328125],[-14.241992187500017,81.81386718750005],[-12.434423828125006,81.68251953125002],[-11.430664062499972,81.45683593750005],[-13.126220703124972,81.08779296875],[-14.452343749999955,80.99311523437498],[-14.503564453124994,80.76328125000006],[-16.76059570312492,80.573388671875],[-15.937255859374972,80.42763671874997],[-16.48876953124997,80.25195312499997],[-18.070947265624994,80.17207031249995],[-19.429199218749943,80.25771484375],[-20.150146484375,80.01123046874997],[-18.99199218749996,79.17836914062502],[-21.133740234374926,78.65864257812501],[-21.729589843749977,77.70854492187499],[-20.862597656249932,77.91186523437503],[-19.490429687499983,77.71889648437497],[-19.46752929687503,77.56582031250005],[-20.162060546874926,77.68984375],[-20.680810546875023,77.61899414062503],[-20.23193359374997,77.36840820312497],[-19.30029296874997,77.22236328124995],[-18.442626953124943,77.259375],[-18.51030273437496,76.77817382812498],[-20.48671875,76.92080078125],[-21.614697265624926,76.68789062499997],[-22.18525390625001,76.79409179687502],[-22.609326171874983,76.70429687500004],[-21.877343749999966,76.57348632812503],[-21.488232421874926,76.271875],[-20.10361328124992,76.21909179687503],[-19.508984374999926,75.75751953124995],[-19.52636718750003,75.18022460937505],[-20.484960937500006,75.31425781249999],[-21.649316406249966,75.02343749999997],[-22.232861328124926,75.11972656249998],[-21.69511718749999,74.96445312500003],[-20.985791015624983,75.07436523437497],[-20.86157226562497,74.63593750000001],[-20.41708984374995,74.9751953125],[-19.98491210937499,74.9751953125],[-19.287011718750023,74.54638671875006],[-19.36914062499997,74.28403320312498],[-20.256445312499977,74.2828125],[-20.653125,74.13735351562502],[-21.954931640624977,74.24428710937497],[-21.942919921874932,74.56572265624999],[-22.32158203124999,74.30253906250002],[-22.134814453124932,73.99047851562503],[-20.36728515624992,73.8482421875],[-20.509667968749966,73.49287109375001],[-22.346875,73.26923828125001],[-23.23320312499999,73.39770507812497],[-24.157714843749943,73.76445312499999],[-24.67724609375,73.602197265625],[-25.521289062500017,73.85161132812499],[-24.79125976562497,73.51127929687502],[-26.062304687500017,73.25302734375],[-27.270410156250023,73.43627929687503],[-26.541845703125006,73.24897460937495],[-27.561621093750006,73.13847656250002],[-27.348046875000023,73.06782226562501],[-25.057031250000023,73.396484375],[-24.132666015625006,73.409375],[-22.036328124999955,72.91845703125006],[-22.29321289062497,72.11953125],[-24.06904296875001,72.49873046874998],[-24.629980468749977,73.03764648437499],[-26.657617187499966,72.71582031249997],[-24.81333007812492,72.90151367187497],[-24.65,72.58251953125],[-25.117871093749983,72.34697265625005],[-24.66684570312492,72.437353515625],[-21.959667968749955,71.74467773437502],[-22.479638671874937,71.38344726562497],[-22.417578125,71.24868164062505],[-22.29902343750001,71.43232421874998],[-21.75224609374999,71.47832031250002],[-21.522656249999926,70.52622070312503],[-22.38413085937492,70.46240234375],[-22.437011718749943,70.860009765625],[-22.690673828124943,70.43730468750002],[-23.327832031249983,70.45097656250007],[-23.97138671875001,70.64946289062499],[-24.562207031249926,71.22353515624997],[-25.885156249999966,71.571923828125],[-27.08720703124999,71.6265625],[-27.107031250000034,71.53266601562498],[-25.842724609374955,71.48017578124995],[-25.74223632812499,71.18359375],[-26.717919921874994,70.95048828125005],[-28.39843749999997,70.99291992187497],[-27.99218749999997,70.89521484374998],[-28.06987304687499,70.69902343750005],[-29.07207031249999,70.444970703125],[-26.621777343749955,70.46337890625],[-26.576806640625023,70.35708007812502],[-27.560839843749932,70.12446289062498],[-27.384179687500023,69.9916015625],[-27.027734374999966,70.20122070312499],[-25.529882812499977,70.35317382812502],[-23.66733398437495,70.139306640625],[-22.28447265624996,70.12583007812498],[-22.287060546874955,70.03339843749998],[-23.03364257812501,69.90083007812498],[-23.04956054687497,69.79272460937497],[-23.86572265624997,69.73671875000002],[-23.739404296874994,69.58862304687497],[-24.296679687500017,69.58554687500006],[-24.295556640624966,69.439306640625],[-25.188574218750006,69.26054687500002],[-25.092431640624937,69.16518554687502],[-25.697998046874943,68.889892578125],[-26.48291015624997,68.67592773437502],[-29.24951171874997,68.29877929687501],[-29.86850585937495,68.31157226562505],[-30.318115234375,68.19331054687501],[-30.72001953124999,68.25117187499998],[-30.610742187499994,68.11791992187503],[-30.97856445312499,68.06132812500005],[-32.32744140624999,68.43730468749999],[-32.16455078125,67.99111328125002],[-33.15698242187497,67.62670898437506],[-34.1982421875,66.65507812499999],[-35.18857421874995,66.25029296875002],[-35.86723632812502,66.44140624999997],[-35.630078124999926,66.13994140625002],[-36.37919921874996,65.830810546875],[-36.52724609375002,66.00771484375],[-36.665185546874966,65.79008789062507],[-37.06279296874996,65.87143554687503],[-37.410058593749994,65.65634765625],[-37.954785156249955,65.63359375000007],[-37.278710937499994,66.30439453124995],[-38.156640624999966,66.38559570312498],[-37.75234375000002,66.26152343750002],[-38.13994140625002,65.90351562499998],[-38.52036132812498,66.00966796875002],[-38.20336914062497,65.71171874999999],[-40.17353515624998,65.55615234375],[-39.57792968749996,65.34077148437501],[-39.937255859375,65.14160156250003],[-40.253125,65.04887695312505],[-41.08442382812501,65.10083007812497],[-40.966015624999955,64.86884765624995],[-40.655468749999926,64.91533203125002],[-40.18222656249998,64.47993164062495],[-40.78173828125,64.22177734375003],[-41.581005859374926,64.29833984375],[-41.03056640624996,64.12104492187504],[-40.61777343749998,64.13173828125],[-40.550390625000034,63.72524414062505],[-40.77519531249999,63.53364257812501],[-41.04873046875002,63.51381835937505],[-41.387890624999926,63.06186523437498],[-41.84448242187497,63.07026367187501],[-42.174511718749955,63.20878906249999],[-41.63447265624998,62.972460937500074],[-41.90898437499996,62.73710937499999],[-42.94165039062503,62.72021484375003],[-42.15297851562502,62.568457031250006],[-42.32148437499998,62.15273437500005],[-42.110205078125006,61.857226562500074],[-42.58530273437498,61.71748046875001],[-42.34736328125001,61.61743164062497],[-42.717041015625,60.767480468749994],[-43.04409179687502,60.523681640625],[-43.92270507812495,60.59536132812502],[-43.21298828124998,60.390673828125074],[-43.122900390625006,60.06123046875001],[-43.32011718749993,59.928125],[-43.95502929687498,60.025488281250006],[-43.65791015625001,59.85864257812503],[-43.90654296874996,59.815478515625045],[-44.11699218750002,59.83193359375002],[-44.06547851562499,59.92480468750003],[-44.412939453125006,59.922607421875],[-44.22436523437494,60.273535156250006],[-44.61328124999997,60.01665039062499],[-45.37924804687495,60.20292968750002],[-45.367773437500006,60.37294921875002],[-44.97470703124995,60.457226562499955],[-44.756738281249966,60.66459960937502],[-45.38051757812494,60.444921875],[-46.04663085937503,60.61572265625],[-46.141943359375006,60.776513671874994],[-45.87021484374998,61.21831054687502],[-46.87446289062501,60.81640625000003],[-48.180810546874966,60.76923828125001],[-47.77031249999999,60.99775390625001],[-48.386425781249926,61.004736328125034],[-48.42817382812501,61.18740234375002],[-48.92207031249998,61.27744140624998],[-49.28906249999997,61.58994140625006],[-49.380273437499994,61.89018554687502],[-48.82871093749998,62.0796875],[-49.62377929687494,61.99858398437499],[-49.553466796875,62.23271484374999],[-50.319238281249966,62.473193359375045],[-50.298730468749966,62.72197265625002],[-49.793115234374994,63.04462890625004],[-50.39008789062501,62.82202148437497],[-51.46884765624995,63.64228515625001],[-51.547509765624994,64.00610351562497],[-50.260693359374955,64.21425781250002],[-50.48662109374996,64.20888671875],[-50.43706054687499,64.31284179687503],[-51.58491210937498,64.10317382812502],[-51.70786132812498,64.205078125],[-51.403759765624926,64.46318359375002],[-50.49208984375002,64.69316406250005],[-50.00898437500001,64.44726562499997],[-50.12163085937493,64.703759765625],[-50.51699218750002,64.76650390625],[-50.96064453124998,65.20112304687498],[-50.721582031249966,64.79760742187503],[-51.22060546875002,64.62846679687502],[-51.25537109375,64.75810546875005],[-51.92260742187503,64.21875],[-52.259033203125,65.154931640625],[-52.537695312500034,65.32880859374998],[-51.61914062500003,65.71318359375002],[-51.091894531250006,65.77578125],[-51.7234375,65.723486328125],[-52.55126953125003,65.46137695312498],[-52.760937499999926,65.59082031249997],[-53.198974609375,65.59404296875002],[-53.106347656249966,65.97714843749998],[-53.39204101562498,66.04833984375],[-51.225,66.88154296875001],[-53.035791015624966,66.20141601562503],[-53.538769531249955,66.13935546874998],[-53.41875,66.64853515624998],[-53.038281249999955,66.82680664062497],[-52.38686523437502,66.88115234375005],[-53.44360351562503,66.924658203125],[-53.88442382812502,67.13554687499999],[-53.79858398437494,67.41816406250001],[-52.666455078124955,67.74970703124995],[-50.613476562499955,67.5279296875],[-51.171044921874966,67.693603515625],[-50.96884765624998,67.80664062500003],[-51.765234375000034,67.73784179687505],[-52.34482421874998,67.83691406249997],[-53.735205078125006,67.54902343750004],[-53.151562499999926,68.20776367187503],[-51.779980468749926,68.05673828124998],[-51.456494140624926,68.116064453125],[-51.21015625000001,68.419921875],[-52.19853515624993,68.22080078125],[-53.38315429687495,68.29736328124997],[-53.03945312500002,68.61088867187499],[-52.60458984374998,68.70874023437503],[-51.62314453124995,68.53481445312505],[-50.945703124999966,68.68266601562505],[-50.807714843750006,68.81699218749998],[-51.24941406250002,68.73994140625001],[-51.084863281249994,69.12827148437498],[-50.29736328124994,69.17060546874998],[-51.07695312499996,69.20947265625],[-50.291699218749955,70.01445312500005],[-52.254638671875,70.05893554687503],[-53.02304687499995,70.30190429687497],[-54.01445312499996,70.42167968750005],[-54.53076171875,70.69926757812502],[-54.16582031249999,70.82011718750005],[-52.801953124999955,70.7505859375],[-50.87236328124993,70.36489257812502],[-50.66328124999998,70.417578125],[-51.32285156249998,70.58876953124997],[-51.25659179687497,70.85268554687502],[-51.77431640625002,71.01044921875001],[-51.018945312499966,71.001318359375],[-51.37666015625001,71.11904296875],[-53.007568359375,71.17998046874999],[-52.89184570312497,71.457666015625],[-51.76992187500002,71.67172851562498],[-53.44008789062502,71.57900390625002],[-53.14453125000003,71.80742187500002],[-53.65214843749996,72.36264648437506],[-53.92773437499997,72.31879882812501],[-53.47758789062502,71.84995117187506],[-54.01992187500002,71.657861328125],[-53.96298828124995,71.45898437499997],[-54.6890625,71.36723632812505],[-55.59404296874999,71.55351562500005],[-55.315576171874994,72.11069335937498],[-54.84013671874996,72.35610351562497],[-55.581445312499994,72.178857421875],[-55.63583984374998,72.300439453125],[-55.29570312499996,72.35439453124997],[-55.60170898437494,72.453466796875],[-54.924951171874994,72.57197265624998],[-54.737939453124994,72.87250976562501],[-55.07309570312498,73.01513671875003],[-55.28891601562498,72.93320312500003],[-55.66855468749998,73.00791015624998],[-55.288281249999955,73.32709960937498],[-56.10405273437496,73.55815429687499],[-55.83828125,73.75971679687501],[-56.22539062499999,74.12910156249995],[-57.23056640624995,74.12529296875007],[-56.70634765625002,74.21918945312501],[-56.717675781249994,74.42924804687499],[-56.25546874999998,74.52680664062498],[-58.56552734374998,75.35273437500001],[-58.249658203124994,75.50668945312503],[-58.51621093749995,75.68906250000006],[-61.18823242187494,76.157861328125],[-63.29130859374996,76.35205078125003],[-63.84306640624999,76.21713867187498],[-64.307275390625,76.31650390624998],[-65.36992187499993,76.13056640625004],[-65.87573242187494,76.23833007812505],[-66.46577148437498,76.13916015625],[-66.99257812500002,76.21293945312502],[-66.67480468750003,75.977392578125],[-68.14873046875002,76.06704101562497],[-69.48408203125001,76.39916992187503],[-68.1142578125,76.65063476562503],[-69.67382812499994,76.73588867187507],[-69.69423828125002,76.98945312500004],[-70.613134765625,76.82182617187499],[-71.14145507812498,77.02866210937503],[-70.86284179687496,77.175439453125],[-68.97832031250002,77.19531250000006],[-68.13554687499999,77.37958984375001],[-66.38945312499999,77.28027343750003],[-66.69121093749999,77.68120117187502],[-67.68808593749995,77.523779296875],[-68.62153320312498,77.60185546875002],[-69.35136718749999,77.467138671875],[-70.53540039062497,77.699560546875],[-70.11445312500001,77.84135742187505],[-71.27163085937494,77.81313476562497],[-72.81806640624995,78.1943359375],[-72.47250976562498,78.48203125],[-71.65131835937493,78.62314453124998],[-68.99345703124999,78.857421875],[-68.37705078124998,79.037841796875],[-65.82553710937503,79.17373046874997],[-64.79228515624993,80.00063476562502],[-64.17915039062498,80.09926757812497],[-66.84365234374997,80.07622070312507],[-67.05063476562503,80.384521484375],[-64.51552734374997,81],[-63.72197265624993,81.05732421875001],[-63.028662109375006,80.88955078125002],[-62.90336914062496,81.21835937500003],[-61.43598632812498,81.13359375000002],[-60.842871093750034,81.85537109374997],[-59.28193359374998,81.88403320312503],[-56.615136718749994,81.362890625],[-59.26181640624998,82.00664062500005],[-54.54887695312496,82.35063476562505],[-53.671337890624955,82.16406249999997],[-53.55566406250003,81.65327148437501],[-53.022558593750034,82.32172851562504],[-50.894433593749994,81.89521484375001],[-49.54106445312496,81.91806640625003],[-50.93554687500003,82.38281250000003],[-50.03710937499994,82.472412109375],[-44.7294921875,81.77983398437505],[-44.23886718749998,82.3681640625],[-45.55654296875002,82.74702148437498],[-41.87646484375,82.680322265625],[-41.36962890625003,82.75],[-46.136816406250006,82.85883789062504],[-46.169042968750006,83.06386718749997],[-45.41459960937496,83.01767578124998],[-43.00927734375003,83.26459960937501],[-41.300146484375006,83.10078125000004],[-40.35683593750002,83.332177734375],[-38.15625,82.9986328125],[-38.74956054687496,83.37084960937497],[-37.72333984374998,83.49775390624998],[-29.952880859375,83.56484374999997]]]]},"properties":{"name":"Greenland","childNum":14}},{"geometry":{"type":"Polygon","coordinates":[[[-89.2328125,15.888671875],[-88.89404296875,15.890625],[-88.60336914062499,15.76416015625],[-88.5939453125,15.950292968749991],[-88.22832031249999,15.72900390625],[-88.271435546875,15.694873046875003],[-88.36455078124999,15.616015625],[-88.68447265625,15.360498046874994],[-88.96098632812499,15.152441406249991],[-89.142578125,15.072314453125003],[-89.22236328125,14.866064453124991],[-89.16220703124999,14.669238281250003],[-89.17177734375,14.606884765624997],[-89.28671875,14.529980468749997],[-89.36259765624999,14.416015625],[-89.5736328125,14.390087890624997],[-89.54716796874999,14.241259765625003],[-90.04814453124999,13.904052734375],[-90.09521484375,13.736523437499997],[-90.60693359375,13.929003906250003],[-91.37734375,13.990185546874997],[-92.23515624999999,14.54541015625],[-92.15854492187499,14.963574218749997],[-92.14423828125,15.001953125],[-92.09873046874999,15.026757812499994],[-92.07480468749999,15.07421875],[-92.187158203125,15.320898437499991],[-92.08212890624999,15.495556640624997],[-91.9572265625,15.703222656249991],[-91.736572265625,16.07016601562499],[-91.433984375,16.070458984374994],[-90.97958984374999,16.07080078125],[-90.70322265624999,16.071044921875],[-90.52197265625,16.071191406249994],[-90.44716796875,16.072705078124997],[-90.45986328125,16.162353515625],[-90.450146484375,16.261376953124994],[-90.4169921875,16.351318359375],[-90.4169921875,16.39101562499999],[-90.47109375,16.43955078124999],[-90.57578125,16.467822265625003],[-90.63408203124999,16.5107421875],[-90.634375,16.565136718749997],[-90.65996093749999,16.630908203125003],[-90.710693359375,16.70810546874999],[-90.975830078125,16.867822265624994],[-91.409619140625,17.255859375],[-91.1955078125,17.254101562499997],[-90.99296874999999,17.25244140625],[-90.98916015625,17.81640625],[-89.16147460937499,17.81484375],[-89.2328125,15.888671875]]]},"properties":{"name":"Guatemala","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[144.74179687500003,13.25927734375],[144.64931640625002,13.4287109375],[144.87539062500002,13.614648437499994],[144.94082031250002,13.5703125],[144.74179687500003,13.25927734375]]]},"properties":{"name":"Guam","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-57.194775390625,5.5484375],[-57.3185546875,5.335351562499994],[-57.20981445312499,5.195410156249991],[-57.331005859375,5.020166015624994],[-57.711083984374994,4.991064453124991],[-57.91704101562499,4.820410156249991],[-57.84599609374999,4.668164062499997],[-58.05429687499999,4.101660156249991],[-57.646728515625,3.39453125],[-57.303662109375,3.377099609374994],[-57.19736328124999,2.853271484375],[-56.704345703125,2.036474609374991],[-56.4828125,1.942138671875],[-56.96953124999999,1.91640625],[-57.03759765625,1.936474609374997],[-57.092675781249994,2.005810546874997],[-57.118896484375,2.013964843749989],[-57.31748046874999,1.963476562499991],[-57.41269531249999,1.908935546875],[-57.500439453125,1.77382812499999],[-57.54575195312499,1.72607421875],[-57.59443359375,1.7041015625],[-57.795654296875,1.7],[-57.8734375,1.667285156249989],[-57.9828125,1.6484375],[-58.03466796875,1.520263671875],[-58.34067382812499,1.587548828124994],[-58.38037109375,1.530224609374997],[-58.39580078124999,1.481738281249989],[-58.5060546875,1.438671875],[-58.511865234374994,1.28466796875],[-58.68461914062499,1.281054687499989],[-58.73032226562499,1.247509765624997],[-58.78720703124999,1.20849609375],[-58.82177734375,1.201220703124989],[-59.231201171875,1.376025390624989],[-59.53569335937499,1.7],[-59.66660156249999,1.746289062499997],[-59.66850585937499,1.842333984374989],[-59.74072265625,1.874169921874994],[-59.75620117187499,1.900634765625],[-59.75522460937499,2.274121093749997],[-59.8896484375,2.362939453124994],[-59.9943359375,2.689990234374989],[-59.854394531249994,3.5875],[-59.55112304687499,3.933544921874997],[-59.557763671874994,3.960009765624989],[-59.62021484374999,4.023144531249997],[-59.73857421874999,4.226757812499997],[-59.69970703125,4.353515625],[-60.1486328125,4.533251953124989],[-59.990673828125,5.082861328124991],[-60.142041015625,5.238818359374989],[-60.241650390625,5.257958984374994],[-60.335205078125,5.199316406249991],[-60.45952148437499,5.188085937499991],[-60.6513671875,5.221142578124997],[-60.742138671875,5.202050781249994],[-61.37680664062499,5.906982421875],[-61.3908203125,5.938769531249989],[-61.303125,6.049511718749997],[-61.22495117187499,6.129199218749989],[-61.15947265624999,6.174414062499991],[-61.12871093749999,6.214306640624997],[-61.152294921875,6.385107421874991],[-61.151025390624994,6.446533203125],[-61.181591796875,6.513378906249997],[-61.20361328125,6.58837890625],[-61.14560546874999,6.69453125],[-60.717919921874994,6.768310546875],[-60.35209960937499,7.002880859374997],[-60.32207031249999,7.092041015625],[-60.32548828124999,7.133984375],[-60.34506835937499,7.15],[-60.46494140624999,7.166552734374989],[-60.523193359375,7.143701171874994],[-60.583203125,7.156201171874997],[-60.63330078125,7.211083984374994],[-60.718652343749994,7.535937499999989],[-60.513623046875,7.813183593749997],[-60.032421875,8.053564453124991],[-59.99072265625,8.162011718749994],[-59.96484375,8.191601562499997],[-59.849072265625,8.248681640624994],[-59.83164062499999,8.305957031249989],[-60.017529296875,8.54931640625],[-59.20024414062499,8.07460937499999],[-58.51108398437499,7.39804687499999],[-58.48056640624999,7.038134765624989],[-58.67294921874999,6.390771484374994],[-58.414990234375,6.85117187499999],[-57.982568359374994,6.785888671875],[-57.54013671874999,6.33154296875],[-57.2275390625,6.178417968749997],[-57.194775390625,5.5484375]]]},"properties":{"name":"Guyana","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[73.70742187500002,-53.13710937499999],[73.46513671875002,-53.184179687500006],[73.25117187500001,-52.97578125000001],[73.83779296875002,-53.11279296875],[73.70742187500002,-53.13710937499999]]]},"properties":{"name":"Heard I. and McDonald Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-83.635498046875,14.876416015624997],[-84.53764648437496,14.633398437499963],[-84.64594726562498,14.661083984375011],[-84.86044921874998,14.809765625000011],[-84.98515624999999,14.752441406249972],[-85.059375,14.582958984374997],[-85.20834960937498,14.311816406250003],[-85.73393554687496,13.85869140625006],[-85.75341796875,13.852050781250028],[-85.78671874999995,13.844433593749997],[-85.98378906249997,13.965673828125006],[-86.04038085937503,14.050146484374977],[-86.33173828124995,13.770068359375031],[-86.37695312500003,13.755664062500031],[-86.61025390624997,13.774853515625026],[-86.73364257812494,13.763476562500017],[-86.75898437499995,13.746142578125045],[-86.77060546875003,13.698730468749972],[-86.763525390625,13.635253906250014],[-86.72958984375,13.4072265625],[-86.710693359375,13.31337890624998],[-86.72929687499996,13.284375],[-86.79213867187497,13.279785156249972],[-86.87353515624994,13.266503906250023],[-86.918212890625,13.223583984374983],[-87.00932617187499,13.007812499999986],[-87.0591796875,12.991455078125028],[-87.337255859375,12.979248046875028],[-87.48911132812503,13.352929687500051],[-87.814208984375,13.399169921875057],[-87.781884765625,13.521386718749994],[-87.71533203125003,13.812695312500011],[-87.73144531250003,13.841064453125014],[-87.80224609374997,13.889990234375034],[-87.89199218749997,13.894970703124983],[-87.99101562499996,13.879638671874972],[-88.15102539062497,13.987353515624974],[-88.44912109374994,13.850976562499994],[-88.48266601562503,13.854248046875043],[-88.49765624999998,13.904541015624986],[-88.50434570312501,13.964208984374963],[-88.51254882812498,13.97895507812504],[-89.12050781249994,14.370214843749991],[-89.36259765624996,14.416015625],[-89.17177734375,14.606884765624983],[-89.16220703125,14.669238281249989],[-89.22236328125001,14.86606445312502],[-89.142578125,15.072314453125031],[-88.96098632812496,15.15244140625002],[-88.68447265625002,15.360498046875037],[-88.36455078124996,15.616015625000045],[-88.27143554687498,15.694873046875045],[-88.22832031249999,15.729003906249972],[-88.131103515625,15.701025390625034],[-87.87495117187495,15.879345703124955],[-86.35664062499998,15.783203125],[-85.93627929687497,15.953417968750045],[-85.98564453124999,16.02416992187497],[-85.48369140624996,15.899511718749977],[-84.97373046874998,15.989892578124994],[-84.55966796875,15.802001953125],[-84.26142578124998,15.822607421875034],[-83.765283203125,15.405468750000054],[-83.972802734375,15.519628906250034],[-84.11132812499997,15.492431640625],[-84.09506835937503,15.400927734375017],[-83.92744140624998,15.394042968750028],[-83.76044921874998,15.220361328124994],[-83.49794921874997,15.222119140624997],[-83.64638671875,15.368408203125043],[-83.36918945312493,15.239990234375],[-83.29086914062498,15.078906250000045],[-83.2255859375,15.042285156250045],[-83.15751953124999,14.993066406249966],[-83.41503906249994,15.008056640625],[-83.5365234375,14.977001953124983],[-83.635498046875,14.876416015624997]]]},"properties":{"name":"Honduras","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[17.60781250000005,42.76904296875],[17.744238281250063,42.70034179687505],[17.34414062500008,42.790380859375006],[17.60781250000005,42.76904296875]]],[[[16.650683593750017,42.99658203125],[17.188281250000045,42.917041015625045],[16.850683593750006,42.8955078125],[16.650683593750017,42.99658203125]]],[[[17.667578125000063,42.897119140624994],[18.436328125000017,42.559716796874994],[18.517480468750023,42.43291015624999],[17.823828125,42.79741210937502],[17.045410156250057,43.014892578125],[17.667578125000063,42.897119140624994]]],[[[16.785253906250006,43.270654296874966],[16.490332031250034,43.28618164062502],[16.44892578125004,43.38706054687506],[16.89130859375001,43.314648437499955],[16.785253906250006,43.270654296874966]]],[[[15.371386718750074,43.973828124999955],[15.437207031250068,43.899511718750006],[15.270019531250028,44.01074218750003],[15.371386718750074,43.973828124999955]]],[[[14.488085937500074,44.66005859375005],[14.31240234375008,44.90039062499997],[14.33125,45.16499023437498],[14.488085937500074,44.66005859375005]]],[[[14.810253906250068,44.97705078124997],[14.45039062500004,45.079199218750006],[14.571093750000017,45.224755859374994],[14.810253906250068,44.97705078124997]]],[[[18.905371093750006,45.931738281250034],[18.839062499999983,45.83574218750002],[19.064257812500045,45.51499023437506],[19.004687500000074,45.39951171875006],[19.4,45.2125],[19.062890625000023,45.13720703125],[19.007128906250045,44.86918945312502],[18.83642578125,44.883251953124955],[18.66259765625,45.07744140624999],[17.812792968750074,45.078125],[16.918652343749983,45.27656249999998],[16.53066406250008,45.21669921875002],[16.29335937500005,45.00883789062496],[16.028320312500057,45.18959960937502],[15.788085937500057,45.17895507812497],[15.736621093750045,44.76582031250001],[16.10341796875008,44.52099609375006],[16.300097656250017,44.12451171875],[17.27382812500005,43.44575195312501],[17.650488281250063,43.006591796875],[17.585156250000068,42.93837890625005],[16.903125,43.392431640625006],[16.393945312500023,43.54335937500002],[15.985546875000068,43.519775390625],[15.185839843750017,44.17211914062503],[15.122949218749994,44.256787109374955],[15.470996093750045,44.27197265625003],[14.981347656250023,44.60292968750005],[14.854589843750034,45.08100585937501],[14.550488281249983,45.297705078125006],[14.31269531250004,45.33779296875002],[13.86074218750008,44.83740234375003],[13.517187500000063,45.481787109375034],[13.878710937500017,45.428369140624994],[14.369921875000074,45.48144531250006],[14.427343750000034,45.50576171875002],[14.56884765625,45.65722656249997],[14.591796875000057,45.65126953125002],[14.649511718750006,45.57148437500001],[14.793066406250034,45.47822265625001],[14.95458984375,45.499902343749994],[15.110449218750034,45.450781250000034],[15.242089843750023,45.44140624999997],[15.339453125000063,45.46704101562506],[15.326660156250028,45.502294921875034],[15.291210937500011,45.541552734375045],[15.283593750000051,45.5796875],[15.35371093750004,45.659912109375],[15.27705078125004,45.73261718749998],[15.652148437500074,45.86215820312498],[15.675585937500045,45.98369140624996],[15.666210937500011,46.04848632812502],[15.596875,46.10922851562506],[15.592578125000017,46.139990234375006],[15.608984374999977,46.171923828125045],[16.1064453125,46.382226562499994],[16.32119140625005,46.53461914062504],[16.42763671875005,46.5244140625],[16.516210937499977,46.499902343749966],[16.569921875,46.48500976562505],[16.748046875000057,46.41640625000002],[16.87148437500008,46.33930664062504],[17.310644531250006,45.99614257812502],[17.80712890625,45.79042968750002],[18.358300781250023,45.75302734375006],[18.533593750000023,45.79614257812503],[18.56464843750004,45.81328124999999],[18.666015625,45.90747070312497],[18.905371093750006,45.931738281250034]]]]},"properties":{"name":"Croatia","childNum":8}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-72.80458984374997,18.777685546875063],[-72.82221679687501,18.707128906249977],[-73.07797851562498,18.790917968749994],[-73.27641601562499,18.95405273437501],[-72.80458984374997,18.777685546875063]]],[[[-71.647216796875,19.195947265624994],[-71.80712890624997,18.987011718749983],[-71.733642578125,18.85639648437501],[-71.72705078125,18.80322265625003],[-71.74321289062502,18.73291015625],[-71.86650390624999,18.61416015625005],[-71.98686523437499,18.61035156249997],[-72.000390625,18.59790039062503],[-71.94038085937493,18.51259765625005],[-71.87255859374997,18.416210937499955],[-71.76191406249998,18.34130859374997],[-71.73725585937495,18.27080078124999],[-71.76831054687497,18.039160156250063],[-71.85292968749997,18.119140625],[-71.94609375,18.186083984375045],[-72.05986328124993,18.228564453125017],[-72.87666015624998,18.151757812499994],[-73.38515625000002,18.251171874999983],[-73.747314453125,18.190234375000017],[-73.88496093749998,18.041894531249994],[-74.478125,18.45],[-74.3875,18.624707031249983],[-74.22773437499998,18.662695312499977],[-72.78935546874996,18.434814453125],[-72.37607421874998,18.57446289062503],[-72.34765624999994,18.674951171874994],[-72.81108398437496,19.071582031250074],[-72.70322265625,19.441064453125023],[-73.43837890624994,19.722119140624983],[-73.21777343750003,19.88369140625005],[-72.63701171875002,19.90087890625],[-72.21982421875003,19.744628906250057],[-71.834716796875,19.696728515624983],[-71.77924804687498,19.718164062499994],[-71.75742187499998,19.68818359375001],[-71.71147460937493,19.486572265625057],[-71.74648437499997,19.28583984375001],[-71.647216796875,19.195947265624994]]]]},"properties":{"name":"Haiti","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[22.1318359375,48.405322265624996],[22.253710937500017,48.407373046874994],[22.582421875000023,48.134033203125],[22.769140625,48.109619140625],[22.87666015625001,47.947265625],[21.99970703125001,47.505029296874994],[21.121679687500006,46.282421875],[20.76025390625,46.246240234374994],[20.613671875000023,46.13349609375],[20.508105468750017,46.166943359375],[20.28095703125001,46.1330078125],[20.241796875,46.10859375],[20.21015625000001,46.126025390624996],[20.161425781250017,46.141894531249996],[19.93408203125,46.161474609375],[19.84443359375001,46.145898437499994],[19.61347656250001,46.169189453125],[19.421289062500023,46.064453125],[18.666015625,45.907470703125],[18.56464843750001,45.81328125],[18.533593750000023,45.796142578125],[18.358300781250023,45.75302734375],[17.80712890625,45.790429687499994],[17.310644531250006,45.996142578124996],[16.871484375000023,46.339306640625],[16.748046875,46.41640625],[16.569921875,46.485009765624994],[16.516210937500006,46.499902343749994],[16.283593750000023,46.857275390625],[16.093066406250017,46.86328125],[16.453417968750017,47.006787109375],[16.44287109375,47.39951171875],[16.676562500000017,47.536035156249994],[16.421289062500023,47.674462890624994],[17.06660156250001,47.707568359374996],[17.147363281250023,48.00595703125],[17.76191406250001,47.770166015624994],[18.72421875,47.787158203124996],[18.791894531250023,48.000292968749996],[19.625390625000023,48.223095703125],[19.95039062500001,48.146630859374994],[20.333789062500017,48.295556640624994],[20.490039062500017,48.526904296874996],[21.45136718750001,48.55224609375],[21.766992187500023,48.3380859375],[22.1318359375,48.405322265624996]]]},"properties":{"name":"Hungary","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[122.9489257812501,-10.90927734375002],[122.82617187500003,-10.899121093749983],[122.84570312500003,-10.761816406249991],[123.37109375000003,-10.474902343749989],[123.41816406250004,-10.651269531250037],[122.9489257812501,-10.90927734375002]]],[[[121.8830078125001,-10.590332031249957],[121.70468750000006,-10.5556640625],[121.99833984375002,-10.446972656249983],[121.8830078125001,-10.590332031249957]]],[[[123.41621093750004,-10.302636718749966],[123.3255859375,-10.264160156249943],[123.45878906250002,-10.13994140624996],[123.41621093750004,-10.302636718749966]]],[[[120.0125,-9.374707031250026],[120.78447265625002,-9.95703125],[120.83261718750006,-10.0375],[120.69804687500002,-10.206640624999949],[120.4391601562501,-10.294042968749991],[120.14482421875002,-10.200097656249952],[119.60107421874997,-9.773535156250006],[119.08544921875003,-9.706933593750023],[118.95878906250002,-9.519335937500003],[119.29589843749997,-9.3671875],[119.9420898437501,-9.301464843750026],[120.0125,-9.374707031250026]]],[[[125.06816406250002,-9.511914062499997],[124.42753906250002,-10.14863281250004],[123.7472656250001,-10.347167968749986],[123.60478515625002,-10.270117187500006],[123.71640625000012,-10.078613281249986],[123.5892578125,-9.966796875000028],[123.709375,-9.61484375],[124.0363281250001,-9.341601562500031],[124.28232421875012,-9.427929687500026],[124.44443359375012,-9.190332031250023],[124.92226562500005,-8.942480468749977],[124.93681640625007,-9.053417968750026],[125.14902343750012,-9.042578125000034],[125.10048828125,-9.189843750000023],[124.96015625000004,-9.213769531250009],[125.06816406250002,-9.511914062499997]]],[[[115.60996093750012,-8.769824218749974],[115.48046875000003,-8.715429687500006],[115.56142578125,-8.669921874999972],[115.60996093750012,-8.769824218749974]]],[[[122.97734375000002,-8.54521484374996],[122.88779296875006,-8.587304687500009],[123.01054687500002,-8.448339843750034],[123.153125,-8.475781250000026],[122.97734375000002,-8.54521484374996]]],[[[119.46406250000004,-8.741015624999974],[119.38554687500002,-8.736035156250026],[119.4464843750001,-8.429199218749957],[119.55722656250012,-8.518847656250003],[119.46406250000004,-8.741015624999974]]],[[[123.31748046875012,-8.354785156249974],[123.02500000000012,-8.395507812500014],[123.21708984375002,-8.235449218750006],[123.33603515625006,-8.269042968750014],[123.31748046875012,-8.354785156249974]]],[[[116.64082031250004,-8.613867187500006],[116.51425781250012,-8.820996093750011],[116.58652343750012,-8.886132812499966],[116.23935546875006,-8.912109375000014],[115.85732421875005,-8.787890625000017],[116.07646484375002,-8.744921874999974],[116.06113281250006,-8.437402343750023],[116.4015625000001,-8.204199218750034],[116.7189453125001,-8.336035156249977],[116.64082031250004,-8.613867187500006]]],[[[124.28662109375003,-8.32949218749998],[124.14667968750004,-8.531445312499997],[123.92773437500003,-8.448925781249969],[124.23955078125002,-8.20341796874996],[124.28662109375003,-8.32949218749998]]],[[[123.92480468750003,-8.2724609375],[123.55302734375007,-8.566796875],[123.23007812500006,-8.530664062500023],[123.47587890625007,-8.322265625000014],[123.39121093750012,-8.280468750000026],[123.77597656250006,-8.190429687499986],[123.92480468750003,-8.2724609375]]],[[[138.89511718750006,-8.388671874999957],[138.56337890625,-8.30908203125],[138.79619140625007,-8.173632812500017],[138.89511718750006,-8.388671874999957]]],[[[117.55634765625004,-8.367285156249949],[117.49052734375007,-8.183398437499974],[117.66503906249997,-8.148242187500003],[117.55634765625004,-8.367285156249949]]],[[[124.5755859375,-8.140820312499997],[125.05029296874997,-8.179589843749994],[125.13173828125,-8.326464843749989],[124.38066406250002,-8.41513671875002],[124.43066406249997,-8.18320312500002],[124.5755859375,-8.140820312499997]]],[[[127.8234375000001,-8.098828124999969],[128.11923828125012,-8.17070312499996],[128.02353515625006,-8.255371093749972],[127.82089843750012,-8.190234375000031],[127.8234375000001,-8.098828124999969]]],[[[122.7829101562501,-8.61171875],[121.65136718749997,-8.898730468749946],[121.41464843750006,-8.81484375],[121.32832031250004,-8.916894531250009],[121.03525390625012,-8.935449218749966],[120.55048828125004,-8.80185546875002],[119.909375,-8.857617187500011],[119.80791015625002,-8.697656250000023],[119.87480468750007,-8.419824218749994],[120.61025390625005,-8.24042968750004],[121.44453125000004,-8.57783203125004],[121.96650390625004,-8.455175781250006],[122.32324218749997,-8.628320312500023],[122.85048828125,-8.304394531250011],[122.91914062500004,-8.221875],[122.75859375000002,-8.185937499999952],[122.91699218749997,-8.105566406250006],[123.00595703125006,-8.329101562499986],[122.7829101562501,-8.61171875]]],[[[130.86220703125,-8.31875],[130.77519531250002,-8.34990234374996],[131.02011718750012,-8.091308593749943],[131.17636718750006,-8.130761718749994],[130.86220703125,-8.31875]]],[[[118.24238281250004,-8.317773437499994],[118.61191406250006,-8.28066406249998],[118.71386718749997,-8.41494140624998],[118.926171875,-8.297656249999974],[119.12968750000002,-8.668164062499969],[118.74589843750002,-8.735449218749991],[118.83261718750012,-8.833398437499966],[118.47861328125012,-8.856445312499957],[118.37890625000003,-8.674609375000031],[118.18994140624997,-8.840527343749997],[117.06132812500002,-9.099023437499994],[116.78847656250005,-9.006347656250028],[116.83505859375012,-8.532421875000026],[117.16484375000007,-8.367187500000014],[117.56708984375004,-8.426367187499991],[117.80605468750005,-8.711132812500011],[117.96953125000002,-8.728027343749986],[118.23486328124997,-8.591894531249963],[117.81484375000005,-8.342089843749974],[117.7552734375,-8.149511718749991],[118.11748046875007,-8.12226562500004],[118.24238281250004,-8.317773437499994]]],[[[115.44785156250012,-8.155175781249994],[115.70429687500004,-8.40712890624998],[115.14492187500005,-8.849023437500037],[115.05507812500005,-8.573046874999946],[114.61318359375,-8.37832031249998],[114.46757812500007,-8.166308593749946],[114.93847656249997,-8.18710937500002],[115.15400390625004,-8.065722656249974],[115.44785156250012,-8.155175781249994]]],[[[129.83886718749997,-7.954589843749986],[129.71347656250012,-8.04072265625004],[129.60898437500006,-7.803417968750011],[129.81298828124997,-7.819726562499952],[129.83886718749997,-7.954589843749986]]],[[[126.80097656250004,-7.667871093750009],[126.4720703125,-7.950390625000011],[126.04003906250003,-7.885839843750006],[125.79824218750005,-7.984570312499969],[125.97529296875004,-7.663378906249989],[126.21367187500002,-7.706738281250026],[126.60957031250004,-7.571777343749972],[126.80097656250004,-7.667871093750009]]],[[[127.41943359375003,-7.623046875000028],[127.37070312500012,-7.512792968749949],[127.47519531250012,-7.531054687500031],[127.41943359375003,-7.623046875000028]]],[[[138.53535156250004,-8.273632812499969],[138.2962890625,-8.405175781250037],[137.65039062499997,-8.386132812499966],[138.08183593750002,-7.566210937500003],[138.29550781250012,-7.4384765625],[138.76982421875002,-7.390429687499974],[138.98906250000002,-7.696093749999989],[138.53535156250004,-8.273632812499969]]],[[[131.3255859375,-7.999511718749986],[131.11376953125003,-7.997363281249989],[131.13779296875012,-7.684863281250017],[131.64345703125,-7.11279296875],[131.73613281250007,-7.197070312500017],[131.64384765625002,-7.266894531249946],[131.62441406250005,-7.626171874999955],[131.3255859375,-7.999511718749986]]],[[[131.98203125000006,-7.202050781249966],[131.75078125000002,-7.116796875],[131.92226562500005,-7.104492187499986],[131.98203125000006,-7.202050781249966]]],[[[128.6701171875001,-7.183300781249969],[128.52978515625003,-7.134570312499989],[128.62773437500007,-7.06875],[128.6701171875001,-7.183300781249969]]],[[[120.77441406250003,-7.118945312500003],[120.64082031250004,-7.115820312499991],[120.63339843750006,-7.018261718750011],[120.77441406250003,-7.118945312500003]]],[[[113.84453125000007,-7.105371093749994],[113.12695312499997,-7.224121093750028],[112.72587890625007,-7.072753906250014],[112.86806640625,-6.899902343749972],[113.06738281250003,-6.879980468749991],[113.97470703125012,-6.873046875],[114.0736328125,-6.960156249999983],[113.84453125000007,-7.105371093749994]]],[[[115.37705078125006,-6.97080078125002],[115.22031250000012,-6.952539062500037],[115.24052734375007,-6.861230468749994],[115.54609375000004,-6.938671874999955],[115.37705078125006,-6.97080078125002]]],[[[105.25283203125005,-6.640429687499946],[105.12138671875007,-6.614941406249997],[105.26054687500002,-6.523925781250014],[105.25283203125005,-6.640429687499946]]],[[[134.53681640625004,-6.442285156249994],[134.32275390624997,-6.84873046875002],[134.09082031249997,-6.833789062500003],[134.10703125000006,-6.471582031250009],[134.19462890625007,-6.459765625],[134.11464843750005,-6.190820312500009],[134.53681640625004,-6.442285156249994]]],[[[107.37392578125005,-6.007617187499989],[107.66679687500002,-6.215820312499957],[108.33017578125012,-6.286035156249966],[108.67783203125006,-6.790527343749972],[110.42626953124997,-6.947265625000028],[110.83476562500002,-6.424218749999952],[110.97226562500012,-6.435644531249977],[111.18154296875005,-6.686718749999969],[111.54033203125002,-6.648242187500031],[112.0873046875,-6.89335937499996],[112.53925781250004,-6.926464843749955],[112.64873046875007,-7.221289062499977],[112.7943359375,-7.304492187499974],[112.79453125000012,-7.55244140625004],[113.01357421875005,-7.657714843749986],[113.49765625000006,-7.723828124999955],[114.07070312500005,-7.633007812500011],[114.40927734375012,-7.79248046875],[114.38691406250004,-8.405175781250037],[114.58378906250002,-8.769628906250034],[113.25332031250005,-8.286718749999963],[112.67880859375006,-8.409179687499957],[111.50996093750004,-8.30507812499998],[110.60722656250002,-8.149414062499972],[109.28164062500005,-7.704882812500003],[108.74121093749997,-7.667089843750034],[108.45175781250006,-7.79697265625002],[107.91748046875003,-7.724121093750014],[107.28496093750007,-7.471679687500014],[106.45527343750004,-7.368652343749986],[106.51972656250004,-7.053710937499943],[106.19824218749997,-6.927832031249977],[105.25546875000012,-6.835253906250031],[105.37089843750002,-6.664355468750031],[105.48369140625007,-6.781542968750017],[105.65507812500002,-6.469531249999946],[105.78691406250002,-6.456933593749966],[105.86826171875006,-6.11640625000004],[106.075,-5.914160156249963],[106.82519531249997,-6.098242187499977],[107.0462890625,-5.90419921874998],[107.37392578125005,-6.007617187499989]]],[[[120.52832031249997,-6.2984375],[120.48730468749997,-6.464843749999972],[120.47734375000007,-5.775292968750009],[120.52832031249997,-6.2984375]]],[[[112.7194335937501,-5.81103515625],[112.58603515625006,-5.803613281249994],[112.69003906250006,-5.726171875000034],[112.7194335937501,-5.81103515625]]],[[[132.80712890625003,-5.850781250000011],[132.68144531250002,-5.91259765625],[132.63017578125002,-5.60703125],[132.80712890625003,-5.850781250000011]]],[[[134.74697265625,-5.707031249999957],[134.71416015625007,-6.29511718750004],[134.44111328125004,-6.334863281249966],[134.15488281250006,-6.06289062499998],[134.3019531250001,-6.009765624999986],[134.34306640625002,-5.833007812499943],[134.20537109375002,-5.707226562499997],[134.34130859375003,-5.712890624999986],[134.57080078124997,-5.42734375],[134.74697265625,-5.707031249999957]]],[[[132.92626953124997,-5.902050781249983],[132.84501953125002,-5.987988281249997],[133.13847656250002,-5.317871093749986],[133.11962890625003,-5.575976562499989],[132.92626953124997,-5.902050781249983]]],[[[102.36718750000003,-5.478710937499983],[102.1107421875,-5.32255859374996],[102.3717773437501,-5.366406250000011],[102.36718750000003,-5.478710937499983]]],[[[123.62675781250007,-5.271582031249963],[123.58261718750006,-5.36738281250004],[123.54277343750002,-5.271093749999963],[123.62675781250007,-5.271582031249963]]],[[[122.04296874999997,-5.437988281250028],[121.80849609375,-5.256152343750017],[121.91367187500012,-5.072265624999957],[122.04101562500003,-5.158789062499991],[122.04296874999997,-5.437988281250028]]],[[[122.64511718750012,-5.26943359374998],[122.5638671875,-5.3875],[122.28310546875,-5.319531249999969],[122.39628906250002,-5.069824218749986],[122.36894531250007,-4.767187499999977],[122.70195312500002,-4.61865234375],[122.75986328125012,-4.933886718750003],[122.61406250000007,-5.138671874999986],[122.64511718750012,-5.26943359374998]]],[[[123.17978515625006,-4.551171875000023],[123.195703125,-4.82265625],[123.05517578124997,-4.748242187500026],[122.97167968750003,-5.138476562500031],[123.18730468750007,-5.333007812499957],[122.96875,-5.405761718749943],[122.81210937500012,-5.671289062499952],[122.64501953124997,-5.663378906250031],[122.58642578124997,-5.488867187500006],[122.76650390625005,-5.210156249999983],[122.85332031250007,-4.618359375000026],[123.074609375,-4.38691406250004],[123.17978515625006,-4.551171875000023]]],[[[133.57080078124997,-4.245898437500003],[133.621875,-4.299316406249957],[133.32089843750006,-4.111035156249969],[133.57080078124997,-4.245898437500003]]],[[[123.2423828125001,-4.112988281250011],[123.07617187499997,-4.227148437499991],[122.96904296875002,-4.029980468749969],[123.21191406250003,-3.997558593750028],[123.2423828125001,-4.112988281250011]]],[[[128.56259765625012,-3.58544921875],[128.39160156250003,-3.637890625000026],[128.45156250000005,-3.514746093749991],[128.56259765625012,-3.58544921875]]],[[[128.2755859375001,-3.67460937499996],[127.97802734374997,-3.770996093749972],[127.925,-3.69931640625002],[128.32910156249997,-3.51591796874996],[128.2755859375001,-3.67460937499996]]],[[[116.42412109375007,-3.464453124999963],[116.38779296875012,-3.636718749999972],[116.3265625,-3.539062499999972],[116.42412109375007,-3.464453124999963]]],[[[116.30332031250006,-3.868164062499957],[116.05878906250004,-4.006933593749991],[116.06357421875006,-3.457910156249952],[116.26972656250004,-3.251074218750006],[116.30332031250006,-3.868164062499957]]],[[[126.86113281250007,-3.087890624999986],[127.22734375000007,-3.391015625],[127.22958984375006,-3.633007812500011],[126.68632812500007,-3.823632812500037],[126.21455078125004,-3.605175781250026],[126.05654296875,-3.420996093749991],[126.08828125,-3.105468750000014],[126.86113281250007,-3.087890624999986]]],[[[106.88642578125004,-3.005273437500023],[106.7428710937501,-2.932812500000011],[106.91064453124997,-2.93398437499998],[106.88642578125004,-3.005273437500023]]],[[[129.75468750000007,-2.865820312500034],[130.3791015625001,-2.989355468749977],[130.56992187500006,-3.130859375000028],[130.85996093750006,-3.570312500000028],[130.805078125,-3.85771484374996],[129.844140625,-3.327148437499957],[129.51171875000003,-3.32851562499998],[129.46767578125005,-3.453222656249977],[128.8625,-3.234960937500006],[128.51660156249997,-3.449121093750037],[128.13203125000004,-3.157421875000026],[127.90234374999997,-3.496289062499955],[127.87792968749997,-3.222070312499966],[128.19853515625002,-2.865917968749969],[128.99111328125,-2.82851562499998],[129.17441406250006,-2.933496093749966],[129.48417968750002,-2.785742187499977],[129.75468750000007,-2.865820312500034]]],[[[100.42509765625007,-3.182910156249974],[100.46513671875007,-3.32851562499998],[100.20429687500004,-2.98681640625],[100.19853515625002,-2.785546875000023],[100.45458984375003,-3.001953124999972],[100.42509765625007,-3.182910156249974]]],[[[108.2072265625001,-2.997656249999977],[108.05527343750006,-3.22685546874996],[107.85820312500002,-3.086328125000023],[107.61445312500004,-3.209375],[107.56347656250003,-2.920117187499997],[107.66630859375002,-2.566308593750037],[107.83779296875005,-2.530273437499972],[108.21513671875002,-2.696972656250011],[108.29062500000012,-2.829980468750023],[108.2072265625001,-2.997656249999977]]],[[[100.20410156249997,-2.741015625000017],[100.01494140625007,-2.819726562499966],[99.98789062500006,-2.525390624999957],[100.20410156249997,-2.741015625000017]]],[[[99.84306640625007,-2.343066406250031],[99.60703125000012,-2.257519531250011],[99.57216796875005,-2.025781249999966],[99.84306640625007,-2.343066406250031]]],[[[126.055078125,-2.451269531249963],[125.86289062500006,-2.077148437499943],[125.92275390625,-1.974804687499969],[126.055078125,-2.451269531249963]]],[[[126.02421875000007,-1.789746093750011],[126.33173828125004,-1.822851562500006],[125.47919921875004,-1.940039062499991],[125.38720703124997,-1.843066406249946],[126.02421875000007,-1.789746093750011]]],[[[130.35332031250007,-1.690527343749963],[130.41884765625,-1.971289062499963],[130.24804687500003,-2.047753906249994],[129.7376953125,-1.866894531250011],[130.35332031250007,-1.690527343749963]]],[[[124.96953125000007,-1.70546875],[125.18789062500005,-1.712890624999986],[125.31406250000006,-1.877148437499969],[124.41777343750002,-2.005175781250031],[124.32968750000012,-1.858886718749972],[124.41757812500006,-1.659277343749991],[124.96953125000007,-1.70546875]]],[[[135.47421875000006,-1.591796875000014],[136.89257812500003,-1.799707031249994],[136.22812500000012,-1.893652343749949],[135.47421875000006,-1.591796875000014]]],[[[108.953125,-1.61962890625],[108.83789062499997,-1.661621093750028],[108.80371093750003,-1.567773437499994],[108.953125,-1.61962890625]]],[[[106.04570312500002,-1.669433593750014],[106.36591796875004,-2.464843749999972],[106.81845703125006,-2.573339843749963],[106.6120117187501,-2.895507812499957],[106.66718750000004,-3.071777343749986],[105.99873046875004,-2.824902343749955],[105.7858398437501,-2.18134765625004],[105.13339843750012,-2.042578125],[105.45957031250006,-1.574707031249986],[105.58544921875003,-1.526757812499994],[105.7008789062501,-1.731054687499963],[105.7204101562501,-1.533886718750026],[105.91005859375,-1.504980468749991],[106.04570312500002,-1.669433593750014]]],[[[123.59755859375,-1.704296875000011],[123.48251953125006,-1.681445312499974],[123.52851562500004,-1.502832031250009],[123.59755859375,-1.704296875000011]]],[[[128.1530273437501,-1.66054687499998],[127.56162109375012,-1.728515624999972],[127.39501953125003,-1.589843749999972],[127.64667968750004,-1.332421875],[128.1530273437501,-1.66054687499998]]],[[[123.2123046875,-1.171289062499966],[123.23779296874997,-1.389355468749983],[123.43476562500004,-1.236816406249986],[123.54726562500005,-1.337402343749957],[123.51191406250004,-1.447363281249977],[123.27490234374997,-1.437207031249955],[123.17294921875006,-1.616015624999974],[123.15039062500003,-1.304492187500003],[122.89042968750007,-1.58720703124996],[122.81083984375002,-1.432128906249986],[122.90800781250002,-1.182226562499963],[123.2123046875,-1.171289062499966]]],[[[109.71025390625007,-1.1806640625],[109.46367187500002,-1.277539062500026],[109.4759765625,-0.9853515625],[109.74335937500004,-1.039355468749989],[109.71025390625007,-1.1806640625]]],[[[134.96533203124997,-1.116015624999974],[134.86171875,-1.114160156249952],[134.82792968750002,-0.978808593750003],[134.99628906250004,-1.03408203124998],[134.96533203124997,-1.116015624999974]]],[[[99.16386718750007,-1.777929687500006],[98.82773437500006,-1.609960937499977],[98.60175781250004,-1.197851562499949],[98.67607421875007,-0.970507812500003],[98.93261718750003,-0.954003906250009],[99.2672851562501,-1.62773437499996],[99.16386718750007,-1.777929687500006]]],[[[131.00185546875005,-1.315527343750034],[130.78232421875006,-1.255468749999963],[130.67294921875006,-0.959765625000031],[131.03300781250007,-0.917578124999963],[131.00185546875005,-1.315527343750034]]],[[[135.38300781250004,-0.6513671875],[135.89355468749997,-0.725781249999969],[136.37529296875007,-1.094042968750031],[136.1647460937501,-1.214746093750023],[135.91503906250003,-1.178417968749997],[135.74707031249997,-0.823046874999974],[135.64570312500004,-0.881933593749991],[135.38300781250004,-0.6513671875]]],[[[127.30039062500012,-0.780957031250026],[127.1564453125001,-0.760937500000026],[127.20908203125006,-0.619335937499955],[127.30039062500012,-0.780957031250026]]],[[[130.6266601562501,-0.528710937499966],[130.46542968750006,-0.486523437499983],[130.6159179687501,-0.417285156250003],[130.6266601562501,-0.528710937499966]]],[[[121.86435546875012,-0.406835937500006],[121.88125,-0.502636718749983],[121.65527343749997,-0.526171874999989],[121.86435546875012,-0.406835937500006]]],[[[140.97343750000007,-2.609765625],[140.97353515625,-2.803417968750026],[140.975,-6.346093750000023],[140.86230468749997,-6.740039062499989],[140.97519531250006,-6.90537109375002],[140.97617187500012,-9.11875],[140.00292968749997,-8.19550781250004],[140.11699218750002,-7.923730468750009],[139.93476562500004,-8.101171875],[139.38564453125,-8.189062499999963],[139.24882812500002,-7.982421874999972],[138.890625,-8.237792968749943],[139.08798828125012,-7.587207031250017],[138.74794921875,-7.25146484375],[139.17685546875006,-7.1904296875],[138.84570312500003,-7.13632812499999],[138.60136718750007,-6.936523437499972],[138.86455078125007,-6.858398437499943],[138.43867187500004,-6.343359375],[138.2962890625,-5.94902343749996],[138.37460937500006,-5.84365234374998],[138.19960937500005,-5.80703125],[138.33964843750007,-5.675683593749966],[138.08710937500004,-5.70917968750004],[138.06083984375002,-5.46523437499998],[137.27978515624997,-4.945410156249949],[136.61884765625004,-4.81875],[135.97968750000004,-4.530859374999963],[135.19560546875007,-4.450683593749972],[134.67968749999997,-4.079101562499943],[134.70654296875003,-3.954785156250026],[134.88652343750007,-3.938476562499986],[134.26621093750012,-3.945800781249972],[134.14707031250006,-3.79677734374998],[133.97382812500004,-3.817968750000034],[133.67832031250006,-3.4794921875],[133.8415039062501,-3.054785156249991],[133.70039062500004,-3.0875],[133.653125,-3.364355468749991],[133.51816406250012,-3.411914062500003],[133.40087890625003,-3.899023437500034],[133.24873046875004,-4.062304687499989],[132.91445312500005,-4.05693359374996],[132.75390625000003,-3.703613281250014],[132.86972656250006,-3.550976562499997],[132.75136718750005,-3.294628906249997],[131.97119140624997,-2.788574218750014],[132.2306640625001,-2.680371093749997],[132.725,-2.789062500000028],[133.19101562500006,-2.43779296874996],[133.70009765625005,-2.624609375],[133.75332031250005,-2.450683593750014],[133.90488281250012,-2.390917968750003],[133.79101562500003,-2.293652343749997],[133.92158203125004,-2.102050781249957],[132.96279296875005,-2.272558593749963],[132.30761718749997,-2.24228515625002],[132.02343749999997,-1.99033203125002],[131.93037109375004,-1.559667968750034],[131.29375,-1.393457031250009],[130.99589843750007,-1.42470703124998],[131.1908203125,-1.165820312500003],[131.2572265625,-0.855468750000014],[131.80429687500006,-0.703808593750026],[132.39375,-0.355468750000028],[132.85644531250003,-0.417382812500023],[133.47265624999997,-0.726171874999963],[133.97451171875,-0.744335937500026],[134.11152343750004,-0.84677734375002],[134.07197265625004,-1.001855468749994],[134.25957031250007,-1.362988281250026],[134.105859375,-1.720996093749946],[134.19482421875003,-2.309082031249943],[134.45996093749997,-2.83232421874996],[134.48330078125,-2.583007812499972],[134.62744140624997,-2.536718749999963],[134.70214843749997,-2.933593749999986],[134.84335937500006,-2.909179687499986],[134.88681640625006,-3.209863281249966],[135.25156250000012,-3.368554687499966],[135.48662109375002,-3.34511718749998],[135.85917968750002,-2.99531250000004],[136.38994140625002,-2.273339843750037],[137.07207031250002,-2.105078124999949],[137.1710937500001,-2.025488281249991],[137.1234375,-1.840917968749963],[137.80625000000012,-1.483203125],[139.78955078125003,-2.34824218750002],[140.62255859374997,-2.44580078125],[140.74746093750005,-2.607128906249997],[140.97343750000007,-2.609765625]]],[[[104.47421875000012,-0.334667968749955],[104.59013671875002,-0.466601562500017],[104.36318359375,-0.658593749999966],[104.25712890625002,-0.463281249999966],[104.47421875000012,-0.334667968749955]]],[[[127.56699218750006,-0.318945312499949],[127.68242187500002,-0.46835937500002],[127.60498046874997,-0.610156249999946],[127.88017578125002,-0.808691406249991],[127.7611328125,-0.883691406249994],[127.62382812500002,-0.76601562499999],[127.46269531250002,-0.80595703124996],[127.46865234375,-0.64296875],[127.3,-0.500292968749946],[127.32509765625,-0.335839843750023],[127.45517578125012,-0.406347656249991],[127.56699218750006,-0.318945312499949]]],[[[127.24990234375005,-0.4953125],[127.11914062500003,-0.520507812499986],[127.12646484375003,-0.278613281250003],[127.29003906250003,-0.284375],[127.24990234375005,-0.4953125]]],[[[103.73652343750004,-0.347949218750003],[103.461328125,-0.357617187500011],[103.54892578125006,-0.227539062499986],[103.73652343750004,-0.347949218750003]]],[[[130.81328125000007,-0.004101562500026],[131.27685546875003,-0.149804687499952],[131.33974609375005,-0.290332031249989],[131.00537109374997,-0.360742187500037],[130.62216796875006,-0.0859375],[130.89921875000002,-0.344433593749997],[130.7501953125001,-0.44384765625],[130.6886718750001,-0.296582031250011],[130.55078124999997,-0.366406250000026],[130.23662109375002,-0.209667968749983],[130.3625,-0.072851562500006],[130.81328125000007,-0.004101562500026]]],[[[98.45927734375007,-0.530468749999969],[98.30966796875012,-0.531835937499977],[98.4271484375,-0.226464843750037],[98.3229492187501,-0.000781249999974],[98.54414062500004,-0.257617187499989],[98.45927734375007,-0.530468749999969]]],[[[104.77861328125007,-0.175976562499955],[105.00537109374997,-0.282812499999963],[104.44707031250002,-0.189160156249983],[104.54267578125004,0.01772460937498],[104.77861328125007,-0.175976562499955]]],[[[103.28447265625002,0.541943359375011],[103.13955078125,0.549072265625043],[103.18740234375,0.699755859375017],[103.28447265625002,0.541943359375011]]],[[[103.0275390625001,0.746630859374974],[102.4904296875001,0.856640625],[102.50664062500002,1.088769531250037],[103.00244140624997,0.859277343750009],[103.0275390625001,0.746630859374974]]],[[[103.42392578125012,1.048339843749972],[103.31542968750003,1.071289062500028],[103.37998046875006,1.133642578125034],[103.42392578125012,1.048339843749972]]],[[[103.16640625000005,0.870166015625003],[102.7018554687501,1.0537109375],[102.72558593749997,1.158837890625023],[102.99941406250005,1.067773437500023],[103.16640625000005,0.870166015625003]]],[[[104.02480468750005,1.180566406250009],[104.13984375000004,1.165576171874974],[104.06611328125004,0.989550781249989],[103.93222656250012,1.071386718749963],[104.02480468750005,1.180566406250009]]],[[[104.58535156250005,1.21611328124996],[104.66289062500002,1.04951171875004],[104.57519531250003,0.831933593750037],[104.43925781250002,1.050439453125051],[104.25195312499997,1.014892578125],[104.36181640624997,1.18149414062502],[104.58535156250005,1.21611328124996]]],[[[102.4271484375,0.990136718750023],[102.27958984375002,1.075683593750043],[102.25634765625003,1.397070312499963],[102.44287109374997,1.234228515625006],[102.4271484375,0.990136718750023]]],[[[97.48154296875006,1.465087890624972],[97.93193359375002,0.973925781250003],[97.82041015625012,0.564453124999986],[97.683984375,0.596093750000037],[97.60390625000005,0.83388671874998],[97.40537109375012,0.946972656250026],[97.07919921875006,1.425488281249983],[97.35595703124997,1.539746093749997],[97.48154296875006,1.465087890624972]]],[[[102.49189453125004,1.459179687500011],[102.49941406250005,1.330908203124991],[102.02402343750012,1.607958984375031],[102.49189453125004,1.459179687500011]]],[[[124.88886718750004,0.995312500000011],[124.42753906250002,0.470605468750051],[123.75380859375,0.305517578124991],[123.26542968750007,0.326611328125026],[122.996875,0.493505859375006],[121.01298828125002,0.441699218750017],[120.57900390625,0.5283203125],[120.19228515625,0.268505859374997],[120.01328125000012,-0.196191406249994],[120.062890625,-0.555566406250023],[120.240625,-0.868261718749949],[120.51757812499997,-1.039453125],[120.66738281250005,-1.370117187499972],[121.14853515625012,-1.33945312500002],[121.5755859375,-0.828515625000023],[121.96962890625005,-0.933300781249969],[122.27998046875004,-0.757031250000026],[122.88876953125006,-0.755175781250003],[122.8294921875,-0.658886718750026],[123.17148437500012,-0.57070312499999],[123.37968750000002,-0.648535156249949],[123.43417968750006,-0.778222656249994],[123.37792968749997,-1.004101562500011],[122.90283203125003,-0.900976562499963],[122.25068359375004,-1.555273437500034],[121.8585937500001,-1.69326171874998],[121.65097656250006,-1.895410156249952],[121.35546874999997,-1.878222656250003],[122.29169921875004,-2.907617187500023],[122.39902343750006,-3.200878906249997],[122.25292968749997,-3.620410156250017],[122.68964843750004,-4.084472656249972],[122.84794921875002,-4.064550781250006],[122.8722656250001,-4.391992187500009],[122.71972656250003,-4.340722656249952],[122.11425781250003,-4.540234375000011],[122.03808593749997,-4.832421875000023],[121.58867187500007,-4.759570312500017],[121.48652343750004,-4.581054687499972],[121.61806640625,-4.092675781249952],[120.89179687500004,-3.520605468750034],[121.05429687500012,-3.167089843749949],[121.0521484375,-2.751660156249955],[120.87939453124997,-2.64560546875002],[120.65361328125002,-2.667578124999977],[120.26103515625007,-2.949316406249991],[120.43662109375012,-3.70732421874996],[120.42011718750004,-4.617382812500011],[120.27929687499997,-5.146093749999977],[120.4303710937501,-5.591015625000026],[119.9515625,-5.577636718749972],[119.71728515625003,-5.693359375000014],[119.55742187500007,-5.611035156250026],[119.36035156249997,-5.314160156250026],[119.59404296875007,-4.523144531249997],[119.62363281250006,-4.034375],[119.46748046875004,-3.512988281249989],[118.99462890624997,-3.537597656250028],[118.86767578124997,-3.39804687500002],[118.78330078125006,-2.720800781249977],[119.09218750000005,-2.482910156250014],[119.32187500000012,-1.929687500000014],[119.308984375,-1.408203125],[119.508203125,-0.906738281249972],[119.71132812500005,-0.680761718750034],[119.84433593750006,-0.861914062499991],[119.721875,-0.088476562499991],[119.865625,0.040087890625003],[119.80927734375004,0.238671875000051],[119.9132812500001,0.445068359375],[120.26953125000003,0.970800781249991],[120.60253906249997,0.854394531249994],[120.86796875000007,1.25283203124998],[121.0817382812501,1.327636718750028],[121.40410156250002,1.243603515624969],[121.59179687499997,1.067968749999977],[122.43662109375006,1.018066406250028],[122.83828125,0.845703125],[123.06650390625006,0.941796875000037],[123.93076171875006,0.850439453124977],[124.53369140624997,1.230468750000043],[124.94707031250002,1.672167968749974],[125.11093750000012,1.685693359374966],[125.2337890625,1.502294921875006],[124.88886718750004,0.995312500000011]]],[[[101.70810546875006,2.078417968750045],[101.71943359375004,1.789160156250006],[101.50078125000002,1.733203124999974],[101.40966796875003,2.021679687500026],[101.70810546875006,2.078417968750045]]],[[[127.73271484375007,0.848144531250043],[127.8810546875001,0.832128906249977],[127.96728515624997,1.042578125000048],[128.16074218750006,1.1578125],[128.22246093750002,1.400634765624986],[128.68837890625,1.572558593750017],[128.70263671874997,1.106396484374997],[128.29882812500003,0.87680664062502],[128.26064453125,0.733789062500023],[128.61123046875,0.549951171875051],[128.89960937500004,0.216259765625011],[127.9831054687501,0.471875],[127.88740234375004,0.298339843750043],[127.97783203125002,-0.24833984374996],[128.4254882812501,-0.892675781249949],[128.04638671875003,-0.706054687499943],[127.69160156250004,-0.241894531249983],[127.70869140625004,0.288085937499986],[127.53710937500003,0.610888671875031],[127.60800781250006,0.848242187499977],[127.42851562500002,1.139990234374991],[127.63173828125,1.843701171875011],[128.03642578125002,2.199023437500017],[127.88681640625012,1.83295898437504],[128.0109375000001,1.701220703125031],[128.01171874999997,1.331738281249983],[127.65283203124997,1.013867187499969],[127.73271484375007,0.848144531250043]]],[[[97.3341796875001,2.075634765625011],[97.10830078125,2.216894531250006],[97.29140625,2.200830078125023],[97.3341796875001,2.075634765625011]]],[[[128.45390625000002,2.051757812500028],[128.29589843749997,2.034716796875017],[128.2179687500001,2.297460937499991],[128.60214843750012,2.59760742187504],[128.68847656250003,2.473681640625017],[128.62324218750004,2.224414062500031],[128.45390625000002,2.051757812500028]]],[[[96.46367187500002,2.360009765625037],[95.80859374999997,2.655615234375034],[95.7171875,2.825976562500017],[95.89580078125007,2.8890625],[96.41728515625007,2.515185546875031],[96.46367187500002,2.360009765625037]]],[[[108.8875,2.905419921875037],[108.7865234375,2.885644531250009],[108.88574218750003,2.998974609374997],[108.8875,2.905419921875037]]],[[[105.76035156250006,2.863037109375014],[105.69218750000002,3.0625],[105.83671875000007,2.97651367187504],[105.76035156250006,2.863037109375014]]],[[[106.28525390625006,3.15712890624998],[106.28369140624997,3.088232421874977],[106.20097656250002,3.204882812500031],[106.28525390625006,3.15712890624998]]],[[[117.65839843750004,3.280517578124986],[117.54785156250003,3.43198242187502],[117.68085937500004,3.407519531250017],[117.65839843750004,3.280517578124986]]],[[[125.65810546875,3.436035156250043],[125.51152343750007,3.461132812500011],[125.46884765625006,3.73325195312502],[125.65810546875,3.436035156250043]]],[[[117.88476562499997,4.186132812500006],[117.92285156250003,4.054296874999977],[117.73681640624997,4.004003906250034],[117.64902343750012,4.168994140624974],[117.88476562499997,4.186132812500006]]],[[[108.31601562500006,3.689648437500026],[108.10039062500002,3.70454101562504],[108.24326171875006,3.810351562500017],[108.00234375,3.982861328124983],[108.24833984375002,4.21713867187502],[108.39287109375007,3.986181640625034],[108.31601562500006,3.689648437500026]]],[[[117.5744140625001,4.17060546875004],[117.46533203124997,4.076074218749966],[117.77724609375005,3.689257812500031],[117.05595703125007,3.622656249999963],[117.34628906250006,3.426611328124991],[117.35244140625,3.19375],[117.61064453125002,3.064355468749994],[117.56914062500002,2.92929687500002],[117.69765625,2.887304687499991],[117.6388671875001,2.825292968749963],[118.0666015625001,2.317822265624969],[117.7892578125001,2.026855468750014],[118.98496093750006,0.982128906249983],[118.53476562500006,0.813525390625017],[118.19609375000002,0.874365234374977],[117.91162109374997,1.098681640625017],[117.96425781250005,0.889550781250051],[117.74511718749997,0.72963867187498],[117.52216796875004,0.235888671875017],[117.46289062500003,-0.323730468749957],[117.5625,-0.770898437500009],[116.91396484375,-1.223632812499972],[116.73984375000006,-1.044238281250017],[116.75341796874997,-1.327343749999955],[116.27548828125006,-1.784863281249997],[116.42431640625003,-1.784863281249997],[116.45195312500002,-1.923144531250017],[116.31396484374997,-2.139843750000011],[116.56542968749997,-2.299707031249994],[116.52929687499997,-2.51054687499996],[116.31679687500005,-2.55185546875002],[116.33066406250012,-2.902148437499974],[116.16630859375002,-2.934570312500014],[116.2572265625,-3.126367187500009],[115.95615234375012,-3.595019531250003],[114.6935546875001,-4.169726562500017],[114.5255859375001,-3.376660156250011],[114.44599609375004,-3.481835937500037],[114.34433593750012,-3.444433593749963],[114.34433593750012,-3.23515625],[114.23632812500003,-3.36113281249996],[114.0822265625001,-3.27890625],[113.70507812499997,-3.45527343750004],[113.6100585937501,-3.195703125],[113.34316406250005,-3.246484374999966],[113.03398437500002,-2.933496093749966],[112.97148437500002,-3.187109375000034],[112.75800781250004,-3.322167968750009],[112.60029296875004,-3.400488281249977],[112.28496093750002,-3.32099609375004],[111.85810546875004,-3.551855468750006],[111.82304687500007,-3.057226562499949],[111.69472656250005,-2.88945312499996],[110.93007812500005,-3.071093750000017],[110.82968750000012,-2.9951171875],[110.89931640625,-2.908593749999952],[110.703125,-3.020898437500009],[110.57402343750007,-2.89140625],[110.25605468750004,-2.966113281249946],[110.09658203125,-2.001367187499966],[109.95986328125,-1.862792968749972],[109.98330078125,-1.274804687499994],[109.78740234375007,-1.011328124999963],[109.25878906250003,-0.807421874999989],[109.37275390625004,-0.638183593749972],[109.12109375000003,-0.39091796874996],[109.2575195312501,0.031152343750051],[108.94453125000004,0.355664062499997],[108.91679687500007,0.912646484375045],[108.95859375000006,1.134619140624963],[109.1315429687501,1.253857421875011],[109.01025390624997,1.239648437500051],[109.07587890625004,1.495898437500031],[109.37851562500006,1.922705078125034],[109.62890625000003,2.027539062499983],[109.53896484375,1.89619140625004],[109.65400390625004,1.614892578125023],[110.50576171875005,0.861962890625023],[111.10136718750002,1.050537109374986],[111.80898437500005,1.011669921874969],[112.078515625,1.143359374999974],[112.1857421875001,1.4390625],[112.47617187500006,1.559082031250028],[112.94296875000006,1.566992187500034],[113.00654296875004,1.433886718750003],[113.6222656250001,1.2359375],[113.90234375000003,1.434277343749997],[114.5125,1.452001953124963],[114.83056640625003,1.980029296874989],[114.78642578125002,2.250488281250014],[115.1791015625,2.523193359374972],[115.08076171875004,2.63422851562504],[115.117578125,2.89487304687502],[115.24697265625005,3.025927734374989],[115.45439453125002,3.034326171875009],[115.67880859375006,4.193017578124994],[115.86074218750005,4.348046875000037],[116.51474609375006,4.370800781249969],[117.10058593750003,4.337060546875023],[117.5744140625001,4.17060546875004]]],[[[126.81660156250004,4.033496093750003],[126.70449218750005,4.070996093749997],[126.81357421875006,4.258496093750011],[126.72207031250005,4.344189453124969],[126.75732421874997,4.547900390624989],[126.9210937500001,4.291015624999972],[126.81660156250004,4.033496093750003]]],[[[96.49257812500005,5.229345703124991],[97.54716796875002,5.205859375],[98.2484375,4.41455078125],[98.3073242187501,4.09287109375002],[99.73232421875005,3.183056640625026],[100.523828125,2.18916015625004],[100.88789062500004,1.948242187499986],[100.82822265625012,2.242578125],[101.04619140625002,2.257470703125023],[101.47666015625006,1.693066406250054],[102.019921875,1.442138671875],[102.38994140625007,0.84199218750004],[103.03183593750006,0.57890625],[103.0075195312501,0.415332031249974],[102.55,0.216455078124966],[103.33896484375012,0.513720703125045],[103.67265625000007,0.288916015624977],[103.78671875000012,0.046972656249991],[103.42851562500007,-0.19179687499998],[103.40517578125005,-0.36220703124998],[103.5091796875,-0.465527343749969],[103.43857421875006,-0.575585937500009],[103.72109375,-0.886718749999986],[104.36054687500004,-1.038378906249974],[104.51591796875002,-1.81943359375002],[104.84521484375003,-2.092968749999969],[104.65078125000005,-2.595214843749972],[104.97080078125012,-2.370898437500017],[105.39697265624997,-2.380175781249946],[106.0443359375,-3.10625],[105.84375,-3.61367187499998],[105.93046875000007,-3.833007812499986],[105.83144531250005,-4.16289062499996],[105.88720703124997,-5.009570312499974],[105.74833984375007,-5.818261718749966],[105.34941406250007,-5.549511718750011],[105.08134765625002,-5.74550781249998],[104.63955078125005,-5.520410156250037],[104.68398437500005,-5.89267578125002],[104.60156249999997,-5.90458984374996],[103.8314453125,-5.079589843750028],[102.53769531250006,-4.152148437499989],[102.12753906250006,-3.599218749999963],[101.57861328124997,-3.166992187500014],[100.88955078125,-2.248535156249957],[100.85527343750002,-1.934179687499949],[100.30820312500006,-0.82666015625],[99.66982421875005,0.045068359375037],[99.15917968749997,0.351757812499997],[98.59531250000006,1.864599609375006],[97.70078125000006,2.358544921875009],[97.59082031249997,2.846582031250037],[97.3913085937501,2.975292968749969],[96.9689453125001,3.575146484374969],[96.44472656250005,3.81630859374998],[95.57861328125003,4.661962890625048],[95.20664062500006,5.284033203125034],[95.22783203125002,5.564794921875034],[95.62890625000003,5.609082031249997],[96.13330078125003,5.294287109374991],[96.49257812500005,5.229345703124991]]]]},"properties":{"name":"Indonesia","childNum":107}},{"geometry":{"type":"Polygon","coordinates":[[[-4.412060546874983,54.185351562499996],[-4.785351562499983,54.073046875],[-4.424707031249994,54.407177734375],[-4.412060546874983,54.185351562499996]]]},"properties":{"name":"Isle of Man","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[75.32221348233018,32.28516356678968],[75.62496871116024,32.28516356678968],[75.73585997688717,32.78417426256088],[76.32728006076415,32.87658365066666],[76.62299010270264,33.32014871357439],[77.06655516561037,33.301666835953235],[77.71342088235082,32.6917648744551],[78.10154031239509,32.87658365066666],[78.49194250885338,32.53122786149202],[78.38964843749997,32.51987304687498],[78.41748046874997,32.466699218749994],[78.4552734375001,32.30034179687502],[78.49589843750002,32.21577148437504],[78.72558593750009,31.983789062500023],[78.71972656250009,31.887646484374983],[78.69345703125006,31.740380859374994],[78.7550781250001,31.55029296875],[78.74355468750005,31.323779296875017],[79.10712890625004,31.402636718750102],[79.38847656250013,31.064208984375085],[79.66425781250004,30.96523437499999],[79.92451171875004,30.888769531250034],[80.20712890625006,30.683740234375023],[80.19121093750002,30.56840820312496],[80.87353515625003,30.290576171875045],[80.98544921875006,30.23710937499999],[81.01025390625014,30.164501953125097],[80.96611328125002,30.180029296875063],[80.90761718750005,30.171923828125017],[80.84814453125009,30.139746093750034],[80.81992187500012,30.119335937499955],[80.68408203125014,29.994335937500068],[80.54902343750015,29.899804687499994],[80.40185546875003,29.730273437500102],[80.31689453125014,29.572070312500017],[80.25488281250009,29.423339843750114],[80.25595703125006,29.318017578125136],[80.23300781250006,29.194628906250045],[80.16953125000012,29.124316406250102],[80.13046875000006,29.100390625000045],[80.08457031249995,28.994189453125074],[80.05166015625,28.870312500000068],[80.07070312500005,28.830175781250063],[80.22656250000003,28.723339843750125],[80.32480468750012,28.66640625000008],[80.41855468749995,28.61201171875001],[80.47910156250012,28.604882812499994],[80.49580078125015,28.635791015625074],[80.51787109375002,28.665185546875023],[80.58701171875006,28.64960937500004],[81.16894531250014,28.335009765625074],[81.85263671875018,27.867089843750136],[81.89687500000011,27.87446289062504],[81.94521484375005,27.89926757812495],[81.98769531250016,27.91376953125004],[82.03701171875,27.90058593750004],[82.11191406250006,27.86494140625004],[82.28769531250018,27.756542968749983],[82.45136718750004,27.671826171874955],[82.62988281249997,27.687060546875045],[82.67734375000006,27.67343749999995],[82.71083984375005,27.596679687500114],[82.73339843750003,27.518994140625097],[83.28974609375004,27.370996093750136],[83.36943359375002,27.410253906249977],[83.38398437500004,27.444824218750085],[83.44716796875011,27.46533203125],[83.55166015625011,27.456347656249932],[83.74697265625011,27.395947265625068],[83.8288085937501,27.377832031250108],[84.09101562499993,27.491357421875136],[84.22978515625007,27.427832031250006],[84.48085937500005,27.348193359375102],[84.61015625000002,27.298681640624977],[84.64072265625012,27.249853515624977],[84.65478515625014,27.20366210937499],[84.65380859375009,27.09169921875008],[84.68535156250013,27.041015625000057],[85.19179687500011,26.766552734375097],[85.29296875000009,26.741015625000045],[85.56845703125012,26.839843750000114],[85.64843749999997,26.829003906250023],[85.69990234375004,26.781640624999966],[85.73730468750003,26.639746093750034],[85.79453125000006,26.60415039062505],[86.00732421875009,26.64936523437504],[86.70136718750015,26.435058593750057],[87.01640625000002,26.555419921875085],[87.2874023437499,26.360302734375125],[87.41357421875014,26.42294921875009],[87.84921875000006,26.43691406250008],[87.99511718750014,26.38237304687499],[88.02695312500023,26.395019531250085],[88.05488281250004,26.43002929687492],[88.11152343750004,26.58642578125],[88.1615234375,26.724804687500125],[88.15722656250009,26.807324218750068],[88.1110351562501,26.928466796875057],[87.99316406250009,27.086083984374994],[87.984375,27.133935546874994],[88.14697265625014,27.749218750000097],[88.15029296875011,27.843310546875074],[88.10976562500005,27.87060546874997],[88.10898437499995,27.93300781250005],[88.14111328125003,27.948925781250097],[88.27519531250013,27.96884765625009],[88.42597656250015,28.011669921875097],[88.57792968750002,28.093359375000034],[88.80371093750003,28.006933593750034],[88.74902343749997,27.521875000000136],[88.7648437500001,27.429882812500068],[88.83251953125003,27.362841796875074],[88.89140625000002,27.316064453125136],[88.88164062500007,27.29746093750009],[88.76035156250006,27.21811523437509],[88.73876953125009,27.175585937499932],[88.85761718750015,26.961474609375017],[89.14824218750002,26.816162109375085],[89.33212890625018,26.848632812500114],[89.58613281250004,26.778955078125136],[89.60996093750012,26.719433593750097],[89.71093750000009,26.713916015625045],[89.76386718750004,26.7015625],[89.94316406250013,26.723925781249932],[90.12294921875011,26.754589843749983],[90.20605468749997,26.847509765625063],[90.34589843750004,26.890332031250097],[90.73964843750005,26.771679687500068],[91.2865234375,26.78994140625008],[91.42675781249997,26.867089843749966],[91.45585937500013,26.866894531250125],[91.51757812500009,26.807324218750068],[91.67158203124993,26.80200195312503],[91.84208984375013,26.852978515625125],[91.94375,26.860839843750114],[91.99833984375013,26.85498046875],[92.04970703125016,26.87485351562495],[92.73155507489682,26.833697862861648],[93.30975376159499,26.784950522650554],[93.61047043679247,27.32239435188504],[94.06979001484449,27.589407158584788],[95.10800937321915,27.749636881153737],[95.74000740838363,28.116850432722256],[96.19577594042592,28.04291597700983],[96.96279296875,27.698291015625017],[96.88359375000013,27.514843750000125],[96.90195312500012,27.43959960937508],[97.10371093749993,27.163330078125114],[97.10205078125003,27.115429687500125],[96.95341796875013,27.13330078125003],[96.79785156249997,27.29619140624999],[96.19082031250005,27.26127929687499],[95.20146484375007,26.641406250000017],[95.05976562500015,26.473974609375006],[95.06894531250006,26.191113281250097],[95.10839843750014,26.091406250000034],[95.12929687500011,26.070410156250034],[95.13242187500006,26.041259765624943],[94.99199218750002,25.77045898437504],[94.66777343750007,25.458886718749966],[94.55302734375013,25.215722656249994],[94.70371093750012,25.097851562499955],[94.49316406250003,24.637646484374983],[94.37724609375002,24.473730468750006],[94.29306640625012,24.321875],[94.07480468750006,23.8720703125],[93.68339843750007,24.00654296875004],[93.45214843750003,23.987402343750034],[93.32626953125006,24.064208984375057],[93.36601562500007,23.132519531249955],[93.34941406250007,23.08496093750003],[93.20390625000002,23.03701171875005],[93.07871093750018,22.718212890625097],[93.16201171875,22.360205078125006],[93.07060546875002,22.20942382812501],[92.96455078125015,22.003759765625034],[92.90947265625013,21.988916015625023],[92.85429687500002,22.010156250000108],[92.77138671875,22.104785156250017],[92.68896484375009,22.130957031250006],[92.63037109375014,22.011328124999977],[92.57490234374993,21.97807617187496],[92.5612304687501,22.04804687500001],[92.49140625000004,22.685400390625006],[92.46445312500006,22.734423828125045],[92.36162109375002,22.929003906250074],[92.33378906250002,23.242382812499955],[92.24609375000003,23.68359374999997],[92.04404296875006,23.677783203125017],[91.97851562500003,23.691992187500063],[91.92958984375011,23.685986328125097],[91.92949218750019,23.598242187499977],[91.93789062500011,23.504687500000102],[91.75419921875013,23.28730468750004],[91.75097656250003,23.053515625000017],[91.55351562500013,22.991552734375006],[91.43623046875004,23.19990234375001],[91.359375,23.06835937500003],[91.16044921875019,23.660644531250085],[91.35019531250012,24.06049804687501],[91.72656250000003,24.20507812499997],[91.84619140624997,24.175292968749943],[92.06416015625004,24.374365234375006],[92.11748046875002,24.493945312500017],[92.22666015625012,24.77099609374997],[92.22832031250002,24.881347656250085],[92.2512695312499,24.895068359375045],[92.38496093750004,24.848779296875023],[92.46835937500018,24.944140625000074],[92.04970703125016,25.16948242187499],[90.61308593750002,25.16772460937497],[90.11962890625003,25.21997070312497],[89.86630859375012,25.293164062499955],[89.81406250000006,25.305371093749955],[89.80087890625012,25.33613281250001],[89.82490234375004,25.56015625],[89.82294921875015,25.94140625000003],[89.67089843750009,26.213818359375125],[89.57275390625003,26.13232421875003],[89.54990234375006,26.00527343750008],[89.28925781250015,26.037597656250085],[89.01865234375012,26.410253906249977],[88.95195312500002,26.412109375],[88.97041015625004,26.250878906250023],[88.94072265625002,26.24536132812497],[88.68281250000004,26.291699218749983],[88.51826171875004,26.51777343750004],[88.36992187500002,26.56411132812508],[88.35146484375005,26.482568359374966],[88.38623046875003,26.471533203125034],[88.44042968749997,26.369482421875034],[88.33398437499997,26.257519531249955],[88.15078125000005,26.087158203125057],[88.1066406250001,25.841113281250045],[88.14746093749997,25.811425781250023],[88.50244140625009,25.53701171875008],[88.76914062500006,25.490478515625],[88.85478515625002,25.333544921875017],[88.94414062500002,25.290771484375],[88.92978515625012,25.222998046875063],[88.57382812500006,25.18789062499999],[88.45625,25.188427734375125],[88.37294921875016,24.961523437500063],[88.31337890625011,24.8818359375],[88.27949218750015,24.881933593750034],[88.18886718750016,24.920605468750097],[88.14980468750011,24.91464843749995],[88.04511718750015,24.71303710937508],[88.03027343750009,24.664453125000136],[88.02343750000003,24.627832031250136],[88.07910156250009,24.549902343750063],[88.14550781250003,24.485791015624955],[88.225,24.460644531249983],[88.3375,24.45385742187503],[88.49853515625003,24.34663085937504],[88.64228515625015,24.325976562500102],[88.72353515625011,24.27490234375],[88.7335937500001,24.230908203125097],[88.72656250000009,24.18623046875004],[88.71376953125016,24.069628906250102],[88.69980468750006,24.00253906249992],[88.56738281250009,23.674414062500034],[88.63574218749997,23.55],[88.69765625,23.493017578125034],[88.72441406250002,23.254980468750034],[88.89707031250018,23.21040039062501],[88.92812500000011,23.186621093749977],[88.89970703125002,22.843505859375057],[88.92070312500002,22.632031249999955],[89.05,22.274609374999983],[89.02792968750023,21.937207031249983],[88.94931640625018,21.937939453125125],[89.05166015625,21.654101562500045],[88.85751953125012,21.744677734375017],[88.74501953125011,21.584375],[88.74023437500003,22.005419921875017],[88.64160156250003,22.121972656250136],[88.58466796875015,21.659716796874932],[88.44599609375004,21.614257812500085],[88.28750000000016,21.758203125000108],[88.25371093750002,21.622314453124943],[88.0568359375001,21.694140625000017],[88.19628906249997,22.139550781249994],[87.94140625000003,22.374316406250045],[88.15927734375018,22.12172851562508],[87.82373046875003,21.727343750000045],[87.20068359375009,21.544873046874983],[86.95410156250014,21.365332031250006],[86.84228515625009,21.106347656249994],[86.97548828125005,20.70014648437501],[86.75039062500011,20.313232421875057],[86.37656250000006,20.006738281249966],[86.24521484375012,20.05302734374999],[86.27949218750021,19.919433593749943],[85.575,19.69291992187499],[85.496875,19.696923828125108],[85.50410156250004,19.887695312500057],[85.24863281250006,19.757666015625034],[85.18076171875018,19.59487304687508],[85.44160156249993,19.626562499999977],[84.77099609375009,19.125390625000023],[84.10410156250018,18.29267578125001],[82.35957031250004,17.09619140624997],[82.25878906250014,16.55986328124996],[81.76191406250015,16.32949218750008],[81.28613281249997,16.337060546875023],[80.97871093750004,15.758349609375074],[80.64658203125006,15.895019531250028],[80.29345703125014,15.710742187499989],[80.0534179687501,15.074023437499932],[80.17871093750003,14.478320312500074],[80.11171875000005,14.212207031250045],[80.30654296875016,13.485058593750054],[80.15625,13.713769531250108],[80.06210937500006,13.60625],[80.34238281250006,13.361328125000071],[80.22910156250018,12.690332031249966],[79.85849609375018,11.988769531250043],[79.69316406250007,11.312548828124946],[79.79902343750004,11.338671874999932],[79.84863281250009,11.196875],[79.83818359375002,10.322558593750045],[79.31455078125018,10.256689453124949],[78.93994140625009,9.565771484375063],[79.01992187500005,9.333349609374963],[79.41142578125002,9.192382812500014],[78.97958984375018,9.268554687500085],[78.42148437500006,9.105029296874989],[78.19248046874995,8.890869140625057],[78.06015625000006,8.384570312499932],[77.51757812500003,8.078320312500068],[77.06591796875003,8.315917968749986],[76.5534179687501,8.902783203124997],[76.32460937500016,9.452099609374997],[76.24238281250004,9.927099609374949],[76.37558593750006,9.539892578124935],[76.45878906250013,9.536230468750077],[76.34648437500002,9.922119140625],[76.19560546875002,10.086132812500026],[75.72382812500015,11.361767578125026],[74.94550781250004,12.56455078124992],[74.38222656250005,14.494726562500048],[73.94921875000014,15.074755859375088],[73.80078125000009,15.39697265625],[73.93193359375013,15.39697265625],[73.77177734375013,15.573046874999989],[73.83281250000013,15.659375],[73.67988281250015,15.708886718750136],[73.47607421875003,16.05424804687496],[72.87548828124997,18.642822265625114],[72.97207031250011,19.15332031250003],[72.8346679687501,18.975585937500057],[72.80302734375013,19.07929687500004],[72.81162109375,19.298925781250006],[72.98720703125,19.27744140625009],[72.78789062500013,19.362988281250097],[72.66777343750019,19.83095703125005],[72.89375,20.672753906250136],[72.81386718750011,21.117187500000085],[72.62382812500002,21.371972656250108],[72.73476562500016,21.470800781250006],[72.61328125000009,21.461816406250108],[73.1125,21.750439453125125],[72.54306640625,21.69658203124999],[72.70019531250003,21.971923828124943],[72.52226562500013,21.976220703125108],[72.55302734375007,22.159960937500074],[72.80917968749995,22.23330078125008],[72.18281250000015,22.26972656250004],[72.30644531250002,22.18920898437497],[72.27441406250009,22.089746093749966],[72.03720703125006,21.82304687499999],[72.2103515625,21.72822265625004],[72.25400390625006,21.531005859375],[72.01523437500012,21.155712890625097],[71.0246093750001,20.73886718750009],[70.71933593750006,20.740429687500068],[70.12734375,21.094677734375097],[68.96992187500021,22.29028320312497],[69.05166015625016,22.437304687500074],[69.27656250000004,22.285498046875063],[70.17724609375014,22.57275390624997],[70.48925781250009,23.08950195312508],[70.33945312500012,22.939746093749932],[69.66464843750006,22.759082031250074],[69.23593749999995,22.848535156250023],[68.64072265625006,23.189941406250114],[68.41748046875009,23.57148437500004],[68.7767578125,23.852099609375017],[68.23496093749995,23.596972656250074],[68.16503906250009,23.857324218749994],[68.28251953125013,23.927978515625],[68.38125000000016,23.950878906250068],[68.48867187500011,23.96723632812501],[68.5866210937501,23.966601562500074],[68.72412109375003,23.964697265625034],[68.72812500000012,24.265625],[68.73964843750016,24.291992187500085],[68.75898437499993,24.307226562500006],[68.78115234375011,24.313720703125085],[68.8,24.30908203125003],[68.82832031250004,24.26401367187509],[68.86347656250015,24.26650390625005],[68.90078125000011,24.29243164062501],[68.98457031250015,24.273095703124966],[69.05156250000013,24.28632812500001],[69.11953125000011,24.26865234374995],[69.23505859374993,24.268261718750068],[69.44345703124995,24.275390625000085],[69.55917968750006,24.273095703124966],[69.80517578125009,24.16523437500004],[70.0982421875,24.2875],[70.28906250000009,24.356298828125063],[70.54677734375,24.418310546875063],[70.56503906250006,24.385791015625017],[70.55585937500015,24.331103515625074],[70.57929687500015,24.279052734374943],[70.65947265625013,24.24609374999997],[70.71630859375009,24.237988281250097],[70.7672851562501,24.245410156250017],[70.80507812500011,24.26196289062503],[70.88623046875014,24.34375],[70.92812500000016,24.362353515625045],[70.98281250000011,24.361035156250125],[71.04404296875006,24.400097656250097],[71.04531250000005,24.42998046874996],[70.96982421875012,24.571875],[70.97636718750013,24.61875],[71.00234375000016,24.6539062499999],[71.04785156250003,24.687744140625085],[71.02070312500021,24.75766601562492],[70.95087890625015,24.89160156250003],[70.87773437500019,25.06298828124997],[70.65205078125004,25.422900390625102],[70.64843750000003,25.666943359375068],[70.5695312500001,25.705957031250023],[70.50585937500009,25.685302734375085],[70.44853515625013,25.681347656249983],[70.26464843750009,25.70654296874997],[70.10019531250006,25.91005859375005],[70.14921875000002,26.347558593749994],[70.11464843750016,26.548046874999983],[69.47001953125002,26.804443359375],[69.56796875,27.174609375000102],[69.89628906250007,27.473632812500085],[70.04980468750009,27.694726562500023],[70.14453125000003,27.849023437499994],[70.19394531250006,27.89487304687492],[70.24433593750004,27.934130859375102],[70.4037109375,28.025048828124994],[70.48857421875013,28.023144531250125],[70.62910156250015,27.937451171875068],[70.6916015625001,27.76899414062504],[70.79794921875012,27.709619140625023],[70.87490234375016,27.71445312499995],[71.18476562500004,27.831640625],[71.54296875000003,27.869873046875],[71.8703125000001,27.9625],[71.88886718750004,28.04746093749992],[71.94804687500002,28.177294921875102],[72.12851562500012,28.34633789062508],[72.29199218750003,28.69726562499997],[72.34189453125006,28.751904296875097],[72.90332031250003,29.02875976562501],[73.38164062500013,29.934375],[73.8091796875,30.093359375],[73.88652343750013,30.162011718750136],[73.93339843750002,30.222070312500108],[73.92460937500007,30.28164062499999],[73.88271484375,30.352148437499977],[73.89931640625,30.435351562500045],[74.00898437500004,30.519677734374994],[74.33935546875003,30.893554687499943],[74.38037109375003,30.89340820312509],[74.50976562500009,30.959667968750097],[74.63281250000014,31.034667968750114],[74.62578125000002,31.068750000000108],[74.61035156250009,31.112841796875045],[74.51767578125012,31.185595703124932],[74.53496093750007,31.261376953125108],[74.59394531249993,31.465380859375102],[74.58183593750013,31.523925781250114],[74.50996093750015,31.712939453125074],[74.52597656249995,31.765136718750057],[74.55556640625011,31.818554687500097],[74.63574218750003,31.889746093750034],[74.73945312500015,31.948828125],[75.07148437500015,32.08935546875003],[75.13876953125,32.10478515624999],[75.25410156250004,32.140332031250125],[75.33349609374997,32.279199218749994],[75.32221348233018,32.28516356678968]]]]},"properties":{"name":"India","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[72.49199218750002,-7.37744140625],[72.42910156250002,-7.435351562500003],[72.34970703125,-7.263378906250011],[72.447265625,-7.395703125000011],[72.44560546875002,-7.220410156250011],[72.49199218750002,-7.37744140625]]]},"properties":{"name":"Br. Indian Ocean Ter.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-9.948193359374926,53.91313476562499],[-10.265722656249949,53.977685546874994],[-9.99638671874996,54.00361328125004],[-9.948193359374926,53.91313476562499]]],[[[-6.218017578125,54.08872070312506],[-6.347607421874926,53.94130859375005],[-6.027392578124989,52.927099609375006],[-6.463183593749932,52.345361328124994],[-6.325,52.246679687500034],[-6.890234375,52.15922851562499],[-6.965771484374926,52.24951171875],[-8.057812499999926,51.82558593750005],[-8.4091796875,51.888769531250034],[-8.349121093749943,51.73930664062496],[-8.813427734374926,51.584912109374955],[-9.737304687499943,51.473730468750034],[-9.524902343750028,51.68110351562501],[-10.120751953124994,51.60068359375006],[-9.598828124999983,51.87441406250005],[-10.341064453124943,51.798925781250034],[-9.909667968749972,52.122949218749966],[-10.39023437499992,52.134912109374994],[-10.356689453125,52.20693359375002],[-9.772119140624937,52.250097656250034],[-9.90605468749996,52.403710937499966],[-9.632226562499937,52.54692382812502],[-8.783447265624943,52.679638671874955],[-8.990283203124989,52.755419921875045],[-9.175390624999949,52.634912109374994],[-9.916601562499977,52.56972656250005],[-9.46489257812496,52.82319335937498],[-9.299218749999966,53.09755859375002],[-8.930126953124983,53.207080078125045],[-9.51420898437496,53.23823242187498],[-10.091259765624926,53.41284179687503],[-10.116992187499932,53.548535156249955],[-9.720654296874926,53.6044921875],[-9.901611328124943,53.72719726562502],[-9.578222656249949,53.80541992187497],[-9.578857421875,53.879833984374955],[-9.9140625,53.863720703124955],[-9.856445312499972,54.095361328124994],[-10.092675781249966,54.15576171875003],[-10.056396484374943,54.25781250000006],[-8.545556640624994,54.24121093750003],[-8.623144531249977,54.346875],[-8.133447265624966,54.64082031250001],[-8.763916015624972,54.68120117187496],[-8.377294921874977,54.88945312500002],[-8.274609374999955,55.146289062500045],[-7.667089843749977,55.25649414062502],[-7.65874023437496,54.97094726562503],[-7.308789062500011,55.365820312500006],[-6.961669921874972,55.23789062500006],[-7.218652343749937,55.09199218749998],[-7.55039062499992,54.767968749999966],[-7.910595703124955,54.698339843750006],[-7.75439453125,54.59492187499998],[-8.118261718749977,54.41425781250004],[-7.606542968750006,54.14384765625002],[-7.324511718750017,54.13344726562502],[-7.007714843749937,54.40668945312501],[-6.649804687499937,54.05864257812496],[-6.218017578125,54.08872070312506]]]]},"properties":{"name":"Ireland","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[56.18798828125003,26.92114257812497],[55.95429687500004,26.70112304687501],[55.31152343749997,26.592626953125006],[55.76259765625005,26.81196289062504],[55.75761718750002,26.94765625000005],[56.279394531250006,26.952099609374983],[56.18798828125003,26.92114257812497]]],[[[46.1144531250001,38.877783203125034],[46.490625,38.90668945312498],[47.995898437500074,39.683935546875034],[48.322167968749994,39.39907226562502],[48.10439453125005,39.241113281249994],[48.292089843750006,39.01884765624999],[47.99648437499999,38.85375976562503],[48.59267578125005,38.41108398437498],[48.86875,38.43549804687498],[48.95996093750003,37.89013671875],[49.171191406250074,37.60058593749997],[50.13046875,37.407128906249994],[50.53320312499997,37.01367187500006],[51.11855468750005,36.742578124999966],[52.19013671875004,36.62172851562505],[53.76767578125006,36.93032226562502],[53.91542968750005,36.93032226562502],[53.67949218750002,36.853125],[53.970117187499994,36.818310546874955],[53.91416015625006,37.34355468750002],[54.6994140625001,37.47016601562498],[54.90009765625004,37.77792968750006],[55.38085937500003,38.051123046875034],[56.272070312500006,38.080419921875034],[56.440625,38.249414062499994],[57.1935546875001,38.216406250000034],[57.35371093750004,37.97333984374998],[58.261621093749994,37.665820312500045],[58.81542968750003,37.683496093749994],[59.30175781249997,37.51064453125005],[59.454980468749994,37.25283203125002],[60.06279296875002,36.962890625],[60.34130859375003,36.63764648437501],[61.11962890625003,36.64257812500003],[61.212011718750006,36.190527343750034],[61.15292968750006,35.97675781250001],[61.25214843750004,35.86762695312498],[61.26201171875002,35.61958007812498],[61.28183593750006,35.55341796875001],[61.2785156250001,35.513769531250006],[61.245507812499994,35.47407226562501],[61.18925781250002,35.31201171875003],[61.1,35.272314453125034],[61.08007812499997,34.85561523437505],[60.95117187499997,34.65385742187499],[60.91474609375004,34.63398437500001],[60.80234375000006,34.55463867187501],[60.73945312500004,34.544726562500045],[60.7262695312501,34.51826171874998],[60.736132812500074,34.491796875],[60.76259765625005,34.475244140624994],[60.88945312500002,34.31943359375006],[60.642675781250006,34.30717773437496],[60.48574218750005,34.09477539062502],[60.4859375,33.7119140625],[60.57382812500006,33.58833007812498],[60.91699218749997,33.505224609375006],[60.56054687499997,33.13784179687502],[60.5765625,32.99487304687503],[60.71044921874997,32.6],[60.82929687500004,32.24941406250005],[60.82724609375006,32.16796874999997],[60.789941406249994,31.98710937499999],[60.7875,31.87719726562497],[60.791601562500006,31.660595703124983],[60.82070312499999,31.495166015625045],[60.854101562500006,31.483251953125006],[61.110742187499994,31.45112304687504],[61.346484375000074,31.42163085937497],[61.66015625000003,31.382421874999977],[61.7550781250001,31.285302734374994],[61.814257812500074,31.072558593750017],[61.810839843750074,30.913281249999983],[61.78417968749997,30.831933593750023],[61.55947265625005,30.59936523437497],[61.33164062500006,30.36372070312501],[60.84335937500006,29.85869140624999],[61.03417968750003,29.663427734374977],[61.15214843750002,29.542724609375],[61.8898437500001,28.546533203124994],[62.7625,28.202050781249994],[62.782324218750006,27.800537109375],[62.75273437500002,27.265625],[63.16679687500002,27.25249023437499],[63.19609375000002,27.243945312500017],[63.25625,27.20791015625005],[63.30156250000002,27.151464843750006],[63.30517578124997,27.124560546875017],[63.242089843749994,27.07768554687499],[63.25039062499999,26.879248046875063],[63.24160156250005,26.86474609375003],[63.18613281250006,26.83759765625001],[63.168066406250006,26.66557617187496],[62.31230468750002,26.490869140624994],[62.23935546875006,26.357031249999977],[62.12597656249997,26.368994140625034],[61.842382812500006,26.225927734375006],[61.809960937499994,26.165283203125],[61.78076171874997,25.99584960937503],[61.75439453125003,25.843359375000063],[61.737695312499994,25.821093750000045],[61.66865234375004,25.76899414062501],[61.6618164062501,25.751269531250017],[61.67138671874997,25.69238281250003],[61.64013671875003,25.584619140624994],[61.61542968750004,25.28613281250003],[61.58789062499997,25.20234375000001],[61.533105468749994,25.195507812499955],[61.41220703125006,25.102099609375017],[60.66386718750002,25.28222656250003],[60.51054687500002,25.437060546875045],[60.40019531250002,25.311572265625074],[59.45605468749997,25.481494140625045],[59.0460937500001,25.417285156250017],[58.79785156249997,25.554589843750023],[57.334570312500006,25.791552734375074],[57.03603515625005,26.80068359375005],[56.728125,27.127685546875057],[56.118066406249994,27.14311523437499],[54.75927734375003,26.50507812500004],[54.24707031250003,26.696630859374977],[53.70576171875004,26.72558593750003],[52.69160156250004,27.323388671875023],[52.475878906250074,27.61650390624999],[52.03076171874997,27.824414062499955],[51.58906250000004,27.864208984374983],[51.27890625,28.13134765624997],[51.06201171874997,28.72612304687499],[50.86699218750002,28.870166015625017],[50.87578125000002,29.062695312499983],[50.67519531250005,29.146582031250034],[50.64960937500004,29.420068359374966],[50.16894531250003,29.921240234375034],[50.071582031250074,30.198535156250017],[49.55488281250004,30.028955078125023],[49.028125,30.333447265624983],[49.224511718749994,30.472314453125023],[49.00195312500003,30.506542968749983],[48.91914062500004,30.120898437500017],[48.54648437500006,29.962353515624955],[48.47851562499997,30.003808593749966],[48.43457031249997,30.03759765625],[48.33105468749997,30.28544921874996],[48.01494140625002,30.465625],[48.01064453125005,30.989794921875017],[47.679492187500074,31.00239257812501],[47.679492187500074,31.400585937499955],[47.75390624999997,31.601367187500017],[47.829980468749994,31.79443359375],[47.71455078125004,31.936425781249966],[47.5915039062501,32.087988281250034],[47.51191406250004,32.15083007812504],[47.3297851562501,32.45551757812501],[47.28515625000003,32.474023437499966],[47.121386718750074,32.46660156249996],[46.569921875,32.83393554687501],[46.37705078125006,32.92924804687499],[46.29824218750005,32.95024414062502],[46.11279296875003,32.957666015624994],[46.09306640625002,32.97587890624999],[46.08046875,33.028222656249994],[46.0807617187501,33.08652343750006],[46.14111328125003,33.174414062500034],[46.145898437499994,33.229638671874994],[46.01992187500005,33.41572265624998],[45.39707031250006,33.970849609374994],[45.542773437500074,34.21552734375004],[45.459375,34.470361328124994],[45.50078125000002,34.58159179687499],[45.6375,34.573828125],[45.678125,34.798437500000034],[45.92089843750003,35.02851562500001],[46.04179687500002,35.08017578125006],[46.13378906249997,35.127636718749955],[46.15468750000005,35.19672851562498],[46.112109375000074,35.32167968750005],[45.97109375000005,35.524169921875],[46.03740234375002,35.67314453124999],[46.180957031250074,35.71137695312504],[46.2625,35.74414062500006],[46.27343749999997,35.77324218750002],[46.16748046874997,35.820556640625],[45.77636718749997,35.82182617187499],[45.36162109375002,36.015332031249955],[45.241113281249994,36.35595703125],[45.20654296874997,36.397167968749955],[45.15527343749997,36.407373046874994],[45.11240234375006,36.409277343750034],[45.053125,36.47163085937501],[44.76513671875003,37.142431640625006],[44.79414062500004,37.290380859375034],[44.574023437500074,37.435400390625006],[44.589941406250006,37.710351562499966],[44.21132812499999,37.908056640625006],[44.4499023437501,38.33422851562506],[44.2985351562501,38.38627929687499],[44.27167968750004,38.83603515625006],[44.02324218750002,39.37744140625006],[44.3893554687501,39.422119140625],[44.58710937500004,39.76855468750006],[44.81718750000002,39.65043945312496],[45.4796875000001,39.00625],[46.1144531250001,38.877783203125034]]]]},"properties":{"name":"Iran","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[45.6375,34.573828125],[45.50078125000002,34.581591796874996],[45.459375,34.470361328124994],[45.54277343750002,34.21552734375],[45.397070312500006,33.970849609374994],[46.01992187500002,33.41572265625],[46.14589843750002,33.229638671874994],[46.14111328125,33.1744140625],[46.08076171875001,33.0865234375],[46.08046875000002,33.028222656249994],[46.09306640625002,32.975878906249996],[46.11279296875,32.957666015624994],[46.377050781250006,32.929248046874996],[46.569921875,32.833935546875],[47.12138671875002,32.466601562499996],[47.28515625,32.474023437499994],[47.32978515625001,32.455517578125],[47.51191406250001,32.150830078125],[47.59150390625001,32.08798828125],[47.71455078125001,31.936425781249994],[47.82998046875002,31.79443359375],[47.75390625,31.601367187499996],[47.67949218750002,31.400585937499997],[47.67949218750002,31.002392578124997],[48.01064453125002,30.989794921874996],[48.01494140625002,30.465625],[48.3310546875,30.285449218749996],[48.546484375,29.962353515624997],[48.454199218750006,29.9384765625],[48.354589843750006,29.956738281249997],[48.141699218750006,30.040917968749994],[47.982519531250006,30.011328125],[47.97871093750001,29.9828125],[47.64375,30.097314453124994],[47.14824218750002,30.0009765625],[46.905859375,29.5375],[46.76933593750002,29.347460937499996],[46.69375,29.259667968749994],[46.53144531250001,29.096240234374996],[46.3564453125,29.063671875],[44.71650390625001,29.193603515625],[43.77373046875002,29.84921875],[42.07441406250001,31.080371093749996],[40.47890625000002,31.893359375],[40.36933593750001,31.93896484375],[40.02783203125,31.995019531249994],[39.7041015625,32.042529296874996],[39.14541015625002,32.12451171875],[39.29277343750002,32.24384765625],[39.24746093750002,32.350976562499994],[39.04140625000002,32.3056640625],[38.773535156250006,33.372216796874994],[40.98701171875001,34.429052734375],[41.19472656250002,34.768994140625],[41.354101562500006,35.640429687499996],[41.295996093750006,36.383349609374996],[41.41679687500002,36.5146484375],[41.78857421875,36.59716796875],[42.358984375,37.10859375],[42.45585937500002,37.128710937499996],[42.63544921875001,37.249267578125],[42.74111328125002,37.3619140625],[42.77460937500001,37.371875],[42.869140625,37.334912109375],[42.936621093750006,37.324755859374996],[43.09248046875001,37.3673828125],[43.67578125,37.22724609375],[43.83642578125,37.223535156249994],[44.01318359375,37.313525390624996],[44.11445312500001,37.30185546875],[44.15625,37.282958984375],[44.19179687500002,37.249853515625],[44.20839843750002,37.20263671875],[44.20166015625,37.051806640624996],[44.281835937500006,36.97802734375],[44.32558593750002,37.0107421875],[44.401953125,37.058496093749994],[44.60595703125,37.176025390625],[44.66933593750002,37.173583984375],[44.73095703125,37.165283203125],[44.76513671875,37.142431640625],[45.053125,36.471630859375],[45.112402343750006,36.40927734375],[45.1552734375,36.407373046874994],[45.20654296875,36.39716796875],[45.24111328125002,36.35595703125],[45.36162109375002,36.01533203125],[45.7763671875,35.821826171874996],[46.16748046875,35.820556640625],[46.2734375,35.773242187499996],[46.2625,35.744140625],[46.18095703125002,35.711376953125],[46.03740234375002,35.673144531249996],[45.97109375000002,35.524169921875],[46.11210937500002,35.321679687499994],[46.15468750000002,35.196728515625],[46.1337890625,35.12763671875],[46.04179687500002,35.08017578125],[45.9208984375,35.028515625],[45.678125,34.7984375],[45.6375,34.573828125]]]},"properties":{"name":"Iraq","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-15.543115234374994,66.228515625],[-14.595849609374994,66.38154296875],[-15.117382812499983,66.125634765625],[-14.698193359374983,66.02021484375],[-14.827099609374983,65.7642578125],[-14.391845703125,65.78740234375],[-14.473388671875,65.575341796875],[-14.166943359374983,65.64228515625],[-13.617871093749983,65.5193359375],[-13.804785156249977,65.35478515625],[-13.599316406249983,65.0359375],[-14.04443359375,64.74189453125],[-14.385107421874977,64.74521484375],[-14.475390624999989,64.493994140625],[-14.927392578124994,64.319677734375],[-15.832910156249994,64.17666015625],[-16.640332031249983,63.865478515625],[-17.81572265624999,63.71298828125],[-17.946923828124994,63.5357421875],[-18.65361328124999,63.406689453125],[-20.198144531249994,63.555810546874994],[-20.494042968749994,63.687353515625],[-20.413964843749994,63.80517578125],[-20.65092773437499,63.73740234375],[-21.15239257812499,63.94453125],[-22.652197265624977,63.827734375],[-22.701171875,64.083203125],[-22.51005859374999,63.991455078125],[-22.187597656249977,64.039208984375],[-21.463330078124983,64.379150390625],[-22.053369140624994,64.313916015625],[-21.950341796874994,64.514990234375],[-21.590625,64.6263671875],[-22.10600585937499,64.533056640625],[-22.467041015625,64.794970703125],[-23.818994140624994,64.73916015625],[-24.02617187499999,64.863427734375],[-22.7880859375,65.046484375],[-21.89213867187499,65.048779296875],[-21.779980468749983,65.1876953125],[-22.50908203124999,65.19677734375],[-21.844384765624994,65.44736328125],[-22.902490234374994,65.58046875],[-23.89990234375,65.407568359375],[-24.475683593749977,65.5251953125],[-24.248925781249994,65.614990234375],[-23.85673828124999,65.53837890625],[-24.092626953124977,65.77646484375],[-23.615917968749983,65.67958984375],[-23.285351562499983,65.75],[-23.832617187499977,65.84921875],[-23.52495117187499,65.880029296875],[-23.77734375,66.017578125],[-23.434472656249994,66.02421875],[-23.452539062499994,66.181005859375],[-23.018994140624983,65.98212890625],[-22.659863281249983,66.025927734375],[-22.61601562499999,65.86748046875],[-22.44169921874999,65.90830078125],[-22.4453125,66.07001953125],[-22.947900390624994,66.212744140625],[-22.48442382812499,66.26630859375],[-23.116943359375,66.338720703125],[-22.9443359375,66.429443359375],[-22.426123046874977,66.430126953125],[-21.406884765624994,66.0255859375],[-21.374902343749994,65.74189453125],[-21.658447265625,65.723583984375],[-21.12968749999999,65.2666015625],[-20.804345703124994,65.63642578125],[-20.454833984375,65.571044921875],[-20.20751953125,66.10009765625],[-19.489697265624983,65.76806640625],[-19.382958984374994,66.07568359375],[-18.845898437499983,66.183935546875],[-18.141943359374977,65.73408203125],[-18.29716796874999,66.157421875],[-17.906982421875,66.143310546875],[-17.550439453124994,65.964404296875],[-17.153027343749983,66.20283203125],[-16.838037109374994,66.125244140625],[-16.485009765624994,66.195947265625],[-16.540673828124994,66.446728515625],[-16.24931640624999,66.522900390625],[-15.985400390624989,66.5146484375],[-15.543115234374994,66.228515625]]]},"properties":{"name":"Iceland","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[35.78730468750001,32.734912109374996],[35.572851562500006,32.640869140625],[35.56904296875001,32.619873046875],[35.55146484375001,32.3955078125],[35.484375,32.401660156249996],[35.40263671875002,32.450634765625],[35.38671875,32.493017578125],[35.303808593750006,32.512939453125],[35.19326171875002,32.534423828125],[35.065039062500006,32.46044921875],[35.01054687500002,32.338183593749996],[34.95595703125002,32.1609375],[34.98974609375,31.91328125],[34.97832031250002,31.86640625],[34.95380859375001,31.841259765624997],[34.96113281250001,31.82333984375],[34.983007812500006,31.81679687499999],[35.05322265625,31.837939453124996],[35.12714843750001,31.816748046875],[35.203710937500006,31.75],[34.95097656250002,31.602294921875],[34.88046875,31.3681640625],[35.45058593750002,31.479296875],[34.97343750000002,29.555029296875],[34.904296875,29.47734375],[34.24531250000001,31.208300781249996],[34.34833984375001,31.292919921874997],[34.350195312500006,31.362744140624997],[34.52558593750001,31.525634765625],[34.47734375000002,31.584863281249994],[34.483984375,31.59228515625],[34.67841796875001,31.895703125],[35.10859375000001,33.08369140625],[35.411230468750006,33.07568359375],[35.869140625,33.43173828125],[35.91347656250002,32.94960937499999],[35.78730468750001,32.734912109374996]]]},"properties":{"name":"Israel","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[15.576562500000051,38.220312500000034],[15.099511718750023,37.45859375],[15.295703125000017,37.05517578124997],[15.112597656250017,36.687841796875006],[14.501855468750023,36.798681640625034],[14.142968750000023,37.103662109374994],[13.90546875000004,37.10063476562502],[13.169921875000028,37.47929687499996],[12.640234375000034,37.594335937500034],[12.435546874999972,37.819775390624955],[12.734375,38.18305664062498],[12.902734375000023,38.03486328124998],[13.291113281250034,38.19145507812502],[13.788867187499989,37.981201171875],[15.11875,38.15273437500002],[15.498730468750011,38.290869140625006],[15.576562500000051,38.220312500000034]]],[[[8.478906250000023,39.067529296874966],[8.421484375000034,38.968652343749994],[8.366796875,39.115917968749955],[8.478906250000023,39.067529296874966]]],[[[8.28603515625008,41.03984375],[8.205664062500034,40.99746093750005],[8.320214843750023,41.121875],[8.28603515625008,41.03984375]]],[[[9.632031250000011,40.88203124999998],[9.805273437500063,40.499560546875045],[9.642968750000023,40.268408203125006],[9.5625,39.16601562500006],[9.056347656250068,39.23916015625002],[8.966601562500074,38.963720703125034],[8.648535156250034,38.92656250000002],[8.418164062500068,39.205712890624966],[8.547753906250023,39.83920898437506],[8.4078125,39.91723632812497],[8.471289062500063,40.29267578124998],[8.189941406250028,40.651611328125],[8.22421875,40.91333007812503],[8.571875,40.85019531250006],[9.228417968750023,41.257080078125],[9.615332031249977,41.01728515624998],[9.632031250000011,40.88203124999998]]],[[[10.395117187500034,42.85815429687503],[10.419335937499994,42.71318359374999],[10.13125,42.742041015625006],[10.395117187500034,42.85815429687503]]],[[[13.420996093750006,46.212304687499994],[13.63251953125004,46.17705078125002],[13.634960937499983,46.15776367187499],[13.61660156250008,46.133105468750045],[13.54804687500004,46.08911132812503],[13.486425781250034,46.03955078124997],[13.480273437500017,46.00922851562501],[13.487695312500023,45.987109375000045],[13.509179687500051,45.973779296874994],[13.6005859375,45.97978515624996],[13.663476562500023,45.7919921875],[13.831152343750006,45.680419921875],[13.719824218750063,45.58759765625001],[13.628320312500051,45.77094726562498],[13.206347656250074,45.771386718749966],[12.27431640625008,45.44604492187503],[12.225683593750034,45.24150390625002],[12.523437500000028,44.96796874999998],[12.248339843750045,44.72250976562498],[12.396289062500074,44.223876953125],[13.56416015625004,43.57128906250003],[14.010449218750011,42.68955078125006],[14.54072265625004,42.24428710937502],[15.16875,41.93403320312498],[16.164648437500034,41.89619140624998],[15.900488281250034,41.51206054687498],[17.954980468749994,40.65517578125002],[18.460644531249983,40.221044921875034],[18.34375,39.82138671874998],[18.077929687500017,39.93696289062498],[17.865039062500074,40.28017578125002],[17.395800781250045,40.34023437499999],[17.179980468750045,40.50278320312498],[16.92822265625,40.45805664062502],[16.521875,39.74755859375003],[17.114550781250017,39.38061523437497],[17.174609375000017,38.998095703125045],[16.61669921875003,38.800146484375034],[16.54560546875001,38.40908203125002],[16.05683593750001,37.941845703124955],[15.72451171875008,37.93911132812502],[15.645800781250017,38.034228515625045],[15.87890625,38.61391601562502],[16.19677734375,38.759228515624955],[16.20996093750003,38.94111328124998],[15.692773437499994,39.99018554687501],[14.95087890625004,40.23901367187497],[14.94765625000008,40.469335937500006],[14.765722656250063,40.66840820312498],[14.339941406250006,40.59882812500001],[14.460546875000063,40.72871093750001],[14.04433593750008,40.81225585937506],[13.733398437500057,41.23564453124999],[13.088671875000074,41.243847656249955],[12.630859374999972,41.469677734374955],[11.637304687500063,42.287548828124955],[11.141210937499977,42.38989257812503],[11.167773437500074,42.53515625000006],[10.708398437500023,42.93632812499999],[10.514843750000011,42.96752929687503],[10.188085937500063,43.947509765625],[8.76582031250004,44.42231445312501],[8.004980468750006,43.87675781249999],[7.4931640625,43.767138671875045],[7.637207031250057,44.16484375],[7.318554687500068,44.13798828125002],[6.900195312499989,44.33574218749996],[6.99267578125,44.82729492187502],[6.634765625000028,45.06816406249996],[7.07832031250004,45.23994140624998],[7.146386718750051,45.381738281249994],[6.790917968750023,45.740869140624966],[7.021093750000034,45.92578124999997],[7.055761718749977,45.90380859375003],[7.129003906249977,45.88041992187499],[7.327929687500017,45.912353515625],[7.9931640625,46.01591796874996],[8.081542968750057,46.25600585937502],[8.231933593750057,46.341210937499966],[8.29853515625004,46.403417968750034],[8.370703125,46.44511718750002],[8.458398437500023,46.24589843750002],[8.818554687500011,46.0771484375],[8.826757812500006,46.06103515625],[8.77802734375004,45.996191406250034],[8.953710937500034,45.83002929687501],[9.023730468750074,45.845703125],[9.203417968750017,46.21923828125],[9.304394531250068,46.49555664062498],[9.399316406250023,46.480664062499955],[9.427636718750023,46.48232421875002],[9.528710937500023,46.306201171875045],[9.57958984375,46.29609375000001],[9.639453125000017,46.29589843749997],[9.78779296875004,46.34604492187498],[9.884472656250011,46.36777343750006],[9.939257812500074,46.36181640625],[10.041015625000028,46.23808593750002],[10.08056640625,46.22797851562501],[10.128320312500051,46.238232421874955],[10.109667968750074,46.36284179687502],[10.081933593750023,46.420751953125006],[10.045605468750068,46.44790039062505],[10.038281250000011,46.483203125000045],[10.061230468750068,46.54677734375002],[10.087011718750063,46.59990234375002],[10.1375,46.614355468750034],[10.195507812500068,46.62109374999997],[10.4306640625,46.55004882812497],[10.409352678571473,46.6092047991071],[10.39794921875,46.66503906250006],[10.406054687500045,46.73486328124997],[10.452832031249983,46.86494140625001],[10.47939453125008,46.85512695312505],[10.579785156250011,46.85371093750001],[10.689257812500017,46.846386718749955],[10.759765625,46.79331054687498],[10.828906250000045,46.775244140625034],[10.927343750000034,46.76948242187501],[10.993261718750034,46.77700195312502],[11.02509765625004,46.796972656250006],[11.063476562500057,46.85913085937497],[11.133886718750006,46.93618164062505],[11.244433593750045,46.975683593750006],[11.433203125000063,46.983056640624994],[11.527539062500011,46.99741210937498],[11.775683593750017,46.986083984375],[12.169433593750028,47.082128906250006],[12.19716796875008,47.075],[12.201269531250034,47.060888671875034],[12.165527343750028,47.028173828125034],[12.130761718750051,46.98476562499999],[12.154101562500017,46.93525390625004],[12.267968750000023,46.83588867187504],[12.330078125,46.75981445312499],[12.388281250000034,46.70263671874997],[12.479199218749983,46.672509765624966],[13.16875,46.572656249999966],[13.3515625,46.55791015624999],[13.490039062500045,46.55556640625002],[13.7,46.52026367187503],[13.679687500000057,46.46289062499997],[13.63710937500008,46.44853515624999],[13.563281250000045,46.41508789062502],[13.399511718749977,46.31752929687502],[13.420996093750006,46.212304687499994]]]]},"properties":{"name":"Italy","childNum":6}},{"geometry":{"type":"Polygon","coordinates":[[[-77.261474609375,18.45742187499999],[-76.349853515625,18.15185546875],[-76.21079101562499,17.913525390624997],[-76.524609375,17.8662109375],[-76.85322265625,17.97373046874999],[-76.94414062499999,17.848779296874994],[-77.11948242187499,17.880078125],[-77.20498046875,17.71494140624999],[-77.36142578124999,17.833691406249997],[-77.76816406249999,17.877392578124997],[-78.04448242187499,18.173828125],[-78.339501953125,18.28720703124999],[-78.21669921875,18.44809570312499],[-77.8734375,18.522216796875],[-77.261474609375,18.45742187499999]]]},"properties":{"name":"Jamaica","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-2.018652343749977,49.23125],[-2.23583984375,49.1763671875],[-2.220507812499989,49.266357421875],[-2.018652343749977,49.23125]]]},"properties":{"name":"Jersey","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[39.14541015625002,32.12451171875],[38.9970703125,32.007470703124994],[38.96230468750002,31.994921875],[38.37548828125,31.847460937499996],[38.111425781250006,31.781152343749994],[37.49335937500001,31.625878906249994],[37.215625,31.556103515624997],[36.95859375,31.491503906249996],[37.980078125,30.5],[37.862890625,30.442626953125],[37.66972656250002,30.34814453125],[37.64990234375,30.330957031249994],[37.63359375000002,30.31328125],[37.55361328125002,30.144580078124996],[37.49072265625,30.01171875],[37.46923828125,29.995068359374997],[36.75527343750002,29.866015625],[36.70390625000002,29.831640625],[36.591796875,29.66611328125],[36.47607421875,29.4951171875],[36.2828125,29.355371093749994],[36.068457031250006,29.200537109375],[34.95078125,29.353515625],[34.97343750000002,29.555029296875],[35.45058593750002,31.479296875],[35.57207031250002,32.237890625],[35.55146484375001,32.3955078125],[35.56904296875001,32.619873046875],[35.572851562500006,32.640869140625],[35.78730468750001,32.734912109374996],[36.3720703125,32.3869140625],[36.818359375,32.317285156249994],[38.773535156250006,33.372216796874994],[39.04140625000002,32.3056640625],[39.24746093750002,32.350976562499994],[39.29277343750002,32.24384765625],[39.14541015625002,32.12451171875]]]},"properties":{"name":"Jordan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[123.88867187499997,24.280126953124977],[123.67978515625012,24.317773437500023],[123.77148437499997,24.41445312499999],[123.93486328125002,24.362011718749983],[123.88867187499997,24.280126953124977]]],[[[124.29316406250004,24.515917968750074],[124.13574218750003,24.347607421874983],[124.08476562500002,24.435839843750017],[124.30195312500004,24.58710937500001],[124.29316406250004,24.515917968750074]]],[[[125.44414062500002,24.7431640625],[125.26894531250005,24.732519531250063],[125.28359375,24.871923828125034],[125.44414062500002,24.7431640625]]],[[[128.25878906249997,26.65278320312501],[127.86708984375,26.442480468749977],[127.80361328125005,26.152539062499983],[127.653125,26.0947265625],[127.90722656250003,26.69360351562497],[128.09765624999997,26.66777343749996],[128.25488281249997,26.88188476562496],[128.25878906249997,26.65278320312501]]],[[[128.99814453125012,27.720800781250006],[128.90000000000012,27.727783203125],[128.9076171875,27.897998046875045],[128.99814453125012,27.720800781250006]]],[[[129.45253906250005,28.20898437499997],[129.3664062500001,28.127734375000045],[129.16464843750012,28.24975585937503],[129.68955078125012,28.517480468750023],[129.45253906250005,28.20898437499997]]],[[[130.6227539062501,30.262988281250017],[130.44560546875002,30.264697265625017],[130.38808593750005,30.38818359375003],[130.49716796875006,30.465527343749983],[130.64355468749997,30.388964843750017],[130.6227539062501,30.262988281250017]]],[[[130.95976562500007,30.39692382812504],[130.87031250000004,30.444238281249994],[131.06035156250007,30.828466796875006],[130.95976562500007,30.39692382812504]]],[[[130.38105468750004,32.42373046875002],[130.24169921874997,32.462792968749994],[130.46142578124997,32.515722656250034],[130.38105468750004,32.42373046875002]]],[[[130.08251953124997,32.22968750000001],[129.9601562500001,32.24375],[130.00976562499997,32.521630859374994],[130.16777343750002,32.54121093749998],[130.19951171875002,32.34057617187506],[130.08251953124997,32.22968750000001]]],[[[128.66533203125002,32.783886718749955],[128.89453124999997,32.65214843750002],[128.69296875000012,32.60473632812506],[128.66533203125002,32.783886718749955]]],[[[129.07695312500002,32.84028320312498],[128.99726562500004,32.95185546874998],[129.10976562500005,33.13256835937503],[129.18193359375002,32.99311523437504],[129.07695312500002,32.84028320312498]]],[[[129.49179687500006,33.22304687499999],[129.37041015625002,33.176025390625],[129.56992187500006,33.36103515625004],[129.49179687500006,33.22304687499999]]],[[[129.79570312500007,33.74882812499999],[129.67480468749997,33.73969726562498],[129.71728515624997,33.8583984375],[129.79570312500007,33.74882812499999]]],[[[131.17460937500007,33.602587890625045],[131.69628906250003,33.60283203124999],[131.53740234375007,33.274072265624994],[131.89658203125006,33.25458984375001],[131.8478515625001,33.118066406249994],[132.0021484375001,32.882373046875045],[131.6603515625001,32.465625],[131.33720703125007,31.4046875],[131.07080078124997,31.436865234374977],[131.09843750000002,31.256152343750017],[130.68574218750004,31.01513671875003],[130.77626953125,31.70629882812497],[130.65507812500002,31.71840820312505],[130.5560546875,31.563085937500034],[130.58876953125,31.178515625000017],[130.20068359374997,31.291894531250023],[130.14726562500002,31.40849609374996],[130.2941406250001,31.45068359375003],[130.3219726562501,31.601464843750023],[130.18789062500005,31.768847656250017],[130.19443359375012,32.090771484374955],[130.64052734375005,32.61923828124998],[130.49785156250002,32.65693359375001],[130.547265625,32.83159179687499],[130.2375,33.177636718749966],[130.12685546875005,33.10483398437506],[130.175,32.851318359375],[130.32646484375002,32.852636718750006],[130.34042968750012,32.70185546875004],[130.05410156250005,32.770800781250045],[129.76855468749997,32.57099609375001],[129.82675781250006,32.72534179687503],[129.67910156250005,33.059960937499966],[129.99169921875003,32.85156249999997],[129.58007812500003,33.23627929687501],[129.61015625000002,33.34365234375005],[129.844140625,33.32177734375003],[129.82568359374997,33.43701171875006],[130.36503906250007,33.634472656249955],[130.4837890625,33.834619140624966],[130.715625,33.92778320312502],[130.953125,33.87202148437504],[131.17460937500007,33.602587890625045]]],[[[132.266015625,33.945166015625006],[132.44492187500006,33.91318359374998],[132.20878906250007,33.87285156250002],[132.266015625,33.945166015625006]]],[[[129.27949218750004,34.123388671875006],[129.18642578125,34.14501953125006],[129.21484374999997,34.320654296875034],[129.3371093750001,34.284765625],[129.27949218750004,34.123388671875006]]],[[[134.35742187500003,34.25634765625],[134.6375,34.22661132812499],[134.73886718750012,33.82050781250001],[134.37705078125012,33.60839843749997],[134.18164062500003,33.24721679687502],[133.95869140625004,33.44833984375006],[133.63203125000004,33.51098632812503],[133.28593750000007,33.35996093749998],[132.97724609375004,32.84199218749998],[132.80429687500006,32.75200195312502],[132.6417968750001,32.76245117187503],[132.70898437500003,32.90249023437505],[132.49511718749997,32.91660156249998],[132.41279296875004,33.43046875],[132.0326171875,33.339990234374994],[132.64306640624997,33.68994140624997],[132.93515625000006,34.09531250000006],[133.19306640625004,33.93320312499998],[133.58203124999997,34.01713867187502],[133.60263671875006,34.24384765625001],[133.94833984375006,34.34804687500002],[134.35742187500003,34.25634765625]]],[[[134.35185546875002,34.48364257812503],[134.25185546875,34.42304687500004],[134.18212890625003,34.51923828124998],[134.35185546875002,34.48364257812503]]],[[[134.9328125000001,34.28813476562499],[134.82441406250004,34.202929687500045],[134.66787109375005,34.294140624999955],[135.00468750000002,34.54404296874998],[134.9328125000001,34.28813476562499]]],[[[129.38564453125,34.35366210937502],[129.26669921875012,34.37045898437506],[129.45107421875005,34.68657226562499],[129.38564453125,34.35366210937502]]],[[[133.37050781250005,36.203857421875],[133.23925781249997,36.178759765625045],[133.20615234375006,36.293408203124955],[133.29570312500002,36.34013671874996],[133.37050781250005,36.203857421875]]],[[[138.34404296875007,37.822119140625006],[138.22519531250006,37.82939453124996],[138.25,38.078466796875006],[138.50361328125004,38.31591796875006],[138.45361328124997,38.07568359375006],[138.57519531249997,38.065527343750034],[138.34404296875007,37.822119140625006]]],[[[141.22929687500007,41.37265625],[141.45546875000005,41.404736328124955],[141.43046875000002,40.72333984374998],[141.7970703125001,40.29116210937502],[141.97695312500005,39.428808593750034],[141.90078125,39.111328125],[141.5462890625,38.762841796874966],[141.4674804687501,38.404150390625006],[141.10839843750003,38.33793945312502],[140.9621093750001,38.148876953124955],[141.00166015625004,37.11464843750002],[140.57353515625007,36.23134765625002],[140.87402343749997,35.72495117187506],[140.457421875,35.51025390625],[140.35468750000004,35.18144531249999],[139.8439453125001,34.914892578125034],[139.82646484375002,35.29667968750002],[140.096875,35.58515624999998],[139.83476562500002,35.658056640625006],[139.65000000000012,35.40913085937501],[139.675,35.149267578125006],[139.47441406250002,35.298535156249955],[139.24941406250005,35.27802734375004],[139.08603515625006,34.83916015624999],[138.8375,34.619238281250034],[138.80273437499997,34.97480468749998],[138.90361328125002,35.02524414062506],[138.71962890625,35.12407226562502],[138.18906250000012,34.596337890624994],[137.543359375,34.66420898437505],[137.06171875000004,34.58281249999999],[137.27519531250002,34.77250976562499],[136.96328125000005,34.83491210937501],[136.87128906250004,34.733105468749955],[136.89707031250006,35.03554687500002],[136.80419921874997,35.05029296875],[136.53300781250007,34.678369140624994],[136.8802734375,34.43359375000006],[136.8537109375001,34.324072265625034],[136.32988281250007,34.17685546875006],[135.91621093750004,33.561718749999955],[135.69531250000003,33.48696289062502],[135.4528320312501,33.55336914062505],[135.12792968749997,34.006982421874994],[135.10009765624997,34.288378906250045],[135.41591796875,34.61748046875002],[134.74003906250007,34.765234375],[134.246875,34.71386718750003],[133.96826171874997,34.52729492187504],[133.14238281250002,34.30244140624998],[132.65654296875007,34.24609375000003],[132.31259765625006,34.32495117187503],[132.14648437499997,33.83876953125002],[131.74052734375007,34.05205078125002],[130.91884765625,33.97573242187502],[130.88925781250012,34.261816406250034],[131.00419921875007,34.39257812500003],[131.35439453125,34.41318359375006],[132.92294921875006,35.511279296875045],[133.98125,35.50722656250002],[135.17431640625003,35.74707031250003],[135.32695312500002,35.52553710937502],[135.68027343750006,35.503125],[135.903125,35.60688476562498],[136.09531250000006,35.767626953125045],[136.06748046875006,36.11684570312505],[136.69814453125005,36.742041015625034],[136.84345703125004,37.38212890624999],[137.32265625,37.52207031249998],[136.89990234375003,37.11767578125],[137.01669921875006,36.83720703124999],[137.24628906250004,36.753173828125],[137.5140625,36.95156250000002],[138.31992187500012,37.21840820312502],[138.88505859375007,37.84394531250001],[139.36386718750006,38.09902343750002],[139.80195312500004,38.881591796875],[140.06474609375002,39.624414062499994],[139.99472656250006,39.855078125],[139.74150390625002,39.92084960937498],[140.01113281250005,40.26035156250006],[139.92285156250003,40.59843750000002],[140.28125,40.84609375000002],[140.3444335937501,41.203320312499955],[140.62763671875004,41.195410156250034],[140.74863281250012,40.830322265625],[140.93603515625003,40.940771484375034],[141.1185546875,40.88227539062501],[141.24423828125006,41.20561523437499],[140.80058593750002,41.138818359374966],[140.80185546875012,41.253662109375],[140.9369140625,41.50556640624998],[141.22929687500007,41.37265625]]],[[[139.48125,42.08100585937498],[139.43134765625004,42.19956054687498],[139.55839843750002,42.235205078125034],[139.48125,42.08100585937498]]],[[[141.29541015625003,45.11933593750001],[141.14531250000002,45.153906250000034],[141.19375,45.24785156249999],[141.29541015625003,45.11933593750001]]],[[[141.07275390624997,45.33286132812498],[141.03398437500007,45.26933593750002],[140.97167968749997,45.465478515624994],[141.07275390624997,45.33286132812498]]],[[[143.82431640625012,44.11699218749999],[144.71523437500005,43.92797851562503],[145.36953125000005,44.32739257812506],[145.13964843750003,43.6625],[145.34082031249997,43.30253906249999],[145.83300781249997,43.38593750000001],[144.92138671874997,43.00092773437498],[143.96933593750006,42.88139648437499],[143.42949218750002,42.41889648437498],[143.2365234375001,42.000195312499955],[141.85136718750007,42.57905273437501],[141.40664062500005,42.54692382812496],[140.98613281250002,42.34213867187498],[140.70976562500002,42.555615234374955],[140.48046875000003,42.559375],[140.32666015625003,42.29335937499999],[141.15097656250012,41.80507812499999],[140.99951171874997,41.73740234375006],[140.65986328125004,41.815576171874994],[140.3849609375001,41.51928710937503],[140.08515625000004,41.43408203125],[139.99531250000004,41.57641601562503],[140.10839843749997,41.912939453125034],[139.83544921874997,42.278076171875],[139.86015625000002,42.58173828125004],[140.43222656250012,42.95410156250006],[140.39238281250002,43.303125],[141.13818359374997,43.17993164062506],[141.37412109375006,43.279638671875006],[141.7609375000001,44.482519531250034],[141.58300781250003,45.15595703125001],[141.66796874999997,45.401269531249966],[141.93769531250004,45.509521484375],[142.88476562499997,44.670117187499955],[143.82431640625012,44.11699218749999]]]]},"properties":{"name":"Japan","childNum":28}},{"geometry":{"type":"Polygon","coordinates":[[[77.04863281249999,35.109912109374996],[76.927734375,35.346630859375],[76.88222656250002,35.4357421875],[76.81279296874999,35.571826171874996],[76.76689453124999,35.66171875],[76.87890625,35.61328125],[77.09003906250001,35.552050781249996],[77.29482421875002,35.508154296875],[77.44648437500001,35.4755859375],[77.57255859374999,35.471826171874994],[77.72402343750002,35.48056640625],[77.79941406250003,35.495898437499996],[77.42343750000003,35.302587890625],[77.16855468750003,35.171533203124994],[77.04863281249999,35.109912109374996]]]},"properties":{"name":"Siachen Glacier","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[50.184472656249994,44.854638671874994],[49.99511718750003,44.93696289062498],[50.10986328124997,45.08193359375002],[50.038867187500074,44.949121093749966],[50.184472656249994,44.854638671874994]]],[[[87.32285156250012,49.085791015625006],[86.8083007812501,49.04970703125002],[86.54941406250012,48.52861328125002],[85.7494140625,48.38505859374999],[85.52597656250006,47.915625],[85.65664062500005,47.254638671875],[85.484765625,47.06352539062496],[84.78613281249997,46.83071289062505],[84.66660156250006,46.97236328125004],[84.016015625,46.97050781250002],[83.02949218750004,47.18593750000002],[82.31523437500002,45.59492187499998],[82.61162109375007,45.424267578124955],[82.52148437500003,45.12548828125],[82.26660156249997,45.21909179687498],[81.94492187500006,45.16083984375001],[81.69199218750012,45.34936523437497],[80.05917968750012,45.006445312500006],[79.871875,44.88378906249997],[80.48154296875006,44.71464843749999],[80.35527343750002,44.09726562500006],[80.78574218750006,43.16157226562504],[80.39023437500006,43.043115234374966],[80.53896484375005,42.873486328124955],[80.20224609375012,42.73447265624998],[80.209375,42.190039062500006],[80.07128906249997,42.302978515625],[79.92109375000004,42.41313476562496],[79.49013671875,42.45756835937496],[79.42822265624997,42.483496093750006],[79.20302734375005,42.66601562499997],[79.16484375000007,42.759033203125],[79.1266601562501,42.775732421875034],[76.98808593750007,42.97358398437501],[76.64648437500003,42.928808593750034],[76.50917968750005,42.91889648437498],[75.9322265625,42.92851562499999],[75.84033203125003,42.9375],[75.78955078124997,42.93291015624999],[75.68173828125,42.83046875],[75.04765625000007,42.904394531250034],[74.20908203125006,43.24038085937502],[73.88603515625002,43.132568359375],[73.55625,43.002783203125006],[73.45019531249997,42.703027343749966],[73.421875,42.59350585937503],[73.49296875000007,42.409033203125034],[73.41162109375003,42.41977539062498],[73.316015625,42.46699218750001],[73.2829101562501,42.50410156250004],[72.85507812500006,42.561132812500006],[72.75292968750003,42.63789062500001],[72.54316406250004,42.67773437500006],[72.27578125,42.757666015625006],[71.76054687500002,42.82148437500004],[71.5142578125,42.766943359375006],[71.42207031250004,42.78315429687504],[71.25664062500002,42.733544921874966],[70.89287109375007,42.339990234374994],[70.94677734374997,42.24868164062505],[69.15361328125002,41.42524414062498],[68.58408203125,40.876269531250045],[68.57265625,40.62265624999998],[68.29189453125,40.656103515625034],[68.04765625000007,40.80927734374998],[68.11308593750007,41.02861328124999],[67.9357421875001,41.19658203125002],[66.70966796875004,41.17915039062501],[66.49863281250006,41.99487304687503],[66.00957031250007,42.00488281250003],[66.1002929687501,42.99082031249998],[65.80302734375002,42.87695312500006],[65.49619140625,43.310546875],[64.9054687500001,43.714697265625006],[64.44316406250007,43.55117187499999],[63.20703125000003,43.62797851562502],[61.99023437500003,43.492138671874955],[61.007910156250006,44.39379882812497],[58.555273437500006,45.55537109375001],[55.97568359375006,44.99492187499996],[55.97744140625005,41.32221679687504],[55.434375,41.296289062499994],[54.85380859375002,41.965185546875006],[54.120996093749994,42.335205078125],[53.0558593750001,42.14775390624999],[52.4938476562501,41.780371093750034],[52.59658203125005,42.760156249999966],[51.898242187500074,42.86962890624997],[51.61601562500002,43.15844726562503],[51.29541015624997,43.17412109375002],[51.30175781249997,43.48237304687501],[50.8307617187501,44.192773437499966],[50.331152343750006,44.32548828125002],[50.25292968749997,44.461523437500006],[50.409472656250074,44.6240234375],[51.543554687500006,44.53100585937506],[51.009375,44.92182617187501],[51.4157226562501,45.35786132812501],[53.20039062500004,45.33198242187498],[52.77382812499999,45.57275390625],[53.13525390625003,46.19165039062497],[53.069433593750006,46.85605468750006],[52.48320312500002,46.99067382812504],[52.13828125,46.82861328124997],[51.178027343750074,47.110156250000045],[49.886328125,46.59565429687504],[49.347460937500074,46.51914062499998],[49.232226562500074,46.33715820312503],[48.54121093750004,46.60561523437502],[48.558398437500074,46.75712890624999],[48.959375,46.77460937499998],[48.16699218750003,47.70878906249996],[47.48193359374997,47.80390624999998],[47.292382812499994,47.74091796875004],[47.06464843750004,48.23247070312499],[46.660937500000074,48.41225585937502],[46.70263671875003,48.80556640625002],[47.031347656250006,49.150292968749994],[46.80205078125002,49.36708984375002],[46.889550781249994,49.69697265625001],[47.42919921874997,50.35795898437502],[47.7057617187501,50.37797851562502],[48.33496093750003,49.858251953125006],[48.7589843750001,49.92832031250006],[48.625097656250006,50.61269531250005],[49.32343750000004,50.851708984374966],[49.49804687500003,51.08359375000006],[50.246875,51.28950195312498],[50.79394531249997,51.729199218749955],[51.16347656250005,51.6474609375],[51.344531250000074,51.47534179687503],[52.21914062499999,51.709375],[52.57119140625005,51.481640624999955],[53.33808593750004,51.48237304687504],[54.139746093750006,51.04077148437503],[54.555273437500006,50.535791015624994],[54.64160156250003,51.011572265625034],[55.68623046875004,50.582861328125006],[56.49140625000004,51.01953124999997],[57.01171874999997,51.06518554687503],[57.44218750000002,50.88886718749998],[57.83886718750003,51.091650390625006],[58.359179687500074,51.063818359375034],[58.88369140625005,50.694433593750006],[59.4523437500001,50.62041015625002],[59.523046875,50.492871093749955],[59.812402343749994,50.58203125],[60.05859374999997,50.850292968749955],[60.42480468749997,50.67915039062498],[60.94228515625005,50.69550781250004],[61.38945312500002,50.86103515625001],[61.55468750000003,51.32460937500005],[60.464746093749994,51.651171875000045],[60.03027343749997,51.93325195312505],[60.99453125000005,52.33686523437504],[60.77441406249997,52.67578124999997],[61.047460937500006,52.97246093750002],[62.08271484375004,53.00541992187499],[61.65986328125004,53.22846679687504],[61.19921874999997,53.28715820312502],[61.22890625,53.445898437500006],[61.53496093750002,53.52329101562506],[60.97949218749997,53.62172851562505],[61.231054687500006,54.01948242187498],[61.92871093750003,53.94648437500004],[64.46123046875002,54.38417968750002],[65.08837890624997,54.340185546875034],[65.476953125,54.62329101562497],[68.15585937500006,54.97670898437505],[68.20625,55.16093750000002],[68.9772460937501,55.389599609374955],[70.18242187500002,55.162451171875034],[70.73808593750007,55.30517578125],[71.18554687500003,54.59931640624998],[71.09316406250005,54.21220703124999],[72.00449218750006,54.20566406249998],[72.18603515625003,54.32563476562501],[72.44677734375003,53.94184570312498],[72.62226562500004,54.13432617187502],[73.22988281250005,53.957812500000045],[73.71240234375003,54.04238281250002],[73.30566406250003,53.707226562499955],[73.40693359375004,53.44755859374999],[73.85898437500006,53.61972656249998],[74.35156250000003,53.487646484375006],[74.45195312500007,53.64726562500002],[75.22021484374997,53.89379882812506],[75.43720703125004,54.08964843749999],[76.8373046875,54.4423828125],[76.65458984375007,54.14526367187503],[76.42167968750007,54.151513671874966],[76.48476562500005,54.02255859374998],[77.85996093750006,53.269189453124994],[79.98623046875,50.774560546874966],[80.42363281250002,50.94628906249997],[80.44804687500002,51.18334960937503],[80.73525390625,51.29340820312498],[81.12724609375002,51.19106445312502],[81.0714843750001,50.96875],[81.38828125000006,50.95649414062501],[81.46591796875006,50.73984375],[82.49394531250007,50.72758789062499],[82.76083984375012,50.89335937500002],[83.35732421875005,50.99458007812504],[83.94511718750007,50.774658203125],[84.32324218749997,50.239160156249966],[84.9894531250001,50.061425781249994],[85.2326171875001,49.61582031249998],[86.1808593750001,49.49931640624996],[86.67548828125004,49.77729492187501],[86.62646484374997,49.56269531250001],[87.32285156250012,49.085791015625006]]]]},"properties":{"name":"Kazakhstan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[35.325292968750006,5.364892578124994],[35.745019531249994,5.343994140625],[35.80029296874997,5.156933593749983],[35.77929687499997,5.105566406250006],[35.756152343750074,4.950488281250031],[35.76308593750005,4.808007812500051],[36.02197265625003,4.468115234374991],[36.90556640625002,4.411474609374991],[37.15458984375002,4.254541015624994],[37.944921875,3.746728515625023],[38.0861328125001,3.648828124999966],[38.22529296875004,3.61899414062502],[38.45156250000005,3.604833984374977],[38.608007812500006,3.600097656249986],[39.49443359375002,3.45610351562496],[39.65751953125002,3.577832031249983],[39.79033203125002,3.754248046875034],[39.8421875,3.851464843750037],[40.765234375,4.273046875000034],[41.02080078125002,4.057470703124991],[41.22089843750004,3.943554687499969],[41.372460937499994,3.94619140624998],[41.48193359375003,3.96328125],[41.737695312499994,3.979052734375003],[41.88398437500004,3.977734375000011],[41.6134765625001,3.59047851562498],[41.34179687499997,3.20166015625],[40.964453125,2.814648437500026],[40.9787109375001,-0.870312500000011],[41.249804687500074,-1.220507812499946],[41.4269531250001,-1.449511718749974],[41.521875,-1.572265625000028],[41.53271484374997,-1.695312499999957],[41.26748046875005,-1.945019531250026],[40.889746093750006,-2.023535156250034],[40.89824218750002,-2.269921874999966],[40.64414062500006,-2.53945312499998],[40.22246093750002,-2.688378906250037],[40.1154296875001,-3.250585937499991],[39.8609375,-3.576757812500006],[39.49091796875004,-4.478417968750023],[39.221777343750006,-4.692382812500014],[37.608203125000074,-3.497070312500028],[37.643847656250074,-3.045410156250028],[33.90322265625005,-1.002050781250034],[33.94316406250002,0.173779296874969],[34.160937500000074,0.605175781250026],[34.4108398437501,0.867285156250034],[34.48173828125002,1.042138671875051],[34.79863281250002,1.24453125],[34.976464843749994,1.719628906250051],[34.97753906249997,1.861914062499991],[34.9640625000001,2.06240234374998],[34.8830078125001,2.417919921875026],[34.90576171875003,2.4796875],[34.44785156250006,3.163476562500037],[34.40722656249997,3.357519531250034],[34.39941406249997,3.412695312500006],[34.44179687499999,3.60625],[34.43769531250004,3.650585937499969],[34.392871093750074,3.691503906250048],[34.26708984375003,3.733154296875],[34.16503906250003,3.812988281250014],[34.18574218750004,3.869775390625037],[34.13203125000004,3.889160156249986],[33.97607421874997,4.220214843750028],[34.176855468750006,4.419091796875037],[34.38017578125002,4.620654296874974],[34.6398437500001,4.875488281250028],[34.878320312499994,5.109570312500026],[35.08447265624997,5.31186523437502],[35.268359375000074,5.492285156250006],[35.325292968750006,5.364892578124994]]]},"properties":{"name":"Kenya","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[72.63994140625002,39.385986328125],[72.22998046875,39.20751953125],[72.14736328125002,39.2607421875],[72.08417968750001,39.31064453125],[72.04277343750002,39.3521484375],[71.77861328125002,39.277978515624994],[71.73222656250002,39.422998046874994],[71.50332031250002,39.478808593749996],[71.51738281250002,39.553857421874994],[71.50302734375,39.582177734374994],[71.4703125,39.603662109374994],[70.79931640625,39.3947265625],[70.50117187500001,39.587353515625],[69.29765625000002,39.524804687499994],[69.2447265625,39.827099609375],[69.27880859375,39.917773437499996],[69.3072265625,39.968554687499996],[69.36542968750001,39.947070312499996],[69.43193359375002,39.909765625],[69.47626953125001,39.919726562499996],[69.47099609375002,39.990625],[69.46875,40.020751953125],[69.966796875,40.20224609375],[70.59921875,39.974511718749994],[70.990625,40.2548828125],[71.3046875,40.286914062499996],[71.69248046875,40.15234375],[72.13125,40.438623046874994],[72.3892578125,40.427392578124994],[72.40205078125001,40.578076171875],[72.6041015625,40.525439453124996],[73.13212890625002,40.82851562499999],[72.65830078125,40.869921875],[72.36406250000002,41.04345703125],[72.294921875,41.039941406249994],[72.21308593750001,41.0142578125],[72.18730468750002,41.025927734374996],[72.18095703125002,41.118457031249996],[72.16425781250001,41.173730468749994],[72.11542968750001,41.186572265624996],[72.05244140625001,41.16474609375],[71.95849609375,41.187060546874996],[71.87861328125001,41.19501953125],[71.8580078125,41.311376953125],[71.79248046875,41.413134765624996],[71.75771484375002,41.428027343749996],[71.70068359375,41.454003906249994],[71.66494140625002,41.5412109375],[71.6375,41.5341796875],[71.60224609375001,41.503271484375],[71.60625,41.367431640625],[71.54560546875001,41.308056640625],[71.5,41.307470703125],[71.4208984375,41.34189453125],[71.40839843750001,41.136035156249996],[71.39306640625,41.123388671875],[71.11074218750002,41.152636718749996],[70.86044921875,41.224902343749996],[70.734375,41.400537109374994],[70.18095703125002,41.571435546874994],[70.85664062500001,42.030810546874996],[71.0322265625,42.077783203124994],[71.228515625,42.162890625],[71.23232421875002,42.186279296875],[71.21269531250002,42.206445312499994],[71.12998046875,42.25],[71.03603515625002,42.28466796875],[70.97900390625,42.266552734375],[70.94677734375,42.248681640624994],[70.89287109375002,42.339990234374994],[71.25664062500002,42.733544921874994],[71.42207031250001,42.783154296875],[71.5142578125,42.766943359375],[71.76054687500002,42.821484375],[72.16181640625001,42.760693359375],[72.27578125000002,42.757666015625],[72.54316406250001,42.677734375],[72.7529296875,42.637890625],[72.855078125,42.5611328125],[73.28291015625001,42.5041015625],[73.316015625,42.4669921875],[73.41162109375,42.419775390625],[73.49296875000002,42.409033203125],[73.421875,42.593505859375],[73.4501953125,42.703027343749994],[73.55625,43.002783203125],[73.88603515625002,43.132568359375],[74.20908203125,43.240380859374994],[75.04765625000002,42.90439453125],[75.68173828125,42.83046875],[75.78955078125,42.932910156249996],[75.84033203125,42.9375],[75.9322265625,42.928515625],[76.50917968750002,42.918896484375],[76.646484375,42.92880859375],[76.98808593749999,42.973583984375],[79.12666015625001,42.775732421875],[79.20302734375002,42.666015625],[79.29550781250003,42.604833984375],[79.36777343750003,42.547216796875],[79.42822265625,42.48349609375],[79.92109375000001,42.413134765624996],[80.0712890625,42.302978515625],[80.209375,42.1900390625],[80.24619140625003,42.059814453125],[80.23515624999999,42.04345703125],[80.21621093750002,42.032421875],[79.90966796875,42.014990234375],[79.84042968750003,41.995751953124994],[79.76611328125,41.898876953125],[78.74257812500002,41.56005859375],[78.54316406250001,41.4595703125],[78.44287109375,41.417529296874996],[78.36240234375003,41.371630859374996],[78.34628906250003,41.2814453125],[78.12343750000002,41.075634765625],[77.95644531250002,41.050683593749994],[77.81523437499999,41.055615234375],[77.71933593750003,41.024316406249994],[77.58173828125001,40.9927734375],[76.98662109374999,41.03916015625],[76.90771484375,41.024169921875],[76.82402343749999,40.982324218749994],[76.70839843750002,40.818115234375],[76.6611328125,40.779638671875],[76.63984375000001,40.742236328124996],[76.62216796875003,40.662353515625],[76.57792968749999,40.577880859375],[76.48017578125001,40.449511718749996],[76.39638671875002,40.389794921874994],[76.31855468750001,40.35224609375],[76.25830078125,40.43076171875],[75.87197265625002,40.30322265625],[75.67714843750002,40.305810546874994],[75.55556640625002,40.6251953125],[75.52080078125002,40.6275390625],[75.24101562500002,40.480273437499996],[75.111328125,40.4541015625],[75.0044921875,40.449511718749996],[74.865625,40.493505859375],[74.80126953125,40.428515625],[74.83046875000002,40.32851562499999],[74.41191406250002,40.13720703125],[74.24267578125,40.092041015625],[74.08515625000001,40.07431640625],[73.99160156250002,40.043115234374994],[73.93876953125002,39.978808593749996],[73.88457031250002,39.8779296875],[73.85625,39.828662109374996],[73.83535156250002,39.800146484375],[73.83974609375002,39.762841796874994],[73.88251953125001,39.71455078125],[73.9146484375,39.606494140624996],[73.90712890625002,39.57851562499999],[73.87275390625001,39.53330078125],[73.82294921875001,39.48896484375],[73.71572265625002,39.462255859375],[73.63164062500002,39.448876953124994],[73.47041015625001,39.460595703124994],[73.38740234375001,39.442724609375],[73.33613281250001,39.412353515625],[73.2349609375,39.374560546874996],[73.10927734375002,39.3619140625],[72.63994140625002,39.385986328125]],[[70.66416015625,39.85546875],[70.56708984375001,39.866601562499994],[70.49775390625001,39.882421875],[70.48281250000002,39.882714843749994],[70.4892578125,39.863037109375],[70.5595703125,39.790917968749994],[70.61210937500002,39.786767578124994],[70.70166015625,39.82529296875],[70.66416015625,39.85546875]],[[71.20615234375,39.892578125],[71.22871093750001,40.048144531249996],[71.08037109375002,40.079882812499996],[71.02412109375001,40.149169921875],[71.00546875,40.152294921875],[70.96064453125001,40.08798828125],[71.04482421875002,39.992529296875],[71.04365234375001,39.976318359375],[71.01171875,39.8951171875],[71.06425781250002,39.884912109374994],[71.15625,39.883447265624994],[71.20615234375,39.892578125]]]},"properties":{"name":"Kyrgyzstan","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[104.42636718750006,10.411230468749991],[103.87050781250005,10.655126953125034],[103.58710937500004,10.552197265625026],[103.54042968750005,10.668701171875043],[103.721875,10.890136718750043],[103.5324218750001,11.146679687499997],[103.35361328125006,10.921582031250054],[103.15283203124997,10.913720703125051],[103.12548828124997,11.460644531250011],[102.9486328125,11.773486328124974],[102.93388671875002,11.706689453125037],[102.73662109375007,12.089794921875011],[102.75566406250002,12.42626953125],[102.49960937500012,12.669970703125003],[102.33632812500005,13.560302734375014],[102.546875,13.585693359375043],[102.90927734375006,14.136718750000028],[103.19941406250004,14.332617187499977],[104.77900390625004,14.427832031250006],[105.07412109375005,14.227441406250037],[105.12597656250003,14.280957031250011],[105.16914062500004,14.336083984374966],[105.1833007812501,14.346240234374989],[105.18554687500003,14.319091796874972],[105.20703125000003,14.259375],[105.24570312500006,14.200537109374977],[105.35019531250006,14.109570312500011],[105.53154296875007,14.156152343749994],[105.73974609375003,14.084960937500057],[105.83144531250005,13.976611328125003],[105.9044921875001,13.924511718750054],[106.06679687500005,13.921191406250003],[106.12470703125004,14.049121093750031],[106.09667968749997,14.127099609375023],[106.00410156250004,14.262890624999983],[105.97890625,14.343017578125043],[106.00839843750012,14.357177734375],[106.1652343750001,14.372363281249989],[106.19072265625007,14.388134765624997],[106.22539062500002,14.476220703125009],[106.26796875,14.466210937500009],[106.35498046875003,14.454785156249997],[106.44697265625004,14.515039062500009],[106.50146484375003,14.578222656250006],[106.53115234375005,14.549414062499991],[106.5636718750001,14.505078125000026],[106.59921875000006,14.479394531250037],[106.66542968750005,14.441308593749994],[106.73818359375005,14.387744140625017],[106.78349609375002,14.335107421875037],[106.81992187500006,14.314697265625057],[106.91318359375006,14.329394531250031],[106.93808593750006,14.327343750000054],[106.99218750000003,14.391015624999966],[107.03017578125,14.425683593750009],[107.06240234375,14.415771484375043],[107.109375,14.416699218750054],[107.29267578125004,14.592382812500048],[107.37988281250003,14.555322265625051],[107.41474609375004,14.56289062499999],[107.51943359375005,14.705078125],[107.3314453125,14.126611328125009],[107.60546874999997,13.437792968750017],[107.47539062500002,13.030371093749963],[107.50644531250006,12.364550781250031],[107.39335937500002,12.260498046874972],[107.21210937500004,12.30400390624996],[106.70009765625,11.979296874999974],[106.41386718750002,11.9484375],[106.39921875000007,11.687011718750028],[106.0060546875001,11.758007812500011],[105.85146484375005,11.635009765625],[105.85605468750006,11.294287109375048],[106.16093750000002,11.037109375000057],[106.16396484375005,10.794921875],[105.85332031250007,10.86357421874996],[105.75507812500004,10.989990234375043],[105.40576171875003,10.95161132812504],[105.3146484375001,10.845166015625026],[105.04570312500002,10.911376953125014],[105.04638671874997,10.701660156250014],[104.85058593749997,10.534472656249974],[104.42636718750006,10.411230468749991]]]},"properties":{"name":"Cambodia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-157.34213867187503,1.855566406250034],[-157.17578125,1.73984375],[-157.57895507812498,1.902050781249997],[-157.43583984374993,1.84726562500002],[-157.365185546875,1.94609375],[-157.44189453125003,2.025048828125009],[-157.321875,1.968554687500045],[-157.34213867187503,1.855566406250034]]],[[[-159.3390625,3.923535156249983],[-159.27475585937503,3.796582031250054],[-159.40903320312503,3.87324218750004],[-159.3390625,3.923535156249983]]]]},"properties":{"name":"Kiribati","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[126.32695312500002,33.2236328125],[126.16562500000012,33.31201171875],[126.33769531250002,33.46040039062501],[126.90117187500002,33.51513671874997],[126.87285156250002,33.34116210937498],[126.32695312500002,33.2236328125]]],[[[126.23369140625002,34.370507812499994],[126.12285156250002,34.443945312500034],[126.34384765625012,34.544921875],[126.23369140625002,34.370507812499994]]],[[[126.17197265625006,34.73115234375001],[126.00751953125004,34.86748046874999],[126.07841796875002,34.914843750000045],[126.17197265625006,34.73115234375001]]],[[[128.0658203125,34.80585937500004],[128.05468750000003,34.70805664062502],[127.87343750000005,34.73496093749998],[127.8322265625001,34.87451171875],[128.0658203125,34.80585937500004]]],[[[128.74101562500007,34.798535156249955],[128.64667968750004,34.73686523437502],[128.48925781250003,34.86528320312496],[128.66796875000003,35.0087890625],[128.74101562500007,34.798535156249955]]],[[[126.52070312500004,37.73681640625003],[126.516015625,37.60468750000001],[126.42333984375003,37.62363281250006],[126.41162109374997,37.82265625000002],[126.52070312500004,37.73681640625003]]],[[[128.37460937500012,38.6234375],[129.41826171875002,37.059033203124955],[129.40351562500004,36.052148437499994],[129.57285156250006,36.05053710937503],[129.4191406250001,35.49785156249996],[129.07675781250006,35.12270507812502],[128.5109375000001,35.10097656250002],[128.44394531250012,34.87036132812503],[128.03623046875006,35.02197265625],[127.71484374999997,34.95468749999998],[127.71542968750012,34.72104492187498],[127.40429687499997,34.823095703125006],[127.47910156250012,34.625244140625],[127.324609375,34.463281249999966],[127.17343750000006,34.54614257812497],[127.24707031249997,34.755126953125],[126.89746093749997,34.438867187499966],[126.75478515625005,34.511865234374994],[126.53144531250004,34.31425781249999],[126.26445312500002,34.67324218750002],[126.52451171875006,34.697900390624966],[126.59335937500012,34.824365234374994],[126.42070312500002,34.823388671874966],[126.29111328125012,35.154150390625034],[126.61406250000007,35.57099609375004],[126.4884765625001,35.647070312500006],[126.75302734375006,35.871972656249994],[126.5404296875,36.166162109374966],[126.4876953125,36.69379882812498],[126.18085937500004,36.69160156249998],[126.16054687500005,36.77192382812501],[126.48701171875004,37.00747070312502],[126.78447265625007,36.94843749999998],[126.87207031249997,36.82446289062506],[126.97685546875002,36.93940429687501],[126.74638671875002,37.19355468750001],[126.63388671875012,37.78183593750006],[127.09033203125003,38.28388671875001],[128.03896484375,38.30854492187498],[128.37460937500012,38.6234375]]]]},"properties":{"name":"Korea","childNum":7}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[48.27539062499997,29.624316406250017],[48.17968750000003,29.611425781250063],[48.081445312499994,29.798925781250063],[48.1847656250001,29.978857421875034],[48.348242187500006,29.78266601562504],[48.27539062499997,29.624316406250017]]],[[[48.442480468750006,28.542919921874983],[47.671289062499994,28.53315429687504],[47.433203125,28.989550781250017],[46.53144531250004,29.09624023437499],[46.69375,29.259667968749966],[46.76933593750002,29.347460937500017],[46.90585937500006,29.5375],[47.14824218750002,30.0009765625],[47.64375,30.097314453125023],[47.75390624999997,30.076611328124955],[47.97871093750004,29.98281250000005],[48.00566406250002,29.835791015625034],[48.143457031249994,29.57246093750001],[47.96962890625005,29.61669921874997],[47.72265624999997,29.393017578124955],[48.0514648437501,29.355371093750023],[48.442480468750006,28.542919921874983]]]]},"properties":{"name":"Kuwait","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[102.12744140625011,22.37919921874999],[102.58251953125006,21.904296875000057],[102.66201171875008,21.676025390625057],[102.73857421875005,21.677929687500125],[102.77109375000015,21.70966796875001],[102.79824218750014,21.797949218750034],[102.81591796875,21.807373046875],[102.94960937500008,21.681347656250068],[102.85117187500009,21.26591796874999],[102.8837890625,21.202587890625068],[103.1044921875,20.89165039062499],[103.21074218749999,20.840625],[103.46357421874995,20.779833984375102],[103.6350585937501,20.697070312500102],[104.10136718750005,20.945507812500125],[104.1953125,20.91396484375008],[104.349609375,20.82109374999999],[104.58320312500001,20.646679687499955],[104.53271484375,20.554882812500125],[104.47861328124998,20.529589843750102],[104.40781250000015,20.485742187500023],[104.36777343750015,20.441406250000057],[104.39218750000015,20.424755859375068],[104.49619140625003,20.41367187499992],[104.61884765624995,20.374511718750114],[104.65644531250001,20.328515624999966],[104.66191406250005,20.289013671875125],[104.67695312500007,20.224707031249977],[104.69873046875006,20.205322265625114],[104.84785156250007,20.202441406250045],[104.88867187500006,20.169091796875023],[104.92919921874994,20.082812500000045],[104.92792968750007,20.01811523437499],[104.81513671875001,19.90400390625001],[104.80175781250011,19.836132812500068],[104.74316406250006,19.754736328124977],[104.58789062500006,19.61875],[104.54628906250014,19.610546875000068],[104.25986328125003,19.685498046875068],[104.06279296875005,19.678417968750068],[104.03203124999999,19.67514648437492],[104.0134765625001,19.646484374999943],[104.05156250000005,19.564160156250068],[104.06289062500002,19.482568359375136],[104.02753906250013,19.420458984375102],[103.93203125000002,19.366064453125034],[103.89638671875002,19.339990234375023],[103.89160156249994,19.30498046874999],[105.146484375,18.650976562499977],[105.14541015625014,18.616796874999977],[105.08701171875015,18.49624023437508],[105.11455078125005,18.405273437500057],[105.45820312500007,18.154296875000057],[105.51855468750011,18.077441406250045],[105.58847656250015,17.983691406249932],[105.69140625,17.737841796874932],[106.00625,17.415283203124943],[106.26953125,17.216796875000057],[106.33339843750002,17.14370117187508],[106.42597656250007,17.00253906250009],[106.50224609374999,16.9541015625],[106.52597656250003,16.876611328125023],[106.53369140625,16.821044921875057],[106.54619140625005,16.650732421874977],[106.65644531250013,16.492626953125125],[106.73955078124999,16.452539062500136],[106.79160156250015,16.490332031249977],[106.83242187500008,16.526269531250023],[106.85107421875,16.515625],[106.89277343750013,16.396533203125102],[106.93066406250006,16.353125],[107.39638671875008,16.04301757812499],[107.39199218750008,15.951660156250057],[107.36064453125005,15.921728515624977],[107.18886718750008,15.838623046875114],[107.16591796875002,15.802490234375],[107.27939453125003,15.618701171875045],[107.33876953125002,15.560498046875125],[107.56425781249999,15.3916015625],[107.62167968750015,15.309863281250045],[107.653125,15.255224609375091],[107.63369140625008,15.18984375000008],[107.58964843749999,15.118457031250102],[107.55527343750009,15.057031250000023],[107.48037109375014,14.979882812500136],[107.5046875000001,14.91591796875008],[107.52451171875003,14.871826171874943],[107.51376953124998,14.817382812500057],[107.51943359375008,14.705078125000114],[107.46513671875005,14.664990234375125],[107.41474609375007,14.56289062500008],[107.37988281250006,14.555322265625136],[107.29267578125007,14.592382812500034],[107.109375,14.416699218749955],[107.06240234375008,14.415771484374943],[107.03017578125008,14.425683593750023],[106.99218749999994,14.39101562500008],[106.93808593750015,14.327343750000068],[106.91318359375003,14.329394531249932],[106.81992187500003,14.314697265624943],[106.7834960937501,14.335107421875023],[106.73818359375008,14.387744140625102],[106.66542968750002,14.441308593750023],[106.59921875000003,14.479394531250136],[106.56367187500007,14.505078125000011],[106.53115234375002,14.549414062499977],[106.50146484375,14.578222656250034],[106.22539062500005,14.476220703125023],[106.1907226562501,14.388134765625011],[106.16523437500007,14.372363281249989],[106.00839843750009,14.357177734375114],[105.97890625000014,14.343017578125057],[106.00410156250013,14.262890625000068],[106.09667968750011,14.127099609375136],[106.12470703124995,14.049121093750045],[106.06679687500008,13.921191406250102],[105.90449218750007,13.924511718750068],[105.83144531250008,13.976611328124989],[105.73974609375006,14.084960937500057],[105.5315429687501,14.156152343750023],[105.35019531250009,14.109570312500125],[105.24570312500015,14.200537109374977],[105.20703125000006,14.259375],[105.18554687499994,14.319091796875],[105.18330078125001,14.346240234374989],[105.24365234375006,14.367871093749955],[105.34218750000008,14.416699218749955],[105.42265624999993,14.471630859374955],[105.47558593750006,14.530126953124977],[105.49736328125005,14.590673828125034],[105.52304687500015,14.843310546874989],[105.54667968749999,14.932470703125034],[105.53339843750013,15.041601562500091],[105.49042968750007,15.127587890625023],[105.49042968750007,15.256591796875],[105.615625,15.488281249999943],[105.63886718750013,15.585937499999943],[105.64101562500002,15.656542968749932],[105.62207031250006,15.699951171875114],[105.39892578125011,15.829882812500102],[105.40625,15.987451171875023],[105.33066406250003,16.037890625000045],[105.1487304687501,16.09355468749999],[105.04716796874999,16.16025390625009],[104.81933593749994,16.466064453125057],[104.75058593750015,16.647558593750034],[104.74355468750014,16.884375],[104.75898437500013,17.0771484375],[104.81601562499998,17.30029296875],[104.73964843750008,17.461669921875],[104.428125,17.698974609375057],[104.32265625000002,17.815820312500023],[104.19619140625002,17.988378906250034],[104.04873046875002,18.216699218749966],[103.94960937500008,18.318994140625023],[103.89882812500002,18.295312500000023],[103.79228515624999,18.31650390625009],[103.62968750000005,18.382568359375057],[103.48798828124995,18.41816406250001],[103.36699218750005,18.42333984375],[103.28828124999995,18.408398437499955],[103.25175781249999,18.373486328125125],[103.24892578125014,18.338964843750034],[103.27958984374999,18.304980468750045],[103.26318359375,18.278466796875136],[103.19970703125006,18.25947265625001],[103.14853515625009,18.221728515624932],[103.09121093750014,18.13823242187499],[103.05136718750003,18.02851562500001],[102.80742187500005,17.945556640625],[102.71757812500005,17.892236328125136],[102.67519531250014,17.851757812500068],[102.68007812500008,17.824121093750136],[102.66064453125,17.8179687499999],[102.61679687500015,17.833349609375034],[102.59824218750009,17.926757812500057],[102.55253906249999,17.965087890625057],[102.4587890625001,17.984619140624943],[102.35185546874999,18.045947265625045],[102.14824218750005,18.203857421875057],[102.10146484375014,18.21064453125001],[102.03457031250002,18.169824218750023],[101.94746093750001,18.081494140624955],[101.87548828125011,18.046435546874932],[101.81865234375005,18.064648437500125],[101.77480468750002,18.033398437500125],[101.6875,17.889404296875114],[101.56367187500001,17.820507812500125],[101.55507812500002,17.812353515625034],[101.41367187500015,17.71875],[101.16748046875011,17.4990234375],[101.10517578125001,17.479541015625102],[100.9084960937501,17.583886718750023],[101.14394531250008,18.14262695312499],[101.1375,18.286865234375057],[101.0505859375001,18.407031250000045],[101.04697265625003,18.441992187500034],[101.28632812499995,18.977148437500034],[101.19755859374999,19.327929687500045],[101.22080078125015,19.486621093750045],[101.21191406250011,19.548339843750057],[100.51357421875008,19.553466796875],[100.39765625000013,19.756103515625057],[100.51953125000006,20.177929687500068],[100.31796875000003,20.385888671875136],[100.2180664062501,20.339599609375114],[100.13974609375015,20.245410156250102],[100.11494140625007,20.25766601562492],[100.12246093750002,20.316650390625057],[100.12968750000005,20.372216796875023],[100.1838867187501,20.589111328124943],[100.2493164062501,20.730273437499932],[100.32607421875008,20.795703124999932],[100.40742187499995,20.823242187500057],[100.56513671875013,20.82509765625008],[100.62294921875002,20.85957031250001],[100.61767578125,20.87924804687509],[100.54931640625011,20.884228515625068],[100.5222656250001,20.921923828125102],[100.53613281250006,20.992382812500068],[100.703125,21.25136718750008],[101.0803710937501,21.46865234375008],[101.13886718750013,21.567480468749977],[101.19667968750002,21.522070312499977],[101.17539062500009,21.407519531250102],[101.21992187500013,21.342431640625136],[101.21181640625008,21.278222656250023],[101.22441406249999,21.22373046874992],[101.24785156249993,21.197314453125045],[101.28144531250007,21.184130859375045],[101.44355468750001,21.230810546874977],[101.54238281250008,21.234277343750136],[101.70478515625013,21.150146484375057],[101.728125,21.15639648437508],[101.78349609374999,21.204150390625045],[101.8005859375001,21.212597656249955],[101.7229492187501,21.314941406250057],[101.74726562500007,21.60576171874999],[101.7439453125001,21.77797851562508],[101.73652343750001,21.826513671874977],[101.52451171874998,22.253662109375],[101.56787109375011,22.2763671875],[101.6199218750001,22.327441406250102],[101.67148437500009,22.462304687500023],[101.70751953125,22.486572265625],[101.73876953125011,22.495263671874966],[101.75996093750001,22.490332031250034],[101.841796875,22.388476562500102],[102.02441406250006,22.439208984375114],[102.09150390625007,22.412255859375136],[102.12744140625011,22.37919921874999]]]},"properties":{"name":"Lao PDR","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[35.869140625,33.43173828125],[35.411230468750006,33.07568359375],[35.10859375000001,33.08369140625],[35.64785156250002,34.2482421875],[35.97626953125001,34.629199218749996],[36.383886718750006,34.65791015625],[36.32988281250002,34.499609375],[36.50439453125,34.432373046875],[36.5849609375,34.221240234374996],[36.27783203125,33.92529296875],[36.36503906250002,33.83935546875],[35.98613281250002,33.75263671875],[36.03447265625002,33.58505859375],[35.869140625,33.43173828125]]]},"properties":{"name":"Lebanon","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-8.486425781249977,7.558496093749994],[-8.408740234374989,7.411816406249997],[-8.324511718749989,6.920019531249991],[-8.587890625,6.490527343749989],[-8.287109375,6.319042968749997],[-7.981591796874994,6.2861328125],[-7.888623046874983,6.23486328125],[-7.800927734374994,6.038916015624991],[-7.730371093749994,5.919042968749991],[-7.636132812499994,5.90771484375],[-7.454394531249989,5.84130859375],[-7.39990234375,5.550585937499989],[-7.585058593749977,4.916748046875],[-7.574658203124983,4.572314453124989],[-7.544970703124989,4.351318359375],[-8.259033203125,4.589990234374994],[-9.132177734374977,5.054638671874997],[-10.2763671875,6.07763671875],[-11.291601562499977,6.688232421875],[-11.507519531249983,6.906542968749989],[-11.267675781249977,7.232617187499997],[-10.878076171874994,7.538232421874994],[-10.6474609375,7.759375],[-10.570849609374989,8.071142578124991],[-10.516748046874994,8.125292968749989],[-10.359814453124983,8.187939453124997],[-10.283203125,8.485156249999989],[-10.233056640624994,8.488818359374989],[-10.147412109374983,8.519726562499997],[-10.064355468749994,8.429882812499997],[-9.781982421875,8.537695312499991],[-9.518261718749983,8.34609375],[-9.369140625,7.703808593749997],[-9.463818359374983,7.415869140624991],[-9.11757812499999,7.215917968749991],[-8.8896484375,7.2626953125],[-8.659765624999977,7.688378906249994],[-8.486425781249977,7.558496093749994]]]},"properties":{"name":"Liberia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[25.150488281250006,31.654980468749997],[24.85273437500001,31.334814453125],[24.96142578125,30.678515625],[24.703222656250006,30.201074218749994],[24.980273437500017,29.181884765625],[24.980273437500017,25.5888671875],[24.980273437500017,21.995849609375],[24.9794921875,20.002587890624994],[23.980273437500017,19.99594726562499],[23.980273437500017,19.496630859375003],[20.14765625000001,21.38925781249999],[15.984082031250011,23.445214843749994],[14.97900390625,22.99619140624999],[14.215527343750011,22.619677734375003],[13.48125,23.18017578125],[11.967871093750006,23.517871093750003],[11.507617187500017,24.314355468749994],[10.686132812500006,24.55136718749999],[10.395898437500023,24.485595703125],[10.255859375,24.591015625],[10.000683593750011,25.332080078125003],[9.4482421875,26.067138671875],[9.491406250000011,26.333740234375],[9.883203125000023,26.630810546874997],[9.74755859375,27.330859375],[9.916015625,27.785693359374996],[9.805273437500006,29.176953125],[9.310253906250011,30.115234375],[9.51875,30.229394531249994],[9.89501953125,30.3873046875],[9.932519531250023,30.425341796874996],[10.059765625000011,30.580078125],[10.21640625,30.783203125],[10.114941406250011,31.463769531249994],[10.274609375000011,31.684960937499994],[10.475781250000011,31.736035156249997],[10.60888671875,31.929541015625],[10.826367187500011,32.0806640625],[11.005175781250017,32.172705078125],[11.168261718750017,32.256738281249994],[11.358007812500006,32.34521484375],[11.504980468750006,32.413671875],[11.535937500000017,32.47333984375],[11.533789062500006,32.524951171874996],[11.453906250000017,32.642578125],[11.453906250000017,32.781689453125],[11.459179687500011,32.897363281249994],[11.467187500000023,32.965722656249994],[11.504589843750011,33.181933593749996],[11.657128906250023,33.118896484375],[11.8134765625,33.093701171875],[12.279882812500006,32.858544921874994],[12.753515625,32.801074218749996],[13.283496093750017,32.9146484375],[15.176562500000017,32.391162109374996],[15.705957031250023,31.426416015624994],[17.830468750000023,30.927587890625],[18.669824218750023,30.415673828124994],[19.12373046875001,30.26611328125],[19.713281250000023,30.48837890625],[20.11152343750001,30.963720703125],[19.926367187500006,31.817529296874994],[20.121484375000023,32.21875],[20.62109375,32.58017578125],[21.63593750000001,32.937304687499996],[22.187402343750023,32.918261718749996],[23.090625,32.61875],[23.10625,32.331445312499994],[23.28632812500001,32.213818359375],[24.129687500000017,32.009228515625],[24.878515625,31.984277343749994],[25.150488281250006,31.654980468749997]]]},"properties":{"name":"Libya","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-60.89521484375,13.821972656249997],[-60.951416015625,13.717578125],[-61.073144531249994,13.865576171874991],[-60.908105468749994,14.09335937499999],[-60.89521484375,13.821972656249997]]]},"properties":{"name":"Saint Lucia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[79.87480468750002,9.050732421875026],[79.90371093750005,8.975],[79.74765625000006,9.104589843749991],[79.87480468750002,9.050732421875026]]],[[[79.98232421875,9.812695312500011],[80.25283203125005,9.796337890625054],[80.71113281250004,9.366357421875023],[81.226953125,8.50551757812498],[81.37285156250002,8.431445312499989],[81.42216796875007,8.147851562500023],[81.87412109375012,7.288330078124986],[81.86142578125012,6.901269531249994],[81.63740234375004,6.425146484374991],[80.72412109375003,5.97905273437496],[80.26738281250007,6.009765625],[80.09531250000012,6.153173828125006],[79.859375,6.829296874999983],[79.71298828125012,8.18232421875004],[79.74980468750007,8.294238281250003],[79.78349609375007,8.018457031250051],[79.92890625000004,8.899218749999974],[80.09960937499997,9.209960937500043],[80.08632812500005,9.577832031250026],[80.42832031250006,9.480957031250014],[80.04580078125005,9.649902343749972],[79.98232421875,9.812695312500011]]]]},"properties":{"name":"Sri Lanka","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[28.646875,-30.1265625],[28.39208984375,-30.147558593750006],[28.128710937500017,-30.52509765625001],[28.05683593750001,-30.63105468750001],[27.753125,-30.6],[27.364062500000017,-30.27919921875001],[27.19355468750001,-29.94130859375001],[27.056933593750017,-29.625585937500006],[27.29453125,-29.519335937500003],[27.73554687500001,-28.940039062500006],[27.959863281250023,-28.873339843750003],[28.084375,-28.77998046875001],[28.23261718750001,-28.701269531250006],[28.471875,-28.615820312500006],[28.583398437500023,-28.594140625],[28.625781250000017,-28.58173828125001],[29.301367187500006,-29.08984375],[29.38671875,-29.31972656250001],[29.34882812500001,-29.441992187500006],[29.293554687500006,-29.56689453125],[29.1421875,-29.700976562500003],[29.098046875000023,-29.919042968750006],[28.646875,-30.1265625]]]},"properties":{"name":"Lesotho","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[20.957812500000074,55.27890625000006],[20.89980468750008,55.286669921875045],[21.11484375,55.61650390624999],[20.957812500000074,55.27890625000006]]],[[[25.573046875000017,54.139892578125],[25.497363281250045,54.17524414062501],[25.52734375000003,54.21513671874996],[25.505664062500045,54.26494140624999],[25.46113281250004,54.29277343749996],[25.179492187500017,54.214257812499966],[25.111425781250006,54.15493164062505],[25.04609375000004,54.13305664062503],[24.869531250000023,54.14516601562502],[24.82568359374997,54.118994140625006],[24.78925781250001,53.99824218750001],[24.768164062499977,53.97465820312499],[24.31796875,53.892968749999966],[24.236621093750045,53.91997070312496],[24.19130859375005,53.95043945312503],[23.559082031250057,53.91982421875002],[23.484667968750074,53.939794921875006],[23.453613281250057,54.14345703125002],[23.3701171875,54.20048828124999],[23.282324218750063,54.240332031250034],[23.17031250000008,54.28144531249998],[23.0875,54.299462890624994],[23.042187500000068,54.30419921875],[23.01552734375005,54.34833984375001],[22.976757812500068,54.36635742187505],[22.89394531250008,54.390527343749994],[22.82373046874997,54.39580078124999],[22.766210937499977,54.356787109375034],[22.679882812500068,54.493017578125006],[22.684472656250023,54.56293945312504],[22.82470703125,54.87128906249998],[22.56728515625005,55.05913085937496],[22.072363281250034,55.06367187499998],[21.235742187500023,55.26411132812498],[21.237890625000034,55.455029296874955],[21.06191406250005,55.81342773437498],[21.053808593750006,56.02294921875003],[21.04609375000004,56.07006835937503],[21.31464843750004,56.18813476562502],[21.65351562500004,56.314550781250006],[22.084570312500034,56.40673828125006],[22.875585937500063,56.39643554687501],[22.96826171875003,56.38041992187502],[23.042968750000057,56.324072265625006],[23.119824218749983,56.330664062500006],[23.195898437500034,56.36713867187498],[24.120703125000063,56.26425781249998],[24.90302734375001,56.398193359375],[25.069921875,56.20039062500004],[25.663183593750063,56.104833984375006],[26.593554687500074,55.66752929687502],[26.590820312500057,55.62265625],[26.56660156250001,55.546484375000034],[26.51923828125004,55.448144531249994],[26.469531250000045,55.371923828125006],[26.457617187500006,55.342480468749955],[26.49531250000004,55.31801757812502],[26.68125,55.30644531249999],[26.76015625000008,55.29335937499999],[26.775683593750045,55.27309570312502],[26.601171875000034,55.130175781250045],[26.291796875000074,55.13959960937501],[26.250781250000045,55.12451171875006],[26.175195312500023,55.003271484375034],[26.092968750000068,54.96230468750005],[25.964453124999977,54.947167968749966],[25.85927734375005,54.91928710937498],[25.722460937500074,54.71787109374998],[25.731640625000068,54.59038085937502],[25.72480468750001,54.564257812500045],[25.68515625,54.53579101562502],[25.62031250000004,54.46040039062501],[25.56757812500004,54.377050781250006],[25.54736328125,54.33183593750002],[25.55751953125005,54.310693359374994],[25.702539062499994,54.29296875],[25.765234374999977,54.179785156250034],[25.573046875000017,54.139892578125]]]]},"properties":{"name":"Lithuania","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[6.4873046875,49.798486328124994],[6.344335937500006,49.452734375],[6.181054687500023,49.498925781249994],[6.119921875000017,49.485205078125],[6.074121093750023,49.454638671874996],[6.011425781250011,49.445458984374994],[5.95947265625,49.454638671874996],[5.928906250000011,49.4775390625],[5.9013671875,49.48974609375],[5.823437500000011,49.505078125],[5.789746093750011,49.53828125],[5.776710379464286,49.639953962053575],[5.744042968750023,49.91962890625],[5.7880859375,49.961230468749996],[5.8173828125,50.0126953125],[5.866894531250011,50.0828125],[5.976269531250011,50.1671875],[6.089062500000011,50.154589843749996],[6.110058593750011,50.123779296875],[6.116503906250017,50.120996093749994],[6.109765625000023,50.034375],[6.13818359375,49.97431640625],[6.204882812500017,49.91513671875],[6.272327008928583,49.887234933035714],[6.4873046875,49.798486328124994]]]},"properties":{"name":"Luxembourg","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.14794921875,56.142919921875],[27.576757812500006,55.798779296875],[27.052539062500017,55.83056640625],[26.593554687500017,55.667529296874996],[25.663183593750006,56.104833984375],[25.069921875,56.200390625],[24.90302734375001,56.398193359375],[24.120703125,56.2642578125],[23.81269531250001,56.329248046875],[23.195898437500006,56.367138671875],[23.11982421875001,56.3306640625],[23.04296875,56.324072265625],[22.875585937500006,56.396435546875],[22.084570312500006,56.40673828125],[21.730566406250006,56.325976562499996],[21.65351562500001,56.31455078125],[21.31464843750001,56.188134765625],[21.04609375000001,56.070068359375],[21.0712890625,56.82373046875],[21.72871093750001,57.57099609375],[22.554589843750023,57.724267578125],[23.28730468750001,57.08974609375],[23.647753906250017,56.971044921875],[24.382617187500017,57.250048828124996],[24.322558593750017,57.87060546875],[24.3625,57.866162109375],[24.458886718750023,57.907861328125],[25.11103515625001,58.063427734375],[25.27265625000001,58.009375],[25.66015625,57.920166015625],[26.29804687500001,57.60107421875],[26.532617187500023,57.531005859375],[26.96601562500001,57.609130859375],[27.187109375,57.538330078125],[27.326562500000023,57.52548828125],[27.4697265625,57.5240234375],[27.538671875,57.42978515625],[27.796875,57.316943359374996],[27.82861328125,57.293310546875],[27.838281250000023,57.247705078125],[27.83027343750001,57.194482421875],[27.639453125000017,56.845654296875],[27.806054687500023,56.86708984375],[27.8486328125,56.85341796875],[27.89208984375,56.741064453125],[28.00751953125001,56.599853515625],[28.103125,56.545703125],[28.11083984375,56.510693359375],[28.169238281250017,56.386865234375],[28.191699218750017,56.315576171875],[28.202050781250023,56.260400390625],[28.14794921875,56.142919921875]]]},"properties":{"name":"Latvia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.2125,45.450439453125],[28.07470703125,45.598974609375],[28.23945312500001,46.6408203125],[28.07177734375,46.978417968749994],[27.614062500000017,47.34052734375],[26.980761718750017,48.155029296875],[26.618945312500017,48.25986328125],[26.640429687500017,48.294140625],[26.847070312500023,48.387158203125],[26.90058593750001,48.371923828125],[27.228515625,48.371435546875],[27.549218750000023,48.477734375],[28.34052734375001,48.144433593749994],[28.42304687500001,48.146875],[29.125390625000023,47.96455078125],[29.134863281250006,47.489697265625],[29.455664062500006,47.292626953124994],[29.57197265625001,46.964013671874994],[29.7197265625,46.88291015625],[29.877832031250023,46.82890625],[29.942480468750006,46.723779296874994],[29.93476562500001,46.625],[29.92431640625,46.538867187499996],[30.13105468750001,46.423095703125],[30.07568359375,46.377832031249994],[29.878027343750006,46.360205078125],[29.837890625,46.350537109375],[29.458789062500017,46.453759765624994],[29.30488281250001,46.466601562499996],[29.22382812500001,46.376953125],[29.20458984375,46.379345703125],[29.20078125,46.50498046875],[29.18623046875001,46.523974609374996],[29.146289062500017,46.526904296874996],[28.958398437500023,46.45849609375],[28.92744140625001,46.424121093749996],[28.930566406250023,46.362255859375],[28.94375,46.288427734375],[29.00625,46.17646484375],[28.971875,46.12763671875],[28.94775390625,46.049951171874994],[28.849511718750023,45.978662109374994],[28.73876953125,45.937158203124994],[28.729296875000017,45.852001953125],[28.667578125,45.793847656249994],[28.562304687500017,45.735791015625],[28.491601562500023,45.665771484375],[28.4990234375,45.517724609374994],[28.310351562500017,45.498583984374996],[28.26484375000001,45.48388671875],[28.2125,45.450439453125]]]},"properties":{"name":"Moldova","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[49.936425781249994,-16.90292968750002],[49.82402343750002,-17.08652343750002],[50.02304687500006,-16.6953125],[49.936425781249994,-16.90292968750002]]],[[[48.3421875,-13.363867187500034],[48.21191406250003,-13.385253906249957],[48.191210937500074,-13.259960937500011],[48.308886718750074,-13.198242187499957],[48.3421875,-13.363867187500034]]],[[[49.53828125000004,-12.432128906250014],[49.9375,-13.072265624999957],[50.23535156249997,-14.732031249999963],[50.482714843750074,-15.385644531249994],[50.20898437499997,-15.960449218750028],[50.02041015625005,-15.801757812500028],[49.89257812500003,-15.457714843750011],[49.664355468750074,-15.521582031249977],[49.83906250000004,-16.486523437499997],[49.76718750000006,-16.815136718749983],[49.44931640625006,-17.240625],[49.477832031250074,-17.89853515624999],[49.362890625,-18.336328125],[47.934472656249994,-22.393945312500023],[47.55800781250005,-23.874609374999963],[47.17734375,-24.787207031249977],[46.72851562499997,-25.14990234374997],[46.15869140624997,-25.230371093750023],[45.5080078125001,-25.56318359374997],[45.2057617187501,-25.57050781250004],[44.0353515625001,-24.995703125],[43.670019531250006,-24.30029296875],[43.722265625,-23.529687500000037],[43.2648437500001,-22.38359375],[43.29052734374997,-21.93251953124998],[43.50185546875005,-21.356445312499957],[43.800195312499994,-21.179199218749986],[44.40468750000005,-19.922070312500026],[44.44882812500006,-19.42871093749997],[44.23876953124997,-19.075195312499986],[44.23310546875004,-18.740625],[44.04003906249997,-18.288476562500023],[43.979394531249994,-17.3916015625],[44.42138671874997,-16.70263671874997],[44.476171875,-16.217285156249957],[44.90917968749997,-16.174511718750026],[45.2228515625001,-15.95048828124996],[45.3421875,-16.03671875000002],[45.598242187500006,-15.992578125],[45.70019531249997,-15.813769531249989],[46.157519531250074,-15.738281249999972],[46.3996093750001,-15.924609375000017],[46.331445312499994,-15.713671875000031],[46.47509765625003,-15.513476562500003],[46.942285156249994,-15.219042968749974],[47.09921875,-15.43417968750002],[47.092578125000074,-15.150097656249969],[47.35195312500005,-14.766113281249986],[47.46474609375005,-14.713281249999966],[47.47832031250002,-15.009375],[47.77402343750006,-14.63671875],[47.964160156250074,-14.672558593750026],[47.773339843749994,-14.369921875],[47.995507812499994,-13.960449218749986],[47.88359375000002,-13.807519531250009],[47.94101562500006,-13.662402343750017],[48.03984375000002,-13.596289062499963],[48.25527343750005,-13.719335937499977],[48.796484375,-13.267480468750023],[48.91943359375003,-12.839062499999969],[48.78632812500004,-12.470898437500011],[48.931738281250006,-12.4390625],[49.20703124999997,-12.079589843749957],[49.53828125000004,-12.432128906250014]]]]},"properties":{"name":"Madagascar","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-91.68369140624998,18.677343750000034],[-91.81611328124995,18.675878906250006],[-91.53671874999998,18.760009765625],[-91.68369140624998,18.677343750000034]]],[[[-86.93964843750001,20.303320312500006],[-86.97797851562498,20.489794921875074],[-86.76328124999995,20.579052734374955],[-86.93964843750001,20.303320312500006]]],[[[-106.50224609374999,21.61083984375003],[-106.60703124999993,21.561474609374983],[-106.63935546874995,21.697851562499977],[-106.50224609374999,21.61083984375003]]],[[[-110.56738281249994,25.003466796875017],[-110.5388671875,24.89155273437504],[-110.69926757812499,25.081445312499994],[-110.56738281249994,25.003466796875017]]],[[[-112.05727539062498,24.545703125000017],[-112.29677734375002,24.789648437500063],[-112.15942382812501,25.28564453125003],[-112.19501953124998,24.841064453125057],[-112.05727539062498,24.545703125000017]]],[[[-111.10029296874998,26.020605468750006],[-111.224658203125,25.83588867187504],[-111.18291015625002,26.040625],[-111.10029296874998,26.020605468750006]]],[[[-115.17060546875001,28.06938476562496],[-115.35292968750002,28.103955078124983],[-115.23354492187495,28.36835937500004],[-115.17060546875001,28.06938476562496]]],[[[-112.20307617187503,29.00532226562504],[-112.27841796875,28.769335937500017],[-112.51406249999997,28.847607421874955],[-112.42353515625,29.203662109375017],[-112.28505859374994,29.240429687499955],[-112.20307617187503,29.00532226562504]]],[[[-113.15561523437502,29.05224609375],[-113.49633789062497,29.30761718749997],[-113.58720703125002,29.57304687499996],[-113.20214843749999,29.301855468750034],[-113.15561523437502,29.05224609375]]],[[[-97.14624023437494,25.961474609375045],[-97.66767578124995,24.389990234374977],[-97.84248046874995,22.510302734375017],[-97.76328124999998,22.105859374999966],[-97.31450195312496,21.56420898437503],[-97.40917968749997,21.272558593750034],[-97.38344726562497,21.56669921874999],[-97.75380859375002,22.02666015624999],[-97.18632812499996,20.717041015625],[-96.45605468749994,19.869775390624966],[-96.28955078124994,19.34375],[-95.778125,18.805517578125034],[-95.92036132812495,18.81958007812497],[-95.62680664062503,18.690576171874994],[-95.71982421874998,18.768359375000017],[-95.18183593749995,18.700732421875017],[-94.79814453124996,18.51459960937501],[-94.45976562499993,18.166650390624994],[-93.55234375,18.430468750000017],[-92.88476562499997,18.468652343749966],[-92.44101562499998,18.67529296874997],[-91.97377929687502,18.715869140625074],[-91.91357421875,18.52851562500001],[-91.53398437499993,18.45654296875],[-91.27524414062498,18.62446289062501],[-91.34306640624996,18.900585937499955],[-91.43666992187502,18.889794921874966],[-90.73925781249994,19.352246093749955],[-90.69316406249996,19.729882812499966],[-90.49169921874997,19.94677734375003],[-90.353125,21.009423828124966],[-89.81977539062495,21.274609374999983],[-88.46669921874997,21.569384765625017],[-88.0068359375,21.604052734375045],[-87.25087890625,21.44697265625004],[-87.18828124999993,21.546435546875045],[-87.36850585937498,21.57373046875],[-87.034765625,21.592236328124955],[-86.824072265625,21.421679687500017],[-86.77177734374999,21.150537109375023],[-86.92622070312493,20.786474609375034],[-87.42138671875,20.23139648437501],[-87.44174804687498,19.861523437499983],[-87.68769531249998,19.63710937499999],[-87.6453125,19.55390625000001],[-87.42475585937498,19.583349609375063],[-87.65869140625003,19.352343750000074],[-87.65576171874997,19.25786132812499],[-87.50107421874998,19.287792968749983],[-87.76181640624998,18.446142578125006],[-87.88198242187497,18.27387695312501],[-88.05644531249996,18.524462890625074],[-88.03173828125,18.838916015625017],[-88.29565429687494,18.47241210937503],[-88.52299804687499,18.445898437500063],[-88.80634765624998,17.965527343749983],[-89.13354492187503,17.970800781249977],[-89.16147460937503,17.81484375],[-90.98916015624997,17.81640624999997],[-90.99296874999993,17.25244140625],[-91.19550781249998,17.254101562499983],[-91.40961914062501,17.255859375],[-90.975830078125,16.867822265624994],[-90.710693359375,16.708105468750034],[-90.65996093749996,16.630908203125045],[-90.634375,16.565136718749955],[-90.63408203125002,16.51074218749997],[-90.57578124999995,16.467822265625017],[-90.47109374999994,16.439550781250034],[-90.41699218750003,16.391015625000023],[-90.41699218750003,16.351318359375],[-90.45014648437493,16.261376953124994],[-90.45986328124997,16.16235351562497],[-90.44716796874994,16.07270507812501],[-90.52197265625,16.07119140625005],[-90.70322265624998,16.07104492187503],[-90.97958984374998,16.07080078124997],[-91.433984375,16.070458984374994],[-91.736572265625,16.070166015625006],[-91.95722656250001,15.703222656250034],[-92.08212890624998,15.495556640625011],[-92.18715820312497,15.320898437499963],[-92.07480468749998,15.074218749999972],[-92.09873046874998,15.026757812499994],[-92.14423828125001,15.001953125],[-92.158544921875,14.963574218749997],[-92.23515625,14.545410156249986],[-93.91606445312493,16.053564453125006],[-94.374169921875,16.284765625000034],[-94.426416015625,16.22626953125001],[-94.00126953124996,16.018945312499966],[-94.66152343750002,16.20190429687503],[-94.58710937499995,16.315820312499966],[-94.79082031249999,16.28715820312499],[-94.85869140624996,16.41972656249999],[-95.02084960937503,16.277636718750017],[-94.79941406249995,16.20966796875001],[-95.134375,16.17695312500001],[-96.21357421874993,15.693066406250011],[-96.80795898437495,15.726416015624977],[-97.18466796874998,15.909277343750006],[-97.75478515624994,15.966845703125017],[-98.52031249999993,16.30483398437505],[-98.76220703125,16.534765624999977],[-99.69067382812499,16.719628906249994],[-100.847802734375,17.20048828124999],[-101.91870117187494,17.959765625000045],[-102.69956054687495,18.062841796875006],[-103.44160156249995,18.32539062500001],[-103.91245117187496,18.828466796875006],[-104.9384765625,19.309375],[-105.482080078125,19.97607421875003],[-105.66943359374997,20.385595703124977],[-105.26015625,20.579052734374955],[-105.32705078124994,20.752978515625045],[-105.51083984374999,20.808740234375023],[-105.23706054687499,21.119189453125045],[-105.20869140624998,21.490820312499977],[-105.43144531249997,21.618261718750006],[-105.64912109375001,21.988085937500045],[-105.64550781249999,22.32690429687497],[-105.79179687500003,22.627490234375017],[-106.93549804687497,23.88125],[-107.76494140625002,24.47192382812497],[-107.52724609375001,24.36005859375001],[-107.51191406249998,24.489160156250023],[-107.95117187499994,24.614892578124966],[-108.28076171874994,25.08154296875],[-108.05146484374995,25.067041015624994],[-108.69638671874998,25.382910156250034],[-108.78725585937502,25.53803710937501],[-109.02880859375003,25.48046875000003],[-108.886572265625,25.733447265625045],[-109.19648437499998,25.59252929687503],[-109.38496093750001,25.727148437500006],[-109.42563476562495,26.032568359375063],[-109.19970703125003,26.30522460937499],[-109.11669921874999,26.25273437499996],[-109.27626953125,26.533886718749955],[-109.48286132812498,26.710351562500023],[-109.75478515624995,26.702929687500017],[-109.94399414062495,27.079345703125057],[-110.37729492187495,27.233300781249966],[-110.59267578124995,27.544335937500023],[-110.52988281249995,27.864208984374983],[-111.12138671875002,27.966992187499983],[-112.16176757812495,29.018896484375034],[-113.05766601562496,30.651025390625023],[-113.04672851562495,31.17924804687499],[-113.62348632812494,31.34589843750001],[-113.75942382812501,31.557763671874994],[-113.94775390625001,31.62934570312501],[-114.14931640624995,31.507373046875045],[-114.93359374999994,31.900732421874977],[-114.78989257812498,31.647119140624994],[-114.88188476562499,31.156396484375023],[-114.55048828124997,30.02226562499999],[-113.75546875,29.367480468750017],[-113.49970703124995,28.92670898437501],[-113.20556640624997,28.798779296874955],[-113.09365234375001,28.511767578125017],[-112.870849609375,28.42421875000005],[-112.73403320312501,27.825976562500017],[-112.32919921874996,27.52343750000003],[-111.86264648437495,26.678515625000017],[-111.6994140625,26.58095703125005],[-111.79526367187499,26.8796875],[-111.56967773437495,26.707617187500006],[-111.29160156249996,25.78979492187497],[-110.68676757812501,24.867675781250057],[-110.65932617187502,24.34145507812505],[-110.36743164062497,24.100488281249994],[-110.30375976562497,24.339453125],[-110.02280273437502,24.17460937499999],[-109.6765625,23.66157226562501],[-109.42084960937495,23.480126953124994],[-109.49570312500002,23.159814453125023],[-110.00625,22.894042968750057],[-110.3626953125,23.60493164062501],[-111.68291015625002,24.555810546875023],[-111.80249023437494,24.542529296875074],[-112.07255859374999,24.84003906250001],[-112.06987304687497,25.572851562500006],[-112.37724609374997,26.21391601562496],[-113.02075195312499,26.58325195312497],[-113.15581054687496,26.94624023437504],[-113.27226562499997,26.79096679687501],[-113.59853515625001,26.721289062500034],[-113.84096679687502,26.966503906249983],[-114.44526367187503,27.218164062499994],[-114.53989257812495,27.431103515624955],[-114.99350585937499,27.736035156249983],[-115.03647460937495,27.84184570312496],[-114.57001953124995,27.78393554687497],[-114.30058593749995,27.87299804687501],[-114.30224609375003,27.775732421875006],[-114.0693359375,27.67568359375005],[-114.15839843750003,27.919677734375],[-114.26586914062499,27.934472656249994],[-114.04848632812502,28.42617187499999],[-114.93730468749999,29.35161132812496],[-115.67382812500003,29.756396484375017],[-116.06215820312501,30.80415039062504],[-116.29628906250001,30.97050781249999],[-116.33344726562494,31.202783203124994],[-116.66215820312495,31.56489257812504],[-116.72207031249998,31.734570312499955],[-116.62080078124995,31.85107421874997],[-116.84799804687496,31.997363281250045],[-117.12827148437495,32.533349609374994],[-114.72475585937495,32.71533203125003],[-114.83593749999994,32.50830078125003],[-111.0419921875,31.32421875000003],[-108.21445312499993,31.329443359375034],[-108.21181640625002,31.779345703125017],[-106.44541015624996,31.768408203125006],[-106.14804687499995,31.450927734375],[-104.97880859374996,30.645947265624955],[-104.50400390624995,29.677685546874955],[-104.110595703125,29.386132812499994],[-103.16831054687498,28.998193359374994],[-102.8919921875,29.216406250000034],[-102.61494140624994,29.75234375],[-102.26894531249998,29.871191406250034],[-101.44038085937503,29.77685546875],[-100.75458984375001,29.182519531249994],[-100.29604492187495,28.32768554687499],[-99.50532226562497,27.54833984375003],[-99.45654296874999,27.05668945312496],[-99.10776367187498,26.446923828124994],[-97.37563476562497,25.871826171875],[-97.14624023437494,25.961474609375045]]]]},"properties":{"name":"Mexico","childNum":10}},{"geometry":{"type":"Polygon","coordinates":[[[22.344042968750017,42.31396484375],[22.836816406250023,41.993603515625],[23.00361328125001,41.73984375],[22.916015625,41.336279296875],[22.78388671875001,41.331982421875],[22.72480468750001,41.178515625],[22.603613281250006,41.140185546874996],[22.493554687500023,41.118505859375],[22.184472656250023,41.158642578125],[21.99335937500001,41.13095703125],[21.77949218750001,40.950439453125],[21.627539062500006,40.896337890625],[21.57578125,40.868945312499996],[20.964257812500023,40.849902343749996],[20.709277343750017,40.928369140624994],[20.48896484375001,41.272607421874994],[20.566210937500017,41.873681640624994],[20.725,41.87353515625],[20.778125,42.071044921875],[21.05976562500001,42.171289062499994],[21.28662109375,42.100390625],[21.389550781250023,42.21982421875],[21.560839843750017,42.24765625],[21.5625,42.247509765625],[21.81464843750001,42.303125],[22.344042968750017,42.31396484375]]]},"properties":{"name":"Macedonia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[4.227636718750006,19.142773437499997],[4.234667968750017,16.996386718750003],[4.121289062500011,16.357714843750003],[3.842968750000011,15.701708984375003],[3.5205078125,15.483105468749997],[3.504296875000023,15.356347656249994],[3.06015625,15.427197265624997],[3.001074218750006,15.340966796874994],[1.300195312500023,15.272265625],[0.947460937500011,14.982128906249997],[0.217480468750011,14.911474609374991],[-0.235888671874989,15.059423828124991],[-0.760449218749983,15.047753906249994],[-1.049560546875,14.81953125],[-1.97304687499999,14.45654296875],[-2.113232421874983,14.16845703125],[-2.586718749999989,14.227587890625003],[-2.873925781249994,13.950732421875003],[-2.950830078124994,13.6484375],[-3.248632812499977,13.658349609374994],[-3.3017578125,13.28076171875],[-3.527636718749989,13.182714843749991],[-3.947314453124989,13.402197265624991],[-4.151025390624994,13.306201171875003],[-4.328710937499977,13.119042968749994],[-4.227099609374989,12.793701171875],[-4.480615234374994,12.672216796874991],[-4.4287109375,12.337597656249997],[-4.699316406249977,12.076171875],[-5.288134765624989,11.827929687499989],[-5.250244140625,11.375781249999989],[-5.490478515625,11.042382812499994],[-5.523535156249977,10.426025390625],[-5.556591796874983,10.43994140625],[-5.694287109374983,10.43320312499999],[-5.843847656249977,10.389550781249994],[-5.896191406249983,10.354736328125],[-5.907568359374977,10.307226562499991],[-6.034570312499994,10.19482421875],[-6.1171875,10.201904296875],[-6.238378906249977,10.261621093749994],[-6.241308593749977,10.279199218749994],[-6.192626953125,10.369433593749989],[-6.190673828125,10.400292968749994],[-6.250244140625,10.717919921874994],[-6.482617187499983,10.561230468749997],[-6.564599609374994,10.58642578125],[-6.654150390624977,10.656445312499997],[-6.676367187499977,10.6337890625],[-6.686132812499977,10.578027343749994],[-6.691992187499977,10.512011718749989],[-6.669335937499994,10.3921875],[-6.693261718749994,10.349462890624991],[-6.950341796874994,10.342333984374989],[-7.01708984375,10.143261718749997],[-7.385058593749989,10.340136718749989],[-7.6611328125,10.427441406249997],[-7.990625,10.1625],[-8.007275390624983,10.321875],[-8.266650390624989,10.485986328124994],[-8.33740234375,10.990625],[-8.666699218749983,11.009472656249997],[-8.398535156249977,11.366552734374991],[-8.822021484375,11.673242187499994],[-8.818310546874983,11.922509765624994],[-9.043066406249977,12.40234375],[-9.395361328124977,12.464648437499989],[-9.358105468749983,12.255419921874989],[-9.754003906249977,12.029931640624994],[-10.274853515624983,12.212646484375],[-10.709228515625,11.898730468749989],[-10.933203124999977,12.205175781249991],[-11.30517578125,12.015429687499989],[-11.502197265625,12.198632812499994],[-11.389404296875,12.404394531249991],[-11.390380859375,12.941992187499991],[-11.634960937499983,13.369873046875],[-11.831689453124994,13.315820312499994],[-12.05419921875,13.633056640625],[-11.960888671874983,13.875292968750003],[-12.019189453124994,14.206494140624997],[-12.228417968749994,14.45859375],[-12.280615234374977,14.809033203124997],[-12.104687499999983,14.745361328125],[-12.08154296875,14.766357421875],[-12.021582031249977,14.804931640625],[-11.76015625,15.425537109375],[-11.675878906249977,15.512060546874991],[-11.502685546875,15.636816406249991],[-11.455224609374994,15.62539062499999],[-10.9482421875,15.151123046875],[-10.696582031249989,15.42265625],[-9.94140625,15.373779296875],[-9.446923828124994,15.458203125],[-9.447705078124983,15.574853515624994],[-9.426562499999989,15.623046875],[-9.3505859375,15.677392578124994],[-9.33544921875,15.525683593750003],[-9.293701171875,15.502832031249994],[-5.5125,15.496289062499997],[-5.359912109374989,16.282861328124994],[-5.509619140624977,16.442041015624994],[-5.628662109375,16.568652343750003],[-5.65625,16.8095703125],[-5.684765624999983,17.058251953124994],[-5.713183593749989,17.306884765625],[-5.74169921875,17.555566406249994],[-5.827099609374983,18.3015625],[-6.026416015624989,20.0421875],[-6.396582031249977,23.274804687499994],[-6.482031249999977,24.020800781250003],[-6.538964843749994,24.51816406249999],[-6.5673828125,24.766796875],[-6.594091796874977,24.99462890625],[-6.287207031249977,24.994824218749997],[-5.959814453124977,24.99497070312499],[-5.640771484374994,24.995166015625003],[-4.822607421874977,24.99560546875],[-1.947900390624994,23.124804687500003],[1.1455078125,21.102246093749997],[1.165722656250011,20.817431640625003],[1.610644531250017,20.555566406249994],[1.685449218750023,20.378369140624997],[3.130273437500023,19.85019531249999],[3.255859375,19.4109375],[3.119726562500006,19.103173828124994],[3.3564453125,18.986621093750003],[4.227636718750006,19.142773437499997]]]},"properties":{"name":"Mali","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[14.566210937499989,35.85273437499998],[14.436425781250023,35.82167968750005],[14.351269531250011,35.978417968749994],[14.566210937499989,35.85273437499998]]]},"properties":{"name":"Malta","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[98.18261718749997,9.933447265625006],[98.11806640625,9.877880859375054],[98.2916992187501,10.051318359375031],[98.18261718749997,9.933447265625006]]],[[[98.20976562500002,10.952734375],[98.27148437499997,10.73989257812498],[98.08046875000005,10.886621093750037],[98.20976562500002,10.952734375]]],[[[98.55380859375012,11.744873046875],[98.52841796875012,11.538671875],[98.43476562500004,11.567089843750026],[98.37646484374997,11.79150390625],[98.55380859375012,11.744873046875]]],[[[98.516015625,11.905029296875028],[98.46621093750005,12.08427734374996],[98.60957031250004,11.956640624999977],[98.516015625,11.905029296875028]]],[[[98.06611328125004,12.389794921875023],[98.00234375000005,12.279003906250011],[97.93867187500004,12.34609375],[98.06611328125004,12.389794921875023]]],[[[98.41396484375005,12.597949218749974],[98.45947265625003,12.473730468749991],[98.3138671875,12.335986328124989],[98.31210937500006,12.678173828124983],[98.41396484375005,12.597949218749974]]],[[[98.31542968749997,13.099072265625026],[98.30917968750012,12.934716796875023],[98.26533203125004,13.202246093749991],[98.31542968749997,13.099072265625026]]],[[[94.80488281250004,15.8193359375],[94.73349609375006,15.823046875000045],[94.82802734375005,15.933007812499966],[94.80488281250004,15.8193359375]]],[[[94.47675781250004,15.945947265625023],[94.41191406250007,15.848388671875057],[94.3878906250001,15.994140624999972],[94.60126953125004,16.205517578124983],[94.47675781250004,15.945947265625023]]],[[[97.575,16.253222656250017],[97.48037109375,16.305712890625045],[97.54199218749997,16.505078124999983],[97.575,16.253222656250017]]],[[[93.6908203125,18.68427734375004],[93.4875,18.867529296875063],[93.74472656250006,18.865527343750017],[93.6908203125,18.68427734375004]]],[[[93.71484374999997,19.558251953124994],[93.94570312500005,19.428613281249966],[93.90195312500012,19.33203125],[93.75585937500003,19.325683593750057],[93.64404296874997,19.49506835937501],[93.71484374999997,19.558251953124994]]],[[[93.49179687500012,19.892578125],[93.51328125000006,19.754785156249994],[93.41289062500002,19.950341796875023],[93.49179687500012,19.892578125]]],[[[93.01015625000005,19.923925781249977],[93.02324218750007,19.82885742187497],[92.91464843750006,20.086474609375045],[93.01015625000005,19.923925781249977]]],[[[101.1388671875001,21.567480468749977],[101.08037109375007,21.468652343749994],[100.703125,21.251367187499966],[100.613671875,21.059326171875],[100.56660156250004,21.038183593750063],[100.53613281250003,20.992382812499955],[100.52226562500007,20.92192382812499],[100.54931640624997,20.884228515624955],[100.61767578125003,20.879248046875006],[100.62294921875005,20.859570312499983],[100.5651367187501,20.825097656249994],[100.4074218750001,20.823242187500057],[100.32607421875005,20.795703125000045],[100.24931640625002,20.730273437500045],[100.18388671875002,20.589111328125057],[100.12968750000002,20.372216796874994],[100.12246093750005,20.316650390625057],[100.0036132812501,20.37958984375001],[99.9542968750001,20.415429687500023],[99.8903320312501,20.424414062499977],[99.72011718750005,20.32543945312497],[99.45888671875005,20.363037109375],[99.48593750000006,20.14985351562501],[99.07421875000003,20.09936523437503],[98.9166992187501,19.77290039062504],[98.37128906250004,19.68916015625004],[98.01503906250005,19.74951171874997],[97.816796875,19.459960937500057],[97.74589843750002,18.58818359374999],[97.37392578125,18.51796875],[97.63222656250005,18.290332031250074],[97.7064453125,17.79711914062503],[98.4388671875,16.975683593750034],[98.66074218750006,16.330419921875006],[98.83544921875003,16.417578125],[98.88828125000006,16.351904296875034],[98.81796875000012,16.180810546874994],[98.59238281250006,16.05068359375005],[98.55693359375007,15.367675781249986],[98.19101562500012,15.204101562499972],[98.20214843749997,14.97592773437502],[98.57001953125004,14.359912109375031],[99.13681640625006,13.716699218749994],[99.12392578125,13.030761718750043],[99.40507812500002,12.547900390625003],[99.61474609374997,11.781201171875026],[99.1901367187501,11.105273437499989],[98.7572265625,10.660937499999974],[98.70253906250005,10.19038085937504],[98.56259765625006,10.034960937499989],[98.46494140625006,10.675830078124989],[98.67558593750007,10.986914062500034],[98.74140625000004,11.591699218749966],[98.87597656250003,11.719726562500028],[98.63632812500006,11.738378906250006],[98.69628906250003,12.225244140624994],[98.6002929687501,12.2453125],[98.67871093749997,12.348486328124963],[98.57597656250002,13.161914062500031],[98.20039062500004,13.980175781250026],[98.14951171875012,13.647607421875037],[98.11064453125007,13.712890625000014],[98.10019531250006,14.161523437500023],[97.90976562500012,14.652685546874991],[98.01875,14.652587890625057],[97.81230468750007,14.858935546874989],[97.7103515625,15.875537109375074],[97.58427734375007,16.019580078125017],[97.72597656250005,16.56855468750004],[97.37587890625005,16.52294921874997],[97.20019531249997,17.095410156249983],[96.85146484375005,17.401025390624994],[96.90859375000005,17.03095703125001],[96.76542968750002,16.710351562499966],[96.43115234374997,16.504931640625045],[96.18906250000012,16.768310546875057],[96.32431640625006,16.444433593750063],[95.76328125000006,16.169042968750006],[95.38955078125005,15.722753906250034],[95.30146484375004,15.756152343749989],[95.34677734375012,16.09760742187501],[95.17695312500004,15.825683593750028],[94.9425781250001,15.818261718750023],[94.89316406250006,16.182812499999955],[94.66152343750005,15.904394531250006],[94.70332031250004,16.511914062499955],[94.4416015625001,16.094384765624966],[94.22382812500004,16.016455078125006],[94.58896484375006,17.5693359375],[94.17070312500007,18.73242187499997],[94.24570312500006,18.741162109374983],[94.07001953125004,18.893408203125006],[94.04492187500003,19.287402343750074],[93.92919921874997,18.89965820312503],[93.70546875000005,19.026904296875017],[93.49306640625005,19.369482421875006],[93.82490234375004,19.238476562499955],[93.99814453125006,19.440869140624983],[93.61171875000005,19.776074218749983],[93.70703125000003,19.912158203125074],[93.25,20.070117187500017],[93.12949218750012,19.858007812500063],[93.00195312499997,20.074853515624994],[93.06679687500005,20.377636718749955],[92.82832031250004,20.177587890625063],[92.89111328124997,20.34033203125],[92.73564453125007,20.56269531250001],[92.72285156250004,20.29560546875004],[92.32412109375,20.791845703125063],[92.17958984375005,21.293115234375023],[92.33056640624997,21.439794921874977],[92.63164062500002,21.306201171875045],[92.5934570312501,21.46733398437499],[92.58281250000002,21.940332031249994],[92.57490234375004,21.978076171875045],[92.68896484374997,22.130957031250006],[92.72099609375002,22.132421875000063],[92.77138671875,22.104785156250017],[92.9645507812501,22.003759765625034],[93.07060546875002,22.20942382812501],[93.16201171875,22.360205078125006],[93.07871093750006,22.71821289062501],[93.20390625000002,23.03701171875005],[93.34941406250007,23.08496093750003],[93.36601562500007,23.132519531249955],[93.32626953125006,24.064208984375057],[93.45214843750003,23.987402343750034],[93.68339843750007,24.00654296875004],[94.07480468750006,23.8720703125],[94.29306640625012,24.321875],[94.37724609375002,24.473730468750006],[94.49316406250003,24.637646484374983],[94.70371093750012,25.097851562499955],[94.55302734375007,25.215722656249994],[94.66777343750007,25.458886718749966],[94.99199218750002,25.77045898437504],[95.01523437500006,25.912939453125006],[95.0929687500001,25.98730468749997],[95.13242187500006,26.041259765625057],[95.12929687500005,26.070410156250034],[95.10839843749997,26.091406250000034],[95.06894531250006,26.19111328125001],[95.0597656250001,26.473974609375006],[95.20146484375007,26.641406250000017],[96.19082031250005,27.26127929687499],[96.79785156249997,27.29619140624999],[96.95341796875002,27.13330078125003],[97.10205078125003,27.11542968750004],[97.10371093750004,27.16333007812503],[96.90195312500012,27.439599609374994],[96.88359375000002,27.514843749999955],[96.96279296875,27.698291015625017],[97.04970703125005,27.760009765625],[97.34355468750002,27.982324218749994],[97.30273437499997,28.08598632812496],[97.3224609375001,28.21796875000004],[97.35644531249997,28.254492187500006],[97.43144531250002,28.353906250000023],[97.53789062500002,28.510205078124983],[97.59921875000006,28.51704101562504],[98.06162109375012,28.185888671874977],[98.29882812499997,27.550097656250045],[98.4525390625,27.6572265625],[98.65117187500007,27.572460937499983],[98.7384765625001,26.785742187500006],[98.68554687499997,26.189355468750023],[98.56406250000006,26.072412109374994],[98.65625,25.86357421874999],[98.33378906250007,25.586767578125006],[98.14287109375007,25.571093750000017],[98.01074218749997,25.292529296875017],[97.8195312500001,25.251855468749994],[97.73789062500006,24.869873046875057],[97.58330078125002,24.77480468750005],[97.53144531250004,24.49169921875003],[97.7082031250001,24.228759765625],[97.56455078125012,23.911035156250023],[98.2125,24.110644531250017],[98.83505859375006,24.121191406250034],[98.67675781250003,23.905078125000045],[98.8322265625001,23.624365234374977],[98.86376953125003,23.191259765625034],[99.41806640625006,23.069238281250023],[99.50712890625002,22.959130859374994],[99.19296875000006,22.12597656249997],[99.9176757812501,22.02802734375001],[99.94072265625007,21.75874023437504],[100.14765625000004,21.480517578125017],[100.60458984375012,21.471777343750006],[101.07978515625004,21.75585937499997],[101.1388671875001,21.567480468749977]]]]},"properties":{"name":"Myanmar","childNum":15}},{"geometry":{"type":"Polygon","coordinates":[[[19.21875,43.449951171875],[19.670996093750006,43.163964843749994],[20.344335937500006,42.827929687499996],[20.054296875,42.760058593749996],[20.06396484375,42.54726562499999],[19.78828125000001,42.476171875],[19.65449218750001,42.628564453124994],[19.280664062500023,42.17255859375],[19.342382812500006,41.869091796875],[18.436328125000017,42.559716796874994],[18.5458984375,42.6416015625],[18.46601562500001,42.777246093749994],[18.44384765625,42.96845703125],[18.46015625000001,42.997900390625],[18.48847656250001,43.012158203125],[18.623632812500006,43.027685546875],[18.621875,43.124609375],[18.674218750000023,43.230810546875],[18.74921875000001,43.283544921875],[18.85107421875,43.346337890624994],[18.934667968750006,43.339453125],[18.97871093750001,43.285400390625],[19.026660156250017,43.292431640625],[19.03671875,43.357324218749994],[18.940234375000017,43.496728515624994],[18.95068359375,43.526660156249996],[18.97421875,43.542333984375],[19.0283203125,43.532519531249996],[19.080078125,43.517724609374994],[19.11279296875,43.52773437499999],[19.164355468750017,43.535449218749996],[19.1943359375,43.53330078125],[19.21875,43.449951171875]]]},"properties":{"name":"Montenegro","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[111.878125,43.68017578125],[111.00722656250002,43.34140625],[110.400390625,42.773681640625],[109.44316406249999,42.455957031249994],[109.33984375,42.438378906249994],[108.68730468749999,42.41611328125],[108.17119140624999,42.447314453124996],[106.77001953125,42.288720703124994],[105.86757812500002,41.993994140625],[105.31435546875002,41.770898437499994],[105.19707031249999,41.738037109375],[105.11542968750001,41.66328125],[105.05058593749999,41.61591796875],[104.98203125000003,41.595507812499996],[104.49824218750001,41.65869140625],[104.49824218750001,41.877001953124996],[104.30517578125,41.846142578125],[103.99726562500001,41.79697265625],[103.71113281250001,41.751318359375],[103.07285156250003,42.00595703125],[102.5751953125,42.092089843749996],[102.15664062500002,42.158105468749994],[101.97294921874999,42.215869140624996],[101.65996093749999,42.500048828124996],[101.5791015625,42.52353515625],[101.49531250000001,42.53876953125],[101.09199218750001,42.551318359374996],[100.51904296875,42.616796875],[100.08632812500002,42.670751953125],[99.98378906250002,42.67734375],[99.46787109375003,42.568212890625],[97.20566406250003,42.789794921875],[96.38544921875001,42.720361328124994],[95.85957031250001,43.2759765625],[95.52558593750001,43.953955078125],[95.32558593750002,44.039355468749996],[95.35029296875001,44.278076171875],[94.71201171875003,44.350830078125],[93.51621093750003,44.944482421874994],[92.78789062499999,45.0357421875],[92.57890624999999,45.010986328125],[92.423828125,45.008935546874994],[92.17265624999999,45.03525390625],[92.02978515625,45.068505859374994],[91.584375,45.076513671875],[91.05,45.217431640624994],[90.87724609374999,45.19609375],[90.66181640625001,45.525244140625],[91.00175781249999,46.035791015624994],[90.99677734375001,46.10498046875],[90.94755859374999,46.177294921874996],[90.91152343750002,46.270654296874994],[90.98574218750002,46.7490234375],[90.91054687500002,46.883251953125],[90.86992187499999,46.954492187499994],[90.79902343750001,46.98515625],[90.71552734375001,47.003857421875],[90.49619140625003,47.28515625],[90.42519531250002,47.5041015625],[90.34746093749999,47.596972656249996],[90.33066406250003,47.655175781249994],[90.31328124999999,47.67617187499999],[90.19101562500003,47.702099609375],[90.10322265625001,47.745410156249996],[90.02792968750003,47.877685546875],[89.95869140625001,47.886328125],[89.91044921874999,47.8443359375],[89.83134765624999,47.823291015624996],[89.778125,47.827001953125],[89.56093750000002,48.003955078124996],[89.47919921875001,48.029052734375],[89.04765624999999,48.0025390625],[88.97109375000002,48.049951171874994],[88.91777343749999,48.089013671874994],[88.83828125000002,48.101708984374994],[88.68183593750001,48.170556640624994],[88.57597656249999,48.220166015625],[88.56679687500002,48.317431640624996],[88.51708984375,48.38447265625],[88.41396484375002,48.40341796875],[88.30996093750002,48.472070312499994],[87.97968750000001,48.555126953125],[88.06005859375,48.707177734374994],[87.83183593749999,48.791650390624994],[87.7431640625,48.881640625],[87.87216796875003,49.000146484374994],[87.81630859375002,49.0802734375],[87.8251953125,49.11630859375],[87.81425781249999,49.1623046875],[87.93476562500001,49.16455078125],[87.98808593749999,49.186914062499994],[88.02851562500001,49.219775390624996],[88.11572265625,49.256298828125],[88.19257812500001,49.451708984374996],[88.63320312500002,49.486132812499996],[88.83164062500003,49.4484375],[88.86386718750003,49.527636718749996],[88.90019531249999,49.539697265624994],[88.94541015625003,49.507666015625],[88.97060546875002,49.483740234375],[89.00839843750003,49.472802734374994],[89.10947265625003,49.501367187499994],[89.17998046874999,49.5322265625],[89.20292968749999,49.595703125],[89.24394531249999,49.62705078125],[89.39560546875003,49.6115234375],[89.475,49.66054687499999],[89.57919921875003,49.69970703125],[89.65410156249999,49.71748046875],[89.64384765624999,49.90302734375],[90.0537109375,50.09375],[90.65507812499999,50.22236328125],[90.71435546875,50.259423828124994],[90.7607421875,50.305957031249996],[91.02158203125003,50.415478515625],[91.23378906250002,50.452392578125],[91.30058593749999,50.46337890625],[91.3408203125,50.470068359375],[91.4150390625,50.468017578125],[91.44648437500001,50.52216796875],[91.80429687500003,50.693603515625],[92.10400390625,50.6919921875],[92.1923828125,50.700585937499994],[92.35478515624999,50.864160156249994],[92.42636718750003,50.803076171875],[92.62666015625001,50.68828125],[92.68134765625001,50.683203125],[92.73867187500002,50.7109375],[92.779296875,50.778662109375],[92.8564453125,50.789111328124996],[92.94130859375002,50.778222656249994],[93.103125,50.60390625],[94.25107421875003,50.556396484375],[94.35468750000001,50.221826171874994],[94.61474609375,50.023730468749996],[94.67548828125001,50.028076171875],[94.71806640624999,50.043261718749996],[94.93027343750003,50.04375],[95.11142578125003,49.935449218749994],[95.52265625000001,49.91123046875],[96.06552734375003,49.99873046875],[96.31503906250003,49.901123046875],[96.98574218750002,49.8828125],[97.20859375000003,49.730810546875],[97.35976562500002,49.741455078125],[97.58935546875,49.911474609375],[98.00390625,50.0142578125],[98.25029296874999,50.30244140625],[98.27949218750001,50.533251953124996],[98.14501953125,50.5685546875],[98.07890624999999,50.603808593749996],[98.02978515625,50.64462890625],[97.82529296875003,50.985253906249994],[98.103125,51.483544921874994],[98.64052734375002,51.801171875],[98.89316406250003,52.11728515625],[99.92167968749999,51.755517578125],[100.03457031250002,51.737109375],[100.23037109375002,51.729833984375],[100.46894531250001,51.72607421875],[100.53623046875003,51.7134765625],[101.38125,51.45263671875],[101.57089843750003,51.4671875],[101.82119140625002,51.421044921874994],[102.11152343750001,51.353466796875],[102.15566406250002,51.313769531249996],[102.16005859375002,51.26083984375],[102.14238281249999,51.216064453125],[102.15195312500003,51.10751953125],[102.19453125000001,51.050683593749994],[102.21503906250001,50.829443359375],[102.31660156250001,50.71845703125],[102.28837890624999,50.585107421874994],[103.30439453125001,50.20029296875],[103.63291015625003,50.138574218749994],[103.72324218750003,50.153857421874996],[103.80263671875002,50.176074218749996],[104.07871093750003,50.154248046875],[105.38359374999999,50.47373046875],[106.21787109375003,50.304589843749994],[106.36845703124999,50.317578125],[106.57441406250001,50.32880859375],[106.71113281250001,50.31259765625],[106.94130859375002,50.196679687499994],[107.04023437500001,50.086474609374996],[107.14306640625,50.033007812499996],[107.23330078125002,49.989404296874994],[107.34707031250002,49.986669921875],[107.63095703125003,49.98310546875],[107.91660156250003,49.947802734374996],[107.96542968750003,49.653515625],[108.40693359375001,49.396386718749994],[108.5224609375,49.34150390625],[108.61367187500002,49.322802734374996],[109.23671875000002,49.334912109375],[109.45371093750003,49.296337890625],[109.52871093750002,49.269873046875],[110.19990234375001,49.17041015625],[110.42783203125003,49.219970703125],[110.70976562499999,49.14296875],[110.82792968749999,49.166162109374994],[111.20419921875003,49.304296875],[111.33662109375001,49.35585937499999],[111.42929687500003,49.342626953125],[112.07968750000003,49.42421875],[112.49492187499999,49.53232421875],[112.69736328125003,49.507275390625],[112.80644531249999,49.523583984374994],[112.91484374999999,49.569238281249994],[113.05556640625002,49.616259765624996],[113.09208984374999,49.692529296874994],[113.16416015625003,49.797167968749996],[113.31904296875001,49.874316406249996],[113.44550781250001,49.9416015625],[113.57421875,50.00703125],[114.29707031250001,50.2744140625],[114.7431640625,50.233691406249996],[115.00332031250002,50.138574218749994],[115.27451171875003,49.948876953124994],[115.36503906249999,49.911767578124994],[115.42919921875,49.896484375],[115.58798828125003,49.886035156249996],[115.7177734375,49.880615234375],[115.79521484374999,49.905908203124994],[115.92597656250001,49.9521484375],[116.13457031249999,50.010791015624996],[116.216796875,50.00927734375],[116.35117187500003,49.978076171874996],[116.55117187500002,49.9203125],[116.68330078125001,49.823779296874996],[115.82050781250001,48.57724609375],[115.79169921875001,48.455712890624994],[115.79658203125001,48.346337890624994],[115.78554687500002,48.2482421875],[115.63945312499999,48.18623046875],[115.52509765625001,48.130859375],[115.61640625000001,47.874804687499996],[115.89824218749999,47.686914062499994],[115.99384765625001,47.71132812499999],[116.07480468750003,47.78955078125],[116.23115234375001,47.858203125],[116.31718749999999,47.85986328125],[116.37822265624999,47.844042968749996],[116.51347656249999,47.83955078125],[116.65195312500003,47.864501953125],[116.76054687499999,47.869775390624994],[116.90117187499999,47.853076171874996],[116.95166015625,47.836572265624994],[117.06972656250002,47.806396484375],[117.28593749999999,47.666357421875],[117.35078125000001,47.652197265625],[117.76835937499999,47.987890625],[118.49843750000002,47.983984375],[118.56777343750002,47.943261718749994],[118.69052734375003,47.822265625],[118.75996093750001,47.757617187499996],[118.88027343750002,47.72509765625],[119.017578125,47.685351562499996],[119.08193359375002,47.654150390625],[119.71113281250001,47.15],[119.89785156250002,46.8578125],[119.8671875,46.672167968749996],[119.74746093750002,46.627197265625],[119.70664062500003,46.606005859374996],[119.62021484375003,46.603955078125],[119.47402343750002,46.62666015625],[119.33183593749999,46.613818359374996],[119.162109375,46.638671875],[118.95712890625003,46.73486328125],[118.84394531250001,46.760205078125],[118.79033203124999,46.7470703125],[118.72294921874999,46.69189453125],[118.64873046874999,46.70166015625],[118.58046875000002,46.69189453125],[118.40439453125003,46.703173828124996],[118.30869140625003,46.717041015625],[118.15683593750003,46.678564453125],[118.0712890625,46.6666015625],[117.7412109375,46.5181640625],[117.546875,46.58828125],[117.43808593750003,46.586230468749996],[117.40556640624999,46.5708984375],[117.39218750000003,46.53759765625],[117.35634765625002,46.436669921874994],[117.35693359375,46.39130859375],[117.33339843750002,46.36201171875],[116.85908203125001,46.387939453125],[116.56259765625003,46.289794921875],[116.21298828125003,45.8869140625],[116.22910156250003,45.845751953124996],[116.240625,45.79599609375],[116.19765625000002,45.73935546875],[115.68105468750002,45.458251953125],[115.16259765625,45.390234375],[114.91923828124999,45.378271484375],[114.73876953125,45.41962890625],[114.56015625000003,45.389990234375],[114.41914062500001,45.202587890625],[114.16738281250002,45.049853515624996],[114.08027343750001,44.971142578125],[113.87705078125003,44.89619140625],[113.65263671874999,44.763476562499996],[113.58701171875003,44.745703125],[113.04941406250003,44.810351562499996],[112.70673828125001,44.883447265624994],[112.59677734375003,44.91767578125],[112.49931640624999,45.0109375],[112.41132812500001,45.058203125],[112.11289062500003,45.062939453125],[112.03261718750002,45.081640625],[111.89804687500003,45.0640625],[111.40224609375002,44.36728515625],[111.93173828125003,43.81494140625],[111.878125,43.68017578125]]]},"properties":{"name":"Mongolia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[145.75195312499997,15.133154296874991],[145.71318359375007,15.215283203125026],[145.821875,15.265380859375014],[145.75195312499997,15.133154296874991]]]},"properties":{"name":"N. Mariana Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[32.112890625,-26.839453125],[32.10595703125,-26.52001953125],[32.04140625000002,-26.28125],[32.060546875,-26.018359375],[31.9482421875,-25.957617187500006],[31.98583984375,-24.46064453125001],[31.799609375000017,-23.8921875],[31.54560546875001,-23.48232421875001],[31.287890625000017,-22.40205078125001],[31.429492187500017,-22.298828125],[32.429785156250006,-21.29707031250001],[32.353613281250006,-21.136523437500003],[32.49238281250001,-20.659765625],[32.992773437500006,-19.98486328125],[32.77763671875002,-19.388769531250006],[32.84980468750001,-19.10439453125001],[32.69970703125,-18.94091796875],[32.99306640625002,-18.35957031250001],[32.87626953125002,-16.88359375],[32.94804687500002,-16.71230468750001],[31.939843750000023,-16.428808593750006],[31.236230468750023,-16.02363281250001],[30.437792968750017,-15.995312500000011],[30.39609375,-15.64306640625],[30.231835937500023,-14.990332031250006],[33.201757812500006,-14.013378906250011],[33.63642578125001,-14.568164062500003],[34.375,-14.4248046875],[34.50527343750002,-14.59814453125],[34.54082031250002,-15.297265625],[34.24609375,-15.829394531250003],[34.528125,-16.319140625],[34.93339843750002,-16.760351562500006],[35.11210937500002,-16.898535156250006],[35.06464843750001,-17.07861328125],[35.124609375,-17.127246093750003],[35.20136718750001,-17.13105468750001],[35.272558593750006,-17.118457031250003],[35.29042968750002,-17.096972656250003],[35.28115234375002,-16.80781250000001],[35.22978515625002,-16.639257812500006],[35.178320312500006,-16.573339843750006],[35.16718750000001,-16.56025390625001],[35.242773437500006,-16.375390625],[35.358496093750006,-16.160546875],[35.59931640625001,-16.12587890625001],[35.70888671875002,-16.095800781250006],[35.75527343750002,-16.05830078125001],[35.79121093750001,-15.958691406250011],[35.89277343750001,-14.891796875000011],[35.86669921875,-14.86376953125],[35.84716796875,-14.6708984375],[35.6904296875,-14.465527343750011],[35.48847656250001,-14.201074218750009],[35.37578125000002,-14.058691406250006],[35.24746093750002,-13.896875],[35.01386718750001,-13.643457031250009],[34.61152343750001,-13.437890625],[34.54570312500002,-13.21630859375],[34.542578125,-13.108691406250003],[34.35781250000002,-12.164746093750011],[34.60625,-11.690039062500006],[34.65957031250002,-11.588671875],[34.82656250000002,-11.57568359375],[34.95947265625,-11.578125],[35.1826171875,-11.574804687500006],[35.41826171875002,-11.583203125000011],[35.50439453125,-11.604785156250003],[35.56435546875002,-11.60234375],[35.630957031250006,-11.58203125],[35.78544921875002,-11.452929687500003],[35.91132812500001,-11.4546875],[36.08222656250001,-11.537304687500011],[36.17548828125001,-11.609277343750009],[36.19130859375002,-11.670703125],[36.3056640625,-11.706347656250003],[36.97890625000002,-11.566992187500006],[37.37285156250002,-11.71044921875],[37.54169921875001,-11.675097656250003],[37.72480468750001,-11.580664062500006],[37.92021484375002,-11.294726562500003],[38.491796875,-11.413281250000011],[38.9875,-11.167285156250003],[39.81708984375001,-10.912402343750003],[39.98867187500002,-10.82080078125],[40.46357421875001,-10.46435546875],[40.61171875000002,-10.661523437500009],[40.48662109375002,-10.76513671875],[40.59716796875,-10.830664062500006],[40.40283203125,-11.33203125],[40.53154296875002,-12.004589843750011],[40.48710937500002,-12.4921875],[40.58085937500002,-12.635546875],[40.43681640625002,-12.983105468750011],[40.56875,-12.984667968750003],[40.595703125,-14.122851562500003],[40.715625,-14.214453125],[40.64609375,-14.538671875],[40.775,-14.421289062500009],[40.84453125000002,-14.718652343750009],[40.617773437500006,-15.115527343750003],[40.650976562500006,-15.260937500000011],[39.98359375000001,-16.22548828125001],[39.79091796875002,-16.29453125],[39.84462890625002,-16.435644531250006],[39.084375,-16.97285156250001],[38.14492187500002,-17.242773437500006],[37.24453125000002,-17.73994140625001],[36.93935546875002,-17.993457031250003],[36.40371093750002,-18.76972656250001],[36.26289062500001,-18.71962890625001],[36.23564453125002,-18.861328125],[35.85371093750001,-18.99335937500001],[34.947851562500006,-19.81269531250001],[34.6494140625,-19.70136718750001],[34.75576171875002,-19.82197265625001],[34.705078125,-20.473046875],[34.98232421875002,-20.80625],[35.267675781250006,-21.650976562500006],[35.31572265625002,-22.396875],[35.38300781250001,-22.45458984375],[35.45634765625002,-22.11591796875001],[35.53007812500002,-22.248144531250006],[35.57539062500001,-22.96308593750001],[35.37041015625002,-23.79824218750001],[35.5419921875,-23.82441406250001],[35.48964843750002,-24.065527343750006],[34.99208984375002,-24.65058593750001],[32.96113281250001,-25.49042968750001],[32.590429687500006,-26.00410156250001],[32.84882812500001,-26.26806640625],[32.95488281250002,-26.08359375],[32.93359375,-26.25234375],[32.88916015625,-26.83046875],[32.88613281250002,-26.84931640625001],[32.353515625,-26.861621093750003],[32.19960937500002,-26.83349609375],[32.112890625,-26.839453125]]]},"properties":{"name":"Mozambique","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-16.37333984374999,19.706445312499994],[-16.437548828124932,19.609277343749994],[-16.477001953124983,19.710351562499994],[-16.343652343749994,19.86621093750003],[-16.37333984374999,19.706445312499994]]],[[[-5.359912109374989,16.282861328124994],[-5.5125,15.496289062499983],[-9.293701171875,15.502832031249994],[-9.350585937499943,15.677392578125023],[-9.38535156249992,15.667626953124994],[-9.4265625,15.623046875000057],[-9.447705078124926,15.574853515624994],[-9.446923828124937,15.458203124999955],[-9.941406249999972,15.373779296874986],[-10.696582031249989,15.42265625],[-10.9482421875,15.151123046875014],[-11.455224609374994,15.62539062499999],[-11.760156249999937,15.425537109375057],[-11.828759765624966,15.244873046875014],[-11.872851562499989,14.995166015625031],[-12.02158203124992,14.804931640625],[-12.081542968749972,14.766357421875057],[-12.104687499999955,14.745361328125043],[-12.40869140625,14.889013671874991],[-12.735253906249994,15.13125],[-13.105273437499989,15.57177734375],[-13.40966796875,16.059179687500006],[-13.756640624999989,16.172509765624994],[-13.868457031249932,16.14814453125001],[-14.300097656249932,16.58027343750001],[-14.990625,16.676904296874994],[-15.768212890624994,16.485107421875],[-16.23901367187497,16.53129882812499],[-16.44101562499992,16.20454101562504],[-16.480078124999977,16.097216796875017],[-16.50205078124992,15.917333984375063],[-16.53525390624995,15.838378906250057],[-16.53574218749995,16.28681640625001],[-16.463623046875,16.60151367187501],[-16.030322265625017,17.88793945312497],[-16.213085937499926,19.003320312500023],[-16.51445312499996,19.361962890624994],[-16.305273437499977,19.51264648437504],[-16.44487304687499,19.47314453124997],[-16.21044921875003,20.227929687500023],[-16.42978515624995,20.652343750000057],[-16.622509765624955,20.634179687499994],[-16.87607421874992,21.086132812499955],[-16.998242187499926,21.039697265625023],[-17.048046874999955,20.80615234375003],[-17.06396484375,20.89882812499999],[-16.96455078125001,21.329248046875023],[-15.231201171875,21.331298828125],[-14.084667968749926,21.33271484375001],[-13.626025390624932,21.33325195312503],[-13.396728515624943,21.333544921875017],[-13.167431640624926,21.333789062500074],[-13.016210937499949,21.33393554687501],[-13.025097656249983,21.46679687499997],[-13.032226562500028,21.572070312500017],[-13.041748046875,21.71381835937504],[-13.051220703124983,21.854785156250074],[-13.094335937499977,22.49599609375005],[-13.153271484374983,22.820507812499983],[-13.031494140624943,23.000244140625],[-12.895996093749972,23.08955078125001],[-12.739599609375006,23.192724609375063],[-12.62041015624996,23.271337890625006],[-12.559375,23.290820312500045],[-12.372900390624977,23.318017578124994],[-12.023437499999943,23.467578125000017],[-12.016308593749983,23.97021484375],[-12.016308593749983,24.378662109375],[-12.016308593749983,24.923242187499994],[-12.016308593749983,25.059375],[-12.016308593749983,25.331689453124994],[-12.016308593749983,25.740136718749994],[-12.016308593749983,25.995410156250017],[-10.376123046874966,25.995458984375034],[-9.444531249999983,25.99550781250005],[-9.071923828124937,25.99550781250005],[-8.885644531249994,25.99550781250005],[-8.682226562499949,25.99550781250005],[-8.68212890625,26.109472656250006],[-8.68212890625,26.273193359375057],[-8.682324218749955,26.49770507812505],[-8.682617187500028,26.723144531250057],[-8.682861328124972,26.92133789062501],[-8.683349609375,27.285937500000045],[-4.822607421874949,24.99560546875],[-5.640771484374994,24.99516601562499],[-5.959814453124977,24.994970703125063],[-6.287207031249977,24.99482421875001],[-6.594091796874977,24.99462890624997],[-6.396582031249977,23.274804687499994],[-6.02641601562496,20.04218750000001],[-5.827099609374955,18.301562500000045],[-5.741699218749943,17.555566406250023],[-5.713183593750017,17.306884765625],[-5.684765624999983,17.058251953124966],[-5.628662109375028,16.568652343750045],[-5.50961914062492,16.442041015625023],[-5.359912109374989,16.282861328124994]]]]},"properties":{"name":"Mauritania","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-62.1484375,16.74033203124999],[-62.221630859375,16.699511718750003],[-62.191357421875,16.804394531249997],[-62.1484375,16.74033203124999]]]},"properties":{"name":"Montserrat","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[57.65126953125002,-20.48486328125],[57.31767578125002,-20.42763671875001],[57.416015625,-20.18378906250001],[57.65654296875002,-19.98994140625001],[57.7919921875,-20.21259765625001],[57.65126953125002,-20.48486328125]]]},"properties":{"name":"Mauritius","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[34.95947265625003,-11.578125],[34.82656250000005,-11.575683593749972],[34.65957031250005,-11.58867187499996],[34.61855468750005,-11.620214843749991],[34.60625,-11.690039062500006],[34.3578125,-12.164746093749997],[34.542578125,-13.108691406250003],[34.54570312500002,-13.21630859375],[34.6115234375001,-13.437890625000023],[35.0138671875001,-13.64345703124998],[35.247460937499994,-13.896875],[35.37578125000002,-14.05869140625002],[35.48847656250004,-14.20107421874998],[35.69042968749997,-14.465527343750026],[35.84716796875003,-14.670898437500043],[35.8927734375001,-14.891796875000011],[35.7912109375001,-15.958691406250026],[35.75527343750005,-16.058300781249983],[35.708886718749994,-16.095800781249977],[35.5993164062501,-16.12587890624998],[35.35849609375006,-16.160546875000023],[35.242773437500006,-16.375390625],[35.16718750000004,-16.56025390625001],[35.178320312500006,-16.57333984375002],[35.22978515625002,-16.639257812500034],[35.281152343749994,-16.8078125],[35.29042968750005,-17.096972656250017],[35.27255859375006,-17.11845703124996],[35.2013671875001,-17.13105468750004],[35.124609375,-17.127246093749974],[35.06464843750004,-17.078613281250014],[35.11210937500002,-16.898535156250006],[34.93339843750002,-16.760351562500006],[34.528125,-16.319140625],[34.24609374999997,-15.829394531249974],[34.54082031250002,-15.297265625],[34.50527343750005,-14.598144531249957],[34.375,-14.4248046875],[33.63642578125004,-14.568164062499974],[33.148046875,-13.94091796875],[32.98125,-14.009375],[32.797460937500006,-13.6884765625],[32.67041015624997,-13.590429687500006],[32.96757812500002,-13.225],[32.97519531250006,-12.701367187499983],[33.51230468750006,-12.347753906249977],[33.340136718750074,-12.308300781250011],[33.25234375000005,-12.112597656250031],[33.3039062500001,-11.69082031249998],[33.23271484375002,-11.417675781250026],[33.26835937500002,-11.403906249999977],[33.379785156249994,-11.15791015625004],[33.29277343750002,-10.85234375],[33.661523437499994,-10.553125],[33.55371093749997,-10.391308593750011],[33.53759765624997,-10.351562499999986],[33.52890625,-10.234667968749974],[33.31152343750003,-10.037988281249966],[33.3371093750001,-9.954003906249994],[33.350976562499994,-9.862207031250037],[33.25,-9.759570312500003],[33.148046875,-9.603515625],[32.99599609375005,-9.622851562499946],[32.91992187500003,-9.407421875000026],[33.88886718750004,-9.670117187499983],[33.99560546875003,-9.495410156250003],[34.32089843750006,-9.731542968749977],[34.56992187500006,-10.241113281249966],[34.66708984375006,-10.792480468750028],[34.60791015624997,-11.08046875],[34.77382812500005,-11.341699218750009],[34.890625,-11.3935546875],[34.93701171874997,-11.463476562500034],[34.95947265625003,-11.578125]]]},"properties":{"name":"Malawi","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[111.38925781250006,2.415332031250031],[111.31152343749997,2.437597656250034],[111.33349609374997,2.768310546875],[111.38925781250006,2.415332031250031]]],[[[104.22158203125,2.731738281250003],[104.1291015625001,2.767236328125037],[104.18476562500004,2.871728515625009],[104.22158203125,2.731738281250003]]],[[[117.88476562499997,4.186132812500006],[117.64902343750012,4.168994140624974],[117.70800781249997,4.262402343749997],[117.88476562499997,4.186132812500006]]],[[[100.28896484375005,5.294726562499989],[100.19101562500006,5.28286132812498],[100.2455078125,5.467773437499986],[100.33886718749997,5.410058593750037],[100.28896484375005,5.294726562499989]]],[[[99.848046875,6.465722656249994],[99.9186523437501,6.358593750000011],[99.74375,6.263281249999963],[99.64628906250002,6.418359375000023],[99.848046875,6.465722656249994]]],[[[102.10107421874997,6.242236328125031],[102.34013671875002,6.172021484375023],[102.534375,5.862548828125028],[103.09707031250005,5.408447265624986],[103.41582031250007,4.85029296875004],[103.43945312499997,2.93310546875],[103.8122070312501,2.58046875],[104.21855468750002,1.722851562499997],[104.25009765625012,1.388574218750009],[104.11494140625004,1.412255859375037],[103.98144531250003,1.623632812500034],[103.99150390625002,1.454785156249997],[103.6945312500001,1.449658203125026],[103.48027343750007,1.329492187499966],[103.35683593750005,1.546142578125057],[102.72714843750012,1.855566406250034],[101.29550781250012,2.885205078125011],[101.29990234375012,3.253271484375034],[100.71542968750006,3.966210937499966],[100.79550781250012,4.023388671874983],[100.61455078125002,4.3734375],[100.34326171874997,5.984179687500031],[100.11914062499997,6.441992187500048],[100.26142578125004,6.682714843749963],[100.3454101562501,6.549902343750006],[100.75449218750012,6.460058593749991],[100.87392578125,6.24541015624996],[101.05351562500002,6.242578125],[100.98164062500004,5.771044921875045],[101.1139648437501,5.636767578125045],[101.5560546875,5.907763671875003],[101.67841796875004,5.778808593750028],[101.87363281250012,5.825292968749991],[102.10107421874997,6.242236328125031]]],[[[117.5744140625001,4.17060546875004],[117.10058593750003,4.337060546875023],[116.51474609375006,4.370800781249969],[115.86074218750005,4.348046875000037],[115.67880859375006,4.193017578124994],[115.45439453125002,3.034326171875009],[115.24697265625005,3.025927734374989],[115.117578125,2.89487304687502],[115.08076171875004,2.63422851562504],[115.1791015625,2.523193359374972],[114.78642578125002,2.250488281250014],[114.83056640625003,1.980029296874989],[114.5125,1.452001953124963],[113.90234375000003,1.434277343749997],[113.6222656250001,1.2359375],[113.00654296875004,1.433886718750003],[112.94296875000006,1.566992187500034],[112.47617187500006,1.559082031250028],[112.1857421875001,1.4390625],[112.078515625,1.143359374999974],[111.80898437500005,1.011669921874969],[111.10136718750002,1.050537109374986],[110.50576171875005,0.861962890625023],[109.65400390625004,1.614892578125023],[109.53896484375,1.89619140625004],[109.62890625000003,2.027539062499983],[109.86484375000012,1.764453125000031],[110.34921875000012,1.719726562499972],[111.22324218750012,1.395849609374991],[111.0287109375,1.557812500000026],[111.26816406250012,2.13974609375002],[111.20859375000012,2.379638671875043],[111.44384765625003,2.381542968749983],[111.5125,2.743017578124991],[112.98789062500006,3.161914062499974],[113.92392578125006,4.243212890625003],[114.0638671875,4.592675781249966],[114.65410156250007,4.037646484375045],[114.84023437500005,4.393212890625009],[114.74667968750006,4.718066406250017],[115.02675781250005,4.899707031249989],[115.10703125000006,4.390429687499974],[115.290625,4.352587890624989],[115.1400390625,4.899755859374991],[115.37490234375,4.932763671874966],[115.55449218750007,5.093554687500045],[115.41904296875012,5.413183593749963],[115.60390625,5.603417968749994],[115.74082031250012,5.533007812500045],[115.8771484375001,5.613525390625014],[116.74980468750007,6.977099609374989],[116.8498046875001,6.826708984374989],[116.78808593749997,6.606103515624994],[117.12851562500012,6.968896484375009],[117.2298828125,6.939990234374974],[117.29404296875006,6.676904296875023],[117.60966796875002,6.512646484375054],[117.69375,6.35],[117.64453124999997,6.001855468749994],[117.5011718750001,5.884667968750009],[118.00380859375,6.053320312499991],[118.11582031250006,5.8625],[117.93476562500004,5.7875],[117.97363281249997,5.70625],[118.35312500000012,5.80605468749998],[118.59482421875006,5.592089843750003],[119.22343750000007,5.412646484375031],[119.2663085937501,5.308105468750057],[119.21962890625,5.159814453125037],[118.9125,5.02290039062504],[118.26054687500007,4.988867187500034],[118.18535156250002,4.828515625000051],[118.5625,4.502148437499997],[118.54833984375003,4.379248046875006],[118.008203125,4.250244140625014],[117.6964843750001,4.342822265625045],[117.5744140625001,4.17060546875004]]],[[[117.14160156250003,7.168212890625028],[117.08066406250006,7.115283203124989],[117.06425781250007,7.26069335937504],[117.2640625,7.351660156250006],[117.26679687500004,7.220800781249991],[117.14160156250003,7.168212890625028]]]]},"properties":{"name":"Malaysia","childNum":8}},{"geometry":{"type":"Polygon","coordinates":[[[23.380664062500017,-17.640625],[24.27490234375,-17.481054687500006],[24.73291015625,-17.51777343750001],[25.001757812500017,-17.56855468750001],[25.2587890625,-17.793554687500006],[24.909082031250023,-17.821386718750006],[24.530566406250017,-18.052734375],[24.243945312500017,-18.0234375],[23.599707031250006,-18.4599609375],[23.219335937500006,-17.99970703125001],[20.97412109375,-18.31884765625],[20.9794921875,-21.9619140625],[19.977343750000017,-22.00019531250001],[19.98046875,-24.77675781250001],[19.98046875,-28.310351562500003],[19.98046875,-28.451269531250006],[19.539843750000017,-28.574609375],[19.31269531250001,-28.73330078125001],[19.24580078125001,-28.901660156250003],[19.16171875,-28.938769531250003],[18.310839843750017,-28.88623046875],[17.44794921875001,-28.69814453125001],[17.34785156250001,-28.50117187500001],[17.358691406250017,-28.26943359375001],[17.1884765625,-28.13251953125001],[17.05625,-28.031054687500003],[16.93330078125001,-28.069628906250003],[16.875292968750017,-28.1279296875],[16.841210937500023,-28.21894531250001],[16.81015625,-28.26455078125001],[16.7875,-28.39472656250001],[16.755761718750023,-28.4521484375],[16.62617187500001,-28.487890625],[16.487109375000017,-28.572851562500006],[16.447558593750017,-28.617578125],[15.719042968750017,-27.9658203125],[15.341503906250011,-27.386523437500003],[15.139062500000023,-26.50800781250001],[14.9677734375,-26.31806640625001],[14.837109375000011,-25.033203125],[14.5015625,-24.201953125],[14.462792968750023,-22.44912109375001],[13.450585937500023,-20.91669921875001],[13.168359375000023,-20.184667968750006],[12.458203125000011,-18.9267578125],[11.77587890625,-18.001757812500003],[11.733496093750006,-17.7509765625],[11.743066406250023,-17.24921875000001],[11.902539062500011,-17.2265625],[12.013964843750017,-17.168554687500006],[12.21337890625,-17.2099609375],[12.318457031250006,-17.21337890625],[12.359277343750023,-17.205859375],[12.548144531250017,-17.212695312500003],[13.179492187500017,-16.9716796875],[13.475976562500023,-17.0400390625],[14.017480468750023,-17.40888671875001],[16.1484375,-17.390234375],[18.396386718750023,-17.3994140625],[18.95527343750001,-17.803515625],[20.1943359375,-17.863671875],[20.745507812500023,-18.01972656250001],[22.32421875,-17.8375],[23.380664062500017,-17.640625]]]},"properties":{"name":"Namibia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[167.54443359375003,-22.62324218750001],[167.44375,-22.63916015624997],[167.44345703125006,-22.541406250000037],[167.54443359375003,-22.62324218750001]]],[[[168.01093750000004,-21.429980468750017],[168.1390625,-21.44521484375001],[168.12070312500012,-21.615820312500034],[167.96679687500003,-21.641601562499957],[167.81542968749997,-21.392675781249963],[167.9884765625001,-21.337890624999986],[168.01093750000004,-21.429980468750017]]],[[[167.40087890625003,-21.16064453125003],[167.07265625,-20.99726562499997],[167.03271484374997,-20.922558593750026],[167.18945312500003,-20.803515625000017],[167.05576171875012,-20.720214843750014],[167.29794921875006,-20.732519531250034],[167.40087890625003,-21.16064453125003]]],[[[164.20234375000004,-20.246093749999957],[164.4359375,-20.282226562499957],[165.191796875,-20.768847656249974],[165.66279296875004,-21.267187499999977],[166.94238281250003,-22.09013671875003],[166.97031250000012,-22.32285156250002],[166.77412109375004,-22.37617187500004],[166.4679687500001,-22.256054687499997],[164.92744140625004,-21.289843749999974],[164.16972656250007,-20.48017578125004],[164.05966796875012,-20.141503906249966],[164.20234375000004,-20.246093749999957]]]]},"properties":{"name":"New Caledonia","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[14.97900390625,22.99619140624999],[15.181835937500011,21.523388671874997],[15.607324218750023,20.954394531250003],[15.587109375000011,20.733300781249994],[15.963183593750017,20.34619140625],[15.735058593750011,19.904052734375],[15.474316406250011,16.908398437499997],[14.367968750000017,15.750146484374994],[13.4482421875,14.380664062500003],[13.505761718750023,14.134423828124994],[13.606347656250023,13.70458984375],[13.426953125000011,13.701757812499991],[13.323828125,13.670849609374997],[12.871679687500006,13.449023437500003],[12.65478515625,13.3265625],[12.463183593750017,13.09375],[10.958886718750023,13.371533203124997],[10.475878906250017,13.330224609374994],[10.229589843750006,13.281005859375],[10.184667968750006,13.270117187499991],[9.615917968750011,12.810644531249991],[9.201562500000023,12.821484375],[8.750585937500006,12.908154296874997],[8.4560546875,13.059667968749991],[8.095019531250017,13.291162109374994],[7.955761718750011,13.32275390625],[7.788671875,13.337890625],[7.056738281250006,13.000195312499997],[6.804296875,13.107666015625],[6.2998046875,13.658789062499991],[6.184277343750011,13.66367187499999],[5.838183593750017,13.765380859375],[5.491992187500017,13.872851562500003],[5.415820312500017,13.859179687500003],[5.361621093750017,13.836865234374997],[5.241894531250011,13.757226562499994],[4.664843750000017,13.733203125],[4.147558593750006,13.457714843749997],[3.947851562500006,12.775048828124994],[3.646679687500011,12.529980468749997],[3.595410156250011,11.6962890625],[2.805273437500006,12.383837890624989],[2.366015625000017,12.221923828125],[2.38916015625,11.897070312499991],[2.072949218750011,12.309375],[2.226269531250011,12.466064453125],[2.104589843750006,12.701269531249991],[1.56494140625,12.635400390624994],[0.9873046875,13.041894531249994],[0.988476562500011,13.36484375],[1.201171875,13.357519531249991],[0.6181640625,13.703417968750003],[0.42919921875,13.972119140624997],[0.382519531250011,14.245800781249997],[0.163867187500017,14.497216796874994],[0.217480468750011,14.911474609374991],[0.947460937500011,14.982128906249997],[1.300195312500023,15.272265625],[3.001074218750006,15.340966796874994],[3.06015625,15.427197265624997],[3.504296875000023,15.356347656249994],[3.5205078125,15.483105468749997],[3.842968750000011,15.701708984375003],[4.121289062500011,16.357714843750003],[4.234667968750017,16.996386718750003],[4.227636718750006,19.142773437499997],[5.836621093750011,19.479150390624994],[7.481738281250017,20.873095703125003],[11.967871093750006,23.517871093750003],[13.48125,23.18017578125],[14.215527343750011,22.619677734375003],[14.97900390625,22.99619140624999]]]},"properties":{"name":"Niger","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[7.30078125,4.418164062500026],[7.140429687500017,4.395117187500034],[7.227343750000045,4.527343749999972],[7.30078125,4.418164062500026]]],[[[6.804296875,13.107666015625],[7.056738281250006,13.00019531250004],[7.788671875,13.337890625],[7.955761718750011,13.322753906250028],[8.095019531250045,13.29116210937498],[8.750585937500034,12.908154296875026],[9.20156250000008,12.82148437500004],[9.615917968750011,12.810644531249963],[10.184667968750063,13.270117187499963],[10.229589843749977,13.281005859375043],[10.475878906250074,13.330224609375037],[10.958886718750051,13.371533203125011],[12.463183593750017,13.09375],[12.654785156250057,13.3265625],[13.426953125000068,13.701757812499963],[13.606347656250023,13.704589843750014],[13.932324218750011,13.258496093749997],[14.06396484375,13.078515625],[14.160058593750023,12.612792968749986],[14.184863281250017,12.447216796874997],[14.272851562500023,12.356494140624989],[14.518945312500051,12.298242187500023],[14.619726562500063,12.150976562500048],[14.559765625000011,11.492285156249963],[14.20234375000004,11.268164062499963],[14.143261718750068,11.248535156250043],[14.056738281250034,11.245019531250037],[13.981445312500057,11.21186523437504],[13.892089843750057,11.140087890624983],[13.699902343749983,10.873144531250048],[13.53535156250004,10.605078124999963],[13.414550781250028,10.171435546874989],[13.269921875000051,10.036181640624974],[13.198730468750028,9.563769531250003],[12.929492187500074,9.426269531249972],[12.87568359375004,9.303515625000017],[12.80654296875008,8.886621093749994],[12.7822265625,8.817871093750014],[12.651562500000011,8.667773437499989],[12.40351562500004,8.59555664062502],[12.311328125000074,8.419726562499989],[12.2333984375,8.282324218749977],[12.016015625000051,7.589746093750009],[11.809179687500006,7.345068359374991],[11.767382812500017,7.272265624999989],[11.861425781249977,7.11640625000004],[11.657519531250017,6.951562500000023],[11.580078125000057,6.88886718750004],[11.551660156250023,6.697265625],[11.153320312500057,6.437939453125011],[11.1064453125,6.457714843750054],[11.032519531250045,6.697900390625037],[10.954199218750006,6.7765625],[10.60625,7.063085937500006],[10.413183593750006,6.877734375],[10.293066406250034,6.876757812499974],[10.205468750000051,6.891601562499986],[10.185546874999972,6.91279296875004],[10.167773437500017,6.959179687499983],[10.143554687500057,6.99643554687502],[10.038867187500045,6.921386718750014],[9.874218750000068,6.803271484375017],[9.82070312500008,6.783935546874986],[9.779882812500034,6.760156250000023],[9.725585937499972,6.65],[9.659960937500017,6.531982421874986],[9.490234375,6.418652343749997],[8.997167968750006,5.917724609375],[8.715625,5.046875],[8.514843750000068,4.724707031250034],[8.23378906250008,4.907470703124972],[8.293066406250006,4.557617187500014],[7.644238281250068,4.525341796875011],[7.530761718750028,4.655175781249994],[7.284375,4.547656250000031],[7.076562500000051,4.716162109374991],[7.15468750000008,4.514404296875],[6.92324218750008,4.390673828125017],[6.767675781250006,4.724707031250034],[6.860351562500057,4.373339843750045],[6.633007812500011,4.340234375000051],[6.579980468750051,4.475976562499994],[6.554589843750023,4.34140625000002],[6.263671875,4.309423828124991],[6.270996093749972,4.432128906250028],[6.173339843749972,4.277392578125031],[5.970703125,4.338574218749983],[5.587792968750051,4.647216796874972],[5.448144531250023,4.945849609374974],[5.383300781250057,5.129003906249977],[5.475976562500023,5.153857421874989],[5.370019531250023,5.195019531250026],[5.367968750000045,5.337744140624963],[5.549707031250023,5.474218749999963],[5.385839843750034,5.401757812500037],[5.199218750000028,5.533544921874977],[5.456640624999977,5.61171875],[5.327343750000011,5.707519531249986],[5.112402343750034,5.64155273437504],[4.861035156250068,6.026318359374997],[4.431347656250011,6.348583984375026],[3.450781249999977,6.427050781250017],[3.71699218750004,6.597949218750017],[3.430175781250057,6.525],[3.335546875000063,6.396923828125011],[2.706445312500051,6.369238281249963],[2.735644531250045,6.595703125],[2.753710937499989,6.661767578124966],[2.774609374999983,6.711718750000017],[2.752929687500028,6.771630859374966],[2.731738281250045,6.852832031249989],[2.721386718750068,6.980273437500017],[2.75673828125008,7.067919921875017],[2.750488281250057,7.39506835937496],[2.765820312500068,7.422509765625051],[2.783984375000045,7.443408203125045],[2.78515625,7.476855468750017],[2.703125,8.371826171875],[2.774804687500023,9.048535156250026],[3.044921875,9.08383789062502],[3.325195312499972,9.778466796875051],[3.60205078125,10.004541015625009],[3.646582031250006,10.408984374999989],[3.771777343750017,10.417626953124966],[3.83447265625,10.607421875],[3.7568359375,10.76875],[3.71640625,11.07958984375],[3.695312499999972,11.12031250000004],[3.63886718750004,11.176855468750006],[3.487792968749972,11.395410156250037],[3.490527343750017,11.499218750000054],[3.55390625000004,11.631884765624989],[3.595410156250068,11.696289062500057],[3.664746093750068,11.762451171875028],[3.646679687500011,12.529980468749983],[3.947851562500006,12.775048828124994],[4.147558593750006,13.457714843749983],[4.664843750000045,13.733203124999974],[5.241894531250011,13.757226562499994],[5.361621093750074,13.836865234375054],[5.415820312500017,13.859179687499974],[5.491992187500074,13.872851562500003],[6.2998046875,13.658789062500006],[6.804296875,13.107666015625]]]]},"properties":{"name":"Nigeria","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-83.6419921875,10.917236328125],[-83.71293945312499,10.785888671875],[-83.91928710937499,10.7353515625],[-84.6341796875,11.045605468749997],[-84.9091796875,10.9453125],[-85.5841796875,11.189453125],[-85.7443359375,11.06210937499999],[-87.670166015625,12.965673828124991],[-87.58505859374999,13.043310546874991],[-87.42436523437499,12.921142578125],[-87.33725585937499,12.979248046875],[-87.05917968749999,12.991455078125],[-87.00932617187499,13.0078125],[-86.918212890625,13.223583984374997],[-86.87353515625,13.266503906249994],[-86.792138671875,13.27978515625],[-86.72929687499999,13.284375],[-86.710693359375,13.313378906249994],[-86.76352539062499,13.63525390625],[-86.77060546874999,13.69873046875],[-86.758984375,13.746142578125003],[-86.733642578125,13.763476562500003],[-86.61025390625,13.774853515624997],[-86.376953125,13.755664062500003],[-86.33173828125,13.770068359375003],[-86.238232421875,13.899462890625003],[-86.15122070312499,13.994580078124997],[-86.0892578125,14.037207031249991],[-86.04038085937499,14.050146484374991],[-85.9837890625,13.965673828124991],[-85.78671875,13.844433593749997],[-85.75341796875,13.85205078125],[-85.73393554687499,13.858691406250003],[-85.727734375,13.876074218749991],[-85.731201171875,13.931835937499997],[-85.68193359374999,13.982568359374994],[-85.20834960937499,14.311816406250003],[-85.059375,14.582958984374997],[-84.86044921874999,14.809765625],[-84.645947265625,14.661083984374997],[-84.53764648437499,14.633398437499991],[-83.635498046875,14.876416015624997],[-83.5365234375,14.977001953124997],[-83.4150390625,15.008056640625],[-83.15751953124999,14.993066406249994],[-83.18535156249999,14.956396484374991],[-83.21591796874999,14.932373046875],[-83.27988281249999,14.812792968750003],[-83.344384765625,14.902099609375],[-83.413720703125,14.825341796874994],[-83.29921875,14.7490234375],[-83.187744140625,14.340087890625],[-83.4123046875,13.99648437499999],[-83.567333984375,13.3203125],[-83.5109375,12.411816406249997],[-83.627197265625,12.459326171874991],[-83.59335937499999,12.713085937499997],[-83.75424804687499,12.501953125],[-83.680419921875,12.024316406249994],[-83.7671875,12.059277343749997],[-83.82890624999999,11.861035156249997],[-83.70458984375,11.824560546874991],[-83.6517578125,11.642041015624997],[-83.86787109375,11.300048828125],[-83.6419921875,10.917236328125]]]},"properties":{"name":"Nicaragua","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-169.80341796875,-19.0830078125],[-169.94833984375,-19.072851562500006],[-169.834033203125,-18.96601562500001],[-169.80341796875,-19.0830078125]]]},"properties":{"name":"Niue","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-68.205810546875,12.144580078124989],[-68.25434570312495,12.032080078124977],[-68.36923828125,12.301953124999983],[-68.205810546875,12.144580078124989]]],[[[4.226171875000034,51.38647460937503],[3.902050781250011,51.20766601562502],[3.43251953125008,51.24575195312505],[3.35009765625,51.37768554687503],[4.226171875000034,51.38647460937503]]],[[[3.94912109375008,51.73945312500001],[4.07509765625008,51.648779296875006],[3.699023437500017,51.70991210937501],[3.94912109375008,51.73945312500001]]],[[[4.886132812500023,53.07070312500005],[4.70917968750004,53.036035156249994],[4.886425781249983,53.18330078124998],[4.886132812500023,53.07070312500005]]],[[[4.226171875000034,51.38647460937503],[3.448925781250068,51.54077148437503],[3.743945312500017,51.596044921875006],[4.27412109375004,51.47163085937498],[4.004785156250051,51.595849609374966],[4.182617187500057,51.61030273437498],[3.946875,51.810546875],[4.482812500000023,52.30917968749998],[4.76875,52.941308593749966],[5.061230468750068,52.96064453125001],[5.532031250000074,53.268701171874966],[6.062207031250068,53.407080078125006],[6.816210937500045,53.44116210937503],[7.197265625000028,53.28227539062499],[7.033007812500045,52.65136718749997],[6.710742187500045,52.61787109374998],[6.748828125000074,52.464013671874994],[7.035156250000057,52.38022460937498],[6.724511718749994,52.080224609374966],[6.800390625,51.96738281249998],[5.948730468750057,51.80268554687501],[6.198828125000034,51.45],[6.129980468750034,51.14741210937501],[5.857519531250034,51.030126953125006],[6.048437500000034,50.90488281250006],[5.993945312500017,50.75043945312504],[5.693554687500011,50.774755859375006],[5.796484375000034,51.153076171875],[5.214160156250045,51.278955078124966],[5.03095703125004,51.46909179687498],[4.226171875000034,51.38647460937503]]],[[[5.325781250000063,53.38574218750003],[5.190234375000074,53.39179687500001],[5.582617187500063,53.438085937500034],[5.325781250000063,53.38574218750003]]]]},"properties":{"name":"Netherlands","childNum":6,"cp":[5.0752777,52.358465]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[5.085839843750023,60.30756835937501],[5.089062500000068,60.188769531250045],[4.95722656250004,60.44726562500006],[5.085839843750023,60.30756835937501]]],[[[4.958691406250068,61.084570312500034],[4.79902343750004,61.08271484375001],[4.861621093749989,61.19384765625],[4.958691406250068,61.084570312500034]]],[[[8.10273437500004,63.33759765625004],[7.804003906250017,63.413916015625034],[8.073535156250045,63.47080078124998],[8.10273437500004,63.33759765625004]]],[[[8.470800781250063,63.66713867187502],[8.287109375000028,63.68715820312502],[8.764648437500057,63.804638671874955],[8.78652343750008,63.703466796875034],[8.470800781250063,63.66713867187502]]],[[[11.2314453125,64.865869140625],[10.739843750000034,64.87031250000001],[11.02099609375,64.97871093749995],[11.2314453125,64.865869140625]]],[[[12.971777343750063,67.87412109375],[12.824023437500074,67.82124023437498],[13.068066406250068,68.07133789062505],[12.971777343750063,67.87412109375]]],[[[13.872851562500045,68.26533203125004],[14.096777343750034,68.218603515625],[13.229394531250051,67.995361328125],[13.300195312499994,68.16044921875007],[13.872851562500045,68.26533203125004]]],[[[15.207128906250006,68.943115234375],[15.222070312500023,68.61630859375003],[14.404687500000051,68.663232421875],[15.037792968750068,69.00053710937507],[15.207128906250006,68.943115234375]]],[[[15.760351562500006,68.56123046875001],[16.328906250000017,68.87631835937498],[16.519238281250068,68.63300781249998],[15.975292968750011,68.402490234375],[14.257519531249983,68.19077148437503],[15.412597656250028,68.61582031250003],[15.483007812500006,69.04345703125003],[16.04804687500001,69.30205078125002],[15.760351562500006,68.56123046875001]]],[[[17.503027343750034,69.59624023437502],[18.004101562500068,69.50498046874998],[17.95068359375003,69.19814453125],[17.487890625000063,69.19682617187499],[17.08251953124997,69.013671875],[16.81044921875008,69.07070312499997],[17.001757812500045,69.36191406250006],[17.36083984375003,69.38149414062497],[17.503027343750034,69.59624023437502]]],[[[29.956152343750006,69.79677734375002],[29.766210937500006,69.76752929687501],[29.835839843749994,69.90556640625005],[29.956152343750006,69.79677734375002]]],[[[20.779199218750023,70.08974609375002],[20.46425781250005,70.0765625],[20.492773437500006,70.20332031249995],[20.78603515625008,70.21953124999999],[20.779199218750023,70.08974609375002]]],[[[19.25507812500001,70.06640625000006],[19.607812500000023,70.019140625],[19.334765625000074,69.82026367187501],[18.784765625000034,69.57900390624997],[18.12988281250003,69.557861328125],[18.34931640625004,69.76787109374999],[18.67402343750004,69.78164062500002],[19.13271484375005,70.24414062500003],[19.25507812500001,70.06640625000006]]],[[[19.76748046875005,70.21669921875002],[20.005957031250034,70.07622070312502],[19.599023437499994,70.26616210937507],[19.76748046875005,70.21669921875002]]],[[[23.615332031250034,70.54931640625003],[23.15917968750003,70.28261718750005],[22.941015625000063,70.444580078125],[23.546679687500017,70.61708984374997],[23.615332031250034,70.54931640625003]]],[[[24.01757812500003,70.56738281249997],[23.716601562500074,70.561865234375],[23.778417968750063,70.74736328125005],[24.01757812500003,70.56738281249997]]],[[[23.440527343750063,70.81577148437503],[22.8291015625,70.54155273437505],[22.358691406250017,70.514794921875],[21.99453125000008,70.65712890624997],[23.440527343750063,70.81577148437503]]],[[[30.869726562500006,69.78344726562506],[30.860742187499994,69.53842773437503],[30.18017578124997,69.63583984375],[30.08730468750005,69.43286132812503],[29.38828125,69.29814453125005],[28.96582031250003,69.02197265625],[28.846289062500006,69.17690429687502],[29.33339843750005,69.47299804687503],[29.14160156250003,69.67143554687505],[27.747851562500045,70.06484375],[27.127539062500063,69.90649414062497],[26.525390625000057,69.91503906250003],[26.07246093750004,69.69155273437497],[25.748339843750017,68.99013671875],[24.94140625000003,68.59326171875006],[23.85400390625,68.80590820312503],[23.324023437500017,68.64897460937502],[22.410937500000074,68.719873046875],[21.59375,69.273583984375],[21.06611328125001,69.21411132812497],[21.065722656250017,69.04174804687503],[20.622167968750006,69.036865234375],[20.116699218750057,69.02089843750005],[20.348046875000023,68.84873046875003],[19.969824218750063,68.35639648437501],[18.303027343750045,68.55541992187497],[17.91669921875001,67.96489257812502],[17.324609375000023,68.10380859374999],[16.783593750000023,67.89501953125],[16.12744140625,67.42583007812507],[16.40351562500004,67.05498046875002],[15.422949218750006,66.48984374999998],[15.483789062500051,66.30595703124999],[14.543261718750045,66.12934570312498],[14.47968750000004,65.30146484374998],[13.650292968750023,64.58154296874997],[14.077636718750028,64.464013671875],[14.141210937500006,64.17353515624998],[13.960546875000063,64.01401367187498],[13.203515625000023,64.07509765625],[12.792773437500017,64],[12.175195312500051,63.595947265625],[11.999902343750051,63.29169921875001],[12.303515625000074,62.28559570312501],[12.155371093750006,61.720751953125045],[12.88076171875008,61.35229492187506],[12.706054687500028,61.059863281250074],[12.29414062500004,61.00268554687506],[12.588671874999989,60.450732421875045],[12.486132812500074,60.10678710937506],[11.680761718750034,59.59228515625003],[11.798144531250074,59.28989257812498],[11.64277343750004,58.92607421875002],[11.470703125000057,58.909521484375034],[11.388281250000063,59.036523437499966],[10.834472656250028,59.18393554687498],[10.595312500000063,59.764550781249966],[10.179394531250068,59.00927734375003],[9.842578125000017,58.95849609374997],[9.557226562500063,59.11269531250002],[9.65693359375004,58.97119140624997],[8.166113281250063,58.145312500000045],[7.0048828125,58.024218750000074],[6.877050781250006,58.15073242187498],[6.590527343750068,58.09731445312502],[6.659863281250068,58.26274414062499],[5.706835937500074,58.52363281250001],[5.55556640625008,58.975195312500006],[6.099023437500023,58.87026367187502],[6.363281250000028,59.00092773437501],[6.099414062500017,58.951953125000074],[5.88916015625,59.097949218750045],[5.951855468750068,59.299072265625],[6.415332031250074,59.547119140625],[5.17324218750008,59.16254882812498],[5.2421875,59.564306640625034],[5.472460937500017,59.713085937499955],[5.77216796875004,59.66093749999999],[6.216601562499989,59.818359375],[5.73046875,59.863085937500045],[6.348730468750006,60.35297851562504],[6.57363281250008,60.36059570312497],[6.526855468750057,60.152929687500034],[6.995703125,60.511962890625],[6.1533203125,60.34624023437499],[5.145800781250074,59.63881835937502],[5.205664062500006,60.087939453125045],[5.688574218749977,60.12319335937502],[5.285839843750011,60.20571289062505],[5.13710937500008,60.445605468750074],[5.648339843750051,60.68798828124997],[5.244042968750023,60.569580078125],[5.115820312500006,60.63598632812503],[5.008593750000017,61.038183593750006],[6.777832031250028,61.142431640625006],[7.038671875000063,60.952929687500045],[7.040136718750006,61.091162109375034],[7.604492187500057,61.210546875000034],[7.34658203125008,61.30058593749999],[7.442578125000011,61.43461914062502],[7.173535156250011,61.16596679687501],[6.599902343750017,61.28964843749998],[6.383496093750068,61.133886718750034],[5.451269531250034,61.10234375000002],[5.106738281250017,61.187548828125045],[5.002734375000074,61.43359375],[5.338671875000017,61.485498046874994],[4.927832031249977,61.71069335937506],[4.93007812499999,61.878320312499994],[6.01582031250004,61.7875],[6.730761718750045,61.86977539062505],[5.266894531250045,61.935595703125045],[5.143164062500063,62.159912109375],[5.908300781249977,62.41601562500003],[6.083496093750057,62.349609375],[6.580078125000057,62.407275390625045],[6.692382812500028,62.46806640624999],[6.136132812500051,62.40747070312497],[6.352929687500051,62.61113281249999],[7.653125,62.56401367187499],[7.538378906250074,62.67207031249998],[8.045507812500006,62.77124023437503],[6.734960937500006,62.72070312500003],[6.940429687500028,62.930468750000045],[7.571875,63.09951171875002],[8.100585937500028,63.090966796874966],[8.623144531250006,62.84624023437502],[8.158007812500017,63.16152343750005],[8.635546875000045,63.34233398437502],[8.360742187500023,63.498876953125034],[8.576171875000028,63.60117187499998],[9.135839843750006,63.593652343749966],[9.156054687500045,63.459326171875034],[9.696875,63.624560546875045],[10.020996093750028,63.39082031250004],[10.76015625000008,63.461279296875006],[10.725292968750068,63.625],[11.370703125000034,63.804833984374994],[11.175585937500074,63.89887695312498],[11.457617187500063,64.00297851562505],[11.306640625000028,64.04887695312499],[10.91425781250004,63.92109374999998],[10.934863281250045,63.770214843749955],[10.055078125000051,63.5126953125],[9.567285156250051,63.70615234374998],[10.565625,64.418310546875],[11.523828125000051,64.744384765625],[11.632910156250063,64.81391601562495],[11.296777343750051,64.75478515625],[11.489355468750034,64.975830078125],[12.15966796875,65.178955078125],[12.508398437499977,65.09941406250005],[12.915527343750057,65.33925781249997],[12.417578125000063,65.18408203124997],[12.133886718749977,65.27915039062498],[12.68886718750008,65.90219726562498],[13.033105468750051,65.95625],[12.783789062500063,66.10043945312506],[14.034179687500057,66.29755859374998],[13.118847656250011,66.23066406250004],[13.211425781250028,66.64082031250001],[13.959472656250028,66.79433593750002],[13.651562500000011,66.90708007812498],[14.10878906250008,67.11923828125003],[15.41572265625004,67.20244140625002],[14.441699218750045,67.27138671875005],[14.961914062500057,67.57426757812502],[15.59443359375004,67.34853515625005],[15.691503906250006,67.52138671875],[15.24873046875004,67.6021484375],[15.303906250000011,67.76528320312502],[14.854687500000068,67.66333007812506],[14.798925781250063,67.80932617187503],[15.13427734375,67.97270507812502],[15.621386718750017,67.94829101562502],[15.316015624999977,68.06875],[16.007910156250006,68.22871093750004],[16.312304687500017,67.88144531249998],[16.20380859375001,68.31674804687503],[17.552832031250063,68.42626953125006],[16.51435546875004,68.53256835937503],[18.101464843749994,69.15629882812499],[18.259765625,69.47060546875],[18.915917968750023,69.33559570312502],[18.614453125000068,69.49057617187498],[19.197265625000057,69.74785156249999],[19.722460937500017,69.78164062500002],[19.64150390625005,69.42402343750001],[20.324218750000057,69.94531249999997],[20.054492187500074,69.33266601562497],[20.486718750000023,69.54208984375],[20.739453124999983,69.52050781250003],[20.622070312500057,69.91391601562498],[21.163085937500057,69.88950195312498],[21.432910156250045,70.01318359375006],[21.974707031250034,69.83457031249998],[21.355761718750045,70.23339843749997],[22.321972656250068,70.264501953125],[22.684570312500057,70.374755859375],[23.35390625000008,69.98339843750003],[23.3291015625,70.20722656249995],[24.420019531250034,70.70200195312503],[24.263476562500017,70.82631835937497],[24.658007812500017,71.00102539062505],[25.264648437500057,70.843505859375],[25.768164062500063,70.85317382812502],[25.043847656250023,70.10903320312502],[26.66132812500004,70.93974609374999],[26.585058593750034,70.41000976562498],[26.989355468750063,70.51137695312502],[27.183691406250034,70.74404296875],[27.546484375000063,70.80400390625005],[27.23525390625008,70.94721679687498],[27.59707031250005,71.09130859375003],[28.392285156250068,70.97529296875004],[27.898046875,70.67792968750001],[28.271777343750017,70.66796875000003],[28.192968750000034,70.24858398437505],[28.83154296875003,70.86396484375001],[29.7375,70.646826171875],[30.065136718750097,70.70297851562498],[30.944140625000017,70.27441406249997],[30.262988281250074,70.12470703125004],[28.804296875000063,70.09252929687506],[29.601367187500017,69.97675781249998],[29.792089843750063,69.727880859375],[30.08828125,69.71757812500005],[30.237597656250017,69.86220703125002],[30.428320312500006,69.722265625],[30.869726562500006,69.78344726562506]]],[[[25.58632812500005,71.14208984375],[26.13378906250003,70.99580078125004],[25.582031250000057,70.960791015625],[25.31494140625,71.03413085937504],[25.58632812500005,71.14208984375]]],[[[-8.953564453124983,70.83916015625002],[-8.001367187499966,71.17768554687495],[-8.002099609374937,71.04125976562497],[-8.953564453124983,70.83916015625002]]],[[[19.219335937500006,74.39101562500002],[18.86123046875008,74.51416015624997],[19.182910156250045,74.51791992187503],[19.219335937500006,74.39101562500002]]],[[[21.60810546875004,78.59570312499997],[22.04316406250004,78.57695312500007],[22.29951171875004,78.22817382812497],[23.451953125000074,78.14946289062502],[23.11669921874997,77.99150390624999],[24.901855468750057,77.756591796875],[22.55371093750003,77.26665039062502],[22.685351562500045,77.55351562500002],[20.928125,77.45966796874998],[21.653125,77.92353515624998],[20.22792968750005,78.47783203125005],[21.60810546875004,78.59570312499997]]],[[[11.250292968750017,78.610693359375],[12.116406250000068,78.232568359375],[11.121289062500011,78.46328125],[10.558203125000063,78.90292968750003],[11.250292968750017,78.610693359375]]],[[[29.047070312500068,78.91206054687504],[29.69667968750005,78.90473632812495],[27.88906250000005,78.8521484375],[28.511132812500023,78.96733398437502],[29.047070312500068,78.91206054687504]]],[[[16.786718750000034,79.90673828125],[17.834570312499977,79.80004882812503],[17.66875,79.38593750000004],[18.39736328125008,79.60517578125001],[18.677832031250006,79.26171875000003],[19.893554687500057,79.05620117187499],[20.61103515625004,79.10664062499998],[21.388769531250034,78.74042968749998],[19.67675781250003,78.60957031249995],[16.700488281250045,76.57929687499995],[14.365820312500034,77.23447265625003],[13.995703125000034,77.50820312500002],[14.69501953125004,77.525048828125],[14.920800781250023,77.68881835937506],[17.033300781250006,77.79770507812503],[16.91406250000003,77.89799804687505],[14.089941406250063,77.77138671875],[13.680566406250051,78.028125],[14.307226562500006,78.00507812500001],[15.783886718750011,78.32705078125005],[17.00292968750003,78.36938476562497],[16.44863281250008,78.50356445312502],[16.78261718750008,78.66362304687505],[15.417382812500023,78.47324218749998],[15.384179687500023,78.77119140625001],[15.01630859375004,78.63012695312497],[14.689257812500017,78.720947265625],[14.638281250000034,78.41459960937502],[14.110449218750063,78.27089843749997],[13.150195312499989,78.2375],[11.365429687500011,78.95039062500004],[12.323437500000068,78.91425781249995],[12.083984375000028,79.26752929687498],[11.579785156250068,79.28349609375005],[11.208105468750034,79.12963867187503],[10.737597656250017,79.52016601562502],[10.804003906250045,79.79877929687504],[11.150390625,79.71699218749998],[11.702343750000011,79.82060546875005],[12.287792968750068,79.713134765625],[12.279980468749983,79.81596679687507],[13.692871093749972,79.860986328125],[13.777539062500011,79.71528320312498],[12.555371093750068,79.56948242187502],[13.333789062500017,79.57480468750006],[14.029589843750017,79.34414062500005],[14.59365234375008,79.79873046875002],[16.34375,78.97612304687502],[15.816113281250011,79.68183593750001],[16.245703125000034,80.04946289062502],[16.786718750000034,79.90673828125]]],[[[32.52597656250006,80.119140625],[31.48193359374997,80.10791015625003],[33.62929687499999,80.21743164062497],[32.52597656250006,80.119140625]]],[[[20.897851562500023,80.24995117187501],[22.289746093749983,80.04921874999997],[22.450781250000034,80.40224609375005],[23.00800781250004,80.473974609375],[23.114550781250074,80.18696289062498],[24.29755859375004,80.36040039062505],[26.86083984375,80.16000976562498],[27.19863281250008,79.90659179687506],[25.641210937500034,79.40302734374995],[23.94775390625,79.19428710937498],[22.903710937500023,79.23066406250001],[22.865527343750045,79.41186523437497],[20.861132812500017,79.39785156249997],[20.128222656250074,79.489599609375],[19.674609375000045,79.591162109375],[20.784082031250023,79.74858398437502],[18.725,79.7607421875],[18.25537109375,79.92919921875003],[18.855957031250057,80.03662109375],[17.91689453125005,80.14311523437502],[19.343359375000063,80.11640624999998],[19.733300781249994,80.47783203124999],[20.897851562500023,80.24995117187501]]]]},"properties":{"name":"Norway","childNum":27}},{"geometry":{"type":"Polygon","coordinates":[[[87.984375,27.133935546874994],[87.9931640625,27.086083984374994],[88.11103515625001,26.928466796875],[88.1572265625,26.807324218749997],[88.16152343750002,26.724804687499997],[88.11152343750001,26.58642578125],[88.05488281250001,26.430029296875],[88.02695312500003,26.39501953125],[87.9951171875,26.382373046874996],[87.28740234374999,26.360302734374997],[87.01640624999999,26.555419921875],[86.70136718750001,26.43505859375],[86.00732421875,26.649365234374997],[85.79453125000003,26.604150390624994],[85.7373046875,26.63974609375],[85.6484375,26.829003906249994],[85.56845703125003,26.83984375],[85.29296875,26.741015625],[85.19179687500002,26.766552734374997],[84.68535156249999,27.041015625],[84.65380859375,27.091699218749994],[84.65478515625,27.203662109374996],[84.64072265625003,27.249853515625],[84.61015624999999,27.298681640625],[84.48085937500002,27.348193359374996],[84.22978515624999,27.42783203125],[84.09101562500001,27.491357421874994],[83.82880859375001,27.377832031249994],[83.74697265625002,27.395947265624997],[83.55166015625002,27.456347656249996],[83.44716796875002,27.46533203125],[83.38398437500001,27.44482421875],[83.36943359374999,27.41025390625],[83.28974609375001,27.370996093749994],[82.7333984375,27.518994140624997],[82.71083984375002,27.5966796875],[82.67734375000003,27.6734375],[82.6298828125,27.687060546874996],[82.45136718750001,27.671826171874997],[82.28769531250003,27.756542968749997],[82.11191406250003,27.864941406249997],[82.03701171875002,27.900585937499997],[81.98769531250002,27.913769531249997],[81.94521484375002,27.899267578125],[81.896875,27.874462890624997],[81.85263671875003,27.867089843749994],[81.1689453125,28.335009765624996],[80.58701171875003,28.649609375],[80.51787109374999,28.665185546874994],[80.49580078125001,28.635791015624996],[80.47910156250003,28.604882812499994],[80.41855468750003,28.612011718749997],[80.32480468750003,28.66640625],[80.2265625,28.723339843749997],[80.07070312500002,28.83017578125],[80.05166015625002,28.8703125],[80.08457031250003,28.994189453124996],[80.13046875000003,29.100390625],[80.16953125000003,29.124316406249996],[80.23300781250003,29.194628906249996],[80.25595703125003,29.318017578124994],[80.2548828125,29.42333984375],[80.31689453125,29.572070312499996],[80.40185546875,29.730273437499996],[80.54902343750001,29.899804687499994],[80.81992187500003,30.119335937499997],[80.84814453125,30.13974609375],[80.90761718750002,30.171923828124996],[80.96611328124999,30.180029296875],[81.17714843750002,30.039892578125],[81.25507812500001,30.093310546874996],[81.41718750000001,30.337597656249997],[81.64189453124999,30.3875],[81.85488281250002,30.36240234375],[82.04335937500002,30.3267578125],[82.220703125,30.063867187499994],[83.15546875000001,29.612646484375],[83.58349609375,29.18359375],[83.93593750000002,29.279492187499997],[84.02197265625,29.253857421874997],[84.10136718749999,29.219970703125],[84.12783203125002,29.156298828124996],[84.17558593749999,29.036376953125],[84.22871093750001,28.911767578124994],[84.796875,28.560205078124994],[84.85507812500003,28.553613281249994],[85.06914062499999,28.609667968749996],[85.12636718750002,28.60263671875],[85.15908203125002,28.592236328124997],[85.16015625,28.571875],[85.12148437500002,28.484277343749994],[85.08857421875001,28.372265625],[85.12246093750002,28.315966796874996],[85.21210937500001,28.292626953124994],[85.41064453125,28.276025390624994],[85.67832031250003,28.27744140625],[85.75947265625001,28.220654296874997],[85.84023437500002,28.1353515625],[85.92167968749999,27.989697265624997],[85.9541015625,27.92822265625],[85.99453125000002,27.910400390625],[86.06416015625001,27.934716796874994],[86.07871093750003,28.08359375],[86.13701171874999,28.11435546875],[86.21796875000001,28.0220703125],[86.32861328125,27.959521484374996],[86.40869140625,27.928662109374997],[86.51689453124999,27.963525390624994],[86.55449218749999,28.085205078125],[86.61445312500001,28.10302734375],[86.69052734375003,28.094921875],[86.71962890625002,28.070654296875],[86.75039062500002,28.0220703125],[86.93378906250001,27.968457031249997],[87.02011718750003,27.928662109374997],[87.14140624999999,27.838330078124997],[87.29072265625001,27.821923828124994],[87.62255859375,27.815185546875],[87.86074218750002,27.886083984375],[88.10976562500002,27.87060546875],[87.984375,27.133935546874994]]]},"properties":{"name":"Nepal","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[169.17822265624997,-52.497265625],[169.12753906250006,-52.570312499999964],[169.02177734375002,-52.49541015624998],[169.17822265624997,-52.497265625]]],[[[166.22109375,-50.76152343749997],[166.2428710937501,-50.84570312499998],[165.88916015624997,-50.80771484374996],[166.10136718750002,-50.538964843750016],[166.26748046875005,-50.558593750000014],[166.22109375,-50.76152343749997]]],[[[168.14492187500005,-46.862207031249966],[168.04316406250004,-46.9326171875],[168.2409179687501,-47.070019531250026],[167.52197265624997,-47.258691406249994],[167.80078125000003,-46.90654296875002],[167.78398437500007,-46.699804687500006],[167.9557617187501,-46.69443359374998],[168.14492187500005,-46.862207031249966]]],[[[166.97949218749997,-45.17968750000003],[167.02265625000004,-45.299804687499986],[166.89267578125012,-45.24052734374999],[166.97949218749997,-45.17968750000003]]],[[[-176.17763671874997,-43.74033203124998],[-176.38173828124997,-43.86679687499998],[-176.40737304687497,-43.7609375],[-176.516552734375,-43.78476562499996],[-176.33359375000003,-44.02529296875004],[-176.51552734374997,-44.11660156249998],[-176.62934570312495,-44.036132812500014],[-176.55512695312504,-43.85195312499998],[-176.84765625000003,-43.82392578125004],[-176.56611328124995,-43.717578125000045],[-176.17763671874997,-43.74033203124998]]],[[[173.91464843750018,-40.86367187500004],[173.78085937500012,-40.921777343749966],[173.964453125,-40.71298828124998],[173.91464843750018,-40.86367187500004]]],[[[173.11533203125006,-41.27929687499997],[173.94716796875005,-40.92412109375],[173.79785156250003,-41.271972656249986],[173.99941406250005,-40.99326171874996],[174.30253906249996,-41.019531249999986],[174.03857421875003,-41.24189453125],[174.37011718750009,-41.1037109375],[174.06933593750009,-41.42949218750002],[174.08369140625015,-41.67080078124998],[174.2831054687501,-41.740625],[173.22119140624997,-42.976562499999986],[172.62402343749997,-43.27246093749996],[172.73476562500005,-43.35478515625003],[172.52666015625002,-43.464746093749966],[172.69345703125006,-43.444335937499986],[172.80703125000005,-43.620996093749994],[173.07324218750003,-43.676171874999966],[173.065625,-43.87460937499998],[172.50273437500002,-43.84365234374998],[172.48037109375,-43.726660156250034],[172.29658203125004,-43.867871093750026],[172.035546875,-43.70175781250002],[172.17978515625006,-43.895996093749986],[171.24072265624997,-44.26416015625003],[171.14628906250002,-44.9123046875],[170.99902343750003,-44.91142578124999],[171.11328125000003,-45.03925781250001],[170.7005859375,-45.68427734374997],[170.77626953125005,-45.870898437499974],[170.4191406250001,-45.94101562499996],[169.68662109375006,-46.55166015625002],[169.34228515625003,-46.62050781250001],[168.38212890625007,-46.60537109374995],[168.1891601562501,-46.362207031249966],[167.8419921875001,-46.366210937499986],[167.539453125,-46.14853515624996],[167.36894531250007,-46.24150390624999],[166.73154296875006,-46.19785156249998],[166.91669921875004,-45.95722656249998],[166.64990234374997,-46.04169921875004],[166.71796875000004,-45.88935546875001],[166.49316406249997,-45.9638671875],[166.48828124999997,-45.83183593750002],[167.0033203125,-45.71210937500004],[166.79765625000002,-45.64560546874999],[166.99082031250012,-45.531738281249986],[166.73398437500012,-45.54355468749999],[166.74306640625,-45.46845703124997],[166.91992187499997,-45.40791015624998],[166.86923828125006,-45.31123046875],[167.15566406250005,-45.410937499999974],[167.23007812500012,-45.29033203125],[167.02587890624997,-45.12363281249998],[167.25947265625004,-45.08222656249997],[167.19453125000004,-44.963476562500034],[167.41074218750006,-44.82792968750003],[167.4662109375,-44.958300781250045],[167.48496093750006,-44.77138671874998],[167.78701171875,-44.59501953125002],[167.90898437500002,-44.66474609375001],[167.85654296875012,-44.50068359374998],[168.45742187500005,-44.030566406250045],[169.17890625000004,-43.9130859375],[169.16953125000006,-43.77705078125],[169.83388671875,-43.53701171875004],[170.24023437499997,-43.163867187500045],[170.39609375000012,-43.18222656249996],[170.30283203125012,-43.10761718750004],[170.61181640625003,-43.091796875000014],[170.5236328125001,-43.00898437500001],[170.6654296875,-42.961230468749974],[170.73525390625005,-43.029785156249986],[170.96992187500004,-42.71835937499996],[171.01171875000003,-42.88505859374999],[171.027734375,-42.696093750000045],[171.31337890625005,-42.460156250000026],[171.48623046875,-41.7947265625],[171.94804687500002,-41.53867187499996],[172.13945312500002,-40.947265625000014],[172.640625,-40.51826171875001],[172.94365234375007,-40.51875],[172.73261718750004,-40.54375],[172.70439453125002,-40.6677734375],[172.988671875,-40.84824218749999],[173.11533203125006,-41.27929687499997]]],[[[175.54316406250015,-36.279296874999986],[175.34619140624997,-36.217773437499986],[175.3895507812501,-36.07773437499996],[175.54316406250015,-36.279296874999986]]],[[[173.26943359375,-34.93476562499998],[173.44785156250012,-34.844335937500034],[173.47265625000003,-34.94697265624998],[174.10400390625003,-35.14287109375002],[174.1431640625,-35.3],[174.32031250000003,-35.246679687500034],[174.58066406250018,-35.78554687500004],[174.39580078124996,-35.79736328124996],[174.8021484375,-36.30947265625001],[174.72246093750007,-36.84121093749998],[175.29951171875004,-36.99326171874996],[175.38535156250012,-37.206933593749966],[175.54248046874997,-37.2013671875],[175.46083984375005,-36.475683593750034],[175.77216796875004,-36.73515625],[176.10839843749997,-37.64511718749998],[177.27402343750012,-37.993457031249974],[178.0091796875,-37.55488281249998],[178.53623046875006,-37.69208984375004],[178.26767578125006,-38.551171875],[177.976171875,-38.72226562500005],[177.90878906250012,-39.23955078125],[177.52294921875003,-39.07382812499999],[177.07675781250012,-39.22177734375002],[176.93925781249996,-39.55527343750002],[177.10986328125009,-39.673144531250045],[176.8421875000001,-40.15781250000002],[175.98291015625003,-41.21328125000002],[175.30976562499998,-41.610644531249974],[175.16562500000012,-41.41738281249995],[174.88134765624997,-41.42402343749997],[174.8656250000001,-41.223046874999966],[174.63535156250012,-41.28945312499999],[175.1625,-40.62158203125],[175.25410156250004,-40.28935546875],[175.1559570312501,-40.11494140625],[175.00927734375009,-39.95214843749996],[173.93437500000013,-39.50908203125002],[173.76367187499997,-39.31875],[173.84433593750006,-39.13935546875001],[174.39843749999997,-38.96259765624998],[174.59736328124998,-38.78505859374995],[174.80166015625005,-37.895507812500014],[174.92802734375002,-37.80449218750003],[174.58583984374994,-37.09775390625002],[174.73427734375,-37.21523437499998],[174.92890625000004,-37.084765625000045],[174.78203125000013,-36.94375],[174.47558593750009,-36.94189453124997],[174.1888671875001,-36.492285156250034],[174.4015625000001,-36.60195312499999],[174.39277343750004,-36.24003906249999],[174.26787109375002,-36.16308593750003],[174.25371093749996,-36.24912109374998],[174.03642578125013,-36.12246093750001],[173.91445312499994,-35.908691406249986],[173.91728515625002,-36.01816406249999],[174.16640624999994,-36.327636718749986],[174.05468749999991,-36.35976562500004],[173.41220703125012,-35.542578125],[173.62617187500004,-35.31914062499996],[173.3763671875001,-35.50009765624996],[173.31396484375003,-35.44335937499996],[173.11669921874997,-35.205273437500026],[173.190625,-35.01621093749998],[172.70595703125005,-34.45517578124998],[173.04394531249997,-34.429101562499994],[172.96376953125,-34.53515625000003],[173.26943359375,-34.93476562499998]]]]},"properties":{"name":"New Zealand","childNum":9}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[58.722070312499994,20.21875],[58.640917968750074,20.210693359375057],[58.64121093750006,20.33735351562501],[58.884375,20.680566406250023],[58.95078125000006,20.516162109375017],[58.722070312499994,20.21875]]],[[[56.38798828125002,24.97919921875004],[56.640625,24.4703125],[57.12304687500003,23.980712890625],[58.773046875,23.517187499999977],[59.42939453125004,22.660839843749955],[59.82324218749997,22.50898437500004],[59.8,22.21992187500001],[59.37148437500005,21.498828125000017],[58.89570312500004,21.11279296874997],[58.47421875000006,20.406884765624966],[58.20898437500003,20.423974609374994],[58.245019531249994,20.599218749999977],[58.16943359375003,20.58950195312505],[57.86181640624997,20.24414062500003],[57.71416015625002,19.678417968749983],[57.81162109375006,19.01708984374997],[56.825976562500074,18.753515625],[56.3834960937501,17.98798828125001],[55.479101562500006,17.84326171875003],[55.25537109375003,17.58564453125004],[55.275195312500074,17.320898437500006],[55.06416015625004,17.038916015625034],[54.06816406250002,17.005517578124966],[53.60986328124997,16.75996093750004],[53.08564453125004,16.648388671874955],[51.977636718750006,18.996142578125074],[54.97734375000002,19.995947265625006],[55.64101562499999,22.001855468749994],[55.185839843750074,22.7041015625],[55.1999023437501,23.034765625000034],[55.53164062499999,23.81904296875001],[55.4684570312501,23.94111328125001],[55.98515625000002,24.063378906249966],[55.92861328125005,24.215136718750074],[55.76083984375006,24.24267578125],[55.795703125000074,24.868115234374955],[56.00058593750006,24.953222656249977],[56.06386718750005,24.73876953125],[56.38798828125002,24.97919921875004]]],[[[56.29785156250003,25.650683593750045],[56.144628906250006,25.690527343750006],[56.16748046875003,26.047460937499977],[56.08046875,26.06264648437505],[56.41308593749997,26.351171875000034],[56.29785156250003,25.650683593750045]]]]},"properties":{"name":"Oman","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[73.08961802927895,36.86435907947333],[73.08203125000107,36.43949943991182],[72.31128647748268,35.77290936638241],[73.13410859949555,34.82510160558277],[73.19895048106557,33.88770931468204],[74.00809389139292,33.25375789331485],[73.98984375,33.22119140625],[74.30361328125002,32.991796875],[74.30546875000002,32.810449218749994],[74.35458984375,32.768701171874994],[74.58828125000002,32.753222656249996],[74.632421875,32.770898437499994],[74.66328125000001,32.757666015625],[74.64335937500002,32.607714843749996],[74.68574218750001,32.493798828124994],[74.78886718750002,32.4578125],[74.9873046875,32.462207031249996],[75.33349609375,32.279199218749994],[75.25410156250001,32.14033203125],[75.13876953125,32.104785156249996],[75.07148437500001,32.08935546875],[74.73945312500001,31.948828125],[74.6357421875,31.88974609375],[74.55556640625002,31.818554687499997],[74.5259765625,31.76513671875],[74.50996093750001,31.712939453124996],[74.58183593750002,31.52392578125],[74.59394531250001,31.465380859374996],[74.53496093750002,31.261376953124994],[74.51767578125,31.185595703124996],[74.6103515625,31.112841796874996],[74.62578125000002,31.06875],[74.6328125,31.03466796875],[74.509765625,30.959667968749997],[74.38037109375,30.893408203125],[74.33935546875,30.8935546875],[74.00898437500001,30.519677734374994],[73.89931640625002,30.435351562499996],[73.88271484375002,30.3521484375],[73.92460937500002,30.28164062499999],[73.93339843750002,30.222070312499994],[73.88652343750002,30.162011718749994],[73.8091796875,30.093359375],[73.38164062500002,29.934375],[72.9033203125,29.028759765624997],[72.34189453125,28.751904296874997],[72.2919921875,28.697265625],[72.128515625,28.346337890624994],[71.94804687500002,28.177294921874996],[71.88886718750001,28.0474609375],[71.87031250000001,27.9625],[71.54296875,27.869873046875],[71.18476562500001,27.831640625],[70.87490234375002,27.714453125],[70.79794921875,27.709619140624994],[70.69160156250001,27.768994140624997],[70.62910156250001,27.937451171874997],[70.40371093750002,28.025048828124994],[70.24433593750001,27.934130859374996],[70.1939453125,27.894873046875],[70.14453125,27.849023437499994],[70.0498046875,27.694726562499994],[69.89628906250002,27.4736328125],[69.56796875,27.174609375],[69.47001953125002,26.804443359375],[70.11464843750002,26.548046875],[70.14921875000002,26.347558593749994],[70.1001953125,25.910058593749994],[70.2646484375,25.70654296875],[70.3251953125,25.685742187499997],[70.44853515625002,25.681347656249997],[70.505859375,25.685302734375],[70.56953125000001,25.705957031249994],[70.6484375,25.666943359374997],[70.65205078125001,25.422900390625003],[70.87773437500002,25.06298828125],[70.95087890625001,24.8916015625],[71.02070312500001,24.75766601562499],[71.0478515625,24.687744140625],[71.00234375000002,24.65390625],[70.97636718750002,24.61875],[70.96982421875,24.571875],[71.04531250000002,24.429980468750003],[71.04404296875,24.400097656249997],[70.98281250000002,24.361035156249997],[70.928125,24.362353515625003],[70.88623046875,24.34375],[70.80507812500002,24.261962890625],[70.76728515625001,24.245410156250003],[70.71630859375,24.237988281249997],[70.65947265625002,24.24609375],[70.57929687500001,24.279052734375],[70.55585937500001,24.331103515625003],[70.5650390625,24.385791015625003],[70.54677734375002,24.41831054687499],[70.2890625,24.35629882812499],[70.0982421875,24.2875],[69.80517578125,24.165234375],[69.71621093750002,24.172607421875],[69.63417968750002,24.22519531249999],[69.5591796875,24.273095703124994],[69.44345703125,24.275390625],[69.23505859375001,24.268261718749997],[69.11953125000002,24.26865234374999],[69.05156250000002,24.286328125],[68.98457031250001,24.273095703124994],[68.90078125000002,24.292431640624997],[68.86347656250001,24.266503906249994],[68.82832031250001,24.26401367187499],[68.78115234375002,24.313720703125],[68.75898437500001,24.30722656249999],[68.73964843750002,24.2919921875],[68.728125,24.265625],[68.72412109375,23.96469726562499],[68.48867187500002,23.967236328124997],[68.38125,23.950878906249997],[68.28251953125002,23.927978515625],[68.1650390625,23.857324218749994],[68.11552734375002,23.753369140624997],[67.8599609375,23.90268554687499],[67.66845703125,23.810986328124997],[67.309375,24.1748046875],[67.171484375,24.756103515625],[66.70302734375002,24.8609375],[66.69863281250002,25.226318359375],[66.32421875,25.601806640625],[66.13115234375002,25.49326171874999],[66.46767578125002,25.4453125],[64.77666015625002,25.307324218749997],[64.65898437500002,25.18408203125],[64.059375,25.40292968749999],[63.556640625,25.353173828124994],[63.49140625000001,25.210839843749994],[61.56689453125,25.186328125],[61.587890625,25.20234375],[61.61542968750001,25.2861328125],[61.64013671875,25.584619140624994],[61.67138671875,25.6923828125],[61.66181640625001,25.751269531250003],[61.66865234375001,25.768994140624997],[61.73769531250002,25.82109375],[61.75439453125,25.84335937499999],[61.78076171875,25.995849609375],[61.80996093750002,26.165283203125],[61.842382812500006,26.225927734375],[62.1259765625,26.368994140625],[62.239355468750006,26.35703125],[62.31230468750002,26.490869140624994],[63.168066406250006,26.665576171874996],[63.186132812500006,26.837597656249997],[63.24160156250002,26.86474609375],[63.25039062500002,26.879248046875],[63.24208984375002,27.077685546874996],[63.30517578125,27.124560546874996],[63.30156250000002,27.15146484375],[63.25625,27.207910156249994],[63.19609375000002,27.243945312499996],[63.16679687500002,27.252490234374996],[62.75273437500002,27.265625],[62.782324218750006,27.800537109375],[62.7625,28.202050781249994],[61.88984375000001,28.546533203124994],[61.15214843750002,29.542724609375],[61.0341796875,29.663427734375],[60.843359375,29.858691406249996],[61.22441406250002,29.749414062499994],[62.0009765625,29.530419921874994],[62.4765625,29.408349609374994],[63.56757812500001,29.497998046874997],[64.09873046875,29.391943359375],[64.39375,29.544335937499994],[65.09550781250002,29.559472656249994],[66.23125,29.86572265625],[66.346875,30.802783203124996],[66.82929687500001,31.263671875],[67.45283203125001,31.234619140625],[67.737890625,31.343945312499997],[67.57822265625,31.506494140624994],[68.16103515625002,31.802978515625],[68.59765625,31.802978515625],[68.86894531250002,31.634228515624997],[69.279296875,31.936816406249996],[69.24140625000001,32.433544921875],[69.5015625,33.020068359374996],[70.26113281250002,33.289013671875],[69.8896484375,34.007275390625],[70.65400390625001,33.952294921874994],[71.05156250000002,34.049707031249994],[71.095703125,34.369433593749996],[70.965625,34.53037109375],[71.62050781250002,35.183007812499994],[71.57197265625001,35.546826171875],[71.18505859375,36.04208984375],[71.23291015625,36.12177734375],[72.24980468750002,36.734716796875],[73.08961802927895,36.86435907947333]]]},"properties":{"name":"Pakistan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-81.60327148437497,7.332812499999989],[-81.85205078125003,7.453320312500026],[-81.812158203125,7.59238281250002],[-81.72875976562494,7.62119140625002],[-81.60327148437497,7.332812499999989]]],[[[-78.89833984375002,8.27426757812502],[-78.960595703125,8.435839843749989],[-78.88325195312495,8.460253906249989],[-78.89833984375002,8.27426757812502]]],[[[-77.37421874999993,8.65830078125002],[-77.47851562499994,8.498437500000037],[-77.19599609374995,7.972460937500003],[-77.53828124999995,7.56625976562502],[-77.76191406249995,7.698828125000034],[-77.90117187499999,7.229345703125048],[-78.42158203124995,8.060986328125011],[-78.28735351562497,8.091796874999972],[-78.14189453125002,8.386083984374977],[-77.76054687499993,8.133251953124983],[-78.09946289062498,8.496972656250009],[-78.22304687500002,8.396630859374994],[-78.39921874999993,8.505664062500003],[-78.40986328124998,8.35532226562502],[-78.51406249999997,8.628173828125],[-79.08637695312495,8.997167968750034],[-79.50708007812494,8.97006835937502],[-79.68745117187493,8.850976562500009],[-79.81591796875,8.639208984375031],[-79.75043945312498,8.595507812500017],[-80.458984375,8.213867187499972],[-80.45810546875,8.077050781249994],[-80.01123046875,7.500048828125031],[-80.66669921874995,7.225683593750006],[-80.90122070312503,7.277148437500017],[-81.06386718749994,7.89975585937502],[-81.26840820312495,7.625488281250014],[-81.50415039062503,7.721191406249972],[-81.72763671875,8.137548828124977],[-82.15986328124995,8.19482421875],[-82.23544921874998,8.311035156250057],[-82.67954101562503,8.321972656249969],[-82.86611328124994,8.246337890625014],[-82.87934570312498,8.07065429687502],[-83.02734375,8.337744140624991],[-82.86162109374999,8.453515625000037],[-82.84477539062493,8.489355468749963],[-82.85571289062494,8.635302734375031],[-82.91704101562502,8.740332031250034],[-82.88198242187497,8.805322265625037],[-82.72783203125002,8.916064453125031],[-82.78305664062498,8.990283203124974],[-82.88134765625003,9.055859375000011],[-82.94033203124997,9.060107421874989],[-82.93984374999994,9.449169921875026],[-82.92504882812494,9.469042968749989],[-82.88896484374999,9.481005859375017],[-82.86015625,9.511474609375014],[-82.84399414062497,9.570800781250014],[-82.801025390625,9.591796875000028],[-82.64409179687502,9.505859375000028],[-82.56357421875003,9.576660156249972],[-82.50034179687503,9.523242187500017],[-82.37080078124993,9.428564453124991],[-82.33974609375,9.209179687499983],[-82.18813476562502,9.191748046874977],[-82.24418945312499,9.031494140625014],[-82.07788085937503,8.93486328124996],[-81.78022460937495,8.957226562499983],[-81.89448242187495,9.140429687500003],[-81.35478515624996,8.78056640624996],[-80.83867187499999,8.887207031250014],[-80.12709960937497,9.20991210937504],[-79.57729492187497,9.597851562500026],[-78.08276367187494,9.236279296874997],[-77.37421874999993,8.65830078125002]]]]},"properties":{"name":"Panama","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[-73.137353515625,-6.4658203125],[-73.75810546874999,-6.90576171875],[-73.79301757812499,-7.135058593750003],[-73.758203125,-7.172753906250009],[-73.72041015625,-7.309277343750011],[-73.964306640625,-7.37890625],[-73.95849609375,-7.506640625],[-73.98173828124999,-7.535742187500006],[-74.00205078124999,-7.556054687500009],[-73.98173828124999,-7.585058593750006],[-73.946875,-7.611230468750009],[-73.89462890624999,-7.65478515625],[-73.82207031249999,-7.738964843750011],[-73.76689453124999,-7.753515625],[-73.72041015625,-7.782519531250003],[-73.73203125,-7.875390625],[-73.54912109374999,-8.345800781250006],[-73.39814453125,-8.458984375],[-73.36040039062499,-8.479296875],[-73.351708984375,-8.51416015625],[-73.35673828124999,-8.566992187500006],[-73.30244140625,-8.654003906250011],[-73.203125,-8.719335937500006],[-73.0705078125,-8.8828125],[-72.9740234375,-8.9931640625],[-72.970361328125,-9.1201171875],[-73.08984375,-9.265722656250006],[-73.209423828125,-9.411425781250003],[-72.379052734375,-9.51015625],[-72.181591796875,-10.003710937500003],[-71.33940429687499,-9.988574218750003],[-71.11528320312499,-9.852441406250009],[-71.041748046875,-9.81875],[-70.6369140625,-9.478222656250011],[-70.60791015625,-9.463671875],[-70.54111328124999,-9.4375],[-70.57016601562499,-9.48984375],[-70.592236328125,-9.54345703125],[-70.59916992187499,-9.620507812500009],[-70.642333984375,-11.01025390625],[-70.59653320312499,-10.976855468750003],[-70.53325195312499,-10.946875],[-70.45087890625,-11.024804687500009],[-70.39228515625,-11.05859375],[-70.3419921875,-11.066699218750003],[-70.29038085937499,-11.064257812500003],[-70.22006835937499,-11.04765625],[-70.06630859375,-10.982421875],[-69.9603515625,-10.929882812500011],[-69.839794921875,-10.933398437500003],[-69.6740234375,-10.9541015625],[-69.57861328125,-10.951757812500006],[-68.68525390625,-12.501953125],[-68.97861328124999,-12.880078125000011],[-69.07412109375,-13.682812500000011],[-68.87089843749999,-14.169726562500003],[-69.35947265624999,-14.7953125],[-69.37470703125,-14.962988281250006],[-69.17246093749999,-15.236621093750003],[-69.4208984375,-15.640625],[-69.21757812499999,-16.14912109375001],[-68.8427734375,-16.337890625],[-69.03291015625,-16.47597656250001],[-69.020703125,-16.6421875],[-69.62485351562499,-17.2001953125],[-69.645703125,-17.24853515625],[-69.521923828125,-17.388964843750003],[-69.510986328125,-17.46035156250001],[-69.51108398437499,-17.5048828125],[-69.5109375,-17.50605468750001],[-69.58642578125,-17.5732421875],[-69.684765625,-17.64980468750001],[-69.85209960937499,-17.70380859375001],[-69.80258789062499,-17.990234375],[-69.92636718749999,-18.2060546875],[-70.41826171874999,-18.34560546875001],[-71.33696289062499,-17.68251953125001],[-71.5322265625,-17.29433593750001],[-72.46767578125,-16.708105468750006],[-73.727685546875,-16.20166015625],[-75.104248046875,-15.411914062500003],[-75.533642578125,-14.89921875],[-75.93388671874999,-14.63359375],[-76.37646484375,-13.863085937500003],[-76.259228515625,-13.802832031250006],[-76.2236328125,-13.371191406250006],[-76.83212890624999,-12.348730468750006],[-77.152734375,-12.060351562500003],[-77.2203125,-11.663378906250003],[-77.633203125,-11.287792968750011],[-77.736083984375,-10.83671875],[-78.18559570312499,-10.089062500000011],[-78.76225585937499,-8.616992187500003],[-79.37724609374999,-7.835546875],[-79.99497070312499,-6.768945312500009],[-81.142041015625,-6.056738281250006],[-81.164306640625,-5.875292968750003],[-80.9306640625,-5.8408203125],[-80.88193359374999,-5.635058593750003],[-81.33662109375,-4.66953125],[-81.283203125,-4.322265625],[-80.503662109375,-3.49609375],[-80.324658203125,-3.387890625000011],[-80.24375,-3.576757812500006],[-80.19414062499999,-3.905859375],[-80.23051757812499,-3.924023437500011],[-80.26689453124999,-3.948828125],[-80.30327148437499,-4.005078125000011],[-80.43720703125,-3.978613281250006],[-80.49013671875,-4.010058593750003],[-80.510009765625,-4.069531250000011],[-80.49345703124999,-4.119140625],[-80.4884765625,-4.16552734375],[-80.453759765625,-4.205175781250006],[-80.35288085937499,-4.20849609375],[-80.44384765625,-4.335839843750009],[-80.4884765625,-4.393652343750006],[-80.47856445312499,-4.430078125],[-80.42416992187499,-4.46142578125],[-80.38349609375,-4.463671875],[-80.293359375,-4.416796875],[-80.1974609375,-4.31103515625],[-80.13955078125,-4.296093750000011],[-80.06352539062499,-4.327539062500009],[-79.962890625,-4.390332031250011],[-79.8451171875,-4.445898437500006],[-79.797265625,-4.476367187500003],[-79.71098632812499,-4.467578125],[-79.63852539062499,-4.454882812500003],[-79.57768554687499,-4.500585937500006],[-79.51616210937499,-4.539160156250006],[-79.501904296875,-4.670605468750011],[-79.45576171875,-4.766210937500006],[-79.3994140625,-4.840039062500011],[-79.33095703125,-4.927832031250006],[-79.26811523437499,-4.957617187500006],[-79.186669921875,-4.958203125000011],[-79.07626953124999,-4.990625],[-79.03330078124999,-4.969140625],[-78.995263671875,-4.908007812500003],[-78.97539062499999,-4.873242187500011],[-78.919189453125,-4.8583984375],[-78.92578125,-4.770703125000011],[-78.9076171875,-4.714453125],[-78.8615234375,-4.6650390625],[-78.68603515625,-4.562402343750009],[-78.64799804687499,-4.248144531250006],[-78.345361328125,-3.397363281250009],[-78.240380859375,-3.472558593750009],[-77.860595703125,-2.981640625000011],[-76.6791015625,-2.562597656250006],[-76.089794921875,-2.133105468750003],[-75.570556640625,-1.53125],[-75.42041015625,-0.962207031250003],[-75.40805664062499,-0.92431640625],[-75.24960937499999,-0.951855468750011],[-75.259375,-0.590136718750003],[-75.42470703125,-0.408886718750011],[-75.49106445312499,-0.248339843750003],[-75.56059570312499,-0.200097656250009],[-75.63203125,-0.157617187500009],[-75.62626953124999,-0.122851562500003],[-75.340478515625,-0.1421875],[-75.13837890625,-0.050488281250011],[-74.8017578125,-0.200097656250009],[-74.78046875,-0.24453125],[-74.75537109375,-0.298632812500003],[-74.691650390625,-0.335253906250003],[-74.616357421875,-0.370019531250009],[-74.555078125,-0.429882812500011],[-74.5138671875,-0.470117187500009],[-74.46518554687499,-0.517675781250006],[-74.41787109375,-0.580664062500006],[-74.334423828125,-0.850878906250003],[-74.28388671875,-0.927832031250006],[-74.24638671874999,-0.970605468750009],[-74.05439453125,-1.028613281250003],[-73.98681640625,-1.09814453125],[-73.926953125,-1.125195312500011],[-73.86318359375,-1.196679687500009],[-73.664306640625,-1.248828125],[-73.4962890625,-1.693066406250011],[-73.19697265625,-1.830273437500011],[-73.1544921875,-2.278222656250009],[-72.9896484375,-2.339746093750009],[-72.94111328125,-2.39404296875],[-72.21845703125,-2.400488281250006],[-71.98427734375,-2.3265625],[-71.93247070312499,-2.288671875],[-71.86728515624999,-2.227734375000011],[-71.802734375,-2.166308593750003],[-71.75253906249999,-2.152734375],[-71.55947265625,-2.22421875],[-71.39697265625,-2.334082031250006],[-71.19638671874999,-2.313085937500006],[-71.11337890624999,-2.245410156250003],[-71.027294921875,-2.225781250000011],[-70.96855468749999,-2.206835937500003],[-70.70537109374999,-2.341992187500011],[-70.64799804687499,-2.40576171875],[-70.57587890625,-2.418261718750003],[-70.29462890625,-2.552539062500003],[-70.24443359374999,-2.606542968750006],[-70.16474609375,-2.639843750000011],[-70.095849609375,-2.658203125],[-70.735107421875,-3.781542968750003],[-70.5296875,-3.866406250000011],[-70.48583984375,-3.869335937500011],[-70.42109375,-3.849609375],[-70.37919921874999,-3.81875],[-70.339501953125,-3.814355468750009],[-70.2984375,-3.84423828125],[-70.24028320312499,-3.882714843750009],[-70.16752929687499,-4.050195312500009],[-70.0171875,-4.162011718750009],[-69.96591796874999,-4.2359375],[-69.97202148437499,-4.301171875],[-70.00395507812499,-4.327246093750006],[-70.05332031249999,-4.333105468750006],[-70.12880859375,-4.28662109375],[-70.23916015625,-4.301171875],[-70.31689453125,-4.246972656250009],[-70.34365234375,-4.193652343750003],[-70.40463867187499,-4.150097656250011],[-70.5306640625,-4.167578125],[-70.72158203125,-4.158886718750011],[-70.79951171875,-4.17333984375],[-70.97368164062499,-4.350488281250009],[-71.8447265625,-4.50439453125],[-72.256787109375,-4.748925781250009],[-72.35283203124999,-4.786035156250009],[-72.468994140625,-4.901269531250009],[-72.608349609375,-5.009570312500003],[-72.69873046875,-5.0671875],[-72.83193359375,-5.09375],[-72.88706054687499,-5.122753906250011],[-72.9798828125,-5.634863281250006],[-73.16289062499999,-5.933398437500003],[-73.209375,-6.028710937500009],[-73.235546875,-6.0984375],[-73.137353515625,-6.4658203125]]]},"properties":{"name":"Peru","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[120.250390625,5.256591796875043],[119.82148437500004,5.06953125000004],[120.1652343750001,5.332421875000037],[120.250390625,5.256591796875043]]],[[[121.159375,6.075634765625011],[121.41103515625005,5.939843749999966],[121.29443359374997,5.869970703125034],[120.8763671875,5.95263671875],[121.159375,6.075634765625011]]],[[[122.09287109375012,6.428320312500006],[121.95917968750004,6.415820312500045],[121.83203125000003,6.664062499999986],[122.0583007812501,6.740722656249972],[122.32353515625002,6.602246093750011],[122.09287109375012,6.428320312500006]]],[[[122.93710937500006,7.409130859374983],[122.80468750000003,7.315966796875017],[122.82216796875,7.428466796875014],[122.93710937500006,7.409130859374983]]],[[[117.07988281250007,7.883398437499977],[117.02832031249997,7.807519531249966],[116.96953125000007,7.894921875],[116.9935546875,8.050537109375014],[117.07705078125,8.069140624999974],[117.07988281250007,7.883398437499977]]],[[[117.35527343750002,8.21464843749996],[117.28701171875,8.191015625000034],[117.28085937500006,8.314990234374974],[117.35527343750002,8.21464843749996]]],[[[124.80664062500003,9.142626953125003],[124.66582031250002,9.132324218750043],[124.65332031250003,9.225830078125],[124.80664062500003,9.142626953125003]]],[[[123.69765625000005,9.237304687500028],[123.61445312500004,9.103320312499989],[123.49345703125002,9.192089843750054],[123.69765625000005,9.237304687500028]]],[[[126.00595703125006,9.320947265625009],[126.19335937499997,9.276708984374963],[126.30458984375,8.952050781249994],[126.13955078125005,8.59565429687504],[126.36533203125012,8.483886718750014],[126.45869140625004,8.20283203125004],[126.43535156250002,7.832812499999974],[126.57011718750002,7.677246093749986],[126.58154296875003,7.247753906249969],[126.1920898437501,6.852539062500014],[126.18935546875,6.309667968749991],[125.82441406250004,7.333300781249989],[125.68925781250007,7.263037109374977],[125.38066406250007,6.689941406250014],[125.58847656250012,6.465771484374997],[125.66796874999997,5.97866210937498],[125.34648437500002,5.598974609374977],[125.23154296875006,6.069531250000011],[124.92734375000006,5.875341796874977],[124.21279296875,6.233251953124977],[124.078125,6.404443359375037],[123.98525390625,6.993701171875003],[124.20664062500006,7.396435546874983],[123.66582031250002,7.817773437500023],[123.49306640625,7.80791015624996],[123.39091796875007,7.407519531250017],[123.09667968749997,7.700439453125],[122.8429687500001,7.529296875000043],[122.79179687500002,7.72246093749996],[122.61621093749997,7.763134765624983],[122.14248046875,6.949658203124997],[121.96425781250005,6.96821289062504],[121.92460937500002,7.199511718750003],[122.24335937500004,7.945117187500031],[122.91113281250003,8.156445312499997],[123.05058593750002,8.433935546875048],[123.43457031249997,8.70332031250004],[123.84921875000006,8.432714843749977],[123.79941406250006,8.049121093749989],[124.19765625,8.229541015624974],[124.40488281250006,8.599853515625014],[124.7311523437501,8.562988281250043],[124.86894531250002,8.972265625000034],[125.141015625,8.86875],[125.20966796875004,9.027148437500017],[125.49873046875004,9.014746093749977],[125.47128906250006,9.756787109374983],[126.00595703125006,9.320947265625009]]],[[[126.059375,9.766210937500034],[125.99121093750003,9.838525390625023],[126.07382812500006,10.059228515625051],[126.1725585937501,9.79995117187498],[126.059375,9.766210937500034]]],[[[124.59384765625006,9.787207031249963],[124.1224609375,9.599316406249969],[123.93564453125012,9.623974609375011],[123.81718750000002,9.817382812499986],[124.17285156250003,10.135205078124983],[124.33574218750002,10.159912109375043],[124.57714843749997,10.026708984374991],[124.59384765625006,9.787207031249963]]],[[[125.69023437500007,9.914453125000037],[125.49482421875004,10.118701171875003],[125.66679687500002,10.440136718750026],[125.69023437500007,9.914453125000037]]],[[[119.91621093750004,10.485986328125037],[119.79316406250004,10.455273437499997],[119.85205078124997,10.64013671875],[120.00839843750012,10.570117187500031],[119.91621093750004,10.485986328125037]]],[[[122.64951171875012,10.472705078125003],[122.53837890625002,10.424951171875037],[122.5375,10.607568359375023],[122.70126953125006,10.740625],[122.64951171875012,10.472705078125003]]],[[[123.13085937500003,9.064111328124994],[122.99472656250006,9.058837890624986],[122.8666015625,9.319824218750043],[122.5625,9.482812500000037],[122.39951171875006,9.823046874999989],[122.47148437500007,9.961523437500034],[122.85556640625006,10.0869140625],[122.81699218750012,10.503808593750023],[122.98330078125,10.886621093750037],[123.25664062500007,10.99394531249996],[123.51064453125005,10.923046875],[123.5675781250001,10.780761718750057],[123.16201171875,9.864257812500028],[123.1498046875,9.606152343750026],[123.32050781250004,9.27294921875],[123.13085937500003,9.064111328124994]]],[[[123.37031250000004,9.449609375000023],[123.38623046874997,9.967089843750017],[124.03886718750002,11.273535156249991],[124.00498046875012,10.40009765625004],[123.70048828125007,10.128320312500009],[123.37031250000004,9.449609375000023]]],[[[123.75703125000004,11.28330078125002],[123.815625,11.15073242187502],[123.73671875,11.151464843749991],[123.75703125000004,11.28330078125002]]],[[[117.31113281250012,8.439599609375051],[117.21855468750007,8.367285156249963],[117.34990234375002,8.713574218749997],[119.22382812500004,10.477294921875043],[119.30566406250003,10.9736328125],[119.55332031250012,11.31352539062496],[119.52666015625002,10.953173828125003],[119.68691406250005,10.500341796875034],[119.36933593750004,10.327294921875037],[119.19150390625012,10.061083984374989],[118.78212890625005,9.91611328125002],[118.4349609375,9.256005859375009],[117.31113281250012,8.439599609375051]]],[[[119.86142578125006,11.52534179687504],[119.83066406250012,11.375683593750011],[119.72998046874997,11.431933593750017],[119.86142578125006,11.52534179687504]]],[[[124.574609375,11.343066406250031],[124.92998046875002,11.372851562499974],[125.02656250000004,11.21171875],[125.01318359374997,10.785693359374989],[125.26845703125005,10.307714843750048],[125.14257812499997,10.189453125000028],[124.9875,10.36757812499998],[125.02656250000004,10.033105468749966],[124.78076171874997,10.16806640625002],[124.78671875000012,10.781396484375009],[124.66269531250006,10.961962890625017],[124.44550781250004,10.923583984375014],[124.33066406250012,11.535205078125003],[124.574609375,11.343066406250031]]],[[[124.60839843750003,11.492187500000043],[124.48349609375006,11.485839843749986],[124.36035156250003,11.665917968749994],[124.5109375000001,11.687109375000048],[124.60839843750003,11.492187500000043]]],[[[122.49619140625006,11.615087890625034],[122.83808593750004,11.595654296874983],[122.89453125000003,11.44130859374998],[123.15830078125012,11.53554687499999],[123.11953125,11.286816406250026],[122.8029296875001,10.99003906249996],[122.76992187500005,10.823828125000034],[121.95400390625,10.444384765625003],[122.10351562499997,11.64291992187502],[121.91601562499997,11.854345703125006],[122.02919921875005,11.895410156250023],[122.49619140625006,11.615087890625034]]],[[[120.03876953125004,11.703320312499969],[119.94492187500006,11.690722656249989],[119.86093750000006,11.953955078124963],[120.03593750000002,11.917236328125028],[120.03876953125004,11.703320312499969]]],[[[120.1,12.167675781249983],[120.22822265625004,12.219824218750034],[120.31455078125012,12.012402343749969],[120.01054687500002,12.008251953125011],[119.88574218749997,12.299853515625003],[120.1,12.167675781249983]]],[[[122.65449218750004,12.309033203125011],[122.42294921875006,12.455078125],[122.60361328125006,12.49160156249998],[122.65449218750004,12.309033203125011]]],[[[125.23955078125002,12.527880859375003],[125.32021484375,12.321826171875031],[125.53564453125003,12.191406250000028],[125.49179687500006,11.594335937499977],[125.57353515625002,11.238232421874997],[125.73564453125002,11.049609375000017],[125.23339843749997,11.145068359375017],[125.03427734375012,11.341259765625026],[124.91699218750003,11.558398437500031],[124.99501953125,11.764941406250003],[124.445703125,12.152783203124969],[124.29472656250007,12.569335937500014],[125.23955078125002,12.527880859375003]]],[[[123.71660156250007,12.287353515625028],[124.04033203125002,11.966796875],[124.04550781250012,11.752441406250028],[123.47373046875006,12.21665039062502],[123.15781250000012,11.925634765624963],[123.23642578125012,12.583496093750057],[123.71660156250007,12.287353515625028]]],[[[122.09404296875002,12.354882812500023],[122.01396484375002,12.105615234375037],[121.9232421875,12.331298828125014],[122.00156250000006,12.598535156250009],[122.14501953124997,12.652636718750017],[122.09404296875002,12.354882812500023]]],[[[123.77539062499997,12.453906250000031],[123.77910156250002,12.366259765625031],[123.62148437500005,12.67490234375002],[123.77539062499997,12.453906250000031]]],[[[123.28183593750006,12.85341796874998],[123.36718750000003,12.70083007812498],[122.95751953124997,13.107177734374986],[123.28183593750006,12.85341796874998]]],[[[120.70439453125002,13.479492187499986],[121.20273437500006,13.432324218749969],[121.52275390625007,13.131201171874991],[121.540625,12.63818359375],[121.39433593750002,12.300585937499974],[121.23671875000005,12.218798828125003],[120.92216796875002,12.51162109374998],[120.65136718749997,13.169140625],[120.33847656250012,13.412353515624986],[120.40126953125,13.517041015624997],[120.70439453125002,13.479492187499986]]],[[[121.91484375000002,13.540332031250031],[122.11455078125002,13.463183593750031],[122.00488281249997,13.204980468750009],[121.82919921875006,13.328613281249972],[121.91484375000002,13.540332031250031]]],[[[124.35361328125006,13.632226562500009],[124.17539062500012,13.531542968750017],[124.03886718750002,13.663134765625003],[124.22490234375007,14.077587890624969],[124.41718750000004,13.871044921874997],[124.35361328125006,13.632226562500009]]],[[[122.03349609375002,15.005029296875009],[121.93300781250005,14.656054687500045],[121.83984374999997,15.038134765625003],[122.03349609375002,15.005029296875009]]],[[[121.10156249999997,18.615283203125017],[121.84560546875,18.29541015625003],[122.03847656250005,18.32792968749999],[122.14667968750004,18.486572265625],[122.26552734375005,18.458837890625034],[122.15234374999997,17.664404296875006],[122.51914062500012,17.124853515625034],[122.13515625000005,16.18481445312503],[121.59531250000012,15.933251953125023],[121.60703125000006,15.669824218749994],[121.39228515625004,15.324414062499969],[121.69541015625006,14.7373046875],[121.62792968749997,14.581152343749977],[121.76660156249997,14.16806640625002],[122.21171875000002,13.930175781250057],[122.2875,13.996191406250006],[122.19970703125003,14.148046875000034],[122.6271484375001,14.317529296875009],[122.93417968750012,14.18808593750002],[123.101953125,13.750244140624986],[123.29697265625012,13.836425781250043],[123.32031249999997,14.061669921875023],[123.81572265625002,13.837109375000011],[123.80625000000012,13.721728515625045],[123.54960937500007,13.645751953125014],[123.81923828125,13.269482421875011],[123.78515625000003,13.110546875000054],[124.14277343750004,13.035791015625009],[124.0597656250001,12.567089843749997],[123.87783203125005,12.689697265625014],[123.94853515625007,12.916406250000023],[123.31093750000005,13.044091796875009],[123.16328125000004,13.44174804687502],[122.59521484374997,13.90761718749998],[122.46796875000004,13.886718749999986],[122.66787109375,13.395361328124991],[122.59990234375002,13.194140625000031],[122.37656250000012,13.520605468750006],[121.77792968750006,13.93764648437498],[121.50107421875006,13.8421875],[121.344140625,13.649121093749997],[121.09550781250007,13.679492187500045],[120.84072265625,13.884716796875026],[120.637109375,13.804492187500031],[120.61679687500006,14.188037109375003],[120.9220703125001,14.493115234374983],[120.94130859375,14.645068359375031],[120.58369140625004,14.88125],[120.58867187500002,14.483105468749983],[120.43876953125002,14.453369140624972],[120.25078125000002,14.793310546875034],[120.08212890625012,14.851074218749986],[119.77255859375012,16.25512695312503],[119.83076171875004,16.326562500000023],[120.15976562500012,16.047656250000045],[120.36875,16.109570312499955],[120.35839843749997,17.63818359375],[120.59970703125012,18.507861328125074],[121.10156249999997,18.615283203125017]]],[[[121.92167968750007,18.89472656250001],[121.82519531250003,18.842724609374983],[121.94335937500003,19.010449218749955],[121.92167968750007,18.89472656250001]]],[[[121.52089843750005,19.361962890624994],[121.53125,19.271337890625006],[121.37460937500006,19.356298828124977],[121.52089843750005,19.361962890624994]]]]},"properties":{"name":"Philippines","childNum":37}},{"geometry":{"type":"Polygon","coordinates":[[[134.5954101562501,7.382031249999969],[134.51572265625012,7.525781250000037],[134.65117187500002,7.712109374999983],[134.5954101562501,7.382031249999969]]]},"properties":{"name":"Palau","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[153.53613281249997,-11.476171874999949],[153.75986328125006,-11.586328125],[153.55371093749997,-11.630566406249969],[153.28681640625004,-11.516992187500009],[153.20361328124997,-11.32412109374998],[153.53613281249997,-11.476171874999949]]],[[[154.28076171874997,-11.36142578125002],[154.12119140625006,-11.425683593749966],[154.02343750000003,-11.347949218750031],[154.28076171874997,-11.36142578125002]]],[[[150.89873046875002,-10.565332031250023],[150.88466796875,-10.643457031250037],[150.78574218750006,-10.603417968749966],[150.89873046875002,-10.565332031250023]]],[[[151.08095703125,-10.020117187499963],[151.29648437500012,-9.956738281250026],[151.230859375,-10.194726562500009],[150.95917968750004,-10.092578124999989],[150.77607421875004,-9.70908203125002],[151.08095703125,-10.020117187499963]]],[[[150.52841796875006,-9.34658203124998],[150.78867187500006,-9.417968749999957],[150.89404296875003,-9.667480468749986],[150.43623046875004,-9.624609374999949],[150.5084960937501,-9.536132812499957],[150.43730468750007,-9.359960937500034],[150.52841796875006,-9.34658203124998]]],[[[150.3454101562501,-9.493847656249955],[150.10976562500005,-9.361914062499991],[150.20830078125002,-9.206347656250003],[150.32011718750007,-9.264160156249972],[150.3454101562501,-9.493847656249955]]],[[[152.63095703125012,-8.959375],[152.95292968750007,-9.07011718749996],[152.96689453125006,-9.208984375000014],[152.51513671874997,-9.009863281250034],[152.63095703125012,-8.959375]]],[[[151.10683593750005,-8.733496093749949],[151.12412109375012,-8.804882812500011],[151.00498046875006,-8.523828124999952],[151.117578125,-8.41884765624998],[151.10683593750005,-8.733496093749949]]],[[[143.58681640625005,-8.481738281250003],[143.321875,-8.367578125],[143.5814453125,-8.390917968749974],[143.58681640625005,-8.481738281250003]]],[[[148.02578125,-5.826367187500011],[147.78105468750007,-5.627246093749946],[147.7946289062501,-5.492382812500011],[148.05478515625006,-5.61152343750004],[148.02578125,-5.826367187500011]]],[[[155.95761718750006,-6.686816406249989],[155.71933593750012,-6.862792968749957],[155.34404296875007,-6.721679687499986],[155.20214843750003,-6.3076171875],[154.75927734375003,-5.931347656249997],[154.72929687500002,-5.444433593750006],[155.09384765625006,-5.620214843750034],[155.46699218750004,-6.145117187500034],[155.82255859375002,-6.38046875000002],[155.95761718750006,-6.686816406249989]]],[[[147.17626953124997,-5.431933593749946],[147.00585937499997,-5.30703125],[147.1310546875001,-5.190820312500037],[147.17626953124997,-5.431933593749946]]],[[[154.64726562500002,-5.43271484375002],[154.54003906250003,-5.11083984375],[154.63261718750007,-5.013867187499955],[154.72714843750006,-5.218066406249989],[154.64726562500002,-5.43271484375002]]],[[[146.01933593750007,-4.726171874999963],[145.88359375000007,-4.66748046875],[145.9958007812501,-4.539257812499983],[146.01933593750007,-4.726171874999963]]],[[[151.915625,-4.296777343749966],[152.11718749999997,-4.212207031249974],[152.40566406250005,-4.340722656249952],[152.35117187500006,-4.82216796874998],[151.98369140625007,-5.07441406250004],[152.14296875,-5.357031249999963],[152.07705078125,-5.458300781249989],[151.86542968750004,-5.564843750000023],[151.51513671874997,-5.552343749999963],[151.22929687500002,-5.919921874999986],[150.47353515625,-6.263378906249969],[149.65253906250004,-6.290429687499966],[149.38232421874997,-6.078125],[149.0990234375,-6.116992187499989],[148.33720703125007,-5.669433593750014],[148.43203125,-5.471777343749991],[149.35888671875003,-5.583984375000014],[149.8314453125,-5.524121093749997],[149.96279296875,-5.447753906249972],[150.0900390625001,-5.011816406249977],[150.1703125,-5.070605468749974],[150.0724609375001,-5.309570312499986],[150.18310546874997,-5.523632812499983],[150.90029296875005,-5.447167968750037],[151.32656250000005,-4.96035156249998],[151.67119140625007,-4.88330078125],[151.59306640625007,-4.200781249999949],[151.915625,-4.296777343749966]]],[[[152.67060546875004,-3.13339843750002],[152.64619140625004,-3.221191406249957],[152.54326171875002,-3.095605468749952],[152.63876953125012,-3.042773437500031],[152.67060546875004,-3.13339843750002]]],[[[140.97617187500012,-9.11875],[140.97519531250006,-6.90537109375002],[140.86230468749997,-6.740039062499989],[140.975,-6.346093750000023],[140.97353515625,-2.803417968750026],[140.97343750000007,-2.609765625],[142.90517578125,-3.32070312499998],[143.50898437500004,-3.431152343750014],[144.06640625000003,-3.80517578125],[144.4777343750001,-3.82529296875002],[145.08779296875,-4.349121093749972],[145.33457031250012,-4.385253906249972],[145.7669921875,-4.823046874999989],[145.74521484375012,-5.402441406249977],[147.56669921875002,-6.056933593750003],[147.80205078125002,-6.31523437499996],[147.84550781250007,-6.662402343749989],[147.11914062499997,-6.721679687499986],[146.95361328124997,-6.834082031249963],[147.19003906250012,-7.378125],[148.12675781250007,-8.103613281249963],[148.246875,-8.554296875000034],[148.45117187499997,-8.694531250000011],[148.58310546875006,-9.051757812499957],[149.19833984375006,-9.03125],[149.26318359374997,-9.497851562499974],[150.01103515625007,-9.688183593750026],[149.76123046874997,-9.805859375000011],[149.87441406250005,-10.012988281250031],[150.84951171875,-10.236035156249997],[150.44609375000007,-10.30732421875004],[150.6471679687501,-10.517968749999966],[150.31992187500012,-10.654882812499963],[150.0167968750001,-10.577148437500028],[149.75410156250004,-10.353027343750028],[147.76865234375012,-10.070117187500031],[147.01718750000006,-9.38789062500004],[146.96376953125,-9.059570312499943],[146.63085937499997,-8.951171874999972],[146.03320312499997,-8.076367187500011],[144.97382812500004,-7.802148437500009],[144.86425781249997,-7.631542968749983],[144.50986328125006,-7.567382812499972],[144.14287109375007,-7.757226562500009],[143.65488281250012,-7.460351562500009],[143.94228515625005,-7.944238281250009],[143.8333984375,-8.029101562499974],[143.51816406250006,-8.000683593749955],[143.61376953125003,-8.200390624999969],[142.52412109375004,-8.32167968749998],[142.34746093750002,-8.167480468750014],[142.20683593750002,-8.195800781250014],[142.47480468750004,-8.369433593750031],[142.79794921875006,-8.345019531250031],[143.11181640624997,-8.474511718750037],[143.37724609375007,-8.762207031250028],[143.36621093750003,-8.961035156250034],[142.6471679687501,-9.327832031249969],[142.22958984375012,-9.169921874999957],[141.13320312500005,-9.221289062500034],[140.97617187500012,-9.11875]]],[[[152.96582031249997,-4.756347656249986],[152.89169921875006,-4.832421875000023],[152.73994140625004,-4.635839843750034],[152.66816406250004,-4.131835937500028],[152.27939453125006,-3.582421875],[151.06679687500005,-2.829003906249994],[150.74609374999997,-2.73886718750002],[150.8253906250001,-2.572949218749969],[152.03291015625004,-3.25136718749998],[153.01679687500004,-4.105664062500026],[153.1325195312501,-4.352441406250037],[152.96582031249997,-4.756347656249986]]],[[[150.43662109375012,-2.66181640625004],[150.16572265625004,-2.660253906249991],[149.96162109375004,-2.473828125000026],[150.22714843750006,-2.384179687499966],[150.42949218750007,-2.47041015625004],[150.43662109375012,-2.66181640625004]]],[[[147.06757812500004,-1.96015625],[147.43808593750012,-2.05898437499998],[147.20634765625007,-2.181933593749974],[146.54648437500012,-2.20859375],[146.65625,-1.97402343749998],[147.06757812500004,-1.96015625]]],[[[149.76542968750007,-1.553027343750017],[149.54589843749997,-1.471679687499957],[149.58095703125005,-1.353222656249983],[149.76542968750007,-1.553027343750017]]]]},"properties":{"name":"Papua New Guinea","childNum":21}},{"geometry":{"type":"Polygon","coordinates":[[[23.484667968750017,53.939794921875],[23.915429687500023,52.770263671875],[23.175097656250017,52.28662109375],[23.652441406250006,52.040380859375],[23.605273437500017,51.517919921875],[23.664453125000023,51.31005859375],[24.095800781250006,50.87275390625],[23.9970703125,50.809375],[24.089941406250006,50.53046875],[23.97265625,50.410058593749994],[23.711718750000017,50.37734375],[23.03632812500001,49.899072265624994],[22.706152343750006,49.606201171875],[22.6494140625,49.539013671875],[22.66064453125,49.483691406249996],[22.71992187500001,49.353808593749996],[22.732421875,49.295166015625],[22.705664062500006,49.171191406249996],[22.847070312500023,49.08125],[22.538671875,49.072705078125],[22.473046875000023,49.081298828125],[22.020117187500006,49.209521484374996],[21.6396484375,49.411962890625],[21.079394531250017,49.418261718749996],[20.868457031250017,49.314697265625],[20.36298828125001,49.38525390625],[20.0576171875,49.181298828124994],[19.756640625000017,49.204394531249996],[19.77392578125,49.37216796875],[19.44160156250001,49.597705078124996],[19.1494140625,49.4],[18.83222656250001,49.510791015624996],[18.562402343750023,49.879345703125],[18.0283203125,50.03525390625],[17.874804687500017,49.972265625],[17.627050781250006,50.11640625],[17.702246093750006,50.307177734374996],[17.41523437500001,50.254785156249994],[16.88007812500001,50.427050781249996],[16.989648437500023,50.2369140625],[16.63916015625,50.1021484375],[16.210351562500023,50.423730468749994],[16.419726562500017,50.573632812499994],[16.2822265625,50.655615234375],[16.007226562500023,50.611621093749996],[14.99375,51.01435546875],[14.98291015625,50.886572265625],[14.895800781250017,50.861376953124996],[14.809375,50.858984375],[14.814257812500017,50.871630859374996],[14.91748046875,51.008740234375],[14.9638671875,51.095117187499994],[14.935546875,51.435351562499996],[14.905957031250011,51.463330078125],[14.724707031250006,51.523876953125],[14.7109375,51.544921875],[14.738671875000023,51.6271484375],[14.601660156250006,51.832373046875],[14.752539062500006,52.081835937499996],[14.679882812500011,52.25],[14.615625,52.277636718749996],[14.573925781250011,52.31416015625],[14.554589843750023,52.359667968749996],[14.569726562500023,52.431103515625],[14.619433593750017,52.528515625],[14.514062500000023,52.64560546875],[14.253710937500017,52.782519531249996],[14.128613281250011,52.878222656249996],[14.138867187500011,52.932861328125],[14.293164062500011,53.0267578125],[14.368554687500023,53.10556640625],[14.410937500000017,53.199023437499996],[14.412304687500011,53.216748046875],[14.41455078125,53.283496093749996],[14.258886718750006,53.729638671875],[14.58349609375,53.63935546875],[14.558398437500017,53.823193359375],[14.21142578125,53.950341796875],[16.186328125000017,54.290380859375],[16.55976562500001,54.55380859375],[18.32343750000001,54.838183593749996],[18.75927734375,54.6845703125],[18.43623046875001,54.7447265625],[18.83642578125,54.369580078125],[19.604394531250023,54.4591796875],[20.20820312500001,54.420751953125],[22.16845703125,54.35986328125],[22.731835937500023,54.35009765625],[22.766210937500006,54.356787109375],[22.82373046875,54.395800781249996],[22.893945312500023,54.39052734375],[22.97675781250001,54.366357421875],[23.015527343750023,54.34833984375],[23.04218750000001,54.30419921875],[23.0875,54.299462890625],[23.170312500000023,54.2814453125],[23.282324218750006,54.24033203125],[23.3701171875,54.200488281249996],[23.45361328125,54.14345703125],[23.484667968750017,53.939794921875]]]},"properties":{"name":"Poland","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-65.42558593749999,18.105615234374994],[-65.57221679687493,18.137304687499977],[-65.29487304687501,18.133349609375045],[-65.42558593749999,18.105615234374994]]],[[[-66.12939453125003,18.444921875000034],[-65.62880859375,18.381396484375045],[-65.62084960937497,18.242333984374966],[-65.97080078124995,17.974365234375],[-67.196875,17.994189453125045],[-67.2640625,18.364599609375006],[-67.15864257812501,18.499218749999983],[-66.12939453125003,18.444921875000034]]]]},"properties":{"name":"Puerto Rico","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[130.52695312500012,42.535400390625],[130.68730468750007,42.30253906249999],[130.2357421875,42.183203125000034],[129.75634765624997,41.712255859375006],[129.70869140625004,40.857324218749994],[129.34111328125002,40.72631835937506],[128.51123046874997,40.130224609375006],[127.56816406250002,39.78198242187503],[127.39453125000003,39.207910156249966],[127.78613281250003,39.084130859374966],[128.37460937500012,38.6234375],[128.03896484375,38.30854492187498],[127.09033203125003,38.28388671875001],[126.63388671875012,37.78183593750006],[126.36992187500007,37.87836914062501],[126.11669921875003,37.74291992187503],[125.76914062500006,37.98535156250003],[125.35781250000005,37.72480468749998],[125.31074218750004,37.843505859375],[124.98876953124997,37.93144531249999],[125.2067382812501,38.08154296875],[124.69091796874997,38.12919921875002],[125.06738281250003,38.556738281250006],[125.55449218750002,38.68623046875001],[125.16884765625,38.80551757812506],[125.40966796875003,39.28837890625002],[125.36083984375003,39.52661132812497],[124.77529296875,39.75805664062506],[124.63828125000006,39.61508789062506],[124.36210937500002,40.004052734374994],[124.8893554687501,40.459814453125006],[125.98906250000002,40.904638671875034],[126.74306640625,41.724853515625],[126.95478515625004,41.76948242187501],[127.17968750000003,41.531347656250006],[128.14941406249997,41.38774414062496],[128.28925781250004,41.60742187500006],[128.04521484375007,41.9875],[128.92343750000006,42.038232421874966],[129.3136718750001,42.41357421874997],[129.69785156250012,42.448144531249994],[129.89824218750002,42.998144531250034],[130.24033203125006,42.891796874999955],[130.24667968750012,42.744824218749955],[130.52695312500012,42.535400390625]]]},"properties":{"name":"Dem. Rep. Korea","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-17.190869140624926,32.86860351562498],[-16.693261718749966,32.75800781250001],[-17.018261718749926,32.66279296874998],[-17.226025390624983,32.76684570312503],[-17.190869140624926,32.86860351562498]]],[[[-25.64897460937499,37.840917968750006],[-25.18193359374996,37.837890625],[-25.19072265624999,37.764355468749955],[-25.73447265624992,37.76289062500001],[-25.845898437499983,37.89404296875],[-25.64897460937499,37.840917968750006]]],[[[-28.14726562499996,38.45268554687502],[-28.064794921875034,38.412744140624966],[-28.454492187500023,38.40864257812504],[-28.54882812499997,38.51855468750003],[-28.14726562499996,38.45268554687502]]],[[[-28.641308593749983,38.525],[-28.842041015625,38.5984375],[-28.69775390625,38.638476562500045],[-28.641308593749983,38.525]]],[[[-27.07524414062496,38.643457031249994],[-27.38593750000001,38.765820312499955],[-27.127001953125017,38.78984375],[-27.07524414062496,38.643457031249994]]],[[[-31.137109374999937,39.40693359375001],[-31.282958984375,39.39409179687496],[-31.260839843750034,39.49677734375001],[-31.137109374999937,39.40693359375001]]],[[[-7.406152343749937,37.17944335937497],[-7.834130859374994,37.005712890625034],[-8.597656249999943,37.12133789062506],[-8.997802734375028,37.03227539062502],[-8.814160156249983,37.43081054687502],[-8.881103515624943,38.44667968750005],[-8.668310546874949,38.42431640625003],[-8.798876953124989,38.518164062500034],[-9.213281249999937,38.44809570312498],[-9.250390624999966,38.65673828125003],[-9.021484374999943,38.746875],[-8.79160156249992,39.07817382812502],[-9.13579101562496,38.74277343749998],[-9.35673828124996,38.697900390624994],[-9.479736328124972,38.79877929687501],[-9.374755859374972,39.338281249999966],[-8.837841796874926,40.11567382812498],[-8.684619140624989,40.75253906250006],[-8.755419921874932,41.69838867187502],[-8.887597656249937,41.76459960937501],[-8.777148437500017,41.941064453124994],[-8.266064453124983,42.13740234375001],[-8.152490234374937,41.81196289062498],[-7.40361328124996,41.833691406249955],[-7.147119140625023,41.98115234374998],[-6.61826171874992,41.9423828125],[-6.542187499999955,41.672509765624994],[-6.2125,41.53203125],[-6.928466796874972,41.009130859375006],[-6.8101562499999,40.343115234375034],[-7.032617187499966,40.16791992187498],[-6.896093749999949,40.02182617187506],[-6.975390624999932,39.79838867187502],[-7.117675781249972,39.681689453125045],[-7.53569335937496,39.66157226562501],[-6.997949218749994,39.05644531250002],[-7.343017578124943,38.45742187500002],[-7.106396484374983,38.181005859375006],[-6.957568359374932,38.18789062499999],[-7.44394531249992,37.72827148437497],[-7.406152343749937,37.17944335937497]]]]},"properties":{"name":"Portugal","childNum":7,"cp":[-8.7440694,39.9251454]}},{"geometry":{"type":"Polygon","coordinates":[[[-58.15976562499999,-20.164648437500006],[-58.13779296874999,-20.2373046875],[-58.12460937499999,-20.29345703125],[-58.09150390625,-20.33320312500001],[-58.05844726562499,-20.38613281250001],[-58.025390625,-20.415820312500003],[-58.00224609374999,-20.465429687500006],[-57.97905273437499,-20.657324218750006],[-57.91513671874999,-20.69033203125001],[-57.830224609374994,-20.99794921875001],[-57.94267578124999,-21.79833984375],[-57.95590820312499,-22.109179687500003],[-56.77519531249999,-22.261328125],[-56.44780273437499,-22.076171875],[-56.39487304687499,-22.09267578125001],[-56.35185546874999,-22.17861328125001],[-56.246044921875,-22.2646484375],[-56.18984375,-22.28115234375001],[-55.99140625,-22.28115234375001],[-55.84916992187499,-22.3076171875],[-55.75327148437499,-22.41015625],[-55.74663085937499,-22.5126953125],[-55.61767578125,-22.671484375],[-55.53828125,-23.58095703125001],[-55.518457031249994,-23.627246093750003],[-55.458886718749994,-23.68671875000001],[-55.4423828125,-23.792578125],[-55.4423828125,-23.865332031250006],[-55.415917968749994,-23.95136718750001],[-55.36630859374999,-23.991015625],[-55.28691406249999,-24.004296875],[-55.1943359375,-24.01748046875001],[-55.08188476562499,-23.99765625],[-54.982666015625,-23.97451171875001],[-54.62548828125,-23.8125],[-54.44023437499999,-23.90175781250001],[-54.37080078125,-23.97119140625],[-54.24179687499999,-24.047265625],[-54.281005859375,-24.30605468750001],[-54.43623046875,-25.12128906250001],[-54.47314453125,-25.22021484375],[-54.610546875,-25.432714843750006],[-54.615869140624994,-25.57607421875001],[-54.63193359374999,-26.00576171875001],[-54.677734375,-26.30878906250001],[-54.934472656249994,-26.70253906250001],[-55.1359375,-26.93115234375],[-55.426660156249994,-27.00927734375],[-55.450634765625,-27.068359375],[-55.496728515624994,-27.115332031250006],[-55.564892578125,-27.15],[-55.59726562499999,-27.207617187500006],[-55.59379882812499,-27.2880859375],[-55.63291015624999,-27.35712890625001],[-55.71464843749999,-27.41484375],[-55.789990234375,-27.41640625],[-55.95146484374999,-27.32568359375],[-56.1640625,-27.32148437500001],[-56.437158203124994,-27.553808593750006],[-58.16826171874999,-27.2734375],[-58.60483398437499,-27.31435546875001],[-58.641748046874994,-27.19609375],[-58.618603515625,-27.132128906250003],[-58.222070312499994,-26.65],[-58.18149414062499,-26.307421875],[-57.943115234375,-26.05292968750001],[-57.563134765624994,-25.473730468750006],[-57.821679687499994,-25.13642578125001],[-59.187255859375,-24.562304687500003],[-59.892480468749994,-24.093554687500003],[-60.83984375,-23.85810546875001],[-61.084716796875,-23.65644531250001],[-61.79853515625,-23.18203125],[-62.21416015624999,-22.612402343750006],[-62.372509765625,-22.43916015625001],[-62.54155273437499,-22.349609375],[-62.6259765625,-22.29042968750001],[-62.62568359375,-22.261523437500003],[-62.65097656249999,-22.233691406250003],[-62.27666015624999,-21.066015625],[-62.276318359375,-20.5625],[-61.7568359375,-19.6453125],[-60.00737304687499,-19.29755859375001],[-59.09052734375,-19.286230468750006],[-58.18017578125,-19.81787109375],[-58.15976562499999,-20.164648437500006]]]},"properties":{"name":"Paraguay","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[34.34833984375004,31.292919921874955],[34.2453125000001,31.208300781250045],[34.2125,31.292285156250017],[34.198144531249994,31.322607421875063],[34.47734375000002,31.584863281250023],[34.52412109375004,31.541650390624994],[34.5255859375001,31.52563476562503],[34.34833984375004,31.292919921874955]]],[[[34.88046875,31.3681640625],[34.950976562500074,31.60229492187503],[35.20371093750006,31.75],[35.1271484375001,31.816748046875006],[35.05322265625003,31.83793945312496],[34.983007812500006,31.816796875000023],[34.9611328125001,31.823339843750006],[34.95380859375004,31.84125976562504],[34.98974609374997,31.913281249999955],[34.955957031249994,32.1609375],[35.01054687500002,32.33818359375002],[35.06503906250006,32.46044921875006],[35.19326171875005,32.53442382812503],[35.303808593750006,32.512939453125],[35.38671875000003,32.493017578125034],[35.402636718750074,32.45063476562501],[35.484375,32.40166015624999],[35.5514648437501,32.39550781250006],[35.57207031250002,32.237890625],[35.450585937499994,31.479296875000017],[34.88046875,31.3681640625]]]]},"properties":{"name":"Palestine","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-149.321533203125,-17.690039062499963],[-149.177685546875,-17.736621093750045],[-149.18178710937497,-17.86230468749997],[-149.34111328125,-17.732421874999986],[-149.57890624999993,-17.734960937499963],[-149.635009765625,-17.564257812500003],[-149.37919921874993,-17.522363281249994],[-149.321533203125,-17.690039062499963]]],[[[-143.44057617187497,-16.619726562499963],[-143.38618164062498,-16.668847656250023],[-143.55068359375002,-16.62109374999997],[-143.44057617187497,-16.619726562499963]]],[[[-139.02431640624997,-9.695214843750037],[-138.82734375,-9.74160156249998],[-139.13408203124996,-9.829492187500037],[-139.02431640624997,-9.695214843750037]]],[[[-140.075634765625,-9.425976562499983],[-140.14438476562498,-9.359375],[-140.07094726562497,-9.328125],[-140.075634765625,-9.425976562499983]]],[[[-140.07260742187503,-8.910449218750031],[-140.21743164062497,-8.929687499999957],[-140.24003906249993,-8.79755859375004],[-140.057666015625,-8.801464843750026],[-140.07260742187503,-8.910449218750031]]]]},"properties":{"name":"Fr. Polynesia","childNum":5}},{"geometry":{"type":"Polygon","coordinates":[[[51.26796875000002,24.607226562500003],[51.17802734375002,24.58671875],[51.093359375,24.564648437499997],[51.02275390625002,24.565234375],[50.96601562500001,24.573925781249997],[50.928320312500006,24.595117187499994],[50.85566406250001,24.679638671874997],[50.80439453125001,24.789257812499997],[50.8359375,24.850390625],[50.846777343750006,24.888574218749994],[50.75458984375001,25.39926757812499],[51.003125,25.9814453125],[51.262304687500006,26.153271484374997],[51.543066406250006,25.902392578125003],[51.4853515625,25.524707031250003],[51.60888671875,25.052880859374994],[51.42792968750001,24.668261718750003],[51.26796875000002,24.607226562500003]]]},"properties":{"name":"Qatar","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.2125,45.450439453125],[28.317675781250017,45.347119140625],[28.451269531250006,45.2921875],[28.78828125000001,45.240966796875],[28.78173828125,45.309863281249996],[28.894335937500017,45.289941406249994],[29.223535156250023,45.4029296875],[29.403710937500023,45.419677734375],[29.567675781250017,45.37080078125],[29.705859375000017,45.259912109374994],[29.557519531250023,44.843408203124994],[29.048242187500023,44.757568359375],[29.0953125,44.975048828125],[28.891503906250023,44.91865234375],[28.585351562500023,43.742236328124996],[28.221972656250017,43.772851562499994],[27.88427734375,43.987353515624996],[27.425390625,44.0205078125],[27.0869140625,44.167382812499994],[26.2158203125,44.007275390625],[25.4970703125,43.670800781249994],[22.919042968750006,43.83447265625],[22.868261718750006,43.947900390624994],[23.02851562500001,44.077978515625],[22.705078125,44.23779296875],[22.687890625000023,44.248291015625],[22.494531250000023,44.435449218749994],[22.554003906250017,44.540332031249996],[22.6201171875,44.562353515625],[22.70078125,44.555517578125],[22.734375,44.569921875],[22.72089843750001,44.605517578124996],[22.64208984375,44.6509765625],[22.49765625,44.70625],[22.350683593750006,44.676123046875],[22.200976562500017,44.560693359374994],[22.093066406250017,44.541943359375],[21.909277343750006,44.66611328125],[21.636132812500023,44.71044921875],[21.52314453125001,44.790087890624996],[21.36005859375001,44.82666015625],[21.35791015625,44.86181640625],[21.384375,44.870068359375],[21.442187500000017,44.873388671875],[21.519921875000023,44.880810546875],[21.532324218750006,44.900683593749996],[21.35703125,44.990771484374996],[21.465429687500006,45.171875],[21.431445312500017,45.192529296874994],[20.794042968750006,45.46787109375],[20.775,45.749804687499996],[20.760156250000023,45.758105468749996],[20.746875,45.748974609375],[20.727832031250017,45.73740234375],[20.709277343750017,45.735253906249994],[20.652734375000023,45.77939453125],[20.581152343750006,45.869482421875],[20.35859375000001,45.975488281249994],[20.241796875,46.10859375],[20.28095703125001,46.1330078125],[20.508105468750017,46.166943359375],[20.613671875000023,46.13349609375],[20.76025390625,46.246240234374994],[21.121679687500006,46.282421875],[21.99970703125001,47.505029296874994],[22.87666015625001,47.947265625],[23.054785156250006,48.00654296875],[23.139453125000017,48.08740234375],[23.20263671875,48.084521484374996],[23.408203125,47.989990234375],[23.628710937500017,47.995849609375],[24.578906250000017,47.931054687499994],[24.979101562500006,47.72412109375],[25.464257812500023,47.910791015624994],[25.689257812500017,47.932470703125],[25.90869140625,47.967578125],[26.162695312500006,47.992529296875],[26.236230468750023,48.064355468749994],[26.276953125,48.113232421875],[26.3056640625,48.203759765624994],[26.4423828125,48.22998046875],[26.618945312500017,48.25986328125],[26.980761718750017,48.155029296875],[27.614062500000017,47.34052734375],[28.07177734375,46.978417968749994],[28.23945312500001,46.6408203125],[28.07470703125,45.598974609375],[28.2125,45.450439453125]]]},"properties":{"name":"Romania","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[146.71396484375012,43.743798828124994],[146.62197265625,43.81298828125006],[146.88408203125002,43.82915039062496],[146.71396484375012,43.743798828124994]]],[[[146.20761718750006,44.49765625],[146.5677734375,44.44042968749997],[145.91406249999997,44.10371093750004],[145.58681640625,43.84511718750002],[145.5558593750001,43.66459960937502],[145.46171875000007,43.870898437500045],[146.20761718750006,44.49765625]]],[[[148.59951171875,45.317626953125],[147.91376953125004,44.99038085937502],[147.65781250000012,44.97714843749998],[146.89746093750003,44.404296875],[147.24658203124997,44.856054687500006],[147.88554687500007,45.22563476562499],[147.9240234375001,45.38330078125006],[148.05605468750005,45.26210937500005],[148.32421874999997,45.28242187500001],[148.8122070312501,45.510009765625],[148.83710937500004,45.36269531250002],[148.59951171875,45.317626953125]]],[[[149.68769531250004,45.64204101562501],[149.44707031250002,45.593359375000034],[149.9623046875,46.02192382812504],[150.553125,46.208544921875045],[149.68769531250004,45.64204101562501]]],[[[152.00205078125006,46.89716796874998],[151.72343750000007,46.82880859375001],[152.28886718750007,47.1421875],[152.00205078125006,46.89716796874998]]],[[[154.81044921875005,49.31201171875],[154.61093750000006,49.29404296874998],[154.82490234375004,49.64692382812501],[154.81044921875005,49.31201171875]]],[[[155.9210937500001,50.30219726562501],[155.39716796875004,50.04125976562497],[155.24306640625,50.09462890625002],[155.21835937500012,50.29785156250003],[155.68017578124997,50.400732421875034],[156.096875,50.771875],[155.9210937500001,50.30219726562501]]],[[[156.40507812500002,50.65761718750005],[156.16796874999997,50.73188476562498],[156.37646484374997,50.86210937499996],[156.4875,50.84296874999998],[156.40507812500002,50.65761718750005]]],[[[142.76103515625002,54.393945312499966],[143.32470703125003,52.96308593749998],[143.15556640625002,52.08374023437497],[143.29951171875004,51.632373046875045],[143.81601562500006,50.28261718750002],[144.71376953125,48.64028320312502],[144.04873046875,49.249169921874994],[143.73232421875,49.31201171875],[143.10498046875003,49.198828125000034],[142.57421874999997,48.07216796875002],[142.55693359375002,47.737890625000034],[143.21767578125005,46.79487304687504],[143.48564453125002,46.752050781250006],[143.58066406250012,46.360693359375034],[143.43164062500003,46.02866210937498],[143.28232421875006,46.55898437500002],[142.57802734375005,46.700781250000034],[142.07714843749997,45.91704101562499],[141.83037109375002,46.451074218749966],[142.03867187500012,47.140283203124966],[141.9640625000001,47.58745117187502],[142.18173828125012,48.01337890625001],[141.86630859375006,48.750097656250006],[142.1422851562501,49.56914062499999],[142.06601562500006,50.630468750000034],[142.20673828125004,51.22255859375002],[141.72236328125004,51.73632812499997],[141.66083984375004,52.27294921874997],[141.85556640625012,52.79350585937499],[141.82353515625007,53.33950195312502],[142.1419921875,53.49560546875003],[142.52617187500002,53.44746093749998],[142.70595703125,53.89570312499998],[142.33496093749997,54.28071289062501],[142.76103515625002,54.393945312499966]]],[[[137.17861328125005,55.100439453125034],[137.05527343750006,54.9267578125],[136.71464843750002,54.956152343750034],[137.17861328125005,55.100439453125034]]],[[[137.94052734375012,55.092626953125034],[138.20615234375012,55.03354492187498],[137.72148437500007,54.66323242187505],[137.46269531250002,54.873388671875034],[137.23291015624997,54.79057617187496],[137.5773437500001,55.19702148437497],[137.94052734375012,55.092626953125034]]],[[[21.235742187500023,55.26411132812498],[22.072363281250034,55.06367187499998],[22.56728515625005,55.05913085937496],[22.82470703125,54.87128906249998],[22.684472656250023,54.56293945312504],[22.679882812500068,54.493017578125006],[22.766210937499977,54.356787109375034],[22.168457031250057,54.35986328125006],[21.14052734375008,54.39179687499998],[19.604394531250023,54.45917968750004],[19.974511718750023,54.92119140625002],[20.520312500000017,54.994873046875],[20.89980468750008,55.286669921875045],[20.957812500000074,55.27890625000006],[20.594824218750006,54.982373046874955],[20.995898437500017,54.90268554687506],[21.18886718750008,54.93520507812502],[21.235742187500023,55.26411132812498]]],[[[166.65029296875005,54.83906249999998],[166.64511718750006,54.69409179687503],[165.75107421875006,55.294531250000034],[166.27578125000005,55.311962890624955],[166.24804687499997,55.16542968750002],[166.65029296875005,54.83906249999998]]],[[[150.58994140625006,59.01875],[150.47021484375003,59.05405273437498],[150.66621093750004,59.16015625000003],[150.58994140625006,59.01875]]],[[[163.63515625000005,58.603369140625006],[163.47138671875004,58.509375],[163.7609375000001,59.01503906250002],[164.57265625,59.22114257812501],[164.61572265624997,58.885595703125034],[163.63515625000005,58.603369140625006]]],[[[35.8161132812501,65.18208007812501],[35.77871093750005,64.97666015625],[35.52890625000006,65.15107421875001],[35.8161132812501,65.18208007812501]]],[[[70.02070312500004,66.502197265625],[69.65136718750003,66.56533203125],[69.50273437500002,66.75107421875],[70.07666015624997,66.69589843750003],[70.02070312500004,66.502197265625]]],[[[-179.79853515625,68.9404296875],[-178.873876953125,68.75410156249995],[-178.69262695312503,68.54599609375],[-178.09746093750002,68.4248046875],[-178.05581054687497,68.26489257812503],[-177.79677734374997,68.33798828125],[-178.37304687500003,68.56567382812503],[-177.52724609375002,68.29438476562501],[-177.58920898437503,68.22421875],[-175.34521484375,67.67807617187503],[-175.37470703124998,67.35737304687498],[-175.00268554687494,67.4375],[-174.849853515625,67.34887695312503],[-174.92490234375,66.62314453125006],[-174.503759765625,66.537939453125],[-174.39409179687496,66.34423828124997],[-174.084765625,66.47309570312504],[-174.06503906249998,66.22958984374998],[-173.77397460937502,66.43466796875003],[-174.23159179687497,66.63188476562505],[-174.08642578125,66.94287109375],[-174.55009765624993,67.090625],[-173.6796875,67.144775390625],[-173.15781249999998,67.06909179687503],[-173.32353515625,66.95483398437503],[-173.25893554687497,66.84008789062503],[-173.19301757812497,66.99360351562504],[-172.5201171875,66.952490234375],[-173.00751953125,67.06489257812498],[-171.79555664062502,66.93173828125003],[-170.50952148437503,66.34365234375005],[-170.604443359375,66.24892578125002],[-170.30122070312504,66.29404296874998],[-170.24394531250002,66.16928710937503],[-169.777880859375,66.14311523437505],[-169.83168945312497,65.99892578124997],[-170.54067382812497,65.86542968749995],[-170.66630859375,65.62153320312501],[-171.42153320312502,65.81035156250002],[-171.10585937500002,65.51103515625005],[-171.90712890625,65.495947265625],[-172.78330078124998,65.68105468749997],[-172.23281250000002,65.45571289062497],[-172.30927734375004,65.27563476562497],[-172.66191406249993,65.24853515625006],[-172.28603515625002,65.20571289062502],[-172.21318359375,65.04814453124999],[-173.08579101562498,64.81733398437495],[-172.80107421874996,64.79052734375],[-172.90087890624994,64.62885742187501],[-172.40146484374998,64.413916015625],[-172.73916015624997,64.41225585937502],[-172.90317382812498,64.52607421875004],[-172.96005859375003,64.32768554687502],[-173.27548828124998,64.2896484375],[-173.327490234375,64.53955078125003],[-173.72973632812497,64.36450195312497],[-174.57055664062503,64.7177734375],[-175.39511718749998,64.80239257812502],[-175.85385742187498,65.01083984375003],[-176.09326171875,65.471044921875],[-177.05625,65.613623046875],[-177.48876953125,65.50371093749999],[-178.4125,65.49555664062501],[-178.93906249999998,66.03276367187505],[-178.74672851562497,66.01367187500006],[-178.52656250000004,66.40156250000004],[-178.86811523437498,66.18706054687502],[-179.14340820312503,66.37504882812505],[-179.327197265625,66.16259765625003],[-179.68330078124998,66.18413085937505],[-179.78969726562497,65.90087890625],[-179.352099609375,65.51674804687497],[-180,65.06723632812498],[-180,65.31196289062501],[-180,65.55678710937497],[-180,65.80156250000002],[-180,66.04628906250002],[-180,66.29106445312499],[-180,66.53583984375004],[-180,66.78056640625005],[-180,67.02534179687501],[-180,67.27011718750006],[-180,67.51484374999998],[-180,67.75961914062503],[-180,68.00439453124997],[-180,68.24912109375],[-180,68.49389648437497],[-180,68.738671875],[-179.999951171875,68.98344726562505],[-179.79853515625,68.9404296875]]],[[[50.265234375,69.18559570312502],[49.62626953125002,68.85971679687498],[48.91035156250004,68.74306640625002],[48.4390625,68.80488281249998],[48.319921875,69.26923828125001],[48.8449218750001,69.49472656250003],[49.22519531250006,69.51123046875],[50.265234375,69.18559570312502]]],[[[161.46708984375002,68.90097656250003],[161.08281250000007,69.4056640625],[161.50517578125007,69.63945312500002],[161.46708984375002,68.90097656250003]]],[[[169.20078125000006,69.58046875],[168.34804687500005,69.66435546875005],[167.86474609375003,69.90107421875004],[168.35791015625003,70.01567382812502],[169.37480468750007,69.88261718749999],[169.20078125000006,69.58046875]]],[[[60.450488281250074,69.93486328124999],[60.44023437500002,69.72592773437506],[59.637011718750074,69.72104492187503],[59.50263671875004,69.86621093750003],[58.952734375,69.89277343750004],[58.51992187500005,70.31831054687504],[59.04804687500004,70.46049804687505],[60.450488281250074,69.93486328124999]]],[[[52.90332031250003,71.36499023437503],[53.19257812500004,71.21528320312498],[53.0226562500001,70.96870117187501],[52.24960937500006,71.28491210937506],[52.90332031250003,71.36499023437503]]],[[[178.8615234375001,70.826416015625],[178.68388671875013,71.10566406250004],[180,71.53774414062505],[180,70.993017578125],[178.8615234375001,70.826416015625]]],[[[137.95986328125005,71.50766601562503],[137.71181640625005,71.4232421875],[137.06406250000006,71.52988281250003],[137.816796875,71.58789062500006],[137.95986328125005,71.50766601562503]]],[[[-178.87646484375,71.57705078124997],[-178.13388671874998,71.46547851562497],[-177.523583984375,71.16689453125],[-179.415673828125,70.91899414062502],[-179.999951171875,70.993017578125],[-179.999951171875,71.53774414062505],[-178.87646484375,71.57705078124997]]],[[[77.6325195312501,72.291259765625],[76.87109374999997,72.317041015625],[77.74853515625003,72.63120117187506],[78.36513671875005,72.48242187500003],[77.6325195312501,72.291259765625]]],[[[79.50146484374997,72.72192382812497],[78.63320312500005,72.85073242187502],[79.16425781250004,73.0943359375],[79.50146484374997,72.72192382812497]]],[[[74.660546875,72.87343750000002],[74.18066406250003,72.975341796875],[74.19853515625002,73.10908203124998],[74.9615234375,73.0625],[74.660546875,72.87343750000002]]],[[[120.26132812500012,73.08984374999997],[119.79208984375006,73.04541015624997],[119.64042968750002,73.12431640625007],[120.26132812500012,73.08984374999997]]],[[[55.31982421875003,73.30830078124998],[56.42958984375005,73.201171875],[56.121679687500006,72.80659179687498],[55.40332031249997,72.54907226562503],[55.29785156249997,71.93535156250005],[56.45439453125002,71.10737304687504],[57.62539062500005,70.72880859374999],[57.14589843750005,70.58911132812506],[56.38574218749997,70.73413085937503],[56.49970703125004,70.56640625000003],[55.687304687500074,70.69218749999999],[54.60117187500006,70.68007812500002],[53.383593750000074,70.87353515625],[53.670507812500006,71.08691406250003],[54.155664062499994,71.12548828125],[53.40996093750002,71.34013671875002],[53.41162109375003,71.530126953125],[51.93789062500005,71.47470703124998],[51.511328125,71.64809570312497],[51.58251953124997,72.07119140625],[52.252050781250006,72.12973632812503],[52.66191406250002,72.33686523437495],[52.91660156250006,72.66889648437501],[52.5792968750001,72.791357421875],[53.3698242187501,72.91674804687506],[53.2511718750001,73.182958984375],[54.80390625000004,73.38764648437498],[55.31982421875003,73.30830078124998]]],[[[70.67392578125006,73.09501953125005],[70.04072265625004,73.03715820312507],[69.99589843750002,73.359375],[70.94023437500002,73.51440429687503],[71.6261718750001,73.17397460937497],[70.67392578125006,73.09501953125005]]],[[[142.18486328125007,73.89589843750005],[143.34375,73.56875],[143.45146484375007,73.231298828125],[141.59667968750003,73.31083984375005],[140.66279296875004,73.45200195312503],[139.785546875,73.35522460937503],[141.08476562500002,73.86586914062497],[142.18486328125007,73.89589843750005]]],[[[83.5490234375001,74.07177734375],[82.8177734375,74.09160156250005],[83.14980468750005,74.151611328125],[83.5490234375001,74.07177734375]]],[[[141.01025390625003,73.99946289062501],[140.40947265625002,73.92167968750005],[140.1935546875001,74.23671875000002],[141.03857421875003,74.24272460937502],[141.01025390625003,73.99946289062501]]],[[[113.38720703124997,74.40043945312499],[112.78242187500004,74.09506835937503],[111.50341796874997,74.35307617187502],[111.87978515625,74.36381835937499],[112.08447265624997,74.54897460937505],[113.38720703124997,74.40043945312499]]],[[[86.653125,74.981298828125],[87.05214843750005,74.982568359375],[86.92714843750005,74.83076171874998],[86.25859375000002,74.89350585937498],[86.653125,74.981298828125]]],[[[82.17236328125003,75.41938476562501],[81.97851562499997,75.24711914062499],[81.65478515625003,75.28891601562498],[81.71210937500004,75.45141601562506],[82.165625,75.515625],[82.17236328125003,75.41938476562501]]],[[[146.79521484375007,75.37075195312505],[148.43242187500002,75.41352539062495],[148.59013671875007,75.23637695312502],[150.82236328125006,75.15654296875002],[150.64628906250002,74.944580078125],[149.596875,74.77260742187505],[148.296875,74.80043945312502],[146.14853515625012,75.19829101562499],[146.5375,75.58178710937506],[146.79521484375007,75.37075195312505]]],[[[135.9486328125,75.40957031250005],[135.45195312500007,75.38955078124997],[135.6986328125,75.84526367187499],[136.16894531249997,75.60556640625],[135.9486328125,75.40957031250005]]],[[[140.04873046875,75.82895507812503],[140.81591796874997,75.63071289062498],[141.48544921875012,76.13715820312495],[142.66953125000012,75.86342773437497],[143.68583984375002,75.86367187500002],[145.35996093750006,75.53046874999998],[144.01972656250004,75.04467773437506],[143.1703125,75.11689453125001],[142.72949218749997,75.33764648437506],[142.941796875,75.71328125000002],[142.30791015625007,75.69169921875005],[142.19882812500006,75.39267578124998],[143.12792968749997,74.9703125],[142.47275390625006,74.82041015625],[141.98730468750003,74.99125976562499],[140.26787109375002,74.846923828125],[139.68125,74.96406249999995],[139.09912109374997,74.65654296875002],[138.09228515625003,74.79746093750003],[136.94765625000005,75.32553710937498],[137.28974609375004,75.34863281249997],[137.26884765625002,75.7494140625],[137.70654296875003,75.75957031250002],[137.56054687499997,75.95522460937502],[138.20761718750006,76.11494140624995],[138.91953125000006,76.19672851562501],[140.04873046875,75.82895507812503]]],[[[96.5324218750001,76.278125],[96.30058593750002,76.121728515625],[95.31113281250006,76.21474609375002],[95.37988281250003,76.2890625],[96.5324218750001,76.278125]]],[[[112.47802734375003,76.62089843749999],[112.531640625,76.450048828125],[111.96894531250004,76.62617187500001],[112.47802734375003,76.62089843749999]]],[[[149.15019531250002,76.65991210937506],[148.39863281250004,76.64824218750007],[149.4064453125001,76.78208007812498],[149.15019531250002,76.65991210937506]]],[[[67.7653320312501,76.23759765624999],[61.35595703124997,75.31484375000002],[60.27685546875003,75.00756835937503],[60.501367187499994,74.90463867187503],[59.67402343750004,74.61015624999999],[59.24013671875005,74.69296874999998],[59.040429687499994,74.48554687500001],[58.53466796875003,74.49892578124997],[58.6178710937501,74.22739257812498],[57.76738281250002,74.013818359375],[57.755957031250006,73.769189453125],[57.313085937500006,73.838037109375],[57.54257812500006,73.65820312500003],[56.96386718750003,73.36655273437503],[56.43037109375004,73.29721679687503],[55.00683593750003,73.45385742187506],[54.29990234375006,73.35097656249997],[53.7628906250001,73.76616210937499],[54.64267578125006,73.95957031250006],[55.34091796875006,74.41962890624998],[56.13710937500005,74.49609375000003],[55.5822265625001,74.627685546875],[56.4987304687501,74.95708007812505],[55.81005859374997,75.12490234374997],[56.03554687499999,75.19423828124997],[56.57031250000003,75.09775390625003],[56.8444335937501,75.351416015625],[57.606835937499994,75.34125976562498],[58.05830078125004,75.6630859375],[58.88125,75.85478515625007],[60.27929687499997,76.09624023437505],[60.94218750000002,76.07128906250003],[61.20166015624997,76.28203125000007],[62.97148437500002,76.23666992187498],[64.4634765625,76.37817382812503],[67.65185546874997,77.011572265625],[68.48574218750005,76.93369140625003],[68.94169921875002,76.707666015625],[67.7653320312501,76.23759765624999]]],[[[96.28544921875002,77.02666015625007],[95.27031250000007,77.01884765624999],[96.52841796875006,77.20551757812501],[96.28544921875002,77.02666015625007]]],[[[89.51425781250006,77.18881835937498],[89.14169921875012,77.22680664062497],[89.61621093749997,77.31103515625],[89.51425781250006,77.18881835937498]]],[[[130.68730468750007,42.30253906249999],[130.52695312500012,42.535400390625],[130.42480468749997,42.72705078124997],[131.06855468750004,42.90224609375005],[131.25732421875003,43.378076171874994],[131.2552734375,44.07158203124999],[130.9816406250001,44.844335937500034],[131.44687500000012,44.984033203124966],[131.85185546875002,45.32685546875001],[132.93603515624997,45.029931640624994],[133.1134765625001,45.130712890625006],[133.18603515625003,45.49482421875004],[133.43642578125,45.60468750000004],[133.86132812500003,46.24775390625004],[134.1676757812501,47.30219726562501],[134.75234375,47.71542968749998],[134.56601562500006,48.02250976562502],[134.66523437500004,48.25390625],[134.29335937500005,48.37343750000002],[133.46835937500006,48.09716796875003],[133.14404296875003,48.10566406249998],[132.7072265625001,47.94726562500006],[132.47626953125004,47.714990234374994],[130.96191406249997,47.70932617187498],[130.7326171875001,48.01923828124998],[130.80429687500012,48.34150390624998],[130.5521484375,48.602490234374955],[130.553125,48.861181640625006],[130.1959960937501,48.89165039062499],[129.49814453125012,49.38881835937502],[129.0651367187501,49.374658203124966],[128.70400390625,49.60014648437499],[127.99960937500006,49.56860351562506],[127.55078124999997,49.801806640625045],[127.590234375,50.20898437500003],[127.33720703125007,50.35014648437502],[127.30703125000005,50.70795898437501],[126.92480468749997,51.10014648437496],[126.34169921875,52.36201171875001],[125.64902343750012,53.042285156250045],[125.075,53.20366210937496],[124.81230468750002,53.133837890625045],[123.6078125,53.546533203124994],[120.98544921875012,53.28457031250002],[120.09453125000007,52.787207031250034],[120.0675781250001,52.632910156250034],[120.65615234375,52.56665039062503],[120.74980468750007,52.096533203125006],[120.06689453125003,51.60068359375006],[119.16367187500006,50.40600585937503],[119.34628906250012,50.278955078124994],[119.25986328125012,50.06640625000003],[118.4515625,49.84448242187503],[117.8734375,49.51347656250002],[116.6833007812501,49.82377929687499],[116.551171875,49.92031250000002],[116.35117187500012,49.97807617187499],[116.21679687500003,50.00927734375003],[116.13457031250002,50.01079101562499],[115.9259765625001,49.95214843750003],[115.79521484375002,49.90590820312502],[115.71777343750003,49.88061523437503],[115.58798828125006,49.88603515624996],[115.42919921874997,49.89648437499997],[115.36503906250002,49.911767578124966],[115.27451171875006,49.948876953124994],[115.00332031250005,50.138574218749994],[114.74316406249997,50.23369140625002],[114.29707031250004,50.27441406250006],[113.57421874999997,50.00703125000001],[113.44550781250004,49.94160156250001],[113.31904296875004,49.87431640624999],[113.16416015625012,49.79716796874999],[113.09208984375007,49.692529296874994],[113.05556640625,49.61625976562499],[112.91484375000002,49.569238281249994],[112.80644531250007,49.52358398437502],[112.69736328125012,49.50727539062498],[112.49492187500002,49.532324218750034],[112.07968750000006,49.42421875000002],[111.42929687500006,49.342626953125034],[111.3366210937501,49.355859374999966],[111.20419921875012,49.304296875000034],[110.82792968750002,49.16616210937505],[110.70976562500002,49.14296875000002],[110.42783203125006,49.219970703125],[110.32138671875012,49.215869140625045],[110.19990234375004,49.17041015625003],[109.5287109375,49.269873046875034],[109.45371093750012,49.29633789062501],[109.23671875000005,49.334912109374955],[108.61367187500005,49.32280273437499],[108.52246093750003,49.34150390624998],[108.4069335937501,49.39638671875005],[107.96542968750012,49.65351562500004],[107.91660156250012,49.947802734375045],[107.63095703125012,49.98310546875004],[107.3470703125,49.986669921875034],[107.23330078125,49.989404296874994],[107.14306640625003,50.03300781249999],[107.04023437500004,50.086474609375045],[106.94130859375005,50.19667968750002],[106.71113281250004,50.312597656250006],[106.57441406250004,50.32880859375004],[106.36845703125002,50.317578124999955],[106.21787109375006,50.304589843749966],[105.38359375000002,50.47373046874998],[104.07871093750012,50.15424804687498],[103.63291015625006,50.138574218749994],[103.49628906250004,50.16494140625005],[103.42119140625002,50.18706054687502],[103.3043945312501,50.200292968750034],[102.28837890625007,50.58510742187502],[102.31660156250004,50.71845703125001],[102.21503906250004,50.82944335937506],[102.19453125000004,51.05068359375002],[102.15195312500006,51.107519531250034],[102.14238281250007,51.21606445312503],[102.16005859375005,51.260839843750006],[102.1556640625,51.31376953124996],[102.1115234375001,51.353466796874955],[101.97919921875004,51.382226562499966],[101.82119140625,51.421044921874966],[101.57089843750006,51.46718750000005],[101.38125,51.45263671875],[100.53623046875006,51.713476562500034],[100.46894531250004,51.72607421875003],[100.23037109375,51.729833984375006],[100.0345703125,51.73710937499996],[99.92167968750002,51.755517578124994],[99.71923828124997,51.87163085937502],[98.89316406250006,52.11728515625006],[98.64052734375005,51.80117187500005],[98.103125,51.483544921874994],[97.82529296875012,50.985253906249994],[97.953125,50.85517578124998],[98.02978515625003,50.64462890624998],[98.07890625000002,50.60380859375002],[98.14501953124997,50.56855468750001],[98.22050781250007,50.55717773437502],[98.2794921875001,50.53325195312502],[98.25029296875002,50.30244140624998],[98.00390625000003,50.01425781249998],[97.35976562500005,49.741455078125],[97.20859375000006,49.73081054687506],[96.98574218750005,49.88281250000003],[96.31503906250012,49.90112304687503],[96.06552734375006,49.99873046875001],[95.52265625000004,49.911230468750034],[95.11142578125012,49.935449218749994],[94.93027343750006,50.04375],[94.8112304687501,50.04819335937506],[94.71806640625002,50.04326171875002],[94.67548828125004,50.02807617187506],[94.61474609375003,50.02373046874996],[94.56464843750004,50.08793945312499],[94.35468750000004,50.221826171874994],[94.25107421875006,50.55639648437503],[93.103125,50.60390625000002],[92.94130859375005,50.77822265625002],[92.85644531250003,50.78911132812502],[92.77929687500003,50.778662109375006],[92.738671875,50.71093749999997],[92.68134765625004,50.683203125],[92.6266601562501,50.68828124999999],[92.57890625000002,50.725439453125006],[92.42636718750006,50.803076171875006],[92.35478515625002,50.86416015625002],[92.29580078125,50.84980468750004],[92.19238281249997,50.700585937499994],[91.80429687500006,50.693603515625],[91.4464843750001,50.52216796874998],[91.41503906249997,50.46801757812506],[91.34082031249997,50.470068359375034],[91.30058593750002,50.46337890625],[91.2337890625,50.45239257812497],[91.02158203125012,50.41547851562501],[90.83808593750004,50.32373046874997],[90.76074218749997,50.30595703124999],[90.71435546874997,50.25942382812502],[90.65507812500007,50.22236328125001],[90.05371093750003,50.09375],[89.64384765625002,49.90302734374998],[89.65410156250007,49.71748046875001],[89.57919921875006,49.69970703125003],[89.475,49.66054687500005],[89.39560546875006,49.61152343750001],[89.24394531250007,49.62705078125006],[89.20292968750007,49.59570312499997],[89.17998046875002,49.5322265625],[89.10947265625012,49.50136718750002],[89.00839843750006,49.472802734374994],[88.97060546875,49.483740234375006],[88.94541015625012,49.50766601562498],[88.90019531250002,49.53969726562502],[88.86386718750006,49.52763671874996],[88.83164062500012,49.44843749999998],[88.633203125,49.486132812500045],[88.19257812500004,49.451708984375045],[88.13554687500002,49.38149414062502],[88.11572265624997,49.25629882812501],[88.0285156250001,49.219775390625045],[87.98808593750002,49.186914062499994],[87.9347656250001,49.16455078124997],[87.81425781250002,49.162304687499955],[87.7625,49.16582031249996],[87.5158203125001,49.122412109375006],[87.41669921875004,49.07661132812501],[87.32285156250012,49.085791015625006],[86.62646484374997,49.56269531250001],[86.67548828125004,49.77729492187501],[86.1808593750001,49.49931640624996],[85.2326171875001,49.61582031249998],[84.9894531250001,50.061425781249994],[84.32324218749997,50.239160156249966],[83.94511718750007,50.774658203125],[83.35732421875005,50.99458007812504],[82.76083984375012,50.89335937500002],[82.49394531250007,50.72758789062499],[81.46591796875006,50.73984375],[81.38828125000006,50.95649414062501],[81.0714843750001,50.96875],[81.12724609375002,51.19106445312502],[80.73525390625,51.29340820312498],[80.44804687500002,51.18334960937503],[80.42363281250002,50.94628906249997],[79.98623046875,50.774560546874966],[77.85996093750006,53.269189453124994],[76.48476562500005,54.02255859374998],[76.42167968750007,54.151513671874966],[76.65458984375007,54.14526367187503],[76.8373046875,54.4423828125],[75.43720703125004,54.08964843749999],[75.22021484374997,53.89379882812506],[74.45195312500007,53.64726562500002],[74.35156250000003,53.487646484375006],[73.85898437500006,53.61972656249998],[73.40693359375004,53.44755859374999],[73.30566406250003,53.707226562499955],[73.71240234375003,54.04238281250002],[73.22988281250005,53.957812500000045],[72.62226562500004,54.13432617187502],[72.44677734375003,53.94184570312498],[72.18603515625003,54.32563476562501],[72.00449218750006,54.20566406249998],[71.09316406250005,54.21220703124999],[71.18554687500003,54.59931640624998],[70.73808593750007,55.30517578125],[70.18242187500002,55.162451171875034],[68.9772460937501,55.389599609374955],[68.20625,55.16093750000002],[68.15585937500006,54.97670898437505],[65.476953125,54.62329101562497],[65.08837890624997,54.340185546875034],[64.46123046875002,54.38417968750002],[61.92871093750003,53.94648437500004],[61.231054687500006,54.01948242187498],[60.97949218749997,53.62172851562505],[61.53496093750002,53.52329101562506],[61.22890625,53.445898437500006],[61.19921874999997,53.28715820312502],[61.65986328125004,53.22846679687504],[62.08271484375004,53.00541992187499],[61.047460937500006,52.97246093750002],[60.77441406249997,52.67578124999997],[60.99453125000005,52.33686523437504],[60.03027343749997,51.93325195312505],[60.464746093749994,51.651171875000045],[61.55468750000003,51.32460937500005],[61.38945312500002,50.86103515625001],[60.94228515625005,50.69550781250004],[60.42480468749997,50.67915039062498],[60.05859374999997,50.850292968749955],[59.812402343749994,50.58203125],[59.523046875,50.492871093749955],[59.4523437500001,50.62041015625002],[58.88369140625005,50.694433593750006],[58.359179687500074,51.063818359375034],[57.83886718750003,51.091650390625006],[57.44218750000002,50.88886718749998],[57.01171874999997,51.06518554687503],[56.49140625000004,51.01953124999997],[55.68623046875004,50.582861328125006],[54.64160156250003,51.011572265625034],[54.555273437500006,50.535791015624994],[54.139746093750006,51.04077148437503],[53.33808593750004,51.48237304687504],[52.57119140625005,51.481640624999955],[52.21914062499999,51.709375],[51.344531250000074,51.47534179687503],[51.16347656250005,51.6474609375],[50.79394531249997,51.729199218749955],[50.246875,51.28950195312498],[49.49804687500003,51.08359375000006],[49.32343750000004,50.851708984374966],[48.625097656250006,50.61269531250005],[48.7589843750001,49.92832031250006],[48.33496093750003,49.858251953125006],[47.7057617187501,50.37797851562502],[47.42919921874997,50.35795898437502],[46.889550781249994,49.69697265625001],[46.80205078125002,49.36708984375002],[47.031347656250006,49.150292968749994],[46.70263671875003,48.80556640625002],[46.660937500000074,48.41225585937502],[47.06464843750004,48.23247070312499],[47.292382812499994,47.74091796875004],[47.48193359374997,47.80390624999998],[48.16699218750003,47.70878906249996],[48.959375,46.77460937499998],[48.558398437500074,46.75712890624999],[48.54121093750004,46.60561523437502],[49.232226562500074,46.33715820312503],[48.683691406250006,46.08618164062497],[48.72958984375006,45.896826171875034],[48.4870117187501,45.93486328124996],[47.63330078124997,45.58403320312499],[47.46328125,45.67968750000003],[47.5294921875001,45.530224609374955],[47.3512695312501,45.21772460937498],[46.7072265625001,44.503320312499994],[47.30703125000005,44.103125],[47.462792968749994,43.55502929687498],[47.64648437500003,43.88461914062498],[47.463183593750074,43.03505859375002],[48.572851562500006,41.84448242187503],[47.79101562499997,41.19926757812502],[47.31767578125002,41.28242187500001],[46.74931640625002,41.812597656250006],[46.42988281250004,41.890966796875006],[46.21269531250002,41.989892578124994],[45.63857421875005,42.20507812500003],[45.63427734374997,42.234716796875034],[45.72753906249997,42.47504882812498],[45.70527343750004,42.49809570312496],[45.56289062499999,42.53574218749998],[45.34375,42.52978515625003],[45.16025390625006,42.675],[45.07158203125002,42.69414062500002],[44.94335937499997,42.73027343750002],[44.870996093749994,42.75639648437499],[44.850488281249994,42.746826171875],[44.77109375000006,42.61679687499998],[44.69179687499999,42.709619140624966],[44.64433593750002,42.734716796875034],[44.50585937500003,42.748632812500006],[44.329492187499994,42.703515624999966],[44.10273437500004,42.616357421874994],[44.004687500000074,42.59560546875002],[43.95742187500005,42.56655273437505],[43.825976562500074,42.571533203125],[43.759863281250006,42.593847656250006],[43.738378906250006,42.61699218750002],[43.74990234375005,42.65751953125002],[43.79541015624997,42.702978515625034],[43.78261718750005,42.747021484374955],[43.62304687500003,42.80771484374998],[43.5578125000001,42.844482421875],[43.089160156250074,42.9890625],[43.00019531250004,43.04965820312506],[42.991601562499994,43.09150390624998],[42.76064453125005,43.169580078124966],[41.58056640624997,43.21923828124997],[41.460742187500074,43.276318359374955],[41.35820312500002,43.33339843750005],[41.08310546875006,43.37446289062498],[40.94199218750006,43.41806640624998],[40.801660156249994,43.479931640624955],[40.64804687500006,43.53388671875004],[40.084570312500006,43.553125],[40.02373046875002,43.48486328125],[39.873632812500006,43.47280273437502],[38.71728515624997,44.28808593750003],[38.18125,44.41967773437503],[37.851464843749994,44.698828125000034],[37.49511718750003,44.69526367187504],[37.20478515625004,44.97197265624999],[36.62763671875004,45.15131835937504],[36.941210937500074,45.289697265624994],[36.72041015625004,45.371875],[36.8659179687501,45.42705078124999],[37.21357421875004,45.272314453125006],[37.6471679687501,45.37719726562506],[37.61240234375006,45.56469726562506],[37.93310546875003,46.001708984375],[38.014257812500006,46.047753906249966],[38.07958984375003,45.93481445312506],[38.18359374999997,46.09482421875006],[38.49228515625006,46.09052734374998],[37.913867187500074,46.40649414062503],[37.766503906249994,46.63613281250002],[38.50097656249997,46.663671875000034],[38.43867187500004,46.813085937500006],[39.29345703125003,47.105761718750045],[39.19570312499999,47.268847656250045],[39.023730468750074,47.27221679687503],[38.928320312500006,47.175683593749994],[38.55244140625004,47.15034179687498],[38.7619140625001,47.261621093749994],[38.21435546875003,47.091455078124966],[38.36884765625004,47.609960937500006],[38.90029296875005,47.85512695312502],[39.77871093750005,47.88754882812506],[39.95791015625005,48.268896484375034],[39.8356445312501,48.54277343749996],[39.6447265625001,48.591210937499966],[39.792871093749994,48.807714843750034],[40.00361328125004,48.82207031250002],[39.68652343749997,49.007910156250034],[40.10878906250005,49.251562500000034],[40.080664062500006,49.576855468749955],[39.780566406250074,49.57202148437503],[39.17480468750003,49.85595703124997],[38.91835937499999,49.82470703125],[38.258593750000074,50.05234375],[38.046875,49.92001953125006],[37.42285156249997,50.411474609375006],[36.619433593750074,50.209228515625],[36.1164062500001,50.408544921875006],[35.59111328125002,50.36875],[35.31191406250005,51.043896484374955],[35.0640625,51.203417968750045],[34.21386718750003,51.25537109375006],[34.12109375000003,51.67915039062498],[34.397851562499994,51.780419921874994],[33.735253906249994,52.344775390625045],[32.435449218749994,52.307226562500034],[32.12226562500004,52.05058593749996],[31.763378906250097,52.10107421875003],[31.758593750000017,52.125830078125034],[31.690625,52.22065429687498],[31.64990234374997,52.26220703125],[31.60156250000003,52.284814453124994],[31.57734375000004,52.31230468749999],[31.585546875,52.532470703125],[31.56484375,52.75922851562501],[31.53515624999997,52.798242187499966],[31.442773437499994,52.86181640625003],[31.35302734374997,52.93344726562498],[31.295117187500097,52.98979492187499],[31.25878906249997,53.01669921875006],[31.364550781250017,53.13896484375002],[31.388378906250097,53.18481445312503],[31.41787109375005,53.196044921875],[31.849707031250006,53.106201171875],[32.14199218750005,53.091162109375034],[32.46933593750006,53.270312500000045],[32.578027343749994,53.312402343749994],[32.644433593749994,53.32890624999999],[32.70429687500004,53.33632812499999],[32.45097656250002,53.6533203125],[32.20039062500004,53.78125],[31.99218750000003,53.796875],[31.82080078124997,53.79194335937498],[31.754199218750017,53.81044921875002],[31.825292968750006,53.93500976562501],[31.837792968749994,54.00078124999999],[31.825976562500074,54.030712890624955],[31.79199218749997,54.05590820312503],[31.62841796874997,54.111181640625006],[31.403613281250017,54.195947265624966],[31.299121093750017,54.29169921875001],[31.184765625000097,54.452978515625006],[31.074804687500063,54.491796875],[31.154882812500063,54.610937500000034],[31.152148437500017,54.625341796875034],[31.12128906250004,54.64848632812496],[30.984179687500074,54.695898437500034],[30.79882812499997,54.78325195312499],[30.79101562499997,54.806005859375006],[30.804492187500074,54.8609375],[30.829882812500017,54.91499023437498],[30.977734375000097,55.05048828124998],[30.977734375000097,55.08779296875002],[30.958886718749994,55.13759765625005],[30.87744140625003,55.223437500000045],[30.81445312499997,55.27871093750002],[30.81054687499997,55.306982421875006],[30.82099609375004,55.330273437499955],[30.900585937500097,55.397412109374955],[30.906835937500063,55.57001953125004],[30.625585937500006,55.666259765625],[30.23359375000004,55.84521484375006],[30.04267578125004,55.83642578125003],[29.93701171874997,55.84526367187499],[29.881640625000074,55.83232421875002],[29.82392578125004,55.79511718749998],[29.74414062499997,55.770410156249994],[29.630078125000097,55.75117187499998],[29.482226562500074,55.6845703125],[29.412988281249994,55.72485351562506],[29.35341796875005,55.784375],[29.375,55.938720703125],[28.284277343750006,56.055908203125],[28.14794921875003,56.142919921875034],[28.202050781250023,56.260400390624994],[28.191699218750045,56.31557617187505],[28.169238281250017,56.386865234374994],[28.11083984375,56.51069335937501],[28.103125,56.545703125000045],[27.89208984375003,56.741064453125034],[27.88154296875001,56.82416992187501],[27.848632812500057,56.85341796875002],[27.806054687499994,56.86708984375005],[27.639453125000074,56.84565429687504],[27.83027343750004,57.19448242187505],[27.83828125000008,57.247705078124966],[27.82861328124997,57.293310546875006],[27.796875,57.316943359375045],[27.538671875000063,57.429785156250034],[27.51113281250005,57.508154296875006],[27.469726562500057,57.524023437500034],[27.35195312500005,57.528125],[27.4,57.66679687499999],[27.542089843750063,57.799414062500006],[27.778515625000068,57.87070312500006],[27.502441406250057,58.221337890624994],[27.434179687500006,58.787255859374994],[28.15107421875004,59.374414062499966],[28.0125,59.484277343749966],[28.05800781250008,59.781542968750045],[28.334570312500034,59.69252929687502],[28.518164062500034,59.849560546874955],[28.947265625000057,59.828759765624994],[29.147265625000045,59.999755859375],[30.12255859374997,59.873583984375074],[30.172656250000017,59.957128906250034],[29.72119140624997,60.19531249999997],[29.069140625000017,60.19145507812499],[28.643164062500006,60.375292968750045],[28.512792968750006,60.67729492187502],[27.797656250000074,60.53613281250003],[29.69013671875004,61.54609375000001],[31.18671875000004,62.48139648437504],[31.533984375000017,62.885400390624994],[31.180859375000097,63.208300781250074],[29.991503906250074,63.73515625000002],[30.50390625000003,64.02060546875],[30.513769531250006,64.2],[30.04189453125005,64.44335937499997],[30.072851562500063,64.76503906250005],[29.60419921875004,64.968408203125],[29.826953125000017,65.14506835937502],[29.608007812500006,65.248681640625],[29.715917968750063,65.62456054687502],[30.102734375000097,65.72626953125004],[29.066210937500045,66.89174804687497],[29.988085937500017,67.66826171874999],[29.343847656250006,68.06186523437506],[28.685156250000034,68.189794921875],[28.470703125000057,68.48837890625],[28.77285156250005,68.84003906249995],[28.414062500000057,68.90415039062506],[28.96582031250003,69.02197265625],[29.38828125,69.29814453125005],[30.08730468750005,69.43286132812503],[30.18017578124997,69.63583984375],[30.860742187499994,69.53842773437503],[30.869726562500006,69.78344726562506],[31.546972656250063,69.696923828125],[31.997949218749994,69.80991210937503],[31.98457031250004,69.95366210937499],[33.00781249999997,69.72211914062498],[32.91503906249997,69.60170898437497],[32.17675781250003,69.67402343749995],[32.37773437500002,69.47910156250003],[32.99980468750002,69.4701171875],[32.97890625000005,69.367333984375],[33.45429687500004,69.42817382812495],[33.14121093750006,69.068701171875],[33.684375,69.31025390625001],[35.85791015625003,69.19174804687503],[37.73056640625006,68.69213867187503],[38.43017578125003,68.35561523437505],[39.568945312500006,68.07172851562501],[39.82333984375006,68.05859375],[39.80927734375004,68.15083007812498],[40.38066406250002,67.831884765625],[40.96640625000006,67.71347656250003],[41.358789062499994,67.20966796874998],[41.18896484375003,66.82617187500003],[40.10332031250002,66.29995117187502],[38.65390625000006,66.06904296874995],[35.51347656250002,66.39580078125002],[34.82460937499999,66.61113281249999],[34.48261718750004,66.55034179687505],[34.4515625,66.651220703125],[33.15019531250002,66.84394531250001],[32.93046875000002,67.08681640625002],[31.895312500000074,67.16142578125002],[33.65595703125004,66.44262695312506],[33.36054687500004,66.32954101562501],[34.112695312499994,66.225244140625],[34.69179687500005,65.95185546874998],[34.77695312500006,65.76826171874998],[34.40644531250004,65.39575195312503],[35.03535156250004,64.44023437500005],[35.802050781250074,64.3353515625],[36.3649414062501,64.00283203125002],[37.44218750000002,63.813378906249966],[37.9679687500001,63.949121093749994],[38.0622070312501,64.09101562499995],[37.953710937500006,64.32011718749999],[37.183691406250006,64.40849609375007],[36.6242187500001,64.75053710937502],[36.534570312499994,64.93862304687497],[36.88281249999997,65.17236328124997],[39.7580078125001,64.57705078125002],[40.05781250000004,64.77075195312497],[40.44492187500006,64.7787109375],[39.7980468750001,65.349853515625],[39.816503906250006,65.59794921874999],[41.4757812500001,66.12343750000002],[42.21054687500006,66.51967773437502],[43.23320312500002,66.41552734375003],[43.653125,66.2509765625],[43.54189453125005,66.12338867187503],[43.84375,66.14238281249999],[44.10439453125005,66.00859374999999],[44.42929687500006,66.93774414062503],[43.7824218750001,67.25449218749998],[44.20468750000006,68.25375976562498],[43.33320312500004,68.67338867187502],[44.04804687500004,68.54882812499997],[45.891992187499994,68.47968750000001],[46.69042968750003,67.84882812500001],[45.52871093750005,67.75756835937497],[44.90214843750002,67.41313476562505],[45.56220703125004,67.18559570312507],[45.88535156250006,66.89106445312501],[46.4923828125001,66.80019531249997],[47.65585937500006,66.97592773437498],[47.87470703125004,67.58417968749998],[48.83320312500004,67.681494140625],[48.75429687500005,67.89594726562501],[49.15527343750003,67.87041015625005],[51.994726562500006,68.53876953124995],[52.3966796875001,68.35170898437505],[52.72265624999997,68.484033203125],[52.34404296875002,68.60815429687497],[53.80195312500004,68.99589843750002],[54.49121093750003,68.992333984375],[53.797656250000074,68.90747070312503],[53.9308593750001,68.43554687499997],[53.260546875000074,68.26748046875002],[54.476171875,68.29414062499995],[54.86132812500003,68.20185546874998],[55.418066406250006,68.56782226562501],[56.04365234375004,68.64887695312501],[57.126855468749994,68.55400390625005],[58.17304687500004,68.88974609375006],[59.0573242187501,69.00605468750004],[59.37050781250005,68.73837890625003],[59.09902343750005,68.4443359375],[59.725683593750006,68.35161132812502],[59.89599609374997,68.70634765624999],[60.489160156249994,68.72895507812498],[60.93359374999997,68.98676757812501],[60.17060546875004,69.59091796875],[60.90908203125005,69.84711914062495],[64.19042968750003,69.53466796875],[64.89628906250002,69.247802734375],[67.00244140625003,68.87358398437505],[68.37119140625006,68.31425781250005],[69.14052734375005,68.95063476562501],[68.54277343750002,68.96708984374999],[68.00585937499997,69.48002929687505],[67.62412109375,69.58442382812501],[67.06445312500003,69.69370117187498],[66.89667968750004,69.55380859374998],[67.28476562500006,70.73872070312498],[67.14335937500002,70.83754882812502],[66.70224609375006,70.81850585937497],[66.63964843749997,71.08139648437498],[68.2692382812501,71.68281250000001],[69.61181640625003,72.98193359375],[69.73828124999997,72.88496093749998],[71.5001953125001,72.91367187500003],[72.812109375,72.69140624999997],[72.57412109375,72.01254882812506],[71.86728515625,71.457373046875],[72.70449218750005,70.96323242187498],[72.5767578125,68.96870117187498],[73.59169921875005,68.48188476562501],[73.13945312500002,68.18134765624998],[73.06679687500005,67.766943359375],[71.84746093750002,67.00761718750005],[71.36523437500003,66.96152343749998],[71.53955078125003,66.68310546875],[70.72490234375007,66.51943359374997],[70.38281249999997,66.60249023437501],[70.69072265625002,66.74531249999998],[70.2833984375001,66.68579101562503],[69.8771484375001,66.84545898437506],[69.21777343749997,66.82861328125],[69.01347656250002,66.78833007812503],[69.19433593749997,66.57866210937505],[70.33945312500006,66.34238281250006],[71.35800781250006,66.35942382812505],[71.91699218749997,66.24672851562502],[72.32158203125002,66.33212890625],[72.4173828125,66.56079101562506],[73.79208984375,66.99531250000001],[74.07451171875007,67.41411132812499],[74.76953124999997,67.76635742187497],[74.39140625000007,68.42060546874995],[74.57958984375003,68.751220703125],[76.10751953125006,68.975732421875],[76.45917968750004,68.97827148437497],[77.2384765625001,68.46958007812498],[77.17441406250012,67.77851562499998],[77.77158203125006,67.57026367187501],[78.92246093750006,67.58911132812503],[77.58828125000005,67.75190429687498],[77.66484375000002,68.19038085937495],[77.99511718749997,68.25947265624998],[77.65068359375007,68.90302734375001],[76.00097656249997,69.23505859374998],[75.42001953125,69.23862304687498],[74.81484375,69.09057617187503],[73.83603515625006,69.143212890625],[73.578125,69.80297851562503],[74.34335937500006,70.57871093749998],[73.08623046875007,71.44492187500006],[73.67177734375,71.84506835937503],[74.99218749999997,72.14482421874999],[74.78681640625004,72.811865234375],[75.15244140625,72.85273437499998],[75.74140625000004,72.29624023437503],[75.273828125,71.95893554687495],[75.33203125000003,71.34174804687498],[76.92900390625002,71.12788085937504],[77.58964843750007,71.16791992187501],[78.32060546875002,70.93041992187503],[78.94218750000002,70.93378906250001],[79.08388671875,71.00200195312505],[78.58769531250007,70.993896484375],[78.21259765625004,71.26630859374998],[76.43339843750002,71.55249023437503],[76.03242187500004,71.91040039062503],[76.87138671875002,72.03300781250005],[77.77753906250004,71.83642578125006],[78.23242187500003,71.95229492187502],[78.01640625000007,72.092041015625],[77.49287109375004,72.07172851562504],[77.47158203125,72.19213867187506],[78.22539062500007,72.37744140625006],[79.4220703125001,72.38076171875002],[80.7625,72.08916015625002],[81.66162109374997,71.71596679687502],[82.75781250000003,71.76411132812498],[83.23359375000004,71.66816406249995],[82.32285156250006,71.26000976562503],[82.16318359375012,70.59814453125003],[82.22119140625003,70.39570312499998],[82.86914062499997,70.95483398437503],[83.03017578125,70.58051757812498],[82.6823242187501,70.21772460937498],[83.0807617187501,70.09301757812497],[83.07382812500012,70.276708984375],[83.73593750000006,70.54648437499998],[83.15126953125005,71.10361328124998],[83.534375,71.68393554687498],[83.20029296875012,71.87470703125004],[82.64541015625005,71.92524414062504],[82.09365234375,72.26542968750005],[80.82705078125005,72.48828124999997],[80.84160156250007,72.94916992187498],[80.4245117187501,73.23115234374998],[80.5832031250001,73.56845703125003],[85.20058593750005,73.72153320312506],[86.89296875,73.88710937500002],[85.79257812500012,73.438330078125],[86.67705078125002,73.10678710937503],[85.93896484374997,73.45649414062495],[87.12011718750003,73.61503906250002],[87.57119140625,73.81074218750001],[86.57109375000007,74.24375],[86.0013671875,74.316015625],[86.39580078125007,74.45009765624997],[86.89794921874997,74.32534179687497],[87.22968750000004,74.3638671875],[85.79101562499997,74.6451171875],[86.20126953125006,74.81621093750005],[86.65146484375012,74.68242187500005],[87.04179687500007,74.77885742187499],[87.46757812500002,75.01323242187505],[86.93906250000006,75.06811523437503],[87.00595703125012,75.16982421874997],[87.67138671874997,75.12958984375004],[90.18496093750005,75.59106445312497],[94.07519531249997,75.91289062499999],[92.89042968750002,75.90996093750002],[93.25927734375003,76.09877929687502],[95.57871093750012,76.13730468749998],[96.07548828125007,76.08198242187498],[95.65332031250003,75.89218750000003],[96.50859375000002,76.00556640624995],[96.49707031249997,75.89121093750003],[98.66201171875005,76.24267578125003],[99.77041015625,76.02875976562498],[99.5407226562501,75.79858398437497],[99.85136718750007,75.93027343749998],[99.8253906250001,76.13593749999995],[98.80566406250003,76.48066406250004],[100.84375,76.52519531250005],[101.59775390625006,76.43920898437503],[100.92802734375002,76.55673828124998],[100.98994140625004,76.99047851562497],[102.61015625000007,77.508544921875],[104.01455078125,77.73041992187501],[106.05957031249997,77.39052734375002],[104.20244140625002,77.101806640625],[106.9416015625001,77.034375],[107.42978515625006,76.92656250000002],[106.41357421874997,76.51225585937499],[107.72216796875003,76.52231445312498],[108.18164062500003,76.73784179687502],[111.39248046875,76.686669921875],[112.09394531250004,76.48032226562506],[111.94267578125002,76.38046875000003],[112.61953125,76.38354492187506],[112.65625,76.05356445312498],[113.2726562500001,76.25166015625001],[113.5638671875,75.89165039062502],[113.85722656250007,75.92128906250002],[113.56757812500004,75.56840820312499],[112.45302734375,75.83017578125003],[112.95566406250006,75.571923828125],[113.24296875000007,75.61142578125003],[113.72617187500012,75.45063476562498],[112.92490234375012,75.01503906249997],[109.84033203124997,74.32197265624998],[109.8102539062501,74.16918945312503],[108.19951171875002,73.69409179687497],[107.27109375000006,73.62104492187501],[106.67939453125004,73.3306640625],[106.1886718750001,73.3080078125],[105.14394531250005,72.77705078125001],[105.7082031250001,72.836669921875],[106.47792968750005,73.13940429687503],[107.750390625,73.17314453125007],[109.33105468749997,73.48745117187497],[109.85527343750002,73.47246093750002],[110.86816406249997,73.73071289062497],[109.70673828125004,73.74375],[110.2614257812501,74.01743164062503],[111.05625,73.93935546875002],[111.13085937500003,74.05283203125003],[111.55058593750007,74.02851562499998],[111.22812500000012,73.96855468750002],[111.40039062500003,73.827734375],[112.14726562500007,73.70893554687498],[112.79541015625003,73.74609375],[112.83593750000003,73.96206054687502],[113.03281250000006,73.91386718750007],[113.4162109375001,73.647607421875],[113.15693359375004,73.45957031249998],[113.49091796875004,73.34609375000002],[113.12783203125,72.8306640625],[113.66455078124997,72.63452148437503],[113.2155273437501,72.80585937500001],[113.88623046875003,73.34580078124998],[113.51035156250012,73.50498046874998],[115.33769531250007,73.70258789062501],[118.87089843750007,73.53789062500002],[118.45703124999997,73.46440429687507],[118.43027343750012,73.24653320312501],[119.750390625,72.97910156250006],[122.26015625,72.88056640624995],[122.75195312500003,72.906494140625],[122.61523437499997,73.02792968750006],[123.1603515625001,72.95488281250002],[123.62226562500004,73.19326171875],[123.49111328125005,73.666357421875],[124.54121093750004,73.75126953125007],[125.59853515625005,73.447412109375],[126.25449218750012,73.548193359375],[126.55253906250007,73.33491210937498],[127.03134765625006,73.54746093750003],[127.74033203125012,73.48154296875],[129.10058593750003,73.11235351562502],[128.5990234375,72.895166015625],[129.01728515625004,72.8724609375],[129.250390625,72.70517578125003],[128.41826171875002,72.53515625000003],[129.28134765625006,72.43769531249998],[129.41064453124997,72.16630859375002],[128.93496093750005,72.07949218750002],[127.8034179687501,72.43403320312504],[127.84140625000012,72.308251953125],[128.91142578125002,71.75532226562495],[129.21025390625007,71.91694335937501],[129.46083984375,71.73930664062499],[128.84326171875003,71.6634765625],[129.76191406250004,71.11953125000002],[130.53710937500003,70.89252929687495],[130.75712890625002,70.96235351562498],[131.02158203125006,70.74609374999997],[132.0353515625001,71.24404296875],[132.65390625000006,71.92597656250001],[133.6888671875,71.434228515625],[134.70273437500012,71.38681640625003],[135.55917968750006,71.6103515625],[136.09033203125003,71.61958007812501],[137.9396484375001,71.1333984375],[137.84404296875007,71.22680664062503],[138.31406250000006,71.32553710937498],[137.918359375,71.38408203124999],[138.23417968750007,71.596337890625],[138.78017578125,71.62900390624998],[139.209375,71.44477539062501],[139.98417968750007,71.49150390625005],[139.72294921875002,71.88496093749998],[139.35927734375005,71.95136718750001],[140.18769531250004,72.19130859374997],[139.17636718750006,72.16347656249997],[139.14082031250004,72.32973632812502],[139.60117187500012,72.49609374999997],[141.07929687500004,72.5869140625],[140.80820312500006,72.89096679687503],[142.06142578125005,72.72080078125],[146.25292968749997,72.442236328125],[146.234765625,72.34970703125],[144.77636718749997,72.38227539062495],[144.16923828125002,72.25878906250003],[144.29492187499997,72.19262695312497],[146.83183593750007,72.29541015625003],[146.11328125000003,71.94497070312497],[146.23027343750007,72.1375],[145.75859375000007,72.22587890624999],[145.75673828125005,71.94130859375002],[145.06396484374997,71.92607421875002],[145.18857421875012,71.69580078125],[146.07324218749997,71.80834960937503],[147.26181640625006,72.327880859375],[149.50156250000012,72.16430664062497],[150.01689453125002,71.89565429687505],[149.04873046875005,71.79575195312503],[148.9681640625,71.69047851562499],[150.59980468750004,71.5201171875],[150.09765624999997,71.22656249999997],[150.96777343749997,71.38046874999998],[151.58242187500005,71.28696289062503],[152.09277343749997,71.02329101562503],[151.76201171875002,70.98247070312499],[152.50878906250003,70.83447265625003],[156.68457031250003,71.09375],[158.03701171875005,71.03925781250001],[159.35068359375006,70.79072265625001],[160.00644531250006,70.30966796875006],[159.72939453125005,69.87021484375006],[160.91074218750012,69.60634765625002],[161.03554687500005,69.09819335937507],[161.30986328125007,68.98227539062498],[160.85605468750006,68.53833007812506],[161.565625,68.90517578125],[161.53691406250002,69.379541015625],[162.16601562499997,69.61157226562503],[163.20136718750004,69.71474609375],[166.82031250000003,69.49956054687505],[167.8568359375,69.72822265624998],[168.30302734375002,69.27148437500003],[169.31064453125006,69.07954101562498],[169.60986328124997,68.78603515624997],[170.53759765624997,68.82539062500001],[170.99541015625002,69.04531250000005],[170.58222656250004,69.58334960937506],[170.16093750000007,69.62656249999998],[170.48681640625003,70.107568359375],[173.27744140625006,69.823828125],[173.43867187500004,69.94682617187502],[175.92148437500012,69.89531250000002],[179.27265624999998,69.25966796875002],[180,68.98344726562505],[180,65.06723632812498],[178.51953125000003,64.60297851562498],[177.7486328125,64.71704101562503],[176.88085937499997,65.08193359375002],[176.34101562500015,65.04731445312501],[177.03730468750004,64.99965820312497],[177.22285156250004,64.861669921875],[177.06875,64.78666992187502],[176.06113281250012,64.96088867187498],[174.54882812500009,64.68388671875005],[176.0565429687501,64.90473632812498],[176.35097656250005,64.70512695312502],[176.14091796875007,64.58583984375005],[177.42744140625015,64.76337890624998],[177.43291015625002,64.44448242187502],[177.6875,64.30473632812507],[178.04472656250013,64.21958007812503],[178.22949218749991,64.36440429687497],[178.38144531250018,64.26088867187502],[178.73144531250003,63.667089843750006],[178.44042968750009,63.605566406250006],[178.74404296874994,63.39477539062503],[178.79296874999997,63.54033203125002],[179.38857421875,63.14721679687497],[179.25957031250002,63.00830078125],[179.5705078125001,62.6875],[179.12070312500012,62.32036132812499],[177.292578125,62.59902343750002],[177.33896484375006,62.781347656250034],[177.02353515625012,62.777246093749994],[177.15947265625007,62.56098632812498],[174.51435546875015,61.823632812499966],[173.6234375,61.716064453125],[173.13183593749997,61.40664062500002],[172.85654296875006,61.469189453124955],[172.90800781250002,61.311621093750006],[172.39609375000006,61.16738281250002],[172.39277343750004,61.061767578125],[170.60820312500007,60.434912109375034],[170.3509765625,59.965527343749955],[169.9826171875001,60.067089843749955],[169.2267578125001,60.59594726562497],[168.1375,60.57392578125001],[167.22675781250004,60.406298828125045],[166.27304687500012,59.85625],[166.13603515625007,59.979345703125034],[166.35214843750006,60.48481445312498],[165.08457031250006,60.09858398437498],[164.95371093750006,59.843603515625006],[164.52529296875,60.06127929687503],[164.11328125000003,59.89755859374998],[164.13505859375002,59.984375],[163.74384765625004,60.02802734374998],[163.36484375000012,59.78144531250004],[163.27285156250005,59.302587890625006],[162.14160156249997,58.44741210937502],[161.96005859375012,58.07690429687506],[162.39140625000002,57.717236328124955],[162.65429687499997,57.94824218750003],[163.22578125000004,57.790380859375034],[162.77929687500003,57.35761718749998],[162.79111328125012,56.875390624999966],[162.92207031250004,56.72265625000003],[163.2565429687501,56.68803710937499],[163.33554687500012,56.232519531250006],[163.04736328125003,56.044677734375],[162.84033203125003,56.065625],[162.628125,56.232275390625034],[163.03837890625002,56.521875],[162.67148437500006,56.49008789062498],[162.52822265625005,56.260693359374955],[162.08496093749997,56.08964843750002],[161.72392578125002,55.49614257812499],[162.10556640625006,54.75214843750004],[161.62480468750002,54.51625976562502],[160.77265625000004,54.54135742187498],[160.0744140625001,54.18916015625001],[159.84375,53.78364257812498],[160.02509765625004,53.129589843749955],[159.58593750000003,53.237695312499966],[158.74541015625002,52.90893554687506],[158.47207031250005,53.032373046874966],[158.6087890625,52.873632812500034],[158.49316406249997,52.383154296875034],[158.10351562500003,51.80961914062499],[156.84746093750002,51.006591796875],[156.74775390625004,50.969287109375045],[156.52119140625004,51.38027343750002],[156.36474609374997,52.509375],[156.11035156250003,52.86616210937504],[155.62031250000004,54.86455078125002],[155.5548828125001,55.348486328125034],[155.98251953125012,56.69521484375002],[156.8488281250001,57.290185546874994],[156.97675781250004,57.46630859375],[156.82988281250007,57.77963867187498],[157.4503906250001,57.79926757812498],[157.66640625000005,58.01977539062506],[158.27519531250007,58.00898437499998],[159.21064453125004,58.519433593749966],[159.8473632812501,59.127148437499955],[161.75351562500012,60.15229492187501],[162.06816406250002,60.466406250000034],[163.70996093749997,60.916796875000045],[163.55351562500002,61.02563476562503],[164.00546875000006,61.34379882812499],[163.80439453125004,61.46137695312498],[164.20722656250004,62.29223632812506],[164.59833984375004,62.470556640625034],[165.20810546875012,62.37397460937501],[165.41738281250005,62.447070312500045],[164.418359375,62.704638671875045],[163.33173828125004,62.550927734374994],[163.01767578125006,61.89106445312504],[163.25781249999997,61.69946289062497],[163.08525390625002,61.570556640625],[162.85595703125003,61.705029296874955],[162.39257812500003,61.662109375],[160.76660156249997,60.753320312499966],[160.17363281250002,60.638427734375],[160.37890625000003,61.02548828124998],[159.79042968750005,60.956640625],[160.309375,61.894384765625006],[159.55234375000012,61.71948242187497],[159.18925781250007,61.92939453125001],[158.07011718750002,61.75361328125001],[157.46933593750012,61.798925781250006],[157.0841796875001,61.67568359375002],[155.71611328125002,60.682373046875],[154.97080078125012,60.376660156249955],[154.29306640625006,59.833349609375034],[154.1498046875,59.52851562500001],[154.97128906250006,59.44960937500002],[155.16044921875002,59.19013671875001],[154.45800781250003,59.21655273437497],[154.01093750000004,59.075537109375006],[153.69521484375005,59.22475585937505],[153.36113281250002,59.214794921874955],[152.81787109375003,58.92626953124997],[152.31962890625002,59.03076171875003],[152.08789062499997,58.910449218750045],[151.32675781250006,58.875097656250034],[151.12109375000003,59.08251953125003],[152.26064453125,59.22358398437498],[151.34824218750012,59.561132812500006],[150.4835937500001,59.494384765625],[150.66728515625002,59.55634765625001],[149.64257812499997,59.770410156249994],[149.06523437500002,59.63051757812502],[149.20498046875,59.488183593749966],[148.79707031250004,59.532324218750006],[148.74414062499997,59.37353515624997],[148.96464843750007,59.36914062499997],[148.72666015625006,59.257910156250034],[148.25742187500006,59.414208984374994],[147.51445312500002,59.2685546875],[146.53720703125006,59.45698242187501],[146.0495117187501,59.17055664062502],[145.55458984375,59.413525390624955],[143.19218750000002,59.3701171875],[142.58027343750004,59.240136718749966],[140.79023437500004,58.30346679687503],[140.446875,57.81367187499998],[138.66210937500003,56.96552734375004],[137.69150390625006,56.13935546875004],[135.2625,54.94331054687498],[135.25771484375005,54.73149414062499],[135.85156249999997,54.583935546874955],[136.797265625,54.62099609375005],[136.71884765625006,53.804101562499994],[137.15537109375012,53.82167968750002],[137.14160156249997,54.182226562500006],[137.66601562500003,54.283300781250006],[137.3392578125,54.10053710937498],[137.83476562500002,53.94672851562498],[137.25371093750007,53.546142578125],[137.95048828125007,53.60356445312499],[138.52792968750012,53.959863281249994],[138.56914062500002,53.818798828124955],[138.24970703125004,53.524023437500034],[138.45068359375003,53.53701171875002],[138.69941406250004,53.869726562500034],[138.65722656249997,54.29833984375003],[139.31972656250005,54.19296874999998],[139.707421875,54.27714843749999],[140.68759765625012,53.59643554687503],[141.3737304687501,53.29277343749999],[141.18125,53.01528320312505],[140.83964843750002,53.087890625],[141.25585937499997,52.84013671874996],[141.13242187500006,52.435693359374994],[141.48525390625,52.17851562500002],[141.36689453125004,51.92065429687506],[140.93261718750003,51.61992187499999],[140.5208984375,50.80019531250005],[140.62451171874997,50.08242187500002],[140.46269531250002,49.911474609375006],[140.51718750000012,49.59614257812498],[140.17060546875004,48.52368164062497],[138.58681640625005,47.057226562500006],[138.33691406250003,46.543408203124955],[137.68544921875,45.81835937500003],[136.14228515625004,44.489111328125034],[135.87460937500012,44.37353515625003],[135.1310546875001,43.52573242187506],[134.01044921875004,42.94746093750001],[133.15996093750007,42.69697265624998],[132.70898437500003,42.875830078125006],[132.30380859375006,42.88330078125],[132.30957031249997,43.31352539062499],[131.8666015625,43.09516601562501],[131.93896484374997,43.30195312500004],[131.15830078125012,42.62602539062499],[130.709375,42.656396484374966],[130.8341796875001,42.52294921875006],[130.68730468750007,42.30253906249999]]],[[[107.69550781250004,78.13090820312505],[107.48164062500004,78.057763671875],[106.41552734375003,78.13984375000001],[107.69550781250004,78.13090820312505]]],[[[102.88476562499997,79.25395507812505],[102.4123046875001,78.83544921874997],[103.80078124999997,79.14926757812503],[104.45205078125005,78.880029296875],[105.14599609375003,78.81884765625006],[105.31259765625012,78.49990234375],[104.74179687500012,78.33974609374997],[102.79667968750007,78.18789062500002],[101.20410156249997,78.19194335937505],[99.50029296875002,77.97607421875003],[101.590625,79.350439453125],[102.25126953125002,79.25605468749995],[102.40488281250006,79.43320312499998],[102.88476562499997,79.25395507812505]]],[[[76.24892578125005,79.65107421874995],[77.58896484375012,79.50190429687504],[76.64951171875012,79.493408203125],[76.24892578125005,79.65107421874995]]],[[[92.68349609375005,79.685205078125],[91.37626953125007,79.83549804687505],[91.22929687500007,80.03071289062504],[93.803125,79.904541015625],[92.68349609375005,79.685205078125]]],[[[51.409277343750006,79.94423828125],[50.09140625,79.98056640625003],[50.93632812500002,80.09423828125],[51.409277343750006,79.94423828125]]],[[[59.68886718750005,79.95581054687506],[58.91923828125002,79.98461914062506],[59.54453125000006,80.11884765624995],[59.68886718750005,79.95581054687506]]],[[[97.67451171875004,80.15825195312499],[97.65166015625002,79.76064453125],[98.59648437500002,80.05219726562495],[100.0612304687501,79.77709960937506],[99.68066406250003,79.32333984374998],[99.04179687500007,79.29301757812502],[99.92929687500012,78.96142578124997],[98.41113281250003,78.78779296875004],[95.53105468750007,79.09809570312501],[95.02041015625005,79.05268554687498],[94.21875,79.40234375],[93.07080078124997,79.49531250000001],[94.98730468749997,80.096826171875],[95.28134765625012,80.030517578125],[97.67451171875004,80.15825195312499]]],[[[50.05175781250003,80.07431640625003],[49.55605468750005,80.15893554687503],[49.883691406249994,80.230224609375],[50.05175781250003,80.07431640625003]]],[[[57.07871093750006,80.35092773437498],[56.986914062500006,80.07148437499998],[55.811621093750006,80.08715820312497],[56.02441406250003,80.34130859374997],[57.07871093750006,80.35092773437498]]],[[[53.521386718749994,80.18520507812497],[52.34355468750002,80.213232421875],[52.85390625,80.40239257812499],[53.85166015625006,80.26835937500005],[53.521386718749994,80.18520507812497]]],[[[57.95625,80.12324218749995],[57.33232421875002,80.15810546875005],[57.075,80.49394531249999],[59.25546875000006,80.34321289062501],[58.39794921874997,80.31875],[57.95625,80.12324218749995]]],[[[54.41533203125002,80.47280273437502],[53.811914062499994,80.47622070312502],[53.87724609375002,80.60527343750002],[54.41533203125002,80.47280273437502]]],[[[47.441992187500006,80.853662109375],[48.44570312500005,80.80600585937506],[48.68359375000003,80.63325195312504],[47.7052734375001,80.76518554687499],[46.141406250000074,80.44672851562495],[45.969042968750074,80.56948242187502],[44.9049804687501,80.61127929687501],[47.441992187500006,80.853662109375]]],[[[62.167773437500074,80.83476562500005],[62.07578125000006,80.616943359375],[61.05126953124997,80.418603515625],[60.27832031249997,80.49443359374999],[59.649804687499994,80.43125],[59.59228515625003,80.81650390624998],[62.167773437500074,80.83476562500005]]],[[[50.278125,80.92724609374997],[51.70361328125003,80.68764648437502],[48.81103515625003,80.35371093750001],[48.97753906250003,80.16259765624997],[47.73730468749997,80.08168945312502],[47.89296875000005,80.23925781249997],[46.991015625000074,80.182763671875],[46.644433593749994,80.30034179687507],[47.89580078125002,80.52905273437503],[49.087792968749994,80.515771484375],[49.24433593750004,80.82138671875],[50.278125,80.92724609374997]]],[[[80.02666015625007,80.84814453125003],[79.09853515625005,80.81206054687505],[79.21738281250012,80.96035156249997],[80.27958984375007,80.94980468750003],[80.02666015625007,80.84814453125003]]],[[[61.1408203125001,80.95034179687497],[60.0783203125001,80.99916992187497],[61.45742187499999,81.10395507812501],[61.1408203125001,80.95034179687497]]],[[[54.71894531250004,81.11596679687497],[56.47226562500006,80.99824218749995],[57.58037109375002,80.75546874999998],[55.88339843750006,80.62841796875003],[54.66816406250004,80.73867187500002],[54.04541015624997,80.87197265625],[54.71894531250004,81.11596679687497]]],[[[58.62236328125002,81.04165039062502],[58.930566406249994,80.83168945312497],[58.28564453124997,80.76489257812503],[57.21093749999997,81.01708984374997],[58.04951171875004,81.11845703125002],[58.62236328125002,81.04165039062502]]],[[[63.37382812500002,80.70009765624997],[62.59257812500002,80.85302734375006],[64.80205078125002,81.197265625],[65.43740234375005,80.93071289062507],[63.37382812500002,80.70009765624997]]],[[[91.56718750000007,81.14121093750003],[91.2228515625001,81.063818359375],[89.90117187500002,81.17070312500002],[91.56718750000007,81.14121093750003]]],[[[96.52656250000004,81.0755859375],[97.86992187500007,80.76328125000006],[97.02539062499997,80.53554687500002],[97.29843750000006,80.27275390625005],[93.6546875,80.009619140625],[91.52382812500005,80.35854492187502],[93.2625,80.79125976562497],[92.59257812500007,80.780859375],[92.7103515625,80.87216796875003],[95.1595703125,81.27099609375003],[95.80068359375005,81.28046874999998],[96.52656250000004,81.0755859375]]],[[[57.81025390625004,81.54604492187502],[58.563867187499994,81.41840820312504],[57.858691406250074,81.36806640625],[57.76972656250004,81.16972656249999],[55.71669921875005,81.1884765625],[55.46601562500004,81.31118164062502],[57.81025390625004,81.54604492187502]]],[[[63.65097656250006,81.60932617187501],[62.10644531249997,81.679345703125],[63.709570312500006,81.68730468750002],[63.65097656250006,81.60932617187501]]],[[[58.29541015625003,81.715185546875],[58.13457031250002,81.82797851562498],[59.261816406250006,81.85419921874998],[59.35644531250003,81.75898437499995],[58.29541015625003,81.715185546875]]]]},"properties":{"name":"Russia","childNum":73}},{"geometry":{"type":"Polygon","coordinates":[[[30.50996093750001,-1.067285156250009],[30.47705078125,-1.0830078125],[30.47021484375,-1.131152343750003],[30.508105468750017,-1.208203125000011],[30.631933593750006,-1.367480468750003],[30.710742187500017,-1.396777343750003],[30.76220703125,-1.458691406250011],[30.812597656250006,-1.563085937500006],[30.8765625,-2.143359375],[30.85498046875,-2.265429687500003],[30.828710937500006,-2.338476562500006],[30.7625,-2.371679687500006],[30.71484375,-2.363476562500011],[30.656640625000023,-2.373828125],[30.593359375,-2.396777343750003],[30.553613281250023,-2.400097656250011],[30.408496093750017,-2.31298828125],[30.117285156250006,-2.416601562500006],[29.93017578125,-2.339550781250011],[29.8681640625,-2.71640625],[29.698046875000017,-2.794726562500003],[29.390234375,-2.80859375],[29.10205078125,-2.595703125],[29.01435546875001,-2.72021484375],[28.893945312500023,-2.635058593750003],[28.876367187500023,-2.400292968750009],[29.13154296875001,-2.195117187500003],[29.196582031250017,-1.719921875000011],[29.576953125000017,-1.387890625000011],[29.82539062500001,-1.335546875],[29.930078125000023,-1.469921875000011],[30.360253906250023,-1.074609375],[30.41230468750001,-1.063085937500006],[30.46992187500001,-1.066015625],[30.50996093750001,-1.067285156250009]]]},"properties":{"name":"Rwanda","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[41.98769531250005,16.715625],[42.059960937499994,16.803515625000017],[42.15781250000006,16.570703125000023],[41.80156250000002,16.778759765624955],[41.86044921875006,17.002539062499977],[41.98769531250005,16.715625]]],[[[46.53144531250004,29.09624023437499],[47.433203125,28.989550781250017],[47.671289062499994,28.53315429687504],[48.442480468750006,28.542919921874983],[48.80898437499999,27.895898437499966],[48.797167968750074,27.72431640625001],[49.2375,27.49272460937499],[49.17509765625002,27.43764648437505],[49.40527343749997,27.18095703124996],[50.149804687499994,26.66264648437499],[50.00810546875002,26.678515625000017],[50.21386718750003,26.30849609375005],[50.15546875000004,26.100537109374955],[50.03164062499999,26.11098632812505],[50.55791015625002,25.086669921875],[50.66689453125005,24.96381835937501],[50.72558593749997,24.869384765625057],[50.80439453125004,24.789257812499983],[50.928320312500006,24.595117187500023],[50.96601562500004,24.573925781249983],[51.022753906250074,24.56523437499999],[51.09335937500006,24.564648437499955],[51.178027343750074,24.586718750000017],[51.26796875,24.607226562500017],[51.33847656250006,24.564355468749994],[51.41123046875006,24.570800781250057],[51.30986328125002,24.340380859375017],[51.56835937500003,24.286181640625074],[51.592578125000074,24.07885742187503],[52.55507812500005,22.932812499999955],[55.104296875000074,22.621484375000023],[55.185839843750074,22.7041015625],[55.64101562499999,22.001855468749994],[54.97734375000002,19.995947265625006],[51.977636718750006,18.996142578125074],[49.04199218750003,18.58178710937503],[48.17216796875002,18.156933593749983],[47.57958984374997,17.448339843750034],[47.44179687499999,17.111865234375045],[47.14355468749997,16.946679687499966],[46.97568359375006,16.953466796875034],[46.72763671875006,17.26557617187501],[45.5353515625001,17.30205078124999],[45.14804687500006,17.427441406249955],[43.91699218749997,17.32470703124997],[43.41796875000003,17.516259765625023],[43.19091796875003,17.359375],[43.16503906249997,16.689404296874955],[42.79931640624997,16.37177734375001],[42.29394531249997,17.434960937499966],[41.75,17.88574218749997],[41.22949218750003,18.678417968749983],[40.75917968750005,19.755468750000034],[40.080664062500006,20.265917968750017],[39.728320312500074,20.390332031249955],[39.27607421875004,20.973974609375034],[39.093554687500074,21.31035156249999],[39.14707031250006,21.518994140624955],[38.98789062500006,21.88173828125005],[39.06201171874997,22.592187500000023],[38.46416015625002,23.71186523437504],[37.91972656250002,24.185400390625063],[37.54306640625006,24.291650390625023],[37.18085937500004,24.82001953125001],[37.26630859375004,24.960058593750034],[37.14882812499999,25.291113281249977],[35.18046875000002,28.03486328125004],[34.722070312499994,28.130664062500017],[34.625,28.064501953125017],[34.95078125,29.353515625],[36.068457031250006,29.200537109375006],[36.28281250000006,29.355371093750023],[36.47607421874997,29.49511718749997],[36.59179687500003,29.666113281250006],[36.703906250000074,29.831640624999977],[36.75527343750005,29.86601562499996],[37.46923828125003,29.995068359374955],[37.49072265625003,30.01171874999997],[37.55361328125005,30.14458007812496],[37.63359375000002,30.313281250000045],[37.64990234374997,30.330957031249994],[37.669726562500074,30.34814453125003],[37.862890625,30.44262695312503],[37.98007812500006,30.5],[37.47900390624997,31.007763671874955],[37.10527343750002,31.35517578125004],[36.95859375000006,31.491503906250017],[37.215625,31.55610351562501],[37.49335937500004,31.625878906250023],[38.111425781250006,31.78115234375005],[38.37548828124997,31.84746093749996],[38.962304687499994,31.99492187499999],[38.99707031249997,32.00747070312505],[39.145410156249994,32.12451171875],[39.36865234374997,32.09174804687498],[39.70410156250003,32.04252929687499],[40.02783203124997,31.995019531249994],[40.3693359375001,31.93896484375003],[40.47890625000005,31.89335937499999],[42.07441406250004,31.08037109374999],[43.77373046875002,29.84921875],[44.71650390625004,29.19360351562503],[46.35644531250003,29.06367187500001],[46.53144531250004,29.09624023437499]]]]},"properties":{"name":"Saudi Arabia","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[36.87138671875002,21.996728515624994],[36.92695312500001,21.58652343749999],[37.25859375000002,21.108544921874994],[37.25722656250002,21.03940429687499],[37.15058593750001,21.103759765625],[37.14111328125,20.98178710937499],[37.19316406250002,20.12070312499999],[37.471289062500006,18.820117187500003],[38.609472656250006,18.005078125],[38.422460937500006,17.823925781249997],[38.39716796875001,17.778369140625003],[38.38554687500002,17.751269531250003],[38.37373046875001,17.717333984375003],[38.34736328125001,17.68359375],[38.28984375000002,17.637011718750003],[38.26728515625001,17.61669921875],[38.253515625,17.584765625],[37.78242187500001,17.4580078125],[37.547460937500006,17.324121093749994],[37.51015625000002,17.288134765625003],[37.45292968750002,17.108691406250003],[37.41103515625002,17.06171875],[37.24882812500002,17.056884765625],[37.16953125,17.04140625],[37.0615234375,17.061279296875],[37.00898437500001,17.058886718750003],[36.995214843750006,17.020556640625003],[36.97578125000001,16.86655273437499],[36.97871093750001,16.800585937500003],[36.887792968750006,16.624658203124994],[36.91376953125001,16.296191406250003],[36.566015625,15.362109375],[36.4267578125,15.132080078125],[36.44814453125002,14.940087890624994],[36.470800781250006,14.736474609374994],[36.52431640625002,14.2568359375],[36.12519531250001,12.75703125],[35.67021484375002,12.623730468749997],[35.1123046875,11.816552734374994],[34.93144531250002,10.864794921874989],[34.77128906250002,10.746191406249991],[34.571875,10.880175781249989],[34.34394531250001,10.658642578124997],[34.31123046875001,10.190869140624997],[34.078125,9.461523437499991],[33.87148437500002,9.506152343749989],[33.96328125000002,9.861767578124997],[33.90703125000002,10.181445312499989],[33.13007812500001,10.745947265624991],[33.073339843750006,11.606103515624994],[33.199316406250006,12.21728515625],[32.721875,12.223095703124997],[32.73671875000002,12.009667968749994],[32.072265625,12.006738281249994],[32.338476562500006,11.710107421874994],[32.42080078125002,11.089111328125],[31.224902343750017,9.799267578124997],[30.75537109375,9.731201171875],[30.003027343750006,10.277392578124989],[29.60546875,10.065087890624994],[29.47314453125,9.768603515624989],[28.979589843750006,9.594189453124997],[28.844531250000017,9.326074218749994],[28.048925781250006,9.32861328125],[27.880859375,9.601611328124989],[27.07421875,9.613818359374989],[26.65869140625,9.484130859375],[25.91914062500001,10.169335937499994],[25.858203125000017,10.406494140625],[25.211718750000017,10.329931640624991],[25.066992187500006,10.293798828124991],[24.785253906250006,9.774658203125],[24.53193359375001,8.886914062499997],[24.147363281250023,8.665625],[23.53730468750001,8.815820312499994],[23.46826171875,9.11474609375],[23.62265625,9.340625],[23.646289062500017,9.822900390624994],[22.86005859375001,10.919677734375],[22.922656250000017,11.344873046874994],[22.591113281250017,11.579882812499989],[22.580957031250023,11.990136718749994],[22.472460937500017,12.067773437499994],[22.352343750000017,12.660449218749989],[21.928125,12.678125],[21.825292968750006,12.79052734375],[22.228125,13.32958984375],[22.1064453125,13.7998046875],[22.53857421875,14.161865234375],[22.38154296875001,14.550488281249997],[22.6708984375,14.722460937500003],[22.93232421875001,15.162109375],[22.933886718750017,15.533105468749994],[23.10517578125001,15.702539062499994],[23.970800781250006,15.721533203124991],[23.980273437500017,19.496630859375003],[23.980273437500017,19.99594726562499],[24.9794921875,20.002587890624994],[24.980273437500017,21.995849609375],[28.036425781250017,21.995361328125],[31.092675781250023,21.994873046875],[31.260644531250023,22.00229492187499],[31.400292968750023,22.202441406250003],[31.486132812500017,22.14780273437499],[31.434472656250023,21.995849609375],[36.87138671875002,21.996728515624994]]]},"properties":{"name":"Sudan","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[34.078125,9.461523437499991],[34.07275390625,8.545263671874991],[33.95332031250001,8.443505859374994],[33.28105468750002,8.437255859375],[32.99892578125002,7.899511718749991],[33.902441406250006,7.509521484375],[34.06425781250002,7.225732421874994],[34.71064453125001,6.660302734374994],[34.98359375000001,5.858300781249994],[35.26835937500002,5.492285156249991],[35.08447265625,5.311865234374991],[34.87832031250002,5.109570312499997],[34.63984375000001,4.87548828125],[34.38017578125002,4.620654296874989],[34.176855468750006,4.419091796874994],[33.97607421875,4.22021484375],[33.74160156250002,3.985253906249994],[33.568457031250006,3.81171875],[33.489355468750006,3.755078125],[32.99726562500001,3.880175781249989],[32.33574218750002,3.706201171874994],[32.13593750000001,3.519726562499997],[31.79804687500001,3.802636718749994],[31.547167968750017,3.677587890624991],[31.15234375,3.785595703124997],[30.83857421875001,3.49072265625],[30.757226562500023,3.62421875],[30.586718750000017,3.62421875],[30.50830078125,3.835693359375],[30.194921875,3.98193359375],[29.676855468750006,4.5869140625],[29.469628906250023,4.61181640625],[29.224902343750017,4.391894531249989],[28.72705078125,4.504980468749991],[28.427539062500017,4.324169921874997],[28.19208984375001,4.350244140624994],[27.7880859375,4.644677734374994],[27.4033203125,5.109179687499989],[27.143945312500023,5.722949218749989],[26.514257812500006,6.069238281249994],[26.30859375,6.455322265625],[26.36181640625,6.635302734374989],[25.27890625,7.427490234375],[25.18134765625001,7.557226562499991],[25.20039062500001,7.807910156249989],[24.853320312500017,8.137548828124991],[24.291406250000023,8.29140625],[24.147363281250023,8.665625],[24.53193359375001,8.886914062499997],[24.785253906250006,9.774658203125],[25.066992187500006,10.293798828124991],[25.211718750000017,10.329931640624991],[25.858203125000017,10.406494140625],[25.91914062500001,10.169335937499994],[26.65869140625,9.484130859375],[27.07421875,9.613818359374989],[27.880859375,9.601611328124989],[28.048925781250006,9.32861328125],[28.844531250000017,9.326074218749994],[28.979589843750006,9.594189453124997],[29.47314453125,9.768603515624989],[29.60546875,10.065087890624994],[30.003027343750006,10.277392578124989],[30.75537109375,9.731201171875],[31.224902343750017,9.799267578124997],[32.42080078125002,11.089111328125],[32.338476562500006,11.710107421874994],[32.072265625,12.006738281249994],[32.73671875000002,12.009667968749994],[32.721875,12.223095703124997],[33.199316406250006,12.21728515625],[33.073339843750006,11.606103515624994],[33.13007812500001,10.745947265624991],[33.90703125000002,10.181445312499989],[33.96328125000002,9.861767578124997],[33.87148437500002,9.506152343749989],[34.078125,9.461523437499991]]]},"properties":{"name":"S. Sudan","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-12.280615234374977,14.809033203124997],[-12.228417968749994,14.45859375],[-12.019189453124994,14.206494140624997],[-11.960888671874983,13.875292968750003],[-12.05419921875,13.633056640625],[-11.831689453124994,13.315820312499994],[-11.634960937499983,13.369873046875],[-11.390380859375,12.941992187499991],[-11.389404296875,12.404394531249991],[-12.399072265624994,12.340087890625],[-12.930712890624989,12.532275390624989],[-13.061279296875,12.489990234375],[-13.082910156249994,12.633544921875],[-13.729248046875,12.673925781249991],[-14.06484375,12.67529296875],[-14.349218749999977,12.676416015624994],[-15.196093749999989,12.679931640625],[-15.3779296875,12.588964843749991],[-15.574804687499977,12.490380859374994],[-15.839550781249983,12.43789062499999],[-16.144189453124994,12.45742187499999],[-16.24150390624999,12.443310546874997],[-16.41630859374999,12.36767578125],[-16.521337890624977,12.3486328125],[-16.656933593749983,12.364355468749991],[-16.711816406249994,12.354833984374991],[-16.76030273437499,12.52578125],[-16.44287109375,12.609472656249991],[-16.59765625,12.715283203124997],[-16.743896484375,12.58544921875],[-16.763330078124994,13.064160156249997],[-16.648779296874977,13.154150390624991],[-15.834277343749989,13.156445312499997],[-15.814404296874983,13.325146484374997],[-15.286230468749977,13.39599609375],[-15.151123046875,13.556494140624991],[-14.246777343749983,13.23583984375],[-13.826708984374989,13.4078125],[-13.977392578124977,13.54345703125],[-14.405468749999983,13.503710937500003],[-15.108349609374983,13.81210937499999],[-15.426855468749977,13.727001953124997],[-15.509667968749994,13.586230468750003],[-16.56230468749999,13.587304687499994],[-16.766943359374977,13.904931640624994],[-16.618115234374983,14.04052734375],[-16.791748046875,14.004150390625],[-17.168066406249977,14.640625],[-17.345800781249977,14.729296875],[-17.445019531249983,14.651611328125],[-17.53564453125,14.755126953125],[-17.147167968749983,14.922021484374994],[-16.843408203124994,15.293994140625003],[-16.570751953124983,15.734423828125003],[-16.535253906249977,15.83837890625],[-16.502050781249977,15.917333984374991],[-16.480078124999977,16.097216796875003],[-16.441015624999977,16.204541015624997],[-16.239013671875,16.531298828125003],[-15.768212890624994,16.485107421875],[-14.990625,16.676904296874994],[-14.300097656249989,16.580273437499997],[-13.868457031249989,16.148144531249997],[-13.756640624999989,16.172509765624994],[-13.40966796875,16.05917968749999],[-13.105273437499989,15.57177734375],[-12.735253906249994,15.13125],[-12.40869140625,14.889013671874991],[-12.280615234374977,14.809033203124997]]]},"properties":{"name":"Senegal","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[103.9697265625,1.331445312499994],[103.65019531249999,1.325537109374991],[103.81796875000003,1.447070312499989],[103.9697265625,1.331445312499994]]]},"properties":{"name":"Singapore","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-37.10332031249996,-54.065625],[-36.70380859375001,-54.10810546874999],[-36.64741210937498,-54.26230468749996],[-36.32646484374996,-54.251171875],[-35.79858398437497,-54.76347656250002],[-36.08549804687499,-54.86679687500001],[-36.885986328125,-54.33945312499996],[-37.63090820312496,-54.16748046875001],[-37.61884765625001,-54.04208984375004],[-38.017431640625034,-54.008007812500026],[-37.10332031249996,-54.065625]]]},"properties":{"name":"S. Geo. and S. Sandw. Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-5.692138671874972,-15.997753906249997],[-5.782519531250017,-16.00400390625002],[-5.707861328124977,-15.90615234374998],[-5.692138671874972,-15.997753906249997]]]},"properties":{"name":"Saint Helena","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[160.57626953125006,-11.797851562500028],[160.44306640625004,-11.814941406249957],[159.98632812499997,-11.494726562500006],[160.57626953125006,-11.797851562500028]]],[[[166.13320312500005,-10.757812499999972],[165.90400390625004,-10.851464843749966],[165.79101562500003,-10.784765624999963],[166.02382812500005,-10.6611328125],[166.13320312500005,-10.757812499999972]]],[[[161.71533203124997,-10.387304687499991],[162.10537109375005,-10.45380859375004],[162.37333984375002,-10.823242187499986],[161.78681640625004,-10.716894531249991],[161.53789062500007,-10.566406249999972],[161.4870117187501,-10.361425781249963],[161.29394531250003,-10.326464843750031],[161.30478515625012,-10.204394531250031],[161.71533203124997,-10.387304687499991]]],[[[161.54785156249997,-9.625683593749997],[161.55380859375012,-9.769726562500026],[161.40976562500006,-9.681640625000028],[161.36416015625,-9.353417968750037],[161.54785156249997,-9.625683593749997]]],[[[159.75039062500005,-9.272656250000011],[159.97060546875,-9.433300781249969],[160.35458984375006,-9.421582031249983],[160.81894531250006,-9.862792968749986],[160.64921875000002,-9.92861328124998],[159.80273437499997,-9.763476562500003],[159.61230468749997,-9.470703124999943],[159.62558593750012,-9.311230468749969],[159.75039062500005,-9.272656250000011]]],[[[160.1681640625001,-8.995507812500037],[160.40751953125007,-9.140332031249969],[160.10537109375,-9.080761718749997],[160.1681640625001,-8.995507812500037]]],[[[159.18857421875006,-9.123535156250014],[159.03632812500004,-9.075],[159.12978515625,-8.99306640624998],[159.22841796875005,-9.029980468749955],[159.18857421875006,-9.123535156250014]]],[[[158.10791015625003,-8.684179687500034],[157.93759765625006,-8.73642578125002],[157.90927734375006,-8.565625],[158.10546874999997,-8.536816406250026],[158.10791015625003,-8.684179687500034]]],[[[157.38896484375002,-8.713476562499963],[157.2123046875,-8.565039062500006],[157.37949218750012,-8.420898437499943],[157.38896484375002,-8.713476562499963]]],[[[160.7494140625,-8.313964843750014],[160.99765625000006,-8.612011718749983],[160.94433593750003,-8.799023437499983],[161.15869140624997,-8.961816406250009],[161.36738281250004,-9.61123046874998],[160.77207031250012,-8.963867187499986],[160.7140625000001,-8.539257812499997],[160.59042968750006,-8.372753906249997],[160.7494140625,-8.313964843750014]]],[[[157.76347656250002,-8.242187499999957],[157.89843749999997,-8.506347656249943],[157.81933593750003,-8.612011718749983],[157.58789062500003,-8.445410156249963],[157.5580078125,-8.269921875],[157.30244140625004,-8.33330078124996],[157.21757812500002,-8.262792968749977],[157.490625,-7.965722656250037],[157.76347656250002,-8.242187499999957]]],[[[157.171875,-8.108105468749997],[156.95830078125002,-8.014355468749997],[157.02412109375004,-7.867871093749997],[157.18613281250006,-7.941210937500017],[157.171875,-8.108105468749997]]],[[[156.687890625,-7.92304687500004],[156.5109375000001,-7.707812499999974],[156.5609375,-7.574023437499989],[156.80908203124997,-7.722851562500026],[156.687890625,-7.92304687500004]]],[[[159.8791015625001,-8.534277343749949],[158.9440429687501,-8.04072265625004],[158.457421875,-7.544726562499974],[158.734375,-7.604296875000031],[159.43144531250002,-8.029003906249955],[159.84306640625002,-8.326953124999989],[159.8791015625001,-8.534277343749949]]],[[[155.83984374999997,-7.097167968750014],[155.67753906250002,-7.08896484375002],[155.73896484375004,-6.972949218750017],[155.83984374999997,-7.097167968750014]]],[[[157.48671875000005,-7.330371093750003],[157.44130859375,-7.425683593749966],[157.10156249999997,-7.323632812499966],[156.4525390625,-6.638281249999963],[157.03027343750003,-6.891992187499952],[157.19335937499997,-7.160351562499997],[157.48671875000005,-7.330371093750003]]]]},"properties":{"name":"Solomon Is.","childNum":16}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-12.526074218749926,7.436328125000017],[-12.951611328124926,7.570849609374989],[-12.615234374999972,7.63720703125],[-12.5125,7.582421875000037],[-12.526074218749926,7.436328125000017]]],[[[-10.758593749999989,9.385351562499991],[-10.682714843750006,9.289355468749974],[-10.687646484374937,9.261132812499994],[-10.749951171874926,9.12236328124996],[-10.747021484374955,9.095263671875045],[-10.726855468749932,9.081689453125023],[-10.615966796875,9.059179687499977],[-10.500537109375017,8.687548828125017],[-10.677343749999977,8.400585937499997],[-10.712109374999955,8.335253906250017],[-10.686962890624983,8.321679687500009],[-10.652636718749989,8.330273437499983],[-10.604003906249943,8.319482421874994],[-10.55771484374992,8.315673828125028],[-10.496435546874977,8.362109374999974],[-10.394433593749966,8.480957031250028],[-10.360058593749983,8.49550781249998],[-10.283203124999972,8.48515625],[-10.285742187499949,8.454101562499986],[-10.314648437499983,8.310839843750017],[-10.359814453124926,8.187939453125026],[-10.570849609374932,8.071142578125034],[-10.6474609375,7.759375],[-10.878076171874994,7.538232421874994],[-11.267675781249977,7.232617187499997],[-11.507519531249983,6.906542968750003],[-12.48564453124996,7.386279296875045],[-12.480273437499932,7.75327148437502],[-12.697607421874977,7.715869140625045],[-12.850878906249932,7.818701171875034],[-12.956933593749966,8.145312500000045],[-13.148974609374989,8.214599609375043],[-13.272753906249989,8.429736328124989],[-13.085009765624932,8.42475585937504],[-12.894091796874932,8.62978515624998],[-13.181835937499955,8.576904296875043],[-13.206933593749994,8.843115234375006],[-13.059472656249966,8.881152343750031],[-13.292675781249955,9.04921875],[-13.077294921874966,9.069628906249974],[-12.958789062499989,9.263330078124994],[-12.755859374999943,9.373583984374989],[-12.557861328125,9.704980468749994],[-12.427978515625028,9.898144531250011],[-12.142333984375,9.87539062499999],[-11.911083984374955,9.993017578124977],[-11.273632812499955,9.996533203124983],[-11.205664062499949,9.977734374999969],[-11.180859374999955,9.925341796875045],[-11.047460937499977,9.786328125000054],[-10.758593749999989,9.385351562499991]]]]},"properties":{"name":"Sierra Leone","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-89.36259765624999,14.416015625],[-89.1205078125,14.370214843749991],[-88.51254882812499,13.978955078124997],[-88.504345703125,13.964208984374991],[-88.49765625,13.904541015625],[-88.482666015625,13.854248046875],[-88.44912109375,13.850976562499994],[-88.40849609374999,13.87539062499999],[-88.27622070312499,13.942675781250003],[-88.151025390625,13.987353515625003],[-87.99101562499999,13.879638671875],[-87.8919921875,13.894970703124997],[-87.80224609375,13.889990234374991],[-87.7314453125,13.841064453125],[-87.71533203125,13.812695312499997],[-87.781884765625,13.521386718749994],[-87.930859375,13.1806640625],[-88.68564453124999,13.281494140625],[-88.51201171874999,13.183935546874991],[-89.80419921875,13.560107421875003],[-90.09521484375,13.736523437499997],[-90.04814453124999,13.904052734375],[-89.54716796874999,14.241259765625003],[-89.5736328125,14.390087890624997],[-89.36259765624999,14.416015625]]]},"properties":{"name":"El Salvador","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-56.26708984374997,46.838476562500034],[-56.38476562499994,46.81943359375006],[-56.36464843749994,47.09897460937498],[-56.26708984374997,46.838476562500034]]]},"properties":{"name":"St. Pierre and Miquelon","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[6.659960937499989,0.120654296874989],[6.51972656250004,0.066308593750023],[6.468164062499994,0.22734375],[6.68691406250008,0.404394531249977],[6.75,0.24345703124996],[6.659960937499989,0.120654296874989]]],[[[7.423828125,1.567724609375006],[7.330664062500034,1.603369140624991],[7.414453125000051,1.699121093750037],[7.423828125,1.567724609375006]]]]},"properties":{"name":"São Tomé and Principe","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-54.03422851562499,3.62939453125],[-54.00957031249999,3.448535156249989],[-54.06318359375,3.353320312499989],[-54.18803710937499,3.178759765624989],[-54.203125,3.13818359375],[-54.17070312499999,2.993603515624997],[-54.18808593749999,2.874853515624991],[-54.1955078125,2.81787109375],[-54.256738281249994,2.713720703124991],[-54.402001953124994,2.461523437499991],[-54.53593749999999,2.343310546874989],[-54.56840820312499,2.342578124999989],[-54.604736328125,2.335791015624991],[-54.61625976562499,2.326757812499991],[-54.661865234375,2.327539062499994],[-54.697412109374994,2.359814453124997],[-54.72221679687499,2.441650390625],[-54.87607421874999,2.450390625],[-54.92656249999999,2.497363281249989],[-54.968408203124994,2.54833984375],[-54.978662109374994,2.59765625],[-55.005810546875,2.59296875],[-55.0703125,2.54833984375],[-55.11411132812499,2.539208984374994],[-55.1876953125,2.547509765624994],[-55.286035156249994,2.499658203124994],[-55.343994140625,2.48876953125],[-55.38535156249999,2.440625],[-55.73056640624999,2.406152343749994],[-55.957470703125,2.520458984374997],[-55.99350585937499,2.497509765624997],[-56.02036132812499,2.392773437499997],[-56.0451171875,2.364404296874994],[-56.087792968749994,2.34130859375],[-56.12939453125,2.299511718749997],[-56.1376953125,2.259033203125],[-56.073632812499994,2.236767578124997],[-56.02006835937499,2.158154296874997],[-55.96196289062499,2.095117187499994],[-55.91533203124999,2.03955078125],[-55.921630859375,1.976660156249991],[-55.929638671875,1.8875],[-56.01992187499999,1.842236328124997],[-56.4828125,1.942138671875],[-56.704345703125,2.036474609374991],[-57.19736328124999,2.853271484375],[-57.303662109375,3.377099609374994],[-57.646728515625,3.39453125],[-58.05429687499999,4.101660156249991],[-57.84599609374999,4.668164062499997],[-57.91704101562499,4.820410156249991],[-57.711083984374994,4.991064453124991],[-57.331005859375,5.020166015624994],[-57.20981445312499,5.195410156249991],[-57.3185546875,5.335351562499994],[-57.194775390625,5.5484375],[-56.96982421874999,5.992871093749997],[-56.235595703125,5.885351562499991],[-55.897607421874994,5.699316406249991],[-55.909912109375,5.892626953124989],[-55.648339843749994,5.985888671874989],[-54.83369140625,5.988330078124989],[-54.05419921875,5.807910156249989],[-54.08046875,5.502246093749989],[-54.4796875,4.836523437499991],[-54.350732421874994,4.054101562499994],[-54.03422851562499,3.62939453125]]]},"properties":{"name":"Suriname","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[22.538671875,49.072705078125],[22.52412109375001,49.031396484374994],[22.389453125000017,48.873486328125],[22.295214843750017,48.685839843749996],[22.142871093750017,48.568505859374994],[22.1318359375,48.405322265624996],[21.766992187500023,48.3380859375],[21.45136718750001,48.55224609375],[20.490039062500017,48.526904296874996],[20.333789062500017,48.295556640624994],[19.95039062500001,48.146630859374994],[19.625390625000023,48.223095703125],[18.791894531250023,48.000292968749996],[18.72421875,47.787158203124996],[17.76191406250001,47.770166015624994],[17.147363281250023,48.00595703125],[16.86542968750001,48.3869140625],[16.953125,48.598828125],[17.135644531250023,48.841064453125],[17.75849609375001,48.888134765625],[18.0859375,49.06513671875],[18.160937500000017,49.257373046874996],[18.83222656250001,49.510791015624996],[19.1494140625,49.4],[19.44160156250001,49.597705078124996],[19.77392578125,49.37216796875],[19.756640625000017,49.204394531249996],[20.0576171875,49.181298828124994],[20.36298828125001,49.38525390625],[20.868457031250017,49.314697265625],[21.079394531250017,49.418261718749996],[21.6396484375,49.411962890625],[22.020117187500006,49.209521484374996],[22.473046875000023,49.081298828125],[22.538671875,49.072705078125]]]},"properties":{"name":"Slovakia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[16.516210937500006,46.499902343749994],[16.427636718750023,46.5244140625],[16.321191406250023,46.534619140625],[16.1064453125,46.382226562499994],[15.608984375,46.171923828124996],[15.592578125000017,46.139990234375],[15.596875,46.109228515625],[15.675585937500017,45.983691406249996],[15.652148437500017,45.862158203125],[15.277050781250011,45.7326171875],[15.353710937500011,45.659912109375],[15.283593750000023,45.5796875],[15.291210937500011,45.541552734374996],[15.32666015625,45.502294921875],[15.339453125,45.467041015625],[15.242089843750023,45.44140625],[15.110449218750006,45.45078125],[14.95458984375,45.499902343749994],[14.793066406250006,45.47822265625],[14.649511718750006,45.571484375],[14.591796875,45.651269531249994],[14.56884765625,45.6572265625],[14.548448660714302,45.628388671875],[14.507586495535731,45.59039341517857],[14.42734375,45.505761718749994],[14.369921875000017,45.4814453125],[13.878710937500017,45.428369140624994],[13.577929687500017,45.516894531249996],[13.8447265625,45.59287109375],[13.831152343750006,45.680419921875],[13.663476562500023,45.7919921875],[13.6005859375,45.979785156249996],[13.509179687500023,45.973779296874994],[13.487695312500023,45.987109375],[13.480273437500017,46.009228515625],[13.486425781250006,46.03955078125],[13.548046875000011,46.089111328125],[13.616601562500023,46.133105468749996],[13.634960937500011,46.157763671874996],[13.632519531250011,46.177050781249996],[13.420996093750006,46.212304687499994],[13.399511718750006,46.317529296874994],[13.563281250000017,46.415087890624996],[13.637109375000023,46.448535156249996],[13.6796875,46.462890625],[13.7,46.520263671875],[14.5498046875,46.399707031249996],[14.893261718750011,46.605908203125],[15.957617187500006,46.677636718749994],[16.093066406250017,46.86328125],[16.283593750000023,46.857275390625],[16.516210937500006,46.499902343749994]]]},"properties":{"name":"Slovenia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[16.52851562500001,56.29052734375],[16.431640625,56.24375],[16.41230468750004,56.568994140624994],[17.02539062499997,57.345068359375006],[16.52851562500001,56.29052734375]]],[[[19.076464843750045,57.8359375],[18.813867187500023,57.70620117187502],[18.907910156250068,57.39833984375002],[18.146386718749994,56.920507812500006],[18.285351562500068,57.08320312500001],[18.136523437500045,57.55664062500003],[18.53740234374999,57.83056640625006],[18.90058593750001,57.91547851562504],[19.076464843750045,57.8359375]]],[[[19.156347656250063,57.92260742187497],[19.086523437500034,57.86499023437506],[19.134863281250034,57.98134765625002],[19.331445312500023,57.962890625],[19.156347656250063,57.92260742187497]]],[[[24.15546875000004,65.80527343750006],[23.102343750000074,65.73535156250003],[22.400976562500006,65.86210937499999],[22.254003906250006,65.59755859375002],[21.565527343750063,65.40810546874997],[21.609179687500074,65.261376953125],[21.410351562500068,65.31743164062505],[21.57392578125001,65.12578124999999],[21.138183593750057,64.80869140625006],[21.519628906250034,64.46308593749998],[20.76269531250003,63.86782226562505],[18.60644531250003,63.17827148437499],[18.31289062500008,62.996386718750045],[18.46308593750004,62.895849609375006],[18.170019531250034,62.789355468750074],[17.906640625000023,62.88676757812502],[18.037304687500068,62.60053710937498],[17.834472656250057,62.50273437500002],[17.410253906250063,62.508398437500034],[17.633691406249994,62.23300781250006],[17.374511718750057,61.866308593750034],[17.465429687500006,61.68447265625005],[17.196386718750006,61.72456054687504],[17.13076171875005,61.57573242187499],[17.25097656250003,60.70078125],[17.6611328125,60.53515625000003],[17.955761718750068,60.589794921874955],[18.85273437500001,60.02587890625],[18.970507812500045,59.757226562499994],[17.964257812500023,59.359375],[18.56025390625004,59.39448242187498],[18.285351562500068,59.109375],[16.978125,58.65415039062506],[16.214257812500023,58.636669921874955],[16.92382812499997,58.49257812499999],[16.651953125,58.43432617187503],[16.65224609375008,57.50068359374998],[16.348730468750063,56.70927734374996],[15.826660156250028,56.12495117187501],[14.782031250000017,56.16191406250002],[14.754785156250051,56.03315429687498],[14.401953125000034,55.97675781250004],[14.21503906250004,55.83261718749998],[14.341699218749994,55.52773437500002],[14.17373046875008,55.396630859374966],[12.885839843750063,55.41137695312506],[12.973925781250074,55.748144531250006],[12.471191406250057,56.29052734375],[12.801660156250051,56.263916015625],[12.65644531250004,56.44057617187502],[12.857421875000028,56.45239257812503],[12.883691406250051,56.61772460937496],[12.421484375000034,56.906396484374966],[11.449316406250063,58.118359374999955],[11.43154296875008,58.339990234374994],[11.24824218750004,58.369140625],[11.14716796875004,58.98862304687498],[11.19580078125,59.07827148437505],[11.388281250000063,59.036523437499966],[11.470703125000057,58.909521484375034],[11.64277343750004,58.92607421875002],[11.798144531250074,59.28989257812498],[11.680761718750034,59.59228515625003],[12.486132812500074,60.10678710937506],[12.588671874999989,60.450732421875045],[12.29414062500004,61.00268554687506],[12.706054687500028,61.059863281250074],[12.88076171875008,61.35229492187506],[12.155371093750006,61.720751953125045],[12.303515625000074,62.28559570312501],[11.999902343750051,63.29169921875001],[12.175195312500051,63.595947265625],[12.792773437500017,64],[13.203515625000023,64.07509765625],[13.960546875000063,64.01401367187498],[14.141210937500006,64.17353515624998],[14.077636718750028,64.464013671875],[13.650292968750023,64.58154296874997],[14.47968750000004,65.30146484374998],[14.543261718750045,66.12934570312498],[15.483789062500051,66.30595703124999],[15.422949218750006,66.48984374999998],[16.40351562500004,67.05498046875002],[16.12744140625,67.42583007812507],[16.783593750000023,67.89501953125],[17.324609375000023,68.10380859374999],[17.91669921875001,67.96489257812502],[18.303027343750045,68.55541992187497],[19.969824218750063,68.35639648437501],[20.348046875000023,68.84873046875003],[20.116699218750057,69.02089843750005],[20.622167968750006,69.036865234375],[21.99746093750005,68.52060546874998],[22.854101562500034,68.36733398437502],[23.63886718750004,67.95439453125002],[23.454882812500045,67.46025390625007],[23.733593750000068,67.42290039062499],[23.64150390625005,67.12939453124997],[23.988574218750045,66.81054687500003],[23.700292968750034,66.25263671874998],[24.15546875000004,65.80527343750006]]]]},"properties":{"name":"Sweden","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[31.9482421875,-25.957617187500006],[32.060546875,-26.018359375],[32.04140625000002,-26.28125],[32.10595703125,-26.52001953125],[32.112890625,-26.839453125],[32.02480468750002,-26.811132812500006],[31.994726562500006,-26.817480468750006],[31.967187500000023,-26.96064453125001],[31.946093750000017,-27.173632812500003],[31.958398437500023,-27.30585937500001],[31.742578125000023,-27.30996093750001],[31.469531250000017,-27.295507812500006],[31.274023437500006,-27.238378906250006],[31.063378906250023,-27.1123046875],[30.938085937500006,-26.915820312500003],[30.88330078125,-26.79238281250001],[30.806738281250006,-26.785253906250006],[30.794335937500023,-26.764257812500006],[30.803320312500006,-26.41347656250001],[31.08808593750001,-25.98066406250001],[31.207324218750017,-25.843359375],[31.33515625000001,-25.75556640625001],[31.382617187500017,-25.74296875],[31.415136718750006,-25.74658203125],[31.921679687500017,-25.96875],[31.9482421875,-25.957617187500006]]]},"properties":{"name":"Swaziland","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[55.54033203125002,-4.693066406250011],[55.54296875,-4.785546875],[55.383398437500006,-4.609277343750009],[55.45576171875001,-4.558789062500011],[55.54033203125002,-4.693066406250011]]]},"properties":{"name":"Seychelles","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[42.358984375,37.10859375],[41.78857421875,36.59716796875],[41.41679687500002,36.5146484375],[41.295996093750006,36.383349609374996],[41.354101562500006,35.640429687499996],[41.19472656250002,34.768994140625],[40.98701171875001,34.429052734375],[38.773535156250006,33.372216796874994],[36.818359375,32.317285156249994],[36.3720703125,32.3869140625],[35.78730468750001,32.734912109374996],[35.91347656250002,32.94960937499999],[35.869140625,33.43173828125],[36.03447265625002,33.58505859375],[35.98613281250002,33.75263671875],[36.36503906250002,33.83935546875],[36.27783203125,33.92529296875],[36.5849609375,34.221240234374996],[36.50439453125,34.432373046875],[36.32988281250002,34.499609375],[36.383886718750006,34.65791015625],[35.97626953125001,34.629199218749996],[35.902441406250006,35.420703125],[35.76445312500002,35.571582031249996],[35.83964843750002,35.84921875],[35.892675781250006,35.916552734374996],[35.96757812500002,35.910058593749994],[36.12734375000002,35.831445312499994],[36.15361328125002,35.833886718749994],[36.34755859375002,36.003515625],[36.37539062500002,36.171240234375],[36.63671875,36.233984375],[36.64140625000002,36.263525390625],[36.5375,36.45742187499999],[36.54667968750002,36.50634765625],[36.596875,36.7013671875],[36.62841796875,36.777685546875],[36.65859375000002,36.802539062499996],[36.77656250000001,36.79267578125],[36.94179687500002,36.7583984375],[36.9853515625,36.702392578125],[37.06621093750002,36.652636718749996],[37.43632812500002,36.643310546875],[37.523535156250006,36.6783203125],[37.7203125,36.743701171874996],[37.90664062500002,36.79462890625],[38.19169921875002,36.9015625],[38.7666015625,36.693115234375],[38.90644531250001,36.694677734375],[39.1083984375,36.680566406249994],[39.35664062500001,36.681591796875],[39.50146484375,36.70224609375],[39.6865234375,36.738623046875],[40.01640625000002,36.826074218749994],[40.705664062500006,37.097705078124996],[41.886816406250006,37.156396484374994],[42.05986328125002,37.2060546875],[42.16787109375002,37.288623046874996],[42.202734375,37.29726562499999],[42.24755859375,37.2822265625],[42.2685546875,37.2765625],[42.31289062500002,37.22958984375],[42.358984375,37.10859375]]]},"properties":{"name":"Syria","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-72.3328125,21.85136718749999],[-72.14433593750002,21.79272460937503],[-72.33544921874994,21.758007812499983],[-72.3328125,21.85136718749999]]]},"properties":{"name":"Turks and Caicos Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[23.980273437500017,19.496630859375003],[23.970800781250006,15.721533203124991],[23.10517578125001,15.702539062499994],[22.933886718750017,15.533105468749994],[22.93232421875001,15.162109375],[22.6708984375,14.722460937500003],[22.38154296875001,14.550488281249997],[22.53857421875,14.161865234375],[22.1064453125,13.7998046875],[22.228125,13.32958984375],[21.825292968750006,12.79052734375],[21.928125,12.678125],[22.352343750000017,12.660449218749989],[22.472460937500017,12.067773437499994],[22.580957031250023,11.990136718749994],[22.591113281250017,11.579882812499989],[22.922656250000017,11.344873046874994],[22.86005859375001,10.919677734375],[22.49384765625001,10.996240234374994],[21.771484375,10.642822265625],[21.682714843750006,10.289843749999989],[20.773242187500017,9.405664062499994],[20.342089843750017,9.127099609374994],[18.95625,8.938867187499994],[18.886035156250017,8.836035156249991],[19.108691406250017,8.656152343749994],[18.56416015625001,8.0458984375],[17.6494140625,7.98359375],[16.784765625,7.550976562499997],[16.545312500000023,7.865478515625],[16.37890625,7.683544921874997],[15.957617187500006,7.507568359375],[15.480078125,7.523779296874991],[15.5498046875,7.787890624999989],[15.1162109375,8.557324218749997],[14.332324218750017,9.20351562499999],[13.977246093750011,9.691552734374994],[14.243261718750006,9.979736328125],[15.654882812500006,10.0078125],[15.276074218750011,10.357373046874997],[15.132226562500023,10.648486328124989],[15.029882812500006,11.11367187499999],[15.08125,11.845507812499989],[14.847070312500023,12.502099609374994],[14.461718750000017,13.021777343749989],[14.244824218750011,13.07734375],[14.06396484375,13.07851562499999],[13.932324218750011,13.258496093749997],[13.606347656250023,13.70458984375],[13.505761718750023,14.134423828124994],[13.4482421875,14.380664062500003],[14.367968750000017,15.750146484374994],[15.474316406250011,16.908398437499997],[15.735058593750011,19.904052734375],[15.963183593750017,20.34619140625],[15.587109375000011,20.733300781249994],[15.607324218750023,20.954394531250003],[15.181835937500011,21.523388671874997],[14.97900390625,22.99619140624999],[15.984082031250011,23.445214843749994],[20.14765625000001,21.38925781249999],[23.980273437500017,19.496630859375003]]]},"properties":{"name":"Chad","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[0.900488281250006,10.993261718749991],[0.763378906250011,10.386669921874997],[1.330078125,9.996972656249994],[1.3857421875,9.361669921874991],[1.600195312500006,9.050048828125],[1.624707031250011,6.997314453125],[1.530957031250011,6.992431640625],[1.777929687500006,6.294628906249997],[1.62265625,6.216796875],[1.187207031250011,6.089404296874989],[0.736914062500006,6.452587890624997],[0.525585937500011,6.850927734374991],[0.634765625,7.353662109374994],[0.5,7.546875],[0.686328125000017,8.354882812499994],[0.37255859375,8.75927734375],[0.48876953125,8.851464843749994],[0.525683593750017,9.398486328124989],[0.2333984375,9.463525390624994],[0.342578125000017,9.604150390624994],[0.264550781250023,9.644726562499997],[0.380859375,10.291845703124991],[-0.08632812499999,10.673046875],[0.009423828125023,11.02099609375],[-0.068603515625,11.115625],[0.49267578125,10.954980468749994],[0.900488281250006,10.993261718749991]]]},"properties":{"name":"Togo","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[98.40908203125005,7.90205078125004],[98.2962890625,7.776074218750054],[98.32207031250007,8.166308593749974],[98.4349609375,8.085644531249969],[98.40908203125005,7.90205078125004]]],[[[100.070703125,9.58603515625002],[99.96240234375003,9.421630859375],[99.93955078125006,9.559960937500037],[100.070703125,9.58603515625002]]],[[[102.42675781250003,11.988720703125026],[102.30195312500004,11.98081054687502],[102.27744140625006,12.151855468750043],[102.42675781250003,11.988720703125026]]],[[[100.12246093750005,20.316650390625057],[100.11494140625004,20.257666015625034],[100.13974609375012,20.245410156250017],[100.31796875000006,20.38588867187505],[100.51953125000003,20.17792968750004],[100.39765625000004,19.756103515625],[100.51357421875005,19.553466796875],[101.21191406249997,19.54833984375003],[101.22080078125006,19.486621093750074],[101.19755859375007,19.327929687500074],[101.2863281250001,18.977148437500006],[101.04697265625012,18.441992187500063],[101.05058593750002,18.407031250000045],[101.1375,18.28686523437497],[101.14394531250005,18.14262695312499],[100.90849609375002,17.583886718750023],[100.95585937500002,17.541113281250006],[101.10517578125004,17.47954101562499],[101.16748046874997,17.49902343749997],[101.41367187500012,17.71875],[101.55507812500005,17.812353515625034],[101.56367187500004,17.82050781250001],[101.6875,17.889404296875],[101.77480468750005,18.03339843750004],[101.81865234375002,18.06464843750001],[101.87548828124997,18.046435546875017],[101.94746093750004,18.081494140624983],[102.03457031250005,18.169824218750023],[102.10146484375,18.210644531249983],[102.14824218750002,18.20385742187503],[102.35185546875002,18.045947265625017],[102.45878906250002,17.984619140625057],[102.55253906250007,17.96508789062497],[102.61679687500006,17.833349609375034],[102.66064453124997,17.817968750000034],[102.680078125,17.824121093750023],[103.05136718750006,18.02851562500001],[103.0912109375,18.13823242187499],[103.14853515625006,18.221728515625045],[103.19970703124997,18.259472656249983],[103.26318359374997,18.27846679687505],[103.27958984375002,18.304980468750017],[103.24892578125,18.338964843750034],[103.25175781250002,18.373486328124955],[103.2882812500001,18.408398437499955],[103.36699218750007,18.42333984374997],[103.48798828125004,18.418164062499983],[103.62968750000002,18.38256835937503],[103.79228515625002,18.316503906249977],[103.89882812500005,18.295312500000023],[103.949609375,18.31899414062505],[104.04873046875005,18.216699218749994],[104.19619140625005,17.988378906250006],[104.32265625,17.815820312500023],[104.428125,17.69897460937503],[104.7396484375,17.461669921875],[104.81601562500012,17.30029296874997],[104.75898437500004,17.0771484375],[104.7435546875,16.884375],[104.75058593750012,16.647558593750063],[104.81933593750003,16.46606445312503],[105.04716796875007,16.160253906249977],[105.14873046875007,16.09355468749999],[105.33066406250006,16.037890625000017],[105.40625,15.987451171875051],[105.39892578124997,15.829882812500017],[105.62207031250003,15.699951171875],[105.641015625,15.656542968750045],[105.6388671875001,15.585937500000057],[105.615625,15.488281250000057],[105.49042968750004,15.256591796875],[105.49042968750004,15.127587890625009],[105.5333984375001,15.041601562499991],[105.54667968750002,14.932470703124963],[105.52304687500012,14.843310546875003],[105.49736328125002,14.590673828124963],[105.47558593750003,14.530126953124977],[105.42265625000007,14.471630859375054],[105.34218750000005,14.416699218750054],[105.24365234375003,14.367871093750054],[105.1833007812501,14.346240234374989],[105.16914062500004,14.336083984374966],[105.12597656250003,14.280957031250011],[105.07412109375005,14.227441406250037],[104.77900390625004,14.427832031250006],[103.19941406250004,14.332617187499977],[102.90927734375006,14.136718750000028],[102.546875,13.585693359375043],[102.33632812500005,13.560302734375014],[102.49960937500012,12.669970703125003],[102.75566406250002,12.42626953125],[102.73662109375007,12.089794921875011],[102.93388671875002,11.706689453125037],[102.594140625,12.203027343749994],[102.54023437500004,12.109228515624977],[101.83574218750002,12.640380859375014],[100.89775390625007,12.653808593749986],[100.96269531250007,13.431982421874991],[100.60292968750005,13.568164062500017],[100.23564453125002,13.48447265625002],[99.99052734375007,13.243457031250031],[100.08994140625006,13.045654296874972],[99.96396484375006,12.690039062500006],[99.98906250000007,12.170800781249994],[99.16503906250003,10.319824218750028],[99.25390625000003,9.265234375000034],[99.83554687500012,9.288378906250031],[99.98955078125007,8.589208984374977],[100.129296875,8.428076171875006],[100.16347656250005,8.508398437500034],[100.27939453125006,8.268505859375011],[100.54521484375002,7.226904296874991],[100.43935546875005,7.280761718750043],[100.38037109375003,7.541503906250043],[100.28378906250006,7.551513671875043],[100.25664062500002,7.774902343749986],[100.16074218750012,7.599267578124994],[100.4235351562501,7.18784179687502],[101.01787109375002,6.860937500000034],[101.49794921875005,6.865283203125031],[102.10107421874997,6.242236328125031],[101.87363281250012,5.825292968749991],[101.67841796875004,5.778808593750028],[101.5560546875,5.907763671875003],[101.1139648437501,5.636767578125045],[100.98164062500004,5.771044921875045],[101.05351562500002,6.242578125],[100.87392578125,6.24541015624996],[100.75449218750012,6.460058593749991],[100.3454101562501,6.549902343750006],[100.26142578125004,6.682714843749963],[100.11914062499997,6.441992187500048],[99.69599609375004,6.87666015625004],[99.72031250000012,7.106201171875],[99.55302734375002,7.218798828125031],[99.59697265625002,7.355615234375009],[99.35859375000004,7.372216796875023],[99.26367187499997,7.619042968750037],[99.07763671874997,7.718066406250045],[99.05107421875002,7.887841796874994],[98.78867187500012,8.059814453125028],[98.703515625,8.256738281250009],[98.57919921875006,8.344287109374989],[98.42099609375006,8.17822265625],[98.30546875000007,8.226220703125009],[98.24179687500006,8.767871093750045],[98.70253906250005,10.19038085937504],[98.7572265625,10.660937499999974],[99.1901367187501,11.105273437499989],[99.61474609374997,11.781201171875026],[99.40507812500002,12.547900390625003],[99.12392578125,13.030761718750043],[99.13681640625006,13.716699218749994],[98.57001953125004,14.359912109375031],[98.20214843749997,14.97592773437502],[98.19101562500012,15.204101562499972],[98.55693359375007,15.367675781249986],[98.59238281250006,16.05068359375005],[98.81796875000012,16.180810546874994],[98.88828125000006,16.351904296875034],[98.83544921875003,16.417578125],[98.66074218750006,16.330419921875006],[98.4388671875,16.975683593750034],[97.7064453125,17.79711914062503],[97.63222656250005,18.290332031250074],[97.37392578125,18.51796875],[97.74589843750002,18.58818359374999],[97.816796875,19.459960937500057],[98.01503906250005,19.74951171874997],[98.37128906250004,19.68916015625004],[98.9166992187501,19.77290039062504],[99.07421875000003,20.09936523437503],[99.48593750000006,20.14985351562501],[99.45888671875005,20.363037109375],[99.72011718750005,20.32543945312497],[99.8903320312501,20.424414062499977],[99.9542968750001,20.415429687500023],[100.0036132812501,20.37958984375001],[100.12246093750005,20.316650390625057]]]]},"properties":{"name":"Thailand","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[70.66416015625,39.85546875],[70.55957031250003,39.790917968749994],[70.48925781250003,39.86303710937503],[70.48281250000005,39.88271484375005],[70.49775390625004,39.88242187499998],[70.56708984375004,39.86660156250005],[70.66416015625,39.85546875]]],[[[70.95800781250003,40.238867187500034],[70.59921875,39.974511718749994],[69.96679687499997,40.202246093750034],[69.46875,40.020751953125],[69.47099609375002,39.990625],[69.43193359375007,39.909765625000034],[69.36542968750004,39.94707031250002],[69.30722656250006,39.968554687500045],[69.27880859374997,39.91777343749999],[69.24472656250006,39.82709960937498],[69.29765625000007,39.52480468750005],[70.50117187500004,39.58735351562501],[70.79931640625003,39.39472656250001],[71.4703125,39.60366210937502],[71.50302734375006,39.58217773437502],[71.51738281250002,39.55385742187502],[71.50585937499997,39.51708984374997],[71.5033203125,39.47880859374999],[71.73222656250002,39.422998046874994],[71.77861328125007,39.27797851562502],[72.04277343750002,39.352148437500034],[72.08417968750004,39.310644531250034],[72.14736328125005,39.26074218749997],[72.22998046874997,39.20751953124997],[72.63994140625002,39.385986328125],[73.10927734375,39.36191406249998],[73.2349609375,39.37456054687499],[73.3361328125001,39.41235351562506],[73.38740234375004,39.442724609375034],[73.4704101562501,39.46059570312502],[73.63164062500007,39.44887695312502],[73.63632812500006,39.396679687499955],[73.60732421875,39.229199218749955],[73.8052734375,38.968652343749994],[73.69609375000007,38.85429687499996],[73.80166015625,38.60688476562501],[74.02558593750004,38.53984375000002],[74.27744140625,38.659765625000034],[74.81230468750002,38.46030273437498],[74.8942382812501,37.60141601562498],[75.11875,37.38569335937498],[74.89130859375004,37.231640624999955],[74.875390625,37.24199218750002],[74.83046875,37.28593750000002],[74.73056640625006,37.35703125],[74.659375,37.39448242187501],[74.34902343750005,37.41875],[74.25966796875005,37.41542968750002],[74.20351562500005,37.37246093750005],[74.16708984375,37.32944335937498],[73.74960937500006,37.23178710937498],[73.6535156250001,37.239355468750034],[73.62753906250006,37.261572265625006],[73.71728515625003,37.32944335937498],[73.7337890625,37.37578125000002],[73.72060546875,37.41875],[73.65712890625005,37.43046875],[73.6046875000001,37.44604492187503],[73.48134765625,37.4716796875],[73.38291015625006,37.462255859375034],[73.21113281250004,37.40849609375002],[72.89550781250003,37.26752929687498],[72.65742187500004,37.029052734375],[71.665625,36.696923828124994],[71.530859375,36.845117187499994],[71.43291015625007,37.12753906249998],[71.5822265625001,37.91010742187498],[71.55195312500004,37.93315429687496],[71.48779296874997,37.93188476562497],[71.38964843750003,37.90629882812502],[71.31992187500006,37.90185546875],[71.27851562500004,37.91840820312498],[71.33271484375004,38.170263671875034],[71.25585937499997,38.306982421875006],[70.7359375,38.42255859375001],[70.41777343750002,38.075439453125],[70.21464843750002,37.92441406250006],[70.19941406250004,37.88603515624996],[70.25498046875006,37.76538085937497],[70.25146484374997,37.66416015625006],[70.18867187500004,37.58247070312501],[70.11982421875004,37.54350585937499],[69.9849609375,37.566162109375],[69.8208984375,37.60957031250004],[69.62578125000002,37.59404296874999],[69.49208984375,37.55307617187498],[69.42011718750004,37.486718749999966],[69.39921875000007,37.39931640625002],[69.42968749999997,37.290869140625034],[69.414453125,37.20776367187497],[69.35380859375007,37.15004882812502],[69.3039062500001,37.11694335937503],[69.26484375000004,37.1083984375],[69.18017578125003,37.158300781250034],[68.96044921875003,37.32504882812498],[68.9118164062501,37.33393554687501],[68.88525390624997,37.32807617187498],[68.85537109375005,37.31684570312501],[68.83847656250006,37.30283203124998],[68.82373046874997,37.27070312500001],[68.78203125000002,37.25800781250001],[68.7232421875,37.26801757812501],[68.6691406250001,37.258398437500006],[68.3869140625001,37.1375],[68.29951171875004,37.08842773437502],[68.28476562500006,37.036328124999955],[68.2609375000001,37.01308593750002],[68.2121093750001,37.02153320312496],[68.0677734375,36.949804687500006],[67.95800781249997,36.972021484375006],[67.83447265624997,37.06420898437506],[67.75898437500004,37.172216796875034],[67.7980468750001,37.244970703125006],[67.81435546875005,37.48701171875004],[68.3502929687501,38.211035156250006],[68.08720703125002,38.47353515625002],[68.13251953125004,38.927636718749966],[67.69443359375006,38.99462890625003],[67.64833984375005,39.13105468750004],[67.3576171875001,39.216699218749994],[67.426171875,39.46557617187497],[67.71904296875007,39.62138671875002],[68.46328125,39.53671874999998],[68.63896484375007,39.8388671875],[68.86875,39.90747070312503],[68.80468750000003,40.05034179687499],[68.9720703125,40.08994140624998],[68.63066406250007,40.16708984374998],[69.27490234374997,40.19809570312498],[69.20625,40.566552734374994],[69.35722656250002,40.76738281249996],[69.71289062500003,40.65698242187503],[70.40195312500006,41.03510742187498],[70.75107421875006,40.721777343750006],[70.37158203125003,40.38413085937506],[70.653125,40.201171875],[70.95800781250003,40.238867187500034]]]]},"properties":{"name":"Tajikistan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[66.52226562500007,37.34848632812506],[66.471875,37.3447265625],[65.7650390625,37.56914062499996],[65.55498046875002,37.25117187500004],[65.30361328125005,37.24677734375001],[65.08964843750007,37.237939453124994],[64.9515625,37.19355468750001],[64.81630859375005,37.13208007812503],[64.7824218750001,37.05927734375001],[64.60253906250003,36.554541015625034],[64.5658203125,36.427587890625034],[64.51103515625002,36.34067382812498],[64.184375,36.14892578125],[63.8625,36.012353515624994],[63.12998046875006,35.84619140624997],[63.169726562500074,35.678125],[63.05664062500003,35.44580078125003],[62.98027343750002,35.40917968750003],[62.85800781250006,35.34965820312499],[62.688085937500006,35.25532226562504],[62.3078125000001,35.17080078125005],[62.08964843750002,35.3796875],[61.62099609375005,35.43232421875004],[61.34472656249997,35.62949218750006],[61.26201171875002,35.61958007812498],[61.25214843750004,35.86762695312498],[61.15292968750006,35.97675781250001],[61.212011718750006,36.190527343750034],[61.11962890625003,36.64257812500003],[60.34130859375003,36.63764648437501],[60.06279296875002,36.962890625],[59.454980468749994,37.25283203125002],[59.30175781249997,37.51064453125005],[58.81542968750003,37.683496093749994],[58.261621093749994,37.665820312500045],[57.35371093750004,37.97333984374998],[57.1935546875001,38.216406250000034],[56.440625,38.249414062499994],[56.272070312500006,38.080419921875034],[55.38085937500003,38.051123046875034],[54.90009765625004,37.77792968750006],[54.6994140625001,37.47016601562498],[53.91416015625006,37.34355468750002],[53.86865234375003,38.949267578125045],[53.70458984375003,39.209570312500034],[53.33632812500005,39.34082031250006],[53.15664062499999,39.26499023437506],[53.23564453125002,39.608544921874966],[53.603125,39.546972656250034],[53.472265625,39.66879882812498],[53.48730468749997,39.909375],[52.9875,39.98759765625002],[53.03554687500005,39.7744140625],[52.80468749999997,40.054003906250045],[52.73369140625002,40.39873046875002],[52.943457031250006,41.03808593750006],[53.1452148437501,40.82495117187497],[53.61523437500003,40.818505859374994],[53.87001953125005,40.64868164062503],[54.37734375,40.693261718749966],[54.319433593750006,40.83457031249998],[54.68505859375003,40.873046875],[54.70371093750006,41.071142578125034],[54.094824218750006,41.51938476562506],[53.80468749999997,42.11762695312498],[53.16416015625006,42.09379882812502],[52.97001953125002,41.97622070312505],[52.81484375,41.711816406249994],[52.850390625000074,41.20029296875006],[52.4938476562501,41.780371093750034],[53.0558593750001,42.14775390624999],[54.120996093749994,42.335205078125],[54.85380859375002,41.965185546875006],[55.434375,41.296289062499994],[55.97744140625005,41.32221679687504],[57.01796875,41.26347656249996],[57.11884765625004,41.35029296874998],[56.96406250000004,41.856542968750006],[57.290625,42.123779296875],[57.814257812500074,42.18984375000005],[58.02890625,42.48764648437506],[58.474414062500074,42.29936523437496],[58.15156250000004,42.628076171874966],[58.477148437500006,42.66284179687503],[58.5890625000001,42.778466796874966],[59.35429687500002,42.32329101562496],[59.98515625000002,42.21171875],[59.94179687499999,41.97353515625002],[60.20078125000006,41.803125],[60.07558593750005,41.759667968749966],[60.089648437500074,41.39941406250003],[60.454980468749994,41.221630859374955],[61.2423828125001,41.18920898437503],[61.496972656249994,41.276074218749955],[61.90283203124997,41.09370117187501],[62.48320312500002,39.97563476562496],[63.76367187500003,39.16054687499999],[64.3099609375,38.97729492187497],[65.612890625,38.23857421875002],[65.97119140624997,38.244238281250006],[66.60625,37.98671875000005],[66.52558593750004,37.785742187500034],[66.51132812500006,37.59916992187496],[66.51064453125,37.45869140625004],[66.52226562500007,37.34848632812506]]]},"properties":{"name":"Turkmenistan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[124.0363281250001,-9.341601562500031],[124.44443359375012,-9.190332031250023],[124.28232421875012,-9.427929687500026],[124.0363281250001,-9.341601562500031]]],[[[125.06816406250002,-9.511914062499997],[124.96015625000004,-9.213769531250009],[125.10048828125,-9.189843750000023],[125.14902343750012,-9.042578125000034],[124.93681640625007,-9.053417968750026],[124.92226562500005,-8.942480468749977],[125.17802734375002,-8.647851562499994],[125.38183593749997,-8.575390624999983],[126.61972656250006,-8.459472656249986],[126.96640625000012,-8.315722656250017],[127.29609375000004,-8.424511718749969],[126.91523437500004,-8.715234374999966],[125.40800781250002,-9.275781250000023],[125.06816406250002,-9.511914062499997]]],[[[125.64609375000006,-8.139941406250003],[125.5794921875,-8.311816406250017],[125.50712890625007,-8.275097656249997],[125.64609375000006,-8.139941406250003]]]]},"properties":{"name":"Timor-Leste","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-175.1619140625,-21.169335937500023],[-175.07817382812496,-21.129003906249977],[-175.15659179687495,-21.26367187499997],[-175.36235351562496,-21.106835937499994],[-175.1619140625,-21.169335937500023]]],[[[-173.953515625,-18.63935546875001],[-174.06914062500002,-18.640234375],[-173.96806640624993,-18.565332031250023],[-173.953515625,-18.63935546875001]]]]},"properties":{"name":"Tonga","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-61.012109374999966,10.134326171874989],[-61.906103515625006,10.069140625000031],[-61.49931640624999,10.268554687499972],[-61.47827148437497,10.603369140624977],[-61.65117187499993,10.718066406249974],[-60.917626953124966,10.84023437499999],[-61.03374023437502,10.669873046875026],[-61.012109374999966,10.134326171874989]]]},"properties":{"name":"Trinidad and Tobago","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[10.957617187500063,33.72207031250005],[10.722070312500051,33.738916015624994],[10.745214843750063,33.88867187500006],[11.017871093749989,33.82333984374998],[10.957617187500063,33.72207031250005]]],[[[11.278027343750068,34.753808593749994],[11.123632812500063,34.68168945312496],[11.254882812500057,34.82031250000006],[11.278027343750068,34.753808593749994]]],[[[10.274609375000011,31.684960937499994],[10.114941406250068,31.46376953125005],[10.216406250000063,30.78320312500003],[10.05976562500004,30.58007812500003],[9.932519531250051,30.42534179687496],[9.895019531250028,30.387304687500034],[9.51875,30.229394531249994],[9.224023437500023,31.373681640624994],[9.160253906250006,31.621337890625],[9.044042968750034,32.072363281250034],[8.333398437500051,32.54360351562502],[8.1125,33.055322265624994],[7.877246093750017,33.172119140625],[7.534375,33.717919921874994],[7.513867187500068,34.080517578124955],[8.24560546875,34.73408203124998],[8.276855468750057,34.97949218749997],[8.312109375000063,35.084619140624994],[8.394238281250011,35.20385742187503],[8.318066406250011,35.654931640624994],[8.348730468750063,36.367968750000045],[8.207617187500006,36.518945312499994],[8.601269531250068,36.83393554687504],[8.576562500000023,36.93720703125001],[9.687988281250057,37.34038085937499],[9.838476562500063,37.30898437499999],[9.830273437499983,37.13535156250006],[9.875585937499977,37.25415039062503],[10.196386718750063,37.205859375000045],[10.293261718750074,36.781494140625],[10.412304687499983,36.73183593750002],[11.053906250000068,37.07250976562506],[11.12666015625004,36.874072265625045],[10.476562500000028,36.175146484375006],[10.590820312500028,35.88725585937499],[11.00429687500008,35.63383789062496],[11.120117187500057,35.24028320312499],[10.69091796875,34.67846679687503],[10.118359375000068,34.280078125000045],[10.049023437500068,34.056298828124994],[10.305273437500034,33.72827148437497],[10.713183593750017,33.68901367187496],[10.722753906250006,33.514404296875],[10.958007812500057,33.62631835937498],[11.257421875000034,33.30883789062506],[11.202636718749972,33.24921874999998],[11.50458984375004,33.181933593750045],[11.502441406250028,33.15556640624999],[11.467187500000051,32.96572265625005],[11.459179687500011,32.897363281249966],[11.453906250000017,32.64257812500003],[11.533789062500034,32.52495117187496],[11.535937500000017,32.47333984375001],[11.504980468750034,32.413671875000034],[11.358007812500006,32.34521484375003],[11.168261718750074,32.25673828125002],[11.005175781250074,32.17270507812506],[10.826367187500068,32.080664062500034],[10.771582031250006,32.02119140625001],[10.60888671875,31.929541015624977],[10.47578125000004,31.736035156249983],[10.274609375000011,31.684960937499994]]]]},"properties":{"name":"Tunisia","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[25.970019531250045,40.136328125],[25.6689453125,40.13588867187502],[25.918359375000023,40.23798828125004],[25.970019531250045,40.136328125]]],[[[43.43339843750002,41.155517578125],[43.43945312500003,41.10712890625001],[43.72265624999997,40.71953124999999],[43.56933593750003,40.48237304687498],[43.66621093750004,40.12636718750002],[44.28925781250004,40.040380859375006],[44.76826171875004,39.70351562500005],[44.81718750000002,39.65043945312496],[44.58710937500004,39.76855468750006],[44.3893554687501,39.422119140625],[44.02324218750002,39.37744140625006],[44.27167968750004,38.83603515625006],[44.2985351562501,38.38627929687499],[44.4499023437501,38.33422851562506],[44.21132812499999,37.908056640625006],[44.589941406250006,37.710351562499966],[44.574023437500074,37.435400390625006],[44.79414062500004,37.290380859375034],[44.76513671875003,37.142431640625006],[44.73095703124997,37.16528320312503],[44.66933593750005,37.17358398437503],[44.60595703124997,37.176025390625],[44.401953125,37.05849609375002],[44.325585937499994,37.0107421875],[44.28183593750006,36.97802734374997],[44.24570312500006,36.983300781249994],[44.20166015624997,37.05180664062502],[44.208398437499994,37.20263671875],[44.19179687499999,37.249853515625034],[44.15625,37.28295898437503],[44.11445312500004,37.30185546875006],[44.01318359375003,37.313525390625045],[43.83642578124997,37.223535156249994],[43.67578125000003,37.227246093749955],[43.09248046875004,37.36738281249998],[42.936621093750006,37.32475585937502],[42.77460937500004,37.371875],[42.74111328125005,37.361914062500034],[42.6354492187501,37.249267578125],[42.45585937500002,37.128710937500045],[42.358984375,37.10859375000004],[42.31289062499999,37.22958984374998],[42.26855468749997,37.276562499999955],[42.24755859375003,37.28222656250006],[42.20273437500006,37.29726562499999],[42.16787109375005,37.28862304687502],[42.059863281250074,37.2060546875],[41.886816406250006,37.156396484374994],[40.70566406250006,37.09770507812502],[40.4503906250001,37.00888671875006],[40.016406250000074,36.82607421875002],[39.68652343749997,36.73862304687506],[39.50146484374997,36.702246093750034],[39.35664062500004,36.68159179687498],[39.10839843749997,36.68056640625005],[38.90644531250004,36.69467773437498],[38.76660156249997,36.69311523437503],[38.19169921875002,36.90156250000004],[37.90664062500005,36.79462890625001],[37.7203125,36.74370117187502],[37.52353515625006,36.678320312500034],[37.436328125000074,36.643310546875],[37.327050781249994,36.64658203125006],[37.18740234375005,36.655908203124994],[37.066210937500074,36.652636718750045],[36.98535156250003,36.70239257812506],[36.94179687499999,36.758398437500006],[36.77656250000004,36.79267578124998],[36.65859375000005,36.80253906250002],[36.62841796875003,36.777685546875034],[36.596875,36.70136718750001],[36.546679687500074,36.50634765625],[36.5375,36.457421874999966],[36.63671874999997,36.233984375],[36.37539062499999,36.171240234375034],[36.347558593749994,36.003515625000034],[36.20195312500002,35.93754882812502],[36.15361328125002,35.83388671875005],[36.12734375,35.831445312499994],[35.967578125000074,35.91005859375002],[35.89267578125006,35.91655273437502],[35.81093750000005,36.30986328125002],[36.18847656250003,36.65898437499999],[36.048925781250006,36.91059570312501],[35.393164062500006,36.57519531249997],[34.70361328125003,36.81679687499999],[33.694726562499994,36.18198242187498],[32.794824218749994,36.03588867187497],[32.37773437500002,36.18364257812496],[32.02197265625003,36.53530273437502],[31.35253906249997,36.80107421874999],[30.64404296874997,36.86567382812501],[30.446093750000074,36.269873046875034],[29.6890625,36.15668945312498],[29.22363281249997,36.32446289062497],[28.96962890625008,36.71533203125003],[28.303710937500057,36.81196289062498],[28.01943359375005,36.63447265624998],[28.083984375000057,36.75146484375],[27.453906250000017,36.712158203125],[28.00537109375003,36.83198242187498],[28.242382812500068,37.029052734375],[27.262988281250045,36.97656250000003],[27.30019531250005,37.12685546875002],[27.53505859375005,37.16386718750002],[27.06796875,37.65791015625004],[27.224414062500074,37.725439453125006],[27.23242187500003,37.978662109374994],[26.29072265625001,38.27719726562498],[26.44130859375005,38.64121093749998],[26.67421875000008,38.33574218750002],[27.14423828125001,38.45195312499996],[26.906835937500034,38.48173828124999],[26.763671875,38.709619140624966],[27.013671875000057,38.88686523437502],[26.814941406250057,38.96098632812502],[26.853613281250034,39.115625],[26.68183593750004,39.292236328125],[26.89921874999999,39.549658203125034],[26.113085937500074,39.46738281249998],[26.101367187500074,39.56894531249998],[26.18134765625004,39.99008789062498],[26.738085937500045,40.40024414062506],[27.28457031250008,40.45561523437496],[27.4755859375,40.319921875000034],[27.72802734375,40.32880859374998],[27.84853515625005,40.38173828125002],[27.73183593750008,40.48149414062499],[27.87490234375008,40.512939453125],[27.989550781250074,40.48945312500001],[27.96259765625001,40.369873046875],[29.00712890624999,40.389746093750034],[28.787890625000017,40.534033203125034],[28.95800781250003,40.63056640624998],[29.849218750000063,40.760107421875006],[29.113867187499977,40.93784179687506],[29.14814453125004,41.221044921875034],[31.25488281249997,41.10761718750001],[31.45800781249997,41.32001953125004],[32.306445312500074,41.72958984374998],[33.38134765625003,42.01757812500003],[34.75048828124997,41.95683593749999],[35.006445312500006,42.06328125000002],[35.15488281250006,42.02753906250001],[35.12207031250003,41.89111328125003],[35.297753906249994,41.72851562500003],[35.558007812499994,41.63403320312506],[36.05175781249997,41.68256835937498],[36.40537109375006,41.27460937500001],[36.77773437499999,41.36347656250001],[37.066210937500074,41.184423828125034],[38.38105468750004,40.92451171875001],[39.426367187500006,41.10644531250003],[40.26523437500006,40.96132812500005],[41.08359375000006,41.26118164062504],[41.41435546875002,41.42363281249999],[41.510058593750074,41.51748046875002],[41.70175781250006,41.471582031249994],[41.77939453125006,41.44052734374998],[41.823535156250074,41.432373046875],[41.92578125000003,41.49565429687502],[42.46640625,41.43984375000002],[42.56738281249997,41.55927734375001],[42.590429687500006,41.57070312500002],[42.60683593750005,41.57880859374998],[42.682421875000074,41.58574218749999],[42.75410156250004,41.57890625000002],[42.787890625000074,41.56372070312503],[42.82167968750005,41.49238281249998],[42.90673828125003,41.46684570312502],[43.05712890625003,41.35283203124996],[43.149023437500006,41.30712890624997],[43.171289062499994,41.28793945312498],[43.14101562499999,41.26484374999998],[43.15283203124997,41.23642578125006],[43.20546875000005,41.19916992187501],[43.43339843750002,41.155517578125]]],[[[27.47480468750001,41.946875],[28.014453125000017,41.96904296874999],[28.197851562500063,41.55449218750002],[29.057226562500006,41.22973632812503],[28.95625,41.00820312499999],[28.172167968750074,41.08071289062502],[27.49941406250005,40.97314453124997],[27.258007812499983,40.687353515625006],[26.772070312500034,40.498046875],[26.202734375000034,40.07539062500004],[26.25380859375005,40.31469726562503],[26.792089843750034,40.626611328124994],[26.10546875000003,40.61132812499997],[26.03896484375008,40.726757812499955],[26.331054687500057,40.954492187499994],[26.330664062499977,41.23876953125],[26.62490234375008,41.401757812499994],[26.581347656250074,41.60126953125004],[26.320898437500034,41.716552734375],[26.3603515625,41.80156249999999],[26.51142578125004,41.82636718749998],[26.549707031250023,41.896728515625],[26.5796875,41.947949218749955],[26.615332031250063,41.964892578125045],[26.884863281250006,41.99184570312502],[26.96875,42.02685546875006],[27.01171875,42.05864257812496],[27.193359375000057,42.07709960937498],[27.24433593750004,42.09326171875],[27.294921875000057,42.079541015624955],[27.47480468750001,41.946875]]]]},"properties":{"name":"Turkey","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[39.71132812499999,-7.977441406250023],[39.602929687499994,-7.936132812499949],[39.907128906249994,-7.649218750000031],[39.71132812499999,-7.977441406250023]]],[[[39.49648437499999,-6.174609375],[39.573046875000074,-6.387402343750011],[39.48095703124997,-6.45371093750002],[39.18232421875004,-6.172558593750026],[39.30898437499999,-5.721972656249974],[39.49648437499999,-6.174609375]]],[[[39.86503906250002,-4.906152343750037],[39.74931640625002,-5.443847656249986],[39.646777343750074,-5.368554687500009],[39.6734375,-4.927050781250031],[39.86503906250002,-4.906152343750037]]],[[[33.90322265625005,-1.002050781250034],[37.643847656250074,-3.045410156250028],[37.608203125000074,-3.497070312500028],[39.221777343750006,-4.692382812500014],[38.80468750000003,-6.070117187500031],[38.87402343750003,-6.33125],[39.5460937500001,-7.024023437500034],[39.288476562499994,-7.517871093750003],[39.28701171875005,-7.787695312500006],[39.4284179687501,-7.81279296874996],[39.441015625,-8.011523437499946],[39.304003906250074,-8.44384765625],[39.451269531250006,-8.94296875],[39.64130859375004,-9.19248046875002],[39.72519531250006,-10.000488281249972],[40.46357421875004,-10.464355468749972],[39.98867187499999,-10.820800781250014],[39.81708984375004,-10.912402343750031],[38.9875,-11.167285156250003],[38.49179687500006,-11.413281250000026],[37.92021484375002,-11.294726562500031],[37.72480468750004,-11.58066406250002],[37.54169921875004,-11.675097656249974],[37.37285156250002,-11.710449218749986],[36.97890625000005,-11.566992187499977],[36.30566406250003,-11.706347656249946],[36.191308593749994,-11.670703124999974],[36.17548828125004,-11.60927734374998],[36.08222656250004,-11.537304687499969],[35.91132812500004,-11.45468750000002],[35.785449218750074,-11.452929687500017],[35.63095703125006,-11.582031250000028],[35.564355468749994,-11.602343749999989],[35.418261718750074,-11.583203125],[35.18261718750003,-11.574804687499977],[34.95947265625003,-11.578125],[34.93701171874997,-11.463476562500034],[34.890625,-11.3935546875],[34.77382812500005,-11.341699218750009],[34.60791015624997,-11.08046875],[34.66708984375006,-10.792480468750028],[34.56992187500006,-10.241113281249966],[34.32089843750006,-9.731542968749977],[33.99560546875003,-9.495410156250003],[33.88886718750004,-9.670117187499983],[32.91992187500003,-9.407421875000026],[32.75664062500002,-9.322265625],[31.94257812500004,-9.05400390624996],[31.91865234375004,-8.942187500000017],[31.886132812499994,-8.921972656249977],[31.81806640625004,-8.902246093749952],[31.673632812500017,-8.908789062499963],[31.55625,-8.80546875],[31.44921874999997,-8.65390625],[31.35058593750003,-8.607031250000034],[31.07636718750004,-8.611914062499963],[30.968359375000063,-8.550976562499983],[30.89199218750005,-8.473730468749963],[30.830664062500063,-8.385546875000031],[30.720898437500097,-8.104394531250037],[30.40673828125003,-7.460644531249983],[30.313183593750097,-7.203710937499949],[30.212695312500017,-7.037890625000017],[30.10625,-6.915039062500028],[29.961816406249994,-6.803125],[29.798144531250017,-6.691894531249957],[29.70966796875004,-6.61689453125004],[29.590625,-6.394433593750023],[29.540820312500017,-6.313867187500037],[29.50625,-6.172070312500011],[29.480078125,-6.025],[29.490820312500063,-5.96542968750002],[29.59638671875004,-5.775976562499963],[29.60703125,-5.722656250000028],[29.59414062500005,-5.650781250000037],[29.542382812499994,-5.499804687500017],[29.34277343749997,-4.983105468749997],[29.32343750000004,-4.898828124999966],[29.32568359374997,-4.835644531249969],[29.404199218749994,-4.49667968750002],[29.40322265625005,-4.449316406249963],[29.71777343750003,-4.45585937499996],[29.94726562499997,-4.307324218749983],[30.4,-3.65390625],[30.790234375000097,-3.274609375000011],[30.811132812500006,-3.116406250000011],[30.78027343750003,-2.984863281249957],[30.70947265624997,-2.977246093749997],[30.604296875000074,-2.935253906249969],[30.515039062499994,-2.917578125],[30.45556640625003,-2.893164062500006],[30.433496093749994,-2.874511718750028],[30.424023437500097,-2.82402343749996],[30.473339843750097,-2.6943359375],[30.42421875000005,-2.641601562500014],[30.441992187500006,-2.613476562499969],[30.53369140624997,-2.426269531250014],[30.55361328125005,-2.400097656250011],[30.593359375000063,-2.39677734374996],[30.65664062500005,-2.373828124999989],[30.71484375000003,-2.363476562500011],[30.7625,-2.371679687499991],[30.828710937500006,-2.338476562499977],[30.85498046874997,-2.265429687500017],[30.8765625,-2.143359375000017],[30.864648437499994,-2.044042968749949],[30.819140625000017,-1.967480468749983],[30.812597656250006,-1.56308593750002],[30.76220703124997,-1.458691406249983],[30.710742187500074,-1.396777343749974],[30.631933593750006,-1.36748046874996],[30.508105468750074,-1.208203125000026],[30.47021484374997,-1.13115234374996],[30.47705078124997,-1.0830078125],[30.509960937500097,-1.067285156249994],[30.51992187499999,-1.0625],[30.67275390625005,-1.051367187499949],[30.741992187500017,-1.007519531249997],[30.809179687500063,-0.994921875],[30.82363281250005,-0.999023437499943],[30.84472656250003,-1.002050781250034],[32.371875,-1.002050781250034],[33.90322265625005,-1.002050781250034]]]]},"properties":{"name":"Tanzania","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[30.50996093750001,-1.067285156250009],[30.46992187500001,-1.066015625],[30.41230468750001,-1.063085937500006],[30.360253906250023,-1.074609375],[29.930078125000023,-1.469921875000011],[29.82539062500001,-1.335546875],[29.576953125000017,-1.387890625000011],[29.717675781250023,0.098339843749997],[29.934472656250023,0.4990234375],[29.94287109375,0.819238281249994],[31.252734375000017,2.044580078124994],[31.176367187500006,2.270068359374989],[30.728613281250006,2.455371093749989],[30.8466796875,2.847021484374991],[30.754003906250006,3.041796874999989],[30.90644531250001,3.408935546875],[30.83857421875001,3.49072265625],[31.15234375,3.785595703124997],[31.547167968750017,3.677587890624991],[31.79804687500001,3.802636718749994],[32.13593750000001,3.519726562499997],[32.33574218750002,3.706201171874994],[32.99726562500001,3.880175781249989],[33.489355468750006,3.755078125],[33.568457031250006,3.81171875],[33.74160156250002,3.985253906249994],[33.97607421875,4.22021484375],[34.13203125000001,3.88916015625],[34.18574218750001,3.869775390624994],[34.1650390625,3.81298828125],[34.26708984375,3.733154296875],[34.39287109375002,3.691503906249991],[34.43769531250001,3.650585937499997],[34.44179687500002,3.60625],[34.3994140625,3.412695312499991],[34.4072265625,3.357519531249991],[34.447851562500006,3.163476562499994],[34.90576171875,2.4796875],[34.88300781250001,2.417919921874997],[34.96406250000001,2.062402343749994],[34.9775390625,1.861914062499991],[34.97646484375002,1.719628906249994],[34.79863281250002,1.24453125],[34.48173828125002,1.042138671874994],[34.41083984375001,0.867285156249991],[34.16093750000002,0.605175781249997],[33.94316406250002,0.173779296874997],[33.90322265625002,-1.002050781250006],[32.371875,-1.002050781250006],[30.8447265625,-1.002050781250006],[30.823632812500023,-0.9990234375],[30.809179687500006,-0.994921875],[30.741992187500017,-1.007519531250011],[30.672753906250023,-1.051367187500006],[30.598730468750006,-1.069726562500009],[30.519921875000023,-1.0625],[30.50996093750001,-1.067285156250009]]]},"properties":{"name":"Uganda","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[32.01220703124997,46.20390624999999],[32.15009765625004,46.1546875],[31.56386718750005,46.25776367187504],[31.50878906250003,46.373144531250006],[32.01220703124997,46.20390624999999]]],[[[38.21435546875003,47.091455078124966],[37.54335937499999,47.07456054687498],[36.794824218749994,46.71440429687499],[36.55878906250004,46.76269531250006],[35.82714843749997,46.62431640625002],[35.01455078125005,46.10600585937502],[35.280175781249994,46.27949218750001],[35.23037109375005,46.440625],[34.84960937500003,46.189892578124955],[35.02285156250005,45.70097656250002],[35.45751953124997,45.316308593749994],[36.170507812500006,45.453076171874955],[36.575,45.3935546875],[36.39335937500002,45.06538085937501],[35.87011718750003,45.005322265624955],[35.472558593749994,45.098486328125006],[35.08769531250002,44.802636718749966],[34.46992187500004,44.7216796875],[33.909960937500074,44.387597656249966],[33.45068359374997,44.553662109374955],[33.55517578125003,45.09765625000003],[32.5080078125001,45.40380859375006],[33.664843750000074,45.94707031249996],[33.59414062500005,46.09624023437499],[33.42988281250004,46.05761718750003],[33.20224609375006,46.17573242187501],[32.47675781250004,46.08369140625001],[31.83125,46.28168945312501],[32.00849609375004,46.42998046875002],[31.554882812500097,46.554296875000034],[32.36132812499997,46.474951171875034],[32.578027343749994,46.615625],[32.04433593750005,46.642480468749966],[31.75917968750005,47.21284179687501],[31.872851562500017,46.649755859375034],[31.532128906249994,46.66474609374998],[31.56337890625005,46.77729492187501],[31.402929687500063,46.62880859375002],[30.796289062499994,46.55200195312503],[30.219042968750074,45.866748046875045],[29.62841796875003,45.722460937500045],[29.705859375000074,45.25991210937505],[29.567675781250074,45.37080078124998],[29.40371093750005,45.419677734375],[29.22353515625005,45.402929687500034],[28.894335937500017,45.28994140625002],[28.78173828125,45.30986328125002],[28.76660156250003,45.28623046874998],[28.78828125000001,45.240966796875],[28.451269531250006,45.292187499999955],[28.317675781250045,45.347119140624955],[28.2125,45.45043945312506],[28.26484375000004,45.48388671875003],[28.310351562500074,45.49858398437499],[28.499023437500057,45.517724609374994],[28.513769531250034,45.57241210937502],[28.49160156250005,45.66577148437503],[28.562304687500074,45.73579101562501],[28.667578125,45.79384765625002],[28.729296875000074,45.852001953124955],[28.73876953125003,45.937158203124994],[28.84951171875005,45.97866210937502],[28.94775390624997,46.049951171874966],[28.971875,46.12763671874998],[29.00625,46.17646484374998],[28.94375,46.28842773437506],[28.930566406250023,46.36225585937501],[28.92744140625001,46.42412109374999],[28.958398437500023,46.45849609374997],[29.146289062500017,46.52690429687496],[29.186230468750068,46.52397460937499],[29.20078125,46.504980468750034],[29.20458984374997,46.37934570312501],[29.223828125000097,46.37695312499997],[29.458789062500017,46.453759765624994],[29.83789062499997,46.35053710937501],[29.878027343750063,46.360205078125034],[30.07568359375003,46.377832031249966],[30.131054687500097,46.42309570312506],[29.92431640624997,46.53886718750002],[29.934765625000097,46.625],[29.942480468750063,46.72377929687502],[29.918066406250063,46.78242187499998],[29.877832031249994,46.828906250000045],[29.57197265625004,46.96401367187502],[29.455664062500006,47.292626953124994],[29.134863281250006,47.48969726562501],[29.125390625000023,47.96455078125001],[28.42304687500001,48.146875],[28.34052734375001,48.144433593749994],[27.54921875000008,48.47773437500004],[27.22851562500003,48.37143554687506],[26.90058593750001,48.37192382812506],[26.847070312500023,48.387158203124955],[26.640429687500045,48.29414062500001],[26.618945312500017,48.25986328125006],[26.4423828125,48.22998046875],[26.162695312500063,47.992529296875034],[25.90869140625,47.96757812500002],[25.689257812500045,47.93247070312506],[25.46425781250005,47.910791015624994],[24.979101562500063,47.72412109374997],[24.578906250000074,47.93105468750005],[23.628710937500017,47.995849609375],[23.40820312500003,47.98999023437506],[23.20263671875,48.084521484375045],[23.13945312499999,48.08740234375],[22.87666015625001,47.94726562500006],[22.769140625000063,48.109619140625],[22.582421875000023,48.134033203125],[22.253710937500017,48.407373046874994],[22.131835937500057,48.40532226562502],[22.142871093750017,48.568505859374966],[22.295214843750045,48.68583984374999],[22.389453125000045,48.87348632812501],[22.52412109375004,49.03139648437502],[22.538671875,49.07270507812501],[22.847070312500023,49.08125],[22.705664062500006,49.17119140624999],[22.6494140625,49.53901367187498],[22.706152343750006,49.60620117187497],[23.03632812500004,49.899072265624966],[23.711718750000045,50.377343749999966],[23.97265625,50.410058593749966],[24.089941406250006,50.53046874999998],[24.0947265625,50.617041015625034],[23.9970703125,50.809375],[24.095800781250063,50.87275390625001],[23.664453125000023,51.31005859375],[23.61376953125,51.525390625],[23.706835937500045,51.64130859374998],[23.79169921875001,51.63710937500002],[23.864257812500057,51.62397460937501],[23.951171875,51.58505859374998],[23.978320312500017,51.59130859375003],[24.12685546875008,51.664648437500034],[24.280078125000017,51.77470703124999],[24.361914062500006,51.86752929687498],[25.785742187500006,51.923828125],[26.77343750000003,51.77070312499998],[26.952832031249983,51.754003906250034],[27.074121093750023,51.760839843750006],[27.14199218750008,51.75205078124998],[27.29628906250008,51.59741210937503],[27.689746093750017,51.572412109374994],[27.7,51.47797851562501],[27.85859375000004,51.59238281250006],[28.532031250000017,51.56245117187501],[28.59902343750008,51.54262695312505],[28.647753906250074,51.45654296875],[28.690234375000017,51.43886718750005],[28.73125,51.43339843749999],[28.84951171875005,51.540185546874994],[28.927539062500045,51.56215820312502],[28.97773437500004,51.57177734375003],[29.01308593750005,51.59892578124996],[29.06074218750001,51.625439453124955],[29.102050781250057,51.627539062500034],[29.346484375000017,51.38256835937503],[30.160742187500006,51.477880859375006],[30.449511718750017,51.274316406249994],[30.63251953125004,51.35541992187501],[30.61171875000005,51.406347656250006],[30.602343750000017,51.47124023437499],[30.56074218750004,51.531494140625],[30.533007812500017,51.596337890624966],[30.583886718749994,51.68896484375003],[30.667285156250017,51.81411132812502],[30.755273437499994,51.89516601562502],[30.84570312500003,51.95307617187501],[30.980664062500097,52.04619140624996],[31.217968750000097,52.05024414062498],[31.345996093750074,52.10537109375002],[31.57373046875003,52.108105468749955],[31.763378906250097,52.10107421875003],[32.12226562500004,52.05058593749996],[32.435449218749994,52.307226562500034],[33.735253906249994,52.344775390625045],[34.397851562499994,51.780419921874994],[34.12109375000003,51.67915039062498],[34.21386718750003,51.25537109375006],[35.0640625,51.203417968750045],[35.31191406250005,51.043896484374955],[35.59111328125002,50.36875],[36.1164062500001,50.408544921875006],[36.619433593750074,50.209228515625],[37.42285156249997,50.411474609375006],[38.046875,49.92001953125006],[38.258593750000074,50.05234375],[38.91835937499999,49.82470703125],[39.17480468750003,49.85595703124997],[39.780566406250074,49.57202148437503],[40.080664062500006,49.576855468749955],[40.10878906250005,49.251562500000034],[39.68652343749997,49.007910156250034],[40.00361328125004,48.82207031250002],[39.792871093749994,48.807714843750034],[39.6447265625001,48.591210937499966],[39.8356445312501,48.54277343749996],[39.95791015625005,48.268896484375034],[39.77871093750005,47.88754882812506],[38.90029296875005,47.85512695312502],[38.36884765625004,47.609960937500006],[38.21435546875003,47.091455078124966]]]]},"properties":{"name":"Ukraine","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-57.81059570312499,-30.85859375000001],[-57.872509765625,-30.59101562500001],[-57.831201171874994,-30.495214843750006],[-57.71269531249999,-30.38447265625001],[-57.65087890625,-30.295019531250006],[-57.645751953125,-30.226953125],[-57.60888671875,-30.187792968750003],[-57.55229492187499,-30.26123046875],[-57.21445312499999,-30.28339843750001],[-57.186914062499994,-30.26484375000001],[-57.120507812499994,-30.14443359375001],[-56.83271484375,-30.107226562500003],[-56.4072265625,-30.44746093750001],[-55.998974609375,-30.837207031250003],[-56.018457031249994,-30.99189453125001],[-56.00468749999999,-31.079199218750006],[-55.873681640624994,-31.069628906250003],[-55.6271484375,-30.85810546875001],[-55.60302734375,-30.85078125000001],[-55.55732421875,-30.8759765625],[-55.17353515625,-31.279589843750003],[-55.09116210937499,-31.31396484375],[-55.036035156249994,-31.27900390625001],[-54.587646484375,-31.48515625],[-54.22055664062499,-31.85517578125001],[-53.76171875,-32.05683593750001],[-53.601708984374994,-32.40302734375001],[-53.12558593749999,-32.73671875],[-53.2140625,-32.82109375],[-53.31010742187499,-32.92705078125],[-53.39521484375,-33.010351562500006],[-53.482861328125,-33.06855468750001],[-53.511865234374994,-33.10869140625],[-53.53134765624999,-33.1708984375],[-53.53134765624999,-33.65546875000001],[-53.37060546875,-33.7421875],[-53.419580078124994,-33.77919921875001],[-53.47246093749999,-33.84931640625001],[-53.53452148437499,-34.01748046875001],[-53.742919921875,-34.24951171875],[-53.785302734374994,-34.38037109375],[-54.16855468749999,-34.670703125],[-54.902294921875,-34.93281250000001],[-55.67314453124999,-34.77568359375],[-56.249951171875,-34.90126953125001],[-57.17070312499999,-34.45234375000001],[-57.8291015625,-34.47734375],[-58.40019531249999,-33.91240234375],[-58.363525390625,-33.18232421875001],[-58.08232421874999,-32.893652343750006],[-58.12958984375,-32.75722656250001],[-58.16220703124999,-32.566503906250006],[-58.201171875,-32.4716796875],[-58.123046875,-32.321875],[-58.11972656249999,-32.24892578125001],[-58.164794921875,-32.18486328125],[-58.177001953125,-32.11904296875001],[-58.15634765624999,-32.0515625],[-58.160400390625,-31.98652343750001],[-58.18901367187499,-31.92421875],[-58.16748046875,-31.87265625],[-58.04233398437499,-31.76923828125001],[-58.006982421874994,-31.68496093750001],[-58.053857421874994,-31.494921875],[-58.0333984375,-31.416601562500006],[-57.89335937499999,-31.1953125],[-57.868408203125,-31.10439453125001],[-57.88632812499999,-30.93740234375001],[-57.81059570312499,-30.85859375000001]]]},"properties":{"name":"Uruguay","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-155.58134765624996,19.012011718750017],[-155.88129882812495,19.07050781250001],[-156.04868164062498,19.749951171874983],[-155.82031249999997,20.01416015624997],[-155.83164062499998,20.27583007812501],[-155.198779296875,19.99438476562503],[-154.80419921875,19.524462890625045],[-155.58134765624996,19.012011718750017]]],[[[-156.84960937499997,20.772656249999955],[-156.97338867187497,20.757519531249983],[-157.0505859375,20.912451171875034],[-156.88056640624995,20.904833984375074],[-156.84960937499997,20.772656249999955]]],[[[-156.48681640624994,20.93256835937504],[-156.27753906250004,20.951269531250034],[-155.98984374999998,20.75712890624999],[-156.40878906249998,20.60517578125004],[-156.480078125,20.80122070312501],[-156.69775390625003,20.949072265625034],[-156.58540039062495,21.034326171874994],[-156.48681640624994,20.93256835937504]]],[[[-157.21362304687497,21.215380859375017],[-156.71215820312506,21.155078125000074],[-156.85986328125,21.05634765625004],[-157.29033203124996,21.112597656250017],[-157.21362304687497,21.215380859375017]]],[[[-157.79936523437502,21.456640625000034],[-157.63540039062502,21.30761718749997],[-158.11035156249994,21.318603515625],[-158.27314453125,21.585253906250045],[-157.9625,21.701367187499983],[-157.79936523437502,21.456640625000034]]],[[[-159.37275390625,21.93237304687497],[-159.60883789062495,21.909521484375034],[-159.78916015625003,22.041796875000074],[-159.57919921874998,22.22314453124997],[-159.35205078124997,22.219580078125034],[-159.37275390625,21.93237304687497]]],[[[-81.04418945312503,24.716796875000057],[-81.137353515625,24.710498046875017],[-80.93046875,24.75947265625004],[-81.04418945312503,24.716796875000057]]],[[[-80.3818359375,25.142285156249955],[-80.58056640624997,24.954248046875023],[-80.25708007812497,25.34760742187504],[-80.3818359375,25.142285156249955]]],[[[-97.17070312499996,26.159375],[-97.40209960937494,26.820507812499983],[-97.38598632812494,27.19648437500004],[-97.17070312499996,26.159375]]],[[[-80.18676757812497,27.278417968750034],[-80.17050781250003,27.20478515625004],[-80.43691406249994,27.850537109374955],[-80.18676757812497,27.278417968750034]]],[[[-91.793701171875,29.50073242187497],[-92.00664062499996,29.61030273437501],[-91.875244140625,29.640966796875034],[-91.793701171875,29.50073242187497]]],[[[-84.90791015624998,29.642626953125017],[-85.11674804687499,29.63281249999997],[-84.737158203125,29.732421875],[-84.90791015624998,29.642626953125017]]],[[[-89.22397460937498,30.084082031249977],[-89.34199218749995,30.062841796875006],[-89.18466796874995,30.168652343749983],[-89.22397460937498,30.084082031249977]]],[[[-118.34794921875002,33.3857421875],[-118.29746093750003,33.312109375],[-118.44628906249997,33.317089843749955],[-118.56943359375002,33.46416015624999],[-118.34794921875002,33.3857421875]]],[[[-120.04355468749995,33.918847656249994],[-120.25190429687494,34.01386718749998],[-120.07182617187493,34.026513671874966],[-120.04355468749995,33.918847656249994]]],[[[-119.88237304687497,34.07968749999998],[-119.54926757812497,34.02817382812506],[-119.80957031249997,33.9677734375],[-119.88237304687497,34.07968749999998]]],[[[-75.54414062499995,35.240087890625034],[-75.69008789062502,35.221582031249994],[-75.53637695312497,35.27861328124999],[-75.50351562500003,35.769140625],[-75.46474609374994,35.448632812499966],[-75.54414062499995,35.240087890625034]]],[[[-74.13320312500002,39.680761718750034],[-74.25048828125,39.529394531250006],[-74.10673828124996,39.74643554687498],[-74.13320312500002,39.680761718750034]]],[[[-72.50976562500003,40.98603515625001],[-72.58085937499996,40.92133789062498],[-71.90322265625,41.06069335937505],[-73.19428710937495,40.654199218749994],[-74.01489257812497,40.581201171874966],[-73.87924804687498,40.79165039062502],[-73.573828125,40.91962890624998],[-72.62509765624998,40.99184570312505],[-72.27412109374998,41.15302734375001],[-72.50976562500003,40.98603515625001]]],[[[-69.9779296875,41.26557617187504],[-70.23305664062502,41.28632812500001],[-70.04121093750001,41.3974609375],[-69.9779296875,41.26557617187504]]],[[[-70.50991210937502,41.376318359375034],[-70.82919921874995,41.35898437500006],[-70.61601562499996,41.45722656250001],[-70.50991210937502,41.376318359375034]]],[[[-71.24140625000001,41.49194335937497],[-71.34624023437496,41.469384765624994],[-71.23203124999995,41.654296875],[-71.24140625000001,41.49194335937497]]],[[[-68.18725585937497,44.33247070312501],[-68.41171875000003,44.294335937499966],[-68.29941406249998,44.456494140624955],[-68.18725585937497,44.33247070312501]]],[[[-122.394140625,47.39526367187503],[-122.50991210937497,47.358007812500006],[-122.486474609375,47.48876953125],[-122.394140625,47.39526367187503]]],[[[-122.57275390624999,48.15664062499999],[-122.38315429687499,47.923193359375034],[-122.74150390624999,48.22529296875004],[-122.62861328125,48.38422851562498],[-122.54243164062503,48.29399414062499],[-122.69702148437499,48.228662109374994],[-122.57275390624999,48.15664062499999]]],[[[-94.80346679687497,49.0029296875],[-94.71279296874997,48.863427734374994],[-94.62089843749999,48.74262695312501],[-93.85161132812496,48.607275390625034],[-93.70771484374995,48.52543945312499],[-93.37788085937498,48.61655273437498],[-93.25795898437497,48.62885742187501],[-92.83671875,48.567773437499994],[-92.50058593749995,48.43535156250002],[-92.41459960937493,48.276611328125],[-92.3484375,48.276611328125],[-92.00517578125002,48.301855468750006],[-91.38720703124997,48.05854492187498],[-91.04345703125003,48.19370117187498],[-90.84033203125003,48.20053710937506],[-90.79731445312495,48.13105468750001],[-89.4556640625,47.996240234374994],[-88.37817382812497,48.30307617187498],[-87.74389648437497,48.06054687500003],[-87.20800781249997,47.848486328125006],[-86.67216796874996,47.636425781249955],[-85.65224609375,47.21997070312503],[-85.07006835937497,46.97993164062498],[-84.87597656249994,46.89990234375003],[-84.66577148437503,46.54326171875002],[-84.44047851562496,46.49814453125006],[-84.12319335937497,46.50292968749997],[-83.97778320312503,46.08491210937498],[-83.61596679687503,46.116845703124994],[-83.46948242187503,45.99467773437499],[-83.59267578125,45.81713867187506],[-82.91933593749994,45.51796875000002],[-82.55107421874996,45.34736328125001],[-82.48505859374993,45.08374023437503],[-82.137841796875,43.570898437500034],[-82.19038085937495,43.47407226562501],[-82.54531249999997,42.62470703124998],[-83.10952148437497,42.25068359375001],[-83.141943359375,41.97587890624996],[-82.69003906249995,41.675195312499994],[-82.43906249999998,41.67485351562502],[-81.97416992187496,41.88872070312499],[-81.50732421874997,42.10346679687504],[-81.02822265624997,42.247167968750006],[-80.24755859375,42.36601562499996],[-79.17373046875,42.74853515625],[-78.91508789062496,42.90913085937504],[-78.98076171874993,42.98061523437502],[-79.02617187499996,43.01733398437506],[-79.066064453125,43.10610351562502],[-79.171875,43.466552734375],[-79.00249023437502,43.52714843749999],[-78.845556640625,43.58334960937498],[-78.72041015625001,43.62495117187501],[-78.45825195312497,43.63149414062502],[-77.596533203125,43.62861328124998],[-76.819970703125,43.62880859375002],[-76.18579101562503,44.24223632812502],[-75.81933593749997,44.468017578125],[-75.40126953124997,44.77226562499999],[-74.99614257812496,44.970117187499966],[-74.76245117187494,44.99907226562502],[-74.663232421875,45.00390625000003],[-71.51752929687495,45.00756835937497],[-71.327294921875,45.29008789062496],[-70.86503906249999,45.27070312500001],[-70.296240234375,45.90610351562506],[-70.00771484375002,46.70893554687501],[-69.24287109374998,47.46298828124998],[-69.0501953125,47.426611328125034],[-68.93720703124998,47.21123046875002],[-68.23549804687502,47.34594726562503],[-67.806787109375,47.08281249999999],[-67.80224609374994,45.7275390625],[-67.43266601562496,45.603125],[-67.366943359375,45.17377929687498],[-67.12485351562498,45.16943359375],[-66.98701171874995,44.82768554687502],[-67.191259765625,44.67558593750002],[-67.83906249999998,44.576269531250034],[-68.056640625,44.38432617187502],[-68.15205078124998,44.50200195312499],[-68.45058593749997,44.50761718749999],[-68.53251953124996,44.25864257812498],[-68.81191406249994,44.33935546875],[-68.76269531249994,44.57075195312498],[-69.22607421875003,43.98647460937505],[-69.52075195312503,43.89736328125002],[-69.55668945312496,43.982763671875006],[-69.62392578125,43.88061523437497],[-69.65288085937493,43.99389648437506],[-69.808349609375,43.772314453125034],[-69.965234375,43.855078125],[-70.17880859374998,43.76635742187506],[-70.73310546875001,43.07001953125004],[-70.82905273437493,42.82534179687502],[-70.61293945312497,42.623242187499955],[-71.04619140624993,42.331103515625045],[-70.73828125,42.228857421875006],[-70.42666015625002,41.75727539062501],[-70.00141601562498,41.82617187500003],[-70.24106445312495,42.09121093750002],[-70.10893554687496,42.07832031249998],[-69.97788085937498,41.961279296875006],[-69.94863281249997,41.67714843750005],[-70.65712890625,41.53422851562496],[-70.70112304687498,41.71484375],[-71.1685546875,41.489404296874994],[-71.14873046874996,41.74570312499998],[-71.27109375,41.68125],[-71.39013671875003,41.79531250000005],[-71.52285156249997,41.378955078125045],[-72.92470703125002,41.28515625000003],[-73.98710937499999,40.751367187499994],[-73.87197265625,41.05517578124997],[-73.96992187499995,41.24970703125001],[-73.92719726562495,40.914257812499955],[-74.26420898437496,40.52861328124999],[-73.972265625,40.40034179687498],[-74.079931640625,39.78813476562496],[-74.06459960937497,39.99311523437498],[-74.79448242187499,39.00190429687501],[-74.95429687499995,38.949951171875],[-74.89702148437502,39.14545898437504],[-75.52421874999999,39.49018554687501],[-75.421875,39.78969726562502],[-75.07416992187495,39.98349609375006],[-75.40063476562503,39.83159179687502],[-75.58759765625001,39.64077148437505],[-75.3921875,39.09277343750006],[-75.08867187499999,38.777539062499955],[-75.18710937499995,38.59111328124999],[-75.03876953124993,38.426367187500006],[-75.934375,37.15190429687496],[-75.97504882812498,37.3984375],[-75.65927734374995,37.953955078125034],[-75.850830078125,37.971582031249994],[-75.85869140624999,38.36206054687503],[-76.05122070312495,38.27954101562503],[-76.2646484375,38.436425781249994],[-76.26416015625,38.599951171875006],[-76.016943359375,38.62509765624998],[-76.21298828124998,38.75830078125003],[-76.34116210937498,38.70966796874998],[-76.16816406249998,38.85273437499998],[-76.32958984375,38.95278320312505],[-76.13520507812493,39.082128906250006],[-76.23569335937498,39.19160156250001],[-76.153125,39.315039062500034],[-75.87597656249997,39.3759765625],[-76.003125,39.41083984375001],[-75.87294921874997,39.510888671874966],[-75.95893554687498,39.58505859374998],[-76.2763671875,39.32275390625],[-76.330810546875,39.40390625],[-76.42089843749997,39.225],[-76.57041015624995,39.26933593749996],[-76.42758789062498,39.12602539062499],[-76.55854492187493,39.065234375000045],[-76.39409179687502,38.368994140625034],[-76.67734374999998,38.611962890624966],[-76.66855468749998,38.5375],[-76.34116210937498,38.08701171875006],[-76.86811523437495,38.39028320312502],[-76.88974609375,38.292089843750006],[-77.00117187499995,38.44526367187504],[-77.23251953125,38.40771484375003],[-77.03037109374995,38.88925781249998],[-77.26040039062502,38.6],[-77.27324218749996,38.35175781249998],[-77.04677734375002,38.356689453125],[-76.26425781250003,37.89355468749997],[-76.34414062499997,37.675683593749994],[-76.49248046874999,37.682226562500006],[-77.11108398437497,38.165673828124994],[-76.54946289062494,37.66914062500001],[-76.30556640625,37.57148437500001],[-76.26347656249996,37.35703125],[-76.40097656249998,37.386132812499994],[-76.45390624999993,37.27353515625006],[-76.75771484375002,37.50541992187496],[-76.28330078125,37.05268554687501],[-76.40087890624997,36.991308593750034],[-76.63090820312493,37.22172851562499],[-77.25087890624994,37.329199218750034],[-76.671875,37.172949218750006],[-76.48784179687502,36.89702148437499],[-75.99941406249997,36.91264648437499],[-75.53417968749997,35.81909179687506],[-75.94648437499995,36.65908203125002],[-75.99277343749995,36.47377929687502],[-75.82006835937494,36.11284179687502],[-76.14785156250002,36.279296875],[-76.15,36.14575195312497],[-76.27060546874998,36.18989257812501],[-76.22739257812498,36.11601562499996],[-76.559375,36.015332031249955],[-76.733642578125,36.229150390624994],[-76.726220703125,35.957617187500034],[-76.06977539062501,35.970312500000034],[-76.08359374999998,35.69052734375006],[-75.85390625,35.96015625000001],[-75.75883789062499,35.84326171875],[-75.77392578124997,35.64697265624997],[-76.17382812499997,35.354150390624994],[-76.489501953125,35.397021484375045],[-76.57719726562502,35.53232421874998],[-76.74140624999998,35.431494140625034],[-77.03999023437495,35.527392578125045],[-76.51293945312497,35.270410156249994],[-76.77915039062503,34.990332031250034],[-77.07026367187501,35.154638671875034],[-76.97495117187503,35.025195312500045],[-76.74497070312498,34.94096679687502],[-76.45673828124998,34.989355468750034],[-76.36220703125,34.9365234375],[-76.43979492187498,34.84291992187502],[-77.29624023437503,34.602929687499994],[-77.41225585937497,34.730810546875034],[-77.37978515625,34.526611328125],[-77.750732421875,34.28496093749996],[-77.92783203125,33.93974609374999],[-77.95327148437494,34.16899414062496],[-78.01333007812502,33.91181640624998],[-78.40585937499995,33.91757812499998],[-78.84145507812497,33.72407226562501],[-79.19379882812498,33.24414062500003],[-79.22646484375,33.40488281249998],[-79.27602539062497,33.135400390624966],[-79.80498046874999,32.78740234374996],[-79.93310546874997,32.81005859375006],[-79.94072265625002,32.667138671874966],[-80.36284179687496,32.500732421875],[-80.6341796875,32.51171875000003],[-80.474267578125,32.42275390625002],[-80.579345703125,32.28730468750004],[-80.80253906249999,32.44804687500002],[-80.69423828124997,32.21572265625002],[-81.11328124999997,31.87861328125001],[-81.06611328124995,31.787988281250023],[-81.259375,31.538916015624977],[-81.17543945312494,31.531298828125017],[-81.38095703124998,31.353271484375],[-81.28847656249997,31.263916015625],[-81.441748046875,31.19970703124997],[-81.5162109375,30.801806640625017],[-81.24951171875003,29.793798828125006],[-80.52412109374995,28.48608398437503],[-80.5849609375,28.271582031250034],[-80.456884765625,27.90068359374996],[-80.61000976562494,28.177587890624977],[-80.60693359375003,28.522900390624983],[-80.693505859375,28.34497070312497],[-80.68847656250003,28.578515625000023],[-80.83818359374999,28.757666015625034],[-80.74863281250003,28.381005859375023],[-80.050048828125,26.807714843750063],[-80.1263671875,25.83349609375],[-80.48466796874999,25.229833984375034],[-81.11049804687494,25.138037109374977],[-81.13603515624999,25.309667968750034],[-80.94042968750003,25.264208984375017],[-81.11333007812499,25.367236328125045],[-81.36494140625001,25.83105468750003],[-81.715478515625,25.98315429687503],[-81.95893554687495,26.489941406249983],[-81.82866210937496,26.68706054687499],[-82.03959960937496,26.552050781250017],[-82.01328125,26.96157226562505],[-82.24287109374998,26.848876953125],[-82.44135742187501,27.059667968750034],[-82.71459960937497,27.499609375000063],[-82.40576171874994,27.862890624999977],[-82.67519531249994,27.963769531250023],[-82.61098632812502,27.77724609375005],[-82.74287109374995,27.709375],[-82.84350585937494,27.845996093750017],[-82.65146484375,28.8875],[-83.69438476562502,29.92597656250001],[-84.04423828124996,30.10380859374999],[-84.30966796874995,30.064746093750045],[-84.38281250000003,29.90737304687505],[-85.31894531249995,29.680224609375045],[-85.413818359375,29.76757812499997],[-85.413818359375,29.842480468749955],[-85.31489257812493,29.758105468750017],[-85.35361328125,29.875732421875],[-85.67578125,30.121923828125063],[-85.60351562500003,30.286767578124966],[-85.75581054687495,30.1669921875],[-86.454443359375,30.39912109375004],[-86.12382812499999,30.40581054687499],[-86.25737304687502,30.493017578124977],[-87.201171875,30.339257812499994],[-86.98579101562498,30.43085937500001],[-86.99755859375,30.5703125],[-87.17060546874998,30.538769531249983],[-87.28105468750002,30.339257812499994],[-87.47578124999998,30.294287109375006],[-87.44829101562499,30.394140625],[-87.62226562499998,30.264746093750006],[-88.00595703124998,30.230908203124955],[-87.79028320312503,30.291796875000017],[-88.011328125,30.694189453125006],[-88.13544921874998,30.366601562499994],[-88.90522460937495,30.415136718750006],[-89.32055664062503,30.3453125],[-89.58847656249998,30.165966796874955],[-90.12597656249997,30.369091796874955],[-90.33198242187493,30.277587890625057],[-90.41303710937501,30.140332031249983],[-90.17534179687499,30.02910156249996],[-89.73745117187497,30.171972656250034],[-89.66503906249994,30.117041015625034],[-89.81518554687497,30.007275390624955],[-89.631689453125,29.90380859375003],[-89.400732421875,30.04604492187505],[-89.35444335937501,29.82021484375005],[-89.72089843749995,29.619287109374966],[-89.01572265625,29.202880859375057],[-89.15551757812497,29.01660156250003],[-89.23608398437494,29.081103515625017],[-89.37612304687497,28.981347656250023],[-89.44316406249996,29.194140625000045],[-90.15908203124997,29.537158203125017],[-90.05278320312499,29.336816406249966],[-90.21279296875,29.104931640624983],[-90.37919921874996,29.29511718750001],[-90.75102539062496,29.13085937500003],[-91.29013671875,29.288964843749994],[-91.15078124999994,29.317919921875045],[-91.24882812499993,29.56420898437503],[-91.51420898437499,29.55537109375001],[-91.8931640625,29.836035156249977],[-92.135498046875,29.699462890625057],[-92.08403320312499,29.59282226562499],[-92.26083984374995,29.55683593750004],[-93.17568359375,29.778955078124994],[-93.82646484374999,29.725146484375045],[-93.84145507812502,29.97973632812503],[-93.89047851562495,29.689355468750023],[-94.759619140625,29.384277343750057],[-94.52626953125,29.547949218750006],[-94.77827148437498,29.54785156249997],[-94.74194335937497,29.75],[-95.0228515625,29.70234375000001],[-94.88828125000003,29.37055664062501],[-95.27348632812499,28.96386718750003],[-96.23452148437502,28.488964843749983],[-96.01103515624996,28.631933593749977],[-96.44873046874997,28.594482421875],[-96.64003906249994,28.708789062500017],[-96.42109374999993,28.457324218750045],[-96.67636718749998,28.34130859375003],[-96.77353515624998,28.421630859375057],[-96.839501953125,28.194384765625017],[-97.156494140625,28.144335937500045],[-97.141259765625,28.060742187499983],[-97.034326171875,28.093847656250063],[-97.07309570312498,27.98608398437503],[-97.43149414062498,27.83720703124999],[-97.28872070312494,27.670605468749983],[-97.43911132812502,27.328271484374966],[-97.76845703124997,27.45751953125],[-97.69238281250003,27.287158203125017],[-97.48510742187497,27.237402343750006],[-97.55468749999994,26.96733398437496],[-97.43505859375,26.48583984375003],[-97.14624023437494,25.961474609375045],[-97.37563476562497,25.871826171875],[-99.10776367187498,26.446923828124994],[-99.45654296874999,27.05668945312496],[-99.50532226562497,27.54833984375003],[-100.29604492187495,28.32768554687499],[-100.75458984375001,29.182519531249994],[-101.44038085937503,29.77685546875],[-102.26894531249998,29.871191406250034],[-102.61494140624994,29.75234375],[-102.8919921875,29.216406250000034],[-103.16831054687498,28.998193359374994],[-104.110595703125,29.386132812499994],[-104.50400390624995,29.677685546874955],[-104.97880859374996,30.645947265624955],[-106.14804687499995,31.450927734375],[-106.44541015624996,31.768408203125006],[-108.21181640625002,31.779345703125017],[-108.21445312499993,31.329443359375034],[-111.0419921875,31.32421875000003],[-114.83593749999994,32.50830078125003],[-114.72475585937495,32.71533203125003],[-117.12827148437495,32.533349609374994],[-117.46743164062495,33.295507812500006],[-118.08051757812497,33.72216796874997],[-118.41044921874996,33.74394531249996],[-118.506201171875,34.01738281249999],[-119.14375,34.11201171874998],[-119.60605468749999,34.41801757812499],[-120.48120117187503,34.47163085937498],[-120.64467773437502,34.57998046875002],[-120.65908203124994,35.122412109375034],[-120.85737304687501,35.209667968749955],[-120.899609375,35.42509765624999],[-121.28383789062494,35.67631835937499],[-121.87739257812498,36.33105468749997],[-121.80742187499995,36.851220703124994],[-122.394921875,37.20751953125003],[-122.49921875000001,37.542626953124994],[-122.44560546875002,37.797998046874966],[-122.07050781249998,37.47827148437503],[-122.38544921875001,37.960595703124966],[-122.31425781249999,38.00732421874997],[-121.52534179687503,38.05590820312503],[-122.39335937499995,38.14482421875002],[-122.52133789062499,37.82641601562497],[-122.93198242187498,38.05546875000002],[-122.998779296875,37.98862304687498],[-122.90815429687501,38.19658203124999],[-123.701123046875,38.90727539062502],[-123.83291015624994,39.775488281250034],[-124.35654296875003,40.37109374999997],[-124.07192382812497,41.45952148437502],[-124.53964843750003,42.812890624999966],[-124.14873046874997,43.691748046875034],[-123.92934570312495,45.57695312499996],[-123.989306640625,46.21938476562502],[-123.22060546874998,46.153613281250045],[-123.46484375,46.27109374999998],[-124.07275390624996,46.279443359374994],[-124.04433593750002,46.605078125],[-123.946142578125,46.43256835937501],[-123.88916015625003,46.660009765625006],[-124.11254882812497,46.862695312499994],[-123.84287109375002,46.963183593750045],[-124.11171875,47.03520507812496],[-124.1392578125,46.95468749999998],[-124.376025390625,47.658642578124955],[-124.66308593749996,47.97412109375003],[-124.7099609375,48.38037109375],[-123.97578125,48.16845703125],[-122.97387695312499,48.07329101562496],[-122.77861328125,48.13759765625002],[-122.65664062500002,47.88115234374999],[-122.77841796874996,47.738427734374966],[-122.82138671875,47.79316406250001],[-123.1390625,47.386083984375034],[-122.92216796874993,47.40766601562498],[-123.066796875,47.39965820312506],[-123.04863281249995,47.479345703125034],[-122.53281250000002,47.919726562500045],[-122.67548828124995,47.612353515625045],[-122.57788085937496,47.29316406250001],[-122.76777343750001,47.21835937500006],[-122.82846679687503,47.336572265624994],[-123.02758789062501,47.13891601562503],[-122.70195312500002,47.11088867187502],[-122.35380859374996,47.37158203125],[-122.40180664062497,47.78427734374998],[-122.24199218750002,48.01074218750003],[-122.5169921875,48.15966796874997],[-122.40854492187502,48.29389648437498],[-122.66899414062496,48.465234374999966],[-122.49677734374995,48.50556640625001],[-122.51274414062502,48.66943359375],[-122.56201171875001,48.777978515624994],[-122.68593749999995,48.794287109375034],[-122.72246093750002,48.85302734375003],[-122.78876953125003,48.993017578125034],[-121.40722656249994,48.993017578125034],[-119.70170898437495,48.993017578125034],[-119.27534179687494,48.99306640625005],[-118.84892578124993,48.99306640625005],[-117.99619140625002,48.99306640625005],[-116.71704101562501,48.99306640625005],[-110.74765625,48.99306640625005],[-104.77832031249997,48.993115234374955],[-98.80898437499995,48.99316406249997],[-97.52983398437493,48.99316406249997],[-96.67705078124993,48.99316406249997],[-96.25068359374993,48.99316406249997],[-95.39790039062493,48.99316406249997],[-95.16206054687493,48.991748046875045],[-95.15527343749997,49.36967773437502],[-94.85434570312495,49.304589843749994],[-94.86040039062493,49.258593750000045],[-94.80346679687497,49.0029296875]]],[[[-176.28671874999998,51.79199218750006],[-176.34965820312502,51.733300781249994],[-176.41372070312502,51.840576171875],[-176.28671874999998,51.79199218750006]]],[[[-177.87905273437502,51.64970703125002],[-178.05888671875,51.67260742187497],[-177.98637695312493,51.76425781249998],[-178.16826171874996,51.90302734375001],[-177.644482421875,51.826269531250006],[-177.87905273437502,51.64970703125002]]],[[[-177.14819335937497,51.71674804687498],[-177.67021484375002,51.701074218749994],[-177.11005859375,51.92875976562502],[-177.14819335937497,51.71674804687498]]],[[[-176.593310546875,51.86669921875],[-176.45234374999995,51.735693359375034],[-176.96162109374998,51.60366210937505],[-176.69833984374998,51.986035156249955],[-176.593310546875,51.86669921875]]],[[[179.72773437500015,51.905419921874966],[179.50390625000003,51.97958984374998],[179.6271484375001,52.03041992187502],[179.72773437500015,51.905419921874966]]],[[[177.4154296875,51.88281249999997],[177.25029296875013,51.902929687500006],[177.6696289062501,52.10302734375],[177.4154296875,51.88281249999997]]],[[[-173.5533203125,52.13627929687502],[-173.02290039062504,52.07915039062502],[-173.83579101562498,52.048193359375006],[-173.99248046874993,52.12333984374996],[-173.5533203125,52.13627929687502]]],[[[-172.464794921875,52.27226562500002],[-172.61982421874998,52.27285156250005],[-172.47041015625,52.38803710937506],[-172.31362304687497,52.32958984375006],[-172.464794921875,52.27226562500002]]],[[[-174.67739257812502,52.035009765625006],[-175.29555664062502,52.022167968749955],[-174.30615234375,52.216162109375034],[-174.43554687499997,52.317236328125034],[-174.168896484375,52.42016601562503],[-174.04560546875,52.36723632812499],[-174.12065429687493,52.13520507812498],[-174.67739257812502,52.035009765625006]]],[[[173.72275390625018,52.35957031250004],[173.40234375000009,52.40478515625],[173.77607421875004,52.49511718750003],[173.72275390625018,52.35957031250004]]],[[[172.81181640625002,53.01298828125002],[173.43603515625003,52.85205078125],[172.93515625000012,52.752099609374966],[172.49482421875004,52.93789062499999],[172.81181640625002,53.01298828125002]]],[[[-167.96435546875003,53.345117187499994],[-169.088916015625,52.83203125],[-168.68984375000002,53.227246093749955],[-168.38041992187496,53.28344726562506],[-168.28769531249998,53.500146484374966],[-167.82807617187495,53.50795898437505],[-167.96435546875003,53.345117187499994]]],[[[-166.61533203124998,53.90092773437499],[-166.37231445312494,53.99897460937498],[-166.230859375,53.93261718750006],[-166.54560546875,53.726464843749966],[-166.354541015625,53.67353515625004],[-166.85097656249997,53.45288085937503],[-167.78085937500003,53.30024414062501],[-167.13608398437503,53.526464843750006],[-167.01572265625003,53.69838867187502],[-166.80898437500002,53.64614257812505],[-166.741259765625,53.71293945312496],[-167.10561523437497,53.813378906249994],[-167.03808593749997,53.9421875],[-166.67329101562498,54.00595703124998],[-166.61533203124998,53.90092773437499]]],[[[-165.841552734375,54.070654296875006],[-166.05664062500003,54.054345703124994],[-166.08774414062498,54.16914062500001],[-165.89287109375,54.20698242187498],[-165.69287109375,54.09990234375002],[-165.841552734375,54.070654296875006]]],[[[-165.56113281249998,54.13671874999997],[-165.55063476562498,54.28452148437498],[-165.40786132812502,54.19682617187496],[-165.56113281249998,54.13671874999997]]],[[[-162.29814453124993,54.847021484375006],[-162.43388671875,54.931542968749994],[-162.26459960937504,54.983496093750006],[-162.29814453124993,54.847021484375006]]],[[[-163.476025390625,54.98071289062497],[-163.37895507812496,54.81552734374998],[-163.083251953125,54.66899414062496],[-163.35810546874995,54.73569335937506],[-164.82343749999998,54.41909179687505],[-164.887646484375,54.60781250000002],[-164.47861328124998,54.906835937500006],[-163.80712890624997,55.04907226562503],[-163.476025390625,54.98071289062497]]],[[[-159.51513671875,55.15185546875003],[-159.617724609375,55.05732421875004],[-159.54506835937497,55.22597656250002],[-159.51513671875,55.15185546875003]]],[[[-131.33974609375002,55.079833984375],[-131.32954101562498,54.887744140625045],[-131.592236328125,55.02568359374999],[-131.5654296875,55.26411132812498],[-131.33974609375002,55.079833984375]]],[[[-159.87299804687495,55.128759765625034],[-160.22705078124997,54.92270507812506],[-160.17207031249995,55.123046875],[-159.88735351562497,55.27299804687502],[-159.87299804687495,55.128759765625034]]],[[[-132.86225585937504,54.894433593749966],[-132.61723632812493,54.892431640625006],[-132.70581054687497,54.684179687500034],[-133.42905273437498,55.30380859374998],[-133.097412109375,55.213720703125006],[-132.86225585937504,54.894433593749966]]],[[[-160.329296875,55.337695312500045],[-160.34331054687493,55.25878906250006],[-160.51748046875,55.33383789062506],[-160.329296875,55.337695312500045]]],[[[-160.68491210937498,55.314794921875006],[-160.552783203125,55.38076171875002],[-160.48754882812503,55.18486328124999],[-160.79506835937497,55.14521484375001],[-160.72392578124993,55.404638671875006],[-160.68491210937498,55.314794921875006]]],[[[-133.30507812500002,55.54375],[-133.6501953125,55.26928710937506],[-133.73710937500002,55.49692382812498],[-133.30507812500002,55.54375]]],[[[-155.56601562500003,55.82119140625005],[-155.73735351562493,55.82978515625001],[-155.59394531250004,55.92431640625],[-155.56601562500003,55.82119140625005]]],[[[-130.97915039062502,55.489160156249994],[-131.187890625,55.206298828125],[-131.44755859374996,55.40878906250006],[-131.7625,55.16582031250002],[-131.84609374999997,55.41625976562497],[-131.62495117187504,55.831689453124966],[-131.26923828125004,55.95537109375002],[-130.997802734375,55.727636718750006],[-130.97915039062502,55.489160156249994]]],[[[-133.56611328125,56.33920898437498],[-133.202978515625,56.31982421875003],[-133.096630859375,56.09003906250001],[-132.59760742187504,55.89501953125],[-132.17270507812498,55.48061523437502],[-132.51127929687493,55.59394531250001],[-132.63129882812495,55.47319335937502],[-132.41787109375002,55.48291015625006],[-132.20668945312497,55.22441406249996],[-131.97641601562498,55.208593750000034],[-132.06474609375002,54.713134765625],[-133.11855468750002,55.32763671875003],[-132.95888671875002,55.39555664062502],[-133.0333984375,55.589697265625034],[-133.68017578124994,55.78515625],[-133.24150390624993,55.920800781249994],[-133.371240234375,56.035888671875],[-133.74252929687498,55.96484375],[-133.530859375,56.145654296874966],[-133.56611328125,56.33920898437498]]],[[[-132.77988281249998,56.24726562499998],[-133.03500976562498,56.34091796875006],[-132.90205078124998,56.45375976562505],[-132.62910156249995,56.411914062500045],[-132.77988281249998,56.24726562499998]]],[[[-132.11235351562493,56.109375],[-132.13295898437497,55.94326171875005],[-132.28730468749995,55.92939453124998],[-132.65991210937503,56.07817382812499],[-132.379833984375,56.49877929687497],[-132.06689453125,56.24423828124998],[-132.11235351562493,56.109375]]],[[[-154.208642578125,56.51489257812497],[-154.32221679687504,56.570605468750045],[-154.11040039062496,56.602929687499966],[-154.208642578125,56.51489257812497]]],[[[-169.755224609375,56.63505859375002],[-169.47431640624998,56.59404296875002],[-169.6326171875,56.545703125000045],[-169.755224609375,56.63505859375002]]],[[[-132.746875,56.525683593750045],[-132.94804687500002,56.56723632812498],[-132.842529296875,56.79477539062506],[-132.56796875000003,56.57583007812505],[-132.746875,56.525683593750045]]],[[[-133.98959960937503,56.84497070312497],[-133.73837890625,56.65043945312496],[-133.94970703125,56.12773437499996],[-134.18959960937502,56.07695312500002],[-134.084375,56.456347656250045],[-134.37368164062502,56.838671875000045],[-134.14326171874998,56.93232421875001],[-133.98959960937503,56.84497070312497]]],[[[-133.36621093750006,57.003515625000034],[-132.99624023437497,56.93041992187497],[-132.95917968749998,56.67705078124996],[-133.03491210937494,56.62075195312505],[-133.32895507812498,56.83007812499997],[-133.158154296875,56.495166015625045],[-133.4841796875,56.45175781249998],[-133.979443359375,57.009570312500045],[-133.36621093750006,57.003515625000034]]],[[[-153.007080078125,57.12485351562498],[-153.37460937499998,57.05190429687505],[-153.285205078125,57.18505859375],[-152.90839843750004,57.152441406250006],[-153.007080078125,57.12485351562498]]],[[[-134.96977539062496,57.351416015625034],[-134.62070312499998,56.71831054687502],[-134.68188476562503,56.216162109375034],[-134.98056640625003,56.518945312499994],[-134.88344726562497,56.679052734375034],[-135.33061523437505,56.821875],[-135.19960937499997,57.02734375],[-135.45493164062503,57.24941406250005],[-135.81230468750002,57.00952148437503],[-135.82275390625,57.280419921874966],[-135.448681640625,57.534375],[-134.96977539062496,57.351416015625034]]],[[[-152.89804687499998,57.82392578125004],[-152.42875976562493,57.82568359375003],[-152.48261718749998,57.70332031249998],[-152.21621093749997,57.577001953125006],[-152.41220703125003,57.454785156249955],[-152.94077148437498,57.49809570312499],[-152.67905273437503,57.345117187499994],[-153.274365234375,57.22636718749996],[-153.732568359375,57.052343750000034],[-153.643310546875,56.960742187500045],[-154.02734375,56.77797851562502],[-153.793212890625,56.98950195312503],[-154.24375,57.143017578124955],[-154.33896484374998,56.9208984375],[-154.67319335937498,57.44609375],[-154.11616210937498,57.651220703125006],[-153.6876953125,57.30512695312504],[-153.841552734375,57.86284179687496],[-153.48793945312497,57.73095703125],[-153.21748046875004,57.79575195312506],[-153.16044921875,57.97197265624999],[-152.85039062499993,57.896777343750045],[-152.89804687499998,57.82392578125004]]],[[[-135.73037109375002,58.244238281250034],[-135.61323242187507,57.99184570312505],[-135.346630859375,58.12412109374998],[-134.9546875,58.01533203125004],[-134.97065429687495,57.817236328125006],[-135.33847656250003,57.768652343750034],[-134.97885742187503,57.724365234375],[-134.93149414062498,57.48115234375001],[-135.564208984375,57.66640625],[-135.691943359375,57.41992187500006],[-135.91079101562502,57.44658203124999],[-136.568603515625,57.97216796875003],[-136.32197265625,58.21889648437502],[-136.14375,58.098486328125006],[-136.09438476562502,58.198144531249966],[-135.73037109375002,58.244238281250034]]],[[[-134.68027343749998,58.16166992187499],[-134.24008789062498,58.143994140624955],[-133.82275390624997,57.62866210937503],[-134.29233398437498,58.044726562500074],[-133.91113281250003,57.3525390625],[-134.51601562499997,57.042578125],[-134.48676757812495,57.48203125],[-134.92348632812497,58.354638671874966],[-134.68027343749998,58.16166992187499]]],[[[-152.416943359375,58.360205078125034],[-151.974365234375,58.30986328124999],[-152.068896484375,58.17792968750001],[-152.26835937499993,58.25170898437506],[-152.30922851562502,58.133886718750034],[-152.5982421875,58.16259765625],[-152.92841796875004,57.99370117187499],[-153.38134765625003,58.08720703125002],[-152.976123046875,58.29702148437505],[-152.771875,58.278564453125],[-152.84111328125002,58.41640625000002],[-152.416943359375,58.360205078125034]]],[[[-152.486083984375,58.485009765624966],[-152.63662109375002,58.54169921874998],[-152.3955078125,58.619384765625],[-152.486083984375,58.485009765624966]]],[[[-160.918994140625,58.57709960937498],[-161.13149414062502,58.668212890625],[-160.71513671875005,58.79521484375002],[-160.918994140625,58.57709960937498]]],[[[-148.02177734375,60.06533203125005],[-148.271875,60.05327148437499],[-148.07958984375003,60.151660156250045],[-148.02177734375,60.06533203125005]]],[[[-147.735888671875,59.81323242187503],[-147.76806640625,59.94375],[-147.180859375,60.358251953125034],[-147.01987304687498,60.33222656249998],[-147.735888671875,59.81323242187503]]],[[[-166.13544921875,60.38354492187503],[-165.72968750000004,60.31420898437503],[-165.591796875,59.913134765625045],[-166.14873046874996,59.764111328124955],[-167.13886718749998,60.00854492187503],[-167.43642578125002,60.20664062500006],[-166.836328125,60.21699218750004],[-166.47568359374998,60.382763671874955],[-166.13544921875,60.38354492187503]]],[[[-146.3939453125,60.44965820312501],[-146.10224609374998,60.41118164062499],[-146.61831054687497,60.27368164062503],[-146.70253906249997,60.40854492187498],[-146.3939453125,60.44965820312501]]],[[[-147.658251953125,60.45048828124999],[-147.787841796875,60.17792968749998],[-147.89145507812498,60.299414062500034],[-147.658251953125,60.45048828124999]]],[[[-172.74223632812496,60.45737304687498],[-172.23208007812494,60.299121093750074],[-172.63574218750003,60.328857421875],[-173.04765625000002,60.56831054687501],[-172.74223632812496,60.45737304687498]]],[[[-171.46303710937494,63.640039062499994],[-171.03486328125,63.58549804687499],[-170.29936523437502,63.68061523437501],[-169.55454101562498,63.373486328124955],[-168.71601562500004,63.310595703125045],[-168.76132812500003,63.21376953125002],[-169.364697265625,63.17114257812506],[-169.67636718750003,62.95610351562502],[-169.81860351562494,63.122363281250045],[-170.84838867187494,63.44438476562502],[-171.63183593749997,63.351220703124966],[-171.74638671874993,63.703076171874955],[-171.46303710937494,63.640039062499994]]],[[[-141.00214843750004,68.77416992187506],[-141.00214843750004,67.89755859374998],[-141.00214843750004,66.43652343750006],[-141.00214843750004,65.55991210937498],[-141.00214843750004,64.09887695312506],[-141.00214843750004,63.22226562499998],[-141.00214843750004,61.761279296875045],[-141.00214843750004,60.884667968749994],[-141.00214843750004,60.30024414062504],[-140.76274414062505,60.259130859375006],[-140.525439453125,60.218359375000034],[-140.45283203125004,60.29970703125002],[-139.97329101562497,60.183154296875074],[-139.67631835937505,60.32832031249998],[-139.23476562499997,60.339746093749994],[-139.07924804687497,60.34370117187501],[-139.07924804687497,60.279443359374966],[-139.136962890625,60.17270507812498],[-139.18515624999998,60.083593750000034],[-138.86875,59.94575195312501],[-138.317626953125,59.611132812500074],[-137.59331054687493,59.22626953124998],[-137.52089843750002,58.91538085937498],[-137.43857421875003,58.903125],[-137.2775390625,58.988183593749994],[-137.126220703125,59.04096679687498],[-136.81328125000002,59.150048828124994],[-136.57875976562502,59.15224609375002],[-136.46635742187493,59.459082031250006],[-136.27797851562502,59.48032226562506],[-136.321826171875,59.604833984375034],[-135.70258789062504,59.72875976562506],[-135.36787109374998,59.743310546874994],[-135.051025390625,59.57866210937502],[-134.94375,59.28828125000001],[-134.67724609374997,59.19926757812499],[-134.39306640625,59.009179687499994],[-134.32963867187505,58.93969726562506],[-134.21850585937503,58.849902343750045],[-133.54638671874997,58.50346679687499],[-133.27529296875,58.22285156250004],[-133.00141601562495,57.948974609375],[-132.55048828125,57.499902343749994],[-132.44248046874998,57.40673828125003],[-132.30166015624997,57.27631835937501],[-132.232177734375,57.19853515624999],[-132.27939453124998,57.14536132812498],[-132.33798828124998,57.07944335937506],[-132.15703125,57.048193359375006],[-132.03154296875,57.02656250000004],[-132.062890625,56.95336914062503],[-132.104296875,56.856787109375006],[-131.86616210937495,56.792822265625006],[-131.82426757812496,56.589990234374994],[-131.471875,56.55673828125006],[-130.649072265625,56.26367187500003],[-130.47709960937496,56.230566406250034],[-130.413134765625,56.12250976562498],[-130.09785156249995,56.10927734375002],[-130.01406249999997,55.950537109375006],[-130.2140625,55.02587890625003],[-130.57534179687497,54.769677734374966],[-130.849609375,54.80761718750006],[-131.04785156249997,55.157666015624955],[-130.74819335937502,55.31801757812502],[-131.127685546875,55.96015625000001],[-131.032763671875,56.08808593749998],[-131.78417968749997,55.876562500000034],[-131.98339843749994,55.535009765625006],[-132.15541992187502,55.59956054687501],[-132.20751953124997,55.75341796875],[-131.84384765625003,56.16010742187498],[-131.55136718749998,56.206787109375],[-131.88789062500004,56.24165039062498],[-132.18203125000002,56.42065429687506],[-132.82460937500002,57.05581054687505],[-133.465869140625,57.17216796875002],[-133.64873046874993,57.64228515624998],[-133.11704101562498,57.56621093750002],[-133.535205078125,57.83295898437501],[-133.1943359375,57.87768554687506],[-133.559375,57.924462890624994],[-133.72231445312502,57.84423828125],[-134.03110351562498,58.072167968749966],[-133.87675781249996,58.51816406249998],[-134.20883789062503,58.232958984375045],[-134.77612304687506,58.45385742187503],[-135.36367187500002,59.41943359375],[-135.50234375000002,59.202294921874994],[-135.090234375,58.245849609375],[-135.57177734374994,58.41206054687504],[-135.89755859374998,58.40019531250002],[-136.04311523437497,58.82163085937498],[-135.82636718750004,58.89794921874997],[-136.0166015625,58.87397460937498],[-136.150048828125,59.04809570312503],[-136.22583007812497,58.765478515625006],[-136.98901367187503,59.03447265624999],[-137.05903320312498,58.87373046875001],[-136.613916015625,58.809277343749955],[-136.48374023437503,58.61767578125],[-136.224609375,58.602246093749955],[-136.06147460937495,58.45273437500006],[-136.607421875,58.24399414062498],[-137.54399414062502,58.58120117187502],[-138.51489257812503,59.16591796875005],[-139.77329101562498,59.52729492187504],[-139.51303710937498,59.698095703125006],[-139.5123046875,59.95356445312501],[-139.28671874999998,59.610937500000034],[-139.22080078125003,59.819873046875045],[-138.9880859375,59.83500976562502],[-139.43144531249996,60.012255859375074],[-140.41982421874997,59.71074218750002],[-141.40830078125,59.90278320312498],[-141.408740234375,60.11767578125006],[-141.67016601562497,59.969873046874966],[-142.94565429687503,60.09697265625002],[-144.14721679687494,60.01640625000002],[-144.185498046875,60.150732421875034],[-144.901318359375,60.335156249999955],[-144.69111328125,60.66909179687502],[-145.248291015625,60.38012695312506],[-145.898876953125,60.47817382812505],[-145.67490234374998,60.65112304687503],[-146.57045898437497,60.72915039062502],[-146.39199218749997,60.810839843750045],[-146.63842773437497,60.89731445312498],[-146.59912109374994,61.05351562500002],[-146.284912109375,61.11264648437498],[-147.89111328125,60.889892578125],[-148.00512695312494,60.96855468750002],[-147.75185546874997,61.218945312499955],[-148.34189453125,61.060400390625006],[-148.34443359374998,60.853564453125045],[-148.55615234374994,60.82700195312506],[-148.25673828124997,60.67529296874997],[-148.64013671875,60.48945312500004],[-148.11918945312502,60.57514648437498],[-147.96411132812494,60.48486328124997],[-148.430712890625,59.98911132812498],[-149.2666015625,59.99829101562497],[-149.395263671875,60.10576171875002],[-149.59804687500002,59.77045898437501],[-149.7138671875,59.91958007812502],[-149.80126953124994,59.737939453124966],[-150.00532226562507,59.78442382812503],[-150.19804687499996,59.56655273437505],[-150.60737304687504,59.56337890625002],[-150.934521484375,59.249121093750034],[-151.18276367187502,59.30078124999997],[-151.73818359375002,59.18852539062502],[-151.94951171875,59.26508789062498],[-151.88461914062503,59.386328125],[-151.39960937499995,59.51630859375001],[-151.04648437499998,59.771826171875034],[-151.45009765624997,59.65039062499997],[-151.85322265625,59.78208007812498],[-151.39599609375006,60.27446289062502],[-151.35644531249997,60.72294921874999],[-150.44125976562503,61.02358398437505],[-149.07509765624997,60.87641601562498],[-150.05327148437496,61.17109374999998],[-149.433544921875,61.50078125000002],[-149.97568359374998,61.27934570312502],[-150.61225585937495,61.301123046875006],[-151.59350585937494,60.979638671874966],[-152.54091796874997,60.265429687500045],[-153.025,60.29565429687497],[-152.660107421875,59.99721679687502],[-153.21123046875002,59.84272460937498],[-153.09360351562503,59.70913085937505],[-153.65253906250004,59.64702148437499],[-154.17832031250003,59.155566406250074],[-153.41826171875,58.9599609375],[-153.43759765625003,58.754833984374955],[-154.289013671875,58.30434570312502],[-154.247021484375,58.15942382812497],[-155.006884765625,58.01606445312501],[-155.77797851562497,57.56821289062498],[-156.43588867187498,57.359960937500006],[-156.62900390624998,57.00996093750001],[-158.41440429687498,56.435839843750045],[-158.5521484375,56.31269531249998],[-158.27563476562497,56.19624023437498],[-158.5046875,56.062109375],[-158.59116210937503,56.18452148437498],[-158.78984375000002,55.98691406250006],[-159.52324218749993,55.81000976562498],[-159.65966796875003,55.625927734374955],[-159.77138671874997,55.84111328125002],[-160.49931640625002,55.53730468750004],[-161.38193359374998,55.371289062499955],[-161.44379882812495,55.513281250000034],[-161.202099609375,55.54355468750006],[-161.51694335937503,55.61840820312503],[-162.073974609375,55.13930664062505],[-162.38637695312497,55.05234375],[-162.63037109375003,55.24667968749998],[-162.67436523437505,54.99658203125],[-162.86503906249996,54.954541015624955],[-163.11962890624997,55.06469726562503],[-163.131103515625,54.916552734375045],[-163.33530273437503,54.83916015624999],[-163.27880859374997,55.12182617187503],[-162.906591796875,55.19555664062503],[-161.69731445312502,55.9072265625],[-161.215625,56.02143554687498],[-160.8986328125,55.99365234375],[-161.00537109375,55.88715820312498],[-160.80283203125003,55.754443359375045],[-160.70634765625002,55.870458984375034],[-160.29169921875,55.80507812500005],[-160.53906250000006,56.00629882812501],[-160.30205078125,56.31411132812502],[-158.91801757812502,56.882177734375006],[-158.675146484375,56.79487304687498],[-158.66079101562502,57.03940429687498],[-158.32094726562497,57.29790039062499],[-157.84575195312496,57.52807617187497],[-157.4619140625,57.506201171875034],[-157.697216796875,57.679443359375],[-157.610888671875,58.050830078125074],[-157.19370117187498,58.19418945312506],[-157.48837890624998,58.25371093750002],[-157.52363281249998,58.421337890624955],[-156.97465820312496,58.736328125],[-156.80888671875005,59.13427734375],[-157.14204101562504,58.87763671875001],[-158.19091796875003,58.6142578125],[-158.50317382812494,58.85034179687497],[-158.42563476562498,58.99931640625002],[-158.080517578125,58.97744140625002],[-158.422802734375,59.08984375],[-158.67827148437502,58.92939453124998],[-158.80947265625002,58.973876953125],[-158.78862304687493,58.440966796875045],[-158.95068359375,58.404541015625],[-159.67026367187498,58.9111328125],[-159.92021484375,58.819873046875074],[-160.36313476562498,59.05117187500002],[-161.246826171875,58.799462890624994],[-161.36132812499994,58.66953124999998],[-162.144921875,58.64423828124998],[-161.724365234375,58.794287109375006],[-161.64438476562498,59.109667968750045],[-161.9810546875,59.14614257812502],[-161.82871093749998,59.588623046875],[-162.421337890625,60.28398437500002],[-161.96201171875003,60.695361328125045],[-162.68496093749997,60.268945312499966],[-162.57075195312495,59.98974609375],[-163.68037109374998,59.80151367187503],[-164.14282226562497,59.89677734374999],[-165.02651367187497,60.500634765624994],[-165.35380859375002,60.54121093750001],[-164.80517578125,60.89204101562498],[-164.31850585937497,60.77128906249999],[-164.37236328125002,60.59184570312502],[-163.999560546875,60.76606445312498],[-163.72998046874997,60.589990234374994],[-163.420947265625,60.757421875],[-163.90654296874996,60.85380859375002],[-163.58691406249994,60.902978515624994],[-163.74902343750003,60.9697265625],[-163.99462890624997,60.86469726562501],[-165.11484375,60.93281250000004],[-164.86899414062503,61.11176757812498],[-165.27978515624994,61.169628906249955],[-165.27363281250004,61.27485351562498],[-165.56586914062498,61.10234375000002],[-165.86396484375004,61.33569335937503],[-165.84531249999998,61.536230468750034],[-166.152734375,61.545947265625074],[-166.16811523437502,61.65083007812501],[-165.80893554687503,61.69609375000002],[-166.07880859375,61.803125],[-165.61279296875003,61.86928710937502],[-165.707275390625,62.10043945312506],[-165.19453125,62.47353515625002],[-164.75786132812493,62.496728515624966],[-164.589453125,62.709375],[-164.79267578125,62.623193359374966],[-164.79965820312503,62.918066406250006],[-164.384228515625,63.03046874999998],[-164.40903320312503,63.21503906250001],[-163.94287109375,63.247216796874994],[-163.61630859374998,63.125146484374994],[-163.73784179687496,63.016406250000045],[-163.504345703125,63.105859374999966],[-163.28784179687494,63.046435546875045],[-162.621484375,63.26582031249998],[-162.28281250000003,63.529199218749994],[-161.97397460937498,63.45292968749999],[-161.09970703125003,63.557910156250045],[-160.778564453125,63.818945312500034],[-160.987548828125,64.25126953125002],[-161.49072265625003,64.43378906249998],[-160.93193359374996,64.5791015625],[-160.855908203125,64.755615234375],[-161.13017578125005,64.92543945312505],[-161.759375,64.816259765625],[-162.80703124999997,64.37421875000001],[-163.20390625,64.65200195312502],[-163.14433593750002,64.423828125],[-163.71308593749998,64.588232421875],[-164.978759765625,64.45366210937502],[-166.1427734375,64.58276367187503],[-166.48139648437498,64.72807617187507],[-166.415234375,64.926513671875],[-166.92841796875,65.15708007812498],[-166.15703125,65.28583984375001],[-167.40400390625,65.42211914062497],[-168.08837890624997,65.65776367187502],[-166.39873046875002,66.14443359375005],[-165.62993164062496,66.131201171875],[-165.77617187500002,66.31904296875001],[-164.46049804687502,66.58842773437499],[-163.63823242187502,66.57465820312504],[-163.89394531249997,66.57587890625001],[-164.03374023437493,66.21552734374995],[-163.69536132812502,66.08383789062503],[-161.93369140625003,66.04287109374997],[-161.45541992187503,66.28139648437497],[-161.03427734375003,66.18881835937503],[-161.12031249999995,66.334326171875],[-161.91689453124997,66.41181640624998],[-162.54365234375004,66.80512695312501],[-162.36162109375,66.94731445312502],[-161.591015625,66.45952148437502],[-160.23168945312503,66.420263671875],[-160.360888671875,66.6125],[-160.864013671875,66.67084960937501],[-161.39804687499998,66.55185546875],[-161.85668945312497,66.70034179687497],[-161.719921875,67.02055664062502],[-163.5318359375,67.10258789062502],[-164.1251953125,67.60673828125007],[-166.786279296875,68.35961914062497],[-166.38051757812502,68.425146484375],[-166.20908203125,68.88535156250003],[-165.04394531249994,68.882470703125],[-163.867919921875,69.03666992187505],[-161.88095703125003,70.33173828125001],[-162.073876953125,70.16196289062498],[-160.9962890625,70.30458984375],[-160.11713867187495,70.59121093750002],[-159.86567382812498,70.27885742187499],[-159.81499023437496,70.49707031250003],[-159.38676757812493,70.52451171875003],[-160.081591796875,70.63486328125003],[-159.680908203125,70.786767578125],[-159.31450195312496,70.87851562500003],[-159.251171875,70.7484375],[-157.909375,70.860107421875],[-156.47021484374994,71.40766601562501],[-156.469970703125,71.29155273437507],[-155.57944335937503,71.12109374999997],[-156.14658203125,70.92783203125003],[-155.97353515625002,70.84199218749995],[-155.16684570312498,71.09921875000006],[-154.19521484375002,70.80112304687498],[-153.23291015625,70.93256835937504],[-152.49121093749994,70.88095703125],[-152.23291015625,70.81035156249999],[-152.39921875,70.62045898437503],[-151.76904296875,70.56015625],[-151.94467773437498,70.45209960937501],[-149.26943359374997,70.50078124999999],[-147.70537109375,70.21723632812495],[-145.82314453124997,70.16005859375002],[-145.19736328125003,70.00869140625002],[-143.218310546875,70.11625976562499],[-142.70786132812498,70.03378906249998],[-141.40791015625,69.65336914062502],[-141.00214843750004,69.65078125000002],[-141.00214843750004,68.77416992187506]]]]},"properties":{"name":"United States","childNum":76}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[71.20615234375006,39.892578125],[71.15625,39.88344726562502],[71.06425781250002,39.88491210937505],[71.01171874999997,39.895117187500006],[71.04365234375004,39.97631835937503],[71.04482421875005,39.992529296875034],[70.96064453125004,40.087988281250034],[71.00546875,40.15229492187498],[71.0241210937501,40.14916992187497],[71.08037109375007,40.07988281249999],[71.2287109375001,40.04814453124999],[71.20615234375006,39.892578125]]],[[[70.94677734374997,42.24868164062505],[70.97900390625003,42.26655273437504],[71.03603515625,42.28466796875],[71.12998046875006,42.25],[71.21269531250002,42.20644531250005],[71.23232421875005,42.18627929687503],[71.22851562499997,42.16289062499996],[70.18095703125007,41.571435546874994],[70.734375,41.400537109374994],[70.86044921875006,41.22490234375002],[71.11074218750005,41.152636718750045],[71.29882812500003,41.152490234374994],[71.39306640625003,41.123388671875034],[71.40839843750004,41.13603515625002],[71.42089843750003,41.341894531250034],[71.60625,41.367431640625],[71.66494140625,41.54121093749998],[71.70068359374997,41.454003906249966],[71.75771484375005,41.42802734375002],[71.79248046875003,41.41313476562499],[71.85800781250006,41.311376953125034],[71.8786132812501,41.195019531249955],[71.95849609375003,41.18706054687502],[72.05244140625004,41.16474609375001],[72.1154296875001,41.18657226562502],[72.1642578125001,41.173730468749966],[72.18095703125002,41.11845703124999],[72.18730468750002,41.02592773437499],[72.2130859375001,41.014257812500006],[72.36406250000002,41.04345703125],[72.65830078125,40.86992187499999],[73.13212890625002,40.82851562499999],[72.6041015625,40.52543945312499],[72.40205078125004,40.578076171874955],[72.3892578125,40.427392578124994],[72.13125,40.438623046874966],[71.69248046875,40.15234375],[71.30468749999997,40.28691406249996],[70.990625,40.2548828125],[70.95800781250003,40.238867187500034],[70.653125,40.201171875],[70.37158203125003,40.38413085937506],[70.75107421875006,40.721777343750006],[70.40195312500006,41.03510742187498],[69.71289062500003,40.65698242187503],[69.35722656250002,40.76738281249996],[69.20625,40.566552734374994],[69.27490234374997,40.19809570312498],[68.63066406250007,40.16708984374998],[68.9720703125,40.08994140624998],[68.80468750000003,40.05034179687499],[68.86875,39.90747070312503],[68.63896484375007,39.8388671875],[68.46328125,39.53671874999998],[67.71904296875007,39.62138671875002],[67.426171875,39.46557617187497],[67.3576171875001,39.216699218749994],[67.64833984375005,39.13105468750004],[67.69443359375006,38.99462890625003],[68.13251953125004,38.927636718749966],[68.08720703125002,38.47353515625002],[68.3502929687501,38.211035156250006],[67.81435546875005,37.48701171875004],[67.7980468750001,37.244970703125006],[67.75898437500004,37.172216796875034],[67.75292968749997,37.199804687500034],[67.7,37.227246093749955],[67.60742187499997,37.22250976562506],[67.5172851562501,37.26665039062499],[67.44169921875007,37.25800781250001],[67.3197265625,37.209570312500006],[67.1955078125001,37.23520507812498],[67.06884765624997,37.334814453125006],[66.82773437500006,37.37128906249998],[66.52226562500007,37.34848632812506],[66.51064453125,37.45869140625004],[66.51132812500006,37.59916992187496],[66.52558593750004,37.785742187500034],[66.60625,37.98671875000005],[65.97119140624997,38.244238281250006],[65.612890625,38.23857421875002],[64.3099609375,38.97729492187497],[63.76367187500003,39.16054687499999],[62.48320312500002,39.97563476562496],[61.90283203124997,41.09370117187501],[61.496972656249994,41.276074218749955],[61.2423828125001,41.18920898437503],[60.454980468749994,41.221630859374955],[60.089648437500074,41.39941406250003],[60.07558593750005,41.759667968749966],[60.20078125000006,41.803125],[59.94179687499999,41.97353515625002],[59.98515625000002,42.21171875],[59.35429687500002,42.32329101562496],[58.5890625000001,42.778466796874966],[58.477148437500006,42.66284179687503],[58.15156250000004,42.628076171874966],[58.474414062500074,42.29936523437496],[58.02890625,42.48764648437506],[57.814257812500074,42.18984375000005],[57.290625,42.123779296875],[56.96406250000004,41.856542968750006],[57.11884765625004,41.35029296874998],[57.01796875,41.26347656249996],[55.97744140625005,41.32221679687504],[55.97568359375006,44.99492187499996],[58.555273437500006,45.55537109375001],[61.007910156250006,44.39379882812497],[61.99023437500003,43.492138671874955],[63.20703125000003,43.62797851562502],[64.44316406250007,43.55117187499999],[64.9054687500001,43.714697265625006],[65.49619140625,43.310546875],[65.80302734375002,42.87695312500006],[66.1002929687501,42.99082031249998],[66.00957031250007,42.00488281250003],[66.49863281250006,41.99487304687503],[66.70966796875004,41.17915039062501],[67.9357421875001,41.19658203125002],[68.11308593750007,41.02861328124999],[68.04765625000007,40.80927734374998],[68.29189453125,40.656103515625034],[68.57265625,40.62265624999998],[68.58408203125,40.876269531250045],[69.15361328125002,41.42524414062498],[70.94677734374997,42.24868164062505]]]]},"properties":{"name":"Uzbekistan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-61.17451171875001,13.158105468749966],[-61.268457031249966,13.287695312499991],[-61.13896484374996,13.358740234374991],[-61.17451171875001,13.158105468749966]]]},"properties":{"name":"St. Vin. and Gren.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-60.99790039062498,8.867333984374966],[-61.069189453125034,8.947314453125003],[-60.91582031249996,9.070312500000014],[-60.86142578124998,8.949609375000037],[-60.99790039062498,8.867333984374966]]],[[[-60.821191406249966,9.138378906250026],[-60.94140625000003,9.105566406250006],[-60.73583984374997,9.203320312500026],[-60.821191406249966,9.138378906250026]]],[[[-63.84936523437494,11.131005859374994],[-63.917626953124994,10.887548828125048],[-64.40234375,10.981591796875023],[-64.21367187500002,11.086132812499997],[-64.0283203125,11.00185546874998],[-63.84936523437494,11.131005859374994]]],[[[-60.742138671874926,5.202050781250037],[-60.71196289062499,5.191552734375023],[-60.671972656250034,5.164355468749989],[-60.603857421875006,4.94936523437498],[-61.00283203125002,4.535253906249991],[-61.28007812500002,4.516894531249974],[-61.82084960937496,4.197021484375],[-62.153125,4.098388671874986],[-62.41064453124994,4.156738281249972],[-62.71210937499998,4.01791992187502],[-62.85698242187502,3.593457031249969],[-63.33867187500002,3.943896484375045],[-64.02148437500003,3.929101562500051],[-64.19248046874995,4.126855468750009],[-64.57636718750001,4.139892578125],[-64.788671875,4.276025390625023],[-64.66899414062496,4.01181640625002],[-64.22109375000002,3.587402343749972],[-64.04658203124998,2.502392578124997],[-63.389257812500006,2.411914062500045],[-63.43251953124994,2.155566406250045],[-64.00849609374995,1.931591796874969],[-64.20502929687493,1.52949218750004],[-65.10375976562497,1.108105468749983],[-65.47338867187497,0.691259765624977],[-65.55605468750002,0.687988281250014],[-65.52299804687493,0.843408203124966],[-65.68144531249999,0.983447265624989],[-66.06005859375003,0.78535156250004],[-66.34711914062498,0.7671875],[-66.87602539062499,1.223046875000037],[-67.21083984375,2.390136718750043],[-67.61870117187496,2.793603515624994],[-67.85908203124998,2.793603515624994],[-67.3111328125,3.41586914062502],[-67.66162109375,3.864257812499986],[-67.85527343750002,4.506884765624989],[-67.82490234374995,5.270458984375026],[-67.47387695312503,5.929980468750003],[-67.48198242187499,6.18027343750002],[-67.85917968749999,6.289892578124963],[-68.47177734375,6.156542968749974],[-69.42714843749997,6.123974609374997],[-70.12919921874999,6.95361328125],[-70.73715820312503,7.090039062499997],[-71.12861328124993,6.98671875],[-72.00664062499993,7.032617187500023],[-72.20771484374995,7.37026367187498],[-72.47197265624996,7.524267578124991],[-72.39033203124995,8.287060546874969],[-72.66542968749994,8.62758789062498],[-72.79638671874997,9.10898437499999],[-73.05839843749999,9.259570312500031],[-73.36621093749997,9.194140625000017],[-73.00654296874998,9.789160156250006],[-72.86933593750001,10.49125976562496],[-72.690087890625,10.835839843749994],[-72.24848632812501,11.196435546875009],[-71.95810546875,11.66640625],[-71.31972656249997,11.861914062500048],[-71.95693359375002,11.569921874999977],[-71.835107421875,11.190332031250009],[-71.6416015625,11.013525390625048],[-71.73090820312498,10.994677734375017],[-71.59433593749995,10.657373046875051],[-72.11284179687499,9.815576171874966],[-71.61953124999994,9.047949218749991],[-71.24140625000001,9.160449218750003],[-71.08583984375002,9.348242187499977],[-71.05268554687501,9.705810546874986],[-71.49423828125,10.533203124999972],[-71.46953124999993,10.964160156250017],[-70.23251953124998,11.372998046874997],[-70.09711914062493,11.519775390624972],[-69.80478515624998,11.47421875000002],[-69.81733398437495,11.672070312499997],[-70.19257812499993,11.62460937500002],[-70.28652343749997,11.886035156249989],[-70.20278320312497,12.098388671874986],[-70.00395507812496,12.177880859375023],[-69.63159179687494,11.479931640625026],[-68.827978515625,11.431738281249977],[-68.39863281249995,11.160986328124977],[-68.29628906249997,10.689355468749994],[-68.13994140624999,10.492724609374989],[-66.24721679687497,10.632226562499994],[-65.85175781249995,10.257763671874997],[-65.12910156249998,10.070068359375043],[-64.85048828125,10.098095703124969],[-64.188330078125,10.457812499999989],[-63.73188476562501,10.503417968750043],[-64.24750976562498,10.54257812500002],[-64.298193359375,10.635156249999966],[-61.879492187500006,10.741015625000031],[-62.379980468750006,10.546875],[-62.91357421875,10.531494140624986],[-62.68583984374996,10.289794921875043],[-62.740576171875006,10.056152343750043],[-62.55034179687499,10.200439453125043],[-62.320410156250034,9.783056640625006],[-62.22114257812498,9.882568359375028],[-62.15336914062493,9.821777343749986],[-62.15532226562499,9.979248046875014],[-62.077099609374926,9.97504882812504],[-61.73593749999998,9.631201171874977],[-61.76591796874996,9.813818359374963],[-61.58886718749994,9.894531249999986],[-60.79248046874997,9.360742187500037],[-61.02314453124998,9.15458984374996],[-61.24726562499998,8.600341796875014],[-61.61870117187499,8.59746093749996],[-61.30400390624999,8.410400390625043],[-60.800976562499926,8.592138671875034],[-60.16748046875,8.616992187500031],[-60.01752929687501,8.549316406250014],[-59.83164062499998,8.305957031250003],[-59.84907226562498,8.248681640624966],[-59.96484375000003,8.191601562499969],[-59.99072265624997,8.16201171874998],[-60.032421874999926,8.053564453125006],[-60.51362304687501,7.813183593749969],[-60.71865234374994,7.535937499999974],[-60.606542968750006,7.320849609375031],[-60.63330078124997,7.211083984374966],[-60.58320312499998,7.156201171874969],[-60.523193359375,7.143701171875009],[-60.464941406250034,7.166552734375045],[-60.39238281249999,7.164550781249986],[-60.34506835937495,7.15],[-60.32548828124996,7.133984374999983],[-60.32207031249996,7.092041015625043],[-60.35209960937496,7.002880859374997],[-60.39501953125,6.945361328125003],[-60.717919921874966,6.768310546875],[-61.14560546874998,6.694531249999983],[-61.20361328124997,6.588378906250028],[-61.181591796874926,6.513378906250026],[-61.15102539062502,6.446533203124986],[-61.15229492187501,6.385107421875006],[-61.12871093749999,6.214306640625026],[-61.15947265624996,6.174414062499977],[-61.22495117187498,6.129199218750003],[-61.303125,6.049511718750026],[-61.39082031250001,5.938769531250017],[-61.376806640625006,5.906982421875028],[-61.167187499999926,5.674218750000037],[-60.95400390625002,5.437402343750023],[-60.742138671874926,5.202050781250037]]]]},"properties":{"name":"Venezuela","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[-64.765625,17.794335937499994],[-64.58046874999994,17.750195312499983],[-64.88911132812495,17.701708984375045],[-64.765625,17.794335937499994]]]},"properties":{"name":"U.S. Virgin Is.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[104.06396484375003,10.390820312500011],[104.01845703125,10.029199218749966],[103.84951171875005,10.371093749999986],[104.06396484375003,10.390820312500011]]],[[[107.52128906250007,20.926611328124977],[107.39921875000007,20.903466796874966],[107.55126953125003,21.034033203125006],[107.52128906250007,20.926611328124977]]],[[[107.60273437500004,21.21679687500003],[107.40351562500004,21.093652343749994],[107.47626953125004,21.268945312499994],[107.60273437500004,21.21679687500003]]],[[[107.97265624999997,21.507958984375023],[107.40996093750002,21.284814453125023],[107.35429687500007,21.055175781250057],[107.1647460937501,20.94873046875003],[106.68339843750007,21.000292968750074],[106.75341796875003,20.73505859375004],[106.55078124999997,20.52656250000001],[106.57285156250012,20.392187499999977],[105.98408203125004,19.939062500000034],[105.62177734375004,18.96630859375003],[105.88828125000006,18.502490234375045],[106.49902343749997,17.946435546874994],[106.47890625000005,17.719580078125063],[106.3705078125,17.746875],[107.83378906250002,16.322460937499983],[108.02939453125012,16.331103515625074],[108.82128906249997,15.377929687500028],[109.30332031250012,13.856445312500043],[109.271875,13.279345703124974],[109.42392578125006,12.955957031249994],[109.44492187500006,12.599609375000057],[109.33554687500012,12.751904296874997],[109.21894531250004,12.64580078124996],[109.30468750000003,12.391162109375045],[109.20683593750007,12.415380859375006],[109.1986328125,11.724853515625014],[109.03964843750012,11.592675781249994],[108.98671875,11.336376953124997],[108.09492187500004,10.897265624999989],[108.0013671875,10.720361328125009],[107.26152343750007,10.39838867187504],[107.00664062500002,10.66054687499998],[106.94746093750004,10.400341796874997],[106.72734375000007,10.535644531250028],[106.605859375,10.46494140625002],[106.74121093750003,10.444384765625003],[106.75742187500006,10.295800781250023],[106.46406250000004,10.298291015624997],[106.78525390625012,10.116455078124986],[106.59560546875005,9.859863281250028],[106.1364257812501,10.221679687500014],[106.56435546875005,9.715625],[106.48408203125004,9.559423828125006],[105.83095703125005,10.000732421875028],[106.15859375,9.59414062499998],[106.16835937500005,9.396728515625],[105.50097656249997,9.093212890624983],[105.11435546875006,8.629199218750031],[104.77041015625,8.59765625],[104.89628906250007,8.746630859374974],[104.81855468750004,8.801855468750034],[104.84521484375003,9.606152343750026],[105.08447265625003,9.99570312499999],[104.8019531250001,10.202734374999977],[104.66347656250005,10.169921875000043],[104.42636718750006,10.411230468749991],[104.85058593749997,10.534472656249974],[105.04638671874997,10.701660156250014],[105.04570312500002,10.911376953125014],[105.3146484375001,10.845166015625026],[105.40576171875003,10.95161132812504],[105.75507812500004,10.989990234375043],[105.85332031250007,10.86357421874996],[106.16396484375005,10.794921875],[106.16093750000002,11.037109375000057],[105.85605468750006,11.294287109375048],[105.85146484375005,11.635009765625],[106.0060546875001,11.758007812500011],[106.39921875000007,11.687011718750028],[106.41386718750002,11.9484375],[106.70009765625,11.979296874999974],[107.21210937500004,12.30400390624996],[107.39335937500002,12.260498046874972],[107.50644531250006,12.364550781250031],[107.47539062500002,13.030371093749963],[107.60546874999997,13.437792968750017],[107.3314453125,14.126611328125009],[107.51943359375005,14.705078125],[107.51376953125012,14.817382812500057],[107.52451171875012,14.871826171875043],[107.50468750000007,14.915917968749966],[107.48037109375,14.979882812500037],[107.55527343750006,15.057031250000023],[107.58964843750002,15.118457031250017],[107.63369140625005,15.18984375],[107.653125,15.255224609374991],[107.62167968750006,15.309863281250017],[107.56425781250002,15.391601562499972],[107.45957031250012,15.4658203125],[107.33876953125,15.560498046875011],[107.27939453125006,15.618701171875045],[107.16591796875005,15.802490234375028],[107.1888671875,15.838623046875],[107.36064453125002,15.921728515624977],[107.3919921875,15.951660156250028],[107.39638671875,16.04301757812499],[106.93066406249997,16.353125],[106.8927734375001,16.396533203125074],[106.85107421875003,16.515625],[106.83242187500005,16.526269531250023],[106.79160156250006,16.490332031250006],[106.73955078125007,16.452539062500023],[106.6564453125001,16.49262695312501],[106.54619140625002,16.650732421874977],[106.53369140625003,16.821044921875057],[106.52597656250006,16.876611328124994],[106.50224609375002,16.95410156249997],[106.26953125000003,17.21679687500003],[106.00625,17.415283203125057],[105.69140625000003,17.737841796875045],[105.58847656250012,17.983691406250045],[105.51855468749997,18.077441406250045],[105.45820312500004,18.15429687499997],[105.11455078125002,18.40527343750003],[105.08701171875006,18.496240234374994],[105.14541015625,18.616796875000063],[105.14648437500003,18.650976562500006],[103.89160156250003,19.304980468750017],[103.89638671875,19.339990234375023],[103.93203125,19.366064453125006],[104.0275390625001,19.42045898437499],[104.062890625,19.48256835937505],[104.05156250000007,19.564160156249955],[104.01347656250007,19.64648437500003],[104.03203125000002,19.675146484375006],[104.06279296875007,19.678417968749983],[104.25986328125006,19.685498046874983],[104.5462890625,19.61054687500001],[104.58789062500003,19.61875],[104.74316406250003,19.754736328124977],[104.80175781249997,19.83613281250004],[104.81513671875004,19.90400390625001],[104.9279296875001,20.01811523437499],[104.92919921875003,20.082812500000017],[104.88867187500003,20.169091796875023],[104.84785156250004,20.202441406250045],[104.69873046875003,20.20532226562503],[104.67695312500004,20.224707031249977],[104.66191406250007,20.28901367187501],[104.65644531250004,20.32851562499999],[104.6188476562501,20.37451171875003],[104.49619140625006,20.413671875],[104.39218750000012,20.424755859374955],[104.36777343750012,20.44140624999997],[104.40781250000012,20.48574218750005],[104.47861328125006,20.529589843750017],[104.53271484374997,20.55488281250001],[104.58320312500004,20.646679687499955],[104.34960937499997,20.821093750000074],[104.19531249999997,20.913964843749966],[104.10136718750002,20.94550781250001],[103.63505859375007,20.697070312500017],[103.46357421875004,20.779833984375017],[103.21074218750002,20.840625],[103.10449218749997,20.891650390625045],[102.88378906250003,21.202587890624983],[102.85117187500006,21.26591796874999],[102.94960937500005,21.681347656249983],[102.84521484374997,21.73476562500005],[102.81591796874997,21.807373046875],[102.7982421875,21.797949218750034],[102.77109375000006,21.709667968749983],[102.73857421875002,21.67792968750001],[102.66201171875005,21.67602539062497],[102.58251953125003,21.90429687500003],[102.12744140624997,22.379199218750045],[102.1759765625001,22.414648437500006],[102.2370117187501,22.466015624999983],[102.40644531250004,22.70800781249997],[102.47089843750004,22.75092773437501],[102.98193359374997,22.4482421875],[103.32666015625003,22.769775390625057],[103.49296875000007,22.587988281250034],[103.62021484375006,22.782031250000045],[103.94150390625006,22.540087890625045],[104.14306640624997,22.800146484375006],[104.37177734375004,22.704052734374983],[104.68730468750002,22.822216796874983],[104.86474609375003,23.136376953125023],[105.27539062500003,23.34521484375003],[105.8429687500001,22.922802734374955],[106.14843749999997,22.970068359375006],[106.2790039062501,22.857470703125045],[106.54179687500007,22.908349609375023],[106.78027343749997,22.778906250000034],[106.55039062500006,22.501367187499994],[106.66357421875003,21.97890625000005],[106.97099609375002,21.923925781250034],[107.35117187500012,21.60888671874997],[107.75927734374997,21.655029296875057],[107.97265624999997,21.507958984375023]]]]},"properties":{"name":"Vietnam","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[169.49130859375006,-19.54013671875002],[169.34726562500006,-19.623535156249957],[169.2174804687501,-19.476367187500003],[169.24746093750005,-19.3447265625],[169.49130859375006,-19.54013671875002]]],[[[169.334375,-18.940234375000017],[168.98691406250006,-18.87128906250001],[169.01582031250004,-18.64375],[169.14384765625002,-18.63105468750001],[169.334375,-18.940234375000017]]],[[[168.44580078124997,-17.54218750000004],[168.58496093750003,-17.695898437500006],[168.52460937500004,-17.798046875000026],[168.15820312500003,-17.710546874999963],[168.2731445312501,-17.552246093749957],[168.44580078124997,-17.54218750000004]]],[[[168.44677734375003,-16.778808593749957],[168.18144531250002,-16.804003906250017],[168.13535156250006,-16.636914062499997],[168.44677734375003,-16.778808593749957]]],[[[168.29667968750007,-16.33652343749999],[167.92900390625002,-16.22871093749997],[168.16386718750002,-16.081640625000034],[168.29667968750007,-16.33652343749999]]],[[[167.4125,-16.095898437499997],[167.83662109375004,-16.449707031249957],[167.44931640625012,-16.554980468750003],[167.34921875000006,-16.15449218750004],[167.15146484375006,-16.080468749999966],[167.19951171875002,-15.885058593750031],[167.33574218750007,-15.916699218749997],[167.4125,-16.095898437499997]]],[[[167.9113281250001,-15.435937500000023],[167.67421875,-15.4515625],[168.00253906250012,-15.283203124999986],[167.9113281250001,-15.435937500000023]]],[[[166.74580078125004,-14.826855468750011],[166.81015625000012,-15.15742187500004],[167.0755859375,-14.935644531249977],[167.20078125000012,-15.443066406249969],[167.0939453125001,-15.580859374999974],[166.75830078125003,-15.631152343750003],[166.63105468750004,-15.406054687499974],[166.56738281250003,-14.641796874999969],[166.74580078125004,-14.826855468750011]]],[[[167.58486328125,-14.260937500000011],[167.43027343750012,-14.294921875],[167.41074218750006,-14.19746093750004],[167.50644531250012,-14.142187499999977],[167.58486328125,-14.260937500000011]]],[[[167.48886718750006,-13.907226562499972],[167.3917968750001,-13.788378906250017],[167.48105468750006,-13.709472656250014],[167.48886718750006,-13.907226562499972]]]]},"properties":{"name":"Vanuatu","childNum":10}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-171.4541015625,-14.04648437500002],[-171.9119140625,-14.001660156250026],[-172.04589843750003,-13.857128906249983],[-171.60390624999997,-13.879199218750045],[-171.4541015625,-14.04648437500002]]],[[[-172.33349609375,-13.46523437499999],[-172.17685546874998,-13.68466796875002],[-172.224951171875,-13.804296874999963],[-172.535693359375,-13.791699218749983],[-172.77851562499998,-13.516796875000011],[-172.33349609375,-13.46523437499999]]]]},"properties":{"name":"Samoa","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[53.76318359374997,12.636816406249991],[54.18740234375005,12.664013671875026],[54.511132812499994,12.552783203125017],[54.12949218750006,12.360644531250045],[53.71884765625006,12.318994140624994],[53.31582031250005,12.533154296875011],[53.53496093750002,12.715771484374997],[53.76318359374997,12.636816406249991]]],[[[42.75585937500003,13.70429687500004],[42.689746093750074,13.673632812500017],[42.7941406250001,13.766113281250028],[42.75585937500003,13.70429687500004]]],[[[42.787402343750074,13.971484375000031],[42.69404296875004,14.007910156249991],[42.76210937500005,14.067480468750048],[42.787402343750074,13.971484375000031]]],[[[53.08564453125004,16.648388671874955],[52.327734375,16.293554687500063],[52.17402343750004,15.956835937500017],[52.2174804687501,15.655517578125],[51.3224609375001,15.22626953125004],[49.34990234375002,14.637792968749977],[48.66835937499999,14.050146484374977],[47.9899414062501,14.048095703125],[47.40771484374997,13.661621093750057],[46.78886718750002,13.465576171874986],[45.65732421875006,13.338720703124991],[45.03867187500006,12.815869140624969],[44.617773437500006,12.817236328124977],[44.00585937499997,12.607666015625],[43.634375,12.744482421874991],[43.487597656250074,12.69882812500002],[43.23193359375003,13.267089843750057],[43.2824218750001,13.692529296875037],[43.08906250000004,14.010986328125],[42.93642578125005,14.938574218749963],[42.85566406250004,15.132958984375037],[42.65781250000006,15.232812500000051],[42.79902343750004,15.326269531249991],[42.71718750000005,15.654638671875006],[42.83964843750002,16.032031250000074],[42.79931640624997,16.37177734375001],[43.16503906249997,16.689404296874955],[43.19091796875003,17.359375],[43.41796875000003,17.516259765625023],[43.91699218749997,17.32470703124997],[45.14804687500006,17.427441406249955],[45.5353515625001,17.30205078124999],[46.72763671875006,17.26557617187501],[46.97568359375006,16.953466796875034],[47.14355468749997,16.946679687499966],[47.44179687499999,17.111865234375045],[47.57958984374997,17.448339843750034],[48.17216796875002,18.156933593749983],[49.04199218750003,18.58178710937503],[51.977636718750006,18.996142578125074],[53.08564453125004,16.648388671874955]]]]},"properties":{"name":"Yemen","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[37.85693359375003,-46.94423828124998],[37.5900390625001,-46.90800781250006],[37.78955078124997,-46.8375],[37.85693359375003,-46.94423828124998]]],[[[31.799609375000017,-23.8921875],[31.98583984374997,-24.460644531249983],[31.921679687500017,-25.96875],[31.335156250000097,-25.755566406249997],[31.207324218750074,-25.843359375000034],[31.08808593750004,-25.980664062500026],[30.803320312500006,-26.41347656250001],[30.806738281250006,-26.78525390624999],[30.88330078124997,-26.792382812500023],[30.938085937500006,-26.91582031250003],[31.06337890625005,-27.1123046875],[31.274023437500063,-27.23837890625002],[31.469531250000017,-27.29550781250002],[31.74257812500005,-27.309960937500037],[31.95839843750005,-27.305859375],[31.946093750000017,-27.173632812499974],[31.96718750000005,-26.96064453125001],[31.994726562500006,-26.817480468749977],[32.024804687499994,-26.81113281250002],[32.112890625,-26.83945312500002],[32.19960937499999,-26.833496093749957],[32.35351562499997,-26.861621093750003],[32.7765625000001,-26.850976562499966],[32.88613281250005,-26.849316406249983],[32.53476562500006,-28.19970703125003],[32.285742187500006,-28.62148437499998],[31.335156250000097,-29.378125],[29.97119140625003,-31.322070312500017],[28.449414062500068,-32.62460937499999],[27.077441406250074,-33.52119140625004],[26.429492187500045,-33.75957031250002],[25.80585937500001,-33.737109374999974],[25.574218750000057,-34.03535156249998],[25.00292968750003,-33.97363281250003],[24.8271484375,-34.16894531250003],[24.595507812500074,-34.17451171875],[23.697851562500063,-33.99277343750002],[23.268164062500006,-34.08115234374999],[22.553808593750063,-34.01005859374999],[22.24550781250005,-34.06914062500003],[21.788964843750023,-34.37265624999996],[20.529882812500034,-34.4630859375],[20.020605468750006,-34.785742187500006],[19.298242187500023,-34.61503906249996],[19.330761718750068,-34.49238281250001],[19.098339843750068,-34.350097656249986],[18.831347656250017,-34.36406249999999],[18.75214843750004,-34.08261718750002],[18.50039062499999,-34.10927734375004],[18.46162109375001,-34.346875],[18.35205078124997,-34.1884765625],[18.43300781250005,-33.71728515625003],[17.851074218750057,-32.82744140625002],[17.96523437500005,-32.70859374999996],[18.125,-32.74912109374996],[18.325292968750034,-32.50498046874996],[18.21083984375008,-31.74248046874996],[17.34707031250005,-30.44482421875],[16.95,-29.40341796875002],[16.739453124999983,-29.009375],[16.447558593750045,-28.61757812499998],[16.755761718750023,-28.45214843750003],[16.7875,-28.39472656249997],[16.81015625,-28.264550781249994],[16.841210937500023,-28.21894531250004],[16.875292968750045,-28.12792968749997],[16.93330078125004,-28.06962890624999],[17.05625,-28.03105468750003],[17.1884765625,-28.13251953125001],[17.358691406250017,-28.269433593750023],[17.44794921875001,-28.698144531249966],[18.310839843750017,-28.88623046875],[19.16171875,-28.93876953124996],[19.245800781250068,-28.90166015625003],[19.31269531250004,-28.733300781250023],[19.539843750000017,-28.574609375000023],[19.98046875,-28.45126953125002],[19.98046875,-28.310351562500003],[19.98046875,-24.77675781249998],[20.430664062500057,-25.14707031250002],[20.79316406250001,-25.915625],[20.641406250000017,-26.7421875],[20.739843749999977,-26.84882812499997],[21.694726562500023,-26.840917968749963],[21.738085937500045,-26.806835937500026],[21.788281250000068,-26.710058593750034],[22.01093750000004,-26.635839843750006],[22.090917968749977,-26.580175781250034],[22.217578125000045,-26.38886718749997],[22.47089843750004,-26.219042968750003],[22.548632812500074,-26.178417968749997],[22.59765625000003,-26.13271484375001],[22.878808593750023,-25.457910156250023],[23.148730468750017,-25.288671875],[23.389257812500006,-25.291406250000023],[23.89375,-25.600878906250017],[23.96953124999999,-25.62607421874999],[24.192968750000034,-25.632910156249963],[24.33056640625,-25.742871093749983],[25.21337890625,-25.75625],[25.518164062500006,-25.66279296875001],[25.91210937499997,-24.747460937499966],[26.031835937500034,-24.70244140625003],[26.130859375000057,-24.671484375000034],[26.39716796875004,-24.61357421874996],[26.451757812500063,-24.582714843749983],[26.835058593750063,-24.240820312499963],[27.085546875000034,-23.577929687500003],[27.7685546875,-23.14892578125],[27.812597656250006,-23.108007812500006],[28.210156249999983,-22.693652343749974],[28.83984375000003,-22.480859374999966],[28.94580078125003,-22.39511718749999],[29.013476562500045,-22.27841796875002],[29.129882812500057,-22.21328125],[29.364843750000063,-22.19394531250005],[29.37744140625003,-22.19277343749998],[29.66308593749997,-22.146289062500017],[29.90234375000003,-22.184179687500006],[30.19042968750003,-22.291113281250034],[30.460156250000097,-22.329003906250023],[30.71162109375004,-22.297851562499986],[31.07343750000004,-22.30781249999997],[31.19726562499997,-22.344921874999983],[31.287890625000074,-22.402050781249983],[31.54560546875004,-23.48232421874998],[31.799609375000017,-23.8921875]],[[27.19355468750001,-29.94130859375001],[27.364062500000017,-30.27919921875001],[27.753125,-30.6],[28.05683593750001,-30.63105468750001],[28.128710937500017,-30.52509765625001],[28.39208984375003,-30.14755859375002],[28.646875,-30.1265625],[29.09804687500005,-29.919042968750006],[29.142187500000063,-29.70097656249999],[29.293554687500006,-29.56689453125003],[29.348828125000097,-29.441992187499977],[29.38671874999997,-29.319726562500023],[29.301367187500006,-29.08984375],[28.625781250000017,-28.581738281250054],[28.583398437499994,-28.59414062499999],[28.471875,-28.615820312499977],[28.23261718750004,-28.701269531249977],[28.084375,-28.779980468750026],[27.95986328125008,-28.87333984375003],[27.73554687500004,-28.940039062500034],[27.294531250000063,-29.519335937500017],[27.056933593750074,-29.62558593749999],[27.19355468750001,-29.94130859375001]]]]},"properties":{"name":"South Africa","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[33.148046875,-9.603515625],[33.25,-9.759570312500003],[33.35097656250002,-9.862207031250009],[33.33710937500001,-9.954003906250009],[33.3115234375,-10.037988281250009],[33.52890625,-10.234667968750003],[33.53759765625,-10.3515625],[33.5537109375,-10.391308593750011],[33.66152343750002,-10.553125],[33.29277343750002,-10.85234375],[33.37978515625002,-11.157910156250011],[33.26835937500002,-11.40390625],[33.23271484375002,-11.417675781250011],[33.22636718750002,-11.534863281250011],[33.30390625000001,-11.690820312500009],[33.25234375000002,-12.112597656250003],[33.34013671875002,-12.308300781250011],[33.512304687500006,-12.347753906250006],[32.975195312500006,-12.701367187500011],[32.96757812500002,-13.225],[32.67041015625,-13.590429687500006],[32.797460937500006,-13.6884765625],[32.98125,-14.009375],[33.148046875,-13.94091796875],[33.201757812500006,-14.013378906250011],[30.231835937500023,-14.990332031250006],[30.39609375,-15.64306640625],[29.4873046875,-15.69677734375],[28.9130859375,-15.98779296875],[28.760546875000017,-16.53212890625001],[27.932226562500006,-16.89619140625001],[27.020800781250017,-17.95839843750001],[26.779882812500006,-18.04150390625],[26.333398437500023,-17.929296875],[25.995898437500017,-17.969824218750006],[25.2587890625,-17.793554687500006],[25.001757812500017,-17.56855468750001],[24.73291015625,-17.51777343750001],[24.27490234375,-17.481054687500006],[23.380664062500017,-17.640625],[22.193945312500006,-16.628125],[21.979785156250017,-15.95556640625],[21.979394531250023,-14.440527343750006],[21.979296875000017,-14.11962890625],[21.979101562500006,-13.798730468750009],[21.978906250000023,-13.0009765625],[22.209570312500006,-13.0009765625],[23.843164062500023,-13.0009765625],[23.962988281250006,-12.988476562500011],[23.882421875,-12.799023437500011],[23.886523437500017,-12.743261718750006],[23.909375,-12.636132812500009],[23.98388671875,-11.725],[23.96650390625001,-10.871777343750011],[24.36572265625,-11.1298828125],[24.3779296875,-11.417089843750006],[25.28876953125001,-11.21240234375],[25.349414062500017,-11.623046875],[26.025976562500006,-11.89013671875],[26.824023437500017,-11.965234375],[27.1591796875,-11.579199218750006],[27.573828125,-12.22705078125],[28.412890625000017,-12.51806640625],[28.550878906250006,-12.836132812500011],[28.730078125,-12.925488281250011],[29.014257812500006,-13.368847656250011],[29.20185546875001,-13.398339843750009],[29.55419921875,-13.248925781250009],[29.775195312500017,-13.438085937500006],[29.79511718750001,-12.155468750000011],[29.508203125000023,-12.228222656250011],[29.48554687500001,-12.41845703125],[29.064355468750023,-12.348828125000011],[28.482519531250006,-11.812109375],[28.383398437500006,-11.566699218750003],[28.6455078125,-10.550195312500009],[28.60419921875001,-9.678808593750006],[28.400683593750017,-9.224804687500011],[28.869531250000023,-8.785839843750011],[28.89814453125001,-8.485449218750006],[30.75117187500001,-8.193652343750003],[30.830664062500006,-8.385546875],[30.891992187500023,-8.473730468750006],[30.968359375,-8.550976562500011],[31.07636718750001,-8.611914062500006],[31.3505859375,-8.60703125],[31.44921875,-8.65390625],[31.53486328125001,-8.71328125],[31.55625,-8.80546875],[31.673632812500017,-8.908789062500006],[31.91865234375001,-8.9421875],[31.921875,-9.019433593750009],[31.94257812500001,-9.054003906250003],[32.75664062500002,-9.322265625],[32.919921875,-9.407421875000011],[32.99599609375002,-9.622851562500003],[33.148046875,-9.603515625]]]},"properties":{"name":"Zambia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[31.287890625000017,-22.40205078125001],[31.07343750000001,-22.30781250000001],[30.71162109375001,-22.2978515625],[30.46015625000001,-22.32900390625001],[30.1904296875,-22.291113281250006],[29.90234375,-22.184179687500006],[29.6630859375,-22.146289062500003],[29.37744140625,-22.19277343750001],[29.36484375,-22.193945312500006],[29.315234375000017,-22.15771484375],[29.237207031250023,-22.07949218750001],[29.042382812500023,-22.018359375],[29.02558593750001,-21.796875],[28.014062500000023,-21.55419921875],[27.66943359375,-21.064257812500003],[27.679296875,-20.503027343750006],[27.28076171875,-20.47871093750001],[27.17822265625,-20.10097656250001],[26.168066406250006,-19.53828125000001],[25.939355468750023,-18.93867187500001],[25.242285156250006,-17.969042968750003],[25.2587890625,-17.793554687500006],[25.995898437500017,-17.969824218750006],[26.333398437500023,-17.929296875],[26.779882812500006,-18.04150390625],[27.020800781250017,-17.95839843750001],[27.932226562500006,-16.89619140625001],[28.760546875000017,-16.53212890625001],[28.9130859375,-15.98779296875],[29.4873046875,-15.69677734375],[30.39609375,-15.64306640625],[30.437792968750017,-15.995312500000011],[31.236230468750023,-16.02363281250001],[31.939843750000023,-16.428808593750006],[32.94804687500002,-16.71230468750001],[32.87626953125002,-16.88359375],[32.99306640625002,-18.35957031250001],[32.69970703125,-18.94091796875],[32.84980468750001,-19.10439453125001],[32.77763671875002,-19.388769531250006],[32.992773437500006,-19.98486328125],[32.49238281250001,-20.659765625],[32.353613281250006,-21.136523437500003],[32.429785156250006,-21.29707031250001],[31.429492187500017,-22.298828125],[31.287890625000017,-22.40205078125001]]]},"properties":{"name":"Zimbabwe","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[74.00809389139292,33.25375789331485],[73.19660141888893,33.898124784580936],[73.13410859949555,34.82510160558277],[72.31128647748268,35.77290936638241],[73.08203125000107,36.43949943991182],[73.08961802927895,36.86435907947333],[73.116796875,36.868554687499994],[74.03886718750002,36.825732421874996],[74.54140625000002,37.02216796875],[74.69218750000002,37.0357421875],[74.8892578125,36.952441406249996],[74.94912109375002,36.968359375],[75.05390625000001,36.987158203125],[75.14521484375001,36.9732421875],[75.3466796875,36.913476562499994],[75.37685546875002,36.883691406249994],[75.42421875000002,36.738232421875],[75.46025390625002,36.725048828125],[75.57373046875,36.759326171874996],[75.66718750000001,36.741992187499996],[75.77216796875001,36.694921875],[75.84023437500002,36.649707031249996],[75.88496093750001,36.600732421874994],[75.93300781250002,36.52158203125],[75.95185546875001,36.45810546875],[75.97441406250002,36.382421875],[75.91230468750001,36.048974609374994],[76.07089843750003,35.9830078125],[76.14785156250002,35.829003906249994],[76.17783203125003,35.810546875],[76.25166015625001,35.8109375],[76.3857421875,35.837158203125],[76.50205078125003,35.878222656249996],[76.55126953125,35.887060546875],[76.5634765625,35.772998046874996],[76.6318359375,35.729394531249994],[76.7275390625,35.678662109375],[76.76689453124999,35.66171875],[76.81279296874999,35.571826171874996],[76.88222656250002,35.4357421875],[76.927734375,35.346630859375],[77.04863281249999,35.109912109374996],[77.00087890625002,34.991992187499996],[76.78291015625001,34.900195312499996],[76.75751953125001,34.877832031249994],[76.7490234375,34.847558593749994],[76.6962890625,34.786914062499996],[76.59443359375001,34.73583984375],[76.45673828125001,34.756103515625],[76.17246093750003,34.667724609375],[76.041015625,34.669921875],[75.93828125000002,34.612548828125],[75.86210937500002,34.56025390625],[75.70917968750001,34.503076171874994],[74.300390625,34.765380859375],[74.17197265625,34.7208984375],[74.05585937500001,34.6806640625],[73.96123046875002,34.653466796874994],[73.79453125,34.378222656249996],[73.80996093750002,34.325341796874994],[73.92460937500002,34.287841796875],[73.97236328125001,34.236621093749996],[73.9794921875,34.191308593749994],[73.90390625,34.1080078125],[73.94990234375001,34.018798828125],[74.24648437500002,33.990185546875],[73.97646484375002,33.7212890625],[74.15,33.506982421874994],[74.00809389139292,33.25375789331485]]]},"properties":{"name":"","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[78.49194250885338,32.53122786149202],[78.10154031239509,32.87658365066666],[77.71342088235082,32.6917648744551],[77.06655516561037,33.301666835953235],[76.62299010270264,33.32014871357439],[76.32728006076415,32.87658365066666],[75.73585997688717,32.78417426256088],[75.62496871116024,32.28516356678968],[75.32221348233018,32.28516356678968],[74.98730468749997,32.46220703124996],[74.78886718750013,32.4578125],[74.6857421875001,32.493798828124994],[74.66328125000004,32.75766601562495],[74.63242187499995,32.770898437500136],[74.58828125000011,32.7532226562501],[74.35458984375012,32.76870117187505],[74.30546875000007,32.81044921875002],[74.30361328125005,32.991796875000034],[73.98984375000006,33.22119140625006],[74.15,33.506982421874994],[73.97646484375016,33.72128906249998],[74.24648437500011,33.99018554687504],[73.9499023437501,34.018798828125],[73.90390625000012,34.10800781250006],[73.97949218750009,34.191308593749966],[73.97236328125004,34.23662109374996],[73.92460937500007,34.287841796875114],[73.80996093750016,34.32534179687511],[73.79453125000006,34.378222656250045],[73.96123046875007,34.653466796874994],[74.05585937500015,34.68066406250003],[74.17197265624995,34.72089843750004],[74.30039062500006,34.76538085937506],[75.70917968750004,34.50307617187508],[75.86210937500002,34.56025390625001],[75.93828125000019,34.612548828125],[76.04101562500014,34.66992187499997],[76.17246093750006,34.66772460937506],[76.4567382812501,34.756103515625114],[76.5944335937501,34.73583984375006],[76.69628906249997,34.78691406249999],[76.74902343750014,34.84755859375008],[76.7575195312501,34.87783203125005],[76.7829101562501,34.90019531249999],[77.00087890625011,34.99199218750002],[77.03066406250011,35.06235351562498],[77.04863281250007,35.109912109375074],[77.42343749999995,35.30258789062506],[77.57158203125002,35.37875976562495],[77.69697265625015,35.443261718750136],[77.79941406250006,35.49589843750002],[78.0426757812501,35.4797851562501],[78.07578125000006,35.13491210937502],[78.15849609375002,34.94648437499998],[78.32695312500007,34.60639648437498],[78.86484375000006,34.39033203125001],[78.93642578125,34.35195312500002],[78.97060546875011,34.22822265625004],[78.72666015625006,34.013378906249955],[78.78378906250006,33.80878906250004],[78.86503906250002,33.43110351562501],[78.94843750000004,33.346533203125006],[79.1125,33.22626953125001],[79.13515625000005,33.17192382812496],[79.10283203125007,33.05253906249996],[79.14550781250003,33.00146484375006],[79.16992187500003,32.497216796874994],[78.91894531249997,32.3582031250001],[78.75351562500012,32.49926757812506],[78.73671875,32.55839843750002],[78.49194250885338,32.53122786149202]]]]},"properties":{"name":"","childNum":1}}]}');var xe=Object.defineProperty,ke=Object.getOwnPropertySymbols,Ce=Object.prototype.hasOwnProperty,$e=Object.prototype.propertyIsEnumerable,Se=(e,t,n)=>t in e?xe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ee=(e,t)=>{for(var n in t||(t={}))Ce.call(t,n)&&Se(e,n,t[n]);if(ke)for(var n of ke(t))$e.call(t,n)&&Se(e,n,t[n]);return e};function Oe({areaStyleColors:n,dataLoaded:o,hasData:i,highlight:r,type:s,option:a,series:l,onChange:c,zoomStart:u,zoomEnd:h,title:d,seriesConfig:p=[],noDataComponent:g=null,zoomColors:m,style:f}){const[y,v]=(0,e.useState)(null),b=(0,e.useRef)(null),w=()=>{y&&y.resize()},x=(0,e.useMemo)((()=>g?g():t().createElement(be,{theme:"info"},"No data to display")),[g]),k={defaultOpts:(0,pe.fromJS)({title:{show:!0,text:d,left:0},color:[],toolbox:{right:"0",orient:"horizontal",itemSize:15,showTitle:!0,feature:null},dataZoom:[{show:!0,start:0,end:100,orient:"horizontal",dataBackground:{lineStyle:{color:(null==m?void 0:m.lineStyle)||"#368493"},areaStyle:{color:(null==m?void 0:m.areaStyle)||"#368493"}},handleStyle:{color:(null==m?void 0:m.handleStyle)||"#368493"},textStyle:{color:(null==m?void 0:m.textStyle)||"#368493"},borderColor:"transparent",fillerColor:(null==m?void 0:m.fillerColor)||"rgba(54, 132, 147, 0.1)"}],legend:{show:!1},tooltip:{trigger:"axis",axisPointer:{type:"cross"}},grid:{left:"1%",right:"1%",bottom:"50px",top:"40px",containLabel:!0},xAxis:{boundaryGap:!1,type:"category",splitLine:{show:!0,lineStyle:{type:"dotted",color:"#F0F0F0"}},axisLine:{show:!1},axisTick:{show:!1},data:[]},yAxis:{min:"dataMin",boundaryGap:!0,axisPointer:{show:!0},splitLine:{lineStyle:{type:"dotted",color:"#F0F0F0"},show:!0},axisLabel:{show:!0},axisLine:{show:!0},axisTick:{show:!1},type:"value"},textStyle:{color:"#5a5a68"},series:[],animationEasing:"elasticOut"}),seriesDefault:(0,pe.fromJS)({data:[],type:"line",areaStyle:{opacity:1,color:n?new de.graphic.LinearGradient(0,0,1,1,n.map(((e,t)=>({offset:t,color:e})))):[]},smooth:!1,symbolSize:7,name:""})},C={defaultOpts:(0,pe.fromJS)({tooltip:{trigger:"axis",formatter:"{b}: {c} ({d}%)"},legend:{orient:"horizontal",x:"left",y:"top",data:[]},color:[],series:[]}),seriesDefault:(0,pe.fromJS)({type:"pie",center:["50%","55%"],radius:["50%","75%"],avoidLabelOverlap:!1,animationType:"scale",animationEasing:"elasticOut",labelLine:{normal:{show:!0,smooth:.2,length:6,length2:6}},data:[]})},$={defaultOpts:(0,pe.fromJS)({series:[]}),seriesDefault:(0,pe.fromJS)({type:"map",data:[]})};(0,e.useEffect)((()=>(window.addEventListener("resize",w),()=>{window.removeEventListener("resize",w)})),[y]),(0,e.useEffect)((()=>{if(null==b?void 0:b.current)return v(de.init(b.current)),()=>{y&&y.dispose()}}),[b.current]);const S=e=>{c&&c(e)};(0,e.useEffect)((()=>{let e;return y&&(e=ge(S,500),y.on("dataZoom",e),y.on("restore",e),y.on("click",e),y.on("mousemove",(e=>{e.data&&y.getZr().setCursorStyle("pointer")}))),()=>{y&&(y.off("dataZoom",e),y.off("restore",e),y.off("click",e))}}),[y,c]);const E=me(y),O=me(a),T=me(s),A=me(l);(0,e.useEffect)((()=>{var e,t,n,o,i,r;!y||(null==(t=null==(e=(0,pe.fromJS)(E))?void 0:e.equals)?void 0:t.call(e,(0,pe.fromJS)(y)))&&(null==(o=null==(n=(0,pe.fromJS)(O))?void 0:n.equals)?void 0:o.call(n,(0,pe.fromJS)(a)))&&T===s&&(null==(r=(i=(0,pe.fromJS)(A)).equals)?void 0:r.call(i,(0,pe.fromJS)(l)))||(y.clear(),y.setOption(((e,t,n)=>{let o={};switch(e){case"pie":o=C.defaultOpts.mergeDeep((0,pe.fromJS)(t)).toJS(),n.forEach((e=>{o.series.push(C.seriesDefault.mergeDeep((0,pe.fromJS)(e)).toJS())}));break;case"geo":o=$.defaultOpts.mergeDeep((0,pe.fromJS)(t)).toJS(),n.forEach((e=>{o.series.push($.seriesDefault.mergeDeep((0,pe.fromJS)(e)).toJS())}));break;default:o=k.defaultOpts.mergeDeep((0,pe.fromJS)(t)).toJS(),Array.isArray(t.yAxis)&&(o.yAxis=t.yAxis),n.forEach(((e,t)=>{const n=Ee(Ee(Ee({},k.seriesDefault.toJS()),p[t]),e);o.series.push(n)}))}return o})(s,a,l)),y.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:!0}))}),[y,a,l,s]),(0,e.useEffect)((()=>{y&&r&&(y.dispatchAction({type:"highlight",seriesIndex:r.seriesIndex,dataIndex:r.dataIndex}),y.dispatchAction({type:"showTip",seriesIndex:r.seriesIndex,dataIndex:r.dataIndex}))}),[r]);const _=me(u),L=me(h);(0,e.useEffect)((()=>{!y||-1===u||-1===h||_===u&&L===h||y.dispatchAction({type:"dataZoom",startValue:u,endValue:h})}),[u,h]);const M=()=>!o||!1!==i&&!0!==i||i;return t().createElement("div",{className:"tyk-chart__wrapper"},o?null:t().createElement(ye,null),t().createElement("div",{className:(()=>{const e=["tyk-chart"];return o||e.push("tyk-chart--loading-chart"),M()||e.push("tyk-chart--no-data"),e.join(" ")})(),style:(()=>{const e=f||{};return e.height||(e.height="300px"),e.width||(e.width="100%"),e})(),"data-type":s,ref:b}),M()?null:x)}de.registerMap("world",we),Oe.propTypes={areaStyleColors:r().instanceOf(Array),dataLoaded:r().bool,hasData:r().bool,highlight:r().oneOfType([r().number,r().string,r().instanceOf(Array)]),noDataComponent:r().func,zoomStart:r().number,zoomEnd:r().number,zoomColors:r().instanceOf(Object),option:r().instanceOf(Object),onChange:r().func,style:r().instanceOf(Object),type:r().string,title:r().string,series:r().instanceOf(Array),seriesConfig:r().instanceOf(Object)};const Te=(0,e.memo)(Oe);var Ae=n(745);const _e=(t,n)=>{const o=(0,e.useRef)();(0,e.useEffect)((()=>{o.current=t}),[t]),(0,e.useEffect)((()=>{if(null!==n){const e=setTimeout((function(){o.current()}),n);return()=>clearTimeout(e)}return()=>{}}),[n])};var Le=Object.defineProperty,Me=Object.getOwnPropertySymbols,Re=Object.prototype.hasOwnProperty,Ne=Object.prototype.propertyIsEnumerable,Ie=(e,t,n)=>t in e?Le(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Pe(e){const{children:n,options:o,onClose:i,index:r}=e,s=((e,t)=>{for(var n in t||(t={}))Re.call(t,n)&&Ie(e,n,t[n]);if(Me)for(var n of Me(t))Ne.call(t,n)&&Ie(e,n,t[n]);return e})({theme:"success",delay:3e3},o),a=e=>{i(e),clearTimeout(void 0)};return _e((()=>a(r)),s.delay),t().createElement(be,{className:"tyk-toast__message",theme:s.theme,onClose:()=>a(r)},n)}Pe.propTypes={children:r().oneOfType([r().element,r().node,r().string]),options:r().instanceOf(Object),onClose:r().func,index:r().number};const De=Pe;var Fe=Object.defineProperty,Be=Object.defineProperties,We=Object.getOwnPropertyDescriptors,He=Object.getOwnPropertySymbols,je=Object.prototype.hasOwnProperty,ze=Object.prototype.propertyIsEnumerable,Ve=(e,t,n)=>t in e?Fe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ue=(e,t)=>{for(var n in t||(t={}))je.call(t,n)&&Ve(e,n,t[n]);if(He)for(var n of He(t))ze.call(t,n)&&Ve(e,n,t[n]);return e};function Ge(n){const[o,i]=(0,e.useState)({}),{notify:r}=n,s=(e,t)=>{const n=Math.floor(1e6*Math.random());i((o=>{return i=Ue({},o),Be(i,We({[n]:{message:e,options:t}}));var i}))};(0,e.useEffect)((()=>{r(s)}),[o]);const a=e=>{delete Ue({},o)[e],i((t=>{const n=Ue({},t);return delete n[e],n}))};return t().createElement("div",{className:"tyk-toast__container"},Object.keys(o).map((e=>o[e]?t().createElement(De,{options:o[e].options,onClose:a.bind(null,e),index:e,key:e},o[e].message):null)))}Ge.propTypes={notify:r().func};const Ke=Ge;var qe=Object.defineProperty,Ye=Object.defineProperties,Je=Object.getOwnPropertyDescriptors,Xe=Object.getOwnPropertySymbols,Qe=Object.prototype.hasOwnProperty,Ze=Object.prototype.propertyIsEnumerable,et=(e,t,n)=>t in e?qe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,tt=(e,t)=>{for(var n in t||(t={}))Qe.call(t,n)&&et(e,n,t[n]);if(Xe)for(var n of Xe(t))Ze.call(t,n)&&et(e,n,t[n]);return e},nt=(e,t)=>Ye(e,Je(t));const ot=new class{constructor(){var e;et(this,"symbol"!=typeof(e="bindNotify")?e+"":e,(e=>{this.createNotification=e}));const n=document.createElement("div");n.className="tyk-toast",document.body.appendChild(n),(0,Ae.s)(n).render(t().createElement(Ke,{notify:this.bindNotify}))}notify(e,t){this.createNotification&&this.createNotification(e,t)}danger(e,t){this.notify(e,nt(tt({},t),{theme:"danger"}))}success(e,t){this.notify(e,nt(tt({},t),{theme:"success"}))}warning(e,t){this.notify(e,nt(tt({},t),{theme:"warning"}))}info(e,t){this.notify(e,nt(tt({},t),{theme:"info"}))}};var it=Object.defineProperty,rt=Object.getOwnPropertySymbols,st=Object.prototype.hasOwnProperty,at=Object.prototype.propertyIsEnumerable,lt=(e,t,n)=>t in e?it(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function ct(n){const{display:o,copy:i,children:r,onCopy:s,message:a="copied"}=n,l=(0,e.createRef)(),c=(0,e.useCallback)((()=>{if(s&&s(),!window.navigator.clipboard)return l.current.select(),document.execCommand("copy"),void ot.success(a);window.navigator.clipboard.writeText(i),ot.success(a)}),[s,l]);return t().createElement(t().Fragment,null,t().createElement(n.element,((e,t)=>{for(var n in t||(t={}))st.call(t,n)&<(e,n,t[n]);if(rt)for(var n of rt(t))at.call(t,n)&<(e,n,t[n]);return e})({onClick:c,onKeyUp:c},n),r||o),window.navigator.clipboard?null:t().createElement("textarea",{ref:l,className:"tyk-copy-to-clipboard",name:"copy",value:i},i))}ct.propTypes={message:r().string,onCopy:r().func,copy:r().string.isRequired,display:r().string,children:r().oneOfType([r().element,r().string,r().object,r().node])};const ut=ct;var ht=n(137),dt=n.n(ht);function pt({children:e}){return t().createElement("div",{className:"tyk-modal__footer"},e)}pt.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const gt=pt;function mt({children:e}){return t().createElement("div",{className:"tyk-modal__body"},e)}mt.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const ft=mt;var yt=Object.defineProperty,vt=Object.getOwnPropertySymbols,bt=Object.prototype.hasOwnProperty,wt=Object.prototype.propertyIsEnumerable,xt=(e,t,n)=>t in e?yt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function kt(e){var n=e,{children:o,theme:i="none",disableCloseCommands:r=!1,opened:s=!1,onClose:a=(()=>{}),size:l="md",className:c="",showBackdrop:u=!0}=n,h=((e,t)=>{var n={};for(var o in e)bt.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&vt)for(var o of vt(e))t.indexOf(o)<0&&wt.call(e,o)&&(n[o]=e[o]);return n})(n,["children","theme","disableCloseCommands","opened","onClose","size","className","showBackdrop"]);const d=["tyk-modal",`tyk-modal--theme-${i}`,s&&"opened"].concat(c.split(" ")).filter(Boolean).join(" "),p=["tyk-modal__backdrop",s&&"opened"].filter(Boolean).join(" "),m={success:"check",warning:"exclamation",danger:"exclamation"}[i];return t().createElement(t().Fragment,null,dt().createPortal(t().createElement(x.CSSTransition,{in:s,timeout:100,classNames:"appear"},t().createElement("div",((e,t)=>{for(var n in t||(t={}))bt.call(t,n)&&xt(e,n,t[n]);if(vt)for(var n of vt(t))wt.call(t,n)&&xt(e,n,t[n]);return e})({className:d},h),t().createElement("div",{className:`tyk-modal__dialog tyk-modal--${l}`},t().createElement("div",{className:"tyk-modal__content"},"none"!==i&&t().createElement("div",{className:"tyk-modal__theme-header"},t().createElement(g,{type:m})),o)))),document.querySelector("body")),u&&dt().createPortal(t().createElement(x.CSSTransition,{in:s,timeout:100,classNames:"fade"},t().createElement("button",{className:p,onClick:()=>!r&&a(),onKeyDown:()=>{},type:"button","aria-label":"Close"})),document.querySelector("body")))}kt.Body=ft,kt.Footer=gt,kt.Header=({children:e})=>(console.warn("%cModal.Header%c is deprecated.","font-weight: bold",""),t().createElement("div",{className:"tyk-modal__header"},e)),kt.Header.propTypes={children:r().element},kt.Title=({children:e})=>(console.warn("%cModal.Title%c is deprecated.","font-weight: bold",""),t().createElement("h4",{className:"tyk-modal__title"},e)),kt.Title.propTypes={children:r().element},kt.propTypes={children:r().oneOfType([r().element,r().node,r().string]),className:r().string,theme:r().string,disableCloseCommands:r().bool,opened:r().bool,onClose:r().func,size:r().string,showBackdrop:r().bool};const Ct=kt;function $t(n){const{children:o,title:i,description:r,confirmBtnText:s="Confirm",cancelBtnText:a="Cancel"}=n,[l,c]=(0,e.useState)(!1),[u,h]=(0,e.useState)(null),[d,p]=(0,e.useState)(null),g=()=>{c(!1),h(null),p(null)},m=()=>{d&&d(),g()};return t().createElement(t().Fragment,null,o(((e,t,n)=>(...o)=>{n&&n(...o),c(!0),h((()=>()=>e(...o))),t&&p((()=>()=>t(...o)))})),t().createElement(Ct,{opened:l,onClose:m},t().createElement(Ct.Body,null,t().createElement("h4",null,i),r),t().createElement(Ct.Footer,null,t().createElement(U,{onClick:m,theme:"default"},a),t().createElement(U,{onClick:()=>{u(),g()},theme:"success"},s))))}$t.propTypes={confirmBtnText:r().string,cancelBtnText:r().string,title:r().string,description:r().string,children:r().oneOfType([r().element,r().string,r().object,r().node,r().func])};const St=$t;function Et({children:n,className:o,showShadow:i}){const r=(0,e.useRef)(null),s=(0,e.useCallback)((()=>{const e=r.current;e&&(window.scrollY?e.classList.add("tyk-fixed-wrapper--scrolled"):e.classList.remove("tyk-fixed-wrapper--scrolled"))}),[r.current]),a=(0,e.useCallback)(ge(s,100),[s]);return(0,e.useEffect)((()=>(i&&window.addEventListener("scroll",a),()=>{window.removeEventListener("scroll",a)})),[a,i]),t().createElement("div",{className:`tyk-fixed-wrapper ${o}`,ref:r},n)}Et.propTypes={children:r().oneOfType([r().element,r().node,r().string]),className:r().string,showShadow:r().bool},Et.defaultProps={className:""};const Ot=Et;function Tt({children:n,hasMore:o,initialLoad:i,loadMore:r,pageNumber:s,refChild:a}){const[l,c]=(0,e.useState)(!1),u=(0,e.useRef)(null),h=C(a);(0,e.useEffect)((()=>{i&&"function"==typeof r&&(c(!1),r(s))}),[i]);const d=(0,e.useCallback)((()=>{if(!u.current)return!1;const{clientHeight:e,scrollTop:t}=u.current;return o&&(e+Math.round(t)===h.height||e>=h.height)}),[u,h.height]),p=(0,e.useCallback)((()=>{o&&"function"==typeof r?(r(s+1),c(!0)):c(!1)}),[o,s]),g=me(s),m=(0,e.useCallback)(ge((()=>{d()&&g<=s&&p()}),200),[p,d]);(0,e.useEffect)((()=>{var e;return null==(e=u.current)||e.addEventListener("scroll",m),()=>{var e;return null==(e=u.current)?void 0:e.removeEventListener("scroll",m)}}),[u,m]),(0,e.useEffect)((()=>{g>0&&0===s&&(u.current.scrollTop=0)}),[u,s]);const f=me(h);return(0,e.useEffect)((()=>{h&&f&&h.height!==f.height&&!0===l&&c(!1)}),[l,h.height]),(0,e.useEffect)((()=>{a&&h.heightt in e?_t(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function It({element:n,size:o="auto",forceDisplay:i="auto",displayAxis:r="auto",preferredPosition:s,offset:a=0,className:l,children:c,infiniteScrollerConfig:u},h){const d=(0,e.useRef)(null),p=h||d,g=(0,e.useRef)(null),m=(0,e.useRef)(null);return(0,e.useEffect)((()=>{window.requestAnimationFrame((function e(){(function(){var e;const t="auto"!==i?i:function(){const e=n.current,t=p.current;if(!t)return(null!=s?s:"vertical"===r)?"bottom":"right";const{left:o,top:i}=e.getBoundingClientRect(),a=i,l=window.innerHeight-i-e.offsetHeight,c=o,u=window.innerWidth-o-e.offsetWidth,h=a>t.scrollHeight,d=l>t.scrollHeight,g=c>t.offsetWidth,m=u>t.offsetWidth,f=o+e.offsetWidth/2-t.offsetWidth/2>0,y=i+e.offsetHeight/2-t.scrollHeight/2>0;return"vertical"===r||"auto"===r&&(h||d)&&f?function({preferredPosition:e,hasTopSpace:t,hasBottomSpace:n,topSpace:o,bottomSpace:i}){return"top"===e&&t?"top":"bottom"===e&&n||n||i>o?"bottom":"top"}({preferredPosition:s,hasTopSpace:h,hasBottomSpace:d,topSpace:a,bottomSpace:l}):"horizontal"===r?function({preferredPosition:e,hasLeftSpace:t,hasRightSpace:n,leftSpace:o,rightSpace:i}){return"left"===e&&t?"left":"right"===e&&n||n||i>o?"right":"left"}({preferredPosition:s,hasLeftSpace:g,hasRightSpace:m,leftSpace:c,rightSpace:u}):function({preferredPosition:e,hasTopSpace:t,hasBottomSpace:n,hasLeftSpace:o,hasRightSpace:i,positionedHorizontallyFitsInViewport:r,positionedVerticallyFitsInViewport:s}){return t&&s?"top":n&&s?"bottom":i&&r?"right":o&&r?"left":null!=e?e:"bottom"}({preferredPosition:s,hasTopSpace:h,hasBottomSpace:d,hasLeftSpace:g,hasRightSpace:m,positionedHorizontallyFitsInViewport:y,positionedVerticallyFitsInViewport:f})}(),l=n.current,c=p.current;if(!l||!c)return;const u=l.getBoundingClientRect(),{left:h,top:d}=null!=(e=m.current)?e:{left:0,top:0};if("top"===t&&Object.assign(c.style,function({container:e,targetPosition:t,target:n,size:o,offset:i,vpLeft:r,vpTop:s}){const a={},l={auto:t.left+n.offsetWidth/2-e.offsetWidth/2,matchElement:t.left,matchStart:t.left,matchEnd:t.right-e.offsetWidth}[o],c=t.top-e.offsetHeight-i;return a.left=`${l+r}px`,a.top=`${c+s}px`,"matchElement"===o?a.width=`${n.offsetWidth}px`:"matchEnd"===o?a.maxWidth=t.right-5+"px":"function"==typeof o&&(a.width=`${o(n.offsetWidth)}px`),a.maxHeight=t.top-i+"px",a}({container:c,targetPosition:u,target:l,size:o,offset:a,vpLeft:h,vpTop:d})),"bottom"===t&&Object.assign(c.style,function({targetPosition:e,target:t,container:n,size:o,offset:i,vpLeft:r,vpTop:s}){const a={},l={auto:e.left+t.offsetWidth/2-n.offsetWidth/2,matchElement:e.left,matchStart:e.left,matchEnd:e.right-n.offsetWidth}[o],c=e.bottom+i;return a.left=`${l+r}px`,a.top=`${c+s}px`,"matchElement"===o?a.width=`${t.offsetWidth}px`:"matchEnd"===o?a.maxWidth=e.right-5+"px":"function"==typeof o&&(a.width=`${o(t.offsetWidth)}px`),a.maxHeight=window.innerHeight-e.bottom-i+"px",a}({container:c,targetPosition:u,target:l,size:o,offset:a,vpLeft:h,vpTop:d})),"left"===t&&Object.assign(c.style,function({targetPosition:e,target:t,container:n,size:o,offset:i}){const r={},s=e.left-n.offsetWidth-i,a={auto:e.top+t.offsetHeight/2-n.offsetHeight/2,matchElement:e.top,matchStart:e.top,matchEnd:e.bottom-n.offsetHeight}[o];return r.left=`${s}px`,r.top=`${a}px`,"matchElement"===o?r.height=`${t.offsetHeight}px`:"function"==typeof o&&(r.height=`${o(t.offsetHeight)}px`),r.maxWidth=e.left-i+"px",r}({targetPosition:u,target:l,container:c,size:o,offset:a})),"right"===t&&Object.assign(c.style,function({targetPosition:e,target:t,container:n,size:o,offset:i,vpLeft:r,vpTop:s}){const a={},l=e.left+t.offsetWidth+i,c={auto:e.top+t.offsetHeight/2-n.offsetHeight/2,matchElement:e.top,matchStart:e.top,matchEnd:e.bottom-n.offsetHeight}[o];return a.left="auto"===o?`${l+r}px`:`${l}px`,a.top="auto"===o?`${c+s}px`:`${c}px`,"matchElement"===o?a.height=`${t.offsetHeight}px`:"function"==typeof o&&(a.height=`${o(t.offsetHeight)}px`),a.maxWidth=window.innerWidth-e.left-t.offsetWidth-i+"px",a}({targetPosition:u,target:l,container:c,size:o,offset:a,vpLeft:h,vpTop:d})),null===m.current)if("matchEnd"===o)m.current={left:0,top:0};else{const e=Number(c.style.left.replace("px","")),t=Number(c.style.top.replace("px",""));m.current={left:e<0?5-e:0,top:t<0?5-t:0}}})(),window.requestAnimationFrame(e)}))}),[]),(0,ht.createPortal)(t().createElement("div",{className:`floating-container ${l||""}`,ref:p},t().createElement(At,((e,t)=>{for(var n in t||(t={}))Mt.call(t,n)&&Nt(e,n,t[n]);if(Lt)for(var n of Lt(t))Rt.call(t,n)&&Nt(e,n,t[n]);return e})({refChild:g},u),t().createElement("div",{className:"floating-container__content-wrapper",ref:g},c))),document.querySelector("body"))}It.propTypes={element:r().instanceOf(Object),className:r().string,size:r().oneOfType([r().oneOf(["auto","matchElement","matchStart","matchEnd"]),r().func]),offset:r().number,forceDisplay:r().oneOf(["auto","top","bottom","left","right"]),displayAxis:r().oneOf(["auto","vertical","horizontal"]),preferredPosition:r().oneOf(["top","bottom","left","right"]),infiniteScrollerConfig:r().instanceOf(Object)};const Pt=(0,e.forwardRef)(It);function Dt({children:e}){return t().createElement("div",{className:"tyk-info-note"},t().createElement(be,{theme:"info"},e))}Dt.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const Ft=Dt;function Bt(e){const{className:n,children:o,selected:i}=e;return t().createElement("li",{className:`${n} ${i?"tyk-list__item--selected":""}`},o)}Bt.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,selected:r().bool},Bt.defaultProps={className:""};const Wt=Bt;function Ht(e){const{className:n,children:o,label:i,labelwidth:r,theme:s,style:a}=e;return t().createElement("div",{className:"tyk-list__wrapper "+(r?"tyk-list--with-inline-label":"")},void 0!==i?t().createElement("label",{style:{flexBasis:r||"auto"}},i):null,t().createElement("ul",{className:(()=>{let e=["tyk-list"];return s&&e.push(`tyk-list--${s}`),n&&(e=e.concat(n.split(" "))),e.join(" ")})(),style:(()=>{const e=structuredClone(a);return r&&(e.flexBasis=`calc(100% - ${r} - 20px)`),e})()},o))}Ht.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,label:r().string,labelwidth:r().string,theme:r().string,style:r().instanceOf(Object)},Ht.defaultProps={theme:"default",style:{}},Ht.Item=Wt;const jt=Ht;function zt({align:e="center",children:n,left:o,right:i,title:r,pre:s,subtitle:a,withTabs:l}){const c=a?t().createElement("p",{className:"font-family-medium"},a):null;return t().createElement("section",{className:"tyk-nav-bar "+(l?"tyk-nav-bar__with-tabs":"")},t().createElement("div",{className:`tyk-nav-bar__wrapper tyk-nav-bar--align-${e}`},s&&t().createElement("div",{className:"tyk-nav-bar__pre"},s),r?t().createElement("div",null,t().createElement("h1",null,r),c):c,t().createElement("div",{className:"tyk-nav-bar__container"},o&&t().createElement("div",{className:"tyk-nav-bar__left"},o),i&&t().createElement("div",{className:"tyk-nav-bar__right"},i))),n)}zt.propTypes={align:r().string,children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),title:r().string,subtitle:r().string,pre:r().oneOfType([r().element,r().node]),left:r().oneOfType([r().element,r().node]),right:r().oneOfType([r().element,r().node]),withTabs:r().bool};const Vt=zt;function Ut({children:e}){return t().createElement("li",{className:"tyk-navigation-item"},e)}Ut.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string])};const Gt=Ut;function Kt({children:e}){return t().createElement("ul",{className:"tyk-navigation"},e)}Kt.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string])},Kt.Item=Gt;const qt=Kt,Yt=(0,e.createContext)();var Jt=Object.defineProperty,Xt=Object.defineProperties,Qt=Object.getOwnPropertyDescriptors,Zt=Object.getOwnPropertySymbols,en=Object.prototype.hasOwnProperty,tn=Object.prototype.propertyIsEnumerable,nn=(e,t,n)=>t in e?Jt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,on=(e,t)=>{for(var n in t||(t={}))en.call(t,n)&&nn(e,n,t[n]);if(Zt)for(var n of Zt(t))tn.call(t,n)&&nn(e,n,t[n]);return e},rn=(e,t)=>Xt(e,Qt(t));function sn(n){var o=n,{children:i,noPadding:r,className:s}=o,a=((e,t)=>{var n={};for(var o in e)en.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Zt)for(var o of Zt(e))t.indexOf(o)<0&&tn.call(e,o)&&(n[o]=e[o]);return n})(o,["children","noPadding","className"]);const l=(0,e.useCallback)((()=>["tyk-panel__body",s,r&&"no-padding"].filter(Boolean).join(" ")),[s,r]);return t().createElement(Yt.Consumer,null,(e=>e.collapsable?t().createElement(R,rn(on({},a),{collapsed:e.collapsed,className:l()}),i):t().createElement("div",rn(on({},a),{className:l()}),i)))}sn.propTypes={children:r().oneOfType([r().element,r().node,r().string]),noPadding:r().bool,className:r().string};const an=sn;function ln(e){const{children:n}=e;return t().createElement("div",{className:"tyk-panel__footer"},n)}ln.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const cn=ln;class un extends e.Component{getCssClasses(e){const{className:t}=this.props;let n=["tyk-panel__header"];return e.collapsable&&n.push("collapsable"),t&&(n=n.concat(t.split(" "))),n.join(" ")}render(){const{children:e}=this.props;return t().createElement(Yt.Consumer,null,(n=>{const o="blank"===n.theme?"h3":"div",i=n.collapsed?"chevron-down":"chevron-up";return t().createElement(o,{className:this.getCssClasses(n),onClick:n.collapsable?n.onToggle:void 0},e,n.collapsable?t().createElement("div",{className:`collapsable__arrow-${n.collapsibleIconPosition}`},t().createElement(g,{type:i})):null)}))}}un.propTypes={children:r().oneOfType([r().element,r().node,r().string]).isRequired,className:r().string};const hn=un;function dn(n){const{children:o,className:i,collapsed:r,collapsable:s,theme:a,onToggleCollapse:l,collapsibleIconPosition:c="right"}=n,[u,h]=(0,e.useState)(r||!1);(0,e.useEffect)((()=>{r!==u&&h(r)}),[r]);const d=(0,e.useCallback)((()=>{h(!u),l&&l(!u)}),[u,l]),p=(0,e.useMemo)((()=>({collapsable:s,collapsed:u,onToggle:d,theme:a,collapsibleIconPosition:c})),[s,u,c,a,d]);return t().createElement("div",{className:(()=>{let e=["tyk-panel"];const t=`tyk-panel--${a||"default"}`,n=`tyk-panel__icon-collapse--${c}`;return e.push(t),e.push(n),i&&(e=e.concat(i.split(" "))),u&&e.push("tyk-panel--collapsed"),e.join(" ")})()},t().createElement(Yt.Provider,{value:p},"function"==typeof o?o({toggleCollapse:d}):o))}dn.propTypes={children:r().oneOfType([r().func,r().element,r().node,r().string]),className:r().string,collapsable:r().bool,collapsibleIconPosition:r().string,collapsed:r().bool,theme:r().string,onToggleCollapse:r().func},dn.Body=an,dn.Footer=cn,dn.Header=hn;const pn=dn;function gn(e){const{children:n,className:o,theme:i}=e;return t().createElement("div",{className:(()=>{let e=["tyk-pill",...i.split(" ").map((e=>`tyk-pill--${e}`))];return o&&(e=e.concat(o)),e.join(" ")})()},n)}gn.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,theme:r().string},gn.defaultProps={theme:"default"};const mn=gn;var fn,yn,vn,bn,wn,xn,kn,Cn,$n=(e,t,n)=>{if(!t.has(e))throw TypeError("Cannot "+n)},Sn=(e,t,n)=>($n(e,t,"read from private field"),n?n.call(e):t.get(e)),En=(e,t,n)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,n)},On=(e,t,n,o)=>($n(e,t,"write to private field"),o?o.call(e,n):t.set(e,n),n);class Tn{constructor(){En(this,fn,null),En(this,yn,null),En(this,vn,null),En(this,bn,null),En(this,wn,[]),En(this,xn,[]),En(this,kn,[]),En(this,Cn,!1)}on(e,t){let n=null;"onHeightChange"===e?n=Sn(this,wn):"onDragStart"===e?n=Sn(this,xn):"onDragEnd"===e&&(n=Sn(this,kn)),n&&this.addListener(n,t)}off(e,t){let n=null;"onHeightChange"===e?n=Sn(this,wn):"onDragStart"===e?n=Sn(this,xn):"onDragEnd"===e&&(n=Sn(this,kn)),n&&this.removeListener(n,t)}setRefs(e,t,n){(Sn(this,yn)||Sn(this,vn)||Sn(this,bn))&&this.unbindEvents(),On(this,bn,e),On(this,yn,t),On(this,vn,n),On(this,fn,null),this.bindEvents()}bindEvents(){this.ensureRefs("bindEvents"),Sn(this,vn).addEventListener("mousedown",this.onMouseDown.bind(this)),document.addEventListener("mousemove",this.onMouseMove.bind(this)),document.addEventListener("mouseup",this.onMouseUp.bind(this))}getHeight(){return this.ensureRefs("getHeight"),Sn(this,yn).getBoundingClientRect().height}onMouseDown(e){this.ensureRefs("onMouseDown"),On(this,fn,{mouseDown:!0,initialRect:Sn(this,yn).getBoundingClientRect(),initialEvent:e})}onMouseMove(e){if(this.ensureRefs("onMouseMove"),!Sn(this,fn))return;if(!this.isPrimaryMouseButtonDown(e))return void this.onMouseUp();Sn(this,Cn)||(On(this,Cn,!0),this.onDragStart.bind(this)());const t=Sn(this,fn).initialEvent.y-e.y,n=Math.ceil(Sn(this,fn).initialRect.height+t);this.setHeight(`${n}px`,"mousemove")}notifyListeners(e,t){e&&Array.isArray(e)&&e.length&&e.forEach((e=>{"function"==typeof e&&e(t)}))}addListener(e,t){e&&Array.isArray(e)&&"function"==typeof t&&e.push(t)}removeListener(e,t){if(e&&Array.isArray(e)&&"function"==typeof t&&e.length){const n=e.indexOf(t);n>-1&&e.splice(n,1)}}onDragEnd(){Sn(this,Cn)&&this.notifyListeners(Sn(this,kn),this.getHeight())}onDragStart(){this.notifyListeners(Sn(this,xn),this.getHeight())}isPrimaryMouseButtonDown(e){return 1===(void 0!==e.buttons?e.buttons:e.which)}onMouseUp(){On(this,fn,null),this.onDragEnd.bind(this)(),On(this,Cn,!1)}setHeight(e){let t=e;this.ensureRefs("setHeight"),"number"==typeof t&&(t+="px"),Sn(this,yn).style.height=t,this.notifyListeners(Sn(this,wn),this.getHeight())}ensureRefs(e){if(!Sn(this,yn)||!Sn(this,vn)||!Sn(this,bn))throw new Error(`${e}: Wrapper, panel, and gutter elements are required. Use setRefs method first.`)}isHidden(){return this.ensureRefs("isHidden"),"hidden"===Sn(this,bn).style.visibility}hide(){this.ensureRefs("hide"),Sn(this,bn).style.visibility="hidden"}show(){this.ensureRefs("show"),Sn(this,bn).style.visibility="visible"}unbindEvents(){On(this,wn,[]),On(this,xn,[]),On(this,kn,[]),Sn(this,vn).removeEventListener("mousedown",this.onMouseDown.bind(this)),document.removeEventListener("mousemove",this.onMouseMove.bind(this)),document.removeEventListener("mouseup",this.onMouseUp.bind(this))}deinit(){this.unbindEvents()}}function An({children:e}){return t().createElement(t().Fragment,null,e)}function _n({children:e}){return t().createElement(t().Fragment,null,e)}fn=new WeakMap,yn=new WeakMap,vn=new WeakMap,bn=new WeakMap,wn=new WeakMap,xn=new WeakMap,kn=new WeakMap,Cn=new WeakMap,An.propTypes={children:r().instanceOf({})},_n.propTypes={children:r().instanceOf({})};const Ln=(...e)=>e.map((e=>(e||"").trim())).filter(Boolean).join(" ");function Mn({children:n,height:o,onHeightChange:i=null,onDragStart:r=null,onDragEnd:s=null,style:a=null,parentSelector:l=null,contentStyle:c,contentClassName:u,gutterClassName:h,wrapperClassName:d},p){const g=(0,e.useRef)(null),m=(0,e.useRef)(null),f=(0,e.useRef)(null),y=(0,e.useRef)(new Tn).current;(0,e.useEffect)((()=>{if(g.current&&m.current&&f.current&&y)return y.setRefs(f.current,g.current,m.current),y.on("onHeightChange",i),y.on("onDragStart",r),y.on("onDragEnd",s),y.setHeight(o,"initialize"),()=>{y.unbindEvents()}}),[]),(0,e.useImperativeHandle)(p,(()=>{const e=e=>e.bind(y);return{getHeight:e(y.getHeight),setHeight:e(y.setHeight),hide:e(y.hide),show:e(y.show),isHidden:e(y.isHidden),deinit:e(y.deinit),on:e(y.on),off:e(y.off)}}),[]);let v=null,b=null;const w=[];t().Children.forEach(n,(e=>{e&&t().isValidElement(e)&&(e.type===An?v=e:e.type===_n?b=e:w.push(e))}));const x=t().createElement("div",{className:Ln("tyk-ui-reveal-wrapper",d||"cem"),ref:f,style:a},t().createElement("div",{className:"tyk-ui-reveal-wrapper__hole"}),t().createElement("div",{ref:m,className:Ln("tyk-ui-reveal-wrapper__gutter",h)},t().createElement("div",{className:"tyk-ui-reveal-wrapper__gutter__headerleft"},v),t().createElement("div",{className:"tyk-ui-reveal-wrapper__gutter__logo"}," "),t().createElement("div",{className:"tyk-ui-reveal-wrapper__gutter__headerright"},b)),t().createElement("div",{ref:g,className:Ln("tyk-ui-reveal-wrapper__panel",u),style:c},w));if(l)return(0,ht.createPortal)(x,document.querySelector(l))}Mn.propTypes={children:r().instanceOf({}),height:r().string,onHeightChange:r().func,onDragStart:r().func,onDragEnd:r().func,parentSelector:r().string,style:r().instanceOf({}),contentStyle:r().instanceOf({}),contentClassName:r().string,gutterClassName:r().string,wrapperClassName:r().string};const Rn=(0,e.forwardRef)(Mn);Rn.HeaderLeft=An,Rn.HeaderRight=_n;const Nn=Rn,In=(0,e.createContext)(),Pn=(0,e.createContext)();var Dn=Object.defineProperty,Fn=Object.getOwnPropertySymbols,Bn=Object.prototype.hasOwnProperty,Wn=Object.prototype.propertyIsEnumerable,Hn=(e,t,n)=>t in e?Dn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,jn=(e,t)=>{for(var n in t||(t={}))Bn.call(t,n)&&Hn(e,n,t[n]);if(Fn)for(var n of Fn(t))Wn.call(t,n)&&Hn(e,n,t[n]);return e};function zn(n){const{addTab:o,hideTab:i,updateTab:r,showTab:s,children:a,selectedPath:l,tabData:c,tabsId:u,tabExists:h,path:d,rendered:p,hideTabContent:g,tabs:m}=n;(0,e.useEffect)((()=>{const e=jn({},c);h(d)||o(e,d)}),[c,d]);const f=me(c);(0,e.useEffect)((()=>{if(h(d)&&(null==c?void 0:c.title)&&((null==f?void 0:f.title)!==(null==c?void 0:c.title)||(null==f?void 0:f.selected)!==c.selected)){const e=jn({},c);r(e,d)}}),[c,d,f,m]),(0,e.useEffect)((()=>(s(d),()=>i(d))),[]);const y=(0,e.useMemo)((()=>!!Object.keys(m).length&&!g&&!1!==m[c.id].show&&(p?l&&l.indexOf(c.id)>-1:h(d))),[g,p,l,c,m]),v=(0,e.useMemo)((()=>({path:d,tabsId:u})),[d,u]);return y?t().createElement("div",{key:c.id,className:"tyk-tab__content",style:{display:l&&l.indexOf(c.id)>-1?"block":"none"}},t().createElement(Pn.Provider,{value:v},a)):null}zn.propTypes={addTab:r().func,updateTab:r().func,hideTab:r().func,showTab:r().func,children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),path:r().instanceOf(Array),hideTabContent:r().bool,rendered:r().bool,selectedPath:r().instanceOf(Array),tabExists:r().func,tabsId:r().string,tabData:r().instanceOf(Object),tabs:r().instanceOf(Object)};const Vn=zn;function Un(n){const{id:o}=n,i=(0,e.useContext)(In),r=(0,e.useContext)(Pn),{tabExists:s,selectedPath:a,addTab:l,updateTab:c,hideTab:u,showTab:h,rendered:d,hideTabContent:p,tabs:g}=i,{children:m}=n,[f,y]=(0,e.useState)("");return(0,e.useEffect)((()=>{let e;e=r&&f&&r.tabsId===i.id?r.path.concat([o]):[o],y(e)}),[r]),f?t().createElement(Vn,{addTab:l,updateTab:c,hideTab:u,showTab:h,tabExists:s,tabData:n,path:f,tabsId:i.id,selectedPath:a,rendered:d,hideTabContent:p,tabs:g},m):null}Un.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),id:r().string},Un.defaultProps={};const Gn=Un;var Kn=Object.defineProperty,qn=Object.getOwnPropertySymbols,Yn=Object.prototype.hasOwnProperty,Jn=Object.prototype.propertyIsEnumerable,Xn=(e,t,n)=>t in e?Kn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Qn=(e,t)=>{for(var n in t||(t={}))Yn.call(t,n)&&Xn(e,n,t[n]);if(qn)for(var n of qn(t))Jn.call(t,n)&&Xn(e,n,t[n]);return e};function Zn(n){const{children:o,className:i,id:r,onTabChange:s,type:a,hideTabContent:l}=n,[c,u]=(0,e.useState)({}),[h,d]=(0,e.useState)([]),[p,m]=(0,e.useState)(!1),[f,y]=(0,e.useState)(null);(0,e.useEffect)((()=>{d(f)}),[f]);const v=(e,t)=>{const n=e.slice(0);let o=!0;t.collapsible&&(n.push(Object.keys(t.tabs)[0]),o=!1),u((t=>{let n=Qn({},t);return n=((e,t)=>{let n=Qn({},e);const o=t.slice(0);for(;o.length>1;)n=n[o.shift()];const i=o.shift();return void 0===n[i].collapsed?n[i].collapsed=!0:n[i].collapsed=!n[i].collapsed,n})(n,e),n})),d(n),m(o),s&&s(t)},b=e=>{const t=[];return h&&h.indexOf(e)>-1&&t.push("active"),t.join(" ")},w=(e,n)=>e?t().createElement("ul",null,Object.keys(e).map(((o,i)=>{const r=n?n.concat([e[o].id]):[e[o].id],s=e[o].collapsed?"chevron-up":"chevron-down";return!1===e[o].show?null:t().createElement("li",{className:b(e[o].id),key:e[o].id},t().createElement("button",{type:"button",onClick:v.bind(null,r,e[o]),onKeyDown:v.bind(null,r,e[o]),tabIndex:i},e[o].title,e[o].collapsible?t().createElement(g,{className:"collapsable-arrow",type:s}):null),e[o].collapsible?t().createElement(R,{collapsed:e[o].collapsed},w(e[o].tabs,r)):w(e[o].tabs,r))}))):null,x=(e,t)=>{u((n=>((e,t,n)=>{let o=Qn({},e);const i=Qn({},n),r=t.slice(0);for(;r.length>1;)o=o[r.shift()],o||(o={});return i.tempPath=r,o[r.shift()]=i,o})(Qn({},n),t,e))),e.selected&&y(t)},k=(e,t)=>{u((t=>{const n=Qn({},t);return n[e.id]=e,n})),e.selected&&v(t,e)},C=e=>{u((t=>{const n=Qn({},t);return n[e].show=!1,n}))},$=e=>{u((t=>{const n=Qn({},t);return n[e].show=!0,n}))},S=e=>{let t=Qn({},c);const n=e.slice(0);for(;n.length>1;)t=t[n.shift()];const o=n.shift();return Boolean(null==t?void 0:t[o])},E=(0,e.useMemo)((()=>({id:r,addTab:x,hideTab:C,updateTab:k,showTab:$,tabExists:S,selectedPath:h,rendered:p,hideTabContent:l,tabs:c})),[r,x,C,k,$,S,h,p,l,c]);return t().createElement("div",{className:(()=>{let e=["tyk-tabs"];return e.push(`tyk-tabs--${a||"default"}`),i&&(e=e.concat(i.split(" "))),e.join(" ")})()},w(c),t().createElement(In.Provider,{value:E},"function"==typeof o?o({hideTab:C,showTab:$}):o))}Zn.propTypes={className:r().string,children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),hideTabContent:r().bool,id:r().string,onTabChange:r().func,type:r().string},Zn.Tab=Gn;const eo=Zn;var to=Object.defineProperty,no=Object.getOwnPropertySymbols,oo=Object.prototype.hasOwnProperty,io=Object.prototype.propertyIsEnumerable,ro=(e,t,n)=>t in e?to(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,so=(e,t)=>{for(var n in t||(t={}))oo.call(t,n)&&ro(e,n,t[n]);if(no)for(var n of no(t))io.call(t,n)&&ro(e,n,t[n]);return e};function ao(n){var o=n,{render:i,className:r,children:s,position:a="auto",style:l,icon:c=!1,closable:u,isOpened:h=!1,additionalClickParents:d=[]}=o,p=((e,t)=>{var n={};for(var o in e)oo.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&no)for(var o of no(e))t.indexOf(o)<0&&io.call(e,o)&&(n[o]=e[o]);return n})(o,["render","className","children","position","style","icon","closable","isOpened","additionalClickParents"]);const[m,f]=(0,e.useState)(!1),y=(0,e.useRef)(null),v=(0,e.useRef)(null),b=u?{onClick:()=>f(!0)}:{onMouseEnter:()=>f(!0),onMouseLeave:()=>f(!1),onFocus:()=>f(!0),onBlur:()=>f(!1)},w=(0,e.useCallback)((e=>{[...d,v.current].some((t=>{var n;return null==(n=null==t?void 0:t.contains)?void 0:n.call(t,e.target)}))||f(!1)}),[d]);(0,e.useEffect)((()=>(document.addEventListener("click",w,!0),()=>document.removeEventListener("click",w,!0))),[w]),(0,e.useEffect)((()=>{f(h)}),[h]);const x=["tyk-tooltip",r].filter(Boolean).join(" ");return t().createElement("div",so(so({className:"tyk-tooltip__wrapper",style:so({display:"inline-block"},l),ref:y},b),p),s,m&&t().createElement(Pt,{element:y,forceDisplay:a,preferredPosition:"top",offset:20},t().createElement("div",{className:x,ref:v},c&&(!0===c?t().createElement(g,{type:"question"}):c),t().createElement("div",{className:"tyk-tooltip__content"},i),u&&t().createElement(g,{type:"xmark",onClick:e=>{e.stopPropagation(),f(!1)}}))))}ao.propTypes={children:r().node.isRequired,style:r().instanceOf(Object),position:r().string,render:r().oneOfType([r().node,r().string]),className:r().string,icon:r().oneOfType([r().bool,r().node]),closable:r().bool,isOpened:r().bool,additionalClickParents:r().instanceOf(Array)};const lo=ao;function co({text:e,limit:n,position:o}){return e.length>n?t().createElement(lo,{render:e,position:o},e.substring(0,n),"..."):e}co.propTypes={text:r().string,limit:r().number,position:r().string};const uo=co;function ho(n){const{value:o=0,totalNrOfPages:i,onChange:r}=n,[s,a]=(0,e.useState)(o),l=(0,e.useMemo)((()=>function(e,t){let n;const o=[];for(n=0;n<=e;n+=1)i=n,r=t,((s=e)<10||r<5&&i<5||r>s-5&&i>s-5||i>=r-2&&i<=r+2||[0,1,s-1,s].includes(i))&&(n>o.at(-1)&&o.push(`...-${n}`),o.push(n+1));var i,r,s;return o}(i,s)),[s,i]);function c(e){a(e),r&&r(e)}return i?t().createElement("ul",{className:"tyk-pagination"},s>0&&i>5&&t().createElement("li",null,t().createElement("button",{onClick:()=>c(s-1),type:"button"},"Previous")),l.map((e=>t().createElement("li",{key:e,className:s===e-1?"active":""},String(e).startsWith("...")?t().createElement("span",null,"..."):t().createElement("button",{onClick:()=>c(e-1),type:"button"},e)))),s5&&t().createElement("li",null,t().createElement("button",{onClick:()=>c(s+1),type:"button"},"Next"))):null}ho.propTypes={value:r().number,totalNrOfPages:r().number,onChange:r().func};const po=ho,go=(0,e.createContext)();function mo({column:n}){const{sortable:o}=n,[i,r]=(0,e.useState)((null==o?void 0:o.default)||"ASC"),{state:s,sendMessage:a}=(0,e.useContext)(go);return t().createElement("th",{key:n.id,onClick:o?()=>{a("sort",{column:n,sortOrder:i}),r("ASC"===i?"DESC":"ASC")}:null,className:s.maxHeight?"fixed-header":""},n.name,n.sortable&&t().createElement("span",{className:"header-sort"},t().createElement(g,{family:"tykon",type:"arrowsort"})))}mo.propTypes={column:r().instanceOf(Object)};var fo=Object.defineProperty,yo=Object.defineProperties,vo=Object.getOwnPropertyDescriptors,bo=Object.getOwnPropertySymbols,wo=Object.prototype.hasOwnProperty,xo=Object.prototype.propertyIsEnumerable,ko=(e,t,n)=>t in e?fo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Co=(e,t)=>{for(var n in t||(t={}))wo.call(t,n)&&ko(e,n,t[n]);if(bo)for(var n of bo(t))xo.call(t,n)&&ko(e,n,t[n]);return e},$o=(e,t)=>yo(e,vo(t));function So({allRowsSelected:n}){const{state:o,sendMessage:i}=(0,e.useContext)(go),{columns:r,selectable:s}=o,a=()=>{var e;const r=s.type;return t().createElement("th",{className:o.maxHeight?"fixed-header":""},(null==s?void 0:s.allowSelectAll)?t().createElement("div",{className:null==s?void 0:s.style},t().createElement(r,$o(Co({},s.values),{value:n,onChange:e=>{var t,n;const o="input"===(null==(t=null==e?void 0:e.target)?void 0:t.tagName.toLowerCase())&&"checkbox"===(null==(n=null==e?void 0:e.target)?void 0:n.type.toLowerCase());i("header.selectAll.change",o?e.target.checked:Boolean(e))}}),null==(e=s.values)?void 0:e.value)):s.name||"Select")};return t().createElement("thead",null,t().createElement("tr",null,"LEFT"===(null==s?void 0:s.position)&&a(),r.map((e=>t().createElement(mo,{key:e.id,column:e}))),"RIGHT"===(null==s?void 0:s.position)&&a()))}So.propTypes={allRowsSelected:r().bool};var Eo=Object.defineProperty,Oo=Object.defineProperties,To=Object.getOwnPropertyDescriptors,Ao=Object.getOwnPropertySymbols,_o=Object.prototype.hasOwnProperty,Lo=Object.prototype.propertyIsEnumerable,Mo=(e,t,n)=>t in e?Eo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ro=(e,t)=>{for(var n in t||(t={}))_o.call(t,n)&&Mo(e,n,t[n]);if(Ao)for(var n of Ao(t))Lo.call(t,n)&&Mo(e,n,t[n]);return e};class No extends e.Component{getCssClasses(){const{inline:e,disabled:t,readOnly:n,theme:o="",wrapperClassName:i=""}=this.props,r=[i];return r.push("tyk-checkbox"),e&&r.push("tyk-checkbox--inline"),o.trim()&&r.push(...o.split(" ").map((e=>`tyk-checkbox--theme-${e}`))),(t||n)&&r.push("tyk-checkbox--is-disabled"),r.join(" ")}displayError(){const{error:e}=this.props;return e?t().createElement("p",{className:"tyk-form-control__error-message"},e):null}displayNote(){const{note:e}=this.props;return e?t().createElement("p",{className:"tyk-form-control__help-block"},e):null}render(){const e=this.props,{input:n,value:o,label:i}=e,r=((e,t)=>{var n={};for(var o in e)_o.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ao)for(var o of Ao(e))t.indexOf(o)<0&&Lo.call(e,o)&&(n[o]=e[o]);return n})(e,["input","value","label"]);return t().createElement("div",{className:this.getCssClasses()},t().createElement("div",{className:"tyk-form-control__wrapper"},t().createElement("label",null,t().createElement("input",(s=Ro(Ro({checked:n?n.value:o},n),r),Oo(s,To({type:"checkbox"})))),i),this.displayNote(),this.displayError()));var s}}No.propTypes={disabled:r().bool,readOnly:r().bool,inline:r().bool,theme:r().string,error:r().oneOfType([r().string,r().bool]),note:r().string,input:r().instanceOf(Object),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),name:r().string,value:r().oneOfType([r().string,r().bool]),checked:r().oneOfType([r().string,r().bool]),onChange:r().func,wrapperClassName:r().string};const Io=No;var Po=Object.defineProperty,Do=Object.getOwnPropertySymbols,Fo=Object.prototype.hasOwnProperty,Bo=Object.prototype.propertyIsEnumerable,Wo=(e,t,n)=>t in e?Po(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ho=(e,t)=>{for(var n in t||(t={}))Fo.call(t,n)&&Wo(e,n,t[n]);if(Do)for(var n of Do(t))Bo.call(t,n)&&Wo(e,n,t[n]);return e};function jo({col:e,row:n}){var o,i,r,s,a;if(!n.values[e.id])return t().createElement("td",null);if("string"===e.type)return t().createElement("td",Ho({className:(null==(o=n.values[e.id].styling)?void 0:o.className)||null},null==(i=n.values[e.id])?void 0:i.events),null==(r=n.values[e.id])?void 0:r.value);const l=e.type;return t().createElement("td",Ho({className:(null==(s=n.values[e.id].styling)?void 0:s.className)||null},null==(a=n.values[e.id])?void 0:a.events),t().createElement(l,Ho({},n.values[e.id].props),n.values[e.id].children?n.values[e.id].children:null))}function zo({row:n,index:o}){var i,r;const{state:s,sendMessage:a}=(0,e.useContext)(go),{columns:l,selectable:c}=s,u=(0,e.useCallback)((()=>t().createElement("td",null,t().createElement(Io,{value:n.selected,onChange:e=>a("row.selected",{index:o,selected:e.target.checked})}))),[n.selected,o]);return t().createElement("tr",{onClick:null==(i=n.events)?void 0:i.onClick,className:null==(r=n.styling)?void 0:r.className},c&&"LEFT"===c.position&&u(),l.map((e=>t().createElement(jo,{key:e.id,col:e,row:n,index:o}))),c&&"RIGHT"===c.position&&u())}function Vo(){const{state:n}=(0,e.useContext)(go),{rows:o}=n;return t().createElement("tbody",null,o.map(((e,n)=>t().createElement(zo,{key:n,row:e,index:n}))))}jo.propTypes={col:r().instanceOf(Object),row:r().instanceOf(Object),index:r().number},zo.propTypes={row:r().instanceOf(Object),index:r().number};var Uo=Object.defineProperty,Go=Object.defineProperties,Ko=Object.getOwnPropertyDescriptors,qo=Object.getOwnPropertySymbols,Yo=Object.prototype.hasOwnProperty,Jo=Object.prototype.propertyIsEnumerable,Xo=(e,t,n)=>t in e?Uo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Qo=(e,t)=>{for(var n in t||(t={}))Yo.call(t,n)&&Xo(e,n,t[n]);if(qo)for(var n of qo(t))Jo.call(t,n)&&Xo(e,n,t[n]);return e},Zo=(e,t)=>Go(e,Ko(t));function ei({value:n,onChange:o,noDataMessage:i,loading:r,infiniteScrolling:s}){var a;const[l,c]=(0,e.useState)(null),[u,h]=(0,e.useState)("api"),d=(0,e.useRef)(null),p=(0,e.useCallback)(((e,t)=>{c((n=>Zo(Qo({},n),{sort:{order:t,col:e}})))}),[]),g=(0,e.useCallback)((e=>{c((t=>Zo(Qo({},t),{rows:t.rows.map((t=>Zo(Qo({},t),{selected:e})))})))}),[]),m=(0,e.useCallback)((({index:e,selected:t})=>{c((n=>Zo(Qo({},n),{rows:[...n.rows.slice(0,e),Zo(Qo({},n.rows[e]),{selected:t}),...n.rows.slice(e+1)]})))}),[]),f=(0,e.useCallback)((e=>{c((t=>Zo(Qo({},t),{pagination:Zo(Qo({},t.pagination),{current:e+1})})))}),[]),y={getState:()=>l,setState:e=>c(e)},v=(0,e.useCallback)(((e,t)=>{h(e),"sort"===e&&p(t.column.id,t.sortOrder),"header.selectAll.change"===e&&g(t),"row.selected"===e&&m(t),"pagination.change"===e&&f(t)}),[p,g,m,f]),b=(0,e.useMemo)((()=>({state:l,sendMessage:v})),[l,v]);if((0,e.useEffect)((()=>c(n)),[n]),(0,e.useEffect)((()=>{o&&o(u,l,y),h("api")}),[l]),!l)return t().createElement(ye,{position:"absolute"});if(l.rows<=0)return t().createElement(be,{theme:"info"},i||"No Data Available");const w=()=>t().createElement("table",{className:"tyk-table",ref:d},t().createElement(So,{allRowsSelected:l.rows.every((({selected:e})=>e))}),t().createElement(Vo,null));return t().createElement(go.Provider,{value:b},t().createElement("div",{className:`scrollable ${(null==(a=l.styling)?void 0:a.className)||""}`,style:{height:l.maxHeight?l.maxHeight:"auto",position:"relative"}},r&&t().createElement(ye,{position:"absolute",withbackground:!0}),s&&l.pagination?t().createElement(At,{refChild:d,hasMore:l.pagination.totalPages>l.pagination.current,loadMore:e=>v("pagination.change",e),pageNumber:l.pagination.current-1,initialLoad:!1},w()):w()),l.pagination&&!s&&t().createElement("div",{className:"new-table-pagination"},t().createElement(po,{value:l.pagination.current-1,nrItemsOnPage:l.pagination.perPage-1,totalNrOfPages:l.pagination.totalPages-1,onChange:e=>v("pagination.change",e)})))}ei.propTypes={value:r().shape({columns:r().arrayOf(r().shape({id:r().string.isRequired,name:r().string,type:r().oneOfType([r().string,r().element,r().func]),sortable:r().oneOfType([r().bool,r().shape({default:r().string})])})),rows:r().arrayOf(r().shape({})),selectable:r().shape({}),pagination:r().shape({}),maxHeight:r().string,styling:r().shape({className:r().string})}).isRequired,onChange:r().func,noDataMessage:r().string,loading:r().bool,infiniteScrolling:r().bool},ei.defaultProps={loading:!1,infiniteScrolling:!1,noDataMessage:"No Data Available",onChange:null};const ti=ei;var ni=Object.defineProperty,oi=Object.getOwnPropertySymbols,ii=Object.prototype.hasOwnProperty,ri=Object.prototype.propertyIsEnumerable,si=(e,t,n)=>t in e?ni(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function ai(e){var n=e,{children:o,align:i,className:r,offset:s,size:a}=n,l=((e,t)=>{var n={};for(var o in e)ii.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&oi)for(var o of oi(e))t.indexOf(o)<0&&ri.call(e,o)&&(n[o]=e[o]);return n})(n,["children","align","className","offset","size"]);const c=["tyk-col",r,i&&`tyk-col--align-${i}`,...a.split(" ").map((e=>`tyk-col--${e}`)),...(s?s.split(" "):[]).map((e=>`tyk-col--offset-${e}`))].filter(Boolean).join(" ");return t().createElement("div",((e,t)=>{for(var n in t||(t={}))ii.call(t,n)&&si(e,n,t[n]);if(oi)for(var n of oi(t))ri.call(t,n)&&si(e,n,t[n]);return e})({className:c},l),o)}ai.propTypes={align:r().string,className:r().string,size:r().string.isRequired,offset:r().string,children:r().oneOfType([r().element,r().string,r().object,r().node])};const li=ai;var ci=Object.defineProperty,ui=Object.defineProperties,hi=Object.getOwnPropertyDescriptors,di=Object.getOwnPropertySymbols,pi=Object.prototype.hasOwnProperty,gi=Object.prototype.propertyIsEnumerable,mi=(e,t,n)=>t in e?ci(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function fi(e){var n=e,{className:o,nogutters:i,children:r}=n,s=((e,t)=>{var n={};for(var o in e)pi.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&di)for(var o of di(e))t.indexOf(o)<0&&gi.call(e,o)&&(n[o]=e[o]);return n})(n,["className","nogutters","children"]);const a=["tyk-row",o,i&&"no-gutters",i&&"tyk-row--gutterless"].filter(Boolean).join(" ");return t().createElement("div",(l=((e,t)=>{for(var n in t||(t={}))pi.call(t,n)&&mi(e,n,t[n]);if(di)for(var n of di(t))gi.call(t,n)&&mi(e,n,t[n]);return e})({},s),ui(l,hi({className:a}))),r);var l}fi.propTypes={children:r().oneOfType([r().element,r().node]),className:r().string,nogutters:r().bool};const yi=fi,vi=(0,e.createContext)();function bi(n){const{customdropdownitem:o,children:i,eventKey:r,href:s,target:a,title:l,onClick:c}=n,u=(0,e.useCallback)(((e,t)=>{e.onSelectItem(r,t),c&&c(r)}),[]);return t().createElement(vi.Consumer,null,(c=>t().createElement("li",{onClick:()=>u(c,n),onKeyUp:()=>{}},o?(0,e.cloneElement)(o,{}):t().createElement("a",{href:s,target:a},r&&c.selectedItem===r&&c.showCheckmark?t().createElement(g,{type:"check"}):null,t().createElement("span",null,l||i)))))}bi.propTypes={children:r().oneOfType([r().element,r().node,r().string]),customdropdownitem:r().oneOfType([r().arrayOf(r().node),r().node,r().element]),eventKey:r().string,href:r().string,target:r().string,onClick:r().func,title:r().string};const wi=bi;var xi=Object.defineProperty,ki=Object.getOwnPropertySymbols,Ci=Object.prototype.hasOwnProperty,$i=Object.prototype.propertyIsEnumerable,Si=(e,t,n)=>t in e?xi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Ei extends e.Component{static isElemInRightView(e,t){const n=window.innerWidth;return e.getBoundingClientRect().left+t<=n}static isElemInBottomView(e,t){const n=window.innerHeight,o=e.getBoundingClientRect(),i=e.clientHeight;return o.top+i+t<=n}constructor(t){super(t);const{selectedItem:n,open:o}=this.props;this.state={opened:o,selectedItem:n||null},this.dropdownRef=(0,e.createRef)(),this.dropdownListRef=(0,e.createRef)(),this.dropdownButtonRef=(0,e.createRef)(),this.onSelectItem=this.onSelectItem.bind(this),this.toggleDropdown=this.toggleDropdown.bind(this),this.handleClickOutside=this.handleClickOutside.bind(this)}componentDidMount(){document.addEventListener("mousedown",this.handleClickOutside),this.dropdownListRef.current&&this.getStyles()}componentDidUpdate(e){const{open:t}=this.props,{opened:n}=this.state;this.dropdownListRef.current&&this.getStyles(),e.open||!0!==t||n||this.toggleDropdown(),e.open&&!1===t&&n&&this.closeDropdown()}componentWillUnmount(){document.removeEventListener("mousedown",this.handleClickOutside)}handleClickOutside(e){this.dropdownListRef.current&&!this.dropdownListRef.current.contains(e.target)&&this.dropdownRef.current&&!this.dropdownRef.current.contains(e.target)&&this.closeDropdown()}onSelectItem(e,t){const{closeOnSelect:n,onSelect:o}=this.props,i={selectedItem:e,selectedItemProps:t};n&&(i.opened=!1),this.setState(i),o&&"function"==typeof o&&o(e)}getStyles(){const{display:e,position:t,offset:n}=this.props,o=this.dropdownListRef.current;if(n)return o.style.top=`${n.top}`,void(o.style.left=`${n.left}`);const i=Math.max(document.documentElement.scrollTop,document.body.scrollTop,window.scrollY),r=this.dropdownRef.current,s=r.clientHeight,a=o?o.clientHeight:0,l=o?o.clientWidth:0,c=r.getBoundingClientRect(),{left:u,top:h}=c;let d=0,p=u;d=Ei.isElemInBottomView(r,a)?h+i+s:h+i-a-5,Ei.isElemInRightView(r,l)||(p=u+r.clientWidth-l),"relative"!==t&&(o.style.top=`${d}px`,"block"!==e&&(o.style.left=`${p}px`)),"block"!==e&&(o.style.minWidth=`${this.dropdownButtonRef.current.clientWidth}px`)}getWrapperCssClasses(){const{btnGroup:e,btnGroupSize:t,className:n,btnTheme:o,wrapperClassName:i=""}=this.props;let r=[i,"tyk-dropdown"];return r.push(`theme-${o||"default"}`),n&&(r=r.concat(n.split(" "))),e&&(r.push("tyk-button-group"),r.push(t?`tyk-button-group--${t}`:"tyk-button-group--md")),r.join(" ")}getCssClasses(){const{opened:e}=this.state,{hasCustomContent:t,display:n,listclassnames:o,position:i,maxHeight:r}=this.props;let s=["tyk-dropdown-menu","tyk-dropdown"];return r&&s.push("tyk-dropdown--scrollable"),e&&s.push("opened"),o&&(s=s.concat(o.split(" "))),n&&s.push("tyk-dropdown--block"),t&&s.push("tyk-dropdown--custom"),"relative"===i&&s.push("tyk-dropdown--relative"),s.join(" ")}getBtnTitle(){const{btnTitle:e,stopButtonTextChange:t}=this.props,{selectedItemProps:n}=this.state;return!t&&(null==n?void 0:n.title)?n.title:e}closeDropdown(){const{onClose:e}=this.props;this.setState({opened:!1},(()=>{e&&e()}))}toggleDropdown(){const{opened:e}=this.state;e?this.closeDropdown():this.setState({opened:!0})}render(){const{appendTo:e,btnClassName:n,btnSize:o,customBtnTitle:i,hasCustomContent:r,btnTheme:s,children:a,label:l,showDropdownIcon:c,showTriggerButton:u,showCheckmark:h,disabled:d=!1,maxHeight:p}=this.props,{selectedItem:g,opened:m}=this.state,f=r?"div":"ul";return t().createElement("div",{className:this.getWrapperCssClasses(),ref:this.dropdownRef},l?t().createElement("label",{className:"font-family-medium"},l):null,u?t().createElement(U,{className:`tyk-dropdown__trigger ${m?"tyk-dropdown__trigger--opened ":" "} ${n}`,theme:s||"default",onClick:this.toggleDropdown,iconType:c?"chevron-down":null,iconPosition:"right",size:o||"md",type:"button",disabled:d,ref:this.dropdownButtonRef},i||this.getBtnTitle()):null,m?dt().createPortal(t().createElement(vi.Provider,{value:{onSelectItem:this.onSelectItem,selectedItem:g,showCheckmark:h}},m?t().createElement(f,((e,t)=>{for(var n in t||(t={}))Ci.call(t,n)&&Si(e,n,t[n]);if(ki)for(var n of ki(t))$i.call(t,n)&&Si(e,n,t[n]);return e})({className:this.getCssClasses(),ref:this.dropdownListRef},p&&{style:{maxHeight:p}}),"function"==typeof a?a({closeDropdown:this.closeDropdown.bind(this)}):a):null),document.querySelector(e||"body")):null)}}Ei.propTypes={appendTo:r().string,children:r().oneOfType([r().element,r().node,r().string,r().func]),closeOnSelect:r().bool,btnClassName:r().string,btnSize:r().string,btnGroupSize:r().string,btnTheme:r().string,btnTitle:r().oneOfType([r().node,r().element,r().string]),customBtnTitle:r().oneOfType([r().node,r().element,r().string]),btnGroup:r().bool,className:r().string,display:r().string,disabled:r().bool,hasCustomContent:r().bool,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),listclassnames:r().string,onClose:r().func,onSelect:r().func,open:r().bool,offset:r().instanceOf(Object),position:r().string,selectedItem:r().string,showDropdownIcon:r().bool,stopButtonTextChange:r().bool,showTriggerButton:r().bool,showCheckmark:r().bool,maxHeight:r().string,wrapperClassName:r().string},Ei.defaultProps={closeOnSelect:!1,showDropdownIcon:!0,showTriggerButton:!0,showCheckmark:!0,open:!1},Ei.Item=wi;const Oi=Ei;var Ti=Object.defineProperty,Ai=Object.getOwnPropertySymbols,_i=Object.prototype.hasOwnProperty,Li=Object.prototype.propertyIsEnumerable,Mi=(e,t,n)=>t in e?Ti(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Ri({title:e,theme:n="primary",splitTrigger:o,toggle:i,onTriggerClick:r,value:s},a){return o?t().createElement(K,{ref:a},t().createElement(U,((e,t)=>{for(var n in t||(t={}))_i.call(t,n)&&Mi(e,n,t[n]);if(Ai)for(var n of Ai(t))Li.call(t,n)&&Mi(e,n,t[n]);return e})({theme:n},r&&{onClick:()=>r(s)}),e),t().createElement(U,{className:"dropdown__trigger",iconType:"chevron-down",iconFamily:"tykon",iconPosition:"right",theme:n,onClick:i,iconOnly:!0})):t().createElement(U,{className:"dropdown__trigger",iconType:"chevron-down",iconFamily:"tykon",iconPosition:"right",theme:n,ref:a,onClick:i},e)}Ri.propTypes={title:r().string,theme:r().string,splitTrigger:r().bool,toggle:r().func,dropdownRef:r().shape({current:r().instanceOf(Element)}).isRequired,onTriggerClick:r().func,value:r().oneOfType([r().string,r().number])};const Ni=(0,e.forwardRef)(Ri);var Ii=Object.defineProperty,Pi=Object.getOwnPropertySymbols,Di=Object.prototype.hasOwnProperty,Fi=Object.prototype.propertyIsEnumerable,Bi=(e,t,n)=>t in e?Ii(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Wi=(e,t)=>{for(var n in t||(t={}))Di.call(t,n)&&Bi(e,n,t[n]);if(Pi)for(var n of Pi(t))Fi.call(t,n)&&Bi(e,n,t[n]);return e};function Hi({children:e,element:n,maxWidth:o},i){return t().createElement(Pt,{element:n,ref:i,className:"dropdown__menu",position:"bottom",alignment:"auto",offset:5,arrow:!0},t().createElement(jt,{style:Wi({},o&&{maxWidth:o}),theme:"primary"},e))}Hi.propTypes={element:r().shape({current:r().instanceOf(Element)}),children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),maxWidth:r().string};const ji=(0,e.forwardRef)(Hi),zi=(0,e.createContext)();var Vi=Object.defineProperty,Ui=Object.getOwnPropertySymbols,Gi=Object.prototype.hasOwnProperty,Ki=Object.prototype.propertyIsEnumerable,qi=(e,t,n)=>t in e?Vi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Yi=(e,t)=>{for(var n in t||(t={}))Gi.call(t,n)&&qi(e,n,t[n]);if(Ui)for(var n of Ui(t))Ki.call(t,n)&&qi(e,n,t[n]);return e};function Ji({children:n,value:o}){const{onChange:i,value:r}=(0,e.useContext)(zi);return t().createElement(jt.Item,Yi({},o===r&&{selected:!0}),t().createElement("a",Yi({},i&&{onClick:()=>i(o)}),n))}Ji.propTypes={children:r().node,value:r().any};const Xi=Ji;function Qi({children:n,title:o,theme:i,splitTrigger:r,onChange:s,value:a,setSelectedValueAsTitle:l,maxWidth:c,onTriggerClick:u}){const{isOpen:h,toggle:d,dropdownRef:p,dropdownListRef:g}=(({splitTrigger:t})=>{const[n,o]=(0,e.useState)(!1),i=(0,e.useRef)(null),r=(0,e.useRef)(null),s=(0,e.useCallback)((e=>{const s=t?i.current.querySelector(".dropdown__trigger"):i.current;!n||s.contains(e.target)||r.current.contains(e.target)||o(!1)}),[n]);return(0,e.useEffect)((()=>(document.addEventListener("mousedown",s),()=>{document.removeEventListener("mousedown",s)})),[s]),{isOpen:n,toggle:()=>o(!n),dropdownRef:i,dropdownListRef:r}})({splitTrigger:r}),m=(0,e.useMemo)((()=>({onChange:s,value:a})),[s,a]);return t().createElement(zi.Provider,{value:m},t().createElement(Ni,{title:l?a:o,onTriggerClick:u,theme:i,splitTrigger:r,toggle:d,ref:p,value:a}),h&&t().createElement(ji,{element:p,ref:g,maxWidth:c},n))}Qi.propTypes={title:r().string,theme:r().string,children:r().node,splitTrigger:r().bool,onChange:r().func,value:r().oneOfType([r().string,r().number]),setSelectedValueAsTitle:r().bool,maxWidth:r().string,onTriggerClick:r().func},Qi.Item=Xi;const Zi=Qi;var er=n(239),tr=n.n(er);const nr=require("react-ace");var or=n.n(nr);n(395),n(576),n(7),n(549),n(252),n(202),n(711),n(604),n(134),n(203);const ir=n.p+"ee385296b124aae4e5d9.js";var rr=Object.defineProperty,sr=Object.defineProperties,ar=Object.getOwnPropertyDescriptors,lr=Object.getOwnPropertySymbols,cr=Object.prototype.hasOwnProperty,ur=Object.prototype.propertyIsEnumerable,hr=(e,t,n)=>t in e?rr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,dr=(e,t)=>{for(var n in t||(t={}))cr.call(t,n)&&hr(e,n,t[n]);if(lr)for(var n of lr(t))ur.call(t,n)&&hr(e,n,t[n]);return e};function pr(n){const{disabled:o,readOnly:i,disableValidation:r,id:s,error:a,label:l,labelwidth:c,note:u,onBlur:h,onChange:d,theme:p,value:g,setOptions:m,wrapperClassName:f}=n,y=["tyk-form-group",f,...p?p.split(" ").map((e=>`tyk-form-group--${e}`)):[],c&&"tyk-form-group--label-has-width",a&&"has-error"].filter(Boolean).join(" "),v=dr(dr({},m),r&&{useWorker:!1}),b=(0,e.useCallback)((()=>a&&"true"!==a&&"false"!==a?t().createElement("p",{className:"tyk-form-control__error-message"},a):null),[a]),w=(0,e.useCallback)((()=>c?{flexBasis:c}:{}),[c]),x=(0,e.useCallback)((()=>c?{flexBasis:`calc(100% - ${c} - 20px)`}:{}),[c]),k=(0,e.useCallback)((e=>{d&&d(e)}),[d]),C=(0,e.useCallback)((()=>{h&&h(g)}),[h,g]);return t().createElement("div",{className:y},l?t().createElement("label",{htmlFor:s,style:w()},l):null,t().createElement("div",{className:"tyk-form-control__wrapper",style:x()},t().createElement(or(),($=dr({className:"tyk-form-control"},n),sr($,ar({onChange:k,onBlur:C,theme:"github",editorProps:{$blockScrolling:!0},readOnly:i||o,onLoad:e=>{e.container.style.resize="both",document.addEventListener("mouseup",(()=>e.resize()))},setOptions:v})))),u?t().createElement("p",{className:"tyk-form-control__help-block"},u):null,b()));var $}tr().config.setModuleUrl("ace/mode/json_worker",ir),pr.propTypes={disabled:r().bool,readOnly:r().bool,disableValidation:r().bool,id:r().string,error:r().oneOfType([r().string,r().bool]),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,mode:r().string,name:r().string,note:r().string,onBlur:r().func,onChange:r().func,theme:r().string,value:r().string,setOptions:r().instanceOf(Object),wrapperClassName:r().string};const gr=pr;var mr=Object.defineProperty,fr=Object.defineProperties,yr=Object.getOwnPropertyDescriptors,vr=Object.getOwnPropertySymbols,br=Object.prototype.hasOwnProperty,wr=Object.prototype.propertyIsEnumerable,xr=(e,t,n)=>t in e?mr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,kr=(e,t)=>{for(var n in t||(t={}))br.call(t,n)&&xr(e,n,t[n]);if(vr)for(var n of vr(t))wr.call(t,n)&&xr(e,n,t[n]);return e};const Cr=(e,t,n)=>n||(e||t?[]:null);class $r extends e.Component{static closeList(){return{cursor:-1,opened:!1}}static openList(){return{opened:!0}}static filterByName(e,t){return e.name.toLowerCase().indexOf(t)>-1}constructor(t){super(t);const{multiple:n,tags:o,value:i}=t;this.state={cursor:-1,opened:!1,width:50,initialValue:i,stateSelectedValues:Cr(n,o,i),searchText:"",tags:o},this.comboboxRef=(0,e.createRef)(),this.valuesListRef=(0,e.createRef)(),this.inputRef=(0,e.createRef)(),this.textRef=(0,e.createRef)(),this.focusInput=this.focusInput.bind(this),this.onKeyUp=this.onKeyUp.bind(this),$r.openList=$r.openList.bind(this),this.handleClickOutside=this.handleClickOutside.bind(this),this.handleItemsNavigation=this.handleItemsNavigation.bind(this),this.handleComboboxDropdownClick=this.handleComboboxDropdownClick.bind(this),this.handleListItemClick=this.handleListItemClick.bind(this),this.handlePillRemoveClick=this.handlePillRemoveClick.bind(this),this.manageSelectedTags=this.manageSelectedTags.bind(this)}componentDidMount(){const{tags:e}=this.props;e&&this.setInputWidth(),this.bindEvents()}componentWillUnmount(){this.unBindEvents()}static getDerivedStateFromProps(e,t){return JSON.stringify(e.value)!==JSON.stringify(t.initialValue)||e.tags!==t.tags?{initialValue:e.value,stateSelectedValues:Cr(e.multiple,e.tags,e.value),tags:e.tags}:null}handleItemsNavigation(e){const{tags:t}=this.props;if(-1===["ArrowDown","ArrowUp"].indexOf(e.key))return;const{cursor:n}=this.state,o=this.filterValues();let i;if(e.preventDefault(),"ArrowDown"===e.key&&(-1===n||n===o.length-1?i=0:n0?n-1:o.length-1),this.valuesListRef.current&&i>4){const e=38*(i-4);this.valuesListRef.current.scrollTop=t?e:60+e}else this.valuesListRef.current&&(this.valuesListRef.current.scrollTop=0);this.setState((e=>{return t=kr({},e),fr(t,yr({opened:!0,cursor:i}));var t}))}handleListItemClick(e){if(this.props.values[e].disabled)return;const{multiple:t,tags:n}=this.props,o=n?"manageSelectedTags":"manageSelectedValues",i=kr(kr({},this.state),this[o](e));this.setState((e=>(t||n||(i.opened=!1),kr(kr({},e),i))))}handlePillRemoveClick(e){const{disabled:t}=this.props;if(t)return;const n=this.removeSelectedValue(e);this.setState((e=>kr(kr({},e),n)))}handleClickOutside(e){this.valuesListRef.current&&!this.valuesListRef.current.contains(e.target)&&this.comboboxRef.current&&!this.comboboxRef.current.contains(e.target)&&this.setState((e=>kr(kr({},e),$r.closeList())))}handleComboboxDropdownClick(){const{disabled:e}=this.props;e||this.setState((e=>kr(kr({},e),$r.openList())))}onKeyUp(e){const{tags:t,allowCustomValues:n}=this.props,{cursor:o,opened:i}=this.state,r=this.filterValues();let s=this.getSearchText();if(t&&"Escape"!==e.key&&(s=kr(kr({},s),this.setInputWidth())),"Enter"===e.key){const e=t?"manageSelectedTags":"manageSelectedValues";s=kr(kr({},s),this[e](o))}n&&" "!==e.key&&t&&(s=kr(kr({},s),this.manageSelectedTags())),!i&&this.inputRef.current.value&&(null==r?void 0:r.length)&&"Escape"!==e.key&&(s=kr(kr({},s),$r.openList())),"Escape"===e.key&&i&&(s=kr(kr({},s),$r.closeList())),i&&r&&!r.length&&(s=kr(kr({},s),$r.closeList())),this.setState((e=>kr(kr({},e),s)))}getLabelStyles(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=e),t}getNonLabelWidth(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=`calc(100% - ${e} - 20px)`),t}setInputWidth(){return{width:50+this.textRef.current.offsetWidth}}getSelectedIndex(e){const{stateSelectedValues:t}=this.state;let n=-1;return Array.isArray(t)?t.forEach(((t,o)=>{t.id===e.id&&(n=o)})):t&&t.id===e.id&&(n=0),n}getSearchText(){return{searchText:this.inputRef.current.value}}getListItemCssClasses(e,t){const n=[],{cursor:o}=this.state;return o===t&&n.push("active"),e.disabled&&n.push("disabled"),n.join(" ")}getComboboxListCssClass(){const{opened:e}=this.state,{tags:t,theme:n}=this.props,o=n?n.split(" "):[],i=["tyk-combobox__list"];return e&&i.push("tyk-combobox__list--opened"),t&&i.push("tyk-combobox__list--has-tags"),o.length&&o.forEach((e=>{i.push(`tyk-form-group--${e}`)})),i.join(" ")}getCssClasses(){const{error:e,disabled:t,theme:n,labelwidth:o}=this.props,i=["tyk-form-group","tyk-combobox"],r=n?n.split(" "):[];return e&&i.push("has-error"),o&&i.push("tyk-form-group--label-has-width"),r.length&&r.forEach((e=>{i.push(`tyk-form-group--${e}`)})),t&&i.push("disabled"),i.join(" ")}getInputError(){const{error:e}=this.props;return e&&"true"!==e&&"false"!==e?t().createElement("p",{className:"tyk-form-control__error-message"},e):null}getStyles(){const{scrollTop:e}=document.documentElement,t=this.comboboxRef.current,n=t.offsetHeight,o=t.offsetWidth,i=t.getBoundingClientRect(),{left:r}=i;let s=0;return s=i.top+e+n,{top:s-1+"px",left:`${r}px`,width:`${o}px`}}getComboboxDisplayData(){const{stateSelectedValues:e}=this.state,{multiple:t,placeholder:n,values:o}=this.props;return e?e&&Array.isArray(e)&&!e.length?n:!e||Array.isArray(e)||e.id?Array.isArray(e)&&t?e.reduce(((t,n,o)=>t+n.name+(o!==e.length-1?", ":"")),""):!(null==o?void 0:o.length)||Array.isArray(e)||e.name?e.name:o.filter((t=>t.id===e.id))[0].name:n:n}manageSelectedTags(e){const{max:t,allowCustomValues:n}=this.props,{stateSelectedValues:o}=this.state,i=this.filterValues(),r={id:this.inputRef.current.value,name:this.inputRef.current.value};if(!1===n&&-1===e)return null;const s=i[e]||r,a=this.getSelectedIndex(s);let l={};if(this.inputRef.current.value="",a>-1&&this.isInInitialValues(s))l=this.removeSelectedValue(a);else if(-1===a){if(t&&o.length>=t)return l;l=this.addSelectedValue(s)}return l}manageSelectedValues(e){const{stateSelectedValues:t}=this.state,{multiple:n,onChange:o,max:i}=this.props,r=this.filterValues(),s=r[e];let a;const l=this.getSelectedIndex(s);if(s&&n)if(l>-1)a=this.removeSelectedValue(l);else{if(i&&t.length>=i)return a;a=this.addSelectedValue(r[e])}else a={stateSelectedValues:-1===l?s:{id:null}},null==o||o(-1===l?s:null);return a}removeSelectedValue(e){const{stateSelectedValues:t}=this.state,{onChange:n}=this.props,o=JSON.parse(JSON.stringify(t));return o.splice(e,1),n&&"function"==typeof n&&n(o.length?o:null),{stateSelectedValues:o,searchText:""}}addSelectedValue(e){const{stateSelectedValues:t}=this.state,{onChange:n}=this.props,o=JSON.parse(JSON.stringify(t));return o.push(e),n&&"function"==typeof n&&n(o.length?o:null),{stateSelectedValues:o,searchText:""}}isInInitialValues(e){const{values:t}=this.props;let n=!1;return t.forEach((t=>{e.id===t.id&&(n=!0)})),n}filterValues(){const{values:e,searchItem:t}=this.props;return this.inputRef.current?e.filter((e=>t?t(e,this.inputRef.current.value.toLowerCase()):$r.filterByName(e,this.inputRef.current.value.toLowerCase()))):e}bindEvents(){document.addEventListener("mousedown",this.handleClickOutside)}unBindEvents(){document.removeEventListener("mousedown",this.handleClickOutside)}reset(){const{multiple:e,tags:t,value:n}=this.props;this.setState({stateSelectedValues:Cr(e,t,n)})}focusInput(){this.inputRef.current&&this.inputRef.current.focus()}renderInput(e){const{disabled:n,tags:o,max:i,placeholder:r}=this.props,{width:s,searchText:a,stateSelectedValues:l}=this.state;return t().createElement("ul",{className:"tyk-form-control"+(o?" tyk-form-control--with-tags":""),onClick:this.focusInput,onKeyDown:()=>{},ref:this.comboboxRef},o?t().createElement(t().Fragment,null,(l||[]).map(((e,n)=>t().createElement("li",{className:"pill",key:e.id},t().createElement("button",{type:"button",onClick:this.handlePillRemoveClick.bind(this,n),"aria-label":"remove"},t().createElement(g,{type:"xmark"})),t().createElement("span",null,e.name)))),t().createElement("li",{className:"tyk-combobox__search-box",style:{width:(null==l?void 0:l.length)?"auto":"100%"}},(void 0===i||(null==l?void 0:l.length){"Enter"===e.key&&e.preventDefault(),this.handleItemsNavigation(e)},onKeyUp:this.onKeyUp,placeholder:(null==l?void 0:l.length)?"":r,ref:this.inputRef,style:{width:(null==l?void 0:l.length)?`${s}px`:"100%"}}),t().createElement("span",{ref:this.textRef,style:{visbility:"hidden",position:"absolute",top:"-9999px"}},a)),e.length>0&&t().createElement(U,{className:"tyk-combobox--with-tags__button-down",iconType:"chevron-down",iconOnly:!0,onClick:this.handleComboboxDropdownClick}))):t().createElement("li",{className:"tyk-combobox__placeholder",onClick:this.handleComboboxDropdownClick,onKeyDown:()=>{}},this.getComboboxDisplayData(),t().createElement(g,{type:"chevron-down"})))}renderDropdown(e){const{tags:n}=this.props,{opened:o}=this.state;return t().createElement("ul",{className:this.getComboboxListCssClass(),ref:this.valuesListRef,style:this.getStyles()},n?null:t().createElement("li",{className:"combobox-search__container"},t().createElement("input",{autoFocus:o,className:"tyk-form-control",onKeyUp:this.onKeyUp,onKeyDown:this.handleItemsNavigation,key:"searchInput",ref:this.inputRef})),e.map(((e,n)=>t().createElement("li",{className:this.getListItemCssClasses(e,n),onClick:this.handleListItemClick.bind(this,n),onKeyDown:()=>{},key:e.id},this.getSelectedIndex(e)>-1?t().createElement(g,{type:"check"}):null,t().createElement("span",null," ",e.name)))))}render(){const{CustomListComponent:e,id:n,label:o,note:i}=this.props,{opened:r}=this.state,s=this.filterValues();return t().createElement(t().Fragment,null,t().createElement("div",{className:this.getCssClasses()},o?t().createElement("label",{htmlFor:n,style:this.getLabelStyles()},o):null,t().createElement("div",{className:"tyk-form-control__wrapper",style:this.getNonLabelWidth()},this.renderInput(s),i?t().createElement("p",{className:"tyk-form-control__help-block"},i):null,this.getInputError())),e?t().createElement(e,{ref:this.valuesListRef,className:this.getComboboxListCssClass(),getListItemCssClasses:this.getListItemCssClasses.bind(this),getSelectedIndex:this.getSelectedIndex.bind(this),filteredValues:s,handleListItemClick:this.handleListItemClick.bind(this)}):r&&s.length?dt().createPortal(this.renderDropdown(s),document.querySelector("body")):null)}}$r.propTypes={allowCustomValues:r().bool,CustomListComponent:r().elementType,searchItem:r().func,disabled:r().bool,error:r().string,id:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,multiple:r().bool,max:r().number,note:r().oneOfType([r().node,r().element,r().string]),onChange:r().func,placeholder:r().string,tags:r().bool,theme:r().string,value:r().oneOfType([r().string,r().instanceOf(Object),r().instanceOf(Array)]),values:r().instanceOf(Array)},$r.defaultProps={allowCustomValues:!0};const Sr=$r;function Er(n){const{value:o,max:i,tags:r,tagSeparators:s,addTagOnBlur:a,placeholder:l,disabled:c,renderValue:u,valueOverflow:h,focus:d,onMessage:p,readOnly:m}=n,f=(0,e.useRef)(null),y=(0,e.useRef)(null),[v,b]=(0,e.useState)(""),[w,x]=(0,e.useState)("70px");function k(e){if(s.some((t=>e.slice(-1)===t)))return;const t=y.current;t.innerHTML=e,x(`${Math.max(t.clientWidth,60)+10}px`),b(e),p("tag.input.change",e)}function C(){p("text-value.click")}function $(e,n=!1){if(m)return e||"-";const o=["tyk-combobox2__text-value",`overflow-${h}`,n&&"is-placeholder"].filter(Boolean).join(" ");return t().createElement("span",{className:o,title:"single"===h?e:void 0,role:"none",tabIndex:c?"-1":"0",onClick:C,onKeyDown:C},e)}function S(e){return u(e,{tags:r,tagSeparators:s,placeholder:l,disabled:c,renderValue:u,sendMessage:p})}return(0,e.useEffect)((()=>{d&&f.current&&f.current.focus()}),[d]),m?t().createElement("div",{className:"tyk-form-control--readonly"},$(o.map((e=>e.name)).join(", "))):r?t().createElement(t().Fragment,null,o.map((function(e){return u?S(e):t().createElement(mn,{key:e.id,theme:"combobox"},t().createElement("button",{type:"button",onClick:t=>{t.stopPropagation(),p("tag.remove",e.id)},"aria-label":"remove"},t().createElement(g,{type:"times"})),t().createElement("span",{title:e.name},e.name))})),o.lengthk(e.target.value),onKeyDown:e=>{"Enter"===e.key&&e.preventDefault(),function(e,t){if(r){if(""!==t||"Backspace"!==e||!o.length)return"Enter"===e?(p("tag.input.enter",t),void k("")):void("ArrowUp"!==e?"ArrowDown"!==e?"Escape"!==e?s.includes(e)&&(p("tag.add",t),k("")):p("tag.input.escape"):p("tag.input.arrowDown"):p("tag.input.arrowUp"));p("tag.remove",o[o.length-1].id)}}(e.key,e.target.value)},onFocus:()=>p("tag.input.focus"),onBlur:e=>{p("tag.input.blur",e.target.value),a&&k("")}}),t().createElement("span",{ref:y,style:{visbility:"hidden",position:"absolute",top:"-9999px"}}))):u?0===o.length?$(l,!0):o.map(S):0===o.length?$(l,!0):$(o.map((e=>e.name)).join(", "))}Er.propTypes={value:r().instanceOf(Array),max:r().number,tags:r().instanceOf(Array),tagSeparators:r().instanceOf(Array),addTagOnBlur:r().bool,placeholder:r().string,disabled:r().bool,renderValue:r().func,valueOverflow:r().string,focus:r().bool,onMessage:r().func,readOnly:r().bool};const Or=Er;function Tr(n){const{listRef:o,tags:i,values:r,searchValue:s,activeItem:a,onMessage:l,renderListItem:c,selectAll:u,showSearch:h}=n;return(0,e.useEffect)((()=>{if(!o.current)return;const e=o.current.querySelector(".active");e&&e.scrollIntoView({block:"end"})}),[a]),t().createElement(t().Fragment,null,!i&&h&&t().createElement("div",{className:"tyk-combobox2__combobox-search"},t().createElement("input",{autoFocus:!0,className:"tyk-form-control",value:s,onChange:e=>l("search.change",e.target.value),onKeyDown:e=>{"Escape"===e.key&&l("search.escape"),"ArrowUp"===e.key&&l("search.arrowUp"),"ArrowDown"===e.key&&l("search.arrowDown"),"Enter"===e.key&&l("search.enter")}})),r.length>0&&t().createElement("ul",{ref:o,className:"tyk-combobox2__combobox-list"},Boolean(u)&&function(){var e,n,o;const i=r.every((e=>e.selected)),s=r.every((e=>!e.selected)),a=null!=(e=null==u?void 0:u.label)?e:"Select All",c=null!=(n=null==u?void 0:u.mode)?n:"select",h=null!=(o=null==u?void 0:u.show)?o:"always",d=null==u?void 0:u.render;return"always"!==h&&("select"===c?i:s)?null:d?d({label:a,mode:c,show:h,isAllSelected:i,isNoneSelected:s},l):t().createElement("li",{onClick:()=>l("value.select-all","select"===c?!i:s),onKeyDown:()=>{}},("select"===c?i:s)&&t().createElement(g,{type:"check"}),a)}(),r.map((function(e){return c?c(e,{tags:i,searchValue:s,sendMessage:l,activeItem:a}):t().createElement("li",{key:e.id,title:e.name,className:[e.disabled&&"disabled",a&&e.id===a.id&&"active"].filter(Boolean).join(" "),onClick:()=>!e.disabled&&l("value.select",{item:e}),onKeyDown:()=>{}},e.selected&&t().createElement(g,{type:"check"}),t().createElement("span",{className:"item-name"},e.name))}))))}Tr.propTypes={listRef:r().instanceOf(Object),tags:r().bool,values:r().instanceOf(Array),searchValue:r().string,activeItem:r().instanceOf(Object),onMessage:r().func,renderListItem:r().func,selectAll:r().oneOfType([r().bool,r().shape({label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),mode:r().oneOf(["select","unselect"]),show:r().oneOf(["always","notSameState"]),render:r().func})]),showSearch:r().bool};const Ar=Tr;var _r=Object.defineProperty,Lr=Object.defineProperties,Mr=Object.getOwnPropertyDescriptors,Rr=Object.getOwnPropertySymbols,Nr=Object.prototype.hasOwnProperty,Ir=Object.prototype.propertyIsEnumerable,Pr=(e,t,n)=>t in e?_r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Dr=(e,t)=>{for(var n in t||(t={}))Nr.call(t,n)&&Pr(e,n,t[n]);if(Rr)for(var n of Rr(t))Ir.call(t,n)&&Pr(e,n,t[n]);return e},Fr=(e,t)=>Lr(e,Mr(t));function Br(n){var o=n,{value:i,values:r=[],valueOverflow:s="single",label:a="",labelwidth:l,tags:c=!1,tagSeparators:u=[" ","Enter"],addTagOnBlur:h=!1,max:d,multiple:p=!1,placeholder:m="",theme:f,note:y="",error:v="",disabled:b=!1,readOnly:w=!1,allowCustomValues:x=!0,searchItem:k,renderValue:C,renderListItem:$,renderList:S,CustomListComponent:E,onBeforeChange:O=(()=>!0),onChange:T=(()=>{}),floatingContainerConfig:A,expandMode:_,infiniteScrollerConfig:L,displayDropdownTrigger:M=!0,selectAll:R,closeOnSelect:N,showSearch:I=!1,required:P=!1,validateOnChange:D=(()=>{}),wrapperClassName:F=""}=o,B=((e,t)=>{var n={};for(var o in e)Nr.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Rr)for(var o of Rr(e))t.indexOf(o)<0&&Ir.call(e,o)&&(n[o]=e[o]);return n})(o,["value","values","valueOverflow","label","labelwidth","tags","tagSeparators","addTagOnBlur","max","multiple","placeholder","theme","note","error","disabled","readOnly","allowCustomValues","searchItem","renderValue","renderListItem","renderList","CustomListComponent","onBeforeChange","onChange","floatingContainerConfig","expandMode","infiniteScrollerConfig","displayDropdownTrigger","selectAll","closeOnSelect","showSearch","required","validateOnChange","wrapperClassName"]);const W=(0,e.useMemo)((()=>p?1/0:d||(c?1/0:1)),[p,d,c]),H=E?(e,{sendMessage:n})=>t().createElement(E,{filteredValues:e,handleListItemClick:t=>n("value.select",{item:e[t]})}):S,j=(0,e.useRef)(null),z=(0,e.useRef)(null),V=(0,e.useRef)(null),U=(0,e.useRef)(null),[G,K]=(0,e.useState)(jr(i,r)),[q,Y]=(0,e.useState)(r.map((e=>Hr(e)))),[J,X]=(0,e.useState)(""),[Q,Z]=(0,e.useState)(null),[ee,te]=(0,e.useState)(!1),[ne,oe]=(0,e.useState)(!1),[ie,re]=(0,e.useState)("");function se(){return(f?f.split(" "):[]).map((e=>`tyk-form-group--${e}`))}function ae(){const e=k||((e,t)=>{var n,o;return null==(o=null==(n=null==e?void 0:e.name)?void 0:n.toLowerCase())?void 0:o.includes(t)});return q.filter((t=>e(t,J.toLowerCase())))}function le(){te(!0)}function ce(){te(!1),c||ue(""),Z(null)}function ue(e){X(e),Q&&ae().every((e=>e.id!==Q.id))&&Z(null),e&&!ee&&le()}function he(e,t){const n=D(e,t);return re(n),void 0===n}function de(e){K(e),T(1!==W||c?e:e[0]||null)}function pe(e){if(!e)return;if(G.length>=W)return;if(G.some((({name:t})=>t===e)))return;const t=q.findIndex((t=>t.name===e));let n,o,i=[...G];-1===t?x&&(n={id:e,name:e},i=[...G,n]):(o=[...q.slice(0,t),Fr(Dr({},q[t]),{selected:!0}),...q.slice(t+1)],n=q[t],i=[...G,q[t]]),he(i,n)&&O(G,i)&&(o&&Y(o),de(i))}function ge({id:e}){const t=q.find((t=>t.id===e)),n=q.findIndex((t=>t.id===e));let o=G,i=q;t.selected?P&&1===W||(o=G.filter((e=>e.id!==t.id)),i=q.with(n,Fr(Dr({},t),{selected:!1}))):G.lengthFr(Dr({},e),{selected:e.id===t.id})))),he(o,t)&&O(G,o)&&(de(o),Y(i)),(1===W||N)&&ce()}function me(e){if(q.length>W)return;const t=e?[...q]:[];O(G,t)&&(de(t),Y(q.map((t=>Fr(Dr({},t),{selected:e})))),N&&ce())}function fe(){const e=ae().filter((e=>!e.disabled));if(0===e.length)return;if(null===Q||1===e.length)return void Z(e[e.length-1]);const t=e.findIndex((e=>e.id===Q.id));Z(e[t>0?t-1:e.length-1])}function ye(){const e=ae().filter((e=>!e.disabled));if(0===e.length)return;if(null===Q||1===e.length)return void Z(e[0]);const t=e.findIndex((e=>e.id===Q.id));Z(e[tt.id===e)),n=G.filter((t=>t.id!==e));O(G,n)&&(-1!==t&&Y([...q.slice(0,t),Fr(Dr({},q[t]),{selected:!1}),...q.slice(t+1)]),de(n))}(t),"input.change"===e&&ue(t),"input.enter"===e&&(Q?ge(Q):u.includes("Enter")&&(pe(t),ue(""))),"input.arrowUp"===e&&(le(),fe()),"input.arrowDown"===e&&(le(),ye()),"input.escape"===e&&ce(),"input.blur"===e&&h&&(pe(t),ue("")),"input.focus"===e&&le()}const xe=(0,e.useCallback)(((e,t)=>{e.startsWith("tag.")&&we(e.slice(4),t),"value.select"===e&&ge(t.item),"value.select-all"===e&&me(t),"text-value.click"===e&&le(),"search.change"===e&&ue(t),"search.escape"===e&&ce(),"search.arrowUp"===e&&fe(),"search.arrowDown"===e&&ye(),"search.enter"===e&&Q&&ge(Q)}),[we,ge,me,le,ue,ce,fe,ye]),ke=(0,e.useCallback)((()=>_?t().createElement(g,{type:ne?"chevron-down":"chevron-up"}):t().createElement(g,{type:"chevron-down"})),[_,ne]);(0,e.useEffect)((()=>(window.addEventListener("click",be,!0),()=>window.removeEventListener("click",be,!0))),[]),(0,e.useEffect)((()=>{if(r.length){const e=r.map((e=>Fr(Dr({},Hr(e)),{selected:G.some((t=>t.id===e.id))})));Y(e),K((t=>t.map((t=>e.find((e=>e.id===t.id))||t))))}else q.length&&Y([])}),[r]),(0,e.useEffect)((()=>{const e=jr(i,q);K(e),Y((t=>t.map((t=>Fr(Dr({},Hr(t)),{selected:e.some((e=>e.id===t.id))})))))}),[i]),(0,e.useEffect)((()=>{if(!_)return()=>{};const e=z.current.querySelector(".tyk-combobox2__current-values"),t=()=>{e.scrollTop=e.scrollHeight},n=new MutationObserver(t),o=new ResizeObserver(t);return n.observe(e,{attributes:!0,childList:!0,subtree:!0}),o.observe(e),()=>{n.disconnect(),o.disconnect()}}));const Ce=ae(),$e=["tyk-combobox2__current-values",_&&"expand-mode","tyk-combobox2__current-values--"+(ne?"expanded":"collapsed")].join(" ");return t().createElement("div",Fr(Dr({ref:j,tabIndex:b?"-1":"0",onClickCapture:function(e){if(!b)return;if(!_)return void e.stopPropagation();const t=j.current.querySelector(".tyk-combobox2__values-container-trigger");t&&(t===e.target||t.contains(e.target)||e.stopPropagation())}},B),{className:[F,"tyk-form-group","tyk-combobox2",...se(),(v||ie)&&"has-error",l&&"tyk-form-group--label-has-width",b&&"disabled",_&&"is-expand-mode"].filter(Boolean).join(" ")}),a&&t().createElement("label",{style:{flexBasis:l||"auto"}},a),!w&&t().createElement("div",{className:"tyk-form-control__wrapper",style:{flexBasis:`calc(100% - ${l} - 20px)`}},t().createElement("div",{className:"tyk-form-control",ref:z},t().createElement("div",{className:$e,onClick:le,role:"none"},t().createElement(Or,{value:G,max:W,tags:c,tagSeparators:u,addTagOnBlur:h,allowCustomValues:x,placeholder:m,disabled:b,valueOverflow:s,renderValue:C,focus:ee,onMessage:xe,readOnly:w})),M&&t().createElement("div",{className:"tyk-combobox2__values-container-trigger"+(ne?" tyk-combobox2__values-container-trigger--expanded":""),role:"button",tabIndex:b?-1:0,onClick:ve,onKeyDown:ve},ke())),ee&&(!c||Ce.length>0)&&t().createElement(Pt,Fr(Dr({element:z,size:"matchElement",className:`tyk-combobox2__combobox-dropdown tyk-form-group ${se().join(" ")}`,ref:V,displayAxis:"vertical"},A),{infiniteScrollerConfig:L}),H?H(Ce,{tags:c,searchValue:J,activeItem:Q,listRef:U,sendMessage:xe}):t().createElement(Ar,{listRef:U,showSearch:I,values:Ce,tags:c,searchValue:J,activeItem:Q,onMessage:xe,renderListItem:$,selectAll:R})),y&&t().createElement("p",{className:"tyk-form-control__help-block"},y),(v&&"true"!==v&&"false"!==v||Boolean(ie))&&t().createElement("p",{className:"tyk-form-control__error-message"},v||ie)),w&&t().createElement("div",null,t().createElement(Or,{value:G,tags:c,renderValue:C,readOnly:w})))}Br.propTypes={allowCustomValues:r().bool,CustomListComponent:r().elementType,searchItem:r().func,renderValue:r().func,renderListItem:r().func,renderList:r().func,disabled:r().bool,readOnly:r().bool,error:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,max:r().number,multiple:r().bool,note:r().oneOfType([r().node,r().element,r().string]),onBeforeChange:r().func,onChange:r().func,placeholder:r().string,tags:r().bool,tagSeparators:r().arrayOf(r().string),addTagOnBlur:r().bool,theme:r().string,value:r().oneOfType([r().string,r().instanceOf(Array),r().instanceOf(Object)]),values:r().instanceOf(Array),floatingContainerConfig:r().instanceOf(Object),valueOverflow:r().oneOf(["single","multiple"]),expandMode:r().bool,infiniteScrollerConfig:r().instanceOf(Object),displayDropdownTrigger:r().bool,selectAll:r().oneOfType([r().bool,r().shape({label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),mode:r().oneOf(["select","unselect"]),show:r().oneOf(["always","notSameState"]),render:r().func})]),closeOnSelect:r().bool,showSearch:r().bool,required:r().bool,validateOnChange:r().func,wrapperClassName:r().string};const Wr=Br;function Hr(e,t){let n=e;if("string"==typeof e?n={id:e,name:e}:e.hasOwnProperty("name")||(n=Fr(Dr({},e),{name:e.id})),!t)return n;const o=t.find((e=>e.id===n.id));return o?Dr(Dr({},n),o):n}function jr(e,t){return e?Array.isArray(e)?e.map((e=>Hr(e,t))):[Hr(e,t)]:[]}const zr=require("flatpickr");var Vr=n.n(zr),Ur=Object.defineProperty,Gr=Object.defineProperties,Kr=Object.getOwnPropertyDescriptors,qr=Object.getOwnPropertySymbols,Yr=Object.prototype.hasOwnProperty,Jr=Object.prototype.propertyIsEnumerable,Xr=(e,t,n)=>t in e?Ur(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Qr({children:n,disabled:o,readOnly:i=!1,error:r,id:s,label:a,labelwidth:l,note:c,onClose:u,onChange:h,onOpen:d,theme:p,config:m={},value:f,wrapperClassName:y=""}){const[v,b]=(0,e.useState)(null),w=(0,e.useRef)(null),x=me(f),k=(0,e.useCallback)(((e,t)=>{if(!e)return!0;if(!Array.isArray(t))return e.getTime()!==t.getTime();let n=t;return e&&t.length&&e.length?(n=t.filter(((t,n)=>t.getTime()!==e[n].getTime())),n.length>0):t.length>0}),[]),C=(0,e.useCallback)((e=>{const t="range"===m.mode?e:e[0]||null;h&&("range"===m.mode?2===t.length&&k(x,t)&&h(t):h(t))}),[x,h,k]);(0,e.useEffect)((()=>{if(w.current&&!v){const t=Vr()(w.current,(e=((e,t)=>{for(var n in t||(t={}))Yr.call(t,n)&&Xr(e,n,t[n]);if(qr)for(var n of qr(t))Jr.call(t,n)&&Xr(e,n,t[n]);return e})({},m),Gr(e,Kr({defaultDate:f,onChange:C,onClose:u,onOpen:d}))));b(t)}var e;return()=>{v&&v.destroy()}}),[v]),(0,e.useEffect)((()=>{if(v){let e=f;"string"==typeof f?e=new Date(f):Array.isArray(f)&&(e=f.map((e=>new Date(e)))),k(x,e)&&(v.set("onChange",C),"range"===m.mode?e&&2===e.length&&v.setDate(e,!0):v.setDate(e,!0))}}),[x,f,v]);const $=["tyk-form-group","tyk-form-group--addon-right",y,...p?p.split(" ").map((e=>`tyk-form-group--${e}`)):[],l&&"tyk-form-group--label-has-width",r&&"has-error"].filter(Boolean).join(" "),S=(0,e.useCallback)((()=>{v&&v.open()}),[v]);return t().createElement(t().Fragment,null,(null==n?void 0:n.length)?n({openCalendar:S,ref:w}):t().createElement("div",{className:$},a?t().createElement("label",{htmlFor:s,style:l?{flexBasis:l}:{}},a):null,!i&&t().createElement("div",{className:"tyk-form-control__wrapper flatpickr",style:l?{flexBasis:`calc(100% - ${l} - 20px)`}:{}},t().createElement("div",{className:"tyk-input-group"},(()=>{let e={},n={};return(null==m?void 0:m.inline)&&(e={height:0,padding:0,width:0,visibility:"hidden"},n={display:"none"}),t().createElement(t().Fragment,null,t().createElement("input",{disabled:o,className:"tyk-form-control","data-input":!0,type:"date",ref:w,style:e}),t().createElement("div",{className:"tyk-input-group__addon",onClick:S,role:"button",onKeyUp:()=>{},tabIndex:0,style:n,"aria-label":"show calendar"},t().createElement(g,{type:"calendar"})))})()),c?t().createElement("p",{className:"tyk-form-control__help-block"},c):null,r&&"true"!==r&&"false"!==r?t().createElement("p",{className:"tyk-form-control__error-message"},r):null)),t().createElement("div",{className:"tyk-form-control--readonly"},i&&!f&&"-",i&&f&&Vr().formatDate(f,m.dateFormat||"d/m/Y")))}Qr.propTypes={config:r().instanceOf(Object),children:r().oneOfType([r().element,r().node,r().string,r().func]),disabled:r().bool,readOnly:r().bool,id:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,note:r().string,onChange:r().oneOfType([r().func,r().instanceOf(Array)]),onClose:r().oneOfType([r().func,r().instanceOf(Array)]),onOpen:r().oneOfType([r().func,r().instanceOf(Array)]),theme:r().string,error:r().string,value:r().oneOfType([r().instanceOf(Array),r().instanceOf(Object),r().string]),wrapperClassName:r().string};const Zr=Qr;function es(e){return es="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},es(e)}function ts(e,t){if(t.length1?"s":"")+" required, but only "+t.length+" present")}function ns(e){return ts(1,arguments),e instanceof Date||"object"===es(e)&&"[object Date]"===Object.prototype.toString.call(e)}function os(e){ts(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||"object"===es(e)&&"[object Date]"===t?new Date(e.getTime()):"number"==typeof e||"[object Number]"===t?new Date(e):("string"!=typeof e&&"[object String]"!==t||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn((new Error).stack)),new Date(NaN))}function is(e){if(null===e||!0===e||!1===e)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function rs(e){ts(1,arguments);var t=os(e),n=t.getUTCDay(),o=(n<1?7:0)+n-1;return t.setUTCDate(t.getUTCDate()-o),t.setUTCHours(0,0,0,0),t}function ss(e){ts(1,arguments);var t=os(e),n=t.getUTCFullYear(),o=new Date(0);o.setUTCFullYear(n+1,0,4),o.setUTCHours(0,0,0,0);var i=rs(o),r=new Date(0);r.setUTCFullYear(n,0,4),r.setUTCHours(0,0,0,0);var s=rs(r);return t.getTime()>=i.getTime()?n+1:t.getTime()>=s.getTime()?n:n-1}var as={};function ls(){return as}function cs(e,t){var n,o,i,r,s,a,l,c;ts(1,arguments);var u=ls(),h=is(null!==(n=null!==(o=null!==(i=null!==(r=null==t?void 0:t.weekStartsOn)&&void 0!==r?r:null==t||null===(s=t.locale)||void 0===s||null===(a=s.options)||void 0===a?void 0:a.weekStartsOn)&&void 0!==i?i:u.weekStartsOn)&&void 0!==o?o:null===(l=u.locale)||void 0===l||null===(c=l.options)||void 0===c?void 0:c.weekStartsOn)&&void 0!==n?n:0);if(!(h>=0&&h<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var d=os(e),p=d.getUTCDay(),g=(p=1&&p<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var g=new Date(0);g.setUTCFullYear(h+1,0,p),g.setUTCHours(0,0,0,0);var m=cs(g,t),f=new Date(0);f.setUTCFullYear(h,0,p),f.setUTCHours(0,0,0,0);var y=cs(f,t);return u.getTime()>=m.getTime()?h+1:u.getTime()>=y.getTime()?h:h-1}function hs(e,t){for(var n=e<0?"-":"",o=Math.abs(e).toString();o.length0?n:1-n;return hs("yy"===t?o%100:o,t.length)},ps=function(e,t){var n=e.getUTCMonth();return"M"===t?String(n+1):hs(n+1,2)},gs=function(e,t){return hs(e.getUTCDate(),t.length)},ms=function(e,t){return hs(e.getUTCHours()%12||12,t.length)},fs=function(e,t){return hs(e.getUTCHours(),t.length)},ys=function(e,t){return hs(e.getUTCMinutes(),t.length)},vs=function(e,t){return hs(e.getUTCSeconds(),t.length)},bs=function(e,t){var n=t.length,o=e.getUTCMilliseconds();return hs(Math.floor(o*Math.pow(10,n-3)),t.length)};var ws={G:function(e,t,n){var o=e.getUTCFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(o,{width:"abbreviated"});case"GGGGG":return n.era(o,{width:"narrow"});default:return n.era(o,{width:"wide"})}},y:function(e,t,n){if("yo"===t){var o=e.getUTCFullYear(),i=o>0?o:1-o;return n.ordinalNumber(i,{unit:"year"})}return ds(e,t)},Y:function(e,t,n,o){var i=us(e,o),r=i>0?i:1-i;return"YY"===t?hs(r%100,2):"Yo"===t?n.ordinalNumber(r,{unit:"year"}):hs(r,t.length)},R:function(e,t){return hs(ss(e),t.length)},u:function(e,t){return hs(e.getUTCFullYear(),t.length)},Q:function(e,t,n){var o=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"Q":return String(o);case"QQ":return hs(o,2);case"Qo":return n.ordinalNumber(o,{unit:"quarter"});case"QQQ":return n.quarter(o,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(o,{width:"narrow",context:"formatting"});default:return n.quarter(o,{width:"wide",context:"formatting"})}},q:function(e,t,n){var o=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"q":return String(o);case"qq":return hs(o,2);case"qo":return n.ordinalNumber(o,{unit:"quarter"});case"qqq":return n.quarter(o,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(o,{width:"narrow",context:"standalone"});default:return n.quarter(o,{width:"wide",context:"standalone"})}},M:function(e,t,n){var o=e.getUTCMonth();switch(t){case"M":case"MM":return ps(e,t);case"Mo":return n.ordinalNumber(o+1,{unit:"month"});case"MMM":return n.month(o,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(o,{width:"narrow",context:"formatting"});default:return n.month(o,{width:"wide",context:"formatting"})}},L:function(e,t,n){var o=e.getUTCMonth();switch(t){case"L":return String(o+1);case"LL":return hs(o+1,2);case"Lo":return n.ordinalNumber(o+1,{unit:"month"});case"LLL":return n.month(o,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(o,{width:"narrow",context:"standalone"});default:return n.month(o,{width:"wide",context:"standalone"})}},w:function(e,t,n,o){var i=function(e,t){ts(1,arguments);var n=os(e),o=cs(n,t).getTime()-function(e,t){var n,o,i,r,s,a,l,c;ts(1,arguments);var u=ls(),h=is(null!==(n=null!==(o=null!==(i=null!==(r=null==t?void 0:t.firstWeekContainsDate)&&void 0!==r?r:null==t||null===(s=t.locale)||void 0===s||null===(a=s.options)||void 0===a?void 0:a.firstWeekContainsDate)&&void 0!==i?i:u.firstWeekContainsDate)&&void 0!==o?o:null===(l=u.locale)||void 0===l||null===(c=l.options)||void 0===c?void 0:c.firstWeekContainsDate)&&void 0!==n?n:1),d=us(e,t),p=new Date(0);return p.setUTCFullYear(d,0,h),p.setUTCHours(0,0,0,0),cs(p,t)}(n,t).getTime();return Math.round(o/6048e5)+1}(e,o);return"wo"===t?n.ordinalNumber(i,{unit:"week"}):hs(i,t.length)},I:function(e,t,n){var o=function(e){ts(1,arguments);var t=os(e),n=rs(t).getTime()-function(e){ts(1,arguments);var t=ss(e),n=new Date(0);return n.setUTCFullYear(t,0,4),n.setUTCHours(0,0,0,0),rs(n)}(t).getTime();return Math.round(n/6048e5)+1}(e);return"Io"===t?n.ordinalNumber(o,{unit:"week"}):hs(o,t.length)},d:function(e,t,n){return"do"===t?n.ordinalNumber(e.getUTCDate(),{unit:"date"}):gs(e,t)},D:function(e,t,n){var o=function(e){ts(1,arguments);var t=os(e),n=t.getTime();t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0);var o=n-t.getTime();return Math.floor(o/864e5)+1}(e);return"Do"===t?n.ordinalNumber(o,{unit:"dayOfYear"}):hs(o,t.length)},E:function(e,t,n){var o=e.getUTCDay();switch(t){case"E":case"EE":case"EEE":return n.day(o,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(o,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(o,{width:"short",context:"formatting"});default:return n.day(o,{width:"wide",context:"formatting"})}},e:function(e,t,n,o){var i=e.getUTCDay(),r=(i-o.weekStartsOn+8)%7||7;switch(t){case"e":return String(r);case"ee":return hs(r,2);case"eo":return n.ordinalNumber(r,{unit:"day"});case"eee":return n.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(i,{width:"short",context:"formatting"});default:return n.day(i,{width:"wide",context:"formatting"})}},c:function(e,t,n,o){var i=e.getUTCDay(),r=(i-o.weekStartsOn+8)%7||7;switch(t){case"c":return String(r);case"cc":return hs(r,t.length);case"co":return n.ordinalNumber(r,{unit:"day"});case"ccc":return n.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(i,{width:"narrow",context:"standalone"});case"cccccc":return n.day(i,{width:"short",context:"standalone"});default:return n.day(i,{width:"wide",context:"standalone"})}},i:function(e,t,n){var o=e.getUTCDay(),i=0===o?7:o;switch(t){case"i":return String(i);case"ii":return hs(i,t.length);case"io":return n.ordinalNumber(i,{unit:"day"});case"iii":return n.day(o,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(o,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(o,{width:"short",context:"formatting"});default:return n.day(o,{width:"wide",context:"formatting"})}},a:function(e,t,n){var o=e.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(o,{width:"narrow",context:"formatting"});default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},b:function(e,t,n){var o,i=e.getUTCHours();switch(o=12===i?"noon":0===i?"midnight":i/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(o,{width:"narrow",context:"formatting"});default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},B:function(e,t,n){var o,i=e.getUTCHours();switch(o=i>=17?"evening":i>=12?"afternoon":i>=4?"morning":"night",t){case"B":case"BB":case"BBB":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(o,{width:"narrow",context:"formatting"});default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},h:function(e,t,n){if("ho"===t){var o=e.getUTCHours()%12;return 0===o&&(o=12),n.ordinalNumber(o,{unit:"hour"})}return ms(e,t)},H:function(e,t,n){return"Ho"===t?n.ordinalNumber(e.getUTCHours(),{unit:"hour"}):fs(e,t)},K:function(e,t,n){var o=e.getUTCHours()%12;return"Ko"===t?n.ordinalNumber(o,{unit:"hour"}):hs(o,t.length)},k:function(e,t,n){var o=e.getUTCHours();return 0===o&&(o=24),"ko"===t?n.ordinalNumber(o,{unit:"hour"}):hs(o,t.length)},m:function(e,t,n){return"mo"===t?n.ordinalNumber(e.getUTCMinutes(),{unit:"minute"}):ys(e,t)},s:function(e,t,n){return"so"===t?n.ordinalNumber(e.getUTCSeconds(),{unit:"second"}):vs(e,t)},S:function(e,t){return bs(e,t)},X:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();if(0===i)return"Z";switch(t){case"X":return ks(i);case"XXXX":case"XX":return Cs(i);default:return Cs(i,":")}},x:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();switch(t){case"x":return ks(i);case"xxxx":case"xx":return Cs(i);default:return Cs(i,":")}},O:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+xs(i,":");default:return"GMT"+Cs(i,":")}},z:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+xs(i,":");default:return"GMT"+Cs(i,":")}},t:function(e,t,n,o){var i=o._originalDate||e;return hs(Math.floor(i.getTime()/1e3),t.length)},T:function(e,t,n,o){return hs((o._originalDate||e).getTime(),t.length)}};function xs(e,t){var n=e>0?"-":"+",o=Math.abs(e),i=Math.floor(o/60),r=o%60;if(0===r)return n+String(i);var s=t||"";return n+String(i)+s+hs(r,2)}function ks(e,t){return e%60==0?(e>0?"-":"+")+hs(Math.abs(e)/60,2):Cs(e,t)}function Cs(e,t){var n=t||"",o=e>0?"-":"+",i=Math.abs(e);return o+hs(Math.floor(i/60),2)+n+hs(i%60,2)}const $s=ws;var Ss=function(e,t){switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},Es=function(e,t){switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},Os={p:Es,P:function(e,t){var n,o=e.match(/(P+)(p+)?/)||[],i=o[1],r=o[2];if(!r)return Ss(e,t);switch(i){case"P":n=t.dateTime({width:"short"});break;case"PP":n=t.dateTime({width:"medium"});break;case"PPP":n=t.dateTime({width:"long"});break;default:n=t.dateTime({width:"full"})}return n.replace("{{date}}",Ss(i,t)).replace("{{time}}",Es(r,t))}};const Ts=Os;var As=["D","DD"],_s=["YY","YYYY"];function Ls(e,t,n){if("YYYY"===e)throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("YY"===e)throw new RangeError("Use `yy` instead of `YY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("D"===e)throw new RangeError("Use `d` instead of `D` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("DD"===e)throw new RangeError("Use `dd` instead of `DD` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))}var Ms={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function Rs(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}var Ns,Is={date:Rs({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:Rs({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:Rs({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},Ps={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function Ds(e){return function(t,n){var o;if("formatting"===(null!=n&&n.context?String(n.context):"standalone")&&e.formattingValues){var i=e.defaultFormattingWidth||e.defaultWidth,r=null!=n&&n.width?String(n.width):i;o=e.formattingValues[r]||e.formattingValues[i]}else{var s=e.defaultWidth,a=null!=n&&n.width?String(n.width):e.defaultWidth;o=e.values[a]||e.values[s]}return o[e.argumentCallback?e.argumentCallback(t):t]}}function Fs(e){return function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=n.width,i=o&&e.matchPatterns[o]||e.matchPatterns[e.defaultMatchWidth],r=t.match(i);if(!r)return null;var s,a=r[0],l=o&&e.parsePatterns[o]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(l)?function(e,t){for(var n=0;n0?"in "+o:o+" ago":o},formatLong:Is,formatRelative:function(e,t,n,o){return Ps[e]},localize:{ordinalNumber:function(e,t){var n=Number(e),o=n%100;if(o>20||o<10)switch(o%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:Ds({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:Ds({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:Ds({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:Ds({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:Ds({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(Ns={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(e){return parseInt(e,10)}},function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.match(Ns.matchPattern);if(!n)return null;var o=n[0],i=e.match(Ns.parsePattern);if(!i)return null;var r=Ns.valueCallback?Ns.valueCallback(i[0]):i[0];return{value:r=t.valueCallback?t.valueCallback(r):r,rest:e.slice(o.length)}}),era:Fs({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:Fs({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:Fs({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:Fs({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:Fs({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};var Ws=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Hs=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,js=/^'([^]*?)'?$/,zs=/''/g,Vs=/[a-zA-Z]/;function Us(e,t,n){var o,i,r,s,a,l,c,u,h,d,p,g,m,f,y,v,b,w;ts(2,arguments);var x=String(t),k=ls(),C=null!==(o=null!==(i=null==n?void 0:n.locale)&&void 0!==i?i:k.locale)&&void 0!==o?o:Bs,$=is(null!==(r=null!==(s=null!==(a=null!==(l=null==n?void 0:n.firstWeekContainsDate)&&void 0!==l?l:null==n||null===(c=n.locale)||void 0===c||null===(u=c.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==a?a:k.firstWeekContainsDate)&&void 0!==s?s:null===(h=k.locale)||void 0===h||null===(d=h.options)||void 0===d?void 0:d.firstWeekContainsDate)&&void 0!==r?r:1);if(!($>=1&&$<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var S=is(null!==(p=null!==(g=null!==(m=null!==(f=null==n?void 0:n.weekStartsOn)&&void 0!==f?f:null==n||null===(y=n.locale)||void 0===y||null===(v=y.options)||void 0===v?void 0:v.weekStartsOn)&&void 0!==m?m:k.weekStartsOn)&&void 0!==g?g:null===(b=k.locale)||void 0===b||null===(w=b.options)||void 0===w?void 0:w.weekStartsOn)&&void 0!==p?p:0);if(!(S>=0&&S<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!C.localize)throw new RangeError("locale must contain localize property");if(!C.formatLong)throw new RangeError("locale must contain formatLong property");var E=os(e);if(!function(e){if(ts(1,arguments),!ns(e)&&"number"!=typeof e)return!1;var t=os(e);return!isNaN(Number(t))}(E))throw new RangeError("Invalid time value");var O=function(e){var t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e.getTime()-t.getTime()}(E),T=function(e,t){return ts(2,arguments),function(e,t){ts(2,arguments);var n=os(e).getTime(),o=is(t);return new Date(n+o)}(e,-is(t))}(E,O),A={firstWeekContainsDate:$,weekStartsOn:S,locale:C,_originalDate:E};return x.match(Hs).map((function(e){var t=e[0];return"p"===t||"P"===t?(0,Ts[t])(e,C.formatLong):e})).join("").match(Ws).map((function(o){if("''"===o)return"'";var i,r,s=o[0];if("'"===s)return(r=(i=o).match(js))?r[1].replace(zs,"'"):i;var a,l=$s[s];if(l)return null!=n&&n.useAdditionalWeekYearTokens||(a=o,-1===_s.indexOf(a))||Ls(o,t,String(e)),null!=n&&n.useAdditionalDayOfYearTokens||!function(e){return-1!==As.indexOf(e)}(o)||Ls(o,t,String(e)),l(T,o,C.localize,A);if(s.match(Vs))throw new RangeError("Format string contains an unescaped latin alphabet character `"+s+"`");return o})).join("")}var Gs=n(590),Ks=n.n(Gs),qs=Object.defineProperty,Ys=Object.defineProperties,Js=Object.getOwnPropertyDescriptors,Xs=Object.getOwnPropertySymbols,Qs=Object.prototype.hasOwnProperty,Zs=Object.prototype.propertyIsEnumerable,ea=(e,t,n)=>t in e?qs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ta=(e,t)=>{for(var n in t||(t={}))Qs.call(t,n)&&ea(e,n,t[n]);if(Xs)for(var n of Xs(t))Zs.call(t,n)&&ea(e,n,t[n]);return e};class na extends e.Component{static getMainFormValue(e){const t=new Array(e.length);return e.forEach(((e,n)=>{t[n]=e.props.value||void 0})),t}constructor(t){super(t);const{components:n}=t;this.submitButtonRef=(0,e.createRef)(),this.handleOnChange=this.handleOnChange.bind(this),this.submitForm=this.submitForm.bind(this),this.state={components:n,errors:{},mainError:null,mainFormValue:na.getMainFormValue(n),refs:[]}}componentDidMount(){const{addValueOnFieldChange:e,getMainFormButtonWidth:t}=this.props;this.createRefs(),t&&t(e?0:this.submitButtonRef.current.clientWidth)}static getDerivedStateFromProps(e,t){const n={},{components:o}=e,{components:i}=t;return Ks()(o,i)||Ks()(na.getMainFormValue(o),na.getMainFormValue(i))||(n.mainFormValue=na.getMainFormValue(o),n.components=o),n}handleOnChange(e,t,n){const{addValueOnFieldChange:o}=this.props;let i=this.state;i=ta(ta({},i),this.validateValue(n,e.props)),i.errors[e.props.name]||(i.mainFormValue[t]=n,e.props.onChange&&e.props.onChange(n)),this.setState((e=>ta(ta({},e),i)),(()=>{o&&this.submitForm()}))}getFormCssClasses(){const{noLabels:e}=this.props,t=["tyk-editable-list__form"];return e&&t.push("no-labels"),t.join(" ")}getButtonClassName(){const{buttonStyle:e,displayType:t}=this.props,n=[];return e&&n.push(e),t&&n.push(t),n.join(" ")}getComponentsError(e){const{error:t,errors:n,mainError:o}=this.state;return t||o?n[e.props.name]="true":t||o||"true"!==n[e.props.name]||delete n[e.props.name],n[e.props.name]?n[e.props.name].toString():void 0}createRefs(){const{components:t}=this.props,n=[];t.forEach((()=>{n.push((0,e.createRef)())})),this.setState({refs:n})}validateValue(e,t){const{mainError:n,errors:o}=this.state,{error:i,errorPersist:r}=this.props,s=t.validate?Object.keys(t.validate):[],a={errors:i||n?{}:ta({},o)};let l=!0;if(r)return a;for(const n of s)if((0,t.validate[n])(e)){a.errors[t.name]=t.validationmessages[n],l=!1;break}return l&&delete a.errors[t.name],a.mainError=null,a}hasMainFormErrors(e){const{components:t,errorPersist:n}=this.props,{mainFormValue:o}=this.state,i={errors:ta({},e)};return(!n||-1!==o.indexOf(void 0))&&(Object.keys(i.errors).length>0||(t.forEach(((e,t)=>{i.errors=ta(ta({},i.errors),this.validateValue(o[t],e.props).errors)})),Object.keys(i.errors).length>0))}resetForm(){const{refs:e}=this.state,{components:t}=this.props;e.forEach((e=>{var t;(null==(t=e.current)?void 0:t.reset)&&e.current.reset()})),this.setState({errors:{},mainError:null,mainFormValue:na.getMainFormValue(t)})}showMainError(e){this.setState({mainError:e})}submitForm(){const{errors:e,mainFormValue:t}=this.state,{errorPersist:n,onSubmit:o,validate:i,validationmessage:r}=this.props;n&&(o(t),this.resetForm()),0===Object.keys(e).length&&o&&"function"==typeof o&&(i&&i(t)?this.showMainError(r):(o(t),this.resetForm()))}render(){const{addValueOnFieldChange:e,components:n,buttonName:o,disabled:i,displayType:r,error:s}=this.props,{mainError:a,refs:l,errors:c}=this.state;return t().createElement("div",null,t().createElement("div",{className:this.getFormCssClasses()},t().createElement(yi,null,n.map(((e,n)=>{const o=e.name;console.log("ComponentName",o);const s=e.props,{onChange:a,value:c}=s,u=((e,t)=>{var n={};for(var o in e)Qs.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Xs)for(var o of Xs(e))t.indexOf(o)<0&&Zs.call(e,o)&&(n[o]=e[o]);return n})(s,["onChange","value"]);return t().createElement(li,{size:`md-${e.size||"12"} lg-${e.size||"12"}`,key:e.props.name},t().createElement(o,(h=ta({disabled:i||e.props.disabled,onChange:this.handleOnChange.bind(this,e,n)},u),d={label:"inline"===r?"":e.props.label,error:this.getComponentsError(e),ref:l[n],value:c},Ys(h,Js(d)))));var h,d}))),e?null:t().createElement("span",{className:this.getButtonClassName(),ref:this.submitButtonRef},t().createElement(U,{disabled:this.hasMainFormErrors(c),className:"tyk-editable-list__submit-btn",onClick:this.submitForm,theme:"default",type:"button",size:"inline"===r?"sm":"md"},o||"ADD"))),s||a?t().createElement("div",{className:"tyk-editable-list-main-error"},t().createElement("p",{className:"error-message"},s||a)):null)}}na.propTypes={addValueOnFieldChange:r().bool,noLabels:r().bool,buttonName:r().string,buttonStyle:r().string,components:r().instanceOf(Array),displayType:r().string,disabled:r().bool,getMainFormButtonWidth:r().func,error:r().string,errorPersist:r().bool,onSubmit:r().func,validate:r().func,validationmessage:r().string};const oa=na;var ia=Object.defineProperty,ra=Object.getOwnPropertySymbols,sa=Object.prototype.hasOwnProperty,aa=Object.prototype.propertyIsEnumerable,la=(e,t,n)=>t in e?ia(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ca=(e,t)=>{for(var n in t||(t={}))sa.call(t,n)&&la(e,n,t[n]);if(ra)for(var n of ra(t))aa.call(t,n)&&la(e,n,t[n]);return e};class ua extends e.Component{static getItemListValue(e){let t=null;return"string"==typeof e&&(t=e),"[object Object]"===Object.prototype.toString.call(e)&&(t=e.name),ns(e)&&(t=Us(e,"dd/MM/yyyy")),t}static getListItemCssClass(e){const t=[];return"inline"===e&&t.push("tyk-editable-list-item--inline"),t.join(" ")}constructor(t){super(t);const{value:n}=this.props;this.state={initialValue:n||"",value:n||[],buttonWidth:0},this.startIndex=1,this.handleFormSubmit=this.handleFormSubmit.bind(this),this.getMainFormButtonWidth=this.getMainFormButtonWidth.bind(this),this.dropdownListItemRef=(0,e.createRef)()}static getDerivedStateFromProps(e,t){const n={};return e.value&&JSON.stringify(e.value)!==JSON.stringify(t.initialValue)&&(n.value=e.value||[],n.initialValue=e.value||""),n.value?n:null}handleFormSubmit(e){const t=this.addValues(e);this.setState((e=>ca(ca({},e),t)),(()=>{this.triggerOnChange(t.value.length-1,null,e)}))}handleItemUpdate(e,t){let n;this.setState((o=>{const i=ca({},o);return n=(0,pe.fromJS)(i.value[e].value).toJS(),i.value[e].value=t,i.value[e].editMode=!1,i}),(()=>{this.triggerOnChange(e,n,t)}))}handleChildrenOnChange(e,t){let n;this.setState((o=>{const i=ca({},o);return n=(0,pe.fromJS)(i.value[e].children).toJS(),i.value[e].children=t,i}),(()=>{this.triggerOnChange(e,n,t)}))}getListItemsCssClass(e){const{config:t}=this.props,n=["tyk-editable-list-items"];return n.push(t.displayType||"table"),"inline"===e&&n.push("tyk-editable-list-items--inline"),n.join(" ")}getFormInputKey(){return this.startIndex+=1,this.startIndex}getListItemText(e){const{config:n}=this.props;let o=null;switch(n.displayType){case"list":case"inline":o=e.value.reduce(((t,n,o)=>{const i=ua.getItemListValue(n);let r=", ";return o===e.value.length-1&&(r=""),t+i+r}),"");break;default:o=t().createElement(yi,null,n.components.map(((n,o)=>t().createElement(li,{key:this.getFormInputKey(),size:`md-${n.size} lg-${n.size}`},ua.getItemListValue(e.value[o])))))}return o}getMainFormButtonWidth(e){this.setState({buttonWidth:e})}setItemEditMode(e){const t=this.closeListItems();this.setState((n=>{const o=ca({},n);return o.value=t,o.value[e].editMode=!o.value[e].editMode,o}))}isInList(e,t){const{value:n}=this.state;let o=!1;return n.forEach(((n,i)=>{JSON.stringify(n.value)===JSON.stringify(t)&&(o=!(e>=0&&i===e))})),o}addValues(e){const{value:t}=this.state,{config:n}=this.props,o={editMode:!1,value:e},i={value:t.slice(0)};return n.children&&(o.children=[]),i.value.push(o),i}removeListItem(e){let t;this.setState((n=>{const o=n.value.slice(0);return t=o.splice(e,1),{value:o}}),(()=>{this.triggerOnChange(e,t,null)}))}closeListItems(){const{value:e}=this.state;return e.map((e=>{const t=ca({},e);return t.editMode?(t.editMode=!1,t):t}))}triggerOnChange(e,t,n){const{onChange:o}=this.props,{value:i}=this.state;o&&"function"==typeof o&&o(i.length?i:null,e,t,n)}genListItem(e,n){var o;const{config:i,disabled:r}=this.props,{buttonWidth:s,value:a}=this.state,l=(0,pe.fromJS)(i.components).toJS();return e.value.forEach(((e,t)=>{l[t].props.value=e})),t().createElement("li",{key:n,className:ua.getListItemCssClass(i.displayType),ref:this.dropdownListItemRef},t().createElement("div",{className:`tyk-editable-list-item__text ${i.displayType||"table"}${e.editMode?" edit-mode-wrapper":""}`},e.editMode?t().createElement(t().Fragment,null,t().createElement(oa,{buttonName:"Update",noLabels:i.noLabels,disabled:r,displayType:i.displayType,components:l,onSubmit:this.handleItemUpdate.bind(this,n),validate:this.isInList.bind(this,n),validationmessage:"This value is already in the list"}),t().createElement("button",{type:"button",className:"tyk-editable-list-action__button on-edit",onClick:this.removeListItem.bind(this,n),"aria-label":"remove"},t().createElement(g,{type:"trash"}))):t().createElement(t().Fragment,null,this.getListItemText(e,n),t().createElement("div",{className:"tyk-editable-list-item__controls",style:{display:"block",width:"inline"===i.displayType?"auto":`${s+60}px`}},t().createElement("button",{disabled:r,type:"button",className:"tyk-editable-list-action__button",onClick:this.setItemEditMode.bind(this,n),"aria-label":"edit"},t().createElement(g,{type:"edit"})),t().createElement("button",{disabled:r,type:"button",className:"tyk-editable-list-action__button",onClick:this.removeListItem.bind(this,n),"aria-label":"remove"},t().createElement(g,{type:"trash"}))))),i.children?t().createElement(ua,{disabled:r,onChange:this.handleChildrenOnChange.bind(this,n),config:i.children.config,value:(null==(o=a[n])?void 0:o.children)||[]}):null)}genList(){const{config:e}=this.props,{buttonWidth:n,value:o}=this.state;return o&&0!==o.length?t().createElement(t().Fragment,null,"table"!==e.displayType&&e.displayType?null:t().createElement("div",{className:"tyk-editable-list__header",style:{paddingRight:`${n+60}px`}},t().createElement(yi,null,e.components.map(((e,n)=>t().createElement(li,{key:e.props.label||n,size:`md-${e.size||12} lg-${e.size||12}`},e.props.label))))),t().createElement("ul",{className:this.getListItemsCssClass(e.displayType)},o.map(((e,t)=>this.genListItem(e,t))))):null}render(){const{addValueOnFieldChange:e,config:n,error:o,disabled:i,label:r}=this.props,s=document.querySelector(n.appendTo)||document.querySelector("body");return t().createElement("div",{className:"tyk-editable-list"},r?t().createElement("label",null,r):null,t().createElement(oa,{addValueOnFieldChange:e,components:n.components,buttonName:n.formButtonTitle,buttonStyle:n.formButtonStyle,disabled:i,error:o,errorPersist:!!o,noLabels:n.noLabels,onSubmit:this.handleFormSubmit,validate:this.isInList.bind(this,-1),validationmessage:"This value is already in the list",getMainFormButtonWidth:this.getMainFormButtonWidth}),n.appendTo?dt().createPortal(this.genList(),s):this.genList())}}ua.propTypes={addValueOnFieldChange:r().bool,disabled:r().bool,error:r().string,config:r().instanceOf(Object),onChange:r().func,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),value:r().oneOfType([r().instanceOf(Array),r().instanceOf(Object)])};const ha=ua;function da({label:e,addButtonName:n,onAddRow:o,disabled:i,readOnly:r}){return t().createElement("div",{className:"editable-list__header"},e?t().createElement("label",null,e):null,!i&&!r&&t().createElement(U,{theme:"primary rounded-corners",onClick:o},n||"Add"))}da.propTypes={disabled:r().bool,readOnly:r().bool,onAddRow:r().func,addButtonName:r().string,label:r().oneOfType([r().string,r().element,r().node])};const pa=da;function ga({fields:e,readOnly:n}){return t().createElement("li",{className:"editable-list__item editable-list__item-header"},e.map((e=>{var n,o;return t().createElement("div",{key:(null==(n=null==e?void 0:e.props)?void 0:n.label)||JSON.stringify(e),className:`editable-list__item-cell editable-list__item--size-${(null==e?void 0:e.size)||12}`},null==(o=null==e?void 0:e.props)?void 0:o.label)})),t().createElement("div",{className:`editable-list__item-cell editable-list__item-action ${n&&"editable-list__item-action--read-only"}`},"Delete"))}ga.propTypes={fields:r().instanceOf(Array),readOnly:r().bool};const ma=ga;var fa=Object.defineProperty,ya=Object.defineProperties,va=Object.getOwnPropertyDescriptors,ba=Object.getOwnPropertySymbols,wa=Object.prototype.hasOwnProperty,xa=Object.prototype.propertyIsEnumerable,ka=(e,t,n)=>t in e?fa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Ca({fields:e,disabled:n,readOnly:o,errors:i,components:r,onChange:s,onDelete:a,value:l,rowIndex:c}){return t().createElement("li",{className:"editable-list__item"},r.map(((r,a)=>{var u,h,d;const p=e[a],g="function"==typeof p?p(c,a):p;return t().createElement("div",{key:`${c}-${a}`,className:`editable-list__item-cell editable-list__item--size-${(null==(u=e[a])?void 0:u.size)||12}`},t().createElement(r,(m=((e,t)=>{for(var n in t||(t={}))wa.call(t,n)&&ka(e,n,t[n]);if(ba)for(var n of ba(t))xa.call(t,n)&&ka(e,n,t[n]);return e})({},null==g?void 0:g.props),f={label:"",value:l[a],onChange:s.bind(null,a),error:null==i?void 0:i[a],disabled:n||(null==(h=null==g?void 0:g.props)?void 0:h.disabled),readOnly:o||(null==(d=null==g?void 0:g.props)?void 0:d.readOnly)},ya(m,va(f)))));var m,f})),t().createElement("div",{className:`editable-list__item-cell editable-list__item-action ${o&&"editable-list__item-action--read-only"}`},t().createElement(U,{iconOnly:!0,iconType:"trash",theme:"primary-link",onClick:a,disabled:o||n})))}Ca.propTypes={disabled:r().bool,readOnly:r().bool,rowIndex:r().oneOfType([r().string,r().number]),fields:r().instanceOf(Array),errors:r().instanceOf(Array),components:r().instanceOf(Array),value:r().instanceOf(Array),onChange:r().func,onDelete:r().func};const $a=Ca;var Sa=Object.defineProperty,Ea=Object.defineProperties,Oa=Object.getOwnPropertyDescriptors,Ta=Object.getOwnPropertySymbols,Aa=Object.prototype.hasOwnProperty,_a=Object.prototype.propertyIsEnumerable,La=(e,t,n)=>t in e?Sa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;let Ma=1;function Ra({addButtonName:n,disabled:o,readOnly:i,fields:r,label:s,error:a,value:l=[],onChange:c=(()=>{}),hideOnEmpty:u=!0,wrapperClassName:h=""}){const[d,p]=(0,e.useState)(null),g=(e,t,n,o)=>{var i;const s=l?[...l]:[];if(l){const o=[...s[e]];o[t]=n,s[e]=o,s[e].id=l[e].id}else s[e]=[...new Array(r.length)],s[e][t]=n;if((null==(i=null==d?void 0:d[e])?void 0:i[t])&&o){const n=[...d],o=[...n[e]];o[t]=null,n[e]=o,p(n)}c(s)},m=(0,e.useMemo)((()=>r.map((n=>{const o="function"==typeof n?n():n;return i=(null==o?void 0:o.component)||null,n=>{var o=n,{onChange:r,validate:s,error:a}=o,l=((e,t)=>{var n={};for(var o in e)Aa.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ta)for(var o of Ta(e))t.indexOf(o)<0&&_a.call(e,o)&&(n[o]=e[o]);return n})(o,["onChange","validate","error"]);const[c,u]=(0,e.useState)(null),h=(0,e.useCallback)((e=>{const t=(null==e?void 0:e.target)?["radio","checkbox"].includes(e.target.type)?e.target.checked:null==e?void 0:e.target.value:e;let n=!0;if(s&&"function"==typeof s){const e=s(t);n=!e,u(e)}r(t,n)}),[s,r]);return t().createElement(i,(d=((e,t)=>{for(var n in t||(t={}))Aa.call(t,n)&&La(e,n,t[n]);if(Ta)for(var n of Ta(t))_a.call(t,n)&&La(e,n,t[n]);return e})({},l),Ea(d,Oa({onChange:h,error:c||a}))));var d};var i}))),[]),f=e=>{if(!l)return;const t=[...l];t.splice(e,1),c(t)};return t().createElement("div",{className:`editable-list__wrapper tyk-form-group tyk-form-group--default ${a?"has-error":""} ${h}`},t().createElement(pa,{disabled:o,readOnly:i,label:s,addButtonName:n,onAddRow:()=>{const e=((e,t)=>{var n;return null==(n=t||[[void 0,void 0]])?void 0:n.map((t=>null==t?void 0:t.map(((t,n)=>{var o,i;return null==(i=(o=e[n].props).validate)?void 0:i.call(o,t)}))))})(r,l);if((e=>{var t;return Boolean(null==(t=null==e?void 0:e.flat())?void 0:t.filter(Boolean).length)})(e))return void p(e);const t=[...new Array(r.length)];t.id="row-"+Ma++,c([...l,t])}}),(null==l?void 0:l.length)||!u?t().createElement("ul",{className:"editable-list__list"},(l||[[]]).map(((e,n)=>t().createElement($a,{key:e.id||n,rowIndex:n,disabled:o,readOnly:i,fields:r,onChange:g.bind(null,n),onDelete:f.bind(null,n),value:e,errors:null==d?void 0:d[n],components:m}))),t().createElement(ma,{fields:r,readOnly:i})):null,a&&"true"!==a&&"false"!==a?t().createElement("p",{className:"tyk-form-control__error-message"},a):null)}Ra.propTypes={disabled:r().bool,readOnly:r().bool,addButtonName:r().string,label:r().oneOfType([r().string,r().element,r().node]),fields:r().instanceOf(Array),onChange:r().func,value:r().oneOfType([r().instanceOf(Object),r().instanceOf(Array)]),error:r().string,hideOnEmpty:r().bool,wrapperClassName:r().string};const Na=Ra;var Ia=Object.defineProperty,Pa=Object.defineProperties,Da=Object.getOwnPropertyDescriptors,Fa=Object.getOwnPropertySymbols,Ba=Object.prototype.hasOwnProperty,Wa=Object.prototype.propertyIsEnumerable,Ha=(e,t,n)=>t in e?Ia(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function ja(n){var o=n,{error:i,theme:r,labelwidth:s,wrapperClassName:a="",id:l,label:c,note:u,accept:h,value:d,onChange:p}=o,m=((e,t)=>{var n={};for(var o in e)Ba.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Fa)for(var o of Fa(e))t.indexOf(o)<0&&Wa.call(e,o)&&(n[o]=e[o]);return n})(o,["error","theme","labelwidth","wrapperClassName","id","label","note","accept","value","onChange"]);const f=(0,e.useRef)();return t().createElement("div",{className:function(){const e=[a,"tyk-form-group"],t=r?r.split(" "):[];return t.length&&t.forEach((t=>{e.push(`tyk-form-group--${t}`)})),s&&e.push("tyk-form-group--label-has-width"),i&&e.push("has-error"),e.join(" ")}()},c?t().createElement("label",{htmlFor:l,style:function(){const e={};return s&&(e.flexBasis=s),e}()},c):null,t().createElement("div",{className:"tyk-form-control__wrapper"},t().createElement("div",{className:"tyk-file-input__wrapper",style:function(){const e={};return s&&(e.flexBasis=`calc(100% - ${s} - 20px)`),e}()},t().createElement("input",(y=((e,t)=>{for(var n in t||(t={}))Ba.call(t,n)&&Ha(e,n,t[n]);if(Fa)for(var n of Fa(t))Wa.call(t,n)&&Ha(e,n,t[n]);return e})({accept:h,className:"tyk-form-control"},m),Pa(y,Da({onChange:function(e){p(e.target.files)},ref:f,type:"file"})))),f.current&&f.current.files.length>0?t().createElement("button",{onClick:function(){f.current.value="",p("")},type:"button","aria-label":"clear value"},t().createElement(g,{type:"xmark"})):null),u?t().createElement("p",{className:"tyk-form-control__help-block"},u):null),i&&"true"!==i&&"false"!==i?t().createElement("p",{className:"tyk-form-control__error-message"},i):null);var y}ja.propTypes={accept:r().string,disabled:r().bool,id:r().string,error:r().oneOfType([r().string,r().bool]),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,placeholder:r().string,theme:r().string,value:r().instanceOf(Object),wrapperClassName:r().string};const za=ja;var Va=Object.defineProperty,Ua=Object.defineProperties,Ga=Object.getOwnPropertyDescriptors,Ka=Object.getOwnPropertySymbols,qa=Object.prototype.hasOwnProperty,Ya=Object.prototype.propertyIsEnumerable,Ja=(e,t,n)=>t in e?Va(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Xa extends e.Component{static getAddon(e){return t().createElement("div",{className:"tyk-input-group__addon"},e)}constructor(e){super(e);const{value:t}=this.props;this.state={initValue:t,stateValue:t},this.handleOnChange=this.handleOnChange.bind(this)}componentDidUpdate(e){const{isfield:t,value:n,onChange:o}=this.props;t||e.value===n||this.setState({stateValue:n},(()=>{o&&o(n)}))}handleOnChange(e){const{onChange:t,isfield:n}=this.props,o=e.target.value;n?t(o):this.setState({stateValue:o},(()=>{t&&t(o)}))}getLabelStyles(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=e),t}getNonLabelWidth(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=`calc(100% - ${e} - 20px)`),t}getInputError(){const{error:e}=this.props;return e&&"true"!==e&&"false"!==e?t().createElement("p",{className:"tyk-form-control__error-message"},e):null}getCssClasses(){const{error:e,theme:t,labelwidth:n,inputgroupaddonleft:o,inputgroupaddonright:i}=this.props,r=["tyk-form-group"],s=t?t.split(" "):[];return s.length&&s.forEach((e=>{r.push(`tyk-form-group--${e}`)})),o&&r.push("tyk-form-group--addon-left"),i&&r.push("tyk-form-group--addon-right"),n&&r.push("tyk-form-group--label-has-width"),e&&r.push("has-error"),r.join(" ")}getInputGroupAddon(){const{inputgroupaddonleft:e,inputgroupaddonright:n}=this.props;return t().createElement("div",{className:"tyk-input-group"},e?Xa.getAddon(e):null,this.getInputComponent(),n?Xa.getAddon(n):null)}getInputComponent(){const e=this.props,{isfield:n,onChange:o,value:i}=e,r=((e,t)=>{var n={};for(var o in e)qa.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ka)for(var o of Ka(e))t.indexOf(o)<0&&Ya.call(e,o)&&(n[o]=e[o]);return n})(e,["isfield","onChange","value"]),{stateValue:s}=this.state;return t().createElement("input",(a=((e,t)=>{for(var n in t||(t={}))qa.call(t,n)&&Ja(e,n,t[n]);if(Ka)for(var n of Ka(t))Ya.call(t,n)&&Ja(e,n,t[n]);return e})({autoComplete:"off",className:"tyk-form-control"},r),l={onChange:this.handleOnChange,value:n?i:s},Ua(a,Ga(l))));var a,l}reset(){const{initValue:e}=this.state;this.setState({stateValue:e})}render(){const{label:e,id:n,inputgroupaddonleft:o,inputgroupaddonright:i,note:r,readOnly:s,value:a}=this.props;return t().createElement("div",{className:this.getCssClasses()},e?t().createElement("label",{htmlFor:n,style:this.getLabelStyles()},e):null,!s&&t().createElement("div",{className:"tyk-form-control__wrapper",style:this.getNonLabelWidth()},o||i?this.getInputGroupAddon():this.getInputComponent(),r?t().createElement("p",{className:"tyk-form-control__help-block"},r):null,this.getInputError()),s&&t().createElement("div",{className:"tyk-form-control--readonly"},a||"-"))}}Xa.propTypes={disabled:r().bool,readOnly:r().bool,id:r().string,isfield:r().bool,error:r().oneOfType([r().string,r().bool]),inputgroupaddonleft:r().oneOfType([r().element,r().node,r().string]),inputgroupaddonright:r().oneOfType([r().element,r().node,r().string]),label:r().oneOfType([r().string,r().element,r().node]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,placeholder:r().string,theme:r().string,value:r().oneOfType([r().number,r().string])};const Qa=Xa;var Za=Object.defineProperty,el=Object.defineProperties,tl=Object.getOwnPropertyDescriptors,nl=Object.getOwnPropertySymbols,ol=Object.prototype.hasOwnProperty,il=Object.prototype.propertyIsEnumerable,rl=(e,t,n)=>t in e?Za(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,sl=(e,t)=>{for(var n in t||(t={}))ol.call(t,n)&&rl(e,n,t[n]);if(nl)for(var n of nl(t))il.call(t,n)&&rl(e,n,t[n]);return e};function al(n,o){var i=n,{error:r,onChange:s,readOnly:a,id:l,inputgroupaddonleft:c,inputgroupaddonright:u,label:h,labelwidth:d,note:p,theme:g,value:m,wrapperClassName:f=""}=i,y=((e,t)=>{var n={};for(var o in e)ol.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&nl)for(var o of nl(e))t.indexOf(o)<0&&il.call(e,o)&&(n[o]=e[o]);return n})(i,["error","onChange","readOnly","id","inputgroupaddonleft","inputgroupaddonright","label","labelwidth","note","theme","value","wrapperClassName"]);const v=(0,e.useRef)();(0,e.useImperativeHandle)(o,(()=>({focus:()=>{v.current.focus()}})));const b=e=>t().createElement("div",{className:"tyk-input-group__addon"},e),w=e=>{s(e,e.target.value)},x=()=>{return t().createElement("input",(e=sl({autoComplete:"off",className:"tyk-form-control"},y),el(e,tl({onChange:w,value:m,ref:v}))));var e};return t().createElement("div",{className:(()=>{const e=[f,"tyk-form-group"],t=g?g.split(" "):[];return t.length&&t.forEach((t=>{e.push(`tyk-form-group--${t}`)})),c&&e.push("tyk-form-group--addon-left"),u&&e.push("tyk-form-group--addon-right"),d&&e.push("tyk-form-group--label-has-width"),r&&e.push("has-error"),e.join(" ")})()},h?t().createElement("label",{htmlFor:l,style:sl({},d&&{flexBasis:d})},h):null,!a&&t().createElement("div",{className:"tyk-form-control__wrapper",style:sl({},d&&{flexBasis:`calc(100% - ${d} - 20px)`})},c||u?t().createElement("div",{className:"tyk-input-group"},c?b(c):null,x(),u?b(u):null):x(),p?t().createElement("p",{className:"tyk-form-control__help-block"},p):null,r&&"true"!==r&&"false"!==r?t().createElement("p",{className:"tyk-form-control__error-message"},r):null),a&&t().createElement("div",{className:"tyk-form-control--readonly"},m||"-"))}al.propTypes={disabled:r().bool,readOnly:r().bool,id:r().string,error:r().oneOfType([r().string,r().bool]),inputgroupaddonleft:r().oneOfType([r().element,r().node,r().string]),inputgroupaddonright:r().oneOfType([r().element,r().node,r().string]),label:r().oneOfType([r().string,r().element,r().node]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,placeholder:r().string,theme:r().string,value:r().oneOfType([r().number,r().string]),wrapperClassName:r().string};const ll=(0,e.forwardRef)(al),cl=(0,e.createContext)();function ul({item:n,itemType:o,searchValue:i,onChange:r}){const s=(0,e.useCallback)((e=>(null==e?void 0:e.length)>0?e.some((e=>{var t;return null==(t=n[e])?void 0:t.includes(i)})):JSON.stringify(n).includes(i)),[n,i]),a=(0,e.useCallback)((()=>{r(n)}),[r,n]);return t().createElement(cl.Consumer,null,(e=>s(e.fieldsToSearchOn)?t().createElement("li",null,t().createElement("div",null,t().createElement("span",{className:"tyk-multiselect-item__name"},e.itemDisplayTemplate?e.itemDisplayTemplate(n):JSON.stringify(n)),t().createElement("span",{className:"tyk-multiselect-item__controls"},t().createElement(U,{iconType:"normal"===o?"plus":"minus",iconOnly:!0,onClick:a,disabled:e.disabled||e.maxSelections&&e.maxSelections===e.nrSelectedItems&&"normal"===o}),t().createElement(U,{iconType:e.opened[n.id]?"chevron-up":"chevron-down",iconOnly:!0,onClick:()=>e.onGetItemDetails(n)}))),n.details?t().createElement(R,{collapsed:!e.opened[n.id],className:"tyk-multiselect-item__details"},((e,t)=>e.detailsDisplayTemplate?e.detailsDisplayTemplate(t):JSON.stringify(t.details))(e,n)):((e,n)=>{const{opened:o}=e;return o[n.id]?t().createElement(ye,{position:"relative"}):null})(e,n)):null))}ul.propTypes={item:r().instanceOf(Object),itemType:r().string,searchValue:r().string,onChange:r().func};const hl=ul;function dl({inputPlaceholder:n,noItemsMessage:o,items:i,onCustomSearch:r,onChange:s,customSearch:a,panelType:l,serverLoad:c,itemsPageNumber:u,itemsNrPages:h,loadMoreItems:d}){const[p,m]=(0,e.useState)(""),f=(0,e.useRef)(0),y=(0,e.useRef)(),v=(0,e.useCallback)((e=>{r?r(e):m(e)}),[r]),b=(0,e.useCallback)((e=>{let t=structuredClone(i);t=t.filter((t=>e.id!==t.id)),s(t,e)}),[i]);function w(){return t().createElement("ul",{className:"tyk-multiselect__list"+(c?"":" tyk-multiselect__list--scroll"),ref:y},i.map((e=>t().createElement(hl,{itemType:l,key:(f.current+=1,f.current),onChange:b,searchValue:a?"":p,item:e}))))}return t().createElement("div",{className:"tyk-multiselect__panel"},t().createElement(Qa,{inputgroupaddonleft:t().createElement(g,{type:"magnifying-glass"}),name:"search",onChange:v,placeholder:n,value:p}),i.length?c?t().createElement(At,{refChild:y,hasMore:h>u,loadMore:d,pageNumber:u},w()):w():t().createElement(be,{theme:"info"},o))}dl.propTypes={customSearch:r().bool,onCustomSearch:r().func,panelType:r().string,onChange:r().func,items:r().instanceOf(Array),itemsPageNumber:r().number,itemsNrPages:r().number,inputPlaceholder:r().string,loadMoreItems:r().func,noItemsMessage:r().string,serverLoad:r().bool};const pl=dl;var gl=Object.defineProperty,ml=Object.defineProperties,fl=Object.getOwnPropertyDescriptors,yl=Object.getOwnPropertySymbols,vl=Object.prototype.hasOwnProperty,bl=Object.prototype.propertyIsEnumerable,wl=(e,t,n)=>t in e?gl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const xl=(e,t)=>t.filter((t=>!e.find((e=>e.id===t.id))));function kl({customSearch:n,entityNamePlural:o,disabled:i,error:r,getItemDetails:s,itemDisplayTemplate:a,detailsDisplayTemplate:l,fieldsToSearchOn:c,items:u,itemsPageNumber:h,itemsNrPages:d,loadMoreItems:p,maxSelections:g,note:m,value:f,onChange:y,wrapperClassName:v=""}){const[b,w]=(0,e.useState)({}),x=(0,e.useCallback)((e=>{w((t=>{return n=((e,t)=>{for(var n in t||(t={}))vl.call(t,n)&&wl(e,n,t[n]);if(yl)for(var n of yl(t))bl.call(t,n)&&wl(e,n,t[n]);return e})({},t),o={[e.id]:!t[e.id]},ml(n,fl(o));var n,o})),s&&s(e)}),[s]),k=(0,e.useCallback)((()=>[v,"tyk-multiselect",r&&"has-error"].filter(Boolean).join(" ")),[v,r]),C=(0,e.useCallback)(((e,t)=>{const n=structuredClone(f);n.unshift(t),y(n,t,"added")}),[f]),$=(0,e.useCallback)(((e,t)=>{y(e,t,"removed")}),[u]),S=(0,e.useMemo)((()=>({disabled:i,itemDisplayTemplate:a,detailsDisplayTemplate:l,fieldsToSearchOn:c,maxSelections:g,nrSelectedItems:f.length,onGetItemDetails:x,opened:b})),[i,a,l,c,g,f,x,b]);return t().createElement(t().Fragment,null,t().createElement("div",{className:k()},t().createElement(cl.Provider,{value:S},t().createElement("div",{className:"tyk-multiselect__header"},t().createElement("div",null,f.length," ","Selected"," ",o),t().createElement("div",null,"Select from existing",o)),t().createElement("div",{className:"tyk-multiselect__panel-wrapper"},t().createElement(pl,{inputPlaceholder:`Search through selected ${o}`,noItemsMessage:`Selected ${o} will show here`,items:f,onChange:$,panelType:"selected"}),t().createElement(pl,{inputPlaceholder:`Search existing ${o}`,noItemsMessage:`No ${o} to display`,entityNamePlural:o,customSearch:!!n,onCustomSearch:n,items:xl(f,u),onChange:C,serverLoad:!!p,loadMoreItems:p,itemsPageNumber:h,itemsNrPages:d,panelType:"normal"})))),t().createElement("div",null,m?t().createElement("p",{className:"tyk-form-control__help-block"},m):null),r&&"true"!==r&&"false"!==r?t().createElement("p",{className:"tyk-form-control__error-message"},r):null)}kl.propTypes={customSearch:r().func,disabled:r().bool,error:r().string,entityNamePlural:r().string,items:r().instanceOf(Array),itemDisplayTemplate:r().func,detailsDisplayTemplate:r().func,fieldsToSearchOn:r().instanceOf(Array),onChange:r().func,getItemDetails:r().func,itemsPageNumber:r().number,itemsNrPages:r().number,loadMoreItems:r().func,note:r().string,maxSelections:r().number,value:r().instanceOf(Array),wrapperClassName:r().string};const Cl=kl;var $l=Object.defineProperty,Sl=Object.defineProperties,El=Object.getOwnPropertyDescriptors,Ol=Object.getOwnPropertySymbols,Tl=Object.prototype.hasOwnProperty,Al=Object.prototype.propertyIsEnumerable,_l=(e,t,n)=>t in e?$l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ll=(e,t)=>{for(var n in t||(t={}))Tl.call(t,n)&&_l(e,n,t[n]);if(Ol)for(var n of Ol(t))Al.call(t,n)&&_l(e,n,t[n]);return e};function Ml(e){var n=e,{label:o,input:i,note:r,inline:s,nospace:a,theme:l="",disabled:c,readOnly:u,wrapperClassName:h=""}=n,d=((e,t)=>{var n={};for(var o in e)Tl.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ol)for(var o of Ol(e))t.indexOf(o)<0&&Al.call(e,o)&&(n[o]=e[o]);return n})(n,["label","input","note","inline","nospace","theme","disabled","readOnly","wrapperClassName"]);const p=[s?"tyk-radio--inline":"tyk-radio",h,a&&"no-margin",...l?l.split(" ").filter(Boolean).map((e=>`tyk-radio--theme-${e}`)):[],(u||c)&&"tyk-radio--is-disabled"].filter(Boolean).join(" ");return t().createElement("div",{className:p},t().createElement("label",null,t().createElement("input",(g=Ll(Ll({},i),d),Sl(g,El({type:"radio",disabled:u||c})))),o),r&&t().createElement("p",{className:"tyk-form-control__help-block"},r));var g}Ml.propTypes={disabled:r().bool,readOnly:r().bool,inline:r().bool,theme:r().string,input:r().instanceOf(Object),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),name:r().string,nospace:r().bool,value:r().string,note:r().oneOfType([r().string,r().element,r().node]),wrapperClassName:r().string};const Rl=Ml;var Nl=Object.defineProperty,Il=Object.defineProperties,Pl=Object.getOwnPropertyDescriptors,Dl=Object.getOwnPropertySymbols,Fl=Object.prototype.hasOwnProperty,Bl=Object.prototype.propertyIsEnumerable,Wl=(e,t,n)=>t in e?Nl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Hl(n){const o=n,{value:i,onChange:r,onBlur:s,isfield:a,label:l,labelwidth:c,id:u,note:h,readOnly:d,options:p,error:g,theme:m,wrapperClassName:f=""}=o,y=((e,t)=>{var n={};for(var o in e)Fl.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Dl)for(var o of Dl(e))t.indexOf(o)<0&&Bl.call(e,o)&&(n[o]=e[o]);return n})(o,["value","onChange","onBlur","isfield","label","labelwidth","id","note","readOnly","options","error","theme","wrapperClassName"]),[v,b]=(0,e.useState)(i);(0,e.useEffect)((()=>{a||v===i||(b(i),r&&r(i))}),[v,i]);const w=(0,e.useCallback)((e=>{const t=p.find((t=>t.id===e.target.value));a||b(t),r(t.id?t:null)}),[p,a,r]),x=(0,e.useCallback)((()=>{s&&s(i)}),[s]),k=(0,e.useCallback)((()=>g&&"true"!==g&&"false"!==g?t().createElement("p",{className:"tyk-form-control__error-message"},g):null),[g]),C=(0,e.useCallback)((()=>["tyk-form-group",f,...m?m.split(" ").map((e=>`tyk-form-group--${e}`)):[],c&&"tyk-form-group--label-has-width",g&&"has-error"].filter(Boolean).join(" ")),[f,m,c,g]),$=(0,e.useCallback)((()=>c?{flexBasis:c}:{}),[c]),S=(0,e.useCallback)((()=>c?{flexBasis:`calc(100% - ${c} - 20px)`}:{}),[c]),E=(0,e.useCallback)((()=>{const e=a&&i?i:v;return t().createElement("select",(n=((e,t)=>{for(var n in t||(t={}))Fl.call(t,n)&&Wl(e,n,t[n]);if(Dl)for(var n of Dl(t))Bl.call(t,n)&&Wl(e,n,t[n]);return e})({className:"tyk-form-control tyk-select"},y),o={onChange:w,onBlur:x,value:e?e.id:""},Il(n,Pl(o))),p.map((e=>t().createElement("option",{key:e.id,value:e.id},e.name))));var n,o}),[a,i,v,w,x,p,y]);return t().createElement("div",{className:C()},l?t().createElement("label",{htmlFor:u,style:$()},l):null,!d&&t().createElement("div",{className:"tyk-form-control__wrapper",style:S()},E(),h?t().createElement("p",{className:"tyk-form-control__help-block"},h):null,k()),d&&t().createElement("div",{className:"tyk-form-control--readonly"},i||"-"))}Hl.propTypes={disabled:r().bool,readOnly:r().bool,id:r().string,isfield:r().bool,error:r().oneOfType([r().string,r().bool]),options:r().instanceOf(Array),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,name:r().string,note:r().string,onBlur:r().func,onChange:r().func,placeholder:r().string,theme:r().string,value:r().oneOfType([r().string,r().object]),wrapperClassName:r().string};const jl=Hl;var zl=Object.defineProperty,Vl=Object.defineProperties,Ul=Object.getOwnPropertyDescriptors,Gl=Object.getOwnPropertySymbols,Kl=Object.prototype.hasOwnProperty,ql=Object.prototype.propertyIsEnumerable,Yl=(e,t,n)=>t in e?zl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Jl(e){const{checkboxalticon:n,items:o,itemTemplate:i,value:r,noItemsMessage:s="No items in the list",onChange:a,theme:l,primaryKey:c,wrapperClassName:u=""}=e,h=e=>{const t=structuredClone(r),n=t.findIndex((t=>JSON.stringify(t)===JSON.stringify(Array.isArray(t)?e.target.value.split(","):e.target.value)));if(e.target.checked&&-1===n){const n=e.target.value.split(","),o=n.length>1?n:e.target.value;t.push(o)}else!e.target.checked&&n>-1&&t.splice(n,1);a&&a(t)},d=e=>{const t=[];return n&&t.push("tyk-selectable-list__item--with-icon"),e&&t.push("tyk-selectable-list__item--active"),t.join(" ")};return t().createElement(jt,(p=((e,t)=>{for(var n in t||(t={}))Kl.call(t,n)&&Yl(e,n,t[n]);if(Gl)for(var n of Gl(t))ql.call(t,n)&&Yl(e,n,t[n]);return e})({},e),Vl(p,Ul({theme:l||"default",className:`tyk-selectable-list ${u}`}))),o.length?o.map(((e,o)=>{return t().createElement(jt.Item,{key:o,className:d(r.includes(e[c]))},t().createElement("label",null,t().createElement("div",{className:"tyk-selectable-list__item"},i?i(e):e.name),t().createElement("input",{type:"checkbox",checked:(s=r,a=e[c],Boolean(s.find((e=>JSON.stringify(a)===JSON.stringify(e))))),onChange:h.bind(e),value:e[c]}),n?t().createElement(g,{type:n}):null));var s,a})):t().createElement("li",{className:"tyk-selectable-list__no-items-message"},t().createElement(be,{theme:"info"},s)));var p}Jl.propTypes={items:r().instanceOf(Array),itemTemplate:r().oneOfType([r().node,r().element,r().string,r().func]),value:r().instanceOf(Array),onChange:r().func,primaryKey:r().string,noItemsMessage:r().string,checkboxalticon:r().oneOfType([r().node,r().element,r().string]),theme:r().string,wrapperClassName:r().string},Jl.defaultProps={items:[],primaryKey:"id",value:[]};const Xl=Jl;var Ql=Object.defineProperty,Zl=Object.getOwnPropertySymbols,ec=Object.prototype.hasOwnProperty,tc=Object.prototype.propertyIsEnumerable,nc=(e,t,n)=>t in e?Ql(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,oc=(e,t)=>{for(var n in t||(t={}))ec.call(t,n)&&nc(e,n,t[n]);if(Zl)for(var n of Zl(t))tc.call(t,n)&&nc(e,n,t[n]);return e};function ic(e){var n=e,{id:o,input:i,label:r,note:s,error:a,theme:l,labelwidth:c,value:u,readOnly:h,wrapperClassName:d}=n,p=((e,t)=>{var n={};for(var o in e)ec.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Zl)for(var o of Zl(e))t.indexOf(o)<0&&tc.call(e,o)&&(n[o]=e[o]);return n})(n,["id","input","label","note","error","theme","labelwidth","value","readOnly","wrapperClassName"]);const g=["tyk-form-group",d,...l?l.split(" ").map((e=>`tyk-form-group--${e}`)):[],c&&"tyk-form-group--label-has-width",a&&"has-error"].filter(Boolean).join(" ");return t().createElement("div",{className:g},r?t().createElement("label",{htmlFor:o,style:c?{flexBasis:c}:{}},r):null,!h&&t().createElement("div",{className:"tyk-form-control__wrapper",style:c?{flexBasis:`calc(100% - ${c} - 20px)`}:{}},t().createElement("textarea",oc(oc({className:"tyk-form-control"},p),i),u),s?t().createElement("p",{className:"tyk-form-control__help-block"},s):null,a&&"true"!==a&&"false"!==a?t().createElement("p",{className:"tyk-form-control__error-message"},a):null),h&&t().createElement("div",{className:"tyk-form-control--readonly"},u||"-"))}ic.propTypes={disabled:r().bool,readOnly:r().bool,input:r().instanceOf(Object),error:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,id:r().string,theme:r().string,value:r().string,wrapperClassName:r().string};const rc=ic,sc=(0,e.createContext)();class ac extends e.Component{static getNotchCssClasses(e){return["tyk-toggle__item-notch",`tyk-toggle__item-notch--${e.type}`].join(" ")}constructor(t){super(t),this.itemRef=(0,e.createRef)()}componentDidMount(){const{context:e,value:t}=this.props;e.value===t&&e.saveSelectedRef(this.itemRef)}componentDidUpdate(e){const{context:t,value:n}=this.props;e.context.value!==t.value&&t.value===n&&t.saveSelectedRef(this.itemRef)}onChange(e){const{context:t,value:n}=this.props,{disabled:o,readOnly:i}=t;o||i||t.onItemSelected("single"===t.type?!t.value:n,e)}render(){const{context:e,label:n,name:o,value:i}=this.props;return t().createElement("li",{className:"tyk-toggle__item "+(!e.value||"single"!==e.type&&e.value!==i?"":"tyk-toggle__item--active"),ref:this.itemRef},t().createElement("label",null,t().createElement("input",{type:"single"===e.type?"checkbox":"radio",name:o,checked:e.value===i,onChange:this.onChange.bind(this),value:i}),n?t().createElement("span",null,n):t().createElement("span",{className:"empty-toggle"}," "),"single"===e.type?t().createElement("span",{className:ac.getNotchCssClasses(e)}):null))}}ac.propTypes={context:r().instanceOf(Object),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),name:r().string,value:r().string};const lc=ac;var cc=Object.defineProperty,uc=Object.defineProperties,hc=Object.getOwnPropertyDescriptors,dc=Object.getOwnPropertySymbols,pc=Object.prototype.hasOwnProperty,gc=Object.prototype.propertyIsEnumerable,mc=(e,t,n)=>t in e?cc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function fc(e,n){var o=e,{children:i}=o,r=((e,t)=>{var n={};for(var o in e)pc.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&dc)for(var o of dc(e))t.indexOf(o)<0&&gc.call(e,o)&&(n[o]=e[o]);return n})(o,["children"]);return t().createElement(sc.Consumer,null,(e=>{return t().createElement(lc,(o=((e,t)=>{for(var n in t||(t={}))pc.call(t,n)&&mc(e,n,t[n]);if(dc)for(var n of dc(t))gc.call(t,n)&&mc(e,n,t[n]);return e})({},r),uc(o,hc({context:e,ref:n}))),i);var o}))}fc.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string])};const yc=(0,e.forwardRef)(fc);function vc({className:n,disabled:o,readOnly:i,size:r,theme:s,direction:a,onDark:l,wrapperClassName:c="",onChange:u,labelwidth:h,label:d,separated:p,children:g,type:m,value:f,error:y}){const[v,b]=(0,e.useState)(null),w=(0,e.useRef)(),x=(0,e.useRef)(),k=[c,n,"tyk-toggle",`tyk-toggle--disabled-${i||o}`,`tyk-toggle--${r||"md"}`,`tyk-toggle--${s}`,`tyk-toggle--${a}`,l&&"tyk-toggle--on-dark"].filter(Boolean).join(" "),C=(0,e.useCallback)(((e,t)=>{u&&u(e,t)}),[u]),$=(0,e.useCallback)((()=>h?{flexBasis:h}:{}),[h]),S=(0,e.useCallback)((()=>{if(!v||p)return{};const e=v.current.offsetWidth;return{left:v.current.getBoundingClientRect().left-x.current.getBoundingClientRect().left+4+"px",width:e-8+"px"}}),[v,p]),E=(0,e.useMemo)((()=>({disabled:o,readOnly:i,onItemSelected:C,saveSelectedRef:b,separated:p,type:m,value:f})),[o,i,C,p,m,f]);return t().createElement(t().Fragment,null,t().createElement("div",{className:k,ref:x},t().createElement(sc.Provider,{value:E},d?t().createElement("label",{className:"tyk-toggle__label",style:$()},d):null,t().createElement("ul",{className:`tyk-toggle__list tyk-toggle__list--${m} ${y&&"tyk-toggle__list--has-error"} tyk-toggle__list--${p?"separated":"not-separated"}`},g,"multiple"!==m||p?null:t().createElement("li",{className:"tyk-toggle__notch",ref:w,style:S()})))),y&&t().createElement("p",{className:"tyk-form-control__error-message"},y))}vc.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,disabled:r().bool,readOnly:r().bool,error:r().string,onChange:r().func,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,theme:r().string,type:r().string,size:r().string,separated:r().bool,direction:r().string,value:r().oneOfType([r().bool,r().string]),onDark:r().bool,wrapperClassName:r().string},vc.defaultProps={separated:!1,theme:"primary",type:"single",direction:"row"},vc.Item=yc;const bc=vc,wc={FORM_DEBOUNCE:200};function xc(e,t){wc[e]=t}const kc=wc;var Cc=Object.defineProperty,$c=Object.defineProperties,Sc=Object.getOwnPropertyDescriptors,Ec=Object.getOwnPropertySymbols,Oc=Object.prototype.hasOwnProperty,Tc=Object.prototype.propertyIsEnumerable,Ac=(e,t,n)=>t in e?Cc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,_c=(e,t)=>{for(var n in t||(t={}))Oc.call(t,n)&&Ac(e,n,t[n]);if(Ec)for(var n of Ec(t))Tc.call(t,n)&&Ac(e,n,t[n]);return e},Lc=(e,t)=>$c(e,Sc(t));function Mc(e,t){return t.split(/[\][.]/).filter(Boolean).reduce(((e,t)=>e?e[t]:e),e)}const Rc=(n,o)=>i=>{var r,s=i,{field:a,form:l}=s,c=((e,t)=>{var n={};for(var o in e)Oc.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ec)for(var o of Ec(e))t.indexOf(o)<0&&Tc.call(e,o)&&(n[o]=e[o]);return n})(s,["field","form"]);const u="number"==typeof kc.FORM_DEBOUNCE?kc.FORM_DEBOUNCE:200,[h,d]=(0,e.useState)(a.value),p=_c({getOnChangeProps:()=>({}),hasIsFieldProp:!1},o),g=(0,e.useCallback)((()=>{const e=e=>e();return!1===c.debounce||!1===kc.FORM_DEBOUNCE&&!c.debounce?e:function(e,t){let n;return(...o)=>{clearTimeout(n),n=setTimeout(e,t,...o)}}(e,"number"==typeof c.debounce?c.debounce:u)})(),[]),m=e=>{const t=(null==(n=e)?void 0:n.target)?"INPUT"!==n.target.nodeName||"checkbox"!==n.target.type&&"radio"!==n.target.type?n.target.value:n.target.checked:n;var n;const o=p.getOnChangeProps(t,a,l,c),i=o.value||c.value||t;g((()=>{"function"==typeof c.onChange&&c.onChange(i),a.onChange({target:_c({name:a.name,value:i},o)})})),d(i)},f=(Mc(l.touched,a.name)||Boolean(l.submitCount))&&Mc(l.errors,a.name),y="string"==typeof f?f:"";(0,e.useEffect)((()=>{d(a.value)}),[a.value]),(null==(r=l.status)?void 0:r.disabled)&&(c.disabled=!0);const v=_c({},c);return delete v.debounce,Object.hasOwn(v,"className")&&void 0===v.className&&delete v.className,Object.hasOwn(v,"children")&&void 0===v.children&&delete v.children,t().createElement(n,Lc(_c(_c(Lc(_c({},a),{error:y}),p.hasIsFieldProp?{isfield:!0}:{}),v),{checked:"string"==typeof c.value?a.value===c.value:a.value,onChange:m,value:h,input:{value:h,onChange:m}}))},Nc=Rc(Io,{getOnChangeProps:e=>({checked:e})}),Ic=Rc(gr),Pc=Rc(Sr),Dc=Rc(Wr),Fc=Rc(Zr),Bc=Rc(ha,{getOnChangeProps:e=>({value:e||[]})}),Wc=Rc(Na),Hc=Rc(za),jc=Rc(Qa,{hasIsFieldProp:!0}),zc=Rc(ll),Vc=Rc(Cl),Uc=Rc(Rl,{getOnChangeProps:(e,t,n,o)=>({checked:e===o.value,value:o.value})}),Gc=Rc(jl,{hasIsFieldProp:!0}),Kc=Rc(Xl),qc=Rc(rc),Yc=Rc(bc);var Jc=Object.defineProperty,Xc=Object.defineProperties,Qc=Object.getOwnPropertyDescriptors,Zc=Object.getOwnPropertySymbols,eu=Object.prototype.hasOwnProperty,tu=Object.prototype.propertyIsEnumerable,nu=(e,t,n)=>t in e?Jc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ou=(e,t)=>{for(var n in t||(t={}))eu.call(t,n)&&nu(e,n,t[n]);if(Zc)for(var n of Zc(t))tu.call(t,n)&&nu(e,n,t[n]);return e};class iu extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.prop,{onChange:n}=t;n((0,pe.fromJS)(e))}getInputError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)eu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Zc)for(var o of Zc(e))t.indexOf(o)<0&&tu.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(gr,(i=ou(ou({},n),o),r={error:this.getInputError()},Xc(i,Qc(r))));var i,r}}iu.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const ru=iu;var su=Object.defineProperty,au=Object.defineProperties,lu=Object.getOwnPropertyDescriptors,cu=Object.getOwnPropertySymbols,uu=Object.prototype.hasOwnProperty,hu=Object.prototype.propertyIsEnumerable,du=(e,t,n)=>t in e?su(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class pu extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}getComboboxError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=((e,t)=>{var n={};for(var o in e)uu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&cu)for(var o of cu(e))t.indexOf(o)<0&&hu.call(e,o)&&(n[o]=e[o]);return n})(this.props,[]);return t().createElement(Sr,(n=((e,t)=>{for(var n in t||(t={}))uu.call(t,n)&&du(e,n,t[n]);if(cu)for(var n of cu(t))hu.call(t,n)&&du(e,n,t[n]);return e})({},e),o={onChange:this.handleOnChange,value:e.input.value?e.input.value.toJS():e.input.value,error:this.getComboboxError()},au(n,lu(o))));var n,o}}pu.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const gu=pu;var mu=Object.defineProperty,fu=Object.defineProperties,yu=Object.getOwnPropertyDescriptors,vu=Object.getOwnPropertySymbols,bu=Object.prototype.hasOwnProperty,wu=Object.prototype.propertyIsEnumerable,xu=(e,t,n)=>t in e?mu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class ku extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}render(){const e=this.props,{children:n,input:o}=e,i=((e,t)=>{var n={};for(var o in e)bu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&vu)for(var o of vu(e))t.indexOf(o)<0&&wu.call(e,o)&&(n[o]=e[o]);return n})(e,["children","input"]);return t().createElement(Oi,(r=((e,t)=>{for(var n in t||(t={}))bu.call(t,n)&&xu(e,n,t[n]);if(vu)for(var n of vu(t))wu.call(t,n)&&xu(e,n,t[n]);return e})({},i),s={onSelect:this.handleOnChange,selectedItem:o.value},fu(r,yu(s))),n);var r,s}}ku.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),input:r().instanceOf(Object)};const Cu=ku;var $u=Object.defineProperty,Su=Object.defineProperties,Eu=Object.getOwnPropertyDescriptors,Ou=Object.getOwnPropertySymbols,Tu=Object.prototype.hasOwnProperty,Au=Object.prototype.propertyIsEnumerable,_u=(e,t,n)=>t in e?$u(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Lu=(e,t)=>{for(var n in t||(t={}))Tu.call(t,n)&&_u(e,n,t[n]);if(Ou)for(var n of Ou(t))Au.call(t,n)&&_u(e,n,t[n]);return e};function Mu(e){const n=e,{input:o}=n,i=((e,t)=>{var n={};for(var o in e)Tu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ou)for(var o of Ou(e))t.indexOf(o)<0&&Au.call(e,o)&&(n[o]=e[o]);return n})(n,["input"]);return t().createElement(po,(r=Lu(Lu({},o),i),s={onChange:o.onChange,value:o.value?o.value:0},Su(r,Eu(s))));var r,s}Mu.propTypes={input:r().instanceOf(Object)};const Ru=Mu;var Nu=Object.defineProperty,Iu=Object.defineProperties,Pu=Object.getOwnPropertyDescriptors,Du=Object.getOwnPropertySymbols,Fu=Object.prototype.hasOwnProperty,Bu=Object.prototype.propertyIsEnumerable,Wu=(e,t,n)=>t in e?Nu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Hu(e){const{input:n,meta:o,validationmessages:i}=e;return t().createElement(Wr,(r=((e,t)=>{for(var n in t||(t={}))Fu.call(t,n)&&Wu(e,n,t[n]);if(Du)for(var n of Du(t))Bu.call(t,n)&&Wu(e,n,t[n]);return e})({},e),s={onChange:e=>{const{onChange:t}=n;t((0,pe.fromJS)(e))},value:n.value?n.value.toJS():n.value,error:(()=>{const{touched:e,error:t,warning:n}=o;let r=null;return e&&t&&i[t]?r=i[t]:e&&n&&(r="warning"),r})()},Iu(r,Pu(s))));var r,s}Hu.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const ju=Hu;var zu=Object.defineProperty,Vu=Object.defineProperties,Uu=Object.getOwnPropertyDescriptors,Gu=Object.getOwnPropertySymbols,Ku=Object.prototype.hasOwnProperty,qu=Object.prototype.propertyIsEnumerable,Yu=(e,t,n)=>t in e?zu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Ju(e){const n=e,{input:o,meta:i,validationmessages:r}=n,s=((e,t)=>{var n={};for(var o in e)Ku.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Gu)for(var o of Gu(e))t.indexOf(o)<0&&qu.call(e,o)&&(n[o]=e[o]);return n})(n,["input","meta","validationmessages"]);return t().createElement(Zr,(a=((e,t)=>{for(var n in t||(t={}))Ku.call(t,n)&&Yu(e,n,t[n]);if(Gu)for(var n of Gu(t))qu.call(t,n)&&Yu(e,n,t[n]);return e})({},s),l={onChange:e=>{const{onChange:t}=o;t((0,pe.fromJS)(e))},value:o.value?o.value.toJS():o.value,error:(()=>{const{touched:e,error:t}=i;let n=null;return e&&t&&r[t]&&(n=r[t]),n})()},Vu(a,Uu(l))));var a,l}Ju.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Xu=Ju;var Qu=Object.defineProperty,Zu=Object.defineProperties,eh=Object.getOwnPropertyDescriptors,th=Object.getOwnPropertySymbols,nh=Object.prototype.hasOwnProperty,oh=Object.prototype.propertyIsEnumerable,ih=(e,t,n)=>t in e?Qu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class rh extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}getEditableListError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o}=e;let i=null;return n&&o&&t[o]&&(i=t[o]),i}render(){const e=((e,t)=>{var n={};for(var o in e)nh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&th)for(var o of th(e))t.indexOf(o)<0&&oh.call(e,o)&&(n[o]=e[o]);return n})(this.props,[]);return t().createElement(ha,(n=((e,t)=>{for(var n in t||(t={}))nh.call(t,n)&&ih(e,n,t[n]);if(th)for(var n of th(t))oh.call(t,n)&&ih(e,n,t[n]);return e})({},e),o={onChange:this.handleOnChange,value:e.input.value?e.input.value.toJS():null,error:this.getEditableListError()},Zu(n,eh(o))));var n,o}}rh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const sh=rh;var ah=Object.defineProperty,lh=Object.defineProperties,ch=Object.getOwnPropertyDescriptors,uh=Object.getOwnPropertySymbols,hh=Object.prototype.hasOwnProperty,dh=Object.prototype.propertyIsEnumerable,ph=(e,t,n)=>t in e?ah(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,gh=(e,t)=>{for(var n in t||(t={}))hh.call(t,n)&&ph(e,n,t[n]);if(uh)for(var n of uh(t))dh.call(t,n)&&ph(e,n,t[n]);return e};class mh extends e.Component{getInputError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)hh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&uh)for(var o of uh(e))t.indexOf(o)<0&&dh.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(za,(i=gh(gh({},n),o),r={error:this.getInputError()},lh(i,ch(r))));var i,r}}mh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const fh=mh;var yh=Object.defineProperty,vh=Object.defineProperties,bh=Object.getOwnPropertyDescriptors,wh=Object.getOwnPropertySymbols,xh=Object.prototype.hasOwnProperty,kh=Object.prototype.propertyIsEnumerable,Ch=(e,t,n)=>t in e?yh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,$h=(e,t)=>{for(var n in t||(t={}))xh.call(t,n)&&Ch(e,n,t[n]);if(wh)for(var n of wh(t))kh.call(t,n)&&Ch(e,n,t[n]);return e};class Sh extends e.Component{getInputError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)xh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&wh)for(var o of wh(e))t.indexOf(o)<0&&kh.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(Qa,(i=$h($h({},n),o),r={isfield:!0,error:this.getInputError()},vh(i,bh(r))));var i,r}}Sh.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Eh=Sh;var Oh=Object.defineProperty,Th=Object.defineProperties,Ah=Object.getOwnPropertyDescriptors,_h=Object.getOwnPropertySymbols,Lh=Object.prototype.hasOwnProperty,Mh=Object.prototype.propertyIsEnumerable,Rh=(e,t,n)=>t in e?Oh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Nh extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}getMultiselectError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=((e,t)=>{var n={};for(var o in e)Lh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&_h)for(var o of _h(e))t.indexOf(o)<0&&Mh.call(e,o)&&(n[o]=e[o]);return n})(this.props,[]);return t().createElement(Cl,(n=((e,t)=>{for(var n in t||(t={}))Lh.call(t,n)&&Rh(e,n,t[n]);if(_h)for(var n of _h(t))Mh.call(t,n)&&Rh(e,n,t[n]);return e})({},e),o={onChange:this.handleOnChange,value:e.input.value?e.input.value.toJS():e.input.value,error:this.getMultiselectError()},Th(n,Ah(o))));var n,o}}Nh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Ih=Nh;var Ph=Object.defineProperty,Dh=Object.defineProperties,Fh=Object.getOwnPropertyDescriptors,Bh=Object.getOwnPropertySymbols,Wh=Object.prototype.hasOwnProperty,Hh=Object.prototype.propertyIsEnumerable,jh=(e,t,n)=>t in e?Ph(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,zh=(e,t)=>{for(var n in t||(t={}))Wh.call(t,n)&&jh(e,n,t[n]);if(Bh)for(var n of Bh(t))Hh.call(t,n)&&jh(e,n,t[n]);return e};class Vh extends e.Component{constructor(e){super(e),this.handleEvent=this.handleEvent.bind(this)}handleEvent(e){const{input:t}=this.props,{onChange:n,value:o}=t;n((0,pe.fromJS)(void 0!==e?e:o))}getSelectError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)Wh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Bh)for(var o of Bh(e))t.indexOf(o)<0&&Hh.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(jl,(i=zh(zh({},n),o),r={isfield:!0,error:this.getSelectError(),onChange:this.handleEvent,onBlur:this.handleEvent,value:n.value?n.value.toJS():n.value},Dh(i,Fh(r))));var i,r}}Vh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Uh=Vh;var Gh=Object.defineProperty,Kh=Object.defineProperties,qh=Object.getOwnPropertyDescriptors,Yh=Object.getOwnPropertySymbols,Jh=Object.prototype.hasOwnProperty,Xh=Object.prototype.propertyIsEnumerable,Qh=(e,t,n)=>t in e?Gh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Zh extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props;t.onChange((0,pe.fromJS)(e))}render(){const e=this.props,{children:n}=e,o=((e,t)=>{var n={};for(var o in e)Jh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Yh)for(var o of Yh(e))t.indexOf(o)<0&&Xh.call(e,o)&&(n[o]=e[o]);return n})(e,["children"]);return t().createElement(Xl,(i=((e,t)=>{for(var n in t||(t={}))Jh.call(t,n)&&Qh(e,n,t[n]);if(Yh)for(var n of Yh(t))Xh.call(t,n)&&Qh(e,n,t[n]);return e})({},o),r={onChange:this.handleOnChange,value:o.input.value?o.input.value.toJS():[]},Kh(i,qh(r))));var i,r}}Zh.propTypes={children:r().oneOfType([r().node]),onChange:r().func,input:r().instanceOf(Object)};const ed=Zh;var td=Object.defineProperty,nd=Object.defineProperties,od=Object.getOwnPropertyDescriptors,id=Object.getOwnPropertySymbols,rd=Object.prototype.hasOwnProperty,sd=Object.prototype.propertyIsEnumerable,ad=(e,t,n)=>t in e?td(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class ld extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props;t.onChange((0,pe.fromJS)(e))}render(){const e=this.props,{children:n}=e,o=((e,t)=>{var n={};for(var o in e)rd.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&id)for(var o of id(e))t.indexOf(o)<0&&sd.call(e,o)&&(n[o]=e[o]);return n})(e,["children"]);return t().createElement(bc,(i=((e,t)=>{for(var n in t||(t={}))rd.call(t,n)&&ad(e,n,t[n]);if(id)for(var n of id(t))sd.call(t,n)&&ad(e,n,t[n]);return e})({},o),r={onChange:this.handleOnChange,value:o.input.value},nd(i,od(r))),n);var i,r}}ld.propTypes={children:r().oneOfType([r().node]),onChange:r().func,input:r().instanceOf(Object)};const cd=ld;function ud(t,n,...o){const i=(0,e.useRef)();(0,e.useEffect)((()=>{i.current=t}),[t]),(0,e.useEffect)((()=>{if(null!=n){const e=setInterval((function(){i.current(...o)}),n);return()=>clearInterval(e)}}),[n])}})(),module.exports=o})(); //# sourceMappingURL=tyk-ui.js.map \ No newline at end of file diff --git a/lib/tyk-ui.js.map b/lib/tyk-ui.js.map index 8f121b9f..e73ee530 100644 --- a/lib/tyk-ui.js.map +++ b/lib/tyk-ui.js.map @@ -1 +1 @@ -{"version":3,"file":"tyk-ui.js","mappings":"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G,IAAK,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,IAAK,GAAI,IAAK,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,KAAM,GAAI,EAAG,GAAI,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,KAAM,GAAI,MAAO,GAAI,KAAM,GAAI,GAAI,EAAG,IAAK,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAA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O,CAAC,eAAgB,uBAAwB,4BAChDH,MAAO,kEACR,CACCG,MAAOqyD,EACPxyD,MAAO80D,GACR,CACC30D,MAAO,uBACPH,MAAO,aACPpkB,KAAM,YACP,CACCukB,MAAO,eACPH,MAAO,KACPpkB,KAAM,SACP,CACCukB,MAAO,mBACPH,MAAO,yEACPpkB,KAAM,SACP,CACCukB,MAAO,uBACPH,MAAO,UACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,SACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,UACR,CACCG,MAAO,UACPH,MAAO,WAGf7mC,SAAU,CAAC,CACHgnC,MAAO,OACPH,MAAO,QACR,CACCG,MAAO,CACH,eAAgB,uBAAwB,uBAAwB,OAChE,mBAAoB,OACpB,eAAgB,OAAQ,uBAAwB,OAAQ,gBAE5DH,MAAO,IAAM80D,EAAe,UAAYA,EAAe,6DACvDl5E,KAAM,sBACP,CACCukB,MAAO,uBACPH,MAAO,cACR,CACCG,MAAO,mBACPH,MAAO,gwDACR,CACCG,MAAO,uBACPH,MAAO,+lBACR,CACCG,MAAO,mBACPH,MAAO,y2DACR,CACCG,MAAO,aACPH,MAAO80D,GACR,CACC90D,MAAO,GACPG,MAAO,QACPvkB,KAAM,aAGd,MAAS,CACL04E,EAAyBE,aAAa,aACtCS,EAAS,SACT,CACI90D,MAAO,gBACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,OACPH,MAAO,UACPpkB,KAAM,SACP,CACCukB,MAAO,QACPH,MAAO,GACPpkB,KAAM,aAGd,MAAS,CACL,CACIukB,MAAO,0BACPH,MAAO,6CACR,CACCG,MAAO,gBACPH,MAAO,cACPpkB,KAAM,YACP,CACCukB,MAAO,UACPH,MAAO,iDACR,CACCG,MAAO,2BACPH,MAAO,iDACR,CACCG,MAAO,8BACPH,MAAO,MACR,CACCG,MAAO,2BACPH,MAAO,QACPpkB,KAAM,yBACP,CACCukB,MAAO,QACPH,MAAO,IACPpkB,KAAM,YACP,CACC8jB,aAAc,kBAGtB,sBAAyB,CACrB,CACIS,MAAO,oCACPH,MAAO,6CACR,CACCG,MAAO,2BACPH,MAAO,IACPpkB,KAAM,SACP,CACCukB,MAAO,2BACPH,MAAO,KACR,CACCG,MAAO,QACPH,MAAO,IACPpkB,KAAM,YACP,CACC8jB,aAAc,kCAGtB,kBAAqB,CACjB,CACIS,MAAO,SACPH,MAAO,SACP11C,KAAM,CACF,CACI61C,MAAO,SACPH,MAAO,MACPpkB,KAAM,OACP,CACC/kB,QAAS,aAGlB,CACCspC,MAAO,SACPH,MAAO,SACP11C,KAAM,CACF,CACI61C,MAAO,SACPH,MAAO,MACPpkB,KAAM,OACP,CACC/kB,QAAS,cAGlB,CACCspC,MAAO,oBACPH,MAAO,+BACR,CACCG,MAAO,mBACPH,MAAO,gDACR,CACCG,MAAO,mBACPH,MAAO,gDACR,CACCG,MAAO,uBACPH,MAAO,IACPpkB,KAAM,sBACP,CACCukB,MAAO,OACPH,MAAO,QACR,CACCG,MAAO,uBACPH,MAAO,KACR,CACCG,MAAO,QACPH,MAAO,GACPpkB,KAAM,aAGd,mBAAsB,CAClBq5E,EAAS,sBACT,CACI90D,MAAO,qBACPH,MAAO80D,GACR,CACC30D,MAAO,uBACPH,MAAO,KACR,CACCG,MAAO,OACPH,MAAO,QACR,CACCG,MAAO,uBACPH,MAAO,KACR,CACCG,MAAO,QACPH,MAAO,GACPpkB,KAAM,aAGd,SAAY,CACR,CACIukB,MAAO,2BACPH,MAAOg1D,GACR,CACC70D,MAAO,SACPH,MAAO,QACP0B,gBAAgB,GACjB,CACCvB,MAAO,SACPH,MAAO,MACPpkB,KAAM,YACP,CACC8jB,aAAc,WAGtB,QAAW,CACP,CACIS,MAAO,2BACPH,MAAOg1D,GACR,CACC70D,MAAO,SACPH,MAAO,QACP0B,gBAAgB,GACjB,CACCvB,MAAO,SACPH,MAAO,MACPpkB,KAAM,YACP,CACC8jB,aAAc,YAIrB1qC,GAAYA,EAAQkgG,QACrB3sG,KAAKu5C,OAAOqzD,SAASvzD,QAAQ,CACzB5B,MAAO,OAAQM,QAAS,SAAU30C,EAAK+9B,EAAOqX,GAE1C,GADAx4C,KAAKqzB,KAAc,KAAPjwB,EAAapD,KAAK0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E,KAAM,eACP,CACCukB,MAAO,SACPH,MAAOm2D,EAAY,SACnBv6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,OACtBx6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,SACtBx6E,KAAM,aACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,OACtBx6E,KAAM,aACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,SACtBx6E,KAAM,YACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,OACzBz6E,KAAM,eACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,SACzBz6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,OACzBz6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,SACzBz6E,KAAM,aACP,CACCukB,MAAO,mBACPH,MAAO,4EACR,CACCG,MAAO,cACPH,MAAO,2EACR,CACCG,MAAO,eACPH,MAAO,eACR,CACCG,MAAO,eACPH,MAAO,eACR,CACCG,MAAO,CAAC,UAAW,OAAQ,wBAC3BH,MAAO,2DACR,CACCG,MAAO,OACPH,MAAO,QACR,CACCnpC,QAAS,cAEjB,UAAa,CAAC,CACNspC,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,SAAY,CAAC,CACLS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,SAAY,CAAC,CACLS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,QACPpkB,KAAM,YACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,QAAW,CAAC,CACJS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,QACPpkB,KAAM,WACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,aAAgB,CAAC,CACTS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,YAAe,CAAC,CACRS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,YAAe,CAAC,CACRS,MAAO,SACPH,MAAO,QACPpkB,KAAM,eACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,SACPH,MAAO,QACPpkB,KAAM,cACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,UAAa,CAAC,CACNS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,UAAa,CAAC,CACNS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,QACPpkB,KAAM,aACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,SAAY,CAAC,CACLS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,YAAe,CAAC,CACRS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,SACPH,MAAO,QACPpkB,KAAM,cACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,UAAa,CAAC,CACNS,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,iBAAoB,CAAC,CACbS,MAAO,eACPH,MAAO,YACR,CACCG,MAAO,eACPH,MAAO,YACR,CACCG,MAAO,SACPH,MAAO,QACR,CACCG,MAAO,SACPH,MAAO,WACR,CACCG,MAAO,SACPH,MAAO,WACR,CACCG,MAAO,mBACPH,MAAO,cACR,CACCnpC,QAAS,aACV,CACCspC,MAAO,eACPH,MAAO,IACPpkB,KAAM,OACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,qBAEd,UAAa,CAAC,CACN61C,MAAO,mBACPH,MAAO,MAAQy2D,EAAc,iBAC9B,CACCt2D,MAAO,mBACPH,MAAOy2D,GACR,CACCt2D,MAAO,mBACPH,MAAOs2D,EAAU,WAClB,CACCn2D,MAAO,mBACPH,MAAOs2D,EAAU,OAClB,CACCn2D,MAAO,CAAC,cAAe,oBACvBH,MAAO,wBACR,CACCG,MAAOqyD,EACPxyD,MAAO,iCAGnBz3C,KAAKo6C,gBACT,EACA5kC,EAAI7C,SAAS+6F,EAAsBp0D,GACnC32C,EAAQ+qG,qBAAuBA,CAE/B,IAEA1qG,IAAI9C,OAAO,4BAA4B,CAAC,UAAU,UAAU,SAAS,cAAc,+BAA+B,SAAS4B,EAASa,EAASxC,GAAQ,aACrJ,IAAIqV,EAAM1T,EAAQ,iBACdkpG,EAAelpG,EAAQ,eAAeuiG,SACtCA,EAAW1hG,EAAQ0hG,SAAW,SAAUjgB,GACxCpkF,KAAKskG,mBAAqB,IAAIp7F,OAAO,sBAAwBk7E,EAAU,qBAC3E,EACA5uE,EAAI7C,SAAS0xF,EAAU2G,GACvB,WACIhrG,KAAK2zD,mBAAqB,SAAUp2C,EAASqlD,EAAWrnD,GACpD,IACI5Q,EADO4S,EAAQmL,QAAQnN,GACV5Q,MAAM3K,KAAKskG,oBAC5B,GAAI35F,EACA,OAAIA,EAAM,GACC3K,KAAK0kG,oBAAoBnnF,EAAS5S,EAAM,GAAI4Q,EAAK5Q,EAAM/F,OAC9D+F,EAAM,GACC3K,KAAKwkG,iBAAiBjnF,EAAShC,EAAK5Q,EAAM/F,MAAQ+F,EAAM,GAAGpK,QAC/DP,KAAKwkG,iBAAiBjnF,EAAShC,EAE9C,CACH,EAAE9Z,KAAK4iG,EAAS9iG,UAEjB,IAEAyB,IAAI9C,OAAO,kBAAkB,CAAC,UAAU,UAAU,SAAS,cAAc,gBAAgB,kCAAkC,4BAA4B,cAAc,SAAS4B,EAASa,EAASxC,GAAQ,aACxM,IAAIqV,EAAM1T,EAAQ,cACdg1D,EAAWh1D,EAAQ,UAAUu+C,KAC7BqtD,EAAuB5rG,EAAQ,4BAA4B4rG,qBAC3DU,EAAiBtsG,EAAQ,sBAAsBuiG,SAC/CppF,EAAQnZ,EAAQ,YAAYmZ,MAC5BolC,EAAO,WACPrgD,KAAK65C,eAAiB6zD,EACtB1tG,KAAKk8D,aAAe,IAAIkyC,EAAe,OACvCpuG,KAAKujD,WAAavjD,KAAKsgD,iBAC3B,EACA9qC,EAAI7C,SAAS0tC,EAAMyW,GACnB,WACI92D,KAAKi/C,iBAAmB,IACxBj/C,KAAK6/C,iBAAmB,CACpB,IAAK,SACL,IAAK,UAET7/C,KAAKwiD,kBAAoB,SAAUrhB,EAAO93B,EAAMo5C,GAC5C,IAAI5U,EAAS7tC,KAAK4+C,WAAWv1C,GAEzBkvC,EADgBv4C,KAAKugD,eAAezH,cAAczvC,EAAM83B,GACjCoX,OAC3B,OAAIA,EAAOh4C,QAA4C,WAAlCg4C,EAAOA,EAAOh4C,OAAS,GAAGwT,MAGlC,SAATotB,GACY93B,EAAKsB,MAAM,sBAEnBkjC,GAAU4U,GALP5U,CASf,EACA,IAAIwgE,EAAW,CACX,KAAQ,EACR,OAAU,EACV,MAAS,EACT,MAAS,EACT,SAAY,GAEhBruG,KAAK0iD,aAAe,SAAUvhB,EAAO93B,EAAMs5C,GACvC,GAAc,SAAVA,GAA8B,OAAVA,GAA4B,OAAVA,EACtC,OAAO,EACX,IAAIpK,EAASv4C,KAAKugD,eAAezH,cAAczvC,EAAKioD,OAAQnwB,GAAOoX,OACnE,IAAKA,EACD,OAAO,EACX,GACI,IAAI7xC,EAAO6xC,EAAO1jC,YACbnO,IAAsB,WAAbA,EAAKqN,MAAmC,QAAbrN,EAAKqN,MAAkBrN,EAAKpD,MAAMqH,MAAM,WACrF,QAAKjE,GAEgB,WAAbA,EAAKqN,MAAqBs6F,EAAS3nG,EAAKpD,MACpD,EACAtD,KAAK4iD,YAAc,SAAUzhB,EAAOl0B,EAAKsO,GACrCA,GAAO,EACP,IAAIsyB,EAAS7tC,KAAK4+C,WAAW3xC,EAAIyb,QAAQnN,IACrCknC,EAAMx1C,EAAI4xC,eACVhR,EAAOtrC,OAAOkgD,EAAIliD,SAAWkiD,GAC7Bx1C,EAAI2B,OAAO,IAAIqM,EAAMM,EAAKsyB,EAAOttC,OAASkiD,EAAIliD,OAAQgb,EAAKsyB,EAAOttC,QAC1E,EACAP,KAAKuX,IAAM,kBACXvX,KAAK8rG,cAAgB,qBACxB,EAAErqG,KAAK4+C,EAAK9+C,WACboB,EAAQ09C,KAAOA,CAEf,IACoBr9C,IAAIlB,QAAQ,CAAC,oBAAoB,SAASgZ,GACyB3a,IAC3DA,EAAOwC,QAAUmY,EAEzB,8BCzdpB9X,IAAI9C,OAAO,+BAA+B,CAAC,UAAU,UAAU,SAAS,cAAc,kCAAkC,SAAS4B,EAASa,EAASxC,GAAQ,aAC3J,IAAIqV,EAAM1T,EAAQ,cACdw3C,EAAqBx3C,EAAQ,0BAA0Bw3C,mBACvDg1D,EAAoB,SAAUC,GAC9B,IAAIxB,EAAW,mCACf/sG,KAAKu5C,OAAS,CACVj+B,MAAO,CACH,CAAEs8B,MAAO,mBAAoBH,MAAO,kBAAmBpkB,KAAM,SAC7D,CACIukB,MAAO,CAAC,8BAA+B,2BACvCH,MAAO,UAAYs1D,EAAW,IAAK15E,KAAM,0BAE7C,CAAEukB,MAAO,oBAAqBH,MAAO,SAAUpkB,KAAM,WACrD,CACIukB,MAAO,CAAC,qBAAsB,sBAC9BH,MAAO,2BAA4BpkB,KAAM,UAAWkkB,iBAAiB,GAEzE,CAAEjpC,QAAS,OACX,CAAEspC,MAAO,wBAAyBH,MAAO,MACzC,CAAEG,MAAO,oBAAqBH,MAAO,KACrC,CAAEnpC,QAAS,aACX,CAAE6oC,aAAc,aAEpBq3D,uBAAwB,CAAC,CACjB52D,MAAO,sDACPH,MAAOs1D,GACR,CACCn1D,MAAO,6CACPH,MAAO,KACR,CACCnpC,QAAS,cACV,CACCA,QAAS,UACV,CACCspC,MAAO,2BACPH,MAAO,OACPpkB,KAAM,UAEdo7E,QAAS,CACL,CAAEngG,QAAS,cACX,CAAEA,QAAS,UACX,CAAEspC,MAAO,qBAAsBH,MAAO,IAAKpkB,KAAM,SACjD,CAAEukB,MAAO,aAAcH,MAAO,mBAC9B,CAAEG,MAAO,yBAA0BH,MAAO,MAAO11C,KAAM,eAE3D2sG,WAAY,CAAC,CACL92D,MAAO,WACPH,MAAO,QACR,CACCG,MAAO,6BACPH,MAAO,IACPpkB,KAAM,OACP,CACCukB,MAAO,CAAC,8BAA+B,2BACvCH,MAAO,UAAYs1D,EAAW,IAC9BhrG,KAAM,CAAC,CACC61C,MAAO,OACPH,MAAO,QAEX,CACIG,MAAO,8BACPH,MAAO,IACPpkB,KAAM,OAEV,CAAE/kB,QAAS,aAEvBqgG,MAAO,CACH,CAAE/2D,MAAO,mBAAoBH,MAAO,UAAWpkB,KAAM,SACrD,CAAEukB,MAAO,WAAYH,MAAO,QAC5B,CAAEG,MAAO,WAAYH,MAAO,4BAEhC8J,QAAS,CACL,CAAE3J,MAAO,kBAAmBH,MAAO,SAAOpkB,KAAM,SAChD,CAAE8jB,aAAc,gBAEpBg2D,UAAW,CAAC,CACJv1D,MAAO,yCACPH,MAAO,gEAEfm3D,eAAgB,CAAC,CACTh3D,MAAO,yDACPH,MAAO,gEAEfpqC,IAAK,CAAC,CACEuqC,MAAO,CAAC,oCAAqC,wCAAyC,yBACtFH,MAAO,mBAAqBs1D,EAAW,MAAQA,EAAW,IAC1D15E,KAAM,CACF,CAAE/kB,QAAS,cACX,CAAEspC,MAAO,qCAAsCH,MAAO,MAAOpkB,KAAM,YAG/Ew7E,eAAgB,CACZ,CAAEj3D,MAAO,0BAA2BH,MAAO,SAE/Cq3D,WAAY,CACR,CAAEl3D,MAAO,sBAAuBH,MAAO,SAE3CpzC,OAAQ,CAAC,CACDuzC,MAAO,aACPH,MAAO,IACP11C,KAAM,CACF,CAAE61C,MAAO,aAAcH,MAAO,IAAKpkB,KAAM,OACzC,CAAE8jB,aAAc,gBAErB,CACCS,MAAO,aACPH,MAAO,IACP11C,KAAM,CACF,CAAE61C,MAAO,aAAcH,MAAO,IAAKpkB,KAAM,OACzC,CAAE8jB,aAAc,iBAG5Bx8B,WAAY,CAAC,CACLi9B,MAAO,kCACPH,MAAOs1D,GACR,CACCn1D,MAAO,wCACPH,MAAO,KACR,CACCnpC,QAAS,kBACV,CACCA,QAAS,oBAEjBygG,gBAAiB,CAAC,CACVn3D,MAAO,6BACPH,MAAO,IACP11C,KAAM,CACF,CAAE61C,MAAO,6BAA8BH,MAAO,IAAKpkB,KAAM,OACzD,CAAE/kB,QAAS,kBACX,CAAE6oC,aAAc,gCAErB,CACCS,MAAO,6BACPH,MAAO,IACP11C,KAAM,CACF,CAAE61C,MAAO,6BAA8BH,MAAO,IAAKpkB,KAAM,OACzD,CAAE/kB,QAAS,kBACX,CAAE6oC,aAAc,kCAI5Bn3C,KAAK+S,cAAgBu7F,GACrBtuG,KAAKo6C,gBACb,GACA,WACIp6C,KAAKgvG,cAAgB,SAAUn1D,EAAgBJ,EAAQpsC,GACnDrN,KAAKu5C,OAAOlsC,IAAIgsC,QAAQ,CACpBzB,MAAO,CAAC,oCAAqC,YAAcvqC,EAAM,iBACjEoqC,MAAO,OAASpqC,EAAM,eACtBgmB,KAAM,CACF,CAAE/kB,QAAS,cACX,CAAEspC,MAAO,qCAAsCH,MAAO,MAAOpkB,KAAMomB,EAAS,YAGpFz5C,KAAKu5C,OAAOlsC,EAAM,QAAU,CACxB,CAAEiB,QAAS,cACX,CAAEspC,MAAO,qCAAsCH,MAAO,MAAOpkB,KAAM,QAC/D0kB,QAAS,SAAUz0C,EAAO01C,EAAcR,GAEpC,OADAA,EAAM5wC,OAAO,GACN5H,KAAK43C,KAChB,IAER53C,KAAK45C,WAAWC,EAAgBJ,EAAQ,CAAC,CACjC7B,MAAO,CAAC,wCAAyC,YAAcvqC,EAAM,iBACrEoqC,MAAO,QAAUpqC,EAAM,eACvBgmB,KAAMhmB,EAAM,QACb,CACCuqC,MAAO,mBACPH,MAAO,mBACR,CACCG,MAAO,mBACPH,MAAO,YAEnB,CACH,GAAEh2C,KAAK63C,EAAmB/3C,WAC3BiU,EAAI7C,SAAS27F,EAAmBh1D,GAChC32C,EAAQ2rG,kBAAoBA,CAE5B,IAEAtrG,IAAI9C,OAAO,yBAAyB,CAAC,UAAU,UAAU,SAAS,cAAc,qBAAqB,qBAAqB,iBAAiB,SAAS4B,EAASa,EAASxC,GAAQ,aAC9K,IAAIqV,EAAM1T,EAAQ,iBACdu5C,EAAYv5C,EAAQ,gBAAgBu5C,UACpCM,EAAgB75C,EAAQ,wBAAwB65C,cAEpD,SAASgqD,EAAG/tD,EAAO7jC,GACf,OAAO6jC,GAASA,EAAM7jC,KAAKjQ,YAAYiQ,EAAO,SAAW,CAC7D,CAHWjS,EAAQ,kBAInB,IAAImtG,EAAe,WACfjvG,KAAKmO,IAAI,iBAAkB,aAAa,SAAUgzB,EAAOoB,EAAQ1T,EAAQtR,EAAS2H,GAC9E,GAAY,KAARA,GAAuB,KAARA,EAAa,CAC5B,IAAIg6B,EAAQh6B,EACRmd,EAAW9kB,EAAQtQ,IAAIyyB,aAAa7Q,EAAO3C,qBAC/C,GAAiB,KAAbmW,GAAgC,MAAbA,GAAgC,KAAZA,GAAmBxT,EAAOkvB,2BACjE,MAAO,CACH74B,KAAMg6B,EAAQ7c,EAAW6c,EACzBl4B,WAAW,GAGnB,IAAIC,EAAS4H,EAAOkgB,oBAEhBqQ,EADO7hC,EAAQtQ,IAAIyb,QAAQzB,EAAO1L,KACjBuyB,UAAU7mB,EAAOzL,OAAQyL,EAAOzL,OAAS,GAC1D4X,EAAW,IAAIuoB,EAAcp+B,EAAS0J,EAAO1L,IAAK0L,EAAOzL,QACzDo8B,EAAQxkB,EAASkpB,kBACrB,GAAI8C,GAAaF,IAAUymD,EAAG/tD,EAAO,oBAAsB+tD,EAAG/tD,EAAO,WACjE,MAAO,CACH1yB,KAAM,GACN8B,UAAW,CAAC,EAAG,IAKvB,GAFK4wB,IACDA,EAAQxkB,EAASgpB,iBAChBxE,EACD,OACJ,KAAO+tD,EAAG/tD,EAAO,mBAAqB+tD,EAAG/tD,EAAO,eAC5CA,EAAQxkB,EAASgpB,eAErB,IAAI8yD,GAAc9vD,GAAaA,EAAUz0C,MAAM,MAC/C,GAAIg7F,EAAG/tD,EAAO,sBAAwBs3D,GAA2B,KAAb9vD,IAAsBumD,EAAG/tD,EAAO,2BAA6Bs3D,GAA2B,KAAb9vD,GAC3H,MAAO,CACHl6B,KAAMg6B,EAAQA,EACdl4B,UAAW,CAAC,EAAG,GAG3B,CACJ,IACAhnB,KAAKmO,IAAI,iBAAkB,YAAY,SAAUgzB,EAAOoB,EAAQ1T,EAAQtR,EAAS7B,GAC7E,IAAI2mB,EAAW9kB,EAAQtQ,IAAIyyB,aAAahkB,GACxC,IAAKA,EAAMgB,gBAA8B,KAAZ2lB,GAA+B,KAAZA,IACjC9kB,EAAQtQ,IAAIyb,QAAQhN,EAAMJ,MAAMC,KACtBuyB,UAAUpyB,EAAMJ,MAAME,OAAS,EAAGE,EAAMJ,MAAME,OAAS,IAC3D6mB,EAEb,OADA3mB,EAAMvV,IAAIqV,SACHE,CAGnB,IACA1b,KAAKmO,IAAI,cAAe,aAAa,SAAUgzB,EAAOoB,EAAQ1T,EAAQtR,EAAS2H,GAC3E,GAAY,KAARA,EAAa,CACb,IAAIrhB,EAAWgrB,EAAO3C,oBAAoB5Q,MACtC8X,EAAW,IAAIuoB,EAAcp+B,EAAS1Z,EAAS0X,IAAK1X,EAAS2X,QAC7Do8B,EAAQxkB,EAASkpB,mBAAqBlpB,EAASgpB,eACnD,IAAKxE,KAAW+tD,EAAG/tD,EAAO,aAAe+tD,EAAG/tD,EAAO,mBAAqB+tD,EAAG/tD,EAAO,mBAAqB+tD,EAAG/tD,EAAO,qBAAuB+tD,EAAG/tD,EAAO,oBAC9I,OACJ,GAAI+tD,EAAG/tD,EAAO,6BACV,OACJ,GAAI+tD,EAAG/tD,EAAO,mBAAoB,CAC9B,IAAIu3D,EAAiB/7E,EAASopB,wBAA0B5E,EAAMt0C,MAAM/C,OACpE,GAAIsD,EAAS2X,OAAS2zF,EAClB,OACJ,GAAItrG,EAAS2X,QAAU2zF,EAAgB,CACnC,IAAIlJ,EAAY7yE,EAASipB,cACzB,GAAI4pD,GAAaN,EAAGM,EAAW,mBAC3B,OACJ7yE,EAASgpB,cACb,CACJ,CACA,GAAI,QAAQ3wC,KAAK8R,EAAQmL,QAAQ7kB,EAAS0X,KAAKhZ,MAAMsB,EAAS2X,SAC1D,OACJ,MAAQmqF,EAAG/tD,EAAO,aAEd,GAAmB,MADnBA,EAAQxkB,EAASgpB,gBACP94C,MAAc,CACpBs0C,EAAQxkB,EAASipB,cACjB,KACJ,CAEJ,IAAI+yD,EAAWh8E,EAASmpB,qBACpB8yD,EAAcj8E,EAASopB,wBAC3B,GAAImpD,EAAGvyE,EAASgpB,eAAgB,gBAC5B,OACJ,IAAI5uC,EAAUoqC,EAAMt0C,MAGpB,GAFI8rG,GAAYvrG,EAAS0X,MACrB/N,EAAUA,EAAQsgC,UAAU,EAAGjqC,EAAS2X,OAAS6zF,IACjDrvG,KAAKsvG,aAAan3F,eAAe3K,EAAQpD,eACzC,OACJ,MAAO,CACH8a,KAAM,MAAa1X,EAAU,IAC7BwZ,UAAW,CAAC,EAAG,GAEvB,CACJ,IACAhnB,KAAKmO,IAAI,aAAc,aAAa,SAAUgzB,EAAOoB,EAAQ1T,EAAQtR,EAAS2H,GAC1E,GAAY,MAARA,EAAc,CACd,IAAI+B,EAAS4H,EAAOkgB,oBAChB1lC,EAAOkU,EAAQmL,QAAQzB,EAAO1L,KAC9B6X,EAAW,IAAIuoB,EAAcp+B,EAAS0J,EAAO1L,IAAK0L,EAAOzL,QACzDo8B,EAAQxkB,EAASkpB,kBACrB,GAAI1E,IAA8C,IAArCA,EAAM7jC,KAAK5R,QAAQ,aAAqB,CACjD,GAAmB,MAAfy1C,EAAMt0C,MACN,OACJ,KAAOs0C,IAA6C,IAApCA,EAAM7jC,KAAK5R,QAAQ,aAC/By1C,EAAQxkB,EAASgpB,eAErB,IAAKxE,EACD,OAEJ,IAAIvqC,EAAMuqC,EAAMt0C,MACZiY,EAAM6X,EAASmpB,qBAEnB,KADA3E,EAAQxkB,EAASgpB,kBACgC,IAAnCxE,EAAM7jC,KAAK5R,QAAQ,WAC7B,OAEJ,GAAInC,KAAKsvG,eAAiBtvG,KAAKsvG,aAAajiG,GAAM,CAC9C,IAAI44F,EAAY1oF,EAAQ2+B,WAAWj1B,EAAO1L,IAAK0L,EAAOzL,OAAS,GAE3D+zF,GADAlmG,EAAOkU,EAAQmL,QAAQnN,GACVvb,KAAK4+C,WAAWv1C,IAC7BwkC,EAAS0hE,EAAahyF,EAAQshC,eAClC,OAAIonD,GAAiC,OAApBA,EAAU3iG,MAChB,CACH4hB,KAAM,KAAO2oB,EAAS,KAAO0hE,EAC7BvoF,UAAW,CAAC,EAAG6mB,EAAOttC,OAAQ,EAAGstC,EAAOttC,SAIrC,CACH2kB,KAAM,KAAO2oB,EAGzB,CACJ,CACJ,CACJ,GACJ,EACAr4B,EAAI7C,SAASs8F,EAAc5zD,GAC3B14C,EAAQssG,aAAeA,CAEvB,IAEAjsG,IAAI9C,OAAO,uBAAuB,CAAC,UAAU,UAAU,SAAS,cAAc,YAAY,+BAA+B,SAAS4B,EAASa,EAASxC,GAAQ,aAC5J,IAAIqV,EAAM1T,EAAQ,iBACdmZ,EAAQnZ,EAAQ,eAAemZ,MAC/B+vF,EAAelpG,EAAQ,eAAeuiG,SACtCA,EAAW1hG,EAAQ0hG,SAAW,SAAUiL,EAAcE,GACtDxE,EAAavpG,KAAKzB,MAClBA,KAAKsvG,aAAeA,GAAgB,CAAC,EACrCtvG,KAAKwvG,gBAAkBh6F,EAAIxC,MAAM,CAAC,EAAGhT,KAAKsvG,cACtCE,GACAh6F,EAAIxC,MAAMhT,KAAKwvG,gBAAiBA,EACxC,EACAh6F,EAAI7C,SAAS0xF,EAAU2G,GACvB,IAAIyE,EAAM,WACNzvG,KAAKwlG,QAAU,GACfxlG,KAAK49C,SAAU,EACf59C,KAAK0vG,aAAc,EACnB1vG,KAAKsb,MAAQ,CAAEC,IAAK,EAAGC,OAAQ,GAC/Bxb,KAAKmG,IAAM,CAAEoV,IAAK,EAAGC,OAAQ,EACjC,EACA,SAASmqF,EAAG/tD,EAAO7jC,GACf,OAAO6jC,EAAM7jC,KAAKjQ,YAAYiQ,EAAO,SAAW,CACpD,EACA,WACI/T,KAAK0zD,cAAgB,SAAUn2C,EAASqlD,EAAWrnD,GAC/C,IAAIlO,EAAMrN,KAAK2vG,mBAAmBpyF,EAAShC,GAC3C,OAAKlO,EAEDA,EAAIuwC,UAAavwC,EAAIm4F,SAAWn4F,EAAIqiG,YACf,iBAAd9sC,EAA+B,MAAQ,IAC7Cv1D,EAAIm4F,SAAWn4F,EAAIqiG,aAAe1vG,KAAKsvG,aAAan3F,eAAe9K,EAAIm4F,QAAQp7F,gBAEhFpK,KAAK4vG,kBAAkBryF,EAAShC,EAAKlO,EAAIm4F,QAASn4F,EAAIlH,IAAIqV,QADnD,GAGJ,QAPIxb,KAAK6vG,qBAAqBtyF,EAAShC,EAQlD,EACAvb,KAAK6vG,qBAAuB,SAAUtyF,EAAShC,GAC3C,MAAI,UAAU9P,KAAK8R,EAAQsrC,SAASttC,KAAS,MAAM9P,KAAK8R,EAAQmL,QAAQnN,IAC7D,QACJ,EACX,EACAvb,KAAK2vG,mBAAqB,SAAUpyF,EAAShC,GAGzC,IAFA,IAAIg9B,EAASh7B,EAAQ0+B,UAAU1gC,GAC3BlO,EAAM,IAAIoiG,EACL9tG,EAAI,EAAGA,EAAI42C,EAAOh4C,OAAQoB,IAAK,CACpC,IAAIi2C,EAAQW,EAAO52C,GACnB,GAAIgkG,EAAG/tD,EAAO,YAAa,CAIvB,GAHAvqC,EAAIlH,IAAIqV,OAASnO,EAAIiO,MAAME,OAASo8B,EAAMt0C,MAAM/C,OAChD8M,EAAIuwC,QAAU+nD,EAAG/tD,EAAO,kBACxBA,EAAQW,IAAS52C,IAEb,OAAO,KAGX,IAFA0L,EAAIm4F,QAAU5tD,EAAMt0C,MACpB+J,EAAIlH,IAAIqV,QAAUo8B,EAAMt0C,MAAM/C,OACzBoB,IAAKA,EAAI42C,EAAOh4C,OAAQoB,IAGzB,GAFAi2C,EAAQW,EAAO52C,GACf0L,EAAIlH,IAAIqV,QAAUo8B,EAAMt0C,MAAM/C,OAC1BolG,EAAG/tD,EAAO,aAAc,CACxBvqC,EAAIqiG,YAA6B,MAAf93D,EAAMt0C,MACxB,KACJ,CAEJ,OAAO+J,CACX,CACK,GAAIs4F,EAAG/tD,EAAO,aAEf,OADAvqC,EAAIqiG,YAA6B,MAAf93D,EAAMt0C,MACjB+J,EAEXA,EAAIiO,MAAME,QAAUo8B,EAAMt0C,MAAM/C,MACpC,CACA,OAAO,IACX,EACAP,KAAK4vG,kBAAoB,SAAUryF,EAAShC,EAAKiqF,EAASrqF,GAGtD,IAFA,IAAIo9B,EAASh7B,EAAQ0+B,UAAU1gC,GAC3BC,EAAS,EACJ7Z,EAAI,EAAGA,EAAI42C,EAAOh4C,OAAQoB,IAAK,CACpC,IAAIi2C,EAAQW,EAAO52C,GAEnB,MADA6Z,GAAUo8B,EAAMt0C,MAAM/C,QACT4a,IAETwqF,EAAG/tD,EAAO,kBACVA,EAAQW,EAAO52C,EAAI,KACNi2C,EAAMt0C,OAASkiG,EACxB,OAAO,CAEnB,CACA,OAAO,CACX,EACAxlG,KAAK2zD,mBAAqB,SAAUp2C,EAASqlD,EAAWrnD,GACpD,IAAIu0F,EAAOvyF,EAAQo4C,gBAAgB,CAAEp6C,IAAKA,EAAKC,OAAQ,IACvD,OAAIs0F,EACO,IAAI70F,EAAM60F,EAAKp5C,QAAQvwD,IAAIoV,IAAKu0F,EAAKp5C,QAAQvwD,IAAIqV,OAAQs0F,EAAKn5C,SAASr7C,MAAMC,IAAKu0F,EAAKn5C,SAASr7C,MAAME,QAGtGxb,KAAK6vG,qBAAqBtyF,EAAShC,IACnCgC,EAAQi2C,oBAAoBj4C,EAAKgC,EAAQmL,QAAQnN,GAAKhb,OAErE,CACH,GAAEkB,KAAK4iG,EAAS9iG,UAEjB,IAEAyB,IAAI9C,OAAO,eAAe,CAAC,UAAU,UAAU,SAAS,cAAc,eAAe,gBAAgB,+BAA+B,yBAAyB,uBAAuB,6BAA6B,SAAS4B,EAASa,EAASxC,GAAQ,aACpP,IAAIqV,EAAM1T,EAAQ,cACd0V,EAAO1V,EAAQ,eACfg1D,EAAWh1D,EAAQ,UAAUu+C,KAC7BiuD,EAAoBxsG,EAAQ,yBAAyBwsG,kBACrDW,EAAentG,EAAQ,mBAAmBmtG,aAC1Cc,EAAcjuG,EAAQ,iBAAiBuiG,SACvC/I,EAAex5F,EAAQ,2BAA2Bw5F,aAClDj7C,EAAO,WACPrgD,KAAK65C,eAAiBy0D,EACtBtuG,KAAKujD,WAAa,IAAI0rD,EACtBjvG,KAAKk8D,aAAe,IAAI6zC,CAC5B,EACAv6F,EAAI7C,SAAS0tC,EAAMyW,GACnB,WACI92D,KAAKsvG,aAAe93F,EAAKlQ,WAAW,IACpCtH,KAAK2gD,aAAe,CAAErlC,MAAO,UAAQnV,IAAK,UAC1CnG,KAAK6iD,aAAe,SAAUtlC,GAC1B,IAAIg+E,EAAS,IAAID,EAAa,CAAC,OAAQ,sBAAuB,UAQ9D,OAPAC,EAAOsB,iBAAiBt/E,EAAQgzB,eAChCgrD,EAAOrnF,GAAG,SAAS,SAAU/K,GACzBoU,EAAQq7C,eAAezvD,EAAEkM,KAC7B,IACAkmF,EAAOrnF,GAAG,aAAa,WACnBqJ,EAAQ09C,kBACZ,IACOsgC,CACX,EACAv7F,KAAKuX,IAAM,cACd,EAAE9V,KAAK4+C,EAAK9+C,WACboB,EAAQ09C,KAAOA,CAEf,IACoBr9C,IAAIlB,QAAQ,CAAC,iBAAiB,SAASgZ,GAC4B3a,IAC3DA,EAAOwC,QAAUmY,EAEzB,8BCldpB9X,IAAI9C,OAAO,uBAAuB,CAAC,UAAU,UAAU,WAAW,SAAS4B,EAASa,EAASxC,GAAQA,EAAOwC,QAAU,uyFAEtH,IAEAK,IAAI9C,OAAO,mBAAmB,CAAC,UAAU,UAAU,SAAS,uBAAuB,gBAAgB,SAAS4B,EAASa,EAASxC,GAAQwC,EAAQ0U,QAAS,EACvJ1U,EAAQ2U,SAAW,aACnB3U,EAAQmK,QAAUhL,EAAQ,gBAChBA,EAAQ,cACdkN,gBAAgBrM,EAAQmK,QAASnK,EAAQ2U,UAAU,EAEvD,IACoBtU,IAAIlB,QAAQ,CAAC,qBAAqB,SAASgZ,GACwB3a,IAC3DA,EAAOwC,QAAUmY,EAEzB,oCCbhBA,EAAI,EAAQ,KAEdnY,EAAQ,EAAamY,EAAEk1F,WACDl1F,EAAEm1F,qBCH1B,IAAIC,EAAoC,oBAAZC,QACxBC,EAAwB,mBAARC,IAChBC,EAAwB,mBAAR/qB,IAChBgrB,EAAwC,mBAAhBC,eAAgCA,YAAYC,OAIxE,SAASC,EAAM/pG,EAAGmsB,GAEhB,GAAInsB,IAAMmsB,EAAG,OAAO,EAEpB,GAAInsB,GAAKmsB,GAAiB,iBAALnsB,GAA6B,iBAALmsB,EAAe,CAC1D,GAAInsB,EAAEoM,cAAgB+f,EAAE/f,YAAa,OAAO,EAE5C,IAAIxS,EAAQoB,EAAGmD,EA6BX6rG,EA5BJ,GAAItrG,MAAMoB,QAAQE,GAAI,CAEpB,IADApG,EAASoG,EAAEpG,SACGuyB,EAAEvyB,OAAQ,OAAO,EAC/B,IAAKoB,EAAIpB,EAAgB,GAARoB,KACf,IAAK+uG,EAAM/pG,EAAEhF,GAAImxB,EAAEnxB,IAAK,OAAO,EACjC,OAAO,CACT,CAuBA,GAAIyuG,GAAWzpG,aAAa0pG,KAASv9E,aAAau9E,IAAM,CACtD,GAAI1pG,EAAEonC,OAASjb,EAAEib,KAAM,OAAO,EAE9B,IADA4iE,EAAKhqG,EAAEiqG,YACEjvG,EAAIgvG,EAAGt9E,QAAQC,UACjBR,EAAE4yD,IAAI/jF,EAAE2B,MAAM,IAAK,OAAO,EAEjC,IADAqtG,EAAKhqG,EAAEiqG,YACEjvG,EAAIgvG,EAAGt9E,QAAQC,UACjBo9E,EAAM/uG,EAAE2B,MAAM,GAAIwvB,EAAEphB,IAAI/P,EAAE2B,MAAM,KAAM,OAAO,EACpD,OAAO,CACT,CAEA,GAAIgtG,GAAW3pG,aAAa4+E,KAASzyD,aAAayyD,IAAM,CACtD,GAAI5+E,EAAEonC,OAASjb,EAAEib,KAAM,OAAO,EAE9B,IADA4iE,EAAKhqG,EAAEiqG,YACEjvG,EAAIgvG,EAAGt9E,QAAQC,UACjBR,EAAE4yD,IAAI/jF,EAAE2B,MAAM,IAAK,OAAO,EACjC,OAAO,CACT,CAGA,GAAIitG,GAAkBC,YAAYC,OAAO9pG,IAAM6pG,YAAYC,OAAO39E,GAAI,CAEpE,IADAvyB,EAASoG,EAAEpG,SACGuyB,EAAEvyB,OAAQ,OAAO,EAC/B,IAAKoB,EAAIpB,EAAgB,GAARoB,KACf,GAAIgF,EAAEhF,KAAOmxB,EAAEnxB,GAAI,OAAO,EAC5B,OAAO,CACT,CAEA,GAAIgF,EAAEoM,cAAgB7J,OAAQ,OAAOvC,EAAE9B,SAAWiuB,EAAEjuB,QAAU8B,EAAEkqG,QAAU/9E,EAAE+9E,MAK5E,GAAIlqG,EAAEmqG,UAAYxvG,OAAOC,UAAUuvG,SAAgC,mBAAdnqG,EAAEmqG,SAA+C,mBAAdh+E,EAAEg+E,QAAwB,OAAOnqG,EAAEmqG,YAAch+E,EAAEg+E,UAC3I,GAAInqG,EAAEnF,WAAaF,OAAOC,UAAUC,UAAkC,mBAAfmF,EAAEnF,UAAiD,mBAAfsxB,EAAEtxB,SAAyB,OAAOmF,EAAEnF,aAAesxB,EAAEtxB,WAKhJ,IADAjB,GADAuE,EAAOxD,OAAOwD,KAAK6B,IACLpG,UACCe,OAAOwD,KAAKguB,GAAGvyB,OAAQ,OAAO,EAE7C,IAAKoB,EAAIpB,EAAgB,GAARoB,KACf,IAAKL,OAAOC,UAAU4W,eAAe1W,KAAKqxB,EAAGhuB,EAAKnD,IAAK,OAAO,EAKhE,GAAIuuG,GAAkBvpG,aAAawpG,QAAS,OAAO,EAGnD,IAAKxuG,EAAIpB,EAAgB,GAARoB,KACf,IAAiB,WAAZmD,EAAKnD,IAA+B,QAAZmD,EAAKnD,IAA4B,QAAZmD,EAAKnD,KAAiBgF,EAAEoqG,YAarEL,EAAM/pG,EAAE7B,EAAKnD,IAAKmxB,EAAEhuB,EAAKnD,KAAM,OAAO,EAK7C,OAAO,CACT,CAEA,OAAOgF,GAAMA,GAAKmsB,GAAMA,CAC1B,CAGA3yB,EAAOwC,QAAU,SAAiBgE,EAAGmsB,GACnC,IACE,OAAO49E,EAAM/pG,EAAGmsB,EAClB,CAAE,MAAOjyB,GACP,IAAMA,EAAM2V,SAAW,IAAI7L,MAAM,oBAO/B,OADA/J,QAAQwV,KAAK,mDACN,EAGT,MAAMvV,CACR,CACF,wBC1IAV,EAAOwC,QAAUb,QAAQ,eCCrBkvG,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqB7vG,IAAjB8vG,EACH,OAAOA,EAAaxuG,QAGrB,IAAIxC,EAAS6wG,EAAyBE,GAAY,CACjDruG,GAAIquG,EACJE,QAAQ,EACRzuG,QAAS,CAAC,GAUX,OANA0uG,EAAoBH,GAAU/wG,EAAQA,EAAOwC,QAASsuG,GAGtD9wG,EAAOixG,QAAS,EAGTjxG,EAAOwC,OACf,CCzBAsuG,EAAoBK,KAAO,WAC1B,MAAM,IAAIh8F,MAAM,iCACjB,ECDA27F,EAAoBtkG,EAAKxM,IACxB,IAAIoxG,EAASpxG,GAAUA,EAAOqxG,WAC7B,IAAOrxG,EAAiB,QACxB,IAAM,EAEP,OADA8wG,EAAoBp+E,EAAE0+E,EAAQ,CAAE5qG,EAAG4qG,IAC5BA,CAAM,ECLdN,EAAoBp+E,EAAI,CAAClwB,EAAS8uG,KACjC,IAAI,IAAIzsG,KAAOysG,EACXR,EAAoB/rG,EAAEusG,EAAYzsG,KAASisG,EAAoB/rG,EAAEvC,EAASqC,IAC5E1D,OAAO+B,eAAeV,EAASqC,EAAK,CAAEzB,YAAY,EAAMmO,IAAK+/F,EAAWzsG,IAE1E,ECNDisG,EAAoB/rG,EAAI,CAAChC,EAAKwuG,IAAUpwG,OAAOC,UAAU4W,eAAe1W,KAAKyB,EAAKwuG,GCClFT,EAAoBl7D,EAAKpzC,IACH,oBAAXwwB,QAA0BA,OAAOw+E,aAC1CrwG,OAAO+B,eAAeV,EAASwwB,OAAOw+E,YAAa,CAAEruG,MAAO,WAE7DhC,OAAO+B,eAAeV,EAAS,aAAc,CAAEW,OAAO,GAAO,ECL9D2tG,EAAoBW,IAAOzxG,IAC1BA,EAAO0xG,MAAQ,GACV1xG,EAAOu0D,WAAUv0D,EAAOu0D,SAAW,IACjCv0D,GCHR8wG,EAAoBj1F,EAAI,ykDCAxB,MAAM,EAA+Bla,QAAQ,sBCA7C,MAAM,EAA+BA,QAAQ,2BCE7C,MAEA,GAFyB,IAAAgwG,iBCEzB,GAF6B,IAAAA,0OCC7B,SAASC,EAAK,YACZnlG,UAAAA,EAAA,OACAolG,EAAM,KACNj+F,EAAI,OACJk+F,GAJY,EAKTC,+JAAA,CALS,EAKT,CAJH,YACA,SACA,OACA,WAgBA,OAAO,kBAAC,yHAAEtlG,UAbV,WACE,MAAMgzE,EAAaoyB,GAAU,KAG7B,MAAO,CACL,WACe,OAAfpyB,GAAuBA,EACvB,GAAGA,KAAc7rE,IALe,OAAf6rE,EAAsB,MAAMqyB,GAAU,UAAY,GAOnErlG,GACAoJ,OAAO4uB,SAASpiC,KAAK,IACzB,CAEqB2vG,IAAqBD,GAC5C,CAEAH,EAAKK,UAAY,CAEfxlG,UAAW,WAEXolG,OAAQ,WAERj+F,KAAM,WAAiBs+F,WAEvBJ,OAAQ,YAGV,UC/BA,SAASK,GAAY,KAAE9vC,IACrB,MAAM,UAAE+vC,EAAS,SAAE59F,EAAQ,aAAE69F,IAAiB,IAAAC,YAAW,GAEnDC,EAAWH,EAAY,eAAiB,aACxCtkG,EAAU,CACd,yBACA0G,GAAY,oCACZqB,OAAO4uB,SAASpiC,KAAK,KACjBmwG,EACJ,kBAAC,UACC/lG,UAAWqB,EACX2kG,QAASJ,EACTz+F,KAAK,SACL,aAAW,mBAEX,kBAAC,EAAI,CAACnH,UAAU,qBAAqBmH,KAAM2+F,KAI/C,OAAOlwC,EACH,kBAAC,OAAI51D,UAAU,kCAAkC+lG,GACjDA,CACN,CAEAL,EAAYF,UAAY,CACtB5vC,KAAM,UAGR,UCzBA,SAASqwC,GACPN,UAAWO,EAAa,SACxBp+C,EAAQ,UACR9nD,EAAS,SACT+H,GACCo+F,GACD,MAAM,MAAE7N,IAAU,IAAAuN,YAAW,IACtBF,EAAWS,IAAgB,IAAAC,UAASH,GAErCN,EAAe,KACf79F,GAIJq+F,GAAcT,EAAU,EAGpBtkG,GAAU,IAAAilG,UAAQ,IAAM,CAC5B,sBACAhO,EAAMiO,gBACF,yCAAyCjO,EAAMrhG,WAC/C,yCACJ+I,GACc,IAAd2lG,GAAuB,+BACvBv8F,OAAO4uB,SAASpiC,KAAK,MAAM,CAAC0iG,EAAOt4F,EAAW2lG,IAE1Ca,GAAe,IAAAF,UAAQ,KAAM,CACjCX,YACA59F,WACA69F,kBACE,CAACD,EAAW59F,EAAU69F,IAE1B,OACE,kBAAC,OAAIO,MAAUnmG,UAAWqB,GACxB,kBAAC,EAAqBolG,SAArB,CAA8B/vG,MAAO8vG,GACnClO,EAAMiO,iBACL,kBAAC,EAAW,CAAC3wC,MAAI,IAElB9N,GAIT,CAEAm+C,EAAcT,UAAY,CACxB19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEF69C,UAAW,SACX3lG,UAAW,WACX+H,SAAU,UAGZk+F,EAAcS,aAAe,CAC3Bf,WAAW,GAGb,SAAe,IAAAgB,YAAWV,GC7D1B,SAASW,GAAoB,UAAE5mG,EAAS,SAAE8nD,IACxC,MAAM,UAAE69C,EAAS,SAAE59F,EAAQ,aAAE69F,IAAiB,IAAAC,YAAW,IACnD,kBAAEgB,EAAiB,MAAEvO,IAAU,IAAAuN,YAAW,GAC1CC,EAAWH,EAAY,eAAiB,aACxCtkG,EAAU,CACd,6BACAwlG,GAAqB,+BACrB7mG,GACAoJ,OAAO4uB,SAASpiC,KAAK,KAEvB,OACE,kBAAC,OAAIoK,UAAWqB,GAEXwlG,EAYG,qCACIvO,EAAMiO,iBAAsC,SAAnBjO,EAAMrhG,UAC/B,kBAAC,EAAW,MAEd,kBAAC,WAAK6wD,IACJwwC,EAAMiO,iBAAsC,UAAnBjO,EAAMrhG,UAC/B,kBAAC,EAAW,OAhBhB,kBAAC,UACC+I,UAAW+H,EAAW,mCAAqC,GAC3Di+F,QAASJ,EACTz+F,KAAK,UAEL,kBAAC,YAAM2gD,GACP,kBAAC,EAAI,CAAC9nD,UAAU,qBAAqBmH,KAAM2+F,KAiBzD,CAEAc,EAAoBpB,UAAY,CAC9B19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEF9nD,UAAW,YAGb,UC1DM,EAA+B9K,QAAQ,0BCEvC4xG,EAAWnnG,GACVA,EAOE,CACLoD,MAAOpD,EAAG6D,YACVP,OAAQtD,EAAGgoB,cARJ,CACL5kB,MAAO,EACPE,OAAQ,GAoCd,EA1B0BkjG,IACxB,MAAOY,EAAeC,IAAoB,IAAAX,UAASS,EAAQX,EAAMA,EAAIc,QAAU,CAAC,IAC1EC,GAAe,IAAAC,cAAY,KAC3BhB,EAAIc,SACND,EAAiBF,EAAQX,EAAIc,SAC/B,GACC,CAACd,IAgBJ,OAdA,IAAAiB,kBAAgB,KACdF,IAEA,IAAIG,EAAiB,IAAIxlB,gBAAe,KACtCqlB,GAAc,IAIhB,OAFAG,EAAe1kB,QAAQwjB,EAAIc,SAEpB,KACLI,EAAexkB,WAAWsjB,EAAIc,SAC9BI,EAAiB,IAAI,CACtB,GACA,CAAClB,EAAIc,UAEDF,CAAa,ECZtB,EAxByB,CAACjgG,EAAW6P,EAAS/V,KAC5C,MAAM0mG,GAAe,IAAAC,WACrB,IAAAC,YAAU,KACRF,EAAaL,QAAUtwF,CAAO,GAC7B,CAACA,KAEJ,IAAA6wF,YAAU,KAER,KADoB,MAAA5mG,OAAA,EAAAA,EAASsH,kBAG3B,OAGF,MAAMu/F,EAAiB/vF,GAAU4vF,EAAaL,QAAQvvF,GAItD,OAHA9W,EAAQsH,iBAAiBpB,EAAW2gG,GAG7B,KACL7mG,EAAQyH,oBAAoBvB,EAAW2gG,EAAc,CACtD,GACA,CAAC3gG,EAAWlG,GAAS,wRCZ1B,SAAS8mG,EAAY,YACnB1nG,UAAAA,EAAA,UACA2lG,EAAS,SACT79C,GAHmB,EAIhBw9C,+JAAA,CAJgB,EAIhB,CAHH,YACA,YACA,aAGA,MAAMqC,GAAmB,IAAAJ,QAAO,MAC1BK,GAAkB,IAAAL,QAAO,MACzBM,EAAmB,EAAiBF,IACnCG,EAAuBC,IAA4B,IAAA1B,UAAS,CAEjEpjG,OAAS0iG,EAAa,EAAI,SAGtBtmB,EAAap8E,IACjB8kG,EAAyB,CACvB9kG,OAAQ,GAAGA,OACX,EAGEykB,EAAY,IAAOigF,EAAiBV,QAAUU,EAAiBV,QAAQzmF,aAAe,GAU5F,IAAAgnF,YAAU,MACH7B,IACA,MAAAkC,OAAA,EAAAA,EAAkB5kG,SAClB6kG,EAAsB7kG,UAAW,MAAA4kG,OAAA,EAAAA,EAAkB5kG,SAEtDo8E,EAAUwoB,EAAiB5kG,OAC7B,GACC,CAAC4kG,EAAiB5kG,SAErB,MAAM+kG,GAAiB,IAAAb,cAAY,MAC5BxB,GAAagC,EAAiBV,UACjC5nB,EAAU33D,KACVkgF,EAAgBX,QAAQhnG,MAAMgD,OAAS,GAAGykB,QAC5C,GACC,CAACi+E,EAAWgC,EAAiBV,UAIhC,OAFA,EAAiB,SAAUe,EAAgB30G,QAGzC,kBAAC,EAAA40G,cAAA,CACCC,QA5BY,KACd7oB,EAAU33D,IAAY,EA4BpBygF,OAzBW,KACb9oB,EAAU,EAAE,EAyBV+oB,IAAKzC,EACLhqG,QAAS,EACT0sG,WAAW,YAEX,kBAAC,OACCroG,UAAU,mBACVmmG,IAAKyB,EACL3nG,MAAO6nG,GAEP,kBAAC,gIACKxC,SADL,CAECtlG,YACAmmG,IAAKwB,MAEH7/C,UAKZ,CAEA4/C,EAAYlC,UAAY,CACtB19C,SAAU,cAAoB,CAC5B,YACA,SACA,aAGF69C,UAAW,SAEX3lG,UAAW,YAGb,UCzFA,SAASsoG,GAAqB,SAAExgD,EAAQ,UAAE9nD,IACxC,MAAM,UAAE2lG,IAAc,IAAAE,YAAW,GAE3BxkG,EAAU,CACd,8BACArB,GACAoJ,OAAO4uB,SAASpiC,KAAK,KAEvB,OACE,kBAAC,OAAIoK,UAAWqB,GACd,kBAAC,EAAW,CAACskG,aACT79C,GAIV,CAEAwgD,EAAqB9C,UAAY,CAC/B19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEF9nD,UAAW,YAGb,UC1BA,SAASuoG,GAAU,UACjBvoG,EAAS,SACT8nD,EAAQ,kBACR++C,EAAiB,MACjBvO,EAAQ,CAAErhG,SAAU,QAASsvG,iBAAiB,KAE9C,MAAMllG,EAAU,CACd,gBACArB,GACAoJ,OAAO4uB,SAASpiC,KAAK,KAEjB4wG,GAAe,IAAAF,UAAQ,KAAM,CACjCO,oBACAvO,WACE,CAACuO,EAAmBvO,IAExB,OACE,kBAAC,OAAIt4F,UAAWqB,GACd,kBAAC,EAAiBolG,SAAjB,CAA0B/vG,MAAO8vG,GAC/B1+C,GAIT,CAEAygD,EAAU/C,UAAY,CACpB19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEF9nD,UAAW,WACX6mG,kBAAmB,SACnBvO,MAAO,UAAgB,CACrBrhG,SAAU,UAAgB,CAAC,OAAQ,UACnCsvG,gBAAiB,YAIrBgC,EAAU7B,aAAe,CACvBG,mBAAmB,GAIrB0B,EAAUC,KAAO,EACjBD,EAAUC,KAAKC,OAAS,EACxBF,EAAUC,KAAKE,QAAU,EAGzB,uVCjDA,SAASC,EAAO9tG,EAAOsrG,GACrB,MAkBI,EAAAtrG,GAjBF+tG,aAAAA,EAAA,SACA9gD,EAAQ,SACRg+C,EAAQ,WACR+C,EAAU,aACVC,EAAY,SACZC,EAAQ,GACR9yG,EAAE,UACF+J,EAAS,SACT+H,EAAQ,QACR7E,EAAO,KACPN,EAAI,QACJojG,EAAO,QACPgD,EAAO,KACP7nE,EAAI,MACJ5Z,EAAK,KACLpgB,GAEE,EADCm+F,+JAAA,CACD,EADC,CAhBH,eACA,WACA,WACA,aACA,eACA,WACA,KACA,YACA,WACA,UACA,OACA,UACA,UACA,OACA,QACA,SAII2D,EAAgB,KACpB,MAAMC,EAAa,CAAC,cAAcn6E,OAAO/uB,EAAYA,EAAUvK,MAAM,KAAO,IACtE0zG,EAAahoE,EAAQ,eAAeA,IAAS,iBAC7CioE,EAAiBrhG,EAAY,WAAa,GAC1CshG,EAAenmG,GAAW,GAC1BomG,EAAa/hF,EAAQ,eAAeA,IAAU,GAC9CgiF,EAAgBR,EAAW,wBAA0B,GACrDS,EAAeR,EAAU,uBAAyB,GAaxD,OAXAE,EAAW/zG,KAAKo0G,GAChBL,EAAW/zG,KAAKm0G,GAChBJ,EAAW/zG,KAAKg0G,GAChBD,EAAW/zG,KAAKi0G,GAChBF,EAAW/zG,KAAKk0G,GAChBH,EAAW/zG,KAAKq0G,GAEZ1D,GACFoD,EAAW/zG,KAAK,QAAQ2zG,GAAgB,UAGnCI,EAAWtzG,KAAK,IAAI,EAGvB6zG,EAAiBxyG,GAIlB6uG,IAHUgD,GAAgB,UAGL7xG,EAClB,kBAAC,EAAI,CAACmuG,OAAQyD,EAAY1hG,KAAM2+F,IAChC,KAwDR,MApDsB,MACpB,IAAI4D,EAEJ,OAAId,EAEA,qCACI,IAAAe,cAAaf,EAAc,CAC3B5oG,UAAWipG,IACXlhG,eAON2hG,EADE9mG,EAEA,kBAAC,OACC3M,KACA+J,UAAWipG,IACXlhG,WACAi+F,UACApjG,OACAujG,OACIb,GAEFmE,EAAc,QACd3hD,EACA2hD,EAAc,UAMlB,kBAAC,YACCxzG,KACA+J,UAAWipG,IACXlhG,WACAi+F,UACA7+F,KAAMA,GAAQ,SACdg/F,OACIb,GAEFmE,EAAc,QACd3hD,GAAY,kBAAC,YAAMA,GACnB2hD,EAAc,UAKfC,EAAU,EAIjBE,EAEJ,CAEAjB,EAAOnD,UAAY,CAIjB19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEF8gD,aAAc,cAAoB,CAChC,YAAkB,UAClB,SACA,cAEF5oG,UAAW,WAIXkD,QAAS,WAIT6E,SAAU,SAIV9R,GAAI,WACJ2M,KAAM,WACNkmG,aAAc,WACdD,WAAY,WACZE,SAAU,SACVjD,SAAU,WACVkD,QAAS,SAIThD,QAAS,SAITz+E,MAAO,WAIPpgB,KAAM,WAINg6B,KAAM,YAGRwnE,EAAOjC,aAAe,CACpBn/E,MAAO,GACPpgB,KAAM,UAGR,SAAe,IAAAw/F,YAAWgC,GC7K1B,SAASkB,GAAY,UAAE7pG,EAAS,SAAE8nD,EAAQ,MAAEp4B,GAASy2E,GACnD,OACE,kBAAC,OAAIA,MAAUnmG,UAAW,6BAA6BA,KACpDg4B,QAAQtI,IAAU,kBAAC,aAAOA,GAC3B,kBAAC,OAAI1vB,UAAU,oBAAoB8nD,GAGzC,CAEA+hD,EAAYrE,UAAY,CACtB19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEF9nD,UAAW,WAAiBylG,WAC5B/1E,MAAO,WAAiB+1E,YAG1B,SAAe,IAAAkB,YAAWkD,GCpB1B,SAASC,GAAW,MAClBxoF,EAAQ,KAAI,SACZwmC,IAEA,OACE,kBAAC,OAAI9nD,UAAU,oBACZ8nD,GAAY,kBAAC,OAAI9nD,UAAU,4BAA4B8nD,GACvDxmC,GAAS,kBAAC,OAAIthB,UAAU,0BAA0BshB,GAGzD,CAEAwoF,EAAWtE,UAAY,CACrBlkF,MAAO,cAAoB,CACzB,YACA,SACA,aAEFwmC,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,UCzBA,SAASiiD,GAAS,MAChBC,EAAQ,eACRliD,IAEA,OACE,kBAAC,OAAI9nD,UAAW,wCAAwCgqG,KACtD,kBAAC,WACEliD,GAIT,CAEAiiD,EAASvE,UAAY,CACnBwE,MAAO,UAAgB,CAAC,MAAO,SAAU,WACzCliD,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,UCtBA,SAASmiD,GAAW,SAAEniD,IACpB,OACE,kBAAC,OAAI9nD,UAAU,oBACZ8nD,EAGP,CAEAmiD,EAAWzE,UAAY,CACrB19C,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,UChBA,SAASoiD,IAAU,SACjBj3B,EAAW,EAAC,SACZnrB,IAEA,OACE,kBAAC,MAAG9nD,UAAW,wCAAwCizE,WACpDnrB,EAGP,CAEAoiD,GAAU1E,UAAY,CACpBvyB,SAAU,WACVnrB,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,YCpBA,SAASqiD,IAAe,SACtBriD,IAEA,OACE,kBAAC,OAAI9nD,UAAU,yBACZ8nD,EAGP,CAEAqiD,GAAe3E,UAAY,CACzB19C,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,YClBA,SAASsiD,IAAa,SACpBtiD,IAEA,OACE,kBAAC,MAAG9nD,UAAU,uBACX8nD,EAGP,CAEAsiD,GAAa5E,UAAY,CACvB19C,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,YClBA,SAASuiD,IAAY,SACnBp3B,EAAW,EAAC,SACZnrB,IAEA,OACE,kBAAC,KAAE9nD,UAAW,4CAA4CizE,WACvDnrB,EAGP,CAEAuiD,GAAY7E,UAAY,CACtBvyB,SAAU,WACVnrB,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,YCpBA,SAASwiD,IAAc,SACrBxiD,IAEA,OACE,kBAAC,OAAI9nD,UAAU,wBACZ8nD,EAGP,CAEAwiD,GAAc9E,UAAY,CACxB19C,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,YCVA,SAASyiD,IAAK,UACZvqG,EAAY,UACZiD,EAAS,gBACT6kD,IAEA,OACE,kBAAC,OAAI7nD,MAAO,CAAEgD,UAAUjD,UAAW,YAAYA,KAC5C8nD,EAGP,CAEAyiD,GAAK/E,UAAY,CACfxlG,UAAW,WACXiD,OAAQ,cAAoB,CAC1B,WACA,aAEF6kD,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJyiD,GAAK9B,OAAS,EACd8B,GAAKC,KAAO,EACZD,GAAKE,OAAS,EACdF,GAAKG,MAAQ,GACbH,GAAKI,WAAa,GAClBJ,GAAKpF,KAAO,GACZoF,GAAKK,SAAW,GAChBL,GAAKM,QAAU,GAEf,YC7CM,GAA+B31G,QAAQ,WCAvC,GAA+BA,QAAQ,aCA7C,IAAgBm0C,EAAMyhE,EAAMC,KAC1B,IAAIpvG,EACJ,OAAO,YAAsBu/B,GAC3B,MAAMrc,EAAUzrB,KAOV43G,EAAUD,IAAcpvG,EAC9BI,aAAaJ,GACbA,EAAUE,YARI,KACZF,EAAU,KACLovG,GACH1hE,EAAKt1C,MAAM8qB,EAASqc,EACtB,GAI0B4vE,GACxBE,GACF3hE,EAAKt1C,MAAM8qB,EAASqc,EAExB,CACD,ECND,GATqBxkC,IACnB,MAAMyvG,GAAM,IAAAoB,UAIZ,OAHA,IAAAC,YAAU,KACRrB,EAAIc,QAAUvwG,CAAK,GAClB,CAACA,IACGyvG,EAAIc,OAAO,ECJpB,SAASgE,IAAO,UAAEjrG,EAAS,SAAE/I,EAAW,0BAAYi0G,GAAiB,IACnE,MAAM7pG,EAAU,CACd,UACApK,EACA+I,GACAoJ,OAAO4uB,SAASpiC,KAAK,KAEjBiX,EACJ,kBAAC,OAAI7M,UAAWqB,GACd,kBAAC,OAAIrB,UAAU,gBACf,kBAAC,OAAIA,UAAU,gBACf,kBAAC,OAAIA,UAAU,gBACf,kBAAC,OAAIA,UAAU,iBAInB,OAAOkrG,EACH,kBAAC,OAAIlrG,UAAU,wBAAwB6M,GACvCA,CACN,CAEAo+F,GAAOzF,UAAY,CAEjBxlG,UAAW,WAEX/I,SAAU,WAEVi0G,eAAgB,UAGlB,YCtBA,SAASC,IAAQ,SACfrjD,EAAQ,MAAEvgC,EAAK,QAAE6jF,EAAO,SAAEC,EAAQ,UAAErrG,IAWpC,MAAM8lG,EAAqB,YAAVv+E,EAAsB,QAAU,UAEjD,OACE,kBAAC,OAAIvnB,UAXE,CACL,cACA,gBAAgBunB,GAAS,SACzB8jF,GAAY,YACZrrG,GACAoJ,OAAO4uB,SAASpiC,KAAK,MAOrB,kBAAC,EAAI,CAACwvG,OAAO,QAAQj+F,KAAM2+F,IAC3B,kBAAC,OAAI9lG,UAAU,wBACX8nD,GAEHsjD,GACC,kBAAC,EAAI,CAAChG,OAAO,QAAQj+F,KAAK,IAAI6+F,QAASoF,IAI/C,CAEAD,GAAQ3F,UAAY,CAElBj+E,MAAO,WACPugC,SAAU,cAAoB,CAC5B,YACA,SACA,aAGF9nD,UAAW,WAEXqrG,SAAU,SAEVD,QAAS,UAGX,o719BCvCA,SAASE,IAAM,gBACbC,EAAe,WACfC,EAAU,QACVC,EAAO,UACPx9C,EAAS,KACT9mD,EAAI,OACJia,EAAM,OACNsqF,EAAM,SACNvrE,EAAQ,UACRwrE,EAAS,QACTC,EAAO,MACP5Q,EAAK,aACL6Q,EAAe,GACfC,gBAAiBC,EAAsB,KAAI,WAC3CC,EAAU,MACV/rG,IAEA,MAAOgsG,EAAkBC,IAAuB,IAAA7F,UAAS,MACnD8F,GAAkB,IAAA5E,QAAO,MACzBrhC,EAAW,KACX+lC,GACFA,EAAiBhmC,QACnB,EAGI6lC,GAAkB,IAAAxF,UACtB,IAAOyF,EACHA,IAEA,kBAAC,GAAO,CAACxkF,MAAM,QAAO,uBAI1B,CAACwkF,IAGGK,EAAe,CACnBC,aAAa,KAAAC,QAAO,CAClBtR,MAAO,CACLxzE,MAAM,EACNlP,KAAM0iF,EACN53F,KAAM,GAERmpG,MAAO,GACPC,QAAS,CACPlrF,MAAO,IACPmrF,OAAQ,aACRC,SAAU,GACVC,WAAW,EACXC,QAAS,MAEXC,SAAU,CAAC,CACTrlF,MAAM,EACN9Y,MAAO,EACPnV,IAAK,IACLkzG,OAAQ,aACRK,eAAgB,CACdC,UAAW,CACTR,OAAO,MAAAP,OAAA,EAAAA,EAAYe,YAAa,WAElCC,UAAW,CACTT,OAAO,MAAAP,OAAA,EAAAA,EAAYgB,YAAa,YAGpCC,YAAa,CACXV,OAAO,MAAAP,OAAA,EAAAA,EAAYiB,cAAe,WAEpCC,UAAW,CACTX,OAAO,MAAAP,OAAA,EAAAA,EAAYkB,YAAa,WAElCC,YAAa,cACbC,aAAa,MAAApB,OAAA,EAAAA,EAAYoB,cAAe,4BAE1CC,OAAQ,CACN7lF,MAAM,GAIRmF,QAAS,CACPo5E,QAAS,OACTuH,YAAa,CACXnmG,KAAM,UAGVomG,KAAM,CACJnqG,KAAM,KACNke,MAAO,KACPf,OAAQ,OACR3b,IAAK,OACL4oG,cAAc,GAEhBC,MAAO,CACLC,aAAa,EACbvmG,KAAM,WACNy1D,UAAW,CACTp1C,MAAM,EACNulF,UAAW,CACT5lG,KAAM,SACNolG,MAAO,YAGXoB,SAAU,CACRnmF,MAAM,GAERomF,SAAU,CACRpmF,MAAM,GAER/e,KAAM,IAERolG,MAAO,CACLv0G,IAAK,UACLo0G,aAAa,EACbJ,YAAa,CACX9lF,MAAM,GAERo1C,UAAW,CACTmwC,UAAW,CACT5lG,KAAM,SACNolG,MAAO,WAET/kF,MAAM,GAERsmF,UAAW,CACTtmF,MAAM,GAERmmF,SAAU,CACRnmF,MAAM,GAERomF,SAAU,CACRpmF,MAAM,GAERrgB,KAAM,SAER+lG,UAAW,CACTX,MAAO,WAETb,OAAQ,GACRqC,gBAAiB,eAEnBC,eAAe,KAAA1B,QAAO,CACpB7jG,KAAM,GACNtB,KAAM,OACN6lG,UAAW,CACTz0F,QAAS,EACTg0F,MAAOhB,EACH,IAAI,WAAgB0C,eACpB,EACA,EACA,EACA,EACA1C,EAAgBhzG,KAAI,CAACg0G,EAAOv0G,KAAU,CACpCsD,OAAQtD,EACRu0G,aAGF,IAEN2B,QAAQ,EACRC,WAAY,EACZ53G,KAAM,MAIJ63G,EAAW,CACf/B,aAAa,KAAAC,QAAO,CAClB3/E,QAAS,CACPo5E,QAAS,OACTsI,UAAW,mBAEbhB,OAAQ,CACNZ,OAAQ,aACRz6F,EAAG,OACHwR,EAAG,MACH/a,KAAM,IAER8jG,MAAO,GACPb,OAAQ,KAEVsC,eAAe,KAAA1B,QAAO,CACpBnlG,KAAM,MACN0nE,OAAQ,CACN,MACA,OAEFy/B,OAAQ,CACN,MACA,OAEFC,mBAAmB,EACnBC,cAAe,QACfT,gBAAiB,aACjBU,UAAW,CACTC,OAAQ,CACNlnF,MAAM,EACN0mF,OAAQ,GACRv6G,OAAQ,EACRg7G,QAAS,IAGblmG,KAAM,MAIJmmG,EAAW,CACfvC,aAAa,KAAAC,QAAO,CAClBZ,OAAQ,KAEVsC,eAAe,KAAA1B,QAAO,CACpBnlG,KAAM,MACNsB,KAAM,OA+CV,IAAA++F,YAAU,KACRn0G,OAAO6U,iBAAiB,SAAUg+D,GAE3B,KACL7yE,OAAOgV,oBAAoB,SAAU69D,EAAS,IAE/C,CAAC+lC,KAEJ,IAAAzE,YAAU,KACR,GAAK,MAAA2E,OAAA,EAAAA,EAAiBlF,QAKtB,OAHAiF,EAAoB,QAAaC,EAAgBlF,UAG1C,KACDgF,GACFA,EAAiB4C,SACnB,CACD,GACA,CAAC1C,EAAgBlF,UAEpB,MAAM6H,EAAiBvyG,IACjB4jC,GACFA,EAAS5jC,EACX,GAGF,IAAAirG,YAAU,KACR,IAAIuH,EAcJ,OAbI9C,IACF8C,EAAkBC,GAASF,EAAe,KAC1C7C,EAAiB3kG,GAAG,WAAYynG,GAChC9C,EAAiB3kG,GAAG,UAAWynG,GAC/B9C,EAAiB3kG,GAAG,QAASynG,GAE7B9C,EAAiB3kG,GAAG,aAAcxS,IAC5BA,EAAO2T,MACTwjG,EAAiBgD,QAAQh8E,eAAe,UAC1C,KAIG,KACDg5E,IACFA,EAAiBzkG,IAAI,WAAYunG,GACjC9C,EAAiBzkG,IAAI,UAAWunG,GAChC9C,EAAiBzkG,IAAI,QAASunG,GAChC,CACD,GACA,CAAC9C,EAAkB9rE,IAEtB,MAAM+uE,EAAe,GAAYjD,GAC3BkD,EAAa,GAAY/tF,GACzBguF,EAAW,GAAYjoG,GACvBkoG,EAAa,GAAY3D,IAC/B,IAAAlE,YAAU,KAtUZ,iBAwUMyE,IAEG,wBAAAK,QAAO4C,SAAP,IAAsBI,aAAtB,YAA+B,KAAAhD,QAAOL,OACnC,wBAAAK,QAAO6C,SAAP,IAAoBG,aAApB,YAA6B,KAAAhD,QAAOlrF,MACpCguF,IAAajoG,IACb,kBAAAmlG,QAAO+C,IAAYC,aAAnB,YAA4B,KAAAhD,QAAOZ,OAGzCO,EAAiBvqB,QACjBuqB,EAAiBjjG,UA7GK,EAACumG,EAAcC,EAAiBC,KACxD,IAAIC,EAAY,CAAC,EACjB,OAAQH,GACN,IAAK,MACHG,EAAYtB,EAAS/B,YAAYsD,WAAU,KAAArD,QAAOkD,IAAkBI,OAEpEH,EAAet3G,SAAS03G,IACtBH,EAAUhE,OAAOv2G,KAAKi5G,EAASJ,cAAc2B,WAAU,KAAArD,QAAOuD,IAAQD,OAAO,IAG/E,MAGF,IAAK,MACHF,EAAYd,EAASvC,YAAYsD,WAAU,KAAArD,QAAOkD,IAAkBI,OAEpEH,EAAet3G,SAAS03G,IACtBH,EAAUhE,OAAOv2G,KAAKy5G,EAASZ,cAAc2B,WAAU,KAAArD,QAAOuD,IAAQD,OAAO,IAG/E,MAGF,QACEF,EAAYtD,EAAaC,YAAYsD,WAAU,KAAArD,QAAOkD,IAAkBI,OACpEn3G,MAAMoB,QAAQ21G,EAAgB3B,SAChC6B,EAAU7B,MAAQ2B,EAAgB3B,OAGpC4B,EAAet3G,SAAQ,CAAC03G,EAAO73G,KAC7B,MAAM83G,EAAa,YACd1D,EAAa4B,cAAc4B,QAC3B/D,EAAa7zG,IACb63G,GAELH,EAAUhE,OAAOv2G,KAAK26G,EAAW,IAKvC,OAAOJ,CAAS,EAqEaK,CAAkB5oG,EAAMia,EAAQsqF,IAC3DO,EAAiB+D,eAAe,CAC9B7oG,KAAM,mBACN/O,IAAK,iBACL63G,sBAAsB,IAE1B,GACC,CAAChE,EAAkB7qF,EAAQsqF,EAAQvkG,KAEtC,IAAAqgG,YAAU,KACJyE,GAAoBh+C,IACtBg+C,EAAiB+D,eAAe,CAC9B7oG,KAAM,YACN+oG,YAAajiD,EAAUiiD,YACvBC,UAAWliD,EAAUkiD,YAEvBlE,EAAiB+D,eAAe,CAC9B7oG,KAAM,UACN+oG,YAAajiD,EAAUiiD,YACvBC,UAAWliD,EAAUkiD,YAEzB,GACC,CAACliD,IAEJ,MAAMmiD,EAAgB,GAAYzE,GAC5B0E,EAAc,GAAYzE,IAChC,IAAApE,YAAU,MAENyE,IACkB,IAAfN,IACa,IAAbC,GAEDwE,IAAkBzE,GACf0E,IAAgBzE,GAGrBK,EAAiB+D,eAAe,CAC9B7oG,KAAM,WACNmpG,WAAY3E,EACZ4E,SAAU3E,GAEd,GACC,CAACD,EAAWC,IAEf,MAYM4E,EAAe,KAClBhF,IAA2B,IAAZC,IAAiC,IAAZA,GAAqBA,EAiB5D,OACE,kBAAC,OAAIzrG,UAAU,sBAEVwrG,EAEG,KADA,kBAAC,GAAM,MAGb,kBAAC,OACCxrG,UAtBgB,MACpB,MAAMkpG,EAAa,CAAC,aAUpB,OARKsC,GACHtC,EAAW/zG,KAAK,4BAGbq7G,KACHtH,EAAW/zG,KAAK,sBAGX+zG,EAAWtzG,KAAK,IAAI,EAWZqzG,GACXhpG,MAvCW,MACf,MAAM2Y,EAAY3Y,GAAS,CAAC,EAQ5B,OANK2Y,EAAU3V,SACb2V,EAAU3V,OAAS,SAEhB2V,EAAU7V,QACb6V,EAAU7V,MAAQ,QAEb6V,CAAS,EA8BL63F,GACP,YAAWtpG,EACXg/F,IAAKgG,IAGLqE,IACI,KACA1E,EAIZ,CAlaA,eAAoB,QAAS,IAoa7BR,GAAM9F,UAAY,CAChB+F,gBAAiB,eAAqB9yG,OACtC+yG,WAAY,SACZC,QAAS,SACTx9C,UAAW,cAAoB,CAC7B,WACA,WACA,eAAqBx1D,SAEvBqzG,gBAAiB,SACjBH,UAAW,WACXC,QAAS,WACTI,WAAY,eAAqBt3G,QACjC0sB,OAAQ,eAAqB1sB,QAC7ByrC,SAAU,SACVlgC,MAAO,eAAqBvL,QAC5ByS,KAAM,WACN6zF,MAAO,WACP0Q,OAAQ,eAAqBjzG,OAC7BozG,aAAc,eAAqBn3G,SAGrC,UAAe,IAAAg8G,MAAKpF,kBCrcpB,MA2BA,GA3BmB,CAAC/2G,EAAU6H,KAC5B,MAAMu0G,GAAgB,IAAApJ,WAEtB,IAAAC,YACE,KACEmJ,EAAc1J,QAAU1yG,CAAQ,GAElC,CAACA,KAGH,IAAAizG,YACE,KAIE,GAAc,OAAVprG,EAAgB,CAClB,MAAMnG,EAAK4F,YAJb,WACE80G,EAAc1J,SAChB,GAE8B7qG,GAC5B,MAAO,IAAML,aAAa9F,EAC5B,CAEA,MAAO,MAAQ,GAEjB,CAACmG,GACF,iOCnBH,SAASw0G,GAAa/1G,GACpB,MAAM,SACJitD,EAAQ,QACRjoD,EAAO,QACPurG,EAAO,MACPpzG,GACE6C,EACEsP,2HAAO,EACXod,MAAO,UACPnrB,MAAO,KACJyD,GAICgxG,EAAeC,IACnB1F,EAAQ0F,GACR/0G,kBAJEN,EAIiB,EAKrB,OAFA,IAAW,IAAMo1G,EAAY74G,IAAQmS,EAAK/N,OAGxC,kBAAC,IACC4D,UAAU,qBACVunB,MAAOpd,EAAKod,MACZ6jF,QAAS,IAAMyF,EAAY74G,IAE1B8vD,EAGP,CAEA8oD,GAAapL,UAAY,CACvB19C,SAAU,cAAoB,CAC5B,YACA,SACA,aAEFjoD,QAAS,eAAqBnL,QAC9B02G,QAAS,SACTpzG,MAAO,YAGT,qaC1CA,SAAS+4G,GAAel2G,GACtB,MAAO8N,EAAU2B,IAAe,IAAA+7F,UAAS,CAAC,IACpC,OACJ2K,GACEn2G,EAEEo2G,EAAsB,CAACrnG,EAAS/J,KACpC,MAAMqxG,EAAQ93G,KAAKk8C,MAAsB,IAAhBl8C,KAAK+3G,UAE9B7mG,GAAa8mG,IAAkB,eAC1BA,WAD0B,CAE7B,CAACF,GAAQ,CACPtnG,UACA/J,mBAEF,GAAC,GAGL,IAAA2nG,YAAU,KACRwJ,EAAOC,EAAoB,GAC1B,CAACtoG,IAEJ,MAAM0oG,EAAmBr5G,WACF,MAAK2Q,GACN3Q,GACpBsS,GAAa8mG,IACX,MAAME,EAAc,MAAKF,GAEzB,cADOE,EAAYt5G,GACZs5G,CAAW,GAClB,EAGJ,OACE,kBAAC,OAAItxG,UAAU,wBAEXtL,OAAOwD,KAAKyQ,GAAUpQ,KAAK24G,GACzBvoG,EAASuoG,GAEL,kBAAC,IACCrxG,QAAS8I,EAASuoG,GAAOrxG,QAEzBurG,QAASiG,EAAgBj6F,KAAK,KAAM85F,GACpCl5G,MAAOk5G,EAEP94G,IAAK84G,GAEJvoG,EAASuoG,GAAOtnG,SAGnB,OAKd,CAEAmnG,GAAevL,UAAY,CACzBwL,OAAQ,UAGV,2bCnBA,MAEA,GAFc,IApCd,MACE,WAAA7qG,YAQA,8CAAcorG,IACZn+G,KAAKo+G,mBAAqBD,CAAE,IAR5B,MAAM5xG,EAAKL,SAASM,cAAc,OAClCD,EAAGK,UAAY,YACfV,SAASgE,KAAK9D,YAAYG,IACb,QAAWA,GACnB8xG,OAAO,kBAAC,GAAc,CAACT,OAAQ59G,KAAKs+G,aAC3C,CAMA,MAAAV,CAAOpnG,EAAS/J,GACVzM,KAAKo+G,oBACPp+G,KAAKo+G,mBAAmB5nG,EAAS/J,EAErC,CAEA,MAAA8xG,CAAO/nG,EAAS/J,GACdzM,KAAK49G,OAAOpnG,EAAS,SAAK/J,GAAL,CAAc0nB,MAAO,WAC5C,CAEA,OAAA0T,CAAQrxB,EAAS/J,GACfzM,KAAK49G,OAAOpnG,EAAS,SAAK/J,GAAL,CAAc0nB,MAAO,YAC5C,CAEA,OAAA2G,CAAQtkB,EAAS/J,GACfzM,KAAK49G,OAAOpnG,EAAS,SAAK/J,GAAL,CAAc0nB,MAAO,YAC5C,CAEA,IAAA4G,CAAKvkB,EAAS/J,GACZzM,KAAK49G,OAAOpnG,EAAS,SAAK/J,GAAL,CAAc0nB,MAAO,SAC5C,kOCnCF,SAASqqF,GAAgB/2G,GACvB,MAAM,QACJqI,EAAO,KAAEtJ,EAAI,SAAEkuD,EAAQ,OAAE1pC,EAAM,QAAExU,EAAU,UACzC/O,EACEg3G,GAAS,IAAAC,aACTt8E,GAAc,IAAA2xE,cAAY,KAK9B,GAJI/oF,GACFA,KAGG/qB,OAAO+J,UAAUua,UAIpB,OAHAk6F,EAAO5K,QAAQ5oF,SACf/e,SAASme,YAAY,aACrB,GAAMwd,QAAQrxB,GAGhBvW,OAAO+J,UAAUua,UAAUqe,UAAUp8B,GACrC,GAAMqhC,QAAQrxB,EAAQ,GACrB,CAACwU,EAAQyzF,IAEZ,OACE,oCACE,kBAACh3G,EAAM+F,iIAAN,EAAcolG,QAASxwE,EAAau8E,QAASv8E,GAAiB36B,GAC5DitD,GAAY5kD,GAEb7P,OAAO+J,UAAUua,UAIf,KAHF,kBAAC,YAASwuF,IAAK0L,EAAQ7xG,UAAU,wBAAwBzJ,KAAK,OAAOG,MAAOkD,GACzEA,GAKX,CAEAg4G,GAAgBpM,UAAY,CAE1B57F,QAAS,WAETwU,OAAQ,SAERxkB,KAAM,WAAiB6rG,WAEvBviG,QAAS,WAET4kD,SAAU,cAAoB,CAC5B,YACA,WACA,WACA,YAIJ,qCC3DA,SAASkqD,IAAY,SAAElqD,IACrB,OACE,kBAAC,OAAI9nD,UAAU,qBACX8nD,EAGR,CAEAkqD,GAAYxM,UAAY,CACtB19C,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,YChBA,SAASmqD,IAAU,SAAEnqD,IACnB,OACE,kBAAC,OAAI9nD,UAAU,mBACX8nD,EAGR,CAEAmqD,GAAUzM,UAAY,CACpB19C,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,2OCLA,SAASoqD,GAAM,YACbpqD,SAAAA,EAAA,MACAvgC,EAAQ,4BACR4qF,GAAuB,EAAK,OAC5BC,GAAS,EAAK,QACdhH,EAAU,SAAQ,KAClBjqE,EAAO,eACPnhC,EAAY,gBACZqyG,GAAe,GARF,EASVC,mKAAA,CATU,EASV,CARH,WACA,QACA,uBACA,SACA,UACA,OACA,YACA,iBAGA,MAAMC,EAAe,CACnB,YACA,oBAAoBhrF,IACpB6qF,GAAU,UACVrjF,OAAO/uB,EAAUvK,MAAM,MAAM2T,OAAO4uB,SAASpiC,KAAK,KAE9C48G,EAAkB,CACtB,sBACAJ,GAAU,UACVhpG,OAAO4uB,SAASpiC,KAAK,KAEjB68G,EAAY,CAChBx3E,QAAS,QACT/M,QAAS,UACTyjF,OAAQ,UACRpqF,GAEF,OACE,oCAEI,kBACE,kBAAC,EAAA0gF,cAAA,CACCG,GAAIgK,EACJz2G,QAAS,IACT0sG,WAAW,UAEX,kBAAC,iIAAIroG,UAAWuyG,GAAkBD,GAChC,kBAAC,OAAItyG,UAAW,gCAAgCmhC,KAC9C,kBAAC,OAAInhC,UAAU,sBACF,SAAVunB,GACC,kBAAC,OAAIvnB,UAAU,2BACb,kBAAC,EAAI,CAAColG,OAAO,QAAQj+F,KAAMsrG,KAG7B3qD,MAKVxoD,SAASsuB,cAAc,SAG1BykF,GAAgB,kBACf,kBAAC,EAAApK,cAAA,CACCG,GAAIgK,EACJz2G,QAAS,IACT0sG,WAAW,QAEX,kBAAC,UACCroG,UAAWwyG,EACXxM,QAAS,KAAOmM,GAAwB/G,IACxCsH,UAAW,OACXvrG,KAAK,SACL,aAAW,WAGf7H,SAASsuB,cAAc,SAI/B,CAEAskF,GAAM1H,KAAO,GACb0H,GAAMzH,OAAS,GAEfyH,GAAMzJ,OAAS,EAAG3gD,eAChB9zD,QAAQwV,KAAK,kCAAmC,oBAAqB,IAEnE,kBAAC,OAAIxJ,UAAU,qBACX8nD,IAIRoqD,GAAMzJ,OAAOjD,UAAY,CACvB19C,SAAU,aAGZoqD,GAAMxH,MAAQ,EAAG5iD,eACf9zD,QAAQwV,KAAK,iCAAkC,oBAAqB,IAElE,kBAAC,MAAGxJ,UAAU,oBACV8nD,IAIRoqD,GAAMxH,MAAMlF,UAAY,CACtB19C,SAAU,aAGZoqD,GAAM1M,UAAY,CAChB19C,SAAU,cAAoB,CAC5B,YACA,SACA,aAEF9nD,UAAW,WAEXunB,MAAO,WAEP4qF,qBAAsB,SAEtBC,OAAQ,SAERhH,QAAS,SAETjqE,KAAM,WACNkxE,aAAc,UAGhB,YC7HA,SAASM,GAAQ93G,GACf,MAAM,SACJitD,EAAQ,MACRkzC,EAAK,YACLhhC,EAAW,eACX44C,EAAiB,wBACjBC,EAAgB,UACdh4G,GACGqK,EAAM4tG,IAAW,IAAAzM,WAAS,IAC1B9xG,EAAUw+G,IAAe,IAAA1M,UAAS,OAClC2M,EAAgBC,IAAqB,IAAA5M,UAAS,MAa/C5+E,EAAO,KACXqrF,GAAQ,GACRC,EAAY,MACZE,EAAkB,KAAK,EAGnBr3G,EAAS,KACTo3G,GACFA,IAEFvrF,GAAM,EAQR,OACE,oCACGqgC,GA/BQ,CAACorD,EAAcC,EAAoBC,IAAmB,IAAIl4E,KACjEk4E,GACFA,KAAkBl4E,GAEpB43E,GAAQ,GACRC,GAAY,IAAM,IAAMG,KAAgBh4E,KACpCi4E,GACFF,GAAkB,IAAM,IAAME,KAAsBj4E,IACtD,IAwBE,kBAAC,IACCk3E,OAAQltG,EACRkmG,QAASxvG,GAET,kBAAC,GAAM4uG,KAAN,KACC,kBAAC,UAAIxP,GACJhhC,GAEH,kBAAC,GAAMywC,OAAN,KACC,kBAAC,GACCzE,QAASpqG,EACT2rB,MAAM,WAELsrF,GAEH,kBAAC,GACC7M,QAxBM,KACdzxG,IACAkzB,GAAM,EAuBEF,MAAM,WAELqrF,KAMb,CAEAD,GAAQnN,UAAY,CAElBoN,eAAgB,WAEhBC,cAAe,WAEf7X,MAAO,WAEPhhC,YAAa,WACblS,SAAU,cAAoB,CAC5B,YACA,WACA,WACA,SACA,YAIJ,YCxFA,SAASurD,IAAa,SAAEvrD,EAAQ,UAAE9nD,EAAS,WAAEszG,IAC3C,MAAMC,GAAkB,IAAAhM,QAAO,MAEzBiM,GAAe,IAAArM,cAAY,KAC/B,MAAMvmG,EAAU2yG,EAAgBtM,QAE3BrmG,IAIDvN,OAAOogH,QACT7yG,EAAQyrB,UAAU9qB,IAAI,+BAEtBX,EAAQyrB,UAAUrqB,OAAO,+BAC3B,GACC,CAACuxG,EAAgBtM,UAEdyM,GAAwB,IAAAvM,aAAY6H,GAASwE,EAAc,KAAM,CAACA,IAYxE,OAVA,IAAAhM,YAAU,KACJ8L,GACFjgH,OAAO6U,iBAAiB,SAAUwrG,GAG7B,KACLrgH,OAAOgV,oBAAoB,SAAUqrG,EAAsB,IAE5D,CAACA,EAAuBJ,IAGzB,kBAAC,OAAItzG,UAAW,qBAAqBA,IAAammG,IAAKoN,GACnDzrD,EAGR,CAEAurD,GAAa7N,UAAY,CACvB19C,SAAU,cAAoB,CAC5B,YACA,SACA,aAGF9nD,UAAW,WAIXszG,WAAY,UAGdD,GAAa3M,aAAe,CAC1B1mG,UAAW,IAGb,YCvDA,SAAS2zG,IAAiB,SACxB7rD,EAAQ,QACR8rD,EAAO,YACPC,EAAW,SACXC,EAAQ,WACRC,EAAU,SACVC,IAEA,MAAOC,EAAYC,IAAiB,IAAA7N,WAAS,GACvC8N,GAAe,IAAA5M,QAAO,MACtB6M,EAAe,EAAiBJ,IAEtC,IAAAxM,YAAU,KACJqM,GAAmC,mBAAbC,IACxBI,GAAc,GACdJ,EAASC,GACX,GACC,CAACF,IAEJ,MAAMQ,GAAa,IAAAlN,cAAY,KAC7B,IAAKgN,EAAalN,QAAS,OAAO,EAClC,MAAM,aAAEzmF,EAAY,UAAE6rC,GAAc8nD,EAAalN,QAEjD,OACE2M,IAEGpzF,EAAepnB,KAAKuL,MAAM0nD,KAAe+nD,EAAanxG,QACnDud,GAAgB4zF,EAAanxG,OAAO,GAG3C,CAACkxG,EAAcC,EAAanxG,SAEzBqxG,GAAe,IAAAnN,cAAY,KAC3ByM,GAA+B,mBAAbE,GACpBA,EAASC,EAAa,GACtBG,GAAc,IAEdA,GAAc,EAChB,GACC,CAACN,EAASG,IAEPQ,EAAiB,GAAYR,GAC7BS,GAAgB,IAAArN,aAAY6H,IAAS,KACrCqF,KAAgBE,GAAkBR,GACpCO,GACF,GACC,KAAM,CAACA,EAAcD,KAExB,IAAA7M,YAAU,KAzDZ,MA2DI,OADA,SAAA2M,EAAalN,UAAb,EAAsB/+F,iBAAiB,SAAUssG,GAC1C,KA3DX,IAAAnsF,EA2DiB,cAAAA,EAAA8rF,EAAalN,cAAb,EAAA5+E,EAAsBhgB,oBAAoB,SAAUmsG,EAAc,CAAd,GAChE,CAACL,EAAcK,KAGlB,IAAAhN,YAAU,KACJ+M,EAAiB,GAAoB,IAAfR,IACxBI,EAAalN,QAAQ56C,UAAY,EACnC,GACC,CAAC8nD,EAAcJ,IAElB,MAAMU,EAAmB,GAAYL,GAqBrC,OApBA,IAAA5M,YAAU,KAEN4M,GAAgBK,GACbL,EAAanxG,SAAWwxG,EAAiBxxG,SAC1B,IAAfgxG,GAEHC,GAAc,EAChB,GACC,CAACD,EAAYG,EAAanxG,UAE7B,IAAAukG,YAAU,KAENwM,GAAYI,EAAanxG,OAASkxG,EAAalN,QAAQzmF,cACpD4zF,EAAanxG,QACb2wG,GAEHU,GACF,GACC,CAACH,EAAcC,EAAcJ,EAAUJ,IAGxC,kBAAC,OAAI5zG,UAAU,yBACb,kBAAC,OACCA,UAAU,iCACVmmG,IAAKgO,GAEHrsD,GAEHmsD,GACC,kBAAC,GAAM,CAACh9G,SAAS,aAIzB,CAEA08G,GAAiBnO,UAAY,CAC3B19C,SAAU,EAAA4sD,UAAUC,UAAU,CAC5B,EAAAD,UAAUE,QAAQ,EAAAF,UAAUjzG,MAC5B,EAAAizG,UAAUjzG,KACV,EAAAizG,UAAU9zG,QACV,EAAA8zG,UAAUj9G,SAEZm8G,QAAS,EAAAc,UAAUG,KACnBhB,YAAa,EAAAa,UAAUG,KACvBd,WAAY,EAAAW,UAAU76F,OACtBi6F,SAAU,EAAAY,UAAUrrE,KACpB2qE,SAAU,EAAAU,UAAUI,WAAWpgH,SAGjCi/G,GAAiBjN,aAAe,CAC9BkN,SAAS,GAGX,2OC9GA,SAASmB,IAAkB,QACzBn0G,EAAO,KACPugC,EAAO,oBACP6zE,EAAe,mBACfC,EAAc,yBACdC,EAAiB,OACjB55G,EAAS,EAAC,UACV0E,EAAS,SACT8nD,EAAQ,uBACRqtD,GACChP,GACD,MAAMiP,GAAW,IAAA7N,QAAO,MAClB8N,EAAuBlP,GAAOiP,EAC9BE,GAAoB,IAAA/N,QAAO,MAE3BgO,GAAiB,IAAAhO,QAAO,MAwG9B,OAPA,IAAAC,YAAU,KACRn0G,OAAO0jB,uBAAsB,SAASy+F,KAjDxC,WA7EF,MA8EI,MAAMtyG,EAA2B,SAAjB8xG,EAA0BA,EAhD5C,WACE,MAAMn9G,EAAS+I,EAAQqmG,QACjB5kG,EAAYgzG,EAAqBpO,QACvC,IAAK5kG,EAAW,OAAO,MAAA6yG,EAAAA,EAAqC,aAAhBD,GAA6B,SAAW,QAEpF,MAAM,KAAE7xG,EAAI,IAAEwB,GAAQ/M,EAAOmjB,wBACvBy6F,EAAW7wG,EACX8wG,EAAcriH,OAAOq4B,YAAc9mB,EAAM/M,EAAO8vB,aAChDguF,EAAYvyG,EACZk/F,EAAajvG,OAAOy4B,WAAa1oB,EAAOvL,EAAO2L,YAC/CoyG,EAAcH,EAAWpzG,EAAU68E,aACnC22B,EAAiBH,EAAcrzG,EAAU68E,aACzC42B,EAAeH,EAAYtzG,EAAUmB,YACrCuyG,EAAgBzT,EAAajgG,EAAUmB,YACvCwyG,EAAqC5yG,EAAOvL,EAAO2L,YAAc,EAAInB,EAAUmB,YAAc,EAAI,EACjGyyG,EAAuCrxG,EAAM/M,EAAO8vB,aAAe,EAAItlB,EAAU68E,aAAe,EAAI,EAE1G,MACkB,aAAhB+1B,GAEkB,SAAhBA,IACIW,GAAeC,IAChBG,EAiJX,UAA+B,kBAC7Bd,EAAiB,YAAEU,EAAW,eAAEC,EAAc,SAAEJ,EAAQ,YAAEC,IAE1D,MAA0B,QAAtBR,GAA+BU,EAAoB,MAC7B,WAAtBV,GAAkCW,GAC/BA,GAAkBH,EAAcD,EADsB,SACA,KAC/D,CApJaS,CAAsB,CAC3BhB,oBAAmBU,cAAaC,iBAAgBJ,WAAUC,gBAI1C,eAAhBT,EAiJR,UAAiC,kBAC/BC,EAAiB,aAAEY,EAAY,cAAEC,EAAa,UAAEJ,EAAS,WAAErT,IAE3D,MAA0B,SAAtB4S,GAAgCY,EAAqB,OAC/B,UAAtBZ,GAAiCa,GAC9BA,GAAiBzT,EAAaqT,EADsB,QACA,MAC7D,CAtJaQ,CAAwB,CAC7BjB,oBAAmBY,eAAcC,gBAAeJ,YAAWrT,eAuJnE,UAA+B,kBAC7B4S,EAAiB,YAAEU,EAAW,eAAEC,EAAc,aAAEC,EAAY,cAAEC,EAAa,qCAC3EE,EAAoC,mCAAED,IAEtC,OAAIJ,GAAeI,EAA2C,MAC1DH,GAAkBG,EAA2C,SAC7DD,GAAiBE,EAA6C,QAC9DH,GAAgBG,EAA6C,OAC1D,MAAAf,EAAAA,EAAqB,QAC9B,CA5JWkB,CAAsB,CAC3BlB,oBACAU,cACAC,iBACAC,eACAC,gBACAE,uCACAD,sCAEJ,CAG2DK,GACnDx+G,EAAS+I,EAAQqmG,QACjB5kG,EAAYgzG,EAAqBpO,QAEvC,IAAKpvG,IAAWwK,EAAW,OAE3B,MAAMi0G,EAAiBz+G,EAAOmjB,yBACtB5X,KAAMmzG,EAAQ3xG,IAAK4xG,GAAU,SAAAjB,EAAetO,SAAf,EAA0B,CAAE7jG,KAAM,EAAGwB,IAAK,GA0B/E,GAxBgB,QAAZ1B,GACFxO,OAAOkD,OAAOyK,EAAUpC,MAwI9B,UAAyB,UACvBoC,EAAS,eAAEi0G,EAAc,OAAEz+G,EAAM,KAAEspC,EAAI,OAAE7lC,EAAM,OAAEi7G,EAAM,MAAEC,IAEzD,MAAMv2G,EAAQ,CAAC,EACTw2G,EAAU,CACdC,KAAMJ,EAAelzG,KAAOvL,EAAO2L,YAAc,EAAInB,EAAUmB,YAAc,EAC7EmzG,aAAcL,EAAelzG,KAC7BwzG,WAAYN,EAAelzG,KAC3ByzG,SAAUP,EAAeh1F,MAAQjf,EAAUmB,aAC3C29B,GACI21E,EAASR,EAAe1xG,IAAMvC,EAAUslB,aAAersB,EAY7D,OAXA2E,EAAMmD,KAAO,GAAGqzG,EAAUF,MAC1Bt2G,EAAM2E,IAAM,GAAGkyG,EAASN,MAEX,iBAATr1E,EACFlhC,EAAM8C,MAAQ,GAAGlL,EAAO2L,gBACN,aAAT29B,EACTlhC,EAAM82G,SAAcT,EAAeh1F,MA1ON,EA0OZ,KACQ,mBAAT6f,IAChBlhC,EAAM8C,MAAQ,GAAGo+B,EAAKtpC,EAAO2L,kBAE/BvD,EAAMqrB,UAAegrF,EAAe1xG,IAAMtJ,EAAxB,KACX2E,CACT,CA/JqC+2G,CAAgB,CAC7C30G,YAAWi0G,iBAAgBz+G,SAAQspC,OAAM7lC,SAAQi7G,SAAQC,WAI7C,WAAZtzG,GACFxO,OAAOkD,OAAOyK,EAAUpC,MA2J9B,UAA4B,eAC1Bq2G,EAAc,OAAEz+G,EAAM,UAAEwK,EAAS,KAAE8+B,EAAI,OAAE7lC,EAAM,OAAEi7G,EAAM,MAAEC,IAEzD,MAAMv2G,EAAQ,CAAC,EACTw2G,EAAU,CACdC,KAAMJ,EAAelzG,KAAOvL,EAAO2L,YAAc,EAAInB,EAAUmB,YAAc,EAC7EmzG,aAAcL,EAAelzG,KAC7BwzG,WAAYN,EAAelzG,KAC3ByzG,SAAUP,EAAeh1F,MAAQjf,EAAUmB,aAC3C29B,GACI21E,EAASR,EAAe/1F,OAASjlB,EAYvC,OAXA2E,EAAMmD,KAAO,GAAGqzG,EAAUF,MAC1Bt2G,EAAM2E,IAAM,GAAGkyG,EAASN,MAEX,iBAATr1E,EACFlhC,EAAM8C,MAAQ,GAAGlL,EAAO2L,gBACN,aAAT29B,EACTlhC,EAAM82G,SAAcT,EAAeh1F,MAnQN,EAmQZ,KACQ,mBAAT6f,IAChBlhC,EAAM8C,MAAQ,GAAGo+B,EAAKtpC,EAAO2L,kBAE/BvD,EAAMqrB,UAAej4B,OAAOq4B,YAAc4qF,EAAe/1F,OAASjlB,EAAhD,KACX2E,CACT,CAlLqCg3G,CAAmB,CAChD50G,YAAWi0G,iBAAgBz+G,SAAQspC,OAAM7lC,SAAQi7G,SAAQC,WAI7C,SAAZtzG,GACFxO,OAAOkD,OAAOyK,EAAUpC,MA8K9B,UAA0B,eACxBq2G,EAAc,OAAEz+G,EAAM,UAAEwK,EAAS,KAAE8+B,EAAI,OAAE7lC,IAEzC,MAAM2E,EAAQ,CAAC,EACTw2G,EAAUH,EAAelzG,KAAOf,EAAUmB,YAAclI,EACxDw7G,EAAS,CACbJ,KAAMJ,EAAe1xG,IAAM/M,EAAO8vB,aAAe,EAAItlB,EAAUslB,aAAe,EAC9EgvF,aAAcL,EAAe1xG,IAC7BgyG,WAAYN,EAAe1xG,IAC3BiyG,SAAUP,EAAe/1F,OAASle,EAAUslB,cAC5CwZ,GAUF,OATAlhC,EAAMmD,KAAO,GAAGqzG,MAChBx2G,EAAM2E,IAAM,GAAGkyG,MAEF,iBAAT31E,EACFlhC,EAAMgD,OAAS,GAAGpL,EAAO8vB,iBACA,mBAATwZ,IAChBlhC,EAAMgD,OAAS,GAAGk+B,EAAKtpC,EAAO8vB,mBAEhC1nB,EAAM82G,SAAcT,EAAelzG,KAAO9H,EAAzB,KACV2E,CACT,CAnMqCi3G,CAAiB,CAC9CZ,iBAAgBz+G,SAAQwK,YAAW8+B,OAAM7lC,YAI7B,UAAZ4H,GACFxO,OAAOkD,OAAOyK,EAAUpC,MA+L9B,UAA2B,eACzBq2G,EAAc,OAAEz+G,EAAM,UAAEwK,EAAS,KAAE8+B,EAAI,OAAE7lC,EAAM,OAAEi7G,EAAM,MAAEC,IAEzD,MAAMv2G,EAAQ,CAAC,EACTw2G,EAAUH,EAAelzG,KAAOvL,EAAO2L,YAAclI,EACrDw7G,EAAS,CACbJ,KAAMJ,EAAe1xG,IAAM/M,EAAO8vB,aAAe,EAAItlB,EAAUslB,aAAe,EAC9EgvF,aAAcL,EAAe1xG,IAC7BgyG,WAAYN,EAAe1xG,IAC3BiyG,SAAUP,EAAe/1F,OAASle,EAAUslB,cAC5CwZ,GAUF,OATAlhC,EAAMmD,KAAgB,SAAT+9B,EAAkB,GAAGs1E,EAAUF,MAAa,GAAGE,MAC5Dx2G,EAAM2E,IAAe,SAATu8B,EAAkB,GAAG21E,EAASN,MAAY,GAAGM,MAE5C,iBAAT31E,EACFlhC,EAAMgD,OAAS,GAAGpL,EAAO8vB,iBACA,mBAATwZ,IAChBlhC,EAAMgD,OAAS,GAAGk+B,EAAKtpC,EAAO8vB,mBAEhC1nB,EAAM82G,SAAc1jH,OAAOy4B,WAAawqF,EAAelzG,KAAOvL,EAAO2L,YAAclI,EAAlE,KACV2E,CACT,CApNqCk3G,CAAkB,CAC/Cb,iBAAgBz+G,SAAQwK,YAAW8+B,OAAM7lC,SAAQi7G,SAAQC,WAI9B,OAA3BjB,EAAetO,QAEnB,GAAa,aAAT9lE,EACFo0E,EAAetO,QAAU,CAAE7jG,KAAM,EAAGwB,IAAK,OACpC,CACL,MAAMxB,EAAOiW,OAAOhX,EAAUpC,MAAMmD,KAAKtN,QAAQ,KAAM,KACjD8O,EAAMyU,OAAOhX,EAAUpC,MAAM2E,IAAI9O,QAAQ,KAAM,KACrDy/G,EAAetO,QAAU,CACvB7jG,KAAMA,EAAO,EAhHY,EAgHmBA,EAAO,EACnDwB,IAAKA,EAAM,EAjHc,EAiHiBA,EAAM,EAEpD,CACF,EAIIwyG,GACA/jH,OAAO0jB,sBAAsBy+F,EAC/B,GAAE,GACD,KAEI,KAAA6B,cACL,kBAAC,OACCr3G,UAAW,sBAAsBA,GAAa,KAC9CmmG,IAAKkP,GAEL,kBAAC,8HACCrB,SAAUsB,GACNH,GAEJ,kBAAC,OACCn1G,UAAU,sCACVmmG,IAAKmP,GAEJxtD,KAIPxoD,SAASsuB,cAAc,QAE3B,CAEAmnF,GAAkBvP,UAAY,CAE5B5kG,QAAS,eAAqBlM,QAC9BsL,UAAW,WAQXmhC,KAAM,cAAoB,CACxB,UAAgB,CAAC,OAAQ,eAAgB,aAAc,aACvD,WAMF7lC,OAAQ,WAOR05G,aAAc,UAAgB,CAAC,OAAQ,MAAO,SAAU,OAAQ,UAKhEC,YAAa,UAAgB,CAAC,OAAQ,WAAY,eAIlDC,kBAAmB,UAAgB,CAAC,MAAO,SAAU,OAAQ,UAI7DC,uBAAwB,eAAqBzgH,SAG/C,UAAe,IAAAiyG,YAAWoO,IC9L1B,SAASuC,IAAS,SAAExvD,IAClB,OACE,kBAAC,OAAI9nD,UAAU,iBACb,kBAAC,GAAO,CAACunB,MAAM,QACXugC,GAIV,CAEAwvD,GAAS9R,UAAY,CACnB19C,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,YCpBA,SAASyvD,GAAS18G,GAChB,MAAM,UACJmF,EAAS,SACT8nD,EAAQ,SACRryB,GACE56B,EAEJ,OACE,kBAAC,MAAGmF,UAAW,GAAGA,KAAay1B,EAAW,2BAA6B,MACpEqyB,EAGP,CAEAyvD,GAAS/R,UAAY,CACnB19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEF9nD,UAAW,WACXy1B,SAAU,UAGZ8hF,GAAS7Q,aAAe,CACtB1mG,UAAW,IAGb,YC5BA,SAASw3G,GAAK38G,GACZ,MAAM,UACJmF,EAAS,SACT8nD,EAAQ,MACRp4B,EAAK,WACL+nF,EAAU,MACVlwF,EAAK,MACLtnB,GACEpF,EAyBJ,OACE,kBAAC,OAAImF,UAAW,sBAAqBy3G,EAAa,8BAAgC,UAEpE,IAAV/nF,EAEI,kBAAC,SAAMzvB,MAAO,CACZy3G,UAAWD,GAAc,SAGvB/nF,GAGJ,KAEN,kBAAC,MAAG1vB,UArCc,MACpB,IAAIkpG,EAAa,CAAC,YAUlB,OARI3hF,GACF2hF,EAAW/zG,KAAK,aAAaoyB,KAG3BvnB,IACFkpG,EAAaA,EAAWn6E,OAAO/uB,EAAUvK,MAAM,OAG1CyzG,EAAWtzG,KAAK,IAAI,EA0BVqzG,GAAiBhpG,MAvBf,MACnB,MAAM03G,EAAYC,gBAAgB33G,GAKlC,OAJIw3G,IACFE,EAAUD,UAAY,eAAeD,aAGhCE,CAAS,EAiByBE,IACpC/vD,GAIT,CAEA0vD,GAAKhS,UAAY,CACf19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEF9nD,UAAW,WACX0vB,MAAO,WACP+nF,WAAY,WACZlwF,MAAO,WACPtnB,MAAO,eAAqBvL,SAG9B8iH,GAAK9Q,aAAe,CAClBn/E,MAAO,UACPtnB,MAAO,CAAC,GAGVu3G,GAAKhP,KAAO,GAEZ,YC5EA,SAASsP,IAAO,MACd9N,EAAQ,kBACRliD,EAAQ,KACR1kD,EAAI,MACJke,EAAK,MACL05E,EAAK,IACL+c,EAAG,SACHC,EAAQ,SACRC,IAEA,MAAMC,EAAkBF,EAAW,kBAAC,KAAEh4G,UAAU,sBAAuBg4G,GAAiB,KACxF,OACE,kBAAC,WAAQh4G,UAAW,gBAAei4G,EAAW,yBAA2B,KACvE,kBAAC,OAAIj4G,UAAW,2CAA2CgqG,KACxD+N,GACC,kBAAC,OAAI/3G,UAAU,oBAAoB+3G,GAGnC/c,EAEI,kBAAC,WACC,kBAAC,UAAKA,GACJkd,GAGJA,EAEN,kBAAC,OAAIl4G,UAAU,0BACZoD,GACC,kBAAC,OAAIpD,UAAU,qBAAsBoD,GAEtCke,GACC,kBAAC,OAAIthB,UAAU,sBAAuBshB,KAI1CwmC,EAGR,CAEAgwD,GAAOtS,UAAY,CACjBwE,MAAO,WACPliD,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEFkzC,MAAO,WACPgd,SAAU,WACVD,IAAK,cAAoB,CACvB,YACA,WAEF30G,KAAM,cAAoB,CACxB,YACA,WAEFke,MAAO,cAAoB,CACzB,YACA,WAEF22F,SAAU,UAGZ,YClEA,SAASE,IAAe,SAAErwD,IACxB,OACE,kBAAC,MAAG9nD,UAAU,uBACX8nD,EAGP,CAEAqwD,GAAe3S,UAAY,CACzB19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,cAIJ,YChBA,SAASswD,IAAW,SAAEtwD,IACpB,OACE,kBAAC,MAAG9nD,UAAU,kBACX8nD,EAGP,CAEAswD,GAAW5S,UAAY,CACrB19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,cAIJswD,GAAW5P,KAAO,GAElB,YCrBa6P,IAAgB,IAAAnT,gcCI7B,SAASoT,GAAU,YACjBxwD,SAAAA,EAAA,UACAywD,EAAS,UACTv4G,GAHiB,EAIdslG,mKAAA,CAJc,EAId,CAHH,WACA,YACA,cAGA,MAAM2D,GAAgB,IAAA9B,cACpB,IAAM,CACJ,kBACAnnG,EACAu4G,GAAa,cACbnvG,OAAO4uB,SAASpiC,KAAK,MACvB,CAACoK,EAAWu4G,IAGd,OACE,kBAACF,GAAcG,SAAd,MAEIC,GACCA,EAAcC,YAEV,kBAAC,WACKpT,GADL,CAECK,UAAW8S,EAAc9S,UACzB3lG,UAAWipG,MAETnhD,GAIJ,kBAAC,eACKw9C,GADL,CAECtlG,UAAWipG,MAETnhD,IAOlB,CAEAwwD,GAAU9S,UAAY,CACpB19C,SAAU,cAAoB,CAC5B,YACA,SACA,aAEFywD,UAAW,SACXv4G,UAAW,YAGb,YCxDA,SAAS24G,GAAY99G,GACnB,MAAM,SAAEitD,GAAajtD,EACrB,OACE,kBAAC,OAAImF,UAAU,qBACX8nD,EAGR,CAEA6wD,GAAYnT,UAAY,CACtB19C,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,YCdA,MAAM8wD,WAAoB,EAAAC,UACxB,aAAA5P,CAAcpuG,GACZ,MAAM,UAAEmF,GAAc5M,KAAKyH,MAC3B,IAAIquG,EAAa,CAAC,qBAUlB,OARIruG,EAAM69G,aACRxP,EAAW/zG,KAAK,eAGd6K,IACFkpG,EAAaA,EAAWn6E,OAAO/uB,EAAUvK,MAAM,OAG1CyzG,EAAWtzG,KAAK,IACzB,CAEA,MAAA67G,GACE,MAAM,SACJ3pD,GACE10D,KAAKyH,MAET,OACE,kBAACw9G,GAAcG,SAAd,MAEIC,IACC,MAAMK,EAAoC,UAAxBL,EAAclxF,MAAoB,KAAO,MACrDu+E,EAAW2S,EAAc9S,UAAY,eAAiB,aAE5D,OACE,kBAACmT,EAAA,CACC94G,UAAW5M,KAAK61G,cAAcwP,GAC9BzS,QAASyS,EAAcC,YAAcD,EAAcM,cAAW,GAE5DjxD,EAEA2wD,EAAcC,YACV,kBAAC,OAAI14G,UAAW,sBAAsBy4G,EAAcO,2BAA2B,kBAAC,EAAI,CAAC7xG,KAAM2+F,KAC3F,KAER,GAMZ,EAGF8S,GAAYpT,UAAY,CACtB19C,SAAU,cAAoB,CAC5B,YACA,SACA,aACC29C,WACHzlG,UAAW,YAGb,YCrDA,SAASi5G,GAAMp+G,GACb,MAAM,SACJitD,EAAQ,UACR9nD,EAAS,UACT2lG,EAAS,YACT+S,EAAW,MACXnxF,EAAK,iBACL2xF,EAAgB,wBAChBF,EAA0B,SACxBn+G,GACGs+G,EAAgBC,IAAqB,IAAA/S,UAASV,IAAa,IAElE,IAAA6B,YAAU,KACJ7B,IAAcwT,GAChBC,EAAkBzT,EACpB,GACC,CAACA,IAEJ,MAmBM0T,GAAe,IAAAlS,cAAY,KAC/BiS,GAAmBD,GAEfD,GACFA,GAAkBC,EACpB,GACC,CAACA,EAAgBD,IAEdr6F,GAAU,IAAAynF,UAAQ,KAAM,CAC5BoS,cACA/S,UAAWwT,EACXJ,SAAUM,EACV9xF,QACAyxF,6BACE,CAACN,EAAaS,EAAgBH,EAAyBzxF,EAAO8xF,IAElE,OACE,kBAAC,OAAIr5G,UApCe,MACpB,IAAIkpG,EAAa,CAAC,aAClB,MAAMoQ,EAAa,cAAc/xF,GAAS,YACpCgyF,EAAyB,6BAA6BP,IAa5D,OAXA9P,EAAW/zG,KAAKmkH,GAChBpQ,EAAW/zG,KAAKokH,GAEZv5G,IACFkpG,EAAaA,EAAWn6E,OAAO/uB,EAAUvK,MAAM,OAG7C0jH,GACFjQ,EAAW/zG,KAAK,wBAGX+zG,EAAWtzG,KAAK,IAAI,EAoBXqzG,IACd,kBAACoP,GAAc5R,SAAd,CAAuB/vG,MAAOmoB,GAEN,mBAAbipC,EACJA,EAAS,CACT0xD,eAAgBH,IAEhBvxD,GAKd,CAEAmxD,GAAMzT,UAAY,CAChB19C,SAAU,cAAoB,CAC5B,SACA,YACA,SACA,aAEF9nD,UAAW,WACX04G,YAAa,SACbM,wBAAyB,WACzBrT,UAAW,SACXp+E,MAAO,WACP2xF,iBAAkB,UAGpBD,GAAMzO,KAAO,GACbyO,GAAMxO,OAAS,GACfwO,GAAMxQ,OAAS,GAEf,YC3FA,SAASgR,GAAK5+G,GACZ,MAAM,SACJitD,EAAQ,UACR9nD,EAAS,MACTunB,GACE1sB,EAYJ,OACE,kBAAC,OAAImF,UAXe,MACpB,IAAIkpG,EAAa,CAAC,cAAe3hF,EAAM9xB,MAAM,KAAK8C,KAAK2iB,GAAM,aAAaA,OAM1E,OAJIlb,IACFkpG,EAAaA,EAAWn6E,OAAO/uB,IAG1BkpG,EAAWtzG,KAAK,IAAI,EAIXqzG,IACbnhD,EAGP,CAEA2xD,GAAKjU,UAAY,CACf19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAGF9nD,UAAW,WAEXunB,MAAO,YAGTkyF,GAAK/S,aAAe,CAClBn/E,MAAO,WAGT,gBC/CA,yWAOA,MAAMmyF,GAAN,cACE,WAAS,MAET,WAAS,MAET,WAAU,MAEV,WAAW,MAEX,WAA2B,IAE3B,WAAwB,IAExB,WAAsB,IAEtB,YAAe,GAMf,EAAApyG,CAAGR,EAAW0P,GACZ,IAAI63B,EAAO,KACO,mBAAdvnC,EACFunC,EAAO,GAAAj7C,KAAK,IACW,gBAAd0T,EACTunC,EAAO,GAAAj7C,KAAK,IACW,cAAd0T,IACTunC,EAAO,GAAAj7C,KAAK,KAGVi7C,GACFj7C,KAAK2f,YAAYs7B,EAAM73B,EAE3B,CAEA,GAAAhP,CAAIV,EAAW0P,GACb,IAAI63B,EAAO,KACO,mBAAdvnC,EACFunC,EAAO,GAAAj7C,KAAK,IACW,gBAAd0T,EACTunC,EAAO,GAAAj7C,KAAK,IACW,cAAd0T,IACTunC,EAAO,GAAAj7C,KAAK,KAGVi7C,GACFj7C,KAAKgV,eAAeimC,EAAM73B,EAE9B,CAQA,OAAAmjG,CAAQC,EAASC,EAAOptF,IAClB,GAAAr5B,KAAK,KAAU,GAAAA,KAAK,KAAW,GAAAA,KAAK,MACtCA,KAAK0mH,eAEP,GAAA1mH,KAAK,GAAWwmH,GAChB,GAAAxmH,KAAK,GAASymH,GACd,GAAAzmH,KAAK,GAAUq5B,GACf,GAAAr5B,KAAK,GAAS,MACdA,KAAK2mH,YACP,CAKA,UAAAA,GACE3mH,KAAK4mH,WAAW,cAChB,GAAA5mH,KAAK,IAAQ8U,iBAAiB,YAAa9U,KAAK8uB,YAAY9K,KAAKhkB,OACjEkM,SAAS4I,iBAAiB,YAAa9U,KAAK42B,YAAY5S,KAAKhkB,OAC7DkM,SAAS4I,iBAAiB,UAAW9U,KAAKugB,UAAUyD,KAAKhkB,MAC3D,CAMA,SAAAs0B,GAGE,OAFAt0B,KAAK4mH,WAAW,aACH,GAAA5mH,KAAK,IAAO4nB,wBACb/X,MACd,CAMA,WAAAif,CAAY3lB,GACVnJ,KAAK4mH,WAAW,eAChB,GAAA5mH,KAAK,GAAS,CACZ6mH,WAAW,EACXC,YAAa,GAAA9mH,KAAK,IAAO4nB,wBACzBm/F,aAAc59G,GAElB,CAMA,WAAAytB,CAAYztB,GAGV,GAFAnJ,KAAK4mH,WAAW,gBAEX,GAAA5mH,KAAK,IACR,OAIF,IADqBA,KAAKgnH,yBAAyB79G,GAGjD,YADAnJ,KAAKugB,YAIF,GAAAvgB,KAAK,MACR,GAAAA,KAAK,IAAe,GACpBA,KAAKi/B,YAAYjb,KAAKhkB,KAAtBA,IAGF,MAAMinH,EAAO,GAAAjnH,KAAK,IAAO+mH,aAAa32F,EAAIjnB,EAAEinB,EACtC82F,EAAclhH,KAAK4lE,KAAK,GAAA5rE,KAAK,IAAO8mH,YAAYj3G,OAASo3G,GAC/DjnH,KAAKisF,UAAU,GAAGi7B,MAAiB,YACrC,CAGA,eAAAC,CAAgBlsE,EAAM33C,GAChB23C,GAAQ51C,MAAMoB,QAAQw0C,IAASA,EAAK16C,QACtC06C,EAAKl2C,SAASo5G,IACM,mBAAPA,GACTA,EAAG76G,EACL,GAGN,CAGA,WAAAqc,CAAYs7B,EAAM73B,GACZ63B,GAAQ51C,MAAMoB,QAAQw0C,IAA6B,mBAAb73B,GACxC63B,EAAKl5C,KAAKqhB,EAEd,CAGA,cAAApO,CAAeimC,EAAM73B,GACnB,GAAI63B,GAAQ51C,MAAMoB,QAAQw0C,IAA6B,mBAAb73B,GAA2B63B,EAAK16C,OAAQ,CAChF,MAAMqE,EAAQq2C,EAAK94C,QAAQihB,GAEvBxe,GAAS,GACXq2C,EAAKrzC,OAAOhD,EAAO,EAEvB,CACF,CAEA,SAAA+6B,GACM,GAAA3/B,KAAK,KACPA,KAAKmnH,gBAAgB,GAAAnnH,KAAK,IAAqBA,KAAKs0B,YAExD,CAEA,WAAA2K,GACEj/B,KAAKmnH,gBAAgB,GAAAnnH,KAAK,IAAuBA,KAAKs0B,YACxD,CAGA,wBAAA0yF,CAAyB79G,GAIvB,OADyB,UAFG,IAAdA,EAAEi+G,QAAwBj+G,EAAEi+G,QAAUj+G,EAAEg8B,MAIxD,CAKA,SAAA5kB,GACE,GAAAvgB,KAAK,GAAS,MACdA,KAAK2/B,UAAU3b,KAAKhkB,KAApBA,GACA,GAAAA,KAAK,IAAe,EACtB,CAMA,SAAAisF,CAAUp8E,GACR,IAAIw3G,EAAYx3G,EAChB7P,KAAK4mH,WAAW,aAES,iBAAdS,IACTA,GAAa,MAGf,GAAArnH,KAAK,IAAO6M,MAAMgD,OAASw3G,EAE3BrnH,KAAKmnH,gBAAgB,GAAAnnH,KAAK,IAA0BA,KAAKs0B,YAC3D,CAMA,UAAAsyF,CAAWU,GACT,IAAK,GAAAtnH,KAAK,MAAW,GAAAA,KAAK,MAAY,GAAAA,KAAK,IACzC,MAAM,IAAIsV,MACR,GAAGgyG,iFAGT,CAMA,QAAAC,GAEE,OADAvnH,KAAK4mH,WAAW,YAC0B,WAAnC,GAAA5mH,KAAK,IAAS6M,MAAMkiF,UAC7B,CAKA,IAAA16D,GACEr0B,KAAK4mH,WAAW,QAChB,GAAA5mH,KAAK,IAAS6M,MAAMkiF,WAAa,QACnC,CAKA,IAAA36D,GACEp0B,KAAK4mH,WAAW,QAChB,GAAA5mH,KAAK,IAAS6M,MAAMkiF,WAAa,SACnC,CAKA,YAAA23B,GACE,GAAA1mH,KAAK,GAA2B,IAChC,GAAAA,KAAK,GAAwB,IAC7B,GAAAA,KAAK,GAAsB,IAC3B,GAAAA,KAAK,IAAQiV,oBAAoB,YAAajV,KAAK8uB,YAAY9K,KAAKhkB,OACpEkM,SAAS+I,oBAAoB,YAAajV,KAAK42B,YAAY5S,KAAKhkB,OAChEkM,SAAS+I,oBAAoB,UAAWjV,KAAKugB,UAAUyD,KAAKhkB,MAC9D,CAEA,MAAAwnH,GACExnH,KAAK0mH,cACP,ECzPF,SAASe,IAAsB,SAAE/yD,IAE/B,OAAO,oCAAGA,EACZ,CAMA,SAASgzD,IAAuB,SAAEhzD,IAEhC,OAAO,oCAAGA,EACZ,CDdE,eAEA,eAEA,eAEA,eAEA,eAEA,eAEA,eAEA,eCPF+yD,GAAsBrV,UAAY,CAChC19C,SAAU,eAAqB,CAAC,IAQlCgzD,GAAuBtV,UAAY,CACjC19C,SAAU,eAAqB,CAAC,IAGlC,MAAMizD,GAAe,IAAI1S,IAAeA,EAAW9vG,KAAKwrG,IAAQA,GAAM,IAAIr/C,SAAQt7C,OAAO4uB,SAASpiC,KAAK,KAEvG,SAASolH,IAAY,SACnBlzD,EAAQ,OACR7kD,EAAM,eACNg4G,EAAiB,KAAI,YACrB5oF,EAAc,KAAI,UAClBU,EAAY,KAAI,MAChB9yB,EAAQ,KAAI,eACZi7G,EAAiB,KAAI,aACrBC,EAAY,iBACZC,EAAgB,gBAChBC,EAAe,iBACfC,GAECnV,GACD,MAAMoV,GAAW,IAAAhU,QAAO,MAClBiU,GAAY,IAAAjU,QAAO,MACnBkU,GAAa,IAAAlU,QAAO,MAEpBmU,GDuNwB,IAAAnU,QAAO,IAAImS,IACZzS,SCtN7B,IAAAO,YAAU,KACR,GAAK+T,EAAStU,SAAYuU,EAAUvU,SAAYwU,EAAWxU,SAItDyU,EAWL,OAPAA,EAAa/B,QAAQ8B,EAAWxU,QAASsU,EAAStU,QAASuU,EAAUvU,SACrEyU,EAAap0G,GAAG,iBAAkB2zG,GAClCS,EAAap0G,GAAG,cAAe+qB,GAC/BqpF,EAAap0G,GAAG,YAAayrB,GAC7B2oF,EAAar8B,UAAUp8E,EAAQ,cAGxB,KACLy4G,EAAa5B,cAAc,CAC5B,GACA,KAEH,IAAA6B,qBACExV,GACA,KAEE,MAAM/uF,EAAQiyB,GAASA,EAAKjyB,KAAKskG,GAEjC,MAAO,CACLh0F,UAAWtQ,EAAKskG,EAAah0F,WAC7B23D,UAAWjoE,EAAKskG,EAAar8B,WAC7B53D,KAAMrQ,EAAKskG,EAAaj0F,MACxBD,KAAMpQ,EAAKskG,EAAal0F,MACxBmzF,SAAUvjG,EAAKskG,EAAaf,UAC5BC,OAAQxjG,EAAKskG,EAAad,QAC1BtzG,GAAI8P,EAAKskG,EAAap0G,IACtBE,IAAK4P,EAAKskG,EAAal0G,KACxB,GAEH,IAGF,IAAIo0G,EAAa,KACbC,EAAc,KAClB,MAAMC,EAAW,GAEjB,aAAe3jH,QAAQ2vD,GAAWi0D,IAC5BA,GAAS,mBAAqBA,KAC5BA,EAAM50G,OAAS0zG,GACjBe,EAAaG,EACJA,EAAM50G,OAAS2zG,GACxBe,EAAcE,EAEdD,EAAS3mH,KAAK4mH,GAElB,IAGF,MAAMn7G,EACJ,kBAAC,OAAIZ,UAAW+6G,GAAa,wBAAyBO,GAAoB,OAAQnV,IAAKsV,EAAYx7G,SACjG,kBAAC,OAAID,UAAU,gCACf,kBAAC,OAAImmG,IAAKqV,EAAWx7G,UAAW+6G,GAAa,gCAAiCM,IAE5E,kBAAC,OAAIr7G,UAAU,6CAA6C47G,GAC5D,kBAAC,OAAI57G,UAAU,uCAAsC,KACrD,kBAAC,OAAIA,UAAU,8CAA8C67G,IAG/D,kBAAC,OAAI1V,IAAKoV,EAAUv7G,UAAW+6G,GAAa,+BAAgCK,GAAmBn7G,MAAOk7G,GACnGW,IAKP,GAAIZ,EACF,OAAO,KAAA7D,cAAaz2G,EAAStB,SAASsuB,cAAcstF,GAExD,CAEAF,GAAYxV,UAAY,CACtB19C,SAAU,eAAqB,CAAC,GAChC7kD,OAAQ,WACRg4G,eAAgB,SAChB5oF,YAAa,SACbU,UAAW,SACXmoF,eAAgB,WAChBj7G,MAAO,eAAqB,CAAC,GAC7Bk7G,aAAc,eAAqB,CAAC,GACpCC,iBAAkB,WAClBC,gBAAiB,WACjBC,iBAAkB,YAEpB,MAAMU,IAAkB,IAAArV,YAAWqU,IACnCgB,GAAgBC,WAAapB,GAC7BmB,GAAgBE,YAAcpB,GAE9B,YC/IaqB,IAAc,IAAAjX,iBCA3B,IAAe,IAAAA,2WCIf,SAASkX,GAAWvhH,GAClB,MAAM,OACJwhH,EAAM,QACNC,EAAO,UACPC,EAAS,QACTC,EAAO,SACP10D,EAAQ,aACR20D,EAAY,QACZC,EAAO,OACPC,EAAM,UACNC,EAAS,KACTp3G,EAAI,SACJq3G,EAAQ,eACRC,EAAc,KACdC,GACEliH,GAEJ,IAAA2sG,YAAU,KACR,MAAMwV,EAAc,MAAKN,GAEpBE,EAAUp3G,IACb62G,EAAOW,EAAax3G,EACtB,GACC,CAACk3G,EAASl3G,IAEb,MAAMy3G,EAAc,GAAYP,IAChC,IAAAlV,YAAU,KACR,GACEoV,EAAUp3G,KAAS,MAAAk3G,OAAA,EAAAA,EAAS1hB,UACxB,MAAAiiB,OAAA,EAAAA,EAAajiB,UAAU,MAAA0hB,OAAA,EAAAA,EAAS1hB,SAAS,MAAAiiB,OAAA,EAAAA,EAAaxnF,YAAainF,EAAQjnF,UAC/E,CACA,MAAMunF,EAAc,MAAKN,GACzBH,EAAUS,EAAax3G,EACzB,IACC,CAACk3G,EAASl3G,EAAMy3G,EAAaF,KAEhC,IAAAvV,YAAU,KACRgV,EAAQh3G,GACD,IAAM82G,EAAQ92G,KACpB,IAEH,MAAM03G,GAAe,IAAA5W,UAAQ,MACtB5xG,OAAOwD,KAAK6kH,GAAMppH,SAInBmpH,IAA4C,IAA1BC,EAAKL,EAAQzmH,IAAIuxB,OAIlCq1F,EAGEJ,GAAgBA,EAAalnH,QAAQmnH,EAAQzmH,KAAO,EAFlD2mH,EAAUp3G,KAGlB,CAACs3G,EAAgBD,EAAUJ,EAAcC,EAASK,IAE/Cl+F,GAAU,IAAAynF,UAAQ,KAAM,CAAG9gG,OAAMm3G,YAAW,CAACn3G,EAAMm3G,IAEzD,OAAKO,EAEH,kBAAC,OAAI9kH,IAAKskH,EAAQzmH,GAAI+J,UAAU,mBAAmBC,MAAO,CAAEiD,QAASu5G,GAAgBA,EAAalnH,QAAQmnH,EAAQzmH,KAAO,EAAI,QAAU,SACrI,kBAACknH,GAAW1W,SAAX,CAAoB/vG,MAAOmoB,GACzBipC,IAJmB,IAQ5B,CAEAs0D,GAAW5W,UAAY,CACrB6W,OAAQ,SACRE,UAAW,SACXD,QAAS,SACTE,QAAS,SACT10D,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEFtiD,KAAM,eAAqB/M,OAC3BqkH,eAAgB,SAChBD,SAAU,SACVJ,aAAc,eAAqBhkH,OACnCmkH,UAAW,SACXD,OAAQ,WACRD,QAAS,eAAqBhoH,QAC9BqoH,KAAM,eAAqBroH,SAG7B,YCvFA,SAAS0oH,GAAIviH,GACX,MAAM,GAAE5E,GAAO4E,EACTwiH,GAAc,IAAAxX,YAAWsW,IACzBmB,GAAa,IAAAzX,YAAWsX,KACxB,UACJP,EAAS,aACTH,EAAY,OACZJ,EAAM,UACNE,EAAS,QACTD,EAAO,QACPE,EAAO,SACPK,EAAQ,eACRC,EAAc,KACdC,GACEM,GACE,SACJv1D,GACEjtD,GACG2K,EAAM+3G,IAAW,IAAAlX,UAAS,IAgBjC,OAdA,IAAAmB,YAAU,KACR,IAAIgW,EAGAA,EAFAF,GAAc93G,GACZ83G,EAAWX,SAAWU,EAAYpnH,GACzBqnH,EAAW93G,KAAKupB,OAAO,CAAC94B,IAK1B,CAACA,GAEdsnH,EAAQC,EAAS,GAChB,CAACF,IAEC93G,EAKH,kBAAC,IACC62G,SACAE,YACAD,UACAE,UACAI,YACAF,QAAS7hH,EACT2K,OACAm3G,OAAQU,EAAYpnH,GACpBwmH,eACAI,WACAC,iBACAC,QAECj1D,GAlBI,IAqBX,CAEAs1D,GAAI5X,UAAY,CACd19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEF7xD,GAAI,YAGNmnH,GAAI1W,aAAe,CAAC,EAEpB,sWCpEA,SAAS+W,GAAK5iH,GACZ,MAAM,SACJitD,EAAQ,UACR9nD,EAAS,GACT/J,EAAE,YACFynH,EAAW,KACXv2G,EAAI,eACJ21G,GACEjiH,GACGkiH,EAAMY,IAAW,IAAAtX,UAAS,CAAC,IAC3BoW,EAAcmB,IAAmB,IAAAvX,UAAS,KAC1CwW,EAAUgB,IAAe,IAAAxX,WAAS,IAClCyX,EAAaC,IAAkB,IAAA1X,UAAS,OAE/C,IAAAmB,YAAU,KACRoW,EAAgBE,EAAY,GAC3B,CAACA,IAEJ,MAiDME,EAAyB,CAACx4G,EAAMk3G,KACpC,MAAMc,EAAWh4G,EAAK7P,MAAM,GAC5B,IAAIsoH,GAAe,EAEfvB,EAAQwB,cACVV,EAASroH,KAAKT,OAAOwD,KAAKwkH,EAAQK,MAAM,IACxCkB,GAAe,GAGjBN,GAASQ,IACP,IAAIC,EAAW,MAAKD,GAIpB,OAFAC,EA1Cc,EAACC,EAAW74G,KAC5B,IAAI84G,EAAgB,MAAKD,GACzB,MAAMb,EAAWh4G,EAAK7P,MAAM,GAE5B,KAAO6nH,EAAS7pH,OAAS,GACvB2qH,EAAgBA,EAAcd,EAASj8F,SAGzC,MAAMnpB,EAAMolH,EAASj8F,QAOrB,YANqC,IAAjC+8F,EAAclmH,GAAKutG,UACrB2Y,EAAclmH,GAAKutG,WAAY,EAE/B2Y,EAAclmH,GAAKutG,WAAa2Y,EAAclmH,GAAKutG,UAG9C2Y,CAAa,EA2BPC,CAAUH,EAAU54G,GAExB44G,CAAQ,IAEjBR,EAAgBJ,GAChBK,EAAYI,GAERP,GACFA,EAAYhB,EACd,EAGI8B,EAAkBC,IACtB,MAAMvV,EAAa,GAMnB,OAJIuT,GAAgBA,EAAalnH,QAAQkpH,IAAU,GACjDvV,EAAW/zG,KAAK,UAGX+zG,EAAWtzG,KAAK,IAAI,EAGvB8oH,EAAU,CAACC,EAAan5G,IACvBm5G,EAKH,kBAAC,UAEGjqH,OAAOwD,KAAKymH,GAAapmH,KAAI,CAACkmH,EAAOzmH,KACnC,MAAMwlH,EAAWh4G,EAAOA,EAAKupB,OAAO,CAAC4vF,EAAYF,GAAOxoH,KAAO,CAAC0oH,EAAYF,GAAOxoH,IAC7E6vG,EAAW6Y,EAAYF,GAAO9Y,UAAY,aAAe,eAE/D,OAAgC,IAA5BgZ,EAAYF,GAAOj3F,KACd,KAIP,kBAAC,MAAGxnB,UAAWw+G,EAAeG,EAAYF,GAAOxoH,IAAKmC,IAAKumH,EAAYF,GAAOxoH,IAC5E,kBAAC,UACCkR,KAAK,SACL6+F,QAASgY,EAAuB5mG,KAAK,KAAMomG,EAAUmB,EAAYF,IACjE/L,UAAWsL,EAAuB5mG,KAAK,KAAMomG,EAAUmB,EAAYF,IACnEr0F,SAAUpyB,GAER2mH,EAAYF,GAAOzjB,MAEnB2jB,EAAYF,GAAOP,YACf,kBAAC,EAAI,CAACl+G,UAAU,oBAAoBmH,KAAM2+F,IAC1C,MAIN6Y,EAAYF,GAAOP,YAEf,kBAAC,GACCvY,UAAWgZ,EAAYF,GAAO9Y,WAE7B+Y,EAAQC,EAAYF,GAAO1B,KAAMS,IAGpCkB,EAAQC,EAAYF,GAAO1B,KAAMS,GAEzC,KAxCD,KAgDLnB,EAAS,CAACK,EAASl3G,KACvBm4G,GAASQ,GAtIY,EAACE,EAAW74G,EAAMk3G,KACvC,IAAI4B,EAAgB,MAAKD,GACzB,MAAMrB,EAAc,MAAKN,GACnBc,EAAWh4G,EAAK7P,MAAM,GAE5B,KAAO6nH,EAAS7pH,OAAS,GACvB2qH,EAAgBA,EAAcd,EAASj8F,SAElC+8F,IACHA,EAAgB,CAAC,GAOrB,OAHAtB,EAAYQ,SAAWA,EACvBc,EAAcd,EAASj8F,SAAWy7F,EAE3BsB,CAAa,EAsHEM,CAAe,MAAKT,GAAY34G,EAAMk3G,KAExDA,EAAQjnF,UACVsoF,EAAev4G,EACjB,EAGI+2G,EAAY,CAACG,EAASl3G,KAC1Bm4G,GAASQ,IACP,MAAMC,EAAW,MAAKD,GAEtB,OADAC,EAAS1B,EAAQzmH,IAAMymH,EAChB0B,CAAQ,IAGb1B,EAAQjnF,UACVuoF,EAAuBx4G,EAAMk3G,EAC/B,EAGIJ,EAAW92G,IACfm4G,GAASQ,IACP,MAAMC,EAAW,MAAKD,GAGtB,OAFAC,EAAS54G,GAAMgiB,MAAO,EAEf42F,CAAQ,GACf,EAGE5B,EAAWh3G,IACfm4G,GAASQ,IACP,MAAMC,EAAW,MAAKD,GAItB,OAFAC,EAAS54G,GAAMgiB,MAAO,EAEf42F,CAAQ,GACf,EAGExB,EAAap3G,IACjB,IAAI44G,EAAW,MAAKrB,GACpB,MAAMS,EAAWh4G,EAAK7P,MAAM,GAC5B,KAAO6nH,EAAS7pH,OAAS,GACvByqH,EAAWA,EAASZ,EAASj8F,SAG/B,MAAMnpB,EAAMolH,EAASj8F,QAErB,OAAOyW,QAAQ,MAAAomF,OAAA,EAAAA,EAAWhmH,GAAK,EAG3BymB,GAAU,IAAAynF,UAAQ,KAAM,CAC5BrwG,KACAomH,SACAC,UACAC,YACAC,UACAI,YACAH,eACAI,WACAC,iBACAC,UACE,CACF9mH,EACAomH,EACAC,EACAC,EACAC,EACAI,EACAH,EACAI,EACAC,EACAC,IAGF,OACE,kBAAC,OAAI/8G,UA5Ke,MACpB,IAAIkpG,EAAa,CAAC,YAQlB,OANAA,EAAW/zG,KAAK,aAAagS,GAAQ,aAEjCnH,IACFkpG,EAAaA,EAAWn6E,OAAO/uB,EAAUvK,MAAM,OAG1CyzG,EAAWtzG,KAAK,IAAI,EAmKXqzG,IACbyV,EAAQ3B,GACT,kBAACZ,GAAY1V,SAAZ,CAAqB/vG,MAAOmoB,GAEJ,mBAAbipC,EACJA,EAAS,CACTw0D,UACAE,YAEA10D,GAKd,CAEA21D,GAAKjY,UAAY,CACfxlG,UAAW,WACX8nD,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEFg1D,eAAgB,SAChB7mH,GAAI,WACJynH,YAAa,SACbv2G,KAAM,YAGRs2G,GAAKL,IAAM,GAEX,sWCrQA,SAASx2F,GAAQ,YACf6qF,OAAAA,EAAA,UACAzxG,EAAS,SACT8nD,EAAQ,SACR7wD,EAAW,aACXgJ,EAAK,KACL4+G,GAAO,EAAK,SACZC,EAAQ,SACRC,GAAW,EAAK,uBAChBC,EAAyB,IATV,EAUZnkH,mKAAA,CAVY,EAUZ,CATH,SACA,YACA,WACA,WACA,QACA,OACA,WACA,WACA,2BAGA,MAAOokH,EAAUC,IAAe,IAAA7Y,WAAS,GACnCoV,GAAa,IAAAlU,QAAO,MACpB4X,GAAa,IAAA5X,QAAO,MACpB6X,EAAeN,EACjB,CACA9Y,QAAS,IAAMkZ,GAAY,IAE3B,CACAG,aAAc,IAAMH,GAAY,GAChCI,aAAc,IAAMJ,GAAY,GAChC1kG,QAAS,IAAM0kG,GAAY,GAC3B5kG,OAAQ,IAAM4kG,GAAY,IAGxBK,GAAsB,IAAApY,cAAa5qG,IACnC,IAAIyiH,EAAwBG,EAAWlY,SAASpzE,MAAMzkB,IAnC9D,IAAAiZ,EAmCoE,cAAAA,EAAA,MAAAjZ,OAAA,EAAAA,EAAGL,eAAH,EAAAsZ,EAAA,KAAAjZ,EAAc7S,EAAE1E,OAAO,KAGvFqnH,GAAY,EAAM,GACjB,CAACF,KAEJ,IAAAxX,YAAU,KACRloG,SAAS4I,iBAAiB,QAASq3G,GAAqB,GACjD,IAAMjgH,SAAS+I,oBAAoB,QAASk3G,GAAqB,KACvE,CAACA,KAEJ,IAAA/X,YAAU,KACR0X,EAAYH,EAAS,GACpB,CAACA,IAEJ,MAAM19G,EAAU,CAAC,cAAerB,GAAWoJ,OAAO4uB,SAASpiC,KAAK,KAChE,OACE,kBAAC,aACCoK,UAAU,uBACVC,MAAO,IAAEiD,QAAS,gBAAmBjD,GACrCkmG,IAAKsV,GACD2D,GACAvkH,GAEHitD,EACAm3D,GACC,kBAAC,IACCr+G,QAAS66G,EACTzG,aAAc/9G,EACdi+G,kBAAkB,MAClB55G,OAAQ,IAER,kBAAC,OAAI0E,UAAWqB,EAAS8kG,IAAKgZ,GAC3BN,KACU,IAATA,EACE,kBAAC,EAAI,CAACzZ,OAAO,QAAQj+F,KAAK,SAE1B03G,GAGJ,kBAAC,OAAI7+G,UAAU,wBACZyxG,GAEFqN,GACC,kBAAC,GACC1Z,OAAO,QACPj+F,KAAK,IACL6+F,QAAUzpG,IACRA,EAAEiK,kBACF04G,GAAY,EAAM,MASpC,CAEAt4F,GAAQ4+E,UAAY,CAClB19C,SAAU,SAAe29C,WAEzBxlG,MAAO,eAAqBvL,QAI5BuC,SAAU,WAEVw6G,OAAQ,cAAoB,CAC1B,SACA,aAGFzxG,UAAW,WAIX6+G,KAAM,cAAoB,CACxB,SACA,WAKFC,SAAU,SAEVC,SAAU,SAKVC,uBAAwB,eAAqBvmH,QAG/C,YCzHA,SAAS+mH,IAAa,KAAElnG,EAAI,MAAEk6C,EAAK,SAAEv7D,IACnC,OACEqhB,EAAK3kB,OAAS6+D,EAEV,kBAAC,GAAO,CAACi/C,OAAQn5F,EAAMrhB,YACpBqhB,EAAK4oB,UAAU,EAAGsxB,GAAO,OAI5Bl6C,CAER,CAEAknG,GAAaha,UAAY,CAEvBltF,KAAM,WAENk6C,MAAO,WAEPv7D,SAAU,YAGZ,YCoBA,SAASwoH,GAAW5kH,GAClB,MAAM,MACJnE,EAAQ,EAAC,eACTgpH,EAAc,SACdv/E,GACEtlC,GAEG8kH,EAAcC,IAAmB,IAAAvZ,UAAS3vG,GAE3CmpH,GAAa,IAAAvZ,UACjB,IA1BJ,SAAqBwZ,EAAWH,GAC9B,IAAI5qH,EACJ,MAAMgrH,EAAW,GAEjB,IAAKhrH,EAAI,EAAGA,GAAK+qH,EAAW/qH,GAAK,EApCXirH,EAqCDjrH,EArCYkrH,EAqCTN,IArCiBD,EAqCHI,GAnCb,IAOvBG,EARiB,GASdD,EATc,GAejBC,EAASP,EAfQ,GAgBdM,EAAYN,EAhBE,GAsBjBM,GAAaC,EAAS,GACnBD,GAAaC,EAAS,GAKpB,CAAC,EAAG,EAAGP,EAAiB,EAAGA,GAAgBhoH,SAASsoH,MASnDjrH,EAAIgrH,EAASG,IAAI,IACnBH,EAAS5qH,KAAK,OAAOJ,KAEvBgrH,EAAS5qH,KAAKJ,EAAI,IAzCxB,IAAwBirH,EAAWC,EAAQP,EA6CzC,OAAOK,CACT,CAYUI,CAAYT,EAAgBC,IAClC,CAACA,EAAcD,IAGjB,SAASU,EAASH,GAChBL,EAAgBK,GACZ9/E,GAAUA,EAAS8/E,EACzB,CAEA,OACEP,EAEI,kBAAC,MAAG1/G,UAAU,kBACX2/G,EAAe,GAAKD,EAAiB,GACpC,kBAAC,UACC,kBAAC,UAAO1Z,QAAS,IAAMoa,EAAST,EAAe,GAAIx4G,KAAK,UAAS,aAInE04G,EAAWtnH,KAAK0nH,GACd,kBAAC,MAAG7nH,IAAK6nH,EAAQjgH,UAAW2/G,IAAiBM,EAAS,EAAI,SAAW,IAEjEnpH,OAAOmpH,GAAQlpH,WAAW,OACtB,kBAAC,YAAK,OACN,kBAAC,UAAOivG,QAAS,IAAMoa,EAASH,EAAS,GAAI94G,KAAK,UAAW84G,MAKxEN,EAAeD,GAAkBA,EAAiB,GACjD,kBAAC,UACC,kBAAC,UAAO1Z,QAAS,IAAMoa,EAAST,EAAe,GAAIx4G,KAAK,UAAS,UAKvE,IAER,CAEAs4G,GAAWja,UAAY,CACrB9uG,MAAO,WACPgpH,eAAgB,WAChBv/E,SAAU,UAGZ,YCzGakgF,IAAe,IAAAnb,iBCIrB,SAASob,IAAW,OAAE1xG,IAC3B,MAAM,SAAE2xG,GAAa3xG,GACd4xG,EAAWC,IAAgB,IAAApa,WAAS,MAAAka,OAAA,EAAAA,EAAUtzG,UAAW,QAC1D,MAAEsnB,EAAK,YAAEmsF,IAAgB,IAAA7a,YAAWwa,IAC1C,OACE,kBAAC,MACCjoH,IAAKwW,EAAO3Y,GACZ+vG,QAASua,EAAW,KAClBG,EAAY,OAAQ,CAAE9xG,SAAQ4xG,cAC9BC,EAA2B,QAAdD,EAAsB,OAAS,MAAM,EAChD,KACJxgH,UAAWu0B,EAAMjJ,UAAY,eAAiB,IAE7C1c,EAAOrY,KACPqY,EAAO2xG,UACN,kBAAC,QAAKvgH,UAAU,eACd,kBAAC,EAAI,CAAColG,OAAO,QAAQj+F,KAAK,eAKpC,CAEAm5G,GAAW9a,UAAY,CACrB52F,OAAQ,eAAqBla,wbCzBxB,SAAS+zG,IAAO,gBAAEkY,IACvB,MAAM,MAAEpsF,EAAK,YAAEmsF,IAAgB,IAAA7a,YAAWwa,KACpC,QAAEO,EAAO,WAAEC,GAAetsF,EAS1BusF,EAAqB,KAhB7B,MAiBI,MAAMjI,EAAYgI,EAAW15G,KAC7B,OACE,kBAAC,MACCnH,UAAWu0B,EAAMjJ,UAAY,eAAiB,KAE7C,MAAAu1F,OAAA,EAAAA,EAAYE,gBACX,kBAAC,OAAI/gH,UAAW,MAAA6gH,OAAA,EAAAA,EAAY5gH,OAC1B,kBAAC44G,EAAA,SACKgI,EAAWxoH,QADhB,CAEC3B,MAAOiqH,EACPxgF,SAAWwmD,IA3BzB,IAAAt+D,EAAA,EA4BgB,MAAM24F,EAAkD,WAArC,OAAA34F,EAAA,MAAAs+D,OAAA,EAAAA,EAAG9uF,aAAH,EAAAwwB,EAAWuwE,QAAQp7F,gBAA+D,cAAlC,eAAAmpF,OAAA,EAAAA,EAAG9uF,aAAH,IAAWsP,KAAK3J,eACnFkjH,EAAY,0BAA2BM,EAAar6B,EAAE9uF,OAAOskG,QAAUnkE,QAAQ2uD,GAAG,IAGnF,SAAAk6B,EAAWxoH,aAAX,IAAmB3B,QAIxBmqH,EAAWtqH,MAAQ,SAEvB,EAIJ,OACE,kBAAC,aACC,kBAAC,UAC2B,UAAzB,MAAAsqH,OAAA,EAAAA,EAAY5pH,WAAuB6pH,IApCZF,EAAQroH,KAAKqW,GACzC,kBAAC0xG,GAAA,CACCloH,IAAKwW,EAAO3Y,GACZ2Y,aAmC4B,WAAzB,MAAAiyG,OAAA,EAAAA,EAAY5pH,WAAwB6pH,KAI7C,CAEArY,GAAOjD,UAAY,CACjBmb,gBAAiB,maC9CnB,MAAMM,WAAiB,EAAApI,UACrB,aAAA5P,GACE,MAAM,OACJjvF,EAAM,SAAEjS,EAAQ,SAAE4X,EAAQ,MAAE4H,EAAQ,oBAAI+zF,EAAmB,IACzDloH,KAAKyH,MAEHquG,EAAa,CAACoS,GAgBpB,OAdApS,EAAW/zG,KAAK,gBAEZ6kB,GACFkvF,EAAW/zG,KAAK,wBAGdoyB,EAAMm9B,QACRwkD,EAAW/zG,QAAQoyB,EAAM9xB,MAAM,KAAK8C,KAAK2iB,GAAM,uBAAuBA,QAGpEnT,GAAY4X,IACdupF,EAAW/zG,KAAK,6BAGX+zG,EAAWtzG,KAAK,IACzB,CAEA,YAAAsrH,GACE,MAAM,MAAEjtH,GAAUb,KAAKyH,MACvB,OAAK5G,EAGH,kBAAC,KAAE+L,UAAU,mCACV/L,GAJc,IAOrB,CAEA,WAAAktH,GACE,MAAM,KAAEC,GAAShuH,KAAKyH,MACtB,OAAKumH,EAGH,kBAAC,KAAEphH,UAAU,gCACVohH,GAJa,IAOpB,CAEA,MAAA3P,GACE,MAEI,EAAAr+G,KAAKyH,OADPk7C,MAAAA,EAAA,MAAOr/C,EAAK,MAAEg5B,GACZ,EADsB41E,mKAAA,CACtB,EADsB,CAAxB,QAAO,QAAO,UAEhB,OACE,kBAAC,OACCtlG,UAAW5M,KAAK61G,iBAEhB,kBAAC,OAAIjpG,UAAU,6BACb,kBAAC,aACC,kBAAC,kBACCm8F,QAASpmD,EAAQA,EAAMr/C,MAAQA,GAC3Bq/C,GACAuvD,WAHL,CAICn+F,KAAK,gBAENuoB,GAEFt8B,KAAK+tH,cACL/tH,KAAK8tH,sBAId,EAGFD,GAASzb,UAAY,CAEnBz9F,SAAU,SAEV4X,SAAU,SAEV3F,OAAQ,SAERuN,MAAO,WAEPtzB,MAAO,cAAoB,CACzB,WACA,WAGFmtH,KAAM,WACNrrE,MAAO,eAAqBrhD,QAE5Bg7B,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAGFn5B,KAAM,WAENG,MAAO,cAAoB,CACzB,WACA,WAGFylG,QAAS,cAAoB,CAC3B,WACA,WAGFh8D,SAAU,SAEVm7E,iBAAkB,YAGpB,sWCzHO,SAAS+F,IAAK,IAAE7+E,EAAG,IAAE7zB,IAH5B,cAIE,IAAKA,EAAItW,OAAOmqC,EAAIvsC,IAClB,OAAO,kBAAC,WAGV,GAAiB,WAAbusC,EAAIr7B,KACN,OACE,kBAAC,SACCnH,WAAW,SAAA2O,EAAItW,OAAOmqC,EAAIvsC,IAAIqrH,cAAnB,IAA4BthH,YAAa,MAChD,SAAA2O,EAAItW,OAAOmqC,EAAIvsC,UAAf,IAAoBsrH,QAEvB,SAAA5yG,EAAItW,OAAOmqC,EAAIvsC,UAAf,IAAoBS,OAI3B,MAAMmiH,EAAYr2E,EAAIr7B,KACtB,OACE,kBAAC,SACCnH,WAAW,SAAA2O,EAAItW,OAAOmqC,EAAIvsC,IAAIqrH,cAAnB,IAA4BthH,YAAa,MAChD,SAAA2O,EAAItW,OAAOmqC,EAAIvsC,UAAf,IAAoBsrH,QAExB,kBAAC1I,EAAA,MACKlqG,EAAItW,OAAOmqC,EAAIvsC,IAAI4E,OAEtB8T,EAAItW,OAAOmqC,EAAIvsC,IAAI6xD,SAAWn5C,EAAItW,OAAOmqC,EAAIvsC,IAAI6xD,SAAW,MAIrE,CCzBO,SAAS05D,IAAI,IAAE7yG,EAAG,MAAE3W,IAN3B,QAOE,MAAM,MAAEu8B,EAAK,YAAEmsF,IAAgB,IAAA7a,YAAWwa,KACpC,QAAEO,EAAO,WAAEC,GAAetsF,EAE1BktF,GAAqB,IAAAta,cAAY,IAErC,kBAAC,UACC,kBAAC,IACCzwG,MAAOiY,EAAI8mB,SACX0K,SAAWwmD,GAAM+5B,EAAY,eAAgB,CAAE1oH,QAAOy9B,SAAUkxD,EAAE9uF,OAAOskG,cAG5E,CAACxtF,EAAI8mB,SAAUz9B,IAElB,OACE,kBAAC,MACCguG,QAAS,SAAAr3F,EAAI4yG,aAAJ,IAAYvb,QACrBhmG,UAAW,SAAA2O,EAAI2yG,cAAJ,IAAathH,WAEvB6gH,GAAsC,SAAxBA,EAAW5pH,UAAuBwqH,IAChDb,EAAQroH,KAAKiqC,GACZ,kBAAC6+E,GAAI,CAACjpH,IAAKoqC,EAAIvsC,GAAIusC,MAAU7zB,MAAU3W,YAExC6oH,GAAsC,UAAxBA,EAAW5pH,UAAwBwqH,IAGxD,CC5BO,SAASjX,KACd,MAAM,MAAEj2E,IAAU,IAAAsxE,YAAWwa,KACvB,KAAE33E,GAASnU,EAEjB,OACE,kBAAC,aAGGmU,EAAKnwC,KAAI,CAACoW,EAAK5Z,IAAM,kBAACysH,GAAG,CAACppH,IAAKrD,EAAG4Z,MAAU3W,MAAOjD,MAI3D,CFiBAssH,GAAK7b,UAAY,CACfhjE,IAAK,eAAqB9tC,QAC1Bia,IAAK,eAAqBja,QAC1BsD,MAAO,YCFTwpH,GAAIhc,UAAY,CACd72F,IAAK,eAAqBja,QAC1BsD,MAAO,2bEnBT,SAAS0pH,IAAM,MACbhrH,EAAK,SAAEypC,EAAQ,cAAEwhF,EAAa,QAAEC,EAAO,kBAAEC,IAlB3C,MAoBE,MAAOttF,EAAOlR,IAAY,IAAAgjF,UAAS,OAC5Byb,EAAaC,IAAkB,IAAA1b,UAAS,OACzC2b,GAAe,IAAAza,QAAO,MACtB0a,GAAW,IAAA9a,cAAY,CAAC3kE,EAAKg+E,KACjCn9F,GAAU4a,GAAe,SACpBA,GADoB,CAEvBzV,KAAM,CACJ05F,MAAO1B,EACPh+E,UAED,GACF,IAEG2/E,GAAgB,IAAAhb,cAAa1xE,IACjCpS,GAAU4a,GAAe,SACpBA,GADoB,CAEvByK,KAAMzK,EAAUyK,KAAKnwC,KAAKoW,GAAS,SAAKA,GAAL,CAAU8mB,kBAC5C,GACF,IAEG2sF,GAAY,IAAAjb,cAAY,EAAGnvG,QAAOy9B,eACtCpS,GAAU4a,GAAe,SACpBA,GADoB,CAEvByK,KAAM,IACDzK,EAAUyK,KAAK/yC,MAAM,EAAGqC,GAC3B,SAAKimC,EAAUyK,KAAK1wC,IAApB,CAA4By9B,gBACzBwI,EAAUyK,KAAK/yC,MAAMqC,EAAQ,OAEjC,GACF,IAEGqqH,GAAgB,IAAAlb,cAAa1+F,IACjC4a,GAAU4a,GAAe,SACpBA,GADoB,CAEvBqkF,WAAY,SACPrkF,EAAUqkF,YADH,CAEVrb,QAASx+F,EAAO,OAEjB,GACF,IAEG85G,EAAM,CACVtmE,SAAU,IAAM1nB,EAChBlR,SAAW+a,GAAa/a,EAAS+a,IAG7BsiF,GAAc,IAAAvZ,cAAY,CAACv9F,EAASnB,KACxCs5G,EAAen4G,GACC,SAAZA,GACFq4G,EAASx5G,EAAKmG,OAAO3Y,GAAIwS,EAAK+3G,WAGhB,4BAAZ52G,GACFu4G,EAAc15G,GAGA,iBAAZmB,GACFw4G,EAAU35G,GAGI,sBAAZmB,GACFy4G,EAAc55G,EAChB,GACC,CAACw5G,EAAUE,EAAeC,EAAWC,IAElCxjG,GAAU,IAAAynF,UAAQ,KAAM,CAAG/xE,QAAOmsF,iBAAgB,CAACnsF,EAAOmsF,IAUhE,IARA,IAAAlZ,YAAU,IAAMnkF,EAAS3sB,IAAQ,CAACA,KAClC,IAAA8wG,YAAU,KACJrnE,GACFA,EAAS2hF,EAAavtF,EAAOguF,GAE/BR,EAAe,MAAM,GACpB,CAACxtF,KAECA,EACH,OAAO,kBAAC,GAAM,CAACt9B,SAAS,aAG1B,GAAIs9B,EAAMmU,MAAQ,EAChB,OAAO,kBAAC,GAAO,CAACnhB,MAAM,QAAQo6F,GAAiB,qBAGjD,MAAMa,EAAW,IACf,kBAAC,SAAMxiH,UAAU,YAAYmmG,IAAK6b,GAChC,kBAACvZ,GAAM,CAACkY,gBAAiBpsF,EAAMmU,KAAK+5E,OAAM,EAAGhtF,cAAeA,MAC5D,kBAAC+0E,GAAI,OAIT,OACE,kBAAC6V,GAAa5Z,SAAb,CAAsB/vG,MAAOmoB,GAC5B,kBAAC,OAAI7e,UAAW,eAAc,SAAAu0B,EAAM+sF,cAAN,IAAethH,YAAa,KAAMC,MAAO,CAAEgD,OAAQsxB,EAAMjJ,UAAYiJ,EAAMjJ,UAAY,OAAQr0B,SAAU,aAEnI2qH,GAAW,kBAAC,GAAM,CAAC3qH,SAAS,WAAWi0G,gBAAc,IAGrD2W,GAAqBttF,EAAM+tF,WAEvB,kBAAC,IACCtO,SAAUgO,EACVpO,QAASr/E,EAAM+tF,WAAWI,WAAanuF,EAAM+tF,WAAWrb,QACxD6M,SAAW6O,GAAQjC,EAAY,oBAAqBiC,GACpD5O,WAAYx/E,EAAM+tF,WAAWrb,QAAU,EACvC4M,aAAa,GAEX2O,KAGJA,KAGPjuF,EAAM+tF,aAAeT,GACpB,kBAAC,OAAI7hH,UAAU,wBACb,kBAAC,IACCtJ,MAAO69B,EAAM+tF,WAAWrb,QAAU,EAClC2b,cAAeruF,EAAM+tF,WAAWO,QAAU,EAC1CnD,eAAgBnrF,EAAM+tF,WAAWI,WAAa,EAC9CviF,SAAWwiF,GAAQjC,EAAY,oBAAqBiC,MAMhE,CAEAjB,GAAMlc,UAAY,CAEhB9uG,MAAO,UAAgB,CAErBkqH,QAAS,YAAkB,UAAgB,CAEzC3qH,GAAI,WAAiBwvG,WAErBlvG,KAAM,WAEN4Q,KAAM,cAAoB,CAExB,WAEA,YAEA,WAEFo5G,SAAU,cAAoB,CAE5B,SAEA,UAAgB,CAEdtzG,QAAS,kBAKfy7B,KAAM,YAAkB,UAAgB,CAAC,IAEzCm4E,WAAY,UAAgB,CAAC,GAE7ByB,WAAY,UAAgB,CAAC,GAE7Bh3F,UAAW,WAEXg2F,QAAS,UAAgB,CAEvBthH,UAAW,eAEZylG,WAEHtlE,SAAU,SAEVwhF,cAAe,WAEfC,QAAS,SAETC,kBAAmB,UAGrBH,GAAMhb,aAAe,CACnBkb,SAAS,EACTC,mBAAmB,EACnBF,cAAe,oBACfxhF,SAAU,MAGZ,2OC1MA,SAAS2iF,GAAO,YACdh7D,SAAAA,EAAA,MACAkiD,EAAK,UACLhqG,EAAS,OACT1E,EAAM,KACN6lC,GALc,EAMXmkE,mKAAA,CANW,EAMX,CALH,WACA,QACA,YACA,SACA,SAGA,MAAMjkG,EAAU,CACd,UACArB,EACAgqG,GAAS,kBAAkBA,OACxB7oE,EAAK1rC,MAAM,KAAK8C,KAAKwqH,GAAU,YAAYA,UAC1CznH,EAASA,EAAO7F,MAAM,KAAO,IAAI8C,KAAKyqH,GAAY,mBAAmBA,OACzE55G,OAAO4uB,SAASpiC,KAAK,KAEvB,OACE,kBAAC,iIAAIoK,UAAWqB,GAAaikG,GACzBx9C,EAGR,CAEAg7D,GAAOtd,UAAY,CAKjBwE,MAAO,WAEPhqG,UAAW,WAIXmhC,KAAM,WAAiBskE,WAIvBnqG,OAAQ,WACRwsD,SAAU,cAAoB,CAC5B,YACA,WACA,WACA,YAIJ,0SC9CA,SAAS,GAAI,YACX9nD,UAAAA,EAAA,UACAijH,EAAS,SACTn7D,GAHW,EAIRw9C,mKAAA,CAJQ,EAIR,CAHH,YACA,YACA,aAGA,MAAMjkG,EAAU,CACd,UACArB,EACAijH,GAAa,aACbA,GAAa,uBACb75G,OAAO4uB,SAASpiC,KAAK,KAEvB,OACE,kBAAC,sIAAQ0vG,WAAR,CAActlG,UAAWqB,MACtBymD,QAGR,CAEA,GAAI09C,UAAY,CACd19C,SAAU,cAAoB,CAC5B,YACA,WAGF9nD,UAAW,WAEXijH,UAAW,UAGb,YCjCaC,IAAkB,IAAAhe,iBCI/B,SAASie,GAAatoH,GACpB,MAAM,mBACJuoH,EAAkB,SAClBt7D,EAAQ,SACRu7D,EAAQ,KACRzgH,EAAI,OACJ/K,EAAM,MACNmjG,EAAK,QACLgL,GACEnrG,EACEyoH,GAAoB,IAAAnc,cAAY,CAACoc,EAAiBC,KACtDD,EAAgBE,aAAaJ,EAAUG,GAEnCxd,GAASA,EAAQqd,EAAS,GAC7B,IAEH,OACE,kBAACH,GAAgB1K,SAAhB,MAEI+K,GACC,kBAAC,MACCvd,QAAS,IAAMsd,EAAkBC,EAAiB1oH,GAClDk3G,QAAS,QAGPqR,GACI,IAAAzZ,cAAayZ,EAAoB,CAAC,GAElC,kBAAC,KAAExgH,OAAY/K,UAEXwrH,GACGE,EAAgBG,eAAiBL,GACjCE,EAAgBI,cACf,kBAAC,EAAI,CAACx8G,KAAK,UACX,KAEN,kBAAC,YACE6zF,GAASlzC,MAUhC,CAEAq7D,GAAa3d,UAAY,CACvB19C,SAAU,cAAoB,CAC5B,YACA,SACA,aAEFs7D,mBAAoB,cAAoB,CACtC,YAAkB,UAClB,SACA,cAEFC,SAAU,WACVzgH,KAAM,WACN/K,OAAQ,WACRmuG,QAAS,SACThL,MAAO,YAGT,2OChEA,MAAM4oB,WAAiB,EAAA/K,UACrB,wBAAOgL,CAAkBlkH,EAAImkH,GAC3B,MAAMh2F,EAAcz6B,OAAOy4B,WAI3B,OAHensB,EAAGqb,wBACO5X,KAAO0gH,GAEZh2F,CACtB,CAEA,yBAAOi2F,CAAmBpkH,EAAIqkH,GAC5B,MAAMj2F,EAAe16B,OAAOq4B,YACtBpwB,EAASqE,EAAGqb,wBACZipG,EAAWtkH,EAAG6gB,aAGpB,OAFmBllB,EAAOsJ,IAAMq/G,EAAWD,GAEtBj2F,CACvB,CAEA,WAAA5nB,CAAYtL,GACVqpH,MAAMrpH,GAEN,MAAM,aACJ6oH,EAAY,KACZx+G,GACE9R,KAAKyH,MAETzH,KAAKmhC,MAAQ,CACX69E,OAAQltG,EACRw+G,aAAcA,GAAgB,MAGhCtwH,KAAK+wH,aAAc,IAAArS,aACnB1+G,KAAKgxH,iBAAkB,IAAAtS,aACvB1+G,KAAKixH,mBAAoB,IAAAvS,aACzB1+G,KAAKqwH,aAAerwH,KAAKqwH,aAAarsG,KAAKhkB,MAC3CA,KAAKkxH,eAAiBlxH,KAAKkxH,eAAeltG,KAAKhkB,MAC/CA,KAAKmxH,mBAAqBnxH,KAAKmxH,mBAAmBntG,KAAKhkB,KACzD,CAEA,iBAAAoxH,GACEllH,SAAS4I,iBAAiB,YAAa9U,KAAKmxH,oBAExCnxH,KAAKgxH,gBAAgBnd,SACvB7zG,KAAKqxH,WAET,CAEA,kBAAAC,CAAmBC,GACjB,MAAM,KACJz/G,GACE9R,KAAKyH,OACH,OACJu3G,GACEh/G,KAAKmhC,MAELnhC,KAAKgxH,gBAAgBnd,SACvB7zG,KAAKqxH,YAIJE,EAAUz/G,OACC,IAATA,GACCktG,GAEJh/G,KAAKkxH,iBAILK,EAAUz/G,OACE,IAATA,GACAktG,GAEHh/G,KAAKwxH,eAET,CAEA,oBAAAC,GACEvlH,SAAS+I,oBAAoB,YAAajV,KAAKmxH,mBACjD,CAEA,kBAAAA,CAAmB7sG,GAEftkB,KAAKgxH,gBAAgBnd,UAAY7zG,KAAKgxH,gBAAgBnd,QAAQl4F,SAAS2I,EAAM7f,SAC1EzE,KAAK+wH,YAAYld,UAAY7zG,KAAK+wH,YAAYld,QAAQl4F,SAAS2I,EAAM7f,SAExEzE,KAAKwxH,eAET,CAEA,YAAAnB,CAAaqB,EAAQtB,GACnB,MAAM,cAAEuB,EAAa,SAAEC,GAAa5xH,KAAKyH,MACnCymF,EAAU,CACdoiC,aAAcoB,EACdG,kBAAmBzB,GAGjBuB,IACFzjC,EAAQ8wB,QAAS,GAGnBh/G,KAAKiwB,SAASi+D,GAEV0jC,GAAgC,mBAAbA,GACrBA,EAASF,EAEb,CAEA,SAAAL,GACE,MAAM,QACJvhH,EAAO,SACPjM,EAAQ,OACRqE,GACElI,KAAKyH,MAEHqqH,EAAa9xH,KAAKgxH,gBAAgBnd,QAExC,GAAI3rG,EAGF,OAFA4pH,EAAWjlH,MAAM2E,IAAM,GAAGtJ,EAAOsJ,WACjCsgH,EAAWjlH,MAAMmD,KAAO,GAAG9H,EAAO8H,QAIpC,MAAMipD,EAAYjzD,KAAKC,IACrBiG,SAASkB,gBAAgB6rD,UACzB/sD,SAASgE,KAAK+oD,UACdh5D,OAAOogH,SAEH9zG,EAAKvM,KAAK+wH,YAAYld,QACtBgd,EAAWtkH,EAAG6gB,aACdwjG,EAAiBkB,EAAaA,EAAW1kG,aAAe,EACxDsjG,EAAgBoB,EAAaA,EAAWxhH,YAAc,EACtDyhH,EAAiBxlH,EAAGqb,yBACpB,KAAE5X,EAAI,IAAEwB,GAAQugH,EACtB,IAAIC,EAAY,EACZC,EAAajiH,EAIfgiH,EADExB,GAASG,mBAAmBpkH,EAAIqkH,GACtBp/G,EAAMynD,EAAY43D,EAElBr/G,EAAMynD,EAAY23D,EAAiB,EAG5CJ,GAASC,kBAAkBlkH,EAAImkH,KAClCuB,EAAajiH,EAAOzD,EAAG+D,YAAcogH,GAGtB,aAAb7sH,IACFiuH,EAAWjlH,MAAM2E,IAAM,GAAGwgH,MACV,UAAZliH,IACFgiH,EAAWjlH,MAAMmD,KAAO,GAAGiiH,QAGf,UAAZniH,IACFgiH,EAAWjlH,MAAM+C,SAAW,GAAG5P,KAAKixH,kBAAkBpd,QAAQvjG,gBAElE,CAEA,oBAAA4hH,GACE,MAAM,SACJC,EAAQ,aACRC,EAAY,UACZxlH,EAAS,SACTylH,EAAQ,iBACRnK,EAAmB,IACjBloH,KAAKyH,MACT,IAAIquG,EAAa,CAACoS,EAAkB,gBAapC,OAXApS,EAAW/zG,KAAK,SAASswH,GAAY,aAEjCzlH,IACFkpG,EAAaA,EAAWn6E,OAAO/uB,EAAUvK,MAAM,OAG7C8vH,IACFrc,EAAW/zG,KAAK,oBAChB+zG,EAAW/zG,KAAKqwH,EAAe,qBAAqBA,IAAiB,yBAGhEtc,EAAWtzG,KAAK,IACzB,CAEA,aAAAqzG,GACE,MAAM,OACJmJ,GACEh/G,KAAKmhC,OACH,iBACJmxF,EAAgB,QAChBxiH,EAAO,eACPyiH,EAAc,SACd1uH,EAAQ,UACRq0B,GACEl4B,KAAKyH,MACT,IAAIquG,EAAa,CAAC,oBAAqB,gBA0BvC,OAxBI59E,GACF49E,EAAW/zG,KAAK,4BAGdi9G,GACFlJ,EAAW/zG,KAAK,UAGdwwH,IACFzc,EAAaA,EAAWn6E,OAAO42F,EAAelwH,MAAM,OAGlDyN,GACFgmG,EAAW/zG,KAAK,uBAGduwH,GACFxc,EAAW/zG,KAAK,wBAGD,aAAb8B,GACFiyG,EAAW/zG,KAAK,0BAGX+zG,EAAWtzG,KAAK,IACzB,CAEA,WAAAgwH,GACE,MAAM,SAAEC,EAAQ,qBAAEC,GAAyB1yH,KAAKyH,OAC1C,kBAAEoqH,GAAsB7xH,KAAKmhC,MAEnC,OAAKuxF,IAAwB,MAAAb,OAAA,EAAAA,EAAmBjqB,OACvCiqB,EAAkBjqB,MAGpB6qB,CACT,CAEA,aAAAjB,GACE,MAAM,QAAExZ,GAAYh4G,KAAKyH,MAEzBzH,KAAKiwB,SAAS,CACZ+uF,QAAQ,IACP,KACGhH,GACFA,GACF,GAEJ,CAEA,cAAAkZ,GACE,MAAM,OACJlS,GACEh/G,KAAKmhC,MACL69E,EACFh/G,KAAKwxH,gBAKPxxH,KAAKiwB,SAAS,CACZ+uF,QAAQ,GAEZ,CAEA,MAAAX,GACE,MAAM,SACJsU,EAAQ,aACRC,EAAY,QACZC,EAAO,eACPC,EAAc,iBACdR,EAAgB,SAChBD,EAAQ,SACR39D,EAAQ,MACRp4B,EAAK,iBACLy2F,EAAgB,kBAChBC,EAAiB,cACjBzC,EAAa,SACb57G,GAAW,EAAK,UAChBujB,GACEl4B,KAAKyH,OACH,aACJ6oH,EAAY,OACZtR,GACEh/G,KAAKmhC,MACH8xF,EAAqBX,EAAmB,MAAQ,KACtD,OACE,kBAAC,OACC1lH,UAAW5M,KAAKkyH,uBAChBnf,IAAK/yG,KAAK+wH,aAGRz0F,EAEI,kBAAC,SAAM1vB,UAAU,sBACd0vB,GAGH,KAGJ02F,EAEI,kBAAC,GACCpmH,UAAW,yBAA0BoyG,EAAU,iCAAmC,OAAO4T,IACzFz+F,MAAOk+F,GAAY,UACnBzf,QAAS5yG,KAAKkxH,eACdxe,SAAUqgB,EAAmB,eAAiB,KAC9Crd,aAAa,QACb3nE,KAAM8kF,GAAW,KACjB9+G,KAAK,SACLY,WACAo+F,IAAK/yG,KAAKixH,mBAER6B,GAAkB9yH,KAAKwyH,eAG3B,KAGJxT,EACI,kBACA,kBAAC8Q,GAAgBzc,SAAhB,CAEC/vG,MAAO,CACL+sH,aAAcrwH,KAAKqwH,aACnBC,eACAC,kBAIAvR,EAEI,kBAACiU,2HAAA,EACCrmH,UAAW5M,KAAK61G,gBAChB9C,IAAK/yG,KAAKgxH,iBAEL94F,GAAa,CACdrrB,MAAO,CACLqrB,eAMiB,mBAAbw8B,EACJA,EAAS,CACT88D,cAAexxH,KAAKwxH,cAAcxtG,KAAKhkB,QAEvC00D,GAIR,MAGRxoD,SAASsuB,cAAcm4F,GAAY,SAEnC,KAIZ,EAGFnC,GAASpe,UAAY,CACnBugB,SAAU,WACVj+D,SAAU,cAAoB,CAC5B,YACA,SACA,WACA,WAEFi9D,cAAe,SACfiB,aAAc,WACdC,QAAS,WACTT,aAAc,WACdC,SAAU,WACVI,SAAU,cAAoB,CAC5B,SACA,YACA,aAEFK,eAAgB,cAAoB,CAClC,SACA,YACA,aAEFX,SAAU,SACVvlH,UAAW,WACXkD,QAAS,WACT6E,SAAU,SACV29G,iBAAkB,SAClBh2F,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEFi2F,eAAgB,WAChBva,QAAS,SACT4Z,SAAU,SACV9/G,KAAM,SACN5J,OAAQ,eAAqB5G,QAC7BuC,SAAU,WACVysH,aAAc,WACdyC,iBAAkB,SAClBL,qBAAsB,SACtBM,kBAAmB,SACnBzC,cAAe,SACfr4F,UAAW,WACXgwF,iBAAkB,YAGpBsI,GAASld,aAAe,CACtBqe,eAAe,EACfoB,kBAAkB,EAClBC,mBAAmB,EACnBzC,eAAe,EACfz+G,MAAM,GAGR0+G,GAASpb,KAAO,GAEhB,2OCvaA,SAAS8d,IAAgB,MACvBtrB,EAAK,MACLzzE,EAAQ,uBACRg/F,EAAY,OACZC,EAAM,eACNC,EAAc,MACd/vH,GACCyvG,GACD,OACGogB,EAaC,kBAAC,EAAW,CAACpgB,OACX,kBAAC,6HACC5+E,SACIk/F,GAAkB,CAAEzgB,QAAS,IAAMygB,EAAe/vH,KAErDskG,GAEH,kBAAC,GACCh7F,UAAU,oBACV8lG,SAAS,YACT+C,WAAW,QACXC,aAAa,QACbvhF,QACAy+E,QAASwgB,EACTzd,UAAQ,KA1BZ,kBAAC,GACC/oG,UAAU,oBACV8lG,SAAS,YACT+C,WAAW,QACXC,aAAa,QACbvhF,QACA4+E,MACAH,QAASwgB,GAERxrB,EAsBT,CAEAsrB,GAAgB9gB,UAAY,CAC1BxK,MAAO,WACPzzE,MAAO,WACPg/F,aAAc,SACdC,OAAQ,SACRrC,YAAa,UAAgB,CAC3Bld,QAAS,eAAqB1D,WAC7BkC,WACHghB,eAAgB,SAChB/vH,MAAO,cAAoB,CACzB,WACA,cAIJ,UAAe,IAAAiwG,YAAW2f,8VC1D1B,SAASI,IAAoB,SAC3B5+D,EAAQ,QACRlnD,EAAO,SACPm2G,GACC5Q,GACD,OACE,kBAAC,IACCvlG,UACAulG,MACAnmG,UAAU,iBACV/I,SAAS,SACT40F,UAAU,OACVvwF,OAAQ,EACRg9F,OAAK,GAEL,kBAAC,IACCr4F,MAAO,MACF82G,GAAY,CAAEA,aAEnBxvF,MAAM,WAEJugC,GAIV,CAEA4+D,GAAoBlhB,UAAY,CAC9B5kG,QAAS,UAAgB,CACvBqmG,QAAS,eAAqB1D,WAEhCz7C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEFivD,SAAU,YAGZ,UAAe,IAAApQ,YAAW+f,IC5Cb,IAAkB,IAAAxhB,2WCG/B,SAAS,IAAa,SACpBp9C,EAAQ,MACRpxD,IAEA,MAAM,SAAEypC,EAAUzpC,MAAOiwH,IDJlB,IAAA9gB,YAAW,ICKlB,OACE,kBAAC,GAAK2C,KAAL,MACK9xG,IAAUiwH,GAAiB,CAAElxF,UAAU,IAE3C,kBAAC,UACK0K,GAAY,CAAE6lE,QAAS,IAAM7lE,EAASzpC,KAExCoxD,GAIV,CAEA,GAAa09C,UAAY,CACvB19C,SAAU,SAEVpxD,MAAO,SAGT,YCpBA,SAASkwH,IAAU,SACjB9+D,EAAQ,MACRkzC,EAAK,MACLzzE,EAAK,aACLg/F,EAAY,SACZpmF,EAAQ,MACRzpC,EAAK,wBACLmwH,EAAuB,SACvB9P,EAAQ,eACR0P,IAEA,MAAM,OACJ5/F,EAAM,OACN2/F,EAAM,YACNrC,EAAW,gBACXC,GCpBgB,GAClBmC,mBAEA,MAAO1/F,EAAQigG,IAAa,IAAAzgB,WAAS,GAC/B8d,GAAc,IAAA5c,QAAO,MACrB6c,GAAkB,IAAA7c,QAAO,MAIzBwf,GAAqB,IAAA5f,cAAa5qG,IACtC,MAAMyqH,EAAkBT,EAEpBpC,EAAYld,QAAQr5E,cAAc,sBADlCu2F,EAAYld,SAGdpgF,GACImgG,EAAej4G,SAASxS,EAAE1E,SAC1BusH,EAAgBnd,QAAQl4F,SAASxS,EAAE1E,SAEvCivH,GAAU,EACZ,GACC,CAACjgG,IASJ,OAPA,IAAA2gF,YAAU,KACRloG,SAAS4I,iBAAiB,YAAa6+G,GAChC,KACLznH,SAAS+I,oBAAoB,YAAa0+G,EAAmB,IAE9D,CAACA,IAEG,CACLlgG,SACA2/F,OAxBa,IAAMM,GAAWjgG,GAyB9Bs9F,cACAC,kBACD,EDbG,CAAY,CACdmC,iBAGI/f,GAAe,IAAAF,UAAQ,KAAM,CACjCnmE,WACAzpC,WACE,CAACypC,EAAUzpC,IAEf,OACE,kBAAC,GAAgB+vG,SAAhB,CACC/vG,MAAO8vG,GAEP,kBAAC,IACCxL,MACE6rB,EACInwH,EACAskG,EAENyrB,iBACAl/F,QACAg/F,eACAC,SACArgB,IAAKge,EACLztH,UAEDmwB,GACC,kBAAC,IACCjmB,QAASujH,EACThe,IAAKie,EACLrN,YAEEjvD,GAKZ,CAEA8+D,GAAUphB,UAAY,CAEpBxK,MAAO,WAEPzzE,MAAO,WACPugC,SAAU,SAGVy+D,aAAc,SAEdpmF,SAAU,SAEVzpC,MAAO,cAAoB,CACzB,WACA,aAGFmwH,wBAAyB,SAEzB9P,SAAU,WAGV0P,eAAgB,UAGlBG,GAAUpe,KAAO,GAEjB,qCE3FA,MAAM,GAA+BtzG,QAAQ,giBCmB7C,SAAS+xH,GAAWpsH,GAClB,MAAM,SACJkN,EAAQ,SACR4X,EAAQ,kBACRunG,EAAiB,GACjBjxH,EAAE,MACFhC,EAAK,MACLy7B,EAAK,WACL+nF,EAAU,KACV2J,EAAI,OACJ9mG,EAAM,SACN6lB,EAAQ,MACR5Y,EAAK,MACL7wB,EAAK,WACLoS,EAAU,iBACVwyG,GACEzgH,EACEwG,EAAU,CACd,iBACAi6G,KACI/zF,EAAQA,EAAM9xB,MAAM,KAAK8C,KAAK2iB,GAAM,mBAAmBA,MAAO,GAClEu8F,GAAc,kCACdxjH,GAAS,aACTmV,OAAO4uB,SAASpiC,KAAK,KAEjBuxH,EAAkB,SACnBr+G,GACAo+G,GAAqB,CAAEz4D,WAAW,IAGjC24D,GAAqB,IAAAjgB,cAAY,IACrClzG,GAAmB,SAAVA,GAA8B,UAAVA,EAEzB,kBAAC,KAAE+L,UAAU,mCACV/L,GAGH,MACH,CAACA,IAEEozH,GAAiB,IAAAlgB,cAAY,IAC7BsQ,EAAmB,CAAEC,UAAWD,GAC7B,CAAC,GACP,CAACA,IAEE6P,GAAmB,IAAAngB,cAAY,IAC/BsQ,EAAmB,CAAEC,UAAW,eAAeD,aAC5C,CAAC,GACP,CAACA,IAEE8P,GAAiB,IAAApgB,cAAaprF,IAC9BokB,GAAUA,EAASpkB,EAAS,GAC/B,CAACokB,IAEEqnF,GAAe,IAAArgB,cAAY,KAC3B7sF,GAAQA,EAAO5jB,EAAM,GACxB,CAAC4jB,EAAQ5jB,IAEZ,OACE,kBAAC,OAAIsJ,UAAWqB,GAEZquB,EACI,kBAAC,SAAM+3F,QAASxxH,EAAIgK,MAAOonH,KAAoB33F,GAC/C,KAEN,kBAAC,OAAI1vB,UAAU,4BAA4BC,MAAOqnH,KAChD,kBAAC,YACCtnH,UAAU,oBACNnF,WAFL,CAGCslC,SAAUonF,EACVjtG,OAAQktG,EACRjgG,MAAM,SACNmgG,YAAa,CAAEC,iBAAiB,GAChChoG,SAAUA,GAAY5X,EACtByE,OAASo7G,IAEPA,EAAevlH,UAAUpC,MAAMgmE,OAAS,OAExC3mE,SAAS4I,iBAAiB,WAAW,IACnC0/G,EAAe3hD,UACf,EAEJn9D,WAAYq+G,OAGZ/F,EACI,kBAAC,KAAEphH,UAAU,gCAAiCohH,GAC9C,KAEJgG,WAIV,CA/FA,YAAWp7G,aAAa,uBAAwB,IAiGhDi7G,GAAWzhB,UAAY,CACrBz9F,SAAU,SACV4X,SAAU,SACVunG,kBAAmB,SACnBjxH,GAAI,WACJhC,MAAO,cAAoB,CACzB,WACA,WAEFy7B,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEF+nF,WAAY,WACZviF,KAAM,WACN3+B,KAAM,WACN6qH,KAAM,WACN9mG,OAAQ,SACR6lB,SAAU,SACV5Y,MAAO,WACP7wB,MAAO,WACPoS,WAAY,eAAqBpU,QACjC4mH,iBAAkB,YAGpB,qaCvIA,MAAMuM,GAAyB,CAACC,EAAU5kB,EAAMxsG,IACzCA,IACKoxH,GAAY5kB,EAAQ,GAAK,MAMrC,MAAM6kB,WAAiB,EAAAlP,UACrB,gBAAOmP,GACL,MAAO,CACL3tG,QAAS,EACT+3F,QAAQ,EAEZ,CAEA,eAAO6V,GACL,MAAO,CACL7V,QAAQ,EAEZ,CAEA,mBAAO8V,CAAaC,EAAWC,GAC7B,OAAOD,EAAU5xH,KAAKiH,cAAcjI,QAAQ6yH,IAAe,CAC7D,CAEA,WAAAjiH,CAAYtL,GACVqpH,MAAMrpH,GACN,MAAM,SACJitH,EAAQ,KACR5kB,EAAI,MACJxsG,GACEmE,EAEJzH,KAAKmhC,MAAQ,CACXla,QAAS,EACT+3F,QAAQ,EACRrvG,MAAO,GACPiH,aAActT,EACd2xH,oBAAqBR,GAAuBC,EAAU5kB,EAAMxsG,GAC5D4xH,WAAY,GACZplB,QAGF9vG,KAAKm1H,aAAc,IAAAzW,aACnB1+G,KAAKo1H,eAAgB,IAAA1W,aACrB1+G,KAAKq1H,UAAW,IAAA3W,aAChB1+G,KAAKs1H,SAAU,IAAA5W,aAEf1+G,KAAKu1H,WAAav1H,KAAKu1H,WAAWvxG,KAAKhkB,MACvCA,KAAK2+G,QAAU3+G,KAAK2+G,QAAQ36F,KAAKhkB,MACjC20H,GAASE,SAAWF,GAASE,SAAS7wG,KAAKhkB,MAC3CA,KAAKmxH,mBAAqBnxH,KAAKmxH,mBAAmBntG,KAAKhkB,MACvDA,KAAKw1H,sBAAwBx1H,KAAKw1H,sBAAsBxxG,KAAKhkB,MAC7DA,KAAKy1H,4BAA8Bz1H,KAAKy1H,4BAA4BzxG,KAAKhkB,MACzEA,KAAK01H,oBAAsB11H,KAAK01H,oBAAoB1xG,KAAKhkB,MACzDA,KAAK21H,sBAAwB31H,KAAK21H,sBAAsB3xG,KAAKhkB,MAC7DA,KAAK41H,mBAAqB51H,KAAK41H,mBAAmB5xG,KAAKhkB,KACzD,CAEA,iBAAAoxH,GACE,MAAM,KAAEthB,GAAS9vG,KAAKyH,MAElBqoG,GACF9vG,KAAK61H,gBAGP71H,KAAK2mH,YACP,CAEA,oBAAA8K,GACEzxH,KAAK81H,cACP,CAEA,+BAAOC,CAAyBC,EAAWnrF,GACzC,OACE0tB,KAAK09D,UAAUD,EAAU1yH,SAAWi1D,KAAK09D,UAAUprF,EAAUj0B,eAC1Do/G,EAAUlmB,OAASjlE,EAAUilE,KAEzB,CACLl5F,aAAco/G,EAAU1yH,MACxB2xH,oBAAqBR,GACnBuB,EAAUtB,SACVsB,EAAUlmB,KACVkmB,EAAU1yH,OAEZwsG,KAAMkmB,EAAUlmB,MAIb,IACT,CAEA,qBAAA0lB,CAAsBrsH,GACpB,MAAM,KAAE2mG,GAAS9vG,KAAKyH,MACtB,IAAiD,IAA7C,CAAC,YAAa,WAAWtF,QAAQgH,EAAEnE,KACrC,OAGF,MAAM,OAAEiiB,GAAWjnB,KAAKmhC,MAClB+0F,EAAiBl2H,KAAKm2H,eAC5B,IAAIC,EAoBJ,GAlBAjtH,EAAEmK,iBAEY,cAAVnK,EAAEnE,OACY,IAAZiiB,GAAiBA,IAAWivG,EAAe31H,OAAS,EACtD61H,EAAa,EACJnvG,EAASivG,EAAe31H,OAAS,IAC1C61H,EAAanvG,EAAS,IAIZ,YAAV9d,EAAEnE,MAEFoxH,EADEnvG,EAAS,EACEA,EAAS,EAETivG,EAAe31H,OAAS,GAIrCP,KAAKo1H,cAAcvhB,SAAWuiB,EAAa,EAAG,CAChD,MAAMn9D,EAA+B,IAAlBm9D,EAAa,GAEhCp2H,KAAKo1H,cAAcvhB,QAAQ56C,UAAc62C,EAAyB72C,EAAjB,GAAKA,CACxD,MAAWj5D,KAAKo1H,cAAcvhB,UAC5B7zG,KAAKo1H,cAAcvhB,QAAQ56C,UAAY,GAGzCj5D,KAAKiwB,UAAUomG,IAAmB,eAC7BA,WAD6B,CAEhCrX,QAAQ,EACR/3F,OAAQmvG,UACR,GACJ,CAEA,mBAAAV,CAAoB9wH,GAGlB,GADqB5E,KAAKyH,MAAMxC,OAAOL,GACtB+P,SAAU,OAE3B,MAAM,SAAE+/G,EAAQ,KAAE5kB,GAAS9vG,KAAKyH,MAE1B6uH,EAAcxmB,EAAQ,qBAAuB,uBAC7CymB,EAAY,SAAKv2H,KAAKmhC,OAAUnhC,KAAKs2H,GAAY1xH,IAEvD5E,KAAKiwB,UAAUomG,IACR3B,GAAa5kB,IAChBymB,EAAUvX,QAAS,GAGd,SAAKqX,GAAkBE,KAElC,CAEA,qBAAAZ,CAAsB/wH,GACpB,MAAM,SAAE+P,GAAa3U,KAAKyH,MAE1B,GAAIkN,EACF,OAGF,MAAM4hH,EAAYv2H,KAAKw2H,oBAAoB5xH,GAE3C5E,KAAKiwB,UAAUomG,GAAmB,SAAKA,GAAkBE,IAC3D,CAEA,kBAAApF,CAAmB7sG,GAEftkB,KAAKo1H,cAAcvhB,UAAY7zG,KAAKo1H,cAAcvhB,QAAQl4F,SAAS2I,EAAM7f,SACtEzE,KAAKm1H,YAAYthB,UAAY7zG,KAAKm1H,YAAYthB,QAAQl4F,SAAS2I,EAAM7f,SAExEzE,KAAKiwB,UAAUomG,GAAmB,SAAKA,GAAkB1B,GAASC,cAEtE,CAEA,2BAAAa,GACE,MAAM,SAAE9gH,GAAa3U,KAAKyH,MAEtBkN,GAIJ3U,KAAKiwB,UAAUomG,GAAmB,SAAKA,GAAkB1B,GAASE,aACpE,CAEA,OAAAlW,CAAQx1G,GACN,MAAM,KAAE2mG,EAAI,kBAAE2mB,GAAsBz2H,KAAKyH,OACnC,OAAEwf,EAAM,OAAE+3F,GAAWh/G,KAAKmhC,MAC1B+0F,EAAiBl2H,KAAKm2H,eAC5B,IAAII,EAAYv2H,KAAK02H,gBAMrB,GAJI5mB,GAAkB,WAAV3mG,EAAEnE,MACZuxH,EAAY,SAAKA,GAAcv2H,KAAK61H,kBAGxB,UAAV1sH,EAAEnE,IAAiB,CACrB,MAAMsxH,EAAcxmB,EAAQ,qBAAuB,uBACnDymB,EAAY,SAAKA,GAAcv2H,KAAKs2H,GAAYrvG,GAClD,CAEIwvG,GAA+B,MAAVttH,EAAEnE,KAAe8qG,IACxCymB,EAAY,SAAKA,GAAcv2H,KAAK41H,wBAInC5W,GACIh/G,KAAKq1H,SAASxhB,QAAQvwG,QACtB,MAAA4yH,OAAA,EAAAA,EAAgB31H,SACN,WAAV4I,EAAEnE,MAEPuxH,EAAY,SAAKA,GAAc5B,GAASE,aAG5B,WAAV1rH,EAAEnE,KAAoBg6G,IACxBuX,EAAY,SAAKA,GAAc5B,GAASC,cAGtC5V,GAAUkX,IAAmBA,EAAe31H,SAC9Cg2H,EAAY,SAAKA,GAAc5B,GAASC,cAG1C50H,KAAKiwB,UAAUomG,GAAmB,SAAKA,GAAkBE,IAC3D,CAEA,cAAAtC,GACE,MAAM,WAAE5P,GAAerkH,KAAKyH,MACtBkJ,EAAS,CAAC,EAMhB,OAJI0zG,IACF1zG,EAAO2zG,UAAYD,GAGd1zG,CACT,CAEA,gBAAAujH,GACE,MAAM,WAAE7P,GAAerkH,KAAKyH,MACtBkJ,EAAS,CAAC,EAMhB,OAJI0zG,IACF1zG,EAAO2zG,UAAY,eAAeD,aAG7B1zG,CACT,CAEA,aAAAklH,GACE,MAAO,CACLlmH,MAAO,GAAK3P,KAAKs1H,QAAQzhB,QAAQzjG,YAErC,CAEA,gBAAAumH,CAAiBrzH,GACf,MAAM,oBAAE2xH,GAAwBj1H,KAAKmhC,MACrC,IAAIt9B,GAAY,EAchB,OAZIwB,MAAMoB,QAAQwuH,GAChBA,EAAoBlwH,SAAQ,CAACa,EAAMhB,KAC7BgB,EAAK/C,KAAOS,EAAMT,KACpBgB,EAAWe,EACb,IAEOqwH,GACLA,EAAoBpyH,KAAOS,EAAMT,KACnCgB,EAAW,GAIRA,CACT,CAEA,aAAA6yH,GACE,MAAO,CACLxB,WAAYl1H,KAAKq1H,SAASxhB,QAAQvwG,MAEtC,CAEA,qBAAAszH,CAAsBtzH,EAAOsB,GAC3B,MAAMkxG,EAAa,IACb,OACJ7uF,GACEjnB,KAAKmhC,MAUT,OARIla,IAAWriB,GACbkxG,EAAW/zG,KAAK,UAGduB,EAAMqR,UACRmhG,EAAW/zG,KAAK,YAGX+zG,EAAWtzG,KAAK,IACzB,CAEA,uBAAAq0H,GACE,MAAM,OAAE7X,GAAWh/G,KAAKmhC,OAClB,KAAE2uE,EAAI,MAAE37E,GAAUn0B,KAAKyH,MACvBqvH,EAAS3iG,EAAQA,EAAM9xB,MAAM,KAAO,GAEpCyzG,EAAa,CAAC,sBAgBpB,OAdIkJ,GACFlJ,EAAW/zG,KAAK,8BAGd+tG,GACFgG,EAAW/zG,KAAK,gCAGd+0H,EAAOv2H,QACTu2H,EAAO/xH,SAASgyH,IACdjhB,EAAW/zG,KAAK,mBAAmBg1H,IAAS,IAIzCjhB,EAAWtzG,KAAK,IACzB,CAEA,aAAAqzG,GACE,MAAM,MACJh1G,EAAK,SAAE8T,EAAQ,MAAEwf,EAAK,WAAEkwF,GACtBrkH,KAAKyH,MACHquG,EAAa,CAAC,iBAAkB,gBAChCghB,EAAS3iG,EAAQA,EAAM9xB,MAAM,KAAO,GAoB1C,OAlBIxB,GACFi1G,EAAW/zG,KAAK,aAGdsiH,GACFvO,EAAW/zG,KAAK,mCAGd+0H,EAAOv2H,QACTu2H,EAAO/xH,SAASgyH,IACdjhB,EAAW/zG,KAAK,mBAAmBg1H,IAAS,IAI5CpiH,GACFmhG,EAAW/zG,KAAK,YAGX+zG,EAAWtzG,KAAK,IACzB,CAEA,aAAAw0H,GACE,MAAM,MAAEn2H,GAAUb,KAAKyH,MAEvB,OAAQ5G,GAAmB,SAAVA,GAA8B,UAAVA,EAEjC,kBAAC,KACC+L,UAAU,mCAER/L,GAGJ,IACN,CAEA,SAAAwwH,GACE,MAAM,UAAEp4D,GAAc/sD,SAASkB,gBACzBb,EAAKvM,KAAKm1H,YAAYthB,QACtBgd,EAAWtkH,EAAGgoB,aACd0iG,EAAU1qH,EAAG6D,YAEblI,EAASqE,EAAGqb,yBACZ,KAAE5X,GAAS9H,EACjB,IAAIsJ,EAAM,EAIV,OAFAA,EAAMtJ,EAAOsJ,IAAMynD,EAAY43D,EAExB,CACLr/G,IAAQA,EAAM,EAAT,KACLxB,KAAM,GAAGA,MACTL,MAAO,GAAGsnH,MAEd,CAEA,sBAAAC,GACE,MAAM,oBAAEjC,GAAwBj1H,KAAKmhC,OAC/B,SAAEuzF,EAAQ,YAAE/lE,EAAW,OAAE1pD,GAAWjF,KAAKyH,MAE/C,OAAKwtH,EAIDA,GAAuB5vH,MAAMoB,QAAQwuH,KAAyBA,EAAoB10H,OAC7EouD,GAGLsmE,GAAwB5vH,MAAMoB,QAAQwuH,IAAyBA,EAAoBpyH,GAInFwC,MAAMoB,QAAQwuH,IAAwBP,EACjCO,EAAoBkC,QAAO,CAACC,EAAW9zH,EAAOsB,IAAUwyH,EAAY9zH,EAAMH,MAASyB,IAAUqwH,EAAoB10H,OAAS,EAAK,KAAO,KAAK,MAIlJ,MAAA0E,OAAA,EAAAA,EAAQ1E,SACJ8E,MAAMoB,QAAQwuH,IAAyBA,EAAoB9xH,KAK1D8xH,EAAoB9xH,KAHlB8B,EAAO+Q,QAAQ1S,GAAUA,EAAMT,KAAOoyH,EAAoBpyH,KAAI,GAAGM,KAXjEwrD,EARAA,CAuBX,CAEA,kBAAAinE,CAAmBhxH,GACjB,MAAM,IAAEqB,EAAG,kBAAEwwH,GAAsBz2H,KAAKyH,OAClC,oBAAEwtH,GAAwBj1H,KAAKmhC,MAC/B+0F,EAAiBl2H,KAAKm2H,eACtB7yH,EAAQ,CAAET,GAAI7C,KAAKq1H,SAASxhB,QAAQvwG,MAAOH,KAAMnD,KAAKq1H,SAASxhB,QAAQvwG,OAE7E,IAA0B,IAAtBmzH,IAA0C,IAAX7xH,EACjC,OAAO,KAGT,MAAMyyH,EAAYnB,EAAetxH,IAAUtB,EACrCg0H,EAAgBt3H,KAAK22H,iBAAiBU,GAC5C,IAAIE,EAAiB,CAAC,EAItB,GAFAv3H,KAAKq1H,SAASxhB,QAAQvwG,MAAQ,GAE1Bg0H,GAAiB,GAAKt3H,KAAKw3H,kBAAkBH,GAC/CE,EAAiBv3H,KAAKw2H,oBAAoBc,QACrC,IAAuB,IAAnBA,EAAsB,CAC/B,GAAIrxH,GAAOgvH,EAAoB10H,QAAU0F,EACvC,OAAOsxH,EAETA,EAAiBv3H,KAAKy3H,iBAAiBJ,EACzC,CAEA,OAAOE,CACT,CAGA,oBAAAG,CAAqB9yH,GACnB,MAAM,oBAAEqwH,GAAwBj1H,KAAKmhC,OAC/B,SAAEuzF,EAAQ,SAAE3nF,EAAQ,IAAE9mC,GAAQjG,KAAKyH,MACnCyuH,EAAiBl2H,KAAKm2H,eACtBwB,EAAqBzB,EAAetxH,GAC1C,IAAI2yH,EACJ,MAAMD,EAAgBt3H,KAAK22H,iBAAiBgB,GAE5C,GAAIA,GAAsBjD,EACxB,GAAI4C,GAAiB,EACnBC,EAAiBv3H,KAAKw2H,oBAAoBc,OACrC,CACL,GAAIrxH,GAAOgvH,EAAoB10H,QAAU0F,EACvC,OAAOsxH,EAETA,EAAiBv3H,KAAKy3H,iBAAiBvB,EAAetxH,GACxD,MAEA2yH,EAAiB,CACftC,qBAAyC,IAAnBqC,EAAwBK,EAAqB,CAAE90H,GAAI,OAG3E,MAAAkqC,GAAAA,GAA+B,IAAnBuqF,EAAwBK,EAAqB,MAG3D,OAAOJ,CACT,CAEA,mBAAAf,CAAoB5xH,GAClB,MAAM,oBAAEqwH,GAAwBj1H,KAAKmhC,OAC/B,SAAE4L,GAAa/sC,KAAKyH,MACpBmwH,EAA0Br/D,KAAKC,MAAMD,KAAK09D,UAAUhB,IAQ1D,OANA2C,EAAwBhwH,OAAOhD,EAAO,GAElCmoC,GAAgC,mBAAbA,GACrBA,EAAS6qF,EAAwBr3H,OAASq3H,EAA0B,MAG/D,CACL3C,oBAAqB2C,EACrB1C,WAAY,GAEhB,CAEA,gBAAAuC,CAAiBn0H,GACf,MAAM,oBAAE2xH,GAAwBj1H,KAAKmhC,OAC/B,SAAE4L,GAAa/sC,KAAKyH,MACpBmwH,EAA0Br/D,KAAKC,MAAMD,KAAK09D,UAAUhB,IAQ1D,OANA2C,EAAwB71H,KAAKuB,GAEzBypC,GAAgC,mBAAbA,GACrBA,EAAS6qF,EAAwBr3H,OAASq3H,EAA0B,MAG/D,CACL3C,oBAAqB2C,EACrB1C,WAAY,GAEhB,CAEA,iBAAAsC,CAAkBl0H,GAChB,MAAM,OAAE2B,GAAWjF,KAAKyH,MACxB,IAAIowH,GAAK,EAQT,OANA5yH,EAAOF,SAASa,IACVtC,EAAMT,KAAO+C,EAAK/C,KACpBg1H,GAAK,EACP,IAGKA,CACT,CAEA,YAAA1B,GACE,MAAM,OAAElxH,EAAM,WAAE6yH,GAAe93H,KAAKyH,MAEpC,OAAKzH,KAAKq1H,SAASxhB,QAIP5uG,EACT+Q,QACE1S,GAAWw0H,EACRA,EAAWx0H,EAAOtD,KAAKq1H,SAASxhB,QAAQvwG,MAAM8G,eAC9CuqH,GAASG,aAAaxxH,EAAOtD,KAAKq1H,SAASxhB,QAAQvwG,MAAM8G,iBAPxDnF,CAWX,CAEA,UAAA0hH,GACEz6G,SAAS4I,iBAAiB,YAAa9U,KAAKmxH,mBAC9C,CAEA,YAAA2E,GACE5pH,SAAS+I,oBAAoB,YAAajV,KAAKmxH,mBACjD,CAGA,KAAAtnE,GACE,MAAM,SAAE6qE,EAAQ,KAAE5kB,EAAI,MAAExsG,GAAUtD,KAAKyH,MAEvCzH,KAAKiwB,SAAS,CACZglG,oBAAqBR,GAAuBC,EAAU5kB,EAAMxsG,IAEhE,CAEA,UAAAiyH,GACMv1H,KAAKq1H,SAASxhB,SAChB7zG,KAAKq1H,SAASxhB,QAAQtsF,OAE1B,CAEA,WAAAwwG,CAAY7B,GACV,MAAM,SACJvhH,EAAQ,KACRm7F,EAAI,IACJ7pG,EAAG,YACH0oD,GACE3uD,KAAKyH,OACH,MACJkI,EAAK,WAAEulH,EAAU,oBAAED,GACjBj1H,KAAKmhC,MAET,OACE,kBAAC,MACCv0B,UAAW,oBAAoBkjG,EAAQ,+BAAiC,IACxE8C,QAAS5yG,KAAKu1H,WACdjW,UAAW,OACXvM,IAAK/yG,KAAKm1H,aAGRrlB,EAEI,qCAEKmlB,GAAuB,IAAI9vH,KAAI,CAAC7B,EAAOsB,IACtC,kBAAC,MAAGgI,UAAU,OAAO5H,IAAK1B,EAAMT,IAC9B,kBAAC,UACCkR,KAAK,SACL6+F,QAAS5yG,KAAK21H,sBAAsB3xG,KAAKhkB,KAAM4E,GAC/C,aAAW,UAEX,kBAAC,EAAI,CAACmP,KAAK,WAEb,kBAAC,YAAOzQ,EAAMH,SAIpB,kBAAC,MACCyJ,UAAU,2BACVC,MAAO,CACL8C,OAAS,MAAAslH,OAAA,EAAAA,EAAqB10H,QAAmB,OAAT,eAGhC,IAAR0F,IAAqB,MAAAgvH,OAAA,EAAAA,EAAqB10H,QAAS0F,IACnD,oCACE,kBAAC,SACC2G,UAAU,mBACV+H,WACA2qG,UAAYn2G,IACI,UAAVA,EAAEnE,KACJmE,EAAEmK,iBAEJtT,KAAKw1H,sBAAsBrsH,EAAE,EAE/Bw1G,QAAS3+G,KAAK2+G,QACdhwD,aAAe,MAAAsmE,OAAA,EAAAA,EAAqB10H,QAAwB,GAAdouD,EAC9CokD,IAAK/yG,KAAKq1H,SACVxoH,MAAO,CACL8C,OAAS,MAAAslH,OAAA,EAAAA,EAAqB10H,QAAmB,GAAGoP,MAAZ,UAG5C,kBAAC,QACCojG,IAAK/yG,KAAKs1H,QACVzoH,MAAO,CACLmrH,UAAW,SACXn0H,SAAU,WACV2N,IAAK,YAGL0jH,IAIPgB,EAAe31H,OAAS,GACvB,kBAAC,GACCqM,UAAU,uCACV8lG,SAAS,aACTiD,UAAQ,EACR/C,QAAS5yG,KAAKy1H,gCAOtB,kBAAC,MACC7oH,UAAU,4BACVgmG,QAAS5yG,KAAKy1H,4BACdnW,UAAW,QAETt/G,KAAKk3H,yBACP,kBAAC,EAAI,CAACllB,OAAO,QAAQj+F,KAAK,eAMxC,CAEA,cAAAkkH,CAAe/B,GACb,MAAM,KAAEpmB,GAAS9vG,KAAKyH,OAChB,OAAEu3G,GAAWh/G,KAAKmhC,MACxB,OACE,kBAAC,MACCv0B,UAAW5M,KAAK62H,0BAChB9jB,IAAK/yG,KAAKo1H,cACVvoH,MAAO7M,KAAKqxH,aAGTvhB,EAaG,KAXA,kBAAC,MAAGljG,UAAU,8BACZ,kBAAC,SACCsrH,UAAWlZ,EACXpyG,UAAU,mBACV+xG,QAAS3+G,KAAK2+G,QACdW,UAAWt/G,KAAKw1H,sBAChBxwH,IAAI,cACJ+tG,IAAK/yG,KAAKq1H,YAOlBa,EACG/wH,KAAI,CAAC7B,EAAOsB,IACX,kBAAC,MACCgI,UAAW5M,KAAK42H,sBAAsBtzH,EAAOsB,GAC7CguG,QAAS5yG,KAAK01H,oBAAoB1xG,KAAKhkB,KAAM4E,GAC7C06G,UAAW,OACXt6G,IAAK1B,EAAMT,IAGR7C,KAAK22H,iBAAiBrzH,IAAU,EAC7B,kBAAC,EAAI,CAACyQ,KAAK,UACX,KAEN,kBAAC,YACE,IACCzQ,EAAMH,SAOxB,CAEA,MAAAk7G,GACE,MAAM,oBACJ8Z,EAAmB,GACnBt1H,EAAE,MACFy5B,EAAK,KACL0xF,GACEhuH,KAAKyH,OACH,OAAEu3G,GAAWh/G,KAAKmhC,MAElB+0F,EAAiBl2H,KAAKm2H,eAE5B,OACE,oCACE,kBAAC,OAAIvpH,UAAW5M,KAAK61G,iBAEjBv5E,EACI,kBAAC,SAAM+3F,QAASxxH,EAAIgK,MAAO7M,KAAKi0H,kBAAoB33F,GACpD,KAEN,kBAAC,OACC1vB,UAAU,4BACVC,MAAO7M,KAAKk0H,oBAEXl0H,KAAK+3H,YAAY7B,GAEhBlI,EACI,kBAAC,KAAEphH,UAAU,gCAAiCohH,GAC9C,KAEJhuH,KAAKg3H,kBAKRmB,EAQG,kBAACA,EAAA,CACCplB,IAAK/yG,KAAKo1H,cACVxoH,UAAW5M,KAAK62H,0BAEhBD,sBAAuB52H,KAAK42H,sBAAsB5yG,KAAKhkB,MAEvD22H,iBAAkB32H,KAAK22H,iBAAiB3yG,KAAKhkB,MAC7Ck2H,iBAEAR,oBAAqB11H,KAAK01H,oBAAoB1xG,KAAKhkB,QAhBrDg/G,GAAUkX,EAAe31H,OACvB,kBACAP,KAAKi4H,eAAe/B,GACpBhqH,SAASsuB,cAAc,SAEvB,KAiBd,EAGFm6F,GAASviB,UAAY,CACnBqkB,kBAAmB,SACnB0B,oBAAqB,gBACrBL,WAAY,SACZnjH,SAAU,SACV9T,MAAO,WACPgC,GAAI,WACJy5B,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEF+nF,WAAY,WACZqQ,SAAU,SACVzuH,IAAK,WACL+nH,KAAM,cAAoB,CACxB,SACA,YACA,aAEFjhF,SAAU,SACV4hB,YAAa,WACbmhD,KAAM,SACN37E,MAAO,WACP7wB,MAAO,cAAoB,CACzB,WACA,eAAqBhC,QACrB,eAAqB+D,SAEvBJ,OAAQ,eAAqBI,QAG/BsvH,GAASrhB,aAAe,CACtBmjB,mBAAmB,GAGrB,YClyBA,SAAS2B,GAAM3wH,GACb,MAAM,MACJnE,EAAK,IACL2C,EAAG,KACH6pG,EAAI,cACJuoB,EAAa,aACbC,EAAY,YACZ3pE,EAAW,SACXh6C,EAAQ,YACR4jH,EAAW,cACXC,EAAa,MACbjxG,EACAo0E,UAAW2xB,EAAW,SACtB/gG,GACE9kB,EAEE4tH,GAAW,IAAAlhB,QAAO,MAClBskB,GAAkB,IAAAtkB,QAAO,OACxB6gB,EAAY0D,IAAiB,IAAAzlB,UAAS,KACtC0lB,EAAY9C,IAAiB,IAAA5iB,UAAS,QAE7C,SAAS2lB,EAAmBx1H,GAC1B,GAAIi1H,EAAc53F,MAAMthB,GAAO/b,EAAIb,OAAO,KAAO4c,IAAK,OACtD,MAAM05G,EAAQJ,EAAgB5kB,QAC9BglB,EAAMprH,UAAYrK,EAClByyH,EAAc,GAAG7vH,KAAKC,IAAI4yH,EAAMvoH,YAVV,IAU0C,QAChEooH,EAAct1H,GACdkqH,EAAY,mBAAoBlqH,EAClC,CA+BA,SAAS01H,IACPxL,EAAY,mBACd,CAEA,SAASyL,EAAU31H,EAAK41H,GAAgB,GACtC,GAAIzsG,EAAU,OAAOnpB,GAAO,IAE5B,MAAM6K,EAAU,CACd,4BACA,YAAYuqH,IACZQ,GAAiB,kBACjBhjH,OAAO4uB,SAASpiC,KAAK,KACvB,OACE,kBAAC,QACCoK,UAAWqB,EACX25F,MAAyB,WAAlB4wB,EAA6Bp1H,OAAM,EAC1C0jB,KAAK,OACLkQ,SAAUriB,EAAW,KAAO,IAC5Bi+F,QAASkmB,EACTxZ,UAAWwZ,GAEV11H,EAGP,CAEA,SAAS61H,EAAkB1lC,GASzB,OAAOglC,EAAYhlC,EARJ,CACbuc,OACAuoB,gBACA1pE,cACAh6C,WACA4jH,cACAjL,eAGJ,CAmEA,OAJA,IAAAlZ,YAAU,KACJ7sF,GAAS8tG,EAASxhB,SAASwhB,EAASxhB,QAAQtsF,OAAO,GACtD,CAACA,IAEAgF,EACK,kBAAC,OAAI3f,UAAU,8BAA8BmsH,EAAUz1H,EAAM6B,KAAKouF,GAAMA,EAAEpwF,OAAMX,KAAK,QAG1FstG,EA5CA,oCACGxsG,EAAM6B,KA1Bb,SAAmBouF,GACjB,OAAIglC,EAAoBU,EAAkB1lC,GAGxC,kBAAC,IACCvuF,IAAKuuF,EAAE1wF,GACPsxB,MAAM,YAEN,kBAAC,UACCpgB,KAAK,SACL6+F,QAAUzpG,IACRA,EAAEiK,kBACFk6G,EAAY,aAAc/5B,EAAE1wF,GAAG,EAEjC,aAAW,UAEX,kBAAC,EAAI,CAACkR,KAAK,WAEb,kBAAC,QAAK6zF,MAAOrU,EAAEpwF,MAAQowF,EAAEpwF,MAG/B,IAMOG,EAAM/C,OAAS0F,GACd,oCACE,kBAAC,SACC2G,UAAU,6BACVmmG,IAAKsiB,EACL1mE,YAAarrD,EAAM/C,OAAS,GAAKouD,EACjCh6C,WACArR,MAAO0xH,EACPnoH,MAAO,CAAE8C,MAAOrM,EAAM/C,OAASo4H,EAAa,QAC5C5rF,SAAW5jC,GAAMyvH,EAAmBzvH,EAAE1E,OAAOnB,OAC7Cg8G,UAAYn2G,IACI,UAAVA,EAAEnE,KAAiBmE,EAAEmK,iBAzGvC,SAA6BtO,EAAK5B,GAChC,GAAK0sG,EAAL,CACA,GAAY,KAAR1sG,GAAsB,cAAR4B,IAAuB1B,EAAM/C,OAI/C,MAAY,UAARyE,GACFsoH,EAAY,kBAAmBlqH,QAC/Bw1H,EAAmB,UAGT,YAAR5zH,EAIQ,cAARA,EAIQ,WAARA,EAIAqzH,EAAc/zH,SAASU,KACzBsoH,EAAY,UAAWlqH,GACvBw1H,EAAmB,KALnBtL,EAAY,oBAJZA,EAAY,uBAJZA,EAAY,sBATZA,EAAY,aAAchqH,EAAMA,EAAM/C,OAAS,GAAGsC,GAFzC,CA0Bb,CA+Ecq2H,CAAoB/vH,EAAEnE,IAAKmE,EAAE1E,OAAOnB,MAAM,EAE5C8jB,QAAS,IAAMkmG,EAAY,mBAC3BpmG,OAAS/d,IACPmkH,EAAY,iBAAkBnkH,EAAE1E,OAAOnB,OACnCg1H,GAAcM,EAAmB,GAAG,IAG5C,kBAAC,QACC7lB,IAAK0lB,EACL5rH,MAAO,CACLmrH,UAAW,SACXn0H,SAAU,WACV2N,IAAK,eAkBf+mH,EACsB,IAAjBj1H,EAAM/C,OAAew4H,EAAUpqE,GAAa,GAAQrrD,EAAM6B,IAAI8zH,GAE/C,IAAjB31H,EAAM/C,OACTw4H,EAAUpqE,GAAa,GACvBoqE,EAAUz1H,EAAM6B,KAAKouF,GAAMA,EAAEpwF,OAAMX,KAAK,MAC9C,CAEA41H,GAAMhmB,UAAY,CAChB9uG,MAAO,eAAqB+B,OAC5BY,IAAK,WACL6pG,KAAM,eAAqBzqG,OAC3BgzH,cAAe,eAAqBhzH,OACpCizH,aAAc,SACd3pE,YAAa,WACbh6C,SAAU,SACV4jH,YAAa,SACbC,cAAe,WACfjxG,MAAO,SACPo0E,UAAW,SACXpvE,SAAU,UAGZ,YC/LA,SAAS,GAAK9kB,GACZ,MAAM,QACJ0xH,EAAO,KACPrpB,EAAI,OACJ7qG,EAAM,YACNm0H,EAAW,WACXC,EACA19B,UAAW2xB,EAAW,eACtBgM,EAAc,UACdluG,EAAS,WACTmuG,GACE9xH,EA+DJ,OA7DA,IAAA2sG,YAAU,KACR,IAAK+kB,EAAQtlB,QAAS,OACtB,MAAMttF,EAAgB4yG,EAAQtlB,QAAQr5E,cAAc,WAChDjU,GAAeA,EAAcwgD,eAAe,CAAEyyD,MAAO,OAAQ,GAChE,CAACH,IA0DF,qCACIvpB,GAAQypB,GACR,kBAAC,OAAI3sH,UAAU,kCACb,kBAAC,SACCsrH,WAAS,EACTtrH,UAAU,mBACVtJ,MAAO81H,EACPrsF,SAAW5jC,GAAMmkH,EAAY,gBAAiBnkH,EAAE1E,OAAOnB,OACvDg8G,UAAYn2G,IACI,WAAVA,EAAEnE,KAAkBsoH,EAAY,iBACtB,YAAVnkH,EAAEnE,KAAmBsoH,EAAY,kBACvB,cAAVnkH,EAAEnE,KAAqBsoH,EAAY,oBACzB,UAAVnkH,EAAEnE,KAAiBsoH,EAAY,eAAe,KAKzDroH,EAAO1E,OAAS,GACf,kBAAC,MAAGwyG,IAAKomB,EAASvsH,UAAU,gCACzBg4B,QAAQxZ,IAnDjB,WA/CF,UAgDI,MAAMD,EAAgBlmB,EAAOoqH,OAAO97B,GAAMA,EAAElxD,WACtCo3F,EAAiBx0H,EAAOoqH,OAAO97B,IAAOA,EAAElxD,WACxC/F,EAAQ,eAAAlR,OAAA,EAAAA,EAAWkR,OAAX,EAAoB,aAC5BwF,EAAO,eAAA1W,OAAA,EAAAA,EAAW0W,MAAX,EAAmB,SAC1B1N,EAAO,eAAAhJ,OAAA,EAAAA,EAAWgJ,MAAX,EAAmB,SAC1BiqF,EAAS,MAAAjzF,OAAA,EAAAA,EAAWizF,OAG1B,MADoC,WAATjqF,IAA+B,WAAT0N,EAAqB3W,EAAiBsuG,GACvD,KAE5Bpb,EACKA,EAAO,CACZ/hF,QACAwF,OACA1N,OACAjJ,gBACAsuG,kBACCnM,GAGH,kBAAC,MACC1a,QAAS,IAAM0a,EAAY,mBAA6B,WAATxrF,GAAqB3W,EAAgBsuG,GACpFna,UAAW,SAEA,WAATx9E,EAAoB3W,EAAgBsuG,IAAmB,kBAAC,EAAI,CAAC1lH,KAAK,UACnEuoB,EAGP,CAuBUo9F,GAEDz0H,EAAOE,KA9EhB,SAAoBS,GAClB,OAAI0zH,EACKA,EAAe1zH,EAAM,CAC1BkqG,OAAMspB,cAAa9L,cAAa+L,eAKlC,kBAAC,MACCr0H,IAAKY,EAAK/C,GACV+kG,MAAOhiG,EAAKzC,KACZyJ,UAAW,CACThH,EAAK+O,UAAY,WACjB0kH,GAAczzH,EAAK/C,KAAOw2H,EAAWx2H,IAAM,UAC3CmT,OAAO4uB,SAASpiC,KAAK,KACvBowG,QAAS,KAAOhtG,EAAK+O,UAAY24G,EAAY,eAAgB,CAAE1nH,SAC/D05G,UAAW,QAEV15G,EAAKy8B,UAAY,kBAAC,EAAI,CAACtuB,KAAK,UAC7B,kBAAC,QAAKnH,UAAU,aAAahH,EAAKzC,MAGxC,KA6DF,CAEA,GAAKivG,UAAY,CACf+mB,QAAS,eAAqB73H,QAC9BwuG,KAAM,SACN7qG,OAAQ,eAAqBI,OAC7B+zH,YAAa,WACbC,WAAY,eAAqB/3H,QACjCq6F,UAAW,SACX29B,eAAgB,SAChBluG,UAAW,cAAoB,CAC7B,SACA,UAAgB,CACdkR,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEFwF,KAAM,UAAgB,CAAC,SAAU,aACjC1N,KAAM,UAAgB,CAAC,SAAU,iBACjCiqF,OAAQ,aAGZkb,WAAY,UAGd,2bCtHA,SAASI,GAAU,YACjBr2H,MAAOs2H,EACP30H,OAAQ40H,EAAa,GAAE,cACvBrB,EAAgB,eAChBl8F,EAAQ,cACR+nF,EAAU,KACVvU,GAAO,EAAK,cACZuoB,EAAgB,CAAC,IAAK,SAAQ,aAC9BC,GAAe,EACfryH,IAAK6zH,EAAO,SACZpF,GAAW,EAAK,YAChB/lE,EAAc,SACdx6B,EAAK,KACL65F,EAAO,SACPntH,EAAQ,YACR8T,GAAW,EAAK,SAChB4X,GAAW,EAAK,kBAChBkqG,GAAoB,EACpBqB,WAAYiC,EAAW,YACvBxB,EAAW,eACXe,EACAU,WAAYC,EAAc,oBAC1B9B,EAAmB,eACnB+B,EAAiB,MAAM,GAAI,SAC3BntF,EAAW,SAAQ,wBACnBotF,EAAuB,WACvBC,EAAU,uBACVrY,EAAsB,uBACtBsY,GAAyB,EAAI,UAC7BjvG,EAAS,cACTumG,EAAa,WACb4H,GAAa,EAAK,SAClBe,GAAW,EAAK,iBAChBC,EAAmB,SAAQ,iBAC3BrS,EAAmB,IAlCF,EAmCdhJ,mKAAA,CAnCc,EAmCd,CAlCH,QACA,SACA,gBACA,QACA,aACA,OACA,gBACA,eACA,MACA,WACA,cACA,QACA,OACA,QACA,WACA,WACA,oBACA,aACA,cACA,iBACA,aACA,sBACA,iBACA,WACA,0BACA,aACA,yBACA,yBACA,YACA,gBACA,aACA,WACA,mBACA,qBAGA,MAAMj5G,GAAM,IAAAitG,UACV,IAAOwhB,EAAW1zE,IAAW84E,IAAYhqB,EAAO9uD,IAAW,IAC3D,CAAC0zE,EAAUoF,EAAShqB,IAEhBkqB,EAAa7B,EACf,CAAClzH,GAAUqoH,iBACX,kBAAC6K,EAAA,CACCjC,eAAgBjxH,EAChBywH,oBAAsB9wH,GAAU0oH,EAAY,eAAgB,CAAE1nH,KAAMX,EAAOL,OAG7Eq1H,EAEEO,GAAU,IAAArmB,QAAO,MACjBsmB,GAAqB,IAAAtmB,QAAO,MAC5B4c,GAAc,IAAA5c,QAAO,MACrBglB,GAAU,IAAAhlB,QAAO,OAEhB7wG,EAAOiiD,IAAY,IAAA0tD,UAASynB,GAAiBd,EAAWC,KACxD50H,EAAQ01H,IAAa,IAAA1nB,UAAS4mB,EAAW10H,KAAKouF,GAAMqnC,GAAernC,OACnE6lC,EAAayB,IAAkB,IAAA5nB,UAAS,KACxComB,EAAYyB,IAAiB,IAAA7nB,UAAS,OACtC0Y,GAAUoP,KAAe,IAAA9nB,WAAS,IAClC+nB,GAAgBC,KAAqB,IAAAhoB,WAAS,IAC9CioB,GAAsBC,KAA2B,IAAAloB,UAAS,IAEjE,SAASmoB,KAEP,OADejnG,EAAQA,EAAM9xB,MAAM,KAAO,IAC5B8C,KAAK4xH,GAAW,mBAAmBA,KACnD,CAeA,SAASsE,KACP,MACMld,EAAK4b,GADO,EAACxmC,EAAGlhF,KAlG1B,IAAA4iB,EAAAE,EAkGgC,cAAAA,EAAA,OAAAF,EAAA,MAAAs+D,OAAA,EAAAA,EAAGpwF,WAAH,EAAA8xB,EAAS7qB,oBAAT,EAAA+qB,EAAwB7wB,SAAS+N,EAAE,GAG/D,OADuBpN,EAAO+Q,QAAQu9E,GAAM4qB,EAAG5qB,EAAG6lC,EAAYhvH,gBAEhE,CAEA,SAASkxH,KACPP,IAAY,EACd,CAEA,SAASvJ,KACPuJ,IAAY,GACPjrB,GAAMyrB,GAAkB,IAC7BT,EAAc,KAChB,CAEA,SAASS,GAAkBC,GACzBX,EAAeW,GACXnC,GAAcgC,KAAoBhM,OAAOoM,GAAOA,EAAG54H,KAAOw2H,EAAWx2H,MACvEi4H,EAAc,MAEZU,IAAmB7P,IAAU2P,IACnC,CAEA,SAASI,GAAaC,EAAW/1G,GAC/B,MAAMg2G,EAAarB,EAAiBoB,EAAW/1G,GAE/C,OADAu1G,GAAwBS,QACF,IAAfA,CACT,CAEA,SAASC,GAAYF,GACnBp2E,EAASo2E,GACT5uF,EAAiB,IAAR9mC,GAAc6pG,EAAgC6rB,EAAxBA,EAAU,IAAM,KACjD,CAEA,SAASG,GAAO14H,GACd,IAAKA,EAAK,OACV,GAAIE,EAAM/C,QAAU0F,EAAK,OACzB,GAAI3C,EAAMm9B,MAAK,EAAGt9B,UAAWA,IAASC,IAAM,OAE5C,MAAM24H,EAAiB92H,EAAOU,WAAWq2H,GAAOA,EAAG74H,OAASC,IAC5D,IAAIulB,EAEA4uG,EADA0E,EAAa,IAAI34H,IAGG,IAApBy4H,EACEtF,IACF9tG,EAAW,CAAE9lB,GAAIO,EAAKD,KAAMC,GAC5B64H,EAAa,IAAI34H,EAAOqlB,KAG1B4uG,EAAiB,IACZtyH,EAAO1C,MAAM,EAAGw5H,GACnB,SAAK92H,EAAO82H,IAAZ,CAA6B15F,UAAU,OACpCp9B,EAAO1C,MAAMw5H,EAAiB,IAEnCpzG,EAAW1jB,EAAO82H,GAClBE,EAAa,IAAI34H,EAAO2B,EAAO82H,KAG7BL,GAAaO,EAAYtzG,IAAauxG,EAAe52H,EAAO24H,KAC1D1E,GACFoD,EAAUpD,GAEZsE,GAAYI,GAEhB,CAoBA,SAASC,IAAY,GAAEr5H,IACrB,MAAMO,EAAM6B,EAAOK,MAAMiuF,GAAMA,EAAE1wF,KAAOA,IAClCs5H,EAAWl3H,EAAOU,WAAW4tF,GAAMA,EAAE1wF,KAAOA,IAClD,IAAIo5H,EAAa34H,EACbi0H,EAAiBtyH,EAEjB7B,EAAIi/B,SACDi4F,GAAoB,IAARr0H,IACfg2H,EAAa34H,EAAM0S,QAAQu9E,GAAMA,EAAE1wF,KAAOO,EAAIP,KAC9C00H,EAAiBtyH,EAAOm3H,KAAKD,EAAU,SAAK/4H,GAAL,CAAUi/B,UAAU,MAEpD/+B,EAAM/C,OAAS0F,GACxBg2H,EAAa,IAAI34H,EAAOF,GACxBm0H,EAAiBtyH,EAAOm3H,KAAKD,EAAU,SAAK/4H,GAAL,CAAUi/B,UAAU,MAC1C,IAARp8B,IACTg2H,EAAa,CAAC74H,GACdm0H,EAAiBtyH,EAAOE,KAAKouF,GAAO,SAAKA,GAAL,CAAQlxD,SAAUkxD,EAAE1wF,KAAOO,EAAIP,QAGjE64H,GAAaO,EAAY74H,IAAQ82H,EAAe52H,EAAO24H,KACzDJ,GAAYI,GACZtB,EAAUpD,KAGA,IAARtxH,GAAa0rH,IACfH,IAEJ,CAEA,SAAS6K,GAAgBh6F,GACvB,GAAIp9B,EAAO1E,OAAS0F,EAAK,OACzB,MAAM0iB,EAAW0Z,EAAW,IAAIp9B,GAAU,GAErCi1H,EAAe52H,EAAOqlB,KAE3BkzG,GAAYlzG,GACZgyG,EAAU11H,EAAOE,KAAKouF,GAAO,SAAKA,GAAL,CAAQlxD,gBACjCsvF,GAAeH,KACrB,CAEA,SAAS8K,KACP,MAAMC,EAAelB,KAAoBrlH,QAAQu9E,IAAOA,EAAE5+E,WAC1D,GAA4B,IAAxB4nH,EAAah8H,OAAc,OAC/B,GAAmB,OAAf84H,GAA+C,IAAxBkD,EAAah8H,OAEtC,YADAu6H,EAAcyB,EAAaA,EAAah8H,OAAS,IAGnD,MAAMi8H,EAAcD,EAAa52H,WAAW4tF,GAAMA,EAAE1wF,KAAOw2H,EAAWx2H,KACtEi4H,EAAcyB,EAAaC,EAAc,EAAIA,EAAc,EAAID,EAAah8H,OAAS,GACvF,CAEA,SAASk8H,KACP,MAAMF,EAAelB,KAAoBrlH,QAAQu9E,IAAOA,EAAE5+E,WAC1D,GAA4B,IAAxB4nH,EAAah8H,OAAc,OAC/B,GAAmB,OAAf84H,GAA+C,IAAxBkD,EAAah8H,OAEtC,YADAu6H,EAAcyB,EAAa,IAG7B,MAAMC,EAAcD,EAAa52H,WAAW4tF,GAAMA,EAAE1wF,KAAOw2H,EAAWx2H,KACtEi4H,EAAcyB,EAAaC,EAAcD,EAAah8H,OAAS,EAAIi8H,EAAc,EAAI,GACvF,CAEA,SAASE,KACHtC,EACFa,IAAmBD,IAEnBM,IAEJ,CAEA,SAASnP,GAAoBhjH,GA9P/B,IAAA8rB,EAAAE,GA+P0B,OAAAF,EAAAulG,EAAQ3mB,cAAR,EAAA5+E,EAAiBtZ,SAASxS,EAAE1E,WAC7C,OAAA0wB,EAAA47F,EAAYld,cAAZ,EAAA1+E,EAAqBxZ,SAASxS,EAAE1E,UAEnC+sH,IAEJ,CAgBA,SAASmL,GAAanmH,EAASnB,GACb,QAAZmB,IACFslH,GAAOzmH,GACPkmH,GAAkB,KAGJ,WAAZ/kH,GApHN,SAAmB3T,GACjB,GAAIy3H,GAAoB,IAARr0H,EAAW,OAE3B,MAAM81H,EAAiB92H,EAAOU,WAAWq2H,GAAOA,EAAGn5H,KAAOA,IACpD8lB,EAAWrlB,EAAM0S,QAAQu9E,GAAMA,EAAE1wF,KAAOA,IAEzCq3H,EAAe52H,EAAOqlB,MAEH,IAApBozG,GACFpB,EAAU,IACL11H,EAAO1C,MAAM,EAAGw5H,GACnB,SAAK92H,EAAO82H,IAAZ,CAA6B15F,UAAU,OACpCp9B,EAAO1C,MAAMw5H,EAAiB,KAGrCF,GAAYlzG,GACd,CAoG4Bi0G,CAAUvnH,GAEpB,iBAAZmB,GAA4B+kH,GAAkBlmH,GAElC,gBAAZmB,IACE6iH,EACF6C,GAAY7C,GACHhB,EAAc/zH,SAAS,WAChCw3H,GAAOzmH,GACPkmH,GAAkB,MAIN,kBAAZ/kH,IACF8kH,KACAgB,MAGc,oBAAZ9lH,IACF8kH,KACAmB,MAGc,iBAAZjmH,GAA4Bg7G,KAEhB,eAAZh7G,GAA4B8hH,IAC9BwD,GAAOzmH,GACPkmH,GAAkB,KAGJ,gBAAZ/kH,GACF8kH,IAEJ,CAEA,MAAM3/B,IAAY,IAAAoY,cAAY,CAACv9F,EAASnB,KAClCmB,EAAQ7S,WAAW,SAASg5H,GAAanmH,EAAQjU,MAAM,GAAI8S,GAE/C,iBAAZmB,GAA4B0lH,GAAY7mH,EAAKzP,MAEjC,qBAAZ4Q,GAAgC6lH,GAAgBhnH,GAEpC,qBAAZmB,GAAgC8kH,KAEpB,kBAAZ9kH,GAA6B+kH,GAAkBlmH,GAEnC,kBAAZmB,GAA6Bg7G,KAEjB,mBAAZh7G,GAA8B8lH,KAElB,qBAAZ9lH,GAAgCimH,KAEpB,iBAAZjmH,GACE6iH,GAAY6C,GAAY7C,EAC9B,GACC,CACDsD,GACAT,GACAG,GACAf,GACAC,GACA/J,GACA8K,GACAG,KAGII,IAAa,IAAA9oB,cACjB,IAAOqmB,EACH,kBAAC,EAAI,CAACrmH,KAAMinH,GAAiB,sBAAwB,sBACrD,kBAAC,EAAI,CAAChpB,OAAO,QAAQj+F,KAAK,eAE9B,CAACqmH,EAAYY,MAGf,IAAA5mB,YAAU,KACRn0G,OAAO6U,iBAAiB,QAASq3G,IAAqB,GAC/C,IAAMlsH,OAAOgV,oBAAoB,QAASk3G,IAAqB,KACrE,KAEH,IAAA/X,YAAU,KACR,GAAIylB,EAAWt5H,OAAQ,CACrB,MAAMo7H,EAAY9B,EAAW10H,KAAKouF,GAAO,SACpCqnC,GAAernC,IADqB,CAEvClxD,SAAU/+B,EAAMm9B,MAAMq8F,GAAOA,EAAGj6H,KAAO0wF,EAAE1wF,SAE3C83H,EAAUgB,GACVp2E,GAAUniD,GAAQA,EAAI+B,KAAKouF,GAAMooC,EAAUr2H,MAAMy3H,GAAOA,EAAGl6H,KAAO0wF,EAAE1wF,MAAO0wF,KAC7E,MAAWtuF,EAAO1E,QAChBo6H,EAAU,GACZ,GACC,CAACd,KAEJ,IAAAzlB,YAAU,KACR,MAAMzrF,EAAW+xG,GAAiBd,EAAW30H,GAC7CsgD,EAAS58B,GACTgyG,GAAWqC,GAASA,EAAK73H,KAAKouF,GAAO,SAChCqnC,GAAernC,IADiB,CAEnClxD,SAAU1Z,EAAS8X,MAAMs8F,GAAOA,EAAGl6H,KAAO0wF,EAAE1wF,UAC1C,GACH,CAAC+2H,KAEJ,IAAAxlB,YAAU,KACR,IAAKgmB,EAAY,MAAO,OAExB,MAAM6C,EAAgBxC,EAAmB5mB,QAAQr5E,cAAc,kCACzD0iG,EAAe,KACnBD,EAAchkE,UAAYgkE,EAAcnxC,YAAY,EAGhDqxC,EAAY,IAAIC,iBAAiBF,GACjCG,EAAY,IAAI5uC,eAAeyuC,GAKrC,OAHAC,EAAU5tC,QAAQ0tC,EAAe,CAAEtiH,YAAY,EAAM2iH,WAAW,EAAMC,SAAS,IAC/EF,EAAU9tC,QAAQ0tC,GAEX,KACLE,EAAU1tC,aACV4tC,EAAU5tC,YAAY,CACvB,IAGH,MAAMymC,GAAiBmF,KACjBmC,GAAuB,CAC3B,gCACApD,GAAc,cACd,mCAAkCY,GAAiB,WAAa,cAChEx4H,KAAK,KAEP,OACE,kBAAC,aACCuwG,IAAKynB,EACLxjG,SAAUriB,EAAW,KAAO,IAC5B8oH,eAxJJ,SAAwBt0H,GACtB,IAAKwL,EAAU,OACf,IAAKylH,EAEH,YADAjxH,EAAEiK,kBAIJ,MAAMwgH,EAAiB4G,EAAQ3mB,QAAQr5E,cAAc,4CAChDo5F,IAEoBA,IAAmBzqH,EAAE1E,QAAUmvH,EAAej4G,SAASxS,EAAE1E,SAC3D0E,EAAEiK,kBAC3B,GA6IQ8rG,GAJL,CAKCtyG,UA3UK,CACLs7G,EACA,iBACA,mBACGkT,MACFv6H,GAASq6H,KAAyB,YACnC7W,GAAc,kCACd1vG,GAAY,WACZylH,GAAc,kBACdpkH,OAAO4uB,SAASpiC,KAAK,OAoUpB85B,GACC,kBAAC,SAAMzvB,MAAO,CAAEy3G,UAAWD,GAAc,SAAW/nF,IAEpD/P,GACA,kBAAC,OACC3f,UAAU,4BACVC,MAAO,CAAEy3G,UAAW,eAAeD,cAEnC,kBAAC,OAAIz3G,UAAU,mBAAmBmmG,IAAK0nB,GACrC,kBAAC,OACC7tH,UAAW4wH,GACX5qB,QAAS0oB,GACTx0G,KAAK,QAEL,kBAAC,IACCxjB,QACA2C,MACA6pG,OACAuoB,gBACAC,eACA7B,oBACA9nE,cACAh6C,WACA6jH,gBACAD,cACAhxG,MAAOokG,GACPhwB,aACApvE,cAGH8tG,GACC,kBAAC,OACCztH,UAAW,2CAA0CouH,GAAiB,qDAAuD,IAC7Hl0G,KAAK,SACLkQ,SAAUriB,GAAY,EAAI,EAC1Bi+F,QAAS8pB,GACTpd,UAAWod,IAEVG,OAINlR,MAAc7b,GAAQomB,GAAe31H,OAAS,IAC7C,kBAAC,UACCiN,QAASitH,EACT1sF,KAAK,eACLnhC,UAAW,mDAAmDwuH,KAAkB54H,KAAK,OACrFuwG,IAAKge,EACLlP,YAAY,YACRsY,GANL,CAOCpY,2BAECiY,EACCA,EAAW9D,GAAgB,CACzBpmB,OACAspB,cACAC,aACAF,UACA7L,YAAa3xB,KAGf,kBAAC,IACCw9B,UACAI,aACAt0H,OAAQixH,GACRpmB,OACAspB,cACAC,aACA19B,aACA29B,iBACAluG,eAKP4iG,GACC,kBAAC,KAAEphH,UAAU,gCAAgCohH,IAE5CntH,GAAmB,SAAVA,GAA8B,UAAVA,GAAsB+jC,QAAQs2F,MAC5D,kBAAC,KAAEtuH,UAAU,mCAAmC/L,GAASq6H,KAI9D3uG,GACC,kBAAC,WACC,kBAAC,IACCjpB,QACAwsG,OACAyoB,cACAhsG,cAMZ,CAEAotG,GAAUvnB,UAAY,CAEpBqkB,kBAAmB,SAGnB0B,oBAAqB,gBAErBL,WAAY,SAEZS,YAAa,SAEbe,eAAgB,SAEhBU,WAAY,SACZrlH,SAAU,SAEV4X,SAAU,SACV1rB,MAAO,WACPy7B,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEF+nF,WAAY,WAEZp+G,IAAK,WAELyuH,SAAU,SACV1G,KAAM,cAAoB,CACxB,SACA,YACA,aAMFkM,eAAgB,SAChBntF,SAAU,SACV4hB,YAAa,WAGbmhD,KAAM,SAENuoB,cAAe,YAAkB,YAGjCC,aAAc,SACdnkG,MAAO,WAGP7wB,MAAO,cAAoB,CACzB,WACA,eAAqB+B,OACrB,eAAqB/D,UAGvB2D,OAAQ,eAAqBI,OAE7B80H,wBAAyB,eAAqB74H,QAG9Ck3H,cAAe,UAAgB,CAAC,SAAU,aAM1C4B,WAAY,SAEZrY,uBAAwB,eAAqBzgH,QAE7C+4H,uBAAwB,SAexBjvG,UAAW,cAAoB,CAC7B,SACA,UAAgB,CACdkR,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEFwF,KAAM,UAAgB,CAAC,SAAU,aACjC1N,KAAM,UAAgB,CAAC,SAAU,iBACjCiqF,OAAQ,aAIZsT,cAAe,SAEf4H,WAAY,SAGZe,SAAU,SAIVC,iBAAkB,SAClBrS,iBAAkB,YAGpB,YAEA,SAAS0S,GAAet3H,EAAO2B,GAC7B,IAAIsuF,EAAIjwF,EAGR,GAFqB,iBAAVA,EAAoBiwF,EAAI,CAAE1wF,GAAIS,EAAOH,KAAMG,GAC5CA,EAAM6U,eAAe,UAASo7E,EAAI,SAAKjwF,GAAL,CAAYH,KAAMG,EAAMT,OAC/DoC,EAAQ,OAAOsuF,EACpB,MAAMmqC,EAAcz4H,EAAOK,MAAMgqB,GAAOA,EAAGzsB,KAAO0wF,EAAE1wF,KACpD,OAAO66H,EAAc,SAAKnqC,GAAMmqC,GAAgBnqC,CAClD,CAEA,SAASmnC,GAAiBp3H,EAAO2B,GAC/B,OAAK3B,EACD+B,MAAMoB,QAAQnD,GAAeA,EAAM6B,KAAKouF,GAAMqnC,GAAernC,EAAGtuF,KAC7D,CAAC21H,GAAet3H,EAAO2B,IAFX,EAGrB,CCxoBA,MAAM,GAA+BnD,QAAQ,sTCS7C,SAAS67H,IAAW,SAClBjpE,EAAQ,SACR//C,EAAQ,SACR4X,GAAW,EAAK,MAChB1rB,EAAK,GACLgC,EAAE,MACFy5B,EAAK,WACL+nF,EAAU,KACV2J,EAAI,QACJhW,EAAO,SACPjrE,EAAQ,OACR6wF,EAAM,MACNzpG,EAAK,OACLla,EAAS,CAAC,EAAC,MACX3W,EAAK,iBACL4kH,EAAmB,KAEnB,MAAO2V,EAAgBC,IAAqB,IAAA7qB,UAAS,MAC/C8qB,GAAU,IAAA5pB,QAAO,MAEjBijB,EAAY,GAAY9zH,GAExB06H,GAAkB,IAAAjqB,cAAY,CAACkqB,EAAUC,KAC7C,IAAKD,EAAU,OAAO,EACtB,IAAK54H,MAAMoB,QAAQy3H,GAAc,OAAOD,EAASE,YAAcD,EAAYC,UAE3E,IAAIC,EAAYF,EAEhB,OAAID,GAAYC,EAAY39H,QAAU09H,EAAS19H,QAC7C69H,EAAYF,EAAYloH,QAAO,CAACqoH,EAAMz5H,IAAUy5H,EAAKF,YAAcF,EAASr5H,GAAOu5H,YAE5EC,EAAU79H,OAAS,GAGrB29H,EAAY39H,OAAS,CAAC,GAC5B,IAEG+9H,GAAe,IAAAvqB,cAAawqB,IAChC,MAAMtC,EAA6B,UAAhBhiH,EAAO6nB,KAAmBy8F,EAAYA,EAAU,IAAM,KAEpExxF,IAEe,UAAhB9yB,EAAO6nB,KACiB,IAAtBm6F,EAAW17H,QAAgBy9H,EAAgB5G,EAAW6E,IACxDlvF,EAASkvF,GAGXlvF,EAASkvF,GACX,GACC,CAAC7E,EAAWrqF,EAAUixF,KAEzB,IAAA5pB,YAAU,KACR,GAAI2pB,EAAQlqB,UAAYgqB,EAAgB,CACtC,MAAMW,EAAW,KAAUT,EAAQlqB,oIAAS,IACvC55F,WADuC,CAC/BwkH,YAAan7H,EAAOypC,SAAUuxF,EAActmB,UAAS4lB,cAElEE,EAAkBU,EACpB,OAEA,MAAO,KACDX,GACFA,EAAen+G,SACjB,CACD,GACA,CAACm+G,KAEJ,IAAAzpB,YAAU,KACR,GAAIypB,EAAgB,CAClB,IAAIxG,EAAY/zH,EAEK,iBAAVA,EACT+zH,EAAY,IAAIjzG,KAAK9gB,GACZ+B,MAAMoB,QAAQnD,KACvB+zH,EAAY/zH,EAAM6B,KAAKk5H,GAAS,IAAIj6G,KAAKi6G,MAGvCL,EAAgB5G,EAAWC,KAC7BwG,EAAetnH,IAAI,WAAY+nH,GACX,UAAhBrkH,EAAO6nB,KACLu1F,GAAkC,IAArBA,EAAU92H,QACzBs9H,EAAea,QAAQrH,GAAW,GAGpCwG,EAAea,QAAQrH,GAAW,GAGxC,IACC,CAACD,EAAW9zH,EAAOu6H,IAEtB,MAAM5vH,EAAU,CACd,iBACA,8BACAi6G,KACI/zF,EAAQA,EAAM9xB,MAAM,KAAK8C,KAAK2iB,GAAM,mBAAmBA,MAAO,GAClEu8F,GAAc,kCACdxjH,GAAS,aACTmV,OAAO4uB,SAASpiC,KAAK,KAYjBm8H,GAAe,IAAA5qB,cAAY,KAC1B8pB,GAELA,EAAe/rH,MAAM,GACpB,CAAC+rH,IAqDJ,OACE,qCAEI,MAAAnpE,OAAA,EAAAA,EAAUn0D,QACNm0D,EAAS,CAAEiqE,eAAc5rB,IAAKgrB,IAE9B,kBAAC,OAAInxH,UAAWqB,GAEZquB,EACI,kBAAC,SAAM+3F,QAASxxH,EAAIgK,MA3EhCw3G,EAAmB,CAAEC,UAAWD,GAC7B,CAAC,GA0EuD/nF,GAC/C,MAEJ/P,GACA,kBAAC,OACC3f,UAAU,sCACVC,MA5EVw3G,EAAmB,CAAEC,UAAW,eAAeD,aAC5C,CAAC,GA6EM,kBAAC,OAAIz3G,UAAU,mBA1DT,MACpB,IAAIgyH,EAAa,CAAC,EACdC,EAAa,CAAC,EAclB,OAZI,MAAA5kH,OAAA,EAAAA,EAAQ2M,UACVg4G,EAAa,CACX/uH,OAAQ,EACRm8D,QAAS,EACTr8D,MAAO,EACPo/E,WAAY,UAGd8vC,EAAa,CACX/uH,QAAS,SAIX,oCACE,kBAAC,SACC6E,WACA/H,UAAU,mBACV,cAAU,EACVmH,KAAK,OACLg/F,IAAKgrB,EACLlxH,MAAO+xH,IAET,kBAAC,OACChyH,UAAU,yBACVgmG,QAAS+rB,EACT73G,KAAK,SACL63F,QAAS,OACT3nF,SAAU,EACVnqB,MAAOgyH,EACP,aAAW,iBAEX,kBAAC,EAAI,CAAC9qH,KAAK,cAEf,EAsBe+qH,IAGD9Q,EACI,kBAAC,KAAEphH,UAAU,gCAAiCohH,GAC9C,KAzEnBntH,GAAmB,SAAVA,GAA8B,UAAVA,EAE1B,kBAAC,KAAE+L,UAAU,mCACT/L,GAGJ,OA2EF,kBAAC,OAAI+L,UAAU,8BACZ2f,IAAajpB,GAAS,IACtBipB,GAAYjpB,GAAS,gBAAqBA,EAAO2W,EAAO8kH,YAAc,UAI/E,CAEApB,GAAWvrB,UAAY,CACrBn4F,OAAQ,eAAqB3Y,QAC7BozD,SAAU,cAAoB,CAC5B,YACA,SACA,WACA,WAEF//C,SAAU,SACV4X,SAAU,SACV1pB,GAAI,WACJy5B,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEF+nF,WAAY,WACZ2J,KAAM,WACNjhF,SAAU,cAAoB,CAC5B,SACA,eAAqB1nC,SAEvB2yG,QAAS,cAAoB,CAC3B,SACA,eAAqB3yG,SAEvBu4H,OAAQ,cAAoB,CAC1B,SACA,eAAqBv4H,SAEvB8uB,MAAO,WACPtzB,MAAO,WACPyC,MAAO,cAAoB,CACzB,eAAqB+B,OACrB,eAAqB/D,QACrB,aAEF4mH,iBAAkB,YAGpB,YC/Pe,SAAS8W,GAAQ95H,GAG9B,OAAO85H,GAAU,mBAAqB7rG,QAAU,iBAAmBA,OAAOC,SAAW,SAAUluB,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAK,mBAAqBiuB,QAAUjuB,EAAE6N,cAAgBogB,QAAUjuB,IAAMiuB,OAAO5xB,UAAY,gBAAkB2D,CACpH,EAAG85H,GAAQ95H,EACb,CCRe,SAAS+5H,GAAa3E,EAAUxyF,GAC7C,GAAIA,EAAKvnC,OAAS+5H,EAChB,MAAM,IAAI51H,UAAU41H,EAAW,aAAeA,EAAW,EAAI,IAAM,IAAM,uBAAyBxyF,EAAKvnC,OAAS,WAEpH,CC8Be,SAAS2+H,GAAO57H,GAE7B,OADA27H,GAAa,EAAG3+H,WACTgD,aAAiB8gB,MAA2B,WAAnB46G,GAAQ17H,IAAiE,kBAA1ChC,OAAOC,UAAUC,SAASC,KAAK6B,EAChG,CCLe,SAAS67H,GAAOC,GAC7BH,GAAa,EAAG3+H,WAChB,IAAI++H,EAAS/9H,OAAOC,UAAUC,SAASC,KAAK29H,GAG5C,OAAIA,aAAoBh7G,MAA8B,WAAtB46G,GAAQI,IAAqC,kBAAXC,EAEzD,IAAIj7G,KAAKg7G,EAASjB,WACI,iBAAbiB,GAAoC,oBAAXC,EAClC,IAAIj7G,KAAKg7G,IAES,iBAAbA,GAAoC,oBAAXC,GAAoD,oBAAZz+H,UAE3EA,QAAQwV,KAAK,sNAEbxV,QAAQwV,MAAK,IAAId,OAAQkjC,QAEpB,IAAIp0B,KAAKk7G,KAEpB,CCnDe,SAASC,GAAUC,GAChC,GAAoB,OAAhBA,IAAwC,IAAhBA,IAAwC,IAAhBA,EAClD,OAAOF,IAET,IAAI74G,EAASR,OAAOu5G,GACpB,OAAInjE,MAAM51C,GACDA,EAEFA,EAAS,EAAIzgB,KAAK4lE,KAAKnlD,GAAUzgB,KAAKk8C,MAAMz7B,EACrD,CCPe,SAASg5G,GAAkBC,GACxCT,GAAa,EAAG3+H,WAChB,IACI+9H,EAAOc,GAAOO,GACdC,EAAMtB,EAAKuB,YACXh0E,GAAQ+zE,EAHO,EAGc,EAAI,GAAKA,EAHvB,EAMnB,OAFAtB,EAAKwB,WAAWxB,EAAKyB,aAAel0E,GACpCyyE,EAAK0B,YAAY,EAAG,EAAG,EAAG,GACnB1B,CACT,CCRe,SAAS2B,GAAkBN,GACxCT,GAAa,EAAG3+H,WAChB,IAAI+9H,EAAOc,GAAOO,GACdO,EAAO5B,EAAK6B,iBACZC,EAA4B,IAAI/7G,KAAK,GACzC+7G,EAA0BC,eAAeH,EAAO,EAAG,EAAG,GACtDE,EAA0BJ,YAAY,EAAG,EAAG,EAAG,GAC/C,IAAIM,EAAkBZ,GAAkBU,GACpCG,EAA4B,IAAIl8G,KAAK,GACzCk8G,EAA0BF,eAAeH,EAAM,EAAG,GAClDK,EAA0BP,YAAY,EAAG,EAAG,EAAG,GAC/C,IAAIQ,EAAkBd,GAAkBa,GACxC,OAAIjC,EAAKF,WAAakC,EAAgBlC,UAC7B8B,EAAO,EACL5B,EAAKF,WAAaoC,EAAgBpC,UACpC8B,EAEAA,EAAO,CAElB,CCtBA,IAAIO,GAAiB,CAAC,EACf,SAASC,KACd,OAAOD,EACT,CCCe,SAASE,GAAehB,EAAWjzH,GAChD,IAAIk0H,EAAMC,EAAOC,EAAOC,EAAuBC,EAAiBC,EAAuBC,EAAuBC,EAC9GjC,GAAa,EAAG3+H,WAChB,IAAIkgI,EAAiBC,KACjBU,EAAe5B,GAA+0B,QAAp0BoB,EAA8hB,QAAthBC,EAAkd,QAAzcC,EAA6G,QAApGC,EAAwBr0H,aAAyC,EAASA,EAAQ00H,oBAAoD,IAA1BL,EAAmCA,EAAwBr0H,SAAyF,QAAtCs0H,EAAkBt0H,EAAQ20H,cAAwC,IAApBL,GAA4F,QAArDC,EAAwBD,EAAgBt0H,eAA+C,IAA1Bu0H,OAA5J,EAAwMA,EAAsBG,oBAAoC,IAAVN,EAAmBA,EAAQL,EAAeW,oBAAoC,IAAVP,EAAmBA,EAA4D,QAAnDK,EAAwBT,EAAeY,cAA8C,IAA1BH,GAAyG,QAA5DC,EAAyBD,EAAsBx0H,eAAgD,IAA3By0H,OAA9E,EAA2HA,EAAuBC,oBAAmC,IAATR,EAAkBA,EAAO,GAGn4B,KAAMQ,GAAgB,GAAKA,GAAgB,GACzC,MAAM,IAAIE,WAAW,oDAEvB,IAAIhD,EAAOc,GAAOO,GACdC,EAAMtB,EAAKuB,YACXh0E,GAAQ+zE,EAAMwB,EAAe,EAAI,GAAKxB,EAAMwB,EAGhD,OAFA9C,EAAKwB,WAAWxB,EAAKyB,aAAel0E,GACpCyyE,EAAK0B,YAAY,EAAG,EAAG,EAAG,GACnB1B,CACT,CCfe,SAASiD,GAAe5B,EAAWjzH,GAChD,IAAIk0H,EAAMC,EAAOC,EAAOU,EAAuBR,EAAiBC,EAAuBC,EAAuBC,EAC9GjC,GAAa,EAAG3+H,WAChB,IAAI+9H,EAAOc,GAAOO,GACdO,EAAO5B,EAAK6B,iBACZM,EAAiBC,KACjBe,EAAwBjC,GAAm3B,QAAx2BoB,EAAyjB,QAAjjBC,EAAoe,QAA3dC,EAAsH,QAA7GU,EAAwB90H,aAAyC,EAASA,EAAQ+0H,6BAA6D,IAA1BD,EAAmCA,EAAwB90H,SAAyF,QAAtCs0H,EAAkBt0H,EAAQ20H,cAAwC,IAApBL,GAA4F,QAArDC,EAAwBD,EAAgBt0H,eAA+C,IAA1Bu0H,OAA5J,EAAwMA,EAAsBQ,6BAA6C,IAAVX,EAAmBA,EAAQL,EAAegB,6BAA6C,IAAVZ,EAAmBA,EAA4D,QAAnDK,EAAwBT,EAAeY,cAA8C,IAA1BH,GAAyG,QAA5DC,EAAyBD,EAAsBx0H,eAAgD,IAA3By0H,OAA9E,EAA2HA,EAAuBM,6BAA4C,IAATb,EAAkBA,EAAO,GAGh7B,KAAMa,GAAyB,GAAKA,GAAyB,GAC3D,MAAM,IAAIH,WAAW,6DAEvB,IAAII,EAAsB,IAAIr9G,KAAK,GACnCq9G,EAAoBrB,eAAeH,EAAO,EAAG,EAAGuB,GAChDC,EAAoB1B,YAAY,EAAG,EAAG,EAAG,GACzC,IAAIM,EAAkBK,GAAee,EAAqBh1H,GACtDi1H,EAAsB,IAAIt9G,KAAK,GACnCs9G,EAAoBtB,eAAeH,EAAM,EAAGuB,GAC5CE,EAAoB3B,YAAY,EAAG,EAAG,EAAG,GACzC,IAAIQ,EAAkBG,GAAegB,EAAqBj1H,GAC1D,OAAI4xH,EAAKF,WAAakC,EAAgBlC,UAC7B8B,EAAO,EACL5B,EAAKF,WAAaoC,EAAgBpC,UACpC8B,EAEAA,EAAO,CAElB,CChCe,SAAS0B,GAAgBl7G,EAAQm7G,GAG9C,IAFA,IAAIC,EAAOp7G,EAAS,EAAI,IAAM,GAC1B9hB,EAASqB,KAAK4b,IAAI6E,GAAQjlB,WACvBmD,EAAOpE,OAASqhI,GACrBj9H,EAAS,IAAMA,EAEjB,OAAOk9H,EAAOl9H,CAChB,CCwEA,SAhEK,SAAW05H,EAAMzmF,GAUlB,IAAIkqF,EAAazD,EAAK6B,iBAElBD,EAAO6B,EAAa,EAAIA,EAAa,EAAIA,EAC7C,OAAOH,GAA0B,OAAV/pF,EAAiBqoF,EAAO,IAAMA,EAAMroF,EAAMr3C,OACnE,EAkDF,GAhDK,SAAW89H,EAAMzmF,GAClB,IAAImqF,EAAQ1D,EAAK2D,cACjB,MAAiB,MAAVpqF,EAAgBl0C,OAAOq+H,EAAQ,GAAKJ,GAAgBI,EAAQ,EAAG,EACxE,EA6CF,GA3CK,SAAW1D,EAAMzmF,GAClB,OAAO+pF,GAAgBtD,EAAKyB,aAAcloF,EAAMr3C,OAClD,EAyCF,GAvBK,SAAW89H,EAAMzmF,GAClB,OAAO+pF,GAAgBtD,EAAK4D,cAAgB,IAAM,GAAIrqF,EAAMr3C,OAC9D,EAqBF,GAnBK,SAAW89H,EAAMzmF,GAClB,OAAO+pF,GAAgBtD,EAAK4D,cAAerqF,EAAMr3C,OACnD,EAiBF,GAfK,SAAW89H,EAAMzmF,GAClB,OAAO+pF,GAAgBtD,EAAK6D,gBAAiBtqF,EAAMr3C,OACrD,EAaF,GAXK,SAAW89H,EAAMzmF,GAClB,OAAO+pF,GAAgBtD,EAAK8D,gBAAiBvqF,EAAMr3C,OACrD,EASF,GAPK,SAAW89H,EAAMzmF,GAClB,IAAIwqF,EAAiBxqF,EAAMr3C,OACvB8hI,EAAehE,EAAKiE,qBAExB,OAAOX,GADiB37H,KAAKk8C,MAAMmgF,EAAer8H,KAAK2Y,IAAI,GAAIyjH,EAAiB,IACtCxqF,EAAMr3C,OAClD,ECtEF,IAwDI,GAAa,CAEfgiI,EAAG,SAAWlE,EAAMzmF,EAAO4qF,GACzB,IAAIC,EAAMpE,EAAK6B,iBAAmB,EAAI,EAAI,EAC1C,OAAQtoF,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAO4qF,EAASC,IAAIA,EAAK,CACvB9yH,MAAO,gBAGX,IAAK,QACH,OAAO6yH,EAASC,IAAIA,EAAK,CACvB9yH,MAAO,WAIX,QACE,OAAO6yH,EAASC,IAAIA,EAAK,CACvB9yH,MAAO,SAGf,EAEAygB,EAAG,SAAWiuG,EAAMzmF,EAAO4qF,GAEzB,GAAc,OAAV5qF,EAAgB,CAClB,IAAIkqF,EAAazD,EAAK6B,iBAElBD,EAAO6B,EAAa,EAAIA,EAAa,EAAIA,EAC7C,OAAOU,EAASE,cAAczC,EAAM,CAClC0C,KAAM,QAEV,CACA,OAAOC,GAAkBvE,EAAMzmF,EACjC,EAEAirF,EAAG,SAAWxE,EAAMzmF,EAAO4qF,EAAU/1H,GACnC,IAAIq2H,EAAiBxB,GAAejD,EAAM5xH,GAEtCs2H,EAAWD,EAAiB,EAAIA,EAAiB,EAAIA,EAGzD,MAAc,OAAVlrF,EAEK+pF,GADYoB,EAAW,IACO,GAIzB,OAAVnrF,EACK4qF,EAASE,cAAcK,EAAU,CACtCJ,KAAM,SAKHhB,GAAgBoB,EAAUnrF,EAAMr3C,OACzC,EAEAupC,EAAG,SAAWu0F,EAAMzmF,GAIlB,OAAO+pF,GAHW3B,GAAkB3B,GAGAzmF,EAAMr3C,OAC5C,EAUAiwF,EAAG,SAAW6tC,EAAMzmF,GAElB,OAAO+pF,GADItD,EAAK6B,iBACatoF,EAAMr3C,OACrC,EAEAyiI,EAAG,SAAW3E,EAAMzmF,EAAO4qF,GACzB,IAAIS,EAAUj9H,KAAK4lE,MAAMyyD,EAAK2D,cAAgB,GAAK,GACnD,OAAQpqF,GAEN,IAAK,IACH,OAAOl0C,OAAOu/H,GAEhB,IAAK,KACH,OAAOtB,GAAgBsB,EAAS,GAElC,IAAK,KACH,OAAOT,EAASE,cAAcO,EAAS,CACrCN,KAAM,YAGV,IAAK,MACH,OAAOH,EAASS,QAAQA,EAAS,CAC/BtzH,MAAO,cACP8b,QAAS,eAGb,IAAK,QACH,OAAO+2G,EAASS,QAAQA,EAAS,CAC/BtzH,MAAO,SACP8b,QAAS,eAIb,QACE,OAAO+2G,EAASS,QAAQA,EAAS,CAC/BtzH,MAAO,OACP8b,QAAS,eAGjB,EAEAqxE,EAAG,SAAWuhC,EAAMzmF,EAAO4qF,GACzB,IAAIS,EAAUj9H,KAAK4lE,MAAMyyD,EAAK2D,cAAgB,GAAK,GACnD,OAAQpqF,GAEN,IAAK,IACH,OAAOl0C,OAAOu/H,GAEhB,IAAK,KACH,OAAOtB,GAAgBsB,EAAS,GAElC,IAAK,KACH,OAAOT,EAASE,cAAcO,EAAS,CACrCN,KAAM,YAGV,IAAK,MACH,OAAOH,EAASS,QAAQA,EAAS,CAC/BtzH,MAAO,cACP8b,QAAS,eAGb,IAAK,QACH,OAAO+2G,EAASS,QAAQA,EAAS,CAC/BtzH,MAAO,SACP8b,QAAS,eAIb,QACE,OAAO+2G,EAASS,QAAQA,EAAS,CAC/BtzH,MAAO,OACP8b,QAAS,eAGjB,EAEAy3G,EAAG,SAAW7E,EAAMzmF,EAAO4qF,GACzB,IAAIT,EAAQ1D,EAAK2D,cACjB,OAAQpqF,GACN,IAAK,IACL,IAAK,KACH,OAAOgrF,GAAkBvE,EAAMzmF,GAEjC,IAAK,KACH,OAAO4qF,EAASE,cAAcX,EAAQ,EAAG,CACvCY,KAAM,UAGV,IAAK,MACH,OAAOH,EAAST,MAAMA,EAAO,CAC3BpyH,MAAO,cACP8b,QAAS,eAGb,IAAK,QACH,OAAO+2G,EAAST,MAAMA,EAAO,CAC3BpyH,MAAO,SACP8b,QAAS,eAIb,QACE,OAAO+2G,EAAST,MAAMA,EAAO,CAC3BpyH,MAAO,OACP8b,QAAS,eAGjB,EAEAoe,EAAG,SAAWw0F,EAAMzmF,EAAO4qF,GACzB,IAAIT,EAAQ1D,EAAK2D,cACjB,OAAQpqF,GAEN,IAAK,IACH,OAAOl0C,OAAOq+H,EAAQ,GAExB,IAAK,KACH,OAAOJ,GAAgBI,EAAQ,EAAG,GAEpC,IAAK,KACH,OAAOS,EAASE,cAAcX,EAAQ,EAAG,CACvCY,KAAM,UAGV,IAAK,MACH,OAAOH,EAAST,MAAMA,EAAO,CAC3BpyH,MAAO,cACP8b,QAAS,eAGb,IAAK,QACH,OAAO+2G,EAAST,MAAMA,EAAO,CAC3BpyH,MAAO,SACP8b,QAAS,eAIb,QACE,OAAO+2G,EAAST,MAAMA,EAAO,CAC3BpyH,MAAO,OACP8b,QAAS,eAGjB,EAEA+X,EAAG,SAAW66F,EAAMzmF,EAAO4qF,EAAU/1H,GACnC,IAAI02H,ECzRO,SAAoBzD,EAAWjzH,GAC5CwyH,GAAa,EAAG3+H,WAChB,IAAI+9H,EAAOc,GAAOO,GACd9zE,EAAO80E,GAAerC,EAAM5xH,GAAS0xH,UCH5B,SAA4BuB,EAAWjzH,GACpD,IAAIk0H,EAAMC,EAAOC,EAAOU,EAAuBR,EAAiBC,EAAuBC,EAAuBC,EAC9GjC,GAAa,EAAG3+H,WAChB,IAAIkgI,EAAiBC,KACjBe,EAAwBjC,GAAm3B,QAAx2BoB,EAAyjB,QAAjjBC,EAAoe,QAA3dC,EAAsH,QAA7GU,EAAwB90H,aAAyC,EAASA,EAAQ+0H,6BAA6D,IAA1BD,EAAmCA,EAAwB90H,SAAyF,QAAtCs0H,EAAkBt0H,EAAQ20H,cAAwC,IAApBL,GAA4F,QAArDC,EAAwBD,EAAgBt0H,eAA+C,IAA1Bu0H,OAA5J,EAAwMA,EAAsBQ,6BAA6C,IAAVX,EAAmBA,EAAQL,EAAegB,6BAA6C,IAAVZ,EAAmBA,EAA4D,QAAnDK,EAAwBT,EAAeY,cAA8C,IAA1BH,GAAyG,QAA5DC,EAAyBD,EAAsBx0H,eAAgD,IAA3By0H,OAA9E,EAA2HA,EAAuBM,6BAA4C,IAATb,EAAkBA,EAAO,GAC56BV,EAAOqB,GAAe5B,EAAWjzH,GACjC22H,EAAY,IAAIh/G,KAAK,GAIzB,OAHAg/G,EAAUhD,eAAeH,EAAM,EAAGuB,GAClC4B,EAAUrD,YAAY,EAAG,EAAG,EAAG,GACpBW,GAAe0C,EAAW32H,EAEvC,CDRuD42H,CAAmBhF,EAAM5xH,GAAS0xH,UAKvF,OAAOn4H,KAAKuL,MAAMq6C,EATO,QASwB,CACnD,CDgRe03E,CAAWjF,EAAM5xH,GAC5B,MAAc,OAAVmrC,EACK4qF,EAASE,cAAcS,EAAM,CAClCR,KAAM,SAGHhB,GAAgBwB,EAAMvrF,EAAMr3C,OACrC,EAEAgjI,EAAG,SAAWlF,EAAMzmF,EAAO4qF,GACzB,IAAIgB,EGnSO,SAAuB9D,GACpCT,GAAa,EAAG3+H,WAChB,IAAI+9H,EAAOc,GAAOO,GACd9zE,EAAO6zE,GAAkBpB,GAAMF,UCLtB,SAA+BuB,GAC5CT,GAAa,EAAG3+H,WAChB,IAAI2/H,EAAOD,GAAkBN,GACzB+D,EAAkB,IAAIr/G,KAAK,GAI/B,OAHAq/G,EAAgBrD,eAAeH,EAAM,EAAG,GACxCwD,EAAgB1D,YAAY,EAAG,EAAG,EAAG,GAC1BN,GAAkBgE,EAE/B,CDHiDC,CAAsBrF,GAAMF,UAK3E,OAAOn4H,KAAKuL,MAAMq6C,EATO,QASwB,CACnD,CH0RkB+3E,CAActF,GAC5B,MAAc,OAAVzmF,EACK4qF,EAASE,cAAcc,EAAS,CACrCb,KAAM,SAGHhB,GAAgB6B,EAAS5rF,EAAMr3C,OACxC,EAEAsyB,EAAG,SAAWwrG,EAAMzmF,EAAO4qF,GACzB,MAAc,OAAV5qF,EACK4qF,EAASE,cAAcrE,EAAKyB,aAAc,CAC/C6C,KAAM,SAGHC,GAAkBvE,EAAMzmF,EACjC,EAEAgsF,EAAG,SAAWvF,EAAMzmF,EAAO4qF,GACzB,IAAIqB,EKxTO,SAAyBnE,GACtCT,GAAa,EAAG3+H,WAChB,IAAI+9H,EAAOc,GAAOO,GACdoE,EAAYzF,EAAKF,UACrBE,EAAK0F,YAAY,EAAG,GACpB1F,EAAK0B,YAAY,EAAG,EAAG,EAAG,GAC1B,IACIiE,EAAaF,EADUzF,EAAKF,UAEhC,OAAOn4H,KAAKk8C,MAAM8hF,EATM,OAS8B,CACxD,CL+SoBC,CAAgB5F,GAChC,MAAc,OAAVzmF,EACK4qF,EAASE,cAAcmB,EAAW,CACvClB,KAAM,cAGHhB,GAAgBkC,EAAWjsF,EAAMr3C,OAC1C,EAEA2jI,EAAG,SAAW7F,EAAMzmF,EAAO4qF,GACzB,IAAI2B,EAAY9F,EAAKuB,YACrB,OAAQhoF,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAO4qF,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,cACP8b,QAAS,eAGb,IAAK,QACH,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,SACP8b,QAAS,eAGb,IAAK,SACH,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,QACP8b,QAAS,eAIb,QACE,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,OACP8b,QAAS,eAGjB,EAEAtiB,EAAG,SAAWk1H,EAAMzmF,EAAO4qF,EAAU/1H,GACnC,IAAI03H,EAAY9F,EAAKuB,YACjBwE,GAAkBD,EAAY13H,EAAQ00H,aAAe,GAAK,GAAK,EACnE,OAAQvpF,GAEN,IAAK,IACH,OAAOl0C,OAAO0gI,GAEhB,IAAK,KACH,OAAOzC,GAAgByC,EAAgB,GAEzC,IAAK,KACH,OAAO5B,EAASE,cAAc0B,EAAgB,CAC5CzB,KAAM,QAEV,IAAK,MACH,OAAOH,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,cACP8b,QAAS,eAGb,IAAK,QACH,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,SACP8b,QAAS,eAGb,IAAK,SACH,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,QACP8b,QAAS,eAIb,QACE,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,OACP8b,QAAS,eAGjB,EAEA+d,EAAG,SAAW60F,EAAMzmF,EAAO4qF,EAAU/1H,GACnC,IAAI03H,EAAY9F,EAAKuB,YACjBwE,GAAkBD,EAAY13H,EAAQ00H,aAAe,GAAK,GAAK,EACnE,OAAQvpF,GAEN,IAAK,IACH,OAAOl0C,OAAO0gI,GAEhB,IAAK,KACH,OAAOzC,GAAgByC,EAAgBxsF,EAAMr3C,QAE/C,IAAK,KACH,OAAOiiI,EAASE,cAAc0B,EAAgB,CAC5CzB,KAAM,QAEV,IAAK,MACH,OAAOH,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,cACP8b,QAAS,eAGb,IAAK,QACH,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,SACP8b,QAAS,eAGb,IAAK,SACH,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,QACP8b,QAAS,eAIb,QACE,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,OACP8b,QAAS,eAGjB,EAEA9pB,EAAG,SAAW08H,EAAMzmF,EAAO4qF,GACzB,IAAI2B,EAAY9F,EAAKuB,YACjByE,EAA6B,IAAdF,EAAkB,EAAIA,EACzC,OAAQvsF,GAEN,IAAK,IACH,OAAOl0C,OAAO2gI,GAEhB,IAAK,KACH,OAAO1C,GAAgB0C,EAAczsF,EAAMr3C,QAE7C,IAAK,KACH,OAAOiiI,EAASE,cAAc2B,EAAc,CAC1C1B,KAAM,QAGV,IAAK,MACH,OAAOH,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,cACP8b,QAAS,eAGb,IAAK,QACH,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,SACP8b,QAAS,eAGb,IAAK,SACH,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,QACP8b,QAAS,eAIb,QACE,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,OACP8b,QAAS,eAGjB,EAEA9kB,EAAG,SAAW03H,EAAMzmF,EAAO4qF,GACzB,IACI8B,EADQjG,EAAK4D,cACgB,IAAM,EAAI,KAAO,KAClD,OAAQrqF,GACN,IAAK,IACL,IAAK,KACH,OAAO4qF,EAAS+B,UAAUD,EAAoB,CAC5C30H,MAAO,cACP8b,QAAS,eAEb,IAAK,MACH,OAAO+2G,EAAS+B,UAAUD,EAAoB,CAC5C30H,MAAO,cACP8b,QAAS,eACRrhB,cACL,IAAK,QACH,OAAOo4H,EAAS+B,UAAUD,EAAoB,CAC5C30H,MAAO,SACP8b,QAAS,eAGb,QACE,OAAO+2G,EAAS+B,UAAUD,EAAoB,CAC5C30H,MAAO,OACP8b,QAAS,eAGjB,EAEAqH,EAAG,SAAWurG,EAAMzmF,EAAO4qF,GACzB,IACI8B,EADAE,EAAQnG,EAAK4D,cASjB,OANEqC,EADY,KAAVE,EAzfA,OA2fiB,IAAVA,EA5fH,WA+feA,EAAQ,IAAM,EAAI,KAAO,KAExC5sF,GACN,IAAK,IACL,IAAK,KACH,OAAO4qF,EAAS+B,UAAUD,EAAoB,CAC5C30H,MAAO,cACP8b,QAAS,eAEb,IAAK,MACH,OAAO+2G,EAAS+B,UAAUD,EAAoB,CAC5C30H,MAAO,cACP8b,QAAS,eACRrhB,cACL,IAAK,QACH,OAAOo4H,EAAS+B,UAAUD,EAAoB,CAC5C30H,MAAO,SACP8b,QAAS,eAGb,QACE,OAAO+2G,EAAS+B,UAAUD,EAAoB,CAC5C30H,MAAO,OACP8b,QAAS,eAGjB,EAEA0e,EAAG,SAAWk0F,EAAMzmF,EAAO4qF,GACzB,IACI8B,EADAE,EAAQnG,EAAK4D,cAWjB,OAREqC,EADEE,GAAS,GA1hBN,UA4hBIA,GAAS,GA7hBX,YA+hBEA,GAAS,EAhiBb,UAGF,QAkiBG5sF,GACN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAO4qF,EAAS+B,UAAUD,EAAoB,CAC5C30H,MAAO,cACP8b,QAAS,eAEb,IAAK,QACH,OAAO+2G,EAAS+B,UAAUD,EAAoB,CAC5C30H,MAAO,SACP8b,QAAS,eAGb,QACE,OAAO+2G,EAAS+B,UAAUD,EAAoB,CAC5C30H,MAAO,OACP8b,QAAS,eAGjB,EAEA8X,EAAG,SAAW86F,EAAMzmF,EAAO4qF,GACzB,GAAc,OAAV5qF,EAAgB,CAClB,IAAI4sF,EAAQnG,EAAK4D,cAAgB,GAEjC,OADc,IAAVuC,IAAaA,EAAQ,IAClBhC,EAASE,cAAc8B,EAAO,CACnC7B,KAAM,QAEV,CACA,OAAOC,GAAkBvE,EAAMzmF,EACjC,EAEA6sF,EAAG,SAAWpG,EAAMzmF,EAAO4qF,GACzB,MAAc,OAAV5qF,EACK4qF,EAASE,cAAcrE,EAAK4D,cAAe,CAChDU,KAAM,SAGHC,GAAkBvE,EAAMzmF,EACjC,EAEA8sF,EAAG,SAAWrG,EAAMzmF,EAAO4qF,GACzB,IAAIgC,EAAQnG,EAAK4D,cAAgB,GACjC,MAAc,OAAVrqF,EACK4qF,EAASE,cAAc8B,EAAO,CACnC7B,KAAM,SAGHhB,GAAgB6C,EAAO5sF,EAAMr3C,OACtC,EAEA6E,EAAG,SAAWi5H,EAAMzmF,EAAO4qF,GACzB,IAAIgC,EAAQnG,EAAK4D,cAEjB,OADc,IAAVuC,IAAaA,EAAQ,IACX,OAAV5sF,EACK4qF,EAASE,cAAc8B,EAAO,CACnC7B,KAAM,SAGHhB,GAAgB6C,EAAO5sF,EAAMr3C,OACtC,EAEAua,EAAG,SAAWujH,EAAMzmF,EAAO4qF,GACzB,MAAc,OAAV5qF,EACK4qF,EAASE,cAAcrE,EAAK6D,gBAAiB,CAClDS,KAAM,WAGHC,GAAkBvE,EAAMzmF,EACjC,EAEAvlC,EAAG,SAAWgsH,EAAMzmF,EAAO4qF,GACzB,MAAc,OAAV5qF,EACK4qF,EAASE,cAAcrE,EAAK8D,gBAAiB,CAClDQ,KAAM,WAGHC,GAAkBvE,EAAMzmF,EACjC,EAEA+sF,EAAG,SAAWtG,EAAMzmF,GAClB,OAAOgrF,GAAkBvE,EAAMzmF,EACjC,EAEAgtF,EAAG,SAAWvG,EAAMzmF,EAAOitF,EAAWp4H,GACpC,IACIq4H,GADer4H,EAAQs4H,eAAiB1G,GACV2G,oBAClC,GAAuB,IAAnBF,EACF,MAAO,IAET,OAAQltF,GAEN,IAAK,IACH,OAAOqtF,GAAkCH,GAK3C,IAAK,OACL,IAAK,KAEH,OAAOI,GAAeJ,GAOxB,QACE,OAAOI,GAAeJ,EAAgB,KAE5C,EAEAlmH,EAAG,SAAWy/G,EAAMzmF,EAAOitF,EAAWp4H,GACpC,IACIq4H,GADer4H,EAAQs4H,eAAiB1G,GACV2G,oBAClC,OAAQptF,GAEN,IAAK,IACH,OAAOqtF,GAAkCH,GAK3C,IAAK,OACL,IAAK,KAEH,OAAOI,GAAeJ,GAOxB,QACE,OAAOI,GAAeJ,EAAgB,KAE5C,EAEAh/H,EAAG,SAAWu4H,EAAMzmF,EAAOitF,EAAWp4H,GACpC,IACIq4H,GADer4H,EAAQs4H,eAAiB1G,GACV2G,oBAClC,OAAQptF,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQutF,GAAoBL,EAAgB,KAGrD,QACE,MAAO,MAAQI,GAAeJ,EAAgB,KAEpD,EAEAM,EAAG,SAAW/G,EAAMzmF,EAAOitF,EAAWp4H,GACpC,IACIq4H,GADer4H,EAAQs4H,eAAiB1G,GACV2G,oBAClC,OAAQptF,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQutF,GAAoBL,EAAgB,KAGrD,QACE,MAAO,MAAQI,GAAeJ,EAAgB,KAEpD,EAEAh9G,EAAG,SAAWu2G,EAAMzmF,EAAOitF,EAAWp4H,GACpC,IAAI44H,EAAe54H,EAAQs4H,eAAiB1G,EAE5C,OAAOsD,GADS37H,KAAKk8C,MAAMmjF,EAAalH,UAAY,KAClBvmF,EAAMr3C,OAC1C,EAEA+kI,EAAG,SAAWjH,EAAMzmF,EAAOitF,EAAWp4H,GAGpC,OAAOk1H,IAFYl1H,EAAQs4H,eAAiB1G,GACfF,UACKvmF,EAAMr3C,OAC1C,GAEF,SAAS4kI,GAAoBj9H,EAAQq9H,GACnC,IAAI1D,EAAO35H,EAAS,EAAI,IAAM,IAC1Bs9H,EAAYx/H,KAAK4b,IAAI1Z,GACrBs8H,EAAQx+H,KAAKk8C,MAAMsjF,EAAY,IAC/BC,EAAUD,EAAY,GAC1B,GAAgB,IAAZC,EACF,OAAO5D,EAAOn+H,OAAO8gI,GAEvB,IAAIkB,EAAYH,GAAkB,GAClC,OAAO1D,EAAOn+H,OAAO8gI,GAASkB,EAAY/D,GAAgB8D,EAAS,EACrE,CACA,SAASR,GAAkC/8H,EAAQq9H,GACjD,OAAIr9H,EAAS,IAAO,GACPA,EAAS,EAAI,IAAM,KAChBy5H,GAAgB37H,KAAK4b,IAAI1Z,GAAU,GAAI,GAEhDg9H,GAAeh9H,EAAQq9H,EAChC,CACA,SAASL,GAAeh9H,EAAQq9H,GAC9B,IAAIG,EAAYH,GAAkB,GAC9B1D,EAAO35H,EAAS,EAAI,IAAM,IAC1Bs9H,EAAYx/H,KAAK4b,IAAI1Z,GAGzB,OAAO25H,EAFKF,GAAgB37H,KAAKk8C,MAAMsjF,EAAY,IAAK,GAElCE,EADR/D,GAAgB6D,EAAY,GAAI,EAEhD,CACA,YMnwBA,IAAIG,GAAoB,SAA2BC,EAASC,GAC1D,OAAQD,GACN,IAAK,IACH,OAAOC,EAAWxH,KAAK,CACrB1uH,MAAO,UAEX,IAAK,KACH,OAAOk2H,EAAWxH,KAAK,CACrB1uH,MAAO,WAEX,IAAK,MACH,OAAOk2H,EAAWxH,KAAK,CACrB1uH,MAAO,SAGX,QACE,OAAOk2H,EAAWxH,KAAK,CACrB1uH,MAAO,SAGf,EACIm2H,GAAoB,SAA2BF,EAASC,GAC1D,OAAQD,GACN,IAAK,IACH,OAAOC,EAAWj2G,KAAK,CACrBjgB,MAAO,UAEX,IAAK,KACH,OAAOk2H,EAAWj2G,KAAK,CACrBjgB,MAAO,WAEX,IAAK,MACH,OAAOk2H,EAAWj2G,KAAK,CACrBjgB,MAAO,SAGX,QACE,OAAOk2H,EAAWj2G,KAAK,CACrBjgB,MAAO,SAGf,EAkCIo2H,GAAiB,CACnB/pH,EAAG8pH,GACHE,EAnC0B,SAA+BJ,EAASC,GAClE,IAMII,EANAC,EAAcN,EAAQj7H,MAAM,cAAgB,GAC5Cw7H,EAAcD,EAAY,GAC1BE,EAAcF,EAAY,GAC9B,IAAKE,EACH,OAAOT,GAAkBC,EAASC,GAGpC,OAAQM,GACN,IAAK,IACHF,EAAiBJ,EAAWQ,SAAS,CACnC12H,MAAO,UAET,MACF,IAAK,KACHs2H,EAAiBJ,EAAWQ,SAAS,CACnC12H,MAAO,WAET,MACF,IAAK,MACHs2H,EAAiBJ,EAAWQ,SAAS,CACnC12H,MAAO,SAET,MAEF,QACEs2H,EAAiBJ,EAAWQ,SAAS,CACnC12H,MAAO,SAIb,OAAOs2H,EAAevjI,QAAQ,WAAYijI,GAAkBQ,EAAaN,IAAanjI,QAAQ,WAAYojI,GAAkBM,EAAaP,GAC3I,GAKA,YC/EA,IAAIS,GAA2B,CAAC,IAAK,MACjCC,GAA0B,CAAC,KAAM,QAO9B,SAASC,GAAoB5uF,EAAO6uF,EAAQ9jF,GACjD,GAAc,SAAV/K,EACF,MAAM,IAAIypF,WAAW,qCAAqC1lG,OAAO8qG,EAAQ,0CAA0C9qG,OAAOgnB,EAAO,mFAC5H,GAAc,OAAV/K,EACT,MAAM,IAAIypF,WAAW,iCAAiC1lG,OAAO8qG,EAAQ,0CAA0C9qG,OAAOgnB,EAAO,mFACxH,GAAc,MAAV/K,EACT,MAAM,IAAIypF,WAAW,+BAA+B1lG,OAAO8qG,EAAQ,sDAAsD9qG,OAAOgnB,EAAO,mFAClI,GAAc,OAAV/K,EACT,MAAM,IAAIypF,WAAW,iCAAiC1lG,OAAO8qG,EAAQ,sDAAsD9qG,OAAOgnB,EAAO,kFAE7I,CClBA,IAAI+jF,GAAuB,CACzBC,iBAAkB,CAChBC,IAAK,qBACLzoC,MAAO,+BAET0oC,SAAU,CACRD,IAAK,WACLzoC,MAAO,qBAET2oC,YAAa,gBACbC,iBAAkB,CAChBH,IAAK,qBACLzoC,MAAO,+BAET6oC,SAAU,CACRJ,IAAK,WACLzoC,MAAO,qBAET8oC,YAAa,CACXL,IAAK,eACLzoC,MAAO,yBAET+oC,OAAQ,CACNN,IAAK,SACLzoC,MAAO,mBAETgpC,MAAO,CACLP,IAAK,QACLzoC,MAAO,kBAETipC,YAAa,CACXR,IAAK,eACLzoC,MAAO,yBAETkpC,OAAQ,CACNT,IAAK,SACLzoC,MAAO,mBAETmpC,aAAc,CACZV,IAAK,gBACLzoC,MAAO,0BAETopC,QAAS,CACPX,IAAK,UACLzoC,MAAO,oBAETqpC,YAAa,CACXZ,IAAK,eACLzoC,MAAO,yBAETspC,OAAQ,CACNb,IAAK,SACLzoC,MAAO,mBAETupC,WAAY,CACVd,IAAK,cACLzoC,MAAO,wBAETwpC,aAAc,CACZf,IAAK,gBACLzoC,MAAO,2BC5DI,SAASypC,GAAkB9/F,GACxC,OAAO,WACL,IAAIr7B,EAAUnM,UAAUC,OAAS,QAAsBc,IAAjBf,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAE/EqP,EAAQlD,EAAQkD,MAAQjM,OAAO+I,EAAQkD,OAASm4B,EAAK+/F,aAEzD,OADa//F,EAAKggG,QAAQn4H,IAAUm4B,EAAKggG,QAAQhgG,EAAK+/F,aAExD,CACF,CCPA,ICD4C//F,GDmBxC+9F,GAAa,CACfxH,KAAMuJ,GAAkB,CACtBE,QApBc,CAChBC,KAAM,mBACNC,KAAM,aACNC,OAAQ,WACRC,MAAO,cAiBLL,aAAc,SAEhBj4G,KAAMg4G,GAAkB,CACtBE,QAlBc,CAChBC,KAAM,iBACNC,KAAM,cACNC,OAAQ,YACRC,MAAO,UAeLL,aAAc,SAEhBxB,SAAUuB,GAAkB,CAC1BE,QAhBkB,CACpBC,KAAM,yBACNC,KAAM,yBACNC,OAAQ,qBACRC,MAAO,sBAaLL,aAAc,UE9BdM,GAAuB,CACzBC,SAAU,qBACVC,UAAW,mBACXC,MAAO,eACPC,SAAU,kBACVC,SAAU,cACVrqC,MAAO,KCNM,SAASsqC,GAAgB3gG,GACtC,OAAO,SAAU4gG,EAAYj8H,GAC3B,IACIk8H,EACJ,GAAgB,gBAFFl8H,SAA0CA,EAAQgf,QAAU/nB,OAAO+I,EAAQgf,SAAW,eAEpEqc,EAAK8gG,iBAAkB,CACrD,IAAIf,EAAe//F,EAAK+gG,wBAA0B/gG,EAAK+/F,aACnDl4H,EAAQlD,SAA0CA,EAAQkD,MAAQjM,OAAO+I,EAAQkD,OAASk4H,EAC9Fc,EAAc7gG,EAAK8gG,iBAAiBj5H,IAAUm4B,EAAK8gG,iBAAiBf,EACtE,KAAO,CACL,IAAIiB,EAAgBhhG,EAAK+/F,aACrBkB,EAASt8H,SAA0CA,EAAQkD,MAAQjM,OAAO+I,EAAQkD,OAASm4B,EAAK+/F,aACpGc,EAAc7gG,EAAK7iC,OAAO8jI,IAAWjhG,EAAK7iC,OAAO6jI,EACnD,CAGA,OAAOH,EAFK7gG,EAAKkhG,iBAAmBlhG,EAAKkhG,iBAAiBN,GAAcA,EAG1E,CACF,CCjBe,SAASO,GAAanhG,GACnC,OAAO,SAAUzjC,GACf,IAAIoI,EAAUnM,UAAUC,OAAS,QAAsBc,IAAjBf,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/EqP,EAAQlD,EAAQkD,MAChBu5H,EAAev5H,GAASm4B,EAAKqhG,cAAcx5H,IAAUm4B,EAAKqhG,cAAcrhG,EAAKshG,mBAC7ElD,EAAc7hI,EAAOsG,MAAMu+H,GAC/B,IAAKhD,EACH,OAAO,KAET,IAOI5iI,EAPA+lI,EAAgBnD,EAAY,GAC5BoD,EAAgB35H,GAASm4B,EAAKwhG,cAAc35H,IAAUm4B,EAAKwhG,cAAcxhG,EAAKyhG,mBAC9EvkI,EAAMK,MAAMoB,QAAQ6iI,GAuB5B,SAAmBjiI,EAAO9B,GACxB,IAAK,IAAIP,EAAM,EAAGA,EAAMqC,EAAM9G,OAAQyE,IACpC,GAAcqC,EAAMrC,GAxBHyG,KAAK49H,GAyBpB,OAAOrkI,CAIb,CA9B6CW,CAAU2jI,GAevD,SAAiBE,EAAQjkI,GACvB,IAAK,IAAIP,KAAOwkI,EACd,GAAIA,EAAOrxH,eAAenT,IAAkBwkI,EAAOxkI,GAdlCyG,KAAK49H,GAepB,OAAOrkI,CAIb,CApBSykI,CAAQH,GAOb,OAHAhmI,EAAQwkC,EAAK4hG,cAAgB5hG,EAAK4hG,cAAc1kI,GAAOA,EAGhD,CACL1B,MAHFA,EAAQmJ,EAAQi9H,cAAgBj9H,EAAQi9H,cAAcpmI,GAASA,EAI7D4uG,KAHS7tG,EAAO9B,MAAM8mI,EAAc9oI,QAKxC,CACF,CCCA,MCzBA,GDaa,CACX6/C,KAAM,QACNupF,eP+CmB,SAAwB/xF,EAAOzzC,EAAOsI,GACzD,IAAIrI,EACAwlI,EAAalD,GAAqB9uF,GAQtC,OANExzC,EADwB,iBAAfwlI,EACAA,EACU,IAAVzlI,EACAylI,EAAWhD,IAEXgD,EAAWzrC,MAAMz7F,QAAQ,YAAayB,EAAM3C,YAEnDiL,SAA0CA,EAAQo9H,UAChDp9H,EAAQq9H,YAAcr9H,EAAQq9H,WAAa,EACtC,MAAQ1lI,EAERA,EAAS,OAGbA,CACT,EOhEEyhI,WLgBF,GKfEkE,eHVmB,SAAwBnyF,EAAOoyF,EAAOC,EAAWC,GACpE,OAAO/B,GAAqBvwF,EAC9B,EGSE4qF,SE+Fa,CACbE,cAxBkB,SAAuBlD,EAAa0K,GACtD,IAAIzjH,EAASR,OAAOu5G,GAShB2K,EAAS1jH,EAAS,IACtB,GAAI0jH,EAAS,IAAMA,EAAS,GAC1B,OAAQA,EAAS,IACf,KAAK,EACH,OAAO1jH,EAAS,KAClB,KAAK,EACH,OAAOA,EAAS,KAClB,KAAK,EACH,OAAOA,EAAS,KAGtB,OAAOA,EAAS,IAClB,EAGEg8G,IAAKgG,GAAgB,CACnBxjI,OApHY,CACdmlI,OAAQ,CAAC,IAAK,KACdC,YAAa,CAAC,KAAM,MACpBC,KAAM,CAAC,gBAAiB,gBAkHtBzC,aAAc,SAEhB5E,QAASwF,GAAgB,CACvBxjI,OAnHgB,CAClBmlI,OAAQ,CAAC,IAAK,IAAK,IAAK,KACxBC,YAAa,CAAC,KAAM,KAAM,KAAM,MAChCC,KAAM,CAAC,cAAe,cAAe,cAAe,gBAiHlDzC,aAAc,OACdmB,iBAAkB,SAA0B/F,GAC1C,OAAOA,EAAU,CACnB,IAEFlB,MAAO0G,GAAgB,CACrBxjI,OAhHc,CAChBmlI,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAChEC,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAC3FC,KAAM,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,aA8GnHzC,aAAc,SAEhBlI,IAAK8I,GAAgB,CACnBxjI,OA/GY,CACdmlI,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACvClC,MAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAC5CmC,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACxDC,KAAM,CAAC,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,aA4GvEzC,aAAc,SAEhBtD,UAAWkE,GAAgB,CACzBxjI,OA7GkB,CACpBmlI,OAAQ,CACNG,GAAI,IACJC,GAAI,IACJC,SAAU,KACVC,KAAM,IACNC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,MAAO,SAETT,YAAa,CACXE,GAAI,KACJC,GAAI,KACJC,SAAU,WACVC,KAAM,OACNC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,MAAO,SAETR,KAAM,CACJC,GAAI,OACJC,GAAI,OACJC,SAAU,WACVC,KAAM,OACNC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,MAAO,UAiFPjD,aAAc,OACde,iBA/E4B,CAC9BwB,OAAQ,CACNG,GAAI,IACJC,GAAI,IACJC,SAAU,KACVC,KAAM,IACNC,QAAS,iBACTC,UAAW,mBACXC,QAAS,iBACTC,MAAO,YAETT,YAAa,CACXE,GAAI,KACJC,GAAI,KACJC,SAAU,WACVC,KAAM,OACNC,QAAS,iBACTC,UAAW,mBACXC,QAAS,iBACTC,MAAO,YAETR,KAAM,CACJC,GAAI,OACJC,GAAI,OACJC,SAAU,WACVC,KAAM,OACNC,QAAS,iBACTC,UAAW,mBACXC,QAAS,iBACTC,MAAO,aAmDPjC,uBAAwB,UFvH1Bl+H,MGmCU,CACV+3H,ePxD0C56F,GOwDP,CACjCohG,aAvD4B,wBAwD5B6B,aAvD4B,OAwD5BrB,cAAe,SAAuBpmI,GACpC,OAAO+a,SAAS/a,EAAO,GACzB,GP5DK,SAAUe,GACf,IAAIoI,EAAUnM,UAAUC,OAAS,QAAsBc,IAAjBf,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/E4lI,EAAc7hI,EAAOsG,MAAMm9B,GAAKohG,cACpC,IAAKhD,EAAa,OAAO,KACzB,IAAImD,EAAgBnD,EAAY,GAC5B8E,EAAc3mI,EAAOsG,MAAMm9B,GAAKijG,cACpC,IAAKC,EAAa,OAAO,KACzB,IAAI1nI,EAAQwkC,GAAK4hG,cAAgB5hG,GAAK4hG,cAAcsB,EAAY,IAAMA,EAAY,GAGlF,MAAO,CACL1nI,MAHFA,EAAQmJ,EAAQi9H,cAAgBj9H,EAAQi9H,cAAcpmI,GAASA,EAI7D4uG,KAHS7tG,EAAO9B,MAAM8mI,EAAc9oI,QAKxC,GOgDAkiI,IAAKwG,GAAa,CAChBE,cA5DmB,CACrBiB,OAAQ,UACRC,YAAa,6DACbC,KAAM,8DA0DJlB,kBAAmB,OACnBE,cAzDmB,CACrB2B,IAAK,CAAC,MAAO,YAyDX1B,kBAAmB,QAErBtG,QAASgG,GAAa,CACpBE,cA1DuB,CACzBiB,OAAQ,WACRC,YAAa,YACbC,KAAM,kCAwDJlB,kBAAmB,OACnBE,cAvDuB,CACzB2B,IAAK,CAAC,KAAM,KAAM,KAAM,OAuDtB1B,kBAAmB,MACnBG,cAAe,SAAuB9kI,GACpC,OAAOA,EAAQ,CACjB,IAEFm9H,MAAOkH,GAAa,CAClBE,cA3DqB,CACvBiB,OAAQ,eACRC,YAAa,sDACbC,KAAM,6FAyDJlB,kBAAmB,OACnBE,cAxDqB,CACvBc,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtFa,IAAK,CAAC,OAAQ,MAAO,QAAS,OAAQ,QAAS,QAAS,QAAS,OAAQ,MAAO,MAAO,MAAO,QAuD5F1B,kBAAmB,QAErB5J,IAAKsJ,GAAa,CAChBE,cAxDmB,CACrBiB,OAAQ,YACRlC,MAAO,2BACPmC,YAAa,kCACbC,KAAM,gEAqDJlB,kBAAmB,OACnBE,cApDmB,CACrBc,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACnDa,IAAK,CAAC,OAAQ,MAAO,OAAQ,MAAO,OAAQ,MAAO,SAmDjD1B,kBAAmB,QAErBhF,UAAW0E,GAAa,CACtBE,cApDyB,CAC3BiB,OAAQ,6DACRa,IAAK,kFAmDH7B,kBAAmB,MACnBE,cAlDyB,CAC3B2B,IAAK,CACHV,GAAI,MACJC,GAAI,MACJC,SAAU,OACVC,KAAM,OACNC,QAAS,WACTC,UAAW,aACXC,QAAS,WACTC,MAAO,WA0CPvB,kBAAmB,SHzErB98H,QAAS,CACP00H,aAAc,EACdK,sBAAuB,IIF3B,IAAI0J,GAAyB,wDAIzBC,GAA6B,oCAC7BC,GAAsB,eACtBC,GAAoB,MACpBC,GAAgC,WAsSrB,SAAS7E,GAAO/G,EAAW6L,EAAgB9+H,GACxD,IAAIk0H,EAAMI,EAAiBH,EAAOC,EAAO2K,EAAOjK,EAAuBkK,EAAkBC,EAAuBzK,EAAuBC,EAAwByK,EAAOC,EAAOC,EAAO/K,EAAuBgL,EAAkBC,EAAuBC,EAAwBC,EAC5QhN,GAAa,EAAG3+H,WAChB,IAAI4rI,EAAYxoI,OAAO6nI,GACnB/K,EAAiBC,KACjBW,EAA4L,QAAlLT,EAAgG,QAAxFI,EAAkBt0H,aAAyC,EAASA,EAAQ20H,cAAwC,IAApBL,EAA6BA,EAAkBP,EAAeY,cAA6B,IAATT,EAAkBA,EAAOwL,GAC7N3K,EAAwBjC,GAAu3B,QAA52BqB,EAA6jB,QAApjBC,EAAue,QAA9d2K,EAAsH,QAA7GjK,EAAwB90H,aAAyC,EAASA,EAAQ+0H,6BAA6D,IAA1BD,EAAmCA,EAAwB90H,SAA0F,QAAvCg/H,EAAmBh/H,EAAQ20H,cAAyC,IAArBqK,GAA8F,QAAtDC,EAAwBD,EAAiBh/H,eAA+C,IAA1Bi/H,OAA/J,EAA2MA,EAAsBlK,6BAA6C,IAAVgK,EAAmBA,EAAQhL,EAAegB,6BAA6C,IAAVX,EAAmBA,EAA4D,QAAnDI,EAAwBT,EAAeY,cAA8C,IAA1BH,GAAyG,QAA5DC,EAAyBD,EAAsBx0H,eAAgD,IAA3By0H,OAA9E,EAA2HA,EAAuBM,6BAA6C,IAAVZ,EAAmBA,EAAQ,GAGt7B,KAAMY,GAAyB,GAAKA,GAAyB,GAC3D,MAAM,IAAIH,WAAW,6DAEvB,IAAIF,EAAe5B,GAAs1B,QAA30BoM,EAAkiB,QAAzhBC,EAAqd,QAA5cC,EAA6G,QAApG/K,EAAwBr0H,aAAyC,EAASA,EAAQ00H,oBAAoD,IAA1BL,EAAmCA,EAAwBr0H,SAA0F,QAAvCq/H,EAAmBr/H,EAAQ20H,cAAyC,IAArB0K,GAA8F,QAAtDC,EAAwBD,EAAiBr/H,eAA+C,IAA1Bs/H,OAA/J,EAA2MA,EAAsB5K,oBAAoC,IAAV0K,EAAmBA,EAAQrL,EAAeW,oBAAoC,IAAVyK,EAAmBA,EAA6D,QAApDI,EAAyBxL,EAAeY,cAA+C,IAA3B4K,GAA2G,QAA7DC,EAAyBD,EAAuBv/H,eAAgD,IAA3Bw/H,OAA/E,EAA4HA,EAAuB9K,oBAAoC,IAAVwK,EAAmBA,EAAQ,GAG54B,KAAMxK,GAAgB,GAAKA,GAAgB,GACzC,MAAM,IAAIE,WAAW,oDAEvB,IAAKD,EAAOoB,SACV,MAAM,IAAInB,WAAW,yCAEvB,IAAKD,EAAOyE,WACV,MAAM,IAAIxE,WAAW,2CAEvB,IAAIgE,EAAelG,GAAOO,GAC1B,ICzTa,SAAiBA,GAE9B,GADAT,GAAa,EAAG3+H,YACX4+H,GAAOQ,IAAmC,iBAAdA,EAC/B,OAAO,EAET,IAAIrB,EAAOc,GAAOO,GAClB,OAAQrjE,MAAMp2C,OAAOo4G,GACvB,CDkTO+N,CAAQ/G,GACX,MAAM,IAAIhE,WAAW,sBAMvB,IAAIyD,EEvVS,SAAyCzG,GACtD,IAAIgO,EAAU,IAAIjoH,KAAKA,KAAKkoH,IAAIjO,EAAKkO,cAAelO,EAAKmO,WAAYnO,EAAKoO,UAAWpO,EAAKqO,WAAYrO,EAAKsO,aAActO,EAAKuO,aAAcvO,EAAKwO,oBAEjJ,OADAR,EAAQjM,eAAe/B,EAAKkO,eACrBlO,EAAKF,UAAYkO,EAAQlO,SAClC,CFmVuB2O,CAAgCzH,GACjDgH,EG9US,SAAyB3M,EAAWqN,GAGjD,OAFA9N,GAAa,EAAG3+H,WCDH,SAAyBo/H,EAAWqN,GACjD9N,GAAa,EAAG3+H,WAChB,IAAIwjI,EAAY3E,GAAOO,GAAWvB,UAC9BvlD,EAAS2mD,GAAUwN,GACvB,OAAO,IAAI3oH,KAAK0/G,EAAYlrD,EAC9B,CDFSo0D,CAAgBtN,GADVH,GAAUwN,GAEzB,CH0UgBE,CAAgB5H,EAAcP,GACxCoI,EAAmB,CACrB1L,sBAAuBA,EACvBL,aAAcA,EACdC,OAAQA,EACR2D,cAAeM,GAiCjB,OA/Ba6G,EAAUvhI,MAAMwgI,IAA4BhmI,KAAI,SAAU2oC,GACrE,IAAIq/F,EAAiBr/F,EAAU,GAC/B,MAAuB,MAAnBq/F,GAA6C,MAAnBA,GAErBC,EADa,GAAeD,IACdr/F,EAAWszF,EAAOyE,YAElC/3F,CACT,IAAGtrC,KAAK,IAAImI,MAAMugI,IAAwB/lI,KAAI,SAAU2oC,GAEtD,GAAkB,OAAdA,EACF,MAAO,IAET,IAqBwB6U,EACtBqiD,EAtBEmoC,EAAiBr/F,EAAU,GAC/B,GAAuB,MAAnBq/F,EACF,OAoBAnoC,GADsBriD,EAnBI7U,GAoBVnjC,MAAMygI,KAInBpmC,EAAQ,GAAGtiG,QAAQ2oI,GAAmB,KAFpC1oF,EApBP,IZrXqC/K,EYqXjCqjE,EAAY,GAAWkyB,GAC3B,GAAIlyB,EAOF,OANMxuG,SAA0CA,EAAQ4gI,8BZvXrBz1F,EYuX8E9J,GZtXlE,IAA5Cy4F,GAAwBpkI,QAAQy1C,KYuXjC4uF,GAAoB14F,EAAWy9F,EAAgB7nI,OAAOg8H,IAElDjzH,SAA0CA,EAAQ6gI,+BZ7XvD,SAAmC11F,GACxC,OAAoD,IAA7C0uF,GAAyBnkI,QAAQy1C,EAC1C,CY2X+F21F,CAA0Bz/F,IACjH04F,GAAoB14F,EAAWy9F,EAAgB7nI,OAAOg8H,IAEjDzkB,EAAUoxB,EAASv+F,EAAWszF,EAAOoB,SAAU0K,GAExD,GAAIC,EAAexiI,MAAM2gI,IACvB,MAAM,IAAIjK,WAAW,iEAAmE8L,EAAiB,KAE3G,OAAOr/F,CACT,IAAGtrC,KAAK,GAEV,+aKlYA,MAAMgrI,WAAyB,EAAA/nB,UAC7B,uBAAOgoB,CAAiBC,GACtB,MAAMC,EAAgB,IAAItoI,MAAMqoI,EAAWntI,QAM3C,OAJAmtI,EAAW3oI,SAAQ,CAACwT,EAAW3T,KAC7B+oI,EAAc/oI,GAAS2T,EAAU9Q,MAAMnE,YAAS,KAG3CqqI,CACT,CAEA,WAAA56H,CAAYtL,GACVqpH,MAAMrpH,GACN,MAAM,WACJimI,GACEjmI,EAEJzH,KAAK4tI,iBAAkB,IAAAlvB,aACvB1+G,KAAKm0H,eAAiBn0H,KAAKm0H,eAAenwG,KAAKhkB,MAC/CA,KAAK6tI,WAAa7tI,KAAK6tI,WAAW7pH,KAAKhkB,MAEvCA,KAAKmhC,MAAQ,CACXusG,aACAI,OAAQ,CAAC,EACTC,UAAW,KACXJ,cAAeH,GAAiBC,iBAAiBC,GACjD1hI,KAAM,GAEV,CAEA,iBAAAolH,GACE,MAAM,sBACJ4c,EAAqB,uBACrBC,GACEjuI,KAAKyH,MACTzH,KAAKkuI,aAEDD,GACFA,EACGD,EAEG,EADAhuI,KAAK4tI,gBAAgB/5B,QAAQvjG,YAIvC,CAEA,+BAAOylH,CAAyBC,EAAWnrF,GACzC,MAAM1J,EAAQ,CAAC,GAEbusG,WAAYS,GACVnY,GAGF0X,WAAYU,GACVvjG,EAYJ,OAVG,KAAQsjG,EAAiBC,IACtB,KACFZ,GAAiBC,iBAAiBU,GAClCX,GAAiBC,iBAAiBW,MAGpCjtG,EAAMwsG,cAAgBH,GAAiBC,iBAAiBU,GACxDhtG,EAAMusG,WAAaS,GAGdhtG,CACT,CAEA,cAAAgzF,CAAe57G,EAAW3T,EAAOtB,GAC/B,MAAM,sBAAE0qI,GAA0BhuI,KAAKyH,MACvC,IAAI8uH,EAAYv2H,KAAKmhC,MAErBo1F,EAAY,SAAKA,GAAcv2H,KAAKquI,cAAc/qI,EAAOiV,EAAU9Q,QAE9D8uH,EAAUuX,OAAOv1H,EAAU9Q,MAAMtE,QACpCozH,EAAUoX,cAAc/oI,GAAStB,EAE7BiV,EAAU9Q,MAAMslC,UAClBx0B,EAAU9Q,MAAMslC,SAASzpC,IAI7BtD,KAAKiwB,UAAUomG,GAAmB,SAAKA,GAAkBE,KAAc,KACjEyX,GACFhuI,KAAK6tI,YACP,GAEJ,CAEA,iBAAAS,GACE,MAAM,SAAEC,GAAavuI,KAAKyH,MACpBquG,EAAa,CAAC,2BAMpB,OAJIy4B,GACFz4B,EAAW/zG,KAAK,aAGX+zG,EAAWtzG,KAAK,IACzB,CAEA,kBAAAgsI,GACE,MAAM,YAAEC,EAAW,YAAEC,GAAgB1uI,KAAKyH,MACpCquG,EAAa,GAUnB,OARI24B,GACF34B,EAAW/zG,KAAK0sI,GAGdC,GACF54B,EAAW/zG,KAAK2sI,GAGX54B,EAAWtzG,KAAK,IACzB,CAEA,kBAAAmsI,CAAmBp2H,GACjB,MAAM,MACJ1X,EAAK,OACLitI,EAAM,UACNC,GACE/tI,KAAKmhC,MAQT,OANItgC,GAASktI,EACXD,EAAOv1H,EAAU9Q,MAAMtE,MAAQ,OACpBtC,GAASktI,GAA+C,SAAjCD,EAAOv1H,EAAU9Q,MAAMtE,cAClD2qI,EAAOv1H,EAAU9Q,MAAMtE,MAGzB2qI,EAAOv1H,EAAU9Q,MAAMtE,MAAQ2qI,EAAOv1H,EAAU9Q,MAAMtE,MAAM3B,gBAAa,CAClF,CAEA,UAAA0sI,GACE,MAAM,WAAER,GAAe1tI,KAAKyH,MACtBuE,EAAO,GAEb0hI,EAAW3oI,SAAQ,KACjBiH,EAAKjK,MAAK,IAAA28G,aAAY,IAGxB1+G,KAAKiwB,SAAS,CACZjkB,QAEJ,CAEA,aAAAqiI,CAAc/qI,EAAOmE,GACnB,MAAM,UAAEsmI,EAAS,OAAED,GAAW9tI,KAAKmhC,OAC7B,MAAEtgC,EAAK,aAAE+tI,GAAiB5uI,KAAKyH,MAE/BonI,EAAkBpnI,EAAMqnI,SAAWxtI,OAAOwD,KAAK2C,EAAMqnI,UAAY,GAEjEvY,EAAY,CAChBuX,OAASjtI,GAASktI,EAAa,CAAC,EAAI,MAAKD,IAE3C,IAAIjW,GAAK,EAGT,GAAI+W,EACF,OAAOrY,EAIT,UAAWwY,KAAiBF,EAE1B,IAAIG,EADcvnI,EAAMqnI,SAASC,IACnBzrI,GAAQ,CACpBizH,EAAUuX,OAAOrmI,EAAMtE,MAAQsE,EAAMwnI,mBAAmBF,GACxDlX,GAAK,EACL,KACF,CAUF,OANIA,UACKtB,EAAUuX,OAAOrmI,EAAMtE,MAGhCozH,EAAUwX,UAAY,KAEfxX,CACT,CAEA,iBAAA2Y,CAAkBpB,GAChB,MAAM,WAAEJ,EAAU,aAAEkB,GAAiB5uI,KAAKyH,OACpC,cAAEkmI,GAAkB3tI,KAAKmhC,MACzBo1F,EAAY,CAChBuX,OAAQ,MAAKA,IAGf,QAAIc,IAAsD,IAAtCjB,EAAcxrI,aAAQ,MAItCb,OAAOwD,KAAKyxH,EAAUuX,QAAQvtI,OAAS,IAI3CmtI,EAAW3oI,SAAQ,CAACwT,EAAW3T,KAC7B2xH,EAAUuX,OAAS,SACdvX,EAAUuX,QACV9tI,KAAKquI,cAAcV,EAAc/oI,GAAQ2T,EAAU9Q,OAAOqmI,OAAA,IAI1DxsI,OAAOwD,KAAKyxH,EAAUuX,QAAQvtI,OAAS,GAChD,CAEA,SAAA4uI,GACE,MAAM,KAAEnjI,GAAShM,KAAKmhC,OAChB,WACJusG,GACE1tI,KAAKyH,MAETuE,EAAKjH,SAASguG,IA5NlB,OA6NU,SAAAA,EAAIc,cAAJ,IAAahqD,QACfkpD,EAAIc,QAAQhqD,OACd,IAGF7pD,KAAKiwB,SAAS,CACZ69G,OAAQ,CAAC,EACTC,UAAW,KACXJ,cAAeH,GAAiBC,iBAAiBC,IAErD,CAEA,aAAA0B,CAAcvuI,GACZb,KAAKiwB,SAAS,CACZ89G,UAAWltI,GAEf,CAEA,UAAAgtI,GACE,MAAM,OAAEC,EAAM,cAAEH,GAAkB3tI,KAAKmhC,OACjC,aACJytG,EAAY,SAAES,EAAQ,SAAEP,EAAQ,kBAAEQ,GAChCtvI,KAAKyH,MAELmnI,IACFS,EAAS1B,GACT3tI,KAAKmvI,aAI0B,IAA/B7tI,OAAOwD,KAAKgpI,GAAQvtI,QAChB8uI,GAAgC,mBAAbA,IAEnBP,GACEA,EAASnB,GACX3tI,KAAKovI,cAAcE,IAMrBD,EAAS1B,GACT3tI,KAAKmvI,aAGX,CAEA,MAAA9wB,GACE,MAAM,sBACJ2vB,EAAqB,WAAEN,EAAU,WAAE6B,EAAU,SAAE56H,EAAQ,YAAE+5H,EAAW,MAAE7tI,GACpEb,KAAKyH,OACH,UACJsmI,EAAS,KAAE/hI,EAAI,OAAE8hI,GACf9tI,KAAKmhC,MAET,OACE,kBAAC,WACC,kBAAC,OAAIv0B,UAAW5M,KAAKsuI,qBACnB,kBAAC,GAAG,KAEAZ,EAAWvoI,KAAI,CAACoT,EAAW3T,KACzB,MAAM4qI,EAAgBj3H,EAAUpV,KAChCvC,QAAQmuD,IAAI,gBAAiBygF,GAC7B,MAEI,EAAAj3H,EAAU9Q,OADZslC,SAAAA,EAAA,MAAUzpC,GACR,EADkB4uG,mKAAA,CAClB,EADkB,CAApB,WAAU,UAGZ,OACE,kBAAC,GAAM,CAACnkE,KAAM,MAAMx1B,EAAUw1B,MAAQ,WAAWx1B,EAAUw1B,MAAQ,OAAQ/oC,IAAKuT,EAAU9Q,MAAMtE,MAC9F,kBAACqsI,KAAA,IACC76H,SAAUA,GAAY4D,EAAU9Q,MAAMkN,SAEtCo4B,SAAU/sC,KAAKm0H,eAAenwG,KAAKhkB,KAAMuY,EAAW3T,IAChDstG,KAJL,CAKC51E,MAAuB,WAAhBoyG,EAA2B,GAAKn2H,EAAU9Q,MAAM60B,MACvDz7B,MAAOb,KAAK2uI,mBAAmBp2H,GAC/Bw6F,IAAK/mG,EAAKpH,GACVtB,+BAEJ,KAML0qI,EAkBG,KAhBA,kBAAC,QACCphI,UAAW5M,KAAKwuI,qBAChBz7B,IAAK/yG,KAAK4tI,iBAEV,kBAAC,GACCj5H,SAAU3U,KAAKkvI,kBAAkBpB,GACjClhI,UAAU,gCACVgmG,QAAS5yG,KAAK6tI,WACd15G,MAAM,UACNpgB,KAAK,SACLg6B,KAAsB,WAAhB2gG,EAA2B,KAAO,MAEtCa,GAAc,SAQ1B1uI,GAASktI,EAEL,kBAAC,OAAInhI,UAAU,gCACb,kBAAC,KAAEA,UAAU,iBACT/L,GAASktI,IAIf,KAIZ,EAGFP,GAAiBp7B,UAAY,CAC3B47B,sBAAuB,SACvBO,SAAU,SACVgB,WAAY,WACZd,YAAa,WACbf,WAAY,eAAqBroI,OACjCqpI,YAAa,WACb/5H,SAAU,SACVs5H,uBAAwB,SACxBptI,MAAO,WACP+tI,aAAc,SACdS,SAAU,SACVP,SAAU,SACVQ,kBAAmB,YAGrB,sWC1VA,MAAMG,WAAqB,EAAAhqB,UACzB,uBAAOiqB,CAAiB3a,GACtB,IAAIsC,EAAY,KAchB,MAZyB,iBAAdtC,IACTsC,EAAYtC,GAGoC,oBAA9CzzH,OAAOC,UAAUC,SAASC,KAAKszH,KACjCsC,EAAYtC,EAAU5xH,MAGpB+7H,GAAOnK,KACTsC,EAAYoP,GAAO1R,EAAW,eAGzBsC,CACT,CAEA,0BAAOsY,CAAoBjB,GACzB,MAAM54B,EAAa,GAMnB,MAJoB,WAAhB44B,GACF54B,EAAW/zG,KAAK,kCAGX+zG,EAAWtzG,KAAK,IACzB,CAEA,WAAAuQ,CAAYtL,GACVqpH,MAAMrpH,GACN,MAAM,MACJnE,GACEtD,KAAKyH,MAETzH,KAAKmhC,MAAQ,CACXvqB,aAActT,GAAS,GACvBA,MAAOA,GAAS,GAChBssI,YAAa,GAGf5vI,KAAK0vD,WAAa,EAElB1vD,KAAK6vI,iBAAmB7vI,KAAK6vI,iBAAiB7rH,KAAKhkB,MACnDA,KAAKiuI,uBAAyBjuI,KAAKiuI,uBAAuBjqH,KAAKhkB,MAC/DA,KAAK8vI,qBAAsB,IAAApxB,YAC7B,CAEA,+BAAOqX,CAAyBC,EAAWnrF,GACzC,MAAM1J,EAAQ,CAAC,EAUf,OAPE60F,EAAU1yH,OAASi1D,KAAK09D,UAAUD,EAAU1yH,SACxCi1D,KAAK09D,UAAUprF,EAAUj0B,gBAE7BuqB,EAAM79B,MAAQ0yH,EAAU1yH,OAAS,GACjC69B,EAAMvqB,aAAeo/G,EAAU1yH,OAAS,IAGnC69B,EAAM79B,MAAQ69B,EAAQ,IAC/B,CAEA,gBAAA0uG,CAAiBvsI,GACf,MAAMizH,EAAYv2H,KAAK+vI,UAAUzsI,GACjCtD,KAAKiwB,UAAUomG,GAAmB,SAAKA,GAAkBE,KAAc,KACrEv2H,KAAKgwI,gBAAgBzZ,EAAUjzH,MAAM/C,OAAS,EAAG,KAAM+C,EAAM,GAEjE,CAEA,gBAAA2sI,CAAiBrrI,EAAOtB,GACtB,IAAI8zH,EACJp3H,KAAKiwB,UAAUomG,IACb,MAAME,EAAY,MAAKF,GAKvB,OAJAe,GAAY,KAAAle,QAAOqd,EAAUjzH,MAAMsB,GAAOtB,OAAOk5G,OACjD+Z,EAAUjzH,MAAMsB,GAAOtB,MAAQA,EAC/BizH,EAAUjzH,MAAMsB,GAAOsrI,UAAW,EAE3B3Z,CAAS,IACf,KACDv2H,KAAKgwI,gBAAgBprI,EAAOwyH,EAAW9zH,EAAM,GAEjD,CAEA,sBAAA6sI,CAAuBvrI,EAAOtB,GAC5B,IAAI8zH,EACJp3H,KAAKiwB,UAAUomG,IACb,MAAME,EAAY,MAAKF,GAIvB,OAHAe,GAAY,KAAAle,QAAOqd,EAAUjzH,MAAMsB,GAAO8vD,UAAU8nD,OACpD+Z,EAAUjzH,MAAMsB,GAAO8vD,SAAWpxD,EAE3BizH,CAAS,IACf,KACDv2H,KAAKgwI,gBAAgBprI,EAAOwyH,EAAW9zH,EAAM,GAEjD,CAEA,oBAAA8sI,CAAqB1B,GACnB,MAAM,OAAEz0H,GAAWja,KAAKyH,MAClBquG,EAAa,CAAC,2BAQpB,OANAA,EAAW/zG,KAAKkY,EAAOy0H,aAAe,SAElB,WAAhBA,GACF54B,EAAW/zG,KAAK,mCAGX+zG,EAAWtzG,KAAK,IACzB,CAEA,eAAA6tI,GAEE,OADArwI,KAAK0vD,YAAc,EACZ1vD,KAAK0vD,UACd,CAIA,eAAA4gF,CAAgBC,GACd,MAAM,OAAEt2H,GAAWja,KAAKyH,MACxB,IAAInE,EAAQ,KAEZ,OAAQ2W,EAAOy0H,aACb,IAAK,OACL,IAAK,SAYHprI,EAXiBitI,EAASjtI,MAAM6zH,QAAO,CAACC,EAAWrC,EAAWnwH,KAC5D,MAAMyyH,EAAYoY,GAAaC,iBAAiB3a,GAChD,IAAIyb,EAAY,KAMhB,OAJI5rI,IAAU2rI,EAASjtI,MAAM/C,OAAS,IACpCiwI,EAAY,IAGPpZ,EAAYC,EAAYmZ,CAAS,GACvC,IAIH,MAEF,QACEltI,EACE,kBAAC,GAAG,KAEA2W,EAAOyzH,WAAWvoI,KAAI,CAACoT,EAAW3T,IAChC,kBAAC,IACCI,IAAKhF,KAAKqwI,kBACVtiG,KAAM,MAAMx1B,EAAUw1B,WAAWx1B,EAAUw1B,QAEzC0hG,GAAaC,iBAAiBa,EAASjtI,MAAMsB,QAU7D,OAAOtB,CACT,CAEA,sBAAA2qI,CAAuB3qI,GACrBtD,KAAKiwB,SAAS,CACZ2/G,YAAatsI,GAEjB,CAEA,eAAAmtI,CAAgB7rI,GACd,MAAM+2H,EAAY37H,KAAK0wI,iBAEvB1wI,KAAKiwB,UAAUomG,IACb,MAAME,EAAY,MAAKF,GAIvB,OAHAE,EAAUjzH,MAAQq4H,EAClBpF,EAAUjzH,MAAMsB,GAAOsrI,UAAY3Z,EAAUjzH,MAAMsB,GAAOsrI,SAEnD3Z,CAAS,GAEpB,CAEA,QAAAoa,CAAS/rI,EAAOmwH,GACd,MAAM,MAAEzxH,GAAUtD,KAAKmhC,MACvB,IAAI02F,GAAK,EAYT,OAVAv0H,EAAMyB,SAAQ,CAACa,EAAM83G,KACfnlD,KAAK09D,UAAUrwH,EAAKtC,SAAWi1D,KAAK09D,UAAUlB,KAE9C8C,IADEjzH,GAAS,GAAK84G,IAAc94G,GAKlC,IAGKizH,CACT,CAEA,SAAAkY,CAAUpnH,GACR,MAAM,MAAErlB,GAAUtD,KAAKmhC,OACjB,OAAElnB,GAAWja,KAAKyH,MAClBstH,EAAY,CAChBmb,UAAU,EACV5sI,MAAOqlB,GAEH4tG,EAAY,CAChBjzH,MAAOA,EAAMf,MAAM,IASrB,OANI0X,EAAOy6C,WACTqgE,EAAUrgE,SAAW,IAGvB6hE,EAAUjzH,MAAMvB,KAAKgzH,GAEdwB,CACT,CAEA,cAAAqa,CAAehsI,GACb,IAAIisI,EACJ7wI,KAAKiwB,UAAUomG,IACb,MAAMya,EAAWza,EAAc/yH,MAAMf,MAAM,GAG3C,OAFAsuI,EAAcC,EAASlpI,OAAOhD,EAAO,GAE9B,CACLtB,MAAOwtI,EACR,IACA,KACD9wI,KAAKgwI,gBAAgBprI,EAAOisI,EAAa,KAAK,GAElD,CAEA,cAAAH,GACE,MAAM,MAAEptI,GAAUtD,KAAKmhC,MAavB,OAXkB79B,EAAM6B,KAAK4vH,IAC3B,MAAMgc,EAAgB,MAAKhc,GAE3B,OAAIgc,EAAcb,UAChBa,EAAcb,UAAW,EAClBa,GAGFA,CAAa,GAIxB,CAEA,eAAAf,CAAgBprI,EAAOwyH,EAAW4Z,GAChC,MAAM,SAAEjkG,GAAa/sC,KAAKyH,OACpB,MAAEnE,GAAUtD,KAAKmhC,MAEnB4L,GAAgC,mBAAbA,GACrBA,EAAWzpC,EAAM/C,OAAU+C,EAAQ,KAAOsB,EAAOwyH,EAAW4Z,EAEhE,CAEA,WAAAC,CAAYV,EAAU3rI,GA5QxB,MA6QI,MAAM,OAAEqV,EAAM,SAAEtF,GAAa3U,KAAKyH,OAC5B,YAAEmoI,EAAW,MAAEtsI,GAAUtD,KAAKmhC,MAE9B+vG,GAAmB,KAAAh4B,QAAOj/F,EAAOyzH,YAAYlxB,OAMnD,OAJA+zB,EAASjtI,MAAMyB,SAAQ,CAACgwH,EAAWrX,KACjCwzB,EAAiBxzB,GAAWj2G,MAAMnE,MAAQyxH,CAAS,IAInD,kBAAC,MACC/vH,IAAKJ,EACLgI,UAAW6iI,GAAaE,oBAAoB11H,EAAOy0H,aACnD37B,IAAK/yG,KAAK8vI,qBAEV,kBAAC,OACCljI,UAAW,gCAAgCqN,EAAOy0H,aAAe,UAAW6B,EAASL,SAAY,qBAAuB,MAGrHK,EAASL,SAiCN,oCACE,kBAAC,IACCX,WAAW,SACXhB,SAAUt0H,EAAOs0H,SACjB55H,WACA+5H,YAAaz0H,EAAOy0H,YACpBhB,WAAYwD,EAEZ7B,SAAUrvI,KAAKiwI,iBAAiBjsH,KAAKhkB,KAAM4E,GAE3CkqI,SAAU9uI,KAAK2wI,SAAS3sH,KAAKhkB,KAAM4E,GACnC0qI,kBAAkB,sCAEpB,kBAAC,UACCv7H,KAAK,SACLnH,UAAU,2CACVgmG,QAAS5yG,KAAK4wI,eAAe5sH,KAAKhkB,KAAM4E,GACxC,aAAW,UAEX,kBAAC,EAAI,CAACmP,KAAK,YAlDf,oCACI/T,KAAKswI,gBAAgBC,EAAU3rI,GACjC,kBAAC,OACCgI,UAAU,mCACVC,MAAO,CACLiD,QAAS,QACTH,MAA+B,WAAvBsK,EAAOy0H,YAA4B,OAAS,GAAGkB,EAAc,SAGvE,kBAAC,UACCj7H,WACAZ,KAAK,SACLnH,UAAU,mCACVgmG,QAAS5yG,KAAKywI,gBAAgBzsH,KAAKhkB,KAAM4E,GACzC,aAAW,QAEX,kBAAC,EAAI,CAACmP,KAAK,UAEb,kBAAC,UACCY,WACAZ,KAAK,SACLnH,UAAU,mCACVgmG,QAAS5yG,KAAK4wI,eAAe5sH,KAAKhkB,KAAM4E,GACxC,aAAW,UAEX,kBAAC,EAAI,CAACmP,KAAK,cAgCvBkG,EAAOy6C,SAEH,kBAAC+6E,GAAA,CACC96H,WAEAo4B,SAAU/sC,KAAKmwI,uBAAuBnsH,KAAKhkB,KAAM4E,GACjDqV,OAAQA,EAAOy6C,SAASz6C,OACxB3W,OAAO,SAAAA,EAAMsB,SAAN,IAAc8vD,WAAY,KAGnC,KAIZ,CAEA,OAAAy8E,GACE,MAAM,OAAEl3H,GAAWja,KAAKyH,OAClB,YAAEmoI,EAAW,MAAEtsI,GAAUtD,KAAKmhC,MAEpC,OAAK79B,GAA0B,IAAjBA,EAAM/C,OAKlB,oCAE2B,UAAvB0Z,EAAOy0H,aAA4Bz0H,EAAOy0H,YAmBtC,KAjBA,kBAAC,OACC9hI,UAAU,4BACVC,MAAO,CACLm3E,aAAc,GAAG4rD,EAAc,SAGjC,kBAAC,GAAG,KAEA31H,EAAOyzH,WAAWvoI,KAAI,CAACoT,EAAW3T,IAChC,kBAAC,GAAM,CAACI,IAAKuT,EAAU9Q,MAAM60B,OAAS13B,EAAOmpC,KAAM,MAAMx1B,EAAUw1B,MAAQ,SAASx1B,EAAUw1B,MAAQ,MAClGx1B,EAAU9Q,MAAM60B,WASlC,kBAAC,MAAG1vB,UAAW5M,KAAKowI,qBAAqBn2H,EAAOy0H,cAE5CprI,EAAM6B,KAAI,CAACorI,EAAU3rI,IAAU5E,KAAKixI,YAAYV,EAAU3rI,OA7BzD,IAkCX,CAEA,MAAAy5G,GACE,MAAM,sBACJ2vB,EAAqB,OAAE/zH,EAAM,MAAEpZ,EAAK,SAAE8T,EAAQ,MAAE2nB,GAC9Ct8B,KAAKyH,MACH2pI,EAAkBllI,SAASsuB,cAAcvgB,EAAO04G,WAAazmH,SAASsuB,cAAc,QAE1F,OACE,kBAAC,OAAI5tB,UAAU,qBAEX0vB,EACI,kBAAC,aAAQA,GACT,KAEN,kBAAC,IACC0xG,wBACAN,WAAYzzH,EAAOyzH,WACnB6B,WAAYt1H,EAAOo3H,gBACnB5C,YAAax0H,EAAOq3H,gBACpB38H,WACA9T,QACA+tI,eAAiB/tI,EACjB0tI,SAAUt0H,EAAOs0H,SACjBc,SAAUrvI,KAAK6vI,iBAEff,SAAU9uI,KAAK2wI,SAAS3sH,KAAKhkB,MAAO,GACpCsvI,kBAAkB,oCAClBrB,uBAAwBjuI,KAAKiuI,yBAG7Bh0H,EAAO04G,SACH,kBACA3yH,KAAKmxI,UACLC,GAEApxI,KAAKmxI,UAIjB,EAGF1B,GAAar9B,UAAY,CACvB47B,sBAAuB,SACvBr5H,SAAU,SACV9T,MAAO,WACPoZ,OAAQ,eAAqB3Y,QAC7ByrC,SAAU,SACVzQ,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEFh5B,MAAO,cAAoB,CACzB,eAAqB+B,OACrB,eAAqB/D,WAIzB,YC3cA,SAAS,IAAO,MACdg7B,EAAK,cAAEi1G,EAAa,SAAEC,EAAQ,SAAE78H,EAAQ,SAAE4X,IAE1C,OACE,kBAAC,OAAI3f,UAAU,yBAEX0vB,EACI,kBAAC,aAAQA,GACT,MAEJ3nB,IAAa4X,GACb,kBAAC,GACC4H,MAAM,0BACNy+E,QAAS4+B,GAERD,GAAiB,OAK5B,CAEA,GAAOn/B,UAAY,CACjBz9F,SAAU,SACV4X,SAAU,SACVilH,SAAU,SACVD,cAAe,WACfj1G,MAAO,cAAoB,CACzB,WACA,YACA,YAIJ,YCpCA,SAASm1G,IAAW,OAClBC,EAAM,SACNnlH,IAEA,OACE,kBAAC,MAAG3f,UAAU,kDAEV8kI,EAAOvsI,KAAKwsI,IAVpB,QAWU,yBAAC,OACC3sI,KAAK,eAAA2sI,OAAA,EAAAA,EAAOlqI,YAAP,IAAc60B,QAASi8B,KAAK09D,UAAU0b,GAC3C/kI,UAAW,uDAAsD,MAAA+kI,OAAA,EAAAA,EAAO5jG,OAAQ,MAE/E,eAAA4jG,OAAA,EAAAA,EAAOlqI,YAAP,IAAc60B,MACjB,IAGJ,kBAAC,OAAI1vB,UAAW,uDAAuD2f,GAAY,2CAA2C,UAGpI,CAEAklH,GAAWr/B,UAAY,CACrBs/B,OAAQ,eAAqBrsI,OAC7BknB,SAAU,UAGZ,0SCzBA,SAASqlH,IAAW,OAClBF,EAAM,SACN/8H,EAAQ,SACR4X,EAAQ,OACRuhH,EAAM,WACNJ,EAAU,SACV3gG,EAAQ,SACR8kG,EAAQ,MACRvuI,EAAK,SACLwuI,IAEA,OACE,kBAAC,MAAGllI,UAAU,uBAEV8gI,EAAWvoI,KAAI,CAACsgH,EAAW7gH,KAlBnC,UAmBU,MAAM+sI,EAAQD,EAAO9sI,GACfmtI,EAA6B,mBAAVJ,EAAuBA,EAAMG,EAAUltI,GAAS+sI,EACzE,OACE,kBAAC,OAEC3sI,IAAK,GAAG8sI,KAAYltI,IACpBgI,UAAW,uDAAsD,SAAA8kI,EAAO9sI,SAAP,IAAempC,OAAQ,MAExF,kBAAC03E,8HAAA,IACK,MAAAssB,OAAA,EAAAA,EAAWtqI,SADhB,CAEC60B,MAAM,GACNh5B,MAAOA,EAAMsB,GAEbmoC,SAAUA,EAAS/oB,KAAK,KAAMpf,GAC9B/D,MAAO,MAAAitI,OAAA,EAAAA,EAASlpI,GAChB+P,SAAUA,IAAY,eAAAo9H,OAAA,EAAAA,EAAWtqI,YAAX,IAAkBkN,UACxC4X,SAAUA,IAAY,eAAAwlH,OAAA,EAAAA,EAAWtqI,YAAX,IAAkB8kB,iCAE5C,IAIN,kBAAC,OAAI3f,UAAW,uDAAuD2f,GAAY,2CACjF,kBAAC,GACCopF,UAAQ,EACRjD,SAAS,YACTv+E,MAAM,eACNy+E,QAASi/B,EACTl9H,SAAU4X,GAAY5X,KAKhC,CAEAi9H,GAAWx/B,UAAY,CACrBz9F,SAAU,SACV4X,SAAU,SACVulH,SAAU,cAAoB,CAC5B,WACA,aAEFJ,OAAQ,eAAqBrsI,OAC7ByoI,OAAQ,eAAqBzoI,OAC7BqoI,WAAY,eAAqBroI,OACjC/B,MAAO,eAAqB+B,OAC5B0nC,SAAU,SACV8kG,SAAU,UAGZ,0SC5DA,IAAIhvI,GAAK,EAQT,SAASmvI,IAAc,cACrBT,EAAa,SACb58H,EAAQ,SACR4X,EAAQ,OACRmlH,EAAM,MACNp1G,EAAK,MACLz7B,EAAK,MACLyC,EAAQ,GAAE,SACVypC,EAAW,SAAQ,YACnBklG,GAAc,EAAI,iBAClB/pB,EAAmB,KAEnB,MAAOgqB,EAAgBC,IAAqB,IAAAl/B,UAAS,MAE/Cm/B,EAAiB,CAACN,EAAUO,EAAYC,EAAgBlG,KA/BhE,MAgCI,MAAMmG,EAAgBjvI,EAAa,IAAIA,GAAT,GAE9B,GAAKA,EAGE,CACL,MAAM+zH,EAAY,IAAIkb,EAAaT,IACnCza,EAAUgb,GAAcC,EACxBC,EAAaT,GAAYza,EACzBkb,EAAaT,GAAUjvI,GAAKS,EAAMwuI,GAAUjvI,EAC9C,MAPE0vI,EAAaT,GAAY,IAAI,IAAIzsI,MAAMqsI,EAAOnxI,SAC9CgyI,EAAaT,GAAUO,GAAcC,EAQvC,IAAI,eAAAJ,OAAA,EAAAA,EAAiBJ,SAAjB,IAA6BO,KAAejG,EAAS,CACvD,MAAMoG,EAAa,IAAIN,GACjBO,EAAiB,IAAID,EAAWV,IACtCW,EAAeJ,GAAc,KAC7BG,EAAWV,GAAYW,EACvBN,EAAkBK,EACpB,CACAzlG,EAASwlG,EAAa,EAKlBG,GAAa,IAAAx/B,UACjB,IAAMw+B,EAAOvsI,KAAKwsI,IAChB,MAAMI,EAA6B,mBAAVJ,EAAuBA,IAAUA,EAE1D,OCzDkBlsB,GDyDI,MAAAssB,OAAA,EAAAA,EAAWx5H,YAAa,KCzDb,aACrCw0B,SAAAA,EACA+hG,SAAAA,EACAjuI,MAAAA,GAHqC,EAIlCqxG,mKAAA,CAJkC,EAIlC,CAHH,WACA,WACA,UAGA,MAAOygC,EAAeC,IAAoB,IAAA3/B,UAAS,MAC7C4/B,GAAgB,IAAA9+B,cAAazvF,IAEjC,MAAMhhB,GAAQ,MAAAghB,OAAA,EAAAA,EAAO7f,QACjB,CAAC,QAAS,YAAYH,SAASggB,EAAM7f,OAAOsP,MAC1CuQ,EAAM7f,OAAOskG,QACb,MAAAzkF,OAAA,EAAAA,EAAO7f,OAAOnB,MAChBghB,EAEJ,IAAI8nH,GAAU,EACd,GAAI0C,GAAgC,mBAAbA,EAAyB,CAC9C,MAAMgE,EAAWhE,EAASxrI,GAC1B8oI,GAAW0G,EACXF,EAAiBE,EACnB,CAEA/lG,EAASzpC,EAAO8oI,EAAQ,GACvB,CAAC0C,EAAU/hG,IAEd,OAAO,kBAAC04E,8HAAA,IAAcvT,WAAd,CAAoBnlE,SAAU8lG,EAAehyI,MAAO8xI,GAAiB9xI,YAAO,EAzB/D,IAAC4kH,CDyDiC,KAErD,IAoBIstB,EAAanuI,IACjB,IAAKtB,EACH,OAEF,MAAM+zH,EAAY,IAAI/zH,GACtB+zH,EAAUzvH,OAAOhD,EAAO,GACxBmoC,EAASsqF,EAAU,EAGrB,OACE,kBAAC,OAAIzqH,UAAW,iEAAiE/L,EAAQ,YAAc,MAAMqnH,KAC3G,kBAAC,IACCvzG,WACA4X,WACA+P,QACAi1G,gBACAC,SAjCW,KACf,MAAM1D,EElEa,EAAC4D,EAAQsB,KAAhC,MAA+C,gBAAAA,GAAa,CAAC,MAAC,OAAW,UAA1B,IAAwC7tI,KACpF8tI,GAAa,MAAAA,OAAA,EAAAA,EAAU9tI,KACtB,CAAC7B,EAAOsB,KAFZ,IAAAqwB,EAAA,EAEsB,iBAAAA,EAAAy8G,EAAO9sI,GAAO6C,OAAMqnI,eAApB,SAAA75G,EAA+B3xB,EAAM,KAAN,EFgElC,CAAeouI,EAAQpuI,GAEtC,GAdgB,CAACwqI,IAtDrB,MAsDgC,OAAAlpG,QAAQ,eAAAkpG,OAAA,EAAAA,EAAQoF,aAAR,IAAgBl9H,OAAO4uB,SAASrkC,OAAO,EAcvE4yI,CAAUrF,GAEZ,YADAqE,EAAkBrE,GAIpB,MAAMnlH,EAAW,IAAI,IAAItjB,MAAMqsI,EAAOnxI,SACtCooB,EAAS9lB,GA/DY,OAAaA,KAiElCkqC,EAAS,IACJzpC,EACHqlB,GACA,KAqBC,MAAArlB,OAAA,EAAAA,EAAO/C,UAAW0xI,EACjB,kBAAC,MAAGrlI,UAAU,wBACVtJ,GAAS,CAAC,KAAK6B,KAAI,CAACouF,EAAG5xF,IACvB,kBAAC,IAECqD,IAAKuuF,EAAE1wF,IAAMlB,EACbmwI,SAAUnwI,EACVgT,WACA4X,WACAmlH,SAEA3kG,SAAUqlG,EAAepuH,KAAK,KAAMriB,GAEpCkwI,SAAUkB,EAAU/uH,KAAK,KAAMriB,GAC/B2B,MAAOiwF,EACPu6C,OAAQ,MAAAoE,OAAA,EAAAA,EAAiBvwI,GACzB+rI,WAAYgF,MAGhB,kBAAC,GAAU,CAAChB,SAAgBnlH,cAE5B,KACH1rB,GAAmB,SAAVA,GAA8B,UAAVA,EAC5B,kBAAC,KAAE+L,UAAU,mCAAmC/L,GAC9C,KAGV,CAEAmxI,GAAc5/B,UAAY,CAIxBz9F,SAAU,SAKV4X,SAAU,SAEVglH,cAAe,WAEfj1G,MAAO,cAAoB,CACzB,WACA,YACA,WA8BFo1G,OAAQ,eAAqBrsI,OAE7B0nC,SAAU,SAKVzpC,MAAO,cAAoB,CACzB,eAAqBhC,QACrB,eAAqB+D,SAEvBxE,MAAO,WACPoxI,YAAa,SACb/pB,iBAAkB,YAGpB,0SG1LA,SAASkrB,GAAU,YACjBvyI,MAAAA,EAAA,MACAszB,EAAK,WACLkwF,EAAU,iBACV6D,EAAmB,MACnBrlH,EAAE,MACFy5B,EAAK,KACL0xF,EAAI,OACJqlB,EAAM,MACN/vI,EAAK,SACLypC,GAViB,EAWdmlE,mKAAA,CAXc,EAWd,CAVH,QACA,QACA,aACA,mBACA,KACA,QACA,OACA,SACA,QACA,aAGA,MAAMohC,GAAe,IAAAn/B,UA6FrB,OACE,kBAAC,OAAIvnG,UAxFP,WACE,MAAMkpG,EAAa,CAACoS,EAAkB,kBAChC4O,EAAS3iG,EAAQA,EAAM9xB,MAAM,KAAO,GAgB1C,OAdIy0H,EAAOv2H,QACTu2H,EAAO/xH,SAASgyH,IACdjhB,EAAW/zG,KAAK,mBAAmBg1H,IAAS,IAI5C1S,GACFvO,EAAW/zG,KAAK,mCAGdlB,GACFi1G,EAAW/zG,KAAK,aAGX+zG,EAAWtzG,KAAK,IACzB,CAqEkBqzG,IAEZv5E,EACI,kBAAC,SAAM+3F,QAASxxH,EAAIgK,MAtE9B,WACE,MAAM8D,EAAS,CAAC,EAMhB,OAJI0zG,IACF1zG,EAAO2zG,UAAYD,GAGd1zG,CACT,CA8DqCsjH,IAAoB33F,GAC/C,KAEN,kBAAC,OAAI1vB,UAAU,6BAzCf,kBAAC,OACCA,UAAU,0BACVC,MAxBN,WACE,MAAM8D,EAAS,CAAC,EAMhB,OAJI0zG,IACF1zG,EAAO2zG,UAAY,eAAeD,aAG7B1zG,CACT,CAgBaujH,IAEP,kBAAC,sIACCmf,SACAzmI,UAAU,oBACNslG,WAHL,CAICnlE,SAjER,SAAwB5jC,GACtB4jC,EAAS5jC,EAAE1E,OAAO8uI,MACpB,EAgEQxgC,IAAKugC,EACLv/H,KAAK,YAGLu/H,EAAaz/B,SAAWy/B,EAAaz/B,QAAQ0/B,MAAMhzI,OAAS,EAExD,kBAAC,UACCqyG,QAad,WACE0gC,EAAaz/B,QAAQvwG,MAAQ,GAC7BypC,EAAS,GACX,EAfch5B,KAAK,SACL,aAAW,eAEX,kBAAC,EAAI,CAACA,KAAK,WAGb,MAqBJi6G,EACI,kBAAC,KAAEphH,UAAU,gCAAiCohH,GAC9C,MAzDFntH,GAAmB,SAAVA,GAA8B,UAAVA,EAEjC,kBAAC,KAAE+L,UAAU,mCACT/L,GAGJ,MAGN,KAsDF,CAEAuyI,GAAUhhC,UAAY,CACpBihC,OAAQ,WACR1+H,SAAU,SACV9R,GAAI,WACJhC,MAAO,cAAoB,CACzB,WACA,WAEFy7B,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEF+nF,WAAY,WACZlhH,KAAM,WACN6qH,KAAM,WACNjhF,SAAU,SACV4hB,YAAa,WACbx6B,MAAO,WACP7wB,MAAO,eAAqBhC,QAC5B4mH,iBAAkB,YAGpB,0SCzJA,MAAMsrB,WAAc,EAAA/tB,UAClB,eAAOguB,CAAS50D,GACd,OACE,kBAAC,OAAIjyE,UAAU,0BACXiyE,EAGR,CAEA,WAAA9rE,CAAYtL,GACVqpH,MAAMrpH,GACN,MAAM,MACJnE,GACEtD,KAAKyH,MAETzH,KAAKmhC,MAAQ,CACXuyG,UAAWpwI,EACXqwI,WAAYrwI,GAGdtD,KAAKm0H,eAAiBn0H,KAAKm0H,eAAenwG,KAAKhkB,KACjD,CAEA,kBAAAsxH,CAAmBC,GACjB,MAAM,QACJqiB,EAAO,MACPtwI,EAAK,SACLypC,GACE/sC,KAAKyH,MAEJmsI,GAAWriB,EAAUjuH,QAAUA,GAElCtD,KAAKiwB,SAAS,CACZ0jH,WAAYrwI,IACX,KACGypC,GACFA,EAASzpC,EACX,GAGN,CAEA,cAAA6wH,CAAehrH,GACb,MAAM,SAAE4jC,EAAQ,QAAE6mG,GAAY5zI,KAAKyH,MAC7ButH,EAAa7rH,EAAE1E,OAAOnB,MAEvBswI,EASH7mG,EAASioF,GARTh1H,KAAKiwB,SAAS,CACZ0jH,WAAY3e,IACX,KACGjoF,GACFA,EAASioF,EACX,GAKN,CAEA,cAAAf,GACE,MAAM,WAAE5P,GAAerkH,KAAKyH,MACtBkJ,EAAS,CAAC,EAMhB,OAJI0zG,IACF1zG,EAAO2zG,UAAYD,GAGd1zG,CACT,CAEA,gBAAAujH,GACE,MAAM,WAAE7P,GAAerkH,KAAKyH,MACtBkJ,EAAS,CAAC,EAMhB,OAJI0zG,IACF1zG,EAAO2zG,UAAY,eAAeD,aAG7B1zG,CACT,CAEA,aAAAqmH,GACE,MAAM,MAAEn2H,GAAUb,KAAKyH,MAEvB,OAAQ5G,GAAmB,SAAVA,GAA8B,UAAVA,EAEjC,kBAAC,KACC+L,UAAU,mCAER/L,GAGJ,IACN,CAEA,aAAAg1G,GACE,MAAM,MACJh1G,EAAK,MACLszB,EAAK,WACLkwF,EAAU,oBACVwvB,EAAmB,qBACnBC,GACE9zI,KAAKyH,MACHquG,EAAa,CAAC,kBACdghB,EAAS3iG,EAAQA,EAAM9xB,MAAM,KAAO,GAwB1C,OAtBIy0H,EAAOv2H,QACTu2H,EAAO/xH,SAASgyH,IACdjhB,EAAW/zG,KAAK,mBAAmBg1H,IAAS,IAI5C8c,GACF/9B,EAAW/zG,KAAK,8BAGd+xI,GACFh+B,EAAW/zG,KAAK,+BAGdsiH,GACFvO,EAAW/zG,KAAK,mCAGdlB,GACFi1G,EAAW/zG,KAAK,aAGX+zG,EAAWtzG,KAAK,IACzB,CAEA,kBAAAuxI,GACE,MAAM,oBACJF,EAAmB,qBACnBC,GACE9zI,KAAKyH,MAET,OACE,kBAAC,OAAImF,UAAU,mBAEXinI,EACIL,GAAMC,SAASI,GACf,KAEJ7zI,KAAKg0I,oBAELF,EACIN,GAAMC,SAASK,GACf,KAIZ,CAEA,iBAAAE,GACE,MAEI,EAAAh0I,KAAKyH,OADPmsI,QAAAA,EAAA,SAAS7mG,EAAQ,MAAEzpC,GACjB,EAD2B4uG,mKAAA,CAC3B,EAD2B,CAA7B,UAAS,WAAU,WAEf,WAAEyhC,GAAe3zI,KAAKmhC,MAC5B,OACE,kBAAC,sIACC8yG,aAAa,MACbrnI,UAAU,oBACNslG,KAHL,CAICnlE,SAAU/sC,KAAKm0H,eACf7wH,MAAQswI,EAAWtwI,EAAQqwI,wBAGjC,CAGA,KAAA9pF,GACE,MAAM,UAAE6pF,GAAc1zI,KAAKmhC,MAE3BnhC,KAAKiwB,SAAS,CACZ0jH,WAAYD,GAEhB,CAEA,MAAAr1B,GACE,MAAM,MACJ/hF,EAAK,GACLz5B,EAAE,oBACFgxI,EAAmB,qBACnBC,EAAoB,KACpB9lB,EAAI,SACJzhG,EAAQ,MACRjpB,GACEtD,KAAKyH,MAET,OACE,kBAAC,OAAImF,UAAW5M,KAAK61G,iBAEjBv5E,EACI,kBAAC,SAAM+3F,QAASxxH,EAAIgK,MAAO7M,KAAKi0H,kBAAoB33F,GACpD,MAEJ/P,GACA,kBAAC,OACC3f,UAAU,4BACVC,MAAO7M,KAAKk0H,oBAGV2f,GAAuBC,EACnB9zI,KAAK+zI,qBACL/zI,KAAKg0I,oBAGThmB,EACI,kBAAC,KAAEphH,UAAU,gCAAiCohH,GAC9C,KAEJhuH,KAAKg3H,iBAITzqG,GAAY,kBAAC,OAAI3f,UAAU,8BAA8BtJ,GAAS,KAI1E,EAGFkwI,GAAMphC,UAAY,CAChBz9F,SAAU,SACV4X,SAAU,SACV1pB,GAAI,WACJ+wI,QAAS,SACT/yI,MAAO,cAAoB,CACzB,WACA,WAEFgzI,oBAAqB,cAAoB,CACvC,YACA,SACA,aAEFC,qBAAsB,cAAoB,CACxC,YACA,SACA,aAEFx3G,MAAO,cAAoB,CACzB,WACA,YACA,WAEF+nF,WAAY,WACZlhH,KAAM,WACN6qH,KAAM,WACNjhF,SAAU,SACV4hB,YAAa,WACbx6B,MAAO,WACP7wB,MAAO,cAAoB,CACzB,WACA,cAIJ,qaCnQA,SAAS4wI,GAAO,EAcbnhC,GAda,SACdlyG,MAAAA,EAAA,SACAksC,EAAQ,SACRxgB,EAAQ,GACR1pB,EAAE,oBACFgxI,EAAmB,qBACnBC,EAAoB,MACpBx3G,EAAK,WACL+nF,EAAU,KACV2J,EAAI,MACJ75F,EAAK,MACL7wB,EAAK,iBACL4kH,EAAmB,IAZL,EAaXhW,mKAAA,CAbW,EAaX,CAZH,QACA,WACA,WACA,KACA,sBACA,uBACA,QACA,aACA,OACA,QACA,QACA,qBAGA,MAAMmjB,GAAW,IAAAlhB,WAEjB,IAAAoU,qBAAoBxV,GAAK,KAAM,CAC7BxrF,MAAO,KACL8tG,EAASxhB,QAAQtsF,OAAO,MAI5B,MAAMksH,EAAY50D,GAChB,kBAAC,OAAIjyE,UAAU,0BACXiyE,GAyDAs1C,EAAkBhrH,IACtB4jC,EAAS5jC,EAAGA,EAAE1E,OAAOnB,MAAM,EAGvB6wI,EAAkB,KACtB,yBAAC,eACCF,aAAa,MACbrnI,UAAU,oBACNslG,WAHL,CAICnlE,SAAUonF,EACV7wH,QACAyvG,IAAKsiB,YACP,EAmBF,OACE,kBAAC,OAAIzoH,UA7De,MACpB,MAAMkpG,EAAa,CAACoS,EAAkB,kBAChC4O,EAAS3iG,EAAQA,EAAM9xB,MAAM,KAAO,GAwB1C,OAtBIy0H,EAAOv2H,QACTu2H,EAAO/xH,SAASgyH,IACdjhB,EAAW/zG,KAAK,mBAAmBg1H,IAAS,IAI5C8c,GACF/9B,EAAW/zG,KAAK,8BAGd+xI,GACFh+B,EAAW/zG,KAAK,+BAGdsiH,GACFvO,EAAW/zG,KAAK,mCAGdlB,GACFi1G,EAAW/zG,KAAK,aAGX+zG,EAAWtzG,KAAK,IAAI,EAmCXqzG,IAEZv5E,EACI,kBAAC,SAAM+3F,QAASxxH,EAAIgK,MAxFA,MACzBw3G,GAAc,CACfC,UAAWD,KAsF0C/nF,GAC/C,MAEJ/P,GACA,kBAAC,OACC3f,UAAU,4BACVC,MAxFwB,MAC3Bw3G,GAAc,CACfC,UAAW,eAAeD,eAyFpBwvB,GAAuBC,EA5B/B,kBAAC,OAAIlnI,UAAU,mBAEXinI,EACIJ,EAASI,GACT,KAEJM,IAEAL,EACIL,EAASK,GACT,MAoBIK,IAGJnmB,EACI,kBAAC,KAAEphH,UAAU,gCAAiCohH,GAC9C,KA3FXntH,GAAmB,SAAVA,GAA8B,UAAVA,EAE1B,kBAAC,KACC+L,UAAU,mCAER/L,GAGJ,MAyFA0rB,GACE,kBAAC,OAAI3f,UAAU,8BACZtJ,GAAS,KAMtB,CAEA4wI,GAAO9hC,UAAY,CACjBz9F,SAAU,SACV4X,SAAU,SACV1pB,GAAI,WACJhC,MAAO,cAAoB,CACzB,WACA,WAEFgzI,oBAAqB,cAAoB,CACvC,YACA,SACA,aAEFC,qBAAsB,cAAoB,CACxC,YACA,SACA,aAEFx3G,MAAO,cAAoB,CACzB,WACA,YACA,WAEF+nF,WAAY,WACZlhH,KAAM,WACN6qH,KAAM,WACNjhF,SAAU,SACV4hB,YAAa,WACbx6B,MAAO,WACP7wB,MAAO,cAAoB,CACzB,WACA,aAEF4kH,iBAAkB,YAGpB,UAAe,IAAA3U,YAAW2gC,ICxL1B,IAF2B,IAAApiC,iBCoB3B,SAASsiC,IAAgB,KACvBxuI,EAAI,SACJyuI,EAAQ,YACRjb,EAAW,SACXrsF,IAEA,MAAMunG,GAAkB,IAAAvgC,cAAawgC,IAC/B,MAAAA,OAAA,EAAAA,EAAkBh0I,QAAS,EACtBg0I,EAAiB9zG,MAAMz7B,IA9BpC,MA8B4C,gBAAAY,EAAKZ,SAAL,IAAWV,SAAS80H,EAAY,IAGjE7gE,KAAK09D,UAAUrwH,GAAMtB,SAAS80H,IACpC,CAACxzH,EAAMwzH,IAEJob,GAAc,IAAAzgC,cAAY,KAC9BhnE,EAASnnC,EAAK,GACb,CAACmnC,EAAUnnC,IAEd,OACE,kBAAC,GAAmBw/G,SAAnB,MAEI35F,GACC6oH,EAAgB7oH,EAAQ8oH,kBAEpB,kBAAC,UACC,kBAAC,WACC,kBAAC,QAAK3nI,UAAU,8BAEZ6e,EAAQgpH,oBACJhpH,EAAQgpH,oBAAoB7uI,GAC5B2yD,KAAK09D,UAAUrwH,IAGvB,kBAAC,QAAKgH,UAAU,kCACd,kBAAC,GACC8lG,SAAuB,WAAb2hC,EAAwB,OAAS,QAC3C1+B,UAAQ,EACR/C,QAAS4hC,EACT7/H,SAAU8W,EAAQ9W,UAAa8W,EAAQipH,eAAiBjpH,EAAQipH,gBAAkBjpH,EAAQkpH,iBAAgC,WAAbN,IAE/G,kBAAC,GACC3hC,SAAUjnF,EAAQuzF,OAAOp5G,EAAK/C,IAAM,aAAe,eACnD8yG,UAAQ,EACR/C,QAAS,IAAMnnF,EAAQmpH,iBAAiBhvI,OAK5CA,EAAKivI,QAED,kBAAC,GACCtiC,WAAY9mF,EAAQuzF,OAAOp5G,EAAK/C,IAChC+J,UAAU,iCAlEX,EAAC6e,EAAS7lB,IAC/B6lB,EAAQqpH,uBACJrpH,EAAQqpH,uBAAuBlvI,GAC/B2yD,KAAK09D,UAAUrwH,EAAKivI,SAiEDE,CAAetpH,EAAS7lB,IA9D3B,EAAC6lB,EAAS7lB,KAC9B,MAAM,OAAEo5G,GAAWvzF,EAEnB,OAAOuzF,EAAOp5G,EAAK/C,IACf,kBAAC,GAAM,CAACgB,SAAS,aACjB,IAAI,EA4DYmxI,CAAcvpH,EAAS7lB,IAI/B,MAKd,CAEAwuI,GAAgBhiC,UAAY,CAC1BxsG,KAAM,eAAqBtE,QAC3B+yI,SAAU,WACVjb,YAAa,WACbrsF,SAAU,UAGZ,YCxFA,SAASkoG,IAAiB,iBACxBC,EAAgB,eAChBC,EAAc,MACdC,EAAK,eACLC,EAAc,SACdtoG,EAAQ,aACRuoG,EAAY,UACZC,EAAS,WACTC,EAAU,gBACVC,EAAe,aACfC,EAAY,cACZC,IAEA,MAAOvc,EAAayB,IAAkB,IAAA5nB,UAAS,IACzCyK,GAAY,IAAAvJ,QAAO,GACnBya,GAAe,IAAAza,UAyBfyhC,GAAiB,IAAA7hC,cAAazwG,IAC9B+xI,EACFA,EAAe/xI,GAEfu3H,EAAev3H,EACjB,GACC,CAAC+xI,IAEEQ,GAAc,IAAA9hC,cAAanuG,IAC/B,IAAIkwI,EAAatxB,gBAAgB4wB,GACjCU,EAAaA,EAAW9/H,QAAQ+/H,GAAenwI,EAAK/C,KAAOkzI,EAAWlzI,KAEtEkqC,EAAS+oG,EAAYlwI,EAAK,GACzB,CAACwvI,IAEJ,SAASY,IACP,OACE,kBAAC,MACCppI,UAAW,yBAA0B4oI,EAAiD,GAAnC,kCACnDziC,IAAK6b,GAGHwmB,EAAMjwI,KAAKS,GACT,kBAAC,IACCyuI,SAAUkB,EACVvwI,KA/CV04G,EAAU7J,SAAW,EAEd6J,EAAU7J,SA8CP9mE,SAAU8oG,EACVzc,YAAakc,EAAe,GAAKlc,EACjCxzH,WAMZ,CAEA,OACE,kBAAC,OAAIgH,UAAU,0BACb,kBAAC,IACCinI,oBACE,kBAAC,EAAI,CAAC9/H,KAAK,WAEb5Q,KAAK,SACL4pC,SAAU6oG,EACVjnF,YAAaumF,EACb5xI,MAAO81H,IAGPgc,EAAM70I,OA/DRi1I,EAEI,kBAAC,IACC50B,SAAUgO,EACVpO,QAASk1B,EAAeD,EACxB/0B,SAAUi1B,EACVh1B,WAAY80B,GAEVO,KAGJA,IAuDE,kBAAC,GAAO,CAAC7hH,MAAM,QACXghH,GAMhB,CAEAF,GAAiB7iC,UAAY,CAC3BkjC,aAAc,SACdD,eAAgB,SAChBE,UAAW,WACXxoG,SAAU,SACVqoG,MAAO,eAAqB/vI,OAC5BowI,gBAAiB,WACjBC,aAAc,WACdR,iBAAkB,WAClBS,cAAe,SACfR,eAAgB,WAChBK,WAAY,UAGd,0SCrHA,MAAMS,GAAc,CAAC3yI,EAAO8xI,IAAUA,EAAMp/H,QAAQpQ,IAAUtC,EAAMgC,MAAMiuF,GAAMA,EAAE1wF,KAAO+C,EAAK/C,OAE9F,SAASqzI,IAAY,aACnBZ,EAAY,iBACZa,EAAgB,SAChBxhI,EAAQ,MACR9T,EAAK,eACLu1I,EAAc,oBACd3B,EAAmB,uBACnBK,EAAsB,iBACtBP,EAAgB,MAChBa,EAAK,gBACLK,EAAe,aACfC,EAAY,cACZC,EAAa,cACbjB,EAAa,KACb1mB,EAAI,MACJ1qH,EAAK,SACLypC,EAAQ,iBACRm7E,EAAmB,KAEnB,MAAOlJ,EAAQq3B,IAAa,IAAApjC,UAAS,CAAC,GAEhC2hC,GAAmB,IAAA7gC,cAAanuG,IACpCywI,GAAWC,IAAgB,sIAAKA,KAAL,CAAiB,CAAC1wI,EAAK/C,KAAMyzI,EAAW1wI,EAAK/C,wBAAM,IAE1EuzI,GAAgBA,EAAexwI,EAAK,GACvC,CAACwwI,IAYEvgC,GAAgB,IAAA9B,cACpB,IAAM,CACJmU,EACA,kBACArnH,GAAS,aAERmV,OAAO4uB,SACPpiC,KAAK,MACR,CAAC0lH,EAAkBrnH,IAGf01I,GAAc,IAAAxiC,cAAY,CAACyiC,EAAU5wI,KACzC,MAAM6wI,EAAajyB,gBAAgBlhH,GAEnCmzI,EAAWp9F,QAAQzzC,GAEnBmnC,EAAS0pG,EAAY7wI,EAAM,QAAQ,GAClC,CAACtC,IAEEozI,GAAc,IAAA3iC,cAAY,CAACprF,EAAU/iB,KACzCmnC,EAASpkB,EAAU/iB,EAAM,UAAU,GAClC,CAACwvI,IAEEuB,GAAgB,IAAAzjC,UAAQ,KAAM,CAClCv+F,WACA8/H,sBACAK,yBACAP,mBACAG,gBACAC,gBAAiBrxI,EAAM/C,OACvBq0I,mBACA51B,YACE,CACFrqG,EACA8/H,EACAK,EACAP,EACAG,EACApxI,EACAsxI,EACA51B,IAGF,OACE,oCACE,kBAAC,OAAIpyG,UAAWipG,KACd,kBAAC,GAAmBxC,SAAnB,CAA4B/vG,MAAOqzI,GAClC,kBAAC,OAAI/pI,UAAU,2BACb,kBAAC,WACGtJ,EAAM/C,OACP,IAAI,WAEJ,IACC41I,GAEJ,kBAAC,WAAI,uBAEDA,IAGN,kBAAC,OAAIvpI,UAAU,kCACb,kBAAC,IACCsoI,iBAAkB,2BAA2BiB,IAC7ChB,eAAgB,YAAYgB,mBAC5Bf,MAAO9xI,EACPypC,SAAU2pG,EACVnB,UAAU,aAEZ,kBAAC,IACCL,iBAAkB,mBAAmBiB,IACrChB,eAAgB,MAAMgB,eACtBA,mBACAb,eAAgBA,EAChBD,eAAgBC,EAChBF,MAAOa,GAAY3yI,EAAO8xI,GAC1BroG,SAAUwpG,EACVf,aAAcG,EACdA,gBACAF,kBACAC,eACAH,UAAU,cAKlB,kBAAC,WAEGvnB,EACI,kBAAC,KAAEphH,UAAU,gCAAiCohH,GAC9C,MAlGFntH,GAAmB,SAAVA,GAA8B,UAAVA,EAEjC,kBAAC,KAAE+L,UAAU,mCACT/L,GAGJ,KAkGR,CAEAq1I,GAAY9jC,UAAY,CACtBkjC,aAAc,SACd3gI,SAAU,SACV9T,MAAO,WACPs1I,iBAAkB,WAClBf,MAAO,eAAqB/vI,OAC5BovI,oBAAqB,SACrBK,uBAAwB,SACxBP,iBAAkB,eAAqBlvI,OACvC0nC,SAAU,SACVqpG,eAAgB,SAChBX,gBAAiB,WACjBC,aAAc,WACdC,cAAe,SACf3nB,KAAM,WACN0mB,cAAe,WACfpxI,MAAO,eAAqB+B,OAC5B6iH,iBAAkB,YAGpB,qaC5JA,SAAS0uB,GAAM,YACbt6G,MAAAA,EAAA,MACAqmB,EAAK,KACLqrE,EAAI,OACJpnG,EAAM,QACNiwH,EAAO,MACP1iH,EAAQ,YACRxf,EAAQ,SACR4X,EAAQ,iBACR27F,EAAmB,IATN,EAUVhW,mKAAA,CAVU,EAUV,CATH,QACA,QACA,OACA,SACA,UACA,QACA,WACA,WACA,qBAGA,MAAM4D,EAAa,CACjBlvF,EAAS,oBAAsB,YAC/BshG,EACA2uB,GAAW,eACP1iH,EAAQA,EAAM9xB,MAAM,KAAK2T,OAAO4uB,SAASz/B,KAAK2iB,GAAM,oBAAoBA,MAAO,IAClFyE,GAAY5X,IAAa,0BAC1BqB,OAAO4uB,SAASpiC,KAAK,KAEvB,OACE,kBAAC,OAAIoK,UAAWkpG,GACd,kBAAC,aACC,kBAAC,oBACKnzD,GACAuvD,WAFL,CAGCn+F,KAAK,QACLY,SAAU4X,GAAY5X,OAEvB2nB,GAEF0xF,GACC,kBAAC,KAAEphH,UAAU,gCAAgCohH,SAIrD,CAEA4oB,GAAMxkC,UAAY,CAEhBz9F,SAAU,SAEV4X,SAAU,SAEV3F,OAAQ,SAERuN,MAAO,WACPwuB,MAAO,eAAqBrhD,QAE5Bg7B,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAGFn5B,KAAM,WAEN0zI,QAAS,SAETvzI,MAAO,WAEP0qH,KAAM,cAAoB,CACxB,WACA,YACA,WAEF9F,iBAAkB,YAGpB,0SC1EA,SAAS4uB,GAAOrvI,GACd,MAeI,EAAAA,GAdFnE,MAAAA,EAAA,SACAypC,EAAQ,OACR7lB,EAAM,QACN0sH,EAAO,MACPt3G,EAAK,WACL+nF,EAAU,GACVxhH,EAAE,KACFmrH,EAAI,SACJzhG,EAAQ,QACR9f,EAAO,MACP5L,EAAK,MACLszB,EAAK,iBACL+zF,EAAmB,IAEjB,EADChW,mKAAA,CACD,EADC,CAbH,QACA,WACA,SACA,UACA,QACA,aACA,KACA,OACA,WACA,UACA,QACA,QACA,sBAGKyhC,EAAYoD,IAAiB,IAAA9jC,UAAS3vG,IAE7C,IAAA8wG,YAAU,KACHw/B,GAAWD,IAAerwI,IAC7ByzI,EAAczzI,GACVypC,GAAUA,EAASzpC,GACzB,GACC,CAACqwI,EAAYrwI,IAEhB,MAAM6wH,GAAiB,IAAApgB,cAAa5qG,IAClC,MAAM6tI,EAAgBvqI,EAAQnH,MAAM0oB,GAAWA,EAAOnrB,KAAOsG,EAAE1E,OAAOnB,QAEjEswI,GACHmD,EAAcC,GAEhBjqG,EAASiqG,EAAcn0I,GAAKm0I,EAAgB,KAAK,GAChD,CAACvqI,EAASmnI,EAAS7mG,IAEhBqnF,GAAe,IAAArgB,cAAY,KAC3B7sF,GACFA,EAAO5jB,EACT,GACC,CAAC4jB,IAGE+vH,GAAiB,IAAAljC,cAAY,IACzBlzG,GAAmB,SAAVA,GAA8B,UAAVA,EAEjC,kBAAC,KAAE+L,UAAU,mCACT/L,GAGJ,MACH,CAACA,IAEEg1G,GAAgB,IAAA9B,cACpB,IAAM,CACJ,iBACAmU,KACI/zF,EAAQA,EAAM9xB,MAAM,KAAK8C,KAAK2iB,GAAM,mBAAmBA,MAAO,GAClEu8F,GAAc,kCACdxjH,GAAS,aACTmV,OAAO4uB,SAASpiC,KAAK,MACvB,CAAC0lH,EAAkB/zF,EAAOkwF,EAAYxjH,IAGlCozH,GAAiB,IAAAlgB,cAAY,IAC7BsQ,EAAmB,CAAEC,UAAWD,GAC7B,CAAC,GACP,CAACA,IAEE6P,GAAmB,IAAAngB,cAAY,IAC/BsQ,EAAmB,CAAEC,UAAW,eAAeD,aAC5C,CAAC,GACP,CAACA,IAEE6yB,GAAqB,IAAAnjC,cAAY,KACrC,MAAMmoB,EAAc0X,GAAWtwI,EAAQA,EAAQqwI,EAE/C,OACE,kBAAC,uIACC/mI,UAAU,+BACNslG,KAFL,CAGCnlE,SAAUonF,EACVjtG,OAAQktG,EACR9wH,MAAO44H,EAAcA,EAAYr5H,GAAK,iBAGpC4J,EAAQtH,KAAK6oB,GACX,kBAAC,UAAOhpB,IAAKgpB,EAAOnrB,GAAIS,MAAO0qB,EAAOnrB,IAClCmrB,EAAO7qB,gBAIjB,GAED,CAACywI,EAAStwI,EAAOqwI,EAAYxf,EAAgBC,EAAc3nH,EAASylG,IAEvE,OACE,kBAAC,OAAItlG,UAAWipG,KAEZv5E,EACI,kBAAC,SAAM+3F,QAASxxH,EAAIgK,MAAOonH,KAAoB33F,GAC/C,MAEJ/P,GACA,kBAAC,OACC3f,UAAU,4BACVC,MAAOqnH,KAELgjB,IAEAlpB,EACI,kBAAC,KAAEphH,UAAU,gCAAiCohH,GAC9C,KAEJipB,KAGL1qH,GAAY,kBAAC,OAAI3f,UAAU,8BAA8BtJ,GAAS,KAGzE,CAEAwzI,GAAO1kC,UAAY,CACjBz9F,SAAU,SACV4X,SAAU,SACV1pB,GAAI,WACJ+wI,QAAS,SACT/yI,MAAO,cAAoB,CACzB,WACA,WAEF4L,QAAS,eAAqBpH,OAC9Bi3B,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEF+nF,WAAY,WACZlhH,KAAM,WACN6qH,KAAM,WACN9mG,OAAQ,SACR6lB,SAAU,SACV4hB,YAAa,WACbx6B,MAAO,WACP7wB,MAAO,cAAoB,CACzB,WACA,aAEF4kH,iBAAkB,YAGpB,0SCpJA,SAASivB,GAAe1vI,GACtB,MAAM,gBACJ2vI,EAAe,MACfhC,EAAK,aACLiC,EAAY,MACZ/zI,EAAK,eACL6xI,EAAiB,gCACjBpoG,EAAQ,MACR5Y,EAAK,WACLmjH,EAAU,iBACVpvB,EAAmB,IACjBzgH,EAEE8vI,EAAkBjzH,IACtB,MAAMkzH,EAAmBhzB,gBAAgBlhH,GACnCm0I,EAAeD,EAAiB7xI,WACnC9C,GAAO01D,KAAK09D,UAAUpzH,KAAQ01D,KAAK09D,UAClC5wH,MAAMoB,QAAQ5D,GACVyhB,EAAM7f,OAAOnB,MAAMjB,MAAM,KACzBiiB,EAAM7f,OAAOnB,SAIrB,GAAIghB,EAAM7f,OAAOskG,UAA6B,IAAlB0uC,EAAqB,CAC/C,MAAMpgB,EAAY/yG,EAAM7f,OAAOnB,MAAMjB,MAAM,KACrC45H,EAAa5E,EAAU92H,OAAS,EAAI82H,EAAY/yG,EAAM7f,OAAOnB,MAEnEk0I,EAAiBz1I,KAAKk6H,EACxB,MAAY33G,EAAM7f,OAAOskG,SAAW0uC,GAAgB,GAClDD,EAAiB5vI,OAAO6vI,EAAc,GAGpC1qG,GACFA,EAASyqG,EACX,EAGIE,EAA2B7rB,IAC/B,MAAM/V,EAAa,GAUnB,OARIshC,GACFthC,EAAW/zG,KAAK,wCAGd8pH,GACF/V,EAAW/zG,KAAK,qCAGX+zG,EAAWtzG,KAAK,IAAI,EAO7B,OACE,kBAAC,+HAAI,IAAKiF,WAAT,CAAgB0sB,MAAOA,GAAS,UAAWvnB,UAAW,uBAAuBs7G,QAEzEktB,EAAM70I,OAQH60I,EAAMjwI,KAAI,CAACS,EAAMhB,KACjB,yBAAC,GAAKwwG,KAAL,CAECpwG,IAAKJ,EACLgI,UAAW8qI,EAAwBp0I,EAAMgB,SAASsB,EAAK0xI,MAEvD,kBAAC,aACC,kBAAC,OAAI1qI,UAAU,6BACZyqI,EAAeA,EAAazxI,GAAQA,EAAKzC,MAE5C,kBAAC,SACC4Q,KAAK,WACLg1F,SA3BGisB,EA2BgB1xH,EA3BJyxH,EA2BWnvH,EAAK0xI,GA3BF1yG,QAC3CowF,EAAW1vH,MAAMqyI,GAAWp/E,KAAK09D,UAAUlB,KAAex8D,KAAK09D,UAAU0hB,OA4B3D5qG,SAAUwqG,EAAevzH,KAAKpe,GAC9BtC,MAAOsC,EAAK0xI,KAGZF,EACI,kBAAC,EAAI,CAACrjI,KAAMqjI,IACZ,OAnCF,IAACpiB,EAAYD,CAuCtB,IA9BC,kBAAC,MAAGnoH,UAAU,yCACZ,kBAAC,GAAO,CAACunB,MAAM,QACZghH,UAgCjB,CAEAgC,GAAe/kC,UAAY,CACzBgjC,MAAO,eAAqB/vI,OAC5BgyI,aAAc,cAAoB,CAChC,SACA,YACA,WACA,WAEF/zI,MAAO,eAAqB+B,OAC5B0nC,SAAU,SACVuqG,WAAY,WACZnC,eAAgB,WAChBiC,gBAAiB,cAAoB,CACnC,SACA,YACA,aAEFjjH,MAAO,WACP+zF,iBAAkB,YAGpBivB,GAAe7jC,aAAe,CAC5B8hC,MAAO,GACPkC,WAAY,KACZh0I,MAAO,IAGT,sWC/HA,SAASs0I,GAAS,YAChB/0I,GAAAA,EAAA,MACA8/C,EAAK,MACLrmB,EAAK,KACL0xF,EAAI,MACJntH,EAAK,MACLszB,EAAK,WACLkwF,EAAU,MACV/gH,EAAK,SACLipB,EAAQ,iBACR27F,GAVgB,EAWbhW,mKAAA,CAXa,EAWb,CAVH,KACA,QACA,QACA,OACA,QACA,QACA,aACA,QACA,WACA,qBAGA,MAAMjkG,EAAU,CACd,iBACAi6G,KACI/zF,EAAQA,EAAM9xB,MAAM,KAAK8C,KAAK2iB,GAAM,mBAAmBA,MAAO,GAClEu8F,GAAc,kCACdxjH,GAAS,aACTmV,OAAO4uB,SAASpiC,KAAK,KAsBvB,OACE,kBAAC,OAAIoK,UAAWqB,GAEZquB,EACI,kBAAC,SAAM+3F,QAASxxH,EAAIgK,MAvBxBw3G,EAAmB,CAAEC,UAAWD,GAC7B,CAAC,GAsB+C/nF,GAC/C,MAEJ/P,GACA,kBAAC,OACC3f,UAAU,4BACVC,MAxBFw3G,EAAmB,CAAEC,UAAW,eAAeD,aAC5C,CAAC,GAyBF,kBAAC,kBACCz3G,UAAU,oBACNslG,GACAvvD,GAEFr/C,GAGF0qH,EACI,kBAAC,KAAEphH,UAAU,gCAAiCohH,GAC9C,KA/BJntH,GAAmB,SAAVA,GAA8B,UAAVA,EAEjC,kBAAC,KAAE+L,UAAU,mCACT/L,GAGJ,MA8BD0rB,GAAY,kBAAC,OAAI3f,UAAU,8BAA8BtJ,GAAS,KAGzE,CAEAs0I,GAASxlC,UAAY,CAEnBz9F,SAAU,SAEV4X,SAAU,SACVo2B,MAAO,eAAqBrhD,QAE5BT,MAAO,WAEPy7B,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAGF+nF,WAAY,WAEZlhH,KAAM,WAEN6qH,KAAM,WAENjhF,SAAU,SACVlqC,GAAI,WAEJsxB,MAAO,WAEP7wB,MAAO,WAEP4kH,iBAAkB,YAGpB,YCzGA,IAFsB,IAAApW,iBCCtB,MAAM+lC,WAAmB,EAAApyB,UACvB,yBAAOqyB,CAAmBrsH,GACxB,MAAO,CAAC,yBAA0B,2BAA2BA,EAAQ1X,QAAQvR,KAAK,IACpF,CAEA,WAAAuQ,CAAYtL,GACVqpH,MAAMrpH,GAENzH,KAAK+3I,SAAU,IAAAr5B,YACjB,CAEA,iBAAA0S,GACE,MAAM,QAAE3lG,EAAO,MAAEnoB,GAAUtD,KAAKyH,MAE5BgkB,EAAQnoB,QAAUA,GACpBmoB,EAAQusH,gBAAgBh4I,KAAK+3I,QAEjC,CAEA,kBAAAzmB,CAAmBC,GACjB,MAAM,QAAE9lG,EAAO,MAAEnoB,GAAUtD,KAAKyH,MAE5B8pH,EAAU9lG,QAAQnoB,QAAUmoB,EAAQnoB,OAASmoB,EAAQnoB,QAAUA,GACjEmoB,EAAQusH,gBAAgBh4I,KAAK+3I,QAEjC,CAEA,QAAAhrG,CAASzoB,GACP,MAAM,QAAEmH,EAAO,MAAEnoB,GAAUtD,KAAKyH,OAC1B,SAAEkN,EAAQ,SAAE4X,GAAad,EAE3B9W,GAAY4X,GAIhBd,EAAQwsH,eAAgC,WAAjBxsH,EAAQ1X,MAAqB0X,EAAQnoB,MAAQA,EAAOghB,EAC7E,CAEA,MAAA+5F,GACE,MAAM,QACJ5yF,EAAO,MAAE6Q,EAAK,KAAEn5B,EAAI,MAAEG,GACpBtD,KAAKyH,MACT,OACE,kBAAC,MAAGmF,UAAW,sBAAqB6e,EAAQnoB,OAA2B,WAAjBmoB,EAAQ1X,MAAqB0X,EAAQnoB,QAAUA,EAAuC,GAA7B,4BAAmCyvG,IAAK/yG,KAAK+3I,SAC1J,kBAAC,aACC,kBAAC,SACChkI,KAAuB,WAAjB0X,EAAQ1X,KAAoB,WAAa,QAC/C5Q,OACA4lG,QAASt9E,EAAQnoB,QAAUA,EAC3BypC,SAAU/sC,KAAK+sC,SAAS/oB,KAAKhkB,MAC7BsD,UAGAg5B,EACI,kBAAC,YAAOA,GACR,kBAAC,QAAK1vB,UAAU,gBAAe,KAGlB,WAAjB6e,EAAQ1X,KACJ,kBAAC,QAAKnH,UAAWirI,GAAWC,mBAAmBrsH,KAC/C,MAKd,EAGFosH,GAAWzlC,UAAY,CACrB3mF,QAAS,eAAqBnqB,QAC9Bg7B,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEFn5B,KAAM,WACNG,MAAO,YAGT,0SC9EA,SAAS40I,GAAkB,EAAuBnlC,GAAvB,SAAEr+C,SAAAA,GAAF,EAAew9C,mKAAA,CAAf,EAAe,CAAb,aAC3B,OACE,kBAAC,GAAckT,SAAd,MACG35F,IACA,yBAAC,+HAAU,IAAKymF,WAAf,CAAqBzmF,UAAkBsnF,UACrCr+C,QAGP,GAEJ,CAEAwjF,GAAkB9lC,UAAY,CAC5B19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,cAIJ,UAAe,IAAA6+C,YAAW2kC,ICnB1B,SAASC,IAAO,UACdvrI,EAAS,SACT+H,EAAQ,SACR4X,EAAQ,KACRwhB,EAAI,MACJ5Z,EAAK,UACLjC,EAAS,OACTkmH,EAAM,iBACNlwB,EAAmB,YACnBn7E,EAAQ,WACRs3E,EAAU,MACV/nF,EAAK,UACL+7G,EAAS,SACT3jF,EAAQ,KACR3gD,EAAI,MACJzQ,EAAK,MACLzC,IAEA,MAAOy3I,EAAaC,IAAkB,IAAAtlC,UAAS,MACzCulC,GAAW,IAAArkC,UACXskC,GAAY,IAAAtkC,UAEZlmG,EAAU,CACdi6G,EACAt7G,EACA,aACA,wBAAwB2f,GAAY5X,IACpC,eAAeo5B,GAAQ,OACvB,eAAe5Z,IACf,eAAejC,IACfkmH,GAAU,uBACVpiI,OAAO4uB,SAASpiC,KAAK,KAEjBy1I,GAAiB,IAAAlkC,cAAY,CAACghB,EAAWzwG,KACxCyoB,GACLA,EAASgoF,EAAWzwG,EAAM,GACzB,CAACyoB,IAEEknF,GAAiB,IAAAlgB,cAAY,IAC7BsQ,EAAmB,CAAEC,UAAWD,GAC7B,CAAC,GACP,CAACA,IAEEq0B,GAAgB,IAAA3kC,cAAY,KAChC,IAAKukC,GAAeD,EAClB,MAAO,CAAC,EAGV,MAAMM,EAAgBL,EAAYzkC,QAAQzjG,YAK1C,MAAO,CACLJ,KALqBsoI,EAAYzkC,QAAQjsF,wBAAwB5X,KAC9CyoI,EAAU5kC,QAAQjsF,wBAAwB5X,KAI7C,EAAV,KACNL,MAAUgpI,EAAgB,EAAnB,KACR,GACA,CAACL,EAAaD,IAEXjlC,GAAe,IAAAF,UAAQ,KAAM,CACjCv+F,WACA4X,WACA0rH,iBACAD,gBAAiBO,EACjBF,YACAtkI,OACAzQ,WACE,CAACqR,EAAU4X,EAAU0rH,EAAgBI,EAAWtkI,EAAMzQ,IAE1D,OACE,oCACE,kBAAC,OAAIsJ,UAAWqB,EAAS8kG,IAAK0lC,GAC5B,kBAAC,GAAcplC,SAAd,CACC/vG,MAAO8vG,GAGL92E,EACI,kBAAC,SAAM1vB,UAAU,oBAAoBC,MAAOonH,KAAmB33F,GAC/D,KAEN,kBAAC,MAAG1vB,UAAW,sCAAsCmH,KAAQlT,GAAS,oDAAoDw3I,EAAY,YAAc,mBAChJ3jF,EAES,aAAT3gD,GAAwBskI,EAEpB,KADA,kBAAC,MAAGzrI,UAAU,oBAAoBmmG,IAAKylC,EAAU3rI,MAAO6rI,SAOlE73I,GACE,kBAAC,KAAE+L,UAAU,mCACT/L,GAMd,CAEAs3I,GAAO/lC,UAAY,CACjB19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEF9nD,UAAW,WACX+H,SAAU,SACV4X,SAAU,SACV1rB,MAAO,WACPksC,SAAU,SACVzQ,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEF+nF,WAAY,WACZlwF,MAAO,WACPpgB,KAAM,WACNg6B,KAAM,WACNsqG,UAAW,SACXnmH,UAAW,WACX5uB,MAAO,cAAoB,CACzB,SACA,aAEF80I,OAAQ,SACRlwB,iBAAkB,YAGpBiwB,GAAO7kC,aAAe,CACpB+kC,WAAW,EACXlkH,MAAO,UACPpgB,KAAM,SACNme,UAAW,OAGbimH,GAAO/iC,KAAO,GAEd,YCvJMn7F,GAAS,CACb2+H,cAAe,KAGV,SAASC,GAAU7zI,EAAK5B,GAC7B6W,GAAOjV,GAAO5B,CAChB,CAEA,2bCJA,SAAS01I,GAAiB51I,EAAKkP,GAG7B,OADgBA,EAAK/P,MAAM,UAAU2T,OAAO4uB,SAC7BuyF,QAAO,CAAC4hB,EAAKxlD,IAAOwlD,EAAMA,EAAIxlD,GAAKwlD,GAAM71I,EAC1D,CAgBA,MA8EA,GA9EgB,CAACuiH,EAAWh5G,IAAa,QAxBzCwoB,EAwByC,KAAE08G,MAAAA,EAAA,KAAOqH,GAAT,EAAkBC,mKAAA,CAAlB,EAAkB,CAAhB,QAAO,SAChD,MAAMC,EAA2D,iBAAzB,GAAON,cAA6B,GAAOA,cAAgB,KAC5FO,EAASC,IAAc,IAAAnmC,UAAS0+B,EAAMruI,OACvCyT,EAAO,IACXsiI,iBAAkB,KAAM,CAAG,GAC3BC,gBAAgB,GACb7sI,GAGC8sI,GAAmB,IAAAxlC,aAAY,MACnC,MAAMoK,EAAM1tB,GAAMA,IAClB,OAC0B,IAAxBwoD,EAAWr9B,WACkB,IAAzB,GAAOg9B,gBAA4BK,EAAWr9B,SAE3CuC,EA7Bb,SAAkB1tB,EAAGrxB,GACnB,IAAIwrB,EACJ,MAAO,IAAI9iD,KACTn/B,aAAaiiF,GACbA,EAAYniF,WAAWgoF,EAAGrxB,KAAUt3B,EAAK,CAE7C,CA4BW,CAASq2E,EAH+B,iBAAxB86B,EAAWr9B,SAC9Bq9B,EAAWr9B,SACXs9B,EAEL,EAZoC,GAY/B,IAYAnsG,EAAYysG,IAChB,MAAMl2I,GAVF,OADYiwF,EAWOimD,QAVnB,EAAAjmD,EAAG9uF,QACqB,UAAtB8uF,EAAE9uF,OAAOg1I,UAA2C,aAAlBlmD,EAAE9uF,OAAOsP,MAAyC,UAAlBw/E,EAAE9uF,OAAOsP,KAGxEw/E,EAAE9uF,OAAOnB,MAFPiwF,EAAE9uF,OAAOskG,QAIbxV,EAPQ,IAACA,EAYhB,MAAMmmD,EAAgB3iI,EAAKsiI,iBAAiB/1I,EAAOquI,EAAOqH,EAAMC,GAE1DtwH,EAAW+wH,EAAcp2I,OAAS21I,EAAW31I,OAASA,EAC5Di2I,GAAiB,KACoB,mBAAxBN,EAAWlsG,UACpBksG,EAAWlsG,SAASpkB,GAEtBgpH,EAAM5kG,SAAS,CAAEtoC,OAAQ,IAAEtB,KAAMwuI,EAAMxuI,KAAMG,MAAOqlB,GAAa+wH,IAAkB,IAErFN,EAAWzwH,EAAS,EAGhBgxH,GAAab,GAAiBE,EAAKY,QAASjI,EAAMxuI,OAASyhC,QAAQo0G,EAAKa,eACzEf,GAAiBE,EAAKlL,OAAQ6D,EAAMxuI,MACnCtC,EAA6B,iBAAd84I,EAAyBA,EAAY,IAE1D,IAAAvlC,YAAU,KACRglC,EAAWzH,EAAMruI,MAAM,GACtB,CAACquI,EAAMruI,SAGN,OAAA2xB,EAAA+jH,EAAKc,aAAL,EAAA7kH,EAAatgB,YAAUskI,EAAWtkI,UAAW,GAEjD,MAAMolI,EAAiB,MAAKd,GAM5B,cALOc,EAAen+B,SAElBt6G,OAAO04I,OAAOD,EAAgB,mBAA6C,IAA7BA,EAAentI,kBAAgCmtI,EAAentI,UAC5GtL,OAAO04I,OAAOD,EAAgB,kBAA2C,IAA5BA,EAAerlF,iBAA+BqlF,EAAerlF,SAG5G,kBAAC+wD,EAAA,kBACKksB,GADL,CAEC9wI,UACKkW,EAAKuiI,eAAiB,CAAE1F,SAAS,GAAS,CAAC,GAC5CmG,GAJL,CAKChxC,QAAqC,iBAArBkwC,EAAW31I,MAAqBquI,EAAMruI,QAAU21I,EAAW31I,MAAQquI,EAAMruI,MACzFypC,WACAzpC,MAAO61I,EACPx2F,MAAO,CAAEr/C,MAAO61I,EAASpsG,cAC3B,EC/FJ,GAAe,GAAQ,GAAU,CAC/BssG,iBAAmB/1I,IAAU,CAC3BylG,QAASzlG,MCFb,GAAe,GAAQ,ICAvB,GAAe,GAAQ,ICAvB,GAAe,GAAQ,ICAvB,GAAe,GAAQ,ICAvB,GAAe,GAAQ,GAAc,CACnC+1I,iBAAmB/1I,IAAU,CAAGA,MAAOA,GAAS,OCDlD,GAAe,GAAQ,ICAvB,GAAe,GAAQ,ICAvB,GAAe,GAAQ,GAAO,CAAEg2I,gBAAgB,ICAhD,GAAe,GAAQ,ICAvB,GAAe,GAAQ,ICAvB,GAAe,GAAQ,GAAO,CAC5BD,iBAAkB,CAAC/1I,EAAOquI,EAAOqH,EAAMC,KAAe,CACpDlwC,QAASzlG,IAAU21I,EAAW31I,MAC9BA,MAAO21I,EAAW31I,UCHtB,GAAe,GAAQ,GAAQ,CAAEg2I,gBAAgB,ICAjD,GAAe,GAAQ,ICAvB,GAAe,GAAQ,ICAvB,GAAe,GAAQ,6ZCGvB,MAAMW,WAAwB,EAAAx0B,UAC5B,WAAA1yG,CAAYtL,GACVqpH,MAAMrpH,GAENzH,KAAKm0H,eAAiBn0H,KAAKm0H,eAAenwG,KAAKhkB,KACjD,CAEA,cAAAm0H,CAAe7wH,GACb,MAAM,MAAEq/C,GAAU3iD,KAAK0xG,MACjB,SAAE3kE,GAAa4V,EAErB5V,GAAS,KAAAmsE,QAAO51G,GAClB,CAEA,aAAA0zH,GACE,MAAM,KAAElzE,EAAI,mBAAEmrF,GAAuBjvI,KAAKyH,OACpC,QAAEmyI,EAAO,MAAE/4I,EAAK,QAAEi6B,GAAYgpB,EACpC,IAAIttC,EAAU,KAQd,OANIojI,GAAW/4I,GAASouI,EAAmBpuI,GACzC2V,EAAUy4H,EAAmBpuI,GACpB+4I,GAAW9+G,IACpBtkB,EAAU,WAGLA,CACT,CAEA,MAAA6nG,GACE,MAA2B,EAAAr+G,KAAKyH,OAAxBk7C,MAAAA,GAAmB,EAATuvD,mKAAA,CAAS,EAAT,CAAV,UAER,OACE,kBAAC,eACKvvD,GACAuvD,KAFL,CAGCrxG,MAAOb,KAAKg3H,sCAGlB,EAGFijB,GAAgB7nC,UAAY,CAC1BzvD,MAAO,eAAqBrhD,QAC5BwiD,KAAM,eAAqBxiD,QAC3B2tI,mBAAoB,eAAqB3tI,SAG3C,0SC/CA,MAAM44I,WAAsB,EAAAz0B,UAC1B,WAAA1yG,CAAYtL,GACVqpH,MAAMrpH,GAENzH,KAAKm0H,eAAiBn0H,KAAKm0H,eAAenwG,KAAKhkB,KACjD,CAEA,cAAAm0H,CAAe7wH,GACb,MAAM,MAAEq/C,GAAU3iD,KAAKyH,OACjB,SAAEslC,GAAa4V,EAErB5V,GAAS,KAAAmsE,QAAO51G,GAClB,CAEA,gBAAA62I,GACE,MAAM,KAAEr2F,EAAI,mBAAEmrF,GAAuBjvI,KAAKyH,OACpC,QAAEmyI,EAAO,MAAE/4I,EAAK,QAAEi6B,GAAYgpB,EACpC,IAAIttC,EAAU,KAQd,OANIojI,GAAW/4I,GAASouI,EAAmBpuI,GACzC2V,EAAUy4H,EAAmBpuI,GACpB+4I,GAAW9+G,IACpBtkB,EAAU,WAGLA,CACT,CAEA,MAAA6nG,GACE,MAAW52G,mKAAA,CAAUzH,KAAKyH,MAAf,IAEX,OACE,kBAAC,mIACKA,KADL,CAECslC,SAAU/sC,KAAKm0H,eACf7wH,MAAQmE,EAAMk7C,MAAMr/C,MAA4BmE,EAAMk7C,MAAMr/C,MAAMk5G,OAAtC/0G,EAAMk7C,MAAMr/C,MACxCzC,MAAOb,KAAKm6I,yCAGlB,EAGFD,GAAc9nC,UAAY,CACxBtuD,KAAM,eAAqBxiD,QAC3BqhD,MAAO,eAAqBrhD,QAC5B2tI,mBAAoB,eAAqB3tI,SAG3C,0SChDA,MAAM84I,WAAsB,EAAA30B,UAC1B,WAAA1yG,CAAYtL,GACVqpH,MAAMrpH,GAENzH,KAAKm0H,eAAiBn0H,KAAKm0H,eAAenwG,KAAKhkB,KACjD,CAEA,cAAAm0H,CAAe7wH,GACb,MAAM,MAAEq/C,GAAU3iD,KAAKyH,OACjB,SAAEslC,GAAa4V,EAErB5V,GAAS,KAAAmsE,QAAO51G,GAClB,CAEA,MAAA+6G,GACE,MAII,EAAAr+G,KAAKyH,OAHPitD,SAAAA,EAAA,MACA/R,GAEE,EADCuvD,mKAAA,CACD,EADC,CAFH,WACA,UAIF,OACE,kBAAC,mIACKA,KADL,CAEC0f,SAAU5xH,KAAKm0H,eACf7D,aAAc3tE,EAAMr/C,oBAEnBoxD,UAGP,EAGF0lF,GAAchoC,UAAY,CACxB19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEF/R,MAAO,eAAqBrhD,SAG9B,qaC5CA,SAAS+4I,GAAgB5yI,GACvB,MAA2B,EAAAA,GAAnBk7C,MAAAA,GAAmB,EAATuvD,mKAAA,CAAS,EAAT,CAAV,UAER,OACE,kBAAC,eACKvvD,GACAuvD,KAFL,CAGCnlE,SAAU4V,EAAM5V,SAChBzpC,MAAOq/C,EAAMr/C,MAAQq/C,EAAMr/C,MAAQ,wBAGzC,CAEA+2I,GAAgBjoC,UAAY,CAC1BzvD,MAAO,eAAqBrhD,SAG9B,0SChBA,SAASg5I,GAAe7yI,GACtB,MAAM,MAAEk7C,EAAK,KAAEmB,EAAI,mBAAEmrF,GAAuBxnI,EAmB5C,OACE,kBAAC,mIACKA,KADL,CAECslC,SARoBzpC,IACtB,MAAM,SAAEypC,GAAa4V,EACrB5V,GAAS,KAAAmsE,QAAO51G,GAAO,EAOrBA,MAAQq/C,EAAMr/C,MAAsBq/C,EAAMr/C,MAAMk5G,OAA1B75D,EAAMr/C,MAC5BzC,MAtBqB,MACvB,MAAM,QAAE+4I,EAAO,MAAE/4I,EAAK,QAAEi6B,GAAYgpB,EACpC,IAAIttC,EAAU,KAOd,OALIojI,GAAW/4I,GAASouI,EAAmBpuI,GACzC2V,EAAUy4H,EAAmBpuI,GACpB+4I,GAAW9+G,IACpBtkB,EAAU,WAELA,CAAO,EAaL2jI,yBAGb,CAEAG,GAAeloC,UAAY,CACzBtuD,KAAM,eAAqBxiD,QAC3BqhD,MAAO,eAAqBrhD,QAC5B2tI,mBAAoB,eAAqB3tI,SAG3C,0SCpCA,SAASi5I,GAAe9yI,GACtB,MAKI,EAAAA,GAJFk7C,MAAAA,EAAA,KACAmB,EAAI,mBACJmrF,GAEE,EADC/8B,mKAAA,CACD,EADC,CAHH,QACA,OACA,uBAqBF,OACE,kBAAC,mIACKA,KADL,CAECnlE,SAToBzpC,IACtB,MAAM,SAAEypC,GAAa4V,EAErB5V,GAAS,KAAAmsE,QAAO51G,GAAO,EAOrBA,MAAQq/C,EAAMr/C,MAAsBq/C,EAAMr/C,MAAMk5G,OAA1B75D,EAAMr/C,MAC5BzC,MAtBuB,MACzB,MAAM,QAAE+4I,EAAO,MAAE/4I,GAAUijD,EAC3B,IAAIttC,EAAU,KAMd,OAJIojI,GAAW/4I,GAASouI,EAAmBpuI,KACzC2V,EAAUy4H,EAAmBpuI,IAGxB2V,CAAO,EAcLgkI,yBAGb,CAEAD,GAAenoC,UAAY,CACzBtuD,KAAM,eAAqBxiD,QAC3BqhD,MAAO,eAAqBrhD,QAC5B2tI,mBAAoB,eAAqB3tI,SAG3C,0SCzCA,MAAMm5I,WAA0B,EAAAh1B,UAC9B,WAAA1yG,CAAYtL,GACVqpH,MAAMrpH,GAENzH,KAAKm0H,eAAiBn0H,KAAKm0H,eAAenwG,KAAKhkB,KACjD,CAEA,cAAAm0H,CAAe7wH,GACb,MAAM,MAAEq/C,GAAU3iD,KAAKyH,OACjB,SAAEslC,GAAa4V,EAErB5V,GAAS,KAAAmsE,QAAO51G,GAClB,CAEA,oBAAAo3I,GACE,MAAM,KAAE52F,EAAI,mBAAEmrF,GAAuBjvI,KAAKyH,OACpC,QAAEmyI,EAAO,MAAE/4I,GAAUijD,EAC3B,IAAIttC,EAAU,KAMd,OAJIojI,GAAW/4I,GAASouI,EAAmBpuI,KACzC2V,EAAUy4H,EAAmBpuI,IAGxB2V,CACT,CAEA,MAAA6nG,GACE,MAAW52G,mKAAA,CAAUzH,KAAKyH,MAAf,IAEX,OACE,kBAAC,mIACKA,KADL,CAECslC,SAAU/sC,KAAKm0H,eACf7wH,MAAQmE,EAAMk7C,MAAMr/C,MAAemE,EAAMk7C,MAAMr/C,MAAMk5G,OAAzB,KAC5B37G,MAAOb,KAAK06I,6CAGlB,EAGFD,GAAkBroC,UAAY,CAC5BzvD,MAAO,eAAqBrhD,QAC5BwiD,KAAM,eAAqBxiD,QAC3B2tI,mBAAoB,eAAqB3tI,SAG3C,qaC/CA,MAAMq5I,WAAuB,EAAAl1B,UAC3B,aAAAuR,GACE,MAAM,KAAElzE,EAAI,mBAAEmrF,GAAuBjvI,KAAKyH,OACpC,QAAEmyI,EAAO,MAAE/4I,EAAK,QAAEi6B,GAAYgpB,EACpC,IAAIttC,EAAU,KAQd,OANIojI,GAAW/4I,GAASouI,EAAmBpuI,GACzC2V,EAAUy4H,EAAmBpuI,GACpB+4I,GAAW9+G,IACpBtkB,EAAU,WAGLA,CACT,CAEA,MAAA6nG,GACE,MAA2B,EAAAr+G,KAAKyH,OAAxBk7C,MAAAA,GAAmB,EAATuvD,mKAAA,CAAS,EAAT,CAAV,UAER,OACE,kBAAC,eACKvvD,GACAuvD,KAFL,CAGCrxG,MAAOb,KAAKg3H,sCAGlB,EAGF2jB,GAAevoC,UAAY,CACzBzvD,MAAO,eAAqBrhD,QAC5BwiD,KAAM,eAAqBxiD,QAC3B2tI,mBAAoB,eAAqB3tI,SAG3C,qaClCA,MAAMs5I,WAAmB,EAAAn1B,UACvB,aAAAuR,GACE,MAAM,KAAElzE,EAAI,mBAAEmrF,GAAuBjvI,KAAKyH,OACpC,QAAEmyI,EAAO,MAAE/4I,EAAK,QAAEi6B,GAAYgpB,EACpC,IAAIttC,EAAU,KAQd,OANIojI,GAAW/4I,GAASouI,EAAmBpuI,GACzC2V,EAAUy4H,EAAmBpuI,GACpB+4I,GAAW9+G,IACpBtkB,EAAU,WAGLA,CACT,CAEA,MAAA6nG,GACE,MAA2B,EAAAr+G,KAAKyH,OAAxBk7C,MAAAA,GAAmB,EAATuvD,mKAAA,CAAS,EAAT,CAAV,UAER,OACE,kBAAC,eACKvvD,GACAuvD,KAFL,CAGC0hC,SAAO,EACP/yI,MAAOb,KAAKg3H,sCAGlB,EAGF4jB,GAAWxoC,UAAY,CACrBtuD,KAAM,eAAqBxiD,QAC3BqhD,MAAO,eAAqBrhD,QAC5B2tI,mBAAoB,eAAqB3tI,SAG3C,0SClCA,MAAMu5I,WAAyB,EAAAp1B,UAC7B,WAAA1yG,CAAYtL,GACVqpH,MAAMrpH,GAENzH,KAAKm0H,eAAiBn0H,KAAKm0H,eAAenwG,KAAKhkB,KACjD,CAEA,cAAAm0H,CAAe7wH,GACb,MAAM,MAAEq/C,GAAU3iD,KAAKyH,OACjB,SAAEslC,GAAa4V,EAErB5V,GAAS,KAAAmsE,QAAO51G,GAClB,CAEA,mBAAAw3I,GACE,MAAM,KAAEh3F,EAAI,mBAAEmrF,GAAuBjvI,KAAKyH,OACpC,QAAEmyI,EAAO,MAAE/4I,EAAK,QAAEi6B,GAAYgpB,EACpC,IAAIttC,EAAU,KAQd,OANIojI,GAAW/4I,GAASouI,EAAmBpuI,GACzC2V,EAAUy4H,EAAmBpuI,GACpB+4I,GAAW9+G,IACpBtkB,EAAU,WAGLA,CACT,CAEA,MAAA6nG,GACE,MAAW52G,mKAAA,CAAUzH,KAAKyH,MAAf,IAEX,OACE,kBAAC,mIACKA,KADL,CAECslC,SAAU/sC,KAAKm0H,eACf7wH,MAAQmE,EAAMk7C,MAAMr/C,MAA4BmE,EAAMk7C,MAAMr/C,MAAMk5G,OAAtC/0G,EAAMk7C,MAAMr/C,MACxCzC,MAAOb,KAAK86I,4CAGlB,EAGFD,GAAiBzoC,UAAY,CAC3BzvD,MAAO,eAAqBrhD,QAC5BwiD,KAAM,eAAqBxiD,QAC3B2tI,mBAAoB,eAAqB3tI,SAG3C,qaChDA,MAAMy5I,WAAoB,EAAAt1B,UACxB,WAAA1yG,CAAYtL,GACVqpH,MAAMrpH,GAENzH,KAAKg7I,YAAch7I,KAAKg7I,YAAYh3H,KAAKhkB,KAC3C,CAEA,WAAAg7I,CAAY9e,GACV,MAAM,MAAEv5E,GAAU3iD,KAAKyH,OACjB,SAAEslC,EAAQ,MAAEzpC,GAAUq/C,EAE5B5V,GAAS,KAAAmsE,aAAuB,IAAhBgjB,EAA4BA,EAAc54H,GAC5D,CAEA,cAAA2zI,GACE,MAAM,KAAEnzF,EAAI,mBAAEmrF,GAAuBjvI,KAAKyH,OACpC,QAAEmyI,EAAO,MAAE/4I,EAAK,QAAEi6B,GAAYgpB,EACpC,IAAIttC,EAAU,KAQd,OANIojI,GAAW/4I,GAASouI,EAAmBpuI,GACzC2V,EAAUy4H,EAAmBpuI,GACpB+4I,GAAW9+G,IACpBtkB,EAAU,WAGLA,CACT,CAEA,MAAA6nG,GACE,MAA2B,EAAAr+G,KAAKyH,OAAxBk7C,MAAAA,GAAmB,EAATuvD,mKAAA,CAAS,EAAT,CAAV,UAER,OACE,kBAAC,eACKvvD,GACAuvD,KAFL,CAGC0hC,SAAO,EACP/yI,MAAOb,KAAKi3I,iBACZlqG,SAAU/sC,KAAKg7I,YACf9zH,OAAQlnB,KAAKg7I,YACb13I,MAAQq/C,EAAMr/C,MAAsBq/C,EAAMr/C,MAAMk5G,OAA1B75D,EAAMr/C,4BAGlC,EAGFy3I,GAAY3oC,UAAY,CACtBzvD,MAAO,eAAqBrhD,QAC5BwiD,KAAM,eAAqBxiD,QAC3B2tI,mBAAoB,eAAqB3tI,SAG3C,0SCnDA,MAAM25I,WAA4B,EAAAx1B,UAChC,WAAA1yG,CAAYtL,GACVqpH,MAAMrpH,GAENzH,KAAKm0H,eAAiBn0H,KAAKm0H,eAAenwG,KAAKhkB,KACjD,CAEA,cAAAm0H,CAAe7wH,GACb,MAAM,MAAEq/C,GAAU3iD,KAAKyH,MAEvBk7C,EAAM5V,UAAS,KAAAmsE,QAAO51G,GACxB,CAEA,MAAA+6G,GACE,MAA+B,EAAAr+G,KAAKyH,OAA5BitD,SAAAA,GAAuB,EAAVjtD,mKAAA,CAAU,EAAV,CAAb,aAER,OACE,kBAAC,mIACKA,KADL,CAECslC,SAAU/sC,KAAKm0H,eACf7wH,MAAOmE,EAAMk7C,MAAMr/C,MAAQmE,EAAMk7C,MAAMr/C,MAAMk5G,OAAS,yBAG5D,EAGFy+B,GAAoB7oC,UAAY,CAC9B19C,SAAU,cAAoB,CAC5B,WAEF3nB,SAAU,SACV4V,MAAO,eAAqBrhD,SAG9B,0SClCA,MAAM45I,WAAoB,EAAAz1B,UACxB,WAAA1yG,CAAYtL,GACVqpH,MAAMrpH,GAENzH,KAAKm0H,eAAiBn0H,KAAKm0H,eAAenwG,KAAKhkB,KACjD,CAEA,cAAAm0H,CAAe7wH,GACb,MAAM,MAAEq/C,GAAU3iD,KAAKyH,MAEvBk7C,EAAM5V,UAAS,KAAAmsE,QAAO51G,GACxB,CAEA,MAAA+6G,GACE,MAA+B,EAAAr+G,KAAKyH,OAA5BitD,SAAAA,GAAuB,EAAVjtD,mKAAA,CAAU,EAAV,CAAb,aAER,OACE,kBAAC,mIACKA,KADL,CAECslC,SAAU/sC,KAAKm0H,eACf7wH,MAAOmE,EAAMk7C,MAAMr/C,oBAElBoxD,UAGP,EAGFwmF,GAAY9oC,UAAY,CACtB19C,SAAU,cAAoB,CAC5B,WAEF3nB,SAAU,SACV4V,MAAO,eAAqBrhD,SAG9B,YCvCe,SAAS65I,GAAYh6I,EAAU6H,KAAU8+B,GACtD,MAAMy1E,GAAgB,IAAApJ,WAEtB,IAAAC,YAAU,KACRmJ,EAAc1J,QAAU1yG,CAAQ,GAC/B,CAACA,KAGJ,IAAAizG,YAAU,KAIR,GAAIprG,QAAuC,CACzC,MAAMnG,EAAKg8B,aAJb,WACE0+E,EAAc1J,WAAW/rE,EAC3B,GAE+B9+B,GAC7B,MAAO,IAAM41B,cAAc/7B,EAC7B,IACC,CAACmG,GACN","sources":["webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/ace.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/ext-beautify.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/ext-searchbox.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-css.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-golang.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-javascript.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-json.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-jsx.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-python.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-xml.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/theme-github.js","webpack://@tyk-technologies/tyk-ui/./node_modules/react-dom/client.js","webpack://@tyk-technologies/tyk-ui/./node_modules/react-fast-compare/index.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react-dom\"","webpack://@tyk-technologies/tyk-ui/webpack/bootstrap","webpack://@tyk-technologies/tyk-ui/webpack/runtime/amd define","webpack://@tyk-technologies/tyk-ui/webpack/runtime/compat get default export","webpack://@tyk-technologies/tyk-ui/webpack/runtime/define property getters","webpack://@tyk-technologies/tyk-ui/webpack/runtime/hasOwnProperty shorthand","webpack://@tyk-technologies/tyk-ui/webpack/runtime/make namespace object","webpack://@tyk-technologies/tyk-ui/webpack/runtime/node module decorator","webpack://@tyk-technologies/tyk-ui/webpack/runtime/publicPath","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react\"","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"prop-types\"","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Icon/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemTrigger.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItem.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemHeader.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react-transition-group\"","webpack://@tyk-technologies/tyk-ui/./src/hooks/useComponentSize/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/useEventListener/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Collapsible/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemContent.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Button/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/ButtonGroup/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardHeader.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardBody.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardFooter.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardTitle.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardTitleGroup.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardSubTitle.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardSummary.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardTitleIcon.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/index.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"echarts\"","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"immutable\"","webpack://@tyk-technologies/tyk-ui/./src/utils/debounce/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/usePrevious/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Loader/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Message/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Chart/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/useTimeout/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/js/ToastMessage.js","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/js/ToastContainer.js","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/CopyToClipboard/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/js/ModalFooter.js","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/js/ModalBody.js","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Confirm/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/FixedWrapper/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/InfiniteScroller/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/FloatingContainer/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/InfoNote/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/List/js/ListItem.js","webpack://@tyk-technologies/tyk-ui/./src/components/List/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/NavBar/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Navigation/js/NavigationItem.js","webpack://@tyk-technologies/tyk-ui/./src/components/Navigation/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/panel-context.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/js/PanelBody.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/js/PanelFooter.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/js/PanelHeader.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Pill/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/RevealPanel/js/RevealPanelService.js","webpack://@tyk-technologies/tyk-ui/./src/components/RevealPanel/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/tabs-context.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/js/TabContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/js/TabContent.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/js/Tab.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tooltip/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/TextEllipsis/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Pagination/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/tableContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/header-cell.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/header.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Checkbox/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/cell.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/row.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/body.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/index.js","webpack://@tyk-technologies/tyk-ui/./src/layout/Column/index.js","webpack://@tyk-technologies/tyk-ui/./src/layout/Row/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/dropdown-context.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/js/DropdownItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/DropdownTrigger.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/DropdownListWrapper.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/useDrodpownContext.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/DropdowItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/useDropdown.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react-ace\"","webpack://@tyk-technologies/tyk-ui/./src/form/components/CodeEditor/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/js/Value.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/js/List.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/index.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"flatpickr\"","webpack://@tyk-technologies/tyk-ui/./src/form/components/DatePicker/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/isDate/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/toDate/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/defaultOptions/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/defaultLocale/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/format/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/isValid/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/subMilliseconds/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/addMilliseconds/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList/js/EditableListForm.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/Header.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/ListHeader.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/FieldsList.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/with-validation.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/validate-values.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/FileInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Input/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Input2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/js/MultiselectContext.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/js/MultiselectItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/js/MultiselectPanel.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Radio/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Select/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/SelectableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Textarea/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/js/ToggleContext.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/js/ToggleItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/js/ToggleItemWrapper.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/index.js","webpack://@tyk-technologies/tyk-ui/./src/utils/config/config.js","webpack://@tyk-technologies/tyk-ui/./src/utils/formik/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCheckbox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCodeEditor/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCombobox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCombobox2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikDatePicker/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikEditableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikEditableList2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikFileInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikInput2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikMultiselect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikRadio/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikSelect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikSelectableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikTextarea/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikToggle/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldCodeEditor/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldCombobox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldDropdown/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldPagination/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldCombobox2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldDatePicker/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldEditableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldFileInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldMultiselect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldSelect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldSelectableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldToggle/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/useInterval/index.js"],"sourcesContent":["/* ***** BEGIN LICENSE BLOCK *****\n * Distributed under the BSD license:\n *\n * Copyright (c) 2010, Ajax.org B.V.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n * * Neither the name of Ajax.org B.V. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * ***** END LICENSE BLOCK ***** */\n\n/**\n * Define a module along with a payload\n * @param module a name for the payload\n * @param payload a function to call with (require, exports, module) params\n */\n\n(function() {\n\nvar ACE_NAMESPACE = \"ace\";\n\nvar global = (function() { return this; })();\nif (!global && typeof window != \"undefined\") global = window; // strict mode\n\n\nif (!ACE_NAMESPACE && typeof requirejs !== \"undefined\")\n return;\n\n\nvar define = function(module, deps, payload) {\n if (typeof module !== \"string\") {\n if (define.original)\n define.original.apply(this, arguments);\n else {\n console.error(\"dropping module because define wasn\\'t a string.\");\n console.trace();\n }\n return;\n }\n if (arguments.length == 2)\n payload = deps;\n if (!define.modules[module]) {\n define.payloads[module] = payload;\n define.modules[module] = null;\n }\n};\n\ndefine.modules = {};\ndefine.payloads = {};\n\n/**\n * Get at functionality define()ed using the function above\n */\nvar _require = function(parentId, module, callback) {\n if (typeof module === \"string\") {\n var payload = lookup(parentId, module);\n if (payload != undefined) {\n callback && callback();\n return payload;\n }\n } else if (Object.prototype.toString.call(module) === \"[object Array]\") {\n var params = [];\n for (var i = 0, l = module.length; i < l; ++i) {\n var dep = lookup(parentId, module[i]);\n if (dep == undefined && require.original)\n return;\n params.push(dep);\n }\n return callback && callback.apply(null, params) || true;\n }\n};\n\nvar require = function(module, callback) {\n var packagedModule = _require(\"\", module, callback);\n if (packagedModule == undefined && require.original)\n return require.original.apply(this, arguments);\n return packagedModule;\n};\n\nvar normalizeModule = function(parentId, moduleName) {\n // normalize plugin requires\n if (moduleName.indexOf(\"!\") !== -1) {\n var chunks = moduleName.split(\"!\");\n return normalizeModule(parentId, chunks[0]) + \"!\" + normalizeModule(parentId, chunks[1]);\n }\n // normalize relative requires\n if (moduleName.charAt(0) == \".\") {\n var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n moduleName = base + \"/\" + moduleName;\n\n while(moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n var previous = moduleName;\n moduleName = moduleName.replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n }\n }\n return moduleName;\n};\n\n/**\n * Internal function to lookup moduleNames and resolve them by calling the\n * definition function if needed.\n */\nvar lookup = function(parentId, moduleName) {\n moduleName = normalizeModule(parentId, moduleName);\n\n var module = define.modules[moduleName];\n if (!module) {\n module = define.payloads[moduleName];\n if (typeof module === 'function') {\n var exports = {};\n var mod = {\n id: moduleName,\n uri: '',\n exports: exports,\n packaged: true\n };\n\n var req = function(module, callback) {\n return _require(moduleName, module, callback);\n };\n\n var returnValue = module(req, exports, mod);\n exports = returnValue || mod.exports;\n define.modules[moduleName] = exports;\n delete define.payloads[moduleName];\n }\n module = define.modules[moduleName] = exports || module;\n }\n return module;\n};\n\nfunction exportAce(ns) {\n var root = global;\n if (ns) {\n if (!global[ns])\n global[ns] = {};\n root = global[ns];\n }\n\n if (!root.define || !root.define.packaged) {\n define.original = root.define;\n root.define = define;\n root.define.packaged = true;\n }\n\n if (!root.require || !root.require.packaged) {\n require.original = root.require;\n root.require = require;\n root.require.packaged = true;\n }\n}\n\nexportAce(ACE_NAMESPACE);\n\n})();\n\nace.define(\"ace/lib/es6-shim\",[\"require\",\"exports\",\"module\"], function(require, exports, module){function defineProp(obj, name, val) {\n Object.defineProperty(obj, name, {\n value: val,\n enumerable: false,\n writable: true,\n configurable: true\n });\n}\nif (!String.prototype.startsWith) {\n defineProp(String.prototype, \"startsWith\", function (searchString, position) {\n position = position || 0;\n return this.lastIndexOf(searchString, position) === position;\n });\n}\nif (!String.prototype.endsWith) {\n defineProp(String.prototype, \"endsWith\", function (searchString, position) {\n var subjectString = this;\n if (position === undefined || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n });\n}\nif (!String.prototype.repeat) {\n defineProp(String.prototype, \"repeat\", function (count) {\n var result = \"\";\n var string = this;\n while (count > 0) {\n if (count & 1)\n result += string;\n if ((count >>= 1))\n string += string;\n }\n return result;\n });\n}\nif (!String.prototype.includes) {\n defineProp(String.prototype, \"includes\", function (str, position) {\n return this.indexOf(str, position) != -1;\n });\n}\nif (!Object.assign) {\n Object.assign = function (target) {\n if (target === undefined || target === null) {\n throw new TypeError(\"Cannot convert undefined or null to object\");\n }\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n Object.keys(source).forEach(function (key) {\n output[key] = source[key];\n });\n }\n }\n return output;\n };\n}\nif (!Object.values) {\n Object.values = function (o) {\n return Object.keys(o).map(function (k) {\n return o[k];\n });\n };\n}\nif (!Array.prototype.find) {\n defineProp(Array.prototype, \"find\", function (predicate) {\n var len = this.length;\n var thisArg = arguments[1];\n for (var k = 0; k < len; k++) {\n var kValue = this[k];\n if (predicate.call(thisArg, kValue, k, this)) {\n return kValue;\n }\n }\n });\n}\nif (!Array.prototype.findIndex) {\n defineProp(Array.prototype, \"findIndex\", function (predicate) {\n var len = this.length;\n var thisArg = arguments[1];\n for (var k = 0; k < len; k++) {\n var kValue = this[k];\n if (predicate.call(thisArg, kValue, k, this)) {\n return k;\n }\n }\n });\n}\nif (!Array.prototype.includes) {\n defineProp(Array.prototype, \"includes\", function (item, position) {\n return this.indexOf(item, position) != -1;\n });\n}\nif (!Array.prototype.fill) {\n defineProp(Array.prototype, \"fill\", function (value) {\n var O = this;\n var len = O.length >>> 0;\n var start = arguments[1];\n var relativeStart = start >> 0;\n var k = relativeStart < 0\n ? Math.max(len + relativeStart, 0)\n : Math.min(relativeStart, len);\n var end = arguments[2];\n var relativeEnd = end === undefined ? len : end >> 0;\n var final = relativeEnd < 0\n ? Math.max(len + relativeEnd, 0)\n : Math.min(relativeEnd, len);\n while (k < final) {\n O[k] = value;\n k++;\n }\n return O;\n });\n}\nif (!Array.of) {\n defineProp(Array, \"of\", function () {\n return Array.prototype.slice.call(arguments);\n });\n}\n\n});\n\nace.define(\"ace/lib/fixoldbrowsers\",[\"require\",\"exports\",\"module\",\"ace/lib/es6-shim\"], function(require, exports, module){// vim:set ts=4 sts=4 sw=4 st:\n\"use strict\";\nrequire(\"./es6-shim\");\n\n});\n\nace.define(\"ace/lib/deep_copy\",[\"require\",\"exports\",\"module\"], function(require, exports, module){exports.deepCopy = function deepCopy(obj) {\n if (typeof obj !== \"object\" || !obj)\n return obj;\n var copy;\n if (Array.isArray(obj)) {\n copy = [];\n for (var key = 0; key < obj.length; key++) {\n copy[key] = deepCopy(obj[key]);\n }\n return copy;\n }\n if (Object.prototype.toString.call(obj) !== \"[object Object]\")\n return obj;\n copy = {};\n for (var key in obj)\n copy[key] = deepCopy(obj[key]);\n return copy;\n};\n\n});\n\nace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\",\"ace/lib/deep_copy\"], function(require, exports, module){\"use strict\";\nexports.last = function (a) {\n return a[a.length - 1];\n};\nexports.stringReverse = function (string) {\n return string.split(\"\").reverse().join(\"\");\n};\nexports.stringRepeat = function (string, count) {\n var result = '';\n while (count > 0) {\n if (count & 1)\n result += string;\n if (count >>= 1)\n string += string;\n }\n return result;\n};\nvar trimBeginRegexp = /^\\s\\s*/;\nvar trimEndRegexp = /\\s\\s*$/;\nexports.stringTrimLeft = function (string) {\n return string.replace(trimBeginRegexp, '');\n};\nexports.stringTrimRight = function (string) {\n return string.replace(trimEndRegexp, '');\n};\nexports.copyObject = function (obj) {\n var copy = {};\n for (var key in obj) {\n copy[key] = obj[key];\n }\n return copy;\n};\nexports.copyArray = function (array) {\n var copy = [];\n for (var i = 0, l = array.length; i < l; i++) {\n if (array[i] && typeof array[i] == \"object\")\n copy[i] = this.copyObject(array[i]);\n else\n copy[i] = array[i];\n }\n return copy;\n};\nexports.deepCopy = require(\"./deep_copy\").deepCopy;\nexports.arrayToMap = function (arr) {\n var map = {};\n for (var i = 0; i < arr.length; i++) {\n map[arr[i]] = 1;\n }\n return map;\n};\nexports.createMap = function (props) {\n var map = Object.create(null);\n for (var i in props) {\n map[i] = props[i];\n }\n return map;\n};\nexports.arrayRemove = function (array, value) {\n for (var i = 0; i <= array.length; i++) {\n if (value === array[i]) {\n array.splice(i, 1);\n }\n }\n};\nexports.escapeRegExp = function (str) {\n return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g, '\\\\$1');\n};\nexports.escapeHTML = function (str) {\n return (\"\" + str).replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(/ 0xffff ? 2 : 1;\n};\n\n});\n\nace.define(\"ace/lib/useragent\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nexports.OS = {\n LINUX: \"LINUX\",\n MAC: \"MAC\",\n WINDOWS: \"WINDOWS\"\n};\nexports.getOS = function () {\n if (exports.isMac) {\n return exports.OS.MAC;\n }\n else if (exports.isLinux) {\n return exports.OS.LINUX;\n }\n else {\n return exports.OS.WINDOWS;\n }\n};\nvar _navigator = typeof navigator == \"object\" ? navigator : {};\nvar os = (/mac|win|linux/i.exec(_navigator.platform) || [\"other\"])[0].toLowerCase();\nvar ua = _navigator.userAgent || \"\";\nvar appName = _navigator.appName || \"\";\nexports.isWin = (os == \"win\");\nexports.isMac = (os == \"mac\");\nexports.isLinux = (os == \"linux\");\nexports.isIE =\n (appName == \"Microsoft Internet Explorer\" || appName.indexOf(\"MSAppHost\") >= 0)\n ? parseFloat((ua.match(/(?:MSIE |Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/) || [])[1])\n : parseFloat((ua.match(/(?:Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/) || [])[1]); // for ie\nexports.isOldIE = exports.isIE && exports.isIE < 9;\nexports.isGecko = exports.isMozilla = ua.match(/ Gecko\\/\\d+/);\nexports.isOpera = typeof opera == \"object\" && Object.prototype.toString.call(window.opera) == \"[object Opera]\";\nexports.isWebKit = parseFloat(ua.split(\"WebKit/\")[1]) || undefined;\nexports.isChrome = parseFloat(ua.split(\" Chrome/\")[1]) || undefined;\nexports.isSafari = parseFloat(ua.split(\" Safari/\")[1]) && !exports.isChrome || undefined;\nexports.isEdge = parseFloat(ua.split(\" Edge/\")[1]) || undefined;\nexports.isAIR = ua.indexOf(\"AdobeAIR\") >= 0;\nexports.isAndroid = ua.indexOf(\"Android\") >= 0;\nexports.isChromeOS = ua.indexOf(\" CrOS \") >= 0;\nexports.isIOS = /iPad|iPhone|iPod/.test(ua) && !window.MSStream;\nif (exports.isIOS)\n exports.isMac = true;\nexports.isMobile = exports.isIOS || exports.isAndroid;\n\n});\n\nace.define(\"ace/lib/dom\",[\"require\",\"exports\",\"module\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar useragent = require(\"./useragent\");\nvar XHTML_NS = \"http://www.w3.org/1999/xhtml\";\nexports.buildDom = function buildDom(arr, parent, refs) {\n if (typeof arr == \"string\" && arr) {\n var txt = document.createTextNode(arr);\n if (parent)\n parent.appendChild(txt);\n return txt;\n }\n if (!Array.isArray(arr)) {\n if (arr && arr.appendChild && parent)\n parent.appendChild(arr);\n return arr;\n }\n if (typeof arr[0] != \"string\" || !arr[0]) {\n var els = [];\n for (var i = 0; i < arr.length; i++) {\n var ch = buildDom(arr[i], parent, refs);\n ch && els.push(ch);\n }\n return els;\n }\n var el = document.createElement(arr[0]);\n var options = arr[1];\n var childIndex = 1;\n if (options && typeof options == \"object\" && !Array.isArray(options))\n childIndex = 2;\n for (var i = childIndex; i < arr.length; i++)\n buildDom(arr[i], el, refs);\n if (childIndex == 2) {\n Object.keys(options).forEach(function (n) {\n var val = options[n];\n if (n === \"class\") {\n el.className = Array.isArray(val) ? val.join(\" \") : val;\n }\n else if (typeof val == \"function\" || n == \"value\" || n[0] == \"$\") {\n el[n] = val;\n }\n else if (n === \"ref\") {\n if (refs)\n refs[val] = el;\n }\n else if (n === \"style\") {\n if (typeof val == \"string\")\n el.style.cssText = val;\n }\n else if (val != null) {\n el.setAttribute(n, val);\n }\n });\n }\n if (parent)\n parent.appendChild(el);\n return el;\n};\nexports.getDocumentHead = function (doc) {\n if (!doc)\n doc = document;\n return doc.head || doc.getElementsByTagName(\"head\")[0] || doc.documentElement;\n};\nexports.createElement = function (tag, ns) {\n return document.createElementNS ?\n document.createElementNS(ns || XHTML_NS, tag) :\n document.createElement(tag);\n};\nexports.removeChildren = function (element) {\n element.innerHTML = \"\";\n};\nexports.createTextNode = function (textContent, element) {\n var doc = element ? element.ownerDocument : document;\n return doc.createTextNode(textContent);\n};\nexports.createFragment = function (element) {\n var doc = element ? element.ownerDocument : document;\n return doc.createDocumentFragment();\n};\nexports.hasCssClass = function (el, name) {\n var classes = (el.className + \"\").split(/\\s+/g);\n return classes.indexOf(name) !== -1;\n};\nexports.addCssClass = function (el, name) {\n if (!exports.hasCssClass(el, name)) {\n el.className += \" \" + name;\n }\n};\nexports.removeCssClass = function (el, name) {\n var classes = el.className.split(/\\s+/g);\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n classes.splice(index, 1);\n }\n el.className = classes.join(\" \");\n};\nexports.toggleCssClass = function (el, name) {\n var classes = el.className.split(/\\s+/g), add = true;\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n add = false;\n classes.splice(index, 1);\n }\n if (add)\n classes.push(name);\n el.className = classes.join(\" \");\n return add;\n};\nexports.setCssClass = function (node, className, include) {\n if (include) {\n exports.addCssClass(node, className);\n }\n else {\n exports.removeCssClass(node, className);\n }\n};\nexports.hasCssString = function (id, doc) {\n var index = 0, sheets;\n doc = doc || document;\n if ((sheets = doc.querySelectorAll(\"style\"))) {\n while (index < sheets.length) {\n if (sheets[index++].id === id) {\n return true;\n }\n }\n }\n};\nexports.removeElementById = function (id, doc) {\n doc = doc || document;\n if (doc.getElementById(id)) {\n doc.getElementById(id).remove();\n }\n};\nvar strictCSP;\nvar cssCache = [];\nexports.useStrictCSP = function (value) {\n strictCSP = value;\n if (value == false)\n insertPendingStyles();\n else if (!cssCache)\n cssCache = [];\n};\nfunction insertPendingStyles() {\n var cache = cssCache;\n cssCache = null;\n cache && cache.forEach(function (item) {\n importCssString(item[0], item[1]);\n });\n}\nfunction importCssString(cssText, id, target) {\n if (typeof document == \"undefined\")\n return;\n if (cssCache) {\n if (target) {\n insertPendingStyles();\n }\n else if (target === false) {\n return cssCache.push([cssText, id]);\n }\n }\n if (strictCSP)\n return;\n var container = target;\n if (!target || !target.getRootNode) {\n container = document;\n }\n else {\n container = target.getRootNode();\n if (!container || container == target)\n container = document;\n }\n var doc = container.ownerDocument || container;\n if (id && exports.hasCssString(id, container))\n return null;\n if (id)\n cssText += \"\\n/*# sourceURL=ace/css/\" + id + \" */\";\n var style = exports.createElement(\"style\");\n style.appendChild(doc.createTextNode(cssText));\n if (id)\n style.id = id;\n if (container == doc)\n container = exports.getDocumentHead(doc);\n container.insertBefore(style, container.firstChild);\n}\nexports.importCssString = importCssString;\nexports.importCssStylsheet = function (uri, doc) {\n exports.buildDom([\"link\", { rel: \"stylesheet\", href: uri }], exports.getDocumentHead(doc));\n};\nexports.scrollbarWidth = function (doc) {\n var inner = exports.createElement(\"ace_inner\");\n inner.style.width = \"100%\";\n inner.style.minWidth = \"0px\";\n inner.style.height = \"200px\";\n inner.style.display = \"block\";\n var outer = exports.createElement(\"ace_outer\");\n var style = outer.style;\n style.position = \"absolute\";\n style.left = \"-10000px\";\n style.overflow = \"hidden\";\n style.width = \"200px\";\n style.minWidth = \"0px\";\n style.height = \"150px\";\n style.display = \"block\";\n outer.appendChild(inner);\n var body = (doc && doc.documentElement) || (document && document.documentElement);\n if (!body)\n return 0;\n body.appendChild(outer);\n var noScrollbar = inner.offsetWidth;\n style.overflow = \"scroll\";\n var withScrollbar = inner.offsetWidth;\n if (noScrollbar === withScrollbar) {\n withScrollbar = outer.clientWidth;\n }\n body.removeChild(outer);\n return noScrollbar - withScrollbar;\n};\nexports.computedStyle = function (element, style) {\n return window.getComputedStyle(element, \"\") || {};\n};\nexports.setStyle = function (styles, property, value) {\n if (styles[property] !== value) {\n styles[property] = value;\n }\n};\nexports.HAS_CSS_ANIMATION = false;\nexports.HAS_CSS_TRANSFORMS = false;\nexports.HI_DPI = useragent.isWin\n ? typeof window !== \"undefined\" && window.devicePixelRatio >= 1.5\n : true;\nif (useragent.isChromeOS)\n exports.HI_DPI = false;\nif (typeof document !== \"undefined\") {\n var div = document.createElement(\"div\");\n if (exports.HI_DPI && div.style.transform !== undefined)\n exports.HAS_CSS_TRANSFORMS = true;\n if (!useragent.isEdge && typeof div.style.animationName !== \"undefined\")\n exports.HAS_CSS_ANIMATION = true;\n div = null;\n}\nif (exports.HAS_CSS_TRANSFORMS) {\n exports.translate = function (element, tx, ty) {\n element.style.transform = \"translate(\" + Math.round(tx) + \"px, \" + Math.round(ty) + \"px)\";\n };\n}\nelse {\n exports.translate = function (element, tx, ty) {\n element.style.top = Math.round(ty) + \"px\";\n element.style.left = Math.round(tx) + \"px\";\n };\n}\n\n});\n\nace.define(\"ace/lib/net\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){/*\n * based on code from:\n *\n * @license RequireJS text 0.25.0 Copyright (c) 2010-2011, The Dojo Foundation All Rights Reserved.\n * Available via the MIT or new BSD license.\n * see: http://github.com/jrburke/requirejs for details\n */\n\"use strict\";\nvar dom = require(\"./dom\");\nexports.get = function (url, callback) {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n callback(xhr.responseText);\n }\n };\n xhr.send(null);\n};\nexports.loadScript = function (path, callback) {\n var head = dom.getDocumentHead();\n var s = document.createElement('script');\n s.src = path;\n head.appendChild(s);\n s.onload = s.onreadystatechange = function (_, isAbort) {\n if (isAbort || !s.readyState || s.readyState == \"loaded\" || s.readyState == \"complete\") {\n s = s.onload = s.onreadystatechange = null;\n if (!isAbort)\n callback();\n }\n };\n};\nexports.qualifyURL = function (url) {\n var a = document.createElement('a');\n a.href = url;\n return a.href;\n};\n\n});\n\nace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nexports.inherits = function (ctor, superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n};\nexports.mixin = function (obj, mixin) {\n for (var key in mixin) {\n obj[key] = mixin[key];\n }\n return obj;\n};\nexports.implement = function (proto, mixin) {\n exports.mixin(proto, mixin);\n};\n\n});\n\nace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar EventEmitter = {};\nvar stopPropagation = function () { this.propagationStopped = true; };\nvar preventDefault = function () { this.defaultPrevented = true; };\nEventEmitter._emit =\n EventEmitter._dispatchEvent = function (eventName, e) {\n this._eventRegistry || (this._eventRegistry = {});\n this._defaultHandlers || (this._defaultHandlers = {});\n var listeners = this._eventRegistry[eventName] || [];\n var defaultHandler = this._defaultHandlers[eventName];\n if (!listeners.length && !defaultHandler)\n return;\n if (typeof e != \"object\" || !e)\n e = {};\n if (!e.type)\n e.type = eventName;\n if (!e.stopPropagation)\n e.stopPropagation = stopPropagation;\n if (!e.preventDefault)\n e.preventDefault = preventDefault;\n listeners = listeners.slice();\n for (var i = 0; i < listeners.length; i++) {\n listeners[i](e, this);\n if (e.propagationStopped)\n break;\n }\n if (defaultHandler && !e.defaultPrevented)\n return defaultHandler(e, this);\n };\nEventEmitter._signal = function (eventName, e) {\n var listeners = (this._eventRegistry || {})[eventName];\n if (!listeners)\n return;\n listeners = listeners.slice();\n for (var i = 0; i < listeners.length; i++)\n listeners[i](e, this);\n};\nEventEmitter.once = function (eventName, callback) {\n var _self = this;\n this.on(eventName, function newCallback() {\n _self.off(eventName, newCallback);\n callback.apply(null, arguments);\n });\n if (!callback) {\n return new Promise(function (resolve) {\n callback = resolve;\n });\n }\n};\nEventEmitter.setDefaultHandler = function (eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n handlers = this._defaultHandlers = { _disabled_: {} };\n if (handlers[eventName]) {\n var old = handlers[eventName];\n var disabled = handlers._disabled_[eventName];\n if (!disabled)\n handlers._disabled_[eventName] = disabled = [];\n disabled.push(old);\n var i = disabled.indexOf(callback);\n if (i != -1)\n disabled.splice(i, 1);\n }\n handlers[eventName] = callback;\n};\nEventEmitter.removeDefaultHandler = function (eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n return;\n var disabled = handlers._disabled_[eventName];\n if (handlers[eventName] == callback) {\n if (disabled)\n this.setDefaultHandler(eventName, disabled.pop());\n }\n else if (disabled) {\n var i = disabled.indexOf(callback);\n if (i != -1)\n disabled.splice(i, 1);\n }\n};\nEventEmitter.on =\n EventEmitter.addEventListener = function (eventName, callback, capturing) {\n this._eventRegistry = this._eventRegistry || {};\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n listeners = this._eventRegistry[eventName] = [];\n if (listeners.indexOf(callback) == -1)\n listeners[capturing ? \"unshift\" : \"push\"](callback);\n return callback;\n };\nEventEmitter.off =\n EventEmitter.removeListener =\n EventEmitter.removeEventListener = function (eventName, callback) {\n this._eventRegistry = this._eventRegistry || {};\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n return;\n var index = listeners.indexOf(callback);\n if (index !== -1)\n listeners.splice(index, 1);\n };\nEventEmitter.removeAllListeners = function (eventName) {\n if (!eventName)\n this._eventRegistry = this._defaultHandlers = undefined;\n if (this._eventRegistry)\n this._eventRegistry[eventName] = undefined;\n if (this._defaultHandlers)\n this._defaultHandlers[eventName] = undefined;\n};\nexports.EventEmitter = EventEmitter;\n\n});\n\nace.define(\"ace/lib/report_error\",[\"require\",\"exports\",\"module\"], function(require, exports, module){exports.reportError = function reportError(msg, data) {\n var e = new Error(msg);\n e.data = data;\n if (typeof console == \"object\" && console.error)\n console.error(e);\n setTimeout(function () { throw e; });\n};\n\n});\n\nace.define(\"ace/lib/app_config\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\",\"ace/lib/report_error\"], function(require, exports, module){\"no use strict\";\nvar oop = require(\"./oop\");\nvar EventEmitter = require(\"./event_emitter\").EventEmitter;\nvar reportError = require(\"./report_error\").reportError;\nvar optionsProvider = {\n setOptions: function (optList) {\n Object.keys(optList).forEach(function (key) {\n this.setOption(key, optList[key]);\n }, this);\n },\n getOptions: function (optionNames) {\n var result = {};\n if (!optionNames) {\n var options = this.$options;\n optionNames = Object.keys(options).filter(function (key) {\n return !options[key].hidden;\n });\n }\n else if (!Array.isArray(optionNames)) {\n result = optionNames;\n optionNames = Object.keys(result);\n }\n optionNames.forEach(function (key) {\n result[key] = this.getOption(key);\n }, this);\n return result;\n },\n setOption: function (name, value) {\n if (this[\"$\" + name] === value)\n return;\n var opt = this.$options[name];\n if (!opt) {\n return warn('misspelled option \"' + name + '\"');\n }\n if (opt.forwardTo)\n return this[opt.forwardTo] && this[opt.forwardTo].setOption(name, value);\n if (!opt.handlesSet)\n this[\"$\" + name] = value;\n if (opt && opt.set)\n opt.set.call(this, value);\n },\n getOption: function (name) {\n var opt = this.$options[name];\n if (!opt) {\n return warn('misspelled option \"' + name + '\"');\n }\n if (opt.forwardTo)\n return this[opt.forwardTo] && this[opt.forwardTo].getOption(name);\n return opt && opt.get ? opt.get.call(this) : this[\"$\" + name];\n }\n};\nfunction warn(message) {\n if (typeof console != \"undefined\" && console.warn)\n console.warn.apply(console, arguments);\n}\nvar messages;\nvar AppConfig = /** @class */ (function () {\n function AppConfig() {\n this.$defaultOptions = {};\n }\n AppConfig.prototype.defineOptions = function (obj, path, options) {\n if (!obj.$options)\n this.$defaultOptions[path] = obj.$options = {};\n Object.keys(options).forEach(function (key) {\n var opt = options[key];\n if (typeof opt == \"string\")\n opt = { forwardTo: opt };\n opt.name || (opt.name = key);\n obj.$options[opt.name] = opt;\n if (\"initialValue\" in opt)\n obj[\"$\" + opt.name] = opt.initialValue;\n });\n oop.implement(obj, optionsProvider);\n return this;\n };\n AppConfig.prototype.resetOptions = function (obj) {\n Object.keys(obj.$options).forEach(function (key) {\n var opt = obj.$options[key];\n if (\"value\" in opt)\n obj.setOption(key, opt.value);\n });\n };\n AppConfig.prototype.setDefaultValue = function (path, name, value) {\n if (!path) {\n for (path in this.$defaultOptions)\n if (this.$defaultOptions[path][name])\n break;\n if (!this.$defaultOptions[path][name])\n return false;\n }\n var opts = this.$defaultOptions[path] || (this.$defaultOptions[path] = {});\n if (opts[name]) {\n if (opts.forwardTo)\n this.setDefaultValue(opts.forwardTo, name, value);\n else\n opts[name].value = value;\n }\n };\n AppConfig.prototype.setDefaultValues = function (path, optionHash) {\n Object.keys(optionHash).forEach(function (key) {\n this.setDefaultValue(path, key, optionHash[key]);\n }, this);\n };\n AppConfig.prototype.setMessages = function (value) {\n messages = value;\n };\n AppConfig.prototype.nls = function (string, params) {\n if (messages && !messages[string]) {\n warn(\"No message found for '\" + string + \"' in the provided messages, falling back to default English message.\");\n }\n var translated = messages && messages[string] || string;\n if (params) {\n translated = translated.replace(/\\$(\\$|[\\d]+)/g, function (_, name) {\n if (name == \"$\")\n return \"$\";\n return params[name];\n });\n }\n return translated;\n };\n return AppConfig;\n}());\nAppConfig.prototype.warn = warn;\nAppConfig.prototype.reportError = reportError;\noop.implement(AppConfig.prototype, EventEmitter);\nexports.AppConfig = AppConfig;\n\n});\n\nace.define(\"ace/theme/textmate-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \".ace-tm .ace_gutter {\\n background: #f0f0f0;\\n color: #333;\\n}\\n\\n.ace-tm .ace_print-margin {\\n width: 1px;\\n background: #e8e8e8;\\n}\\n\\n.ace-tm .ace_fold {\\n background-color: #6B72E6;\\n}\\n\\n.ace-tm {\\n background-color: #FFFFFF;\\n color: black;\\n}\\n\\n.ace-tm .ace_cursor {\\n color: black;\\n}\\n \\n.ace-tm .ace_invisible {\\n color: rgb(191, 191, 191);\\n}\\n\\n.ace-tm .ace_storage,\\n.ace-tm .ace_keyword {\\n color: blue;\\n}\\n\\n.ace-tm .ace_constant {\\n color: rgb(197, 6, 11);\\n}\\n\\n.ace-tm .ace_constant.ace_buildin {\\n color: rgb(88, 72, 246);\\n}\\n\\n.ace-tm .ace_constant.ace_language {\\n color: rgb(88, 92, 246);\\n}\\n\\n.ace-tm .ace_constant.ace_library {\\n color: rgb(6, 150, 14);\\n}\\n\\n.ace-tm .ace_invalid {\\n background-color: rgba(255, 0, 0, 0.1);\\n color: red;\\n}\\n\\n.ace-tm .ace_support.ace_function {\\n color: rgb(60, 76, 114);\\n}\\n\\n.ace-tm .ace_support.ace_constant {\\n color: rgb(6, 150, 14);\\n}\\n\\n.ace-tm .ace_support.ace_type,\\n.ace-tm .ace_support.ace_class {\\n color: rgb(109, 121, 222);\\n}\\n\\n.ace-tm .ace_keyword.ace_operator {\\n color: rgb(104, 118, 135);\\n}\\n\\n.ace-tm .ace_string {\\n color: rgb(3, 106, 7);\\n}\\n\\n.ace-tm .ace_comment {\\n color: rgb(76, 136, 107);\\n}\\n\\n.ace-tm .ace_comment.ace_doc {\\n color: rgb(0, 102, 255);\\n}\\n\\n.ace-tm .ace_comment.ace_doc.ace_tag {\\n color: rgb(128, 159, 191);\\n}\\n\\n.ace-tm .ace_constant.ace_numeric {\\n color: rgb(0, 0, 205);\\n}\\n\\n.ace-tm .ace_variable {\\n color: rgb(49, 132, 149);\\n}\\n\\n.ace-tm .ace_xml-pe {\\n color: rgb(104, 104, 91);\\n}\\n\\n.ace-tm .ace_entity.ace_name.ace_function {\\n color: #0000A2;\\n}\\n\\n\\n.ace-tm .ace_heading {\\n color: rgb(12, 7, 255);\\n}\\n\\n.ace-tm .ace_list {\\n color:rgb(185, 6, 144);\\n}\\n\\n.ace-tm .ace_meta.ace_tag {\\n color:rgb(0, 22, 142);\\n}\\n\\n.ace-tm .ace_string.ace_regex {\\n color: rgb(255, 0, 0)\\n}\\n\\n.ace-tm .ace_marker-layer .ace_selection {\\n background: rgb(181, 213, 255);\\n}\\n.ace-tm.ace_multiselect .ace_selection.ace_start {\\n box-shadow: 0 0 3px 0px white;\\n}\\n.ace-tm .ace_marker-layer .ace_step {\\n background: rgb(252, 255, 0);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_stack {\\n background: rgb(164, 229, 101);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_bracket {\\n margin: -1px 0 0 -1px;\\n border: 1px solid rgb(192, 192, 192);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_active-line {\\n background: rgba(0, 0, 0, 0.07);\\n}\\n\\n.ace-tm .ace_gutter-active-line {\\n background-color : #dcdcdc;\\n}\\n\\n.ace-tm .ace_marker-layer .ace_selected-word {\\n background: rgb(250, 250, 255);\\n border: 1px solid rgb(200, 200, 250);\\n}\\n\\n.ace-tm .ace_indent-guide {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\n}\\n\\n.ace-tm .ace_indent-guide-active {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC\\\") right repeat-y;\\n}\\n\";\n\n});\n\nace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/theme/textmate-css\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nexports.isDark = false;\nexports.cssClass = \"ace-tm\";\nexports.cssText = require(\"./textmate-css\");\nexports.$id = \"ace/theme/textmate\";\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass, false);\n\n});\n\nace.define(\"ace/config\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/net\",\"ace/lib/dom\",\"ace/lib/app_config\",\"ace/theme/textmate\"], function(require, exports, module){\"no use strict\";\nvar lang = require(\"./lib/lang\");\nvar net = require(\"./lib/net\");\nvar dom = require(\"./lib/dom\");\nvar AppConfig = require(\"./lib/app_config\").AppConfig;\nmodule.exports = exports = new AppConfig();\nvar options = {\n packaged: false,\n workerPath: null,\n modePath: null,\n themePath: null,\n basePath: \"\",\n suffix: \".js\",\n $moduleUrls: {},\n loadWorkerFromBlob: true,\n sharedPopups: false,\n useStrictCSP: null\n};\nexports.get = function (key) {\n if (!options.hasOwnProperty(key))\n throw new Error(\"Unknown config key: \" + key);\n return options[key];\n};\nexports.set = function (key, value) {\n if (options.hasOwnProperty(key))\n options[key] = value;\n else if (this.setDefaultValue(\"\", key, value) == false)\n throw new Error(\"Unknown config key: \" + key);\n if (key == \"useStrictCSP\")\n dom.useStrictCSP(value);\n};\nexports.all = function () {\n return lang.copyObject(options);\n};\nexports.$modes = {};\nexports.moduleUrl = function (name, component) {\n if (options.$moduleUrls[name])\n return options.$moduleUrls[name];\n var parts = name.split(\"/\");\n component = component || parts[parts.length - 2] || \"\";\n var sep = component == \"snippets\" ? \"/\" : \"-\";\n var base = parts[parts.length - 1];\n if (component == \"worker\" && sep == \"-\") {\n var re = new RegExp(\"^\" + component + \"[\\\\-_]|[\\\\-_]\" + component + \"$\", \"g\");\n base = base.replace(re, \"\");\n }\n if ((!base || base == component) && parts.length > 1)\n base = parts[parts.length - 2];\n var path = options[component + \"Path\"];\n if (path == null) {\n path = options.basePath;\n }\n else if (sep == \"/\") {\n component = sep = \"\";\n }\n if (path && path.slice(-1) != \"/\")\n path += \"/\";\n return path + component + sep + base + this.get(\"suffix\");\n};\nexports.setModuleUrl = function (name, subst) {\n return options.$moduleUrls[name] = subst;\n};\nvar loader = function (moduleName, cb) {\n if (moduleName === \"ace/theme/textmate\" || moduleName === \"./theme/textmate\")\n return cb(null, require(\"./theme/textmate\"));\n if (customLoader)\n return customLoader(moduleName, cb);\n console.error(\"loader is not configured\");\n};\nvar customLoader;\nexports.setLoader = function (cb) {\n customLoader = cb;\n};\nexports.dynamicModules = Object.create(null);\nexports.$loading = {};\nexports.$loaded = {};\nexports.loadModule = function (moduleName, onLoad) {\n var loadedModule, moduleType;\n if (Array.isArray(moduleName)) {\n moduleType = moduleName[0];\n moduleName = moduleName[1];\n }\n var load = function (module) {\n if (module && !exports.$loading[moduleName])\n return onLoad && onLoad(module);\n if (!exports.$loading[moduleName])\n exports.$loading[moduleName] = [];\n exports.$loading[moduleName].push(onLoad);\n if (exports.$loading[moduleName].length > 1)\n return;\n var afterLoad = function () {\n loader(moduleName, function (err, module) {\n if (module)\n exports.$loaded[moduleName] = module;\n exports._emit(\"load.module\", { name: moduleName, module: module });\n var listeners = exports.$loading[moduleName];\n exports.$loading[moduleName] = null;\n listeners.forEach(function (onLoad) {\n onLoad && onLoad(module);\n });\n });\n };\n if (!exports.get(\"packaged\"))\n return afterLoad();\n net.loadScript(exports.moduleUrl(moduleName, moduleType), afterLoad);\n reportErrorIfPathIsNotConfigured();\n };\n if (exports.dynamicModules[moduleName]) {\n exports.dynamicModules[moduleName]().then(function (module) {\n if (module.default) {\n load(module.default);\n }\n else {\n load(module);\n }\n });\n }\n else {\n try {\n loadedModule = this.$require(moduleName);\n }\n catch (e) { }\n load(loadedModule || exports.$loaded[moduleName]);\n }\n};\nexports.$require = function (moduleName) {\n if (typeof module.require == \"function\") {\n var req = \"require\";\n return module[req](moduleName);\n }\n};\nexports.setModuleLoader = function (moduleName, onLoad) {\n exports.dynamicModules[moduleName] = onLoad;\n};\nvar reportErrorIfPathIsNotConfigured = function () {\n if (!options.basePath && !options.workerPath\n && !options.modePath && !options.themePath\n && !Object.keys(options.$moduleUrls).length) {\n console.error(\"Unable to infer path to ace from script src,\", \"use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes\", \"or with webpack use ace/webpack-resolver\");\n reportErrorIfPathIsNotConfigured = function () { };\n }\n};\nexports.version = \"1.32.0\";\n\n});\n\nace.define(\"ace/loader_build\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nrequire(\"./lib/fixoldbrowsers\");\nvar config = require(\"./config\");\nconfig.setLoader(function(moduleName, cb) {\n require([moduleName], function(module) {\n cb(null, module);\n });\n});\n\nvar global = (function() {\n return this || typeof window != \"undefined\" && window;\n})();\n\nmodule.exports = function(ace) {\n config.init = init;\n config.$require = require;\n ace.require = require;\n\n if (typeof define === \"function\")\n ace.define = define;\n};\ninit(true);function init(packaged) {\n\n if (!global || !global.document)\n return;\n \n config.set(\"packaged\", packaged || require.packaged || module.packaged || (global.define && define.packaged));\n\n var scriptOptions = {};\n var scriptUrl = \"\";\n var currentScript = (document.currentScript || document._currentScript ); // native or polyfill\n var currentDocument = currentScript && currentScript.ownerDocument || document;\n \n if (currentScript && currentScript.src) {\n scriptUrl = currentScript.src.split(/[?#]/)[0].split(\"/\").slice(0, -1).join(\"/\") || \"\";\n }\n \n var scripts = currentDocument.getElementsByTagName(\"script\");\n for (var i=0; i [\" + this.end.row + \"/\" + this.end.column + \"]\");\n };\n Range.prototype.contains = function (row, column) {\n return this.compare(row, column) == 0;\n };\n Range.prototype.compareRange = function (range) {\n var cmp, end = range.end, start = range.start;\n cmp = this.compare(end.row, end.column);\n if (cmp == 1) {\n cmp = this.compare(start.row, start.column);\n if (cmp == 1) {\n return 2;\n }\n else if (cmp == 0) {\n return 1;\n }\n else {\n return 0;\n }\n }\n else if (cmp == -1) {\n return -2;\n }\n else {\n cmp = this.compare(start.row, start.column);\n if (cmp == -1) {\n return -1;\n }\n else if (cmp == 1) {\n return 42;\n }\n else {\n return 0;\n }\n }\n };\n Range.prototype.comparePoint = function (p) {\n return this.compare(p.row, p.column);\n };\n Range.prototype.containsRange = function (range) {\n return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n };\n Range.prototype.intersects = function (range) {\n var cmp = this.compareRange(range);\n return (cmp == -1 || cmp == 0 || cmp == 1);\n };\n Range.prototype.isEnd = function (row, column) {\n return this.end.row == row && this.end.column == column;\n };\n Range.prototype.isStart = function (row, column) {\n return this.start.row == row && this.start.column == column;\n };\n Range.prototype.setStart = function (row, column) {\n if (typeof row == \"object\") {\n this.start.column = row.column;\n this.start.row = row.row;\n }\n else {\n this.start.row = row;\n this.start.column = column;\n }\n };\n Range.prototype.setEnd = function (row, column) {\n if (typeof row == \"object\") {\n this.end.column = row.column;\n this.end.row = row.row;\n }\n else {\n this.end.row = row;\n this.end.column = column;\n }\n };\n Range.prototype.inside = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column) || this.isStart(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.insideStart = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.insideEnd = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isStart(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.compare = function (row, column) {\n if (!this.isMultiLine()) {\n if (row === this.start.row) {\n return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n }\n }\n if (row < this.start.row)\n return -1;\n if (row > this.end.row)\n return 1;\n if (this.start.row === row)\n return column >= this.start.column ? 0 : -1;\n if (this.end.row === row)\n return column <= this.end.column ? 0 : 1;\n return 0;\n };\n Range.prototype.compareStart = function (row, column) {\n if (this.start.row == row && this.start.column == column) {\n return -1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.compareEnd = function (row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.compareInside = function (row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n }\n else if (this.start.row == row && this.start.column == column) {\n return -1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.clipRows = function (firstRow, lastRow) {\n if (this.end.row > lastRow)\n var end = { row: lastRow + 1, column: 0 };\n else if (this.end.row < firstRow)\n var end = { row: firstRow, column: 0 };\n if (this.start.row > lastRow)\n var start = { row: lastRow + 1, column: 0 };\n else if (this.start.row < firstRow)\n var start = { row: firstRow, column: 0 };\n return Range.fromPoints(start || this.start, end || this.end);\n };\n Range.prototype.extend = function (row, column) {\n var cmp = this.compare(row, column);\n if (cmp == 0)\n return this;\n else if (cmp == -1)\n var start = { row: row, column: column };\n else\n var end = { row: row, column: column };\n return Range.fromPoints(start || this.start, end || this.end);\n };\n Range.prototype.isEmpty = function () {\n return (this.start.row === this.end.row && this.start.column === this.end.column);\n };\n Range.prototype.isMultiLine = function () {\n return (this.start.row !== this.end.row);\n };\n Range.prototype.clone = function () {\n return Range.fromPoints(this.start, this.end);\n };\n Range.prototype.collapseRows = function () {\n if (this.end.column == 0)\n return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row - 1), 0);\n else\n return new Range(this.start.row, 0, this.end.row, 0);\n };\n Range.prototype.toScreenRange = function (session) {\n var screenPosStart = session.documentToScreenPosition(this.start);\n var screenPosEnd = session.documentToScreenPosition(this.end);\n return new Range(screenPosStart.row, screenPosStart.column, screenPosEnd.row, screenPosEnd.column);\n };\n Range.prototype.moveBy = function (row, column) {\n this.start.row += row;\n this.start.column += column;\n this.end.row += row;\n this.end.column += column;\n };\n return Range;\n}());\nRange.fromPoints = function (start, end) {\n return new Range(start.row, start.column, end.row, end.column);\n};\nRange.comparePoints = comparePoints;\nRange.comparePoints = function (p1, p2) {\n return p1.row - p2.row || p1.column - p2.column;\n};\nexports.Range = Range;\n\n});\n\nace.define(\"ace/lib/keys\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\"], function(require, exports, module){/*! @license\n==========================================================================\nSproutCore -- JavaScript Application Framework\ncopyright 2006-2009, Sprout Systems Inc., Apple Inc. and contributors.\n\nPermission is hereby granted, free of charge, to any person obtaining a\ncopy of this software and associated documentation files (the \"Software\"),\nto deal in the Software without restriction, including without limitation\nthe rights to use, copy, modify, merge, publish, distribute, sublicense,\nand/or sell copies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\nDEALINGS IN THE SOFTWARE.\n\nSproutCore and the SproutCore logo are trademarks of Sprout Systems, Inc.\n\nFor more information about SproutCore, visit http://www.sproutcore.com\n\n\n==========================================================================\n@license */\n\"use strict\";\nvar oop = require(\"./oop\");\nvar Keys = (function () {\n var ret = {\n MODIFIER_KEYS: {\n 16: 'Shift', 17: 'Ctrl', 18: 'Alt', 224: 'Meta',\n 91: 'MetaLeft', 92: 'MetaRight', 93: 'ContextMenu'\n },\n KEY_MODS: {\n \"ctrl\": 1, \"alt\": 2, \"option\": 2, \"shift\": 4,\n \"super\": 8, \"meta\": 8, \"command\": 8, \"cmd\": 8,\n \"control\": 1\n },\n FUNCTION_KEYS: {\n 8: \"Backspace\",\n 9: \"Tab\",\n 13: \"Return\",\n 19: \"Pause\",\n 27: \"Esc\",\n 32: \"Space\",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"Left\",\n 38: \"Up\",\n 39: \"Right\",\n 40: \"Down\",\n 44: \"Print\",\n 45: \"Insert\",\n 46: \"Delete\",\n 96: \"Numpad0\",\n 97: \"Numpad1\",\n 98: \"Numpad2\",\n 99: \"Numpad3\",\n 100: \"Numpad4\",\n 101: \"Numpad5\",\n 102: \"Numpad6\",\n 103: \"Numpad7\",\n 104: \"Numpad8\",\n 105: \"Numpad9\",\n '-13': \"NumpadEnter\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"Numlock\",\n 145: \"Scrolllock\"\n },\n PRINTABLE_KEYS: {\n 32: ' ', 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5',\n 54: '6', 55: '7', 56: '8', 57: '9', 59: ';', 61: '=', 65: 'a',\n 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h',\n 73: 'i', 74: 'j', 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o',\n 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't', 85: 'u', 86: 'v',\n 87: 'w', 88: 'x', 89: 'y', 90: 'z', 107: '+', 109: '-', 110: '.',\n 186: ';', 187: '=', 188: ',', 189: '-', 190: '.', 191: '/', 192: '`',\n 219: '[', 220: '\\\\', 221: ']', 222: \"'\", 111: '/', 106: '*'\n }\n };\n ret.PRINTABLE_KEYS[173] = '-';\n var name, i;\n for (i in ret.FUNCTION_KEYS) {\n name = ret.FUNCTION_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n for (i in ret.PRINTABLE_KEYS) {\n name = ret.PRINTABLE_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n oop.mixin(ret, ret.MODIFIER_KEYS);\n oop.mixin(ret, ret.PRINTABLE_KEYS);\n oop.mixin(ret, ret.FUNCTION_KEYS);\n ret.enter = ret[\"return\"];\n ret.escape = ret.esc;\n ret.del = ret[\"delete\"];\n (function () {\n var mods = [\"cmd\", \"ctrl\", \"alt\", \"shift\"];\n for (var i = Math.pow(2, mods.length); i--;) {\n ret.KEY_MODS[i] = mods.filter(function (x) {\n return i & ret.KEY_MODS[x];\n }).join(\"-\") + \"-\";\n }\n })();\n ret.KEY_MODS[0] = \"\";\n ret.KEY_MODS[-1] = \"input-\";\n return ret;\n})();\noop.mixin(exports, Keys);\nexports.default = exports;\nexports.keyCodeToString = function (keyCode) {\n var keyString = Keys[keyCode];\n if (typeof keyString != \"string\")\n keyString = String.fromCharCode(keyCode);\n return keyString.toLowerCase();\n};\n\n});\n\nace.define(\"ace/lib/event\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar keys = require(\"./keys\");\nvar useragent = require(\"./useragent\");\nvar pressedKeys = null;\nvar ts = 0;\nvar activeListenerOptions;\nfunction detectListenerOptionsSupport() {\n activeListenerOptions = false;\n try {\n document.createComment(\"\").addEventListener(\"test\", function () { }, {\n get passive() {\n activeListenerOptions = { passive: false };\n }\n });\n }\n catch (e) { }\n}\nfunction getListenerOptions() {\n if (activeListenerOptions == undefined)\n detectListenerOptionsSupport();\n return activeListenerOptions;\n}\nfunction EventListener(elem, type, callback) {\n this.elem = elem;\n this.type = type;\n this.callback = callback;\n}\nEventListener.prototype.destroy = function () {\n removeListener(this.elem, this.type, this.callback);\n this.elem = this.type = this.callback = undefined;\n};\nvar addListener = exports.addListener = function (elem, type, callback, destroyer) {\n elem.addEventListener(type, callback, getListenerOptions());\n if (destroyer)\n destroyer.$toDestroy.push(new EventListener(elem, type, callback));\n};\nvar removeListener = exports.removeListener = function (elem, type, callback) {\n elem.removeEventListener(type, callback, getListenerOptions());\n};\nexports.stopEvent = function (e) {\n exports.stopPropagation(e);\n exports.preventDefault(e);\n return false;\n};\nexports.stopPropagation = function (e) {\n if (e.stopPropagation)\n e.stopPropagation();\n};\nexports.preventDefault = function (e) {\n if (e.preventDefault)\n e.preventDefault();\n};\nexports.getButton = function (e) {\n if (e.type == \"dblclick\")\n return 0;\n if (e.type == \"contextmenu\" || (useragent.isMac && (e.ctrlKey && !e.altKey && !e.shiftKey)))\n return 2;\n return e.button;\n};\nexports.capture = function (el, eventHandler, releaseCaptureHandler) {\n var ownerDocument = el && el.ownerDocument || document;\n function onMouseUp(e) {\n eventHandler && eventHandler(e);\n releaseCaptureHandler && releaseCaptureHandler(e);\n removeListener(ownerDocument, \"mousemove\", eventHandler);\n removeListener(ownerDocument, \"mouseup\", onMouseUp);\n removeListener(ownerDocument, \"dragstart\", onMouseUp);\n }\n addListener(ownerDocument, \"mousemove\", eventHandler);\n addListener(ownerDocument, \"mouseup\", onMouseUp);\n addListener(ownerDocument, \"dragstart\", onMouseUp);\n return onMouseUp;\n};\nexports.addMouseWheelListener = function (el, callback, destroyer) {\n addListener(el, \"wheel\", function (e) {\n var factor = 0.15;\n var deltaX = e.deltaX || 0;\n var deltaY = e.deltaY || 0;\n switch (e.deltaMode) {\n case e.DOM_DELTA_PIXEL:\n e.wheelX = deltaX * factor;\n e.wheelY = deltaY * factor;\n break;\n case e.DOM_DELTA_LINE:\n var linePixels = 15;\n e.wheelX = deltaX * linePixels;\n e.wheelY = deltaY * linePixels;\n break;\n case e.DOM_DELTA_PAGE:\n var pagePixels = 150;\n e.wheelX = deltaX * pagePixels;\n e.wheelY = deltaY * pagePixels;\n break;\n }\n callback(e);\n }, destroyer);\n};\nexports.addMultiMouseDownListener = function (elements, timeouts, eventHandler, callbackName, destroyer) {\n var clicks = 0;\n var startX, startY, timer;\n var eventNames = {\n 2: \"dblclick\",\n 3: \"tripleclick\",\n 4: \"quadclick\"\n };\n function onMousedown(e) {\n if (exports.getButton(e) !== 0) {\n clicks = 0;\n }\n else if (e.detail > 1) {\n clicks++;\n if (clicks > 4)\n clicks = 1;\n }\n else {\n clicks = 1;\n }\n if (useragent.isIE) {\n var isNewClick = Math.abs(e.clientX - startX) > 5 || Math.abs(e.clientY - startY) > 5;\n if (!timer || isNewClick)\n clicks = 1;\n if (timer)\n clearTimeout(timer);\n timer = setTimeout(function () { timer = null; }, timeouts[clicks - 1] || 600);\n if (clicks == 1) {\n startX = e.clientX;\n startY = e.clientY;\n }\n }\n e._clicks = clicks;\n eventHandler[callbackName](\"mousedown\", e);\n if (clicks > 4)\n clicks = 0;\n else if (clicks > 1)\n return eventHandler[callbackName](eventNames[clicks], e);\n }\n if (!Array.isArray(elements))\n elements = [elements];\n elements.forEach(function (el) {\n addListener(el, \"mousedown\", onMousedown, destroyer);\n });\n};\nvar getModifierHash = function (e) {\n return 0 | (e.ctrlKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.metaKey ? 8 : 0);\n};\nexports.getModifierString = function (e) {\n return keys.KEY_MODS[getModifierHash(e)];\n};\nfunction normalizeCommandKeys(callback, e, keyCode) {\n var hashId = getModifierHash(e);\n if (!useragent.isMac && pressedKeys) {\n if (e.getModifierState && (e.getModifierState(\"OS\") || e.getModifierState(\"Win\")))\n hashId |= 8;\n if (pressedKeys.altGr) {\n if ((3 & hashId) != 3)\n pressedKeys.altGr = 0;\n else\n return;\n }\n if (keyCode === 18 || keyCode === 17) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (keyCode === 17 && location === 1) {\n if (pressedKeys[keyCode] == 1)\n ts = e.timeStamp;\n }\n else if (keyCode === 18 && hashId === 3 && location === 2) {\n var dt = e.timeStamp - ts;\n if (dt < 50)\n pressedKeys.altGr = true;\n }\n }\n }\n if (keyCode in keys.MODIFIER_KEYS) {\n keyCode = -1;\n }\n if (!hashId && keyCode === 13) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (location === 3) {\n callback(e, hashId, -keyCode);\n if (e.defaultPrevented)\n return;\n }\n }\n if (useragent.isChromeOS && hashId & 8) {\n callback(e, hashId, keyCode);\n if (e.defaultPrevented)\n return;\n else\n hashId &= ~8;\n }\n if (!hashId && !(keyCode in keys.FUNCTION_KEYS) && !(keyCode in keys.PRINTABLE_KEYS)) {\n return false;\n }\n return callback(e, hashId, keyCode);\n}\nexports.addCommandKeyListener = function (el, callback, destroyer) {\n if (useragent.isOldGecko || (useragent.isOpera && !(\"KeyboardEvent\" in window))) {\n var lastKeyDownKeyCode = null;\n addListener(el, \"keydown\", function (e) {\n lastKeyDownKeyCode = e.keyCode;\n }, destroyer);\n addListener(el, \"keypress\", function (e) {\n return normalizeCommandKeys(callback, e, lastKeyDownKeyCode);\n }, destroyer);\n }\n else {\n var lastDefaultPrevented = null;\n addListener(el, \"keydown\", function (e) {\n pressedKeys[e.keyCode] = (pressedKeys[e.keyCode] || 0) + 1;\n var result = normalizeCommandKeys(callback, e, e.keyCode);\n lastDefaultPrevented = e.defaultPrevented;\n return result;\n }, destroyer);\n addListener(el, \"keypress\", function (e) {\n if (lastDefaultPrevented && (e.ctrlKey || e.altKey || e.shiftKey || e.metaKey)) {\n exports.stopEvent(e);\n lastDefaultPrevented = null;\n }\n }, destroyer);\n addListener(el, \"keyup\", function (e) {\n pressedKeys[e.keyCode] = null;\n }, destroyer);\n if (!pressedKeys) {\n resetPressedKeys();\n addListener(window, \"focus\", resetPressedKeys);\n }\n }\n};\nfunction resetPressedKeys() {\n pressedKeys = Object.create(null);\n}\nif (typeof window == \"object\" && window.postMessage && !useragent.isOldIE) {\n var postMessageId = 1;\n exports.nextTick = function (callback, win) {\n win = win || window;\n var messageName = \"zero-timeout-message-\" + (postMessageId++);\n var listener = function (e) {\n if (e.data == messageName) {\n exports.stopPropagation(e);\n removeListener(win, \"message\", listener);\n callback();\n }\n };\n addListener(win, \"message\", listener);\n win.postMessage(messageName, \"*\");\n };\n}\nexports.$idleBlocked = false;\nexports.onIdle = function (cb, timeout) {\n return setTimeout(function handler() {\n if (!exports.$idleBlocked) {\n cb();\n }\n else {\n setTimeout(handler, 100);\n }\n }, timeout);\n};\nexports.$idleBlockId = null;\nexports.blockIdle = function (delay) {\n if (exports.$idleBlockId)\n clearTimeout(exports.$idleBlockId);\n exports.$idleBlocked = true;\n exports.$idleBlockId = setTimeout(function () {\n exports.$idleBlocked = false;\n }, delay || 100);\n};\nexports.nextFrame = typeof window == \"object\" && (window.requestAnimationFrame\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame\n || window.msRequestAnimationFrame\n || window.oRequestAnimationFrame);\nif (exports.nextFrame)\n exports.nextFrame = exports.nextFrame.bind(window);\nelse\n exports.nextFrame = function (callback) {\n setTimeout(callback, 17);\n };\n\n});\n\nace.define(\"ace/clipboard\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar $cancelT;\nmodule.exports = {\n lineMode: false,\n pasteCancelled: function () {\n if ($cancelT && $cancelT > Date.now() - 50)\n return true;\n return $cancelT = false;\n },\n cancel: function () {\n $cancelT = Date.now();\n }\n};\n\n});\n\nace.define(\"ace/keyboard/textinput\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/config\",\"ace/lib/useragent\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/clipboard\",\"ace/lib/keys\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar nls = require(\"../config\").nls;\nvar useragent = require(\"../lib/useragent\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar clipboard = require(\"../clipboard\");\nvar BROKEN_SETDATA = useragent.isChrome < 18;\nvar USE_IE_MIME_TYPE = useragent.isIE;\nvar HAS_FOCUS_ARGS = useragent.isChrome > 63;\nvar MAX_LINE_LENGTH = 400;\nvar KEYS = require(\"../lib/keys\");\nvar MODS = KEYS.KEY_MODS;\nvar isIOS = useragent.isIOS;\nvar valueResetRegex = isIOS ? /\\s/ : /\\n/;\nvar isMobile = useragent.isMobile;\nvar TextInput = function (parentNode, host) {\n var text = dom.createElement(\"textarea\");\n text.className = \"ace_text-input\";\n text.setAttribute(\"wrap\", \"off\");\n text.setAttribute(\"autocorrect\", \"off\");\n text.setAttribute(\"autocapitalize\", \"off\");\n text.setAttribute(\"spellcheck\", false);\n text.style.opacity = \"0\";\n parentNode.insertBefore(text, parentNode.firstChild);\n var copied = false;\n var pasted = false;\n var inComposition = false;\n var sendingText = false;\n var tempStyle = '';\n if (!isMobile)\n text.style.fontSize = \"1px\";\n var commandMode = false;\n var ignoreFocusEvents = false;\n var lastValue = \"\";\n var lastSelectionStart = 0;\n var lastSelectionEnd = 0;\n var lastRestoreEnd = 0;\n var rowStart = Number.MAX_SAFE_INTEGER;\n var rowEnd = Number.MIN_SAFE_INTEGER;\n var numberOfExtraLines = 0;\n try {\n var isFocused = document.activeElement === text;\n }\n catch (e) { }\n this.setNumberOfExtraLines = function (number) {\n rowStart = Number.MAX_SAFE_INTEGER;\n rowEnd = Number.MIN_SAFE_INTEGER;\n if (number < 0) {\n numberOfExtraLines = 0;\n return;\n }\n numberOfExtraLines = number;\n };\n this.setAriaOptions = function (options) {\n if (options.activeDescendant) {\n text.setAttribute(\"aria-haspopup\", \"true\");\n text.setAttribute(\"aria-autocomplete\", options.inline ? \"both\" : \"list\");\n text.setAttribute(\"aria-activedescendant\", options.activeDescendant);\n }\n else {\n text.setAttribute(\"aria-haspopup\", \"false\");\n text.setAttribute(\"aria-autocomplete\", \"both\");\n text.removeAttribute(\"aria-activedescendant\");\n }\n if (options.role) {\n text.setAttribute(\"role\", options.role);\n }\n if (options.setLabel) {\n text.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n if (host.session) {\n var row = host.session.selection.cursor.row;\n text.setAttribute(\"aria-label\", nls(\"Cursor at row $0\", [row + 1]));\n }\n }\n };\n this.setAriaOptions({ role: \"textbox\" });\n event.addListener(text, \"blur\", function (e) {\n if (ignoreFocusEvents)\n return;\n host.onBlur(e);\n isFocused = false;\n }, host);\n event.addListener(text, \"focus\", function (e) {\n if (ignoreFocusEvents)\n return;\n isFocused = true;\n if (useragent.isEdge) {\n try {\n if (!document.hasFocus())\n return;\n }\n catch (e) { }\n }\n host.onFocus(e);\n if (useragent.isEdge)\n setTimeout(resetSelection);\n else\n resetSelection();\n }, host);\n this.$focusScroll = false;\n this.focus = function () {\n this.setAriaOptions({\n setLabel: host.renderer.enableKeyboardAccessibility\n });\n if (tempStyle || HAS_FOCUS_ARGS || this.$focusScroll == \"browser\")\n return text.focus({ preventScroll: true });\n var top = text.style.top;\n text.style.position = \"fixed\";\n text.style.top = \"0px\";\n try {\n var isTransformed = text.getBoundingClientRect().top != 0;\n }\n catch (e) {\n return;\n }\n var ancestors = [];\n if (isTransformed) {\n var t = text.parentElement;\n while (t && t.nodeType == 1) {\n ancestors.push(t);\n t.setAttribute(\"ace_nocontext\", true);\n if (!t.parentElement && t.getRootNode)\n t = t.getRootNode().host;\n else\n t = t.parentElement;\n }\n }\n text.focus({ preventScroll: true });\n if (isTransformed) {\n ancestors.forEach(function (p) {\n p.removeAttribute(\"ace_nocontext\");\n });\n }\n setTimeout(function () {\n text.style.position = \"\";\n if (text.style.top == \"0px\")\n text.style.top = top;\n }, 0);\n };\n this.blur = function () {\n text.blur();\n };\n this.isFocused = function () {\n return isFocused;\n };\n host.on(\"beforeEndOperation\", function () {\n var curOp = host.curOp;\n var commandName = curOp && curOp.command && curOp.command.name;\n if (commandName == \"insertstring\")\n return;\n var isUserAction = commandName && (curOp.docChanged || curOp.selectionChanged);\n if (inComposition && isUserAction) {\n lastValue = text.value = \"\";\n onCompositionEnd();\n }\n resetSelection();\n });\n var positionToSelection = function (row, column) {\n var selection = column;\n for (var i = 1; i <= row - rowStart && i < 2 * numberOfExtraLines + 1; i++) {\n selection += host.session.getLine(row - i).length + 1;\n }\n return selection;\n };\n var resetSelection = isIOS\n ? function (value) {\n if (!isFocused || (copied && !value) || sendingText)\n return;\n if (!value)\n value = \"\";\n var newValue = \"\\n ab\" + value + \"cde fg\\n\";\n if (newValue != text.value)\n text.value = lastValue = newValue;\n var selectionStart = 4;\n var selectionEnd = 4 + (value.length || (host.selection.isEmpty() ? 0 : 1));\n if (lastSelectionStart != selectionStart || lastSelectionEnd != selectionEnd) {\n text.setSelectionRange(selectionStart, selectionEnd);\n }\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n }\n : function () {\n if (inComposition || sendingText)\n return;\n if (!isFocused && !afterContextMenu)\n return;\n inComposition = true;\n var selectionStart = 0;\n var selectionEnd = 0;\n var line = \"\";\n if (host.session) {\n var selection = host.selection;\n var range = selection.getRange();\n var row = selection.cursor.row;\n if (row === rowEnd + 1) {\n rowStart = rowEnd + 1;\n rowEnd = rowStart + 2 * numberOfExtraLines;\n }\n else if (row === rowStart - 1) {\n rowEnd = rowStart - 1;\n rowStart = rowEnd - 2 * numberOfExtraLines;\n }\n else if (row < rowStart - 1 || row > rowEnd + 1) {\n rowStart = row > numberOfExtraLines ? row - numberOfExtraLines : 0;\n rowEnd = row > numberOfExtraLines ? row + numberOfExtraLines : 2 * numberOfExtraLines;\n }\n var lines = [];\n for (var i = rowStart; i <= rowEnd; i++) {\n lines.push(host.session.getLine(i));\n }\n line = lines.join('\\n');\n selectionStart = positionToSelection(range.start.row, range.start.column);\n selectionEnd = positionToSelection(range.end.row, range.end.column);\n if (range.start.row < rowStart) {\n var prevLine = host.session.getLine(rowStart - 1);\n selectionStart = range.start.row < rowStart - 1 ? 0 : selectionStart;\n selectionEnd += prevLine.length + 1;\n line = prevLine + \"\\n\" + line;\n }\n else if (range.end.row > rowEnd) {\n var nextLine = host.session.getLine(rowEnd + 1);\n selectionEnd = range.end.row > rowEnd + 1 ? nextLine.length : range.end.column;\n selectionEnd += line.length + 1;\n line = line + \"\\n\" + nextLine;\n }\n else if (isMobile && row > 0) {\n line = \"\\n\" + line;\n selectionEnd += 1;\n selectionStart += 1;\n }\n if (line.length > MAX_LINE_LENGTH) {\n if (selectionStart < MAX_LINE_LENGTH && selectionEnd < MAX_LINE_LENGTH) {\n line = line.slice(0, MAX_LINE_LENGTH);\n }\n else {\n line = \"\\n\";\n if (selectionStart == selectionEnd) {\n selectionStart = selectionEnd = 0;\n }\n else {\n selectionStart = 0;\n selectionEnd = 1;\n }\n }\n }\n var newValue = line + \"\\n\\n\";\n if (newValue != lastValue) {\n text.value = lastValue = newValue;\n lastSelectionStart = lastSelectionEnd = newValue.length;\n }\n }\n if (afterContextMenu) {\n lastSelectionStart = text.selectionStart;\n lastSelectionEnd = text.selectionEnd;\n }\n if (lastSelectionEnd != selectionEnd\n || lastSelectionStart != selectionStart\n || text.selectionEnd != lastSelectionEnd // on ie edge selectionEnd changes silently after the initialization\n ) {\n try {\n text.setSelectionRange(selectionStart, selectionEnd);\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n }\n catch (e) { }\n }\n inComposition = false;\n };\n this.resetSelection = resetSelection;\n if (isFocused)\n host.onFocus();\n var isAllSelected = function (text) {\n return text.selectionStart === 0 && text.selectionEnd >= lastValue.length\n && text.value === lastValue && lastValue\n && text.selectionEnd !== lastSelectionEnd;\n };\n var onSelect = function (e) {\n if (inComposition)\n return;\n if (copied) {\n copied = false;\n }\n else if (isAllSelected(text)) {\n host.selectAll();\n resetSelection();\n }\n else if (isMobile && text.selectionStart != lastSelectionStart) {\n resetSelection();\n }\n };\n var inputHandler = null;\n this.setInputHandler = function (cb) { inputHandler = cb; };\n this.getInputHandler = function () { return inputHandler; };\n var afterContextMenu = false;\n var sendText = function (value, fromInput) {\n if (afterContextMenu)\n afterContextMenu = false;\n if (pasted) {\n resetSelection();\n if (value)\n host.onPaste(value);\n pasted = false;\n return \"\";\n }\n else {\n var selectionStart = text.selectionStart;\n var selectionEnd = text.selectionEnd;\n var extendLeft = lastSelectionStart;\n var extendRight = lastValue.length - lastSelectionEnd;\n var inserted = value;\n var restoreStart = value.length - selectionStart;\n var restoreEnd = value.length - selectionEnd;\n var i = 0;\n while (extendLeft > 0 && lastValue[i] == value[i]) {\n i++;\n extendLeft--;\n }\n inserted = inserted.slice(i);\n i = 1;\n while (extendRight > 0 && lastValue.length - i > lastSelectionStart - 1 && lastValue[lastValue.length - i] == value[value.length - i]) {\n i++;\n extendRight--;\n }\n restoreStart -= i - 1;\n restoreEnd -= i - 1;\n var endIndex = inserted.length - i + 1;\n if (endIndex < 0) {\n extendLeft = -endIndex;\n endIndex = 0;\n }\n inserted = inserted.slice(0, endIndex);\n if (!fromInput && !inserted && !restoreStart && !extendLeft && !extendRight && !restoreEnd)\n return \"\";\n sendingText = true;\n var shouldReset = false;\n if (useragent.isAndroid && inserted == \". \") {\n inserted = \" \";\n shouldReset = true;\n }\n if (inserted && !extendLeft && !extendRight && !restoreStart && !restoreEnd || commandMode) {\n host.onTextInput(inserted);\n }\n else {\n host.onTextInput(inserted, {\n extendLeft: extendLeft,\n extendRight: extendRight,\n restoreStart: restoreStart,\n restoreEnd: restoreEnd\n });\n }\n sendingText = false;\n lastValue = value;\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n lastRestoreEnd = restoreEnd;\n return shouldReset ? \"\\n\" : inserted;\n }\n };\n var onInput = function (e) {\n if (inComposition)\n return onCompositionUpdate();\n if (e && e.inputType) {\n if (e.inputType == \"historyUndo\")\n return host.execCommand(\"undo\");\n if (e.inputType == \"historyRedo\")\n return host.execCommand(\"redo\");\n }\n var data = text.value;\n var inserted = sendText(data, true);\n if (data.length > MAX_LINE_LENGTH + 100\n || valueResetRegex.test(inserted)\n || isMobile && lastSelectionStart < 1 && lastSelectionStart == lastSelectionEnd) {\n resetSelection();\n }\n };\n var handleClipboardData = function (e, data, forceIEMime) {\n var clipboardData = e.clipboardData || window.clipboardData;\n if (!clipboardData || BROKEN_SETDATA)\n return;\n var mime = USE_IE_MIME_TYPE || forceIEMime ? \"Text\" : \"text/plain\";\n try {\n if (data) {\n return clipboardData.setData(mime, data) !== false;\n }\n else {\n return clipboardData.getData(mime);\n }\n }\n catch (e) {\n if (!forceIEMime)\n return handleClipboardData(e, data, true);\n }\n };\n var doCopy = function (e, isCut) {\n var data = host.getCopyText();\n if (!data)\n return event.preventDefault(e);\n if (handleClipboardData(e, data)) {\n if (isIOS) {\n resetSelection(data);\n copied = data;\n setTimeout(function () {\n copied = false;\n }, 10);\n }\n isCut ? host.onCut() : host.onCopy();\n event.preventDefault(e);\n }\n else {\n copied = true;\n text.value = data;\n text.select();\n setTimeout(function () {\n copied = false;\n resetSelection();\n isCut ? host.onCut() : host.onCopy();\n });\n }\n };\n var onCut = function (e) {\n doCopy(e, true);\n };\n var onCopy = function (e) {\n doCopy(e, false);\n };\n var onPaste = function (e) {\n var data = handleClipboardData(e);\n if (clipboard.pasteCancelled())\n return;\n if (typeof data == \"string\") {\n if (data)\n host.onPaste(data, e);\n if (useragent.isIE)\n setTimeout(resetSelection);\n event.preventDefault(e);\n }\n else {\n text.value = \"\";\n pasted = true;\n }\n };\n event.addCommandKeyListener(text, host.onCommandKey.bind(host), host);\n event.addListener(text, \"select\", onSelect, host);\n event.addListener(text, \"input\", onInput, host);\n event.addListener(text, \"cut\", onCut, host);\n event.addListener(text, \"copy\", onCopy, host);\n event.addListener(text, \"paste\", onPaste, host);\n if (!('oncut' in text) || !('oncopy' in text) || !('onpaste' in text)) {\n event.addListener(parentNode, \"keydown\", function (e) {\n if ((useragent.isMac && !e.metaKey) || !e.ctrlKey)\n return;\n switch (e.keyCode) {\n case 67:\n onCopy(e);\n break;\n case 86:\n onPaste(e);\n break;\n case 88:\n onCut(e);\n break;\n }\n }, host);\n }\n var onCompositionStart = function (e) {\n if (inComposition || !host.onCompositionStart || host.$readOnly)\n return;\n inComposition = {};\n if (commandMode)\n return;\n if (e.data)\n inComposition.useTextareaForIME = false;\n setTimeout(onCompositionUpdate, 0);\n host._signal(\"compositionStart\");\n host.on(\"mousedown\", cancelComposition);\n var range = host.getSelectionRange();\n range.end.row = range.start.row;\n range.end.column = range.start.column;\n inComposition.markerRange = range;\n inComposition.selectionStart = lastSelectionStart;\n host.onCompositionStart(inComposition);\n if (inComposition.useTextareaForIME) {\n lastValue = text.value = \"\";\n lastSelectionStart = 0;\n lastSelectionEnd = 0;\n }\n else {\n if (text.msGetInputContext)\n inComposition.context = text.msGetInputContext();\n if (text.getInputContext)\n inComposition.context = text.getInputContext();\n }\n };\n var onCompositionUpdate = function () {\n if (!inComposition || !host.onCompositionUpdate || host.$readOnly)\n return;\n if (commandMode)\n return cancelComposition();\n if (inComposition.useTextareaForIME) {\n host.onCompositionUpdate(text.value);\n }\n else {\n var data = text.value;\n sendText(data);\n if (inComposition.markerRange) {\n if (inComposition.context) {\n inComposition.markerRange.start.column = inComposition.selectionStart\n = inComposition.context.compositionStartOffset;\n }\n inComposition.markerRange.end.column = inComposition.markerRange.start.column\n + lastSelectionEnd - inComposition.selectionStart + lastRestoreEnd;\n }\n }\n };\n var onCompositionEnd = function (e) {\n if (!host.onCompositionEnd || host.$readOnly)\n return;\n inComposition = false;\n host.onCompositionEnd();\n host.off(\"mousedown\", cancelComposition);\n if (e)\n onInput();\n };\n function cancelComposition() {\n ignoreFocusEvents = true;\n text.blur();\n text.focus();\n ignoreFocusEvents = false;\n }\n var syncComposition = lang.delayedCall(onCompositionUpdate, 50).schedule.bind(null, null);\n function onKeyup(e) {\n if (e.keyCode == 27 && text.value.length < text.selectionStart) {\n if (!inComposition)\n lastValue = text.value;\n lastSelectionStart = lastSelectionEnd = -1;\n resetSelection();\n }\n syncComposition();\n }\n event.addListener(text, \"compositionstart\", onCompositionStart, host);\n event.addListener(text, \"compositionupdate\", onCompositionUpdate, host);\n event.addListener(text, \"keyup\", onKeyup, host);\n event.addListener(text, \"keydown\", syncComposition, host);\n event.addListener(text, \"compositionend\", onCompositionEnd, host);\n this.getElement = function () {\n return text;\n };\n this.setCommandMode = function (value) {\n commandMode = value;\n text.readOnly = false;\n };\n this.setReadOnly = function (readOnly) {\n if (!commandMode)\n text.readOnly = readOnly;\n };\n this.setCopyWithEmptySelection = function (value) {\n };\n this.onContextMenu = function (e) {\n afterContextMenu = true;\n resetSelection();\n host._emit(\"nativecontextmenu\", { target: host, domEvent: e });\n this.moveToMouse(e, true);\n };\n this.moveToMouse = function (e, bringToFront) {\n if (!tempStyle)\n tempStyle = text.style.cssText;\n text.style.cssText = (bringToFront ? \"z-index:100000;\" : \"\")\n + (useragent.isIE ? \"opacity:0.1;\" : \"\")\n + \"text-indent: -\" + (lastSelectionStart + lastSelectionEnd) * host.renderer.characterWidth * 0.5 + \"px;\";\n var rect = host.container.getBoundingClientRect();\n var style = dom.computedStyle(host.container);\n var top = rect.top + (parseInt(style.borderTopWidth) || 0);\n var left = rect.left + (parseInt(rect.borderLeftWidth) || 0);\n var maxTop = rect.bottom - top - text.clientHeight - 2;\n var move = function (e) {\n dom.translate(text, e.clientX - left - 2, Math.min(e.clientY - top - 2, maxTop));\n };\n move(e);\n if (e.type != \"mousedown\")\n return;\n host.renderer.$isMousePressed = true;\n clearTimeout(closeTimeout);\n if (useragent.isWin)\n event.capture(host.container, move, onContextMenuClose);\n };\n this.onContextMenuClose = onContextMenuClose;\n var closeTimeout;\n function onContextMenuClose() {\n clearTimeout(closeTimeout);\n closeTimeout = setTimeout(function () {\n if (tempStyle) {\n text.style.cssText = tempStyle;\n tempStyle = '';\n }\n host.renderer.$isMousePressed = false;\n if (host.renderer.$keepTextAreaAtCursor)\n host.renderer.$moveTextAreaToCursor();\n }, 0);\n }\n var onContextMenu = function (e) {\n host.textInput.onContextMenu(e);\n onContextMenuClose();\n };\n event.addListener(text, \"mouseup\", onContextMenu, host);\n event.addListener(text, \"mousedown\", function (e) {\n e.preventDefault();\n onContextMenuClose();\n }, host);\n event.addListener(host.renderer.scroller, \"contextmenu\", onContextMenu, host);\n event.addListener(text, \"contextmenu\", onContextMenu, host);\n if (isIOS)\n addIosSelectionHandler(parentNode, host, text);\n function addIosSelectionHandler(parentNode, host, text) {\n var typingResetTimeout = null;\n var typing = false;\n text.addEventListener(\"keydown\", function (e) {\n if (typingResetTimeout)\n clearTimeout(typingResetTimeout);\n typing = true;\n }, true);\n text.addEventListener(\"keyup\", function (e) {\n typingResetTimeout = setTimeout(function () {\n typing = false;\n }, 100);\n }, true);\n var detectArrowKeys = function (e) {\n if (document.activeElement !== text)\n return;\n if (typing || inComposition || host.$mouseHandler.isMousePressed)\n return;\n if (copied) {\n return;\n }\n var selectionStart = text.selectionStart;\n var selectionEnd = text.selectionEnd;\n var key = null;\n var modifier = 0;\n if (selectionStart == 0) {\n key = KEYS.up;\n }\n else if (selectionStart == 1) {\n key = KEYS.home;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue[selectionEnd] == \"\\n\") {\n key = KEYS.end;\n }\n else if (selectionStart < lastSelectionStart && lastValue[selectionStart - 1] == \" \") {\n key = KEYS.left;\n modifier = MODS.option;\n }\n else if (selectionStart < lastSelectionStart\n || (selectionStart == lastSelectionStart\n && lastSelectionEnd != lastSelectionStart\n && selectionStart == selectionEnd)) {\n key = KEYS.left;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue.slice(0, selectionEnd).split(\"\\n\").length > 2) {\n key = KEYS.down;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue[selectionEnd - 1] == \" \") {\n key = KEYS.right;\n modifier = MODS.option;\n }\n else if (selectionEnd > lastSelectionEnd\n || (selectionEnd == lastSelectionEnd\n && lastSelectionEnd != lastSelectionStart\n && selectionStart == selectionEnd)) {\n key = KEYS.right;\n }\n if (selectionStart !== selectionEnd)\n modifier |= MODS.shift;\n if (key) {\n var result = host.onCommandKey({}, modifier, key);\n if (!result && host.commands) {\n key = KEYS.keyCodeToString(key);\n var command = host.commands.findKeyCommand(modifier, key);\n if (command)\n host.execCommand(command);\n }\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n resetSelection(\"\");\n }\n };\n document.addEventListener(\"selectionchange\", detectArrowKeys);\n host.on(\"destroy\", function () {\n document.removeEventListener(\"selectionchange\", detectArrowKeys);\n });\n }\n this.destroy = function () {\n if (text.parentElement)\n text.parentElement.removeChild(text);\n };\n};\nexports.TextInput = TextInput;\nexports.$setUserAgentForTests = function (_isMobile, _isIOS) {\n isMobile = _isMobile;\n isIOS = _isIOS;\n};\n\n});\n\nace.define(\"ace/mouse/default_handlers\",[\"require\",\"exports\",\"module\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar useragent = require(\"../lib/useragent\");\nvar DRAG_OFFSET = 0; // pixels\nvar SCROLL_COOLDOWN_T = 550; // milliseconds\nvar DefaultHandlers = /** @class */ (function () {\n function DefaultHandlers(mouseHandler) {\n mouseHandler.$clickSelection = null;\n var editor = mouseHandler.editor;\n editor.setDefaultHandler(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n editor.setDefaultHandler(\"dblclick\", this.onDoubleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"tripleclick\", this.onTripleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"quadclick\", this.onQuadClick.bind(mouseHandler));\n editor.setDefaultHandler(\"mousewheel\", this.onMouseWheel.bind(mouseHandler));\n var exports = [\"select\", \"startSelect\", \"selectEnd\", \"selectAllEnd\", \"selectByWordsEnd\",\n \"selectByLinesEnd\", \"dragWait\", \"dragWaitEnd\", \"focusWait\"];\n exports.forEach(function (x) {\n mouseHandler[x] = this[x];\n }, this);\n mouseHandler.selectByLines = this.extendSelectionBy.bind(mouseHandler, \"getLineRange\");\n mouseHandler.selectByWords = this.extendSelectionBy.bind(mouseHandler, \"getWordRange\");\n }\n DefaultHandlers.prototype.onMouseDown = function (ev) {\n var inSelection = ev.inSelection();\n var pos = ev.getDocumentPosition();\n this.mousedownEvent = ev;\n var editor = this.editor;\n var button = ev.getButton();\n if (button !== 0) {\n var selectionRange = editor.getSelectionRange();\n var selectionEmpty = selectionRange.isEmpty();\n if (selectionEmpty || button == 1)\n editor.selection.moveToPosition(pos);\n if (button == 2) {\n editor.textInput.onContextMenu(ev.domEvent);\n if (!useragent.isMozilla)\n ev.preventDefault();\n }\n return;\n }\n this.mousedownEvent.time = Date.now();\n if (inSelection && !editor.isFocused()) {\n editor.focus();\n if (this.$focusTimeout && !this.$clickSelection && !editor.inMultiSelectMode) {\n this.setState(\"focusWait\");\n this.captureMouse(ev);\n return;\n }\n }\n this.captureMouse(ev);\n this.startSelect(pos, ev.domEvent._clicks > 1);\n return ev.preventDefault();\n };\n DefaultHandlers.prototype.startSelect = function (pos, waitForClickSelection) {\n pos = pos || this.editor.renderer.screenToTextCoordinates(this.x, this.y);\n var editor = this.editor;\n if (!this.mousedownEvent)\n return;\n if (this.mousedownEvent.getShiftKey())\n editor.selection.selectToPosition(pos);\n else if (!waitForClickSelection)\n editor.selection.moveToPosition(pos);\n if (!waitForClickSelection)\n this.select();\n editor.setStyle(\"ace_selecting\");\n this.setState(\"select\");\n };\n DefaultHandlers.prototype.select = function () {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n if (this.$clickSelection) {\n var cmp = this.$clickSelection.comparePoint(cursor);\n if (cmp == -1) {\n anchor = this.$clickSelection.end;\n }\n else if (cmp == 1) {\n anchor = this.$clickSelection.start;\n }\n else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n };\n DefaultHandlers.prototype.extendSelectionBy = function (unitName) {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n var range = editor.selection[unitName](cursor.row, cursor.column);\n if (this.$clickSelection) {\n var cmpStart = this.$clickSelection.comparePoint(range.start);\n var cmpEnd = this.$clickSelection.comparePoint(range.end);\n if (cmpStart == -1 && cmpEnd <= 0) {\n anchor = this.$clickSelection.end;\n if (range.end.row != cursor.row || range.end.column != cursor.column)\n cursor = range.start;\n }\n else if (cmpEnd == 1 && cmpStart >= 0) {\n anchor = this.$clickSelection.start;\n if (range.start.row != cursor.row || range.start.column != cursor.column)\n cursor = range.end;\n }\n else if (cmpStart == -1 && cmpEnd == 1) {\n cursor = range.end;\n anchor = range.start;\n }\n else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n };\n DefaultHandlers.prototype.selectByLinesEnd = function () {\n this.$clickSelection = null;\n this.editor.unsetStyle(\"ace_selecting\");\n };\n DefaultHandlers.prototype.focusWait = function () {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n var time = Date.now();\n if (distance > DRAG_OFFSET || time - this.mousedownEvent.time > this.$focusTimeout)\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n };\n DefaultHandlers.prototype.onDoubleClick = function (ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n var session = editor.session;\n var range = session.getBracketRange(pos);\n if (range) {\n if (range.isEmpty()) {\n range.start.column--;\n range.end.column++;\n }\n this.setState(\"select\");\n }\n else {\n range = editor.selection.getWordRange(pos.row, pos.column);\n this.setState(\"selectByWords\");\n }\n this.$clickSelection = range;\n this.select();\n };\n DefaultHandlers.prototype.onTripleClick = function (ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n this.setState(\"selectByLines\");\n var range = editor.getSelectionRange();\n if (range.isMultiLine() && range.contains(pos.row, pos.column)) {\n this.$clickSelection = editor.selection.getLineRange(range.start.row);\n this.$clickSelection.end = editor.selection.getLineRange(range.end.row).end;\n }\n else {\n this.$clickSelection = editor.selection.getLineRange(pos.row);\n }\n this.select();\n };\n DefaultHandlers.prototype.onQuadClick = function (ev) {\n var editor = this.editor;\n editor.selectAll();\n this.$clickSelection = editor.getSelectionRange();\n this.setState(\"selectAll\");\n };\n DefaultHandlers.prototype.onMouseWheel = function (ev) {\n if (ev.getAccelKey())\n return;\n if (ev.getShiftKey() && ev.wheelY && !ev.wheelX) {\n ev.wheelX = ev.wheelY;\n ev.wheelY = 0;\n }\n var editor = this.editor;\n if (!this.$lastScroll)\n this.$lastScroll = { t: 0, vx: 0, vy: 0, allowed: 0 };\n var prevScroll = this.$lastScroll;\n var t = ev.domEvent.timeStamp;\n var dt = t - prevScroll.t;\n var vx = dt ? ev.wheelX / dt : prevScroll.vx;\n var vy = dt ? ev.wheelY / dt : prevScroll.vy;\n if (dt < SCROLL_COOLDOWN_T) {\n vx = (vx + prevScroll.vx) / 2;\n vy = (vy + prevScroll.vy) / 2;\n }\n var direction = Math.abs(vx / vy);\n var canScroll = false;\n if (direction >= 1 && editor.renderer.isScrollableBy(ev.wheelX * ev.speed, 0))\n canScroll = true;\n if (direction <= 1 && editor.renderer.isScrollableBy(0, ev.wheelY * ev.speed))\n canScroll = true;\n if (canScroll) {\n prevScroll.allowed = t;\n }\n else if (t - prevScroll.allowed < SCROLL_COOLDOWN_T) {\n var isSlower = Math.abs(vx) <= 1.5 * Math.abs(prevScroll.vx)\n && Math.abs(vy) <= 1.5 * Math.abs(prevScroll.vy);\n if (isSlower) {\n canScroll = true;\n prevScroll.allowed = t;\n }\n else {\n prevScroll.allowed = 0;\n }\n }\n prevScroll.t = t;\n prevScroll.vx = vx;\n prevScroll.vy = vy;\n if (canScroll) {\n editor.renderer.scrollBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n return ev.stop();\n }\n };\n return DefaultHandlers;\n}());\nDefaultHandlers.prototype.selectEnd = DefaultHandlers.prototype.selectByLinesEnd;\nDefaultHandlers.prototype.selectAllEnd = DefaultHandlers.prototype.selectByLinesEnd;\nDefaultHandlers.prototype.selectByWordsEnd = DefaultHandlers.prototype.selectByLinesEnd;\nexports.DefaultHandlers = DefaultHandlers;\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\nfunction calcRangeOrientation(range, cursor) {\n if (range.start.row == range.end.row)\n var cmp = 2 * cursor.column - range.start.column - range.end.column;\n else if (range.start.row == range.end.row - 1 && !range.start.column && !range.end.column)\n var cmp = cursor.column - 4;\n else\n var cmp = 2 * cursor.row - range.start.row - range.end.row;\n if (cmp < 0)\n return { cursor: range.start, anchor: range.end };\n else\n return { cursor: range.end, anchor: range.start };\n}\n\n});\n\nace.define(\"ace/tooltip\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar Range = require(\"./range\").Range;\nvar CLASSNAME = \"ace_tooltip\";\nvar Tooltip = /** @class */ (function () {\n function Tooltip(parentNode) {\n this.isOpen = false;\n this.$element = null;\n this.$parentNode = parentNode;\n }\n Tooltip.prototype.$init = function () {\n this.$element = dom.createElement(\"div\");\n this.$element.className = CLASSNAME;\n this.$element.style.display = \"none\";\n this.$parentNode.appendChild(this.$element);\n return this.$element;\n };\n Tooltip.prototype.getElement = function () {\n return this.$element || this.$init();\n };\n Tooltip.prototype.setText = function (text) {\n this.getElement().textContent = text;\n };\n Tooltip.prototype.setHtml = function (html) {\n this.getElement().innerHTML = html;\n };\n Tooltip.prototype.setPosition = function (x, y) {\n this.getElement().style.left = x + \"px\";\n this.getElement().style.top = y + \"px\";\n };\n Tooltip.prototype.setClassName = function (className) {\n dom.addCssClass(this.getElement(), className);\n };\n Tooltip.prototype.setTheme = function (theme) {\n this.$element.className = CLASSNAME + \" \" +\n (theme.isDark ? \"ace_dark \" : \"\") + (theme.cssClass || \"\");\n };\n Tooltip.prototype.show = function (text, x, y) {\n if (text != null)\n this.setText(text);\n if (x != null && y != null)\n this.setPosition(x, y);\n if (!this.isOpen) {\n this.getElement().style.display = \"block\";\n this.isOpen = true;\n }\n };\n Tooltip.prototype.hide = function () {\n if (this.isOpen) {\n this.getElement().style.display = \"none\";\n this.getElement().className = CLASSNAME;\n this.isOpen = false;\n }\n };\n Tooltip.prototype.getHeight = function () {\n return this.getElement().offsetHeight;\n };\n Tooltip.prototype.getWidth = function () {\n return this.getElement().offsetWidth;\n };\n Tooltip.prototype.destroy = function () {\n this.isOpen = false;\n if (this.$element && this.$element.parentNode) {\n this.$element.parentNode.removeChild(this.$element);\n }\n };\n return Tooltip;\n}());\nvar PopupManager = /** @class */ (function () {\n function PopupManager() {\n this.popups = [];\n }\n PopupManager.prototype.addPopup = function (popup) {\n this.popups.push(popup);\n this.updatePopups();\n };\n PopupManager.prototype.removePopup = function (popup) {\n var index = this.popups.indexOf(popup);\n if (index !== -1) {\n this.popups.splice(index, 1);\n this.updatePopups();\n }\n };\n PopupManager.prototype.updatePopups = function () {\n var e_1, _a, e_2, _b;\n this.popups.sort(function (a, b) { return b.priority - a.priority; });\n var visiblepopups = [];\n try {\n for (var _c = __values(this.popups), _d = _c.next(); !_d.done; _d = _c.next()) {\n var popup = _d.value;\n var shouldDisplay = true;\n try {\n for (var visiblepopups_1 = (e_2 = void 0, __values(visiblepopups)), visiblepopups_1_1 = visiblepopups_1.next(); !visiblepopups_1_1.done; visiblepopups_1_1 = visiblepopups_1.next()) {\n var visiblePopup = visiblepopups_1_1.value;\n if (this.doPopupsOverlap(visiblePopup, popup)) {\n shouldDisplay = false;\n break;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (visiblepopups_1_1 && !visiblepopups_1_1.done && (_b = visiblepopups_1.return)) _b.call(visiblepopups_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (shouldDisplay) {\n visiblepopups.push(popup);\n }\n else {\n popup.hide();\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n PopupManager.prototype.doPopupsOverlap = function (popupA, popupB) {\n var rectA = popupA.getElement().getBoundingClientRect();\n var rectB = popupB.getElement().getBoundingClientRect();\n return (rectA.left < rectB.right && rectA.right > rectB.left && rectA.top < rectB.bottom && rectA.bottom\n > rectB.top);\n };\n return PopupManager;\n}());\nvar popupManager = new PopupManager();\nexports.popupManager = popupManager;\nexports.Tooltip = Tooltip;\nvar HoverTooltip = /** @class */ (function (_super) {\n __extends(HoverTooltip, _super);\n function HoverTooltip(parentNode) {\n if (parentNode === void 0) { parentNode = document.body; }\n var _this = _super.call(this, parentNode) || this;\n _this.timeout = undefined;\n _this.lastT = 0;\n _this.idleTime = 350;\n _this.lastEvent = undefined;\n _this.onMouseOut = _this.onMouseOut.bind(_this);\n _this.onMouseMove = _this.onMouseMove.bind(_this);\n _this.waitForHover = _this.waitForHover.bind(_this);\n _this.hide = _this.hide.bind(_this);\n var el = _this.getElement();\n el.style.whiteSpace = \"pre-wrap\";\n el.style.pointerEvents = \"auto\";\n el.addEventListener(\"mouseout\", _this.onMouseOut);\n el.tabIndex = -1;\n el.addEventListener(\"blur\", function () {\n if (!el.contains(document.activeElement))\n this.hide();\n }.bind(_this));\n el.addEventListener(\"wheel\", event.stopPropagation);\n return _this;\n }\n HoverTooltip.prototype.addToEditor = function (editor) {\n editor.on(\"mousemove\", this.onMouseMove);\n editor.on(\"mousedown\", this.hide);\n editor.renderer.getMouseEventTarget().addEventListener(\"mouseout\", this.onMouseOut, true);\n };\n HoverTooltip.prototype.removeFromEditor = function (editor) {\n editor.off(\"mousemove\", this.onMouseMove);\n editor.off(\"mousedown\", this.hide);\n editor.renderer.getMouseEventTarget().removeEventListener(\"mouseout\", this.onMouseOut, true);\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n };\n HoverTooltip.prototype.onMouseMove = function (e, editor) {\n this.lastEvent = e;\n this.lastT = Date.now();\n var isMousePressed = editor.$mouseHandler.isMousePressed;\n if (this.isOpen) {\n var pos = this.lastEvent && this.lastEvent.getDocumentPosition();\n if (!this.range\n || !this.range.contains(pos.row, pos.column)\n || isMousePressed\n || this.isOutsideOfText(this.lastEvent)) {\n this.hide();\n }\n }\n if (this.timeout || isMousePressed)\n return;\n this.lastEvent = e;\n this.timeout = setTimeout(this.waitForHover, this.idleTime);\n };\n HoverTooltip.prototype.waitForHover = function () {\n if (this.timeout)\n clearTimeout(this.timeout);\n var dt = Date.now() - this.lastT;\n if (this.idleTime - dt > 10) {\n this.timeout = setTimeout(this.waitForHover, this.idleTime - dt);\n return;\n }\n this.timeout = null;\n if (this.lastEvent && !this.isOutsideOfText(this.lastEvent)) {\n this.$gatherData(this.lastEvent, this.lastEvent.editor);\n }\n };\n HoverTooltip.prototype.isOutsideOfText = function (e) {\n var editor = e.editor;\n var docPos = e.getDocumentPosition();\n var line = editor.session.getLine(docPos.row);\n if (docPos.column == line.length) {\n var screenPos = editor.renderer.pixelToScreenCoordinates(e.clientX, e.clientY);\n var clippedPos = editor.session.documentToScreenPosition(docPos.row, docPos.column);\n if (clippedPos.column != screenPos.column\n || clippedPos.row != screenPos.row) {\n return true;\n }\n }\n return false;\n };\n HoverTooltip.prototype.setDataProvider = function (value) {\n this.$gatherData = value;\n };\n HoverTooltip.prototype.showForRange = function (editor, range, domNode, startingEvent) {\n var MARGIN = 10;\n if (startingEvent && startingEvent != this.lastEvent)\n return;\n if (this.isOpen && document.activeElement == this.getElement())\n return;\n var renderer = editor.renderer;\n if (!this.isOpen) {\n popupManager.addPopup(this);\n this.$registerCloseEvents();\n this.setTheme(renderer.theme);\n }\n this.isOpen = true;\n this.addMarker(range, editor.session);\n this.range = Range.fromPoints(range.start, range.end);\n var position = renderer.textToScreenCoordinates(range.start.row, range.start.column);\n var rect = renderer.scroller.getBoundingClientRect();\n if (position.pageX < rect.left)\n position.pageX = rect.left;\n var element = this.getElement();\n element.innerHTML = \"\";\n element.appendChild(domNode);\n element.style.maxHeight = \"\";\n element.style.display = \"block\";\n var labelHeight = element.clientHeight;\n var labelWidth = element.clientWidth;\n var spaceBelow = window.innerHeight - position.pageY - renderer.lineHeight;\n var isAbove = true;\n if (position.pageY - labelHeight < 0 && position.pageY < spaceBelow) {\n isAbove = false;\n }\n element.style.maxHeight = (isAbove ? position.pageY : spaceBelow) - MARGIN + \"px\";\n element.style.top = isAbove ? \"\" : position.pageY + renderer.lineHeight + \"px\";\n element.style.bottom = isAbove ? window.innerHeight - position.pageY + \"px\" : \"\";\n element.style.left = Math.min(position.pageX, window.innerWidth - labelWidth - MARGIN) + \"px\";\n };\n HoverTooltip.prototype.addMarker = function (range, session) {\n if (this.marker) {\n this.$markerSession.removeMarker(this.marker);\n }\n this.$markerSession = session;\n this.marker = session && session.addMarker(range, \"ace_highlight-marker\", \"text\");\n };\n HoverTooltip.prototype.hide = function (e) {\n if (!e && document.activeElement == this.getElement())\n return;\n if (e && e.target && (e.type != \"keydown\" || e.ctrlKey || e.metaKey) && this.$element.contains(e.target))\n return;\n this.lastEvent = null;\n if (this.timeout)\n clearTimeout(this.timeout);\n this.timeout = null;\n this.addMarker(null);\n if (this.isOpen) {\n this.$removeCloseEvents();\n this.getElement().style.display = \"none\";\n this.isOpen = false;\n popupManager.removePopup(this);\n }\n };\n HoverTooltip.prototype.$registerCloseEvents = function () {\n window.addEventListener(\"keydown\", this.hide, true);\n window.addEventListener(\"wheel\", this.hide, true);\n window.addEventListener(\"mousedown\", this.hide, true);\n };\n HoverTooltip.prototype.$removeCloseEvents = function () {\n window.removeEventListener(\"keydown\", this.hide, true);\n window.removeEventListener(\"wheel\", this.hide, true);\n window.removeEventListener(\"mousedown\", this.hide, true);\n };\n HoverTooltip.prototype.onMouseOut = function (e) {\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n this.lastEvent = null;\n if (!this.isOpen)\n return;\n if (!e.relatedTarget || this.getElement().contains(e.relatedTarget))\n return;\n if (e && e.currentTarget.contains(e.relatedTarget))\n return;\n if (!e.relatedTarget.classList.contains(\"ace_content\"))\n this.hide();\n };\n return HoverTooltip;\n}(Tooltip));\nexports.HoverTooltip = HoverTooltip;\n\n});\n\nace.define(\"ace/mouse/default_gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/tooltip\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar dom = require(\"../lib/dom\");\nvar event = require(\"../lib/event\");\nvar Tooltip = require(\"../tooltip\").Tooltip;\nvar nls = require(\"../config\").nls;\nfunction GutterHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var gutter = editor.renderer.$gutterLayer;\n var tooltip = new GutterTooltip(editor);\n mouseHandler.editor.setDefaultHandler(\"guttermousedown\", function (e) {\n if (!editor.isFocused() || e.getButton() != 0)\n return;\n var gutterRegion = gutter.getRegion(e);\n if (gutterRegion == \"foldWidgets\")\n return;\n var row = e.getDocumentPosition().row;\n var selection = editor.session.selection;\n if (e.getShiftKey())\n selection.selectTo(row, 0);\n else {\n if (e.domEvent.detail == 2) {\n editor.selectAll();\n return e.preventDefault();\n }\n mouseHandler.$clickSelection = editor.selection.getLineRange(row);\n }\n mouseHandler.setState(\"selectByLines\");\n mouseHandler.captureMouse(e);\n return e.preventDefault();\n });\n var tooltipTimeout, mouseEvent;\n function showTooltip() {\n var row = mouseEvent.getDocumentPosition().row;\n var maxRow = editor.session.getLength();\n if (row == maxRow) {\n var screenRow = editor.renderer.pixelToScreenCoordinates(0, mouseEvent.y).row;\n var pos = mouseEvent.$pos;\n if (screenRow > editor.session.documentToScreenRow(pos.row, pos.column))\n return hideTooltip();\n }\n tooltip.showTooltip(row);\n if (!tooltip.isOpen)\n return;\n editor.on(\"mousewheel\", hideTooltip);\n if (mouseHandler.$tooltipFollowsMouse) {\n moveTooltip(mouseEvent);\n }\n else {\n var gutterRow = mouseEvent.getGutterRow();\n var gutterCell = gutter.$lines.get(gutterRow);\n if (gutterCell) {\n var gutterElement = gutterCell.element.querySelector(\".ace_gutter_annotation\");\n var rect = gutterElement.getBoundingClientRect();\n var style = tooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n }\n else {\n moveTooltip(mouseEvent);\n }\n }\n }\n function hideTooltip() {\n if (tooltipTimeout)\n tooltipTimeout = clearTimeout(tooltipTimeout);\n if (tooltip.isOpen) {\n tooltip.hideTooltip();\n editor.off(\"mousewheel\", hideTooltip);\n }\n }\n function moveTooltip(e) {\n tooltip.setPosition(e.x, e.y);\n }\n mouseHandler.editor.setDefaultHandler(\"guttermousemove\", function (e) {\n var target = e.domEvent.target || e.domEvent.srcElement;\n if (dom.hasCssClass(target, \"ace_fold-widget\"))\n return hideTooltip();\n if (tooltip.isOpen && mouseHandler.$tooltipFollowsMouse)\n moveTooltip(e);\n mouseEvent = e;\n if (tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function () {\n tooltipTimeout = null;\n if (mouseEvent && !mouseHandler.isMousePressed)\n showTooltip();\n else\n hideTooltip();\n }, 50);\n });\n event.addListener(editor.renderer.$gutter, \"mouseout\", function (e) {\n mouseEvent = null;\n if (!tooltip.isOpen || tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function () {\n tooltipTimeout = null;\n hideTooltip();\n }, 50);\n }, editor);\n editor.on(\"changeSession\", hideTooltip);\n editor.on(\"input\", hideTooltip);\n}\nexports.GutterHandler = GutterHandler;\nvar GutterTooltip = /** @class */ (function (_super) {\n __extends(GutterTooltip, _super);\n function GutterTooltip(editor) {\n var _this = _super.call(this, editor.container) || this;\n _this.editor = editor;\n return _this;\n }\n GutterTooltip.prototype.setPosition = function (x, y) {\n var windowWidth = window.innerWidth || document.documentElement.clientWidth;\n var windowHeight = window.innerHeight || document.documentElement.clientHeight;\n var width = this.getWidth();\n var height = this.getHeight();\n x += 15;\n y += 15;\n if (x + width > windowWidth) {\n x -= (x + width) - windowWidth;\n }\n if (y + height > windowHeight) {\n y -= 20 + height;\n }\n Tooltip.prototype.setPosition.call(this, x, y);\n };\n Object.defineProperty(GutterTooltip, \"annotationLabels\", {\n get: function () {\n return {\n error: { singular: nls(\"error\"), plural: nls(\"errors\") },\n warning: { singular: nls(\"warning\"), plural: nls(\"warnings\") },\n info: { singular: nls(\"information message\"), plural: nls(\"information messages\") }\n };\n },\n enumerable: false,\n configurable: true\n });\n GutterTooltip.prototype.showTooltip = function (row) {\n var gutter = this.editor.renderer.$gutterLayer;\n var annotationsInRow = gutter.$annotations[row];\n var annotation;\n if (annotationsInRow)\n annotation = { text: Array.from(annotationsInRow.text), type: Array.from(annotationsInRow.type) };\n else\n annotation = { text: [], type: [] };\n var fold = gutter.session.getFoldLine(row);\n if (fold && gutter.$showFoldedAnnotations) {\n var annotationsInFold = { error: [], warning: [], info: [] };\n var mostSevereAnnotationInFoldType;\n for (var i = row + 1; i <= fold.end.row; i++) {\n if (!gutter.$annotations[i])\n continue;\n for (var j = 0; j < gutter.$annotations[i].text.length; j++) {\n var annotationType = gutter.$annotations[i].type[j];\n annotationsInFold[annotationType].push(gutter.$annotations[i].text[j]);\n if (annotationType === \"error\") {\n mostSevereAnnotationInFoldType = \"error_fold\";\n continue;\n }\n if (annotationType === \"warning\") {\n mostSevereAnnotationInFoldType = \"warning_fold\";\n continue;\n }\n }\n }\n if (mostSevereAnnotationInFoldType === \"error_fold\" || mostSevereAnnotationInFoldType === \"warning_fold\") {\n var summaryFoldedAnnotations = \"\".concat(GutterTooltip.annotationsToSummaryString(annotationsInFold), \" in folded code.\");\n annotation.text.push(summaryFoldedAnnotations);\n annotation.type.push(mostSevereAnnotationInFoldType);\n }\n }\n if (annotation.text.length === 0)\n return this.hide();\n var annotationMessages = { error: [], warning: [], info: [] };\n var iconClassName = gutter.$useSvgGutterIcons ? \"ace_icon_svg\" : \"ace_icon\";\n for (var i = 0; i < annotation.text.length; i++) {\n var line = \" \").concat(annotation.text[i]);\n annotationMessages[annotation.type[i].replace(\"_fold\", \"\")].push(line);\n }\n var tooltipContent = [].concat(annotationMessages.error, annotationMessages.warning, annotationMessages.info).join(\"
    \");\n this.setHtml(tooltipContent);\n this.$element.setAttribute(\"aria-live\", \"polite\");\n if (!this.isOpen) {\n this.setTheme(this.editor.renderer.theme);\n this.setClassName(\"ace_gutter-tooltip\");\n }\n this.show();\n this.editor._signal(\"showGutterTooltip\", this);\n };\n GutterTooltip.prototype.hideTooltip = function () {\n this.$element.removeAttribute(\"aria-live\");\n this.hide();\n this.editor._signal(\"hideGutterTooltip\", this);\n };\n GutterTooltip.annotationsToSummaryString = function (annotations) {\n var e_1, _a;\n var summary = [];\n var annotationTypes = ['error', 'warning', 'info'];\n try {\n for (var annotationTypes_1 = __values(annotationTypes), annotationTypes_1_1 = annotationTypes_1.next(); !annotationTypes_1_1.done; annotationTypes_1_1 = annotationTypes_1.next()) {\n var annotationType = annotationTypes_1_1.value;\n if (!annotations[annotationType].length)\n continue;\n var label = annotations[annotationType].length === 1 ? GutterTooltip.annotationLabels[annotationType].singular : GutterTooltip.annotationLabels[annotationType].plural;\n summary.push(\"\".concat(annotations[annotationType].length, \" \").concat(label));\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (annotationTypes_1_1 && !annotationTypes_1_1.done && (_a = annotationTypes_1.return)) _a.call(annotationTypes_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return summary.join(\", \");\n };\n return GutterTooltip;\n}(Tooltip));\nexports.GutterTooltip = GutterTooltip;\n\n});\n\nace.define(\"ace/mouse/mouse_event\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar MouseEvent = /** @class */ (function () {\n function MouseEvent(domEvent, editor) {\n this.domEvent = domEvent;\n this.editor = editor;\n this.x = this.clientX = domEvent.clientX;\n this.y = this.clientY = domEvent.clientY;\n this.$pos = null;\n this.$inSelection = null;\n this.propagationStopped = false;\n this.defaultPrevented = false;\n }\n MouseEvent.prototype.stopPropagation = function () {\n event.stopPropagation(this.domEvent);\n this.propagationStopped = true;\n };\n MouseEvent.prototype.preventDefault = function () {\n event.preventDefault(this.domEvent);\n this.defaultPrevented = true;\n };\n MouseEvent.prototype.stop = function () {\n this.stopPropagation();\n this.preventDefault();\n };\n MouseEvent.prototype.getDocumentPosition = function () {\n if (this.$pos)\n return this.$pos;\n this.$pos = this.editor.renderer.screenToTextCoordinates(this.clientX, this.clientY);\n return this.$pos;\n };\n MouseEvent.prototype.getGutterRow = function () {\n var documentRow = this.getDocumentPosition().row;\n var screenRow = this.editor.session.documentToScreenRow(documentRow, 0);\n var screenTopRow = this.editor.session.documentToScreenRow(this.editor.renderer.$gutterLayer.$lines.get(0).row, 0);\n return screenRow - screenTopRow;\n };\n MouseEvent.prototype.inSelection = function () {\n if (this.$inSelection !== null)\n return this.$inSelection;\n var editor = this.editor;\n var selectionRange = editor.getSelectionRange();\n if (selectionRange.isEmpty())\n this.$inSelection = false;\n else {\n var pos = this.getDocumentPosition();\n this.$inSelection = selectionRange.contains(pos.row, pos.column);\n }\n return this.$inSelection;\n };\n MouseEvent.prototype.getButton = function () {\n return event.getButton(this.domEvent);\n };\n MouseEvent.prototype.getShiftKey = function () {\n return this.domEvent.shiftKey;\n };\n MouseEvent.prototype.getAccelKey = function () {\n return useragent.isMac ? this.domEvent.metaKey : this.domEvent.ctrlKey;\n };\n return MouseEvent;\n}());\nexports.MouseEvent = MouseEvent;\n\n});\n\nace.define(\"ace/mouse/dragdrop_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar AUTOSCROLL_DELAY = 200;\nvar SCROLL_CURSOR_DELAY = 200;\nvar SCROLL_CURSOR_HYSTERESIS = 5;\nfunction DragdropHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var dragImage = dom.createElement(\"div\");\n dragImage.style.cssText = \"top:-100px;position:absolute;z-index:2147483647;opacity:0.5\";\n dragImage.textContent = \"\\xa0\";\n var exports = [\"dragWait\", \"dragWaitEnd\", \"startDrag\", \"dragReadyEnd\", \"onMouseDrag\"];\n exports.forEach(function (x) {\n mouseHandler[x] = this[x];\n }, this);\n editor.on(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n var mouseTarget = editor.container;\n var dragSelectionMarker, x, y;\n var timerId, range;\n var dragCursor, counter = 0;\n var dragOperation;\n var isInternal;\n var autoScrollStartTime;\n var cursorMovedTime;\n var cursorPointOnCaretMoved;\n this.onDragStart = function (e) {\n if (this.cancelDrag || !mouseTarget.draggable) {\n var self = this;\n setTimeout(function () {\n self.startSelect();\n self.captureMouse(e);\n }, 0);\n return e.preventDefault();\n }\n range = editor.getSelectionRange();\n var dataTransfer = e.dataTransfer;\n dataTransfer.effectAllowed = editor.getReadOnly() ? \"copy\" : \"copyMove\";\n editor.container.appendChild(dragImage);\n dataTransfer.setDragImage && dataTransfer.setDragImage(dragImage, 0, 0);\n setTimeout(function () {\n editor.container.removeChild(dragImage);\n });\n dataTransfer.clearData();\n dataTransfer.setData(\"Text\", editor.session.getTextRange());\n isInternal = true;\n this.setState(\"drag\");\n };\n this.onDragEnd = function (e) {\n mouseTarget.draggable = false;\n isInternal = false;\n this.setState(null);\n if (!editor.getReadOnly()) {\n var dropEffect = e.dataTransfer.dropEffect;\n if (!dragOperation && dropEffect == \"move\")\n editor.session.remove(editor.getSelectionRange());\n editor.$resetCursorStyle();\n }\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n };\n this.onDragEnter = function (e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker)\n addDragMarker();\n counter++;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n this.onDragOver = function (e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker) {\n addDragMarker();\n counter++;\n }\n if (onMouseMoveTimer !== null)\n onMouseMoveTimer = null;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n this.onDragLeave = function (e) {\n counter--;\n if (counter <= 0 && dragSelectionMarker) {\n clearDragMarker();\n dragOperation = null;\n return event.preventDefault(e);\n }\n };\n this.onDrop = function (e) {\n if (!dragCursor)\n return;\n var dataTransfer = e.dataTransfer;\n if (isInternal) {\n switch (dragOperation) {\n case \"move\":\n if (range.contains(dragCursor.row, dragCursor.column)) {\n range = {\n start: dragCursor,\n end: dragCursor\n };\n }\n else {\n range = editor.moveText(range, dragCursor);\n }\n break;\n case \"copy\":\n range = editor.moveText(range, dragCursor, true);\n break;\n }\n }\n else {\n var dropData = dataTransfer.getData('Text');\n range = {\n start: dragCursor,\n end: editor.session.insert(dragCursor, dropData)\n };\n editor.focus();\n dragOperation = null;\n }\n clearDragMarker();\n return event.preventDefault(e);\n };\n event.addListener(mouseTarget, \"dragstart\", this.onDragStart.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragend\", this.onDragEnd.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragenter\", this.onDragEnter.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragover\", this.onDragOver.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragleave\", this.onDragLeave.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"drop\", this.onDrop.bind(mouseHandler), editor);\n function scrollCursorIntoView(cursor, prevCursor) {\n var now = Date.now();\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n var hMovement = !prevCursor || cursor.column != prevCursor.column;\n if (!cursorMovedTime || vMovement || hMovement) {\n editor.moveCursorToPosition(cursor);\n cursorMovedTime = now;\n cursorPointOnCaretMoved = { x: x, y: y };\n }\n else {\n var distance = calcDistance(cursorPointOnCaretMoved.x, cursorPointOnCaretMoved.y, x, y);\n if (distance > SCROLL_CURSOR_HYSTERESIS) {\n cursorMovedTime = null;\n }\n else if (now - cursorMovedTime >= SCROLL_CURSOR_DELAY) {\n editor.renderer.scrollCursorIntoView();\n cursorMovedTime = null;\n }\n }\n }\n function autoScroll(cursor, prevCursor) {\n var now = Date.now();\n var lineHeight = editor.renderer.layerConfig.lineHeight;\n var characterWidth = editor.renderer.layerConfig.characterWidth;\n var editorRect = editor.renderer.scroller.getBoundingClientRect();\n var offsets = {\n x: {\n left: x - editorRect.left,\n right: editorRect.right - x\n },\n y: {\n top: y - editorRect.top,\n bottom: editorRect.bottom - y\n }\n };\n var nearestXOffset = Math.min(offsets.x.left, offsets.x.right);\n var nearestYOffset = Math.min(offsets.y.top, offsets.y.bottom);\n var scrollCursor = { row: cursor.row, column: cursor.column };\n if (nearestXOffset / characterWidth <= 2) {\n scrollCursor.column += (offsets.x.left < offsets.x.right ? -3 : +2);\n }\n if (nearestYOffset / lineHeight <= 1) {\n scrollCursor.row += (offsets.y.top < offsets.y.bottom ? -1 : +1);\n }\n var vScroll = cursor.row != scrollCursor.row;\n var hScroll = cursor.column != scrollCursor.column;\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n if (vScroll || (hScroll && !vMovement)) {\n if (!autoScrollStartTime)\n autoScrollStartTime = now;\n else if (now - autoScrollStartTime >= AUTOSCROLL_DELAY)\n editor.renderer.scrollCursorIntoView(scrollCursor);\n }\n else {\n autoScrollStartTime = null;\n }\n }\n function onDragInterval() {\n var prevCursor = dragCursor;\n dragCursor = editor.renderer.screenToTextCoordinates(x, y);\n scrollCursorIntoView(dragCursor, prevCursor);\n autoScroll(dragCursor, prevCursor);\n }\n function addDragMarker() {\n range = editor.selection.toOrientedRange();\n dragSelectionMarker = editor.session.addMarker(range, \"ace_selection\", editor.getSelectionStyle());\n editor.clearSelection();\n if (editor.isFocused())\n editor.renderer.$cursorLayer.setBlinking(false);\n clearInterval(timerId);\n onDragInterval();\n timerId = setInterval(onDragInterval, 20);\n counter = 0;\n event.addListener(document, \"mousemove\", onMouseMove);\n }\n function clearDragMarker() {\n clearInterval(timerId);\n editor.session.removeMarker(dragSelectionMarker);\n dragSelectionMarker = null;\n editor.selection.fromOrientedRange(range);\n if (editor.isFocused() && !isInternal)\n editor.$resetCursorStyle();\n range = null;\n dragCursor = null;\n counter = 0;\n autoScrollStartTime = null;\n cursorMovedTime = null;\n event.removeListener(document, \"mousemove\", onMouseMove);\n }\n var onMouseMoveTimer = null;\n function onMouseMove() {\n if (onMouseMoveTimer == null) {\n onMouseMoveTimer = setTimeout(function () {\n if (onMouseMoveTimer != null && dragSelectionMarker)\n clearDragMarker();\n }, 20);\n }\n }\n function canAccept(dataTransfer) {\n var types = dataTransfer.types;\n return !types || Array.prototype.some.call(types, function (type) {\n return type == 'text/plain' || type == 'Text';\n });\n }\n function getDropEffect(e) {\n var copyAllowed = ['copy', 'copymove', 'all', 'uninitialized'];\n var moveAllowed = ['move', 'copymove', 'linkmove', 'all', 'uninitialized'];\n var copyModifierState = useragent.isMac ? e.altKey : e.ctrlKey;\n var effectAllowed = \"uninitialized\";\n try {\n effectAllowed = e.dataTransfer.effectAllowed.toLowerCase();\n }\n catch (e) { }\n var dropEffect = \"none\";\n if (copyModifierState && copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n else if (moveAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"move\";\n else if (copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n return dropEffect;\n }\n}\n(function () {\n this.dragWait = function () {\n var interval = Date.now() - this.mousedownEvent.time;\n if (interval > this.editor.getDragDelay())\n this.startDrag();\n };\n this.dragWaitEnd = function () {\n var target = this.editor.container;\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n this.selectEnd();\n };\n this.dragReadyEnd = function (e) {\n this.editor.$resetCursorStyle();\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n this.dragWaitEnd();\n };\n this.startDrag = function () {\n this.cancelDrag = false;\n var editor = this.editor;\n var target = editor.container;\n target.draggable = true;\n editor.renderer.$cursorLayer.setBlinking(false);\n editor.setStyle(\"ace_dragging\");\n var cursorStyle = useragent.isWin ? \"default\" : \"move\";\n editor.renderer.setCursorStyle(cursorStyle);\n this.setState(\"dragReady\");\n };\n this.onMouseDrag = function (e) {\n var target = this.editor.container;\n if (useragent.isIE && this.state == \"dragReady\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 3)\n target.dragDrop();\n }\n if (this.state === \"dragWait\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 0) {\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n }\n }\n };\n this.onMouseDown = function (e) {\n if (!this.$dragEnabled)\n return;\n this.mousedownEvent = e;\n var editor = this.editor;\n var inSelection = e.inSelection();\n var button = e.getButton();\n var clickCount = e.domEvent.detail || 1;\n if (clickCount === 1 && button === 0 && inSelection) {\n if (e.editor.inMultiSelectMode && (e.getAccelKey() || e.getShiftKey()))\n return;\n this.mousedownEvent.time = Date.now();\n var eventTarget = e.domEvent.target || e.domEvent.srcElement;\n if (\"unselectable\" in eventTarget)\n eventTarget.unselectable = \"on\";\n if (editor.getDragDelay()) {\n if (useragent.isWebKit) {\n this.cancelDrag = true;\n var mouseTarget = editor.container;\n mouseTarget.draggable = true;\n }\n this.setState(\"dragWait\");\n }\n else {\n this.startDrag();\n }\n this.captureMouse(e, this.onMouseDrag.bind(this));\n e.defaultPrevented = true;\n }\n };\n}).call(DragdropHandler.prototype);\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\nexports.DragdropHandler = DragdropHandler;\n\n});\n\nace.define(\"ace/mouse/touch_handler\",[\"require\",\"exports\",\"module\",\"ace/mouse/mouse_event\",\"ace/lib/event\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar MouseEvent = require(\"./mouse_event\").MouseEvent;\nvar event = require(\"../lib/event\");\nvar dom = require(\"../lib/dom\");\nexports.addTouchListeners = function (el, editor) {\n var mode = \"scroll\";\n var startX;\n var startY;\n var touchStartT;\n var lastT;\n var longTouchTimer;\n var animationTimer;\n var animationSteps = 0;\n var pos;\n var clickCount = 0;\n var vX = 0;\n var vY = 0;\n var pressed;\n var contextMenu;\n function createContextMenu() {\n var clipboard = window.navigator && window.navigator.clipboard;\n var isOpen = false;\n var updateMenu = function () {\n var selected = editor.getCopyText();\n var hasUndo = editor.session.getUndoManager().hasUndo();\n contextMenu.replaceChild(dom.buildDom(isOpen ? [\"span\",\n !selected && [\"span\", { class: \"ace_mobile-button\", action: \"selectall\" }, \"Select All\"],\n selected && [\"span\", { class: \"ace_mobile-button\", action: \"copy\" }, \"Copy\"],\n selected && [\"span\", { class: \"ace_mobile-button\", action: \"cut\" }, \"Cut\"],\n clipboard && [\"span\", { class: \"ace_mobile-button\", action: \"paste\" }, \"Paste\"],\n hasUndo && [\"span\", { class: \"ace_mobile-button\", action: \"undo\" }, \"Undo\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"find\" }, \"Find\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"openCommandPalette\" }, \"Palette\"]\n ] : [\"span\"]), contextMenu.firstChild);\n };\n var handleClick = function (e) {\n var action = e.target.getAttribute(\"action\");\n if (action == \"more\" || !isOpen) {\n isOpen = !isOpen;\n return updateMenu();\n }\n if (action == \"paste\") {\n clipboard.readText().then(function (text) {\n editor.execCommand(action, text);\n });\n }\n else if (action) {\n if (action == \"cut\" || action == \"copy\") {\n if (clipboard)\n clipboard.writeText(editor.getCopyText());\n else\n document.execCommand(\"copy\");\n }\n editor.execCommand(action);\n }\n contextMenu.firstChild.style.display = \"none\";\n isOpen = false;\n if (action != \"openCommandPalette\")\n editor.focus();\n };\n contextMenu = dom.buildDom([\"div\",\n {\n class: \"ace_mobile-menu\",\n ontouchstart: function (e) {\n mode = \"menu\";\n e.stopPropagation();\n e.preventDefault();\n editor.textInput.focus();\n },\n ontouchend: function (e) {\n e.stopPropagation();\n e.preventDefault();\n handleClick(e);\n },\n onclick: handleClick\n },\n [\"span\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"more\" }, \"...\"]\n ], editor.container);\n }\n function showContextMenu() {\n if (!contextMenu)\n createContextMenu();\n var cursor = editor.selection.cursor;\n var pagePos = editor.renderer.textToScreenCoordinates(cursor.row, cursor.column);\n var leftOffset = editor.renderer.textToScreenCoordinates(0, 0).pageX;\n var scrollLeft = editor.renderer.scrollLeft;\n var rect = editor.container.getBoundingClientRect();\n contextMenu.style.top = pagePos.pageY - rect.top - 3 + \"px\";\n if (pagePos.pageX - rect.left < rect.width - 70) {\n contextMenu.style.left = \"\";\n contextMenu.style.right = \"10px\";\n }\n else {\n contextMenu.style.right = \"\";\n contextMenu.style.left = leftOffset + scrollLeft - rect.left + \"px\";\n }\n contextMenu.style.display = \"\";\n contextMenu.firstChild.style.display = \"none\";\n editor.on(\"input\", hideContextMenu);\n }\n function hideContextMenu(e) {\n if (contextMenu)\n contextMenu.style.display = \"none\";\n editor.off(\"input\", hideContextMenu);\n }\n function handleLongTap() {\n longTouchTimer = null;\n clearTimeout(longTouchTimer);\n var range = editor.selection.getRange();\n var inSelection = range.contains(pos.row, pos.column);\n if (range.isEmpty() || !inSelection) {\n editor.selection.moveToPosition(pos);\n editor.selection.selectWord();\n }\n mode = \"wait\";\n showContextMenu();\n }\n function switchToSelectionMode() {\n longTouchTimer = null;\n clearTimeout(longTouchTimer);\n editor.selection.moveToPosition(pos);\n var range = clickCount >= 2\n ? editor.selection.getLineRange(pos.row)\n : editor.session.getBracketRange(pos);\n if (range && !range.isEmpty()) {\n editor.selection.setRange(range);\n }\n else {\n editor.selection.selectWord();\n }\n mode = \"wait\";\n }\n event.addListener(el, \"contextmenu\", function (e) {\n if (!pressed)\n return;\n var textarea = editor.textInput.getElement();\n textarea.focus();\n }, editor);\n event.addListener(el, \"touchstart\", function (e) {\n var touches = e.touches;\n if (longTouchTimer || touches.length > 1) {\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n touchStartT = -1;\n mode = \"zoom\";\n return;\n }\n pressed = editor.$mouseHandler.isMousePressed = true;\n var h = editor.renderer.layerConfig.lineHeight;\n var w = editor.renderer.layerConfig.lineHeight;\n var t = e.timeStamp;\n lastT = t;\n var touchObj = touches[0];\n var x = touchObj.clientX;\n var y = touchObj.clientY;\n if (Math.abs(startX - x) + Math.abs(startY - y) > h)\n touchStartT = -1;\n startX = e.clientX = x;\n startY = e.clientY = y;\n vX = vY = 0;\n var ev = new MouseEvent(e, editor);\n pos = ev.getDocumentPosition();\n if (t - touchStartT < 500 && touches.length == 1 && !animationSteps) {\n clickCount++;\n e.preventDefault();\n e.button = 0;\n switchToSelectionMode();\n }\n else {\n clickCount = 0;\n var cursor = editor.selection.cursor;\n var anchor = editor.selection.isEmpty() ? cursor : editor.selection.anchor;\n var cursorPos = editor.renderer.$cursorLayer.getPixelPosition(cursor, true);\n var anchorPos = editor.renderer.$cursorLayer.getPixelPosition(anchor, true);\n var rect = editor.renderer.scroller.getBoundingClientRect();\n var offsetTop = editor.renderer.layerConfig.offset;\n var offsetLeft = editor.renderer.scrollLeft;\n var weightedDistance = function (x, y) {\n x = x / w;\n y = y / h - 0.75;\n return x * x + y * y;\n };\n if (e.clientX < rect.left) {\n mode = \"zoom\";\n return;\n }\n var diff1 = weightedDistance(e.clientX - rect.left - cursorPos.left + offsetLeft, e.clientY - rect.top - cursorPos.top + offsetTop);\n var diff2 = weightedDistance(e.clientX - rect.left - anchorPos.left + offsetLeft, e.clientY - rect.top - anchorPos.top + offsetTop);\n if (diff1 < 3.5 && diff2 < 3.5)\n mode = diff1 > diff2 ? \"cursor\" : \"anchor\";\n if (diff2 < 3.5)\n mode = \"anchor\";\n else if (diff1 < 3.5)\n mode = \"cursor\";\n else\n mode = \"scroll\";\n longTouchTimer = setTimeout(handleLongTap, 450);\n }\n touchStartT = t;\n }, editor);\n event.addListener(el, \"touchend\", function (e) {\n pressed = editor.$mouseHandler.isMousePressed = false;\n if (animationTimer)\n clearInterval(animationTimer);\n if (mode == \"zoom\") {\n mode = \"\";\n animationSteps = 0;\n }\n else if (longTouchTimer) {\n editor.selection.moveToPosition(pos);\n animationSteps = 0;\n showContextMenu();\n }\n else if (mode == \"scroll\") {\n animate();\n hideContextMenu();\n }\n else {\n showContextMenu();\n }\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n }, editor);\n event.addListener(el, \"touchmove\", function (e) {\n if (longTouchTimer) {\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n }\n var touches = e.touches;\n if (touches.length > 1 || mode == \"zoom\")\n return;\n var touchObj = touches[0];\n var wheelX = startX - touchObj.clientX;\n var wheelY = startY - touchObj.clientY;\n if (mode == \"wait\") {\n if (wheelX * wheelX + wheelY * wheelY > 4)\n mode = \"cursor\";\n else\n return e.preventDefault();\n }\n startX = touchObj.clientX;\n startY = touchObj.clientY;\n e.clientX = touchObj.clientX;\n e.clientY = touchObj.clientY;\n var t = e.timeStamp;\n var dt = t - lastT;\n lastT = t;\n if (mode == \"scroll\") {\n var mouseEvent = new MouseEvent(e, editor);\n mouseEvent.speed = 1;\n mouseEvent.wheelX = wheelX;\n mouseEvent.wheelY = wheelY;\n if (10 * Math.abs(wheelX) < Math.abs(wheelY))\n wheelX = 0;\n if (10 * Math.abs(wheelY) < Math.abs(wheelX))\n wheelY = 0;\n if (dt != 0) {\n vX = wheelX / dt;\n vY = wheelY / dt;\n }\n editor._emit(\"mousewheel\", mouseEvent);\n if (!mouseEvent.propagationStopped) {\n vX = vY = 0;\n }\n }\n else {\n var ev = new MouseEvent(e, editor);\n var pos = ev.getDocumentPosition();\n if (mode == \"cursor\")\n editor.selection.moveCursorToPosition(pos);\n else if (mode == \"anchor\")\n editor.selection.setSelectionAnchor(pos.row, pos.column);\n editor.renderer.scrollCursorIntoView(pos);\n e.preventDefault();\n }\n }, editor);\n function animate() {\n animationSteps += 60;\n animationTimer = setInterval(function () {\n if (animationSteps-- <= 0) {\n clearInterval(animationTimer);\n animationTimer = null;\n }\n if (Math.abs(vX) < 0.01)\n vX = 0;\n if (Math.abs(vY) < 0.01)\n vY = 0;\n if (animationSteps < 20)\n vX = 0.9 * vX;\n if (animationSteps < 20)\n vY = 0.9 * vY;\n var oldScrollTop = editor.session.getScrollTop();\n editor.renderer.scrollBy(10 * vX, 10 * vY);\n if (oldScrollTop == editor.session.getScrollTop())\n animationSteps = 0;\n }, 10);\n }\n};\n\n});\n\nace.define(\"ace/mouse/mouse_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/mouse/default_handlers\",\"ace/mouse/default_gutter_handler\",\"ace/mouse/mouse_event\",\"ace/mouse/dragdrop_handler\",\"ace/mouse/touch_handler\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar DefaultHandlers = require(\"./default_handlers\").DefaultHandlers;\nvar DefaultGutterHandler = require(\"./default_gutter_handler\").GutterHandler;\nvar MouseEvent = require(\"./mouse_event\").MouseEvent;\nvar DragdropHandler = require(\"./dragdrop_handler\").DragdropHandler;\nvar addTouchListeners = require(\"./touch_handler\").addTouchListeners;\nvar config = require(\"../config\");\nvar MouseHandler = /** @class */ (function () {\n function MouseHandler(editor) {\n var _self = this;\n this.editor = editor;\n new DefaultHandlers(this);\n new DefaultGutterHandler(this);\n new DragdropHandler(this);\n var focusEditor = function (e) {\n var windowBlurred = !document.hasFocus || !document.hasFocus()\n || !editor.isFocused() && document.activeElement == (editor.textInput && editor.textInput.getElement());\n if (windowBlurred)\n window.focus();\n editor.focus();\n setTimeout(function () {\n if (!editor.isFocused())\n editor.focus();\n });\n };\n var mouseTarget = editor.renderer.getMouseEventTarget();\n event.addListener(mouseTarget, \"click\", this.onMouseEvent.bind(this, \"click\"), editor);\n event.addListener(mouseTarget, \"mousemove\", this.onMouseMove.bind(this, \"mousemove\"), editor);\n event.addMultiMouseDownListener([\n mouseTarget,\n editor.renderer.scrollBarV && editor.renderer.scrollBarV.inner,\n editor.renderer.scrollBarH && editor.renderer.scrollBarH.inner,\n editor.textInput && editor.textInput.getElement()\n ].filter(Boolean), [400, 300, 250], this, \"onMouseEvent\", editor);\n event.addMouseWheelListener(editor.container, this.onMouseWheel.bind(this, \"mousewheel\"), editor);\n addTouchListeners(editor.container, editor);\n var gutterEl = editor.renderer.$gutter;\n event.addListener(gutterEl, \"mousedown\", this.onMouseEvent.bind(this, \"guttermousedown\"), editor);\n event.addListener(gutterEl, \"click\", this.onMouseEvent.bind(this, \"gutterclick\"), editor);\n event.addListener(gutterEl, \"dblclick\", this.onMouseEvent.bind(this, \"gutterdblclick\"), editor);\n event.addListener(gutterEl, \"mousemove\", this.onMouseEvent.bind(this, \"guttermousemove\"), editor);\n event.addListener(mouseTarget, \"mousedown\", focusEditor, editor);\n event.addListener(gutterEl, \"mousedown\", focusEditor, editor);\n if (useragent.isIE && editor.renderer.scrollBarV) {\n event.addListener(editor.renderer.scrollBarV.element, \"mousedown\", focusEditor, editor);\n event.addListener(editor.renderer.scrollBarH.element, \"mousedown\", focusEditor, editor);\n }\n editor.on(\"mousemove\", function (e) {\n if (_self.state || _self.$dragDelay || !_self.$dragEnabled)\n return;\n var character = editor.renderer.screenToTextCoordinates(e.x, e.y);\n var range = editor.session.selection.getRange();\n var renderer = editor.renderer;\n if (!range.isEmpty() && range.insideStart(character.row, character.column)) {\n renderer.setCursorStyle(\"default\");\n }\n else {\n renderer.setCursorStyle(\"\");\n }\n }, editor);\n }\n MouseHandler.prototype.onMouseEvent = function (name, e) {\n if (!this.editor.session)\n return;\n this.editor._emit(name, new MouseEvent(e, this.editor));\n };\n MouseHandler.prototype.onMouseMove = function (name, e) {\n var listeners = this.editor._eventRegistry && this.editor._eventRegistry.mousemove;\n if (!listeners || !listeners.length)\n return;\n this.editor._emit(name, new MouseEvent(e, this.editor));\n };\n MouseHandler.prototype.onMouseWheel = function (name, e) {\n var mouseEvent = new MouseEvent(e, this.editor);\n mouseEvent.speed = this.$scrollSpeed * 2;\n mouseEvent.wheelX = e.wheelX;\n mouseEvent.wheelY = e.wheelY;\n this.editor._emit(name, mouseEvent);\n };\n MouseHandler.prototype.setState = function (state) {\n this.state = state;\n };\n MouseHandler.prototype.captureMouse = function (ev, mouseMoveHandler) {\n this.x = ev.x;\n this.y = ev.y;\n this.isMousePressed = true;\n var editor = this.editor;\n var renderer = this.editor.renderer;\n renderer.$isMousePressed = true;\n var self = this;\n var onMouseMove = function (e) {\n if (!e)\n return;\n if (useragent.isWebKit && !e.which && self.releaseMouse)\n return self.releaseMouse();\n self.x = e.clientX;\n self.y = e.clientY;\n mouseMoveHandler && mouseMoveHandler(e);\n self.mouseEvent = new MouseEvent(e, self.editor);\n self.$mouseMoved = true;\n };\n var onCaptureEnd = function (e) {\n editor.off(\"beforeEndOperation\", onOperationEnd);\n clearInterval(timerId);\n if (editor.session)\n onCaptureInterval();\n self[self.state + \"End\"] && self[self.state + \"End\"](e);\n self.state = \"\";\n self.isMousePressed = renderer.$isMousePressed = false;\n if (renderer.$keepTextAreaAtCursor)\n renderer.$moveTextAreaToCursor();\n self.$onCaptureMouseMove = self.releaseMouse = null;\n e && self.onMouseEvent(\"mouseup\", e);\n editor.endOperation();\n };\n var onCaptureInterval = function () {\n self[self.state] && self[self.state]();\n self.$mouseMoved = false;\n };\n if (useragent.isOldIE && ev.domEvent.type == \"dblclick\") {\n return setTimeout(function () { onCaptureEnd(ev); });\n }\n var onOperationEnd = function (e) {\n if (!self.releaseMouse)\n return;\n if (editor.curOp.command.name && editor.curOp.selectionChanged) {\n self[self.state + \"End\"] && self[self.state + \"End\"]();\n self.state = \"\";\n self.releaseMouse();\n }\n };\n editor.on(\"beforeEndOperation\", onOperationEnd);\n editor.startOperation({ command: { name: \"mouse\" } });\n self.$onCaptureMouseMove = onMouseMove;\n self.releaseMouse = event.capture(this.editor.container, onMouseMove, onCaptureEnd);\n var timerId = setInterval(onCaptureInterval, 20);\n };\n MouseHandler.prototype.cancelContextMenu = function () {\n var stop = function (e) {\n if (e && e.domEvent && e.domEvent.type != \"contextmenu\")\n return;\n this.editor.off(\"nativecontextmenu\", stop);\n if (e && e.domEvent)\n event.stopEvent(e.domEvent);\n }.bind(this);\n setTimeout(stop, 10);\n this.editor.on(\"nativecontextmenu\", stop);\n };\n MouseHandler.prototype.destroy = function () {\n if (this.releaseMouse)\n this.releaseMouse();\n };\n return MouseHandler;\n}());\nMouseHandler.prototype.releaseMouse = null;\nconfig.defineOptions(MouseHandler.prototype, \"mouseHandler\", {\n scrollSpeed: { initialValue: 2 },\n dragDelay: { initialValue: (useragent.isMac ? 150 : 0) },\n dragEnabled: { initialValue: true },\n focusTimeout: { initialValue: 0 },\n tooltipFollowsMouse: { initialValue: true }\n});\nexports.MouseHandler = MouseHandler;\n\n});\n\nace.define(\"ace/mouse/fold_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar FoldHandler = /** @class */ (function () {\n function FoldHandler(editor) {\n editor.on(\"click\", function (e) {\n var position = e.getDocumentPosition();\n var session = editor.session;\n var fold = session.getFoldAt(position.row, position.column, 1);\n if (fold) {\n if (e.getAccelKey())\n session.removeFold(fold);\n else\n session.expandFold(fold);\n e.stop();\n }\n var target = e.domEvent && e.domEvent.target;\n if (target && dom.hasCssClass(target, \"ace_inline_button\")) {\n if (dom.hasCssClass(target, \"ace_toggle_wrap\")) {\n session.setOption(\"wrap\", !session.getUseWrapMode());\n editor.renderer.scrollCursorIntoView();\n }\n }\n });\n editor.on(\"gutterclick\", function (e) {\n var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n if (gutterRegion == \"foldWidgets\") {\n var row = e.getDocumentPosition().row;\n var session = editor.session;\n if (session.foldWidgets && session.foldWidgets[row])\n editor.session.onFoldWidgetClick(row, e);\n if (!editor.isFocused())\n editor.focus();\n e.stop();\n }\n });\n editor.on(\"gutterdblclick\", function (e) {\n var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n if (gutterRegion == \"foldWidgets\") {\n var row = e.getDocumentPosition().row;\n var session = editor.session;\n var data = session.getParentFoldRangeData(row, true);\n var range = data.range || data.firstRange;\n if (range) {\n row = range.start.row;\n var fold = session.getFoldAt(row, session.getLine(row).length, 1);\n if (fold) {\n session.removeFold(fold);\n }\n else {\n session.addFold(\"...\", range);\n editor.renderer.scrollCursorIntoView({ row: range.start.row, column: 0 });\n }\n }\n e.stop();\n }\n });\n }\n return FoldHandler;\n}());\nexports.FoldHandler = FoldHandler;\n\n});\n\nace.define(\"ace/keyboard/keybinding\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/event\"], function(require, exports, module){\"use strict\";\nvar keyUtil = require(\"../lib/keys\");\nvar event = require(\"../lib/event\");\nvar KeyBinding = /** @class */ (function () {\n function KeyBinding(editor) {\n this.$editor = editor;\n this.$data = { editor: editor };\n this.$handlers = [];\n this.setDefaultHandler(editor.commands);\n }\n KeyBinding.prototype.setDefaultHandler = function (kb) {\n this.removeKeyboardHandler(this.$defaultHandler);\n this.$defaultHandler = kb;\n this.addKeyboardHandler(kb, 0);\n };\n KeyBinding.prototype.setKeyboardHandler = function (kb) {\n var h = this.$handlers;\n if (h[h.length - 1] == kb)\n return;\n while (h[h.length - 1] && h[h.length - 1] != this.$defaultHandler)\n this.removeKeyboardHandler(h[h.length - 1]);\n this.addKeyboardHandler(kb, 1);\n };\n KeyBinding.prototype.addKeyboardHandler = function (kb, pos) {\n if (!kb)\n return;\n if (typeof kb == \"function\" && !kb.handleKeyboard)\n kb.handleKeyboard = kb;\n var i = this.$handlers.indexOf(kb);\n if (i != -1)\n this.$handlers.splice(i, 1);\n if (pos == undefined)\n this.$handlers.push(kb);\n else\n this.$handlers.splice(pos, 0, kb);\n if (i == -1 && kb.attach)\n kb.attach(this.$editor);\n };\n KeyBinding.prototype.removeKeyboardHandler = function (kb) {\n var i = this.$handlers.indexOf(kb);\n if (i == -1)\n return false;\n this.$handlers.splice(i, 1);\n kb.detach && kb.detach(this.$editor);\n return true;\n };\n KeyBinding.prototype.getKeyboardHandler = function () {\n return this.$handlers[this.$handlers.length - 1];\n };\n KeyBinding.prototype.getStatusText = function () {\n var data = this.$data;\n var editor = data.editor;\n return this.$handlers.map(function (h) {\n return h.getStatusText && h.getStatusText(editor, data) || \"\";\n }).filter(Boolean).join(\" \");\n };\n KeyBinding.prototype.$callKeyboardHandlers = function (hashId, keyString, keyCode, e) {\n var toExecute;\n var success = false;\n var commands = this.$editor.commands;\n for (var i = this.$handlers.length; i--;) {\n toExecute = this.$handlers[i].handleKeyboard(this.$data, hashId, keyString, keyCode, e);\n if (!toExecute || !toExecute.command)\n continue;\n if (toExecute.command == \"null\") {\n success = true;\n }\n else {\n success = commands.exec(toExecute.command, this.$editor, toExecute.args, e);\n }\n if (success && e && hashId != -1 &&\n toExecute.passEvent != true && toExecute.command.passEvent != true) {\n event.stopEvent(e);\n }\n if (success)\n break;\n }\n if (!success && hashId == -1) {\n toExecute = { command: \"insertstring\" };\n success = commands.exec(\"insertstring\", this.$editor, keyString);\n }\n if (success && this.$editor._signal)\n this.$editor._signal(\"keyboardActivity\", toExecute);\n return success;\n };\n KeyBinding.prototype.onCommandKey = function (e, hashId, keyCode) {\n var keyString = keyUtil.keyCodeToString(keyCode);\n return this.$callKeyboardHandlers(hashId, keyString, keyCode, e);\n };\n KeyBinding.prototype.onTextInput = function (text) {\n return this.$callKeyboardHandlers(-1, text);\n };\n return KeyBinding;\n}());\nexports.KeyBinding = KeyBinding;\n\n});\n\nace.define(\"ace/lib/bidiutil\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar ArabicAlefBetIntervalsBegine = ['\\u0621', '\\u0641'];\nvar ArabicAlefBetIntervalsEnd = ['\\u063A', '\\u064a'];\nvar dir = 0, hiLevel = 0;\nvar lastArabic = false, hasUBAT_AL = false, hasUBAT_B = false, hasUBAT_S = false, hasBlockSep = false, hasSegSep = false;\nvar impTab_LTR = [ [0, 3, 0, 1, 0, 0, 0], [0, 3, 0, 1, 2, 2, 0], [0, 3, 0, 0x11, 2, 0, 1], [0, 3, 5, 5, 4, 1, 0], [0, 3, 0x15, 0x15, 4, 0, 1], [0, 3, 5, 5, 4, 2, 0]\n];\nvar impTab_RTL = [ [2, 0, 1, 1, 0, 1, 0], [2, 0, 1, 1, 0, 2, 0], [2, 0, 2, 1, 3, 2, 0], [2, 0, 2, 0x21, 3, 1, 1]\n];\nvar LTR = 0, RTL = 1;\nvar L = 0;\nvar R = 1;\nvar EN = 2;\nvar AN = 3;\nvar ON = 4;\nvar B = 5;\nvar S = 6;\nvar AL = 7;\nvar WS = 8;\nvar CS = 9;\nvar ES = 10;\nvar ET = 11;\nvar NSM = 12;\nvar LRE = 13;\nvar RLE = 14;\nvar PDF = 15;\nvar LRO = 16;\nvar RLO = 17;\nvar BN = 18;\nvar UnicodeTBL00 = [\n BN, BN, BN, BN, BN, BN, BN, BN, BN, S, B, S, WS, B, BN, BN,\n BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, B, B, B, S,\n WS, ON, ON, ET, ET, ET, ON, ON, ON, ON, ON, ES, CS, ES, CS, CS,\n EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, CS, ON, ON, ON, ON, ON,\n ON, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L,\n L, L, L, L, L, L, L, L, L, L, L, ON, ON, ON, ON, ON,\n ON, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L,\n L, L, L, L, L, L, L, L, L, L, L, ON, ON, ON, ON, BN,\n BN, BN, BN, BN, BN, B, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,\n BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,\n CS, ON, ET, ET, ET, ET, ON, ON, ON, ON, L, ON, ON, BN, ON, ON,\n ET, ET, EN, EN, ON, L, ON, ON, ON, EN, L, ON, ON, ON, ON, ON\n];\nvar UnicodeTBL20 = [\n WS, WS, WS, WS, WS, WS, WS, WS, WS, WS, WS, BN, BN, BN, L, R,\n ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, ON, ON, ON, ON, WS, B, LRE, RLE, PDF, LRO, RLO, CS,\n ET, ET, ET, ET, ET, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, CS, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, WS\n];\nfunction _computeLevels(chars, levels, len, charTypes) {\n var impTab = dir ? impTab_RTL : impTab_LTR, prevState = null, newClass = null, newLevel = null, newState = 0, action = null, cond = null, condPos = -1, i = null, ix = null, classes = [];\n if (!charTypes) {\n for (i = 0, charTypes = []; i < len; i++) {\n charTypes[i] = _getCharacterType(chars[i]);\n }\n }\n hiLevel = dir;\n lastArabic = false;\n hasUBAT_AL = false;\n hasUBAT_B = false;\n hasUBAT_S = false;\n for (ix = 0; ix < len; ix++) {\n prevState = newState;\n classes[ix] = newClass = _getCharClass(chars, charTypes, classes, ix);\n newState = impTab[prevState][newClass];\n action = newState & 0xF0;\n newState &= 0x0F;\n levels[ix] = newLevel = impTab[newState][5];\n if (action > 0) {\n if (action == 0x10) {\n for (i = condPos; i < ix; i++) {\n levels[i] = 1;\n }\n condPos = -1;\n }\n else {\n condPos = -1;\n }\n }\n cond = impTab[newState][6];\n if (cond) {\n if (condPos == -1) {\n condPos = ix;\n }\n }\n else {\n if (condPos > -1) {\n for (i = condPos; i < ix; i++) {\n levels[i] = newLevel;\n }\n condPos = -1;\n }\n }\n if (charTypes[ix] == B) {\n levels[ix] = 0;\n }\n hiLevel |= newLevel;\n }\n if (hasUBAT_S) {\n for (i = 0; i < len; i++) {\n if (charTypes[i] == S) {\n levels[i] = dir;\n for (var j = i - 1; j >= 0; j--) {\n if (charTypes[j] == WS) {\n levels[j] = dir;\n }\n else {\n break;\n }\n }\n }\n }\n }\n}\nfunction _invertLevel(lev, levels, _array) {\n if (hiLevel < lev) {\n return;\n }\n if (lev == 1 && dir == RTL && !hasUBAT_B) {\n _array.reverse();\n return;\n }\n var len = _array.length, start = 0, end, lo, hi, tmp;\n while (start < len) {\n if (levels[start] >= lev) {\n end = start + 1;\n while (end < len && levels[end] >= lev) {\n end++;\n }\n for (lo = start, hi = end - 1; lo < hi; lo++, hi--) {\n tmp = _array[lo];\n _array[lo] = _array[hi];\n _array[hi] = tmp;\n }\n start = end;\n }\n start++;\n }\n}\nfunction _getCharClass(chars, types, classes, ix) {\n var cType = types[ix], wType, nType, len, i;\n switch (cType) {\n case L:\n case R:\n lastArabic = false;\n case ON:\n case AN:\n return cType;\n case EN:\n return lastArabic ? AN : EN;\n case AL:\n lastArabic = true;\n hasUBAT_AL = true;\n return R;\n case WS:\n return ON;\n case CS:\n if (ix < 1 || (ix + 1) >= types.length ||\n ((wType = classes[ix - 1]) != EN && wType != AN) ||\n ((nType = types[ix + 1]) != EN && nType != AN)) {\n return ON;\n }\n if (lastArabic) {\n nType = AN;\n }\n return nType == wType ? nType : ON;\n case ES:\n wType = ix > 0 ? classes[ix - 1] : B;\n if (wType == EN && (ix + 1) < types.length && types[ix + 1] == EN) {\n return EN;\n }\n return ON;\n case ET:\n if (ix > 0 && classes[ix - 1] == EN) {\n return EN;\n }\n if (lastArabic) {\n return ON;\n }\n i = ix + 1;\n len = types.length;\n while (i < len && types[i] == ET) {\n i++;\n }\n if (i < len && types[i] == EN) {\n return EN;\n }\n return ON;\n case NSM:\n len = types.length;\n i = ix + 1;\n while (i < len && types[i] == NSM) {\n i++;\n }\n if (i < len) {\n var c = chars[ix], rtlCandidate = (c >= 0x0591 && c <= 0x08FF) || c == 0xFB1E;\n wType = types[i];\n if (rtlCandidate && (wType == R || wType == AL)) {\n return R;\n }\n }\n if (ix < 1 || (wType = types[ix - 1]) == B) {\n return ON;\n }\n return classes[ix - 1];\n case B:\n lastArabic = false;\n hasUBAT_B = true;\n return dir;\n case S:\n hasUBAT_S = true;\n return ON;\n case LRE:\n case RLE:\n case LRO:\n case RLO:\n case PDF:\n lastArabic = false;\n case BN:\n return ON;\n }\n}\nfunction _getCharacterType(ch) {\n var uc = ch.charCodeAt(0), hi = uc >> 8;\n if (hi == 0) {\n return ((uc > 0x00BF) ? L : UnicodeTBL00[uc]);\n }\n else if (hi == 5) {\n return (/[\\u0591-\\u05f4]/.test(ch) ? R : L);\n }\n else if (hi == 6) {\n if (/[\\u0610-\\u061a\\u064b-\\u065f\\u06d6-\\u06e4\\u06e7-\\u06ed]/.test(ch))\n return NSM;\n else if (/[\\u0660-\\u0669\\u066b-\\u066c]/.test(ch))\n return AN;\n else if (uc == 0x066A)\n return ET;\n else if (/[\\u06f0-\\u06f9]/.test(ch))\n return EN;\n else\n return AL;\n }\n else if (hi == 0x20 && uc <= 0x205F) {\n return UnicodeTBL20[uc & 0xFF];\n }\n else if (hi == 0xFE) {\n return (uc >= 0xFE70 ? AL : ON);\n }\n return ON;\n}\nfunction _isArabicDiacritics(ch) {\n return (ch >= '\\u064b' && ch <= '\\u0655');\n}\nexports.L = L;\nexports.R = R;\nexports.EN = EN;\nexports.ON_R = 3;\nexports.AN = 4;\nexports.R_H = 5;\nexports.B = 6;\nexports.RLE = 7;\nexports.DOT = \"\\xB7\";\nexports.doBidiReorder = function (text, textCharTypes, isRtl) {\n if (text.length < 2)\n return {};\n var chars = text.split(\"\"), logicalFromVisual = new Array(chars.length), bidiLevels = new Array(chars.length), levels = [];\n dir = isRtl ? RTL : LTR;\n _computeLevels(chars, levels, chars.length, textCharTypes);\n for (var i = 0; i < logicalFromVisual.length; logicalFromVisual[i] = i, i++)\n ;\n _invertLevel(2, levels, logicalFromVisual);\n _invertLevel(1, levels, logicalFromVisual);\n for (var i = 0; i < logicalFromVisual.length - 1; i++) { //fix levels to reflect character width\n if (textCharTypes[i] === AN) {\n levels[i] = exports.AN;\n }\n else if (levels[i] === R && ((textCharTypes[i] > AL && textCharTypes[i] < LRE)\n || textCharTypes[i] === ON || textCharTypes[i] === BN)) {\n levels[i] = exports.ON_R;\n }\n else if ((i > 0 && chars[i - 1] === '\\u0644') && /\\u0622|\\u0623|\\u0625|\\u0627/.test(chars[i])) {\n levels[i - 1] = levels[i] = exports.R_H;\n i++;\n }\n }\n if (chars[chars.length - 1] === exports.DOT)\n levels[chars.length - 1] = exports.B;\n if (chars[0] === '\\u202B')\n levels[0] = exports.RLE;\n for (var i = 0; i < logicalFromVisual.length; i++) {\n bidiLevels[i] = levels[logicalFromVisual[i]];\n }\n return { 'logicalFromVisual': logicalFromVisual, 'bidiLevels': bidiLevels };\n};\nexports.hasBidiCharacters = function (text, textCharTypes) {\n var ret = false;\n for (var i = 0; i < text.length; i++) {\n textCharTypes[i] = _getCharacterType(text.charAt(i));\n if (!ret && (textCharTypes[i] == R || textCharTypes[i] == AL || textCharTypes[i] == AN))\n ret = true;\n }\n return ret;\n};\nexports.getVisualFromLogicalIdx = function (logIdx, rowMap) {\n for (var i = 0; i < rowMap.logicalFromVisual.length; i++) {\n if (rowMap.logicalFromVisual[i] == logIdx)\n return i;\n }\n return 0;\n};\n\n});\n\nace.define(\"ace/bidihandler\",[\"require\",\"exports\",\"module\",\"ace/lib/bidiutil\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar bidiUtil = require(\"./lib/bidiutil\");\nvar lang = require(\"./lib/lang\");\nvar bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac\\u202B]/;\nvar BidiHandler = /** @class */ (function () {\n function BidiHandler(session) {\n this.session = session;\n this.bidiMap = {};\n this.currentRow = null;\n this.bidiUtil = bidiUtil;\n this.charWidths = [];\n this.EOL = \"\\xAC\";\n this.showInvisibles = true;\n this.isRtlDir = false;\n this.$isRtl = false;\n this.line = \"\";\n this.wrapIndent = 0;\n this.EOF = \"\\xB6\";\n this.RLE = \"\\u202B\";\n this.contentWidth = 0;\n this.fontMetrics = null;\n this.rtlLineOffset = 0;\n this.wrapOffset = 0;\n this.isMoveLeftOperation = false;\n this.seenBidi = bidiRE.test(session.getValue());\n }\n BidiHandler.prototype.isBidiRow = function (screenRow, docRow, splitIndex) {\n if (!this.seenBidi)\n return false;\n if (screenRow !== this.currentRow) {\n this.currentRow = screenRow;\n this.updateRowLine(docRow, splitIndex);\n this.updateBidiMap();\n }\n return this.bidiMap.bidiLevels;\n };\n BidiHandler.prototype.onChange = function (delta) {\n if (!this.seenBidi) {\n if (delta.action == \"insert\" && bidiRE.test(delta.lines.join(\"\\n\"))) {\n this.seenBidi = true;\n this.currentRow = null;\n }\n }\n else {\n this.currentRow = null;\n }\n };\n BidiHandler.prototype.getDocumentRow = function () {\n var docRow = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var index = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n if (index >= 0)\n docRow = this.session.$docRowCache[index];\n }\n return docRow;\n };\n BidiHandler.prototype.getSplitIndex = function () {\n var splitIndex = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var currentIndex, prevIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n while (this.currentRow - splitIndex > 0) {\n currentIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow - splitIndex - 1);\n if (currentIndex !== prevIndex)\n break;\n prevIndex = currentIndex;\n splitIndex++;\n }\n }\n else {\n splitIndex = this.currentRow;\n }\n return splitIndex;\n };\n BidiHandler.prototype.updateRowLine = function (docRow, splitIndex) {\n if (docRow === undefined)\n docRow = this.getDocumentRow();\n var isLastRow = (docRow === this.session.getLength() - 1), endOfLine = isLastRow ? this.EOF : this.EOL;\n this.wrapIndent = 0;\n this.line = this.session.getLine(docRow);\n this.isRtlDir = this.$isRtl || this.line.charAt(0) === this.RLE;\n if (this.session.$useWrapMode) {\n var splits = this.session.$wrapData[docRow];\n if (splits) {\n if (splitIndex === undefined)\n splitIndex = this.getSplitIndex();\n if (splitIndex > 0 && splits.length) {\n this.wrapIndent = splits.indent;\n this.wrapOffset = this.wrapIndent * this.charWidths[bidiUtil.L];\n this.line = (splitIndex < splits.length) ?\n this.line.substring(splits[splitIndex - 1], splits[splitIndex]) :\n this.line.substring(splits[splits.length - 1]);\n }\n else {\n this.line = this.line.substring(0, splits[splitIndex]);\n }\n if (splitIndex == splits.length) {\n this.line += (this.showInvisibles) ? endOfLine : bidiUtil.DOT;\n }\n }\n }\n else {\n this.line += this.showInvisibles ? endOfLine : bidiUtil.DOT;\n }\n var session = this.session, shift = 0, size;\n this.line = this.line.replace(/\\t|[\\u1100-\\u2029, \\u202F-\\uFFE6]/g, function (ch, i) {\n if (ch === '\\t' || session.isFullWidth(ch.charCodeAt(0))) {\n size = (ch === '\\t') ? session.getScreenTabSize(i + shift) : 2;\n shift += size - 1;\n return lang.stringRepeat(bidiUtil.DOT, size);\n }\n return ch;\n });\n if (this.isRtlDir) {\n this.fontMetrics.$main.textContent = (this.line.charAt(this.line.length - 1) == bidiUtil.DOT) ? this.line.substr(0, this.line.length - 1) : this.line;\n this.rtlLineOffset = this.contentWidth - this.fontMetrics.$main.getBoundingClientRect().width;\n }\n };\n BidiHandler.prototype.updateBidiMap = function () {\n var textCharTypes = [];\n if (bidiUtil.hasBidiCharacters(this.line, textCharTypes) || this.isRtlDir) {\n this.bidiMap = bidiUtil.doBidiReorder(this.line, textCharTypes, this.isRtlDir);\n }\n else {\n this.bidiMap = {};\n }\n };\n BidiHandler.prototype.markAsDirty = function () {\n this.currentRow = null;\n };\n BidiHandler.prototype.updateCharacterWidths = function (fontMetrics) {\n if (this.characterWidth === fontMetrics.$characterSize.width)\n return;\n this.fontMetrics = fontMetrics;\n var characterWidth = this.characterWidth = fontMetrics.$characterSize.width;\n var bidiCharWidth = fontMetrics.$measureCharWidth(\"\\u05d4\");\n this.charWidths[bidiUtil.L] = this.charWidths[bidiUtil.EN] = this.charWidths[bidiUtil.ON_R] = characterWidth;\n this.charWidths[bidiUtil.R] = this.charWidths[bidiUtil.AN] = bidiCharWidth;\n this.charWidths[bidiUtil.R_H] = bidiCharWidth * 0.45;\n this.charWidths[bidiUtil.B] = this.charWidths[bidiUtil.RLE] = 0;\n this.currentRow = null;\n };\n BidiHandler.prototype.setShowInvisibles = function (showInvisibles) {\n this.showInvisibles = showInvisibles;\n this.currentRow = null;\n };\n BidiHandler.prototype.setEolChar = function (eolChar) {\n this.EOL = eolChar;\n };\n BidiHandler.prototype.setContentWidth = function (width) {\n this.contentWidth = width;\n };\n BidiHandler.prototype.isRtlLine = function (row) {\n if (this.$isRtl)\n return true;\n if (row != undefined)\n return (this.session.getLine(row).charAt(0) == this.RLE);\n else\n return this.isRtlDir;\n };\n BidiHandler.prototype.setRtlDirection = function (editor, isRtlDir) {\n var cursor = editor.getCursorPosition();\n for (var row = editor.selection.getSelectionAnchor().row; row <= cursor.row; row++) {\n if (!isRtlDir && editor.session.getLine(row).charAt(0) === editor.session.$bidiHandler.RLE)\n editor.session.doc.removeInLine(row, 0, 1);\n else if (isRtlDir && editor.session.getLine(row).charAt(0) !== editor.session.$bidiHandler.RLE)\n editor.session.doc.insert({ column: 0, row: row }, editor.session.$bidiHandler.RLE);\n }\n };\n BidiHandler.prototype.getPosLeft = function (col) {\n col -= this.wrapIndent;\n var leftBoundary = (this.line.charAt(0) === this.RLE) ? 1 : 0;\n var logicalIdx = (col > leftBoundary) ? (this.session.getOverwrite() ? col : col - 1) : leftBoundary;\n var visualIdx = bidiUtil.getVisualFromLogicalIdx(logicalIdx, this.bidiMap), levels = this.bidiMap.bidiLevels, left = 0;\n if (!this.session.getOverwrite() && col <= leftBoundary && levels[visualIdx] % 2 !== 0)\n visualIdx++;\n for (var i = 0; i < visualIdx; i++) {\n left += this.charWidths[levels[i]];\n }\n if (!this.session.getOverwrite() && (col > leftBoundary) && (levels[visualIdx] % 2 === 0))\n left += this.charWidths[levels[visualIdx]];\n if (this.wrapIndent)\n left += this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n if (this.isRtlDir)\n left += this.rtlLineOffset;\n return left;\n };\n BidiHandler.prototype.getSelections = function (startCol, endCol) {\n var map = this.bidiMap, levels = map.bidiLevels, level, selections = [], offset = 0, selColMin = Math.min(startCol, endCol) - this.wrapIndent, selColMax = Math.max(startCol, endCol) - this.wrapIndent, isSelected = false, isSelectedPrev = false, selectionStart = 0;\n if (this.wrapIndent)\n offset += this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n for (var logIdx, visIdx = 0; visIdx < levels.length; visIdx++) {\n logIdx = map.logicalFromVisual[visIdx];\n level = levels[visIdx];\n isSelected = (logIdx >= selColMin) && (logIdx < selColMax);\n if (isSelected && !isSelectedPrev) {\n selectionStart = offset;\n }\n else if (!isSelected && isSelectedPrev) {\n selections.push({ left: selectionStart, width: offset - selectionStart });\n }\n offset += this.charWidths[level];\n isSelectedPrev = isSelected;\n }\n if (isSelected && (visIdx === levels.length)) {\n selections.push({ left: selectionStart, width: offset - selectionStart });\n }\n if (this.isRtlDir) {\n for (var i = 0; i < selections.length; i++) {\n selections[i].left += this.rtlLineOffset;\n }\n }\n return selections;\n };\n BidiHandler.prototype.offsetToCol = function (posX) {\n if (this.isRtlDir)\n posX -= this.rtlLineOffset;\n var logicalIdx = 0, posX = Math.max(posX, 0), offset = 0, visualIdx = 0, levels = this.bidiMap.bidiLevels, charWidth = this.charWidths[levels[visualIdx]];\n if (this.wrapIndent)\n posX -= this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n while (posX > offset + charWidth / 2) {\n offset += charWidth;\n if (visualIdx === levels.length - 1) {\n charWidth = 0;\n break;\n }\n charWidth = this.charWidths[levels[++visualIdx]];\n }\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && (levels[visualIdx] % 2 === 0)) {\n if (posX < offset)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n }\n else if (visualIdx > 0 && (levels[visualIdx - 1] % 2 === 0) && (levels[visualIdx] % 2 !== 0)) {\n logicalIdx = 1 + ((posX > offset) ? this.bidiMap.logicalFromVisual[visualIdx]\n : this.bidiMap.logicalFromVisual[visualIdx - 1]);\n }\n else if ((this.isRtlDir && visualIdx === levels.length - 1 && charWidth === 0 && (levels[visualIdx - 1] % 2 === 0))\n || (!this.isRtlDir && visualIdx === 0 && (levels[visualIdx] % 2 !== 0))) {\n logicalIdx = 1 + this.bidiMap.logicalFromVisual[visualIdx];\n }\n else {\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && charWidth !== 0)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n }\n if (logicalIdx === 0 && this.isRtlDir)\n logicalIdx++;\n return (logicalIdx + this.wrapIndent);\n };\n return BidiHandler;\n}());\nexports.BidiHandler = BidiHandler;\n\n});\n\nace.define(\"ace/selection\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar lang = require(\"./lib/lang\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Selection = /** @class */ (function () {\n function Selection(session) {\n this.session = session;\n this.doc = session.getDocument();\n this.clearSelection();\n this.cursor = this.lead = this.doc.createAnchor(0, 0);\n this.anchor = this.doc.createAnchor(0, 0);\n this.$silent = false;\n var self = this;\n this.cursor.on(\"change\", function (e) {\n self.$cursorChanged = true;\n if (!self.$silent)\n self._emit(\"changeCursor\");\n if (!self.$isEmpty && !self.$silent)\n self._emit(\"changeSelection\");\n if (!self.$keepDesiredColumnOnChange && e.old.column != e.value.column)\n self.$desiredColumn = null;\n });\n this.anchor.on(\"change\", function () {\n self.$anchorChanged = true;\n if (!self.$isEmpty && !self.$silent)\n self._emit(\"changeSelection\");\n });\n }\n Selection.prototype.isEmpty = function () {\n return this.$isEmpty || (this.anchor.row == this.lead.row &&\n this.anchor.column == this.lead.column);\n };\n Selection.prototype.isMultiLine = function () {\n return !this.$isEmpty && this.anchor.row != this.cursor.row;\n };\n Selection.prototype.getCursor = function () {\n return this.lead.getPosition();\n };\n Selection.prototype.setAnchor = function (row, column) {\n this.$isEmpty = false;\n this.anchor.setPosition(row, column);\n };\n Selection.prototype.getAnchor = function () {\n if (this.$isEmpty)\n return this.getSelectionLead();\n return this.anchor.getPosition();\n };\n Selection.prototype.getSelectionLead = function () {\n return this.lead.getPosition();\n };\n Selection.prototype.isBackwards = function () {\n var anchor = this.anchor;\n var lead = this.lead;\n return (anchor.row > lead.row || (anchor.row == lead.row && anchor.column > lead.column));\n };\n Selection.prototype.getRange = function () {\n var anchor = this.anchor;\n var lead = this.lead;\n if (this.$isEmpty)\n return Range.fromPoints(lead, lead);\n return this.isBackwards()\n ? Range.fromPoints(lead, anchor)\n : Range.fromPoints(anchor, lead);\n };\n Selection.prototype.clearSelection = function () {\n if (!this.$isEmpty) {\n this.$isEmpty = true;\n this._emit(\"changeSelection\");\n }\n };\n Selection.prototype.selectAll = function () {\n this.$setSelection(0, 0, Number.MAX_VALUE, Number.MAX_VALUE);\n };\n Selection.prototype.setRange = function (range, reverse) {\n var start = reverse ? range.end : range.start;\n var end = reverse ? range.start : range.end;\n this.$setSelection(start.row, start.column, end.row, end.column);\n };\n Selection.prototype.$setSelection = function (anchorRow, anchorColumn, cursorRow, cursorColumn) {\n if (this.$silent)\n return;\n var wasEmpty = this.$isEmpty;\n var wasMultiselect = this.inMultiSelectMode;\n this.$silent = true;\n this.$cursorChanged = this.$anchorChanged = false;\n this.anchor.setPosition(anchorRow, anchorColumn);\n this.cursor.setPosition(cursorRow, cursorColumn);\n this.$isEmpty = !Range.comparePoints(this.anchor, this.cursor);\n this.$silent = false;\n if (this.$cursorChanged)\n this._emit(\"changeCursor\");\n if (this.$cursorChanged || this.$anchorChanged || wasEmpty != this.$isEmpty || wasMultiselect)\n this._emit(\"changeSelection\");\n };\n Selection.prototype.$moveSelection = function (mover) {\n var lead = this.lead;\n if (this.$isEmpty)\n this.setSelectionAnchor(lead.row, lead.column);\n mover.call(this);\n };\n Selection.prototype.selectTo = function (row, column) {\n this.$moveSelection(function () {\n this.moveCursorTo(row, column);\n });\n };\n Selection.prototype.selectToPosition = function (pos) {\n this.$moveSelection(function () {\n this.moveCursorToPosition(pos);\n });\n };\n Selection.prototype.moveTo = function (row, column) {\n this.clearSelection();\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveToPosition = function (pos) {\n this.clearSelection();\n this.moveCursorToPosition(pos);\n };\n Selection.prototype.selectUp = function () {\n this.$moveSelection(this.moveCursorUp);\n };\n Selection.prototype.selectDown = function () {\n this.$moveSelection(this.moveCursorDown);\n };\n Selection.prototype.selectRight = function () {\n this.$moveSelection(this.moveCursorRight);\n };\n Selection.prototype.selectLeft = function () {\n this.$moveSelection(this.moveCursorLeft);\n };\n Selection.prototype.selectLineStart = function () {\n this.$moveSelection(this.moveCursorLineStart);\n };\n Selection.prototype.selectLineEnd = function () {\n this.$moveSelection(this.moveCursorLineEnd);\n };\n Selection.prototype.selectFileEnd = function () {\n this.$moveSelection(this.moveCursorFileEnd);\n };\n Selection.prototype.selectFileStart = function () {\n this.$moveSelection(this.moveCursorFileStart);\n };\n Selection.prototype.selectWordRight = function () {\n this.$moveSelection(this.moveCursorWordRight);\n };\n Selection.prototype.selectWordLeft = function () {\n this.$moveSelection(this.moveCursorWordLeft);\n };\n Selection.prototype.getWordRange = function (row, column) {\n if (typeof column == \"undefined\") {\n var cursor = row || this.lead;\n row = cursor.row;\n column = cursor.column;\n }\n return this.session.getWordRange(row, column);\n };\n Selection.prototype.selectWord = function () {\n this.setSelectionRange(this.getWordRange());\n };\n Selection.prototype.selectAWord = function () {\n var cursor = this.getCursor();\n var range = this.session.getAWordRange(cursor.row, cursor.column);\n this.setSelectionRange(range);\n };\n Selection.prototype.getLineRange = function (row, excludeLastChar) {\n var rowStart = typeof row == \"number\" ? row : this.lead.row;\n var rowEnd;\n var foldLine = this.session.getFoldLine(rowStart);\n if (foldLine) {\n rowStart = foldLine.start.row;\n rowEnd = foldLine.end.row;\n }\n else {\n rowEnd = rowStart;\n }\n if (excludeLastChar === true)\n return new Range(rowStart, 0, rowEnd, this.session.getLine(rowEnd).length);\n else\n return new Range(rowStart, 0, rowEnd + 1, 0);\n };\n Selection.prototype.selectLine = function () {\n this.setSelectionRange(this.getLineRange());\n };\n Selection.prototype.moveCursorUp = function () {\n this.moveCursorBy(-1, 0);\n };\n Selection.prototype.moveCursorDown = function () {\n this.moveCursorBy(1, 0);\n };\n Selection.prototype.wouldMoveIntoSoftTab = function (cursor, tabSize, direction) {\n var start = cursor.column;\n var end = cursor.column + tabSize;\n if (direction < 0) {\n start = cursor.column - tabSize;\n end = cursor.column;\n }\n return this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(start, end).split(\" \").length - 1 == tabSize;\n };\n Selection.prototype.moveCursorLeft = function () {\n var cursor = this.lead.getPosition(), fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n }\n else if (cursor.column === 0) {\n if (cursor.row > 0) {\n this.moveCursorTo(cursor.row - 1, this.doc.getLine(cursor.row - 1).length);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, -1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, -tabSize);\n }\n else {\n this.moveCursorBy(0, -1);\n }\n }\n };\n Selection.prototype.moveCursorRight = function () {\n var cursor = this.lead.getPosition(), fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, 1)) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n }\n else if (this.lead.column == this.doc.getLine(this.lead.row).length) {\n if (this.lead.row < this.doc.getLength() - 1) {\n this.moveCursorTo(this.lead.row + 1, 0);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n var cursor = this.lead;\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, 1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, tabSize);\n }\n else {\n this.moveCursorBy(0, 1);\n }\n }\n };\n Selection.prototype.moveCursorLineStart = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var screenRow = this.session.documentToScreenRow(row, column);\n var firstColumnPosition = this.session.screenToDocumentPosition(screenRow, 0);\n var beforeCursor = this.session.getDisplayLine(row, null, firstColumnPosition.row, firstColumnPosition.column);\n var leadingSpace = beforeCursor.match(/^\\s*/);\n if (leadingSpace[0].length != column && !this.session.$useEmacsStyleLineStart)\n firstColumnPosition.column += leadingSpace[0].length;\n this.moveCursorToPosition(firstColumnPosition);\n };\n Selection.prototype.moveCursorLineEnd = function () {\n var lead = this.lead;\n var lineEnd = this.session.getDocumentLastRowColumnPosition(lead.row, lead.column);\n if (this.lead.column == lineEnd.column) {\n var line = this.session.getLine(lineEnd.row);\n if (lineEnd.column == line.length) {\n var textEnd = line.search(/\\s+$/);\n if (textEnd > 0)\n lineEnd.column = textEnd;\n }\n }\n this.moveCursorTo(lineEnd.row, lineEnd.column);\n };\n Selection.prototype.moveCursorFileEnd = function () {\n var row = this.doc.getLength() - 1;\n var column = this.doc.getLine(row).length;\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveCursorFileStart = function () {\n this.moveCursorTo(0, 0);\n };\n Selection.prototype.moveCursorLongWordRight = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n return;\n }\n if (this.session.nonTokenRe.exec(rightOfCursor)) {\n column += this.session.nonTokenRe.lastIndex;\n this.session.nonTokenRe.lastIndex = 0;\n rightOfCursor = line.substring(column);\n }\n if (column >= line.length) {\n this.moveCursorTo(row, line.length);\n this.moveCursorRight();\n if (row < this.doc.getLength() - 1)\n this.moveCursorWordRight();\n return;\n }\n if (this.session.tokenRe.exec(rightOfCursor)) {\n column += this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveCursorLongWordLeft = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n return;\n }\n var str = this.session.getFoldStringAt(row, column, -1);\n if (str == null) {\n str = this.doc.getLine(row).substring(0, column);\n }\n var leftOfCursor = lang.stringReverse(str);\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n if (this.session.nonTokenRe.exec(leftOfCursor)) {\n column -= this.session.nonTokenRe.lastIndex;\n leftOfCursor = leftOfCursor.slice(this.session.nonTokenRe.lastIndex);\n this.session.nonTokenRe.lastIndex = 0;\n }\n if (column <= 0) {\n this.moveCursorTo(row, 0);\n this.moveCursorLeft();\n if (row > 0)\n this.moveCursorWordLeft();\n return;\n }\n if (this.session.tokenRe.exec(leftOfCursor)) {\n column -= this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n this.moveCursorTo(row, column);\n };\n Selection.prototype.$shortWordEndIndex = function (rightOfCursor) {\n var index = 0, ch;\n var whitespaceRe = /\\s/;\n var tokenRe = this.session.tokenRe;\n tokenRe.lastIndex = 0;\n if (this.session.tokenRe.exec(rightOfCursor)) {\n index = this.session.tokenRe.lastIndex;\n }\n else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index++;\n if (index < 1) {\n tokenRe.lastIndex = 0;\n while ((ch = rightOfCursor[index]) && !tokenRe.test(ch)) {\n tokenRe.lastIndex = 0;\n index++;\n if (whitespaceRe.test(ch)) {\n if (index > 2) {\n index--;\n break;\n }\n else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index++;\n if (index > 2)\n break;\n }\n }\n }\n }\n }\n tokenRe.lastIndex = 0;\n return index;\n };\n Selection.prototype.moveCursorShortWordRight = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold)\n return this.moveCursorTo(fold.end.row, fold.end.column);\n if (column == line.length) {\n var l = this.doc.getLength();\n do {\n row++;\n rightOfCursor = this.doc.getLine(row);\n } while (row < l && /^\\s*$/.test(rightOfCursor));\n if (!/^\\s+/.test(rightOfCursor))\n rightOfCursor = \"\";\n column = 0;\n }\n var index = this.$shortWordEndIndex(rightOfCursor);\n this.moveCursorTo(row, column + index);\n };\n Selection.prototype.moveCursorShortWordLeft = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1))\n return this.moveCursorTo(fold.start.row, fold.start.column);\n var line = this.session.getLine(row).substring(0, column);\n if (column === 0) {\n do {\n row--;\n line = this.doc.getLine(row);\n } while (row > 0 && /^\\s*$/.test(line));\n column = line.length;\n if (!/\\s+$/.test(line))\n line = \"\";\n }\n var leftOfCursor = lang.stringReverse(line);\n var index = this.$shortWordEndIndex(leftOfCursor);\n return this.moveCursorTo(row, column - index);\n };\n Selection.prototype.moveCursorWordRight = function () {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordRight();\n else\n this.moveCursorShortWordRight();\n };\n Selection.prototype.moveCursorWordLeft = function () {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordLeft();\n else\n this.moveCursorShortWordLeft();\n };\n Selection.prototype.moveCursorBy = function (rows, chars) {\n var screenPos = this.session.documentToScreenPosition(this.lead.row, this.lead.column);\n var offsetX;\n if (chars === 0) {\n if (rows !== 0) {\n if (this.session.$bidiHandler.isBidiRow(screenPos.row, this.lead.row)) {\n offsetX = this.session.$bidiHandler.getPosLeft(screenPos.column);\n screenPos.column = Math.round(offsetX / this.session.$bidiHandler.charWidths[0]);\n }\n else {\n offsetX = screenPos.column * this.session.$bidiHandler.charWidths[0];\n }\n }\n if (this.$desiredColumn)\n screenPos.column = this.$desiredColumn;\n else\n this.$desiredColumn = screenPos.column;\n }\n if (rows != 0 && this.session.lineWidgets && this.session.lineWidgets[this.lead.row]) {\n var widget = this.session.lineWidgets[this.lead.row];\n if (rows < 0)\n rows -= widget.rowsAbove || 0;\n else if (rows > 0)\n rows += widget.rowCount - (widget.rowsAbove || 0);\n }\n var docPos = this.session.screenToDocumentPosition(screenPos.row + rows, screenPos.column, offsetX);\n if (rows !== 0 && chars === 0 && docPos.row === this.lead.row && docPos.column === this.lead.column) {\n }\n this.moveCursorTo(docPos.row, docPos.column + chars, chars === 0);\n };\n Selection.prototype.moveCursorToPosition = function (position) {\n this.moveCursorTo(position.row, position.column);\n };\n Selection.prototype.moveCursorTo = function (row, column, keepDesiredColumn) {\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n row = fold.start.row;\n column = fold.start.column;\n }\n this.$keepDesiredColumnOnChange = true;\n var line = this.session.getLine(row);\n if (/[\\uDC00-\\uDFFF]/.test(line.charAt(column)) && line.charAt(column - 1)) {\n if (this.lead.row == row && this.lead.column == column + 1)\n column = column - 1;\n else\n column = column + 1;\n }\n this.lead.setPosition(row, column);\n this.$keepDesiredColumnOnChange = false;\n if (!keepDesiredColumn)\n this.$desiredColumn = null;\n };\n Selection.prototype.moveCursorToScreen = function (row, column, keepDesiredColumn) {\n var pos = this.session.screenToDocumentPosition(row, column);\n this.moveCursorTo(pos.row, pos.column, keepDesiredColumn);\n };\n Selection.prototype.detach = function () {\n this.lead.detach();\n this.anchor.detach();\n };\n Selection.prototype.fromOrientedRange = function (range) {\n this.setSelectionRange(range, range.cursor == range.start);\n this.$desiredColumn = range.desiredColumn || this.$desiredColumn;\n };\n Selection.prototype.toOrientedRange = function (range) {\n var r = this.getRange();\n if (range) {\n range.start.column = r.start.column;\n range.start.row = r.start.row;\n range.end.column = r.end.column;\n range.end.row = r.end.row;\n }\n else {\n range = r;\n }\n range.cursor = this.isBackwards() ? range.start : range.end;\n range.desiredColumn = this.$desiredColumn;\n return range;\n };\n Selection.prototype.getRangeOfMovements = function (func) {\n var start = this.getCursor();\n try {\n func(this);\n var end = this.getCursor();\n return Range.fromPoints(start, end);\n }\n catch (e) {\n return Range.fromPoints(start, start);\n }\n finally {\n this.moveCursorToPosition(start);\n }\n };\n Selection.prototype.toJSON = function () {\n if (this.rangeCount) {\n var data = this.ranges.map(function (r) {\n var r1 = r.clone();\n r1.isBackwards = r.cursor == r.start;\n return r1;\n });\n }\n else {\n var data = this.getRange();\n data.isBackwards = this.isBackwards();\n }\n return data;\n };\n Selection.prototype.fromJSON = function (data) {\n if (data.start == undefined) {\n if (this.rangeList && data.length > 1) {\n this.toSingleRange(data[0]);\n for (var i = data.length; i--;) {\n var r = Range.fromPoints(data[i].start, data[i].end);\n if (data[i].isBackwards)\n r.cursor = r.start;\n this.addRange(r, true);\n }\n return;\n }\n else {\n data = data[0];\n }\n }\n if (this.rangeList)\n this.toSingleRange(data);\n this.setSelectionRange(data, data.isBackwards);\n };\n Selection.prototype.isEqual = function (data) {\n if ((data.length || this.rangeCount) && data.length != this.rangeCount)\n return false;\n if (!data.length || !this.ranges)\n return this.getRange().isEqual(data);\n for (var i = this.ranges.length; i--;) {\n if (!this.ranges[i].isEqual(data[i]))\n return false;\n }\n return true;\n };\n return Selection;\n}());\nSelection.prototype.setSelectionAnchor = Selection.prototype.setAnchor;\nSelection.prototype.getSelectionAnchor = Selection.prototype.getAnchor;\nSelection.prototype.setSelectionRange = Selection.prototype.setRange;\noop.implement(Selection.prototype, EventEmitter);\nexports.Selection = Selection;\n\n});\n\nace.define(\"ace/tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/report_error\"], function(require, exports, module){\"use strict\";\nvar reportError = require(\"./lib/report_error\").reportError;\nvar MAX_TOKEN_COUNT = 2000;\nvar Tokenizer = /** @class */ (function () {\n function Tokenizer(rules) {\n this.states = rules;\n this.regExps = {};\n this.matchMappings = {};\n for (var key in this.states) {\n var state = this.states[key];\n var ruleRegExps = [];\n var matchTotal = 0;\n var mapping = this.matchMappings[key] = { defaultToken: \"text\" };\n var flag = \"g\";\n var splitterRurles = [];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.defaultToken)\n mapping.defaultToken = rule.defaultToken;\n if (rule.caseInsensitive && flag.indexOf(\"i\") === -1)\n flag += \"i\";\n if (rule.unicode && flag.indexOf(\"u\") === -1)\n flag += \"u\";\n if (rule.regex == null)\n continue;\n if (rule.regex instanceof RegExp)\n rule.regex = rule.regex.toString().slice(1, -1);\n var adjustedregex = rule.regex;\n var matchcount = new RegExp(\"(?:(\" + adjustedregex + \")|(.))\").exec(\"a\").length - 2;\n if (Array.isArray(rule.token)) {\n if (rule.token.length == 1 || matchcount == 1) {\n rule.token = rule.token[0];\n }\n else if (matchcount - 1 != rule.token.length) {\n this.reportError(\"number of classes and regexp groups doesn't match\", {\n rule: rule,\n groupCount: matchcount - 1\n });\n rule.token = rule.token[0];\n }\n else {\n rule.tokenArray = rule.token;\n rule.token = null;\n rule.onMatch = this.$arrayTokens;\n }\n }\n else if (typeof rule.token == \"function\" && !rule.onMatch) {\n if (matchcount > 1)\n rule.onMatch = this.$applyToken;\n else\n rule.onMatch = rule.token;\n }\n if (matchcount > 1) {\n if (/\\\\\\d/.test(rule.regex)) {\n adjustedregex = rule.regex.replace(/\\\\([0-9]+)/g, function (match, digit) {\n return \"\\\\\" + (parseInt(digit, 10) + matchTotal + 1);\n });\n }\n else {\n matchcount = 1;\n adjustedregex = this.removeCapturingGroups(rule.regex);\n }\n if (!rule.splitRegex && typeof rule.token != \"string\")\n splitterRurles.push(rule); // flag will be known only at the very end\n }\n mapping[matchTotal] = i;\n matchTotal += matchcount;\n ruleRegExps.push(adjustedregex);\n if (!rule.onMatch)\n rule.onMatch = null;\n }\n if (!ruleRegExps.length) {\n mapping[0] = 0;\n ruleRegExps.push(\"$\");\n }\n splitterRurles.forEach(function (rule) {\n rule.splitRegex = this.createSplitterRegexp(rule.regex, flag);\n }, this);\n this.regExps[key] = new RegExp(\"(\" + ruleRegExps.join(\")|(\") + \")|($)\", flag);\n }\n }\n Tokenizer.prototype.$setMaxTokenCount = function (m) {\n MAX_TOKEN_COUNT = m | 0;\n };\n Tokenizer.prototype.$applyToken = function (str) {\n var values = this.splitRegex.exec(str).slice(1);\n var types = this.token.apply(this, values);\n if (typeof types === \"string\")\n return [{ type: types, value: str }];\n var tokens = [];\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i]\n };\n }\n return tokens;\n };\n Tokenizer.prototype.$arrayTokens = function (str) {\n if (!str)\n return [];\n var values = this.splitRegex.exec(str);\n if (!values)\n return \"text\";\n var tokens = [];\n var types = this.tokenArray;\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i + 1])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i + 1]\n };\n }\n return tokens;\n };\n Tokenizer.prototype.removeCapturingGroups = function (src) {\n var r = src.replace(/\\\\.|\\[(?:\\\\.|[^\\\\\\]])*|\\(\\?[:=!<]|(\\()/g, function (x, y) { return y ? \"(?:\" : x; });\n return r;\n };\n Tokenizer.prototype.createSplitterRegexp = function (src, flag) {\n if (src.indexOf(\"(?=\") != -1) {\n var stack = 0;\n var inChClass = false;\n var lastCapture = {};\n src.replace(/(\\\\.)|(\\((?:\\?[=!])?)|(\\))|([\\[\\]])/g, function (m, esc, parenOpen, parenClose, square, index) {\n if (inChClass) {\n inChClass = square != \"]\";\n }\n else if (square) {\n inChClass = true;\n }\n else if (parenClose) {\n if (stack == lastCapture.stack) {\n lastCapture.end = index + 1;\n lastCapture.stack = -1;\n }\n stack--;\n }\n else if (parenOpen) {\n stack++;\n if (parenOpen.length != 1) {\n lastCapture.stack = stack;\n lastCapture.start = index;\n }\n }\n return m;\n });\n if (lastCapture.end != null && /^\\)*$/.test(src.substr(lastCapture.end)))\n src = src.substring(0, lastCapture.start) + src.substr(lastCapture.end);\n }\n if (src.charAt(0) != \"^\")\n src = \"^\" + src;\n if (src.charAt(src.length - 1) != \"$\")\n src += \"$\";\n return new RegExp(src, (flag || \"\").replace(\"g\", \"\"));\n };\n Tokenizer.prototype.getLineTokens = function (line, startState) {\n if (startState && typeof startState != \"string\") {\n var stack = startState.slice(0);\n startState = stack[0];\n if (startState === \"#tmp\") {\n stack.shift();\n startState = stack.shift();\n }\n }\n else\n var stack = [];\n var currentState = startState || \"start\";\n var state = this.states[currentState];\n if (!state) {\n currentState = \"start\";\n state = this.states[currentState];\n }\n var mapping = this.matchMappings[currentState];\n var re = this.regExps[currentState];\n re.lastIndex = 0;\n var match, tokens = [];\n var lastIndex = 0;\n var matchAttempts = 0;\n var token = { type: null, value: \"\" };\n while (match = re.exec(line)) {\n var type = mapping.defaultToken;\n var rule = null;\n var value = match[0];\n var index = re.lastIndex;\n if (index - value.length > lastIndex) {\n var skipped = line.substring(lastIndex, index - value.length);\n if (token.type == type) {\n token.value += skipped;\n }\n else {\n if (token.type)\n tokens.push(token);\n token = { type: type, value: skipped };\n }\n }\n for (var i = 0; i < match.length - 2; i++) {\n if (match[i + 1] === undefined)\n continue;\n rule = state[mapping[i]];\n if (rule.onMatch)\n type = rule.onMatch(value, currentState, stack, line);\n else\n type = rule.token;\n if (rule.next) {\n if (typeof rule.next == \"string\") {\n currentState = rule.next;\n }\n else {\n currentState = rule.next(currentState, stack);\n }\n state = this.states[currentState];\n if (!state) {\n this.reportError(\"state doesn't exist\", currentState);\n currentState = \"start\";\n state = this.states[currentState];\n }\n mapping = this.matchMappings[currentState];\n lastIndex = index;\n re = this.regExps[currentState];\n re.lastIndex = index;\n }\n if (rule.consumeLineEnd)\n lastIndex = index;\n break;\n }\n if (value) {\n if (typeof type === \"string\") {\n if ((!rule || rule.merge !== false) && token.type === type) {\n token.value += value;\n }\n else {\n if (token.type)\n tokens.push(token);\n token = { type: type, value: value };\n }\n }\n else if (type) {\n if (token.type)\n tokens.push(token);\n token = { type: null, value: \"\" };\n for (var i = 0; i < type.length; i++)\n tokens.push(type[i]);\n }\n }\n if (lastIndex == line.length)\n break;\n lastIndex = index;\n if (matchAttempts++ > MAX_TOKEN_COUNT) {\n if (matchAttempts > 2 * line.length) {\n this.reportError(\"infinite loop with in ace tokenizer\", {\n startState: startState,\n line: line\n });\n }\n while (lastIndex < line.length) {\n if (token.type)\n tokens.push(token);\n token = {\n value: line.substring(lastIndex, lastIndex += 500),\n type: \"overflow\"\n };\n }\n currentState = \"start\";\n stack = [];\n break;\n }\n }\n if (token.type)\n tokens.push(token);\n if (stack.length > 1) {\n if (stack[0] !== currentState)\n stack.unshift(\"#tmp\", currentState);\n }\n return {\n tokens: tokens,\n state: stack.length ? stack : currentState\n };\n };\n return Tokenizer;\n}());\nTokenizer.prototype.reportError = reportError;\nexports.Tokenizer = Tokenizer;\n\n});\n\nace.define(\"ace/mode/text_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/deep_copy\"], function(require, exports, module){\"use strict\";\nvar deepCopy = require(\"../lib/deep_copy\").deepCopy;\nvar TextHighlightRules = function () {\n this.$rules = {\n \"start\": [{\n token: \"empty_line\",\n regex: '^$'\n }, {\n defaultToken: \"text\"\n }]\n };\n};\n(function () {\n this.addRules = function (rules, prefix) {\n if (!prefix) {\n for (var key in rules)\n this.$rules[key] = rules[key];\n return;\n }\n for (var key in rules) {\n var state = rules[key];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.next || rule.onMatch) {\n if (typeof rule.next == \"string\") {\n if (rule.next.indexOf(prefix) !== 0)\n rule.next = prefix + rule.next;\n }\n if (rule.nextState && rule.nextState.indexOf(prefix) !== 0)\n rule.nextState = prefix + rule.nextState;\n }\n }\n this.$rules[prefix + key] = state;\n }\n };\n this.getRules = function () {\n return this.$rules;\n };\n this.embedRules = function (HighlightRules, prefix, escapeRules, states, append) {\n var embedRules = typeof HighlightRules == \"function\"\n ? new HighlightRules().getRules()\n : HighlightRules;\n if (states) {\n for (var i = 0; i < states.length; i++)\n states[i] = prefix + states[i];\n }\n else {\n states = [];\n for (var key in embedRules)\n states.push(prefix + key);\n }\n this.addRules(embedRules, prefix);\n if (escapeRules) {\n var addRules = Array.prototype[append ? \"push\" : \"unshift\"];\n for (var i = 0; i < states.length; i++)\n addRules.apply(this.$rules[states[i]], deepCopy(escapeRules));\n }\n if (!this.$embeds)\n this.$embeds = [];\n this.$embeds.push(prefix);\n };\n this.getEmbeds = function () {\n return this.$embeds;\n };\n var pushState = function (currentState, stack) {\n if (currentState != \"start\" || stack.length)\n stack.unshift(this.nextState, currentState);\n return this.nextState;\n };\n var popState = function (currentState, stack) {\n stack.shift();\n return stack.shift() || \"start\";\n };\n this.normalizeRules = function () {\n var id = 0;\n var rules = this.$rules;\n function processState(key) {\n var state = rules[key];\n state.processed = true;\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n var toInsert = null;\n if (Array.isArray(rule)) {\n toInsert = rule;\n rule = {};\n }\n if (!rule.regex && rule.start) {\n rule.regex = rule.start;\n if (!rule.next)\n rule.next = [];\n rule.next.push({\n defaultToken: rule.token\n }, {\n token: rule.token + \".end\",\n regex: rule.end || rule.start,\n next: \"pop\"\n });\n rule.token = rule.token + \".start\";\n rule.push = true;\n }\n var next = rule.next || rule.push;\n if (next && Array.isArray(next)) {\n var stateName = rule.stateName;\n if (!stateName) {\n stateName = rule.token;\n if (typeof stateName != \"string\")\n stateName = stateName[0] || \"\";\n if (rules[stateName])\n stateName += id++;\n }\n rules[stateName] = next;\n rule.next = stateName;\n processState(stateName);\n }\n else if (next == \"pop\") {\n rule.next = popState;\n }\n if (rule.push) {\n rule.nextState = rule.next || rule.push;\n rule.next = pushState;\n delete rule.push;\n }\n if (rule.rules) {\n for (var r in rule.rules) {\n if (rules[r]) {\n if (rules[r].push)\n rules[r].push.apply(rules[r], rule.rules[r]);\n }\n else {\n rules[r] = rule.rules[r];\n }\n }\n }\n var includeName = typeof rule == \"string\" ? rule : rule.include;\n if (includeName) {\n if (includeName === \"$self\")\n includeName = \"start\";\n if (Array.isArray(includeName))\n toInsert = includeName.map(function (x) { return rules[x]; });\n else\n toInsert = rules[includeName];\n }\n if (toInsert) {\n var args = [i, 1].concat(toInsert);\n if (rule.noEscape)\n args = args.filter(function (x) { return !x.next; });\n state.splice.apply(state, args);\n i--;\n }\n if (rule.keywordMap) {\n rule.token = this.createKeywordMapper(rule.keywordMap, rule.defaultToken || \"text\", rule.caseInsensitive);\n delete rule.defaultToken;\n }\n }\n }\n Object.keys(rules).forEach(processState, this);\n };\n this.createKeywordMapper = function (map, defaultToken, ignoreCase, splitChar) {\n var keywords = Object.create(null);\n this.$keywordList = [];\n Object.keys(map).forEach(function (className) {\n var a = map[className];\n var list = a.split(splitChar || \"|\");\n for (var i = list.length; i--;) {\n var word = list[i];\n this.$keywordList.push(word);\n if (ignoreCase)\n word = word.toLowerCase();\n keywords[word] = className;\n }\n }, this);\n map = null;\n return ignoreCase\n ? function (value) { return keywords[value.toLowerCase()] || defaultToken; }\n : function (value) { return keywords[value] || defaultToken; };\n };\n this.getKeywords = function () {\n return this.$keywords;\n };\n}).call(TextHighlightRules.prototype);\nexports.TextHighlightRules = TextHighlightRules;\n\n});\n\nace.define(\"ace/mode/behaviour\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar Behaviour = function () {\n this.$behaviours = {};\n};\n(function () {\n this.add = function (name, action, callback) {\n switch (undefined) {\n case this.$behaviours:\n this.$behaviours = {};\n case this.$behaviours[name]:\n this.$behaviours[name] = {};\n }\n this.$behaviours[name][action] = callback;\n };\n this.addBehaviours = function (behaviours) {\n for (var key in behaviours) {\n for (var action in behaviours[key]) {\n this.add(key, action, behaviours[key][action]);\n }\n }\n };\n this.remove = function (name) {\n if (this.$behaviours && this.$behaviours[name]) {\n delete this.$behaviours[name];\n }\n };\n this.inherit = function (mode, filter) {\n if (typeof mode === \"function\") {\n var behaviours = new mode().getBehaviours(filter);\n }\n else {\n var behaviours = mode.getBehaviours(filter);\n }\n this.addBehaviours(behaviours);\n };\n this.getBehaviours = function (filter) {\n if (!filter) {\n return this.$behaviours;\n }\n else {\n var ret = {};\n for (var i = 0; i < filter.length; i++) {\n if (this.$behaviours[filter[i]]) {\n ret[filter[i]] = this.$behaviours[filter[i]];\n }\n }\n return ret;\n }\n };\n}).call(Behaviour.prototype);\nexports.Behaviour = Behaviour;\n\n});\n\nace.define(\"ace/token_iterator\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar TokenIterator = /** @class */ (function () {\n function TokenIterator(session, initialRow, initialColumn) {\n this.$session = session;\n this.$row = initialRow;\n this.$rowTokens = session.getTokens(initialRow);\n var token = session.getTokenAt(initialRow, initialColumn);\n this.$tokenIndex = token ? token.index : -1;\n }\n TokenIterator.prototype.stepBackward = function () {\n this.$tokenIndex -= 1;\n while (this.$tokenIndex < 0) {\n this.$row -= 1;\n if (this.$row < 0) {\n this.$row = 0;\n return null;\n }\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = this.$rowTokens.length - 1;\n }\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.stepForward = function () {\n this.$tokenIndex += 1;\n var rowCount;\n while (this.$tokenIndex >= this.$rowTokens.length) {\n this.$row += 1;\n if (!rowCount)\n rowCount = this.$session.getLength();\n if (this.$row >= rowCount) {\n this.$row = rowCount - 1;\n return null;\n }\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = 0;\n }\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.getCurrentToken = function () {\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.getCurrentTokenRow = function () {\n return this.$row;\n };\n TokenIterator.prototype.getCurrentTokenColumn = function () {\n var rowTokens = this.$rowTokens;\n var tokenIndex = this.$tokenIndex;\n var column = rowTokens[tokenIndex].start;\n if (column !== undefined)\n return column;\n column = 0;\n while (tokenIndex > 0) {\n tokenIndex -= 1;\n column += rowTokens[tokenIndex].value.length;\n }\n return column;\n };\n TokenIterator.prototype.getCurrentTokenPosition = function () {\n return { row: this.$row, column: this.getCurrentTokenColumn() };\n };\n TokenIterator.prototype.getCurrentTokenRange = function () {\n var token = this.$rowTokens[this.$tokenIndex];\n var column = this.getCurrentTokenColumn();\n return new Range(this.$row, column, this.$row, column + token.value.length);\n };\n return TokenIterator;\n}());\nexports.TokenIterator = TokenIterator;\n\n});\n\nace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\nvar SAFE_INSERT_IN_TOKENS = [\"text\", \"paren.rparen\", \"rparen\", \"paren\", \"punctuation.operator\"];\nvar SAFE_INSERT_BEFORE_TOKENS = [\"text\", \"paren.rparen\", \"rparen\", \"paren\", \"punctuation.operator\", \"comment\"];\nvar context;\nvar contextCache = {};\nvar defaultQuotes = { '\"': '\"', \"'\": \"'\" };\nvar initContext = function (editor) {\n var id = -1;\n if (editor.multiSelect) {\n id = editor.selection.index;\n if (contextCache.rangeCount != editor.multiSelect.rangeCount)\n contextCache = { rangeCount: editor.multiSelect.rangeCount };\n }\n if (contextCache[id])\n return context = contextCache[id];\n context = contextCache[id] = {\n autoInsertedBrackets: 0,\n autoInsertedRow: -1,\n autoInsertedLineEnd: \"\",\n maybeInsertedBrackets: 0,\n maybeInsertedRow: -1,\n maybeInsertedLineStart: \"\",\n maybeInsertedLineEnd: \"\"\n };\n};\nvar getWrapped = function (selection, selected, opening, closing) {\n var rowDiff = selection.end.row - selection.start.row;\n return {\n text: opening + selected + closing,\n selection: [\n 0,\n selection.start.column + 1,\n rowDiff,\n selection.end.column + (rowDiff ? 0 : 1)\n ]\n };\n};\nvar CstyleBehaviour = function (options) {\n options = options || {};\n this.add(\"braces\", \"insertion\", function (state, action, editor, session, text) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (text == '{') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"{\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '{', '}');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n if (/[\\]\\}\\)]/.test(line[cursor.column]) || editor.inMultiSelectMode || options.braces) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"}\");\n return {\n text: '{}',\n selection: [1, 1]\n };\n }\n else {\n CstyleBehaviour.recordMaybeInsert(editor, session, \"{\");\n return {\n text: '{',\n selection: [1, 1]\n };\n }\n }\n }\n else if (text == '}') {\n initContext(editor);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == '}') {\n var matching = session.$findOpeningBracket('}', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n else if (text == \"\\n\" || text == \"\\r\\n\") {\n initContext(editor);\n var closing = \"\";\n if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {\n closing = lang.stringRepeat(\"}\", context.maybeInsertedBrackets);\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === '}') {\n var openBracePos = session.findMatchingBracket({ row: cursor.row, column: cursor.column + 1 }, '}');\n if (!openBracePos)\n return null;\n var next_indent = this.$getIndent(session.getLine(openBracePos.row));\n }\n else if (closing) {\n var next_indent = this.$getIndent(line);\n }\n else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n return;\n }\n var indent = next_indent + session.getTabString();\n return {\n text: '\\n' + indent + '\\n' + next_indent + closing,\n selection: [1, indent.length, 1, indent.length]\n };\n }\n else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n });\n this.add(\"braces\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '{') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar == '}') {\n range.end.column++;\n return range;\n }\n else {\n context.maybeInsertedBrackets--;\n }\n }\n });\n this.add(\"parens\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '(') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '(', ')');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \")\");\n return {\n text: '()',\n selection: [1, 1]\n };\n }\n }\n else if (text == ')') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ')') {\n var matching = session.$findOpeningBracket(')', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"parens\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '(') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ')') {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"brackets\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '[') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '[', ']');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"]\");\n return {\n text: '[]',\n selection: [1, 1]\n };\n }\n }\n else if (text == ']') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ']') {\n var matching = session.$findOpeningBracket(']', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"brackets\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '[') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ']') {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n var quotes = session.$mode.$quotes || defaultQuotes;\n if (text.length == 1 && quotes[text]) {\n if (this.lineCommentStart && this.lineCommentStart.indexOf(text) != -1)\n return;\n initContext(editor);\n var quote = text;\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && (selected.length != 1 || !quotes[selected]) && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, quote, quote);\n }\n else if (!selected) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var leftChar = line.substring(cursor.column - 1, cursor.column);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n var token = session.getTokenAt(cursor.row, cursor.column);\n var rightToken = session.getTokenAt(cursor.row, cursor.column + 1);\n if (leftChar == \"\\\\\" && token && /escape/.test(token.type))\n return null;\n var stringBefore = token && /string|escape/.test(token.type);\n var stringAfter = !rightToken || /string|escape/.test(rightToken.type);\n var pair;\n if (rightChar == quote) {\n pair = stringBefore !== stringAfter;\n if (pair && /string\\.end/.test(rightToken.type))\n pair = false;\n }\n else {\n if (stringBefore && !stringAfter)\n return null; // wrap string with different quote\n if (stringBefore && stringAfter)\n return null; // do not pair quotes inside strings\n var wordRe = session.$mode.tokenRe;\n wordRe.lastIndex = 0;\n var isWordBefore = wordRe.test(leftChar);\n wordRe.lastIndex = 0;\n var isWordAfter = wordRe.test(rightChar);\n var pairQuotesAfter = session.$mode.$pairQuotesAfter;\n var shouldPairQuotes = pairQuotesAfter && pairQuotesAfter[quote] && pairQuotesAfter[quote].test(leftChar);\n if ((!shouldPairQuotes && isWordBefore) || isWordAfter)\n return null; // before or after alphanumeric\n if (rightChar && !/[\\s;,.})\\]\\\\]/.test(rightChar))\n return null; // there is rightChar and it isn't closing\n var charBefore = line[cursor.column - 2];\n if (leftChar == quote && (charBefore == quote || wordRe.test(charBefore)))\n return null;\n pair = true;\n }\n return {\n text: pair ? quote + quote : \"\",\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"string_dquotes\", \"deletion\", function (state, action, editor, session, range) {\n var quotes = session.$mode.$quotes || defaultQuotes;\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && quotes.hasOwnProperty(selected)) {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n if (options.closeDocComment !== false) {\n this.add(\"doc comment end\", \"insertion\", function (state, action, editor, session, text) {\n if (state === \"doc-start\" && (text === \"\\n\" || text === \"\\r\\n\") && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var nextLine = session.doc.getLine(cursor.row + 1);\n var indent = this.$getIndent(line);\n if (/\\s*\\*/.test(nextLine)) {\n if (/^\\s*\\*/.test(line)) {\n return {\n text: text + indent + \"* \",\n selection: [1, 3 + indent.length, 1, 3 + indent.length]\n };\n }\n else {\n return {\n text: text + indent + \" * \",\n selection: [1, 3 + indent.length, 1, 3 + indent.length]\n };\n }\n }\n if (/\\/\\*\\*/.test(line.substring(0, cursor.column))) {\n return {\n text: text + indent + \" * \" + text + \" \" + indent + \"*/\",\n selection: [1, 4 + indent.length, 1, 4 + indent.length]\n };\n }\n }\n });\n }\n};\nCstyleBehaviour.isSaneInsertion = function (editor, session) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n if (!this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS)) {\n if (/[)}\\]]/.test(editor.session.getLine(cursor.row)[cursor.column]))\n return true;\n var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);\n if (!this.$matchTokenType(iterator2.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS))\n return false;\n }\n iterator.stepForward();\n return iterator.getCurrentTokenRow() !== cursor.row ||\n this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_BEFORE_TOKENS);\n};\nCstyleBehaviour.$matchTokenType = function (token, types) {\n return types.indexOf(token.type || token) > -1;\n};\nCstyleBehaviour.recordAutoInsert = function (editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))\n context.autoInsertedBrackets = 0;\n context.autoInsertedRow = cursor.row;\n context.autoInsertedLineEnd = bracket + line.substr(cursor.column);\n context.autoInsertedBrackets++;\n};\nCstyleBehaviour.recordMaybeInsert = function (editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isMaybeInsertedClosing(cursor, line))\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = cursor.row;\n context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;\n context.maybeInsertedLineEnd = line.substr(cursor.column);\n context.maybeInsertedBrackets++;\n};\nCstyleBehaviour.isAutoInsertedClosing = function (cursor, line, bracket) {\n return context.autoInsertedBrackets > 0 &&\n cursor.row === context.autoInsertedRow &&\n bracket === context.autoInsertedLineEnd[0] &&\n line.substr(cursor.column) === context.autoInsertedLineEnd;\n};\nCstyleBehaviour.isMaybeInsertedClosing = function (cursor, line) {\n return context.maybeInsertedBrackets > 0 &&\n cursor.row === context.maybeInsertedRow &&\n line.substr(cursor.column) === context.maybeInsertedLineEnd &&\n line.substr(0, cursor.column) == context.maybeInsertedLineStart;\n};\nCstyleBehaviour.popAutoInsertedClosing = function () {\n context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);\n context.autoInsertedBrackets--;\n};\nCstyleBehaviour.clearMaybeInsertedClosing = function () {\n if (context) {\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = -1;\n }\n};\noop.inherits(CstyleBehaviour, Behaviour);\nexports.CstyleBehaviour = CstyleBehaviour;\n\n});\n\nace.define(\"ace/unicode\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar wordChars = [48, 9, 8, 25, 5, 0, 2, 25, 48, 0, 11, 0, 5, 0, 6, 22, 2, 30, 2, 457, 5, 11, 15, 4, 8, 0, 2, 0, 18, 116, 2, 1, 3, 3, 9, 0, 2, 2, 2, 0, 2, 19, 2, 82, 2, 138, 2, 4, 3, 155, 12, 37, 3, 0, 8, 38, 10, 44, 2, 0, 2, 1, 2, 1, 2, 0, 9, 26, 6, 2, 30, 10, 7, 61, 2, 9, 5, 101, 2, 7, 3, 9, 2, 18, 3, 0, 17, 58, 3, 100, 15, 53, 5, 0, 6, 45, 211, 57, 3, 18, 2, 5, 3, 11, 3, 9, 2, 1, 7, 6, 2, 2, 2, 7, 3, 1, 3, 21, 2, 6, 2, 0, 4, 3, 3, 8, 3, 1, 3, 3, 9, 0, 5, 1, 2, 4, 3, 11, 16, 2, 2, 5, 5, 1, 3, 21, 2, 6, 2, 1, 2, 1, 2, 1, 3, 0, 2, 4, 5, 1, 3, 2, 4, 0, 8, 3, 2, 0, 8, 15, 12, 2, 2, 8, 2, 2, 2, 21, 2, 6, 2, 1, 2, 4, 3, 9, 2, 2, 2, 2, 3, 0, 16, 3, 3, 9, 18, 2, 2, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 3, 8, 3, 1, 3, 2, 9, 1, 5, 1, 2, 4, 3, 9, 2, 0, 17, 1, 2, 5, 4, 2, 2, 3, 4, 1, 2, 0, 2, 1, 4, 1, 4, 2, 4, 11, 5, 4, 4, 2, 2, 3, 3, 0, 7, 0, 15, 9, 18, 2, 2, 7, 2, 2, 2, 22, 2, 9, 2, 4, 4, 7, 2, 2, 2, 3, 8, 1, 2, 1, 7, 3, 3, 9, 19, 1, 2, 7, 2, 2, 2, 22, 2, 9, 2, 4, 3, 8, 2, 2, 2, 3, 8, 1, 8, 0, 2, 3, 3, 9, 19, 1, 2, 7, 2, 2, 2, 22, 2, 15, 4, 7, 2, 2, 2, 3, 10, 0, 9, 3, 3, 9, 11, 5, 3, 1, 2, 17, 4, 23, 2, 8, 2, 0, 3, 6, 4, 0, 5, 5, 2, 0, 2, 7, 19, 1, 14, 57, 6, 14, 2, 9, 40, 1, 2, 0, 3, 1, 2, 0, 3, 0, 7, 3, 2, 6, 2, 2, 2, 0, 2, 0, 3, 1, 2, 12, 2, 2, 3, 4, 2, 0, 2, 5, 3, 9, 3, 1, 35, 0, 24, 1, 7, 9, 12, 0, 2, 0, 2, 0, 5, 9, 2, 35, 5, 19, 2, 5, 5, 7, 2, 35, 10, 0, 58, 73, 7, 77, 3, 37, 11, 42, 2, 0, 4, 328, 2, 3, 3, 6, 2, 0, 2, 3, 3, 40, 2, 3, 3, 32, 2, 3, 3, 6, 2, 0, 2, 3, 3, 14, 2, 56, 2, 3, 3, 66, 5, 0, 33, 15, 17, 84, 13, 619, 3, 16, 2, 25, 6, 74, 22, 12, 2, 6, 12, 20, 12, 19, 13, 12, 2, 2, 2, 1, 13, 51, 3, 29, 4, 0, 5, 1, 3, 9, 34, 2, 3, 9, 7, 87, 9, 42, 6, 69, 11, 28, 4, 11, 5, 11, 11, 39, 3, 4, 12, 43, 5, 25, 7, 10, 38, 27, 5, 62, 2, 28, 3, 10, 7, 9, 14, 0, 89, 75, 5, 9, 18, 8, 13, 42, 4, 11, 71, 55, 9, 9, 4, 48, 83, 2, 2, 30, 14, 230, 23, 280, 3, 5, 3, 37, 3, 5, 3, 7, 2, 0, 2, 0, 2, 0, 2, 30, 3, 52, 2, 6, 2, 0, 4, 2, 2, 6, 4, 3, 3, 5, 5, 12, 6, 2, 2, 6, 67, 1, 20, 0, 29, 0, 14, 0, 17, 4, 60, 12, 5, 0, 4, 11, 18, 0, 5, 0, 3, 9, 2, 0, 4, 4, 7, 0, 2, 0, 2, 0, 2, 3, 2, 10, 3, 3, 6, 4, 5, 0, 53, 1, 2684, 46, 2, 46, 2, 132, 7, 6, 15, 37, 11, 53, 10, 0, 17, 22, 10, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 31, 48, 0, 470, 1, 36, 5, 2, 4, 6, 1, 5, 85, 3, 1, 3, 2, 2, 89, 2, 3, 6, 40, 4, 93, 18, 23, 57, 15, 513, 6581, 75, 20939, 53, 1164, 68, 45, 3, 268, 4, 27, 21, 31, 3, 13, 13, 1, 2, 24, 9, 69, 11, 1, 38, 8, 3, 102, 3, 1, 111, 44, 25, 51, 13, 68, 12, 9, 7, 23, 4, 0, 5, 45, 3, 35, 13, 28, 4, 64, 15, 10, 39, 54, 10, 13, 3, 9, 7, 22, 4, 1, 5, 66, 25, 2, 227, 42, 2, 1, 3, 9, 7, 11171, 13, 22, 5, 48, 8453, 301, 3, 61, 3, 105, 39, 6, 13, 4, 6, 11, 2, 12, 2, 4, 2, 0, 2, 1, 2, 1, 2, 107, 34, 362, 19, 63, 3, 53, 41, 11, 5, 15, 17, 6, 13, 1, 25, 2, 33, 4, 2, 134, 20, 9, 8, 25, 5, 0, 2, 25, 12, 88, 4, 5, 3, 5, 3, 5, 3, 2];\nvar code = 0;\nvar str = [];\nfor (var i = 0; i < wordChars.length; i += 2) {\n str.push(code += wordChars[i]);\n if (wordChars[i + 1])\n str.push(45, code += wordChars[i + 1]);\n}\nexports.wordChars = String.fromCharCode.apply(null, str);\n\n});\n\nace.define(\"ace/mode/text\",[\"require\",\"exports\",\"module\",\"ace/config\",\"ace/tokenizer\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/unicode\",\"ace/lib/lang\",\"ace/token_iterator\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar config = require(\"../config\");\nvar Tokenizer = require(\"../tokenizer\").Tokenizer;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar unicode = require(\"../unicode\");\nvar lang = require(\"../lib/lang\");\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar Range = require(\"../range\").Range;\nvar Mode = function () {\n this.HighlightRules = TextHighlightRules;\n};\n(function () {\n this.$defaultBehaviour = new CstyleBehaviour();\n this.tokenRe = new RegExp(\"^[\" + unicode.wordChars + \"\\\\$_]+\", \"g\");\n this.nonTokenRe = new RegExp(\"^(?:[^\" + unicode.wordChars + \"\\\\$_]|\\\\s])+\", \"g\");\n this.getTokenizer = function () {\n if (!this.$tokenizer) {\n this.$highlightRules = this.$highlightRules || new this.HighlightRules(this.$highlightRuleConfig);\n this.$tokenizer = new Tokenizer(this.$highlightRules.getRules());\n }\n return this.$tokenizer;\n };\n this.lineCommentStart = \"\";\n this.blockComment = \"\";\n this.toggleCommentLines = function (state, session, startRow, endRow) {\n var doc = session.doc;\n var ignoreBlankLines = true;\n var shouldRemove = true;\n var minIndent = Infinity;\n var tabSize = session.getTabSize();\n var insertAtTabStop = false;\n if (!this.lineCommentStart) {\n if (!this.blockComment)\n return false;\n var lineCommentStart = this.blockComment.start;\n var lineCommentEnd = this.blockComment.end;\n var regexpStart = new RegExp(\"^(\\\\s*)(?:\" + lang.escapeRegExp(lineCommentStart) + \")\");\n var regexpEnd = new RegExp(\"(?:\" + lang.escapeRegExp(lineCommentEnd) + \")\\\\s*$\");\n var comment = function (line, i) {\n if (testRemove(line, i))\n return;\n if (!ignoreBlankLines || /\\S/.test(line)) {\n doc.insertInLine({ row: i, column: line.length }, lineCommentEnd);\n doc.insertInLine({ row: i, column: minIndent }, lineCommentStart);\n }\n };\n var uncomment = function (line, i) {\n var m;\n if (m = line.match(regexpEnd))\n doc.removeInLine(i, line.length - m[0].length, line.length);\n if (m = line.match(regexpStart))\n doc.removeInLine(i, m[1].length, m[0].length);\n };\n var testRemove = function (line, row) {\n if (regexpStart.test(line))\n return true;\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n if (tokens[i].type === \"comment\")\n return true;\n }\n };\n }\n else {\n if (Array.isArray(this.lineCommentStart)) {\n var regexpStart = this.lineCommentStart.map(lang.escapeRegExp).join(\"|\");\n var lineCommentStart = this.lineCommentStart[0];\n }\n else {\n var regexpStart = lang.escapeRegExp(this.lineCommentStart);\n var lineCommentStart = this.lineCommentStart;\n }\n regexpStart = new RegExp(\"^(\\\\s*)(?:\" + regexpStart + \") ?\");\n insertAtTabStop = session.getUseSoftTabs();\n var uncomment = function (line, i) {\n var m = line.match(regexpStart);\n if (!m)\n return;\n var start = m[1].length, end = m[0].length;\n if (!shouldInsertSpace(line, start, end) && m[0][end - 1] == \" \")\n end--;\n doc.removeInLine(i, start, end);\n };\n var commentWithSpace = lineCommentStart + \" \";\n var comment = function (line, i) {\n if (!ignoreBlankLines || /\\S/.test(line)) {\n if (shouldInsertSpace(line, minIndent, minIndent))\n doc.insertInLine({ row: i, column: minIndent }, commentWithSpace);\n else\n doc.insertInLine({ row: i, column: minIndent }, lineCommentStart);\n }\n };\n var testRemove = function (line, i) {\n return regexpStart.test(line);\n };\n var shouldInsertSpace = function (line, before, after) {\n var spaces = 0;\n while (before-- && line.charAt(before) == \" \")\n spaces++;\n if (spaces % tabSize != 0)\n return false;\n var spaces = 0;\n while (line.charAt(after++) == \" \")\n spaces++;\n if (tabSize > 2)\n return spaces % tabSize != tabSize - 1;\n else\n return spaces % tabSize == 0;\n };\n }\n function iter(fun) {\n for (var i = startRow; i <= endRow; i++)\n fun(doc.getLine(i), i);\n }\n var minEmptyLength = Infinity;\n iter(function (line, i) {\n var indent = line.search(/\\S/);\n if (indent !== -1) {\n if (indent < minIndent)\n minIndent = indent;\n if (shouldRemove && !testRemove(line, i))\n shouldRemove = false;\n }\n else if (minEmptyLength > line.length) {\n minEmptyLength = line.length;\n }\n });\n if (minIndent == Infinity) {\n minIndent = minEmptyLength;\n ignoreBlankLines = false;\n shouldRemove = false;\n }\n if (insertAtTabStop && minIndent % tabSize != 0)\n minIndent = Math.floor(minIndent / tabSize) * tabSize;\n iter(shouldRemove ? uncomment : comment);\n };\n this.toggleBlockComment = function (state, session, range, cursor) {\n var comment = this.blockComment;\n if (!comment)\n return;\n if (!comment.start && comment[0])\n comment = comment[0];\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n var sel = session.selection;\n var initialRange = session.selection.toOrientedRange();\n var startRow, colDiff;\n if (token && /comment/.test(token.type)) {\n var startRange, endRange;\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.start);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n startRange = new Range(row, column, row, column + comment.start.length);\n break;\n }\n token = iterator.stepBackward();\n }\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.end);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n endRange = new Range(row, column, row, column + comment.end.length);\n break;\n }\n token = iterator.stepForward();\n }\n if (endRange)\n session.remove(endRange);\n if (startRange) {\n session.remove(startRange);\n startRow = startRange.start.row;\n colDiff = -comment.start.length;\n }\n }\n else {\n colDiff = comment.start.length;\n startRow = range.start.row;\n session.insert(range.end, comment.end);\n session.insert(range.start, comment.start);\n }\n if (initialRange.start.row == startRow)\n initialRange.start.column += colDiff;\n if (initialRange.end.row == startRow)\n initialRange.end.column += colDiff;\n session.selection.fromOrientedRange(initialRange);\n };\n this.getNextLineIndent = function (state, line, tab) {\n return this.$getIndent(line);\n };\n this.checkOutdent = function (state, line, input) {\n return false;\n };\n this.autoOutdent = function (state, doc, row) {\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n this.createWorker = function (session) {\n return null;\n };\n this.createModeDelegates = function (mapping) {\n this.$embeds = [];\n this.$modes = {};\n for (var i in mapping) {\n if (mapping[i]) {\n var Mode = mapping[i];\n var id = Mode.prototype.$id;\n var mode = config.$modes[id];\n if (!mode)\n config.$modes[id] = mode = new Mode();\n if (!config.$modes[i])\n config.$modes[i] = mode;\n this.$embeds.push(i);\n this.$modes[i] = mode;\n }\n }\n var delegations = [\"toggleBlockComment\", \"toggleCommentLines\", \"getNextLineIndent\",\n \"checkOutdent\", \"autoOutdent\", \"transformAction\", \"getCompletions\"];\n for (var i = 0; i < delegations.length; i++) {\n (function (scope) {\n var functionName = delegations[i];\n var defaultHandler = scope[functionName];\n scope[delegations[i]] = function () {\n return this.$delegator(functionName, arguments, defaultHandler);\n };\n }(this));\n }\n };\n this.$delegator = function (method, args, defaultHandler) {\n var state = args[0] || \"start\";\n if (typeof state != \"string\") {\n if (Array.isArray(state[2])) {\n var language = state[2][state[2].length - 1];\n var mode = this.$modes[language];\n if (mode)\n return mode[method].apply(mode, [state[1]].concat([].slice.call(args, 1)));\n }\n state = state[0] || \"start\";\n }\n for (var i = 0; i < this.$embeds.length; i++) {\n if (!this.$modes[this.$embeds[i]])\n continue;\n var split = state.split(this.$embeds[i]);\n if (!split[0] && split[1]) {\n args[0] = split[1];\n var mode = this.$modes[this.$embeds[i]];\n return mode[method].apply(mode, args);\n }\n }\n var ret = defaultHandler.apply(this, args);\n return defaultHandler ? ret : undefined;\n };\n this.transformAction = function (state, action, editor, session, param) {\n if (this.$behaviour) {\n var behaviours = this.$behaviour.getBehaviours();\n for (var key in behaviours) {\n if (behaviours[key][action]) {\n var ret = behaviours[key][action].apply(this, arguments);\n if (ret) {\n return ret;\n }\n }\n }\n }\n };\n this.getKeywords = function (append) {\n if (!this.completionKeywords) {\n var rules = this.$tokenizer.rules;\n var completionKeywords = [];\n for (var rule in rules) {\n var ruleItr = rules[rule];\n for (var r = 0, l = ruleItr.length; r < l; r++) {\n if (typeof ruleItr[r].token === \"string\") {\n if (/keyword|support|storage/.test(ruleItr[r].token))\n completionKeywords.push(ruleItr[r].regex);\n }\n else if (typeof ruleItr[r].token === \"object\") {\n for (var a = 0, aLength = ruleItr[r].token.length; a < aLength; a++) {\n if (/keyword|support|storage/.test(ruleItr[r].token[a])) {\n var rule = ruleItr[r].regex.match(/\\(.+?\\)/g)[a];\n completionKeywords.push(rule.substr(1, rule.length - 2));\n }\n }\n }\n }\n }\n this.completionKeywords = completionKeywords;\n }\n if (!append)\n return this.$keywordList;\n return completionKeywords.concat(this.$keywordList || []);\n };\n this.$createKeywordList = function () {\n if (!this.$highlightRules)\n this.getTokenizer();\n return this.$keywordList = this.$highlightRules.$keywordList || [];\n };\n this.getCompletions = function (state, session, pos, prefix) {\n var keywords = this.$keywordList || this.$createKeywordList();\n return keywords.map(function (word) {\n return {\n name: word,\n value: word,\n score: 0,\n meta: \"keyword\"\n };\n });\n };\n this.$id = \"ace/mode/text\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n});\n\nace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nfunction throwDeltaError(delta, errorText) {\n console.log(\"Invalid Delta:\", delta);\n throw \"Invalid Delta: \" + errorText;\n}\nfunction positionInDocument(docLines, position) {\n return position.row >= 0 && position.row < docLines.length &&\n position.column >= 0 && position.column <= docLines[position.row].length;\n}\nfunction validateDelta(docLines, delta) {\n if (delta.action != \"insert\" && delta.action != \"remove\")\n throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n if (!(delta.lines instanceof Array))\n throwDeltaError(delta, \"delta.lines must be an Array\");\n if (!delta.start || !delta.end)\n throwDeltaError(delta, \"delta.start/end must be an present\");\n var start = delta.start;\n if (!positionInDocument(docLines, delta.start))\n throwDeltaError(delta, \"delta.start must be contained in document\");\n var end = delta.end;\n if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n var numRangeRows = end.row - start.row;\n var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n throwDeltaError(delta, \"delta.range must match delta lines\");\n}\nexports.applyDelta = function (docLines, delta, doNotValidate) {\n var row = delta.start.row;\n var startColumn = delta.start.column;\n var line = docLines[row] || \"\";\n switch (delta.action) {\n case \"insert\":\n var lines = delta.lines;\n if (lines.length === 1) {\n docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n }\n else {\n var args = [row, 1].concat(delta.lines);\n docLines.splice.apply(docLines, args);\n docLines[row] = line.substring(0, startColumn) + docLines[row];\n docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n }\n break;\n case \"remove\":\n var endColumn = delta.end.column;\n var endRow = delta.end.row;\n if (row === endRow) {\n docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n }\n else {\n docLines.splice(row, endRow - row + 1, line.substring(0, startColumn) + docLines[endRow].substring(endColumn));\n }\n break;\n }\n};\n\n});\n\nace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Anchor = /** @class */ (function () {\n function Anchor(doc, row, column) {\n this.$onChange = this.onChange.bind(this);\n this.attach(doc);\n if (typeof column == \"undefined\")\n this.setPosition(row.row, row.column);\n else\n this.setPosition(row, column);\n }\n Anchor.prototype.getPosition = function () {\n return this.$clipPositionToDocument(this.row, this.column);\n };\n Anchor.prototype.getDocument = function () {\n return this.document;\n };\n Anchor.prototype.onChange = function (delta) {\n if (delta.start.row == delta.end.row && delta.start.row != this.row)\n return;\n if (delta.start.row > this.row)\n return;\n var point = $getTransformedPoint(delta, { row: this.row, column: this.column }, this.$insertRight);\n this.setPosition(point.row, point.column, true);\n };\n Anchor.prototype.setPosition = function (row, column, noClip) {\n var pos;\n if (noClip) {\n pos = {\n row: row,\n column: column\n };\n }\n else {\n pos = this.$clipPositionToDocument(row, column);\n }\n if (this.row == pos.row && this.column == pos.column)\n return;\n var old = {\n row: this.row,\n column: this.column\n };\n this.row = pos.row;\n this.column = pos.column;\n this._signal(\"change\", {\n old: old,\n value: pos\n });\n };\n Anchor.prototype.detach = function () {\n this.document.off(\"change\", this.$onChange);\n };\n Anchor.prototype.attach = function (doc) {\n this.document = doc || this.document;\n this.document.on(\"change\", this.$onChange);\n };\n Anchor.prototype.$clipPositionToDocument = function (row, column) {\n var pos = {};\n if (row >= this.document.getLength()) {\n pos.row = Math.max(0, this.document.getLength() - 1);\n pos.column = this.document.getLine(pos.row).length;\n }\n else if (row < 0) {\n pos.row = 0;\n pos.column = 0;\n }\n else {\n pos.row = row;\n pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n }\n if (column < 0)\n pos.column = 0;\n return pos;\n };\n return Anchor;\n}());\nAnchor.prototype.$insertRight = false;\noop.implement(Anchor.prototype, EventEmitter);\nfunction $pointsInOrder(point1, point2, equalPointsInOrder) {\n var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n}\nfunction $getTransformedPoint(delta, point, moveIfEqual) {\n var deltaIsInsert = delta.action == \"insert\";\n var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row);\n var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n var deltaStart = delta.start;\n var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n return {\n row: point.row,\n column: point.column\n };\n }\n if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n return {\n row: point.row + deltaRowShift,\n column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n };\n }\n return {\n row: deltaStart.row,\n column: deltaStart.column\n };\n}\nexports.Anchor = Anchor;\n\n});\n\nace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar applyDelta = require(\"./apply_delta\").applyDelta;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Anchor = require(\"./anchor\").Anchor;\nvar Document = /** @class */ (function () {\n function Document(textOrLines) {\n this.$lines = [\"\"];\n if (textOrLines.length === 0) {\n this.$lines = [\"\"];\n }\n else if (Array.isArray(textOrLines)) {\n this.insertMergedLines({ row: 0, column: 0 }, textOrLines);\n }\n else {\n this.insert({ row: 0, column: 0 }, textOrLines);\n }\n }\n Document.prototype.setValue = function (text) {\n var len = this.getLength() - 1;\n this.remove(new Range(0, 0, len, this.getLine(len).length));\n this.insert({ row: 0, column: 0 }, text || \"\");\n };\n Document.prototype.getValue = function () {\n return this.getAllLines().join(this.getNewLineCharacter());\n };\n Document.prototype.createAnchor = function (row, column) {\n return new Anchor(this, row, column);\n };\n Document.prototype.$detectNewLine = function (text) {\n var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n this.$autoNewLine = match ? match[1] : \"\\n\";\n this._signal(\"changeNewLineMode\");\n };\n Document.prototype.getNewLineCharacter = function () {\n switch (this.$newLineMode) {\n case \"windows\":\n return \"\\r\\n\";\n case \"unix\":\n return \"\\n\";\n default:\n return this.$autoNewLine || \"\\n\";\n }\n };\n Document.prototype.setNewLineMode = function (newLineMode) {\n if (this.$newLineMode === newLineMode)\n return;\n this.$newLineMode = newLineMode;\n this._signal(\"changeNewLineMode\");\n };\n Document.prototype.getNewLineMode = function () {\n return this.$newLineMode;\n };\n Document.prototype.isNewLine = function (text) {\n return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n };\n Document.prototype.getLine = function (row) {\n return this.$lines[row] || \"\";\n };\n Document.prototype.getLines = function (firstRow, lastRow) {\n return this.$lines.slice(firstRow, lastRow + 1);\n };\n Document.prototype.getAllLines = function () {\n return this.getLines(0, this.getLength());\n };\n Document.prototype.getLength = function () {\n return this.$lines.length;\n };\n Document.prototype.getTextRange = function (range) {\n return this.getLinesForRange(range).join(this.getNewLineCharacter());\n };\n Document.prototype.getLinesForRange = function (range) {\n var lines;\n if (range.start.row === range.end.row) {\n lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n }\n else {\n lines = this.getLines(range.start.row, range.end.row);\n lines[0] = (lines[0] || \"\").substring(range.start.column);\n var l = lines.length - 1;\n if (range.end.row - range.start.row == l)\n lines[l] = lines[l].substring(0, range.end.column);\n }\n return lines;\n };\n Document.prototype.insertLines = function (row, lines) {\n console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n return this.insertFullLines(row, lines);\n };\n Document.prototype.removeLines = function (firstRow, lastRow) {\n console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n return this.removeFullLines(firstRow, lastRow);\n };\n Document.prototype.insertNewLine = function (position) {\n console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\");\n return this.insertMergedLines(position, [\"\", \"\"]);\n };\n Document.prototype.insert = function (position, text) {\n if (this.getLength() <= 1)\n this.$detectNewLine(text);\n return this.insertMergedLines(position, this.$split(text));\n };\n Document.prototype.insertInLine = function (position, text) {\n var start = this.clippedPos(position.row, position.column);\n var end = this.pos(position.row, position.column + text.length);\n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: [text]\n }, true);\n return this.clonePos(end);\n };\n Document.prototype.clippedPos = function (row, column) {\n var length = this.getLength();\n if (row === undefined) {\n row = length;\n }\n else if (row < 0) {\n row = 0;\n }\n else if (row >= length) {\n row = length - 1;\n column = undefined;\n }\n var line = this.getLine(row);\n if (column == undefined)\n column = line.length;\n column = Math.min(Math.max(column, 0), line.length);\n return { row: row, column: column };\n };\n Document.prototype.clonePos = function (pos) {\n return { row: pos.row, column: pos.column };\n };\n Document.prototype.pos = function (row, column) {\n return { row: row, column: column };\n };\n Document.prototype.$clipPosition = function (position) {\n var length = this.getLength();\n if (position.row >= length) {\n position.row = Math.max(0, length - 1);\n position.column = this.getLine(length - 1).length;\n }\n else {\n position.row = Math.max(0, position.row);\n position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n }\n return position;\n };\n Document.prototype.insertFullLines = function (row, lines) {\n row = Math.min(Math.max(row, 0), this.getLength());\n var column = 0;\n if (row < this.getLength()) {\n lines = lines.concat([\"\"]);\n column = 0;\n }\n else {\n lines = [\"\"].concat(lines);\n row--;\n column = this.$lines[row].length;\n }\n this.insertMergedLines({ row: row, column: column }, lines);\n };\n Document.prototype.insertMergedLines = function (position, lines) {\n var start = this.clippedPos(position.row, position.column);\n var end = {\n row: start.row + lines.length - 1,\n column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n };\n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: lines\n });\n return this.clonePos(end);\n };\n Document.prototype.remove = function (range) {\n var start = this.clippedPos(range.start.row, range.start.column);\n var end = this.clippedPos(range.end.row, range.end.column);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({ start: start, end: end })\n });\n return this.clonePos(start);\n };\n Document.prototype.removeInLine = function (row, startColumn, endColumn) {\n var start = this.clippedPos(row, startColumn);\n var end = this.clippedPos(row, endColumn);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({ start: start, end: end })\n }, true);\n return this.clonePos(start);\n };\n Document.prototype.removeFullLines = function (firstRow, lastRow) {\n firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n lastRow = Math.min(Math.max(0, lastRow), this.getLength() - 1);\n var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n var deleteLastNewLine = lastRow < this.getLength() - 1;\n var startRow = (deleteFirstNewLine ? firstRow - 1 : firstRow);\n var startCol = (deleteFirstNewLine ? this.getLine(startRow).length : 0);\n var endRow = (deleteLastNewLine ? lastRow + 1 : lastRow);\n var endCol = (deleteLastNewLine ? 0 : this.getLine(endRow).length);\n var range = new Range(startRow, startCol, endRow, endCol);\n var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n this.applyDelta({\n start: range.start,\n end: range.end,\n action: \"remove\",\n lines: this.getLinesForRange(range)\n });\n return deletedLines;\n };\n Document.prototype.removeNewLine = function (row) {\n if (row < this.getLength() - 1 && row >= 0) {\n this.applyDelta({\n start: this.pos(row, this.getLine(row).length),\n end: this.pos(row + 1, 0),\n action: \"remove\",\n lines: [\"\", \"\"]\n });\n }\n };\n Document.prototype.replace = function (range, text) {\n if (!(range instanceof Range))\n range = Range.fromPoints(range.start, range.end);\n if (text.length === 0 && range.isEmpty())\n return range.start;\n if (text == this.getTextRange(range))\n return range.end;\n this.remove(range);\n var end;\n if (text) {\n end = this.insert(range.start, text);\n }\n else {\n end = range.start;\n }\n return end;\n };\n Document.prototype.applyDeltas = function (deltas) {\n for (var i = 0; i < deltas.length; i++) {\n this.applyDelta(deltas[i]);\n }\n };\n Document.prototype.revertDeltas = function (deltas) {\n for (var i = deltas.length - 1; i >= 0; i--) {\n this.revertDelta(deltas[i]);\n }\n };\n Document.prototype.applyDelta = function (delta, doNotValidate) {\n var isInsert = delta.action == \"insert\";\n if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n : !Range.comparePoints(delta.start, delta.end)) {\n return;\n }\n if (isInsert && delta.lines.length > 20000) {\n this.$splitAndapplyLargeDelta(delta, 20000);\n }\n else {\n applyDelta(this.$lines, delta, doNotValidate);\n this._signal(\"change\", delta);\n }\n };\n Document.prototype.$safeApplyDelta = function (delta) {\n var docLength = this.$lines.length;\n if (delta.action == \"remove\" && delta.start.row < docLength && delta.end.row < docLength\n || delta.action == \"insert\" && delta.start.row <= docLength) {\n this.applyDelta(delta);\n }\n };\n Document.prototype.$splitAndapplyLargeDelta = function (delta, MAX) {\n var lines = delta.lines;\n var l = lines.length - MAX + 1;\n var row = delta.start.row;\n var column = delta.start.column;\n for (var from = 0, to = 0; from < l; from = to) {\n to += MAX - 1;\n var chunk = lines.slice(from, to);\n chunk.push(\"\");\n this.applyDelta({\n start: this.pos(row + from, column),\n end: this.pos(row + to, column = 0),\n action: delta.action,\n lines: chunk\n }, true);\n }\n delta.lines = lines.slice(from);\n delta.start.row = row + from;\n delta.start.column = column;\n this.applyDelta(delta, true);\n };\n Document.prototype.revertDelta = function (delta) {\n this.$safeApplyDelta({\n start: this.clonePos(delta.start),\n end: this.clonePos(delta.end),\n action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n lines: delta.lines.slice()\n });\n };\n Document.prototype.indexToPosition = function (index, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n for (var i = startRow || 0, l = lines.length; i < l; i++) {\n index -= lines[i].length + newlineLength;\n if (index < 0)\n return { row: i, column: index + lines[i].length + newlineLength };\n }\n return { row: l - 1, column: index + lines[l - 1].length + newlineLength };\n };\n Document.prototype.positionToIndex = function (pos, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n var index = 0;\n var row = Math.min(pos.row, lines.length);\n for (var i = startRow || 0; i < row; ++i)\n index += lines[i].length + newlineLength;\n return index + pos.column;\n };\n Document.prototype.$split = function (text) {\n return text.split(/\\r\\n|\\r|\\n/);\n };\n return Document;\n}());\nDocument.prototype.$autoNewLine = \"\";\nDocument.prototype.$newLineMode = \"auto\";\noop.implement(Document.prototype, EventEmitter);\nexports.Document = Document;\n\n});\n\nace.define(\"ace/background_tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar BackgroundTokenizer = /** @class */ (function () {\n function BackgroundTokenizer(tokenizer, editor) {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.tokenizer = tokenizer;\n var self = this;\n this.$worker = function () {\n if (!self.running) {\n return;\n }\n var workerStart = new Date();\n var currentLine = self.currentLine;\n var endLine = -1;\n var doc = self.doc;\n var startLine = currentLine;\n while (self.lines[currentLine])\n currentLine++;\n var len = doc.getLength();\n var processedLines = 0;\n self.running = false;\n while (currentLine < len) {\n self.$tokenizeRow(currentLine);\n endLine = currentLine;\n do {\n currentLine++;\n } while (self.lines[currentLine]);\n processedLines++;\n if ((processedLines % 5 === 0) && (new Date() - workerStart) > 20) {\n self.running = setTimeout(self.$worker, 20);\n break;\n }\n }\n self.currentLine = currentLine;\n if (endLine == -1)\n endLine = currentLine;\n if (startLine <= endLine)\n self.fireUpdateEvent(startLine, endLine);\n };\n }\n BackgroundTokenizer.prototype.setTokenizer = function (tokenizer) {\n this.tokenizer = tokenizer;\n this.lines = [];\n this.states = [];\n this.start(0);\n };\n BackgroundTokenizer.prototype.setDocument = function (doc) {\n this.doc = doc;\n this.lines = [];\n this.states = [];\n this.stop();\n };\n BackgroundTokenizer.prototype.fireUpdateEvent = function (firstRow, lastRow) {\n var data = {\n first: firstRow,\n last: lastRow\n };\n this._signal(\"update\", { data: data });\n };\n BackgroundTokenizer.prototype.start = function (startRow) {\n this.currentLine = Math.min(startRow || 0, this.currentLine, this.doc.getLength());\n this.lines.splice(this.currentLine, this.lines.length);\n this.states.splice(this.currentLine, this.states.length);\n this.stop();\n this.running = setTimeout(this.$worker, 700);\n };\n BackgroundTokenizer.prototype.scheduleStart = function () {\n if (!this.running)\n this.running = setTimeout(this.$worker, 700);\n };\n BackgroundTokenizer.prototype.$updateOnChange = function (delta) {\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n if (len === 0) {\n this.lines[startRow] = null;\n }\n else if (delta.action == \"remove\") {\n this.lines.splice(startRow, len + 1, null);\n this.states.splice(startRow, len + 1, null);\n }\n else {\n var args = Array(len + 1);\n args.unshift(startRow, 1);\n this.lines.splice.apply(this.lines, args);\n this.states.splice.apply(this.states, args);\n }\n this.currentLine = Math.min(startRow, this.currentLine, this.doc.getLength());\n this.stop();\n };\n BackgroundTokenizer.prototype.stop = function () {\n if (this.running)\n clearTimeout(this.running);\n this.running = false;\n };\n BackgroundTokenizer.prototype.getTokens = function (row) {\n return this.lines[row] || this.$tokenizeRow(row);\n };\n BackgroundTokenizer.prototype.getState = function (row) {\n if (this.currentLine == row)\n this.$tokenizeRow(row);\n return this.states[row] || \"start\";\n };\n BackgroundTokenizer.prototype.$tokenizeRow = function (row) {\n var line = this.doc.getLine(row);\n var state = this.states[row - 1];\n var data = this.tokenizer.getLineTokens(line, state, row);\n if (this.states[row] + \"\" !== data.state + \"\") {\n this.states[row] = data.state;\n this.lines[row + 1] = null;\n if (this.currentLine > row + 1)\n this.currentLine = row + 1;\n }\n else if (this.currentLine == row) {\n this.currentLine = row + 1;\n }\n return this.lines[row] = data.tokens;\n };\n BackgroundTokenizer.prototype.cleanup = function () {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.removeAllListeners();\n };\n return BackgroundTokenizer;\n}());\noop.implement(BackgroundTokenizer.prototype, EventEmitter);\nexports.BackgroundTokenizer = BackgroundTokenizer;\n\n});\n\nace.define(\"ace/search_highlight\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"./lib/lang\");\nvar Range = require(\"./range\").Range;\nvar SearchHighlight = /** @class */ (function () {\n function SearchHighlight(regExp, clazz, type) {\n if (type === void 0) { type = \"text\"; }\n this.setRegexp(regExp);\n this.clazz = clazz;\n this.type = type;\n }\n SearchHighlight.prototype.setRegexp = function (regExp) {\n if (this.regExp + \"\" == regExp + \"\")\n return;\n this.regExp = regExp;\n this.cache = [];\n };\n SearchHighlight.prototype.update = function (html, markerLayer, session, config) {\n if (!this.regExp)\n return;\n var start = config.firstRow, end = config.lastRow;\n var renderedMarkerRanges = {};\n for (var i = start; i <= end; i++) {\n var ranges = this.cache[i];\n if (ranges == null) {\n ranges = lang.getMatchOffsets(session.getLine(i), this.regExp);\n if (ranges.length > this.MAX_RANGES)\n ranges = ranges.slice(0, this.MAX_RANGES);\n ranges = ranges.map(function (match) {\n return new Range(i, match.offset, i, match.offset + match.length);\n });\n this.cache[i] = ranges.length ? ranges : \"\";\n }\n for (var j = ranges.length; j--;) {\n var rangeToAddMarkerTo = ranges[j].toScreenRange(session);\n var rangeAsString = rangeToAddMarkerTo.toString();\n if (renderedMarkerRanges[rangeAsString])\n continue;\n renderedMarkerRanges[rangeAsString] = true;\n markerLayer.drawSingleLineMarker(html, rangeToAddMarkerTo, this.clazz, config);\n }\n }\n };\n return SearchHighlight;\n}());\nSearchHighlight.prototype.MAX_RANGES = 500;\nexports.SearchHighlight = SearchHighlight;\n\n});\n\nace.define(\"ace/undomanager\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar UndoManager = /** @class */ (function () {\n function UndoManager() {\n this.$maxRev = 0;\n this.$fromUndo = false;\n this.$undoDepth = Infinity;\n this.reset();\n }\n UndoManager.prototype.addSession = function (session) {\n this.$session = session;\n };\n UndoManager.prototype.add = function (delta, allowMerge, session) {\n if (this.$fromUndo)\n return;\n if (delta == this.$lastDelta)\n return;\n if (!this.$keepRedoStack)\n this.$redoStack.length = 0;\n if (allowMerge === false || !this.lastDeltas) {\n this.lastDeltas = [];\n var undoStackLength = this.$undoStack.length;\n if (undoStackLength > this.$undoDepth - 1) {\n this.$undoStack.splice(0, undoStackLength - this.$undoDepth + 1);\n }\n this.$undoStack.push(this.lastDeltas);\n delta.id = this.$rev = ++this.$maxRev;\n }\n if (delta.action == \"remove\" || delta.action == \"insert\")\n this.$lastDelta = delta;\n this.lastDeltas.push(delta);\n };\n UndoManager.prototype.addSelection = function (selection, rev) {\n this.selections.push({\n value: selection,\n rev: rev || this.$rev\n });\n };\n UndoManager.prototype.startNewGroup = function () {\n this.lastDeltas = null;\n return this.$rev;\n };\n UndoManager.prototype.markIgnored = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n var stack = this.$undoStack;\n for (var i = stack.length; i--;) {\n var delta = stack[i][0];\n if (delta.id <= from)\n break;\n if (delta.id < to)\n delta.ignore = true;\n }\n this.lastDeltas = null;\n };\n UndoManager.prototype.getSelection = function (rev, after) {\n var stack = this.selections;\n for (var i = stack.length; i--;) {\n var selection = stack[i];\n if (selection.rev < rev) {\n if (after)\n selection = stack[i + 1];\n return selection;\n }\n }\n };\n UndoManager.prototype.getRevision = function () {\n return this.$rev;\n };\n UndoManager.prototype.getDeltas = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n var stack = this.$undoStack;\n var end = null, start = 0;\n for (var i = stack.length; i--;) {\n var delta = stack[i][0];\n if (delta.id < to && !end)\n end = i + 1;\n if (delta.id <= from) {\n start = i + 1;\n break;\n }\n }\n return stack.slice(start, end);\n };\n UndoManager.prototype.getChangedRanges = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n };\n UndoManager.prototype.getChangedLines = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n };\n UndoManager.prototype.undo = function (session, dontSelect) {\n this.lastDeltas = null;\n var stack = this.$undoStack;\n if (!rearrangeUndoStack(stack, stack.length))\n return;\n if (!session)\n session = this.$session;\n if (this.$redoStackBaseRev !== this.$rev && this.$redoStack.length)\n this.$redoStack = [];\n this.$fromUndo = true;\n var deltaSet = stack.pop();\n var undoSelectionRange = null;\n if (deltaSet) {\n undoSelectionRange = session.undoChanges(deltaSet, dontSelect);\n this.$redoStack.push(deltaSet);\n this.$syncRev();\n }\n this.$fromUndo = false;\n return undoSelectionRange;\n };\n UndoManager.prototype.redo = function (session, dontSelect) {\n this.lastDeltas = null;\n if (!session)\n session = this.$session;\n this.$fromUndo = true;\n if (this.$redoStackBaseRev != this.$rev) {\n var diff = this.getDeltas(this.$redoStackBaseRev, this.$rev + 1);\n rebaseRedoStack(this.$redoStack, diff);\n this.$redoStackBaseRev = this.$rev;\n this.$redoStack.forEach(function (x) {\n x[0].id = ++this.$maxRev;\n }, this);\n }\n var deltaSet = this.$redoStack.pop();\n var redoSelectionRange = null;\n if (deltaSet) {\n redoSelectionRange = session.redoChanges(deltaSet, dontSelect);\n this.$undoStack.push(deltaSet);\n this.$syncRev();\n }\n this.$fromUndo = false;\n return redoSelectionRange;\n };\n UndoManager.prototype.$syncRev = function () {\n var stack = this.$undoStack;\n var nextDelta = stack[stack.length - 1];\n var id = nextDelta && nextDelta[0].id || 0;\n this.$redoStackBaseRev = id;\n this.$rev = id;\n };\n UndoManager.prototype.reset = function () {\n this.lastDeltas = null;\n this.$lastDelta = null;\n this.$undoStack = [];\n this.$redoStack = [];\n this.$rev = 0;\n this.mark = 0;\n this.$redoStackBaseRev = this.$rev;\n this.selections = [];\n };\n UndoManager.prototype.canUndo = function () {\n return this.$undoStack.length > 0;\n };\n UndoManager.prototype.canRedo = function () {\n return this.$redoStack.length > 0;\n };\n UndoManager.prototype.bookmark = function (rev) {\n if (rev == undefined)\n rev = this.$rev;\n this.mark = rev;\n };\n UndoManager.prototype.isAtBookmark = function () {\n return this.$rev === this.mark;\n };\n UndoManager.prototype.toJSON = function () {\n return {\n $redoStack: this.$redoStack,\n $undoStack: this.$undoStack\n };\n };\n UndoManager.prototype.fromJSON = function (json) {\n this.reset();\n this.$undoStack = json.$undoStack;\n this.$redoStack = json.$redoStack;\n };\n UndoManager.prototype.$prettyPrint = function (delta) {\n if (delta)\n return stringifyDelta(delta);\n return stringifyDelta(this.$undoStack) + \"\\n---\\n\" + stringifyDelta(this.$redoStack);\n };\n return UndoManager;\n}());\nUndoManager.prototype.hasUndo = UndoManager.prototype.canUndo;\nUndoManager.prototype.hasRedo = UndoManager.prototype.canRedo;\nUndoManager.prototype.isClean = UndoManager.prototype.isAtBookmark;\nUndoManager.prototype.markClean = UndoManager.prototype.bookmark;\nfunction rearrangeUndoStack(stack, pos) {\n for (var i = pos; i--;) {\n var deltaSet = stack[i];\n if (deltaSet && !deltaSet[0].ignore) {\n while (i < pos - 1) {\n var swapped = swapGroups(stack[i], stack[i + 1]);\n stack[i] = swapped[0];\n stack[i + 1] = swapped[1];\n i++;\n }\n return true;\n }\n }\n}\nvar Range = require(\"./range\").Range;\nvar cmp = Range.comparePoints;\nvar comparePoints = Range.comparePoints;\nfunction $updateMarkers(delta) {\n var isInsert = delta.action == \"insert\";\n var start = delta.start;\n var end = delta.end;\n var rowShift = (end.row - start.row) * (isInsert ? 1 : -1);\n var colShift = (end.column - start.column) * (isInsert ? 1 : -1);\n if (isInsert)\n end = start;\n for (var i in this.marks) {\n var point = this.marks[i];\n var cmp = comparePoints(point, start);\n if (cmp < 0) {\n continue; // delta starts after the range\n }\n if (cmp === 0) {\n if (isInsert) {\n if (point.bias == 1) {\n cmp = 1;\n }\n else {\n point.bias == -1;\n continue;\n }\n }\n }\n var cmp2 = isInsert ? cmp : comparePoints(point, end);\n if (cmp2 > 0) {\n point.row += rowShift;\n point.column += point.row == end.row ? colShift : 0;\n continue;\n }\n if (!isInsert && cmp2 <= 0) {\n point.row = start.row;\n point.column = start.column;\n if (cmp2 === 0)\n point.bias = 1;\n }\n }\n}\nfunction clonePos(pos) {\n return { row: pos.row, column: pos.column };\n}\nfunction cloneDelta(d) {\n return {\n start: clonePos(d.start),\n end: clonePos(d.end),\n action: d.action,\n lines: d.lines.slice()\n };\n}\nfunction stringifyDelta(d) {\n d = d || this;\n if (Array.isArray(d)) {\n return d.map(stringifyDelta).join(\"\\n\");\n }\n var type = \"\";\n if (d.action) {\n type = d.action == \"insert\" ? \"+\" : \"-\";\n type += \"[\" + d.lines + \"]\";\n }\n else if (d.value) {\n if (Array.isArray(d.value)) {\n type = d.value.map(stringifyRange).join(\"\\n\");\n }\n else {\n type = stringifyRange(d.value);\n }\n }\n if (d.start) {\n type += stringifyRange(d);\n }\n if (d.id || d.rev) {\n type += \"\\t(\" + (d.id || d.rev) + \")\";\n }\n return type;\n}\nfunction stringifyRange(r) {\n return r.start.row + \":\" + r.start.column\n + \"=>\" + r.end.row + \":\" + r.end.column;\n}\nfunction swap(d1, d2) {\n var i1 = d1.action == \"insert\";\n var i2 = d2.action == \"insert\";\n if (i1 && i2) {\n if (cmp(d2.start, d1.end) >= 0) {\n shift(d2, d1, -1);\n }\n else if (cmp(d2.start, d1.start) <= 0) {\n shift(d1, d2, +1);\n }\n else {\n return null;\n }\n }\n else if (i1 && !i2) {\n if (cmp(d2.start, d1.end) >= 0) {\n shift(d2, d1, -1);\n }\n else if (cmp(d2.end, d1.start) <= 0) {\n shift(d1, d2, -1);\n }\n else {\n return null;\n }\n }\n else if (!i1 && i2) {\n if (cmp(d2.start, d1.start) >= 0) {\n shift(d2, d1, +1);\n }\n else if (cmp(d2.start, d1.start) <= 0) {\n shift(d1, d2, +1);\n }\n else {\n return null;\n }\n }\n else if (!i1 && !i2) {\n if (cmp(d2.start, d1.start) >= 0) {\n shift(d2, d1, +1);\n }\n else if (cmp(d2.end, d1.start) <= 0) {\n shift(d1, d2, -1);\n }\n else {\n return null;\n }\n }\n return [d2, d1];\n}\nfunction swapGroups(ds1, ds2) {\n for (var i = ds1.length; i--;) {\n for (var j = 0; j < ds2.length; j++) {\n if (!swap(ds1[i], ds2[j])) {\n while (i < ds1.length) {\n while (j--) {\n swap(ds2[j], ds1[i]);\n }\n j = ds2.length;\n i++;\n }\n return [ds1, ds2];\n }\n }\n }\n ds1.selectionBefore = ds2.selectionBefore =\n ds1.selectionAfter = ds2.selectionAfter = null;\n return [ds2, ds1];\n}\nfunction xform(d1, c1) {\n var i1 = d1.action == \"insert\";\n var i2 = c1.action == \"insert\";\n if (i1 && i2) {\n if (cmp(d1.start, c1.start) < 0) {\n shift(c1, d1, 1);\n }\n else {\n shift(d1, c1, 1);\n }\n }\n else if (i1 && !i2) {\n if (cmp(d1.start, c1.end) >= 0) {\n shift(d1, c1, -1);\n }\n else if (cmp(d1.start, c1.start) <= 0) {\n shift(c1, d1, +1);\n }\n else {\n shift(d1, Range.fromPoints(c1.start, d1.start), -1);\n shift(c1, d1, +1);\n }\n }\n else if (!i1 && i2) {\n if (cmp(c1.start, d1.end) >= 0) {\n shift(c1, d1, -1);\n }\n else if (cmp(c1.start, d1.start) <= 0) {\n shift(d1, c1, +1);\n }\n else {\n shift(c1, Range.fromPoints(d1.start, c1.start), -1);\n shift(d1, c1, +1);\n }\n }\n else if (!i1 && !i2) {\n if (cmp(c1.start, d1.end) >= 0) {\n shift(c1, d1, -1);\n }\n else if (cmp(c1.end, d1.start) <= 0) {\n shift(d1, c1, -1);\n }\n else {\n var before, after;\n if (cmp(d1.start, c1.start) < 0) {\n before = d1;\n d1 = splitDelta(d1, c1.start);\n }\n if (cmp(d1.end, c1.end) > 0) {\n after = splitDelta(d1, c1.end);\n }\n shiftPos(c1.end, d1.start, d1.end, -1);\n if (after && !before) {\n d1.lines = after.lines;\n d1.start = after.start;\n d1.end = after.end;\n after = d1;\n }\n return [c1, before, after].filter(Boolean);\n }\n }\n return [c1, d1];\n}\nfunction shift(d1, d2, dir) {\n shiftPos(d1.start, d2.start, d2.end, dir);\n shiftPos(d1.end, d2.start, d2.end, dir);\n}\nfunction shiftPos(pos, start, end, dir) {\n if (pos.row == (dir == 1 ? start : end).row) {\n pos.column += dir * (end.column - start.column);\n }\n pos.row += dir * (end.row - start.row);\n}\nfunction splitDelta(c, pos) {\n var lines = c.lines;\n var end = c.end;\n c.end = clonePos(pos);\n var rowsBefore = c.end.row - c.start.row;\n var otherLines = lines.splice(rowsBefore, lines.length);\n var col = rowsBefore ? pos.column : pos.column - c.start.column;\n lines.push(otherLines[0].substring(0, col));\n otherLines[0] = otherLines[0].substr(col);\n var rest = {\n start: clonePos(pos),\n end: end,\n lines: otherLines,\n action: c.action\n };\n return rest;\n}\nfunction moveDeltasByOne(redoStack, d) {\n d = cloneDelta(d);\n for (var j = redoStack.length; j--;) {\n var deltaSet = redoStack[j];\n for (var i = 0; i < deltaSet.length; i++) {\n var x = deltaSet[i];\n var xformed = xform(x, d);\n d = xformed[0];\n if (xformed.length != 2) {\n if (xformed[2]) {\n deltaSet.splice(i + 1, 1, xformed[1], xformed[2]);\n i++;\n }\n else if (!xformed[1]) {\n deltaSet.splice(i, 1);\n i--;\n }\n }\n }\n if (!deltaSet.length) {\n redoStack.splice(j, 1);\n }\n }\n return redoStack;\n}\nfunction rebaseRedoStack(redoStack, deltaSets) {\n for (var i = 0; i < deltaSets.length; i++) {\n var deltas = deltaSets[i];\n for (var j = 0; j < deltas.length; j++) {\n moveDeltasByOne(redoStack, deltas[j]);\n }\n }\n}\nexports.UndoManager = UndoManager;\n\n});\n\nace.define(\"ace/edit_session/fold_line\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar FoldLine = /** @class */ (function () {\n function FoldLine(foldData, folds) {\n this.foldData = foldData;\n if (Array.isArray(folds)) {\n this.folds = folds;\n }\n else {\n folds = this.folds = [folds];\n }\n var last = folds[folds.length - 1];\n this.range = new Range(folds[0].start.row, folds[0].start.column, last.end.row, last.end.column);\n this.start = this.range.start;\n this.end = this.range.end;\n this.folds.forEach(function (fold) {\n fold.setFoldLine(this);\n }, this);\n }\n FoldLine.prototype.shiftRow = function (shift) {\n this.start.row += shift;\n this.end.row += shift;\n this.folds.forEach(function (fold) {\n fold.start.row += shift;\n fold.end.row += shift;\n });\n };\n FoldLine.prototype.addFold = function (fold) {\n if (fold.sameRow) {\n if (fold.start.row < this.startRow || fold.endRow > this.endRow) {\n throw new Error(\"Can't add a fold to this FoldLine as it has no connection\");\n }\n this.folds.push(fold);\n this.folds.sort(function (a, b) {\n return -a.range.compareEnd(b.start.row, b.start.column);\n });\n if (this.range.compareEnd(fold.start.row, fold.start.column) > 0) {\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n }\n else if (this.range.compareStart(fold.end.row, fold.end.column) < 0) {\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n }\n else if (fold.start.row == this.end.row) {\n this.folds.push(fold);\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n }\n else if (fold.end.row == this.start.row) {\n this.folds.unshift(fold);\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n else {\n throw new Error(\"Trying to add fold to FoldRow that doesn't have a matching row\");\n }\n fold.foldLine = this;\n };\n FoldLine.prototype.containsRow = function (row) {\n return row >= this.start.row && row <= this.end.row;\n };\n FoldLine.prototype.walk = function (callback, endRow, endColumn) {\n var lastEnd = 0, folds = this.folds, fold, cmp, stop, isNewRow = true;\n if (endRow == null) {\n endRow = this.end.row;\n endColumn = this.end.column;\n }\n for (var i = 0; i < folds.length; i++) {\n fold = folds[i];\n cmp = fold.range.compareStart(endRow, endColumn);\n if (cmp == -1) {\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n return;\n }\n stop = callback(null, fold.start.row, fold.start.column, lastEnd, isNewRow);\n stop = !stop && callback(fold.placeholder, fold.start.row, fold.start.column, lastEnd);\n if (stop || cmp === 0) {\n return;\n }\n isNewRow = !fold.sameRow;\n lastEnd = fold.end.column;\n }\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n };\n FoldLine.prototype.getNextFoldTo = function (row, column) {\n var fold, cmp;\n for (var i = 0; i < this.folds.length; i++) {\n fold = this.folds[i];\n cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n return {\n fold: fold,\n kind: \"after\"\n };\n }\n else if (cmp === 0) {\n return {\n fold: fold,\n kind: \"inside\"\n };\n }\n }\n return null;\n };\n FoldLine.prototype.addRemoveChars = function (row, column, len) {\n var ret = this.getNextFoldTo(row, column), fold, folds;\n if (ret) {\n fold = ret.fold;\n if (ret.kind == \"inside\"\n && fold.start.column != column\n && fold.start.row != row) {\n window.console && window.console.log(row, column, fold);\n }\n else if (fold.start.row == row) {\n folds = this.folds;\n var i = folds.indexOf(fold);\n if (i === 0) {\n this.start.column += len;\n }\n for (i; i < folds.length; i++) {\n fold = folds[i];\n fold.start.column += len;\n if (!fold.sameRow) {\n return;\n }\n fold.end.column += len;\n }\n this.end.column += len;\n }\n }\n };\n FoldLine.prototype.split = function (row, column) {\n var pos = this.getNextFoldTo(row, column);\n if (!pos || pos.kind == \"inside\")\n return null;\n var fold = pos.fold;\n var folds = this.folds;\n var foldData = this.foldData;\n var i = folds.indexOf(fold);\n var foldBefore = folds[i - 1];\n this.end.row = foldBefore.end.row;\n this.end.column = foldBefore.end.column;\n folds = folds.splice(i, folds.length - i);\n var newFoldLine = new FoldLine(foldData, folds);\n foldData.splice(foldData.indexOf(this) + 1, 0, newFoldLine);\n return newFoldLine;\n };\n FoldLine.prototype.merge = function (foldLineNext) {\n var folds = foldLineNext.folds;\n for (var i = 0; i < folds.length; i++) {\n this.addFold(folds[i]);\n }\n var foldData = this.foldData;\n foldData.splice(foldData.indexOf(foldLineNext), 1);\n };\n FoldLine.prototype.toString = function () {\n var ret = [this.range.toString() + \": [\"];\n this.folds.forEach(function (fold) {\n ret.push(\" \" + fold.toString());\n });\n ret.push(\"]\");\n return ret.join(\"\\n\");\n };\n FoldLine.prototype.idxToPosition = function (idx) {\n var lastFoldEndColumn = 0;\n for (var i = 0; i < this.folds.length; i++) {\n var fold = this.folds[i];\n idx -= fold.start.column - lastFoldEndColumn;\n if (idx < 0) {\n return {\n row: fold.start.row,\n column: fold.start.column + idx\n };\n }\n idx -= fold.placeholder.length;\n if (idx < 0) {\n return fold.start;\n }\n lastFoldEndColumn = fold.end.column;\n }\n return {\n row: this.end.row,\n column: this.end.column + idx\n };\n };\n return FoldLine;\n}());\nexports.FoldLine = FoldLine;\n\n});\n\nace.define(\"ace/range_list\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar comparePoints = Range.comparePoints;\nvar RangeList = /** @class */ (function () {\n function RangeList() {\n this.ranges = [];\n this.$bias = 1;\n }\n RangeList.prototype.pointIndex = function (pos, excludeEdges, startIndex) {\n var list = this.ranges;\n for (var i = startIndex || 0; i < list.length; i++) {\n var range = list[i];\n var cmpEnd = comparePoints(pos, range.end);\n if (cmpEnd > 0)\n continue;\n var cmpStart = comparePoints(pos, range.start);\n if (cmpEnd === 0)\n return excludeEdges && cmpStart !== 0 ? -i - 2 : i;\n if (cmpStart > 0 || (cmpStart === 0 && !excludeEdges))\n return i;\n return -i - 1;\n }\n return -i - 1;\n };\n RangeList.prototype.add = function (range) {\n var excludeEdges = !range.isEmpty();\n var startIndex = this.pointIndex(range.start, excludeEdges);\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex(range.end, excludeEdges, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n else\n endIndex++;\n return this.ranges.splice(startIndex, endIndex - startIndex, range);\n };\n RangeList.prototype.addList = function (list) {\n var removed = [];\n for (var i = list.length; i--;) {\n removed.push.apply(removed, this.add(list[i]));\n }\n return removed;\n };\n RangeList.prototype.substractPoint = function (pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges.splice(i, 1);\n };\n RangeList.prototype.merge = function () {\n var removed = [];\n var list = this.ranges;\n list = list.sort(function (a, b) {\n return comparePoints(a.start, b.start);\n });\n var next = list[0], range;\n for (var i = 1; i < list.length; i++) {\n range = next;\n next = list[i];\n var cmp = comparePoints(range.end, next.start);\n if (cmp < 0)\n continue;\n if (cmp == 0 && !range.isEmpty() && !next.isEmpty())\n continue;\n if (comparePoints(range.end, next.end) < 0) {\n range.end.row = next.end.row;\n range.end.column = next.end.column;\n }\n list.splice(i, 1);\n removed.push(next);\n next = range;\n i--;\n }\n this.ranges = list;\n return removed;\n };\n RangeList.prototype.contains = function (row, column) {\n return this.pointIndex({ row: row, column: column }) >= 0;\n };\n RangeList.prototype.containsPoint = function (pos) {\n return this.pointIndex(pos) >= 0;\n };\n RangeList.prototype.rangeAtPoint = function (pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges[i];\n };\n RangeList.prototype.clipRows = function (startRow, endRow) {\n var list = this.ranges;\n if (list[0].start.row > endRow || list[list.length - 1].start.row < startRow)\n return [];\n var startIndex = this.pointIndex({ row: startRow, column: 0 });\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex({ row: endRow, column: 0 }, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n var clipped = [];\n for (var i = startIndex; i < endIndex; i++) {\n clipped.push(list[i]);\n }\n return clipped;\n };\n RangeList.prototype.removeAll = function () {\n return this.ranges.splice(0, this.ranges.length);\n };\n RangeList.prototype.attach = function (session) {\n if (this.session)\n this.detach();\n this.session = session;\n this.onChange = this.$onChange.bind(this);\n this.session.on('change', this.onChange);\n };\n RangeList.prototype.detach = function () {\n if (!this.session)\n return;\n this.session.removeListener('change', this.onChange);\n this.session = null;\n };\n RangeList.prototype.$onChange = function (delta) {\n var start = delta.start;\n var end = delta.end;\n var startRow = start.row;\n var endRow = end.row;\n var ranges = this.ranges;\n for (var i = 0, n = ranges.length; i < n; i++) {\n var r = ranges[i];\n if (r.end.row >= startRow)\n break;\n }\n if (delta.action == \"insert\") {\n var lineDif = endRow - startRow;\n var colDiff = -start.column + end.column;\n for (; i < n; i++) {\n var r = ranges[i];\n if (r.start.row > startRow)\n break;\n if (r.start.row == startRow && r.start.column >= start.column) {\n if (r.start.column == start.column && this.$bias <= 0) {\n }\n else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n if (r.end.row == startRow && r.end.column >= start.column) {\n if (r.end.column == start.column && this.$bias < 0) {\n continue;\n }\n if (r.end.column == start.column && colDiff > 0 && i < n - 1) {\n if (r.end.column > r.start.column && r.end.column == ranges[i + 1].start.column)\n r.end.column -= colDiff;\n }\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n }\n else {\n var lineDif = startRow - endRow;\n var colDiff = start.column - end.column;\n for (; i < n; i++) {\n var r = ranges[i];\n if (r.start.row > endRow)\n break;\n if (r.end.row < endRow\n && (startRow < r.end.row\n || startRow == r.end.row && start.column < r.end.column)) {\n r.end.row = startRow;\n r.end.column = start.column;\n }\n else if (r.end.row == endRow) {\n if (r.end.column <= end.column) {\n if (lineDif || r.end.column > start.column) {\n r.end.column = start.column;\n r.end.row = start.row;\n }\n }\n else {\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n else if (r.end.row > endRow) {\n r.end.row += lineDif;\n }\n if (r.start.row < endRow\n && (startRow < r.start.row\n || startRow == r.start.row && start.column < r.start.column)) {\n r.start.row = startRow;\n r.start.column = start.column;\n }\n else if (r.start.row == endRow) {\n if (r.start.column <= end.column) {\n if (lineDif || r.start.column > start.column) {\n r.start.column = start.column;\n r.start.row = start.row;\n }\n }\n else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n else if (r.start.row > endRow) {\n r.start.row += lineDif;\n }\n }\n }\n if (lineDif != 0 && i < n) {\n for (; i < n; i++) {\n var r = ranges[i];\n r.start.row += lineDif;\n r.end.row += lineDif;\n }\n }\n };\n return RangeList;\n}());\nRangeList.prototype.comparePoints = comparePoints;\nexports.RangeList = RangeList;\n\n});\n\nace.define(\"ace/edit_session/fold\",[\"require\",\"exports\",\"module\",\"ace/range_list\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar RangeList = require(\"../range_list\").RangeList;\nvar Fold = /** @class */ (function (_super) {\n __extends(Fold, _super);\n function Fold(range, placeholder) {\n var _this = _super.call(this) || this;\n _this.foldLine = null;\n _this.placeholder = placeholder;\n _this.range = range;\n _this.start = range.start;\n _this.end = range.end;\n _this.sameRow = range.start.row == range.end.row;\n _this.subFolds = _this.ranges = [];\n return _this;\n }\n Fold.prototype.toString = function () {\n return '\"' + this.placeholder + '\" ' + this.range.toString();\n };\n Fold.prototype.setFoldLine = function (foldLine) {\n this.foldLine = foldLine;\n this.subFolds.forEach(function (fold) {\n fold.setFoldLine(foldLine);\n });\n };\n Fold.prototype.clone = function () {\n var range = this.range.clone();\n var fold = new Fold(range, this.placeholder);\n this.subFolds.forEach(function (subFold) {\n fold.subFolds.push(subFold.clone());\n });\n fold.collapseChildren = this.collapseChildren;\n return fold;\n };\n Fold.prototype.addSubFold = function (fold) {\n if (this.range.isEqual(fold))\n return;\n consumeRange(fold, this.start);\n var row = fold.start.row, column = fold.start.column;\n for (var i = 0, cmp = -1; i < this.subFolds.length; i++) {\n cmp = this.subFolds[i].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n var afterStart = this.subFolds[i];\n var firstConsumed = 0;\n if (cmp == 0) {\n if (afterStart.range.containsRange(fold))\n return afterStart.addSubFold(fold);\n else\n firstConsumed = 1;\n }\n var row = fold.range.end.row, column = fold.range.end.column;\n for (var j = i, cmp = -1; j < this.subFolds.length; j++) {\n cmp = this.subFolds[j].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n if (cmp == 0)\n j++;\n var consumedFolds = this.subFolds.splice(i, j - i, fold);\n var last = cmp == 0 ? consumedFolds.length - 1 : consumedFolds.length;\n for (var k = firstConsumed; k < last; k++) {\n fold.addSubFold(consumedFolds[k]);\n }\n fold.setFoldLine(this.foldLine);\n return fold;\n };\n Fold.prototype.restoreRange = function (range) {\n return restoreRange(range, this.start);\n };\n return Fold;\n}(RangeList));\nfunction consumePoint(point, anchor) {\n point.row -= anchor.row;\n if (point.row == 0)\n point.column -= anchor.column;\n}\nfunction consumeRange(range, anchor) {\n consumePoint(range.start, anchor);\n consumePoint(range.end, anchor);\n}\nfunction restorePoint(point, anchor) {\n if (point.row == 0)\n point.column += anchor.column;\n point.row += anchor.row;\n}\nfunction restoreRange(range, anchor) {\n restorePoint(range.start, anchor);\n restorePoint(range.end, anchor);\n}\nexports.Fold = Fold;\n\n});\n\nace.define(\"ace/edit_session/folding\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/edit_session/fold_line\",\"ace/edit_session/fold\",\"ace/token_iterator\",\"ace/mouse/mouse_event\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar FoldLine = require(\"./fold_line\").FoldLine;\nvar Fold = require(\"./fold\").Fold;\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar MouseEvent = require(\"../mouse/mouse_event\").MouseEvent;\nfunction Folding() {\n this.getFoldAt = function (row, column, side) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine)\n return null;\n var folds = foldLine.folds;\n for (var i = 0; i < folds.length; i++) {\n var range = folds[i].range;\n if (range.contains(row, column)) {\n if (side == 1 && range.isEnd(row, column) && !range.isEmpty()) {\n continue;\n }\n else if (side == -1 && range.isStart(row, column) && !range.isEmpty()) {\n continue;\n }\n return folds[i];\n }\n }\n };\n this.getFoldsInRange = function (range) {\n var start = range.start;\n var end = range.end;\n var foldLines = this.$foldData;\n var foundFolds = [];\n start.column += 1;\n end.column -= 1;\n for (var i = 0; i < foldLines.length; i++) {\n var cmp = foldLines[i].range.compareRange(range);\n if (cmp == 2) {\n continue;\n }\n else if (cmp == -2) {\n break;\n }\n var folds = foldLines[i].folds;\n for (var j = 0; j < folds.length; j++) {\n var fold = folds[j];\n cmp = fold.range.compareRange(range);\n if (cmp == -2) {\n break;\n }\n else if (cmp == 2) {\n continue;\n }\n else \n if (cmp == 42) {\n break;\n }\n foundFolds.push(fold);\n }\n }\n start.column -= 1;\n end.column += 1;\n return foundFolds;\n };\n this.getFoldsInRangeList = function (ranges) {\n if (Array.isArray(ranges)) {\n var folds = [];\n ranges.forEach(function (range) {\n folds = folds.concat(this.getFoldsInRange(range));\n }, this);\n }\n else {\n var folds = this.getFoldsInRange(ranges);\n }\n return folds;\n };\n this.getAllFolds = function () {\n var folds = [];\n var foldLines = this.$foldData;\n for (var i = 0; i < foldLines.length; i++)\n for (var j = 0; j < foldLines[i].folds.length; j++)\n folds.push(foldLines[i].folds[j]);\n return folds;\n };\n this.getFoldStringAt = function (row, column, trim, foldLine) {\n foldLine = foldLine || this.getFoldLine(row);\n if (!foldLine)\n return null;\n var lastFold = {\n end: { column: 0 }\n };\n var str, fold;\n for (var i = 0; i < foldLine.folds.length; i++) {\n fold = foldLine.folds[i];\n var cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n str = this\n .getLine(fold.start.row)\n .substring(lastFold.end.column, fold.start.column);\n break;\n }\n else if (cmp === 0) {\n return null;\n }\n lastFold = fold;\n }\n if (!str)\n str = this.getLine(fold.start.row).substring(lastFold.end.column);\n if (trim == -1)\n return str.substring(0, column - lastFold.end.column);\n else if (trim == 1)\n return str.substring(column - lastFold.end.column);\n else\n return str;\n };\n this.getFoldLine = function (docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.start.row <= docRow && foldLine.end.row >= docRow) {\n return foldLine;\n }\n else if (foldLine.end.row > docRow) {\n return null;\n }\n }\n return null;\n };\n this.getNextFoldLine = function (docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.end.row >= docRow) {\n return foldLine;\n }\n }\n return null;\n };\n this.getFoldedRowCount = function (first, last) {\n var foldData = this.$foldData, rowCount = last - first + 1;\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i], end = foldLine.end.row, start = foldLine.start.row;\n if (end >= last) {\n if (start < last) {\n if (start >= first)\n rowCount -= last - start;\n else\n rowCount = 0; // in one fold\n }\n break;\n }\n else if (end >= first) {\n if (start >= first) // fold inside range\n rowCount -= end - start;\n else\n rowCount -= end - first + 1;\n }\n }\n return rowCount;\n };\n this.$addFoldLine = function (foldLine) {\n this.$foldData.push(foldLine);\n this.$foldData.sort(function (a, b) {\n return a.start.row - b.start.row;\n });\n return foldLine;\n };\n this.addFold = function (placeholder, range) {\n var foldData = this.$foldData;\n var added = false;\n var fold;\n if (placeholder instanceof Fold)\n fold = placeholder;\n else {\n fold = new Fold(range, placeholder);\n fold.collapseChildren = range.collapseChildren;\n }\n this.$clipRangeToDocument(fold.range);\n var startRow = fold.start.row;\n var startColumn = fold.start.column;\n var endRow = fold.end.row;\n var endColumn = fold.end.column;\n var startFold = this.getFoldAt(startRow, startColumn, 1);\n var endFold = this.getFoldAt(endRow, endColumn, -1);\n if (startFold && endFold == startFold)\n return startFold.addSubFold(fold);\n if (startFold && !startFold.range.isStart(startRow, startColumn))\n this.removeFold(startFold);\n if (endFold && !endFold.range.isEnd(endRow, endColumn))\n this.removeFold(endFold);\n var folds = this.getFoldsInRange(fold.range);\n if (folds.length > 0) {\n this.removeFolds(folds);\n if (!fold.collapseChildren) {\n folds.forEach(function (subFold) {\n fold.addSubFold(subFold);\n });\n }\n }\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (endRow == foldLine.start.row) {\n foldLine.addFold(fold);\n added = true;\n break;\n }\n else if (startRow == foldLine.end.row) {\n foldLine.addFold(fold);\n added = true;\n if (!fold.sameRow) {\n var foldLineNext = foldData[i + 1];\n if (foldLineNext && foldLineNext.start.row == endRow) {\n foldLine.merge(foldLineNext);\n break;\n }\n }\n break;\n }\n else if (endRow <= foldLine.start.row) {\n break;\n }\n }\n if (!added)\n foldLine = this.$addFoldLine(new FoldLine(this.$foldData, fold));\n if (this.$useWrapMode)\n this.$updateWrapData(foldLine.start.row, foldLine.start.row);\n else\n this.$updateRowLengthCache(foldLine.start.row, foldLine.start.row);\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"add\" });\n return fold;\n };\n this.addFolds = function (folds) {\n folds.forEach(function (fold) {\n this.addFold(fold);\n }, this);\n };\n this.removeFold = function (fold) {\n var foldLine = fold.foldLine;\n var startRow = foldLine.start.row;\n var endRow = foldLine.end.row;\n var foldLines = this.$foldData;\n var folds = foldLine.folds;\n if (folds.length == 1) {\n foldLines.splice(foldLines.indexOf(foldLine), 1);\n }\n else \n if (foldLine.range.isEnd(fold.end.row, fold.end.column)) {\n folds.pop();\n foldLine.end.row = folds[folds.length - 1].end.row;\n foldLine.end.column = folds[folds.length - 1].end.column;\n }\n else \n if (foldLine.range.isStart(fold.start.row, fold.start.column)) {\n folds.shift();\n foldLine.start.row = folds[0].start.row;\n foldLine.start.column = folds[0].start.column;\n }\n else \n if (fold.sameRow) {\n folds.splice(folds.indexOf(fold), 1);\n }\n else \n {\n var newFoldLine = foldLine.split(fold.start.row, fold.start.column);\n folds = newFoldLine.folds;\n folds.shift();\n newFoldLine.start.row = folds[0].start.row;\n newFoldLine.start.column = folds[0].start.column;\n }\n if (!this.$updating) {\n if (this.$useWrapMode)\n this.$updateWrapData(startRow, endRow);\n else\n this.$updateRowLengthCache(startRow, endRow);\n }\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"remove\" });\n };\n this.removeFolds = function (folds) {\n var cloneFolds = [];\n for (var i = 0; i < folds.length; i++) {\n cloneFolds.push(folds[i]);\n }\n cloneFolds.forEach(function (fold) {\n this.removeFold(fold);\n }, this);\n this.$modified = true;\n };\n this.expandFold = function (fold) {\n this.removeFold(fold);\n fold.subFolds.forEach(function (subFold) {\n fold.restoreRange(subFold);\n this.addFold(subFold);\n }, this);\n if (fold.collapseChildren > 0) {\n this.foldAll(fold.start.row + 1, fold.end.row, fold.collapseChildren - 1);\n }\n fold.subFolds = [];\n };\n this.expandFolds = function (folds) {\n folds.forEach(function (fold) {\n this.expandFold(fold);\n }, this);\n };\n this.unfold = function (location, expandInner) {\n var range, folds;\n if (location == null) {\n range = new Range(0, 0, this.getLength(), 0);\n if (expandInner == null)\n expandInner = true;\n }\n else if (typeof location == \"number\") {\n range = new Range(location, 0, location, this.getLine(location).length);\n }\n else if (\"row\" in location) {\n range = Range.fromPoints(location, location);\n }\n else if (Array.isArray(location)) {\n folds = [];\n location.forEach(function (range) {\n folds = folds.concat(this.unfold(range));\n }, this);\n return folds;\n }\n else {\n range = location;\n }\n folds = this.getFoldsInRangeList(range);\n var outermostFolds = folds;\n while (folds.length == 1\n && Range.comparePoints(folds[0].start, range.start) < 0\n && Range.comparePoints(folds[0].end, range.end) > 0) {\n this.expandFolds(folds);\n folds = this.getFoldsInRangeList(range);\n }\n if (expandInner != false) {\n this.removeFolds(folds);\n }\n else {\n this.expandFolds(folds);\n }\n if (outermostFolds.length)\n return outermostFolds;\n };\n this.isRowFolded = function (docRow, startFoldRow) {\n return !!this.getFoldLine(docRow, startFoldRow);\n };\n this.getRowFoldEnd = function (docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.end.row : docRow;\n };\n this.getRowFoldStart = function (docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.start.row : docRow;\n };\n this.getFoldDisplayLine = function (foldLine, endRow, endColumn, startRow, startColumn) {\n if (startRow == null)\n startRow = foldLine.start.row;\n if (startColumn == null)\n startColumn = 0;\n if (endRow == null)\n endRow = foldLine.end.row;\n if (endColumn == null)\n endColumn = this.getLine(endRow).length;\n var doc = this.doc;\n var textLine = \"\";\n foldLine.walk(function (placeholder, row, column, lastColumn) {\n if (row < startRow)\n return;\n if (row == startRow) {\n if (column < startColumn)\n return;\n lastColumn = Math.max(startColumn, lastColumn);\n }\n if (placeholder != null) {\n textLine += placeholder;\n }\n else {\n textLine += doc.getLine(row).substring(lastColumn, column);\n }\n }, endRow, endColumn);\n return textLine;\n };\n this.getDisplayLine = function (row, endColumn, startRow, startColumn) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine) {\n var line;\n line = this.doc.getLine(row);\n return line.substring(startColumn || 0, endColumn || line.length);\n }\n else {\n return this.getFoldDisplayLine(foldLine, row, endColumn, startRow, startColumn);\n }\n };\n this.$cloneFoldData = function () {\n var fd = [];\n fd = this.$foldData.map(function (foldLine) {\n var folds = foldLine.folds.map(function (fold) {\n return fold.clone();\n });\n return new FoldLine(fd, folds);\n });\n return fd;\n };\n this.toggleFold = function (tryToUnfold) {\n var selection = this.selection;\n var range = selection.getRange();\n var fold;\n var bracketPos;\n if (range.isEmpty()) {\n var cursor = range.start;\n fold = this.getFoldAt(cursor.row, cursor.column);\n if (fold) {\n this.expandFold(fold);\n return;\n }\n else if (bracketPos = this.findMatchingBracket(cursor)) {\n if (range.comparePoint(bracketPos) == 1) {\n range.end = bracketPos;\n }\n else {\n range.start = bracketPos;\n range.start.column++;\n range.end.column--;\n }\n }\n else if (bracketPos = this.findMatchingBracket({ row: cursor.row, column: cursor.column + 1 })) {\n if (range.comparePoint(bracketPos) == 1)\n range.end = bracketPos;\n else\n range.start = bracketPos;\n range.start.column++;\n }\n else {\n range = this.getCommentFoldRange(cursor.row, cursor.column) || range;\n }\n }\n else {\n var folds = this.getFoldsInRange(range);\n if (tryToUnfold && folds.length) {\n this.expandFolds(folds);\n return;\n }\n else if (folds.length == 1) {\n fold = folds[0];\n }\n }\n if (!fold)\n fold = this.getFoldAt(range.start.row, range.start.column);\n if (fold && fold.range.toString() == range.toString()) {\n this.expandFold(fold);\n return;\n }\n var placeholder = \"...\";\n if (!range.isMultiLine()) {\n placeholder = this.getTextRange(range);\n if (placeholder.length < 4)\n return;\n placeholder = placeholder.trim().substring(0, 2) + \"..\";\n }\n this.addFold(placeholder, range);\n };\n this.getCommentFoldRange = function (row, column, dir) {\n var iterator = new TokenIterator(this, row, column);\n var token = iterator.getCurrentToken();\n var type = token && token.type;\n if (token && /^comment|string/.test(type)) {\n type = type.match(/comment|string/)[0];\n if (type == \"comment\")\n type += \"|doc-start|\\\\.doc\";\n var re = new RegExp(type);\n var range = new Range();\n if (dir != 1) {\n do {\n token = iterator.stepBackward();\n } while (token && re.test(token.type) && !/^comment.end/.test(token.type));\n token = iterator.stepForward();\n }\n range.start.row = iterator.getCurrentTokenRow();\n range.start.column = iterator.getCurrentTokenColumn() + (/^comment.start/.test(token.type) ? token.value.length : 2);\n iterator = new TokenIterator(this, row, column);\n if (dir != -1) {\n var lastRow = -1;\n do {\n token = iterator.stepForward();\n if (lastRow == -1) {\n var state = this.getState(iterator.$row);\n if (!re.test(state))\n lastRow = iterator.$row;\n }\n else if (iterator.$row > lastRow) {\n break;\n }\n } while (token && re.test(token.type) && !/^comment.start/.test(token.type));\n token = iterator.stepBackward();\n }\n else\n token = iterator.getCurrentToken();\n range.end.row = iterator.getCurrentTokenRow();\n range.end.column = iterator.getCurrentTokenColumn();\n if (!/^comment.end/.test(token.type)) {\n range.end.column += token.value.length - 2;\n }\n return range;\n }\n };\n this.foldAll = function (startRow, endRow, depth, test) {\n if (depth == undefined)\n depth = 100000; // JSON.stringify doesn't hanle Infinity\n var foldWidgets = this.foldWidgets;\n if (!foldWidgets)\n return; // mode doesn't support folding\n endRow = endRow || this.getLength();\n startRow = startRow || 0;\n for (var row = startRow; row < endRow; row++) {\n if (foldWidgets[row] == null)\n foldWidgets[row] = this.getFoldWidget(row);\n if (foldWidgets[row] != \"start\")\n continue;\n if (test && !test(row))\n continue;\n var range = this.getFoldWidgetRange(row);\n if (range && range.isMultiLine()\n && range.end.row <= endRow\n && range.start.row >= startRow) {\n row = range.end.row;\n range.collapseChildren = depth;\n this.addFold(\"...\", range);\n }\n }\n };\n this.foldToLevel = function (level) {\n this.foldAll();\n while (level-- > 0)\n this.unfold(null, false);\n };\n this.foldAllComments = function () {\n var session = this;\n this.foldAll(null, null, null, function (row) {\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token.type == \"text\" && /^\\s+$/.test(token.value))\n continue;\n if (/comment/.test(token.type))\n return true;\n return false;\n }\n });\n };\n this.$foldStyles = {\n \"manual\": 1,\n \"markbegin\": 1,\n \"markbeginend\": 1\n };\n this.$foldStyle = \"markbegin\";\n this.setFoldStyle = function (style) {\n if (!this.$foldStyles[style])\n throw new Error(\"invalid fold style: \" + style + \"[\" + Object.keys(this.$foldStyles).join(\", \") + \"]\");\n if (this.$foldStyle == style)\n return;\n this.$foldStyle = style;\n if (style == \"manual\")\n this.unfold();\n var mode = this.$foldMode;\n this.$setFolding(null);\n this.$setFolding(mode);\n };\n this.$setFolding = function (foldMode) {\n if (this.$foldMode == foldMode)\n return;\n this.$foldMode = foldMode;\n this.off('change', this.$updateFoldWidgets);\n this.off('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n this._signal(\"changeAnnotation\");\n if (!foldMode || this.$foldStyle == \"manual\") {\n this.foldWidgets = null;\n return;\n }\n this.foldWidgets = [];\n this.getFoldWidget = foldMode.getFoldWidget.bind(foldMode, this, this.$foldStyle);\n this.getFoldWidgetRange = foldMode.getFoldWidgetRange.bind(foldMode, this, this.$foldStyle);\n this.$updateFoldWidgets = this.updateFoldWidgets.bind(this);\n this.$tokenizerUpdateFoldWidgets = this.tokenizerUpdateFoldWidgets.bind(this);\n this.on('change', this.$updateFoldWidgets);\n this.on('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n };\n this.getParentFoldRangeData = function (row, ignoreCurrent) {\n var fw = this.foldWidgets;\n if (!fw || (ignoreCurrent && fw[row]))\n return {};\n var i = row - 1, firstRange;\n while (i >= 0) {\n var c = fw[i];\n if (c == null)\n c = fw[i] = this.getFoldWidget(i);\n if (c == \"start\") {\n var range = this.getFoldWidgetRange(i);\n if (!firstRange)\n firstRange = range;\n if (range && range.end.row >= row)\n break;\n }\n i--;\n }\n return {\n range: i !== -1 && range,\n firstRange: firstRange\n };\n };\n this.onFoldWidgetClick = function (row, e) {\n if (e instanceof MouseEvent)\n e = e.domEvent;\n var options = {\n children: e.shiftKey,\n all: e.ctrlKey || e.metaKey,\n siblings: e.altKey\n };\n var range = this.$toggleFoldWidget(row, options);\n if (!range) {\n var el = (e.target || e.srcElement);\n if (el && /ace_fold-widget/.test(el.className))\n el.className += \" ace_invalid\";\n }\n };\n this.$toggleFoldWidget = function (row, options) {\n if (!this.getFoldWidget)\n return;\n var type = this.getFoldWidget(row);\n var line = this.getLine(row);\n var dir = type === \"end\" ? -1 : 1;\n var fold = this.getFoldAt(row, dir === -1 ? 0 : line.length, dir);\n if (fold) {\n if (options.children || options.all)\n this.removeFold(fold);\n else\n this.expandFold(fold);\n return fold;\n }\n var range = this.getFoldWidgetRange(row, true);\n if (range && !range.isMultiLine()) {\n fold = this.getFoldAt(range.start.row, range.start.column, 1);\n if (fold && range.isEqual(fold.range)) {\n this.removeFold(fold);\n return fold;\n }\n }\n if (options.siblings) {\n var data = this.getParentFoldRangeData(row);\n if (data.range) {\n var startRow = data.range.start.row + 1;\n var endRow = data.range.end.row;\n }\n this.foldAll(startRow, endRow, options.all ? 10000 : 0);\n }\n else if (options.children) {\n endRow = range ? range.end.row : this.getLength();\n this.foldAll(row + 1, endRow, options.all ? 10000 : 0);\n }\n else if (range) {\n if (options.all)\n range.collapseChildren = 10000;\n this.addFold(\"...\", range);\n }\n return range;\n };\n this.toggleFoldWidget = function (toggleParent) {\n var row = this.selection.getCursor().row;\n row = this.getRowFoldStart(row);\n var range = this.$toggleFoldWidget(row, {});\n if (range)\n return;\n var data = this.getParentFoldRangeData(row, true);\n range = data.range || data.firstRange;\n if (range) {\n row = range.start.row;\n var fold = this.getFoldAt(row, this.getLine(row).length, 1);\n if (fold) {\n this.removeFold(fold);\n }\n else {\n this.addFold(\"...\", range);\n }\n }\n };\n this.updateFoldWidgets = function (delta) {\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n this.foldWidgets[firstRow] = null;\n }\n else if (delta.action == 'remove') {\n this.foldWidgets.splice(firstRow, len + 1, null);\n }\n else {\n var args = Array(len + 1);\n args.unshift(firstRow, 1);\n this.foldWidgets.splice.apply(this.foldWidgets, args);\n }\n };\n this.tokenizerUpdateFoldWidgets = function (e) {\n var rows = e.data;\n if (rows.first != rows.last) {\n if (this.foldWidgets.length > rows.first)\n this.foldWidgets.splice(rows.first, this.foldWidgets.length);\n }\n };\n}\nexports.Folding = Folding;\n\n});\n\nace.define(\"ace/edit_session/bracket_match\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar Range = require(\"../range\").Range;\nfunction BracketMatch() {\n this.findMatchingBracket = function (position, chr) {\n if (position.column == 0)\n return null;\n var charBeforeCursor = chr || this.getLine(position.row).charAt(position.column - 1);\n if (charBeforeCursor == \"\")\n return null;\n var match = charBeforeCursor.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match)\n return null;\n if (match[1])\n return this.$findClosingBracket(match[1], position);\n else\n return this.$findOpeningBracket(match[2], position);\n };\n this.getBracketRange = function (pos) {\n var line = this.getLine(pos.row);\n var before = true, range;\n var chr = line.charAt(pos.column - 1);\n var match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match) {\n chr = line.charAt(pos.column);\n pos = { row: pos.row, column: pos.column + 1 };\n match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n before = false;\n }\n if (!match)\n return null;\n if (match[1]) {\n var bracketPos = this.$findClosingBracket(match[1], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(pos, bracketPos);\n if (!before) {\n range.end.column++;\n range.start.column--;\n }\n range.cursor = range.end;\n }\n else {\n var bracketPos = this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(bracketPos, pos);\n if (!before) {\n range.start.column++;\n range.end.column--;\n }\n range.cursor = range.start;\n }\n return range;\n };\n this.getMatchingBracketRanges = function (pos, isBackwards) {\n var line = this.getLine(pos.row);\n var bracketsRegExp = /([\\(\\[\\{])|([\\)\\]\\}])/;\n var chr = !isBackwards && line.charAt(pos.column - 1);\n var match = chr && chr.match(bracketsRegExp);\n if (!match) {\n chr = (isBackwards === undefined || isBackwards) && line.charAt(pos.column);\n pos = {\n row: pos.row,\n column: pos.column + 1\n };\n match = chr && chr.match(bracketsRegExp);\n }\n if (!match)\n return null;\n var startRange = new Range(pos.row, pos.column - 1, pos.row, pos.column);\n var bracketPos = match[1] ? this.$findClosingBracket(match[1], pos)\n : this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return [startRange];\n var endRange = new Range(bracketPos.row, bracketPos.column, bracketPos.row, bracketPos.column + 1);\n return [startRange, endRange];\n };\n this.$brackets = {\n \")\": \"(\",\n \"(\": \")\",\n \"]\": \"[\",\n \"[\": \"]\",\n \"{\": \"}\",\n \"}\": \"{\",\n \"<\": \">\",\n \">\": \"<\"\n };\n this.$findOpeningBracket = function (bracket, position, typeRe) {\n var openBracket = this.$brackets[bracket];\n var depth = 1;\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n if (!typeRe) {\n typeRe = new RegExp(\"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"rparen\", \".paren\")\n .replace(/\\b(?:end)\\b/, \"(?:start|begin|end)\")\n .replace(/-close\\b/, \"-(close|open)\")\n + \")+\");\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn() - 2;\n var value = token.value;\n while (true) {\n while (valueIndex >= 0) {\n var chr = value.charAt(valueIndex);\n if (chr == openBracket) {\n depth -= 1;\n if (depth == 0) {\n return { row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn() };\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex -= 1;\n }\n do {\n token = iterator.stepBackward();\n } while (token && !typeRe.test(token.type));\n if (token == null)\n break;\n value = token.value;\n valueIndex = value.length - 1;\n }\n return null;\n };\n this.$findClosingBracket = function (bracket, position, typeRe) {\n var closingBracket = this.$brackets[bracket];\n var depth = 1;\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n if (!typeRe) {\n typeRe = new RegExp(\"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"lparen\", \".paren\")\n .replace(/\\b(?:start|begin)\\b/, \"(?:start|begin|end)\")\n .replace(/-open\\b/, \"-(close|open)\")\n + \")+\");\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn();\n while (true) {\n var value = token.value;\n var valueLength = value.length;\n while (valueIndex < valueLength) {\n var chr = value.charAt(valueIndex);\n if (chr == closingBracket) {\n depth -= 1;\n if (depth == 0) {\n return { row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn() };\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex += 1;\n }\n do {\n token = iterator.stepForward();\n } while (token && !typeRe.test(token.type));\n if (token == null)\n break;\n valueIndex = 0;\n }\n return null;\n };\n this.getMatchingTags = function (pos) {\n var iterator = new TokenIterator(this, pos.row, pos.column);\n var token = this.$findTagName(iterator);\n if (!token)\n return;\n var prevToken = iterator.stepBackward();\n if (prevToken.value === '<') {\n return this.$findClosingTag(iterator, token);\n }\n else {\n return this.$findOpeningTag(iterator, token);\n }\n };\n this.$findTagName = function (iterator) {\n var token = iterator.getCurrentToken();\n var found = false;\n var backward = false;\n if (token && token.type.indexOf('tag-name') === -1) {\n do {\n if (backward)\n token = iterator.stepBackward();\n else\n token = iterator.stepForward();\n if (token) {\n if (token.value === \"/>\") {\n backward = true;\n }\n else if (token.type.indexOf('tag-name') !== -1) {\n found = true;\n }\n }\n } while (token && !found);\n }\n return token;\n };\n this.$findClosingTag = function (iterator, token) {\n var prevToken;\n var currentTag = token.value;\n var tag = token.value;\n var depth = 0;\n var openTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1);\n token = iterator.stepForward();\n var openTagName = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + token.value.length);\n var foundOpenTagEnd = false;\n do {\n prevToken = token;\n token = iterator.stepForward();\n if (token) {\n if (token.value === '>' && !foundOpenTagEnd) {\n var openTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for `>`\n foundOpenTagEnd = true;\n }\n if (token.type.indexOf('tag-name') !== -1) {\n currentTag = token.value;\n if (tag === currentTag) {\n if (prevToken.value === '<') {\n depth++;\n }\n else if (prevToken.value === '') {\n var closeTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n }\n else {\n return;\n }\n }\n }\n }\n }\n else if (tag === currentTag && token.value === '/>') { // self-closing tag\n depth--;\n if (depth < 0) { //found self-closing tag end\n var closeTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 2);\n var closeTagName = closeTagStart;\n var closeTagEnd = closeTagName;\n var openTagEnd = new Range(openTagName.end.row, openTagName.end.column, openTagName.end.row, openTagName.end.column + 1);\n }\n }\n }\n } while (token && depth >= 0);\n if (openTagStart && openTagEnd && closeTagStart && closeTagEnd && openTagName && closeTagName) {\n return {\n openTag: new Range(openTagStart.start.row, openTagStart.start.column, openTagEnd.end.row, openTagEnd.end.column),\n closeTag: new Range(closeTagStart.start.row, closeTagStart.start.column, closeTagEnd.end.row, closeTagEnd.end.column),\n openTagName: openTagName,\n closeTagName: closeTagName\n };\n }\n };\n this.$findOpeningTag = function (iterator, token) {\n var prevToken = iterator.getCurrentToken();\n var tag = token.value;\n var depth = 0;\n var startRow = iterator.getCurrentTokenRow();\n var startColumn = iterator.getCurrentTokenColumn();\n var endColumn = startColumn + 2;\n var closeTagStart = new Range(startRow, startColumn, startRow, endColumn); //Range for \")\n return;\n var closeTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n iterator.stepBackward();\n iterator.stepBackward();\n do {\n token = prevToken;\n startRow = iterator.getCurrentTokenRow();\n startColumn = iterator.getCurrentTokenColumn();\n endColumn = startColumn + token.value.length;\n prevToken = iterator.stepBackward();\n if (token) {\n if (token.type.indexOf('tag-name') !== -1) {\n if (tag === token.value) {\n if (prevToken.value === '<') {\n depth++;\n if (depth > 0) { //found opening tag\n var openTagName = new Range(startRow, startColumn, startRow, endColumn);\n var openTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for <\n do {\n token = iterator.stepForward();\n } while (token && token.value !== '>');\n var openTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n }\n }\n else if (prevToken.value === '') { // self-closing tag\n var stepCount = 0;\n var tmpToken = prevToken;\n while (tmpToken) {\n if (tmpToken.type.indexOf('tag-name') !== -1 && tmpToken.value === tag) {\n depth--;\n break;\n }\n else if (tmpToken.value === '<') {\n break;\n }\n tmpToken = iterator.stepBackward();\n stepCount++;\n }\n for (var i = 0; i < stepCount; i++) {\n iterator.stepForward();\n }\n }\n }\n } while (prevToken && depth <= 0);\n if (openTagStart && openTagEnd && closeTagStart && closeTagEnd && openTagName && closeTagName) {\n return {\n openTag: new Range(openTagStart.start.row, openTagStart.start.column, openTagEnd.end.row, openTagEnd.end.column),\n closeTag: new Range(closeTagStart.start.row, closeTagStart.start.column, closeTagEnd.end.row, closeTagEnd.end.column),\n openTagName: openTagName,\n closeTagName: closeTagName\n };\n }\n };\n}\nexports.BracketMatch = BracketMatch;\n\n});\n\nace.define(\"ace/edit_session\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/bidihandler\",\"ace/config\",\"ace/lib/event_emitter\",\"ace/selection\",\"ace/mode/text\",\"ace/range\",\"ace/document\",\"ace/background_tokenizer\",\"ace/search_highlight\",\"ace/undomanager\",\"ace/edit_session/folding\",\"ace/edit_session/bracket_match\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar lang = require(\"./lib/lang\");\nvar BidiHandler = require(\"./bidihandler\").BidiHandler;\nvar config = require(\"./config\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Selection = require(\"./selection\").Selection;\nvar TextMode = require(\"./mode/text\").Mode;\nvar Range = require(\"./range\").Range;\nvar Document = require(\"./document\").Document;\nvar BackgroundTokenizer = require(\"./background_tokenizer\").BackgroundTokenizer;\nvar SearchHighlight = require(\"./search_highlight\").SearchHighlight;\nvar UndoManager = require(\"./undomanager\").UndoManager;\nvar EditSession = /** @class */ (function () {\n function EditSession(text, mode) {\n this.$breakpoints = [];\n this.$decorations = [];\n this.$frontMarkers = {};\n this.$backMarkers = {};\n this.$markerId = 1;\n this.$undoSelect = true;\n this.$foldData = [];\n this.id = \"session\" + (++EditSession.$uid);\n this.$foldData.toString = function () {\n return this.join(\"\\n\");\n };\n this.bgTokenizer = new BackgroundTokenizer((new TextMode()).getTokenizer(), this);\n var _self = this;\n this.bgTokenizer.on(\"update\", function (e) {\n _self._signal(\"tokenizerUpdate\", e);\n });\n this.on(\"changeFold\", this.onChangeFold.bind(this));\n this.$onChange = this.onChange.bind(this);\n if (typeof text != \"object\" || !text.getLine)\n text = new Document(text);\n this.setDocument(text);\n this.selection = new Selection(this);\n this.$bidiHandler = new BidiHandler(this);\n config.resetOptions(this);\n this.setMode(mode);\n config._signal(\"session\", this);\n this.destroyed = false;\n }\n EditSession.prototype.setDocument = function (doc) {\n if (this.doc)\n this.doc.off(\"change\", this.$onChange);\n this.doc = doc;\n doc.on(\"change\", this.$onChange, true);\n this.bgTokenizer.setDocument(this.getDocument());\n this.resetCaches();\n };\n EditSession.prototype.getDocument = function () {\n return this.doc;\n };\n EditSession.prototype.$resetRowCache = function (docRow) {\n if (!docRow) {\n this.$docRowCache = [];\n this.$screenRowCache = [];\n return;\n }\n var l = this.$docRowCache.length;\n var i = this.$getRowCacheIndex(this.$docRowCache, docRow) + 1;\n if (l > i) {\n this.$docRowCache.splice(i, l);\n this.$screenRowCache.splice(i, l);\n }\n };\n EditSession.prototype.$getRowCacheIndex = function (cacheArray, val) {\n var low = 0;\n var hi = cacheArray.length - 1;\n while (low <= hi) {\n var mid = (low + hi) >> 1;\n var c = cacheArray[mid];\n if (val > c)\n low = mid + 1;\n else if (val < c)\n hi = mid - 1;\n else\n return mid;\n }\n return low - 1;\n };\n EditSession.prototype.resetCaches = function () {\n this.$modified = true;\n this.$wrapData = [];\n this.$rowLengthCache = [];\n this.$resetRowCache(0);\n if (!this.destroyed)\n this.bgTokenizer.start(0);\n };\n EditSession.prototype.onChangeFold = function (e) {\n var fold = e.data;\n this.$resetRowCache(fold.start.row);\n };\n EditSession.prototype.onChange = function (delta) {\n this.$modified = true;\n this.$bidiHandler.onChange(delta);\n this.$resetRowCache(delta.start.row);\n var removedFolds = this.$updateInternalDataOnChange(delta);\n if (!this.$fromUndo && this.$undoManager) {\n if (removedFolds && removedFolds.length) {\n this.$undoManager.add({\n action: \"removeFolds\",\n folds: removedFolds\n }, this.mergeUndoDeltas);\n this.mergeUndoDeltas = true;\n }\n this.$undoManager.add(delta, this.mergeUndoDeltas);\n this.mergeUndoDeltas = true;\n this.$informUndoManager.schedule();\n }\n this.bgTokenizer.$updateOnChange(delta);\n this._signal(\"change\", delta);\n };\n EditSession.prototype.setValue = function (text) {\n this.doc.setValue(text);\n this.selection.moveTo(0, 0);\n this.$resetRowCache(0);\n this.setUndoManager(this.$undoManager);\n this.getUndoManager().reset();\n };\n EditSession.fromJSON = function (session) {\n session = JSON.parse(session);\n var undoManager = new UndoManager();\n undoManager.$undoStack = session.history.undo;\n undoManager.$redoStack = session.history.redo;\n undoManager.mark = session.history.mark;\n undoManager.$rev = session.history.rev;\n var editSession = new EditSession(session.value);\n session.folds.forEach(function (fold) {\n editSession.addFold(\"...\", Range.fromPoints(fold.start, fold.end));\n });\n editSession.setAnnotations(session.annotations);\n editSession.setBreakpoints(session.breakpoints);\n editSession.setMode(session.mode);\n editSession.setScrollLeft(session.scrollLeft);\n editSession.setScrollTop(session.scrollTop);\n editSession.setUndoManager(undoManager);\n editSession.selection.fromJSON(session.selection);\n return editSession;\n };\n EditSession.prototype.toJSON = function () {\n return {\n annotations: this.$annotations,\n breakpoints: this.$breakpoints,\n folds: this.getAllFolds().map(function (fold) {\n return fold.range;\n }),\n history: this.getUndoManager(),\n mode: this.$mode.$id,\n scrollLeft: this.$scrollLeft,\n scrollTop: this.$scrollTop,\n selection: this.selection.toJSON(),\n value: this.doc.getValue()\n };\n };\n EditSession.prototype.toString = function () {\n return this.doc.getValue();\n };\n EditSession.prototype.getSelection = function () {\n return this.selection;\n };\n EditSession.prototype.getState = function (row) {\n return this.bgTokenizer.getState(row);\n };\n EditSession.prototype.getTokens = function (row) {\n return this.bgTokenizer.getTokens(row);\n };\n EditSession.prototype.getTokenAt = function (row, column) {\n var tokens = this.bgTokenizer.getTokens(row);\n var token, c = 0;\n if (column == null) {\n var i = tokens.length - 1;\n c = this.getLine(row).length;\n }\n else {\n for (var i = 0; i < tokens.length; i++) {\n c += tokens[i].value.length;\n if (c >= column)\n break;\n }\n }\n token = tokens[i];\n if (!token)\n return null;\n token.index = i;\n token.start = c - token.value.length;\n return token;\n };\n EditSession.prototype.setUndoManager = function (undoManager) {\n this.$undoManager = undoManager;\n if (this.$informUndoManager)\n this.$informUndoManager.cancel();\n if (undoManager) {\n var self = this;\n undoManager.addSession(this);\n this.$syncInformUndoManager = function () {\n self.$informUndoManager.cancel();\n self.mergeUndoDeltas = false;\n };\n this.$informUndoManager = lang.delayedCall(this.$syncInformUndoManager);\n }\n else {\n this.$syncInformUndoManager = function () { };\n }\n };\n EditSession.prototype.markUndoGroup = function () {\n if (this.$syncInformUndoManager)\n this.$syncInformUndoManager();\n };\n EditSession.prototype.getUndoManager = function () {\n return this.$undoManager || this.$defaultUndoManager;\n };\n EditSession.prototype.getTabString = function () {\n if (this.getUseSoftTabs()) {\n return lang.stringRepeat(\" \", this.getTabSize());\n }\n else {\n return \"\\t\";\n }\n };\n EditSession.prototype.setUseSoftTabs = function (val) {\n this.setOption(\"useSoftTabs\", val);\n };\n EditSession.prototype.getUseSoftTabs = function () {\n return this.$useSoftTabs && !this.$mode.$indentWithTabs;\n };\n EditSession.prototype.setTabSize = function (tabSize) {\n this.setOption(\"tabSize\", tabSize);\n };\n EditSession.prototype.getTabSize = function () {\n return this.$tabSize;\n };\n EditSession.prototype.isTabStop = function (position) {\n return this.$useSoftTabs && (position.column % this.$tabSize === 0);\n };\n EditSession.prototype.setNavigateWithinSoftTabs = function (navigateWithinSoftTabs) {\n this.setOption(\"navigateWithinSoftTabs\", navigateWithinSoftTabs);\n };\n EditSession.prototype.getNavigateWithinSoftTabs = function () {\n return this.$navigateWithinSoftTabs;\n };\n EditSession.prototype.setOverwrite = function (overwrite) {\n this.setOption(\"overwrite\", overwrite);\n };\n EditSession.prototype.getOverwrite = function () {\n return this.$overwrite;\n };\n EditSession.prototype.toggleOverwrite = function () {\n this.setOverwrite(!this.$overwrite);\n };\n EditSession.prototype.addGutterDecoration = function (row, className) {\n if (!this.$decorations[row])\n this.$decorations[row] = \"\";\n this.$decorations[row] += \" \" + className;\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.removeGutterDecoration = function (row, className) {\n this.$decorations[row] = (this.$decorations[row] || \"\").replace(\" \" + className, \"\");\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.getBreakpoints = function () {\n return this.$breakpoints;\n };\n EditSession.prototype.setBreakpoints = function (rows) {\n this.$breakpoints = [];\n for (var i = 0; i < rows.length; i++) {\n this.$breakpoints[rows[i]] = \"ace_breakpoint\";\n }\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.clearBreakpoints = function () {\n this.$breakpoints = [];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.setBreakpoint = function (row, className) {\n if (className === undefined)\n className = \"ace_breakpoint\";\n if (className)\n this.$breakpoints[row] = className;\n else\n delete this.$breakpoints[row];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.clearBreakpoint = function (row) {\n delete this.$breakpoints[row];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.addMarker = function (range, clazz, type, inFront) {\n var id = this.$markerId++;\n var marker = {\n range: range,\n type: type || \"line\",\n renderer: typeof type == \"function\" ? type : null,\n clazz: clazz,\n inFront: !!inFront,\n id: id\n };\n if (inFront) {\n this.$frontMarkers[id] = marker;\n this._signal(\"changeFrontMarker\");\n }\n else {\n this.$backMarkers[id] = marker;\n this._signal(\"changeBackMarker\");\n }\n return id;\n };\n EditSession.prototype.addDynamicMarker = function (marker, inFront) {\n if (!marker.update)\n return;\n var id = this.$markerId++;\n marker.id = id;\n marker.inFront = !!inFront;\n if (inFront) {\n this.$frontMarkers[id] = marker;\n this._signal(\"changeFrontMarker\");\n }\n else {\n this.$backMarkers[id] = marker;\n this._signal(\"changeBackMarker\");\n }\n return marker;\n };\n EditSession.prototype.removeMarker = function (markerId) {\n var marker = this.$frontMarkers[markerId] || this.$backMarkers[markerId];\n if (!marker)\n return;\n var markers = marker.inFront ? this.$frontMarkers : this.$backMarkers;\n delete (markers[markerId]);\n this._signal(marker.inFront ? \"changeFrontMarker\" : \"changeBackMarker\");\n };\n EditSession.prototype.getMarkers = function (inFront) {\n return inFront ? this.$frontMarkers : this.$backMarkers;\n };\n EditSession.prototype.highlight = function (re) {\n if (!this.$searchHighlight) {\n var highlight = new SearchHighlight(null, \"ace_selected-word\", \"text\");\n this.$searchHighlight = this.addDynamicMarker(highlight);\n }\n this.$searchHighlight.setRegexp(re);\n };\n EditSession.prototype.highlightLines = function (startRow, endRow, clazz, inFront) {\n if (typeof endRow != \"number\") {\n clazz = endRow;\n endRow = startRow;\n }\n if (!clazz)\n clazz = \"ace_step\";\n var range = new Range(startRow, 0, endRow, Infinity);\n range.id = this.addMarker(range, clazz, \"fullLine\", inFront);\n return range;\n };\n EditSession.prototype.setAnnotations = function (annotations) {\n this.$annotations = annotations;\n this._signal(\"changeAnnotation\", {});\n };\n EditSession.prototype.getAnnotations = function () {\n return this.$annotations || [];\n };\n EditSession.prototype.clearAnnotations = function () {\n this.setAnnotations([]);\n };\n EditSession.prototype.$detectNewLine = function (text) {\n var match = text.match(/^.*?(\\r?\\n)/m);\n if (match) {\n this.$autoNewLine = match[1];\n }\n else {\n this.$autoNewLine = \"\\n\";\n }\n };\n EditSession.prototype.getWordRange = function (row, column) {\n var line = this.getLine(row);\n var inToken = false;\n if (column > 0)\n inToken = !!line.charAt(column - 1).match(this.tokenRe);\n if (!inToken)\n inToken = !!line.charAt(column).match(this.tokenRe);\n if (inToken)\n var re = this.tokenRe;\n else if (/^\\s+$/.test(line.slice(column - 1, column + 1)))\n var re = /\\s/;\n else\n var re = this.nonTokenRe;\n var start = column;\n if (start > 0) {\n do {\n start--;\n } while (start >= 0 && line.charAt(start).match(re));\n start++;\n }\n var end = column;\n while (end < line.length && line.charAt(end).match(re)) {\n end++;\n }\n return new Range(row, start, row, end);\n };\n EditSession.prototype.getAWordRange = function (row, column) {\n var wordRange = this.getWordRange(row, column);\n var line = this.getLine(wordRange.end.row);\n while (line.charAt(wordRange.end.column).match(/[ \\t]/)) {\n wordRange.end.column += 1;\n }\n return wordRange;\n };\n EditSession.prototype.setNewLineMode = function (newLineMode) {\n this.doc.setNewLineMode(newLineMode);\n };\n EditSession.prototype.getNewLineMode = function () {\n return this.doc.getNewLineMode();\n };\n EditSession.prototype.setUseWorker = function (useWorker) { this.setOption(\"useWorker\", useWorker); };\n EditSession.prototype.getUseWorker = function () { return this.$useWorker; };\n EditSession.prototype.onReloadTokenizer = function (e) {\n var rows = e.data;\n this.bgTokenizer.start(rows.first);\n this._signal(\"tokenizerUpdate\", e);\n };\n EditSession.prototype.setMode = function (mode, cb) {\n if (mode && typeof mode === \"object\") {\n if (mode.getTokenizer)\n return this.$onChangeMode(mode);\n var options = mode;\n var path = options.path;\n }\n else {\n path = mode || \"ace/mode/text\";\n }\n if (!this.$modes[\"ace/mode/text\"])\n this.$modes[\"ace/mode/text\"] = new TextMode();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n cb && cb();\n return;\n }\n this.$modeId = path;\n config.loadModule([\"mode\", path], function (m) {\n if (this.$modeId !== path)\n return cb && cb();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n }\n else if (m && m.Mode) {\n m = new m.Mode(options);\n if (!options) {\n this.$modes[path] = m;\n m.$id = path;\n }\n this.$onChangeMode(m);\n }\n cb && cb();\n }.bind(this));\n if (!this.$mode)\n this.$onChangeMode(this.$modes[\"ace/mode/text\"], true);\n };\n EditSession.prototype.$onChangeMode = function (mode, $isPlaceholder) {\n if (!$isPlaceholder)\n this.$modeId = mode.$id;\n if (this.$mode === mode)\n return;\n var oldMode = this.$mode;\n this.$mode = mode;\n this.$stopWorker();\n if (this.$useWorker)\n this.$startWorker();\n var tokenizer = mode.getTokenizer();\n if (tokenizer.on !== undefined) {\n var onReloadTokenizer = this.onReloadTokenizer.bind(this);\n tokenizer.on(\"update\", onReloadTokenizer);\n }\n this.bgTokenizer.setTokenizer(tokenizer);\n this.bgTokenizer.setDocument(this.getDocument());\n this.tokenRe = mode.tokenRe;\n this.nonTokenRe = mode.nonTokenRe;\n if (!$isPlaceholder) {\n if (mode.attachToSession)\n mode.attachToSession(this);\n this.$options.wrapMethod.set.call(this, this.$wrapMethod);\n this.$setFolding(mode.foldingRules);\n this.bgTokenizer.start(0);\n this._emit(\"changeMode\", { oldMode: oldMode, mode: mode });\n }\n };\n EditSession.prototype.$stopWorker = function () {\n if (this.$worker) {\n this.$worker.terminate();\n this.$worker = null;\n }\n };\n EditSession.prototype.$startWorker = function () {\n try {\n this.$worker = this.$mode.createWorker(this);\n }\n catch (e) {\n config.warn(\"Could not load worker\", e);\n this.$worker = null;\n }\n };\n EditSession.prototype.getMode = function () {\n return this.$mode;\n };\n EditSession.prototype.setScrollTop = function (scrollTop) {\n if (this.$scrollTop === scrollTop || isNaN(scrollTop))\n return;\n this.$scrollTop = scrollTop;\n this._signal(\"changeScrollTop\", scrollTop);\n };\n EditSession.prototype.getScrollTop = function () {\n return this.$scrollTop;\n };\n EditSession.prototype.setScrollLeft = function (scrollLeft) {\n if (this.$scrollLeft === scrollLeft || isNaN(scrollLeft))\n return;\n this.$scrollLeft = scrollLeft;\n this._signal(\"changeScrollLeft\", scrollLeft);\n };\n EditSession.prototype.getScrollLeft = function () {\n return this.$scrollLeft;\n };\n EditSession.prototype.getScreenWidth = function () {\n this.$computeWidth();\n if (this.lineWidgets)\n return Math.max(this.getLineWidgetMaxWidth(), this.screenWidth);\n return this.screenWidth;\n };\n EditSession.prototype.getLineWidgetMaxWidth = function () {\n if (this.lineWidgetsWidth != null)\n return this.lineWidgetsWidth;\n var width = 0;\n this.lineWidgets.forEach(function (w) {\n if (w && w.screenWidth > width)\n width = w.screenWidth;\n });\n return this.lineWidgetWidth = width;\n };\n EditSession.prototype.$computeWidth = function (force) {\n if (this.$modified || force) {\n this.$modified = false;\n if (this.$useWrapMode)\n return this.screenWidth = this.$wrapLimit;\n var lines = this.doc.getAllLines();\n var cache = this.$rowLengthCache;\n var longestScreenLine = 0;\n var foldIndex = 0;\n var foldLine = this.$foldData[foldIndex];\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n var len = lines.length;\n for (var i = 0; i < len; i++) {\n if (i > foldStart) {\n i = foldLine.end.row + 1;\n if (i >= len)\n break;\n foldLine = this.$foldData[foldIndex++];\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (cache[i] == null)\n cache[i] = this.$getStringScreenWidth(lines[i])[0];\n if (cache[i] > longestScreenLine)\n longestScreenLine = cache[i];\n }\n this.screenWidth = longestScreenLine;\n }\n };\n EditSession.prototype.getLine = function (row) {\n return this.doc.getLine(row);\n };\n EditSession.prototype.getLines = function (firstRow, lastRow) {\n return this.doc.getLines(firstRow, lastRow);\n };\n EditSession.prototype.getLength = function () {\n return this.doc.getLength();\n };\n EditSession.prototype.getTextRange = function (range) {\n return this.doc.getTextRange(range || this.selection.getRange());\n };\n EditSession.prototype.insert = function (position, text) {\n return this.doc.insert(position, text);\n };\n EditSession.prototype.remove = function (range) {\n return this.doc.remove(range);\n };\n EditSession.prototype.removeFullLines = function (firstRow, lastRow) {\n return this.doc.removeFullLines(firstRow, lastRow);\n };\n EditSession.prototype.undoChanges = function (deltas, dontSelect) {\n if (!deltas.length)\n return;\n this.$fromUndo = true;\n for (var i = deltas.length - 1; i != -1; i--) {\n var delta = deltas[i];\n if (delta.action == \"insert\" || delta.action == \"remove\") {\n this.doc.revertDelta(delta);\n }\n else if (delta.folds) {\n this.addFolds(delta.folds);\n }\n }\n if (!dontSelect && this.$undoSelect) {\n if (deltas.selectionBefore)\n this.selection.fromJSON(deltas.selectionBefore);\n else\n this.selection.setRange(this.$getUndoSelection(deltas, true));\n }\n this.$fromUndo = false;\n };\n EditSession.prototype.redoChanges = function (deltas, dontSelect) {\n if (!deltas.length)\n return;\n this.$fromUndo = true;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (delta.action == \"insert\" || delta.action == \"remove\") {\n this.doc.$safeApplyDelta(delta);\n }\n }\n if (!dontSelect && this.$undoSelect) {\n if (deltas.selectionAfter)\n this.selection.fromJSON(deltas.selectionAfter);\n else\n this.selection.setRange(this.$getUndoSelection(deltas, false));\n }\n this.$fromUndo = false;\n };\n EditSession.prototype.setUndoSelect = function (enable) {\n this.$undoSelect = enable;\n };\n EditSession.prototype.$getUndoSelection = function (deltas, isUndo) {\n function isInsert(delta) {\n return isUndo ? delta.action !== \"insert\" : delta.action === \"insert\";\n }\n var range, point;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (!delta.start)\n continue; // skip folds\n if (!range) {\n if (isInsert(delta)) {\n range = Range.fromPoints(delta.start, delta.end);\n }\n else {\n range = Range.fromPoints(delta.start, delta.start);\n }\n continue;\n }\n if (isInsert(delta)) {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range.setStart(point);\n }\n point = delta.end;\n if (range.compare(point.row, point.column) == 1) {\n range.setEnd(point);\n }\n }\n else {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range = Range.fromPoints(delta.start, delta.start);\n }\n }\n }\n return range;\n };\n EditSession.prototype.replace = function (range, text) {\n return this.doc.replace(range, text);\n };\n EditSession.prototype.moveText = function (fromRange, toPosition, copy) {\n var text = this.getTextRange(fromRange);\n var folds = this.getFoldsInRange(fromRange);\n var toRange = Range.fromPoints(toPosition, toPosition);\n if (!copy) {\n this.remove(fromRange);\n var rowDiff = fromRange.start.row - fromRange.end.row;\n var collDiff = rowDiff ? -fromRange.end.column : fromRange.start.column - fromRange.end.column;\n if (collDiff) {\n if (toRange.start.row == fromRange.end.row && toRange.start.column > fromRange.end.column)\n toRange.start.column += collDiff;\n if (toRange.end.row == fromRange.end.row && toRange.end.column > fromRange.end.column)\n toRange.end.column += collDiff;\n }\n if (rowDiff && toRange.start.row >= fromRange.end.row) {\n toRange.start.row += rowDiff;\n toRange.end.row += rowDiff;\n }\n }\n toRange.end = this.insert(toRange.start, text);\n if (folds.length) {\n var oldStart = fromRange.start;\n var newStart = toRange.start;\n var rowDiff = newStart.row - oldStart.row;\n var collDiff = newStart.column - oldStart.column;\n this.addFolds(folds.map(function (x) {\n x = x.clone();\n if (x.start.row == oldStart.row)\n x.start.column += collDiff;\n if (x.end.row == oldStart.row)\n x.end.column += collDiff;\n x.start.row += rowDiff;\n x.end.row += rowDiff;\n return x;\n }));\n }\n return toRange;\n };\n EditSession.prototype.indentRows = function (startRow, endRow, indentString) {\n indentString = indentString.replace(/\\t/g, this.getTabString());\n for (var row = startRow; row <= endRow; row++)\n this.doc.insertInLine({ row: row, column: 0 }, indentString);\n };\n EditSession.prototype.outdentRows = function (range) {\n var rowRange = range.collapseRows();\n var deleteRange = new Range(0, 0, 0, 0);\n var size = this.getTabSize();\n for (var i = rowRange.start.row; i <= rowRange.end.row; ++i) {\n var line = this.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n for (var j = 0; j < size; ++j)\n if (line.charAt(j) != ' ')\n break;\n if (j < size && line.charAt(j) == '\\t') {\n deleteRange.start.column = j;\n deleteRange.end.column = j + 1;\n }\n else {\n deleteRange.start.column = 0;\n deleteRange.end.column = j;\n }\n this.remove(deleteRange);\n }\n };\n EditSession.prototype.$moveLines = function (firstRow, lastRow, dir) {\n firstRow = this.getRowFoldStart(firstRow);\n lastRow = this.getRowFoldEnd(lastRow);\n if (dir < 0) {\n var row = this.getRowFoldStart(firstRow + dir);\n if (row < 0)\n return 0;\n var diff = row - firstRow;\n }\n else if (dir > 0) {\n var row = this.getRowFoldEnd(lastRow + dir);\n if (row > this.doc.getLength() - 1)\n return 0;\n var diff = row - lastRow;\n }\n else {\n firstRow = this.$clipRowToDocument(firstRow);\n lastRow = this.$clipRowToDocument(lastRow);\n var diff = lastRow - firstRow + 1;\n }\n var range = new Range(firstRow, 0, lastRow, Number.MAX_VALUE);\n var folds = this.getFoldsInRange(range).map(function (x) {\n x = x.clone();\n x.start.row += diff;\n x.end.row += diff;\n return x;\n });\n var lines = dir == 0\n ? this.doc.getLines(firstRow, lastRow)\n : this.doc.removeFullLines(firstRow, lastRow);\n this.doc.insertFullLines(firstRow + diff, lines);\n folds.length && this.addFolds(folds);\n return diff;\n };\n EditSession.prototype.moveLinesUp = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, -1);\n };\n EditSession.prototype.moveLinesDown = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 1);\n };\n EditSession.prototype.duplicateLines = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 0);\n };\n EditSession.prototype.$clipRowToDocument = function (row) {\n return Math.max(0, Math.min(row, this.doc.getLength() - 1));\n };\n EditSession.prototype.$clipColumnToRow = function (row, column) {\n if (column < 0)\n return 0;\n return Math.min(this.doc.getLine(row).length, column);\n };\n EditSession.prototype.$clipPositionToDocument = function (row, column) {\n column = Math.max(0, column);\n if (row < 0) {\n row = 0;\n column = 0;\n }\n else {\n var len = this.doc.getLength();\n if (row >= len) {\n row = len - 1;\n column = this.doc.getLine(len - 1).length;\n }\n else {\n column = Math.min(this.doc.getLine(row).length, column);\n }\n }\n return {\n row: row,\n column: column\n };\n };\n EditSession.prototype.$clipRangeToDocument = function (range) {\n if (range.start.row < 0) {\n range.start.row = 0;\n range.start.column = 0;\n }\n else {\n range.start.column = this.$clipColumnToRow(range.start.row, range.start.column);\n }\n var len = this.doc.getLength() - 1;\n if (range.end.row > len) {\n range.end.row = len;\n range.end.column = this.doc.getLine(len).length;\n }\n else {\n range.end.column = this.$clipColumnToRow(range.end.row, range.end.column);\n }\n return range;\n };\n EditSession.prototype.setUseWrapMode = function (useWrapMode) {\n if (useWrapMode != this.$useWrapMode) {\n this.$useWrapMode = useWrapMode;\n this.$modified = true;\n this.$resetRowCache(0);\n if (useWrapMode) {\n var len = this.getLength();\n this.$wrapData = Array(len);\n this.$updateWrapData(0, len - 1);\n }\n this._signal(\"changeWrapMode\");\n }\n };\n EditSession.prototype.getUseWrapMode = function () {\n return this.$useWrapMode;\n };\n EditSession.prototype.setWrapLimitRange = function (min, max) {\n if (this.$wrapLimitRange.min !== min || this.$wrapLimitRange.max !== max) {\n this.$wrapLimitRange = { min: min, max: max };\n this.$modified = true;\n this.$bidiHandler.markAsDirty();\n if (this.$useWrapMode)\n this._signal(\"changeWrapMode\");\n }\n };\n EditSession.prototype.adjustWrapLimit = function (desiredLimit, $printMargin) {\n var limits = this.$wrapLimitRange;\n if (limits.max < 0)\n limits = { min: $printMargin, max: $printMargin };\n var wrapLimit = this.$constrainWrapLimit(desiredLimit, limits.min, limits.max);\n if (wrapLimit != this.$wrapLimit && wrapLimit > 1) {\n this.$wrapLimit = wrapLimit;\n this.$modified = true;\n if (this.$useWrapMode) {\n this.$updateWrapData(0, this.getLength() - 1);\n this.$resetRowCache(0);\n this._signal(\"changeWrapLimit\");\n }\n return true;\n }\n return false;\n };\n EditSession.prototype.$constrainWrapLimit = function (wrapLimit, min, max) {\n if (min)\n wrapLimit = Math.max(min, wrapLimit);\n if (max)\n wrapLimit = Math.min(max, wrapLimit);\n return wrapLimit;\n };\n EditSession.prototype.getWrapLimit = function () {\n return this.$wrapLimit;\n };\n EditSession.prototype.setWrapLimit = function (limit) {\n this.setWrapLimitRange(limit, limit);\n };\n EditSession.prototype.getWrapLimitRange = function () {\n return {\n min: this.$wrapLimitRange.min,\n max: this.$wrapLimitRange.max\n };\n };\n EditSession.prototype.$updateInternalDataOnChange = function (delta) {\n var useWrapMode = this.$useWrapMode;\n var action = delta.action;\n var start = delta.start;\n var end = delta.end;\n var firstRow = start.row;\n var lastRow = end.row;\n var len = lastRow - firstRow;\n var removedFolds = null;\n this.$updating = true;\n if (len != 0) {\n if (action === \"remove\") {\n this[useWrapMode ? \"$wrapData\" : \"$rowLengthCache\"].splice(firstRow, len);\n var foldLines = this.$foldData;\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n var foldLine = this.getFoldLine(end.row);\n var idx = 0;\n if (foldLine) {\n foldLine.addRemoveChars(end.row, end.column, start.column - end.column);\n foldLine.shiftRow(-len);\n var foldLineBefore = this.getFoldLine(firstRow);\n if (foldLineBefore && foldLineBefore !== foldLine) {\n foldLineBefore.merge(foldLine);\n foldLine = foldLineBefore;\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= end.row) {\n foldLine.shiftRow(-len);\n }\n }\n lastRow = firstRow;\n }\n else {\n var args = Array(len);\n args.unshift(firstRow, 0);\n var arr = useWrapMode ? this.$wrapData : this.$rowLengthCache;\n arr.splice.apply(arr, args);\n var foldLines = this.$foldData;\n var foldLine = this.getFoldLine(firstRow);\n var idx = 0;\n if (foldLine) {\n var cmp = foldLine.range.compareInside(start.row, start.column);\n if (cmp == 0) {\n foldLine = foldLine.split(start.row, start.column);\n if (foldLine) {\n foldLine.shiftRow(len);\n foldLine.addRemoveChars(lastRow, 0, end.column - start.column);\n }\n }\n else \n if (cmp == -1) {\n foldLine.addRemoveChars(firstRow, 0, end.column - start.column);\n foldLine.shiftRow(len);\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= firstRow) {\n foldLine.shiftRow(len);\n }\n }\n }\n }\n else {\n len = Math.abs(delta.start.column - delta.end.column);\n if (action === \"remove\") {\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n len = -len;\n }\n var foldLine = this.getFoldLine(firstRow);\n if (foldLine) {\n foldLine.addRemoveChars(firstRow, start.column, len);\n }\n }\n if (useWrapMode && this.$wrapData.length != this.doc.getLength()) {\n console.error(\"doc.getLength() and $wrapData.length have to be the same!\");\n }\n this.$updating = false;\n if (useWrapMode)\n this.$updateWrapData(firstRow, lastRow);\n else\n this.$updateRowLengthCache(firstRow, lastRow);\n return removedFolds;\n };\n EditSession.prototype.$updateRowLengthCache = function (firstRow, lastRow, b) {\n this.$rowLengthCache[firstRow] = null;\n this.$rowLengthCache[lastRow] = null;\n };\n EditSession.prototype.$updateWrapData = function (firstRow, lastRow) {\n var lines = this.doc.getAllLines();\n var tabSize = this.getTabSize();\n var wrapData = this.$wrapData;\n var wrapLimit = this.$wrapLimit;\n var tokens;\n var foldLine;\n var row = firstRow;\n lastRow = Math.min(lastRow, lines.length - 1);\n while (row <= lastRow) {\n foldLine = this.getFoldLine(row, foldLine);\n if (!foldLine) {\n tokens = this.$getDisplayTokens(lines[row]);\n wrapData[row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row++;\n }\n else {\n tokens = [];\n foldLine.walk(function (placeholder, row, column, lastColumn) {\n var walkTokens;\n if (placeholder != null) {\n walkTokens = this.$getDisplayTokens(placeholder, tokens.length);\n walkTokens[0] = PLACEHOLDER_START;\n for (var i = 1; i < walkTokens.length; i++) {\n walkTokens[i] = PLACEHOLDER_BODY;\n }\n }\n else {\n walkTokens = this.$getDisplayTokens(lines[row].substring(lastColumn, column), tokens.length);\n }\n tokens = tokens.concat(walkTokens);\n }.bind(this), foldLine.end.row, lines[foldLine.end.row].length + 1);\n wrapData[foldLine.start.row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row = foldLine.end.row + 1;\n }\n }\n };\n EditSession.prototype.$computeWrapSplits = function (tokens, wrapLimit, tabSize) {\n if (tokens.length == 0) {\n return [];\n }\n var splits = [];\n var displayLength = tokens.length;\n var lastSplit = 0, lastDocSplit = 0;\n var isCode = this.$wrapAsCode;\n var indentedSoftWrap = this.$indentedSoftWrap;\n var maxIndent = wrapLimit <= Math.max(2 * tabSize, 8)\n || indentedSoftWrap === false ? 0 : Math.floor(wrapLimit / 2);\n function getWrapIndent() {\n var indentation = 0;\n if (maxIndent === 0)\n return indentation;\n if (indentedSoftWrap) {\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token == SPACE)\n indentation += 1;\n else if (token == TAB)\n indentation += tabSize;\n else if (token == TAB_SPACE)\n continue;\n else\n break;\n }\n }\n if (isCode && indentedSoftWrap !== false)\n indentation += tabSize;\n return Math.min(indentation, maxIndent);\n }\n function addSplit(screenPos) {\n var len = screenPos - lastSplit;\n for (var i = lastSplit; i < screenPos; i++) {\n var ch = tokens[i];\n if (ch === 12 || ch === 2)\n len -= 1;\n }\n if (!splits.length) {\n indent = getWrapIndent();\n splits.indent = indent;\n }\n lastDocSplit += len;\n splits.push(lastDocSplit);\n lastSplit = screenPos;\n }\n var indent = 0;\n while (displayLength - lastSplit > wrapLimit - indent) {\n var split = lastSplit + wrapLimit - indent;\n if (tokens[split - 1] >= SPACE && tokens[split] >= SPACE) {\n addSplit(split);\n continue;\n }\n if (tokens[split] == PLACEHOLDER_START || tokens[split] == PLACEHOLDER_BODY) {\n for (split; split != lastSplit - 1; split--) {\n if (tokens[split] == PLACEHOLDER_START) {\n break;\n }\n }\n if (split > lastSplit) {\n addSplit(split);\n continue;\n }\n split = lastSplit + wrapLimit;\n for (split; split < tokens.length; split++) {\n if (tokens[split] != PLACEHOLDER_BODY) {\n break;\n }\n }\n if (split == tokens.length) {\n break; // Breaks the while-loop.\n }\n addSplit(split);\n continue;\n }\n var minSplit = Math.max(split - (wrapLimit - (wrapLimit >> 2)), lastSplit - 1);\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split--;\n }\n if (isCode) {\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split--;\n }\n while (split > minSplit && tokens[split] == PUNCTUATION) {\n split--;\n }\n }\n else {\n while (split > minSplit && tokens[split] < SPACE) {\n split--;\n }\n }\n if (split > minSplit) {\n addSplit(++split);\n continue;\n }\n split = lastSplit + wrapLimit;\n if (tokens[split] == CHAR_EXT)\n split--;\n addSplit(split - indent);\n }\n return splits;\n };\n EditSession.prototype.$getDisplayTokens = function (str, offset) {\n var arr = [];\n var tabSize;\n offset = offset || 0;\n for (var i = 0; i < str.length; i++) {\n var c = str.charCodeAt(i);\n if (c == 9) {\n tabSize = this.getScreenTabSize(arr.length + offset);\n arr.push(TAB);\n for (var n = 1; n < tabSize; n++) {\n arr.push(TAB_SPACE);\n }\n }\n else if (c == 32) {\n arr.push(SPACE);\n }\n else if ((c > 39 && c < 48) || (c > 57 && c < 64)) {\n arr.push(PUNCTUATION);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n arr.push(CHAR, CHAR_EXT);\n }\n else {\n arr.push(CHAR);\n }\n }\n return arr;\n };\n EditSession.prototype.$getStringScreenWidth = function (str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn == 0)\n return [0, 0];\n if (maxScreenColumn == null)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charCodeAt(column);\n if (c == 9) {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n screenColumn += 2;\n }\n else {\n screenColumn += 1;\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n return [screenColumn, column];\n };\n EditSession.prototype.getRowLength = function (row) {\n var h = 1;\n if (this.lineWidgets)\n h += this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n if (!this.$useWrapMode || !this.$wrapData[row])\n return h;\n else\n return this.$wrapData[row].length + h;\n };\n EditSession.prototype.getRowLineCount = function (row) {\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1;\n }\n else {\n return this.$wrapData[row].length + 1;\n }\n };\n EditSession.prototype.getRowWrapIndent = function (screenRow) {\n if (this.$useWrapMode) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n var splits = this.$wrapData[pos.row];\n return splits.length && splits[0] < pos.column ? splits.indent : 0;\n }\n else {\n return 0;\n }\n };\n EditSession.prototype.getScreenLastRowColumn = function (screenRow) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n return this.documentToScreenColumn(pos.row, pos.column);\n };\n EditSession.prototype.getDocumentLastRowColumn = function (docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.getScreenLastRowColumn(screenRow);\n };\n EditSession.prototype.getDocumentLastRowColumnPosition = function (docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.screenToDocumentPosition(screenRow, Number.MAX_VALUE / 10);\n };\n EditSession.prototype.getRowSplitData = function (row) {\n if (!this.$useWrapMode) {\n return undefined;\n }\n else {\n return this.$wrapData[row];\n }\n };\n EditSession.prototype.getScreenTabSize = function (screenColumn) {\n return this.$tabSize - (screenColumn % this.$tabSize | 0);\n };\n EditSession.prototype.screenToDocumentRow = function (screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).row;\n };\n EditSession.prototype.screenToDocumentColumn = function (screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).column;\n };\n EditSession.prototype.screenToDocumentPosition = function (screenRow, screenColumn, offsetX) {\n if (screenRow < 0)\n return { row: 0, column: 0 };\n var line;\n var docRow = 0;\n var docColumn = 0;\n var column;\n var row = 0;\n var rowLength = 0;\n var rowCache = this.$screenRowCache;\n var i = this.$getRowCacheIndex(rowCache, screenRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var docRow = this.$docRowCache[i];\n var doCache = screenRow > rowCache[l - 1];\n }\n else {\n var doCache = !l;\n }\n var maxRow = this.getLength() - 1;\n var foldLine = this.getNextFoldLine(docRow);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (row <= screenRow) {\n rowLength = this.getRowLength(docRow);\n if (row + rowLength > screenRow || docRow >= maxRow) {\n break;\n }\n else {\n row += rowLength;\n docRow++;\n if (docRow > foldStart) {\n docRow = foldLine.end.row + 1;\n foldLine = this.getNextFoldLine(docRow, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n }\n if (doCache) {\n this.$docRowCache.push(docRow);\n this.$screenRowCache.push(row);\n }\n }\n if (foldLine && foldLine.start.row <= docRow) {\n line = this.getFoldDisplayLine(foldLine);\n docRow = foldLine.start.row;\n }\n else if (row + rowLength <= screenRow || docRow > maxRow) {\n return {\n row: maxRow,\n column: this.getLine(maxRow).length\n };\n }\n else {\n line = this.getLine(docRow);\n foldLine = null;\n }\n var wrapIndent = 0, splitIndex = Math.floor(screenRow - row);\n if (this.$useWrapMode) {\n var splits = this.$wrapData[docRow];\n if (splits) {\n column = splits[splitIndex];\n if (splitIndex > 0 && splits.length) {\n wrapIndent = splits.indent;\n docColumn = splits[splitIndex - 1] || splits[splits.length - 1];\n line = line.substring(docColumn);\n }\n }\n }\n if (offsetX !== undefined && this.$bidiHandler.isBidiRow(row + splitIndex, docRow, splitIndex))\n screenColumn = this.$bidiHandler.offsetToCol(offsetX);\n docColumn += this.$getStringScreenWidth(line, screenColumn - wrapIndent)[1];\n if (this.$useWrapMode && docColumn >= column)\n docColumn = column - 1;\n if (foldLine)\n return foldLine.idxToPosition(docColumn);\n return { row: docRow, column: docColumn };\n };\n EditSession.prototype.documentToScreenPosition = function (docRow, docColumn) {\n if (typeof docColumn === \"undefined\")\n var pos = this.$clipPositionToDocument(docRow.row, docRow.column);\n else\n pos = this.$clipPositionToDocument(docRow, docColumn);\n docRow = pos.row;\n docColumn = pos.column;\n var screenRow = 0;\n var foldStartRow = null;\n var fold = null;\n fold = this.getFoldAt(docRow, docColumn, 1);\n if (fold) {\n docRow = fold.start.row;\n docColumn = fold.start.column;\n }\n var rowEnd, row = 0;\n var rowCache = this.$docRowCache;\n var i = this.$getRowCacheIndex(rowCache, docRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var screenRow = this.$screenRowCache[i];\n var doCache = docRow > rowCache[l - 1];\n }\n else {\n var doCache = !l;\n }\n var foldLine = this.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (row < docRow) {\n if (row >= foldStart) {\n rowEnd = foldLine.end.row + 1;\n if (rowEnd > docRow)\n break;\n foldLine = this.getNextFoldLine(rowEnd, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n else {\n rowEnd = row + 1;\n }\n screenRow += this.getRowLength(row);\n row = rowEnd;\n if (doCache) {\n this.$docRowCache.push(row);\n this.$screenRowCache.push(screenRow);\n }\n }\n var textLine = \"\";\n if (foldLine && row >= foldStart) {\n textLine = this.getFoldDisplayLine(foldLine, docRow, docColumn);\n foldStartRow = foldLine.start.row;\n }\n else {\n textLine = this.getLine(docRow).substring(0, docColumn);\n foldStartRow = docRow;\n }\n var wrapIndent = 0;\n if (this.$useWrapMode) {\n var wrapRow = this.$wrapData[foldStartRow];\n if (wrapRow) {\n var screenRowOffset = 0;\n while (textLine.length >= wrapRow[screenRowOffset]) {\n screenRow++;\n screenRowOffset++;\n }\n textLine = textLine.substring(wrapRow[screenRowOffset - 1] || 0, textLine.length);\n wrapIndent = screenRowOffset > 0 ? wrapRow.indent : 0;\n }\n }\n if (this.lineWidgets && this.lineWidgets[row] && this.lineWidgets[row].rowsAbove)\n screenRow += this.lineWidgets[row].rowsAbove;\n return {\n row: screenRow,\n column: wrapIndent + this.$getStringScreenWidth(textLine)[0]\n };\n };\n EditSession.prototype.documentToScreenColumn = function (row, docColumn) {\n return this.documentToScreenPosition(row, docColumn).column;\n };\n EditSession.prototype.documentToScreenRow = function (docRow, docColumn) {\n return this.documentToScreenPosition(docRow, docColumn).row;\n };\n EditSession.prototype.getScreenLength = function () {\n var screenRows = 0;\n var fold = null;\n if (!this.$useWrapMode) {\n screenRows = this.getLength();\n var foldData = this.$foldData;\n for (var i = 0; i < foldData.length; i++) {\n fold = foldData[i];\n screenRows -= fold.end.row - fold.start.row;\n }\n }\n else {\n var lastRow = this.$wrapData.length;\n var row = 0, i = 0;\n var fold = this.$foldData[i++];\n var foldStart = fold ? fold.start.row : Infinity;\n while (row < lastRow) {\n var splits = this.$wrapData[row];\n screenRows += splits ? splits.length + 1 : 1;\n row++;\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = this.$foldData[i++];\n foldStart = fold ? fold.start.row : Infinity;\n }\n }\n }\n if (this.lineWidgets)\n screenRows += this.$getWidgetScreenLength();\n return screenRows;\n };\n EditSession.prototype.$setFontMetrics = function (fm) {\n if (!this.$enableVarChar)\n return;\n this.$getStringScreenWidth = function (str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn === 0)\n return [0, 0];\n if (!maxScreenColumn)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charAt(column);\n if (c === \"\\t\") {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else {\n screenColumn += fm.getCharacterWidth(c);\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n return [screenColumn, column];\n };\n };\n EditSession.prototype.destroy = function () {\n if (!this.destroyed) {\n this.bgTokenizer.setDocument(null);\n this.bgTokenizer.cleanup();\n this.destroyed = true;\n }\n this.$stopWorker();\n this.removeAllListeners();\n if (this.doc) {\n this.doc.off(\"change\", this.$onChange);\n }\n this.selection.detach();\n };\n return EditSession;\n}());\nEditSession.$uid = 0;\nEditSession.prototype.$modes = config.$modes;\nEditSession.prototype.getValue = EditSession.prototype.toString;\nEditSession.prototype.$defaultUndoManager = {\n undo: function () { },\n redo: function () { },\n hasUndo: function () { },\n hasRedo: function () { },\n reset: function () { },\n add: function () { },\n addSelection: function () { },\n startNewGroup: function () { },\n addSession: function () { }\n};\nEditSession.prototype.$overwrite = false;\nEditSession.prototype.$mode = null;\nEditSession.prototype.$modeId = null;\nEditSession.prototype.$scrollTop = 0;\nEditSession.prototype.$scrollLeft = 0;\nEditSession.prototype.$wrapLimit = 80;\nEditSession.prototype.$useWrapMode = false;\nEditSession.prototype.$wrapLimitRange = {\n min: null,\n max: null\n};\nEditSession.prototype.lineWidgets = null;\nEditSession.prototype.isFullWidth = isFullWidth;\noop.implement(EditSession.prototype, EventEmitter);\nvar CHAR = 1, CHAR_EXT = 2, PLACEHOLDER_START = 3, PLACEHOLDER_BODY = 4, PUNCTUATION = 9, SPACE = 10, TAB = 11, TAB_SPACE = 12;\nfunction isFullWidth(c) {\n if (c < 0x1100)\n return false;\n return c >= 0x1100 && c <= 0x115F ||\n c >= 0x11A3 && c <= 0x11A7 ||\n c >= 0x11FA && c <= 0x11FF ||\n c >= 0x2329 && c <= 0x232A ||\n c >= 0x2E80 && c <= 0x2E99 ||\n c >= 0x2E9B && c <= 0x2EF3 ||\n c >= 0x2F00 && c <= 0x2FD5 ||\n c >= 0x2FF0 && c <= 0x2FFB ||\n c >= 0x3000 && c <= 0x303E ||\n c >= 0x3041 && c <= 0x3096 ||\n c >= 0x3099 && c <= 0x30FF ||\n c >= 0x3105 && c <= 0x312D ||\n c >= 0x3131 && c <= 0x318E ||\n c >= 0x3190 && c <= 0x31BA ||\n c >= 0x31C0 && c <= 0x31E3 ||\n c >= 0x31F0 && c <= 0x321E ||\n c >= 0x3220 && c <= 0x3247 ||\n c >= 0x3250 && c <= 0x32FE ||\n c >= 0x3300 && c <= 0x4DBF ||\n c >= 0x4E00 && c <= 0xA48C ||\n c >= 0xA490 && c <= 0xA4C6 ||\n c >= 0xA960 && c <= 0xA97C ||\n c >= 0xAC00 && c <= 0xD7A3 ||\n c >= 0xD7B0 && c <= 0xD7C6 ||\n c >= 0xD7CB && c <= 0xD7FB ||\n c >= 0xF900 && c <= 0xFAFF ||\n c >= 0xFE10 && c <= 0xFE19 ||\n c >= 0xFE30 && c <= 0xFE52 ||\n c >= 0xFE54 && c <= 0xFE66 ||\n c >= 0xFE68 && c <= 0xFE6B ||\n c >= 0xFF01 && c <= 0xFF60 ||\n c >= 0xFFE0 && c <= 0xFFE6;\n}\nrequire(\"./edit_session/folding\").Folding.call(EditSession.prototype);\nrequire(\"./edit_session/bracket_match\").BracketMatch.call(EditSession.prototype);\nconfig.defineOptions(EditSession.prototype, \"session\", {\n wrap: {\n set: function (value) {\n if (!value || value == \"off\")\n value = false;\n else if (value == \"free\")\n value = true;\n else if (value == \"printMargin\")\n value = -1;\n else if (typeof value == \"string\")\n value = parseInt(value, 10) || false;\n if (this.$wrap == value)\n return;\n this.$wrap = value;\n if (!value) {\n this.setUseWrapMode(false);\n }\n else {\n var col = typeof value == \"number\" ? value : null;\n this.setWrapLimitRange(col, col);\n this.setUseWrapMode(true);\n }\n },\n get: function () {\n if (this.getUseWrapMode()) {\n if (this.$wrap == -1)\n return \"printMargin\";\n if (!this.getWrapLimitRange().min)\n return \"free\";\n return this.$wrap;\n }\n return \"off\";\n },\n handlesSet: true\n },\n wrapMethod: {\n set: function (val) {\n val = val == \"auto\"\n ? this.$mode.type != \"text\"\n : val != \"text\";\n if (val != this.$wrapAsCode) {\n this.$wrapAsCode = val;\n if (this.$useWrapMode) {\n this.$useWrapMode = false;\n this.setUseWrapMode(true);\n }\n }\n },\n initialValue: \"auto\"\n },\n indentedSoftWrap: {\n set: function () {\n if (this.$useWrapMode) {\n this.$useWrapMode = false;\n this.setUseWrapMode(true);\n }\n },\n initialValue: true\n },\n firstLineNumber: {\n set: function () { this._signal(\"changeBreakpoint\"); },\n initialValue: 1\n },\n useWorker: {\n set: function (useWorker) {\n this.$useWorker = useWorker;\n this.$stopWorker();\n if (useWorker)\n this.$startWorker();\n },\n initialValue: true\n },\n useSoftTabs: { initialValue: true },\n tabSize: {\n set: function (tabSize) {\n tabSize = parseInt(tabSize);\n if (tabSize > 0 && this.$tabSize !== tabSize) {\n this.$modified = true;\n this.$rowLengthCache = [];\n this.$tabSize = tabSize;\n this._signal(\"changeTabSize\");\n }\n },\n initialValue: 4,\n handlesSet: true\n },\n navigateWithinSoftTabs: { initialValue: false },\n foldStyle: {\n set: function (val) { this.setFoldStyle(val); },\n handlesSet: true\n },\n overwrite: {\n set: function (val) { this._signal(\"changeOverwrite\"); },\n initialValue: false\n },\n newLineMode: {\n set: function (val) { this.doc.setNewLineMode(val); },\n get: function () { return this.doc.getNewLineMode(); },\n handlesSet: true\n },\n mode: {\n set: function (val) { this.setMode(val); },\n get: function () { return this.$modeId; },\n handlesSet: true\n }\n});\nexports.EditSession = EditSession;\n\n});\n\nace.define(\"ace/search\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"./lib/lang\");\nvar oop = require(\"./lib/oop\");\nvar Range = require(\"./range\").Range;\nvar Search = /** @class */ (function () {\n function Search() {\n this.$options = {};\n }\n Search.prototype.set = function (options) {\n oop.mixin(this.$options, options);\n return this;\n };\n Search.prototype.getOptions = function () {\n return lang.copyObject(this.$options);\n };\n Search.prototype.setOptions = function (options) {\n this.$options = options;\n };\n Search.prototype.find = function (session) {\n var options = this.$options;\n var iterator = this.$matchIterator(session, options);\n if (!iterator)\n return false;\n var firstRange = null;\n iterator.forEach(function (sr, sc, er, ec) {\n firstRange = new Range(sr, sc, er, ec);\n if (sc == ec && options.start && options.start.start\n && options.skipCurrent != false && firstRange.isEqual(options.start)) {\n firstRange = null;\n return false;\n }\n return true;\n });\n return firstRange;\n };\n Search.prototype.findAll = function (session) {\n var options = this.$options;\n if (!options.needle)\n return [];\n this.$assembleRegExp(options);\n var range = options.range;\n var lines = range\n ? session.getLines(range.start.row, range.end.row)\n : session.doc.getAllLines();\n var ranges = [];\n var re = options.re;\n if (options.$isMultiLine) {\n var len = re.length;\n var maxRow = lines.length - len;\n var prevRange;\n outer: for (var row = re.offset || 0; row <= maxRow; row++) {\n for (var j = 0; j < len; j++)\n if (lines[row + j].search(re[j]) == -1)\n continue outer;\n var startLine = lines[row];\n var line = lines[row + len - 1];\n var startIndex = startLine.length - startLine.match(re[0])[0].length;\n var endIndex = line.match(re[len - 1])[0].length;\n if (prevRange && prevRange.end.row === row &&\n prevRange.end.column > startIndex) {\n continue;\n }\n ranges.push(prevRange = new Range(row, startIndex, row + len - 1, endIndex));\n if (len > 2)\n row = row + len - 2;\n }\n }\n else {\n for (var i = 0; i < lines.length; i++) {\n var matches = lang.getMatchOffsets(lines[i], re);\n for (var j = 0; j < matches.length; j++) {\n var match = matches[j];\n ranges.push(new Range(i, match.offset, i, match.offset + match.length));\n }\n }\n }\n if (range) {\n var startColumn = range.start.column;\n var endColumn = range.end.column;\n var i = 0, j = ranges.length - 1;\n while (i < j && ranges[i].start.column < startColumn && ranges[i].start.row == 0)\n i++;\n var endRow = range.end.row - range.start.row;\n while (i < j && ranges[j].end.column > endColumn && ranges[j].end.row == endRow)\n j--;\n ranges = ranges.slice(i, j + 1);\n for (i = 0, j = ranges.length; i < j; i++) {\n ranges[i].start.row += range.start.row;\n ranges[i].end.row += range.start.row;\n }\n }\n return ranges;\n };\n Search.prototype.replace = function (input, replacement) {\n var options = this.$options;\n var re = this.$assembleRegExp(options);\n if (options.$isMultiLine)\n return replacement;\n if (!re)\n return;\n var match = re.exec(input);\n if (!match || match[0].length != input.length)\n return null;\n replacement = input.replace(re, replacement);\n if (options.preserveCase) {\n replacement = replacement.split(\"\");\n for (var i = Math.min(input.length, input.length); i--;) {\n var ch = input[i];\n if (ch && ch.toLowerCase() != ch)\n replacement[i] = replacement[i].toUpperCase();\n else\n replacement[i] = replacement[i].toLowerCase();\n }\n replacement = replacement.join(\"\");\n }\n return replacement;\n };\n Search.prototype.$assembleRegExp = function (options, $disableFakeMultiline) {\n if (options.needle instanceof RegExp)\n return options.re = options.needle;\n var needle = options.needle;\n if (!options.needle)\n return options.re = false;\n if (!options.regExp)\n needle = lang.escapeRegExp(needle);\n var modifier = options.caseSensitive ? \"gm\" : \"gmi\";\n try {\n new RegExp(needle, \"u\");\n options.$supportsUnicodeFlag = true;\n modifier += \"u\";\n }\n catch (e) {\n options.$supportsUnicodeFlag = false; //left for backward compatibility with previous versions for cases like /ab\\{2}/gu\n }\n if (options.wholeWord)\n needle = addWordBoundary(needle, options);\n options.$isMultiLine = !$disableFakeMultiline && /[\\n\\r]/.test(needle);\n if (options.$isMultiLine)\n return options.re = this.$assembleMultilineRegExp(needle, modifier);\n try {\n var re = new RegExp(needle, modifier);\n }\n catch (e) {\n re = false;\n }\n return options.re = re;\n };\n Search.prototype.$assembleMultilineRegExp = function (needle, modifier) {\n var parts = needle.replace(/\\r\\n|\\r|\\n/g, \"$\\n^\").split(\"\\n\");\n var re = [];\n for (var i = 0; i < parts.length; i++)\n try {\n re.push(new RegExp(parts[i], modifier));\n }\n catch (e) {\n return false;\n }\n return re;\n };\n Search.prototype.$matchIterator = function (session, options) {\n var re = this.$assembleRegExp(options);\n if (!re)\n return false;\n var backwards = options.backwards == true;\n var skipCurrent = options.skipCurrent != false;\n var supportsUnicodeFlag = re.unicode;\n var range = options.range;\n var start = options.start;\n if (!start)\n start = range ? range[backwards ? \"end\" : \"start\"] : session.selection.getRange();\n if (start.start)\n start = start[skipCurrent != backwards ? \"end\" : \"start\"];\n var firstRow = range ? range.start.row : 0;\n var lastRow = range ? range.end.row : session.getLength() - 1;\n if (backwards) {\n var forEach = function (callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row--; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = lastRow, firstRow = start.row; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n };\n }\n else {\n var forEach = function (callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row = row + 1; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = firstRow, lastRow = start.row; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n };\n }\n if (options.$isMultiLine) {\n var len = re.length;\n var forEachInLine = function (row, offset, callback) {\n var startRow = backwards ? row - len + 1 : row;\n if (startRow < 0 || startRow + len > session.getLength())\n return;\n var line = session.getLine(startRow);\n var startIndex = line.search(re[0]);\n if (!backwards && startIndex < offset || startIndex === -1)\n return;\n for (var i = 1; i < len; i++) {\n line = session.getLine(startRow + i);\n if (line.search(re[i]) == -1)\n return;\n }\n var endIndex = line.match(re[len - 1])[0].length;\n if (backwards && endIndex > offset)\n return;\n if (callback(startRow, startIndex, startRow + len - 1, endIndex))\n return true;\n };\n }\n else if (backwards) {\n var forEachInLine = function (row, endIndex, callback) {\n var line = session.getLine(row);\n var matches = [];\n var m, last = 0;\n re.lastIndex = 0;\n while ((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (!length) {\n if (last >= line.length)\n break;\n re.lastIndex = last += lang.skipEmptyMatch(line, last, supportsUnicodeFlag);\n }\n if (m.index + length > endIndex)\n break;\n matches.push(m.index, length);\n }\n for (var i = matches.length - 1; i >= 0; i -= 2) {\n var column = matches[i - 1];\n var length = matches[i];\n if (callback(row, column, row, column + length))\n return true;\n }\n };\n }\n else {\n var forEachInLine = function (row, startIndex, callback) {\n var line = session.getLine(row);\n var last;\n var m;\n re.lastIndex = startIndex;\n while ((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (callback(row, last, row, last + length))\n return true;\n if (!length) {\n re.lastIndex = last += lang.skipEmptyMatch(line, last, supportsUnicodeFlag);\n if (last >= line.length)\n return false;\n }\n }\n };\n }\n return { forEach: forEach };\n };\n return Search;\n}());\nfunction addWordBoundary(needle, options) {\n var supportsLookbehind = lang.supportsLookbehind();\n function wordBoundary(c, firstChar) {\n if (firstChar === void 0) { firstChar = true; }\n var wordRegExp = supportsLookbehind && options.$supportsUnicodeFlag ? new RegExp(\"[\\\\p{L}\\\\p{N}_]\", \"u\") : new RegExp(\"\\\\w\");\n if (wordRegExp.test(c) || options.regExp) {\n if (supportsLookbehind && options.$supportsUnicodeFlag) {\n if (firstChar)\n return \"(?<=^|[^\\\\p{L}\\\\p{N}_])\";\n return \"(?=[^\\\\p{L}\\\\p{N}_]|$)\";\n }\n return \"\\\\b\";\n }\n return \"\";\n }\n var needleArray = Array.from(needle);\n var firstChar = needleArray[0];\n var lastChar = needleArray[needleArray.length - 1];\n return wordBoundary(firstChar) + needle + wordBoundary(lastChar, false);\n}\nexports.Search = Search;\n\n});\n\nace.define(\"ace/keyboard/hash_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar keyUtil = require(\"../lib/keys\");\nvar useragent = require(\"../lib/useragent\");\nvar KEY_MODS = keyUtil.KEY_MODS;\nvar MultiHashHandler = /** @class */ (function () {\n function MultiHashHandler(config, platform) {\n this.$init(config, platform, false);\n }\n MultiHashHandler.prototype.$init = function (config, platform, $singleCommand) {\n this.platform = platform || (useragent.isMac ? \"mac\" : \"win\");\n this.commands = {};\n this.commandKeyBinding = {};\n this.addCommands(config);\n this.$singleCommand = $singleCommand;\n };\n MultiHashHandler.prototype.addCommand = function (command) {\n if (this.commands[command.name])\n this.removeCommand(command);\n this.commands[command.name] = command;\n if (command.bindKey)\n this._buildKeyHash(command);\n };\n MultiHashHandler.prototype.removeCommand = function (command, keepCommand) {\n var name = command && (typeof command === 'string' ? command : command.name);\n command = this.commands[name];\n if (!keepCommand)\n delete this.commands[name];\n var ckb = this.commandKeyBinding;\n for (var keyId in ckb) {\n var cmdGroup = ckb[keyId];\n if (cmdGroup == command) {\n delete ckb[keyId];\n }\n else if (Array.isArray(cmdGroup)) {\n var i = cmdGroup.indexOf(command);\n if (i != -1) {\n cmdGroup.splice(i, 1);\n if (cmdGroup.length == 1)\n ckb[keyId] = cmdGroup[0];\n }\n }\n }\n };\n MultiHashHandler.prototype.bindKey = function (key, command, position) {\n if (typeof key == \"object\" && key) {\n if (position == undefined)\n position = key.position;\n key = key[this.platform];\n }\n if (!key)\n return;\n if (typeof command == \"function\")\n return this.addCommand({ exec: command, bindKey: key, name: command.name || key });\n key.split(\"|\").forEach(function (keyPart) {\n var chain = \"\";\n if (keyPart.indexOf(\" \") != -1) {\n var parts = keyPart.split(/\\s+/);\n keyPart = parts.pop();\n parts.forEach(function (keyPart) {\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n chain += (chain ? \" \" : \"\") + id;\n this._addCommandToBinding(chain, \"chainKeys\");\n }, this);\n chain += \" \";\n }\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n this._addCommandToBinding(chain + id, command, position);\n }, this);\n };\n MultiHashHandler.prototype._addCommandToBinding = function (keyId, command, position) {\n var ckb = this.commandKeyBinding, i;\n if (!command) {\n delete ckb[keyId];\n }\n else if (!ckb[keyId] || this.$singleCommand) {\n ckb[keyId] = command;\n }\n else {\n if (!Array.isArray(ckb[keyId])) {\n ckb[keyId] = [ckb[keyId]];\n }\n else if ((i = ckb[keyId].indexOf(command)) != -1) {\n ckb[keyId].splice(i, 1);\n }\n if (typeof position != \"number\") {\n position = getPosition(command);\n }\n var commands = ckb[keyId];\n for (i = 0; i < commands.length; i++) {\n var other = commands[i];\n var otherPos = getPosition(other);\n if (otherPos > position)\n break;\n }\n commands.splice(i, 0, command);\n }\n };\n MultiHashHandler.prototype.addCommands = function (commands) {\n commands && Object.keys(commands).forEach(function (name) {\n var command = commands[name];\n if (!command)\n return;\n if (typeof command === \"string\")\n return this.bindKey(command, name);\n if (typeof command === \"function\")\n command = { exec: command };\n if (typeof command !== \"object\")\n return;\n if (!command.name)\n command.name = name;\n this.addCommand(command);\n }, this);\n };\n MultiHashHandler.prototype.removeCommands = function (commands) {\n Object.keys(commands).forEach(function (name) {\n this.removeCommand(commands[name]);\n }, this);\n };\n MultiHashHandler.prototype.bindKeys = function (keyList) {\n Object.keys(keyList).forEach(function (key) {\n this.bindKey(key, keyList[key]);\n }, this);\n };\n MultiHashHandler.prototype._buildKeyHash = function (command) {\n this.bindKey(command.bindKey, command);\n };\n MultiHashHandler.prototype.parseKeys = function (keys) {\n var parts = keys.toLowerCase().split(/[\\-\\+]([\\-\\+])?/).filter(function (x) { return x; });\n var key = parts.pop();\n var keyCode = keyUtil[key];\n if (keyUtil.FUNCTION_KEYS[keyCode])\n key = keyUtil.FUNCTION_KEYS[keyCode].toLowerCase();\n else if (!parts.length)\n return { key: key, hashId: -1 };\n else if (parts.length == 1 && parts[0] == \"shift\")\n return { key: key.toUpperCase(), hashId: -1 };\n var hashId = 0;\n for (var i = parts.length; i--;) {\n var modifier = keyUtil.KEY_MODS[parts[i]];\n if (modifier == null) {\n if (typeof console != \"undefined\")\n console.error(\"invalid modifier \" + parts[i] + \" in \" + keys);\n return false;\n }\n hashId |= modifier;\n }\n return { key: key, hashId: hashId };\n };\n MultiHashHandler.prototype.findKeyCommand = function (hashId, keyString) {\n var key = KEY_MODS[hashId] + keyString;\n return this.commandKeyBinding[key];\n };\n MultiHashHandler.prototype.handleKeyboard = function (data, hashId, keyString, keyCode) {\n if (keyCode < 0)\n return;\n var key = KEY_MODS[hashId] + keyString;\n var command = this.commandKeyBinding[key];\n if (data.$keyChain) {\n data.$keyChain += \" \" + key;\n command = this.commandKeyBinding[data.$keyChain] || command;\n }\n if (command) {\n if (command == \"chainKeys\" || command[command.length - 1] == \"chainKeys\") {\n data.$keyChain = data.$keyChain || key;\n return { command: \"null\" };\n }\n }\n if (data.$keyChain) {\n if ((!hashId || hashId == 4) && keyString.length == 1)\n data.$keyChain = data.$keyChain.slice(0, -key.length - 1); // wait for input\n else if (hashId == -1 || keyCode > 0)\n data.$keyChain = \"\"; // reset keyChain\n }\n return { command: command };\n };\n MultiHashHandler.prototype.getStatusText = function (editor, data) {\n return data.$keyChain || \"\";\n };\n return MultiHashHandler;\n}());\nfunction getPosition(command) {\n return typeof command == \"object\" && command.bindKey\n && command.bindKey.position\n || (command.isDefault ? -100 : 0);\n}\nvar HashHandler = /** @class */ (function (_super) {\n __extends(HashHandler, _super);\n function HashHandler(config, platform) {\n var _this = _super.call(this, config, platform) || this;\n _this.$singleCommand = true;\n return _this;\n }\n return HashHandler;\n}(MultiHashHandler));\nHashHandler.call = function (thisArg, config, platform) {\n MultiHashHandler.prototype.$init.call(thisArg, config, platform, true);\n};\nMultiHashHandler.call = function (thisArg, config, platform) {\n MultiHashHandler.prototype.$init.call(thisArg, config, platform, false);\n};\nexports.HashHandler = HashHandler;\nexports.MultiHashHandler = MultiHashHandler;\n\n});\n\nace.define(\"ace/commands/command_manager\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"../lib/oop\");\nvar MultiHashHandler = require(\"../keyboard/hash_handler\").MultiHashHandler;\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar CommandManager = /** @class */ (function (_super) {\n __extends(CommandManager, _super);\n function CommandManager(platform, commands) {\n var _this = _super.call(this, commands, platform) || this;\n _this.byName = _this.commands;\n _this.setDefaultHandler(\"exec\", function (e) {\n if (!e.args) {\n return e.command.exec(e.editor, {}, e.event, true);\n }\n return e.command.exec(e.editor, e.args, e.event, false);\n });\n return _this;\n }\n CommandManager.prototype.exec = function (command, editor, args) {\n if (Array.isArray(command)) {\n for (var i = command.length; i--;) {\n if (this.exec(command[i], editor, args))\n return true;\n }\n return false;\n }\n if (typeof command === \"string\")\n command = this.commands[command];\n if (!command)\n return false;\n if (editor && editor.$readOnly && !command.readOnly)\n return false;\n if (this.$checkCommandState != false && command.isAvailable && !command.isAvailable(editor))\n return false;\n var e = { editor: editor, command: command, args: args };\n e.returnValue = this._emit(\"exec\", e);\n this._signal(\"afterExec\", e);\n return e.returnValue === false ? false : true;\n };\n CommandManager.prototype.toggleRecording = function (editor) {\n if (this.$inReplay)\n return;\n editor && editor._emit(\"changeStatus\");\n if (this.recording) {\n this.macro.pop();\n this.off(\"exec\", this.$addCommandToMacro);\n if (!this.macro.length)\n this.macro = this.oldMacro;\n return this.recording = false;\n }\n if (!this.$addCommandToMacro) {\n this.$addCommandToMacro = function (e) {\n this.macro.push([e.command, e.args]);\n }.bind(this);\n }\n this.oldMacro = this.macro;\n this.macro = [];\n this.on(\"exec\", this.$addCommandToMacro);\n return this.recording = true;\n };\n CommandManager.prototype.replay = function (editor) {\n if (this.$inReplay || !this.macro)\n return;\n if (this.recording)\n return this.toggleRecording(editor);\n try {\n this.$inReplay = true;\n this.macro.forEach(function (x) {\n if (typeof x == \"string\")\n this.exec(x, editor);\n else\n this.exec(x[0], editor, x[1]);\n }, this);\n }\n finally {\n this.$inReplay = false;\n }\n };\n CommandManager.prototype.trimMacro = function (m) {\n return m.map(function (x) {\n if (typeof x[0] != \"string\")\n x[0] = x[0].name;\n if (!x[1])\n x = x[0];\n return x;\n });\n };\n return CommandManager;\n}(MultiHashHandler));\noop.implement(CommandManager.prototype, EventEmitter);\nexports.CommandManager = CommandManager;\n\n});\n\nace.define(\"ace/commands/default_commands\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/config\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"../lib/lang\");\nvar config = require(\"../config\");\nvar Range = require(\"../range\").Range;\nfunction bindKey(win, mac) {\n return { win: win, mac: mac };\n}\nexports.commands = [{\n name: \"showSettingsMenu\",\n description: \"Show settings menu\",\n bindKey: bindKey(\"Ctrl-,\", \"Command-,\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/settings_menu\", function (module) {\n module.init(editor);\n editor.showSettingsMenu();\n });\n },\n readOnly: true\n }, {\n name: \"goToNextError\",\n description: \"Go to next error\",\n bindKey: bindKey(\"Alt-E\", \"F4\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/error_marker\", function (module) {\n module.showErrorMarker(editor, 1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"goToPreviousError\",\n description: \"Go to previous error\",\n bindKey: bindKey(\"Alt-Shift-E\", \"Shift-F4\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/error_marker\", function (module) {\n module.showErrorMarker(editor, -1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"selectall\",\n description: \"Select all\",\n bindKey: bindKey(\"Ctrl-A\", \"Command-A\"),\n exec: function (editor) { editor.selectAll(); },\n readOnly: true\n }, {\n name: \"centerselection\",\n description: \"Center selection\",\n bindKey: bindKey(null, \"Ctrl-L\"),\n exec: function (editor) { editor.centerSelection(); },\n readOnly: true\n }, {\n name: \"gotoline\",\n description: \"Go to line...\",\n bindKey: bindKey(\"Ctrl-L\", \"Command-L\"),\n exec: function (editor, line) {\n if (typeof line === \"number\" && !isNaN(line))\n editor.gotoLine(line);\n editor.prompt({ $type: \"gotoLine\" });\n },\n readOnly: true\n }, {\n name: \"fold\",\n bindKey: bindKey(\"Alt-L|Ctrl-F1\", \"Command-Alt-L|Command-F1\"),\n exec: function (editor) { editor.session.toggleFold(false); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"unfold\",\n bindKey: bindKey(\"Alt-Shift-L|Ctrl-Shift-F1\", \"Command-Alt-Shift-L|Command-Shift-F1\"),\n exec: function (editor) { editor.session.toggleFold(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"toggleFoldWidget\",\n description: \"Toggle fold widget\",\n bindKey: bindKey(\"F2\", \"F2\"),\n exec: function (editor) { editor.session.toggleFoldWidget(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"toggleParentFoldWidget\",\n description: \"Toggle parent fold widget\",\n bindKey: bindKey(\"Alt-F2\", \"Alt-F2\"),\n exec: function (editor) { editor.session.toggleFoldWidget(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldall\",\n description: \"Fold all\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function (editor) { editor.session.foldAll(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldAllComments\",\n description: \"Fold all comments\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function (editor) { editor.session.foldAllComments(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldOther\",\n description: \"Fold other\",\n bindKey: bindKey(\"Alt-0\", \"Command-Option-0\"),\n exec: function (editor) {\n editor.session.foldAll();\n editor.session.unfold(editor.selection.getAllRanges());\n },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"unfoldall\",\n description: \"Unfold all\",\n bindKey: bindKey(\"Alt-Shift-0\", \"Command-Option-Shift-0\"),\n exec: function (editor) { editor.session.unfold(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"findnext\",\n description: \"Find next\",\n bindKey: bindKey(\"Ctrl-K\", \"Command-G\"),\n exec: function (editor) { editor.findNext(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"findprevious\",\n description: \"Find previous\",\n bindKey: bindKey(\"Ctrl-Shift-K\", \"Command-Shift-G\"),\n exec: function (editor) { editor.findPrevious(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"selectOrFindNext\",\n description: \"Select or find next\",\n bindKey: bindKey(\"Alt-K\", \"Ctrl-G\"),\n exec: function (editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findNext();\n },\n readOnly: true\n }, {\n name: \"selectOrFindPrevious\",\n description: \"Select or find previous\",\n bindKey: bindKey(\"Alt-Shift-K\", \"Ctrl-Shift-G\"),\n exec: function (editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findPrevious();\n },\n readOnly: true\n }, {\n name: \"find\",\n description: \"Find\",\n bindKey: bindKey(\"Ctrl-F\", \"Command-F\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/searchbox\", function (e) { e.Search(editor); });\n },\n readOnly: true\n }, {\n name: \"overwrite\",\n description: \"Overwrite\",\n bindKey: \"Insert\",\n exec: function (editor) { editor.toggleOverwrite(); },\n readOnly: true\n }, {\n name: \"selecttostart\",\n description: \"Select to start\",\n bindKey: bindKey(\"Ctrl-Shift-Home\", \"Command-Shift-Home|Command-Shift-Up\"),\n exec: function (editor) { editor.getSelection().selectFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"gotostart\",\n description: \"Go to start\",\n bindKey: bindKey(\"Ctrl-Home\", \"Command-Home|Command-Up\"),\n exec: function (editor) { editor.navigateFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"selectup\",\n description: \"Select up\",\n bindKey: bindKey(\"Shift-Up\", \"Shift-Up|Ctrl-Shift-P\"),\n exec: function (editor) { editor.getSelection().selectUp(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"golineup\",\n description: \"Go line up\",\n bindKey: bindKey(\"Up\", \"Up|Ctrl-P\"),\n exec: function (editor, args) { editor.navigateUp(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttoend\",\n description: \"Select to end\",\n bindKey: bindKey(\"Ctrl-Shift-End\", \"Command-Shift-End|Command-Shift-Down\"),\n exec: function (editor) { editor.getSelection().selectFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"gotoend\",\n description: \"Go to end\",\n bindKey: bindKey(\"Ctrl-End\", \"Command-End|Command-Down\"),\n exec: function (editor) { editor.navigateFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"selectdown\",\n description: \"Select down\",\n bindKey: bindKey(\"Shift-Down\", \"Shift-Down|Ctrl-Shift-N\"),\n exec: function (editor) { editor.getSelection().selectDown(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"golinedown\",\n description: \"Go line down\",\n bindKey: bindKey(\"Down\", \"Down|Ctrl-N\"),\n exec: function (editor, args) { editor.navigateDown(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectwordleft\",\n description: \"Select word left\",\n bindKey: bindKey(\"Ctrl-Shift-Left\", \"Option-Shift-Left\"),\n exec: function (editor) { editor.getSelection().selectWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotowordleft\",\n description: \"Go to word left\",\n bindKey: bindKey(\"Ctrl-Left\", \"Option-Left\"),\n exec: function (editor) { editor.navigateWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttolinestart\",\n description: \"Select to line start\",\n bindKey: bindKey(\"Alt-Shift-Left\", \"Command-Shift-Left|Ctrl-Shift-A\"),\n exec: function (editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotolinestart\",\n description: \"Go to line start\",\n bindKey: bindKey(\"Alt-Left|Home\", \"Command-Left|Home|Ctrl-A\"),\n exec: function (editor) { editor.navigateLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectleft\",\n description: \"Select left\",\n bindKey: bindKey(\"Shift-Left\", \"Shift-Left|Ctrl-Shift-B\"),\n exec: function (editor) { editor.getSelection().selectLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotoleft\",\n description: \"Go to left\",\n bindKey: bindKey(\"Left\", \"Left|Ctrl-B\"),\n exec: function (editor, args) { editor.navigateLeft(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectwordright\",\n description: \"Select word right\",\n bindKey: bindKey(\"Ctrl-Shift-Right\", \"Option-Shift-Right\"),\n exec: function (editor) { editor.getSelection().selectWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotowordright\",\n description: \"Go to word right\",\n bindKey: bindKey(\"Ctrl-Right\", \"Option-Right\"),\n exec: function (editor) { editor.navigateWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttolineend\",\n description: \"Select to line end\",\n bindKey: bindKey(\"Alt-Shift-Right\", \"Command-Shift-Right|Shift-End|Ctrl-Shift-E\"),\n exec: function (editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotolineend\",\n description: \"Go to line end\",\n bindKey: bindKey(\"Alt-Right|End\", \"Command-Right|End|Ctrl-E\"),\n exec: function (editor) { editor.navigateLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectright\",\n description: \"Select right\",\n bindKey: bindKey(\"Shift-Right\", \"Shift-Right\"),\n exec: function (editor) { editor.getSelection().selectRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotoright\",\n description: \"Go to right\",\n bindKey: bindKey(\"Right\", \"Right|Ctrl-F\"),\n exec: function (editor, args) { editor.navigateRight(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectpagedown\",\n description: \"Select page down\",\n bindKey: \"Shift-PageDown\",\n exec: function (editor) { editor.selectPageDown(); },\n readOnly: true\n }, {\n name: \"pagedown\",\n description: \"Page down\",\n bindKey: bindKey(null, \"Option-PageDown\"),\n exec: function (editor) { editor.scrollPageDown(); },\n readOnly: true\n }, {\n name: \"gotopagedown\",\n description: \"Go to page down\",\n bindKey: bindKey(\"PageDown\", \"PageDown|Ctrl-V\"),\n exec: function (editor) { editor.gotoPageDown(); },\n readOnly: true\n }, {\n name: \"selectpageup\",\n description: \"Select page up\",\n bindKey: \"Shift-PageUp\",\n exec: function (editor) { editor.selectPageUp(); },\n readOnly: true\n }, {\n name: \"pageup\",\n description: \"Page up\",\n bindKey: bindKey(null, \"Option-PageUp\"),\n exec: function (editor) { editor.scrollPageUp(); },\n readOnly: true\n }, {\n name: \"gotopageup\",\n description: \"Go to page up\",\n bindKey: \"PageUp\",\n exec: function (editor) { editor.gotoPageUp(); },\n readOnly: true\n }, {\n name: \"scrollup\",\n description: \"Scroll up\",\n bindKey: bindKey(\"Ctrl-Up\", null),\n exec: function (e) { e.renderer.scrollBy(0, -2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n }, {\n name: \"scrolldown\",\n description: \"Scroll down\",\n bindKey: bindKey(\"Ctrl-Down\", null),\n exec: function (e) { e.renderer.scrollBy(0, 2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n }, {\n name: \"selectlinestart\",\n description: \"Select line start\",\n bindKey: \"Shift-Home\",\n exec: function (editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectlineend\",\n description: \"Select line end\",\n bindKey: \"Shift-End\",\n exec: function (editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"togglerecording\",\n description: \"Toggle recording\",\n bindKey: bindKey(\"Ctrl-Alt-E\", \"Command-Option-E\"),\n exec: function (editor) { editor.commands.toggleRecording(editor); },\n readOnly: true\n }, {\n name: \"replaymacro\",\n description: \"Replay macro\",\n bindKey: bindKey(\"Ctrl-Shift-E\", \"Command-Shift-E\"),\n exec: function (editor) { editor.commands.replay(editor); },\n readOnly: true\n }, {\n name: \"jumptomatching\",\n description: \"Jump to matching\",\n bindKey: bindKey(\"Ctrl-\\\\|Ctrl-P\", \"Command-\\\\\"),\n exec: function (editor) { editor.jumpToMatching(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"selecttomatching\",\n description: \"Select to matching\",\n bindKey: bindKey(\"Ctrl-Shift-\\\\|Ctrl-Shift-P\", \"Command-Shift-\\\\\"),\n exec: function (editor) { editor.jumpToMatching(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"expandToMatching\",\n description: \"Expand to matching\",\n bindKey: bindKey(\"Ctrl-Shift-M\", \"Ctrl-Shift-M\"),\n exec: function (editor) { editor.jumpToMatching(true, true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"passKeysToBrowser\",\n description: \"Pass keys to browser\",\n bindKey: bindKey(null, null),\n exec: function () { },\n passEvent: true,\n readOnly: true\n }, {\n name: \"copy\",\n description: \"Copy\",\n exec: function (editor) {\n },\n readOnly: true\n },\n {\n name: \"cut\",\n description: \"Cut\",\n exec: function (editor) {\n var cutLine = editor.$copyWithEmptySelection && editor.selection.isEmpty();\n var range = cutLine ? editor.selection.getLineRange() : editor.selection.getRange();\n editor._emit(\"cut\", range);\n if (!range.isEmpty())\n editor.session.remove(range);\n editor.clearSelection();\n },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"paste\",\n description: \"Paste\",\n exec: function (editor, args) {\n editor.$handlePaste(args);\n },\n scrollIntoView: \"cursor\"\n }, {\n name: \"removeline\",\n description: \"Remove line\",\n bindKey: bindKey(\"Ctrl-D\", \"Command-D\"),\n exec: function (editor) { editor.removeLines(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEachLine\"\n }, {\n name: \"duplicateSelection\",\n description: \"Duplicate selection\",\n bindKey: bindKey(\"Ctrl-Shift-D\", \"Command-Shift-D\"),\n exec: function (editor) { editor.duplicateSelection(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"sortlines\",\n description: \"Sort lines\",\n bindKey: bindKey(\"Ctrl-Alt-S\", \"Command-Alt-S\"),\n exec: function (editor) { editor.sortLines(); },\n scrollIntoView: \"selection\",\n multiSelectAction: \"forEachLine\"\n }, {\n name: \"togglecomment\",\n description: \"Toggle comment\",\n bindKey: bindKey(\"Ctrl-/\", \"Command-/\"),\n exec: function (editor) { editor.toggleCommentLines(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"toggleBlockComment\",\n description: \"Toggle block comment\",\n bindKey: bindKey(\"Ctrl-Shift-/\", \"Command-Shift-/\"),\n exec: function (editor) { editor.toggleBlockComment(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"modifyNumberUp\",\n description: \"Modify number up\",\n bindKey: bindKey(\"Ctrl-Shift-Up\", \"Alt-Shift-Up\"),\n exec: function (editor) { editor.modifyNumber(1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"modifyNumberDown\",\n description: \"Modify number down\",\n bindKey: bindKey(\"Ctrl-Shift-Down\", \"Alt-Shift-Down\"),\n exec: function (editor) { editor.modifyNumber(-1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"replace\",\n description: \"Replace\",\n bindKey: bindKey(\"Ctrl-H\", \"Command-Option-F\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/searchbox\", function (e) { e.Search(editor, true); });\n }\n }, {\n name: \"undo\",\n description: \"Undo\",\n bindKey: bindKey(\"Ctrl-Z\", \"Command-Z\"),\n exec: function (editor) { editor.undo(); }\n }, {\n name: \"redo\",\n description: \"Redo\",\n bindKey: bindKey(\"Ctrl-Shift-Z|Ctrl-Y\", \"Command-Shift-Z|Command-Y\"),\n exec: function (editor) { editor.redo(); }\n }, {\n name: \"copylinesup\",\n description: \"Copy lines up\",\n bindKey: bindKey(\"Alt-Shift-Up\", \"Command-Option-Up\"),\n exec: function (editor) { editor.copyLinesUp(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"movelinesup\",\n description: \"Move lines up\",\n bindKey: bindKey(\"Alt-Up\", \"Option-Up\"),\n exec: function (editor) { editor.moveLinesUp(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"copylinesdown\",\n description: \"Copy lines down\",\n bindKey: bindKey(\"Alt-Shift-Down\", \"Command-Option-Down\"),\n exec: function (editor) { editor.copyLinesDown(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"movelinesdown\",\n description: \"Move lines down\",\n bindKey: bindKey(\"Alt-Down\", \"Option-Down\"),\n exec: function (editor) { editor.moveLinesDown(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"del\",\n description: \"Delete\",\n bindKey: bindKey(\"Delete\", \"Delete|Ctrl-D|Shift-Delete\"),\n exec: function (editor) { editor.remove(\"right\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"backspace\",\n description: \"Backspace\",\n bindKey: bindKey(\"Shift-Backspace|Backspace\", \"Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H\"),\n exec: function (editor) { editor.remove(\"left\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"cut_or_delete\",\n description: \"Cut or delete\",\n bindKey: bindKey(\"Shift-Delete\", null),\n exec: function (editor) {\n if (editor.selection.isEmpty()) {\n editor.remove(\"left\");\n }\n else {\n return false;\n }\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolinestart\",\n description: \"Remove to line start\",\n bindKey: bindKey(\"Alt-Backspace\", \"Command-Backspace\"),\n exec: function (editor) { editor.removeToLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolineend\",\n description: \"Remove to line end\",\n bindKey: bindKey(\"Alt-Delete\", \"Ctrl-K|Command-Delete\"),\n exec: function (editor) { editor.removeToLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolinestarthard\",\n description: \"Remove to line start hard\",\n bindKey: bindKey(\"Ctrl-Shift-Backspace\", null),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.start.column = 0;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolineendhard\",\n description: \"Remove to line end hard\",\n bindKey: bindKey(\"Ctrl-Shift-Delete\", null),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.end.column = Number.MAX_VALUE;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removewordleft\",\n description: \"Remove word left\",\n bindKey: bindKey(\"Ctrl-Backspace\", \"Alt-Backspace|Ctrl-Alt-Backspace\"),\n exec: function (editor) { editor.removeWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removewordright\",\n description: \"Remove word right\",\n bindKey: bindKey(\"Ctrl-Delete\", \"Alt-Delete\"),\n exec: function (editor) { editor.removeWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"outdent\",\n description: \"Outdent\",\n bindKey: bindKey(\"Shift-Tab\", \"Shift-Tab\"),\n exec: function (editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"indent\",\n description: \"Indent\",\n bindKey: bindKey(\"Tab\", \"Tab\"),\n exec: function (editor) { editor.indent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"blockoutdent\",\n description: \"Block outdent\",\n bindKey: bindKey(\"Ctrl-[\", \"Ctrl-[\"),\n exec: function (editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"blockindent\",\n description: \"Block indent\",\n bindKey: bindKey(\"Ctrl-]\", \"Ctrl-]\"),\n exec: function (editor) { editor.blockIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"insertstring\",\n description: \"Insert string\",\n exec: function (editor, str) { editor.insert(str); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"inserttext\",\n description: \"Insert text\",\n exec: function (editor, args) {\n editor.insert(lang.stringRepeat(args.text || \"\", args.times || 1));\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"splitline\",\n description: \"Split line\",\n bindKey: bindKey(null, \"Ctrl-O\"),\n exec: function (editor) { editor.splitLine(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"transposeletters\",\n description: \"Transpose letters\",\n bindKey: bindKey(\"Alt-Shift-X\", \"Ctrl-T\"),\n exec: function (editor) { editor.transposeLetters(); },\n multiSelectAction: function (editor) { editor.transposeSelections(1); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"touppercase\",\n description: \"To uppercase\",\n bindKey: bindKey(\"Ctrl-U\", \"Ctrl-U\"),\n exec: function (editor) { editor.toUpperCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"tolowercase\",\n description: \"To lowercase\",\n bindKey: bindKey(\"Ctrl-Shift-U\", \"Ctrl-Shift-U\"),\n exec: function (editor) { editor.toLowerCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"autoindent\",\n description: \"Auto Indent\",\n bindKey: bindKey(null, null),\n exec: function (editor) { editor.autoIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"animate\"\n }, {\n name: \"expandtoline\",\n description: \"Expand to line\",\n bindKey: bindKey(\"Ctrl-Shift-L\", \"Command-Shift-L\"),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.start.column = range.end.column = 0;\n range.end.row++;\n editor.selection.setRange(range, false);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"openlink\",\n bindKey: bindKey(\"Ctrl+F3\", \"F3\"),\n exec: function (editor) { editor.openLink(); }\n }, {\n name: \"joinlines\",\n description: \"Join lines\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n var isBackwards = editor.selection.isBackwards();\n var selectionStart = isBackwards ? editor.selection.getSelectionLead() : editor.selection.getSelectionAnchor();\n var selectionEnd = isBackwards ? editor.selection.getSelectionAnchor() : editor.selection.getSelectionLead();\n var firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length;\n var selectedText = editor.session.doc.getTextRange(editor.selection.getRange());\n var selectedCount = selectedText.replace(/\\n\\s*/, \" \").length;\n var insertLine = editor.session.doc.getLine(selectionStart.row);\n for (var i = selectionStart.row + 1; i <= selectionEnd.row + 1; i++) {\n var curLine = lang.stringTrimLeft(lang.stringTrimRight(editor.session.doc.getLine(i)));\n if (curLine.length !== 0) {\n curLine = \" \" + curLine;\n }\n insertLine += curLine;\n }\n if (selectionEnd.row + 1 < (editor.session.doc.getLength() - 1)) {\n insertLine += editor.session.doc.getNewLineCharacter();\n }\n editor.clearSelection();\n editor.session.doc.replace(new Range(selectionStart.row, 0, selectionEnd.row + 2, 0), insertLine);\n if (selectedCount > 0) {\n editor.selection.moveCursorTo(selectionStart.row, selectionStart.column);\n editor.selection.selectTo(selectionStart.row, selectionStart.column + selectedCount);\n }\n else {\n firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length > firstLineEndCol ? (firstLineEndCol + 1) : firstLineEndCol;\n editor.selection.moveCursorTo(selectionStart.row, firstLineEndCol);\n }\n },\n multiSelectAction: \"forEach\",\n readOnly: true\n }, {\n name: \"invertSelection\",\n description: \"Invert selection\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n var endRow = editor.session.doc.getLength() - 1;\n var endCol = editor.session.doc.getLine(endRow).length;\n var ranges = editor.selection.rangeList.ranges;\n var newRanges = [];\n if (ranges.length < 1) {\n ranges = [editor.selection.getRange()];\n }\n for (var i = 0; i < ranges.length; i++) {\n if (i == (ranges.length - 1)) {\n if (!(ranges[i].end.row === endRow && ranges[i].end.column === endCol)) {\n newRanges.push(new Range(ranges[i].end.row, ranges[i].end.column, endRow, endCol));\n }\n }\n if (i === 0) {\n if (!(ranges[i].start.row === 0 && ranges[i].start.column === 0)) {\n newRanges.push(new Range(0, 0, ranges[i].start.row, ranges[i].start.column));\n }\n }\n else {\n newRanges.push(new Range(ranges[i - 1].end.row, ranges[i - 1].end.column, ranges[i].start.row, ranges[i].start.column));\n }\n }\n editor.exitMultiSelectMode();\n editor.clearSelection();\n for (var i = 0; i < newRanges.length; i++) {\n editor.selection.addRange(newRanges[i], false);\n }\n },\n readOnly: true,\n scrollIntoView: \"none\"\n }, {\n name: \"addLineAfter\",\n description: \"Add new line after the current line\",\n exec: function (editor) {\n editor.selection.clearSelection();\n editor.navigateLineEnd();\n editor.insert(\"\\n\");\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"addLineBefore\",\n description: \"Add new line before the current line\",\n exec: function (editor) {\n editor.selection.clearSelection();\n var cursor = editor.getCursorPosition();\n editor.selection.moveTo(cursor.row - 1, Number.MAX_VALUE);\n editor.insert(\"\\n\");\n if (cursor.row === 0)\n editor.navigateUp();\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"openCommandPallete\",\n exec: function (editor) {\n console.warn(\"This is an obsolete command. Please use `openCommandPalette` instead.\");\n editor.prompt({ $type: \"commands\" });\n },\n readOnly: true\n }, {\n name: \"openCommandPalette\",\n description: \"Open command palette\",\n bindKey: bindKey(\"F1\", \"F1\"),\n exec: function (editor) {\n editor.prompt({ $type: \"commands\" });\n },\n readOnly: true\n }, {\n name: \"modeSelect\",\n description: \"Change language mode...\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n editor.prompt({ $type: \"modes\" });\n },\n readOnly: true\n }];\nfor (var i = 1; i < 9; i++) {\n exports.commands.push({\n name: \"foldToLevel\" + i,\n description: \"Fold To Level \" + i,\n level: i,\n exec: function (editor) { editor.session.foldToLevel(this.level); },\n scrollIntoView: \"center\",\n readOnly: true\n });\n}\n\n});\n\nace.define(\"ace/line_widgets\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"./lib/dom\");\nvar LineWidgets = /** @class */ (function () {\n function LineWidgets(session) {\n this.session = session;\n this.session.widgetManager = this;\n this.session.getRowLength = this.getRowLength;\n this.session.$getWidgetScreenLength = this.$getWidgetScreenLength;\n this.updateOnChange = this.updateOnChange.bind(this);\n this.renderWidgets = this.renderWidgets.bind(this);\n this.measureWidgets = this.measureWidgets.bind(this);\n this.session._changedWidgets = [];\n this.$onChangeEditor = this.$onChangeEditor.bind(this);\n this.session.on(\"change\", this.updateOnChange);\n this.session.on(\"changeFold\", this.updateOnFold);\n this.session.on(\"changeEditor\", this.$onChangeEditor);\n }\n LineWidgets.prototype.getRowLength = function (row) {\n var h;\n if (this.lineWidgets)\n h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n else\n h = 0;\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1 + h;\n }\n else {\n return this.$wrapData[row].length + 1 + h;\n }\n };\n LineWidgets.prototype.$getWidgetScreenLength = function () {\n var screenRows = 0;\n this.lineWidgets.forEach(function (w) {\n if (w && w.rowCount && !w.hidden)\n screenRows += w.rowCount;\n });\n return screenRows;\n };\n LineWidgets.prototype.$onChangeEditor = function (e) {\n this.attach(e.editor);\n };\n LineWidgets.prototype.attach = function (editor) {\n if (editor && editor.widgetManager && editor.widgetManager != this)\n editor.widgetManager.detach();\n if (this.editor == editor)\n return;\n this.detach();\n this.editor = editor;\n if (editor) {\n editor.widgetManager = this;\n editor.renderer.on(\"beforeRender\", this.measureWidgets);\n editor.renderer.on(\"afterRender\", this.renderWidgets);\n }\n };\n LineWidgets.prototype.detach = function (e) {\n var editor = this.editor;\n if (!editor)\n return;\n this.editor = null;\n editor.widgetManager = null;\n editor.renderer.off(\"beforeRender\", this.measureWidgets);\n editor.renderer.off(\"afterRender\", this.renderWidgets);\n var lineWidgets = this.session.lineWidgets;\n lineWidgets && lineWidgets.forEach(function (w) {\n if (w && w.el && w.el.parentNode) {\n w._inDocument = false;\n w.el.parentNode.removeChild(w.el);\n }\n });\n };\n LineWidgets.prototype.updateOnFold = function (e, session) {\n var lineWidgets = session.lineWidgets;\n if (!lineWidgets || !e.action)\n return;\n var fold = e.data;\n var start = fold.start.row;\n var end = fold.end.row;\n var hide = e.action == \"add\";\n for (var i = start + 1; i < end; i++) {\n if (lineWidgets[i])\n lineWidgets[i].hidden = hide;\n }\n if (lineWidgets[end]) {\n if (hide) {\n if (!lineWidgets[start])\n lineWidgets[start] = lineWidgets[end];\n else\n lineWidgets[end].hidden = hide;\n }\n else {\n if (lineWidgets[start] == lineWidgets[end])\n lineWidgets[start] = undefined;\n lineWidgets[end].hidden = hide;\n }\n }\n };\n LineWidgets.prototype.updateOnChange = function (delta) {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n if (len === 0) {\n }\n else if (delta.action == \"remove\") {\n var removed = lineWidgets.splice(startRow + 1, len);\n if (!lineWidgets[startRow] && removed[removed.length - 1]) {\n lineWidgets[startRow] = removed.pop();\n }\n removed.forEach(function (w) {\n w && this.removeLineWidget(w);\n }, this);\n this.$updateRows();\n }\n else {\n var args = new Array(len);\n if (lineWidgets[startRow] && lineWidgets[startRow].column != null) {\n if (delta.start.column > lineWidgets[startRow].column)\n startRow++;\n }\n args.unshift(startRow, 0);\n lineWidgets.splice.apply(lineWidgets, args);\n this.$updateRows();\n }\n };\n LineWidgets.prototype.$updateRows = function () {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var noWidgets = true;\n lineWidgets.forEach(function (w, i) {\n if (w) {\n noWidgets = false;\n w.row = i;\n while (w.$oldWidget) {\n w.$oldWidget.row = i;\n w = w.$oldWidget;\n }\n }\n });\n if (noWidgets)\n this.session.lineWidgets = null;\n };\n LineWidgets.prototype.$registerLineWidget = function (w) {\n if (!this.session.lineWidgets)\n this.session.lineWidgets = new Array(this.session.getLength());\n var old = this.session.lineWidgets[w.row];\n if (old) {\n w.$oldWidget = old;\n if (old.el && old.el.parentNode) {\n old.el.parentNode.removeChild(old.el);\n old._inDocument = false;\n }\n }\n this.session.lineWidgets[w.row] = w;\n return w;\n };\n LineWidgets.prototype.addLineWidget = function (w) {\n this.$registerLineWidget(w);\n w.session = this.session;\n if (!this.editor)\n return w;\n var renderer = this.editor.renderer;\n if (w.html && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.innerHTML = w.html;\n }\n if (w.text && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.textContent = w.text;\n }\n if (w.el) {\n dom.addCssClass(w.el, \"ace_lineWidgetContainer\");\n if (w.className) {\n dom.addCssClass(w.el, w.className);\n }\n w.el.style.position = \"absolute\";\n w.el.style.zIndex = 5;\n renderer.container.appendChild(w.el);\n w._inDocument = true;\n if (!w.coverGutter) {\n w.el.style.zIndex = 3;\n }\n if (w.pixelHeight == null) {\n w.pixelHeight = w.el.offsetHeight;\n }\n }\n if (w.rowCount == null) {\n w.rowCount = w.pixelHeight / renderer.layerConfig.lineHeight;\n }\n var fold = this.session.getFoldAt(w.row, 0);\n w.$fold = fold;\n if (fold) {\n var lineWidgets = this.session.lineWidgets;\n if (w.row == fold.end.row && !lineWidgets[fold.start.row])\n lineWidgets[fold.start.row] = w;\n else\n w.hidden = true;\n }\n this.session._emit(\"changeFold\", { data: { start: { row: w.row } } });\n this.$updateRows();\n this.renderWidgets(null, renderer);\n this.onWidgetChanged(w);\n return w;\n };\n LineWidgets.prototype.removeLineWidget = function (w) {\n w._inDocument = false;\n w.session = null;\n if (w.el && w.el.parentNode)\n w.el.parentNode.removeChild(w.el);\n if (w.editor && w.editor.destroy)\n try {\n w.editor.destroy();\n }\n catch (e) { }\n if (this.session.lineWidgets) {\n var w1 = this.session.lineWidgets[w.row];\n if (w1 == w) {\n this.session.lineWidgets[w.row] = w.$oldWidget;\n if (w.$oldWidget)\n this.onWidgetChanged(w.$oldWidget);\n }\n else {\n while (w1) {\n if (w1.$oldWidget == w) {\n w1.$oldWidget = w.$oldWidget;\n break;\n }\n w1 = w1.$oldWidget;\n }\n }\n }\n this.session._emit(\"changeFold\", { data: { start: { row: w.row } } });\n this.$updateRows();\n };\n LineWidgets.prototype.getWidgetsAtRow = function (row) {\n var lineWidgets = this.session.lineWidgets;\n var w = lineWidgets && lineWidgets[row];\n var list = [];\n while (w) {\n list.push(w);\n w = w.$oldWidget;\n }\n return list;\n };\n LineWidgets.prototype.onWidgetChanged = function (w) {\n this.session._changedWidgets.push(w);\n this.editor && this.editor.renderer.updateFull();\n };\n LineWidgets.prototype.measureWidgets = function (e, renderer) {\n var changedWidgets = this.session._changedWidgets;\n var config = renderer.layerConfig;\n if (!changedWidgets || !changedWidgets.length)\n return;\n var min = Infinity;\n for (var i = 0; i < changedWidgets.length; i++) {\n var w = changedWidgets[i];\n if (!w || !w.el)\n continue;\n if (w.session != this.session)\n continue;\n if (!w._inDocument) {\n if (this.session.lineWidgets[w.row] != w)\n continue;\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n w.h = w.el.offsetHeight;\n if (!w.fixedWidth) {\n w.w = w.el.offsetWidth;\n w.screenWidth = Math.ceil(w.w / config.characterWidth);\n }\n var rowCount = w.h / config.lineHeight;\n if (w.coverLine) {\n rowCount -= this.session.getRowLineCount(w.row);\n if (rowCount < 0)\n rowCount = 0;\n }\n if (w.rowCount != rowCount) {\n w.rowCount = rowCount;\n if (w.row < min)\n min = w.row;\n }\n }\n if (min != Infinity) {\n this.session._emit(\"changeFold\", { data: { start: { row: min } } });\n this.session.lineWidgetWidth = null;\n }\n this.session._changedWidgets = [];\n };\n LineWidgets.prototype.renderWidgets = function (e, renderer) {\n var config = renderer.layerConfig;\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var first = Math.min(this.firstRow, config.firstRow);\n var last = Math.max(this.lastRow, config.lastRow, lineWidgets.length);\n while (first > 0 && !lineWidgets[first])\n first--;\n this.firstRow = config.firstRow;\n this.lastRow = config.lastRow;\n renderer.$cursorLayer.config = config;\n for (var i = first; i <= last; i++) {\n var w = lineWidgets[i];\n if (!w || !w.el)\n continue;\n if (w.hidden) {\n w.el.style.top = -100 - (w.pixelHeight || 0) + \"px\";\n continue;\n }\n if (!w._inDocument) {\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n var top = renderer.$cursorLayer.getPixelPosition({ row: i, column: 0 }, true).top;\n if (!w.coverLine)\n top += config.lineHeight * this.session.getRowLineCount(w.row);\n w.el.style.top = top - config.offset + \"px\";\n var left = w.coverGutter ? 0 : renderer.gutterWidth;\n if (!w.fixedWidth)\n left -= renderer.scrollLeft;\n w.el.style.left = left + \"px\";\n if (w.fullWidth && w.screenWidth) {\n w.el.style.minWidth = config.width + 2 * config.padding + \"px\";\n }\n if (w.fixedWidth) {\n w.el.style.right = renderer.scrollBar.getWidth() + \"px\";\n }\n else {\n w.el.style.right = \"\";\n }\n }\n };\n return LineWidgets;\n}());\nexports.LineWidgets = LineWidgets;\n\n});\n\nace.define(\"ace/keyboard/gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/mouse/default_gutter_handler\"], function(require, exports, module){\"use strict\";\nvar keys = require('../lib/keys');\nvar GutterTooltip = require(\"../mouse/default_gutter_handler\").GutterTooltip;\nvar GutterKeyboardHandler = /** @class */ (function () {\n function GutterKeyboardHandler(editor) {\n this.editor = editor;\n this.gutterLayer = editor.renderer.$gutterLayer;\n this.element = editor.renderer.$gutter;\n this.lines = editor.renderer.$gutterLayer.$lines;\n this.activeRowIndex = null;\n this.activeLane = null;\n this.annotationTooltip = new GutterTooltip(this.editor);\n }\n GutterKeyboardHandler.prototype.addListener = function () {\n this.element.addEventListener(\"keydown\", this.$onGutterKeyDown.bind(this));\n this.element.addEventListener(\"focusout\", this.$blurGutter.bind(this));\n this.editor.on(\"mousewheel\", this.$blurGutter.bind(this));\n };\n GutterKeyboardHandler.prototype.removeListener = function () {\n this.element.removeEventListener(\"keydown\", this.$onGutterKeyDown.bind(this));\n this.element.removeEventListener(\"focusout\", this.$blurGutter.bind(this));\n this.editor.off(\"mousewheel\", this.$blurGutter.bind(this));\n };\n GutterKeyboardHandler.prototype.$onGutterKeyDown = function (e) {\n if (this.annotationTooltip.isOpen) {\n e.preventDefault();\n if (e.keyCode === keys[\"escape\"])\n this.annotationTooltip.hideTooltip();\n return;\n }\n if (e.target === this.element) {\n if (e.keyCode != keys[\"enter\"]) {\n return;\n }\n e.preventDefault();\n var row = this.editor.getCursorPosition().row;\n if (!this.editor.isRowVisible(row))\n this.editor.scrollToLine(row, true, true);\n setTimeout(function () {\n var index = this.$rowToRowIndex(this.gutterLayer.$cursorCell.row);\n var nearestFoldIndex = this.$findNearestFoldWidget(index);\n var nearestAnnotationIndex = this.$findNearestAnnotation(index);\n if (nearestFoldIndex === null && nearestAnnotationIndex === null)\n return;\n if (nearestFoldIndex === null && nearestAnnotationIndex !== null) {\n this.activeRowIndex = nearestAnnotationIndex;\n this.activeLane = \"annotation\";\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n if (nearestFoldIndex !== null && nearestAnnotationIndex === null) {\n this.activeRowIndex = nearestFoldIndex;\n this.activeLane = \"fold\";\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n if (Math.abs(nearestAnnotationIndex - index) < Math.abs(nearestFoldIndex - index)) {\n this.activeRowIndex = nearestAnnotationIndex;\n this.activeLane = \"annotation\";\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n else {\n this.activeRowIndex = nearestFoldIndex;\n this.activeLane = \"fold\";\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }.bind(this), 10);\n return;\n }\n this.$handleGutterKeyboardInteraction(e);\n setTimeout(function () {\n this.editor._signal(\"gutterkeydown\", new GutterKeyboardEvent(e, this));\n }.bind(this), 10);\n };\n GutterKeyboardHandler.prototype.$handleGutterKeyboardInteraction = function (e) {\n if (e.keyCode === keys[\"tab\"]) {\n e.preventDefault();\n return;\n }\n if (e.keyCode === keys[\"escape\"]) {\n e.preventDefault();\n this.$blurGutter();\n this.element.focus();\n this.lane = null;\n return;\n }\n if (e.keyCode === keys[\"up\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n this.$moveFoldWidgetUp();\n break;\n case \"annotation\":\n this.$moveAnnotationUp();\n break;\n }\n return;\n }\n if (e.keyCode === keys[\"down\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n this.$moveFoldWidgetDown();\n break;\n case \"annotation\":\n this.$moveAnnotationDown();\n break;\n }\n return;\n }\n if (e.keyCode === keys[\"left\"]) {\n e.preventDefault();\n this.$switchLane(\"annotation\");\n return;\n }\n if (e.keyCode === keys[\"right\"]) {\n e.preventDefault();\n this.$switchLane(\"fold\");\n return;\n }\n if (e.keyCode === keys[\"enter\"] || e.keyCode === keys[\"space\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n if (this.gutterLayer.session.foldWidgets[this.$rowIndexToRow(this.activeRowIndex)] === 'start') {\n var rowFoldingWidget = this.$rowIndexToRow(this.activeRowIndex);\n this.editor.session.onFoldWidgetClick(this.$rowIndexToRow(this.activeRowIndex), e);\n setTimeout(function () {\n if (this.$rowIndexToRow(this.activeRowIndex) !== rowFoldingWidget) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = this.$rowToRowIndex(rowFoldingWidget);\n this.$focusFoldWidget(this.activeRowIndex);\n }\n }.bind(this), 10);\n break;\n }\n else if (this.gutterLayer.session.foldWidgets[this.$rowIndexToRow(this.activeRowIndex)] === 'end') {\n break;\n }\n return;\n case \"annotation\":\n var gutterElement = this.lines.cells[this.activeRowIndex].element.childNodes[2];\n var rect = gutterElement.getBoundingClientRect();\n var style = this.annotationTooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n this.annotationTooltip.showTooltip(this.$rowIndexToRow(this.activeRowIndex));\n break;\n }\n return;\n }\n };\n GutterKeyboardHandler.prototype.$blurGutter = function () {\n if (this.activeRowIndex !== null) {\n switch (this.activeLane) {\n case \"fold\":\n this.$blurFoldWidget(this.activeRowIndex);\n break;\n case \"annotation\":\n this.$blurAnnotation(this.activeRowIndex);\n break;\n }\n }\n if (this.annotationTooltip.isOpen)\n this.annotationTooltip.hideTooltip();\n return;\n };\n GutterKeyboardHandler.prototype.$isFoldWidgetVisible = function (index) {\n var isRowFullyVisible = this.editor.isRowFullyVisible(this.$rowIndexToRow(index));\n var isIconVisible = this.$getFoldWidget(index).style.display !== \"none\";\n return isRowFullyVisible && isIconVisible;\n };\n GutterKeyboardHandler.prototype.$isAnnotationVisible = function (index) {\n var isRowFullyVisible = this.editor.isRowFullyVisible(this.$rowIndexToRow(index));\n var isIconVisible = this.$getAnnotation(index).style.display !== \"none\";\n return isRowFullyVisible && isIconVisible;\n };\n GutterKeyboardHandler.prototype.$getFoldWidget = function (index) {\n var cell = this.lines.get(index);\n var element = cell.element;\n return element.childNodes[1];\n };\n GutterKeyboardHandler.prototype.$getAnnotation = function (index) {\n var cell = this.lines.get(index);\n var element = cell.element;\n return element.childNodes[2];\n };\n GutterKeyboardHandler.prototype.$findNearestFoldWidget = function (index) {\n if (this.$isFoldWidgetVisible(index))\n return index;\n var i = 0;\n while (index - i > 0 || index + i < this.lines.getLength() - 1) {\n i++;\n if (index - i >= 0 && this.$isFoldWidgetVisible(index - i))\n return index - i;\n if (index + i <= this.lines.getLength() - 1 && this.$isFoldWidgetVisible(index + i))\n return index + i;\n }\n return null;\n };\n GutterKeyboardHandler.prototype.$findNearestAnnotation = function (index) {\n if (this.$isAnnotationVisible(index))\n return index;\n var i = 0;\n while (index - i > 0 || index + i < this.lines.getLength() - 1) {\n i++;\n if (index - i >= 0 && this.$isAnnotationVisible(index - i))\n return index - i;\n if (index + i <= this.lines.getLength() - 1 && this.$isAnnotationVisible(index + i))\n return index + i;\n }\n return null;\n };\n GutterKeyboardHandler.prototype.$focusFoldWidget = function (index) {\n if (index == null)\n return;\n var foldWidget = this.$getFoldWidget(index);\n foldWidget.classList.add(this.editor.renderer.keyboardFocusClassName);\n foldWidget.focus();\n };\n GutterKeyboardHandler.prototype.$focusAnnotation = function (index) {\n if (index == null)\n return;\n var annotation = this.$getAnnotation(index);\n annotation.classList.add(this.editor.renderer.keyboardFocusClassName);\n annotation.focus();\n };\n GutterKeyboardHandler.prototype.$blurFoldWidget = function (index) {\n var foldWidget = this.$getFoldWidget(index);\n foldWidget.classList.remove(this.editor.renderer.keyboardFocusClassName);\n foldWidget.blur();\n };\n GutterKeyboardHandler.prototype.$blurAnnotation = function (index) {\n var annotation = this.$getAnnotation(index);\n annotation.classList.remove(this.editor.renderer.keyboardFocusClassName);\n annotation.blur();\n };\n GutterKeyboardHandler.prototype.$moveFoldWidgetUp = function () {\n var index = this.activeRowIndex;\n while (index > 0) {\n index--;\n if (this.$isFoldWidgetVisible(index)) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveFoldWidgetDown = function () {\n var index = this.activeRowIndex;\n while (index < this.lines.getLength() - 1) {\n index++;\n if (this.$isFoldWidgetVisible(index)) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveAnnotationUp = function () {\n var index = this.activeRowIndex;\n while (index > 0) {\n index--;\n if (this.$isAnnotationVisible(index)) {\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveAnnotationDown = function () {\n var index = this.activeRowIndex;\n while (index < this.lines.getLength() - 1) {\n index++;\n if (this.$isAnnotationVisible(index)) {\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$switchLane = function (desinationLane) {\n switch (desinationLane) {\n case \"annotation\":\n if (this.activeLane === \"annotation\") {\n break;\n }\n var annotationIndex = this.$findNearestAnnotation(this.activeRowIndex);\n if (annotationIndex == null) {\n break;\n }\n this.activeLane = \"annotation\";\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = annotationIndex;\n this.$focusAnnotation(this.activeRowIndex);\n break;\n case \"fold\":\n if (this.activeLane === \"fold\") {\n break;\n }\n var foldWidgetIndex = this.$findNearestFoldWidget(this.activeRowIndex);\n if (foldWidgetIndex == null) {\n break;\n }\n this.activeLane = \"fold\";\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = foldWidgetIndex;\n this.$focusFoldWidget(this.activeRowIndex);\n break;\n }\n return;\n };\n GutterKeyboardHandler.prototype.$rowIndexToRow = function (index) {\n var cell = this.lines.get(index);\n if (cell)\n return cell.row;\n return null;\n };\n GutterKeyboardHandler.prototype.$rowToRowIndex = function (row) {\n for (var i = 0; i < this.lines.getLength(); i++) {\n var cell = this.lines.get(i);\n if (cell.row == row)\n return i;\n }\n return null;\n };\n return GutterKeyboardHandler;\n}());\nexports.GutterKeyboardHandler = GutterKeyboardHandler;\nvar GutterKeyboardEvent = /** @class */ (function () {\n function GutterKeyboardEvent(domEvent, gutterKeyboardHandler) {\n this.gutterKeyboardHandler = gutterKeyboardHandler;\n this.domEvent = domEvent;\n }\n GutterKeyboardEvent.prototype.getKey = function () {\n return keys.keyCodeToString(this.domEvent.keyCode);\n };\n GutterKeyboardEvent.prototype.getRow = function () {\n return this.gutterKeyboardHandler.$rowIndexToRow(this.gutterKeyboardHandler.activeRowIndex);\n };\n GutterKeyboardEvent.prototype.isInAnnotationLane = function () {\n return this.gutterKeyboardHandler.activeLane === \"annotation\";\n };\n GutterKeyboardEvent.prototype.isInFoldLane = function () {\n return this.gutterKeyboardHandler.activeLane === \"fold\";\n };\n return GutterKeyboardEvent;\n}());\nexports.GutterKeyboardEvent = GutterKeyboardEvent;\n\n});\n\nace.define(\"ace/editor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/keyboard/textinput\",\"ace/mouse/mouse_handler\",\"ace/mouse/fold_handler\",\"ace/keyboard/keybinding\",\"ace/edit_session\",\"ace/search\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/commands/command_manager\",\"ace/commands/default_commands\",\"ace/config\",\"ace/token_iterator\",\"ace/line_widgets\",\"ace/keyboard/gutter_handler\",\"ace/config\",\"ace/clipboard\",\"ace/lib/keys\"], function(require, exports, module){\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar lang = require(\"./lib/lang\");\nvar useragent = require(\"./lib/useragent\");\nvar TextInput = require(\"./keyboard/textinput\").TextInput;\nvar MouseHandler = require(\"./mouse/mouse_handler\").MouseHandler;\nvar FoldHandler = require(\"./mouse/fold_handler\").FoldHandler;\nvar KeyBinding = require(\"./keyboard/keybinding\").KeyBinding;\nvar EditSession = require(\"./edit_session\").EditSession;\nvar Search = require(\"./search\").Search;\nvar Range = require(\"./range\").Range;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar CommandManager = require(\"./commands/command_manager\").CommandManager;\nvar defaultCommands = require(\"./commands/default_commands\").commands;\nvar config = require(\"./config\");\nvar TokenIterator = require(\"./token_iterator\").TokenIterator;\nvar LineWidgets = require(\"./line_widgets\").LineWidgets;\nvar GutterKeyboardHandler = require(\"./keyboard/gutter_handler\").GutterKeyboardHandler;\nvar nls = require(\"./config\").nls;\nvar clipboard = require(\"./clipboard\");\nvar keys = require('./lib/keys');\nvar Editor = /** @class */ (function () {\n function Editor(renderer, session, options) {\n this.$toDestroy = [];\n var container = renderer.getContainerElement();\n this.container = container;\n this.renderer = renderer;\n this.id = \"editor\" + (++Editor.$uid);\n this.commands = new CommandManager(useragent.isMac ? \"mac\" : \"win\", defaultCommands);\n if (typeof document == \"object\") {\n this.textInput = new TextInput(renderer.getTextAreaContainer(), this);\n this.renderer.textarea = this.textInput.getElement();\n this.$mouseHandler = new MouseHandler(this);\n new FoldHandler(this);\n }\n this.keyBinding = new KeyBinding(this);\n this.$search = new Search().set({\n wrap: true\n });\n this.$historyTracker = this.$historyTracker.bind(this);\n this.commands.on(\"exec\", this.$historyTracker);\n this.$initOperationListeners();\n this._$emitInputEvent = lang.delayedCall(function () {\n this._signal(\"input\", {});\n if (this.session && !this.session.destroyed)\n this.session.bgTokenizer.scheduleStart();\n }.bind(this));\n this.on(\"change\", function (_, _self) {\n _self._$emitInputEvent.schedule(31);\n });\n this.setSession(session || options && options.session || new EditSession(\"\"));\n config.resetOptions(this);\n if (options)\n this.setOptions(options);\n config._signal(\"editor\", this);\n }\n Editor.prototype.$initOperationListeners = function () {\n this.commands.on(\"exec\", this.startOperation.bind(this), true);\n this.commands.on(\"afterExec\", this.endOperation.bind(this), true);\n this.$opResetTimer = lang.delayedCall(this.endOperation.bind(this, true));\n this.on(\"change\", function () {\n if (!this.curOp) {\n this.startOperation();\n this.curOp.selectionBefore = this.$lastSel;\n }\n this.curOp.docChanged = true;\n }.bind(this), true);\n this.on(\"changeSelection\", function () {\n if (!this.curOp) {\n this.startOperation();\n this.curOp.selectionBefore = this.$lastSel;\n }\n this.curOp.selectionChanged = true;\n }.bind(this), true);\n };\n Editor.prototype.startOperation = function (commandEvent) {\n if (this.curOp) {\n if (!commandEvent || this.curOp.command)\n return;\n this.prevOp = this.curOp;\n }\n if (!commandEvent) {\n this.previousCommand = null;\n commandEvent = {};\n }\n this.$opResetTimer.schedule();\n this.curOp = this.session.curOp = {\n command: commandEvent.command || {},\n args: commandEvent.args,\n scrollTop: this.renderer.scrollTop\n };\n this.curOp.selectionBefore = this.selection.toJSON();\n };\n Editor.prototype.endOperation = function (e) {\n if (this.curOp && this.session) {\n if (e && e.returnValue === false || !this.session)\n return (this.curOp = null);\n if (e == true && this.curOp.command && this.curOp.command.name == \"mouse\")\n return;\n this._signal(\"beforeEndOperation\");\n if (!this.curOp)\n return;\n var command = this.curOp.command;\n var scrollIntoView = command && command.scrollIntoView;\n if (scrollIntoView) {\n switch (scrollIntoView) {\n case \"center-animate\":\n scrollIntoView = \"animate\";\n case \"center\":\n this.renderer.scrollCursorIntoView(null, 0.5);\n break;\n case \"animate\":\n case \"cursor\":\n this.renderer.scrollCursorIntoView();\n break;\n case \"selectionPart\":\n var range = this.selection.getRange();\n var config = this.renderer.layerConfig;\n if (range.start.row >= config.lastRow || range.end.row <= config.firstRow) {\n this.renderer.scrollSelectionIntoView(this.selection.anchor, this.selection.lead);\n }\n break;\n default:\n break;\n }\n if (scrollIntoView == \"animate\")\n this.renderer.animateScrolling(this.curOp.scrollTop);\n }\n var sel = this.selection.toJSON();\n this.curOp.selectionAfter = sel;\n this.$lastSel = this.selection.toJSON();\n this.session.getUndoManager().addSelection(sel);\n this.prevOp = this.curOp;\n this.curOp = null;\n }\n };\n Editor.prototype.$historyTracker = function (e) {\n if (!this.$mergeUndoDeltas)\n return;\n var prev = this.prevOp;\n var mergeableCommands = this.$mergeableCommands;\n var shouldMerge = prev.command && (e.command.name == prev.command.name);\n if (e.command.name == \"insertstring\") {\n var text = e.args;\n if (this.mergeNextCommand === undefined)\n this.mergeNextCommand = true;\n shouldMerge = shouldMerge\n && this.mergeNextCommand // previous command allows to coalesce with\n && (!/\\s/.test(text) || /\\s/.test(prev.args)); // previous insertion was of same type\n this.mergeNextCommand = true;\n }\n else {\n shouldMerge = shouldMerge\n && mergeableCommands.indexOf(e.command.name) !== -1; // the command is mergeable\n }\n if (this.$mergeUndoDeltas != \"always\"\n && Date.now() - this.sequenceStartTime > 2000) {\n shouldMerge = false; // the sequence is too long\n }\n if (shouldMerge)\n this.session.mergeUndoDeltas = true;\n else if (mergeableCommands.indexOf(e.command.name) !== -1)\n this.sequenceStartTime = Date.now();\n };\n Editor.prototype.setKeyboardHandler = function (keyboardHandler, cb) {\n if (keyboardHandler && typeof keyboardHandler === \"string\" && keyboardHandler != \"ace\") {\n this.$keybindingId = keyboardHandler;\n var _self = this;\n config.loadModule([\"keybinding\", keyboardHandler], function (module) {\n if (_self.$keybindingId == keyboardHandler)\n _self.keyBinding.setKeyboardHandler(module && module.handler);\n cb && cb();\n });\n }\n else {\n this.$keybindingId = null;\n this.keyBinding.setKeyboardHandler(keyboardHandler);\n cb && cb();\n }\n };\n Editor.prototype.getKeyboardHandler = function () {\n return this.keyBinding.getKeyboardHandler();\n };\n Editor.prototype.setSession = function (session) {\n if (this.session == session)\n return;\n if (this.curOp)\n this.endOperation();\n this.curOp = {};\n var oldSession = this.session;\n if (oldSession) {\n this.session.off(\"change\", this.$onDocumentChange);\n this.session.off(\"changeMode\", this.$onChangeMode);\n this.session.off(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.session.off(\"changeTabSize\", this.$onChangeTabSize);\n this.session.off(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.session.off(\"changeWrapMode\", this.$onChangeWrapMode);\n this.session.off(\"changeFold\", this.$onChangeFold);\n this.session.off(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.session.off(\"changeBackMarker\", this.$onChangeBackMarker);\n this.session.off(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.session.off(\"changeAnnotation\", this.$onChangeAnnotation);\n this.session.off(\"changeOverwrite\", this.$onCursorChange);\n this.session.off(\"changeScrollTop\", this.$onScrollTopChange);\n this.session.off(\"changeScrollLeft\", this.$onScrollLeftChange);\n var selection = this.session.getSelection();\n selection.off(\"changeCursor\", this.$onCursorChange);\n selection.off(\"changeSelection\", this.$onSelectionChange);\n }\n this.session = session;\n if (session) {\n this.$onDocumentChange = this.onDocumentChange.bind(this);\n session.on(\"change\", this.$onDocumentChange);\n this.renderer.setSession(session);\n this.$onChangeMode = this.onChangeMode.bind(this);\n session.on(\"changeMode\", this.$onChangeMode);\n this.$onTokenizerUpdate = this.onTokenizerUpdate.bind(this);\n session.on(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.$onChangeTabSize = this.renderer.onChangeTabSize.bind(this.renderer);\n session.on(\"changeTabSize\", this.$onChangeTabSize);\n this.$onChangeWrapLimit = this.onChangeWrapLimit.bind(this);\n session.on(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.$onChangeWrapMode = this.onChangeWrapMode.bind(this);\n session.on(\"changeWrapMode\", this.$onChangeWrapMode);\n this.$onChangeFold = this.onChangeFold.bind(this);\n session.on(\"changeFold\", this.$onChangeFold);\n this.$onChangeFrontMarker = this.onChangeFrontMarker.bind(this);\n this.session.on(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.$onChangeBackMarker = this.onChangeBackMarker.bind(this);\n this.session.on(\"changeBackMarker\", this.$onChangeBackMarker);\n this.$onChangeBreakpoint = this.onChangeBreakpoint.bind(this);\n this.session.on(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.$onChangeAnnotation = this.onChangeAnnotation.bind(this);\n this.session.on(\"changeAnnotation\", this.$onChangeAnnotation);\n this.$onCursorChange = this.onCursorChange.bind(this);\n this.session.on(\"changeOverwrite\", this.$onCursorChange);\n this.$onScrollTopChange = this.onScrollTopChange.bind(this);\n this.session.on(\"changeScrollTop\", this.$onScrollTopChange);\n this.$onScrollLeftChange = this.onScrollLeftChange.bind(this);\n this.session.on(\"changeScrollLeft\", this.$onScrollLeftChange);\n this.selection = session.getSelection();\n this.selection.on(\"changeCursor\", this.$onCursorChange);\n this.$onSelectionChange = this.onSelectionChange.bind(this);\n this.selection.on(\"changeSelection\", this.$onSelectionChange);\n this.onChangeMode();\n this.onCursorChange();\n this.onScrollTopChange();\n this.onScrollLeftChange();\n this.onSelectionChange();\n this.onChangeFrontMarker();\n this.onChangeBackMarker();\n this.onChangeBreakpoint();\n this.onChangeAnnotation();\n this.session.getUseWrapMode() && this.renderer.adjustWrapLimit();\n this.renderer.updateFull();\n }\n else {\n this.selection = null;\n this.renderer.setSession(session);\n }\n this._signal(\"changeSession\", {\n session: session,\n oldSession: oldSession\n });\n this.curOp = null;\n oldSession && oldSession._signal(\"changeEditor\", { oldEditor: this });\n session && session._signal(\"changeEditor\", { editor: this });\n if (session && !session.destroyed)\n session.bgTokenizer.scheduleStart();\n };\n Editor.prototype.getSession = function () {\n return this.session;\n };\n Editor.prototype.setValue = function (val, cursorPos) {\n this.session.doc.setValue(val);\n if (!cursorPos)\n this.selectAll();\n else if (cursorPos == 1)\n this.navigateFileEnd();\n else if (cursorPos == -1)\n this.navigateFileStart();\n return val;\n };\n Editor.prototype.getValue = function () {\n return this.session.getValue();\n };\n Editor.prototype.getSelection = function () {\n return this.selection;\n };\n Editor.prototype.resize = function (force) {\n this.renderer.onResize(force);\n };\n Editor.prototype.setTheme = function (theme, cb) {\n this.renderer.setTheme(theme, cb);\n };\n Editor.prototype.getTheme = function () {\n return this.renderer.getTheme();\n };\n Editor.prototype.setStyle = function (style) {\n this.renderer.setStyle(style);\n };\n Editor.prototype.unsetStyle = function (style) {\n this.renderer.unsetStyle(style);\n };\n Editor.prototype.getFontSize = function () {\n return this.getOption(\"fontSize\") ||\n dom.computedStyle(this.container).fontSize;\n };\n Editor.prototype.setFontSize = function (size) {\n this.setOption(\"fontSize\", size);\n };\n Editor.prototype.$highlightBrackets = function () {\n if (this.$highlightPending) {\n return;\n }\n var self = this;\n this.$highlightPending = true;\n setTimeout(function () {\n self.$highlightPending = false;\n var session = self.session;\n if (!session || session.destroyed)\n return;\n if (session.$bracketHighlight) {\n session.$bracketHighlight.markerIds.forEach(function (id) {\n session.removeMarker(id);\n });\n session.$bracketHighlight = null;\n }\n var pos = self.getCursorPosition();\n var handler = self.getKeyboardHandler();\n var isBackwards = handler && handler.$getDirectionForHighlight && handler.$getDirectionForHighlight(self);\n var ranges = session.getMatchingBracketRanges(pos, isBackwards);\n if (!ranges) {\n var iterator = new TokenIterator(session, pos.row, pos.column);\n var token = iterator.getCurrentToken();\n if (token && /\\b(?:tag-open|tag-name)/.test(token.type)) {\n var tagNamesRanges = session.getMatchingTags(pos);\n if (tagNamesRanges)\n ranges = [tagNamesRanges.openTagName, tagNamesRanges.closeTagName];\n }\n }\n if (!ranges && session.$mode.getMatching)\n ranges = session.$mode.getMatching(self.session);\n if (!ranges) {\n if (self.getHighlightIndentGuides())\n self.renderer.$textLayer.$highlightIndentGuide();\n return;\n }\n var markerType = \"ace_bracket\";\n if (!Array.isArray(ranges)) {\n ranges = [ranges];\n }\n else if (ranges.length == 1) {\n markerType = \"ace_error_bracket\";\n }\n if (ranges.length == 2) {\n if (Range.comparePoints(ranges[0].end, ranges[1].start) == 0)\n ranges = [Range.fromPoints(ranges[0].start, ranges[1].end)];\n else if (Range.comparePoints(ranges[0].start, ranges[1].end) == 0)\n ranges = [Range.fromPoints(ranges[1].start, ranges[0].end)];\n }\n session.$bracketHighlight = {\n ranges: ranges,\n markerIds: ranges.map(function (range) {\n return session.addMarker(range, markerType, \"text\");\n })\n };\n if (self.getHighlightIndentGuides())\n self.renderer.$textLayer.$highlightIndentGuide();\n }, 50);\n };\n Editor.prototype.focus = function () {\n this.textInput.focus();\n };\n Editor.prototype.isFocused = function () {\n return this.textInput.isFocused();\n };\n Editor.prototype.blur = function () {\n this.textInput.blur();\n };\n Editor.prototype.onFocus = function (e) {\n if (this.$isFocused)\n return;\n this.$isFocused = true;\n this.renderer.showCursor();\n this.renderer.visualizeFocus();\n this._emit(\"focus\", e);\n };\n Editor.prototype.onBlur = function (e) {\n if (!this.$isFocused)\n return;\n this.$isFocused = false;\n this.renderer.hideCursor();\n this.renderer.visualizeBlur();\n this._emit(\"blur\", e);\n };\n Editor.prototype.$cursorChange = function () {\n this.renderer.updateCursor();\n this.$highlightBrackets();\n this.$updateHighlightActiveLine();\n };\n Editor.prototype.onDocumentChange = function (delta) {\n var wrap = this.session.$useWrapMode;\n var lastRow = (delta.start.row == delta.end.row ? delta.end.row : Infinity);\n this.renderer.updateLines(delta.start.row, lastRow, wrap);\n this._signal(\"change\", delta);\n this.$cursorChange();\n };\n Editor.prototype.onTokenizerUpdate = function (e) {\n var rows = e.data;\n this.renderer.updateLines(rows.first, rows.last);\n };\n Editor.prototype.onScrollTopChange = function () {\n this.renderer.scrollToY(this.session.getScrollTop());\n };\n Editor.prototype.onScrollLeftChange = function () {\n this.renderer.scrollToX(this.session.getScrollLeft());\n };\n Editor.prototype.onCursorChange = function () {\n this.$cursorChange();\n this._signal(\"changeSelection\");\n };\n Editor.prototype.$updateHighlightActiveLine = function () {\n var session = this.getSession();\n var highlight;\n if (this.$highlightActiveLine) {\n if (this.$selectionStyle != \"line\" || !this.selection.isMultiLine())\n highlight = this.getCursorPosition();\n if (this.renderer.theme && this.renderer.theme.$selectionColorConflict && !this.selection.isEmpty())\n highlight = false;\n if (this.renderer.$maxLines && this.session.getLength() === 1 && !(this.renderer.$minLines > 1))\n highlight = false;\n }\n if (session.$highlightLineMarker && !highlight) {\n session.removeMarker(session.$highlightLineMarker.id);\n session.$highlightLineMarker = null;\n }\n else if (!session.$highlightLineMarker && highlight) {\n var range = new Range(highlight.row, highlight.column, highlight.row, Infinity);\n range.id = session.addMarker(range, \"ace_active-line\", \"screenLine\");\n session.$highlightLineMarker = range;\n }\n else if (highlight) {\n session.$highlightLineMarker.start.row = highlight.row;\n session.$highlightLineMarker.end.row = highlight.row;\n session.$highlightLineMarker.start.column = highlight.column;\n session._signal(\"changeBackMarker\");\n }\n };\n Editor.prototype.onSelectionChange = function (e) {\n var session = this.session;\n if (session.$selectionMarker) {\n session.removeMarker(session.$selectionMarker);\n }\n session.$selectionMarker = null;\n if (!this.selection.isEmpty()) {\n var range = this.selection.getRange();\n var style = this.getSelectionStyle();\n session.$selectionMarker = session.addMarker(range, \"ace_selection\", style);\n }\n else {\n this.$updateHighlightActiveLine();\n }\n var re = this.$highlightSelectedWord && this.$getSelectionHighLightRegexp();\n this.session.highlight(re);\n this._signal(\"changeSelection\");\n };\n Editor.prototype.$getSelectionHighLightRegexp = function () {\n var session = this.session;\n var selection = this.getSelectionRange();\n if (selection.isEmpty() || selection.isMultiLine())\n return;\n var startColumn = selection.start.column;\n var endColumn = selection.end.column;\n var line = session.getLine(selection.start.row);\n var needle = line.substring(startColumn, endColumn);\n if (needle.length > 5000 || !/[\\w\\d]/.test(needle))\n return;\n var re = this.$search.$assembleRegExp({\n wholeWord: true,\n caseSensitive: true,\n needle: needle\n });\n var wordWithBoundary = line.substring(startColumn - 1, endColumn + 1);\n if (!re.test(wordWithBoundary))\n return;\n return re;\n };\n Editor.prototype.onChangeFrontMarker = function () {\n this.renderer.updateFrontMarkers();\n };\n Editor.prototype.onChangeBackMarker = function () {\n this.renderer.updateBackMarkers();\n };\n Editor.prototype.onChangeBreakpoint = function () {\n this.renderer.updateBreakpoints();\n };\n Editor.prototype.onChangeAnnotation = function () {\n this.renderer.setAnnotations(this.session.getAnnotations());\n };\n Editor.prototype.onChangeMode = function (e) {\n this.renderer.updateText();\n this._emit(\"changeMode\", e);\n };\n Editor.prototype.onChangeWrapLimit = function () {\n this.renderer.updateFull();\n };\n Editor.prototype.onChangeWrapMode = function () {\n this.renderer.onResize(true);\n };\n Editor.prototype.onChangeFold = function () {\n this.$updateHighlightActiveLine();\n this.renderer.updateFull();\n };\n Editor.prototype.getSelectedText = function () {\n return this.session.getTextRange(this.getSelectionRange());\n };\n Editor.prototype.getCopyText = function () {\n var text = this.getSelectedText();\n var nl = this.session.doc.getNewLineCharacter();\n var copyLine = false;\n if (!text && this.$copyWithEmptySelection) {\n copyLine = true;\n var ranges = this.selection.getAllRanges();\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (i && ranges[i - 1].start.row == range.start.row)\n continue;\n text += this.session.getLine(range.start.row) + nl;\n }\n }\n var e = { text: text };\n this._signal(\"copy\", e);\n clipboard.lineMode = copyLine ? e.text : false;\n return e.text;\n };\n Editor.prototype.onCopy = function () {\n this.commands.exec(\"copy\", this);\n };\n Editor.prototype.onCut = function () {\n this.commands.exec(\"cut\", this);\n };\n Editor.prototype.onPaste = function (text, event) {\n var e = { text: text, event: event };\n this.commands.exec(\"paste\", this, e);\n };\n Editor.prototype.$handlePaste = function (e) {\n if (typeof e == \"string\")\n e = { text: e };\n this._signal(\"paste\", e);\n var text = e.text;\n var lineMode = text === clipboard.lineMode;\n var session = this.session;\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode) {\n if (lineMode)\n session.insert({ row: this.selection.lead.row, column: 0 }, text);\n else\n this.insert(text);\n }\n else if (lineMode) {\n this.selection.rangeList.ranges.forEach(function (range) {\n session.insert({ row: range.start.row, column: 0 }, text);\n });\n }\n else {\n var lines = text.split(/\\r\\n|\\r|\\n/);\n var ranges = this.selection.rangeList.ranges;\n var isFullLine = lines.length == 2 && (!lines[0] || !lines[1]);\n if (lines.length != ranges.length || isFullLine)\n return this.commands.exec(\"insertstring\", this, text);\n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.isEmpty())\n session.remove(range);\n session.insert(range.start, lines[i]);\n }\n }\n };\n Editor.prototype.execCommand = function (command, args) {\n return this.commands.exec(command, this, args);\n };\n Editor.prototype.insert = function (text, pasted) {\n var session = this.session;\n var mode = session.getMode();\n var cursor = this.getCursorPosition();\n if (this.getBehavioursEnabled() && !pasted) {\n var transform = mode.transformAction(session.getState(cursor.row), 'insertion', this, session, text);\n if (transform) {\n if (text !== transform.text) {\n if (!this.inVirtualSelectionMode) {\n this.session.mergeUndoDeltas = false;\n this.mergeNextCommand = false;\n }\n }\n text = transform.text;\n }\n }\n if (text == \"\\t\")\n text = this.session.getTabString();\n if (!this.selection.isEmpty()) {\n var range = this.getSelectionRange();\n cursor = this.session.remove(range);\n this.clearSelection();\n }\n else if (this.session.getOverwrite() && text.indexOf(\"\\n\") == -1) {\n var range = new Range.fromPoints(cursor, cursor);\n range.end.column += text.length;\n this.session.remove(range);\n }\n if (text == \"\\n\" || text == \"\\r\\n\") {\n var line = session.getLine(cursor.row);\n if (cursor.column > line.search(/\\S|$/)) {\n var d = line.substr(cursor.column).search(/\\S|$/);\n session.doc.removeInLine(cursor.row, cursor.column, cursor.column + d);\n }\n }\n this.clearSelection();\n var start = cursor.column;\n var lineState = session.getState(cursor.row);\n var line = session.getLine(cursor.row);\n var shouldOutdent = mode.checkOutdent(lineState, line, text);\n session.insert(cursor, text);\n if (transform && transform.selection) {\n if (transform.selection.length == 2) { // Transform relative to the current column\n this.selection.setSelectionRange(new Range(cursor.row, start + transform.selection[0], cursor.row, start + transform.selection[1]));\n }\n else { // Transform relative to the current row.\n this.selection.setSelectionRange(new Range(cursor.row + transform.selection[0], transform.selection[1], cursor.row + transform.selection[2], transform.selection[3]));\n }\n }\n if (this.$enableAutoIndent) {\n if (session.getDocument().isNewLine(text)) {\n var lineIndent = mode.getNextLineIndent(lineState, line.slice(0, cursor.column), session.getTabString());\n session.insert({ row: cursor.row + 1, column: 0 }, lineIndent);\n }\n if (shouldOutdent)\n mode.autoOutdent(lineState, session, cursor.row);\n }\n };\n Editor.prototype.autoIndent = function () {\n var session = this.session;\n var mode = session.getMode();\n var startRow, endRow;\n if (this.selection.isEmpty()) {\n startRow = 0;\n endRow = session.doc.getLength() - 1;\n }\n else {\n var selectedRange = this.getSelectionRange();\n startRow = selectedRange.start.row;\n endRow = selectedRange.end.row;\n }\n var prevLineState = \"\";\n var prevLine = \"\";\n var lineIndent = \"\";\n var line, currIndent, range;\n var tab = session.getTabString();\n for (var row = startRow; row <= endRow; row++) {\n if (row > 0) {\n prevLineState = session.getState(row - 1);\n prevLine = session.getLine(row - 1);\n lineIndent = mode.getNextLineIndent(prevLineState, prevLine, tab);\n }\n line = session.getLine(row);\n currIndent = mode.$getIndent(line);\n if (lineIndent !== currIndent) {\n if (currIndent.length > 0) {\n range = new Range(row, 0, row, currIndent.length);\n session.remove(range);\n }\n if (lineIndent.length > 0) {\n session.insert({ row: row, column: 0 }, lineIndent);\n }\n }\n mode.autoOutdent(prevLineState, session, row);\n }\n };\n Editor.prototype.onTextInput = function (text, composition) {\n if (!composition)\n return this.keyBinding.onTextInput(text);\n this.startOperation({ command: { name: \"insertstring\" } });\n var applyComposition = this.applyComposition.bind(this, text, composition);\n if (this.selection.rangeCount)\n this.forEachSelection(applyComposition);\n else\n applyComposition();\n this.endOperation();\n };\n Editor.prototype.applyComposition = function (text, composition) {\n if (composition.extendLeft || composition.extendRight) {\n var r = this.selection.getRange();\n r.start.column -= composition.extendLeft;\n r.end.column += composition.extendRight;\n if (r.start.column < 0) {\n r.start.row--;\n r.start.column += this.session.getLine(r.start.row).length + 1;\n }\n this.selection.setRange(r);\n if (!text && !r.isEmpty())\n this.remove();\n }\n if (text || !this.selection.isEmpty())\n this.insert(text, true);\n if (composition.restoreStart || composition.restoreEnd) {\n var r = this.selection.getRange();\n r.start.column -= composition.restoreStart;\n r.end.column -= composition.restoreEnd;\n this.selection.setRange(r);\n }\n };\n Editor.prototype.onCommandKey = function (e, hashId, keyCode) {\n return this.keyBinding.onCommandKey(e, hashId, keyCode);\n };\n Editor.prototype.setOverwrite = function (overwrite) {\n this.session.setOverwrite(overwrite);\n };\n Editor.prototype.getOverwrite = function () {\n return this.session.getOverwrite();\n };\n Editor.prototype.toggleOverwrite = function () {\n this.session.toggleOverwrite();\n };\n Editor.prototype.setScrollSpeed = function (speed) {\n this.setOption(\"scrollSpeed\", speed);\n };\n Editor.prototype.getScrollSpeed = function () {\n return this.getOption(\"scrollSpeed\");\n };\n Editor.prototype.setDragDelay = function (dragDelay) {\n this.setOption(\"dragDelay\", dragDelay);\n };\n Editor.prototype.getDragDelay = function () {\n return this.getOption(\"dragDelay\");\n };\n Editor.prototype.setSelectionStyle = function (val) {\n this.setOption(\"selectionStyle\", val);\n };\n Editor.prototype.getSelectionStyle = function () {\n return this.getOption(\"selectionStyle\");\n };\n Editor.prototype.setHighlightActiveLine = function (shouldHighlight) {\n this.setOption(\"highlightActiveLine\", shouldHighlight);\n };\n Editor.prototype.getHighlightActiveLine = function () {\n return this.getOption(\"highlightActiveLine\");\n };\n Editor.prototype.setHighlightGutterLine = function (shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n Editor.prototype.getHighlightGutterLine = function () {\n return this.getOption(\"highlightGutterLine\");\n };\n Editor.prototype.setHighlightSelectedWord = function (shouldHighlight) {\n this.setOption(\"highlightSelectedWord\", shouldHighlight);\n };\n Editor.prototype.getHighlightSelectedWord = function () {\n return this.$highlightSelectedWord;\n };\n Editor.prototype.setAnimatedScroll = function (shouldAnimate) {\n this.renderer.setAnimatedScroll(shouldAnimate);\n };\n Editor.prototype.getAnimatedScroll = function () {\n return this.renderer.getAnimatedScroll();\n };\n Editor.prototype.setShowInvisibles = function (showInvisibles) {\n this.renderer.setShowInvisibles(showInvisibles);\n };\n Editor.prototype.getShowInvisibles = function () {\n return this.renderer.getShowInvisibles();\n };\n Editor.prototype.setDisplayIndentGuides = function (display) {\n this.renderer.setDisplayIndentGuides(display);\n };\n Editor.prototype.getDisplayIndentGuides = function () {\n return this.renderer.getDisplayIndentGuides();\n };\n Editor.prototype.setHighlightIndentGuides = function (highlight) {\n this.renderer.setHighlightIndentGuides(highlight);\n };\n Editor.prototype.getHighlightIndentGuides = function () {\n return this.renderer.getHighlightIndentGuides();\n };\n Editor.prototype.setShowPrintMargin = function (showPrintMargin) {\n this.renderer.setShowPrintMargin(showPrintMargin);\n };\n Editor.prototype.getShowPrintMargin = function () {\n return this.renderer.getShowPrintMargin();\n };\n Editor.prototype.setPrintMarginColumn = function (showPrintMargin) {\n this.renderer.setPrintMarginColumn(showPrintMargin);\n };\n Editor.prototype.getPrintMarginColumn = function () {\n return this.renderer.getPrintMarginColumn();\n };\n Editor.prototype.setReadOnly = function (readOnly) {\n this.setOption(\"readOnly\", readOnly);\n };\n Editor.prototype.getReadOnly = function () {\n return this.getOption(\"readOnly\");\n };\n Editor.prototype.setBehavioursEnabled = function (enabled) {\n this.setOption(\"behavioursEnabled\", enabled);\n };\n Editor.prototype.getBehavioursEnabled = function () {\n return this.getOption(\"behavioursEnabled\");\n };\n Editor.prototype.setWrapBehavioursEnabled = function (enabled) {\n this.setOption(\"wrapBehavioursEnabled\", enabled);\n };\n Editor.prototype.getWrapBehavioursEnabled = function () {\n return this.getOption(\"wrapBehavioursEnabled\");\n };\n Editor.prototype.setShowFoldWidgets = function (show) {\n this.setOption(\"showFoldWidgets\", show);\n };\n Editor.prototype.getShowFoldWidgets = function () {\n return this.getOption(\"showFoldWidgets\");\n };\n Editor.prototype.setFadeFoldWidgets = function (fade) {\n this.setOption(\"fadeFoldWidgets\", fade);\n };\n Editor.prototype.getFadeFoldWidgets = function () {\n return this.getOption(\"fadeFoldWidgets\");\n };\n Editor.prototype.remove = function (dir) {\n if (this.selection.isEmpty()) {\n if (dir == \"left\")\n this.selection.selectLeft();\n else\n this.selection.selectRight();\n }\n var range = this.getSelectionRange();\n if (this.getBehavioursEnabled()) {\n var session = this.session;\n var state = session.getState(range.start.row);\n var new_range = session.getMode().transformAction(state, 'deletion', this, session, range);\n if (range.end.column === 0) {\n var text = session.getTextRange(range);\n if (text[text.length - 1] == \"\\n\") {\n var line = session.getLine(range.end.row);\n if (/^\\s+$/.test(line)) {\n range.end.column = line.length;\n }\n }\n }\n if (new_range)\n range = new_range;\n }\n this.session.remove(range);\n this.clearSelection();\n };\n Editor.prototype.removeWordRight = function () {\n if (this.selection.isEmpty())\n this.selection.selectWordRight();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeWordLeft = function () {\n if (this.selection.isEmpty())\n this.selection.selectWordLeft();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeToLineStart = function () {\n if (this.selection.isEmpty())\n this.selection.selectLineStart();\n if (this.selection.isEmpty())\n this.selection.selectLeft();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeToLineEnd = function () {\n if (this.selection.isEmpty())\n this.selection.selectLineEnd();\n var range = this.getSelectionRange();\n if (range.start.column == range.end.column && range.start.row == range.end.row) {\n range.end.column = 0;\n range.end.row++;\n }\n this.session.remove(range);\n this.clearSelection();\n };\n Editor.prototype.splitLine = function () {\n if (!this.selection.isEmpty()) {\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n }\n var cursor = this.getCursorPosition();\n this.insert(\"\\n\");\n this.moveCursorToPosition(cursor);\n };\n Editor.prototype.setGhostText = function (text, position) {\n if (!this.session.widgetManager) {\n this.session.widgetManager = new LineWidgets(this.session);\n this.session.widgetManager.attach(this);\n }\n this.renderer.setGhostText(text, position);\n };\n Editor.prototype.removeGhostText = function () {\n if (!this.session.widgetManager)\n return;\n this.renderer.removeGhostText();\n };\n Editor.prototype.transposeLetters = function () {\n if (!this.selection.isEmpty()) {\n return;\n }\n var cursor = this.getCursorPosition();\n var column = cursor.column;\n if (column === 0)\n return;\n var line = this.session.getLine(cursor.row);\n var swap, range;\n if (column < line.length) {\n swap = line.charAt(column) + line.charAt(column - 1);\n range = new Range(cursor.row, column - 1, cursor.row, column + 1);\n }\n else {\n swap = line.charAt(column - 1) + line.charAt(column - 2);\n range = new Range(cursor.row, column - 2, cursor.row, column);\n }\n this.session.replace(range, swap);\n this.session.selection.moveToPosition(range.end);\n };\n Editor.prototype.toLowerCase = function () {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toLowerCase());\n this.selection.setSelectionRange(originalRange);\n };\n Editor.prototype.toUpperCase = function () {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toUpperCase());\n this.selection.setSelectionRange(originalRange);\n };\n Editor.prototype.indent = function () {\n var session = this.session;\n var range = this.getSelectionRange();\n if (range.start.row < range.end.row) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n else if (range.start.column < range.end.column) {\n var text = session.getTextRange(range);\n if (!/^\\s+$/.test(text)) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n }\n var line = session.getLine(range.start.row);\n var position = range.start;\n var size = session.getTabSize();\n var column = session.documentToScreenColumn(position.row, position.column);\n if (this.session.getUseSoftTabs()) {\n var count = (size - column % size);\n var indentString = lang.stringRepeat(\" \", count);\n }\n else {\n var count = column % size;\n while (line[range.start.column - 1] == \" \" && count) {\n range.start.column--;\n count--;\n }\n this.selection.setSelectionRange(range);\n indentString = \"\\t\";\n }\n return this.insert(indentString);\n };\n Editor.prototype.blockIndent = function () {\n var rows = this.$getSelectedRows();\n this.session.indentRows(rows.first, rows.last, \"\\t\");\n };\n Editor.prototype.blockOutdent = function () {\n var selection = this.session.getSelection();\n this.session.outdentRows(selection.getRange());\n };\n Editor.prototype.sortLines = function () {\n var rows = this.$getSelectedRows();\n var session = this.session;\n var lines = [];\n for (var i = rows.first; i <= rows.last; i++)\n lines.push(session.getLine(i));\n lines.sort(function (a, b) {\n if (a.toLowerCase() < b.toLowerCase())\n return -1;\n if (a.toLowerCase() > b.toLowerCase())\n return 1;\n return 0;\n });\n var deleteRange = new Range(0, 0, 0, 0);\n for (var i = rows.first; i <= rows.last; i++) {\n var line = session.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n deleteRange.end.column = line.length;\n session.replace(deleteRange, lines[i - rows.first]);\n }\n };\n Editor.prototype.toggleCommentLines = function () {\n var state = this.session.getState(this.getCursorPosition().row);\n var rows = this.$getSelectedRows();\n this.session.getMode().toggleCommentLines(state, this.session, rows.first, rows.last);\n };\n Editor.prototype.toggleBlockComment = function () {\n var cursor = this.getCursorPosition();\n var state = this.session.getState(cursor.row);\n var range = this.getSelectionRange();\n this.session.getMode().toggleBlockComment(state, this.session, range, cursor);\n };\n Editor.prototype.getNumberAt = function (row, column) {\n var _numberRx = /[\\-]?[0-9]+(?:\\.[0-9]+)?/g;\n _numberRx.lastIndex = 0;\n var s = this.session.getLine(row);\n while (_numberRx.lastIndex < column) {\n var m = _numberRx.exec(s);\n if (m.index <= column && m.index + m[0].length >= column) {\n var number = {\n value: m[0],\n start: m.index,\n end: m.index + m[0].length\n };\n return number;\n }\n }\n return null;\n };\n Editor.prototype.modifyNumber = function (amount) {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n var charRange = new Range(row, column - 1, row, column);\n var c = this.session.getTextRange(charRange);\n if (!isNaN(parseFloat(c)) && isFinite(c)) {\n var nr = this.getNumberAt(row, column);\n if (nr) {\n var fp = nr.value.indexOf(\".\") >= 0 ? nr.start + nr.value.indexOf(\".\") + 1 : nr.end;\n var decimals = nr.start + nr.value.length - fp;\n var t = parseFloat(nr.value);\n t *= Math.pow(10, decimals);\n if (fp !== nr.end && column < fp) {\n amount *= Math.pow(10, nr.end - column - 1);\n }\n else {\n amount *= Math.pow(10, nr.end - column);\n }\n t += amount;\n t /= Math.pow(10, decimals);\n var nnr = t.toFixed(decimals);\n var replaceRange = new Range(row, nr.start, row, nr.end);\n this.session.replace(replaceRange, nnr);\n this.moveCursorTo(row, Math.max(nr.start + 1, column + nnr.length - nr.value.length));\n }\n }\n else {\n this.toggleWord();\n }\n };\n Editor.prototype.toggleWord = function () {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n this.selection.selectWord();\n var currentState = this.getSelectedText();\n var currWordStart = this.selection.getWordRange().start.column;\n var wordParts = currentState.replace(/([a-z]+|[A-Z]+)(?=[A-Z_]|$)/g, '$1 ').split(/\\s/);\n var delta = column - currWordStart - 1;\n if (delta < 0)\n delta = 0;\n var curLength = 0, itLength = 0;\n var that = this;\n if (currentState.match(/[A-Za-z0-9_]+/)) {\n wordParts.forEach(function (item, i) {\n itLength = curLength + item.length;\n if (delta >= curLength && delta <= itLength) {\n currentState = item;\n that.selection.clearSelection();\n that.moveCursorTo(row, curLength + currWordStart);\n that.selection.selectTo(row, itLength + currWordStart);\n }\n curLength = itLength;\n });\n }\n var wordPairs = this.$toggleWordPairs;\n var reg;\n for (var i = 0; i < wordPairs.length; i++) {\n var item = wordPairs[i];\n for (var j = 0; j <= 1; j++) {\n var negate = +!j;\n var firstCondition = currentState.match(new RegExp('^\\\\s?_?(' + lang.escapeRegExp(item[j]) + ')\\\\s?$', 'i'));\n if (firstCondition) {\n var secondCondition = currentState.match(new RegExp('([_]|^|\\\\s)(' + lang.escapeRegExp(firstCondition[1]) + ')($|\\\\s)', 'g'));\n if (secondCondition) {\n reg = currentState.replace(new RegExp(lang.escapeRegExp(item[j]), 'i'), function (result) {\n var res = item[negate];\n if (result.toUpperCase() == result) {\n res = res.toUpperCase();\n }\n else if (result.charAt(0).toUpperCase() == result.charAt(0)) {\n res = res.substr(0, 0) + item[negate].charAt(0).toUpperCase() + res.substr(1);\n }\n return res;\n });\n this.insert(reg);\n reg = \"\";\n }\n }\n }\n }\n };\n Editor.prototype.findLinkAt = function (row, column) {\n var e_1, _a;\n var line = this.session.getLine(row);\n var wordParts = line.split(/((?:https?|ftp):\\/\\/[\\S]+)/);\n var columnPosition = column;\n if (columnPosition < 0)\n columnPosition = 0;\n var previousPosition = 0, currentPosition = 0, match;\n try {\n for (var wordParts_1 = __values(wordParts), wordParts_1_1 = wordParts_1.next(); !wordParts_1_1.done; wordParts_1_1 = wordParts_1.next()) {\n var item = wordParts_1_1.value;\n currentPosition = previousPosition + item.length;\n if (columnPosition >= previousPosition && columnPosition <= currentPosition) {\n if (item.match(/((?:https?|ftp):\\/\\/[\\S]+)/)) {\n match = item.replace(/[\\s:.,'\";}\\]]+$/, \"\");\n break;\n }\n }\n previousPosition = currentPosition;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (wordParts_1_1 && !wordParts_1_1.done && (_a = wordParts_1.return)) _a.call(wordParts_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return match;\n };\n Editor.prototype.openLink = function () {\n var cursor = this.selection.getCursor();\n var url = this.findLinkAt(cursor.row, cursor.column);\n if (url)\n window.open(url, '_blank');\n return url != null;\n };\n Editor.prototype.removeLines = function () {\n var rows = this.$getSelectedRows();\n this.session.removeFullLines(rows.first, rows.last);\n this.clearSelection();\n };\n Editor.prototype.duplicateSelection = function () {\n var sel = this.selection;\n var doc = this.session;\n var range = sel.getRange();\n var reverse = sel.isBackwards();\n if (range.isEmpty()) {\n var row = range.start.row;\n doc.duplicateLines(row, row);\n }\n else {\n var point = reverse ? range.start : range.end;\n var endPoint = doc.insert(point, doc.getTextRange(range), false);\n range.start = point;\n range.end = endPoint;\n sel.setSelectionRange(range, reverse);\n }\n };\n Editor.prototype.moveLinesDown = function () {\n this.$moveLines(1, false);\n };\n Editor.prototype.moveLinesUp = function () {\n this.$moveLines(-1, false);\n };\n Editor.prototype.moveText = function (range, toPosition, copy) {\n return this.session.moveText(range, toPosition, copy);\n };\n Editor.prototype.copyLinesUp = function () {\n this.$moveLines(-1, true);\n };\n Editor.prototype.copyLinesDown = function () {\n this.$moveLines(1, true);\n };\n Editor.prototype.$moveLines = function (dir, copy) {\n var rows, moved;\n var selection = this.selection;\n if (!selection.inMultiSelectMode || this.inVirtualSelectionMode) {\n var range = selection.toOrientedRange();\n rows = this.$getSelectedRows(range);\n moved = this.session.$moveLines(rows.first, rows.last, copy ? 0 : dir);\n if (copy && dir == -1)\n moved = 0;\n range.moveBy(moved, 0);\n selection.fromOrientedRange(range);\n }\n else {\n var ranges = selection.rangeList.ranges;\n selection.rangeList.detach(this.session);\n this.inVirtualSelectionMode = true;\n var diff = 0;\n var totalDiff = 0;\n var l = ranges.length;\n for (var i = 0; i < l; i++) {\n var rangeIndex = i;\n ranges[i].moveBy(diff, 0);\n rows = this.$getSelectedRows(ranges[i]);\n var first = rows.first;\n var last = rows.last;\n while (++i < l) {\n if (totalDiff)\n ranges[i].moveBy(totalDiff, 0);\n var subRows = this.$getSelectedRows(ranges[i]);\n if (copy && subRows.first != last)\n break;\n else if (!copy && subRows.first > last + 1)\n break;\n last = subRows.last;\n }\n i--;\n diff = this.session.$moveLines(first, last, copy ? 0 : dir);\n if (copy && dir == -1)\n rangeIndex = i + 1;\n while (rangeIndex <= i) {\n ranges[rangeIndex].moveBy(diff, 0);\n rangeIndex++;\n }\n if (!copy)\n diff = 0;\n totalDiff += diff;\n }\n selection.fromOrientedRange(selection.ranges[0]);\n selection.rangeList.attach(this.session);\n this.inVirtualSelectionMode = false;\n }\n };\n Editor.prototype.$getSelectedRows = function (range) {\n range = (range || this.getSelectionRange()).collapseRows();\n return {\n first: this.session.getRowFoldStart(range.start.row),\n last: this.session.getRowFoldEnd(range.end.row)\n };\n };\n Editor.prototype.onCompositionStart = function (compositionState) {\n this.renderer.showComposition(compositionState);\n };\n Editor.prototype.onCompositionUpdate = function (text) {\n this.renderer.setCompositionText(text);\n };\n Editor.prototype.onCompositionEnd = function () {\n this.renderer.hideComposition();\n };\n Editor.prototype.getFirstVisibleRow = function () {\n return this.renderer.getFirstVisibleRow();\n };\n Editor.prototype.getLastVisibleRow = function () {\n return this.renderer.getLastVisibleRow();\n };\n Editor.prototype.isRowVisible = function (row) {\n return (row >= this.getFirstVisibleRow() && row <= this.getLastVisibleRow());\n };\n Editor.prototype.isRowFullyVisible = function (row) {\n return (row >= this.renderer.getFirstFullyVisibleRow() && row <= this.renderer.getLastFullyVisibleRow());\n };\n Editor.prototype.$getVisibleRowCount = function () {\n return this.renderer.getScrollBottomRow() - this.renderer.getScrollTopRow() + 1;\n };\n Editor.prototype.$moveByPage = function (dir, select) {\n var renderer = this.renderer;\n var config = this.renderer.layerConfig;\n var rows = dir * Math.floor(config.height / config.lineHeight);\n if (select === true) {\n this.selection.$moveSelection(function () {\n this.moveCursorBy(rows, 0);\n });\n }\n else if (select === false) {\n this.selection.moveCursorBy(rows, 0);\n this.selection.clearSelection();\n }\n var scrollTop = renderer.scrollTop;\n renderer.scrollBy(0, rows * config.lineHeight);\n if (select != null)\n renderer.scrollCursorIntoView(null, 0.5);\n renderer.animateScrolling(scrollTop);\n };\n Editor.prototype.selectPageDown = function () {\n this.$moveByPage(1, true);\n };\n Editor.prototype.selectPageUp = function () {\n this.$moveByPage(-1, true);\n };\n Editor.prototype.gotoPageDown = function () {\n this.$moveByPage(1, false);\n };\n Editor.prototype.gotoPageUp = function () {\n this.$moveByPage(-1, false);\n };\n Editor.prototype.scrollPageDown = function () {\n this.$moveByPage(1);\n };\n Editor.prototype.scrollPageUp = function () {\n this.$moveByPage(-1);\n };\n Editor.prototype.scrollToRow = function (row) {\n this.renderer.scrollToRow(row);\n };\n Editor.prototype.scrollToLine = function (line, center, animate, callback) {\n this.renderer.scrollToLine(line, center, animate, callback);\n };\n Editor.prototype.centerSelection = function () {\n var range = this.getSelectionRange();\n var pos = {\n row: Math.floor(range.start.row + (range.end.row - range.start.row) / 2),\n column: Math.floor(range.start.column + (range.end.column - range.start.column) / 2)\n };\n this.renderer.alignCursor(pos, 0.5);\n };\n Editor.prototype.getCursorPosition = function () {\n return this.selection.getCursor();\n };\n Editor.prototype.getCursorPositionScreen = function () {\n return this.session.documentToScreenPosition(this.getCursorPosition());\n };\n Editor.prototype.getSelectionRange = function () {\n return this.selection.getRange();\n };\n Editor.prototype.selectAll = function () {\n this.selection.selectAll();\n };\n Editor.prototype.clearSelection = function () {\n this.selection.clearSelection();\n };\n Editor.prototype.moveCursorTo = function (row, column) {\n this.selection.moveCursorTo(row, column);\n };\n Editor.prototype.moveCursorToPosition = function (pos) {\n this.selection.moveCursorToPosition(pos);\n };\n Editor.prototype.jumpToMatching = function (select, expand) {\n var cursor = this.getCursorPosition();\n var iterator = new TokenIterator(this.session, cursor.row, cursor.column);\n var prevToken = iterator.getCurrentToken();\n var tokenCount = 0;\n if (prevToken && prevToken.type.indexOf('tag-name') !== -1) {\n prevToken = iterator.stepBackward();\n }\n var token = prevToken || iterator.stepForward();\n if (!token)\n return;\n var matchType;\n var found = false;\n var depth = {};\n var i = cursor.column - token.start;\n var bracketType;\n var brackets = {\n \")\": \"(\",\n \"(\": \"(\",\n \"]\": \"[\",\n \"[\": \"[\",\n \"{\": \"{\",\n \"}\": \"{\"\n };\n do {\n if (token.value.match(/[{}()\\[\\]]/g)) {\n for (; i < token.value.length && !found; i++) {\n if (!brackets[token.value[i]]) {\n continue;\n }\n bracketType = brackets[token.value[i]] + '.' + token.type.replace(\"rparen\", \"lparen\");\n if (isNaN(depth[bracketType])) {\n depth[bracketType] = 0;\n }\n switch (token.value[i]) {\n case '(':\n case '[':\n case '{':\n depth[bracketType]++;\n break;\n case ')':\n case ']':\n case '}':\n depth[bracketType]--;\n if (depth[bracketType] === -1) {\n matchType = 'bracket';\n found = true;\n }\n break;\n }\n }\n }\n else if (token.type.indexOf('tag-name') !== -1) {\n if (isNaN(depth[token.value])) {\n depth[token.value] = 0;\n }\n if (prevToken.value === '<' && tokenCount > 1) {\n depth[token.value]++;\n }\n else if (prevToken.value === '= 0; --i) {\n if (this.$tryReplace(ranges[i], replacement)) {\n replaced++;\n }\n }\n this.selection.setSelectionRange(selection);\n return replaced;\n };\n Editor.prototype.$tryReplace = function (range, replacement) {\n var input = this.session.getTextRange(range);\n replacement = this.$search.replace(input, replacement);\n if (replacement !== null) {\n range.end = this.session.replace(range, replacement);\n return range;\n }\n else {\n return null;\n }\n };\n Editor.prototype.getLastSearchOptions = function () {\n return this.$search.getOptions();\n };\n Editor.prototype.find = function (needle, options, animate) {\n if (!options)\n options = {};\n if (typeof needle == \"string\" || needle instanceof RegExp)\n options.needle = needle;\n else if (typeof needle == \"object\")\n oop.mixin(options, needle);\n var range = this.selection.getRange();\n if (options.needle == null) {\n needle = this.session.getTextRange(range)\n || this.$search.$options.needle;\n if (!needle) {\n range = this.session.getWordRange(range.start.row, range.start.column);\n needle = this.session.getTextRange(range);\n }\n this.$search.set({ needle: needle });\n }\n this.$search.set(options);\n if (!options.start)\n this.$search.set({ start: range });\n var newRange = this.$search.find(this.session);\n if (options.preventScroll)\n return newRange;\n if (newRange) {\n this.revealRange(newRange, animate);\n return newRange;\n }\n if (options.backwards)\n range.start = range.end;\n else\n range.end = range.start;\n this.selection.setRange(range);\n };\n Editor.prototype.findNext = function (options, animate) {\n this.find({ skipCurrent: true, backwards: false }, options, animate);\n };\n Editor.prototype.findPrevious = function (options, animate) {\n this.find(options, { skipCurrent: true, backwards: true }, animate);\n };\n Editor.prototype.revealRange = function (range, animate) {\n this.session.unfold(range);\n this.selection.setSelectionRange(range);\n var scrollTop = this.renderer.scrollTop;\n this.renderer.scrollSelectionIntoView(range.start, range.end, 0.5);\n if (animate !== false)\n this.renderer.animateScrolling(scrollTop);\n };\n Editor.prototype.undo = function () {\n this.session.getUndoManager().undo(this.session);\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n Editor.prototype.redo = function () {\n this.session.getUndoManager().redo(this.session);\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n Editor.prototype.destroy = function () {\n if (this.$toDestroy) {\n this.$toDestroy.forEach(function (el) {\n el.destroy();\n });\n this.$toDestroy = null;\n }\n if (this.$mouseHandler)\n this.$mouseHandler.destroy();\n this.renderer.destroy();\n this._signal(\"destroy\", this);\n if (this.session)\n this.session.destroy();\n if (this._$emitInputEvent)\n this._$emitInputEvent.cancel();\n this.removeAllListeners();\n };\n Editor.prototype.setAutoScrollEditorIntoView = function (enable) {\n if (!enable)\n return;\n var rect;\n var self = this;\n var shouldScroll = false;\n if (!this.$scrollAnchor)\n this.$scrollAnchor = document.createElement(\"div\");\n var scrollAnchor = this.$scrollAnchor;\n scrollAnchor.style.cssText = \"position:absolute\";\n this.container.insertBefore(scrollAnchor, this.container.firstChild);\n var onChangeSelection = this.on(\"changeSelection\", function () {\n shouldScroll = true;\n });\n var onBeforeRender = this.renderer.on(\"beforeRender\", function () {\n if (shouldScroll)\n rect = self.renderer.container.getBoundingClientRect();\n });\n var onAfterRender = this.renderer.on(\"afterRender\", function () {\n if (shouldScroll && rect && (self.isFocused()\n || self.searchBox && self.searchBox.isFocused())) {\n var renderer = self.renderer;\n var pos = renderer.$cursorLayer.$pixelPos;\n var config = renderer.layerConfig;\n var top = pos.top - config.offset;\n if (pos.top >= 0 && top + rect.top < 0) {\n shouldScroll = true;\n }\n else if (pos.top < config.height &&\n pos.top + rect.top + config.lineHeight > window.innerHeight) {\n shouldScroll = false;\n }\n else {\n shouldScroll = null;\n }\n if (shouldScroll != null) {\n scrollAnchor.style.top = top + \"px\";\n scrollAnchor.style.left = pos.left + \"px\";\n scrollAnchor.style.height = config.lineHeight + \"px\";\n scrollAnchor.scrollIntoView(shouldScroll);\n }\n shouldScroll = rect = null;\n }\n });\n this.setAutoScrollEditorIntoView = function (enable) {\n if (enable)\n return;\n delete this.setAutoScrollEditorIntoView;\n this.off(\"changeSelection\", onChangeSelection);\n this.renderer.off(\"afterRender\", onAfterRender);\n this.renderer.off(\"beforeRender\", onBeforeRender);\n };\n };\n Editor.prototype.$resetCursorStyle = function () {\n var style = this.$cursorStyle || \"ace\";\n var cursorLayer = this.renderer.$cursorLayer;\n if (!cursorLayer)\n return;\n cursorLayer.setSmoothBlinking(/smooth/.test(style));\n cursorLayer.isBlinking = !this.$readOnly && style != \"wide\";\n dom.setCssClass(cursorLayer.element, \"ace_slim-cursors\", /slim/.test(style));\n };\n Editor.prototype.prompt = function (message, options, callback) {\n var editor = this;\n config.loadModule(\"ace/ext/prompt\", function (module) {\n module.prompt(editor, message, options, callback);\n });\n };\n return Editor;\n}());\nEditor.$uid = 0;\nEditor.prototype.curOp = null;\nEditor.prototype.prevOp = {};\nEditor.prototype.$mergeableCommands = [\"backspace\", \"del\", \"insertstring\"];\nEditor.prototype.$toggleWordPairs = [\n [\"first\", \"last\"],\n [\"true\", \"false\"],\n [\"yes\", \"no\"],\n [\"width\", \"height\"],\n [\"top\", \"bottom\"],\n [\"right\", \"left\"],\n [\"on\", \"off\"],\n [\"x\", \"y\"],\n [\"get\", \"set\"],\n [\"max\", \"min\"],\n [\"horizontal\", \"vertical\"],\n [\"show\", \"hide\"],\n [\"add\", \"remove\"],\n [\"up\", \"down\"],\n [\"before\", \"after\"],\n [\"even\", \"odd\"],\n [\"in\", \"out\"],\n [\"inside\", \"outside\"],\n [\"next\", \"previous\"],\n [\"increase\", \"decrease\"],\n [\"attach\", \"detach\"],\n [\"&&\", \"||\"],\n [\"==\", \"!=\"]\n];\noop.implement(Editor.prototype, EventEmitter);\nconfig.defineOptions(Editor.prototype, \"editor\", {\n selectionStyle: {\n set: function (style) {\n this.onSelectionChange();\n this._signal(\"changeSelectionStyle\", { data: style });\n },\n initialValue: \"line\"\n },\n highlightActiveLine: {\n set: function () { this.$updateHighlightActiveLine(); },\n initialValue: true\n },\n highlightSelectedWord: {\n set: function (shouldHighlight) { this.$onSelectionChange(); },\n initialValue: true\n },\n readOnly: {\n set: function (readOnly) {\n this.textInput.setReadOnly(readOnly);\n this.$resetCursorStyle();\n },\n initialValue: false\n },\n copyWithEmptySelection: {\n set: function (value) {\n this.textInput.setCopyWithEmptySelection(value);\n },\n initialValue: false\n },\n cursorStyle: {\n set: function (val) { this.$resetCursorStyle(); },\n values: [\"ace\", \"slim\", \"smooth\", \"wide\"],\n initialValue: \"ace\"\n },\n mergeUndoDeltas: {\n values: [false, true, \"always\"],\n initialValue: true\n },\n behavioursEnabled: { initialValue: true },\n wrapBehavioursEnabled: { initialValue: true },\n enableAutoIndent: { initialValue: true },\n autoScrollEditorIntoView: {\n set: function (val) { this.setAutoScrollEditorIntoView(val); }\n },\n keyboardHandler: {\n set: function (val) { this.setKeyboardHandler(val); },\n get: function () { return this.$keybindingId; },\n handlesSet: true\n },\n value: {\n set: function (val) { this.session.setValue(val); },\n get: function () { return this.getValue(); },\n handlesSet: true,\n hidden: true\n },\n session: {\n set: function (val) { this.setSession(val); },\n get: function () { return this.session; },\n handlesSet: true,\n hidden: true\n },\n showLineNumbers: {\n set: function (show) {\n this.renderer.$gutterLayer.setShowLineNumbers(show);\n this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER);\n if (show && this.$relativeLineNumbers)\n relativeNumberRenderer.attach(this);\n else\n relativeNumberRenderer.detach(this);\n },\n initialValue: true\n },\n relativeLineNumbers: {\n set: function (value) {\n if (this.$showLineNumbers && value)\n relativeNumberRenderer.attach(this);\n else\n relativeNumberRenderer.detach(this);\n }\n },\n placeholder: {\n set: function (message) {\n if (!this.$updatePlaceholder) {\n this.$updatePlaceholder = function () {\n var hasValue = this.session && (this.renderer.$composition ||\n this.session.getLength() > 1 || this.session.getLine(0).length > 0);\n if (hasValue && this.renderer.placeholderNode) {\n this.renderer.off(\"afterRender\", this.$updatePlaceholder);\n dom.removeCssClass(this.container, \"ace_hasPlaceholder\");\n this.renderer.placeholderNode.remove();\n this.renderer.placeholderNode = null;\n }\n else if (!hasValue && !this.renderer.placeholderNode) {\n this.renderer.on(\"afterRender\", this.$updatePlaceholder);\n dom.addCssClass(this.container, \"ace_hasPlaceholder\");\n var el = dom.createElement(\"div\");\n el.className = \"ace_placeholder\";\n el.textContent = this.$placeholder || \"\";\n this.renderer.placeholderNode = el;\n this.renderer.content.appendChild(this.renderer.placeholderNode);\n }\n else if (!hasValue && this.renderer.placeholderNode) {\n this.renderer.placeholderNode.textContent = this.$placeholder || \"\";\n }\n }.bind(this);\n this.on(\"input\", this.$updatePlaceholder);\n }\n this.$updatePlaceholder();\n }\n },\n enableKeyboardAccessibility: {\n set: function (value) {\n var blurCommand = {\n name: \"blurTextInput\",\n description: \"Set focus to the editor content div to allow tabbing through the page\",\n bindKey: \"Esc\",\n exec: function (editor) {\n editor.blur();\n editor.renderer.scroller.focus();\n },\n readOnly: true\n };\n var focusOnEnterKeyup = function (e) {\n if (e.target == this.renderer.scroller && e.keyCode === keys['enter']) {\n e.preventDefault();\n var row = this.getCursorPosition().row;\n if (!this.isRowVisible(row))\n this.scrollToLine(row, true, true);\n this.focus();\n }\n };\n var gutterKeyboardHandler;\n if (value) {\n this.renderer.enableKeyboardAccessibility = true;\n this.renderer.keyboardFocusClassName = \"ace_keyboard-focus\";\n this.textInput.getElement().setAttribute(\"tabindex\", -1);\n this.textInput.setNumberOfExtraLines(useragent.isWin ? 3 : 0);\n this.renderer.scroller.setAttribute(\"tabindex\", 0);\n this.renderer.scroller.setAttribute(\"role\", \"group\");\n this.renderer.scroller.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName);\n this.renderer.scroller.setAttribute(\"aria-label\", nls(\"Editor content, press Enter to start editing, press Escape to exit\"));\n this.renderer.scroller.addEventListener(\"keyup\", focusOnEnterKeyup.bind(this));\n this.commands.addCommand(blurCommand);\n this.renderer.$gutter.setAttribute(\"tabindex\", 0);\n this.renderer.$gutter.setAttribute(\"aria-hidden\", false);\n this.renderer.$gutter.setAttribute(\"role\", \"group\");\n this.renderer.$gutter.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n this.renderer.$gutter.setAttribute(\"aria-label\", nls(\"Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit\"));\n this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName);\n this.renderer.content.setAttribute(\"aria-hidden\", true);\n if (!gutterKeyboardHandler)\n gutterKeyboardHandler = new GutterKeyboardHandler(this);\n gutterKeyboardHandler.addListener();\n }\n else {\n this.renderer.enableKeyboardAccessibility = false;\n this.textInput.getElement().setAttribute(\"tabindex\", 0);\n this.textInput.setNumberOfExtraLines(0);\n this.renderer.scroller.setAttribute(\"tabindex\", -1);\n this.renderer.scroller.removeAttribute(\"role\");\n this.renderer.scroller.removeAttribute(\"aria-roledescription\");\n this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName);\n this.renderer.scroller.removeAttribute(\"aria-label\");\n this.renderer.scroller.removeEventListener(\"keyup\", focusOnEnterKeyup.bind(this));\n this.commands.removeCommand(blurCommand);\n this.renderer.content.removeAttribute(\"aria-hidden\");\n this.renderer.$gutter.setAttribute(\"tabindex\", -1);\n this.renderer.$gutter.setAttribute(\"aria-hidden\", true);\n this.renderer.$gutter.removeAttribute(\"role\");\n this.renderer.$gutter.removeAttribute(\"aria-roledescription\");\n this.renderer.$gutter.removeAttribute(\"aria-label\");\n this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName);\n if (gutterKeyboardHandler)\n gutterKeyboardHandler.removeListener();\n }\n },\n initialValue: false\n },\n customScrollbar: \"renderer\",\n hScrollBarAlwaysVisible: \"renderer\",\n vScrollBarAlwaysVisible: \"renderer\",\n highlightGutterLine: \"renderer\",\n animatedScroll: \"renderer\",\n showInvisibles: \"renderer\",\n showPrintMargin: \"renderer\",\n printMarginColumn: \"renderer\",\n printMargin: \"renderer\",\n fadeFoldWidgets: \"renderer\",\n showFoldWidgets: \"renderer\",\n displayIndentGuides: \"renderer\",\n highlightIndentGuides: \"renderer\",\n showGutter: \"renderer\",\n fontSize: \"renderer\",\n fontFamily: \"renderer\",\n maxLines: \"renderer\",\n minLines: \"renderer\",\n scrollPastEnd: \"renderer\",\n fixedWidthGutter: \"renderer\",\n theme: \"renderer\",\n hasCssTransforms: \"renderer\",\n maxPixelHeight: \"renderer\",\n useTextareaForIME: \"renderer\",\n useResizeObserver: \"renderer\",\n useSvgGutterIcons: \"renderer\",\n showFoldedAnnotations: \"renderer\",\n scrollSpeed: \"$mouseHandler\",\n dragDelay: \"$mouseHandler\",\n dragEnabled: \"$mouseHandler\",\n focusTimeout: \"$mouseHandler\",\n tooltipFollowsMouse: \"$mouseHandler\",\n firstLineNumber: \"session\",\n overwrite: \"session\",\n newLineMode: \"session\",\n useWorker: \"session\",\n useSoftTabs: \"session\",\n navigateWithinSoftTabs: \"session\",\n tabSize: \"session\",\n wrap: \"session\",\n indentedSoftWrap: \"session\",\n foldStyle: \"session\",\n mode: \"session\"\n});\nvar relativeNumberRenderer = {\n getText: function (session, row) {\n return (Math.abs(session.selection.lead.row - row) || (row + 1 + (row < 9 ? \"\\xb7\" : \"\"))) + \"\";\n },\n getWidth: function (session, lastLineNumber, config) {\n return Math.max(lastLineNumber.toString().length, (config.lastRow + 1).toString().length, 2) * config.characterWidth;\n },\n update: function (e, editor) {\n editor.renderer.$loop.schedule(editor.renderer.CHANGE_GUTTER);\n },\n attach: function (editor) {\n editor.renderer.$gutterLayer.$renderer = this;\n editor.on(\"changeSelection\", this.update);\n this.update(null, editor);\n },\n detach: function (editor) {\n if (editor.renderer.$gutterLayer.$renderer == this)\n editor.renderer.$gutterLayer.$renderer = null;\n editor.off(\"changeSelection\", this.update);\n this.update(null, editor);\n }\n};\nexports.Editor = Editor;\n\n});\n\nace.define(\"ace/layer/lines\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar Lines = /** @class */ (function () {\n function Lines(element, canvasHeight) {\n this.element = element;\n this.canvasHeight = canvasHeight || 500000;\n this.element.style.height = (this.canvasHeight * 2) + \"px\";\n this.cells = [];\n this.cellCache = [];\n this.$offsetCoefficient = 0;\n }\n Lines.prototype.moveContainer = function (config) {\n dom.translate(this.element, 0, -((config.firstRowScreen * config.lineHeight) % this.canvasHeight) - config.offset * this.$offsetCoefficient);\n };\n Lines.prototype.pageChanged = function (oldConfig, newConfig) {\n return (Math.floor((oldConfig.firstRowScreen * oldConfig.lineHeight) / this.canvasHeight) !==\n Math.floor((newConfig.firstRowScreen * newConfig.lineHeight) / this.canvasHeight));\n };\n Lines.prototype.computeLineTop = function (row, config, session) {\n var screenTop = config.firstRowScreen * config.lineHeight;\n var screenPage = Math.floor(screenTop / this.canvasHeight);\n var lineTop = session.documentToScreenRow(row, 0) * config.lineHeight;\n return lineTop - (screenPage * this.canvasHeight);\n };\n Lines.prototype.computeLineHeight = function (row, config, session) {\n return config.lineHeight * session.getRowLineCount(row);\n };\n Lines.prototype.getLength = function () {\n return this.cells.length;\n };\n Lines.prototype.get = function (index) {\n return this.cells[index];\n };\n Lines.prototype.shift = function () {\n this.$cacheCell(this.cells.shift());\n };\n Lines.prototype.pop = function () {\n this.$cacheCell(this.cells.pop());\n };\n Lines.prototype.push = function (cell) {\n if (Array.isArray(cell)) {\n this.cells.push.apply(this.cells, cell);\n var fragment = dom.createFragment(this.element);\n for (var i = 0; i < cell.length; i++) {\n fragment.appendChild(cell[i].element);\n }\n this.element.appendChild(fragment);\n }\n else {\n this.cells.push(cell);\n this.element.appendChild(cell.element);\n }\n };\n Lines.prototype.unshift = function (cell) {\n if (Array.isArray(cell)) {\n this.cells.unshift.apply(this.cells, cell);\n var fragment = dom.createFragment(this.element);\n for (var i = 0; i < cell.length; i++) {\n fragment.appendChild(cell[i].element);\n }\n if (this.element.firstChild)\n this.element.insertBefore(fragment, this.element.firstChild);\n else\n this.element.appendChild(fragment);\n }\n else {\n this.cells.unshift(cell);\n this.element.insertAdjacentElement(\"afterbegin\", cell.element);\n }\n };\n Lines.prototype.last = function () {\n if (this.cells.length)\n return this.cells[this.cells.length - 1];\n else\n return null;\n };\n Lines.prototype.$cacheCell = function (cell) {\n if (!cell)\n return;\n cell.element.remove();\n this.cellCache.push(cell);\n };\n Lines.prototype.createCell = function (row, config, session, initElement) {\n var cell = this.cellCache.pop();\n if (!cell) {\n var element = dom.createElement(\"div\");\n if (initElement)\n initElement(element);\n this.element.appendChild(element);\n cell = {\n element: element,\n text: \"\",\n row: row\n };\n }\n cell.row = row;\n return cell;\n };\n return Lines;\n}());\nexports.Lines = Lines;\n\n});\n\nace.define(\"ace/layer/gutter\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/layer/lines\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar Lines = require(\"./lines\").Lines;\nvar nls = require(\"../config\").nls;\nvar Gutter = /** @class */ (function () {\n function Gutter(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_gutter-layer\";\n parentEl.appendChild(this.element);\n this.setShowFoldWidgets(this.$showFoldWidgets);\n this.gutterWidth = 0;\n this.$annotations = [];\n this.$updateAnnotations = this.$updateAnnotations.bind(this);\n this.$lines = new Lines(this.element);\n this.$lines.$offsetCoefficient = 1;\n }\n Gutter.prototype.setSession = function (session) {\n if (this.session)\n this.session.off(\"change\", this.$updateAnnotations);\n this.session = session;\n if (session)\n session.on(\"change\", this.$updateAnnotations);\n };\n Gutter.prototype.addGutterDecoration = function (row, className) {\n if (window.console)\n console.warn && console.warn(\"deprecated use session.addGutterDecoration\");\n this.session.addGutterDecoration(row, className);\n };\n Gutter.prototype.removeGutterDecoration = function (row, className) {\n if (window.console)\n console.warn && console.warn(\"deprecated use session.removeGutterDecoration\");\n this.session.removeGutterDecoration(row, className);\n };\n Gutter.prototype.setAnnotations = function (annotations) {\n this.$annotations = [];\n for (var i = 0; i < annotations.length; i++) {\n var annotation = annotations[i];\n var row = annotation.row;\n var rowInfo = this.$annotations[row];\n if (!rowInfo)\n rowInfo = this.$annotations[row] = { text: [], type: [] };\n var annoText = annotation.text;\n var annoType = annotation.type;\n annoText = annoText ? lang.escapeHTML(annoText) : annotation.html || \"\";\n if (rowInfo.text.indexOf(annoText) === -1) {\n rowInfo.text.push(annoText);\n rowInfo.type.push(annoType);\n }\n var className = annotation.className;\n if (className)\n rowInfo.className = className;\n else if (annoType == \"error\")\n rowInfo.className = \" ace_error\";\n else if (annoType == \"warning\" && rowInfo.className != \" ace_error\")\n rowInfo.className = \" ace_warning\";\n else if (annoType == \"info\" && (!rowInfo.className))\n rowInfo.className = \" ace_info\";\n }\n };\n Gutter.prototype.$updateAnnotations = function (delta) {\n if (!this.$annotations.length)\n return;\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n }\n else if (delta.action == 'remove') {\n this.$annotations.splice(firstRow, len + 1, null);\n }\n else {\n var args = new Array(len + 1);\n args.unshift(firstRow, 1);\n this.$annotations.splice.apply(this.$annotations, args);\n }\n };\n Gutter.prototype.update = function (config) {\n this.config = config;\n var session = this.session;\n var firstRow = config.firstRow;\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n session.getLength() - 1);\n this.oldLastRow = lastRow;\n this.config = config;\n this.$lines.moveContainer(config);\n this.$updateCursorRow();\n var fold = session.getNextFoldLine(firstRow);\n var foldStart = fold ? fold.start.row : Infinity;\n var cell = null;\n var index = -1;\n var row = firstRow;\n while (true) {\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = session.getNextFoldLine(row, fold);\n foldStart = fold ? fold.start.row : Infinity;\n }\n if (row > lastRow) {\n while (this.$lines.getLength() > index + 1)\n this.$lines.pop();\n break;\n }\n cell = this.$lines.get(++index);\n if (cell) {\n cell.row = row;\n }\n else {\n cell = this.$lines.createCell(row, config, this.session, onCreateCell);\n this.$lines.push(cell);\n }\n this.$renderCell(cell, config, fold, row);\n row++;\n }\n this._signal(\"afterRender\");\n this.$updateGutterWidth(config);\n };\n Gutter.prototype.$updateGutterWidth = function (config) {\n var session = this.session;\n var gutterRenderer = session.gutterRenderer || this.$renderer;\n var firstLineNumber = session.$firstLineNumber;\n var lastLineText = this.$lines.last() ? this.$lines.last().text : \"\";\n if (this.$fixedWidth || session.$useWrapMode)\n lastLineText = session.getLength() + firstLineNumber - 1;\n var gutterWidth = gutterRenderer\n ? gutterRenderer.getWidth(session, lastLineText, config)\n : lastLineText.toString().length * config.characterWidth;\n var padding = this.$padding || this.$computePadding();\n gutterWidth += padding.left + padding.right;\n if (gutterWidth !== this.gutterWidth && !isNaN(gutterWidth)) {\n this.gutterWidth = gutterWidth;\n this.element.parentNode.style.width =\n this.element.style.width = Math.ceil(this.gutterWidth) + \"px\";\n this._signal(\"changeGutterWidth\", gutterWidth);\n }\n };\n Gutter.prototype.$updateCursorRow = function () {\n if (!this.$highlightGutterLine)\n return;\n var position = this.session.selection.getCursor();\n if (this.$cursorRow === position.row)\n return;\n this.$cursorRow = position.row;\n };\n Gutter.prototype.updateLineHighlight = function () {\n if (!this.$highlightGutterLine)\n return;\n var row = this.session.selection.cursor.row;\n this.$cursorRow = row;\n if (this.$cursorCell && this.$cursorCell.row == row)\n return;\n if (this.$cursorCell)\n this.$cursorCell.element.className = this.$cursorCell.element.className.replace(\"ace_gutter-active-line \", \"\");\n var cells = this.$lines.cells;\n this.$cursorCell = null;\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n if (cell.row >= this.$cursorRow) {\n if (cell.row > this.$cursorRow) {\n var fold = this.session.getFoldLine(this.$cursorRow);\n if (i > 0 && fold && fold.start.row == cells[i - 1].row)\n cell = cells[i - 1];\n else\n break;\n }\n cell.element.className = \"ace_gutter-active-line \" + cell.element.className;\n this.$cursorCell = cell;\n break;\n }\n }\n };\n Gutter.prototype.scrollLines = function (config) {\n var oldConfig = this.config;\n this.config = config;\n this.$updateCursorRow();\n if (this.$lines.pageChanged(oldConfig, config))\n return this.update(config);\n this.$lines.moveContainer(config);\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n this.session.getLength() - 1);\n var oldLastRow = this.oldLastRow;\n this.oldLastRow = lastRow;\n if (!oldConfig || oldLastRow < config.firstRow)\n return this.update(config);\n if (lastRow < oldConfig.firstRow)\n return this.update(config);\n if (oldConfig.firstRow < config.firstRow)\n for (var row = this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row > 0; row--)\n this.$lines.shift();\n if (oldLastRow > lastRow)\n for (var row = this.session.getFoldedRowCount(lastRow + 1, oldLastRow); row > 0; row--)\n this.$lines.pop();\n if (config.firstRow < oldConfig.firstRow) {\n this.$lines.unshift(this.$renderLines(config, config.firstRow, oldConfig.firstRow - 1));\n }\n if (lastRow > oldLastRow) {\n this.$lines.push(this.$renderLines(config, oldLastRow + 1, lastRow));\n }\n this.updateLineHighlight();\n this._signal(\"afterRender\");\n this.$updateGutterWidth(config);\n };\n Gutter.prototype.$renderLines = function (config, firstRow, lastRow) {\n var fragment = [];\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n var cell = this.$lines.createCell(row, config, this.session, onCreateCell);\n this.$renderCell(cell, config, foldLine, row);\n fragment.push(cell);\n row++;\n }\n return fragment;\n };\n Gutter.prototype.$renderCell = function (cell, config, fold, row) {\n var element = cell.element;\n var session = this.session;\n var textNode = element.childNodes[0];\n var foldWidget = element.childNodes[1];\n var annotationNode = element.childNodes[2];\n var annotationIconNode = annotationNode.firstChild;\n var firstLineNumber = session.$firstLineNumber;\n var breakpoints = session.$breakpoints;\n var decorations = session.$decorations;\n var gutterRenderer = session.gutterRenderer || this.$renderer;\n var foldWidgets = this.$showFoldWidgets && session.foldWidgets;\n var foldStart = fold ? fold.start.row : Number.MAX_VALUE;\n var lineHeight = config.lineHeight + \"px\";\n var className = this.$useSvgGutterIcons ? \"ace_gutter-cell_svg-icons \" : \"ace_gutter-cell \";\n var iconClassName = this.$useSvgGutterIcons ? \"ace_icon_svg\" : \"ace_icon\";\n var rowText = (gutterRenderer\n ? gutterRenderer.getText(session, row)\n : row + firstLineNumber).toString();\n if (this.$highlightGutterLine) {\n if (row == this.$cursorRow || (fold && row < this.$cursorRow && row >= foldStart && this.$cursorRow <= fold.end.row)) {\n className += \"ace_gutter-active-line \";\n if (this.$cursorCell != cell) {\n if (this.$cursorCell)\n this.$cursorCell.element.className = this.$cursorCell.element.className.replace(\"ace_gutter-active-line \", \"\");\n this.$cursorCell = cell;\n }\n }\n }\n if (breakpoints[row])\n className += breakpoints[row];\n if (decorations[row])\n className += decorations[row];\n if (this.$annotations[row] && row !== foldStart)\n className += this.$annotations[row].className;\n if (foldWidgets) {\n var c = foldWidgets[row];\n if (c == null)\n c = foldWidgets[row] = session.getFoldWidget(row);\n }\n if (c) {\n var foldClass = \"ace_fold-widget ace_\" + c;\n var isClosedFold = c == \"start\" && row == foldStart && row < fold.end.row;\n if (isClosedFold) {\n foldClass += \" ace_closed\";\n var foldAnnotationClass = '';\n var annotationInFold = false;\n for (var i = row + 1; i <= fold.end.row; i++) {\n if (!this.$annotations[i])\n continue;\n if (this.$annotations[i].className === \" ace_error\") {\n annotationInFold = true;\n foldAnnotationClass = \" ace_error_fold\";\n break;\n }\n if (this.$annotations[i].className === \" ace_warning\") {\n annotationInFold = true;\n foldAnnotationClass = \" ace_warning_fold\";\n continue;\n }\n }\n className += foldAnnotationClass;\n }\n else\n foldClass += \" ace_open\";\n if (foldWidget.className != foldClass)\n foldWidget.className = foldClass;\n dom.setStyle(foldWidget.style, \"height\", lineHeight);\n dom.setStyle(foldWidget.style, \"display\", \"inline-block\");\n foldWidget.setAttribute(\"role\", \"button\");\n foldWidget.setAttribute(\"tabindex\", \"-1\");\n var foldRange = session.getFoldWidgetRange(row);\n if (foldRange)\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, rows $0 through $1\", [foldRange.start.row + 1, foldRange.end.row + 1]));\n else {\n if (fold)\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, rows $0 through $1\", [fold.start.row + 1, fold.end.row + 1]));\n else\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, row $0\", [row + 1]));\n }\n if (isClosedFold) {\n foldWidget.setAttribute(\"aria-expanded\", \"false\");\n foldWidget.setAttribute(\"title\", nls(\"Unfold code\"));\n }\n else {\n foldWidget.setAttribute(\"aria-expanded\", \"true\");\n foldWidget.setAttribute(\"title\", nls(\"Fold code\"));\n }\n }\n else {\n if (foldWidget) {\n dom.setStyle(foldWidget.style, \"display\", \"none\");\n foldWidget.setAttribute(\"tabindex\", \"0\");\n foldWidget.removeAttribute(\"role\");\n foldWidget.removeAttribute(\"aria-label\");\n }\n }\n if (annotationInFold && this.$showFoldedAnnotations) {\n annotationNode.className = \"ace_gutter_annotation\";\n annotationIconNode.className = iconClassName;\n annotationIconNode.className += foldAnnotationClass;\n dom.setStyle(annotationIconNode.style, \"height\", lineHeight);\n dom.setStyle(annotationNode.style, \"display\", \"block\");\n dom.setStyle(annotationNode.style, \"height\", lineHeight);\n annotationNode.setAttribute(\"aria-label\", nls(\"Read annotations row $0\", [rowText]));\n annotationNode.setAttribute(\"tabindex\", \"-1\");\n annotationNode.setAttribute(\"role\", \"button\");\n }\n else if (this.$annotations[row]) {\n annotationNode.className = \"ace_gutter_annotation\";\n annotationIconNode.className = iconClassName;\n if (this.$useSvgGutterIcons)\n annotationIconNode.className += this.$annotations[row].className;\n else\n element.classList.add(this.$annotations[row].className.replace(\" \", \"\"));\n dom.setStyle(annotationIconNode.style, \"height\", lineHeight);\n dom.setStyle(annotationNode.style, \"display\", \"block\");\n dom.setStyle(annotationNode.style, \"height\", lineHeight);\n annotationNode.setAttribute(\"aria-label\", nls(\"Read annotations row $0\", [rowText]));\n annotationNode.setAttribute(\"tabindex\", \"-1\");\n annotationNode.setAttribute(\"role\", \"button\");\n }\n else {\n dom.setStyle(annotationNode.style, \"display\", \"none\");\n annotationNode.removeAttribute(\"aria-label\");\n annotationNode.removeAttribute(\"role\");\n annotationNode.setAttribute(\"tabindex\", \"0\");\n }\n if (rowText !== textNode.data) {\n textNode.data = rowText;\n }\n if (element.className != className)\n element.className = className;\n dom.setStyle(cell.element.style, \"height\", this.$lines.computeLineHeight(row, config, session) + \"px\");\n dom.setStyle(cell.element.style, \"top\", this.$lines.computeLineTop(row, config, session) + \"px\");\n cell.text = rowText;\n if (annotationNode.style.display === \"none\" && foldWidget.style.display === \"none\")\n cell.element.setAttribute(\"aria-hidden\", true);\n else\n cell.element.setAttribute(\"aria-hidden\", false);\n return cell;\n };\n Gutter.prototype.setHighlightGutterLine = function (highlightGutterLine) {\n this.$highlightGutterLine = highlightGutterLine;\n };\n Gutter.prototype.setShowLineNumbers = function (show) {\n this.$renderer = !show && {\n getWidth: function () { return 0; },\n getText: function () { return \"\"; }\n };\n };\n Gutter.prototype.getShowLineNumbers = function () {\n return this.$showLineNumbers;\n };\n Gutter.prototype.setShowFoldWidgets = function (show) {\n if (show)\n dom.addCssClass(this.element, \"ace_folding-enabled\");\n else\n dom.removeCssClass(this.element, \"ace_folding-enabled\");\n this.$showFoldWidgets = show;\n this.$padding = null;\n };\n Gutter.prototype.getShowFoldWidgets = function () {\n return this.$showFoldWidgets;\n };\n Gutter.prototype.$computePadding = function () {\n if (!this.element.firstChild)\n return { left: 0, right: 0 };\n var style = dom.computedStyle(this.element.firstChild);\n this.$padding = {};\n this.$padding.left = (parseInt(style.borderLeftWidth) || 0)\n + (parseInt(style.paddingLeft) || 0) + 1;\n this.$padding.right = (parseInt(style.borderRightWidth) || 0)\n + (parseInt(style.paddingRight) || 0);\n return this.$padding;\n };\n Gutter.prototype.getRegion = function (point) {\n var padding = this.$padding || this.$computePadding();\n var rect = this.element.getBoundingClientRect();\n if (point.x < padding.left + rect.left)\n return \"markers\";\n if (this.$showFoldWidgets && point.x > rect.right - padding.right)\n return \"foldWidgets\";\n };\n return Gutter;\n}());\nGutter.prototype.$fixedWidth = false;\nGutter.prototype.$highlightGutterLine = true;\nGutter.prototype.$renderer = \"\";\nGutter.prototype.$showLineNumbers = true;\nGutter.prototype.$showFoldWidgets = true;\noop.implement(Gutter.prototype, EventEmitter);\nfunction onCreateCell(element) {\n var textNode = document.createTextNode('');\n element.appendChild(textNode);\n var foldWidget = dom.createElement(\"span\");\n element.appendChild(foldWidget);\n var annotationNode = dom.createElement(\"span\");\n element.appendChild(annotationNode);\n var annotationIconNode = dom.createElement(\"span\");\n annotationNode.appendChild(annotationIconNode);\n return element;\n}\nexports.Gutter = Gutter;\n\n});\n\nace.define(\"ace/layer/marker\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar dom = require(\"../lib/dom\");\nvar Marker = /** @class */ (function () {\n function Marker(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_marker-layer\";\n parentEl.appendChild(this.element);\n }\n Marker.prototype.setPadding = function (padding) {\n this.$padding = padding;\n };\n Marker.prototype.setSession = function (session) {\n this.session = session;\n };\n Marker.prototype.setMarkers = function (markers) {\n this.markers = markers;\n };\n Marker.prototype.elt = function (className, css) {\n var x = this.i != -1 && this.element.childNodes[this.i];\n if (!x) {\n x = document.createElement(\"div\");\n this.element.appendChild(x);\n this.i = -1;\n }\n else {\n this.i++;\n }\n x.style.cssText = css;\n x.className = className;\n };\n Marker.prototype.update = function (config) {\n if (!config)\n return;\n this.config = config;\n this.i = 0;\n var html;\n for (var key in this.markers) {\n var marker = this.markers[key];\n if (!marker.range) {\n marker.update(html, this, this.session, config);\n continue;\n }\n var range = marker.range.clipRows(config.firstRow, config.lastRow);\n if (range.isEmpty())\n continue;\n range = range.toScreenRange(this.session);\n if (marker.renderer) {\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n marker.renderer(html, range, left, top, config);\n }\n else if (marker.type == \"fullLine\") {\n this.drawFullLineMarker(html, range, marker.clazz, config);\n }\n else if (marker.type == \"screenLine\") {\n this.drawScreenLineMarker(html, range, marker.clazz, config);\n }\n else if (range.isMultiLine()) {\n if (marker.type == \"text\")\n this.drawTextMarker(html, range, marker.clazz, config);\n else\n this.drawMultiLineMarker(html, range, marker.clazz, config);\n }\n else {\n this.drawSingleLineMarker(html, range, marker.clazz + \" ace_start\" + \" ace_br15\", config);\n }\n }\n if (this.i != -1) {\n while (this.i < this.element.childElementCount)\n this.element.removeChild(this.element.lastChild);\n }\n };\n Marker.prototype.$getTop = function (row, layerConfig) {\n return (row - layerConfig.firstRowScreen) * layerConfig.lineHeight;\n };\n Marker.prototype.drawTextMarker = function (stringBuilder, range, clazz, layerConfig, extraStyle) {\n var session = this.session;\n var start = range.start.row;\n var end = range.end.row;\n var row = start;\n var prev = 0;\n var curr = 0;\n var next = session.getScreenLastRowColumn(row);\n var lineRange = new Range(row, range.start.column, row, curr);\n for (; row <= end; row++) {\n lineRange.start.row = lineRange.end.row = row;\n lineRange.start.column = row == start ? range.start.column : session.getRowWrapIndent(row);\n lineRange.end.column = next;\n prev = curr;\n curr = next;\n next = row + 1 < end ? session.getScreenLastRowColumn(row + 1) : row == end ? 0 : range.end.column;\n this.drawSingleLineMarker(stringBuilder, lineRange, clazz + (row == start ? \" ace_start\" : \"\") + \" ace_br\"\n + getBorderClass(row == start || row == start + 1 && range.start.column, prev < curr, curr > next, row == end), layerConfig, row == end ? 0 : 1, extraStyle);\n }\n };\n Marker.prototype.drawMultiLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var padding = this.$padding;\n var height = config.lineHeight;\n var top = this.$getTop(range.start.row, config);\n var left = padding + range.start.column * config.characterWidth;\n extraStyle = extraStyle || \"\";\n if (this.session.$bidiHandler.isBidiRow(range.start.row)) {\n var range1 = range.clone();\n range1.end.row = range1.start.row;\n range1.end.column = this.session.getLine(range1.start.row).length;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br1 ace_start\", config, null, extraStyle);\n }\n else {\n this.elt(clazz + \" ace_br1 ace_start\", \"height:\" + height + \"px;\" + \"right:0;\" + \"top:\" + top + \"px;left:\" + left + \"px;\" + (extraStyle || \"\"));\n }\n if (this.session.$bidiHandler.isBidiRow(range.end.row)) {\n var range1 = range.clone();\n range1.start.row = range1.end.row;\n range1.start.column = 0;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br12\", config, null, extraStyle);\n }\n else {\n top = this.$getTop(range.end.row, config);\n var width = range.end.column * config.characterWidth;\n this.elt(clazz + \" ace_br12\", \"height:\" + height + \"px;\" +\n \"width:\" + width + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + padding + \"px;\" + (extraStyle || \"\"));\n }\n height = (range.end.row - range.start.row - 1) * config.lineHeight;\n if (height <= 0)\n return;\n top = this.$getTop(range.start.row + 1, config);\n var radiusClass = (range.start.column ? 1 : 0) | (range.end.column ? 0 : 8);\n this.elt(clazz + (radiusClass ? \" ace_br\" + radiusClass : \"\"), \"height:\" + height + \"px;\" +\n \"right:0;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + padding + \"px;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawSingleLineMarker = function (stringBuilder, range, clazz, config, extraLength, extraStyle) {\n if (this.session.$bidiHandler.isBidiRow(range.start.row))\n return this.drawBidiSingleLineMarker(stringBuilder, range, clazz, config, extraLength, extraStyle);\n var height = config.lineHeight;\n var width = (range.end.column + (extraLength || 0) - range.start.column) * config.characterWidth;\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"width:\" + width + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + left + \"px;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawBidiSingleLineMarker = function (stringBuilder, range, clazz, config, extraLength, extraStyle) {\n var height = config.lineHeight, top = this.$getTop(range.start.row, config), padding = this.$padding;\n var selections = this.session.$bidiHandler.getSelections(range.start.column, range.end.column);\n selections.forEach(function (selection) {\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"width:\" + (selection.width + (extraLength || 0)) + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + (padding + selection.left) + \"px;\" + (extraStyle || \"\"));\n }, this);\n };\n Marker.prototype.drawFullLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n if (range.start.row != range.end.row)\n height += this.$getTop(range.end.row, config) - top;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:0;right:0;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawScreenLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:0;right:0;\" + (extraStyle || \"\"));\n };\n return Marker;\n}());\nMarker.prototype.$padding = 0;\nfunction getBorderClass(tl, tr, br, bl) {\n return (tl ? 1 : 0) | (tr ? 2 : 0) | (br ? 4 : 0) | (bl ? 8 : 0);\n}\nexports.Marker = Marker;\n\n});\n\nace.define(\"ace/layer/text_util\",[\"require\",\"exports\",\"module\"], function(require, exports, module){// Tokens for which Ace just uses a simple TextNode and does not add any special className.\nvar textTokens = new Set([\"text\", \"rparen\", \"lparen\"]);\nexports.isTextToken = function (tokenType) {\n return textTokens.has(tokenType);\n};\n\n});\n\nace.define(\"ace/layer/text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/layer/lines\",\"ace/lib/event_emitter\",\"ace/config\",\"ace/layer/text_util\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar Lines = require(\"./lines\").Lines;\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar nls = require(\"../config\").nls;\nvar isTextToken = require(\"./text_util\").isTextToken;\nvar Text = /** @class */ (function () {\n function Text(parentEl) {\n this.dom = dom;\n this.element = this.dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_text-layer\";\n parentEl.appendChild(this.element);\n this.$updateEolChar = this.$updateEolChar.bind(this);\n this.$lines = new Lines(this.element);\n }\n Text.prototype.$updateEolChar = function () {\n var doc = this.session.doc;\n var unixMode = doc.getNewLineCharacter() == \"\\n\" && doc.getNewLineMode() != \"windows\";\n var EOL_CHAR = unixMode ? this.EOL_CHAR_LF : this.EOL_CHAR_CRLF;\n if (this.EOL_CHAR != EOL_CHAR) {\n this.EOL_CHAR = EOL_CHAR;\n return true;\n }\n };\n Text.prototype.setPadding = function (padding) {\n this.$padding = padding;\n this.element.style.margin = \"0 \" + padding + \"px\";\n };\n Text.prototype.getLineHeight = function () {\n return this.$fontMetrics.$characterSize.height || 0;\n };\n Text.prototype.getCharacterWidth = function () {\n return this.$fontMetrics.$characterSize.width || 0;\n };\n Text.prototype.$setFontMetrics = function (measure) {\n this.$fontMetrics = measure;\n this.$fontMetrics.on(\"changeCharacterSize\", function (e) {\n this._signal(\"changeCharacterSize\", e);\n }.bind(this));\n this.$pollSizeChanges();\n };\n Text.prototype.checkForSizeChanges = function () {\n this.$fontMetrics.checkForSizeChanges();\n };\n Text.prototype.$pollSizeChanges = function () {\n return this.$pollSizeChangesTimer = this.$fontMetrics.$pollSizeChanges();\n };\n Text.prototype.setSession = function (session) {\n this.session = session;\n if (session)\n this.$computeTabString();\n };\n Text.prototype.setShowInvisibles = function (showInvisibles) {\n if (this.showInvisibles == showInvisibles)\n return false;\n this.showInvisibles = showInvisibles;\n if (typeof showInvisibles == \"string\") {\n this.showSpaces = /tab/i.test(showInvisibles);\n this.showTabs = /space/i.test(showInvisibles);\n this.showEOL = /eol/i.test(showInvisibles);\n }\n else {\n this.showSpaces = this.showTabs = this.showEOL = showInvisibles;\n }\n this.$computeTabString();\n return true;\n };\n Text.prototype.setDisplayIndentGuides = function (display) {\n if (this.displayIndentGuides == display)\n return false;\n this.displayIndentGuides = display;\n this.$computeTabString();\n return true;\n };\n Text.prototype.setHighlightIndentGuides = function (highlight) {\n if (this.$highlightIndentGuides === highlight)\n return false;\n this.$highlightIndentGuides = highlight;\n return highlight;\n };\n Text.prototype.$computeTabString = function () {\n var tabSize = this.session.getTabSize();\n this.tabSize = tabSize;\n var tabStr = this.$tabStrings = [0];\n for (var i = 1; i < tabSize + 1; i++) {\n if (this.showTabs) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_tab\";\n span.textContent = lang.stringRepeat(this.TAB_CHAR, i);\n tabStr.push(span);\n }\n else {\n tabStr.push(this.dom.createTextNode(lang.stringRepeat(\" \", i), this.element));\n }\n }\n if (this.displayIndentGuides) {\n this.$indentGuideRe = /\\s\\S| \\t|\\t |\\s$/;\n var className = \"ace_indent-guide\";\n var spaceClass = this.showSpaces ? \" ace_invisible ace_invisible_space\" : \"\";\n var spaceContent = this.showSpaces\n ? lang.stringRepeat(this.SPACE_CHAR, this.tabSize)\n : lang.stringRepeat(\" \", this.tabSize);\n var tabClass = this.showTabs ? \" ace_invisible ace_invisible_tab\" : \"\";\n var tabContent = this.showTabs\n ? lang.stringRepeat(this.TAB_CHAR, this.tabSize)\n : spaceContent;\n var span = this.dom.createElement(\"span\");\n span.className = className + spaceClass;\n span.textContent = spaceContent;\n this.$tabStrings[\" \"] = span;\n var span = this.dom.createElement(\"span\");\n span.className = className + tabClass;\n span.textContent = tabContent;\n this.$tabStrings[\"\\t\"] = span;\n }\n };\n Text.prototype.updateLines = function (config, firstRow, lastRow) {\n if (this.config.lastRow != config.lastRow ||\n this.config.firstRow != config.firstRow) {\n return this.update(config);\n }\n this.config = config;\n var first = Math.max(firstRow, config.firstRow);\n var last = Math.min(lastRow, config.lastRow);\n var lineElements = this.element.childNodes;\n var lineElementsIdx = 0;\n for (var row = config.firstRow; row < first; row++) {\n var foldLine = this.session.getFoldLine(row);\n if (foldLine) {\n if (foldLine.containsRow(first)) {\n first = foldLine.start.row;\n break;\n }\n else {\n row = foldLine.end.row;\n }\n }\n lineElementsIdx++;\n }\n var heightChanged = false;\n var row = first;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > last)\n break;\n var lineElement = lineElements[lineElementsIdx++];\n if (lineElement) {\n this.dom.removeChildren(lineElement);\n this.$renderLine(lineElement, row, row == foldStart ? foldLine : false);\n if (heightChanged)\n lineElement.style.top = this.$lines.computeLineTop(row, config, this.session) + \"px\";\n var height = (config.lineHeight * this.session.getRowLength(row)) + \"px\";\n if (lineElement.style.height != height) {\n heightChanged = true;\n lineElement.style.height = height;\n }\n }\n row++;\n }\n if (heightChanged) {\n while (lineElementsIdx < this.$lines.cells.length) {\n var cell = this.$lines.cells[lineElementsIdx++];\n cell.element.style.top = this.$lines.computeLineTop(cell.row, config, this.session) + \"px\";\n }\n }\n };\n Text.prototype.scrollLines = function (config) {\n var oldConfig = this.config;\n this.config = config;\n if (this.$lines.pageChanged(oldConfig, config))\n return this.update(config);\n this.$lines.moveContainer(config);\n var lastRow = config.lastRow;\n var oldLastRow = oldConfig ? oldConfig.lastRow : -1;\n if (!oldConfig || oldLastRow < config.firstRow)\n return this.update(config);\n if (lastRow < oldConfig.firstRow)\n return this.update(config);\n if (!oldConfig || oldConfig.lastRow < config.firstRow)\n return this.update(config);\n if (config.lastRow < oldConfig.firstRow)\n return this.update(config);\n if (oldConfig.firstRow < config.firstRow)\n for (var row = this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row > 0; row--)\n this.$lines.shift();\n if (oldConfig.lastRow > config.lastRow)\n for (var row = this.session.getFoldedRowCount(config.lastRow + 1, oldConfig.lastRow); row > 0; row--)\n this.$lines.pop();\n if (config.firstRow < oldConfig.firstRow) {\n this.$lines.unshift(this.$renderLinesFragment(config, config.firstRow, oldConfig.firstRow - 1));\n }\n if (config.lastRow > oldConfig.lastRow) {\n this.$lines.push(this.$renderLinesFragment(config, oldConfig.lastRow + 1, config.lastRow));\n }\n this.$highlightIndentGuide();\n };\n Text.prototype.$renderLinesFragment = function (config, firstRow, lastRow) {\n var fragment = [];\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n var line = this.$lines.createCell(row, config, this.session);\n var lineEl = line.element;\n this.dom.removeChildren(lineEl);\n dom.setStyle(lineEl.style, \"height\", this.$lines.computeLineHeight(row, config, this.session) + \"px\");\n dom.setStyle(lineEl.style, \"top\", this.$lines.computeLineTop(row, config, this.session) + \"px\");\n this.$renderLine(lineEl, row, row == foldStart ? foldLine : false);\n if (this.$useLineGroups()) {\n lineEl.className = \"ace_line_group\";\n }\n else {\n lineEl.className = \"ace_line\";\n }\n fragment.push(line);\n row++;\n }\n return fragment;\n };\n Text.prototype.update = function (config) {\n this.$lines.moveContainer(config);\n this.config = config;\n var firstRow = config.firstRow;\n var lastRow = config.lastRow;\n var lines = this.$lines;\n while (lines.getLength())\n lines.pop();\n lines.push(this.$renderLinesFragment(config, firstRow, lastRow));\n };\n Text.prototype.$renderToken = function (parent, screenColumn, token, value) {\n var self = this;\n var re = /(\\t)|( +)|([\\x00-\\x1f\\x80-\\xa0\\xad\\u1680\\u180E\\u2000-\\u200f\\u2028\\u2029\\u202F\\u205F\\uFEFF\\uFFF9-\\uFFFC\\u2066\\u2067\\u2068\\u202A\\u202B\\u202D\\u202E\\u202C\\u2069]+)|(\\u3000)|([\\u1100-\\u115F\\u11A3-\\u11A7\\u11FA-\\u11FF\\u2329-\\u232A\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3001-\\u303E\\u3041-\\u3096\\u3099-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u3190-\\u31BA\\u31C0-\\u31E3\\u31F0-\\u321E\\u3220-\\u3247\\u3250-\\u32FE\\u3300-\\u4DBF\\u4E00-\\uA48C\\uA490-\\uA4C6\\uA960-\\uA97C\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFAFF\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFF01-\\uFF60\\uFFE0-\\uFFE6]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF])/g;\n var valueFragment = this.dom.createFragment(this.element);\n var m;\n var i = 0;\n while (m = re.exec(value)) {\n var tab = m[1];\n var simpleSpace = m[2];\n var controlCharacter = m[3];\n var cjkSpace = m[4];\n var cjk = m[5];\n if (!self.showSpaces && simpleSpace)\n continue;\n var before = i != m.index ? value.slice(i, m.index) : \"\";\n i = m.index + m[0].length;\n if (before) {\n valueFragment.appendChild(this.dom.createTextNode(before, this.element));\n }\n if (tab) {\n var tabSize = self.session.getScreenTabSize(screenColumn + m.index);\n valueFragment.appendChild(self.$tabStrings[tabSize].cloneNode(true));\n screenColumn += tabSize - 1;\n }\n else if (simpleSpace) {\n if (self.showSpaces) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_space\";\n span.textContent = lang.stringRepeat(self.SPACE_CHAR, simpleSpace.length);\n valueFragment.appendChild(span);\n }\n else {\n valueFragment.appendChild(this.dom.createTextNode(simpleSpace, this.element));\n }\n }\n else if (controlCharacter) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_space ace_invalid\";\n span.textContent = lang.stringRepeat(self.SPACE_CHAR, controlCharacter.length);\n valueFragment.appendChild(span);\n }\n else if (cjkSpace) {\n screenColumn += 1;\n var span = this.dom.createElement(\"span\");\n span.style.width = (self.config.characterWidth * 2) + \"px\";\n span.className = self.showSpaces ? \"ace_cjk ace_invisible ace_invisible_space\" : \"ace_cjk\";\n span.textContent = self.showSpaces ? self.SPACE_CHAR : cjkSpace;\n valueFragment.appendChild(span);\n }\n else if (cjk) {\n screenColumn += 1;\n var span = this.dom.createElement(\"span\");\n span.style.width = (self.config.characterWidth * 2) + \"px\";\n span.className = \"ace_cjk\";\n span.textContent = cjk;\n valueFragment.appendChild(span);\n }\n }\n valueFragment.appendChild(this.dom.createTextNode(i ? value.slice(i) : value, this.element));\n if (!isTextToken(token.type)) {\n var classes = \"ace_\" + token.type.replace(/\\./g, \" ace_\");\n var span = this.dom.createElement(\"span\");\n if (token.type == \"fold\") {\n span.style.width = (token.value.length * this.config.characterWidth) + \"px\";\n span.setAttribute(\"title\", nls(\"Unfold code\"));\n }\n span.className = classes;\n span.appendChild(valueFragment);\n parent.appendChild(span);\n }\n else {\n parent.appendChild(valueFragment);\n }\n return screenColumn + value.length;\n };\n Text.prototype.renderIndentGuide = function (parent, value, max) {\n var cols = value.search(this.$indentGuideRe);\n if (cols <= 0 || cols >= max)\n return value;\n if (value[0] == \" \") {\n cols -= cols % this.tabSize;\n var count = cols / this.tabSize;\n for (var i = 0; i < count; i++) {\n parent.appendChild(this.$tabStrings[\" \"].cloneNode(true));\n }\n this.$highlightIndentGuide();\n return value.substr(cols);\n }\n else if (value[0] == \"\\t\") {\n for (var i = 0; i < cols; i++) {\n parent.appendChild(this.$tabStrings[\"\\t\"].cloneNode(true));\n }\n this.$highlightIndentGuide();\n return value.substr(cols);\n }\n this.$highlightIndentGuide();\n return value;\n };\n Text.prototype.$highlightIndentGuide = function () {\n if (!this.$highlightIndentGuides || !this.displayIndentGuides)\n return;\n this.$highlightIndentGuideMarker = {\n indentLevel: undefined,\n start: undefined,\n end: undefined,\n dir: undefined\n };\n var lines = this.session.doc.$lines;\n if (!lines)\n return;\n var cursor = this.session.selection.getCursor();\n var initialIndent = /^\\s*/.exec(this.session.doc.getLine(cursor.row))[0].length;\n var elementIndentLevel = Math.floor(initialIndent / this.tabSize);\n this.$highlightIndentGuideMarker = {\n indentLevel: elementIndentLevel,\n start: cursor.row\n };\n var bracketHighlight = this.session.$bracketHighlight;\n if (bracketHighlight) {\n var ranges = this.session.$bracketHighlight.ranges;\n for (var i = 0; i < ranges.length; i++) {\n if (cursor.row !== ranges[i].start.row) {\n this.$highlightIndentGuideMarker.end = ranges[i].start.row;\n if (cursor.row > ranges[i].start.row) {\n this.$highlightIndentGuideMarker.dir = -1;\n }\n else {\n this.$highlightIndentGuideMarker.dir = 1;\n }\n break;\n }\n }\n }\n if (!this.$highlightIndentGuideMarker.end) {\n if (lines[cursor.row] !== '' && cursor.column === lines[cursor.row].length) {\n this.$highlightIndentGuideMarker.dir = 1;\n for (var i = cursor.row + 1; i < lines.length; i++) {\n var line = lines[i];\n var currentIndent = /^\\s*/.exec(line)[0].length;\n if (line !== '') {\n this.$highlightIndentGuideMarker.end = i;\n if (currentIndent <= initialIndent)\n break;\n }\n }\n }\n }\n this.$renderHighlightIndentGuide();\n };\n Text.prototype.$clearActiveIndentGuide = function () {\n var cells = this.$lines.cells;\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n var childNodes = cell.element.childNodes;\n if (childNodes.length > 0) {\n for (var j = 0; j < childNodes.length; j++) {\n if (childNodes[j].classList && childNodes[j].classList.contains(\"ace_indent-guide-active\")) {\n childNodes[j].classList.remove(\"ace_indent-guide-active\");\n break;\n }\n }\n }\n }\n };\n Text.prototype.$setIndentGuideActive = function (cell, indentLevel) {\n var line = this.session.doc.getLine(cell.row);\n if (line !== \"\") {\n var childNodes = cell.element.childNodes;\n if (childNodes) {\n var node = childNodes[indentLevel - 1];\n if (node && node.classList && node.classList.contains(\"ace_indent-guide\"))\n node.classList.add(\"ace_indent-guide-active\");\n }\n }\n };\n Text.prototype.$renderHighlightIndentGuide = function () {\n if (!this.$lines)\n return;\n var cells = this.$lines.cells;\n this.$clearActiveIndentGuide();\n var indentLevel = this.$highlightIndentGuideMarker.indentLevel;\n if (indentLevel !== 0) {\n if (this.$highlightIndentGuideMarker.dir === 1) {\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n if (this.$highlightIndentGuideMarker.end && cell.row >= this.$highlightIndentGuideMarker.start\n + 1) {\n if (cell.row >= this.$highlightIndentGuideMarker.end)\n break;\n this.$setIndentGuideActive(cell, indentLevel);\n }\n }\n }\n else {\n for (var i = cells.length - 1; i >= 0; i--) {\n var cell = cells[i];\n if (this.$highlightIndentGuideMarker.end && cell.row < this.$highlightIndentGuideMarker.start) {\n if (cell.row <= this.$highlightIndentGuideMarker.end)\n break;\n this.$setIndentGuideActive(cell, indentLevel);\n }\n }\n }\n }\n };\n Text.prototype.$createLineElement = function (parent) {\n var lineEl = this.dom.createElement(\"div\");\n lineEl.className = \"ace_line\";\n lineEl.style.height = this.config.lineHeight + \"px\";\n return lineEl;\n };\n Text.prototype.$renderWrappedLine = function (parent, tokens, splits) {\n var chars = 0;\n var split = 0;\n var splitChars = splits[0];\n var screenColumn = 0;\n var lineEl = this.$createLineElement();\n parent.appendChild(lineEl);\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n chars = value.length;\n value = this.renderIndentGuide(lineEl, value, splitChars);\n if (!value)\n continue;\n chars -= value.length;\n }\n if (chars + value.length < splitChars) {\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value);\n chars += value.length;\n }\n else {\n while (chars + value.length >= splitChars) {\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value.substring(0, splitChars - chars));\n value = value.substring(splitChars - chars);\n chars = splitChars;\n lineEl = this.$createLineElement();\n parent.appendChild(lineEl);\n lineEl.appendChild(this.dom.createTextNode(lang.stringRepeat(\"\\xa0\", splits.indent), this.element));\n split++;\n screenColumn = 0;\n splitChars = splits[split] || Number.MAX_VALUE;\n }\n if (value.length != 0) {\n chars += value.length;\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value);\n }\n }\n }\n if (splits[splits.length - 1] > this.MAX_LINE_LENGTH)\n this.$renderOverflowMessage(lineEl, screenColumn, null, \"\", true);\n };\n Text.prototype.$renderSimpleLine = function (parent, tokens) {\n var screenColumn = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n value = this.renderIndentGuide(parent, value);\n if (!value)\n continue;\n }\n if (screenColumn + value.length > this.MAX_LINE_LENGTH)\n return this.$renderOverflowMessage(parent, screenColumn, token, value);\n screenColumn = this.$renderToken(parent, screenColumn, token, value);\n }\n };\n Text.prototype.$renderOverflowMessage = function (parent, screenColumn, token, value, hide) {\n token && this.$renderToken(parent, screenColumn, token, value.slice(0, this.MAX_LINE_LENGTH - screenColumn));\n var overflowEl = this.dom.createElement(\"span\");\n overflowEl.className = \"ace_inline_button ace_keyword ace_toggle_wrap\";\n overflowEl.textContent = hide ? \"\" : \"\";\n parent.appendChild(overflowEl);\n };\n Text.prototype.$renderLine = function (parent, row, foldLine) {\n if (!foldLine && foldLine != false)\n foldLine = this.session.getFoldLine(row);\n if (foldLine)\n var tokens = this.$getFoldLineTokens(row, foldLine);\n else\n var tokens = this.session.getTokens(row);\n var lastLineEl = parent;\n if (tokens.length) {\n var splits = this.session.getRowSplitData(row);\n if (splits && splits.length) {\n this.$renderWrappedLine(parent, tokens, splits);\n var lastLineEl = parent.lastChild;\n }\n else {\n var lastLineEl = parent;\n if (this.$useLineGroups()) {\n lastLineEl = this.$createLineElement();\n parent.appendChild(lastLineEl);\n }\n this.$renderSimpleLine(lastLineEl, tokens);\n }\n }\n else if (this.$useLineGroups()) {\n lastLineEl = this.$createLineElement();\n parent.appendChild(lastLineEl);\n }\n if (this.showEOL && lastLineEl) {\n if (foldLine)\n row = foldLine.end.row;\n var invisibleEl = this.dom.createElement(\"span\");\n invisibleEl.className = \"ace_invisible ace_invisible_eol\";\n invisibleEl.textContent = row == this.session.getLength() - 1 ? this.EOF_CHAR : this.EOL_CHAR;\n lastLineEl.appendChild(invisibleEl);\n }\n };\n Text.prototype.$getFoldLineTokens = function (row, foldLine) {\n var session = this.session;\n var renderTokens = [];\n function addTokens(tokens, from, to) {\n var idx = 0, col = 0;\n while ((col + tokens[idx].value.length) < from) {\n col += tokens[idx].value.length;\n idx++;\n if (idx == tokens.length)\n return;\n }\n if (col != from) {\n var value = tokens[idx].value.substring(from - col);\n if (value.length > (to - from))\n value = value.substring(0, to - from);\n renderTokens.push({\n type: tokens[idx].type,\n value: value\n });\n col = from + value.length;\n idx += 1;\n }\n while (col < to && idx < tokens.length) {\n var value = tokens[idx].value;\n if (value.length + col > to) {\n renderTokens.push({\n type: tokens[idx].type,\n value: value.substring(0, to - col)\n });\n }\n else\n renderTokens.push(tokens[idx]);\n col += value.length;\n idx += 1;\n }\n }\n var tokens = session.getTokens(row);\n foldLine.walk(function (placeholder, row, column, lastColumn, isNewRow) {\n if (placeholder != null) {\n renderTokens.push({\n type: \"fold\",\n value: placeholder\n });\n }\n else {\n if (isNewRow)\n tokens = session.getTokens(row);\n if (tokens.length)\n addTokens(tokens, lastColumn, column);\n }\n }, foldLine.end.row, this.session.getLine(foldLine.end.row).length);\n return renderTokens;\n };\n Text.prototype.$useLineGroups = function () {\n return this.session.getUseWrapMode();\n };\n return Text;\n}());\nText.prototype.EOF_CHAR = \"\\xB6\";\nText.prototype.EOL_CHAR_LF = \"\\xAC\";\nText.prototype.EOL_CHAR_CRLF = \"\\xa4\";\nText.prototype.EOL_CHAR = Text.prototype.EOL_CHAR_LF;\nText.prototype.TAB_CHAR = \"\\u2014\"; //\"\\u21E5\";\nText.prototype.SPACE_CHAR = \"\\xB7\";\nText.prototype.$padding = 0;\nText.prototype.MAX_LINE_LENGTH = 10000;\nText.prototype.showInvisibles = false;\nText.prototype.showSpaces = false;\nText.prototype.showTabs = false;\nText.prototype.showEOL = false;\nText.prototype.displayIndentGuides = true;\nText.prototype.$highlightIndentGuides = true;\nText.prototype.$tabStrings = [];\nText.prototype.destroy = {};\nText.prototype.onChangeTabSize = Text.prototype.$computeTabString;\noop.implement(Text.prototype, EventEmitter);\nexports.Text = Text;\n\n});\n\nace.define(\"ace/layer/cursor\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar Cursor = /** @class */ (function () {\n function Cursor(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_cursor-layer\";\n parentEl.appendChild(this.element);\n this.isVisible = false;\n this.isBlinking = true;\n this.blinkInterval = 1000;\n this.smoothBlinking = false;\n this.cursors = [];\n this.cursor = this.addCursor();\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.$updateCursors = this.$updateOpacity.bind(this);\n }\n Cursor.prototype.$updateOpacity = function (val) {\n var cursors = this.cursors;\n for (var i = cursors.length; i--;)\n dom.setStyle(cursors[i].style, \"opacity\", val ? \"\" : \"0\");\n };\n Cursor.prototype.$startCssAnimation = function () {\n var cursors = this.cursors;\n for (var i = cursors.length; i--;)\n cursors[i].style.animationDuration = this.blinkInterval + \"ms\";\n this.$isAnimating = true;\n setTimeout(function () {\n if (this.$isAnimating) {\n dom.addCssClass(this.element, \"ace_animate-blinking\");\n }\n }.bind(this));\n };\n Cursor.prototype.$stopCssAnimation = function () {\n this.$isAnimating = false;\n dom.removeCssClass(this.element, \"ace_animate-blinking\");\n };\n Cursor.prototype.setPadding = function (padding) {\n this.$padding = padding;\n };\n Cursor.prototype.setSession = function (session) {\n this.session = session;\n };\n Cursor.prototype.setBlinking = function (blinking) {\n if (blinking != this.isBlinking) {\n this.isBlinking = blinking;\n this.restartTimer();\n }\n };\n Cursor.prototype.setBlinkInterval = function (blinkInterval) {\n if (blinkInterval != this.blinkInterval) {\n this.blinkInterval = blinkInterval;\n this.restartTimer();\n }\n };\n Cursor.prototype.setSmoothBlinking = function (smoothBlinking) {\n if (smoothBlinking != this.smoothBlinking) {\n this.smoothBlinking = smoothBlinking;\n dom.setCssClass(this.element, \"ace_smooth-blinking\", smoothBlinking);\n this.$updateCursors(true);\n this.restartTimer();\n }\n };\n Cursor.prototype.addCursor = function () {\n var el = dom.createElement(\"div\");\n el.className = \"ace_cursor\";\n this.element.appendChild(el);\n this.cursors.push(el);\n return el;\n };\n Cursor.prototype.removeCursor = function () {\n if (this.cursors.length > 1) {\n var el = this.cursors.pop();\n el.parentNode.removeChild(el);\n return el;\n }\n };\n Cursor.prototype.hideCursor = function () {\n this.isVisible = false;\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n Cursor.prototype.showCursor = function () {\n this.isVisible = true;\n dom.removeCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n Cursor.prototype.restartTimer = function () {\n var update = this.$updateCursors;\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n this.$stopCssAnimation();\n if (this.smoothBlinking) {\n this.$isSmoothBlinking = false;\n dom.removeCssClass(this.element, \"ace_smooth-blinking\");\n }\n update(true);\n if (!this.isBlinking || !this.blinkInterval || !this.isVisible) {\n this.$stopCssAnimation();\n return;\n }\n if (this.smoothBlinking) {\n this.$isSmoothBlinking = true;\n setTimeout(function () {\n if (this.$isSmoothBlinking) {\n dom.addCssClass(this.element, \"ace_smooth-blinking\");\n }\n }.bind(this));\n }\n if (dom.HAS_CSS_ANIMATION) {\n this.$startCssAnimation();\n }\n else {\n var blink = function () {\n this.timeoutId = setTimeout(function () {\n update(false);\n }, 0.6 * this.blinkInterval);\n }.bind(this);\n this.intervalId = setInterval(function () {\n update(true);\n blink();\n }, this.blinkInterval);\n blink();\n }\n };\n Cursor.prototype.getPixelPosition = function (position, onScreen) {\n if (!this.config || !this.session)\n return { left: 0, top: 0 };\n if (!position)\n position = this.session.selection.getCursor();\n var pos = this.session.documentToScreenPosition(position);\n var cursorLeft = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, position.row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : pos.column * this.config.characterWidth);\n var cursorTop = (pos.row - (onScreen ? this.config.firstRowScreen : 0)) *\n this.config.lineHeight;\n return { left: cursorLeft, top: cursorTop };\n };\n Cursor.prototype.isCursorInView = function (pixelPos, config) {\n return pixelPos.top >= 0 && pixelPos.top < config.maxHeight;\n };\n Cursor.prototype.update = function (config) {\n this.config = config;\n var selections = this.session.$selectionMarkers;\n var i = 0, cursorIndex = 0;\n if (selections === undefined || selections.length === 0) {\n selections = [{ cursor: null }];\n }\n for (var i = 0, n = selections.length; i < n; i++) {\n var pixelPos = this.getPixelPosition(selections[i].cursor, true);\n if ((pixelPos.top > config.height + config.offset ||\n pixelPos.top < 0) && i > 1) {\n continue;\n }\n var element = this.cursors[cursorIndex++] || this.addCursor();\n var style = element.style;\n if (!this.drawCursor) {\n if (!this.isCursorInView(pixelPos, config)) {\n dom.setStyle(style, \"display\", \"none\");\n }\n else {\n dom.setStyle(style, \"display\", \"block\");\n dom.translate(element, pixelPos.left, pixelPos.top);\n dom.setStyle(style, \"width\", Math.round(config.characterWidth) + \"px\");\n dom.setStyle(style, \"height\", config.lineHeight + \"px\");\n }\n }\n else {\n this.drawCursor(element, pixelPos, config, selections[i], this.session);\n }\n }\n while (this.cursors.length > cursorIndex)\n this.removeCursor();\n var overwrite = this.session.getOverwrite();\n this.$setOverwrite(overwrite);\n this.$pixelPos = pixelPos;\n this.restartTimer();\n };\n Cursor.prototype.$setOverwrite = function (overwrite) {\n if (overwrite != this.overwrite) {\n this.overwrite = overwrite;\n if (overwrite)\n dom.addCssClass(this.element, \"ace_overwrite-cursors\");\n else\n dom.removeCssClass(this.element, \"ace_overwrite-cursors\");\n }\n };\n Cursor.prototype.destroy = function () {\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n };\n return Cursor;\n}());\nCursor.prototype.$padding = 0;\nCursor.prototype.drawCursor = null;\nexports.Cursor = Cursor;\n\n});\n\nace.define(\"ace/scrollbar\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar MAX_SCROLL_H = 0x8000;\nvar Scrollbar = /** @class */ (function () {\n function Scrollbar(parent, classSuffix) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_scrollbar ace_scrollbar\" + classSuffix;\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"ace_scrollbar-inner\";\n this.inner.textContent = \"\\xa0\";\n this.element.appendChild(this.inner);\n parent.appendChild(this.element);\n this.setVisible(false);\n this.skipEvent = false;\n event.addListener(this.element, \"scroll\", this.onScroll.bind(this));\n event.addListener(this.element, \"mousedown\", event.preventDefault);\n }\n Scrollbar.prototype.setVisible = function (isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n this.coeff = 1;\n };\n return Scrollbar;\n}());\noop.implement(Scrollbar.prototype, EventEmitter);\nvar VScrollBar = /** @class */ (function (_super) {\n __extends(VScrollBar, _super);\n function VScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-v') || this;\n _this.scrollTop = 0;\n _this.scrollHeight = 0;\n renderer.$scrollbarWidth =\n _this.width = dom.scrollbarWidth(parent.ownerDocument);\n _this.inner.style.width =\n _this.element.style.width = (_this.width || 15) + 5 + \"px\";\n _this.$minWidth = 0;\n return _this;\n }\n VScrollBar.prototype.onScroll = function () {\n if (!this.skipEvent) {\n this.scrollTop = this.element.scrollTop;\n if (this.coeff != 1) {\n var h = this.element.clientHeight / this.scrollHeight;\n this.scrollTop = this.scrollTop * (1 - h) / (this.coeff - h);\n }\n this._emit(\"scroll\", { data: this.scrollTop });\n }\n this.skipEvent = false;\n };\n VScrollBar.prototype.getWidth = function () {\n return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0);\n };\n VScrollBar.prototype.setHeight = function (height) {\n this.element.style.height = height + \"px\";\n };\n VScrollBar.prototype.setScrollHeight = function (height) {\n this.scrollHeight = height;\n if (height > MAX_SCROLL_H) {\n this.coeff = MAX_SCROLL_H / height;\n height = MAX_SCROLL_H;\n }\n else if (this.coeff != 1) {\n this.coeff = 1;\n }\n this.inner.style.height = height + \"px\";\n };\n VScrollBar.prototype.setScrollTop = function (scrollTop) {\n if (this.scrollTop != scrollTop) {\n this.skipEvent = true;\n this.scrollTop = scrollTop;\n this.element.scrollTop = scrollTop * this.coeff;\n }\n };\n return VScrollBar;\n}(Scrollbar));\nVScrollBar.prototype.setInnerHeight = VScrollBar.prototype.setScrollHeight;\nvar HScrollBar = /** @class */ (function (_super) {\n __extends(HScrollBar, _super);\n function HScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-h') || this;\n _this.scrollLeft = 0;\n _this.height = renderer.$scrollbarWidth;\n _this.inner.style.height =\n _this.element.style.height = (_this.height || 15) + 5 + \"px\";\n return _this;\n }\n HScrollBar.prototype.onScroll = function () {\n if (!this.skipEvent) {\n this.scrollLeft = this.element.scrollLeft;\n this._emit(\"scroll\", { data: this.scrollLeft });\n }\n this.skipEvent = false;\n };\n HScrollBar.prototype.getHeight = function () {\n return this.isVisible ? this.height : 0;\n };\n HScrollBar.prototype.setWidth = function (width) {\n this.element.style.width = width + \"px\";\n };\n HScrollBar.prototype.setInnerWidth = function (width) {\n this.inner.style.width = width + \"px\";\n };\n HScrollBar.prototype.setScrollWidth = function (width) {\n this.inner.style.width = width + \"px\";\n };\n HScrollBar.prototype.setScrollLeft = function (scrollLeft) {\n if (this.scrollLeft != scrollLeft) {\n this.skipEvent = true;\n this.scrollLeft = this.element.scrollLeft = scrollLeft;\n }\n };\n return HScrollBar;\n}(Scrollbar));\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n\n});\n\nace.define(\"ace/scrollbar_custom\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\ndom.importCssString(\".ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{\\n position: absolute;\\n background: rgba(128, 128, 128, 0.6);\\n -moz-box-sizing: border-box;\\n box-sizing: border-box;\\n border: 1px solid #bbb;\\n border-radius: 2px;\\n z-index: 8;\\n}\\n.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h {\\n position: absolute;\\n z-index: 6;\\n background: none;\\n overflow: hidden!important;\\n}\\n.ace_editor>.ace_sb-v {\\n z-index: 6;\\n right: 0;\\n top: 0;\\n width: 12px;\\n}\\n.ace_editor>.ace_sb-v div {\\n z-index: 8;\\n right: 0;\\n width: 100%;\\n}\\n.ace_editor>.ace_sb-h {\\n bottom: 0;\\n left: 0;\\n height: 12px;\\n}\\n.ace_editor>.ace_sb-h div {\\n bottom: 0;\\n height: 100%;\\n}\\n.ace_editor>.ace_sb_grabbed {\\n z-index: 8;\\n background: #000;\\n}\", \"ace_scrollbar.css\", false);\nvar ScrollBar = /** @class */ (function () {\n function ScrollBar(parent, classSuffix) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_sb\" + classSuffix;\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"\";\n this.element.appendChild(this.inner);\n this.VScrollWidth = 12;\n this.HScrollHeight = 12;\n parent.appendChild(this.element);\n this.setVisible(false);\n this.skipEvent = false;\n event.addMultiMouseDownListener(this.element, [500, 300, 300], this, \"onMouseDown\");\n }\n ScrollBar.prototype.setVisible = function (isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n this.coeff = 1;\n };\n return ScrollBar;\n}());\noop.implement(ScrollBar.prototype, EventEmitter);\nvar VScrollBar = /** @class */ (function (_super) {\n __extends(VScrollBar, _super);\n function VScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-v') || this;\n _this.scrollTop = 0;\n _this.scrollHeight = 0;\n _this.parent = parent;\n _this.width = _this.VScrollWidth;\n _this.renderer = renderer;\n _this.inner.style.width = _this.element.style.width = (_this.width || 15) + \"px\";\n _this.$minWidth = 0;\n return _this;\n }\n VScrollBar.prototype.onMouseDown = function (eType, e) {\n if (eType !== \"mousedown\")\n return;\n if (event.getButton(e) !== 0 || e.detail === 2) {\n return;\n }\n if (e.target === this.inner) {\n var self = this;\n var mousePageY = e.clientY;\n var onMouseMove = function (e) {\n mousePageY = e.clientY;\n };\n var onMouseUp = function () {\n clearInterval(timerId);\n };\n var startY = e.clientY;\n var startTop = this.thumbTop;\n var onScrollInterval = function () {\n if (mousePageY === undefined)\n return;\n var scrollTop = self.scrollTopFromThumbTop(startTop + mousePageY - startY);\n if (scrollTop === self.scrollTop)\n return;\n self._emit(\"scroll\", { data: scrollTop });\n };\n event.capture(this.inner, onMouseMove, onMouseUp);\n var timerId = setInterval(onScrollInterval, 20);\n return event.preventDefault(e);\n }\n var top = e.clientY - this.element.getBoundingClientRect().top - this.thumbHeight / 2;\n this._emit(\"scroll\", { data: this.scrollTopFromThumbTop(top) });\n return event.preventDefault(e);\n };\n VScrollBar.prototype.getHeight = function () {\n return this.height;\n };\n VScrollBar.prototype.scrollTopFromThumbTop = function (thumbTop) {\n var scrollTop = thumbTop * (this.pageHeight - this.viewHeight) / (this.slideHeight - this.thumbHeight);\n scrollTop = scrollTop >> 0;\n if (scrollTop < 0) {\n scrollTop = 0;\n }\n else if (scrollTop > this.pageHeight - this.viewHeight) {\n scrollTop = this.pageHeight - this.viewHeight;\n }\n return scrollTop;\n };\n VScrollBar.prototype.getWidth = function () {\n return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0);\n };\n VScrollBar.prototype.setHeight = function (height) {\n this.height = Math.max(0, height);\n this.slideHeight = this.height;\n this.viewHeight = this.height;\n this.setScrollHeight(this.pageHeight, true);\n };\n VScrollBar.prototype.setScrollHeight = function (height, force) {\n if (this.pageHeight === height && !force)\n return;\n this.pageHeight = height;\n this.thumbHeight = this.slideHeight * this.viewHeight / this.pageHeight;\n if (this.thumbHeight > this.slideHeight)\n this.thumbHeight = this.slideHeight;\n if (this.thumbHeight < 15)\n this.thumbHeight = 15;\n this.inner.style.height = this.thumbHeight + \"px\";\n if (this.scrollTop > (this.pageHeight - this.viewHeight)) {\n this.scrollTop = (this.pageHeight - this.viewHeight);\n if (this.scrollTop < 0)\n this.scrollTop = 0;\n this._emit(\"scroll\", { data: this.scrollTop });\n }\n };\n VScrollBar.prototype.setScrollTop = function (scrollTop) {\n this.scrollTop = scrollTop;\n if (scrollTop < 0)\n scrollTop = 0;\n this.thumbTop = scrollTop * (this.slideHeight - this.thumbHeight) / (this.pageHeight - this.viewHeight);\n this.inner.style.top = this.thumbTop + \"px\";\n };\n return VScrollBar;\n}(ScrollBar));\nVScrollBar.prototype.setInnerHeight = VScrollBar.prototype.setScrollHeight;\nvar HScrollBar = /** @class */ (function (_super) {\n __extends(HScrollBar, _super);\n function HScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-h') || this;\n _this.scrollLeft = 0;\n _this.scrollWidth = 0;\n _this.height = _this.HScrollHeight;\n _this.inner.style.height = _this.element.style.height = (_this.height || 12) + \"px\";\n _this.renderer = renderer;\n return _this;\n }\n HScrollBar.prototype.onMouseDown = function (eType, e) {\n if (eType !== \"mousedown\")\n return;\n if (event.getButton(e) !== 0 || e.detail === 2) {\n return;\n }\n if (e.target === this.inner) {\n var self = this;\n var mousePageX = e.clientX;\n var onMouseMove = function (e) {\n mousePageX = e.clientX;\n };\n var onMouseUp = function () {\n clearInterval(timerId);\n };\n var startX = e.clientX;\n var startLeft = this.thumbLeft;\n var onScrollInterval = function () {\n if (mousePageX === undefined)\n return;\n var scrollLeft = self.scrollLeftFromThumbLeft(startLeft + mousePageX - startX);\n if (scrollLeft === self.scrollLeft)\n return;\n self._emit(\"scroll\", { data: scrollLeft });\n };\n event.capture(this.inner, onMouseMove, onMouseUp);\n var timerId = setInterval(onScrollInterval, 20);\n return event.preventDefault(e);\n }\n var left = e.clientX - this.element.getBoundingClientRect().left - this.thumbWidth / 2;\n this._emit(\"scroll\", { data: this.scrollLeftFromThumbLeft(left) });\n return event.preventDefault(e);\n };\n HScrollBar.prototype.getHeight = function () {\n return this.isVisible ? this.height : 0;\n };\n HScrollBar.prototype.scrollLeftFromThumbLeft = function (thumbLeft) {\n var scrollLeft = thumbLeft * (this.pageWidth - this.viewWidth) / (this.slideWidth - this.thumbWidth);\n scrollLeft = scrollLeft >> 0;\n if (scrollLeft < 0) {\n scrollLeft = 0;\n }\n else if (scrollLeft > this.pageWidth - this.viewWidth) {\n scrollLeft = this.pageWidth - this.viewWidth;\n }\n return scrollLeft;\n };\n HScrollBar.prototype.setWidth = function (width) {\n this.width = Math.max(0, width);\n this.element.style.width = this.width + \"px\";\n this.slideWidth = this.width;\n this.viewWidth = this.width;\n this.setScrollWidth(this.pageWidth, true);\n };\n HScrollBar.prototype.setScrollWidth = function (width, force) {\n if (this.pageWidth === width && !force)\n return;\n this.pageWidth = width;\n this.thumbWidth = this.slideWidth * this.viewWidth / this.pageWidth;\n if (this.thumbWidth > this.slideWidth)\n this.thumbWidth = this.slideWidth;\n if (this.thumbWidth < 15)\n this.thumbWidth = 15;\n this.inner.style.width = this.thumbWidth + \"px\";\n if (this.scrollLeft > (this.pageWidth - this.viewWidth)) {\n this.scrollLeft = (this.pageWidth - this.viewWidth);\n if (this.scrollLeft < 0)\n this.scrollLeft = 0;\n this._emit(\"scroll\", { data: this.scrollLeft });\n }\n };\n HScrollBar.prototype.setScrollLeft = function (scrollLeft) {\n this.scrollLeft = scrollLeft;\n if (scrollLeft < 0)\n scrollLeft = 0;\n this.thumbLeft = scrollLeft * (this.slideWidth - this.thumbWidth) / (this.pageWidth - this.viewWidth);\n this.inner.style.left = (this.thumbLeft) + \"px\";\n };\n return HScrollBar;\n}(ScrollBar));\nHScrollBar.prototype.setInnerWidth = HScrollBar.prototype.setScrollWidth;\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n\n});\n\nace.define(\"ace/renderloop\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"], function(require, exports, module){\"use strict\";\nvar event = require(\"./lib/event\");\nvar RenderLoop = /** @class */ (function () {\n function RenderLoop(onRender, win) {\n this.onRender = onRender;\n this.pending = false;\n this.changes = 0;\n this.$recursionLimit = 2;\n this.window = win || window;\n var _self = this;\n this._flush = function (ts) {\n _self.pending = false;\n var changes = _self.changes;\n if (changes) {\n event.blockIdle(100);\n _self.changes = 0;\n _self.onRender(changes);\n }\n if (_self.changes) {\n if (_self.$recursionLimit-- < 0)\n return;\n _self.schedule();\n }\n else {\n _self.$recursionLimit = 2;\n }\n };\n }\n RenderLoop.prototype.schedule = function (change) {\n this.changes = this.changes | change;\n if (this.changes && !this.pending) {\n event.nextFrame(this._flush);\n this.pending = true;\n }\n };\n RenderLoop.prototype.clear = function (change) {\n var changes = this.changes;\n this.changes = 0;\n return changes;\n };\n return RenderLoop;\n}());\nexports.RenderLoop = RenderLoop;\n\n});\n\nace.define(\"ace/layer/font_metrics\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar CHAR_COUNT = 512;\nvar USE_OBSERVER = typeof ResizeObserver == \"function\";\nvar L = 200;\nvar FontMetrics = /** @class */ (function () {\n function FontMetrics(parentEl) {\n this.el = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.el.style, true);\n this.$main = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$main.style);\n this.$measureNode = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$measureNode.style);\n this.el.appendChild(this.$main);\n this.el.appendChild(this.$measureNode);\n parentEl.appendChild(this.el);\n this.$measureNode.textContent = lang.stringRepeat(\"X\", CHAR_COUNT);\n this.$characterSize = { width: 0, height: 0 };\n if (USE_OBSERVER)\n this.$addObserver();\n else\n this.checkForSizeChanges();\n }\n FontMetrics.prototype.$setMeasureNodeStyles = function (style, isRoot) {\n style.width = style.height = \"auto\";\n style.left = style.top = \"0px\";\n style.visibility = \"hidden\";\n style.position = \"absolute\";\n style.whiteSpace = \"pre\";\n if (useragent.isIE < 8) {\n style[\"font-family\"] = \"inherit\";\n }\n else {\n style.font = \"inherit\";\n }\n style.overflow = isRoot ? \"hidden\" : \"visible\";\n };\n FontMetrics.prototype.checkForSizeChanges = function (size) {\n if (size === undefined)\n size = this.$measureSizes();\n if (size && (this.$characterSize.width !== size.width || this.$characterSize.height !== size.height)) {\n this.$measureNode.style.fontWeight = \"bold\";\n var boldSize = this.$measureSizes();\n this.$measureNode.style.fontWeight = \"\";\n this.$characterSize = size;\n this.charSizes = Object.create(null);\n this.allowBoldFonts = boldSize && boldSize.width === size.width && boldSize.height === size.height;\n this._emit(\"changeCharacterSize\", { data: size });\n }\n };\n FontMetrics.prototype.$addObserver = function () {\n var self = this;\n this.$observer = new window.ResizeObserver(function (e) {\n self.checkForSizeChanges();\n });\n this.$observer.observe(this.$measureNode);\n };\n FontMetrics.prototype.$pollSizeChanges = function () {\n if (this.$pollSizeChangesTimer || this.$observer)\n return this.$pollSizeChangesTimer;\n var self = this;\n return this.$pollSizeChangesTimer = event.onIdle(function cb() {\n self.checkForSizeChanges();\n event.onIdle(cb, 500);\n }, 500);\n };\n FontMetrics.prototype.setPolling = function (val) {\n if (val) {\n this.$pollSizeChanges();\n }\n else if (this.$pollSizeChangesTimer) {\n clearInterval(this.$pollSizeChangesTimer);\n this.$pollSizeChangesTimer = 0;\n }\n };\n FontMetrics.prototype.$measureSizes = function (node) {\n var size = {\n height: (node || this.$measureNode).clientHeight,\n width: (node || this.$measureNode).clientWidth / CHAR_COUNT\n };\n if (size.width === 0 || size.height === 0)\n return null;\n return size;\n };\n FontMetrics.prototype.$measureCharWidth = function (ch) {\n this.$main.textContent = lang.stringRepeat(ch, CHAR_COUNT);\n var rect = this.$main.getBoundingClientRect();\n return rect.width / CHAR_COUNT;\n };\n FontMetrics.prototype.getCharacterWidth = function (ch) {\n var w = this.charSizes[ch];\n if (w === undefined) {\n w = this.charSizes[ch] = this.$measureCharWidth(ch) / this.$characterSize.width;\n }\n return w;\n };\n FontMetrics.prototype.destroy = function () {\n clearInterval(this.$pollSizeChangesTimer);\n if (this.$observer)\n this.$observer.disconnect();\n if (this.el && this.el.parentNode)\n this.el.parentNode.removeChild(this.el);\n };\n FontMetrics.prototype.$getZoom = function (element) {\n if (!element || !element.parentElement)\n return 1;\n return (window.getComputedStyle(element).zoom || 1) * this.$getZoom(element.parentElement);\n };\n FontMetrics.prototype.$initTransformMeasureNodes = function () {\n var t = function (t, l) {\n return [\"div\", {\n style: \"position: absolute;top:\" + t + \"px;left:\" + l + \"px;\"\n }];\n };\n this.els = dom.buildDom([t(0, 0), t(L, 0), t(0, L), t(L, L)], this.el);\n };\n FontMetrics.prototype.transformCoordinates = function (clientPos, elPos) {\n if (clientPos) {\n var zoom = this.$getZoom(this.el);\n clientPos = mul(1 / zoom, clientPos);\n }\n function solve(l1, l2, r) {\n var det = l1[1] * l2[0] - l1[0] * l2[1];\n return [\n (-l2[1] * r[0] + l2[0] * r[1]) / det,\n (+l1[1] * r[0] - l1[0] * r[1]) / det\n ];\n }\n function sub(a, b) { return [a[0] - b[0], a[1] - b[1]]; }\n function add(a, b) { return [a[0] + b[0], a[1] + b[1]]; }\n function mul(a, b) { return [a * b[0], a * b[1]]; }\n if (!this.els)\n this.$initTransformMeasureNodes();\n function p(el) {\n var r = el.getBoundingClientRect();\n return [r.left, r.top];\n }\n var a = p(this.els[0]);\n var b = p(this.els[1]);\n var c = p(this.els[2]);\n var d = p(this.els[3]);\n var h = solve(sub(d, b), sub(d, c), sub(add(b, c), add(d, a)));\n var m1 = mul(1 + h[0], sub(b, a));\n var m2 = mul(1 + h[1], sub(c, a));\n if (elPos) {\n var x = elPos;\n var k = h[0] * x[0] / L + h[1] * x[1] / L + 1;\n var ut = add(mul(x[0], m1), mul(x[1], m2));\n return add(mul(1 / k / L, ut), a);\n }\n var u = sub(clientPos, a);\n var f = solve(sub(m1, mul(h[0], u)), sub(m2, mul(h[1], u)), u);\n return mul(L, f);\n };\n return FontMetrics;\n}());\nFontMetrics.prototype.$characterSize = { width: 0, height: 0 };\noop.implement(FontMetrics.prototype, EventEmitter);\nexports.FontMetrics = FontMetrics;\n\n});\n\nace.define(\"ace/css/editor-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){/*\nstyles = []\nfor (var i = 1; i < 16; i++) {\n styles.push(\".ace_br\" + i + \"{\" + (\n [\"top-left\", \"top-right\", \"bottom-right\", \"bottom-left\"]\n ).map(function(x, j) {\n return i & (1< .ace_line, .ace_text-layer > .ace_line_group {\\n contain: style size layout;\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n}\\n\\n.ace_hidpi .ace_text-layer,\\n.ace_hidpi .ace_gutter-layer,\\n.ace_hidpi .ace_content,\\n.ace_hidpi .ace_gutter {\\n contain: strict;\\n}\\n.ace_hidpi .ace_text-layer > .ace_line, \\n.ace_hidpi .ace_text-layer > .ace_line_group {\\n contain: strict;\\n}\\n\\n.ace_cjk {\\n display: inline-block;\\n text-align: center;\\n}\\n\\n.ace_cursor-layer {\\n z-index: 4;\\n}\\n\\n.ace_cursor {\\n z-index: 4;\\n position: absolute;\\n box-sizing: border-box;\\n border-left: 2px solid;\\n /* workaround for smooth cursor repaintng whole screen in chrome */\\n transform: translatez(0);\\n}\\n\\n.ace_multiselect .ace_cursor {\\n border-left-width: 1px;\\n}\\n\\n.ace_slim-cursors .ace_cursor {\\n border-left-width: 1px;\\n}\\n\\n.ace_overwrite-cursors .ace_cursor {\\n border-left-width: 0;\\n border-bottom: 1px solid;\\n}\\n\\n.ace_hidden-cursors .ace_cursor {\\n opacity: 0.2;\\n}\\n\\n.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {\\n opacity: 0;\\n}\\n\\n.ace_smooth-blinking .ace_cursor {\\n transition: opacity 0.18s;\\n}\\n\\n.ace_animate-blinking .ace_cursor {\\n animation-duration: 1000ms;\\n animation-timing-function: step-end;\\n animation-name: blink-ace-animate;\\n animation-iteration-count: infinite;\\n}\\n\\n.ace_animate-blinking.ace_smooth-blinking .ace_cursor {\\n animation-duration: 1000ms;\\n animation-timing-function: ease-in-out;\\n animation-name: blink-ace-animate-smooth;\\n}\\n \\n@keyframes blink-ace-animate {\\n from, to { opacity: 1; }\\n 60% { opacity: 0; }\\n}\\n\\n@keyframes blink-ace-animate-smooth {\\n from, to { opacity: 1; }\\n 45% { opacity: 1; }\\n 60% { opacity: 0; }\\n 85% { opacity: 0; }\\n}\\n\\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\\n position: absolute;\\n z-index: 3;\\n}\\n\\n.ace_marker-layer .ace_selection {\\n position: absolute;\\n z-index: 5;\\n}\\n\\n.ace_marker-layer .ace_bracket {\\n position: absolute;\\n z-index: 6;\\n}\\n\\n.ace_marker-layer .ace_error_bracket {\\n position: absolute;\\n border-bottom: 1px solid #DE5555;\\n border-radius: 0;\\n}\\n\\n.ace_marker-layer .ace_active-line {\\n position: absolute;\\n z-index: 2;\\n}\\n\\n.ace_marker-layer .ace_selected-word {\\n position: absolute;\\n z-index: 4;\\n box-sizing: border-box;\\n}\\n\\n.ace_line .ace_fold {\\n box-sizing: border-box;\\n\\n display: inline-block;\\n height: 11px;\\n margin-top: -2px;\\n vertical-align: middle;\\n\\n background-image:\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=\\\");\\n background-repeat: no-repeat, repeat-x;\\n background-position: center center, top left;\\n color: transparent;\\n\\n border: 1px solid black;\\n border-radius: 2px;\\n\\n cursor: pointer;\\n pointer-events: auto;\\n}\\n\\n.ace_dark .ace_fold {\\n}\\n\\n.ace_fold:hover{\\n background-image:\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC\\\");\\n}\\n\\n.ace_tooltip {\\n background-color: #f5f5f5;\\n border: 1px solid gray;\\n border-radius: 1px;\\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\\n color: black;\\n max-width: 100%;\\n padding: 3px 4px;\\n position: fixed;\\n z-index: 999999;\\n box-sizing: border-box;\\n cursor: default;\\n white-space: pre-wrap;\\n word-wrap: break-word;\\n line-height: normal;\\n font-style: normal;\\n font-weight: normal;\\n letter-spacing: normal;\\n pointer-events: none;\\n overflow: auto;\\n max-width: min(60em, 66vw);\\n}\\n.ace_tooltip pre {\\n white-space: pre-wrap;\\n}\\n\\n.ace_tooltip.ace_dark {\\n background-color: #636363;\\n color: #fff;\\n}\\n\\n.ace_tooltip:focus {\\n outline: 1px solid #5E9ED6;\\n}\\n\\n.ace_icon {\\n display: inline-block;\\n width: 18px;\\n vertical-align: top;\\n}\\n\\n.ace_icon_svg {\\n display: inline-block;\\n width: 12px;\\n vertical-align: top;\\n -webkit-mask-repeat: no-repeat;\\n -webkit-mask-size: 12px;\\n -webkit-mask-position: center;\\n}\\n\\n.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons {\\n padding-right: 13px;\\n}\\n\\n.ace_fold-widget {\\n box-sizing: border-box;\\n\\n margin: 0 -12px 0 1px;\\n display: none;\\n width: 11px;\\n vertical-align: top;\\n\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==\\\");\\n background-repeat: no-repeat;\\n background-position: center;\\n\\n border-radius: 3px;\\n \\n border: 1px solid transparent;\\n cursor: pointer;\\n}\\n\\n.ace_folding-enabled .ace_fold-widget {\\n display: inline-block; \\n}\\n\\n.ace_fold-widget.ace_end {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==\\\");\\n}\\n\\n.ace_fold-widget.ace_closed {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==\\\");\\n}\\n\\n.ace_fold-widget:hover {\\n border: 1px solid rgba(0, 0, 0, 0.3);\\n background-color: rgba(255, 255, 255, 0.2);\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\\n}\\n\\n.ace_fold-widget:active {\\n border: 1px solid rgba(0, 0, 0, 0.4);\\n background-color: rgba(0, 0, 0, 0.05);\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\\n}\\n/**\\n * Dark version for fold widgets\\n */\\n.ace_dark .ace_fold-widget {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\\\");\\n}\\n.ace_dark .ace_fold-widget.ace_end {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\\\");\\n}\\n.ace_dark .ace_fold-widget.ace_closed {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\\\");\\n}\\n.ace_dark .ace_fold-widget:hover {\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.ace_dark .ace_fold-widget:active {\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\n}\\n\\n.ace_inline_button {\\n border: 1px solid lightgray;\\n display: inline-block;\\n margin: -1px 8px;\\n padding: 0 5px;\\n pointer-events: auto;\\n cursor: pointer;\\n}\\n.ace_inline_button:hover {\\n border-color: gray;\\n background: rgba(200,200,200,0.2);\\n display: inline-block;\\n pointer-events: auto;\\n}\\n\\n.ace_fold-widget.ace_invalid {\\n background-color: #FFB4B4;\\n border-color: #DE5555;\\n}\\n\\n.ace_fade-fold-widgets .ace_fold-widget {\\n transition: opacity 0.4s ease 0.05s;\\n opacity: 0;\\n}\\n\\n.ace_fade-fold-widgets:hover .ace_fold-widget {\\n transition: opacity 0.05s ease 0.05s;\\n opacity:1;\\n}\\n\\n.ace_underline {\\n text-decoration: underline;\\n}\\n\\n.ace_bold {\\n font-weight: bold;\\n}\\n\\n.ace_nobold .ace_bold {\\n font-weight: normal;\\n}\\n\\n.ace_italic {\\n font-style: italic;\\n}\\n\\n\\n.ace_error-marker {\\n background-color: rgba(255, 0, 0,0.2);\\n position: absolute;\\n z-index: 9;\\n}\\n\\n.ace_highlight-marker {\\n background-color: rgba(255, 255, 0,0.2);\\n position: absolute;\\n z-index: 8;\\n}\\n\\n.ace_mobile-menu {\\n position: absolute;\\n line-height: 1.5;\\n border-radius: 4px;\\n -ms-user-select: none;\\n -moz-user-select: none;\\n -webkit-user-select: none;\\n user-select: none;\\n background: white;\\n box-shadow: 1px 3px 2px grey;\\n border: 1px solid #dcdcdc;\\n color: black;\\n}\\n.ace_dark > .ace_mobile-menu {\\n background: #333;\\n color: #ccc;\\n box-shadow: 1px 3px 2px grey;\\n border: 1px solid #444;\\n\\n}\\n.ace_mobile-button {\\n padding: 2px;\\n cursor: pointer;\\n overflow: hidden;\\n}\\n.ace_mobile-button:hover {\\n background-color: #eee;\\n opacity:1;\\n}\\n.ace_mobile-button:active {\\n background-color: #ddd;\\n}\\n\\n.ace_placeholder {\\n font-family: arial;\\n transform: scale(0.9);\\n transform-origin: left;\\n white-space: pre;\\n opacity: 0.7;\\n margin: 0 10px;\\n}\\n\\n.ace_ghost_text {\\n opacity: 0.5;\\n font-style: italic;\\n white-space: pre;\\n}\\n\\n.ace_screenreader-only {\\n position:absolute;\\n left:-10000px;\\n top:auto;\\n width:1px;\\n height:1px;\\n overflow:hidden;\\n}\";\n\n});\n\nace.define(\"ace/layer/decorators\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar oop = require(\"../lib/oop\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar Decorator = /** @class */ (function () {\n function Decorator(parent, renderer) {\n this.canvas = dom.createElement(\"canvas\");\n this.renderer = renderer;\n this.pixelRatio = 1;\n this.maxHeight = renderer.layerConfig.maxHeight;\n this.lineHeight = renderer.layerConfig.lineHeight;\n this.canvasHeight = parent.parent.scrollHeight;\n this.heightRatio = this.canvasHeight / this.maxHeight;\n this.canvasWidth = parent.width;\n this.minDecorationHeight = (2 * this.pixelRatio) | 0;\n this.halfMinDecorationHeight = (this.minDecorationHeight / 2) | 0;\n this.canvas.width = this.canvasWidth;\n this.canvas.height = this.canvasHeight;\n this.canvas.style.top = 0 + \"px\";\n this.canvas.style.right = 0 + \"px\";\n this.canvas.style.zIndex = 7 + \"px\";\n this.canvas.style.position = \"absolute\";\n this.colors = {};\n this.colors.dark = {\n \"error\": \"rgba(255, 18, 18, 1)\",\n \"warning\": \"rgba(18, 136, 18, 1)\",\n \"info\": \"rgba(18, 18, 136, 1)\"\n };\n this.colors.light = {\n \"error\": \"rgb(255,51,51)\",\n \"warning\": \"rgb(32,133,72)\",\n \"info\": \"rgb(35,68,138)\"\n };\n parent.element.appendChild(this.canvas);\n }\n Decorator.prototype.$updateDecorators = function (config) {\n var colors = (this.renderer.theme.isDark === true) ? this.colors.dark : this.colors.light;\n if (config) {\n this.maxHeight = config.maxHeight;\n this.lineHeight = config.lineHeight;\n this.canvasHeight = config.height;\n var allLineHeight = (config.lastRow + 1) * this.lineHeight;\n if (allLineHeight < this.canvasHeight) {\n this.heightRatio = 1;\n }\n else {\n this.heightRatio = this.canvasHeight / this.maxHeight;\n }\n }\n var ctx = this.canvas.getContext(\"2d\");\n function compare(a, b) {\n if (a.priority < b.priority)\n return -1;\n if (a.priority > b.priority)\n return 1;\n return 0;\n }\n var annotations = this.renderer.session.$annotations;\n ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n if (annotations) {\n var priorities = {\n \"info\": 1,\n \"warning\": 2,\n \"error\": 3\n };\n annotations.forEach(function (item) {\n item.priority = priorities[item.type] || null;\n });\n annotations = annotations.sort(compare);\n var foldData = this.renderer.session.$foldData;\n for (var i = 0; i < annotations.length; i++) {\n var row = annotations[i].row;\n var compensateFold = this.compensateFoldRows(row, foldData);\n var currentY = Math.round((row - compensateFold) * this.lineHeight * this.heightRatio);\n var y1 = Math.round(((row - compensateFold) * this.lineHeight * this.heightRatio));\n var y2 = Math.round((((row - compensateFold) * this.lineHeight + this.lineHeight) * this.heightRatio));\n var height = y2 - y1;\n if (height < this.minDecorationHeight) {\n var yCenter = ((y1 + y2) / 2) | 0;\n if (yCenter < this.halfMinDecorationHeight) {\n yCenter = this.halfMinDecorationHeight;\n }\n else if (yCenter + this.halfMinDecorationHeight > this.canvasHeight) {\n yCenter = this.canvasHeight - this.halfMinDecorationHeight;\n }\n y1 = Math.round(yCenter - this.halfMinDecorationHeight);\n y2 = Math.round(yCenter + this.halfMinDecorationHeight);\n }\n ctx.fillStyle = colors[annotations[i].type] || null;\n ctx.fillRect(0, currentY, this.canvasWidth, y2 - y1);\n }\n }\n var cursor = this.renderer.session.selection.getCursor();\n if (cursor) {\n var compensateFold = this.compensateFoldRows(cursor.row, foldData);\n var currentY = Math.round((cursor.row - compensateFold) * this.lineHeight * this.heightRatio);\n ctx.fillStyle = \"rgba(0, 0, 0, 0.5)\";\n ctx.fillRect(0, currentY, this.canvasWidth, 2);\n }\n };\n Decorator.prototype.compensateFoldRows = function (row, foldData) {\n var compensateFold = 0;\n if (foldData && foldData.length > 0) {\n for (var j = 0; j < foldData.length; j++) {\n if (row > foldData[j].start.row && row < foldData[j].end.row) {\n compensateFold += row - foldData[j].start.row;\n }\n else if (row >= foldData[j].end.row) {\n compensateFold += foldData[j].end.row - foldData[j].start.row;\n }\n }\n }\n return compensateFold;\n };\n return Decorator;\n}());\noop.implement(Decorator.prototype, EventEmitter);\nexports.Decorator = Decorator;\n\n});\n\nace.define(\"ace/virtual_renderer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/config\",\"ace/layer/gutter\",\"ace/layer/marker\",\"ace/layer/text\",\"ace/layer/cursor\",\"ace/scrollbar\",\"ace/scrollbar\",\"ace/scrollbar_custom\",\"ace/scrollbar_custom\",\"ace/renderloop\",\"ace/layer/font_metrics\",\"ace/lib/event_emitter\",\"ace/css/editor-css\",\"ace/layer/decorators\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar lang = require(\"./lib/lang\");\nvar config = require(\"./config\");\nvar GutterLayer = require(\"./layer/gutter\").Gutter;\nvar MarkerLayer = require(\"./layer/marker\").Marker;\nvar TextLayer = require(\"./layer/text\").Text;\nvar CursorLayer = require(\"./layer/cursor\").Cursor;\nvar HScrollBar = require(\"./scrollbar\").HScrollBar;\nvar VScrollBar = require(\"./scrollbar\").VScrollBar;\nvar HScrollBarCustom = require(\"./scrollbar_custom\").HScrollBar;\nvar VScrollBarCustom = require(\"./scrollbar_custom\").VScrollBar;\nvar RenderLoop = require(\"./renderloop\").RenderLoop;\nvar FontMetrics = require(\"./layer/font_metrics\").FontMetrics;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar editorCss = require(\"./css/editor-css\");\nvar Decorator = require(\"./layer/decorators\").Decorator;\nvar useragent = require(\"./lib/useragent\");\ndom.importCssString(editorCss, \"ace_editor.css\", false);\nvar VirtualRenderer = /** @class */ (function () {\n function VirtualRenderer(container, theme) {\n var _self = this;\n this.container = container || dom.createElement(\"div\");\n dom.addCssClass(this.container, \"ace_editor\");\n if (dom.HI_DPI)\n dom.addCssClass(this.container, \"ace_hidpi\");\n this.setTheme(theme);\n if (config.get(\"useStrictCSP\") == null)\n config.set(\"useStrictCSP\", false);\n this.$gutter = dom.createElement(\"div\");\n this.$gutter.className = \"ace_gutter\";\n this.container.appendChild(this.$gutter);\n this.$gutter.setAttribute(\"aria-hidden\", true);\n this.scroller = dom.createElement(\"div\");\n this.scroller.className = \"ace_scroller\";\n this.container.appendChild(this.scroller);\n this.content = dom.createElement(\"div\");\n this.content.className = \"ace_content\";\n this.scroller.appendChild(this.content);\n this.$gutterLayer = new GutterLayer(this.$gutter);\n this.$gutterLayer.on(\"changeGutterWidth\", this.onGutterResize.bind(this));\n this.$markerBack = new MarkerLayer(this.content);\n var textLayer = this.$textLayer = new TextLayer(this.content);\n this.canvas = textLayer.element;\n this.$markerFront = new MarkerLayer(this.content);\n this.$cursorLayer = new CursorLayer(this.content);\n this.$horizScroll = false;\n this.$vScroll = false;\n this.scrollBar =\n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.on(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.on(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n this.scrollTop = 0;\n this.scrollLeft = 0;\n this.cursorPos = {\n row: 0,\n column: 0\n };\n this.$fontMetrics = new FontMetrics(this.container);\n this.$textLayer.$setFontMetrics(this.$fontMetrics);\n this.$textLayer.on(\"changeCharacterSize\", function (e) {\n _self.updateCharacterSize();\n _self.onResize(true, _self.gutterWidth, _self.$size.width, _self.$size.height);\n _self._signal(\"changeCharacterSize\", e);\n });\n this.$size = {\n width: 0,\n height: 0,\n scrollerHeight: 0,\n scrollerWidth: 0,\n $dirty: true\n };\n this.layerConfig = {\n width: 1,\n padding: 0,\n firstRow: 0,\n firstRowScreen: 0,\n lastRow: 0,\n lineHeight: 0,\n characterWidth: 0,\n minHeight: 1,\n maxHeight: 1,\n offset: 0,\n height: 1,\n gutterOffset: 1\n };\n this.scrollMargin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n this.margin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n this.$keepTextAreaAtCursor = !useragent.isIOS;\n this.$loop = new RenderLoop(this.$renderChanges.bind(this), this.container.ownerDocument.defaultView);\n this.$loop.schedule(this.CHANGE_FULL);\n this.updateCharacterSize();\n this.setPadding(4);\n this.$addResizeObserver();\n config.resetOptions(this);\n config._signal(\"renderer\", this);\n }\n VirtualRenderer.prototype.updateCharacterSize = function () {\n if (this.$textLayer.allowBoldFonts != this.$allowBoldFonts) {\n this.$allowBoldFonts = this.$textLayer.allowBoldFonts;\n this.setStyle(\"ace_nobold\", !this.$allowBoldFonts);\n }\n this.layerConfig.characterWidth =\n this.characterWidth = this.$textLayer.getCharacterWidth();\n this.layerConfig.lineHeight =\n this.lineHeight = this.$textLayer.getLineHeight();\n this.$updatePrintMargin();\n dom.setStyle(this.scroller.style, \"line-height\", this.lineHeight + \"px\");\n };\n VirtualRenderer.prototype.setSession = function (session) {\n if (this.session)\n this.session.doc.off(\"changeNewLineMode\", this.onChangeNewLineMode);\n this.session = session;\n if (session && this.scrollMargin.top && session.getScrollTop() <= 0)\n session.setScrollTop(-this.scrollMargin.top);\n this.$cursorLayer.setSession(session);\n this.$markerBack.setSession(session);\n this.$markerFront.setSession(session);\n this.$gutterLayer.setSession(session);\n this.$textLayer.setSession(session);\n if (!session)\n return;\n this.$loop.schedule(this.CHANGE_FULL);\n this.session.$setFontMetrics(this.$fontMetrics);\n this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null;\n this.onChangeNewLineMode = this.onChangeNewLineMode.bind(this);\n this.onChangeNewLineMode();\n this.session.doc.on(\"changeNewLineMode\", this.onChangeNewLineMode);\n };\n VirtualRenderer.prototype.updateLines = function (firstRow, lastRow, force) {\n if (lastRow === undefined)\n lastRow = Infinity;\n if (!this.$changedLines) {\n this.$changedLines = {\n firstRow: firstRow,\n lastRow: lastRow\n };\n }\n else {\n if (this.$changedLines.firstRow > firstRow)\n this.$changedLines.firstRow = firstRow;\n if (this.$changedLines.lastRow < lastRow)\n this.$changedLines.lastRow = lastRow;\n }\n if (this.$changedLines.lastRow < this.layerConfig.firstRow) {\n if (force)\n this.$changedLines.lastRow = this.layerConfig.lastRow;\n else\n return;\n }\n if (this.$changedLines.firstRow > this.layerConfig.lastRow)\n return;\n this.$loop.schedule(this.CHANGE_LINES);\n };\n VirtualRenderer.prototype.onChangeNewLineMode = function () {\n this.$loop.schedule(this.CHANGE_TEXT);\n this.$textLayer.$updateEolChar();\n this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR);\n };\n VirtualRenderer.prototype.onChangeTabSize = function () {\n this.$loop.schedule(this.CHANGE_TEXT | this.CHANGE_MARKER);\n this.$textLayer.onChangeTabSize();\n };\n VirtualRenderer.prototype.updateText = function () {\n this.$loop.schedule(this.CHANGE_TEXT);\n };\n VirtualRenderer.prototype.updateFull = function (force) {\n if (force)\n this.$renderChanges(this.CHANGE_FULL, true);\n else\n this.$loop.schedule(this.CHANGE_FULL);\n };\n VirtualRenderer.prototype.updateFontSize = function () {\n this.$textLayer.checkForSizeChanges();\n };\n VirtualRenderer.prototype.$updateSizeAsync = function () {\n if (this.$loop.pending)\n this.$size.$dirty = true;\n else\n this.onResize();\n };\n VirtualRenderer.prototype.onResize = function (force, gutterWidth, width, height) {\n if (this.resizing > 2)\n return;\n else if (this.resizing > 0)\n this.resizing++;\n else\n this.resizing = force ? 1 : 0;\n var el = this.container;\n if (!height)\n height = el.clientHeight || el.scrollHeight;\n if (!width)\n width = el.clientWidth || el.scrollWidth;\n var changes = this.$updateCachedSize(force, gutterWidth, width, height);\n if (this.$resizeTimer)\n this.$resizeTimer.cancel();\n if (!this.$size.scrollerHeight || (!width && !height))\n return this.resizing = 0;\n if (force)\n this.$gutterLayer.$padding = null;\n if (force)\n this.$renderChanges(changes | this.$changes, true);\n else\n this.$loop.schedule(changes | this.$changes);\n if (this.resizing)\n this.resizing = 0;\n this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null;\n if (this.$customScrollbar) {\n this.$updateCustomScrollbar(true);\n }\n };\n VirtualRenderer.prototype.$updateCachedSize = function (force, gutterWidth, width, height) {\n height -= (this.$extraHeight || 0);\n var changes = 0;\n var size = this.$size;\n var oldSize = {\n width: size.width,\n height: size.height,\n scrollerHeight: size.scrollerHeight,\n scrollerWidth: size.scrollerWidth\n };\n if (height && (force || size.height != height)) {\n size.height = height;\n changes |= this.CHANGE_SIZE;\n size.scrollerHeight = size.height;\n if (this.$horizScroll)\n size.scrollerHeight -= this.scrollBarH.getHeight();\n this.scrollBarV.setHeight(size.scrollerHeight);\n this.scrollBarV.element.style.bottom = this.scrollBarH.getHeight() + \"px\";\n changes = changes | this.CHANGE_SCROLL;\n }\n if (width && (force || size.width != width)) {\n changes |= this.CHANGE_SIZE;\n size.width = width;\n if (gutterWidth == null)\n gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n this.gutterWidth = gutterWidth;\n dom.setStyle(this.scrollBarH.element.style, \"left\", gutterWidth + \"px\");\n dom.setStyle(this.scroller.style, \"left\", gutterWidth + this.margin.left + \"px\");\n size.scrollerWidth = Math.max(0, width - gutterWidth - this.scrollBarV.getWidth() - this.margin.h);\n dom.setStyle(this.$gutter.style, \"left\", this.margin.left + \"px\");\n var right = this.scrollBarV.getWidth() + \"px\";\n dom.setStyle(this.scrollBarH.element.style, \"right\", right);\n dom.setStyle(this.scroller.style, \"right\", right);\n dom.setStyle(this.scroller.style, \"bottom\", this.scrollBarH.getHeight());\n this.scrollBarH.setWidth(size.scrollerWidth);\n if (this.session && this.session.getUseWrapMode() && this.adjustWrapLimit() || force) {\n changes |= this.CHANGE_FULL;\n }\n }\n size.$dirty = !width || !height;\n if (changes)\n this._signal(\"resize\", oldSize);\n return changes;\n };\n VirtualRenderer.prototype.onGutterResize = function (width) {\n var gutterWidth = this.$showGutter ? width : 0;\n if (gutterWidth != this.gutterWidth)\n this.$changes |= this.$updateCachedSize(true, gutterWidth, this.$size.width, this.$size.height);\n if (this.session.getUseWrapMode() && this.adjustWrapLimit()) {\n this.$loop.schedule(this.CHANGE_FULL);\n }\n else if (this.$size.$dirty) {\n this.$loop.schedule(this.CHANGE_FULL);\n }\n else {\n this.$computeLayerConfig();\n }\n };\n VirtualRenderer.prototype.adjustWrapLimit = function () {\n var availableWidth = this.$size.scrollerWidth - this.$padding * 2;\n var limit = Math.floor(availableWidth / this.characterWidth);\n return this.session.adjustWrapLimit(limit, this.$showPrintMargin && this.$printMarginColumn);\n };\n VirtualRenderer.prototype.setAnimatedScroll = function (shouldAnimate) {\n this.setOption(\"animatedScroll\", shouldAnimate);\n };\n VirtualRenderer.prototype.getAnimatedScroll = function () {\n return this.$animatedScroll;\n };\n VirtualRenderer.prototype.setShowInvisibles = function (showInvisibles) {\n this.setOption(\"showInvisibles\", showInvisibles);\n this.session.$bidiHandler.setShowInvisibles(showInvisibles);\n };\n VirtualRenderer.prototype.getShowInvisibles = function () {\n return this.getOption(\"showInvisibles\");\n };\n VirtualRenderer.prototype.getDisplayIndentGuides = function () {\n return this.getOption(\"displayIndentGuides\");\n };\n VirtualRenderer.prototype.setDisplayIndentGuides = function (display) {\n this.setOption(\"displayIndentGuides\", display);\n };\n VirtualRenderer.prototype.getHighlightIndentGuides = function () {\n return this.getOption(\"highlightIndentGuides\");\n };\n VirtualRenderer.prototype.setHighlightIndentGuides = function (highlight) {\n this.setOption(\"highlightIndentGuides\", highlight);\n };\n VirtualRenderer.prototype.setShowPrintMargin = function (showPrintMargin) {\n this.setOption(\"showPrintMargin\", showPrintMargin);\n };\n VirtualRenderer.prototype.getShowPrintMargin = function () {\n return this.getOption(\"showPrintMargin\");\n };\n VirtualRenderer.prototype.setPrintMarginColumn = function (showPrintMargin) {\n this.setOption(\"printMarginColumn\", showPrintMargin);\n };\n VirtualRenderer.prototype.getPrintMarginColumn = function () {\n return this.getOption(\"printMarginColumn\");\n };\n VirtualRenderer.prototype.getShowGutter = function () {\n return this.getOption(\"showGutter\");\n };\n VirtualRenderer.prototype.setShowGutter = function (show) {\n return this.setOption(\"showGutter\", show);\n };\n VirtualRenderer.prototype.getFadeFoldWidgets = function () {\n return this.getOption(\"fadeFoldWidgets\");\n };\n VirtualRenderer.prototype.setFadeFoldWidgets = function (show) {\n this.setOption(\"fadeFoldWidgets\", show);\n };\n VirtualRenderer.prototype.setHighlightGutterLine = function (shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n VirtualRenderer.prototype.getHighlightGutterLine = function () {\n return this.getOption(\"highlightGutterLine\");\n };\n VirtualRenderer.prototype.$updatePrintMargin = function () {\n if (!this.$showPrintMargin && !this.$printMarginEl)\n return;\n if (!this.$printMarginEl) {\n var containerEl = dom.createElement(\"div\");\n containerEl.className = \"ace_layer ace_print-margin-layer\";\n this.$printMarginEl = dom.createElement(\"div\");\n this.$printMarginEl.className = \"ace_print-margin\";\n containerEl.appendChild(this.$printMarginEl);\n this.content.insertBefore(containerEl, this.content.firstChild);\n }\n var style = this.$printMarginEl.style;\n style.left = Math.round(this.characterWidth * this.$printMarginColumn + this.$padding) + \"px\";\n style.visibility = this.$showPrintMargin ? \"visible\" : \"hidden\";\n if (this.session && this.session.$wrap == -1)\n this.adjustWrapLimit();\n };\n VirtualRenderer.prototype.getContainerElement = function () {\n return this.container;\n };\n VirtualRenderer.prototype.getMouseEventTarget = function () {\n return this.scroller;\n };\n VirtualRenderer.prototype.getTextAreaContainer = function () {\n return this.container;\n };\n VirtualRenderer.prototype.$moveTextAreaToCursor = function () {\n if (this.$isMousePressed)\n return;\n var style = this.textarea.style;\n var composition = this.$composition;\n if (!this.$keepTextAreaAtCursor && !composition) {\n dom.translate(this.textarea, -100, 0);\n return;\n }\n var pixelPos = this.$cursorLayer.$pixelPos;\n if (!pixelPos)\n return;\n if (composition && composition.markerRange)\n pixelPos = this.$cursorLayer.getPixelPosition(composition.markerRange.start, true);\n var config = this.layerConfig;\n var posTop = pixelPos.top;\n var posLeft = pixelPos.left;\n posTop -= config.offset;\n var h = composition && composition.useTextareaForIME || useragent.isMobile ? this.lineHeight : 1;\n if (posTop < 0 || posTop > config.height - h) {\n dom.translate(this.textarea, 0, 0);\n return;\n }\n var w = 1;\n var maxTop = this.$size.height - h;\n if (!composition) {\n posTop += this.lineHeight;\n }\n else {\n if (composition.useTextareaForIME) {\n var val = this.textarea.value;\n w = this.characterWidth * (this.session.$getStringScreenWidth(val)[0]);\n }\n else {\n posTop += this.lineHeight + 2;\n }\n }\n posLeft -= this.scrollLeft;\n if (posLeft > this.$size.scrollerWidth - w)\n posLeft = this.$size.scrollerWidth - w;\n posLeft += this.gutterWidth + this.margin.left;\n dom.setStyle(style, \"height\", h + \"px\");\n dom.setStyle(style, \"width\", w + \"px\");\n dom.translate(this.textarea, Math.min(posLeft, this.$size.scrollerWidth - w), Math.min(posTop, maxTop));\n };\n VirtualRenderer.prototype.getFirstVisibleRow = function () {\n return this.layerConfig.firstRow;\n };\n VirtualRenderer.prototype.getFirstFullyVisibleRow = function () {\n return this.layerConfig.firstRow + (this.layerConfig.offset === 0 ? 0 : 1);\n };\n VirtualRenderer.prototype.getLastFullyVisibleRow = function () {\n var config = this.layerConfig;\n var lastRow = config.lastRow;\n var top = this.session.documentToScreenRow(lastRow, 0) * config.lineHeight;\n if (top - this.session.getScrollTop() > config.height - config.lineHeight)\n return lastRow - 1;\n return lastRow;\n };\n VirtualRenderer.prototype.getLastVisibleRow = function () {\n return this.layerConfig.lastRow;\n };\n VirtualRenderer.prototype.setPadding = function (padding) {\n this.$padding = padding;\n this.$textLayer.setPadding(padding);\n this.$cursorLayer.setPadding(padding);\n this.$markerFront.setPadding(padding);\n this.$markerBack.setPadding(padding);\n this.$loop.schedule(this.CHANGE_FULL);\n this.$updatePrintMargin();\n };\n VirtualRenderer.prototype.setScrollMargin = function (top, bottom, left, right) {\n var sm = this.scrollMargin;\n sm.top = top | 0;\n sm.bottom = bottom | 0;\n sm.right = right | 0;\n sm.left = left | 0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n if (sm.top && this.scrollTop <= 0 && this.session)\n this.session.setScrollTop(-sm.top);\n this.updateFull();\n };\n VirtualRenderer.prototype.setMargin = function (top, bottom, left, right) {\n var sm = this.margin;\n sm.top = top | 0;\n sm.bottom = bottom | 0;\n sm.right = right | 0;\n sm.left = left | 0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n this.$updateCachedSize(true, this.gutterWidth, this.$size.width, this.$size.height);\n this.updateFull();\n };\n VirtualRenderer.prototype.getHScrollBarAlwaysVisible = function () {\n return this.$hScrollBarAlwaysVisible;\n };\n VirtualRenderer.prototype.setHScrollBarAlwaysVisible = function (alwaysVisible) {\n this.setOption(\"hScrollBarAlwaysVisible\", alwaysVisible);\n };\n VirtualRenderer.prototype.getVScrollBarAlwaysVisible = function () {\n return this.$vScrollBarAlwaysVisible;\n };\n VirtualRenderer.prototype.setVScrollBarAlwaysVisible = function (alwaysVisible) {\n this.setOption(\"vScrollBarAlwaysVisible\", alwaysVisible);\n };\n VirtualRenderer.prototype.$updateScrollBarV = function () {\n var scrollHeight = this.layerConfig.maxHeight;\n var scrollerHeight = this.$size.scrollerHeight;\n if (!this.$maxLines && this.$scrollPastEnd) {\n scrollHeight -= (scrollerHeight - this.lineHeight) * this.$scrollPastEnd;\n if (this.scrollTop > scrollHeight - scrollerHeight) {\n scrollHeight = this.scrollTop + scrollerHeight;\n this.scrollBarV.scrollTop = null;\n }\n }\n this.scrollBarV.setScrollHeight(scrollHeight + this.scrollMargin.v);\n this.scrollBarV.setScrollTop(this.scrollTop + this.scrollMargin.top);\n };\n VirtualRenderer.prototype.$updateScrollBarH = function () {\n this.scrollBarH.setScrollWidth(this.layerConfig.width + 2 * this.$padding + this.scrollMargin.h);\n this.scrollBarH.setScrollLeft(this.scrollLeft + this.scrollMargin.left);\n };\n VirtualRenderer.prototype.freeze = function () {\n this.$frozen = true;\n };\n VirtualRenderer.prototype.unfreeze = function () {\n this.$frozen = false;\n };\n VirtualRenderer.prototype.$renderChanges = function (changes, force) {\n if (this.$changes) {\n changes |= this.$changes;\n this.$changes = 0;\n }\n if ((!this.session || !this.container.offsetWidth || this.$frozen) || (!changes && !force)) {\n this.$changes |= changes;\n return;\n }\n if (this.$size.$dirty) {\n this.$changes |= changes;\n return this.onResize(true);\n }\n if (!this.lineHeight) {\n this.$textLayer.checkForSizeChanges();\n }\n this._signal(\"beforeRender\", changes);\n if (this.session && this.session.$bidiHandler)\n this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);\n var config = this.layerConfig;\n if (changes & this.CHANGE_FULL ||\n changes & this.CHANGE_SIZE ||\n changes & this.CHANGE_TEXT ||\n changes & this.CHANGE_LINES ||\n changes & this.CHANGE_SCROLL ||\n changes & this.CHANGE_H_SCROLL) {\n changes |= this.$computeLayerConfig() | this.$loop.clear();\n if (config.firstRow != this.layerConfig.firstRow && config.firstRowScreen == this.layerConfig.firstRowScreen) {\n var st = this.scrollTop + (config.firstRow - Math.max(this.layerConfig.firstRow, 0)) * this.lineHeight;\n if (st > 0) {\n this.scrollTop = st;\n changes = changes | this.CHANGE_SCROLL;\n changes |= this.$computeLayerConfig() | this.$loop.clear();\n }\n }\n config = this.layerConfig;\n this.$updateScrollBarV();\n if (changes & this.CHANGE_H_SCROLL)\n this.$updateScrollBarH();\n dom.translate(this.content, -this.scrollLeft, -config.offset);\n var width = config.width + 2 * this.$padding + \"px\";\n var height = config.minHeight + \"px\";\n dom.setStyle(this.content.style, \"width\", width);\n dom.setStyle(this.content.style, \"height\", height);\n }\n if (changes & this.CHANGE_H_SCROLL) {\n dom.translate(this.content, -this.scrollLeft, -config.offset);\n this.scroller.className = this.scrollLeft <= 0 ? \"ace_scroller \" : \"ace_scroller ace_scroll-left \";\n if (this.enableKeyboardAccessibility)\n this.scroller.className += this.keyboardFocusClassName;\n }\n if (changes & this.CHANGE_FULL) {\n this.$changedLines = null;\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\", changes);\n return;\n }\n if (changes & this.CHANGE_SCROLL) {\n this.$changedLines = null;\n if (changes & this.CHANGE_TEXT || changes & this.CHANGE_LINES)\n this.$textLayer.update(config);\n else\n this.$textLayer.scrollLines(config);\n if (this.$showGutter) {\n if (changes & this.CHANGE_GUTTER || changes & this.CHANGE_LINES)\n this.$gutterLayer.update(config);\n else\n this.$gutterLayer.scrollLines(config);\n }\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\", changes);\n return;\n }\n if (changes & this.CHANGE_TEXT) {\n this.$changedLines = null;\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_LINES) {\n if (this.$updateLines() || (changes & this.CHANGE_GUTTER) && this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_TEXT || changes & this.CHANGE_GUTTER) {\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_CURSOR) {\n if (this.$highlightGutterLine)\n this.$gutterLayer.updateLineHighlight(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n if (changes & this.CHANGE_CURSOR) {\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n }\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_FRONT)) {\n this.$markerFront.update(config);\n }\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_BACK)) {\n this.$markerBack.update(config);\n }\n this._signal(\"afterRender\", changes);\n };\n VirtualRenderer.prototype.$autosize = function () {\n var height = this.session.getScreenLength() * this.lineHeight;\n var maxHeight = this.$maxLines * this.lineHeight;\n var desiredHeight = Math.min(maxHeight, Math.max((this.$minLines || 1) * this.lineHeight, height)) + this.scrollMargin.v + (this.$extraHeight || 0);\n if (this.$horizScroll)\n desiredHeight += this.scrollBarH.getHeight();\n if (this.$maxPixelHeight && desiredHeight > this.$maxPixelHeight)\n desiredHeight = this.$maxPixelHeight;\n var hideScrollbars = desiredHeight <= 2 * this.lineHeight;\n var vScroll = !hideScrollbars && height > maxHeight;\n if (desiredHeight != this.desiredHeight ||\n this.$size.height != this.desiredHeight || vScroll != this.$vScroll) {\n if (vScroll != this.$vScroll) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n var w = this.container.clientWidth;\n this.container.style.height = desiredHeight + \"px\";\n this.$updateCachedSize(true, this.$gutterWidth, w, desiredHeight);\n this.desiredHeight = desiredHeight;\n this._signal(\"autosize\");\n }\n };\n VirtualRenderer.prototype.$computeLayerConfig = function () {\n var session = this.session;\n var size = this.$size;\n var hideScrollbars = size.height <= 2 * this.lineHeight;\n var screenLines = this.session.getScreenLength();\n var maxHeight = screenLines * this.lineHeight;\n var longestLine = this.$getLongestLine();\n var horizScroll = !hideScrollbars && (this.$hScrollBarAlwaysVisible ||\n size.scrollerWidth - longestLine - 2 * this.$padding < 0);\n var hScrollChanged = this.$horizScroll !== horizScroll;\n if (hScrollChanged) {\n this.$horizScroll = horizScroll;\n this.scrollBarH.setVisible(horizScroll);\n }\n var vScrollBefore = this.$vScroll; // autosize can change vscroll value in which case we need to update longestLine\n if (this.$maxLines && this.lineHeight > 1)\n this.$autosize();\n var minHeight = size.scrollerHeight + this.lineHeight;\n var scrollPastEnd = !this.$maxLines && this.$scrollPastEnd\n ? (size.scrollerHeight - this.lineHeight) * this.$scrollPastEnd\n : 0;\n maxHeight += scrollPastEnd;\n var sm = this.scrollMargin;\n this.session.setScrollTop(Math.max(-sm.top, Math.min(this.scrollTop, maxHeight - size.scrollerHeight + sm.bottom)));\n this.session.setScrollLeft(Math.max(-sm.left, Math.min(this.scrollLeft, longestLine + 2 * this.$padding - size.scrollerWidth + sm.right)));\n var vScroll = !hideScrollbars && (this.$vScrollBarAlwaysVisible ||\n size.scrollerHeight - maxHeight + scrollPastEnd < 0 || this.scrollTop > sm.top);\n var vScrollChanged = vScrollBefore !== vScroll;\n if (vScrollChanged) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n var offset = this.scrollTop % this.lineHeight;\n var lineCount = Math.ceil(minHeight / this.lineHeight) - 1;\n var firstRow = Math.max(0, Math.round((this.scrollTop - offset) / this.lineHeight));\n var lastRow = firstRow + lineCount;\n var firstRowScreen, firstRowHeight;\n var lineHeight = this.lineHeight;\n firstRow = session.screenToDocumentRow(firstRow, 0);\n var foldLine = session.getFoldLine(firstRow);\n if (foldLine) {\n firstRow = foldLine.start.row;\n }\n firstRowScreen = session.documentToScreenRow(firstRow, 0);\n firstRowHeight = session.getRowLength(firstRow) * lineHeight;\n lastRow = Math.min(session.screenToDocumentRow(lastRow, 0), session.getLength() - 1);\n minHeight = size.scrollerHeight + session.getRowLength(lastRow) * lineHeight +\n firstRowHeight;\n offset = this.scrollTop - firstRowScreen * lineHeight;\n var changes = 0;\n if (this.layerConfig.width != longestLine || hScrollChanged)\n changes = this.CHANGE_H_SCROLL;\n if (hScrollChanged || vScrollChanged) {\n changes |= this.$updateCachedSize(true, this.gutterWidth, size.width, size.height);\n this._signal(\"scrollbarVisibilityChanged\");\n if (vScrollChanged)\n longestLine = this.$getLongestLine();\n }\n this.layerConfig = {\n width: longestLine,\n padding: this.$padding,\n firstRow: firstRow,\n firstRowScreen: firstRowScreen,\n lastRow: lastRow,\n lineHeight: lineHeight,\n characterWidth: this.characterWidth,\n minHeight: minHeight,\n maxHeight: maxHeight,\n offset: offset,\n gutterOffset: lineHeight ? Math.max(0, Math.ceil((offset + size.height - size.scrollerHeight) / lineHeight)) : 0,\n height: this.$size.scrollerHeight\n };\n if (this.session.$bidiHandler)\n this.session.$bidiHandler.setContentWidth(longestLine - this.$padding);\n return changes;\n };\n VirtualRenderer.prototype.$updateLines = function () {\n if (!this.$changedLines)\n return;\n var firstRow = this.$changedLines.firstRow;\n var lastRow = this.$changedLines.lastRow;\n this.$changedLines = null;\n var layerConfig = this.layerConfig;\n if (firstRow > layerConfig.lastRow + 1) {\n return;\n }\n if (lastRow < layerConfig.firstRow) {\n return;\n }\n if (lastRow === Infinity) {\n if (this.$showGutter)\n this.$gutterLayer.update(layerConfig);\n this.$textLayer.update(layerConfig);\n return;\n }\n this.$textLayer.updateLines(layerConfig, firstRow, lastRow);\n return true;\n };\n VirtualRenderer.prototype.$getLongestLine = function () {\n var charCount = this.session.getScreenWidth();\n if (this.showInvisibles && !this.session.$useWrapMode)\n charCount += 1;\n if (this.$textLayer && charCount > this.$textLayer.MAX_LINE_LENGTH)\n charCount = this.$textLayer.MAX_LINE_LENGTH + 30;\n return Math.max(this.$size.scrollerWidth - 2 * this.$padding, Math.round(charCount * this.characterWidth));\n };\n VirtualRenderer.prototype.updateFrontMarkers = function () {\n this.$markerFront.setMarkers(this.session.getMarkers(true));\n this.$loop.schedule(this.CHANGE_MARKER_FRONT);\n };\n VirtualRenderer.prototype.updateBackMarkers = function () {\n this.$markerBack.setMarkers(this.session.getMarkers());\n this.$loop.schedule(this.CHANGE_MARKER_BACK);\n };\n VirtualRenderer.prototype.addGutterDecoration = function (row, className) {\n this.$gutterLayer.addGutterDecoration(row, className);\n };\n VirtualRenderer.prototype.removeGutterDecoration = function (row, className) {\n this.$gutterLayer.removeGutterDecoration(row, className);\n };\n VirtualRenderer.prototype.updateBreakpoints = function (rows) {\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n VirtualRenderer.prototype.setAnnotations = function (annotations) {\n this.$gutterLayer.setAnnotations(annotations);\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n VirtualRenderer.prototype.updateCursor = function () {\n this.$loop.schedule(this.CHANGE_CURSOR);\n };\n VirtualRenderer.prototype.hideCursor = function () {\n this.$cursorLayer.hideCursor();\n };\n VirtualRenderer.prototype.showCursor = function () {\n this.$cursorLayer.showCursor();\n };\n VirtualRenderer.prototype.scrollSelectionIntoView = function (anchor, lead, offset) {\n this.scrollCursorIntoView(anchor, offset);\n this.scrollCursorIntoView(lead, offset);\n };\n VirtualRenderer.prototype.scrollCursorIntoView = function (cursor, offset, $viewMargin) {\n if (this.$size.scrollerHeight === 0)\n return;\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var newLeft = pos.left;\n var newTop = pos.top;\n var topMargin = $viewMargin && $viewMargin.top || 0;\n var bottomMargin = $viewMargin && $viewMargin.bottom || 0;\n if (this.$scrollAnimation) {\n this.$stopAnimation = true;\n }\n var currentTop = this.$scrollAnimation ? this.session.getScrollTop() : this.scrollTop;\n if (currentTop + topMargin > newTop) {\n if (offset && currentTop + topMargin > newTop + this.lineHeight)\n newTop -= offset * this.$size.scrollerHeight;\n if (newTop === 0)\n newTop = -this.scrollMargin.top;\n this.session.setScrollTop(newTop);\n }\n else if (currentTop + this.$size.scrollerHeight - bottomMargin < newTop + this.lineHeight) {\n if (offset && currentTop + this.$size.scrollerHeight - bottomMargin < newTop - this.lineHeight)\n newTop += offset * this.$size.scrollerHeight;\n this.session.setScrollTop(newTop + this.lineHeight + bottomMargin - this.$size.scrollerHeight);\n }\n var currentLeft = this.scrollLeft;\n var twoCharsWidth = 2 * this.layerConfig.characterWidth;\n if (newLeft - twoCharsWidth < currentLeft) {\n newLeft -= twoCharsWidth;\n if (newLeft < this.$padding + twoCharsWidth) {\n newLeft = -this.scrollMargin.left;\n }\n this.session.setScrollLeft(newLeft);\n }\n else {\n newLeft += twoCharsWidth;\n if (currentLeft + this.$size.scrollerWidth < newLeft + this.characterWidth) {\n this.session.setScrollLeft(Math.round(newLeft + this.characterWidth - this.$size.scrollerWidth));\n }\n else if (currentLeft <= this.$padding && newLeft - currentLeft < this.characterWidth) {\n this.session.setScrollLeft(0);\n }\n }\n };\n VirtualRenderer.prototype.getScrollTop = function () {\n return this.session.getScrollTop();\n };\n VirtualRenderer.prototype.getScrollLeft = function () {\n return this.session.getScrollLeft();\n };\n VirtualRenderer.prototype.getScrollTopRow = function () {\n return this.scrollTop / this.lineHeight;\n };\n VirtualRenderer.prototype.getScrollBottomRow = function () {\n return Math.max(0, Math.floor((this.scrollTop + this.$size.scrollerHeight) / this.lineHeight) - 1);\n };\n VirtualRenderer.prototype.scrollToRow = function (row) {\n this.session.setScrollTop(row * this.lineHeight);\n };\n VirtualRenderer.prototype.alignCursor = function (cursor, alignment) {\n if (typeof cursor == \"number\")\n cursor = { row: cursor, column: 0 };\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var h = this.$size.scrollerHeight - this.lineHeight;\n var offset = pos.top - h * (alignment || 0);\n this.session.setScrollTop(offset);\n return offset;\n };\n VirtualRenderer.prototype.$calcSteps = function (fromValue, toValue) {\n var i = 0;\n var l = this.STEPS;\n var steps = [];\n var func = function (t, x_min, dx) {\n return dx * (Math.pow(t - 1, 3) + 1) + x_min;\n };\n for (i = 0; i < l; ++i)\n steps.push(func(i / this.STEPS, fromValue, toValue - fromValue));\n return steps;\n };\n VirtualRenderer.prototype.scrollToLine = function (line, center, animate, callback) {\n var pos = this.$cursorLayer.getPixelPosition({ row: line, column: 0 });\n var offset = pos.top;\n if (center)\n offset -= this.$size.scrollerHeight / 2;\n var initialScroll = this.scrollTop;\n this.session.setScrollTop(offset);\n if (animate !== false)\n this.animateScrolling(initialScroll, callback);\n };\n VirtualRenderer.prototype.animateScrolling = function (fromValue, callback) {\n var toValue = this.scrollTop;\n if (!this.$animatedScroll)\n return;\n var _self = this;\n if (fromValue == toValue)\n return;\n if (this.$scrollAnimation) {\n var oldSteps = this.$scrollAnimation.steps;\n if (oldSteps.length) {\n fromValue = oldSteps[0];\n if (fromValue == toValue)\n return;\n }\n }\n var steps = _self.$calcSteps(fromValue, toValue);\n this.$scrollAnimation = { from: fromValue, to: toValue, steps: steps };\n clearInterval(this.$timer);\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n function endAnimation() {\n _self.$timer = clearInterval(_self.$timer);\n _self.$scrollAnimation = null;\n _self.$stopAnimation = false;\n callback && callback();\n }\n this.$timer = setInterval(function () {\n if (_self.$stopAnimation) {\n endAnimation();\n return;\n }\n if (!_self.session)\n return clearInterval(_self.$timer);\n if (steps.length) {\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n }\n else if (toValue != null) {\n _self.session.$scrollTop = -1;\n _self.session.setScrollTop(toValue);\n toValue = null;\n }\n else {\n endAnimation();\n }\n }, 10);\n };\n VirtualRenderer.prototype.scrollToY = function (scrollTop) {\n if (this.scrollTop !== scrollTop) {\n this.$loop.schedule(this.CHANGE_SCROLL);\n this.scrollTop = scrollTop;\n }\n };\n VirtualRenderer.prototype.scrollToX = function (scrollLeft) {\n if (this.scrollLeft !== scrollLeft)\n this.scrollLeft = scrollLeft;\n this.$loop.schedule(this.CHANGE_H_SCROLL);\n };\n VirtualRenderer.prototype.scrollTo = function (x, y) {\n this.session.setScrollTop(y);\n this.session.setScrollLeft(x);\n };\n VirtualRenderer.prototype.scrollBy = function (deltaX, deltaY) {\n deltaY && this.session.setScrollTop(this.session.getScrollTop() + deltaY);\n deltaX && this.session.setScrollLeft(this.session.getScrollLeft() + deltaX);\n };\n VirtualRenderer.prototype.isScrollableBy = function (deltaX, deltaY) {\n if (deltaY < 0 && this.session.getScrollTop() >= 1 - this.scrollMargin.top)\n return true;\n if (deltaY > 0 && this.session.getScrollTop() + this.$size.scrollerHeight\n - this.layerConfig.maxHeight < -1 + this.scrollMargin.bottom)\n return true;\n if (deltaX < 0 && this.session.getScrollLeft() >= 1 - this.scrollMargin.left)\n return true;\n if (deltaX > 0 && this.session.getScrollLeft() + this.$size.scrollerWidth\n - this.layerConfig.width < -1 + this.scrollMargin.right)\n return true;\n };\n VirtualRenderer.prototype.pixelToScreenCoordinates = function (x, y) {\n var canvasPos;\n if (this.$hasCssTransforms) {\n canvasPos = { top: 0, left: 0 };\n var p = this.$fontMetrics.transformCoordinates([x, y]);\n x = p[1] - this.gutterWidth - this.margin.left;\n y = p[0];\n }\n else {\n canvasPos = this.scroller.getBoundingClientRect();\n }\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n var offset = offsetX / this.characterWidth;\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n var col = this.$blockCursor ? Math.floor(offset) : Math.round(offset);\n return { row: row, column: col, side: offset - col > 0 ? 1 : -1, offsetX: offsetX };\n };\n VirtualRenderer.prototype.screenToTextCoordinates = function (x, y) {\n var canvasPos;\n if (this.$hasCssTransforms) {\n canvasPos = { top: 0, left: 0 };\n var p = this.$fontMetrics.transformCoordinates([x, y]);\n x = p[1] - this.gutterWidth - this.margin.left;\n y = p[0];\n }\n else {\n canvasPos = this.scroller.getBoundingClientRect();\n }\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n var offset = offsetX / this.characterWidth;\n var col = this.$blockCursor ? Math.floor(offset) : Math.round(offset);\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n return this.session.screenToDocumentPosition(row, Math.max(col, 0), offsetX);\n };\n VirtualRenderer.prototype.textToScreenCoordinates = function (row, column) {\n var canvasPos = this.scroller.getBoundingClientRect();\n var pos = this.session.documentToScreenPosition(row, column);\n var x = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : Math.round(pos.column * this.characterWidth));\n var y = pos.row * this.lineHeight;\n return {\n pageX: canvasPos.left + x - this.scrollLeft,\n pageY: canvasPos.top + y - this.scrollTop\n };\n };\n VirtualRenderer.prototype.visualizeFocus = function () {\n dom.addCssClass(this.container, \"ace_focus\");\n };\n VirtualRenderer.prototype.visualizeBlur = function () {\n dom.removeCssClass(this.container, \"ace_focus\");\n };\n VirtualRenderer.prototype.showComposition = function (composition) {\n this.$composition = composition;\n if (!composition.cssText) {\n composition.cssText = this.textarea.style.cssText;\n }\n if (composition.useTextareaForIME == undefined)\n composition.useTextareaForIME = this.$useTextareaForIME;\n if (this.$useTextareaForIME) {\n dom.addCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = \"\";\n this.$moveTextAreaToCursor();\n this.$cursorLayer.element.style.display = \"none\";\n }\n else {\n composition.markerId = this.session.addMarker(composition.markerRange, \"ace_composition_marker\", \"text\");\n }\n };\n VirtualRenderer.prototype.setCompositionText = function (text) {\n var cursor = this.session.selection.cursor;\n this.addToken(text, \"composition_placeholder\", cursor.row, cursor.column);\n this.$moveTextAreaToCursor();\n };\n VirtualRenderer.prototype.hideComposition = function () {\n if (!this.$composition)\n return;\n if (this.$composition.markerId)\n this.session.removeMarker(this.$composition.markerId);\n dom.removeCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = this.$composition.cssText;\n var cursor = this.session.selection.cursor;\n this.removeExtraToken(cursor.row, cursor.column);\n this.$composition = null;\n this.$cursorLayer.element.style.display = \"\";\n };\n VirtualRenderer.prototype.setGhostText = function (text, position) {\n var cursor = this.session.selection.cursor;\n var insertPosition = position || { row: cursor.row, column: cursor.column };\n this.removeGhostText();\n var textLines = text.split(\"\\n\");\n this.addToken(textLines[0], \"ghost_text\", insertPosition.row, insertPosition.column);\n this.$ghostText = {\n text: text,\n position: {\n row: insertPosition.row,\n column: insertPosition.column\n }\n };\n if (textLines.length > 1) {\n this.$ghostTextWidget = {\n text: textLines.slice(1).join(\"\\n\"),\n row: insertPosition.row,\n column: insertPosition.column,\n className: \"ace_ghost_text\"\n };\n this.session.widgetManager.addLineWidget(this.$ghostTextWidget);\n var pixelPosition = this.$cursorLayer.getPixelPosition(insertPosition, true);\n var el = this.container;\n var height = el.getBoundingClientRect().height;\n var ghostTextHeight = textLines.length * this.lineHeight;\n var fitsY = ghostTextHeight < height - pixelPosition.top;\n if (fitsY)\n return;\n if (ghostTextHeight < height) {\n this.scrollBy(0, (textLines.length - 1) * this.lineHeight);\n }\n else {\n this.scrollBy(0, pixelPosition.top);\n }\n }\n };\n VirtualRenderer.prototype.removeGhostText = function () {\n if (!this.$ghostText)\n return;\n var position = this.$ghostText.position;\n this.removeExtraToken(position.row, position.column);\n if (this.$ghostTextWidget) {\n this.session.widgetManager.removeLineWidget(this.$ghostTextWidget);\n this.$ghostTextWidget = null;\n }\n this.$ghostText = null;\n };\n VirtualRenderer.prototype.addToken = function (text, type, row, column) {\n var session = this.session;\n session.bgTokenizer.lines[row] = null;\n var newToken = { type: type, value: text };\n var tokens = session.getTokens(row);\n if (column == null || !tokens.length) {\n tokens.push(newToken);\n }\n else {\n var l = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n l += token.value.length;\n if (column <= l) {\n var diff = token.value.length - (l - column);\n var before = token.value.slice(0, diff);\n var after = token.value.slice(diff);\n tokens.splice(i, 1, { type: token.type, value: before }, newToken, { type: token.type, value: after });\n break;\n }\n }\n }\n this.updateLines(row, row);\n };\n VirtualRenderer.prototype.removeExtraToken = function (row, column) {\n this.session.bgTokenizer.lines[row] = null;\n this.updateLines(row, row);\n };\n VirtualRenderer.prototype.setTheme = function (theme, cb) {\n var _self = this;\n this.$themeId = theme;\n _self._dispatchEvent('themeChange', { theme: theme });\n if (!theme || typeof theme == \"string\") {\n var moduleName = theme || this.$options.theme.initialValue;\n config.loadModule([\"theme\", moduleName], afterLoad);\n }\n else {\n afterLoad(theme);\n }\n function afterLoad(module) {\n if (_self.$themeId != theme)\n return cb && cb();\n if (!module || !module.cssClass)\n throw new Error(\"couldn't load module \" + theme + \" or it didn't call define\");\n if (module.$id)\n _self.$themeId = module.$id;\n dom.importCssString(module.cssText, module.cssClass, _self.container);\n if (_self.theme)\n dom.removeCssClass(_self.container, _self.theme.cssClass);\n var padding = \"padding\" in module ? module.padding\n : \"padding\" in (_self.theme || {}) ? 4 : _self.$padding;\n if (_self.$padding && padding != _self.$padding)\n _self.setPadding(padding);\n _self.$theme = module.cssClass;\n _self.theme = module;\n dom.addCssClass(_self.container, module.cssClass);\n dom.setCssClass(_self.container, \"ace_dark\", module.isDark);\n if (_self.$size) {\n _self.$size.width = 0;\n _self.$updateSizeAsync();\n }\n _self._dispatchEvent('themeLoaded', { theme: module });\n cb && cb();\n }\n };\n VirtualRenderer.prototype.getTheme = function () {\n return this.$themeId;\n };\n VirtualRenderer.prototype.setStyle = function (style, include) {\n dom.setCssClass(this.container, style, include !== false);\n };\n VirtualRenderer.prototype.unsetStyle = function (style) {\n dom.removeCssClass(this.container, style);\n };\n VirtualRenderer.prototype.setCursorStyle = function (style) {\n dom.setStyle(this.scroller.style, \"cursor\", style);\n };\n VirtualRenderer.prototype.setMouseCursor = function (cursorStyle) {\n dom.setStyle(this.scroller.style, \"cursor\", cursorStyle);\n };\n VirtualRenderer.prototype.attachToShadowRoot = function () {\n dom.importCssString(editorCss, \"ace_editor.css\", this.container);\n };\n VirtualRenderer.prototype.destroy = function () {\n this.freeze();\n this.$fontMetrics.destroy();\n this.$cursorLayer.destroy();\n this.removeAllListeners();\n this.container.textContent = \"\";\n this.setOption(\"useResizeObserver\", false);\n };\n VirtualRenderer.prototype.$updateCustomScrollbar = function (val) {\n var _self = this;\n this.$horizScroll = this.$vScroll = null;\n this.scrollBarV.element.remove();\n this.scrollBarH.element.remove();\n if (this.$scrollDecorator) {\n delete this.$scrollDecorator;\n }\n if (val === true) {\n this.scrollBarV = new VScrollBarCustom(this.container, this);\n this.scrollBarH = new HScrollBarCustom(this.container, this);\n this.scrollBarV.setHeight(this.$size.scrollerHeight);\n this.scrollBarH.setWidth(this.$size.scrollerWidth);\n this.scrollBarV.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n this.$scrollDecorator = new Decorator(this.scrollBarV, this);\n this.$scrollDecorator.$updateDecorators();\n }\n else {\n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n }\n };\n VirtualRenderer.prototype.$addResizeObserver = function () {\n if (!window.ResizeObserver || this.$resizeObserver)\n return;\n var self = this;\n this.$resizeTimer = lang.delayedCall(function () {\n if (!self.destroyed)\n self.onResize();\n }, 50);\n this.$resizeObserver = new window.ResizeObserver(function (e) {\n var w = e[0].contentRect.width;\n var h = e[0].contentRect.height;\n if (Math.abs(self.$size.width - w) > 1\n || Math.abs(self.$size.height - h) > 1) {\n self.$resizeTimer.delay();\n }\n else {\n self.$resizeTimer.cancel();\n }\n });\n this.$resizeObserver.observe(this.container);\n };\n return VirtualRenderer;\n}());\nVirtualRenderer.prototype.CHANGE_CURSOR = 1;\nVirtualRenderer.prototype.CHANGE_MARKER = 2;\nVirtualRenderer.prototype.CHANGE_GUTTER = 4;\nVirtualRenderer.prototype.CHANGE_SCROLL = 8;\nVirtualRenderer.prototype.CHANGE_LINES = 16;\nVirtualRenderer.prototype.CHANGE_TEXT = 32;\nVirtualRenderer.prototype.CHANGE_SIZE = 64;\nVirtualRenderer.prototype.CHANGE_MARKER_BACK = 128;\nVirtualRenderer.prototype.CHANGE_MARKER_FRONT = 256;\nVirtualRenderer.prototype.CHANGE_FULL = 512;\nVirtualRenderer.prototype.CHANGE_H_SCROLL = 1024;\nVirtualRenderer.prototype.$changes = 0;\nVirtualRenderer.prototype.$padding = null;\nVirtualRenderer.prototype.$frozen = false;\nVirtualRenderer.prototype.STEPS = 8;\noop.implement(VirtualRenderer.prototype, EventEmitter);\nconfig.defineOptions(VirtualRenderer.prototype, \"renderer\", {\n useResizeObserver: {\n set: function (value) {\n if (!value && this.$resizeObserver) {\n this.$resizeObserver.disconnect();\n this.$resizeTimer.cancel();\n this.$resizeTimer = this.$resizeObserver = null;\n }\n else if (value && !this.$resizeObserver) {\n this.$addResizeObserver();\n }\n }\n },\n animatedScroll: { initialValue: false },\n showInvisibles: {\n set: function (value) {\n if (this.$textLayer.setShowInvisibles(value))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: false\n },\n showPrintMargin: {\n set: function () { this.$updatePrintMargin(); },\n initialValue: true\n },\n printMarginColumn: {\n set: function () { this.$updatePrintMargin(); },\n initialValue: 80\n },\n printMargin: {\n set: function (val) {\n if (typeof val == \"number\")\n this.$printMarginColumn = val;\n this.$showPrintMargin = !!val;\n this.$updatePrintMargin();\n },\n get: function () {\n return this.$showPrintMargin && this.$printMarginColumn;\n }\n },\n showGutter: {\n set: function (show) {\n this.$gutter.style.display = show ? \"block\" : \"none\";\n this.$loop.schedule(this.CHANGE_FULL);\n this.onGutterResize();\n },\n initialValue: true\n },\n useSvgGutterIcons: {\n set: function (value) {\n this.$gutterLayer.$useSvgGutterIcons = value;\n },\n initialValue: false\n },\n showFoldedAnnotations: {\n set: function (value) {\n this.$gutterLayer.$showFoldedAnnotations = value;\n },\n initialValue: false\n },\n fadeFoldWidgets: {\n set: function (show) {\n dom.setCssClass(this.$gutter, \"ace_fade-fold-widgets\", show);\n },\n initialValue: false\n },\n showFoldWidgets: {\n set: function (show) {\n this.$gutterLayer.setShowFoldWidgets(show);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n displayIndentGuides: {\n set: function (show) {\n if (this.$textLayer.setDisplayIndentGuides(show))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: true\n },\n highlightIndentGuides: {\n set: function (show) {\n if (this.$textLayer.setHighlightIndentGuides(show) == true) {\n this.$textLayer.$highlightIndentGuide();\n }\n else {\n this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells);\n }\n },\n initialValue: true\n },\n highlightGutterLine: {\n set: function (shouldHighlight) {\n this.$gutterLayer.setHighlightGutterLine(shouldHighlight);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n hScrollBarAlwaysVisible: {\n set: function (val) {\n if (!this.$hScrollBarAlwaysVisible || !this.$horizScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n vScrollBarAlwaysVisible: {\n set: function (val) {\n if (!this.$vScrollBarAlwaysVisible || !this.$vScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n fontSize: {\n set: function (size) {\n if (typeof size == \"number\")\n size = size + \"px\";\n this.container.style.fontSize = size;\n this.updateFontSize();\n },\n initialValue: 12\n },\n fontFamily: {\n set: function (name) {\n this.container.style.fontFamily = name;\n this.updateFontSize();\n }\n },\n maxLines: {\n set: function (val) {\n this.updateFull();\n }\n },\n minLines: {\n set: function (val) {\n if (!(this.$minLines < 0x1ffffffffffff))\n this.$minLines = 0;\n this.updateFull();\n }\n },\n maxPixelHeight: {\n set: function (val) {\n this.updateFull();\n },\n initialValue: 0\n },\n scrollPastEnd: {\n set: function (val) {\n val = +val || 0;\n if (this.$scrollPastEnd == val)\n return;\n this.$scrollPastEnd = val;\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: 0,\n handlesSet: true\n },\n fixedWidthGutter: {\n set: function (val) {\n this.$gutterLayer.$fixedWidth = !!val;\n this.$loop.schedule(this.CHANGE_GUTTER);\n }\n },\n customScrollbar: {\n set: function (val) {\n this.$updateCustomScrollbar(val);\n },\n initialValue: false\n },\n theme: {\n set: function (val) { this.setTheme(val); },\n get: function () { return this.$themeId || this.theme; },\n initialValue: \"./theme/textmate\",\n handlesSet: true\n },\n hasCssTransforms: {},\n useTextareaForIME: {\n initialValue: !useragent.isMobile && !useragent.isIE\n }\n});\nexports.VirtualRenderer = VirtualRenderer;\n\n});\n\nace.define(\"ace/worker/worker_client\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/event_emitter\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar net = require(\"../lib/net\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar config = require(\"../config\");\n\nfunction $workerBlob(workerUrl) {\n var script = \"importScripts('\" + net.qualifyURL(workerUrl) + \"');\";\n try {\n return new Blob([script], {\"type\": \"application/javascript\"});\n } catch (e) { // Backwards-compatibility\n var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;\n var blobBuilder = new BlobBuilder();\n blobBuilder.append(script);\n return blobBuilder.getBlob(\"application/javascript\");\n }\n}\n\nfunction createWorker(workerUrl) {\n if (typeof Worker == \"undefined\")\n return { postMessage: function() {}, terminate: function() {} };\n if (config.get(\"loadWorkerFromBlob\")) {\n var blob = $workerBlob(workerUrl);\n var URL = window.URL || window.webkitURL;\n var blobURL = URL.createObjectURL(blob);\n return new Worker(blobURL);\n }\n return new Worker(workerUrl);\n}\n\nvar WorkerClient = function(worker) {\n if (!worker.postMessage)\n worker = this.$createWorkerFromOldConfig.apply(this, arguments);\n\n this.$worker = worker;\n this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n this.changeListener = this.changeListener.bind(this);\n this.onMessage = this.onMessage.bind(this);\n\n this.callbackId = 1;\n this.callbacks = {};\n\n this.$worker.onmessage = this.onMessage;\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n\n this.$createWorkerFromOldConfig = function(topLevelNamespaces, mod, classname, workerUrl, importScripts) {\n if (require.nameToUrl && !require.toUrl)\n require.toUrl = require.nameToUrl;\n\n if (config.get(\"packaged\") || !require.toUrl) {\n workerUrl = workerUrl || config.moduleUrl(mod, \"worker\");\n } else {\n var normalizePath = this.$normalizePath;\n workerUrl = workerUrl || normalizePath(require.toUrl(\"ace/worker/worker.js\", null, \"_\"));\n\n var tlns = {};\n topLevelNamespaces.forEach(function(ns) {\n tlns[ns] = normalizePath(require.toUrl(ns, null, \"_\").replace(/(\\.js)?(\\?.*)?$/, \"\"));\n });\n }\n\n this.$worker = createWorker(workerUrl);\n if (importScripts) {\n this.send(\"importScripts\", importScripts);\n }\n this.$worker.postMessage({\n init : true,\n tlns : tlns,\n module : mod,\n classname : classname\n });\n return this.$worker;\n };\n\n this.onMessage = function(e) {\n var msg = e.data;\n switch (msg.type) {\n case \"event\":\n this._signal(msg.name, {data: msg.data});\n break;\n case \"call\":\n var callback = this.callbacks[msg.id];\n if (callback) {\n callback(msg.data);\n delete this.callbacks[msg.id];\n }\n break;\n case \"error\":\n this.reportError(msg.data);\n break;\n case \"log\":\n window.console && console.log && console.log.apply(console, msg.data);\n break;\n }\n };\n \n this.reportError = function(err) {\n window.console && console.error && console.error(err);\n };\n\n this.$normalizePath = function(path) {\n return net.qualifyURL(path);\n };\n\n this.terminate = function() {\n this._signal(\"terminate\", {});\n this.deltaQueue = null;\n this.$worker.terminate();\n this.$worker.onerror = function(e) {\n e.preventDefault();\n };\n this.$worker = null;\n if (this.$doc)\n this.$doc.off(\"change\", this.changeListener);\n this.$doc = null;\n };\n\n this.send = function(cmd, args) {\n this.$worker.postMessage({command: cmd, args: args});\n };\n\n this.call = function(cmd, args, callback) {\n if (callback) {\n var id = this.callbackId++;\n this.callbacks[id] = callback;\n args.push(id);\n }\n this.send(cmd, args);\n };\n\n this.emit = function(event, data) {\n try {\n if (data.data && data.data.err)\n data.data.err = {message: data.data.err.message, stack: data.data.err.stack, code: data.data.err.code};\n this.$worker && this.$worker.postMessage({event: event, data: {data: data.data}});\n }\n catch(ex) {\n console.error(ex.stack);\n }\n };\n\n this.attachToDocument = function(doc) {\n if (this.$doc)\n this.terminate();\n\n this.$doc = doc;\n this.call(\"setValue\", [doc.getValue()]);\n doc.on(\"change\", this.changeListener, true);\n };\n\n this.changeListener = function(delta) {\n if (!this.deltaQueue) {\n this.deltaQueue = [];\n setTimeout(this.$sendDeltaQueue, 0);\n }\n if (delta.action == \"insert\")\n this.deltaQueue.push(delta.start, delta.lines);\n else\n this.deltaQueue.push(delta.start, delta.end);\n };\n\n this.$sendDeltaQueue = function() {\n var q = this.deltaQueue;\n if (!q) return;\n this.deltaQueue = null;\n if (q.length > 50 && q.length > this.$doc.getLength() >> 1) {\n this.call(\"setValue\", [this.$doc.getValue()]);\n } else\n this.emit(\"change\", {data: q});\n };\n\n}).call(WorkerClient.prototype);\n\n\nvar UIWorkerClient = function(topLevelNamespaces, mod, classname) {\n var main = null;\n var emitSync = false;\n var sender = Object.create(EventEmitter);\n\n var messageBuffer = [];\n var workerClient = new WorkerClient({\n messageBuffer: messageBuffer,\n terminate: function() {},\n postMessage: function(e) {\n messageBuffer.push(e);\n if (!main) return;\n if (emitSync)\n setTimeout(processNext);\n else\n processNext();\n }\n });\n\n workerClient.setEmitSync = function(val) { emitSync = val; };\n\n var processNext = function() {\n var msg = messageBuffer.shift();\n if (msg.command)\n main[msg.command].apply(main, msg.args);\n else if (msg.event)\n sender._signal(msg.event, msg.data);\n };\n\n sender.postMessage = function(msg) {\n workerClient.onMessage({data: msg});\n };\n sender.callback = function(data, callbackId) {\n this.postMessage({type: \"call\", id: callbackId, data: data});\n };\n sender.emit = function(name, data) {\n this.postMessage({type: \"event\", name: name, data: data});\n };\n\n config.loadModule([\"worker\", mod], function(Main) {\n main = new Main[classname](sender);\n while (messageBuffer.length)\n processNext();\n });\n\n return workerClient;\n};\n\nexports.UIWorkerClient = UIWorkerClient;\nexports.WorkerClient = WorkerClient;\nexports.createWorker = createWorker;\n\n\n});\n\nace.define(\"ace/placeholder\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/oop\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar oop = require(\"./lib/oop\");\nvar PlaceHolder = /** @class */ (function () {\n function PlaceHolder(session, length, pos, others, mainClass, othersClass) {\n var _self = this;\n this.length = length;\n this.session = session;\n this.doc = session.getDocument();\n this.mainClass = mainClass;\n this.othersClass = othersClass;\n this.$onUpdate = this.onUpdate.bind(this);\n this.doc.on(\"change\", this.$onUpdate, true);\n this.$others = others;\n this.$onCursorChange = function () {\n setTimeout(function () {\n _self.onCursorChange();\n });\n };\n this.$pos = pos;\n var undoStack = session.getUndoManager().$undoStack || session.getUndoManager().$undostack || { length: -1 };\n this.$undoStackDepth = undoStack.length;\n this.setup();\n session.selection.on(\"changeCursor\", this.$onCursorChange);\n }\n PlaceHolder.prototype.setup = function () {\n var _self = this;\n var doc = this.doc;\n var session = this.session;\n this.selectionBefore = session.selection.toJSON();\n if (session.selection.inMultiSelectMode)\n session.selection.toSingleRange();\n this.pos = doc.createAnchor(this.$pos.row, this.$pos.column);\n var pos = this.pos;\n pos.$insertRight = true;\n pos.detach();\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + this.length), this.mainClass, null, false);\n this.others = [];\n this.$others.forEach(function (other) {\n var anchor = doc.createAnchor(other.row, other.column);\n anchor.$insertRight = true;\n anchor.detach();\n _self.others.push(anchor);\n });\n session.setUndoSelect(false);\n };\n PlaceHolder.prototype.showOtherMarkers = function () {\n if (this.othersActive)\n return;\n var session = this.session;\n var _self = this;\n this.othersActive = true;\n this.others.forEach(function (anchor) {\n anchor.markerId = session.addMarker(new Range(anchor.row, anchor.column, anchor.row, anchor.column + _self.length), _self.othersClass, null, false);\n });\n };\n PlaceHolder.prototype.hideOtherMarkers = function () {\n if (!this.othersActive)\n return;\n this.othersActive = false;\n for (var i = 0; i < this.others.length; i++) {\n this.session.removeMarker(this.others[i].markerId);\n }\n };\n PlaceHolder.prototype.onUpdate = function (delta) {\n if (this.$updating)\n return this.updateAnchors(delta);\n var range = delta;\n if (range.start.row !== range.end.row)\n return;\n if (range.start.row !== this.pos.row)\n return;\n this.$updating = true;\n var lengthDiff = delta.action === \"insert\" ? range.end.column - range.start.column : range.start.column - range.end.column;\n var inMainRange = range.start.column >= this.pos.column && range.start.column <= this.pos.column + this.length + 1;\n var distanceFromStart = range.start.column - this.pos.column;\n this.updateAnchors(delta);\n if (inMainRange)\n this.length += lengthDiff;\n if (inMainRange && !this.session.$fromUndo) {\n if (delta.action === 'insert') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = { row: otherPos.row, column: otherPos.column + distanceFromStart };\n this.doc.insertMergedLines(newPos, delta.lines);\n }\n }\n else if (delta.action === 'remove') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = { row: otherPos.row, column: otherPos.column + distanceFromStart };\n this.doc.remove(new Range(newPos.row, newPos.column, newPos.row, newPos.column - lengthDiff));\n }\n }\n }\n this.$updating = false;\n this.updateMarkers();\n };\n PlaceHolder.prototype.updateAnchors = function (delta) {\n this.pos.onChange(delta);\n for (var i = this.others.length; i--;)\n this.others[i].onChange(delta);\n this.updateMarkers();\n };\n PlaceHolder.prototype.updateMarkers = function () {\n if (this.$updating)\n return;\n var _self = this;\n var session = this.session;\n var updateMarker = function (pos, className) {\n session.removeMarker(pos.markerId);\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + _self.length), className, null, false);\n };\n updateMarker(this.pos, this.mainClass);\n for (var i = this.others.length; i--;)\n updateMarker(this.others[i], this.othersClass);\n };\n PlaceHolder.prototype.onCursorChange = function (event) {\n if (this.$updating || !this.session)\n return;\n var pos = this.session.selection.getCursor();\n if (pos.row === this.pos.row && pos.column >= this.pos.column && pos.column <= this.pos.column + this.length) {\n this.showOtherMarkers();\n this._emit(\"cursorEnter\", event);\n }\n else {\n this.hideOtherMarkers();\n this._emit(\"cursorLeave\", event);\n }\n };\n PlaceHolder.prototype.detach = function () {\n this.session.removeMarker(this.pos && this.pos.markerId);\n this.hideOtherMarkers();\n this.doc.off(\"change\", this.$onUpdate);\n this.session.selection.off(\"changeCursor\", this.$onCursorChange);\n this.session.setUndoSelect(true);\n this.session = null;\n };\n PlaceHolder.prototype.cancel = function () {\n if (this.$undoStackDepth === -1)\n return;\n var undoManager = this.session.getUndoManager();\n var undosRequired = (undoManager.$undoStack || undoManager.$undostack).length - this.$undoStackDepth;\n for (var i = 0; i < undosRequired; i++) {\n undoManager.undo(this.session, true);\n }\n if (this.selectionBefore)\n this.session.selection.fromJSON(this.selectionBefore);\n };\n return PlaceHolder;\n}());\noop.implement(PlaceHolder.prototype, EventEmitter);\nexports.PlaceHolder = PlaceHolder;\n\n});\n\nace.define(\"ace/mouse/multi_select_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){var event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nfunction onMouseDown(e) {\n var ev = e.domEvent;\n var alt = ev.altKey;\n var shift = ev.shiftKey;\n var ctrl = ev.ctrlKey;\n var accel = e.getAccelKey();\n var button = e.getButton();\n if (ctrl && useragent.isMac)\n button = ev.button;\n if (e.editor.inMultiSelectMode && button == 2) {\n e.editor.textInput.onContextMenu(e.domEvent);\n return;\n }\n if (!ctrl && !alt && !accel) {\n if (button === 0 && e.editor.inMultiSelectMode)\n e.editor.exitMultiSelectMode();\n return;\n }\n if (button !== 0)\n return;\n var editor = e.editor;\n var selection = editor.selection;\n var isMultiSelect = editor.inMultiSelectMode;\n var pos = e.getDocumentPosition();\n var cursor = selection.getCursor();\n var inSelection = e.inSelection() || (selection.isEmpty() && isSamePoint(pos, cursor));\n var mouseX = e.x, mouseY = e.y;\n var onMouseSelection = function (e) {\n mouseX = e.clientX;\n mouseY = e.clientY;\n };\n var session = editor.session;\n var screenAnchor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var screenCursor = screenAnchor;\n var selectionMode;\n if (editor.$mouseHandler.$enableJumpToDef) {\n if (ctrl && alt || accel && alt)\n selectionMode = shift ? \"block\" : \"add\";\n else if (alt && editor.$blockSelectEnabled)\n selectionMode = \"block\";\n }\n else {\n if (accel && !alt) {\n selectionMode = \"add\";\n if (!isMultiSelect && shift)\n return;\n }\n else if (alt && editor.$blockSelectEnabled) {\n selectionMode = \"block\";\n }\n }\n if (selectionMode && useragent.isMac && ev.ctrlKey) {\n editor.$mouseHandler.cancelContextMenu();\n }\n if (selectionMode == \"add\") {\n if (!isMultiSelect && inSelection)\n return; // dragging\n if (!isMultiSelect) {\n var range = selection.toOrientedRange();\n editor.addSelectionMarker(range);\n }\n var oldRange = selection.rangeList.rangeAtPoint(pos);\n editor.inVirtualSelectionMode = true;\n if (shift) {\n oldRange = null;\n range = selection.ranges[0] || range;\n editor.removeSelectionMarker(range);\n }\n editor.once(\"mouseup\", function () {\n var tmpSel = selection.toOrientedRange();\n if (oldRange && tmpSel.isEmpty() && isSamePoint(oldRange.cursor, tmpSel.cursor))\n selection.substractPoint(tmpSel.cursor);\n else {\n if (shift) {\n selection.substractPoint(range.cursor);\n }\n else if (range) {\n editor.removeSelectionMarker(range);\n selection.addRange(range);\n }\n selection.addRange(tmpSel);\n }\n editor.inVirtualSelectionMode = false;\n });\n }\n else if (selectionMode == \"block\") {\n e.stop();\n editor.inVirtualSelectionMode = true;\n var initialRange;\n var rectSel = [];\n var blockSelect = function () {\n var newCursor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var cursor = session.screenToDocumentPosition(newCursor.row, newCursor.column, newCursor.offsetX);\n if (isSamePoint(screenCursor, newCursor) && isSamePoint(cursor, selection.lead))\n return;\n screenCursor = newCursor;\n editor.selection.moveToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n editor.removeSelectionMarkers(rectSel);\n rectSel = selection.rectangularRangeBlock(screenCursor, screenAnchor);\n if (editor.$mouseHandler.$clickSelection && rectSel.length == 1 && rectSel[0].isEmpty())\n rectSel[0] = editor.$mouseHandler.$clickSelection.clone();\n rectSel.forEach(editor.addSelectionMarker, editor);\n editor.updateSelectionMarkers();\n };\n if (isMultiSelect && !accel) {\n selection.toSingleRange();\n }\n else if (!isMultiSelect && accel) {\n initialRange = selection.toOrientedRange();\n editor.addSelectionMarker(initialRange);\n }\n if (shift)\n screenAnchor = session.documentToScreenPosition(selection.lead);\n else\n selection.moveToPosition(pos);\n screenCursor = { row: -1, column: -1 };\n var onMouseSelectionEnd = function (e) {\n blockSelect();\n clearInterval(timerId);\n editor.removeSelectionMarkers(rectSel);\n if (!rectSel.length)\n rectSel = [selection.toOrientedRange()];\n if (initialRange) {\n editor.removeSelectionMarker(initialRange);\n selection.toSingleRange(initialRange);\n }\n for (var i = 0; i < rectSel.length; i++)\n selection.addRange(rectSel[i]);\n editor.inVirtualSelectionMode = false;\n editor.$mouseHandler.$clickSelection = null;\n };\n var onSelectionInterval = blockSelect;\n event.capture(editor.container, onMouseSelection, onMouseSelectionEnd);\n var timerId = setInterval(function () { onSelectionInterval(); }, 20);\n return e.preventDefault();\n }\n}\nexports.onMouseDown = onMouseDown;\n\n});\n\nace.define(\"ace/commands/multi_select_commands\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\"], function(require, exports, module){// commands to enter multiselect mode\nexports.defaultCommands = [{\n name: \"addCursorAbove\",\n description: \"Add cursor above\",\n exec: function (editor) { editor.selectMoreLines(-1); },\n bindKey: { win: \"Ctrl-Alt-Up\", mac: \"Ctrl-Alt-Up\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorBelow\",\n description: \"Add cursor below\",\n exec: function (editor) { editor.selectMoreLines(1); },\n bindKey: { win: \"Ctrl-Alt-Down\", mac: \"Ctrl-Alt-Down\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorAboveSkipCurrent\",\n description: \"Add cursor above (skip current)\",\n exec: function (editor) { editor.selectMoreLines(-1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Up\", mac: \"Ctrl-Alt-Shift-Up\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorBelowSkipCurrent\",\n description: \"Add cursor below (skip current)\",\n exec: function (editor) { editor.selectMoreLines(1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Down\", mac: \"Ctrl-Alt-Shift-Down\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectMoreBefore\",\n description: \"Select more before\",\n exec: function (editor) { editor.selectMore(-1); },\n bindKey: { win: \"Ctrl-Alt-Left\", mac: \"Ctrl-Alt-Left\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectMoreAfter\",\n description: \"Select more after\",\n exec: function (editor) { editor.selectMore(1); },\n bindKey: { win: \"Ctrl-Alt-Right\", mac: \"Ctrl-Alt-Right\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectNextBefore\",\n description: \"Select next before\",\n exec: function (editor) { editor.selectMore(-1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Left\", mac: \"Ctrl-Alt-Shift-Left\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectNextAfter\",\n description: \"Select next after\",\n exec: function (editor) { editor.selectMore(1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Right\", mac: \"Ctrl-Alt-Shift-Right\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"toggleSplitSelectionIntoLines\",\n description: \"Split selection into lines\",\n exec: function (editor) {\n if (editor.multiSelect.rangeCount > 1)\n editor.multiSelect.joinSelections();\n else\n editor.multiSelect.splitIntoLines();\n },\n bindKey: { win: \"Ctrl-Alt-L\", mac: \"Ctrl-Alt-L\" },\n readOnly: true\n }, {\n name: \"splitSelectionIntoLines\",\n description: \"Split into lines\",\n exec: function (editor) { editor.multiSelect.splitIntoLines(); },\n readOnly: true\n }, {\n name: \"alignCursors\",\n description: \"Align cursors\",\n exec: function (editor) { editor.alignCursors(); },\n bindKey: { win: \"Ctrl-Alt-A\", mac: \"Ctrl-Alt-A\" },\n scrollIntoView: \"cursor\"\n }, {\n name: \"findAll\",\n description: \"Find all\",\n exec: function (editor) { editor.findAll(); },\n bindKey: { win: \"Ctrl-Alt-K\", mac: \"Ctrl-Alt-G\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }];\nexports.multiSelectCommands = [{\n name: \"singleSelection\",\n description: \"Single selection\",\n bindKey: \"esc\",\n exec: function (editor) { editor.exitMultiSelectMode(); },\n scrollIntoView: \"cursor\",\n readOnly: true,\n isAvailable: function (editor) { return editor && editor.inMultiSelectMode; }\n }];\nvar HashHandler = require(\"../keyboard/hash_handler\").HashHandler;\nexports.keyboardHandler = new HashHandler(exports.multiSelectCommands);\n\n});\n\nace.define(\"ace/multi_select\",[\"require\",\"exports\",\"module\",\"ace/range_list\",\"ace/range\",\"ace/selection\",\"ace/mouse/multi_select_handler\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/commands/multi_select_commands\",\"ace/search\",\"ace/edit_session\",\"ace/editor\",\"ace/config\"], function(require, exports, module){var RangeList = require(\"./range_list\").RangeList;\nvar Range = require(\"./range\").Range;\nvar Selection = require(\"./selection\").Selection;\nvar onMouseDown = require(\"./mouse/multi_select_handler\").onMouseDown;\nvar event = require(\"./lib/event\");\nvar lang = require(\"./lib/lang\");\nvar commands = require(\"./commands/multi_select_commands\");\nexports.commands = commands.defaultCommands.concat(commands.multiSelectCommands);\nvar Search = require(\"./search\").Search;\nvar search = new Search();\nfunction find(session, needle, dir) {\n search.$options.wrap = true;\n search.$options.needle = needle;\n search.$options.backwards = dir == -1;\n return search.find(session);\n}\nvar EditSession = require(\"./edit_session\").EditSession;\n(function () {\n this.getSelectionMarkers = function () {\n return this.$selectionMarkers;\n };\n}).call(EditSession.prototype);\n(function () {\n this.ranges = null;\n this.rangeList = null;\n this.addRange = function (range, $blockChangeEvents) {\n if (!range)\n return;\n if (!this.inMultiSelectMode && this.rangeCount === 0) {\n var oldRange = this.toOrientedRange();\n this.rangeList.add(oldRange);\n this.rangeList.add(range);\n if (this.rangeList.ranges.length != 2) {\n this.rangeList.removeAll();\n return $blockChangeEvents || this.fromOrientedRange(range);\n }\n this.rangeList.removeAll();\n this.rangeList.add(oldRange);\n this.$onAddRange(oldRange);\n }\n if (!range.cursor)\n range.cursor = range.end;\n var removed = this.rangeList.add(range);\n this.$onAddRange(range);\n if (removed.length)\n this.$onRemoveRange(removed);\n if (this.rangeCount > 1 && !this.inMultiSelectMode) {\n this._signal(\"multiSelect\");\n this.inMultiSelectMode = true;\n this.session.$undoSelect = false;\n this.rangeList.attach(this.session);\n }\n return $blockChangeEvents || this.fromOrientedRange(range);\n };\n this.toSingleRange = function (range) {\n range = range || this.ranges[0];\n var removed = this.rangeList.removeAll();\n if (removed.length)\n this.$onRemoveRange(removed);\n range && this.fromOrientedRange(range);\n };\n this.substractPoint = function (pos) {\n var removed = this.rangeList.substractPoint(pos);\n if (removed) {\n this.$onRemoveRange(removed);\n return removed[0];\n }\n };\n this.mergeOverlappingRanges = function () {\n var removed = this.rangeList.merge();\n if (removed.length)\n this.$onRemoveRange(removed);\n };\n this.$onAddRange = function (range) {\n this.rangeCount = this.rangeList.ranges.length;\n this.ranges.unshift(range);\n this._signal(\"addRange\", { range: range });\n };\n this.$onRemoveRange = function (removed) {\n this.rangeCount = this.rangeList.ranges.length;\n if (this.rangeCount == 1 && this.inMultiSelectMode) {\n var lastRange = this.rangeList.ranges.pop();\n removed.push(lastRange);\n this.rangeCount = 0;\n }\n for (var i = removed.length; i--;) {\n var index = this.ranges.indexOf(removed[i]);\n this.ranges.splice(index, 1);\n }\n this._signal(\"removeRange\", { ranges: removed });\n if (this.rangeCount === 0 && this.inMultiSelectMode) {\n this.inMultiSelectMode = false;\n this._signal(\"singleSelect\");\n this.session.$undoSelect = true;\n this.rangeList.detach(this.session);\n }\n lastRange = lastRange || this.ranges[0];\n if (lastRange && !lastRange.isEqual(this.getRange()))\n this.fromOrientedRange(lastRange);\n };\n this.$initRangeList = function () {\n if (this.rangeList)\n return;\n this.rangeList = new RangeList();\n this.ranges = [];\n this.rangeCount = 0;\n };\n this.getAllRanges = function () {\n return this.rangeCount ? this.rangeList.ranges.concat() : [this.getRange()];\n };\n this.splitIntoLines = function () {\n var ranges = this.ranges.length ? this.ranges : [this.getRange()];\n var newRanges = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n var row = range.start.row;\n var endRow = range.end.row;\n if (row === endRow) {\n newRanges.push(range.clone());\n }\n else {\n newRanges.push(new Range(row, range.start.column, row, this.session.getLine(row).length));\n while (++row < endRow)\n newRanges.push(this.getLineRange(row, true));\n newRanges.push(new Range(endRow, 0, endRow, range.end.column));\n }\n if (i == 0 && !this.isBackwards())\n newRanges = newRanges.reverse();\n }\n this.toSingleRange();\n for (var i = newRanges.length; i--;)\n this.addRange(newRanges[i]);\n };\n this.joinSelections = function () {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n };\n this.toggleBlockSelection = function () {\n if (this.rangeCount > 1) {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n }\n else {\n var cursor = this.session.documentToScreenPosition(this.cursor);\n var anchor = this.session.documentToScreenPosition(this.anchor);\n var rectSel = this.rectangularRangeBlock(cursor, anchor);\n rectSel.forEach(this.addRange, this);\n }\n };\n this.rectangularRangeBlock = function (screenCursor, screenAnchor, includeEmptyLines) {\n var rectSel = [];\n var xBackwards = screenCursor.column < screenAnchor.column;\n if (xBackwards) {\n var startColumn = screenCursor.column;\n var endColumn = screenAnchor.column;\n var startOffsetX = screenCursor.offsetX;\n var endOffsetX = screenAnchor.offsetX;\n }\n else {\n var startColumn = screenAnchor.column;\n var endColumn = screenCursor.column;\n var startOffsetX = screenAnchor.offsetX;\n var endOffsetX = screenCursor.offsetX;\n }\n var yBackwards = screenCursor.row < screenAnchor.row;\n if (yBackwards) {\n var startRow = screenCursor.row;\n var endRow = screenAnchor.row;\n }\n else {\n var startRow = screenAnchor.row;\n var endRow = screenCursor.row;\n }\n if (startColumn < 0)\n startColumn = 0;\n if (startRow < 0)\n startRow = 0;\n if (startRow == endRow)\n includeEmptyLines = true;\n var docEnd;\n for (var row = startRow; row <= endRow; row++) {\n var range = Range.fromPoints(this.session.screenToDocumentPosition(row, startColumn, startOffsetX), this.session.screenToDocumentPosition(row, endColumn, endOffsetX));\n if (range.isEmpty()) {\n if (docEnd && isSamePoint(range.end, docEnd))\n break;\n docEnd = range.end;\n }\n range.cursor = xBackwards ? range.start : range.end;\n rectSel.push(range);\n }\n if (yBackwards)\n rectSel.reverse();\n if (!includeEmptyLines) {\n var end = rectSel.length - 1;\n while (rectSel[end].isEmpty() && end > 0)\n end--;\n if (end > 0) {\n var start = 0;\n while (rectSel[start].isEmpty())\n start++;\n }\n for (var i = end; i >= start; i--) {\n if (rectSel[i].isEmpty())\n rectSel.splice(i, 1);\n }\n }\n return rectSel;\n };\n}).call(Selection.prototype);\nvar Editor = require(\"./editor\").Editor;\n(function () {\n this.updateSelectionMarkers = function () {\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.addSelectionMarker = function (orientedRange) {\n if (!orientedRange.cursor)\n orientedRange.cursor = orientedRange.end;\n var style = this.getSelectionStyle();\n orientedRange.marker = this.session.addMarker(orientedRange, \"ace_selection\", style);\n this.session.$selectionMarkers.push(orientedRange);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n return orientedRange;\n };\n this.removeSelectionMarker = function (range) {\n if (!range.marker)\n return;\n this.session.removeMarker(range.marker);\n var index = this.session.$selectionMarkers.indexOf(range);\n if (index != -1)\n this.session.$selectionMarkers.splice(index, 1);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n };\n this.removeSelectionMarkers = function (ranges) {\n var markerList = this.session.$selectionMarkers;\n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.marker)\n continue;\n this.session.removeMarker(range.marker);\n var index = markerList.indexOf(range);\n if (index != -1)\n markerList.splice(index, 1);\n }\n this.session.selectionMarkerCount = markerList.length;\n };\n this.$onAddRange = function (e) {\n this.addSelectionMarker(e.range);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onRemoveRange = function (e) {\n this.removeSelectionMarkers(e.ranges);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onMultiSelect = function (e) {\n if (this.inMultiSelectMode)\n return;\n this.inMultiSelectMode = true;\n this.setStyle(\"ace_multiselect\");\n this.keyBinding.addKeyboardHandler(commands.keyboardHandler);\n this.commands.setDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onSingleSelect = function (e) {\n if (this.session.multiSelect.inVirtualMode)\n return;\n this.inMultiSelectMode = false;\n this.unsetStyle(\"ace_multiselect\");\n this.keyBinding.removeKeyboardHandler(commands.keyboardHandler);\n this.commands.removeDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n this._emit(\"changeSelection\");\n };\n this.$onMultiSelectExec = function (e) {\n var command = e.command;\n var editor = e.editor;\n if (!editor.multiSelect)\n return;\n if (!command.multiSelectAction) {\n var result = command.exec(editor, e.args || {});\n editor.multiSelect.addRange(editor.multiSelect.toOrientedRange());\n editor.multiSelect.mergeOverlappingRanges();\n }\n else if (command.multiSelectAction == \"forEach\") {\n result = editor.forEachSelection(command, e.args);\n }\n else if (command.multiSelectAction == \"forEachLine\") {\n result = editor.forEachSelection(command, e.args, true);\n }\n else if (command.multiSelectAction == \"single\") {\n editor.exitMultiSelectMode();\n result = command.exec(editor, e.args || {});\n }\n else {\n result = command.multiSelectAction(editor, e.args || {});\n }\n return result;\n };\n this.forEachSelection = function (cmd, args, options) {\n if (this.inVirtualSelectionMode)\n return;\n var keepOrder = options && options.keepOrder;\n var $byLines = options == true || options && options.$byLines;\n var session = this.session;\n var selection = this.selection;\n var rangeList = selection.rangeList;\n var ranges = (keepOrder ? selection : rangeList).ranges;\n var result;\n if (!ranges.length)\n return cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n var reg = selection._eventRegistry;\n selection._eventRegistry = {};\n var tmpSel = new Selection(session);\n this.inVirtualSelectionMode = true;\n for (var i = ranges.length; i--;) {\n if ($byLines) {\n while (i > 0 && ranges[i].start.row == ranges[i - 1].end.row)\n i--;\n }\n tmpSel.fromOrientedRange(ranges[i]);\n tmpSel.index = i;\n this.selection = session.selection = tmpSel;\n var cmdResult = cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n if (!result && cmdResult !== undefined)\n result = cmdResult;\n tmpSel.toOrientedRange(ranges[i]);\n }\n tmpSel.detach();\n this.selection = session.selection = selection;\n this.inVirtualSelectionMode = false;\n selection._eventRegistry = reg;\n selection.mergeOverlappingRanges();\n if (selection.ranges[0])\n selection.fromOrientedRange(selection.ranges[0]);\n var anim = this.renderer.$scrollAnimation;\n this.onCursorChange();\n this.onSelectionChange();\n if (anim && anim.from == anim.to)\n this.renderer.animateScrolling(anim.from);\n return result;\n };\n this.exitMultiSelectMode = function () {\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode)\n return;\n this.multiSelect.toSingleRange();\n };\n this.getSelectedText = function () {\n var text = \"\";\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var ranges = this.multiSelect.rangeList.ranges;\n var buf = [];\n for (var i = 0; i < ranges.length; i++) {\n buf.push(this.session.getTextRange(ranges[i]));\n }\n var nl = this.session.getDocument().getNewLineCharacter();\n text = buf.join(nl);\n if (text.length == (buf.length - 1) * nl.length)\n text = \"\";\n }\n else if (!this.selection.isEmpty()) {\n text = this.session.getTextRange(this.getSelectionRange());\n }\n return text;\n };\n this.$checkMultiselectChange = function (e, anchor) {\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var range = this.multiSelect.ranges[0];\n if (this.multiSelect.isEmpty() && anchor == this.multiSelect.anchor)\n return;\n var pos = anchor == this.multiSelect.anchor\n ? range.cursor == range.start ? range.end : range.start\n : range.cursor;\n if (pos.row != anchor.row\n || this.session.$clipPositionToDocument(pos.row, pos.column).column != anchor.column)\n this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange());\n else\n this.multiSelect.mergeOverlappingRanges();\n }\n };\n this.findAll = function (needle, options, additive) {\n options = options || {};\n options.needle = needle || options.needle;\n if (options.needle == undefined) {\n var range = this.selection.isEmpty()\n ? this.selection.getWordRange()\n : this.selection.getRange();\n options.needle = this.session.getTextRange(range);\n }\n this.$search.set(options);\n var ranges = this.$search.findAll(this.session);\n if (!ranges.length)\n return 0;\n var selection = this.multiSelect;\n if (!additive)\n selection.toSingleRange(ranges[0]);\n for (var i = ranges.length; i--;)\n selection.addRange(ranges[i], true);\n if (range && selection.rangeList.rangeAtPoint(range.start))\n selection.addRange(range, true);\n return ranges.length;\n };\n this.selectMoreLines = function (dir, skip) {\n var range = this.selection.toOrientedRange();\n var isBackwards = range.cursor == range.end;\n var screenLead = this.session.documentToScreenPosition(range.cursor);\n if (this.selection.$desiredColumn)\n screenLead.column = this.selection.$desiredColumn;\n var lead = this.session.screenToDocumentPosition(screenLead.row + dir, screenLead.column);\n if (!range.isEmpty()) {\n var screenAnchor = this.session.documentToScreenPosition(isBackwards ? range.end : range.start);\n var anchor = this.session.screenToDocumentPosition(screenAnchor.row + dir, screenAnchor.column);\n }\n else {\n var anchor = lead;\n }\n if (isBackwards) {\n var newRange = Range.fromPoints(lead, anchor);\n newRange.cursor = newRange.start;\n }\n else {\n var newRange = Range.fromPoints(anchor, lead);\n newRange.cursor = newRange.end;\n }\n newRange.desiredColumn = screenLead.column;\n if (!this.selection.inMultiSelectMode) {\n this.selection.addRange(range);\n }\n else {\n if (skip)\n var toRemove = range.cursor;\n }\n this.selection.addRange(newRange);\n if (toRemove)\n this.selection.substractPoint(toRemove);\n };\n this.transposeSelections = function (dir) {\n var session = this.session;\n var sel = session.multiSelect;\n var all = sel.ranges;\n for (var i = all.length; i--;) {\n var range = all[i];\n if (range.isEmpty()) {\n var tmp = session.getWordRange(range.start.row, range.start.column);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n range.end.row = tmp.end.row;\n range.end.column = tmp.end.column;\n }\n }\n sel.mergeOverlappingRanges();\n var words = [];\n for (var i = all.length; i--;) {\n var range = all[i];\n words.unshift(session.getTextRange(range));\n }\n if (dir < 0)\n words.unshift(words.pop());\n else\n words.push(words.shift());\n for (var i = all.length; i--;) {\n var range = all[i];\n var tmp = range.clone();\n session.replace(range, words[i]);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n }\n sel.fromOrientedRange(sel.ranges[0]);\n };\n this.selectMore = function (dir, skip, stopAtFirst) {\n var session = this.session;\n var sel = session.multiSelect;\n var range = sel.toOrientedRange();\n if (range.isEmpty()) {\n range = session.getWordRange(range.start.row, range.start.column);\n range.cursor = dir == -1 ? range.start : range.end;\n this.multiSelect.addRange(range);\n if (stopAtFirst)\n return;\n }\n var needle = session.getTextRange(range);\n var newRange = find(session, needle, dir);\n if (newRange) {\n newRange.cursor = dir == -1 ? newRange.start : newRange.end;\n this.session.unfold(newRange);\n this.multiSelect.addRange(newRange);\n this.renderer.scrollCursorIntoView(null, 0.5);\n }\n if (skip)\n this.multiSelect.substractPoint(range.cursor);\n };\n this.alignCursors = function () {\n var session = this.session;\n var sel = session.multiSelect;\n var ranges = sel.ranges;\n var row = -1;\n var sameRowRanges = ranges.filter(function (r) {\n if (r.cursor.row == row)\n return true;\n row = r.cursor.row;\n });\n if (!ranges.length || sameRowRanges.length == ranges.length - 1) {\n var range = this.selection.getRange();\n var fr = range.start.row, lr = range.end.row;\n var guessRange = fr == lr;\n if (guessRange) {\n var max = this.session.getLength();\n var line;\n do {\n line = this.session.getLine(lr);\n } while (/[=:]/.test(line) && ++lr < max);\n do {\n line = this.session.getLine(fr);\n } while (/[=:]/.test(line) && --fr > 0);\n if (fr < 0)\n fr = 0;\n if (lr >= max)\n lr = max - 1;\n }\n var lines = this.session.removeFullLines(fr, lr);\n lines = this.$reAlignText(lines, guessRange);\n this.session.insert({ row: fr, column: 0 }, lines.join(\"\\n\") + \"\\n\");\n if (!guessRange) {\n range.start.column = 0;\n range.end.column = lines[lines.length - 1].length;\n }\n this.selection.setRange(range);\n }\n else {\n sameRowRanges.forEach(function (r) {\n sel.substractPoint(r.cursor);\n });\n var maxCol = 0;\n var minSpace = Infinity;\n var spaceOffsets = ranges.map(function (r) {\n var p = r.cursor;\n var line = session.getLine(p.row);\n var spaceOffset = line.substr(p.column).search(/\\S/g);\n if (spaceOffset == -1)\n spaceOffset = 0;\n if (p.column > maxCol)\n maxCol = p.column;\n if (spaceOffset < minSpace)\n minSpace = spaceOffset;\n return spaceOffset;\n });\n ranges.forEach(function (r, i) {\n var p = r.cursor;\n var l = maxCol - p.column;\n var d = spaceOffsets[i] - minSpace;\n if (l > d)\n session.insert(p, lang.stringRepeat(\" \", l - d));\n else\n session.remove(new Range(p.row, p.column, p.row, p.column - l + d));\n r.start.column = r.end.column = maxCol;\n r.start.row = r.end.row = p.row;\n r.cursor = r.end;\n });\n sel.fromOrientedRange(ranges[0]);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n }\n };\n this.$reAlignText = function (lines, forceLeft) {\n var isLeftAligned = true, isRightAligned = true;\n var startW, textW, endW;\n return lines.map(function (line) {\n var m = line.match(/(\\s*)(.*?)(\\s*)([=:].*)/);\n if (!m)\n return [line];\n if (startW == null) {\n startW = m[1].length;\n textW = m[2].length;\n endW = m[3].length;\n return m;\n }\n if (startW + textW + endW != m[1].length + m[2].length + m[3].length)\n isRightAligned = false;\n if (startW != m[1].length)\n isLeftAligned = false;\n if (startW > m[1].length)\n startW = m[1].length;\n if (textW < m[2].length)\n textW = m[2].length;\n if (endW > m[3].length)\n endW = m[3].length;\n return m;\n }).map(forceLeft ? alignLeft :\n isLeftAligned ? isRightAligned ? alignRight : alignLeft : unAlign);\n function spaces(n) {\n return lang.stringRepeat(\" \", n);\n }\n function alignLeft(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(textW - m[2].length + endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function alignRight(m) {\n return !m[2] ? m[0] : spaces(startW + textW - m[2].length) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function unAlign(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n };\n}).call(Editor.prototype);\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nexports.onSessionChange = function (e) {\n var session = e.session;\n if (session && !session.multiSelect) {\n session.$selectionMarkers = [];\n session.selection.$initRangeList();\n session.multiSelect = session.selection;\n }\n this.multiSelect = session && session.multiSelect;\n var oldSession = e.oldSession;\n if (oldSession) {\n oldSession.multiSelect.off(\"addRange\", this.$onAddRange);\n oldSession.multiSelect.off(\"removeRange\", this.$onRemoveRange);\n oldSession.multiSelect.off(\"multiSelect\", this.$onMultiSelect);\n oldSession.multiSelect.off(\"singleSelect\", this.$onSingleSelect);\n oldSession.multiSelect.lead.off(\"change\", this.$checkMultiselectChange);\n oldSession.multiSelect.anchor.off(\"change\", this.$checkMultiselectChange);\n }\n if (session) {\n session.multiSelect.on(\"addRange\", this.$onAddRange);\n session.multiSelect.on(\"removeRange\", this.$onRemoveRange);\n session.multiSelect.on(\"multiSelect\", this.$onMultiSelect);\n session.multiSelect.on(\"singleSelect\", this.$onSingleSelect);\n session.multiSelect.lead.on(\"change\", this.$checkMultiselectChange);\n session.multiSelect.anchor.on(\"change\", this.$checkMultiselectChange);\n }\n if (session && this.inMultiSelectMode != session.selection.inMultiSelectMode) {\n if (session.selection.inMultiSelectMode)\n this.$onMultiSelect();\n else\n this.$onSingleSelect();\n }\n};\nfunction MultiSelect(editor) {\n if (editor.$multiselectOnSessionChange)\n return;\n editor.$onAddRange = editor.$onAddRange.bind(editor);\n editor.$onRemoveRange = editor.$onRemoveRange.bind(editor);\n editor.$onMultiSelect = editor.$onMultiSelect.bind(editor);\n editor.$onSingleSelect = editor.$onSingleSelect.bind(editor);\n editor.$multiselectOnSessionChange = exports.onSessionChange.bind(editor);\n editor.$checkMultiselectChange = editor.$checkMultiselectChange.bind(editor);\n editor.$multiselectOnSessionChange(editor);\n editor.on(\"changeSession\", editor.$multiselectOnSessionChange);\n editor.on(\"mousedown\", onMouseDown);\n editor.commands.addCommands(commands.defaultCommands);\n addAltCursorListeners(editor);\n}\nfunction addAltCursorListeners(editor) {\n if (!editor.textInput)\n return;\n var el = editor.textInput.getElement();\n var altCursor = false;\n event.addListener(el, \"keydown\", function (e) {\n var altDown = e.keyCode == 18 && !(e.ctrlKey || e.shiftKey || e.metaKey);\n if (editor.$blockSelectEnabled && altDown) {\n if (!altCursor) {\n editor.renderer.setMouseCursor(\"crosshair\");\n altCursor = true;\n }\n }\n else if (altCursor) {\n reset();\n }\n }, editor);\n event.addListener(el, \"keyup\", reset, editor);\n event.addListener(el, \"blur\", reset, editor);\n function reset(e) {\n if (altCursor) {\n editor.renderer.setMouseCursor(\"\");\n altCursor = false;\n }\n }\n}\nexports.MultiSelect = MultiSelect;\nrequire(\"./config\").defineOptions(Editor.prototype, \"editor\", {\n enableMultiselect: {\n set: function (val) {\n MultiSelect(this);\n if (val) {\n this.on(\"mousedown\", onMouseDown);\n }\n else {\n this.off(\"mousedown\", onMouseDown);\n }\n },\n value: true\n },\n enableBlockSelect: {\n set: function (val) {\n this.$blockSelectEnabled = val;\n },\n value: true\n }\n});\n\n});\n\nace.define(\"ace/mode/folding/fold_mode\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../../range\").Range;\nvar FoldMode = exports.FoldMode = function () { };\n(function () {\n this.foldingStartMarker = null;\n this.foldingStopMarker = null;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.foldingStartMarker.test(line))\n return \"start\";\n if (foldStyle == \"markbeginend\"\n && this.foldingStopMarker\n && this.foldingStopMarker.test(line))\n return \"end\";\n return \"\";\n };\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n return null;\n };\n this.indentationBlock = function (session, row, column) {\n var re = /\\S/;\n var line = session.getLine(row);\n var startLevel = line.search(re);\n if (startLevel == -1)\n return;\n var startColumn = column || line.length;\n var maxRow = session.getLength();\n var startRow = row;\n var endRow = row;\n while (++row < maxRow) {\n var level = session.getLine(row).search(re);\n if (level == -1)\n continue;\n if (level <= startLevel) {\n var token = session.getTokenAt(row, 0);\n if (!token || token.type !== \"string\")\n break;\n }\n endRow = row;\n }\n if (endRow > startRow) {\n var endColumn = session.getLine(endRow).length;\n return new Range(startRow, startColumn, endRow, endColumn);\n }\n };\n this.openingBracketBlock = function (session, bracket, row, column, typeRe) {\n var start = { row: row, column: column + 1 };\n var end = session.$findClosingBracket(bracket, start, typeRe);\n if (!end)\n return;\n var fw = session.foldWidgets[end.row];\n if (fw == null)\n fw = session.getFoldWidget(end.row);\n if (fw == \"start\" && end.row > start.row) {\n end.row--;\n end.column = session.getLine(end.row).length;\n }\n return Range.fromPoints(start, end);\n };\n this.closingBracketBlock = function (session, bracket, row, column, typeRe) {\n var end = { row: row, column: column };\n var start = session.$findOpeningBracket(bracket, end);\n if (!start)\n return;\n start.column++;\n end.column--;\n return Range.fromPoints(start, end);\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/ext/error_marker\",[\"require\",\"exports\",\"module\",\"ace/line_widgets\",\"ace/lib/dom\",\"ace/range\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar LineWidgets = require(\"../line_widgets\").LineWidgets;\nvar dom = require(\"../lib/dom\");\nvar Range = require(\"../range\").Range;\nvar nls = require(\"../config\").nls;\nfunction binarySearch(array, needle, comparator) {\n var first = 0;\n var last = array.length - 1;\n while (first <= last) {\n var mid = (first + last) >> 1;\n var c = comparator(needle, array[mid]);\n if (c > 0)\n first = mid + 1;\n else if (c < 0)\n last = mid - 1;\n else\n return mid;\n }\n return -(first + 1);\n}\nfunction findAnnotations(session, row, dir) {\n var annotations = session.getAnnotations().sort(Range.comparePoints);\n if (!annotations.length)\n return;\n var i = binarySearch(annotations, { row: row, column: -1 }, Range.comparePoints);\n if (i < 0)\n i = -i - 1;\n if (i >= annotations.length)\n i = dir > 0 ? 0 : annotations.length - 1;\n else if (i === 0 && dir < 0)\n i = annotations.length - 1;\n var annotation = annotations[i];\n if (!annotation || !dir)\n return;\n if (annotation.row === row) {\n do {\n annotation = annotations[i += dir];\n } while (annotation && annotation.row === row);\n if (!annotation)\n return annotations.slice();\n }\n var matched = [];\n row = annotation.row;\n do {\n matched[dir < 0 ? \"unshift\" : \"push\"](annotation);\n annotation = annotations[i += dir];\n } while (annotation && annotation.row == row);\n return matched.length && matched;\n}\nexports.showErrorMarker = function (editor, dir) {\n var session = editor.session;\n if (!session.widgetManager) {\n session.widgetManager = new LineWidgets(session);\n session.widgetManager.attach(editor);\n }\n var pos = editor.getCursorPosition();\n var row = pos.row;\n var oldWidget = session.widgetManager.getWidgetsAtRow(row).filter(function (w) {\n return w.type == \"errorMarker\";\n })[0];\n if (oldWidget) {\n oldWidget.destroy();\n }\n else {\n row -= dir;\n }\n var annotations = findAnnotations(session, row, dir);\n var gutterAnno;\n if (annotations) {\n var annotation = annotations[0];\n pos.column = (annotation.pos && typeof annotation.column != \"number\"\n ? annotation.pos.sc\n : annotation.column) || 0;\n pos.row = annotation.row;\n gutterAnno = editor.renderer.$gutterLayer.$annotations[pos.row];\n }\n else if (oldWidget) {\n return;\n }\n else {\n gutterAnno = {\n text: [nls(\"Looks good!\")],\n className: \"ace_ok\"\n };\n }\n editor.session.unfold(pos.row);\n editor.selection.moveToPosition(pos);\n var w = {\n row: pos.row,\n fixedWidth: true,\n coverGutter: true,\n el: dom.createElement(\"div\"),\n type: \"errorMarker\"\n };\n var el = w.el.appendChild(dom.createElement(\"div\"));\n var arrow = w.el.appendChild(dom.createElement(\"div\"));\n arrow.className = \"error_widget_arrow \" + gutterAnno.className;\n var left = editor.renderer.$cursorLayer\n .getPixelPosition(pos).left;\n arrow.style.left = left + editor.renderer.gutterWidth - 5 + \"px\";\n w.el.className = \"error_widget_wrapper\";\n el.className = \"error_widget \" + gutterAnno.className;\n el.innerHTML = gutterAnno.text.join(\"
    \");\n el.appendChild(dom.createElement(\"div\"));\n var kb = function (_, hashId, keyString) {\n if (hashId === 0 && (keyString === \"esc\" || keyString === \"return\")) {\n w.destroy();\n return { command: \"null\" };\n }\n };\n w.destroy = function () {\n if (editor.$mouseHandler.isMousePressed)\n return;\n editor.keyBinding.removeKeyboardHandler(kb);\n session.widgetManager.removeLineWidget(w);\n editor.off(\"changeSelection\", w.destroy);\n editor.off(\"changeSession\", w.destroy);\n editor.off(\"mouseup\", w.destroy);\n editor.off(\"change\", w.destroy);\n };\n editor.keyBinding.addKeyboardHandler(kb);\n editor.on(\"changeSelection\", w.destroy);\n editor.on(\"changeSession\", w.destroy);\n editor.on(\"mouseup\", w.destroy);\n editor.on(\"change\", w.destroy);\n editor.session.widgetManager.addLineWidget(w);\n w.el.onmousedown = editor.focus.bind(editor);\n editor.renderer.scrollCursorIntoView(null, 0.5, { bottom: w.el.offsetHeight });\n};\ndom.importCssString(\"\\n .error_widget_wrapper {\\n background: inherit;\\n color: inherit;\\n border:none\\n }\\n .error_widget {\\n border-top: solid 2px;\\n border-bottom: solid 2px;\\n margin: 5px 0;\\n padding: 10px 40px;\\n white-space: pre-wrap;\\n }\\n .error_widget.ace_error, .error_widget_arrow.ace_error{\\n border-color: #ff5a5a\\n }\\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\\n border-color: #F1D817\\n }\\n .error_widget.ace_info, .error_widget_arrow.ace_info{\\n border-color: #5a5a5a\\n }\\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\\n border-color: #5aaa5a\\n }\\n .error_widget_arrow {\\n position: absolute;\\n border: solid 5px;\\n border-top-color: transparent!important;\\n border-right-color: transparent!important;\\n border-left-color: transparent!important;\\n top: -5px;\\n }\\n\", \"error_marker.css\", false);\n\n});\n\nace.define(\"ace/ace\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/range\",\"ace/editor\",\"ace/edit_session\",\"ace/undomanager\",\"ace/virtual_renderer\",\"ace/worker/worker_client\",\"ace/keyboard/hash_handler\",\"ace/placeholder\",\"ace/multi_select\",\"ace/mode/folding/fold_mode\",\"ace/theme/textmate\",\"ace/ext/error_marker\",\"ace/config\",\"ace/loader_build\"], function(require, exports, module){/**\n * The main class required to set up an Ace instance in the browser.\n *\n * @class Ace\n **/\n\"use strict\";\nrequire(\"./loader_build\")(exports)\nvar dom = require(\"./lib/dom\");\nvar Range = require(\"./range\").Range;\nvar Editor = require(\"./editor\").Editor;\nvar EditSession = require(\"./edit_session\").EditSession;\nvar UndoManager = require(\"./undomanager\").UndoManager;\nvar Renderer = require(\"./virtual_renderer\").VirtualRenderer;\nrequire(\"./worker/worker_client\");\nrequire(\"./keyboard/hash_handler\");\nrequire(\"./placeholder\");\nrequire(\"./multi_select\");\nrequire(\"./mode/folding/fold_mode\");\nrequire(\"./theme/textmate\");\nrequire(\"./ext/error_marker\");\nexports.config = require(\"./config\");\nexports.edit = function (el, options) {\n if (typeof el == \"string\") {\n var _id = el;\n el = document.getElementById(_id);\n if (!el)\n throw new Error(\"ace.edit can't find div #\" + _id);\n }\n if (el && el.env && el.env.editor instanceof Editor)\n return el.env.editor;\n var value = \"\";\n if (el && /input|textarea/i.test(el.tagName)) {\n var oldNode = el;\n value = oldNode.value;\n el = dom.createElement(\"pre\");\n oldNode.parentNode.replaceChild(el, oldNode);\n }\n else if (el) {\n value = el.textContent;\n el.innerHTML = \"\";\n }\n var doc = exports.createEditSession(value);\n var editor = new Editor(new Renderer(el), doc, options);\n var env = {\n document: doc,\n editor: editor,\n onResize: editor.resize.bind(editor, null)\n };\n if (oldNode)\n env.textarea = oldNode;\n editor.on(\"destroy\", function () {\n env.editor.container.env = null; // prevent memory leak on old ie\n });\n editor.container.env = editor.env = env;\n return editor;\n};\nexports.createEditSession = function (text, mode) {\n var doc = new EditSession(text, mode);\n doc.setUndoManager(new UndoManager());\n return doc;\n};\nexports.Range = Range;\nexports.Editor = Editor;\nexports.EditSession = EditSession;\nexports.UndoManager = UndoManager;\nexports.VirtualRenderer = Renderer;\nexports.version = exports.config.version;\n\n}); (function() {\n ace.require([\"ace/ace\"], function(a) {\n if (a) {\n a.config.init(true);\n a.define = ace.define;\n }\n var global = (function () {\n return this;\n })();\n if (!global && typeof window != \"undefined\") global = window; // can happen in strict mode\n if (!global && typeof self != \"undefined\") global = self; // can happen in webworker\n \n if (!global.ace)\n global.ace = a;\n for (var key in a) if (a.hasOwnProperty(key))\n global.ace[key] = a[key];\n global.ace[\"default\"] = global.ace;\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = global.ace;\n }\n });\n })();\n ","ace.define(\"ace/ext/beautify\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"], function(require, exports, module){// [WIP]\n\"use strict\";\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nfunction is(token, type) {\n return token.type.lastIndexOf(type + \".xml\") > -1;\n}\nexports.singletonTags = [\"area\", \"base\", \"br\", \"col\", \"command\", \"embed\", \"hr\", \"html\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"param\", \"source\", \"track\", \"wbr\"];\nexports.blockTags = [\"article\", \"aside\", \"blockquote\", \"body\", \"div\", \"dl\", \"fieldset\", \"footer\", \"form\", \"head\", \"header\", \"html\", \"nav\", \"ol\", \"p\", \"script\", \"section\", \"style\", \"table\", \"tbody\", \"tfoot\", \"thead\", \"ul\"];\nexports.formatOptions = {\n lineBreaksAfterCommasInCurlyBlock: true\n};\nexports.beautify = function (session) {\n var iterator = new TokenIterator(session, 0, 0);\n var token = iterator.getCurrentToken();\n var tabString = session.getTabString();\n var singletonTags = exports.singletonTags;\n var blockTags = exports.blockTags;\n var formatOptions = exports.formatOptions || {};\n var nextToken;\n var breakBefore = false;\n var spaceBefore = false;\n var spaceAfter = false;\n var code = \"\";\n var value = \"\";\n var tagName = \"\";\n var depth = 0;\n var lastDepth = 0;\n var lastIndent = 0;\n var indent = 0;\n var unindent = 0;\n var roundDepth = 0;\n var curlyDepth = 0;\n var row;\n var curRow = 0;\n var rowsToAdd = 0;\n var rowTokens = [];\n var abort = false;\n var i;\n var indentNextLine = false;\n var inTag = false;\n var inCSS = false;\n var inBlock = false;\n var levels = { 0: 0 };\n var parents = [];\n var caseBody = false;\n var trimNext = function () {\n if (nextToken && nextToken.value && nextToken.type !== 'string.regexp')\n nextToken.value = nextToken.value.replace(/^\\s*/, \"\");\n };\n var trimLine = function () {\n var end = code.length - 1;\n while (true) {\n if (end == 0)\n break;\n if (code[end] !== \" \")\n break;\n end = end - 1;\n }\n code = code.slice(0, end + 1);\n };\n var trimCode = function () {\n code = code.trimRight();\n breakBefore = false;\n };\n while (token !== null) {\n curRow = iterator.getCurrentTokenRow();\n rowTokens = iterator.$rowTokens;\n nextToken = iterator.stepForward();\n if (typeof token !== \"undefined\") {\n value = token.value;\n unindent = 0;\n inCSS = (tagName === \"style\" || session.$modeId === \"ace/mode/css\");\n if (is(token, \"tag-open\")) {\n inTag = true;\n if (nextToken)\n inBlock = (blockTags.indexOf(nextToken.value) !== -1);\n if (value === \" 0; rowsToAdd--)\n code += \"\\n\";\n breakBefore = true;\n if (!is(token, \"comment\") && !token.type.match(/^(comment|string)$/))\n value = value.trimLeft();\n }\n if (value) {\n if (token.type === \"keyword\" && value.match(/^(if|else|elseif|for|foreach|while|switch)$/)) {\n parents[depth] = value;\n trimNext();\n spaceAfter = true;\n if (value.match(/^(else|elseif)$/)) {\n if (code.match(/\\}[\\s]*$/)) {\n trimCode();\n spaceBefore = true;\n }\n }\n }\n else if (token.type === \"paren.lparen\") {\n trimNext();\n if (value.substr(-1) === \"{\") {\n spaceAfter = true;\n indentNextLine = false;\n if (!inTag)\n rowsToAdd = 1;\n }\n if (value.substr(0, 1) === \"{\") {\n spaceBefore = true;\n if (code.substr(-1) !== '[' && code.trimRight().substr(-1) === '[') {\n trimCode();\n spaceBefore = false;\n }\n else if (code.trimRight().substr(-1) === ')') {\n trimCode();\n }\n else {\n trimLine();\n }\n }\n }\n else if (token.type === \"paren.rparen\") {\n unindent = 1;\n if (value.substr(0, 1) === \"}\") {\n if (parents[depth - 1] === 'case')\n unindent++;\n if (code.trimRight().substr(-1) === '{') {\n trimCode();\n }\n else {\n spaceBefore = true;\n if (inCSS)\n rowsToAdd += 2;\n }\n }\n if (value.substr(0, 1) === \"]\") {\n if (code.substr(-1) !== '}' && code.trimRight().substr(-1) === '}') {\n spaceBefore = false;\n indent++;\n trimCode();\n }\n }\n if (value.substr(0, 1) === \")\") {\n if (code.substr(-1) !== '(' && code.trimRight().substr(-1) === '(') {\n spaceBefore = false;\n indent++;\n trimCode();\n }\n }\n trimLine();\n }\n else if ((token.type === \"keyword.operator\" || token.type === \"keyword\") && value.match(/^(=|==|===|!=|!==|&&|\\|\\||and|or|xor|\\+=|.=|>|>=|<|<=|=>)$/)) {\n trimCode();\n trimNext();\n spaceBefore = true;\n spaceAfter = true;\n }\n else if (token.type === \"punctuation.operator\" && value === ';') {\n trimCode();\n trimNext();\n spaceAfter = true;\n if (inCSS)\n rowsToAdd++;\n }\n else if (token.type === \"punctuation.operator\" && value.match(/^(:|,)$/)) {\n trimCode();\n trimNext();\n if (value.match(/^(,)$/) && curlyDepth > 0 && roundDepth === 0 && formatOptions.lineBreaksAfterCommasInCurlyBlock) {\n rowsToAdd++;\n }\n else {\n spaceAfter = true;\n breakBefore = false;\n }\n }\n else if (token.type === \"support.php_tag\" && value === \"?>\" && !breakBefore) {\n trimCode();\n spaceBefore = true;\n }\n else if (is(token, \"attribute-name\") && code.substr(-1).match(/^\\s$/)) {\n spaceBefore = true;\n }\n else if (is(token, \"attribute-equals\")) {\n trimLine();\n trimNext();\n }\n else if (is(token, \"tag-close\")) {\n trimLine();\n if (value === \"/>\")\n spaceBefore = true;\n }\n else if (token.type === \"keyword\" && value.match(/^(case|default)$/)) {\n if (caseBody)\n unindent = 1;\n }\n if (breakBefore && !(token.type.match(/^(comment)$/) && !value.substr(0, 1).match(/^[/#]$/)) && !(token.type.match(/^(string)$/) && !value.substr(0, 1).match(/^['\"@]$/))) {\n indent = lastIndent;\n if (depth > lastDepth) {\n indent++;\n for (i = depth; i > lastDepth; i--)\n levels[i] = indent;\n }\n else if (depth < lastDepth)\n indent = levels[depth];\n lastDepth = depth;\n lastIndent = indent;\n if (unindent)\n indent -= unindent;\n if (indentNextLine && !roundDepth) {\n indent++;\n indentNextLine = false;\n }\n for (i = 0; i < indent; i++)\n code += tabString;\n }\n if (token.type === \"keyword\" && value.match(/^(case|default)$/)) {\n if (caseBody === false) {\n parents[depth] = value;\n depth++;\n caseBody = true;\n }\n }\n else if (token.type === \"keyword\" && value.match(/^(break)$/)) {\n if (parents[depth - 1] && parents[depth - 1].match(/^(case|default)$/)) {\n depth--;\n caseBody = false;\n }\n }\n if (token.type === \"paren.lparen\") {\n roundDepth += (value.match(/\\(/g) || []).length;\n curlyDepth += (value.match(/\\{/g) || []).length;\n depth += value.length;\n }\n if (token.type === \"keyword\" && value.match(/^(if|else|elseif|for|while)$/)) {\n indentNextLine = true;\n roundDepth = 0;\n }\n else if (!roundDepth && value.trim() && token.type !== \"comment\")\n indentNextLine = false;\n if (token.type === \"paren.rparen\") {\n roundDepth -= (value.match(/\\)/g) || []).length;\n curlyDepth -= (value.match(/\\}/g) || []).length;\n for (i = 0; i < value.length; i++) {\n depth--;\n if (value.substr(i, 1) === '}' && parents[depth] === 'case') {\n depth--;\n }\n }\n }\n if (token.type == \"text\")\n value = value.replace(/\\s+$/, \" \");\n if (spaceBefore && !breakBefore) {\n trimLine();\n if (code.substr(-1) !== \"\\n\")\n code += \" \";\n }\n code += value;\n if (spaceAfter)\n code += \" \";\n breakBefore = false;\n spaceBefore = false;\n spaceAfter = false;\n if ((is(token, \"tag-close\") && (inBlock || blockTags.indexOf(tagName) !== -1)) || (is(token, \"doctype\") && value === \">\")) {\n if (inBlock && nextToken && nextToken.value === \"\") {\n depth--;\n }\n }\n if (is(token, \"tag-name\")) {\n tagName = value;\n }\n row = curRow;\n }\n }\n token = nextToken;\n }\n code = code.trim();\n session.doc.setValue(code);\n};\nexports.commands = [{\n name: \"beautify\",\n description: \"Format selection (Beautify)\",\n exec: function (editor) {\n exports.beautify(editor.session);\n },\n bindKey: \"Ctrl-Shift-B\"\n }];\n\n}); (function() {\n ace.require([\"ace/ext/beautify\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/ext/searchbox-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \"\\n\\n/* ------------------------------------------------------------------------------------------\\n * Editor Search Form\\n * --------------------------------------------------------------------------------------- */\\n.ace_search {\\n background-color: #ddd;\\n color: #666;\\n border: 1px solid #cbcbcb;\\n border-top: 0 none;\\n overflow: hidden;\\n margin: 0;\\n padding: 4px 6px 0 4px;\\n position: absolute;\\n top: 0;\\n z-index: 99;\\n white-space: normal;\\n}\\n.ace_search.left {\\n border-left: 0 none;\\n border-radius: 0px 0px 5px 0px;\\n left: 0;\\n}\\n.ace_search.right {\\n border-radius: 0px 0px 0px 5px;\\n border-right: 0 none;\\n right: 0;\\n}\\n\\n.ace_search_form, .ace_replace_form {\\n margin: 0 20px 4px 0;\\n overflow: hidden;\\n line-height: 1.9;\\n}\\n.ace_replace_form {\\n margin-right: 0;\\n}\\n.ace_search_form.ace_nomatch {\\n outline: 1px solid red;\\n}\\n\\n.ace_search_field {\\n border-radius: 3px 0 0 3px;\\n background-color: white;\\n color: black;\\n border: 1px solid #cbcbcb;\\n border-right: 0 none;\\n outline: 0;\\n padding: 0;\\n font-size: inherit;\\n margin: 0;\\n line-height: inherit;\\n padding: 0 6px;\\n min-width: 17em;\\n vertical-align: top;\\n min-height: 1.8em;\\n box-sizing: content-box;\\n}\\n.ace_searchbtn {\\n border: 1px solid #cbcbcb;\\n line-height: inherit;\\n display: inline-block;\\n padding: 0 6px;\\n background: #fff;\\n border-right: 0 none;\\n border-left: 1px solid #dcdcdc;\\n cursor: pointer;\\n margin: 0;\\n position: relative;\\n color: #666;\\n}\\n.ace_searchbtn:last-child {\\n border-radius: 0 3px 3px 0;\\n border-right: 1px solid #cbcbcb;\\n}\\n.ace_searchbtn:disabled {\\n background: none;\\n cursor: default;\\n}\\n.ace_searchbtn:hover {\\n background-color: #eef1f6;\\n}\\n.ace_searchbtn.prev, .ace_searchbtn.next {\\n padding: 0px 0.7em\\n}\\n.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\\n content: \\\"\\\";\\n border: solid 2px #888;\\n width: 0.5em;\\n height: 0.5em;\\n border-width: 2px 0 0 2px;\\n display:inline-block;\\n transform: rotate(-45deg);\\n}\\n.ace_searchbtn.next:after {\\n border-width: 0 2px 2px 0 ;\\n}\\n.ace_searchbtn_close {\\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\\n border-radius: 50%;\\n border: 0 none;\\n color: #656565;\\n cursor: pointer;\\n font: 16px/16px Arial;\\n padding: 0;\\n height: 14px;\\n width: 14px;\\n top: 9px;\\n right: 7px;\\n position: absolute;\\n}\\n.ace_searchbtn_close:hover {\\n background-color: #656565;\\n background-position: 50% 100%;\\n color: white;\\n}\\n\\n.ace_button {\\n margin-left: 2px;\\n cursor: pointer;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -o-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n overflow: hidden;\\n opacity: 0.7;\\n border: 1px solid rgba(100,100,100,0.23);\\n padding: 1px;\\n box-sizing: border-box!important;\\n color: black;\\n}\\n\\n.ace_button:hover {\\n background-color: #eee;\\n opacity:1;\\n}\\n.ace_button:active {\\n background-color: #ddd;\\n}\\n\\n.ace_button.checked {\\n border-color: #3399ff;\\n opacity:1;\\n}\\n\\n.ace_search_options{\\n margin-bottom: 3px;\\n text-align: right;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -o-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n clear: both;\\n}\\n\\n.ace_search_counter {\\n float: left;\\n font-family: arial;\\n padding: 0 8px;\\n}\";\n\n});\n\nace.define(\"ace/ext/searchbox\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/event\",\"ace/ext/searchbox-css\",\"ace/keyboard/hash_handler\",\"ace/lib/keys\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar event = require(\"../lib/event\");\nvar searchboxCss = require(\"./searchbox-css\");\nvar HashHandler = require(\"../keyboard/hash_handler\").HashHandler;\nvar keyUtil = require(\"../lib/keys\");\nvar nls = require(\"../config\").nls;\nvar MAX_COUNT = 999;\ndom.importCssString(searchboxCss, \"ace_searchbox\", false);\nvar SearchBox = /** @class */ (function () {\n function SearchBox(editor, range, showReplaceForm) {\n var div = dom.createElement(\"div\");\n dom.buildDom([\"div\", { class: \"ace_search right\" },\n [\"span\", { action: \"hide\", class: \"ace_searchbtn_close\" }],\n [\"div\", { class: \"ace_search_form\" },\n [\"input\", { class: \"ace_search_field\", placeholder: nls(\"Search for\"), spellcheck: \"false\" }],\n [\"span\", { action: \"findPrev\", class: \"ace_searchbtn prev\" }, \"\\u200b\"],\n [\"span\", { action: \"findNext\", class: \"ace_searchbtn next\" }, \"\\u200b\"],\n [\"span\", { action: \"findAll\", class: \"ace_searchbtn\", title: \"Alt-Enter\" }, nls(\"All\")]\n ],\n [\"div\", { class: \"ace_replace_form\" },\n [\"input\", { class: \"ace_search_field\", placeholder: nls(\"Replace with\"), spellcheck: \"false\" }],\n [\"span\", { action: \"replaceAndFindNext\", class: \"ace_searchbtn\" }, nls(\"Replace\")],\n [\"span\", { action: \"replaceAll\", class: \"ace_searchbtn\" }, nls(\"All\")]\n ],\n [\"div\", { class: \"ace_search_options\" },\n [\"span\", { action: \"toggleReplace\", class: \"ace_button\", title: nls(\"Toggle Replace mode\"),\n style: \"float:left;margin-top:-2px;padding:0 5px;\" }, \"+\"],\n [\"span\", { class: \"ace_search_counter\" }],\n [\"span\", { action: \"toggleRegexpMode\", class: \"ace_button\", title: nls(\"RegExp Search\") }, \".*\"],\n [\"span\", { action: \"toggleCaseSensitive\", class: \"ace_button\", title: nls(\"CaseSensitive Search\") }, \"Aa\"],\n [\"span\", { action: \"toggleWholeWords\", class: \"ace_button\", title: nls(\"Whole Word Search\") }, \"\\\\b\"],\n [\"span\", { action: \"searchInSelection\", class: \"ace_button\", title: nls(\"Search In Selection\") }, \"S\"]\n ]\n ], div);\n this.element = div.firstChild;\n this.setSession = this.setSession.bind(this);\n this.$init();\n this.setEditor(editor);\n dom.importCssString(searchboxCss, \"ace_searchbox\", editor.container);\n }\n SearchBox.prototype.setEditor = function (editor) {\n editor.searchBox = this;\n editor.renderer.scroller.appendChild(this.element);\n this.editor = editor;\n };\n SearchBox.prototype.setSession = function (e) {\n this.searchRange = null;\n this.$syncOptions(true);\n };\n SearchBox.prototype.$initElements = function (sb) {\n this.searchBox = sb.querySelector(\".ace_search_form\");\n this.replaceBox = sb.querySelector(\".ace_replace_form\");\n this.searchOption = sb.querySelector(\"[action=searchInSelection]\");\n this.replaceOption = sb.querySelector(\"[action=toggleReplace]\");\n this.regExpOption = sb.querySelector(\"[action=toggleRegexpMode]\");\n this.caseSensitiveOption = sb.querySelector(\"[action=toggleCaseSensitive]\");\n this.wholeWordOption = sb.querySelector(\"[action=toggleWholeWords]\");\n this.searchInput = this.searchBox.querySelector(\".ace_search_field\");\n this.replaceInput = this.replaceBox.querySelector(\".ace_search_field\");\n this.searchCounter = sb.querySelector(\".ace_search_counter\");\n };\n SearchBox.prototype.$init = function () {\n var sb = this.element;\n this.$initElements(sb);\n var _this = this;\n event.addListener(sb, \"mousedown\", function (e) {\n setTimeout(function () {\n _this.activeInput.focus();\n }, 0);\n event.stopPropagation(e);\n });\n event.addListener(sb, \"click\", function (e) {\n var t = e.target || e.srcElement;\n var action = t.getAttribute(\"action\");\n if (action && _this[action])\n _this[action]();\n else if (_this.$searchBarKb.commands[action])\n _this.$searchBarKb.commands[action].exec(_this);\n event.stopPropagation(e);\n });\n event.addCommandKeyListener(sb, function (e, hashId, keyCode) {\n var keyString = keyUtil.keyCodeToString(keyCode);\n var command = _this.$searchBarKb.findKeyCommand(hashId, keyString);\n if (command && command.exec) {\n command.exec(_this);\n event.stopEvent(e);\n }\n });\n this.$onChange = lang.delayedCall(function () {\n _this.find(false, false);\n });\n event.addListener(this.searchInput, \"input\", function () {\n _this.$onChange.schedule(20);\n });\n event.addListener(this.searchInput, \"focus\", function () {\n _this.activeInput = _this.searchInput;\n _this.searchInput.value && _this.highlight();\n });\n event.addListener(this.replaceInput, \"focus\", function () {\n _this.activeInput = _this.replaceInput;\n _this.searchInput.value && _this.highlight();\n });\n };\n SearchBox.prototype.setSearchRange = function (range) {\n this.searchRange = range;\n if (range) {\n this.searchRangeMarker = this.editor.session.addMarker(range, \"ace_active-line\");\n }\n else if (this.searchRangeMarker) {\n this.editor.session.removeMarker(this.searchRangeMarker);\n this.searchRangeMarker = null;\n }\n };\n SearchBox.prototype.$syncOptions = function (preventScroll) {\n dom.setCssClass(this.replaceOption, \"checked\", this.searchRange);\n dom.setCssClass(this.searchOption, \"checked\", this.searchOption.checked);\n this.replaceOption.textContent = this.replaceOption.checked ? \"-\" : \"+\";\n dom.setCssClass(this.regExpOption, \"checked\", this.regExpOption.checked);\n dom.setCssClass(this.wholeWordOption, \"checked\", this.wholeWordOption.checked);\n dom.setCssClass(this.caseSensitiveOption, \"checked\", this.caseSensitiveOption.checked);\n var readOnly = this.editor.getReadOnly();\n this.replaceOption.style.display = readOnly ? \"none\" : \"\";\n this.replaceBox.style.display = this.replaceOption.checked && !readOnly ? \"\" : \"none\";\n this.find(false, false, preventScroll);\n };\n SearchBox.prototype.highlight = function (re) {\n this.editor.session.highlight(re || this.editor.$search.$options.re);\n this.editor.renderer.updateBackMarkers();\n };\n SearchBox.prototype.find = function (skipCurrent, backwards, preventScroll) {\n var range = this.editor.find(this.searchInput.value, {\n skipCurrent: skipCurrent,\n backwards: backwards,\n wrap: true,\n regExp: this.regExpOption.checked,\n caseSensitive: this.caseSensitiveOption.checked,\n wholeWord: this.wholeWordOption.checked,\n preventScroll: preventScroll,\n range: this.searchRange\n });\n var noMatch = !range && this.searchInput.value;\n dom.setCssClass(this.searchBox, \"ace_nomatch\", noMatch);\n this.editor._emit(\"findSearchBox\", { match: !noMatch });\n this.highlight();\n this.updateCounter();\n };\n SearchBox.prototype.updateCounter = function () {\n var editor = this.editor;\n var regex = editor.$search.$options.re;\n var supportsUnicodeFlag = regex.unicode;\n var all = 0;\n var before = 0;\n if (regex) {\n var value = this.searchRange\n ? editor.session.getTextRange(this.searchRange)\n : editor.getValue();\n var offset = editor.session.doc.positionToIndex(editor.selection.anchor);\n if (this.searchRange)\n offset -= editor.session.doc.positionToIndex(this.searchRange.start);\n var last = regex.lastIndex = 0;\n var m;\n while ((m = regex.exec(value))) {\n all++;\n last = m.index;\n if (last <= offset)\n before++;\n if (all > MAX_COUNT)\n break;\n if (!m[0]) {\n regex.lastIndex = last += lang.skipEmptyMatch(value, last, supportsUnicodeFlag);\n if (last >= value.length)\n break;\n }\n }\n }\n this.searchCounter.textContent = nls(\"$0 of $1\", [before, (all > MAX_COUNT ? MAX_COUNT + \"+\" : all)]);\n };\n SearchBox.prototype.findNext = function () {\n this.find(true, false);\n };\n SearchBox.prototype.findPrev = function () {\n this.find(true, true);\n };\n SearchBox.prototype.findAll = function () {\n var range = this.editor.findAll(this.searchInput.value, {\n regExp: this.regExpOption.checked,\n caseSensitive: this.caseSensitiveOption.checked,\n wholeWord: this.wholeWordOption.checked\n });\n var noMatch = !range && this.searchInput.value;\n dom.setCssClass(this.searchBox, \"ace_nomatch\", noMatch);\n this.editor._emit(\"findSearchBox\", { match: !noMatch });\n this.highlight();\n this.hide();\n };\n SearchBox.prototype.replace = function () {\n if (!this.editor.getReadOnly())\n this.editor.replace(this.replaceInput.value);\n };\n SearchBox.prototype.replaceAndFindNext = function () {\n if (!this.editor.getReadOnly()) {\n this.editor.replace(this.replaceInput.value);\n this.findNext();\n }\n };\n SearchBox.prototype.replaceAll = function () {\n if (!this.editor.getReadOnly())\n this.editor.replaceAll(this.replaceInput.value);\n };\n SearchBox.prototype.hide = function () {\n this.active = false;\n this.setSearchRange(null);\n this.editor.off(\"changeSession\", this.setSession);\n this.element.style.display = \"none\";\n this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb);\n this.editor.focus();\n };\n SearchBox.prototype.show = function (value, isReplace) {\n this.active = true;\n this.editor.on(\"changeSession\", this.setSession);\n this.element.style.display = \"\";\n this.replaceOption.checked = isReplace;\n if (value)\n this.searchInput.value = value;\n this.searchInput.focus();\n this.searchInput.select();\n this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb);\n this.$syncOptions(true);\n };\n SearchBox.prototype.isFocused = function () {\n var el = document.activeElement;\n return el == this.searchInput || el == this.replaceInput;\n };\n return SearchBox;\n}());\nvar $searchBarKb = new HashHandler();\n$searchBarKb.bindKeys({\n \"Ctrl-f|Command-f\": function (sb) {\n var isReplace = sb.isReplace = !sb.isReplace;\n sb.replaceBox.style.display = isReplace ? \"\" : \"none\";\n sb.replaceOption.checked = false;\n sb.$syncOptions();\n sb.searchInput.focus();\n },\n \"Ctrl-H|Command-Option-F\": function (sb) {\n if (sb.editor.getReadOnly())\n return;\n sb.replaceOption.checked = true;\n sb.$syncOptions();\n sb.replaceInput.focus();\n },\n \"Ctrl-G|Command-G\": function (sb) {\n sb.findNext();\n },\n \"Ctrl-Shift-G|Command-Shift-G\": function (sb) {\n sb.findPrev();\n },\n \"esc\": function (sb) {\n setTimeout(function () { sb.hide(); });\n },\n \"Return\": function (sb) {\n if (sb.activeInput == sb.replaceInput)\n sb.replace();\n sb.findNext();\n },\n \"Shift-Return\": function (sb) {\n if (sb.activeInput == sb.replaceInput)\n sb.replace();\n sb.findPrev();\n },\n \"Alt-Return\": function (sb) {\n if (sb.activeInput == sb.replaceInput)\n sb.replaceAll();\n sb.findAll();\n },\n \"Tab\": function (sb) {\n (sb.activeInput == sb.replaceInput ? sb.searchInput : sb.replaceInput).focus();\n }\n});\n$searchBarKb.addCommands([{\n name: \"toggleRegexpMode\",\n bindKey: { win: \"Alt-R|Alt-/\", mac: \"Ctrl-Alt-R|Ctrl-Alt-/\" },\n exec: function (sb) {\n sb.regExpOption.checked = !sb.regExpOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"toggleCaseSensitive\",\n bindKey: { win: \"Alt-C|Alt-I\", mac: \"Ctrl-Alt-R|Ctrl-Alt-I\" },\n exec: function (sb) {\n sb.caseSensitiveOption.checked = !sb.caseSensitiveOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"toggleWholeWords\",\n bindKey: { win: \"Alt-B|Alt-W\", mac: \"Ctrl-Alt-B|Ctrl-Alt-W\" },\n exec: function (sb) {\n sb.wholeWordOption.checked = !sb.wholeWordOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"toggleReplace\",\n exec: function (sb) {\n sb.replaceOption.checked = !sb.replaceOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"searchInSelection\",\n exec: function (sb) {\n sb.searchOption.checked = !sb.searchRange;\n sb.setSearchRange(sb.searchOption.checked && sb.editor.getSelectionRange());\n sb.$syncOptions();\n }\n }]);\nvar $closeSearchBarKb = new HashHandler([{\n bindKey: \"Esc\",\n name: \"closeSearchBar\",\n exec: function (editor) {\n editor.searchBox.hide();\n }\n }]);\nSearchBox.prototype.$searchBarKb = $searchBarKb;\nSearchBox.prototype.$closeSearchBarKb = $closeSearchBarKb;\nexports.SearchBox = SearchBox;\nexports.Search = function (editor, isReplace) {\n var sb = editor.searchBox || new SearchBox(editor);\n sb.show(editor.session.getTextRange(), isReplace);\n};\n\n}); (function() {\n ace.require([\"ace/ext/searchbox\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|flex-end|flex-start|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\";\nvar supportConstantColor = exports.supportConstantColor = \"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses = exports.pseudoClasses = \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\nvar CssHighlightRules = function () {\n var keywordMapper = this.createKeywordMapper({\n \"support.function\": supportFunction,\n \"support.constant\": supportConstant,\n \"support.type\": supportType,\n \"support.constant.color\": supportConstantColor,\n \"support.constant.fonts\": supportConstantFonts\n }, \"text\", true);\n this.$rules = {\n \"start\": [{\n include: [\"strings\", \"url\", \"comments\"]\n }, {\n token: \"paren.lparen\",\n regex: \"\\\\{\",\n next: \"ruleset\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\"\n }, {\n token: \"string\",\n regex: \"@(?!viewport)\",\n next: \"media\"\n }, {\n token: \"keyword\",\n regex: \"#[a-z0-9-_]+\"\n }, {\n token: \"keyword\",\n regex: \"%\"\n }, {\n token: \"variable\",\n regex: \"\\\\.[a-z0-9-_]+\"\n }, {\n token: \"string\",\n regex: \":[a-z0-9-_]+\"\n }, {\n token: \"constant.numeric\",\n regex: numRe\n }, {\n token: \"constant\",\n regex: \"[a-z0-9-_]+\"\n }, {\n caseInsensitive: true\n }],\n \"media\": [{\n include: [\"strings\", \"url\", \"comments\"]\n }, {\n token: \"paren.lparen\",\n regex: \"\\\\{\",\n next: \"start\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\",\n next: \"start\"\n }, {\n token: \"string\",\n regex: \";\",\n next: \"start\"\n }, {\n token: \"keyword\",\n regex: \"(?:media|supports|document|charset|import|namespace|media|supports|document\"\n + \"|page|font|keyframes|viewport|counter-style|font-feature-values\"\n + \"|swash|ornaments|annotation|stylistic|styleset|character-variant)\"\n }],\n \"comments\": [{\n token: \"comment\",\n regex: \"\\\\/\\\\*\",\n push: [{\n token: \"comment\",\n regex: \"\\\\*\\\\/\",\n next: \"pop\"\n }, {\n defaultToken: \"comment\"\n }]\n }],\n \"ruleset\": [{\n regex: \"-(webkit|ms|moz|o)-\",\n token: \"text\"\n }, {\n token: \"punctuation.operator\",\n regex: \"[:;]\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\",\n next: \"start\"\n }, {\n include: [\"strings\", \"url\", \"comments\"]\n }, {\n token: [\"constant.numeric\", \"keyword\"],\n regex: \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"\n }, {\n token: \"constant.numeric\",\n regex: numRe\n }, {\n token: \"constant.numeric\",\n regex: \"#[a-f0-9]{6}\"\n }, {\n token: \"constant.numeric\",\n regex: \"#[a-f0-9]{3}\"\n }, {\n token: [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n regex: pseudoElements\n }, {\n token: [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n regex: pseudoClasses\n }, {\n include: \"url\"\n }, {\n token: keywordMapper,\n regex: \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n }, {\n caseInsensitive: true\n }],\n url: [{\n token: \"support.function\",\n regex: \"(?:url(:?-prefix)?|domain|regexp)\\\\(\",\n push: [{\n token: \"support.function\",\n regex: \"\\\\)\",\n next: \"pop\"\n }, {\n defaultToken: \"string\"\n }]\n }],\n strings: [{\n token: \"string.start\",\n regex: \"'\",\n push: [{\n token: \"string.end\",\n regex: \"'|$\",\n next: \"pop\"\n }, {\n include: \"escapes\"\n }, {\n token: \"constant.language.escape\",\n regex: /\\\\$/,\n consumeLineEnd: true\n }, {\n defaultToken: \"string\"\n }]\n }, {\n token: \"string.start\",\n regex: '\"',\n push: [{\n token: \"string.end\",\n regex: '\"|$',\n next: \"pop\"\n }, {\n include: \"escapes\"\n }, {\n token: \"constant.language.escape\",\n regex: /\\\\$/,\n consumeLineEnd: true\n }, {\n defaultToken: \"string\"\n }]\n }],\n escapes: [{\n token: \"constant.language.escape\",\n regex: /\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/\n }]\n };\n this.normalizeRules();\n};\noop.inherits(CssHighlightRules, TextHighlightRules);\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar propertyMap = {\n \"background\": { \"#$0\": 1 },\n \"background-color\": { \"#$0\": 1, \"transparent\": 1, \"fixed\": 1 },\n \"background-image\": { \"url('/$0')\": 1 },\n \"background-repeat\": { \"repeat\": 1, \"repeat-x\": 1, \"repeat-y\": 1, \"no-repeat\": 1, \"inherit\": 1 },\n \"background-position\": { \"bottom\": 2, \"center\": 2, \"left\": 2, \"right\": 2, \"top\": 2, \"inherit\": 2 },\n \"background-attachment\": { \"scroll\": 1, \"fixed\": 1 },\n \"background-size\": { \"cover\": 1, \"contain\": 1 },\n \"background-clip\": { \"border-box\": 1, \"padding-box\": 1, \"content-box\": 1 },\n \"background-origin\": { \"border-box\": 1, \"padding-box\": 1, \"content-box\": 1 },\n \"border\": { \"solid $0\": 1, \"dashed $0\": 1, \"dotted $0\": 1, \"#$0\": 1 },\n \"border-color\": { \"#$0\": 1 },\n \"border-style\": { \"solid\": 2, \"dashed\": 2, \"dotted\": 2, \"double\": 2, \"groove\": 2, \"hidden\": 2, \"inherit\": 2, \"inset\": 2, \"none\": 2, \"outset\": 2, \"ridged\": 2 },\n \"border-collapse\": { \"collapse\": 1, \"separate\": 1 },\n \"bottom\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"clear\": { \"left\": 1, \"right\": 1, \"both\": 1, \"none\": 1 },\n \"color\": { \"#$0\": 1, \"rgb(#$00,0,0)\": 1 },\n \"cursor\": { \"default\": 1, \"pointer\": 1, \"move\": 1, \"text\": 1, \"wait\": 1, \"help\": 1, \"progress\": 1, \"n-resize\": 1, \"ne-resize\": 1, \"e-resize\": 1, \"se-resize\": 1, \"s-resize\": 1, \"sw-resize\": 1, \"w-resize\": 1, \"nw-resize\": 1 },\n \"display\": { \"none\": 1, \"block\": 1, \"inline\": 1, \"inline-block\": 1, \"table-cell\": 1 },\n \"empty-cells\": { \"show\": 1, \"hide\": 1 },\n \"float\": { \"left\": 1, \"right\": 1, \"none\": 1 },\n \"font-family\": { \"Arial\": 2, \"Comic Sans MS\": 2, \"Consolas\": 2, \"Courier New\": 2, \"Courier\": 2, \"Georgia\": 2, \"Monospace\": 2, \"Sans-Serif\": 2, \"Segoe UI\": 2, \"Tahoma\": 2, \"Times New Roman\": 2, \"Trebuchet MS\": 2, \"Verdana\": 1 },\n \"font-size\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"font-weight\": { \"bold\": 1, \"normal\": 1 },\n \"font-style\": { \"italic\": 1, \"normal\": 1 },\n \"font-variant\": { \"normal\": 1, \"small-caps\": 1 },\n \"height\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"left\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"letter-spacing\": { \"normal\": 1 },\n \"line-height\": { \"normal\": 1 },\n \"list-style-type\": { \"none\": 1, \"disc\": 1, \"circle\": 1, \"square\": 1, \"decimal\": 1, \"decimal-leading-zero\": 1, \"lower-roman\": 1, \"upper-roman\": 1, \"lower-greek\": 1, \"lower-latin\": 1, \"upper-latin\": 1, \"georgian\": 1, \"lower-alpha\": 1, \"upper-alpha\": 1 },\n \"margin\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-right\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-left\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-top\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-bottom\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"max-height\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"max-width\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"min-height\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"min-width\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"overflow\": { \"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1 },\n \"overflow-x\": { \"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1 },\n \"overflow-y\": { \"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1 },\n \"padding\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-top\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-right\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-bottom\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-left\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"page-break-after\": { \"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1 },\n \"page-break-before\": { \"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1 },\n \"position\": { \"absolute\": 1, \"relative\": 1, \"fixed\": 1, \"static\": 1 },\n \"right\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"table-layout\": { \"fixed\": 1, \"auto\": 1 },\n \"text-decoration\": { \"none\": 1, \"underline\": 1, \"line-through\": 1, \"blink\": 1 },\n \"text-align\": { \"left\": 1, \"right\": 1, \"center\": 1, \"justify\": 1 },\n \"text-transform\": { \"capitalize\": 1, \"uppercase\": 1, \"lowercase\": 1, \"none\": 1 },\n \"top\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"vertical-align\": { \"top\": 1, \"bottom\": 1 },\n \"visibility\": { \"hidden\": 1, \"visible\": 1 },\n \"white-space\": { \"nowrap\": 1, \"normal\": 1, \"pre\": 1, \"pre-line\": 1, \"pre-wrap\": 1 },\n \"width\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"word-spacing\": { \"normal\": 1 },\n \"filter\": { \"alpha(opacity=$0100)\": 1 },\n \"text-shadow\": { \"$02px 2px 2px #777\": 1 },\n \"text-overflow\": { \"ellipsis-word\": 1, \"clip\": 1, \"ellipsis\": 1 },\n \"-moz-border-radius\": 1,\n \"-moz-border-radius-topright\": 1,\n \"-moz-border-radius-bottomright\": 1,\n \"-moz-border-radius-topleft\": 1,\n \"-moz-border-radius-bottomleft\": 1,\n \"-webkit-border-radius\": 1,\n \"-webkit-border-top-right-radius\": 1,\n \"-webkit-border-top-left-radius\": 1,\n \"-webkit-border-bottom-right-radius\": 1,\n \"-webkit-border-bottom-left-radius\": 1,\n \"-moz-box-shadow\": 1,\n \"-webkit-box-shadow\": 1,\n \"transform\": { \"rotate($00deg)\": 1, \"skew($00deg)\": 1 },\n \"-moz-transform\": { \"rotate($00deg)\": 1, \"skew($00deg)\": 1 },\n \"-webkit-transform\": { \"rotate($00deg)\": 1, \"skew($00deg)\": 1 }\n};\nvar CssCompletions = function () {\n};\n(function () {\n this.completionsDefined = false;\n this.defineCompletions = function () {\n if (document) {\n var style = document.createElement('c').style;\n for (var i in style) {\n if (typeof style[i] !== 'string')\n continue;\n var name = i.replace(/[A-Z]/g, function (x) {\n return '-' + x.toLowerCase();\n });\n if (!propertyMap.hasOwnProperty(name))\n propertyMap[name] = 1;\n }\n }\n this.completionsDefined = true;\n };\n this.getCompletions = function (state, session, pos, prefix) {\n if (!this.completionsDefined) {\n this.defineCompletions();\n }\n if (state === 'ruleset' || session.$mode.$id == \"ace/mode/scss\") {\n var line = session.getLine(pos.row).substr(0, pos.column);\n var inParens = /\\([^)]*$/.test(line);\n if (inParens) {\n line = line.substr(line.lastIndexOf('(') + 1);\n }\n if (/:[^;]+$/.test(line)) {\n /([\\w\\-]+):[^:]*$/.test(line);\n return this.getPropertyValueCompletions(state, session, pos, prefix);\n }\n else {\n return this.getPropertyCompletions(state, session, pos, prefix, inParens);\n }\n }\n return [];\n };\n this.getPropertyCompletions = function (state, session, pos, prefix, skipSemicolon) {\n skipSemicolon = skipSemicolon || false;\n var properties = Object.keys(propertyMap);\n return properties.map(function (property) {\n return {\n caption: property,\n snippet: property + ': $0' + (skipSemicolon ? '' : ';'),\n meta: \"property\",\n score: 1000000\n };\n });\n };\n this.getPropertyValueCompletions = function (state, session, pos, prefix) {\n var line = session.getLine(pos.row).substr(0, pos.column);\n var property = (/([\\w\\-]+):[^:]*$/.exec(line) || {})[1];\n if (!property)\n return [];\n var values = [];\n if (property in propertyMap && typeof propertyMap[property] === \"object\") {\n values = Object.keys(propertyMap[property]);\n }\n return values.map(function (value) {\n return {\n caption: value,\n snippet: value,\n meta: \"property value\",\n score: 1000000\n };\n });\n };\n}).call(CssCompletions.prototype);\nexports.CssCompletions = CssCompletions;\n\n});\n\nace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar CstyleBehaviour = require(\"./cstyle\").CstyleBehaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar CssBehaviour = function () {\n this.inherit(CstyleBehaviour);\n this.add(\"colon\", \"insertion\", function (state, action, editor, session, text) {\n if (text === ':' && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.value.match(/\\s+/)) {\n token = iterator.stepBackward();\n }\n if (token && token.type === 'support.type') {\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === ':') {\n return {\n text: '',\n selection: [1, 1]\n };\n }\n if (/^(\\s+[^;]|\\s*$)/.test(line.substring(cursor.column))) {\n return {\n text: ':;',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"colon\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected === ':') {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.value.match(/\\s+/)) {\n token = iterator.stepBackward();\n }\n if (token && token.type === 'support.type') {\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar === ';') {\n range.end.column++;\n return range;\n }\n }\n }\n });\n this.add(\"semicolon\", \"insertion\", function (state, action, editor, session, text) {\n if (text === ';' && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === ';') {\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"!important\", \"insertion\", function (state, action, editor, session, text) {\n if (text === '!' && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (/^\\s*(;|}|$)/.test(line.substring(cursor.column))) {\n return {\n text: '!important',\n selection: [10, 10]\n };\n }\n }\n });\n};\noop.inherits(CssBehaviour, CstyleBehaviour);\nexports.CssBehaviour = CssBehaviour;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CssCompletions = require(\"./css_completions\").CssCompletions;\nvar CssBehaviour = require(\"./behaviour/css\").CssBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = CssHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CssBehaviour();\n this.$completer = new CssCompletions();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.foldingRules = \"cStyle\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n var match = line.match(/^.*\\{\\s*$/);\n if (match) {\n indent += tab;\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.getCompletions = function (state, session, pos, prefix) {\n return this.$completer.getCompletions(state, session, pos, prefix);\n };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/css_worker\", \"Worker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"annotate\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/css\";\n this.snippetFileId = \"ace/snippets/css\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/css\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar DocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n }, DocCommentHighlightRules.getTagRule(), {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ]\n };\n};\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\nDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/golang_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar GolangHighlightRules = function () {\n var keywords = (\"else|break|case|return|goto|if|const|select|\" +\n \"continue|struct|default|switch|for|range|\" +\n \"func|import|package|chan|defer|fallthrough|go|interface|map|range|\" +\n \"select|type|var\");\n var builtinTypes = (\"string|uint8|uint16|uint32|uint64|int8|int16|int32|int64|float32|\" +\n \"float64|complex64|complex128|byte|rune|uint|int|uintptr|bool|error\");\n var builtinFunctions = (\"new|close|cap|copy|panic|panicln|print|println|len|make|delete|real|recover|imag|append\");\n var builtinConstants = (\"nil|true|false|iota\");\n var keywordMapper = this.createKeywordMapper({\n \"keyword\": keywords,\n \"constant.language\": builtinConstants,\n \"support.function\": builtinFunctions,\n \"support.type\": builtinTypes\n }, \"\");\n var stringEscapeRe = \"\\\\\\\\(?:[0-7]{3}|x\\\\h{2}|u{4}|U\\\\h{6}|[abfnrtv'\\\"\\\\\\\\])\".replace(/\\\\h/g, \"[a-fA-F\\\\d]\");\n this.$rules = {\n \"start\": [\n {\n token: \"comment\",\n regex: \"\\\\/\\\\/.*$\"\n },\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n {\n token: \"comment.start\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"string\",\n regex: /\"(?:[^\"\\\\]|\\\\.)*?\"/\n }, {\n token: \"string\",\n regex: '`',\n next: \"bqstring\"\n }, {\n token: \"constant.numeric\",\n regex: \"'(?:[^\\\\'\\uD800-\\uDBFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|\" + stringEscapeRe.replace('\"', '') + \")'\"\n }, {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token: [\"keyword\", \"text\", \"entity.name.function\"],\n regex: \"(func)(\\\\s+)([a-zA-Z_$][a-zA-Z0-9_$]*)\\\\b\"\n }, {\n token: function (val) {\n if (val[val.length - 1] == \"(\") {\n return [{\n type: keywordMapper(val.slice(0, -1)) || \"support.function\",\n value: val.slice(0, -1)\n }, {\n type: \"paren.lparen\",\n value: val.slice(-1)\n }];\n }\n return keywordMapper(val) || \"identifier\";\n },\n regex: \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\\\\(?\"\n }, {\n token: \"keyword.operator\",\n regex: \"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=\"\n }, {\n token: \"punctuation.operator\",\n regex: \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}]\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"comment\": [\n {\n token: \"comment.end\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ],\n \"bqstring\": [\n {\n token: \"string\",\n regex: '`',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }\n ]\n };\n this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"start\")]);\n};\noop.inherits(GolangHighlightRules, TextHighlightRules);\nexports.GolangHighlightRules = GolangHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/golang\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/golang_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar GolangHighlightRules = require(\"./golang_highlight_rules\").GolangHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = GolangHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.foldingRules = new CStyleFoldMode();\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n var endState = tokenizedLine.state;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n }; //end getNextLineIndent\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.$id = \"ace/mode/golang\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/golang\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/jsdoc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JsDocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: [\"comment.doc.tag\", \"comment.doc.text\", \"lparen.doc\"],\n regex: \"(@(?:param|member|typedef|property|namespace|var|const|callback))(\\\\s*)({)\",\n push: [\n {\n token: \"lparen.doc\",\n regex: \"{\",\n push: [\n {\n include: \"doc-syntax\"\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }\n ]\n }, {\n token: [\"rparen.doc\", \"text.doc\", \"variable.parameter.doc\", \"lparen.doc\", \"variable.parameter.doc\", \"rparen.doc\"],\n regex: /(})(\\s*)(?:([\\w=:\\/\\.]+)|(?:(\\[)([\\w=:\\/\\.]+)(\\])))/,\n next: \"pop\"\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }, {\n include: \"doc-syntax\"\n }, {\n defaultToken: \"text.doc\"\n }\n ]\n }, {\n token: [\"comment.doc.tag\", \"text.doc\", \"lparen.doc\"],\n regex: \"(@(?:returns?|yields|type|this|suppress|public|protected|private|package|modifies|\"\n + \"implements|external|exception|throws|enum|define|extends))(\\\\s*)({)\",\n push: [\n {\n token: \"lparen.doc\",\n regex: \"{\",\n push: [\n {\n include: \"doc-syntax\"\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }\n ]\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }, {\n include: \"doc-syntax\"\n }, {\n defaultToken: \"text.doc\"\n }\n ]\n }, {\n token: [\"comment.doc.tag\", \"text.doc\", \"variable.parameter.doc\"],\n regex: \"(@(?:alias|memberof|instance|module|name|lends|namespace|external|this|template|\"\n + \"requires|param|implements|function|extends|typedef|mixes|constructor|var|\"\n + \"memberof\\\\!|event|listens|exports|class|constructs|interface|emits|fires|\"\n + \"throws|const|callback|borrows|augments))(\\\\s+)(\\\\w[\\\\w#\\.:\\/~\\\"\\\\-]*)?\"\n }, {\n token: [\"comment.doc.tag\", \"text.doc\", \"variable.parameter.doc\"],\n regex: \"(@method)(\\\\s+)(\\\\w[\\\\w\\.\\\\(\\\\)]*)\"\n }, {\n token: \"comment.doc.tag\",\n regex: \"@access\\\\s+(?:private|public|protected)\"\n }, {\n token: \"comment.doc.tag\",\n regex: \"@kind\\\\s+(?:class|constant|event|external|file|function|member|mixin|module|namespace|typedef)\"\n }, {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n },\n JsDocCommentHighlightRules.getTagRule(),\n {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ],\n \"doc-syntax\": [{\n token: \"operator.doc\",\n regex: /[|:]/\n }, {\n token: \"paren.doc\",\n regex: /[\\[\\]]/\n }]\n };\n this.normalizeRules();\n};\noop.inherits(JsDocCommentHighlightRules, TextHighlightRules);\nJsDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nJsDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nJsDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.JsDocCommentHighlightRules = JsDocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/jsdoc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./jsdoc_comment_highlight_rules\").JsDocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\nvar JavaScriptHighlightRules = function (options) {\n var keywordMapper = this.createKeywordMapper({\n \"variable.language\": \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|\" + // Constructors\n \"Namespace|QName|XML|XMLList|\" + // E4X\n \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\" +\n \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\" +\n \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\" + // Errors\n \"SyntaxError|TypeError|URIError|\" +\n \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n \"isNaN|parseFloat|parseInt|\" +\n \"JSON|Math|\" + // Other\n \"this|arguments|prototype|window|document\",\n \"keyword\": \"const|yield|import|get|set|async|await|\" +\n \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static|constructor\",\n \"storage.type\": \"const|let|var|function\",\n \"constant.language\": \"null|Infinity|NaN|undefined\",\n \"support.function\": \"alert\",\n \"constant.language.boolean\": \"true|false\"\n }, \"identifier\");\n var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n \"u[0-9a-fA-F]{4}|\" + // unicode\n \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n \"[0-2][0-7]{0,2}|\" + // oct\n \"3[0-7][0-7]?|\" + // oct\n \"[4-7][0-7]?|\" + //oct\n \".)\";\n this.$rules = {\n \"no_regex\": [\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n comments(\"no_regex\"),\n {\n token: \"string\",\n regex: \"'(?=.)\",\n next: \"qstring\"\n }, {\n token: \"string\",\n regex: '\"(?=.)',\n next: \"qqstring\"\n }, {\n token: \"constant.numeric\",\n regex: /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/\n }, {\n token: \"constant.numeric\",\n regex: /(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"support.function\",\n \"punctuation.operator\", \"entity.name.function\", \"text\", \"keyword.operator\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)\",\n next: \"function_arguments\"\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\",\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex: \"(function\\\\*?)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"entity.name.function\", \"text\", \"punctuation.operator\",\n \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex: \"(:)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: \"keyword\",\n regex: \"from(?=\\\\s*('|\\\"))\"\n }, {\n token: \"keyword\",\n regex: \"(?:\" + kwBeforeRe + \")\\\\b\",\n next: \"start\"\n }, {\n token: \"support.constant\",\n regex: /that\\b/\n }, {\n token: [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n regex: /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n }, {\n token: keywordMapper,\n regex: identifierRe\n }, {\n token: \"punctuation.operator\",\n regex: /[.](?![.])/,\n next: \"property\"\n }, {\n token: \"storage.type\",\n regex: /=>/,\n next: \"start\"\n }, {\n token: \"keyword.operator\",\n regex: /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n next: \"start\"\n }, {\n token: \"punctuation.operator\",\n regex: /[?:,;.]/,\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: /[\\[({]/,\n next: \"start\"\n }, {\n token: \"paren.rparen\",\n regex: /[\\])}]/\n }, {\n token: \"comment\",\n regex: /^#!.*$/\n }\n ],\n property: [{\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\",\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: \"punctuation.operator\",\n regex: /[.](?![.])/\n }, {\n token: \"support.function\",\n regex: /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|lter|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward|rEach)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n }, {\n token: \"support.function.dom\",\n regex: /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n }, {\n token: \"support.constant\",\n regex: /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n }, {\n token: \"identifier\",\n regex: identifierRe\n }, {\n regex: \"\",\n token: \"empty\",\n next: \"no_regex\"\n }\n ],\n \"start\": [\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n comments(\"start\"),\n {\n token: \"string.regexp\",\n regex: \"\\\\/\",\n next: \"regex\"\n }, {\n token: \"text\",\n regex: \"\\\\s+|^$\",\n next: \"start\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"regex\": [\n {\n token: \"regexp.keyword.operator\",\n regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n }, {\n token: \"string.regexp\",\n regex: \"/[sxngimy]*\",\n next: \"no_regex\"\n }, {\n token: \"invalid\",\n regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n }, {\n token: \"constant.language.escape\",\n regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n }, {\n token: \"constant.language.delimiter\",\n regex: /\\|/\n }, {\n token: \"constant.language.escape\",\n regex: /\\[\\^?/,\n next: \"regex_character_class\"\n }, {\n token: \"empty\",\n regex: \"$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string.regexp\"\n }\n ],\n \"regex_character_class\": [\n {\n token: \"regexp.charclass.keyword.operator\",\n regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n }, {\n token: \"constant.language.escape\",\n regex: \"]\",\n next: \"regex\"\n }, {\n token: \"constant.language.escape\",\n regex: \"-\"\n }, {\n token: \"empty\",\n regex: \"$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string.regexp.charachterclass\"\n }\n ],\n \"default_parameter\": [\n {\n token: \"string\",\n regex: \"'(?=.)\",\n push: [\n {\n token: \"string\",\n regex: \"'|$\",\n next: \"pop\"\n }, {\n include: \"qstring\"\n }\n ]\n }, {\n token: \"string\",\n regex: '\"(?=.)',\n push: [\n {\n token: \"string\",\n regex: '\"|$',\n next: \"pop\"\n }, {\n include: \"qqstring\"\n }\n ]\n }, {\n token: \"constant.language\",\n regex: \"null|Infinity|NaN|undefined\"\n }, {\n token: \"constant.numeric\",\n regex: /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/\n }, {\n token: \"constant.numeric\",\n regex: /(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/\n }, {\n token: \"punctuation.operator\",\n regex: \",\",\n next: \"function_arguments\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n token: \"punctuation.operator\",\n regex: \"$\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"function_arguments\": [\n comments(\"function_arguments\"),\n {\n token: \"variable.parameter\",\n regex: identifierRe\n }, {\n token: \"punctuation.operator\",\n regex: \",\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n token: \"punctuation.operator\",\n regex: \"$\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"qqstring\": [\n {\n token: \"constant.language.escape\",\n regex: escapedRe\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n consumeLineEnd: true\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"no_regex\"\n }, {\n defaultToken: \"string\"\n }\n ],\n \"qstring\": [\n {\n token: \"constant.language.escape\",\n regex: escapedRe\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n consumeLineEnd: true\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string\"\n }\n ]\n };\n if (!options || !options.noES6) {\n this.$rules.no_regex.unshift({\n regex: \"[{}]\", onMatch: function (val, state, stack) {\n this.next = val == \"{\" ? this.nextState : \"\";\n if (val == \"{\" && stack.length) {\n stack.unshift(\"start\", state);\n }\n else if (val == \"}\" && stack.length) {\n stack.shift();\n this.next = stack.shift();\n if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n return \"paren.quasi.end\";\n }\n return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n },\n nextState: \"start\"\n }, {\n token: \"string.quasi.start\",\n regex: /`/,\n push: [{\n token: \"constant.language.escape\",\n regex: escapedRe\n }, {\n token: \"paren.quasi.start\",\n regex: /\\${/,\n push: \"start\"\n }, {\n token: \"string.quasi.end\",\n regex: /`/,\n next: \"pop\"\n }, {\n defaultToken: \"string.quasi\"\n }]\n }, {\n token: [\"variable.parameter\", \"text\"],\n regex: \"(\" + identifierRe + \")(\\\\s*)(?=\\\\=>)\"\n }, {\n token: \"paren.lparen\",\n regex: \"(\\\\()(?=.+\\\\s*=>)\",\n next: \"function_arguments\"\n }, {\n token: \"variable.language\",\n regex: \"(?:(?:(?:Weak)?(?:Set|Map))|Promise)\\\\b\"\n });\n this.$rules[\"function_arguments\"].unshift({\n token: \"keyword.operator\",\n regex: \"=\",\n next: \"default_parameter\"\n }, {\n token: \"keyword.operator\",\n regex: \"\\\\.{3}\"\n });\n this.$rules[\"property\"].unshift({\n token: \"support.function\",\n regex: \"(findIndex|repeat|startsWith|endsWith|includes|isSafeInteger|trunc|cbrt|log2|log10|sign|then|catch|\"\n + \"finally|resolve|reject|race|any|all|allSettled|keys|entries|isInteger)\\\\b(?=\\\\()\"\n }, {\n token: \"constant.language\",\n regex: \"(?:MAX_SAFE_INTEGER|MIN_SAFE_INTEGER|EPSILON)\\\\b\"\n });\n if (!options || options.jsx != false)\n JSX.call(this);\n }\n this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"no_regex\")]);\n this.normalizeRules();\n};\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\nfunction JSX() {\n var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n var jsxTag = {\n onMatch: function (val, state, stack) {\n var offset = val.charAt(1) == \"/\" ? 2 : 1;\n if (offset == 1) {\n if (state != this.nextState)\n stack.unshift(this.next, this.nextState, 0);\n else\n stack.unshift(this.next);\n stack[2]++;\n }\n else if (offset == 2) {\n if (state == this.nextState) {\n stack[1]--;\n if (!stack[1] || stack[1] < 0) {\n stack.shift();\n stack.shift();\n }\n }\n }\n return [{\n type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n value: val.slice(0, offset)\n }, {\n type: \"meta.tag.tag-name.xml\",\n value: val.substr(offset)\n }];\n },\n regex: \"\",\n onMatch: function (value, currentState, stack) {\n if (currentState == stack[0])\n stack.shift();\n if (value.length == 2) {\n if (stack[0] == this.nextState)\n stack[1]--;\n if (!stack[1] || stack[1] < 0) {\n stack.splice(0, 2);\n }\n }\n this.next = stack[0] || \"start\";\n return [{ type: this.token, value: value }];\n },\n nextState: \"jsx\"\n },\n jsxJsRule,\n comments(\"jsxAttributes\"),\n {\n token: \"entity.other.attribute-name.xml\",\n regex: tagRegex\n }, {\n token: \"keyword.operator.attribute-equals.xml\",\n regex: \"=\"\n }, {\n token: \"text.tag-whitespace.xml\",\n regex: \"\\\\s+\"\n }, {\n token: \"string.attribute-value.xml\",\n regex: \"'\",\n stateName: \"jsx_attr_q\",\n push: [\n { token: \"string.attribute-value.xml\", regex: \"'\", next: \"pop\" },\n { include: \"reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }, {\n token: \"string.attribute-value.xml\",\n regex: '\"',\n stateName: \"jsx_attr_qq\",\n push: [\n { token: \"string.attribute-value.xml\", regex: '\"', next: \"pop\" },\n { include: \"reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n },\n jsxTag\n ];\n this.$rules.reference = [{\n token: \"constant.language.escape.reference.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }];\n}\nfunction comments(next) {\n return [\n {\n token: \"comment\",\n regex: /\\/\\*/,\n next: [\n DocCommentHighlightRules.getTagRule(),\n { token: \"comment\", regex: \"\\\\*\\\\/\", next: next || \"pop\" },\n { defaultToken: \"comment\", caseInsensitive: true }\n ]\n }, {\n token: \"comment\",\n regex: \"\\\\/\\\\/\",\n next: [\n DocCommentHighlightRules.getTagRule(),\n { token: \"comment\", regex: \"$|^\", next: next || \"pop\" },\n { defaultToken: \"comment\", caseInsensitive: true }\n ]\n }\n ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = JavaScriptHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CstyleBehaviour();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.$quotes = { '\"': '\"', \"'\": \"'\", \"`\": \"`\" };\n this.$pairQuotesAfter = {\n \"`\": /\\w/\n };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n var endState = tokenizedLine.state;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\" || state == \"no_regex\") {\n var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n else if (state == \"doc-start\") {\n if (endState == \"start\" || endState == \"no_regex\") {\n return \"\";\n }\n var match = line.match(/^\\s*(\\/?)\\*/);\n if (match) {\n if (match[1]) {\n indent += \" \";\n }\n indent += \"* \";\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"annotate\", function (results) {\n session.setAnnotations(results.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/javascript\";\n this.snippetFileId = \"ace/snippets/javascript\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/javascript\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/json_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JsonHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"variable\",\n regex: '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]\\\\s*(?=:)'\n }, {\n token: \"string\",\n regex: '\"',\n next: \"string\"\n }, {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token: \"constant.language.boolean\",\n regex: \"(?:true|false)\\\\b\"\n }, {\n token: \"text\",\n regex: \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token: \"comment\",\n regex: \"\\\\/\\\\/.*$\"\n }, {\n token: \"comment.start\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}]\"\n }, {\n token: \"punctuation.operator\",\n regex: /[,]/\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"string\": [\n {\n token: \"constant.language.escape\",\n regex: /\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[\"\\\\\\/bfnrt])/\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }\n ],\n \"comment\": [\n {\n token: \"comment.end\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ]\n };\n};\noop.inherits(JsonHighlightRules, TextHighlightRules);\nexports.JsonHighlightRules = JsonHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/json\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/json_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\",\"ace/worker/worker_client\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar HighlightRules = require(\"./json_highlight_rules\").JsonHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar Mode = function () {\n this.HighlightRules = HighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = this.$defaultBehaviour;\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/json_worker\", \"JsonWorker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"annotate\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/json\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/json\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar DocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n }, DocCommentHighlightRules.getTagRule(), {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ]\n };\n};\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\nDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/jsx_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JsxHighlightRules = function () {\n var keywords = lang.arrayToMap((\"break|do|instanceof|typeof|case|else|new|var|catch|finally|return|void|continue|for|switch|default|while|function|this|\" +\n \"if|throw|\" +\n \"delete|in|try|\" +\n \"class|extends|super|import|from|into|implements|interface|static|mixin|override|abstract|final|\" +\n \"number|int|string|boolean|variant|\" +\n \"log|assert\").split(\"|\"));\n var buildinConstants = lang.arrayToMap((\"null|true|false|NaN|Infinity|__FILE__|__LINE__|undefined\").split(\"|\"));\n var reserved = lang.arrayToMap((\"debugger|with|\" +\n \"const|export|\" +\n \"let|private|public|yield|protected|\" +\n \"extern|native|as|operator|__fake__|__readonly__\").split(\"|\"));\n var identifierRe = \"[a-zA-Z_][a-zA-Z0-9_]*\\\\b\";\n this.$rules = {\n \"start\": [\n {\n token: \"comment\",\n regex: \"\\\\/\\\\/.*$\"\n },\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n {\n token: \"comment\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"string.regexp\",\n regex: \"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"\n }, {\n token: \"string\",\n regex: '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n }, {\n token: \"string\",\n regex: \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token: \"constant.language.boolean\",\n regex: \"(?:true|false)\\\\b\"\n }, {\n token: [\n \"storage.type\",\n \"text\",\n \"entity.name.function\"\n ],\n regex: \"(function)(\\\\s+)(\" + identifierRe + \")\"\n }, {\n token: function (value) {\n if (value == \"this\")\n return \"variable.language\";\n else if (value == \"function\")\n return \"storage.type\";\n else if (keywords.hasOwnProperty(value) || reserved.hasOwnProperty(value))\n return \"keyword\";\n else if (buildinConstants.hasOwnProperty(value))\n return \"constant.language\";\n else if (/^_?[A-Z][a-zA-Z0-9_]*$/.test(value))\n return \"language.support.class\";\n else\n return \"identifier\";\n },\n regex: identifierRe\n }, {\n token: \"keyword.operator\",\n regex: \"!|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"\n }, {\n token: \"punctuation.operator\",\n regex: \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({<]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}>]\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"comment\": [\n {\n token: \"comment\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ]\n };\n this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"start\")]);\n};\noop.inherits(JsxHighlightRules, TextHighlightRules);\nexports.JsxHighlightRules = JsxHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/jsx\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/jsx_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JsxHighlightRules = require(\"./jsx_highlight_rules\").JsxHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nfunction Mode() {\n this.HighlightRules = JsxHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = this.$defaultBehaviour;\n this.foldingRules = new CStyleFoldMode();\n}\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.$id = \"ace/mode/jsx\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/jsx\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/python_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){/*\n * TODO: python delimiters\n */\n\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar PythonHighlightRules = function () {\n var keywords = (\"and|as|assert|break|class|continue|def|del|elif|else|except|exec|\" +\n \"finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|\" +\n \"raise|return|try|while|with|yield|async|await|nonlocal\");\n var builtinConstants = (\"True|False|None|NotImplemented|Ellipsis|__debug__\");\n var builtinFunctions = (\"abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|\" +\n \"eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|\" +\n \"binfile|bin|iter|property|tuple|bool|filter|len|range|type|bytearray|\" +\n \"float|list|raw_input|unichr|callable|format|locals|reduce|unicode|\" +\n \"chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|\" +\n \"cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|\" +\n \"__import__|complex|hash|min|apply|delattr|help|next|setattr|set|\" +\n \"buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern|\" +\n \"ascii|breakpoint|bytes\");\n var keywordMapper = this.createKeywordMapper({\n \"invalid.deprecated\": \"debugger\",\n \"support.function\": builtinFunctions,\n \"variable.language\": \"self|cls\",\n \"constant.language\": builtinConstants,\n \"keyword\": keywords\n }, \"identifier\");\n var strPre = \"[uU]?\";\n var strRawPre = \"[rR]\";\n var strFormatPre = \"[fF]\";\n var strRawFormatPre = \"(?:[rR][fF]|[fF][rR])\";\n var decimalInteger = \"(?:(?:[1-9]\\\\d*)|(?:0))\";\n var octInteger = \"(?:0[oO]?[0-7]+)\";\n var hexInteger = \"(?:0[xX][\\\\dA-Fa-f]+)\";\n var binInteger = \"(?:0[bB][01]+)\";\n var integer = \"(?:\" + decimalInteger + \"|\" + octInteger + \"|\" + hexInteger + \"|\" + binInteger + \")\";\n var exponent = \"(?:[eE][+-]?\\\\d+)\";\n var fraction = \"(?:\\\\.\\\\d+)\";\n var intPart = \"(?:\\\\d+)\";\n var pointFloat = \"(?:(?:\" + intPart + \"?\" + fraction + \")|(?:\" + intPart + \"\\\\.))\";\n var exponentFloat = \"(?:(?:\" + pointFloat + \"|\" + intPart + \")\" + exponent + \")\";\n var floatNumber = \"(?:\" + exponentFloat + \"|\" + pointFloat + \")\";\n var stringEscape = \"\\\\\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\\\\\abfnrtv'\\\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})\";\n this.$rules = {\n \"start\": [{\n token: \"comment\",\n regex: \"#.*$\"\n }, {\n token: \"string\",\n regex: strPre + '\"{3}',\n next: \"qqstring3\"\n }, {\n token: \"string\",\n regex: strPre + '\"(?=.)',\n next: \"qqstring\"\n }, {\n token: \"string\",\n regex: strPre + \"'{3}\",\n next: \"qstring3\"\n }, {\n token: \"string\",\n regex: strPre + \"'(?=.)\",\n next: \"qstring\"\n }, {\n token: \"string\",\n regex: strRawPre + '\"{3}',\n next: \"rawqqstring3\"\n }, {\n token: \"string\",\n regex: strRawPre + '\"(?=.)',\n next: \"rawqqstring\"\n }, {\n token: \"string\",\n regex: strRawPre + \"'{3}\",\n next: \"rawqstring3\"\n }, {\n token: \"string\",\n regex: strRawPre + \"'(?=.)\",\n next: \"rawqstring\"\n }, {\n token: \"string\",\n regex: strFormatPre + '\"{3}',\n next: \"fqqstring3\"\n }, {\n token: \"string\",\n regex: strFormatPre + '\"(?=.)',\n next: \"fqqstring\"\n }, {\n token: \"string\",\n regex: strFormatPre + \"'{3}\",\n next: \"fqstring3\"\n }, {\n token: \"string\",\n regex: strFormatPre + \"'(?=.)\",\n next: \"fqstring\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + '\"{3}',\n next: \"rfqqstring3\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + '\"(?=.)',\n next: \"rfqqstring\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + \"'{3}\",\n next: \"rfqstring3\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + \"'(?=.)\",\n next: \"rfqstring\"\n }, {\n token: \"keyword.operator\",\n regex: \"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|%|@|<<|>>|&|\\\\||\\\\^|~|<|>|<=|=>|==|!=|<>|=\"\n }, {\n token: \"punctuation\",\n regex: \",|:|;|\\\\->|\\\\+=|\\\\-=|\\\\*=|\\\\/=|\\\\/\\\\/=|%=|@=|&=|\\\\|=|^=|>>=|<<=|\\\\*\\\\*=\"\n }, {\n token: \"paren.lparen\",\n regex: \"[\\\\[\\\\(\\\\{]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\]\\\\)\\\\}]\"\n }, {\n token: [\"keyword\", \"text\", \"entity.name.function\"],\n regex: \"(def|class)(\\\\s+)([\\\\u00BF-\\\\u1FFF\\\\u2C00-\\\\uD7FF\\\\w]+)\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n include: \"constants\"\n }],\n \"qqstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"qstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"qqstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"qqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"qstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"qstring\"\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqqstring3\": [{\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqstring3\": [{\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqqstring\": [{\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"rawqqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqstring\": [{\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"rawqstring\"\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqqstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqqstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"fqqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqqstring3\": [{\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqstring3\": [{\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqqstring\": [{\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"rfqqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqstring\": [{\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqstringParRules\": [{\n token: \"paren.lparen\",\n regex: \"[\\\\[\\\\(]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\]\\\\)]\"\n }, {\n token: \"string\",\n regex: \"\\\\s+\"\n }, {\n token: \"string\",\n regex: \"'[^']*'\"\n }, {\n token: \"string\",\n regex: '\"[^\"]*\"'\n }, {\n token: \"function.support\",\n regex: \"(!s|!r|!a)\"\n }, {\n include: \"constants\"\n }, {\n token: 'paren.rparen',\n regex: \"}\",\n next: 'pop'\n }, {\n token: 'paren.lparen',\n regex: \"{\",\n push: \"fqstringParRules\"\n }],\n \"constants\": [{\n token: \"constant.numeric\",\n regex: \"(?:\" + floatNumber + \"|\\\\d+)[jJ]\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: floatNumber\n }, {\n token: \"constant.numeric\",\n regex: integer + \"[lL]\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: integer + \"\\\\b\"\n }, {\n token: [\"punctuation\", \"function.support\"],\n regex: \"(\\\\.)([a-zA-Z_]+)\\\\b\"\n }, {\n token: keywordMapper,\n regex: \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n }]\n };\n this.normalizeRules();\n};\noop.inherits(PythonHighlightRules, TextHighlightRules);\nexports.PythonHighlightRules = PythonHighlightRules;\n\n});\n\nace.define(\"ace/mode/folding/pythonic\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (markers) {\n this.foldingStartMarker = new RegExp(\"([\\\\[{])(?:\\\\s*)$|(\" + markers + \")(?:\\\\s*)(?:#.*)?$\");\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n var line = session.getLine(row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, match.index);\n if (match[2])\n return this.indentationBlock(session, row, match.index + match[2].length);\n return this.indentationBlock(session, row);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/python\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/python_highlight_rules\",\"ace/mode/folding/pythonic\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar PythonHighlightRules = require(\"./python_highlight_rules\").PythonHighlightRules;\nvar PythonFoldMode = require(\"./folding/pythonic\").FoldMode;\nvar Range = require(\"../range\").Range;\nvar Mode = function () {\n this.HighlightRules = PythonHighlightRules;\n this.foldingRules = new PythonFoldMode(\"\\\\:\");\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"#\";\n this.$pairQuotesAfter = {\n \"'\": /[ruf]/i,\n '\"': /[ruf]/i\n };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[:]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n };\n var outdents = {\n \"pass\": 1,\n \"return\": 1,\n \"raise\": 1,\n \"break\": 1,\n \"continue\": 1\n };\n this.checkOutdent = function (state, line, input) {\n if (input !== \"\\r\\n\" && input !== \"\\r\" && input !== \"\\n\")\n return false;\n var tokens = this.getTokenizer().getLineTokens(line.trim(), state).tokens;\n if (!tokens)\n return false;\n do {\n var last = tokens.pop();\n } while (last && (last.type == \"comment\" || (last.type == \"text\" && last.value.match(/^\\s+$/))));\n if (!last)\n return false;\n return (last.type == \"keyword\" && outdents[last.value]);\n };\n this.autoOutdent = function (state, doc, row) {\n row += 1;\n var indent = this.$getIndent(doc.getLine(row));\n var tab = doc.getTabString();\n if (indent.slice(-tab.length) == tab)\n doc.remove(new Range(row, indent.length - tab.length, row, indent.length));\n };\n this.$id = \"ace/mode/python\";\n this.snippetFileId = \"ace/snippets/python\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/python\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar XmlHighlightRules = function (normalize) {\n var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n this.$rules = {\n start: [\n { token: \"string.cdata.xml\", regex: \"<\\\\!\\\\[CDATA\\\\[\", next: \"cdata\" },\n {\n token: [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n regex: \"(<\\\\?)(\" + tagRegex + \")\", next: \"processing_instruction\"\n },\n { token: \"comment.start.xml\", regex: \"<\\\\!--\", next: \"comment\" },\n {\n token: [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n regex: \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next: \"doctype\", caseInsensitive: true\n },\n { include: \"tag\" },\n { token: \"text.end-tag-open.xml\", regex: \"\",\n next: \"start\"\n }],\n doctype: [\n { include: \"whitespace\" },\n { include: \"string\" },\n { token: \"xml-pe.doctype.xml\", regex: \">\", next: \"start\" },\n { token: \"xml-pe.xml\", regex: \"[-_a-zA-Z0-9:]+\" },\n { token: \"punctuation.int-subset\", regex: \"\\\\[\", push: \"int_subset\" }\n ],\n int_subset: [{\n token: \"text.xml\",\n regex: \"\\\\s+\"\n }, {\n token: \"punctuation.int-subset.xml\",\n regex: \"]\",\n next: \"pop\"\n }, {\n token: [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n regex: \"(<\\\\!)(\" + tagRegex + \")\",\n push: [{\n token: \"text\",\n regex: \"\\\\s+\"\n },\n {\n token: \"punctuation.markup-decl.xml\",\n regex: \">\",\n next: \"pop\"\n },\n { include: \"string\" }]\n }],\n cdata: [\n { token: \"string.cdata.xml\", regex: \"\\\\]\\\\]>\", next: \"start\" },\n { token: \"text.xml\", regex: \"\\\\s+\" },\n { token: \"text.xml\", regex: \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\" }\n ],\n comment: [\n { token: \"comment.end.xml\", regex: \"-->\", next: \"start\" },\n { defaultToken: \"comment.xml\" }\n ],\n reference: [{\n token: \"constant.language.escape.reference.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }],\n attr_reference: [{\n token: \"constant.language.escape.reference.attribute-value.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }],\n tag: [{\n token: [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n regex: \"(?:(<)|(\", next: \"start\" }\n ]\n }],\n tag_whitespace: [\n { token: \"text.tag-whitespace.xml\", regex: \"\\\\s+\" }\n ],\n whitespace: [\n { token: \"text.whitespace.xml\", regex: \"\\\\s+\" }\n ],\n string: [{\n token: \"string.xml\",\n regex: \"'\",\n push: [\n { token: \"string.xml\", regex: \"'\", next: \"pop\" },\n { defaultToken: \"string.xml\" }\n ]\n }, {\n token: \"string.xml\",\n regex: '\"',\n push: [\n { token: \"string.xml\", regex: '\"', next: \"pop\" },\n { defaultToken: \"string.xml\" }\n ]\n }],\n attributes: [{\n token: \"entity.other.attribute-name.xml\",\n regex: tagRegex\n }, {\n token: \"keyword.operator.attribute-equals.xml\",\n regex: \"=\"\n }, {\n include: \"tag_whitespace\"\n }, {\n include: \"attribute_value\"\n }],\n attribute_value: [{\n token: \"string.attribute-value.xml\",\n regex: \"'\",\n push: [\n { token: \"string.attribute-value.xml\", regex: \"'\", next: \"pop\" },\n { include: \"attr_reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }, {\n token: \"string.attribute-value.xml\",\n regex: '\"',\n push: [\n { token: \"string.attribute-value.xml\", regex: '\"', next: \"pop\" },\n { include: \"attr_reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }]\n };\n if (this.constructor === XmlHighlightRules)\n this.normalizeRules();\n};\n(function () {\n this.embedTagRules = function (HighlightRules, prefix, tag) {\n this.$rules.tag.unshift({\n token: [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n regex: \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n next: [\n { include: \"attributes\" },\n { token: \"meta.tag.punctuation.tag-close.xml\", regex: \"/?>\", next: prefix + \"start\" }\n ]\n });\n this.$rules[tag + \"-end\"] = [\n { include: \"attributes\" },\n { token: \"meta.tag.punctuation.tag-close.xml\", regex: \"/?>\", next: \"start\",\n onMatch: function (value, currentState, stack) {\n stack.splice(0);\n return this.token;\n } }\n ];\n this.embedRules(HighlightRules, prefix, [{\n token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n regex: \"(|$))\",\n next: tag + \"-end\"\n }, {\n token: \"string.cdata.xml\",\n regex: \"<\\\\!\\\\[CDATA\\\\[\"\n }, {\n token: \"string.cdata.xml\",\n regex: \"\\\\]\\\\]>\"\n }]);\n };\n}).call(TextHighlightRules.prototype);\noop.inherits(XmlHighlightRules, TextHighlightRules);\nexports.XmlHighlightRules = XmlHighlightRules;\n\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\nfunction is(token, type) {\n return token && token.type.lastIndexOf(type + \".xml\") > -1;\n}\nvar XmlBehaviour = function () {\n this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '\"' || text == \"'\") {\n var quote = text;\n var selected = session.doc.getTextRange(editor.getSelectionRange());\n if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n return {\n text: quote + selected + quote,\n selection: false\n };\n }\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n return {\n text: \"\",\n selection: [1, 1]\n };\n }\n if (!token)\n token = iterator.stepBackward();\n if (!token)\n return;\n while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n token = iterator.stepBackward();\n }\n var rightSpace = !rightChar || rightChar.match(/\\s/);\n if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n return {\n text: quote + quote,\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"string_dquotes\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '>') {\n var position = editor.getSelectionRange().start;\n var iterator = new TokenIterator(session, position.row, position.column);\n var token = iterator.getCurrentToken() || iterator.stepBackward();\n if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n return;\n if (is(token, \"reference.attribute-value\"))\n return;\n if (is(token, \"attribute-value\")) {\n var tokenEndColumn = iterator.getCurrentTokenColumn() + token.value.length;\n if (position.column < tokenEndColumn)\n return;\n if (position.column == tokenEndColumn) {\n var nextToken = iterator.stepForward();\n if (nextToken && is(nextToken, \"attribute-value\"))\n return;\n iterator.stepBackward();\n }\n }\n if (/^\\s*>/.test(session.getLine(position.row).slice(position.column)))\n return;\n while (!is(token, \"tag-name\")) {\n token = iterator.stepBackward();\n if (token.value == \"<\") {\n token = iterator.stepForward();\n break;\n }\n }\n var tokenRow = iterator.getCurrentTokenRow();\n var tokenColumn = iterator.getCurrentTokenColumn();\n if (is(iterator.stepBackward(), \"end-tag-open\"))\n return;\n var element = token.value;\n if (tokenRow == position.row)\n element = element.substring(0, position.column - tokenColumn);\n if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n return;\n return {\n text: \">\" + \"\",\n selection: [1, 1]\n };\n }\n });\n this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n if (text == \"\\n\") {\n var cursor = editor.getCursorPosition();\n var line = session.getLine(cursor.row);\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.type.indexOf(\"tag-close\") !== -1) {\n if (token.value == \"/>\")\n return;\n while (token && token.type.indexOf(\"tag-name\") === -1) {\n token = iterator.stepBackward();\n }\n if (!token) {\n return;\n }\n var tag = token.value;\n var row = iterator.getCurrentTokenRow();\n token = iterator.stepBackward();\n if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n return;\n }\n if (this.voidElements && !this.voidElements[tag]) {\n var nextToken = session.getTokenAt(cursor.row, cursor.column + 1);\n var line = session.getLine(row);\n var nextIndent = this.$getIndent(line);\n var indent = nextIndent + session.getTabString();\n if (nextToken && nextToken.value === \" -1;\n}\n(function () {\n this.getFoldWidget = function (session, foldStyle, row) {\n var tag = this._getFirstTagInLine(session, row);\n if (!tag)\n return this.getCommentFoldWidget(session, row);\n if (tag.closing || (!tag.tagName && tag.selfClosing))\n return foldStyle === \"markbeginend\" ? \"end\" : \"\";\n if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n return \"\";\n if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n return \"\";\n return \"start\";\n };\n this.getCommentFoldWidget = function (session, row) {\n if (/comment/.test(session.getState(row)) && /';\n break;\n }\n }\n return tag;\n }\n else if (is(token, \"tag-close\")) {\n tag.selfClosing = token.value == '/>';\n return tag;\n }\n tag.start.column += token.value.length;\n }\n return null;\n };\n this._findEndTagInLine = function (session, row, tagName, startColumn) {\n var tokens = session.getTokens(row);\n var column = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n column += token.value.length;\n if (column < startColumn)\n continue;\n if (is(token, \"end-tag-open\")) {\n token = tokens[i + 1];\n if (token && token.value == tagName)\n return true;\n }\n }\n return false;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n var tags = session.getMatchingTags({ row: row, column: 0 });\n if (tags) {\n return new Range(tags.openTag.end.row, tags.openTag.end.column, tags.closeTag.start.row, tags.closeTag.start.column);\n }\n else {\n return this.getCommentFoldWidget(session, row)\n && session.getCommentFoldRange(row, session.getLine(row).length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/xml_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/xml\",\"ace/worker/worker_client\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextMode = require(\"./text\").Mode;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\nvar XmlBehaviour = require(\"./behaviour/xml\").XmlBehaviour;\nvar XmlFoldMode = require(\"./folding/xml\").FoldMode;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar Mode = function () {\n this.HighlightRules = XmlHighlightRules;\n this.$behaviour = new XmlBehaviour();\n this.foldingRules = new XmlFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.voidElements = lang.arrayToMap([]);\n this.blockComment = { start: \"\" };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/xml_worker\", \"Worker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"error\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/xml\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/xml\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/theme/github-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \"/* CSS style content from github's default pygments highlighter template.\\n Cursor and selection styles from textmate.css. */\\n.ace-github .ace_gutter {\\n background: #e8e8e8;\\n color: #AAA;\\n}\\n\\n.ace-github {\\n background: #fff;\\n color: #000;\\n}\\n\\n.ace-github .ace_keyword {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_string {\\n color: #D14;\\n}\\n\\n.ace-github .ace_variable.ace_class {\\n color: teal;\\n}\\n\\n.ace-github .ace_constant.ace_numeric {\\n color: #099;\\n}\\n\\n.ace-github .ace_constant.ace_buildin {\\n color: #0086B3;\\n}\\n\\n.ace-github .ace_support.ace_function {\\n color: #0086B3;\\n}\\n\\n.ace-github .ace_comment {\\n color: #998;\\n font-style: italic;\\n}\\n\\n.ace-github .ace_variable.ace_language {\\n color: #0086B3;\\n}\\n\\n.ace-github .ace_paren {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_boolean {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_string.ace_regexp {\\n color: #009926;\\n font-weight: normal;\\n}\\n\\n.ace-github .ace_variable.ace_instance {\\n color: teal;\\n}\\n\\n.ace-github .ace_constant.ace_language {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_cursor {\\n color: black;\\n}\\n\\n.ace-github.ace_focus .ace_marker-layer .ace_active-line {\\n background: rgb(255, 255, 204);\\n}\\n.ace-github .ace_marker-layer .ace_active-line {\\n background: rgb(245, 245, 245);\\n}\\n\\n.ace-github .ace_marker-layer .ace_selection {\\n background: rgb(181, 213, 255);\\n}\\n\\n.ace-github.ace_multiselect .ace_selection.ace_start {\\n box-shadow: 0 0 3px 0px white;\\n}\\n/* bold keywords cause cursor issues for some fonts */\\n/* this disables bold style for editor and keeps for static highlighter */\\n.ace-github.ace_nobold .ace_line > span {\\n font-weight: normal !important;\\n}\\n\\n.ace-github .ace_marker-layer .ace_step {\\n background: rgb(252, 255, 0);\\n}\\n\\n.ace-github .ace_marker-layer .ace_stack {\\n background: rgb(164, 229, 101);\\n}\\n\\n.ace-github .ace_marker-layer .ace_bracket {\\n margin: -1px 0 0 -1px;\\n border: 1px solid rgb(192, 192, 192);\\n}\\n\\n.ace-github .ace_gutter-active-line {\\n background-color : rgba(0, 0, 0, 0.07);\\n}\\n\\n.ace-github .ace_marker-layer .ace_selected-word {\\n background: rgb(250, 250, 255);\\n border: 1px solid rgb(200, 200, 250);\\n}\\n\\n.ace-github .ace_invisible {\\n color: #BFBFBF\\n}\\n\\n.ace-github .ace_print-margin {\\n width: 1px;\\n background: #e8e8e8;\\n}\\n\\n.ace-github .ace_indent-guide {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\n}\\n\\n.ace-github .ace_indent-guide-active {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC\\\") right repeat-y;\\n}\\n\";\n\n});\n\nace.define(\"ace/theme/github\",[\"require\",\"exports\",\"module\",\"ace/theme/github-css\",\"ace/lib/dom\"], function(require, exports, module){exports.isDark = false;\nexports.cssClass = \"ace-github\";\nexports.cssText = require(\"./github-css\");\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass, false);\n\n}); (function() {\n ace.require([\"ace/theme/github\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","module.exports = require(\"react-dom\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"\";","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"prop-types\");","import { createContext } from 'react';\n\nconst AccordionContext = createContext();\n\nexport default AccordionContext;\n","import { createContext } from 'react';\n\nconst AccordionItemContext = createContext();\n\nexport default AccordionItemContext;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Icon({\n className,\n family,\n type,\n weight,\n ...rest\n}) {\n function getCSSClasses() {\n const fontFamily = family || 'fa';\n const fontWeight = fontFamily === 'fa' ? `fa-${weight || 'light'}` : '';\n\n return [\n 'tyk-icon',\n fontFamily !== 'fa' && fontFamily,\n `${fontFamily}-${type}`,\n fontWeight,\n className,\n ].filter(Boolean).join(' ');\n }\n\n return ;\n}\n\nIcon.propTypes = {\n // Additional CSS classes to apply\n className: PropTypes.string,\n // Font family to use. Default is 'fa'.\n family: PropTypes.string,\n // Icon type to use\n type: PropTypes.string.isRequired,\n // Icon weight to use. Only applicable for Font Awesome icons. Default is 'light'. Also supports 'solid'\n weight: PropTypes.string\n};\n\nexport default Icon;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport AccordionItemContext from './AccordionItemContext';\n\nfunction ItemTrigger({ wrap }) {\n const { collapsed, disabled, toggleChange } = useContext(AccordionItemContext);\n\n const iconType = collapsed ? 'chevron-down' : 'chevron-up';\n const classes = [\n 'tyk-accordion__trigger',\n disabled && 'tyk-accordion__trigger--disabled',\n ].filter(Boolean).join(' ');\n const trigger = (\n \n \n \n );\n\n return wrap\n ?
    {trigger}
    \n : trigger;\n}\n\nItemTrigger.propTypes = {\n wrap: PropTypes.bool,\n};\n\nexport default ItemTrigger;\n","import React, {\n useMemo, useState, useContext, forwardRef,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport AccordionContext from './AccordionContext';\nimport AccordionItemContext from './AccordionItemContext';\nimport ItemTrigger from './AccordionItemTrigger';\n\nfunction AccordionItem({\n collapsed: collapsedProp,\n children,\n className,\n disabled,\n}, ref) {\n const { arrow } = useContext(AccordionContext);\n const [collapsed, setCollapsed] = useState(collapsedProp);\n\n const toggleChange = () => {\n if (disabled) {\n return;\n }\n\n setCollapsed(!collapsed);\n };\n\n const classes = useMemo(() => [\n 'tyk-accordion__item',\n arrow.expandToContent\n ? `tyk-accordion__item--trigger-position-${arrow.position}`\n : 'tyk-accordion__item--trigger-in-header',\n className,\n collapsed === false && 'tyk-accordion__item--active',\n ].filter(Boolean).join(' '), [arrow, className, collapsed]);\n\n const contextValue = useMemo(() => ({\n collapsed,\n disabled,\n toggleChange,\n }), [collapsed, disabled, toggleChange]);\n\n return (\n
    \n \n {arrow.expandToContent && (\n \n )}\n {children}\n \n
    \n );\n}\n\nAccordionItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n collapsed: PropTypes.bool,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n};\n\nAccordionItem.defaultProps = {\n collapsed: false,\n};\n\nexport default forwardRef(AccordionItem);\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport AccordionContext from './AccordionContext';\nimport AccordionItemContext from './AccordionItemContext';\nimport ItemTrigger from './AccordionItemTrigger';\n\nfunction AccordionItemHeader({ className, children }) {\n const { collapsed, disabled, toggleChange } = useContext(AccordionItemContext);\n const { usearrowastrigger, arrow } = useContext(AccordionContext);\n const iconType = collapsed ? 'chevron-down' : 'chevron-up';\n const classes = [\n 'tyk-accordion__item-header',\n usearrowastrigger && 'tyk-accordion__arrow-trigger',\n className,\n ].filter(Boolean).join(' ');\n\n return (\n
    \n {\n !usearrowastrigger\n ? (\n \n {children}\n \n \n )\n : (\n <>\n {!arrow.expandToContent && arrow.position === 'left' && (\n \n )}\n
    {children}
    \n {!arrow.expandToContent && arrow.position === 'right' && (\n \n )}\n \n )\n }\n
    \n );\n}\n\nAccordionItemHeader.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n};\n\nexport default AccordionItemHeader;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-transition-group\");","import { useCallback, useState, useLayoutEffect } from 'react';\n\nconst getSize = (el) => {\n if (!el) {\n return {\n width: 0,\n height: 0,\n };\n }\n\n return {\n width: el.offsetWidth,\n height: el.offsetHeight,\n };\n};\n\nconst useComponentSize = (ref) => {\n const [componentSize, setComponentSize] = useState(getSize(ref ? ref.current : {}));\n const handleResize = useCallback(() => {\n if (ref.current) {\n setComponentSize(getSize(ref.current));\n }\n }, [ref]);\n\n useLayoutEffect(() => {\n handleResize();\n\n let resizeObserver = new ResizeObserver(() => {\n handleResize();\n });\n resizeObserver.observe(ref.current);\n\n return () => {\n resizeObserver.disconnect(ref.current);\n resizeObserver = null;\n };\n }, [ref.current]);\n\n return componentSize;\n};\n\n/** @component */\nexport default useComponentSize;\n","import { useEffect, useRef } from 'react';\n\nconst useEventListener = (eventName, handler, element) => {\n const savedHandler = useRef();\n useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(() => {\n const isSupported = element?.addEventListener;\n if (!isSupported) {\n // eslint-disable-next-line consistent-return\n return;\n }\n\n const eventListener = (event) => savedHandler.current(event);\n element.addEventListener(eventName, eventListener);\n\n // eslint-disable-next-line consistent-return\n return () => {\n element.removeEventListener(eventName, eventListener);\n };\n }, [eventName, element]);\n};\n\n/** @component */\nexport default useEventListener;\n","import React, {\n useRef, useState, useCallback, useEffect,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { CSSTransition } from 'react-transition-group';\nimport { useEventListener, useComponentSize } from '../../hooks';\n\n/**\n * Collapsible is a component that helps you to collapse/expand any type of content\n */\nfunction Collapsible({\n className,\n collapsed,\n children,\n ...rest\n}) {\n const contentContainer = useRef(null);\n const collapseWrapper = useRef(null);\n const refContainerSize = useComponentSize(contentContainer);\n const [contentContainerStyle, setContentContainerStyle] = useState({\n // eslint-disable-next-line\n height: (collapsed) ? 0 : 'auto',\n });\n\n const setHeight = (height) => {\n setContentContainerStyle({\n height: `${height}px`,\n });\n };\n\n const getHeight = () => (contentContainer.current ? contentContainer.current.clientHeight : 0);\n\n const onEnter = () => {\n setHeight(getHeight());\n };\n\n const onExit = () => {\n setHeight(0);\n };\n\n useEffect(() => {\n if (!collapsed\n && refContainerSize?.height\n && contentContainerStyle.height !== refContainerSize?.height\n ) {\n setHeight(refContainerSize.height);\n }\n }, [refContainerSize.height]);\n\n const onWindowResize = useCallback(() => {\n if (!collapsed && contentContainer.current) {\n setHeight(getHeight());\n collapseWrapper.current.style.height = `${getHeight()}px`;\n }\n }, [collapsed, contentContainer.current]);\n\n useEventListener('resize', onWindowResize, window);\n\n return (\n \n \n \n { children }\n \n \n \n );\n}\n\nCollapsible.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** Describes if the content of Collapsible should be hidden or not */\n collapsed: PropTypes.bool,\n /** CSS classes that can be passed to the Collapsible element */\n className: PropTypes.string,\n};\n\nexport default Collapsible;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Collapsible from '../../Collapsible';\nimport AccordionItemContext from './AccordionItemContext';\n\nfunction AccordionItemContent({ children, className }) {\n const { collapsed } = useContext(AccordionItemContext);\n\n const classes = [\n 'tyk-accordion__item-content',\n className,\n ].filter(Boolean).join(' ');\n\n return (\n
    \n \n { children }\n \n
    \n );\n}\n\nAccordionItemContent.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n};\n\nexport default AccordionItemContent;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport AccordionItem from './js/AccordionItem';\nimport AccordionItemHeader from './js/AccordionItemHeader';\nimport AccordionItemContent from './js/AccordionItemContent';\nimport AccordionContext from './js/AccordionContext';\n\nfunction Accordion({\n className,\n children,\n usearrowastrigger,\n arrow = { position: 'right', expandToContent: false },\n}) {\n const classes = [\n 'tyk-accordion',\n className,\n ].filter(Boolean).join(' ');\n\n const contextValue = useMemo(() => ({\n usearrowastrigger,\n arrow,\n }), [usearrowastrigger, arrow]);\n\n return (\n
    \n \n {children}\n \n
    \n );\n}\n\nAccordion.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n usearrowastrigger: PropTypes.bool,\n arrow: PropTypes.shape({\n position: PropTypes.oneOf(['left', 'right']),\n expandToContent: PropTypes.bool,\n }),\n};\n\nAccordion.defaultProps = {\n usearrowastrigger: false,\n};\n\n// For Readme.md : Start\nAccordion.Item = AccordionItem;\nAccordion.Item.Header = AccordionItemHeader;\nAccordion.Item.Content = AccordionItemContent;\n// For Readme.md : End\n\nexport default Accordion;\n","import React, { cloneElement, forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../Icon';\n\n/**\n * Button component.\n */\nfunction Button(props, ref) {\n const {\n customButton,\n children,\n iconType,\n iconFamily,\n iconPosition,\n iconOnly,\n id,\n className,\n disabled,\n display,\n href,\n onClick,\n noStyle,\n size,\n theme,\n type,\n ...rest\n } = props;\n\n const getCssClasses = () => {\n const cssClasses = ['tyk-button'].concat(className ? className.split(' ') : []);\n const sizeClass = (size) ? `tyk-button--${size}` : 'tyk-button--md';\n const disabledClass = (disabled) ? 'disabled' : '';\n const displayClass = display || '';\n const themeClass = theme ? `tyk-button--${theme}` : '';\n const iconOnlyClass = iconOnly ? 'tyk-button--icon-only' : '';\n const noStyleClass = noStyle ? 'tyk-button--no-style' : '';\n\n cssClasses.push(iconOnlyClass);\n cssClasses.push(themeClass);\n cssClasses.push(sizeClass);\n cssClasses.push(disabledClass);\n cssClasses.push(displayClass);\n cssClasses.push(noStyleClass);\n\n if (iconType) {\n cssClasses.push(`icon-${iconPosition || 'left'}`);\n }\n\n return cssClasses.join(' ');\n };\n\n const getButtonIcon = (position) => {\n const iPos = iconPosition || 'left';\n\n return (\n (iconType && iPos === position)\n ? \n : null\n );\n };\n\n const getButtonType = () => {\n let buttonType;\n\n if (customButton) {\n return (\n <>\n { cloneElement(customButton, {\n className: getCssClasses(),\n disabled,\n })}\n \n );\n }\n\n if (href) {\n buttonType = (\n \n { getButtonIcon('left') }\n { children }\n { getButtonIcon('right') }\n \n );\n } else {\n buttonType = (\n // eslint-disable-next-line react/button-has-type\n \n { getButtonIcon('left') }\n { children && {children} }\n { getButtonIcon('right') }\n \n );\n }\n\n return buttonType;\n };\n\n return (\n getButtonType()\n );\n}\n\nButton.propTypes = {\n /**\n * Content of a button. Can be a DOM element or a React component\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n customButton: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n ]),\n className: PropTypes.string,\n /**\n * Display type: inline/block. Default is inline\n */\n display: PropTypes.string,\n /**\n * Sets the button disabled state\n */\n disabled: PropTypes.bool,\n /**\n * Having this property set the button will become a link\n */\n id: PropTypes.string,\n href: PropTypes.string,\n iconPosition: PropTypes.string, // left or right\n iconFamily: PropTypes.string,\n iconOnly: PropTypes.bool,\n iconType: PropTypes.string,\n noStyle: PropTypes.bool,\n /**\n * Callback function, called when the button si clicked\n */\n onClick: PropTypes.func,\n /**\n * Describes the appearence of the button (ex: primary, danger, primary-outline etc.)\n */\n theme: PropTypes.string,\n /**\n * Type of the button (ex: button, submit etc.)\n */\n type: PropTypes.string,\n /**\n * Describes the size of the button (sm, md, lg). Default one is md\n */\n size: PropTypes.string,\n};\n\nButton.defaultProps = {\n theme: '',\n type: 'button',\n};\n\nexport default forwardRef(Button);\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ButtonGroup({ className, children, label }, ref) {\n return (\n
    \n {Boolean(label) && }\n
    {children}
    \n
    \n );\n}\n\nButtonGroup.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n};\n\nexport default forwardRef(ButtonGroup);\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardHeader({\n right = null,\n children,\n}) {\n return (\n
    \n {children &&
    {children}
    }\n {right &&
    {right}
    }\n
    \n );\n}\n\nCardHeader.propTypes = {\n right: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardBody({\n align = 'top',\n children,\n}) {\n return (\n
    \n
    \n {children}\n
    \n
    \n );\n}\n\nCardBody.propTypes = {\n align: PropTypes.oneOf(['top', 'center', 'bottom']),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardBody;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardFooter({ children }) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardFooter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitle({\n maxLines = 1, // accepted values: 1, 2\n children,\n}) {\n return (\n

    \n {children}\n

    \n );\n}\n\nCardTitle.propTypes = {\n maxLines: PropTypes.number,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitle;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitleGroup({\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardTitleGroup.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitleGroup;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardSubTitle({\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardSubTitle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardSubTitle;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardSummary({\n maxLines = 2, // accepted values: 1, 2, 3, 4, 5\n children,\n}) {\n return (\n

    \n {children}\n

    \n );\n}\n\nCardSummary.propTypes = {\n maxLines: PropTypes.number,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardSummary;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitleIcon({\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardTitleIcon.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitleIcon;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport CardHeader from './CardHeader';\nimport CardBody from './CardBody';\nimport CardFooter from './CardFooter';\nimport CardTitle from './CardTitle';\nimport CardTitleGroup from './CardTitleGroup';\nimport CardSubTitle from './CardSubTitle';\nimport CardSummary from './CardSummary';\nimport CardTitleIcon from './CardTitleIcon';\n\nfunction Card({\n className = '',\n height = 'auto',\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCard.propTypes = {\n className: PropTypes.string,\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nCard.Header = CardHeader;\nCard.Body = CardBody;\nCard.Footer = CardFooter;\nCard.Title = CardTitle;\nCard.TitleGroup = CardTitleGroup;\nCard.Icon = CardTitleIcon;\nCard.SubTitle = CardSubTitle;\nCard.Summary = CardSummary;\n\nexport default Card;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"echarts\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"immutable\");","export default (func, wait, immediate) => {\n let timeout;\n return function debouncer(...args) {\n const context = this;\n const later = () => {\n timeout = null;\n if (!immediate) {\n func.apply(context, args);\n }\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) {\n func.apply(context, args);\n }\n };\n};\n","import { useEffect, useRef } from 'react';\n\nconst usePrevious = (value) => {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n};\n\n/** @component */\nexport default usePrevious;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Loader({ className, position = 'relative', withbackground = false }) {\n const classes = [\n 'loading',\n position,\n className,\n ].filter(Boolean).join(' ');\n\n const loader = (\n
    \n
    \n
    \n
    \n
    \n
    \n );\n\n return withbackground\n ?
    {loader}
    \n : loader;\n}\n\nLoader.propTypes = {\n /** add a class to loader */\n className: PropTypes.string,\n /** position of loader (absolute / relative) */\n position: PropTypes.string,\n /** defines weather loader should be renders with or without background */\n withbackground: PropTypes.bool,\n};\n\nexport default Loader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../Icon';\n\n/**\n * The Message component is used to highlight important content to the users.\n *\n * If the content you are displaying needs immediate attention or is a feedback,\n * consider using `toast` instead\n */\nfunction Message({\n children, theme, onClose, noMargin, className,\n}) {\n function getCssClasses() {\n return [\n 'tyk-message',\n `tyk-message--${theme || 'info'}`,\n noMargin && 'no-margin',\n className,\n ].filter(Boolean).join(' ');\n }\n\n const iconType = theme === 'success' ? 'check' : 'warning';\n\n return (\n
    \n \n
    \n { children }\n
    \n {onClose && (\n \n )}\n
    \n );\n}\n\nMessage.propTypes = {\n /** Set theme for message (eg. default, success, danger, etc) */\n theme: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** add a class to loader */\n className: PropTypes.string,\n /** Removes margins by adding `no-margin` class */\n noMargin: PropTypes.bool,\n /** Callback for clicking on the \"x\" */\n onClose: PropTypes.func,\n};\n\nexport default Message;\n","import React, {\n useState, useEffect, useMemo, useRef, memo,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport * as echarts from 'echarts';\nimport { fromJS } from 'immutable';\n\nimport debounce from '../../utils/debounce';\nimport { usePrevious } from '../../hooks';\nimport Loader from '../Loader';\nimport Message from '../Message';\nimport worldMap from './maps/world.json';\n\necharts.registerMap('world', worldMap);\n\nfunction Chart({\n areaStyleColors,\n dataLoaded,\n hasData,\n highlight,\n type,\n option,\n series,\n onChange,\n zoomStart,\n zoomEnd,\n title,\n seriesConfig = [],\n noDataComponent: noDataComponentProp = null,\n zoomColors,\n style,\n}) {\n const [tykChartInstance, setTykChartInstance] = useState(null);\n const chartWrapperRef = useRef(null);\n const onResize = () => {\n if (tykChartInstance) {\n tykChartInstance.resize();\n }\n };\n\n const noDataComponent = useMemo(\n () => (noDataComponentProp\n ? noDataComponentProp()\n : (\n \n No data to display\n \n )),\n [noDataComponentProp],\n );\n\n const lineBarChart = {\n defaultOpts: fromJS({\n title: {\n show: true,\n text: title,\n left: 0,\n },\n color: [],\n toolbox: {\n right: '0',\n orient: 'horizontal',\n itemSize: 15,\n showTitle: true,\n feature: null,\n },\n dataZoom: [{\n show: true,\n start: 0,\n end: 100,\n orient: 'horizontal',\n dataBackground: {\n lineStyle: {\n color: zoomColors?.lineStyle || '#368493',\n },\n areaStyle: {\n color: zoomColors?.areaStyle || '#368493',\n },\n },\n handleStyle: {\n color: zoomColors?.handleStyle || '#368493',\n },\n textStyle: {\n color: zoomColors?.textStyle || '#368493',\n },\n borderColor: 'transparent',\n fillerColor: zoomColors?.fillerColor || 'rgba(54, 132, 147, 0.1)',\n }],\n legend: {\n show: false,\n // data: [],\n // right: '1%',\n },\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'cross',\n },\n },\n grid: {\n left: '1%',\n right: '1%',\n bottom: '50px',\n top: '40px',\n containLabel: true,\n },\n xAxis: {\n boundaryGap: false,\n type: 'category',\n splitLine: {\n show: true,\n lineStyle: {\n type: 'dotted',\n color: '#F0F0F0',\n },\n },\n axisLine: {\n show: false,\n },\n axisTick: {\n show: false,\n },\n data: [],\n },\n yAxis: {\n min: 'dataMin',\n boundaryGap: true,\n axisPointer: {\n show: true,\n },\n splitLine: {\n lineStyle: {\n type: 'dotted',\n color: '#F0F0F0',\n },\n show: true,\n },\n axisLabel: {\n show: true,\n },\n axisLine: {\n show: true,\n },\n axisTick: {\n show: false,\n },\n type: 'value',\n },\n textStyle: {\n color: '#5a5a68',\n },\n series: [],\n animationEasing: 'elasticOut',\n }),\n seriesDefault: fromJS({\n data: [],\n type: 'line',\n areaStyle: {\n opacity: 1,\n color: areaStyleColors\n ? new echarts.graphic.LinearGradient(\n 0,\n 0,\n 1,\n 1,\n areaStyleColors.map((color, index) => ({\n offset: index,\n color,\n })),\n )\n : [],\n },\n smooth: false,\n symbolSize: 7,\n name: '',\n }),\n };\n\n const pieChart = {\n defaultOpts: fromJS({\n tooltip: {\n trigger: 'axis',\n formatter: '{b}: {c} ({d}%)',\n },\n legend: {\n orient: 'horizontal',\n x: 'left',\n y: 'top',\n data: [],\n },\n color: [],\n series: [],\n }),\n seriesDefault: fromJS({\n type: 'pie',\n center: [\n '50%',\n '55%',\n ],\n radius: [\n '50%',\n '75%',\n ],\n avoidLabelOverlap: false,\n animationType: 'scale',\n animationEasing: 'elasticOut',\n labelLine: {\n normal: {\n show: true,\n smooth: 0.2,\n length: 6,\n length2: 6,\n },\n },\n data: [],\n }),\n };\n\n const geoChart = {\n defaultOpts: fromJS({\n series: [],\n }),\n seriesDefault: fromJS({\n type: 'map',\n data: [],\n }),\n };\n\n const buildChartOptions = (selectedType, selectedOptions, selectedSeries) => {\n let finalOpts = {};\n switch (selectedType) {\n case 'pie': {\n finalOpts = pieChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n\n selectedSeries.forEach((entry) => {\n finalOpts.series.push(pieChart.seriesDefault.mergeDeep(fromJS(entry)).toJS());\n });\n\n break;\n }\n\n case 'geo': {\n finalOpts = geoChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n\n selectedSeries.forEach((entry) => {\n finalOpts.series.push(geoChart.seriesDefault.mergeDeep(fromJS(entry)).toJS());\n });\n\n break;\n }\n\n default: {\n finalOpts = lineBarChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n if (Array.isArray(selectedOptions.yAxis)) {\n finalOpts.yAxis = selectedOptions.yAxis;\n }\n\n selectedSeries.forEach((entry, index) => {\n const seriesData = {\n ...lineBarChart.seriesDefault.toJS(),\n ...seriesConfig[index],\n ...entry,\n };\n finalOpts.series.push(seriesData);\n });\n break;\n }\n }\n return finalOpts;\n };\n\n useEffect(() => {\n window.addEventListener('resize', onResize);\n\n return () => {\n window.removeEventListener('resize', onResize);\n };\n }, [tykChartInstance]);\n\n useEffect(() => {\n if (!chartWrapperRef?.current) return;\n\n setTykChartInstance(echarts.init(chartWrapperRef.current));\n\n // eslint-disable-next-line consistent-return\n return () => {\n if (tykChartInstance) {\n tykChartInstance.dispose();\n }\n };\n }, [chartWrapperRef.current]);\n\n const eventCallBack = (e) => {\n if (onChange) {\n onChange(e);\n }\n };\n\n useEffect(() => {\n let debouncedMethod;\n if (tykChartInstance) {\n debouncedMethod = debounce(eventCallBack, 500);\n tykChartInstance.on('dataZoom', debouncedMethod);\n tykChartInstance.on('restore', debouncedMethod);\n tykChartInstance.on('click', debouncedMethod);\n\n tykChartInstance.on('mousemove', (params) => {\n if (params.data) {\n tykChartInstance.getZr().setCursorStyle('pointer');\n }\n });\n }\n\n return () => {\n if (tykChartInstance) {\n tykChartInstance.off('dataZoom', debouncedMethod);\n tykChartInstance.off('restore', debouncedMethod);\n tykChartInstance.off('click', debouncedMethod);\n }\n };\n }, [tykChartInstance, onChange]);\n\n const prevInstance = usePrevious(tykChartInstance);\n const prevOption = usePrevious(option);\n const prevType = usePrevious(type);\n const prevSeries = usePrevious(series);\n useEffect(() => {\n if (\n tykChartInstance\n && (\n !fromJS(prevInstance)?.equals?.(fromJS(tykChartInstance))\n || !fromJS(prevOption)?.equals?.(fromJS(option))\n || (prevType !== type)\n || !fromJS(prevSeries).equals?.(fromJS(series))\n )\n ) {\n tykChartInstance.clear();\n tykChartInstance.setOption(buildChartOptions(type, option, series));\n tykChartInstance.dispatchAction({\n type: 'takeGlobalCursor',\n key: 'dataZoomSelect',\n dataZoomSelectActive: true,\n });\n }\n }, [tykChartInstance, option, series, type]);\n\n useEffect(() => {\n if (tykChartInstance && highlight) {\n tykChartInstance.dispatchAction({\n type: 'highlight',\n seriesIndex: highlight.seriesIndex,\n dataIndex: highlight.dataIndex,\n });\n tykChartInstance.dispatchAction({\n type: 'showTip',\n seriesIndex: highlight.seriesIndex,\n dataIndex: highlight.dataIndex,\n });\n }\n }, [highlight]);\n\n const prevZoomStart = usePrevious(zoomStart);\n const prevZoomEnd = usePrevious(zoomEnd);\n useEffect(() => {\n if (\n tykChartInstance\n && zoomStart !== -1\n && zoomEnd !== -1\n && (\n prevZoomStart !== zoomStart\n || prevZoomEnd !== zoomEnd\n )\n ) {\n tykChartInstance.dispatchAction({\n type: 'dataZoom',\n startValue: zoomStart,\n endValue: zoomEnd,\n });\n }\n }, [zoomStart, zoomEnd]);\n\n const getStyle = () => {\n const tempStyle = style || {};\n\n if (!tempStyle.height) {\n tempStyle.height = '300px';\n }\n if (!tempStyle.width) {\n tempStyle.width = '100%';\n }\n return tempStyle;\n };\n\n const chartHasData = () => (\n (dataLoaded && (hasData === false || hasData === true)) ? hasData : true\n );\n\n const getCssClasses = () => {\n const cssClasses = ['tyk-chart'];\n\n if (!dataLoaded) {\n cssClasses.push('tyk-chart--loading-chart');\n }\n\n if (!chartHasData()) {\n cssClasses.push('tyk-chart--no-data');\n }\n\n return cssClasses.join(' ');\n };\n\n return (\n
    \n {\n !dataLoaded\n ? \n : null\n }\n \n {\n chartHasData()\n ? null\n : noDataComponent\n }\n
    \n );\n}\n\nChart.propTypes = {\n areaStyleColors: PropTypes.instanceOf(Array),\n dataLoaded: PropTypes.bool,\n hasData: PropTypes.bool,\n highlight: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n PropTypes.instanceOf(Array),\n ]),\n noDataComponent: PropTypes.func,\n zoomStart: PropTypes.number,\n zoomEnd: PropTypes.number,\n zoomColors: PropTypes.instanceOf(Object),\n option: PropTypes.instanceOf(Object),\n onChange: PropTypes.func,\n style: PropTypes.instanceOf(Object),\n type: PropTypes.string,\n title: PropTypes.string,\n series: PropTypes.instanceOf(Array),\n seriesConfig: PropTypes.instanceOf(Object),\n};\n\nexport default memo(Chart);\n","import { useEffect, useRef } from 'react';\n\nconst useTimeout = (callback, delay) => {\n const savedCallback = useRef();\n\n useEffect(\n () => {\n savedCallback.current = callback;\n },\n [callback],\n );\n\n useEffect(\n () => {\n function tick() {\n savedCallback.current();\n }\n if (delay !== null) {\n const id = setTimeout(tick, delay);\n return () => clearTimeout(id);\n }\n\n return () => {};\n },\n [delay],\n );\n};\n\n/** @component */\nexport default useTimeout;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../../Message';\nimport { useTimeout } from '../../../hooks';\n\nfunction ToastMessage(props) {\n const {\n children,\n options,\n onClose,\n index,\n } = props;\n const opts = {\n theme: 'success',\n delay: 3000,\n ...options,\n };\n let timer;\n\n const handleClose = (itemIndex) => {\n onClose(itemIndex);\n clearTimeout(timer);\n };\n\n useTimeout(() => handleClose(index), opts.delay);\n\n return (\n handleClose(index)}\n >\n {children}\n \n );\n}\n\nToastMessage.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n options: PropTypes.instanceOf(Object),\n onClose: PropTypes.func,\n index: PropTypes.number,\n};\n\nexport default ToastMessage;\n","import React, {\n useEffect, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToastMessage from './ToastMessage';\n\nfunction ToastContainer(props) {\n const [messages, setMessages] = useState({});\n const {\n notify,\n } = props;\n\n const updateNotifications = (message, options) => {\n const msgID = Math.floor(Math.random() * 1000000);\n\n setMessages((prevMessages) => ({\n ...prevMessages,\n [msgID]: {\n message,\n options,\n },\n }));\n };\n\n useEffect(() => {\n notify(updateNotifications);\n }, [messages]);\n\n const onMessageClosed = (index) => {\n const tempMessages = { ...messages };\n delete tempMessages[index];\n setMessages((prevMessages) => {\n const newMessages = { ...prevMessages };\n delete newMessages[index];\n return newMessages;\n });\n };\n\n return (\n
    \n {\n Object.keys(messages).map((msgID) => (\n messages[msgID]\n ? (\n \n {messages[msgID].message}\n \n )\n : null\n ))\n }\n
    \n );\n}\n\nToastContainer.propTypes = {\n notify: PropTypes.func,\n};\n\nexport default ToastContainer;\n","import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport ToastContainer from './js/ToastContainer';\n\n/**\n * Toast is a service that displays dialogs\n * on the bottom right part of the screen.\n *\n * The dialogs can have one of the Tyk UI themes, so that\n * it would match it's purpose (i.e success message, error message)\n *\n */\nclass ToastCreator {\n constructor() {\n const el = document.createElement('div');\n el.className = 'tyk-toast';\n document.body.appendChild(el);\n const root = createRoot(el);\n root.render();\n }\n\n bindNotify = (fn) => {\n this.createNotification = fn;\n };\n\n notify(message, options) {\n if (this.createNotification) {\n this.createNotification(message, options);\n }\n }\n\n danger(message, options) {\n this.notify(message, { ...options, theme: 'danger' });\n }\n\n success(message, options) {\n this.notify(message, { ...options, theme: 'success' });\n }\n\n warning(message, options) {\n this.notify(message, { ...options, theme: 'warning' });\n }\n\n info(message, options) {\n this.notify(message, { ...options, theme: 'info' });\n }\n}\n\nconst toast = new ToastCreator();\n\nexport default toast;\n","import React, { createRef, useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport toast from '../Toast';\n\n/**\n * - CopyToClipboard is used to copy string for a user.\n * - Can be used normally with a text or a custom components (Eg. Button, Icon, etc)\n */\n\nfunction CopyToClipboard(props) {\n const {\n display, copy, children, onCopy, message = 'copied',\n } = props;\n const txtRef = createRef();\n const handleClick = useCallback(() => {\n if (onCopy) {\n onCopy();\n }\n\n if (!window.navigator.clipboard) {\n txtRef.current.select();\n document.execCommand('copy');\n toast.success(message);\n return;\n }\n window.navigator.clipboard.writeText(copy);\n toast.success(message);\n }, [onCopy, txtRef]);\n\n return (\n <>\n \n {children || display}\n \n {!window.navigator.clipboard ? (\n \n ) : null}\n \n );\n}\n\nCopyToClipboard.propTypes = {\n /** Message to be displayed after text is copied */\n message: PropTypes.string,\n /** Callback function executed after text is copied */\n onCopy: PropTypes.func,\n /** Text to be copied */\n copy: PropTypes.string.isRequired,\n /** Text to be displayed */\n display: PropTypes.string,\n /** Children of custom element if you are using any custom element */\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n ]),\n};\n\nexport default CopyToClipboard;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ModalFooter({ children }) {\n return (\n
    \n { children }\n
    \n );\n}\n\nModalFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default ModalFooter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ModalBody({ children }) {\n return (\n
    \n { children }\n
    \n );\n}\n\nModalBody.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default ModalBody;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { CSSTransition } from 'react-transition-group';\n\nimport Icon from '../Icon';\nimport ModalFooter from './js/ModalFooter';\nimport ModalBody from './js/ModalBody';\n\n/**\n * Modals add dialogs confirmation boxes, notifications, or completely custom content\n * - only one Modal can be opened at a time\n * - are unmounted when Modal is closed\n */\nfunction Modal({\n children,\n theme = 'none',\n disableCloseCommands = false,\n opened = false,\n onClose = () => {},\n size = 'md',\n className = '',\n showBackdrop = true,\n ...restProps\n}) {\n const modalClasses = [\n 'tyk-modal',\n `tyk-modal--theme-${theme}`,\n opened && 'opened',\n ].concat(className.split(' ')).filter(Boolean).join(' ');\n\n const backdropClasses = [\n 'tyk-modal__backdrop',\n opened && 'opened',\n ].filter(Boolean).join(' ');\n\n const themeIcon = {\n success: 'check',\n warning: 'warning',\n danger: 'delete',\n }[theme];\n\n return (\n <>\n {\n ReactDOM.createPortal(\n \n
    \n
    \n
    \n {theme !== 'none' && (\n
    \n \n
    \n )}\n { children }\n
    \n
    \n
    \n ,\n document.querySelector('body'),\n )\n }\n {showBackdrop && ReactDOM.createPortal(\n \n !disableCloseCommands && onClose()}\n onKeyDown={() => {}}\n type=\"button\"\n aria-label=\"Close\"\n />\n ,\n document.querySelector('body'),\n )}\n \n );\n}\n\nModal.Body = ModalBody;\nModal.Footer = ModalFooter;\n/* eslint-disable-next-line */\nModal.Header = ({ children }) => {\n console.warn('%cModal.Header%c is deprecated.', 'font-weight: bold', '');\n return (\n
    \n { children }\n
    \n );\n};\nModal.Header.propTypes = {\n children: PropTypes.element,\n};\n/* eslint-disable-next-line */\nModal.Title = ({ children }) => {\n console.warn('%cModal.Title%c is deprecated.', 'font-weight: bold', '');\n return (\n

    \n { children }\n

    \n );\n};\nModal.Title.propTypes = {\n children: PropTypes.element,\n};\n\nModal.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n /** one of \"success\", \"warning\", \"danger\", \"none\"; default is \"none\" */\n theme: PropTypes.string,\n /** If set on true, the Modal won't close when clicking on the overlay or by pressing ESC key */\n disableCloseCommands: PropTypes.bool,\n /** If true the Modal will be by default opened */\n opened: PropTypes.bool,\n /** Callback method when the Modal is closed */\n onClose: PropTypes.func,\n /** Width of the Moda: md or lg */\n size: PropTypes.string,\n showBackdrop: PropTypes.bool,\n};\n\nexport default Modal;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../Button';\nimport Modal from '../Modal';\n\n/**\n * Confirm component can be used to open a dialog () before a specific action\n */\nfunction Confirm(props) {\n const {\n children,\n title,\n description,\n confirmBtnText = 'Confirm',\n cancelBtnText = 'Cancel',\n } = props;\n const [open, setOpen] = useState(false);\n const [callback, setCallback] = useState(null);\n const [cancelCallback, setCancelCallback] = useState(null);\n\n const show = (callbackFunc, cancelCallbackFunc, beforeCallback) => (...args) => {\n if (beforeCallback) {\n beforeCallback(...args);\n }\n setOpen(true);\n setCallback(() => () => callbackFunc(...args));\n if (cancelCallbackFunc) {\n setCancelCallback(() => () => cancelCallbackFunc(...args));\n }\n };\n\n const hide = () => {\n setOpen(false);\n setCallback(null);\n setCancelCallback(null);\n };\n\n const cancel = () => {\n if (cancelCallback) {\n cancelCallback();\n }\n hide();\n };\n\n const confirm = () => {\n callback();\n hide();\n };\n\n return (\n <>\n {children(show)}\n \n \n

    {title}

    \n {description}\n
    \n \n \n {cancelBtnText}\n \n \n {confirmBtnText}\n \n \n
    \n \n );\n}\n\nConfirm.propTypes = {\n /** Sets the text for primary / confirmation button on opened modal */\n confirmBtnText: PropTypes.string,\n /** Sets the text for danger / abort button on opened modal */\n cancelBtnText: PropTypes.string,\n /** Sets the title for the opened modal */\n title: PropTypes.string,\n /** Sets the description for the opened modal */\n description: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n PropTypes.func,\n ]),\n};\n\nexport default Confirm;\n","import React, { useCallback, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport debounce from '../../utils/debounce';\n\n/**\n * FixedWrapper component, keeps all its children in a fix position on the page,\n * even if the scroll position changes\n * i.e: The top navigation bar of a page sits within FixedWrapper component\n */\nfunction FixedWrapper({ children, className, showShadow }) {\n const fixedWrapperRef = useRef(null);\n\n const attachShadow = useCallback(() => {\n const element = fixedWrapperRef.current;\n\n if (!element) {\n return;\n }\n\n if (window.scrollY) {\n element.classList.add('tyk-fixed-wrapper--scrolled');\n } else {\n element.classList.remove('tyk-fixed-wrapper--scrolled');\n }\n }, [fixedWrapperRef.current]);\n\n const debouncedAttachShadow = useCallback(debounce(attachShadow, 100), [attachShadow]);\n\n useEffect(() => {\n if (showShadow) {\n window.addEventListener('scroll', debouncedAttachShadow);\n }\n\n return () => {\n window.removeEventListener('scroll', debouncedAttachShadow);\n };\n }, [debouncedAttachShadow, showShadow]);\n\n return (\n
    \n { children }\n
    \n );\n}\n\nFixedWrapper.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** Css classes that can be passed to the FixedWraper element */\n className: PropTypes.string,\n /** If true, bottom shadow on the FixedWrapper component\n * is being displayed when scroll happens\n */\n showShadow: PropTypes.bool,\n};\n\nFixedWrapper.defaultProps = {\n className: '',\n};\n\nexport default FixedWrapper;\n","import React, {\n useEffect, useState, useRef, useCallback,\n} from 'react';\nimport { PropTypes } from 'prop-types';\n\nimport debounce from '../../utils/debounce';\nimport { usePrevious, useComponentSize } from '../../hooks';\nimport Loader from '../Loader';\n\nfunction InfiniteScroller({\n children,\n hasMore,\n initialLoad,\n loadMore,\n pageNumber,\n refChild,\n}) {\n const [showLoader, setShowLoader] = useState(false);\n const containerRef = useRef(null);\n const refChildSize = useComponentSize(refChild);\n\n useEffect(() => {\n if (initialLoad && typeof loadMore === 'function') {\n setShowLoader(false);\n loadMore(pageNumber);\n }\n }, [initialLoad]);\n\n const shouldLoad = useCallback(() => {\n if (!containerRef.current) return false;\n const { clientHeight, scrollTop } = containerRef.current;\n\n return (\n hasMore\n && (\n (clientHeight + Math.round(scrollTop) === refChildSize.height)\n || (clientHeight >= refChildSize.height)\n )\n );\n }, [containerRef, refChildSize.height]);\n\n const loadMoreData = useCallback(() => {\n if (hasMore && typeof loadMore === 'function') {\n loadMore(pageNumber + 1);\n setShowLoader(true);\n } else {\n setShowLoader(false);\n }\n }, [hasMore, pageNumber]);\n\n const prevPageNumber = usePrevious(pageNumber);\n const scrollHandler = useCallback(debounce(() => {\n if (shouldLoad() && prevPageNumber <= pageNumber) {\n loadMoreData();\n }\n }, 200), [loadMoreData, shouldLoad]);\n\n useEffect(() => {\n containerRef.current?.addEventListener('scroll', scrollHandler);\n return () => containerRef.current?.removeEventListener('scroll', scrollHandler);\n }, [containerRef, scrollHandler]);\n\n // if content resets (page number resets) scroll to top\n useEffect(() => {\n if (prevPageNumber > 0 && pageNumber === 0) {\n containerRef.current.scrollTop = 0;\n }\n }, [containerRef, pageNumber]);\n\n const prevRefChildSize = usePrevious(refChildSize);\n useEffect(() => {\n if (\n refChildSize && prevRefChildSize\n && refChildSize.height !== prevRefChildSize.height\n && showLoader === true\n ) {\n setShowLoader(false);\n }\n }, [showLoader, refChildSize.height]);\n\n useEffect(() => {\n if (\n refChild && refChildSize.height < containerRef.current.clientHeight\n && refChildSize.height\n && hasMore\n ) {\n loadMoreData();\n }\n }, [containerRef, refChildSize, refChild, hasMore]);\n\n return (\n
    \n \n { children }\n
    \n {showLoader && (\n \n )}\n
    \n );\n}\n\nInfiniteScroller.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n hasMore: PropTypes.bool,\n initialLoad: PropTypes.bool,\n pageNumber: PropTypes.number,\n loadMore: PropTypes.func,\n refChild: PropTypes.instanceOf(Object),\n};\n\nInfiniteScroller.defaultProps = {\n hasMore: true,\n};\n\nexport default InfiniteScroller;\n","import React, {\n useEffect, useRef, forwardRef,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\nimport InfiniteScroller from '../InfiniteScroller';\n\nconst VIEWPORT_INITIAL_PADDING = 5;\n\n/**\n * It displays a container relative to another element.\n * Meant to be used for dropdowns, tooltips, and other similar components.\n */\nfunction FloatingContainer({\n element,\n size = 'auto',\n forceDisplay = 'auto',\n displayAxis = 'auto',\n preferredPosition,\n offset = 0,\n className,\n children,\n infiniteScrollerConfig,\n}, ref) {\n const localRef = useRef(null);\n const floatingContainerRef = ref || localRef;\n const contentWrapperRef = useRef(null);\n // offset calculated on first render to make sure the floating container is inside the viewport\n const viewportOffset = useRef(null);\n\n function determineDisplay() {\n const target = element.current;\n const container = floatingContainerRef.current;\n if (!container) return preferredPosition ?? displayAxis === 'vertical' ? 'bottom' : 'right';\n\n const { left, top } = target.getBoundingClientRect();\n const topSpace = top;\n const bottomSpace = window.innerHeight - top - target.offsetHeight;\n const leftSpace = left;\n const rightSpace = window.innerWidth - left - target.offsetWidth;\n const hasTopSpace = topSpace > container.scrollHeight;\n const hasBottomSpace = bottomSpace > container.scrollHeight;\n const hasLeftSpace = leftSpace > container.offsetWidth;\n const hasRightSpace = rightSpace > container.offsetWidth;\n const positionedVerticallyFitsInViewport = left + target.offsetWidth / 2 - container.offsetWidth / 2 > 0; // eslint-disable-line max-len\n const positionedHorizontallyFitsInViewport = top + target.offsetHeight / 2 - container.scrollHeight / 2 > 0; // eslint-disable-line max-len\n\n if (\n displayAxis === 'vertical'\n || (\n displayAxis === 'auto'\n && (hasTopSpace || hasBottomSpace)\n && positionedVerticallyFitsInViewport\n )\n ) {\n return getDisplayForVertical({\n preferredPosition, hasTopSpace, hasBottomSpace, topSpace, bottomSpace,\n });\n }\n\n if (displayAxis === 'horizontal') {\n return getDisplayForHorizontal({\n preferredPosition, hasLeftSpace, hasRightSpace, leftSpace, rightSpace,\n });\n }\n\n return getDisplayWhereItFits({\n preferredPosition,\n hasTopSpace,\n hasBottomSpace,\n hasLeftSpace,\n hasRightSpace,\n positionedHorizontallyFitsInViewport,\n positionedVerticallyFitsInViewport,\n });\n }\n\n function adjustPosition() {\n const display = forceDisplay !== 'auto' ? forceDisplay : determineDisplay();\n const target = element.current;\n const container = floatingContainerRef.current;\n\n if (!target || !container) return;\n\n const targetPosition = target.getBoundingClientRect();\n const { left: vpLeft, top: vpTop } = viewportOffset.current ?? { left: 0, top: 0 };\n\n if (display === 'top') {\n Object.assign(container.style, getStylesForTop({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (display === 'bottom') {\n Object.assign(container.style, getStylesForBottom({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (display === 'left') {\n Object.assign(container.style, getStylesForLeft({\n targetPosition, target, container, size, offset,\n }));\n }\n\n if (display === 'right') {\n Object.assign(container.style, getStylesForRight({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (viewportOffset.current !== null) return;\n\n if (size === 'matchEnd') {\n viewportOffset.current = { left: 0, top: 0 };\n } else {\n const left = Number(container.style.left.replace('px', ''));\n const top = Number(container.style.top.replace('px', ''));\n viewportOffset.current = {\n left: left < 0 ? VIEWPORT_INITIAL_PADDING - left : 0,\n top: top < 0 ? VIEWPORT_INITIAL_PADDING - top : 0,\n };\n }\n }\n\n useEffect(() => {\n window.requestAnimationFrame(function schedulePositionUpdate() {\n adjustPosition();\n window.requestAnimationFrame(schedulePositionUpdate);\n });\n }, []);\n\n return createPortal(\n \n \n \n {children}\n
    \n \n
    ,\n document.querySelector('body'),\n );\n}\n\nFloatingContainer.propTypes = {\n /** A DOM element that the floating container will be displayed relative to. */\n element: PropTypes.instanceOf(Object),\n className: PropTypes.string,\n /** The size of the container.\n * If `auto` the size will be determined by its contents.\n * If `matchElement` it will take the width or the height of the element depending\n * on the `displayAxis` prop.\n * It can also be a function that returns a number representing the width\n * or the height in pixels.\n */\n size: PropTypes.oneOfType([\n PropTypes.oneOf(['auto', 'matchElement', 'matchStart', 'matchEnd']),\n PropTypes.func,\n ]),\n /**\n * The distance between the element and the floating container.\n * It can be positive or negative.\n */\n offset: PropTypes.number,\n /**\n * If `auto` the component will try to determine where to display the container relative to the\n * element (top, bottom, left, right).\n * It can also be one of top, bottom, left, right, to force the floating container to always be\n * displayed in that position.\n */\n forceDisplay: PropTypes.oneOf(['auto', 'top', 'bottom', 'left', 'right']),\n /**\n * It can be `auto`, `vertical` or `horizontal`. It specifies the axis where\n * it will be displayed when `forceDisplay` is `auto`.\n */\n displayAxis: PropTypes.oneOf(['auto', 'vertical', 'horizontal']),\n /**\n * If there is space on both sides of the axis preffer this side.\n */\n preferredPosition: PropTypes.oneOf(['top', 'bottom', 'left', 'right']),\n /**\n * Configuration object that will be passed to the infinite scroller component.\n */\n infiniteScrollerConfig: PropTypes.instanceOf(Object),\n};\n\nexport default forwardRef(FloatingContainer);\n\nfunction getDisplayForVertical({\n preferredPosition, hasTopSpace, hasBottomSpace, topSpace, bottomSpace,\n}) {\n if (preferredPosition === 'top' && hasTopSpace) return 'top';\n if (preferredPosition === 'bottom' && hasBottomSpace) return 'bottom';\n return hasBottomSpace || bottomSpace > topSpace ? 'bottom' : 'top';\n}\n\nfunction getDisplayForHorizontal({\n preferredPosition, hasLeftSpace, hasRightSpace, leftSpace, rightSpace,\n}) {\n if (preferredPosition === 'left' && hasLeftSpace) return 'left';\n if (preferredPosition === 'right' && hasRightSpace) return 'right';\n return hasRightSpace || rightSpace > leftSpace ? 'right' : 'left';\n}\n\nfunction getDisplayWhereItFits({\n preferredPosition, hasTopSpace, hasBottomSpace, hasLeftSpace, hasRightSpace,\n positionedHorizontallyFitsInViewport, positionedVerticallyFitsInViewport,\n}) {\n if (hasTopSpace && positionedVerticallyFitsInViewport) return 'top';\n if (hasBottomSpace && positionedVerticallyFitsInViewport) return 'bottom';\n if (hasRightSpace && positionedHorizontallyFitsInViewport) return 'right';\n if (hasLeftSpace && positionedHorizontallyFitsInViewport) return 'left';\n return preferredPosition ?? 'bottom';\n}\n\nfunction getStylesForTop({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = {\n auto: targetPosition.left + target.offsetWidth / 2 - container.offsetWidth / 2,\n matchElement: targetPosition.left,\n matchStart: targetPosition.left,\n matchEnd: targetPosition.right - container.offsetWidth,\n }[size];\n const topPos = targetPosition.top - container.offsetHeight - offset;\n style.left = `${leftPos + vpLeft}px`;\n style.top = `${topPos + vpTop}px`;\n\n if (size === 'matchElement') {\n style.width = `${target.offsetWidth}px`;\n } else if (size === 'matchEnd') {\n style.maxWidth = `${targetPosition.right - VIEWPORT_INITIAL_PADDING}px`;\n } else if (typeof size === 'function') {\n style.width = `${size(target.offsetWidth)}px`;\n }\n style.maxHeight = `${targetPosition.top - offset}px`;\n return style;\n}\n\nfunction getStylesForBottom({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = {\n auto: targetPosition.left + target.offsetWidth / 2 - container.offsetWidth / 2,\n matchElement: targetPosition.left,\n matchStart: targetPosition.left,\n matchEnd: targetPosition.right - container.offsetWidth,\n }[size];\n const topPos = targetPosition.bottom + offset;\n style.left = `${leftPos + vpLeft}px`;\n style.top = `${topPos + vpTop}px`;\n\n if (size === 'matchElement') {\n style.width = `${target.offsetWidth}px`;\n } else if (size === 'matchEnd') {\n style.maxWidth = `${targetPosition.right - VIEWPORT_INITIAL_PADDING}px`;\n } else if (typeof size === 'function') {\n style.width = `${size(target.offsetWidth)}px`;\n }\n style.maxHeight = `${window.innerHeight - targetPosition.bottom - offset}px`;\n return style;\n}\n\nfunction getStylesForLeft({\n targetPosition, target, container, size, offset,\n}) {\n const style = {};\n const leftPos = targetPosition.left - container.offsetWidth - offset;\n const topPos = {\n auto: targetPosition.top + target.offsetHeight / 2 - container.offsetHeight / 2,\n matchElement: targetPosition.top,\n matchStart: targetPosition.top,\n matchEnd: targetPosition.bottom - container.offsetHeight,\n }[size];\n style.left = `${leftPos}px`;\n style.top = `${topPos}px`;\n\n if (size === 'matchElement') {\n style.height = `${target.offsetHeight}px`;\n } else if (typeof size === 'function') {\n style.height = `${size(target.offsetHeight)}px`;\n }\n style.maxWidth = `${targetPosition.left - offset}px`;\n return style;\n}\n\nfunction getStylesForRight({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = targetPosition.left + target.offsetWidth + offset;\n const topPos = {\n auto: targetPosition.top + target.offsetHeight / 2 - container.offsetHeight / 2,\n matchElement: targetPosition.top,\n matchStart: targetPosition.top,\n matchEnd: targetPosition.bottom - container.offsetHeight,\n }[size];\n style.left = size === 'auto' ? `${leftPos + vpLeft}px` : `${leftPos}px`;\n style.top = size === 'auto' ? `${topPos + vpTop}px` : `${topPos}px`;\n\n if (size === 'matchElement') {\n style.height = `${target.offsetHeight}px`;\n } else if (typeof size === 'function') {\n style.height = `${size(target.offsetHeight)}px`;\n }\n style.maxWidth = `${window.innerWidth - targetPosition.left - target.offsetWidth - offset}px`;\n return style;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../Message';\n\nfunction InfoNote({ children }) {\n return (\n
    \n \n { children }\n \n
    \n );\n}\n\nInfoNote.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default InfoNote;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ListItem(props) {\n const {\n className,\n children,\n selected,\n } = props;\n\n return (\n
  • \n {children}\n
  • \n );\n}\n\nListItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n selected: PropTypes.bool,\n};\n\nListItem.defaultProps = {\n className: '',\n};\n\nexport default ListItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ListItem from './js/ListItem';\n\nfunction List(props) {\n const {\n className,\n children,\n label,\n labelwidth,\n theme,\n style,\n } = props;\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-list'];\n\n if (theme) {\n cssClasses.push(`tyk-list--${theme}`);\n }\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n };\n\n const getListStyle = () => {\n const styleCopy = structuredClone(style);\n if (labelwidth) {\n styleCopy.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styleCopy;\n };\n\n return (\n
    \n {\n label !== undefined\n ? (\n \n )\n : null\n }\n
      \n {children}\n
    \n
    \n );\n}\n\nList.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n label: PropTypes.string,\n labelwidth: PropTypes.string,\n theme: PropTypes.string,\n style: PropTypes.instanceOf(Object),\n};\n\nList.defaultProps = {\n theme: 'default',\n style: {},\n};\n\nList.Item = ListItem;\n\nexport default List;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction NavBar({\n align = 'center',\n children,\n left,\n right,\n title,\n pre,\n subtitle,\n withTabs,\n}) {\n const subtitleContent = subtitle ?

    { subtitle }

    : null;\n return (\n
    \n
    \n {pre && (\n
    {pre}
    \n )}\n {\n title\n ? (\n
    \n

    { title }

    \n { subtitleContent }\n
    \n )\n : subtitleContent\n }\n
    \n {left && (\n
    { left }
    \n )}\n {right && (\n
    { right }
    \n )}\n
    \n
    \n { children }\n
    \n );\n}\n\nNavBar.propTypes = {\n align: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n title: PropTypes.string,\n subtitle: PropTypes.string,\n pre: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n left: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n right: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n withTabs: PropTypes.bool,\n};\n\nexport default NavBar;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction NavigationItem({ children }) {\n return (\n
  • \n {children}\n
  • \n );\n}\n\nNavigationItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nexport default NavigationItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport NavigationItem from './js/NavigationItem';\n\nfunction Navigation({ children }) {\n return (\n
      \n {children}\n
    \n );\n}\n\nNavigation.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nNavigation.Item = NavigationItem;\n\nexport default Navigation;\n","import { createContext } from 'react';\n\nexport const PortalContext = createContext();\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Collapsible from '../../Collapsible';\nimport { PortalContext } from '../panel-context';\n\nfunction PanelBody({\n children,\n noPadding,\n className,\n ...rest\n}) {\n const getCssClasses = useCallback(\n () => [\n 'tyk-panel__body',\n className,\n noPadding && 'no-padding',\n ].filter(Boolean).join(' '),\n [className, noPadding],\n );\n\n return (\n \n {\n (portalContext) => (\n portalContext.collapsable\n ? (\n \n { children }\n \n )\n : (\n \n { children }\n
    \n )\n )\n }\n \n );\n}\n\nPanelBody.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n noPadding: PropTypes.bool,\n className: PropTypes.string,\n};\n\nexport default PanelBody;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction PanelFooter(props) {\n const { children } = props;\n return (\n
    \n { children }\n
    \n );\n}\n\nPanelFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default PanelFooter;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport { PortalContext } from '../panel-context';\n\nclass PanelHeader extends Component {\n getCssClasses(props) {\n const { className } = this.props;\n let cssClasses = ['tyk-panel__header'];\n\n if (props.collapsable) {\n cssClasses.push('collapsable');\n }\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n }\n\n render() {\n const {\n children,\n } = this.props;\n\n return (\n \n {\n (portalContext) => {\n const HeaderTag = portalContext.theme === 'blank' ? 'h3' : 'div';\n const iconType = portalContext.collapsed ? 'chevron-down' : 'chevron-up';\n\n return (\n \n { children }\n {\n portalContext.collapsable\n ?
    \n : null\n }\n \n );\n }\n }\n
    \n );\n }\n}\n\nPanelHeader.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]).isRequired,\n className: PropTypes.string,\n};\n\nexport default PanelHeader;\n","import React, {\n useCallback, useEffect, useMemo, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport PanelBody from './js/PanelBody';\nimport PanelFooter from './js/PanelFooter';\nimport PanelHeader from './js/PanelHeader';\n\nimport { PortalContext } from './panel-context';\n\nfunction Panel(props) {\n const {\n children,\n className,\n collapsed,\n collapsable,\n theme,\n onToggleCollapse,\n collapsibleIconPosition = 'right',\n } = props;\n const [collapsedState, setCollapsedState] = useState(collapsed || false);\n\n useEffect(() => {\n if (collapsed !== collapsedState) {\n setCollapsedState(collapsed);\n }\n }, [collapsed]);\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-panel'];\n const panelTheme = `tyk-panel--${theme || 'default'}`;\n const collapsbleIconPosition = `tyk-panel__icon-collapse--${collapsibleIconPosition}`;\n\n cssClasses.push(panelTheme);\n cssClasses.push(collapsbleIconPosition);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n if (collapsedState) {\n cssClasses.push('tyk-panel--collapsed');\n }\n\n return cssClasses.join(' ');\n };\n\n const handleToggle = useCallback(() => {\n setCollapsedState(!collapsedState);\n\n if (onToggleCollapse) {\n onToggleCollapse(!collapsedState);\n }\n }, [collapsedState, onToggleCollapse]);\n\n const context = useMemo(() => ({\n collapsable,\n collapsed: collapsedState,\n onToggle: handleToggle,\n theme,\n collapsibleIconPosition,\n }), [collapsable, collapsedState, collapsibleIconPosition, theme, handleToggle]);\n\n return (\n
    \n \n {\n (typeof children === 'function')\n ? children({\n toggleCollapse: handleToggle,\n })\n : children\n }\n \n
    \n );\n}\n\nPanel.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n collapsable: PropTypes.bool,\n collapsibleIconPosition: PropTypes.string,\n collapsed: PropTypes.bool,\n theme: PropTypes.string,\n onToggleCollapse: PropTypes.func,\n};\n\nPanel.Body = PanelBody;\nPanel.Footer = PanelFooter;\nPanel.Header = PanelHeader;\n\nexport default Panel;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * Pill\n */\nfunction Pill(props) {\n const {\n children,\n className,\n theme,\n } = props;\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-pill', ...theme.split(' ').map((t) => `tyk-pill--${t}`)];\n\n if (className) {\n cssClasses = cssClasses.concat(className);\n }\n\n return cssClasses.join(' ');\n };\n\n return (\n
    \n {children}\n
    \n );\n}\n\nPill.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n /** Css classes that can be passed to the Pill element */\n className: PropTypes.string,\n /** Theme that can be applied to a Pill */\n theme: PropTypes.string,\n};\n\nPill.defaultProps = {\n theme: 'default',\n};\n\nexport default Pill;\n","import { useRef } from 'react';\n\n/**\n * RevealPanelService is a class that manages the resizing of a panel element.\n * It provides methods to set the panel's height, hide and show it, and attach\n * event listeners for resizing.\n */\nclass RevealPanelService {\n #state = null; // Private state for mouse interactions.\n\n #panel = null; // The panel element to be resized.\n\n #gutter = null; // The gutter element used for resizing.\n\n #wrapper = null; // The wrapper element that contains the panel and gutter.\n\n #onHeightChangeCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #onDragStartCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #onDragEndCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #dragStarted = false;\n\n /**\n * Sets a callback function to be executed when the panel is resized.\n * @param {function} callback - The callback function to be called on panel resize.\n */\n on(eventName, listener) {\n let list = null;\n if (eventName === 'onHeightChange') {\n list = this.#onHeightChangeCallbacks;\n } else if (eventName === 'onDragStart') {\n list = this.#onDragStartCallbacks;\n } else if (eventName === 'onDragEnd') {\n list = this.#onDragEndCallbacks;\n }\n\n if (list) {\n this.addListener(list, listener);\n }\n }\n\n off(eventName, listener) {\n let list = null;\n if (eventName === 'onHeightChange') {\n list = this.#onHeightChangeCallbacks;\n } else if (eventName === 'onDragStart') {\n list = this.#onDragStartCallbacks;\n } else if (eventName === 'onDragEnd') {\n list = this.#onDragEndCallbacks;\n }\n\n if (list) {\n this.removeListener(list, listener);\n }\n }\n\n /**\n * Sets the panel, gutter, and wrapper elements to be controlled by this class.\n * @param {HTMLElement} wrapper - The wrapper element containing the panel and gutter.\n * @param {HTMLElement} panel - The panel element to be resized.\n * @param {HTMLElement} gutter - The gutter element used for resizing.\n */\n setRefs(wrapper, panel, gutter) {\n if (this.#panel || this.#gutter || this.#wrapper) {\n this.unbindEvents();\n }\n this.#wrapper = wrapper;\n this.#panel = panel;\n this.#gutter = gutter;\n this.#state = null;\n this.bindEvents();\n }\n\n /**\n * Attaches event listeners for panel resizing.\n */\n bindEvents() {\n this.ensureRefs('bindEvents');\n this.#gutter.addEventListener('mousedown', this.onMouseDown.bind(this));\n document.addEventListener('mousemove', this.onMouseMove.bind(this));\n document.addEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n /**\n * Gets the current height of the panel.\n * @returns {number} - The height of the panel in pixels.\n */\n getHeight() {\n this.ensureRefs('getHeight');\n const size = this.#panel.getBoundingClientRect();\n return size.height;\n }\n\n /**\n * Handles the mouse down event, initiating the resizing process.\n * @param {MouseEvent} e - The mouse event object.\n */\n onMouseDown(e) {\n this.ensureRefs('onMouseDown');\n this.#state = {\n mouseDown: true,\n initialRect: this.#panel.getBoundingClientRect(),\n initialEvent: e,\n };\n }\n\n /**\n * Handles the mouse move event, adjusting the panel's height during resizing.\n * @param {MouseEvent} e - The mouse event object.\n */\n onMouseMove(e) {\n this.ensureRefs('onMouseMove');\n\n if (!this.#state) {\n return;\n }\n\n const isButtonDown = this.isPrimaryMouseButtonDown(e);\n if (!isButtonDown) {\n this.onMouseUp();\n return;\n }\n\n if (!this.#dragStarted) {\n this.#dragStarted = true;\n this.onDragStart.bind(this)();\n }\n\n const newY = this.#state.initialEvent.y - e.y;\n const finalHeight = Math.ceil(this.#state.initialRect.height + newY);\n this.setHeight(`${finalHeight}px`, 'mousemove');\n }\n\n // eslint-disable-next-line class-methods-use-this\n notifyListeners(list, value) {\n if (list && Array.isArray(list) && list.length) {\n list.forEach((fn) => {\n if (typeof fn === 'function') {\n fn(value);\n }\n });\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n addListener(list, listener) {\n if (list && Array.isArray(list) && typeof listener === 'function') {\n list.push(listener);\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n removeListener(list, listener) {\n if (list && Array.isArray(list) && typeof listener === 'function' && list.length) {\n const index = list.indexOf(listener);\n\n if (index > -1) {\n list.splice(index, 1);\n }\n }\n }\n\n onDragEnd() {\n if (this.#dragStarted) {\n this.notifyListeners(this.#onDragEndCallbacks, this.getHeight());\n }\n }\n\n onDragStart() {\n this.notifyListeners(this.#onDragStartCallbacks, this.getHeight());\n }\n\n // eslint-disable-next-line class-methods-use-this\n isPrimaryMouseButtonDown(e) {\n const flags = e.buttons !== undefined ? e.buttons : e.which;\n // eslint-disable-next-line no-bitwise\n const isDown = flags === 1;\n return isDown;\n }\n\n /**\n * Resets the state after the mouse up event, ending the resizing process.\n */\n onMouseUp() {\n this.#state = null;\n this.onDragEnd.bind(this)();\n this.#dragStarted = false;\n }\n\n /**\n * Sets the height of the panel.\n * @param {string} height - The new height value as a CSS string (e.g., \"100px\").\n */\n setHeight(height) {\n let heightVal = height;\n this.ensureRefs('setHeight');\n\n if (typeof heightVal === 'number') {\n heightVal += 'px';\n }\n\n this.#panel.style.height = heightVal;\n\n this.notifyListeners(this.#onHeightChangeCallbacks, this.getHeight());\n }\n\n /**\n * Ensures that the required elements (wrapper, panel, and gutter) are set.\n * Throws an error if they are missing.\n */\n ensureRefs(reason) {\n if (!this.#panel || !this.#gutter || !this.#wrapper) {\n throw new Error(\n `${reason}: Wrapper, panel, and gutter elements are required. Use setRefs method first.`,\n );\n }\n }\n\n /**\n * Checks if the panel is hidden.\n * @returns {boolean} - True if the panel is hidden; false otherwise.\n */\n isHidden() {\n this.ensureRefs('isHidden');\n return this.#wrapper.style.visibility === 'hidden';\n }\n\n /**\n * Hides the panel by setting its visibility to \"hidden\".\n */\n hide() {\n this.ensureRefs('hide');\n this.#wrapper.style.visibility = 'hidden';\n }\n\n /**\n * Shows the panel by setting its visibility to \"visible\".\n */\n show() {\n this.ensureRefs('show');\n this.#wrapper.style.visibility = 'visible';\n }\n\n /**\n * Unbinds the event listeners added for resizing.\n */\n unbindEvents() {\n this.#onHeightChangeCallbacks = [];\n this.#onDragStartCallbacks = [];\n this.#onDragEndCallbacks = [];\n this.#gutter.removeEventListener('mousedown', this.onMouseDown.bind(this));\n document.removeEventListener('mousemove', this.onMouseMove.bind(this));\n document.removeEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n deinit() {\n this.unbindEvents();\n }\n}\n\nexport const useRevealPanelService = () => {\n const revealPanelServiceRef = useRef(new RevealPanelService());\n return revealPanelServiceRef.current;\n};\n","import React, {\n useEffect,\n useRef,\n useImperativeHandle,\n forwardRef,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { createPortal } from 'react-dom';\nimport { useRevealPanelService } from './js/RevealPanelService';\n\nfunction RevealPanelHeaderLeft({ children }) {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <>{children};\n}\n\nRevealPanelHeaderLeft.propTypes = {\n children: PropTypes.instanceOf({}),\n};\n\nfunction RevealPanelHeaderRight({ children }) {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <>{children};\n}\n\nRevealPanelHeaderRight.propTypes = {\n children: PropTypes.instanceOf({}),\n};\n\nconst mergeClasses = (...classNames) => classNames.map((it) => (it || '').trim()).filter(Boolean).join(' ');\n\nfunction RevealPanel({\n children,\n height,\n onHeightChange = null,\n onDragStart = null,\n onDragEnd = null,\n style = null,\n parentSelector = null,\n contentStyle,\n contentClassName,\n gutterClassName,\n wrapperClassName,\n// eslint-disable-next-line consistent-return\n}, ref) {\n const panelRef = useRef(null);\n const gutterRef = useRef(null);\n const wrapperRef = useRef(null);\n\n const panelService = useRevealPanelService();\n\n useEffect(() => {\n if (!panelRef.current || !gutterRef.current || !wrapperRef.current) {\n return;\n }\n\n if (!panelService) {\n return;\n }\n\n panelService.setRefs(wrapperRef.current, panelRef.current, gutterRef.current);\n panelService.on('onHeightChange', onHeightChange);\n panelService.on('onDragStart', onDragStart);\n panelService.on('onDragEnd', onDragEnd);\n panelService.setHeight(height, 'initialize');\n\n // eslint-disable-next-line consistent-return\n return () => {\n panelService.unbindEvents();\n };\n }, []);\n\n useImperativeHandle(\n ref,\n () => {\n // bind this context\n const bind = (func) => func.bind(panelService);\n\n return {\n getHeight: bind(panelService.getHeight),\n setHeight: bind(panelService.setHeight),\n hide: bind(panelService.hide),\n show: bind(panelService.show),\n isHidden: bind(panelService.isHidden),\n deinit: bind(panelService.deinit),\n on: bind(panelService.on),\n off: bind(panelService.off),\n };\n },\n [],\n );\n\n let headerLeft = null;\n let headerRight = null;\n const contents = [];\n\n React.Children.forEach(children, (child) => {\n if (child && React.isValidElement(child)) {\n if (child.type === RevealPanelHeaderLeft) {\n headerLeft = child;\n } else if (child.type === RevealPanelHeaderRight) {\n headerRight = child;\n } else {\n contents.push(child);\n }\n }\n });\n\n const element = (\n
    \n
    \n
    \n\n
    {headerLeft}
    \n
    \n
    {headerRight}
    \n\n
    \n
    \n {contents}\n
    \n
    \n );\n\n if (parentSelector) {\n return createPortal(element, document.querySelector(parentSelector));\n }\n}\n\nRevealPanel.propTypes = {\n children: PropTypes.instanceOf({}),\n height: PropTypes.string,\n onHeightChange: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragEnd: PropTypes.func,\n parentSelector: PropTypes.string,\n style: PropTypes.instanceOf({}),\n contentStyle: PropTypes.instanceOf({}),\n contentClassName: PropTypes.string,\n gutterClassName: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\nconst TempRevealPanel = forwardRef(RevealPanel);\nTempRevealPanel.HeaderLeft = RevealPanelHeaderLeft;\nTempRevealPanel.HeaderRight = RevealPanelHeaderRight;\n\nexport default TempRevealPanel;\n","import { createContext } from 'react';\n\nexport const TabsContext = createContext();\n","import { createContext } from 'react';\n\nexport default createContext();\n","import React, { useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport TabContext from './TabContext';\nimport { usePrevious } from '../../../hooks';\n\nfunction TabContent(props) {\n const {\n addTab,\n hideTab,\n updateTab,\n showTab,\n children,\n selectedPath,\n tabData,\n tabsId,\n tabExists,\n path,\n rendered,\n hideTabContent,\n tabs,\n } = props;\n\n useEffect(() => {\n const tempTabData = { ...tabData };\n\n if (!tabExists(path)) {\n addTab(tempTabData, path);\n }\n }, [tabData, path]);\n\n const prevTabData = usePrevious(tabData);\n useEffect(() => {\n if (\n tabExists(path) && tabData?.title\n && (prevTabData?.title !== tabData?.title || prevTabData?.selected !== tabData.selected)\n ) {\n const tempTabData = { ...tabData };\n updateTab(tempTabData, path);\n }\n }, [tabData, path, prevTabData, tabs]);\n\n useEffect(() => {\n showTab(path);\n return () => hideTab(path);\n }, []);\n\n const shouldRender = useMemo(() => {\n if (!Object.keys(tabs).length) {\n return false;\n }\n\n if (hideTabContent || tabs[tabData.id].show === false) {\n return false;\n }\n\n if (!rendered) {\n return tabExists(path);\n }\n return selectedPath && selectedPath.indexOf(tabData.id) > -1;\n }, [hideTabContent, rendered, selectedPath, tabData, tabs]);\n\n const context = useMemo(() => ({ path, tabsId }), [path, tabsId]);\n\n if (!shouldRender) return null;\n return (\n
    -1 ? 'block' : 'none' }}>\n \n {children}\n \n
    \n );\n}\n\nTabContent.propTypes = {\n addTab: PropTypes.func,\n updateTab: PropTypes.func,\n hideTab: PropTypes.func,\n showTab: PropTypes.func,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n path: PropTypes.instanceOf(Array),\n hideTabContent: PropTypes.bool,\n rendered: PropTypes.bool,\n selectedPath: PropTypes.instanceOf(Array),\n tabExists: PropTypes.func,\n tabsId: PropTypes.string,\n tabData: PropTypes.instanceOf(Object),\n tabs: PropTypes.instanceOf(Object),\n};\n\nexport default TabContent;\n","import React, {\n useContext, useEffect, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { TabsContext } from '../tabs-context';\nimport TabContext from './TabContext';\nimport TabContent from './TabContent';\n\nfunction Tab(props) {\n const { id } = props;\n const tabsContext = useContext(TabsContext);\n const tabContext = useContext(TabContext);\n const {\n tabExists,\n selectedPath,\n addTab,\n updateTab,\n hideTab,\n showTab,\n rendered,\n hideTabContent,\n tabs,\n } = tabsContext;\n const {\n children,\n } = props;\n const [path, setPath] = useState('');\n\n useEffect(() => {\n let tempPath;\n if (tabContext && path) {\n if (tabContext.tabsId === tabsContext.id) {\n tempPath = tabContext.path.concat([id]);\n } else {\n tempPath = [id];\n }\n } else {\n tempPath = [id];\n }\n setPath(tempPath);\n }, [tabContext]);\n\n if (!path) {\n return null;\n }\n\n return (\n \n {children}\n \n );\n}\n\nTab.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n id: PropTypes.string,\n};\n\nTab.defaultProps = {};\n\nexport default Tab;\n","import React, {\n useEffect, useMemo, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport Tab from './js/Tab';\n\nimport Collapsible from '../Collapsible';\nimport Icon from '../Icon';\nimport { TabsContext } from './tabs-context';\n\nfunction Tabs(props) {\n const {\n children,\n className,\n id,\n onTabChange,\n type,\n hideTabContent,\n } = props;\n const [tabs, setTabs] = useState({});\n const [selectedPath, setSelectedPath] = useState([]);\n const [rendered, setRendered] = useState(false);\n const [initialPath, setInitialPath] = useState(null);\n\n useEffect(() => {\n setSelectedPath(initialPath);\n }, [initialPath]);\n\n const updateTabsList = (tabsState, path, tabData) => {\n let tempTabsState = { ...tabsState };\n const tempTabData = { ...tabData };\n const tempPath = path.slice(0);\n\n while (tempPath.length > 1) {\n tempTabsState = tempTabsState[tempPath.shift()];\n\n if (!tempTabsState) {\n tempTabsState = {};\n }\n }\n\n tempTabData.tempPath = tempPath;\n tempTabsState[tempPath.shift()] = tempTabData;\n\n return tempTabsState;\n };\n\n const toggleTab = (tabsState, path) => {\n let tempTabsState = { ...tabsState };\n const tempPath = path.slice(0);\n\n while (tempPath.length > 1) {\n tempTabsState = tempTabsState[tempPath.shift()];\n }\n\n const key = tempPath.shift();\n if (tempTabsState[key].collapsed === undefined) {\n tempTabsState[key].collapsed = true;\n } else {\n tempTabsState[key].collapsed = !tempTabsState[key].collapsed;\n }\n\n return tempTabsState;\n };\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-tabs'];\n\n cssClasses.push(`tyk-tabs--${type || 'default'}`);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n };\n\n const setCurrentSelectedPath = (path, tabData) => {\n const tempPath = path.slice(0);\n let tempRendered = true;\n\n if (tabData.collapsible) {\n tempPath.push(Object.keys(tabData.tabs)[0]);\n tempRendered = false;\n }\n\n setTabs((prevTabs) => {\n let tempTabs = { ...prevTabs };\n\n tempTabs = toggleTab(tempTabs, path);\n\n return tempTabs;\n });\n setSelectedPath(tempPath);\n setRendered(tempRendered);\n\n if (onTabChange) {\n onTabChange(tabData);\n }\n };\n\n const getTabCssClass = (tabId) => {\n const cssClasses = [];\n\n if (selectedPath && selectedPath.indexOf(tabId) > -1) {\n cssClasses.push('active');\n }\n\n return cssClasses.join(' ');\n };\n\n const genTabs = (currentTabs, path) => {\n if (!currentTabs) {\n return null;\n }\n\n return (\n
      \n {\n Object.keys(currentTabs).map((tabId, index) => {\n const tempPath = path ? path.concat([currentTabs[tabId].id]) : [currentTabs[tabId].id];\n const iconType = currentTabs[tabId].collapsed ? 'chevron-up' : 'chevron-down';\n\n if (currentTabs[tabId].show === false) {\n return null;\n }\n\n return (\n
    • \n \n { currentTabs[tabId].title }\n {\n currentTabs[tabId].collapsible\n ? \n : null\n }\n \n {\n currentTabs[tabId].collapsible\n ? (\n \n {genTabs(currentTabs[tabId].tabs, tempPath)}\n \n )\n : genTabs(currentTabs[tabId].tabs, tempPath)\n }\n
    • \n );\n })\n }\n
    \n );\n };\n\n const addTab = (tabData, path) => {\n setTabs((prevTabs) => updateTabsList({ ...prevTabs }, path, tabData));\n\n if (tabData.selected) {\n setInitialPath(path);\n }\n };\n\n const updateTab = (tabData, path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n tempTabs[tabData.id] = tabData;\n return tempTabs;\n });\n\n if (tabData.selected) {\n setCurrentSelectedPath(path, tabData);\n }\n };\n\n const hideTab = (path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n tempTabs[path].show = false;\n\n return tempTabs;\n });\n };\n\n const showTab = (path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n\n tempTabs[path].show = true;\n\n return tempTabs;\n });\n };\n\n const tabExists = (path) => {\n let tempTabs = { ...tabs };\n const tempPath = path.slice(0);\n while (tempPath.length > 1) {\n tempTabs = tempTabs[tempPath.shift()];\n }\n\n const key = tempPath.shift();\n\n return Boolean(tempTabs?.[key]);\n };\n\n const context = useMemo(() => ({\n id,\n addTab,\n hideTab,\n updateTab,\n showTab,\n tabExists,\n selectedPath,\n rendered,\n hideTabContent,\n tabs,\n }), [\n id,\n addTab,\n hideTab,\n updateTab,\n showTab,\n tabExists,\n selectedPath,\n rendered,\n hideTabContent,\n tabs,\n ]);\n\n return (\n
    \n {genTabs(tabs)}\n \n {\n (typeof children === 'function')\n ? children({\n hideTab,\n showTab,\n })\n : children\n }\n \n
    \n );\n}\n\nTabs.propTypes = {\n className: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n hideTabContent: PropTypes.bool,\n id: PropTypes.string,\n onTabChange: PropTypes.func,\n type: PropTypes.string,\n};\n\nTabs.Tab = Tab;\n\nexport default Tabs;\n","import React, {\n useCallback, useEffect, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport FloatingContainer from '../FloatingContainer';\nimport Icon from '../Icon';\n\nfunction Tooltip({\n render,\n className,\n children,\n position = 'auto',\n style,\n icon = false,\n closable,\n isOpened = false,\n additionalClickParents = [],\n ...props\n}) {\n const [isActive, setIsActive] = useState(false);\n const wrapperRef = useRef(null);\n const tooltipRef = useRef(null);\n const activeEvents = closable\n ? {\n onClick: () => setIsActive(true),\n }\n : {\n onMouseEnter: () => setIsActive(true),\n onMouseLeave: () => setIsActive(false),\n onFocus: () => setIsActive(true),\n onBlur: () => setIsActive(false),\n };\n\n const handleDocumentClick = useCallback((e) => {\n if ([...additionalClickParents, tooltipRef.current].some((p) => p?.contains?.(e.target))) {\n return;\n }\n setIsActive(false);\n }, [additionalClickParents]);\n\n useEffect(() => {\n document.addEventListener('click', handleDocumentClick, true);\n return () => document.removeEventListener('click', handleDocumentClick, true);\n }, [handleDocumentClick]);\n\n useEffect(() => {\n setIsActive(isOpened);\n }, [isOpened]);\n\n const classes = ['tyk-tooltip', className].filter(Boolean).join(' ');\n return (\n \n {children}\n {isActive && (\n \n
    \n {icon && (\n icon === true ? (\n \n ) : (\n icon\n )\n )}\n
    \n {render}\n
    \n {closable && (\n {\n e.stopPropagation();\n setIsActive(false);\n }}\n />\n )}\n
    \n \n )}\n
    \n );\n}\n\nTooltip.propTypes = {\n children: PropTypes.node.isRequired,\n /** custom styles to apply on hovered element */\n style: PropTypes.instanceOf(Object),\n /** describes where the tooltip should be displayed in relation\n * whith the hovered element: top, bottom, left, right\n */\n position: PropTypes.string,\n /** content of the tooltip, can be a string or a React node element */\n render: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.string,\n ]),\n /** additional tooltip classes */\n className: PropTypes.string,\n /** if `true` displays the \"question mark\" icon;\n * optionally you can pass a different icon\n */\n icon: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.node,\n ]),\n /** if `true` the tooltip is activated on click and an \"x\" is displayed to close it;\n * if `false` the tooltip is activated on hover and it closes when no longer hovering\n */\n closable: PropTypes.bool,\n /** handles the `isActive` state of the tooltip from outside */\n isOpened: PropTypes.bool,\n /** Additional dom elements to check if the document click was inside of them.\n * Useful when you want to open the tooltip after an interaction\n * with an element not inside the tooltip root.\n */\n additionalClickParents: PropTypes.instanceOf(Array),\n};\n\nexport default Tooltip;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Tooltip from '../Tooltip';\n/**\n * TextEllipsis component helps you to hide a part of a text,\n * but displaying it when it's being hovered.\n * The entire text is displayed with the help of Tooltip component\n */\n\nfunction TextEllipsis({ text, limit, position }) {\n return (\n text.length > limit\n ? (\n \n {text.substring(0, limit)}\n ...\n \n )\n : text\n );\n}\n\nTextEllipsis.propTypes = {\n /** Text to be shrinked by TextEllipsis */\n text: PropTypes.string,\n /** Number of characters that TextEllipsis would leave visible */\n limit: PropTypes.number,\n /** tooltip position */\n position: PropTypes.string,\n};\n\nexport default TextEllipsis;\n","import React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction shouldShowPage(currentNr, pageNr, totalNrOfPages) {\n const basePageNr = 5;\n const minimumNrOfPages = 10;\n\n if (totalNrOfPages < minimumNrOfPages) {\n return true;\n }\n\n if (\n pageNr < basePageNr\n && currentNr < basePageNr\n ) {\n return true;\n }\n\n if (\n pageNr > totalNrOfPages - basePageNr\n && currentNr > totalNrOfPages - basePageNr\n ) {\n return true;\n }\n\n if (\n currentNr >= pageNr - 2\n && currentNr <= pageNr + 2\n ) {\n return true;\n }\n\n return [0, 1, totalNrOfPages - 1, totalNrOfPages].includes(currentNr);\n}\n\nfunction getPagesArr(nrOfPages, selectedPage) {\n let i;\n const pagesArr = [];\n\n for (i = 0; i <= nrOfPages; i += 1) {\n if (shouldShowPage(i, selectedPage, nrOfPages)) {\n if (i > pagesArr.at(-1)) {\n pagesArr.push(`...-${i}`);\n }\n pagesArr.push(i + 1);\n }\n }\n\n return pagesArr;\n}\n\nfunction Pagination(props) {\n const {\n value = 0,\n totalNrOfPages,\n onChange,\n } = props;\n\n const [selectedPage, setSelectedPage] = useState(value);\n\n const pagesArray = useMemo(\n () => getPagesArr(totalNrOfPages, selectedPage),\n [selectedPage, totalNrOfPages],\n );\n\n function goToPage(pageNr) {\n setSelectedPage(pageNr);\n if (onChange) onChange(pageNr);\n }\n\n return (\n totalNrOfPages\n ? (\n
      \n {selectedPage > 0 && totalNrOfPages > 5 && (\n
    • \n \n
    • \n )}\n {\n pagesArray.map((pageNr) => (\n
    • \n {\n String(pageNr).startsWith('...')\n ? ...\n : \n }\n
    • \n ))\n }\n {selectedPage < totalNrOfPages && totalNrOfPages > 5 && (\n
    • \n \n
    • \n )}\n
    \n )\n : null\n );\n}\n\nPagination.propTypes = {\n value: PropTypes.number,\n totalNrOfPages: PropTypes.number,\n onChange: PropTypes.func,\n};\n\nexport default Pagination;\n","import { createContext } from 'react';\n\nexport const tableContext = createContext();\n","import React, { useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { tableContext } from '../tableContext';\nimport Icon from '../../Icon';\n\nexport function HeaderCell({ column }) {\n const { sortable } = column;\n const [sortOrder, setSortOrder] = useState(sortable?.default || 'ASC');\n const { state, sendMessage } = useContext(tableContext);\n return (\n {\n sendMessage('sort', { column, sortOrder });\n setSortOrder(sortOrder === 'ASC' ? 'DESC' : 'ASC');\n } : null}\n className={state.maxHeight ? 'fixed-header' : ''}\n >\n {column.name}\n {column.sortable && (\n \n \n \n )}\n \n );\n}\n\nHeaderCell.propTypes = {\n column: PropTypes.instanceOf(Object),\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { HeaderCell } from './header-cell';\nimport { tableContext } from '../tableContext';\n\nexport function Header({ allRowsSelected }) {\n const { state, sendMessage } = useContext(tableContext);\n const { columns, selectable } = state;\n\n const generateHeaders = () => columns.map((column) => (\n \n ));\n\n const generateSelectable = () => {\n const Component = selectable.type;\n return (\n \n {selectable?.allowSelectAll ? (\n
    \n {\n const isCheckbox = v?.target?.tagName.toLowerCase() === 'input' && v?.target?.type.toLowerCase() === 'checkbox';\n sendMessage('header.selectAll.change', isCheckbox ? v.target.checked : Boolean(v));\n }}\n >\n {selectable.values?.value}\n \n
    \n ) : (\n selectable.name || 'Select'\n )}\n \n );\n };\n\n return (\n \n \n {selectable?.position === 'LEFT' && generateSelectable()}\n {generateHeaders()}\n {selectable?.position === 'RIGHT' && generateSelectable()}\n \n \n );\n}\n\nHeader.propTypes = {\n allRowsSelected: PropTypes.bool,\n};\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * - Checkboxes are used when a user needs to select one or more values from a series of options.\n * - They can be also be used as a binary toggle but consider radio instead.\n * - Can be used with Formik respectively (FormikCheckbox)\n */\nclass Checkbox extends Component {\n getCssClasses() {\n const {\n inline, disabled, readOnly, theme = '', wrapperClassName = '',\n } = this.props;\n\n const cssClasses = [wrapperClassName];\n\n cssClasses.push('tyk-checkbox');\n\n if (inline) {\n cssClasses.push('tyk-checkbox--inline');\n }\n\n if (theme.trim()) {\n cssClasses.push(...theme.split(' ').map((t) => `tyk-checkbox--theme-${t}`));\n }\n\n if (disabled || readOnly) {\n cssClasses.push('tyk-checkbox--is-disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n displayError() {\n const { error } = this.props;\n if (!error) return null;\n\n return (\n

    \n {error}\n

    \n );\n }\n\n displayNote() {\n const { note } = this.props;\n if (!note) return null;\n\n return (\n

    \n {note}\n

    \n );\n }\n\n render() {\n const {\n input, value, label, ...rest\n } = this.props;\n return (\n \n
    \n \n {this.displayNote()}\n {this.displayError()}\n
    \n \n );\n }\n}\n\nCheckbox.propTypes = {\n /** Disable a checkbox */\n disabled: PropTypes.bool,\n /** Readonly prop behaves the same as disable on checkboxes */\n readOnly: PropTypes.bool,\n /** Align checkbox with in same line with other elements */\n inline: PropTypes.bool,\n /** Set a theme for checkbox */\n theme: PropTypes.string,\n /** Set an error state for checkbox if boolean will show just icon without message */\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Adds additional information under the checkbox element */\n note: PropTypes.string,\n input: PropTypes.instanceOf(Object),\n /** Adds a label to checkbox */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Set a name for checkbox */\n name: PropTypes.string,\n /** Set initial value for checkbox */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Make checkbox checked by default */\n checked: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Callback function executed on change of checkbox */\n onChange: PropTypes.func,\n /** CSS classes added to the wrapper of the component */\n wrapperClassName: PropTypes.string,\n};\n\nexport default Checkbox;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nexport function Cell({ col, row }) {\n if (!row.values[col.id]) {\n return ; // eslint-disable-line jsx-a11y/control-has-associated-label\n }\n\n if (col.type === 'string') {\n return (\n \n {row.values[col.id]?.value}\n \n );\n }\n const Component = col.type;\n return (\n \n \n {row.values[col.id].children ? row.values[col.id].children : null}\n
    \n \n );\n}\n\nCell.propTypes = {\n col: PropTypes.instanceOf(Object),\n row: PropTypes.instanceOf(Object),\n index: PropTypes.number,\n};\n","import React, { useCallback, useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport Checkbox from '../../../form/components/Checkbox';\nimport { Cell } from './cell';\nimport { tableContext } from '../tableContext';\n\nexport function Row({ row, index }) {\n const { state, sendMessage } = useContext(tableContext);\n const { columns, selectable } = state;\n\n const SelectableCheckbox = useCallback(() => (\n // eslint-disable-next-line jsx-a11y/control-has-associated-label\n \n sendMessage('row.selected', { index, selected: v.target.checked })}\n />\n \n ), [row.selected, index]);\n\n return (\n \n {selectable && selectable.position === 'LEFT' && SelectableCheckbox()}\n {columns.map((col) => (\n \n ))}\n {selectable && selectable.position === 'RIGHT' && SelectableCheckbox()}\n \n );\n}\n\nRow.propTypes = {\n row: PropTypes.instanceOf(Object),\n index: PropTypes.number,\n};\n","import React, { useContext } from 'react';\nimport { tableContext } from '../tableContext';\nimport { Row } from './row';\n\nexport function Body() {\n const { state } = useContext(tableContext);\n const { rows } = state;\n\n return (\n \n {\n // eslint-disable-next-line react/no-array-index-key\n rows.map((row, i) => )\n }\n \n );\n}\n","import React, {\n useCallback, useEffect, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport Message from '../Message';\nimport Pagination from '../../form/components/Pagination';\nimport Loader from '../Loader';\nimport InfiniteScroller from '../InfiniteScroller';\nimport { Header } from './js/header';\nimport { Body } from './js/body';\nimport { tableContext } from './tableContext';\n\n/**\n * This is tyk's table component used to render a data in a tabular view.\n * See the example configuration object below to understand how to hydrate the table component\n */\n\nfunction Table({\n value, onChange, noDataMessage, loading, infiniteScrolling,\n}) {\n const [state, setState] = useState(null);\n const [onChangeMsg, setOnChangeMsg] = useState('api');\n const itemsListRef = useRef(null);\n const sortRows = useCallback((col, sortOrder) => {\n setState((prevState) => ({\n ...prevState,\n sort: {\n order: sortOrder,\n col,\n },\n }));\n }, []);\n\n const selectAllRows = useCallback((selected) => {\n setState((prevState) => ({\n ...prevState,\n rows: prevState.rows.map((row) => ({ ...row, selected })),\n }));\n }, []);\n\n const selectRow = useCallback(({ index, selected }) => {\n setState((prevState) => ({\n ...prevState,\n rows: [\n ...prevState.rows.slice(0, index),\n { ...prevState.rows[index], selected },\n ...prevState.rows.slice(index + 1),\n ],\n }));\n }, []);\n\n const setPagination = useCallback((data) => {\n setState((prevState) => ({\n ...prevState,\n pagination: {\n ...prevState.pagination,\n current: data + 1,\n },\n }));\n }, []);\n\n const api = {\n getState: () => state,\n setState: (newState) => setState(newState),\n };\n\n const sendMessage = useCallback((message, data) => {\n setOnChangeMsg(message);\n if (message === 'sort') {\n sortRows(data.column.id, data.sortOrder);\n }\n\n if (message === 'header.selectAll.change') {\n selectAllRows(data);\n }\n\n if (message === 'row.selected') {\n selectRow(data);\n }\n\n if (message === 'pagination.change') {\n setPagination(data);\n }\n }, [sortRows, selectAllRows, selectRow, setPagination]);\n\n const context = useMemo(() => ({ state, sendMessage }), [state, sendMessage]);\n\n useEffect(() => setState(value), [value]);\n useEffect(() => {\n if (onChange) {\n onChange(onChangeMsg, state, api);\n }\n setOnChangeMsg('api');\n }, [state]);\n\n if (!state) {\n return ;\n }\n\n if (state.rows <= 0) {\n return {noDataMessage || 'No Data Available'};\n }\n\n const getTable = () => (\n \n
    selected)} />\n \n
    \n );\n\n return (\n \n
    \n {\n loading && \n }\n {\n infiniteScrolling && state.pagination\n ? (\n state.pagination.current}\n loadMore={(num) => sendMessage('pagination.change', num)}\n pageNumber={state.pagination.current - 1}\n initialLoad={false}\n >\n { getTable() }\n \n )\n : getTable()\n }\n
    \n {state.pagination && !infiniteScrolling && (\n
    \n sendMessage('pagination.change', num)}\n />\n
    \n )}\n
    \n );\n}\n\nTable.propTypes = {\n /** Configuration object used to render the component */\n value: PropTypes.shape({\n /** Configuration for table columns */\n columns: PropTypes.arrayOf(PropTypes.shape({\n /** Unique id of the column */\n id: PropTypes.string.isRequired,\n /** Name of the column */\n name: PropTypes.string,\n /** Type of column, String by default */\n type: PropTypes.oneOfType([\n /** Just renders cell data of type strings */\n PropTypes.string,\n /** Render cell of elements (eg. Input / Button) */\n PropTypes.element,\n /** Render a custom function/component */\n PropTypes.func,\n ]),\n sortable: PropTypes.oneOfType([\n /** Make Column sortable */\n PropTypes.bool,\n /** Configure sorting behaviour */\n PropTypes.shape({\n /** Set default sorting direction ASC / DESC */\n default: PropTypes.string,\n }),\n ]),\n })),\n /** Configuration for table rows */\n rows: PropTypes.arrayOf(PropTypes.shape({})),\n /** Configuration to make table rows selectable */\n selectable: PropTypes.shape({}),\n /** Renders pagination for table if the object is missing / empty no pagination is rendered. */\n pagination: PropTypes.shape({}),\n /** Sets maximum height for table container. */\n maxHeight: PropTypes.string,\n /** Styling for the table container. */\n styling: PropTypes.shape({\n /** It's recommended to add styles to a class and pass the class in this object */\n className: PropTypes.string,\n }),\n }).isRequired,\n /** Callback executed with message and value when there are changes on table */\n onChange: PropTypes.func,\n /** Renders a component with the given message when `config.rows` is empty */\n noDataMessage: PropTypes.string,\n /** Show placeholder loader */\n loading: PropTypes.bool,\n /** Adds infinite scroller on page and calls `onChange` with `pagination.change` message */\n infiniteScrolling: PropTypes.bool,\n};\n\nTable.defaultProps = {\n loading: false,\n infiniteScrolling: false,\n noDataMessage: 'No Data Available',\n onChange: null,\n};\n\nexport default Table;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Column({\n children,\n align,\n className,\n offset,\n size,\n ...rest\n}) {\n const classes = [\n 'tyk-col',\n className,\n align && `tyk-col--align-${align}`,\n ...size.split(' ').map((cSize) => `tyk-col--${cSize}`),\n ...(offset ? offset.split(' ') : []).map((cOffset) => `tyk-col--offset-${cOffset}`),\n ].filter(Boolean).join(' ');\n\n return (\n
    \n { children }\n
    \n );\n}\n\nColumn.propTypes = {\n /**\n * This property describes how the column element will be aligned vertically\n * within a Row: bottom, center, top\n */\n align: PropTypes.string,\n /** Css classes that can be passed to the column element */\n className: PropTypes.string,\n /**\n * Specifies the size of the column within a Row (values must be between 1 - 12)\n */\n size: PropTypes.string.isRequired,\n /**\n * Specifies the left gap a column can have within a Row (values must be between 1 - 12)\n */\n offset: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n ]),\n};\n\nexport default Column;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/** Row component which must be always present as a wrapper for Columns */\nfunction Row({\n className,\n nogutters,\n children,\n ...rest\n}) {\n const classes = [\n 'tyk-row',\n className,\n nogutters && 'no-gutters',\n nogutters && 'tyk-row--gutterless',\n ].filter(Boolean).join(' ');\n\n return (\n
    \n { children }\n
    \n );\n}\n\nRow.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n /** Css classes that can be passed to the Row element */\n className: PropTypes.string,\n /** Removes all the spaces between column */\n nogutters: PropTypes.bool,\n};\n\nexport default Row;\n","import { createContext } from 'react';\n\nexport const DropdownContext = createContext();\n","import React, { cloneElement, useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { DropdownContext } from '../dropdown-context';\nimport Icon from '../../../../components/Icon';\n\nfunction DropdownItem(props) {\n const {\n customdropdownitem,\n children,\n eventKey,\n href,\n target,\n title,\n onClick,\n } = props;\n const dropdownItemCLick = useCallback((dropdownContext, itemProps) => {\n dropdownContext.onSelectItem(eventKey, itemProps);\n\n if (onClick) onClick(eventKey);\n }, []);\n\n return (\n \n {\n (dropdownContext) => (\n dropdownItemCLick(dropdownContext, props)}\n onKeyUp={() => {}}\n >\n {\n customdropdownitem\n ? cloneElement(customdropdownitem, {})\n : (\n \n {\n eventKey\n && dropdownContext.selectedItem === eventKey\n && dropdownContext.showCheckmark\n ? \n : null\n }\n \n {title || children}\n \n \n )\n }\n \n )\n }\n \n );\n}\n\nDropdownItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n customdropdownitem: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n ]),\n eventKey: PropTypes.string,\n href: PropTypes.string,\n target: PropTypes.string,\n onClick: PropTypes.func,\n title: PropTypes.string,\n};\n\nexport default DropdownItem;\n","import React, {\n Component, createRef,\n} from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport DropdownItem from './js/DropdownItem';\nimport Button from '../../../components/Button';\nimport { DropdownContext } from './dropdown-context';\n\nclass Dropdown extends Component {\n static isElemInRightView(el, dropdownWidth) {\n const windowWidth = window.innerWidth;\n const offset = el.getBoundingClientRect();\n const elemRight = offset.left + dropdownWidth;\n\n return elemRight <= windowWidth;\n }\n\n static isElemInBottomView(el, dropdownHeight) {\n const windowHeight = window.innerHeight;\n const offset = el.getBoundingClientRect();\n const elHeight = el.clientHeight;\n const elemBottom = offset.top + elHeight + dropdownHeight;\n\n return elemBottom <= windowHeight;\n }\n\n constructor(props) {\n super(props);\n\n const {\n selectedItem,\n open,\n } = this.props;\n\n this.state = {\n opened: open,\n selectedItem: selectedItem || null,\n };\n\n this.dropdownRef = createRef();\n this.dropdownListRef = createRef();\n this.dropdownButtonRef = createRef();\n this.onSelectItem = this.onSelectItem.bind(this);\n this.toggleDropdown = this.toggleDropdown.bind(this);\n this.handleClickOutside = this.handleClickOutside.bind(this);\n }\n\n componentDidMount() {\n document.addEventListener('mousedown', this.handleClickOutside);\n\n if (this.dropdownListRef.current) {\n this.getStyles();\n }\n }\n\n componentDidUpdate(prevProps) {\n const {\n open,\n } = this.props;\n const {\n opened,\n } = this.state;\n\n if (this.dropdownListRef.current) {\n this.getStyles();\n }\n\n if (\n !prevProps.open\n && open === true\n && !opened\n ) {\n this.toggleDropdown();\n }\n\n if (\n prevProps.open\n && open === false\n && opened\n ) {\n this.closeDropdown();\n }\n }\n\n componentWillUnmount() {\n document.removeEventListener('mousedown', this.handleClickOutside);\n }\n\n handleClickOutside(event) {\n if (\n this.dropdownListRef.current && !this.dropdownListRef.current.contains(event.target)\n && this.dropdownRef.current && !this.dropdownRef.current.contains(event.target)\n ) {\n this.closeDropdown();\n }\n }\n\n onSelectItem(itemId, itemProps) {\n const { closeOnSelect, onSelect } = this.props;\n const changes = {\n selectedItem: itemId,\n selectedItemProps: itemProps,\n };\n\n if (closeOnSelect) {\n changes.opened = false;\n }\n\n this.setState(changes);\n\n if (onSelect && typeof onSelect === 'function') {\n onSelect(itemId);\n }\n }\n\n getStyles() {\n const {\n display,\n position,\n offset,\n } = this.props;\n\n const dropdownEl = this.dropdownListRef.current;\n\n if (offset) {\n dropdownEl.style.top = `${offset.top}`;\n dropdownEl.style.left = `${offset.left}`;\n return;\n }\n\n const scrollTop = Math.max(\n document.documentElement.scrollTop,\n document.body.scrollTop,\n window.scrollY,\n );\n const el = this.dropdownRef.current;\n const elHeight = el.clientHeight;\n const dropdownHeight = dropdownEl ? dropdownEl.clientHeight : 0;\n const dropdownWidth = dropdownEl ? dropdownEl.clientWidth : 0;\n const offsetPosition = el.getBoundingClientRect();\n const { left, top } = offsetPosition;\n let customTop = 0;\n let customLeft = left;\n\n // calculate top position, depending on the element position on the page\n if (Dropdown.isElemInBottomView(el, dropdownHeight)) {\n customTop = top + scrollTop + elHeight;\n } else {\n customTop = top + scrollTop - dropdownHeight - 5;\n }\n\n if (!Dropdown.isElemInRightView(el, dropdownWidth)) {\n customLeft = left + el.clientWidth - dropdownWidth;\n }\n\n if (position !== 'relative') {\n dropdownEl.style.top = `${customTop}px`;\n if (display !== 'block') {\n dropdownEl.style.left = `${customLeft}px`;\n }\n }\n if (display !== 'block') {\n dropdownEl.style.minWidth = `${this.dropdownButtonRef.current.clientWidth}px`;\n }\n }\n\n getWrapperCssClasses() {\n const {\n btnGroup,\n btnGroupSize,\n className,\n btnTheme,\n wrapperClassName = '',\n } = this.props;\n let cssClasses = [wrapperClassName, 'tyk-dropdown'];\n\n cssClasses.push(`theme-${btnTheme || 'default'}`);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n if (btnGroup) {\n cssClasses.push('tyk-button-group');\n cssClasses.push(btnGroupSize ? `tyk-button-group--${btnGroupSize}` : 'tyk-button-group--md');\n }\n\n return cssClasses.join(' ');\n }\n\n getCssClasses() {\n const {\n opened,\n } = this.state;\n const {\n hasCustomContent,\n display,\n listclassnames,\n position,\n maxHeight,\n } = this.props;\n let cssClasses = ['tyk-dropdown-menu', 'tyk-dropdown'];\n\n if (maxHeight) {\n cssClasses.push('tyk-dropdown--scrollable');\n }\n\n if (opened) {\n cssClasses.push('opened');\n }\n\n if (listclassnames) {\n cssClasses = cssClasses.concat(listclassnames.split(' '));\n }\n\n if (display) {\n cssClasses.push('tyk-dropdown--block');\n }\n\n if (hasCustomContent) {\n cssClasses.push('tyk-dropdown--custom');\n }\n\n if (position === 'relative') {\n cssClasses.push('tyk-dropdown--relative');\n }\n\n return cssClasses.join(' ');\n }\n\n getBtnTitle() {\n const { btnTitle, stopButtonTextChange } = this.props;\n const { selectedItemProps } = this.state;\n\n if (!stopButtonTextChange && selectedItemProps?.title) {\n return selectedItemProps.title;\n }\n\n return btnTitle;\n }\n\n closeDropdown() {\n const { onClose } = this.props;\n\n this.setState({\n opened: false,\n }, () => {\n if (onClose) {\n onClose();\n }\n });\n }\n\n toggleDropdown() {\n const {\n opened,\n } = this.state;\n if (opened) {\n this.closeDropdown();\n\n return;\n }\n\n this.setState({\n opened: true,\n });\n }\n\n render() {\n const {\n appendTo,\n btnClassName,\n btnSize,\n customBtnTitle,\n hasCustomContent,\n btnTheme,\n children,\n label,\n showDropdownIcon,\n showTriggerButton,\n showCheckmark,\n disabled = false,\n maxHeight,\n } = this.props;\n const {\n selectedItem,\n opened,\n } = this.state;\n const DropdownWrapperTag = hasCustomContent ? 'div' : 'ul';\n return (\n \n {\n label\n ? (\n \n )\n : null\n }\n {\n showTriggerButton\n ? (\n \n { customBtnTitle || this.getBtnTitle() }\n \n )\n : null\n }\n {\n opened\n ? ReactDOM.createPortal(\n \n {\n opened\n ? (\n \n {\n (typeof children === 'function')\n ? children({\n closeDropdown: this.closeDropdown.bind(this),\n })\n : children\n }\n \n )\n : null\n }\n ,\n document.querySelector(appendTo || 'body'),\n )\n : null\n }\n \n );\n }\n}\n\nDropdown.propTypes = {\n appendTo: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n PropTypes.func,\n ]),\n closeOnSelect: PropTypes.bool,\n btnClassName: PropTypes.string,\n btnSize: PropTypes.string,\n btnGroupSize: PropTypes.string,\n btnTheme: PropTypes.string,\n btnTitle: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n customBtnTitle: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n btnGroup: PropTypes.bool,\n className: PropTypes.string,\n display: PropTypes.string,\n disabled: PropTypes.bool,\n hasCustomContent: PropTypes.bool,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n listclassnames: PropTypes.string,\n onClose: PropTypes.func,\n onSelect: PropTypes.func,\n open: PropTypes.bool,\n offset: PropTypes.instanceOf(Object),\n position: PropTypes.string,\n selectedItem: PropTypes.string,\n showDropdownIcon: PropTypes.bool,\n stopButtonTextChange: PropTypes.bool,\n showTriggerButton: PropTypes.bool,\n showCheckmark: PropTypes.bool,\n maxHeight: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\n\nDropdown.defaultProps = {\n closeOnSelect: false,\n showDropdownIcon: true,\n showTriggerButton: true,\n showCheckmark: true,\n open: false,\n};\n\nDropdown.Item = DropdownItem;\n\nexport default Dropdown;\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../../../components/Button';\nimport ButtonGroup from '../../../components/ButtonGroup';\n\nfunction DropdownTrigger({\n title,\n theme = 'primary',\n splitTrigger,\n toggle,\n onTriggerClick,\n value,\n}, ref) {\n return (\n !splitTrigger ? (\n \n {title}\n \n ) : (\n \n onTriggerClick(value) }}\n >\n {title}\n \n \n \n )\n );\n}\n\nDropdownTrigger.propTypes = {\n title: PropTypes.string,\n theme: PropTypes.string,\n splitTrigger: PropTypes.bool,\n toggle: PropTypes.func,\n dropdownRef: PropTypes.shape({\n current: PropTypes.instanceOf(Element),\n }).isRequired,\n onTriggerClick: PropTypes.func,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n};\n\nexport default forwardRef(DropdownTrigger);\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport FloatingContainer from '../../../components/FloatingContainer';\nimport List from '../../../components/List';\n\nfunction DropdownListWrapper({\n children,\n element,\n maxWidth,\n}, ref) {\n return (\n \n \n { children }\n \n \n );\n}\n\nDropdownListWrapper.propTypes = {\n element: PropTypes.shape({\n current: PropTypes.instanceOf(Element),\n }),\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n maxWidth: PropTypes.string,\n};\n\nexport default forwardRef(DropdownListWrapper);\n","import { createContext, useContext } from 'react';\n\nexport const DropdownContext = createContext();\n\nfunction useDropdowContext() {\n return useContext(DropdownContext);\n}\n\nexport default useDropdowContext;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport List from '../../../components/List';\nimport useDropdowContext from './useDrodpownContext';\n\nfunction DropdownItem({\n children,\n value,\n}) {\n const { onChange, value: dropdownValue } = useDropdowContext();\n return (\n \n onChange(value) }}\n >\n { children }\n \n \n );\n}\n\nDropdownItem.propTypes = {\n children: PropTypes.node,\n // eslint-disable-next-line\n value: PropTypes.any,\n};\n\nexport default DropdownItem;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport useDropdown from './useDropdown';\nimport DropdownTrigger from './DropdownTrigger';\nimport DropdownListWrapper from './DropdownListWrapper';\nimport DropdownItem from './DropdowItem';\nimport { DropdownContext } from './useDrodpownContext';\n\nfunction Dropdown2({\n children,\n title,\n theme,\n splitTrigger,\n onChange,\n value,\n setSelectedValueAsTitle,\n maxWidth,\n onTriggerClick,\n}) {\n const {\n isOpen,\n toggle,\n dropdownRef,\n dropdownListRef,\n } = useDropdown({\n splitTrigger,\n });\n\n const contextValue = useMemo(() => ({\n onChange,\n value,\n }), [onChange, value]);\n\n return (\n \n \n {isOpen && (\n \n { children }\n \n )}\n \n );\n}\n\nDropdown2.propTypes = {\n /** Title of the dropdown. It is being displayed in the Drodpown trigger */\n title: PropTypes.string,\n /** Theme of the dropdown trigger */\n theme: PropTypes.string,\n children: PropTypes.node,\n /** If true, the dropdown trigger will be split into two buttons.\n * one with the dropdown title and one for the arrow */\n splitTrigger: PropTypes.bool,\n /** Callback function called when a dropdown item is selected */\n onChange: PropTypes.func,\n /** Value of the selected dropdown item */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n /** If true, the selected value will be displayed in the dropdown trigger */\n setSelectedValueAsTitle: PropTypes.bool,\n /** sets the maximum width of the dropdown list menu */\n maxWidth: PropTypes.string,\n /** this function is being called when splitTrigger is true,\n * and receives as parameter the current value of the dropdown */\n onTriggerClick: PropTypes.func,\n};\n\nDropdown2.Item = DropdownItem;\n\nexport default Dropdown2;\n","import {\n useState, useRef, useCallback, useEffect,\n} from 'react';\n\nconst useDropdown = ({\n splitTrigger,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const dropdownRef = useRef(null);\n const dropdownListRef = useRef(null);\n\n const toggle = () => setIsOpen(!isOpen);\n\n const handleOutsideClick = useCallback((e) => {\n const triggerElement = !splitTrigger\n ? dropdownRef.current\n : dropdownRef.current.querySelector('.dropdown__trigger');\n if (\n isOpen\n && !triggerElement.contains(e.target)\n && !dropdownListRef.current.contains(e.target)\n ) {\n setIsOpen(false);\n }\n }, [isOpen]);\n\n useEffect(() => {\n document.addEventListener('mousedown', handleOutsideClick);\n return () => {\n document.removeEventListener('mousedown', handleOutsideClick);\n };\n }, [handleOutsideClick]);\n\n return {\n isOpen,\n toggle,\n dropdownRef,\n dropdownListRef,\n };\n};\n\nexport default useDropdown;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-ace\");","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport ace from 'ace-builds/src-noconflict/ace';\nimport AceEditor from 'react-ace';\nimport 'ace-builds/src-noconflict/mode-javascript';\nimport 'ace-builds/src-noconflict/mode-golang';\nimport 'ace-builds/src-noconflict/mode-python';\nimport 'ace-builds/src-noconflict/mode-css';\nimport 'ace-builds/src-noconflict/mode-json';\nimport 'ace-builds/src-noconflict/mode-xml';\nimport 'ace-builds/src-noconflict/mode-jsx';\nimport 'ace-builds/src-noconflict/ext-searchbox';\nimport 'ace-builds/src-noconflict/ext-beautify';\nimport 'ace-builds/src-noconflict/theme-github';\nimport jsonWorker from 'ace-builds/src-noconflict/worker-json';\n\nace.config.setModuleUrl('ace/mode/json_worker', jsonWorker);\n\nfunction CodeEditor(props) {\n const {\n disabled,\n readOnly,\n disableValidation,\n id,\n error,\n label,\n labelwidth,\n note,\n onBlur,\n onChange,\n theme,\n value,\n setOptions,\n wrapperClassName,\n } = props;\n const classes = [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const finalSetOptions = {\n ...setOptions,\n ...disableValidation && { useWorker: false },\n };\n\n const getCodeEditorError = useCallback(() => (\n error && error !== 'true' && error !== 'false'\n ? (\n

    \n {error}\n

    \n )\n : null\n ), [error]);\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const getNonLabelWidth = useCallback(() => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n }, [labelwidth]);\n\n const handleOnChange = useCallback((newValue) => {\n if (onChange) onChange(newValue);\n }, [onChange]);\n\n const handleOnBlur = useCallback(() => {\n if (onBlur) onBlur(value);\n }, [onBlur, value]);\n\n return (\n
    \n {\n label\n ? \n : null\n }\n
    \n {\n // eslint-disable-next-line\n editorInstance.container.style.resize = 'both';\n // mouseup = css resize end\n document.addEventListener('mouseup', () => (\n editorInstance.resize()\n ));\n }}\n setOptions={finalSetOptions}\n />\n {\n note\n ?

    { note }

    \n : null\n }\n { getCodeEditorError() }\n
    \n
    \n );\n}\n\nCodeEditor.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n disableValidation: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n mode: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n theme: PropTypes.string,\n value: PropTypes.string,\n setOptions: PropTypes.instanceOf(Object),\n wrapperClassName: PropTypes.string,\n};\n\nexport default CodeEditor;\n","import React, { Component, createRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\nimport Button from '../../../components/Button';\n\nconst getStateSelectedValues = (multiple, tags, value) => {\n if (!value) {\n return (multiple || tags) ? [] : null;\n }\n\n return value;\n};\n\nclass Combobox extends Component {\n static closeList() {\n return {\n cursor: -1,\n opened: false,\n };\n }\n\n static openList() {\n return {\n opened: true,\n };\n }\n\n static filterByName(itemValue, inputValue) {\n return itemValue.name.toLowerCase().indexOf(inputValue) > -1;\n }\n\n constructor(props) {\n super(props);\n const {\n multiple,\n tags,\n value,\n } = props;\n\n this.state = {\n cursor: -1,\n opened: false,\n width: 50,\n initialValue: value,\n stateSelectedValues: getStateSelectedValues(multiple, tags, value),\n searchText: '',\n tags,\n };\n\n this.comboboxRef = createRef();\n this.valuesListRef = createRef();\n this.inputRef = createRef();\n this.textRef = createRef();\n\n this.focusInput = this.focusInput.bind(this);\n this.onKeyUp = this.onKeyUp.bind(this);\n Combobox.openList = Combobox.openList.bind(this);\n this.handleClickOutside = this.handleClickOutside.bind(this);\n this.handleItemsNavigation = this.handleItemsNavigation.bind(this);\n this.handleComboboxDropdownClick = this.handleComboboxDropdownClick.bind(this);\n this.handleListItemClick = this.handleListItemClick.bind(this);\n this.handlePillRemoveClick = this.handlePillRemoveClick.bind(this);\n this.manageSelectedTags = this.manageSelectedTags.bind(this);\n }\n\n componentDidMount() {\n const { tags } = this.props;\n\n if (tags) {\n this.setInputWidth();\n }\n\n this.bindEvents();\n }\n\n componentWillUnmount() {\n this.unBindEvents();\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n if (\n JSON.stringify(nextProps.value) !== JSON.stringify(prevState.initialValue)\n || nextProps.tags !== prevState.tags\n ) {\n return {\n initialValue: nextProps.value,\n stateSelectedValues: getStateSelectedValues(\n nextProps.multiple,\n nextProps.tags,\n nextProps.value,\n ),\n tags: nextProps.tags,\n };\n }\n\n return null;\n }\n\n handleItemsNavigation(e) {\n const { tags } = this.props;\n if (['ArrowDown', 'ArrowUp'].indexOf(e.key) === -1) {\n return;\n }\n\n const { cursor } = this.state;\n const filteredValues = this.filterValues();\n let cursorNext;\n\n e.preventDefault();\n\n if (e.key === 'ArrowDown') {\n if (cursor === -1 || cursor === filteredValues.length - 1) {\n cursorNext = 0;\n } else if (cursor < filteredValues.length - 1) {\n cursorNext = cursor + 1;\n }\n }\n\n if (e.key === 'ArrowUp') {\n if (cursor > 0) {\n cursorNext = cursor - 1;\n } else {\n cursorNext = filteredValues.length - 1;\n }\n }\n\n if (this.valuesListRef.current && cursorNext > 4) {\n const scrollTop = (cursorNext - 4) * 38;\n\n this.valuesListRef.current.scrollTop = (!tags) ? 60 + scrollTop : scrollTop;\n } else if (this.valuesListRef.current) {\n this.valuesListRef.current.scrollTop = 0;\n }\n\n this.setState((previousState) => ({\n ...previousState,\n opened: true,\n cursor: cursorNext,\n }));\n }\n\n handleListItemClick(index) {\n // eslint-disable-next-line react/destructuring-assignment\n const clickedValue = this.props.values[index];\n if (clickedValue.disabled) return;\n\n const { multiple, tags } = this.props;\n\n const methodName = (tags) ? 'manageSelectedTags' : 'manageSelectedValues';\n const tempState = { ...this.state, ...this[methodName](index) };\n\n this.setState((previousState) => {\n if (!multiple && !tags) {\n tempState.opened = false;\n }\n\n return { ...previousState, ...tempState };\n });\n }\n\n handlePillRemoveClick(index) {\n const { disabled } = this.props;\n\n if (disabled) {\n return;\n }\n\n const tempState = this.removeSelectedValue(index);\n\n this.setState((previousState) => ({ ...previousState, ...tempState }));\n }\n\n handleClickOutside(event) {\n if (\n this.valuesListRef.current && !this.valuesListRef.current.contains(event.target)\n && this.comboboxRef.current && !this.comboboxRef.current.contains(event.target)\n ) {\n this.setState((previousState) => ({ ...previousState, ...Combobox.closeList() }));\n }\n }\n\n handleComboboxDropdownClick() {\n const { disabled } = this.props;\n\n if (disabled) {\n return;\n }\n\n this.setState((previousState) => ({ ...previousState, ...Combobox.openList() }));\n }\n\n onKeyUp(e) {\n const { tags, allowCustomValues } = this.props;\n const { cursor, opened } = this.state;\n const filteredValues = this.filterValues();\n let tempState = this.getSearchText();\n\n if (tags && e.key !== 'Escape') {\n tempState = { ...tempState, ...this.setInputWidth() };\n }\n\n if (e.key === 'Enter') {\n const methodName = (tags) ? 'manageSelectedTags' : 'manageSelectedValues';\n tempState = { ...tempState, ...this[methodName](cursor) };\n }\n\n if (allowCustomValues && e.key !== ' ' && tags) {\n tempState = { ...tempState, ...this.manageSelectedTags() };\n }\n\n if (\n !opened\n && this.inputRef.current.value\n && filteredValues?.length\n && e.key !== 'Escape'\n ) {\n tempState = { ...tempState, ...Combobox.openList() };\n }\n\n if (e.key === 'Escape' && opened) {\n tempState = { ...tempState, ...Combobox.closeList() };\n }\n\n if (opened && filteredValues && !filteredValues.length) {\n tempState = { ...tempState, ...Combobox.closeList() };\n }\n\n this.setState((previousState) => ({ ...previousState, ...tempState }));\n }\n\n getLabelStyles() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n getNonLabelWidth() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n setInputWidth() {\n return {\n width: 50 + this.textRef.current.offsetWidth,\n };\n }\n\n getSelectedIndex(value) {\n const { stateSelectedValues } = this.state;\n let position = -1;\n\n if (Array.isArray(stateSelectedValues)) {\n stateSelectedValues.forEach((item, index) => {\n if (item.id === value.id) {\n position = index;\n }\n });\n } else if (stateSelectedValues) {\n if (stateSelectedValues.id === value.id) {\n position = 0;\n }\n }\n\n return position;\n }\n\n getSearchText() {\n return {\n searchText: this.inputRef.current.value,\n };\n }\n\n getListItemCssClasses(value, index) {\n const cssClasses = [];\n const {\n cursor,\n } = this.state;\n\n if (cursor === index) {\n cssClasses.push('active');\n }\n\n if (value.disabled) {\n cssClasses.push('disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n getComboboxListCssClass() {\n const { opened } = this.state;\n const { tags, theme } = this.props;\n const themes = theme ? theme.split(' ') : [];\n\n const cssClasses = ['tyk-combobox__list'];\n\n if (opened) {\n cssClasses.push('tyk-combobox__list--opened');\n }\n\n if (tags) {\n cssClasses.push('tyk-combobox__list--has-tags');\n }\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n return cssClasses.join(' ');\n }\n\n getCssClasses() {\n const {\n error, disabled, theme, labelwidth,\n } = this.props;\n const cssClasses = ['tyk-form-group', 'tyk-combobox'];\n const themes = theme ? theme.split(' ') : [];\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (disabled) {\n cssClasses.push('disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n getInputError() {\n const { error } = this.props;\n\n return (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null;\n }\n\n getStyles() {\n const { scrollTop } = document.documentElement;\n const el = this.comboboxRef.current;\n const elHeight = el.offsetHeight;\n const elWidth = el.offsetWidth;\n\n const offset = el.getBoundingClientRect();\n const { left } = offset;\n let top = 0;\n\n top = offset.top + scrollTop + elHeight;\n\n return {\n top: `${top - 1}px`,\n left: `${left}px`,\n width: `${elWidth}px`,\n };\n }\n\n getComboboxDisplayData() {\n const { stateSelectedValues } = this.state;\n const { multiple, placeholder, values } = this.props;\n\n if (!stateSelectedValues) {\n return placeholder;\n }\n\n if (stateSelectedValues && Array.isArray(stateSelectedValues) && !stateSelectedValues.length) {\n return placeholder;\n }\n\n if (stateSelectedValues && !Array.isArray(stateSelectedValues) && !stateSelectedValues.id) {\n return placeholder;\n }\n\n if (Array.isArray(stateSelectedValues) && multiple) {\n return stateSelectedValues.reduce((prevValue, value, index) => prevValue + value.name + ((index !== stateSelectedValues.length - 1) ? ', ' : ''), '');\n }\n\n if (\n values?.length\n && !Array.isArray(stateSelectedValues) && !stateSelectedValues.name\n ) {\n return values.filter((value) => value.id === stateSelectedValues.id)[0].name;\n }\n\n return stateSelectedValues.name;\n }\n\n manageSelectedTags(index) {\n const { max, allowCustomValues } = this.props;\n const { stateSelectedValues } = this.state;\n const filteredValues = this.filterValues();\n const value = { id: this.inputRef.current.value, name: this.inputRef.current.value };\n\n if (allowCustomValues === false && index === -1) {\n return null;\n }\n\n const tempValue = filteredValues[index] || value;\n const selectedIndex = this.getSelectedIndex(tempValue);\n let selectedValues = {};\n\n this.inputRef.current.value = '';\n\n if (selectedIndex > -1 && this.isInInitialValues(tempValue)) {\n selectedValues = this.removeSelectedValue(selectedIndex);\n } else if (selectedIndex === -1) {\n if (max && stateSelectedValues.length >= max) {\n return selectedValues;\n }\n selectedValues = this.addSelectedValue(tempValue);\n }\n\n return selectedValues;\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n manageSelectedValues(index) {\n const { stateSelectedValues } = this.state;\n const { multiple, onChange, max } = this.props;\n const filteredValues = this.filterValues();\n const tempSelectedValues = filteredValues[index];\n let selectedValues;\n const selectedIndex = this.getSelectedIndex(tempSelectedValues);\n\n if (tempSelectedValues && multiple) {\n if (selectedIndex > -1) {\n selectedValues = this.removeSelectedValue(selectedIndex);\n } else {\n if (max && stateSelectedValues.length >= max) {\n return selectedValues;\n }\n selectedValues = this.addSelectedValue(filteredValues[index]);\n }\n } else {\n selectedValues = {\n stateSelectedValues: (selectedIndex === -1) ? tempSelectedValues : { id: null },\n };\n\n onChange?.((selectedIndex === -1) ? tempSelectedValues : null);\n }\n\n return selectedValues;\n }\n\n removeSelectedValue(index) {\n const { stateSelectedValues } = this.state;\n const { onChange } = this.props;\n const tempStateSelectedValues = JSON.parse(JSON.stringify(stateSelectedValues));\n\n tempStateSelectedValues.splice(index, 1);\n\n if (onChange && typeof onChange === 'function') {\n onChange(tempStateSelectedValues.length ? tempStateSelectedValues : null);\n }\n\n return {\n stateSelectedValues: tempStateSelectedValues,\n searchText: '',\n };\n }\n\n addSelectedValue(value) {\n const { stateSelectedValues } = this.state;\n const { onChange } = this.props;\n const tempStateSelectedValues = JSON.parse(JSON.stringify(stateSelectedValues));\n\n tempStateSelectedValues.push(value);\n\n if (onChange && typeof onChange === 'function') {\n onChange(tempStateSelectedValues.length ? tempStateSelectedValues : null);\n }\n\n return {\n stateSelectedValues: tempStateSelectedValues,\n searchText: '',\n };\n }\n\n isInInitialValues(value) {\n const { values } = this.props;\n let ok = false;\n\n values.forEach((item) => {\n if (value.id === item.id) {\n ok = true;\n }\n });\n\n return ok;\n }\n\n filterValues() {\n const { values, searchItem } = this.props;\n\n if (!this.inputRef.current) {\n return values;\n }\n\n const arr = values\n .filter(\n (value) => (searchItem\n ? searchItem(value, this.inputRef.current.value.toLowerCase())\n : Combobox.filterByName(value, this.inputRef.current.value.toLowerCase())),\n );\n\n return arr;\n }\n\n bindEvents() {\n document.addEventListener('mousedown', this.handleClickOutside);\n }\n\n unBindEvents() {\n document.removeEventListener('mousedown', this.handleClickOutside);\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n reset() {\n const { multiple, tags, value } = this.props;\n\n this.setState({\n stateSelectedValues: getStateSelectedValues(multiple, tags, value),\n });\n }\n\n focusInput() {\n if (this.inputRef.current) {\n this.inputRef.current.focus();\n }\n }\n\n renderInput(filteredValues) {\n const {\n disabled,\n tags,\n max,\n placeholder,\n } = this.props;\n const {\n width, searchText, stateSelectedValues,\n } = this.state;\n\n return (\n {}}\n ref={this.comboboxRef}\n >\n {\n tags\n ? (\n <>\n {\n (stateSelectedValues || []).map((value, index) => (\n
  • \n \n \n \n { value.name }\n
  • \n ))\n }\n \n {(max === undefined || stateSelectedValues?.length < max) && (\n <>\n {\n if (e.key === 'Enter') {\n e.preventDefault();\n }\n this.handleItemsNavigation(e);\n }}\n onKeyUp={this.onKeyUp}\n placeholder={(!stateSelectedValues?.length) ? placeholder : ''}\n ref={this.inputRef}\n style={{\n width: (!stateSelectedValues?.length) ? '100%' : `${width}px`,\n }}\n />\n \n { searchText }\n \n \n )}\n {filteredValues.length > 0 && (\n \n )}\n \n \n )\n : (\n {}}\n >\n { this.getComboboxDisplayData() }\n \n \n )\n }\n \n );\n }\n\n renderDropdown(filteredValues) {\n const { tags } = this.props;\n const { opened } = this.state;\n return (\n \n {\n !tags\n ? (\n
  • \n \n
  • \n )\n : null\n }\n {\n filteredValues\n .map((value, index) => (\n {}}\n key={value.id}\n >\n {\n (this.getSelectedIndex(value) > -1)\n ? \n : null\n }\n \n {' '}\n { value.name }\n \n \n ))\n }\n \n );\n }\n\n render() {\n const {\n CustomListComponent,\n id,\n label,\n note,\n } = this.props;\n const { opened } = this.state;\n\n const filteredValues = this.filterValues();\n\n return (\n <>\n
    \n {\n label\n ? \n : null\n }\n \n {this.renderInput(filteredValues)}\n {\n note\n ?

    { note }

    \n : null\n }\n { this.getInputError() }\n
    \n \n {\n // eslint-disable-next-line no-nested-ternary\n !CustomListComponent\n ? opened && filteredValues.length\n ? ReactDOM.createPortal(\n this.renderDropdown(filteredValues),\n document.querySelector('body'),\n )\n : null\n : (\n \n )\n }\n \n );\n }\n}\n\nCombobox.propTypes = {\n allowCustomValues: PropTypes.bool,\n CustomListComponent: PropTypes.elementType,\n searchItem: PropTypes.func,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n id: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n multiple: PropTypes.bool,\n max: PropTypes.number,\n note: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n tags: PropTypes.bool,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.instanceOf(Object),\n PropTypes.instanceOf(Array),\n ]),\n values: PropTypes.instanceOf(Array),\n};\n\nCombobox.defaultProps = {\n allowCustomValues: true,\n};\n\nexport default Combobox;\n","import React, { useState, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from '../../../../components/Icon';\nimport Pill from '../../../../components/Pill';\n\nfunction Value(props) {\n const {\n value,\n max,\n tags,\n tagSeparators,\n addTagOnBlur,\n placeholder,\n disabled,\n renderValue,\n valueOverflow,\n focus,\n onMessage: sendMessage,\n readOnly,\n } = props;\n const INPUT_MIN_WIDTH = 60;\n const inputRef = useRef(null);\n const dummyElementRef = useRef(null);\n const [inputValue, setInputValue] = useState('');\n const [inputWidth, setInputWidth] = useState(`${INPUT_MIN_WIDTH + 10}px`);\n\n function entryFieldOnChange(val) {\n if (tagSeparators.some((ts) => val.slice(-1) === ts)) return;\n const dummy = dummyElementRef.current;\n dummy.innerHTML = val;\n setInputWidth(`${Math.max(dummy.clientWidth, INPUT_MIN_WIDTH) + 10}px`);\n setInputValue(val);\n sendMessage('tag.input.change', val);\n }\n\n function entryFieldOnKeyDown(key, val) {\n if (!tags) return;\n if (val === '' && key === 'Backspace' && value.length) {\n sendMessage('tag.remove', value[value.length - 1].id);\n return;\n }\n if (key === 'Enter') {\n sendMessage('tag.input.enter', val);\n entryFieldOnChange('');\n return;\n }\n if (key === 'ArrowUp') {\n sendMessage('tag.input.arrowUp');\n return;\n }\n if (key === 'ArrowDown') {\n sendMessage('tag.input.arrowDown');\n return;\n }\n if (key === 'Escape') {\n sendMessage('tag.input.escape');\n return;\n }\n if (tagSeparators.includes(key)) {\n sendMessage('tag.add', val);\n entryFieldOnChange('');\n }\n }\n\n function triggerAction() {\n sendMessage('text-value.click');\n }\n\n function textValue(val, isPlaceholder = false) {\n if (readOnly) return val || '-';\n\n const classes = [\n 'tyk-combobox2__text-value',\n `overflow-${valueOverflow}`,\n isPlaceholder && 'is-placeholder',\n ].filter(Boolean).join(' ');\n return (\n \n {val}\n \n );\n }\n\n function renderCustomValue(v) {\n const config = {\n tags,\n tagSeparators,\n placeholder,\n disabled,\n renderValue,\n sendMessage,\n };\n return renderValue(v, config);\n }\n\n function renderTag(v) {\n if (renderValue) return renderCustomValue(v);\n\n return (\n \n {\n e.stopPropagation();\n sendMessage('tag.remove', v.id);\n }}\n aria-label=\"remove\"\n >\n \n \n { v.name }\n \n );\n }\n\n function getTags() {\n return (\n <>\n {value.map(renderTag)}\n {value.length < max && (\n <>\n entryFieldOnChange(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') e.preventDefault();\n entryFieldOnKeyDown(e.key, e.target.value);\n }}\n onFocus={() => sendMessage('tag.input.focus')}\n onBlur={(e) => {\n sendMessage('tag.input.blur', e.target.value);\n if (addTagOnBlur) entryFieldOnChange('');\n }}\n />\n \n \n )}\n \n );\n }\n\n useEffect(() => {\n if (focus && inputRef.current) inputRef.current.focus();\n }, [focus]);\n\n if (readOnly) {\n return
    {textValue(value.map((v) => v.name).join(', '))}
    ;\n }\n\n if (tags) return getTags();\n if (renderValue) {\n return value.length === 0 ? textValue(placeholder, true) : value.map(renderCustomValue);\n }\n return value.length === 0\n ? textValue(placeholder, true)\n : textValue(value.map((v) => v.name).join(', '));\n}\n\nValue.propTypes = {\n value: PropTypes.instanceOf(Array),\n max: PropTypes.number,\n tags: PropTypes.instanceOf(Array),\n tagSeparators: PropTypes.instanceOf(Array),\n addTagOnBlur: PropTypes.bool,\n placeholder: PropTypes.string,\n disabled: PropTypes.bool,\n renderValue: PropTypes.func,\n valueOverflow: PropTypes.string,\n focus: PropTypes.bool,\n onMessage: PropTypes.func,\n readOnly: PropTypes.bool,\n};\n\nexport default Value;\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from '../../../../components/Icon';\n\nfunction List(props) {\n const {\n listRef,\n tags,\n values,\n searchValue,\n activeItem,\n onMessage: sendMessage,\n renderListItem,\n selectAll,\n showSearch,\n } = props;\n\n useEffect(() => {\n if (!listRef.current) return;\n const activeElement = listRef.current.querySelector('.active');\n if (activeElement) activeElement.scrollIntoView({ block: 'end' });\n }, [activeItem]);\n\n function renderItem(item) {\n if (renderListItem) {\n return renderListItem(item, {\n tags, searchValue, sendMessage, activeItem,\n });\n }\n\n return (\n !item.disabled && sendMessage('value.select', { item })}\n onKeyDown={() => {}}\n >\n {item.selected && }\n {item.name}\n \n );\n }\n\n function renderSelectAllOption() {\n const isAllSelected = values.every((v) => v.selected);\n const isNoneSelected = values.every((v) => !v.selected);\n const label = selectAll?.label ?? 'Select All';\n const mode = selectAll?.mode ?? 'select';\n const show = selectAll?.show ?? 'always';\n const render = selectAll?.render;\n\n const shouldRenderOption = show === 'always' || (mode === 'select' ? !isAllSelected : !isNoneSelected);\n if (!shouldRenderOption) return null;\n\n if (render) {\n return render({\n label,\n mode,\n show,\n isAllSelected,\n isNoneSelected,\n }, sendMessage);\n }\n return (\n sendMessage('value.select-all', mode === 'select' ? !isAllSelected : isNoneSelected)}\n onKeyDown={() => {}}\n >\n {(mode === 'select' ? isAllSelected : isNoneSelected) && }\n {label}\n \n );\n }\n\n return (\n <>\n {!tags && showSearch && (\n
    \n sendMessage('search.change', e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Escape') sendMessage('search.escape');\n if (e.key === 'ArrowUp') sendMessage('search.arrowUp');\n if (e.key === 'ArrowDown') sendMessage('search.arrowDown');\n if (e.key === 'Enter') sendMessage('search.enter');\n }}\n />\n
    \n )}\n {values.length > 0 && (\n
      \n {Boolean(selectAll) && (\n renderSelectAllOption()\n )}\n {values.map(renderItem)}\n
    \n )}\n \n );\n}\n\nList.propTypes = {\n listRef: PropTypes.instanceOf(Object),\n tags: PropTypes.bool,\n values: PropTypes.instanceOf(Array),\n searchValue: PropTypes.string,\n activeItem: PropTypes.instanceOf(Object),\n onMessage: PropTypes.func,\n renderListItem: PropTypes.func,\n selectAll: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n mode: PropTypes.oneOf(['select', 'unselect']),\n show: PropTypes.oneOf(['always', 'notSameState']),\n render: PropTypes.func,\n }),\n ]),\n showSearch: PropTypes.bool,\n};\n\nexport default List;\n","import React, {\n useCallback, useEffect, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\nimport FloatingContainer from '../../../components/FloatingContainer';\n\nimport Value from './js/Value';\nimport List from './js/List';\n\n/**\n * Dropdown-like component that can display selected values as regular text,\n * tags, or in a custom way.\n * You can select values from a list or type in new ones.\n */\nfunction Combobox2({\n value: propValue,\n values: propValues = [],\n valueOverflow = 'single',\n label = '',\n labelwidth,\n tags = false,\n tagSeparators = [' ', 'Enter'],\n addTagOnBlur = false,\n max: maxProp,\n multiple = false,\n placeholder = '',\n theme,\n note = '',\n error = '',\n disabled = false,\n readOnly = false,\n allowCustomValues = true,\n searchItem: matchItemFn,\n renderValue,\n renderListItem,\n renderList: renderListProp,\n CustomListComponent,\n onBeforeChange = () => true,\n onChange = () => {},\n floatingContainerConfig,\n expandMode,\n infiniteScrollerConfig,\n displayDropdownTrigger = true,\n selectAll,\n closeOnSelect,\n showSearch = false,\n required = false,\n validateOnChange = () => {},\n wrapperClassName = '',\n ...restProps\n}) {\n const max = useMemo(\n () => (multiple ? Infinity : maxProp || (tags ? Infinity : 1)),\n [multiple, maxProp, tags],\n );\n const renderList = CustomListComponent\n ? (values, { sendMessage }) => (\n sendMessage('value.select', { item: values[index] })}\n />\n )\n : renderListProp;\n\n const rootRef = useRef(null);\n const comboboxControlRef = useRef(null);\n const dropdownRef = useRef(null);\n const listRef = useRef(null);\n\n const [value, setValue] = useState(getValueFromProp(propValue, propValues));\n const [values, setValues] = useState(propValues.map((v) => normalizeValue(v)));\n const [searchValue, setSearchValue] = useState('');\n const [activeItem, setActiveItem] = useState(null);\n const [isOpened, setIsOpened] = useState(false);\n const [valuesExpanded, setValuesExpanded] = useState(false);\n const [localValidationError, setLocalValidationError] = useState('');\n\n function getThemeClasses() {\n const themes = theme ? theme.split(' ') : [];\n return themes.map((iTheme) => `tyk-form-group--${iTheme}`);\n }\n\n function getCssClasses() {\n return [\n wrapperClassName,\n 'tyk-form-group',\n 'tyk-combobox2',\n ...getThemeClasses(),\n (error || localValidationError) && 'has-error',\n labelwidth && 'tyk-form-group--label-has-width',\n disabled && 'disabled',\n expandMode && 'is-expand-mode',\n ].filter(Boolean).join(' ');\n }\n\n function getFilteredValues() {\n const defaultFn = (v, s) => v?.name?.toLowerCase()?.includes(s);\n const fn = matchItemFn || defaultFn;\n const filteredValues = values.filter((v) => fn(v, searchValue.toLowerCase()));\n return filteredValues;\n }\n\n function openDropdown() {\n setIsOpened(true);\n }\n\n function closeDropdown() {\n setIsOpened(false);\n if (!tags) updateSearchValue('');\n setActiveItem(null);\n }\n\n function updateSearchValue(newSearchValue) {\n setSearchValue(newSearchValue);\n if (activeItem && getFilteredValues().every((fv) => fv.id !== activeItem.id)) {\n setActiveItem(null);\n }\n if (newSearchValue && !isOpened) openDropdown();\n }\n\n function isValidValue(newValues, lastValue) {\n const localError = validateOnChange(newValues, lastValue);\n setLocalValidationError(localError);\n return localError === undefined;\n }\n\n function updateValue(newValues) {\n setValue(newValues);\n onChange(max === 1 && !tags ? (newValues[0] || null) : newValues);\n }\n\n function addTag(val) {\n if (!val) return;\n if (value.length >= max) return;\n if (value.some(({ name }) => name === val)) return;\n\n const listValueIndex = values.findIndex((lv) => lv.name === val);\n let newValue;\n let finalValue = [...value];\n let selectedValues;\n\n if (listValueIndex === -1) {\n if (allowCustomValues) {\n newValue = { id: val, name: val };\n finalValue = [...value, newValue];\n }\n } else {\n selectedValues = [\n ...values.slice(0, listValueIndex),\n { ...values[listValueIndex], selected: true },\n ...values.slice(listValueIndex + 1),\n ];\n newValue = values[listValueIndex];\n finalValue = [...value, values[listValueIndex]];\n }\n\n if (isValidValue(finalValue, newValue) && onBeforeChange(value, finalValue)) {\n if (selectedValues) {\n setValues(selectedValues);\n }\n updateValue(finalValue);\n }\n }\n\n function removeTag(id) {\n if (required && max === 1) return;\n\n const listValueIndex = values.findIndex((lv) => lv.id === id);\n const newValue = value.filter((v) => v.id !== id);\n\n if (!onBeforeChange(value, newValue)) return;\n\n if (listValueIndex !== -1) {\n setValues([\n ...values.slice(0, listValueIndex),\n { ...values[listValueIndex], selected: false },\n ...values.slice(listValueIndex + 1),\n ]);\n }\n updateValue(newValue);\n }\n\n function selectValue({ id }) {\n const val = values.find((v) => v.id === id);\n const valIndex = values.findIndex((v) => v.id === id);\n let finalValue = value;\n let selectedValues = values;\n\n if (val.selected) {\n if (!required || max !== 1) {\n finalValue = value.filter((v) => v.id !== val.id);\n selectedValues = values.with(valIndex, { ...val, selected: false });\n }\n } else if (value.length < max) {\n finalValue = [...value, val];\n selectedValues = values.with(valIndex, { ...val, selected: true });\n } else if (max === 1) {\n finalValue = [val];\n selectedValues = values.map((v) => ({ ...v, selected: v.id === val.id }));\n }\n\n if (isValidValue(finalValue, val) && onBeforeChange(value, finalValue)) {\n updateValue(finalValue);\n setValues(selectedValues);\n }\n\n if (max === 1 || closeOnSelect) {\n closeDropdown();\n }\n }\n\n function selectAllValues(selected) {\n if (values.length > max) return;\n const newValue = selected ? [...values] : [];\n\n if (!onBeforeChange(value, newValue)) return;\n\n updateValue(newValue);\n setValues(values.map((v) => ({ ...v, selected })));\n if (closeOnSelect) closeDropdown();\n }\n\n function moveUpActiveItem() {\n const visibleItems = getFilteredValues().filter((v) => !v.disabled);\n if (visibleItems.length === 0) return;\n if (activeItem === null || visibleItems.length === 1) {\n setActiveItem(visibleItems[visibleItems.length - 1]);\n return;\n }\n const activeIndex = visibleItems.findIndex((v) => v.id === activeItem.id);\n setActiveItem(visibleItems[activeIndex > 0 ? activeIndex - 1 : visibleItems.length - 1]);\n }\n\n function moveDownActiveItem() {\n const visibleItems = getFilteredValues().filter((v) => !v.disabled);\n if (visibleItems.length === 0) return;\n if (activeItem === null || visibleItems.length === 1) {\n setActiveItem(visibleItems[0]);\n return;\n }\n const activeIndex = visibleItems.findIndex((v) => v.id === activeItem.id);\n setActiveItem(visibleItems[activeIndex < visibleItems.length - 1 ? activeIndex + 1 : 0]);\n }\n\n function executeTriggerAction() {\n if (expandMode) {\n setValuesExpanded(!valuesExpanded);\n } else {\n openDropdown();\n }\n }\n\n function handleDocumentClick(e) {\n const isClickInside = rootRef.current?.contains(e.target)\n || dropdownRef.current?.contains(e.target);\n if (!isClickInside) {\n closeDropdown();\n }\n }\n\n function onClickCapture(e) {\n if (!disabled) return;\n if (!expandMode) {\n e.stopPropagation();\n return;\n }\n\n const triggerElement = rootRef.current.querySelector('.tyk-combobox2__values-container-trigger');\n if (!triggerElement) return;\n\n const isClickOnTrigger = triggerElement === e.target || triggerElement.contains(e.target);\n if (!isClickOnTrigger) e.stopPropagation();\n }\n\n function onTagMessage(message, data) {\n if (message === 'add') {\n addTag(data);\n updateSearchValue('');\n }\n\n if (message === 'remove') removeTag(data);\n\n if (message === 'input.change') updateSearchValue(data);\n\n if (message === 'input.enter') {\n if (activeItem) {\n selectValue(activeItem);\n } else if (tagSeparators.includes('Enter')) {\n addTag(data);\n updateSearchValue('');\n }\n }\n\n if (message === 'input.arrowUp') {\n openDropdown();\n moveUpActiveItem();\n }\n\n if (message === 'input.arrowDown') {\n openDropdown();\n moveDownActiveItem();\n }\n\n if (message === 'input.escape') closeDropdown();\n\n if (message === 'input.blur' && addTagOnBlur) {\n addTag(data);\n updateSearchValue('');\n }\n\n if (message === 'input.focus') {\n openDropdown();\n }\n }\n\n const onMessage = useCallback((message, data) => {\n if (message.startsWith('tag.')) onTagMessage(message.slice(4), data);\n\n if (message === 'value.select') selectValue(data.item);\n\n if (message === 'value.select-all') selectAllValues(data);\n\n if (message === 'text-value.click') openDropdown();\n\n if (message === 'search.change') updateSearchValue(data);\n\n if (message === 'search.escape') closeDropdown();\n\n if (message === 'search.arrowUp') moveUpActiveItem();\n\n if (message === 'search.arrowDown') moveDownActiveItem();\n\n if (message === 'search.enter') {\n if (activeItem) selectValue(activeItem);\n }\n }, [\n onTagMessage,\n selectValue,\n selectAllValues,\n openDropdown,\n updateSearchValue,\n closeDropdown,\n moveUpActiveItem,\n moveDownActiveItem,\n ]);\n\n const renderIcon = useCallback(\n () => (expandMode\n ? \n : \n ),\n [expandMode, valuesExpanded],\n );\n\n useEffect(() => {\n window.addEventListener('click', handleDocumentClick, true);\n return () => window.removeEventListener('click', handleDocumentClick, true);\n }, []);\n\n useEffect(() => {\n if (propValues.length) {\n const newValues = propValues.map((v) => ({\n ...normalizeValue(v),\n selected: value.some((sv) => sv.id === v.id),\n }));\n setValues(newValues);\n setValue((val) => val.map((v) => newValues.find((nv) => nv.id === v.id) || v));\n } else if (values.length) {\n setValues([]);\n }\n }, [propValues]);\n\n useEffect(() => {\n const newValue = getValueFromProp(propValue, values);\n setValue(newValue);\n setValues((vals) => vals.map((v) => ({\n ...normalizeValue(v),\n selected: newValue.some((nv) => nv.id === v.id),\n })));\n }, [propValue]);\n\n useEffect(() => {\n if (!expandMode) return () => {};\n\n const valuesElement = comboboxControlRef.current.querySelector('.tyk-combobox2__current-values');\n const updateScroll = () => {\n valuesElement.scrollTop = valuesElement.scrollHeight;\n };\n /* eslint-disable-next-line no-undef */\n const mobserver = new MutationObserver(updateScroll);\n const robserver = new ResizeObserver(updateScroll);\n\n mobserver.observe(valuesElement, { attributes: true, childList: true, subtree: true });\n robserver.observe(valuesElement);\n\n return () => {\n mobserver.disconnect();\n robserver.disconnect();\n };\n });\n\n const filteredValues = getFilteredValues();\n const currentValuesClasses = [\n 'tyk-combobox2__current-values',\n expandMode && 'expand-mode',\n `tyk-combobox2__current-values--${valuesExpanded ? 'expanded' : 'collapsed'}`,\n ].join(' ');\n\n return (\n \n {label && (\n \n )}\n {!readOnly && (\n \n
    \n \n \n
    \n {displayDropdownTrigger && (\n \n {renderIcon()}\n \n )}\n \n {isOpened && (!tags || filteredValues.length > 0) && (\n \n {renderList ? (\n renderList(filteredValues, {\n tags,\n searchValue,\n activeItem,\n listRef,\n sendMessage: onMessage,\n })\n ) : (\n \n )}\n \n )}\n {note && (\n

    {note}

    \n )}\n {((error && error !== 'true' && error !== 'false') || Boolean(localValidationError)) && (\n

    {error || localValidationError}

    \n )}\n \n )}\n {readOnly && (\n
    \n \n
    \n )}\n \n );\n}\n\nCombobox2.propTypes = {\n /** If `true` it allows entering values that are not in the list. */\n allowCustomValues: PropTypes.bool,\n /** Alias for `renderList`\n * used for backwards compatibility with the old Combobox component. */\n CustomListComponent: PropTypes.elementType,\n /** A function used for filtering elements displayed in the list when typing in. */\n searchItem: PropTypes.func,\n /** A custom component that will be used to display a value. */\n renderValue: PropTypes.func,\n /** A custom component that will be used to display an item in the dropdown list. */\n renderListItem: PropTypes.func,\n /** A custom component that will be used to display the entire content of the dropdown. */\n renderList: PropTypes.func,\n disabled: PropTypes.bool,\n /** hides the UI form element and displayes just the value as text */\n readOnly: PropTypes.bool,\n error: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n /** The maximum number of values that can be selected/added. */\n max: PropTypes.number,\n /** Shorthand for max=Infinity */\n multiple: PropTypes.bool,\n note: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n /**\n * Callback called before changing the value of the component.\n * The value change will succeed only if the callback's return value is truthy.\n * The callback is called with two arguments: 1) the previous value, 2) the next value */\n onBeforeChange: PropTypes.func,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n /** Enables the display of values as `Pill` components that can be\n * removed without opening the dropdown. */\n tags: PropTypes.bool,\n /** A list of characters that will trigger the creation of a tag when typed. */\n tagSeparators: PropTypes.arrayOf(PropTypes.string),\n /** If set to true a tag will be created whenever the component loses focus\n * and there is something typed in. */\n addTagOnBlur: PropTypes.bool,\n theme: PropTypes.string,\n /** The value of the component. It can be a string, an array,\n * or an object with an `id` property. */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n ]),\n /** An array of selectable values. */\n values: PropTypes.instanceOf(Array),\n /** Config object passed to the internal floating container component. */\n floatingContainerConfig: PropTypes.instanceOf(Object),\n /** If set to `single` it will display the values on a single line\n * with an ellipsis at the end. */\n valueOverflow: PropTypes.oneOf(['single', 'multiple']),\n /**\n * If set to `true` whenever the user clicks on the dropdown trigger\n * the selected values container\n * will expand to show all selected values instead of opening the dropdown.\n */\n expandMode: PropTypes.bool,\n /** Config object passed to the internal infinite scroller component. */\n infiniteScrollerConfig: PropTypes.instanceOf(Object),\n /** Toggles the display of the dropdown trigger. */\n displayDropdownTrigger: PropTypes.bool,\n /**\n * If a boolean it will toggle the select all functionality from the dropdown.\n * It can also be an object with the shape `{ label, show, mode, render }`.\n * label - A string displayed as the select all option\n * show - It can be one of `['always', 'notSameState']`.\n * `always` means the option will always be displayed.\n * `notSameState` means it will be displayed only if the list items are\n * not all with the same state (depending on the `mode` value)\n * mode - It can be one of `['select', 'unselect']` and makes sense only\n * when the `show` property is `notSameState`\n * `select` means the select all option will only be displayed if not all\n * items are selected\n * `unselect` means the option will be displayed if no items are selected\n */\n selectAll: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n mode: PropTypes.oneOf(['select', 'unselect']),\n show: PropTypes.oneOf(['always', 'notSameState']),\n render: PropTypes.func,\n }),\n ]),\n /** It `true` the dropdown will close after selecting a value. */\n closeOnSelect: PropTypes.bool,\n /** Toggles the display of the search input from the dropdown. */\n showSearch: PropTypes.bool,\n /** If it is required and can only select one value once you have something\n * selected you will not be able to deselect */\n required: PropTypes.bool,\n /** Validates newly added value before adding it to the selected values.\n * Returns an error string in case of error otherwise it returns undefined\n */\n validateOnChange: PropTypes.func,\n wrapperClassName: PropTypes.string,\n};\n\nexport default Combobox2;\n\nfunction normalizeValue(value, values) {\n let v = value;\n if (typeof value === 'string') v = { id: value, name: value };\n else if (!value.hasOwnProperty('name')) v = { ...value, name: value.id }; // eslint-disable-line no-prototype-builtins\n if (!values) return v;\n const existingVal = values.find((ev) => ev.id === v.id);\n return existingVal ? { ...v, ...existingVal } : v;\n}\n\nfunction getValueFromProp(value, values) {\n if (!value) return [];\n if (Array.isArray(value)) return value.map((v) => normalizeValue(v, values));\n return [normalizeValue(value, values)];\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"flatpickr\");","import React, {\n useEffect, useState, useRef, useCallback,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport flatpickr from 'flatpickr';\n\nimport Icon from '../../../components/Icon';\nimport { usePrevious } from '../../../hooks';\n\nfunction DatePicker({\n children,\n disabled,\n readOnly = false,\n error,\n id,\n label,\n labelwidth,\n note,\n onClose,\n onChange,\n onOpen,\n theme,\n config = {},\n value,\n wrapperClassName = '',\n}) {\n const [pickerInstance, setPickerInstance] = useState(null);\n const dateRef = useRef(null);\n\n const prevValue = usePrevious(value);\n\n const hasValueChanged = useCallback((prevDate, currentDate) => {\n if (!prevDate) return true;\n if (!Array.isArray(currentDate)) return prevDate.getTime() !== currentDate.getTime();\n\n let diffDates = currentDate;\n\n if (prevDate && currentDate.length && prevDate.length) {\n diffDates = currentDate.filter((date, index) => date.getTime() !== prevDate[index].getTime());\n\n return diffDates.length > 0;\n }\n\n return currentDate.length > 0;\n }, []);\n\n const onDateChange = useCallback((dateValue) => {\n const finalValue = config.mode === 'range' ? dateValue : dateValue[0] || null;\n\n if (!onChange) return;\n\n if (config.mode === 'range') {\n if (finalValue.length === 2 && hasValueChanged(prevValue, finalValue)) {\n onChange(finalValue);\n }\n } else {\n onChange(finalValue);\n }\n }, [prevValue, onChange, hasValueChanged]);\n\n useEffect(() => {\n if (dateRef.current && !pickerInstance) {\n const instance = flatpickr(dateRef.current, {\n ...config, defaultDate: value, onChange: onDateChange, onClose, onOpen,\n });\n setPickerInstance(instance);\n }\n\n return () => {\n if (pickerInstance) {\n pickerInstance.destroy();\n }\n };\n }, [pickerInstance]);\n\n useEffect(() => {\n if (pickerInstance) {\n let tempValue = value;\n\n if (typeof value === 'string') {\n tempValue = new Date(value);\n } else if (Array.isArray(value)) {\n tempValue = value.map((date) => new Date(date));\n }\n\n if (hasValueChanged(prevValue, tempValue)) {\n pickerInstance.set('onChange', onDateChange);\n if (config.mode === 'range') {\n if (tempValue && tempValue.length === 2) {\n pickerInstance.setDate(tempValue, true);\n }\n } else {\n pickerInstance.setDate(tempValue, true);\n }\n }\n }\n }, [prevValue, value, pickerInstance]);\n\n const classes = [\n 'tyk-form-group',\n 'tyk-form-group--addon-right',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const getLabelStyles = () => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n };\n\n const getNonLabelWidth = () => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n };\n\n const openCalendar = useCallback(() => {\n if (!pickerInstance) return;\n\n pickerInstance.open();\n }, [pickerInstance]);\n\n const getInputError = () => (\n (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null\n );\n\n const getInputField = () => {\n let inputStyle = {};\n let addonStyle = {};\n\n if (config?.inline) {\n inputStyle = {\n height: 0,\n padding: 0,\n width: 0,\n visibility: 'hidden',\n };\n\n addonStyle = {\n display: 'none',\n };\n }\n return (\n <>\n \n {}}\n tabIndex={0}\n style={addonStyle}\n aria-label=\"show calendar\"\n >\n \n \n \n );\n };\n\n return (\n <>\n {\n children?.length\n ? children({ openCalendar, ref: dateRef })\n : (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n
    \n {getInputField()}\n
    \n {\n note\n ?

    { note }

    \n : null\n }\n { getInputError() }\n
    \n )}\n \n )\n }\n
    \n {readOnly && !value && '-'}\n {readOnly && value && flatpickr.formatDate(value, config.dateFormat || 'd/m/Y')}\n
    \n \n );\n}\n\nDatePicker.propTypes = {\n config: PropTypes.instanceOf(Object),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n PropTypes.func,\n ]),\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n onClose: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n onOpen: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n theme: PropTypes.string,\n error: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n PropTypes.string,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default DatePicker;\n","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n // eslint-disable-next-line no-console\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n case 'aaa':\n return dayPeriodEnumValue;\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, dirtyDelimiter);\n}\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\nexport default formatters;","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n var dateTimeFormat;\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n return result;\n};\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import defaultLocale from \"../../locale/en-US/index.js\";\nexport default defaultLocale;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n var originalDate = toDate(dirtyDate);\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n var formatter = formatters[firstCharacter];\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n return substring;\n }).join('');\n return result;\n}\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n if (!matched) {\n return input;\n }\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import React, { Component, createRef } from 'react';\nimport isEqual from 'react-fast-compare';\nimport PropTypes from 'prop-types';\n\nimport Column from '../../../../layout/Column';\nimport Row from '../../../../layout/Row';\nimport Button from '../../../../components/Button';\n\nclass EditableListForm extends Component {\n static getMainFormValue(components) {\n const mainFormValue = new Array(components.length);\n\n components.forEach((component, index) => {\n mainFormValue[index] = component.props.value || undefined;\n });\n\n return mainFormValue;\n }\n\n constructor(props) {\n super(props);\n const {\n components,\n } = props;\n\n this.submitButtonRef = createRef();\n this.handleOnChange = this.handleOnChange.bind(this);\n this.submitForm = this.submitForm.bind(this);\n\n this.state = {\n components,\n errors: {},\n mainError: null,\n mainFormValue: EditableListForm.getMainFormValue(components),\n refs: [],\n };\n }\n\n componentDidMount() {\n const {\n addValueOnFieldChange,\n getMainFormButtonWidth,\n } = this.props;\n this.createRefs();\n\n if (getMainFormButtonWidth) {\n getMainFormButtonWidth(\n !addValueOnFieldChange\n ? this.submitButtonRef.current.clientWidth\n : 0,\n );\n }\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const state = {};\n const {\n components: propsComponents,\n } = nextProps;\n\n const {\n components: stateComponents,\n } = prevState;\n if (\n !isEqual(propsComponents, stateComponents)\n && !isEqual(\n EditableListForm.getMainFormValue(propsComponents),\n EditableListForm.getMainFormValue(stateComponents),\n )\n ) {\n state.mainFormValue = EditableListForm.getMainFormValue(propsComponents);\n state.components = propsComponents;\n }\n\n return state;\n }\n\n handleOnChange(component, index, value) {\n const { addValueOnFieldChange } = this.props;\n let tempState = this.state;\n\n tempState = { ...tempState, ...this.validateValue(value, component.props) };\n\n if (!tempState.errors[component.props.name]) {\n tempState.mainFormValue[index] = value;\n\n if (component.props.onChange) {\n component.props.onChange(value);\n }\n }\n\n this.setState((previousState) => ({ ...previousState, ...tempState }), () => {\n if (addValueOnFieldChange) {\n this.submitForm();\n }\n });\n }\n\n getFormCssClasses() {\n const { noLabels } = this.props;\n const cssClasses = ['tyk-editable-list__form'];\n\n if (noLabels) {\n cssClasses.push('no-labels');\n }\n\n return cssClasses.join(' ');\n }\n\n getButtonClassName() {\n const { buttonStyle, displayType } = this.props;\n const cssClasses = [];\n\n if (buttonStyle) {\n cssClasses.push(buttonStyle);\n }\n\n if (displayType) {\n cssClasses.push(displayType);\n }\n\n return cssClasses.join(' ');\n }\n\n getComponentsError(component) {\n const {\n error,\n errors,\n mainError,\n } = this.state;\n\n if (error || mainError) {\n errors[component.props.name] = 'true';\n } else if (!(error || mainError) && errors[component.props.name] === 'true') {\n delete errors[component.props.name];\n }\n\n return errors[component.props.name] ? errors[component.props.name].toString() : undefined;\n }\n\n createRefs() {\n const { components } = this.props;\n const refs = [];\n\n components.forEach(() => {\n refs.push(createRef());\n });\n\n this.setState({\n refs,\n });\n }\n\n validateValue(value, props) {\n const { mainError, errors } = this.state;\n const { error, errorPersist } = this.props;\n\n const validatorsNames = props.validate ? Object.keys(props.validate) : [];\n // if there is a general form error don't take field errors into consideration\n const tempState = {\n errors: (error || mainError) ? {} : { ...errors },\n };\n let ok = true;\n\n // if the error should stay after changing fields values don't take actions\n if (errorPersist) {\n return tempState;\n }\n\n // validate each field from the form\n for (const validatorName of validatorsNames) {\n const validator = props.validate[validatorName];\n if (validator(value)) {\n tempState.errors[props.name] = props.validationmessages[validatorName];\n ok = false;\n break;\n }\n }\n\n // if the field is ok delete its error\n if (ok) {\n delete tempState.errors[props.name];\n }\n\n tempState.mainError = null;\n\n return tempState;\n }\n\n hasMainFormErrors(errors) {\n const { components, errorPersist } = this.props;\n const { mainFormValue } = this.state;\n const tempState = {\n errors: { ...errors },\n };\n\n if (errorPersist && mainFormValue.indexOf(undefined) === -1) {\n return false;\n }\n\n if (Object.keys(tempState.errors).length > 0) {\n return true;\n }\n\n components.forEach((component, index) => {\n tempState.errors = {\n ...tempState.errors,\n ...this.validateValue(mainFormValue[index], component.props).errors,\n };\n });\n\n return Object.keys(tempState.errors).length > 0;\n }\n\n resetForm() {\n const { refs } = this.state;\n const {\n components,\n } = this.props;\n\n refs.forEach((ref) => {\n if (ref.current?.reset) {\n ref.current.reset();\n }\n });\n\n this.setState({\n errors: {},\n mainError: null,\n mainFormValue: EditableListForm.getMainFormValue(components),\n });\n }\n\n showMainError(error) {\n this.setState({\n mainError: error,\n });\n }\n\n submitForm() {\n const { errors, mainFormValue } = this.state;\n const {\n errorPersist, onSubmit, validate, validationmessage,\n } = this.props;\n\n if (errorPersist) {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n\n if (\n Object.keys(errors).length === 0\n && (onSubmit && typeof onSubmit === 'function')\n ) {\n if (validate) {\n if (validate(mainFormValue)) {\n this.showMainError(validationmessage);\n } else {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n } else {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n }\n }\n\n render() {\n const {\n addValueOnFieldChange, components, buttonName, disabled, displayType, error,\n } = this.props;\n const {\n mainError, refs, errors,\n } = this.state;\n\n return (\n
    \n
    \n \n {\n components.map((component, index) => {\n const ComponentName = component.name;\n console.log('ComponentName', ComponentName);\n const {\n onChange, value, ...rest\n } = component.props;\n\n return (\n \n \n \n );\n })\n }\n \n {\n !addValueOnFieldChange\n ? (\n \n \n { buttonName || 'ADD' }\n \n \n )\n : null\n }\n
    \n {\n error || mainError\n ? (\n
    \n

    \n { error || mainError }\n

    \n
    \n )\n : null\n }\n
    \n );\n }\n}\n\nEditableListForm.propTypes = {\n addValueOnFieldChange: PropTypes.bool,\n noLabels: PropTypes.bool,\n buttonName: PropTypes.string,\n buttonStyle: PropTypes.string,\n components: PropTypes.instanceOf(Array),\n displayType: PropTypes.string,\n disabled: PropTypes.bool,\n getMainFormButtonWidth: PropTypes.func,\n error: PropTypes.string,\n errorPersist: PropTypes.bool,\n onSubmit: PropTypes.func,\n validate: PropTypes.func,\n validationmessage: PropTypes.string,\n};\n\nexport default EditableListForm;\n","import React, { Component, createRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport format from 'date-fns/format';\nimport isDate from 'date-fns/isDate';\n\nimport EditableListForm from './js/EditableListForm';\nimport Column from '../../../layout/Column';\nimport Icon from '../../../components/Icon';\nimport Row from '../../../layout/Row';\n\nclass EditableList extends Component {\n static getItemListValue(itemValue) {\n let tempValue = null;\n\n if (typeof itemValue === 'string') {\n tempValue = itemValue;\n }\n\n if (Object.prototype.toString.call(itemValue) === '[object Object]') {\n tempValue = itemValue.name;\n }\n\n if (isDate(itemValue)) {\n tempValue = format(itemValue, 'dd/MM/yyyy');\n }\n\n return tempValue;\n }\n\n static getListItemCssClass(displayType) {\n const cssClasses = [];\n\n if (displayType === 'inline') {\n cssClasses.push('tyk-editable-list-item--inline');\n }\n\n return cssClasses.join(' ');\n }\n\n constructor(props) {\n super(props);\n const {\n value,\n } = this.props;\n\n this.state = {\n initialValue: value || '',\n value: value || [],\n buttonWidth: 0,\n };\n\n this.startIndex = 1;\n\n this.handleFormSubmit = this.handleFormSubmit.bind(this);\n this.getMainFormButtonWidth = this.getMainFormButtonWidth.bind(this);\n this.dropdownListItemRef = createRef();\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const state = {};\n\n if (\n nextProps.value && JSON.stringify(nextProps.value)\n !== JSON.stringify(prevState.initialValue)\n ) {\n state.value = nextProps.value || [];\n state.initialValue = nextProps.value || '';\n }\n\n return state.value ? state : null;\n }\n\n handleFormSubmit(value) {\n const tempState = this.addValues(value);\n this.setState((previousState) => ({ ...previousState, ...tempState }), () => {\n this.triggerOnChange(tempState.value.length - 1, null, value);\n });\n }\n\n handleItemUpdate(index, value) {\n let prevValue;\n this.setState((previousState) => {\n const tempState = { ...previousState };\n prevValue = fromJS(tempState.value[index].value).toJS();\n tempState.value[index].value = value;\n tempState.value[index].editMode = false;\n\n return tempState;\n }, () => {\n this.triggerOnChange(index, prevValue, value);\n });\n }\n\n handleChildrenOnChange(index, value) {\n let prevValue;\n this.setState((previousState) => {\n const tempState = { ...previousState };\n prevValue = fromJS(tempState.value[index].children).toJS();\n tempState.value[index].children = value;\n\n return tempState;\n }, () => {\n this.triggerOnChange(index, prevValue, value);\n });\n }\n\n getListItemsCssClass(displayType) {\n const { config } = this.props;\n const cssClasses = ['tyk-editable-list-items'];\n\n cssClasses.push(config.displayType || 'table');\n\n if (displayType === 'inline') {\n cssClasses.push('tyk-editable-list-items--inline');\n }\n\n return cssClasses.join(' ');\n }\n\n getFormInputKey() {\n this.startIndex += 1;\n return this.startIndex;\n }\n\n // generate list item value's based on the display types\n // table, inline, list\n getListItemText(itemData) {\n const { config } = this.props;\n let value = null;\n\n switch (config.displayType) {\n case 'list':\n case 'inline': {\n const itemText = itemData.value.reduce((prevValue, itemValue, index) => {\n const tempValue = EditableList.getItemListValue(itemValue);\n let separator = ', ';\n\n if (index === itemData.value.length - 1) {\n separator = '';\n }\n\n return prevValue + tempValue + separator;\n }, '');\n\n value = itemText;\n\n break;\n }\n default:\n value = (\n \n {\n config.components.map((component, index) => (\n \n { EditableList.getItemListValue(itemData.value[index]) }\n \n ))\n }\n \n );\n\n break;\n }\n\n return value;\n }\n\n getMainFormButtonWidth(value) {\n this.setState({\n buttonWidth: value,\n });\n }\n\n setItemEditMode(index) {\n const newValues = this.closeListItems();\n\n this.setState((previousState) => {\n const tempState = { ...previousState };\n tempState.value = newValues;\n tempState.value[index].editMode = !tempState.value[index].editMode;\n\n return tempState;\n });\n }\n\n isInList(index, itemValue) {\n const { value } = this.state;\n let ok = false;\n\n value.forEach((item, itemIndex) => {\n if (JSON.stringify(item.value) === JSON.stringify(itemValue)) {\n if (index >= 0 && itemIndex === index) {\n ok = false;\n } else {\n ok = true;\n }\n }\n });\n\n return ok;\n }\n\n addValues(newValue) {\n const { value } = this.state;\n const { config } = this.props;\n const itemValue = {\n editMode: false,\n value: newValue,\n };\n const tempState = {\n value: value.slice(0),\n };\n\n if (config.children) {\n itemValue.children = [];\n }\n\n tempState.value.push(itemValue);\n\n return tempState;\n }\n\n removeListItem(index) {\n let removedItem;\n this.setState((previousState) => {\n const valueArr = previousState.value.slice(0);\n removedItem = valueArr.splice(index, 1);\n\n return {\n value: valueArr,\n };\n }, () => {\n this.triggerOnChange(index, removedItem, null);\n });\n }\n\n closeListItems() {\n const { value } = this.state;\n\n const newValues = value.map((itemValue) => {\n const tempItemValue = { ...itemValue };\n\n if (tempItemValue.editMode) {\n tempItemValue.editMode = false;\n return tempItemValue;\n }\n\n return tempItemValue;\n });\n\n return newValues;\n }\n\n triggerOnChange(index, prevValue, nextValue) {\n const { onChange } = this.props;\n const { value } = this.state;\n\n if (onChange && typeof onChange === 'function') {\n onChange(((value.length) ? value : null), index, prevValue, nextValue);\n }\n }\n\n genListItem(itemData, index) {\n const { config, disabled } = this.props;\n const { buttonWidth, value } = this.state;\n\n const clonedComponents = fromJS(config.components).toJS();\n\n itemData.value.forEach((itemValue, itemIndex) => {\n clonedComponents[itemIndex].props.value = itemValue;\n });\n\n return (\n \n \n {\n !itemData.editMode\n ? (\n <>\n { this.getListItemText(itemData, index) }\n \n \n \n \n \n \n \n \n \n )\n : (\n <>\n \n \n \n \n \n )\n }\n \n {\n config.children\n ? (\n \n )\n : null\n }\n \n );\n }\n\n genList() {\n const { config } = this.props;\n const { buttonWidth, value } = this.state;\n\n if (!value || value.length === 0) {\n return null;\n }\n\n return (\n <>\n {\n config.displayType === 'table' || !config.displayType\n ? (\n \n \n {\n config.components.map((component, index) => (\n \n { component.props.label }\n \n ))\n }\n \n \n )\n : null\n }\n
      \n {\n value.map((itemData, index) => this.genListItem(itemData, index))\n }\n
    \n \n );\n }\n\n render() {\n const {\n addValueOnFieldChange, config, error, disabled, label,\n } = this.props;\n const appendToElement = document.querySelector(config.appendTo) || document.querySelector('body');\n\n return (\n
    \n {\n label\n ? \n : null\n }\n \n {\n config.appendTo\n ? ReactDOM.createPortal(\n this.genList(),\n appendToElement,\n )\n : this.genList()\n }\n
    \n );\n }\n}\n\nEditableList.propTypes = {\n addValueOnFieldChange: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n config: PropTypes.instanceOf(Object),\n onChange: PropTypes.func,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n ]),\n};\n\nexport default EditableList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../../../components/Button';\n\nfunction Header({\n label, addButtonName, onAddRow, disabled, readOnly,\n}) {\n return (\n
    \n {\n label\n ? \n : null\n }\n {!disabled && !readOnly && (\n \n {addButtonName || 'Add'}\n \n )}\n
    \n );\n}\n\nHeader.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n onAddRow: PropTypes.func,\n addButtonName: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n};\n\nexport default Header;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ListHeader({\n fields,\n readOnly,\n}) {\n return (\n
  • \n {\n fields.map((field) => (\n \n {field?.props?.label}\n \n ))\n }\n
    Delete
    \n
  • \n );\n}\n\nListHeader.propTypes = {\n fields: PropTypes.instanceOf(Array),\n readOnly: PropTypes.bool,\n};\n\nexport default ListHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '../../../components/Button';\n\nfunction FieldsList({\n fields,\n disabled,\n readOnly,\n errors,\n components,\n onChange,\n onDelete,\n value,\n rowIndex,\n}) {\n return (\n
  • \n {\n components.map((Component, index) => {\n const field = fields[index];\n const tempField = typeof field === 'function' ? field(rowIndex, index) : field;\n return (\n \n \n \n );\n })\n }\n
    \n \n
    \n
  • \n );\n}\n\nFieldsList.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n rowIndex: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n fields: PropTypes.instanceOf(Array),\n errors: PropTypes.instanceOf(Array),\n components: PropTypes.instanceOf(Array),\n value: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n onDelete: PropTypes.func,\n};\n\nexport default FieldsList;\n","import React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Header from './Header';\nimport ListHeader from './ListHeader';\nimport FieldsList from './FieldsList';\nimport validateValues from './validate-values';\nimport withValidation from './with-validation';\n\nlet id = 1;\n/* eslint-disable-next-line */\nconst getUID = prefix => `${prefix}-${id++}`;\n\n/**\n * Editable list is a component, that lists rows of form elements (can have n elements on a row),\n * and stores the values of all the rows in an Array list\n */\nfunction EditableList2({\n addButtonName,\n disabled,\n readOnly,\n fields,\n label,\n error,\n value = [],\n onChange = () => {},\n hideOnEmpty = true,\n wrapperClassName = '',\n}) {\n const [internalErrors, setInternalErrors] = useState(null);\n\n const updateRowValue = (rowIndex, fieldIndex, componentValue, isValid) => {\n const tempValueArr = !value ? [] : [...value];\n\n if (!value) {\n tempValueArr[rowIndex] = [...new Array(fields.length)];\n tempValueArr[rowIndex][fieldIndex] = componentValue;\n } else {\n const tempValue = [...tempValueArr[rowIndex]];\n tempValue[fieldIndex] = componentValue;\n tempValueArr[rowIndex] = tempValue;\n tempValueArr[rowIndex].id = value[rowIndex].id;\n }\n\n if (internalErrors?.[rowIndex]?.[fieldIndex] && isValid) {\n const tempErrors = [...internalErrors];\n const tempFieldError = [...tempErrors[rowIndex]];\n tempFieldError[fieldIndex] = null;\n tempErrors[rowIndex] = tempFieldError;\n setInternalErrors(tempErrors);\n }\n onChange(tempValueArr);\n };\n\n const hasErrors = (errors) => Boolean(errors?.flat()?.filter(Boolean).length);\n\n const Components = useMemo(\n () => fields.map((field) => {\n const tempField = typeof field === 'function' ? field() : field;\n\n return withValidation(tempField?.component || null);\n }),\n [],\n );\n\n const onAddRow = () => {\n const errors = validateValues(fields, value);\n\n if (hasErrors(errors)) {\n setInternalErrors(errors);\n return;\n }\n\n const newValue = [...new Array(fields.length)];\n newValue.id = getUID('row');\n\n onChange([\n ...value,\n newValue,\n ]);\n };\n\n const deleteRow = (index) => {\n if (!value) {\n return;\n }\n const tempValue = [...value];\n tempValue.splice(index, 1);\n onChange(tempValue);\n };\n\n return (\n
    \n \n {value?.length || !hideOnEmpty ? (\n
      \n {(value || [[]]).map((v, i) => (\n \n ))}\n \n
    \n ) : null}\n {error && error !== 'true' && error !== 'false' ? (\n

    {error}

    \n ) : null}\n
    \n );\n}\n\nEditableList2.propTypes = {\n /** Sets Editable list in edit mode.\n * If enabled all fields are disabled, the add button is hidden and delete button is disabled\n * */\n disabled: PropTypes.bool,\n /** Sets Editable list in read only mode.\n * If enabled all fields are displaying just the value,\n * the add button is hidden and delete button is disabled\n */\n readOnly: PropTypes.bool,\n /** Name of the Add button. By default has 'Add value' */\n addButtonName: PropTypes.string,\n /** Label of Editable list, is displayed above the list and inline with the Add button */\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n /** Array of form elements that you want the list to have\n * Each field is an object points to the Form element component that you want to use,\n * the props you want to apply on it,\n * and the size (as in width, it's like columns system, between 1 and 12)\n * Example:\n * ...\n * fields={[\n {\n component: Input2,\n styles: {\n width: \"200px\",\n },\n size: 4,\n props: {\n name: 'input',\n label: 'Claim name',\n theme: 'default rounded-corners',\n placeholder: 'Enter claim name',\n validate: formikRequired('This field is required')\n }\n },\n {\n component: Combobox2,\n size: 8,\n props: comboboxProps\n }\n ]}\n */\n fields: PropTypes.instanceOf(Array),\n /** onChange function is called everytime the value of editable list changes */\n onChange: PropTypes.func,\n /** value of editable list, wich is an Array (List of row values)\n * of Arrays (List of column values,\n * each column will have the value format depending on the component type)\n */\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Object),\n PropTypes.instanceOf(Array),\n ]),\n error: PropTypes.string,\n hideOnEmpty: PropTypes.bool,\n wrapperClassName: PropTypes.string,\n};\n\nexport default EditableList2;\n","import React, { useCallback, useState } from 'react';\n\n// eslint-disable-next-line react/function-component-definition\nconst withValidation = (Component) => ({\n onChange, // eslint-disable-line react/prop-types\n validate, // eslint-disable-line react/prop-types\n error, // eslint-disable-line react/prop-types\n ...rest\n}) => {\n const [internalError, setInternalError] = useState(null);\n const onFieldChange = useCallback((event) => {\n /* eslint-disable-next-line */\n const value = event?.target\n ? ['radio', 'checkbox'].includes(event.target.type)\n ? event.target.checked\n : event?.target.value\n : event;\n\n let isValid = true;\n if (validate && typeof validate === 'function') {\n const errorMsg = validate(value);\n isValid = !errorMsg;\n setInternalError(errorMsg);\n }\n\n onChange(value, isValid);\n }, [validate, onChange]);\n\n return ;\n};\n\nexport default withValidation;\n","const validateValues = (fields, rowValues) => (rowValues || [[undefined, undefined]])?.map(\n (colValue) => colValue?.map(\n (value, index) => fields[index].props.validate?.(value),\n ),\n);\n\nexport default validateValues;\n","import React, { useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\n\nfunction FileInput({\n error,\n theme,\n labelwidth,\n wrapperClassName = '',\n id,\n label,\n note,\n accept,\n value,\n onChange,\n ...rest\n}) {\n const fileInputRef = useRef();\n\n function handleOnChange(e) {\n onChange(e.target.files);\n }\n\n function getCssClasses() {\n const cssClasses = [wrapperClassName, 'tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n }\n\n function getLabelStyles() {\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n function getNonLabelWidth() {\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n function getFileInputError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n function getFileInputComponent() {\n return (\n \n \n {\n fileInputRef.current && fileInputRef.current.files.length > 0\n ? (\n \n \n \n )\n : null\n }\n \n );\n }\n\n function clearValue() {\n fileInputRef.current.value = '';\n onChange('');\n }\n\n return (\n
    \n {\n label\n ? \n : null\n }\n
    \n { getFileInputComponent() }\n {\n note\n ?

    { note }

    \n : null\n }\n
    \n { getFileInputError() }\n
    \n );\n}\n\nFileInput.propTypes = {\n accept: PropTypes.string,\n disabled: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.instanceOf(Object),\n wrapperClassName: PropTypes.string,\n};\n\nexport default FileInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nclass Input extends Component {\n static getAddon(content) {\n return (\n
    \n { content }\n
    \n );\n }\n\n constructor(props) {\n super(props);\n const {\n value,\n } = this.props;\n\n this.state = {\n initValue: value,\n stateValue: value,\n };\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n const {\n isfield,\n value,\n onChange,\n } = this.props;\n\n if (!isfield && prevProps.value !== value) {\n /* eslint-disable react/no-did-update-set-state */\n this.setState({\n stateValue: value,\n }, () => {\n if (onChange) {\n onChange(value);\n }\n });\n }\n }\n\n handleOnChange(e) {\n const { onChange, isfield } = this.props;\n const inputValue = e.target.value;\n\n if (!isfield) {\n this.setState({\n stateValue: inputValue,\n }, () => {\n if (onChange) {\n onChange(inputValue);\n }\n });\n } else {\n onChange(inputValue);\n }\n }\n\n getLabelStyles() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n getNonLabelWidth() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n getInputError() {\n const { error } = this.props;\n\n return (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null;\n }\n\n getCssClasses() {\n const {\n error,\n theme,\n labelwidth,\n inputgroupaddonleft,\n inputgroupaddonright,\n } = this.props;\n const cssClasses = ['tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (inputgroupaddonleft) {\n cssClasses.push('tyk-form-group--addon-left');\n }\n\n if (inputgroupaddonright) {\n cssClasses.push('tyk-form-group--addon-right');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n }\n\n getInputGroupAddon() {\n const {\n inputgroupaddonleft,\n inputgroupaddonright,\n } = this.props;\n\n return (\n
    \n {\n inputgroupaddonleft\n ? Input.getAddon(inputgroupaddonleft)\n : null\n }\n { this.getInputComponent() }\n {\n inputgroupaddonright\n ? Input.getAddon(inputgroupaddonright)\n : null\n }\n
    \n );\n }\n\n getInputComponent() {\n const {\n isfield, onChange, value, ...rest\n } = this.props;\n const { stateValue } = this.state;\n return (\n \n );\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n reset() {\n const { initValue } = this.state;\n\n this.setState({\n stateValue: initValue,\n });\n }\n\n render() {\n const {\n label,\n id,\n inputgroupaddonleft,\n inputgroupaddonright,\n note,\n readOnly,\n value,\n } = this.props;\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n {\n inputgroupaddonleft || inputgroupaddonright\n ? this.getInputGroupAddon()\n : this.getInputComponent()\n }\n {\n note\n ?

    { note }

    \n : null\n }\n { this.getInputError() }\n
    \n )}\n {\n readOnly &&
    {value || '-'}
    \n }\n \n );\n }\n}\n\nInput.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n isfield: PropTypes.bool,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n inputgroupaddonleft: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n inputgroupaddonright: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n};\n\nexport default Input;\n","import React, { useImperativeHandle, useRef, forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Input2({\n error,\n onChange,\n readOnly,\n id,\n inputgroupaddonleft,\n inputgroupaddonright,\n label,\n labelwidth,\n note,\n theme,\n value,\n wrapperClassName = '',\n ...rest\n}, ref) {\n const inputRef = useRef();\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n inputRef.current.focus();\n },\n }));\n\n const getAddon = (content) => (\n
    \n { content }\n
    \n );\n\n const getLabelStyles = () => ({\n ...labelwidth && {\n flexBasis: labelwidth,\n },\n });\n\n const getNonLabelWidth = () => ({\n ...labelwidth && {\n flexBasis: `calc(100% - ${labelwidth} - 20px)`,\n },\n });\n\n const getInputError = () => (\n (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null\n );\n\n const getCssClasses = () => {\n const cssClasses = [wrapperClassName, 'tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (inputgroupaddonleft) {\n cssClasses.push('tyk-form-group--addon-left');\n }\n\n if (inputgroupaddonright) {\n cssClasses.push('tyk-form-group--addon-right');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n };\n\n const handleOnChange = (e) => {\n onChange(e, e.target.value);\n };\n\n const getInputElement = () => (\n \n );\n\n const getInputGroupAddon = () => (\n
    \n {\n inputgroupaddonleft\n ? getAddon(inputgroupaddonleft)\n : null\n }\n { getInputElement() }\n {\n inputgroupaddonright\n ? getAddon(inputgroupaddonright)\n : null\n }\n
    \n );\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n {\n inputgroupaddonleft || inputgroupaddonright\n ? getInputGroupAddon()\n : getInputElement()\n }\n {\n note\n ?

    { note }

    \n : null\n }\n { getInputError() }\n
    \n )}\n {\n readOnly && (\n
    \n {value || '-'}\n
    \n )\n }\n \n );\n}\n\nInput2.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n inputgroupaddonleft: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n inputgroupaddonright: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default forwardRef(Input2);\n","import { createContext } from 'react';\n\nconst MultiselectContext = createContext();\n\nexport default MultiselectContext;\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport MultiselectContext from './MultiselectContext';\nimport Button from '../../../../components/Button';\nimport Collapsible from '../../../../components/Collapsible';\nimport Loader from '../../../../components/Loader';\n\nconst getItemContent = (context, item) => (\n context.detailsDisplayTemplate\n ? context.detailsDisplayTemplate(item)\n : JSON.stringify(item.details)\n);\n\nconst getItemLoader = (context, item) => {\n const { opened } = context;\n\n return opened[item.id]\n ? \n : null;\n};\n\nfunction MultiselectItem({\n item,\n itemType,\n searchValue,\n onChange,\n}) {\n const isInSearchValue = useCallback((fieldsToSearchOn) => {\n if (fieldsToSearchOn?.length > 0) {\n return fieldsToSearchOn.some((key) => item[key]?.includes(searchValue));\n }\n\n return JSON.stringify(item).includes(searchValue);\n }, [item, searchValue]);\n\n const onAddRemove = useCallback(() => {\n onChange(item);\n }, [onChange, item]);\n\n return (\n \n {\n (context) => (\n isInSearchValue(context.fieldsToSearchOn)\n ? (\n
  • \n
    \n \n {\n context.itemDisplayTemplate\n ? context.itemDisplayTemplate(item)\n : JSON.stringify(item)\n }\n \n \n \n context.onGetItemDetails(item)}\n />\n \n
    \n {\n item.details\n ? (\n \n {getItemContent(context, item)}\n \n )\n : getItemLoader(context, item)\n }\n
  • \n )\n : null\n )\n }\n
    \n );\n}\n\nMultiselectItem.propTypes = {\n item: PropTypes.instanceOf(Object),\n itemType: PropTypes.string,\n searchValue: PropTypes.string,\n onChange: PropTypes.func,\n};\n\nexport default MultiselectItem;\n","import React, { useCallback, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Input from '../../Input';\nimport Icon from '../../../../components/Icon';\nimport Message from '../../../../components/Message';\nimport InfiniteScroller from '../../../../components/InfiniteScroller';\nimport MultiselectItem from './MultiselectItem';\n\nfunction MultiselectPanel({\n inputPlaceholder,\n noItemsMessage,\n items,\n onCustomSearch,\n onChange,\n customSearch,\n panelType,\n serverLoad,\n itemsPageNumber,\n itemsNrPages,\n loadMoreItems,\n}) {\n const [searchValue, setSearchValue] = useState('');\n const itemIndex = useRef(0);\n const itemsListRef = useRef();\n\n function getItemIndex() {\n itemIndex.current += 1;\n\n return itemIndex.current;\n }\n\n function getItemsList() {\n return (\n serverLoad\n ? (\n itemsPageNumber}\n loadMore={loadMoreItems}\n pageNumber={itemsPageNumber}\n >\n { renderListItems() }\n \n )\n : renderListItems()\n );\n }\n\n const searchOnChange = useCallback((value) => {\n if (onCustomSearch) {\n onCustomSearch(value);\n } else {\n setSearchValue(value);\n }\n }, [onCustomSearch]);\n\n const itemChanged = useCallback((item) => {\n let cloneItems = structuredClone(items);\n cloneItems = cloneItems.filter((clonedItem) => item.id !== clonedItem.id);\n\n onChange(cloneItems, item);\n }, [items]);\n\n function renderListItems() {\n return (\n \n {\n items.map((item) => (\n \n ))\n }\n \n );\n }\n\n return (\n
    \n \n }\n name=\"search\"\n onChange={searchOnChange}\n placeholder={inputPlaceholder}\n value={searchValue}\n />\n {\n items.length\n ? getItemsList()\n : (\n \n { noItemsMessage }\n \n )\n }\n
    \n );\n}\n\nMultiselectPanel.propTypes = {\n customSearch: PropTypes.bool,\n onCustomSearch: PropTypes.func,\n panelType: PropTypes.string,\n onChange: PropTypes.func,\n items: PropTypes.instanceOf(Array),\n itemsPageNumber: PropTypes.number,\n itemsNrPages: PropTypes.number,\n inputPlaceholder: PropTypes.string,\n loadMoreItems: PropTypes.func,\n noItemsMessage: PropTypes.string,\n serverLoad: PropTypes.bool,\n};\n\nexport default MultiselectPanel;\n","import React, { useCallback, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport MultiselectPanel from './js/MultiselectPanel';\nimport MultiselectContext from './js/MultiselectContext';\n\nconst diffObjects = (value, items) => items.filter((item) => !value.find((v) => v.id === item.id));\n\nfunction Multiselect({\n customSearch,\n entityNamePlural,\n disabled,\n error,\n getItemDetails,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n items,\n itemsPageNumber,\n itemsNrPages,\n loadMoreItems,\n maxSelections,\n note,\n value,\n onChange,\n wrapperClassName = '',\n}) {\n const [opened, setOpened] = useState({});\n\n const onGetItemDetails = useCallback((item) => {\n setOpened((prevOpened) => ({ ...prevOpened, [item.id]: !prevOpened[item.id] }));\n\n if (getItemDetails) getItemDetails(item);\n }, [getItemDetails]);\n\n function getMultiselectError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n const getCssClasses = useCallback(\n () => [\n wrapperClassName,\n 'tyk-multiselect',\n error && 'has-error',\n ]\n .filter(Boolean)\n .join(' '),\n [wrapperClassName, error],\n );\n\n const itemsChange = useCallback((allItems, item) => {\n const valueClone = structuredClone(value);\n\n valueClone.unshift(item);\n\n onChange(valueClone, item, 'added');\n }, [value]);\n\n const valueChange = useCallback((newValue, item) => {\n onChange(newValue, item, 'removed');\n }, [items]);\n\n const providerValue = useMemo(() => ({\n disabled,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n maxSelections,\n nrSelectedItems: value.length,\n onGetItemDetails,\n opened,\n }), [\n disabled,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n maxSelections,\n value,\n onGetItemDetails,\n opened,\n ]);\n\n return (\n <>\n
    \n \n
    \n
    \n { value.length }\n {' '}\n Selected\n {' '}\n { entityNamePlural }\n
    \n
    \n Select from existing\n { entityNamePlural }\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n {\n note\n ?

    { note }

    \n : null\n }\n
    \n { getMultiselectError() }\n \n );\n}\n\nMultiselect.propTypes = {\n customSearch: PropTypes.func,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n entityNamePlural: PropTypes.string,\n items: PropTypes.instanceOf(Array),\n itemDisplayTemplate: PropTypes.func,\n detailsDisplayTemplate: PropTypes.func,\n fieldsToSearchOn: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n getItemDetails: PropTypes.func,\n itemsPageNumber: PropTypes.number,\n itemsNrPages: PropTypes.number,\n loadMoreItems: PropTypes.func,\n note: PropTypes.string,\n maxSelections: PropTypes.number,\n value: PropTypes.instanceOf(Array),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Multiselect;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * Radio can be used when a user needs to select at most one value from a multiple options.\n */\nfunction Radio({\n label,\n input,\n note,\n inline,\n nospace,\n theme = '',\n disabled,\n readOnly,\n wrapperClassName = '',\n ...rest\n}) {\n const cssClasses = [\n inline ? 'tyk-radio--inline' : 'tyk-radio',\n wrapperClassName,\n nospace && 'no-margin',\n ...(theme ? theme.split(' ').filter(Boolean).map((t) => `tyk-radio--theme-${t}`) : []),\n (readOnly || disabled) && 'tyk-radio--is-disabled',\n ].filter(Boolean).join(' ');\n\n return (\n
    \n \n {note && (\n

    {note}

    \n )}\n
    \n );\n}\n\nRadio.propTypes = {\n /** Used to disable the element */\n disabled: PropTypes.bool,\n /** Readonly prop behaves the same as disabled on radio elements */\n readOnly: PropTypes.bool,\n /** Align radio in the same line with other elements */\n inline: PropTypes.bool,\n /** Set a theme for radio */\n theme: PropTypes.string,\n input: PropTypes.instanceOf(Object),\n /** Adds label to the radio input */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Set name for the radio input */\n name: PropTypes.string,\n /** If set to true removes margin by adding `no-margin` class */\n nospace: PropTypes.bool,\n /** Set initial value for the radio input */\n value: PropTypes.string,\n /** Add note at the bottom of the radio input */\n note: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Radio;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Select(props) {\n const {\n value,\n onChange,\n onBlur,\n isfield,\n label,\n labelwidth,\n id,\n note,\n readOnly,\n options,\n error,\n theme,\n wrapperClassName = '',\n ...rest\n } = props;\n const [stateValue, setStateValue] = useState(value);\n\n useEffect(() => {\n if (!isfield && stateValue !== value) {\n setStateValue(value);\n if (onChange) onChange(value);\n }\n }, [stateValue, value]);\n\n const handleOnChange = useCallback((e) => {\n const selectedValue = options.find((option) => option.id === e.target.value);\n\n if (!isfield) {\n setStateValue(selectedValue);\n }\n onChange(selectedValue.id ? selectedValue : null);\n }, [options, isfield, onChange]);\n\n const handleOnBlur = useCallback(() => {\n if (onBlur) {\n onBlur(value);\n }\n }, [onBlur]);\n\n // eslint-disable-next-line arrow-body-style\n const getSelectError = useCallback(() => {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }, [error]);\n\n const getCssClasses = useCallback(\n () => [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' '),\n [wrapperClassName, theme, labelwidth, error],\n );\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const getNonLabelWidth = useCallback(() => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n }, [labelwidth]);\n\n const getSelectComponent = useCallback(() => {\n const selectValue = isfield && value ? value : stateValue;\n\n return (\n \n {\n options.map((option) => (\n \n ))\n }\n \n );\n }, [isfield, value, stateValue, handleOnChange, handleOnBlur, options, rest]);\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n { getSelectComponent() }\n {\n note\n ?

    { note }

    \n : null\n }\n { getSelectError() }\n
    \n )}\n {readOnly &&
    {value || '-'}
    }\n \n );\n}\n\nSelect.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n isfield: PropTypes.bool,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n options: PropTypes.instanceOf(Array),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Select;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../../../components/Message';\nimport List from '../../../components/List';\nimport Icon from '../../../components/Icon';\n\nfunction SelectableList(props) {\n const {\n checkboxalticon,\n items,\n itemTemplate,\n value,\n noItemsMessage = 'No items in the list',\n onChange,\n theme,\n primaryKey,\n wrapperClassName = '',\n } = props;\n\n const handleOnSelect = (event) => {\n const newSelectedItems = structuredClone(value);\n const elemPosition = newSelectedItems.findIndex(\n (id) => JSON.stringify(id) === JSON.stringify(\n Array.isArray(id)\n ? event.target.value.split(',')\n : event.target.value,\n ),\n );\n\n if (event.target.checked && elemPosition === -1) {\n const tempValue = event.target.value.split(',');\n const finalValue = tempValue.length > 1 ? tempValue : event.target.value;\n\n newSelectedItems.push(finalValue);\n } else if (!event.target.checked && elemPosition > -1) {\n newSelectedItems.splice(elemPosition, 1);\n }\n\n if (onChange) {\n onChange(newSelectedItems);\n }\n };\n\n const getListItemCssClassName = (isActive) => {\n const cssClasses = [];\n\n if (checkboxalticon) {\n cssClasses.push('tyk-selectable-list__item--with-icon');\n }\n\n if (isActive) {\n cssClasses.push('tyk-selectable-list__item--active');\n }\n\n return cssClasses.join(' ');\n };\n\n const isChecked = (inputValue, itemValue) => Boolean(\n inputValue.find((tvalue) => JSON.stringify(itemValue) === JSON.stringify(tvalue)),\n );\n\n return (\n \n {\n !items.length\n ? (\n
  • \n \n {noItemsMessage}\n \n
  • \n )\n : items.map((item, index) => (\n \n \n \n ))\n }\n
    \n );\n}\n\nSelectableList.propTypes = {\n items: PropTypes.instanceOf(Array),\n itemTemplate: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n PropTypes.func,\n ]),\n value: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n primaryKey: PropTypes.string,\n noItemsMessage: PropTypes.string,\n checkboxalticon: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n theme: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\n\nSelectableList.defaultProps = {\n items: [],\n primaryKey: 'id',\n value: [],\n};\n\nexport default SelectableList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Textarea({\n id,\n input,\n label,\n note,\n error,\n theme,\n labelwidth,\n value,\n readOnly,\n wrapperClassName,\n ...rest\n}) {\n const classes = [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const getLabelStyles = () => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n };\n\n const getNonLabelWidth = () => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n };\n\n function getTextareaError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n \n { value }\n \n {\n note\n ?

    { note }

    \n : null\n }\n {getTextareaError()}\n
    \n )}\n {readOnly &&
    {value || '-'}
    }\n \n );\n}\n\nTextarea.propTypes = {\n /** Disable the component */\n disabled: PropTypes.bool,\n /** Displays only the text value of the component, or \"-\" if no value is set */\n readOnly: PropTypes.bool,\n input: PropTypes.instanceOf(Object),\n /** Set an error message for the component and the component is rendered in the error state */\n error: PropTypes.string,\n /** Adds a label to the component */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Sets the width of the label */\n labelwidth: PropTypes.string,\n /** Set a name for the component */\n name: PropTypes.string,\n /** Adds additional information under the component */\n note: PropTypes.string,\n /** Callback function executed on value change */\n onChange: PropTypes.func,\n id: PropTypes.string,\n /** Set a theme for the component */\n theme: PropTypes.string,\n /** Set the value of the component */\n value: PropTypes.string,\n /** CSS classes added to the wrapper of the component */\n wrapperClassName: PropTypes.string,\n};\n\nexport default Textarea;\n","import { createContext } from 'react';\n\nconst ToggleContext = createContext();\n\nexport default ToggleContext;\n","import React, { Component, createRef } from 'react';\nimport PropTypes from 'prop-types';\n\nclass ToggleItem extends Component {\n static getNotchCssClasses(context) {\n return ['tyk-toggle__item-notch', `tyk-toggle__item-notch--${context.type}`].join(' ');\n }\n\n constructor(props) {\n super(props);\n\n this.itemRef = createRef();\n }\n\n componentDidMount() {\n const { context, value } = this.props;\n\n if (context.value === value) {\n context.saveSelectedRef(this.itemRef);\n }\n }\n\n componentDidUpdate(prevProps) {\n const { context, value } = this.props;\n\n if (prevProps.context.value !== context.value && context.value === value) {\n context.saveSelectedRef(this.itemRef);\n }\n }\n\n onChange(event) {\n const { context, value } = this.props;\n const { disabled, readOnly } = context;\n\n if (disabled || readOnly) {\n return;\n }\n\n context.onItemSelected(context.type === 'single' ? !context.value : value, event);\n }\n\n render() {\n const {\n context, label, name, value,\n } = this.props;\n return (\n
  • \n \n
  • \n );\n }\n}\n\nToggleItem.propTypes = {\n context: PropTypes.instanceOf(Object),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n name: PropTypes.string,\n value: PropTypes.string,\n};\n\nexport default ToggleItem;\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToggleContext from './ToggleContext';\nimport ToggleItem from './ToggleItem';\n\nfunction ToggleItemWrapper({ children, ...rest }, ref) {\n return (\n \n {(context) => (\n \n {children}\n \n )}\n \n );\n}\n\nToggleItemWrapper.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nexport default forwardRef(ToggleItemWrapper);\n","import React, {\n useCallback, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToggleContext from './js/ToggleContext';\nimport ToggleItemWrapper from './js/ToggleItemWrapper';\n\nfunction Toggle({\n className,\n disabled,\n readOnly,\n size,\n theme,\n direction,\n onDark,\n wrapperClassName = '',\n onChange,\n labelwidth,\n label,\n separated,\n children,\n type,\n value,\n error,\n}) {\n const [selectedRef, setSelectedRef] = useState(null);\n const notchRef = useRef();\n const toggleRef = useRef();\n\n const classes = [\n wrapperClassName,\n className,\n 'tyk-toggle',\n `tyk-toggle--disabled-${readOnly || disabled}`,\n `tyk-toggle--${size || 'md'}`,\n `tyk-toggle--${theme}`,\n `tyk-toggle--${direction}`,\n onDark && 'tyk-toggle--on-dark',\n ].filter(Boolean).join(' ');\n\n const onItemSelected = useCallback((itemValue, event) => {\n if (!onChange) return;\n onChange(itemValue, event);\n }, [onChange]);\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const positionNotch = useCallback(() => {\n if (!selectedRef || separated) {\n return {};\n }\n\n const selectedWidth = selectedRef.current.offsetWidth;\n const selectedOffset = selectedRef.current.getBoundingClientRect().left;\n const toggleOffset = toggleRef.current.getBoundingClientRect().left;\n const left = selectedOffset - toggleOffset;\n\n return {\n left: `${left + 4}px`,\n width: `${selectedWidth - 8}px`,\n };\n }, [selectedRef, separated]);\n\n const contextValue = useMemo(() => ({\n disabled,\n readOnly,\n onItemSelected,\n saveSelectedRef: setSelectedRef,\n separated,\n type,\n value,\n }), [disabled, readOnly, onItemSelected, separated, type, value]);\n\n return (\n <>\n
    \n \n {\n label\n ? \n : null\n }\n
      \n { children }\n {\n type === 'multiple' && !separated\n ?
    • \n : null\n }\n
    \n \n
    \n {\n error && (\n

    \n { error }\n

    \n )\n }\n \n );\n}\n\nToggle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n error: PropTypes.string,\n onChange: PropTypes.func,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n theme: PropTypes.string,\n type: PropTypes.string, // single || multiple\n size: PropTypes.string,\n separated: PropTypes.bool,\n direction: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n ]),\n onDark: PropTypes.bool,\n wrapperClassName: PropTypes.string,\n};\n\nToggle.defaultProps = {\n separated: false,\n theme: 'primary',\n type: 'single',\n direction: 'row',\n};\n\nToggle.Item = ToggleItemWrapper;\n\nexport default Toggle;\n","const config = {\n FORM_DEBOUNCE: 200,\n};\n\nexport function setConfig(key, val) {\n config[key] = val;\n}\n\nexport default config;\n","import React, { useCallback, useEffect, useState } from 'react';\n\nimport config from '../config/config';\n\nfunction getValueFromPath(obj, path) {\n // turn 'aaa.qqq[2].bbb[5][3].mmm' into ['aaa', 'qqq', '2', 'bbb', '5', '3', 'mmm']\n const indexes = path.split(/[\\][.]/).filter(Boolean);\n return indexes.reduce((acc, v) => (acc ? acc[v] : acc), obj);\n}\n\nfunction debounce(f, limit) {\n let timeoutId;\n return (...args) => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(f, limit, ...args);\n };\n}\n\n/* eslint-disable react/prop-types, react/function-component-definition */\n/**\n * A wrapper function that \"prepares\" a tyk-ui form component to be used with the formik library.\n * It handles things like setting the value of the component, change events, error state,\n * and also has a default debounce time for when the change event is triggered.\n */\nconst wrapper = (Component, options) => ({ field, form, ...properties }) => {\n const DEFAULT_DEBOUNCE_TIME_MS = typeof config.FORM_DEBOUNCE === 'number' ? config.FORM_DEBOUNCE : 200;\n const [myValue, setMyValue] = useState(field.value);\n const opts = {\n getOnChangeProps: () => ({}),\n hasIsFieldProp: false,\n ...options,\n };\n\n const executeDebounced = useCallback((() => {\n const fn = (f) => f();\n if (\n properties.debounce === false\n || (config.FORM_DEBOUNCE === false && !properties.debounce)\n ) {\n return fn;\n }\n const timeout = typeof properties.debounce === 'number'\n ? properties.debounce\n : DEFAULT_DEBOUNCE_TIME_MS;\n return debounce(fn, timeout);\n })(), []);\n\n const getValue = (v) => {\n if (v?.target) {\n if (v.target.nodeName === 'INPUT' && (v.target.type === 'checkbox' || v.target.type === 'radio')) {\n return v.target.checked;\n }\n return v.target.value;\n }\n return v;\n };\n\n const onChange = (valueOrEvent) => {\n const value = getValue(valueOrEvent);\n const onChangeProps = opts.getOnChangeProps(value, field, form, properties);\n\n const newValue = onChangeProps.value || properties.value || value;\n executeDebounced(() => {\n if (typeof properties.onChange === 'function') {\n properties.onChange(newValue);\n }\n field.onChange({ target: { name: field.name, value: newValue, ...onChangeProps } });\n });\n setMyValue(newValue);\n };\n\n const formError = (getValueFromPath(form.touched, field.name) || Boolean(form.submitCount))\n && getValueFromPath(form.errors, field.name);\n const error = typeof formError === 'string' ? formError : '';\n\n useEffect(() => {\n setMyValue(field.value);\n }, [field.value]);\n\n // eslint-disable-next-line no-param-reassign\n if (form.status?.disabled) properties.disabled = true;\n\n const componentProps = { ...properties };\n delete componentProps.debounce;\n\n if (Object.hasOwn(componentProps, 'className') && componentProps.className === undefined) delete componentProps.className;\n if (Object.hasOwn(componentProps, 'children') && componentProps.children === undefined) delete componentProps.children;\n\n return (\n \n );\n};\n\nexport default wrapper;\n","import wrapper from '../../../utils/formik';\nimport Checkbox from '../../components/Checkbox';\n\nexport default wrapper(Checkbox, {\n getOnChangeProps: (value) => ({\n checked: value,\n }),\n});\n","import wrapper from '../../../utils/formik';\nimport CodeEditor from '../../components/CodeEditor';\n\nexport default wrapper(CodeEditor);\n","import wrapper from '../../../utils/formik';\nimport Combobox from '../../components/Combobox';\n\nexport default wrapper(Combobox);\n","import wrapper from '../../../utils/formik';\nimport Combobox2 from '../../components/Combobox2';\n\nexport default wrapper(Combobox2);\n","import wrapper from '../../../utils/formik';\nimport DatePicker from '../../components/DatePicker';\n\nexport default wrapper(DatePicker);\n","import wrapper from '../../../utils/formik';\nimport EditableList from '../../components/EditableList';\n\nexport default wrapper(EditableList, {\n getOnChangeProps: (value) => ({ value: value || [] }),\n});\n","import wrapper from '../../../utils/formik';\nimport EditableList2 from '../../components/EditableList2';\n\nexport default wrapper(EditableList2);\n","import wrapper from '../../../utils/formik';\nimport FileInput from '../../components/FileInput';\n\nexport default wrapper(FileInput);\n","import wrapper from '../../../utils/formik';\nimport Input from '../../components/Input';\n\nexport default wrapper(Input, { hasIsFieldProp: true });\n","import wrapper from '../../../utils/formik';\nimport Input2 from '../../components/Input2';\n\nexport default wrapper(Input2);\n","import wrapper from '../../../utils/formik';\nimport MultiSelect from '../../components/Multiselect';\n\nexport default wrapper(MultiSelect);\n","import wrapper from '../../../utils/formik';\nimport Radio from '../../components/Radio';\n\nexport default wrapper(Radio, {\n getOnChangeProps: (value, field, form, properties) => ({\n checked: value === properties.value,\n value: properties.value,\n }),\n});\n","import wrapper from '../../../utils/formik';\nimport Select from '../../components/Select';\n\nexport default wrapper(Select, { hasIsFieldProp: true });\n","import wrapper from '../../../utils/formik';\nimport SelectableList from '../../components/SelectableList';\n\nexport default wrapper(SelectableList);\n","import wrapper from '../../../utils/formik';\nimport Textarea from '../../components/Textarea';\n\nexport default wrapper(Textarea);\n","import wrapper from '../../../utils/formik';\nimport Toggle from '../../components/Toggle';\n\nexport default wrapper(Toggle);\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport CodeEditor from '../../components/CodeEditor';\n\nclass FieldCodeEditor extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.prop;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldCodeEditor.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCodeEditor;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Combobox from '../../components/Combobox';\n\nclass FieldCombobox extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getComboboxError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldCombobox.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCombobox;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Dropdown from '../../components/Dropdown';\n\nclass FieldDropdown extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n render() {\n const {\n children,\n input,\n ...rest\n } = this.props;\n\n return (\n \n {children}\n \n );\n }\n}\n\nFieldDropdown.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldDropdown;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Pagination from '../../components/Pagination';\n\nfunction FieldPagination(props) {\n const { input, ...rest } = props;\n\n return (\n \n );\n}\n\nFieldPagination.propTypes = {\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldPagination;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Combobox2 from '../../components/Combobox2';\n\nfunction FieldCombobox2(props) {\n const { input, meta, validationmessages } = props;\n\n const getComboboxError = () => {\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n return message;\n };\n\n const handleOnChange = (value) => {\n const { onChange } = input;\n onChange(fromJS(value));\n };\n\n return (\n \n );\n}\n\nFieldCombobox2.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCombobox2;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport DatePicker from '../../components/DatePicker';\n\nfunction FormDatePicker(props) {\n const {\n input,\n meta,\n validationmessages,\n ...rest\n } = props;\n\n const getDatePickerError = () => {\n const { touched, error } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n }\n\n return message;\n };\n\n const handleOnChange = (value) => {\n const { onChange } = input;\n\n onChange(fromJS(value));\n };\n\n return (\n \n );\n}\n\nFormDatePicker.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FormDatePicker;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport EditableList from '../../components/EditableList';\n\nclass FieldEditableList extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getEditableListError() {\n const { meta, validationmessages } = this.props;\n const { touched, error } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldEditableList.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldEditableList;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport FileInput from '../../components/FileInput';\n\nclass FieldFileInput extends Component {\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldFileInput.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldFileInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Input from '../../components/Input';\n\nclass FieldInput extends Component {\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldInput.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Multiselect from '../../components/Multiselect';\n\nclass FieldMultiselect extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getMultiselectError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldMultiselect.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldMultiselect;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Select from '../../components/Select';\n\nclass FieldSelect extends Component {\n constructor(props) {\n super(props);\n\n this.handleEvent = this.handleEvent.bind(this);\n }\n\n handleEvent(selectValue) {\n const { input } = this.props;\n const { onChange, value } = input;\n\n onChange(fromJS(selectValue !== undefined ? selectValue : value));\n }\n\n getSelectError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldSelect.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldSelect;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport SelectableList from '../../components/SelectableList';\n\nclass FieldSelectableList extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n\n input.onChange(fromJS(value));\n }\n\n render() {\n const { children, ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldSelectableList.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.node,\n ]),\n onChange: PropTypes.func,\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldSelectableList;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Toggle from '../../components/Toggle';\n\nclass FieldToggle extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n\n input.onChange(fromJS(value));\n }\n\n render() {\n const { children, ...props } = this.props;\n\n return (\n \n {children}\n \n );\n }\n}\n\nFieldToggle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.node,\n ]),\n onChange: PropTypes.func,\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldToggle;\n","import { useEffect, useRef } from 'react';\n\n/** @component */\nexport default function useInterval(callback, delay, ...args) {\n const savedCallback = useRef();\n\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n // eslint-disable-next-line consistent-return\n useEffect(() => {\n function tick() {\n savedCallback.current(...args);\n }\n if (delay !== null && delay !== undefined) {\n const id = setInterval(tick, delay);\n return () => clearInterval(id);\n }\n }, [delay]);\n}\n"],"names":["global","this","window","define","module","deps","payload","arguments","length","modules","payloads","original","apply","console","error","trace","ns","root","_require","parentId","callback","lookup","undefined","Object","prototype","toString","call","params","i","l","dep","require","push","packagedModule","normalizeModule","moduleName","indexOf","chunks","split","charAt","slice","join","previous","replace","exports","mod","id","uri","packaged","ace","defineProp","obj","name","val","defineProperty","value","enumerable","writable","configurable","String","startsWith","searchString","position","lastIndexOf","endsWith","subjectString","lastIndex","repeat","count","result","string","includes","str","assign","target","TypeError","output","index","source","keys","forEach","key","values","o","map","k","Array","find","predicate","len","thisArg","kValue","findIndex","item","fill","O","relativeStart","Math","max","min","end","relativeEnd","final","of","deepCopy","copy","isArray","last","a","stringReverse","reverse","stringRepeat","trimBeginRegexp","trimEndRegexp","stringTrimLeft","stringTrimRight","copyObject","copyArray","array","arrayToMap","arr","createMap","props","create","arrayRemove","splice","escapeRegExp","escapeHTML","getMatchOffsets","regExp","matches","offset","deferredCall","fcn","timer","deferred","timeout","cancel","setTimeout","schedule","clearTimeout","isPending","delayedCall","defaultTimeout","_self","delay","supportsLookbehind","RegExp","e","skipEmptyMatch","line","supportsUnicodeFlag","codePointAt","OS","LINUX","MAC","WINDOWS","getOS","isMac","isLinux","_navigator","navigator","os","exec","platform","toLowerCase","ua","userAgent","appName","isWin","isIE","parseFloat","match","isOldIE","isGecko","isMozilla","isOpera","opera","isWebKit","isChrome","isSafari","isEdge","isAIR","isAndroid","isChromeOS","isIOS","test","MSStream","isMobile","strictCSP","useragent","buildDom","parent","refs","txt","document","createTextNode","appendChild","els","ch","el","createElement","options","childIndex","n","className","style","cssText","setAttribute","getDocumentHead","doc","head","getElementsByTagName","documentElement","tag","createElementNS","removeChildren","element","innerHTML","textContent","ownerDocument","createFragment","createDocumentFragment","hasCssClass","addCssClass","removeCssClass","classes","toggleCssClass","add","setCssClass","node","include","hasCssString","sheets","querySelectorAll","removeElementById","getElementById","remove","cssCache","insertPendingStyles","cache","importCssString","container","getRootNode","insertBefore","firstChild","useStrictCSP","importCssStylsheet","rel","href","scrollbarWidth","inner","width","minWidth","height","display","outer","left","overflow","body","noScrollbar","offsetWidth","withScrollbar","clientWidth","removeChild","computedStyle","getComputedStyle","setStyle","styles","property","HAS_CSS_ANIMATION","HAS_CSS_TRANSFORMS","HI_DPI","devicePixelRatio","div","transform","animationName","translate","tx","ty","round","top","dom","get","url","xhr","XMLHttpRequest","open","onreadystatechange","readyState","responseText","send","loadScript","path","s","src","onload","_","isAbort","qualifyURL","inherits","ctor","superCtor","super_","constructor","mixin","implement","proto","EventEmitter","stopPropagation","propagationStopped","preventDefault","defaultPrevented","_emit","_dispatchEvent","eventName","_eventRegistry","_defaultHandlers","listeners","defaultHandler","type","_signal","once","on","newCallback","off","Promise","resolve","setDefaultHandler","handlers","_disabled_","old","disabled","removeDefaultHandler","pop","addEventListener","capturing","removeListener","removeEventListener","removeAllListeners","reportError","msg","data","Error","messages","oop","optionsProvider","setOptions","optList","setOption","getOptions","optionNames","$options","filter","hidden","getOption","opt","warn","forwardTo","handlesSet","set","message","AppConfig","$defaultOptions","defineOptions","initialValue","resetOptions","setDefaultValue","opts","setDefaultValues","optionHash","setMessages","nls","translated","isDark","cssClass","$id","lang","net","customLoader","workerPath","modePath","themePath","basePath","suffix","$moduleUrls","loadWorkerFromBlob","sharedPopups","hasOwnProperty","all","$modes","moduleUrl","component","parts","sep","base","re","setModuleUrl","subst","setLoader","cb","dynamicModules","$loading","$loaded","loadModule","onLoad","loadedModule","moduleType","load","afterLoad","loader","err","reportErrorIfPathIsNotConfigured","then","default","$require","setModuleLoader","version","config","init","scriptOptions","scriptUrl","currentScript","_currentScript","currentDocument","scripts","script","getAttribute","attributes","j","attr","m","m1","toUpperCase","Range","startRow","startColumn","endRow","endColumn","start","row","column","isEqual","range","contains","compare","compareRange","cmp","comparePoint","p","containsRange","intersects","isEnd","isStart","setStart","setEnd","inside","insideStart","insideEnd","isMultiLine","compareStart","compareEnd","compareInside","clipRows","firstRow","lastRow","fromPoints","extend","isEmpty","clone","collapseRows","toScreenRange","session","screenPosStart","documentToScreenPosition","screenPosEnd","moveBy","comparePoints","p1","p2","Keys","ret","MODIFIER_KEYS","KEY_MODS","FUNCTION_KEYS","PRINTABLE_KEYS","parseInt","enter","escape","esc","del","mods","pow","x","keyCodeToString","keyCode","keyString","fromCharCode","activeListenerOptions","pressedKeys","ts","getListenerOptions","createComment","passive","detectListenerOptionsSupport","EventListener","elem","destroy","addListener","destroyer","$toDestroy","stopEvent","getButton","ctrlKey","altKey","shiftKey","button","capture","eventHandler","releaseCaptureHandler","onMouseUp","addMouseWheelListener","deltaX","deltaY","deltaMode","DOM_DELTA_PIXEL","wheelX","wheelY","DOM_DELTA_LINE","DOM_DELTA_PAGE","addMultiMouseDownListener","elements","timeouts","callbackName","startX","startY","clicks","eventNames","onMousedown","detail","isNewClick","abs","clientX","clientY","_clicks","getModifierHash","metaKey","normalizeCommandKeys","hashId","getModifierState","altGr","location","keyLocation","timeStamp","resetPressedKeys","getModifierString","addCommandKeyListener","isOldGecko","lastKeyDownKeyCode","lastDefaultPrevented","postMessage","postMessageId","nextTick","win","messageName","listener","$idleBlocked","onIdle","handler","$idleBlockId","blockIdle","nextFrame","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","bind","$cancelT","lineMode","pasteCancelled","Date","now","event","clipboard","BROKEN_SETDATA","USE_IE_MIME_TYPE","HAS_FOCUS_ARGS","MAX_LINE_LENGTH","KEYS","MODS","valueResetRegex","TextInput","parentNode","host","text","opacity","copied","pasted","inComposition","sendingText","tempStyle","fontSize","commandMode","ignoreFocusEvents","lastValue","lastSelectionStart","lastSelectionEnd","lastRestoreEnd","rowStart","Number","MAX_SAFE_INTEGER","rowEnd","MIN_SAFE_INTEGER","numberOfExtraLines","isFocused","activeElement","setNumberOfExtraLines","number","setAriaOptions","activeDescendant","inline","removeAttribute","role","setLabel","selection","cursor","onBlur","hasFocus","onFocus","resetSelection","$focusScroll","focus","renderer","enableKeyboardAccessibility","preventScroll","isTransformed","getBoundingClientRect","ancestors","t","parentElement","nodeType","blur","curOp","commandName","command","isUserAction","docChanged","selectionChanged","onCompositionEnd","positionToSelection","getLine","newValue","selectionEnd","setSelectionRange","afterContextMenu","selectionStart","getRange","lines","prevLine","nextLine","inputHandler","setInputHandler","getInputHandler","sendText","fromInput","onPaste","extendLeft","extendRight","inserted","restoreStart","restoreEnd","endIndex","shouldReset","onTextInput","onInput","onCompositionUpdate","inputType","execCommand","handleClipboardData","forceIEMime","clipboardData","mime","setData","getData","doCopy","isCut","getCopyText","onCut","onCopy","select","onCommandKey","isAllSelected","selectAll","$readOnly","cancelComposition","useTextareaForIME","markerRange","context","compositionStartOffset","closeTimeout","syncComposition","onContextMenuClose","$isMousePressed","$keepTextAreaAtCursor","$moveTextAreaToCursor","onCompositionStart","getSelectionRange","msGetInputContext","getInputContext","getElement","setCommandMode","readOnly","setReadOnly","setCopyWithEmptySelection","onContextMenu","domEvent","moveToMouse","bringToFront","characterWidth","rect","borderTopWidth","borderLeftWidth","maxTop","bottom","clientHeight","move","textInput","scroller","typingResetTimeout","typing","detectArrowKeys","$mouseHandler","isMousePressed","modifier","up","home","option","down","right","shift","commands","findKeyCommand","addIosSelectionHandler","$setUserAgentForTests","_isMobile","_isIOS","DefaultHandlers","mouseHandler","$clickSelection","editor","onMouseDown","onDoubleClick","onTripleClick","onQuadClick","onMouseWheel","selectByLines","extendSelectionBy","selectByWords","ev","inSelection","pos","getDocumentPosition","mousedownEvent","moveToPosition","time","$focusTimeout","inMultiSelectMode","captureMouse","startSelect","setState","waitForClickSelection","screenToTextCoordinates","y","getShiftKey","selectToPosition","anchor","orientedRange","calcRangeOrientation","setSelectionAnchor","scrollCursorIntoView","unitName","cmpStart","cmpEnd","selectByLinesEnd","unsetStyle","focusWait","ax","ay","bx","by","distance","sqrt","getBracketRange","getWordRange","getLineRange","getAccelKey","$lastScroll","vx","vy","allowed","prevScroll","dt","direction","canScroll","isScrollableBy","speed","scrollBy","stop","selectEnd","selectAllEnd","selectByWordsEnd","extendStatics","__extends","d","b","setPrototypeOf","__proto__","__","__values","Symbol","iterator","next","done","CLASSNAME","Tooltip","isOpen","$element","$parentNode","$init","setText","setHtml","html","setPosition","setClassName","setTheme","theme","show","hide","getHeight","offsetHeight","getWidth","popupManager","PopupManager","popups","addPopup","popup","updatePopups","removePopup","e_1","_a","e_2","_b","sort","priority","visiblepopups","_c","_d","shouldDisplay","visiblepopups_1","visiblepopups_1_1","visiblePopup","doPopupsOverlap","e_2_1","return","e_1_1","popupA","popupB","rectA","rectB","HoverTooltip","_super","_this","lastT","idleTime","lastEvent","onMouseOut","onMouseMove","waitForHover","whiteSpace","pointerEvents","tabIndex","addToEditor","getMouseEventTarget","removeFromEditor","isOutsideOfText","$gatherData","docPos","screenPos","pixelToScreenCoordinates","clippedPos","setDataProvider","showForRange","domNode","startingEvent","$registerCloseEvents","addMarker","textToScreenCoordinates","pageX","maxHeight","labelHeight","labelWidth","spaceBelow","innerHeight","pageY","lineHeight","isAbove","innerWidth","marker","$markerSession","removeMarker","$removeCloseEvents","relatedTarget","currentTarget","classList","GutterHandler","tooltipTimeout","mouseEvent","gutter","$gutterLayer","tooltip","GutterTooltip","hideTooltip","moveTooltip","getRegion","selectTo","srcElement","$tooltipFollowsMouse","getLength","screenRow","$pos","documentToScreenRow","showTooltip","gutterRow","getGutterRow","gutterCell","$lines","querySelector","$gutter","windowWidth","windowHeight","singular","plural","warning","info","annotation","annotationsInRow","$annotations","from","fold","getFoldLine","$showFoldedAnnotations","mostSevereAnnotationInFoldType","annotationsInFold","annotationType","summaryFoldedAnnotations","concat","annotationsToSummaryString","annotationMessages","iconClassName","$useSvgGutterIcons","annotationLabels","tooltipContent","annotations","summary","annotationTypes_1","annotationTypes_1_1","label","MouseEvent","$inSelection","documentRow","selectionRange","DragdropHandler","dragImage","dragSelectionMarker","timerId","dragCursor","dragOperation","isInternal","autoScrollStartTime","cursorMovedTime","cursorPointOnCaretMoved","mouseTarget","counter","onDragInterval","prevCursor","vMovement","hMovement","moveCursorToPosition","calcDistance","layerConfig","editorRect","offsets","nearestXOffset","nearestYOffset","scrollCursor","vScroll","hScroll","autoScroll","addDragMarker","toOrientedRange","getSelectionStyle","clearSelection","$cursorLayer","setBlinking","clearInterval","setInterval","clearDragMarker","fromOrientedRange","$resetCursorStyle","onDragStart","cancelDrag","draggable","self","dataTransfer","effectAllowed","getReadOnly","setDragImage","clearData","getTextRange","onDragEnd","dropEffect","setCursorStyle","onDragEnter","canAccept","getDropEffect","onDragOver","onMouseMoveTimer","onDragLeave","onDrop","moveText","dropData","insert","types","some","copyAllowed","copyModifierState","dragWait","getDragDelay","startDrag","dragWaitEnd","dragReadyEnd","cursorStyle","onMouseDrag","state","dragDrop","$dragEnabled","eventTarget","unselectable","addTouchListeners","touchStartT","longTouchTimer","animationTimer","pressed","contextMenu","mode","animationSteps","clickCount","vX","vY","showContextMenu","handleClick","selected","hasUndo","action","getUndoManager","replaceChild","class","readText","writeText","ontouchstart","ontouchend","onclick","pagePos","leftOffset","scrollLeft","hideContextMenu","handleLongTap","selectWord","touches","h","w","touchObj","setRange","switchToSelectionMode","cursorPos","getPixelPosition","anchorPos","offsetTop","offsetLeft","weightedDistance","diff1","diff2","oldScrollTop","getScrollTop","DefaultGutterHandler","MouseHandler","focusEditor","onMouseEvent","scrollBarV","scrollBarH","Boolean","gutterEl","$dragDelay","character","mousemove","$scrollSpeed","mouseMoveHandler","which","releaseMouse","$mouseMoved","onCaptureEnd","onOperationEnd","onCaptureInterval","$onCaptureMouseMove","endOperation","startOperation","cancelContextMenu","scrollSpeed","dragDelay","dragEnabled","focusTimeout","tooltipFollowsMouse","FoldHandler","getFoldAt","removeFold","expandFold","getUseWrapMode","foldWidgets","onFoldWidgetClick","getParentFoldRangeData","firstRange","addFold","keyUtil","KeyBinding","$editor","$data","$handlers","kb","removeKeyboardHandler","$defaultHandler","addKeyboardHandler","setKeyboardHandler","handleKeyboard","attach","detach","getKeyboardHandler","getStatusText","$callKeyboardHandlers","toExecute","success","args","passEvent","dir","hiLevel","lastArabic","hasUBAT_B","hasUBAT_S","impTab_LTR","impTab_RTL","ET","BN","UnicodeTBL00","UnicodeTBL20","_invertLevel","lev","levels","_array","lo","hi","tmp","_getCharClass","chars","ix","wType","nType","cType","c","rtlCandidate","_getCharacterType","uc","charCodeAt","L","R","EN","ON_R","AN","R_H","B","RLE","DOT","doBidiReorder","textCharTypes","isRtl","logicalFromVisual","bidiLevels","charTypes","impTab","prevState","newClass","newLevel","newState","condPos","_computeLevels","hasBidiCharacters","getVisualFromLogicalIdx","logIdx","rowMap","bidiUtil","bidiRE","BidiHandler","bidiMap","currentRow","charWidths","EOL","showInvisibles","isRtlDir","$isRtl","wrapIndent","EOF","contentWidth","fontMetrics","rtlLineOffset","wrapOffset","isMoveLeftOperation","seenBidi","getValue","isBidiRow","docRow","splitIndex","updateRowLine","updateBidiMap","onChange","delta","getDocumentRow","rowCache","$screenRowCache","$getRowCacheIndex","$docRowCache","getSplitIndex","currentIndex","prevIndex","endOfLine","$useWrapMode","splits","$wrapData","indent","substring","size","isFullWidth","getScreenTabSize","$main","substr","markAsDirty","updateCharacterWidths","$characterSize","bidiCharWidth","$measureCharWidth","setShowInvisibles","setEolChar","eolChar","setContentWidth","isRtlLine","setRtlDirection","getCursorPosition","getSelectionAnchor","$bidiHandler","removeInLine","getPosLeft","col","leftBoundary","logicalIdx","getOverwrite","visualIdx","getSelections","startCol","endCol","level","selections","selColMin","selColMax","isSelected","isSelectedPrev","visIdx","offsetToCol","posX","charWidth","Selection","getDocument","lead","createAnchor","$silent","$cursorChanged","$isEmpty","$keepDesiredColumnOnChange","$desiredColumn","$anchorChanged","getCursor","getPosition","setAnchor","getAnchor","getSelectionLead","isBackwards","$setSelection","MAX_VALUE","anchorRow","anchorColumn","cursorRow","cursorColumn","wasEmpty","wasMultiselect","$moveSelection","mover","moveCursorTo","moveTo","selectUp","moveCursorUp","selectDown","moveCursorDown","selectRight","moveCursorRight","selectLeft","moveCursorLeft","selectLineStart","moveCursorLineStart","selectLineEnd","moveCursorLineEnd","selectFileEnd","moveCursorFileEnd","selectFileStart","moveCursorFileStart","selectWordRight","moveCursorWordRight","selectWordLeft","moveCursorWordLeft","selectAWord","getAWordRange","excludeLastChar","foldLine","selectLine","moveCursorBy","wouldMoveIntoSoftTab","tabSize","isTabStop","getTabSize","getNavigateWithinSoftTabs","firstColumnPosition","screenToDocumentPosition","leadingSpace","getDisplayLine","$useEmacsStyleLineStart","lineEnd","getDocumentLastRowColumnPosition","textEnd","search","moveCursorLongWordRight","rightOfCursor","nonTokenRe","tokenRe","moveCursorLongWordLeft","getFoldStringAt","leftOfCursor","$shortWordEndIndex","whitespaceRe","moveCursorShortWordRight","moveCursorShortWordLeft","$selectLongWords","rows","offsetX","lineWidgets","widget","rowsAbove","rowCount","keepDesiredColumn","moveCursorToScreen","desiredColumn","r","getRangeOfMovements","func","toJSON","rangeCount","ranges","r1","fromJSON","rangeList","toSingleRange","addRange","MAX_TOKEN_COUNT","Tokenizer","rules","states","regExps","matchMappings","ruleRegExps","matchTotal","mapping","defaultToken","flag","splitterRurles","rule","caseInsensitive","unicode","regex","adjustedregex","matchcount","token","groupCount","tokenArray","onMatch","$arrayTokens","$applyToken","digit","removeCapturingGroups","splitRegex","createSplitterRegexp","$setMaxTokenCount","tokens","stack","inChClass","lastCapture","parenOpen","parenClose","square","getLineTokens","startState","currentState","matchAttempts","skipped","consumeLineEnd","merge","unshift","TextHighlightRules","$rules","addRules","prefix","nextState","getRules","embedRules","HighlightRules","escapeRules","append","$embeds","getEmbeds","pushState","popState","normalizeRules","processState","processed","toInsert","stateName","includeName","noEscape","keywordMap","createKeywordMapper","ignoreCase","splitChar","keywords","$keywordList","list","word","getKeywords","$keywords","Behaviour","$behaviours","addBehaviours","behaviours","inherit","getBehaviours","TokenIterator","initialRow","initialColumn","$session","$row","$rowTokens","getTokens","getTokenAt","$tokenIndex","stepBackward","stepForward","getCurrentToken","getCurrentTokenRow","getCurrentTokenColumn","rowTokens","tokenIndex","getCurrentTokenPosition","getCurrentTokenRange","SAFE_INSERT_IN_TOKENS","SAFE_INSERT_BEFORE_TOKENS","contextCache","defaultQuotes","initContext","multiSelect","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","getWrapped","opening","closing","rowDiff","CstyleBehaviour","getWrapBehavioursEnabled","isSaneInsertion","braces","recordAutoInsert","recordMaybeInsert","$findOpeningBracket","isAutoInsertedClosing","popAutoInsertedClosing","isMaybeInsertedClosing","clearMaybeInsertedClosing","openBracePos","findMatchingBracket","next_indent","$getIndent","getTabString","quotes","$mode","$quotes","lineCommentStart","quote","leftChar","rightChar","rightToken","pair","stringBefore","stringAfter","wordRe","isWordBefore","isWordAfter","pairQuotesAfter","$pairQuotesAfter","charBefore","closeDocComment","$matchTokenType","iterator2","bracket","wordChars","code","Mode","$defaultBehaviour","getTokenizer","$tokenizer","$highlightRules","$highlightRuleConfig","blockComment","toggleCommentLines","ignoreBlankLines","shouldRemove","minIndent","Infinity","insertAtTabStop","regexpStart","getUseSoftTabs","uncomment","shouldInsertSpace","commentWithSpace","comment","insertInLine","testRemove","before","after","spaces","lineCommentEnd","regexpEnd","iter","fun","minEmptyLength","floor","toggleBlockComment","colDiff","initialRange","startRange","endRange","getNextLineIndent","tab","checkOutdent","input","autoOutdent","createWorker","createModeDelegates","delegations","scope","functionName","$delegator","method","language","transformAction","param","$behaviour","completionKeywords","ruleItr","aLength","$createKeywordList","getCompletions","score","meta","applyDelta","docLines","doNotValidate","Anchor","$onChange","$clipPositionToDocument","point","moveIfEqual","deltaIsInsert","deltaRowShift","deltaColShift","deltaStart","deltaEnd","$pointsInOrder","$getTransformedPoint","$insertRight","noClip","point1","point2","equalPointsInOrder","bColIsAfter","Document","textOrLines","insertMergedLines","setValue","getAllLines","getNewLineCharacter","$detectNewLine","$autoNewLine","$newLineMode","setNewLineMode","newLineMode","getNewLineMode","isNewLine","getLines","getLinesForRange","insertLines","insertFullLines","removeLines","removeFullLines","insertNewLine","$split","clonePos","$clipPosition","deleteFirstNewLine","deleteLastNewLine","deletedLines","removeNewLine","applyDeltas","deltas","revertDeltas","revertDelta","isInsert","$splitAndapplyLargeDelta","$safeApplyDelta","docLength","MAX","to","chunk","indexToPosition","newlineLength","positionToIndex","BackgroundTokenizer","tokenizer","running","currentLine","$worker","workerStart","endLine","startLine","processedLines","$tokenizeRow","fireUpdateEvent","setTokenizer","setDocument","first","scheduleStart","$updateOnChange","getState","cleanup","SearchHighlight","clazz","setRegexp","update","markerLayer","renderedMarkerRanges","MAX_RANGES","rangeToAddMarkerTo","rangeAsString","drawSingleLineMarker","UndoManager","$maxRev","$fromUndo","$undoDepth","reset","addSession","allowMerge","$lastDelta","$keepRedoStack","$redoStack","lastDeltas","undoStackLength","$undoStack","$rev","addSelection","rev","startNewGroup","markIgnored","ignore","getSelection","getRevision","getDeltas","getChangedRanges","getChangedLines","undo","dontSelect","deltaSet","swapped","swapGroups","rearrangeUndoStack","$redoStackBaseRev","undoSelectionRange","undoChanges","$syncRev","redo","diff","redoStack","deltaSets","moveDeltasByOne","rebaseRedoStack","redoSelectionRange","redoChanges","nextDelta","mark","canUndo","canRedo","bookmark","isAtBookmark","json","$prettyPrint","stringifyDelta","hasRedo","isClean","markClean","stringifyRange","swap","d1","d2","i1","i2","ds1","ds2","selectionBefore","selectionAfter","xform","c1","splitDelta","shiftPos","rowsBefore","otherLines","cloneDelta","xformed","FoldLine","foldData","folds","setFoldLine","shiftRow","sameRow","containsRow","walk","lastEnd","isNewRow","placeholder","getNextFoldTo","kind","addRemoveChars","log","foldBefore","newFoldLine","foldLineNext","idxToPosition","idx","lastFoldEndColumn","RangeList","$bias","pointIndex","excludeEdges","startIndex","addList","removed","substractPoint","containsPoint","rangeAtPoint","clipped","removeAll","lineDif","Fold","subFolds","subFold","collapseChildren","addSubFold","consumePoint","afterStart","firstConsumed","consumedFolds","restoreRange","restorePoint","Folding","side","getFoldsInRange","foldLines","$foldData","foundFolds","getFoldsInRangeList","getAllFolds","trim","lastFold","startFoldLine","getNextFoldLine","getFoldedRowCount","$addFoldLine","added","$clipRangeToDocument","startFold","endFold","removeFolds","$updateWrapData","$updateRowLengthCache","$modified","addFolds","$updating","cloneFolds","foldAll","expandFolds","unfold","expandInner","outermostFolds","isRowFolded","startFoldRow","getRowFoldEnd","getRowFoldStart","getFoldDisplayLine","textLine","lastColumn","$cloneFoldData","fd","toggleFold","tryToUnfold","bracketPos","getCommentFoldRange","depth","getFoldWidget","getFoldWidgetRange","foldToLevel","foldAllComments","$foldStyles","$foldStyle","setFoldStyle","$foldMode","$setFolding","foldMode","$updateFoldWidgets","$tokenizerUpdateFoldWidgets","updateFoldWidgets","tokenizerUpdateFoldWidgets","ignoreCurrent","fw","children","siblings","$toggleFoldWidget","toggleFoldWidget","toggleParent","BracketMatch","chr","charBeforeCursor","$findClosingBracket","getMatchingBracketRanges","bracketsRegExp","$brackets","typeRe","openBracket","valueIndex","closingBracket","valueLength","getMatchingTags","$findTagName","$findClosingTag","$findOpeningTag","found","backward","prevToken","currentTag","openTagStart","openTagName","foundOpenTagEnd","openTagEnd","closeTagStart","closeTagName","closeTagEnd","openTag","closeTag","stepCount","tmpToken","TextMode","EditSession","$breakpoints","$decorations","$frontMarkers","$backMarkers","$markerId","$undoSelect","$uid","bgTokenizer","onChangeFold","setMode","destroyed","resetCaches","$resetRowCache","cacheArray","low","mid","$rowLengthCache","removedFolds","$updateInternalDataOnChange","$undoManager","mergeUndoDeltas","$informUndoManager","setUndoManager","JSON","parse","undoManager","history","editSession","setAnnotations","setBreakpoints","breakpoints","setScrollLeft","setScrollTop","scrollTop","$scrollLeft","$scrollTop","$syncInformUndoManager","markUndoGroup","$defaultUndoManager","setUseSoftTabs","$useSoftTabs","$indentWithTabs","setTabSize","$tabSize","setNavigateWithinSoftTabs","navigateWithinSoftTabs","$navigateWithinSoftTabs","setOverwrite","overwrite","$overwrite","toggleOverwrite","addGutterDecoration","removeGutterDecoration","getBreakpoints","clearBreakpoints","setBreakpoint","clearBreakpoint","inFront","addDynamicMarker","markerId","getMarkers","highlight","$searchHighlight","highlightLines","getAnnotations","clearAnnotations","inToken","wordRange","setUseWorker","useWorker","getUseWorker","$useWorker","onReloadTokenizer","$onChangeMode","$modeId","$isPlaceholder","oldMode","$stopWorker","$startWorker","attachToSession","wrapMethod","$wrapMethod","foldingRules","terminate","getMode","isNaN","getScrollLeft","getScreenWidth","$computeWidth","getLineWidgetMaxWidth","screenWidth","lineWidgetsWidth","lineWidgetWidth","force","$wrapLimit","longestScreenLine","foldIndex","foldStart","$getStringScreenWidth","$getUndoSelection","setUndoSelect","enable","isUndo","fromRange","toPosition","toRange","collDiff","oldStart","newStart","indentRows","indentString","outdentRows","rowRange","deleteRange","$moveLines","$clipRowToDocument","moveLinesUp","moveLinesDown","duplicateLines","$clipColumnToRow","setUseWrapMode","useWrapMode","setWrapLimitRange","$wrapLimitRange","adjustWrapLimit","desiredLimit","$printMargin","limits","wrapLimit","$constrainWrapLimit","getWrapLimit","setWrapLimit","limit","getWrapLimitRange","foldLineBefore","wrapData","walkTokens","$getDisplayTokens","PLACEHOLDER_START","PLACEHOLDER_BODY","$computeWrapSplits","displayLength","lastSplit","lastDocSplit","isCode","$wrapAsCode","indentedSoftWrap","$indentedSoftWrap","maxIndent","addSplit","indentation","SPACE","TAB","TAB_SPACE","getWrapIndent","minSplit","PUNCTUATION","CHAR_EXT","CHAR","maxScreenColumn","screenColumn","getRowLength","getRowLineCount","getRowWrapIndent","getScreenLastRowColumn","documentToScreenColumn","getDocumentLastRowColumn","docColumn","getRowSplitData","screenToDocumentRow","screenToDocumentColumn","rowLength","doCache","maxRow","foldStartRow","wrapRow","screenRowOffset","getScreenLength","screenRows","$getWidgetScreenLength","$setFontMetrics","fm","$enableVarChar","getCharacterWidth","wrap","$wrap","firstLineNumber","useSoftTabs","foldStyle","Search","$matchIterator","sr","sc","er","ec","skipCurrent","findAll","needle","$assembleRegExp","$isMultiLine","prevRange","replacement","preserveCase","$disableFakeMultiline","caseSensitive","$supportsUnicodeFlag","wholeWord","wordBoundary","firstChar","needleArray","lastChar","addWordBoundary","$assembleMultilineRegExp","backwards","forEachInLine","MultiHashHandler","$singleCommand","commandKeyBinding","addCommands","addCommand","removeCommand","bindKey","_buildKeyHash","keepCommand","ckb","keyId","cmdGroup","keyPart","chain","binding","parseKeys","_addCommandToBinding","removeCommands","bindKeys","keyList","$keyChain","isDefault","HashHandler","CommandManager","byName","$checkCommandState","isAvailable","returnValue","toggleRecording","$inReplay","recording","macro","$addCommandToMacro","oldMacro","replay","trimMacro","mac","description","showSettingsMenu","showErrorMarker","scrollIntoView","centerSelection","gotoLine","prompt","$type","multiSelectAction","getAllRanges","findNext","findPrevious","aceCommandGroup","navigateFileStart","navigateUp","times","navigateFileEnd","navigateDown","navigateWordLeft","navigateLineStart","navigateLeft","navigateWordRight","navigateLineEnd","navigateRight","selectPageDown","scrollPageDown","gotoPageDown","selectPageUp","scrollPageUp","gotoPageUp","jumpToMatching","$copyWithEmptySelection","$handlePaste","duplicateSelection","sortLines","modifyNumber","copyLinesUp","copyLinesDown","removeToLineStart","removeToLineEnd","removeWordLeft","removeWordRight","blockOutdent","blockIndent","splitLine","transposeLetters","transposeSelections","autoIndent","openLink","firstLineEndCol","selectedCount","insertLine","curLine","newRanges","exitMultiSelectMode","LineWidgets","widgetManager","updateOnChange","renderWidgets","measureWidgets","_changedWidgets","$onChangeEditor","updateOnFold","_inDocument","removeLineWidget","$updateRows","noWidgets","$oldWidget","$registerLineWidget","addLineWidget","zIndex","coverGutter","pixelHeight","$fold","onWidgetChanged","w1","getWidgetsAtRow","updateFull","changedWidgets","fixedWidth","ceil","coverLine","gutterWidth","fullWidth","padding","scrollBar","GutterKeyboardHandler","gutterLayer","activeRowIndex","activeLane","annotationTooltip","$onGutterKeyDown","$blurGutter","isRowVisible","scrollToLine","$rowToRowIndex","$cursorCell","nearestFoldIndex","$findNearestFoldWidget","nearestAnnotationIndex","$findNearestAnnotation","$focusAnnotation","$focusFoldWidget","$handleGutterKeyboardInteraction","GutterKeyboardEvent","lane","$switchLane","$rowIndexToRow","rowFoldingWidget","$blurFoldWidget","cells","childNodes","$moveFoldWidgetDown","$moveAnnotationDown","$moveFoldWidgetUp","$moveAnnotationUp","$blurAnnotation","$isFoldWidgetVisible","isRowFullyVisible","isIconVisible","$getFoldWidget","$isAnnotationVisible","$getAnnotation","foldWidget","keyboardFocusClassName","desinationLane","annotationIndex","foldWidgetIndex","cell","gutterKeyboardHandler","getKey","getRow","isInAnnotationLane","isInFoldLane","defaultCommands","Editor","getContainerElement","getTextAreaContainer","textarea","keyBinding","$search","$historyTracker","$initOperationListeners","_$emitInputEvent","setSession","$opResetTimer","$lastSel","commandEvent","prevOp","previousCommand","scrollSelectionIntoView","animateScrolling","sel","$mergeUndoDeltas","prev","mergeableCommands","$mergeableCommands","shouldMerge","mergeNextCommand","sequenceStartTime","keyboardHandler","$keybindingId","oldSession","$onDocumentChange","$onTokenizerUpdate","$onChangeTabSize","$onChangeWrapLimit","$onChangeWrapMode","$onChangeFold","$onChangeFrontMarker","$onChangeBackMarker","$onChangeBreakpoint","$onChangeAnnotation","$onCursorChange","$onScrollTopChange","$onScrollLeftChange","$onSelectionChange","onDocumentChange","onChangeMode","onTokenizerUpdate","onChangeTabSize","onChangeWrapLimit","onChangeWrapMode","onChangeFrontMarker","onChangeBackMarker","onChangeBreakpoint","onChangeAnnotation","onCursorChange","onScrollTopChange","onScrollLeftChange","onSelectionChange","oldEditor","getSession","resize","onResize","getTheme","getFontSize","setFontSize","$highlightBrackets","$highlightPending","$bracketHighlight","markerIds","$getDirectionForHighlight","tagNamesRanges","getMatching","markerType","getHighlightIndentGuides","$textLayer","$highlightIndentGuide","$isFocused","showCursor","visualizeFocus","hideCursor","visualizeBlur","$cursorChange","updateCursor","$updateHighlightActiveLine","updateLines","scrollToY","scrollToX","$highlightActiveLine","$selectionStyle","$selectionColorConflict","$maxLines","$minLines","$highlightLineMarker","$selectionMarker","$highlightSelectedWord","$getSelectionHighLightRegexp","wordWithBoundary","updateFrontMarkers","updateBackMarkers","updateBreakpoints","updateText","getSelectedText","nl","copyLine","inVirtualSelectionMode","isFullLine","getBehavioursEnabled","lineState","shouldOutdent","$enableAutoIndent","lineIndent","selectedRange","currIndent","prevLineState","composition","applyComposition","forEachSelection","setScrollSpeed","getScrollSpeed","setDragDelay","setSelectionStyle","setHighlightActiveLine","shouldHighlight","getHighlightActiveLine","setHighlightGutterLine","getHighlightGutterLine","setHighlightSelectedWord","getHighlightSelectedWord","setAnimatedScroll","shouldAnimate","getAnimatedScroll","getShowInvisibles","setDisplayIndentGuides","getDisplayIndentGuides","setHighlightIndentGuides","setShowPrintMargin","showPrintMargin","getShowPrintMargin","setPrintMarginColumn","getPrintMarginColumn","setBehavioursEnabled","enabled","setWrapBehavioursEnabled","setShowFoldWidgets","getShowFoldWidgets","setFadeFoldWidgets","fade","getFadeFoldWidgets","new_range","setGhostText","removeGhostText","originalRange","$getSelectedRows","getNumberAt","_numberRx","amount","charRange","isFinite","nr","fp","decimals","nnr","toFixed","replaceRange","toggleWord","currWordStart","wordParts","curLength","itLength","that","reg","wordPairs","$toggleWordPairs","negate","firstCondition","res","findLinkAt","columnPosition","previousPosition","currentPosition","wordParts_1","wordParts_1_1","endPoint","moved","totalDiff","rangeIndex","subRows","compositionState","showComposition","setCompositionText","hideComposition","getFirstVisibleRow","getLastVisibleRow","getFirstFullyVisibleRow","getLastFullyVisibleRow","$getVisibleRowCount","getScrollBottomRow","getScrollTopRow","$moveByPage","scrollToRow","center","animate","alignCursor","getCursorPositionScreen","expand","tokenCount","matchType","bracketType","brackets","tagsRanges","lineNumber","navigateTo","replaced","$tryReplace","replaceAll","getLastSearchOptions","newRange","revealRange","setAutoScrollEditorIntoView","shouldScroll","$scrollAnchor","scrollAnchor","onChangeSelection","onBeforeRender","onAfterRender","searchBox","$pixelPos","$cursorStyle","cursorLayer","setSmoothBlinking","isBlinking","selectionStyle","highlightActiveLine","highlightSelectedWord","copyWithEmptySelection","behavioursEnabled","wrapBehavioursEnabled","enableAutoIndent","autoScrollEditorIntoView","showLineNumbers","setShowLineNumbers","$loop","CHANGE_GUTTER","$relativeLineNumbers","relativeNumberRenderer","relativeLineNumbers","$showLineNumbers","$updatePlaceholder","hasValue","$composition","placeholderNode","$placeholder","content","blurCommand","focusOnEnterKeyup","customScrollbar","hScrollBarAlwaysVisible","vScrollBarAlwaysVisible","highlightGutterLine","animatedScroll","printMarginColumn","printMargin","fadeFoldWidgets","showFoldWidgets","displayIndentGuides","highlightIndentGuides","showGutter","fontFamily","maxLines","minLines","scrollPastEnd","fixedWidthGutter","hasCssTransforms","maxPixelHeight","useResizeObserver","useSvgGutterIcons","showFoldedAnnotations","getText","lastLineNumber","$renderer","Lines","canvasHeight","cellCache","$offsetCoefficient","moveContainer","firstRowScreen","pageChanged","oldConfig","newConfig","computeLineTop","screenTop","screenPage","computeLineHeight","$cacheCell","fragment","insertAdjacentElement","createCell","initElement","Gutter","parentEl","$showFoldWidgets","$updateAnnotations","rowInfo","annoText","annoType","gutterOffset","oldLastRow","$updateCursorRow","onCreateCell","$renderCell","$updateGutterWidth","gutterRenderer","$firstLineNumber","lastLineText","$fixedWidth","$padding","$computePadding","$highlightGutterLine","$cursorRow","updateLineHighlight","scrollLines","$renderLines","textNode","annotationNode","annotationIconNode","decorations","rowText","foldClass","isClosedFold","foldAnnotationClass","annotationInFold","foldRange","getShowLineNumbers","paddingLeft","borderRightWidth","paddingRight","Marker","setPadding","setMarkers","markers","elt","css","$getTop","drawFullLineMarker","drawScreenLineMarker","drawTextMarker","drawMultiLineMarker","childElementCount","lastChild","stringBuilder","extraStyle","curr","lineRange","range1","drawBidiSingleLineMarker","radiusClass","extraLength","textTokens","Set","isTextToken","tokenType","has","Text","$updateEolChar","EOL_CHAR","EOL_CHAR_LF","EOL_CHAR_CRLF","margin","getLineHeight","$fontMetrics","measure","$pollSizeChanges","checkForSizeChanges","$pollSizeChangesTimer","$computeTabString","showSpaces","showTabs","showEOL","$highlightIndentGuides","tabStr","$tabStrings","span","TAB_CHAR","$indentGuideRe","spaceClass","spaceContent","SPACE_CHAR","tabClass","tabContent","lineElements","lineElementsIdx","heightChanged","lineElement","$renderLine","$renderLinesFragment","lineEl","$useLineGroups","$renderToken","valueFragment","simpleSpace","controlCharacter","cjkSpace","cjk","cloneNode","renderIndentGuide","cols","$highlightIndentGuideMarker","indentLevel","initialIndent","elementIndentLevel","currentIndent","$renderHighlightIndentGuide","$clearActiveIndentGuide","$setIndentGuideActive","$createLineElement","$renderWrappedLine","splitChars","$renderOverflowMessage","$renderSimpleLine","overflowEl","$getFoldLineTokens","lastLineEl","invisibleEl","EOF_CHAR","renderTokens","addTokens","Cursor","isVisible","blinkInterval","smoothBlinking","cursors","addCursor","$updateCursors","$updateOpacity","$startCssAnimation","animationDuration","$isAnimating","$stopCssAnimation","blinking","restartTimer","setBlinkInterval","removeCursor","intervalId","timeoutId","$isSmoothBlinking","blink","onScreen","isCursorInView","pixelPos","$selectionMarkers","cursorIndex","drawCursor","$setOverwrite","MAX_SCROLL_H","Scrollbar","classSuffix","setVisible","skipEvent","onScroll","coeff","VScrollBar","scrollHeight","$scrollbarWidth","$minWidth","setHeight","setScrollHeight","setInnerHeight","HScrollBar","setWidth","setInnerWidth","setScrollWidth","ScrollBar","ScrollBarV","ScrollBarH","VScrollWidth","HScrollHeight","eType","mousePageY","startTop","thumbTop","scrollTopFromThumbTop","thumbHeight","pageHeight","viewHeight","slideHeight","scrollWidth","mousePageX","startLeft","thumbLeft","scrollLeftFromThumbLeft","thumbWidth","pageWidth","viewWidth","slideWidth","RenderLoop","onRender","pending","changes","$recursionLimit","_flush","change","clear","CHAR_COUNT","USE_OBSERVER","ResizeObserver","FontMetrics","$setMeasureNodeStyles","$measureNode","$addObserver","isRoot","visibility","font","$measureSizes","fontWeight","boldSize","charSizes","allowBoldFonts","$observer","observe","setPolling","disconnect","$getZoom","zoom","$initTransformMeasureNodes","transformCoordinates","clientPos","elPos","solve","l1","l2","det","sub","mul","m2","ut","u","f","Decorator","canvas","pixelRatio","heightRatio","canvasWidth","minDecorationHeight","halfMinDecorationHeight","colors","dark","light","$updateDecorators","ctx","getContext","clearRect","priorities","compensateFold","compensateFoldRows","currentY","y1","y2","yCenter","fillStyle","fillRect","GutterLayer","MarkerLayer","TextLayer","CursorLayer","HScrollBarCustom","VScrollBarCustom","editorCss","VirtualRenderer","onGutterResize","$markerBack","textLayer","$markerFront","$horizScroll","$vScroll","$scrollAnimation","scrollMargin","updateCharacterSize","$size","scrollerHeight","scrollerWidth","$dirty","minHeight","v","$renderChanges","defaultView","CHANGE_FULL","$addResizeObserver","$allowBoldFonts","$updatePrintMargin","onChangeNewLineMode","$changedLines","CHANGE_LINES","CHANGE_TEXT","CHANGE_MARKER","updateFontSize","$updateSizeAsync","resizing","$updateCachedSize","$resizeTimer","$changes","$customScrollbar","$updateCustomScrollbar","$extraHeight","oldSize","CHANGE_SIZE","CHANGE_SCROLL","$showGutter","$computeLayerConfig","availableWidth","$showPrintMargin","$printMarginColumn","$animatedScroll","getShowGutter","setShowGutter","$printMarginEl","containerEl","posTop","posLeft","setScrollMargin","sm","setMargin","getHScrollBarAlwaysVisible","$hScrollBarAlwaysVisible","setHScrollBarAlwaysVisible","alwaysVisible","getVScrollBarAlwaysVisible","$vScrollBarAlwaysVisible","setVScrollBarAlwaysVisible","$updateScrollBarV","$scrollPastEnd","$updateScrollBarH","freeze","$frozen","unfreeze","CHANGE_H_SCROLL","st","$scrollDecorator","$updateLines","CHANGE_CURSOR","CHANGE_MARKER_FRONT","CHANGE_MARKER_BACK","$autosize","desiredHeight","$maxPixelHeight","$gutterWidth","hideScrollbars","longestLine","$getLongestLine","horizScroll","hScrollChanged","vScrollBefore","vScrollChanged","firstRowHeight","lineCount","charCount","$viewMargin","newLeft","newTop","topMargin","bottomMargin","$stopAnimation","currentTop","currentLeft","twoCharsWidth","alignment","$calcSteps","fromValue","toValue","x_min","STEPS","steps","initialScroll","oldSteps","$timer","endAnimation","scrollTo","canvasPos","$hasCssTransforms","$blockCursor","$useTextareaForIME","addToken","removeExtraToken","insertPosition","textLines","$ghostText","$ghostTextWidget","pixelPosition","ghostTextHeight","newToken","$themeId","$theme","setMouseCursor","attachToShadowRoot","$resizeObserver","contentRect","workerUrl","Worker","blob","Blob","blobBuilder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","getBlob","$workerBlob","blobURL","URL","webkitURL","createObjectURL","WorkerClient","worker","$createWorkerFromOldConfig","$sendDeltaQueue","changeListener","onMessage","callbackId","callbacks","onmessage","topLevelNamespaces","classname","importScripts","nameToUrl","toUrl","normalizePath","$normalizePath","tlns","deltaQueue","onerror","$doc","cmd","emit","ex","attachToDocument","q","UIWorkerClient","main","emitSync","sender","messageBuffer","workerClient","processNext","setEmitSync","Main","PlaceHolder","others","mainClass","othersClass","$onUpdate","onUpdate","$others","undoStack","$undostack","$undoStackDepth","setup","other","showOtherMarkers","othersActive","hideOtherMarkers","updateAnchors","lengthDiff","inMainRange","distanceFromStart","newPos","otherPos","updateMarkers","updateMarker","undosRequired","isSamePoint","alt","ctrl","accel","selectionMode","isMultiSelect","mouseX","mouseY","screenAnchor","screenCursor","$enableJumpToDef","$blockSelectEnabled","addSelectionMarker","oldRange","removeSelectionMarker","tmpSel","rectSel","blockSelect","newCursor","removeSelectionMarkers","rectangularRangeBlock","updateSelectionMarkers","onSelectionInterval","selectMoreLines","selectMore","joinSelections","splitIntoLines","alignCursors","multiSelectCommands","getSelectionMarkers","$blockChangeEvents","$onAddRange","$onRemoveRange","mergeOverlappingRanges","lastRange","$initRangeList","toggleBlockSelection","includeEmptyLines","xBackwards","startOffsetX","endOffsetX","docEnd","yBackwards","MultiSelect","$multiselectOnSessionChange","$onMultiSelect","$onSingleSelect","onSessionChange","$checkMultiselectChange","altCursor","altDown","addAltCursorListeners","selectionMarkerCount","markerList","$onMultiSelectExec","inVirtualMode","keepOrder","$byLines","cmdResult","anim","buf","additive","skip","screenLead","toRemove","words","stopAtFirst","sameRowRanges","maxCol","minSpace","spaceOffsets","spaceOffset","fr","lr","guessRange","$reAlignText","forceLeft","startW","textW","endW","isLeftAligned","isRightAligned","alignLeft","enableMultiselect","enableBlockSelect","FoldMode","foldingStartMarker","foldingStopMarker","indentationBlock","startLevel","openingBracketBlock","closingBracketBlock","oldWidget","gutterAnno","comparator","binarySearch","matched","findAnnotations","arrow","onmousedown","Renderer","edit","_id","env","tagName","oldNode","createEditSession","is","singletonTags","blockTags","formatOptions","lineBreaksAfterCommasInCurlyBlock","beautify","nextToken","tabString","breakBefore","spaceBefore","spaceAfter","lastDepth","lastIndent","unindent","roundDepth","curlyDepth","curRow","rowsToAdd","indentNextLine","inTag","inCSS","inBlock","parents","caseBody","trimNext","trimLine","trimCode","trimRight","trimLeft","searchboxCss","SearchBox","showReplaceForm","spellcheck","title","setEditor","searchRange","$syncOptions","$initElements","sb","replaceBox","searchOption","replaceOption","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","searchCounter","activeInput","$searchBarKb","setSearchRange","searchRangeMarker","checked","noMatch","updateCounter","MAX_COUNT","findPrev","replaceAndFindNext","active","$closeSearchBarKb","isReplace","supportType","supportFunction","supportConstant","supportConstantColor","supportConstantFonts","numRe","pseudoElements","pseudoClasses","CssHighlightRules","keywordMapper","strings","escapes","MatchingBraceOutdent","propertyMap","CssCompletions","completionsDefined","defineCompletions","inParens","getPropertyValueCompletions","getPropertyCompletions","skipSemicolon","caption","snippet","CssBehaviour","BaseFoldMode","commentRegex","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","forceMultiline","getCommentRegionBlock","getSectionRange","startIndent","subRange","CStyleFoldMode","$outdent","$completer","snippetFileId","DocCommentHighlightRules","getTagRule","getStartRule","getEndRule","GolangHighlightRules","stringEscapeRe","tokenizedLine","JsDocCommentHighlightRules","identifierRe","JavaScriptHighlightRules","escapedRe","comments","noES6","no_regex","jsx","JSX","tagRegex","jsxTag","jsxJsRule","jsxAttributes","reference","endState","results","JsonHighlightRules","JsxHighlightRules","buildinConstants","reserved","PythonHighlightRules","strPre","strRawPre","strFormatPre","strRawFormatPre","integer","intPart","pointFloat","floatNumber","stringEscape","PythonFoldMode","outdents","XmlHighlightRules","normalize","processing_instruction","doctype","int_subset","cdata","attr_reference","tag_whitespace","whitespace","attribute_value","embedTagRules","XmlBehaviour","rightSpace","tokenEndColumn","tokenRow","tokenColumn","voidElements","nextIndent","optionalEndTags","Tag","selfClosing","_getFirstTagInLine","_findEndTagInLine","getCommentFoldWidget","tags","XmlFoldMode","createRoot","hydrateRoot","hasElementType","Element","hasMap","Map","hasSet","hasArrayBuffer","ArrayBuffer","isView","equal","it","entries","flags","valueOf","$$typeof","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","amdD","getter","__esModule","definition","prop","toStringTag","nmd","paths","createContext","Icon","family","weight","rest","getCSSClasses","propTypes","isRequired","ItemTrigger","collapsed","toggleChange","useContext","iconType","trigger","onClick","AccordionItem","collapsedProp","ref","setCollapsed","useState","useMemo","expandToContent","contextValue","Provider","defaultProps","forwardRef","AccordionItemHeader","usearrowastrigger","getSize","componentSize","setComponentSize","current","handleResize","useCallback","useLayoutEffect","resizeObserver","savedHandler","useRef","useEffect","eventListener","Collapsible","contentContainer","collapseWrapper","refContainerSize","contentContainerStyle","setContentContainerStyle","onWindowResize","CSSTransition","onEnter","onExit","in","classNames","AccordionItemContent","Accordion","Item","Header","Content","Button","customButton","iconFamily","iconPosition","iconOnly","noStyle","getCssClasses","cssClasses","sizeClass","disabledClass","displayClass","themeClass","iconOnlyClass","noStyleClass","getButtonIcon","buttonType","cloneElement","getButtonType","ButtonGroup","CardHeader","CardBody","align","CardFooter","CardTitle","CardTitleGroup","CardSubTitle","CardSummary","CardTitleIcon","Card","Body","Footer","Title","TitleGroup","SubTitle","Summary","wait","immediate","callNow","Loader","withbackground","Message","onClose","noMargin","Chart","areaStyleColors","dataLoaded","hasData","series","zoomStart","zoomEnd","seriesConfig","noDataComponent","noDataComponentProp","zoomColors","tykChartInstance","setTykChartInstance","chartWrapperRef","lineBarChart","defaultOpts","fromJS","color","toolbox","orient","itemSize","showTitle","feature","dataZoom","dataBackground","lineStyle","areaStyle","handleStyle","textStyle","borderColor","fillerColor","legend","axisPointer","grid","containLabel","xAxis","boundaryGap","axisLine","axisTick","yAxis","axisLabel","animationEasing","seriesDefault","LinearGradient","smooth","symbolSize","pieChart","formatter","radius","avoidLabelOverlap","animationType","labelLine","normal","length2","geoChart","dispose","eventCallBack","debouncedMethod","debounce","getZr","prevInstance","prevOption","prevType","prevSeries","equals","selectedType","selectedOptions","selectedSeries","finalOpts","mergeDeep","toJS","entry","seriesData","buildChartOptions","dispatchAction","dataZoomSelectActive","seriesIndex","dataIndex","prevZoomStart","prevZoomEnd","startValue","endValue","chartHasData","getStyle","memo","savedCallback","ToastMessage","handleClose","itemIndex","ToastContainer","notify","updateNotifications","msgID","random","prevMessages","onMessageClosed","newMessages","fn","createNotification","render","bindNotify","danger","CopyToClipboard","txtRef","createRef","onKeyUp","ModalFooter","ModalBody","Modal","disableCloseCommands","opened","showBackdrop","restProps","modalClasses","backdropClasses","themeIcon","onKeyDown","Confirm","confirmBtnText","cancelBtnText","setOpen","setCallback","cancelCallback","setCancelCallback","callbackFunc","cancelCallbackFunc","beforeCallback","FixedWrapper","showShadow","fixedWrapperRef","attachShadow","scrollY","debouncedAttachShadow","InfiniteScroller","hasMore","initialLoad","loadMore","pageNumber","refChild","showLoader","setShowLoader","containerRef","refChildSize","shouldLoad","loadMoreData","prevPageNumber","scrollHandler","prevRefChildSize","PropTypes","oneOfType","arrayOf","bool","instanceOf","FloatingContainer","forceDisplay","displayAxis","preferredPosition","infiniteScrollerConfig","localRef","floatingContainerRef","contentWrapperRef","viewportOffset","schedulePositionUpdate","topSpace","bottomSpace","leftSpace","hasTopSpace","hasBottomSpace","hasLeftSpace","hasRightSpace","positionedVerticallyFitsInViewport","positionedHorizontallyFitsInViewport","getDisplayForVertical","getDisplayForHorizontal","getDisplayWhereItFits","determineDisplay","targetPosition","vpLeft","vpTop","leftPos","auto","matchElement","matchStart","matchEnd","topPos","maxWidth","getStylesForTop","getStylesForBottom","getStylesForLeft","getStylesForRight","adjustPosition","createPortal","InfoNote","ListItem","List","labelwidth","flexBasis","styleCopy","structuredClone","getListStyle","NavBar","pre","subtitle","withTabs","subtitleContent","NavigationItem","Navigation","PortalContext","PanelBody","noPadding","Consumer","portalContext","collapsable","PanelFooter","PanelHeader","Component","HeaderTag","onToggle","collapsibleIconPosition","Panel","onToggleCollapse","collapsedState","setCollapsedState","handleToggle","panelTheme","collapsbleIconPosition","toggleCollapse","Pill","RevealPanelService","setRefs","wrapper","panel","unbindEvents","bindEvents","ensureRefs","mouseDown","initialRect","initialEvent","isPrimaryMouseButtonDown","newY","finalHeight","notifyListeners","buttons","heightVal","reason","isHidden","deinit","RevealPanelHeaderLeft","RevealPanelHeaderRight","mergeClasses","RevealPanel","onHeightChange","parentSelector","contentStyle","contentClassName","gutterClassName","wrapperClassName","panelRef","gutterRef","wrapperRef","panelService","useImperativeHandle","headerLeft","headerRight","contents","child","TempRevealPanel","HeaderLeft","HeaderRight","TabsContext","TabContent","addTab","hideTab","updateTab","showTab","selectedPath","tabData","tabsId","tabExists","rendered","hideTabContent","tabs","tempTabData","prevTabData","shouldRender","TabContext","Tab","tabsContext","tabContext","setPath","tempPath","Tabs","onTabChange","setTabs","setSelectedPath","setRendered","initialPath","setInitialPath","setCurrentSelectedPath","tempRendered","collapsible","prevTabs","tempTabs","tabsState","tempTabsState","toggleTab","getTabCssClass","tabId","genTabs","currentTabs","updateTabsList","icon","closable","isOpened","additionalClickParents","isActive","setIsActive","tooltipRef","activeEvents","onMouseEnter","onMouseLeave","handleDocumentClick","TextEllipsis","Pagination","totalNrOfPages","selectedPage","setSelectedPage","pagesArray","nrOfPages","pagesArr","currentNr","pageNr","at","getPagesArr","goToPage","tableContext","HeaderCell","sortable","sortOrder","setSortOrder","sendMessage","allRowsSelected","columns","selectable","generateSelectable","allowSelectAll","isCheckbox","Checkbox","displayError","displayNote","note","Cell","styling","events","Row","SelectableCheckbox","Table","noDataMessage","loading","infiniteScrolling","onChangeMsg","setOnChangeMsg","itemsListRef","sortRows","order","selectAllRows","selectRow","setPagination","pagination","api","getTable","every","totalPages","num","nrItemsOnPage","perPage","Column","cSize","cOffset","nogutters","DropdownContext","DropdownItem","customdropdownitem","eventKey","dropdownItemCLick","dropdownContext","itemProps","onSelectItem","selectedItem","showCheckmark","Dropdown","isElemInRightView","dropdownWidth","isElemInBottomView","dropdownHeight","elHeight","super","dropdownRef","dropdownListRef","dropdownButtonRef","toggleDropdown","handleClickOutside","componentDidMount","getStyles","componentDidUpdate","prevProps","closeDropdown","componentWillUnmount","itemId","closeOnSelect","onSelect","selectedItemProps","dropdownEl","offsetPosition","customTop","customLeft","getWrapperCssClasses","btnGroup","btnGroupSize","btnTheme","hasCustomContent","listclassnames","getBtnTitle","btnTitle","stopButtonTextChange","appendTo","btnClassName","btnSize","customBtnTitle","showDropdownIcon","showTriggerButton","DropdownWrapperTag","DropdownTrigger","splitTrigger","toggle","onTriggerClick","DropdownListWrapper","dropdownValue","Dropdown2","setSelectedValueAsTitle","setIsOpen","handleOutsideClick","triggerElement","CodeEditor","disableValidation","finalSetOptions","getCodeEditorError","getLabelStyles","getNonLabelWidth","handleOnChange","handleOnBlur","htmlFor","editorProps","$blockScrolling","editorInstance","getStateSelectedValues","multiple","Combobox","closeList","openList","filterByName","itemValue","inputValue","stateSelectedValues","searchText","comboboxRef","valuesListRef","inputRef","textRef","focusInput","handleItemsNavigation","handleComboboxDropdownClick","handleListItemClick","handlePillRemoveClick","manageSelectedTags","setInputWidth","unBindEvents","getDerivedStateFromProps","nextProps","stringify","filteredValues","filterValues","cursorNext","previousState","methodName","tempState","removeSelectedValue","allowCustomValues","getSearchText","getSelectedIndex","getListItemCssClasses","getComboboxListCssClass","themes","iTheme","getInputError","elWidth","getComboboxDisplayData","reduce","prevValue","tempValue","selectedIndex","selectedValues","isInInitialValues","addSelectedValue","manageSelectedValues","tempSelectedValues","tempStateSelectedValues","ok","searchItem","renderInput","visbility","renderDropdown","autoFocus","CustomListComponent","Value","tagSeparators","addTagOnBlur","renderValue","valueOverflow","dummyElementRef","setInputValue","inputWidth","entryFieldOnChange","dummy","triggerAction","textValue","isPlaceholder","renderCustomValue","entryFieldOnKeyDown","listRef","searchValue","activeItem","renderListItem","showSearch","block","isNoneSelected","renderSelectAllOption","Combobox2","propValue","propValues","maxProp","matchItemFn","renderList","renderListProp","onBeforeChange","floatingContainerConfig","expandMode","displayDropdownTrigger","required","validateOnChange","rootRef","comboboxControlRef","getValueFromProp","setValues","normalizeValue","setSearchValue","setActiveItem","setIsOpened","valuesExpanded","setValuesExpanded","localValidationError","setLocalValidationError","getThemeClasses","getFilteredValues","openDropdown","updateSearchValue","newSearchValue","fv","isValidValue","newValues","localError","updateValue","addTag","listValueIndex","lv","finalValue","selectValue","valIndex","with","selectAllValues","moveUpActiveItem","visibleItems","activeIndex","moveDownActiveItem","executeTriggerAction","onTagMessage","removeTag","renderIcon","sv","nv","vals","valuesElement","updateScroll","mobserver","MutationObserver","robserver","childList","subtree","currentValuesClasses","onClickCapture","existingVal","DatePicker","onOpen","pickerInstance","setPickerInstance","dateRef","hasValueChanged","prevDate","currentDate","getTime","diffDates","date","onDateChange","dateValue","instance","defaultDate","setDate","openCalendar","inputStyle","addonStyle","getInputField","dateFormat","_typeof","requiredArgs","isDate","toDate","argument","argStr","NaN","toInteger","dirtyNumber","startOfUTCISOWeek","dirtyDate","day","getUTCDay","setUTCDate","getUTCDate","setUTCHours","getUTCISOWeekYear","year","getUTCFullYear","fourthOfJanuaryOfNextYear","setUTCFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","defaultOptions","getDefaultOptions","startOfUTCWeek","_ref","_ref2","_ref3","_options$weekStartsOn","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","weekStartsOn","locale","RangeError","getUTCWeekYear","_options$firstWeekCon","firstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","addLeadingZeros","targetLength","sign","signedYear","month","getUTCMonth","getUTCHours","getUTCMinutes","getUTCSeconds","numberOfDigits","milliseconds","getUTCMilliseconds","G","localize","era","ordinalNumber","unit","lightFormatters","Y","signedWeekYear","weekYear","Q","quarter","M","week","firstWeek","startOfUTCWeekYear","getUTCWeek","I","isoWeek","fourthOfJanuary","startOfUTCISOWeekYear","getUTCISOWeek","D","dayOfYear","timestamp","setUTCMonth","difference","getUTCDayOfYear","E","dayOfWeek","localDayOfWeek","isoDayOfWeek","dayPeriodEnumValue","dayPeriod","hours","H","K","S","X","_localize","timezoneOffset","_originalDate","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","z","originalDate","T","dirtyDelimiter","absOffset","minutes","delimiter","dateLongFormatter","pattern","formatLong","timeLongFormatter","longFormatters","P","dateTimeFormat","matchResult","datePattern","timePattern","dateTime","protectedDayOfYearTokens","protectedWeekYearTokens","throwProtectedError","format","formatDistanceLocale","lessThanXSeconds","one","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","defaultWidth","formats","full","long","medium","short","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchedString","parsePatterns","defaultParseWidth","object","findKey","valueCallback","formatDistance","tokenValue","addSuffix","comparison","formatRelative","_date","_baseDate","_options","rem100","narrow","abbreviated","wide","am","pm","midnight","noon","morning","afternoon","evening","night","parsePattern","parseResult","any","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","_ref4","_options$locale2","_options$locale2$opti","_ref5","_ref6","_ref7","_options$locale3","_options$locale3$opti","_defaultOptions$local3","_defaultOptions$local4","formatStr","defaultLocale","isValid","utcDate","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","getTimezoneOffsetInMilliseconds","dirtyAmount","addMilliseconds","subMilliseconds","formatterOptions","firstCharacter","longFormatter","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","isProtectedDayOfYearToken","EditableListForm","getMainFormValue","components","mainFormValue","submitButtonRef","submitForm","errors","mainError","addValueOnFieldChange","getMainFormButtonWidth","createRefs","propsComponents","stateComponents","validateValue","getFormCssClasses","noLabels","getButtonClassName","buttonStyle","displayType","getComponentsError","errorPersist","validatorsNames","validate","validatorName","validator","validationmessages","hasMainFormErrors","resetForm","showMainError","onSubmit","validationmessage","buttonName","ComponentName","EditableList","getItemListValue","getListItemCssClass","buttonWidth","handleFormSubmit","dropdownListItemRef","addValues","triggerOnChange","handleItemUpdate","editMode","handleChildrenOnChange","getListItemsCssClass","getFormInputKey","getListItemText","itemData","separator","setItemEditMode","closeListItems","isInList","removeListItem","removedItem","valueArr","tempItemValue","nextValue","genListItem","clonedComponents","genList","appendToElement","formButtonTitle","formButtonStyle","addButtonName","onAddRow","ListHeader","fields","field","FieldsList","onDelete","rowIndex","tempField","EditableList2","hideOnEmpty","internalErrors","setInternalErrors","updateRowValue","fieldIndex","componentValue","tempValueArr","tempErrors","tempFieldError","Components","internalError","setInternalError","onFieldChange","errorMsg","deleteRow","rowValues","colValue","flat","hasErrors","FileInput","accept","fileInputRef","files","Input","getAddon","initValue","stateValue","isfield","inputgroupaddonleft","inputgroupaddonright","getInputGroupAddon","getInputComponent","autoComplete","Input2","getInputElement","MultiselectItem","itemType","isInSearchValue","fieldsToSearchOn","onAddRemove","itemDisplayTemplate","maxSelections","nrSelectedItems","onGetItemDetails","details","detailsDisplayTemplate","getItemContent","getItemLoader","MultiselectPanel","inputPlaceholder","noItemsMessage","items","onCustomSearch","customSearch","panelType","serverLoad","itemsPageNumber","itemsNrPages","loadMoreItems","searchOnChange","itemChanged","cloneItems","clonedItem","renderListItems","diffObjects","Multiselect","entityNamePlural","getItemDetails","setOpened","prevOpened","itemsChange","allItems","valueClone","valueChange","providerValue","Radio","nospace","Select","setStateValue","selectedValue","getSelectError","getSelectComponent","SelectableList","checkboxalticon","itemTemplate","primaryKey","handleOnSelect","newSelectedItems","elemPosition","getListItemCssClassName","tvalue","Textarea","ToggleItem","getNotchCssClasses","itemRef","saveSelectedRef","onItemSelected","ToggleItemWrapper","Toggle","onDark","separated","selectedRef","setSelectedRef","notchRef","toggleRef","positionNotch","selectedWidth","FORM_DEBOUNCE","setConfig","getValueFromPath","acc","form","properties","DEFAULT_DEBOUNCE_TIME_MS","myValue","setMyValue","getOnChangeProps","hasIsFieldProp","executeDebounced","valueOrEvent","nodeName","onChangeProps","formError","touched","submitCount","status","componentProps","hasOwn","FieldCodeEditor","FieldCombobox","getComboboxError","FieldDropdown","FieldPagination","FieldCombobox2","FormDatePicker","getDatePickerError","FieldEditableList","getEditableListError","FieldFileInput","FieldInput","FieldMultiselect","getMultiselectError","FieldSelect","handleEvent","FieldSelectableList","FieldToggle","useInterval"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"tyk-ui.js","mappings":"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G,IAAK,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,IAAK,GAAI,IAAK,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,KAAM,GAAI,EAAG,GAAI,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,KAAM,GAAI,MAAO,GAAI,KAAM,GAAI,GAAI,EAAG,IAAK,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAA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O,CAAC,eAAgB,uBAAwB,4BAChDH,MAAO,kEACR,CACCG,MAAOqyD,EACPxyD,MAAO80D,GACR,CACC30D,MAAO,uBACPH,MAAO,aACPpkB,KAAM,YACP,CACCukB,MAAO,eACPH,MAAO,KACPpkB,KAAM,SACP,CACCukB,MAAO,mBACPH,MAAO,yEACPpkB,KAAM,SACP,CACCukB,MAAO,uBACPH,MAAO,UACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,SACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,UACR,CACCG,MAAO,UACPH,MAAO,WAGf7mC,SAAU,CAAC,CACHgnC,MAAO,OACPH,MAAO,QACR,CACCG,MAAO,CACH,eAAgB,uBAAwB,uBAAwB,OAChE,mBAAoB,OACpB,eAAgB,OAAQ,uBAAwB,OAAQ,gBAE5DH,MAAO,IAAM80D,EAAe,UAAYA,EAAe,6DACvDl5E,KAAM,sBACP,CACCukB,MAAO,uBACPH,MAAO,cACR,CACCG,MAAO,mBACPH,MAAO,gwDACR,CACCG,MAAO,uBACPH,MAAO,+lBACR,CACCG,MAAO,mBACPH,MAAO,y2DACR,CACCG,MAAO,aACPH,MAAO80D,GACR,CACC90D,MAAO,GACPG,MAAO,QACPvkB,KAAM,aAGd,MAAS,CACL04E,EAAyBE,aAAa,aACtCS,EAAS,SACT,CACI90D,MAAO,gBACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,OACPH,MAAO,UACPpkB,KAAM,SACP,CACCukB,MAAO,QACPH,MAAO,GACPpkB,KAAM,aAGd,MAAS,CACL,CACIukB,MAAO,0BACPH,MAAO,6CACR,CACCG,MAAO,gBACPH,MAAO,cACPpkB,KAAM,YACP,CACCukB,MAAO,UACPH,MAAO,iDACR,CACCG,MAAO,2BACPH,MAAO,iDACR,CACCG,MAAO,8BACPH,MAAO,MACR,CACCG,MAAO,2BACPH,MAAO,QACPpkB,KAAM,yBACP,CACCukB,MAAO,QACPH,MAAO,IACPpkB,KAAM,YACP,CACC8jB,aAAc,kBAGtB,sBAAyB,CACrB,CACIS,MAAO,oCACPH,MAAO,6CACR,CACCG,MAAO,2BACPH,MAAO,IACPpkB,KAAM,SACP,CACCukB,MAAO,2BACPH,MAAO,KACR,CACCG,MAAO,QACPH,MAAO,IACPpkB,KAAM,YACP,CACC8jB,aAAc,kCAGtB,kBAAqB,CACjB,CACIS,MAAO,SACPH,MAAO,SACP11C,KAAM,CACF,CACI61C,MAAO,SACPH,MAAO,MACPpkB,KAAM,OACP,CACC/kB,QAAS,aAGlB,CACCspC,MAAO,SACPH,MAAO,SACP11C,KAAM,CACF,CACI61C,MAAO,SACPH,MAAO,MACPpkB,KAAM,OACP,CACC/kB,QAAS,cAGlB,CACCspC,MAAO,oBACPH,MAAO,+BACR,CACCG,MAAO,mBACPH,MAAO,gDACR,CACCG,MAAO,mBACPH,MAAO,gDACR,CACCG,MAAO,uBACPH,MAAO,IACPpkB,KAAM,sBACP,CACCukB,MAAO,OACPH,MAAO,QACR,CACCG,MAAO,uBACPH,MAAO,KACR,CACCG,MAAO,QACPH,MAAO,GACPpkB,KAAM,aAGd,mBAAsB,CAClBq5E,EAAS,sBACT,CACI90D,MAAO,qBACPH,MAAO80D,GACR,CACC30D,MAAO,uBACPH,MAAO,KACR,CACCG,MAAO,OACPH,MAAO,QACR,CACCG,MAAO,uBACPH,MAAO,KACR,CACCG,MAAO,QACPH,MAAO,GACPpkB,KAAM,aAGd,SAAY,CACR,CACIukB,MAAO,2BACPH,MAAOg1D,GACR,CACC70D,MAAO,SACPH,MAAO,QACP0B,gBAAgB,GACjB,CACCvB,MAAO,SACPH,MAAO,MACPpkB,KAAM,YACP,CACC8jB,aAAc,WAGtB,QAAW,CACP,CACIS,MAAO,2BACPH,MAAOg1D,GACR,CACC70D,MAAO,SACPH,MAAO,QACP0B,gBAAgB,GACjB,CACCvB,MAAO,SACPH,MAAO,MACPpkB,KAAM,YACP,CACC8jB,aAAc,YAIrB1qC,GAAYA,EAAQkgG,QACrB3sG,KAAKu5C,OAAOqzD,SAASvzD,QAAQ,CACzB5B,MAAO,OAAQM,QAAS,SAAU30C,EAAK+9B,EAAOqX,GAE1C,GADAx4C,KAAKqzB,KAAc,KAAPjwB,EAAapD,KAAK0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E,KAAM,eACP,CACCukB,MAAO,SACPH,MAAOm2D,EAAY,SACnBv6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,OACtBx6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,SACtBx6E,KAAM,aACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,OACtBx6E,KAAM,aACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,SACtBx6E,KAAM,YACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,OACzBz6E,KAAM,eACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,SACzBz6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,OACzBz6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,SACzBz6E,KAAM,aACP,CACCukB,MAAO,mBACPH,MAAO,4EACR,CACCG,MAAO,cACPH,MAAO,2EACR,CACCG,MAAO,eACPH,MAAO,eACR,CACCG,MAAO,eACPH,MAAO,eACR,CACCG,MAAO,CAAC,UAAW,OAAQ,wBAC3BH,MAAO,2DACR,CACCG,MAAO,OACPH,MAAO,QACR,CACCnpC,QAAS,cAEjB,UAAa,CAAC,CACNspC,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,SAAY,CAAC,CACLS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,SAAY,CAAC,CACLS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,QACPpkB,KAAM,YACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,QAAW,CAAC,CACJS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,QACPpkB,KAAM,WACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,aAAgB,CAAC,CACTS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,YAAe,CAAC,CACRS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,YAAe,CAAC,CACRS,MAAO,SACPH,MAAO,QACPpkB,KAAM,eACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,SACPH,MAAO,QACPpkB,KAAM,cACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,UAAa,CAAC,CACNS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,UAAa,CAAC,CACNS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,QACPpkB,KAAM,aACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,SAAY,CAAC,CACLS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,YAAe,CAAC,CACRS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,SACPH,MAAO,QACPpkB,KAAM,cACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,UAAa,CAAC,CACNS,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,iBAAoB,CAAC,CACbS,MAAO,eACPH,MAAO,YACR,CACCG,MAAO,eACPH,MAAO,YACR,CACCG,MAAO,SACPH,MAAO,QACR,CACCG,MAAO,SACPH,MAAO,WACR,CACCG,MAAO,SACPH,MAAO,WACR,CACCG,MAAO,mBACPH,MAAO,cACR,CACCnpC,QAAS,aACV,CACCspC,MAAO,eACPH,MAAO,IACPpkB,KAAM,OACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,qBAEd,UAAa,CAAC,CACN61C,MAAO,mBACPH,MAAO,MAAQy2D,EAAc,iBAC9B,CACCt2D,MAAO,mBACPH,MAAOy2D,GACR,CACCt2D,MAAO,mBACPH,MAAOs2D,EAAU,WAClB,CACCn2D,MAAO,mBACPH,MAAOs2D,EAAU,OAClB,CACCn2D,MAAO,CAAC,cAAe,oBACvBH,MAAO,wBACR,CACCG,MAAOqyD,EACPxyD,MAAO,iCAGnBz3C,KAAKo6C,gBACT,EACA5kC,EAAI7C,SAAS+6F,EAAsBp0D,GACnC32C,EAAQ+qG,qBAAuBA,CAE/B,IAEA1qG,IAAI9C,OAAO,4BAA4B,CAAC,UAAU,UAAU,SAAS,cAAc,+BAA+B,SAAS4B,EAASa,EAASxC,GAAQ,aACrJ,IAAIqV,EAAM1T,EAAQ,iBACdkpG,EAAelpG,EAAQ,eAAeuiG,SACtCA,EAAW1hG,EAAQ0hG,SAAW,SAAUjgB,GACxCpkF,KAAKskG,mBAAqB,IAAIp7F,OAAO,sBAAwBk7E,EAAU,qBAC3E,EACA5uE,EAAI7C,SAAS0xF,EAAU2G,GACvB,WACIhrG,KAAK2zD,mBAAqB,SAAUp2C,EAASqlD,EAAWrnD,GACpD,IACI5Q,EADO4S,EAAQmL,QAAQnN,GACV5Q,MAAM3K,KAAKskG,oBAC5B,GAAI35F,EACA,OAAIA,EAAM,GACC3K,KAAK0kG,oBAAoBnnF,EAAS5S,EAAM,GAAI4Q,EAAK5Q,EAAM/F,OAC9D+F,EAAM,GACC3K,KAAKwkG,iBAAiBjnF,EAAShC,EAAK5Q,EAAM/F,MAAQ+F,EAAM,GAAGpK,QAC/DP,KAAKwkG,iBAAiBjnF,EAAShC,EAE9C,CACH,EAAE9Z,KAAK4iG,EAAS9iG,UAEjB,IAEAyB,IAAI9C,OAAO,kBAAkB,CAAC,UAAU,UAAU,SAAS,cAAc,gBAAgB,kCAAkC,4BAA4B,cAAc,SAAS4B,EAASa,EAASxC,GAAQ,aACxM,IAAIqV,EAAM1T,EAAQ,cACdg1D,EAAWh1D,EAAQ,UAAUu+C,KAC7BqtD,EAAuB5rG,EAAQ,4BAA4B4rG,qBAC3DU,EAAiBtsG,EAAQ,sBAAsBuiG,SAC/CppF,EAAQnZ,EAAQ,YAAYmZ,MAC5BolC,EAAO,WACPrgD,KAAK65C,eAAiB6zD,EACtB1tG,KAAKk8D,aAAe,IAAIkyC,EAAe,OACvCpuG,KAAKujD,WAAavjD,KAAKsgD,iBAC3B,EACA9qC,EAAI7C,SAAS0tC,EAAMyW,GACnB,WACI92D,KAAKi/C,iBAAmB,IACxBj/C,KAAK6/C,iBAAmB,CACpB,IAAK,SACL,IAAK,UAET7/C,KAAKwiD,kBAAoB,SAAUrhB,EAAO93B,EAAMo5C,GAC5C,IAAI5U,EAAS7tC,KAAK4+C,WAAWv1C,GAEzBkvC,EADgBv4C,KAAKugD,eAAezH,cAAczvC,EAAM83B,GACjCoX,OAC3B,OAAIA,EAAOh4C,QAA4C,WAAlCg4C,EAAOA,EAAOh4C,OAAS,GAAGwT,MAGlC,SAATotB,GACY93B,EAAKsB,MAAM,sBAEnBkjC,GAAU4U,GALP5U,CASf,EACA,IAAIwgE,EAAW,CACX,KAAQ,EACR,OAAU,EACV,MAAS,EACT,MAAS,EACT,SAAY,GAEhBruG,KAAK0iD,aAAe,SAAUvhB,EAAO93B,EAAMs5C,GACvC,GAAc,SAAVA,GAA8B,OAAVA,GAA4B,OAAVA,EACtC,OAAO,EACX,IAAIpK,EAASv4C,KAAKugD,eAAezH,cAAczvC,EAAKioD,OAAQnwB,GAAOoX,OACnE,IAAKA,EACD,OAAO,EACX,GACI,IAAI7xC,EAAO6xC,EAAO1jC,YACbnO,IAAsB,WAAbA,EAAKqN,MAAmC,QAAbrN,EAAKqN,MAAkBrN,EAAKpD,MAAMqH,MAAM,WACrF,QAAKjE,GAEgB,WAAbA,EAAKqN,MAAqBs6F,EAAS3nG,EAAKpD,MACpD,EACAtD,KAAK4iD,YAAc,SAAUzhB,EAAOl0B,EAAKsO,GACrCA,GAAO,EACP,IAAIsyB,EAAS7tC,KAAK4+C,WAAW3xC,EAAIyb,QAAQnN,IACrCknC,EAAMx1C,EAAI4xC,eACVhR,EAAOtrC,OAAOkgD,EAAIliD,SAAWkiD,GAC7Bx1C,EAAI2B,OAAO,IAAIqM,EAAMM,EAAKsyB,EAAOttC,OAASkiD,EAAIliD,OAAQgb,EAAKsyB,EAAOttC,QAC1E,EACAP,KAAKuX,IAAM,kBACXvX,KAAK8rG,cAAgB,qBACxB,EAAErqG,KAAK4+C,EAAK9+C,WACboB,EAAQ09C,KAAOA,CAEf,IACoBr9C,IAAIlB,QAAQ,CAAC,oBAAoB,SAASgZ,GACyB3a,IAC3DA,EAAOwC,QAAUmY,EAEzB,8BCzdpB9X,IAAI9C,OAAO,+BAA+B,CAAC,UAAU,UAAU,SAAS,cAAc,kCAAkC,SAAS4B,EAASa,EAASxC,GAAQ,aAC3J,IAAIqV,EAAM1T,EAAQ,cACdw3C,EAAqBx3C,EAAQ,0BAA0Bw3C,mBACvDg1D,EAAoB,SAAUC,GAC9B,IAAIxB,EAAW,mCACf/sG,KAAKu5C,OAAS,CACVj+B,MAAO,CACH,CAAEs8B,MAAO,mBAAoBH,MAAO,kBAAmBpkB,KAAM,SAC7D,CACIukB,MAAO,CAAC,8BAA+B,2BACvCH,MAAO,UAAYs1D,EAAW,IAAK15E,KAAM,0BAE7C,CAAEukB,MAAO,oBAAqBH,MAAO,SAAUpkB,KAAM,WACrD,CACIukB,MAAO,CAAC,qBAAsB,sBAC9BH,MAAO,2BAA4BpkB,KAAM,UAAWkkB,iBAAiB,GAEzE,CAAEjpC,QAAS,OACX,CAAEspC,MAAO,wBAAyBH,MAAO,MACzC,CAAEG,MAAO,oBAAqBH,MAAO,KACrC,CAAEnpC,QAAS,aACX,CAAE6oC,aAAc,aAEpBq3D,uBAAwB,CAAC,CACjB52D,MAAO,sDACPH,MAAOs1D,GACR,CACCn1D,MAAO,6CACPH,MAAO,KACR,CACCnpC,QAAS,cACV,CACCA,QAAS,UACV,CACCspC,MAAO,2BACPH,MAAO,OACPpkB,KAAM,UAEdo7E,QAAS,CACL,CAAEngG,QAAS,cACX,CAAEA,QAAS,UACX,CAAEspC,MAAO,qBAAsBH,MAAO,IAAKpkB,KAAM,SACjD,CAAEukB,MAAO,aAAcH,MAAO,mBAC9B,CAAEG,MAAO,yBAA0BH,MAAO,MAAO11C,KAAM,eAE3D2sG,WAAY,CAAC,CACL92D,MAAO,WACPH,MAAO,QACR,CACCG,MAAO,6BACPH,MAAO,IACPpkB,KAAM,OACP,CACCukB,MAAO,CAAC,8BAA+B,2BACvCH,MAAO,UAAYs1D,EAAW,IAC9BhrG,KAAM,CAAC,CACC61C,MAAO,OACPH,MAAO,QAEX,CACIG,MAAO,8BACPH,MAAO,IACPpkB,KAAM,OAEV,CAAE/kB,QAAS,aAEvBqgG,MAAO,CACH,CAAE/2D,MAAO,mBAAoBH,MAAO,UAAWpkB,KAAM,SACrD,CAAEukB,MAAO,WAAYH,MAAO,QAC5B,CAAEG,MAAO,WAAYH,MAAO,4BAEhC8J,QAAS,CACL,CAAE3J,MAAO,kBAAmBH,MAAO,SAAOpkB,KAAM,SAChD,CAAE8jB,aAAc,gBAEpBg2D,UAAW,CAAC,CACJv1D,MAAO,yCACPH,MAAO,gEAEfm3D,eAAgB,CAAC,CACTh3D,MAAO,yDACPH,MAAO,gEAEfpqC,IAAK,CAAC,CACEuqC,MAAO,CAAC,oCAAqC,wCAAyC,yBACtFH,MAAO,mBAAqBs1D,EAAW,MAAQA,EAAW,IAC1D15E,KAAM,CACF,CAAE/kB,QAAS,cACX,CAAEspC,MAAO,qCAAsCH,MAAO,MAAOpkB,KAAM,YAG/Ew7E,eAAgB,CACZ,CAAEj3D,MAAO,0BAA2BH,MAAO,SAE/Cq3D,WAAY,CACR,CAAEl3D,MAAO,sBAAuBH,MAAO,SAE3CpzC,OAAQ,CAAC,CACDuzC,MAAO,aACPH,MAAO,IACP11C,KAAM,CACF,CAAE61C,MAAO,aAAcH,MAAO,IAAKpkB,KAAM,OACzC,CAAE8jB,aAAc,gBAErB,CACCS,MAAO,aACPH,MAAO,IACP11C,KAAM,CACF,CAAE61C,MAAO,aAAcH,MAAO,IAAKpkB,KAAM,OACzC,CAAE8jB,aAAc,iBAG5Bx8B,WAAY,CAAC,CACLi9B,MAAO,kCACPH,MAAOs1D,GACR,CACCn1D,MAAO,wCACPH,MAAO,KACR,CACCnpC,QAAS,kBACV,CACCA,QAAS,oBAEjBygG,gBAAiB,CAAC,CACVn3D,MAAO,6BACPH,MAAO,IACP11C,KAAM,CACF,CAAE61C,MAAO,6BAA8BH,MAAO,IAAKpkB,KAAM,OACzD,CAAE/kB,QAAS,kBACX,CAAE6oC,aAAc,gCAErB,CACCS,MAAO,6BACPH,MAAO,IACP11C,KAAM,CACF,CAAE61C,MAAO,6BAA8BH,MAAO,IAAKpkB,KAAM,OACzD,CAAE/kB,QAAS,kBACX,CAAE6oC,aAAc,kCAI5Bn3C,KAAK+S,cAAgBu7F,GACrBtuG,KAAKo6C,gBACb,GACA,WACIp6C,KAAKgvG,cAAgB,SAAUn1D,EAAgBJ,EAAQpsC,GACnDrN,KAAKu5C,OAAOlsC,IAAIgsC,QAAQ,CACpBzB,MAAO,CAAC,oCAAqC,YAAcvqC,EAAM,iBACjEoqC,MAAO,OAASpqC,EAAM,eACtBgmB,KAAM,CACF,CAAE/kB,QAAS,cACX,CAAEspC,MAAO,qCAAsCH,MAAO,MAAOpkB,KAAMomB,EAAS,YAGpFz5C,KAAKu5C,OAAOlsC,EAAM,QAAU,CACxB,CAAEiB,QAAS,cACX,CAAEspC,MAAO,qCAAsCH,MAAO,MAAOpkB,KAAM,QAC/D0kB,QAAS,SAAUz0C,EAAO01C,EAAcR,GAEpC,OADAA,EAAM5wC,OAAO,GACN5H,KAAK43C,KAChB,IAER53C,KAAK45C,WAAWC,EAAgBJ,EAAQ,CAAC,CACjC7B,MAAO,CAAC,wCAAyC,YAAcvqC,EAAM,iBACrEoqC,MAAO,QAAUpqC,EAAM,eACvBgmB,KAAMhmB,EAAM,QACb,CACCuqC,MAAO,mBACPH,MAAO,mBACR,CACCG,MAAO,mBACPH,MAAO,YAEnB,CACH,GAAEh2C,KAAK63C,EAAmB/3C,WAC3BiU,EAAI7C,SAAS27F,EAAmBh1D,GAChC32C,EAAQ2rG,kBAAoBA,CAE5B,IAEAtrG,IAAI9C,OAAO,yBAAyB,CAAC,UAAU,UAAU,SAAS,cAAc,qBAAqB,qBAAqB,iBAAiB,SAAS4B,EAASa,EAASxC,GAAQ,aAC9K,IAAIqV,EAAM1T,EAAQ,iBACdu5C,EAAYv5C,EAAQ,gBAAgBu5C,UACpCM,EAAgB75C,EAAQ,wBAAwB65C,cAEpD,SAASgqD,EAAG/tD,EAAO7jC,GACf,OAAO6jC,GAASA,EAAM7jC,KAAKjQ,YAAYiQ,EAAO,SAAW,CAC7D,CAHWjS,EAAQ,kBAInB,IAAImtG,EAAe,WACfjvG,KAAKmO,IAAI,iBAAkB,aAAa,SAAUgzB,EAAOoB,EAAQ1T,EAAQtR,EAAS2H,GAC9E,GAAY,KAARA,GAAuB,KAARA,EAAa,CAC5B,IAAIg6B,EAAQh6B,EACRmd,EAAW9kB,EAAQtQ,IAAIyyB,aAAa7Q,EAAO3C,qBAC/C,GAAiB,KAAbmW,GAAgC,MAAbA,GAAgC,KAAZA,GAAmBxT,EAAOkvB,2BACjE,MAAO,CACH74B,KAAMg6B,EAAQ7c,EAAW6c,EACzBl4B,WAAW,GAGnB,IAAIC,EAAS4H,EAAOkgB,oBAEhBqQ,EADO7hC,EAAQtQ,IAAIyb,QAAQzB,EAAO1L,KACjBuyB,UAAU7mB,EAAOzL,OAAQyL,EAAOzL,OAAS,GAC1D4X,EAAW,IAAIuoB,EAAcp+B,EAAS0J,EAAO1L,IAAK0L,EAAOzL,QACzDo8B,EAAQxkB,EAASkpB,kBACrB,GAAI8C,GAAaF,IAAUymD,EAAG/tD,EAAO,oBAAsB+tD,EAAG/tD,EAAO,WACjE,MAAO,CACH1yB,KAAM,GACN8B,UAAW,CAAC,EAAG,IAKvB,GAFK4wB,IACDA,EAAQxkB,EAASgpB,iBAChBxE,EACD,OACJ,KAAO+tD,EAAG/tD,EAAO,mBAAqB+tD,EAAG/tD,EAAO,eAC5CA,EAAQxkB,EAASgpB,eAErB,IAAI8yD,GAAc9vD,GAAaA,EAAUz0C,MAAM,MAC/C,GAAIg7F,EAAG/tD,EAAO,sBAAwBs3D,GAA2B,KAAb9vD,IAAsBumD,EAAG/tD,EAAO,2BAA6Bs3D,GAA2B,KAAb9vD,GAC3H,MAAO,CACHl6B,KAAMg6B,EAAQA,EACdl4B,UAAW,CAAC,EAAG,GAG3B,CACJ,IACAhnB,KAAKmO,IAAI,iBAAkB,YAAY,SAAUgzB,EAAOoB,EAAQ1T,EAAQtR,EAAS7B,GAC7E,IAAI2mB,EAAW9kB,EAAQtQ,IAAIyyB,aAAahkB,GACxC,IAAKA,EAAMgB,gBAA8B,KAAZ2lB,GAA+B,KAAZA,IACjC9kB,EAAQtQ,IAAIyb,QAAQhN,EAAMJ,MAAMC,KACtBuyB,UAAUpyB,EAAMJ,MAAME,OAAS,EAAGE,EAAMJ,MAAME,OAAS,IAC3D6mB,EAEb,OADA3mB,EAAMvV,IAAIqV,SACHE,CAGnB,IACA1b,KAAKmO,IAAI,cAAe,aAAa,SAAUgzB,EAAOoB,EAAQ1T,EAAQtR,EAAS2H,GAC3E,GAAY,KAARA,EAAa,CACb,IAAIrhB,EAAWgrB,EAAO3C,oBAAoB5Q,MACtC8X,EAAW,IAAIuoB,EAAcp+B,EAAS1Z,EAAS0X,IAAK1X,EAAS2X,QAC7Do8B,EAAQxkB,EAASkpB,mBAAqBlpB,EAASgpB,eACnD,IAAKxE,KAAW+tD,EAAG/tD,EAAO,aAAe+tD,EAAG/tD,EAAO,mBAAqB+tD,EAAG/tD,EAAO,mBAAqB+tD,EAAG/tD,EAAO,qBAAuB+tD,EAAG/tD,EAAO,oBAC9I,OACJ,GAAI+tD,EAAG/tD,EAAO,6BACV,OACJ,GAAI+tD,EAAG/tD,EAAO,mBAAoB,CAC9B,IAAIu3D,EAAiB/7E,EAASopB,wBAA0B5E,EAAMt0C,MAAM/C,OACpE,GAAIsD,EAAS2X,OAAS2zF,EAClB,OACJ,GAAItrG,EAAS2X,QAAU2zF,EAAgB,CACnC,IAAIlJ,EAAY7yE,EAASipB,cACzB,GAAI4pD,GAAaN,EAAGM,EAAW,mBAC3B,OACJ7yE,EAASgpB,cACb,CACJ,CACA,GAAI,QAAQ3wC,KAAK8R,EAAQmL,QAAQ7kB,EAAS0X,KAAKhZ,MAAMsB,EAAS2X,SAC1D,OACJ,MAAQmqF,EAAG/tD,EAAO,aAEd,GAAmB,MADnBA,EAAQxkB,EAASgpB,gBACP94C,MAAc,CACpBs0C,EAAQxkB,EAASipB,cACjB,KACJ,CAEJ,IAAI+yD,EAAWh8E,EAASmpB,qBACpB8yD,EAAcj8E,EAASopB,wBAC3B,GAAImpD,EAAGvyE,EAASgpB,eAAgB,gBAC5B,OACJ,IAAI5uC,EAAUoqC,EAAMt0C,MAGpB,GAFI8rG,GAAYvrG,EAAS0X,MACrB/N,EAAUA,EAAQsgC,UAAU,EAAGjqC,EAAS2X,OAAS6zF,IACjDrvG,KAAKsvG,aAAan3F,eAAe3K,EAAQpD,eACzC,OACJ,MAAO,CACH8a,KAAM,MAAa1X,EAAU,IAC7BwZ,UAAW,CAAC,EAAG,GAEvB,CACJ,IACAhnB,KAAKmO,IAAI,aAAc,aAAa,SAAUgzB,EAAOoB,EAAQ1T,EAAQtR,EAAS2H,GAC1E,GAAY,MAARA,EAAc,CACd,IAAI+B,EAAS4H,EAAOkgB,oBAChB1lC,EAAOkU,EAAQmL,QAAQzB,EAAO1L,KAC9B6X,EAAW,IAAIuoB,EAAcp+B,EAAS0J,EAAO1L,IAAK0L,EAAOzL,QACzDo8B,EAAQxkB,EAASkpB,kBACrB,GAAI1E,IAA8C,IAArCA,EAAM7jC,KAAK5R,QAAQ,aAAqB,CACjD,GAAmB,MAAfy1C,EAAMt0C,MACN,OACJ,KAAOs0C,IAA6C,IAApCA,EAAM7jC,KAAK5R,QAAQ,aAC/By1C,EAAQxkB,EAASgpB,eAErB,IAAKxE,EACD,OAEJ,IAAIvqC,EAAMuqC,EAAMt0C,MACZiY,EAAM6X,EAASmpB,qBAEnB,KADA3E,EAAQxkB,EAASgpB,kBACgC,IAAnCxE,EAAM7jC,KAAK5R,QAAQ,WAC7B,OAEJ,GAAInC,KAAKsvG,eAAiBtvG,KAAKsvG,aAAajiG,GAAM,CAC9C,IAAI44F,EAAY1oF,EAAQ2+B,WAAWj1B,EAAO1L,IAAK0L,EAAOzL,OAAS,GAE3D+zF,GADAlmG,EAAOkU,EAAQmL,QAAQnN,GACVvb,KAAK4+C,WAAWv1C,IAC7BwkC,EAAS0hE,EAAahyF,EAAQshC,eAClC,OAAIonD,GAAiC,OAApBA,EAAU3iG,MAChB,CACH4hB,KAAM,KAAO2oB,EAAS,KAAO0hE,EAC7BvoF,UAAW,CAAC,EAAG6mB,EAAOttC,OAAQ,EAAGstC,EAAOttC,SAIrC,CACH2kB,KAAM,KAAO2oB,EAGzB,CACJ,CACJ,CACJ,GACJ,EACAr4B,EAAI7C,SAASs8F,EAAc5zD,GAC3B14C,EAAQssG,aAAeA,CAEvB,IAEAjsG,IAAI9C,OAAO,uBAAuB,CAAC,UAAU,UAAU,SAAS,cAAc,YAAY,+BAA+B,SAAS4B,EAASa,EAASxC,GAAQ,aAC5J,IAAIqV,EAAM1T,EAAQ,iBACdmZ,EAAQnZ,EAAQ,eAAemZ,MAC/B+vF,EAAelpG,EAAQ,eAAeuiG,SACtCA,EAAW1hG,EAAQ0hG,SAAW,SAAUiL,EAAcE,GACtDxE,EAAavpG,KAAKzB,MAClBA,KAAKsvG,aAAeA,GAAgB,CAAC,EACrCtvG,KAAKwvG,gBAAkBh6F,EAAIxC,MAAM,CAAC,EAAGhT,KAAKsvG,cACtCE,GACAh6F,EAAIxC,MAAMhT,KAAKwvG,gBAAiBA,EACxC,EACAh6F,EAAI7C,SAAS0xF,EAAU2G,GACvB,IAAIyE,EAAM,WACNzvG,KAAKwlG,QAAU,GACfxlG,KAAK49C,SAAU,EACf59C,KAAK0vG,aAAc,EACnB1vG,KAAKsb,MAAQ,CAAEC,IAAK,EAAGC,OAAQ,GAC/Bxb,KAAKmG,IAAM,CAAEoV,IAAK,EAAGC,OAAQ,EACjC,EACA,SAASmqF,EAAG/tD,EAAO7jC,GACf,OAAO6jC,EAAM7jC,KAAKjQ,YAAYiQ,EAAO,SAAW,CACpD,EACA,WACI/T,KAAK0zD,cAAgB,SAAUn2C,EAASqlD,EAAWrnD,GAC/C,IAAIlO,EAAMrN,KAAK2vG,mBAAmBpyF,EAAShC,GAC3C,OAAKlO,EAEDA,EAAIuwC,UAAavwC,EAAIm4F,SAAWn4F,EAAIqiG,YACf,iBAAd9sC,EAA+B,MAAQ,IAC7Cv1D,EAAIm4F,SAAWn4F,EAAIqiG,aAAe1vG,KAAKsvG,aAAan3F,eAAe9K,EAAIm4F,QAAQp7F,gBAEhFpK,KAAK4vG,kBAAkBryF,EAAShC,EAAKlO,EAAIm4F,QAASn4F,EAAIlH,IAAIqV,QADnD,GAGJ,QAPIxb,KAAK6vG,qBAAqBtyF,EAAShC,EAQlD,EACAvb,KAAK6vG,qBAAuB,SAAUtyF,EAAShC,GAC3C,MAAI,UAAU9P,KAAK8R,EAAQsrC,SAASttC,KAAS,MAAM9P,KAAK8R,EAAQmL,QAAQnN,IAC7D,QACJ,EACX,EACAvb,KAAK2vG,mBAAqB,SAAUpyF,EAAShC,GAGzC,IAFA,IAAIg9B,EAASh7B,EAAQ0+B,UAAU1gC,GAC3BlO,EAAM,IAAIoiG,EACL9tG,EAAI,EAAGA,EAAI42C,EAAOh4C,OAAQoB,IAAK,CACpC,IAAIi2C,EAAQW,EAAO52C,GACnB,GAAIgkG,EAAG/tD,EAAO,YAAa,CAIvB,GAHAvqC,EAAIlH,IAAIqV,OAASnO,EAAIiO,MAAME,OAASo8B,EAAMt0C,MAAM/C,OAChD8M,EAAIuwC,QAAU+nD,EAAG/tD,EAAO,kBACxBA,EAAQW,IAAS52C,IAEb,OAAO,KAGX,IAFA0L,EAAIm4F,QAAU5tD,EAAMt0C,MACpB+J,EAAIlH,IAAIqV,QAAUo8B,EAAMt0C,MAAM/C,OACzBoB,IAAKA,EAAI42C,EAAOh4C,OAAQoB,IAGzB,GAFAi2C,EAAQW,EAAO52C,GACf0L,EAAIlH,IAAIqV,QAAUo8B,EAAMt0C,MAAM/C,OAC1BolG,EAAG/tD,EAAO,aAAc,CACxBvqC,EAAIqiG,YAA6B,MAAf93D,EAAMt0C,MACxB,KACJ,CAEJ,OAAO+J,CACX,CACK,GAAIs4F,EAAG/tD,EAAO,aAEf,OADAvqC,EAAIqiG,YAA6B,MAAf93D,EAAMt0C,MACjB+J,EAEXA,EAAIiO,MAAME,QAAUo8B,EAAMt0C,MAAM/C,MACpC,CACA,OAAO,IACX,EACAP,KAAK4vG,kBAAoB,SAAUryF,EAAShC,EAAKiqF,EAASrqF,GAGtD,IAFA,IAAIo9B,EAASh7B,EAAQ0+B,UAAU1gC,GAC3BC,EAAS,EACJ7Z,EAAI,EAAGA,EAAI42C,EAAOh4C,OAAQoB,IAAK,CACpC,IAAIi2C,EAAQW,EAAO52C,GAEnB,MADA6Z,GAAUo8B,EAAMt0C,MAAM/C,QACT4a,IAETwqF,EAAG/tD,EAAO,kBACVA,EAAQW,EAAO52C,EAAI,KACNi2C,EAAMt0C,OAASkiG,EACxB,OAAO,CAEnB,CACA,OAAO,CACX,EACAxlG,KAAK2zD,mBAAqB,SAAUp2C,EAASqlD,EAAWrnD,GACpD,IAAIu0F,EAAOvyF,EAAQo4C,gBAAgB,CAAEp6C,IAAKA,EAAKC,OAAQ,IACvD,OAAIs0F,EACO,IAAI70F,EAAM60F,EAAKp5C,QAAQvwD,IAAIoV,IAAKu0F,EAAKp5C,QAAQvwD,IAAIqV,OAAQs0F,EAAKn5C,SAASr7C,MAAMC,IAAKu0F,EAAKn5C,SAASr7C,MAAME,QAGtGxb,KAAK6vG,qBAAqBtyF,EAAShC,IACnCgC,EAAQi2C,oBAAoBj4C,EAAKgC,EAAQmL,QAAQnN,GAAKhb,OAErE,CACH,GAAEkB,KAAK4iG,EAAS9iG,UAEjB,IAEAyB,IAAI9C,OAAO,eAAe,CAAC,UAAU,UAAU,SAAS,cAAc,eAAe,gBAAgB,+BAA+B,yBAAyB,uBAAuB,6BAA6B,SAAS4B,EAASa,EAASxC,GAAQ,aACpP,IAAIqV,EAAM1T,EAAQ,cACd0V,EAAO1V,EAAQ,eACfg1D,EAAWh1D,EAAQ,UAAUu+C,KAC7BiuD,EAAoBxsG,EAAQ,yBAAyBwsG,kBACrDW,EAAentG,EAAQ,mBAAmBmtG,aAC1Cc,EAAcjuG,EAAQ,iBAAiBuiG,SACvC/I,EAAex5F,EAAQ,2BAA2Bw5F,aAClDj7C,EAAO,WACPrgD,KAAK65C,eAAiBy0D,EACtBtuG,KAAKujD,WAAa,IAAI0rD,EACtBjvG,KAAKk8D,aAAe,IAAI6zC,CAC5B,EACAv6F,EAAI7C,SAAS0tC,EAAMyW,GACnB,WACI92D,KAAKsvG,aAAe93F,EAAKlQ,WAAW,IACpCtH,KAAK2gD,aAAe,CAAErlC,MAAO,UAAQnV,IAAK,UAC1CnG,KAAK6iD,aAAe,SAAUtlC,GAC1B,IAAIg+E,EAAS,IAAID,EAAa,CAAC,OAAQ,sBAAuB,UAQ9D,OAPAC,EAAOsB,iBAAiBt/E,EAAQgzB,eAChCgrD,EAAOrnF,GAAG,SAAS,SAAU/K,GACzBoU,EAAQq7C,eAAezvD,EAAEkM,KAC7B,IACAkmF,EAAOrnF,GAAG,aAAa,WACnBqJ,EAAQ09C,kBACZ,IACOsgC,CACX,EACAv7F,KAAKuX,IAAM,cACd,EAAE9V,KAAK4+C,EAAK9+C,WACboB,EAAQ09C,KAAOA,CAEf,IACoBr9C,IAAIlB,QAAQ,CAAC,iBAAiB,SAASgZ,GAC4B3a,IAC3DA,EAAOwC,QAAUmY,EAEzB,8BCldpB9X,IAAI9C,OAAO,uBAAuB,CAAC,UAAU,UAAU,WAAW,SAAS4B,EAASa,EAASxC,GAAQA,EAAOwC,QAAU,uyFAEtH,IAEAK,IAAI9C,OAAO,mBAAmB,CAAC,UAAU,UAAU,SAAS,uBAAuB,gBAAgB,SAAS4B,EAASa,EAASxC,GAAQwC,EAAQ0U,QAAS,EACvJ1U,EAAQ2U,SAAW,aACnB3U,EAAQmK,QAAUhL,EAAQ,gBAChBA,EAAQ,cACdkN,gBAAgBrM,EAAQmK,QAASnK,EAAQ2U,UAAU,EAEvD,IACoBtU,IAAIlB,QAAQ,CAAC,qBAAqB,SAASgZ,GACwB3a,IAC3DA,EAAOwC,QAAUmY,EAEzB,oCCbhBA,EAAI,EAAQ,KAEdnY,EAAQ,EAAamY,EAAEk1F,WACDl1F,EAAEm1F,qBCH1B,IAAIC,EAAoC,oBAAZC,QACxBC,EAAwB,mBAARC,IAChBC,EAAwB,mBAAR/qB,IAChBgrB,EAAwC,mBAAhBC,eAAgCA,YAAYC,OAIxE,SAASC,EAAM/pG,EAAGmsB,GAEhB,GAAInsB,IAAMmsB,EAAG,OAAO,EAEpB,GAAInsB,GAAKmsB,GAAiB,iBAALnsB,GAA6B,iBAALmsB,EAAe,CAC1D,GAAInsB,EAAEoM,cAAgB+f,EAAE/f,YAAa,OAAO,EAE5C,IAAIxS,EAAQoB,EAAGmD,EA6BX6rG,EA5BJ,GAAItrG,MAAMoB,QAAQE,GAAI,CAEpB,IADApG,EAASoG,EAAEpG,SACGuyB,EAAEvyB,OAAQ,OAAO,EAC/B,IAAKoB,EAAIpB,EAAgB,GAARoB,KACf,IAAK+uG,EAAM/pG,EAAEhF,GAAImxB,EAAEnxB,IAAK,OAAO,EACjC,OAAO,CACT,CAuBA,GAAIyuG,GAAWzpG,aAAa0pG,KAASv9E,aAAau9E,IAAM,CACtD,GAAI1pG,EAAEonC,OAASjb,EAAEib,KAAM,OAAO,EAE9B,IADA4iE,EAAKhqG,EAAEiqG,YACEjvG,EAAIgvG,EAAGt9E,QAAQC,UACjBR,EAAE4yD,IAAI/jF,EAAE2B,MAAM,IAAK,OAAO,EAEjC,IADAqtG,EAAKhqG,EAAEiqG,YACEjvG,EAAIgvG,EAAGt9E,QAAQC,UACjBo9E,EAAM/uG,EAAE2B,MAAM,GAAIwvB,EAAEphB,IAAI/P,EAAE2B,MAAM,KAAM,OAAO,EACpD,OAAO,CACT,CAEA,GAAIgtG,GAAW3pG,aAAa4+E,KAASzyD,aAAayyD,IAAM,CACtD,GAAI5+E,EAAEonC,OAASjb,EAAEib,KAAM,OAAO,EAE9B,IADA4iE,EAAKhqG,EAAEiqG,YACEjvG,EAAIgvG,EAAGt9E,QAAQC,UACjBR,EAAE4yD,IAAI/jF,EAAE2B,MAAM,IAAK,OAAO,EACjC,OAAO,CACT,CAGA,GAAIitG,GAAkBC,YAAYC,OAAO9pG,IAAM6pG,YAAYC,OAAO39E,GAAI,CAEpE,IADAvyB,EAASoG,EAAEpG,SACGuyB,EAAEvyB,OAAQ,OAAO,EAC/B,IAAKoB,EAAIpB,EAAgB,GAARoB,KACf,GAAIgF,EAAEhF,KAAOmxB,EAAEnxB,GAAI,OAAO,EAC5B,OAAO,CACT,CAEA,GAAIgF,EAAEoM,cAAgB7J,OAAQ,OAAOvC,EAAE9B,SAAWiuB,EAAEjuB,QAAU8B,EAAEkqG,QAAU/9E,EAAE+9E,MAK5E,GAAIlqG,EAAEmqG,UAAYxvG,OAAOC,UAAUuvG,SAAgC,mBAAdnqG,EAAEmqG,SAA+C,mBAAdh+E,EAAEg+E,QAAwB,OAAOnqG,EAAEmqG,YAAch+E,EAAEg+E,UAC3I,GAAInqG,EAAEnF,WAAaF,OAAOC,UAAUC,UAAkC,mBAAfmF,EAAEnF,UAAiD,mBAAfsxB,EAAEtxB,SAAyB,OAAOmF,EAAEnF,aAAesxB,EAAEtxB,WAKhJ,IADAjB,GADAuE,EAAOxD,OAAOwD,KAAK6B,IACLpG,UACCe,OAAOwD,KAAKguB,GAAGvyB,OAAQ,OAAO,EAE7C,IAAKoB,EAAIpB,EAAgB,GAARoB,KACf,IAAKL,OAAOC,UAAU4W,eAAe1W,KAAKqxB,EAAGhuB,EAAKnD,IAAK,OAAO,EAKhE,GAAIuuG,GAAkBvpG,aAAawpG,QAAS,OAAO,EAGnD,IAAKxuG,EAAIpB,EAAgB,GAARoB,KACf,IAAiB,WAAZmD,EAAKnD,IAA+B,QAAZmD,EAAKnD,IAA4B,QAAZmD,EAAKnD,KAAiBgF,EAAEoqG,YAarEL,EAAM/pG,EAAE7B,EAAKnD,IAAKmxB,EAAEhuB,EAAKnD,KAAM,OAAO,EAK7C,OAAO,CACT,CAEA,OAAOgF,GAAMA,GAAKmsB,GAAMA,CAC1B,CAGA3yB,EAAOwC,QAAU,SAAiBgE,EAAGmsB,GACnC,IACE,OAAO49E,EAAM/pG,EAAGmsB,EAClB,CAAE,MAAOjyB,GACP,IAAMA,EAAM2V,SAAW,IAAI7L,MAAM,oBAO/B,OADA/J,QAAQwV,KAAK,mDACN,EAGT,MAAMvV,CACR,CACF,wBC1IAV,EAAOwC,QAAUb,QAAQ,eCCrBkvG,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqB7vG,IAAjB8vG,EACH,OAAOA,EAAaxuG,QAGrB,IAAIxC,EAAS6wG,EAAyBE,GAAY,CACjDruG,GAAIquG,EACJE,QAAQ,EACRzuG,QAAS,CAAC,GAUX,OANA0uG,EAAoBH,GAAU/wG,EAAQA,EAAOwC,QAASsuG,GAGtD9wG,EAAOixG,QAAS,EAGTjxG,EAAOwC,OACf,CCzBAsuG,EAAoBK,KAAO,WAC1B,MAAM,IAAIh8F,MAAM,iCACjB,ECDA27F,EAAoBtkG,EAAKxM,IACxB,IAAIoxG,EAASpxG,GAAUA,EAAOqxG,WAC7B,IAAOrxG,EAAiB,QACxB,IAAM,EAEP,OADA8wG,EAAoBp+E,EAAE0+E,EAAQ,CAAE5qG,EAAG4qG,IAC5BA,CAAM,ECLdN,EAAoBp+E,EAAI,CAAClwB,EAAS8uG,KACjC,IAAI,IAAIzsG,KAAOysG,EACXR,EAAoB/rG,EAAEusG,EAAYzsG,KAASisG,EAAoB/rG,EAAEvC,EAASqC,IAC5E1D,OAAO+B,eAAeV,EAASqC,EAAK,CAAEzB,YAAY,EAAMmO,IAAK+/F,EAAWzsG,IAE1E,ECNDisG,EAAoB/rG,EAAI,CAAChC,EAAKwuG,IAAUpwG,OAAOC,UAAU4W,eAAe1W,KAAKyB,EAAKwuG,GCClFT,EAAoBl7D,EAAKpzC,IACH,oBAAXwwB,QAA0BA,OAAOw+E,aAC1CrwG,OAAO+B,eAAeV,EAASwwB,OAAOw+E,YAAa,CAAEruG,MAAO,WAE7DhC,OAAO+B,eAAeV,EAAS,aAAc,CAAEW,OAAO,GAAO,ECL9D2tG,EAAoBW,IAAOzxG,IAC1BA,EAAO0xG,MAAQ,GACV1xG,EAAOu0D,WAAUv0D,EAAOu0D,SAAW,IACjCv0D,GCHR8wG,EAAoBj1F,EAAI,ykDCAxB,MAAM,EAA+Bla,QAAQ,sBCA7C,MAAM,EAA+BA,QAAQ,2BCE7C,MAEA,GAFyB,IAAAgwG,iBCEzB,GAF6B,IAAAA,0OCC7B,SAASC,EAAK,YACZnlG,UAAAA,EAAA,OACAolG,EAAM,KACNj+F,EAAI,OACJk+F,GAJY,EAKTC,+JAAA,CALS,EAKT,CAJH,YACA,SACA,OACA,WAgBA,OAAO,kBAAC,yHAAEtlG,UAbV,WACE,MAAMgzE,EAAaoyB,GAAU,KAG7B,MAAO,CACL,WACe,OAAfpyB,GAAuBA,EACvB,GAAGA,KAAc7rE,IALe,OAAf6rE,EAAsB,MAAMqyB,GAAU,YAAc,GAOrErlG,GACAoJ,OAAO4uB,SAASpiC,KAAK,IACzB,CAEqB2vG,IAAqBD,GAC5C,CAEAH,EAAKK,UAAY,CAEfxlG,UAAW,WAEXolG,OAAQ,WAERj+F,KAAM,WAAiBs+F,WAEvBJ,OAAQ,YAGV,UC/BA,SAASK,GAAY,KAAE9vC,IACrB,MAAM,UAAE+vC,EAAS,SAAE59F,EAAQ,aAAE69F,IAAiB,IAAAC,YAAW,GAEnDC,EAAWH,EAAY,eAAiB,aACxCtkG,EAAU,CACd,yBACA0G,GAAY,oCACZqB,OAAO4uB,SAASpiC,KAAK,KACjBmwG,EACJ,kBAAC,UACC/lG,UAAWqB,EACX2kG,QAASJ,EACTz+F,KAAK,SACL,aAAW,mBAEX,kBAAC,EAAI,CAACnH,UAAU,qBAAqBmH,KAAM2+F,KAI/C,OAAOlwC,EACH,kBAAC,OAAI51D,UAAU,kCAAkC+lG,GACjDA,CACN,CAEAL,EAAYF,UAAY,CACtB5vC,KAAM,UAGR,UCzBA,SAASqwC,GACPN,UAAWO,EAAa,SACxBp+C,EAAQ,UACR9nD,EAAS,SACT+H,GACCo+F,GACD,MAAM,MAAE7N,IAAU,IAAAuN,YAAW,IACtBF,EAAWS,IAAgB,IAAAC,UAASH,GAErCN,EAAe,KACf79F,GAIJq+F,GAAcT,EAAU,EAGpBtkG,GAAU,IAAAilG,UAAQ,IAAM,CAC5B,sBACAhO,EAAMiO,gBACF,yCAAyCjO,EAAMrhG,WAC/C,yCACJ+I,GACc,IAAd2lG,GAAuB,+BACvBv8F,OAAO4uB,SAASpiC,KAAK,MAAM,CAAC0iG,EAAOt4F,EAAW2lG,IAE1Ca,GAAe,IAAAF,UAAQ,KAAM,CACjCX,YACA59F,WACA69F,kBACE,CAACD,EAAW59F,EAAU69F,IAE1B,OACE,kBAAC,OAAIO,MAAUnmG,UAAWqB,GACxB,kBAAC,EAAqBolG,SAArB,CAA8B/vG,MAAO8vG,GACnClO,EAAMiO,iBACL,kBAAC,EAAW,CAAC3wC,MAAI,IAElB9N,GAIT,CAEAm+C,EAAcT,UAAY,CACxB19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEF69C,UAAW,SACX3lG,UAAW,WACX+H,SAAU,UAGZk+F,EAAcS,aAAe,CAC3Bf,WAAW,GAGb,SAAe,IAAAgB,YAAWV,GC7D1B,SAASW,GAAoB,UAAE5mG,EAAS,SAAE8nD,IACxC,MAAM,UAAE69C,EAAS,SAAE59F,EAAQ,aAAE69F,IAAiB,IAAAC,YAAW,IACnD,kBAAEgB,EAAiB,MAAEvO,IAAU,IAAAuN,YAAW,GAC1CC,EAAWH,EAAY,eAAiB,aACxCtkG,EAAU,CACd,6BACAwlG,GAAqB,+BACrB7mG,GACAoJ,OAAO4uB,SAASpiC,KAAK,KAEvB,OACE,kBAAC,OAAIoK,UAAWqB,GAEXwlG,EAYG,qCACIvO,EAAMiO,iBAAsC,SAAnBjO,EAAMrhG,UAC/B,kBAAC,EAAW,MAEd,kBAAC,WAAK6wD,IACJwwC,EAAMiO,iBAAsC,UAAnBjO,EAAMrhG,UAC/B,kBAAC,EAAW,OAhBhB,kBAAC,UACC+I,UAAW+H,EAAW,mCAAqC,GAC3Di+F,QAASJ,EACTz+F,KAAK,UAEL,kBAAC,YAAM2gD,GACP,kBAAC,EAAI,CAAC9nD,UAAU,qBAAqBmH,KAAM2+F,KAiBzD,CAEAc,EAAoBpB,UAAY,CAC9B19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEF9nD,UAAW,YAGb,UC1DM,EAA+B9K,QAAQ,0BCEvC4xG,EAAWnnG,GACVA,EAOE,CACLoD,MAAOpD,EAAG6D,YACVP,OAAQtD,EAAGgoB,cARJ,CACL5kB,MAAO,EACPE,OAAQ,GAoCd,EA1B0BkjG,IACxB,MAAOY,EAAeC,IAAoB,IAAAX,UAASS,EAAQX,EAAMA,EAAIc,QAAU,CAAC,IAC1EC,GAAe,IAAAC,cAAY,KAC3BhB,EAAIc,SACND,EAAiBF,EAAQX,EAAIc,SAC/B,GACC,CAACd,IAgBJ,OAdA,IAAAiB,kBAAgB,KACdF,IAEA,IAAIG,EAAiB,IAAIxlB,gBAAe,KACtCqlB,GAAc,IAIhB,OAFAG,EAAe1kB,QAAQwjB,EAAIc,SAEpB,KACLI,EAAexkB,WAAWsjB,EAAIc,SAC9BI,EAAiB,IAAI,CACtB,GACA,CAAClB,EAAIc,UAEDF,CAAa,ECZtB,EAxByB,CAACjgG,EAAW6P,EAAS/V,KAC5C,MAAM0mG,GAAe,IAAAC,WACrB,IAAAC,YAAU,KACRF,EAAaL,QAAUtwF,CAAO,GAC7B,CAACA,KAEJ,IAAA6wF,YAAU,KAER,KADoB,MAAA5mG,OAAA,EAAAA,EAASsH,kBAG3B,OAGF,MAAMu/F,EAAiB/vF,GAAU4vF,EAAaL,QAAQvvF,GAItD,OAHA9W,EAAQsH,iBAAiBpB,EAAW2gG,GAG7B,KACL7mG,EAAQyH,oBAAoBvB,EAAW2gG,EAAc,CACtD,GACA,CAAC3gG,EAAWlG,GAAS,wRCZ1B,SAAS8mG,EAAY,YACnB1nG,UAAAA,EAAA,UACA2lG,EAAS,SACT79C,GAHmB,EAIhBw9C,+JAAA,CAJgB,EAIhB,CAHH,YACA,YACA,aAGA,MAAMqC,GAAmB,IAAAJ,QAAO,MAC1BK,GAAkB,IAAAL,QAAO,MACzBM,EAAmB,EAAiBF,IACnCG,EAAuBC,IAA4B,IAAA1B,UAAS,CAEjEpjG,OAAS0iG,EAAa,EAAI,SAGtBtmB,EAAap8E,IACjB8kG,EAAyB,CACvB9kG,OAAQ,GAAGA,OACX,EAGEykB,EAAY,IAAOigF,EAAiBV,QAAUU,EAAiBV,QAAQzmF,aAAe,GAU5F,IAAAgnF,YAAU,MACH7B,IACA,MAAAkC,OAAA,EAAAA,EAAkB5kG,SAClB6kG,EAAsB7kG,UAAW,MAAA4kG,OAAA,EAAAA,EAAkB5kG,SAEtDo8E,EAAUwoB,EAAiB5kG,OAC7B,GACC,CAAC4kG,EAAiB5kG,SAErB,MAAM+kG,GAAiB,IAAAb,cAAY,MAC5BxB,GAAagC,EAAiBV,UACjC5nB,EAAU33D,KACVkgF,EAAgBX,QAAQhnG,MAAMgD,OAAS,GAAGykB,QAC5C,GACC,CAACi+E,EAAWgC,EAAiBV,UAIhC,OAFA,EAAiB,SAAUe,EAAgB30G,QAGzC,kBAAC,EAAA40G,cAAA,CACCC,QA5BY,KACd7oB,EAAU33D,IAAY,EA4BpBygF,OAzBW,KACb9oB,EAAU,EAAE,EAyBV+oB,IAAKzC,EACLhqG,QAAS,EACT0sG,WAAW,YAEX,kBAAC,OACCroG,UAAU,mBACVmmG,IAAKyB,EACL3nG,MAAO6nG,GAEP,kBAAC,gIACKxC,SADL,CAECtlG,YACAmmG,IAAKwB,MAEH7/C,UAKZ,CAEA4/C,EAAYlC,UAAY,CACtB19C,SAAU,cAAoB,CAC5B,YACA,SACA,aAGF69C,UAAW,SAEX3lG,UAAW,YAGb,UCzFA,SAASsoG,GAAqB,SAAExgD,EAAQ,UAAE9nD,IACxC,MAAM,UAAE2lG,IAAc,IAAAE,YAAW,GAE3BxkG,EAAU,CACd,8BACArB,GACAoJ,OAAO4uB,SAASpiC,KAAK,KAEvB,OACE,kBAAC,OAAIoK,UAAWqB,GACd,kBAAC,EAAW,CAACskG,aACT79C,GAIV,CAEAwgD,EAAqB9C,UAAY,CAC/B19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEF9nD,UAAW,YAGb,UC1BA,SAASuoG,GAAU,UACjBvoG,EAAS,SACT8nD,EAAQ,kBACR++C,EAAiB,MACjBvO,EAAQ,CAAErhG,SAAU,QAASsvG,iBAAiB,KAE9C,MAAMllG,EAAU,CACd,gBACArB,GACAoJ,OAAO4uB,SAASpiC,KAAK,KAEjB4wG,GAAe,IAAAF,UAAQ,KAAM,CACjCO,oBACAvO,WACE,CAACuO,EAAmBvO,IAExB,OACE,kBAAC,OAAIt4F,UAAWqB,GACd,kBAAC,EAAiBolG,SAAjB,CAA0B/vG,MAAO8vG,GAC/B1+C,GAIT,CAEAygD,EAAU/C,UAAY,CACpB19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEF9nD,UAAW,WACX6mG,kBAAmB,SACnBvO,MAAO,UAAgB,CACrBrhG,SAAU,UAAgB,CAAC,OAAQ,UACnCsvG,gBAAiB,YAIrBgC,EAAU7B,aAAe,CACvBG,mBAAmB,GAIrB0B,EAAUC,KAAO,EACjBD,EAAUC,KAAKC,OAAS,EACxBF,EAAUC,KAAKE,QAAU,EAGzB,uVCjDA,SAASC,EAAO9tG,EAAOsrG,GACrB,MAkBI,EAAAtrG,GAjBF+tG,aAAAA,EAAA,SACA9gD,EAAQ,SACRg+C,EAAQ,WACR+C,EAAU,aACVC,EAAY,SACZC,EAAQ,GACR9yG,EAAE,UACF+J,EAAS,SACT+H,EAAQ,QACR7E,EAAO,KACPN,EAAI,QACJojG,EAAO,QACPgD,EAAO,KACP7nE,EAAI,MACJ5Z,EAAK,KACLpgB,GAEE,EADCm+F,+JAAA,CACD,EADC,CAhBH,eACA,WACA,WACA,aACA,eACA,WACA,KACA,YACA,WACA,UACA,OACA,UACA,UACA,OACA,QACA,SAII2D,EAAgB,KACpB,MAAMC,EAAa,CAAC,cAAcn6E,OAAO/uB,EAAYA,EAAUvK,MAAM,KAAO,IACtE0zG,EAAahoE,EAAQ,eAAeA,IAAS,iBAC7CioE,EAAiBrhG,EAAY,WAAa,GAC1CshG,EAAenmG,GAAW,GAC1BomG,EAAa/hF,EAAQ,eAAeA,IAAU,GAC9CgiF,EAAgBR,EAAW,wBAA0B,GACrDS,EAAeR,EAAU,uBAAyB,GAaxD,OAXAE,EAAW/zG,KAAKo0G,GAChBL,EAAW/zG,KAAKm0G,GAChBJ,EAAW/zG,KAAKg0G,GAChBD,EAAW/zG,KAAKi0G,GAChBF,EAAW/zG,KAAKk0G,GAChBH,EAAW/zG,KAAKq0G,GAEZ1D,GACFoD,EAAW/zG,KAAK,QAAQ2zG,GAAgB,UAGnCI,EAAWtzG,KAAK,IAAI,EAGvB6zG,EAAiBxyG,GAIlB6uG,IAHUgD,GAAgB,UAGL7xG,EAClB,kBAAC,EAAI,CAACmuG,OAAQyD,EAAY1hG,KAAM2+F,IAChC,KAwDR,MApDsB,MACpB,IAAI4D,EAEJ,OAAId,EAEA,qCACI,IAAAe,cAAaf,EAAc,CAC3B5oG,UAAWipG,IACXlhG,eAON2hG,EADE9mG,EAEA,kBAAC,OACC3M,KACA+J,UAAWipG,IACXlhG,WACAi+F,UACApjG,OACAujG,OACIb,GAEFmE,EAAc,QACd3hD,EACA2hD,EAAc,UAMlB,kBAAC,YACCxzG,KACA+J,UAAWipG,IACXlhG,WACAi+F,UACA7+F,KAAMA,GAAQ,SACdg/F,OACIb,GAEFmE,EAAc,QACd3hD,GAAY,kBAAC,YAAMA,GACnB2hD,EAAc,UAKfC,EAAU,EAIjBE,EAEJ,CAEAjB,EAAOnD,UAAY,CAIjB19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEF8gD,aAAc,cAAoB,CAChC,YAAkB,UAClB,SACA,cAEF5oG,UAAW,WAIXkD,QAAS,WAIT6E,SAAU,SAIV9R,GAAI,WACJ2M,KAAM,WACNkmG,aAAc,WACdD,WAAY,WACZE,SAAU,SACVjD,SAAU,WACVkD,QAAS,SAIThD,QAAS,SAITz+E,MAAO,WAIPpgB,KAAM,WAINg6B,KAAM,YAGRwnE,EAAOjC,aAAe,CACpBn/E,MAAO,GACPpgB,KAAM,UAGR,SAAe,IAAAw/F,YAAWgC,GC7K1B,SAASkB,GAAY,UAAE7pG,EAAS,SAAE8nD,EAAQ,MAAEp4B,GAASy2E,GACnD,OACE,kBAAC,OAAIA,MAAUnmG,UAAW,6BAA6BA,KACpDg4B,QAAQtI,IAAU,kBAAC,aAAOA,GAC3B,kBAAC,OAAI1vB,UAAU,oBAAoB8nD,GAGzC,CAEA+hD,EAAYrE,UAAY,CACtB19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEF9nD,UAAW,WAAiBylG,WAC5B/1E,MAAO,WAAiB+1E,YAG1B,SAAe,IAAAkB,YAAWkD,GCpB1B,SAASC,GAAW,MAClBxoF,EAAQ,KAAI,SACZwmC,IAEA,OACE,kBAAC,OAAI9nD,UAAU,oBACZ8nD,GAAY,kBAAC,OAAI9nD,UAAU,4BAA4B8nD,GACvDxmC,GAAS,kBAAC,OAAIthB,UAAU,0BAA0BshB,GAGzD,CAEAwoF,EAAWtE,UAAY,CACrBlkF,MAAO,cAAoB,CACzB,YACA,SACA,aAEFwmC,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,UCzBA,SAASiiD,GAAS,MAChBC,EAAQ,eACRliD,IAEA,OACE,kBAAC,OAAI9nD,UAAW,wCAAwCgqG,KACtD,kBAAC,WACEliD,GAIT,CAEAiiD,EAASvE,UAAY,CACnBwE,MAAO,UAAgB,CAAC,MAAO,SAAU,WACzCliD,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,UCtBA,SAASmiD,GAAW,SAAEniD,IACpB,OACE,kBAAC,OAAI9nD,UAAU,oBACZ8nD,EAGP,CAEAmiD,EAAWzE,UAAY,CACrB19C,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,UChBA,SAASoiD,IAAU,SACjBj3B,EAAW,EAAC,SACZnrB,IAEA,OACE,kBAAC,MAAG9nD,UAAW,wCAAwCizE,WACpDnrB,EAGP,CAEAoiD,GAAU1E,UAAY,CACpBvyB,SAAU,WACVnrB,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,YCpBA,SAASqiD,IAAe,SACtBriD,IAEA,OACE,kBAAC,OAAI9nD,UAAU,yBACZ8nD,EAGP,CAEAqiD,GAAe3E,UAAY,CACzB19C,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,YClBA,SAASsiD,IAAa,SACpBtiD,IAEA,OACE,kBAAC,MAAG9nD,UAAU,uBACX8nD,EAGP,CAEAsiD,GAAa5E,UAAY,CACvB19C,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,YClBA,SAASuiD,IAAY,SACnBp3B,EAAW,EAAC,SACZnrB,IAEA,OACE,kBAAC,KAAE9nD,UAAW,4CAA4CizE,WACvDnrB,EAGP,CAEAuiD,GAAY7E,UAAY,CACtBvyB,SAAU,WACVnrB,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,YCpBA,SAASwiD,IAAc,SACrBxiD,IAEA,OACE,kBAAC,OAAI9nD,UAAU,wBACZ8nD,EAGP,CAEAwiD,GAAc9E,UAAY,CACxB19C,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,YCVA,SAASyiD,IAAK,UACZvqG,EAAY,UACZiD,EAAS,gBACT6kD,IAEA,OACE,kBAAC,OAAI7nD,MAAO,CAAEgD,UAAUjD,UAAW,YAAYA,KAC5C8nD,EAGP,CAEAyiD,GAAK/E,UAAY,CACfxlG,UAAW,WACXiD,OAAQ,cAAoB,CAC1B,WACA,aAEF6kD,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJyiD,GAAK9B,OAAS,EACd8B,GAAKC,KAAO,EACZD,GAAKE,OAAS,EACdF,GAAKG,MAAQ,GACbH,GAAKI,WAAa,GAClBJ,GAAKpF,KAAO,GACZoF,GAAKK,SAAW,GAChBL,GAAKM,QAAU,GAEf,YC7CM,GAA+B31G,QAAQ,WCAvC,GAA+BA,QAAQ,aCA7C,IAAgBm0C,EAAMyhE,EAAMC,KAC1B,IAAIpvG,EACJ,OAAO,YAAsBu/B,GAC3B,MAAMrc,EAAUzrB,KAOV43G,EAAUD,IAAcpvG,EAC9BI,aAAaJ,GACbA,EAAUE,YARI,KACZF,EAAU,KACLovG,GACH1hE,EAAKt1C,MAAM8qB,EAASqc,EACtB,GAI0B4vE,GACxBE,GACF3hE,EAAKt1C,MAAM8qB,EAASqc,EAExB,CACD,ECND,GATqBxkC,IACnB,MAAMyvG,GAAM,IAAAoB,UAIZ,OAHA,IAAAC,YAAU,KACRrB,EAAIc,QAAUvwG,CAAK,GAClB,CAACA,IACGyvG,EAAIc,OAAO,ECJpB,SAASgE,IAAO,UAAEjrG,EAAS,SAAE/I,EAAW,0BAAYi0G,GAAiB,IACnE,MAAM7pG,EAAU,CACd,UACApK,EACA+I,GACAoJ,OAAO4uB,SAASpiC,KAAK,KAEjBiX,EACJ,kBAAC,OAAI7M,UAAWqB,GACd,kBAAC,OAAIrB,UAAU,gBACf,kBAAC,OAAIA,UAAU,gBACf,kBAAC,OAAIA,UAAU,gBACf,kBAAC,OAAIA,UAAU,iBAInB,OAAOkrG,EACH,kBAAC,OAAIlrG,UAAU,wBAAwB6M,GACvCA,CACN,CAEAo+F,GAAOzF,UAAY,CAEjBxlG,UAAW,WAEX/I,SAAU,WAEVi0G,eAAgB,UAGlB,YCtBA,SAASC,IAAQ,SACfrjD,EAAQ,MAAEvgC,EAAK,QAAE6jF,EAAO,SAAEC,EAAQ,UAAErrG,IAWpC,MAAM8lG,EAAqB,YAAVv+E,EAAsB,QAAU,cAEjD,OACE,kBAAC,OAAIvnB,UAXE,CACL,cACA,gBAAgBunB,GAAS,SACzB8jF,GAAY,YACZrrG,GACAoJ,OAAO4uB,SAASpiC,KAAK,MAOrB,kBAAC,EAAI,CAACuR,KAAM2+F,IACZ,kBAAC,OAAI9lG,UAAU,wBACX8nD,GAEHsjD,GACC,kBAAC,EAAI,CAACjkG,KAAK,QAAQ6+F,QAASoF,IAIpC,CAEAD,GAAQ3F,UAAY,CAElBj+E,MAAO,WACPugC,SAAU,cAAoB,CAC5B,YACA,SACA,aAGF9nD,UAAW,WAEXqrG,SAAU,SAEVD,QAAS,UAGX,o719BCvCA,SAASE,IAAM,gBACbC,EAAe,WACfC,EAAU,QACVC,EAAO,UACPx9C,EAAS,KACT9mD,EAAI,OACJia,EAAM,OACNsqF,EAAM,SACNvrE,EAAQ,UACRwrE,EAAS,QACTC,EAAO,MACP5Q,EAAK,aACL6Q,EAAe,GACfC,gBAAiBC,EAAsB,KAAI,WAC3CC,EAAU,MACV/rG,IAEA,MAAOgsG,EAAkBC,IAAuB,IAAA7F,UAAS,MACnD8F,GAAkB,IAAA5E,QAAO,MACzBrhC,EAAW,KACX+lC,GACFA,EAAiBhmC,QACnB,EAGI6lC,GAAkB,IAAAxF,UACtB,IAAOyF,EACHA,IAEA,kBAAC,GAAO,CAACxkF,MAAM,QAAO,uBAI1B,CAACwkF,IAGGK,EAAe,CACnBC,aAAa,KAAAC,QAAO,CAClBtR,MAAO,CACLxzE,MAAM,EACNlP,KAAM0iF,EACN53F,KAAM,GAERmpG,MAAO,GACPC,QAAS,CACPlrF,MAAO,IACPmrF,OAAQ,aACRC,SAAU,GACVC,WAAW,EACXC,QAAS,MAEXC,SAAU,CAAC,CACTrlF,MAAM,EACN9Y,MAAO,EACPnV,IAAK,IACLkzG,OAAQ,aACRK,eAAgB,CACdC,UAAW,CACTR,OAAO,MAAAP,OAAA,EAAAA,EAAYe,YAAa,WAElCC,UAAW,CACTT,OAAO,MAAAP,OAAA,EAAAA,EAAYgB,YAAa,YAGpCC,YAAa,CACXV,OAAO,MAAAP,OAAA,EAAAA,EAAYiB,cAAe,WAEpCC,UAAW,CACTX,OAAO,MAAAP,OAAA,EAAAA,EAAYkB,YAAa,WAElCC,YAAa,cACbC,aAAa,MAAApB,OAAA,EAAAA,EAAYoB,cAAe,4BAE1CC,OAAQ,CACN7lF,MAAM,GAIRmF,QAAS,CACPo5E,QAAS,OACTuH,YAAa,CACXnmG,KAAM,UAGVomG,KAAM,CACJnqG,KAAM,KACNke,MAAO,KACPf,OAAQ,OACR3b,IAAK,OACL4oG,cAAc,GAEhBC,MAAO,CACLC,aAAa,EACbvmG,KAAM,WACNy1D,UAAW,CACTp1C,MAAM,EACNulF,UAAW,CACT5lG,KAAM,SACNolG,MAAO,YAGXoB,SAAU,CACRnmF,MAAM,GAERomF,SAAU,CACRpmF,MAAM,GAER/e,KAAM,IAERolG,MAAO,CACLv0G,IAAK,UACLo0G,aAAa,EACbJ,YAAa,CACX9lF,MAAM,GAERo1C,UAAW,CACTmwC,UAAW,CACT5lG,KAAM,SACNolG,MAAO,WAET/kF,MAAM,GAERsmF,UAAW,CACTtmF,MAAM,GAERmmF,SAAU,CACRnmF,MAAM,GAERomF,SAAU,CACRpmF,MAAM,GAERrgB,KAAM,SAER+lG,UAAW,CACTX,MAAO,WAETb,OAAQ,GACRqC,gBAAiB,eAEnBC,eAAe,KAAA1B,QAAO,CACpB7jG,KAAM,GACNtB,KAAM,OACN6lG,UAAW,CACTz0F,QAAS,EACTg0F,MAAOhB,EACH,IAAI,WAAgB0C,eACpB,EACA,EACA,EACA,EACA1C,EAAgBhzG,KAAI,CAACg0G,EAAOv0G,KAAU,CACpCsD,OAAQtD,EACRu0G,aAGF,IAEN2B,QAAQ,EACRC,WAAY,EACZ53G,KAAM,MAIJ63G,EAAW,CACf/B,aAAa,KAAAC,QAAO,CAClB3/E,QAAS,CACPo5E,QAAS,OACTsI,UAAW,mBAEbhB,OAAQ,CACNZ,OAAQ,aACRz6F,EAAG,OACHwR,EAAG,MACH/a,KAAM,IAER8jG,MAAO,GACPb,OAAQ,KAEVsC,eAAe,KAAA1B,QAAO,CACpBnlG,KAAM,MACN0nE,OAAQ,CACN,MACA,OAEFy/B,OAAQ,CACN,MACA,OAEFC,mBAAmB,EACnBC,cAAe,QACfT,gBAAiB,aACjBU,UAAW,CACTC,OAAQ,CACNlnF,MAAM,EACN0mF,OAAQ,GACRv6G,OAAQ,EACRg7G,QAAS,IAGblmG,KAAM,MAIJmmG,EAAW,CACfvC,aAAa,KAAAC,QAAO,CAClBZ,OAAQ,KAEVsC,eAAe,KAAA1B,QAAO,CACpBnlG,KAAM,MACNsB,KAAM,OA+CV,IAAA++F,YAAU,KACRn0G,OAAO6U,iBAAiB,SAAUg+D,GAE3B,KACL7yE,OAAOgV,oBAAoB,SAAU69D,EAAS,IAE/C,CAAC+lC,KAEJ,IAAAzE,YAAU,KACR,GAAK,MAAA2E,OAAA,EAAAA,EAAiBlF,QAKtB,OAHAiF,EAAoB,QAAaC,EAAgBlF,UAG1C,KACDgF,GACFA,EAAiB4C,SACnB,CACD,GACA,CAAC1C,EAAgBlF,UAEpB,MAAM6H,EAAiBvyG,IACjB4jC,GACFA,EAAS5jC,EACX,GAGF,IAAAirG,YAAU,KACR,IAAIuH,EAcJ,OAbI9C,IACF8C,EAAkBC,GAASF,EAAe,KAC1C7C,EAAiB3kG,GAAG,WAAYynG,GAChC9C,EAAiB3kG,GAAG,UAAWynG,GAC/B9C,EAAiB3kG,GAAG,QAASynG,GAE7B9C,EAAiB3kG,GAAG,aAAcxS,IAC5BA,EAAO2T,MACTwjG,EAAiBgD,QAAQh8E,eAAe,UAC1C,KAIG,KACDg5E,IACFA,EAAiBzkG,IAAI,WAAYunG,GACjC9C,EAAiBzkG,IAAI,UAAWunG,GAChC9C,EAAiBzkG,IAAI,QAASunG,GAChC,CACD,GACA,CAAC9C,EAAkB9rE,IAEtB,MAAM+uE,EAAe,GAAYjD,GAC3BkD,EAAa,GAAY/tF,GACzBguF,EAAW,GAAYjoG,GACvBkoG,EAAa,GAAY3D,IAC/B,IAAAlE,YAAU,KAtUZ,iBAwUMyE,IAEG,wBAAAK,QAAO4C,SAAP,IAAsBI,aAAtB,YAA+B,KAAAhD,QAAOL,OACnC,wBAAAK,QAAO6C,SAAP,IAAoBG,aAApB,YAA6B,KAAAhD,QAAOlrF,MACpCguF,IAAajoG,IACb,kBAAAmlG,QAAO+C,IAAYC,aAAnB,YAA4B,KAAAhD,QAAOZ,OAGzCO,EAAiBvqB,QACjBuqB,EAAiBjjG,UA7GK,EAACumG,EAAcC,EAAiBC,KACxD,IAAIC,EAAY,CAAC,EACjB,OAAQH,GACN,IAAK,MACHG,EAAYtB,EAAS/B,YAAYsD,WAAU,KAAArD,QAAOkD,IAAkBI,OAEpEH,EAAet3G,SAAS03G,IACtBH,EAAUhE,OAAOv2G,KAAKi5G,EAASJ,cAAc2B,WAAU,KAAArD,QAAOuD,IAAQD,OAAO,IAG/E,MAGF,IAAK,MACHF,EAAYd,EAASvC,YAAYsD,WAAU,KAAArD,QAAOkD,IAAkBI,OAEpEH,EAAet3G,SAAS03G,IACtBH,EAAUhE,OAAOv2G,KAAKy5G,EAASZ,cAAc2B,WAAU,KAAArD,QAAOuD,IAAQD,OAAO,IAG/E,MAGF,QACEF,EAAYtD,EAAaC,YAAYsD,WAAU,KAAArD,QAAOkD,IAAkBI,OACpEn3G,MAAMoB,QAAQ21G,EAAgB3B,SAChC6B,EAAU7B,MAAQ2B,EAAgB3B,OAGpC4B,EAAet3G,SAAQ,CAAC03G,EAAO73G,KAC7B,MAAM83G,EAAa,YACd1D,EAAa4B,cAAc4B,QAC3B/D,EAAa7zG,IACb63G,GAELH,EAAUhE,OAAOv2G,KAAK26G,EAAW,IAKvC,OAAOJ,CAAS,EAqEaK,CAAkB5oG,EAAMia,EAAQsqF,IAC3DO,EAAiB+D,eAAe,CAC9B7oG,KAAM,mBACN/O,IAAK,iBACL63G,sBAAsB,IAE1B,GACC,CAAChE,EAAkB7qF,EAAQsqF,EAAQvkG,KAEtC,IAAAqgG,YAAU,KACJyE,GAAoBh+C,IACtBg+C,EAAiB+D,eAAe,CAC9B7oG,KAAM,YACN+oG,YAAajiD,EAAUiiD,YACvBC,UAAWliD,EAAUkiD,YAEvBlE,EAAiB+D,eAAe,CAC9B7oG,KAAM,UACN+oG,YAAajiD,EAAUiiD,YACvBC,UAAWliD,EAAUkiD,YAEzB,GACC,CAACliD,IAEJ,MAAMmiD,EAAgB,GAAYzE,GAC5B0E,EAAc,GAAYzE,IAChC,IAAApE,YAAU,MAENyE,IACkB,IAAfN,IACa,IAAbC,GAEDwE,IAAkBzE,GACf0E,IAAgBzE,GAGrBK,EAAiB+D,eAAe,CAC9B7oG,KAAM,WACNmpG,WAAY3E,EACZ4E,SAAU3E,GAEd,GACC,CAACD,EAAWC,IAEf,MAYM4E,EAAe,KAClBhF,IAA2B,IAAZC,IAAiC,IAAZA,GAAqBA,EAiB5D,OACE,kBAAC,OAAIzrG,UAAU,sBAEVwrG,EAEG,KADA,kBAAC,GAAM,MAGb,kBAAC,OACCxrG,UAtBgB,MACpB,MAAMkpG,EAAa,CAAC,aAUpB,OARKsC,GACHtC,EAAW/zG,KAAK,4BAGbq7G,KACHtH,EAAW/zG,KAAK,sBAGX+zG,EAAWtzG,KAAK,IAAI,EAWZqzG,GACXhpG,MAvCW,MACf,MAAM2Y,EAAY3Y,GAAS,CAAC,EAQ5B,OANK2Y,EAAU3V,SACb2V,EAAU3V,OAAS,SAEhB2V,EAAU7V,QACb6V,EAAU7V,MAAQ,QAEb6V,CAAS,EA8BL63F,GACP,YAAWtpG,EACXg/F,IAAKgG,IAGLqE,IACI,KACA1E,EAIZ,CAlaA,eAAoB,QAAS,IAoa7BR,GAAM9F,UAAY,CAChB+F,gBAAiB,eAAqB9yG,OACtC+yG,WAAY,SACZC,QAAS,SACTx9C,UAAW,cAAoB,CAC7B,WACA,WACA,eAAqBx1D,SAEvBqzG,gBAAiB,SACjBH,UAAW,WACXC,QAAS,WACTI,WAAY,eAAqBt3G,QACjC0sB,OAAQ,eAAqB1sB,QAC7ByrC,SAAU,SACVlgC,MAAO,eAAqBvL,QAC5ByS,KAAM,WACN6zF,MAAO,WACP0Q,OAAQ,eAAqBjzG,OAC7BozG,aAAc,eAAqBn3G,SAGrC,UAAe,IAAAg8G,MAAKpF,kBCrcpB,MA2BA,GA3BmB,CAAC/2G,EAAU6H,KAC5B,MAAMu0G,GAAgB,IAAApJ,WAEtB,IAAAC,YACE,KACEmJ,EAAc1J,QAAU1yG,CAAQ,GAElC,CAACA,KAGH,IAAAizG,YACE,KAIE,GAAc,OAAVprG,EAAgB,CAClB,MAAMnG,EAAK4F,YAJb,WACE80G,EAAc1J,SAChB,GAE8B7qG,GAC5B,MAAO,IAAML,aAAa9F,EAC5B,CAEA,MAAO,MAAQ,GAEjB,CAACmG,GACF,iOCnBH,SAASw0G,GAAa/1G,GACpB,MAAM,SACJitD,EAAQ,QACRjoD,EAAO,QACPurG,EAAO,MACPpzG,GACE6C,EACEsP,2HAAO,EACXod,MAAO,UACPnrB,MAAO,KACJyD,GAICgxG,EAAeC,IACnB1F,EAAQ0F,GACR/0G,kBAJEN,EAIiB,EAKrB,OAFA,IAAW,IAAMo1G,EAAY74G,IAAQmS,EAAK/N,OAGxC,kBAAC,IACC4D,UAAU,qBACVunB,MAAOpd,EAAKod,MACZ6jF,QAAS,IAAMyF,EAAY74G,IAE1B8vD,EAGP,CAEA8oD,GAAapL,UAAY,CACvB19C,SAAU,cAAoB,CAC5B,YACA,SACA,aAEFjoD,QAAS,eAAqBnL,QAC9B02G,QAAS,SACTpzG,MAAO,YAGT,qaC1CA,SAAS+4G,GAAel2G,GACtB,MAAO8N,EAAU2B,IAAe,IAAA+7F,UAAS,CAAC,IACpC,OACJ2K,GACEn2G,EAEEo2G,EAAsB,CAACrnG,EAAS/J,KACpC,MAAMqxG,EAAQ93G,KAAKk8C,MAAsB,IAAhBl8C,KAAK+3G,UAE9B7mG,GAAa8mG,IAAkB,eAC1BA,WAD0B,CAE7B,CAACF,GAAQ,CACPtnG,UACA/J,mBAEF,GAAC,GAGL,IAAA2nG,YAAU,KACRwJ,EAAOC,EAAoB,GAC1B,CAACtoG,IAEJ,MAAM0oG,EAAmBr5G,WACF,MAAK2Q,GACN3Q,GACpBsS,GAAa8mG,IACX,MAAME,EAAc,MAAKF,GAEzB,cADOE,EAAYt5G,GACZs5G,CAAW,GAClB,EAGJ,OACE,kBAAC,OAAItxG,UAAU,wBAEXtL,OAAOwD,KAAKyQ,GAAUpQ,KAAK24G,GACzBvoG,EAASuoG,GAEL,kBAAC,IACCrxG,QAAS8I,EAASuoG,GAAOrxG,QAEzBurG,QAASiG,EAAgBj6F,KAAK,KAAM85F,GACpCl5G,MAAOk5G,EAEP94G,IAAK84G,GAEJvoG,EAASuoG,GAAOtnG,SAGnB,OAKd,CAEAmnG,GAAevL,UAAY,CACzBwL,OAAQ,UAGV,2bCnBA,MAEA,GAFc,IApCd,MACE,WAAA7qG,YAQA,8CAAcorG,IACZn+G,KAAKo+G,mBAAqBD,CAAE,IAR5B,MAAM5xG,EAAKL,SAASM,cAAc,OAClCD,EAAGK,UAAY,YACfV,SAASgE,KAAK9D,YAAYG,IACb,QAAWA,GACnB8xG,OAAO,kBAAC,GAAc,CAACT,OAAQ59G,KAAKs+G,aAC3C,CAMA,MAAAV,CAAOpnG,EAAS/J,GACVzM,KAAKo+G,oBACPp+G,KAAKo+G,mBAAmB5nG,EAAS/J,EAErC,CAEA,MAAA8xG,CAAO/nG,EAAS/J,GACdzM,KAAK49G,OAAOpnG,EAAS,SAAK/J,GAAL,CAAc0nB,MAAO,WAC5C,CAEA,OAAA0T,CAAQrxB,EAAS/J,GACfzM,KAAK49G,OAAOpnG,EAAS,SAAK/J,GAAL,CAAc0nB,MAAO,YAC5C,CAEA,OAAA2G,CAAQtkB,EAAS/J,GACfzM,KAAK49G,OAAOpnG,EAAS,SAAK/J,GAAL,CAAc0nB,MAAO,YAC5C,CAEA,IAAA4G,CAAKvkB,EAAS/J,GACZzM,KAAK49G,OAAOpnG,EAAS,SAAK/J,GAAL,CAAc0nB,MAAO,SAC5C,kOCnCF,SAASqqF,GAAgB/2G,GACvB,MAAM,QACJqI,EAAO,KAAEtJ,EAAI,SAAEkuD,EAAQ,OAAE1pC,EAAM,QAAExU,EAAU,UACzC/O,EACEg3G,GAAS,IAAAC,aACTt8E,GAAc,IAAA2xE,cAAY,KAK9B,GAJI/oF,GACFA,KAGG/qB,OAAO+J,UAAUua,UAIpB,OAHAk6F,EAAO5K,QAAQ5oF,SACf/e,SAASme,YAAY,aACrB,GAAMwd,QAAQrxB,GAGhBvW,OAAO+J,UAAUua,UAAUqe,UAAUp8B,GACrC,GAAMqhC,QAAQrxB,EAAQ,GACrB,CAACwU,EAAQyzF,IAEZ,OACE,oCACE,kBAACh3G,EAAM+F,iIAAN,EAAcolG,QAASxwE,EAAau8E,QAASv8E,GAAiB36B,GAC5DitD,GAAY5kD,GAEb7P,OAAO+J,UAAUua,UAIf,KAHF,kBAAC,YAASwuF,IAAK0L,EAAQ7xG,UAAU,wBAAwBzJ,KAAK,OAAOG,MAAOkD,GACzEA,GAKX,CAEAg4G,GAAgBpM,UAAY,CAE1B57F,QAAS,WAETwU,OAAQ,SAERxkB,KAAM,WAAiB6rG,WAEvBviG,QAAS,WAET4kD,SAAU,cAAoB,CAC5B,YACA,WACA,WACA,YAIJ,qCC3DA,SAASkqD,IAAY,SAAElqD,IACrB,OACE,kBAAC,OAAI9nD,UAAU,qBACX8nD,EAGR,CAEAkqD,GAAYxM,UAAY,CACtB19C,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,YChBA,SAASmqD,IAAU,SAAEnqD,IACnB,OACE,kBAAC,OAAI9nD,UAAU,mBACX8nD,EAGR,CAEAmqD,GAAUzM,UAAY,CACpB19C,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,2OCLA,SAASoqD,GAAM,YACbpqD,SAAAA,EAAA,MACAvgC,EAAQ,4BACR4qF,GAAuB,EAAK,OAC5BC,GAAS,EAAK,QACdhH,EAAU,SAAQ,KAClBjqE,EAAO,eACPnhC,EAAY,gBACZqyG,GAAe,GARF,EASVC,mKAAA,CATU,EASV,CARH,WACA,QACA,uBACA,SACA,UACA,OACA,YACA,iBAGA,MAAMC,EAAe,CACnB,YACA,oBAAoBhrF,IACpB6qF,GAAU,UACVrjF,OAAO/uB,EAAUvK,MAAM,MAAM2T,OAAO4uB,SAASpiC,KAAK,KAE9C48G,EAAkB,CACtB,sBACAJ,GAAU,UACVhpG,OAAO4uB,SAASpiC,KAAK,KAEjB68G,EAAY,CAChBx3E,QAAS,QACT/M,QAAS,cACTyjF,OAAQ,eACRpqF,GAEF,OACE,oCAEI,kBACE,kBAAC,EAAA0gF,cAAA,CACCG,GAAIgK,EACJz2G,QAAS,IACT0sG,WAAW,UAEX,kBAAC,iIAAIroG,UAAWuyG,GAAkBD,GAChC,kBAAC,OAAItyG,UAAW,gCAAgCmhC,KAC9C,kBAAC,OAAInhC,UAAU,sBACF,SAAVunB,GACC,kBAAC,OAAIvnB,UAAU,2BACb,kBAAC,EAAI,CAACmH,KAAMsrG,KAGd3qD,MAKVxoD,SAASsuB,cAAc,SAG1BykF,GAAgB,kBACf,kBAAC,EAAApK,cAAA,CACCG,GAAIgK,EACJz2G,QAAS,IACT0sG,WAAW,QAEX,kBAAC,UACCroG,UAAWwyG,EACXxM,QAAS,KAAOmM,GAAwB/G,IACxCsH,UAAW,OACXvrG,KAAK,SACL,aAAW,WAGf7H,SAASsuB,cAAc,SAI/B,CAEAskF,GAAM1H,KAAO,GACb0H,GAAMzH,OAAS,GAEfyH,GAAMzJ,OAAS,EAAG3gD,eAChB9zD,QAAQwV,KAAK,kCAAmC,oBAAqB,IAEnE,kBAAC,OAAIxJ,UAAU,qBACX8nD,IAIRoqD,GAAMzJ,OAAOjD,UAAY,CACvB19C,SAAU,aAGZoqD,GAAMxH,MAAQ,EAAG5iD,eACf9zD,QAAQwV,KAAK,iCAAkC,oBAAqB,IAElE,kBAAC,MAAGxJ,UAAU,oBACV8nD,IAIRoqD,GAAMxH,MAAMlF,UAAY,CACtB19C,SAAU,aAGZoqD,GAAM1M,UAAY,CAChB19C,SAAU,cAAoB,CAC5B,YACA,SACA,aAEF9nD,UAAW,WAEXunB,MAAO,WAEP4qF,qBAAsB,SAEtBC,OAAQ,SAERhH,QAAS,SAETjqE,KAAM,WACNkxE,aAAc,UAGhB,YC7HA,SAASM,GAAQ93G,GACf,MAAM,SACJitD,EAAQ,MACRkzC,EAAK,YACLhhC,EAAW,eACX44C,EAAiB,wBACjBC,EAAgB,UACdh4G,GACGqK,EAAM4tG,IAAW,IAAAzM,WAAS,IAC1B9xG,EAAUw+G,IAAe,IAAA1M,UAAS,OAClC2M,EAAgBC,IAAqB,IAAA5M,UAAS,MAa/C5+E,EAAO,KACXqrF,GAAQ,GACRC,EAAY,MACZE,EAAkB,KAAK,EAGnBr3G,EAAS,KACTo3G,GACFA,IAEFvrF,GAAM,EAQR,OACE,oCACGqgC,GA/BQ,CAACorD,EAAcC,EAAoBC,IAAmB,IAAIl4E,KACjEk4E,GACFA,KAAkBl4E,GAEpB43E,GAAQ,GACRC,GAAY,IAAM,IAAMG,KAAgBh4E,KACpCi4E,GACFF,GAAkB,IAAM,IAAME,KAAsBj4E,IACtD,IAwBE,kBAAC,IACCk3E,OAAQltG,EACRkmG,QAASxvG,GAET,kBAAC,GAAM4uG,KAAN,KACC,kBAAC,UAAIxP,GACJhhC,GAEH,kBAAC,GAAMywC,OAAN,KACC,kBAAC,GACCzE,QAASpqG,EACT2rB,MAAM,WAELsrF,GAEH,kBAAC,GACC7M,QAxBM,KACdzxG,IACAkzB,GAAM,EAuBEF,MAAM,WAELqrF,KAMb,CAEAD,GAAQnN,UAAY,CAElBoN,eAAgB,WAEhBC,cAAe,WAEf7X,MAAO,WAEPhhC,YAAa,WACblS,SAAU,cAAoB,CAC5B,YACA,WACA,WACA,SACA,YAIJ,YCxFA,SAASurD,IAAa,SAAEvrD,EAAQ,UAAE9nD,EAAS,WAAEszG,IAC3C,MAAMC,GAAkB,IAAAhM,QAAO,MAEzBiM,GAAe,IAAArM,cAAY,KAC/B,MAAMvmG,EAAU2yG,EAAgBtM,QAE3BrmG,IAIDvN,OAAOogH,QACT7yG,EAAQyrB,UAAU9qB,IAAI,+BAEtBX,EAAQyrB,UAAUrqB,OAAO,+BAC3B,GACC,CAACuxG,EAAgBtM,UAEdyM,GAAwB,IAAAvM,aAAY6H,GAASwE,EAAc,KAAM,CAACA,IAYxE,OAVA,IAAAhM,YAAU,KACJ8L,GACFjgH,OAAO6U,iBAAiB,SAAUwrG,GAG7B,KACLrgH,OAAOgV,oBAAoB,SAAUqrG,EAAsB,IAE5D,CAACA,EAAuBJ,IAGzB,kBAAC,OAAItzG,UAAW,qBAAqBA,IAAammG,IAAKoN,GACnDzrD,EAGR,CAEAurD,GAAa7N,UAAY,CACvB19C,SAAU,cAAoB,CAC5B,YACA,SACA,aAGF9nD,UAAW,WAIXszG,WAAY,UAGdD,GAAa3M,aAAe,CAC1B1mG,UAAW,IAGb,YCvDA,SAAS2zG,IAAiB,SACxB7rD,EAAQ,QACR8rD,EAAO,YACPC,EAAW,SACXC,EAAQ,WACRC,EAAU,SACVC,IAEA,MAAOC,EAAYC,IAAiB,IAAA7N,WAAS,GACvC8N,GAAe,IAAA5M,QAAO,MACtB6M,EAAe,EAAiBJ,IAEtC,IAAAxM,YAAU,KACJqM,GAAmC,mBAAbC,IACxBI,GAAc,GACdJ,EAASC,GACX,GACC,CAACF,IAEJ,MAAMQ,GAAa,IAAAlN,cAAY,KAC7B,IAAKgN,EAAalN,QAAS,OAAO,EAClC,MAAM,aAAEzmF,EAAY,UAAE6rC,GAAc8nD,EAAalN,QAEjD,OACE2M,IAEGpzF,EAAepnB,KAAKuL,MAAM0nD,KAAe+nD,EAAanxG,QACnDud,GAAgB4zF,EAAanxG,OAAO,GAG3C,CAACkxG,EAAcC,EAAanxG,SAEzBqxG,GAAe,IAAAnN,cAAY,KAC3ByM,GAA+B,mBAAbE,GACpBA,EAASC,EAAa,GACtBG,GAAc,IAEdA,GAAc,EAChB,GACC,CAACN,EAASG,IAEPQ,EAAiB,GAAYR,GAC7BS,GAAgB,IAAArN,aAAY6H,IAAS,KACrCqF,KAAgBE,GAAkBR,GACpCO,GACF,GACC,KAAM,CAACA,EAAcD,KAExB,IAAA7M,YAAU,KAzDZ,MA2DI,OADA,SAAA2M,EAAalN,UAAb,EAAsB/+F,iBAAiB,SAAUssG,GAC1C,KA3DX,IAAAnsF,EA2DiB,cAAAA,EAAA8rF,EAAalN,cAAb,EAAA5+E,EAAsBhgB,oBAAoB,SAAUmsG,EAAc,CAAd,GAChE,CAACL,EAAcK,KAGlB,IAAAhN,YAAU,KACJ+M,EAAiB,GAAoB,IAAfR,IACxBI,EAAalN,QAAQ56C,UAAY,EACnC,GACC,CAAC8nD,EAAcJ,IAElB,MAAMU,EAAmB,GAAYL,GAqBrC,OApBA,IAAA5M,YAAU,KAEN4M,GAAgBK,GACbL,EAAanxG,SAAWwxG,EAAiBxxG,SAC1B,IAAfgxG,GAEHC,GAAc,EAChB,GACC,CAACD,EAAYG,EAAanxG,UAE7B,IAAAukG,YAAU,KAENwM,GAAYI,EAAanxG,OAASkxG,EAAalN,QAAQzmF,cACpD4zF,EAAanxG,QACb2wG,GAEHU,GACF,GACC,CAACH,EAAcC,EAAcJ,EAAUJ,IAGxC,kBAAC,OAAI5zG,UAAU,yBACb,kBAAC,OACCA,UAAU,iCACVmmG,IAAKgO,GAEHrsD,GAEHmsD,GACC,kBAAC,GAAM,CAACh9G,SAAS,aAIzB,CAEA08G,GAAiBnO,UAAY,CAC3B19C,SAAU,EAAA4sD,UAAUC,UAAU,CAC5B,EAAAD,UAAUE,QAAQ,EAAAF,UAAUjzG,MAC5B,EAAAizG,UAAUjzG,KACV,EAAAizG,UAAU9zG,QACV,EAAA8zG,UAAUj9G,SAEZm8G,QAAS,EAAAc,UAAUG,KACnBhB,YAAa,EAAAa,UAAUG,KACvBd,WAAY,EAAAW,UAAU76F,OACtBi6F,SAAU,EAAAY,UAAUrrE,KACpB2qE,SAAU,EAAAU,UAAUI,WAAWpgH,SAGjCi/G,GAAiBjN,aAAe,CAC9BkN,SAAS,GAGX,2OC9GA,SAASmB,IAAkB,QACzBn0G,EAAO,KACPugC,EAAO,oBACP6zE,EAAe,mBACfC,EAAc,yBACdC,EAAiB,OACjB55G,EAAS,EAAC,UACV0E,EAAS,SACT8nD,EAAQ,uBACRqtD,GACChP,GACD,MAAMiP,GAAW,IAAA7N,QAAO,MAClB8N,EAAuBlP,GAAOiP,EAC9BE,GAAoB,IAAA/N,QAAO,MAE3BgO,GAAiB,IAAAhO,QAAO,MAwG9B,OAPA,IAAAC,YAAU,KACRn0G,OAAO0jB,uBAAsB,SAASy+F,KAjDxC,WA7EF,MA8EI,MAAMtyG,EAA2B,SAAjB8xG,EAA0BA,EAhD5C,WACE,MAAMn9G,EAAS+I,EAAQqmG,QACjB5kG,EAAYgzG,EAAqBpO,QACvC,IAAK5kG,EAAW,OAAO,MAAA6yG,EAAAA,EAAqC,aAAhBD,GAA6B,SAAW,QAEpF,MAAM,KAAE7xG,EAAI,IAAEwB,GAAQ/M,EAAOmjB,wBACvBy6F,EAAW7wG,EACX8wG,EAAcriH,OAAOq4B,YAAc9mB,EAAM/M,EAAO8vB,aAChDguF,EAAYvyG,EACZk/F,EAAajvG,OAAOy4B,WAAa1oB,EAAOvL,EAAO2L,YAC/CoyG,EAAcH,EAAWpzG,EAAU68E,aACnC22B,EAAiBH,EAAcrzG,EAAU68E,aACzC42B,EAAeH,EAAYtzG,EAAUmB,YACrCuyG,EAAgBzT,EAAajgG,EAAUmB,YACvCwyG,EAAqC5yG,EAAOvL,EAAO2L,YAAc,EAAInB,EAAUmB,YAAc,EAAI,EACjGyyG,EAAuCrxG,EAAM/M,EAAO8vB,aAAe,EAAItlB,EAAU68E,aAAe,EAAI,EAE1G,MACkB,aAAhB+1B,GAEkB,SAAhBA,IACIW,GAAeC,IAChBG,EAiJX,UAA+B,kBAC7Bd,EAAiB,YAAEU,EAAW,eAAEC,EAAc,SAAEJ,EAAQ,YAAEC,IAE1D,MAA0B,QAAtBR,GAA+BU,EAAoB,MAC7B,WAAtBV,GAAkCW,GAC/BA,GAAkBH,EAAcD,EADsB,SACA,KAC/D,CApJaS,CAAsB,CAC3BhB,oBAAmBU,cAAaC,iBAAgBJ,WAAUC,gBAI1C,eAAhBT,EAiJR,UAAiC,kBAC/BC,EAAiB,aAAEY,EAAY,cAAEC,EAAa,UAAEJ,EAAS,WAAErT,IAE3D,MAA0B,SAAtB4S,GAAgCY,EAAqB,OAC/B,UAAtBZ,GAAiCa,GAC9BA,GAAiBzT,EAAaqT,EADsB,QACA,MAC7D,CAtJaQ,CAAwB,CAC7BjB,oBAAmBY,eAAcC,gBAAeJ,YAAWrT,eAuJnE,UAA+B,kBAC7B4S,EAAiB,YAAEU,EAAW,eAAEC,EAAc,aAAEC,EAAY,cAAEC,EAAa,qCAC3EE,EAAoC,mCAAED,IAEtC,OAAIJ,GAAeI,EAA2C,MAC1DH,GAAkBG,EAA2C,SAC7DD,GAAiBE,EAA6C,QAC9DH,GAAgBG,EAA6C,OAC1D,MAAAf,EAAAA,EAAqB,QAC9B,CA5JWkB,CAAsB,CAC3BlB,oBACAU,cACAC,iBACAC,eACAC,gBACAE,uCACAD,sCAEJ,CAG2DK,GACnDx+G,EAAS+I,EAAQqmG,QACjB5kG,EAAYgzG,EAAqBpO,QAEvC,IAAKpvG,IAAWwK,EAAW,OAE3B,MAAMi0G,EAAiBz+G,EAAOmjB,yBACtB5X,KAAMmzG,EAAQ3xG,IAAK4xG,GAAU,SAAAjB,EAAetO,SAAf,EAA0B,CAAE7jG,KAAM,EAAGwB,IAAK,GA0B/E,GAxBgB,QAAZ1B,GACFxO,OAAOkD,OAAOyK,EAAUpC,MAwI9B,UAAyB,UACvBoC,EAAS,eAAEi0G,EAAc,OAAEz+G,EAAM,KAAEspC,EAAI,OAAE7lC,EAAM,OAAEi7G,EAAM,MAAEC,IAEzD,MAAMv2G,EAAQ,CAAC,EACTw2G,EAAU,CACdC,KAAMJ,EAAelzG,KAAOvL,EAAO2L,YAAc,EAAInB,EAAUmB,YAAc,EAC7EmzG,aAAcL,EAAelzG,KAC7BwzG,WAAYN,EAAelzG,KAC3ByzG,SAAUP,EAAeh1F,MAAQjf,EAAUmB,aAC3C29B,GACI21E,EAASR,EAAe1xG,IAAMvC,EAAUslB,aAAersB,EAY7D,OAXA2E,EAAMmD,KAAO,GAAGqzG,EAAUF,MAC1Bt2G,EAAM2E,IAAM,GAAGkyG,EAASN,MAEX,iBAATr1E,EACFlhC,EAAM8C,MAAQ,GAAGlL,EAAO2L,gBACN,aAAT29B,EACTlhC,EAAM82G,SAAcT,EAAeh1F,MA1ON,EA0OZ,KACQ,mBAAT6f,IAChBlhC,EAAM8C,MAAQ,GAAGo+B,EAAKtpC,EAAO2L,kBAE/BvD,EAAMqrB,UAAegrF,EAAe1xG,IAAMtJ,EAAxB,KACX2E,CACT,CA/JqC+2G,CAAgB,CAC7C30G,YAAWi0G,iBAAgBz+G,SAAQspC,OAAM7lC,SAAQi7G,SAAQC,WAI7C,WAAZtzG,GACFxO,OAAOkD,OAAOyK,EAAUpC,MA2J9B,UAA4B,eAC1Bq2G,EAAc,OAAEz+G,EAAM,UAAEwK,EAAS,KAAE8+B,EAAI,OAAE7lC,EAAM,OAAEi7G,EAAM,MAAEC,IAEzD,MAAMv2G,EAAQ,CAAC,EACTw2G,EAAU,CACdC,KAAMJ,EAAelzG,KAAOvL,EAAO2L,YAAc,EAAInB,EAAUmB,YAAc,EAC7EmzG,aAAcL,EAAelzG,KAC7BwzG,WAAYN,EAAelzG,KAC3ByzG,SAAUP,EAAeh1F,MAAQjf,EAAUmB,aAC3C29B,GACI21E,EAASR,EAAe/1F,OAASjlB,EAYvC,OAXA2E,EAAMmD,KAAO,GAAGqzG,EAAUF,MAC1Bt2G,EAAM2E,IAAM,GAAGkyG,EAASN,MAEX,iBAATr1E,EACFlhC,EAAM8C,MAAQ,GAAGlL,EAAO2L,gBACN,aAAT29B,EACTlhC,EAAM82G,SAAcT,EAAeh1F,MAnQN,EAmQZ,KACQ,mBAAT6f,IAChBlhC,EAAM8C,MAAQ,GAAGo+B,EAAKtpC,EAAO2L,kBAE/BvD,EAAMqrB,UAAej4B,OAAOq4B,YAAc4qF,EAAe/1F,OAASjlB,EAAhD,KACX2E,CACT,CAlLqCg3G,CAAmB,CAChD50G,YAAWi0G,iBAAgBz+G,SAAQspC,OAAM7lC,SAAQi7G,SAAQC,WAI7C,SAAZtzG,GACFxO,OAAOkD,OAAOyK,EAAUpC,MA8K9B,UAA0B,eACxBq2G,EAAc,OAAEz+G,EAAM,UAAEwK,EAAS,KAAE8+B,EAAI,OAAE7lC,IAEzC,MAAM2E,EAAQ,CAAC,EACTw2G,EAAUH,EAAelzG,KAAOf,EAAUmB,YAAclI,EACxDw7G,EAAS,CACbJ,KAAMJ,EAAe1xG,IAAM/M,EAAO8vB,aAAe,EAAItlB,EAAUslB,aAAe,EAC9EgvF,aAAcL,EAAe1xG,IAC7BgyG,WAAYN,EAAe1xG,IAC3BiyG,SAAUP,EAAe/1F,OAASle,EAAUslB,cAC5CwZ,GAUF,OATAlhC,EAAMmD,KAAO,GAAGqzG,MAChBx2G,EAAM2E,IAAM,GAAGkyG,MAEF,iBAAT31E,EACFlhC,EAAMgD,OAAS,GAAGpL,EAAO8vB,iBACA,mBAATwZ,IAChBlhC,EAAMgD,OAAS,GAAGk+B,EAAKtpC,EAAO8vB,mBAEhC1nB,EAAM82G,SAAcT,EAAelzG,KAAO9H,EAAzB,KACV2E,CACT,CAnMqCi3G,CAAiB,CAC9CZ,iBAAgBz+G,SAAQwK,YAAW8+B,OAAM7lC,YAI7B,UAAZ4H,GACFxO,OAAOkD,OAAOyK,EAAUpC,MA+L9B,UAA2B,eACzBq2G,EAAc,OAAEz+G,EAAM,UAAEwK,EAAS,KAAE8+B,EAAI,OAAE7lC,EAAM,OAAEi7G,EAAM,MAAEC,IAEzD,MAAMv2G,EAAQ,CAAC,EACTw2G,EAAUH,EAAelzG,KAAOvL,EAAO2L,YAAclI,EACrDw7G,EAAS,CACbJ,KAAMJ,EAAe1xG,IAAM/M,EAAO8vB,aAAe,EAAItlB,EAAUslB,aAAe,EAC9EgvF,aAAcL,EAAe1xG,IAC7BgyG,WAAYN,EAAe1xG,IAC3BiyG,SAAUP,EAAe/1F,OAASle,EAAUslB,cAC5CwZ,GAUF,OATAlhC,EAAMmD,KAAgB,SAAT+9B,EAAkB,GAAGs1E,EAAUF,MAAa,GAAGE,MAC5Dx2G,EAAM2E,IAAe,SAATu8B,EAAkB,GAAG21E,EAASN,MAAY,GAAGM,MAE5C,iBAAT31E,EACFlhC,EAAMgD,OAAS,GAAGpL,EAAO8vB,iBACA,mBAATwZ,IAChBlhC,EAAMgD,OAAS,GAAGk+B,EAAKtpC,EAAO8vB,mBAEhC1nB,EAAM82G,SAAc1jH,OAAOy4B,WAAawqF,EAAelzG,KAAOvL,EAAO2L,YAAclI,EAAlE,KACV2E,CACT,CApNqCk3G,CAAkB,CAC/Cb,iBAAgBz+G,SAAQwK,YAAW8+B,OAAM7lC,SAAQi7G,SAAQC,WAI9B,OAA3BjB,EAAetO,QAEnB,GAAa,aAAT9lE,EACFo0E,EAAetO,QAAU,CAAE7jG,KAAM,EAAGwB,IAAK,OACpC,CACL,MAAMxB,EAAOiW,OAAOhX,EAAUpC,MAAMmD,KAAKtN,QAAQ,KAAM,KACjD8O,EAAMyU,OAAOhX,EAAUpC,MAAM2E,IAAI9O,QAAQ,KAAM,KACrDy/G,EAAetO,QAAU,CACvB7jG,KAAMA,EAAO,EAhHY,EAgHmBA,EAAO,EACnDwB,IAAKA,EAAM,EAjHc,EAiHiBA,EAAM,EAEpD,CACF,EAIIwyG,GACA/jH,OAAO0jB,sBAAsBy+F,EAC/B,GAAE,GACD,KAEI,KAAA6B,cACL,kBAAC,OACCr3G,UAAW,sBAAsBA,GAAa,KAC9CmmG,IAAKkP,GAEL,kBAAC,8HACCrB,SAAUsB,GACNH,GAEJ,kBAAC,OACCn1G,UAAU,sCACVmmG,IAAKmP,GAEJxtD,KAIPxoD,SAASsuB,cAAc,QAE3B,CAEAmnF,GAAkBvP,UAAY,CAE5B5kG,QAAS,eAAqBlM,QAC9BsL,UAAW,WAQXmhC,KAAM,cAAoB,CACxB,UAAgB,CAAC,OAAQ,eAAgB,aAAc,aACvD,WAMF7lC,OAAQ,WAOR05G,aAAc,UAAgB,CAAC,OAAQ,MAAO,SAAU,OAAQ,UAKhEC,YAAa,UAAgB,CAAC,OAAQ,WAAY,eAIlDC,kBAAmB,UAAgB,CAAC,MAAO,SAAU,OAAQ,UAI7DC,uBAAwB,eAAqBzgH,SAG/C,UAAe,IAAAiyG,YAAWoO,IC9L1B,SAASuC,IAAS,SAAExvD,IAClB,OACE,kBAAC,OAAI9nD,UAAU,iBACb,kBAAC,GAAO,CAACunB,MAAM,QACXugC,GAIV,CAEAwvD,GAAS9R,UAAY,CACnB19C,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,YCpBA,SAASyvD,GAAS18G,GAChB,MAAM,UACJmF,EAAS,SACT8nD,EAAQ,SACRryB,GACE56B,EAEJ,OACE,kBAAC,MAAGmF,UAAW,GAAGA,KAAay1B,EAAW,2BAA6B,MACpEqyB,EAGP,CAEAyvD,GAAS/R,UAAY,CACnB19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEF9nD,UAAW,WACXy1B,SAAU,UAGZ8hF,GAAS7Q,aAAe,CACtB1mG,UAAW,IAGb,YC5BA,SAASw3G,GAAK38G,GACZ,MAAM,UACJmF,EAAS,SACT8nD,EAAQ,MACRp4B,EAAK,WACL+nF,EAAU,MACVlwF,EAAK,MACLtnB,GACEpF,EAyBJ,OACE,kBAAC,OAAImF,UAAW,sBAAqBy3G,EAAa,8BAAgC,UAEpE,IAAV/nF,EAEI,kBAAC,SAAMzvB,MAAO,CACZy3G,UAAWD,GAAc,SAGvB/nF,GAGJ,KAEN,kBAAC,MAAG1vB,UArCc,MACpB,IAAIkpG,EAAa,CAAC,YAUlB,OARI3hF,GACF2hF,EAAW/zG,KAAK,aAAaoyB,KAG3BvnB,IACFkpG,EAAaA,EAAWn6E,OAAO/uB,EAAUvK,MAAM,OAG1CyzG,EAAWtzG,KAAK,IAAI,EA0BVqzG,GAAiBhpG,MAvBf,MACnB,MAAM03G,EAAYC,gBAAgB33G,GAKlC,OAJIw3G,IACFE,EAAUD,UAAY,eAAeD,aAGhCE,CAAS,EAiByBE,IACpC/vD,GAIT,CAEA0vD,GAAKhS,UAAY,CACf19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEF9nD,UAAW,WACX0vB,MAAO,WACP+nF,WAAY,WACZlwF,MAAO,WACPtnB,MAAO,eAAqBvL,SAG9B8iH,GAAK9Q,aAAe,CAClBn/E,MAAO,UACPtnB,MAAO,CAAC,GAGVu3G,GAAKhP,KAAO,GAEZ,YC5EA,SAASsP,IAAO,MACd9N,EAAQ,kBACRliD,EAAQ,KACR1kD,EAAI,MACJke,EAAK,MACL05E,EAAK,IACL+c,EAAG,SACHC,EAAQ,SACRC,IAEA,MAAMC,EAAkBF,EAAW,kBAAC,KAAEh4G,UAAU,sBAAuBg4G,GAAiB,KACxF,OACE,kBAAC,WAAQh4G,UAAW,gBAAei4G,EAAW,yBAA2B,KACvE,kBAAC,OAAIj4G,UAAW,2CAA2CgqG,KACxD+N,GACC,kBAAC,OAAI/3G,UAAU,oBAAoB+3G,GAGnC/c,EAEI,kBAAC,WACC,kBAAC,UAAKA,GACJkd,GAGJA,EAEN,kBAAC,OAAIl4G,UAAU,0BACZoD,GACC,kBAAC,OAAIpD,UAAU,qBAAsBoD,GAEtCke,GACC,kBAAC,OAAIthB,UAAU,sBAAuBshB,KAI1CwmC,EAGR,CAEAgwD,GAAOtS,UAAY,CACjBwE,MAAO,WACPliD,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEFkzC,MAAO,WACPgd,SAAU,WACVD,IAAK,cAAoB,CACvB,YACA,WAEF30G,KAAM,cAAoB,CACxB,YACA,WAEFke,MAAO,cAAoB,CACzB,YACA,WAEF22F,SAAU,UAGZ,YClEA,SAASE,IAAe,SAAErwD,IACxB,OACE,kBAAC,MAAG9nD,UAAU,uBACX8nD,EAGP,CAEAqwD,GAAe3S,UAAY,CACzB19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,cAIJ,YChBA,SAASswD,IAAW,SAAEtwD,IACpB,OACE,kBAAC,MAAG9nD,UAAU,kBACX8nD,EAGP,CAEAswD,GAAW5S,UAAY,CACrB19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,cAIJswD,GAAW5P,KAAO,GAElB,YCrBa6P,IAAgB,IAAAnT,gcCI7B,SAASoT,GAAU,YACjBxwD,SAAAA,EAAA,UACAywD,EAAS,UACTv4G,GAHiB,EAIdslG,mKAAA,CAJc,EAId,CAHH,WACA,YACA,cAGA,MAAM2D,GAAgB,IAAA9B,cACpB,IAAM,CACJ,kBACAnnG,EACAu4G,GAAa,cACbnvG,OAAO4uB,SAASpiC,KAAK,MACvB,CAACoK,EAAWu4G,IAGd,OACE,kBAACF,GAAcG,SAAd,MAEIC,GACCA,EAAcC,YAEV,kBAAC,WACKpT,GADL,CAECK,UAAW8S,EAAc9S,UACzB3lG,UAAWipG,MAETnhD,GAIJ,kBAAC,eACKw9C,GADL,CAECtlG,UAAWipG,MAETnhD,IAOlB,CAEAwwD,GAAU9S,UAAY,CACpB19C,SAAU,cAAoB,CAC5B,YACA,SACA,aAEFywD,UAAW,SACXv4G,UAAW,YAGb,YCxDA,SAAS24G,GAAY99G,GACnB,MAAM,SAAEitD,GAAajtD,EACrB,OACE,kBAAC,OAAImF,UAAU,qBACX8nD,EAGR,CAEA6wD,GAAYnT,UAAY,CACtB19C,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,YCdA,MAAM8wD,WAAoB,EAAAC,UACxB,aAAA5P,CAAcpuG,GACZ,MAAM,UAAEmF,GAAc5M,KAAKyH,MAC3B,IAAIquG,EAAa,CAAC,qBAUlB,OARIruG,EAAM69G,aACRxP,EAAW/zG,KAAK,eAGd6K,IACFkpG,EAAaA,EAAWn6E,OAAO/uB,EAAUvK,MAAM,OAG1CyzG,EAAWtzG,KAAK,IACzB,CAEA,MAAA67G,GACE,MAAM,SACJ3pD,GACE10D,KAAKyH,MAET,OACE,kBAACw9G,GAAcG,SAAd,MAEIC,IACC,MAAMK,EAAoC,UAAxBL,EAAclxF,MAAoB,KAAO,MACrDu+E,EAAW2S,EAAc9S,UAAY,eAAiB,aAE5D,OACE,kBAACmT,EAAA,CACC94G,UAAW5M,KAAK61G,cAAcwP,GAC9BzS,QAASyS,EAAcC,YAAcD,EAAcM,cAAW,GAE5DjxD,EAEA2wD,EAAcC,YACV,kBAAC,OAAI14G,UAAW,sBAAsBy4G,EAAcO,2BAA2B,kBAAC,EAAI,CAAC7xG,KAAM2+F,KAC3F,KAER,GAMZ,EAGF8S,GAAYpT,UAAY,CACtB19C,SAAU,cAAoB,CAC5B,YACA,SACA,aACC29C,WACHzlG,UAAW,YAGb,YCrDA,SAASi5G,GAAMp+G,GACb,MAAM,SACJitD,EAAQ,UACR9nD,EAAS,UACT2lG,EAAS,YACT+S,EAAW,MACXnxF,EAAK,iBACL2xF,EAAgB,wBAChBF,EAA0B,SACxBn+G,GACGs+G,EAAgBC,IAAqB,IAAA/S,UAASV,IAAa,IAElE,IAAA6B,YAAU,KACJ7B,IAAcwT,GAChBC,EAAkBzT,EACpB,GACC,CAACA,IAEJ,MAmBM0T,GAAe,IAAAlS,cAAY,KAC/BiS,GAAmBD,GAEfD,GACFA,GAAkBC,EACpB,GACC,CAACA,EAAgBD,IAEdr6F,GAAU,IAAAynF,UAAQ,KAAM,CAC5BoS,cACA/S,UAAWwT,EACXJ,SAAUM,EACV9xF,QACAyxF,6BACE,CAACN,EAAaS,EAAgBH,EAAyBzxF,EAAO8xF,IAElE,OACE,kBAAC,OAAIr5G,UApCe,MACpB,IAAIkpG,EAAa,CAAC,aAClB,MAAMoQ,EAAa,cAAc/xF,GAAS,YACpCgyF,EAAyB,6BAA6BP,IAa5D,OAXA9P,EAAW/zG,KAAKmkH,GAChBpQ,EAAW/zG,KAAKokH,GAEZv5G,IACFkpG,EAAaA,EAAWn6E,OAAO/uB,EAAUvK,MAAM,OAG7C0jH,GACFjQ,EAAW/zG,KAAK,wBAGX+zG,EAAWtzG,KAAK,IAAI,EAoBXqzG,IACd,kBAACoP,GAAc5R,SAAd,CAAuB/vG,MAAOmoB,GAEN,mBAAbipC,EACJA,EAAS,CACT0xD,eAAgBH,IAEhBvxD,GAKd,CAEAmxD,GAAMzT,UAAY,CAChB19C,SAAU,cAAoB,CAC5B,SACA,YACA,SACA,aAEF9nD,UAAW,WACX04G,YAAa,SACbM,wBAAyB,WACzBrT,UAAW,SACXp+E,MAAO,WACP2xF,iBAAkB,UAGpBD,GAAMzO,KAAO,GACbyO,GAAMxO,OAAS,GACfwO,GAAMxQ,OAAS,GAEf,YC3FA,SAASgR,GAAK5+G,GACZ,MAAM,SACJitD,EAAQ,UACR9nD,EAAS,MACTunB,GACE1sB,EAYJ,OACE,kBAAC,OAAImF,UAXe,MACpB,IAAIkpG,EAAa,CAAC,cAAe3hF,EAAM9xB,MAAM,KAAK8C,KAAK2iB,GAAM,aAAaA,OAM1E,OAJIlb,IACFkpG,EAAaA,EAAWn6E,OAAO/uB,IAG1BkpG,EAAWtzG,KAAK,IAAI,EAIXqzG,IACbnhD,EAGP,CAEA2xD,GAAKjU,UAAY,CACf19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAGF9nD,UAAW,WAEXunB,MAAO,YAGTkyF,GAAK/S,aAAe,CAClBn/E,MAAO,WAGT,gBC/CA,yWAOA,MAAMmyF,GAAN,cACE,WAAS,MAET,WAAS,MAET,WAAU,MAEV,WAAW,MAEX,WAA2B,IAE3B,WAAwB,IAExB,WAAsB,IAEtB,YAAe,GAMf,EAAApyG,CAAGR,EAAW0P,GACZ,IAAI63B,EAAO,KACO,mBAAdvnC,EACFunC,EAAO,GAAAj7C,KAAK,IACW,gBAAd0T,EACTunC,EAAO,GAAAj7C,KAAK,IACW,cAAd0T,IACTunC,EAAO,GAAAj7C,KAAK,KAGVi7C,GACFj7C,KAAK2f,YAAYs7B,EAAM73B,EAE3B,CAEA,GAAAhP,CAAIV,EAAW0P,GACb,IAAI63B,EAAO,KACO,mBAAdvnC,EACFunC,EAAO,GAAAj7C,KAAK,IACW,gBAAd0T,EACTunC,EAAO,GAAAj7C,KAAK,IACW,cAAd0T,IACTunC,EAAO,GAAAj7C,KAAK,KAGVi7C,GACFj7C,KAAKgV,eAAeimC,EAAM73B,EAE9B,CAQA,OAAAmjG,CAAQC,EAASC,EAAOptF,IAClB,GAAAr5B,KAAK,KAAU,GAAAA,KAAK,KAAW,GAAAA,KAAK,MACtCA,KAAK0mH,eAEP,GAAA1mH,KAAK,GAAWwmH,GAChB,GAAAxmH,KAAK,GAASymH,GACd,GAAAzmH,KAAK,GAAUq5B,GACf,GAAAr5B,KAAK,GAAS,MACdA,KAAK2mH,YACP,CAKA,UAAAA,GACE3mH,KAAK4mH,WAAW,cAChB,GAAA5mH,KAAK,IAAQ8U,iBAAiB,YAAa9U,KAAK8uB,YAAY9K,KAAKhkB,OACjEkM,SAAS4I,iBAAiB,YAAa9U,KAAK42B,YAAY5S,KAAKhkB,OAC7DkM,SAAS4I,iBAAiB,UAAW9U,KAAKugB,UAAUyD,KAAKhkB,MAC3D,CAMA,SAAAs0B,GAGE,OAFAt0B,KAAK4mH,WAAW,aACH,GAAA5mH,KAAK,IAAO4nB,wBACb/X,MACd,CAMA,WAAAif,CAAY3lB,GACVnJ,KAAK4mH,WAAW,eAChB,GAAA5mH,KAAK,GAAS,CACZ6mH,WAAW,EACXC,YAAa,GAAA9mH,KAAK,IAAO4nB,wBACzBm/F,aAAc59G,GAElB,CAMA,WAAAytB,CAAYztB,GAGV,GAFAnJ,KAAK4mH,WAAW,gBAEX,GAAA5mH,KAAK,IACR,OAIF,IADqBA,KAAKgnH,yBAAyB79G,GAGjD,YADAnJ,KAAKugB,YAIF,GAAAvgB,KAAK,MACR,GAAAA,KAAK,IAAe,GACpBA,KAAKi/B,YAAYjb,KAAKhkB,KAAtBA,IAGF,MAAMinH,EAAO,GAAAjnH,KAAK,IAAO+mH,aAAa32F,EAAIjnB,EAAEinB,EACtC82F,EAAclhH,KAAK4lE,KAAK,GAAA5rE,KAAK,IAAO8mH,YAAYj3G,OAASo3G,GAC/DjnH,KAAKisF,UAAU,GAAGi7B,MAAiB,YACrC,CAGA,eAAAC,CAAgBlsE,EAAM33C,GAChB23C,GAAQ51C,MAAMoB,QAAQw0C,IAASA,EAAK16C,QACtC06C,EAAKl2C,SAASo5G,IACM,mBAAPA,GACTA,EAAG76G,EACL,GAGN,CAGA,WAAAqc,CAAYs7B,EAAM73B,GACZ63B,GAAQ51C,MAAMoB,QAAQw0C,IAA6B,mBAAb73B,GACxC63B,EAAKl5C,KAAKqhB,EAEd,CAGA,cAAApO,CAAeimC,EAAM73B,GACnB,GAAI63B,GAAQ51C,MAAMoB,QAAQw0C,IAA6B,mBAAb73B,GAA2B63B,EAAK16C,OAAQ,CAChF,MAAMqE,EAAQq2C,EAAK94C,QAAQihB,GAEvBxe,GAAS,GACXq2C,EAAKrzC,OAAOhD,EAAO,EAEvB,CACF,CAEA,SAAA+6B,GACM,GAAA3/B,KAAK,KACPA,KAAKmnH,gBAAgB,GAAAnnH,KAAK,IAAqBA,KAAKs0B,YAExD,CAEA,WAAA2K,GACEj/B,KAAKmnH,gBAAgB,GAAAnnH,KAAK,IAAuBA,KAAKs0B,YACxD,CAGA,wBAAA0yF,CAAyB79G,GAIvB,OADyB,UAFG,IAAdA,EAAEi+G,QAAwBj+G,EAAEi+G,QAAUj+G,EAAEg8B,MAIxD,CAKA,SAAA5kB,GACE,GAAAvgB,KAAK,GAAS,MACdA,KAAK2/B,UAAU3b,KAAKhkB,KAApBA,GACA,GAAAA,KAAK,IAAe,EACtB,CAMA,SAAAisF,CAAUp8E,GACR,IAAIw3G,EAAYx3G,EAChB7P,KAAK4mH,WAAW,aAES,iBAAdS,IACTA,GAAa,MAGf,GAAArnH,KAAK,IAAO6M,MAAMgD,OAASw3G,EAE3BrnH,KAAKmnH,gBAAgB,GAAAnnH,KAAK,IAA0BA,KAAKs0B,YAC3D,CAMA,UAAAsyF,CAAWU,GACT,IAAK,GAAAtnH,KAAK,MAAW,GAAAA,KAAK,MAAY,GAAAA,KAAK,IACzC,MAAM,IAAIsV,MACR,GAAGgyG,iFAGT,CAMA,QAAAC,GAEE,OADAvnH,KAAK4mH,WAAW,YAC0B,WAAnC,GAAA5mH,KAAK,IAAS6M,MAAMkiF,UAC7B,CAKA,IAAA16D,GACEr0B,KAAK4mH,WAAW,QAChB,GAAA5mH,KAAK,IAAS6M,MAAMkiF,WAAa,QACnC,CAKA,IAAA36D,GACEp0B,KAAK4mH,WAAW,QAChB,GAAA5mH,KAAK,IAAS6M,MAAMkiF,WAAa,SACnC,CAKA,YAAA23B,GACE,GAAA1mH,KAAK,GAA2B,IAChC,GAAAA,KAAK,GAAwB,IAC7B,GAAAA,KAAK,GAAsB,IAC3B,GAAAA,KAAK,IAAQiV,oBAAoB,YAAajV,KAAK8uB,YAAY9K,KAAKhkB,OACpEkM,SAAS+I,oBAAoB,YAAajV,KAAK42B,YAAY5S,KAAKhkB,OAChEkM,SAAS+I,oBAAoB,UAAWjV,KAAKugB,UAAUyD,KAAKhkB,MAC9D,CAEA,MAAAwnH,GACExnH,KAAK0mH,cACP,ECzPF,SAASe,IAAsB,SAAE/yD,IAE/B,OAAO,oCAAGA,EACZ,CAMA,SAASgzD,IAAuB,SAAEhzD,IAEhC,OAAO,oCAAGA,EACZ,CDdE,eAEA,eAEA,eAEA,eAEA,eAEA,eAEA,eAEA,eCPF+yD,GAAsBrV,UAAY,CAChC19C,SAAU,eAAqB,CAAC,IAQlCgzD,GAAuBtV,UAAY,CACjC19C,SAAU,eAAqB,CAAC,IAGlC,MAAMizD,GAAe,IAAI1S,IAAeA,EAAW9vG,KAAKwrG,IAAQA,GAAM,IAAIr/C,SAAQt7C,OAAO4uB,SAASpiC,KAAK,KAEvG,SAASolH,IAAY,SACnBlzD,EAAQ,OACR7kD,EAAM,eACNg4G,EAAiB,KAAI,YACrB5oF,EAAc,KAAI,UAClBU,EAAY,KAAI,MAChB9yB,EAAQ,KAAI,eACZi7G,EAAiB,KAAI,aACrBC,EAAY,iBACZC,EAAgB,gBAChBC,EAAe,iBACfC,GAECnV,GACD,MAAMoV,GAAW,IAAAhU,QAAO,MAClBiU,GAAY,IAAAjU,QAAO,MACnBkU,GAAa,IAAAlU,QAAO,MAEpBmU,GDuNwB,IAAAnU,QAAO,IAAImS,IACZzS,SCtN7B,IAAAO,YAAU,KACR,GAAK+T,EAAStU,SAAYuU,EAAUvU,SAAYwU,EAAWxU,SAItDyU,EAWL,OAPAA,EAAa/B,QAAQ8B,EAAWxU,QAASsU,EAAStU,QAASuU,EAAUvU,SACrEyU,EAAap0G,GAAG,iBAAkB2zG,GAClCS,EAAap0G,GAAG,cAAe+qB,GAC/BqpF,EAAap0G,GAAG,YAAayrB,GAC7B2oF,EAAar8B,UAAUp8E,EAAQ,cAGxB,KACLy4G,EAAa5B,cAAc,CAC5B,GACA,KAEH,IAAA6B,qBACExV,GACA,KAEE,MAAM/uF,EAAQiyB,GAASA,EAAKjyB,KAAKskG,GAEjC,MAAO,CACLh0F,UAAWtQ,EAAKskG,EAAah0F,WAC7B23D,UAAWjoE,EAAKskG,EAAar8B,WAC7B53D,KAAMrQ,EAAKskG,EAAaj0F,MACxBD,KAAMpQ,EAAKskG,EAAal0F,MACxBmzF,SAAUvjG,EAAKskG,EAAaf,UAC5BC,OAAQxjG,EAAKskG,EAAad,QAC1BtzG,GAAI8P,EAAKskG,EAAap0G,IACtBE,IAAK4P,EAAKskG,EAAal0G,KACxB,GAEH,IAGF,IAAIo0G,EAAa,KACbC,EAAc,KAClB,MAAMC,EAAW,GAEjB,aAAe3jH,QAAQ2vD,GAAWi0D,IAC5BA,GAAS,mBAAqBA,KAC5BA,EAAM50G,OAAS0zG,GACjBe,EAAaG,EACJA,EAAM50G,OAAS2zG,GACxBe,EAAcE,EAEdD,EAAS3mH,KAAK4mH,GAElB,IAGF,MAAMn7G,EACJ,kBAAC,OAAIZ,UAAW+6G,GAAa,wBAAyBO,GAAoB,OAAQnV,IAAKsV,EAAYx7G,SACjG,kBAAC,OAAID,UAAU,gCACf,kBAAC,OAAImmG,IAAKqV,EAAWx7G,UAAW+6G,GAAa,gCAAiCM,IAE5E,kBAAC,OAAIr7G,UAAU,6CAA6C47G,GAC5D,kBAAC,OAAI57G,UAAU,uCAAsC,KACrD,kBAAC,OAAIA,UAAU,8CAA8C67G,IAG/D,kBAAC,OAAI1V,IAAKoV,EAAUv7G,UAAW+6G,GAAa,+BAAgCK,GAAmBn7G,MAAOk7G,GACnGW,IAKP,GAAIZ,EACF,OAAO,KAAA7D,cAAaz2G,EAAStB,SAASsuB,cAAcstF,GAExD,CAEAF,GAAYxV,UAAY,CACtB19C,SAAU,eAAqB,CAAC,GAChC7kD,OAAQ,WACRg4G,eAAgB,SAChB5oF,YAAa,SACbU,UAAW,SACXmoF,eAAgB,WAChBj7G,MAAO,eAAqB,CAAC,GAC7Bk7G,aAAc,eAAqB,CAAC,GACpCC,iBAAkB,WAClBC,gBAAiB,WACjBC,iBAAkB,YAEpB,MAAMU,IAAkB,IAAArV,YAAWqU,IACnCgB,GAAgBC,WAAapB,GAC7BmB,GAAgBE,YAAcpB,GAE9B,YC/IaqB,IAAc,IAAAjX,iBCA3B,IAAe,IAAAA,2WCIf,SAASkX,GAAWvhH,GAClB,MAAM,OACJwhH,EAAM,QACNC,EAAO,UACPC,EAAS,QACTC,EAAO,SACP10D,EAAQ,aACR20D,EAAY,QACZC,EAAO,OACPC,EAAM,UACNC,EAAS,KACTp3G,EAAI,SACJq3G,EAAQ,eACRC,EAAc,KACdC,GACEliH,GAEJ,IAAA2sG,YAAU,KACR,MAAMwV,EAAc,MAAKN,GAEpBE,EAAUp3G,IACb62G,EAAOW,EAAax3G,EACtB,GACC,CAACk3G,EAASl3G,IAEb,MAAMy3G,EAAc,GAAYP,IAChC,IAAAlV,YAAU,KACR,GACEoV,EAAUp3G,KAAS,MAAAk3G,OAAA,EAAAA,EAAS1hB,UACxB,MAAAiiB,OAAA,EAAAA,EAAajiB,UAAU,MAAA0hB,OAAA,EAAAA,EAAS1hB,SAAS,MAAAiiB,OAAA,EAAAA,EAAaxnF,YAAainF,EAAQjnF,UAC/E,CACA,MAAMunF,EAAc,MAAKN,GACzBH,EAAUS,EAAax3G,EACzB,IACC,CAACk3G,EAASl3G,EAAMy3G,EAAaF,KAEhC,IAAAvV,YAAU,KACRgV,EAAQh3G,GACD,IAAM82G,EAAQ92G,KACpB,IAEH,MAAM03G,GAAe,IAAA5W,UAAQ,MACtB5xG,OAAOwD,KAAK6kH,GAAMppH,SAInBmpH,IAA4C,IAA1BC,EAAKL,EAAQzmH,IAAIuxB,OAIlCq1F,EAGEJ,GAAgBA,EAAalnH,QAAQmnH,EAAQzmH,KAAO,EAFlD2mH,EAAUp3G,KAGlB,CAACs3G,EAAgBD,EAAUJ,EAAcC,EAASK,IAE/Cl+F,GAAU,IAAAynF,UAAQ,KAAM,CAAG9gG,OAAMm3G,YAAW,CAACn3G,EAAMm3G,IAEzD,OAAKO,EAEH,kBAAC,OAAI9kH,IAAKskH,EAAQzmH,GAAI+J,UAAU,mBAAmBC,MAAO,CAAEiD,QAASu5G,GAAgBA,EAAalnH,QAAQmnH,EAAQzmH,KAAO,EAAI,QAAU,SACrI,kBAACknH,GAAW1W,SAAX,CAAoB/vG,MAAOmoB,GACzBipC,IAJmB,IAQ5B,CAEAs0D,GAAW5W,UAAY,CACrB6W,OAAQ,SACRE,UAAW,SACXD,QAAS,SACTE,QAAS,SACT10D,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEFtiD,KAAM,eAAqB/M,OAC3BqkH,eAAgB,SAChBD,SAAU,SACVJ,aAAc,eAAqBhkH,OACnCmkH,UAAW,SACXD,OAAQ,WACRD,QAAS,eAAqBhoH,QAC9BqoH,KAAM,eAAqBroH,SAG7B,YCvFA,SAAS0oH,GAAIviH,GACX,MAAM,GAAE5E,GAAO4E,EACTwiH,GAAc,IAAAxX,YAAWsW,IACzBmB,GAAa,IAAAzX,YAAWsX,KACxB,UACJP,EAAS,aACTH,EAAY,OACZJ,EAAM,UACNE,EAAS,QACTD,EAAO,QACPE,EAAO,SACPK,EAAQ,eACRC,EAAc,KACdC,GACEM,GACE,SACJv1D,GACEjtD,GACG2K,EAAM+3G,IAAW,IAAAlX,UAAS,IAgBjC,OAdA,IAAAmB,YAAU,KACR,IAAIgW,EAGAA,EAFAF,GAAc93G,GACZ83G,EAAWX,SAAWU,EAAYpnH,GACzBqnH,EAAW93G,KAAKupB,OAAO,CAAC94B,IAK1B,CAACA,GAEdsnH,EAAQC,EAAS,GAChB,CAACF,IAEC93G,EAKH,kBAAC,IACC62G,SACAE,YACAD,UACAE,UACAI,YACAF,QAAS7hH,EACT2K,OACAm3G,OAAQU,EAAYpnH,GACpBwmH,eACAI,WACAC,iBACAC,QAECj1D,GAlBI,IAqBX,CAEAs1D,GAAI5X,UAAY,CACd19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEF7xD,GAAI,YAGNmnH,GAAI1W,aAAe,CAAC,EAEpB,sWCpEA,SAAS+W,GAAK5iH,GACZ,MAAM,SACJitD,EAAQ,UACR9nD,EAAS,GACT/J,EAAE,YACFynH,EAAW,KACXv2G,EAAI,eACJ21G,GACEjiH,GACGkiH,EAAMY,IAAW,IAAAtX,UAAS,CAAC,IAC3BoW,EAAcmB,IAAmB,IAAAvX,UAAS,KAC1CwW,EAAUgB,IAAe,IAAAxX,WAAS,IAClCyX,EAAaC,IAAkB,IAAA1X,UAAS,OAE/C,IAAAmB,YAAU,KACRoW,EAAgBE,EAAY,GAC3B,CAACA,IAEJ,MAiDME,EAAyB,CAACx4G,EAAMk3G,KACpC,MAAMc,EAAWh4G,EAAK7P,MAAM,GAC5B,IAAIsoH,GAAe,EAEfvB,EAAQwB,cACVV,EAASroH,KAAKT,OAAOwD,KAAKwkH,EAAQK,MAAM,IACxCkB,GAAe,GAGjBN,GAASQ,IACP,IAAIC,EAAW,MAAKD,GAIpB,OAFAC,EA1Cc,EAACC,EAAW74G,KAC5B,IAAI84G,EAAgB,MAAKD,GACzB,MAAMb,EAAWh4G,EAAK7P,MAAM,GAE5B,KAAO6nH,EAAS7pH,OAAS,GACvB2qH,EAAgBA,EAAcd,EAASj8F,SAGzC,MAAMnpB,EAAMolH,EAASj8F,QAOrB,YANqC,IAAjC+8F,EAAclmH,GAAKutG,UACrB2Y,EAAclmH,GAAKutG,WAAY,EAE/B2Y,EAAclmH,GAAKutG,WAAa2Y,EAAclmH,GAAKutG,UAG9C2Y,CAAa,EA2BPC,CAAUH,EAAU54G,GAExB44G,CAAQ,IAEjBR,EAAgBJ,GAChBK,EAAYI,GAERP,GACFA,EAAYhB,EACd,EAGI8B,EAAkBC,IACtB,MAAMvV,EAAa,GAMnB,OAJIuT,GAAgBA,EAAalnH,QAAQkpH,IAAU,GACjDvV,EAAW/zG,KAAK,UAGX+zG,EAAWtzG,KAAK,IAAI,EAGvB8oH,EAAU,CAACC,EAAan5G,IACvBm5G,EAKH,kBAAC,UAEGjqH,OAAOwD,KAAKymH,GAAapmH,KAAI,CAACkmH,EAAOzmH,KACnC,MAAMwlH,EAAWh4G,EAAOA,EAAKupB,OAAO,CAAC4vF,EAAYF,GAAOxoH,KAAO,CAAC0oH,EAAYF,GAAOxoH,IAC7E6vG,EAAW6Y,EAAYF,GAAO9Y,UAAY,aAAe,eAE/D,OAAgC,IAA5BgZ,EAAYF,GAAOj3F,KACd,KAIP,kBAAC,MAAGxnB,UAAWw+G,EAAeG,EAAYF,GAAOxoH,IAAKmC,IAAKumH,EAAYF,GAAOxoH,IAC5E,kBAAC,UACCkR,KAAK,SACL6+F,QAASgY,EAAuB5mG,KAAK,KAAMomG,EAAUmB,EAAYF,IACjE/L,UAAWsL,EAAuB5mG,KAAK,KAAMomG,EAAUmB,EAAYF,IACnEr0F,SAAUpyB,GAER2mH,EAAYF,GAAOzjB,MAEnB2jB,EAAYF,GAAOP,YACf,kBAAC,EAAI,CAACl+G,UAAU,oBAAoBmH,KAAM2+F,IAC1C,MAIN6Y,EAAYF,GAAOP,YAEf,kBAAC,GACCvY,UAAWgZ,EAAYF,GAAO9Y,WAE7B+Y,EAAQC,EAAYF,GAAO1B,KAAMS,IAGpCkB,EAAQC,EAAYF,GAAO1B,KAAMS,GAEzC,KAxCD,KAgDLnB,EAAS,CAACK,EAASl3G,KACvBm4G,GAASQ,GAtIY,EAACE,EAAW74G,EAAMk3G,KACvC,IAAI4B,EAAgB,MAAKD,GACzB,MAAMrB,EAAc,MAAKN,GACnBc,EAAWh4G,EAAK7P,MAAM,GAE5B,KAAO6nH,EAAS7pH,OAAS,GACvB2qH,EAAgBA,EAAcd,EAASj8F,SAElC+8F,IACHA,EAAgB,CAAC,GAOrB,OAHAtB,EAAYQ,SAAWA,EACvBc,EAAcd,EAASj8F,SAAWy7F,EAE3BsB,CAAa,EAsHEM,CAAe,MAAKT,GAAY34G,EAAMk3G,KAExDA,EAAQjnF,UACVsoF,EAAev4G,EACjB,EAGI+2G,EAAY,CAACG,EAASl3G,KAC1Bm4G,GAASQ,IACP,MAAMC,EAAW,MAAKD,GAEtB,OADAC,EAAS1B,EAAQzmH,IAAMymH,EAChB0B,CAAQ,IAGb1B,EAAQjnF,UACVuoF,EAAuBx4G,EAAMk3G,EAC/B,EAGIJ,EAAW92G,IACfm4G,GAASQ,IACP,MAAMC,EAAW,MAAKD,GAGtB,OAFAC,EAAS54G,GAAMgiB,MAAO,EAEf42F,CAAQ,GACf,EAGE5B,EAAWh3G,IACfm4G,GAASQ,IACP,MAAMC,EAAW,MAAKD,GAItB,OAFAC,EAAS54G,GAAMgiB,MAAO,EAEf42F,CAAQ,GACf,EAGExB,EAAap3G,IACjB,IAAI44G,EAAW,MAAKrB,GACpB,MAAMS,EAAWh4G,EAAK7P,MAAM,GAC5B,KAAO6nH,EAAS7pH,OAAS,GACvByqH,EAAWA,EAASZ,EAASj8F,SAG/B,MAAMnpB,EAAMolH,EAASj8F,QAErB,OAAOyW,QAAQ,MAAAomF,OAAA,EAAAA,EAAWhmH,GAAK,EAG3BymB,GAAU,IAAAynF,UAAQ,KAAM,CAC5BrwG,KACAomH,SACAC,UACAC,YACAC,UACAI,YACAH,eACAI,WACAC,iBACAC,UACE,CACF9mH,EACAomH,EACAC,EACAC,EACAC,EACAI,EACAH,EACAI,EACAC,EACAC,IAGF,OACE,kBAAC,OAAI/8G,UA5Ke,MACpB,IAAIkpG,EAAa,CAAC,YAQlB,OANAA,EAAW/zG,KAAK,aAAagS,GAAQ,aAEjCnH,IACFkpG,EAAaA,EAAWn6E,OAAO/uB,EAAUvK,MAAM,OAG1CyzG,EAAWtzG,KAAK,IAAI,EAmKXqzG,IACbyV,EAAQ3B,GACT,kBAACZ,GAAY1V,SAAZ,CAAqB/vG,MAAOmoB,GAEJ,mBAAbipC,EACJA,EAAS,CACTw0D,UACAE,YAEA10D,GAKd,CAEA21D,GAAKjY,UAAY,CACfxlG,UAAW,WACX8nD,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEFg1D,eAAgB,SAChB7mH,GAAI,WACJynH,YAAa,SACbv2G,KAAM,YAGRs2G,GAAKL,IAAM,GAEX,sWCrQA,SAASx2F,GAAQ,YACf6qF,OAAAA,EAAA,UACAzxG,EAAS,SACT8nD,EAAQ,SACR7wD,EAAW,aACXgJ,EAAK,KACL4+G,GAAO,EAAK,SACZC,EAAQ,SACRC,GAAW,EAAK,uBAChBC,EAAyB,IATV,EAUZnkH,mKAAA,CAVY,EAUZ,CATH,SACA,YACA,WACA,WACA,QACA,OACA,WACA,WACA,2BAGA,MAAOokH,EAAUC,IAAe,IAAA7Y,WAAS,GACnCoV,GAAa,IAAAlU,QAAO,MACpB4X,GAAa,IAAA5X,QAAO,MACpB6X,EAAeN,EACjB,CACA9Y,QAAS,IAAMkZ,GAAY,IAE3B,CACAG,aAAc,IAAMH,GAAY,GAChCI,aAAc,IAAMJ,GAAY,GAChC1kG,QAAS,IAAM0kG,GAAY,GAC3B5kG,OAAQ,IAAM4kG,GAAY,IAGxBK,GAAsB,IAAApY,cAAa5qG,IACnC,IAAIyiH,EAAwBG,EAAWlY,SAASpzE,MAAMzkB,IAnC9D,IAAAiZ,EAmCoE,cAAAA,EAAA,MAAAjZ,OAAA,EAAAA,EAAGL,eAAH,EAAAsZ,EAAA,KAAAjZ,EAAc7S,EAAE1E,OAAO,KAGvFqnH,GAAY,EAAM,GACjB,CAACF,KAEJ,IAAAxX,YAAU,KACRloG,SAAS4I,iBAAiB,QAASq3G,GAAqB,GACjD,IAAMjgH,SAAS+I,oBAAoB,QAASk3G,GAAqB,KACvE,CAACA,KAEJ,IAAA/X,YAAU,KACR0X,EAAYH,EAAS,GACpB,CAACA,IAEJ,MAAM19G,EAAU,CAAC,cAAerB,GAAWoJ,OAAO4uB,SAASpiC,KAAK,KAChE,OACE,kBAAC,aACCoK,UAAU,uBACVC,MAAO,IAAEiD,QAAS,gBAAmBjD,GACrCkmG,IAAKsV,GACD2D,GACAvkH,GAEHitD,EACAm3D,GACC,kBAAC,IACCr+G,QAAS66G,EACTzG,aAAc/9G,EACdi+G,kBAAkB,MAClB55G,OAAQ,IAER,kBAAC,OAAI0E,UAAWqB,EAAS8kG,IAAKgZ,GAC3BN,KACU,IAATA,EACE,kBAAC,EAAI,CAAC13G,KAAK,aAEX03G,GAGJ,kBAAC,OAAI7+G,UAAU,wBACZyxG,GAEFqN,GACC,kBAAC,GACC33G,KAAK,QACL6+F,QAAUzpG,IACRA,EAAEiK,kBACF04G,GAAY,EAAM,MASpC,CAEAt4F,GAAQ4+E,UAAY,CAClB19C,SAAU,SAAe29C,WAEzBxlG,MAAO,eAAqBvL,QAI5BuC,SAAU,WAEVw6G,OAAQ,cAAoB,CAC1B,SACA,aAGFzxG,UAAW,WAIX6+G,KAAM,cAAoB,CACxB,SACA,WAKFC,SAAU,SAEVC,SAAU,SAKVC,uBAAwB,eAAqBvmH,QAG/C,YCxHA,SAAS+mH,IAAa,KAAElnG,EAAI,MAAEk6C,EAAK,SAAEv7D,IACnC,OACEqhB,EAAK3kB,OAAS6+D,EAEV,kBAAC,GAAO,CAACi/C,OAAQn5F,EAAMrhB,YACpBqhB,EAAK4oB,UAAU,EAAGsxB,GAAO,OAI5Bl6C,CAER,CAEAknG,GAAaha,UAAY,CAEvBltF,KAAM,WAENk6C,MAAO,WAEPv7D,SAAU,YAGZ,YCoBA,SAASwoH,GAAW5kH,GAClB,MAAM,MACJnE,EAAQ,EAAC,eACTgpH,EAAc,SACdv/E,GACEtlC,GAEG8kH,EAAcC,IAAmB,IAAAvZ,UAAS3vG,GAE3CmpH,GAAa,IAAAvZ,UACjB,IA1BJ,SAAqBwZ,EAAWH,GAC9B,IAAI5qH,EACJ,MAAMgrH,EAAW,GAEjB,IAAKhrH,EAAI,EAAGA,GAAK+qH,EAAW/qH,GAAK,EApCXirH,EAqCDjrH,EArCYkrH,EAqCTN,IArCiBD,EAqCHI,GAnCb,IAOvBG,EARiB,GASdD,EATc,GAejBC,EAASP,EAfQ,GAgBdM,EAAYN,EAhBE,GAsBjBM,GAAaC,EAAS,GACnBD,GAAaC,EAAS,GAKpB,CAAC,EAAG,EAAGP,EAAiB,EAAGA,GAAgBhoH,SAASsoH,MASnDjrH,EAAIgrH,EAASG,IAAI,IACnBH,EAAS5qH,KAAK,OAAOJ,KAEvBgrH,EAAS5qH,KAAKJ,EAAI,IAzCxB,IAAwBirH,EAAWC,EAAQP,EA6CzC,OAAOK,CACT,CAYUI,CAAYT,EAAgBC,IAClC,CAACA,EAAcD,IAGjB,SAASU,EAASH,GAChBL,EAAgBK,GACZ9/E,GAAUA,EAAS8/E,EACzB,CAEA,OACEP,EAEI,kBAAC,MAAG1/G,UAAU,kBACX2/G,EAAe,GAAKD,EAAiB,GACpC,kBAAC,UACC,kBAAC,UAAO1Z,QAAS,IAAMoa,EAAST,EAAe,GAAIx4G,KAAK,UAAS,aAInE04G,EAAWtnH,KAAK0nH,GACd,kBAAC,MAAG7nH,IAAK6nH,EAAQjgH,UAAW2/G,IAAiBM,EAAS,EAAI,SAAW,IAEjEnpH,OAAOmpH,GAAQlpH,WAAW,OACtB,kBAAC,YAAK,OACN,kBAAC,UAAOivG,QAAS,IAAMoa,EAASH,EAAS,GAAI94G,KAAK,UAAW84G,MAKxEN,EAAeD,GAAkBA,EAAiB,GACjD,kBAAC,UACC,kBAAC,UAAO1Z,QAAS,IAAMoa,EAAST,EAAe,GAAIx4G,KAAK,UAAS,UAKvE,IAER,CAEAs4G,GAAWja,UAAY,CACrB9uG,MAAO,WACPgpH,eAAgB,WAChBv/E,SAAU,UAGZ,YCzGakgF,IAAe,IAAAnb,iBCIrB,SAASob,IAAW,OAAE1xG,IAC3B,MAAM,SAAE2xG,GAAa3xG,GACd4xG,EAAWC,IAAgB,IAAApa,WAAS,MAAAka,OAAA,EAAAA,EAAUtzG,UAAW,QAC1D,MAAEsnB,EAAK,YAAEmsF,IAAgB,IAAA7a,YAAWwa,IAC1C,OACE,kBAAC,MACCjoH,IAAKwW,EAAO3Y,GACZ+vG,QAASua,EAAW,KAClBG,EAAY,OAAQ,CAAE9xG,SAAQ4xG,cAC9BC,EAA2B,QAAdD,EAAsB,OAAS,MAAM,EAChD,KACJxgH,UAAWu0B,EAAMjJ,UAAY,eAAiB,IAE7C1c,EAAOrY,KACPqY,EAAO2xG,UACN,kBAAC,QAAKvgH,UAAU,eACd,kBAAC,EAAI,CAAColG,OAAO,QAAQj+F,KAAK,eAKpC,CAEAm5G,GAAW9a,UAAY,CACrB52F,OAAQ,eAAqBla,wbCzBxB,SAAS+zG,IAAO,gBAAEkY,IACvB,MAAM,MAAEpsF,EAAK,YAAEmsF,IAAgB,IAAA7a,YAAWwa,KACpC,QAAEO,EAAO,WAAEC,GAAetsF,EAS1BusF,EAAqB,KAhB7B,MAiBI,MAAMjI,EAAYgI,EAAW15G,KAC7B,OACE,kBAAC,MACCnH,UAAWu0B,EAAMjJ,UAAY,eAAiB,KAE7C,MAAAu1F,OAAA,EAAAA,EAAYE,gBACX,kBAAC,OAAI/gH,UAAW,MAAA6gH,OAAA,EAAAA,EAAY5gH,OAC1B,kBAAC44G,EAAA,SACKgI,EAAWxoH,QADhB,CAEC3B,MAAOiqH,EACPxgF,SAAWwmD,IA3BzB,IAAAt+D,EAAA,EA4BgB,MAAM24F,EAAkD,WAArC,OAAA34F,EAAA,MAAAs+D,OAAA,EAAAA,EAAG9uF,aAAH,EAAAwwB,EAAWuwE,QAAQp7F,gBAA+D,cAAlC,eAAAmpF,OAAA,EAAAA,EAAG9uF,aAAH,IAAWsP,KAAK3J,eACnFkjH,EAAY,0BAA2BM,EAAar6B,EAAE9uF,OAAOskG,QAAUnkE,QAAQ2uD,GAAG,IAGnF,SAAAk6B,EAAWxoH,aAAX,IAAmB3B,QAIxBmqH,EAAWtqH,MAAQ,SAEvB,EAIJ,OACE,kBAAC,aACC,kBAAC,UAC2B,UAAzB,MAAAsqH,OAAA,EAAAA,EAAY5pH,WAAuB6pH,IApCZF,EAAQroH,KAAKqW,GACzC,kBAAC0xG,GAAA,CACCloH,IAAKwW,EAAO3Y,GACZ2Y,aAmC4B,WAAzB,MAAAiyG,OAAA,EAAAA,EAAY5pH,WAAwB6pH,KAI7C,CAEArY,GAAOjD,UAAY,CACjBmb,gBAAiB,maC9CnB,MAAMM,WAAiB,EAAApI,UACrB,aAAA5P,GACE,MAAM,OACJjvF,EAAM,SAAEjS,EAAQ,SAAE4X,EAAQ,MAAE4H,EAAQ,oBAAI+zF,EAAmB,IACzDloH,KAAKyH,MAEHquG,EAAa,CAACoS,GAgBpB,OAdApS,EAAW/zG,KAAK,gBAEZ6kB,GACFkvF,EAAW/zG,KAAK,wBAGdoyB,EAAMm9B,QACRwkD,EAAW/zG,QAAQoyB,EAAM9xB,MAAM,KAAK8C,KAAK2iB,GAAM,uBAAuBA,QAGpEnT,GAAY4X,IACdupF,EAAW/zG,KAAK,6BAGX+zG,EAAWtzG,KAAK,IACzB,CAEA,YAAAsrH,GACE,MAAM,MAAEjtH,GAAUb,KAAKyH,MACvB,OAAK5G,EAGH,kBAAC,KAAE+L,UAAU,mCACV/L,GAJc,IAOrB,CAEA,WAAAktH,GACE,MAAM,KAAEC,GAAShuH,KAAKyH,MACtB,OAAKumH,EAGH,kBAAC,KAAEphH,UAAU,gCACVohH,GAJa,IAOpB,CAEA,MAAA3P,GACE,MAEI,EAAAr+G,KAAKyH,OADPk7C,MAAAA,EAAA,MAAOr/C,EAAK,MAAEg5B,GACZ,EADsB41E,mKAAA,CACtB,EADsB,CAAxB,QAAO,QAAO,UAEhB,OACE,kBAAC,OACCtlG,UAAW5M,KAAK61G,iBAEhB,kBAAC,OAAIjpG,UAAU,6BACb,kBAAC,aACC,kBAAC,kBACCm8F,QAASpmD,EAAQA,EAAMr/C,MAAQA,GAC3Bq/C,GACAuvD,WAHL,CAICn+F,KAAK,gBAENuoB,GAEFt8B,KAAK+tH,cACL/tH,KAAK8tH,sBAId,EAGFD,GAASzb,UAAY,CAEnBz9F,SAAU,SAEV4X,SAAU,SAEV3F,OAAQ,SAERuN,MAAO,WAEPtzB,MAAO,cAAoB,CACzB,WACA,WAGFmtH,KAAM,WACNrrE,MAAO,eAAqBrhD,QAE5Bg7B,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAGFn5B,KAAM,WAENG,MAAO,cAAoB,CACzB,WACA,WAGFylG,QAAS,cAAoB,CAC3B,WACA,WAGFh8D,SAAU,SAEVm7E,iBAAkB,YAGpB,sWCzHO,SAAS+F,IAAK,IAAE7+E,EAAG,IAAE7zB,IAH5B,cAIE,IAAKA,EAAItW,OAAOmqC,EAAIvsC,IAClB,OAAO,kBAAC,WAGV,GAAiB,WAAbusC,EAAIr7B,KACN,OACE,kBAAC,SACCnH,WAAW,SAAA2O,EAAItW,OAAOmqC,EAAIvsC,IAAIqrH,cAAnB,IAA4BthH,YAAa,MAChD,SAAA2O,EAAItW,OAAOmqC,EAAIvsC,UAAf,IAAoBsrH,QAEvB,SAAA5yG,EAAItW,OAAOmqC,EAAIvsC,UAAf,IAAoBS,OAI3B,MAAMmiH,EAAYr2E,EAAIr7B,KACtB,OACE,kBAAC,SACCnH,WAAW,SAAA2O,EAAItW,OAAOmqC,EAAIvsC,IAAIqrH,cAAnB,IAA4BthH,YAAa,MAChD,SAAA2O,EAAItW,OAAOmqC,EAAIvsC,UAAf,IAAoBsrH,QAExB,kBAAC1I,EAAA,MACKlqG,EAAItW,OAAOmqC,EAAIvsC,IAAI4E,OAEtB8T,EAAItW,OAAOmqC,EAAIvsC,IAAI6xD,SAAWn5C,EAAItW,OAAOmqC,EAAIvsC,IAAI6xD,SAAW,MAIrE,CCzBO,SAAS05D,IAAI,IAAE7yG,EAAG,MAAE3W,IAN3B,QAOE,MAAM,MAAEu8B,EAAK,YAAEmsF,IAAgB,IAAA7a,YAAWwa,KACpC,QAAEO,EAAO,WAAEC,GAAetsF,EAE1BktF,GAAqB,IAAAta,cAAY,IAErC,kBAAC,UACC,kBAAC,IACCzwG,MAAOiY,EAAI8mB,SACX0K,SAAWwmD,GAAM+5B,EAAY,eAAgB,CAAE1oH,QAAOy9B,SAAUkxD,EAAE9uF,OAAOskG,cAG5E,CAACxtF,EAAI8mB,SAAUz9B,IAElB,OACE,kBAAC,MACCguG,QAAS,SAAAr3F,EAAI4yG,aAAJ,IAAYvb,QACrBhmG,UAAW,SAAA2O,EAAI2yG,cAAJ,IAAathH,WAEvB6gH,GAAsC,SAAxBA,EAAW5pH,UAAuBwqH,IAChDb,EAAQroH,KAAKiqC,GACZ,kBAAC6+E,GAAI,CAACjpH,IAAKoqC,EAAIvsC,GAAIusC,MAAU7zB,MAAU3W,YAExC6oH,GAAsC,UAAxBA,EAAW5pH,UAAwBwqH,IAGxD,CC5BO,SAASjX,KACd,MAAM,MAAEj2E,IAAU,IAAAsxE,YAAWwa,KACvB,KAAE33E,GAASnU,EAEjB,OACE,kBAAC,aAGGmU,EAAKnwC,KAAI,CAACoW,EAAK5Z,IAAM,kBAACysH,GAAG,CAACppH,IAAKrD,EAAG4Z,MAAU3W,MAAOjD,MAI3D,CFiBAssH,GAAK7b,UAAY,CACfhjE,IAAK,eAAqB9tC,QAC1Bia,IAAK,eAAqBja,QAC1BsD,MAAO,YCFTwpH,GAAIhc,UAAY,CACd72F,IAAK,eAAqBja,QAC1BsD,MAAO,2bEnBT,SAAS0pH,IAAM,MACbhrH,EAAK,SAAEypC,EAAQ,cAAEwhF,EAAa,QAAEC,EAAO,kBAAEC,IAlB3C,MAoBE,MAAOttF,EAAOlR,IAAY,IAAAgjF,UAAS,OAC5Byb,EAAaC,IAAkB,IAAA1b,UAAS,OACzC2b,GAAe,IAAAza,QAAO,MACtB0a,GAAW,IAAA9a,cAAY,CAAC3kE,EAAKg+E,KACjCn9F,GAAU4a,GAAe,SACpBA,GADoB,CAEvBzV,KAAM,CACJ05F,MAAO1B,EACPh+E,UAED,GACF,IAEG2/E,GAAgB,IAAAhb,cAAa1xE,IACjCpS,GAAU4a,GAAe,SACpBA,GADoB,CAEvByK,KAAMzK,EAAUyK,KAAKnwC,KAAKoW,GAAS,SAAKA,GAAL,CAAU8mB,kBAC5C,GACF,IAEG2sF,GAAY,IAAAjb,cAAY,EAAGnvG,QAAOy9B,eACtCpS,GAAU4a,GAAe,SACpBA,GADoB,CAEvByK,KAAM,IACDzK,EAAUyK,KAAK/yC,MAAM,EAAGqC,GAC3B,SAAKimC,EAAUyK,KAAK1wC,IAApB,CAA4By9B,gBACzBwI,EAAUyK,KAAK/yC,MAAMqC,EAAQ,OAEjC,GACF,IAEGqqH,GAAgB,IAAAlb,cAAa1+F,IACjC4a,GAAU4a,GAAe,SACpBA,GADoB,CAEvBqkF,WAAY,SACPrkF,EAAUqkF,YADH,CAEVrb,QAASx+F,EAAO,OAEjB,GACF,IAEG85G,EAAM,CACVtmE,SAAU,IAAM1nB,EAChBlR,SAAW+a,GAAa/a,EAAS+a,IAG7BsiF,GAAc,IAAAvZ,cAAY,CAACv9F,EAASnB,KACxCs5G,EAAen4G,GACC,SAAZA,GACFq4G,EAASx5G,EAAKmG,OAAO3Y,GAAIwS,EAAK+3G,WAGhB,4BAAZ52G,GACFu4G,EAAc15G,GAGA,iBAAZmB,GACFw4G,EAAU35G,GAGI,sBAAZmB,GACFy4G,EAAc55G,EAChB,GACC,CAACw5G,EAAUE,EAAeC,EAAWC,IAElCxjG,GAAU,IAAAynF,UAAQ,KAAM,CAAG/xE,QAAOmsF,iBAAgB,CAACnsF,EAAOmsF,IAUhE,IARA,IAAAlZ,YAAU,IAAMnkF,EAAS3sB,IAAQ,CAACA,KAClC,IAAA8wG,YAAU,KACJrnE,GACFA,EAAS2hF,EAAavtF,EAAOguF,GAE/BR,EAAe,MAAM,GACpB,CAACxtF,KAECA,EACH,OAAO,kBAAC,GAAM,CAACt9B,SAAS,aAG1B,GAAIs9B,EAAMmU,MAAQ,EAChB,OAAO,kBAAC,GAAO,CAACnhB,MAAM,QAAQo6F,GAAiB,qBAGjD,MAAMa,EAAW,IACf,kBAAC,SAAMxiH,UAAU,YAAYmmG,IAAK6b,GAChC,kBAACvZ,GAAM,CAACkY,gBAAiBpsF,EAAMmU,KAAK+5E,OAAM,EAAGhtF,cAAeA,MAC5D,kBAAC+0E,GAAI,OAIT,OACE,kBAAC6V,GAAa5Z,SAAb,CAAsB/vG,MAAOmoB,GAC5B,kBAAC,OAAI7e,UAAW,eAAc,SAAAu0B,EAAM+sF,cAAN,IAAethH,YAAa,KAAMC,MAAO,CAAEgD,OAAQsxB,EAAMjJ,UAAYiJ,EAAMjJ,UAAY,OAAQr0B,SAAU,aAEnI2qH,GAAW,kBAAC,GAAM,CAAC3qH,SAAS,WAAWi0G,gBAAc,IAGrD2W,GAAqBttF,EAAM+tF,WAEvB,kBAAC,IACCtO,SAAUgO,EACVpO,QAASr/E,EAAM+tF,WAAWI,WAAanuF,EAAM+tF,WAAWrb,QACxD6M,SAAW6O,GAAQjC,EAAY,oBAAqBiC,GACpD5O,WAAYx/E,EAAM+tF,WAAWrb,QAAU,EACvC4M,aAAa,GAEX2O,KAGJA,KAGPjuF,EAAM+tF,aAAeT,GACpB,kBAAC,OAAI7hH,UAAU,wBACb,kBAAC,IACCtJ,MAAO69B,EAAM+tF,WAAWrb,QAAU,EAClC2b,cAAeruF,EAAM+tF,WAAWO,QAAU,EAC1CnD,eAAgBnrF,EAAM+tF,WAAWI,WAAa,EAC9CviF,SAAWwiF,GAAQjC,EAAY,oBAAqBiC,MAMhE,CAEAjB,GAAMlc,UAAY,CAEhB9uG,MAAO,UAAgB,CAErBkqH,QAAS,YAAkB,UAAgB,CAEzC3qH,GAAI,WAAiBwvG,WAErBlvG,KAAM,WAEN4Q,KAAM,cAAoB,CAExB,WAEA,YAEA,WAEFo5G,SAAU,cAAoB,CAE5B,SAEA,UAAgB,CAEdtzG,QAAS,kBAKfy7B,KAAM,YAAkB,UAAgB,CAAC,IAEzCm4E,WAAY,UAAgB,CAAC,GAE7ByB,WAAY,UAAgB,CAAC,GAE7Bh3F,UAAW,WAEXg2F,QAAS,UAAgB,CAEvBthH,UAAW,eAEZylG,WAEHtlE,SAAU,SAEVwhF,cAAe,WAEfC,QAAS,SAETC,kBAAmB,UAGrBH,GAAMhb,aAAe,CACnBkb,SAAS,EACTC,mBAAmB,EACnBF,cAAe,oBACfxhF,SAAU,MAGZ,2OC1MA,SAAS2iF,GAAO,YACdh7D,SAAAA,EAAA,MACAkiD,EAAK,UACLhqG,EAAS,OACT1E,EAAM,KACN6lC,GALc,EAMXmkE,mKAAA,CANW,EAMX,CALH,WACA,QACA,YACA,SACA,SAGA,MAAMjkG,EAAU,CACd,UACArB,EACAgqG,GAAS,kBAAkBA,OACxB7oE,EAAK1rC,MAAM,KAAK8C,KAAKwqH,GAAU,YAAYA,UAC1CznH,EAASA,EAAO7F,MAAM,KAAO,IAAI8C,KAAKyqH,GAAY,mBAAmBA,OACzE55G,OAAO4uB,SAASpiC,KAAK,KAEvB,OACE,kBAAC,iIAAIoK,UAAWqB,GAAaikG,GACzBx9C,EAGR,CAEAg7D,GAAOtd,UAAY,CAKjBwE,MAAO,WAEPhqG,UAAW,WAIXmhC,KAAM,WAAiBskE,WAIvBnqG,OAAQ,WACRwsD,SAAU,cAAoB,CAC5B,YACA,WACA,WACA,YAIJ,0SC9CA,SAAS,GAAI,YACX9nD,UAAAA,EAAA,UACAijH,EAAS,SACTn7D,GAHW,EAIRw9C,mKAAA,CAJQ,EAIR,CAHH,YACA,YACA,aAGA,MAAMjkG,EAAU,CACd,UACArB,EACAijH,GAAa,aACbA,GAAa,uBACb75G,OAAO4uB,SAASpiC,KAAK,KAEvB,OACE,kBAAC,sIAAQ0vG,WAAR,CAActlG,UAAWqB,MACtBymD,QAGR,CAEA,GAAI09C,UAAY,CACd19C,SAAU,cAAoB,CAC5B,YACA,WAGF9nD,UAAW,WAEXijH,UAAW,UAGb,YCjCaC,IAAkB,IAAAhe,iBCI/B,SAASie,GAAatoH,GACpB,MAAM,mBACJuoH,EAAkB,SAClBt7D,EAAQ,SACRu7D,EAAQ,KACRzgH,EAAI,OACJ/K,EAAM,MACNmjG,EAAK,QACLgL,GACEnrG,EACEyoH,GAAoB,IAAAnc,cAAY,CAACoc,EAAiBC,KACtDD,EAAgBE,aAAaJ,EAAUG,GAEnCxd,GAASA,EAAQqd,EAAS,GAC7B,IAEH,OACE,kBAACH,GAAgB1K,SAAhB,MAEI+K,GACC,kBAAC,MACCvd,QAAS,IAAMsd,EAAkBC,EAAiB1oH,GAClDk3G,QAAS,QAGPqR,GACI,IAAAzZ,cAAayZ,EAAoB,CAAC,GAElC,kBAAC,KAAExgH,OAAY/K,UAEXwrH,GACGE,EAAgBG,eAAiBL,GACjCE,EAAgBI,cACf,kBAAC,EAAI,CAACx8G,KAAK,UACX,KAEN,kBAAC,YACE6zF,GAASlzC,MAUhC,CAEAq7D,GAAa3d,UAAY,CACvB19C,SAAU,cAAoB,CAC5B,YACA,SACA,aAEFs7D,mBAAoB,cAAoB,CACtC,YAAkB,UAClB,SACA,cAEFC,SAAU,WACVzgH,KAAM,WACN/K,OAAQ,WACRmuG,QAAS,SACThL,MAAO,YAGT,2OChEA,MAAM4oB,WAAiB,EAAA/K,UACrB,wBAAOgL,CAAkBlkH,EAAImkH,GAC3B,MAAMh2F,EAAcz6B,OAAOy4B,WAI3B,OAHensB,EAAGqb,wBACO5X,KAAO0gH,GAEZh2F,CACtB,CAEA,yBAAOi2F,CAAmBpkH,EAAIqkH,GAC5B,MAAMj2F,EAAe16B,OAAOq4B,YACtBpwB,EAASqE,EAAGqb,wBACZipG,EAAWtkH,EAAG6gB,aAGpB,OAFmBllB,EAAOsJ,IAAMq/G,EAAWD,GAEtBj2F,CACvB,CAEA,WAAA5nB,CAAYtL,GACVqpH,MAAMrpH,GAEN,MAAM,aACJ6oH,EAAY,KACZx+G,GACE9R,KAAKyH,MAETzH,KAAKmhC,MAAQ,CACX69E,OAAQltG,EACRw+G,aAAcA,GAAgB,MAGhCtwH,KAAK+wH,aAAc,IAAArS,aACnB1+G,KAAKgxH,iBAAkB,IAAAtS,aACvB1+G,KAAKixH,mBAAoB,IAAAvS,aACzB1+G,KAAKqwH,aAAerwH,KAAKqwH,aAAarsG,KAAKhkB,MAC3CA,KAAKkxH,eAAiBlxH,KAAKkxH,eAAeltG,KAAKhkB,MAC/CA,KAAKmxH,mBAAqBnxH,KAAKmxH,mBAAmBntG,KAAKhkB,KACzD,CAEA,iBAAAoxH,GACEllH,SAAS4I,iBAAiB,YAAa9U,KAAKmxH,oBAExCnxH,KAAKgxH,gBAAgBnd,SACvB7zG,KAAKqxH,WAET,CAEA,kBAAAC,CAAmBC,GACjB,MAAM,KACJz/G,GACE9R,KAAKyH,OACH,OACJu3G,GACEh/G,KAAKmhC,MAELnhC,KAAKgxH,gBAAgBnd,SACvB7zG,KAAKqxH,YAIJE,EAAUz/G,OACC,IAATA,GACCktG,GAEJh/G,KAAKkxH,iBAILK,EAAUz/G,OACE,IAATA,GACAktG,GAEHh/G,KAAKwxH,eAET,CAEA,oBAAAC,GACEvlH,SAAS+I,oBAAoB,YAAajV,KAAKmxH,mBACjD,CAEA,kBAAAA,CAAmB7sG,GAEftkB,KAAKgxH,gBAAgBnd,UAAY7zG,KAAKgxH,gBAAgBnd,QAAQl4F,SAAS2I,EAAM7f,SAC1EzE,KAAK+wH,YAAYld,UAAY7zG,KAAK+wH,YAAYld,QAAQl4F,SAAS2I,EAAM7f,SAExEzE,KAAKwxH,eAET,CAEA,YAAAnB,CAAaqB,EAAQtB,GACnB,MAAM,cAAEuB,EAAa,SAAEC,GAAa5xH,KAAKyH,MACnCymF,EAAU,CACdoiC,aAAcoB,EACdG,kBAAmBzB,GAGjBuB,IACFzjC,EAAQ8wB,QAAS,GAGnBh/G,KAAKiwB,SAASi+D,GAEV0jC,GAAgC,mBAAbA,GACrBA,EAASF,EAEb,CAEA,SAAAL,GACE,MAAM,QACJvhH,EAAO,SACPjM,EAAQ,OACRqE,GACElI,KAAKyH,MAEHqqH,EAAa9xH,KAAKgxH,gBAAgBnd,QAExC,GAAI3rG,EAGF,OAFA4pH,EAAWjlH,MAAM2E,IAAM,GAAGtJ,EAAOsJ,WACjCsgH,EAAWjlH,MAAMmD,KAAO,GAAG9H,EAAO8H,QAIpC,MAAMipD,EAAYjzD,KAAKC,IACrBiG,SAASkB,gBAAgB6rD,UACzB/sD,SAASgE,KAAK+oD,UACdh5D,OAAOogH,SAEH9zG,EAAKvM,KAAK+wH,YAAYld,QACtBgd,EAAWtkH,EAAG6gB,aACdwjG,EAAiBkB,EAAaA,EAAW1kG,aAAe,EACxDsjG,EAAgBoB,EAAaA,EAAWxhH,YAAc,EACtDyhH,EAAiBxlH,EAAGqb,yBACpB,KAAE5X,EAAI,IAAEwB,GAAQugH,EACtB,IAAIC,EAAY,EACZC,EAAajiH,EAIfgiH,EADExB,GAASG,mBAAmBpkH,EAAIqkH,GACtBp/G,EAAMynD,EAAY43D,EAElBr/G,EAAMynD,EAAY23D,EAAiB,EAG5CJ,GAASC,kBAAkBlkH,EAAImkH,KAClCuB,EAAajiH,EAAOzD,EAAG+D,YAAcogH,GAGtB,aAAb7sH,IACFiuH,EAAWjlH,MAAM2E,IAAM,GAAGwgH,MACV,UAAZliH,IACFgiH,EAAWjlH,MAAMmD,KAAO,GAAGiiH,QAGf,UAAZniH,IACFgiH,EAAWjlH,MAAM+C,SAAW,GAAG5P,KAAKixH,kBAAkBpd,QAAQvjG,gBAElE,CAEA,oBAAA4hH,GACE,MAAM,SACJC,EAAQ,aACRC,EAAY,UACZxlH,EAAS,SACTylH,EAAQ,iBACRnK,EAAmB,IACjBloH,KAAKyH,MACT,IAAIquG,EAAa,CAACoS,EAAkB,gBAapC,OAXApS,EAAW/zG,KAAK,SAASswH,GAAY,aAEjCzlH,IACFkpG,EAAaA,EAAWn6E,OAAO/uB,EAAUvK,MAAM,OAG7C8vH,IACFrc,EAAW/zG,KAAK,oBAChB+zG,EAAW/zG,KAAKqwH,EAAe,qBAAqBA,IAAiB,yBAGhEtc,EAAWtzG,KAAK,IACzB,CAEA,aAAAqzG,GACE,MAAM,OACJmJ,GACEh/G,KAAKmhC,OACH,iBACJmxF,EAAgB,QAChBxiH,EAAO,eACPyiH,EAAc,SACd1uH,EAAQ,UACRq0B,GACEl4B,KAAKyH,MACT,IAAIquG,EAAa,CAAC,oBAAqB,gBA0BvC,OAxBI59E,GACF49E,EAAW/zG,KAAK,4BAGdi9G,GACFlJ,EAAW/zG,KAAK,UAGdwwH,IACFzc,EAAaA,EAAWn6E,OAAO42F,EAAelwH,MAAM,OAGlDyN,GACFgmG,EAAW/zG,KAAK,uBAGduwH,GACFxc,EAAW/zG,KAAK,wBAGD,aAAb8B,GACFiyG,EAAW/zG,KAAK,0BAGX+zG,EAAWtzG,KAAK,IACzB,CAEA,WAAAgwH,GACE,MAAM,SAAEC,EAAQ,qBAAEC,GAAyB1yH,KAAKyH,OAC1C,kBAAEoqH,GAAsB7xH,KAAKmhC,MAEnC,OAAKuxF,IAAwB,MAAAb,OAAA,EAAAA,EAAmBjqB,OACvCiqB,EAAkBjqB,MAGpB6qB,CACT,CAEA,aAAAjB,GACE,MAAM,QAAExZ,GAAYh4G,KAAKyH,MAEzBzH,KAAKiwB,SAAS,CACZ+uF,QAAQ,IACP,KACGhH,GACFA,GACF,GAEJ,CAEA,cAAAkZ,GACE,MAAM,OACJlS,GACEh/G,KAAKmhC,MACL69E,EACFh/G,KAAKwxH,gBAKPxxH,KAAKiwB,SAAS,CACZ+uF,QAAQ,GAEZ,CAEA,MAAAX,GACE,MAAM,SACJsU,EAAQ,aACRC,EAAY,QACZC,EAAO,eACPC,EAAc,iBACdR,EAAgB,SAChBD,EAAQ,SACR39D,EAAQ,MACRp4B,EAAK,iBACLy2F,EAAgB,kBAChBC,EAAiB,cACjBzC,EAAa,SACb57G,GAAW,EAAK,UAChBujB,GACEl4B,KAAKyH,OACH,aACJ6oH,EAAY,OACZtR,GACEh/G,KAAKmhC,MACH8xF,EAAqBX,EAAmB,MAAQ,KACtD,OACE,kBAAC,OACC1lH,UAAW5M,KAAKkyH,uBAChBnf,IAAK/yG,KAAK+wH,aAGRz0F,EAEI,kBAAC,SAAM1vB,UAAU,sBACd0vB,GAGH,KAGJ02F,EAEI,kBAAC,GACCpmH,UAAW,yBAA0BoyG,EAAU,iCAAmC,OAAO4T,IACzFz+F,MAAOk+F,GAAY,UACnBzf,QAAS5yG,KAAKkxH,eACdxe,SAAUqgB,EAAmB,eAAiB,KAC9Crd,aAAa,QACb3nE,KAAM8kF,GAAW,KACjB9+G,KAAK,SACLY,WACAo+F,IAAK/yG,KAAKixH,mBAER6B,GAAkB9yH,KAAKwyH,eAG3B,KAGJxT,EACI,kBACA,kBAAC8Q,GAAgBzc,SAAhB,CAEC/vG,MAAO,CACL+sH,aAAcrwH,KAAKqwH,aACnBC,eACAC,kBAIAvR,EAEI,kBAACiU,2HAAA,EACCrmH,UAAW5M,KAAK61G,gBAChB9C,IAAK/yG,KAAKgxH,iBAEL94F,GAAa,CACdrrB,MAAO,CACLqrB,eAMiB,mBAAbw8B,EACJA,EAAS,CACT88D,cAAexxH,KAAKwxH,cAAcxtG,KAAKhkB,QAEvC00D,GAIR,MAGRxoD,SAASsuB,cAAcm4F,GAAY,SAEnC,KAIZ,EAGFnC,GAASpe,UAAY,CACnBugB,SAAU,WACVj+D,SAAU,cAAoB,CAC5B,YACA,SACA,WACA,WAEFi9D,cAAe,SACfiB,aAAc,WACdC,QAAS,WACTT,aAAc,WACdC,SAAU,WACVI,SAAU,cAAoB,CAC5B,SACA,YACA,aAEFK,eAAgB,cAAoB,CAClC,SACA,YACA,aAEFX,SAAU,SACVvlH,UAAW,WACXkD,QAAS,WACT6E,SAAU,SACV29G,iBAAkB,SAClBh2F,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEFi2F,eAAgB,WAChBva,QAAS,SACT4Z,SAAU,SACV9/G,KAAM,SACN5J,OAAQ,eAAqB5G,QAC7BuC,SAAU,WACVysH,aAAc,WACdyC,iBAAkB,SAClBL,qBAAsB,SACtBM,kBAAmB,SACnBzC,cAAe,SACfr4F,UAAW,WACXgwF,iBAAkB,YAGpBsI,GAASld,aAAe,CACtBqe,eAAe,EACfoB,kBAAkB,EAClBC,mBAAmB,EACnBzC,eAAe,EACfz+G,MAAM,GAGR0+G,GAASpb,KAAO,GAEhB,2OCvaA,SAAS8d,IAAgB,MACvBtrB,EAAK,MACLzzE,EAAQ,uBACRg/F,EAAY,OACZC,EAAM,eACNC,EAAc,MACd/vH,GACCyvG,GACD,OACGogB,EAaC,kBAAC,EAAW,CAACpgB,OACX,kBAAC,6HACC5+E,SACIk/F,GAAkB,CAAEzgB,QAAS,IAAMygB,EAAe/vH,KAErDskG,GAEH,kBAAC,GACCh7F,UAAU,oBACV8lG,SAAS,eACT+C,WAAW,QACXC,aAAa,QACbvhF,QACAy+E,QAASwgB,EACTzd,UAAQ,KA1BZ,kBAAC,GACC/oG,UAAU,oBACV8lG,SAAS,eACT+C,WAAW,QACXC,aAAa,QACbvhF,QACA4+E,MACAH,QAASwgB,GAERxrB,EAsBT,CAEAsrB,GAAgB9gB,UAAY,CAC1BxK,MAAO,WACPzzE,MAAO,WACPg/F,aAAc,SACdC,OAAQ,SACRrC,YAAa,UAAgB,CAC3Bld,QAAS,eAAqB1D,WAC7BkC,WACHghB,eAAgB,SAChB/vH,MAAO,cAAoB,CACzB,WACA,cAIJ,UAAe,IAAAiwG,YAAW2f,8VC1D1B,SAASI,IAAoB,SAC3B5+D,EAAQ,QACRlnD,EAAO,SACPm2G,GACC5Q,GACD,OACE,kBAAC,IACCvlG,UACAulG,MACAnmG,UAAU,iBACV/I,SAAS,SACT40F,UAAU,OACVvwF,OAAQ,EACRg9F,OAAK,GAEL,kBAAC,IACCr4F,MAAO,MACF82G,GAAY,CAAEA,aAEnBxvF,MAAM,WAEJugC,GAIV,CAEA4+D,GAAoBlhB,UAAY,CAC9B5kG,QAAS,UAAgB,CACvBqmG,QAAS,eAAqB1D,WAEhCz7C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEFivD,SAAU,YAGZ,UAAe,IAAApQ,YAAW+f,IC5Cb,IAAkB,IAAAxhB,2WCG/B,SAAS,IAAa,SACpBp9C,EAAQ,MACRpxD,IAEA,MAAM,SAAEypC,EAAUzpC,MAAOiwH,IDJlB,IAAA9gB,YAAW,ICKlB,OACE,kBAAC,GAAK2C,KAAL,MACK9xG,IAAUiwH,GAAiB,CAAElxF,UAAU,IAE3C,kBAAC,UACK0K,GAAY,CAAE6lE,QAAS,IAAM7lE,EAASzpC,KAExCoxD,GAIV,CAEA,GAAa09C,UAAY,CACvB19C,SAAU,SAEVpxD,MAAO,SAGT,YCpBA,SAASkwH,IAAU,SACjB9+D,EAAQ,MACRkzC,EAAK,MACLzzE,EAAK,aACLg/F,EAAY,SACZpmF,EAAQ,MACRzpC,EAAK,wBACLmwH,EAAuB,SACvB9P,EAAQ,eACR0P,IAEA,MAAM,OACJ5/F,EAAM,OACN2/F,EAAM,YACNrC,EAAW,gBACXC,GCpBgB,GAClBmC,mBAEA,MAAO1/F,EAAQigG,IAAa,IAAAzgB,WAAS,GAC/B8d,GAAc,IAAA5c,QAAO,MACrB6c,GAAkB,IAAA7c,QAAO,MAIzBwf,GAAqB,IAAA5f,cAAa5qG,IACtC,MAAMyqH,EAAkBT,EAEpBpC,EAAYld,QAAQr5E,cAAc,sBADlCu2F,EAAYld,SAGdpgF,GACImgG,EAAej4G,SAASxS,EAAE1E,SAC1BusH,EAAgBnd,QAAQl4F,SAASxS,EAAE1E,SAEvCivH,GAAU,EACZ,GACC,CAACjgG,IASJ,OAPA,IAAA2gF,YAAU,KACRloG,SAAS4I,iBAAiB,YAAa6+G,GAChC,KACLznH,SAAS+I,oBAAoB,YAAa0+G,EAAmB,IAE9D,CAACA,IAEG,CACLlgG,SACA2/F,OAxBa,IAAMM,GAAWjgG,GAyB9Bs9F,cACAC,kBACD,EDbG,CAAY,CACdmC,iBAGI/f,GAAe,IAAAF,UAAQ,KAAM,CACjCnmE,WACAzpC,WACE,CAACypC,EAAUzpC,IAEf,OACE,kBAAC,GAAgB+vG,SAAhB,CACC/vG,MAAO8vG,GAEP,kBAAC,IACCxL,MACE6rB,EACInwH,EACAskG,EAENyrB,iBACAl/F,QACAg/F,eACAC,SACArgB,IAAKge,EACLztH,UAEDmwB,GACC,kBAAC,IACCjmB,QAASujH,EACThe,IAAKie,EACLrN,YAEEjvD,GAKZ,CAEA8+D,GAAUphB,UAAY,CAEpBxK,MAAO,WAEPzzE,MAAO,WACPugC,SAAU,SAGVy+D,aAAc,SAEdpmF,SAAU,SAEVzpC,MAAO,cAAoB,CACzB,WACA,aAGFmwH,wBAAyB,SAEzB9P,SAAU,WAGV0P,eAAgB,UAGlBG,GAAUpe,KAAO,GAEjB,qCE3FA,MAAM,GAA+BtzG,QAAQ,giBCmB7C,SAAS+xH,GAAWpsH,GAClB,MAAM,SACJkN,EAAQ,SACR4X,EAAQ,kBACRunG,EAAiB,GACjBjxH,EAAE,MACFhC,EAAK,MACLy7B,EAAK,WACL+nF,EAAU,KACV2J,EAAI,OACJ9mG,EAAM,SACN6lB,EAAQ,MACR5Y,EAAK,MACL7wB,EAAK,WACLoS,EAAU,iBACVwyG,GACEzgH,EACEwG,EAAU,CACd,iBACAi6G,KACI/zF,EAAQA,EAAM9xB,MAAM,KAAK8C,KAAK2iB,GAAM,mBAAmBA,MAAO,GAClEu8F,GAAc,kCACdxjH,GAAS,aACTmV,OAAO4uB,SAASpiC,KAAK,KAEjBuxH,EAAkB,SACnBr+G,GACAo+G,GAAqB,CAAEz4D,WAAW,IAGjC24D,GAAqB,IAAAjgB,cAAY,IACrClzG,GAAmB,SAAVA,GAA8B,UAAVA,EAEzB,kBAAC,KAAE+L,UAAU,mCACV/L,GAGH,MACH,CAACA,IAEEozH,GAAiB,IAAAlgB,cAAY,IAC7BsQ,EAAmB,CAAEC,UAAWD,GAC7B,CAAC,GACP,CAACA,IAEE6P,GAAmB,IAAAngB,cAAY,IAC/BsQ,EAAmB,CAAEC,UAAW,eAAeD,aAC5C,CAAC,GACP,CAACA,IAEE8P,GAAiB,IAAApgB,cAAaprF,IAC9BokB,GAAUA,EAASpkB,EAAS,GAC/B,CAACokB,IAEEqnF,GAAe,IAAArgB,cAAY,KAC3B7sF,GAAQA,EAAO5jB,EAAM,GACxB,CAAC4jB,EAAQ5jB,IAEZ,OACE,kBAAC,OAAIsJ,UAAWqB,GAEZquB,EACI,kBAAC,SAAM+3F,QAASxxH,EAAIgK,MAAOonH,KAAoB33F,GAC/C,KAEN,kBAAC,OAAI1vB,UAAU,4BAA4BC,MAAOqnH,KAChD,kBAAC,YACCtnH,UAAU,oBACNnF,WAFL,CAGCslC,SAAUonF,EACVjtG,OAAQktG,EACRjgG,MAAM,SACNmgG,YAAa,CAAEC,iBAAiB,GAChChoG,SAAUA,GAAY5X,EACtByE,OAASo7G,IAEPA,EAAevlH,UAAUpC,MAAMgmE,OAAS,OAExC3mE,SAAS4I,iBAAiB,WAAW,IACnC0/G,EAAe3hD,UACf,EAEJn9D,WAAYq+G,OAGZ/F,EACI,kBAAC,KAAEphH,UAAU,gCAAiCohH,GAC9C,KAEJgG,WAIV,CA/FA,YAAWp7G,aAAa,uBAAwB,IAiGhDi7G,GAAWzhB,UAAY,CACrBz9F,SAAU,SACV4X,SAAU,SACVunG,kBAAmB,SACnBjxH,GAAI,WACJhC,MAAO,cAAoB,CACzB,WACA,WAEFy7B,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEF+nF,WAAY,WACZviF,KAAM,WACN3+B,KAAM,WACN6qH,KAAM,WACN9mG,OAAQ,SACR6lB,SAAU,SACV5Y,MAAO,WACP7wB,MAAO,WACPoS,WAAY,eAAqBpU,QACjC4mH,iBAAkB,YAGpB,qaCvIA,MAAMuM,GAAyB,CAACC,EAAU5kB,EAAMxsG,IACzCA,IACKoxH,GAAY5kB,EAAQ,GAAK,MAMrC,MAAM6kB,WAAiB,EAAAlP,UACrB,gBAAOmP,GACL,MAAO,CACL3tG,QAAS,EACT+3F,QAAQ,EAEZ,CAEA,eAAO6V,GACL,MAAO,CACL7V,QAAQ,EAEZ,CAEA,mBAAO8V,CAAaC,EAAWC,GAC7B,OAAOD,EAAU5xH,KAAKiH,cAAcjI,QAAQ6yH,IAAe,CAC7D,CAEA,WAAAjiH,CAAYtL,GACVqpH,MAAMrpH,GACN,MAAM,SACJitH,EAAQ,KACR5kB,EAAI,MACJxsG,GACEmE,EAEJzH,KAAKmhC,MAAQ,CACXla,QAAS,EACT+3F,QAAQ,EACRrvG,MAAO,GACPiH,aAActT,EACd2xH,oBAAqBR,GAAuBC,EAAU5kB,EAAMxsG,GAC5D4xH,WAAY,GACZplB,QAGF9vG,KAAKm1H,aAAc,IAAAzW,aACnB1+G,KAAKo1H,eAAgB,IAAA1W,aACrB1+G,KAAKq1H,UAAW,IAAA3W,aAChB1+G,KAAKs1H,SAAU,IAAA5W,aAEf1+G,KAAKu1H,WAAav1H,KAAKu1H,WAAWvxG,KAAKhkB,MACvCA,KAAK2+G,QAAU3+G,KAAK2+G,QAAQ36F,KAAKhkB,MACjC20H,GAASE,SAAWF,GAASE,SAAS7wG,KAAKhkB,MAC3CA,KAAKmxH,mBAAqBnxH,KAAKmxH,mBAAmBntG,KAAKhkB,MACvDA,KAAKw1H,sBAAwBx1H,KAAKw1H,sBAAsBxxG,KAAKhkB,MAC7DA,KAAKy1H,4BAA8Bz1H,KAAKy1H,4BAA4BzxG,KAAKhkB,MACzEA,KAAK01H,oBAAsB11H,KAAK01H,oBAAoB1xG,KAAKhkB,MACzDA,KAAK21H,sBAAwB31H,KAAK21H,sBAAsB3xG,KAAKhkB,MAC7DA,KAAK41H,mBAAqB51H,KAAK41H,mBAAmB5xG,KAAKhkB,KACzD,CAEA,iBAAAoxH,GACE,MAAM,KAAEthB,GAAS9vG,KAAKyH,MAElBqoG,GACF9vG,KAAK61H,gBAGP71H,KAAK2mH,YACP,CAEA,oBAAA8K,GACEzxH,KAAK81H,cACP,CAEA,+BAAOC,CAAyBC,EAAWnrF,GACzC,OACE0tB,KAAK09D,UAAUD,EAAU1yH,SAAWi1D,KAAK09D,UAAUprF,EAAUj0B,eAC1Do/G,EAAUlmB,OAASjlE,EAAUilE,KAEzB,CACLl5F,aAAco/G,EAAU1yH,MACxB2xH,oBAAqBR,GACnBuB,EAAUtB,SACVsB,EAAUlmB,KACVkmB,EAAU1yH,OAEZwsG,KAAMkmB,EAAUlmB,MAIb,IACT,CAEA,qBAAA0lB,CAAsBrsH,GACpB,MAAM,KAAE2mG,GAAS9vG,KAAKyH,MACtB,IAAiD,IAA7C,CAAC,YAAa,WAAWtF,QAAQgH,EAAEnE,KACrC,OAGF,MAAM,OAAEiiB,GAAWjnB,KAAKmhC,MAClB+0F,EAAiBl2H,KAAKm2H,eAC5B,IAAIC,EAoBJ,GAlBAjtH,EAAEmK,iBAEY,cAAVnK,EAAEnE,OACY,IAAZiiB,GAAiBA,IAAWivG,EAAe31H,OAAS,EACtD61H,EAAa,EACJnvG,EAASivG,EAAe31H,OAAS,IAC1C61H,EAAanvG,EAAS,IAIZ,YAAV9d,EAAEnE,MAEFoxH,EADEnvG,EAAS,EACEA,EAAS,EAETivG,EAAe31H,OAAS,GAIrCP,KAAKo1H,cAAcvhB,SAAWuiB,EAAa,EAAG,CAChD,MAAMn9D,EAA+B,IAAlBm9D,EAAa,GAEhCp2H,KAAKo1H,cAAcvhB,QAAQ56C,UAAc62C,EAAyB72C,EAAjB,GAAKA,CACxD,MAAWj5D,KAAKo1H,cAAcvhB,UAC5B7zG,KAAKo1H,cAAcvhB,QAAQ56C,UAAY,GAGzCj5D,KAAKiwB,UAAUomG,IAAmB,eAC7BA,WAD6B,CAEhCrX,QAAQ,EACR/3F,OAAQmvG,UACR,GACJ,CAEA,mBAAAV,CAAoB9wH,GAGlB,GADqB5E,KAAKyH,MAAMxC,OAAOL,GACtB+P,SAAU,OAE3B,MAAM,SAAE+/G,EAAQ,KAAE5kB,GAAS9vG,KAAKyH,MAE1B6uH,EAAcxmB,EAAQ,qBAAuB,uBAC7CymB,EAAY,SAAKv2H,KAAKmhC,OAAUnhC,KAAKs2H,GAAY1xH,IAEvD5E,KAAKiwB,UAAUomG,IACR3B,GAAa5kB,IAChBymB,EAAUvX,QAAS,GAGd,SAAKqX,GAAkBE,KAElC,CAEA,qBAAAZ,CAAsB/wH,GACpB,MAAM,SAAE+P,GAAa3U,KAAKyH,MAE1B,GAAIkN,EACF,OAGF,MAAM4hH,EAAYv2H,KAAKw2H,oBAAoB5xH,GAE3C5E,KAAKiwB,UAAUomG,GAAmB,SAAKA,GAAkBE,IAC3D,CAEA,kBAAApF,CAAmB7sG,GAEftkB,KAAKo1H,cAAcvhB,UAAY7zG,KAAKo1H,cAAcvhB,QAAQl4F,SAAS2I,EAAM7f,SACtEzE,KAAKm1H,YAAYthB,UAAY7zG,KAAKm1H,YAAYthB,QAAQl4F,SAAS2I,EAAM7f,SAExEzE,KAAKiwB,UAAUomG,GAAmB,SAAKA,GAAkB1B,GAASC,cAEtE,CAEA,2BAAAa,GACE,MAAM,SAAE9gH,GAAa3U,KAAKyH,MAEtBkN,GAIJ3U,KAAKiwB,UAAUomG,GAAmB,SAAKA,GAAkB1B,GAASE,aACpE,CAEA,OAAAlW,CAAQx1G,GACN,MAAM,KAAE2mG,EAAI,kBAAE2mB,GAAsBz2H,KAAKyH,OACnC,OAAEwf,EAAM,OAAE+3F,GAAWh/G,KAAKmhC,MAC1B+0F,EAAiBl2H,KAAKm2H,eAC5B,IAAII,EAAYv2H,KAAK02H,gBAMrB,GAJI5mB,GAAkB,WAAV3mG,EAAEnE,MACZuxH,EAAY,SAAKA,GAAcv2H,KAAK61H,kBAGxB,UAAV1sH,EAAEnE,IAAiB,CACrB,MAAMsxH,EAAcxmB,EAAQ,qBAAuB,uBACnDymB,EAAY,SAAKA,GAAcv2H,KAAKs2H,GAAYrvG,GAClD,CAEIwvG,GAA+B,MAAVttH,EAAEnE,KAAe8qG,IACxCymB,EAAY,SAAKA,GAAcv2H,KAAK41H,wBAInC5W,GACIh/G,KAAKq1H,SAASxhB,QAAQvwG,QACtB,MAAA4yH,OAAA,EAAAA,EAAgB31H,SACN,WAAV4I,EAAEnE,MAEPuxH,EAAY,SAAKA,GAAc5B,GAASE,aAG5B,WAAV1rH,EAAEnE,KAAoBg6G,IACxBuX,EAAY,SAAKA,GAAc5B,GAASC,cAGtC5V,GAAUkX,IAAmBA,EAAe31H,SAC9Cg2H,EAAY,SAAKA,GAAc5B,GAASC,cAG1C50H,KAAKiwB,UAAUomG,GAAmB,SAAKA,GAAkBE,IAC3D,CAEA,cAAAtC,GACE,MAAM,WAAE5P,GAAerkH,KAAKyH,MACtBkJ,EAAS,CAAC,EAMhB,OAJI0zG,IACF1zG,EAAO2zG,UAAYD,GAGd1zG,CACT,CAEA,gBAAAujH,GACE,MAAM,WAAE7P,GAAerkH,KAAKyH,MACtBkJ,EAAS,CAAC,EAMhB,OAJI0zG,IACF1zG,EAAO2zG,UAAY,eAAeD,aAG7B1zG,CACT,CAEA,aAAAklH,GACE,MAAO,CACLlmH,MAAO,GAAK3P,KAAKs1H,QAAQzhB,QAAQzjG,YAErC,CAEA,gBAAAumH,CAAiBrzH,GACf,MAAM,oBAAE2xH,GAAwBj1H,KAAKmhC,MACrC,IAAIt9B,GAAY,EAchB,OAZIwB,MAAMoB,QAAQwuH,GAChBA,EAAoBlwH,SAAQ,CAACa,EAAMhB,KAC7BgB,EAAK/C,KAAOS,EAAMT,KACpBgB,EAAWe,EACb,IAEOqwH,GACLA,EAAoBpyH,KAAOS,EAAMT,KACnCgB,EAAW,GAIRA,CACT,CAEA,aAAA6yH,GACE,MAAO,CACLxB,WAAYl1H,KAAKq1H,SAASxhB,QAAQvwG,MAEtC,CAEA,qBAAAszH,CAAsBtzH,EAAOsB,GAC3B,MAAMkxG,EAAa,IACb,OACJ7uF,GACEjnB,KAAKmhC,MAUT,OARIla,IAAWriB,GACbkxG,EAAW/zG,KAAK,UAGduB,EAAMqR,UACRmhG,EAAW/zG,KAAK,YAGX+zG,EAAWtzG,KAAK,IACzB,CAEA,uBAAAq0H,GACE,MAAM,OAAE7X,GAAWh/G,KAAKmhC,OAClB,KAAE2uE,EAAI,MAAE37E,GAAUn0B,KAAKyH,MACvBqvH,EAAS3iG,EAAQA,EAAM9xB,MAAM,KAAO,GAEpCyzG,EAAa,CAAC,sBAgBpB,OAdIkJ,GACFlJ,EAAW/zG,KAAK,8BAGd+tG,GACFgG,EAAW/zG,KAAK,gCAGd+0H,EAAOv2H,QACTu2H,EAAO/xH,SAASgyH,IACdjhB,EAAW/zG,KAAK,mBAAmBg1H,IAAS,IAIzCjhB,EAAWtzG,KAAK,IACzB,CAEA,aAAAqzG,GACE,MAAM,MACJh1G,EAAK,SAAE8T,EAAQ,MAAEwf,EAAK,WAAEkwF,GACtBrkH,KAAKyH,MACHquG,EAAa,CAAC,iBAAkB,gBAChCghB,EAAS3iG,EAAQA,EAAM9xB,MAAM,KAAO,GAoB1C,OAlBIxB,GACFi1G,EAAW/zG,KAAK,aAGdsiH,GACFvO,EAAW/zG,KAAK,mCAGd+0H,EAAOv2H,QACTu2H,EAAO/xH,SAASgyH,IACdjhB,EAAW/zG,KAAK,mBAAmBg1H,IAAS,IAI5CpiH,GACFmhG,EAAW/zG,KAAK,YAGX+zG,EAAWtzG,KAAK,IACzB,CAEA,aAAAw0H,GACE,MAAM,MAAEn2H,GAAUb,KAAKyH,MAEvB,OAAQ5G,GAAmB,SAAVA,GAA8B,UAAVA,EAEjC,kBAAC,KACC+L,UAAU,mCAER/L,GAGJ,IACN,CAEA,SAAAwwH,GACE,MAAM,UAAEp4D,GAAc/sD,SAASkB,gBACzBb,EAAKvM,KAAKm1H,YAAYthB,QACtBgd,EAAWtkH,EAAGgoB,aACd0iG,EAAU1qH,EAAG6D,YAEblI,EAASqE,EAAGqb,yBACZ,KAAE5X,GAAS9H,EACjB,IAAIsJ,EAAM,EAIV,OAFAA,EAAMtJ,EAAOsJ,IAAMynD,EAAY43D,EAExB,CACLr/G,IAAQA,EAAM,EAAT,KACLxB,KAAM,GAAGA,MACTL,MAAO,GAAGsnH,MAEd,CAEA,sBAAAC,GACE,MAAM,oBAAEjC,GAAwBj1H,KAAKmhC,OAC/B,SAAEuzF,EAAQ,YAAE/lE,EAAW,OAAE1pD,GAAWjF,KAAKyH,MAE/C,OAAKwtH,EAIDA,GAAuB5vH,MAAMoB,QAAQwuH,KAAyBA,EAAoB10H,OAC7EouD,GAGLsmE,GAAwB5vH,MAAMoB,QAAQwuH,IAAyBA,EAAoBpyH,GAInFwC,MAAMoB,QAAQwuH,IAAwBP,EACjCO,EAAoBkC,QAAO,CAACC,EAAW9zH,EAAOsB,IAAUwyH,EAAY9zH,EAAMH,MAASyB,IAAUqwH,EAAoB10H,OAAS,EAAK,KAAO,KAAK,MAIlJ,MAAA0E,OAAA,EAAAA,EAAQ1E,SACJ8E,MAAMoB,QAAQwuH,IAAyBA,EAAoB9xH,KAK1D8xH,EAAoB9xH,KAHlB8B,EAAO+Q,QAAQ1S,GAAUA,EAAMT,KAAOoyH,EAAoBpyH,KAAI,GAAGM,KAXjEwrD,EARAA,CAuBX,CAEA,kBAAAinE,CAAmBhxH,GACjB,MAAM,IAAEqB,EAAG,kBAAEwwH,GAAsBz2H,KAAKyH,OAClC,oBAAEwtH,GAAwBj1H,KAAKmhC,MAC/B+0F,EAAiBl2H,KAAKm2H,eACtB7yH,EAAQ,CAAET,GAAI7C,KAAKq1H,SAASxhB,QAAQvwG,MAAOH,KAAMnD,KAAKq1H,SAASxhB,QAAQvwG,OAE7E,IAA0B,IAAtBmzH,IAA0C,IAAX7xH,EACjC,OAAO,KAGT,MAAMyyH,EAAYnB,EAAetxH,IAAUtB,EACrCg0H,EAAgBt3H,KAAK22H,iBAAiBU,GAC5C,IAAIE,EAAiB,CAAC,EAItB,GAFAv3H,KAAKq1H,SAASxhB,QAAQvwG,MAAQ,GAE1Bg0H,GAAiB,GAAKt3H,KAAKw3H,kBAAkBH,GAC/CE,EAAiBv3H,KAAKw2H,oBAAoBc,QACrC,IAAuB,IAAnBA,EAAsB,CAC/B,GAAIrxH,GAAOgvH,EAAoB10H,QAAU0F,EACvC,OAAOsxH,EAETA,EAAiBv3H,KAAKy3H,iBAAiBJ,EACzC,CAEA,OAAOE,CACT,CAGA,oBAAAG,CAAqB9yH,GACnB,MAAM,oBAAEqwH,GAAwBj1H,KAAKmhC,OAC/B,SAAEuzF,EAAQ,SAAE3nF,EAAQ,IAAE9mC,GAAQjG,KAAKyH,MACnCyuH,EAAiBl2H,KAAKm2H,eACtBwB,EAAqBzB,EAAetxH,GAC1C,IAAI2yH,EACJ,MAAMD,EAAgBt3H,KAAK22H,iBAAiBgB,GAE5C,GAAIA,GAAsBjD,EACxB,GAAI4C,GAAiB,EACnBC,EAAiBv3H,KAAKw2H,oBAAoBc,OACrC,CACL,GAAIrxH,GAAOgvH,EAAoB10H,QAAU0F,EACvC,OAAOsxH,EAETA,EAAiBv3H,KAAKy3H,iBAAiBvB,EAAetxH,GACxD,MAEA2yH,EAAiB,CACftC,qBAAyC,IAAnBqC,EAAwBK,EAAqB,CAAE90H,GAAI,OAG3E,MAAAkqC,GAAAA,GAA+B,IAAnBuqF,EAAwBK,EAAqB,MAG3D,OAAOJ,CACT,CAEA,mBAAAf,CAAoB5xH,GAClB,MAAM,oBAAEqwH,GAAwBj1H,KAAKmhC,OAC/B,SAAE4L,GAAa/sC,KAAKyH,MACpBmwH,EAA0Br/D,KAAKC,MAAMD,KAAK09D,UAAUhB,IAQ1D,OANA2C,EAAwBhwH,OAAOhD,EAAO,GAElCmoC,GAAgC,mBAAbA,GACrBA,EAAS6qF,EAAwBr3H,OAASq3H,EAA0B,MAG/D,CACL3C,oBAAqB2C,EACrB1C,WAAY,GAEhB,CAEA,gBAAAuC,CAAiBn0H,GACf,MAAM,oBAAE2xH,GAAwBj1H,KAAKmhC,OAC/B,SAAE4L,GAAa/sC,KAAKyH,MACpBmwH,EAA0Br/D,KAAKC,MAAMD,KAAK09D,UAAUhB,IAQ1D,OANA2C,EAAwB71H,KAAKuB,GAEzBypC,GAAgC,mBAAbA,GACrBA,EAAS6qF,EAAwBr3H,OAASq3H,EAA0B,MAG/D,CACL3C,oBAAqB2C,EACrB1C,WAAY,GAEhB,CAEA,iBAAAsC,CAAkBl0H,GAChB,MAAM,OAAE2B,GAAWjF,KAAKyH,MACxB,IAAIowH,GAAK,EAQT,OANA5yH,EAAOF,SAASa,IACVtC,EAAMT,KAAO+C,EAAK/C,KACpBg1H,GAAK,EACP,IAGKA,CACT,CAEA,YAAA1B,GACE,MAAM,OAAElxH,EAAM,WAAE6yH,GAAe93H,KAAKyH,MAEpC,OAAKzH,KAAKq1H,SAASxhB,QAIP5uG,EACT+Q,QACE1S,GAAWw0H,EACRA,EAAWx0H,EAAOtD,KAAKq1H,SAASxhB,QAAQvwG,MAAM8G,eAC9CuqH,GAASG,aAAaxxH,EAAOtD,KAAKq1H,SAASxhB,QAAQvwG,MAAM8G,iBAPxDnF,CAWX,CAEA,UAAA0hH,GACEz6G,SAAS4I,iBAAiB,YAAa9U,KAAKmxH,mBAC9C,CAEA,YAAA2E,GACE5pH,SAAS+I,oBAAoB,YAAajV,KAAKmxH,mBACjD,CAGA,KAAAtnE,GACE,MAAM,SAAE6qE,EAAQ,KAAE5kB,EAAI,MAAExsG,GAAUtD,KAAKyH,MAEvCzH,KAAKiwB,SAAS,CACZglG,oBAAqBR,GAAuBC,EAAU5kB,EAAMxsG,IAEhE,CAEA,UAAAiyH,GACMv1H,KAAKq1H,SAASxhB,SAChB7zG,KAAKq1H,SAASxhB,QAAQtsF,OAE1B,CAEA,WAAAwwG,CAAY7B,GACV,MAAM,SACJvhH,EAAQ,KACRm7F,EAAI,IACJ7pG,EAAG,YACH0oD,GACE3uD,KAAKyH,OACH,MACJkI,EAAK,WAAEulH,EAAU,oBAAED,GACjBj1H,KAAKmhC,MAET,OACE,kBAAC,MACCv0B,UAAW,oBAAoBkjG,EAAQ,+BAAiC,IACxE8C,QAAS5yG,KAAKu1H,WACdjW,UAAW,OACXvM,IAAK/yG,KAAKm1H,aAGRrlB,EAEI,qCAEKmlB,GAAuB,IAAI9vH,KAAI,CAAC7B,EAAOsB,IACtC,kBAAC,MAAGgI,UAAU,OAAO5H,IAAK1B,EAAMT,IAC9B,kBAAC,UACCkR,KAAK,SACL6+F,QAAS5yG,KAAK21H,sBAAsB3xG,KAAKhkB,KAAM4E,GAC/C,aAAW,UAEX,kBAAC,EAAI,CAACmP,KAAK,WAEb,kBAAC,YAAOzQ,EAAMH,SAIpB,kBAAC,MACCyJ,UAAU,2BACVC,MAAO,CACL8C,OAAS,MAAAslH,OAAA,EAAAA,EAAqB10H,QAAmB,OAAT,eAGhC,IAAR0F,IAAqB,MAAAgvH,OAAA,EAAAA,EAAqB10H,QAAS0F,IACnD,oCACE,kBAAC,SACC2G,UAAU,mBACV+H,WACA2qG,UAAYn2G,IACI,UAAVA,EAAEnE,KACJmE,EAAEmK,iBAEJtT,KAAKw1H,sBAAsBrsH,EAAE,EAE/Bw1G,QAAS3+G,KAAK2+G,QACdhwD,aAAe,MAAAsmE,OAAA,EAAAA,EAAqB10H,QAAwB,GAAdouD,EAC9CokD,IAAK/yG,KAAKq1H,SACVxoH,MAAO,CACL8C,OAAS,MAAAslH,OAAA,EAAAA,EAAqB10H,QAAmB,GAAGoP,MAAZ,UAG5C,kBAAC,QACCojG,IAAK/yG,KAAKs1H,QACVzoH,MAAO,CACLmrH,UAAW,SACXn0H,SAAU,WACV2N,IAAK,YAGL0jH,IAIPgB,EAAe31H,OAAS,GACvB,kBAAC,GACCqM,UAAU,uCACV8lG,SAAS,eACTiD,UAAQ,EACR/C,QAAS5yG,KAAKy1H,gCAOtB,kBAAC,MACC7oH,UAAU,4BACVgmG,QAAS5yG,KAAKy1H,4BACdnW,UAAW,QAETt/G,KAAKk3H,yBACP,kBAAC,EAAI,CAACnjH,KAAK,kBAMzB,CAEA,cAAAkkH,CAAe/B,GACb,MAAM,KAAEpmB,GAAS9vG,KAAKyH,OAChB,OAAEu3G,GAAWh/G,KAAKmhC,MACxB,OACE,kBAAC,MACCv0B,UAAW5M,KAAK62H,0BAChB9jB,IAAK/yG,KAAKo1H,cACVvoH,MAAO7M,KAAKqxH,aAGTvhB,EAaG,KAXA,kBAAC,MAAGljG,UAAU,8BACZ,kBAAC,SACCsrH,UAAWlZ,EACXpyG,UAAU,mBACV+xG,QAAS3+G,KAAK2+G,QACdW,UAAWt/G,KAAKw1H,sBAChBxwH,IAAI,cACJ+tG,IAAK/yG,KAAKq1H,YAOlBa,EACG/wH,KAAI,CAAC7B,EAAOsB,IACX,kBAAC,MACCgI,UAAW5M,KAAK42H,sBAAsBtzH,EAAOsB,GAC7CguG,QAAS5yG,KAAK01H,oBAAoB1xG,KAAKhkB,KAAM4E,GAC7C06G,UAAW,OACXt6G,IAAK1B,EAAMT,IAGR7C,KAAK22H,iBAAiBrzH,IAAU,EAC7B,kBAAC,EAAI,CAACyQ,KAAK,UACX,KAEN,kBAAC,YACE,IACCzQ,EAAMH,SAOxB,CAEA,MAAAk7G,GACE,MAAM,oBACJ8Z,EAAmB,GACnBt1H,EAAE,MACFy5B,EAAK,KACL0xF,GACEhuH,KAAKyH,OACH,OAAEu3G,GAAWh/G,KAAKmhC,MAElB+0F,EAAiBl2H,KAAKm2H,eAE5B,OACE,oCACE,kBAAC,OAAIvpH,UAAW5M,KAAK61G,iBAEjBv5E,EACI,kBAAC,SAAM+3F,QAASxxH,EAAIgK,MAAO7M,KAAKi0H,kBAAoB33F,GACpD,KAEN,kBAAC,OACC1vB,UAAU,4BACVC,MAAO7M,KAAKk0H,oBAEXl0H,KAAK+3H,YAAY7B,GAEhBlI,EACI,kBAAC,KAAEphH,UAAU,gCAAiCohH,GAC9C,KAEJhuH,KAAKg3H,kBAKRmB,EAQG,kBAACA,EAAA,CACCplB,IAAK/yG,KAAKo1H,cACVxoH,UAAW5M,KAAK62H,0BAEhBD,sBAAuB52H,KAAK42H,sBAAsB5yG,KAAKhkB,MAEvD22H,iBAAkB32H,KAAK22H,iBAAiB3yG,KAAKhkB,MAC7Ck2H,iBAEAR,oBAAqB11H,KAAK01H,oBAAoB1xG,KAAKhkB,QAhBrDg/G,GAAUkX,EAAe31H,OACvB,kBACAP,KAAKi4H,eAAe/B,GACpBhqH,SAASsuB,cAAc,SAEvB,KAiBd,EAGFm6F,GAASviB,UAAY,CACnBqkB,kBAAmB,SACnB0B,oBAAqB,gBACrBL,WAAY,SACZnjH,SAAU,SACV9T,MAAO,WACPgC,GAAI,WACJy5B,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEF+nF,WAAY,WACZqQ,SAAU,SACVzuH,IAAK,WACL+nH,KAAM,cAAoB,CACxB,SACA,YACA,aAEFjhF,SAAU,SACV4hB,YAAa,WACbmhD,KAAM,SACN37E,MAAO,WACP7wB,MAAO,cAAoB,CACzB,WACA,eAAqBhC,QACrB,eAAqB+D,SAEvBJ,OAAQ,eAAqBI,QAG/BsvH,GAASrhB,aAAe,CACtBmjB,mBAAmB,GAGrB,YClyBA,SAAS2B,GAAM3wH,GACb,MAAM,MACJnE,EAAK,IACL2C,EAAG,KACH6pG,EAAI,cACJuoB,EAAa,aACbC,EAAY,YACZ3pE,EAAW,SACXh6C,EAAQ,YACR4jH,EAAW,cACXC,EAAa,MACbjxG,EACAo0E,UAAW2xB,EAAW,SACtB/gG,GACE9kB,EAEE4tH,GAAW,IAAAlhB,QAAO,MAClBskB,GAAkB,IAAAtkB,QAAO,OACxB6gB,EAAY0D,IAAiB,IAAAzlB,UAAS,KACtC0lB,EAAY9C,IAAiB,IAAA5iB,UAAS,QAE7C,SAAS2lB,EAAmBx1H,GAC1B,GAAIi1H,EAAc53F,MAAMthB,GAAO/b,EAAIb,OAAO,KAAO4c,IAAK,OACtD,MAAM05G,EAAQJ,EAAgB5kB,QAC9BglB,EAAMprH,UAAYrK,EAClByyH,EAAc,GAAG7vH,KAAKC,IAAI4yH,EAAMvoH,YAVV,IAU0C,QAChEooH,EAAct1H,GACdkqH,EAAY,mBAAoBlqH,EAClC,CA+BA,SAAS01H,IACPxL,EAAY,mBACd,CAEA,SAASyL,EAAU31H,EAAK41H,GAAgB,GACtC,GAAIzsG,EAAU,OAAOnpB,GAAO,IAE5B,MAAM6K,EAAU,CACd,4BACA,YAAYuqH,IACZQ,GAAiB,kBACjBhjH,OAAO4uB,SAASpiC,KAAK,KACvB,OACE,kBAAC,QACCoK,UAAWqB,EACX25F,MAAyB,WAAlB4wB,EAA6Bp1H,OAAM,EAC1C0jB,KAAK,OACLkQ,SAAUriB,EAAW,KAAO,IAC5Bi+F,QAASkmB,EACTxZ,UAAWwZ,GAEV11H,EAGP,CAEA,SAAS61H,EAAkB1lC,GASzB,OAAOglC,EAAYhlC,EARJ,CACbuc,OACAuoB,gBACA1pE,cACAh6C,WACA4jH,cACAjL,eAGJ,CAmEA,OAJA,IAAAlZ,YAAU,KACJ7sF,GAAS8tG,EAASxhB,SAASwhB,EAASxhB,QAAQtsF,OAAO,GACtD,CAACA,IAEAgF,EACK,kBAAC,OAAI3f,UAAU,8BAA8BmsH,EAAUz1H,EAAM6B,KAAKouF,GAAMA,EAAEpwF,OAAMX,KAAK,QAG1FstG,EA5CA,oCACGxsG,EAAM6B,KA1Bb,SAAmBouF,GACjB,OAAIglC,EAAoBU,EAAkB1lC,GAGxC,kBAAC,IACCvuF,IAAKuuF,EAAE1wF,GACPsxB,MAAM,YAEN,kBAAC,UACCpgB,KAAK,SACL6+F,QAAUzpG,IACRA,EAAEiK,kBACFk6G,EAAY,aAAc/5B,EAAE1wF,GAAG,EAEjC,aAAW,UAEX,kBAAC,EAAI,CAACkR,KAAK,WAEb,kBAAC,QAAK6zF,MAAOrU,EAAEpwF,MAAQowF,EAAEpwF,MAG/B,IAMOG,EAAM/C,OAAS0F,GACd,oCACE,kBAAC,SACC2G,UAAU,6BACVmmG,IAAKsiB,EACL1mE,YAAarrD,EAAM/C,OAAS,GAAKouD,EACjCh6C,WACArR,MAAO0xH,EACPnoH,MAAO,CAAE8C,MAAOrM,EAAM/C,OAASo4H,EAAa,QAC5C5rF,SAAW5jC,GAAMyvH,EAAmBzvH,EAAE1E,OAAOnB,OAC7Cg8G,UAAYn2G,IACI,UAAVA,EAAEnE,KAAiBmE,EAAEmK,iBAzGvC,SAA6BtO,EAAK5B,GAChC,GAAK0sG,EAAL,CACA,GAAY,KAAR1sG,GAAsB,cAAR4B,IAAuB1B,EAAM/C,OAI/C,MAAY,UAARyE,GACFsoH,EAAY,kBAAmBlqH,QAC/Bw1H,EAAmB,UAGT,YAAR5zH,EAIQ,cAARA,EAIQ,WAARA,EAIAqzH,EAAc/zH,SAASU,KACzBsoH,EAAY,UAAWlqH,GACvBw1H,EAAmB,KALnBtL,EAAY,oBAJZA,EAAY,uBAJZA,EAAY,sBATZA,EAAY,aAAchqH,EAAMA,EAAM/C,OAAS,GAAGsC,GAFzC,CA0Bb,CA+Ecq2H,CAAoB/vH,EAAEnE,IAAKmE,EAAE1E,OAAOnB,MAAM,EAE5C8jB,QAAS,IAAMkmG,EAAY,mBAC3BpmG,OAAS/d,IACPmkH,EAAY,iBAAkBnkH,EAAE1E,OAAOnB,OACnCg1H,GAAcM,EAAmB,GAAG,IAG5C,kBAAC,QACC7lB,IAAK0lB,EACL5rH,MAAO,CACLmrH,UAAW,SACXn0H,SAAU,WACV2N,IAAK,eAkBf+mH,EACsB,IAAjBj1H,EAAM/C,OAAew4H,EAAUpqE,GAAa,GAAQrrD,EAAM6B,IAAI8zH,GAE/C,IAAjB31H,EAAM/C,OACTw4H,EAAUpqE,GAAa,GACvBoqE,EAAUz1H,EAAM6B,KAAKouF,GAAMA,EAAEpwF,OAAMX,KAAK,MAC9C,CAEA41H,GAAMhmB,UAAY,CAChB9uG,MAAO,eAAqB+B,OAC5BY,IAAK,WACL6pG,KAAM,eAAqBzqG,OAC3BgzH,cAAe,eAAqBhzH,OACpCizH,aAAc,SACd3pE,YAAa,WACbh6C,SAAU,SACV4jH,YAAa,SACbC,cAAe,WACfjxG,MAAO,SACPo0E,UAAW,SACXpvE,SAAU,UAGZ,YC/LA,SAAS,GAAK9kB,GACZ,MAAM,QACJ0xH,EAAO,KACPrpB,EAAI,OACJ7qG,EAAM,YACNm0H,EAAW,WACXC,EACA19B,UAAW2xB,EAAW,eACtBgM,EAAc,UACdluG,EAAS,WACTmuG,GACE9xH,EA+DJ,OA7DA,IAAA2sG,YAAU,KACR,IAAK+kB,EAAQtlB,QAAS,OACtB,MAAMttF,EAAgB4yG,EAAQtlB,QAAQr5E,cAAc,WAChDjU,GAAeA,EAAcwgD,eAAe,CAAEyyD,MAAO,OAAQ,GAChE,CAACH,IA0DF,qCACIvpB,GAAQypB,GACR,kBAAC,OAAI3sH,UAAU,kCACb,kBAAC,SACCsrH,WAAS,EACTtrH,UAAU,mBACVtJ,MAAO81H,EACPrsF,SAAW5jC,GAAMmkH,EAAY,gBAAiBnkH,EAAE1E,OAAOnB,OACvDg8G,UAAYn2G,IACI,WAAVA,EAAEnE,KAAkBsoH,EAAY,iBACtB,YAAVnkH,EAAEnE,KAAmBsoH,EAAY,kBACvB,cAAVnkH,EAAEnE,KAAqBsoH,EAAY,oBACzB,UAAVnkH,EAAEnE,KAAiBsoH,EAAY,eAAe,KAKzDroH,EAAO1E,OAAS,GACf,kBAAC,MAAGwyG,IAAKomB,EAASvsH,UAAU,gCACzBg4B,QAAQxZ,IAnDjB,WA/CF,UAgDI,MAAMD,EAAgBlmB,EAAOoqH,OAAO97B,GAAMA,EAAElxD,WACtCo3F,EAAiBx0H,EAAOoqH,OAAO97B,IAAOA,EAAElxD,WACxC/F,EAAQ,eAAAlR,OAAA,EAAAA,EAAWkR,OAAX,EAAoB,aAC5BwF,EAAO,eAAA1W,OAAA,EAAAA,EAAW0W,MAAX,EAAmB,SAC1B1N,EAAO,eAAAhJ,OAAA,EAAAA,EAAWgJ,MAAX,EAAmB,SAC1BiqF,EAAS,MAAAjzF,OAAA,EAAAA,EAAWizF,OAG1B,MADoC,WAATjqF,IAA+B,WAAT0N,EAAqB3W,EAAiBsuG,GACvD,KAE5Bpb,EACKA,EAAO,CACZ/hF,QACAwF,OACA1N,OACAjJ,gBACAsuG,kBACCnM,GAGH,kBAAC,MACC1a,QAAS,IAAM0a,EAAY,mBAA6B,WAATxrF,GAAqB3W,EAAgBsuG,GACpFna,UAAW,SAEA,WAATx9E,EAAoB3W,EAAgBsuG,IAAmB,kBAAC,EAAI,CAAC1lH,KAAK,UACnEuoB,EAGP,CAuBUo9F,GAEDz0H,EAAOE,KA9EhB,SAAoBS,GAClB,OAAI0zH,EACKA,EAAe1zH,EAAM,CAC1BkqG,OAAMspB,cAAa9L,cAAa+L,eAKlC,kBAAC,MACCr0H,IAAKY,EAAK/C,GACV+kG,MAAOhiG,EAAKzC,KACZyJ,UAAW,CACThH,EAAK+O,UAAY,WACjB0kH,GAAczzH,EAAK/C,KAAOw2H,EAAWx2H,IAAM,UAC3CmT,OAAO4uB,SAASpiC,KAAK,KACvBowG,QAAS,KAAOhtG,EAAK+O,UAAY24G,EAAY,eAAgB,CAAE1nH,SAC/D05G,UAAW,QAEV15G,EAAKy8B,UAAY,kBAAC,EAAI,CAACtuB,KAAK,UAC7B,kBAAC,QAAKnH,UAAU,aAAahH,EAAKzC,MAGxC,KA6DF,CAEA,GAAKivG,UAAY,CACf+mB,QAAS,eAAqB73H,QAC9BwuG,KAAM,SACN7qG,OAAQ,eAAqBI,OAC7B+zH,YAAa,WACbC,WAAY,eAAqB/3H,QACjCq6F,UAAW,SACX29B,eAAgB,SAChBluG,UAAW,cAAoB,CAC7B,SACA,UAAgB,CACdkR,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEFwF,KAAM,UAAgB,CAAC,SAAU,aACjC1N,KAAM,UAAgB,CAAC,SAAU,iBACjCiqF,OAAQ,aAGZkb,WAAY,UAGd,2bCtHA,SAASI,GAAU,YACjBr2H,MAAOs2H,EACP30H,OAAQ40H,EAAa,GAAE,cACvBrB,EAAgB,eAChBl8F,EAAQ,cACR+nF,EAAU,KACVvU,GAAO,EAAK,cACZuoB,EAAgB,CAAC,IAAK,SAAQ,aAC9BC,GAAe,EACfryH,IAAK6zH,EAAO,SACZpF,GAAW,EAAK,YAChB/lE,EAAc,SACdx6B,EAAK,KACL65F,EAAO,SACPntH,EAAQ,YACR8T,GAAW,EAAK,SAChB4X,GAAW,EAAK,kBAChBkqG,GAAoB,EACpBqB,WAAYiC,EAAW,YACvBxB,EAAW,eACXe,EACAU,WAAYC,EAAc,oBAC1B9B,EAAmB,eACnB+B,EAAiB,MAAM,GAAI,SAC3BntF,EAAW,SAAQ,wBACnBotF,EAAuB,WACvBC,EAAU,uBACVrY,EAAsB,uBACtBsY,GAAyB,EAAI,UAC7BjvG,EAAS,cACTumG,EAAa,WACb4H,GAAa,EAAK,SAClBe,GAAW,EAAK,iBAChBC,EAAmB,SAAQ,iBAC3BrS,EAAmB,IAlCF,EAmCdhJ,mKAAA,CAnCc,EAmCd,CAlCH,QACA,SACA,gBACA,QACA,aACA,OACA,gBACA,eACA,MACA,WACA,cACA,QACA,OACA,QACA,WACA,WACA,oBACA,aACA,cACA,iBACA,aACA,sBACA,iBACA,WACA,0BACA,aACA,yBACA,yBACA,YACA,gBACA,aACA,WACA,mBACA,qBAGA,MAAMj5G,GAAM,IAAAitG,UACV,IAAOwhB,EAAW1zE,IAAW84E,IAAYhqB,EAAO9uD,IAAW,IAC3D,CAAC0zE,EAAUoF,EAAShqB,IAEhBkqB,EAAa7B,EACf,CAAClzH,GAAUqoH,iBACX,kBAAC6K,EAAA,CACCjC,eAAgBjxH,EAChBywH,oBAAsB9wH,GAAU0oH,EAAY,eAAgB,CAAE1nH,KAAMX,EAAOL,OAG7Eq1H,EAEEO,GAAU,IAAArmB,QAAO,MACjBsmB,GAAqB,IAAAtmB,QAAO,MAC5B4c,GAAc,IAAA5c,QAAO,MACrBglB,GAAU,IAAAhlB,QAAO,OAEhB7wG,EAAOiiD,IAAY,IAAA0tD,UAASynB,GAAiBd,EAAWC,KACxD50H,EAAQ01H,IAAa,IAAA1nB,UAAS4mB,EAAW10H,KAAKouF,GAAMqnC,GAAernC,OACnE6lC,EAAayB,IAAkB,IAAA5nB,UAAS,KACxComB,EAAYyB,IAAiB,IAAA7nB,UAAS,OACtC0Y,GAAUoP,KAAe,IAAA9nB,WAAS,IAClC+nB,GAAgBC,KAAqB,IAAAhoB,WAAS,IAC9CioB,GAAsBC,KAA2B,IAAAloB,UAAS,IAEjE,SAASmoB,KAEP,OADejnG,EAAQA,EAAM9xB,MAAM,KAAO,IAC5B8C,KAAK4xH,GAAW,mBAAmBA,KACnD,CAeA,SAASsE,KACP,MACMld,EAAK4b,GADO,EAACxmC,EAAGlhF,KAlG1B,IAAA4iB,EAAAE,EAkGgC,cAAAA,EAAA,OAAAF,EAAA,MAAAs+D,OAAA,EAAAA,EAAGpwF,WAAH,EAAA8xB,EAAS7qB,oBAAT,EAAA+qB,EAAwB7wB,SAAS+N,EAAE,GAG/D,OADuBpN,EAAO+Q,QAAQu9E,GAAM4qB,EAAG5qB,EAAG6lC,EAAYhvH,gBAEhE,CAEA,SAASkxH,KACPP,IAAY,EACd,CAEA,SAASvJ,KACPuJ,IAAY,GACPjrB,GAAMyrB,GAAkB,IAC7BT,EAAc,KAChB,CAEA,SAASS,GAAkBC,GACzBX,EAAeW,GACXnC,GAAcgC,KAAoBhM,OAAOoM,GAAOA,EAAG54H,KAAOw2H,EAAWx2H,MACvEi4H,EAAc,MAEZU,IAAmB7P,IAAU2P,IACnC,CAEA,SAASI,GAAaC,EAAW/1G,GAC/B,MAAMg2G,EAAarB,EAAiBoB,EAAW/1G,GAE/C,OADAu1G,GAAwBS,QACF,IAAfA,CACT,CAEA,SAASC,GAAYF,GACnBp2E,EAASo2E,GACT5uF,EAAiB,IAAR9mC,GAAc6pG,EAAgC6rB,EAAxBA,EAAU,IAAM,KACjD,CAEA,SAASG,GAAO14H,GACd,IAAKA,EAAK,OACV,GAAIE,EAAM/C,QAAU0F,EAAK,OACzB,GAAI3C,EAAMm9B,MAAK,EAAGt9B,UAAWA,IAASC,IAAM,OAE5C,MAAM24H,EAAiB92H,EAAOU,WAAWq2H,GAAOA,EAAG74H,OAASC,IAC5D,IAAIulB,EAEA4uG,EADA0E,EAAa,IAAI34H,IAGG,IAApBy4H,EACEtF,IACF9tG,EAAW,CAAE9lB,GAAIO,EAAKD,KAAMC,GAC5B64H,EAAa,IAAI34H,EAAOqlB,KAG1B4uG,EAAiB,IACZtyH,EAAO1C,MAAM,EAAGw5H,GACnB,SAAK92H,EAAO82H,IAAZ,CAA6B15F,UAAU,OACpCp9B,EAAO1C,MAAMw5H,EAAiB,IAEnCpzG,EAAW1jB,EAAO82H,GAClBE,EAAa,IAAI34H,EAAO2B,EAAO82H,KAG7BL,GAAaO,EAAYtzG,IAAauxG,EAAe52H,EAAO24H,KAC1D1E,GACFoD,EAAUpD,GAEZsE,GAAYI,GAEhB,CAoBA,SAASC,IAAY,GAAEr5H,IACrB,MAAMO,EAAM6B,EAAOK,MAAMiuF,GAAMA,EAAE1wF,KAAOA,IAClCs5H,EAAWl3H,EAAOU,WAAW4tF,GAAMA,EAAE1wF,KAAOA,IAClD,IAAIo5H,EAAa34H,EACbi0H,EAAiBtyH,EAEjB7B,EAAIi/B,SACDi4F,GAAoB,IAARr0H,IACfg2H,EAAa34H,EAAM0S,QAAQu9E,GAAMA,EAAE1wF,KAAOO,EAAIP,KAC9C00H,EAAiBtyH,EAAOm3H,KAAKD,EAAU,SAAK/4H,GAAL,CAAUi/B,UAAU,MAEpD/+B,EAAM/C,OAAS0F,GACxBg2H,EAAa,IAAI34H,EAAOF,GACxBm0H,EAAiBtyH,EAAOm3H,KAAKD,EAAU,SAAK/4H,GAAL,CAAUi/B,UAAU,MAC1C,IAARp8B,IACTg2H,EAAa,CAAC74H,GACdm0H,EAAiBtyH,EAAOE,KAAKouF,GAAO,SAAKA,GAAL,CAAQlxD,SAAUkxD,EAAE1wF,KAAOO,EAAIP,QAGjE64H,GAAaO,EAAY74H,IAAQ82H,EAAe52H,EAAO24H,KACzDJ,GAAYI,GACZtB,EAAUpD,KAGA,IAARtxH,GAAa0rH,IACfH,IAEJ,CAEA,SAAS6K,GAAgBh6F,GACvB,GAAIp9B,EAAO1E,OAAS0F,EAAK,OACzB,MAAM0iB,EAAW0Z,EAAW,IAAIp9B,GAAU,GAErCi1H,EAAe52H,EAAOqlB,KAE3BkzG,GAAYlzG,GACZgyG,EAAU11H,EAAOE,KAAKouF,GAAO,SAAKA,GAAL,CAAQlxD,gBACjCsvF,GAAeH,KACrB,CAEA,SAAS8K,KACP,MAAMC,EAAelB,KAAoBrlH,QAAQu9E,IAAOA,EAAE5+E,WAC1D,GAA4B,IAAxB4nH,EAAah8H,OAAc,OAC/B,GAAmB,OAAf84H,GAA+C,IAAxBkD,EAAah8H,OAEtC,YADAu6H,EAAcyB,EAAaA,EAAah8H,OAAS,IAGnD,MAAMi8H,EAAcD,EAAa52H,WAAW4tF,GAAMA,EAAE1wF,KAAOw2H,EAAWx2H,KACtEi4H,EAAcyB,EAAaC,EAAc,EAAIA,EAAc,EAAID,EAAah8H,OAAS,GACvF,CAEA,SAASk8H,KACP,MAAMF,EAAelB,KAAoBrlH,QAAQu9E,IAAOA,EAAE5+E,WAC1D,GAA4B,IAAxB4nH,EAAah8H,OAAc,OAC/B,GAAmB,OAAf84H,GAA+C,IAAxBkD,EAAah8H,OAEtC,YADAu6H,EAAcyB,EAAa,IAG7B,MAAMC,EAAcD,EAAa52H,WAAW4tF,GAAMA,EAAE1wF,KAAOw2H,EAAWx2H,KACtEi4H,EAAcyB,EAAaC,EAAcD,EAAah8H,OAAS,EAAIi8H,EAAc,EAAI,GACvF,CAEA,SAASE,KACHtC,EACFa,IAAmBD,IAEnBM,IAEJ,CAEA,SAASnP,GAAoBhjH,GA9P/B,IAAA8rB,EAAAE,GA+P0B,OAAAF,EAAAulG,EAAQ3mB,cAAR,EAAA5+E,EAAiBtZ,SAASxS,EAAE1E,WAC7C,OAAA0wB,EAAA47F,EAAYld,cAAZ,EAAA1+E,EAAqBxZ,SAASxS,EAAE1E,UAEnC+sH,IAEJ,CAgBA,SAASmL,GAAanmH,EAASnB,GACb,QAAZmB,IACFslH,GAAOzmH,GACPkmH,GAAkB,KAGJ,WAAZ/kH,GApHN,SAAmB3T,GACjB,GAAIy3H,GAAoB,IAARr0H,EAAW,OAE3B,MAAM81H,EAAiB92H,EAAOU,WAAWq2H,GAAOA,EAAGn5H,KAAOA,IACpD8lB,EAAWrlB,EAAM0S,QAAQu9E,GAAMA,EAAE1wF,KAAOA,IAEzCq3H,EAAe52H,EAAOqlB,MAEH,IAApBozG,GACFpB,EAAU,IACL11H,EAAO1C,MAAM,EAAGw5H,GACnB,SAAK92H,EAAO82H,IAAZ,CAA6B15F,UAAU,OACpCp9B,EAAO1C,MAAMw5H,EAAiB,KAGrCF,GAAYlzG,GACd,CAoG4Bi0G,CAAUvnH,GAEpB,iBAAZmB,GAA4B+kH,GAAkBlmH,GAElC,gBAAZmB,IACE6iH,EACF6C,GAAY7C,GACHhB,EAAc/zH,SAAS,WAChCw3H,GAAOzmH,GACPkmH,GAAkB,MAIN,kBAAZ/kH,IACF8kH,KACAgB,MAGc,oBAAZ9lH,IACF8kH,KACAmB,MAGc,iBAAZjmH,GAA4Bg7G,KAEhB,eAAZh7G,GAA4B8hH,IAC9BwD,GAAOzmH,GACPkmH,GAAkB,KAGJ,gBAAZ/kH,GACF8kH,IAEJ,CAEA,MAAM3/B,IAAY,IAAAoY,cAAY,CAACv9F,EAASnB,KAClCmB,EAAQ7S,WAAW,SAASg5H,GAAanmH,EAAQjU,MAAM,GAAI8S,GAE/C,iBAAZmB,GAA4B0lH,GAAY7mH,EAAKzP,MAEjC,qBAAZ4Q,GAAgC6lH,GAAgBhnH,GAEpC,qBAAZmB,GAAgC8kH,KAEpB,kBAAZ9kH,GAA6B+kH,GAAkBlmH,GAEnC,kBAAZmB,GAA6Bg7G,KAEjB,mBAAZh7G,GAA8B8lH,KAElB,qBAAZ9lH,GAAgCimH,KAEpB,iBAAZjmH,GACE6iH,GAAY6C,GAAY7C,EAC9B,GACC,CACDsD,GACAT,GACAG,GACAf,GACAC,GACA/J,GACA8K,GACAG,KAGII,IAAa,IAAA9oB,cACjB,IAAOqmB,EACH,kBAAC,EAAI,CAACrmH,KAAMinH,GAAiB,eAAiB,eAC9C,kBAAC,EAAI,CAACjnH,KAAK,kBAEf,CAACqmH,EAAYY,MAGf,IAAA5mB,YAAU,KACRn0G,OAAO6U,iBAAiB,QAASq3G,IAAqB,GAC/C,IAAMlsH,OAAOgV,oBAAoB,QAASk3G,IAAqB,KACrE,KAEH,IAAA/X,YAAU,KACR,GAAIylB,EAAWt5H,OAAQ,CACrB,MAAMo7H,EAAY9B,EAAW10H,KAAKouF,GAAO,SACpCqnC,GAAernC,IADqB,CAEvClxD,SAAU/+B,EAAMm9B,MAAMq8F,GAAOA,EAAGj6H,KAAO0wF,EAAE1wF,SAE3C83H,EAAUgB,GACVp2E,GAAUniD,GAAQA,EAAI+B,KAAKouF,GAAMooC,EAAUr2H,MAAMy3H,GAAOA,EAAGl6H,KAAO0wF,EAAE1wF,MAAO0wF,KAC7E,MAAWtuF,EAAO1E,QAChBo6H,EAAU,GACZ,GACC,CAACd,KAEJ,IAAAzlB,YAAU,KACR,MAAMzrF,EAAW+xG,GAAiBd,EAAW30H,GAC7CsgD,EAAS58B,GACTgyG,GAAWqC,GAASA,EAAK73H,KAAKouF,GAAO,SAChCqnC,GAAernC,IADiB,CAEnClxD,SAAU1Z,EAAS8X,MAAMs8F,GAAOA,EAAGl6H,KAAO0wF,EAAE1wF,UAC1C,GACH,CAAC+2H,KAEJ,IAAAxlB,YAAU,KACR,IAAKgmB,EAAY,MAAO,OAExB,MAAM6C,EAAgBxC,EAAmB5mB,QAAQr5E,cAAc,kCACzD0iG,EAAe,KACnBD,EAAchkE,UAAYgkE,EAAcnxC,YAAY,EAGhDqxC,EAAY,IAAIC,iBAAiBF,GACjCG,EAAY,IAAI5uC,eAAeyuC,GAKrC,OAHAC,EAAU5tC,QAAQ0tC,EAAe,CAAEtiH,YAAY,EAAM2iH,WAAW,EAAMC,SAAS,IAC/EF,EAAU9tC,QAAQ0tC,GAEX,KACLE,EAAU1tC,aACV4tC,EAAU5tC,YAAY,CACvB,IAGH,MAAMymC,GAAiBmF,KACjBmC,GAAuB,CAC3B,gCACApD,GAAc,cACd,mCAAkCY,GAAiB,WAAa,cAChEx4H,KAAK,KAEP,OACE,kBAAC,aACCuwG,IAAKynB,EACLxjG,SAAUriB,EAAW,KAAO,IAC5B8oH,eAxJJ,SAAwBt0H,GACtB,IAAKwL,EAAU,OACf,IAAKylH,EAEH,YADAjxH,EAAEiK,kBAIJ,MAAMwgH,EAAiB4G,EAAQ3mB,QAAQr5E,cAAc,4CAChDo5F,IAEoBA,IAAmBzqH,EAAE1E,QAAUmvH,EAAej4G,SAASxS,EAAE1E,SAC3D0E,EAAEiK,kBAC3B,GA6IQ8rG,GAJL,CAKCtyG,UA3UK,CACLs7G,EACA,iBACA,mBACGkT,MACFv6H,GAASq6H,KAAyB,YACnC7W,GAAc,kCACd1vG,GAAY,WACZylH,GAAc,kBACdpkH,OAAO4uB,SAASpiC,KAAK,OAoUpB85B,GACC,kBAAC,SAAMzvB,MAAO,CAAEy3G,UAAWD,GAAc,SAAW/nF,IAEpD/P,GACA,kBAAC,OACC3f,UAAU,4BACVC,MAAO,CAAEy3G,UAAW,eAAeD,cAEnC,kBAAC,OAAIz3G,UAAU,mBAAmBmmG,IAAK0nB,GACrC,kBAAC,OACC7tH,UAAW4wH,GACX5qB,QAAS0oB,GACTx0G,KAAK,QAEL,kBAAC,IACCxjB,QACA2C,MACA6pG,OACAuoB,gBACAC,eACA7B,oBACA9nE,cACAh6C,WACA6jH,gBACAD,cACAhxG,MAAOokG,GACPhwB,aACApvE,cAGH8tG,GACC,kBAAC,OACCztH,UAAW,2CAA0CouH,GAAiB,qDAAuD,IAC7Hl0G,KAAK,SACLkQ,SAAUriB,GAAY,EAAI,EAC1Bi+F,QAAS8pB,GACTpd,UAAWod,IAEVG,OAINlR,MAAc7b,GAAQomB,GAAe31H,OAAS,IAC7C,kBAAC,UACCiN,QAASitH,EACT1sF,KAAK,eACLnhC,UAAW,mDAAmDwuH,KAAkB54H,KAAK,OACrFuwG,IAAKge,EACLlP,YAAY,YACRsY,GANL,CAOCpY,2BAECiY,EACCA,EAAW9D,GAAgB,CACzBpmB,OACAspB,cACAC,aACAF,UACA7L,YAAa3xB,KAGf,kBAAC,IACCw9B,UACAI,aACAt0H,OAAQixH,GACRpmB,OACAspB,cACAC,aACA19B,aACA29B,iBACAluG,eAKP4iG,GACC,kBAAC,KAAEphH,UAAU,gCAAgCohH,IAE5CntH,GAAmB,SAAVA,GAA8B,UAAVA,GAAsB+jC,QAAQs2F,MAC5D,kBAAC,KAAEtuH,UAAU,mCAAmC/L,GAASq6H,KAI9D3uG,GACC,kBAAC,WACC,kBAAC,IACCjpB,QACAwsG,OACAyoB,cACAhsG,cAMZ,CAEAotG,GAAUvnB,UAAY,CAEpBqkB,kBAAmB,SAGnB0B,oBAAqB,gBAErBL,WAAY,SAEZS,YAAa,SAEbe,eAAgB,SAEhBU,WAAY,SACZrlH,SAAU,SAEV4X,SAAU,SACV1rB,MAAO,WACPy7B,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEF+nF,WAAY,WAEZp+G,IAAK,WAELyuH,SAAU,SACV1G,KAAM,cAAoB,CACxB,SACA,YACA,aAMFkM,eAAgB,SAChBntF,SAAU,SACV4hB,YAAa,WAGbmhD,KAAM,SAENuoB,cAAe,YAAkB,YAGjCC,aAAc,SACdnkG,MAAO,WAGP7wB,MAAO,cAAoB,CACzB,WACA,eAAqB+B,OACrB,eAAqB/D,UAGvB2D,OAAQ,eAAqBI,OAE7B80H,wBAAyB,eAAqB74H,QAG9Ck3H,cAAe,UAAgB,CAAC,SAAU,aAM1C4B,WAAY,SAEZrY,uBAAwB,eAAqBzgH,QAE7C+4H,uBAAwB,SAexBjvG,UAAW,cAAoB,CAC7B,SACA,UAAgB,CACdkR,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEFwF,KAAM,UAAgB,CAAC,SAAU,aACjC1N,KAAM,UAAgB,CAAC,SAAU,iBACjCiqF,OAAQ,aAIZsT,cAAe,SAEf4H,WAAY,SAGZe,SAAU,SAIVC,iBAAkB,SAClBrS,iBAAkB,YAGpB,YAEA,SAAS0S,GAAet3H,EAAO2B,GAC7B,IAAIsuF,EAAIjwF,EAGR,GAFqB,iBAAVA,EAAoBiwF,EAAI,CAAE1wF,GAAIS,EAAOH,KAAMG,GAC5CA,EAAM6U,eAAe,UAASo7E,EAAI,SAAKjwF,GAAL,CAAYH,KAAMG,EAAMT,OAC/DoC,EAAQ,OAAOsuF,EACpB,MAAMmqC,EAAcz4H,EAAOK,MAAMgqB,GAAOA,EAAGzsB,KAAO0wF,EAAE1wF,KACpD,OAAO66H,EAAc,SAAKnqC,GAAMmqC,GAAgBnqC,CAClD,CAEA,SAASmnC,GAAiBp3H,EAAO2B,GAC/B,OAAK3B,EACD+B,MAAMoB,QAAQnD,GAAeA,EAAM6B,KAAKouF,GAAMqnC,GAAernC,EAAGtuF,KAC7D,CAAC21H,GAAet3H,EAAO2B,IAFX,EAGrB,CCxoBA,MAAM,GAA+BnD,QAAQ,sTCS7C,SAAS67H,IAAW,SAClBjpE,EAAQ,SACR//C,EAAQ,SACR4X,GAAW,EAAK,MAChB1rB,EAAK,GACLgC,EAAE,MACFy5B,EAAK,WACL+nF,EAAU,KACV2J,EAAI,QACJhW,EAAO,SACPjrE,EAAQ,OACR6wF,EAAM,MACNzpG,EAAK,OACLla,EAAS,CAAC,EAAC,MACX3W,EAAK,iBACL4kH,EAAmB,KAEnB,MAAO2V,EAAgBC,IAAqB,IAAA7qB,UAAS,MAC/C8qB,GAAU,IAAA5pB,QAAO,MAEjBijB,EAAY,GAAY9zH,GAExB06H,GAAkB,IAAAjqB,cAAY,CAACkqB,EAAUC,KAC7C,IAAKD,EAAU,OAAO,EACtB,IAAK54H,MAAMoB,QAAQy3H,GAAc,OAAOD,EAASE,YAAcD,EAAYC,UAE3E,IAAIC,EAAYF,EAEhB,OAAID,GAAYC,EAAY39H,QAAU09H,EAAS19H,QAC7C69H,EAAYF,EAAYloH,QAAO,CAACqoH,EAAMz5H,IAAUy5H,EAAKF,YAAcF,EAASr5H,GAAOu5H,YAE5EC,EAAU79H,OAAS,GAGrB29H,EAAY39H,OAAS,CAAC,GAC5B,IAEG+9H,GAAe,IAAAvqB,cAAawqB,IAChC,MAAMtC,EAA6B,UAAhBhiH,EAAO6nB,KAAmBy8F,EAAYA,EAAU,IAAM,KAEpExxF,IAEe,UAAhB9yB,EAAO6nB,KACiB,IAAtBm6F,EAAW17H,QAAgBy9H,EAAgB5G,EAAW6E,IACxDlvF,EAASkvF,GAGXlvF,EAASkvF,GACX,GACC,CAAC7E,EAAWrqF,EAAUixF,KAEzB,IAAA5pB,YAAU,KACR,GAAI2pB,EAAQlqB,UAAYgqB,EAAgB,CACtC,MAAMW,EAAW,KAAUT,EAAQlqB,oIAAS,IACvC55F,WADuC,CAC/BwkH,YAAan7H,EAAOypC,SAAUuxF,EAActmB,UAAS4lB,cAElEE,EAAkBU,EACpB,OAEA,MAAO,KACDX,GACFA,EAAen+G,SACjB,CACD,GACA,CAACm+G,KAEJ,IAAAzpB,YAAU,KACR,GAAIypB,EAAgB,CAClB,IAAIxG,EAAY/zH,EAEK,iBAAVA,EACT+zH,EAAY,IAAIjzG,KAAK9gB,GACZ+B,MAAMoB,QAAQnD,KACvB+zH,EAAY/zH,EAAM6B,KAAKk5H,GAAS,IAAIj6G,KAAKi6G,MAGvCL,EAAgB5G,EAAWC,KAC7BwG,EAAetnH,IAAI,WAAY+nH,GACX,UAAhBrkH,EAAO6nB,KACLu1F,GAAkC,IAArBA,EAAU92H,QACzBs9H,EAAea,QAAQrH,GAAW,GAGpCwG,EAAea,QAAQrH,GAAW,GAGxC,IACC,CAACD,EAAW9zH,EAAOu6H,IAEtB,MAAM5vH,EAAU,CACd,iBACA,8BACAi6G,KACI/zF,EAAQA,EAAM9xB,MAAM,KAAK8C,KAAK2iB,GAAM,mBAAmBA,MAAO,GAClEu8F,GAAc,kCACdxjH,GAAS,aACTmV,OAAO4uB,SAASpiC,KAAK,KAYjBm8H,GAAe,IAAA5qB,cAAY,KAC1B8pB,GAELA,EAAe/rH,MAAM,GACpB,CAAC+rH,IAqDJ,OACE,qCAEI,MAAAnpE,OAAA,EAAAA,EAAUn0D,QACNm0D,EAAS,CAAEiqE,eAAc5rB,IAAKgrB,IAE9B,kBAAC,OAAInxH,UAAWqB,GAEZquB,EACI,kBAAC,SAAM+3F,QAASxxH,EAAIgK,MA3EhCw3G,EAAmB,CAAEC,UAAWD,GAC7B,CAAC,GA0EuD/nF,GAC/C,MAEJ/P,GACA,kBAAC,OACC3f,UAAU,sCACVC,MA5EVw3G,EAAmB,CAAEC,UAAW,eAAeD,aAC5C,CAAC,GA6EM,kBAAC,OAAIz3G,UAAU,mBA1DT,MACpB,IAAIgyH,EAAa,CAAC,EACdC,EAAa,CAAC,EAclB,OAZI,MAAA5kH,OAAA,EAAAA,EAAQ2M,UACVg4G,EAAa,CACX/uH,OAAQ,EACRm8D,QAAS,EACTr8D,MAAO,EACPo/E,WAAY,UAGd8vC,EAAa,CACX/uH,QAAS,SAIX,oCACE,kBAAC,SACC6E,WACA/H,UAAU,mBACV,cAAU,EACVmH,KAAK,OACLg/F,IAAKgrB,EACLlxH,MAAO+xH,IAET,kBAAC,OACChyH,UAAU,yBACVgmG,QAAS+rB,EACT73G,KAAK,SACL63F,QAAS,OACT3nF,SAAU,EACVnqB,MAAOgyH,EACP,aAAW,iBAEX,kBAAC,EAAI,CAAC9qH,KAAK,cAEf,EAsBe+qH,IAGD9Q,EACI,kBAAC,KAAEphH,UAAU,gCAAiCohH,GAC9C,KAzEnBntH,GAAmB,SAAVA,GAA8B,UAAVA,EAE1B,kBAAC,KAAE+L,UAAU,mCACT/L,GAGJ,OA2EF,kBAAC,OAAI+L,UAAU,8BACZ2f,IAAajpB,GAAS,IACtBipB,GAAYjpB,GAAS,gBAAqBA,EAAO2W,EAAO8kH,YAAc,UAI/E,CAEApB,GAAWvrB,UAAY,CACrBn4F,OAAQ,eAAqB3Y,QAC7BozD,SAAU,cAAoB,CAC5B,YACA,SACA,WACA,WAEF//C,SAAU,SACV4X,SAAU,SACV1pB,GAAI,WACJy5B,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEF+nF,WAAY,WACZ2J,KAAM,WACNjhF,SAAU,cAAoB,CAC5B,SACA,eAAqB1nC,SAEvB2yG,QAAS,cAAoB,CAC3B,SACA,eAAqB3yG,SAEvBu4H,OAAQ,cAAoB,CAC1B,SACA,eAAqBv4H,SAEvB8uB,MAAO,WACPtzB,MAAO,WACPyC,MAAO,cAAoB,CACzB,eAAqB+B,OACrB,eAAqB/D,QACrB,aAEF4mH,iBAAkB,YAGpB,YC/Pe,SAAS8W,GAAQ95H,GAG9B,OAAO85H,GAAU,mBAAqB7rG,QAAU,iBAAmBA,OAAOC,SAAW,SAAUluB,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAK,mBAAqBiuB,QAAUjuB,EAAE6N,cAAgBogB,QAAUjuB,IAAMiuB,OAAO5xB,UAAY,gBAAkB2D,CACpH,EAAG85H,GAAQ95H,EACb,CCRe,SAAS+5H,GAAa3E,EAAUxyF,GAC7C,GAAIA,EAAKvnC,OAAS+5H,EAChB,MAAM,IAAI51H,UAAU41H,EAAW,aAAeA,EAAW,EAAI,IAAM,IAAM,uBAAyBxyF,EAAKvnC,OAAS,WAEpH,CC8Be,SAAS2+H,GAAO57H,GAE7B,OADA27H,GAAa,EAAG3+H,WACTgD,aAAiB8gB,MAA2B,WAAnB46G,GAAQ17H,IAAiE,kBAA1ChC,OAAOC,UAAUC,SAASC,KAAK6B,EAChG,CCLe,SAAS67H,GAAOC,GAC7BH,GAAa,EAAG3+H,WAChB,IAAI++H,EAAS/9H,OAAOC,UAAUC,SAASC,KAAK29H,GAG5C,OAAIA,aAAoBh7G,MAA8B,WAAtB46G,GAAQI,IAAqC,kBAAXC,EAEzD,IAAIj7G,KAAKg7G,EAASjB,WACI,iBAAbiB,GAAoC,oBAAXC,EAClC,IAAIj7G,KAAKg7G,IAES,iBAAbA,GAAoC,oBAAXC,GAAoD,oBAAZz+H,UAE3EA,QAAQwV,KAAK,sNAEbxV,QAAQwV,MAAK,IAAId,OAAQkjC,QAEpB,IAAIp0B,KAAKk7G,KAEpB,CCnDe,SAASC,GAAUC,GAChC,GAAoB,OAAhBA,IAAwC,IAAhBA,IAAwC,IAAhBA,EAClD,OAAOF,IAET,IAAI74G,EAASR,OAAOu5G,GACpB,OAAInjE,MAAM51C,GACDA,EAEFA,EAAS,EAAIzgB,KAAK4lE,KAAKnlD,GAAUzgB,KAAKk8C,MAAMz7B,EACrD,CCPe,SAASg5G,GAAkBC,GACxCT,GAAa,EAAG3+H,WAChB,IACI+9H,EAAOc,GAAOO,GACdC,EAAMtB,EAAKuB,YACXh0E,GAAQ+zE,EAHO,EAGc,EAAI,GAAKA,EAHvB,EAMnB,OAFAtB,EAAKwB,WAAWxB,EAAKyB,aAAel0E,GACpCyyE,EAAK0B,YAAY,EAAG,EAAG,EAAG,GACnB1B,CACT,CCRe,SAAS2B,GAAkBN,GACxCT,GAAa,EAAG3+H,WAChB,IAAI+9H,EAAOc,GAAOO,GACdO,EAAO5B,EAAK6B,iBACZC,EAA4B,IAAI/7G,KAAK,GACzC+7G,EAA0BC,eAAeH,EAAO,EAAG,EAAG,GACtDE,EAA0BJ,YAAY,EAAG,EAAG,EAAG,GAC/C,IAAIM,EAAkBZ,GAAkBU,GACpCG,EAA4B,IAAIl8G,KAAK,GACzCk8G,EAA0BF,eAAeH,EAAM,EAAG,GAClDK,EAA0BP,YAAY,EAAG,EAAG,EAAG,GAC/C,IAAIQ,EAAkBd,GAAkBa,GACxC,OAAIjC,EAAKF,WAAakC,EAAgBlC,UAC7B8B,EAAO,EACL5B,EAAKF,WAAaoC,EAAgBpC,UACpC8B,EAEAA,EAAO,CAElB,CCtBA,IAAIO,GAAiB,CAAC,EACf,SAASC,KACd,OAAOD,EACT,CCCe,SAASE,GAAehB,EAAWjzH,GAChD,IAAIk0H,EAAMC,EAAOC,EAAOC,EAAuBC,EAAiBC,EAAuBC,EAAuBC,EAC9GjC,GAAa,EAAG3+H,WAChB,IAAIkgI,EAAiBC,KACjBU,EAAe5B,GAA+0B,QAAp0BoB,EAA8hB,QAAthBC,EAAkd,QAAzcC,EAA6G,QAApGC,EAAwBr0H,aAAyC,EAASA,EAAQ00H,oBAAoD,IAA1BL,EAAmCA,EAAwBr0H,SAAyF,QAAtCs0H,EAAkBt0H,EAAQ20H,cAAwC,IAApBL,GAA4F,QAArDC,EAAwBD,EAAgBt0H,eAA+C,IAA1Bu0H,OAA5J,EAAwMA,EAAsBG,oBAAoC,IAAVN,EAAmBA,EAAQL,EAAeW,oBAAoC,IAAVP,EAAmBA,EAA4D,QAAnDK,EAAwBT,EAAeY,cAA8C,IAA1BH,GAAyG,QAA5DC,EAAyBD,EAAsBx0H,eAAgD,IAA3By0H,OAA9E,EAA2HA,EAAuBC,oBAAmC,IAATR,EAAkBA,EAAO,GAGn4B,KAAMQ,GAAgB,GAAKA,GAAgB,GACzC,MAAM,IAAIE,WAAW,oDAEvB,IAAIhD,EAAOc,GAAOO,GACdC,EAAMtB,EAAKuB,YACXh0E,GAAQ+zE,EAAMwB,EAAe,EAAI,GAAKxB,EAAMwB,EAGhD,OAFA9C,EAAKwB,WAAWxB,EAAKyB,aAAel0E,GACpCyyE,EAAK0B,YAAY,EAAG,EAAG,EAAG,GACnB1B,CACT,CCfe,SAASiD,GAAe5B,EAAWjzH,GAChD,IAAIk0H,EAAMC,EAAOC,EAAOU,EAAuBR,EAAiBC,EAAuBC,EAAuBC,EAC9GjC,GAAa,EAAG3+H,WAChB,IAAI+9H,EAAOc,GAAOO,GACdO,EAAO5B,EAAK6B,iBACZM,EAAiBC,KACjBe,EAAwBjC,GAAm3B,QAAx2BoB,EAAyjB,QAAjjBC,EAAoe,QAA3dC,EAAsH,QAA7GU,EAAwB90H,aAAyC,EAASA,EAAQ+0H,6BAA6D,IAA1BD,EAAmCA,EAAwB90H,SAAyF,QAAtCs0H,EAAkBt0H,EAAQ20H,cAAwC,IAApBL,GAA4F,QAArDC,EAAwBD,EAAgBt0H,eAA+C,IAA1Bu0H,OAA5J,EAAwMA,EAAsBQ,6BAA6C,IAAVX,EAAmBA,EAAQL,EAAegB,6BAA6C,IAAVZ,EAAmBA,EAA4D,QAAnDK,EAAwBT,EAAeY,cAA8C,IAA1BH,GAAyG,QAA5DC,EAAyBD,EAAsBx0H,eAAgD,IAA3By0H,OAA9E,EAA2HA,EAAuBM,6BAA4C,IAATb,EAAkBA,EAAO,GAGh7B,KAAMa,GAAyB,GAAKA,GAAyB,GAC3D,MAAM,IAAIH,WAAW,6DAEvB,IAAII,EAAsB,IAAIr9G,KAAK,GACnCq9G,EAAoBrB,eAAeH,EAAO,EAAG,EAAGuB,GAChDC,EAAoB1B,YAAY,EAAG,EAAG,EAAG,GACzC,IAAIM,EAAkBK,GAAee,EAAqBh1H,GACtDi1H,EAAsB,IAAIt9G,KAAK,GACnCs9G,EAAoBtB,eAAeH,EAAM,EAAGuB,GAC5CE,EAAoB3B,YAAY,EAAG,EAAG,EAAG,GACzC,IAAIQ,EAAkBG,GAAegB,EAAqBj1H,GAC1D,OAAI4xH,EAAKF,WAAakC,EAAgBlC,UAC7B8B,EAAO,EACL5B,EAAKF,WAAaoC,EAAgBpC,UACpC8B,EAEAA,EAAO,CAElB,CChCe,SAAS0B,GAAgBl7G,EAAQm7G,GAG9C,IAFA,IAAIC,EAAOp7G,EAAS,EAAI,IAAM,GAC1B9hB,EAASqB,KAAK4b,IAAI6E,GAAQjlB,WACvBmD,EAAOpE,OAASqhI,GACrBj9H,EAAS,IAAMA,EAEjB,OAAOk9H,EAAOl9H,CAChB,CCwEA,SAhEK,SAAW05H,EAAMzmF,GAUlB,IAAIkqF,EAAazD,EAAK6B,iBAElBD,EAAO6B,EAAa,EAAIA,EAAa,EAAIA,EAC7C,OAAOH,GAA0B,OAAV/pF,EAAiBqoF,EAAO,IAAMA,EAAMroF,EAAMr3C,OACnE,EAkDF,GAhDK,SAAW89H,EAAMzmF,GAClB,IAAImqF,EAAQ1D,EAAK2D,cACjB,MAAiB,MAAVpqF,EAAgBl0C,OAAOq+H,EAAQ,GAAKJ,GAAgBI,EAAQ,EAAG,EACxE,EA6CF,GA3CK,SAAW1D,EAAMzmF,GAClB,OAAO+pF,GAAgBtD,EAAKyB,aAAcloF,EAAMr3C,OAClD,EAyCF,GAvBK,SAAW89H,EAAMzmF,GAClB,OAAO+pF,GAAgBtD,EAAK4D,cAAgB,IAAM,GAAIrqF,EAAMr3C,OAC9D,EAqBF,GAnBK,SAAW89H,EAAMzmF,GAClB,OAAO+pF,GAAgBtD,EAAK4D,cAAerqF,EAAMr3C,OACnD,EAiBF,GAfK,SAAW89H,EAAMzmF,GAClB,OAAO+pF,GAAgBtD,EAAK6D,gBAAiBtqF,EAAMr3C,OACrD,EAaF,GAXK,SAAW89H,EAAMzmF,GAClB,OAAO+pF,GAAgBtD,EAAK8D,gBAAiBvqF,EAAMr3C,OACrD,EASF,GAPK,SAAW89H,EAAMzmF,GAClB,IAAIwqF,EAAiBxqF,EAAMr3C,OACvB8hI,EAAehE,EAAKiE,qBAExB,OAAOX,GADiB37H,KAAKk8C,MAAMmgF,EAAer8H,KAAK2Y,IAAI,GAAIyjH,EAAiB,IACtCxqF,EAAMr3C,OAClD,ECtEF,IAwDI,GAAa,CAEfgiI,EAAG,SAAWlE,EAAMzmF,EAAO4qF,GACzB,IAAIC,EAAMpE,EAAK6B,iBAAmB,EAAI,EAAI,EAC1C,OAAQtoF,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAO4qF,EAASC,IAAIA,EAAK,CACvB9yH,MAAO,gBAGX,IAAK,QACH,OAAO6yH,EAASC,IAAIA,EAAK,CACvB9yH,MAAO,WAIX,QACE,OAAO6yH,EAASC,IAAIA,EAAK,CACvB9yH,MAAO,SAGf,EAEAygB,EAAG,SAAWiuG,EAAMzmF,EAAO4qF,GAEzB,GAAc,OAAV5qF,EAAgB,CAClB,IAAIkqF,EAAazD,EAAK6B,iBAElBD,EAAO6B,EAAa,EAAIA,EAAa,EAAIA,EAC7C,OAAOU,EAASE,cAAczC,EAAM,CAClC0C,KAAM,QAEV,CACA,OAAOC,GAAkBvE,EAAMzmF,EACjC,EAEAirF,EAAG,SAAWxE,EAAMzmF,EAAO4qF,EAAU/1H,GACnC,IAAIq2H,EAAiBxB,GAAejD,EAAM5xH,GAEtCs2H,EAAWD,EAAiB,EAAIA,EAAiB,EAAIA,EAGzD,MAAc,OAAVlrF,EAEK+pF,GADYoB,EAAW,IACO,GAIzB,OAAVnrF,EACK4qF,EAASE,cAAcK,EAAU,CACtCJ,KAAM,SAKHhB,GAAgBoB,EAAUnrF,EAAMr3C,OACzC,EAEAupC,EAAG,SAAWu0F,EAAMzmF,GAIlB,OAAO+pF,GAHW3B,GAAkB3B,GAGAzmF,EAAMr3C,OAC5C,EAUAiwF,EAAG,SAAW6tC,EAAMzmF,GAElB,OAAO+pF,GADItD,EAAK6B,iBACatoF,EAAMr3C,OACrC,EAEAyiI,EAAG,SAAW3E,EAAMzmF,EAAO4qF,GACzB,IAAIS,EAAUj9H,KAAK4lE,MAAMyyD,EAAK2D,cAAgB,GAAK,GACnD,OAAQpqF,GAEN,IAAK,IACH,OAAOl0C,OAAOu/H,GAEhB,IAAK,KACH,OAAOtB,GAAgBsB,EAAS,GAElC,IAAK,KACH,OAAOT,EAASE,cAAcO,EAAS,CACrCN,KAAM,YAGV,IAAK,MACH,OAAOH,EAASS,QAAQA,EAAS,CAC/BtzH,MAAO,cACP8b,QAAS,eAGb,IAAK,QACH,OAAO+2G,EAASS,QAAQA,EAAS,CAC/BtzH,MAAO,SACP8b,QAAS,eAIb,QACE,OAAO+2G,EAASS,QAAQA,EAAS,CAC/BtzH,MAAO,OACP8b,QAAS,eAGjB,EAEAqxE,EAAG,SAAWuhC,EAAMzmF,EAAO4qF,GACzB,IAAIS,EAAUj9H,KAAK4lE,MAAMyyD,EAAK2D,cAAgB,GAAK,GACnD,OAAQpqF,GAEN,IAAK,IACH,OAAOl0C,OAAOu/H,GAEhB,IAAK,KACH,OAAOtB,GAAgBsB,EAAS,GAElC,IAAK,KACH,OAAOT,EAASE,cAAcO,EAAS,CACrCN,KAAM,YAGV,IAAK,MACH,OAAOH,EAASS,QAAQA,EAAS,CAC/BtzH,MAAO,cACP8b,QAAS,eAGb,IAAK,QACH,OAAO+2G,EAASS,QAAQA,EAAS,CAC/BtzH,MAAO,SACP8b,QAAS,eAIb,QACE,OAAO+2G,EAASS,QAAQA,EAAS,CAC/BtzH,MAAO,OACP8b,QAAS,eAGjB,EAEAy3G,EAAG,SAAW7E,EAAMzmF,EAAO4qF,GACzB,IAAIT,EAAQ1D,EAAK2D,cACjB,OAAQpqF,GACN,IAAK,IACL,IAAK,KACH,OAAOgrF,GAAkBvE,EAAMzmF,GAEjC,IAAK,KACH,OAAO4qF,EAASE,cAAcX,EAAQ,EAAG,CACvCY,KAAM,UAGV,IAAK,MACH,OAAOH,EAAST,MAAMA,EAAO,CAC3BpyH,MAAO,cACP8b,QAAS,eAGb,IAAK,QACH,OAAO+2G,EAAST,MAAMA,EAAO,CAC3BpyH,MAAO,SACP8b,QAAS,eAIb,QACE,OAAO+2G,EAAST,MAAMA,EAAO,CAC3BpyH,MAAO,OACP8b,QAAS,eAGjB,EAEAoe,EAAG,SAAWw0F,EAAMzmF,EAAO4qF,GACzB,IAAIT,EAAQ1D,EAAK2D,cACjB,OAAQpqF,GAEN,IAAK,IACH,OAAOl0C,OAAOq+H,EAAQ,GAExB,IAAK,KACH,OAAOJ,GAAgBI,EAAQ,EAAG,GAEpC,IAAK,KACH,OAAOS,EAASE,cAAcX,EAAQ,EAAG,CACvCY,KAAM,UAGV,IAAK,MACH,OAAOH,EAAST,MAAMA,EAAO,CAC3BpyH,MAAO,cACP8b,QAAS,eAGb,IAAK,QACH,OAAO+2G,EAAST,MAAMA,EAAO,CAC3BpyH,MAAO,SACP8b,QAAS,eAIb,QACE,OAAO+2G,EAAST,MAAMA,EAAO,CAC3BpyH,MAAO,OACP8b,QAAS,eAGjB,EAEA+X,EAAG,SAAW66F,EAAMzmF,EAAO4qF,EAAU/1H,GACnC,IAAI02H,ECzRO,SAAoBzD,EAAWjzH,GAC5CwyH,GAAa,EAAG3+H,WAChB,IAAI+9H,EAAOc,GAAOO,GACd9zE,EAAO80E,GAAerC,EAAM5xH,GAAS0xH,UCH5B,SAA4BuB,EAAWjzH,GACpD,IAAIk0H,EAAMC,EAAOC,EAAOU,EAAuBR,EAAiBC,EAAuBC,EAAuBC,EAC9GjC,GAAa,EAAG3+H,WAChB,IAAIkgI,EAAiBC,KACjBe,EAAwBjC,GAAm3B,QAAx2BoB,EAAyjB,QAAjjBC,EAAoe,QAA3dC,EAAsH,QAA7GU,EAAwB90H,aAAyC,EAASA,EAAQ+0H,6BAA6D,IAA1BD,EAAmCA,EAAwB90H,SAAyF,QAAtCs0H,EAAkBt0H,EAAQ20H,cAAwC,IAApBL,GAA4F,QAArDC,EAAwBD,EAAgBt0H,eAA+C,IAA1Bu0H,OAA5J,EAAwMA,EAAsBQ,6BAA6C,IAAVX,EAAmBA,EAAQL,EAAegB,6BAA6C,IAAVZ,EAAmBA,EAA4D,QAAnDK,EAAwBT,EAAeY,cAA8C,IAA1BH,GAAyG,QAA5DC,EAAyBD,EAAsBx0H,eAAgD,IAA3By0H,OAA9E,EAA2HA,EAAuBM,6BAA4C,IAATb,EAAkBA,EAAO,GAC56BV,EAAOqB,GAAe5B,EAAWjzH,GACjC22H,EAAY,IAAIh/G,KAAK,GAIzB,OAHAg/G,EAAUhD,eAAeH,EAAM,EAAGuB,GAClC4B,EAAUrD,YAAY,EAAG,EAAG,EAAG,GACpBW,GAAe0C,EAAW32H,EAEvC,CDRuD42H,CAAmBhF,EAAM5xH,GAAS0xH,UAKvF,OAAOn4H,KAAKuL,MAAMq6C,EATO,QASwB,CACnD,CDgRe03E,CAAWjF,EAAM5xH,GAC5B,MAAc,OAAVmrC,EACK4qF,EAASE,cAAcS,EAAM,CAClCR,KAAM,SAGHhB,GAAgBwB,EAAMvrF,EAAMr3C,OACrC,EAEAgjI,EAAG,SAAWlF,EAAMzmF,EAAO4qF,GACzB,IAAIgB,EGnSO,SAAuB9D,GACpCT,GAAa,EAAG3+H,WAChB,IAAI+9H,EAAOc,GAAOO,GACd9zE,EAAO6zE,GAAkBpB,GAAMF,UCLtB,SAA+BuB,GAC5CT,GAAa,EAAG3+H,WAChB,IAAI2/H,EAAOD,GAAkBN,GACzB+D,EAAkB,IAAIr/G,KAAK,GAI/B,OAHAq/G,EAAgBrD,eAAeH,EAAM,EAAG,GACxCwD,EAAgB1D,YAAY,EAAG,EAAG,EAAG,GAC1BN,GAAkBgE,EAE/B,CDHiDC,CAAsBrF,GAAMF,UAK3E,OAAOn4H,KAAKuL,MAAMq6C,EATO,QASwB,CACnD,CH0RkB+3E,CAActF,GAC5B,MAAc,OAAVzmF,EACK4qF,EAASE,cAAcc,EAAS,CACrCb,KAAM,SAGHhB,GAAgB6B,EAAS5rF,EAAMr3C,OACxC,EAEAsyB,EAAG,SAAWwrG,EAAMzmF,EAAO4qF,GACzB,MAAc,OAAV5qF,EACK4qF,EAASE,cAAcrE,EAAKyB,aAAc,CAC/C6C,KAAM,SAGHC,GAAkBvE,EAAMzmF,EACjC,EAEAgsF,EAAG,SAAWvF,EAAMzmF,EAAO4qF,GACzB,IAAIqB,EKxTO,SAAyBnE,GACtCT,GAAa,EAAG3+H,WAChB,IAAI+9H,EAAOc,GAAOO,GACdoE,EAAYzF,EAAKF,UACrBE,EAAK0F,YAAY,EAAG,GACpB1F,EAAK0B,YAAY,EAAG,EAAG,EAAG,GAC1B,IACIiE,EAAaF,EADUzF,EAAKF,UAEhC,OAAOn4H,KAAKk8C,MAAM8hF,EATM,OAS8B,CACxD,CL+SoBC,CAAgB5F,GAChC,MAAc,OAAVzmF,EACK4qF,EAASE,cAAcmB,EAAW,CACvClB,KAAM,cAGHhB,GAAgBkC,EAAWjsF,EAAMr3C,OAC1C,EAEA2jI,EAAG,SAAW7F,EAAMzmF,EAAO4qF,GACzB,IAAI2B,EAAY9F,EAAKuB,YACrB,OAAQhoF,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAO4qF,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,cACP8b,QAAS,eAGb,IAAK,QACH,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,SACP8b,QAAS,eAGb,IAAK,SACH,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,QACP8b,QAAS,eAIb,QACE,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,OACP8b,QAAS,eAGjB,EAEAtiB,EAAG,SAAWk1H,EAAMzmF,EAAO4qF,EAAU/1H,GACnC,IAAI03H,EAAY9F,EAAKuB,YACjBwE,GAAkBD,EAAY13H,EAAQ00H,aAAe,GAAK,GAAK,EACnE,OAAQvpF,GAEN,IAAK,IACH,OAAOl0C,OAAO0gI,GAEhB,IAAK,KACH,OAAOzC,GAAgByC,EAAgB,GAEzC,IAAK,KACH,OAAO5B,EAASE,cAAc0B,EAAgB,CAC5CzB,KAAM,QAEV,IAAK,MACH,OAAOH,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,cACP8b,QAAS,eAGb,IAAK,QACH,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,SACP8b,QAAS,eAGb,IAAK,SACH,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,QACP8b,QAAS,eAIb,QACE,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,OACP8b,QAAS,eAGjB,EAEA+d,EAAG,SAAW60F,EAAMzmF,EAAO4qF,EAAU/1H,GACnC,IAAI03H,EAAY9F,EAAKuB,YACjBwE,GAAkBD,EAAY13H,EAAQ00H,aAAe,GAAK,GAAK,EACnE,OAAQvpF,GAEN,IAAK,IACH,OAAOl0C,OAAO0gI,GAEhB,IAAK,KACH,OAAOzC,GAAgByC,EAAgBxsF,EAAMr3C,QAE/C,IAAK,KACH,OAAOiiI,EAASE,cAAc0B,EAAgB,CAC5CzB,KAAM,QAEV,IAAK,MACH,OAAOH,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,cACP8b,QAAS,eAGb,IAAK,QACH,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,SACP8b,QAAS,eAGb,IAAK,SACH,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,QACP8b,QAAS,eAIb,QACE,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,OACP8b,QAAS,eAGjB,EAEA9pB,EAAG,SAAW08H,EAAMzmF,EAAO4qF,GACzB,IAAI2B,EAAY9F,EAAKuB,YACjByE,EAA6B,IAAdF,EAAkB,EAAIA,EACzC,OAAQvsF,GAEN,IAAK,IACH,OAAOl0C,OAAO2gI,GAEhB,IAAK,KACH,OAAO1C,GAAgB0C,EAAczsF,EAAMr3C,QAE7C,IAAK,KACH,OAAOiiI,EAASE,cAAc2B,EAAc,CAC1C1B,KAAM,QAGV,IAAK,MACH,OAAOH,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,cACP8b,QAAS,eAGb,IAAK,QACH,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,SACP8b,QAAS,eAGb,IAAK,SACH,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,QACP8b,QAAS,eAIb,QACE,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,OACP8b,QAAS,eAGjB,EAEA9kB,EAAG,SAAW03H,EAAMzmF,EAAO4qF,GACzB,IACI8B,EADQjG,EAAK4D,cACgB,IAAM,EAAI,KAAO,KAClD,OAAQrqF,GACN,IAAK,IACL,IAAK,KACH,OAAO4qF,EAAS+B,UAAUD,EAAoB,CAC5C30H,MAAO,cACP8b,QAAS,eAEb,IAAK,MACH,OAAO+2G,EAAS+B,UAAUD,EAAoB,CAC5C30H,MAAO,cACP8b,QAAS,eACRrhB,cACL,IAAK,QACH,OAAOo4H,EAAS+B,UAAUD,EAAoB,CAC5C30H,MAAO,SACP8b,QAAS,eAGb,QACE,OAAO+2G,EAAS+B,UAAUD,EAAoB,CAC5C30H,MAAO,OACP8b,QAAS,eAGjB,EAEAqH,EAAG,SAAWurG,EAAMzmF,EAAO4qF,GACzB,IACI8B,EADAE,EAAQnG,EAAK4D,cASjB,OANEqC,EADY,KAAVE,EAzfA,OA2fiB,IAAVA,EA5fH,WA+feA,EAAQ,IAAM,EAAI,KAAO,KAExC5sF,GACN,IAAK,IACL,IAAK,KACH,OAAO4qF,EAAS+B,UAAUD,EAAoB,CAC5C30H,MAAO,cACP8b,QAAS,eAEb,IAAK,MACH,OAAO+2G,EAAS+B,UAAUD,EAAoB,CAC5C30H,MAAO,cACP8b,QAAS,eACRrhB,cACL,IAAK,QACH,OAAOo4H,EAAS+B,UAAUD,EAAoB,CAC5C30H,MAAO,SACP8b,QAAS,eAGb,QACE,OAAO+2G,EAAS+B,UAAUD,EAAoB,CAC5C30H,MAAO,OACP8b,QAAS,eAGjB,EAEA0e,EAAG,SAAWk0F,EAAMzmF,EAAO4qF,GACzB,IACI8B,EADAE,EAAQnG,EAAK4D,cAWjB,OAREqC,EADEE,GAAS,GA1hBN,UA4hBIA,GAAS,GA7hBX,YA+hBEA,GAAS,EAhiBb,UAGF,QAkiBG5sF,GACN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAO4qF,EAAS+B,UAAUD,EAAoB,CAC5C30H,MAAO,cACP8b,QAAS,eAEb,IAAK,QACH,OAAO+2G,EAAS+B,UAAUD,EAAoB,CAC5C30H,MAAO,SACP8b,QAAS,eAGb,QACE,OAAO+2G,EAAS+B,UAAUD,EAAoB,CAC5C30H,MAAO,OACP8b,QAAS,eAGjB,EAEA8X,EAAG,SAAW86F,EAAMzmF,EAAO4qF,GACzB,GAAc,OAAV5qF,EAAgB,CAClB,IAAI4sF,EAAQnG,EAAK4D,cAAgB,GAEjC,OADc,IAAVuC,IAAaA,EAAQ,IAClBhC,EAASE,cAAc8B,EAAO,CACnC7B,KAAM,QAEV,CACA,OAAOC,GAAkBvE,EAAMzmF,EACjC,EAEA6sF,EAAG,SAAWpG,EAAMzmF,EAAO4qF,GACzB,MAAc,OAAV5qF,EACK4qF,EAASE,cAAcrE,EAAK4D,cAAe,CAChDU,KAAM,SAGHC,GAAkBvE,EAAMzmF,EACjC,EAEA8sF,EAAG,SAAWrG,EAAMzmF,EAAO4qF,GACzB,IAAIgC,EAAQnG,EAAK4D,cAAgB,GACjC,MAAc,OAAVrqF,EACK4qF,EAASE,cAAc8B,EAAO,CACnC7B,KAAM,SAGHhB,GAAgB6C,EAAO5sF,EAAMr3C,OACtC,EAEA6E,EAAG,SAAWi5H,EAAMzmF,EAAO4qF,GACzB,IAAIgC,EAAQnG,EAAK4D,cAEjB,OADc,IAAVuC,IAAaA,EAAQ,IACX,OAAV5sF,EACK4qF,EAASE,cAAc8B,EAAO,CACnC7B,KAAM,SAGHhB,GAAgB6C,EAAO5sF,EAAMr3C,OACtC,EAEAua,EAAG,SAAWujH,EAAMzmF,EAAO4qF,GACzB,MAAc,OAAV5qF,EACK4qF,EAASE,cAAcrE,EAAK6D,gBAAiB,CAClDS,KAAM,WAGHC,GAAkBvE,EAAMzmF,EACjC,EAEAvlC,EAAG,SAAWgsH,EAAMzmF,EAAO4qF,GACzB,MAAc,OAAV5qF,EACK4qF,EAASE,cAAcrE,EAAK8D,gBAAiB,CAClDQ,KAAM,WAGHC,GAAkBvE,EAAMzmF,EACjC,EAEA+sF,EAAG,SAAWtG,EAAMzmF,GAClB,OAAOgrF,GAAkBvE,EAAMzmF,EACjC,EAEAgtF,EAAG,SAAWvG,EAAMzmF,EAAOitF,EAAWp4H,GACpC,IACIq4H,GADer4H,EAAQs4H,eAAiB1G,GACV2G,oBAClC,GAAuB,IAAnBF,EACF,MAAO,IAET,OAAQltF,GAEN,IAAK,IACH,OAAOqtF,GAAkCH,GAK3C,IAAK,OACL,IAAK,KAEH,OAAOI,GAAeJ,GAOxB,QACE,OAAOI,GAAeJ,EAAgB,KAE5C,EAEAlmH,EAAG,SAAWy/G,EAAMzmF,EAAOitF,EAAWp4H,GACpC,IACIq4H,GADer4H,EAAQs4H,eAAiB1G,GACV2G,oBAClC,OAAQptF,GAEN,IAAK,IACH,OAAOqtF,GAAkCH,GAK3C,IAAK,OACL,IAAK,KAEH,OAAOI,GAAeJ,GAOxB,QACE,OAAOI,GAAeJ,EAAgB,KAE5C,EAEAh/H,EAAG,SAAWu4H,EAAMzmF,EAAOitF,EAAWp4H,GACpC,IACIq4H,GADer4H,EAAQs4H,eAAiB1G,GACV2G,oBAClC,OAAQptF,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQutF,GAAoBL,EAAgB,KAGrD,QACE,MAAO,MAAQI,GAAeJ,EAAgB,KAEpD,EAEAM,EAAG,SAAW/G,EAAMzmF,EAAOitF,EAAWp4H,GACpC,IACIq4H,GADer4H,EAAQs4H,eAAiB1G,GACV2G,oBAClC,OAAQptF,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQutF,GAAoBL,EAAgB,KAGrD,QACE,MAAO,MAAQI,GAAeJ,EAAgB,KAEpD,EAEAh9G,EAAG,SAAWu2G,EAAMzmF,EAAOitF,EAAWp4H,GACpC,IAAI44H,EAAe54H,EAAQs4H,eAAiB1G,EAE5C,OAAOsD,GADS37H,KAAKk8C,MAAMmjF,EAAalH,UAAY,KAClBvmF,EAAMr3C,OAC1C,EAEA+kI,EAAG,SAAWjH,EAAMzmF,EAAOitF,EAAWp4H,GAGpC,OAAOk1H,IAFYl1H,EAAQs4H,eAAiB1G,GACfF,UACKvmF,EAAMr3C,OAC1C,GAEF,SAAS4kI,GAAoBj9H,EAAQq9H,GACnC,IAAI1D,EAAO35H,EAAS,EAAI,IAAM,IAC1Bs9H,EAAYx/H,KAAK4b,IAAI1Z,GACrBs8H,EAAQx+H,KAAKk8C,MAAMsjF,EAAY,IAC/BC,EAAUD,EAAY,GAC1B,GAAgB,IAAZC,EACF,OAAO5D,EAAOn+H,OAAO8gI,GAEvB,IAAIkB,EAAYH,GAAkB,GAClC,OAAO1D,EAAOn+H,OAAO8gI,GAASkB,EAAY/D,GAAgB8D,EAAS,EACrE,CACA,SAASR,GAAkC/8H,EAAQq9H,GACjD,OAAIr9H,EAAS,IAAO,GACPA,EAAS,EAAI,IAAM,KAChBy5H,GAAgB37H,KAAK4b,IAAI1Z,GAAU,GAAI,GAEhDg9H,GAAeh9H,EAAQq9H,EAChC,CACA,SAASL,GAAeh9H,EAAQq9H,GAC9B,IAAIG,EAAYH,GAAkB,GAC9B1D,EAAO35H,EAAS,EAAI,IAAM,IAC1Bs9H,EAAYx/H,KAAK4b,IAAI1Z,GAGzB,OAAO25H,EAFKF,GAAgB37H,KAAKk8C,MAAMsjF,EAAY,IAAK,GAElCE,EADR/D,GAAgB6D,EAAY,GAAI,EAEhD,CACA,YMnwBA,IAAIG,GAAoB,SAA2BC,EAASC,GAC1D,OAAQD,GACN,IAAK,IACH,OAAOC,EAAWxH,KAAK,CACrB1uH,MAAO,UAEX,IAAK,KACH,OAAOk2H,EAAWxH,KAAK,CACrB1uH,MAAO,WAEX,IAAK,MACH,OAAOk2H,EAAWxH,KAAK,CACrB1uH,MAAO,SAGX,QACE,OAAOk2H,EAAWxH,KAAK,CACrB1uH,MAAO,SAGf,EACIm2H,GAAoB,SAA2BF,EAASC,GAC1D,OAAQD,GACN,IAAK,IACH,OAAOC,EAAWj2G,KAAK,CACrBjgB,MAAO,UAEX,IAAK,KACH,OAAOk2H,EAAWj2G,KAAK,CACrBjgB,MAAO,WAEX,IAAK,MACH,OAAOk2H,EAAWj2G,KAAK,CACrBjgB,MAAO,SAGX,QACE,OAAOk2H,EAAWj2G,KAAK,CACrBjgB,MAAO,SAGf,EAkCIo2H,GAAiB,CACnB/pH,EAAG8pH,GACHE,EAnC0B,SAA+BJ,EAASC,GAClE,IAMII,EANAC,EAAcN,EAAQj7H,MAAM,cAAgB,GAC5Cw7H,EAAcD,EAAY,GAC1BE,EAAcF,EAAY,GAC9B,IAAKE,EACH,OAAOT,GAAkBC,EAASC,GAGpC,OAAQM,GACN,IAAK,IACHF,EAAiBJ,EAAWQ,SAAS,CACnC12H,MAAO,UAET,MACF,IAAK,KACHs2H,EAAiBJ,EAAWQ,SAAS,CACnC12H,MAAO,WAET,MACF,IAAK,MACHs2H,EAAiBJ,EAAWQ,SAAS,CACnC12H,MAAO,SAET,MAEF,QACEs2H,EAAiBJ,EAAWQ,SAAS,CACnC12H,MAAO,SAIb,OAAOs2H,EAAevjI,QAAQ,WAAYijI,GAAkBQ,EAAaN,IAAanjI,QAAQ,WAAYojI,GAAkBM,EAAaP,GAC3I,GAKA,YC/EA,IAAIS,GAA2B,CAAC,IAAK,MACjCC,GAA0B,CAAC,KAAM,QAO9B,SAASC,GAAoB5uF,EAAO6uF,EAAQ9jF,GACjD,GAAc,SAAV/K,EACF,MAAM,IAAIypF,WAAW,qCAAqC1lG,OAAO8qG,EAAQ,0CAA0C9qG,OAAOgnB,EAAO,mFAC5H,GAAc,OAAV/K,EACT,MAAM,IAAIypF,WAAW,iCAAiC1lG,OAAO8qG,EAAQ,0CAA0C9qG,OAAOgnB,EAAO,mFACxH,GAAc,MAAV/K,EACT,MAAM,IAAIypF,WAAW,+BAA+B1lG,OAAO8qG,EAAQ,sDAAsD9qG,OAAOgnB,EAAO,mFAClI,GAAc,OAAV/K,EACT,MAAM,IAAIypF,WAAW,iCAAiC1lG,OAAO8qG,EAAQ,sDAAsD9qG,OAAOgnB,EAAO,kFAE7I,CClBA,IAAI+jF,GAAuB,CACzBC,iBAAkB,CAChBC,IAAK,qBACLzoC,MAAO,+BAET0oC,SAAU,CACRD,IAAK,WACLzoC,MAAO,qBAET2oC,YAAa,gBACbC,iBAAkB,CAChBH,IAAK,qBACLzoC,MAAO,+BAET6oC,SAAU,CACRJ,IAAK,WACLzoC,MAAO,qBAET8oC,YAAa,CACXL,IAAK,eACLzoC,MAAO,yBAET+oC,OAAQ,CACNN,IAAK,SACLzoC,MAAO,mBAETgpC,MAAO,CACLP,IAAK,QACLzoC,MAAO,kBAETipC,YAAa,CACXR,IAAK,eACLzoC,MAAO,yBAETkpC,OAAQ,CACNT,IAAK,SACLzoC,MAAO,mBAETmpC,aAAc,CACZV,IAAK,gBACLzoC,MAAO,0BAETopC,QAAS,CACPX,IAAK,UACLzoC,MAAO,oBAETqpC,YAAa,CACXZ,IAAK,eACLzoC,MAAO,yBAETspC,OAAQ,CACNb,IAAK,SACLzoC,MAAO,mBAETupC,WAAY,CACVd,IAAK,cACLzoC,MAAO,wBAETwpC,aAAc,CACZf,IAAK,gBACLzoC,MAAO,2BC5DI,SAASypC,GAAkB9/F,GACxC,OAAO,WACL,IAAIr7B,EAAUnM,UAAUC,OAAS,QAAsBc,IAAjBf,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAE/EqP,EAAQlD,EAAQkD,MAAQjM,OAAO+I,EAAQkD,OAASm4B,EAAK+/F,aAEzD,OADa//F,EAAKggG,QAAQn4H,IAAUm4B,EAAKggG,QAAQhgG,EAAK+/F,aAExD,CACF,CCPA,ICD4C//F,GDmBxC+9F,GAAa,CACfxH,KAAMuJ,GAAkB,CACtBE,QApBc,CAChBC,KAAM,mBACNC,KAAM,aACNC,OAAQ,WACRC,MAAO,cAiBLL,aAAc,SAEhBj4G,KAAMg4G,GAAkB,CACtBE,QAlBc,CAChBC,KAAM,iBACNC,KAAM,cACNC,OAAQ,YACRC,MAAO,UAeLL,aAAc,SAEhBxB,SAAUuB,GAAkB,CAC1BE,QAhBkB,CACpBC,KAAM,yBACNC,KAAM,yBACNC,OAAQ,qBACRC,MAAO,sBAaLL,aAAc,UE9BdM,GAAuB,CACzBC,SAAU,qBACVC,UAAW,mBACXC,MAAO,eACPC,SAAU,kBACVC,SAAU,cACVrqC,MAAO,KCNM,SAASsqC,GAAgB3gG,GACtC,OAAO,SAAU4gG,EAAYj8H,GAC3B,IACIk8H,EACJ,GAAgB,gBAFFl8H,SAA0CA,EAAQgf,QAAU/nB,OAAO+I,EAAQgf,SAAW,eAEpEqc,EAAK8gG,iBAAkB,CACrD,IAAIf,EAAe//F,EAAK+gG,wBAA0B/gG,EAAK+/F,aACnDl4H,EAAQlD,SAA0CA,EAAQkD,MAAQjM,OAAO+I,EAAQkD,OAASk4H,EAC9Fc,EAAc7gG,EAAK8gG,iBAAiBj5H,IAAUm4B,EAAK8gG,iBAAiBf,EACtE,KAAO,CACL,IAAIiB,EAAgBhhG,EAAK+/F,aACrBkB,EAASt8H,SAA0CA,EAAQkD,MAAQjM,OAAO+I,EAAQkD,OAASm4B,EAAK+/F,aACpGc,EAAc7gG,EAAK7iC,OAAO8jI,IAAWjhG,EAAK7iC,OAAO6jI,EACnD,CAGA,OAAOH,EAFK7gG,EAAKkhG,iBAAmBlhG,EAAKkhG,iBAAiBN,GAAcA,EAG1E,CACF,CCjBe,SAASO,GAAanhG,GACnC,OAAO,SAAUzjC,GACf,IAAIoI,EAAUnM,UAAUC,OAAS,QAAsBc,IAAjBf,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/EqP,EAAQlD,EAAQkD,MAChBu5H,EAAev5H,GAASm4B,EAAKqhG,cAAcx5H,IAAUm4B,EAAKqhG,cAAcrhG,EAAKshG,mBAC7ElD,EAAc7hI,EAAOsG,MAAMu+H,GAC/B,IAAKhD,EACH,OAAO,KAET,IAOI5iI,EAPA+lI,EAAgBnD,EAAY,GAC5BoD,EAAgB35H,GAASm4B,EAAKwhG,cAAc35H,IAAUm4B,EAAKwhG,cAAcxhG,EAAKyhG,mBAC9EvkI,EAAMK,MAAMoB,QAAQ6iI,GAuB5B,SAAmBjiI,EAAO9B,GACxB,IAAK,IAAIP,EAAM,EAAGA,EAAMqC,EAAM9G,OAAQyE,IACpC,GAAcqC,EAAMrC,GAxBHyG,KAAK49H,GAyBpB,OAAOrkI,CAIb,CA9B6CW,CAAU2jI,GAevD,SAAiBE,EAAQjkI,GACvB,IAAK,IAAIP,KAAOwkI,EACd,GAAIA,EAAOrxH,eAAenT,IAAkBwkI,EAAOxkI,GAdlCyG,KAAK49H,GAepB,OAAOrkI,CAIb,CApBSykI,CAAQH,GAOb,OAHAhmI,EAAQwkC,EAAK4hG,cAAgB5hG,EAAK4hG,cAAc1kI,GAAOA,EAGhD,CACL1B,MAHFA,EAAQmJ,EAAQi9H,cAAgBj9H,EAAQi9H,cAAcpmI,GAASA,EAI7D4uG,KAHS7tG,EAAO9B,MAAM8mI,EAAc9oI,QAKxC,CACF,CCCA,MCzBA,GDaa,CACX6/C,KAAM,QACNupF,eP+CmB,SAAwB/xF,EAAOzzC,EAAOsI,GACzD,IAAIrI,EACAwlI,EAAalD,GAAqB9uF,GAQtC,OANExzC,EADwB,iBAAfwlI,EACAA,EACU,IAAVzlI,EACAylI,EAAWhD,IAEXgD,EAAWzrC,MAAMz7F,QAAQ,YAAayB,EAAM3C,YAEnDiL,SAA0CA,EAAQo9H,UAChDp9H,EAAQq9H,YAAcr9H,EAAQq9H,WAAa,EACtC,MAAQ1lI,EAERA,EAAS,OAGbA,CACT,EOhEEyhI,WLgBF,GKfEkE,eHVmB,SAAwBnyF,EAAOoyF,EAAOC,EAAWC,GACpE,OAAO/B,GAAqBvwF,EAC9B,EGSE4qF,SE+Fa,CACbE,cAxBkB,SAAuBlD,EAAa0K,GACtD,IAAIzjH,EAASR,OAAOu5G,GAShB2K,EAAS1jH,EAAS,IACtB,GAAI0jH,EAAS,IAAMA,EAAS,GAC1B,OAAQA,EAAS,IACf,KAAK,EACH,OAAO1jH,EAAS,KAClB,KAAK,EACH,OAAOA,EAAS,KAClB,KAAK,EACH,OAAOA,EAAS,KAGtB,OAAOA,EAAS,IAClB,EAGEg8G,IAAKgG,GAAgB,CACnBxjI,OApHY,CACdmlI,OAAQ,CAAC,IAAK,KACdC,YAAa,CAAC,KAAM,MACpBC,KAAM,CAAC,gBAAiB,gBAkHtBzC,aAAc,SAEhB5E,QAASwF,GAAgB,CACvBxjI,OAnHgB,CAClBmlI,OAAQ,CAAC,IAAK,IAAK,IAAK,KACxBC,YAAa,CAAC,KAAM,KAAM,KAAM,MAChCC,KAAM,CAAC,cAAe,cAAe,cAAe,gBAiHlDzC,aAAc,OACdmB,iBAAkB,SAA0B/F,GAC1C,OAAOA,EAAU,CACnB,IAEFlB,MAAO0G,GAAgB,CACrBxjI,OAhHc,CAChBmlI,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAChEC,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAC3FC,KAAM,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,aA8GnHzC,aAAc,SAEhBlI,IAAK8I,GAAgB,CACnBxjI,OA/GY,CACdmlI,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACvClC,MAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAC5CmC,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACxDC,KAAM,CAAC,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,aA4GvEzC,aAAc,SAEhBtD,UAAWkE,GAAgB,CACzBxjI,OA7GkB,CACpBmlI,OAAQ,CACNG,GAAI,IACJC,GAAI,IACJC,SAAU,KACVC,KAAM,IACNC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,MAAO,SAETT,YAAa,CACXE,GAAI,KACJC,GAAI,KACJC,SAAU,WACVC,KAAM,OACNC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,MAAO,SAETR,KAAM,CACJC,GAAI,OACJC,GAAI,OACJC,SAAU,WACVC,KAAM,OACNC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,MAAO,UAiFPjD,aAAc,OACde,iBA/E4B,CAC9BwB,OAAQ,CACNG,GAAI,IACJC,GAAI,IACJC,SAAU,KACVC,KAAM,IACNC,QAAS,iBACTC,UAAW,mBACXC,QAAS,iBACTC,MAAO,YAETT,YAAa,CACXE,GAAI,KACJC,GAAI,KACJC,SAAU,WACVC,KAAM,OACNC,QAAS,iBACTC,UAAW,mBACXC,QAAS,iBACTC,MAAO,YAETR,KAAM,CACJC,GAAI,OACJC,GAAI,OACJC,SAAU,WACVC,KAAM,OACNC,QAAS,iBACTC,UAAW,mBACXC,QAAS,iBACTC,MAAO,aAmDPjC,uBAAwB,UFvH1Bl+H,MGmCU,CACV+3H,ePxD0C56F,GOwDP,CACjCohG,aAvD4B,wBAwD5B6B,aAvD4B,OAwD5BrB,cAAe,SAAuBpmI,GACpC,OAAO+a,SAAS/a,EAAO,GACzB,GP5DK,SAAUe,GACf,IAAIoI,EAAUnM,UAAUC,OAAS,QAAsBc,IAAjBf,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/E4lI,EAAc7hI,EAAOsG,MAAMm9B,GAAKohG,cACpC,IAAKhD,EAAa,OAAO,KACzB,IAAImD,EAAgBnD,EAAY,GAC5B8E,EAAc3mI,EAAOsG,MAAMm9B,GAAKijG,cACpC,IAAKC,EAAa,OAAO,KACzB,IAAI1nI,EAAQwkC,GAAK4hG,cAAgB5hG,GAAK4hG,cAAcsB,EAAY,IAAMA,EAAY,GAGlF,MAAO,CACL1nI,MAHFA,EAAQmJ,EAAQi9H,cAAgBj9H,EAAQi9H,cAAcpmI,GAASA,EAI7D4uG,KAHS7tG,EAAO9B,MAAM8mI,EAAc9oI,QAKxC,GOgDAkiI,IAAKwG,GAAa,CAChBE,cA5DmB,CACrBiB,OAAQ,UACRC,YAAa,6DACbC,KAAM,8DA0DJlB,kBAAmB,OACnBE,cAzDmB,CACrB2B,IAAK,CAAC,MAAO,YAyDX1B,kBAAmB,QAErBtG,QAASgG,GAAa,CACpBE,cA1DuB,CACzBiB,OAAQ,WACRC,YAAa,YACbC,KAAM,kCAwDJlB,kBAAmB,OACnBE,cAvDuB,CACzB2B,IAAK,CAAC,KAAM,KAAM,KAAM,OAuDtB1B,kBAAmB,MACnBG,cAAe,SAAuB9kI,GACpC,OAAOA,EAAQ,CACjB,IAEFm9H,MAAOkH,GAAa,CAClBE,cA3DqB,CACvBiB,OAAQ,eACRC,YAAa,sDACbC,KAAM,6FAyDJlB,kBAAmB,OACnBE,cAxDqB,CACvBc,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtFa,IAAK,CAAC,OAAQ,MAAO,QAAS,OAAQ,QAAS,QAAS,QAAS,OAAQ,MAAO,MAAO,MAAO,QAuD5F1B,kBAAmB,QAErB5J,IAAKsJ,GAAa,CAChBE,cAxDmB,CACrBiB,OAAQ,YACRlC,MAAO,2BACPmC,YAAa,kCACbC,KAAM,gEAqDJlB,kBAAmB,OACnBE,cApDmB,CACrBc,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACnDa,IAAK,CAAC,OAAQ,MAAO,OAAQ,MAAO,OAAQ,MAAO,SAmDjD1B,kBAAmB,QAErBhF,UAAW0E,GAAa,CACtBE,cApDyB,CAC3BiB,OAAQ,6DACRa,IAAK,kFAmDH7B,kBAAmB,MACnBE,cAlDyB,CAC3B2B,IAAK,CACHV,GAAI,MACJC,GAAI,MACJC,SAAU,OACVC,KAAM,OACNC,QAAS,WACTC,UAAW,aACXC,QAAS,WACTC,MAAO,WA0CPvB,kBAAmB,SHzErB98H,QAAS,CACP00H,aAAc,EACdK,sBAAuB,IIF3B,IAAI0J,GAAyB,wDAIzBC,GAA6B,oCAC7BC,GAAsB,eACtBC,GAAoB,MACpBC,GAAgC,WAsSrB,SAAS7E,GAAO/G,EAAW6L,EAAgB9+H,GACxD,IAAIk0H,EAAMI,EAAiBH,EAAOC,EAAO2K,EAAOjK,EAAuBkK,EAAkBC,EAAuBzK,EAAuBC,EAAwByK,EAAOC,EAAOC,EAAO/K,EAAuBgL,EAAkBC,EAAuBC,EAAwBC,EAC5QhN,GAAa,EAAG3+H,WAChB,IAAI4rI,EAAYxoI,OAAO6nI,GACnB/K,EAAiBC,KACjBW,EAA4L,QAAlLT,EAAgG,QAAxFI,EAAkBt0H,aAAyC,EAASA,EAAQ20H,cAAwC,IAApBL,EAA6BA,EAAkBP,EAAeY,cAA6B,IAATT,EAAkBA,EAAOwL,GAC7N3K,EAAwBjC,GAAu3B,QAA52BqB,EAA6jB,QAApjBC,EAAue,QAA9d2K,EAAsH,QAA7GjK,EAAwB90H,aAAyC,EAASA,EAAQ+0H,6BAA6D,IAA1BD,EAAmCA,EAAwB90H,SAA0F,QAAvCg/H,EAAmBh/H,EAAQ20H,cAAyC,IAArBqK,GAA8F,QAAtDC,EAAwBD,EAAiBh/H,eAA+C,IAA1Bi/H,OAA/J,EAA2MA,EAAsBlK,6BAA6C,IAAVgK,EAAmBA,EAAQhL,EAAegB,6BAA6C,IAAVX,EAAmBA,EAA4D,QAAnDI,EAAwBT,EAAeY,cAA8C,IAA1BH,GAAyG,QAA5DC,EAAyBD,EAAsBx0H,eAAgD,IAA3By0H,OAA9E,EAA2HA,EAAuBM,6BAA6C,IAAVZ,EAAmBA,EAAQ,GAGt7B,KAAMY,GAAyB,GAAKA,GAAyB,GAC3D,MAAM,IAAIH,WAAW,6DAEvB,IAAIF,EAAe5B,GAAs1B,QAA30BoM,EAAkiB,QAAzhBC,EAAqd,QAA5cC,EAA6G,QAApG/K,EAAwBr0H,aAAyC,EAASA,EAAQ00H,oBAAoD,IAA1BL,EAAmCA,EAAwBr0H,SAA0F,QAAvCq/H,EAAmBr/H,EAAQ20H,cAAyC,IAArB0K,GAA8F,QAAtDC,EAAwBD,EAAiBr/H,eAA+C,IAA1Bs/H,OAA/J,EAA2MA,EAAsB5K,oBAAoC,IAAV0K,EAAmBA,EAAQrL,EAAeW,oBAAoC,IAAVyK,EAAmBA,EAA6D,QAApDI,EAAyBxL,EAAeY,cAA+C,IAA3B4K,GAA2G,QAA7DC,EAAyBD,EAAuBv/H,eAAgD,IAA3Bw/H,OAA/E,EAA4HA,EAAuB9K,oBAAoC,IAAVwK,EAAmBA,EAAQ,GAG54B,KAAMxK,GAAgB,GAAKA,GAAgB,GACzC,MAAM,IAAIE,WAAW,oDAEvB,IAAKD,EAAOoB,SACV,MAAM,IAAInB,WAAW,yCAEvB,IAAKD,EAAOyE,WACV,MAAM,IAAIxE,WAAW,2CAEvB,IAAIgE,EAAelG,GAAOO,GAC1B,ICzTa,SAAiBA,GAE9B,GADAT,GAAa,EAAG3+H,YACX4+H,GAAOQ,IAAmC,iBAAdA,EAC/B,OAAO,EAET,IAAIrB,EAAOc,GAAOO,GAClB,OAAQrjE,MAAMp2C,OAAOo4G,GACvB,CDkTO+N,CAAQ/G,GACX,MAAM,IAAIhE,WAAW,sBAMvB,IAAIyD,EEvVS,SAAyCzG,GACtD,IAAIgO,EAAU,IAAIjoH,KAAKA,KAAKkoH,IAAIjO,EAAKkO,cAAelO,EAAKmO,WAAYnO,EAAKoO,UAAWpO,EAAKqO,WAAYrO,EAAKsO,aAActO,EAAKuO,aAAcvO,EAAKwO,oBAEjJ,OADAR,EAAQjM,eAAe/B,EAAKkO,eACrBlO,EAAKF,UAAYkO,EAAQlO,SAClC,CFmVuB2O,CAAgCzH,GACjDgH,EG9US,SAAyB3M,EAAWqN,GAGjD,OAFA9N,GAAa,EAAG3+H,WCDH,SAAyBo/H,EAAWqN,GACjD9N,GAAa,EAAG3+H,WAChB,IAAIwjI,EAAY3E,GAAOO,GAAWvB,UAC9BvlD,EAAS2mD,GAAUwN,GACvB,OAAO,IAAI3oH,KAAK0/G,EAAYlrD,EAC9B,CDFSo0D,CAAgBtN,GADVH,GAAUwN,GAEzB,CH0UgBE,CAAgB5H,EAAcP,GACxCoI,EAAmB,CACrB1L,sBAAuBA,EACvBL,aAAcA,EACdC,OAAQA,EACR2D,cAAeM,GAiCjB,OA/Ba6G,EAAUvhI,MAAMwgI,IAA4BhmI,KAAI,SAAU2oC,GACrE,IAAIq/F,EAAiBr/F,EAAU,GAC/B,MAAuB,MAAnBq/F,GAA6C,MAAnBA,GAErBC,EADa,GAAeD,IACdr/F,EAAWszF,EAAOyE,YAElC/3F,CACT,IAAGtrC,KAAK,IAAImI,MAAMugI,IAAwB/lI,KAAI,SAAU2oC,GAEtD,GAAkB,OAAdA,EACF,MAAO,IAET,IAqBwB6U,EACtBqiD,EAtBEmoC,EAAiBr/F,EAAU,GAC/B,GAAuB,MAAnBq/F,EACF,OAoBAnoC,GADsBriD,EAnBI7U,GAoBVnjC,MAAMygI,KAInBpmC,EAAQ,GAAGtiG,QAAQ2oI,GAAmB,KAFpC1oF,EApBP,IZrXqC/K,EYqXjCqjE,EAAY,GAAWkyB,GAC3B,GAAIlyB,EAOF,OANMxuG,SAA0CA,EAAQ4gI,8BZvXrBz1F,EYuX8E9J,GZtXlE,IAA5Cy4F,GAAwBpkI,QAAQy1C,KYuXjC4uF,GAAoB14F,EAAWy9F,EAAgB7nI,OAAOg8H,IAElDjzH,SAA0CA,EAAQ6gI,+BZ7XvD,SAAmC11F,GACxC,OAAoD,IAA7C0uF,GAAyBnkI,QAAQy1C,EAC1C,CY2X+F21F,CAA0Bz/F,IACjH04F,GAAoB14F,EAAWy9F,EAAgB7nI,OAAOg8H,IAEjDzkB,EAAUoxB,EAASv+F,EAAWszF,EAAOoB,SAAU0K,GAExD,GAAIC,EAAexiI,MAAM2gI,IACvB,MAAM,IAAIjK,WAAW,iEAAmE8L,EAAiB,KAE3G,OAAOr/F,CACT,IAAGtrC,KAAK,GAEV,+aKlYA,MAAMgrI,WAAyB,EAAA/nB,UAC7B,uBAAOgoB,CAAiBC,GACtB,MAAMC,EAAgB,IAAItoI,MAAMqoI,EAAWntI,QAM3C,OAJAmtI,EAAW3oI,SAAQ,CAACwT,EAAW3T,KAC7B+oI,EAAc/oI,GAAS2T,EAAU9Q,MAAMnE,YAAS,KAG3CqqI,CACT,CAEA,WAAA56H,CAAYtL,GACVqpH,MAAMrpH,GACN,MAAM,WACJimI,GACEjmI,EAEJzH,KAAK4tI,iBAAkB,IAAAlvB,aACvB1+G,KAAKm0H,eAAiBn0H,KAAKm0H,eAAenwG,KAAKhkB,MAC/CA,KAAK6tI,WAAa7tI,KAAK6tI,WAAW7pH,KAAKhkB,MAEvCA,KAAKmhC,MAAQ,CACXusG,aACAI,OAAQ,CAAC,EACTC,UAAW,KACXJ,cAAeH,GAAiBC,iBAAiBC,GACjD1hI,KAAM,GAEV,CAEA,iBAAAolH,GACE,MAAM,sBACJ4c,EAAqB,uBACrBC,GACEjuI,KAAKyH,MACTzH,KAAKkuI,aAEDD,GACFA,EACGD,EAEG,EADAhuI,KAAK4tI,gBAAgB/5B,QAAQvjG,YAIvC,CAEA,+BAAOylH,CAAyBC,EAAWnrF,GACzC,MAAM1J,EAAQ,CAAC,GAEbusG,WAAYS,GACVnY,GAGF0X,WAAYU,GACVvjG,EAYJ,OAVG,KAAQsjG,EAAiBC,IACtB,KACFZ,GAAiBC,iBAAiBU,GAClCX,GAAiBC,iBAAiBW,MAGpCjtG,EAAMwsG,cAAgBH,GAAiBC,iBAAiBU,GACxDhtG,EAAMusG,WAAaS,GAGdhtG,CACT,CAEA,cAAAgzF,CAAe57G,EAAW3T,EAAOtB,GAC/B,MAAM,sBAAE0qI,GAA0BhuI,KAAKyH,MACvC,IAAI8uH,EAAYv2H,KAAKmhC,MAErBo1F,EAAY,SAAKA,GAAcv2H,KAAKquI,cAAc/qI,EAAOiV,EAAU9Q,QAE9D8uH,EAAUuX,OAAOv1H,EAAU9Q,MAAMtE,QACpCozH,EAAUoX,cAAc/oI,GAAStB,EAE7BiV,EAAU9Q,MAAMslC,UAClBx0B,EAAU9Q,MAAMslC,SAASzpC,IAI7BtD,KAAKiwB,UAAUomG,GAAmB,SAAKA,GAAkBE,KAAc,KACjEyX,GACFhuI,KAAK6tI,YACP,GAEJ,CAEA,iBAAAS,GACE,MAAM,SAAEC,GAAavuI,KAAKyH,MACpBquG,EAAa,CAAC,2BAMpB,OAJIy4B,GACFz4B,EAAW/zG,KAAK,aAGX+zG,EAAWtzG,KAAK,IACzB,CAEA,kBAAAgsI,GACE,MAAM,YAAEC,EAAW,YAAEC,GAAgB1uI,KAAKyH,MACpCquG,EAAa,GAUnB,OARI24B,GACF34B,EAAW/zG,KAAK0sI,GAGdC,GACF54B,EAAW/zG,KAAK2sI,GAGX54B,EAAWtzG,KAAK,IACzB,CAEA,kBAAAmsI,CAAmBp2H,GACjB,MAAM,MACJ1X,EAAK,OACLitI,EAAM,UACNC,GACE/tI,KAAKmhC,MAQT,OANItgC,GAASktI,EACXD,EAAOv1H,EAAU9Q,MAAMtE,MAAQ,OACpBtC,GAASktI,GAA+C,SAAjCD,EAAOv1H,EAAU9Q,MAAMtE,cAClD2qI,EAAOv1H,EAAU9Q,MAAMtE,MAGzB2qI,EAAOv1H,EAAU9Q,MAAMtE,MAAQ2qI,EAAOv1H,EAAU9Q,MAAMtE,MAAM3B,gBAAa,CAClF,CAEA,UAAA0sI,GACE,MAAM,WAAER,GAAe1tI,KAAKyH,MACtBuE,EAAO,GAEb0hI,EAAW3oI,SAAQ,KACjBiH,EAAKjK,MAAK,IAAA28G,aAAY,IAGxB1+G,KAAKiwB,SAAS,CACZjkB,QAEJ,CAEA,aAAAqiI,CAAc/qI,EAAOmE,GACnB,MAAM,UAAEsmI,EAAS,OAAED,GAAW9tI,KAAKmhC,OAC7B,MAAEtgC,EAAK,aAAE+tI,GAAiB5uI,KAAKyH,MAE/BonI,EAAkBpnI,EAAMqnI,SAAWxtI,OAAOwD,KAAK2C,EAAMqnI,UAAY,GAEjEvY,EAAY,CAChBuX,OAASjtI,GAASktI,EAAa,CAAC,EAAI,MAAKD,IAE3C,IAAIjW,GAAK,EAGT,GAAI+W,EACF,OAAOrY,EAIT,UAAWwY,KAAiBF,EAE1B,IAAIG,EADcvnI,EAAMqnI,SAASC,IACnBzrI,GAAQ,CACpBizH,EAAUuX,OAAOrmI,EAAMtE,MAAQsE,EAAMwnI,mBAAmBF,GACxDlX,GAAK,EACL,KACF,CAUF,OANIA,UACKtB,EAAUuX,OAAOrmI,EAAMtE,MAGhCozH,EAAUwX,UAAY,KAEfxX,CACT,CAEA,iBAAA2Y,CAAkBpB,GAChB,MAAM,WAAEJ,EAAU,aAAEkB,GAAiB5uI,KAAKyH,OACpC,cAAEkmI,GAAkB3tI,KAAKmhC,MACzBo1F,EAAY,CAChBuX,OAAQ,MAAKA,IAGf,QAAIc,IAAsD,IAAtCjB,EAAcxrI,aAAQ,MAItCb,OAAOwD,KAAKyxH,EAAUuX,QAAQvtI,OAAS,IAI3CmtI,EAAW3oI,SAAQ,CAACwT,EAAW3T,KAC7B2xH,EAAUuX,OAAS,SACdvX,EAAUuX,QACV9tI,KAAKquI,cAAcV,EAAc/oI,GAAQ2T,EAAU9Q,OAAOqmI,OAAA,IAI1DxsI,OAAOwD,KAAKyxH,EAAUuX,QAAQvtI,OAAS,GAChD,CAEA,SAAA4uI,GACE,MAAM,KAAEnjI,GAAShM,KAAKmhC,OAChB,WACJusG,GACE1tI,KAAKyH,MAETuE,EAAKjH,SAASguG,IA5NlB,OA6NU,SAAAA,EAAIc,cAAJ,IAAahqD,QACfkpD,EAAIc,QAAQhqD,OACd,IAGF7pD,KAAKiwB,SAAS,CACZ69G,OAAQ,CAAC,EACTC,UAAW,KACXJ,cAAeH,GAAiBC,iBAAiBC,IAErD,CAEA,aAAA0B,CAAcvuI,GACZb,KAAKiwB,SAAS,CACZ89G,UAAWltI,GAEf,CAEA,UAAAgtI,GACE,MAAM,OAAEC,EAAM,cAAEH,GAAkB3tI,KAAKmhC,OACjC,aACJytG,EAAY,SAAES,EAAQ,SAAEP,EAAQ,kBAAEQ,GAChCtvI,KAAKyH,MAELmnI,IACFS,EAAS1B,GACT3tI,KAAKmvI,aAI0B,IAA/B7tI,OAAOwD,KAAKgpI,GAAQvtI,QAChB8uI,GAAgC,mBAAbA,IAEnBP,GACEA,EAASnB,GACX3tI,KAAKovI,cAAcE,IAMrBD,EAAS1B,GACT3tI,KAAKmvI,aAGX,CAEA,MAAA9wB,GACE,MAAM,sBACJ2vB,EAAqB,WAAEN,EAAU,WAAE6B,EAAU,SAAE56H,EAAQ,YAAE+5H,EAAW,MAAE7tI,GACpEb,KAAKyH,OACH,UACJsmI,EAAS,KAAE/hI,EAAI,OAAE8hI,GACf9tI,KAAKmhC,MAET,OACE,kBAAC,WACC,kBAAC,OAAIv0B,UAAW5M,KAAKsuI,qBACnB,kBAAC,GAAG,KAEAZ,EAAWvoI,KAAI,CAACoT,EAAW3T,KACzB,MAAM4qI,EAAgBj3H,EAAUpV,KAChCvC,QAAQmuD,IAAI,gBAAiBygF,GAC7B,MAEI,EAAAj3H,EAAU9Q,OADZslC,SAAAA,EAAA,MAAUzpC,GACR,EADkB4uG,mKAAA,CAClB,EADkB,CAApB,WAAU,UAGZ,OACE,kBAAC,GAAM,CAACnkE,KAAM,MAAMx1B,EAAUw1B,MAAQ,WAAWx1B,EAAUw1B,MAAQ,OAAQ/oC,IAAKuT,EAAU9Q,MAAMtE,MAC9F,kBAACqsI,KAAA,IACC76H,SAAUA,GAAY4D,EAAU9Q,MAAMkN,SAEtCo4B,SAAU/sC,KAAKm0H,eAAenwG,KAAKhkB,KAAMuY,EAAW3T,IAChDstG,KAJL,CAKC51E,MAAuB,WAAhBoyG,EAA2B,GAAKn2H,EAAU9Q,MAAM60B,MACvDz7B,MAAOb,KAAK2uI,mBAAmBp2H,GAC/Bw6F,IAAK/mG,EAAKpH,GACVtB,+BAEJ,KAML0qI,EAkBG,KAhBA,kBAAC,QACCphI,UAAW5M,KAAKwuI,qBAChBz7B,IAAK/yG,KAAK4tI,iBAEV,kBAAC,GACCj5H,SAAU3U,KAAKkvI,kBAAkBpB,GACjClhI,UAAU,gCACVgmG,QAAS5yG,KAAK6tI,WACd15G,MAAM,UACNpgB,KAAK,SACLg6B,KAAsB,WAAhB2gG,EAA2B,KAAO,MAEtCa,GAAc,SAQ1B1uI,GAASktI,EAEL,kBAAC,OAAInhI,UAAU,gCACb,kBAAC,KAAEA,UAAU,iBACT/L,GAASktI,IAIf,KAIZ,EAGFP,GAAiBp7B,UAAY,CAC3B47B,sBAAuB,SACvBO,SAAU,SACVgB,WAAY,WACZd,YAAa,WACbf,WAAY,eAAqBroI,OACjCqpI,YAAa,WACb/5H,SAAU,SACVs5H,uBAAwB,SACxBptI,MAAO,WACP+tI,aAAc,SACdS,SAAU,SACVP,SAAU,SACVQ,kBAAmB,YAGrB,sWC1VA,MAAMG,WAAqB,EAAAhqB,UACzB,uBAAOiqB,CAAiB3a,GACtB,IAAIsC,EAAY,KAchB,MAZyB,iBAAdtC,IACTsC,EAAYtC,GAGoC,oBAA9CzzH,OAAOC,UAAUC,SAASC,KAAKszH,KACjCsC,EAAYtC,EAAU5xH,MAGpB+7H,GAAOnK,KACTsC,EAAYoP,GAAO1R,EAAW,eAGzBsC,CACT,CAEA,0BAAOsY,CAAoBjB,GACzB,MAAM54B,EAAa,GAMnB,MAJoB,WAAhB44B,GACF54B,EAAW/zG,KAAK,kCAGX+zG,EAAWtzG,KAAK,IACzB,CAEA,WAAAuQ,CAAYtL,GACVqpH,MAAMrpH,GACN,MAAM,MACJnE,GACEtD,KAAKyH,MAETzH,KAAKmhC,MAAQ,CACXvqB,aAActT,GAAS,GACvBA,MAAOA,GAAS,GAChBssI,YAAa,GAGf5vI,KAAK0vD,WAAa,EAElB1vD,KAAK6vI,iBAAmB7vI,KAAK6vI,iBAAiB7rH,KAAKhkB,MACnDA,KAAKiuI,uBAAyBjuI,KAAKiuI,uBAAuBjqH,KAAKhkB,MAC/DA,KAAK8vI,qBAAsB,IAAApxB,YAC7B,CAEA,+BAAOqX,CAAyBC,EAAWnrF,GACzC,MAAM1J,EAAQ,CAAC,EAUf,OAPE60F,EAAU1yH,OAASi1D,KAAK09D,UAAUD,EAAU1yH,SACxCi1D,KAAK09D,UAAUprF,EAAUj0B,gBAE7BuqB,EAAM79B,MAAQ0yH,EAAU1yH,OAAS,GACjC69B,EAAMvqB,aAAeo/G,EAAU1yH,OAAS,IAGnC69B,EAAM79B,MAAQ69B,EAAQ,IAC/B,CAEA,gBAAA0uG,CAAiBvsI,GACf,MAAMizH,EAAYv2H,KAAK+vI,UAAUzsI,GACjCtD,KAAKiwB,UAAUomG,GAAmB,SAAKA,GAAkBE,KAAc,KACrEv2H,KAAKgwI,gBAAgBzZ,EAAUjzH,MAAM/C,OAAS,EAAG,KAAM+C,EAAM,GAEjE,CAEA,gBAAA2sI,CAAiBrrI,EAAOtB,GACtB,IAAI8zH,EACJp3H,KAAKiwB,UAAUomG,IACb,MAAME,EAAY,MAAKF,GAKvB,OAJAe,GAAY,KAAAle,QAAOqd,EAAUjzH,MAAMsB,GAAOtB,OAAOk5G,OACjD+Z,EAAUjzH,MAAMsB,GAAOtB,MAAQA,EAC/BizH,EAAUjzH,MAAMsB,GAAOsrI,UAAW,EAE3B3Z,CAAS,IACf,KACDv2H,KAAKgwI,gBAAgBprI,EAAOwyH,EAAW9zH,EAAM,GAEjD,CAEA,sBAAA6sI,CAAuBvrI,EAAOtB,GAC5B,IAAI8zH,EACJp3H,KAAKiwB,UAAUomG,IACb,MAAME,EAAY,MAAKF,GAIvB,OAHAe,GAAY,KAAAle,QAAOqd,EAAUjzH,MAAMsB,GAAO8vD,UAAU8nD,OACpD+Z,EAAUjzH,MAAMsB,GAAO8vD,SAAWpxD,EAE3BizH,CAAS,IACf,KACDv2H,KAAKgwI,gBAAgBprI,EAAOwyH,EAAW9zH,EAAM,GAEjD,CAEA,oBAAA8sI,CAAqB1B,GACnB,MAAM,OAAEz0H,GAAWja,KAAKyH,MAClBquG,EAAa,CAAC,2BAQpB,OANAA,EAAW/zG,KAAKkY,EAAOy0H,aAAe,SAElB,WAAhBA,GACF54B,EAAW/zG,KAAK,mCAGX+zG,EAAWtzG,KAAK,IACzB,CAEA,eAAA6tI,GAEE,OADArwI,KAAK0vD,YAAc,EACZ1vD,KAAK0vD,UACd,CAIA,eAAA4gF,CAAgBC,GACd,MAAM,OAAEt2H,GAAWja,KAAKyH,MACxB,IAAInE,EAAQ,KAEZ,OAAQ2W,EAAOy0H,aACb,IAAK,OACL,IAAK,SAYHprI,EAXiBitI,EAASjtI,MAAM6zH,QAAO,CAACC,EAAWrC,EAAWnwH,KAC5D,MAAMyyH,EAAYoY,GAAaC,iBAAiB3a,GAChD,IAAIyb,EAAY,KAMhB,OAJI5rI,IAAU2rI,EAASjtI,MAAM/C,OAAS,IACpCiwI,EAAY,IAGPpZ,EAAYC,EAAYmZ,CAAS,GACvC,IAIH,MAEF,QACEltI,EACE,kBAAC,GAAG,KAEA2W,EAAOyzH,WAAWvoI,KAAI,CAACoT,EAAW3T,IAChC,kBAAC,IACCI,IAAKhF,KAAKqwI,kBACVtiG,KAAM,MAAMx1B,EAAUw1B,WAAWx1B,EAAUw1B,QAEzC0hG,GAAaC,iBAAiBa,EAASjtI,MAAMsB,QAU7D,OAAOtB,CACT,CAEA,sBAAA2qI,CAAuB3qI,GACrBtD,KAAKiwB,SAAS,CACZ2/G,YAAatsI,GAEjB,CAEA,eAAAmtI,CAAgB7rI,GACd,MAAM+2H,EAAY37H,KAAK0wI,iBAEvB1wI,KAAKiwB,UAAUomG,IACb,MAAME,EAAY,MAAKF,GAIvB,OAHAE,EAAUjzH,MAAQq4H,EAClBpF,EAAUjzH,MAAMsB,GAAOsrI,UAAY3Z,EAAUjzH,MAAMsB,GAAOsrI,SAEnD3Z,CAAS,GAEpB,CAEA,QAAAoa,CAAS/rI,EAAOmwH,GACd,MAAM,MAAEzxH,GAAUtD,KAAKmhC,MACvB,IAAI02F,GAAK,EAYT,OAVAv0H,EAAMyB,SAAQ,CAACa,EAAM83G,KACfnlD,KAAK09D,UAAUrwH,EAAKtC,SAAWi1D,KAAK09D,UAAUlB,KAE9C8C,IADEjzH,GAAS,GAAK84G,IAAc94G,GAKlC,IAGKizH,CACT,CAEA,SAAAkY,CAAUpnH,GACR,MAAM,MAAErlB,GAAUtD,KAAKmhC,OACjB,OAAElnB,GAAWja,KAAKyH,MAClBstH,EAAY,CAChBmb,UAAU,EACV5sI,MAAOqlB,GAEH4tG,EAAY,CAChBjzH,MAAOA,EAAMf,MAAM,IASrB,OANI0X,EAAOy6C,WACTqgE,EAAUrgE,SAAW,IAGvB6hE,EAAUjzH,MAAMvB,KAAKgzH,GAEdwB,CACT,CAEA,cAAAqa,CAAehsI,GACb,IAAIisI,EACJ7wI,KAAKiwB,UAAUomG,IACb,MAAMya,EAAWza,EAAc/yH,MAAMf,MAAM,GAG3C,OAFAsuI,EAAcC,EAASlpI,OAAOhD,EAAO,GAE9B,CACLtB,MAAOwtI,EACR,IACA,KACD9wI,KAAKgwI,gBAAgBprI,EAAOisI,EAAa,KAAK,GAElD,CAEA,cAAAH,GACE,MAAM,MAAEptI,GAAUtD,KAAKmhC,MAavB,OAXkB79B,EAAM6B,KAAK4vH,IAC3B,MAAMgc,EAAgB,MAAKhc,GAE3B,OAAIgc,EAAcb,UAChBa,EAAcb,UAAW,EAClBa,GAGFA,CAAa,GAIxB,CAEA,eAAAf,CAAgBprI,EAAOwyH,EAAW4Z,GAChC,MAAM,SAAEjkG,GAAa/sC,KAAKyH,OACpB,MAAEnE,GAAUtD,KAAKmhC,MAEnB4L,GAAgC,mBAAbA,GACrBA,EAAWzpC,EAAM/C,OAAU+C,EAAQ,KAAOsB,EAAOwyH,EAAW4Z,EAEhE,CAEA,WAAAC,CAAYV,EAAU3rI,GA5QxB,MA6QI,MAAM,OAAEqV,EAAM,SAAEtF,GAAa3U,KAAKyH,OAC5B,YAAEmoI,EAAW,MAAEtsI,GAAUtD,KAAKmhC,MAE9B+vG,GAAmB,KAAAh4B,QAAOj/F,EAAOyzH,YAAYlxB,OAMnD,OAJA+zB,EAASjtI,MAAMyB,SAAQ,CAACgwH,EAAWrX,KACjCwzB,EAAiBxzB,GAAWj2G,MAAMnE,MAAQyxH,CAAS,IAInD,kBAAC,MACC/vH,IAAKJ,EACLgI,UAAW6iI,GAAaE,oBAAoB11H,EAAOy0H,aACnD37B,IAAK/yG,KAAK8vI,qBAEV,kBAAC,OACCljI,UAAW,gCAAgCqN,EAAOy0H,aAAe,UAAW6B,EAASL,SAAY,qBAAuB,MAGrHK,EAASL,SAiCN,oCACE,kBAAC,IACCX,WAAW,SACXhB,SAAUt0H,EAAOs0H,SACjB55H,WACA+5H,YAAaz0H,EAAOy0H,YACpBhB,WAAYwD,EAEZ7B,SAAUrvI,KAAKiwI,iBAAiBjsH,KAAKhkB,KAAM4E,GAE3CkqI,SAAU9uI,KAAK2wI,SAAS3sH,KAAKhkB,KAAM4E,GACnC0qI,kBAAkB,sCAEpB,kBAAC,UACCv7H,KAAK,SACLnH,UAAU,2CACVgmG,QAAS5yG,KAAK4wI,eAAe5sH,KAAKhkB,KAAM4E,GACxC,aAAW,UAEX,kBAAC,EAAI,CAACmP,KAAK,YAlDf,oCACI/T,KAAKswI,gBAAgBC,EAAU3rI,GACjC,kBAAC,OACCgI,UAAU,mCACVC,MAAO,CACLiD,QAAS,QACTH,MAA+B,WAAvBsK,EAAOy0H,YAA4B,OAAS,GAAGkB,EAAc,SAGvE,kBAAC,UACCj7H,WACAZ,KAAK,SACLnH,UAAU,mCACVgmG,QAAS5yG,KAAKywI,gBAAgBzsH,KAAKhkB,KAAM4E,GACzC,aAAW,QAEX,kBAAC,EAAI,CAACmP,KAAK,UAEb,kBAAC,UACCY,WACAZ,KAAK,SACLnH,UAAU,mCACVgmG,QAAS5yG,KAAK4wI,eAAe5sH,KAAKhkB,KAAM4E,GACxC,aAAW,UAEX,kBAAC,EAAI,CAACmP,KAAK,cAgCvBkG,EAAOy6C,SAEH,kBAAC+6E,GAAA,CACC96H,WAEAo4B,SAAU/sC,KAAKmwI,uBAAuBnsH,KAAKhkB,KAAM4E,GACjDqV,OAAQA,EAAOy6C,SAASz6C,OACxB3W,OAAO,SAAAA,EAAMsB,SAAN,IAAc8vD,WAAY,KAGnC,KAIZ,CAEA,OAAAy8E,GACE,MAAM,OAAEl3H,GAAWja,KAAKyH,OAClB,YAAEmoI,EAAW,MAAEtsI,GAAUtD,KAAKmhC,MAEpC,OAAK79B,GAA0B,IAAjBA,EAAM/C,OAKlB,oCAE2B,UAAvB0Z,EAAOy0H,aAA4Bz0H,EAAOy0H,YAmBtC,KAjBA,kBAAC,OACC9hI,UAAU,4BACVC,MAAO,CACLm3E,aAAc,GAAG4rD,EAAc,SAGjC,kBAAC,GAAG,KAEA31H,EAAOyzH,WAAWvoI,KAAI,CAACoT,EAAW3T,IAChC,kBAAC,GAAM,CAACI,IAAKuT,EAAU9Q,MAAM60B,OAAS13B,EAAOmpC,KAAM,MAAMx1B,EAAUw1B,MAAQ,SAASx1B,EAAUw1B,MAAQ,MAClGx1B,EAAU9Q,MAAM60B,WASlC,kBAAC,MAAG1vB,UAAW5M,KAAKowI,qBAAqBn2H,EAAOy0H,cAE5CprI,EAAM6B,KAAI,CAACorI,EAAU3rI,IAAU5E,KAAKixI,YAAYV,EAAU3rI,OA7BzD,IAkCX,CAEA,MAAAy5G,GACE,MAAM,sBACJ2vB,EAAqB,OAAE/zH,EAAM,MAAEpZ,EAAK,SAAE8T,EAAQ,MAAE2nB,GAC9Ct8B,KAAKyH,MACH2pI,EAAkBllI,SAASsuB,cAAcvgB,EAAO04G,WAAazmH,SAASsuB,cAAc,QAE1F,OACE,kBAAC,OAAI5tB,UAAU,qBAEX0vB,EACI,kBAAC,aAAQA,GACT,KAEN,kBAAC,IACC0xG,wBACAN,WAAYzzH,EAAOyzH,WACnB6B,WAAYt1H,EAAOo3H,gBACnB5C,YAAax0H,EAAOq3H,gBACpB38H,WACA9T,QACA+tI,eAAiB/tI,EACjB0tI,SAAUt0H,EAAOs0H,SACjBc,SAAUrvI,KAAK6vI,iBAEff,SAAU9uI,KAAK2wI,SAAS3sH,KAAKhkB,MAAO,GACpCsvI,kBAAkB,oCAClBrB,uBAAwBjuI,KAAKiuI,yBAG7Bh0H,EAAO04G,SACH,kBACA3yH,KAAKmxI,UACLC,GAEApxI,KAAKmxI,UAIjB,EAGF1B,GAAar9B,UAAY,CACvB47B,sBAAuB,SACvBr5H,SAAU,SACV9T,MAAO,WACPoZ,OAAQ,eAAqB3Y,QAC7ByrC,SAAU,SACVzQ,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEFh5B,MAAO,cAAoB,CACzB,eAAqB+B,OACrB,eAAqB/D,WAIzB,YC3cA,SAAS,IAAO,MACdg7B,EAAK,cAAEi1G,EAAa,SAAEC,EAAQ,SAAE78H,EAAQ,SAAE4X,IAE1C,OACE,kBAAC,OAAI3f,UAAU,yBAEX0vB,EACI,kBAAC,aAAQA,GACT,MAEJ3nB,IAAa4X,GACb,kBAAC,GACC4H,MAAM,0BACNy+E,QAAS4+B,GAERD,GAAiB,OAK5B,CAEA,GAAOn/B,UAAY,CACjBz9F,SAAU,SACV4X,SAAU,SACVilH,SAAU,SACVD,cAAe,WACfj1G,MAAO,cAAoB,CACzB,WACA,YACA,YAIJ,YCpCA,SAASm1G,IAAW,OAClBC,EAAM,SACNnlH,IAEA,OACE,kBAAC,MAAG3f,UAAU,kDAEV8kI,EAAOvsI,KAAKwsI,IAVpB,QAWU,yBAAC,OACC3sI,KAAK,eAAA2sI,OAAA,EAAAA,EAAOlqI,YAAP,IAAc60B,QAASi8B,KAAK09D,UAAU0b,GAC3C/kI,UAAW,uDAAsD,MAAA+kI,OAAA,EAAAA,EAAO5jG,OAAQ,MAE/E,eAAA4jG,OAAA,EAAAA,EAAOlqI,YAAP,IAAc60B,MACjB,IAGJ,kBAAC,OAAI1vB,UAAW,uDAAuD2f,GAAY,2CAA2C,UAGpI,CAEAklH,GAAWr/B,UAAY,CACrBs/B,OAAQ,eAAqBrsI,OAC7BknB,SAAU,UAGZ,0SCzBA,SAASqlH,IAAW,OAClBF,EAAM,SACN/8H,EAAQ,SACR4X,EAAQ,OACRuhH,EAAM,WACNJ,EAAU,SACV3gG,EAAQ,SACR8kG,EAAQ,MACRvuI,EAAK,SACLwuI,IAEA,OACE,kBAAC,MAAGllI,UAAU,uBAEV8gI,EAAWvoI,KAAI,CAACsgH,EAAW7gH,KAlBnC,UAmBU,MAAM+sI,EAAQD,EAAO9sI,GACfmtI,EAA6B,mBAAVJ,EAAuBA,EAAMG,EAAUltI,GAAS+sI,EACzE,OACE,kBAAC,OAEC3sI,IAAK,GAAG8sI,KAAYltI,IACpBgI,UAAW,uDAAsD,SAAA8kI,EAAO9sI,SAAP,IAAempC,OAAQ,MAExF,kBAAC03E,8HAAA,IACK,MAAAssB,OAAA,EAAAA,EAAWtqI,SADhB,CAEC60B,MAAM,GACNh5B,MAAOA,EAAMsB,GAEbmoC,SAAUA,EAAS/oB,KAAK,KAAMpf,GAC9B/D,MAAO,MAAAitI,OAAA,EAAAA,EAASlpI,GAChB+P,SAAUA,IAAY,eAAAo9H,OAAA,EAAAA,EAAWtqI,YAAX,IAAkBkN,UACxC4X,SAAUA,IAAY,eAAAwlH,OAAA,EAAAA,EAAWtqI,YAAX,IAAkB8kB,iCAE5C,IAIN,kBAAC,OAAI3f,UAAW,uDAAuD2f,GAAY,2CACjF,kBAAC,GACCopF,UAAQ,EACRjD,SAAS,QACTv+E,MAAM,eACNy+E,QAASi/B,EACTl9H,SAAU4X,GAAY5X,KAKhC,CAEAi9H,GAAWx/B,UAAY,CACrBz9F,SAAU,SACV4X,SAAU,SACVulH,SAAU,cAAoB,CAC5B,WACA,aAEFJ,OAAQ,eAAqBrsI,OAC7ByoI,OAAQ,eAAqBzoI,OAC7BqoI,WAAY,eAAqBroI,OACjC/B,MAAO,eAAqB+B,OAC5B0nC,SAAU,SACV8kG,SAAU,UAGZ,0SC5DA,IAAIhvI,GAAK,EAQT,SAASmvI,IAAc,cACrBT,EAAa,SACb58H,EAAQ,SACR4X,EAAQ,OACRmlH,EAAM,MACNp1G,EAAK,MACLz7B,EAAK,MACLyC,EAAQ,GAAE,SACVypC,EAAW,SAAQ,YACnBklG,GAAc,EAAI,iBAClB/pB,EAAmB,KAEnB,MAAOgqB,EAAgBC,IAAqB,IAAAl/B,UAAS,MAE/Cm/B,EAAiB,CAACN,EAAUO,EAAYC,EAAgBlG,KA/BhE,MAgCI,MAAMmG,EAAgBjvI,EAAa,IAAIA,GAAT,GAE9B,GAAKA,EAGE,CACL,MAAM+zH,EAAY,IAAIkb,EAAaT,IACnCza,EAAUgb,GAAcC,EACxBC,EAAaT,GAAYza,EACzBkb,EAAaT,GAAUjvI,GAAKS,EAAMwuI,GAAUjvI,EAC9C,MAPE0vI,EAAaT,GAAY,IAAI,IAAIzsI,MAAMqsI,EAAOnxI,SAC9CgyI,EAAaT,GAAUO,GAAcC,EAQvC,IAAI,eAAAJ,OAAA,EAAAA,EAAiBJ,SAAjB,IAA6BO,KAAejG,EAAS,CACvD,MAAMoG,EAAa,IAAIN,GACjBO,EAAiB,IAAID,EAAWV,IACtCW,EAAeJ,GAAc,KAC7BG,EAAWV,GAAYW,EACvBN,EAAkBK,EACpB,CACAzlG,EAASwlG,EAAa,EAKlBG,GAAa,IAAAx/B,UACjB,IAAMw+B,EAAOvsI,KAAKwsI,IAChB,MAAMI,EAA6B,mBAAVJ,EAAuBA,IAAUA,EAE1D,OCzDkBlsB,GDyDI,MAAAssB,OAAA,EAAAA,EAAWx5H,YAAa,KCzDb,aACrCw0B,SAAAA,EACA+hG,SAAAA,EACAjuI,MAAAA,GAHqC,EAIlCqxG,mKAAA,CAJkC,EAIlC,CAHH,WACA,WACA,UAGA,MAAOygC,EAAeC,IAAoB,IAAA3/B,UAAS,MAC7C4/B,GAAgB,IAAA9+B,cAAazvF,IAEjC,MAAMhhB,GAAQ,MAAAghB,OAAA,EAAAA,EAAO7f,QACjB,CAAC,QAAS,YAAYH,SAASggB,EAAM7f,OAAOsP,MAC1CuQ,EAAM7f,OAAOskG,QACb,MAAAzkF,OAAA,EAAAA,EAAO7f,OAAOnB,MAChBghB,EAEJ,IAAI8nH,GAAU,EACd,GAAI0C,GAAgC,mBAAbA,EAAyB,CAC9C,MAAMgE,EAAWhE,EAASxrI,GAC1B8oI,GAAW0G,EACXF,EAAiBE,EACnB,CAEA/lG,EAASzpC,EAAO8oI,EAAQ,GACvB,CAAC0C,EAAU/hG,IAEd,OAAO,kBAAC04E,8HAAA,IAAcvT,WAAd,CAAoBnlE,SAAU8lG,EAAehyI,MAAO8xI,GAAiB9xI,YAAO,EAzB/D,IAAC4kH,CDyDiC,KAErD,IAoBIstB,EAAanuI,IACjB,IAAKtB,EACH,OAEF,MAAM+zH,EAAY,IAAI/zH,GACtB+zH,EAAUzvH,OAAOhD,EAAO,GACxBmoC,EAASsqF,EAAU,EAGrB,OACE,kBAAC,OAAIzqH,UAAW,iEAAiE/L,EAAQ,YAAc,MAAMqnH,KAC3G,kBAAC,IACCvzG,WACA4X,WACA+P,QACAi1G,gBACAC,SAjCW,KACf,MAAM1D,EElEa,EAAC4D,EAAQsB,KAAhC,MAA+C,gBAAAA,GAAa,CAAC,MAAC,OAAW,UAA1B,IAAwC7tI,KACpF8tI,GAAa,MAAAA,OAAA,EAAAA,EAAU9tI,KACtB,CAAC7B,EAAOsB,KAFZ,IAAAqwB,EAAA,EAEsB,iBAAAA,EAAAy8G,EAAO9sI,GAAO6C,OAAMqnI,eAApB,SAAA75G,EAA+B3xB,EAAM,KAAN,EFgElC,CAAeouI,EAAQpuI,GAEtC,GAdgB,CAACwqI,IAtDrB,MAsDgC,OAAAlpG,QAAQ,eAAAkpG,OAAA,EAAAA,EAAQoF,aAAR,IAAgBl9H,OAAO4uB,SAASrkC,OAAO,EAcvE4yI,CAAUrF,GAEZ,YADAqE,EAAkBrE,GAIpB,MAAMnlH,EAAW,IAAI,IAAItjB,MAAMqsI,EAAOnxI,SACtCooB,EAAS9lB,GA/DY,OAAaA,KAiElCkqC,EAAS,IACJzpC,EACHqlB,GACA,KAqBC,MAAArlB,OAAA,EAAAA,EAAO/C,UAAW0xI,EACjB,kBAAC,MAAGrlI,UAAU,wBACVtJ,GAAS,CAAC,KAAK6B,KAAI,CAACouF,EAAG5xF,IACvB,kBAAC,IAECqD,IAAKuuF,EAAE1wF,IAAMlB,EACbmwI,SAAUnwI,EACVgT,WACA4X,WACAmlH,SAEA3kG,SAAUqlG,EAAepuH,KAAK,KAAMriB,GAEpCkwI,SAAUkB,EAAU/uH,KAAK,KAAMriB,GAC/B2B,MAAOiwF,EACPu6C,OAAQ,MAAAoE,OAAA,EAAAA,EAAiBvwI,GACzB+rI,WAAYgF,MAGhB,kBAAC,GAAU,CAAChB,SAAgBnlH,cAE5B,KACH1rB,GAAmB,SAAVA,GAA8B,UAAVA,EAC5B,kBAAC,KAAE+L,UAAU,mCAAmC/L,GAC9C,KAGV,CAEAmxI,GAAc5/B,UAAY,CAIxBz9F,SAAU,SAKV4X,SAAU,SAEVglH,cAAe,WAEfj1G,MAAO,cAAoB,CACzB,WACA,YACA,WA8BFo1G,OAAQ,eAAqBrsI,OAE7B0nC,SAAU,SAKVzpC,MAAO,cAAoB,CACzB,eAAqBhC,QACrB,eAAqB+D,SAEvBxE,MAAO,WACPoxI,YAAa,SACb/pB,iBAAkB,YAGpB,0SG1LA,SAASkrB,GAAU,YACjBvyI,MAAAA,EAAA,MACAszB,EAAK,WACLkwF,EAAU,iBACV6D,EAAmB,MACnBrlH,EAAE,MACFy5B,EAAK,KACL0xF,EAAI,OACJqlB,EAAM,MACN/vI,EAAK,SACLypC,GAViB,EAWdmlE,mKAAA,CAXc,EAWd,CAVH,QACA,QACA,aACA,mBACA,KACA,QACA,OACA,SACA,QACA,aAGA,MAAMohC,GAAe,IAAAn/B,UA6FrB,OACE,kBAAC,OAAIvnG,UAxFP,WACE,MAAMkpG,EAAa,CAACoS,EAAkB,kBAChC4O,EAAS3iG,EAAQA,EAAM9xB,MAAM,KAAO,GAgB1C,OAdIy0H,EAAOv2H,QACTu2H,EAAO/xH,SAASgyH,IACdjhB,EAAW/zG,KAAK,mBAAmBg1H,IAAS,IAI5C1S,GACFvO,EAAW/zG,KAAK,mCAGdlB,GACFi1G,EAAW/zG,KAAK,aAGX+zG,EAAWtzG,KAAK,IACzB,CAqEkBqzG,IAEZv5E,EACI,kBAAC,SAAM+3F,QAASxxH,EAAIgK,MAtE9B,WACE,MAAM8D,EAAS,CAAC,EAMhB,OAJI0zG,IACF1zG,EAAO2zG,UAAYD,GAGd1zG,CACT,CA8DqCsjH,IAAoB33F,GAC/C,KAEN,kBAAC,OAAI1vB,UAAU,6BAzCf,kBAAC,OACCA,UAAU,0BACVC,MAxBN,WACE,MAAM8D,EAAS,CAAC,EAMhB,OAJI0zG,IACF1zG,EAAO2zG,UAAY,eAAeD,aAG7B1zG,CACT,CAgBaujH,IAEP,kBAAC,sIACCmf,SACAzmI,UAAU,oBACNslG,WAHL,CAICnlE,SAjER,SAAwB5jC,GACtB4jC,EAAS5jC,EAAE1E,OAAO8uI,MACpB,EAgEQxgC,IAAKugC,EACLv/H,KAAK,YAGLu/H,EAAaz/B,SAAWy/B,EAAaz/B,QAAQ0/B,MAAMhzI,OAAS,EAExD,kBAAC,UACCqyG,QAad,WACE0gC,EAAaz/B,QAAQvwG,MAAQ,GAC7BypC,EAAS,GACX,EAfch5B,KAAK,SACL,aAAW,eAEX,kBAAC,EAAI,CAACA,KAAK,WAGb,MAqBJi6G,EACI,kBAAC,KAAEphH,UAAU,gCAAiCohH,GAC9C,MAzDFntH,GAAmB,SAAVA,GAA8B,UAAVA,EAEjC,kBAAC,KAAE+L,UAAU,mCACT/L,GAGJ,MAGN,KAsDF,CAEAuyI,GAAUhhC,UAAY,CACpBihC,OAAQ,WACR1+H,SAAU,SACV9R,GAAI,WACJhC,MAAO,cAAoB,CACzB,WACA,WAEFy7B,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEF+nF,WAAY,WACZlhH,KAAM,WACN6qH,KAAM,WACNjhF,SAAU,SACV4hB,YAAa,WACbx6B,MAAO,WACP7wB,MAAO,eAAqBhC,QAC5B4mH,iBAAkB,YAGpB,0SCzJA,MAAMsrB,WAAc,EAAA/tB,UAClB,eAAOguB,CAAS50D,GACd,OACE,kBAAC,OAAIjyE,UAAU,0BACXiyE,EAGR,CAEA,WAAA9rE,CAAYtL,GACVqpH,MAAMrpH,GACN,MAAM,MACJnE,GACEtD,KAAKyH,MAETzH,KAAKmhC,MAAQ,CACXuyG,UAAWpwI,EACXqwI,WAAYrwI,GAGdtD,KAAKm0H,eAAiBn0H,KAAKm0H,eAAenwG,KAAKhkB,KACjD,CAEA,kBAAAsxH,CAAmBC,GACjB,MAAM,QACJqiB,EAAO,MACPtwI,EAAK,SACLypC,GACE/sC,KAAKyH,MAEJmsI,GAAWriB,EAAUjuH,QAAUA,GAElCtD,KAAKiwB,SAAS,CACZ0jH,WAAYrwI,IACX,KACGypC,GACFA,EAASzpC,EACX,GAGN,CAEA,cAAA6wH,CAAehrH,GACb,MAAM,SAAE4jC,EAAQ,QAAE6mG,GAAY5zI,KAAKyH,MAC7ButH,EAAa7rH,EAAE1E,OAAOnB,MAEvBswI,EASH7mG,EAASioF,GARTh1H,KAAKiwB,SAAS,CACZ0jH,WAAY3e,IACX,KACGjoF,GACFA,EAASioF,EACX,GAKN,CAEA,cAAAf,GACE,MAAM,WAAE5P,GAAerkH,KAAKyH,MACtBkJ,EAAS,CAAC,EAMhB,OAJI0zG,IACF1zG,EAAO2zG,UAAYD,GAGd1zG,CACT,CAEA,gBAAAujH,GACE,MAAM,WAAE7P,GAAerkH,KAAKyH,MACtBkJ,EAAS,CAAC,EAMhB,OAJI0zG,IACF1zG,EAAO2zG,UAAY,eAAeD,aAG7B1zG,CACT,CAEA,aAAAqmH,GACE,MAAM,MAAEn2H,GAAUb,KAAKyH,MAEvB,OAAQ5G,GAAmB,SAAVA,GAA8B,UAAVA,EAEjC,kBAAC,KACC+L,UAAU,mCAER/L,GAGJ,IACN,CAEA,aAAAg1G,GACE,MAAM,MACJh1G,EAAK,MACLszB,EAAK,WACLkwF,EAAU,oBACVwvB,EAAmB,qBACnBC,GACE9zI,KAAKyH,MACHquG,EAAa,CAAC,kBACdghB,EAAS3iG,EAAQA,EAAM9xB,MAAM,KAAO,GAwB1C,OAtBIy0H,EAAOv2H,QACTu2H,EAAO/xH,SAASgyH,IACdjhB,EAAW/zG,KAAK,mBAAmBg1H,IAAS,IAI5C8c,GACF/9B,EAAW/zG,KAAK,8BAGd+xI,GACFh+B,EAAW/zG,KAAK,+BAGdsiH,GACFvO,EAAW/zG,KAAK,mCAGdlB,GACFi1G,EAAW/zG,KAAK,aAGX+zG,EAAWtzG,KAAK,IACzB,CAEA,kBAAAuxI,GACE,MAAM,oBACJF,EAAmB,qBACnBC,GACE9zI,KAAKyH,MAET,OACE,kBAAC,OAAImF,UAAU,mBAEXinI,EACIL,GAAMC,SAASI,GACf,KAEJ7zI,KAAKg0I,oBAELF,EACIN,GAAMC,SAASK,GACf,KAIZ,CAEA,iBAAAE,GACE,MAEI,EAAAh0I,KAAKyH,OADPmsI,QAAAA,EAAA,SAAS7mG,EAAQ,MAAEzpC,GACjB,EAD2B4uG,mKAAA,CAC3B,EAD2B,CAA7B,UAAS,WAAU,WAEf,WAAEyhC,GAAe3zI,KAAKmhC,MAC5B,OACE,kBAAC,sIACC8yG,aAAa,MACbrnI,UAAU,oBACNslG,KAHL,CAICnlE,SAAU/sC,KAAKm0H,eACf7wH,MAAQswI,EAAWtwI,EAAQqwI,wBAGjC,CAGA,KAAA9pF,GACE,MAAM,UAAE6pF,GAAc1zI,KAAKmhC,MAE3BnhC,KAAKiwB,SAAS,CACZ0jH,WAAYD,GAEhB,CAEA,MAAAr1B,GACE,MAAM,MACJ/hF,EAAK,GACLz5B,EAAE,oBACFgxI,EAAmB,qBACnBC,EAAoB,KACpB9lB,EAAI,SACJzhG,EAAQ,MACRjpB,GACEtD,KAAKyH,MAET,OACE,kBAAC,OAAImF,UAAW5M,KAAK61G,iBAEjBv5E,EACI,kBAAC,SAAM+3F,QAASxxH,EAAIgK,MAAO7M,KAAKi0H,kBAAoB33F,GACpD,MAEJ/P,GACA,kBAAC,OACC3f,UAAU,4BACVC,MAAO7M,KAAKk0H,oBAGV2f,GAAuBC,EACnB9zI,KAAK+zI,qBACL/zI,KAAKg0I,oBAGThmB,EACI,kBAAC,KAAEphH,UAAU,gCAAiCohH,GAC9C,KAEJhuH,KAAKg3H,iBAITzqG,GAAY,kBAAC,OAAI3f,UAAU,8BAA8BtJ,GAAS,KAI1E,EAGFkwI,GAAMphC,UAAY,CAChBz9F,SAAU,SACV4X,SAAU,SACV1pB,GAAI,WACJ+wI,QAAS,SACT/yI,MAAO,cAAoB,CACzB,WACA,WAEFgzI,oBAAqB,cAAoB,CACvC,YACA,SACA,aAEFC,qBAAsB,cAAoB,CACxC,YACA,SACA,aAEFx3G,MAAO,cAAoB,CACzB,WACA,YACA,WAEF+nF,WAAY,WACZlhH,KAAM,WACN6qH,KAAM,WACNjhF,SAAU,SACV4hB,YAAa,WACbx6B,MAAO,WACP7wB,MAAO,cAAoB,CACzB,WACA,cAIJ,qaCnQA,SAAS4wI,GAAO,EAcbnhC,GAda,SACdlyG,MAAAA,EAAA,SACAksC,EAAQ,SACRxgB,EAAQ,GACR1pB,EAAE,oBACFgxI,EAAmB,qBACnBC,EAAoB,MACpBx3G,EAAK,WACL+nF,EAAU,KACV2J,EAAI,MACJ75F,EAAK,MACL7wB,EAAK,iBACL4kH,EAAmB,IAZL,EAaXhW,mKAAA,CAbW,EAaX,CAZH,QACA,WACA,WACA,KACA,sBACA,uBACA,QACA,aACA,OACA,QACA,QACA,qBAGA,MAAMmjB,GAAW,IAAAlhB,WAEjB,IAAAoU,qBAAoBxV,GAAK,KAAM,CAC7BxrF,MAAO,KACL8tG,EAASxhB,QAAQtsF,OAAO,MAI5B,MAAMksH,EAAY50D,GAChB,kBAAC,OAAIjyE,UAAU,0BACXiyE,GAyDAs1C,EAAkBhrH,IACtB4jC,EAAS5jC,EAAGA,EAAE1E,OAAOnB,MAAM,EAGvB6wI,EAAkB,KACtB,yBAAC,eACCF,aAAa,MACbrnI,UAAU,oBACNslG,WAHL,CAICnlE,SAAUonF,EACV7wH,QACAyvG,IAAKsiB,YACP,EAmBF,OACE,kBAAC,OAAIzoH,UA7De,MACpB,MAAMkpG,EAAa,CAACoS,EAAkB,kBAChC4O,EAAS3iG,EAAQA,EAAM9xB,MAAM,KAAO,GAwB1C,OAtBIy0H,EAAOv2H,QACTu2H,EAAO/xH,SAASgyH,IACdjhB,EAAW/zG,KAAK,mBAAmBg1H,IAAS,IAI5C8c,GACF/9B,EAAW/zG,KAAK,8BAGd+xI,GACFh+B,EAAW/zG,KAAK,+BAGdsiH,GACFvO,EAAW/zG,KAAK,mCAGdlB,GACFi1G,EAAW/zG,KAAK,aAGX+zG,EAAWtzG,KAAK,IAAI,EAmCXqzG,IAEZv5E,EACI,kBAAC,SAAM+3F,QAASxxH,EAAIgK,MAxFA,MACzBw3G,GAAc,CACfC,UAAWD,KAsF0C/nF,GAC/C,MAEJ/P,GACA,kBAAC,OACC3f,UAAU,4BACVC,MAxFwB,MAC3Bw3G,GAAc,CACfC,UAAW,eAAeD,eAyFpBwvB,GAAuBC,EA5B/B,kBAAC,OAAIlnI,UAAU,mBAEXinI,EACIJ,EAASI,GACT,KAEJM,IAEAL,EACIL,EAASK,GACT,MAoBIK,IAGJnmB,EACI,kBAAC,KAAEphH,UAAU,gCAAiCohH,GAC9C,KA3FXntH,GAAmB,SAAVA,GAA8B,UAAVA,EAE1B,kBAAC,KACC+L,UAAU,mCAER/L,GAGJ,MAyFA0rB,GACE,kBAAC,OAAI3f,UAAU,8BACZtJ,GAAS,KAMtB,CAEA4wI,GAAO9hC,UAAY,CACjBz9F,SAAU,SACV4X,SAAU,SACV1pB,GAAI,WACJhC,MAAO,cAAoB,CACzB,WACA,WAEFgzI,oBAAqB,cAAoB,CACvC,YACA,SACA,aAEFC,qBAAsB,cAAoB,CACxC,YACA,SACA,aAEFx3G,MAAO,cAAoB,CACzB,WACA,YACA,WAEF+nF,WAAY,WACZlhH,KAAM,WACN6qH,KAAM,WACNjhF,SAAU,SACV4hB,YAAa,WACbx6B,MAAO,WACP7wB,MAAO,cAAoB,CACzB,WACA,aAEF4kH,iBAAkB,YAGpB,UAAe,IAAA3U,YAAW2gC,ICxL1B,IAF2B,IAAApiC,iBCoB3B,SAASsiC,IAAgB,KACvBxuI,EAAI,SACJyuI,EAAQ,YACRjb,EAAW,SACXrsF,IAEA,MAAMunG,GAAkB,IAAAvgC,cAAawgC,IAC/B,MAAAA,OAAA,EAAAA,EAAkBh0I,QAAS,EACtBg0I,EAAiB9zG,MAAMz7B,IA9BpC,MA8B4C,gBAAAY,EAAKZ,SAAL,IAAWV,SAAS80H,EAAY,IAGjE7gE,KAAK09D,UAAUrwH,GAAMtB,SAAS80H,IACpC,CAACxzH,EAAMwzH,IAEJob,GAAc,IAAAzgC,cAAY,KAC9BhnE,EAASnnC,EAAK,GACb,CAACmnC,EAAUnnC,IAEd,OACE,kBAAC,GAAmBw/G,SAAnB,MAEI35F,GACC6oH,EAAgB7oH,EAAQ8oH,kBAEpB,kBAAC,UACC,kBAAC,WACC,kBAAC,QAAK3nI,UAAU,8BAEZ6e,EAAQgpH,oBACJhpH,EAAQgpH,oBAAoB7uI,GAC5B2yD,KAAK09D,UAAUrwH,IAGvB,kBAAC,QAAKgH,UAAU,kCACd,kBAAC,GACC8lG,SAAuB,WAAb2hC,EAAwB,OAAS,QAC3C1+B,UAAQ,EACR/C,QAAS4hC,EACT7/H,SAAU8W,EAAQ9W,UAAa8W,EAAQipH,eAAiBjpH,EAAQipH,gBAAkBjpH,EAAQkpH,iBAAgC,WAAbN,IAE/G,kBAAC,GACC3hC,SAAUjnF,EAAQuzF,OAAOp5G,EAAK/C,IAAM,aAAe,eACnD8yG,UAAQ,EACR/C,QAAS,IAAMnnF,EAAQmpH,iBAAiBhvI,OAK5CA,EAAKivI,QAED,kBAAC,GACCtiC,WAAY9mF,EAAQuzF,OAAOp5G,EAAK/C,IAChC+J,UAAU,iCAlEX,EAAC6e,EAAS7lB,IAC/B6lB,EAAQqpH,uBACJrpH,EAAQqpH,uBAAuBlvI,GAC/B2yD,KAAK09D,UAAUrwH,EAAKivI,SAiEDE,CAAetpH,EAAS7lB,IA9D3B,EAAC6lB,EAAS7lB,KAC9B,MAAM,OAAEo5G,GAAWvzF,EAEnB,OAAOuzF,EAAOp5G,EAAK/C,IACf,kBAAC,GAAM,CAACgB,SAAS,aACjB,IAAI,EA4DYmxI,CAAcvpH,EAAS7lB,IAI/B,MAKd,CAEAwuI,GAAgBhiC,UAAY,CAC1BxsG,KAAM,eAAqBtE,QAC3B+yI,SAAU,WACVjb,YAAa,WACbrsF,SAAU,UAGZ,YCxFA,SAASkoG,IAAiB,iBACxBC,EAAgB,eAChBC,EAAc,MACdC,EAAK,eACLC,EAAc,SACdtoG,EAAQ,aACRuoG,EAAY,UACZC,EAAS,WACTC,EAAU,gBACVC,EAAe,aACfC,EAAY,cACZC,IAEA,MAAOvc,EAAayB,IAAkB,IAAA5nB,UAAS,IACzCyK,GAAY,IAAAvJ,QAAO,GACnBya,GAAe,IAAAza,UAyBfyhC,GAAiB,IAAA7hC,cAAazwG,IAC9B+xI,EACFA,EAAe/xI,GAEfu3H,EAAev3H,EACjB,GACC,CAAC+xI,IAEEQ,GAAc,IAAA9hC,cAAanuG,IAC/B,IAAIkwI,EAAatxB,gBAAgB4wB,GACjCU,EAAaA,EAAW9/H,QAAQ+/H,GAAenwI,EAAK/C,KAAOkzI,EAAWlzI,KAEtEkqC,EAAS+oG,EAAYlwI,EAAK,GACzB,CAACwvI,IAEJ,SAASY,IACP,OACE,kBAAC,MACCppI,UAAW,yBAA0B4oI,EAAiD,GAAnC,kCACnDziC,IAAK6b,GAGHwmB,EAAMjwI,KAAKS,GACT,kBAAC,IACCyuI,SAAUkB,EACVvwI,KA/CV04G,EAAU7J,SAAW,EAEd6J,EAAU7J,SA8CP9mE,SAAU8oG,EACVzc,YAAakc,EAAe,GAAKlc,EACjCxzH,WAMZ,CAEA,OACE,kBAAC,OAAIgH,UAAU,0BACb,kBAAC,IACCinI,oBACE,kBAAC,EAAI,CAAC9/H,KAAK,qBAEb5Q,KAAK,SACL4pC,SAAU6oG,EACVjnF,YAAaumF,EACb5xI,MAAO81H,IAGPgc,EAAM70I,OA/DRi1I,EAEI,kBAAC,IACC50B,SAAUgO,EACVpO,QAASk1B,EAAeD,EACxB/0B,SAAUi1B,EACVh1B,WAAY80B,GAEVO,KAGJA,IAuDE,kBAAC,GAAO,CAAC7hH,MAAM,QACXghH,GAMhB,CAEAF,GAAiB7iC,UAAY,CAC3BkjC,aAAc,SACdD,eAAgB,SAChBE,UAAW,WACXxoG,SAAU,SACVqoG,MAAO,eAAqB/vI,OAC5BowI,gBAAiB,WACjBC,aAAc,WACdR,iBAAkB,WAClBS,cAAe,SACfR,eAAgB,WAChBK,WAAY,UAGd,0SCrHA,MAAMS,GAAc,CAAC3yI,EAAO8xI,IAAUA,EAAMp/H,QAAQpQ,IAAUtC,EAAMgC,MAAMiuF,GAAMA,EAAE1wF,KAAO+C,EAAK/C,OAE9F,SAASqzI,IAAY,aACnBZ,EAAY,iBACZa,EAAgB,SAChBxhI,EAAQ,MACR9T,EAAK,eACLu1I,EAAc,oBACd3B,EAAmB,uBACnBK,EAAsB,iBACtBP,EAAgB,MAChBa,EAAK,gBACLK,EAAe,aACfC,EAAY,cACZC,EAAa,cACbjB,EAAa,KACb1mB,EAAI,MACJ1qH,EAAK,SACLypC,EAAQ,iBACRm7E,EAAmB,KAEnB,MAAOlJ,EAAQq3B,IAAa,IAAApjC,UAAS,CAAC,GAEhC2hC,GAAmB,IAAA7gC,cAAanuG,IACpCywI,GAAWC,IAAgB,sIAAKA,KAAL,CAAiB,CAAC1wI,EAAK/C,KAAMyzI,EAAW1wI,EAAK/C,wBAAM,IAE1EuzI,GAAgBA,EAAexwI,EAAK,GACvC,CAACwwI,IAYEvgC,GAAgB,IAAA9B,cACpB,IAAM,CACJmU,EACA,kBACArnH,GAAS,aAERmV,OAAO4uB,SACPpiC,KAAK,MACR,CAAC0lH,EAAkBrnH,IAGf01I,GAAc,IAAAxiC,cAAY,CAACyiC,EAAU5wI,KACzC,MAAM6wI,EAAajyB,gBAAgBlhH,GAEnCmzI,EAAWp9F,QAAQzzC,GAEnBmnC,EAAS0pG,EAAY7wI,EAAM,QAAQ,GAClC,CAACtC,IAEEozI,GAAc,IAAA3iC,cAAY,CAACprF,EAAU/iB,KACzCmnC,EAASpkB,EAAU/iB,EAAM,UAAU,GAClC,CAACwvI,IAEEuB,GAAgB,IAAAzjC,UAAQ,KAAM,CAClCv+F,WACA8/H,sBACAK,yBACAP,mBACAG,gBACAC,gBAAiBrxI,EAAM/C,OACvBq0I,mBACA51B,YACE,CACFrqG,EACA8/H,EACAK,EACAP,EACAG,EACApxI,EACAsxI,EACA51B,IAGF,OACE,oCACE,kBAAC,OAAIpyG,UAAWipG,KACd,kBAAC,GAAmBxC,SAAnB,CAA4B/vG,MAAOqzI,GAClC,kBAAC,OAAI/pI,UAAU,2BACb,kBAAC,WACGtJ,EAAM/C,OACP,IAAI,WAEJ,IACC41I,GAEJ,kBAAC,WAAI,uBAEDA,IAGN,kBAAC,OAAIvpI,UAAU,kCACb,kBAAC,IACCsoI,iBAAkB,2BAA2BiB,IAC7ChB,eAAgB,YAAYgB,mBAC5Bf,MAAO9xI,EACPypC,SAAU2pG,EACVnB,UAAU,aAEZ,kBAAC,IACCL,iBAAkB,mBAAmBiB,IACrChB,eAAgB,MAAMgB,eACtBA,mBACAb,eAAgBA,EAChBD,eAAgBC,EAChBF,MAAOa,GAAY3yI,EAAO8xI,GAC1BroG,SAAUwpG,EACVf,aAAcG,EACdA,gBACAF,kBACAC,eACAH,UAAU,cAKlB,kBAAC,WAEGvnB,EACI,kBAAC,KAAEphH,UAAU,gCAAiCohH,GAC9C,MAlGFntH,GAAmB,SAAVA,GAA8B,UAAVA,EAEjC,kBAAC,KAAE+L,UAAU,mCACT/L,GAGJ,KAkGR,CAEAq1I,GAAY9jC,UAAY,CACtBkjC,aAAc,SACd3gI,SAAU,SACV9T,MAAO,WACPs1I,iBAAkB,WAClBf,MAAO,eAAqB/vI,OAC5BovI,oBAAqB,SACrBK,uBAAwB,SACxBP,iBAAkB,eAAqBlvI,OACvC0nC,SAAU,SACVqpG,eAAgB,SAChBX,gBAAiB,WACjBC,aAAc,WACdC,cAAe,SACf3nB,KAAM,WACN0mB,cAAe,WACfpxI,MAAO,eAAqB+B,OAC5B6iH,iBAAkB,YAGpB,qaC5JA,SAAS0uB,GAAM,YACbt6G,MAAAA,EAAA,MACAqmB,EAAK,KACLqrE,EAAI,OACJpnG,EAAM,QACNiwH,EAAO,MACP1iH,EAAQ,YACRxf,EAAQ,SACR4X,EAAQ,iBACR27F,EAAmB,IATN,EAUVhW,mKAAA,CAVU,EAUV,CATH,QACA,QACA,OACA,SACA,UACA,QACA,WACA,WACA,qBAGA,MAAM4D,EAAa,CACjBlvF,EAAS,oBAAsB,YAC/BshG,EACA2uB,GAAW,eACP1iH,EAAQA,EAAM9xB,MAAM,KAAK2T,OAAO4uB,SAASz/B,KAAK2iB,GAAM,oBAAoBA,MAAO,IAClFyE,GAAY5X,IAAa,0BAC1BqB,OAAO4uB,SAASpiC,KAAK,KAEvB,OACE,kBAAC,OAAIoK,UAAWkpG,GACd,kBAAC,aACC,kBAAC,oBACKnzD,GACAuvD,WAFL,CAGCn+F,KAAK,QACLY,SAAU4X,GAAY5X,OAEvB2nB,GAEF0xF,GACC,kBAAC,KAAEphH,UAAU,gCAAgCohH,SAIrD,CAEA4oB,GAAMxkC,UAAY,CAEhBz9F,SAAU,SAEV4X,SAAU,SAEV3F,OAAQ,SAERuN,MAAO,WACPwuB,MAAO,eAAqBrhD,QAE5Bg7B,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAGFn5B,KAAM,WAEN0zI,QAAS,SAETvzI,MAAO,WAEP0qH,KAAM,cAAoB,CACxB,WACA,YACA,WAEF9F,iBAAkB,YAGpB,0SC1EA,SAAS4uB,GAAOrvI,GACd,MAeI,EAAAA,GAdFnE,MAAAA,EAAA,SACAypC,EAAQ,OACR7lB,EAAM,QACN0sH,EAAO,MACPt3G,EAAK,WACL+nF,EAAU,GACVxhH,EAAE,KACFmrH,EAAI,SACJzhG,EAAQ,QACR9f,EAAO,MACP5L,EAAK,MACLszB,EAAK,iBACL+zF,EAAmB,IAEjB,EADChW,mKAAA,CACD,EADC,CAbH,QACA,WACA,SACA,UACA,QACA,aACA,KACA,OACA,WACA,UACA,QACA,QACA,sBAGKyhC,EAAYoD,IAAiB,IAAA9jC,UAAS3vG,IAE7C,IAAA8wG,YAAU,KACHw/B,GAAWD,IAAerwI,IAC7ByzI,EAAczzI,GACVypC,GAAUA,EAASzpC,GACzB,GACC,CAACqwI,EAAYrwI,IAEhB,MAAM6wH,GAAiB,IAAApgB,cAAa5qG,IAClC,MAAM6tI,EAAgBvqI,EAAQnH,MAAM0oB,GAAWA,EAAOnrB,KAAOsG,EAAE1E,OAAOnB,QAEjEswI,GACHmD,EAAcC,GAEhBjqG,EAASiqG,EAAcn0I,GAAKm0I,EAAgB,KAAK,GAChD,CAACvqI,EAASmnI,EAAS7mG,IAEhBqnF,GAAe,IAAArgB,cAAY,KAC3B7sF,GACFA,EAAO5jB,EACT,GACC,CAAC4jB,IAGE+vH,GAAiB,IAAAljC,cAAY,IACzBlzG,GAAmB,SAAVA,GAA8B,UAAVA,EAEjC,kBAAC,KAAE+L,UAAU,mCACT/L,GAGJ,MACH,CAACA,IAEEg1G,GAAgB,IAAA9B,cACpB,IAAM,CACJ,iBACAmU,KACI/zF,EAAQA,EAAM9xB,MAAM,KAAK8C,KAAK2iB,GAAM,mBAAmBA,MAAO,GAClEu8F,GAAc,kCACdxjH,GAAS,aACTmV,OAAO4uB,SAASpiC,KAAK,MACvB,CAAC0lH,EAAkB/zF,EAAOkwF,EAAYxjH,IAGlCozH,GAAiB,IAAAlgB,cAAY,IAC7BsQ,EAAmB,CAAEC,UAAWD,GAC7B,CAAC,GACP,CAACA,IAEE6P,GAAmB,IAAAngB,cAAY,IAC/BsQ,EAAmB,CAAEC,UAAW,eAAeD,aAC5C,CAAC,GACP,CAACA,IAEE6yB,GAAqB,IAAAnjC,cAAY,KACrC,MAAMmoB,EAAc0X,GAAWtwI,EAAQA,EAAQqwI,EAE/C,OACE,kBAAC,uIACC/mI,UAAU,+BACNslG,KAFL,CAGCnlE,SAAUonF,EACVjtG,OAAQktG,EACR9wH,MAAO44H,EAAcA,EAAYr5H,GAAK,iBAGpC4J,EAAQtH,KAAK6oB,GACX,kBAAC,UAAOhpB,IAAKgpB,EAAOnrB,GAAIS,MAAO0qB,EAAOnrB,IAClCmrB,EAAO7qB,gBAIjB,GAED,CAACywI,EAAStwI,EAAOqwI,EAAYxf,EAAgBC,EAAc3nH,EAASylG,IAEvE,OACE,kBAAC,OAAItlG,UAAWipG,KAEZv5E,EACI,kBAAC,SAAM+3F,QAASxxH,EAAIgK,MAAOonH,KAAoB33F,GAC/C,MAEJ/P,GACA,kBAAC,OACC3f,UAAU,4BACVC,MAAOqnH,KAELgjB,IAEAlpB,EACI,kBAAC,KAAEphH,UAAU,gCAAiCohH,GAC9C,KAEJipB,KAGL1qH,GAAY,kBAAC,OAAI3f,UAAU,8BAA8BtJ,GAAS,KAGzE,CAEAwzI,GAAO1kC,UAAY,CACjBz9F,SAAU,SACV4X,SAAU,SACV1pB,GAAI,WACJ+wI,QAAS,SACT/yI,MAAO,cAAoB,CACzB,WACA,WAEF4L,QAAS,eAAqBpH,OAC9Bi3B,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEF+nF,WAAY,WACZlhH,KAAM,WACN6qH,KAAM,WACN9mG,OAAQ,SACR6lB,SAAU,SACV4hB,YAAa,WACbx6B,MAAO,WACP7wB,MAAO,cAAoB,CACzB,WACA,aAEF4kH,iBAAkB,YAGpB,0SCpJA,SAASivB,GAAe1vI,GACtB,MAAM,gBACJ2vI,EAAe,MACfhC,EAAK,aACLiC,EAAY,MACZ/zI,EAAK,eACL6xI,EAAiB,gCACjBpoG,EAAQ,MACR5Y,EAAK,WACLmjH,EAAU,iBACVpvB,EAAmB,IACjBzgH,EAEE8vI,EAAkBjzH,IACtB,MAAMkzH,EAAmBhzB,gBAAgBlhH,GACnCm0I,EAAeD,EAAiB7xI,WACnC9C,GAAO01D,KAAK09D,UAAUpzH,KAAQ01D,KAAK09D,UAClC5wH,MAAMoB,QAAQ5D,GACVyhB,EAAM7f,OAAOnB,MAAMjB,MAAM,KACzBiiB,EAAM7f,OAAOnB,SAIrB,GAAIghB,EAAM7f,OAAOskG,UAA6B,IAAlB0uC,EAAqB,CAC/C,MAAMpgB,EAAY/yG,EAAM7f,OAAOnB,MAAMjB,MAAM,KACrC45H,EAAa5E,EAAU92H,OAAS,EAAI82H,EAAY/yG,EAAM7f,OAAOnB,MAEnEk0I,EAAiBz1I,KAAKk6H,EACxB,MAAY33G,EAAM7f,OAAOskG,SAAW0uC,GAAgB,GAClDD,EAAiB5vI,OAAO6vI,EAAc,GAGpC1qG,GACFA,EAASyqG,EACX,EAGIE,EAA2B7rB,IAC/B,MAAM/V,EAAa,GAUnB,OARIshC,GACFthC,EAAW/zG,KAAK,wCAGd8pH,GACF/V,EAAW/zG,KAAK,qCAGX+zG,EAAWtzG,KAAK,IAAI,EAO7B,OACE,kBAAC,+HAAI,IAAKiF,WAAT,CAAgB0sB,MAAOA,GAAS,UAAWvnB,UAAW,uBAAuBs7G,QAEzEktB,EAAM70I,OAQH60I,EAAMjwI,KAAI,CAACS,EAAMhB,KACjB,yBAAC,GAAKwwG,KAAL,CAECpwG,IAAKJ,EACLgI,UAAW8qI,EAAwBp0I,EAAMgB,SAASsB,EAAK0xI,MAEvD,kBAAC,aACC,kBAAC,OAAI1qI,UAAU,6BACZyqI,EAAeA,EAAazxI,GAAQA,EAAKzC,MAE5C,kBAAC,SACC4Q,KAAK,WACLg1F,SA3BGisB,EA2BgB1xH,EA3BJyxH,EA2BWnvH,EAAK0xI,GA3BF1yG,QAC3CowF,EAAW1vH,MAAMqyI,GAAWp/E,KAAK09D,UAAUlB,KAAex8D,KAAK09D,UAAU0hB,OA4B3D5qG,SAAUwqG,EAAevzH,KAAKpe,GAC9BtC,MAAOsC,EAAK0xI,KAGZF,EACI,kBAAC,EAAI,CAACrjI,KAAMqjI,IACZ,OAnCF,IAACpiB,EAAYD,CAuCtB,IA9BC,kBAAC,MAAGnoH,UAAU,yCACZ,kBAAC,GAAO,CAACunB,MAAM,QACZghH,UAgCjB,CAEAgC,GAAe/kC,UAAY,CACzBgjC,MAAO,eAAqB/vI,OAC5BgyI,aAAc,cAAoB,CAChC,SACA,YACA,WACA,WAEF/zI,MAAO,eAAqB+B,OAC5B0nC,SAAU,SACVuqG,WAAY,WACZnC,eAAgB,WAChBiC,gBAAiB,cAAoB,CACnC,SACA,YACA,aAEFjjH,MAAO,WACP+zF,iBAAkB,YAGpBivB,GAAe7jC,aAAe,CAC5B8hC,MAAO,GACPkC,WAAY,KACZh0I,MAAO,IAGT,sWC/HA,SAASs0I,GAAS,YAChB/0I,GAAAA,EAAA,MACA8/C,EAAK,MACLrmB,EAAK,KACL0xF,EAAI,MACJntH,EAAK,MACLszB,EAAK,WACLkwF,EAAU,MACV/gH,EAAK,SACLipB,EAAQ,iBACR27F,GAVgB,EAWbhW,mKAAA,CAXa,EAWb,CAVH,KACA,QACA,QACA,OACA,QACA,QACA,aACA,QACA,WACA,qBAGA,MAAMjkG,EAAU,CACd,iBACAi6G,KACI/zF,EAAQA,EAAM9xB,MAAM,KAAK8C,KAAK2iB,GAAM,mBAAmBA,MAAO,GAClEu8F,GAAc,kCACdxjH,GAAS,aACTmV,OAAO4uB,SAASpiC,KAAK,KAsBvB,OACE,kBAAC,OAAIoK,UAAWqB,GAEZquB,EACI,kBAAC,SAAM+3F,QAASxxH,EAAIgK,MAvBxBw3G,EAAmB,CAAEC,UAAWD,GAC7B,CAAC,GAsB+C/nF,GAC/C,MAEJ/P,GACA,kBAAC,OACC3f,UAAU,4BACVC,MAxBFw3G,EAAmB,CAAEC,UAAW,eAAeD,aAC5C,CAAC,GAyBF,kBAAC,kBACCz3G,UAAU,oBACNslG,GACAvvD,GAEFr/C,GAGF0qH,EACI,kBAAC,KAAEphH,UAAU,gCAAiCohH,GAC9C,KA/BJntH,GAAmB,SAAVA,GAA8B,UAAVA,EAEjC,kBAAC,KAAE+L,UAAU,mCACT/L,GAGJ,MA8BD0rB,GAAY,kBAAC,OAAI3f,UAAU,8BAA8BtJ,GAAS,KAGzE,CAEAs0I,GAASxlC,UAAY,CAEnBz9F,SAAU,SAEV4X,SAAU,SACVo2B,MAAO,eAAqBrhD,QAE5BT,MAAO,WAEPy7B,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAGF+nF,WAAY,WAEZlhH,KAAM,WAEN6qH,KAAM,WAENjhF,SAAU,SACVlqC,GAAI,WAEJsxB,MAAO,WAEP7wB,MAAO,WAEP4kH,iBAAkB,YAGpB,YCzGA,IAFsB,IAAApW,iBCCtB,MAAM+lC,WAAmB,EAAApyB,UACvB,yBAAOqyB,CAAmBrsH,GACxB,MAAO,CAAC,yBAA0B,2BAA2BA,EAAQ1X,QAAQvR,KAAK,IACpF,CAEA,WAAAuQ,CAAYtL,GACVqpH,MAAMrpH,GAENzH,KAAK+3I,SAAU,IAAAr5B,YACjB,CAEA,iBAAA0S,GACE,MAAM,QAAE3lG,EAAO,MAAEnoB,GAAUtD,KAAKyH,MAE5BgkB,EAAQnoB,QAAUA,GACpBmoB,EAAQusH,gBAAgBh4I,KAAK+3I,QAEjC,CAEA,kBAAAzmB,CAAmBC,GACjB,MAAM,QAAE9lG,EAAO,MAAEnoB,GAAUtD,KAAKyH,MAE5B8pH,EAAU9lG,QAAQnoB,QAAUmoB,EAAQnoB,OAASmoB,EAAQnoB,QAAUA,GACjEmoB,EAAQusH,gBAAgBh4I,KAAK+3I,QAEjC,CAEA,QAAAhrG,CAASzoB,GACP,MAAM,QAAEmH,EAAO,MAAEnoB,GAAUtD,KAAKyH,OAC1B,SAAEkN,EAAQ,SAAE4X,GAAad,EAE3B9W,GAAY4X,GAIhBd,EAAQwsH,eAAgC,WAAjBxsH,EAAQ1X,MAAqB0X,EAAQnoB,MAAQA,EAAOghB,EAC7E,CAEA,MAAA+5F,GACE,MAAM,QACJ5yF,EAAO,MAAE6Q,EAAK,KAAEn5B,EAAI,MAAEG,GACpBtD,KAAKyH,MACT,OACE,kBAAC,MAAGmF,UAAW,sBAAqB6e,EAAQnoB,OAA2B,WAAjBmoB,EAAQ1X,MAAqB0X,EAAQnoB,QAAUA,EAAuC,GAA7B,4BAAmCyvG,IAAK/yG,KAAK+3I,SAC1J,kBAAC,aACC,kBAAC,SACChkI,KAAuB,WAAjB0X,EAAQ1X,KAAoB,WAAa,QAC/C5Q,OACA4lG,QAASt9E,EAAQnoB,QAAUA,EAC3BypC,SAAU/sC,KAAK+sC,SAAS/oB,KAAKhkB,MAC7BsD,UAGAg5B,EACI,kBAAC,YAAOA,GACR,kBAAC,QAAK1vB,UAAU,gBAAe,KAGlB,WAAjB6e,EAAQ1X,KACJ,kBAAC,QAAKnH,UAAWirI,GAAWC,mBAAmBrsH,KAC/C,MAKd,EAGFosH,GAAWzlC,UAAY,CACrB3mF,QAAS,eAAqBnqB,QAC9Bg7B,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEFn5B,KAAM,WACNG,MAAO,YAGT,0SC9EA,SAAS40I,GAAkB,EAAuBnlC,GAAvB,SAAEr+C,SAAAA,GAAF,EAAew9C,mKAAA,CAAf,EAAe,CAAb,aAC3B,OACE,kBAAC,GAAckT,SAAd,MACG35F,IACA,yBAAC,+HAAU,IAAKymF,WAAf,CAAqBzmF,UAAkBsnF,UACrCr+C,QAGP,GAEJ,CAEAwjF,GAAkB9lC,UAAY,CAC5B19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,cAIJ,UAAe,IAAA6+C,YAAW2kC,ICnB1B,SAASC,IAAO,UACdvrI,EAAS,SACT+H,EAAQ,SACR4X,EAAQ,KACRwhB,EAAI,MACJ5Z,EAAK,UACLjC,EAAS,OACTkmH,EAAM,iBACNlwB,EAAmB,YACnBn7E,EAAQ,WACRs3E,EAAU,MACV/nF,EAAK,UACL+7G,EAAS,SACT3jF,EAAQ,KACR3gD,EAAI,MACJzQ,EAAK,MACLzC,IAEA,MAAOy3I,EAAaC,IAAkB,IAAAtlC,UAAS,MACzCulC,GAAW,IAAArkC,UACXskC,GAAY,IAAAtkC,UAEZlmG,EAAU,CACdi6G,EACAt7G,EACA,aACA,wBAAwB2f,GAAY5X,IACpC,eAAeo5B,GAAQ,OACvB,eAAe5Z,IACf,eAAejC,IACfkmH,GAAU,uBACVpiI,OAAO4uB,SAASpiC,KAAK,KAEjBy1I,GAAiB,IAAAlkC,cAAY,CAACghB,EAAWzwG,KACxCyoB,GACLA,EAASgoF,EAAWzwG,EAAM,GACzB,CAACyoB,IAEEknF,GAAiB,IAAAlgB,cAAY,IAC7BsQ,EAAmB,CAAEC,UAAWD,GAC7B,CAAC,GACP,CAACA,IAEEq0B,GAAgB,IAAA3kC,cAAY,KAChC,IAAKukC,GAAeD,EAClB,MAAO,CAAC,EAGV,MAAMM,EAAgBL,EAAYzkC,QAAQzjG,YAK1C,MAAO,CACLJ,KALqBsoI,EAAYzkC,QAAQjsF,wBAAwB5X,KAC9CyoI,EAAU5kC,QAAQjsF,wBAAwB5X,KAI7C,EAAV,KACNL,MAAUgpI,EAAgB,EAAnB,KACR,GACA,CAACL,EAAaD,IAEXjlC,GAAe,IAAAF,UAAQ,KAAM,CACjCv+F,WACA4X,WACA0rH,iBACAD,gBAAiBO,EACjBF,YACAtkI,OACAzQ,WACE,CAACqR,EAAU4X,EAAU0rH,EAAgBI,EAAWtkI,EAAMzQ,IAE1D,OACE,oCACE,kBAAC,OAAIsJ,UAAWqB,EAAS8kG,IAAK0lC,GAC5B,kBAAC,GAAcplC,SAAd,CACC/vG,MAAO8vG,GAGL92E,EACI,kBAAC,SAAM1vB,UAAU,oBAAoBC,MAAOonH,KAAmB33F,GAC/D,KAEN,kBAAC,MAAG1vB,UAAW,sCAAsCmH,KAAQlT,GAAS,oDAAoDw3I,EAAY,YAAc,mBAChJ3jF,EAES,aAAT3gD,GAAwBskI,EAEpB,KADA,kBAAC,MAAGzrI,UAAU,oBAAoBmmG,IAAKylC,EAAU3rI,MAAO6rI,SAOlE73I,GACE,kBAAC,KAAE+L,UAAU,mCACT/L,GAMd,CAEAs3I,GAAO/lC,UAAY,CACjB19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEF9nD,UAAW,WACX+H,SAAU,SACV4X,SAAU,SACV1rB,MAAO,WACPksC,SAAU,SACVzQ,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEF+nF,WAAY,WACZlwF,MAAO,WACPpgB,KAAM,WACNg6B,KAAM,WACNsqG,UAAW,SACXnmH,UAAW,WACX5uB,MAAO,cAAoB,CACzB,SACA,aAEF80I,OAAQ,SACRlwB,iBAAkB,YAGpBiwB,GAAO7kC,aAAe,CACpB+kC,WAAW,EACXlkH,MAAO,UACPpgB,KAAM,SACNme,UAAW,OAGbimH,GAAO/iC,KAAO,GAEd,YCvJMn7F,GAAS,CACb2+H,cAAe,KAGV,SAASC,GAAU7zI,EAAK5B,GAC7B6W,GAAOjV,GAAO5B,CAChB,CAEA,2bCJA,SAAS01I,GAAiB51I,EAAKkP,GAG7B,OADgBA,EAAK/P,MAAM,UAAU2T,OAAO4uB,SAC7BuyF,QAAO,CAAC4hB,EAAKxlD,IAAOwlD,EAAMA,EAAIxlD,GAAKwlD,GAAM71I,EAC1D,CAgBA,MA8EA,GA9EgB,CAACuiH,EAAWh5G,IAAa,QAxBzCwoB,EAwByC,KAAE08G,MAAAA,EAAA,KAAOqH,GAAT,EAAkBC,mKAAA,CAAlB,EAAkB,CAAhB,QAAO,SAChD,MAAMC,EAA2D,iBAAzB,GAAON,cAA6B,GAAOA,cAAgB,KAC5FO,EAASC,IAAc,IAAAnmC,UAAS0+B,EAAMruI,OACvCyT,EAAO,IACXsiI,iBAAkB,KAAM,CAAG,GAC3BC,gBAAgB,GACb7sI,GAGC8sI,GAAmB,IAAAxlC,aAAY,MACnC,MAAMoK,EAAM1tB,GAAMA,IAClB,OAC0B,IAAxBwoD,EAAWr9B,WACkB,IAAzB,GAAOg9B,gBAA4BK,EAAWr9B,SAE3CuC,EA7Bb,SAAkB1tB,EAAGrxB,GACnB,IAAIwrB,EACJ,MAAO,IAAI9iD,KACTn/B,aAAaiiF,GACbA,EAAYniF,WAAWgoF,EAAGrxB,KAAUt3B,EAAK,CAE7C,CA4BW,CAASq2E,EAH+B,iBAAxB86B,EAAWr9B,SAC9Bq9B,EAAWr9B,SACXs9B,EAEL,EAZoC,GAY/B,IAYAnsG,EAAYysG,IAChB,MAAMl2I,GAVF,OADYiwF,EAWOimD,QAVnB,EAAAjmD,EAAG9uF,QACqB,UAAtB8uF,EAAE9uF,OAAOg1I,UAA2C,aAAlBlmD,EAAE9uF,OAAOsP,MAAyC,UAAlBw/E,EAAE9uF,OAAOsP,KAGxEw/E,EAAE9uF,OAAOnB,MAFPiwF,EAAE9uF,OAAOskG,QAIbxV,EAPQ,IAACA,EAYhB,MAAMmmD,EAAgB3iI,EAAKsiI,iBAAiB/1I,EAAOquI,EAAOqH,EAAMC,GAE1DtwH,EAAW+wH,EAAcp2I,OAAS21I,EAAW31I,OAASA,EAC5Di2I,GAAiB,KACoB,mBAAxBN,EAAWlsG,UACpBksG,EAAWlsG,SAASpkB,GAEtBgpH,EAAM5kG,SAAS,CAAEtoC,OAAQ,IAAEtB,KAAMwuI,EAAMxuI,KAAMG,MAAOqlB,GAAa+wH,IAAkB,IAErFN,EAAWzwH,EAAS,EAGhBgxH,GAAab,GAAiBE,EAAKY,QAASjI,EAAMxuI,OAASyhC,QAAQo0G,EAAKa,eACzEf,GAAiBE,EAAKlL,OAAQ6D,EAAMxuI,MACnCtC,EAA6B,iBAAd84I,EAAyBA,EAAY,IAE1D,IAAAvlC,YAAU,KACRglC,EAAWzH,EAAMruI,MAAM,GACtB,CAACquI,EAAMruI,SAGN,OAAA2xB,EAAA+jH,EAAKc,aAAL,EAAA7kH,EAAatgB,YAAUskI,EAAWtkI,UAAW,GAEjD,MAAMolI,EAAiB,MAAKd,GAM5B,cALOc,EAAen+B,SAElBt6G,OAAO04I,OAAOD,EAAgB,mBAA6C,IAA7BA,EAAentI,kBAAgCmtI,EAAentI,UAC5GtL,OAAO04I,OAAOD,EAAgB,kBAA2C,IAA5BA,EAAerlF,iBAA+BqlF,EAAerlF,SAG5G,kBAAC+wD,EAAA,kBACKksB,GADL,CAEC9wI,UACKkW,EAAKuiI,eAAiB,CAAE1F,SAAS,GAAS,CAAC,GAC5CmG,GAJL,CAKChxC,QAAqC,iBAArBkwC,EAAW31I,MAAqBquI,EAAMruI,QAAU21I,EAAW31I,MAAQquI,EAAMruI,MACzFypC,WACAzpC,MAAO61I,EACPx2F,MAAO,CAAEr/C,MAAO61I,EAASpsG,cAC3B,EC/FJ,GAAe,GAAQ,GAAU,CAC/BssG,iBAAmB/1I,IAAU,CAC3BylG,QAASzlG,MCFb,GAAe,GAAQ,ICAvB,GAAe,GAAQ,ICAvB,GAAe,GAAQ,ICAvB,GAAe,GAAQ,ICAvB,GAAe,GAAQ,GAAc,CACnC+1I,iBAAmB/1I,IAAU,CAAGA,MAAOA,GAAS,OCDlD,GAAe,GAAQ,ICAvB,GAAe,GAAQ,ICAvB,GAAe,GAAQ,GAAO,CAAEg2I,gBAAgB,ICAhD,GAAe,GAAQ,ICAvB,GAAe,GAAQ,ICAvB,GAAe,GAAQ,GAAO,CAC5BD,iBAAkB,CAAC/1I,EAAOquI,EAAOqH,EAAMC,KAAe,CACpDlwC,QAASzlG,IAAU21I,EAAW31I,MAC9BA,MAAO21I,EAAW31I,UCHtB,GAAe,GAAQ,GAAQ,CAAEg2I,gBAAgB,ICAjD,GAAe,GAAQ,ICAvB,GAAe,GAAQ,ICAvB,GAAe,GAAQ,6ZCGvB,MAAMW,WAAwB,EAAAx0B,UAC5B,WAAA1yG,CAAYtL,GACVqpH,MAAMrpH,GAENzH,KAAKm0H,eAAiBn0H,KAAKm0H,eAAenwG,KAAKhkB,KACjD,CAEA,cAAAm0H,CAAe7wH,GACb,MAAM,MAAEq/C,GAAU3iD,KAAK0xG,MACjB,SAAE3kE,GAAa4V,EAErB5V,GAAS,KAAAmsE,QAAO51G,GAClB,CAEA,aAAA0zH,GACE,MAAM,KAAElzE,EAAI,mBAAEmrF,GAAuBjvI,KAAKyH,OACpC,QAAEmyI,EAAO,MAAE/4I,EAAK,QAAEi6B,GAAYgpB,EACpC,IAAIttC,EAAU,KAQd,OANIojI,GAAW/4I,GAASouI,EAAmBpuI,GACzC2V,EAAUy4H,EAAmBpuI,GACpB+4I,GAAW9+G,IACpBtkB,EAAU,WAGLA,CACT,CAEA,MAAA6nG,GACE,MAA2B,EAAAr+G,KAAKyH,OAAxBk7C,MAAAA,GAAmB,EAATuvD,mKAAA,CAAS,EAAT,CAAV,UAER,OACE,kBAAC,eACKvvD,GACAuvD,KAFL,CAGCrxG,MAAOb,KAAKg3H,sCAGlB,EAGFijB,GAAgB7nC,UAAY,CAC1BzvD,MAAO,eAAqBrhD,QAC5BwiD,KAAM,eAAqBxiD,QAC3B2tI,mBAAoB,eAAqB3tI,SAG3C,0SC/CA,MAAM44I,WAAsB,EAAAz0B,UAC1B,WAAA1yG,CAAYtL,GACVqpH,MAAMrpH,GAENzH,KAAKm0H,eAAiBn0H,KAAKm0H,eAAenwG,KAAKhkB,KACjD,CAEA,cAAAm0H,CAAe7wH,GACb,MAAM,MAAEq/C,GAAU3iD,KAAKyH,OACjB,SAAEslC,GAAa4V,EAErB5V,GAAS,KAAAmsE,QAAO51G,GAClB,CAEA,gBAAA62I,GACE,MAAM,KAAEr2F,EAAI,mBAAEmrF,GAAuBjvI,KAAKyH,OACpC,QAAEmyI,EAAO,MAAE/4I,EAAK,QAAEi6B,GAAYgpB,EACpC,IAAIttC,EAAU,KAQd,OANIojI,GAAW/4I,GAASouI,EAAmBpuI,GACzC2V,EAAUy4H,EAAmBpuI,GACpB+4I,GAAW9+G,IACpBtkB,EAAU,WAGLA,CACT,CAEA,MAAA6nG,GACE,MAAW52G,mKAAA,CAAUzH,KAAKyH,MAAf,IAEX,OACE,kBAAC,mIACKA,KADL,CAECslC,SAAU/sC,KAAKm0H,eACf7wH,MAAQmE,EAAMk7C,MAAMr/C,MAA4BmE,EAAMk7C,MAAMr/C,MAAMk5G,OAAtC/0G,EAAMk7C,MAAMr/C,MACxCzC,MAAOb,KAAKm6I,yCAGlB,EAGFD,GAAc9nC,UAAY,CACxBtuD,KAAM,eAAqBxiD,QAC3BqhD,MAAO,eAAqBrhD,QAC5B2tI,mBAAoB,eAAqB3tI,SAG3C,0SChDA,MAAM84I,WAAsB,EAAA30B,UAC1B,WAAA1yG,CAAYtL,GACVqpH,MAAMrpH,GAENzH,KAAKm0H,eAAiBn0H,KAAKm0H,eAAenwG,KAAKhkB,KACjD,CAEA,cAAAm0H,CAAe7wH,GACb,MAAM,MAAEq/C,GAAU3iD,KAAKyH,OACjB,SAAEslC,GAAa4V,EAErB5V,GAAS,KAAAmsE,QAAO51G,GAClB,CAEA,MAAA+6G,GACE,MAII,EAAAr+G,KAAKyH,OAHPitD,SAAAA,EAAA,MACA/R,GAEE,EADCuvD,mKAAA,CACD,EADC,CAFH,WACA,UAIF,OACE,kBAAC,mIACKA,KADL,CAEC0f,SAAU5xH,KAAKm0H,eACf7D,aAAc3tE,EAAMr/C,oBAEnBoxD,UAGP,EAGF0lF,GAAchoC,UAAY,CACxB19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEF/R,MAAO,eAAqBrhD,SAG9B,qaC5CA,SAAS+4I,GAAgB5yI,GACvB,MAA2B,EAAAA,GAAnBk7C,MAAAA,GAAmB,EAATuvD,mKAAA,CAAS,EAAT,CAAV,UAER,OACE,kBAAC,eACKvvD,GACAuvD,KAFL,CAGCnlE,SAAU4V,EAAM5V,SAChBzpC,MAAOq/C,EAAMr/C,MAAQq/C,EAAMr/C,MAAQ,wBAGzC,CAEA+2I,GAAgBjoC,UAAY,CAC1BzvD,MAAO,eAAqBrhD,SAG9B,0SChBA,SAASg5I,GAAe7yI,GACtB,MAAM,MAAEk7C,EAAK,KAAEmB,EAAI,mBAAEmrF,GAAuBxnI,EAmB5C,OACE,kBAAC,mIACKA,KADL,CAECslC,SARoBzpC,IACtB,MAAM,SAAEypC,GAAa4V,EACrB5V,GAAS,KAAAmsE,QAAO51G,GAAO,EAOrBA,MAAQq/C,EAAMr/C,MAAsBq/C,EAAMr/C,MAAMk5G,OAA1B75D,EAAMr/C,MAC5BzC,MAtBqB,MACvB,MAAM,QAAE+4I,EAAO,MAAE/4I,EAAK,QAAEi6B,GAAYgpB,EACpC,IAAIttC,EAAU,KAOd,OALIojI,GAAW/4I,GAASouI,EAAmBpuI,GACzC2V,EAAUy4H,EAAmBpuI,GACpB+4I,GAAW9+G,IACpBtkB,EAAU,WAELA,CAAO,EAaL2jI,yBAGb,CAEAG,GAAeloC,UAAY,CACzBtuD,KAAM,eAAqBxiD,QAC3BqhD,MAAO,eAAqBrhD,QAC5B2tI,mBAAoB,eAAqB3tI,SAG3C,0SCpCA,SAASi5I,GAAe9yI,GACtB,MAKI,EAAAA,GAJFk7C,MAAAA,EAAA,KACAmB,EAAI,mBACJmrF,GAEE,EADC/8B,mKAAA,CACD,EADC,CAHH,QACA,OACA,uBAqBF,OACE,kBAAC,mIACKA,KADL,CAECnlE,SAToBzpC,IACtB,MAAM,SAAEypC,GAAa4V,EAErB5V,GAAS,KAAAmsE,QAAO51G,GAAO,EAOrBA,MAAQq/C,EAAMr/C,MAAsBq/C,EAAMr/C,MAAMk5G,OAA1B75D,EAAMr/C,MAC5BzC,MAtBuB,MACzB,MAAM,QAAE+4I,EAAO,MAAE/4I,GAAUijD,EAC3B,IAAIttC,EAAU,KAMd,OAJIojI,GAAW/4I,GAASouI,EAAmBpuI,KACzC2V,EAAUy4H,EAAmBpuI,IAGxB2V,CAAO,EAcLgkI,yBAGb,CAEAD,GAAenoC,UAAY,CACzBtuD,KAAM,eAAqBxiD,QAC3BqhD,MAAO,eAAqBrhD,QAC5B2tI,mBAAoB,eAAqB3tI,SAG3C,0SCzCA,MAAMm5I,WAA0B,EAAAh1B,UAC9B,WAAA1yG,CAAYtL,GACVqpH,MAAMrpH,GAENzH,KAAKm0H,eAAiBn0H,KAAKm0H,eAAenwG,KAAKhkB,KACjD,CAEA,cAAAm0H,CAAe7wH,GACb,MAAM,MAAEq/C,GAAU3iD,KAAKyH,OACjB,SAAEslC,GAAa4V,EAErB5V,GAAS,KAAAmsE,QAAO51G,GAClB,CAEA,oBAAAo3I,GACE,MAAM,KAAE52F,EAAI,mBAAEmrF,GAAuBjvI,KAAKyH,OACpC,QAAEmyI,EAAO,MAAE/4I,GAAUijD,EAC3B,IAAIttC,EAAU,KAMd,OAJIojI,GAAW/4I,GAASouI,EAAmBpuI,KACzC2V,EAAUy4H,EAAmBpuI,IAGxB2V,CACT,CAEA,MAAA6nG,GACE,MAAW52G,mKAAA,CAAUzH,KAAKyH,MAAf,IAEX,OACE,kBAAC,mIACKA,KADL,CAECslC,SAAU/sC,KAAKm0H,eACf7wH,MAAQmE,EAAMk7C,MAAMr/C,MAAemE,EAAMk7C,MAAMr/C,MAAMk5G,OAAzB,KAC5B37G,MAAOb,KAAK06I,6CAGlB,EAGFD,GAAkBroC,UAAY,CAC5BzvD,MAAO,eAAqBrhD,QAC5BwiD,KAAM,eAAqBxiD,QAC3B2tI,mBAAoB,eAAqB3tI,SAG3C,qaC/CA,MAAMq5I,WAAuB,EAAAl1B,UAC3B,aAAAuR,GACE,MAAM,KAAElzE,EAAI,mBAAEmrF,GAAuBjvI,KAAKyH,OACpC,QAAEmyI,EAAO,MAAE/4I,EAAK,QAAEi6B,GAAYgpB,EACpC,IAAIttC,EAAU,KAQd,OANIojI,GAAW/4I,GAASouI,EAAmBpuI,GACzC2V,EAAUy4H,EAAmBpuI,GACpB+4I,GAAW9+G,IACpBtkB,EAAU,WAGLA,CACT,CAEA,MAAA6nG,GACE,MAA2B,EAAAr+G,KAAKyH,OAAxBk7C,MAAAA,GAAmB,EAATuvD,mKAAA,CAAS,EAAT,CAAV,UAER,OACE,kBAAC,eACKvvD,GACAuvD,KAFL,CAGCrxG,MAAOb,KAAKg3H,sCAGlB,EAGF2jB,GAAevoC,UAAY,CACzBzvD,MAAO,eAAqBrhD,QAC5BwiD,KAAM,eAAqBxiD,QAC3B2tI,mBAAoB,eAAqB3tI,SAG3C,qaClCA,MAAMs5I,WAAmB,EAAAn1B,UACvB,aAAAuR,GACE,MAAM,KAAElzE,EAAI,mBAAEmrF,GAAuBjvI,KAAKyH,OACpC,QAAEmyI,EAAO,MAAE/4I,EAAK,QAAEi6B,GAAYgpB,EACpC,IAAIttC,EAAU,KAQd,OANIojI,GAAW/4I,GAASouI,EAAmBpuI,GACzC2V,EAAUy4H,EAAmBpuI,GACpB+4I,GAAW9+G,IACpBtkB,EAAU,WAGLA,CACT,CAEA,MAAA6nG,GACE,MAA2B,EAAAr+G,KAAKyH,OAAxBk7C,MAAAA,GAAmB,EAATuvD,mKAAA,CAAS,EAAT,CAAV,UAER,OACE,kBAAC,eACKvvD,GACAuvD,KAFL,CAGC0hC,SAAO,EACP/yI,MAAOb,KAAKg3H,sCAGlB,EAGF4jB,GAAWxoC,UAAY,CACrBtuD,KAAM,eAAqBxiD,QAC3BqhD,MAAO,eAAqBrhD,QAC5B2tI,mBAAoB,eAAqB3tI,SAG3C,0SClCA,MAAMu5I,WAAyB,EAAAp1B,UAC7B,WAAA1yG,CAAYtL,GACVqpH,MAAMrpH,GAENzH,KAAKm0H,eAAiBn0H,KAAKm0H,eAAenwG,KAAKhkB,KACjD,CAEA,cAAAm0H,CAAe7wH,GACb,MAAM,MAAEq/C,GAAU3iD,KAAKyH,OACjB,SAAEslC,GAAa4V,EAErB5V,GAAS,KAAAmsE,QAAO51G,GAClB,CAEA,mBAAAw3I,GACE,MAAM,KAAEh3F,EAAI,mBAAEmrF,GAAuBjvI,KAAKyH,OACpC,QAAEmyI,EAAO,MAAE/4I,EAAK,QAAEi6B,GAAYgpB,EACpC,IAAIttC,EAAU,KAQd,OANIojI,GAAW/4I,GAASouI,EAAmBpuI,GACzC2V,EAAUy4H,EAAmBpuI,GACpB+4I,GAAW9+G,IACpBtkB,EAAU,WAGLA,CACT,CAEA,MAAA6nG,GACE,MAAW52G,mKAAA,CAAUzH,KAAKyH,MAAf,IAEX,OACE,kBAAC,mIACKA,KADL,CAECslC,SAAU/sC,KAAKm0H,eACf7wH,MAAQmE,EAAMk7C,MAAMr/C,MAA4BmE,EAAMk7C,MAAMr/C,MAAMk5G,OAAtC/0G,EAAMk7C,MAAMr/C,MACxCzC,MAAOb,KAAK86I,4CAGlB,EAGFD,GAAiBzoC,UAAY,CAC3BzvD,MAAO,eAAqBrhD,QAC5BwiD,KAAM,eAAqBxiD,QAC3B2tI,mBAAoB,eAAqB3tI,SAG3C,qaChDA,MAAMy5I,WAAoB,EAAAt1B,UACxB,WAAA1yG,CAAYtL,GACVqpH,MAAMrpH,GAENzH,KAAKg7I,YAAch7I,KAAKg7I,YAAYh3H,KAAKhkB,KAC3C,CAEA,WAAAg7I,CAAY9e,GACV,MAAM,MAAEv5E,GAAU3iD,KAAKyH,OACjB,SAAEslC,EAAQ,MAAEzpC,GAAUq/C,EAE5B5V,GAAS,KAAAmsE,aAAuB,IAAhBgjB,EAA4BA,EAAc54H,GAC5D,CAEA,cAAA2zI,GACE,MAAM,KAAEnzF,EAAI,mBAAEmrF,GAAuBjvI,KAAKyH,OACpC,QAAEmyI,EAAO,MAAE/4I,EAAK,QAAEi6B,GAAYgpB,EACpC,IAAIttC,EAAU,KAQd,OANIojI,GAAW/4I,GAASouI,EAAmBpuI,GACzC2V,EAAUy4H,EAAmBpuI,GACpB+4I,GAAW9+G,IACpBtkB,EAAU,WAGLA,CACT,CAEA,MAAA6nG,GACE,MAA2B,EAAAr+G,KAAKyH,OAAxBk7C,MAAAA,GAAmB,EAATuvD,mKAAA,CAAS,EAAT,CAAV,UAER,OACE,kBAAC,eACKvvD,GACAuvD,KAFL,CAGC0hC,SAAO,EACP/yI,MAAOb,KAAKi3I,iBACZlqG,SAAU/sC,KAAKg7I,YACf9zH,OAAQlnB,KAAKg7I,YACb13I,MAAQq/C,EAAMr/C,MAAsBq/C,EAAMr/C,MAAMk5G,OAA1B75D,EAAMr/C,4BAGlC,EAGFy3I,GAAY3oC,UAAY,CACtBzvD,MAAO,eAAqBrhD,QAC5BwiD,KAAM,eAAqBxiD,QAC3B2tI,mBAAoB,eAAqB3tI,SAG3C,0SCnDA,MAAM25I,WAA4B,EAAAx1B,UAChC,WAAA1yG,CAAYtL,GACVqpH,MAAMrpH,GAENzH,KAAKm0H,eAAiBn0H,KAAKm0H,eAAenwG,KAAKhkB,KACjD,CAEA,cAAAm0H,CAAe7wH,GACb,MAAM,MAAEq/C,GAAU3iD,KAAKyH,MAEvBk7C,EAAM5V,UAAS,KAAAmsE,QAAO51G,GACxB,CAEA,MAAA+6G,GACE,MAA+B,EAAAr+G,KAAKyH,OAA5BitD,SAAAA,GAAuB,EAAVjtD,mKAAA,CAAU,EAAV,CAAb,aAER,OACE,kBAAC,mIACKA,KADL,CAECslC,SAAU/sC,KAAKm0H,eACf7wH,MAAOmE,EAAMk7C,MAAMr/C,MAAQmE,EAAMk7C,MAAMr/C,MAAMk5G,OAAS,yBAG5D,EAGFy+B,GAAoB7oC,UAAY,CAC9B19C,SAAU,cAAoB,CAC5B,WAEF3nB,SAAU,SACV4V,MAAO,eAAqBrhD,SAG9B,0SClCA,MAAM45I,WAAoB,EAAAz1B,UACxB,WAAA1yG,CAAYtL,GACVqpH,MAAMrpH,GAENzH,KAAKm0H,eAAiBn0H,KAAKm0H,eAAenwG,KAAKhkB,KACjD,CAEA,cAAAm0H,CAAe7wH,GACb,MAAM,MAAEq/C,GAAU3iD,KAAKyH,MAEvBk7C,EAAM5V,UAAS,KAAAmsE,QAAO51G,GACxB,CAEA,MAAA+6G,GACE,MAA+B,EAAAr+G,KAAKyH,OAA5BitD,SAAAA,GAAuB,EAAVjtD,mKAAA,CAAU,EAAV,CAAb,aAER,OACE,kBAAC,mIACKA,KADL,CAECslC,SAAU/sC,KAAKm0H,eACf7wH,MAAOmE,EAAMk7C,MAAMr/C,oBAElBoxD,UAGP,EAGFwmF,GAAY9oC,UAAY,CACtB19C,SAAU,cAAoB,CAC5B,WAEF3nB,SAAU,SACV4V,MAAO,eAAqBrhD,SAG9B,YCvCe,SAAS65I,GAAYh6I,EAAU6H,KAAU8+B,GACtD,MAAMy1E,GAAgB,IAAApJ,WAEtB,IAAAC,YAAU,KACRmJ,EAAc1J,QAAU1yG,CAAQ,GAC/B,CAACA,KAGJ,IAAAizG,YAAU,KAIR,GAAIprG,QAAuC,CACzC,MAAMnG,EAAKg8B,aAJb,WACE0+E,EAAc1J,WAAW/rE,EAC3B,GAE+B9+B,GAC7B,MAAO,IAAM41B,cAAc/7B,EAC7B,IACC,CAACmG,GACN","sources":["webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/ace.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/ext-beautify.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/ext-searchbox.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-css.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-golang.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-javascript.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-json.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-jsx.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-python.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-xml.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/theme-github.js","webpack://@tyk-technologies/tyk-ui/./node_modules/react-dom/client.js","webpack://@tyk-technologies/tyk-ui/./node_modules/react-fast-compare/index.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react-dom\"","webpack://@tyk-technologies/tyk-ui/webpack/bootstrap","webpack://@tyk-technologies/tyk-ui/webpack/runtime/amd define","webpack://@tyk-technologies/tyk-ui/webpack/runtime/compat get default export","webpack://@tyk-technologies/tyk-ui/webpack/runtime/define property getters","webpack://@tyk-technologies/tyk-ui/webpack/runtime/hasOwnProperty shorthand","webpack://@tyk-technologies/tyk-ui/webpack/runtime/make namespace object","webpack://@tyk-technologies/tyk-ui/webpack/runtime/node module decorator","webpack://@tyk-technologies/tyk-ui/webpack/runtime/publicPath","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react\"","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"prop-types\"","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Icon/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemTrigger.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItem.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemHeader.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react-transition-group\"","webpack://@tyk-technologies/tyk-ui/./src/hooks/useComponentSize/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/useEventListener/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Collapsible/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemContent.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Button/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/ButtonGroup/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardHeader.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardBody.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardFooter.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardTitle.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardTitleGroup.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardSubTitle.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardSummary.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardTitleIcon.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/index.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"echarts\"","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"immutable\"","webpack://@tyk-technologies/tyk-ui/./src/utils/debounce/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/usePrevious/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Loader/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Message/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Chart/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/useTimeout/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/js/ToastMessage.js","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/js/ToastContainer.js","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/CopyToClipboard/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/js/ModalFooter.js","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/js/ModalBody.js","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Confirm/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/FixedWrapper/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/InfiniteScroller/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/FloatingContainer/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/InfoNote/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/List/js/ListItem.js","webpack://@tyk-technologies/tyk-ui/./src/components/List/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/NavBar/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Navigation/js/NavigationItem.js","webpack://@tyk-technologies/tyk-ui/./src/components/Navigation/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/panel-context.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/js/PanelBody.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/js/PanelFooter.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/js/PanelHeader.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Pill/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/RevealPanel/js/RevealPanelService.js","webpack://@tyk-technologies/tyk-ui/./src/components/RevealPanel/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/tabs-context.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/js/TabContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/js/TabContent.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/js/Tab.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tooltip/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/TextEllipsis/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Pagination/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/tableContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/header-cell.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/header.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Checkbox/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/cell.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/row.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/body.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/index.js","webpack://@tyk-technologies/tyk-ui/./src/layout/Column/index.js","webpack://@tyk-technologies/tyk-ui/./src/layout/Row/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/dropdown-context.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/js/DropdownItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/DropdownTrigger.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/DropdownListWrapper.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/useDrodpownContext.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/DropdowItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/useDropdown.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react-ace\"","webpack://@tyk-technologies/tyk-ui/./src/form/components/CodeEditor/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/js/Value.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/js/List.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/index.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"flatpickr\"","webpack://@tyk-technologies/tyk-ui/./src/form/components/DatePicker/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/isDate/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/toDate/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/defaultOptions/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/defaultLocale/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/format/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/isValid/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/subMilliseconds/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/addMilliseconds/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList/js/EditableListForm.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/Header.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/ListHeader.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/FieldsList.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/with-validation.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/validate-values.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/FileInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Input/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Input2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/js/MultiselectContext.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/js/MultiselectItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/js/MultiselectPanel.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Radio/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Select/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/SelectableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Textarea/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/js/ToggleContext.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/js/ToggleItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/js/ToggleItemWrapper.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/index.js","webpack://@tyk-technologies/tyk-ui/./src/utils/config/config.js","webpack://@tyk-technologies/tyk-ui/./src/utils/formik/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCheckbox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCodeEditor/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCombobox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCombobox2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikDatePicker/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikEditableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikEditableList2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikFileInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikInput2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikMultiselect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikRadio/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikSelect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikSelectableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikTextarea/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikToggle/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldCodeEditor/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldCombobox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldDropdown/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldPagination/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldCombobox2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldDatePicker/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldEditableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldFileInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldMultiselect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldSelect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldSelectableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldToggle/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/useInterval/index.js"],"sourcesContent":["/* ***** BEGIN LICENSE BLOCK *****\n * Distributed under the BSD license:\n *\n * Copyright (c) 2010, Ajax.org B.V.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n * * Neither the name of Ajax.org B.V. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * ***** END LICENSE BLOCK ***** */\n\n/**\n * Define a module along with a payload\n * @param module a name for the payload\n * @param payload a function to call with (require, exports, module) params\n */\n\n(function() {\n\nvar ACE_NAMESPACE = \"ace\";\n\nvar global = (function() { return this; })();\nif (!global && typeof window != \"undefined\") global = window; // strict mode\n\n\nif (!ACE_NAMESPACE && typeof requirejs !== \"undefined\")\n return;\n\n\nvar define = function(module, deps, payload) {\n if (typeof module !== \"string\") {\n if (define.original)\n define.original.apply(this, arguments);\n else {\n console.error(\"dropping module because define wasn\\'t a string.\");\n console.trace();\n }\n return;\n }\n if (arguments.length == 2)\n payload = deps;\n if (!define.modules[module]) {\n define.payloads[module] = payload;\n define.modules[module] = null;\n }\n};\n\ndefine.modules = {};\ndefine.payloads = {};\n\n/**\n * Get at functionality define()ed using the function above\n */\nvar _require = function(parentId, module, callback) {\n if (typeof module === \"string\") {\n var payload = lookup(parentId, module);\n if (payload != undefined) {\n callback && callback();\n return payload;\n }\n } else if (Object.prototype.toString.call(module) === \"[object Array]\") {\n var params = [];\n for (var i = 0, l = module.length; i < l; ++i) {\n var dep = lookup(parentId, module[i]);\n if (dep == undefined && require.original)\n return;\n params.push(dep);\n }\n return callback && callback.apply(null, params) || true;\n }\n};\n\nvar require = function(module, callback) {\n var packagedModule = _require(\"\", module, callback);\n if (packagedModule == undefined && require.original)\n return require.original.apply(this, arguments);\n return packagedModule;\n};\n\nvar normalizeModule = function(parentId, moduleName) {\n // normalize plugin requires\n if (moduleName.indexOf(\"!\") !== -1) {\n var chunks = moduleName.split(\"!\");\n return normalizeModule(parentId, chunks[0]) + \"!\" + normalizeModule(parentId, chunks[1]);\n }\n // normalize relative requires\n if (moduleName.charAt(0) == \".\") {\n var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n moduleName = base + \"/\" + moduleName;\n\n while(moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n var previous = moduleName;\n moduleName = moduleName.replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n }\n }\n return moduleName;\n};\n\n/**\n * Internal function to lookup moduleNames and resolve them by calling the\n * definition function if needed.\n */\nvar lookup = function(parentId, moduleName) {\n moduleName = normalizeModule(parentId, moduleName);\n\n var module = define.modules[moduleName];\n if (!module) {\n module = define.payloads[moduleName];\n if (typeof module === 'function') {\n var exports = {};\n var mod = {\n id: moduleName,\n uri: '',\n exports: exports,\n packaged: true\n };\n\n var req = function(module, callback) {\n return _require(moduleName, module, callback);\n };\n\n var returnValue = module(req, exports, mod);\n exports = returnValue || mod.exports;\n define.modules[moduleName] = exports;\n delete define.payloads[moduleName];\n }\n module = define.modules[moduleName] = exports || module;\n }\n return module;\n};\n\nfunction exportAce(ns) {\n var root = global;\n if (ns) {\n if (!global[ns])\n global[ns] = {};\n root = global[ns];\n }\n\n if (!root.define || !root.define.packaged) {\n define.original = root.define;\n root.define = define;\n root.define.packaged = true;\n }\n\n if (!root.require || !root.require.packaged) {\n require.original = root.require;\n root.require = require;\n root.require.packaged = true;\n }\n}\n\nexportAce(ACE_NAMESPACE);\n\n})();\n\nace.define(\"ace/lib/es6-shim\",[\"require\",\"exports\",\"module\"], function(require, exports, module){function defineProp(obj, name, val) {\n Object.defineProperty(obj, name, {\n value: val,\n enumerable: false,\n writable: true,\n configurable: true\n });\n}\nif (!String.prototype.startsWith) {\n defineProp(String.prototype, \"startsWith\", function (searchString, position) {\n position = position || 0;\n return this.lastIndexOf(searchString, position) === position;\n });\n}\nif (!String.prototype.endsWith) {\n defineProp(String.prototype, \"endsWith\", function (searchString, position) {\n var subjectString = this;\n if (position === undefined || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n });\n}\nif (!String.prototype.repeat) {\n defineProp(String.prototype, \"repeat\", function (count) {\n var result = \"\";\n var string = this;\n while (count > 0) {\n if (count & 1)\n result += string;\n if ((count >>= 1))\n string += string;\n }\n return result;\n });\n}\nif (!String.prototype.includes) {\n defineProp(String.prototype, \"includes\", function (str, position) {\n return this.indexOf(str, position) != -1;\n });\n}\nif (!Object.assign) {\n Object.assign = function (target) {\n if (target === undefined || target === null) {\n throw new TypeError(\"Cannot convert undefined or null to object\");\n }\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n Object.keys(source).forEach(function (key) {\n output[key] = source[key];\n });\n }\n }\n return output;\n };\n}\nif (!Object.values) {\n Object.values = function (o) {\n return Object.keys(o).map(function (k) {\n return o[k];\n });\n };\n}\nif (!Array.prototype.find) {\n defineProp(Array.prototype, \"find\", function (predicate) {\n var len = this.length;\n var thisArg = arguments[1];\n for (var k = 0; k < len; k++) {\n var kValue = this[k];\n if (predicate.call(thisArg, kValue, k, this)) {\n return kValue;\n }\n }\n });\n}\nif (!Array.prototype.findIndex) {\n defineProp(Array.prototype, \"findIndex\", function (predicate) {\n var len = this.length;\n var thisArg = arguments[1];\n for (var k = 0; k < len; k++) {\n var kValue = this[k];\n if (predicate.call(thisArg, kValue, k, this)) {\n return k;\n }\n }\n });\n}\nif (!Array.prototype.includes) {\n defineProp(Array.prototype, \"includes\", function (item, position) {\n return this.indexOf(item, position) != -1;\n });\n}\nif (!Array.prototype.fill) {\n defineProp(Array.prototype, \"fill\", function (value) {\n var O = this;\n var len = O.length >>> 0;\n var start = arguments[1];\n var relativeStart = start >> 0;\n var k = relativeStart < 0\n ? Math.max(len + relativeStart, 0)\n : Math.min(relativeStart, len);\n var end = arguments[2];\n var relativeEnd = end === undefined ? len : end >> 0;\n var final = relativeEnd < 0\n ? Math.max(len + relativeEnd, 0)\n : Math.min(relativeEnd, len);\n while (k < final) {\n O[k] = value;\n k++;\n }\n return O;\n });\n}\nif (!Array.of) {\n defineProp(Array, \"of\", function () {\n return Array.prototype.slice.call(arguments);\n });\n}\n\n});\n\nace.define(\"ace/lib/fixoldbrowsers\",[\"require\",\"exports\",\"module\",\"ace/lib/es6-shim\"], function(require, exports, module){// vim:set ts=4 sts=4 sw=4 st:\n\"use strict\";\nrequire(\"./es6-shim\");\n\n});\n\nace.define(\"ace/lib/deep_copy\",[\"require\",\"exports\",\"module\"], function(require, exports, module){exports.deepCopy = function deepCopy(obj) {\n if (typeof obj !== \"object\" || !obj)\n return obj;\n var copy;\n if (Array.isArray(obj)) {\n copy = [];\n for (var key = 0; key < obj.length; key++) {\n copy[key] = deepCopy(obj[key]);\n }\n return copy;\n }\n if (Object.prototype.toString.call(obj) !== \"[object Object]\")\n return obj;\n copy = {};\n for (var key in obj)\n copy[key] = deepCopy(obj[key]);\n return copy;\n};\n\n});\n\nace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\",\"ace/lib/deep_copy\"], function(require, exports, module){\"use strict\";\nexports.last = function (a) {\n return a[a.length - 1];\n};\nexports.stringReverse = function (string) {\n return string.split(\"\").reverse().join(\"\");\n};\nexports.stringRepeat = function (string, count) {\n var result = '';\n while (count > 0) {\n if (count & 1)\n result += string;\n if (count >>= 1)\n string += string;\n }\n return result;\n};\nvar trimBeginRegexp = /^\\s\\s*/;\nvar trimEndRegexp = /\\s\\s*$/;\nexports.stringTrimLeft = function (string) {\n return string.replace(trimBeginRegexp, '');\n};\nexports.stringTrimRight = function (string) {\n return string.replace(trimEndRegexp, '');\n};\nexports.copyObject = function (obj) {\n var copy = {};\n for (var key in obj) {\n copy[key] = obj[key];\n }\n return copy;\n};\nexports.copyArray = function (array) {\n var copy = [];\n for (var i = 0, l = array.length; i < l; i++) {\n if (array[i] && typeof array[i] == \"object\")\n copy[i] = this.copyObject(array[i]);\n else\n copy[i] = array[i];\n }\n return copy;\n};\nexports.deepCopy = require(\"./deep_copy\").deepCopy;\nexports.arrayToMap = function (arr) {\n var map = {};\n for (var i = 0; i < arr.length; i++) {\n map[arr[i]] = 1;\n }\n return map;\n};\nexports.createMap = function (props) {\n var map = Object.create(null);\n for (var i in props) {\n map[i] = props[i];\n }\n return map;\n};\nexports.arrayRemove = function (array, value) {\n for (var i = 0; i <= array.length; i++) {\n if (value === array[i]) {\n array.splice(i, 1);\n }\n }\n};\nexports.escapeRegExp = function (str) {\n return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g, '\\\\$1');\n};\nexports.escapeHTML = function (str) {\n return (\"\" + str).replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(/ 0xffff ? 2 : 1;\n};\n\n});\n\nace.define(\"ace/lib/useragent\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nexports.OS = {\n LINUX: \"LINUX\",\n MAC: \"MAC\",\n WINDOWS: \"WINDOWS\"\n};\nexports.getOS = function () {\n if (exports.isMac) {\n return exports.OS.MAC;\n }\n else if (exports.isLinux) {\n return exports.OS.LINUX;\n }\n else {\n return exports.OS.WINDOWS;\n }\n};\nvar _navigator = typeof navigator == \"object\" ? navigator : {};\nvar os = (/mac|win|linux/i.exec(_navigator.platform) || [\"other\"])[0].toLowerCase();\nvar ua = _navigator.userAgent || \"\";\nvar appName = _navigator.appName || \"\";\nexports.isWin = (os == \"win\");\nexports.isMac = (os == \"mac\");\nexports.isLinux = (os == \"linux\");\nexports.isIE =\n (appName == \"Microsoft Internet Explorer\" || appName.indexOf(\"MSAppHost\") >= 0)\n ? parseFloat((ua.match(/(?:MSIE |Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/) || [])[1])\n : parseFloat((ua.match(/(?:Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/) || [])[1]); // for ie\nexports.isOldIE = exports.isIE && exports.isIE < 9;\nexports.isGecko = exports.isMozilla = ua.match(/ Gecko\\/\\d+/);\nexports.isOpera = typeof opera == \"object\" && Object.prototype.toString.call(window.opera) == \"[object Opera]\";\nexports.isWebKit = parseFloat(ua.split(\"WebKit/\")[1]) || undefined;\nexports.isChrome = parseFloat(ua.split(\" Chrome/\")[1]) || undefined;\nexports.isSafari = parseFloat(ua.split(\" Safari/\")[1]) && !exports.isChrome || undefined;\nexports.isEdge = parseFloat(ua.split(\" Edge/\")[1]) || undefined;\nexports.isAIR = ua.indexOf(\"AdobeAIR\") >= 0;\nexports.isAndroid = ua.indexOf(\"Android\") >= 0;\nexports.isChromeOS = ua.indexOf(\" CrOS \") >= 0;\nexports.isIOS = /iPad|iPhone|iPod/.test(ua) && !window.MSStream;\nif (exports.isIOS)\n exports.isMac = true;\nexports.isMobile = exports.isIOS || exports.isAndroid;\n\n});\n\nace.define(\"ace/lib/dom\",[\"require\",\"exports\",\"module\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar useragent = require(\"./useragent\");\nvar XHTML_NS = \"http://www.w3.org/1999/xhtml\";\nexports.buildDom = function buildDom(arr, parent, refs) {\n if (typeof arr == \"string\" && arr) {\n var txt = document.createTextNode(arr);\n if (parent)\n parent.appendChild(txt);\n return txt;\n }\n if (!Array.isArray(arr)) {\n if (arr && arr.appendChild && parent)\n parent.appendChild(arr);\n return arr;\n }\n if (typeof arr[0] != \"string\" || !arr[0]) {\n var els = [];\n for (var i = 0; i < arr.length; i++) {\n var ch = buildDom(arr[i], parent, refs);\n ch && els.push(ch);\n }\n return els;\n }\n var el = document.createElement(arr[0]);\n var options = arr[1];\n var childIndex = 1;\n if (options && typeof options == \"object\" && !Array.isArray(options))\n childIndex = 2;\n for (var i = childIndex; i < arr.length; i++)\n buildDom(arr[i], el, refs);\n if (childIndex == 2) {\n Object.keys(options).forEach(function (n) {\n var val = options[n];\n if (n === \"class\") {\n el.className = Array.isArray(val) ? val.join(\" \") : val;\n }\n else if (typeof val == \"function\" || n == \"value\" || n[0] == \"$\") {\n el[n] = val;\n }\n else if (n === \"ref\") {\n if (refs)\n refs[val] = el;\n }\n else if (n === \"style\") {\n if (typeof val == \"string\")\n el.style.cssText = val;\n }\n else if (val != null) {\n el.setAttribute(n, val);\n }\n });\n }\n if (parent)\n parent.appendChild(el);\n return el;\n};\nexports.getDocumentHead = function (doc) {\n if (!doc)\n doc = document;\n return doc.head || doc.getElementsByTagName(\"head\")[0] || doc.documentElement;\n};\nexports.createElement = function (tag, ns) {\n return document.createElementNS ?\n document.createElementNS(ns || XHTML_NS, tag) :\n document.createElement(tag);\n};\nexports.removeChildren = function (element) {\n element.innerHTML = \"\";\n};\nexports.createTextNode = function (textContent, element) {\n var doc = element ? element.ownerDocument : document;\n return doc.createTextNode(textContent);\n};\nexports.createFragment = function (element) {\n var doc = element ? element.ownerDocument : document;\n return doc.createDocumentFragment();\n};\nexports.hasCssClass = function (el, name) {\n var classes = (el.className + \"\").split(/\\s+/g);\n return classes.indexOf(name) !== -1;\n};\nexports.addCssClass = function (el, name) {\n if (!exports.hasCssClass(el, name)) {\n el.className += \" \" + name;\n }\n};\nexports.removeCssClass = function (el, name) {\n var classes = el.className.split(/\\s+/g);\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n classes.splice(index, 1);\n }\n el.className = classes.join(\" \");\n};\nexports.toggleCssClass = function (el, name) {\n var classes = el.className.split(/\\s+/g), add = true;\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n add = false;\n classes.splice(index, 1);\n }\n if (add)\n classes.push(name);\n el.className = classes.join(\" \");\n return add;\n};\nexports.setCssClass = function (node, className, include) {\n if (include) {\n exports.addCssClass(node, className);\n }\n else {\n exports.removeCssClass(node, className);\n }\n};\nexports.hasCssString = function (id, doc) {\n var index = 0, sheets;\n doc = doc || document;\n if ((sheets = doc.querySelectorAll(\"style\"))) {\n while (index < sheets.length) {\n if (sheets[index++].id === id) {\n return true;\n }\n }\n }\n};\nexports.removeElementById = function (id, doc) {\n doc = doc || document;\n if (doc.getElementById(id)) {\n doc.getElementById(id).remove();\n }\n};\nvar strictCSP;\nvar cssCache = [];\nexports.useStrictCSP = function (value) {\n strictCSP = value;\n if (value == false)\n insertPendingStyles();\n else if (!cssCache)\n cssCache = [];\n};\nfunction insertPendingStyles() {\n var cache = cssCache;\n cssCache = null;\n cache && cache.forEach(function (item) {\n importCssString(item[0], item[1]);\n });\n}\nfunction importCssString(cssText, id, target) {\n if (typeof document == \"undefined\")\n return;\n if (cssCache) {\n if (target) {\n insertPendingStyles();\n }\n else if (target === false) {\n return cssCache.push([cssText, id]);\n }\n }\n if (strictCSP)\n return;\n var container = target;\n if (!target || !target.getRootNode) {\n container = document;\n }\n else {\n container = target.getRootNode();\n if (!container || container == target)\n container = document;\n }\n var doc = container.ownerDocument || container;\n if (id && exports.hasCssString(id, container))\n return null;\n if (id)\n cssText += \"\\n/*# sourceURL=ace/css/\" + id + \" */\";\n var style = exports.createElement(\"style\");\n style.appendChild(doc.createTextNode(cssText));\n if (id)\n style.id = id;\n if (container == doc)\n container = exports.getDocumentHead(doc);\n container.insertBefore(style, container.firstChild);\n}\nexports.importCssString = importCssString;\nexports.importCssStylsheet = function (uri, doc) {\n exports.buildDom([\"link\", { rel: \"stylesheet\", href: uri }], exports.getDocumentHead(doc));\n};\nexports.scrollbarWidth = function (doc) {\n var inner = exports.createElement(\"ace_inner\");\n inner.style.width = \"100%\";\n inner.style.minWidth = \"0px\";\n inner.style.height = \"200px\";\n inner.style.display = \"block\";\n var outer = exports.createElement(\"ace_outer\");\n var style = outer.style;\n style.position = \"absolute\";\n style.left = \"-10000px\";\n style.overflow = \"hidden\";\n style.width = \"200px\";\n style.minWidth = \"0px\";\n style.height = \"150px\";\n style.display = \"block\";\n outer.appendChild(inner);\n var body = (doc && doc.documentElement) || (document && document.documentElement);\n if (!body)\n return 0;\n body.appendChild(outer);\n var noScrollbar = inner.offsetWidth;\n style.overflow = \"scroll\";\n var withScrollbar = inner.offsetWidth;\n if (noScrollbar === withScrollbar) {\n withScrollbar = outer.clientWidth;\n }\n body.removeChild(outer);\n return noScrollbar - withScrollbar;\n};\nexports.computedStyle = function (element, style) {\n return window.getComputedStyle(element, \"\") || {};\n};\nexports.setStyle = function (styles, property, value) {\n if (styles[property] !== value) {\n styles[property] = value;\n }\n};\nexports.HAS_CSS_ANIMATION = false;\nexports.HAS_CSS_TRANSFORMS = false;\nexports.HI_DPI = useragent.isWin\n ? typeof window !== \"undefined\" && window.devicePixelRatio >= 1.5\n : true;\nif (useragent.isChromeOS)\n exports.HI_DPI = false;\nif (typeof document !== \"undefined\") {\n var div = document.createElement(\"div\");\n if (exports.HI_DPI && div.style.transform !== undefined)\n exports.HAS_CSS_TRANSFORMS = true;\n if (!useragent.isEdge && typeof div.style.animationName !== \"undefined\")\n exports.HAS_CSS_ANIMATION = true;\n div = null;\n}\nif (exports.HAS_CSS_TRANSFORMS) {\n exports.translate = function (element, tx, ty) {\n element.style.transform = \"translate(\" + Math.round(tx) + \"px, \" + Math.round(ty) + \"px)\";\n };\n}\nelse {\n exports.translate = function (element, tx, ty) {\n element.style.top = Math.round(ty) + \"px\";\n element.style.left = Math.round(tx) + \"px\";\n };\n}\n\n});\n\nace.define(\"ace/lib/net\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){/*\n * based on code from:\n *\n * @license RequireJS text 0.25.0 Copyright (c) 2010-2011, The Dojo Foundation All Rights Reserved.\n * Available via the MIT or new BSD license.\n * see: http://github.com/jrburke/requirejs for details\n */\n\"use strict\";\nvar dom = require(\"./dom\");\nexports.get = function (url, callback) {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n callback(xhr.responseText);\n }\n };\n xhr.send(null);\n};\nexports.loadScript = function (path, callback) {\n var head = dom.getDocumentHead();\n var s = document.createElement('script');\n s.src = path;\n head.appendChild(s);\n s.onload = s.onreadystatechange = function (_, isAbort) {\n if (isAbort || !s.readyState || s.readyState == \"loaded\" || s.readyState == \"complete\") {\n s = s.onload = s.onreadystatechange = null;\n if (!isAbort)\n callback();\n }\n };\n};\nexports.qualifyURL = function (url) {\n var a = document.createElement('a');\n a.href = url;\n return a.href;\n};\n\n});\n\nace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nexports.inherits = function (ctor, superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n};\nexports.mixin = function (obj, mixin) {\n for (var key in mixin) {\n obj[key] = mixin[key];\n }\n return obj;\n};\nexports.implement = function (proto, mixin) {\n exports.mixin(proto, mixin);\n};\n\n});\n\nace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar EventEmitter = {};\nvar stopPropagation = function () { this.propagationStopped = true; };\nvar preventDefault = function () { this.defaultPrevented = true; };\nEventEmitter._emit =\n EventEmitter._dispatchEvent = function (eventName, e) {\n this._eventRegistry || (this._eventRegistry = {});\n this._defaultHandlers || (this._defaultHandlers = {});\n var listeners = this._eventRegistry[eventName] || [];\n var defaultHandler = this._defaultHandlers[eventName];\n if (!listeners.length && !defaultHandler)\n return;\n if (typeof e != \"object\" || !e)\n e = {};\n if (!e.type)\n e.type = eventName;\n if (!e.stopPropagation)\n e.stopPropagation = stopPropagation;\n if (!e.preventDefault)\n e.preventDefault = preventDefault;\n listeners = listeners.slice();\n for (var i = 0; i < listeners.length; i++) {\n listeners[i](e, this);\n if (e.propagationStopped)\n break;\n }\n if (defaultHandler && !e.defaultPrevented)\n return defaultHandler(e, this);\n };\nEventEmitter._signal = function (eventName, e) {\n var listeners = (this._eventRegistry || {})[eventName];\n if (!listeners)\n return;\n listeners = listeners.slice();\n for (var i = 0; i < listeners.length; i++)\n listeners[i](e, this);\n};\nEventEmitter.once = function (eventName, callback) {\n var _self = this;\n this.on(eventName, function newCallback() {\n _self.off(eventName, newCallback);\n callback.apply(null, arguments);\n });\n if (!callback) {\n return new Promise(function (resolve) {\n callback = resolve;\n });\n }\n};\nEventEmitter.setDefaultHandler = function (eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n handlers = this._defaultHandlers = { _disabled_: {} };\n if (handlers[eventName]) {\n var old = handlers[eventName];\n var disabled = handlers._disabled_[eventName];\n if (!disabled)\n handlers._disabled_[eventName] = disabled = [];\n disabled.push(old);\n var i = disabled.indexOf(callback);\n if (i != -1)\n disabled.splice(i, 1);\n }\n handlers[eventName] = callback;\n};\nEventEmitter.removeDefaultHandler = function (eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n return;\n var disabled = handlers._disabled_[eventName];\n if (handlers[eventName] == callback) {\n if (disabled)\n this.setDefaultHandler(eventName, disabled.pop());\n }\n else if (disabled) {\n var i = disabled.indexOf(callback);\n if (i != -1)\n disabled.splice(i, 1);\n }\n};\nEventEmitter.on =\n EventEmitter.addEventListener = function (eventName, callback, capturing) {\n this._eventRegistry = this._eventRegistry || {};\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n listeners = this._eventRegistry[eventName] = [];\n if (listeners.indexOf(callback) == -1)\n listeners[capturing ? \"unshift\" : \"push\"](callback);\n return callback;\n };\nEventEmitter.off =\n EventEmitter.removeListener =\n EventEmitter.removeEventListener = function (eventName, callback) {\n this._eventRegistry = this._eventRegistry || {};\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n return;\n var index = listeners.indexOf(callback);\n if (index !== -1)\n listeners.splice(index, 1);\n };\nEventEmitter.removeAllListeners = function (eventName) {\n if (!eventName)\n this._eventRegistry = this._defaultHandlers = undefined;\n if (this._eventRegistry)\n this._eventRegistry[eventName] = undefined;\n if (this._defaultHandlers)\n this._defaultHandlers[eventName] = undefined;\n};\nexports.EventEmitter = EventEmitter;\n\n});\n\nace.define(\"ace/lib/report_error\",[\"require\",\"exports\",\"module\"], function(require, exports, module){exports.reportError = function reportError(msg, data) {\n var e = new Error(msg);\n e.data = data;\n if (typeof console == \"object\" && console.error)\n console.error(e);\n setTimeout(function () { throw e; });\n};\n\n});\n\nace.define(\"ace/lib/app_config\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\",\"ace/lib/report_error\"], function(require, exports, module){\"no use strict\";\nvar oop = require(\"./oop\");\nvar EventEmitter = require(\"./event_emitter\").EventEmitter;\nvar reportError = require(\"./report_error\").reportError;\nvar optionsProvider = {\n setOptions: function (optList) {\n Object.keys(optList).forEach(function (key) {\n this.setOption(key, optList[key]);\n }, this);\n },\n getOptions: function (optionNames) {\n var result = {};\n if (!optionNames) {\n var options = this.$options;\n optionNames = Object.keys(options).filter(function (key) {\n return !options[key].hidden;\n });\n }\n else if (!Array.isArray(optionNames)) {\n result = optionNames;\n optionNames = Object.keys(result);\n }\n optionNames.forEach(function (key) {\n result[key] = this.getOption(key);\n }, this);\n return result;\n },\n setOption: function (name, value) {\n if (this[\"$\" + name] === value)\n return;\n var opt = this.$options[name];\n if (!opt) {\n return warn('misspelled option \"' + name + '\"');\n }\n if (opt.forwardTo)\n return this[opt.forwardTo] && this[opt.forwardTo].setOption(name, value);\n if (!opt.handlesSet)\n this[\"$\" + name] = value;\n if (opt && opt.set)\n opt.set.call(this, value);\n },\n getOption: function (name) {\n var opt = this.$options[name];\n if (!opt) {\n return warn('misspelled option \"' + name + '\"');\n }\n if (opt.forwardTo)\n return this[opt.forwardTo] && this[opt.forwardTo].getOption(name);\n return opt && opt.get ? opt.get.call(this) : this[\"$\" + name];\n }\n};\nfunction warn(message) {\n if (typeof console != \"undefined\" && console.warn)\n console.warn.apply(console, arguments);\n}\nvar messages;\nvar AppConfig = /** @class */ (function () {\n function AppConfig() {\n this.$defaultOptions = {};\n }\n AppConfig.prototype.defineOptions = function (obj, path, options) {\n if (!obj.$options)\n this.$defaultOptions[path] = obj.$options = {};\n Object.keys(options).forEach(function (key) {\n var opt = options[key];\n if (typeof opt == \"string\")\n opt = { forwardTo: opt };\n opt.name || (opt.name = key);\n obj.$options[opt.name] = opt;\n if (\"initialValue\" in opt)\n obj[\"$\" + opt.name] = opt.initialValue;\n });\n oop.implement(obj, optionsProvider);\n return this;\n };\n AppConfig.prototype.resetOptions = function (obj) {\n Object.keys(obj.$options).forEach(function (key) {\n var opt = obj.$options[key];\n if (\"value\" in opt)\n obj.setOption(key, opt.value);\n });\n };\n AppConfig.prototype.setDefaultValue = function (path, name, value) {\n if (!path) {\n for (path in this.$defaultOptions)\n if (this.$defaultOptions[path][name])\n break;\n if (!this.$defaultOptions[path][name])\n return false;\n }\n var opts = this.$defaultOptions[path] || (this.$defaultOptions[path] = {});\n if (opts[name]) {\n if (opts.forwardTo)\n this.setDefaultValue(opts.forwardTo, name, value);\n else\n opts[name].value = value;\n }\n };\n AppConfig.prototype.setDefaultValues = function (path, optionHash) {\n Object.keys(optionHash).forEach(function (key) {\n this.setDefaultValue(path, key, optionHash[key]);\n }, this);\n };\n AppConfig.prototype.setMessages = function (value) {\n messages = value;\n };\n AppConfig.prototype.nls = function (string, params) {\n if (messages && !messages[string]) {\n warn(\"No message found for '\" + string + \"' in the provided messages, falling back to default English message.\");\n }\n var translated = messages && messages[string] || string;\n if (params) {\n translated = translated.replace(/\\$(\\$|[\\d]+)/g, function (_, name) {\n if (name == \"$\")\n return \"$\";\n return params[name];\n });\n }\n return translated;\n };\n return AppConfig;\n}());\nAppConfig.prototype.warn = warn;\nAppConfig.prototype.reportError = reportError;\noop.implement(AppConfig.prototype, EventEmitter);\nexports.AppConfig = AppConfig;\n\n});\n\nace.define(\"ace/theme/textmate-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \".ace-tm .ace_gutter {\\n background: #f0f0f0;\\n color: #333;\\n}\\n\\n.ace-tm .ace_print-margin {\\n width: 1px;\\n background: #e8e8e8;\\n}\\n\\n.ace-tm .ace_fold {\\n background-color: #6B72E6;\\n}\\n\\n.ace-tm {\\n background-color: #FFFFFF;\\n color: black;\\n}\\n\\n.ace-tm .ace_cursor {\\n color: black;\\n}\\n \\n.ace-tm .ace_invisible {\\n color: rgb(191, 191, 191);\\n}\\n\\n.ace-tm .ace_storage,\\n.ace-tm .ace_keyword {\\n color: blue;\\n}\\n\\n.ace-tm .ace_constant {\\n color: rgb(197, 6, 11);\\n}\\n\\n.ace-tm .ace_constant.ace_buildin {\\n color: rgb(88, 72, 246);\\n}\\n\\n.ace-tm .ace_constant.ace_language {\\n color: rgb(88, 92, 246);\\n}\\n\\n.ace-tm .ace_constant.ace_library {\\n color: rgb(6, 150, 14);\\n}\\n\\n.ace-tm .ace_invalid {\\n background-color: rgba(255, 0, 0, 0.1);\\n color: red;\\n}\\n\\n.ace-tm .ace_support.ace_function {\\n color: rgb(60, 76, 114);\\n}\\n\\n.ace-tm .ace_support.ace_constant {\\n color: rgb(6, 150, 14);\\n}\\n\\n.ace-tm .ace_support.ace_type,\\n.ace-tm .ace_support.ace_class {\\n color: rgb(109, 121, 222);\\n}\\n\\n.ace-tm .ace_keyword.ace_operator {\\n color: rgb(104, 118, 135);\\n}\\n\\n.ace-tm .ace_string {\\n color: rgb(3, 106, 7);\\n}\\n\\n.ace-tm .ace_comment {\\n color: rgb(76, 136, 107);\\n}\\n\\n.ace-tm .ace_comment.ace_doc {\\n color: rgb(0, 102, 255);\\n}\\n\\n.ace-tm .ace_comment.ace_doc.ace_tag {\\n color: rgb(128, 159, 191);\\n}\\n\\n.ace-tm .ace_constant.ace_numeric {\\n color: rgb(0, 0, 205);\\n}\\n\\n.ace-tm .ace_variable {\\n color: rgb(49, 132, 149);\\n}\\n\\n.ace-tm .ace_xml-pe {\\n color: rgb(104, 104, 91);\\n}\\n\\n.ace-tm .ace_entity.ace_name.ace_function {\\n color: #0000A2;\\n}\\n\\n\\n.ace-tm .ace_heading {\\n color: rgb(12, 7, 255);\\n}\\n\\n.ace-tm .ace_list {\\n color:rgb(185, 6, 144);\\n}\\n\\n.ace-tm .ace_meta.ace_tag {\\n color:rgb(0, 22, 142);\\n}\\n\\n.ace-tm .ace_string.ace_regex {\\n color: rgb(255, 0, 0)\\n}\\n\\n.ace-tm .ace_marker-layer .ace_selection {\\n background: rgb(181, 213, 255);\\n}\\n.ace-tm.ace_multiselect .ace_selection.ace_start {\\n box-shadow: 0 0 3px 0px white;\\n}\\n.ace-tm .ace_marker-layer .ace_step {\\n background: rgb(252, 255, 0);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_stack {\\n background: rgb(164, 229, 101);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_bracket {\\n margin: -1px 0 0 -1px;\\n border: 1px solid rgb(192, 192, 192);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_active-line {\\n background: rgba(0, 0, 0, 0.07);\\n}\\n\\n.ace-tm .ace_gutter-active-line {\\n background-color : #dcdcdc;\\n}\\n\\n.ace-tm .ace_marker-layer .ace_selected-word {\\n background: rgb(250, 250, 255);\\n border: 1px solid rgb(200, 200, 250);\\n}\\n\\n.ace-tm .ace_indent-guide {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\n}\\n\\n.ace-tm .ace_indent-guide-active {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC\\\") right repeat-y;\\n}\\n\";\n\n});\n\nace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/theme/textmate-css\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nexports.isDark = false;\nexports.cssClass = \"ace-tm\";\nexports.cssText = require(\"./textmate-css\");\nexports.$id = \"ace/theme/textmate\";\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass, false);\n\n});\n\nace.define(\"ace/config\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/net\",\"ace/lib/dom\",\"ace/lib/app_config\",\"ace/theme/textmate\"], function(require, exports, module){\"no use strict\";\nvar lang = require(\"./lib/lang\");\nvar net = require(\"./lib/net\");\nvar dom = require(\"./lib/dom\");\nvar AppConfig = require(\"./lib/app_config\").AppConfig;\nmodule.exports = exports = new AppConfig();\nvar options = {\n packaged: false,\n workerPath: null,\n modePath: null,\n themePath: null,\n basePath: \"\",\n suffix: \".js\",\n $moduleUrls: {},\n loadWorkerFromBlob: true,\n sharedPopups: false,\n useStrictCSP: null\n};\nexports.get = function (key) {\n if (!options.hasOwnProperty(key))\n throw new Error(\"Unknown config key: \" + key);\n return options[key];\n};\nexports.set = function (key, value) {\n if (options.hasOwnProperty(key))\n options[key] = value;\n else if (this.setDefaultValue(\"\", key, value) == false)\n throw new Error(\"Unknown config key: \" + key);\n if (key == \"useStrictCSP\")\n dom.useStrictCSP(value);\n};\nexports.all = function () {\n return lang.copyObject(options);\n};\nexports.$modes = {};\nexports.moduleUrl = function (name, component) {\n if (options.$moduleUrls[name])\n return options.$moduleUrls[name];\n var parts = name.split(\"/\");\n component = component || parts[parts.length - 2] || \"\";\n var sep = component == \"snippets\" ? \"/\" : \"-\";\n var base = parts[parts.length - 1];\n if (component == \"worker\" && sep == \"-\") {\n var re = new RegExp(\"^\" + component + \"[\\\\-_]|[\\\\-_]\" + component + \"$\", \"g\");\n base = base.replace(re, \"\");\n }\n if ((!base || base == component) && parts.length > 1)\n base = parts[parts.length - 2];\n var path = options[component + \"Path\"];\n if (path == null) {\n path = options.basePath;\n }\n else if (sep == \"/\") {\n component = sep = \"\";\n }\n if (path && path.slice(-1) != \"/\")\n path += \"/\";\n return path + component + sep + base + this.get(\"suffix\");\n};\nexports.setModuleUrl = function (name, subst) {\n return options.$moduleUrls[name] = subst;\n};\nvar loader = function (moduleName, cb) {\n if (moduleName === \"ace/theme/textmate\" || moduleName === \"./theme/textmate\")\n return cb(null, require(\"./theme/textmate\"));\n if (customLoader)\n return customLoader(moduleName, cb);\n console.error(\"loader is not configured\");\n};\nvar customLoader;\nexports.setLoader = function (cb) {\n customLoader = cb;\n};\nexports.dynamicModules = Object.create(null);\nexports.$loading = {};\nexports.$loaded = {};\nexports.loadModule = function (moduleName, onLoad) {\n var loadedModule, moduleType;\n if (Array.isArray(moduleName)) {\n moduleType = moduleName[0];\n moduleName = moduleName[1];\n }\n var load = function (module) {\n if (module && !exports.$loading[moduleName])\n return onLoad && onLoad(module);\n if (!exports.$loading[moduleName])\n exports.$loading[moduleName] = [];\n exports.$loading[moduleName].push(onLoad);\n if (exports.$loading[moduleName].length > 1)\n return;\n var afterLoad = function () {\n loader(moduleName, function (err, module) {\n if (module)\n exports.$loaded[moduleName] = module;\n exports._emit(\"load.module\", { name: moduleName, module: module });\n var listeners = exports.$loading[moduleName];\n exports.$loading[moduleName] = null;\n listeners.forEach(function (onLoad) {\n onLoad && onLoad(module);\n });\n });\n };\n if (!exports.get(\"packaged\"))\n return afterLoad();\n net.loadScript(exports.moduleUrl(moduleName, moduleType), afterLoad);\n reportErrorIfPathIsNotConfigured();\n };\n if (exports.dynamicModules[moduleName]) {\n exports.dynamicModules[moduleName]().then(function (module) {\n if (module.default) {\n load(module.default);\n }\n else {\n load(module);\n }\n });\n }\n else {\n try {\n loadedModule = this.$require(moduleName);\n }\n catch (e) { }\n load(loadedModule || exports.$loaded[moduleName]);\n }\n};\nexports.$require = function (moduleName) {\n if (typeof module.require == \"function\") {\n var req = \"require\";\n return module[req](moduleName);\n }\n};\nexports.setModuleLoader = function (moduleName, onLoad) {\n exports.dynamicModules[moduleName] = onLoad;\n};\nvar reportErrorIfPathIsNotConfigured = function () {\n if (!options.basePath && !options.workerPath\n && !options.modePath && !options.themePath\n && !Object.keys(options.$moduleUrls).length) {\n console.error(\"Unable to infer path to ace from script src,\", \"use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes\", \"or with webpack use ace/webpack-resolver\");\n reportErrorIfPathIsNotConfigured = function () { };\n }\n};\nexports.version = \"1.32.0\";\n\n});\n\nace.define(\"ace/loader_build\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nrequire(\"./lib/fixoldbrowsers\");\nvar config = require(\"./config\");\nconfig.setLoader(function(moduleName, cb) {\n require([moduleName], function(module) {\n cb(null, module);\n });\n});\n\nvar global = (function() {\n return this || typeof window != \"undefined\" && window;\n})();\n\nmodule.exports = function(ace) {\n config.init = init;\n config.$require = require;\n ace.require = require;\n\n if (typeof define === \"function\")\n ace.define = define;\n};\ninit(true);function init(packaged) {\n\n if (!global || !global.document)\n return;\n \n config.set(\"packaged\", packaged || require.packaged || module.packaged || (global.define && define.packaged));\n\n var scriptOptions = {};\n var scriptUrl = \"\";\n var currentScript = (document.currentScript || document._currentScript ); // native or polyfill\n var currentDocument = currentScript && currentScript.ownerDocument || document;\n \n if (currentScript && currentScript.src) {\n scriptUrl = currentScript.src.split(/[?#]/)[0].split(\"/\").slice(0, -1).join(\"/\") || \"\";\n }\n \n var scripts = currentDocument.getElementsByTagName(\"script\");\n for (var i=0; i [\" + this.end.row + \"/\" + this.end.column + \"]\");\n };\n Range.prototype.contains = function (row, column) {\n return this.compare(row, column) == 0;\n };\n Range.prototype.compareRange = function (range) {\n var cmp, end = range.end, start = range.start;\n cmp = this.compare(end.row, end.column);\n if (cmp == 1) {\n cmp = this.compare(start.row, start.column);\n if (cmp == 1) {\n return 2;\n }\n else if (cmp == 0) {\n return 1;\n }\n else {\n return 0;\n }\n }\n else if (cmp == -1) {\n return -2;\n }\n else {\n cmp = this.compare(start.row, start.column);\n if (cmp == -1) {\n return -1;\n }\n else if (cmp == 1) {\n return 42;\n }\n else {\n return 0;\n }\n }\n };\n Range.prototype.comparePoint = function (p) {\n return this.compare(p.row, p.column);\n };\n Range.prototype.containsRange = function (range) {\n return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n };\n Range.prototype.intersects = function (range) {\n var cmp = this.compareRange(range);\n return (cmp == -1 || cmp == 0 || cmp == 1);\n };\n Range.prototype.isEnd = function (row, column) {\n return this.end.row == row && this.end.column == column;\n };\n Range.prototype.isStart = function (row, column) {\n return this.start.row == row && this.start.column == column;\n };\n Range.prototype.setStart = function (row, column) {\n if (typeof row == \"object\") {\n this.start.column = row.column;\n this.start.row = row.row;\n }\n else {\n this.start.row = row;\n this.start.column = column;\n }\n };\n Range.prototype.setEnd = function (row, column) {\n if (typeof row == \"object\") {\n this.end.column = row.column;\n this.end.row = row.row;\n }\n else {\n this.end.row = row;\n this.end.column = column;\n }\n };\n Range.prototype.inside = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column) || this.isStart(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.insideStart = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.insideEnd = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isStart(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.compare = function (row, column) {\n if (!this.isMultiLine()) {\n if (row === this.start.row) {\n return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n }\n }\n if (row < this.start.row)\n return -1;\n if (row > this.end.row)\n return 1;\n if (this.start.row === row)\n return column >= this.start.column ? 0 : -1;\n if (this.end.row === row)\n return column <= this.end.column ? 0 : 1;\n return 0;\n };\n Range.prototype.compareStart = function (row, column) {\n if (this.start.row == row && this.start.column == column) {\n return -1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.compareEnd = function (row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.compareInside = function (row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n }\n else if (this.start.row == row && this.start.column == column) {\n return -1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.clipRows = function (firstRow, lastRow) {\n if (this.end.row > lastRow)\n var end = { row: lastRow + 1, column: 0 };\n else if (this.end.row < firstRow)\n var end = { row: firstRow, column: 0 };\n if (this.start.row > lastRow)\n var start = { row: lastRow + 1, column: 0 };\n else if (this.start.row < firstRow)\n var start = { row: firstRow, column: 0 };\n return Range.fromPoints(start || this.start, end || this.end);\n };\n Range.prototype.extend = function (row, column) {\n var cmp = this.compare(row, column);\n if (cmp == 0)\n return this;\n else if (cmp == -1)\n var start = { row: row, column: column };\n else\n var end = { row: row, column: column };\n return Range.fromPoints(start || this.start, end || this.end);\n };\n Range.prototype.isEmpty = function () {\n return (this.start.row === this.end.row && this.start.column === this.end.column);\n };\n Range.prototype.isMultiLine = function () {\n return (this.start.row !== this.end.row);\n };\n Range.prototype.clone = function () {\n return Range.fromPoints(this.start, this.end);\n };\n Range.prototype.collapseRows = function () {\n if (this.end.column == 0)\n return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row - 1), 0);\n else\n return new Range(this.start.row, 0, this.end.row, 0);\n };\n Range.prototype.toScreenRange = function (session) {\n var screenPosStart = session.documentToScreenPosition(this.start);\n var screenPosEnd = session.documentToScreenPosition(this.end);\n return new Range(screenPosStart.row, screenPosStart.column, screenPosEnd.row, screenPosEnd.column);\n };\n Range.prototype.moveBy = function (row, column) {\n this.start.row += row;\n this.start.column += column;\n this.end.row += row;\n this.end.column += column;\n };\n return Range;\n}());\nRange.fromPoints = function (start, end) {\n return new Range(start.row, start.column, end.row, end.column);\n};\nRange.comparePoints = comparePoints;\nRange.comparePoints = function (p1, p2) {\n return p1.row - p2.row || p1.column - p2.column;\n};\nexports.Range = Range;\n\n});\n\nace.define(\"ace/lib/keys\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\"], function(require, exports, module){/*! @license\n==========================================================================\nSproutCore -- JavaScript Application Framework\ncopyright 2006-2009, Sprout Systems Inc., Apple Inc. and contributors.\n\nPermission is hereby granted, free of charge, to any person obtaining a\ncopy of this software and associated documentation files (the \"Software\"),\nto deal in the Software without restriction, including without limitation\nthe rights to use, copy, modify, merge, publish, distribute, sublicense,\nand/or sell copies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\nDEALINGS IN THE SOFTWARE.\n\nSproutCore and the SproutCore logo are trademarks of Sprout Systems, Inc.\n\nFor more information about SproutCore, visit http://www.sproutcore.com\n\n\n==========================================================================\n@license */\n\"use strict\";\nvar oop = require(\"./oop\");\nvar Keys = (function () {\n var ret = {\n MODIFIER_KEYS: {\n 16: 'Shift', 17: 'Ctrl', 18: 'Alt', 224: 'Meta',\n 91: 'MetaLeft', 92: 'MetaRight', 93: 'ContextMenu'\n },\n KEY_MODS: {\n \"ctrl\": 1, \"alt\": 2, \"option\": 2, \"shift\": 4,\n \"super\": 8, \"meta\": 8, \"command\": 8, \"cmd\": 8,\n \"control\": 1\n },\n FUNCTION_KEYS: {\n 8: \"Backspace\",\n 9: \"Tab\",\n 13: \"Return\",\n 19: \"Pause\",\n 27: \"Esc\",\n 32: \"Space\",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"Left\",\n 38: \"Up\",\n 39: \"Right\",\n 40: \"Down\",\n 44: \"Print\",\n 45: \"Insert\",\n 46: \"Delete\",\n 96: \"Numpad0\",\n 97: \"Numpad1\",\n 98: \"Numpad2\",\n 99: \"Numpad3\",\n 100: \"Numpad4\",\n 101: \"Numpad5\",\n 102: \"Numpad6\",\n 103: \"Numpad7\",\n 104: \"Numpad8\",\n 105: \"Numpad9\",\n '-13': \"NumpadEnter\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"Numlock\",\n 145: \"Scrolllock\"\n },\n PRINTABLE_KEYS: {\n 32: ' ', 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5',\n 54: '6', 55: '7', 56: '8', 57: '9', 59: ';', 61: '=', 65: 'a',\n 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h',\n 73: 'i', 74: 'j', 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o',\n 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't', 85: 'u', 86: 'v',\n 87: 'w', 88: 'x', 89: 'y', 90: 'z', 107: '+', 109: '-', 110: '.',\n 186: ';', 187: '=', 188: ',', 189: '-', 190: '.', 191: '/', 192: '`',\n 219: '[', 220: '\\\\', 221: ']', 222: \"'\", 111: '/', 106: '*'\n }\n };\n ret.PRINTABLE_KEYS[173] = '-';\n var name, i;\n for (i in ret.FUNCTION_KEYS) {\n name = ret.FUNCTION_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n for (i in ret.PRINTABLE_KEYS) {\n name = ret.PRINTABLE_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n oop.mixin(ret, ret.MODIFIER_KEYS);\n oop.mixin(ret, ret.PRINTABLE_KEYS);\n oop.mixin(ret, ret.FUNCTION_KEYS);\n ret.enter = ret[\"return\"];\n ret.escape = ret.esc;\n ret.del = ret[\"delete\"];\n (function () {\n var mods = [\"cmd\", \"ctrl\", \"alt\", \"shift\"];\n for (var i = Math.pow(2, mods.length); i--;) {\n ret.KEY_MODS[i] = mods.filter(function (x) {\n return i & ret.KEY_MODS[x];\n }).join(\"-\") + \"-\";\n }\n })();\n ret.KEY_MODS[0] = \"\";\n ret.KEY_MODS[-1] = \"input-\";\n return ret;\n})();\noop.mixin(exports, Keys);\nexports.default = exports;\nexports.keyCodeToString = function (keyCode) {\n var keyString = Keys[keyCode];\n if (typeof keyString != \"string\")\n keyString = String.fromCharCode(keyCode);\n return keyString.toLowerCase();\n};\n\n});\n\nace.define(\"ace/lib/event\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar keys = require(\"./keys\");\nvar useragent = require(\"./useragent\");\nvar pressedKeys = null;\nvar ts = 0;\nvar activeListenerOptions;\nfunction detectListenerOptionsSupport() {\n activeListenerOptions = false;\n try {\n document.createComment(\"\").addEventListener(\"test\", function () { }, {\n get passive() {\n activeListenerOptions = { passive: false };\n }\n });\n }\n catch (e) { }\n}\nfunction getListenerOptions() {\n if (activeListenerOptions == undefined)\n detectListenerOptionsSupport();\n return activeListenerOptions;\n}\nfunction EventListener(elem, type, callback) {\n this.elem = elem;\n this.type = type;\n this.callback = callback;\n}\nEventListener.prototype.destroy = function () {\n removeListener(this.elem, this.type, this.callback);\n this.elem = this.type = this.callback = undefined;\n};\nvar addListener = exports.addListener = function (elem, type, callback, destroyer) {\n elem.addEventListener(type, callback, getListenerOptions());\n if (destroyer)\n destroyer.$toDestroy.push(new EventListener(elem, type, callback));\n};\nvar removeListener = exports.removeListener = function (elem, type, callback) {\n elem.removeEventListener(type, callback, getListenerOptions());\n};\nexports.stopEvent = function (e) {\n exports.stopPropagation(e);\n exports.preventDefault(e);\n return false;\n};\nexports.stopPropagation = function (e) {\n if (e.stopPropagation)\n e.stopPropagation();\n};\nexports.preventDefault = function (e) {\n if (e.preventDefault)\n e.preventDefault();\n};\nexports.getButton = function (e) {\n if (e.type == \"dblclick\")\n return 0;\n if (e.type == \"contextmenu\" || (useragent.isMac && (e.ctrlKey && !e.altKey && !e.shiftKey)))\n return 2;\n return e.button;\n};\nexports.capture = function (el, eventHandler, releaseCaptureHandler) {\n var ownerDocument = el && el.ownerDocument || document;\n function onMouseUp(e) {\n eventHandler && eventHandler(e);\n releaseCaptureHandler && releaseCaptureHandler(e);\n removeListener(ownerDocument, \"mousemove\", eventHandler);\n removeListener(ownerDocument, \"mouseup\", onMouseUp);\n removeListener(ownerDocument, \"dragstart\", onMouseUp);\n }\n addListener(ownerDocument, \"mousemove\", eventHandler);\n addListener(ownerDocument, \"mouseup\", onMouseUp);\n addListener(ownerDocument, \"dragstart\", onMouseUp);\n return onMouseUp;\n};\nexports.addMouseWheelListener = function (el, callback, destroyer) {\n addListener(el, \"wheel\", function (e) {\n var factor = 0.15;\n var deltaX = e.deltaX || 0;\n var deltaY = e.deltaY || 0;\n switch (e.deltaMode) {\n case e.DOM_DELTA_PIXEL:\n e.wheelX = deltaX * factor;\n e.wheelY = deltaY * factor;\n break;\n case e.DOM_DELTA_LINE:\n var linePixels = 15;\n e.wheelX = deltaX * linePixels;\n e.wheelY = deltaY * linePixels;\n break;\n case e.DOM_DELTA_PAGE:\n var pagePixels = 150;\n e.wheelX = deltaX * pagePixels;\n e.wheelY = deltaY * pagePixels;\n break;\n }\n callback(e);\n }, destroyer);\n};\nexports.addMultiMouseDownListener = function (elements, timeouts, eventHandler, callbackName, destroyer) {\n var clicks = 0;\n var startX, startY, timer;\n var eventNames = {\n 2: \"dblclick\",\n 3: \"tripleclick\",\n 4: \"quadclick\"\n };\n function onMousedown(e) {\n if (exports.getButton(e) !== 0) {\n clicks = 0;\n }\n else if (e.detail > 1) {\n clicks++;\n if (clicks > 4)\n clicks = 1;\n }\n else {\n clicks = 1;\n }\n if (useragent.isIE) {\n var isNewClick = Math.abs(e.clientX - startX) > 5 || Math.abs(e.clientY - startY) > 5;\n if (!timer || isNewClick)\n clicks = 1;\n if (timer)\n clearTimeout(timer);\n timer = setTimeout(function () { timer = null; }, timeouts[clicks - 1] || 600);\n if (clicks == 1) {\n startX = e.clientX;\n startY = e.clientY;\n }\n }\n e._clicks = clicks;\n eventHandler[callbackName](\"mousedown\", e);\n if (clicks > 4)\n clicks = 0;\n else if (clicks > 1)\n return eventHandler[callbackName](eventNames[clicks], e);\n }\n if (!Array.isArray(elements))\n elements = [elements];\n elements.forEach(function (el) {\n addListener(el, \"mousedown\", onMousedown, destroyer);\n });\n};\nvar getModifierHash = function (e) {\n return 0 | (e.ctrlKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.metaKey ? 8 : 0);\n};\nexports.getModifierString = function (e) {\n return keys.KEY_MODS[getModifierHash(e)];\n};\nfunction normalizeCommandKeys(callback, e, keyCode) {\n var hashId = getModifierHash(e);\n if (!useragent.isMac && pressedKeys) {\n if (e.getModifierState && (e.getModifierState(\"OS\") || e.getModifierState(\"Win\")))\n hashId |= 8;\n if (pressedKeys.altGr) {\n if ((3 & hashId) != 3)\n pressedKeys.altGr = 0;\n else\n return;\n }\n if (keyCode === 18 || keyCode === 17) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (keyCode === 17 && location === 1) {\n if (pressedKeys[keyCode] == 1)\n ts = e.timeStamp;\n }\n else if (keyCode === 18 && hashId === 3 && location === 2) {\n var dt = e.timeStamp - ts;\n if (dt < 50)\n pressedKeys.altGr = true;\n }\n }\n }\n if (keyCode in keys.MODIFIER_KEYS) {\n keyCode = -1;\n }\n if (!hashId && keyCode === 13) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (location === 3) {\n callback(e, hashId, -keyCode);\n if (e.defaultPrevented)\n return;\n }\n }\n if (useragent.isChromeOS && hashId & 8) {\n callback(e, hashId, keyCode);\n if (e.defaultPrevented)\n return;\n else\n hashId &= ~8;\n }\n if (!hashId && !(keyCode in keys.FUNCTION_KEYS) && !(keyCode in keys.PRINTABLE_KEYS)) {\n return false;\n }\n return callback(e, hashId, keyCode);\n}\nexports.addCommandKeyListener = function (el, callback, destroyer) {\n if (useragent.isOldGecko || (useragent.isOpera && !(\"KeyboardEvent\" in window))) {\n var lastKeyDownKeyCode = null;\n addListener(el, \"keydown\", function (e) {\n lastKeyDownKeyCode = e.keyCode;\n }, destroyer);\n addListener(el, \"keypress\", function (e) {\n return normalizeCommandKeys(callback, e, lastKeyDownKeyCode);\n }, destroyer);\n }\n else {\n var lastDefaultPrevented = null;\n addListener(el, \"keydown\", function (e) {\n pressedKeys[e.keyCode] = (pressedKeys[e.keyCode] || 0) + 1;\n var result = normalizeCommandKeys(callback, e, e.keyCode);\n lastDefaultPrevented = e.defaultPrevented;\n return result;\n }, destroyer);\n addListener(el, \"keypress\", function (e) {\n if (lastDefaultPrevented && (e.ctrlKey || e.altKey || e.shiftKey || e.metaKey)) {\n exports.stopEvent(e);\n lastDefaultPrevented = null;\n }\n }, destroyer);\n addListener(el, \"keyup\", function (e) {\n pressedKeys[e.keyCode] = null;\n }, destroyer);\n if (!pressedKeys) {\n resetPressedKeys();\n addListener(window, \"focus\", resetPressedKeys);\n }\n }\n};\nfunction resetPressedKeys() {\n pressedKeys = Object.create(null);\n}\nif (typeof window == \"object\" && window.postMessage && !useragent.isOldIE) {\n var postMessageId = 1;\n exports.nextTick = function (callback, win) {\n win = win || window;\n var messageName = \"zero-timeout-message-\" + (postMessageId++);\n var listener = function (e) {\n if (e.data == messageName) {\n exports.stopPropagation(e);\n removeListener(win, \"message\", listener);\n callback();\n }\n };\n addListener(win, \"message\", listener);\n win.postMessage(messageName, \"*\");\n };\n}\nexports.$idleBlocked = false;\nexports.onIdle = function (cb, timeout) {\n return setTimeout(function handler() {\n if (!exports.$idleBlocked) {\n cb();\n }\n else {\n setTimeout(handler, 100);\n }\n }, timeout);\n};\nexports.$idleBlockId = null;\nexports.blockIdle = function (delay) {\n if (exports.$idleBlockId)\n clearTimeout(exports.$idleBlockId);\n exports.$idleBlocked = true;\n exports.$idleBlockId = setTimeout(function () {\n exports.$idleBlocked = false;\n }, delay || 100);\n};\nexports.nextFrame = typeof window == \"object\" && (window.requestAnimationFrame\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame\n || window.msRequestAnimationFrame\n || window.oRequestAnimationFrame);\nif (exports.nextFrame)\n exports.nextFrame = exports.nextFrame.bind(window);\nelse\n exports.nextFrame = function (callback) {\n setTimeout(callback, 17);\n };\n\n});\n\nace.define(\"ace/clipboard\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar $cancelT;\nmodule.exports = {\n lineMode: false,\n pasteCancelled: function () {\n if ($cancelT && $cancelT > Date.now() - 50)\n return true;\n return $cancelT = false;\n },\n cancel: function () {\n $cancelT = Date.now();\n }\n};\n\n});\n\nace.define(\"ace/keyboard/textinput\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/config\",\"ace/lib/useragent\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/clipboard\",\"ace/lib/keys\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar nls = require(\"../config\").nls;\nvar useragent = require(\"../lib/useragent\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar clipboard = require(\"../clipboard\");\nvar BROKEN_SETDATA = useragent.isChrome < 18;\nvar USE_IE_MIME_TYPE = useragent.isIE;\nvar HAS_FOCUS_ARGS = useragent.isChrome > 63;\nvar MAX_LINE_LENGTH = 400;\nvar KEYS = require(\"../lib/keys\");\nvar MODS = KEYS.KEY_MODS;\nvar isIOS = useragent.isIOS;\nvar valueResetRegex = isIOS ? /\\s/ : /\\n/;\nvar isMobile = useragent.isMobile;\nvar TextInput = function (parentNode, host) {\n var text = dom.createElement(\"textarea\");\n text.className = \"ace_text-input\";\n text.setAttribute(\"wrap\", \"off\");\n text.setAttribute(\"autocorrect\", \"off\");\n text.setAttribute(\"autocapitalize\", \"off\");\n text.setAttribute(\"spellcheck\", false);\n text.style.opacity = \"0\";\n parentNode.insertBefore(text, parentNode.firstChild);\n var copied = false;\n var pasted = false;\n var inComposition = false;\n var sendingText = false;\n var tempStyle = '';\n if (!isMobile)\n text.style.fontSize = \"1px\";\n var commandMode = false;\n var ignoreFocusEvents = false;\n var lastValue = \"\";\n var lastSelectionStart = 0;\n var lastSelectionEnd = 0;\n var lastRestoreEnd = 0;\n var rowStart = Number.MAX_SAFE_INTEGER;\n var rowEnd = Number.MIN_SAFE_INTEGER;\n var numberOfExtraLines = 0;\n try {\n var isFocused = document.activeElement === text;\n }\n catch (e) { }\n this.setNumberOfExtraLines = function (number) {\n rowStart = Number.MAX_SAFE_INTEGER;\n rowEnd = Number.MIN_SAFE_INTEGER;\n if (number < 0) {\n numberOfExtraLines = 0;\n return;\n }\n numberOfExtraLines = number;\n };\n this.setAriaOptions = function (options) {\n if (options.activeDescendant) {\n text.setAttribute(\"aria-haspopup\", \"true\");\n text.setAttribute(\"aria-autocomplete\", options.inline ? \"both\" : \"list\");\n text.setAttribute(\"aria-activedescendant\", options.activeDescendant);\n }\n else {\n text.setAttribute(\"aria-haspopup\", \"false\");\n text.setAttribute(\"aria-autocomplete\", \"both\");\n text.removeAttribute(\"aria-activedescendant\");\n }\n if (options.role) {\n text.setAttribute(\"role\", options.role);\n }\n if (options.setLabel) {\n text.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n if (host.session) {\n var row = host.session.selection.cursor.row;\n text.setAttribute(\"aria-label\", nls(\"Cursor at row $0\", [row + 1]));\n }\n }\n };\n this.setAriaOptions({ role: \"textbox\" });\n event.addListener(text, \"blur\", function (e) {\n if (ignoreFocusEvents)\n return;\n host.onBlur(e);\n isFocused = false;\n }, host);\n event.addListener(text, \"focus\", function (e) {\n if (ignoreFocusEvents)\n return;\n isFocused = true;\n if (useragent.isEdge) {\n try {\n if (!document.hasFocus())\n return;\n }\n catch (e) { }\n }\n host.onFocus(e);\n if (useragent.isEdge)\n setTimeout(resetSelection);\n else\n resetSelection();\n }, host);\n this.$focusScroll = false;\n this.focus = function () {\n this.setAriaOptions({\n setLabel: host.renderer.enableKeyboardAccessibility\n });\n if (tempStyle || HAS_FOCUS_ARGS || this.$focusScroll == \"browser\")\n return text.focus({ preventScroll: true });\n var top = text.style.top;\n text.style.position = \"fixed\";\n text.style.top = \"0px\";\n try {\n var isTransformed = text.getBoundingClientRect().top != 0;\n }\n catch (e) {\n return;\n }\n var ancestors = [];\n if (isTransformed) {\n var t = text.parentElement;\n while (t && t.nodeType == 1) {\n ancestors.push(t);\n t.setAttribute(\"ace_nocontext\", true);\n if (!t.parentElement && t.getRootNode)\n t = t.getRootNode().host;\n else\n t = t.parentElement;\n }\n }\n text.focus({ preventScroll: true });\n if (isTransformed) {\n ancestors.forEach(function (p) {\n p.removeAttribute(\"ace_nocontext\");\n });\n }\n setTimeout(function () {\n text.style.position = \"\";\n if (text.style.top == \"0px\")\n text.style.top = top;\n }, 0);\n };\n this.blur = function () {\n text.blur();\n };\n this.isFocused = function () {\n return isFocused;\n };\n host.on(\"beforeEndOperation\", function () {\n var curOp = host.curOp;\n var commandName = curOp && curOp.command && curOp.command.name;\n if (commandName == \"insertstring\")\n return;\n var isUserAction = commandName && (curOp.docChanged || curOp.selectionChanged);\n if (inComposition && isUserAction) {\n lastValue = text.value = \"\";\n onCompositionEnd();\n }\n resetSelection();\n });\n var positionToSelection = function (row, column) {\n var selection = column;\n for (var i = 1; i <= row - rowStart && i < 2 * numberOfExtraLines + 1; i++) {\n selection += host.session.getLine(row - i).length + 1;\n }\n return selection;\n };\n var resetSelection = isIOS\n ? function (value) {\n if (!isFocused || (copied && !value) || sendingText)\n return;\n if (!value)\n value = \"\";\n var newValue = \"\\n ab\" + value + \"cde fg\\n\";\n if (newValue != text.value)\n text.value = lastValue = newValue;\n var selectionStart = 4;\n var selectionEnd = 4 + (value.length || (host.selection.isEmpty() ? 0 : 1));\n if (lastSelectionStart != selectionStart || lastSelectionEnd != selectionEnd) {\n text.setSelectionRange(selectionStart, selectionEnd);\n }\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n }\n : function () {\n if (inComposition || sendingText)\n return;\n if (!isFocused && !afterContextMenu)\n return;\n inComposition = true;\n var selectionStart = 0;\n var selectionEnd = 0;\n var line = \"\";\n if (host.session) {\n var selection = host.selection;\n var range = selection.getRange();\n var row = selection.cursor.row;\n if (row === rowEnd + 1) {\n rowStart = rowEnd + 1;\n rowEnd = rowStart + 2 * numberOfExtraLines;\n }\n else if (row === rowStart - 1) {\n rowEnd = rowStart - 1;\n rowStart = rowEnd - 2 * numberOfExtraLines;\n }\n else if (row < rowStart - 1 || row > rowEnd + 1) {\n rowStart = row > numberOfExtraLines ? row - numberOfExtraLines : 0;\n rowEnd = row > numberOfExtraLines ? row + numberOfExtraLines : 2 * numberOfExtraLines;\n }\n var lines = [];\n for (var i = rowStart; i <= rowEnd; i++) {\n lines.push(host.session.getLine(i));\n }\n line = lines.join('\\n');\n selectionStart = positionToSelection(range.start.row, range.start.column);\n selectionEnd = positionToSelection(range.end.row, range.end.column);\n if (range.start.row < rowStart) {\n var prevLine = host.session.getLine(rowStart - 1);\n selectionStart = range.start.row < rowStart - 1 ? 0 : selectionStart;\n selectionEnd += prevLine.length + 1;\n line = prevLine + \"\\n\" + line;\n }\n else if (range.end.row > rowEnd) {\n var nextLine = host.session.getLine(rowEnd + 1);\n selectionEnd = range.end.row > rowEnd + 1 ? nextLine.length : range.end.column;\n selectionEnd += line.length + 1;\n line = line + \"\\n\" + nextLine;\n }\n else if (isMobile && row > 0) {\n line = \"\\n\" + line;\n selectionEnd += 1;\n selectionStart += 1;\n }\n if (line.length > MAX_LINE_LENGTH) {\n if (selectionStart < MAX_LINE_LENGTH && selectionEnd < MAX_LINE_LENGTH) {\n line = line.slice(0, MAX_LINE_LENGTH);\n }\n else {\n line = \"\\n\";\n if (selectionStart == selectionEnd) {\n selectionStart = selectionEnd = 0;\n }\n else {\n selectionStart = 0;\n selectionEnd = 1;\n }\n }\n }\n var newValue = line + \"\\n\\n\";\n if (newValue != lastValue) {\n text.value = lastValue = newValue;\n lastSelectionStart = lastSelectionEnd = newValue.length;\n }\n }\n if (afterContextMenu) {\n lastSelectionStart = text.selectionStart;\n lastSelectionEnd = text.selectionEnd;\n }\n if (lastSelectionEnd != selectionEnd\n || lastSelectionStart != selectionStart\n || text.selectionEnd != lastSelectionEnd // on ie edge selectionEnd changes silently after the initialization\n ) {\n try {\n text.setSelectionRange(selectionStart, selectionEnd);\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n }\n catch (e) { }\n }\n inComposition = false;\n };\n this.resetSelection = resetSelection;\n if (isFocused)\n host.onFocus();\n var isAllSelected = function (text) {\n return text.selectionStart === 0 && text.selectionEnd >= lastValue.length\n && text.value === lastValue && lastValue\n && text.selectionEnd !== lastSelectionEnd;\n };\n var onSelect = function (e) {\n if (inComposition)\n return;\n if (copied) {\n copied = false;\n }\n else if (isAllSelected(text)) {\n host.selectAll();\n resetSelection();\n }\n else if (isMobile && text.selectionStart != lastSelectionStart) {\n resetSelection();\n }\n };\n var inputHandler = null;\n this.setInputHandler = function (cb) { inputHandler = cb; };\n this.getInputHandler = function () { return inputHandler; };\n var afterContextMenu = false;\n var sendText = function (value, fromInput) {\n if (afterContextMenu)\n afterContextMenu = false;\n if (pasted) {\n resetSelection();\n if (value)\n host.onPaste(value);\n pasted = false;\n return \"\";\n }\n else {\n var selectionStart = text.selectionStart;\n var selectionEnd = text.selectionEnd;\n var extendLeft = lastSelectionStart;\n var extendRight = lastValue.length - lastSelectionEnd;\n var inserted = value;\n var restoreStart = value.length - selectionStart;\n var restoreEnd = value.length - selectionEnd;\n var i = 0;\n while (extendLeft > 0 && lastValue[i] == value[i]) {\n i++;\n extendLeft--;\n }\n inserted = inserted.slice(i);\n i = 1;\n while (extendRight > 0 && lastValue.length - i > lastSelectionStart - 1 && lastValue[lastValue.length - i] == value[value.length - i]) {\n i++;\n extendRight--;\n }\n restoreStart -= i - 1;\n restoreEnd -= i - 1;\n var endIndex = inserted.length - i + 1;\n if (endIndex < 0) {\n extendLeft = -endIndex;\n endIndex = 0;\n }\n inserted = inserted.slice(0, endIndex);\n if (!fromInput && !inserted && !restoreStart && !extendLeft && !extendRight && !restoreEnd)\n return \"\";\n sendingText = true;\n var shouldReset = false;\n if (useragent.isAndroid && inserted == \". \") {\n inserted = \" \";\n shouldReset = true;\n }\n if (inserted && !extendLeft && !extendRight && !restoreStart && !restoreEnd || commandMode) {\n host.onTextInput(inserted);\n }\n else {\n host.onTextInput(inserted, {\n extendLeft: extendLeft,\n extendRight: extendRight,\n restoreStart: restoreStart,\n restoreEnd: restoreEnd\n });\n }\n sendingText = false;\n lastValue = value;\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n lastRestoreEnd = restoreEnd;\n return shouldReset ? \"\\n\" : inserted;\n }\n };\n var onInput = function (e) {\n if (inComposition)\n return onCompositionUpdate();\n if (e && e.inputType) {\n if (e.inputType == \"historyUndo\")\n return host.execCommand(\"undo\");\n if (e.inputType == \"historyRedo\")\n return host.execCommand(\"redo\");\n }\n var data = text.value;\n var inserted = sendText(data, true);\n if (data.length > MAX_LINE_LENGTH + 100\n || valueResetRegex.test(inserted)\n || isMobile && lastSelectionStart < 1 && lastSelectionStart == lastSelectionEnd) {\n resetSelection();\n }\n };\n var handleClipboardData = function (e, data, forceIEMime) {\n var clipboardData = e.clipboardData || window.clipboardData;\n if (!clipboardData || BROKEN_SETDATA)\n return;\n var mime = USE_IE_MIME_TYPE || forceIEMime ? \"Text\" : \"text/plain\";\n try {\n if (data) {\n return clipboardData.setData(mime, data) !== false;\n }\n else {\n return clipboardData.getData(mime);\n }\n }\n catch (e) {\n if (!forceIEMime)\n return handleClipboardData(e, data, true);\n }\n };\n var doCopy = function (e, isCut) {\n var data = host.getCopyText();\n if (!data)\n return event.preventDefault(e);\n if (handleClipboardData(e, data)) {\n if (isIOS) {\n resetSelection(data);\n copied = data;\n setTimeout(function () {\n copied = false;\n }, 10);\n }\n isCut ? host.onCut() : host.onCopy();\n event.preventDefault(e);\n }\n else {\n copied = true;\n text.value = data;\n text.select();\n setTimeout(function () {\n copied = false;\n resetSelection();\n isCut ? host.onCut() : host.onCopy();\n });\n }\n };\n var onCut = function (e) {\n doCopy(e, true);\n };\n var onCopy = function (e) {\n doCopy(e, false);\n };\n var onPaste = function (e) {\n var data = handleClipboardData(e);\n if (clipboard.pasteCancelled())\n return;\n if (typeof data == \"string\") {\n if (data)\n host.onPaste(data, e);\n if (useragent.isIE)\n setTimeout(resetSelection);\n event.preventDefault(e);\n }\n else {\n text.value = \"\";\n pasted = true;\n }\n };\n event.addCommandKeyListener(text, host.onCommandKey.bind(host), host);\n event.addListener(text, \"select\", onSelect, host);\n event.addListener(text, \"input\", onInput, host);\n event.addListener(text, \"cut\", onCut, host);\n event.addListener(text, \"copy\", onCopy, host);\n event.addListener(text, \"paste\", onPaste, host);\n if (!('oncut' in text) || !('oncopy' in text) || !('onpaste' in text)) {\n event.addListener(parentNode, \"keydown\", function (e) {\n if ((useragent.isMac && !e.metaKey) || !e.ctrlKey)\n return;\n switch (e.keyCode) {\n case 67:\n onCopy(e);\n break;\n case 86:\n onPaste(e);\n break;\n case 88:\n onCut(e);\n break;\n }\n }, host);\n }\n var onCompositionStart = function (e) {\n if (inComposition || !host.onCompositionStart || host.$readOnly)\n return;\n inComposition = {};\n if (commandMode)\n return;\n if (e.data)\n inComposition.useTextareaForIME = false;\n setTimeout(onCompositionUpdate, 0);\n host._signal(\"compositionStart\");\n host.on(\"mousedown\", cancelComposition);\n var range = host.getSelectionRange();\n range.end.row = range.start.row;\n range.end.column = range.start.column;\n inComposition.markerRange = range;\n inComposition.selectionStart = lastSelectionStart;\n host.onCompositionStart(inComposition);\n if (inComposition.useTextareaForIME) {\n lastValue = text.value = \"\";\n lastSelectionStart = 0;\n lastSelectionEnd = 0;\n }\n else {\n if (text.msGetInputContext)\n inComposition.context = text.msGetInputContext();\n if (text.getInputContext)\n inComposition.context = text.getInputContext();\n }\n };\n var onCompositionUpdate = function () {\n if (!inComposition || !host.onCompositionUpdate || host.$readOnly)\n return;\n if (commandMode)\n return cancelComposition();\n if (inComposition.useTextareaForIME) {\n host.onCompositionUpdate(text.value);\n }\n else {\n var data = text.value;\n sendText(data);\n if (inComposition.markerRange) {\n if (inComposition.context) {\n inComposition.markerRange.start.column = inComposition.selectionStart\n = inComposition.context.compositionStartOffset;\n }\n inComposition.markerRange.end.column = inComposition.markerRange.start.column\n + lastSelectionEnd - inComposition.selectionStart + lastRestoreEnd;\n }\n }\n };\n var onCompositionEnd = function (e) {\n if (!host.onCompositionEnd || host.$readOnly)\n return;\n inComposition = false;\n host.onCompositionEnd();\n host.off(\"mousedown\", cancelComposition);\n if (e)\n onInput();\n };\n function cancelComposition() {\n ignoreFocusEvents = true;\n text.blur();\n text.focus();\n ignoreFocusEvents = false;\n }\n var syncComposition = lang.delayedCall(onCompositionUpdate, 50).schedule.bind(null, null);\n function onKeyup(e) {\n if (e.keyCode == 27 && text.value.length < text.selectionStart) {\n if (!inComposition)\n lastValue = text.value;\n lastSelectionStart = lastSelectionEnd = -1;\n resetSelection();\n }\n syncComposition();\n }\n event.addListener(text, \"compositionstart\", onCompositionStart, host);\n event.addListener(text, \"compositionupdate\", onCompositionUpdate, host);\n event.addListener(text, \"keyup\", onKeyup, host);\n event.addListener(text, \"keydown\", syncComposition, host);\n event.addListener(text, \"compositionend\", onCompositionEnd, host);\n this.getElement = function () {\n return text;\n };\n this.setCommandMode = function (value) {\n commandMode = value;\n text.readOnly = false;\n };\n this.setReadOnly = function (readOnly) {\n if (!commandMode)\n text.readOnly = readOnly;\n };\n this.setCopyWithEmptySelection = function (value) {\n };\n this.onContextMenu = function (e) {\n afterContextMenu = true;\n resetSelection();\n host._emit(\"nativecontextmenu\", { target: host, domEvent: e });\n this.moveToMouse(e, true);\n };\n this.moveToMouse = function (e, bringToFront) {\n if (!tempStyle)\n tempStyle = text.style.cssText;\n text.style.cssText = (bringToFront ? \"z-index:100000;\" : \"\")\n + (useragent.isIE ? \"opacity:0.1;\" : \"\")\n + \"text-indent: -\" + (lastSelectionStart + lastSelectionEnd) * host.renderer.characterWidth * 0.5 + \"px;\";\n var rect = host.container.getBoundingClientRect();\n var style = dom.computedStyle(host.container);\n var top = rect.top + (parseInt(style.borderTopWidth) || 0);\n var left = rect.left + (parseInt(rect.borderLeftWidth) || 0);\n var maxTop = rect.bottom - top - text.clientHeight - 2;\n var move = function (e) {\n dom.translate(text, e.clientX - left - 2, Math.min(e.clientY - top - 2, maxTop));\n };\n move(e);\n if (e.type != \"mousedown\")\n return;\n host.renderer.$isMousePressed = true;\n clearTimeout(closeTimeout);\n if (useragent.isWin)\n event.capture(host.container, move, onContextMenuClose);\n };\n this.onContextMenuClose = onContextMenuClose;\n var closeTimeout;\n function onContextMenuClose() {\n clearTimeout(closeTimeout);\n closeTimeout = setTimeout(function () {\n if (tempStyle) {\n text.style.cssText = tempStyle;\n tempStyle = '';\n }\n host.renderer.$isMousePressed = false;\n if (host.renderer.$keepTextAreaAtCursor)\n host.renderer.$moveTextAreaToCursor();\n }, 0);\n }\n var onContextMenu = function (e) {\n host.textInput.onContextMenu(e);\n onContextMenuClose();\n };\n event.addListener(text, \"mouseup\", onContextMenu, host);\n event.addListener(text, \"mousedown\", function (e) {\n e.preventDefault();\n onContextMenuClose();\n }, host);\n event.addListener(host.renderer.scroller, \"contextmenu\", onContextMenu, host);\n event.addListener(text, \"contextmenu\", onContextMenu, host);\n if (isIOS)\n addIosSelectionHandler(parentNode, host, text);\n function addIosSelectionHandler(parentNode, host, text) {\n var typingResetTimeout = null;\n var typing = false;\n text.addEventListener(\"keydown\", function (e) {\n if (typingResetTimeout)\n clearTimeout(typingResetTimeout);\n typing = true;\n }, true);\n text.addEventListener(\"keyup\", function (e) {\n typingResetTimeout = setTimeout(function () {\n typing = false;\n }, 100);\n }, true);\n var detectArrowKeys = function (e) {\n if (document.activeElement !== text)\n return;\n if (typing || inComposition || host.$mouseHandler.isMousePressed)\n return;\n if (copied) {\n return;\n }\n var selectionStart = text.selectionStart;\n var selectionEnd = text.selectionEnd;\n var key = null;\n var modifier = 0;\n if (selectionStart == 0) {\n key = KEYS.up;\n }\n else if (selectionStart == 1) {\n key = KEYS.home;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue[selectionEnd] == \"\\n\") {\n key = KEYS.end;\n }\n else if (selectionStart < lastSelectionStart && lastValue[selectionStart - 1] == \" \") {\n key = KEYS.left;\n modifier = MODS.option;\n }\n else if (selectionStart < lastSelectionStart\n || (selectionStart == lastSelectionStart\n && lastSelectionEnd != lastSelectionStart\n && selectionStart == selectionEnd)) {\n key = KEYS.left;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue.slice(0, selectionEnd).split(\"\\n\").length > 2) {\n key = KEYS.down;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue[selectionEnd - 1] == \" \") {\n key = KEYS.right;\n modifier = MODS.option;\n }\n else if (selectionEnd > lastSelectionEnd\n || (selectionEnd == lastSelectionEnd\n && lastSelectionEnd != lastSelectionStart\n && selectionStart == selectionEnd)) {\n key = KEYS.right;\n }\n if (selectionStart !== selectionEnd)\n modifier |= MODS.shift;\n if (key) {\n var result = host.onCommandKey({}, modifier, key);\n if (!result && host.commands) {\n key = KEYS.keyCodeToString(key);\n var command = host.commands.findKeyCommand(modifier, key);\n if (command)\n host.execCommand(command);\n }\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n resetSelection(\"\");\n }\n };\n document.addEventListener(\"selectionchange\", detectArrowKeys);\n host.on(\"destroy\", function () {\n document.removeEventListener(\"selectionchange\", detectArrowKeys);\n });\n }\n this.destroy = function () {\n if (text.parentElement)\n text.parentElement.removeChild(text);\n };\n};\nexports.TextInput = TextInput;\nexports.$setUserAgentForTests = function (_isMobile, _isIOS) {\n isMobile = _isMobile;\n isIOS = _isIOS;\n};\n\n});\n\nace.define(\"ace/mouse/default_handlers\",[\"require\",\"exports\",\"module\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar useragent = require(\"../lib/useragent\");\nvar DRAG_OFFSET = 0; // pixels\nvar SCROLL_COOLDOWN_T = 550; // milliseconds\nvar DefaultHandlers = /** @class */ (function () {\n function DefaultHandlers(mouseHandler) {\n mouseHandler.$clickSelection = null;\n var editor = mouseHandler.editor;\n editor.setDefaultHandler(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n editor.setDefaultHandler(\"dblclick\", this.onDoubleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"tripleclick\", this.onTripleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"quadclick\", this.onQuadClick.bind(mouseHandler));\n editor.setDefaultHandler(\"mousewheel\", this.onMouseWheel.bind(mouseHandler));\n var exports = [\"select\", \"startSelect\", \"selectEnd\", \"selectAllEnd\", \"selectByWordsEnd\",\n \"selectByLinesEnd\", \"dragWait\", \"dragWaitEnd\", \"focusWait\"];\n exports.forEach(function (x) {\n mouseHandler[x] = this[x];\n }, this);\n mouseHandler.selectByLines = this.extendSelectionBy.bind(mouseHandler, \"getLineRange\");\n mouseHandler.selectByWords = this.extendSelectionBy.bind(mouseHandler, \"getWordRange\");\n }\n DefaultHandlers.prototype.onMouseDown = function (ev) {\n var inSelection = ev.inSelection();\n var pos = ev.getDocumentPosition();\n this.mousedownEvent = ev;\n var editor = this.editor;\n var button = ev.getButton();\n if (button !== 0) {\n var selectionRange = editor.getSelectionRange();\n var selectionEmpty = selectionRange.isEmpty();\n if (selectionEmpty || button == 1)\n editor.selection.moveToPosition(pos);\n if (button == 2) {\n editor.textInput.onContextMenu(ev.domEvent);\n if (!useragent.isMozilla)\n ev.preventDefault();\n }\n return;\n }\n this.mousedownEvent.time = Date.now();\n if (inSelection && !editor.isFocused()) {\n editor.focus();\n if (this.$focusTimeout && !this.$clickSelection && !editor.inMultiSelectMode) {\n this.setState(\"focusWait\");\n this.captureMouse(ev);\n return;\n }\n }\n this.captureMouse(ev);\n this.startSelect(pos, ev.domEvent._clicks > 1);\n return ev.preventDefault();\n };\n DefaultHandlers.prototype.startSelect = function (pos, waitForClickSelection) {\n pos = pos || this.editor.renderer.screenToTextCoordinates(this.x, this.y);\n var editor = this.editor;\n if (!this.mousedownEvent)\n return;\n if (this.mousedownEvent.getShiftKey())\n editor.selection.selectToPosition(pos);\n else if (!waitForClickSelection)\n editor.selection.moveToPosition(pos);\n if (!waitForClickSelection)\n this.select();\n editor.setStyle(\"ace_selecting\");\n this.setState(\"select\");\n };\n DefaultHandlers.prototype.select = function () {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n if (this.$clickSelection) {\n var cmp = this.$clickSelection.comparePoint(cursor);\n if (cmp == -1) {\n anchor = this.$clickSelection.end;\n }\n else if (cmp == 1) {\n anchor = this.$clickSelection.start;\n }\n else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n };\n DefaultHandlers.prototype.extendSelectionBy = function (unitName) {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n var range = editor.selection[unitName](cursor.row, cursor.column);\n if (this.$clickSelection) {\n var cmpStart = this.$clickSelection.comparePoint(range.start);\n var cmpEnd = this.$clickSelection.comparePoint(range.end);\n if (cmpStart == -1 && cmpEnd <= 0) {\n anchor = this.$clickSelection.end;\n if (range.end.row != cursor.row || range.end.column != cursor.column)\n cursor = range.start;\n }\n else if (cmpEnd == 1 && cmpStart >= 0) {\n anchor = this.$clickSelection.start;\n if (range.start.row != cursor.row || range.start.column != cursor.column)\n cursor = range.end;\n }\n else if (cmpStart == -1 && cmpEnd == 1) {\n cursor = range.end;\n anchor = range.start;\n }\n else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n };\n DefaultHandlers.prototype.selectByLinesEnd = function () {\n this.$clickSelection = null;\n this.editor.unsetStyle(\"ace_selecting\");\n };\n DefaultHandlers.prototype.focusWait = function () {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n var time = Date.now();\n if (distance > DRAG_OFFSET || time - this.mousedownEvent.time > this.$focusTimeout)\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n };\n DefaultHandlers.prototype.onDoubleClick = function (ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n var session = editor.session;\n var range = session.getBracketRange(pos);\n if (range) {\n if (range.isEmpty()) {\n range.start.column--;\n range.end.column++;\n }\n this.setState(\"select\");\n }\n else {\n range = editor.selection.getWordRange(pos.row, pos.column);\n this.setState(\"selectByWords\");\n }\n this.$clickSelection = range;\n this.select();\n };\n DefaultHandlers.prototype.onTripleClick = function (ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n this.setState(\"selectByLines\");\n var range = editor.getSelectionRange();\n if (range.isMultiLine() && range.contains(pos.row, pos.column)) {\n this.$clickSelection = editor.selection.getLineRange(range.start.row);\n this.$clickSelection.end = editor.selection.getLineRange(range.end.row).end;\n }\n else {\n this.$clickSelection = editor.selection.getLineRange(pos.row);\n }\n this.select();\n };\n DefaultHandlers.prototype.onQuadClick = function (ev) {\n var editor = this.editor;\n editor.selectAll();\n this.$clickSelection = editor.getSelectionRange();\n this.setState(\"selectAll\");\n };\n DefaultHandlers.prototype.onMouseWheel = function (ev) {\n if (ev.getAccelKey())\n return;\n if (ev.getShiftKey() && ev.wheelY && !ev.wheelX) {\n ev.wheelX = ev.wheelY;\n ev.wheelY = 0;\n }\n var editor = this.editor;\n if (!this.$lastScroll)\n this.$lastScroll = { t: 0, vx: 0, vy: 0, allowed: 0 };\n var prevScroll = this.$lastScroll;\n var t = ev.domEvent.timeStamp;\n var dt = t - prevScroll.t;\n var vx = dt ? ev.wheelX / dt : prevScroll.vx;\n var vy = dt ? ev.wheelY / dt : prevScroll.vy;\n if (dt < SCROLL_COOLDOWN_T) {\n vx = (vx + prevScroll.vx) / 2;\n vy = (vy + prevScroll.vy) / 2;\n }\n var direction = Math.abs(vx / vy);\n var canScroll = false;\n if (direction >= 1 && editor.renderer.isScrollableBy(ev.wheelX * ev.speed, 0))\n canScroll = true;\n if (direction <= 1 && editor.renderer.isScrollableBy(0, ev.wheelY * ev.speed))\n canScroll = true;\n if (canScroll) {\n prevScroll.allowed = t;\n }\n else if (t - prevScroll.allowed < SCROLL_COOLDOWN_T) {\n var isSlower = Math.abs(vx) <= 1.5 * Math.abs(prevScroll.vx)\n && Math.abs(vy) <= 1.5 * Math.abs(prevScroll.vy);\n if (isSlower) {\n canScroll = true;\n prevScroll.allowed = t;\n }\n else {\n prevScroll.allowed = 0;\n }\n }\n prevScroll.t = t;\n prevScroll.vx = vx;\n prevScroll.vy = vy;\n if (canScroll) {\n editor.renderer.scrollBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n return ev.stop();\n }\n };\n return DefaultHandlers;\n}());\nDefaultHandlers.prototype.selectEnd = DefaultHandlers.prototype.selectByLinesEnd;\nDefaultHandlers.prototype.selectAllEnd = DefaultHandlers.prototype.selectByLinesEnd;\nDefaultHandlers.prototype.selectByWordsEnd = DefaultHandlers.prototype.selectByLinesEnd;\nexports.DefaultHandlers = DefaultHandlers;\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\nfunction calcRangeOrientation(range, cursor) {\n if (range.start.row == range.end.row)\n var cmp = 2 * cursor.column - range.start.column - range.end.column;\n else if (range.start.row == range.end.row - 1 && !range.start.column && !range.end.column)\n var cmp = cursor.column - 4;\n else\n var cmp = 2 * cursor.row - range.start.row - range.end.row;\n if (cmp < 0)\n return { cursor: range.start, anchor: range.end };\n else\n return { cursor: range.end, anchor: range.start };\n}\n\n});\n\nace.define(\"ace/tooltip\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar Range = require(\"./range\").Range;\nvar CLASSNAME = \"ace_tooltip\";\nvar Tooltip = /** @class */ (function () {\n function Tooltip(parentNode) {\n this.isOpen = false;\n this.$element = null;\n this.$parentNode = parentNode;\n }\n Tooltip.prototype.$init = function () {\n this.$element = dom.createElement(\"div\");\n this.$element.className = CLASSNAME;\n this.$element.style.display = \"none\";\n this.$parentNode.appendChild(this.$element);\n return this.$element;\n };\n Tooltip.prototype.getElement = function () {\n return this.$element || this.$init();\n };\n Tooltip.prototype.setText = function (text) {\n this.getElement().textContent = text;\n };\n Tooltip.prototype.setHtml = function (html) {\n this.getElement().innerHTML = html;\n };\n Tooltip.prototype.setPosition = function (x, y) {\n this.getElement().style.left = x + \"px\";\n this.getElement().style.top = y + \"px\";\n };\n Tooltip.prototype.setClassName = function (className) {\n dom.addCssClass(this.getElement(), className);\n };\n Tooltip.prototype.setTheme = function (theme) {\n this.$element.className = CLASSNAME + \" \" +\n (theme.isDark ? \"ace_dark \" : \"\") + (theme.cssClass || \"\");\n };\n Tooltip.prototype.show = function (text, x, y) {\n if (text != null)\n this.setText(text);\n if (x != null && y != null)\n this.setPosition(x, y);\n if (!this.isOpen) {\n this.getElement().style.display = \"block\";\n this.isOpen = true;\n }\n };\n Tooltip.prototype.hide = function () {\n if (this.isOpen) {\n this.getElement().style.display = \"none\";\n this.getElement().className = CLASSNAME;\n this.isOpen = false;\n }\n };\n Tooltip.prototype.getHeight = function () {\n return this.getElement().offsetHeight;\n };\n Tooltip.prototype.getWidth = function () {\n return this.getElement().offsetWidth;\n };\n Tooltip.prototype.destroy = function () {\n this.isOpen = false;\n if (this.$element && this.$element.parentNode) {\n this.$element.parentNode.removeChild(this.$element);\n }\n };\n return Tooltip;\n}());\nvar PopupManager = /** @class */ (function () {\n function PopupManager() {\n this.popups = [];\n }\n PopupManager.prototype.addPopup = function (popup) {\n this.popups.push(popup);\n this.updatePopups();\n };\n PopupManager.prototype.removePopup = function (popup) {\n var index = this.popups.indexOf(popup);\n if (index !== -1) {\n this.popups.splice(index, 1);\n this.updatePopups();\n }\n };\n PopupManager.prototype.updatePopups = function () {\n var e_1, _a, e_2, _b;\n this.popups.sort(function (a, b) { return b.priority - a.priority; });\n var visiblepopups = [];\n try {\n for (var _c = __values(this.popups), _d = _c.next(); !_d.done; _d = _c.next()) {\n var popup = _d.value;\n var shouldDisplay = true;\n try {\n for (var visiblepopups_1 = (e_2 = void 0, __values(visiblepopups)), visiblepopups_1_1 = visiblepopups_1.next(); !visiblepopups_1_1.done; visiblepopups_1_1 = visiblepopups_1.next()) {\n var visiblePopup = visiblepopups_1_1.value;\n if (this.doPopupsOverlap(visiblePopup, popup)) {\n shouldDisplay = false;\n break;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (visiblepopups_1_1 && !visiblepopups_1_1.done && (_b = visiblepopups_1.return)) _b.call(visiblepopups_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (shouldDisplay) {\n visiblepopups.push(popup);\n }\n else {\n popup.hide();\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n PopupManager.prototype.doPopupsOverlap = function (popupA, popupB) {\n var rectA = popupA.getElement().getBoundingClientRect();\n var rectB = popupB.getElement().getBoundingClientRect();\n return (rectA.left < rectB.right && rectA.right > rectB.left && rectA.top < rectB.bottom && rectA.bottom\n > rectB.top);\n };\n return PopupManager;\n}());\nvar popupManager = new PopupManager();\nexports.popupManager = popupManager;\nexports.Tooltip = Tooltip;\nvar HoverTooltip = /** @class */ (function (_super) {\n __extends(HoverTooltip, _super);\n function HoverTooltip(parentNode) {\n if (parentNode === void 0) { parentNode = document.body; }\n var _this = _super.call(this, parentNode) || this;\n _this.timeout = undefined;\n _this.lastT = 0;\n _this.idleTime = 350;\n _this.lastEvent = undefined;\n _this.onMouseOut = _this.onMouseOut.bind(_this);\n _this.onMouseMove = _this.onMouseMove.bind(_this);\n _this.waitForHover = _this.waitForHover.bind(_this);\n _this.hide = _this.hide.bind(_this);\n var el = _this.getElement();\n el.style.whiteSpace = \"pre-wrap\";\n el.style.pointerEvents = \"auto\";\n el.addEventListener(\"mouseout\", _this.onMouseOut);\n el.tabIndex = -1;\n el.addEventListener(\"blur\", function () {\n if (!el.contains(document.activeElement))\n this.hide();\n }.bind(_this));\n el.addEventListener(\"wheel\", event.stopPropagation);\n return _this;\n }\n HoverTooltip.prototype.addToEditor = function (editor) {\n editor.on(\"mousemove\", this.onMouseMove);\n editor.on(\"mousedown\", this.hide);\n editor.renderer.getMouseEventTarget().addEventListener(\"mouseout\", this.onMouseOut, true);\n };\n HoverTooltip.prototype.removeFromEditor = function (editor) {\n editor.off(\"mousemove\", this.onMouseMove);\n editor.off(\"mousedown\", this.hide);\n editor.renderer.getMouseEventTarget().removeEventListener(\"mouseout\", this.onMouseOut, true);\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n };\n HoverTooltip.prototype.onMouseMove = function (e, editor) {\n this.lastEvent = e;\n this.lastT = Date.now();\n var isMousePressed = editor.$mouseHandler.isMousePressed;\n if (this.isOpen) {\n var pos = this.lastEvent && this.lastEvent.getDocumentPosition();\n if (!this.range\n || !this.range.contains(pos.row, pos.column)\n || isMousePressed\n || this.isOutsideOfText(this.lastEvent)) {\n this.hide();\n }\n }\n if (this.timeout || isMousePressed)\n return;\n this.lastEvent = e;\n this.timeout = setTimeout(this.waitForHover, this.idleTime);\n };\n HoverTooltip.prototype.waitForHover = function () {\n if (this.timeout)\n clearTimeout(this.timeout);\n var dt = Date.now() - this.lastT;\n if (this.idleTime - dt > 10) {\n this.timeout = setTimeout(this.waitForHover, this.idleTime - dt);\n return;\n }\n this.timeout = null;\n if (this.lastEvent && !this.isOutsideOfText(this.lastEvent)) {\n this.$gatherData(this.lastEvent, this.lastEvent.editor);\n }\n };\n HoverTooltip.prototype.isOutsideOfText = function (e) {\n var editor = e.editor;\n var docPos = e.getDocumentPosition();\n var line = editor.session.getLine(docPos.row);\n if (docPos.column == line.length) {\n var screenPos = editor.renderer.pixelToScreenCoordinates(e.clientX, e.clientY);\n var clippedPos = editor.session.documentToScreenPosition(docPos.row, docPos.column);\n if (clippedPos.column != screenPos.column\n || clippedPos.row != screenPos.row) {\n return true;\n }\n }\n return false;\n };\n HoverTooltip.prototype.setDataProvider = function (value) {\n this.$gatherData = value;\n };\n HoverTooltip.prototype.showForRange = function (editor, range, domNode, startingEvent) {\n var MARGIN = 10;\n if (startingEvent && startingEvent != this.lastEvent)\n return;\n if (this.isOpen && document.activeElement == this.getElement())\n return;\n var renderer = editor.renderer;\n if (!this.isOpen) {\n popupManager.addPopup(this);\n this.$registerCloseEvents();\n this.setTheme(renderer.theme);\n }\n this.isOpen = true;\n this.addMarker(range, editor.session);\n this.range = Range.fromPoints(range.start, range.end);\n var position = renderer.textToScreenCoordinates(range.start.row, range.start.column);\n var rect = renderer.scroller.getBoundingClientRect();\n if (position.pageX < rect.left)\n position.pageX = rect.left;\n var element = this.getElement();\n element.innerHTML = \"\";\n element.appendChild(domNode);\n element.style.maxHeight = \"\";\n element.style.display = \"block\";\n var labelHeight = element.clientHeight;\n var labelWidth = element.clientWidth;\n var spaceBelow = window.innerHeight - position.pageY - renderer.lineHeight;\n var isAbove = true;\n if (position.pageY - labelHeight < 0 && position.pageY < spaceBelow) {\n isAbove = false;\n }\n element.style.maxHeight = (isAbove ? position.pageY : spaceBelow) - MARGIN + \"px\";\n element.style.top = isAbove ? \"\" : position.pageY + renderer.lineHeight + \"px\";\n element.style.bottom = isAbove ? window.innerHeight - position.pageY + \"px\" : \"\";\n element.style.left = Math.min(position.pageX, window.innerWidth - labelWidth - MARGIN) + \"px\";\n };\n HoverTooltip.prototype.addMarker = function (range, session) {\n if (this.marker) {\n this.$markerSession.removeMarker(this.marker);\n }\n this.$markerSession = session;\n this.marker = session && session.addMarker(range, \"ace_highlight-marker\", \"text\");\n };\n HoverTooltip.prototype.hide = function (e) {\n if (!e && document.activeElement == this.getElement())\n return;\n if (e && e.target && (e.type != \"keydown\" || e.ctrlKey || e.metaKey) && this.$element.contains(e.target))\n return;\n this.lastEvent = null;\n if (this.timeout)\n clearTimeout(this.timeout);\n this.timeout = null;\n this.addMarker(null);\n if (this.isOpen) {\n this.$removeCloseEvents();\n this.getElement().style.display = \"none\";\n this.isOpen = false;\n popupManager.removePopup(this);\n }\n };\n HoverTooltip.prototype.$registerCloseEvents = function () {\n window.addEventListener(\"keydown\", this.hide, true);\n window.addEventListener(\"wheel\", this.hide, true);\n window.addEventListener(\"mousedown\", this.hide, true);\n };\n HoverTooltip.prototype.$removeCloseEvents = function () {\n window.removeEventListener(\"keydown\", this.hide, true);\n window.removeEventListener(\"wheel\", this.hide, true);\n window.removeEventListener(\"mousedown\", this.hide, true);\n };\n HoverTooltip.prototype.onMouseOut = function (e) {\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n this.lastEvent = null;\n if (!this.isOpen)\n return;\n if (!e.relatedTarget || this.getElement().contains(e.relatedTarget))\n return;\n if (e && e.currentTarget.contains(e.relatedTarget))\n return;\n if (!e.relatedTarget.classList.contains(\"ace_content\"))\n this.hide();\n };\n return HoverTooltip;\n}(Tooltip));\nexports.HoverTooltip = HoverTooltip;\n\n});\n\nace.define(\"ace/mouse/default_gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/tooltip\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar dom = require(\"../lib/dom\");\nvar event = require(\"../lib/event\");\nvar Tooltip = require(\"../tooltip\").Tooltip;\nvar nls = require(\"../config\").nls;\nfunction GutterHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var gutter = editor.renderer.$gutterLayer;\n var tooltip = new GutterTooltip(editor);\n mouseHandler.editor.setDefaultHandler(\"guttermousedown\", function (e) {\n if (!editor.isFocused() || e.getButton() != 0)\n return;\n var gutterRegion = gutter.getRegion(e);\n if (gutterRegion == \"foldWidgets\")\n return;\n var row = e.getDocumentPosition().row;\n var selection = editor.session.selection;\n if (e.getShiftKey())\n selection.selectTo(row, 0);\n else {\n if (e.domEvent.detail == 2) {\n editor.selectAll();\n return e.preventDefault();\n }\n mouseHandler.$clickSelection = editor.selection.getLineRange(row);\n }\n mouseHandler.setState(\"selectByLines\");\n mouseHandler.captureMouse(e);\n return e.preventDefault();\n });\n var tooltipTimeout, mouseEvent;\n function showTooltip() {\n var row = mouseEvent.getDocumentPosition().row;\n var maxRow = editor.session.getLength();\n if (row == maxRow) {\n var screenRow = editor.renderer.pixelToScreenCoordinates(0, mouseEvent.y).row;\n var pos = mouseEvent.$pos;\n if (screenRow > editor.session.documentToScreenRow(pos.row, pos.column))\n return hideTooltip();\n }\n tooltip.showTooltip(row);\n if (!tooltip.isOpen)\n return;\n editor.on(\"mousewheel\", hideTooltip);\n if (mouseHandler.$tooltipFollowsMouse) {\n moveTooltip(mouseEvent);\n }\n else {\n var gutterRow = mouseEvent.getGutterRow();\n var gutterCell = gutter.$lines.get(gutterRow);\n if (gutterCell) {\n var gutterElement = gutterCell.element.querySelector(\".ace_gutter_annotation\");\n var rect = gutterElement.getBoundingClientRect();\n var style = tooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n }\n else {\n moveTooltip(mouseEvent);\n }\n }\n }\n function hideTooltip() {\n if (tooltipTimeout)\n tooltipTimeout = clearTimeout(tooltipTimeout);\n if (tooltip.isOpen) {\n tooltip.hideTooltip();\n editor.off(\"mousewheel\", hideTooltip);\n }\n }\n function moveTooltip(e) {\n tooltip.setPosition(e.x, e.y);\n }\n mouseHandler.editor.setDefaultHandler(\"guttermousemove\", function (e) {\n var target = e.domEvent.target || e.domEvent.srcElement;\n if (dom.hasCssClass(target, \"ace_fold-widget\"))\n return hideTooltip();\n if (tooltip.isOpen && mouseHandler.$tooltipFollowsMouse)\n moveTooltip(e);\n mouseEvent = e;\n if (tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function () {\n tooltipTimeout = null;\n if (mouseEvent && !mouseHandler.isMousePressed)\n showTooltip();\n else\n hideTooltip();\n }, 50);\n });\n event.addListener(editor.renderer.$gutter, \"mouseout\", function (e) {\n mouseEvent = null;\n if (!tooltip.isOpen || tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function () {\n tooltipTimeout = null;\n hideTooltip();\n }, 50);\n }, editor);\n editor.on(\"changeSession\", hideTooltip);\n editor.on(\"input\", hideTooltip);\n}\nexports.GutterHandler = GutterHandler;\nvar GutterTooltip = /** @class */ (function (_super) {\n __extends(GutterTooltip, _super);\n function GutterTooltip(editor) {\n var _this = _super.call(this, editor.container) || this;\n _this.editor = editor;\n return _this;\n }\n GutterTooltip.prototype.setPosition = function (x, y) {\n var windowWidth = window.innerWidth || document.documentElement.clientWidth;\n var windowHeight = window.innerHeight || document.documentElement.clientHeight;\n var width = this.getWidth();\n var height = this.getHeight();\n x += 15;\n y += 15;\n if (x + width > windowWidth) {\n x -= (x + width) - windowWidth;\n }\n if (y + height > windowHeight) {\n y -= 20 + height;\n }\n Tooltip.prototype.setPosition.call(this, x, y);\n };\n Object.defineProperty(GutterTooltip, \"annotationLabels\", {\n get: function () {\n return {\n error: { singular: nls(\"error\"), plural: nls(\"errors\") },\n warning: { singular: nls(\"warning\"), plural: nls(\"warnings\") },\n info: { singular: nls(\"information message\"), plural: nls(\"information messages\") }\n };\n },\n enumerable: false,\n configurable: true\n });\n GutterTooltip.prototype.showTooltip = function (row) {\n var gutter = this.editor.renderer.$gutterLayer;\n var annotationsInRow = gutter.$annotations[row];\n var annotation;\n if (annotationsInRow)\n annotation = { text: Array.from(annotationsInRow.text), type: Array.from(annotationsInRow.type) };\n else\n annotation = { text: [], type: [] };\n var fold = gutter.session.getFoldLine(row);\n if (fold && gutter.$showFoldedAnnotations) {\n var annotationsInFold = { error: [], warning: [], info: [] };\n var mostSevereAnnotationInFoldType;\n for (var i = row + 1; i <= fold.end.row; i++) {\n if (!gutter.$annotations[i])\n continue;\n for (var j = 0; j < gutter.$annotations[i].text.length; j++) {\n var annotationType = gutter.$annotations[i].type[j];\n annotationsInFold[annotationType].push(gutter.$annotations[i].text[j]);\n if (annotationType === \"error\") {\n mostSevereAnnotationInFoldType = \"error_fold\";\n continue;\n }\n if (annotationType === \"warning\") {\n mostSevereAnnotationInFoldType = \"warning_fold\";\n continue;\n }\n }\n }\n if (mostSevereAnnotationInFoldType === \"error_fold\" || mostSevereAnnotationInFoldType === \"warning_fold\") {\n var summaryFoldedAnnotations = \"\".concat(GutterTooltip.annotationsToSummaryString(annotationsInFold), \" in folded code.\");\n annotation.text.push(summaryFoldedAnnotations);\n annotation.type.push(mostSevereAnnotationInFoldType);\n }\n }\n if (annotation.text.length === 0)\n return this.hide();\n var annotationMessages = { error: [], warning: [], info: [] };\n var iconClassName = gutter.$useSvgGutterIcons ? \"ace_icon_svg\" : \"ace_icon\";\n for (var i = 0; i < annotation.text.length; i++) {\n var line = \" \").concat(annotation.text[i]);\n annotationMessages[annotation.type[i].replace(\"_fold\", \"\")].push(line);\n }\n var tooltipContent = [].concat(annotationMessages.error, annotationMessages.warning, annotationMessages.info).join(\"
    \");\n this.setHtml(tooltipContent);\n this.$element.setAttribute(\"aria-live\", \"polite\");\n if (!this.isOpen) {\n this.setTheme(this.editor.renderer.theme);\n this.setClassName(\"ace_gutter-tooltip\");\n }\n this.show();\n this.editor._signal(\"showGutterTooltip\", this);\n };\n GutterTooltip.prototype.hideTooltip = function () {\n this.$element.removeAttribute(\"aria-live\");\n this.hide();\n this.editor._signal(\"hideGutterTooltip\", this);\n };\n GutterTooltip.annotationsToSummaryString = function (annotations) {\n var e_1, _a;\n var summary = [];\n var annotationTypes = ['error', 'warning', 'info'];\n try {\n for (var annotationTypes_1 = __values(annotationTypes), annotationTypes_1_1 = annotationTypes_1.next(); !annotationTypes_1_1.done; annotationTypes_1_1 = annotationTypes_1.next()) {\n var annotationType = annotationTypes_1_1.value;\n if (!annotations[annotationType].length)\n continue;\n var label = annotations[annotationType].length === 1 ? GutterTooltip.annotationLabels[annotationType].singular : GutterTooltip.annotationLabels[annotationType].plural;\n summary.push(\"\".concat(annotations[annotationType].length, \" \").concat(label));\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (annotationTypes_1_1 && !annotationTypes_1_1.done && (_a = annotationTypes_1.return)) _a.call(annotationTypes_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return summary.join(\", \");\n };\n return GutterTooltip;\n}(Tooltip));\nexports.GutterTooltip = GutterTooltip;\n\n});\n\nace.define(\"ace/mouse/mouse_event\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar MouseEvent = /** @class */ (function () {\n function MouseEvent(domEvent, editor) {\n this.domEvent = domEvent;\n this.editor = editor;\n this.x = this.clientX = domEvent.clientX;\n this.y = this.clientY = domEvent.clientY;\n this.$pos = null;\n this.$inSelection = null;\n this.propagationStopped = false;\n this.defaultPrevented = false;\n }\n MouseEvent.prototype.stopPropagation = function () {\n event.stopPropagation(this.domEvent);\n this.propagationStopped = true;\n };\n MouseEvent.prototype.preventDefault = function () {\n event.preventDefault(this.domEvent);\n this.defaultPrevented = true;\n };\n MouseEvent.prototype.stop = function () {\n this.stopPropagation();\n this.preventDefault();\n };\n MouseEvent.prototype.getDocumentPosition = function () {\n if (this.$pos)\n return this.$pos;\n this.$pos = this.editor.renderer.screenToTextCoordinates(this.clientX, this.clientY);\n return this.$pos;\n };\n MouseEvent.prototype.getGutterRow = function () {\n var documentRow = this.getDocumentPosition().row;\n var screenRow = this.editor.session.documentToScreenRow(documentRow, 0);\n var screenTopRow = this.editor.session.documentToScreenRow(this.editor.renderer.$gutterLayer.$lines.get(0).row, 0);\n return screenRow - screenTopRow;\n };\n MouseEvent.prototype.inSelection = function () {\n if (this.$inSelection !== null)\n return this.$inSelection;\n var editor = this.editor;\n var selectionRange = editor.getSelectionRange();\n if (selectionRange.isEmpty())\n this.$inSelection = false;\n else {\n var pos = this.getDocumentPosition();\n this.$inSelection = selectionRange.contains(pos.row, pos.column);\n }\n return this.$inSelection;\n };\n MouseEvent.prototype.getButton = function () {\n return event.getButton(this.domEvent);\n };\n MouseEvent.prototype.getShiftKey = function () {\n return this.domEvent.shiftKey;\n };\n MouseEvent.prototype.getAccelKey = function () {\n return useragent.isMac ? this.domEvent.metaKey : this.domEvent.ctrlKey;\n };\n return MouseEvent;\n}());\nexports.MouseEvent = MouseEvent;\n\n});\n\nace.define(\"ace/mouse/dragdrop_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar AUTOSCROLL_DELAY = 200;\nvar SCROLL_CURSOR_DELAY = 200;\nvar SCROLL_CURSOR_HYSTERESIS = 5;\nfunction DragdropHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var dragImage = dom.createElement(\"div\");\n dragImage.style.cssText = \"top:-100px;position:absolute;z-index:2147483647;opacity:0.5\";\n dragImage.textContent = \"\\xa0\";\n var exports = [\"dragWait\", \"dragWaitEnd\", \"startDrag\", \"dragReadyEnd\", \"onMouseDrag\"];\n exports.forEach(function (x) {\n mouseHandler[x] = this[x];\n }, this);\n editor.on(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n var mouseTarget = editor.container;\n var dragSelectionMarker, x, y;\n var timerId, range;\n var dragCursor, counter = 0;\n var dragOperation;\n var isInternal;\n var autoScrollStartTime;\n var cursorMovedTime;\n var cursorPointOnCaretMoved;\n this.onDragStart = function (e) {\n if (this.cancelDrag || !mouseTarget.draggable) {\n var self = this;\n setTimeout(function () {\n self.startSelect();\n self.captureMouse(e);\n }, 0);\n return e.preventDefault();\n }\n range = editor.getSelectionRange();\n var dataTransfer = e.dataTransfer;\n dataTransfer.effectAllowed = editor.getReadOnly() ? \"copy\" : \"copyMove\";\n editor.container.appendChild(dragImage);\n dataTransfer.setDragImage && dataTransfer.setDragImage(dragImage, 0, 0);\n setTimeout(function () {\n editor.container.removeChild(dragImage);\n });\n dataTransfer.clearData();\n dataTransfer.setData(\"Text\", editor.session.getTextRange());\n isInternal = true;\n this.setState(\"drag\");\n };\n this.onDragEnd = function (e) {\n mouseTarget.draggable = false;\n isInternal = false;\n this.setState(null);\n if (!editor.getReadOnly()) {\n var dropEffect = e.dataTransfer.dropEffect;\n if (!dragOperation && dropEffect == \"move\")\n editor.session.remove(editor.getSelectionRange());\n editor.$resetCursorStyle();\n }\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n };\n this.onDragEnter = function (e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker)\n addDragMarker();\n counter++;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n this.onDragOver = function (e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker) {\n addDragMarker();\n counter++;\n }\n if (onMouseMoveTimer !== null)\n onMouseMoveTimer = null;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n this.onDragLeave = function (e) {\n counter--;\n if (counter <= 0 && dragSelectionMarker) {\n clearDragMarker();\n dragOperation = null;\n return event.preventDefault(e);\n }\n };\n this.onDrop = function (e) {\n if (!dragCursor)\n return;\n var dataTransfer = e.dataTransfer;\n if (isInternal) {\n switch (dragOperation) {\n case \"move\":\n if (range.contains(dragCursor.row, dragCursor.column)) {\n range = {\n start: dragCursor,\n end: dragCursor\n };\n }\n else {\n range = editor.moveText(range, dragCursor);\n }\n break;\n case \"copy\":\n range = editor.moveText(range, dragCursor, true);\n break;\n }\n }\n else {\n var dropData = dataTransfer.getData('Text');\n range = {\n start: dragCursor,\n end: editor.session.insert(dragCursor, dropData)\n };\n editor.focus();\n dragOperation = null;\n }\n clearDragMarker();\n return event.preventDefault(e);\n };\n event.addListener(mouseTarget, \"dragstart\", this.onDragStart.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragend\", this.onDragEnd.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragenter\", this.onDragEnter.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragover\", this.onDragOver.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragleave\", this.onDragLeave.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"drop\", this.onDrop.bind(mouseHandler), editor);\n function scrollCursorIntoView(cursor, prevCursor) {\n var now = Date.now();\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n var hMovement = !prevCursor || cursor.column != prevCursor.column;\n if (!cursorMovedTime || vMovement || hMovement) {\n editor.moveCursorToPosition(cursor);\n cursorMovedTime = now;\n cursorPointOnCaretMoved = { x: x, y: y };\n }\n else {\n var distance = calcDistance(cursorPointOnCaretMoved.x, cursorPointOnCaretMoved.y, x, y);\n if (distance > SCROLL_CURSOR_HYSTERESIS) {\n cursorMovedTime = null;\n }\n else if (now - cursorMovedTime >= SCROLL_CURSOR_DELAY) {\n editor.renderer.scrollCursorIntoView();\n cursorMovedTime = null;\n }\n }\n }\n function autoScroll(cursor, prevCursor) {\n var now = Date.now();\n var lineHeight = editor.renderer.layerConfig.lineHeight;\n var characterWidth = editor.renderer.layerConfig.characterWidth;\n var editorRect = editor.renderer.scroller.getBoundingClientRect();\n var offsets = {\n x: {\n left: x - editorRect.left,\n right: editorRect.right - x\n },\n y: {\n top: y - editorRect.top,\n bottom: editorRect.bottom - y\n }\n };\n var nearestXOffset = Math.min(offsets.x.left, offsets.x.right);\n var nearestYOffset = Math.min(offsets.y.top, offsets.y.bottom);\n var scrollCursor = { row: cursor.row, column: cursor.column };\n if (nearestXOffset / characterWidth <= 2) {\n scrollCursor.column += (offsets.x.left < offsets.x.right ? -3 : +2);\n }\n if (nearestYOffset / lineHeight <= 1) {\n scrollCursor.row += (offsets.y.top < offsets.y.bottom ? -1 : +1);\n }\n var vScroll = cursor.row != scrollCursor.row;\n var hScroll = cursor.column != scrollCursor.column;\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n if (vScroll || (hScroll && !vMovement)) {\n if (!autoScrollStartTime)\n autoScrollStartTime = now;\n else if (now - autoScrollStartTime >= AUTOSCROLL_DELAY)\n editor.renderer.scrollCursorIntoView(scrollCursor);\n }\n else {\n autoScrollStartTime = null;\n }\n }\n function onDragInterval() {\n var prevCursor = dragCursor;\n dragCursor = editor.renderer.screenToTextCoordinates(x, y);\n scrollCursorIntoView(dragCursor, prevCursor);\n autoScroll(dragCursor, prevCursor);\n }\n function addDragMarker() {\n range = editor.selection.toOrientedRange();\n dragSelectionMarker = editor.session.addMarker(range, \"ace_selection\", editor.getSelectionStyle());\n editor.clearSelection();\n if (editor.isFocused())\n editor.renderer.$cursorLayer.setBlinking(false);\n clearInterval(timerId);\n onDragInterval();\n timerId = setInterval(onDragInterval, 20);\n counter = 0;\n event.addListener(document, \"mousemove\", onMouseMove);\n }\n function clearDragMarker() {\n clearInterval(timerId);\n editor.session.removeMarker(dragSelectionMarker);\n dragSelectionMarker = null;\n editor.selection.fromOrientedRange(range);\n if (editor.isFocused() && !isInternal)\n editor.$resetCursorStyle();\n range = null;\n dragCursor = null;\n counter = 0;\n autoScrollStartTime = null;\n cursorMovedTime = null;\n event.removeListener(document, \"mousemove\", onMouseMove);\n }\n var onMouseMoveTimer = null;\n function onMouseMove() {\n if (onMouseMoveTimer == null) {\n onMouseMoveTimer = setTimeout(function () {\n if (onMouseMoveTimer != null && dragSelectionMarker)\n clearDragMarker();\n }, 20);\n }\n }\n function canAccept(dataTransfer) {\n var types = dataTransfer.types;\n return !types || Array.prototype.some.call(types, function (type) {\n return type == 'text/plain' || type == 'Text';\n });\n }\n function getDropEffect(e) {\n var copyAllowed = ['copy', 'copymove', 'all', 'uninitialized'];\n var moveAllowed = ['move', 'copymove', 'linkmove', 'all', 'uninitialized'];\n var copyModifierState = useragent.isMac ? e.altKey : e.ctrlKey;\n var effectAllowed = \"uninitialized\";\n try {\n effectAllowed = e.dataTransfer.effectAllowed.toLowerCase();\n }\n catch (e) { }\n var dropEffect = \"none\";\n if (copyModifierState && copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n else if (moveAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"move\";\n else if (copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n return dropEffect;\n }\n}\n(function () {\n this.dragWait = function () {\n var interval = Date.now() - this.mousedownEvent.time;\n if (interval > this.editor.getDragDelay())\n this.startDrag();\n };\n this.dragWaitEnd = function () {\n var target = this.editor.container;\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n this.selectEnd();\n };\n this.dragReadyEnd = function (e) {\n this.editor.$resetCursorStyle();\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n this.dragWaitEnd();\n };\n this.startDrag = function () {\n this.cancelDrag = false;\n var editor = this.editor;\n var target = editor.container;\n target.draggable = true;\n editor.renderer.$cursorLayer.setBlinking(false);\n editor.setStyle(\"ace_dragging\");\n var cursorStyle = useragent.isWin ? \"default\" : \"move\";\n editor.renderer.setCursorStyle(cursorStyle);\n this.setState(\"dragReady\");\n };\n this.onMouseDrag = function (e) {\n var target = this.editor.container;\n if (useragent.isIE && this.state == \"dragReady\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 3)\n target.dragDrop();\n }\n if (this.state === \"dragWait\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 0) {\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n }\n }\n };\n this.onMouseDown = function (e) {\n if (!this.$dragEnabled)\n return;\n this.mousedownEvent = e;\n var editor = this.editor;\n var inSelection = e.inSelection();\n var button = e.getButton();\n var clickCount = e.domEvent.detail || 1;\n if (clickCount === 1 && button === 0 && inSelection) {\n if (e.editor.inMultiSelectMode && (e.getAccelKey() || e.getShiftKey()))\n return;\n this.mousedownEvent.time = Date.now();\n var eventTarget = e.domEvent.target || e.domEvent.srcElement;\n if (\"unselectable\" in eventTarget)\n eventTarget.unselectable = \"on\";\n if (editor.getDragDelay()) {\n if (useragent.isWebKit) {\n this.cancelDrag = true;\n var mouseTarget = editor.container;\n mouseTarget.draggable = true;\n }\n this.setState(\"dragWait\");\n }\n else {\n this.startDrag();\n }\n this.captureMouse(e, this.onMouseDrag.bind(this));\n e.defaultPrevented = true;\n }\n };\n}).call(DragdropHandler.prototype);\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\nexports.DragdropHandler = DragdropHandler;\n\n});\n\nace.define(\"ace/mouse/touch_handler\",[\"require\",\"exports\",\"module\",\"ace/mouse/mouse_event\",\"ace/lib/event\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar MouseEvent = require(\"./mouse_event\").MouseEvent;\nvar event = require(\"../lib/event\");\nvar dom = require(\"../lib/dom\");\nexports.addTouchListeners = function (el, editor) {\n var mode = \"scroll\";\n var startX;\n var startY;\n var touchStartT;\n var lastT;\n var longTouchTimer;\n var animationTimer;\n var animationSteps = 0;\n var pos;\n var clickCount = 0;\n var vX = 0;\n var vY = 0;\n var pressed;\n var contextMenu;\n function createContextMenu() {\n var clipboard = window.navigator && window.navigator.clipboard;\n var isOpen = false;\n var updateMenu = function () {\n var selected = editor.getCopyText();\n var hasUndo = editor.session.getUndoManager().hasUndo();\n contextMenu.replaceChild(dom.buildDom(isOpen ? [\"span\",\n !selected && [\"span\", { class: \"ace_mobile-button\", action: \"selectall\" }, \"Select All\"],\n selected && [\"span\", { class: \"ace_mobile-button\", action: \"copy\" }, \"Copy\"],\n selected && [\"span\", { class: \"ace_mobile-button\", action: \"cut\" }, \"Cut\"],\n clipboard && [\"span\", { class: \"ace_mobile-button\", action: \"paste\" }, \"Paste\"],\n hasUndo && [\"span\", { class: \"ace_mobile-button\", action: \"undo\" }, \"Undo\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"find\" }, \"Find\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"openCommandPalette\" }, \"Palette\"]\n ] : [\"span\"]), contextMenu.firstChild);\n };\n var handleClick = function (e) {\n var action = e.target.getAttribute(\"action\");\n if (action == \"more\" || !isOpen) {\n isOpen = !isOpen;\n return updateMenu();\n }\n if (action == \"paste\") {\n clipboard.readText().then(function (text) {\n editor.execCommand(action, text);\n });\n }\n else if (action) {\n if (action == \"cut\" || action == \"copy\") {\n if (clipboard)\n clipboard.writeText(editor.getCopyText());\n else\n document.execCommand(\"copy\");\n }\n editor.execCommand(action);\n }\n contextMenu.firstChild.style.display = \"none\";\n isOpen = false;\n if (action != \"openCommandPalette\")\n editor.focus();\n };\n contextMenu = dom.buildDom([\"div\",\n {\n class: \"ace_mobile-menu\",\n ontouchstart: function (e) {\n mode = \"menu\";\n e.stopPropagation();\n e.preventDefault();\n editor.textInput.focus();\n },\n ontouchend: function (e) {\n e.stopPropagation();\n e.preventDefault();\n handleClick(e);\n },\n onclick: handleClick\n },\n [\"span\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"more\" }, \"...\"]\n ], editor.container);\n }\n function showContextMenu() {\n if (!contextMenu)\n createContextMenu();\n var cursor = editor.selection.cursor;\n var pagePos = editor.renderer.textToScreenCoordinates(cursor.row, cursor.column);\n var leftOffset = editor.renderer.textToScreenCoordinates(0, 0).pageX;\n var scrollLeft = editor.renderer.scrollLeft;\n var rect = editor.container.getBoundingClientRect();\n contextMenu.style.top = pagePos.pageY - rect.top - 3 + \"px\";\n if (pagePos.pageX - rect.left < rect.width - 70) {\n contextMenu.style.left = \"\";\n contextMenu.style.right = \"10px\";\n }\n else {\n contextMenu.style.right = \"\";\n contextMenu.style.left = leftOffset + scrollLeft - rect.left + \"px\";\n }\n contextMenu.style.display = \"\";\n contextMenu.firstChild.style.display = \"none\";\n editor.on(\"input\", hideContextMenu);\n }\n function hideContextMenu(e) {\n if (contextMenu)\n contextMenu.style.display = \"none\";\n editor.off(\"input\", hideContextMenu);\n }\n function handleLongTap() {\n longTouchTimer = null;\n clearTimeout(longTouchTimer);\n var range = editor.selection.getRange();\n var inSelection = range.contains(pos.row, pos.column);\n if (range.isEmpty() || !inSelection) {\n editor.selection.moveToPosition(pos);\n editor.selection.selectWord();\n }\n mode = \"wait\";\n showContextMenu();\n }\n function switchToSelectionMode() {\n longTouchTimer = null;\n clearTimeout(longTouchTimer);\n editor.selection.moveToPosition(pos);\n var range = clickCount >= 2\n ? editor.selection.getLineRange(pos.row)\n : editor.session.getBracketRange(pos);\n if (range && !range.isEmpty()) {\n editor.selection.setRange(range);\n }\n else {\n editor.selection.selectWord();\n }\n mode = \"wait\";\n }\n event.addListener(el, \"contextmenu\", function (e) {\n if (!pressed)\n return;\n var textarea = editor.textInput.getElement();\n textarea.focus();\n }, editor);\n event.addListener(el, \"touchstart\", function (e) {\n var touches = e.touches;\n if (longTouchTimer || touches.length > 1) {\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n touchStartT = -1;\n mode = \"zoom\";\n return;\n }\n pressed = editor.$mouseHandler.isMousePressed = true;\n var h = editor.renderer.layerConfig.lineHeight;\n var w = editor.renderer.layerConfig.lineHeight;\n var t = e.timeStamp;\n lastT = t;\n var touchObj = touches[0];\n var x = touchObj.clientX;\n var y = touchObj.clientY;\n if (Math.abs(startX - x) + Math.abs(startY - y) > h)\n touchStartT = -1;\n startX = e.clientX = x;\n startY = e.clientY = y;\n vX = vY = 0;\n var ev = new MouseEvent(e, editor);\n pos = ev.getDocumentPosition();\n if (t - touchStartT < 500 && touches.length == 1 && !animationSteps) {\n clickCount++;\n e.preventDefault();\n e.button = 0;\n switchToSelectionMode();\n }\n else {\n clickCount = 0;\n var cursor = editor.selection.cursor;\n var anchor = editor.selection.isEmpty() ? cursor : editor.selection.anchor;\n var cursorPos = editor.renderer.$cursorLayer.getPixelPosition(cursor, true);\n var anchorPos = editor.renderer.$cursorLayer.getPixelPosition(anchor, true);\n var rect = editor.renderer.scroller.getBoundingClientRect();\n var offsetTop = editor.renderer.layerConfig.offset;\n var offsetLeft = editor.renderer.scrollLeft;\n var weightedDistance = function (x, y) {\n x = x / w;\n y = y / h - 0.75;\n return x * x + y * y;\n };\n if (e.clientX < rect.left) {\n mode = \"zoom\";\n return;\n }\n var diff1 = weightedDistance(e.clientX - rect.left - cursorPos.left + offsetLeft, e.clientY - rect.top - cursorPos.top + offsetTop);\n var diff2 = weightedDistance(e.clientX - rect.left - anchorPos.left + offsetLeft, e.clientY - rect.top - anchorPos.top + offsetTop);\n if (diff1 < 3.5 && diff2 < 3.5)\n mode = diff1 > diff2 ? \"cursor\" : \"anchor\";\n if (diff2 < 3.5)\n mode = \"anchor\";\n else if (diff1 < 3.5)\n mode = \"cursor\";\n else\n mode = \"scroll\";\n longTouchTimer = setTimeout(handleLongTap, 450);\n }\n touchStartT = t;\n }, editor);\n event.addListener(el, \"touchend\", function (e) {\n pressed = editor.$mouseHandler.isMousePressed = false;\n if (animationTimer)\n clearInterval(animationTimer);\n if (mode == \"zoom\") {\n mode = \"\";\n animationSteps = 0;\n }\n else if (longTouchTimer) {\n editor.selection.moveToPosition(pos);\n animationSteps = 0;\n showContextMenu();\n }\n else if (mode == \"scroll\") {\n animate();\n hideContextMenu();\n }\n else {\n showContextMenu();\n }\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n }, editor);\n event.addListener(el, \"touchmove\", function (e) {\n if (longTouchTimer) {\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n }\n var touches = e.touches;\n if (touches.length > 1 || mode == \"zoom\")\n return;\n var touchObj = touches[0];\n var wheelX = startX - touchObj.clientX;\n var wheelY = startY - touchObj.clientY;\n if (mode == \"wait\") {\n if (wheelX * wheelX + wheelY * wheelY > 4)\n mode = \"cursor\";\n else\n return e.preventDefault();\n }\n startX = touchObj.clientX;\n startY = touchObj.clientY;\n e.clientX = touchObj.clientX;\n e.clientY = touchObj.clientY;\n var t = e.timeStamp;\n var dt = t - lastT;\n lastT = t;\n if (mode == \"scroll\") {\n var mouseEvent = new MouseEvent(e, editor);\n mouseEvent.speed = 1;\n mouseEvent.wheelX = wheelX;\n mouseEvent.wheelY = wheelY;\n if (10 * Math.abs(wheelX) < Math.abs(wheelY))\n wheelX = 0;\n if (10 * Math.abs(wheelY) < Math.abs(wheelX))\n wheelY = 0;\n if (dt != 0) {\n vX = wheelX / dt;\n vY = wheelY / dt;\n }\n editor._emit(\"mousewheel\", mouseEvent);\n if (!mouseEvent.propagationStopped) {\n vX = vY = 0;\n }\n }\n else {\n var ev = new MouseEvent(e, editor);\n var pos = ev.getDocumentPosition();\n if (mode == \"cursor\")\n editor.selection.moveCursorToPosition(pos);\n else if (mode == \"anchor\")\n editor.selection.setSelectionAnchor(pos.row, pos.column);\n editor.renderer.scrollCursorIntoView(pos);\n e.preventDefault();\n }\n }, editor);\n function animate() {\n animationSteps += 60;\n animationTimer = setInterval(function () {\n if (animationSteps-- <= 0) {\n clearInterval(animationTimer);\n animationTimer = null;\n }\n if (Math.abs(vX) < 0.01)\n vX = 0;\n if (Math.abs(vY) < 0.01)\n vY = 0;\n if (animationSteps < 20)\n vX = 0.9 * vX;\n if (animationSteps < 20)\n vY = 0.9 * vY;\n var oldScrollTop = editor.session.getScrollTop();\n editor.renderer.scrollBy(10 * vX, 10 * vY);\n if (oldScrollTop == editor.session.getScrollTop())\n animationSteps = 0;\n }, 10);\n }\n};\n\n});\n\nace.define(\"ace/mouse/mouse_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/mouse/default_handlers\",\"ace/mouse/default_gutter_handler\",\"ace/mouse/mouse_event\",\"ace/mouse/dragdrop_handler\",\"ace/mouse/touch_handler\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar DefaultHandlers = require(\"./default_handlers\").DefaultHandlers;\nvar DefaultGutterHandler = require(\"./default_gutter_handler\").GutterHandler;\nvar MouseEvent = require(\"./mouse_event\").MouseEvent;\nvar DragdropHandler = require(\"./dragdrop_handler\").DragdropHandler;\nvar addTouchListeners = require(\"./touch_handler\").addTouchListeners;\nvar config = require(\"../config\");\nvar MouseHandler = /** @class */ (function () {\n function MouseHandler(editor) {\n var _self = this;\n this.editor = editor;\n new DefaultHandlers(this);\n new DefaultGutterHandler(this);\n new DragdropHandler(this);\n var focusEditor = function (e) {\n var windowBlurred = !document.hasFocus || !document.hasFocus()\n || !editor.isFocused() && document.activeElement == (editor.textInput && editor.textInput.getElement());\n if (windowBlurred)\n window.focus();\n editor.focus();\n setTimeout(function () {\n if (!editor.isFocused())\n editor.focus();\n });\n };\n var mouseTarget = editor.renderer.getMouseEventTarget();\n event.addListener(mouseTarget, \"click\", this.onMouseEvent.bind(this, \"click\"), editor);\n event.addListener(mouseTarget, \"mousemove\", this.onMouseMove.bind(this, \"mousemove\"), editor);\n event.addMultiMouseDownListener([\n mouseTarget,\n editor.renderer.scrollBarV && editor.renderer.scrollBarV.inner,\n editor.renderer.scrollBarH && editor.renderer.scrollBarH.inner,\n editor.textInput && editor.textInput.getElement()\n ].filter(Boolean), [400, 300, 250], this, \"onMouseEvent\", editor);\n event.addMouseWheelListener(editor.container, this.onMouseWheel.bind(this, \"mousewheel\"), editor);\n addTouchListeners(editor.container, editor);\n var gutterEl = editor.renderer.$gutter;\n event.addListener(gutterEl, \"mousedown\", this.onMouseEvent.bind(this, \"guttermousedown\"), editor);\n event.addListener(gutterEl, \"click\", this.onMouseEvent.bind(this, \"gutterclick\"), editor);\n event.addListener(gutterEl, \"dblclick\", this.onMouseEvent.bind(this, \"gutterdblclick\"), editor);\n event.addListener(gutterEl, \"mousemove\", this.onMouseEvent.bind(this, \"guttermousemove\"), editor);\n event.addListener(mouseTarget, \"mousedown\", focusEditor, editor);\n event.addListener(gutterEl, \"mousedown\", focusEditor, editor);\n if (useragent.isIE && editor.renderer.scrollBarV) {\n event.addListener(editor.renderer.scrollBarV.element, \"mousedown\", focusEditor, editor);\n event.addListener(editor.renderer.scrollBarH.element, \"mousedown\", focusEditor, editor);\n }\n editor.on(\"mousemove\", function (e) {\n if (_self.state || _self.$dragDelay || !_self.$dragEnabled)\n return;\n var character = editor.renderer.screenToTextCoordinates(e.x, e.y);\n var range = editor.session.selection.getRange();\n var renderer = editor.renderer;\n if (!range.isEmpty() && range.insideStart(character.row, character.column)) {\n renderer.setCursorStyle(\"default\");\n }\n else {\n renderer.setCursorStyle(\"\");\n }\n }, editor);\n }\n MouseHandler.prototype.onMouseEvent = function (name, e) {\n if (!this.editor.session)\n return;\n this.editor._emit(name, new MouseEvent(e, this.editor));\n };\n MouseHandler.prototype.onMouseMove = function (name, e) {\n var listeners = this.editor._eventRegistry && this.editor._eventRegistry.mousemove;\n if (!listeners || !listeners.length)\n return;\n this.editor._emit(name, new MouseEvent(e, this.editor));\n };\n MouseHandler.prototype.onMouseWheel = function (name, e) {\n var mouseEvent = new MouseEvent(e, this.editor);\n mouseEvent.speed = this.$scrollSpeed * 2;\n mouseEvent.wheelX = e.wheelX;\n mouseEvent.wheelY = e.wheelY;\n this.editor._emit(name, mouseEvent);\n };\n MouseHandler.prototype.setState = function (state) {\n this.state = state;\n };\n MouseHandler.prototype.captureMouse = function (ev, mouseMoveHandler) {\n this.x = ev.x;\n this.y = ev.y;\n this.isMousePressed = true;\n var editor = this.editor;\n var renderer = this.editor.renderer;\n renderer.$isMousePressed = true;\n var self = this;\n var onMouseMove = function (e) {\n if (!e)\n return;\n if (useragent.isWebKit && !e.which && self.releaseMouse)\n return self.releaseMouse();\n self.x = e.clientX;\n self.y = e.clientY;\n mouseMoveHandler && mouseMoveHandler(e);\n self.mouseEvent = new MouseEvent(e, self.editor);\n self.$mouseMoved = true;\n };\n var onCaptureEnd = function (e) {\n editor.off(\"beforeEndOperation\", onOperationEnd);\n clearInterval(timerId);\n if (editor.session)\n onCaptureInterval();\n self[self.state + \"End\"] && self[self.state + \"End\"](e);\n self.state = \"\";\n self.isMousePressed = renderer.$isMousePressed = false;\n if (renderer.$keepTextAreaAtCursor)\n renderer.$moveTextAreaToCursor();\n self.$onCaptureMouseMove = self.releaseMouse = null;\n e && self.onMouseEvent(\"mouseup\", e);\n editor.endOperation();\n };\n var onCaptureInterval = function () {\n self[self.state] && self[self.state]();\n self.$mouseMoved = false;\n };\n if (useragent.isOldIE && ev.domEvent.type == \"dblclick\") {\n return setTimeout(function () { onCaptureEnd(ev); });\n }\n var onOperationEnd = function (e) {\n if (!self.releaseMouse)\n return;\n if (editor.curOp.command.name && editor.curOp.selectionChanged) {\n self[self.state + \"End\"] && self[self.state + \"End\"]();\n self.state = \"\";\n self.releaseMouse();\n }\n };\n editor.on(\"beforeEndOperation\", onOperationEnd);\n editor.startOperation({ command: { name: \"mouse\" } });\n self.$onCaptureMouseMove = onMouseMove;\n self.releaseMouse = event.capture(this.editor.container, onMouseMove, onCaptureEnd);\n var timerId = setInterval(onCaptureInterval, 20);\n };\n MouseHandler.prototype.cancelContextMenu = function () {\n var stop = function (e) {\n if (e && e.domEvent && e.domEvent.type != \"contextmenu\")\n return;\n this.editor.off(\"nativecontextmenu\", stop);\n if (e && e.domEvent)\n event.stopEvent(e.domEvent);\n }.bind(this);\n setTimeout(stop, 10);\n this.editor.on(\"nativecontextmenu\", stop);\n };\n MouseHandler.prototype.destroy = function () {\n if (this.releaseMouse)\n this.releaseMouse();\n };\n return MouseHandler;\n}());\nMouseHandler.prototype.releaseMouse = null;\nconfig.defineOptions(MouseHandler.prototype, \"mouseHandler\", {\n scrollSpeed: { initialValue: 2 },\n dragDelay: { initialValue: (useragent.isMac ? 150 : 0) },\n dragEnabled: { initialValue: true },\n focusTimeout: { initialValue: 0 },\n tooltipFollowsMouse: { initialValue: true }\n});\nexports.MouseHandler = MouseHandler;\n\n});\n\nace.define(\"ace/mouse/fold_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar FoldHandler = /** @class */ (function () {\n function FoldHandler(editor) {\n editor.on(\"click\", function (e) {\n var position = e.getDocumentPosition();\n var session = editor.session;\n var fold = session.getFoldAt(position.row, position.column, 1);\n if (fold) {\n if (e.getAccelKey())\n session.removeFold(fold);\n else\n session.expandFold(fold);\n e.stop();\n }\n var target = e.domEvent && e.domEvent.target;\n if (target && dom.hasCssClass(target, \"ace_inline_button\")) {\n if (dom.hasCssClass(target, \"ace_toggle_wrap\")) {\n session.setOption(\"wrap\", !session.getUseWrapMode());\n editor.renderer.scrollCursorIntoView();\n }\n }\n });\n editor.on(\"gutterclick\", function (e) {\n var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n if (gutterRegion == \"foldWidgets\") {\n var row = e.getDocumentPosition().row;\n var session = editor.session;\n if (session.foldWidgets && session.foldWidgets[row])\n editor.session.onFoldWidgetClick(row, e);\n if (!editor.isFocused())\n editor.focus();\n e.stop();\n }\n });\n editor.on(\"gutterdblclick\", function (e) {\n var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n if (gutterRegion == \"foldWidgets\") {\n var row = e.getDocumentPosition().row;\n var session = editor.session;\n var data = session.getParentFoldRangeData(row, true);\n var range = data.range || data.firstRange;\n if (range) {\n row = range.start.row;\n var fold = session.getFoldAt(row, session.getLine(row).length, 1);\n if (fold) {\n session.removeFold(fold);\n }\n else {\n session.addFold(\"...\", range);\n editor.renderer.scrollCursorIntoView({ row: range.start.row, column: 0 });\n }\n }\n e.stop();\n }\n });\n }\n return FoldHandler;\n}());\nexports.FoldHandler = FoldHandler;\n\n});\n\nace.define(\"ace/keyboard/keybinding\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/event\"], function(require, exports, module){\"use strict\";\nvar keyUtil = require(\"../lib/keys\");\nvar event = require(\"../lib/event\");\nvar KeyBinding = /** @class */ (function () {\n function KeyBinding(editor) {\n this.$editor = editor;\n this.$data = { editor: editor };\n this.$handlers = [];\n this.setDefaultHandler(editor.commands);\n }\n KeyBinding.prototype.setDefaultHandler = function (kb) {\n this.removeKeyboardHandler(this.$defaultHandler);\n this.$defaultHandler = kb;\n this.addKeyboardHandler(kb, 0);\n };\n KeyBinding.prototype.setKeyboardHandler = function (kb) {\n var h = this.$handlers;\n if (h[h.length - 1] == kb)\n return;\n while (h[h.length - 1] && h[h.length - 1] != this.$defaultHandler)\n this.removeKeyboardHandler(h[h.length - 1]);\n this.addKeyboardHandler(kb, 1);\n };\n KeyBinding.prototype.addKeyboardHandler = function (kb, pos) {\n if (!kb)\n return;\n if (typeof kb == \"function\" && !kb.handleKeyboard)\n kb.handleKeyboard = kb;\n var i = this.$handlers.indexOf(kb);\n if (i != -1)\n this.$handlers.splice(i, 1);\n if (pos == undefined)\n this.$handlers.push(kb);\n else\n this.$handlers.splice(pos, 0, kb);\n if (i == -1 && kb.attach)\n kb.attach(this.$editor);\n };\n KeyBinding.prototype.removeKeyboardHandler = function (kb) {\n var i = this.$handlers.indexOf(kb);\n if (i == -1)\n return false;\n this.$handlers.splice(i, 1);\n kb.detach && kb.detach(this.$editor);\n return true;\n };\n KeyBinding.prototype.getKeyboardHandler = function () {\n return this.$handlers[this.$handlers.length - 1];\n };\n KeyBinding.prototype.getStatusText = function () {\n var data = this.$data;\n var editor = data.editor;\n return this.$handlers.map(function (h) {\n return h.getStatusText && h.getStatusText(editor, data) || \"\";\n }).filter(Boolean).join(\" \");\n };\n KeyBinding.prototype.$callKeyboardHandlers = function (hashId, keyString, keyCode, e) {\n var toExecute;\n var success = false;\n var commands = this.$editor.commands;\n for (var i = this.$handlers.length; i--;) {\n toExecute = this.$handlers[i].handleKeyboard(this.$data, hashId, keyString, keyCode, e);\n if (!toExecute || !toExecute.command)\n continue;\n if (toExecute.command == \"null\") {\n success = true;\n }\n else {\n success = commands.exec(toExecute.command, this.$editor, toExecute.args, e);\n }\n if (success && e && hashId != -1 &&\n toExecute.passEvent != true && toExecute.command.passEvent != true) {\n event.stopEvent(e);\n }\n if (success)\n break;\n }\n if (!success && hashId == -1) {\n toExecute = { command: \"insertstring\" };\n success = commands.exec(\"insertstring\", this.$editor, keyString);\n }\n if (success && this.$editor._signal)\n this.$editor._signal(\"keyboardActivity\", toExecute);\n return success;\n };\n KeyBinding.prototype.onCommandKey = function (e, hashId, keyCode) {\n var keyString = keyUtil.keyCodeToString(keyCode);\n return this.$callKeyboardHandlers(hashId, keyString, keyCode, e);\n };\n KeyBinding.prototype.onTextInput = function (text) {\n return this.$callKeyboardHandlers(-1, text);\n };\n return KeyBinding;\n}());\nexports.KeyBinding = KeyBinding;\n\n});\n\nace.define(\"ace/lib/bidiutil\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar ArabicAlefBetIntervalsBegine = ['\\u0621', '\\u0641'];\nvar ArabicAlefBetIntervalsEnd = ['\\u063A', '\\u064a'];\nvar dir = 0, hiLevel = 0;\nvar lastArabic = false, hasUBAT_AL = false, hasUBAT_B = false, hasUBAT_S = false, hasBlockSep = false, hasSegSep = false;\nvar impTab_LTR = [ [0, 3, 0, 1, 0, 0, 0], [0, 3, 0, 1, 2, 2, 0], [0, 3, 0, 0x11, 2, 0, 1], [0, 3, 5, 5, 4, 1, 0], [0, 3, 0x15, 0x15, 4, 0, 1], [0, 3, 5, 5, 4, 2, 0]\n];\nvar impTab_RTL = [ [2, 0, 1, 1, 0, 1, 0], [2, 0, 1, 1, 0, 2, 0], [2, 0, 2, 1, 3, 2, 0], [2, 0, 2, 0x21, 3, 1, 1]\n];\nvar LTR = 0, RTL = 1;\nvar L = 0;\nvar R = 1;\nvar EN = 2;\nvar AN = 3;\nvar ON = 4;\nvar B = 5;\nvar S = 6;\nvar AL = 7;\nvar WS = 8;\nvar CS = 9;\nvar ES = 10;\nvar ET = 11;\nvar NSM = 12;\nvar LRE = 13;\nvar RLE = 14;\nvar PDF = 15;\nvar LRO = 16;\nvar RLO = 17;\nvar BN = 18;\nvar UnicodeTBL00 = [\n BN, BN, BN, BN, BN, BN, BN, BN, BN, S, B, S, WS, B, BN, BN,\n BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, B, B, B, S,\n WS, ON, ON, ET, ET, ET, ON, ON, ON, ON, ON, ES, CS, ES, CS, CS,\n EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, CS, ON, ON, ON, ON, ON,\n ON, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L,\n L, L, L, L, L, L, L, L, L, L, L, ON, ON, ON, ON, ON,\n ON, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L,\n L, L, L, L, L, L, L, L, L, L, L, ON, ON, ON, ON, BN,\n BN, BN, BN, BN, BN, B, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,\n BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,\n CS, ON, ET, ET, ET, ET, ON, ON, ON, ON, L, ON, ON, BN, ON, ON,\n ET, ET, EN, EN, ON, L, ON, ON, ON, EN, L, ON, ON, ON, ON, ON\n];\nvar UnicodeTBL20 = [\n WS, WS, WS, WS, WS, WS, WS, WS, WS, WS, WS, BN, BN, BN, L, R,\n ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, ON, ON, ON, ON, WS, B, LRE, RLE, PDF, LRO, RLO, CS,\n ET, ET, ET, ET, ET, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, CS, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, WS\n];\nfunction _computeLevels(chars, levels, len, charTypes) {\n var impTab = dir ? impTab_RTL : impTab_LTR, prevState = null, newClass = null, newLevel = null, newState = 0, action = null, cond = null, condPos = -1, i = null, ix = null, classes = [];\n if (!charTypes) {\n for (i = 0, charTypes = []; i < len; i++) {\n charTypes[i] = _getCharacterType(chars[i]);\n }\n }\n hiLevel = dir;\n lastArabic = false;\n hasUBAT_AL = false;\n hasUBAT_B = false;\n hasUBAT_S = false;\n for (ix = 0; ix < len; ix++) {\n prevState = newState;\n classes[ix] = newClass = _getCharClass(chars, charTypes, classes, ix);\n newState = impTab[prevState][newClass];\n action = newState & 0xF0;\n newState &= 0x0F;\n levels[ix] = newLevel = impTab[newState][5];\n if (action > 0) {\n if (action == 0x10) {\n for (i = condPos; i < ix; i++) {\n levels[i] = 1;\n }\n condPos = -1;\n }\n else {\n condPos = -1;\n }\n }\n cond = impTab[newState][6];\n if (cond) {\n if (condPos == -1) {\n condPos = ix;\n }\n }\n else {\n if (condPos > -1) {\n for (i = condPos; i < ix; i++) {\n levels[i] = newLevel;\n }\n condPos = -1;\n }\n }\n if (charTypes[ix] == B) {\n levels[ix] = 0;\n }\n hiLevel |= newLevel;\n }\n if (hasUBAT_S) {\n for (i = 0; i < len; i++) {\n if (charTypes[i] == S) {\n levels[i] = dir;\n for (var j = i - 1; j >= 0; j--) {\n if (charTypes[j] == WS) {\n levels[j] = dir;\n }\n else {\n break;\n }\n }\n }\n }\n }\n}\nfunction _invertLevel(lev, levels, _array) {\n if (hiLevel < lev) {\n return;\n }\n if (lev == 1 && dir == RTL && !hasUBAT_B) {\n _array.reverse();\n return;\n }\n var len = _array.length, start = 0, end, lo, hi, tmp;\n while (start < len) {\n if (levels[start] >= lev) {\n end = start + 1;\n while (end < len && levels[end] >= lev) {\n end++;\n }\n for (lo = start, hi = end - 1; lo < hi; lo++, hi--) {\n tmp = _array[lo];\n _array[lo] = _array[hi];\n _array[hi] = tmp;\n }\n start = end;\n }\n start++;\n }\n}\nfunction _getCharClass(chars, types, classes, ix) {\n var cType = types[ix], wType, nType, len, i;\n switch (cType) {\n case L:\n case R:\n lastArabic = false;\n case ON:\n case AN:\n return cType;\n case EN:\n return lastArabic ? AN : EN;\n case AL:\n lastArabic = true;\n hasUBAT_AL = true;\n return R;\n case WS:\n return ON;\n case CS:\n if (ix < 1 || (ix + 1) >= types.length ||\n ((wType = classes[ix - 1]) != EN && wType != AN) ||\n ((nType = types[ix + 1]) != EN && nType != AN)) {\n return ON;\n }\n if (lastArabic) {\n nType = AN;\n }\n return nType == wType ? nType : ON;\n case ES:\n wType = ix > 0 ? classes[ix - 1] : B;\n if (wType == EN && (ix + 1) < types.length && types[ix + 1] == EN) {\n return EN;\n }\n return ON;\n case ET:\n if (ix > 0 && classes[ix - 1] == EN) {\n return EN;\n }\n if (lastArabic) {\n return ON;\n }\n i = ix + 1;\n len = types.length;\n while (i < len && types[i] == ET) {\n i++;\n }\n if (i < len && types[i] == EN) {\n return EN;\n }\n return ON;\n case NSM:\n len = types.length;\n i = ix + 1;\n while (i < len && types[i] == NSM) {\n i++;\n }\n if (i < len) {\n var c = chars[ix], rtlCandidate = (c >= 0x0591 && c <= 0x08FF) || c == 0xFB1E;\n wType = types[i];\n if (rtlCandidate && (wType == R || wType == AL)) {\n return R;\n }\n }\n if (ix < 1 || (wType = types[ix - 1]) == B) {\n return ON;\n }\n return classes[ix - 1];\n case B:\n lastArabic = false;\n hasUBAT_B = true;\n return dir;\n case S:\n hasUBAT_S = true;\n return ON;\n case LRE:\n case RLE:\n case LRO:\n case RLO:\n case PDF:\n lastArabic = false;\n case BN:\n return ON;\n }\n}\nfunction _getCharacterType(ch) {\n var uc = ch.charCodeAt(0), hi = uc >> 8;\n if (hi == 0) {\n return ((uc > 0x00BF) ? L : UnicodeTBL00[uc]);\n }\n else if (hi == 5) {\n return (/[\\u0591-\\u05f4]/.test(ch) ? R : L);\n }\n else if (hi == 6) {\n if (/[\\u0610-\\u061a\\u064b-\\u065f\\u06d6-\\u06e4\\u06e7-\\u06ed]/.test(ch))\n return NSM;\n else if (/[\\u0660-\\u0669\\u066b-\\u066c]/.test(ch))\n return AN;\n else if (uc == 0x066A)\n return ET;\n else if (/[\\u06f0-\\u06f9]/.test(ch))\n return EN;\n else\n return AL;\n }\n else if (hi == 0x20 && uc <= 0x205F) {\n return UnicodeTBL20[uc & 0xFF];\n }\n else if (hi == 0xFE) {\n return (uc >= 0xFE70 ? AL : ON);\n }\n return ON;\n}\nfunction _isArabicDiacritics(ch) {\n return (ch >= '\\u064b' && ch <= '\\u0655');\n}\nexports.L = L;\nexports.R = R;\nexports.EN = EN;\nexports.ON_R = 3;\nexports.AN = 4;\nexports.R_H = 5;\nexports.B = 6;\nexports.RLE = 7;\nexports.DOT = \"\\xB7\";\nexports.doBidiReorder = function (text, textCharTypes, isRtl) {\n if (text.length < 2)\n return {};\n var chars = text.split(\"\"), logicalFromVisual = new Array(chars.length), bidiLevels = new Array(chars.length), levels = [];\n dir = isRtl ? RTL : LTR;\n _computeLevels(chars, levels, chars.length, textCharTypes);\n for (var i = 0; i < logicalFromVisual.length; logicalFromVisual[i] = i, i++)\n ;\n _invertLevel(2, levels, logicalFromVisual);\n _invertLevel(1, levels, logicalFromVisual);\n for (var i = 0; i < logicalFromVisual.length - 1; i++) { //fix levels to reflect character width\n if (textCharTypes[i] === AN) {\n levels[i] = exports.AN;\n }\n else if (levels[i] === R && ((textCharTypes[i] > AL && textCharTypes[i] < LRE)\n || textCharTypes[i] === ON || textCharTypes[i] === BN)) {\n levels[i] = exports.ON_R;\n }\n else if ((i > 0 && chars[i - 1] === '\\u0644') && /\\u0622|\\u0623|\\u0625|\\u0627/.test(chars[i])) {\n levels[i - 1] = levels[i] = exports.R_H;\n i++;\n }\n }\n if (chars[chars.length - 1] === exports.DOT)\n levels[chars.length - 1] = exports.B;\n if (chars[0] === '\\u202B')\n levels[0] = exports.RLE;\n for (var i = 0; i < logicalFromVisual.length; i++) {\n bidiLevels[i] = levels[logicalFromVisual[i]];\n }\n return { 'logicalFromVisual': logicalFromVisual, 'bidiLevels': bidiLevels };\n};\nexports.hasBidiCharacters = function (text, textCharTypes) {\n var ret = false;\n for (var i = 0; i < text.length; i++) {\n textCharTypes[i] = _getCharacterType(text.charAt(i));\n if (!ret && (textCharTypes[i] == R || textCharTypes[i] == AL || textCharTypes[i] == AN))\n ret = true;\n }\n return ret;\n};\nexports.getVisualFromLogicalIdx = function (logIdx, rowMap) {\n for (var i = 0; i < rowMap.logicalFromVisual.length; i++) {\n if (rowMap.logicalFromVisual[i] == logIdx)\n return i;\n }\n return 0;\n};\n\n});\n\nace.define(\"ace/bidihandler\",[\"require\",\"exports\",\"module\",\"ace/lib/bidiutil\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar bidiUtil = require(\"./lib/bidiutil\");\nvar lang = require(\"./lib/lang\");\nvar bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac\\u202B]/;\nvar BidiHandler = /** @class */ (function () {\n function BidiHandler(session) {\n this.session = session;\n this.bidiMap = {};\n this.currentRow = null;\n this.bidiUtil = bidiUtil;\n this.charWidths = [];\n this.EOL = \"\\xAC\";\n this.showInvisibles = true;\n this.isRtlDir = false;\n this.$isRtl = false;\n this.line = \"\";\n this.wrapIndent = 0;\n this.EOF = \"\\xB6\";\n this.RLE = \"\\u202B\";\n this.contentWidth = 0;\n this.fontMetrics = null;\n this.rtlLineOffset = 0;\n this.wrapOffset = 0;\n this.isMoveLeftOperation = false;\n this.seenBidi = bidiRE.test(session.getValue());\n }\n BidiHandler.prototype.isBidiRow = function (screenRow, docRow, splitIndex) {\n if (!this.seenBidi)\n return false;\n if (screenRow !== this.currentRow) {\n this.currentRow = screenRow;\n this.updateRowLine(docRow, splitIndex);\n this.updateBidiMap();\n }\n return this.bidiMap.bidiLevels;\n };\n BidiHandler.prototype.onChange = function (delta) {\n if (!this.seenBidi) {\n if (delta.action == \"insert\" && bidiRE.test(delta.lines.join(\"\\n\"))) {\n this.seenBidi = true;\n this.currentRow = null;\n }\n }\n else {\n this.currentRow = null;\n }\n };\n BidiHandler.prototype.getDocumentRow = function () {\n var docRow = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var index = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n if (index >= 0)\n docRow = this.session.$docRowCache[index];\n }\n return docRow;\n };\n BidiHandler.prototype.getSplitIndex = function () {\n var splitIndex = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var currentIndex, prevIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n while (this.currentRow - splitIndex > 0) {\n currentIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow - splitIndex - 1);\n if (currentIndex !== prevIndex)\n break;\n prevIndex = currentIndex;\n splitIndex++;\n }\n }\n else {\n splitIndex = this.currentRow;\n }\n return splitIndex;\n };\n BidiHandler.prototype.updateRowLine = function (docRow, splitIndex) {\n if (docRow === undefined)\n docRow = this.getDocumentRow();\n var isLastRow = (docRow === this.session.getLength() - 1), endOfLine = isLastRow ? this.EOF : this.EOL;\n this.wrapIndent = 0;\n this.line = this.session.getLine(docRow);\n this.isRtlDir = this.$isRtl || this.line.charAt(0) === this.RLE;\n if (this.session.$useWrapMode) {\n var splits = this.session.$wrapData[docRow];\n if (splits) {\n if (splitIndex === undefined)\n splitIndex = this.getSplitIndex();\n if (splitIndex > 0 && splits.length) {\n this.wrapIndent = splits.indent;\n this.wrapOffset = this.wrapIndent * this.charWidths[bidiUtil.L];\n this.line = (splitIndex < splits.length) ?\n this.line.substring(splits[splitIndex - 1], splits[splitIndex]) :\n this.line.substring(splits[splits.length - 1]);\n }\n else {\n this.line = this.line.substring(0, splits[splitIndex]);\n }\n if (splitIndex == splits.length) {\n this.line += (this.showInvisibles) ? endOfLine : bidiUtil.DOT;\n }\n }\n }\n else {\n this.line += this.showInvisibles ? endOfLine : bidiUtil.DOT;\n }\n var session = this.session, shift = 0, size;\n this.line = this.line.replace(/\\t|[\\u1100-\\u2029, \\u202F-\\uFFE6]/g, function (ch, i) {\n if (ch === '\\t' || session.isFullWidth(ch.charCodeAt(0))) {\n size = (ch === '\\t') ? session.getScreenTabSize(i + shift) : 2;\n shift += size - 1;\n return lang.stringRepeat(bidiUtil.DOT, size);\n }\n return ch;\n });\n if (this.isRtlDir) {\n this.fontMetrics.$main.textContent = (this.line.charAt(this.line.length - 1) == bidiUtil.DOT) ? this.line.substr(0, this.line.length - 1) : this.line;\n this.rtlLineOffset = this.contentWidth - this.fontMetrics.$main.getBoundingClientRect().width;\n }\n };\n BidiHandler.prototype.updateBidiMap = function () {\n var textCharTypes = [];\n if (bidiUtil.hasBidiCharacters(this.line, textCharTypes) || this.isRtlDir) {\n this.bidiMap = bidiUtil.doBidiReorder(this.line, textCharTypes, this.isRtlDir);\n }\n else {\n this.bidiMap = {};\n }\n };\n BidiHandler.prototype.markAsDirty = function () {\n this.currentRow = null;\n };\n BidiHandler.prototype.updateCharacterWidths = function (fontMetrics) {\n if (this.characterWidth === fontMetrics.$characterSize.width)\n return;\n this.fontMetrics = fontMetrics;\n var characterWidth = this.characterWidth = fontMetrics.$characterSize.width;\n var bidiCharWidth = fontMetrics.$measureCharWidth(\"\\u05d4\");\n this.charWidths[bidiUtil.L] = this.charWidths[bidiUtil.EN] = this.charWidths[bidiUtil.ON_R] = characterWidth;\n this.charWidths[bidiUtil.R] = this.charWidths[bidiUtil.AN] = bidiCharWidth;\n this.charWidths[bidiUtil.R_H] = bidiCharWidth * 0.45;\n this.charWidths[bidiUtil.B] = this.charWidths[bidiUtil.RLE] = 0;\n this.currentRow = null;\n };\n BidiHandler.prototype.setShowInvisibles = function (showInvisibles) {\n this.showInvisibles = showInvisibles;\n this.currentRow = null;\n };\n BidiHandler.prototype.setEolChar = function (eolChar) {\n this.EOL = eolChar;\n };\n BidiHandler.prototype.setContentWidth = function (width) {\n this.contentWidth = width;\n };\n BidiHandler.prototype.isRtlLine = function (row) {\n if (this.$isRtl)\n return true;\n if (row != undefined)\n return (this.session.getLine(row).charAt(0) == this.RLE);\n else\n return this.isRtlDir;\n };\n BidiHandler.prototype.setRtlDirection = function (editor, isRtlDir) {\n var cursor = editor.getCursorPosition();\n for (var row = editor.selection.getSelectionAnchor().row; row <= cursor.row; row++) {\n if (!isRtlDir && editor.session.getLine(row).charAt(0) === editor.session.$bidiHandler.RLE)\n editor.session.doc.removeInLine(row, 0, 1);\n else if (isRtlDir && editor.session.getLine(row).charAt(0) !== editor.session.$bidiHandler.RLE)\n editor.session.doc.insert({ column: 0, row: row }, editor.session.$bidiHandler.RLE);\n }\n };\n BidiHandler.prototype.getPosLeft = function (col) {\n col -= this.wrapIndent;\n var leftBoundary = (this.line.charAt(0) === this.RLE) ? 1 : 0;\n var logicalIdx = (col > leftBoundary) ? (this.session.getOverwrite() ? col : col - 1) : leftBoundary;\n var visualIdx = bidiUtil.getVisualFromLogicalIdx(logicalIdx, this.bidiMap), levels = this.bidiMap.bidiLevels, left = 0;\n if (!this.session.getOverwrite() && col <= leftBoundary && levels[visualIdx] % 2 !== 0)\n visualIdx++;\n for (var i = 0; i < visualIdx; i++) {\n left += this.charWidths[levels[i]];\n }\n if (!this.session.getOverwrite() && (col > leftBoundary) && (levels[visualIdx] % 2 === 0))\n left += this.charWidths[levels[visualIdx]];\n if (this.wrapIndent)\n left += this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n if (this.isRtlDir)\n left += this.rtlLineOffset;\n return left;\n };\n BidiHandler.prototype.getSelections = function (startCol, endCol) {\n var map = this.bidiMap, levels = map.bidiLevels, level, selections = [], offset = 0, selColMin = Math.min(startCol, endCol) - this.wrapIndent, selColMax = Math.max(startCol, endCol) - this.wrapIndent, isSelected = false, isSelectedPrev = false, selectionStart = 0;\n if (this.wrapIndent)\n offset += this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n for (var logIdx, visIdx = 0; visIdx < levels.length; visIdx++) {\n logIdx = map.logicalFromVisual[visIdx];\n level = levels[visIdx];\n isSelected = (logIdx >= selColMin) && (logIdx < selColMax);\n if (isSelected && !isSelectedPrev) {\n selectionStart = offset;\n }\n else if (!isSelected && isSelectedPrev) {\n selections.push({ left: selectionStart, width: offset - selectionStart });\n }\n offset += this.charWidths[level];\n isSelectedPrev = isSelected;\n }\n if (isSelected && (visIdx === levels.length)) {\n selections.push({ left: selectionStart, width: offset - selectionStart });\n }\n if (this.isRtlDir) {\n for (var i = 0; i < selections.length; i++) {\n selections[i].left += this.rtlLineOffset;\n }\n }\n return selections;\n };\n BidiHandler.prototype.offsetToCol = function (posX) {\n if (this.isRtlDir)\n posX -= this.rtlLineOffset;\n var logicalIdx = 0, posX = Math.max(posX, 0), offset = 0, visualIdx = 0, levels = this.bidiMap.bidiLevels, charWidth = this.charWidths[levels[visualIdx]];\n if (this.wrapIndent)\n posX -= this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n while (posX > offset + charWidth / 2) {\n offset += charWidth;\n if (visualIdx === levels.length - 1) {\n charWidth = 0;\n break;\n }\n charWidth = this.charWidths[levels[++visualIdx]];\n }\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && (levels[visualIdx] % 2 === 0)) {\n if (posX < offset)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n }\n else if (visualIdx > 0 && (levels[visualIdx - 1] % 2 === 0) && (levels[visualIdx] % 2 !== 0)) {\n logicalIdx = 1 + ((posX > offset) ? this.bidiMap.logicalFromVisual[visualIdx]\n : this.bidiMap.logicalFromVisual[visualIdx - 1]);\n }\n else if ((this.isRtlDir && visualIdx === levels.length - 1 && charWidth === 0 && (levels[visualIdx - 1] % 2 === 0))\n || (!this.isRtlDir && visualIdx === 0 && (levels[visualIdx] % 2 !== 0))) {\n logicalIdx = 1 + this.bidiMap.logicalFromVisual[visualIdx];\n }\n else {\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && charWidth !== 0)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n }\n if (logicalIdx === 0 && this.isRtlDir)\n logicalIdx++;\n return (logicalIdx + this.wrapIndent);\n };\n return BidiHandler;\n}());\nexports.BidiHandler = BidiHandler;\n\n});\n\nace.define(\"ace/selection\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar lang = require(\"./lib/lang\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Selection = /** @class */ (function () {\n function Selection(session) {\n this.session = session;\n this.doc = session.getDocument();\n this.clearSelection();\n this.cursor = this.lead = this.doc.createAnchor(0, 0);\n this.anchor = this.doc.createAnchor(0, 0);\n this.$silent = false;\n var self = this;\n this.cursor.on(\"change\", function (e) {\n self.$cursorChanged = true;\n if (!self.$silent)\n self._emit(\"changeCursor\");\n if (!self.$isEmpty && !self.$silent)\n self._emit(\"changeSelection\");\n if (!self.$keepDesiredColumnOnChange && e.old.column != e.value.column)\n self.$desiredColumn = null;\n });\n this.anchor.on(\"change\", function () {\n self.$anchorChanged = true;\n if (!self.$isEmpty && !self.$silent)\n self._emit(\"changeSelection\");\n });\n }\n Selection.prototype.isEmpty = function () {\n return this.$isEmpty || (this.anchor.row == this.lead.row &&\n this.anchor.column == this.lead.column);\n };\n Selection.prototype.isMultiLine = function () {\n return !this.$isEmpty && this.anchor.row != this.cursor.row;\n };\n Selection.prototype.getCursor = function () {\n return this.lead.getPosition();\n };\n Selection.prototype.setAnchor = function (row, column) {\n this.$isEmpty = false;\n this.anchor.setPosition(row, column);\n };\n Selection.prototype.getAnchor = function () {\n if (this.$isEmpty)\n return this.getSelectionLead();\n return this.anchor.getPosition();\n };\n Selection.prototype.getSelectionLead = function () {\n return this.lead.getPosition();\n };\n Selection.prototype.isBackwards = function () {\n var anchor = this.anchor;\n var lead = this.lead;\n return (anchor.row > lead.row || (anchor.row == lead.row && anchor.column > lead.column));\n };\n Selection.prototype.getRange = function () {\n var anchor = this.anchor;\n var lead = this.lead;\n if (this.$isEmpty)\n return Range.fromPoints(lead, lead);\n return this.isBackwards()\n ? Range.fromPoints(lead, anchor)\n : Range.fromPoints(anchor, lead);\n };\n Selection.prototype.clearSelection = function () {\n if (!this.$isEmpty) {\n this.$isEmpty = true;\n this._emit(\"changeSelection\");\n }\n };\n Selection.prototype.selectAll = function () {\n this.$setSelection(0, 0, Number.MAX_VALUE, Number.MAX_VALUE);\n };\n Selection.prototype.setRange = function (range, reverse) {\n var start = reverse ? range.end : range.start;\n var end = reverse ? range.start : range.end;\n this.$setSelection(start.row, start.column, end.row, end.column);\n };\n Selection.prototype.$setSelection = function (anchorRow, anchorColumn, cursorRow, cursorColumn) {\n if (this.$silent)\n return;\n var wasEmpty = this.$isEmpty;\n var wasMultiselect = this.inMultiSelectMode;\n this.$silent = true;\n this.$cursorChanged = this.$anchorChanged = false;\n this.anchor.setPosition(anchorRow, anchorColumn);\n this.cursor.setPosition(cursorRow, cursorColumn);\n this.$isEmpty = !Range.comparePoints(this.anchor, this.cursor);\n this.$silent = false;\n if (this.$cursorChanged)\n this._emit(\"changeCursor\");\n if (this.$cursorChanged || this.$anchorChanged || wasEmpty != this.$isEmpty || wasMultiselect)\n this._emit(\"changeSelection\");\n };\n Selection.prototype.$moveSelection = function (mover) {\n var lead = this.lead;\n if (this.$isEmpty)\n this.setSelectionAnchor(lead.row, lead.column);\n mover.call(this);\n };\n Selection.prototype.selectTo = function (row, column) {\n this.$moveSelection(function () {\n this.moveCursorTo(row, column);\n });\n };\n Selection.prototype.selectToPosition = function (pos) {\n this.$moveSelection(function () {\n this.moveCursorToPosition(pos);\n });\n };\n Selection.prototype.moveTo = function (row, column) {\n this.clearSelection();\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveToPosition = function (pos) {\n this.clearSelection();\n this.moveCursorToPosition(pos);\n };\n Selection.prototype.selectUp = function () {\n this.$moveSelection(this.moveCursorUp);\n };\n Selection.prototype.selectDown = function () {\n this.$moveSelection(this.moveCursorDown);\n };\n Selection.prototype.selectRight = function () {\n this.$moveSelection(this.moveCursorRight);\n };\n Selection.prototype.selectLeft = function () {\n this.$moveSelection(this.moveCursorLeft);\n };\n Selection.prototype.selectLineStart = function () {\n this.$moveSelection(this.moveCursorLineStart);\n };\n Selection.prototype.selectLineEnd = function () {\n this.$moveSelection(this.moveCursorLineEnd);\n };\n Selection.prototype.selectFileEnd = function () {\n this.$moveSelection(this.moveCursorFileEnd);\n };\n Selection.prototype.selectFileStart = function () {\n this.$moveSelection(this.moveCursorFileStart);\n };\n Selection.prototype.selectWordRight = function () {\n this.$moveSelection(this.moveCursorWordRight);\n };\n Selection.prototype.selectWordLeft = function () {\n this.$moveSelection(this.moveCursorWordLeft);\n };\n Selection.prototype.getWordRange = function (row, column) {\n if (typeof column == \"undefined\") {\n var cursor = row || this.lead;\n row = cursor.row;\n column = cursor.column;\n }\n return this.session.getWordRange(row, column);\n };\n Selection.prototype.selectWord = function () {\n this.setSelectionRange(this.getWordRange());\n };\n Selection.prototype.selectAWord = function () {\n var cursor = this.getCursor();\n var range = this.session.getAWordRange(cursor.row, cursor.column);\n this.setSelectionRange(range);\n };\n Selection.prototype.getLineRange = function (row, excludeLastChar) {\n var rowStart = typeof row == \"number\" ? row : this.lead.row;\n var rowEnd;\n var foldLine = this.session.getFoldLine(rowStart);\n if (foldLine) {\n rowStart = foldLine.start.row;\n rowEnd = foldLine.end.row;\n }\n else {\n rowEnd = rowStart;\n }\n if (excludeLastChar === true)\n return new Range(rowStart, 0, rowEnd, this.session.getLine(rowEnd).length);\n else\n return new Range(rowStart, 0, rowEnd + 1, 0);\n };\n Selection.prototype.selectLine = function () {\n this.setSelectionRange(this.getLineRange());\n };\n Selection.prototype.moveCursorUp = function () {\n this.moveCursorBy(-1, 0);\n };\n Selection.prototype.moveCursorDown = function () {\n this.moveCursorBy(1, 0);\n };\n Selection.prototype.wouldMoveIntoSoftTab = function (cursor, tabSize, direction) {\n var start = cursor.column;\n var end = cursor.column + tabSize;\n if (direction < 0) {\n start = cursor.column - tabSize;\n end = cursor.column;\n }\n return this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(start, end).split(\" \").length - 1 == tabSize;\n };\n Selection.prototype.moveCursorLeft = function () {\n var cursor = this.lead.getPosition(), fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n }\n else if (cursor.column === 0) {\n if (cursor.row > 0) {\n this.moveCursorTo(cursor.row - 1, this.doc.getLine(cursor.row - 1).length);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, -1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, -tabSize);\n }\n else {\n this.moveCursorBy(0, -1);\n }\n }\n };\n Selection.prototype.moveCursorRight = function () {\n var cursor = this.lead.getPosition(), fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, 1)) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n }\n else if (this.lead.column == this.doc.getLine(this.lead.row).length) {\n if (this.lead.row < this.doc.getLength() - 1) {\n this.moveCursorTo(this.lead.row + 1, 0);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n var cursor = this.lead;\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, 1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, tabSize);\n }\n else {\n this.moveCursorBy(0, 1);\n }\n }\n };\n Selection.prototype.moveCursorLineStart = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var screenRow = this.session.documentToScreenRow(row, column);\n var firstColumnPosition = this.session.screenToDocumentPosition(screenRow, 0);\n var beforeCursor = this.session.getDisplayLine(row, null, firstColumnPosition.row, firstColumnPosition.column);\n var leadingSpace = beforeCursor.match(/^\\s*/);\n if (leadingSpace[0].length != column && !this.session.$useEmacsStyleLineStart)\n firstColumnPosition.column += leadingSpace[0].length;\n this.moveCursorToPosition(firstColumnPosition);\n };\n Selection.prototype.moveCursorLineEnd = function () {\n var lead = this.lead;\n var lineEnd = this.session.getDocumentLastRowColumnPosition(lead.row, lead.column);\n if (this.lead.column == lineEnd.column) {\n var line = this.session.getLine(lineEnd.row);\n if (lineEnd.column == line.length) {\n var textEnd = line.search(/\\s+$/);\n if (textEnd > 0)\n lineEnd.column = textEnd;\n }\n }\n this.moveCursorTo(lineEnd.row, lineEnd.column);\n };\n Selection.prototype.moveCursorFileEnd = function () {\n var row = this.doc.getLength() - 1;\n var column = this.doc.getLine(row).length;\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveCursorFileStart = function () {\n this.moveCursorTo(0, 0);\n };\n Selection.prototype.moveCursorLongWordRight = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n return;\n }\n if (this.session.nonTokenRe.exec(rightOfCursor)) {\n column += this.session.nonTokenRe.lastIndex;\n this.session.nonTokenRe.lastIndex = 0;\n rightOfCursor = line.substring(column);\n }\n if (column >= line.length) {\n this.moveCursorTo(row, line.length);\n this.moveCursorRight();\n if (row < this.doc.getLength() - 1)\n this.moveCursorWordRight();\n return;\n }\n if (this.session.tokenRe.exec(rightOfCursor)) {\n column += this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveCursorLongWordLeft = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n return;\n }\n var str = this.session.getFoldStringAt(row, column, -1);\n if (str == null) {\n str = this.doc.getLine(row).substring(0, column);\n }\n var leftOfCursor = lang.stringReverse(str);\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n if (this.session.nonTokenRe.exec(leftOfCursor)) {\n column -= this.session.nonTokenRe.lastIndex;\n leftOfCursor = leftOfCursor.slice(this.session.nonTokenRe.lastIndex);\n this.session.nonTokenRe.lastIndex = 0;\n }\n if (column <= 0) {\n this.moveCursorTo(row, 0);\n this.moveCursorLeft();\n if (row > 0)\n this.moveCursorWordLeft();\n return;\n }\n if (this.session.tokenRe.exec(leftOfCursor)) {\n column -= this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n this.moveCursorTo(row, column);\n };\n Selection.prototype.$shortWordEndIndex = function (rightOfCursor) {\n var index = 0, ch;\n var whitespaceRe = /\\s/;\n var tokenRe = this.session.tokenRe;\n tokenRe.lastIndex = 0;\n if (this.session.tokenRe.exec(rightOfCursor)) {\n index = this.session.tokenRe.lastIndex;\n }\n else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index++;\n if (index < 1) {\n tokenRe.lastIndex = 0;\n while ((ch = rightOfCursor[index]) && !tokenRe.test(ch)) {\n tokenRe.lastIndex = 0;\n index++;\n if (whitespaceRe.test(ch)) {\n if (index > 2) {\n index--;\n break;\n }\n else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index++;\n if (index > 2)\n break;\n }\n }\n }\n }\n }\n tokenRe.lastIndex = 0;\n return index;\n };\n Selection.prototype.moveCursorShortWordRight = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold)\n return this.moveCursorTo(fold.end.row, fold.end.column);\n if (column == line.length) {\n var l = this.doc.getLength();\n do {\n row++;\n rightOfCursor = this.doc.getLine(row);\n } while (row < l && /^\\s*$/.test(rightOfCursor));\n if (!/^\\s+/.test(rightOfCursor))\n rightOfCursor = \"\";\n column = 0;\n }\n var index = this.$shortWordEndIndex(rightOfCursor);\n this.moveCursorTo(row, column + index);\n };\n Selection.prototype.moveCursorShortWordLeft = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1))\n return this.moveCursorTo(fold.start.row, fold.start.column);\n var line = this.session.getLine(row).substring(0, column);\n if (column === 0) {\n do {\n row--;\n line = this.doc.getLine(row);\n } while (row > 0 && /^\\s*$/.test(line));\n column = line.length;\n if (!/\\s+$/.test(line))\n line = \"\";\n }\n var leftOfCursor = lang.stringReverse(line);\n var index = this.$shortWordEndIndex(leftOfCursor);\n return this.moveCursorTo(row, column - index);\n };\n Selection.prototype.moveCursorWordRight = function () {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordRight();\n else\n this.moveCursorShortWordRight();\n };\n Selection.prototype.moveCursorWordLeft = function () {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordLeft();\n else\n this.moveCursorShortWordLeft();\n };\n Selection.prototype.moveCursorBy = function (rows, chars) {\n var screenPos = this.session.documentToScreenPosition(this.lead.row, this.lead.column);\n var offsetX;\n if (chars === 0) {\n if (rows !== 0) {\n if (this.session.$bidiHandler.isBidiRow(screenPos.row, this.lead.row)) {\n offsetX = this.session.$bidiHandler.getPosLeft(screenPos.column);\n screenPos.column = Math.round(offsetX / this.session.$bidiHandler.charWidths[0]);\n }\n else {\n offsetX = screenPos.column * this.session.$bidiHandler.charWidths[0];\n }\n }\n if (this.$desiredColumn)\n screenPos.column = this.$desiredColumn;\n else\n this.$desiredColumn = screenPos.column;\n }\n if (rows != 0 && this.session.lineWidgets && this.session.lineWidgets[this.lead.row]) {\n var widget = this.session.lineWidgets[this.lead.row];\n if (rows < 0)\n rows -= widget.rowsAbove || 0;\n else if (rows > 0)\n rows += widget.rowCount - (widget.rowsAbove || 0);\n }\n var docPos = this.session.screenToDocumentPosition(screenPos.row + rows, screenPos.column, offsetX);\n if (rows !== 0 && chars === 0 && docPos.row === this.lead.row && docPos.column === this.lead.column) {\n }\n this.moveCursorTo(docPos.row, docPos.column + chars, chars === 0);\n };\n Selection.prototype.moveCursorToPosition = function (position) {\n this.moveCursorTo(position.row, position.column);\n };\n Selection.prototype.moveCursorTo = function (row, column, keepDesiredColumn) {\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n row = fold.start.row;\n column = fold.start.column;\n }\n this.$keepDesiredColumnOnChange = true;\n var line = this.session.getLine(row);\n if (/[\\uDC00-\\uDFFF]/.test(line.charAt(column)) && line.charAt(column - 1)) {\n if (this.lead.row == row && this.lead.column == column + 1)\n column = column - 1;\n else\n column = column + 1;\n }\n this.lead.setPosition(row, column);\n this.$keepDesiredColumnOnChange = false;\n if (!keepDesiredColumn)\n this.$desiredColumn = null;\n };\n Selection.prototype.moveCursorToScreen = function (row, column, keepDesiredColumn) {\n var pos = this.session.screenToDocumentPosition(row, column);\n this.moveCursorTo(pos.row, pos.column, keepDesiredColumn);\n };\n Selection.prototype.detach = function () {\n this.lead.detach();\n this.anchor.detach();\n };\n Selection.prototype.fromOrientedRange = function (range) {\n this.setSelectionRange(range, range.cursor == range.start);\n this.$desiredColumn = range.desiredColumn || this.$desiredColumn;\n };\n Selection.prototype.toOrientedRange = function (range) {\n var r = this.getRange();\n if (range) {\n range.start.column = r.start.column;\n range.start.row = r.start.row;\n range.end.column = r.end.column;\n range.end.row = r.end.row;\n }\n else {\n range = r;\n }\n range.cursor = this.isBackwards() ? range.start : range.end;\n range.desiredColumn = this.$desiredColumn;\n return range;\n };\n Selection.prototype.getRangeOfMovements = function (func) {\n var start = this.getCursor();\n try {\n func(this);\n var end = this.getCursor();\n return Range.fromPoints(start, end);\n }\n catch (e) {\n return Range.fromPoints(start, start);\n }\n finally {\n this.moveCursorToPosition(start);\n }\n };\n Selection.prototype.toJSON = function () {\n if (this.rangeCount) {\n var data = this.ranges.map(function (r) {\n var r1 = r.clone();\n r1.isBackwards = r.cursor == r.start;\n return r1;\n });\n }\n else {\n var data = this.getRange();\n data.isBackwards = this.isBackwards();\n }\n return data;\n };\n Selection.prototype.fromJSON = function (data) {\n if (data.start == undefined) {\n if (this.rangeList && data.length > 1) {\n this.toSingleRange(data[0]);\n for (var i = data.length; i--;) {\n var r = Range.fromPoints(data[i].start, data[i].end);\n if (data[i].isBackwards)\n r.cursor = r.start;\n this.addRange(r, true);\n }\n return;\n }\n else {\n data = data[0];\n }\n }\n if (this.rangeList)\n this.toSingleRange(data);\n this.setSelectionRange(data, data.isBackwards);\n };\n Selection.prototype.isEqual = function (data) {\n if ((data.length || this.rangeCount) && data.length != this.rangeCount)\n return false;\n if (!data.length || !this.ranges)\n return this.getRange().isEqual(data);\n for (var i = this.ranges.length; i--;) {\n if (!this.ranges[i].isEqual(data[i]))\n return false;\n }\n return true;\n };\n return Selection;\n}());\nSelection.prototype.setSelectionAnchor = Selection.prototype.setAnchor;\nSelection.prototype.getSelectionAnchor = Selection.prototype.getAnchor;\nSelection.prototype.setSelectionRange = Selection.prototype.setRange;\noop.implement(Selection.prototype, EventEmitter);\nexports.Selection = Selection;\n\n});\n\nace.define(\"ace/tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/report_error\"], function(require, exports, module){\"use strict\";\nvar reportError = require(\"./lib/report_error\").reportError;\nvar MAX_TOKEN_COUNT = 2000;\nvar Tokenizer = /** @class */ (function () {\n function Tokenizer(rules) {\n this.states = rules;\n this.regExps = {};\n this.matchMappings = {};\n for (var key in this.states) {\n var state = this.states[key];\n var ruleRegExps = [];\n var matchTotal = 0;\n var mapping = this.matchMappings[key] = { defaultToken: \"text\" };\n var flag = \"g\";\n var splitterRurles = [];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.defaultToken)\n mapping.defaultToken = rule.defaultToken;\n if (rule.caseInsensitive && flag.indexOf(\"i\") === -1)\n flag += \"i\";\n if (rule.unicode && flag.indexOf(\"u\") === -1)\n flag += \"u\";\n if (rule.regex == null)\n continue;\n if (rule.regex instanceof RegExp)\n rule.regex = rule.regex.toString().slice(1, -1);\n var adjustedregex = rule.regex;\n var matchcount = new RegExp(\"(?:(\" + adjustedregex + \")|(.))\").exec(\"a\").length - 2;\n if (Array.isArray(rule.token)) {\n if (rule.token.length == 1 || matchcount == 1) {\n rule.token = rule.token[0];\n }\n else if (matchcount - 1 != rule.token.length) {\n this.reportError(\"number of classes and regexp groups doesn't match\", {\n rule: rule,\n groupCount: matchcount - 1\n });\n rule.token = rule.token[0];\n }\n else {\n rule.tokenArray = rule.token;\n rule.token = null;\n rule.onMatch = this.$arrayTokens;\n }\n }\n else if (typeof rule.token == \"function\" && !rule.onMatch) {\n if (matchcount > 1)\n rule.onMatch = this.$applyToken;\n else\n rule.onMatch = rule.token;\n }\n if (matchcount > 1) {\n if (/\\\\\\d/.test(rule.regex)) {\n adjustedregex = rule.regex.replace(/\\\\([0-9]+)/g, function (match, digit) {\n return \"\\\\\" + (parseInt(digit, 10) + matchTotal + 1);\n });\n }\n else {\n matchcount = 1;\n adjustedregex = this.removeCapturingGroups(rule.regex);\n }\n if (!rule.splitRegex && typeof rule.token != \"string\")\n splitterRurles.push(rule); // flag will be known only at the very end\n }\n mapping[matchTotal] = i;\n matchTotal += matchcount;\n ruleRegExps.push(adjustedregex);\n if (!rule.onMatch)\n rule.onMatch = null;\n }\n if (!ruleRegExps.length) {\n mapping[0] = 0;\n ruleRegExps.push(\"$\");\n }\n splitterRurles.forEach(function (rule) {\n rule.splitRegex = this.createSplitterRegexp(rule.regex, flag);\n }, this);\n this.regExps[key] = new RegExp(\"(\" + ruleRegExps.join(\")|(\") + \")|($)\", flag);\n }\n }\n Tokenizer.prototype.$setMaxTokenCount = function (m) {\n MAX_TOKEN_COUNT = m | 0;\n };\n Tokenizer.prototype.$applyToken = function (str) {\n var values = this.splitRegex.exec(str).slice(1);\n var types = this.token.apply(this, values);\n if (typeof types === \"string\")\n return [{ type: types, value: str }];\n var tokens = [];\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i]\n };\n }\n return tokens;\n };\n Tokenizer.prototype.$arrayTokens = function (str) {\n if (!str)\n return [];\n var values = this.splitRegex.exec(str);\n if (!values)\n return \"text\";\n var tokens = [];\n var types = this.tokenArray;\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i + 1])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i + 1]\n };\n }\n return tokens;\n };\n Tokenizer.prototype.removeCapturingGroups = function (src) {\n var r = src.replace(/\\\\.|\\[(?:\\\\.|[^\\\\\\]])*|\\(\\?[:=!<]|(\\()/g, function (x, y) { return y ? \"(?:\" : x; });\n return r;\n };\n Tokenizer.prototype.createSplitterRegexp = function (src, flag) {\n if (src.indexOf(\"(?=\") != -1) {\n var stack = 0;\n var inChClass = false;\n var lastCapture = {};\n src.replace(/(\\\\.)|(\\((?:\\?[=!])?)|(\\))|([\\[\\]])/g, function (m, esc, parenOpen, parenClose, square, index) {\n if (inChClass) {\n inChClass = square != \"]\";\n }\n else if (square) {\n inChClass = true;\n }\n else if (parenClose) {\n if (stack == lastCapture.stack) {\n lastCapture.end = index + 1;\n lastCapture.stack = -1;\n }\n stack--;\n }\n else if (parenOpen) {\n stack++;\n if (parenOpen.length != 1) {\n lastCapture.stack = stack;\n lastCapture.start = index;\n }\n }\n return m;\n });\n if (lastCapture.end != null && /^\\)*$/.test(src.substr(lastCapture.end)))\n src = src.substring(0, lastCapture.start) + src.substr(lastCapture.end);\n }\n if (src.charAt(0) != \"^\")\n src = \"^\" + src;\n if (src.charAt(src.length - 1) != \"$\")\n src += \"$\";\n return new RegExp(src, (flag || \"\").replace(\"g\", \"\"));\n };\n Tokenizer.prototype.getLineTokens = function (line, startState) {\n if (startState && typeof startState != \"string\") {\n var stack = startState.slice(0);\n startState = stack[0];\n if (startState === \"#tmp\") {\n stack.shift();\n startState = stack.shift();\n }\n }\n else\n var stack = [];\n var currentState = startState || \"start\";\n var state = this.states[currentState];\n if (!state) {\n currentState = \"start\";\n state = this.states[currentState];\n }\n var mapping = this.matchMappings[currentState];\n var re = this.regExps[currentState];\n re.lastIndex = 0;\n var match, tokens = [];\n var lastIndex = 0;\n var matchAttempts = 0;\n var token = { type: null, value: \"\" };\n while (match = re.exec(line)) {\n var type = mapping.defaultToken;\n var rule = null;\n var value = match[0];\n var index = re.lastIndex;\n if (index - value.length > lastIndex) {\n var skipped = line.substring(lastIndex, index - value.length);\n if (token.type == type) {\n token.value += skipped;\n }\n else {\n if (token.type)\n tokens.push(token);\n token = { type: type, value: skipped };\n }\n }\n for (var i = 0; i < match.length - 2; i++) {\n if (match[i + 1] === undefined)\n continue;\n rule = state[mapping[i]];\n if (rule.onMatch)\n type = rule.onMatch(value, currentState, stack, line);\n else\n type = rule.token;\n if (rule.next) {\n if (typeof rule.next == \"string\") {\n currentState = rule.next;\n }\n else {\n currentState = rule.next(currentState, stack);\n }\n state = this.states[currentState];\n if (!state) {\n this.reportError(\"state doesn't exist\", currentState);\n currentState = \"start\";\n state = this.states[currentState];\n }\n mapping = this.matchMappings[currentState];\n lastIndex = index;\n re = this.regExps[currentState];\n re.lastIndex = index;\n }\n if (rule.consumeLineEnd)\n lastIndex = index;\n break;\n }\n if (value) {\n if (typeof type === \"string\") {\n if ((!rule || rule.merge !== false) && token.type === type) {\n token.value += value;\n }\n else {\n if (token.type)\n tokens.push(token);\n token = { type: type, value: value };\n }\n }\n else if (type) {\n if (token.type)\n tokens.push(token);\n token = { type: null, value: \"\" };\n for (var i = 0; i < type.length; i++)\n tokens.push(type[i]);\n }\n }\n if (lastIndex == line.length)\n break;\n lastIndex = index;\n if (matchAttempts++ > MAX_TOKEN_COUNT) {\n if (matchAttempts > 2 * line.length) {\n this.reportError(\"infinite loop with in ace tokenizer\", {\n startState: startState,\n line: line\n });\n }\n while (lastIndex < line.length) {\n if (token.type)\n tokens.push(token);\n token = {\n value: line.substring(lastIndex, lastIndex += 500),\n type: \"overflow\"\n };\n }\n currentState = \"start\";\n stack = [];\n break;\n }\n }\n if (token.type)\n tokens.push(token);\n if (stack.length > 1) {\n if (stack[0] !== currentState)\n stack.unshift(\"#tmp\", currentState);\n }\n return {\n tokens: tokens,\n state: stack.length ? stack : currentState\n };\n };\n return Tokenizer;\n}());\nTokenizer.prototype.reportError = reportError;\nexports.Tokenizer = Tokenizer;\n\n});\n\nace.define(\"ace/mode/text_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/deep_copy\"], function(require, exports, module){\"use strict\";\nvar deepCopy = require(\"../lib/deep_copy\").deepCopy;\nvar TextHighlightRules = function () {\n this.$rules = {\n \"start\": [{\n token: \"empty_line\",\n regex: '^$'\n }, {\n defaultToken: \"text\"\n }]\n };\n};\n(function () {\n this.addRules = function (rules, prefix) {\n if (!prefix) {\n for (var key in rules)\n this.$rules[key] = rules[key];\n return;\n }\n for (var key in rules) {\n var state = rules[key];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.next || rule.onMatch) {\n if (typeof rule.next == \"string\") {\n if (rule.next.indexOf(prefix) !== 0)\n rule.next = prefix + rule.next;\n }\n if (rule.nextState && rule.nextState.indexOf(prefix) !== 0)\n rule.nextState = prefix + rule.nextState;\n }\n }\n this.$rules[prefix + key] = state;\n }\n };\n this.getRules = function () {\n return this.$rules;\n };\n this.embedRules = function (HighlightRules, prefix, escapeRules, states, append) {\n var embedRules = typeof HighlightRules == \"function\"\n ? new HighlightRules().getRules()\n : HighlightRules;\n if (states) {\n for (var i = 0; i < states.length; i++)\n states[i] = prefix + states[i];\n }\n else {\n states = [];\n for (var key in embedRules)\n states.push(prefix + key);\n }\n this.addRules(embedRules, prefix);\n if (escapeRules) {\n var addRules = Array.prototype[append ? \"push\" : \"unshift\"];\n for (var i = 0; i < states.length; i++)\n addRules.apply(this.$rules[states[i]], deepCopy(escapeRules));\n }\n if (!this.$embeds)\n this.$embeds = [];\n this.$embeds.push(prefix);\n };\n this.getEmbeds = function () {\n return this.$embeds;\n };\n var pushState = function (currentState, stack) {\n if (currentState != \"start\" || stack.length)\n stack.unshift(this.nextState, currentState);\n return this.nextState;\n };\n var popState = function (currentState, stack) {\n stack.shift();\n return stack.shift() || \"start\";\n };\n this.normalizeRules = function () {\n var id = 0;\n var rules = this.$rules;\n function processState(key) {\n var state = rules[key];\n state.processed = true;\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n var toInsert = null;\n if (Array.isArray(rule)) {\n toInsert = rule;\n rule = {};\n }\n if (!rule.regex && rule.start) {\n rule.regex = rule.start;\n if (!rule.next)\n rule.next = [];\n rule.next.push({\n defaultToken: rule.token\n }, {\n token: rule.token + \".end\",\n regex: rule.end || rule.start,\n next: \"pop\"\n });\n rule.token = rule.token + \".start\";\n rule.push = true;\n }\n var next = rule.next || rule.push;\n if (next && Array.isArray(next)) {\n var stateName = rule.stateName;\n if (!stateName) {\n stateName = rule.token;\n if (typeof stateName != \"string\")\n stateName = stateName[0] || \"\";\n if (rules[stateName])\n stateName += id++;\n }\n rules[stateName] = next;\n rule.next = stateName;\n processState(stateName);\n }\n else if (next == \"pop\") {\n rule.next = popState;\n }\n if (rule.push) {\n rule.nextState = rule.next || rule.push;\n rule.next = pushState;\n delete rule.push;\n }\n if (rule.rules) {\n for (var r in rule.rules) {\n if (rules[r]) {\n if (rules[r].push)\n rules[r].push.apply(rules[r], rule.rules[r]);\n }\n else {\n rules[r] = rule.rules[r];\n }\n }\n }\n var includeName = typeof rule == \"string\" ? rule : rule.include;\n if (includeName) {\n if (includeName === \"$self\")\n includeName = \"start\";\n if (Array.isArray(includeName))\n toInsert = includeName.map(function (x) { return rules[x]; });\n else\n toInsert = rules[includeName];\n }\n if (toInsert) {\n var args = [i, 1].concat(toInsert);\n if (rule.noEscape)\n args = args.filter(function (x) { return !x.next; });\n state.splice.apply(state, args);\n i--;\n }\n if (rule.keywordMap) {\n rule.token = this.createKeywordMapper(rule.keywordMap, rule.defaultToken || \"text\", rule.caseInsensitive);\n delete rule.defaultToken;\n }\n }\n }\n Object.keys(rules).forEach(processState, this);\n };\n this.createKeywordMapper = function (map, defaultToken, ignoreCase, splitChar) {\n var keywords = Object.create(null);\n this.$keywordList = [];\n Object.keys(map).forEach(function (className) {\n var a = map[className];\n var list = a.split(splitChar || \"|\");\n for (var i = list.length; i--;) {\n var word = list[i];\n this.$keywordList.push(word);\n if (ignoreCase)\n word = word.toLowerCase();\n keywords[word] = className;\n }\n }, this);\n map = null;\n return ignoreCase\n ? function (value) { return keywords[value.toLowerCase()] || defaultToken; }\n : function (value) { return keywords[value] || defaultToken; };\n };\n this.getKeywords = function () {\n return this.$keywords;\n };\n}).call(TextHighlightRules.prototype);\nexports.TextHighlightRules = TextHighlightRules;\n\n});\n\nace.define(\"ace/mode/behaviour\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar Behaviour = function () {\n this.$behaviours = {};\n};\n(function () {\n this.add = function (name, action, callback) {\n switch (undefined) {\n case this.$behaviours:\n this.$behaviours = {};\n case this.$behaviours[name]:\n this.$behaviours[name] = {};\n }\n this.$behaviours[name][action] = callback;\n };\n this.addBehaviours = function (behaviours) {\n for (var key in behaviours) {\n for (var action in behaviours[key]) {\n this.add(key, action, behaviours[key][action]);\n }\n }\n };\n this.remove = function (name) {\n if (this.$behaviours && this.$behaviours[name]) {\n delete this.$behaviours[name];\n }\n };\n this.inherit = function (mode, filter) {\n if (typeof mode === \"function\") {\n var behaviours = new mode().getBehaviours(filter);\n }\n else {\n var behaviours = mode.getBehaviours(filter);\n }\n this.addBehaviours(behaviours);\n };\n this.getBehaviours = function (filter) {\n if (!filter) {\n return this.$behaviours;\n }\n else {\n var ret = {};\n for (var i = 0; i < filter.length; i++) {\n if (this.$behaviours[filter[i]]) {\n ret[filter[i]] = this.$behaviours[filter[i]];\n }\n }\n return ret;\n }\n };\n}).call(Behaviour.prototype);\nexports.Behaviour = Behaviour;\n\n});\n\nace.define(\"ace/token_iterator\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar TokenIterator = /** @class */ (function () {\n function TokenIterator(session, initialRow, initialColumn) {\n this.$session = session;\n this.$row = initialRow;\n this.$rowTokens = session.getTokens(initialRow);\n var token = session.getTokenAt(initialRow, initialColumn);\n this.$tokenIndex = token ? token.index : -1;\n }\n TokenIterator.prototype.stepBackward = function () {\n this.$tokenIndex -= 1;\n while (this.$tokenIndex < 0) {\n this.$row -= 1;\n if (this.$row < 0) {\n this.$row = 0;\n return null;\n }\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = this.$rowTokens.length - 1;\n }\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.stepForward = function () {\n this.$tokenIndex += 1;\n var rowCount;\n while (this.$tokenIndex >= this.$rowTokens.length) {\n this.$row += 1;\n if (!rowCount)\n rowCount = this.$session.getLength();\n if (this.$row >= rowCount) {\n this.$row = rowCount - 1;\n return null;\n }\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = 0;\n }\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.getCurrentToken = function () {\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.getCurrentTokenRow = function () {\n return this.$row;\n };\n TokenIterator.prototype.getCurrentTokenColumn = function () {\n var rowTokens = this.$rowTokens;\n var tokenIndex = this.$tokenIndex;\n var column = rowTokens[tokenIndex].start;\n if (column !== undefined)\n return column;\n column = 0;\n while (tokenIndex > 0) {\n tokenIndex -= 1;\n column += rowTokens[tokenIndex].value.length;\n }\n return column;\n };\n TokenIterator.prototype.getCurrentTokenPosition = function () {\n return { row: this.$row, column: this.getCurrentTokenColumn() };\n };\n TokenIterator.prototype.getCurrentTokenRange = function () {\n var token = this.$rowTokens[this.$tokenIndex];\n var column = this.getCurrentTokenColumn();\n return new Range(this.$row, column, this.$row, column + token.value.length);\n };\n return TokenIterator;\n}());\nexports.TokenIterator = TokenIterator;\n\n});\n\nace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\nvar SAFE_INSERT_IN_TOKENS = [\"text\", \"paren.rparen\", \"rparen\", \"paren\", \"punctuation.operator\"];\nvar SAFE_INSERT_BEFORE_TOKENS = [\"text\", \"paren.rparen\", \"rparen\", \"paren\", \"punctuation.operator\", \"comment\"];\nvar context;\nvar contextCache = {};\nvar defaultQuotes = { '\"': '\"', \"'\": \"'\" };\nvar initContext = function (editor) {\n var id = -1;\n if (editor.multiSelect) {\n id = editor.selection.index;\n if (contextCache.rangeCount != editor.multiSelect.rangeCount)\n contextCache = { rangeCount: editor.multiSelect.rangeCount };\n }\n if (contextCache[id])\n return context = contextCache[id];\n context = contextCache[id] = {\n autoInsertedBrackets: 0,\n autoInsertedRow: -1,\n autoInsertedLineEnd: \"\",\n maybeInsertedBrackets: 0,\n maybeInsertedRow: -1,\n maybeInsertedLineStart: \"\",\n maybeInsertedLineEnd: \"\"\n };\n};\nvar getWrapped = function (selection, selected, opening, closing) {\n var rowDiff = selection.end.row - selection.start.row;\n return {\n text: opening + selected + closing,\n selection: [\n 0,\n selection.start.column + 1,\n rowDiff,\n selection.end.column + (rowDiff ? 0 : 1)\n ]\n };\n};\nvar CstyleBehaviour = function (options) {\n options = options || {};\n this.add(\"braces\", \"insertion\", function (state, action, editor, session, text) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (text == '{') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"{\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '{', '}');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n if (/[\\]\\}\\)]/.test(line[cursor.column]) || editor.inMultiSelectMode || options.braces) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"}\");\n return {\n text: '{}',\n selection: [1, 1]\n };\n }\n else {\n CstyleBehaviour.recordMaybeInsert(editor, session, \"{\");\n return {\n text: '{',\n selection: [1, 1]\n };\n }\n }\n }\n else if (text == '}') {\n initContext(editor);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == '}') {\n var matching = session.$findOpeningBracket('}', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n else if (text == \"\\n\" || text == \"\\r\\n\") {\n initContext(editor);\n var closing = \"\";\n if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {\n closing = lang.stringRepeat(\"}\", context.maybeInsertedBrackets);\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === '}') {\n var openBracePos = session.findMatchingBracket({ row: cursor.row, column: cursor.column + 1 }, '}');\n if (!openBracePos)\n return null;\n var next_indent = this.$getIndent(session.getLine(openBracePos.row));\n }\n else if (closing) {\n var next_indent = this.$getIndent(line);\n }\n else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n return;\n }\n var indent = next_indent + session.getTabString();\n return {\n text: '\\n' + indent + '\\n' + next_indent + closing,\n selection: [1, indent.length, 1, indent.length]\n };\n }\n else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n });\n this.add(\"braces\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '{') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar == '}') {\n range.end.column++;\n return range;\n }\n else {\n context.maybeInsertedBrackets--;\n }\n }\n });\n this.add(\"parens\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '(') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '(', ')');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \")\");\n return {\n text: '()',\n selection: [1, 1]\n };\n }\n }\n else if (text == ')') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ')') {\n var matching = session.$findOpeningBracket(')', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"parens\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '(') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ')') {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"brackets\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '[') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '[', ']');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"]\");\n return {\n text: '[]',\n selection: [1, 1]\n };\n }\n }\n else if (text == ']') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ']') {\n var matching = session.$findOpeningBracket(']', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"brackets\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '[') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ']') {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n var quotes = session.$mode.$quotes || defaultQuotes;\n if (text.length == 1 && quotes[text]) {\n if (this.lineCommentStart && this.lineCommentStart.indexOf(text) != -1)\n return;\n initContext(editor);\n var quote = text;\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && (selected.length != 1 || !quotes[selected]) && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, quote, quote);\n }\n else if (!selected) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var leftChar = line.substring(cursor.column - 1, cursor.column);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n var token = session.getTokenAt(cursor.row, cursor.column);\n var rightToken = session.getTokenAt(cursor.row, cursor.column + 1);\n if (leftChar == \"\\\\\" && token && /escape/.test(token.type))\n return null;\n var stringBefore = token && /string|escape/.test(token.type);\n var stringAfter = !rightToken || /string|escape/.test(rightToken.type);\n var pair;\n if (rightChar == quote) {\n pair = stringBefore !== stringAfter;\n if (pair && /string\\.end/.test(rightToken.type))\n pair = false;\n }\n else {\n if (stringBefore && !stringAfter)\n return null; // wrap string with different quote\n if (stringBefore && stringAfter)\n return null; // do not pair quotes inside strings\n var wordRe = session.$mode.tokenRe;\n wordRe.lastIndex = 0;\n var isWordBefore = wordRe.test(leftChar);\n wordRe.lastIndex = 0;\n var isWordAfter = wordRe.test(rightChar);\n var pairQuotesAfter = session.$mode.$pairQuotesAfter;\n var shouldPairQuotes = pairQuotesAfter && pairQuotesAfter[quote] && pairQuotesAfter[quote].test(leftChar);\n if ((!shouldPairQuotes && isWordBefore) || isWordAfter)\n return null; // before or after alphanumeric\n if (rightChar && !/[\\s;,.})\\]\\\\]/.test(rightChar))\n return null; // there is rightChar and it isn't closing\n var charBefore = line[cursor.column - 2];\n if (leftChar == quote && (charBefore == quote || wordRe.test(charBefore)))\n return null;\n pair = true;\n }\n return {\n text: pair ? quote + quote : \"\",\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"string_dquotes\", \"deletion\", function (state, action, editor, session, range) {\n var quotes = session.$mode.$quotes || defaultQuotes;\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && quotes.hasOwnProperty(selected)) {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n if (options.closeDocComment !== false) {\n this.add(\"doc comment end\", \"insertion\", function (state, action, editor, session, text) {\n if (state === \"doc-start\" && (text === \"\\n\" || text === \"\\r\\n\") && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var nextLine = session.doc.getLine(cursor.row + 1);\n var indent = this.$getIndent(line);\n if (/\\s*\\*/.test(nextLine)) {\n if (/^\\s*\\*/.test(line)) {\n return {\n text: text + indent + \"* \",\n selection: [1, 3 + indent.length, 1, 3 + indent.length]\n };\n }\n else {\n return {\n text: text + indent + \" * \",\n selection: [1, 3 + indent.length, 1, 3 + indent.length]\n };\n }\n }\n if (/\\/\\*\\*/.test(line.substring(0, cursor.column))) {\n return {\n text: text + indent + \" * \" + text + \" \" + indent + \"*/\",\n selection: [1, 4 + indent.length, 1, 4 + indent.length]\n };\n }\n }\n });\n }\n};\nCstyleBehaviour.isSaneInsertion = function (editor, session) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n if (!this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS)) {\n if (/[)}\\]]/.test(editor.session.getLine(cursor.row)[cursor.column]))\n return true;\n var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);\n if (!this.$matchTokenType(iterator2.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS))\n return false;\n }\n iterator.stepForward();\n return iterator.getCurrentTokenRow() !== cursor.row ||\n this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_BEFORE_TOKENS);\n};\nCstyleBehaviour.$matchTokenType = function (token, types) {\n return types.indexOf(token.type || token) > -1;\n};\nCstyleBehaviour.recordAutoInsert = function (editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))\n context.autoInsertedBrackets = 0;\n context.autoInsertedRow = cursor.row;\n context.autoInsertedLineEnd = bracket + line.substr(cursor.column);\n context.autoInsertedBrackets++;\n};\nCstyleBehaviour.recordMaybeInsert = function (editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isMaybeInsertedClosing(cursor, line))\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = cursor.row;\n context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;\n context.maybeInsertedLineEnd = line.substr(cursor.column);\n context.maybeInsertedBrackets++;\n};\nCstyleBehaviour.isAutoInsertedClosing = function (cursor, line, bracket) {\n return context.autoInsertedBrackets > 0 &&\n cursor.row === context.autoInsertedRow &&\n bracket === context.autoInsertedLineEnd[0] &&\n line.substr(cursor.column) === context.autoInsertedLineEnd;\n};\nCstyleBehaviour.isMaybeInsertedClosing = function (cursor, line) {\n return context.maybeInsertedBrackets > 0 &&\n cursor.row === context.maybeInsertedRow &&\n line.substr(cursor.column) === context.maybeInsertedLineEnd &&\n line.substr(0, cursor.column) == context.maybeInsertedLineStart;\n};\nCstyleBehaviour.popAutoInsertedClosing = function () {\n context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);\n context.autoInsertedBrackets--;\n};\nCstyleBehaviour.clearMaybeInsertedClosing = function () {\n if (context) {\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = -1;\n }\n};\noop.inherits(CstyleBehaviour, Behaviour);\nexports.CstyleBehaviour = CstyleBehaviour;\n\n});\n\nace.define(\"ace/unicode\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar wordChars = [48, 9, 8, 25, 5, 0, 2, 25, 48, 0, 11, 0, 5, 0, 6, 22, 2, 30, 2, 457, 5, 11, 15, 4, 8, 0, 2, 0, 18, 116, 2, 1, 3, 3, 9, 0, 2, 2, 2, 0, 2, 19, 2, 82, 2, 138, 2, 4, 3, 155, 12, 37, 3, 0, 8, 38, 10, 44, 2, 0, 2, 1, 2, 1, 2, 0, 9, 26, 6, 2, 30, 10, 7, 61, 2, 9, 5, 101, 2, 7, 3, 9, 2, 18, 3, 0, 17, 58, 3, 100, 15, 53, 5, 0, 6, 45, 211, 57, 3, 18, 2, 5, 3, 11, 3, 9, 2, 1, 7, 6, 2, 2, 2, 7, 3, 1, 3, 21, 2, 6, 2, 0, 4, 3, 3, 8, 3, 1, 3, 3, 9, 0, 5, 1, 2, 4, 3, 11, 16, 2, 2, 5, 5, 1, 3, 21, 2, 6, 2, 1, 2, 1, 2, 1, 3, 0, 2, 4, 5, 1, 3, 2, 4, 0, 8, 3, 2, 0, 8, 15, 12, 2, 2, 8, 2, 2, 2, 21, 2, 6, 2, 1, 2, 4, 3, 9, 2, 2, 2, 2, 3, 0, 16, 3, 3, 9, 18, 2, 2, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 3, 8, 3, 1, 3, 2, 9, 1, 5, 1, 2, 4, 3, 9, 2, 0, 17, 1, 2, 5, 4, 2, 2, 3, 4, 1, 2, 0, 2, 1, 4, 1, 4, 2, 4, 11, 5, 4, 4, 2, 2, 3, 3, 0, 7, 0, 15, 9, 18, 2, 2, 7, 2, 2, 2, 22, 2, 9, 2, 4, 4, 7, 2, 2, 2, 3, 8, 1, 2, 1, 7, 3, 3, 9, 19, 1, 2, 7, 2, 2, 2, 22, 2, 9, 2, 4, 3, 8, 2, 2, 2, 3, 8, 1, 8, 0, 2, 3, 3, 9, 19, 1, 2, 7, 2, 2, 2, 22, 2, 15, 4, 7, 2, 2, 2, 3, 10, 0, 9, 3, 3, 9, 11, 5, 3, 1, 2, 17, 4, 23, 2, 8, 2, 0, 3, 6, 4, 0, 5, 5, 2, 0, 2, 7, 19, 1, 14, 57, 6, 14, 2, 9, 40, 1, 2, 0, 3, 1, 2, 0, 3, 0, 7, 3, 2, 6, 2, 2, 2, 0, 2, 0, 3, 1, 2, 12, 2, 2, 3, 4, 2, 0, 2, 5, 3, 9, 3, 1, 35, 0, 24, 1, 7, 9, 12, 0, 2, 0, 2, 0, 5, 9, 2, 35, 5, 19, 2, 5, 5, 7, 2, 35, 10, 0, 58, 73, 7, 77, 3, 37, 11, 42, 2, 0, 4, 328, 2, 3, 3, 6, 2, 0, 2, 3, 3, 40, 2, 3, 3, 32, 2, 3, 3, 6, 2, 0, 2, 3, 3, 14, 2, 56, 2, 3, 3, 66, 5, 0, 33, 15, 17, 84, 13, 619, 3, 16, 2, 25, 6, 74, 22, 12, 2, 6, 12, 20, 12, 19, 13, 12, 2, 2, 2, 1, 13, 51, 3, 29, 4, 0, 5, 1, 3, 9, 34, 2, 3, 9, 7, 87, 9, 42, 6, 69, 11, 28, 4, 11, 5, 11, 11, 39, 3, 4, 12, 43, 5, 25, 7, 10, 38, 27, 5, 62, 2, 28, 3, 10, 7, 9, 14, 0, 89, 75, 5, 9, 18, 8, 13, 42, 4, 11, 71, 55, 9, 9, 4, 48, 83, 2, 2, 30, 14, 230, 23, 280, 3, 5, 3, 37, 3, 5, 3, 7, 2, 0, 2, 0, 2, 0, 2, 30, 3, 52, 2, 6, 2, 0, 4, 2, 2, 6, 4, 3, 3, 5, 5, 12, 6, 2, 2, 6, 67, 1, 20, 0, 29, 0, 14, 0, 17, 4, 60, 12, 5, 0, 4, 11, 18, 0, 5, 0, 3, 9, 2, 0, 4, 4, 7, 0, 2, 0, 2, 0, 2, 3, 2, 10, 3, 3, 6, 4, 5, 0, 53, 1, 2684, 46, 2, 46, 2, 132, 7, 6, 15, 37, 11, 53, 10, 0, 17, 22, 10, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 31, 48, 0, 470, 1, 36, 5, 2, 4, 6, 1, 5, 85, 3, 1, 3, 2, 2, 89, 2, 3, 6, 40, 4, 93, 18, 23, 57, 15, 513, 6581, 75, 20939, 53, 1164, 68, 45, 3, 268, 4, 27, 21, 31, 3, 13, 13, 1, 2, 24, 9, 69, 11, 1, 38, 8, 3, 102, 3, 1, 111, 44, 25, 51, 13, 68, 12, 9, 7, 23, 4, 0, 5, 45, 3, 35, 13, 28, 4, 64, 15, 10, 39, 54, 10, 13, 3, 9, 7, 22, 4, 1, 5, 66, 25, 2, 227, 42, 2, 1, 3, 9, 7, 11171, 13, 22, 5, 48, 8453, 301, 3, 61, 3, 105, 39, 6, 13, 4, 6, 11, 2, 12, 2, 4, 2, 0, 2, 1, 2, 1, 2, 107, 34, 362, 19, 63, 3, 53, 41, 11, 5, 15, 17, 6, 13, 1, 25, 2, 33, 4, 2, 134, 20, 9, 8, 25, 5, 0, 2, 25, 12, 88, 4, 5, 3, 5, 3, 5, 3, 2];\nvar code = 0;\nvar str = [];\nfor (var i = 0; i < wordChars.length; i += 2) {\n str.push(code += wordChars[i]);\n if (wordChars[i + 1])\n str.push(45, code += wordChars[i + 1]);\n}\nexports.wordChars = String.fromCharCode.apply(null, str);\n\n});\n\nace.define(\"ace/mode/text\",[\"require\",\"exports\",\"module\",\"ace/config\",\"ace/tokenizer\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/unicode\",\"ace/lib/lang\",\"ace/token_iterator\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar config = require(\"../config\");\nvar Tokenizer = require(\"../tokenizer\").Tokenizer;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar unicode = require(\"../unicode\");\nvar lang = require(\"../lib/lang\");\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar Range = require(\"../range\").Range;\nvar Mode = function () {\n this.HighlightRules = TextHighlightRules;\n};\n(function () {\n this.$defaultBehaviour = new CstyleBehaviour();\n this.tokenRe = new RegExp(\"^[\" + unicode.wordChars + \"\\\\$_]+\", \"g\");\n this.nonTokenRe = new RegExp(\"^(?:[^\" + unicode.wordChars + \"\\\\$_]|\\\\s])+\", \"g\");\n this.getTokenizer = function () {\n if (!this.$tokenizer) {\n this.$highlightRules = this.$highlightRules || new this.HighlightRules(this.$highlightRuleConfig);\n this.$tokenizer = new Tokenizer(this.$highlightRules.getRules());\n }\n return this.$tokenizer;\n };\n this.lineCommentStart = \"\";\n this.blockComment = \"\";\n this.toggleCommentLines = function (state, session, startRow, endRow) {\n var doc = session.doc;\n var ignoreBlankLines = true;\n var shouldRemove = true;\n var minIndent = Infinity;\n var tabSize = session.getTabSize();\n var insertAtTabStop = false;\n if (!this.lineCommentStart) {\n if (!this.blockComment)\n return false;\n var lineCommentStart = this.blockComment.start;\n var lineCommentEnd = this.blockComment.end;\n var regexpStart = new RegExp(\"^(\\\\s*)(?:\" + lang.escapeRegExp(lineCommentStart) + \")\");\n var regexpEnd = new RegExp(\"(?:\" + lang.escapeRegExp(lineCommentEnd) + \")\\\\s*$\");\n var comment = function (line, i) {\n if (testRemove(line, i))\n return;\n if (!ignoreBlankLines || /\\S/.test(line)) {\n doc.insertInLine({ row: i, column: line.length }, lineCommentEnd);\n doc.insertInLine({ row: i, column: minIndent }, lineCommentStart);\n }\n };\n var uncomment = function (line, i) {\n var m;\n if (m = line.match(regexpEnd))\n doc.removeInLine(i, line.length - m[0].length, line.length);\n if (m = line.match(regexpStart))\n doc.removeInLine(i, m[1].length, m[0].length);\n };\n var testRemove = function (line, row) {\n if (regexpStart.test(line))\n return true;\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n if (tokens[i].type === \"comment\")\n return true;\n }\n };\n }\n else {\n if (Array.isArray(this.lineCommentStart)) {\n var regexpStart = this.lineCommentStart.map(lang.escapeRegExp).join(\"|\");\n var lineCommentStart = this.lineCommentStart[0];\n }\n else {\n var regexpStart = lang.escapeRegExp(this.lineCommentStart);\n var lineCommentStart = this.lineCommentStart;\n }\n regexpStart = new RegExp(\"^(\\\\s*)(?:\" + regexpStart + \") ?\");\n insertAtTabStop = session.getUseSoftTabs();\n var uncomment = function (line, i) {\n var m = line.match(regexpStart);\n if (!m)\n return;\n var start = m[1].length, end = m[0].length;\n if (!shouldInsertSpace(line, start, end) && m[0][end - 1] == \" \")\n end--;\n doc.removeInLine(i, start, end);\n };\n var commentWithSpace = lineCommentStart + \" \";\n var comment = function (line, i) {\n if (!ignoreBlankLines || /\\S/.test(line)) {\n if (shouldInsertSpace(line, minIndent, minIndent))\n doc.insertInLine({ row: i, column: minIndent }, commentWithSpace);\n else\n doc.insertInLine({ row: i, column: minIndent }, lineCommentStart);\n }\n };\n var testRemove = function (line, i) {\n return regexpStart.test(line);\n };\n var shouldInsertSpace = function (line, before, after) {\n var spaces = 0;\n while (before-- && line.charAt(before) == \" \")\n spaces++;\n if (spaces % tabSize != 0)\n return false;\n var spaces = 0;\n while (line.charAt(after++) == \" \")\n spaces++;\n if (tabSize > 2)\n return spaces % tabSize != tabSize - 1;\n else\n return spaces % tabSize == 0;\n };\n }\n function iter(fun) {\n for (var i = startRow; i <= endRow; i++)\n fun(doc.getLine(i), i);\n }\n var minEmptyLength = Infinity;\n iter(function (line, i) {\n var indent = line.search(/\\S/);\n if (indent !== -1) {\n if (indent < minIndent)\n minIndent = indent;\n if (shouldRemove && !testRemove(line, i))\n shouldRemove = false;\n }\n else if (minEmptyLength > line.length) {\n minEmptyLength = line.length;\n }\n });\n if (minIndent == Infinity) {\n minIndent = minEmptyLength;\n ignoreBlankLines = false;\n shouldRemove = false;\n }\n if (insertAtTabStop && minIndent % tabSize != 0)\n minIndent = Math.floor(minIndent / tabSize) * tabSize;\n iter(shouldRemove ? uncomment : comment);\n };\n this.toggleBlockComment = function (state, session, range, cursor) {\n var comment = this.blockComment;\n if (!comment)\n return;\n if (!comment.start && comment[0])\n comment = comment[0];\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n var sel = session.selection;\n var initialRange = session.selection.toOrientedRange();\n var startRow, colDiff;\n if (token && /comment/.test(token.type)) {\n var startRange, endRange;\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.start);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n startRange = new Range(row, column, row, column + comment.start.length);\n break;\n }\n token = iterator.stepBackward();\n }\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.end);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n endRange = new Range(row, column, row, column + comment.end.length);\n break;\n }\n token = iterator.stepForward();\n }\n if (endRange)\n session.remove(endRange);\n if (startRange) {\n session.remove(startRange);\n startRow = startRange.start.row;\n colDiff = -comment.start.length;\n }\n }\n else {\n colDiff = comment.start.length;\n startRow = range.start.row;\n session.insert(range.end, comment.end);\n session.insert(range.start, comment.start);\n }\n if (initialRange.start.row == startRow)\n initialRange.start.column += colDiff;\n if (initialRange.end.row == startRow)\n initialRange.end.column += colDiff;\n session.selection.fromOrientedRange(initialRange);\n };\n this.getNextLineIndent = function (state, line, tab) {\n return this.$getIndent(line);\n };\n this.checkOutdent = function (state, line, input) {\n return false;\n };\n this.autoOutdent = function (state, doc, row) {\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n this.createWorker = function (session) {\n return null;\n };\n this.createModeDelegates = function (mapping) {\n this.$embeds = [];\n this.$modes = {};\n for (var i in mapping) {\n if (mapping[i]) {\n var Mode = mapping[i];\n var id = Mode.prototype.$id;\n var mode = config.$modes[id];\n if (!mode)\n config.$modes[id] = mode = new Mode();\n if (!config.$modes[i])\n config.$modes[i] = mode;\n this.$embeds.push(i);\n this.$modes[i] = mode;\n }\n }\n var delegations = [\"toggleBlockComment\", \"toggleCommentLines\", \"getNextLineIndent\",\n \"checkOutdent\", \"autoOutdent\", \"transformAction\", \"getCompletions\"];\n for (var i = 0; i < delegations.length; i++) {\n (function (scope) {\n var functionName = delegations[i];\n var defaultHandler = scope[functionName];\n scope[delegations[i]] = function () {\n return this.$delegator(functionName, arguments, defaultHandler);\n };\n }(this));\n }\n };\n this.$delegator = function (method, args, defaultHandler) {\n var state = args[0] || \"start\";\n if (typeof state != \"string\") {\n if (Array.isArray(state[2])) {\n var language = state[2][state[2].length - 1];\n var mode = this.$modes[language];\n if (mode)\n return mode[method].apply(mode, [state[1]].concat([].slice.call(args, 1)));\n }\n state = state[0] || \"start\";\n }\n for (var i = 0; i < this.$embeds.length; i++) {\n if (!this.$modes[this.$embeds[i]])\n continue;\n var split = state.split(this.$embeds[i]);\n if (!split[0] && split[1]) {\n args[0] = split[1];\n var mode = this.$modes[this.$embeds[i]];\n return mode[method].apply(mode, args);\n }\n }\n var ret = defaultHandler.apply(this, args);\n return defaultHandler ? ret : undefined;\n };\n this.transformAction = function (state, action, editor, session, param) {\n if (this.$behaviour) {\n var behaviours = this.$behaviour.getBehaviours();\n for (var key in behaviours) {\n if (behaviours[key][action]) {\n var ret = behaviours[key][action].apply(this, arguments);\n if (ret) {\n return ret;\n }\n }\n }\n }\n };\n this.getKeywords = function (append) {\n if (!this.completionKeywords) {\n var rules = this.$tokenizer.rules;\n var completionKeywords = [];\n for (var rule in rules) {\n var ruleItr = rules[rule];\n for (var r = 0, l = ruleItr.length; r < l; r++) {\n if (typeof ruleItr[r].token === \"string\") {\n if (/keyword|support|storage/.test(ruleItr[r].token))\n completionKeywords.push(ruleItr[r].regex);\n }\n else if (typeof ruleItr[r].token === \"object\") {\n for (var a = 0, aLength = ruleItr[r].token.length; a < aLength; a++) {\n if (/keyword|support|storage/.test(ruleItr[r].token[a])) {\n var rule = ruleItr[r].regex.match(/\\(.+?\\)/g)[a];\n completionKeywords.push(rule.substr(1, rule.length - 2));\n }\n }\n }\n }\n }\n this.completionKeywords = completionKeywords;\n }\n if (!append)\n return this.$keywordList;\n return completionKeywords.concat(this.$keywordList || []);\n };\n this.$createKeywordList = function () {\n if (!this.$highlightRules)\n this.getTokenizer();\n return this.$keywordList = this.$highlightRules.$keywordList || [];\n };\n this.getCompletions = function (state, session, pos, prefix) {\n var keywords = this.$keywordList || this.$createKeywordList();\n return keywords.map(function (word) {\n return {\n name: word,\n value: word,\n score: 0,\n meta: \"keyword\"\n };\n });\n };\n this.$id = \"ace/mode/text\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n});\n\nace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nfunction throwDeltaError(delta, errorText) {\n console.log(\"Invalid Delta:\", delta);\n throw \"Invalid Delta: \" + errorText;\n}\nfunction positionInDocument(docLines, position) {\n return position.row >= 0 && position.row < docLines.length &&\n position.column >= 0 && position.column <= docLines[position.row].length;\n}\nfunction validateDelta(docLines, delta) {\n if (delta.action != \"insert\" && delta.action != \"remove\")\n throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n if (!(delta.lines instanceof Array))\n throwDeltaError(delta, \"delta.lines must be an Array\");\n if (!delta.start || !delta.end)\n throwDeltaError(delta, \"delta.start/end must be an present\");\n var start = delta.start;\n if (!positionInDocument(docLines, delta.start))\n throwDeltaError(delta, \"delta.start must be contained in document\");\n var end = delta.end;\n if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n var numRangeRows = end.row - start.row;\n var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n throwDeltaError(delta, \"delta.range must match delta lines\");\n}\nexports.applyDelta = function (docLines, delta, doNotValidate) {\n var row = delta.start.row;\n var startColumn = delta.start.column;\n var line = docLines[row] || \"\";\n switch (delta.action) {\n case \"insert\":\n var lines = delta.lines;\n if (lines.length === 1) {\n docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n }\n else {\n var args = [row, 1].concat(delta.lines);\n docLines.splice.apply(docLines, args);\n docLines[row] = line.substring(0, startColumn) + docLines[row];\n docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n }\n break;\n case \"remove\":\n var endColumn = delta.end.column;\n var endRow = delta.end.row;\n if (row === endRow) {\n docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n }\n else {\n docLines.splice(row, endRow - row + 1, line.substring(0, startColumn) + docLines[endRow].substring(endColumn));\n }\n break;\n }\n};\n\n});\n\nace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Anchor = /** @class */ (function () {\n function Anchor(doc, row, column) {\n this.$onChange = this.onChange.bind(this);\n this.attach(doc);\n if (typeof column == \"undefined\")\n this.setPosition(row.row, row.column);\n else\n this.setPosition(row, column);\n }\n Anchor.prototype.getPosition = function () {\n return this.$clipPositionToDocument(this.row, this.column);\n };\n Anchor.prototype.getDocument = function () {\n return this.document;\n };\n Anchor.prototype.onChange = function (delta) {\n if (delta.start.row == delta.end.row && delta.start.row != this.row)\n return;\n if (delta.start.row > this.row)\n return;\n var point = $getTransformedPoint(delta, { row: this.row, column: this.column }, this.$insertRight);\n this.setPosition(point.row, point.column, true);\n };\n Anchor.prototype.setPosition = function (row, column, noClip) {\n var pos;\n if (noClip) {\n pos = {\n row: row,\n column: column\n };\n }\n else {\n pos = this.$clipPositionToDocument(row, column);\n }\n if (this.row == pos.row && this.column == pos.column)\n return;\n var old = {\n row: this.row,\n column: this.column\n };\n this.row = pos.row;\n this.column = pos.column;\n this._signal(\"change\", {\n old: old,\n value: pos\n });\n };\n Anchor.prototype.detach = function () {\n this.document.off(\"change\", this.$onChange);\n };\n Anchor.prototype.attach = function (doc) {\n this.document = doc || this.document;\n this.document.on(\"change\", this.$onChange);\n };\n Anchor.prototype.$clipPositionToDocument = function (row, column) {\n var pos = {};\n if (row >= this.document.getLength()) {\n pos.row = Math.max(0, this.document.getLength() - 1);\n pos.column = this.document.getLine(pos.row).length;\n }\n else if (row < 0) {\n pos.row = 0;\n pos.column = 0;\n }\n else {\n pos.row = row;\n pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n }\n if (column < 0)\n pos.column = 0;\n return pos;\n };\n return Anchor;\n}());\nAnchor.prototype.$insertRight = false;\noop.implement(Anchor.prototype, EventEmitter);\nfunction $pointsInOrder(point1, point2, equalPointsInOrder) {\n var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n}\nfunction $getTransformedPoint(delta, point, moveIfEqual) {\n var deltaIsInsert = delta.action == \"insert\";\n var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row);\n var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n var deltaStart = delta.start;\n var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n return {\n row: point.row,\n column: point.column\n };\n }\n if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n return {\n row: point.row + deltaRowShift,\n column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n };\n }\n return {\n row: deltaStart.row,\n column: deltaStart.column\n };\n}\nexports.Anchor = Anchor;\n\n});\n\nace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar applyDelta = require(\"./apply_delta\").applyDelta;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Anchor = require(\"./anchor\").Anchor;\nvar Document = /** @class */ (function () {\n function Document(textOrLines) {\n this.$lines = [\"\"];\n if (textOrLines.length === 0) {\n this.$lines = [\"\"];\n }\n else if (Array.isArray(textOrLines)) {\n this.insertMergedLines({ row: 0, column: 0 }, textOrLines);\n }\n else {\n this.insert({ row: 0, column: 0 }, textOrLines);\n }\n }\n Document.prototype.setValue = function (text) {\n var len = this.getLength() - 1;\n this.remove(new Range(0, 0, len, this.getLine(len).length));\n this.insert({ row: 0, column: 0 }, text || \"\");\n };\n Document.prototype.getValue = function () {\n return this.getAllLines().join(this.getNewLineCharacter());\n };\n Document.prototype.createAnchor = function (row, column) {\n return new Anchor(this, row, column);\n };\n Document.prototype.$detectNewLine = function (text) {\n var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n this.$autoNewLine = match ? match[1] : \"\\n\";\n this._signal(\"changeNewLineMode\");\n };\n Document.prototype.getNewLineCharacter = function () {\n switch (this.$newLineMode) {\n case \"windows\":\n return \"\\r\\n\";\n case \"unix\":\n return \"\\n\";\n default:\n return this.$autoNewLine || \"\\n\";\n }\n };\n Document.prototype.setNewLineMode = function (newLineMode) {\n if (this.$newLineMode === newLineMode)\n return;\n this.$newLineMode = newLineMode;\n this._signal(\"changeNewLineMode\");\n };\n Document.prototype.getNewLineMode = function () {\n return this.$newLineMode;\n };\n Document.prototype.isNewLine = function (text) {\n return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n };\n Document.prototype.getLine = function (row) {\n return this.$lines[row] || \"\";\n };\n Document.prototype.getLines = function (firstRow, lastRow) {\n return this.$lines.slice(firstRow, lastRow + 1);\n };\n Document.prototype.getAllLines = function () {\n return this.getLines(0, this.getLength());\n };\n Document.prototype.getLength = function () {\n return this.$lines.length;\n };\n Document.prototype.getTextRange = function (range) {\n return this.getLinesForRange(range).join(this.getNewLineCharacter());\n };\n Document.prototype.getLinesForRange = function (range) {\n var lines;\n if (range.start.row === range.end.row) {\n lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n }\n else {\n lines = this.getLines(range.start.row, range.end.row);\n lines[0] = (lines[0] || \"\").substring(range.start.column);\n var l = lines.length - 1;\n if (range.end.row - range.start.row == l)\n lines[l] = lines[l].substring(0, range.end.column);\n }\n return lines;\n };\n Document.prototype.insertLines = function (row, lines) {\n console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n return this.insertFullLines(row, lines);\n };\n Document.prototype.removeLines = function (firstRow, lastRow) {\n console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n return this.removeFullLines(firstRow, lastRow);\n };\n Document.prototype.insertNewLine = function (position) {\n console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\");\n return this.insertMergedLines(position, [\"\", \"\"]);\n };\n Document.prototype.insert = function (position, text) {\n if (this.getLength() <= 1)\n this.$detectNewLine(text);\n return this.insertMergedLines(position, this.$split(text));\n };\n Document.prototype.insertInLine = function (position, text) {\n var start = this.clippedPos(position.row, position.column);\n var end = this.pos(position.row, position.column + text.length);\n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: [text]\n }, true);\n return this.clonePos(end);\n };\n Document.prototype.clippedPos = function (row, column) {\n var length = this.getLength();\n if (row === undefined) {\n row = length;\n }\n else if (row < 0) {\n row = 0;\n }\n else if (row >= length) {\n row = length - 1;\n column = undefined;\n }\n var line = this.getLine(row);\n if (column == undefined)\n column = line.length;\n column = Math.min(Math.max(column, 0), line.length);\n return { row: row, column: column };\n };\n Document.prototype.clonePos = function (pos) {\n return { row: pos.row, column: pos.column };\n };\n Document.prototype.pos = function (row, column) {\n return { row: row, column: column };\n };\n Document.prototype.$clipPosition = function (position) {\n var length = this.getLength();\n if (position.row >= length) {\n position.row = Math.max(0, length - 1);\n position.column = this.getLine(length - 1).length;\n }\n else {\n position.row = Math.max(0, position.row);\n position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n }\n return position;\n };\n Document.prototype.insertFullLines = function (row, lines) {\n row = Math.min(Math.max(row, 0), this.getLength());\n var column = 0;\n if (row < this.getLength()) {\n lines = lines.concat([\"\"]);\n column = 0;\n }\n else {\n lines = [\"\"].concat(lines);\n row--;\n column = this.$lines[row].length;\n }\n this.insertMergedLines({ row: row, column: column }, lines);\n };\n Document.prototype.insertMergedLines = function (position, lines) {\n var start = this.clippedPos(position.row, position.column);\n var end = {\n row: start.row + lines.length - 1,\n column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n };\n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: lines\n });\n return this.clonePos(end);\n };\n Document.prototype.remove = function (range) {\n var start = this.clippedPos(range.start.row, range.start.column);\n var end = this.clippedPos(range.end.row, range.end.column);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({ start: start, end: end })\n });\n return this.clonePos(start);\n };\n Document.prototype.removeInLine = function (row, startColumn, endColumn) {\n var start = this.clippedPos(row, startColumn);\n var end = this.clippedPos(row, endColumn);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({ start: start, end: end })\n }, true);\n return this.clonePos(start);\n };\n Document.prototype.removeFullLines = function (firstRow, lastRow) {\n firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n lastRow = Math.min(Math.max(0, lastRow), this.getLength() - 1);\n var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n var deleteLastNewLine = lastRow < this.getLength() - 1;\n var startRow = (deleteFirstNewLine ? firstRow - 1 : firstRow);\n var startCol = (deleteFirstNewLine ? this.getLine(startRow).length : 0);\n var endRow = (deleteLastNewLine ? lastRow + 1 : lastRow);\n var endCol = (deleteLastNewLine ? 0 : this.getLine(endRow).length);\n var range = new Range(startRow, startCol, endRow, endCol);\n var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n this.applyDelta({\n start: range.start,\n end: range.end,\n action: \"remove\",\n lines: this.getLinesForRange(range)\n });\n return deletedLines;\n };\n Document.prototype.removeNewLine = function (row) {\n if (row < this.getLength() - 1 && row >= 0) {\n this.applyDelta({\n start: this.pos(row, this.getLine(row).length),\n end: this.pos(row + 1, 0),\n action: \"remove\",\n lines: [\"\", \"\"]\n });\n }\n };\n Document.prototype.replace = function (range, text) {\n if (!(range instanceof Range))\n range = Range.fromPoints(range.start, range.end);\n if (text.length === 0 && range.isEmpty())\n return range.start;\n if (text == this.getTextRange(range))\n return range.end;\n this.remove(range);\n var end;\n if (text) {\n end = this.insert(range.start, text);\n }\n else {\n end = range.start;\n }\n return end;\n };\n Document.prototype.applyDeltas = function (deltas) {\n for (var i = 0; i < deltas.length; i++) {\n this.applyDelta(deltas[i]);\n }\n };\n Document.prototype.revertDeltas = function (deltas) {\n for (var i = deltas.length - 1; i >= 0; i--) {\n this.revertDelta(deltas[i]);\n }\n };\n Document.prototype.applyDelta = function (delta, doNotValidate) {\n var isInsert = delta.action == \"insert\";\n if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n : !Range.comparePoints(delta.start, delta.end)) {\n return;\n }\n if (isInsert && delta.lines.length > 20000) {\n this.$splitAndapplyLargeDelta(delta, 20000);\n }\n else {\n applyDelta(this.$lines, delta, doNotValidate);\n this._signal(\"change\", delta);\n }\n };\n Document.prototype.$safeApplyDelta = function (delta) {\n var docLength = this.$lines.length;\n if (delta.action == \"remove\" && delta.start.row < docLength && delta.end.row < docLength\n || delta.action == \"insert\" && delta.start.row <= docLength) {\n this.applyDelta(delta);\n }\n };\n Document.prototype.$splitAndapplyLargeDelta = function (delta, MAX) {\n var lines = delta.lines;\n var l = lines.length - MAX + 1;\n var row = delta.start.row;\n var column = delta.start.column;\n for (var from = 0, to = 0; from < l; from = to) {\n to += MAX - 1;\n var chunk = lines.slice(from, to);\n chunk.push(\"\");\n this.applyDelta({\n start: this.pos(row + from, column),\n end: this.pos(row + to, column = 0),\n action: delta.action,\n lines: chunk\n }, true);\n }\n delta.lines = lines.slice(from);\n delta.start.row = row + from;\n delta.start.column = column;\n this.applyDelta(delta, true);\n };\n Document.prototype.revertDelta = function (delta) {\n this.$safeApplyDelta({\n start: this.clonePos(delta.start),\n end: this.clonePos(delta.end),\n action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n lines: delta.lines.slice()\n });\n };\n Document.prototype.indexToPosition = function (index, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n for (var i = startRow || 0, l = lines.length; i < l; i++) {\n index -= lines[i].length + newlineLength;\n if (index < 0)\n return { row: i, column: index + lines[i].length + newlineLength };\n }\n return { row: l - 1, column: index + lines[l - 1].length + newlineLength };\n };\n Document.prototype.positionToIndex = function (pos, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n var index = 0;\n var row = Math.min(pos.row, lines.length);\n for (var i = startRow || 0; i < row; ++i)\n index += lines[i].length + newlineLength;\n return index + pos.column;\n };\n Document.prototype.$split = function (text) {\n return text.split(/\\r\\n|\\r|\\n/);\n };\n return Document;\n}());\nDocument.prototype.$autoNewLine = \"\";\nDocument.prototype.$newLineMode = \"auto\";\noop.implement(Document.prototype, EventEmitter);\nexports.Document = Document;\n\n});\n\nace.define(\"ace/background_tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar BackgroundTokenizer = /** @class */ (function () {\n function BackgroundTokenizer(tokenizer, editor) {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.tokenizer = tokenizer;\n var self = this;\n this.$worker = function () {\n if (!self.running) {\n return;\n }\n var workerStart = new Date();\n var currentLine = self.currentLine;\n var endLine = -1;\n var doc = self.doc;\n var startLine = currentLine;\n while (self.lines[currentLine])\n currentLine++;\n var len = doc.getLength();\n var processedLines = 0;\n self.running = false;\n while (currentLine < len) {\n self.$tokenizeRow(currentLine);\n endLine = currentLine;\n do {\n currentLine++;\n } while (self.lines[currentLine]);\n processedLines++;\n if ((processedLines % 5 === 0) && (new Date() - workerStart) > 20) {\n self.running = setTimeout(self.$worker, 20);\n break;\n }\n }\n self.currentLine = currentLine;\n if (endLine == -1)\n endLine = currentLine;\n if (startLine <= endLine)\n self.fireUpdateEvent(startLine, endLine);\n };\n }\n BackgroundTokenizer.prototype.setTokenizer = function (tokenizer) {\n this.tokenizer = tokenizer;\n this.lines = [];\n this.states = [];\n this.start(0);\n };\n BackgroundTokenizer.prototype.setDocument = function (doc) {\n this.doc = doc;\n this.lines = [];\n this.states = [];\n this.stop();\n };\n BackgroundTokenizer.prototype.fireUpdateEvent = function (firstRow, lastRow) {\n var data = {\n first: firstRow,\n last: lastRow\n };\n this._signal(\"update\", { data: data });\n };\n BackgroundTokenizer.prototype.start = function (startRow) {\n this.currentLine = Math.min(startRow || 0, this.currentLine, this.doc.getLength());\n this.lines.splice(this.currentLine, this.lines.length);\n this.states.splice(this.currentLine, this.states.length);\n this.stop();\n this.running = setTimeout(this.$worker, 700);\n };\n BackgroundTokenizer.prototype.scheduleStart = function () {\n if (!this.running)\n this.running = setTimeout(this.$worker, 700);\n };\n BackgroundTokenizer.prototype.$updateOnChange = function (delta) {\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n if (len === 0) {\n this.lines[startRow] = null;\n }\n else if (delta.action == \"remove\") {\n this.lines.splice(startRow, len + 1, null);\n this.states.splice(startRow, len + 1, null);\n }\n else {\n var args = Array(len + 1);\n args.unshift(startRow, 1);\n this.lines.splice.apply(this.lines, args);\n this.states.splice.apply(this.states, args);\n }\n this.currentLine = Math.min(startRow, this.currentLine, this.doc.getLength());\n this.stop();\n };\n BackgroundTokenizer.prototype.stop = function () {\n if (this.running)\n clearTimeout(this.running);\n this.running = false;\n };\n BackgroundTokenizer.prototype.getTokens = function (row) {\n return this.lines[row] || this.$tokenizeRow(row);\n };\n BackgroundTokenizer.prototype.getState = function (row) {\n if (this.currentLine == row)\n this.$tokenizeRow(row);\n return this.states[row] || \"start\";\n };\n BackgroundTokenizer.prototype.$tokenizeRow = function (row) {\n var line = this.doc.getLine(row);\n var state = this.states[row - 1];\n var data = this.tokenizer.getLineTokens(line, state, row);\n if (this.states[row] + \"\" !== data.state + \"\") {\n this.states[row] = data.state;\n this.lines[row + 1] = null;\n if (this.currentLine > row + 1)\n this.currentLine = row + 1;\n }\n else if (this.currentLine == row) {\n this.currentLine = row + 1;\n }\n return this.lines[row] = data.tokens;\n };\n BackgroundTokenizer.prototype.cleanup = function () {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.removeAllListeners();\n };\n return BackgroundTokenizer;\n}());\noop.implement(BackgroundTokenizer.prototype, EventEmitter);\nexports.BackgroundTokenizer = BackgroundTokenizer;\n\n});\n\nace.define(\"ace/search_highlight\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"./lib/lang\");\nvar Range = require(\"./range\").Range;\nvar SearchHighlight = /** @class */ (function () {\n function SearchHighlight(regExp, clazz, type) {\n if (type === void 0) { type = \"text\"; }\n this.setRegexp(regExp);\n this.clazz = clazz;\n this.type = type;\n }\n SearchHighlight.prototype.setRegexp = function (regExp) {\n if (this.regExp + \"\" == regExp + \"\")\n return;\n this.regExp = regExp;\n this.cache = [];\n };\n SearchHighlight.prototype.update = function (html, markerLayer, session, config) {\n if (!this.regExp)\n return;\n var start = config.firstRow, end = config.lastRow;\n var renderedMarkerRanges = {};\n for (var i = start; i <= end; i++) {\n var ranges = this.cache[i];\n if (ranges == null) {\n ranges = lang.getMatchOffsets(session.getLine(i), this.regExp);\n if (ranges.length > this.MAX_RANGES)\n ranges = ranges.slice(0, this.MAX_RANGES);\n ranges = ranges.map(function (match) {\n return new Range(i, match.offset, i, match.offset + match.length);\n });\n this.cache[i] = ranges.length ? ranges : \"\";\n }\n for (var j = ranges.length; j--;) {\n var rangeToAddMarkerTo = ranges[j].toScreenRange(session);\n var rangeAsString = rangeToAddMarkerTo.toString();\n if (renderedMarkerRanges[rangeAsString])\n continue;\n renderedMarkerRanges[rangeAsString] = true;\n markerLayer.drawSingleLineMarker(html, rangeToAddMarkerTo, this.clazz, config);\n }\n }\n };\n return SearchHighlight;\n}());\nSearchHighlight.prototype.MAX_RANGES = 500;\nexports.SearchHighlight = SearchHighlight;\n\n});\n\nace.define(\"ace/undomanager\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar UndoManager = /** @class */ (function () {\n function UndoManager() {\n this.$maxRev = 0;\n this.$fromUndo = false;\n this.$undoDepth = Infinity;\n this.reset();\n }\n UndoManager.prototype.addSession = function (session) {\n this.$session = session;\n };\n UndoManager.prototype.add = function (delta, allowMerge, session) {\n if (this.$fromUndo)\n return;\n if (delta == this.$lastDelta)\n return;\n if (!this.$keepRedoStack)\n this.$redoStack.length = 0;\n if (allowMerge === false || !this.lastDeltas) {\n this.lastDeltas = [];\n var undoStackLength = this.$undoStack.length;\n if (undoStackLength > this.$undoDepth - 1) {\n this.$undoStack.splice(0, undoStackLength - this.$undoDepth + 1);\n }\n this.$undoStack.push(this.lastDeltas);\n delta.id = this.$rev = ++this.$maxRev;\n }\n if (delta.action == \"remove\" || delta.action == \"insert\")\n this.$lastDelta = delta;\n this.lastDeltas.push(delta);\n };\n UndoManager.prototype.addSelection = function (selection, rev) {\n this.selections.push({\n value: selection,\n rev: rev || this.$rev\n });\n };\n UndoManager.prototype.startNewGroup = function () {\n this.lastDeltas = null;\n return this.$rev;\n };\n UndoManager.prototype.markIgnored = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n var stack = this.$undoStack;\n for (var i = stack.length; i--;) {\n var delta = stack[i][0];\n if (delta.id <= from)\n break;\n if (delta.id < to)\n delta.ignore = true;\n }\n this.lastDeltas = null;\n };\n UndoManager.prototype.getSelection = function (rev, after) {\n var stack = this.selections;\n for (var i = stack.length; i--;) {\n var selection = stack[i];\n if (selection.rev < rev) {\n if (after)\n selection = stack[i + 1];\n return selection;\n }\n }\n };\n UndoManager.prototype.getRevision = function () {\n return this.$rev;\n };\n UndoManager.prototype.getDeltas = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n var stack = this.$undoStack;\n var end = null, start = 0;\n for (var i = stack.length; i--;) {\n var delta = stack[i][0];\n if (delta.id < to && !end)\n end = i + 1;\n if (delta.id <= from) {\n start = i + 1;\n break;\n }\n }\n return stack.slice(start, end);\n };\n UndoManager.prototype.getChangedRanges = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n };\n UndoManager.prototype.getChangedLines = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n };\n UndoManager.prototype.undo = function (session, dontSelect) {\n this.lastDeltas = null;\n var stack = this.$undoStack;\n if (!rearrangeUndoStack(stack, stack.length))\n return;\n if (!session)\n session = this.$session;\n if (this.$redoStackBaseRev !== this.$rev && this.$redoStack.length)\n this.$redoStack = [];\n this.$fromUndo = true;\n var deltaSet = stack.pop();\n var undoSelectionRange = null;\n if (deltaSet) {\n undoSelectionRange = session.undoChanges(deltaSet, dontSelect);\n this.$redoStack.push(deltaSet);\n this.$syncRev();\n }\n this.$fromUndo = false;\n return undoSelectionRange;\n };\n UndoManager.prototype.redo = function (session, dontSelect) {\n this.lastDeltas = null;\n if (!session)\n session = this.$session;\n this.$fromUndo = true;\n if (this.$redoStackBaseRev != this.$rev) {\n var diff = this.getDeltas(this.$redoStackBaseRev, this.$rev + 1);\n rebaseRedoStack(this.$redoStack, diff);\n this.$redoStackBaseRev = this.$rev;\n this.$redoStack.forEach(function (x) {\n x[0].id = ++this.$maxRev;\n }, this);\n }\n var deltaSet = this.$redoStack.pop();\n var redoSelectionRange = null;\n if (deltaSet) {\n redoSelectionRange = session.redoChanges(deltaSet, dontSelect);\n this.$undoStack.push(deltaSet);\n this.$syncRev();\n }\n this.$fromUndo = false;\n return redoSelectionRange;\n };\n UndoManager.prototype.$syncRev = function () {\n var stack = this.$undoStack;\n var nextDelta = stack[stack.length - 1];\n var id = nextDelta && nextDelta[0].id || 0;\n this.$redoStackBaseRev = id;\n this.$rev = id;\n };\n UndoManager.prototype.reset = function () {\n this.lastDeltas = null;\n this.$lastDelta = null;\n this.$undoStack = [];\n this.$redoStack = [];\n this.$rev = 0;\n this.mark = 0;\n this.$redoStackBaseRev = this.$rev;\n this.selections = [];\n };\n UndoManager.prototype.canUndo = function () {\n return this.$undoStack.length > 0;\n };\n UndoManager.prototype.canRedo = function () {\n return this.$redoStack.length > 0;\n };\n UndoManager.prototype.bookmark = function (rev) {\n if (rev == undefined)\n rev = this.$rev;\n this.mark = rev;\n };\n UndoManager.prototype.isAtBookmark = function () {\n return this.$rev === this.mark;\n };\n UndoManager.prototype.toJSON = function () {\n return {\n $redoStack: this.$redoStack,\n $undoStack: this.$undoStack\n };\n };\n UndoManager.prototype.fromJSON = function (json) {\n this.reset();\n this.$undoStack = json.$undoStack;\n this.$redoStack = json.$redoStack;\n };\n UndoManager.prototype.$prettyPrint = function (delta) {\n if (delta)\n return stringifyDelta(delta);\n return stringifyDelta(this.$undoStack) + \"\\n---\\n\" + stringifyDelta(this.$redoStack);\n };\n return UndoManager;\n}());\nUndoManager.prototype.hasUndo = UndoManager.prototype.canUndo;\nUndoManager.prototype.hasRedo = UndoManager.prototype.canRedo;\nUndoManager.prototype.isClean = UndoManager.prototype.isAtBookmark;\nUndoManager.prototype.markClean = UndoManager.prototype.bookmark;\nfunction rearrangeUndoStack(stack, pos) {\n for (var i = pos; i--;) {\n var deltaSet = stack[i];\n if (deltaSet && !deltaSet[0].ignore) {\n while (i < pos - 1) {\n var swapped = swapGroups(stack[i], stack[i + 1]);\n stack[i] = swapped[0];\n stack[i + 1] = swapped[1];\n i++;\n }\n return true;\n }\n }\n}\nvar Range = require(\"./range\").Range;\nvar cmp = Range.comparePoints;\nvar comparePoints = Range.comparePoints;\nfunction $updateMarkers(delta) {\n var isInsert = delta.action == \"insert\";\n var start = delta.start;\n var end = delta.end;\n var rowShift = (end.row - start.row) * (isInsert ? 1 : -1);\n var colShift = (end.column - start.column) * (isInsert ? 1 : -1);\n if (isInsert)\n end = start;\n for (var i in this.marks) {\n var point = this.marks[i];\n var cmp = comparePoints(point, start);\n if (cmp < 0) {\n continue; // delta starts after the range\n }\n if (cmp === 0) {\n if (isInsert) {\n if (point.bias == 1) {\n cmp = 1;\n }\n else {\n point.bias == -1;\n continue;\n }\n }\n }\n var cmp2 = isInsert ? cmp : comparePoints(point, end);\n if (cmp2 > 0) {\n point.row += rowShift;\n point.column += point.row == end.row ? colShift : 0;\n continue;\n }\n if (!isInsert && cmp2 <= 0) {\n point.row = start.row;\n point.column = start.column;\n if (cmp2 === 0)\n point.bias = 1;\n }\n }\n}\nfunction clonePos(pos) {\n return { row: pos.row, column: pos.column };\n}\nfunction cloneDelta(d) {\n return {\n start: clonePos(d.start),\n end: clonePos(d.end),\n action: d.action,\n lines: d.lines.slice()\n };\n}\nfunction stringifyDelta(d) {\n d = d || this;\n if (Array.isArray(d)) {\n return d.map(stringifyDelta).join(\"\\n\");\n }\n var type = \"\";\n if (d.action) {\n type = d.action == \"insert\" ? \"+\" : \"-\";\n type += \"[\" + d.lines + \"]\";\n }\n else if (d.value) {\n if (Array.isArray(d.value)) {\n type = d.value.map(stringifyRange).join(\"\\n\");\n }\n else {\n type = stringifyRange(d.value);\n }\n }\n if (d.start) {\n type += stringifyRange(d);\n }\n if (d.id || d.rev) {\n type += \"\\t(\" + (d.id || d.rev) + \")\";\n }\n return type;\n}\nfunction stringifyRange(r) {\n return r.start.row + \":\" + r.start.column\n + \"=>\" + r.end.row + \":\" + r.end.column;\n}\nfunction swap(d1, d2) {\n var i1 = d1.action == \"insert\";\n var i2 = d2.action == \"insert\";\n if (i1 && i2) {\n if (cmp(d2.start, d1.end) >= 0) {\n shift(d2, d1, -1);\n }\n else if (cmp(d2.start, d1.start) <= 0) {\n shift(d1, d2, +1);\n }\n else {\n return null;\n }\n }\n else if (i1 && !i2) {\n if (cmp(d2.start, d1.end) >= 0) {\n shift(d2, d1, -1);\n }\n else if (cmp(d2.end, d1.start) <= 0) {\n shift(d1, d2, -1);\n }\n else {\n return null;\n }\n }\n else if (!i1 && i2) {\n if (cmp(d2.start, d1.start) >= 0) {\n shift(d2, d1, +1);\n }\n else if (cmp(d2.start, d1.start) <= 0) {\n shift(d1, d2, +1);\n }\n else {\n return null;\n }\n }\n else if (!i1 && !i2) {\n if (cmp(d2.start, d1.start) >= 0) {\n shift(d2, d1, +1);\n }\n else if (cmp(d2.end, d1.start) <= 0) {\n shift(d1, d2, -1);\n }\n else {\n return null;\n }\n }\n return [d2, d1];\n}\nfunction swapGroups(ds1, ds2) {\n for (var i = ds1.length; i--;) {\n for (var j = 0; j < ds2.length; j++) {\n if (!swap(ds1[i], ds2[j])) {\n while (i < ds1.length) {\n while (j--) {\n swap(ds2[j], ds1[i]);\n }\n j = ds2.length;\n i++;\n }\n return [ds1, ds2];\n }\n }\n }\n ds1.selectionBefore = ds2.selectionBefore =\n ds1.selectionAfter = ds2.selectionAfter = null;\n return [ds2, ds1];\n}\nfunction xform(d1, c1) {\n var i1 = d1.action == \"insert\";\n var i2 = c1.action == \"insert\";\n if (i1 && i2) {\n if (cmp(d1.start, c1.start) < 0) {\n shift(c1, d1, 1);\n }\n else {\n shift(d1, c1, 1);\n }\n }\n else if (i1 && !i2) {\n if (cmp(d1.start, c1.end) >= 0) {\n shift(d1, c1, -1);\n }\n else if (cmp(d1.start, c1.start) <= 0) {\n shift(c1, d1, +1);\n }\n else {\n shift(d1, Range.fromPoints(c1.start, d1.start), -1);\n shift(c1, d1, +1);\n }\n }\n else if (!i1 && i2) {\n if (cmp(c1.start, d1.end) >= 0) {\n shift(c1, d1, -1);\n }\n else if (cmp(c1.start, d1.start) <= 0) {\n shift(d1, c1, +1);\n }\n else {\n shift(c1, Range.fromPoints(d1.start, c1.start), -1);\n shift(d1, c1, +1);\n }\n }\n else if (!i1 && !i2) {\n if (cmp(c1.start, d1.end) >= 0) {\n shift(c1, d1, -1);\n }\n else if (cmp(c1.end, d1.start) <= 0) {\n shift(d1, c1, -1);\n }\n else {\n var before, after;\n if (cmp(d1.start, c1.start) < 0) {\n before = d1;\n d1 = splitDelta(d1, c1.start);\n }\n if (cmp(d1.end, c1.end) > 0) {\n after = splitDelta(d1, c1.end);\n }\n shiftPos(c1.end, d1.start, d1.end, -1);\n if (after && !before) {\n d1.lines = after.lines;\n d1.start = after.start;\n d1.end = after.end;\n after = d1;\n }\n return [c1, before, after].filter(Boolean);\n }\n }\n return [c1, d1];\n}\nfunction shift(d1, d2, dir) {\n shiftPos(d1.start, d2.start, d2.end, dir);\n shiftPos(d1.end, d2.start, d2.end, dir);\n}\nfunction shiftPos(pos, start, end, dir) {\n if (pos.row == (dir == 1 ? start : end).row) {\n pos.column += dir * (end.column - start.column);\n }\n pos.row += dir * (end.row - start.row);\n}\nfunction splitDelta(c, pos) {\n var lines = c.lines;\n var end = c.end;\n c.end = clonePos(pos);\n var rowsBefore = c.end.row - c.start.row;\n var otherLines = lines.splice(rowsBefore, lines.length);\n var col = rowsBefore ? pos.column : pos.column - c.start.column;\n lines.push(otherLines[0].substring(0, col));\n otherLines[0] = otherLines[0].substr(col);\n var rest = {\n start: clonePos(pos),\n end: end,\n lines: otherLines,\n action: c.action\n };\n return rest;\n}\nfunction moveDeltasByOne(redoStack, d) {\n d = cloneDelta(d);\n for (var j = redoStack.length; j--;) {\n var deltaSet = redoStack[j];\n for (var i = 0; i < deltaSet.length; i++) {\n var x = deltaSet[i];\n var xformed = xform(x, d);\n d = xformed[0];\n if (xformed.length != 2) {\n if (xformed[2]) {\n deltaSet.splice(i + 1, 1, xformed[1], xformed[2]);\n i++;\n }\n else if (!xformed[1]) {\n deltaSet.splice(i, 1);\n i--;\n }\n }\n }\n if (!deltaSet.length) {\n redoStack.splice(j, 1);\n }\n }\n return redoStack;\n}\nfunction rebaseRedoStack(redoStack, deltaSets) {\n for (var i = 0; i < deltaSets.length; i++) {\n var deltas = deltaSets[i];\n for (var j = 0; j < deltas.length; j++) {\n moveDeltasByOne(redoStack, deltas[j]);\n }\n }\n}\nexports.UndoManager = UndoManager;\n\n});\n\nace.define(\"ace/edit_session/fold_line\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar FoldLine = /** @class */ (function () {\n function FoldLine(foldData, folds) {\n this.foldData = foldData;\n if (Array.isArray(folds)) {\n this.folds = folds;\n }\n else {\n folds = this.folds = [folds];\n }\n var last = folds[folds.length - 1];\n this.range = new Range(folds[0].start.row, folds[0].start.column, last.end.row, last.end.column);\n this.start = this.range.start;\n this.end = this.range.end;\n this.folds.forEach(function (fold) {\n fold.setFoldLine(this);\n }, this);\n }\n FoldLine.prototype.shiftRow = function (shift) {\n this.start.row += shift;\n this.end.row += shift;\n this.folds.forEach(function (fold) {\n fold.start.row += shift;\n fold.end.row += shift;\n });\n };\n FoldLine.prototype.addFold = function (fold) {\n if (fold.sameRow) {\n if (fold.start.row < this.startRow || fold.endRow > this.endRow) {\n throw new Error(\"Can't add a fold to this FoldLine as it has no connection\");\n }\n this.folds.push(fold);\n this.folds.sort(function (a, b) {\n return -a.range.compareEnd(b.start.row, b.start.column);\n });\n if (this.range.compareEnd(fold.start.row, fold.start.column) > 0) {\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n }\n else if (this.range.compareStart(fold.end.row, fold.end.column) < 0) {\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n }\n else if (fold.start.row == this.end.row) {\n this.folds.push(fold);\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n }\n else if (fold.end.row == this.start.row) {\n this.folds.unshift(fold);\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n else {\n throw new Error(\"Trying to add fold to FoldRow that doesn't have a matching row\");\n }\n fold.foldLine = this;\n };\n FoldLine.prototype.containsRow = function (row) {\n return row >= this.start.row && row <= this.end.row;\n };\n FoldLine.prototype.walk = function (callback, endRow, endColumn) {\n var lastEnd = 0, folds = this.folds, fold, cmp, stop, isNewRow = true;\n if (endRow == null) {\n endRow = this.end.row;\n endColumn = this.end.column;\n }\n for (var i = 0; i < folds.length; i++) {\n fold = folds[i];\n cmp = fold.range.compareStart(endRow, endColumn);\n if (cmp == -1) {\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n return;\n }\n stop = callback(null, fold.start.row, fold.start.column, lastEnd, isNewRow);\n stop = !stop && callback(fold.placeholder, fold.start.row, fold.start.column, lastEnd);\n if (stop || cmp === 0) {\n return;\n }\n isNewRow = !fold.sameRow;\n lastEnd = fold.end.column;\n }\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n };\n FoldLine.prototype.getNextFoldTo = function (row, column) {\n var fold, cmp;\n for (var i = 0; i < this.folds.length; i++) {\n fold = this.folds[i];\n cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n return {\n fold: fold,\n kind: \"after\"\n };\n }\n else if (cmp === 0) {\n return {\n fold: fold,\n kind: \"inside\"\n };\n }\n }\n return null;\n };\n FoldLine.prototype.addRemoveChars = function (row, column, len) {\n var ret = this.getNextFoldTo(row, column), fold, folds;\n if (ret) {\n fold = ret.fold;\n if (ret.kind == \"inside\"\n && fold.start.column != column\n && fold.start.row != row) {\n window.console && window.console.log(row, column, fold);\n }\n else if (fold.start.row == row) {\n folds = this.folds;\n var i = folds.indexOf(fold);\n if (i === 0) {\n this.start.column += len;\n }\n for (i; i < folds.length; i++) {\n fold = folds[i];\n fold.start.column += len;\n if (!fold.sameRow) {\n return;\n }\n fold.end.column += len;\n }\n this.end.column += len;\n }\n }\n };\n FoldLine.prototype.split = function (row, column) {\n var pos = this.getNextFoldTo(row, column);\n if (!pos || pos.kind == \"inside\")\n return null;\n var fold = pos.fold;\n var folds = this.folds;\n var foldData = this.foldData;\n var i = folds.indexOf(fold);\n var foldBefore = folds[i - 1];\n this.end.row = foldBefore.end.row;\n this.end.column = foldBefore.end.column;\n folds = folds.splice(i, folds.length - i);\n var newFoldLine = new FoldLine(foldData, folds);\n foldData.splice(foldData.indexOf(this) + 1, 0, newFoldLine);\n return newFoldLine;\n };\n FoldLine.prototype.merge = function (foldLineNext) {\n var folds = foldLineNext.folds;\n for (var i = 0; i < folds.length; i++) {\n this.addFold(folds[i]);\n }\n var foldData = this.foldData;\n foldData.splice(foldData.indexOf(foldLineNext), 1);\n };\n FoldLine.prototype.toString = function () {\n var ret = [this.range.toString() + \": [\"];\n this.folds.forEach(function (fold) {\n ret.push(\" \" + fold.toString());\n });\n ret.push(\"]\");\n return ret.join(\"\\n\");\n };\n FoldLine.prototype.idxToPosition = function (idx) {\n var lastFoldEndColumn = 0;\n for (var i = 0; i < this.folds.length; i++) {\n var fold = this.folds[i];\n idx -= fold.start.column - lastFoldEndColumn;\n if (idx < 0) {\n return {\n row: fold.start.row,\n column: fold.start.column + idx\n };\n }\n idx -= fold.placeholder.length;\n if (idx < 0) {\n return fold.start;\n }\n lastFoldEndColumn = fold.end.column;\n }\n return {\n row: this.end.row,\n column: this.end.column + idx\n };\n };\n return FoldLine;\n}());\nexports.FoldLine = FoldLine;\n\n});\n\nace.define(\"ace/range_list\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar comparePoints = Range.comparePoints;\nvar RangeList = /** @class */ (function () {\n function RangeList() {\n this.ranges = [];\n this.$bias = 1;\n }\n RangeList.prototype.pointIndex = function (pos, excludeEdges, startIndex) {\n var list = this.ranges;\n for (var i = startIndex || 0; i < list.length; i++) {\n var range = list[i];\n var cmpEnd = comparePoints(pos, range.end);\n if (cmpEnd > 0)\n continue;\n var cmpStart = comparePoints(pos, range.start);\n if (cmpEnd === 0)\n return excludeEdges && cmpStart !== 0 ? -i - 2 : i;\n if (cmpStart > 0 || (cmpStart === 0 && !excludeEdges))\n return i;\n return -i - 1;\n }\n return -i - 1;\n };\n RangeList.prototype.add = function (range) {\n var excludeEdges = !range.isEmpty();\n var startIndex = this.pointIndex(range.start, excludeEdges);\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex(range.end, excludeEdges, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n else\n endIndex++;\n return this.ranges.splice(startIndex, endIndex - startIndex, range);\n };\n RangeList.prototype.addList = function (list) {\n var removed = [];\n for (var i = list.length; i--;) {\n removed.push.apply(removed, this.add(list[i]));\n }\n return removed;\n };\n RangeList.prototype.substractPoint = function (pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges.splice(i, 1);\n };\n RangeList.prototype.merge = function () {\n var removed = [];\n var list = this.ranges;\n list = list.sort(function (a, b) {\n return comparePoints(a.start, b.start);\n });\n var next = list[0], range;\n for (var i = 1; i < list.length; i++) {\n range = next;\n next = list[i];\n var cmp = comparePoints(range.end, next.start);\n if (cmp < 0)\n continue;\n if (cmp == 0 && !range.isEmpty() && !next.isEmpty())\n continue;\n if (comparePoints(range.end, next.end) < 0) {\n range.end.row = next.end.row;\n range.end.column = next.end.column;\n }\n list.splice(i, 1);\n removed.push(next);\n next = range;\n i--;\n }\n this.ranges = list;\n return removed;\n };\n RangeList.prototype.contains = function (row, column) {\n return this.pointIndex({ row: row, column: column }) >= 0;\n };\n RangeList.prototype.containsPoint = function (pos) {\n return this.pointIndex(pos) >= 0;\n };\n RangeList.prototype.rangeAtPoint = function (pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges[i];\n };\n RangeList.prototype.clipRows = function (startRow, endRow) {\n var list = this.ranges;\n if (list[0].start.row > endRow || list[list.length - 1].start.row < startRow)\n return [];\n var startIndex = this.pointIndex({ row: startRow, column: 0 });\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex({ row: endRow, column: 0 }, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n var clipped = [];\n for (var i = startIndex; i < endIndex; i++) {\n clipped.push(list[i]);\n }\n return clipped;\n };\n RangeList.prototype.removeAll = function () {\n return this.ranges.splice(0, this.ranges.length);\n };\n RangeList.prototype.attach = function (session) {\n if (this.session)\n this.detach();\n this.session = session;\n this.onChange = this.$onChange.bind(this);\n this.session.on('change', this.onChange);\n };\n RangeList.prototype.detach = function () {\n if (!this.session)\n return;\n this.session.removeListener('change', this.onChange);\n this.session = null;\n };\n RangeList.prototype.$onChange = function (delta) {\n var start = delta.start;\n var end = delta.end;\n var startRow = start.row;\n var endRow = end.row;\n var ranges = this.ranges;\n for (var i = 0, n = ranges.length; i < n; i++) {\n var r = ranges[i];\n if (r.end.row >= startRow)\n break;\n }\n if (delta.action == \"insert\") {\n var lineDif = endRow - startRow;\n var colDiff = -start.column + end.column;\n for (; i < n; i++) {\n var r = ranges[i];\n if (r.start.row > startRow)\n break;\n if (r.start.row == startRow && r.start.column >= start.column) {\n if (r.start.column == start.column && this.$bias <= 0) {\n }\n else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n if (r.end.row == startRow && r.end.column >= start.column) {\n if (r.end.column == start.column && this.$bias < 0) {\n continue;\n }\n if (r.end.column == start.column && colDiff > 0 && i < n - 1) {\n if (r.end.column > r.start.column && r.end.column == ranges[i + 1].start.column)\n r.end.column -= colDiff;\n }\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n }\n else {\n var lineDif = startRow - endRow;\n var colDiff = start.column - end.column;\n for (; i < n; i++) {\n var r = ranges[i];\n if (r.start.row > endRow)\n break;\n if (r.end.row < endRow\n && (startRow < r.end.row\n || startRow == r.end.row && start.column < r.end.column)) {\n r.end.row = startRow;\n r.end.column = start.column;\n }\n else if (r.end.row == endRow) {\n if (r.end.column <= end.column) {\n if (lineDif || r.end.column > start.column) {\n r.end.column = start.column;\n r.end.row = start.row;\n }\n }\n else {\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n else if (r.end.row > endRow) {\n r.end.row += lineDif;\n }\n if (r.start.row < endRow\n && (startRow < r.start.row\n || startRow == r.start.row && start.column < r.start.column)) {\n r.start.row = startRow;\n r.start.column = start.column;\n }\n else if (r.start.row == endRow) {\n if (r.start.column <= end.column) {\n if (lineDif || r.start.column > start.column) {\n r.start.column = start.column;\n r.start.row = start.row;\n }\n }\n else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n else if (r.start.row > endRow) {\n r.start.row += lineDif;\n }\n }\n }\n if (lineDif != 0 && i < n) {\n for (; i < n; i++) {\n var r = ranges[i];\n r.start.row += lineDif;\n r.end.row += lineDif;\n }\n }\n };\n return RangeList;\n}());\nRangeList.prototype.comparePoints = comparePoints;\nexports.RangeList = RangeList;\n\n});\n\nace.define(\"ace/edit_session/fold\",[\"require\",\"exports\",\"module\",\"ace/range_list\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar RangeList = require(\"../range_list\").RangeList;\nvar Fold = /** @class */ (function (_super) {\n __extends(Fold, _super);\n function Fold(range, placeholder) {\n var _this = _super.call(this) || this;\n _this.foldLine = null;\n _this.placeholder = placeholder;\n _this.range = range;\n _this.start = range.start;\n _this.end = range.end;\n _this.sameRow = range.start.row == range.end.row;\n _this.subFolds = _this.ranges = [];\n return _this;\n }\n Fold.prototype.toString = function () {\n return '\"' + this.placeholder + '\" ' + this.range.toString();\n };\n Fold.prototype.setFoldLine = function (foldLine) {\n this.foldLine = foldLine;\n this.subFolds.forEach(function (fold) {\n fold.setFoldLine(foldLine);\n });\n };\n Fold.prototype.clone = function () {\n var range = this.range.clone();\n var fold = new Fold(range, this.placeholder);\n this.subFolds.forEach(function (subFold) {\n fold.subFolds.push(subFold.clone());\n });\n fold.collapseChildren = this.collapseChildren;\n return fold;\n };\n Fold.prototype.addSubFold = function (fold) {\n if (this.range.isEqual(fold))\n return;\n consumeRange(fold, this.start);\n var row = fold.start.row, column = fold.start.column;\n for (var i = 0, cmp = -1; i < this.subFolds.length; i++) {\n cmp = this.subFolds[i].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n var afterStart = this.subFolds[i];\n var firstConsumed = 0;\n if (cmp == 0) {\n if (afterStart.range.containsRange(fold))\n return afterStart.addSubFold(fold);\n else\n firstConsumed = 1;\n }\n var row = fold.range.end.row, column = fold.range.end.column;\n for (var j = i, cmp = -1; j < this.subFolds.length; j++) {\n cmp = this.subFolds[j].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n if (cmp == 0)\n j++;\n var consumedFolds = this.subFolds.splice(i, j - i, fold);\n var last = cmp == 0 ? consumedFolds.length - 1 : consumedFolds.length;\n for (var k = firstConsumed; k < last; k++) {\n fold.addSubFold(consumedFolds[k]);\n }\n fold.setFoldLine(this.foldLine);\n return fold;\n };\n Fold.prototype.restoreRange = function (range) {\n return restoreRange(range, this.start);\n };\n return Fold;\n}(RangeList));\nfunction consumePoint(point, anchor) {\n point.row -= anchor.row;\n if (point.row == 0)\n point.column -= anchor.column;\n}\nfunction consumeRange(range, anchor) {\n consumePoint(range.start, anchor);\n consumePoint(range.end, anchor);\n}\nfunction restorePoint(point, anchor) {\n if (point.row == 0)\n point.column += anchor.column;\n point.row += anchor.row;\n}\nfunction restoreRange(range, anchor) {\n restorePoint(range.start, anchor);\n restorePoint(range.end, anchor);\n}\nexports.Fold = Fold;\n\n});\n\nace.define(\"ace/edit_session/folding\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/edit_session/fold_line\",\"ace/edit_session/fold\",\"ace/token_iterator\",\"ace/mouse/mouse_event\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar FoldLine = require(\"./fold_line\").FoldLine;\nvar Fold = require(\"./fold\").Fold;\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar MouseEvent = require(\"../mouse/mouse_event\").MouseEvent;\nfunction Folding() {\n this.getFoldAt = function (row, column, side) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine)\n return null;\n var folds = foldLine.folds;\n for (var i = 0; i < folds.length; i++) {\n var range = folds[i].range;\n if (range.contains(row, column)) {\n if (side == 1 && range.isEnd(row, column) && !range.isEmpty()) {\n continue;\n }\n else if (side == -1 && range.isStart(row, column) && !range.isEmpty()) {\n continue;\n }\n return folds[i];\n }\n }\n };\n this.getFoldsInRange = function (range) {\n var start = range.start;\n var end = range.end;\n var foldLines = this.$foldData;\n var foundFolds = [];\n start.column += 1;\n end.column -= 1;\n for (var i = 0; i < foldLines.length; i++) {\n var cmp = foldLines[i].range.compareRange(range);\n if (cmp == 2) {\n continue;\n }\n else if (cmp == -2) {\n break;\n }\n var folds = foldLines[i].folds;\n for (var j = 0; j < folds.length; j++) {\n var fold = folds[j];\n cmp = fold.range.compareRange(range);\n if (cmp == -2) {\n break;\n }\n else if (cmp == 2) {\n continue;\n }\n else \n if (cmp == 42) {\n break;\n }\n foundFolds.push(fold);\n }\n }\n start.column -= 1;\n end.column += 1;\n return foundFolds;\n };\n this.getFoldsInRangeList = function (ranges) {\n if (Array.isArray(ranges)) {\n var folds = [];\n ranges.forEach(function (range) {\n folds = folds.concat(this.getFoldsInRange(range));\n }, this);\n }\n else {\n var folds = this.getFoldsInRange(ranges);\n }\n return folds;\n };\n this.getAllFolds = function () {\n var folds = [];\n var foldLines = this.$foldData;\n for (var i = 0; i < foldLines.length; i++)\n for (var j = 0; j < foldLines[i].folds.length; j++)\n folds.push(foldLines[i].folds[j]);\n return folds;\n };\n this.getFoldStringAt = function (row, column, trim, foldLine) {\n foldLine = foldLine || this.getFoldLine(row);\n if (!foldLine)\n return null;\n var lastFold = {\n end: { column: 0 }\n };\n var str, fold;\n for (var i = 0; i < foldLine.folds.length; i++) {\n fold = foldLine.folds[i];\n var cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n str = this\n .getLine(fold.start.row)\n .substring(lastFold.end.column, fold.start.column);\n break;\n }\n else if (cmp === 0) {\n return null;\n }\n lastFold = fold;\n }\n if (!str)\n str = this.getLine(fold.start.row).substring(lastFold.end.column);\n if (trim == -1)\n return str.substring(0, column - lastFold.end.column);\n else if (trim == 1)\n return str.substring(column - lastFold.end.column);\n else\n return str;\n };\n this.getFoldLine = function (docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.start.row <= docRow && foldLine.end.row >= docRow) {\n return foldLine;\n }\n else if (foldLine.end.row > docRow) {\n return null;\n }\n }\n return null;\n };\n this.getNextFoldLine = function (docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.end.row >= docRow) {\n return foldLine;\n }\n }\n return null;\n };\n this.getFoldedRowCount = function (first, last) {\n var foldData = this.$foldData, rowCount = last - first + 1;\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i], end = foldLine.end.row, start = foldLine.start.row;\n if (end >= last) {\n if (start < last) {\n if (start >= first)\n rowCount -= last - start;\n else\n rowCount = 0; // in one fold\n }\n break;\n }\n else if (end >= first) {\n if (start >= first) // fold inside range\n rowCount -= end - start;\n else\n rowCount -= end - first + 1;\n }\n }\n return rowCount;\n };\n this.$addFoldLine = function (foldLine) {\n this.$foldData.push(foldLine);\n this.$foldData.sort(function (a, b) {\n return a.start.row - b.start.row;\n });\n return foldLine;\n };\n this.addFold = function (placeholder, range) {\n var foldData = this.$foldData;\n var added = false;\n var fold;\n if (placeholder instanceof Fold)\n fold = placeholder;\n else {\n fold = new Fold(range, placeholder);\n fold.collapseChildren = range.collapseChildren;\n }\n this.$clipRangeToDocument(fold.range);\n var startRow = fold.start.row;\n var startColumn = fold.start.column;\n var endRow = fold.end.row;\n var endColumn = fold.end.column;\n var startFold = this.getFoldAt(startRow, startColumn, 1);\n var endFold = this.getFoldAt(endRow, endColumn, -1);\n if (startFold && endFold == startFold)\n return startFold.addSubFold(fold);\n if (startFold && !startFold.range.isStart(startRow, startColumn))\n this.removeFold(startFold);\n if (endFold && !endFold.range.isEnd(endRow, endColumn))\n this.removeFold(endFold);\n var folds = this.getFoldsInRange(fold.range);\n if (folds.length > 0) {\n this.removeFolds(folds);\n if (!fold.collapseChildren) {\n folds.forEach(function (subFold) {\n fold.addSubFold(subFold);\n });\n }\n }\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (endRow == foldLine.start.row) {\n foldLine.addFold(fold);\n added = true;\n break;\n }\n else if (startRow == foldLine.end.row) {\n foldLine.addFold(fold);\n added = true;\n if (!fold.sameRow) {\n var foldLineNext = foldData[i + 1];\n if (foldLineNext && foldLineNext.start.row == endRow) {\n foldLine.merge(foldLineNext);\n break;\n }\n }\n break;\n }\n else if (endRow <= foldLine.start.row) {\n break;\n }\n }\n if (!added)\n foldLine = this.$addFoldLine(new FoldLine(this.$foldData, fold));\n if (this.$useWrapMode)\n this.$updateWrapData(foldLine.start.row, foldLine.start.row);\n else\n this.$updateRowLengthCache(foldLine.start.row, foldLine.start.row);\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"add\" });\n return fold;\n };\n this.addFolds = function (folds) {\n folds.forEach(function (fold) {\n this.addFold(fold);\n }, this);\n };\n this.removeFold = function (fold) {\n var foldLine = fold.foldLine;\n var startRow = foldLine.start.row;\n var endRow = foldLine.end.row;\n var foldLines = this.$foldData;\n var folds = foldLine.folds;\n if (folds.length == 1) {\n foldLines.splice(foldLines.indexOf(foldLine), 1);\n }\n else \n if (foldLine.range.isEnd(fold.end.row, fold.end.column)) {\n folds.pop();\n foldLine.end.row = folds[folds.length - 1].end.row;\n foldLine.end.column = folds[folds.length - 1].end.column;\n }\n else \n if (foldLine.range.isStart(fold.start.row, fold.start.column)) {\n folds.shift();\n foldLine.start.row = folds[0].start.row;\n foldLine.start.column = folds[0].start.column;\n }\n else \n if (fold.sameRow) {\n folds.splice(folds.indexOf(fold), 1);\n }\n else \n {\n var newFoldLine = foldLine.split(fold.start.row, fold.start.column);\n folds = newFoldLine.folds;\n folds.shift();\n newFoldLine.start.row = folds[0].start.row;\n newFoldLine.start.column = folds[0].start.column;\n }\n if (!this.$updating) {\n if (this.$useWrapMode)\n this.$updateWrapData(startRow, endRow);\n else\n this.$updateRowLengthCache(startRow, endRow);\n }\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"remove\" });\n };\n this.removeFolds = function (folds) {\n var cloneFolds = [];\n for (var i = 0; i < folds.length; i++) {\n cloneFolds.push(folds[i]);\n }\n cloneFolds.forEach(function (fold) {\n this.removeFold(fold);\n }, this);\n this.$modified = true;\n };\n this.expandFold = function (fold) {\n this.removeFold(fold);\n fold.subFolds.forEach(function (subFold) {\n fold.restoreRange(subFold);\n this.addFold(subFold);\n }, this);\n if (fold.collapseChildren > 0) {\n this.foldAll(fold.start.row + 1, fold.end.row, fold.collapseChildren - 1);\n }\n fold.subFolds = [];\n };\n this.expandFolds = function (folds) {\n folds.forEach(function (fold) {\n this.expandFold(fold);\n }, this);\n };\n this.unfold = function (location, expandInner) {\n var range, folds;\n if (location == null) {\n range = new Range(0, 0, this.getLength(), 0);\n if (expandInner == null)\n expandInner = true;\n }\n else if (typeof location == \"number\") {\n range = new Range(location, 0, location, this.getLine(location).length);\n }\n else if (\"row\" in location) {\n range = Range.fromPoints(location, location);\n }\n else if (Array.isArray(location)) {\n folds = [];\n location.forEach(function (range) {\n folds = folds.concat(this.unfold(range));\n }, this);\n return folds;\n }\n else {\n range = location;\n }\n folds = this.getFoldsInRangeList(range);\n var outermostFolds = folds;\n while (folds.length == 1\n && Range.comparePoints(folds[0].start, range.start) < 0\n && Range.comparePoints(folds[0].end, range.end) > 0) {\n this.expandFolds(folds);\n folds = this.getFoldsInRangeList(range);\n }\n if (expandInner != false) {\n this.removeFolds(folds);\n }\n else {\n this.expandFolds(folds);\n }\n if (outermostFolds.length)\n return outermostFolds;\n };\n this.isRowFolded = function (docRow, startFoldRow) {\n return !!this.getFoldLine(docRow, startFoldRow);\n };\n this.getRowFoldEnd = function (docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.end.row : docRow;\n };\n this.getRowFoldStart = function (docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.start.row : docRow;\n };\n this.getFoldDisplayLine = function (foldLine, endRow, endColumn, startRow, startColumn) {\n if (startRow == null)\n startRow = foldLine.start.row;\n if (startColumn == null)\n startColumn = 0;\n if (endRow == null)\n endRow = foldLine.end.row;\n if (endColumn == null)\n endColumn = this.getLine(endRow).length;\n var doc = this.doc;\n var textLine = \"\";\n foldLine.walk(function (placeholder, row, column, lastColumn) {\n if (row < startRow)\n return;\n if (row == startRow) {\n if (column < startColumn)\n return;\n lastColumn = Math.max(startColumn, lastColumn);\n }\n if (placeholder != null) {\n textLine += placeholder;\n }\n else {\n textLine += doc.getLine(row).substring(lastColumn, column);\n }\n }, endRow, endColumn);\n return textLine;\n };\n this.getDisplayLine = function (row, endColumn, startRow, startColumn) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine) {\n var line;\n line = this.doc.getLine(row);\n return line.substring(startColumn || 0, endColumn || line.length);\n }\n else {\n return this.getFoldDisplayLine(foldLine, row, endColumn, startRow, startColumn);\n }\n };\n this.$cloneFoldData = function () {\n var fd = [];\n fd = this.$foldData.map(function (foldLine) {\n var folds = foldLine.folds.map(function (fold) {\n return fold.clone();\n });\n return new FoldLine(fd, folds);\n });\n return fd;\n };\n this.toggleFold = function (tryToUnfold) {\n var selection = this.selection;\n var range = selection.getRange();\n var fold;\n var bracketPos;\n if (range.isEmpty()) {\n var cursor = range.start;\n fold = this.getFoldAt(cursor.row, cursor.column);\n if (fold) {\n this.expandFold(fold);\n return;\n }\n else if (bracketPos = this.findMatchingBracket(cursor)) {\n if (range.comparePoint(bracketPos) == 1) {\n range.end = bracketPos;\n }\n else {\n range.start = bracketPos;\n range.start.column++;\n range.end.column--;\n }\n }\n else if (bracketPos = this.findMatchingBracket({ row: cursor.row, column: cursor.column + 1 })) {\n if (range.comparePoint(bracketPos) == 1)\n range.end = bracketPos;\n else\n range.start = bracketPos;\n range.start.column++;\n }\n else {\n range = this.getCommentFoldRange(cursor.row, cursor.column) || range;\n }\n }\n else {\n var folds = this.getFoldsInRange(range);\n if (tryToUnfold && folds.length) {\n this.expandFolds(folds);\n return;\n }\n else if (folds.length == 1) {\n fold = folds[0];\n }\n }\n if (!fold)\n fold = this.getFoldAt(range.start.row, range.start.column);\n if (fold && fold.range.toString() == range.toString()) {\n this.expandFold(fold);\n return;\n }\n var placeholder = \"...\";\n if (!range.isMultiLine()) {\n placeholder = this.getTextRange(range);\n if (placeholder.length < 4)\n return;\n placeholder = placeholder.trim().substring(0, 2) + \"..\";\n }\n this.addFold(placeholder, range);\n };\n this.getCommentFoldRange = function (row, column, dir) {\n var iterator = new TokenIterator(this, row, column);\n var token = iterator.getCurrentToken();\n var type = token && token.type;\n if (token && /^comment|string/.test(type)) {\n type = type.match(/comment|string/)[0];\n if (type == \"comment\")\n type += \"|doc-start|\\\\.doc\";\n var re = new RegExp(type);\n var range = new Range();\n if (dir != 1) {\n do {\n token = iterator.stepBackward();\n } while (token && re.test(token.type) && !/^comment.end/.test(token.type));\n token = iterator.stepForward();\n }\n range.start.row = iterator.getCurrentTokenRow();\n range.start.column = iterator.getCurrentTokenColumn() + (/^comment.start/.test(token.type) ? token.value.length : 2);\n iterator = new TokenIterator(this, row, column);\n if (dir != -1) {\n var lastRow = -1;\n do {\n token = iterator.stepForward();\n if (lastRow == -1) {\n var state = this.getState(iterator.$row);\n if (!re.test(state))\n lastRow = iterator.$row;\n }\n else if (iterator.$row > lastRow) {\n break;\n }\n } while (token && re.test(token.type) && !/^comment.start/.test(token.type));\n token = iterator.stepBackward();\n }\n else\n token = iterator.getCurrentToken();\n range.end.row = iterator.getCurrentTokenRow();\n range.end.column = iterator.getCurrentTokenColumn();\n if (!/^comment.end/.test(token.type)) {\n range.end.column += token.value.length - 2;\n }\n return range;\n }\n };\n this.foldAll = function (startRow, endRow, depth, test) {\n if (depth == undefined)\n depth = 100000; // JSON.stringify doesn't hanle Infinity\n var foldWidgets = this.foldWidgets;\n if (!foldWidgets)\n return; // mode doesn't support folding\n endRow = endRow || this.getLength();\n startRow = startRow || 0;\n for (var row = startRow; row < endRow; row++) {\n if (foldWidgets[row] == null)\n foldWidgets[row] = this.getFoldWidget(row);\n if (foldWidgets[row] != \"start\")\n continue;\n if (test && !test(row))\n continue;\n var range = this.getFoldWidgetRange(row);\n if (range && range.isMultiLine()\n && range.end.row <= endRow\n && range.start.row >= startRow) {\n row = range.end.row;\n range.collapseChildren = depth;\n this.addFold(\"...\", range);\n }\n }\n };\n this.foldToLevel = function (level) {\n this.foldAll();\n while (level-- > 0)\n this.unfold(null, false);\n };\n this.foldAllComments = function () {\n var session = this;\n this.foldAll(null, null, null, function (row) {\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token.type == \"text\" && /^\\s+$/.test(token.value))\n continue;\n if (/comment/.test(token.type))\n return true;\n return false;\n }\n });\n };\n this.$foldStyles = {\n \"manual\": 1,\n \"markbegin\": 1,\n \"markbeginend\": 1\n };\n this.$foldStyle = \"markbegin\";\n this.setFoldStyle = function (style) {\n if (!this.$foldStyles[style])\n throw new Error(\"invalid fold style: \" + style + \"[\" + Object.keys(this.$foldStyles).join(\", \") + \"]\");\n if (this.$foldStyle == style)\n return;\n this.$foldStyle = style;\n if (style == \"manual\")\n this.unfold();\n var mode = this.$foldMode;\n this.$setFolding(null);\n this.$setFolding(mode);\n };\n this.$setFolding = function (foldMode) {\n if (this.$foldMode == foldMode)\n return;\n this.$foldMode = foldMode;\n this.off('change', this.$updateFoldWidgets);\n this.off('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n this._signal(\"changeAnnotation\");\n if (!foldMode || this.$foldStyle == \"manual\") {\n this.foldWidgets = null;\n return;\n }\n this.foldWidgets = [];\n this.getFoldWidget = foldMode.getFoldWidget.bind(foldMode, this, this.$foldStyle);\n this.getFoldWidgetRange = foldMode.getFoldWidgetRange.bind(foldMode, this, this.$foldStyle);\n this.$updateFoldWidgets = this.updateFoldWidgets.bind(this);\n this.$tokenizerUpdateFoldWidgets = this.tokenizerUpdateFoldWidgets.bind(this);\n this.on('change', this.$updateFoldWidgets);\n this.on('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n };\n this.getParentFoldRangeData = function (row, ignoreCurrent) {\n var fw = this.foldWidgets;\n if (!fw || (ignoreCurrent && fw[row]))\n return {};\n var i = row - 1, firstRange;\n while (i >= 0) {\n var c = fw[i];\n if (c == null)\n c = fw[i] = this.getFoldWidget(i);\n if (c == \"start\") {\n var range = this.getFoldWidgetRange(i);\n if (!firstRange)\n firstRange = range;\n if (range && range.end.row >= row)\n break;\n }\n i--;\n }\n return {\n range: i !== -1 && range,\n firstRange: firstRange\n };\n };\n this.onFoldWidgetClick = function (row, e) {\n if (e instanceof MouseEvent)\n e = e.domEvent;\n var options = {\n children: e.shiftKey,\n all: e.ctrlKey || e.metaKey,\n siblings: e.altKey\n };\n var range = this.$toggleFoldWidget(row, options);\n if (!range) {\n var el = (e.target || e.srcElement);\n if (el && /ace_fold-widget/.test(el.className))\n el.className += \" ace_invalid\";\n }\n };\n this.$toggleFoldWidget = function (row, options) {\n if (!this.getFoldWidget)\n return;\n var type = this.getFoldWidget(row);\n var line = this.getLine(row);\n var dir = type === \"end\" ? -1 : 1;\n var fold = this.getFoldAt(row, dir === -1 ? 0 : line.length, dir);\n if (fold) {\n if (options.children || options.all)\n this.removeFold(fold);\n else\n this.expandFold(fold);\n return fold;\n }\n var range = this.getFoldWidgetRange(row, true);\n if (range && !range.isMultiLine()) {\n fold = this.getFoldAt(range.start.row, range.start.column, 1);\n if (fold && range.isEqual(fold.range)) {\n this.removeFold(fold);\n return fold;\n }\n }\n if (options.siblings) {\n var data = this.getParentFoldRangeData(row);\n if (data.range) {\n var startRow = data.range.start.row + 1;\n var endRow = data.range.end.row;\n }\n this.foldAll(startRow, endRow, options.all ? 10000 : 0);\n }\n else if (options.children) {\n endRow = range ? range.end.row : this.getLength();\n this.foldAll(row + 1, endRow, options.all ? 10000 : 0);\n }\n else if (range) {\n if (options.all)\n range.collapseChildren = 10000;\n this.addFold(\"...\", range);\n }\n return range;\n };\n this.toggleFoldWidget = function (toggleParent) {\n var row = this.selection.getCursor().row;\n row = this.getRowFoldStart(row);\n var range = this.$toggleFoldWidget(row, {});\n if (range)\n return;\n var data = this.getParentFoldRangeData(row, true);\n range = data.range || data.firstRange;\n if (range) {\n row = range.start.row;\n var fold = this.getFoldAt(row, this.getLine(row).length, 1);\n if (fold) {\n this.removeFold(fold);\n }\n else {\n this.addFold(\"...\", range);\n }\n }\n };\n this.updateFoldWidgets = function (delta) {\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n this.foldWidgets[firstRow] = null;\n }\n else if (delta.action == 'remove') {\n this.foldWidgets.splice(firstRow, len + 1, null);\n }\n else {\n var args = Array(len + 1);\n args.unshift(firstRow, 1);\n this.foldWidgets.splice.apply(this.foldWidgets, args);\n }\n };\n this.tokenizerUpdateFoldWidgets = function (e) {\n var rows = e.data;\n if (rows.first != rows.last) {\n if (this.foldWidgets.length > rows.first)\n this.foldWidgets.splice(rows.first, this.foldWidgets.length);\n }\n };\n}\nexports.Folding = Folding;\n\n});\n\nace.define(\"ace/edit_session/bracket_match\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar Range = require(\"../range\").Range;\nfunction BracketMatch() {\n this.findMatchingBracket = function (position, chr) {\n if (position.column == 0)\n return null;\n var charBeforeCursor = chr || this.getLine(position.row).charAt(position.column - 1);\n if (charBeforeCursor == \"\")\n return null;\n var match = charBeforeCursor.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match)\n return null;\n if (match[1])\n return this.$findClosingBracket(match[1], position);\n else\n return this.$findOpeningBracket(match[2], position);\n };\n this.getBracketRange = function (pos) {\n var line = this.getLine(pos.row);\n var before = true, range;\n var chr = line.charAt(pos.column - 1);\n var match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match) {\n chr = line.charAt(pos.column);\n pos = { row: pos.row, column: pos.column + 1 };\n match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n before = false;\n }\n if (!match)\n return null;\n if (match[1]) {\n var bracketPos = this.$findClosingBracket(match[1], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(pos, bracketPos);\n if (!before) {\n range.end.column++;\n range.start.column--;\n }\n range.cursor = range.end;\n }\n else {\n var bracketPos = this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(bracketPos, pos);\n if (!before) {\n range.start.column++;\n range.end.column--;\n }\n range.cursor = range.start;\n }\n return range;\n };\n this.getMatchingBracketRanges = function (pos, isBackwards) {\n var line = this.getLine(pos.row);\n var bracketsRegExp = /([\\(\\[\\{])|([\\)\\]\\}])/;\n var chr = !isBackwards && line.charAt(pos.column - 1);\n var match = chr && chr.match(bracketsRegExp);\n if (!match) {\n chr = (isBackwards === undefined || isBackwards) && line.charAt(pos.column);\n pos = {\n row: pos.row,\n column: pos.column + 1\n };\n match = chr && chr.match(bracketsRegExp);\n }\n if (!match)\n return null;\n var startRange = new Range(pos.row, pos.column - 1, pos.row, pos.column);\n var bracketPos = match[1] ? this.$findClosingBracket(match[1], pos)\n : this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return [startRange];\n var endRange = new Range(bracketPos.row, bracketPos.column, bracketPos.row, bracketPos.column + 1);\n return [startRange, endRange];\n };\n this.$brackets = {\n \")\": \"(\",\n \"(\": \")\",\n \"]\": \"[\",\n \"[\": \"]\",\n \"{\": \"}\",\n \"}\": \"{\",\n \"<\": \">\",\n \">\": \"<\"\n };\n this.$findOpeningBracket = function (bracket, position, typeRe) {\n var openBracket = this.$brackets[bracket];\n var depth = 1;\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n if (!typeRe) {\n typeRe = new RegExp(\"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"rparen\", \".paren\")\n .replace(/\\b(?:end)\\b/, \"(?:start|begin|end)\")\n .replace(/-close\\b/, \"-(close|open)\")\n + \")+\");\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn() - 2;\n var value = token.value;\n while (true) {\n while (valueIndex >= 0) {\n var chr = value.charAt(valueIndex);\n if (chr == openBracket) {\n depth -= 1;\n if (depth == 0) {\n return { row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn() };\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex -= 1;\n }\n do {\n token = iterator.stepBackward();\n } while (token && !typeRe.test(token.type));\n if (token == null)\n break;\n value = token.value;\n valueIndex = value.length - 1;\n }\n return null;\n };\n this.$findClosingBracket = function (bracket, position, typeRe) {\n var closingBracket = this.$brackets[bracket];\n var depth = 1;\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n if (!typeRe) {\n typeRe = new RegExp(\"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"lparen\", \".paren\")\n .replace(/\\b(?:start|begin)\\b/, \"(?:start|begin|end)\")\n .replace(/-open\\b/, \"-(close|open)\")\n + \")+\");\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn();\n while (true) {\n var value = token.value;\n var valueLength = value.length;\n while (valueIndex < valueLength) {\n var chr = value.charAt(valueIndex);\n if (chr == closingBracket) {\n depth -= 1;\n if (depth == 0) {\n return { row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn() };\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex += 1;\n }\n do {\n token = iterator.stepForward();\n } while (token && !typeRe.test(token.type));\n if (token == null)\n break;\n valueIndex = 0;\n }\n return null;\n };\n this.getMatchingTags = function (pos) {\n var iterator = new TokenIterator(this, pos.row, pos.column);\n var token = this.$findTagName(iterator);\n if (!token)\n return;\n var prevToken = iterator.stepBackward();\n if (prevToken.value === '<') {\n return this.$findClosingTag(iterator, token);\n }\n else {\n return this.$findOpeningTag(iterator, token);\n }\n };\n this.$findTagName = function (iterator) {\n var token = iterator.getCurrentToken();\n var found = false;\n var backward = false;\n if (token && token.type.indexOf('tag-name') === -1) {\n do {\n if (backward)\n token = iterator.stepBackward();\n else\n token = iterator.stepForward();\n if (token) {\n if (token.value === \"/>\") {\n backward = true;\n }\n else if (token.type.indexOf('tag-name') !== -1) {\n found = true;\n }\n }\n } while (token && !found);\n }\n return token;\n };\n this.$findClosingTag = function (iterator, token) {\n var prevToken;\n var currentTag = token.value;\n var tag = token.value;\n var depth = 0;\n var openTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1);\n token = iterator.stepForward();\n var openTagName = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + token.value.length);\n var foundOpenTagEnd = false;\n do {\n prevToken = token;\n token = iterator.stepForward();\n if (token) {\n if (token.value === '>' && !foundOpenTagEnd) {\n var openTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for `>`\n foundOpenTagEnd = true;\n }\n if (token.type.indexOf('tag-name') !== -1) {\n currentTag = token.value;\n if (tag === currentTag) {\n if (prevToken.value === '<') {\n depth++;\n }\n else if (prevToken.value === '') {\n var closeTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n }\n else {\n return;\n }\n }\n }\n }\n }\n else if (tag === currentTag && token.value === '/>') { // self-closing tag\n depth--;\n if (depth < 0) { //found self-closing tag end\n var closeTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 2);\n var closeTagName = closeTagStart;\n var closeTagEnd = closeTagName;\n var openTagEnd = new Range(openTagName.end.row, openTagName.end.column, openTagName.end.row, openTagName.end.column + 1);\n }\n }\n }\n } while (token && depth >= 0);\n if (openTagStart && openTagEnd && closeTagStart && closeTagEnd && openTagName && closeTagName) {\n return {\n openTag: new Range(openTagStart.start.row, openTagStart.start.column, openTagEnd.end.row, openTagEnd.end.column),\n closeTag: new Range(closeTagStart.start.row, closeTagStart.start.column, closeTagEnd.end.row, closeTagEnd.end.column),\n openTagName: openTagName,\n closeTagName: closeTagName\n };\n }\n };\n this.$findOpeningTag = function (iterator, token) {\n var prevToken = iterator.getCurrentToken();\n var tag = token.value;\n var depth = 0;\n var startRow = iterator.getCurrentTokenRow();\n var startColumn = iterator.getCurrentTokenColumn();\n var endColumn = startColumn + 2;\n var closeTagStart = new Range(startRow, startColumn, startRow, endColumn); //Range for \")\n return;\n var closeTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n iterator.stepBackward();\n iterator.stepBackward();\n do {\n token = prevToken;\n startRow = iterator.getCurrentTokenRow();\n startColumn = iterator.getCurrentTokenColumn();\n endColumn = startColumn + token.value.length;\n prevToken = iterator.stepBackward();\n if (token) {\n if (token.type.indexOf('tag-name') !== -1) {\n if (tag === token.value) {\n if (prevToken.value === '<') {\n depth++;\n if (depth > 0) { //found opening tag\n var openTagName = new Range(startRow, startColumn, startRow, endColumn);\n var openTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for <\n do {\n token = iterator.stepForward();\n } while (token && token.value !== '>');\n var openTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n }\n }\n else if (prevToken.value === '') { // self-closing tag\n var stepCount = 0;\n var tmpToken = prevToken;\n while (tmpToken) {\n if (tmpToken.type.indexOf('tag-name') !== -1 && tmpToken.value === tag) {\n depth--;\n break;\n }\n else if (tmpToken.value === '<') {\n break;\n }\n tmpToken = iterator.stepBackward();\n stepCount++;\n }\n for (var i = 0; i < stepCount; i++) {\n iterator.stepForward();\n }\n }\n }\n } while (prevToken && depth <= 0);\n if (openTagStart && openTagEnd && closeTagStart && closeTagEnd && openTagName && closeTagName) {\n return {\n openTag: new Range(openTagStart.start.row, openTagStart.start.column, openTagEnd.end.row, openTagEnd.end.column),\n closeTag: new Range(closeTagStart.start.row, closeTagStart.start.column, closeTagEnd.end.row, closeTagEnd.end.column),\n openTagName: openTagName,\n closeTagName: closeTagName\n };\n }\n };\n}\nexports.BracketMatch = BracketMatch;\n\n});\n\nace.define(\"ace/edit_session\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/bidihandler\",\"ace/config\",\"ace/lib/event_emitter\",\"ace/selection\",\"ace/mode/text\",\"ace/range\",\"ace/document\",\"ace/background_tokenizer\",\"ace/search_highlight\",\"ace/undomanager\",\"ace/edit_session/folding\",\"ace/edit_session/bracket_match\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar lang = require(\"./lib/lang\");\nvar BidiHandler = require(\"./bidihandler\").BidiHandler;\nvar config = require(\"./config\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Selection = require(\"./selection\").Selection;\nvar TextMode = require(\"./mode/text\").Mode;\nvar Range = require(\"./range\").Range;\nvar Document = require(\"./document\").Document;\nvar BackgroundTokenizer = require(\"./background_tokenizer\").BackgroundTokenizer;\nvar SearchHighlight = require(\"./search_highlight\").SearchHighlight;\nvar UndoManager = require(\"./undomanager\").UndoManager;\nvar EditSession = /** @class */ (function () {\n function EditSession(text, mode) {\n this.$breakpoints = [];\n this.$decorations = [];\n this.$frontMarkers = {};\n this.$backMarkers = {};\n this.$markerId = 1;\n this.$undoSelect = true;\n this.$foldData = [];\n this.id = \"session\" + (++EditSession.$uid);\n this.$foldData.toString = function () {\n return this.join(\"\\n\");\n };\n this.bgTokenizer = new BackgroundTokenizer((new TextMode()).getTokenizer(), this);\n var _self = this;\n this.bgTokenizer.on(\"update\", function (e) {\n _self._signal(\"tokenizerUpdate\", e);\n });\n this.on(\"changeFold\", this.onChangeFold.bind(this));\n this.$onChange = this.onChange.bind(this);\n if (typeof text != \"object\" || !text.getLine)\n text = new Document(text);\n this.setDocument(text);\n this.selection = new Selection(this);\n this.$bidiHandler = new BidiHandler(this);\n config.resetOptions(this);\n this.setMode(mode);\n config._signal(\"session\", this);\n this.destroyed = false;\n }\n EditSession.prototype.setDocument = function (doc) {\n if (this.doc)\n this.doc.off(\"change\", this.$onChange);\n this.doc = doc;\n doc.on(\"change\", this.$onChange, true);\n this.bgTokenizer.setDocument(this.getDocument());\n this.resetCaches();\n };\n EditSession.prototype.getDocument = function () {\n return this.doc;\n };\n EditSession.prototype.$resetRowCache = function (docRow) {\n if (!docRow) {\n this.$docRowCache = [];\n this.$screenRowCache = [];\n return;\n }\n var l = this.$docRowCache.length;\n var i = this.$getRowCacheIndex(this.$docRowCache, docRow) + 1;\n if (l > i) {\n this.$docRowCache.splice(i, l);\n this.$screenRowCache.splice(i, l);\n }\n };\n EditSession.prototype.$getRowCacheIndex = function (cacheArray, val) {\n var low = 0;\n var hi = cacheArray.length - 1;\n while (low <= hi) {\n var mid = (low + hi) >> 1;\n var c = cacheArray[mid];\n if (val > c)\n low = mid + 1;\n else if (val < c)\n hi = mid - 1;\n else\n return mid;\n }\n return low - 1;\n };\n EditSession.prototype.resetCaches = function () {\n this.$modified = true;\n this.$wrapData = [];\n this.$rowLengthCache = [];\n this.$resetRowCache(0);\n if (!this.destroyed)\n this.bgTokenizer.start(0);\n };\n EditSession.prototype.onChangeFold = function (e) {\n var fold = e.data;\n this.$resetRowCache(fold.start.row);\n };\n EditSession.prototype.onChange = function (delta) {\n this.$modified = true;\n this.$bidiHandler.onChange(delta);\n this.$resetRowCache(delta.start.row);\n var removedFolds = this.$updateInternalDataOnChange(delta);\n if (!this.$fromUndo && this.$undoManager) {\n if (removedFolds && removedFolds.length) {\n this.$undoManager.add({\n action: \"removeFolds\",\n folds: removedFolds\n }, this.mergeUndoDeltas);\n this.mergeUndoDeltas = true;\n }\n this.$undoManager.add(delta, this.mergeUndoDeltas);\n this.mergeUndoDeltas = true;\n this.$informUndoManager.schedule();\n }\n this.bgTokenizer.$updateOnChange(delta);\n this._signal(\"change\", delta);\n };\n EditSession.prototype.setValue = function (text) {\n this.doc.setValue(text);\n this.selection.moveTo(0, 0);\n this.$resetRowCache(0);\n this.setUndoManager(this.$undoManager);\n this.getUndoManager().reset();\n };\n EditSession.fromJSON = function (session) {\n session = JSON.parse(session);\n var undoManager = new UndoManager();\n undoManager.$undoStack = session.history.undo;\n undoManager.$redoStack = session.history.redo;\n undoManager.mark = session.history.mark;\n undoManager.$rev = session.history.rev;\n var editSession = new EditSession(session.value);\n session.folds.forEach(function (fold) {\n editSession.addFold(\"...\", Range.fromPoints(fold.start, fold.end));\n });\n editSession.setAnnotations(session.annotations);\n editSession.setBreakpoints(session.breakpoints);\n editSession.setMode(session.mode);\n editSession.setScrollLeft(session.scrollLeft);\n editSession.setScrollTop(session.scrollTop);\n editSession.setUndoManager(undoManager);\n editSession.selection.fromJSON(session.selection);\n return editSession;\n };\n EditSession.prototype.toJSON = function () {\n return {\n annotations: this.$annotations,\n breakpoints: this.$breakpoints,\n folds: this.getAllFolds().map(function (fold) {\n return fold.range;\n }),\n history: this.getUndoManager(),\n mode: this.$mode.$id,\n scrollLeft: this.$scrollLeft,\n scrollTop: this.$scrollTop,\n selection: this.selection.toJSON(),\n value: this.doc.getValue()\n };\n };\n EditSession.prototype.toString = function () {\n return this.doc.getValue();\n };\n EditSession.prototype.getSelection = function () {\n return this.selection;\n };\n EditSession.prototype.getState = function (row) {\n return this.bgTokenizer.getState(row);\n };\n EditSession.prototype.getTokens = function (row) {\n return this.bgTokenizer.getTokens(row);\n };\n EditSession.prototype.getTokenAt = function (row, column) {\n var tokens = this.bgTokenizer.getTokens(row);\n var token, c = 0;\n if (column == null) {\n var i = tokens.length - 1;\n c = this.getLine(row).length;\n }\n else {\n for (var i = 0; i < tokens.length; i++) {\n c += tokens[i].value.length;\n if (c >= column)\n break;\n }\n }\n token = tokens[i];\n if (!token)\n return null;\n token.index = i;\n token.start = c - token.value.length;\n return token;\n };\n EditSession.prototype.setUndoManager = function (undoManager) {\n this.$undoManager = undoManager;\n if (this.$informUndoManager)\n this.$informUndoManager.cancel();\n if (undoManager) {\n var self = this;\n undoManager.addSession(this);\n this.$syncInformUndoManager = function () {\n self.$informUndoManager.cancel();\n self.mergeUndoDeltas = false;\n };\n this.$informUndoManager = lang.delayedCall(this.$syncInformUndoManager);\n }\n else {\n this.$syncInformUndoManager = function () { };\n }\n };\n EditSession.prototype.markUndoGroup = function () {\n if (this.$syncInformUndoManager)\n this.$syncInformUndoManager();\n };\n EditSession.prototype.getUndoManager = function () {\n return this.$undoManager || this.$defaultUndoManager;\n };\n EditSession.prototype.getTabString = function () {\n if (this.getUseSoftTabs()) {\n return lang.stringRepeat(\" \", this.getTabSize());\n }\n else {\n return \"\\t\";\n }\n };\n EditSession.prototype.setUseSoftTabs = function (val) {\n this.setOption(\"useSoftTabs\", val);\n };\n EditSession.prototype.getUseSoftTabs = function () {\n return this.$useSoftTabs && !this.$mode.$indentWithTabs;\n };\n EditSession.prototype.setTabSize = function (tabSize) {\n this.setOption(\"tabSize\", tabSize);\n };\n EditSession.prototype.getTabSize = function () {\n return this.$tabSize;\n };\n EditSession.prototype.isTabStop = function (position) {\n return this.$useSoftTabs && (position.column % this.$tabSize === 0);\n };\n EditSession.prototype.setNavigateWithinSoftTabs = function (navigateWithinSoftTabs) {\n this.setOption(\"navigateWithinSoftTabs\", navigateWithinSoftTabs);\n };\n EditSession.prototype.getNavigateWithinSoftTabs = function () {\n return this.$navigateWithinSoftTabs;\n };\n EditSession.prototype.setOverwrite = function (overwrite) {\n this.setOption(\"overwrite\", overwrite);\n };\n EditSession.prototype.getOverwrite = function () {\n return this.$overwrite;\n };\n EditSession.prototype.toggleOverwrite = function () {\n this.setOverwrite(!this.$overwrite);\n };\n EditSession.prototype.addGutterDecoration = function (row, className) {\n if (!this.$decorations[row])\n this.$decorations[row] = \"\";\n this.$decorations[row] += \" \" + className;\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.removeGutterDecoration = function (row, className) {\n this.$decorations[row] = (this.$decorations[row] || \"\").replace(\" \" + className, \"\");\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.getBreakpoints = function () {\n return this.$breakpoints;\n };\n EditSession.prototype.setBreakpoints = function (rows) {\n this.$breakpoints = [];\n for (var i = 0; i < rows.length; i++) {\n this.$breakpoints[rows[i]] = \"ace_breakpoint\";\n }\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.clearBreakpoints = function () {\n this.$breakpoints = [];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.setBreakpoint = function (row, className) {\n if (className === undefined)\n className = \"ace_breakpoint\";\n if (className)\n this.$breakpoints[row] = className;\n else\n delete this.$breakpoints[row];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.clearBreakpoint = function (row) {\n delete this.$breakpoints[row];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.addMarker = function (range, clazz, type, inFront) {\n var id = this.$markerId++;\n var marker = {\n range: range,\n type: type || \"line\",\n renderer: typeof type == \"function\" ? type : null,\n clazz: clazz,\n inFront: !!inFront,\n id: id\n };\n if (inFront) {\n this.$frontMarkers[id] = marker;\n this._signal(\"changeFrontMarker\");\n }\n else {\n this.$backMarkers[id] = marker;\n this._signal(\"changeBackMarker\");\n }\n return id;\n };\n EditSession.prototype.addDynamicMarker = function (marker, inFront) {\n if (!marker.update)\n return;\n var id = this.$markerId++;\n marker.id = id;\n marker.inFront = !!inFront;\n if (inFront) {\n this.$frontMarkers[id] = marker;\n this._signal(\"changeFrontMarker\");\n }\n else {\n this.$backMarkers[id] = marker;\n this._signal(\"changeBackMarker\");\n }\n return marker;\n };\n EditSession.prototype.removeMarker = function (markerId) {\n var marker = this.$frontMarkers[markerId] || this.$backMarkers[markerId];\n if (!marker)\n return;\n var markers = marker.inFront ? this.$frontMarkers : this.$backMarkers;\n delete (markers[markerId]);\n this._signal(marker.inFront ? \"changeFrontMarker\" : \"changeBackMarker\");\n };\n EditSession.prototype.getMarkers = function (inFront) {\n return inFront ? this.$frontMarkers : this.$backMarkers;\n };\n EditSession.prototype.highlight = function (re) {\n if (!this.$searchHighlight) {\n var highlight = new SearchHighlight(null, \"ace_selected-word\", \"text\");\n this.$searchHighlight = this.addDynamicMarker(highlight);\n }\n this.$searchHighlight.setRegexp(re);\n };\n EditSession.prototype.highlightLines = function (startRow, endRow, clazz, inFront) {\n if (typeof endRow != \"number\") {\n clazz = endRow;\n endRow = startRow;\n }\n if (!clazz)\n clazz = \"ace_step\";\n var range = new Range(startRow, 0, endRow, Infinity);\n range.id = this.addMarker(range, clazz, \"fullLine\", inFront);\n return range;\n };\n EditSession.prototype.setAnnotations = function (annotations) {\n this.$annotations = annotations;\n this._signal(\"changeAnnotation\", {});\n };\n EditSession.prototype.getAnnotations = function () {\n return this.$annotations || [];\n };\n EditSession.prototype.clearAnnotations = function () {\n this.setAnnotations([]);\n };\n EditSession.prototype.$detectNewLine = function (text) {\n var match = text.match(/^.*?(\\r?\\n)/m);\n if (match) {\n this.$autoNewLine = match[1];\n }\n else {\n this.$autoNewLine = \"\\n\";\n }\n };\n EditSession.prototype.getWordRange = function (row, column) {\n var line = this.getLine(row);\n var inToken = false;\n if (column > 0)\n inToken = !!line.charAt(column - 1).match(this.tokenRe);\n if (!inToken)\n inToken = !!line.charAt(column).match(this.tokenRe);\n if (inToken)\n var re = this.tokenRe;\n else if (/^\\s+$/.test(line.slice(column - 1, column + 1)))\n var re = /\\s/;\n else\n var re = this.nonTokenRe;\n var start = column;\n if (start > 0) {\n do {\n start--;\n } while (start >= 0 && line.charAt(start).match(re));\n start++;\n }\n var end = column;\n while (end < line.length && line.charAt(end).match(re)) {\n end++;\n }\n return new Range(row, start, row, end);\n };\n EditSession.prototype.getAWordRange = function (row, column) {\n var wordRange = this.getWordRange(row, column);\n var line = this.getLine(wordRange.end.row);\n while (line.charAt(wordRange.end.column).match(/[ \\t]/)) {\n wordRange.end.column += 1;\n }\n return wordRange;\n };\n EditSession.prototype.setNewLineMode = function (newLineMode) {\n this.doc.setNewLineMode(newLineMode);\n };\n EditSession.prototype.getNewLineMode = function () {\n return this.doc.getNewLineMode();\n };\n EditSession.prototype.setUseWorker = function (useWorker) { this.setOption(\"useWorker\", useWorker); };\n EditSession.prototype.getUseWorker = function () { return this.$useWorker; };\n EditSession.prototype.onReloadTokenizer = function (e) {\n var rows = e.data;\n this.bgTokenizer.start(rows.first);\n this._signal(\"tokenizerUpdate\", e);\n };\n EditSession.prototype.setMode = function (mode, cb) {\n if (mode && typeof mode === \"object\") {\n if (mode.getTokenizer)\n return this.$onChangeMode(mode);\n var options = mode;\n var path = options.path;\n }\n else {\n path = mode || \"ace/mode/text\";\n }\n if (!this.$modes[\"ace/mode/text\"])\n this.$modes[\"ace/mode/text\"] = new TextMode();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n cb && cb();\n return;\n }\n this.$modeId = path;\n config.loadModule([\"mode\", path], function (m) {\n if (this.$modeId !== path)\n return cb && cb();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n }\n else if (m && m.Mode) {\n m = new m.Mode(options);\n if (!options) {\n this.$modes[path] = m;\n m.$id = path;\n }\n this.$onChangeMode(m);\n }\n cb && cb();\n }.bind(this));\n if (!this.$mode)\n this.$onChangeMode(this.$modes[\"ace/mode/text\"], true);\n };\n EditSession.prototype.$onChangeMode = function (mode, $isPlaceholder) {\n if (!$isPlaceholder)\n this.$modeId = mode.$id;\n if (this.$mode === mode)\n return;\n var oldMode = this.$mode;\n this.$mode = mode;\n this.$stopWorker();\n if (this.$useWorker)\n this.$startWorker();\n var tokenizer = mode.getTokenizer();\n if (tokenizer.on !== undefined) {\n var onReloadTokenizer = this.onReloadTokenizer.bind(this);\n tokenizer.on(\"update\", onReloadTokenizer);\n }\n this.bgTokenizer.setTokenizer(tokenizer);\n this.bgTokenizer.setDocument(this.getDocument());\n this.tokenRe = mode.tokenRe;\n this.nonTokenRe = mode.nonTokenRe;\n if (!$isPlaceholder) {\n if (mode.attachToSession)\n mode.attachToSession(this);\n this.$options.wrapMethod.set.call(this, this.$wrapMethod);\n this.$setFolding(mode.foldingRules);\n this.bgTokenizer.start(0);\n this._emit(\"changeMode\", { oldMode: oldMode, mode: mode });\n }\n };\n EditSession.prototype.$stopWorker = function () {\n if (this.$worker) {\n this.$worker.terminate();\n this.$worker = null;\n }\n };\n EditSession.prototype.$startWorker = function () {\n try {\n this.$worker = this.$mode.createWorker(this);\n }\n catch (e) {\n config.warn(\"Could not load worker\", e);\n this.$worker = null;\n }\n };\n EditSession.prototype.getMode = function () {\n return this.$mode;\n };\n EditSession.prototype.setScrollTop = function (scrollTop) {\n if (this.$scrollTop === scrollTop || isNaN(scrollTop))\n return;\n this.$scrollTop = scrollTop;\n this._signal(\"changeScrollTop\", scrollTop);\n };\n EditSession.prototype.getScrollTop = function () {\n return this.$scrollTop;\n };\n EditSession.prototype.setScrollLeft = function (scrollLeft) {\n if (this.$scrollLeft === scrollLeft || isNaN(scrollLeft))\n return;\n this.$scrollLeft = scrollLeft;\n this._signal(\"changeScrollLeft\", scrollLeft);\n };\n EditSession.prototype.getScrollLeft = function () {\n return this.$scrollLeft;\n };\n EditSession.prototype.getScreenWidth = function () {\n this.$computeWidth();\n if (this.lineWidgets)\n return Math.max(this.getLineWidgetMaxWidth(), this.screenWidth);\n return this.screenWidth;\n };\n EditSession.prototype.getLineWidgetMaxWidth = function () {\n if (this.lineWidgetsWidth != null)\n return this.lineWidgetsWidth;\n var width = 0;\n this.lineWidgets.forEach(function (w) {\n if (w && w.screenWidth > width)\n width = w.screenWidth;\n });\n return this.lineWidgetWidth = width;\n };\n EditSession.prototype.$computeWidth = function (force) {\n if (this.$modified || force) {\n this.$modified = false;\n if (this.$useWrapMode)\n return this.screenWidth = this.$wrapLimit;\n var lines = this.doc.getAllLines();\n var cache = this.$rowLengthCache;\n var longestScreenLine = 0;\n var foldIndex = 0;\n var foldLine = this.$foldData[foldIndex];\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n var len = lines.length;\n for (var i = 0; i < len; i++) {\n if (i > foldStart) {\n i = foldLine.end.row + 1;\n if (i >= len)\n break;\n foldLine = this.$foldData[foldIndex++];\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (cache[i] == null)\n cache[i] = this.$getStringScreenWidth(lines[i])[0];\n if (cache[i] > longestScreenLine)\n longestScreenLine = cache[i];\n }\n this.screenWidth = longestScreenLine;\n }\n };\n EditSession.prototype.getLine = function (row) {\n return this.doc.getLine(row);\n };\n EditSession.prototype.getLines = function (firstRow, lastRow) {\n return this.doc.getLines(firstRow, lastRow);\n };\n EditSession.prototype.getLength = function () {\n return this.doc.getLength();\n };\n EditSession.prototype.getTextRange = function (range) {\n return this.doc.getTextRange(range || this.selection.getRange());\n };\n EditSession.prototype.insert = function (position, text) {\n return this.doc.insert(position, text);\n };\n EditSession.prototype.remove = function (range) {\n return this.doc.remove(range);\n };\n EditSession.prototype.removeFullLines = function (firstRow, lastRow) {\n return this.doc.removeFullLines(firstRow, lastRow);\n };\n EditSession.prototype.undoChanges = function (deltas, dontSelect) {\n if (!deltas.length)\n return;\n this.$fromUndo = true;\n for (var i = deltas.length - 1; i != -1; i--) {\n var delta = deltas[i];\n if (delta.action == \"insert\" || delta.action == \"remove\") {\n this.doc.revertDelta(delta);\n }\n else if (delta.folds) {\n this.addFolds(delta.folds);\n }\n }\n if (!dontSelect && this.$undoSelect) {\n if (deltas.selectionBefore)\n this.selection.fromJSON(deltas.selectionBefore);\n else\n this.selection.setRange(this.$getUndoSelection(deltas, true));\n }\n this.$fromUndo = false;\n };\n EditSession.prototype.redoChanges = function (deltas, dontSelect) {\n if (!deltas.length)\n return;\n this.$fromUndo = true;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (delta.action == \"insert\" || delta.action == \"remove\") {\n this.doc.$safeApplyDelta(delta);\n }\n }\n if (!dontSelect && this.$undoSelect) {\n if (deltas.selectionAfter)\n this.selection.fromJSON(deltas.selectionAfter);\n else\n this.selection.setRange(this.$getUndoSelection(deltas, false));\n }\n this.$fromUndo = false;\n };\n EditSession.prototype.setUndoSelect = function (enable) {\n this.$undoSelect = enable;\n };\n EditSession.prototype.$getUndoSelection = function (deltas, isUndo) {\n function isInsert(delta) {\n return isUndo ? delta.action !== \"insert\" : delta.action === \"insert\";\n }\n var range, point;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (!delta.start)\n continue; // skip folds\n if (!range) {\n if (isInsert(delta)) {\n range = Range.fromPoints(delta.start, delta.end);\n }\n else {\n range = Range.fromPoints(delta.start, delta.start);\n }\n continue;\n }\n if (isInsert(delta)) {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range.setStart(point);\n }\n point = delta.end;\n if (range.compare(point.row, point.column) == 1) {\n range.setEnd(point);\n }\n }\n else {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range = Range.fromPoints(delta.start, delta.start);\n }\n }\n }\n return range;\n };\n EditSession.prototype.replace = function (range, text) {\n return this.doc.replace(range, text);\n };\n EditSession.prototype.moveText = function (fromRange, toPosition, copy) {\n var text = this.getTextRange(fromRange);\n var folds = this.getFoldsInRange(fromRange);\n var toRange = Range.fromPoints(toPosition, toPosition);\n if (!copy) {\n this.remove(fromRange);\n var rowDiff = fromRange.start.row - fromRange.end.row;\n var collDiff = rowDiff ? -fromRange.end.column : fromRange.start.column - fromRange.end.column;\n if (collDiff) {\n if (toRange.start.row == fromRange.end.row && toRange.start.column > fromRange.end.column)\n toRange.start.column += collDiff;\n if (toRange.end.row == fromRange.end.row && toRange.end.column > fromRange.end.column)\n toRange.end.column += collDiff;\n }\n if (rowDiff && toRange.start.row >= fromRange.end.row) {\n toRange.start.row += rowDiff;\n toRange.end.row += rowDiff;\n }\n }\n toRange.end = this.insert(toRange.start, text);\n if (folds.length) {\n var oldStart = fromRange.start;\n var newStart = toRange.start;\n var rowDiff = newStart.row - oldStart.row;\n var collDiff = newStart.column - oldStart.column;\n this.addFolds(folds.map(function (x) {\n x = x.clone();\n if (x.start.row == oldStart.row)\n x.start.column += collDiff;\n if (x.end.row == oldStart.row)\n x.end.column += collDiff;\n x.start.row += rowDiff;\n x.end.row += rowDiff;\n return x;\n }));\n }\n return toRange;\n };\n EditSession.prototype.indentRows = function (startRow, endRow, indentString) {\n indentString = indentString.replace(/\\t/g, this.getTabString());\n for (var row = startRow; row <= endRow; row++)\n this.doc.insertInLine({ row: row, column: 0 }, indentString);\n };\n EditSession.prototype.outdentRows = function (range) {\n var rowRange = range.collapseRows();\n var deleteRange = new Range(0, 0, 0, 0);\n var size = this.getTabSize();\n for (var i = rowRange.start.row; i <= rowRange.end.row; ++i) {\n var line = this.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n for (var j = 0; j < size; ++j)\n if (line.charAt(j) != ' ')\n break;\n if (j < size && line.charAt(j) == '\\t') {\n deleteRange.start.column = j;\n deleteRange.end.column = j + 1;\n }\n else {\n deleteRange.start.column = 0;\n deleteRange.end.column = j;\n }\n this.remove(deleteRange);\n }\n };\n EditSession.prototype.$moveLines = function (firstRow, lastRow, dir) {\n firstRow = this.getRowFoldStart(firstRow);\n lastRow = this.getRowFoldEnd(lastRow);\n if (dir < 0) {\n var row = this.getRowFoldStart(firstRow + dir);\n if (row < 0)\n return 0;\n var diff = row - firstRow;\n }\n else if (dir > 0) {\n var row = this.getRowFoldEnd(lastRow + dir);\n if (row > this.doc.getLength() - 1)\n return 0;\n var diff = row - lastRow;\n }\n else {\n firstRow = this.$clipRowToDocument(firstRow);\n lastRow = this.$clipRowToDocument(lastRow);\n var diff = lastRow - firstRow + 1;\n }\n var range = new Range(firstRow, 0, lastRow, Number.MAX_VALUE);\n var folds = this.getFoldsInRange(range).map(function (x) {\n x = x.clone();\n x.start.row += diff;\n x.end.row += diff;\n return x;\n });\n var lines = dir == 0\n ? this.doc.getLines(firstRow, lastRow)\n : this.doc.removeFullLines(firstRow, lastRow);\n this.doc.insertFullLines(firstRow + diff, lines);\n folds.length && this.addFolds(folds);\n return diff;\n };\n EditSession.prototype.moveLinesUp = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, -1);\n };\n EditSession.prototype.moveLinesDown = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 1);\n };\n EditSession.prototype.duplicateLines = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 0);\n };\n EditSession.prototype.$clipRowToDocument = function (row) {\n return Math.max(0, Math.min(row, this.doc.getLength() - 1));\n };\n EditSession.prototype.$clipColumnToRow = function (row, column) {\n if (column < 0)\n return 0;\n return Math.min(this.doc.getLine(row).length, column);\n };\n EditSession.prototype.$clipPositionToDocument = function (row, column) {\n column = Math.max(0, column);\n if (row < 0) {\n row = 0;\n column = 0;\n }\n else {\n var len = this.doc.getLength();\n if (row >= len) {\n row = len - 1;\n column = this.doc.getLine(len - 1).length;\n }\n else {\n column = Math.min(this.doc.getLine(row).length, column);\n }\n }\n return {\n row: row,\n column: column\n };\n };\n EditSession.prototype.$clipRangeToDocument = function (range) {\n if (range.start.row < 0) {\n range.start.row = 0;\n range.start.column = 0;\n }\n else {\n range.start.column = this.$clipColumnToRow(range.start.row, range.start.column);\n }\n var len = this.doc.getLength() - 1;\n if (range.end.row > len) {\n range.end.row = len;\n range.end.column = this.doc.getLine(len).length;\n }\n else {\n range.end.column = this.$clipColumnToRow(range.end.row, range.end.column);\n }\n return range;\n };\n EditSession.prototype.setUseWrapMode = function (useWrapMode) {\n if (useWrapMode != this.$useWrapMode) {\n this.$useWrapMode = useWrapMode;\n this.$modified = true;\n this.$resetRowCache(0);\n if (useWrapMode) {\n var len = this.getLength();\n this.$wrapData = Array(len);\n this.$updateWrapData(0, len - 1);\n }\n this._signal(\"changeWrapMode\");\n }\n };\n EditSession.prototype.getUseWrapMode = function () {\n return this.$useWrapMode;\n };\n EditSession.prototype.setWrapLimitRange = function (min, max) {\n if (this.$wrapLimitRange.min !== min || this.$wrapLimitRange.max !== max) {\n this.$wrapLimitRange = { min: min, max: max };\n this.$modified = true;\n this.$bidiHandler.markAsDirty();\n if (this.$useWrapMode)\n this._signal(\"changeWrapMode\");\n }\n };\n EditSession.prototype.adjustWrapLimit = function (desiredLimit, $printMargin) {\n var limits = this.$wrapLimitRange;\n if (limits.max < 0)\n limits = { min: $printMargin, max: $printMargin };\n var wrapLimit = this.$constrainWrapLimit(desiredLimit, limits.min, limits.max);\n if (wrapLimit != this.$wrapLimit && wrapLimit > 1) {\n this.$wrapLimit = wrapLimit;\n this.$modified = true;\n if (this.$useWrapMode) {\n this.$updateWrapData(0, this.getLength() - 1);\n this.$resetRowCache(0);\n this._signal(\"changeWrapLimit\");\n }\n return true;\n }\n return false;\n };\n EditSession.prototype.$constrainWrapLimit = function (wrapLimit, min, max) {\n if (min)\n wrapLimit = Math.max(min, wrapLimit);\n if (max)\n wrapLimit = Math.min(max, wrapLimit);\n return wrapLimit;\n };\n EditSession.prototype.getWrapLimit = function () {\n return this.$wrapLimit;\n };\n EditSession.prototype.setWrapLimit = function (limit) {\n this.setWrapLimitRange(limit, limit);\n };\n EditSession.prototype.getWrapLimitRange = function () {\n return {\n min: this.$wrapLimitRange.min,\n max: this.$wrapLimitRange.max\n };\n };\n EditSession.prototype.$updateInternalDataOnChange = function (delta) {\n var useWrapMode = this.$useWrapMode;\n var action = delta.action;\n var start = delta.start;\n var end = delta.end;\n var firstRow = start.row;\n var lastRow = end.row;\n var len = lastRow - firstRow;\n var removedFolds = null;\n this.$updating = true;\n if (len != 0) {\n if (action === \"remove\") {\n this[useWrapMode ? \"$wrapData\" : \"$rowLengthCache\"].splice(firstRow, len);\n var foldLines = this.$foldData;\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n var foldLine = this.getFoldLine(end.row);\n var idx = 0;\n if (foldLine) {\n foldLine.addRemoveChars(end.row, end.column, start.column - end.column);\n foldLine.shiftRow(-len);\n var foldLineBefore = this.getFoldLine(firstRow);\n if (foldLineBefore && foldLineBefore !== foldLine) {\n foldLineBefore.merge(foldLine);\n foldLine = foldLineBefore;\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= end.row) {\n foldLine.shiftRow(-len);\n }\n }\n lastRow = firstRow;\n }\n else {\n var args = Array(len);\n args.unshift(firstRow, 0);\n var arr = useWrapMode ? this.$wrapData : this.$rowLengthCache;\n arr.splice.apply(arr, args);\n var foldLines = this.$foldData;\n var foldLine = this.getFoldLine(firstRow);\n var idx = 0;\n if (foldLine) {\n var cmp = foldLine.range.compareInside(start.row, start.column);\n if (cmp == 0) {\n foldLine = foldLine.split(start.row, start.column);\n if (foldLine) {\n foldLine.shiftRow(len);\n foldLine.addRemoveChars(lastRow, 0, end.column - start.column);\n }\n }\n else \n if (cmp == -1) {\n foldLine.addRemoveChars(firstRow, 0, end.column - start.column);\n foldLine.shiftRow(len);\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= firstRow) {\n foldLine.shiftRow(len);\n }\n }\n }\n }\n else {\n len = Math.abs(delta.start.column - delta.end.column);\n if (action === \"remove\") {\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n len = -len;\n }\n var foldLine = this.getFoldLine(firstRow);\n if (foldLine) {\n foldLine.addRemoveChars(firstRow, start.column, len);\n }\n }\n if (useWrapMode && this.$wrapData.length != this.doc.getLength()) {\n console.error(\"doc.getLength() and $wrapData.length have to be the same!\");\n }\n this.$updating = false;\n if (useWrapMode)\n this.$updateWrapData(firstRow, lastRow);\n else\n this.$updateRowLengthCache(firstRow, lastRow);\n return removedFolds;\n };\n EditSession.prototype.$updateRowLengthCache = function (firstRow, lastRow, b) {\n this.$rowLengthCache[firstRow] = null;\n this.$rowLengthCache[lastRow] = null;\n };\n EditSession.prototype.$updateWrapData = function (firstRow, lastRow) {\n var lines = this.doc.getAllLines();\n var tabSize = this.getTabSize();\n var wrapData = this.$wrapData;\n var wrapLimit = this.$wrapLimit;\n var tokens;\n var foldLine;\n var row = firstRow;\n lastRow = Math.min(lastRow, lines.length - 1);\n while (row <= lastRow) {\n foldLine = this.getFoldLine(row, foldLine);\n if (!foldLine) {\n tokens = this.$getDisplayTokens(lines[row]);\n wrapData[row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row++;\n }\n else {\n tokens = [];\n foldLine.walk(function (placeholder, row, column, lastColumn) {\n var walkTokens;\n if (placeholder != null) {\n walkTokens = this.$getDisplayTokens(placeholder, tokens.length);\n walkTokens[0] = PLACEHOLDER_START;\n for (var i = 1; i < walkTokens.length; i++) {\n walkTokens[i] = PLACEHOLDER_BODY;\n }\n }\n else {\n walkTokens = this.$getDisplayTokens(lines[row].substring(lastColumn, column), tokens.length);\n }\n tokens = tokens.concat(walkTokens);\n }.bind(this), foldLine.end.row, lines[foldLine.end.row].length + 1);\n wrapData[foldLine.start.row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row = foldLine.end.row + 1;\n }\n }\n };\n EditSession.prototype.$computeWrapSplits = function (tokens, wrapLimit, tabSize) {\n if (tokens.length == 0) {\n return [];\n }\n var splits = [];\n var displayLength = tokens.length;\n var lastSplit = 0, lastDocSplit = 0;\n var isCode = this.$wrapAsCode;\n var indentedSoftWrap = this.$indentedSoftWrap;\n var maxIndent = wrapLimit <= Math.max(2 * tabSize, 8)\n || indentedSoftWrap === false ? 0 : Math.floor(wrapLimit / 2);\n function getWrapIndent() {\n var indentation = 0;\n if (maxIndent === 0)\n return indentation;\n if (indentedSoftWrap) {\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token == SPACE)\n indentation += 1;\n else if (token == TAB)\n indentation += tabSize;\n else if (token == TAB_SPACE)\n continue;\n else\n break;\n }\n }\n if (isCode && indentedSoftWrap !== false)\n indentation += tabSize;\n return Math.min(indentation, maxIndent);\n }\n function addSplit(screenPos) {\n var len = screenPos - lastSplit;\n for (var i = lastSplit; i < screenPos; i++) {\n var ch = tokens[i];\n if (ch === 12 || ch === 2)\n len -= 1;\n }\n if (!splits.length) {\n indent = getWrapIndent();\n splits.indent = indent;\n }\n lastDocSplit += len;\n splits.push(lastDocSplit);\n lastSplit = screenPos;\n }\n var indent = 0;\n while (displayLength - lastSplit > wrapLimit - indent) {\n var split = lastSplit + wrapLimit - indent;\n if (tokens[split - 1] >= SPACE && tokens[split] >= SPACE) {\n addSplit(split);\n continue;\n }\n if (tokens[split] == PLACEHOLDER_START || tokens[split] == PLACEHOLDER_BODY) {\n for (split; split != lastSplit - 1; split--) {\n if (tokens[split] == PLACEHOLDER_START) {\n break;\n }\n }\n if (split > lastSplit) {\n addSplit(split);\n continue;\n }\n split = lastSplit + wrapLimit;\n for (split; split < tokens.length; split++) {\n if (tokens[split] != PLACEHOLDER_BODY) {\n break;\n }\n }\n if (split == tokens.length) {\n break; // Breaks the while-loop.\n }\n addSplit(split);\n continue;\n }\n var minSplit = Math.max(split - (wrapLimit - (wrapLimit >> 2)), lastSplit - 1);\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split--;\n }\n if (isCode) {\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split--;\n }\n while (split > minSplit && tokens[split] == PUNCTUATION) {\n split--;\n }\n }\n else {\n while (split > minSplit && tokens[split] < SPACE) {\n split--;\n }\n }\n if (split > minSplit) {\n addSplit(++split);\n continue;\n }\n split = lastSplit + wrapLimit;\n if (tokens[split] == CHAR_EXT)\n split--;\n addSplit(split - indent);\n }\n return splits;\n };\n EditSession.prototype.$getDisplayTokens = function (str, offset) {\n var arr = [];\n var tabSize;\n offset = offset || 0;\n for (var i = 0; i < str.length; i++) {\n var c = str.charCodeAt(i);\n if (c == 9) {\n tabSize = this.getScreenTabSize(arr.length + offset);\n arr.push(TAB);\n for (var n = 1; n < tabSize; n++) {\n arr.push(TAB_SPACE);\n }\n }\n else if (c == 32) {\n arr.push(SPACE);\n }\n else if ((c > 39 && c < 48) || (c > 57 && c < 64)) {\n arr.push(PUNCTUATION);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n arr.push(CHAR, CHAR_EXT);\n }\n else {\n arr.push(CHAR);\n }\n }\n return arr;\n };\n EditSession.prototype.$getStringScreenWidth = function (str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn == 0)\n return [0, 0];\n if (maxScreenColumn == null)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charCodeAt(column);\n if (c == 9) {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n screenColumn += 2;\n }\n else {\n screenColumn += 1;\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n return [screenColumn, column];\n };\n EditSession.prototype.getRowLength = function (row) {\n var h = 1;\n if (this.lineWidgets)\n h += this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n if (!this.$useWrapMode || !this.$wrapData[row])\n return h;\n else\n return this.$wrapData[row].length + h;\n };\n EditSession.prototype.getRowLineCount = function (row) {\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1;\n }\n else {\n return this.$wrapData[row].length + 1;\n }\n };\n EditSession.prototype.getRowWrapIndent = function (screenRow) {\n if (this.$useWrapMode) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n var splits = this.$wrapData[pos.row];\n return splits.length && splits[0] < pos.column ? splits.indent : 0;\n }\n else {\n return 0;\n }\n };\n EditSession.prototype.getScreenLastRowColumn = function (screenRow) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n return this.documentToScreenColumn(pos.row, pos.column);\n };\n EditSession.prototype.getDocumentLastRowColumn = function (docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.getScreenLastRowColumn(screenRow);\n };\n EditSession.prototype.getDocumentLastRowColumnPosition = function (docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.screenToDocumentPosition(screenRow, Number.MAX_VALUE / 10);\n };\n EditSession.prototype.getRowSplitData = function (row) {\n if (!this.$useWrapMode) {\n return undefined;\n }\n else {\n return this.$wrapData[row];\n }\n };\n EditSession.prototype.getScreenTabSize = function (screenColumn) {\n return this.$tabSize - (screenColumn % this.$tabSize | 0);\n };\n EditSession.prototype.screenToDocumentRow = function (screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).row;\n };\n EditSession.prototype.screenToDocumentColumn = function (screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).column;\n };\n EditSession.prototype.screenToDocumentPosition = function (screenRow, screenColumn, offsetX) {\n if (screenRow < 0)\n return { row: 0, column: 0 };\n var line;\n var docRow = 0;\n var docColumn = 0;\n var column;\n var row = 0;\n var rowLength = 0;\n var rowCache = this.$screenRowCache;\n var i = this.$getRowCacheIndex(rowCache, screenRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var docRow = this.$docRowCache[i];\n var doCache = screenRow > rowCache[l - 1];\n }\n else {\n var doCache = !l;\n }\n var maxRow = this.getLength() - 1;\n var foldLine = this.getNextFoldLine(docRow);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (row <= screenRow) {\n rowLength = this.getRowLength(docRow);\n if (row + rowLength > screenRow || docRow >= maxRow) {\n break;\n }\n else {\n row += rowLength;\n docRow++;\n if (docRow > foldStart) {\n docRow = foldLine.end.row + 1;\n foldLine = this.getNextFoldLine(docRow, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n }\n if (doCache) {\n this.$docRowCache.push(docRow);\n this.$screenRowCache.push(row);\n }\n }\n if (foldLine && foldLine.start.row <= docRow) {\n line = this.getFoldDisplayLine(foldLine);\n docRow = foldLine.start.row;\n }\n else if (row + rowLength <= screenRow || docRow > maxRow) {\n return {\n row: maxRow,\n column: this.getLine(maxRow).length\n };\n }\n else {\n line = this.getLine(docRow);\n foldLine = null;\n }\n var wrapIndent = 0, splitIndex = Math.floor(screenRow - row);\n if (this.$useWrapMode) {\n var splits = this.$wrapData[docRow];\n if (splits) {\n column = splits[splitIndex];\n if (splitIndex > 0 && splits.length) {\n wrapIndent = splits.indent;\n docColumn = splits[splitIndex - 1] || splits[splits.length - 1];\n line = line.substring(docColumn);\n }\n }\n }\n if (offsetX !== undefined && this.$bidiHandler.isBidiRow(row + splitIndex, docRow, splitIndex))\n screenColumn = this.$bidiHandler.offsetToCol(offsetX);\n docColumn += this.$getStringScreenWidth(line, screenColumn - wrapIndent)[1];\n if (this.$useWrapMode && docColumn >= column)\n docColumn = column - 1;\n if (foldLine)\n return foldLine.idxToPosition(docColumn);\n return { row: docRow, column: docColumn };\n };\n EditSession.prototype.documentToScreenPosition = function (docRow, docColumn) {\n if (typeof docColumn === \"undefined\")\n var pos = this.$clipPositionToDocument(docRow.row, docRow.column);\n else\n pos = this.$clipPositionToDocument(docRow, docColumn);\n docRow = pos.row;\n docColumn = pos.column;\n var screenRow = 0;\n var foldStartRow = null;\n var fold = null;\n fold = this.getFoldAt(docRow, docColumn, 1);\n if (fold) {\n docRow = fold.start.row;\n docColumn = fold.start.column;\n }\n var rowEnd, row = 0;\n var rowCache = this.$docRowCache;\n var i = this.$getRowCacheIndex(rowCache, docRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var screenRow = this.$screenRowCache[i];\n var doCache = docRow > rowCache[l - 1];\n }\n else {\n var doCache = !l;\n }\n var foldLine = this.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (row < docRow) {\n if (row >= foldStart) {\n rowEnd = foldLine.end.row + 1;\n if (rowEnd > docRow)\n break;\n foldLine = this.getNextFoldLine(rowEnd, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n else {\n rowEnd = row + 1;\n }\n screenRow += this.getRowLength(row);\n row = rowEnd;\n if (doCache) {\n this.$docRowCache.push(row);\n this.$screenRowCache.push(screenRow);\n }\n }\n var textLine = \"\";\n if (foldLine && row >= foldStart) {\n textLine = this.getFoldDisplayLine(foldLine, docRow, docColumn);\n foldStartRow = foldLine.start.row;\n }\n else {\n textLine = this.getLine(docRow).substring(0, docColumn);\n foldStartRow = docRow;\n }\n var wrapIndent = 0;\n if (this.$useWrapMode) {\n var wrapRow = this.$wrapData[foldStartRow];\n if (wrapRow) {\n var screenRowOffset = 0;\n while (textLine.length >= wrapRow[screenRowOffset]) {\n screenRow++;\n screenRowOffset++;\n }\n textLine = textLine.substring(wrapRow[screenRowOffset - 1] || 0, textLine.length);\n wrapIndent = screenRowOffset > 0 ? wrapRow.indent : 0;\n }\n }\n if (this.lineWidgets && this.lineWidgets[row] && this.lineWidgets[row].rowsAbove)\n screenRow += this.lineWidgets[row].rowsAbove;\n return {\n row: screenRow,\n column: wrapIndent + this.$getStringScreenWidth(textLine)[0]\n };\n };\n EditSession.prototype.documentToScreenColumn = function (row, docColumn) {\n return this.documentToScreenPosition(row, docColumn).column;\n };\n EditSession.prototype.documentToScreenRow = function (docRow, docColumn) {\n return this.documentToScreenPosition(docRow, docColumn).row;\n };\n EditSession.prototype.getScreenLength = function () {\n var screenRows = 0;\n var fold = null;\n if (!this.$useWrapMode) {\n screenRows = this.getLength();\n var foldData = this.$foldData;\n for (var i = 0; i < foldData.length; i++) {\n fold = foldData[i];\n screenRows -= fold.end.row - fold.start.row;\n }\n }\n else {\n var lastRow = this.$wrapData.length;\n var row = 0, i = 0;\n var fold = this.$foldData[i++];\n var foldStart = fold ? fold.start.row : Infinity;\n while (row < lastRow) {\n var splits = this.$wrapData[row];\n screenRows += splits ? splits.length + 1 : 1;\n row++;\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = this.$foldData[i++];\n foldStart = fold ? fold.start.row : Infinity;\n }\n }\n }\n if (this.lineWidgets)\n screenRows += this.$getWidgetScreenLength();\n return screenRows;\n };\n EditSession.prototype.$setFontMetrics = function (fm) {\n if (!this.$enableVarChar)\n return;\n this.$getStringScreenWidth = function (str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn === 0)\n return [0, 0];\n if (!maxScreenColumn)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charAt(column);\n if (c === \"\\t\") {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else {\n screenColumn += fm.getCharacterWidth(c);\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n return [screenColumn, column];\n };\n };\n EditSession.prototype.destroy = function () {\n if (!this.destroyed) {\n this.bgTokenizer.setDocument(null);\n this.bgTokenizer.cleanup();\n this.destroyed = true;\n }\n this.$stopWorker();\n this.removeAllListeners();\n if (this.doc) {\n this.doc.off(\"change\", this.$onChange);\n }\n this.selection.detach();\n };\n return EditSession;\n}());\nEditSession.$uid = 0;\nEditSession.prototype.$modes = config.$modes;\nEditSession.prototype.getValue = EditSession.prototype.toString;\nEditSession.prototype.$defaultUndoManager = {\n undo: function () { },\n redo: function () { },\n hasUndo: function () { },\n hasRedo: function () { },\n reset: function () { },\n add: function () { },\n addSelection: function () { },\n startNewGroup: function () { },\n addSession: function () { }\n};\nEditSession.prototype.$overwrite = false;\nEditSession.prototype.$mode = null;\nEditSession.prototype.$modeId = null;\nEditSession.prototype.$scrollTop = 0;\nEditSession.prototype.$scrollLeft = 0;\nEditSession.prototype.$wrapLimit = 80;\nEditSession.prototype.$useWrapMode = false;\nEditSession.prototype.$wrapLimitRange = {\n min: null,\n max: null\n};\nEditSession.prototype.lineWidgets = null;\nEditSession.prototype.isFullWidth = isFullWidth;\noop.implement(EditSession.prototype, EventEmitter);\nvar CHAR = 1, CHAR_EXT = 2, PLACEHOLDER_START = 3, PLACEHOLDER_BODY = 4, PUNCTUATION = 9, SPACE = 10, TAB = 11, TAB_SPACE = 12;\nfunction isFullWidth(c) {\n if (c < 0x1100)\n return false;\n return c >= 0x1100 && c <= 0x115F ||\n c >= 0x11A3 && c <= 0x11A7 ||\n c >= 0x11FA && c <= 0x11FF ||\n c >= 0x2329 && c <= 0x232A ||\n c >= 0x2E80 && c <= 0x2E99 ||\n c >= 0x2E9B && c <= 0x2EF3 ||\n c >= 0x2F00 && c <= 0x2FD5 ||\n c >= 0x2FF0 && c <= 0x2FFB ||\n c >= 0x3000 && c <= 0x303E ||\n c >= 0x3041 && c <= 0x3096 ||\n c >= 0x3099 && c <= 0x30FF ||\n c >= 0x3105 && c <= 0x312D ||\n c >= 0x3131 && c <= 0x318E ||\n c >= 0x3190 && c <= 0x31BA ||\n c >= 0x31C0 && c <= 0x31E3 ||\n c >= 0x31F0 && c <= 0x321E ||\n c >= 0x3220 && c <= 0x3247 ||\n c >= 0x3250 && c <= 0x32FE ||\n c >= 0x3300 && c <= 0x4DBF ||\n c >= 0x4E00 && c <= 0xA48C ||\n c >= 0xA490 && c <= 0xA4C6 ||\n c >= 0xA960 && c <= 0xA97C ||\n c >= 0xAC00 && c <= 0xD7A3 ||\n c >= 0xD7B0 && c <= 0xD7C6 ||\n c >= 0xD7CB && c <= 0xD7FB ||\n c >= 0xF900 && c <= 0xFAFF ||\n c >= 0xFE10 && c <= 0xFE19 ||\n c >= 0xFE30 && c <= 0xFE52 ||\n c >= 0xFE54 && c <= 0xFE66 ||\n c >= 0xFE68 && c <= 0xFE6B ||\n c >= 0xFF01 && c <= 0xFF60 ||\n c >= 0xFFE0 && c <= 0xFFE6;\n}\nrequire(\"./edit_session/folding\").Folding.call(EditSession.prototype);\nrequire(\"./edit_session/bracket_match\").BracketMatch.call(EditSession.prototype);\nconfig.defineOptions(EditSession.prototype, \"session\", {\n wrap: {\n set: function (value) {\n if (!value || value == \"off\")\n value = false;\n else if (value == \"free\")\n value = true;\n else if (value == \"printMargin\")\n value = -1;\n else if (typeof value == \"string\")\n value = parseInt(value, 10) || false;\n if (this.$wrap == value)\n return;\n this.$wrap = value;\n if (!value) {\n this.setUseWrapMode(false);\n }\n else {\n var col = typeof value == \"number\" ? value : null;\n this.setWrapLimitRange(col, col);\n this.setUseWrapMode(true);\n }\n },\n get: function () {\n if (this.getUseWrapMode()) {\n if (this.$wrap == -1)\n return \"printMargin\";\n if (!this.getWrapLimitRange().min)\n return \"free\";\n return this.$wrap;\n }\n return \"off\";\n },\n handlesSet: true\n },\n wrapMethod: {\n set: function (val) {\n val = val == \"auto\"\n ? this.$mode.type != \"text\"\n : val != \"text\";\n if (val != this.$wrapAsCode) {\n this.$wrapAsCode = val;\n if (this.$useWrapMode) {\n this.$useWrapMode = false;\n this.setUseWrapMode(true);\n }\n }\n },\n initialValue: \"auto\"\n },\n indentedSoftWrap: {\n set: function () {\n if (this.$useWrapMode) {\n this.$useWrapMode = false;\n this.setUseWrapMode(true);\n }\n },\n initialValue: true\n },\n firstLineNumber: {\n set: function () { this._signal(\"changeBreakpoint\"); },\n initialValue: 1\n },\n useWorker: {\n set: function (useWorker) {\n this.$useWorker = useWorker;\n this.$stopWorker();\n if (useWorker)\n this.$startWorker();\n },\n initialValue: true\n },\n useSoftTabs: { initialValue: true },\n tabSize: {\n set: function (tabSize) {\n tabSize = parseInt(tabSize);\n if (tabSize > 0 && this.$tabSize !== tabSize) {\n this.$modified = true;\n this.$rowLengthCache = [];\n this.$tabSize = tabSize;\n this._signal(\"changeTabSize\");\n }\n },\n initialValue: 4,\n handlesSet: true\n },\n navigateWithinSoftTabs: { initialValue: false },\n foldStyle: {\n set: function (val) { this.setFoldStyle(val); },\n handlesSet: true\n },\n overwrite: {\n set: function (val) { this._signal(\"changeOverwrite\"); },\n initialValue: false\n },\n newLineMode: {\n set: function (val) { this.doc.setNewLineMode(val); },\n get: function () { return this.doc.getNewLineMode(); },\n handlesSet: true\n },\n mode: {\n set: function (val) { this.setMode(val); },\n get: function () { return this.$modeId; },\n handlesSet: true\n }\n});\nexports.EditSession = EditSession;\n\n});\n\nace.define(\"ace/search\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"./lib/lang\");\nvar oop = require(\"./lib/oop\");\nvar Range = require(\"./range\").Range;\nvar Search = /** @class */ (function () {\n function Search() {\n this.$options = {};\n }\n Search.prototype.set = function (options) {\n oop.mixin(this.$options, options);\n return this;\n };\n Search.prototype.getOptions = function () {\n return lang.copyObject(this.$options);\n };\n Search.prototype.setOptions = function (options) {\n this.$options = options;\n };\n Search.prototype.find = function (session) {\n var options = this.$options;\n var iterator = this.$matchIterator(session, options);\n if (!iterator)\n return false;\n var firstRange = null;\n iterator.forEach(function (sr, sc, er, ec) {\n firstRange = new Range(sr, sc, er, ec);\n if (sc == ec && options.start && options.start.start\n && options.skipCurrent != false && firstRange.isEqual(options.start)) {\n firstRange = null;\n return false;\n }\n return true;\n });\n return firstRange;\n };\n Search.prototype.findAll = function (session) {\n var options = this.$options;\n if (!options.needle)\n return [];\n this.$assembleRegExp(options);\n var range = options.range;\n var lines = range\n ? session.getLines(range.start.row, range.end.row)\n : session.doc.getAllLines();\n var ranges = [];\n var re = options.re;\n if (options.$isMultiLine) {\n var len = re.length;\n var maxRow = lines.length - len;\n var prevRange;\n outer: for (var row = re.offset || 0; row <= maxRow; row++) {\n for (var j = 0; j < len; j++)\n if (lines[row + j].search(re[j]) == -1)\n continue outer;\n var startLine = lines[row];\n var line = lines[row + len - 1];\n var startIndex = startLine.length - startLine.match(re[0])[0].length;\n var endIndex = line.match(re[len - 1])[0].length;\n if (prevRange && prevRange.end.row === row &&\n prevRange.end.column > startIndex) {\n continue;\n }\n ranges.push(prevRange = new Range(row, startIndex, row + len - 1, endIndex));\n if (len > 2)\n row = row + len - 2;\n }\n }\n else {\n for (var i = 0; i < lines.length; i++) {\n var matches = lang.getMatchOffsets(lines[i], re);\n for (var j = 0; j < matches.length; j++) {\n var match = matches[j];\n ranges.push(new Range(i, match.offset, i, match.offset + match.length));\n }\n }\n }\n if (range) {\n var startColumn = range.start.column;\n var endColumn = range.end.column;\n var i = 0, j = ranges.length - 1;\n while (i < j && ranges[i].start.column < startColumn && ranges[i].start.row == 0)\n i++;\n var endRow = range.end.row - range.start.row;\n while (i < j && ranges[j].end.column > endColumn && ranges[j].end.row == endRow)\n j--;\n ranges = ranges.slice(i, j + 1);\n for (i = 0, j = ranges.length; i < j; i++) {\n ranges[i].start.row += range.start.row;\n ranges[i].end.row += range.start.row;\n }\n }\n return ranges;\n };\n Search.prototype.replace = function (input, replacement) {\n var options = this.$options;\n var re = this.$assembleRegExp(options);\n if (options.$isMultiLine)\n return replacement;\n if (!re)\n return;\n var match = re.exec(input);\n if (!match || match[0].length != input.length)\n return null;\n replacement = input.replace(re, replacement);\n if (options.preserveCase) {\n replacement = replacement.split(\"\");\n for (var i = Math.min(input.length, input.length); i--;) {\n var ch = input[i];\n if (ch && ch.toLowerCase() != ch)\n replacement[i] = replacement[i].toUpperCase();\n else\n replacement[i] = replacement[i].toLowerCase();\n }\n replacement = replacement.join(\"\");\n }\n return replacement;\n };\n Search.prototype.$assembleRegExp = function (options, $disableFakeMultiline) {\n if (options.needle instanceof RegExp)\n return options.re = options.needle;\n var needle = options.needle;\n if (!options.needle)\n return options.re = false;\n if (!options.regExp)\n needle = lang.escapeRegExp(needle);\n var modifier = options.caseSensitive ? \"gm\" : \"gmi\";\n try {\n new RegExp(needle, \"u\");\n options.$supportsUnicodeFlag = true;\n modifier += \"u\";\n }\n catch (e) {\n options.$supportsUnicodeFlag = false; //left for backward compatibility with previous versions for cases like /ab\\{2}/gu\n }\n if (options.wholeWord)\n needle = addWordBoundary(needle, options);\n options.$isMultiLine = !$disableFakeMultiline && /[\\n\\r]/.test(needle);\n if (options.$isMultiLine)\n return options.re = this.$assembleMultilineRegExp(needle, modifier);\n try {\n var re = new RegExp(needle, modifier);\n }\n catch (e) {\n re = false;\n }\n return options.re = re;\n };\n Search.prototype.$assembleMultilineRegExp = function (needle, modifier) {\n var parts = needle.replace(/\\r\\n|\\r|\\n/g, \"$\\n^\").split(\"\\n\");\n var re = [];\n for (var i = 0; i < parts.length; i++)\n try {\n re.push(new RegExp(parts[i], modifier));\n }\n catch (e) {\n return false;\n }\n return re;\n };\n Search.prototype.$matchIterator = function (session, options) {\n var re = this.$assembleRegExp(options);\n if (!re)\n return false;\n var backwards = options.backwards == true;\n var skipCurrent = options.skipCurrent != false;\n var supportsUnicodeFlag = re.unicode;\n var range = options.range;\n var start = options.start;\n if (!start)\n start = range ? range[backwards ? \"end\" : \"start\"] : session.selection.getRange();\n if (start.start)\n start = start[skipCurrent != backwards ? \"end\" : \"start\"];\n var firstRow = range ? range.start.row : 0;\n var lastRow = range ? range.end.row : session.getLength() - 1;\n if (backwards) {\n var forEach = function (callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row--; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = lastRow, firstRow = start.row; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n };\n }\n else {\n var forEach = function (callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row = row + 1; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = firstRow, lastRow = start.row; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n };\n }\n if (options.$isMultiLine) {\n var len = re.length;\n var forEachInLine = function (row, offset, callback) {\n var startRow = backwards ? row - len + 1 : row;\n if (startRow < 0 || startRow + len > session.getLength())\n return;\n var line = session.getLine(startRow);\n var startIndex = line.search(re[0]);\n if (!backwards && startIndex < offset || startIndex === -1)\n return;\n for (var i = 1; i < len; i++) {\n line = session.getLine(startRow + i);\n if (line.search(re[i]) == -1)\n return;\n }\n var endIndex = line.match(re[len - 1])[0].length;\n if (backwards && endIndex > offset)\n return;\n if (callback(startRow, startIndex, startRow + len - 1, endIndex))\n return true;\n };\n }\n else if (backwards) {\n var forEachInLine = function (row, endIndex, callback) {\n var line = session.getLine(row);\n var matches = [];\n var m, last = 0;\n re.lastIndex = 0;\n while ((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (!length) {\n if (last >= line.length)\n break;\n re.lastIndex = last += lang.skipEmptyMatch(line, last, supportsUnicodeFlag);\n }\n if (m.index + length > endIndex)\n break;\n matches.push(m.index, length);\n }\n for (var i = matches.length - 1; i >= 0; i -= 2) {\n var column = matches[i - 1];\n var length = matches[i];\n if (callback(row, column, row, column + length))\n return true;\n }\n };\n }\n else {\n var forEachInLine = function (row, startIndex, callback) {\n var line = session.getLine(row);\n var last;\n var m;\n re.lastIndex = startIndex;\n while ((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (callback(row, last, row, last + length))\n return true;\n if (!length) {\n re.lastIndex = last += lang.skipEmptyMatch(line, last, supportsUnicodeFlag);\n if (last >= line.length)\n return false;\n }\n }\n };\n }\n return { forEach: forEach };\n };\n return Search;\n}());\nfunction addWordBoundary(needle, options) {\n var supportsLookbehind = lang.supportsLookbehind();\n function wordBoundary(c, firstChar) {\n if (firstChar === void 0) { firstChar = true; }\n var wordRegExp = supportsLookbehind && options.$supportsUnicodeFlag ? new RegExp(\"[\\\\p{L}\\\\p{N}_]\", \"u\") : new RegExp(\"\\\\w\");\n if (wordRegExp.test(c) || options.regExp) {\n if (supportsLookbehind && options.$supportsUnicodeFlag) {\n if (firstChar)\n return \"(?<=^|[^\\\\p{L}\\\\p{N}_])\";\n return \"(?=[^\\\\p{L}\\\\p{N}_]|$)\";\n }\n return \"\\\\b\";\n }\n return \"\";\n }\n var needleArray = Array.from(needle);\n var firstChar = needleArray[0];\n var lastChar = needleArray[needleArray.length - 1];\n return wordBoundary(firstChar) + needle + wordBoundary(lastChar, false);\n}\nexports.Search = Search;\n\n});\n\nace.define(\"ace/keyboard/hash_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar keyUtil = require(\"../lib/keys\");\nvar useragent = require(\"../lib/useragent\");\nvar KEY_MODS = keyUtil.KEY_MODS;\nvar MultiHashHandler = /** @class */ (function () {\n function MultiHashHandler(config, platform) {\n this.$init(config, platform, false);\n }\n MultiHashHandler.prototype.$init = function (config, platform, $singleCommand) {\n this.platform = platform || (useragent.isMac ? \"mac\" : \"win\");\n this.commands = {};\n this.commandKeyBinding = {};\n this.addCommands(config);\n this.$singleCommand = $singleCommand;\n };\n MultiHashHandler.prototype.addCommand = function (command) {\n if (this.commands[command.name])\n this.removeCommand(command);\n this.commands[command.name] = command;\n if (command.bindKey)\n this._buildKeyHash(command);\n };\n MultiHashHandler.prototype.removeCommand = function (command, keepCommand) {\n var name = command && (typeof command === 'string' ? command : command.name);\n command = this.commands[name];\n if (!keepCommand)\n delete this.commands[name];\n var ckb = this.commandKeyBinding;\n for (var keyId in ckb) {\n var cmdGroup = ckb[keyId];\n if (cmdGroup == command) {\n delete ckb[keyId];\n }\n else if (Array.isArray(cmdGroup)) {\n var i = cmdGroup.indexOf(command);\n if (i != -1) {\n cmdGroup.splice(i, 1);\n if (cmdGroup.length == 1)\n ckb[keyId] = cmdGroup[0];\n }\n }\n }\n };\n MultiHashHandler.prototype.bindKey = function (key, command, position) {\n if (typeof key == \"object\" && key) {\n if (position == undefined)\n position = key.position;\n key = key[this.platform];\n }\n if (!key)\n return;\n if (typeof command == \"function\")\n return this.addCommand({ exec: command, bindKey: key, name: command.name || key });\n key.split(\"|\").forEach(function (keyPart) {\n var chain = \"\";\n if (keyPart.indexOf(\" \") != -1) {\n var parts = keyPart.split(/\\s+/);\n keyPart = parts.pop();\n parts.forEach(function (keyPart) {\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n chain += (chain ? \" \" : \"\") + id;\n this._addCommandToBinding(chain, \"chainKeys\");\n }, this);\n chain += \" \";\n }\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n this._addCommandToBinding(chain + id, command, position);\n }, this);\n };\n MultiHashHandler.prototype._addCommandToBinding = function (keyId, command, position) {\n var ckb = this.commandKeyBinding, i;\n if (!command) {\n delete ckb[keyId];\n }\n else if (!ckb[keyId] || this.$singleCommand) {\n ckb[keyId] = command;\n }\n else {\n if (!Array.isArray(ckb[keyId])) {\n ckb[keyId] = [ckb[keyId]];\n }\n else if ((i = ckb[keyId].indexOf(command)) != -1) {\n ckb[keyId].splice(i, 1);\n }\n if (typeof position != \"number\") {\n position = getPosition(command);\n }\n var commands = ckb[keyId];\n for (i = 0; i < commands.length; i++) {\n var other = commands[i];\n var otherPos = getPosition(other);\n if (otherPos > position)\n break;\n }\n commands.splice(i, 0, command);\n }\n };\n MultiHashHandler.prototype.addCommands = function (commands) {\n commands && Object.keys(commands).forEach(function (name) {\n var command = commands[name];\n if (!command)\n return;\n if (typeof command === \"string\")\n return this.bindKey(command, name);\n if (typeof command === \"function\")\n command = { exec: command };\n if (typeof command !== \"object\")\n return;\n if (!command.name)\n command.name = name;\n this.addCommand(command);\n }, this);\n };\n MultiHashHandler.prototype.removeCommands = function (commands) {\n Object.keys(commands).forEach(function (name) {\n this.removeCommand(commands[name]);\n }, this);\n };\n MultiHashHandler.prototype.bindKeys = function (keyList) {\n Object.keys(keyList).forEach(function (key) {\n this.bindKey(key, keyList[key]);\n }, this);\n };\n MultiHashHandler.prototype._buildKeyHash = function (command) {\n this.bindKey(command.bindKey, command);\n };\n MultiHashHandler.prototype.parseKeys = function (keys) {\n var parts = keys.toLowerCase().split(/[\\-\\+]([\\-\\+])?/).filter(function (x) { return x; });\n var key = parts.pop();\n var keyCode = keyUtil[key];\n if (keyUtil.FUNCTION_KEYS[keyCode])\n key = keyUtil.FUNCTION_KEYS[keyCode].toLowerCase();\n else if (!parts.length)\n return { key: key, hashId: -1 };\n else if (parts.length == 1 && parts[0] == \"shift\")\n return { key: key.toUpperCase(), hashId: -1 };\n var hashId = 0;\n for (var i = parts.length; i--;) {\n var modifier = keyUtil.KEY_MODS[parts[i]];\n if (modifier == null) {\n if (typeof console != \"undefined\")\n console.error(\"invalid modifier \" + parts[i] + \" in \" + keys);\n return false;\n }\n hashId |= modifier;\n }\n return { key: key, hashId: hashId };\n };\n MultiHashHandler.prototype.findKeyCommand = function (hashId, keyString) {\n var key = KEY_MODS[hashId] + keyString;\n return this.commandKeyBinding[key];\n };\n MultiHashHandler.prototype.handleKeyboard = function (data, hashId, keyString, keyCode) {\n if (keyCode < 0)\n return;\n var key = KEY_MODS[hashId] + keyString;\n var command = this.commandKeyBinding[key];\n if (data.$keyChain) {\n data.$keyChain += \" \" + key;\n command = this.commandKeyBinding[data.$keyChain] || command;\n }\n if (command) {\n if (command == \"chainKeys\" || command[command.length - 1] == \"chainKeys\") {\n data.$keyChain = data.$keyChain || key;\n return { command: \"null\" };\n }\n }\n if (data.$keyChain) {\n if ((!hashId || hashId == 4) && keyString.length == 1)\n data.$keyChain = data.$keyChain.slice(0, -key.length - 1); // wait for input\n else if (hashId == -1 || keyCode > 0)\n data.$keyChain = \"\"; // reset keyChain\n }\n return { command: command };\n };\n MultiHashHandler.prototype.getStatusText = function (editor, data) {\n return data.$keyChain || \"\";\n };\n return MultiHashHandler;\n}());\nfunction getPosition(command) {\n return typeof command == \"object\" && command.bindKey\n && command.bindKey.position\n || (command.isDefault ? -100 : 0);\n}\nvar HashHandler = /** @class */ (function (_super) {\n __extends(HashHandler, _super);\n function HashHandler(config, platform) {\n var _this = _super.call(this, config, platform) || this;\n _this.$singleCommand = true;\n return _this;\n }\n return HashHandler;\n}(MultiHashHandler));\nHashHandler.call = function (thisArg, config, platform) {\n MultiHashHandler.prototype.$init.call(thisArg, config, platform, true);\n};\nMultiHashHandler.call = function (thisArg, config, platform) {\n MultiHashHandler.prototype.$init.call(thisArg, config, platform, false);\n};\nexports.HashHandler = HashHandler;\nexports.MultiHashHandler = MultiHashHandler;\n\n});\n\nace.define(\"ace/commands/command_manager\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"../lib/oop\");\nvar MultiHashHandler = require(\"../keyboard/hash_handler\").MultiHashHandler;\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar CommandManager = /** @class */ (function (_super) {\n __extends(CommandManager, _super);\n function CommandManager(platform, commands) {\n var _this = _super.call(this, commands, platform) || this;\n _this.byName = _this.commands;\n _this.setDefaultHandler(\"exec\", function (e) {\n if (!e.args) {\n return e.command.exec(e.editor, {}, e.event, true);\n }\n return e.command.exec(e.editor, e.args, e.event, false);\n });\n return _this;\n }\n CommandManager.prototype.exec = function (command, editor, args) {\n if (Array.isArray(command)) {\n for (var i = command.length; i--;) {\n if (this.exec(command[i], editor, args))\n return true;\n }\n return false;\n }\n if (typeof command === \"string\")\n command = this.commands[command];\n if (!command)\n return false;\n if (editor && editor.$readOnly && !command.readOnly)\n return false;\n if (this.$checkCommandState != false && command.isAvailable && !command.isAvailable(editor))\n return false;\n var e = { editor: editor, command: command, args: args };\n e.returnValue = this._emit(\"exec\", e);\n this._signal(\"afterExec\", e);\n return e.returnValue === false ? false : true;\n };\n CommandManager.prototype.toggleRecording = function (editor) {\n if (this.$inReplay)\n return;\n editor && editor._emit(\"changeStatus\");\n if (this.recording) {\n this.macro.pop();\n this.off(\"exec\", this.$addCommandToMacro);\n if (!this.macro.length)\n this.macro = this.oldMacro;\n return this.recording = false;\n }\n if (!this.$addCommandToMacro) {\n this.$addCommandToMacro = function (e) {\n this.macro.push([e.command, e.args]);\n }.bind(this);\n }\n this.oldMacro = this.macro;\n this.macro = [];\n this.on(\"exec\", this.$addCommandToMacro);\n return this.recording = true;\n };\n CommandManager.prototype.replay = function (editor) {\n if (this.$inReplay || !this.macro)\n return;\n if (this.recording)\n return this.toggleRecording(editor);\n try {\n this.$inReplay = true;\n this.macro.forEach(function (x) {\n if (typeof x == \"string\")\n this.exec(x, editor);\n else\n this.exec(x[0], editor, x[1]);\n }, this);\n }\n finally {\n this.$inReplay = false;\n }\n };\n CommandManager.prototype.trimMacro = function (m) {\n return m.map(function (x) {\n if (typeof x[0] != \"string\")\n x[0] = x[0].name;\n if (!x[1])\n x = x[0];\n return x;\n });\n };\n return CommandManager;\n}(MultiHashHandler));\noop.implement(CommandManager.prototype, EventEmitter);\nexports.CommandManager = CommandManager;\n\n});\n\nace.define(\"ace/commands/default_commands\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/config\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"../lib/lang\");\nvar config = require(\"../config\");\nvar Range = require(\"../range\").Range;\nfunction bindKey(win, mac) {\n return { win: win, mac: mac };\n}\nexports.commands = [{\n name: \"showSettingsMenu\",\n description: \"Show settings menu\",\n bindKey: bindKey(\"Ctrl-,\", \"Command-,\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/settings_menu\", function (module) {\n module.init(editor);\n editor.showSettingsMenu();\n });\n },\n readOnly: true\n }, {\n name: \"goToNextError\",\n description: \"Go to next error\",\n bindKey: bindKey(\"Alt-E\", \"F4\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/error_marker\", function (module) {\n module.showErrorMarker(editor, 1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"goToPreviousError\",\n description: \"Go to previous error\",\n bindKey: bindKey(\"Alt-Shift-E\", \"Shift-F4\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/error_marker\", function (module) {\n module.showErrorMarker(editor, -1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"selectall\",\n description: \"Select all\",\n bindKey: bindKey(\"Ctrl-A\", \"Command-A\"),\n exec: function (editor) { editor.selectAll(); },\n readOnly: true\n }, {\n name: \"centerselection\",\n description: \"Center selection\",\n bindKey: bindKey(null, \"Ctrl-L\"),\n exec: function (editor) { editor.centerSelection(); },\n readOnly: true\n }, {\n name: \"gotoline\",\n description: \"Go to line...\",\n bindKey: bindKey(\"Ctrl-L\", \"Command-L\"),\n exec: function (editor, line) {\n if (typeof line === \"number\" && !isNaN(line))\n editor.gotoLine(line);\n editor.prompt({ $type: \"gotoLine\" });\n },\n readOnly: true\n }, {\n name: \"fold\",\n bindKey: bindKey(\"Alt-L|Ctrl-F1\", \"Command-Alt-L|Command-F1\"),\n exec: function (editor) { editor.session.toggleFold(false); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"unfold\",\n bindKey: bindKey(\"Alt-Shift-L|Ctrl-Shift-F1\", \"Command-Alt-Shift-L|Command-Shift-F1\"),\n exec: function (editor) { editor.session.toggleFold(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"toggleFoldWidget\",\n description: \"Toggle fold widget\",\n bindKey: bindKey(\"F2\", \"F2\"),\n exec: function (editor) { editor.session.toggleFoldWidget(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"toggleParentFoldWidget\",\n description: \"Toggle parent fold widget\",\n bindKey: bindKey(\"Alt-F2\", \"Alt-F2\"),\n exec: function (editor) { editor.session.toggleFoldWidget(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldall\",\n description: \"Fold all\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function (editor) { editor.session.foldAll(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldAllComments\",\n description: \"Fold all comments\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function (editor) { editor.session.foldAllComments(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldOther\",\n description: \"Fold other\",\n bindKey: bindKey(\"Alt-0\", \"Command-Option-0\"),\n exec: function (editor) {\n editor.session.foldAll();\n editor.session.unfold(editor.selection.getAllRanges());\n },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"unfoldall\",\n description: \"Unfold all\",\n bindKey: bindKey(\"Alt-Shift-0\", \"Command-Option-Shift-0\"),\n exec: function (editor) { editor.session.unfold(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"findnext\",\n description: \"Find next\",\n bindKey: bindKey(\"Ctrl-K\", \"Command-G\"),\n exec: function (editor) { editor.findNext(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"findprevious\",\n description: \"Find previous\",\n bindKey: bindKey(\"Ctrl-Shift-K\", \"Command-Shift-G\"),\n exec: function (editor) { editor.findPrevious(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"selectOrFindNext\",\n description: \"Select or find next\",\n bindKey: bindKey(\"Alt-K\", \"Ctrl-G\"),\n exec: function (editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findNext();\n },\n readOnly: true\n }, {\n name: \"selectOrFindPrevious\",\n description: \"Select or find previous\",\n bindKey: bindKey(\"Alt-Shift-K\", \"Ctrl-Shift-G\"),\n exec: function (editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findPrevious();\n },\n readOnly: true\n }, {\n name: \"find\",\n description: \"Find\",\n bindKey: bindKey(\"Ctrl-F\", \"Command-F\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/searchbox\", function (e) { e.Search(editor); });\n },\n readOnly: true\n }, {\n name: \"overwrite\",\n description: \"Overwrite\",\n bindKey: \"Insert\",\n exec: function (editor) { editor.toggleOverwrite(); },\n readOnly: true\n }, {\n name: \"selecttostart\",\n description: \"Select to start\",\n bindKey: bindKey(\"Ctrl-Shift-Home\", \"Command-Shift-Home|Command-Shift-Up\"),\n exec: function (editor) { editor.getSelection().selectFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"gotostart\",\n description: \"Go to start\",\n bindKey: bindKey(\"Ctrl-Home\", \"Command-Home|Command-Up\"),\n exec: function (editor) { editor.navigateFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"selectup\",\n description: \"Select up\",\n bindKey: bindKey(\"Shift-Up\", \"Shift-Up|Ctrl-Shift-P\"),\n exec: function (editor) { editor.getSelection().selectUp(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"golineup\",\n description: \"Go line up\",\n bindKey: bindKey(\"Up\", \"Up|Ctrl-P\"),\n exec: function (editor, args) { editor.navigateUp(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttoend\",\n description: \"Select to end\",\n bindKey: bindKey(\"Ctrl-Shift-End\", \"Command-Shift-End|Command-Shift-Down\"),\n exec: function (editor) { editor.getSelection().selectFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"gotoend\",\n description: \"Go to end\",\n bindKey: bindKey(\"Ctrl-End\", \"Command-End|Command-Down\"),\n exec: function (editor) { editor.navigateFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"selectdown\",\n description: \"Select down\",\n bindKey: bindKey(\"Shift-Down\", \"Shift-Down|Ctrl-Shift-N\"),\n exec: function (editor) { editor.getSelection().selectDown(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"golinedown\",\n description: \"Go line down\",\n bindKey: bindKey(\"Down\", \"Down|Ctrl-N\"),\n exec: function (editor, args) { editor.navigateDown(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectwordleft\",\n description: \"Select word left\",\n bindKey: bindKey(\"Ctrl-Shift-Left\", \"Option-Shift-Left\"),\n exec: function (editor) { editor.getSelection().selectWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotowordleft\",\n description: \"Go to word left\",\n bindKey: bindKey(\"Ctrl-Left\", \"Option-Left\"),\n exec: function (editor) { editor.navigateWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttolinestart\",\n description: \"Select to line start\",\n bindKey: bindKey(\"Alt-Shift-Left\", \"Command-Shift-Left|Ctrl-Shift-A\"),\n exec: function (editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotolinestart\",\n description: \"Go to line start\",\n bindKey: bindKey(\"Alt-Left|Home\", \"Command-Left|Home|Ctrl-A\"),\n exec: function (editor) { editor.navigateLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectleft\",\n description: \"Select left\",\n bindKey: bindKey(\"Shift-Left\", \"Shift-Left|Ctrl-Shift-B\"),\n exec: function (editor) { editor.getSelection().selectLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotoleft\",\n description: \"Go to left\",\n bindKey: bindKey(\"Left\", \"Left|Ctrl-B\"),\n exec: function (editor, args) { editor.navigateLeft(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectwordright\",\n description: \"Select word right\",\n bindKey: bindKey(\"Ctrl-Shift-Right\", \"Option-Shift-Right\"),\n exec: function (editor) { editor.getSelection().selectWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotowordright\",\n description: \"Go to word right\",\n bindKey: bindKey(\"Ctrl-Right\", \"Option-Right\"),\n exec: function (editor) { editor.navigateWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttolineend\",\n description: \"Select to line end\",\n bindKey: bindKey(\"Alt-Shift-Right\", \"Command-Shift-Right|Shift-End|Ctrl-Shift-E\"),\n exec: function (editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotolineend\",\n description: \"Go to line end\",\n bindKey: bindKey(\"Alt-Right|End\", \"Command-Right|End|Ctrl-E\"),\n exec: function (editor) { editor.navigateLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectright\",\n description: \"Select right\",\n bindKey: bindKey(\"Shift-Right\", \"Shift-Right\"),\n exec: function (editor) { editor.getSelection().selectRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotoright\",\n description: \"Go to right\",\n bindKey: bindKey(\"Right\", \"Right|Ctrl-F\"),\n exec: function (editor, args) { editor.navigateRight(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectpagedown\",\n description: \"Select page down\",\n bindKey: \"Shift-PageDown\",\n exec: function (editor) { editor.selectPageDown(); },\n readOnly: true\n }, {\n name: \"pagedown\",\n description: \"Page down\",\n bindKey: bindKey(null, \"Option-PageDown\"),\n exec: function (editor) { editor.scrollPageDown(); },\n readOnly: true\n }, {\n name: \"gotopagedown\",\n description: \"Go to page down\",\n bindKey: bindKey(\"PageDown\", \"PageDown|Ctrl-V\"),\n exec: function (editor) { editor.gotoPageDown(); },\n readOnly: true\n }, {\n name: \"selectpageup\",\n description: \"Select page up\",\n bindKey: \"Shift-PageUp\",\n exec: function (editor) { editor.selectPageUp(); },\n readOnly: true\n }, {\n name: \"pageup\",\n description: \"Page up\",\n bindKey: bindKey(null, \"Option-PageUp\"),\n exec: function (editor) { editor.scrollPageUp(); },\n readOnly: true\n }, {\n name: \"gotopageup\",\n description: \"Go to page up\",\n bindKey: \"PageUp\",\n exec: function (editor) { editor.gotoPageUp(); },\n readOnly: true\n }, {\n name: \"scrollup\",\n description: \"Scroll up\",\n bindKey: bindKey(\"Ctrl-Up\", null),\n exec: function (e) { e.renderer.scrollBy(0, -2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n }, {\n name: \"scrolldown\",\n description: \"Scroll down\",\n bindKey: bindKey(\"Ctrl-Down\", null),\n exec: function (e) { e.renderer.scrollBy(0, 2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n }, {\n name: \"selectlinestart\",\n description: \"Select line start\",\n bindKey: \"Shift-Home\",\n exec: function (editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectlineend\",\n description: \"Select line end\",\n bindKey: \"Shift-End\",\n exec: function (editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"togglerecording\",\n description: \"Toggle recording\",\n bindKey: bindKey(\"Ctrl-Alt-E\", \"Command-Option-E\"),\n exec: function (editor) { editor.commands.toggleRecording(editor); },\n readOnly: true\n }, {\n name: \"replaymacro\",\n description: \"Replay macro\",\n bindKey: bindKey(\"Ctrl-Shift-E\", \"Command-Shift-E\"),\n exec: function (editor) { editor.commands.replay(editor); },\n readOnly: true\n }, {\n name: \"jumptomatching\",\n description: \"Jump to matching\",\n bindKey: bindKey(\"Ctrl-\\\\|Ctrl-P\", \"Command-\\\\\"),\n exec: function (editor) { editor.jumpToMatching(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"selecttomatching\",\n description: \"Select to matching\",\n bindKey: bindKey(\"Ctrl-Shift-\\\\|Ctrl-Shift-P\", \"Command-Shift-\\\\\"),\n exec: function (editor) { editor.jumpToMatching(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"expandToMatching\",\n description: \"Expand to matching\",\n bindKey: bindKey(\"Ctrl-Shift-M\", \"Ctrl-Shift-M\"),\n exec: function (editor) { editor.jumpToMatching(true, true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"passKeysToBrowser\",\n description: \"Pass keys to browser\",\n bindKey: bindKey(null, null),\n exec: function () { },\n passEvent: true,\n readOnly: true\n }, {\n name: \"copy\",\n description: \"Copy\",\n exec: function (editor) {\n },\n readOnly: true\n },\n {\n name: \"cut\",\n description: \"Cut\",\n exec: function (editor) {\n var cutLine = editor.$copyWithEmptySelection && editor.selection.isEmpty();\n var range = cutLine ? editor.selection.getLineRange() : editor.selection.getRange();\n editor._emit(\"cut\", range);\n if (!range.isEmpty())\n editor.session.remove(range);\n editor.clearSelection();\n },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"paste\",\n description: \"Paste\",\n exec: function (editor, args) {\n editor.$handlePaste(args);\n },\n scrollIntoView: \"cursor\"\n }, {\n name: \"removeline\",\n description: \"Remove line\",\n bindKey: bindKey(\"Ctrl-D\", \"Command-D\"),\n exec: function (editor) { editor.removeLines(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEachLine\"\n }, {\n name: \"duplicateSelection\",\n description: \"Duplicate selection\",\n bindKey: bindKey(\"Ctrl-Shift-D\", \"Command-Shift-D\"),\n exec: function (editor) { editor.duplicateSelection(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"sortlines\",\n description: \"Sort lines\",\n bindKey: bindKey(\"Ctrl-Alt-S\", \"Command-Alt-S\"),\n exec: function (editor) { editor.sortLines(); },\n scrollIntoView: \"selection\",\n multiSelectAction: \"forEachLine\"\n }, {\n name: \"togglecomment\",\n description: \"Toggle comment\",\n bindKey: bindKey(\"Ctrl-/\", \"Command-/\"),\n exec: function (editor) { editor.toggleCommentLines(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"toggleBlockComment\",\n description: \"Toggle block comment\",\n bindKey: bindKey(\"Ctrl-Shift-/\", \"Command-Shift-/\"),\n exec: function (editor) { editor.toggleBlockComment(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"modifyNumberUp\",\n description: \"Modify number up\",\n bindKey: bindKey(\"Ctrl-Shift-Up\", \"Alt-Shift-Up\"),\n exec: function (editor) { editor.modifyNumber(1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"modifyNumberDown\",\n description: \"Modify number down\",\n bindKey: bindKey(\"Ctrl-Shift-Down\", \"Alt-Shift-Down\"),\n exec: function (editor) { editor.modifyNumber(-1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"replace\",\n description: \"Replace\",\n bindKey: bindKey(\"Ctrl-H\", \"Command-Option-F\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/searchbox\", function (e) { e.Search(editor, true); });\n }\n }, {\n name: \"undo\",\n description: \"Undo\",\n bindKey: bindKey(\"Ctrl-Z\", \"Command-Z\"),\n exec: function (editor) { editor.undo(); }\n }, {\n name: \"redo\",\n description: \"Redo\",\n bindKey: bindKey(\"Ctrl-Shift-Z|Ctrl-Y\", \"Command-Shift-Z|Command-Y\"),\n exec: function (editor) { editor.redo(); }\n }, {\n name: \"copylinesup\",\n description: \"Copy lines up\",\n bindKey: bindKey(\"Alt-Shift-Up\", \"Command-Option-Up\"),\n exec: function (editor) { editor.copyLinesUp(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"movelinesup\",\n description: \"Move lines up\",\n bindKey: bindKey(\"Alt-Up\", \"Option-Up\"),\n exec: function (editor) { editor.moveLinesUp(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"copylinesdown\",\n description: \"Copy lines down\",\n bindKey: bindKey(\"Alt-Shift-Down\", \"Command-Option-Down\"),\n exec: function (editor) { editor.copyLinesDown(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"movelinesdown\",\n description: \"Move lines down\",\n bindKey: bindKey(\"Alt-Down\", \"Option-Down\"),\n exec: function (editor) { editor.moveLinesDown(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"del\",\n description: \"Delete\",\n bindKey: bindKey(\"Delete\", \"Delete|Ctrl-D|Shift-Delete\"),\n exec: function (editor) { editor.remove(\"right\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"backspace\",\n description: \"Backspace\",\n bindKey: bindKey(\"Shift-Backspace|Backspace\", \"Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H\"),\n exec: function (editor) { editor.remove(\"left\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"cut_or_delete\",\n description: \"Cut or delete\",\n bindKey: bindKey(\"Shift-Delete\", null),\n exec: function (editor) {\n if (editor.selection.isEmpty()) {\n editor.remove(\"left\");\n }\n else {\n return false;\n }\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolinestart\",\n description: \"Remove to line start\",\n bindKey: bindKey(\"Alt-Backspace\", \"Command-Backspace\"),\n exec: function (editor) { editor.removeToLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolineend\",\n description: \"Remove to line end\",\n bindKey: bindKey(\"Alt-Delete\", \"Ctrl-K|Command-Delete\"),\n exec: function (editor) { editor.removeToLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolinestarthard\",\n description: \"Remove to line start hard\",\n bindKey: bindKey(\"Ctrl-Shift-Backspace\", null),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.start.column = 0;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolineendhard\",\n description: \"Remove to line end hard\",\n bindKey: bindKey(\"Ctrl-Shift-Delete\", null),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.end.column = Number.MAX_VALUE;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removewordleft\",\n description: \"Remove word left\",\n bindKey: bindKey(\"Ctrl-Backspace\", \"Alt-Backspace|Ctrl-Alt-Backspace\"),\n exec: function (editor) { editor.removeWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removewordright\",\n description: \"Remove word right\",\n bindKey: bindKey(\"Ctrl-Delete\", \"Alt-Delete\"),\n exec: function (editor) { editor.removeWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"outdent\",\n description: \"Outdent\",\n bindKey: bindKey(\"Shift-Tab\", \"Shift-Tab\"),\n exec: function (editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"indent\",\n description: \"Indent\",\n bindKey: bindKey(\"Tab\", \"Tab\"),\n exec: function (editor) { editor.indent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"blockoutdent\",\n description: \"Block outdent\",\n bindKey: bindKey(\"Ctrl-[\", \"Ctrl-[\"),\n exec: function (editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"blockindent\",\n description: \"Block indent\",\n bindKey: bindKey(\"Ctrl-]\", \"Ctrl-]\"),\n exec: function (editor) { editor.blockIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"insertstring\",\n description: \"Insert string\",\n exec: function (editor, str) { editor.insert(str); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"inserttext\",\n description: \"Insert text\",\n exec: function (editor, args) {\n editor.insert(lang.stringRepeat(args.text || \"\", args.times || 1));\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"splitline\",\n description: \"Split line\",\n bindKey: bindKey(null, \"Ctrl-O\"),\n exec: function (editor) { editor.splitLine(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"transposeletters\",\n description: \"Transpose letters\",\n bindKey: bindKey(\"Alt-Shift-X\", \"Ctrl-T\"),\n exec: function (editor) { editor.transposeLetters(); },\n multiSelectAction: function (editor) { editor.transposeSelections(1); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"touppercase\",\n description: \"To uppercase\",\n bindKey: bindKey(\"Ctrl-U\", \"Ctrl-U\"),\n exec: function (editor) { editor.toUpperCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"tolowercase\",\n description: \"To lowercase\",\n bindKey: bindKey(\"Ctrl-Shift-U\", \"Ctrl-Shift-U\"),\n exec: function (editor) { editor.toLowerCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"autoindent\",\n description: \"Auto Indent\",\n bindKey: bindKey(null, null),\n exec: function (editor) { editor.autoIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"animate\"\n }, {\n name: \"expandtoline\",\n description: \"Expand to line\",\n bindKey: bindKey(\"Ctrl-Shift-L\", \"Command-Shift-L\"),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.start.column = range.end.column = 0;\n range.end.row++;\n editor.selection.setRange(range, false);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"openlink\",\n bindKey: bindKey(\"Ctrl+F3\", \"F3\"),\n exec: function (editor) { editor.openLink(); }\n }, {\n name: \"joinlines\",\n description: \"Join lines\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n var isBackwards = editor.selection.isBackwards();\n var selectionStart = isBackwards ? editor.selection.getSelectionLead() : editor.selection.getSelectionAnchor();\n var selectionEnd = isBackwards ? editor.selection.getSelectionAnchor() : editor.selection.getSelectionLead();\n var firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length;\n var selectedText = editor.session.doc.getTextRange(editor.selection.getRange());\n var selectedCount = selectedText.replace(/\\n\\s*/, \" \").length;\n var insertLine = editor.session.doc.getLine(selectionStart.row);\n for (var i = selectionStart.row + 1; i <= selectionEnd.row + 1; i++) {\n var curLine = lang.stringTrimLeft(lang.stringTrimRight(editor.session.doc.getLine(i)));\n if (curLine.length !== 0) {\n curLine = \" \" + curLine;\n }\n insertLine += curLine;\n }\n if (selectionEnd.row + 1 < (editor.session.doc.getLength() - 1)) {\n insertLine += editor.session.doc.getNewLineCharacter();\n }\n editor.clearSelection();\n editor.session.doc.replace(new Range(selectionStart.row, 0, selectionEnd.row + 2, 0), insertLine);\n if (selectedCount > 0) {\n editor.selection.moveCursorTo(selectionStart.row, selectionStart.column);\n editor.selection.selectTo(selectionStart.row, selectionStart.column + selectedCount);\n }\n else {\n firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length > firstLineEndCol ? (firstLineEndCol + 1) : firstLineEndCol;\n editor.selection.moveCursorTo(selectionStart.row, firstLineEndCol);\n }\n },\n multiSelectAction: \"forEach\",\n readOnly: true\n }, {\n name: \"invertSelection\",\n description: \"Invert selection\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n var endRow = editor.session.doc.getLength() - 1;\n var endCol = editor.session.doc.getLine(endRow).length;\n var ranges = editor.selection.rangeList.ranges;\n var newRanges = [];\n if (ranges.length < 1) {\n ranges = [editor.selection.getRange()];\n }\n for (var i = 0; i < ranges.length; i++) {\n if (i == (ranges.length - 1)) {\n if (!(ranges[i].end.row === endRow && ranges[i].end.column === endCol)) {\n newRanges.push(new Range(ranges[i].end.row, ranges[i].end.column, endRow, endCol));\n }\n }\n if (i === 0) {\n if (!(ranges[i].start.row === 0 && ranges[i].start.column === 0)) {\n newRanges.push(new Range(0, 0, ranges[i].start.row, ranges[i].start.column));\n }\n }\n else {\n newRanges.push(new Range(ranges[i - 1].end.row, ranges[i - 1].end.column, ranges[i].start.row, ranges[i].start.column));\n }\n }\n editor.exitMultiSelectMode();\n editor.clearSelection();\n for (var i = 0; i < newRanges.length; i++) {\n editor.selection.addRange(newRanges[i], false);\n }\n },\n readOnly: true,\n scrollIntoView: \"none\"\n }, {\n name: \"addLineAfter\",\n description: \"Add new line after the current line\",\n exec: function (editor) {\n editor.selection.clearSelection();\n editor.navigateLineEnd();\n editor.insert(\"\\n\");\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"addLineBefore\",\n description: \"Add new line before the current line\",\n exec: function (editor) {\n editor.selection.clearSelection();\n var cursor = editor.getCursorPosition();\n editor.selection.moveTo(cursor.row - 1, Number.MAX_VALUE);\n editor.insert(\"\\n\");\n if (cursor.row === 0)\n editor.navigateUp();\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"openCommandPallete\",\n exec: function (editor) {\n console.warn(\"This is an obsolete command. Please use `openCommandPalette` instead.\");\n editor.prompt({ $type: \"commands\" });\n },\n readOnly: true\n }, {\n name: \"openCommandPalette\",\n description: \"Open command palette\",\n bindKey: bindKey(\"F1\", \"F1\"),\n exec: function (editor) {\n editor.prompt({ $type: \"commands\" });\n },\n readOnly: true\n }, {\n name: \"modeSelect\",\n description: \"Change language mode...\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n editor.prompt({ $type: \"modes\" });\n },\n readOnly: true\n }];\nfor (var i = 1; i < 9; i++) {\n exports.commands.push({\n name: \"foldToLevel\" + i,\n description: \"Fold To Level \" + i,\n level: i,\n exec: function (editor) { editor.session.foldToLevel(this.level); },\n scrollIntoView: \"center\",\n readOnly: true\n });\n}\n\n});\n\nace.define(\"ace/line_widgets\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"./lib/dom\");\nvar LineWidgets = /** @class */ (function () {\n function LineWidgets(session) {\n this.session = session;\n this.session.widgetManager = this;\n this.session.getRowLength = this.getRowLength;\n this.session.$getWidgetScreenLength = this.$getWidgetScreenLength;\n this.updateOnChange = this.updateOnChange.bind(this);\n this.renderWidgets = this.renderWidgets.bind(this);\n this.measureWidgets = this.measureWidgets.bind(this);\n this.session._changedWidgets = [];\n this.$onChangeEditor = this.$onChangeEditor.bind(this);\n this.session.on(\"change\", this.updateOnChange);\n this.session.on(\"changeFold\", this.updateOnFold);\n this.session.on(\"changeEditor\", this.$onChangeEditor);\n }\n LineWidgets.prototype.getRowLength = function (row) {\n var h;\n if (this.lineWidgets)\n h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n else\n h = 0;\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1 + h;\n }\n else {\n return this.$wrapData[row].length + 1 + h;\n }\n };\n LineWidgets.prototype.$getWidgetScreenLength = function () {\n var screenRows = 0;\n this.lineWidgets.forEach(function (w) {\n if (w && w.rowCount && !w.hidden)\n screenRows += w.rowCount;\n });\n return screenRows;\n };\n LineWidgets.prototype.$onChangeEditor = function (e) {\n this.attach(e.editor);\n };\n LineWidgets.prototype.attach = function (editor) {\n if (editor && editor.widgetManager && editor.widgetManager != this)\n editor.widgetManager.detach();\n if (this.editor == editor)\n return;\n this.detach();\n this.editor = editor;\n if (editor) {\n editor.widgetManager = this;\n editor.renderer.on(\"beforeRender\", this.measureWidgets);\n editor.renderer.on(\"afterRender\", this.renderWidgets);\n }\n };\n LineWidgets.prototype.detach = function (e) {\n var editor = this.editor;\n if (!editor)\n return;\n this.editor = null;\n editor.widgetManager = null;\n editor.renderer.off(\"beforeRender\", this.measureWidgets);\n editor.renderer.off(\"afterRender\", this.renderWidgets);\n var lineWidgets = this.session.lineWidgets;\n lineWidgets && lineWidgets.forEach(function (w) {\n if (w && w.el && w.el.parentNode) {\n w._inDocument = false;\n w.el.parentNode.removeChild(w.el);\n }\n });\n };\n LineWidgets.prototype.updateOnFold = function (e, session) {\n var lineWidgets = session.lineWidgets;\n if (!lineWidgets || !e.action)\n return;\n var fold = e.data;\n var start = fold.start.row;\n var end = fold.end.row;\n var hide = e.action == \"add\";\n for (var i = start + 1; i < end; i++) {\n if (lineWidgets[i])\n lineWidgets[i].hidden = hide;\n }\n if (lineWidgets[end]) {\n if (hide) {\n if (!lineWidgets[start])\n lineWidgets[start] = lineWidgets[end];\n else\n lineWidgets[end].hidden = hide;\n }\n else {\n if (lineWidgets[start] == lineWidgets[end])\n lineWidgets[start] = undefined;\n lineWidgets[end].hidden = hide;\n }\n }\n };\n LineWidgets.prototype.updateOnChange = function (delta) {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n if (len === 0) {\n }\n else if (delta.action == \"remove\") {\n var removed = lineWidgets.splice(startRow + 1, len);\n if (!lineWidgets[startRow] && removed[removed.length - 1]) {\n lineWidgets[startRow] = removed.pop();\n }\n removed.forEach(function (w) {\n w && this.removeLineWidget(w);\n }, this);\n this.$updateRows();\n }\n else {\n var args = new Array(len);\n if (lineWidgets[startRow] && lineWidgets[startRow].column != null) {\n if (delta.start.column > lineWidgets[startRow].column)\n startRow++;\n }\n args.unshift(startRow, 0);\n lineWidgets.splice.apply(lineWidgets, args);\n this.$updateRows();\n }\n };\n LineWidgets.prototype.$updateRows = function () {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var noWidgets = true;\n lineWidgets.forEach(function (w, i) {\n if (w) {\n noWidgets = false;\n w.row = i;\n while (w.$oldWidget) {\n w.$oldWidget.row = i;\n w = w.$oldWidget;\n }\n }\n });\n if (noWidgets)\n this.session.lineWidgets = null;\n };\n LineWidgets.prototype.$registerLineWidget = function (w) {\n if (!this.session.lineWidgets)\n this.session.lineWidgets = new Array(this.session.getLength());\n var old = this.session.lineWidgets[w.row];\n if (old) {\n w.$oldWidget = old;\n if (old.el && old.el.parentNode) {\n old.el.parentNode.removeChild(old.el);\n old._inDocument = false;\n }\n }\n this.session.lineWidgets[w.row] = w;\n return w;\n };\n LineWidgets.prototype.addLineWidget = function (w) {\n this.$registerLineWidget(w);\n w.session = this.session;\n if (!this.editor)\n return w;\n var renderer = this.editor.renderer;\n if (w.html && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.innerHTML = w.html;\n }\n if (w.text && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.textContent = w.text;\n }\n if (w.el) {\n dom.addCssClass(w.el, \"ace_lineWidgetContainer\");\n if (w.className) {\n dom.addCssClass(w.el, w.className);\n }\n w.el.style.position = \"absolute\";\n w.el.style.zIndex = 5;\n renderer.container.appendChild(w.el);\n w._inDocument = true;\n if (!w.coverGutter) {\n w.el.style.zIndex = 3;\n }\n if (w.pixelHeight == null) {\n w.pixelHeight = w.el.offsetHeight;\n }\n }\n if (w.rowCount == null) {\n w.rowCount = w.pixelHeight / renderer.layerConfig.lineHeight;\n }\n var fold = this.session.getFoldAt(w.row, 0);\n w.$fold = fold;\n if (fold) {\n var lineWidgets = this.session.lineWidgets;\n if (w.row == fold.end.row && !lineWidgets[fold.start.row])\n lineWidgets[fold.start.row] = w;\n else\n w.hidden = true;\n }\n this.session._emit(\"changeFold\", { data: { start: { row: w.row } } });\n this.$updateRows();\n this.renderWidgets(null, renderer);\n this.onWidgetChanged(w);\n return w;\n };\n LineWidgets.prototype.removeLineWidget = function (w) {\n w._inDocument = false;\n w.session = null;\n if (w.el && w.el.parentNode)\n w.el.parentNode.removeChild(w.el);\n if (w.editor && w.editor.destroy)\n try {\n w.editor.destroy();\n }\n catch (e) { }\n if (this.session.lineWidgets) {\n var w1 = this.session.lineWidgets[w.row];\n if (w1 == w) {\n this.session.lineWidgets[w.row] = w.$oldWidget;\n if (w.$oldWidget)\n this.onWidgetChanged(w.$oldWidget);\n }\n else {\n while (w1) {\n if (w1.$oldWidget == w) {\n w1.$oldWidget = w.$oldWidget;\n break;\n }\n w1 = w1.$oldWidget;\n }\n }\n }\n this.session._emit(\"changeFold\", { data: { start: { row: w.row } } });\n this.$updateRows();\n };\n LineWidgets.prototype.getWidgetsAtRow = function (row) {\n var lineWidgets = this.session.lineWidgets;\n var w = lineWidgets && lineWidgets[row];\n var list = [];\n while (w) {\n list.push(w);\n w = w.$oldWidget;\n }\n return list;\n };\n LineWidgets.prototype.onWidgetChanged = function (w) {\n this.session._changedWidgets.push(w);\n this.editor && this.editor.renderer.updateFull();\n };\n LineWidgets.prototype.measureWidgets = function (e, renderer) {\n var changedWidgets = this.session._changedWidgets;\n var config = renderer.layerConfig;\n if (!changedWidgets || !changedWidgets.length)\n return;\n var min = Infinity;\n for (var i = 0; i < changedWidgets.length; i++) {\n var w = changedWidgets[i];\n if (!w || !w.el)\n continue;\n if (w.session != this.session)\n continue;\n if (!w._inDocument) {\n if (this.session.lineWidgets[w.row] != w)\n continue;\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n w.h = w.el.offsetHeight;\n if (!w.fixedWidth) {\n w.w = w.el.offsetWidth;\n w.screenWidth = Math.ceil(w.w / config.characterWidth);\n }\n var rowCount = w.h / config.lineHeight;\n if (w.coverLine) {\n rowCount -= this.session.getRowLineCount(w.row);\n if (rowCount < 0)\n rowCount = 0;\n }\n if (w.rowCount != rowCount) {\n w.rowCount = rowCount;\n if (w.row < min)\n min = w.row;\n }\n }\n if (min != Infinity) {\n this.session._emit(\"changeFold\", { data: { start: { row: min } } });\n this.session.lineWidgetWidth = null;\n }\n this.session._changedWidgets = [];\n };\n LineWidgets.prototype.renderWidgets = function (e, renderer) {\n var config = renderer.layerConfig;\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var first = Math.min(this.firstRow, config.firstRow);\n var last = Math.max(this.lastRow, config.lastRow, lineWidgets.length);\n while (first > 0 && !lineWidgets[first])\n first--;\n this.firstRow = config.firstRow;\n this.lastRow = config.lastRow;\n renderer.$cursorLayer.config = config;\n for (var i = first; i <= last; i++) {\n var w = lineWidgets[i];\n if (!w || !w.el)\n continue;\n if (w.hidden) {\n w.el.style.top = -100 - (w.pixelHeight || 0) + \"px\";\n continue;\n }\n if (!w._inDocument) {\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n var top = renderer.$cursorLayer.getPixelPosition({ row: i, column: 0 }, true).top;\n if (!w.coverLine)\n top += config.lineHeight * this.session.getRowLineCount(w.row);\n w.el.style.top = top - config.offset + \"px\";\n var left = w.coverGutter ? 0 : renderer.gutterWidth;\n if (!w.fixedWidth)\n left -= renderer.scrollLeft;\n w.el.style.left = left + \"px\";\n if (w.fullWidth && w.screenWidth) {\n w.el.style.minWidth = config.width + 2 * config.padding + \"px\";\n }\n if (w.fixedWidth) {\n w.el.style.right = renderer.scrollBar.getWidth() + \"px\";\n }\n else {\n w.el.style.right = \"\";\n }\n }\n };\n return LineWidgets;\n}());\nexports.LineWidgets = LineWidgets;\n\n});\n\nace.define(\"ace/keyboard/gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/mouse/default_gutter_handler\"], function(require, exports, module){\"use strict\";\nvar keys = require('../lib/keys');\nvar GutterTooltip = require(\"../mouse/default_gutter_handler\").GutterTooltip;\nvar GutterKeyboardHandler = /** @class */ (function () {\n function GutterKeyboardHandler(editor) {\n this.editor = editor;\n this.gutterLayer = editor.renderer.$gutterLayer;\n this.element = editor.renderer.$gutter;\n this.lines = editor.renderer.$gutterLayer.$lines;\n this.activeRowIndex = null;\n this.activeLane = null;\n this.annotationTooltip = new GutterTooltip(this.editor);\n }\n GutterKeyboardHandler.prototype.addListener = function () {\n this.element.addEventListener(\"keydown\", this.$onGutterKeyDown.bind(this));\n this.element.addEventListener(\"focusout\", this.$blurGutter.bind(this));\n this.editor.on(\"mousewheel\", this.$blurGutter.bind(this));\n };\n GutterKeyboardHandler.prototype.removeListener = function () {\n this.element.removeEventListener(\"keydown\", this.$onGutterKeyDown.bind(this));\n this.element.removeEventListener(\"focusout\", this.$blurGutter.bind(this));\n this.editor.off(\"mousewheel\", this.$blurGutter.bind(this));\n };\n GutterKeyboardHandler.prototype.$onGutterKeyDown = function (e) {\n if (this.annotationTooltip.isOpen) {\n e.preventDefault();\n if (e.keyCode === keys[\"escape\"])\n this.annotationTooltip.hideTooltip();\n return;\n }\n if (e.target === this.element) {\n if (e.keyCode != keys[\"enter\"]) {\n return;\n }\n e.preventDefault();\n var row = this.editor.getCursorPosition().row;\n if (!this.editor.isRowVisible(row))\n this.editor.scrollToLine(row, true, true);\n setTimeout(function () {\n var index = this.$rowToRowIndex(this.gutterLayer.$cursorCell.row);\n var nearestFoldIndex = this.$findNearestFoldWidget(index);\n var nearestAnnotationIndex = this.$findNearestAnnotation(index);\n if (nearestFoldIndex === null && nearestAnnotationIndex === null)\n return;\n if (nearestFoldIndex === null && nearestAnnotationIndex !== null) {\n this.activeRowIndex = nearestAnnotationIndex;\n this.activeLane = \"annotation\";\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n if (nearestFoldIndex !== null && nearestAnnotationIndex === null) {\n this.activeRowIndex = nearestFoldIndex;\n this.activeLane = \"fold\";\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n if (Math.abs(nearestAnnotationIndex - index) < Math.abs(nearestFoldIndex - index)) {\n this.activeRowIndex = nearestAnnotationIndex;\n this.activeLane = \"annotation\";\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n else {\n this.activeRowIndex = nearestFoldIndex;\n this.activeLane = \"fold\";\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }.bind(this), 10);\n return;\n }\n this.$handleGutterKeyboardInteraction(e);\n setTimeout(function () {\n this.editor._signal(\"gutterkeydown\", new GutterKeyboardEvent(e, this));\n }.bind(this), 10);\n };\n GutterKeyboardHandler.prototype.$handleGutterKeyboardInteraction = function (e) {\n if (e.keyCode === keys[\"tab\"]) {\n e.preventDefault();\n return;\n }\n if (e.keyCode === keys[\"escape\"]) {\n e.preventDefault();\n this.$blurGutter();\n this.element.focus();\n this.lane = null;\n return;\n }\n if (e.keyCode === keys[\"up\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n this.$moveFoldWidgetUp();\n break;\n case \"annotation\":\n this.$moveAnnotationUp();\n break;\n }\n return;\n }\n if (e.keyCode === keys[\"down\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n this.$moveFoldWidgetDown();\n break;\n case \"annotation\":\n this.$moveAnnotationDown();\n break;\n }\n return;\n }\n if (e.keyCode === keys[\"left\"]) {\n e.preventDefault();\n this.$switchLane(\"annotation\");\n return;\n }\n if (e.keyCode === keys[\"right\"]) {\n e.preventDefault();\n this.$switchLane(\"fold\");\n return;\n }\n if (e.keyCode === keys[\"enter\"] || e.keyCode === keys[\"space\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n if (this.gutterLayer.session.foldWidgets[this.$rowIndexToRow(this.activeRowIndex)] === 'start') {\n var rowFoldingWidget = this.$rowIndexToRow(this.activeRowIndex);\n this.editor.session.onFoldWidgetClick(this.$rowIndexToRow(this.activeRowIndex), e);\n setTimeout(function () {\n if (this.$rowIndexToRow(this.activeRowIndex) !== rowFoldingWidget) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = this.$rowToRowIndex(rowFoldingWidget);\n this.$focusFoldWidget(this.activeRowIndex);\n }\n }.bind(this), 10);\n break;\n }\n else if (this.gutterLayer.session.foldWidgets[this.$rowIndexToRow(this.activeRowIndex)] === 'end') {\n break;\n }\n return;\n case \"annotation\":\n var gutterElement = this.lines.cells[this.activeRowIndex].element.childNodes[2];\n var rect = gutterElement.getBoundingClientRect();\n var style = this.annotationTooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n this.annotationTooltip.showTooltip(this.$rowIndexToRow(this.activeRowIndex));\n break;\n }\n return;\n }\n };\n GutterKeyboardHandler.prototype.$blurGutter = function () {\n if (this.activeRowIndex !== null) {\n switch (this.activeLane) {\n case \"fold\":\n this.$blurFoldWidget(this.activeRowIndex);\n break;\n case \"annotation\":\n this.$blurAnnotation(this.activeRowIndex);\n break;\n }\n }\n if (this.annotationTooltip.isOpen)\n this.annotationTooltip.hideTooltip();\n return;\n };\n GutterKeyboardHandler.prototype.$isFoldWidgetVisible = function (index) {\n var isRowFullyVisible = this.editor.isRowFullyVisible(this.$rowIndexToRow(index));\n var isIconVisible = this.$getFoldWidget(index).style.display !== \"none\";\n return isRowFullyVisible && isIconVisible;\n };\n GutterKeyboardHandler.prototype.$isAnnotationVisible = function (index) {\n var isRowFullyVisible = this.editor.isRowFullyVisible(this.$rowIndexToRow(index));\n var isIconVisible = this.$getAnnotation(index).style.display !== \"none\";\n return isRowFullyVisible && isIconVisible;\n };\n GutterKeyboardHandler.prototype.$getFoldWidget = function (index) {\n var cell = this.lines.get(index);\n var element = cell.element;\n return element.childNodes[1];\n };\n GutterKeyboardHandler.prototype.$getAnnotation = function (index) {\n var cell = this.lines.get(index);\n var element = cell.element;\n return element.childNodes[2];\n };\n GutterKeyboardHandler.prototype.$findNearestFoldWidget = function (index) {\n if (this.$isFoldWidgetVisible(index))\n return index;\n var i = 0;\n while (index - i > 0 || index + i < this.lines.getLength() - 1) {\n i++;\n if (index - i >= 0 && this.$isFoldWidgetVisible(index - i))\n return index - i;\n if (index + i <= this.lines.getLength() - 1 && this.$isFoldWidgetVisible(index + i))\n return index + i;\n }\n return null;\n };\n GutterKeyboardHandler.prototype.$findNearestAnnotation = function (index) {\n if (this.$isAnnotationVisible(index))\n return index;\n var i = 0;\n while (index - i > 0 || index + i < this.lines.getLength() - 1) {\n i++;\n if (index - i >= 0 && this.$isAnnotationVisible(index - i))\n return index - i;\n if (index + i <= this.lines.getLength() - 1 && this.$isAnnotationVisible(index + i))\n return index + i;\n }\n return null;\n };\n GutterKeyboardHandler.prototype.$focusFoldWidget = function (index) {\n if (index == null)\n return;\n var foldWidget = this.$getFoldWidget(index);\n foldWidget.classList.add(this.editor.renderer.keyboardFocusClassName);\n foldWidget.focus();\n };\n GutterKeyboardHandler.prototype.$focusAnnotation = function (index) {\n if (index == null)\n return;\n var annotation = this.$getAnnotation(index);\n annotation.classList.add(this.editor.renderer.keyboardFocusClassName);\n annotation.focus();\n };\n GutterKeyboardHandler.prototype.$blurFoldWidget = function (index) {\n var foldWidget = this.$getFoldWidget(index);\n foldWidget.classList.remove(this.editor.renderer.keyboardFocusClassName);\n foldWidget.blur();\n };\n GutterKeyboardHandler.prototype.$blurAnnotation = function (index) {\n var annotation = this.$getAnnotation(index);\n annotation.classList.remove(this.editor.renderer.keyboardFocusClassName);\n annotation.blur();\n };\n GutterKeyboardHandler.prototype.$moveFoldWidgetUp = function () {\n var index = this.activeRowIndex;\n while (index > 0) {\n index--;\n if (this.$isFoldWidgetVisible(index)) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveFoldWidgetDown = function () {\n var index = this.activeRowIndex;\n while (index < this.lines.getLength() - 1) {\n index++;\n if (this.$isFoldWidgetVisible(index)) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveAnnotationUp = function () {\n var index = this.activeRowIndex;\n while (index > 0) {\n index--;\n if (this.$isAnnotationVisible(index)) {\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveAnnotationDown = function () {\n var index = this.activeRowIndex;\n while (index < this.lines.getLength() - 1) {\n index++;\n if (this.$isAnnotationVisible(index)) {\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$switchLane = function (desinationLane) {\n switch (desinationLane) {\n case \"annotation\":\n if (this.activeLane === \"annotation\") {\n break;\n }\n var annotationIndex = this.$findNearestAnnotation(this.activeRowIndex);\n if (annotationIndex == null) {\n break;\n }\n this.activeLane = \"annotation\";\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = annotationIndex;\n this.$focusAnnotation(this.activeRowIndex);\n break;\n case \"fold\":\n if (this.activeLane === \"fold\") {\n break;\n }\n var foldWidgetIndex = this.$findNearestFoldWidget(this.activeRowIndex);\n if (foldWidgetIndex == null) {\n break;\n }\n this.activeLane = \"fold\";\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = foldWidgetIndex;\n this.$focusFoldWidget(this.activeRowIndex);\n break;\n }\n return;\n };\n GutterKeyboardHandler.prototype.$rowIndexToRow = function (index) {\n var cell = this.lines.get(index);\n if (cell)\n return cell.row;\n return null;\n };\n GutterKeyboardHandler.prototype.$rowToRowIndex = function (row) {\n for (var i = 0; i < this.lines.getLength(); i++) {\n var cell = this.lines.get(i);\n if (cell.row == row)\n return i;\n }\n return null;\n };\n return GutterKeyboardHandler;\n}());\nexports.GutterKeyboardHandler = GutterKeyboardHandler;\nvar GutterKeyboardEvent = /** @class */ (function () {\n function GutterKeyboardEvent(domEvent, gutterKeyboardHandler) {\n this.gutterKeyboardHandler = gutterKeyboardHandler;\n this.domEvent = domEvent;\n }\n GutterKeyboardEvent.prototype.getKey = function () {\n return keys.keyCodeToString(this.domEvent.keyCode);\n };\n GutterKeyboardEvent.prototype.getRow = function () {\n return this.gutterKeyboardHandler.$rowIndexToRow(this.gutterKeyboardHandler.activeRowIndex);\n };\n GutterKeyboardEvent.prototype.isInAnnotationLane = function () {\n return this.gutterKeyboardHandler.activeLane === \"annotation\";\n };\n GutterKeyboardEvent.prototype.isInFoldLane = function () {\n return this.gutterKeyboardHandler.activeLane === \"fold\";\n };\n return GutterKeyboardEvent;\n}());\nexports.GutterKeyboardEvent = GutterKeyboardEvent;\n\n});\n\nace.define(\"ace/editor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/keyboard/textinput\",\"ace/mouse/mouse_handler\",\"ace/mouse/fold_handler\",\"ace/keyboard/keybinding\",\"ace/edit_session\",\"ace/search\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/commands/command_manager\",\"ace/commands/default_commands\",\"ace/config\",\"ace/token_iterator\",\"ace/line_widgets\",\"ace/keyboard/gutter_handler\",\"ace/config\",\"ace/clipboard\",\"ace/lib/keys\"], function(require, exports, module){\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar lang = require(\"./lib/lang\");\nvar useragent = require(\"./lib/useragent\");\nvar TextInput = require(\"./keyboard/textinput\").TextInput;\nvar MouseHandler = require(\"./mouse/mouse_handler\").MouseHandler;\nvar FoldHandler = require(\"./mouse/fold_handler\").FoldHandler;\nvar KeyBinding = require(\"./keyboard/keybinding\").KeyBinding;\nvar EditSession = require(\"./edit_session\").EditSession;\nvar Search = require(\"./search\").Search;\nvar Range = require(\"./range\").Range;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar CommandManager = require(\"./commands/command_manager\").CommandManager;\nvar defaultCommands = require(\"./commands/default_commands\").commands;\nvar config = require(\"./config\");\nvar TokenIterator = require(\"./token_iterator\").TokenIterator;\nvar LineWidgets = require(\"./line_widgets\").LineWidgets;\nvar GutterKeyboardHandler = require(\"./keyboard/gutter_handler\").GutterKeyboardHandler;\nvar nls = require(\"./config\").nls;\nvar clipboard = require(\"./clipboard\");\nvar keys = require('./lib/keys');\nvar Editor = /** @class */ (function () {\n function Editor(renderer, session, options) {\n this.$toDestroy = [];\n var container = renderer.getContainerElement();\n this.container = container;\n this.renderer = renderer;\n this.id = \"editor\" + (++Editor.$uid);\n this.commands = new CommandManager(useragent.isMac ? \"mac\" : \"win\", defaultCommands);\n if (typeof document == \"object\") {\n this.textInput = new TextInput(renderer.getTextAreaContainer(), this);\n this.renderer.textarea = this.textInput.getElement();\n this.$mouseHandler = new MouseHandler(this);\n new FoldHandler(this);\n }\n this.keyBinding = new KeyBinding(this);\n this.$search = new Search().set({\n wrap: true\n });\n this.$historyTracker = this.$historyTracker.bind(this);\n this.commands.on(\"exec\", this.$historyTracker);\n this.$initOperationListeners();\n this._$emitInputEvent = lang.delayedCall(function () {\n this._signal(\"input\", {});\n if (this.session && !this.session.destroyed)\n this.session.bgTokenizer.scheduleStart();\n }.bind(this));\n this.on(\"change\", function (_, _self) {\n _self._$emitInputEvent.schedule(31);\n });\n this.setSession(session || options && options.session || new EditSession(\"\"));\n config.resetOptions(this);\n if (options)\n this.setOptions(options);\n config._signal(\"editor\", this);\n }\n Editor.prototype.$initOperationListeners = function () {\n this.commands.on(\"exec\", this.startOperation.bind(this), true);\n this.commands.on(\"afterExec\", this.endOperation.bind(this), true);\n this.$opResetTimer = lang.delayedCall(this.endOperation.bind(this, true));\n this.on(\"change\", function () {\n if (!this.curOp) {\n this.startOperation();\n this.curOp.selectionBefore = this.$lastSel;\n }\n this.curOp.docChanged = true;\n }.bind(this), true);\n this.on(\"changeSelection\", function () {\n if (!this.curOp) {\n this.startOperation();\n this.curOp.selectionBefore = this.$lastSel;\n }\n this.curOp.selectionChanged = true;\n }.bind(this), true);\n };\n Editor.prototype.startOperation = function (commandEvent) {\n if (this.curOp) {\n if (!commandEvent || this.curOp.command)\n return;\n this.prevOp = this.curOp;\n }\n if (!commandEvent) {\n this.previousCommand = null;\n commandEvent = {};\n }\n this.$opResetTimer.schedule();\n this.curOp = this.session.curOp = {\n command: commandEvent.command || {},\n args: commandEvent.args,\n scrollTop: this.renderer.scrollTop\n };\n this.curOp.selectionBefore = this.selection.toJSON();\n };\n Editor.prototype.endOperation = function (e) {\n if (this.curOp && this.session) {\n if (e && e.returnValue === false || !this.session)\n return (this.curOp = null);\n if (e == true && this.curOp.command && this.curOp.command.name == \"mouse\")\n return;\n this._signal(\"beforeEndOperation\");\n if (!this.curOp)\n return;\n var command = this.curOp.command;\n var scrollIntoView = command && command.scrollIntoView;\n if (scrollIntoView) {\n switch (scrollIntoView) {\n case \"center-animate\":\n scrollIntoView = \"animate\";\n case \"center\":\n this.renderer.scrollCursorIntoView(null, 0.5);\n break;\n case \"animate\":\n case \"cursor\":\n this.renderer.scrollCursorIntoView();\n break;\n case \"selectionPart\":\n var range = this.selection.getRange();\n var config = this.renderer.layerConfig;\n if (range.start.row >= config.lastRow || range.end.row <= config.firstRow) {\n this.renderer.scrollSelectionIntoView(this.selection.anchor, this.selection.lead);\n }\n break;\n default:\n break;\n }\n if (scrollIntoView == \"animate\")\n this.renderer.animateScrolling(this.curOp.scrollTop);\n }\n var sel = this.selection.toJSON();\n this.curOp.selectionAfter = sel;\n this.$lastSel = this.selection.toJSON();\n this.session.getUndoManager().addSelection(sel);\n this.prevOp = this.curOp;\n this.curOp = null;\n }\n };\n Editor.prototype.$historyTracker = function (e) {\n if (!this.$mergeUndoDeltas)\n return;\n var prev = this.prevOp;\n var mergeableCommands = this.$mergeableCommands;\n var shouldMerge = prev.command && (e.command.name == prev.command.name);\n if (e.command.name == \"insertstring\") {\n var text = e.args;\n if (this.mergeNextCommand === undefined)\n this.mergeNextCommand = true;\n shouldMerge = shouldMerge\n && this.mergeNextCommand // previous command allows to coalesce with\n && (!/\\s/.test(text) || /\\s/.test(prev.args)); // previous insertion was of same type\n this.mergeNextCommand = true;\n }\n else {\n shouldMerge = shouldMerge\n && mergeableCommands.indexOf(e.command.name) !== -1; // the command is mergeable\n }\n if (this.$mergeUndoDeltas != \"always\"\n && Date.now() - this.sequenceStartTime > 2000) {\n shouldMerge = false; // the sequence is too long\n }\n if (shouldMerge)\n this.session.mergeUndoDeltas = true;\n else if (mergeableCommands.indexOf(e.command.name) !== -1)\n this.sequenceStartTime = Date.now();\n };\n Editor.prototype.setKeyboardHandler = function (keyboardHandler, cb) {\n if (keyboardHandler && typeof keyboardHandler === \"string\" && keyboardHandler != \"ace\") {\n this.$keybindingId = keyboardHandler;\n var _self = this;\n config.loadModule([\"keybinding\", keyboardHandler], function (module) {\n if (_self.$keybindingId == keyboardHandler)\n _self.keyBinding.setKeyboardHandler(module && module.handler);\n cb && cb();\n });\n }\n else {\n this.$keybindingId = null;\n this.keyBinding.setKeyboardHandler(keyboardHandler);\n cb && cb();\n }\n };\n Editor.prototype.getKeyboardHandler = function () {\n return this.keyBinding.getKeyboardHandler();\n };\n Editor.prototype.setSession = function (session) {\n if (this.session == session)\n return;\n if (this.curOp)\n this.endOperation();\n this.curOp = {};\n var oldSession = this.session;\n if (oldSession) {\n this.session.off(\"change\", this.$onDocumentChange);\n this.session.off(\"changeMode\", this.$onChangeMode);\n this.session.off(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.session.off(\"changeTabSize\", this.$onChangeTabSize);\n this.session.off(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.session.off(\"changeWrapMode\", this.$onChangeWrapMode);\n this.session.off(\"changeFold\", this.$onChangeFold);\n this.session.off(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.session.off(\"changeBackMarker\", this.$onChangeBackMarker);\n this.session.off(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.session.off(\"changeAnnotation\", this.$onChangeAnnotation);\n this.session.off(\"changeOverwrite\", this.$onCursorChange);\n this.session.off(\"changeScrollTop\", this.$onScrollTopChange);\n this.session.off(\"changeScrollLeft\", this.$onScrollLeftChange);\n var selection = this.session.getSelection();\n selection.off(\"changeCursor\", this.$onCursorChange);\n selection.off(\"changeSelection\", this.$onSelectionChange);\n }\n this.session = session;\n if (session) {\n this.$onDocumentChange = this.onDocumentChange.bind(this);\n session.on(\"change\", this.$onDocumentChange);\n this.renderer.setSession(session);\n this.$onChangeMode = this.onChangeMode.bind(this);\n session.on(\"changeMode\", this.$onChangeMode);\n this.$onTokenizerUpdate = this.onTokenizerUpdate.bind(this);\n session.on(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.$onChangeTabSize = this.renderer.onChangeTabSize.bind(this.renderer);\n session.on(\"changeTabSize\", this.$onChangeTabSize);\n this.$onChangeWrapLimit = this.onChangeWrapLimit.bind(this);\n session.on(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.$onChangeWrapMode = this.onChangeWrapMode.bind(this);\n session.on(\"changeWrapMode\", this.$onChangeWrapMode);\n this.$onChangeFold = this.onChangeFold.bind(this);\n session.on(\"changeFold\", this.$onChangeFold);\n this.$onChangeFrontMarker = this.onChangeFrontMarker.bind(this);\n this.session.on(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.$onChangeBackMarker = this.onChangeBackMarker.bind(this);\n this.session.on(\"changeBackMarker\", this.$onChangeBackMarker);\n this.$onChangeBreakpoint = this.onChangeBreakpoint.bind(this);\n this.session.on(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.$onChangeAnnotation = this.onChangeAnnotation.bind(this);\n this.session.on(\"changeAnnotation\", this.$onChangeAnnotation);\n this.$onCursorChange = this.onCursorChange.bind(this);\n this.session.on(\"changeOverwrite\", this.$onCursorChange);\n this.$onScrollTopChange = this.onScrollTopChange.bind(this);\n this.session.on(\"changeScrollTop\", this.$onScrollTopChange);\n this.$onScrollLeftChange = this.onScrollLeftChange.bind(this);\n this.session.on(\"changeScrollLeft\", this.$onScrollLeftChange);\n this.selection = session.getSelection();\n this.selection.on(\"changeCursor\", this.$onCursorChange);\n this.$onSelectionChange = this.onSelectionChange.bind(this);\n this.selection.on(\"changeSelection\", this.$onSelectionChange);\n this.onChangeMode();\n this.onCursorChange();\n this.onScrollTopChange();\n this.onScrollLeftChange();\n this.onSelectionChange();\n this.onChangeFrontMarker();\n this.onChangeBackMarker();\n this.onChangeBreakpoint();\n this.onChangeAnnotation();\n this.session.getUseWrapMode() && this.renderer.adjustWrapLimit();\n this.renderer.updateFull();\n }\n else {\n this.selection = null;\n this.renderer.setSession(session);\n }\n this._signal(\"changeSession\", {\n session: session,\n oldSession: oldSession\n });\n this.curOp = null;\n oldSession && oldSession._signal(\"changeEditor\", { oldEditor: this });\n session && session._signal(\"changeEditor\", { editor: this });\n if (session && !session.destroyed)\n session.bgTokenizer.scheduleStart();\n };\n Editor.prototype.getSession = function () {\n return this.session;\n };\n Editor.prototype.setValue = function (val, cursorPos) {\n this.session.doc.setValue(val);\n if (!cursorPos)\n this.selectAll();\n else if (cursorPos == 1)\n this.navigateFileEnd();\n else if (cursorPos == -1)\n this.navigateFileStart();\n return val;\n };\n Editor.prototype.getValue = function () {\n return this.session.getValue();\n };\n Editor.prototype.getSelection = function () {\n return this.selection;\n };\n Editor.prototype.resize = function (force) {\n this.renderer.onResize(force);\n };\n Editor.prototype.setTheme = function (theme, cb) {\n this.renderer.setTheme(theme, cb);\n };\n Editor.prototype.getTheme = function () {\n return this.renderer.getTheme();\n };\n Editor.prototype.setStyle = function (style) {\n this.renderer.setStyle(style);\n };\n Editor.prototype.unsetStyle = function (style) {\n this.renderer.unsetStyle(style);\n };\n Editor.prototype.getFontSize = function () {\n return this.getOption(\"fontSize\") ||\n dom.computedStyle(this.container).fontSize;\n };\n Editor.prototype.setFontSize = function (size) {\n this.setOption(\"fontSize\", size);\n };\n Editor.prototype.$highlightBrackets = function () {\n if (this.$highlightPending) {\n return;\n }\n var self = this;\n this.$highlightPending = true;\n setTimeout(function () {\n self.$highlightPending = false;\n var session = self.session;\n if (!session || session.destroyed)\n return;\n if (session.$bracketHighlight) {\n session.$bracketHighlight.markerIds.forEach(function (id) {\n session.removeMarker(id);\n });\n session.$bracketHighlight = null;\n }\n var pos = self.getCursorPosition();\n var handler = self.getKeyboardHandler();\n var isBackwards = handler && handler.$getDirectionForHighlight && handler.$getDirectionForHighlight(self);\n var ranges = session.getMatchingBracketRanges(pos, isBackwards);\n if (!ranges) {\n var iterator = new TokenIterator(session, pos.row, pos.column);\n var token = iterator.getCurrentToken();\n if (token && /\\b(?:tag-open|tag-name)/.test(token.type)) {\n var tagNamesRanges = session.getMatchingTags(pos);\n if (tagNamesRanges)\n ranges = [tagNamesRanges.openTagName, tagNamesRanges.closeTagName];\n }\n }\n if (!ranges && session.$mode.getMatching)\n ranges = session.$mode.getMatching(self.session);\n if (!ranges) {\n if (self.getHighlightIndentGuides())\n self.renderer.$textLayer.$highlightIndentGuide();\n return;\n }\n var markerType = \"ace_bracket\";\n if (!Array.isArray(ranges)) {\n ranges = [ranges];\n }\n else if (ranges.length == 1) {\n markerType = \"ace_error_bracket\";\n }\n if (ranges.length == 2) {\n if (Range.comparePoints(ranges[0].end, ranges[1].start) == 0)\n ranges = [Range.fromPoints(ranges[0].start, ranges[1].end)];\n else if (Range.comparePoints(ranges[0].start, ranges[1].end) == 0)\n ranges = [Range.fromPoints(ranges[1].start, ranges[0].end)];\n }\n session.$bracketHighlight = {\n ranges: ranges,\n markerIds: ranges.map(function (range) {\n return session.addMarker(range, markerType, \"text\");\n })\n };\n if (self.getHighlightIndentGuides())\n self.renderer.$textLayer.$highlightIndentGuide();\n }, 50);\n };\n Editor.prototype.focus = function () {\n this.textInput.focus();\n };\n Editor.prototype.isFocused = function () {\n return this.textInput.isFocused();\n };\n Editor.prototype.blur = function () {\n this.textInput.blur();\n };\n Editor.prototype.onFocus = function (e) {\n if (this.$isFocused)\n return;\n this.$isFocused = true;\n this.renderer.showCursor();\n this.renderer.visualizeFocus();\n this._emit(\"focus\", e);\n };\n Editor.prototype.onBlur = function (e) {\n if (!this.$isFocused)\n return;\n this.$isFocused = false;\n this.renderer.hideCursor();\n this.renderer.visualizeBlur();\n this._emit(\"blur\", e);\n };\n Editor.prototype.$cursorChange = function () {\n this.renderer.updateCursor();\n this.$highlightBrackets();\n this.$updateHighlightActiveLine();\n };\n Editor.prototype.onDocumentChange = function (delta) {\n var wrap = this.session.$useWrapMode;\n var lastRow = (delta.start.row == delta.end.row ? delta.end.row : Infinity);\n this.renderer.updateLines(delta.start.row, lastRow, wrap);\n this._signal(\"change\", delta);\n this.$cursorChange();\n };\n Editor.prototype.onTokenizerUpdate = function (e) {\n var rows = e.data;\n this.renderer.updateLines(rows.first, rows.last);\n };\n Editor.prototype.onScrollTopChange = function () {\n this.renderer.scrollToY(this.session.getScrollTop());\n };\n Editor.prototype.onScrollLeftChange = function () {\n this.renderer.scrollToX(this.session.getScrollLeft());\n };\n Editor.prototype.onCursorChange = function () {\n this.$cursorChange();\n this._signal(\"changeSelection\");\n };\n Editor.prototype.$updateHighlightActiveLine = function () {\n var session = this.getSession();\n var highlight;\n if (this.$highlightActiveLine) {\n if (this.$selectionStyle != \"line\" || !this.selection.isMultiLine())\n highlight = this.getCursorPosition();\n if (this.renderer.theme && this.renderer.theme.$selectionColorConflict && !this.selection.isEmpty())\n highlight = false;\n if (this.renderer.$maxLines && this.session.getLength() === 1 && !(this.renderer.$minLines > 1))\n highlight = false;\n }\n if (session.$highlightLineMarker && !highlight) {\n session.removeMarker(session.$highlightLineMarker.id);\n session.$highlightLineMarker = null;\n }\n else if (!session.$highlightLineMarker && highlight) {\n var range = new Range(highlight.row, highlight.column, highlight.row, Infinity);\n range.id = session.addMarker(range, \"ace_active-line\", \"screenLine\");\n session.$highlightLineMarker = range;\n }\n else if (highlight) {\n session.$highlightLineMarker.start.row = highlight.row;\n session.$highlightLineMarker.end.row = highlight.row;\n session.$highlightLineMarker.start.column = highlight.column;\n session._signal(\"changeBackMarker\");\n }\n };\n Editor.prototype.onSelectionChange = function (e) {\n var session = this.session;\n if (session.$selectionMarker) {\n session.removeMarker(session.$selectionMarker);\n }\n session.$selectionMarker = null;\n if (!this.selection.isEmpty()) {\n var range = this.selection.getRange();\n var style = this.getSelectionStyle();\n session.$selectionMarker = session.addMarker(range, \"ace_selection\", style);\n }\n else {\n this.$updateHighlightActiveLine();\n }\n var re = this.$highlightSelectedWord && this.$getSelectionHighLightRegexp();\n this.session.highlight(re);\n this._signal(\"changeSelection\");\n };\n Editor.prototype.$getSelectionHighLightRegexp = function () {\n var session = this.session;\n var selection = this.getSelectionRange();\n if (selection.isEmpty() || selection.isMultiLine())\n return;\n var startColumn = selection.start.column;\n var endColumn = selection.end.column;\n var line = session.getLine(selection.start.row);\n var needle = line.substring(startColumn, endColumn);\n if (needle.length > 5000 || !/[\\w\\d]/.test(needle))\n return;\n var re = this.$search.$assembleRegExp({\n wholeWord: true,\n caseSensitive: true,\n needle: needle\n });\n var wordWithBoundary = line.substring(startColumn - 1, endColumn + 1);\n if (!re.test(wordWithBoundary))\n return;\n return re;\n };\n Editor.prototype.onChangeFrontMarker = function () {\n this.renderer.updateFrontMarkers();\n };\n Editor.prototype.onChangeBackMarker = function () {\n this.renderer.updateBackMarkers();\n };\n Editor.prototype.onChangeBreakpoint = function () {\n this.renderer.updateBreakpoints();\n };\n Editor.prototype.onChangeAnnotation = function () {\n this.renderer.setAnnotations(this.session.getAnnotations());\n };\n Editor.prototype.onChangeMode = function (e) {\n this.renderer.updateText();\n this._emit(\"changeMode\", e);\n };\n Editor.prototype.onChangeWrapLimit = function () {\n this.renderer.updateFull();\n };\n Editor.prototype.onChangeWrapMode = function () {\n this.renderer.onResize(true);\n };\n Editor.prototype.onChangeFold = function () {\n this.$updateHighlightActiveLine();\n this.renderer.updateFull();\n };\n Editor.prototype.getSelectedText = function () {\n return this.session.getTextRange(this.getSelectionRange());\n };\n Editor.prototype.getCopyText = function () {\n var text = this.getSelectedText();\n var nl = this.session.doc.getNewLineCharacter();\n var copyLine = false;\n if (!text && this.$copyWithEmptySelection) {\n copyLine = true;\n var ranges = this.selection.getAllRanges();\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (i && ranges[i - 1].start.row == range.start.row)\n continue;\n text += this.session.getLine(range.start.row) + nl;\n }\n }\n var e = { text: text };\n this._signal(\"copy\", e);\n clipboard.lineMode = copyLine ? e.text : false;\n return e.text;\n };\n Editor.prototype.onCopy = function () {\n this.commands.exec(\"copy\", this);\n };\n Editor.prototype.onCut = function () {\n this.commands.exec(\"cut\", this);\n };\n Editor.prototype.onPaste = function (text, event) {\n var e = { text: text, event: event };\n this.commands.exec(\"paste\", this, e);\n };\n Editor.prototype.$handlePaste = function (e) {\n if (typeof e == \"string\")\n e = { text: e };\n this._signal(\"paste\", e);\n var text = e.text;\n var lineMode = text === clipboard.lineMode;\n var session = this.session;\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode) {\n if (lineMode)\n session.insert({ row: this.selection.lead.row, column: 0 }, text);\n else\n this.insert(text);\n }\n else if (lineMode) {\n this.selection.rangeList.ranges.forEach(function (range) {\n session.insert({ row: range.start.row, column: 0 }, text);\n });\n }\n else {\n var lines = text.split(/\\r\\n|\\r|\\n/);\n var ranges = this.selection.rangeList.ranges;\n var isFullLine = lines.length == 2 && (!lines[0] || !lines[1]);\n if (lines.length != ranges.length || isFullLine)\n return this.commands.exec(\"insertstring\", this, text);\n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.isEmpty())\n session.remove(range);\n session.insert(range.start, lines[i]);\n }\n }\n };\n Editor.prototype.execCommand = function (command, args) {\n return this.commands.exec(command, this, args);\n };\n Editor.prototype.insert = function (text, pasted) {\n var session = this.session;\n var mode = session.getMode();\n var cursor = this.getCursorPosition();\n if (this.getBehavioursEnabled() && !pasted) {\n var transform = mode.transformAction(session.getState(cursor.row), 'insertion', this, session, text);\n if (transform) {\n if (text !== transform.text) {\n if (!this.inVirtualSelectionMode) {\n this.session.mergeUndoDeltas = false;\n this.mergeNextCommand = false;\n }\n }\n text = transform.text;\n }\n }\n if (text == \"\\t\")\n text = this.session.getTabString();\n if (!this.selection.isEmpty()) {\n var range = this.getSelectionRange();\n cursor = this.session.remove(range);\n this.clearSelection();\n }\n else if (this.session.getOverwrite() && text.indexOf(\"\\n\") == -1) {\n var range = new Range.fromPoints(cursor, cursor);\n range.end.column += text.length;\n this.session.remove(range);\n }\n if (text == \"\\n\" || text == \"\\r\\n\") {\n var line = session.getLine(cursor.row);\n if (cursor.column > line.search(/\\S|$/)) {\n var d = line.substr(cursor.column).search(/\\S|$/);\n session.doc.removeInLine(cursor.row, cursor.column, cursor.column + d);\n }\n }\n this.clearSelection();\n var start = cursor.column;\n var lineState = session.getState(cursor.row);\n var line = session.getLine(cursor.row);\n var shouldOutdent = mode.checkOutdent(lineState, line, text);\n session.insert(cursor, text);\n if (transform && transform.selection) {\n if (transform.selection.length == 2) { // Transform relative to the current column\n this.selection.setSelectionRange(new Range(cursor.row, start + transform.selection[0], cursor.row, start + transform.selection[1]));\n }\n else { // Transform relative to the current row.\n this.selection.setSelectionRange(new Range(cursor.row + transform.selection[0], transform.selection[1], cursor.row + transform.selection[2], transform.selection[3]));\n }\n }\n if (this.$enableAutoIndent) {\n if (session.getDocument().isNewLine(text)) {\n var lineIndent = mode.getNextLineIndent(lineState, line.slice(0, cursor.column), session.getTabString());\n session.insert({ row: cursor.row + 1, column: 0 }, lineIndent);\n }\n if (shouldOutdent)\n mode.autoOutdent(lineState, session, cursor.row);\n }\n };\n Editor.prototype.autoIndent = function () {\n var session = this.session;\n var mode = session.getMode();\n var startRow, endRow;\n if (this.selection.isEmpty()) {\n startRow = 0;\n endRow = session.doc.getLength() - 1;\n }\n else {\n var selectedRange = this.getSelectionRange();\n startRow = selectedRange.start.row;\n endRow = selectedRange.end.row;\n }\n var prevLineState = \"\";\n var prevLine = \"\";\n var lineIndent = \"\";\n var line, currIndent, range;\n var tab = session.getTabString();\n for (var row = startRow; row <= endRow; row++) {\n if (row > 0) {\n prevLineState = session.getState(row - 1);\n prevLine = session.getLine(row - 1);\n lineIndent = mode.getNextLineIndent(prevLineState, prevLine, tab);\n }\n line = session.getLine(row);\n currIndent = mode.$getIndent(line);\n if (lineIndent !== currIndent) {\n if (currIndent.length > 0) {\n range = new Range(row, 0, row, currIndent.length);\n session.remove(range);\n }\n if (lineIndent.length > 0) {\n session.insert({ row: row, column: 0 }, lineIndent);\n }\n }\n mode.autoOutdent(prevLineState, session, row);\n }\n };\n Editor.prototype.onTextInput = function (text, composition) {\n if (!composition)\n return this.keyBinding.onTextInput(text);\n this.startOperation({ command: { name: \"insertstring\" } });\n var applyComposition = this.applyComposition.bind(this, text, composition);\n if (this.selection.rangeCount)\n this.forEachSelection(applyComposition);\n else\n applyComposition();\n this.endOperation();\n };\n Editor.prototype.applyComposition = function (text, composition) {\n if (composition.extendLeft || composition.extendRight) {\n var r = this.selection.getRange();\n r.start.column -= composition.extendLeft;\n r.end.column += composition.extendRight;\n if (r.start.column < 0) {\n r.start.row--;\n r.start.column += this.session.getLine(r.start.row).length + 1;\n }\n this.selection.setRange(r);\n if (!text && !r.isEmpty())\n this.remove();\n }\n if (text || !this.selection.isEmpty())\n this.insert(text, true);\n if (composition.restoreStart || composition.restoreEnd) {\n var r = this.selection.getRange();\n r.start.column -= composition.restoreStart;\n r.end.column -= composition.restoreEnd;\n this.selection.setRange(r);\n }\n };\n Editor.prototype.onCommandKey = function (e, hashId, keyCode) {\n return this.keyBinding.onCommandKey(e, hashId, keyCode);\n };\n Editor.prototype.setOverwrite = function (overwrite) {\n this.session.setOverwrite(overwrite);\n };\n Editor.prototype.getOverwrite = function () {\n return this.session.getOverwrite();\n };\n Editor.prototype.toggleOverwrite = function () {\n this.session.toggleOverwrite();\n };\n Editor.prototype.setScrollSpeed = function (speed) {\n this.setOption(\"scrollSpeed\", speed);\n };\n Editor.prototype.getScrollSpeed = function () {\n return this.getOption(\"scrollSpeed\");\n };\n Editor.prototype.setDragDelay = function (dragDelay) {\n this.setOption(\"dragDelay\", dragDelay);\n };\n Editor.prototype.getDragDelay = function () {\n return this.getOption(\"dragDelay\");\n };\n Editor.prototype.setSelectionStyle = function (val) {\n this.setOption(\"selectionStyle\", val);\n };\n Editor.prototype.getSelectionStyle = function () {\n return this.getOption(\"selectionStyle\");\n };\n Editor.prototype.setHighlightActiveLine = function (shouldHighlight) {\n this.setOption(\"highlightActiveLine\", shouldHighlight);\n };\n Editor.prototype.getHighlightActiveLine = function () {\n return this.getOption(\"highlightActiveLine\");\n };\n Editor.prototype.setHighlightGutterLine = function (shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n Editor.prototype.getHighlightGutterLine = function () {\n return this.getOption(\"highlightGutterLine\");\n };\n Editor.prototype.setHighlightSelectedWord = function (shouldHighlight) {\n this.setOption(\"highlightSelectedWord\", shouldHighlight);\n };\n Editor.prototype.getHighlightSelectedWord = function () {\n return this.$highlightSelectedWord;\n };\n Editor.prototype.setAnimatedScroll = function (shouldAnimate) {\n this.renderer.setAnimatedScroll(shouldAnimate);\n };\n Editor.prototype.getAnimatedScroll = function () {\n return this.renderer.getAnimatedScroll();\n };\n Editor.prototype.setShowInvisibles = function (showInvisibles) {\n this.renderer.setShowInvisibles(showInvisibles);\n };\n Editor.prototype.getShowInvisibles = function () {\n return this.renderer.getShowInvisibles();\n };\n Editor.prototype.setDisplayIndentGuides = function (display) {\n this.renderer.setDisplayIndentGuides(display);\n };\n Editor.prototype.getDisplayIndentGuides = function () {\n return this.renderer.getDisplayIndentGuides();\n };\n Editor.prototype.setHighlightIndentGuides = function (highlight) {\n this.renderer.setHighlightIndentGuides(highlight);\n };\n Editor.prototype.getHighlightIndentGuides = function () {\n return this.renderer.getHighlightIndentGuides();\n };\n Editor.prototype.setShowPrintMargin = function (showPrintMargin) {\n this.renderer.setShowPrintMargin(showPrintMargin);\n };\n Editor.prototype.getShowPrintMargin = function () {\n return this.renderer.getShowPrintMargin();\n };\n Editor.prototype.setPrintMarginColumn = function (showPrintMargin) {\n this.renderer.setPrintMarginColumn(showPrintMargin);\n };\n Editor.prototype.getPrintMarginColumn = function () {\n return this.renderer.getPrintMarginColumn();\n };\n Editor.prototype.setReadOnly = function (readOnly) {\n this.setOption(\"readOnly\", readOnly);\n };\n Editor.prototype.getReadOnly = function () {\n return this.getOption(\"readOnly\");\n };\n Editor.prototype.setBehavioursEnabled = function (enabled) {\n this.setOption(\"behavioursEnabled\", enabled);\n };\n Editor.prototype.getBehavioursEnabled = function () {\n return this.getOption(\"behavioursEnabled\");\n };\n Editor.prototype.setWrapBehavioursEnabled = function (enabled) {\n this.setOption(\"wrapBehavioursEnabled\", enabled);\n };\n Editor.prototype.getWrapBehavioursEnabled = function () {\n return this.getOption(\"wrapBehavioursEnabled\");\n };\n Editor.prototype.setShowFoldWidgets = function (show) {\n this.setOption(\"showFoldWidgets\", show);\n };\n Editor.prototype.getShowFoldWidgets = function () {\n return this.getOption(\"showFoldWidgets\");\n };\n Editor.prototype.setFadeFoldWidgets = function (fade) {\n this.setOption(\"fadeFoldWidgets\", fade);\n };\n Editor.prototype.getFadeFoldWidgets = function () {\n return this.getOption(\"fadeFoldWidgets\");\n };\n Editor.prototype.remove = function (dir) {\n if (this.selection.isEmpty()) {\n if (dir == \"left\")\n this.selection.selectLeft();\n else\n this.selection.selectRight();\n }\n var range = this.getSelectionRange();\n if (this.getBehavioursEnabled()) {\n var session = this.session;\n var state = session.getState(range.start.row);\n var new_range = session.getMode().transformAction(state, 'deletion', this, session, range);\n if (range.end.column === 0) {\n var text = session.getTextRange(range);\n if (text[text.length - 1] == \"\\n\") {\n var line = session.getLine(range.end.row);\n if (/^\\s+$/.test(line)) {\n range.end.column = line.length;\n }\n }\n }\n if (new_range)\n range = new_range;\n }\n this.session.remove(range);\n this.clearSelection();\n };\n Editor.prototype.removeWordRight = function () {\n if (this.selection.isEmpty())\n this.selection.selectWordRight();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeWordLeft = function () {\n if (this.selection.isEmpty())\n this.selection.selectWordLeft();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeToLineStart = function () {\n if (this.selection.isEmpty())\n this.selection.selectLineStart();\n if (this.selection.isEmpty())\n this.selection.selectLeft();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeToLineEnd = function () {\n if (this.selection.isEmpty())\n this.selection.selectLineEnd();\n var range = this.getSelectionRange();\n if (range.start.column == range.end.column && range.start.row == range.end.row) {\n range.end.column = 0;\n range.end.row++;\n }\n this.session.remove(range);\n this.clearSelection();\n };\n Editor.prototype.splitLine = function () {\n if (!this.selection.isEmpty()) {\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n }\n var cursor = this.getCursorPosition();\n this.insert(\"\\n\");\n this.moveCursorToPosition(cursor);\n };\n Editor.prototype.setGhostText = function (text, position) {\n if (!this.session.widgetManager) {\n this.session.widgetManager = new LineWidgets(this.session);\n this.session.widgetManager.attach(this);\n }\n this.renderer.setGhostText(text, position);\n };\n Editor.prototype.removeGhostText = function () {\n if (!this.session.widgetManager)\n return;\n this.renderer.removeGhostText();\n };\n Editor.prototype.transposeLetters = function () {\n if (!this.selection.isEmpty()) {\n return;\n }\n var cursor = this.getCursorPosition();\n var column = cursor.column;\n if (column === 0)\n return;\n var line = this.session.getLine(cursor.row);\n var swap, range;\n if (column < line.length) {\n swap = line.charAt(column) + line.charAt(column - 1);\n range = new Range(cursor.row, column - 1, cursor.row, column + 1);\n }\n else {\n swap = line.charAt(column - 1) + line.charAt(column - 2);\n range = new Range(cursor.row, column - 2, cursor.row, column);\n }\n this.session.replace(range, swap);\n this.session.selection.moveToPosition(range.end);\n };\n Editor.prototype.toLowerCase = function () {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toLowerCase());\n this.selection.setSelectionRange(originalRange);\n };\n Editor.prototype.toUpperCase = function () {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toUpperCase());\n this.selection.setSelectionRange(originalRange);\n };\n Editor.prototype.indent = function () {\n var session = this.session;\n var range = this.getSelectionRange();\n if (range.start.row < range.end.row) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n else if (range.start.column < range.end.column) {\n var text = session.getTextRange(range);\n if (!/^\\s+$/.test(text)) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n }\n var line = session.getLine(range.start.row);\n var position = range.start;\n var size = session.getTabSize();\n var column = session.documentToScreenColumn(position.row, position.column);\n if (this.session.getUseSoftTabs()) {\n var count = (size - column % size);\n var indentString = lang.stringRepeat(\" \", count);\n }\n else {\n var count = column % size;\n while (line[range.start.column - 1] == \" \" && count) {\n range.start.column--;\n count--;\n }\n this.selection.setSelectionRange(range);\n indentString = \"\\t\";\n }\n return this.insert(indentString);\n };\n Editor.prototype.blockIndent = function () {\n var rows = this.$getSelectedRows();\n this.session.indentRows(rows.first, rows.last, \"\\t\");\n };\n Editor.prototype.blockOutdent = function () {\n var selection = this.session.getSelection();\n this.session.outdentRows(selection.getRange());\n };\n Editor.prototype.sortLines = function () {\n var rows = this.$getSelectedRows();\n var session = this.session;\n var lines = [];\n for (var i = rows.first; i <= rows.last; i++)\n lines.push(session.getLine(i));\n lines.sort(function (a, b) {\n if (a.toLowerCase() < b.toLowerCase())\n return -1;\n if (a.toLowerCase() > b.toLowerCase())\n return 1;\n return 0;\n });\n var deleteRange = new Range(0, 0, 0, 0);\n for (var i = rows.first; i <= rows.last; i++) {\n var line = session.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n deleteRange.end.column = line.length;\n session.replace(deleteRange, lines[i - rows.first]);\n }\n };\n Editor.prototype.toggleCommentLines = function () {\n var state = this.session.getState(this.getCursorPosition().row);\n var rows = this.$getSelectedRows();\n this.session.getMode().toggleCommentLines(state, this.session, rows.first, rows.last);\n };\n Editor.prototype.toggleBlockComment = function () {\n var cursor = this.getCursorPosition();\n var state = this.session.getState(cursor.row);\n var range = this.getSelectionRange();\n this.session.getMode().toggleBlockComment(state, this.session, range, cursor);\n };\n Editor.prototype.getNumberAt = function (row, column) {\n var _numberRx = /[\\-]?[0-9]+(?:\\.[0-9]+)?/g;\n _numberRx.lastIndex = 0;\n var s = this.session.getLine(row);\n while (_numberRx.lastIndex < column) {\n var m = _numberRx.exec(s);\n if (m.index <= column && m.index + m[0].length >= column) {\n var number = {\n value: m[0],\n start: m.index,\n end: m.index + m[0].length\n };\n return number;\n }\n }\n return null;\n };\n Editor.prototype.modifyNumber = function (amount) {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n var charRange = new Range(row, column - 1, row, column);\n var c = this.session.getTextRange(charRange);\n if (!isNaN(parseFloat(c)) && isFinite(c)) {\n var nr = this.getNumberAt(row, column);\n if (nr) {\n var fp = nr.value.indexOf(\".\") >= 0 ? nr.start + nr.value.indexOf(\".\") + 1 : nr.end;\n var decimals = nr.start + nr.value.length - fp;\n var t = parseFloat(nr.value);\n t *= Math.pow(10, decimals);\n if (fp !== nr.end && column < fp) {\n amount *= Math.pow(10, nr.end - column - 1);\n }\n else {\n amount *= Math.pow(10, nr.end - column);\n }\n t += amount;\n t /= Math.pow(10, decimals);\n var nnr = t.toFixed(decimals);\n var replaceRange = new Range(row, nr.start, row, nr.end);\n this.session.replace(replaceRange, nnr);\n this.moveCursorTo(row, Math.max(nr.start + 1, column + nnr.length - nr.value.length));\n }\n }\n else {\n this.toggleWord();\n }\n };\n Editor.prototype.toggleWord = function () {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n this.selection.selectWord();\n var currentState = this.getSelectedText();\n var currWordStart = this.selection.getWordRange().start.column;\n var wordParts = currentState.replace(/([a-z]+|[A-Z]+)(?=[A-Z_]|$)/g, '$1 ').split(/\\s/);\n var delta = column - currWordStart - 1;\n if (delta < 0)\n delta = 0;\n var curLength = 0, itLength = 0;\n var that = this;\n if (currentState.match(/[A-Za-z0-9_]+/)) {\n wordParts.forEach(function (item, i) {\n itLength = curLength + item.length;\n if (delta >= curLength && delta <= itLength) {\n currentState = item;\n that.selection.clearSelection();\n that.moveCursorTo(row, curLength + currWordStart);\n that.selection.selectTo(row, itLength + currWordStart);\n }\n curLength = itLength;\n });\n }\n var wordPairs = this.$toggleWordPairs;\n var reg;\n for (var i = 0; i < wordPairs.length; i++) {\n var item = wordPairs[i];\n for (var j = 0; j <= 1; j++) {\n var negate = +!j;\n var firstCondition = currentState.match(new RegExp('^\\\\s?_?(' + lang.escapeRegExp(item[j]) + ')\\\\s?$', 'i'));\n if (firstCondition) {\n var secondCondition = currentState.match(new RegExp('([_]|^|\\\\s)(' + lang.escapeRegExp(firstCondition[1]) + ')($|\\\\s)', 'g'));\n if (secondCondition) {\n reg = currentState.replace(new RegExp(lang.escapeRegExp(item[j]), 'i'), function (result) {\n var res = item[negate];\n if (result.toUpperCase() == result) {\n res = res.toUpperCase();\n }\n else if (result.charAt(0).toUpperCase() == result.charAt(0)) {\n res = res.substr(0, 0) + item[negate].charAt(0).toUpperCase() + res.substr(1);\n }\n return res;\n });\n this.insert(reg);\n reg = \"\";\n }\n }\n }\n }\n };\n Editor.prototype.findLinkAt = function (row, column) {\n var e_1, _a;\n var line = this.session.getLine(row);\n var wordParts = line.split(/((?:https?|ftp):\\/\\/[\\S]+)/);\n var columnPosition = column;\n if (columnPosition < 0)\n columnPosition = 0;\n var previousPosition = 0, currentPosition = 0, match;\n try {\n for (var wordParts_1 = __values(wordParts), wordParts_1_1 = wordParts_1.next(); !wordParts_1_1.done; wordParts_1_1 = wordParts_1.next()) {\n var item = wordParts_1_1.value;\n currentPosition = previousPosition + item.length;\n if (columnPosition >= previousPosition && columnPosition <= currentPosition) {\n if (item.match(/((?:https?|ftp):\\/\\/[\\S]+)/)) {\n match = item.replace(/[\\s:.,'\";}\\]]+$/, \"\");\n break;\n }\n }\n previousPosition = currentPosition;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (wordParts_1_1 && !wordParts_1_1.done && (_a = wordParts_1.return)) _a.call(wordParts_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return match;\n };\n Editor.prototype.openLink = function () {\n var cursor = this.selection.getCursor();\n var url = this.findLinkAt(cursor.row, cursor.column);\n if (url)\n window.open(url, '_blank');\n return url != null;\n };\n Editor.prototype.removeLines = function () {\n var rows = this.$getSelectedRows();\n this.session.removeFullLines(rows.first, rows.last);\n this.clearSelection();\n };\n Editor.prototype.duplicateSelection = function () {\n var sel = this.selection;\n var doc = this.session;\n var range = sel.getRange();\n var reverse = sel.isBackwards();\n if (range.isEmpty()) {\n var row = range.start.row;\n doc.duplicateLines(row, row);\n }\n else {\n var point = reverse ? range.start : range.end;\n var endPoint = doc.insert(point, doc.getTextRange(range), false);\n range.start = point;\n range.end = endPoint;\n sel.setSelectionRange(range, reverse);\n }\n };\n Editor.prototype.moveLinesDown = function () {\n this.$moveLines(1, false);\n };\n Editor.prototype.moveLinesUp = function () {\n this.$moveLines(-1, false);\n };\n Editor.prototype.moveText = function (range, toPosition, copy) {\n return this.session.moveText(range, toPosition, copy);\n };\n Editor.prototype.copyLinesUp = function () {\n this.$moveLines(-1, true);\n };\n Editor.prototype.copyLinesDown = function () {\n this.$moveLines(1, true);\n };\n Editor.prototype.$moveLines = function (dir, copy) {\n var rows, moved;\n var selection = this.selection;\n if (!selection.inMultiSelectMode || this.inVirtualSelectionMode) {\n var range = selection.toOrientedRange();\n rows = this.$getSelectedRows(range);\n moved = this.session.$moveLines(rows.first, rows.last, copy ? 0 : dir);\n if (copy && dir == -1)\n moved = 0;\n range.moveBy(moved, 0);\n selection.fromOrientedRange(range);\n }\n else {\n var ranges = selection.rangeList.ranges;\n selection.rangeList.detach(this.session);\n this.inVirtualSelectionMode = true;\n var diff = 0;\n var totalDiff = 0;\n var l = ranges.length;\n for (var i = 0; i < l; i++) {\n var rangeIndex = i;\n ranges[i].moveBy(diff, 0);\n rows = this.$getSelectedRows(ranges[i]);\n var first = rows.first;\n var last = rows.last;\n while (++i < l) {\n if (totalDiff)\n ranges[i].moveBy(totalDiff, 0);\n var subRows = this.$getSelectedRows(ranges[i]);\n if (copy && subRows.first != last)\n break;\n else if (!copy && subRows.first > last + 1)\n break;\n last = subRows.last;\n }\n i--;\n diff = this.session.$moveLines(first, last, copy ? 0 : dir);\n if (copy && dir == -1)\n rangeIndex = i + 1;\n while (rangeIndex <= i) {\n ranges[rangeIndex].moveBy(diff, 0);\n rangeIndex++;\n }\n if (!copy)\n diff = 0;\n totalDiff += diff;\n }\n selection.fromOrientedRange(selection.ranges[0]);\n selection.rangeList.attach(this.session);\n this.inVirtualSelectionMode = false;\n }\n };\n Editor.prototype.$getSelectedRows = function (range) {\n range = (range || this.getSelectionRange()).collapseRows();\n return {\n first: this.session.getRowFoldStart(range.start.row),\n last: this.session.getRowFoldEnd(range.end.row)\n };\n };\n Editor.prototype.onCompositionStart = function (compositionState) {\n this.renderer.showComposition(compositionState);\n };\n Editor.prototype.onCompositionUpdate = function (text) {\n this.renderer.setCompositionText(text);\n };\n Editor.prototype.onCompositionEnd = function () {\n this.renderer.hideComposition();\n };\n Editor.prototype.getFirstVisibleRow = function () {\n return this.renderer.getFirstVisibleRow();\n };\n Editor.prototype.getLastVisibleRow = function () {\n return this.renderer.getLastVisibleRow();\n };\n Editor.prototype.isRowVisible = function (row) {\n return (row >= this.getFirstVisibleRow() && row <= this.getLastVisibleRow());\n };\n Editor.prototype.isRowFullyVisible = function (row) {\n return (row >= this.renderer.getFirstFullyVisibleRow() && row <= this.renderer.getLastFullyVisibleRow());\n };\n Editor.prototype.$getVisibleRowCount = function () {\n return this.renderer.getScrollBottomRow() - this.renderer.getScrollTopRow() + 1;\n };\n Editor.prototype.$moveByPage = function (dir, select) {\n var renderer = this.renderer;\n var config = this.renderer.layerConfig;\n var rows = dir * Math.floor(config.height / config.lineHeight);\n if (select === true) {\n this.selection.$moveSelection(function () {\n this.moveCursorBy(rows, 0);\n });\n }\n else if (select === false) {\n this.selection.moveCursorBy(rows, 0);\n this.selection.clearSelection();\n }\n var scrollTop = renderer.scrollTop;\n renderer.scrollBy(0, rows * config.lineHeight);\n if (select != null)\n renderer.scrollCursorIntoView(null, 0.5);\n renderer.animateScrolling(scrollTop);\n };\n Editor.prototype.selectPageDown = function () {\n this.$moveByPage(1, true);\n };\n Editor.prototype.selectPageUp = function () {\n this.$moveByPage(-1, true);\n };\n Editor.prototype.gotoPageDown = function () {\n this.$moveByPage(1, false);\n };\n Editor.prototype.gotoPageUp = function () {\n this.$moveByPage(-1, false);\n };\n Editor.prototype.scrollPageDown = function () {\n this.$moveByPage(1);\n };\n Editor.prototype.scrollPageUp = function () {\n this.$moveByPage(-1);\n };\n Editor.prototype.scrollToRow = function (row) {\n this.renderer.scrollToRow(row);\n };\n Editor.prototype.scrollToLine = function (line, center, animate, callback) {\n this.renderer.scrollToLine(line, center, animate, callback);\n };\n Editor.prototype.centerSelection = function () {\n var range = this.getSelectionRange();\n var pos = {\n row: Math.floor(range.start.row + (range.end.row - range.start.row) / 2),\n column: Math.floor(range.start.column + (range.end.column - range.start.column) / 2)\n };\n this.renderer.alignCursor(pos, 0.5);\n };\n Editor.prototype.getCursorPosition = function () {\n return this.selection.getCursor();\n };\n Editor.prototype.getCursorPositionScreen = function () {\n return this.session.documentToScreenPosition(this.getCursorPosition());\n };\n Editor.prototype.getSelectionRange = function () {\n return this.selection.getRange();\n };\n Editor.prototype.selectAll = function () {\n this.selection.selectAll();\n };\n Editor.prototype.clearSelection = function () {\n this.selection.clearSelection();\n };\n Editor.prototype.moveCursorTo = function (row, column) {\n this.selection.moveCursorTo(row, column);\n };\n Editor.prototype.moveCursorToPosition = function (pos) {\n this.selection.moveCursorToPosition(pos);\n };\n Editor.prototype.jumpToMatching = function (select, expand) {\n var cursor = this.getCursorPosition();\n var iterator = new TokenIterator(this.session, cursor.row, cursor.column);\n var prevToken = iterator.getCurrentToken();\n var tokenCount = 0;\n if (prevToken && prevToken.type.indexOf('tag-name') !== -1) {\n prevToken = iterator.stepBackward();\n }\n var token = prevToken || iterator.stepForward();\n if (!token)\n return;\n var matchType;\n var found = false;\n var depth = {};\n var i = cursor.column - token.start;\n var bracketType;\n var brackets = {\n \")\": \"(\",\n \"(\": \"(\",\n \"]\": \"[\",\n \"[\": \"[\",\n \"{\": \"{\",\n \"}\": \"{\"\n };\n do {\n if (token.value.match(/[{}()\\[\\]]/g)) {\n for (; i < token.value.length && !found; i++) {\n if (!brackets[token.value[i]]) {\n continue;\n }\n bracketType = brackets[token.value[i]] + '.' + token.type.replace(\"rparen\", \"lparen\");\n if (isNaN(depth[bracketType])) {\n depth[bracketType] = 0;\n }\n switch (token.value[i]) {\n case '(':\n case '[':\n case '{':\n depth[bracketType]++;\n break;\n case ')':\n case ']':\n case '}':\n depth[bracketType]--;\n if (depth[bracketType] === -1) {\n matchType = 'bracket';\n found = true;\n }\n break;\n }\n }\n }\n else if (token.type.indexOf('tag-name') !== -1) {\n if (isNaN(depth[token.value])) {\n depth[token.value] = 0;\n }\n if (prevToken.value === '<' && tokenCount > 1) {\n depth[token.value]++;\n }\n else if (prevToken.value === '= 0; --i) {\n if (this.$tryReplace(ranges[i], replacement)) {\n replaced++;\n }\n }\n this.selection.setSelectionRange(selection);\n return replaced;\n };\n Editor.prototype.$tryReplace = function (range, replacement) {\n var input = this.session.getTextRange(range);\n replacement = this.$search.replace(input, replacement);\n if (replacement !== null) {\n range.end = this.session.replace(range, replacement);\n return range;\n }\n else {\n return null;\n }\n };\n Editor.prototype.getLastSearchOptions = function () {\n return this.$search.getOptions();\n };\n Editor.prototype.find = function (needle, options, animate) {\n if (!options)\n options = {};\n if (typeof needle == \"string\" || needle instanceof RegExp)\n options.needle = needle;\n else if (typeof needle == \"object\")\n oop.mixin(options, needle);\n var range = this.selection.getRange();\n if (options.needle == null) {\n needle = this.session.getTextRange(range)\n || this.$search.$options.needle;\n if (!needle) {\n range = this.session.getWordRange(range.start.row, range.start.column);\n needle = this.session.getTextRange(range);\n }\n this.$search.set({ needle: needle });\n }\n this.$search.set(options);\n if (!options.start)\n this.$search.set({ start: range });\n var newRange = this.$search.find(this.session);\n if (options.preventScroll)\n return newRange;\n if (newRange) {\n this.revealRange(newRange, animate);\n return newRange;\n }\n if (options.backwards)\n range.start = range.end;\n else\n range.end = range.start;\n this.selection.setRange(range);\n };\n Editor.prototype.findNext = function (options, animate) {\n this.find({ skipCurrent: true, backwards: false }, options, animate);\n };\n Editor.prototype.findPrevious = function (options, animate) {\n this.find(options, { skipCurrent: true, backwards: true }, animate);\n };\n Editor.prototype.revealRange = function (range, animate) {\n this.session.unfold(range);\n this.selection.setSelectionRange(range);\n var scrollTop = this.renderer.scrollTop;\n this.renderer.scrollSelectionIntoView(range.start, range.end, 0.5);\n if (animate !== false)\n this.renderer.animateScrolling(scrollTop);\n };\n Editor.prototype.undo = function () {\n this.session.getUndoManager().undo(this.session);\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n Editor.prototype.redo = function () {\n this.session.getUndoManager().redo(this.session);\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n Editor.prototype.destroy = function () {\n if (this.$toDestroy) {\n this.$toDestroy.forEach(function (el) {\n el.destroy();\n });\n this.$toDestroy = null;\n }\n if (this.$mouseHandler)\n this.$mouseHandler.destroy();\n this.renderer.destroy();\n this._signal(\"destroy\", this);\n if (this.session)\n this.session.destroy();\n if (this._$emitInputEvent)\n this._$emitInputEvent.cancel();\n this.removeAllListeners();\n };\n Editor.prototype.setAutoScrollEditorIntoView = function (enable) {\n if (!enable)\n return;\n var rect;\n var self = this;\n var shouldScroll = false;\n if (!this.$scrollAnchor)\n this.$scrollAnchor = document.createElement(\"div\");\n var scrollAnchor = this.$scrollAnchor;\n scrollAnchor.style.cssText = \"position:absolute\";\n this.container.insertBefore(scrollAnchor, this.container.firstChild);\n var onChangeSelection = this.on(\"changeSelection\", function () {\n shouldScroll = true;\n });\n var onBeforeRender = this.renderer.on(\"beforeRender\", function () {\n if (shouldScroll)\n rect = self.renderer.container.getBoundingClientRect();\n });\n var onAfterRender = this.renderer.on(\"afterRender\", function () {\n if (shouldScroll && rect && (self.isFocused()\n || self.searchBox && self.searchBox.isFocused())) {\n var renderer = self.renderer;\n var pos = renderer.$cursorLayer.$pixelPos;\n var config = renderer.layerConfig;\n var top = pos.top - config.offset;\n if (pos.top >= 0 && top + rect.top < 0) {\n shouldScroll = true;\n }\n else if (pos.top < config.height &&\n pos.top + rect.top + config.lineHeight > window.innerHeight) {\n shouldScroll = false;\n }\n else {\n shouldScroll = null;\n }\n if (shouldScroll != null) {\n scrollAnchor.style.top = top + \"px\";\n scrollAnchor.style.left = pos.left + \"px\";\n scrollAnchor.style.height = config.lineHeight + \"px\";\n scrollAnchor.scrollIntoView(shouldScroll);\n }\n shouldScroll = rect = null;\n }\n });\n this.setAutoScrollEditorIntoView = function (enable) {\n if (enable)\n return;\n delete this.setAutoScrollEditorIntoView;\n this.off(\"changeSelection\", onChangeSelection);\n this.renderer.off(\"afterRender\", onAfterRender);\n this.renderer.off(\"beforeRender\", onBeforeRender);\n };\n };\n Editor.prototype.$resetCursorStyle = function () {\n var style = this.$cursorStyle || \"ace\";\n var cursorLayer = this.renderer.$cursorLayer;\n if (!cursorLayer)\n return;\n cursorLayer.setSmoothBlinking(/smooth/.test(style));\n cursorLayer.isBlinking = !this.$readOnly && style != \"wide\";\n dom.setCssClass(cursorLayer.element, \"ace_slim-cursors\", /slim/.test(style));\n };\n Editor.prototype.prompt = function (message, options, callback) {\n var editor = this;\n config.loadModule(\"ace/ext/prompt\", function (module) {\n module.prompt(editor, message, options, callback);\n });\n };\n return Editor;\n}());\nEditor.$uid = 0;\nEditor.prototype.curOp = null;\nEditor.prototype.prevOp = {};\nEditor.prototype.$mergeableCommands = [\"backspace\", \"del\", \"insertstring\"];\nEditor.prototype.$toggleWordPairs = [\n [\"first\", \"last\"],\n [\"true\", \"false\"],\n [\"yes\", \"no\"],\n [\"width\", \"height\"],\n [\"top\", \"bottom\"],\n [\"right\", \"left\"],\n [\"on\", \"off\"],\n [\"x\", \"y\"],\n [\"get\", \"set\"],\n [\"max\", \"min\"],\n [\"horizontal\", \"vertical\"],\n [\"show\", \"hide\"],\n [\"add\", \"remove\"],\n [\"up\", \"down\"],\n [\"before\", \"after\"],\n [\"even\", \"odd\"],\n [\"in\", \"out\"],\n [\"inside\", \"outside\"],\n [\"next\", \"previous\"],\n [\"increase\", \"decrease\"],\n [\"attach\", \"detach\"],\n [\"&&\", \"||\"],\n [\"==\", \"!=\"]\n];\noop.implement(Editor.prototype, EventEmitter);\nconfig.defineOptions(Editor.prototype, \"editor\", {\n selectionStyle: {\n set: function (style) {\n this.onSelectionChange();\n this._signal(\"changeSelectionStyle\", { data: style });\n },\n initialValue: \"line\"\n },\n highlightActiveLine: {\n set: function () { this.$updateHighlightActiveLine(); },\n initialValue: true\n },\n highlightSelectedWord: {\n set: function (shouldHighlight) { this.$onSelectionChange(); },\n initialValue: true\n },\n readOnly: {\n set: function (readOnly) {\n this.textInput.setReadOnly(readOnly);\n this.$resetCursorStyle();\n },\n initialValue: false\n },\n copyWithEmptySelection: {\n set: function (value) {\n this.textInput.setCopyWithEmptySelection(value);\n },\n initialValue: false\n },\n cursorStyle: {\n set: function (val) { this.$resetCursorStyle(); },\n values: [\"ace\", \"slim\", \"smooth\", \"wide\"],\n initialValue: \"ace\"\n },\n mergeUndoDeltas: {\n values: [false, true, \"always\"],\n initialValue: true\n },\n behavioursEnabled: { initialValue: true },\n wrapBehavioursEnabled: { initialValue: true },\n enableAutoIndent: { initialValue: true },\n autoScrollEditorIntoView: {\n set: function (val) { this.setAutoScrollEditorIntoView(val); }\n },\n keyboardHandler: {\n set: function (val) { this.setKeyboardHandler(val); },\n get: function () { return this.$keybindingId; },\n handlesSet: true\n },\n value: {\n set: function (val) { this.session.setValue(val); },\n get: function () { return this.getValue(); },\n handlesSet: true,\n hidden: true\n },\n session: {\n set: function (val) { this.setSession(val); },\n get: function () { return this.session; },\n handlesSet: true,\n hidden: true\n },\n showLineNumbers: {\n set: function (show) {\n this.renderer.$gutterLayer.setShowLineNumbers(show);\n this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER);\n if (show && this.$relativeLineNumbers)\n relativeNumberRenderer.attach(this);\n else\n relativeNumberRenderer.detach(this);\n },\n initialValue: true\n },\n relativeLineNumbers: {\n set: function (value) {\n if (this.$showLineNumbers && value)\n relativeNumberRenderer.attach(this);\n else\n relativeNumberRenderer.detach(this);\n }\n },\n placeholder: {\n set: function (message) {\n if (!this.$updatePlaceholder) {\n this.$updatePlaceholder = function () {\n var hasValue = this.session && (this.renderer.$composition ||\n this.session.getLength() > 1 || this.session.getLine(0).length > 0);\n if (hasValue && this.renderer.placeholderNode) {\n this.renderer.off(\"afterRender\", this.$updatePlaceholder);\n dom.removeCssClass(this.container, \"ace_hasPlaceholder\");\n this.renderer.placeholderNode.remove();\n this.renderer.placeholderNode = null;\n }\n else if (!hasValue && !this.renderer.placeholderNode) {\n this.renderer.on(\"afterRender\", this.$updatePlaceholder);\n dom.addCssClass(this.container, \"ace_hasPlaceholder\");\n var el = dom.createElement(\"div\");\n el.className = \"ace_placeholder\";\n el.textContent = this.$placeholder || \"\";\n this.renderer.placeholderNode = el;\n this.renderer.content.appendChild(this.renderer.placeholderNode);\n }\n else if (!hasValue && this.renderer.placeholderNode) {\n this.renderer.placeholderNode.textContent = this.$placeholder || \"\";\n }\n }.bind(this);\n this.on(\"input\", this.$updatePlaceholder);\n }\n this.$updatePlaceholder();\n }\n },\n enableKeyboardAccessibility: {\n set: function (value) {\n var blurCommand = {\n name: \"blurTextInput\",\n description: \"Set focus to the editor content div to allow tabbing through the page\",\n bindKey: \"Esc\",\n exec: function (editor) {\n editor.blur();\n editor.renderer.scroller.focus();\n },\n readOnly: true\n };\n var focusOnEnterKeyup = function (e) {\n if (e.target == this.renderer.scroller && e.keyCode === keys['enter']) {\n e.preventDefault();\n var row = this.getCursorPosition().row;\n if (!this.isRowVisible(row))\n this.scrollToLine(row, true, true);\n this.focus();\n }\n };\n var gutterKeyboardHandler;\n if (value) {\n this.renderer.enableKeyboardAccessibility = true;\n this.renderer.keyboardFocusClassName = \"ace_keyboard-focus\";\n this.textInput.getElement().setAttribute(\"tabindex\", -1);\n this.textInput.setNumberOfExtraLines(useragent.isWin ? 3 : 0);\n this.renderer.scroller.setAttribute(\"tabindex\", 0);\n this.renderer.scroller.setAttribute(\"role\", \"group\");\n this.renderer.scroller.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName);\n this.renderer.scroller.setAttribute(\"aria-label\", nls(\"Editor content, press Enter to start editing, press Escape to exit\"));\n this.renderer.scroller.addEventListener(\"keyup\", focusOnEnterKeyup.bind(this));\n this.commands.addCommand(blurCommand);\n this.renderer.$gutter.setAttribute(\"tabindex\", 0);\n this.renderer.$gutter.setAttribute(\"aria-hidden\", false);\n this.renderer.$gutter.setAttribute(\"role\", \"group\");\n this.renderer.$gutter.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n this.renderer.$gutter.setAttribute(\"aria-label\", nls(\"Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit\"));\n this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName);\n this.renderer.content.setAttribute(\"aria-hidden\", true);\n if (!gutterKeyboardHandler)\n gutterKeyboardHandler = new GutterKeyboardHandler(this);\n gutterKeyboardHandler.addListener();\n }\n else {\n this.renderer.enableKeyboardAccessibility = false;\n this.textInput.getElement().setAttribute(\"tabindex\", 0);\n this.textInput.setNumberOfExtraLines(0);\n this.renderer.scroller.setAttribute(\"tabindex\", -1);\n this.renderer.scroller.removeAttribute(\"role\");\n this.renderer.scroller.removeAttribute(\"aria-roledescription\");\n this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName);\n this.renderer.scroller.removeAttribute(\"aria-label\");\n this.renderer.scroller.removeEventListener(\"keyup\", focusOnEnterKeyup.bind(this));\n this.commands.removeCommand(blurCommand);\n this.renderer.content.removeAttribute(\"aria-hidden\");\n this.renderer.$gutter.setAttribute(\"tabindex\", -1);\n this.renderer.$gutter.setAttribute(\"aria-hidden\", true);\n this.renderer.$gutter.removeAttribute(\"role\");\n this.renderer.$gutter.removeAttribute(\"aria-roledescription\");\n this.renderer.$gutter.removeAttribute(\"aria-label\");\n this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName);\n if (gutterKeyboardHandler)\n gutterKeyboardHandler.removeListener();\n }\n },\n initialValue: false\n },\n customScrollbar: \"renderer\",\n hScrollBarAlwaysVisible: \"renderer\",\n vScrollBarAlwaysVisible: \"renderer\",\n highlightGutterLine: \"renderer\",\n animatedScroll: \"renderer\",\n showInvisibles: \"renderer\",\n showPrintMargin: \"renderer\",\n printMarginColumn: \"renderer\",\n printMargin: \"renderer\",\n fadeFoldWidgets: \"renderer\",\n showFoldWidgets: \"renderer\",\n displayIndentGuides: \"renderer\",\n highlightIndentGuides: \"renderer\",\n showGutter: \"renderer\",\n fontSize: \"renderer\",\n fontFamily: \"renderer\",\n maxLines: \"renderer\",\n minLines: \"renderer\",\n scrollPastEnd: \"renderer\",\n fixedWidthGutter: \"renderer\",\n theme: \"renderer\",\n hasCssTransforms: \"renderer\",\n maxPixelHeight: \"renderer\",\n useTextareaForIME: \"renderer\",\n useResizeObserver: \"renderer\",\n useSvgGutterIcons: \"renderer\",\n showFoldedAnnotations: \"renderer\",\n scrollSpeed: \"$mouseHandler\",\n dragDelay: \"$mouseHandler\",\n dragEnabled: \"$mouseHandler\",\n focusTimeout: \"$mouseHandler\",\n tooltipFollowsMouse: \"$mouseHandler\",\n firstLineNumber: \"session\",\n overwrite: \"session\",\n newLineMode: \"session\",\n useWorker: \"session\",\n useSoftTabs: \"session\",\n navigateWithinSoftTabs: \"session\",\n tabSize: \"session\",\n wrap: \"session\",\n indentedSoftWrap: \"session\",\n foldStyle: \"session\",\n mode: \"session\"\n});\nvar relativeNumberRenderer = {\n getText: function (session, row) {\n return (Math.abs(session.selection.lead.row - row) || (row + 1 + (row < 9 ? \"\\xb7\" : \"\"))) + \"\";\n },\n getWidth: function (session, lastLineNumber, config) {\n return Math.max(lastLineNumber.toString().length, (config.lastRow + 1).toString().length, 2) * config.characterWidth;\n },\n update: function (e, editor) {\n editor.renderer.$loop.schedule(editor.renderer.CHANGE_GUTTER);\n },\n attach: function (editor) {\n editor.renderer.$gutterLayer.$renderer = this;\n editor.on(\"changeSelection\", this.update);\n this.update(null, editor);\n },\n detach: function (editor) {\n if (editor.renderer.$gutterLayer.$renderer == this)\n editor.renderer.$gutterLayer.$renderer = null;\n editor.off(\"changeSelection\", this.update);\n this.update(null, editor);\n }\n};\nexports.Editor = Editor;\n\n});\n\nace.define(\"ace/layer/lines\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar Lines = /** @class */ (function () {\n function Lines(element, canvasHeight) {\n this.element = element;\n this.canvasHeight = canvasHeight || 500000;\n this.element.style.height = (this.canvasHeight * 2) + \"px\";\n this.cells = [];\n this.cellCache = [];\n this.$offsetCoefficient = 0;\n }\n Lines.prototype.moveContainer = function (config) {\n dom.translate(this.element, 0, -((config.firstRowScreen * config.lineHeight) % this.canvasHeight) - config.offset * this.$offsetCoefficient);\n };\n Lines.prototype.pageChanged = function (oldConfig, newConfig) {\n return (Math.floor((oldConfig.firstRowScreen * oldConfig.lineHeight) / this.canvasHeight) !==\n Math.floor((newConfig.firstRowScreen * newConfig.lineHeight) / this.canvasHeight));\n };\n Lines.prototype.computeLineTop = function (row, config, session) {\n var screenTop = config.firstRowScreen * config.lineHeight;\n var screenPage = Math.floor(screenTop / this.canvasHeight);\n var lineTop = session.documentToScreenRow(row, 0) * config.lineHeight;\n return lineTop - (screenPage * this.canvasHeight);\n };\n Lines.prototype.computeLineHeight = function (row, config, session) {\n return config.lineHeight * session.getRowLineCount(row);\n };\n Lines.prototype.getLength = function () {\n return this.cells.length;\n };\n Lines.prototype.get = function (index) {\n return this.cells[index];\n };\n Lines.prototype.shift = function () {\n this.$cacheCell(this.cells.shift());\n };\n Lines.prototype.pop = function () {\n this.$cacheCell(this.cells.pop());\n };\n Lines.prototype.push = function (cell) {\n if (Array.isArray(cell)) {\n this.cells.push.apply(this.cells, cell);\n var fragment = dom.createFragment(this.element);\n for (var i = 0; i < cell.length; i++) {\n fragment.appendChild(cell[i].element);\n }\n this.element.appendChild(fragment);\n }\n else {\n this.cells.push(cell);\n this.element.appendChild(cell.element);\n }\n };\n Lines.prototype.unshift = function (cell) {\n if (Array.isArray(cell)) {\n this.cells.unshift.apply(this.cells, cell);\n var fragment = dom.createFragment(this.element);\n for (var i = 0; i < cell.length; i++) {\n fragment.appendChild(cell[i].element);\n }\n if (this.element.firstChild)\n this.element.insertBefore(fragment, this.element.firstChild);\n else\n this.element.appendChild(fragment);\n }\n else {\n this.cells.unshift(cell);\n this.element.insertAdjacentElement(\"afterbegin\", cell.element);\n }\n };\n Lines.prototype.last = function () {\n if (this.cells.length)\n return this.cells[this.cells.length - 1];\n else\n return null;\n };\n Lines.prototype.$cacheCell = function (cell) {\n if (!cell)\n return;\n cell.element.remove();\n this.cellCache.push(cell);\n };\n Lines.prototype.createCell = function (row, config, session, initElement) {\n var cell = this.cellCache.pop();\n if (!cell) {\n var element = dom.createElement(\"div\");\n if (initElement)\n initElement(element);\n this.element.appendChild(element);\n cell = {\n element: element,\n text: \"\",\n row: row\n };\n }\n cell.row = row;\n return cell;\n };\n return Lines;\n}());\nexports.Lines = Lines;\n\n});\n\nace.define(\"ace/layer/gutter\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/layer/lines\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar Lines = require(\"./lines\").Lines;\nvar nls = require(\"../config\").nls;\nvar Gutter = /** @class */ (function () {\n function Gutter(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_gutter-layer\";\n parentEl.appendChild(this.element);\n this.setShowFoldWidgets(this.$showFoldWidgets);\n this.gutterWidth = 0;\n this.$annotations = [];\n this.$updateAnnotations = this.$updateAnnotations.bind(this);\n this.$lines = new Lines(this.element);\n this.$lines.$offsetCoefficient = 1;\n }\n Gutter.prototype.setSession = function (session) {\n if (this.session)\n this.session.off(\"change\", this.$updateAnnotations);\n this.session = session;\n if (session)\n session.on(\"change\", this.$updateAnnotations);\n };\n Gutter.prototype.addGutterDecoration = function (row, className) {\n if (window.console)\n console.warn && console.warn(\"deprecated use session.addGutterDecoration\");\n this.session.addGutterDecoration(row, className);\n };\n Gutter.prototype.removeGutterDecoration = function (row, className) {\n if (window.console)\n console.warn && console.warn(\"deprecated use session.removeGutterDecoration\");\n this.session.removeGutterDecoration(row, className);\n };\n Gutter.prototype.setAnnotations = function (annotations) {\n this.$annotations = [];\n for (var i = 0; i < annotations.length; i++) {\n var annotation = annotations[i];\n var row = annotation.row;\n var rowInfo = this.$annotations[row];\n if (!rowInfo)\n rowInfo = this.$annotations[row] = { text: [], type: [] };\n var annoText = annotation.text;\n var annoType = annotation.type;\n annoText = annoText ? lang.escapeHTML(annoText) : annotation.html || \"\";\n if (rowInfo.text.indexOf(annoText) === -1) {\n rowInfo.text.push(annoText);\n rowInfo.type.push(annoType);\n }\n var className = annotation.className;\n if (className)\n rowInfo.className = className;\n else if (annoType == \"error\")\n rowInfo.className = \" ace_error\";\n else if (annoType == \"warning\" && rowInfo.className != \" ace_error\")\n rowInfo.className = \" ace_warning\";\n else if (annoType == \"info\" && (!rowInfo.className))\n rowInfo.className = \" ace_info\";\n }\n };\n Gutter.prototype.$updateAnnotations = function (delta) {\n if (!this.$annotations.length)\n return;\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n }\n else if (delta.action == 'remove') {\n this.$annotations.splice(firstRow, len + 1, null);\n }\n else {\n var args = new Array(len + 1);\n args.unshift(firstRow, 1);\n this.$annotations.splice.apply(this.$annotations, args);\n }\n };\n Gutter.prototype.update = function (config) {\n this.config = config;\n var session = this.session;\n var firstRow = config.firstRow;\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n session.getLength() - 1);\n this.oldLastRow = lastRow;\n this.config = config;\n this.$lines.moveContainer(config);\n this.$updateCursorRow();\n var fold = session.getNextFoldLine(firstRow);\n var foldStart = fold ? fold.start.row : Infinity;\n var cell = null;\n var index = -1;\n var row = firstRow;\n while (true) {\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = session.getNextFoldLine(row, fold);\n foldStart = fold ? fold.start.row : Infinity;\n }\n if (row > lastRow) {\n while (this.$lines.getLength() > index + 1)\n this.$lines.pop();\n break;\n }\n cell = this.$lines.get(++index);\n if (cell) {\n cell.row = row;\n }\n else {\n cell = this.$lines.createCell(row, config, this.session, onCreateCell);\n this.$lines.push(cell);\n }\n this.$renderCell(cell, config, fold, row);\n row++;\n }\n this._signal(\"afterRender\");\n this.$updateGutterWidth(config);\n };\n Gutter.prototype.$updateGutterWidth = function (config) {\n var session = this.session;\n var gutterRenderer = session.gutterRenderer || this.$renderer;\n var firstLineNumber = session.$firstLineNumber;\n var lastLineText = this.$lines.last() ? this.$lines.last().text : \"\";\n if (this.$fixedWidth || session.$useWrapMode)\n lastLineText = session.getLength() + firstLineNumber - 1;\n var gutterWidth = gutterRenderer\n ? gutterRenderer.getWidth(session, lastLineText, config)\n : lastLineText.toString().length * config.characterWidth;\n var padding = this.$padding || this.$computePadding();\n gutterWidth += padding.left + padding.right;\n if (gutterWidth !== this.gutterWidth && !isNaN(gutterWidth)) {\n this.gutterWidth = gutterWidth;\n this.element.parentNode.style.width =\n this.element.style.width = Math.ceil(this.gutterWidth) + \"px\";\n this._signal(\"changeGutterWidth\", gutterWidth);\n }\n };\n Gutter.prototype.$updateCursorRow = function () {\n if (!this.$highlightGutterLine)\n return;\n var position = this.session.selection.getCursor();\n if (this.$cursorRow === position.row)\n return;\n this.$cursorRow = position.row;\n };\n Gutter.prototype.updateLineHighlight = function () {\n if (!this.$highlightGutterLine)\n return;\n var row = this.session.selection.cursor.row;\n this.$cursorRow = row;\n if (this.$cursorCell && this.$cursorCell.row == row)\n return;\n if (this.$cursorCell)\n this.$cursorCell.element.className = this.$cursorCell.element.className.replace(\"ace_gutter-active-line \", \"\");\n var cells = this.$lines.cells;\n this.$cursorCell = null;\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n if (cell.row >= this.$cursorRow) {\n if (cell.row > this.$cursorRow) {\n var fold = this.session.getFoldLine(this.$cursorRow);\n if (i > 0 && fold && fold.start.row == cells[i - 1].row)\n cell = cells[i - 1];\n else\n break;\n }\n cell.element.className = \"ace_gutter-active-line \" + cell.element.className;\n this.$cursorCell = cell;\n break;\n }\n }\n };\n Gutter.prototype.scrollLines = function (config) {\n var oldConfig = this.config;\n this.config = config;\n this.$updateCursorRow();\n if (this.$lines.pageChanged(oldConfig, config))\n return this.update(config);\n this.$lines.moveContainer(config);\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n this.session.getLength() - 1);\n var oldLastRow = this.oldLastRow;\n this.oldLastRow = lastRow;\n if (!oldConfig || oldLastRow < config.firstRow)\n return this.update(config);\n if (lastRow < oldConfig.firstRow)\n return this.update(config);\n if (oldConfig.firstRow < config.firstRow)\n for (var row = this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row > 0; row--)\n this.$lines.shift();\n if (oldLastRow > lastRow)\n for (var row = this.session.getFoldedRowCount(lastRow + 1, oldLastRow); row > 0; row--)\n this.$lines.pop();\n if (config.firstRow < oldConfig.firstRow) {\n this.$lines.unshift(this.$renderLines(config, config.firstRow, oldConfig.firstRow - 1));\n }\n if (lastRow > oldLastRow) {\n this.$lines.push(this.$renderLines(config, oldLastRow + 1, lastRow));\n }\n this.updateLineHighlight();\n this._signal(\"afterRender\");\n this.$updateGutterWidth(config);\n };\n Gutter.prototype.$renderLines = function (config, firstRow, lastRow) {\n var fragment = [];\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n var cell = this.$lines.createCell(row, config, this.session, onCreateCell);\n this.$renderCell(cell, config, foldLine, row);\n fragment.push(cell);\n row++;\n }\n return fragment;\n };\n Gutter.prototype.$renderCell = function (cell, config, fold, row) {\n var element = cell.element;\n var session = this.session;\n var textNode = element.childNodes[0];\n var foldWidget = element.childNodes[1];\n var annotationNode = element.childNodes[2];\n var annotationIconNode = annotationNode.firstChild;\n var firstLineNumber = session.$firstLineNumber;\n var breakpoints = session.$breakpoints;\n var decorations = session.$decorations;\n var gutterRenderer = session.gutterRenderer || this.$renderer;\n var foldWidgets = this.$showFoldWidgets && session.foldWidgets;\n var foldStart = fold ? fold.start.row : Number.MAX_VALUE;\n var lineHeight = config.lineHeight + \"px\";\n var className = this.$useSvgGutterIcons ? \"ace_gutter-cell_svg-icons \" : \"ace_gutter-cell \";\n var iconClassName = this.$useSvgGutterIcons ? \"ace_icon_svg\" : \"ace_icon\";\n var rowText = (gutterRenderer\n ? gutterRenderer.getText(session, row)\n : row + firstLineNumber).toString();\n if (this.$highlightGutterLine) {\n if (row == this.$cursorRow || (fold && row < this.$cursorRow && row >= foldStart && this.$cursorRow <= fold.end.row)) {\n className += \"ace_gutter-active-line \";\n if (this.$cursorCell != cell) {\n if (this.$cursorCell)\n this.$cursorCell.element.className = this.$cursorCell.element.className.replace(\"ace_gutter-active-line \", \"\");\n this.$cursorCell = cell;\n }\n }\n }\n if (breakpoints[row])\n className += breakpoints[row];\n if (decorations[row])\n className += decorations[row];\n if (this.$annotations[row] && row !== foldStart)\n className += this.$annotations[row].className;\n if (foldWidgets) {\n var c = foldWidgets[row];\n if (c == null)\n c = foldWidgets[row] = session.getFoldWidget(row);\n }\n if (c) {\n var foldClass = \"ace_fold-widget ace_\" + c;\n var isClosedFold = c == \"start\" && row == foldStart && row < fold.end.row;\n if (isClosedFold) {\n foldClass += \" ace_closed\";\n var foldAnnotationClass = '';\n var annotationInFold = false;\n for (var i = row + 1; i <= fold.end.row; i++) {\n if (!this.$annotations[i])\n continue;\n if (this.$annotations[i].className === \" ace_error\") {\n annotationInFold = true;\n foldAnnotationClass = \" ace_error_fold\";\n break;\n }\n if (this.$annotations[i].className === \" ace_warning\") {\n annotationInFold = true;\n foldAnnotationClass = \" ace_warning_fold\";\n continue;\n }\n }\n className += foldAnnotationClass;\n }\n else\n foldClass += \" ace_open\";\n if (foldWidget.className != foldClass)\n foldWidget.className = foldClass;\n dom.setStyle(foldWidget.style, \"height\", lineHeight);\n dom.setStyle(foldWidget.style, \"display\", \"inline-block\");\n foldWidget.setAttribute(\"role\", \"button\");\n foldWidget.setAttribute(\"tabindex\", \"-1\");\n var foldRange = session.getFoldWidgetRange(row);\n if (foldRange)\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, rows $0 through $1\", [foldRange.start.row + 1, foldRange.end.row + 1]));\n else {\n if (fold)\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, rows $0 through $1\", [fold.start.row + 1, fold.end.row + 1]));\n else\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, row $0\", [row + 1]));\n }\n if (isClosedFold) {\n foldWidget.setAttribute(\"aria-expanded\", \"false\");\n foldWidget.setAttribute(\"title\", nls(\"Unfold code\"));\n }\n else {\n foldWidget.setAttribute(\"aria-expanded\", \"true\");\n foldWidget.setAttribute(\"title\", nls(\"Fold code\"));\n }\n }\n else {\n if (foldWidget) {\n dom.setStyle(foldWidget.style, \"display\", \"none\");\n foldWidget.setAttribute(\"tabindex\", \"0\");\n foldWidget.removeAttribute(\"role\");\n foldWidget.removeAttribute(\"aria-label\");\n }\n }\n if (annotationInFold && this.$showFoldedAnnotations) {\n annotationNode.className = \"ace_gutter_annotation\";\n annotationIconNode.className = iconClassName;\n annotationIconNode.className += foldAnnotationClass;\n dom.setStyle(annotationIconNode.style, \"height\", lineHeight);\n dom.setStyle(annotationNode.style, \"display\", \"block\");\n dom.setStyle(annotationNode.style, \"height\", lineHeight);\n annotationNode.setAttribute(\"aria-label\", nls(\"Read annotations row $0\", [rowText]));\n annotationNode.setAttribute(\"tabindex\", \"-1\");\n annotationNode.setAttribute(\"role\", \"button\");\n }\n else if (this.$annotations[row]) {\n annotationNode.className = \"ace_gutter_annotation\";\n annotationIconNode.className = iconClassName;\n if (this.$useSvgGutterIcons)\n annotationIconNode.className += this.$annotations[row].className;\n else\n element.classList.add(this.$annotations[row].className.replace(\" \", \"\"));\n dom.setStyle(annotationIconNode.style, \"height\", lineHeight);\n dom.setStyle(annotationNode.style, \"display\", \"block\");\n dom.setStyle(annotationNode.style, \"height\", lineHeight);\n annotationNode.setAttribute(\"aria-label\", nls(\"Read annotations row $0\", [rowText]));\n annotationNode.setAttribute(\"tabindex\", \"-1\");\n annotationNode.setAttribute(\"role\", \"button\");\n }\n else {\n dom.setStyle(annotationNode.style, \"display\", \"none\");\n annotationNode.removeAttribute(\"aria-label\");\n annotationNode.removeAttribute(\"role\");\n annotationNode.setAttribute(\"tabindex\", \"0\");\n }\n if (rowText !== textNode.data) {\n textNode.data = rowText;\n }\n if (element.className != className)\n element.className = className;\n dom.setStyle(cell.element.style, \"height\", this.$lines.computeLineHeight(row, config, session) + \"px\");\n dom.setStyle(cell.element.style, \"top\", this.$lines.computeLineTop(row, config, session) + \"px\");\n cell.text = rowText;\n if (annotationNode.style.display === \"none\" && foldWidget.style.display === \"none\")\n cell.element.setAttribute(\"aria-hidden\", true);\n else\n cell.element.setAttribute(\"aria-hidden\", false);\n return cell;\n };\n Gutter.prototype.setHighlightGutterLine = function (highlightGutterLine) {\n this.$highlightGutterLine = highlightGutterLine;\n };\n Gutter.prototype.setShowLineNumbers = function (show) {\n this.$renderer = !show && {\n getWidth: function () { return 0; },\n getText: function () { return \"\"; }\n };\n };\n Gutter.prototype.getShowLineNumbers = function () {\n return this.$showLineNumbers;\n };\n Gutter.prototype.setShowFoldWidgets = function (show) {\n if (show)\n dom.addCssClass(this.element, \"ace_folding-enabled\");\n else\n dom.removeCssClass(this.element, \"ace_folding-enabled\");\n this.$showFoldWidgets = show;\n this.$padding = null;\n };\n Gutter.prototype.getShowFoldWidgets = function () {\n return this.$showFoldWidgets;\n };\n Gutter.prototype.$computePadding = function () {\n if (!this.element.firstChild)\n return { left: 0, right: 0 };\n var style = dom.computedStyle(this.element.firstChild);\n this.$padding = {};\n this.$padding.left = (parseInt(style.borderLeftWidth) || 0)\n + (parseInt(style.paddingLeft) || 0) + 1;\n this.$padding.right = (parseInt(style.borderRightWidth) || 0)\n + (parseInt(style.paddingRight) || 0);\n return this.$padding;\n };\n Gutter.prototype.getRegion = function (point) {\n var padding = this.$padding || this.$computePadding();\n var rect = this.element.getBoundingClientRect();\n if (point.x < padding.left + rect.left)\n return \"markers\";\n if (this.$showFoldWidgets && point.x > rect.right - padding.right)\n return \"foldWidgets\";\n };\n return Gutter;\n}());\nGutter.prototype.$fixedWidth = false;\nGutter.prototype.$highlightGutterLine = true;\nGutter.prototype.$renderer = \"\";\nGutter.prototype.$showLineNumbers = true;\nGutter.prototype.$showFoldWidgets = true;\noop.implement(Gutter.prototype, EventEmitter);\nfunction onCreateCell(element) {\n var textNode = document.createTextNode('');\n element.appendChild(textNode);\n var foldWidget = dom.createElement(\"span\");\n element.appendChild(foldWidget);\n var annotationNode = dom.createElement(\"span\");\n element.appendChild(annotationNode);\n var annotationIconNode = dom.createElement(\"span\");\n annotationNode.appendChild(annotationIconNode);\n return element;\n}\nexports.Gutter = Gutter;\n\n});\n\nace.define(\"ace/layer/marker\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar dom = require(\"../lib/dom\");\nvar Marker = /** @class */ (function () {\n function Marker(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_marker-layer\";\n parentEl.appendChild(this.element);\n }\n Marker.prototype.setPadding = function (padding) {\n this.$padding = padding;\n };\n Marker.prototype.setSession = function (session) {\n this.session = session;\n };\n Marker.prototype.setMarkers = function (markers) {\n this.markers = markers;\n };\n Marker.prototype.elt = function (className, css) {\n var x = this.i != -1 && this.element.childNodes[this.i];\n if (!x) {\n x = document.createElement(\"div\");\n this.element.appendChild(x);\n this.i = -1;\n }\n else {\n this.i++;\n }\n x.style.cssText = css;\n x.className = className;\n };\n Marker.prototype.update = function (config) {\n if (!config)\n return;\n this.config = config;\n this.i = 0;\n var html;\n for (var key in this.markers) {\n var marker = this.markers[key];\n if (!marker.range) {\n marker.update(html, this, this.session, config);\n continue;\n }\n var range = marker.range.clipRows(config.firstRow, config.lastRow);\n if (range.isEmpty())\n continue;\n range = range.toScreenRange(this.session);\n if (marker.renderer) {\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n marker.renderer(html, range, left, top, config);\n }\n else if (marker.type == \"fullLine\") {\n this.drawFullLineMarker(html, range, marker.clazz, config);\n }\n else if (marker.type == \"screenLine\") {\n this.drawScreenLineMarker(html, range, marker.clazz, config);\n }\n else if (range.isMultiLine()) {\n if (marker.type == \"text\")\n this.drawTextMarker(html, range, marker.clazz, config);\n else\n this.drawMultiLineMarker(html, range, marker.clazz, config);\n }\n else {\n this.drawSingleLineMarker(html, range, marker.clazz + \" ace_start\" + \" ace_br15\", config);\n }\n }\n if (this.i != -1) {\n while (this.i < this.element.childElementCount)\n this.element.removeChild(this.element.lastChild);\n }\n };\n Marker.prototype.$getTop = function (row, layerConfig) {\n return (row - layerConfig.firstRowScreen) * layerConfig.lineHeight;\n };\n Marker.prototype.drawTextMarker = function (stringBuilder, range, clazz, layerConfig, extraStyle) {\n var session = this.session;\n var start = range.start.row;\n var end = range.end.row;\n var row = start;\n var prev = 0;\n var curr = 0;\n var next = session.getScreenLastRowColumn(row);\n var lineRange = new Range(row, range.start.column, row, curr);\n for (; row <= end; row++) {\n lineRange.start.row = lineRange.end.row = row;\n lineRange.start.column = row == start ? range.start.column : session.getRowWrapIndent(row);\n lineRange.end.column = next;\n prev = curr;\n curr = next;\n next = row + 1 < end ? session.getScreenLastRowColumn(row + 1) : row == end ? 0 : range.end.column;\n this.drawSingleLineMarker(stringBuilder, lineRange, clazz + (row == start ? \" ace_start\" : \"\") + \" ace_br\"\n + getBorderClass(row == start || row == start + 1 && range.start.column, prev < curr, curr > next, row == end), layerConfig, row == end ? 0 : 1, extraStyle);\n }\n };\n Marker.prototype.drawMultiLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var padding = this.$padding;\n var height = config.lineHeight;\n var top = this.$getTop(range.start.row, config);\n var left = padding + range.start.column * config.characterWidth;\n extraStyle = extraStyle || \"\";\n if (this.session.$bidiHandler.isBidiRow(range.start.row)) {\n var range1 = range.clone();\n range1.end.row = range1.start.row;\n range1.end.column = this.session.getLine(range1.start.row).length;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br1 ace_start\", config, null, extraStyle);\n }\n else {\n this.elt(clazz + \" ace_br1 ace_start\", \"height:\" + height + \"px;\" + \"right:0;\" + \"top:\" + top + \"px;left:\" + left + \"px;\" + (extraStyle || \"\"));\n }\n if (this.session.$bidiHandler.isBidiRow(range.end.row)) {\n var range1 = range.clone();\n range1.start.row = range1.end.row;\n range1.start.column = 0;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br12\", config, null, extraStyle);\n }\n else {\n top = this.$getTop(range.end.row, config);\n var width = range.end.column * config.characterWidth;\n this.elt(clazz + \" ace_br12\", \"height:\" + height + \"px;\" +\n \"width:\" + width + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + padding + \"px;\" + (extraStyle || \"\"));\n }\n height = (range.end.row - range.start.row - 1) * config.lineHeight;\n if (height <= 0)\n return;\n top = this.$getTop(range.start.row + 1, config);\n var radiusClass = (range.start.column ? 1 : 0) | (range.end.column ? 0 : 8);\n this.elt(clazz + (radiusClass ? \" ace_br\" + radiusClass : \"\"), \"height:\" + height + \"px;\" +\n \"right:0;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + padding + \"px;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawSingleLineMarker = function (stringBuilder, range, clazz, config, extraLength, extraStyle) {\n if (this.session.$bidiHandler.isBidiRow(range.start.row))\n return this.drawBidiSingleLineMarker(stringBuilder, range, clazz, config, extraLength, extraStyle);\n var height = config.lineHeight;\n var width = (range.end.column + (extraLength || 0) - range.start.column) * config.characterWidth;\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"width:\" + width + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + left + \"px;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawBidiSingleLineMarker = function (stringBuilder, range, clazz, config, extraLength, extraStyle) {\n var height = config.lineHeight, top = this.$getTop(range.start.row, config), padding = this.$padding;\n var selections = this.session.$bidiHandler.getSelections(range.start.column, range.end.column);\n selections.forEach(function (selection) {\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"width:\" + (selection.width + (extraLength || 0)) + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + (padding + selection.left) + \"px;\" + (extraStyle || \"\"));\n }, this);\n };\n Marker.prototype.drawFullLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n if (range.start.row != range.end.row)\n height += this.$getTop(range.end.row, config) - top;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:0;right:0;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawScreenLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:0;right:0;\" + (extraStyle || \"\"));\n };\n return Marker;\n}());\nMarker.prototype.$padding = 0;\nfunction getBorderClass(tl, tr, br, bl) {\n return (tl ? 1 : 0) | (tr ? 2 : 0) | (br ? 4 : 0) | (bl ? 8 : 0);\n}\nexports.Marker = Marker;\n\n});\n\nace.define(\"ace/layer/text_util\",[\"require\",\"exports\",\"module\"], function(require, exports, module){// Tokens for which Ace just uses a simple TextNode and does not add any special className.\nvar textTokens = new Set([\"text\", \"rparen\", \"lparen\"]);\nexports.isTextToken = function (tokenType) {\n return textTokens.has(tokenType);\n};\n\n});\n\nace.define(\"ace/layer/text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/layer/lines\",\"ace/lib/event_emitter\",\"ace/config\",\"ace/layer/text_util\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar Lines = require(\"./lines\").Lines;\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar nls = require(\"../config\").nls;\nvar isTextToken = require(\"./text_util\").isTextToken;\nvar Text = /** @class */ (function () {\n function Text(parentEl) {\n this.dom = dom;\n this.element = this.dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_text-layer\";\n parentEl.appendChild(this.element);\n this.$updateEolChar = this.$updateEolChar.bind(this);\n this.$lines = new Lines(this.element);\n }\n Text.prototype.$updateEolChar = function () {\n var doc = this.session.doc;\n var unixMode = doc.getNewLineCharacter() == \"\\n\" && doc.getNewLineMode() != \"windows\";\n var EOL_CHAR = unixMode ? this.EOL_CHAR_LF : this.EOL_CHAR_CRLF;\n if (this.EOL_CHAR != EOL_CHAR) {\n this.EOL_CHAR = EOL_CHAR;\n return true;\n }\n };\n Text.prototype.setPadding = function (padding) {\n this.$padding = padding;\n this.element.style.margin = \"0 \" + padding + \"px\";\n };\n Text.prototype.getLineHeight = function () {\n return this.$fontMetrics.$characterSize.height || 0;\n };\n Text.prototype.getCharacterWidth = function () {\n return this.$fontMetrics.$characterSize.width || 0;\n };\n Text.prototype.$setFontMetrics = function (measure) {\n this.$fontMetrics = measure;\n this.$fontMetrics.on(\"changeCharacterSize\", function (e) {\n this._signal(\"changeCharacterSize\", e);\n }.bind(this));\n this.$pollSizeChanges();\n };\n Text.prototype.checkForSizeChanges = function () {\n this.$fontMetrics.checkForSizeChanges();\n };\n Text.prototype.$pollSizeChanges = function () {\n return this.$pollSizeChangesTimer = this.$fontMetrics.$pollSizeChanges();\n };\n Text.prototype.setSession = function (session) {\n this.session = session;\n if (session)\n this.$computeTabString();\n };\n Text.prototype.setShowInvisibles = function (showInvisibles) {\n if (this.showInvisibles == showInvisibles)\n return false;\n this.showInvisibles = showInvisibles;\n if (typeof showInvisibles == \"string\") {\n this.showSpaces = /tab/i.test(showInvisibles);\n this.showTabs = /space/i.test(showInvisibles);\n this.showEOL = /eol/i.test(showInvisibles);\n }\n else {\n this.showSpaces = this.showTabs = this.showEOL = showInvisibles;\n }\n this.$computeTabString();\n return true;\n };\n Text.prototype.setDisplayIndentGuides = function (display) {\n if (this.displayIndentGuides == display)\n return false;\n this.displayIndentGuides = display;\n this.$computeTabString();\n return true;\n };\n Text.prototype.setHighlightIndentGuides = function (highlight) {\n if (this.$highlightIndentGuides === highlight)\n return false;\n this.$highlightIndentGuides = highlight;\n return highlight;\n };\n Text.prototype.$computeTabString = function () {\n var tabSize = this.session.getTabSize();\n this.tabSize = tabSize;\n var tabStr = this.$tabStrings = [0];\n for (var i = 1; i < tabSize + 1; i++) {\n if (this.showTabs) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_tab\";\n span.textContent = lang.stringRepeat(this.TAB_CHAR, i);\n tabStr.push(span);\n }\n else {\n tabStr.push(this.dom.createTextNode(lang.stringRepeat(\" \", i), this.element));\n }\n }\n if (this.displayIndentGuides) {\n this.$indentGuideRe = /\\s\\S| \\t|\\t |\\s$/;\n var className = \"ace_indent-guide\";\n var spaceClass = this.showSpaces ? \" ace_invisible ace_invisible_space\" : \"\";\n var spaceContent = this.showSpaces\n ? lang.stringRepeat(this.SPACE_CHAR, this.tabSize)\n : lang.stringRepeat(\" \", this.tabSize);\n var tabClass = this.showTabs ? \" ace_invisible ace_invisible_tab\" : \"\";\n var tabContent = this.showTabs\n ? lang.stringRepeat(this.TAB_CHAR, this.tabSize)\n : spaceContent;\n var span = this.dom.createElement(\"span\");\n span.className = className + spaceClass;\n span.textContent = spaceContent;\n this.$tabStrings[\" \"] = span;\n var span = this.dom.createElement(\"span\");\n span.className = className + tabClass;\n span.textContent = tabContent;\n this.$tabStrings[\"\\t\"] = span;\n }\n };\n Text.prototype.updateLines = function (config, firstRow, lastRow) {\n if (this.config.lastRow != config.lastRow ||\n this.config.firstRow != config.firstRow) {\n return this.update(config);\n }\n this.config = config;\n var first = Math.max(firstRow, config.firstRow);\n var last = Math.min(lastRow, config.lastRow);\n var lineElements = this.element.childNodes;\n var lineElementsIdx = 0;\n for (var row = config.firstRow; row < first; row++) {\n var foldLine = this.session.getFoldLine(row);\n if (foldLine) {\n if (foldLine.containsRow(first)) {\n first = foldLine.start.row;\n break;\n }\n else {\n row = foldLine.end.row;\n }\n }\n lineElementsIdx++;\n }\n var heightChanged = false;\n var row = first;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > last)\n break;\n var lineElement = lineElements[lineElementsIdx++];\n if (lineElement) {\n this.dom.removeChildren(lineElement);\n this.$renderLine(lineElement, row, row == foldStart ? foldLine : false);\n if (heightChanged)\n lineElement.style.top = this.$lines.computeLineTop(row, config, this.session) + \"px\";\n var height = (config.lineHeight * this.session.getRowLength(row)) + \"px\";\n if (lineElement.style.height != height) {\n heightChanged = true;\n lineElement.style.height = height;\n }\n }\n row++;\n }\n if (heightChanged) {\n while (lineElementsIdx < this.$lines.cells.length) {\n var cell = this.$lines.cells[lineElementsIdx++];\n cell.element.style.top = this.$lines.computeLineTop(cell.row, config, this.session) + \"px\";\n }\n }\n };\n Text.prototype.scrollLines = function (config) {\n var oldConfig = this.config;\n this.config = config;\n if (this.$lines.pageChanged(oldConfig, config))\n return this.update(config);\n this.$lines.moveContainer(config);\n var lastRow = config.lastRow;\n var oldLastRow = oldConfig ? oldConfig.lastRow : -1;\n if (!oldConfig || oldLastRow < config.firstRow)\n return this.update(config);\n if (lastRow < oldConfig.firstRow)\n return this.update(config);\n if (!oldConfig || oldConfig.lastRow < config.firstRow)\n return this.update(config);\n if (config.lastRow < oldConfig.firstRow)\n return this.update(config);\n if (oldConfig.firstRow < config.firstRow)\n for (var row = this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row > 0; row--)\n this.$lines.shift();\n if (oldConfig.lastRow > config.lastRow)\n for (var row = this.session.getFoldedRowCount(config.lastRow + 1, oldConfig.lastRow); row > 0; row--)\n this.$lines.pop();\n if (config.firstRow < oldConfig.firstRow) {\n this.$lines.unshift(this.$renderLinesFragment(config, config.firstRow, oldConfig.firstRow - 1));\n }\n if (config.lastRow > oldConfig.lastRow) {\n this.$lines.push(this.$renderLinesFragment(config, oldConfig.lastRow + 1, config.lastRow));\n }\n this.$highlightIndentGuide();\n };\n Text.prototype.$renderLinesFragment = function (config, firstRow, lastRow) {\n var fragment = [];\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n var line = this.$lines.createCell(row, config, this.session);\n var lineEl = line.element;\n this.dom.removeChildren(lineEl);\n dom.setStyle(lineEl.style, \"height\", this.$lines.computeLineHeight(row, config, this.session) + \"px\");\n dom.setStyle(lineEl.style, \"top\", this.$lines.computeLineTop(row, config, this.session) + \"px\");\n this.$renderLine(lineEl, row, row == foldStart ? foldLine : false);\n if (this.$useLineGroups()) {\n lineEl.className = \"ace_line_group\";\n }\n else {\n lineEl.className = \"ace_line\";\n }\n fragment.push(line);\n row++;\n }\n return fragment;\n };\n Text.prototype.update = function (config) {\n this.$lines.moveContainer(config);\n this.config = config;\n var firstRow = config.firstRow;\n var lastRow = config.lastRow;\n var lines = this.$lines;\n while (lines.getLength())\n lines.pop();\n lines.push(this.$renderLinesFragment(config, firstRow, lastRow));\n };\n Text.prototype.$renderToken = function (parent, screenColumn, token, value) {\n var self = this;\n var re = /(\\t)|( +)|([\\x00-\\x1f\\x80-\\xa0\\xad\\u1680\\u180E\\u2000-\\u200f\\u2028\\u2029\\u202F\\u205F\\uFEFF\\uFFF9-\\uFFFC\\u2066\\u2067\\u2068\\u202A\\u202B\\u202D\\u202E\\u202C\\u2069]+)|(\\u3000)|([\\u1100-\\u115F\\u11A3-\\u11A7\\u11FA-\\u11FF\\u2329-\\u232A\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3001-\\u303E\\u3041-\\u3096\\u3099-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u3190-\\u31BA\\u31C0-\\u31E3\\u31F0-\\u321E\\u3220-\\u3247\\u3250-\\u32FE\\u3300-\\u4DBF\\u4E00-\\uA48C\\uA490-\\uA4C6\\uA960-\\uA97C\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFAFF\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFF01-\\uFF60\\uFFE0-\\uFFE6]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF])/g;\n var valueFragment = this.dom.createFragment(this.element);\n var m;\n var i = 0;\n while (m = re.exec(value)) {\n var tab = m[1];\n var simpleSpace = m[2];\n var controlCharacter = m[3];\n var cjkSpace = m[4];\n var cjk = m[5];\n if (!self.showSpaces && simpleSpace)\n continue;\n var before = i != m.index ? value.slice(i, m.index) : \"\";\n i = m.index + m[0].length;\n if (before) {\n valueFragment.appendChild(this.dom.createTextNode(before, this.element));\n }\n if (tab) {\n var tabSize = self.session.getScreenTabSize(screenColumn + m.index);\n valueFragment.appendChild(self.$tabStrings[tabSize].cloneNode(true));\n screenColumn += tabSize - 1;\n }\n else if (simpleSpace) {\n if (self.showSpaces) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_space\";\n span.textContent = lang.stringRepeat(self.SPACE_CHAR, simpleSpace.length);\n valueFragment.appendChild(span);\n }\n else {\n valueFragment.appendChild(this.dom.createTextNode(simpleSpace, this.element));\n }\n }\n else if (controlCharacter) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_space ace_invalid\";\n span.textContent = lang.stringRepeat(self.SPACE_CHAR, controlCharacter.length);\n valueFragment.appendChild(span);\n }\n else if (cjkSpace) {\n screenColumn += 1;\n var span = this.dom.createElement(\"span\");\n span.style.width = (self.config.characterWidth * 2) + \"px\";\n span.className = self.showSpaces ? \"ace_cjk ace_invisible ace_invisible_space\" : \"ace_cjk\";\n span.textContent = self.showSpaces ? self.SPACE_CHAR : cjkSpace;\n valueFragment.appendChild(span);\n }\n else if (cjk) {\n screenColumn += 1;\n var span = this.dom.createElement(\"span\");\n span.style.width = (self.config.characterWidth * 2) + \"px\";\n span.className = \"ace_cjk\";\n span.textContent = cjk;\n valueFragment.appendChild(span);\n }\n }\n valueFragment.appendChild(this.dom.createTextNode(i ? value.slice(i) : value, this.element));\n if (!isTextToken(token.type)) {\n var classes = \"ace_\" + token.type.replace(/\\./g, \" ace_\");\n var span = this.dom.createElement(\"span\");\n if (token.type == \"fold\") {\n span.style.width = (token.value.length * this.config.characterWidth) + \"px\";\n span.setAttribute(\"title\", nls(\"Unfold code\"));\n }\n span.className = classes;\n span.appendChild(valueFragment);\n parent.appendChild(span);\n }\n else {\n parent.appendChild(valueFragment);\n }\n return screenColumn + value.length;\n };\n Text.prototype.renderIndentGuide = function (parent, value, max) {\n var cols = value.search(this.$indentGuideRe);\n if (cols <= 0 || cols >= max)\n return value;\n if (value[0] == \" \") {\n cols -= cols % this.tabSize;\n var count = cols / this.tabSize;\n for (var i = 0; i < count; i++) {\n parent.appendChild(this.$tabStrings[\" \"].cloneNode(true));\n }\n this.$highlightIndentGuide();\n return value.substr(cols);\n }\n else if (value[0] == \"\\t\") {\n for (var i = 0; i < cols; i++) {\n parent.appendChild(this.$tabStrings[\"\\t\"].cloneNode(true));\n }\n this.$highlightIndentGuide();\n return value.substr(cols);\n }\n this.$highlightIndentGuide();\n return value;\n };\n Text.prototype.$highlightIndentGuide = function () {\n if (!this.$highlightIndentGuides || !this.displayIndentGuides)\n return;\n this.$highlightIndentGuideMarker = {\n indentLevel: undefined,\n start: undefined,\n end: undefined,\n dir: undefined\n };\n var lines = this.session.doc.$lines;\n if (!lines)\n return;\n var cursor = this.session.selection.getCursor();\n var initialIndent = /^\\s*/.exec(this.session.doc.getLine(cursor.row))[0].length;\n var elementIndentLevel = Math.floor(initialIndent / this.tabSize);\n this.$highlightIndentGuideMarker = {\n indentLevel: elementIndentLevel,\n start: cursor.row\n };\n var bracketHighlight = this.session.$bracketHighlight;\n if (bracketHighlight) {\n var ranges = this.session.$bracketHighlight.ranges;\n for (var i = 0; i < ranges.length; i++) {\n if (cursor.row !== ranges[i].start.row) {\n this.$highlightIndentGuideMarker.end = ranges[i].start.row;\n if (cursor.row > ranges[i].start.row) {\n this.$highlightIndentGuideMarker.dir = -1;\n }\n else {\n this.$highlightIndentGuideMarker.dir = 1;\n }\n break;\n }\n }\n }\n if (!this.$highlightIndentGuideMarker.end) {\n if (lines[cursor.row] !== '' && cursor.column === lines[cursor.row].length) {\n this.$highlightIndentGuideMarker.dir = 1;\n for (var i = cursor.row + 1; i < lines.length; i++) {\n var line = lines[i];\n var currentIndent = /^\\s*/.exec(line)[0].length;\n if (line !== '') {\n this.$highlightIndentGuideMarker.end = i;\n if (currentIndent <= initialIndent)\n break;\n }\n }\n }\n }\n this.$renderHighlightIndentGuide();\n };\n Text.prototype.$clearActiveIndentGuide = function () {\n var cells = this.$lines.cells;\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n var childNodes = cell.element.childNodes;\n if (childNodes.length > 0) {\n for (var j = 0; j < childNodes.length; j++) {\n if (childNodes[j].classList && childNodes[j].classList.contains(\"ace_indent-guide-active\")) {\n childNodes[j].classList.remove(\"ace_indent-guide-active\");\n break;\n }\n }\n }\n }\n };\n Text.prototype.$setIndentGuideActive = function (cell, indentLevel) {\n var line = this.session.doc.getLine(cell.row);\n if (line !== \"\") {\n var childNodes = cell.element.childNodes;\n if (childNodes) {\n var node = childNodes[indentLevel - 1];\n if (node && node.classList && node.classList.contains(\"ace_indent-guide\"))\n node.classList.add(\"ace_indent-guide-active\");\n }\n }\n };\n Text.prototype.$renderHighlightIndentGuide = function () {\n if (!this.$lines)\n return;\n var cells = this.$lines.cells;\n this.$clearActiveIndentGuide();\n var indentLevel = this.$highlightIndentGuideMarker.indentLevel;\n if (indentLevel !== 0) {\n if (this.$highlightIndentGuideMarker.dir === 1) {\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n if (this.$highlightIndentGuideMarker.end && cell.row >= this.$highlightIndentGuideMarker.start\n + 1) {\n if (cell.row >= this.$highlightIndentGuideMarker.end)\n break;\n this.$setIndentGuideActive(cell, indentLevel);\n }\n }\n }\n else {\n for (var i = cells.length - 1; i >= 0; i--) {\n var cell = cells[i];\n if (this.$highlightIndentGuideMarker.end && cell.row < this.$highlightIndentGuideMarker.start) {\n if (cell.row <= this.$highlightIndentGuideMarker.end)\n break;\n this.$setIndentGuideActive(cell, indentLevel);\n }\n }\n }\n }\n };\n Text.prototype.$createLineElement = function (parent) {\n var lineEl = this.dom.createElement(\"div\");\n lineEl.className = \"ace_line\";\n lineEl.style.height = this.config.lineHeight + \"px\";\n return lineEl;\n };\n Text.prototype.$renderWrappedLine = function (parent, tokens, splits) {\n var chars = 0;\n var split = 0;\n var splitChars = splits[0];\n var screenColumn = 0;\n var lineEl = this.$createLineElement();\n parent.appendChild(lineEl);\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n chars = value.length;\n value = this.renderIndentGuide(lineEl, value, splitChars);\n if (!value)\n continue;\n chars -= value.length;\n }\n if (chars + value.length < splitChars) {\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value);\n chars += value.length;\n }\n else {\n while (chars + value.length >= splitChars) {\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value.substring(0, splitChars - chars));\n value = value.substring(splitChars - chars);\n chars = splitChars;\n lineEl = this.$createLineElement();\n parent.appendChild(lineEl);\n lineEl.appendChild(this.dom.createTextNode(lang.stringRepeat(\"\\xa0\", splits.indent), this.element));\n split++;\n screenColumn = 0;\n splitChars = splits[split] || Number.MAX_VALUE;\n }\n if (value.length != 0) {\n chars += value.length;\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value);\n }\n }\n }\n if (splits[splits.length - 1] > this.MAX_LINE_LENGTH)\n this.$renderOverflowMessage(lineEl, screenColumn, null, \"\", true);\n };\n Text.prototype.$renderSimpleLine = function (parent, tokens) {\n var screenColumn = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n value = this.renderIndentGuide(parent, value);\n if (!value)\n continue;\n }\n if (screenColumn + value.length > this.MAX_LINE_LENGTH)\n return this.$renderOverflowMessage(parent, screenColumn, token, value);\n screenColumn = this.$renderToken(parent, screenColumn, token, value);\n }\n };\n Text.prototype.$renderOverflowMessage = function (parent, screenColumn, token, value, hide) {\n token && this.$renderToken(parent, screenColumn, token, value.slice(0, this.MAX_LINE_LENGTH - screenColumn));\n var overflowEl = this.dom.createElement(\"span\");\n overflowEl.className = \"ace_inline_button ace_keyword ace_toggle_wrap\";\n overflowEl.textContent = hide ? \"\" : \"\";\n parent.appendChild(overflowEl);\n };\n Text.prototype.$renderLine = function (parent, row, foldLine) {\n if (!foldLine && foldLine != false)\n foldLine = this.session.getFoldLine(row);\n if (foldLine)\n var tokens = this.$getFoldLineTokens(row, foldLine);\n else\n var tokens = this.session.getTokens(row);\n var lastLineEl = parent;\n if (tokens.length) {\n var splits = this.session.getRowSplitData(row);\n if (splits && splits.length) {\n this.$renderWrappedLine(parent, tokens, splits);\n var lastLineEl = parent.lastChild;\n }\n else {\n var lastLineEl = parent;\n if (this.$useLineGroups()) {\n lastLineEl = this.$createLineElement();\n parent.appendChild(lastLineEl);\n }\n this.$renderSimpleLine(lastLineEl, tokens);\n }\n }\n else if (this.$useLineGroups()) {\n lastLineEl = this.$createLineElement();\n parent.appendChild(lastLineEl);\n }\n if (this.showEOL && lastLineEl) {\n if (foldLine)\n row = foldLine.end.row;\n var invisibleEl = this.dom.createElement(\"span\");\n invisibleEl.className = \"ace_invisible ace_invisible_eol\";\n invisibleEl.textContent = row == this.session.getLength() - 1 ? this.EOF_CHAR : this.EOL_CHAR;\n lastLineEl.appendChild(invisibleEl);\n }\n };\n Text.prototype.$getFoldLineTokens = function (row, foldLine) {\n var session = this.session;\n var renderTokens = [];\n function addTokens(tokens, from, to) {\n var idx = 0, col = 0;\n while ((col + tokens[idx].value.length) < from) {\n col += tokens[idx].value.length;\n idx++;\n if (idx == tokens.length)\n return;\n }\n if (col != from) {\n var value = tokens[idx].value.substring(from - col);\n if (value.length > (to - from))\n value = value.substring(0, to - from);\n renderTokens.push({\n type: tokens[idx].type,\n value: value\n });\n col = from + value.length;\n idx += 1;\n }\n while (col < to && idx < tokens.length) {\n var value = tokens[idx].value;\n if (value.length + col > to) {\n renderTokens.push({\n type: tokens[idx].type,\n value: value.substring(0, to - col)\n });\n }\n else\n renderTokens.push(tokens[idx]);\n col += value.length;\n idx += 1;\n }\n }\n var tokens = session.getTokens(row);\n foldLine.walk(function (placeholder, row, column, lastColumn, isNewRow) {\n if (placeholder != null) {\n renderTokens.push({\n type: \"fold\",\n value: placeholder\n });\n }\n else {\n if (isNewRow)\n tokens = session.getTokens(row);\n if (tokens.length)\n addTokens(tokens, lastColumn, column);\n }\n }, foldLine.end.row, this.session.getLine(foldLine.end.row).length);\n return renderTokens;\n };\n Text.prototype.$useLineGroups = function () {\n return this.session.getUseWrapMode();\n };\n return Text;\n}());\nText.prototype.EOF_CHAR = \"\\xB6\";\nText.prototype.EOL_CHAR_LF = \"\\xAC\";\nText.prototype.EOL_CHAR_CRLF = \"\\xa4\";\nText.prototype.EOL_CHAR = Text.prototype.EOL_CHAR_LF;\nText.prototype.TAB_CHAR = \"\\u2014\"; //\"\\u21E5\";\nText.prototype.SPACE_CHAR = \"\\xB7\";\nText.prototype.$padding = 0;\nText.prototype.MAX_LINE_LENGTH = 10000;\nText.prototype.showInvisibles = false;\nText.prototype.showSpaces = false;\nText.prototype.showTabs = false;\nText.prototype.showEOL = false;\nText.prototype.displayIndentGuides = true;\nText.prototype.$highlightIndentGuides = true;\nText.prototype.$tabStrings = [];\nText.prototype.destroy = {};\nText.prototype.onChangeTabSize = Text.prototype.$computeTabString;\noop.implement(Text.prototype, EventEmitter);\nexports.Text = Text;\n\n});\n\nace.define(\"ace/layer/cursor\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar Cursor = /** @class */ (function () {\n function Cursor(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_cursor-layer\";\n parentEl.appendChild(this.element);\n this.isVisible = false;\n this.isBlinking = true;\n this.blinkInterval = 1000;\n this.smoothBlinking = false;\n this.cursors = [];\n this.cursor = this.addCursor();\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.$updateCursors = this.$updateOpacity.bind(this);\n }\n Cursor.prototype.$updateOpacity = function (val) {\n var cursors = this.cursors;\n for (var i = cursors.length; i--;)\n dom.setStyle(cursors[i].style, \"opacity\", val ? \"\" : \"0\");\n };\n Cursor.prototype.$startCssAnimation = function () {\n var cursors = this.cursors;\n for (var i = cursors.length; i--;)\n cursors[i].style.animationDuration = this.blinkInterval + \"ms\";\n this.$isAnimating = true;\n setTimeout(function () {\n if (this.$isAnimating) {\n dom.addCssClass(this.element, \"ace_animate-blinking\");\n }\n }.bind(this));\n };\n Cursor.prototype.$stopCssAnimation = function () {\n this.$isAnimating = false;\n dom.removeCssClass(this.element, \"ace_animate-blinking\");\n };\n Cursor.prototype.setPadding = function (padding) {\n this.$padding = padding;\n };\n Cursor.prototype.setSession = function (session) {\n this.session = session;\n };\n Cursor.prototype.setBlinking = function (blinking) {\n if (blinking != this.isBlinking) {\n this.isBlinking = blinking;\n this.restartTimer();\n }\n };\n Cursor.prototype.setBlinkInterval = function (blinkInterval) {\n if (blinkInterval != this.blinkInterval) {\n this.blinkInterval = blinkInterval;\n this.restartTimer();\n }\n };\n Cursor.prototype.setSmoothBlinking = function (smoothBlinking) {\n if (smoothBlinking != this.smoothBlinking) {\n this.smoothBlinking = smoothBlinking;\n dom.setCssClass(this.element, \"ace_smooth-blinking\", smoothBlinking);\n this.$updateCursors(true);\n this.restartTimer();\n }\n };\n Cursor.prototype.addCursor = function () {\n var el = dom.createElement(\"div\");\n el.className = \"ace_cursor\";\n this.element.appendChild(el);\n this.cursors.push(el);\n return el;\n };\n Cursor.prototype.removeCursor = function () {\n if (this.cursors.length > 1) {\n var el = this.cursors.pop();\n el.parentNode.removeChild(el);\n return el;\n }\n };\n Cursor.prototype.hideCursor = function () {\n this.isVisible = false;\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n Cursor.prototype.showCursor = function () {\n this.isVisible = true;\n dom.removeCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n Cursor.prototype.restartTimer = function () {\n var update = this.$updateCursors;\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n this.$stopCssAnimation();\n if (this.smoothBlinking) {\n this.$isSmoothBlinking = false;\n dom.removeCssClass(this.element, \"ace_smooth-blinking\");\n }\n update(true);\n if (!this.isBlinking || !this.blinkInterval || !this.isVisible) {\n this.$stopCssAnimation();\n return;\n }\n if (this.smoothBlinking) {\n this.$isSmoothBlinking = true;\n setTimeout(function () {\n if (this.$isSmoothBlinking) {\n dom.addCssClass(this.element, \"ace_smooth-blinking\");\n }\n }.bind(this));\n }\n if (dom.HAS_CSS_ANIMATION) {\n this.$startCssAnimation();\n }\n else {\n var blink = function () {\n this.timeoutId = setTimeout(function () {\n update(false);\n }, 0.6 * this.blinkInterval);\n }.bind(this);\n this.intervalId = setInterval(function () {\n update(true);\n blink();\n }, this.blinkInterval);\n blink();\n }\n };\n Cursor.prototype.getPixelPosition = function (position, onScreen) {\n if (!this.config || !this.session)\n return { left: 0, top: 0 };\n if (!position)\n position = this.session.selection.getCursor();\n var pos = this.session.documentToScreenPosition(position);\n var cursorLeft = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, position.row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : pos.column * this.config.characterWidth);\n var cursorTop = (pos.row - (onScreen ? this.config.firstRowScreen : 0)) *\n this.config.lineHeight;\n return { left: cursorLeft, top: cursorTop };\n };\n Cursor.prototype.isCursorInView = function (pixelPos, config) {\n return pixelPos.top >= 0 && pixelPos.top < config.maxHeight;\n };\n Cursor.prototype.update = function (config) {\n this.config = config;\n var selections = this.session.$selectionMarkers;\n var i = 0, cursorIndex = 0;\n if (selections === undefined || selections.length === 0) {\n selections = [{ cursor: null }];\n }\n for (var i = 0, n = selections.length; i < n; i++) {\n var pixelPos = this.getPixelPosition(selections[i].cursor, true);\n if ((pixelPos.top > config.height + config.offset ||\n pixelPos.top < 0) && i > 1) {\n continue;\n }\n var element = this.cursors[cursorIndex++] || this.addCursor();\n var style = element.style;\n if (!this.drawCursor) {\n if (!this.isCursorInView(pixelPos, config)) {\n dom.setStyle(style, \"display\", \"none\");\n }\n else {\n dom.setStyle(style, \"display\", \"block\");\n dom.translate(element, pixelPos.left, pixelPos.top);\n dom.setStyle(style, \"width\", Math.round(config.characterWidth) + \"px\");\n dom.setStyle(style, \"height\", config.lineHeight + \"px\");\n }\n }\n else {\n this.drawCursor(element, pixelPos, config, selections[i], this.session);\n }\n }\n while (this.cursors.length > cursorIndex)\n this.removeCursor();\n var overwrite = this.session.getOverwrite();\n this.$setOverwrite(overwrite);\n this.$pixelPos = pixelPos;\n this.restartTimer();\n };\n Cursor.prototype.$setOverwrite = function (overwrite) {\n if (overwrite != this.overwrite) {\n this.overwrite = overwrite;\n if (overwrite)\n dom.addCssClass(this.element, \"ace_overwrite-cursors\");\n else\n dom.removeCssClass(this.element, \"ace_overwrite-cursors\");\n }\n };\n Cursor.prototype.destroy = function () {\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n };\n return Cursor;\n}());\nCursor.prototype.$padding = 0;\nCursor.prototype.drawCursor = null;\nexports.Cursor = Cursor;\n\n});\n\nace.define(\"ace/scrollbar\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar MAX_SCROLL_H = 0x8000;\nvar Scrollbar = /** @class */ (function () {\n function Scrollbar(parent, classSuffix) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_scrollbar ace_scrollbar\" + classSuffix;\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"ace_scrollbar-inner\";\n this.inner.textContent = \"\\xa0\";\n this.element.appendChild(this.inner);\n parent.appendChild(this.element);\n this.setVisible(false);\n this.skipEvent = false;\n event.addListener(this.element, \"scroll\", this.onScroll.bind(this));\n event.addListener(this.element, \"mousedown\", event.preventDefault);\n }\n Scrollbar.prototype.setVisible = function (isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n this.coeff = 1;\n };\n return Scrollbar;\n}());\noop.implement(Scrollbar.prototype, EventEmitter);\nvar VScrollBar = /** @class */ (function (_super) {\n __extends(VScrollBar, _super);\n function VScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-v') || this;\n _this.scrollTop = 0;\n _this.scrollHeight = 0;\n renderer.$scrollbarWidth =\n _this.width = dom.scrollbarWidth(parent.ownerDocument);\n _this.inner.style.width =\n _this.element.style.width = (_this.width || 15) + 5 + \"px\";\n _this.$minWidth = 0;\n return _this;\n }\n VScrollBar.prototype.onScroll = function () {\n if (!this.skipEvent) {\n this.scrollTop = this.element.scrollTop;\n if (this.coeff != 1) {\n var h = this.element.clientHeight / this.scrollHeight;\n this.scrollTop = this.scrollTop * (1 - h) / (this.coeff - h);\n }\n this._emit(\"scroll\", { data: this.scrollTop });\n }\n this.skipEvent = false;\n };\n VScrollBar.prototype.getWidth = function () {\n return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0);\n };\n VScrollBar.prototype.setHeight = function (height) {\n this.element.style.height = height + \"px\";\n };\n VScrollBar.prototype.setScrollHeight = function (height) {\n this.scrollHeight = height;\n if (height > MAX_SCROLL_H) {\n this.coeff = MAX_SCROLL_H / height;\n height = MAX_SCROLL_H;\n }\n else if (this.coeff != 1) {\n this.coeff = 1;\n }\n this.inner.style.height = height + \"px\";\n };\n VScrollBar.prototype.setScrollTop = function (scrollTop) {\n if (this.scrollTop != scrollTop) {\n this.skipEvent = true;\n this.scrollTop = scrollTop;\n this.element.scrollTop = scrollTop * this.coeff;\n }\n };\n return VScrollBar;\n}(Scrollbar));\nVScrollBar.prototype.setInnerHeight = VScrollBar.prototype.setScrollHeight;\nvar HScrollBar = /** @class */ (function (_super) {\n __extends(HScrollBar, _super);\n function HScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-h') || this;\n _this.scrollLeft = 0;\n _this.height = renderer.$scrollbarWidth;\n _this.inner.style.height =\n _this.element.style.height = (_this.height || 15) + 5 + \"px\";\n return _this;\n }\n HScrollBar.prototype.onScroll = function () {\n if (!this.skipEvent) {\n this.scrollLeft = this.element.scrollLeft;\n this._emit(\"scroll\", { data: this.scrollLeft });\n }\n this.skipEvent = false;\n };\n HScrollBar.prototype.getHeight = function () {\n return this.isVisible ? this.height : 0;\n };\n HScrollBar.prototype.setWidth = function (width) {\n this.element.style.width = width + \"px\";\n };\n HScrollBar.prototype.setInnerWidth = function (width) {\n this.inner.style.width = width + \"px\";\n };\n HScrollBar.prototype.setScrollWidth = function (width) {\n this.inner.style.width = width + \"px\";\n };\n HScrollBar.prototype.setScrollLeft = function (scrollLeft) {\n if (this.scrollLeft != scrollLeft) {\n this.skipEvent = true;\n this.scrollLeft = this.element.scrollLeft = scrollLeft;\n }\n };\n return HScrollBar;\n}(Scrollbar));\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n\n});\n\nace.define(\"ace/scrollbar_custom\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\ndom.importCssString(\".ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{\\n position: absolute;\\n background: rgba(128, 128, 128, 0.6);\\n -moz-box-sizing: border-box;\\n box-sizing: border-box;\\n border: 1px solid #bbb;\\n border-radius: 2px;\\n z-index: 8;\\n}\\n.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h {\\n position: absolute;\\n z-index: 6;\\n background: none;\\n overflow: hidden!important;\\n}\\n.ace_editor>.ace_sb-v {\\n z-index: 6;\\n right: 0;\\n top: 0;\\n width: 12px;\\n}\\n.ace_editor>.ace_sb-v div {\\n z-index: 8;\\n right: 0;\\n width: 100%;\\n}\\n.ace_editor>.ace_sb-h {\\n bottom: 0;\\n left: 0;\\n height: 12px;\\n}\\n.ace_editor>.ace_sb-h div {\\n bottom: 0;\\n height: 100%;\\n}\\n.ace_editor>.ace_sb_grabbed {\\n z-index: 8;\\n background: #000;\\n}\", \"ace_scrollbar.css\", false);\nvar ScrollBar = /** @class */ (function () {\n function ScrollBar(parent, classSuffix) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_sb\" + classSuffix;\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"\";\n this.element.appendChild(this.inner);\n this.VScrollWidth = 12;\n this.HScrollHeight = 12;\n parent.appendChild(this.element);\n this.setVisible(false);\n this.skipEvent = false;\n event.addMultiMouseDownListener(this.element, [500, 300, 300], this, \"onMouseDown\");\n }\n ScrollBar.prototype.setVisible = function (isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n this.coeff = 1;\n };\n return ScrollBar;\n}());\noop.implement(ScrollBar.prototype, EventEmitter);\nvar VScrollBar = /** @class */ (function (_super) {\n __extends(VScrollBar, _super);\n function VScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-v') || this;\n _this.scrollTop = 0;\n _this.scrollHeight = 0;\n _this.parent = parent;\n _this.width = _this.VScrollWidth;\n _this.renderer = renderer;\n _this.inner.style.width = _this.element.style.width = (_this.width || 15) + \"px\";\n _this.$minWidth = 0;\n return _this;\n }\n VScrollBar.prototype.onMouseDown = function (eType, e) {\n if (eType !== \"mousedown\")\n return;\n if (event.getButton(e) !== 0 || e.detail === 2) {\n return;\n }\n if (e.target === this.inner) {\n var self = this;\n var mousePageY = e.clientY;\n var onMouseMove = function (e) {\n mousePageY = e.clientY;\n };\n var onMouseUp = function () {\n clearInterval(timerId);\n };\n var startY = e.clientY;\n var startTop = this.thumbTop;\n var onScrollInterval = function () {\n if (mousePageY === undefined)\n return;\n var scrollTop = self.scrollTopFromThumbTop(startTop + mousePageY - startY);\n if (scrollTop === self.scrollTop)\n return;\n self._emit(\"scroll\", { data: scrollTop });\n };\n event.capture(this.inner, onMouseMove, onMouseUp);\n var timerId = setInterval(onScrollInterval, 20);\n return event.preventDefault(e);\n }\n var top = e.clientY - this.element.getBoundingClientRect().top - this.thumbHeight / 2;\n this._emit(\"scroll\", { data: this.scrollTopFromThumbTop(top) });\n return event.preventDefault(e);\n };\n VScrollBar.prototype.getHeight = function () {\n return this.height;\n };\n VScrollBar.prototype.scrollTopFromThumbTop = function (thumbTop) {\n var scrollTop = thumbTop * (this.pageHeight - this.viewHeight) / (this.slideHeight - this.thumbHeight);\n scrollTop = scrollTop >> 0;\n if (scrollTop < 0) {\n scrollTop = 0;\n }\n else if (scrollTop > this.pageHeight - this.viewHeight) {\n scrollTop = this.pageHeight - this.viewHeight;\n }\n return scrollTop;\n };\n VScrollBar.prototype.getWidth = function () {\n return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0);\n };\n VScrollBar.prototype.setHeight = function (height) {\n this.height = Math.max(0, height);\n this.slideHeight = this.height;\n this.viewHeight = this.height;\n this.setScrollHeight(this.pageHeight, true);\n };\n VScrollBar.prototype.setScrollHeight = function (height, force) {\n if (this.pageHeight === height && !force)\n return;\n this.pageHeight = height;\n this.thumbHeight = this.slideHeight * this.viewHeight / this.pageHeight;\n if (this.thumbHeight > this.slideHeight)\n this.thumbHeight = this.slideHeight;\n if (this.thumbHeight < 15)\n this.thumbHeight = 15;\n this.inner.style.height = this.thumbHeight + \"px\";\n if (this.scrollTop > (this.pageHeight - this.viewHeight)) {\n this.scrollTop = (this.pageHeight - this.viewHeight);\n if (this.scrollTop < 0)\n this.scrollTop = 0;\n this._emit(\"scroll\", { data: this.scrollTop });\n }\n };\n VScrollBar.prototype.setScrollTop = function (scrollTop) {\n this.scrollTop = scrollTop;\n if (scrollTop < 0)\n scrollTop = 0;\n this.thumbTop = scrollTop * (this.slideHeight - this.thumbHeight) / (this.pageHeight - this.viewHeight);\n this.inner.style.top = this.thumbTop + \"px\";\n };\n return VScrollBar;\n}(ScrollBar));\nVScrollBar.prototype.setInnerHeight = VScrollBar.prototype.setScrollHeight;\nvar HScrollBar = /** @class */ (function (_super) {\n __extends(HScrollBar, _super);\n function HScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-h') || this;\n _this.scrollLeft = 0;\n _this.scrollWidth = 0;\n _this.height = _this.HScrollHeight;\n _this.inner.style.height = _this.element.style.height = (_this.height || 12) + \"px\";\n _this.renderer = renderer;\n return _this;\n }\n HScrollBar.prototype.onMouseDown = function (eType, e) {\n if (eType !== \"mousedown\")\n return;\n if (event.getButton(e) !== 0 || e.detail === 2) {\n return;\n }\n if (e.target === this.inner) {\n var self = this;\n var mousePageX = e.clientX;\n var onMouseMove = function (e) {\n mousePageX = e.clientX;\n };\n var onMouseUp = function () {\n clearInterval(timerId);\n };\n var startX = e.clientX;\n var startLeft = this.thumbLeft;\n var onScrollInterval = function () {\n if (mousePageX === undefined)\n return;\n var scrollLeft = self.scrollLeftFromThumbLeft(startLeft + mousePageX - startX);\n if (scrollLeft === self.scrollLeft)\n return;\n self._emit(\"scroll\", { data: scrollLeft });\n };\n event.capture(this.inner, onMouseMove, onMouseUp);\n var timerId = setInterval(onScrollInterval, 20);\n return event.preventDefault(e);\n }\n var left = e.clientX - this.element.getBoundingClientRect().left - this.thumbWidth / 2;\n this._emit(\"scroll\", { data: this.scrollLeftFromThumbLeft(left) });\n return event.preventDefault(e);\n };\n HScrollBar.prototype.getHeight = function () {\n return this.isVisible ? this.height : 0;\n };\n HScrollBar.prototype.scrollLeftFromThumbLeft = function (thumbLeft) {\n var scrollLeft = thumbLeft * (this.pageWidth - this.viewWidth) / (this.slideWidth - this.thumbWidth);\n scrollLeft = scrollLeft >> 0;\n if (scrollLeft < 0) {\n scrollLeft = 0;\n }\n else if (scrollLeft > this.pageWidth - this.viewWidth) {\n scrollLeft = this.pageWidth - this.viewWidth;\n }\n return scrollLeft;\n };\n HScrollBar.prototype.setWidth = function (width) {\n this.width = Math.max(0, width);\n this.element.style.width = this.width + \"px\";\n this.slideWidth = this.width;\n this.viewWidth = this.width;\n this.setScrollWidth(this.pageWidth, true);\n };\n HScrollBar.prototype.setScrollWidth = function (width, force) {\n if (this.pageWidth === width && !force)\n return;\n this.pageWidth = width;\n this.thumbWidth = this.slideWidth * this.viewWidth / this.pageWidth;\n if (this.thumbWidth > this.slideWidth)\n this.thumbWidth = this.slideWidth;\n if (this.thumbWidth < 15)\n this.thumbWidth = 15;\n this.inner.style.width = this.thumbWidth + \"px\";\n if (this.scrollLeft > (this.pageWidth - this.viewWidth)) {\n this.scrollLeft = (this.pageWidth - this.viewWidth);\n if (this.scrollLeft < 0)\n this.scrollLeft = 0;\n this._emit(\"scroll\", { data: this.scrollLeft });\n }\n };\n HScrollBar.prototype.setScrollLeft = function (scrollLeft) {\n this.scrollLeft = scrollLeft;\n if (scrollLeft < 0)\n scrollLeft = 0;\n this.thumbLeft = scrollLeft * (this.slideWidth - this.thumbWidth) / (this.pageWidth - this.viewWidth);\n this.inner.style.left = (this.thumbLeft) + \"px\";\n };\n return HScrollBar;\n}(ScrollBar));\nHScrollBar.prototype.setInnerWidth = HScrollBar.prototype.setScrollWidth;\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n\n});\n\nace.define(\"ace/renderloop\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"], function(require, exports, module){\"use strict\";\nvar event = require(\"./lib/event\");\nvar RenderLoop = /** @class */ (function () {\n function RenderLoop(onRender, win) {\n this.onRender = onRender;\n this.pending = false;\n this.changes = 0;\n this.$recursionLimit = 2;\n this.window = win || window;\n var _self = this;\n this._flush = function (ts) {\n _self.pending = false;\n var changes = _self.changes;\n if (changes) {\n event.blockIdle(100);\n _self.changes = 0;\n _self.onRender(changes);\n }\n if (_self.changes) {\n if (_self.$recursionLimit-- < 0)\n return;\n _self.schedule();\n }\n else {\n _self.$recursionLimit = 2;\n }\n };\n }\n RenderLoop.prototype.schedule = function (change) {\n this.changes = this.changes | change;\n if (this.changes && !this.pending) {\n event.nextFrame(this._flush);\n this.pending = true;\n }\n };\n RenderLoop.prototype.clear = function (change) {\n var changes = this.changes;\n this.changes = 0;\n return changes;\n };\n return RenderLoop;\n}());\nexports.RenderLoop = RenderLoop;\n\n});\n\nace.define(\"ace/layer/font_metrics\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar CHAR_COUNT = 512;\nvar USE_OBSERVER = typeof ResizeObserver == \"function\";\nvar L = 200;\nvar FontMetrics = /** @class */ (function () {\n function FontMetrics(parentEl) {\n this.el = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.el.style, true);\n this.$main = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$main.style);\n this.$measureNode = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$measureNode.style);\n this.el.appendChild(this.$main);\n this.el.appendChild(this.$measureNode);\n parentEl.appendChild(this.el);\n this.$measureNode.textContent = lang.stringRepeat(\"X\", CHAR_COUNT);\n this.$characterSize = { width: 0, height: 0 };\n if (USE_OBSERVER)\n this.$addObserver();\n else\n this.checkForSizeChanges();\n }\n FontMetrics.prototype.$setMeasureNodeStyles = function (style, isRoot) {\n style.width = style.height = \"auto\";\n style.left = style.top = \"0px\";\n style.visibility = \"hidden\";\n style.position = \"absolute\";\n style.whiteSpace = \"pre\";\n if (useragent.isIE < 8) {\n style[\"font-family\"] = \"inherit\";\n }\n else {\n style.font = \"inherit\";\n }\n style.overflow = isRoot ? \"hidden\" : \"visible\";\n };\n FontMetrics.prototype.checkForSizeChanges = function (size) {\n if (size === undefined)\n size = this.$measureSizes();\n if (size && (this.$characterSize.width !== size.width || this.$characterSize.height !== size.height)) {\n this.$measureNode.style.fontWeight = \"bold\";\n var boldSize = this.$measureSizes();\n this.$measureNode.style.fontWeight = \"\";\n this.$characterSize = size;\n this.charSizes = Object.create(null);\n this.allowBoldFonts = boldSize && boldSize.width === size.width && boldSize.height === size.height;\n this._emit(\"changeCharacterSize\", { data: size });\n }\n };\n FontMetrics.prototype.$addObserver = function () {\n var self = this;\n this.$observer = new window.ResizeObserver(function (e) {\n self.checkForSizeChanges();\n });\n this.$observer.observe(this.$measureNode);\n };\n FontMetrics.prototype.$pollSizeChanges = function () {\n if (this.$pollSizeChangesTimer || this.$observer)\n return this.$pollSizeChangesTimer;\n var self = this;\n return this.$pollSizeChangesTimer = event.onIdle(function cb() {\n self.checkForSizeChanges();\n event.onIdle(cb, 500);\n }, 500);\n };\n FontMetrics.prototype.setPolling = function (val) {\n if (val) {\n this.$pollSizeChanges();\n }\n else if (this.$pollSizeChangesTimer) {\n clearInterval(this.$pollSizeChangesTimer);\n this.$pollSizeChangesTimer = 0;\n }\n };\n FontMetrics.prototype.$measureSizes = function (node) {\n var size = {\n height: (node || this.$measureNode).clientHeight,\n width: (node || this.$measureNode).clientWidth / CHAR_COUNT\n };\n if (size.width === 0 || size.height === 0)\n return null;\n return size;\n };\n FontMetrics.prototype.$measureCharWidth = function (ch) {\n this.$main.textContent = lang.stringRepeat(ch, CHAR_COUNT);\n var rect = this.$main.getBoundingClientRect();\n return rect.width / CHAR_COUNT;\n };\n FontMetrics.prototype.getCharacterWidth = function (ch) {\n var w = this.charSizes[ch];\n if (w === undefined) {\n w = this.charSizes[ch] = this.$measureCharWidth(ch) / this.$characterSize.width;\n }\n return w;\n };\n FontMetrics.prototype.destroy = function () {\n clearInterval(this.$pollSizeChangesTimer);\n if (this.$observer)\n this.$observer.disconnect();\n if (this.el && this.el.parentNode)\n this.el.parentNode.removeChild(this.el);\n };\n FontMetrics.prototype.$getZoom = function (element) {\n if (!element || !element.parentElement)\n return 1;\n return (window.getComputedStyle(element).zoom || 1) * this.$getZoom(element.parentElement);\n };\n FontMetrics.prototype.$initTransformMeasureNodes = function () {\n var t = function (t, l) {\n return [\"div\", {\n style: \"position: absolute;top:\" + t + \"px;left:\" + l + \"px;\"\n }];\n };\n this.els = dom.buildDom([t(0, 0), t(L, 0), t(0, L), t(L, L)], this.el);\n };\n FontMetrics.prototype.transformCoordinates = function (clientPos, elPos) {\n if (clientPos) {\n var zoom = this.$getZoom(this.el);\n clientPos = mul(1 / zoom, clientPos);\n }\n function solve(l1, l2, r) {\n var det = l1[1] * l2[0] - l1[0] * l2[1];\n return [\n (-l2[1] * r[0] + l2[0] * r[1]) / det,\n (+l1[1] * r[0] - l1[0] * r[1]) / det\n ];\n }\n function sub(a, b) { return [a[0] - b[0], a[1] - b[1]]; }\n function add(a, b) { return [a[0] + b[0], a[1] + b[1]]; }\n function mul(a, b) { return [a * b[0], a * b[1]]; }\n if (!this.els)\n this.$initTransformMeasureNodes();\n function p(el) {\n var r = el.getBoundingClientRect();\n return [r.left, r.top];\n }\n var a = p(this.els[0]);\n var b = p(this.els[1]);\n var c = p(this.els[2]);\n var d = p(this.els[3]);\n var h = solve(sub(d, b), sub(d, c), sub(add(b, c), add(d, a)));\n var m1 = mul(1 + h[0], sub(b, a));\n var m2 = mul(1 + h[1], sub(c, a));\n if (elPos) {\n var x = elPos;\n var k = h[0] * x[0] / L + h[1] * x[1] / L + 1;\n var ut = add(mul(x[0], m1), mul(x[1], m2));\n return add(mul(1 / k / L, ut), a);\n }\n var u = sub(clientPos, a);\n var f = solve(sub(m1, mul(h[0], u)), sub(m2, mul(h[1], u)), u);\n return mul(L, f);\n };\n return FontMetrics;\n}());\nFontMetrics.prototype.$characterSize = { width: 0, height: 0 };\noop.implement(FontMetrics.prototype, EventEmitter);\nexports.FontMetrics = FontMetrics;\n\n});\n\nace.define(\"ace/css/editor-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){/*\nstyles = []\nfor (var i = 1; i < 16; i++) {\n styles.push(\".ace_br\" + i + \"{\" + (\n [\"top-left\", \"top-right\", \"bottom-right\", \"bottom-left\"]\n ).map(function(x, j) {\n return i & (1< .ace_line, .ace_text-layer > .ace_line_group {\\n contain: style size layout;\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n}\\n\\n.ace_hidpi .ace_text-layer,\\n.ace_hidpi .ace_gutter-layer,\\n.ace_hidpi .ace_content,\\n.ace_hidpi .ace_gutter {\\n contain: strict;\\n}\\n.ace_hidpi .ace_text-layer > .ace_line, \\n.ace_hidpi .ace_text-layer > .ace_line_group {\\n contain: strict;\\n}\\n\\n.ace_cjk {\\n display: inline-block;\\n text-align: center;\\n}\\n\\n.ace_cursor-layer {\\n z-index: 4;\\n}\\n\\n.ace_cursor {\\n z-index: 4;\\n position: absolute;\\n box-sizing: border-box;\\n border-left: 2px solid;\\n /* workaround for smooth cursor repaintng whole screen in chrome */\\n transform: translatez(0);\\n}\\n\\n.ace_multiselect .ace_cursor {\\n border-left-width: 1px;\\n}\\n\\n.ace_slim-cursors .ace_cursor {\\n border-left-width: 1px;\\n}\\n\\n.ace_overwrite-cursors .ace_cursor {\\n border-left-width: 0;\\n border-bottom: 1px solid;\\n}\\n\\n.ace_hidden-cursors .ace_cursor {\\n opacity: 0.2;\\n}\\n\\n.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {\\n opacity: 0;\\n}\\n\\n.ace_smooth-blinking .ace_cursor {\\n transition: opacity 0.18s;\\n}\\n\\n.ace_animate-blinking .ace_cursor {\\n animation-duration: 1000ms;\\n animation-timing-function: step-end;\\n animation-name: blink-ace-animate;\\n animation-iteration-count: infinite;\\n}\\n\\n.ace_animate-blinking.ace_smooth-blinking .ace_cursor {\\n animation-duration: 1000ms;\\n animation-timing-function: ease-in-out;\\n animation-name: blink-ace-animate-smooth;\\n}\\n \\n@keyframes blink-ace-animate {\\n from, to { opacity: 1; }\\n 60% { opacity: 0; }\\n}\\n\\n@keyframes blink-ace-animate-smooth {\\n from, to { opacity: 1; }\\n 45% { opacity: 1; }\\n 60% { opacity: 0; }\\n 85% { opacity: 0; }\\n}\\n\\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\\n position: absolute;\\n z-index: 3;\\n}\\n\\n.ace_marker-layer .ace_selection {\\n position: absolute;\\n z-index: 5;\\n}\\n\\n.ace_marker-layer .ace_bracket {\\n position: absolute;\\n z-index: 6;\\n}\\n\\n.ace_marker-layer .ace_error_bracket {\\n position: absolute;\\n border-bottom: 1px solid #DE5555;\\n border-radius: 0;\\n}\\n\\n.ace_marker-layer .ace_active-line {\\n position: absolute;\\n z-index: 2;\\n}\\n\\n.ace_marker-layer .ace_selected-word {\\n position: absolute;\\n z-index: 4;\\n box-sizing: border-box;\\n}\\n\\n.ace_line .ace_fold {\\n box-sizing: border-box;\\n\\n display: inline-block;\\n height: 11px;\\n margin-top: -2px;\\n vertical-align: middle;\\n\\n background-image:\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=\\\");\\n background-repeat: no-repeat, repeat-x;\\n background-position: center center, top left;\\n color: transparent;\\n\\n border: 1px solid black;\\n border-radius: 2px;\\n\\n cursor: pointer;\\n pointer-events: auto;\\n}\\n\\n.ace_dark .ace_fold {\\n}\\n\\n.ace_fold:hover{\\n background-image:\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC\\\");\\n}\\n\\n.ace_tooltip {\\n background-color: #f5f5f5;\\n border: 1px solid gray;\\n border-radius: 1px;\\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\\n color: black;\\n max-width: 100%;\\n padding: 3px 4px;\\n position: fixed;\\n z-index: 999999;\\n box-sizing: border-box;\\n cursor: default;\\n white-space: pre-wrap;\\n word-wrap: break-word;\\n line-height: normal;\\n font-style: normal;\\n font-weight: normal;\\n letter-spacing: normal;\\n pointer-events: none;\\n overflow: auto;\\n max-width: min(60em, 66vw);\\n}\\n.ace_tooltip pre {\\n white-space: pre-wrap;\\n}\\n\\n.ace_tooltip.ace_dark {\\n background-color: #636363;\\n color: #fff;\\n}\\n\\n.ace_tooltip:focus {\\n outline: 1px solid #5E9ED6;\\n}\\n\\n.ace_icon {\\n display: inline-block;\\n width: 18px;\\n vertical-align: top;\\n}\\n\\n.ace_icon_svg {\\n display: inline-block;\\n width: 12px;\\n vertical-align: top;\\n -webkit-mask-repeat: no-repeat;\\n -webkit-mask-size: 12px;\\n -webkit-mask-position: center;\\n}\\n\\n.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons {\\n padding-right: 13px;\\n}\\n\\n.ace_fold-widget {\\n box-sizing: border-box;\\n\\n margin: 0 -12px 0 1px;\\n display: none;\\n width: 11px;\\n vertical-align: top;\\n\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==\\\");\\n background-repeat: no-repeat;\\n background-position: center;\\n\\n border-radius: 3px;\\n \\n border: 1px solid transparent;\\n cursor: pointer;\\n}\\n\\n.ace_folding-enabled .ace_fold-widget {\\n display: inline-block; \\n}\\n\\n.ace_fold-widget.ace_end {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==\\\");\\n}\\n\\n.ace_fold-widget.ace_closed {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==\\\");\\n}\\n\\n.ace_fold-widget:hover {\\n border: 1px solid rgba(0, 0, 0, 0.3);\\n background-color: rgba(255, 255, 255, 0.2);\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\\n}\\n\\n.ace_fold-widget:active {\\n border: 1px solid rgba(0, 0, 0, 0.4);\\n background-color: rgba(0, 0, 0, 0.05);\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\\n}\\n/**\\n * Dark version for fold widgets\\n */\\n.ace_dark .ace_fold-widget {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\\\");\\n}\\n.ace_dark .ace_fold-widget.ace_end {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\\\");\\n}\\n.ace_dark .ace_fold-widget.ace_closed {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\\\");\\n}\\n.ace_dark .ace_fold-widget:hover {\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.ace_dark .ace_fold-widget:active {\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\n}\\n\\n.ace_inline_button {\\n border: 1px solid lightgray;\\n display: inline-block;\\n margin: -1px 8px;\\n padding: 0 5px;\\n pointer-events: auto;\\n cursor: pointer;\\n}\\n.ace_inline_button:hover {\\n border-color: gray;\\n background: rgba(200,200,200,0.2);\\n display: inline-block;\\n pointer-events: auto;\\n}\\n\\n.ace_fold-widget.ace_invalid {\\n background-color: #FFB4B4;\\n border-color: #DE5555;\\n}\\n\\n.ace_fade-fold-widgets .ace_fold-widget {\\n transition: opacity 0.4s ease 0.05s;\\n opacity: 0;\\n}\\n\\n.ace_fade-fold-widgets:hover .ace_fold-widget {\\n transition: opacity 0.05s ease 0.05s;\\n opacity:1;\\n}\\n\\n.ace_underline {\\n text-decoration: underline;\\n}\\n\\n.ace_bold {\\n font-weight: bold;\\n}\\n\\n.ace_nobold .ace_bold {\\n font-weight: normal;\\n}\\n\\n.ace_italic {\\n font-style: italic;\\n}\\n\\n\\n.ace_error-marker {\\n background-color: rgba(255, 0, 0,0.2);\\n position: absolute;\\n z-index: 9;\\n}\\n\\n.ace_highlight-marker {\\n background-color: rgba(255, 255, 0,0.2);\\n position: absolute;\\n z-index: 8;\\n}\\n\\n.ace_mobile-menu {\\n position: absolute;\\n line-height: 1.5;\\n border-radius: 4px;\\n -ms-user-select: none;\\n -moz-user-select: none;\\n -webkit-user-select: none;\\n user-select: none;\\n background: white;\\n box-shadow: 1px 3px 2px grey;\\n border: 1px solid #dcdcdc;\\n color: black;\\n}\\n.ace_dark > .ace_mobile-menu {\\n background: #333;\\n color: #ccc;\\n box-shadow: 1px 3px 2px grey;\\n border: 1px solid #444;\\n\\n}\\n.ace_mobile-button {\\n padding: 2px;\\n cursor: pointer;\\n overflow: hidden;\\n}\\n.ace_mobile-button:hover {\\n background-color: #eee;\\n opacity:1;\\n}\\n.ace_mobile-button:active {\\n background-color: #ddd;\\n}\\n\\n.ace_placeholder {\\n font-family: arial;\\n transform: scale(0.9);\\n transform-origin: left;\\n white-space: pre;\\n opacity: 0.7;\\n margin: 0 10px;\\n}\\n\\n.ace_ghost_text {\\n opacity: 0.5;\\n font-style: italic;\\n white-space: pre;\\n}\\n\\n.ace_screenreader-only {\\n position:absolute;\\n left:-10000px;\\n top:auto;\\n width:1px;\\n height:1px;\\n overflow:hidden;\\n}\";\n\n});\n\nace.define(\"ace/layer/decorators\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar oop = require(\"../lib/oop\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar Decorator = /** @class */ (function () {\n function Decorator(parent, renderer) {\n this.canvas = dom.createElement(\"canvas\");\n this.renderer = renderer;\n this.pixelRatio = 1;\n this.maxHeight = renderer.layerConfig.maxHeight;\n this.lineHeight = renderer.layerConfig.lineHeight;\n this.canvasHeight = parent.parent.scrollHeight;\n this.heightRatio = this.canvasHeight / this.maxHeight;\n this.canvasWidth = parent.width;\n this.minDecorationHeight = (2 * this.pixelRatio) | 0;\n this.halfMinDecorationHeight = (this.minDecorationHeight / 2) | 0;\n this.canvas.width = this.canvasWidth;\n this.canvas.height = this.canvasHeight;\n this.canvas.style.top = 0 + \"px\";\n this.canvas.style.right = 0 + \"px\";\n this.canvas.style.zIndex = 7 + \"px\";\n this.canvas.style.position = \"absolute\";\n this.colors = {};\n this.colors.dark = {\n \"error\": \"rgba(255, 18, 18, 1)\",\n \"warning\": \"rgba(18, 136, 18, 1)\",\n \"info\": \"rgba(18, 18, 136, 1)\"\n };\n this.colors.light = {\n \"error\": \"rgb(255,51,51)\",\n \"warning\": \"rgb(32,133,72)\",\n \"info\": \"rgb(35,68,138)\"\n };\n parent.element.appendChild(this.canvas);\n }\n Decorator.prototype.$updateDecorators = function (config) {\n var colors = (this.renderer.theme.isDark === true) ? this.colors.dark : this.colors.light;\n if (config) {\n this.maxHeight = config.maxHeight;\n this.lineHeight = config.lineHeight;\n this.canvasHeight = config.height;\n var allLineHeight = (config.lastRow + 1) * this.lineHeight;\n if (allLineHeight < this.canvasHeight) {\n this.heightRatio = 1;\n }\n else {\n this.heightRatio = this.canvasHeight / this.maxHeight;\n }\n }\n var ctx = this.canvas.getContext(\"2d\");\n function compare(a, b) {\n if (a.priority < b.priority)\n return -1;\n if (a.priority > b.priority)\n return 1;\n return 0;\n }\n var annotations = this.renderer.session.$annotations;\n ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n if (annotations) {\n var priorities = {\n \"info\": 1,\n \"warning\": 2,\n \"error\": 3\n };\n annotations.forEach(function (item) {\n item.priority = priorities[item.type] || null;\n });\n annotations = annotations.sort(compare);\n var foldData = this.renderer.session.$foldData;\n for (var i = 0; i < annotations.length; i++) {\n var row = annotations[i].row;\n var compensateFold = this.compensateFoldRows(row, foldData);\n var currentY = Math.round((row - compensateFold) * this.lineHeight * this.heightRatio);\n var y1 = Math.round(((row - compensateFold) * this.lineHeight * this.heightRatio));\n var y2 = Math.round((((row - compensateFold) * this.lineHeight + this.lineHeight) * this.heightRatio));\n var height = y2 - y1;\n if (height < this.minDecorationHeight) {\n var yCenter = ((y1 + y2) / 2) | 0;\n if (yCenter < this.halfMinDecorationHeight) {\n yCenter = this.halfMinDecorationHeight;\n }\n else if (yCenter + this.halfMinDecorationHeight > this.canvasHeight) {\n yCenter = this.canvasHeight - this.halfMinDecorationHeight;\n }\n y1 = Math.round(yCenter - this.halfMinDecorationHeight);\n y2 = Math.round(yCenter + this.halfMinDecorationHeight);\n }\n ctx.fillStyle = colors[annotations[i].type] || null;\n ctx.fillRect(0, currentY, this.canvasWidth, y2 - y1);\n }\n }\n var cursor = this.renderer.session.selection.getCursor();\n if (cursor) {\n var compensateFold = this.compensateFoldRows(cursor.row, foldData);\n var currentY = Math.round((cursor.row - compensateFold) * this.lineHeight * this.heightRatio);\n ctx.fillStyle = \"rgba(0, 0, 0, 0.5)\";\n ctx.fillRect(0, currentY, this.canvasWidth, 2);\n }\n };\n Decorator.prototype.compensateFoldRows = function (row, foldData) {\n var compensateFold = 0;\n if (foldData && foldData.length > 0) {\n for (var j = 0; j < foldData.length; j++) {\n if (row > foldData[j].start.row && row < foldData[j].end.row) {\n compensateFold += row - foldData[j].start.row;\n }\n else if (row >= foldData[j].end.row) {\n compensateFold += foldData[j].end.row - foldData[j].start.row;\n }\n }\n }\n return compensateFold;\n };\n return Decorator;\n}());\noop.implement(Decorator.prototype, EventEmitter);\nexports.Decorator = Decorator;\n\n});\n\nace.define(\"ace/virtual_renderer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/config\",\"ace/layer/gutter\",\"ace/layer/marker\",\"ace/layer/text\",\"ace/layer/cursor\",\"ace/scrollbar\",\"ace/scrollbar\",\"ace/scrollbar_custom\",\"ace/scrollbar_custom\",\"ace/renderloop\",\"ace/layer/font_metrics\",\"ace/lib/event_emitter\",\"ace/css/editor-css\",\"ace/layer/decorators\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar lang = require(\"./lib/lang\");\nvar config = require(\"./config\");\nvar GutterLayer = require(\"./layer/gutter\").Gutter;\nvar MarkerLayer = require(\"./layer/marker\").Marker;\nvar TextLayer = require(\"./layer/text\").Text;\nvar CursorLayer = require(\"./layer/cursor\").Cursor;\nvar HScrollBar = require(\"./scrollbar\").HScrollBar;\nvar VScrollBar = require(\"./scrollbar\").VScrollBar;\nvar HScrollBarCustom = require(\"./scrollbar_custom\").HScrollBar;\nvar VScrollBarCustom = require(\"./scrollbar_custom\").VScrollBar;\nvar RenderLoop = require(\"./renderloop\").RenderLoop;\nvar FontMetrics = require(\"./layer/font_metrics\").FontMetrics;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar editorCss = require(\"./css/editor-css\");\nvar Decorator = require(\"./layer/decorators\").Decorator;\nvar useragent = require(\"./lib/useragent\");\ndom.importCssString(editorCss, \"ace_editor.css\", false);\nvar VirtualRenderer = /** @class */ (function () {\n function VirtualRenderer(container, theme) {\n var _self = this;\n this.container = container || dom.createElement(\"div\");\n dom.addCssClass(this.container, \"ace_editor\");\n if (dom.HI_DPI)\n dom.addCssClass(this.container, \"ace_hidpi\");\n this.setTheme(theme);\n if (config.get(\"useStrictCSP\") == null)\n config.set(\"useStrictCSP\", false);\n this.$gutter = dom.createElement(\"div\");\n this.$gutter.className = \"ace_gutter\";\n this.container.appendChild(this.$gutter);\n this.$gutter.setAttribute(\"aria-hidden\", true);\n this.scroller = dom.createElement(\"div\");\n this.scroller.className = \"ace_scroller\";\n this.container.appendChild(this.scroller);\n this.content = dom.createElement(\"div\");\n this.content.className = \"ace_content\";\n this.scroller.appendChild(this.content);\n this.$gutterLayer = new GutterLayer(this.$gutter);\n this.$gutterLayer.on(\"changeGutterWidth\", this.onGutterResize.bind(this));\n this.$markerBack = new MarkerLayer(this.content);\n var textLayer = this.$textLayer = new TextLayer(this.content);\n this.canvas = textLayer.element;\n this.$markerFront = new MarkerLayer(this.content);\n this.$cursorLayer = new CursorLayer(this.content);\n this.$horizScroll = false;\n this.$vScroll = false;\n this.scrollBar =\n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.on(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.on(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n this.scrollTop = 0;\n this.scrollLeft = 0;\n this.cursorPos = {\n row: 0,\n column: 0\n };\n this.$fontMetrics = new FontMetrics(this.container);\n this.$textLayer.$setFontMetrics(this.$fontMetrics);\n this.$textLayer.on(\"changeCharacterSize\", function (e) {\n _self.updateCharacterSize();\n _self.onResize(true, _self.gutterWidth, _self.$size.width, _self.$size.height);\n _self._signal(\"changeCharacterSize\", e);\n });\n this.$size = {\n width: 0,\n height: 0,\n scrollerHeight: 0,\n scrollerWidth: 0,\n $dirty: true\n };\n this.layerConfig = {\n width: 1,\n padding: 0,\n firstRow: 0,\n firstRowScreen: 0,\n lastRow: 0,\n lineHeight: 0,\n characterWidth: 0,\n minHeight: 1,\n maxHeight: 1,\n offset: 0,\n height: 1,\n gutterOffset: 1\n };\n this.scrollMargin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n this.margin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n this.$keepTextAreaAtCursor = !useragent.isIOS;\n this.$loop = new RenderLoop(this.$renderChanges.bind(this), this.container.ownerDocument.defaultView);\n this.$loop.schedule(this.CHANGE_FULL);\n this.updateCharacterSize();\n this.setPadding(4);\n this.$addResizeObserver();\n config.resetOptions(this);\n config._signal(\"renderer\", this);\n }\n VirtualRenderer.prototype.updateCharacterSize = function () {\n if (this.$textLayer.allowBoldFonts != this.$allowBoldFonts) {\n this.$allowBoldFonts = this.$textLayer.allowBoldFonts;\n this.setStyle(\"ace_nobold\", !this.$allowBoldFonts);\n }\n this.layerConfig.characterWidth =\n this.characterWidth = this.$textLayer.getCharacterWidth();\n this.layerConfig.lineHeight =\n this.lineHeight = this.$textLayer.getLineHeight();\n this.$updatePrintMargin();\n dom.setStyle(this.scroller.style, \"line-height\", this.lineHeight + \"px\");\n };\n VirtualRenderer.prototype.setSession = function (session) {\n if (this.session)\n this.session.doc.off(\"changeNewLineMode\", this.onChangeNewLineMode);\n this.session = session;\n if (session && this.scrollMargin.top && session.getScrollTop() <= 0)\n session.setScrollTop(-this.scrollMargin.top);\n this.$cursorLayer.setSession(session);\n this.$markerBack.setSession(session);\n this.$markerFront.setSession(session);\n this.$gutterLayer.setSession(session);\n this.$textLayer.setSession(session);\n if (!session)\n return;\n this.$loop.schedule(this.CHANGE_FULL);\n this.session.$setFontMetrics(this.$fontMetrics);\n this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null;\n this.onChangeNewLineMode = this.onChangeNewLineMode.bind(this);\n this.onChangeNewLineMode();\n this.session.doc.on(\"changeNewLineMode\", this.onChangeNewLineMode);\n };\n VirtualRenderer.prototype.updateLines = function (firstRow, lastRow, force) {\n if (lastRow === undefined)\n lastRow = Infinity;\n if (!this.$changedLines) {\n this.$changedLines = {\n firstRow: firstRow,\n lastRow: lastRow\n };\n }\n else {\n if (this.$changedLines.firstRow > firstRow)\n this.$changedLines.firstRow = firstRow;\n if (this.$changedLines.lastRow < lastRow)\n this.$changedLines.lastRow = lastRow;\n }\n if (this.$changedLines.lastRow < this.layerConfig.firstRow) {\n if (force)\n this.$changedLines.lastRow = this.layerConfig.lastRow;\n else\n return;\n }\n if (this.$changedLines.firstRow > this.layerConfig.lastRow)\n return;\n this.$loop.schedule(this.CHANGE_LINES);\n };\n VirtualRenderer.prototype.onChangeNewLineMode = function () {\n this.$loop.schedule(this.CHANGE_TEXT);\n this.$textLayer.$updateEolChar();\n this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR);\n };\n VirtualRenderer.prototype.onChangeTabSize = function () {\n this.$loop.schedule(this.CHANGE_TEXT | this.CHANGE_MARKER);\n this.$textLayer.onChangeTabSize();\n };\n VirtualRenderer.prototype.updateText = function () {\n this.$loop.schedule(this.CHANGE_TEXT);\n };\n VirtualRenderer.prototype.updateFull = function (force) {\n if (force)\n this.$renderChanges(this.CHANGE_FULL, true);\n else\n this.$loop.schedule(this.CHANGE_FULL);\n };\n VirtualRenderer.prototype.updateFontSize = function () {\n this.$textLayer.checkForSizeChanges();\n };\n VirtualRenderer.prototype.$updateSizeAsync = function () {\n if (this.$loop.pending)\n this.$size.$dirty = true;\n else\n this.onResize();\n };\n VirtualRenderer.prototype.onResize = function (force, gutterWidth, width, height) {\n if (this.resizing > 2)\n return;\n else if (this.resizing > 0)\n this.resizing++;\n else\n this.resizing = force ? 1 : 0;\n var el = this.container;\n if (!height)\n height = el.clientHeight || el.scrollHeight;\n if (!width)\n width = el.clientWidth || el.scrollWidth;\n var changes = this.$updateCachedSize(force, gutterWidth, width, height);\n if (this.$resizeTimer)\n this.$resizeTimer.cancel();\n if (!this.$size.scrollerHeight || (!width && !height))\n return this.resizing = 0;\n if (force)\n this.$gutterLayer.$padding = null;\n if (force)\n this.$renderChanges(changes | this.$changes, true);\n else\n this.$loop.schedule(changes | this.$changes);\n if (this.resizing)\n this.resizing = 0;\n this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null;\n if (this.$customScrollbar) {\n this.$updateCustomScrollbar(true);\n }\n };\n VirtualRenderer.prototype.$updateCachedSize = function (force, gutterWidth, width, height) {\n height -= (this.$extraHeight || 0);\n var changes = 0;\n var size = this.$size;\n var oldSize = {\n width: size.width,\n height: size.height,\n scrollerHeight: size.scrollerHeight,\n scrollerWidth: size.scrollerWidth\n };\n if (height && (force || size.height != height)) {\n size.height = height;\n changes |= this.CHANGE_SIZE;\n size.scrollerHeight = size.height;\n if (this.$horizScroll)\n size.scrollerHeight -= this.scrollBarH.getHeight();\n this.scrollBarV.setHeight(size.scrollerHeight);\n this.scrollBarV.element.style.bottom = this.scrollBarH.getHeight() + \"px\";\n changes = changes | this.CHANGE_SCROLL;\n }\n if (width && (force || size.width != width)) {\n changes |= this.CHANGE_SIZE;\n size.width = width;\n if (gutterWidth == null)\n gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n this.gutterWidth = gutterWidth;\n dom.setStyle(this.scrollBarH.element.style, \"left\", gutterWidth + \"px\");\n dom.setStyle(this.scroller.style, \"left\", gutterWidth + this.margin.left + \"px\");\n size.scrollerWidth = Math.max(0, width - gutterWidth - this.scrollBarV.getWidth() - this.margin.h);\n dom.setStyle(this.$gutter.style, \"left\", this.margin.left + \"px\");\n var right = this.scrollBarV.getWidth() + \"px\";\n dom.setStyle(this.scrollBarH.element.style, \"right\", right);\n dom.setStyle(this.scroller.style, \"right\", right);\n dom.setStyle(this.scroller.style, \"bottom\", this.scrollBarH.getHeight());\n this.scrollBarH.setWidth(size.scrollerWidth);\n if (this.session && this.session.getUseWrapMode() && this.adjustWrapLimit() || force) {\n changes |= this.CHANGE_FULL;\n }\n }\n size.$dirty = !width || !height;\n if (changes)\n this._signal(\"resize\", oldSize);\n return changes;\n };\n VirtualRenderer.prototype.onGutterResize = function (width) {\n var gutterWidth = this.$showGutter ? width : 0;\n if (gutterWidth != this.gutterWidth)\n this.$changes |= this.$updateCachedSize(true, gutterWidth, this.$size.width, this.$size.height);\n if (this.session.getUseWrapMode() && this.adjustWrapLimit()) {\n this.$loop.schedule(this.CHANGE_FULL);\n }\n else if (this.$size.$dirty) {\n this.$loop.schedule(this.CHANGE_FULL);\n }\n else {\n this.$computeLayerConfig();\n }\n };\n VirtualRenderer.prototype.adjustWrapLimit = function () {\n var availableWidth = this.$size.scrollerWidth - this.$padding * 2;\n var limit = Math.floor(availableWidth / this.characterWidth);\n return this.session.adjustWrapLimit(limit, this.$showPrintMargin && this.$printMarginColumn);\n };\n VirtualRenderer.prototype.setAnimatedScroll = function (shouldAnimate) {\n this.setOption(\"animatedScroll\", shouldAnimate);\n };\n VirtualRenderer.prototype.getAnimatedScroll = function () {\n return this.$animatedScroll;\n };\n VirtualRenderer.prototype.setShowInvisibles = function (showInvisibles) {\n this.setOption(\"showInvisibles\", showInvisibles);\n this.session.$bidiHandler.setShowInvisibles(showInvisibles);\n };\n VirtualRenderer.prototype.getShowInvisibles = function () {\n return this.getOption(\"showInvisibles\");\n };\n VirtualRenderer.prototype.getDisplayIndentGuides = function () {\n return this.getOption(\"displayIndentGuides\");\n };\n VirtualRenderer.prototype.setDisplayIndentGuides = function (display) {\n this.setOption(\"displayIndentGuides\", display);\n };\n VirtualRenderer.prototype.getHighlightIndentGuides = function () {\n return this.getOption(\"highlightIndentGuides\");\n };\n VirtualRenderer.prototype.setHighlightIndentGuides = function (highlight) {\n this.setOption(\"highlightIndentGuides\", highlight);\n };\n VirtualRenderer.prototype.setShowPrintMargin = function (showPrintMargin) {\n this.setOption(\"showPrintMargin\", showPrintMargin);\n };\n VirtualRenderer.prototype.getShowPrintMargin = function () {\n return this.getOption(\"showPrintMargin\");\n };\n VirtualRenderer.prototype.setPrintMarginColumn = function (showPrintMargin) {\n this.setOption(\"printMarginColumn\", showPrintMargin);\n };\n VirtualRenderer.prototype.getPrintMarginColumn = function () {\n return this.getOption(\"printMarginColumn\");\n };\n VirtualRenderer.prototype.getShowGutter = function () {\n return this.getOption(\"showGutter\");\n };\n VirtualRenderer.prototype.setShowGutter = function (show) {\n return this.setOption(\"showGutter\", show);\n };\n VirtualRenderer.prototype.getFadeFoldWidgets = function () {\n return this.getOption(\"fadeFoldWidgets\");\n };\n VirtualRenderer.prototype.setFadeFoldWidgets = function (show) {\n this.setOption(\"fadeFoldWidgets\", show);\n };\n VirtualRenderer.prototype.setHighlightGutterLine = function (shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n VirtualRenderer.prototype.getHighlightGutterLine = function () {\n return this.getOption(\"highlightGutterLine\");\n };\n VirtualRenderer.prototype.$updatePrintMargin = function () {\n if (!this.$showPrintMargin && !this.$printMarginEl)\n return;\n if (!this.$printMarginEl) {\n var containerEl = dom.createElement(\"div\");\n containerEl.className = \"ace_layer ace_print-margin-layer\";\n this.$printMarginEl = dom.createElement(\"div\");\n this.$printMarginEl.className = \"ace_print-margin\";\n containerEl.appendChild(this.$printMarginEl);\n this.content.insertBefore(containerEl, this.content.firstChild);\n }\n var style = this.$printMarginEl.style;\n style.left = Math.round(this.characterWidth * this.$printMarginColumn + this.$padding) + \"px\";\n style.visibility = this.$showPrintMargin ? \"visible\" : \"hidden\";\n if (this.session && this.session.$wrap == -1)\n this.adjustWrapLimit();\n };\n VirtualRenderer.prototype.getContainerElement = function () {\n return this.container;\n };\n VirtualRenderer.prototype.getMouseEventTarget = function () {\n return this.scroller;\n };\n VirtualRenderer.prototype.getTextAreaContainer = function () {\n return this.container;\n };\n VirtualRenderer.prototype.$moveTextAreaToCursor = function () {\n if (this.$isMousePressed)\n return;\n var style = this.textarea.style;\n var composition = this.$composition;\n if (!this.$keepTextAreaAtCursor && !composition) {\n dom.translate(this.textarea, -100, 0);\n return;\n }\n var pixelPos = this.$cursorLayer.$pixelPos;\n if (!pixelPos)\n return;\n if (composition && composition.markerRange)\n pixelPos = this.$cursorLayer.getPixelPosition(composition.markerRange.start, true);\n var config = this.layerConfig;\n var posTop = pixelPos.top;\n var posLeft = pixelPos.left;\n posTop -= config.offset;\n var h = composition && composition.useTextareaForIME || useragent.isMobile ? this.lineHeight : 1;\n if (posTop < 0 || posTop > config.height - h) {\n dom.translate(this.textarea, 0, 0);\n return;\n }\n var w = 1;\n var maxTop = this.$size.height - h;\n if (!composition) {\n posTop += this.lineHeight;\n }\n else {\n if (composition.useTextareaForIME) {\n var val = this.textarea.value;\n w = this.characterWidth * (this.session.$getStringScreenWidth(val)[0]);\n }\n else {\n posTop += this.lineHeight + 2;\n }\n }\n posLeft -= this.scrollLeft;\n if (posLeft > this.$size.scrollerWidth - w)\n posLeft = this.$size.scrollerWidth - w;\n posLeft += this.gutterWidth + this.margin.left;\n dom.setStyle(style, \"height\", h + \"px\");\n dom.setStyle(style, \"width\", w + \"px\");\n dom.translate(this.textarea, Math.min(posLeft, this.$size.scrollerWidth - w), Math.min(posTop, maxTop));\n };\n VirtualRenderer.prototype.getFirstVisibleRow = function () {\n return this.layerConfig.firstRow;\n };\n VirtualRenderer.prototype.getFirstFullyVisibleRow = function () {\n return this.layerConfig.firstRow + (this.layerConfig.offset === 0 ? 0 : 1);\n };\n VirtualRenderer.prototype.getLastFullyVisibleRow = function () {\n var config = this.layerConfig;\n var lastRow = config.lastRow;\n var top = this.session.documentToScreenRow(lastRow, 0) * config.lineHeight;\n if (top - this.session.getScrollTop() > config.height - config.lineHeight)\n return lastRow - 1;\n return lastRow;\n };\n VirtualRenderer.prototype.getLastVisibleRow = function () {\n return this.layerConfig.lastRow;\n };\n VirtualRenderer.prototype.setPadding = function (padding) {\n this.$padding = padding;\n this.$textLayer.setPadding(padding);\n this.$cursorLayer.setPadding(padding);\n this.$markerFront.setPadding(padding);\n this.$markerBack.setPadding(padding);\n this.$loop.schedule(this.CHANGE_FULL);\n this.$updatePrintMargin();\n };\n VirtualRenderer.prototype.setScrollMargin = function (top, bottom, left, right) {\n var sm = this.scrollMargin;\n sm.top = top | 0;\n sm.bottom = bottom | 0;\n sm.right = right | 0;\n sm.left = left | 0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n if (sm.top && this.scrollTop <= 0 && this.session)\n this.session.setScrollTop(-sm.top);\n this.updateFull();\n };\n VirtualRenderer.prototype.setMargin = function (top, bottom, left, right) {\n var sm = this.margin;\n sm.top = top | 0;\n sm.bottom = bottom | 0;\n sm.right = right | 0;\n sm.left = left | 0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n this.$updateCachedSize(true, this.gutterWidth, this.$size.width, this.$size.height);\n this.updateFull();\n };\n VirtualRenderer.prototype.getHScrollBarAlwaysVisible = function () {\n return this.$hScrollBarAlwaysVisible;\n };\n VirtualRenderer.prototype.setHScrollBarAlwaysVisible = function (alwaysVisible) {\n this.setOption(\"hScrollBarAlwaysVisible\", alwaysVisible);\n };\n VirtualRenderer.prototype.getVScrollBarAlwaysVisible = function () {\n return this.$vScrollBarAlwaysVisible;\n };\n VirtualRenderer.prototype.setVScrollBarAlwaysVisible = function (alwaysVisible) {\n this.setOption(\"vScrollBarAlwaysVisible\", alwaysVisible);\n };\n VirtualRenderer.prototype.$updateScrollBarV = function () {\n var scrollHeight = this.layerConfig.maxHeight;\n var scrollerHeight = this.$size.scrollerHeight;\n if (!this.$maxLines && this.$scrollPastEnd) {\n scrollHeight -= (scrollerHeight - this.lineHeight) * this.$scrollPastEnd;\n if (this.scrollTop > scrollHeight - scrollerHeight) {\n scrollHeight = this.scrollTop + scrollerHeight;\n this.scrollBarV.scrollTop = null;\n }\n }\n this.scrollBarV.setScrollHeight(scrollHeight + this.scrollMargin.v);\n this.scrollBarV.setScrollTop(this.scrollTop + this.scrollMargin.top);\n };\n VirtualRenderer.prototype.$updateScrollBarH = function () {\n this.scrollBarH.setScrollWidth(this.layerConfig.width + 2 * this.$padding + this.scrollMargin.h);\n this.scrollBarH.setScrollLeft(this.scrollLeft + this.scrollMargin.left);\n };\n VirtualRenderer.prototype.freeze = function () {\n this.$frozen = true;\n };\n VirtualRenderer.prototype.unfreeze = function () {\n this.$frozen = false;\n };\n VirtualRenderer.prototype.$renderChanges = function (changes, force) {\n if (this.$changes) {\n changes |= this.$changes;\n this.$changes = 0;\n }\n if ((!this.session || !this.container.offsetWidth || this.$frozen) || (!changes && !force)) {\n this.$changes |= changes;\n return;\n }\n if (this.$size.$dirty) {\n this.$changes |= changes;\n return this.onResize(true);\n }\n if (!this.lineHeight) {\n this.$textLayer.checkForSizeChanges();\n }\n this._signal(\"beforeRender\", changes);\n if (this.session && this.session.$bidiHandler)\n this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);\n var config = this.layerConfig;\n if (changes & this.CHANGE_FULL ||\n changes & this.CHANGE_SIZE ||\n changes & this.CHANGE_TEXT ||\n changes & this.CHANGE_LINES ||\n changes & this.CHANGE_SCROLL ||\n changes & this.CHANGE_H_SCROLL) {\n changes |= this.$computeLayerConfig() | this.$loop.clear();\n if (config.firstRow != this.layerConfig.firstRow && config.firstRowScreen == this.layerConfig.firstRowScreen) {\n var st = this.scrollTop + (config.firstRow - Math.max(this.layerConfig.firstRow, 0)) * this.lineHeight;\n if (st > 0) {\n this.scrollTop = st;\n changes = changes | this.CHANGE_SCROLL;\n changes |= this.$computeLayerConfig() | this.$loop.clear();\n }\n }\n config = this.layerConfig;\n this.$updateScrollBarV();\n if (changes & this.CHANGE_H_SCROLL)\n this.$updateScrollBarH();\n dom.translate(this.content, -this.scrollLeft, -config.offset);\n var width = config.width + 2 * this.$padding + \"px\";\n var height = config.minHeight + \"px\";\n dom.setStyle(this.content.style, \"width\", width);\n dom.setStyle(this.content.style, \"height\", height);\n }\n if (changes & this.CHANGE_H_SCROLL) {\n dom.translate(this.content, -this.scrollLeft, -config.offset);\n this.scroller.className = this.scrollLeft <= 0 ? \"ace_scroller \" : \"ace_scroller ace_scroll-left \";\n if (this.enableKeyboardAccessibility)\n this.scroller.className += this.keyboardFocusClassName;\n }\n if (changes & this.CHANGE_FULL) {\n this.$changedLines = null;\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\", changes);\n return;\n }\n if (changes & this.CHANGE_SCROLL) {\n this.$changedLines = null;\n if (changes & this.CHANGE_TEXT || changes & this.CHANGE_LINES)\n this.$textLayer.update(config);\n else\n this.$textLayer.scrollLines(config);\n if (this.$showGutter) {\n if (changes & this.CHANGE_GUTTER || changes & this.CHANGE_LINES)\n this.$gutterLayer.update(config);\n else\n this.$gutterLayer.scrollLines(config);\n }\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\", changes);\n return;\n }\n if (changes & this.CHANGE_TEXT) {\n this.$changedLines = null;\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_LINES) {\n if (this.$updateLines() || (changes & this.CHANGE_GUTTER) && this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_TEXT || changes & this.CHANGE_GUTTER) {\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_CURSOR) {\n if (this.$highlightGutterLine)\n this.$gutterLayer.updateLineHighlight(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n if (changes & this.CHANGE_CURSOR) {\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n }\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_FRONT)) {\n this.$markerFront.update(config);\n }\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_BACK)) {\n this.$markerBack.update(config);\n }\n this._signal(\"afterRender\", changes);\n };\n VirtualRenderer.prototype.$autosize = function () {\n var height = this.session.getScreenLength() * this.lineHeight;\n var maxHeight = this.$maxLines * this.lineHeight;\n var desiredHeight = Math.min(maxHeight, Math.max((this.$minLines || 1) * this.lineHeight, height)) + this.scrollMargin.v + (this.$extraHeight || 0);\n if (this.$horizScroll)\n desiredHeight += this.scrollBarH.getHeight();\n if (this.$maxPixelHeight && desiredHeight > this.$maxPixelHeight)\n desiredHeight = this.$maxPixelHeight;\n var hideScrollbars = desiredHeight <= 2 * this.lineHeight;\n var vScroll = !hideScrollbars && height > maxHeight;\n if (desiredHeight != this.desiredHeight ||\n this.$size.height != this.desiredHeight || vScroll != this.$vScroll) {\n if (vScroll != this.$vScroll) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n var w = this.container.clientWidth;\n this.container.style.height = desiredHeight + \"px\";\n this.$updateCachedSize(true, this.$gutterWidth, w, desiredHeight);\n this.desiredHeight = desiredHeight;\n this._signal(\"autosize\");\n }\n };\n VirtualRenderer.prototype.$computeLayerConfig = function () {\n var session = this.session;\n var size = this.$size;\n var hideScrollbars = size.height <= 2 * this.lineHeight;\n var screenLines = this.session.getScreenLength();\n var maxHeight = screenLines * this.lineHeight;\n var longestLine = this.$getLongestLine();\n var horizScroll = !hideScrollbars && (this.$hScrollBarAlwaysVisible ||\n size.scrollerWidth - longestLine - 2 * this.$padding < 0);\n var hScrollChanged = this.$horizScroll !== horizScroll;\n if (hScrollChanged) {\n this.$horizScroll = horizScroll;\n this.scrollBarH.setVisible(horizScroll);\n }\n var vScrollBefore = this.$vScroll; // autosize can change vscroll value in which case we need to update longestLine\n if (this.$maxLines && this.lineHeight > 1)\n this.$autosize();\n var minHeight = size.scrollerHeight + this.lineHeight;\n var scrollPastEnd = !this.$maxLines && this.$scrollPastEnd\n ? (size.scrollerHeight - this.lineHeight) * this.$scrollPastEnd\n : 0;\n maxHeight += scrollPastEnd;\n var sm = this.scrollMargin;\n this.session.setScrollTop(Math.max(-sm.top, Math.min(this.scrollTop, maxHeight - size.scrollerHeight + sm.bottom)));\n this.session.setScrollLeft(Math.max(-sm.left, Math.min(this.scrollLeft, longestLine + 2 * this.$padding - size.scrollerWidth + sm.right)));\n var vScroll = !hideScrollbars && (this.$vScrollBarAlwaysVisible ||\n size.scrollerHeight - maxHeight + scrollPastEnd < 0 || this.scrollTop > sm.top);\n var vScrollChanged = vScrollBefore !== vScroll;\n if (vScrollChanged) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n var offset = this.scrollTop % this.lineHeight;\n var lineCount = Math.ceil(minHeight / this.lineHeight) - 1;\n var firstRow = Math.max(0, Math.round((this.scrollTop - offset) / this.lineHeight));\n var lastRow = firstRow + lineCount;\n var firstRowScreen, firstRowHeight;\n var lineHeight = this.lineHeight;\n firstRow = session.screenToDocumentRow(firstRow, 0);\n var foldLine = session.getFoldLine(firstRow);\n if (foldLine) {\n firstRow = foldLine.start.row;\n }\n firstRowScreen = session.documentToScreenRow(firstRow, 0);\n firstRowHeight = session.getRowLength(firstRow) * lineHeight;\n lastRow = Math.min(session.screenToDocumentRow(lastRow, 0), session.getLength() - 1);\n minHeight = size.scrollerHeight + session.getRowLength(lastRow) * lineHeight +\n firstRowHeight;\n offset = this.scrollTop - firstRowScreen * lineHeight;\n var changes = 0;\n if (this.layerConfig.width != longestLine || hScrollChanged)\n changes = this.CHANGE_H_SCROLL;\n if (hScrollChanged || vScrollChanged) {\n changes |= this.$updateCachedSize(true, this.gutterWidth, size.width, size.height);\n this._signal(\"scrollbarVisibilityChanged\");\n if (vScrollChanged)\n longestLine = this.$getLongestLine();\n }\n this.layerConfig = {\n width: longestLine,\n padding: this.$padding,\n firstRow: firstRow,\n firstRowScreen: firstRowScreen,\n lastRow: lastRow,\n lineHeight: lineHeight,\n characterWidth: this.characterWidth,\n minHeight: minHeight,\n maxHeight: maxHeight,\n offset: offset,\n gutterOffset: lineHeight ? Math.max(0, Math.ceil((offset + size.height - size.scrollerHeight) / lineHeight)) : 0,\n height: this.$size.scrollerHeight\n };\n if (this.session.$bidiHandler)\n this.session.$bidiHandler.setContentWidth(longestLine - this.$padding);\n return changes;\n };\n VirtualRenderer.prototype.$updateLines = function () {\n if (!this.$changedLines)\n return;\n var firstRow = this.$changedLines.firstRow;\n var lastRow = this.$changedLines.lastRow;\n this.$changedLines = null;\n var layerConfig = this.layerConfig;\n if (firstRow > layerConfig.lastRow + 1) {\n return;\n }\n if (lastRow < layerConfig.firstRow) {\n return;\n }\n if (lastRow === Infinity) {\n if (this.$showGutter)\n this.$gutterLayer.update(layerConfig);\n this.$textLayer.update(layerConfig);\n return;\n }\n this.$textLayer.updateLines(layerConfig, firstRow, lastRow);\n return true;\n };\n VirtualRenderer.prototype.$getLongestLine = function () {\n var charCount = this.session.getScreenWidth();\n if (this.showInvisibles && !this.session.$useWrapMode)\n charCount += 1;\n if (this.$textLayer && charCount > this.$textLayer.MAX_LINE_LENGTH)\n charCount = this.$textLayer.MAX_LINE_LENGTH + 30;\n return Math.max(this.$size.scrollerWidth - 2 * this.$padding, Math.round(charCount * this.characterWidth));\n };\n VirtualRenderer.prototype.updateFrontMarkers = function () {\n this.$markerFront.setMarkers(this.session.getMarkers(true));\n this.$loop.schedule(this.CHANGE_MARKER_FRONT);\n };\n VirtualRenderer.prototype.updateBackMarkers = function () {\n this.$markerBack.setMarkers(this.session.getMarkers());\n this.$loop.schedule(this.CHANGE_MARKER_BACK);\n };\n VirtualRenderer.prototype.addGutterDecoration = function (row, className) {\n this.$gutterLayer.addGutterDecoration(row, className);\n };\n VirtualRenderer.prototype.removeGutterDecoration = function (row, className) {\n this.$gutterLayer.removeGutterDecoration(row, className);\n };\n VirtualRenderer.prototype.updateBreakpoints = function (rows) {\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n VirtualRenderer.prototype.setAnnotations = function (annotations) {\n this.$gutterLayer.setAnnotations(annotations);\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n VirtualRenderer.prototype.updateCursor = function () {\n this.$loop.schedule(this.CHANGE_CURSOR);\n };\n VirtualRenderer.prototype.hideCursor = function () {\n this.$cursorLayer.hideCursor();\n };\n VirtualRenderer.prototype.showCursor = function () {\n this.$cursorLayer.showCursor();\n };\n VirtualRenderer.prototype.scrollSelectionIntoView = function (anchor, lead, offset) {\n this.scrollCursorIntoView(anchor, offset);\n this.scrollCursorIntoView(lead, offset);\n };\n VirtualRenderer.prototype.scrollCursorIntoView = function (cursor, offset, $viewMargin) {\n if (this.$size.scrollerHeight === 0)\n return;\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var newLeft = pos.left;\n var newTop = pos.top;\n var topMargin = $viewMargin && $viewMargin.top || 0;\n var bottomMargin = $viewMargin && $viewMargin.bottom || 0;\n if (this.$scrollAnimation) {\n this.$stopAnimation = true;\n }\n var currentTop = this.$scrollAnimation ? this.session.getScrollTop() : this.scrollTop;\n if (currentTop + topMargin > newTop) {\n if (offset && currentTop + topMargin > newTop + this.lineHeight)\n newTop -= offset * this.$size.scrollerHeight;\n if (newTop === 0)\n newTop = -this.scrollMargin.top;\n this.session.setScrollTop(newTop);\n }\n else if (currentTop + this.$size.scrollerHeight - bottomMargin < newTop + this.lineHeight) {\n if (offset && currentTop + this.$size.scrollerHeight - bottomMargin < newTop - this.lineHeight)\n newTop += offset * this.$size.scrollerHeight;\n this.session.setScrollTop(newTop + this.lineHeight + bottomMargin - this.$size.scrollerHeight);\n }\n var currentLeft = this.scrollLeft;\n var twoCharsWidth = 2 * this.layerConfig.characterWidth;\n if (newLeft - twoCharsWidth < currentLeft) {\n newLeft -= twoCharsWidth;\n if (newLeft < this.$padding + twoCharsWidth) {\n newLeft = -this.scrollMargin.left;\n }\n this.session.setScrollLeft(newLeft);\n }\n else {\n newLeft += twoCharsWidth;\n if (currentLeft + this.$size.scrollerWidth < newLeft + this.characterWidth) {\n this.session.setScrollLeft(Math.round(newLeft + this.characterWidth - this.$size.scrollerWidth));\n }\n else if (currentLeft <= this.$padding && newLeft - currentLeft < this.characterWidth) {\n this.session.setScrollLeft(0);\n }\n }\n };\n VirtualRenderer.prototype.getScrollTop = function () {\n return this.session.getScrollTop();\n };\n VirtualRenderer.prototype.getScrollLeft = function () {\n return this.session.getScrollLeft();\n };\n VirtualRenderer.prototype.getScrollTopRow = function () {\n return this.scrollTop / this.lineHeight;\n };\n VirtualRenderer.prototype.getScrollBottomRow = function () {\n return Math.max(0, Math.floor((this.scrollTop + this.$size.scrollerHeight) / this.lineHeight) - 1);\n };\n VirtualRenderer.prototype.scrollToRow = function (row) {\n this.session.setScrollTop(row * this.lineHeight);\n };\n VirtualRenderer.prototype.alignCursor = function (cursor, alignment) {\n if (typeof cursor == \"number\")\n cursor = { row: cursor, column: 0 };\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var h = this.$size.scrollerHeight - this.lineHeight;\n var offset = pos.top - h * (alignment || 0);\n this.session.setScrollTop(offset);\n return offset;\n };\n VirtualRenderer.prototype.$calcSteps = function (fromValue, toValue) {\n var i = 0;\n var l = this.STEPS;\n var steps = [];\n var func = function (t, x_min, dx) {\n return dx * (Math.pow(t - 1, 3) + 1) + x_min;\n };\n for (i = 0; i < l; ++i)\n steps.push(func(i / this.STEPS, fromValue, toValue - fromValue));\n return steps;\n };\n VirtualRenderer.prototype.scrollToLine = function (line, center, animate, callback) {\n var pos = this.$cursorLayer.getPixelPosition({ row: line, column: 0 });\n var offset = pos.top;\n if (center)\n offset -= this.$size.scrollerHeight / 2;\n var initialScroll = this.scrollTop;\n this.session.setScrollTop(offset);\n if (animate !== false)\n this.animateScrolling(initialScroll, callback);\n };\n VirtualRenderer.prototype.animateScrolling = function (fromValue, callback) {\n var toValue = this.scrollTop;\n if (!this.$animatedScroll)\n return;\n var _self = this;\n if (fromValue == toValue)\n return;\n if (this.$scrollAnimation) {\n var oldSteps = this.$scrollAnimation.steps;\n if (oldSteps.length) {\n fromValue = oldSteps[0];\n if (fromValue == toValue)\n return;\n }\n }\n var steps = _self.$calcSteps(fromValue, toValue);\n this.$scrollAnimation = { from: fromValue, to: toValue, steps: steps };\n clearInterval(this.$timer);\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n function endAnimation() {\n _self.$timer = clearInterval(_self.$timer);\n _self.$scrollAnimation = null;\n _self.$stopAnimation = false;\n callback && callback();\n }\n this.$timer = setInterval(function () {\n if (_self.$stopAnimation) {\n endAnimation();\n return;\n }\n if (!_self.session)\n return clearInterval(_self.$timer);\n if (steps.length) {\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n }\n else if (toValue != null) {\n _self.session.$scrollTop = -1;\n _self.session.setScrollTop(toValue);\n toValue = null;\n }\n else {\n endAnimation();\n }\n }, 10);\n };\n VirtualRenderer.prototype.scrollToY = function (scrollTop) {\n if (this.scrollTop !== scrollTop) {\n this.$loop.schedule(this.CHANGE_SCROLL);\n this.scrollTop = scrollTop;\n }\n };\n VirtualRenderer.prototype.scrollToX = function (scrollLeft) {\n if (this.scrollLeft !== scrollLeft)\n this.scrollLeft = scrollLeft;\n this.$loop.schedule(this.CHANGE_H_SCROLL);\n };\n VirtualRenderer.prototype.scrollTo = function (x, y) {\n this.session.setScrollTop(y);\n this.session.setScrollLeft(x);\n };\n VirtualRenderer.prototype.scrollBy = function (deltaX, deltaY) {\n deltaY && this.session.setScrollTop(this.session.getScrollTop() + deltaY);\n deltaX && this.session.setScrollLeft(this.session.getScrollLeft() + deltaX);\n };\n VirtualRenderer.prototype.isScrollableBy = function (deltaX, deltaY) {\n if (deltaY < 0 && this.session.getScrollTop() >= 1 - this.scrollMargin.top)\n return true;\n if (deltaY > 0 && this.session.getScrollTop() + this.$size.scrollerHeight\n - this.layerConfig.maxHeight < -1 + this.scrollMargin.bottom)\n return true;\n if (deltaX < 0 && this.session.getScrollLeft() >= 1 - this.scrollMargin.left)\n return true;\n if (deltaX > 0 && this.session.getScrollLeft() + this.$size.scrollerWidth\n - this.layerConfig.width < -1 + this.scrollMargin.right)\n return true;\n };\n VirtualRenderer.prototype.pixelToScreenCoordinates = function (x, y) {\n var canvasPos;\n if (this.$hasCssTransforms) {\n canvasPos = { top: 0, left: 0 };\n var p = this.$fontMetrics.transformCoordinates([x, y]);\n x = p[1] - this.gutterWidth - this.margin.left;\n y = p[0];\n }\n else {\n canvasPos = this.scroller.getBoundingClientRect();\n }\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n var offset = offsetX / this.characterWidth;\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n var col = this.$blockCursor ? Math.floor(offset) : Math.round(offset);\n return { row: row, column: col, side: offset - col > 0 ? 1 : -1, offsetX: offsetX };\n };\n VirtualRenderer.prototype.screenToTextCoordinates = function (x, y) {\n var canvasPos;\n if (this.$hasCssTransforms) {\n canvasPos = { top: 0, left: 0 };\n var p = this.$fontMetrics.transformCoordinates([x, y]);\n x = p[1] - this.gutterWidth - this.margin.left;\n y = p[0];\n }\n else {\n canvasPos = this.scroller.getBoundingClientRect();\n }\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n var offset = offsetX / this.characterWidth;\n var col = this.$blockCursor ? Math.floor(offset) : Math.round(offset);\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n return this.session.screenToDocumentPosition(row, Math.max(col, 0), offsetX);\n };\n VirtualRenderer.prototype.textToScreenCoordinates = function (row, column) {\n var canvasPos = this.scroller.getBoundingClientRect();\n var pos = this.session.documentToScreenPosition(row, column);\n var x = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : Math.round(pos.column * this.characterWidth));\n var y = pos.row * this.lineHeight;\n return {\n pageX: canvasPos.left + x - this.scrollLeft,\n pageY: canvasPos.top + y - this.scrollTop\n };\n };\n VirtualRenderer.prototype.visualizeFocus = function () {\n dom.addCssClass(this.container, \"ace_focus\");\n };\n VirtualRenderer.prototype.visualizeBlur = function () {\n dom.removeCssClass(this.container, \"ace_focus\");\n };\n VirtualRenderer.prototype.showComposition = function (composition) {\n this.$composition = composition;\n if (!composition.cssText) {\n composition.cssText = this.textarea.style.cssText;\n }\n if (composition.useTextareaForIME == undefined)\n composition.useTextareaForIME = this.$useTextareaForIME;\n if (this.$useTextareaForIME) {\n dom.addCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = \"\";\n this.$moveTextAreaToCursor();\n this.$cursorLayer.element.style.display = \"none\";\n }\n else {\n composition.markerId = this.session.addMarker(composition.markerRange, \"ace_composition_marker\", \"text\");\n }\n };\n VirtualRenderer.prototype.setCompositionText = function (text) {\n var cursor = this.session.selection.cursor;\n this.addToken(text, \"composition_placeholder\", cursor.row, cursor.column);\n this.$moveTextAreaToCursor();\n };\n VirtualRenderer.prototype.hideComposition = function () {\n if (!this.$composition)\n return;\n if (this.$composition.markerId)\n this.session.removeMarker(this.$composition.markerId);\n dom.removeCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = this.$composition.cssText;\n var cursor = this.session.selection.cursor;\n this.removeExtraToken(cursor.row, cursor.column);\n this.$composition = null;\n this.$cursorLayer.element.style.display = \"\";\n };\n VirtualRenderer.prototype.setGhostText = function (text, position) {\n var cursor = this.session.selection.cursor;\n var insertPosition = position || { row: cursor.row, column: cursor.column };\n this.removeGhostText();\n var textLines = text.split(\"\\n\");\n this.addToken(textLines[0], \"ghost_text\", insertPosition.row, insertPosition.column);\n this.$ghostText = {\n text: text,\n position: {\n row: insertPosition.row,\n column: insertPosition.column\n }\n };\n if (textLines.length > 1) {\n this.$ghostTextWidget = {\n text: textLines.slice(1).join(\"\\n\"),\n row: insertPosition.row,\n column: insertPosition.column,\n className: \"ace_ghost_text\"\n };\n this.session.widgetManager.addLineWidget(this.$ghostTextWidget);\n var pixelPosition = this.$cursorLayer.getPixelPosition(insertPosition, true);\n var el = this.container;\n var height = el.getBoundingClientRect().height;\n var ghostTextHeight = textLines.length * this.lineHeight;\n var fitsY = ghostTextHeight < height - pixelPosition.top;\n if (fitsY)\n return;\n if (ghostTextHeight < height) {\n this.scrollBy(0, (textLines.length - 1) * this.lineHeight);\n }\n else {\n this.scrollBy(0, pixelPosition.top);\n }\n }\n };\n VirtualRenderer.prototype.removeGhostText = function () {\n if (!this.$ghostText)\n return;\n var position = this.$ghostText.position;\n this.removeExtraToken(position.row, position.column);\n if (this.$ghostTextWidget) {\n this.session.widgetManager.removeLineWidget(this.$ghostTextWidget);\n this.$ghostTextWidget = null;\n }\n this.$ghostText = null;\n };\n VirtualRenderer.prototype.addToken = function (text, type, row, column) {\n var session = this.session;\n session.bgTokenizer.lines[row] = null;\n var newToken = { type: type, value: text };\n var tokens = session.getTokens(row);\n if (column == null || !tokens.length) {\n tokens.push(newToken);\n }\n else {\n var l = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n l += token.value.length;\n if (column <= l) {\n var diff = token.value.length - (l - column);\n var before = token.value.slice(0, diff);\n var after = token.value.slice(diff);\n tokens.splice(i, 1, { type: token.type, value: before }, newToken, { type: token.type, value: after });\n break;\n }\n }\n }\n this.updateLines(row, row);\n };\n VirtualRenderer.prototype.removeExtraToken = function (row, column) {\n this.session.bgTokenizer.lines[row] = null;\n this.updateLines(row, row);\n };\n VirtualRenderer.prototype.setTheme = function (theme, cb) {\n var _self = this;\n this.$themeId = theme;\n _self._dispatchEvent('themeChange', { theme: theme });\n if (!theme || typeof theme == \"string\") {\n var moduleName = theme || this.$options.theme.initialValue;\n config.loadModule([\"theme\", moduleName], afterLoad);\n }\n else {\n afterLoad(theme);\n }\n function afterLoad(module) {\n if (_self.$themeId != theme)\n return cb && cb();\n if (!module || !module.cssClass)\n throw new Error(\"couldn't load module \" + theme + \" or it didn't call define\");\n if (module.$id)\n _self.$themeId = module.$id;\n dom.importCssString(module.cssText, module.cssClass, _self.container);\n if (_self.theme)\n dom.removeCssClass(_self.container, _self.theme.cssClass);\n var padding = \"padding\" in module ? module.padding\n : \"padding\" in (_self.theme || {}) ? 4 : _self.$padding;\n if (_self.$padding && padding != _self.$padding)\n _self.setPadding(padding);\n _self.$theme = module.cssClass;\n _self.theme = module;\n dom.addCssClass(_self.container, module.cssClass);\n dom.setCssClass(_self.container, \"ace_dark\", module.isDark);\n if (_self.$size) {\n _self.$size.width = 0;\n _self.$updateSizeAsync();\n }\n _self._dispatchEvent('themeLoaded', { theme: module });\n cb && cb();\n }\n };\n VirtualRenderer.prototype.getTheme = function () {\n return this.$themeId;\n };\n VirtualRenderer.prototype.setStyle = function (style, include) {\n dom.setCssClass(this.container, style, include !== false);\n };\n VirtualRenderer.prototype.unsetStyle = function (style) {\n dom.removeCssClass(this.container, style);\n };\n VirtualRenderer.prototype.setCursorStyle = function (style) {\n dom.setStyle(this.scroller.style, \"cursor\", style);\n };\n VirtualRenderer.prototype.setMouseCursor = function (cursorStyle) {\n dom.setStyle(this.scroller.style, \"cursor\", cursorStyle);\n };\n VirtualRenderer.prototype.attachToShadowRoot = function () {\n dom.importCssString(editorCss, \"ace_editor.css\", this.container);\n };\n VirtualRenderer.prototype.destroy = function () {\n this.freeze();\n this.$fontMetrics.destroy();\n this.$cursorLayer.destroy();\n this.removeAllListeners();\n this.container.textContent = \"\";\n this.setOption(\"useResizeObserver\", false);\n };\n VirtualRenderer.prototype.$updateCustomScrollbar = function (val) {\n var _self = this;\n this.$horizScroll = this.$vScroll = null;\n this.scrollBarV.element.remove();\n this.scrollBarH.element.remove();\n if (this.$scrollDecorator) {\n delete this.$scrollDecorator;\n }\n if (val === true) {\n this.scrollBarV = new VScrollBarCustom(this.container, this);\n this.scrollBarH = new HScrollBarCustom(this.container, this);\n this.scrollBarV.setHeight(this.$size.scrollerHeight);\n this.scrollBarH.setWidth(this.$size.scrollerWidth);\n this.scrollBarV.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n this.$scrollDecorator = new Decorator(this.scrollBarV, this);\n this.$scrollDecorator.$updateDecorators();\n }\n else {\n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n }\n };\n VirtualRenderer.prototype.$addResizeObserver = function () {\n if (!window.ResizeObserver || this.$resizeObserver)\n return;\n var self = this;\n this.$resizeTimer = lang.delayedCall(function () {\n if (!self.destroyed)\n self.onResize();\n }, 50);\n this.$resizeObserver = new window.ResizeObserver(function (e) {\n var w = e[0].contentRect.width;\n var h = e[0].contentRect.height;\n if (Math.abs(self.$size.width - w) > 1\n || Math.abs(self.$size.height - h) > 1) {\n self.$resizeTimer.delay();\n }\n else {\n self.$resizeTimer.cancel();\n }\n });\n this.$resizeObserver.observe(this.container);\n };\n return VirtualRenderer;\n}());\nVirtualRenderer.prototype.CHANGE_CURSOR = 1;\nVirtualRenderer.prototype.CHANGE_MARKER = 2;\nVirtualRenderer.prototype.CHANGE_GUTTER = 4;\nVirtualRenderer.prototype.CHANGE_SCROLL = 8;\nVirtualRenderer.prototype.CHANGE_LINES = 16;\nVirtualRenderer.prototype.CHANGE_TEXT = 32;\nVirtualRenderer.prototype.CHANGE_SIZE = 64;\nVirtualRenderer.prototype.CHANGE_MARKER_BACK = 128;\nVirtualRenderer.prototype.CHANGE_MARKER_FRONT = 256;\nVirtualRenderer.prototype.CHANGE_FULL = 512;\nVirtualRenderer.prototype.CHANGE_H_SCROLL = 1024;\nVirtualRenderer.prototype.$changes = 0;\nVirtualRenderer.prototype.$padding = null;\nVirtualRenderer.prototype.$frozen = false;\nVirtualRenderer.prototype.STEPS = 8;\noop.implement(VirtualRenderer.prototype, EventEmitter);\nconfig.defineOptions(VirtualRenderer.prototype, \"renderer\", {\n useResizeObserver: {\n set: function (value) {\n if (!value && this.$resizeObserver) {\n this.$resizeObserver.disconnect();\n this.$resizeTimer.cancel();\n this.$resizeTimer = this.$resizeObserver = null;\n }\n else if (value && !this.$resizeObserver) {\n this.$addResizeObserver();\n }\n }\n },\n animatedScroll: { initialValue: false },\n showInvisibles: {\n set: function (value) {\n if (this.$textLayer.setShowInvisibles(value))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: false\n },\n showPrintMargin: {\n set: function () { this.$updatePrintMargin(); },\n initialValue: true\n },\n printMarginColumn: {\n set: function () { this.$updatePrintMargin(); },\n initialValue: 80\n },\n printMargin: {\n set: function (val) {\n if (typeof val == \"number\")\n this.$printMarginColumn = val;\n this.$showPrintMargin = !!val;\n this.$updatePrintMargin();\n },\n get: function () {\n return this.$showPrintMargin && this.$printMarginColumn;\n }\n },\n showGutter: {\n set: function (show) {\n this.$gutter.style.display = show ? \"block\" : \"none\";\n this.$loop.schedule(this.CHANGE_FULL);\n this.onGutterResize();\n },\n initialValue: true\n },\n useSvgGutterIcons: {\n set: function (value) {\n this.$gutterLayer.$useSvgGutterIcons = value;\n },\n initialValue: false\n },\n showFoldedAnnotations: {\n set: function (value) {\n this.$gutterLayer.$showFoldedAnnotations = value;\n },\n initialValue: false\n },\n fadeFoldWidgets: {\n set: function (show) {\n dom.setCssClass(this.$gutter, \"ace_fade-fold-widgets\", show);\n },\n initialValue: false\n },\n showFoldWidgets: {\n set: function (show) {\n this.$gutterLayer.setShowFoldWidgets(show);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n displayIndentGuides: {\n set: function (show) {\n if (this.$textLayer.setDisplayIndentGuides(show))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: true\n },\n highlightIndentGuides: {\n set: function (show) {\n if (this.$textLayer.setHighlightIndentGuides(show) == true) {\n this.$textLayer.$highlightIndentGuide();\n }\n else {\n this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells);\n }\n },\n initialValue: true\n },\n highlightGutterLine: {\n set: function (shouldHighlight) {\n this.$gutterLayer.setHighlightGutterLine(shouldHighlight);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n hScrollBarAlwaysVisible: {\n set: function (val) {\n if (!this.$hScrollBarAlwaysVisible || !this.$horizScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n vScrollBarAlwaysVisible: {\n set: function (val) {\n if (!this.$vScrollBarAlwaysVisible || !this.$vScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n fontSize: {\n set: function (size) {\n if (typeof size == \"number\")\n size = size + \"px\";\n this.container.style.fontSize = size;\n this.updateFontSize();\n },\n initialValue: 12\n },\n fontFamily: {\n set: function (name) {\n this.container.style.fontFamily = name;\n this.updateFontSize();\n }\n },\n maxLines: {\n set: function (val) {\n this.updateFull();\n }\n },\n minLines: {\n set: function (val) {\n if (!(this.$minLines < 0x1ffffffffffff))\n this.$minLines = 0;\n this.updateFull();\n }\n },\n maxPixelHeight: {\n set: function (val) {\n this.updateFull();\n },\n initialValue: 0\n },\n scrollPastEnd: {\n set: function (val) {\n val = +val || 0;\n if (this.$scrollPastEnd == val)\n return;\n this.$scrollPastEnd = val;\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: 0,\n handlesSet: true\n },\n fixedWidthGutter: {\n set: function (val) {\n this.$gutterLayer.$fixedWidth = !!val;\n this.$loop.schedule(this.CHANGE_GUTTER);\n }\n },\n customScrollbar: {\n set: function (val) {\n this.$updateCustomScrollbar(val);\n },\n initialValue: false\n },\n theme: {\n set: function (val) { this.setTheme(val); },\n get: function () { return this.$themeId || this.theme; },\n initialValue: \"./theme/textmate\",\n handlesSet: true\n },\n hasCssTransforms: {},\n useTextareaForIME: {\n initialValue: !useragent.isMobile && !useragent.isIE\n }\n});\nexports.VirtualRenderer = VirtualRenderer;\n\n});\n\nace.define(\"ace/worker/worker_client\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/event_emitter\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar net = require(\"../lib/net\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar config = require(\"../config\");\n\nfunction $workerBlob(workerUrl) {\n var script = \"importScripts('\" + net.qualifyURL(workerUrl) + \"');\";\n try {\n return new Blob([script], {\"type\": \"application/javascript\"});\n } catch (e) { // Backwards-compatibility\n var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;\n var blobBuilder = new BlobBuilder();\n blobBuilder.append(script);\n return blobBuilder.getBlob(\"application/javascript\");\n }\n}\n\nfunction createWorker(workerUrl) {\n if (typeof Worker == \"undefined\")\n return { postMessage: function() {}, terminate: function() {} };\n if (config.get(\"loadWorkerFromBlob\")) {\n var blob = $workerBlob(workerUrl);\n var URL = window.URL || window.webkitURL;\n var blobURL = URL.createObjectURL(blob);\n return new Worker(blobURL);\n }\n return new Worker(workerUrl);\n}\n\nvar WorkerClient = function(worker) {\n if (!worker.postMessage)\n worker = this.$createWorkerFromOldConfig.apply(this, arguments);\n\n this.$worker = worker;\n this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n this.changeListener = this.changeListener.bind(this);\n this.onMessage = this.onMessage.bind(this);\n\n this.callbackId = 1;\n this.callbacks = {};\n\n this.$worker.onmessage = this.onMessage;\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n\n this.$createWorkerFromOldConfig = function(topLevelNamespaces, mod, classname, workerUrl, importScripts) {\n if (require.nameToUrl && !require.toUrl)\n require.toUrl = require.nameToUrl;\n\n if (config.get(\"packaged\") || !require.toUrl) {\n workerUrl = workerUrl || config.moduleUrl(mod, \"worker\");\n } else {\n var normalizePath = this.$normalizePath;\n workerUrl = workerUrl || normalizePath(require.toUrl(\"ace/worker/worker.js\", null, \"_\"));\n\n var tlns = {};\n topLevelNamespaces.forEach(function(ns) {\n tlns[ns] = normalizePath(require.toUrl(ns, null, \"_\").replace(/(\\.js)?(\\?.*)?$/, \"\"));\n });\n }\n\n this.$worker = createWorker(workerUrl);\n if (importScripts) {\n this.send(\"importScripts\", importScripts);\n }\n this.$worker.postMessage({\n init : true,\n tlns : tlns,\n module : mod,\n classname : classname\n });\n return this.$worker;\n };\n\n this.onMessage = function(e) {\n var msg = e.data;\n switch (msg.type) {\n case \"event\":\n this._signal(msg.name, {data: msg.data});\n break;\n case \"call\":\n var callback = this.callbacks[msg.id];\n if (callback) {\n callback(msg.data);\n delete this.callbacks[msg.id];\n }\n break;\n case \"error\":\n this.reportError(msg.data);\n break;\n case \"log\":\n window.console && console.log && console.log.apply(console, msg.data);\n break;\n }\n };\n \n this.reportError = function(err) {\n window.console && console.error && console.error(err);\n };\n\n this.$normalizePath = function(path) {\n return net.qualifyURL(path);\n };\n\n this.terminate = function() {\n this._signal(\"terminate\", {});\n this.deltaQueue = null;\n this.$worker.terminate();\n this.$worker.onerror = function(e) {\n e.preventDefault();\n };\n this.$worker = null;\n if (this.$doc)\n this.$doc.off(\"change\", this.changeListener);\n this.$doc = null;\n };\n\n this.send = function(cmd, args) {\n this.$worker.postMessage({command: cmd, args: args});\n };\n\n this.call = function(cmd, args, callback) {\n if (callback) {\n var id = this.callbackId++;\n this.callbacks[id] = callback;\n args.push(id);\n }\n this.send(cmd, args);\n };\n\n this.emit = function(event, data) {\n try {\n if (data.data && data.data.err)\n data.data.err = {message: data.data.err.message, stack: data.data.err.stack, code: data.data.err.code};\n this.$worker && this.$worker.postMessage({event: event, data: {data: data.data}});\n }\n catch(ex) {\n console.error(ex.stack);\n }\n };\n\n this.attachToDocument = function(doc) {\n if (this.$doc)\n this.terminate();\n\n this.$doc = doc;\n this.call(\"setValue\", [doc.getValue()]);\n doc.on(\"change\", this.changeListener, true);\n };\n\n this.changeListener = function(delta) {\n if (!this.deltaQueue) {\n this.deltaQueue = [];\n setTimeout(this.$sendDeltaQueue, 0);\n }\n if (delta.action == \"insert\")\n this.deltaQueue.push(delta.start, delta.lines);\n else\n this.deltaQueue.push(delta.start, delta.end);\n };\n\n this.$sendDeltaQueue = function() {\n var q = this.deltaQueue;\n if (!q) return;\n this.deltaQueue = null;\n if (q.length > 50 && q.length > this.$doc.getLength() >> 1) {\n this.call(\"setValue\", [this.$doc.getValue()]);\n } else\n this.emit(\"change\", {data: q});\n };\n\n}).call(WorkerClient.prototype);\n\n\nvar UIWorkerClient = function(topLevelNamespaces, mod, classname) {\n var main = null;\n var emitSync = false;\n var sender = Object.create(EventEmitter);\n\n var messageBuffer = [];\n var workerClient = new WorkerClient({\n messageBuffer: messageBuffer,\n terminate: function() {},\n postMessage: function(e) {\n messageBuffer.push(e);\n if (!main) return;\n if (emitSync)\n setTimeout(processNext);\n else\n processNext();\n }\n });\n\n workerClient.setEmitSync = function(val) { emitSync = val; };\n\n var processNext = function() {\n var msg = messageBuffer.shift();\n if (msg.command)\n main[msg.command].apply(main, msg.args);\n else if (msg.event)\n sender._signal(msg.event, msg.data);\n };\n\n sender.postMessage = function(msg) {\n workerClient.onMessage({data: msg});\n };\n sender.callback = function(data, callbackId) {\n this.postMessage({type: \"call\", id: callbackId, data: data});\n };\n sender.emit = function(name, data) {\n this.postMessage({type: \"event\", name: name, data: data});\n };\n\n config.loadModule([\"worker\", mod], function(Main) {\n main = new Main[classname](sender);\n while (messageBuffer.length)\n processNext();\n });\n\n return workerClient;\n};\n\nexports.UIWorkerClient = UIWorkerClient;\nexports.WorkerClient = WorkerClient;\nexports.createWorker = createWorker;\n\n\n});\n\nace.define(\"ace/placeholder\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/oop\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar oop = require(\"./lib/oop\");\nvar PlaceHolder = /** @class */ (function () {\n function PlaceHolder(session, length, pos, others, mainClass, othersClass) {\n var _self = this;\n this.length = length;\n this.session = session;\n this.doc = session.getDocument();\n this.mainClass = mainClass;\n this.othersClass = othersClass;\n this.$onUpdate = this.onUpdate.bind(this);\n this.doc.on(\"change\", this.$onUpdate, true);\n this.$others = others;\n this.$onCursorChange = function () {\n setTimeout(function () {\n _self.onCursorChange();\n });\n };\n this.$pos = pos;\n var undoStack = session.getUndoManager().$undoStack || session.getUndoManager().$undostack || { length: -1 };\n this.$undoStackDepth = undoStack.length;\n this.setup();\n session.selection.on(\"changeCursor\", this.$onCursorChange);\n }\n PlaceHolder.prototype.setup = function () {\n var _self = this;\n var doc = this.doc;\n var session = this.session;\n this.selectionBefore = session.selection.toJSON();\n if (session.selection.inMultiSelectMode)\n session.selection.toSingleRange();\n this.pos = doc.createAnchor(this.$pos.row, this.$pos.column);\n var pos = this.pos;\n pos.$insertRight = true;\n pos.detach();\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + this.length), this.mainClass, null, false);\n this.others = [];\n this.$others.forEach(function (other) {\n var anchor = doc.createAnchor(other.row, other.column);\n anchor.$insertRight = true;\n anchor.detach();\n _self.others.push(anchor);\n });\n session.setUndoSelect(false);\n };\n PlaceHolder.prototype.showOtherMarkers = function () {\n if (this.othersActive)\n return;\n var session = this.session;\n var _self = this;\n this.othersActive = true;\n this.others.forEach(function (anchor) {\n anchor.markerId = session.addMarker(new Range(anchor.row, anchor.column, anchor.row, anchor.column + _self.length), _self.othersClass, null, false);\n });\n };\n PlaceHolder.prototype.hideOtherMarkers = function () {\n if (!this.othersActive)\n return;\n this.othersActive = false;\n for (var i = 0; i < this.others.length; i++) {\n this.session.removeMarker(this.others[i].markerId);\n }\n };\n PlaceHolder.prototype.onUpdate = function (delta) {\n if (this.$updating)\n return this.updateAnchors(delta);\n var range = delta;\n if (range.start.row !== range.end.row)\n return;\n if (range.start.row !== this.pos.row)\n return;\n this.$updating = true;\n var lengthDiff = delta.action === \"insert\" ? range.end.column - range.start.column : range.start.column - range.end.column;\n var inMainRange = range.start.column >= this.pos.column && range.start.column <= this.pos.column + this.length + 1;\n var distanceFromStart = range.start.column - this.pos.column;\n this.updateAnchors(delta);\n if (inMainRange)\n this.length += lengthDiff;\n if (inMainRange && !this.session.$fromUndo) {\n if (delta.action === 'insert') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = { row: otherPos.row, column: otherPos.column + distanceFromStart };\n this.doc.insertMergedLines(newPos, delta.lines);\n }\n }\n else if (delta.action === 'remove') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = { row: otherPos.row, column: otherPos.column + distanceFromStart };\n this.doc.remove(new Range(newPos.row, newPos.column, newPos.row, newPos.column - lengthDiff));\n }\n }\n }\n this.$updating = false;\n this.updateMarkers();\n };\n PlaceHolder.prototype.updateAnchors = function (delta) {\n this.pos.onChange(delta);\n for (var i = this.others.length; i--;)\n this.others[i].onChange(delta);\n this.updateMarkers();\n };\n PlaceHolder.prototype.updateMarkers = function () {\n if (this.$updating)\n return;\n var _self = this;\n var session = this.session;\n var updateMarker = function (pos, className) {\n session.removeMarker(pos.markerId);\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + _self.length), className, null, false);\n };\n updateMarker(this.pos, this.mainClass);\n for (var i = this.others.length; i--;)\n updateMarker(this.others[i], this.othersClass);\n };\n PlaceHolder.prototype.onCursorChange = function (event) {\n if (this.$updating || !this.session)\n return;\n var pos = this.session.selection.getCursor();\n if (pos.row === this.pos.row && pos.column >= this.pos.column && pos.column <= this.pos.column + this.length) {\n this.showOtherMarkers();\n this._emit(\"cursorEnter\", event);\n }\n else {\n this.hideOtherMarkers();\n this._emit(\"cursorLeave\", event);\n }\n };\n PlaceHolder.prototype.detach = function () {\n this.session.removeMarker(this.pos && this.pos.markerId);\n this.hideOtherMarkers();\n this.doc.off(\"change\", this.$onUpdate);\n this.session.selection.off(\"changeCursor\", this.$onCursorChange);\n this.session.setUndoSelect(true);\n this.session = null;\n };\n PlaceHolder.prototype.cancel = function () {\n if (this.$undoStackDepth === -1)\n return;\n var undoManager = this.session.getUndoManager();\n var undosRequired = (undoManager.$undoStack || undoManager.$undostack).length - this.$undoStackDepth;\n for (var i = 0; i < undosRequired; i++) {\n undoManager.undo(this.session, true);\n }\n if (this.selectionBefore)\n this.session.selection.fromJSON(this.selectionBefore);\n };\n return PlaceHolder;\n}());\noop.implement(PlaceHolder.prototype, EventEmitter);\nexports.PlaceHolder = PlaceHolder;\n\n});\n\nace.define(\"ace/mouse/multi_select_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){var event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nfunction onMouseDown(e) {\n var ev = e.domEvent;\n var alt = ev.altKey;\n var shift = ev.shiftKey;\n var ctrl = ev.ctrlKey;\n var accel = e.getAccelKey();\n var button = e.getButton();\n if (ctrl && useragent.isMac)\n button = ev.button;\n if (e.editor.inMultiSelectMode && button == 2) {\n e.editor.textInput.onContextMenu(e.domEvent);\n return;\n }\n if (!ctrl && !alt && !accel) {\n if (button === 0 && e.editor.inMultiSelectMode)\n e.editor.exitMultiSelectMode();\n return;\n }\n if (button !== 0)\n return;\n var editor = e.editor;\n var selection = editor.selection;\n var isMultiSelect = editor.inMultiSelectMode;\n var pos = e.getDocumentPosition();\n var cursor = selection.getCursor();\n var inSelection = e.inSelection() || (selection.isEmpty() && isSamePoint(pos, cursor));\n var mouseX = e.x, mouseY = e.y;\n var onMouseSelection = function (e) {\n mouseX = e.clientX;\n mouseY = e.clientY;\n };\n var session = editor.session;\n var screenAnchor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var screenCursor = screenAnchor;\n var selectionMode;\n if (editor.$mouseHandler.$enableJumpToDef) {\n if (ctrl && alt || accel && alt)\n selectionMode = shift ? \"block\" : \"add\";\n else if (alt && editor.$blockSelectEnabled)\n selectionMode = \"block\";\n }\n else {\n if (accel && !alt) {\n selectionMode = \"add\";\n if (!isMultiSelect && shift)\n return;\n }\n else if (alt && editor.$blockSelectEnabled) {\n selectionMode = \"block\";\n }\n }\n if (selectionMode && useragent.isMac && ev.ctrlKey) {\n editor.$mouseHandler.cancelContextMenu();\n }\n if (selectionMode == \"add\") {\n if (!isMultiSelect && inSelection)\n return; // dragging\n if (!isMultiSelect) {\n var range = selection.toOrientedRange();\n editor.addSelectionMarker(range);\n }\n var oldRange = selection.rangeList.rangeAtPoint(pos);\n editor.inVirtualSelectionMode = true;\n if (shift) {\n oldRange = null;\n range = selection.ranges[0] || range;\n editor.removeSelectionMarker(range);\n }\n editor.once(\"mouseup\", function () {\n var tmpSel = selection.toOrientedRange();\n if (oldRange && tmpSel.isEmpty() && isSamePoint(oldRange.cursor, tmpSel.cursor))\n selection.substractPoint(tmpSel.cursor);\n else {\n if (shift) {\n selection.substractPoint(range.cursor);\n }\n else if (range) {\n editor.removeSelectionMarker(range);\n selection.addRange(range);\n }\n selection.addRange(tmpSel);\n }\n editor.inVirtualSelectionMode = false;\n });\n }\n else if (selectionMode == \"block\") {\n e.stop();\n editor.inVirtualSelectionMode = true;\n var initialRange;\n var rectSel = [];\n var blockSelect = function () {\n var newCursor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var cursor = session.screenToDocumentPosition(newCursor.row, newCursor.column, newCursor.offsetX);\n if (isSamePoint(screenCursor, newCursor) && isSamePoint(cursor, selection.lead))\n return;\n screenCursor = newCursor;\n editor.selection.moveToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n editor.removeSelectionMarkers(rectSel);\n rectSel = selection.rectangularRangeBlock(screenCursor, screenAnchor);\n if (editor.$mouseHandler.$clickSelection && rectSel.length == 1 && rectSel[0].isEmpty())\n rectSel[0] = editor.$mouseHandler.$clickSelection.clone();\n rectSel.forEach(editor.addSelectionMarker, editor);\n editor.updateSelectionMarkers();\n };\n if (isMultiSelect && !accel) {\n selection.toSingleRange();\n }\n else if (!isMultiSelect && accel) {\n initialRange = selection.toOrientedRange();\n editor.addSelectionMarker(initialRange);\n }\n if (shift)\n screenAnchor = session.documentToScreenPosition(selection.lead);\n else\n selection.moveToPosition(pos);\n screenCursor = { row: -1, column: -1 };\n var onMouseSelectionEnd = function (e) {\n blockSelect();\n clearInterval(timerId);\n editor.removeSelectionMarkers(rectSel);\n if (!rectSel.length)\n rectSel = [selection.toOrientedRange()];\n if (initialRange) {\n editor.removeSelectionMarker(initialRange);\n selection.toSingleRange(initialRange);\n }\n for (var i = 0; i < rectSel.length; i++)\n selection.addRange(rectSel[i]);\n editor.inVirtualSelectionMode = false;\n editor.$mouseHandler.$clickSelection = null;\n };\n var onSelectionInterval = blockSelect;\n event.capture(editor.container, onMouseSelection, onMouseSelectionEnd);\n var timerId = setInterval(function () { onSelectionInterval(); }, 20);\n return e.preventDefault();\n }\n}\nexports.onMouseDown = onMouseDown;\n\n});\n\nace.define(\"ace/commands/multi_select_commands\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\"], function(require, exports, module){// commands to enter multiselect mode\nexports.defaultCommands = [{\n name: \"addCursorAbove\",\n description: \"Add cursor above\",\n exec: function (editor) { editor.selectMoreLines(-1); },\n bindKey: { win: \"Ctrl-Alt-Up\", mac: \"Ctrl-Alt-Up\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorBelow\",\n description: \"Add cursor below\",\n exec: function (editor) { editor.selectMoreLines(1); },\n bindKey: { win: \"Ctrl-Alt-Down\", mac: \"Ctrl-Alt-Down\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorAboveSkipCurrent\",\n description: \"Add cursor above (skip current)\",\n exec: function (editor) { editor.selectMoreLines(-1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Up\", mac: \"Ctrl-Alt-Shift-Up\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorBelowSkipCurrent\",\n description: \"Add cursor below (skip current)\",\n exec: function (editor) { editor.selectMoreLines(1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Down\", mac: \"Ctrl-Alt-Shift-Down\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectMoreBefore\",\n description: \"Select more before\",\n exec: function (editor) { editor.selectMore(-1); },\n bindKey: { win: \"Ctrl-Alt-Left\", mac: \"Ctrl-Alt-Left\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectMoreAfter\",\n description: \"Select more after\",\n exec: function (editor) { editor.selectMore(1); },\n bindKey: { win: \"Ctrl-Alt-Right\", mac: \"Ctrl-Alt-Right\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectNextBefore\",\n description: \"Select next before\",\n exec: function (editor) { editor.selectMore(-1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Left\", mac: \"Ctrl-Alt-Shift-Left\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectNextAfter\",\n description: \"Select next after\",\n exec: function (editor) { editor.selectMore(1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Right\", mac: \"Ctrl-Alt-Shift-Right\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"toggleSplitSelectionIntoLines\",\n description: \"Split selection into lines\",\n exec: function (editor) {\n if (editor.multiSelect.rangeCount > 1)\n editor.multiSelect.joinSelections();\n else\n editor.multiSelect.splitIntoLines();\n },\n bindKey: { win: \"Ctrl-Alt-L\", mac: \"Ctrl-Alt-L\" },\n readOnly: true\n }, {\n name: \"splitSelectionIntoLines\",\n description: \"Split into lines\",\n exec: function (editor) { editor.multiSelect.splitIntoLines(); },\n readOnly: true\n }, {\n name: \"alignCursors\",\n description: \"Align cursors\",\n exec: function (editor) { editor.alignCursors(); },\n bindKey: { win: \"Ctrl-Alt-A\", mac: \"Ctrl-Alt-A\" },\n scrollIntoView: \"cursor\"\n }, {\n name: \"findAll\",\n description: \"Find all\",\n exec: function (editor) { editor.findAll(); },\n bindKey: { win: \"Ctrl-Alt-K\", mac: \"Ctrl-Alt-G\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }];\nexports.multiSelectCommands = [{\n name: \"singleSelection\",\n description: \"Single selection\",\n bindKey: \"esc\",\n exec: function (editor) { editor.exitMultiSelectMode(); },\n scrollIntoView: \"cursor\",\n readOnly: true,\n isAvailable: function (editor) { return editor && editor.inMultiSelectMode; }\n }];\nvar HashHandler = require(\"../keyboard/hash_handler\").HashHandler;\nexports.keyboardHandler = new HashHandler(exports.multiSelectCommands);\n\n});\n\nace.define(\"ace/multi_select\",[\"require\",\"exports\",\"module\",\"ace/range_list\",\"ace/range\",\"ace/selection\",\"ace/mouse/multi_select_handler\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/commands/multi_select_commands\",\"ace/search\",\"ace/edit_session\",\"ace/editor\",\"ace/config\"], function(require, exports, module){var RangeList = require(\"./range_list\").RangeList;\nvar Range = require(\"./range\").Range;\nvar Selection = require(\"./selection\").Selection;\nvar onMouseDown = require(\"./mouse/multi_select_handler\").onMouseDown;\nvar event = require(\"./lib/event\");\nvar lang = require(\"./lib/lang\");\nvar commands = require(\"./commands/multi_select_commands\");\nexports.commands = commands.defaultCommands.concat(commands.multiSelectCommands);\nvar Search = require(\"./search\").Search;\nvar search = new Search();\nfunction find(session, needle, dir) {\n search.$options.wrap = true;\n search.$options.needle = needle;\n search.$options.backwards = dir == -1;\n return search.find(session);\n}\nvar EditSession = require(\"./edit_session\").EditSession;\n(function () {\n this.getSelectionMarkers = function () {\n return this.$selectionMarkers;\n };\n}).call(EditSession.prototype);\n(function () {\n this.ranges = null;\n this.rangeList = null;\n this.addRange = function (range, $blockChangeEvents) {\n if (!range)\n return;\n if (!this.inMultiSelectMode && this.rangeCount === 0) {\n var oldRange = this.toOrientedRange();\n this.rangeList.add(oldRange);\n this.rangeList.add(range);\n if (this.rangeList.ranges.length != 2) {\n this.rangeList.removeAll();\n return $blockChangeEvents || this.fromOrientedRange(range);\n }\n this.rangeList.removeAll();\n this.rangeList.add(oldRange);\n this.$onAddRange(oldRange);\n }\n if (!range.cursor)\n range.cursor = range.end;\n var removed = this.rangeList.add(range);\n this.$onAddRange(range);\n if (removed.length)\n this.$onRemoveRange(removed);\n if (this.rangeCount > 1 && !this.inMultiSelectMode) {\n this._signal(\"multiSelect\");\n this.inMultiSelectMode = true;\n this.session.$undoSelect = false;\n this.rangeList.attach(this.session);\n }\n return $blockChangeEvents || this.fromOrientedRange(range);\n };\n this.toSingleRange = function (range) {\n range = range || this.ranges[0];\n var removed = this.rangeList.removeAll();\n if (removed.length)\n this.$onRemoveRange(removed);\n range && this.fromOrientedRange(range);\n };\n this.substractPoint = function (pos) {\n var removed = this.rangeList.substractPoint(pos);\n if (removed) {\n this.$onRemoveRange(removed);\n return removed[0];\n }\n };\n this.mergeOverlappingRanges = function () {\n var removed = this.rangeList.merge();\n if (removed.length)\n this.$onRemoveRange(removed);\n };\n this.$onAddRange = function (range) {\n this.rangeCount = this.rangeList.ranges.length;\n this.ranges.unshift(range);\n this._signal(\"addRange\", { range: range });\n };\n this.$onRemoveRange = function (removed) {\n this.rangeCount = this.rangeList.ranges.length;\n if (this.rangeCount == 1 && this.inMultiSelectMode) {\n var lastRange = this.rangeList.ranges.pop();\n removed.push(lastRange);\n this.rangeCount = 0;\n }\n for (var i = removed.length; i--;) {\n var index = this.ranges.indexOf(removed[i]);\n this.ranges.splice(index, 1);\n }\n this._signal(\"removeRange\", { ranges: removed });\n if (this.rangeCount === 0 && this.inMultiSelectMode) {\n this.inMultiSelectMode = false;\n this._signal(\"singleSelect\");\n this.session.$undoSelect = true;\n this.rangeList.detach(this.session);\n }\n lastRange = lastRange || this.ranges[0];\n if (lastRange && !lastRange.isEqual(this.getRange()))\n this.fromOrientedRange(lastRange);\n };\n this.$initRangeList = function () {\n if (this.rangeList)\n return;\n this.rangeList = new RangeList();\n this.ranges = [];\n this.rangeCount = 0;\n };\n this.getAllRanges = function () {\n return this.rangeCount ? this.rangeList.ranges.concat() : [this.getRange()];\n };\n this.splitIntoLines = function () {\n var ranges = this.ranges.length ? this.ranges : [this.getRange()];\n var newRanges = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n var row = range.start.row;\n var endRow = range.end.row;\n if (row === endRow) {\n newRanges.push(range.clone());\n }\n else {\n newRanges.push(new Range(row, range.start.column, row, this.session.getLine(row).length));\n while (++row < endRow)\n newRanges.push(this.getLineRange(row, true));\n newRanges.push(new Range(endRow, 0, endRow, range.end.column));\n }\n if (i == 0 && !this.isBackwards())\n newRanges = newRanges.reverse();\n }\n this.toSingleRange();\n for (var i = newRanges.length; i--;)\n this.addRange(newRanges[i]);\n };\n this.joinSelections = function () {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n };\n this.toggleBlockSelection = function () {\n if (this.rangeCount > 1) {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n }\n else {\n var cursor = this.session.documentToScreenPosition(this.cursor);\n var anchor = this.session.documentToScreenPosition(this.anchor);\n var rectSel = this.rectangularRangeBlock(cursor, anchor);\n rectSel.forEach(this.addRange, this);\n }\n };\n this.rectangularRangeBlock = function (screenCursor, screenAnchor, includeEmptyLines) {\n var rectSel = [];\n var xBackwards = screenCursor.column < screenAnchor.column;\n if (xBackwards) {\n var startColumn = screenCursor.column;\n var endColumn = screenAnchor.column;\n var startOffsetX = screenCursor.offsetX;\n var endOffsetX = screenAnchor.offsetX;\n }\n else {\n var startColumn = screenAnchor.column;\n var endColumn = screenCursor.column;\n var startOffsetX = screenAnchor.offsetX;\n var endOffsetX = screenCursor.offsetX;\n }\n var yBackwards = screenCursor.row < screenAnchor.row;\n if (yBackwards) {\n var startRow = screenCursor.row;\n var endRow = screenAnchor.row;\n }\n else {\n var startRow = screenAnchor.row;\n var endRow = screenCursor.row;\n }\n if (startColumn < 0)\n startColumn = 0;\n if (startRow < 0)\n startRow = 0;\n if (startRow == endRow)\n includeEmptyLines = true;\n var docEnd;\n for (var row = startRow; row <= endRow; row++) {\n var range = Range.fromPoints(this.session.screenToDocumentPosition(row, startColumn, startOffsetX), this.session.screenToDocumentPosition(row, endColumn, endOffsetX));\n if (range.isEmpty()) {\n if (docEnd && isSamePoint(range.end, docEnd))\n break;\n docEnd = range.end;\n }\n range.cursor = xBackwards ? range.start : range.end;\n rectSel.push(range);\n }\n if (yBackwards)\n rectSel.reverse();\n if (!includeEmptyLines) {\n var end = rectSel.length - 1;\n while (rectSel[end].isEmpty() && end > 0)\n end--;\n if (end > 0) {\n var start = 0;\n while (rectSel[start].isEmpty())\n start++;\n }\n for (var i = end; i >= start; i--) {\n if (rectSel[i].isEmpty())\n rectSel.splice(i, 1);\n }\n }\n return rectSel;\n };\n}).call(Selection.prototype);\nvar Editor = require(\"./editor\").Editor;\n(function () {\n this.updateSelectionMarkers = function () {\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.addSelectionMarker = function (orientedRange) {\n if (!orientedRange.cursor)\n orientedRange.cursor = orientedRange.end;\n var style = this.getSelectionStyle();\n orientedRange.marker = this.session.addMarker(orientedRange, \"ace_selection\", style);\n this.session.$selectionMarkers.push(orientedRange);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n return orientedRange;\n };\n this.removeSelectionMarker = function (range) {\n if (!range.marker)\n return;\n this.session.removeMarker(range.marker);\n var index = this.session.$selectionMarkers.indexOf(range);\n if (index != -1)\n this.session.$selectionMarkers.splice(index, 1);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n };\n this.removeSelectionMarkers = function (ranges) {\n var markerList = this.session.$selectionMarkers;\n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.marker)\n continue;\n this.session.removeMarker(range.marker);\n var index = markerList.indexOf(range);\n if (index != -1)\n markerList.splice(index, 1);\n }\n this.session.selectionMarkerCount = markerList.length;\n };\n this.$onAddRange = function (e) {\n this.addSelectionMarker(e.range);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onRemoveRange = function (e) {\n this.removeSelectionMarkers(e.ranges);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onMultiSelect = function (e) {\n if (this.inMultiSelectMode)\n return;\n this.inMultiSelectMode = true;\n this.setStyle(\"ace_multiselect\");\n this.keyBinding.addKeyboardHandler(commands.keyboardHandler);\n this.commands.setDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onSingleSelect = function (e) {\n if (this.session.multiSelect.inVirtualMode)\n return;\n this.inMultiSelectMode = false;\n this.unsetStyle(\"ace_multiselect\");\n this.keyBinding.removeKeyboardHandler(commands.keyboardHandler);\n this.commands.removeDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n this._emit(\"changeSelection\");\n };\n this.$onMultiSelectExec = function (e) {\n var command = e.command;\n var editor = e.editor;\n if (!editor.multiSelect)\n return;\n if (!command.multiSelectAction) {\n var result = command.exec(editor, e.args || {});\n editor.multiSelect.addRange(editor.multiSelect.toOrientedRange());\n editor.multiSelect.mergeOverlappingRanges();\n }\n else if (command.multiSelectAction == \"forEach\") {\n result = editor.forEachSelection(command, e.args);\n }\n else if (command.multiSelectAction == \"forEachLine\") {\n result = editor.forEachSelection(command, e.args, true);\n }\n else if (command.multiSelectAction == \"single\") {\n editor.exitMultiSelectMode();\n result = command.exec(editor, e.args || {});\n }\n else {\n result = command.multiSelectAction(editor, e.args || {});\n }\n return result;\n };\n this.forEachSelection = function (cmd, args, options) {\n if (this.inVirtualSelectionMode)\n return;\n var keepOrder = options && options.keepOrder;\n var $byLines = options == true || options && options.$byLines;\n var session = this.session;\n var selection = this.selection;\n var rangeList = selection.rangeList;\n var ranges = (keepOrder ? selection : rangeList).ranges;\n var result;\n if (!ranges.length)\n return cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n var reg = selection._eventRegistry;\n selection._eventRegistry = {};\n var tmpSel = new Selection(session);\n this.inVirtualSelectionMode = true;\n for (var i = ranges.length; i--;) {\n if ($byLines) {\n while (i > 0 && ranges[i].start.row == ranges[i - 1].end.row)\n i--;\n }\n tmpSel.fromOrientedRange(ranges[i]);\n tmpSel.index = i;\n this.selection = session.selection = tmpSel;\n var cmdResult = cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n if (!result && cmdResult !== undefined)\n result = cmdResult;\n tmpSel.toOrientedRange(ranges[i]);\n }\n tmpSel.detach();\n this.selection = session.selection = selection;\n this.inVirtualSelectionMode = false;\n selection._eventRegistry = reg;\n selection.mergeOverlappingRanges();\n if (selection.ranges[0])\n selection.fromOrientedRange(selection.ranges[0]);\n var anim = this.renderer.$scrollAnimation;\n this.onCursorChange();\n this.onSelectionChange();\n if (anim && anim.from == anim.to)\n this.renderer.animateScrolling(anim.from);\n return result;\n };\n this.exitMultiSelectMode = function () {\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode)\n return;\n this.multiSelect.toSingleRange();\n };\n this.getSelectedText = function () {\n var text = \"\";\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var ranges = this.multiSelect.rangeList.ranges;\n var buf = [];\n for (var i = 0; i < ranges.length; i++) {\n buf.push(this.session.getTextRange(ranges[i]));\n }\n var nl = this.session.getDocument().getNewLineCharacter();\n text = buf.join(nl);\n if (text.length == (buf.length - 1) * nl.length)\n text = \"\";\n }\n else if (!this.selection.isEmpty()) {\n text = this.session.getTextRange(this.getSelectionRange());\n }\n return text;\n };\n this.$checkMultiselectChange = function (e, anchor) {\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var range = this.multiSelect.ranges[0];\n if (this.multiSelect.isEmpty() && anchor == this.multiSelect.anchor)\n return;\n var pos = anchor == this.multiSelect.anchor\n ? range.cursor == range.start ? range.end : range.start\n : range.cursor;\n if (pos.row != anchor.row\n || this.session.$clipPositionToDocument(pos.row, pos.column).column != anchor.column)\n this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange());\n else\n this.multiSelect.mergeOverlappingRanges();\n }\n };\n this.findAll = function (needle, options, additive) {\n options = options || {};\n options.needle = needle || options.needle;\n if (options.needle == undefined) {\n var range = this.selection.isEmpty()\n ? this.selection.getWordRange()\n : this.selection.getRange();\n options.needle = this.session.getTextRange(range);\n }\n this.$search.set(options);\n var ranges = this.$search.findAll(this.session);\n if (!ranges.length)\n return 0;\n var selection = this.multiSelect;\n if (!additive)\n selection.toSingleRange(ranges[0]);\n for (var i = ranges.length; i--;)\n selection.addRange(ranges[i], true);\n if (range && selection.rangeList.rangeAtPoint(range.start))\n selection.addRange(range, true);\n return ranges.length;\n };\n this.selectMoreLines = function (dir, skip) {\n var range = this.selection.toOrientedRange();\n var isBackwards = range.cursor == range.end;\n var screenLead = this.session.documentToScreenPosition(range.cursor);\n if (this.selection.$desiredColumn)\n screenLead.column = this.selection.$desiredColumn;\n var lead = this.session.screenToDocumentPosition(screenLead.row + dir, screenLead.column);\n if (!range.isEmpty()) {\n var screenAnchor = this.session.documentToScreenPosition(isBackwards ? range.end : range.start);\n var anchor = this.session.screenToDocumentPosition(screenAnchor.row + dir, screenAnchor.column);\n }\n else {\n var anchor = lead;\n }\n if (isBackwards) {\n var newRange = Range.fromPoints(lead, anchor);\n newRange.cursor = newRange.start;\n }\n else {\n var newRange = Range.fromPoints(anchor, lead);\n newRange.cursor = newRange.end;\n }\n newRange.desiredColumn = screenLead.column;\n if (!this.selection.inMultiSelectMode) {\n this.selection.addRange(range);\n }\n else {\n if (skip)\n var toRemove = range.cursor;\n }\n this.selection.addRange(newRange);\n if (toRemove)\n this.selection.substractPoint(toRemove);\n };\n this.transposeSelections = function (dir) {\n var session = this.session;\n var sel = session.multiSelect;\n var all = sel.ranges;\n for (var i = all.length; i--;) {\n var range = all[i];\n if (range.isEmpty()) {\n var tmp = session.getWordRange(range.start.row, range.start.column);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n range.end.row = tmp.end.row;\n range.end.column = tmp.end.column;\n }\n }\n sel.mergeOverlappingRanges();\n var words = [];\n for (var i = all.length; i--;) {\n var range = all[i];\n words.unshift(session.getTextRange(range));\n }\n if (dir < 0)\n words.unshift(words.pop());\n else\n words.push(words.shift());\n for (var i = all.length; i--;) {\n var range = all[i];\n var tmp = range.clone();\n session.replace(range, words[i]);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n }\n sel.fromOrientedRange(sel.ranges[0]);\n };\n this.selectMore = function (dir, skip, stopAtFirst) {\n var session = this.session;\n var sel = session.multiSelect;\n var range = sel.toOrientedRange();\n if (range.isEmpty()) {\n range = session.getWordRange(range.start.row, range.start.column);\n range.cursor = dir == -1 ? range.start : range.end;\n this.multiSelect.addRange(range);\n if (stopAtFirst)\n return;\n }\n var needle = session.getTextRange(range);\n var newRange = find(session, needle, dir);\n if (newRange) {\n newRange.cursor = dir == -1 ? newRange.start : newRange.end;\n this.session.unfold(newRange);\n this.multiSelect.addRange(newRange);\n this.renderer.scrollCursorIntoView(null, 0.5);\n }\n if (skip)\n this.multiSelect.substractPoint(range.cursor);\n };\n this.alignCursors = function () {\n var session = this.session;\n var sel = session.multiSelect;\n var ranges = sel.ranges;\n var row = -1;\n var sameRowRanges = ranges.filter(function (r) {\n if (r.cursor.row == row)\n return true;\n row = r.cursor.row;\n });\n if (!ranges.length || sameRowRanges.length == ranges.length - 1) {\n var range = this.selection.getRange();\n var fr = range.start.row, lr = range.end.row;\n var guessRange = fr == lr;\n if (guessRange) {\n var max = this.session.getLength();\n var line;\n do {\n line = this.session.getLine(lr);\n } while (/[=:]/.test(line) && ++lr < max);\n do {\n line = this.session.getLine(fr);\n } while (/[=:]/.test(line) && --fr > 0);\n if (fr < 0)\n fr = 0;\n if (lr >= max)\n lr = max - 1;\n }\n var lines = this.session.removeFullLines(fr, lr);\n lines = this.$reAlignText(lines, guessRange);\n this.session.insert({ row: fr, column: 0 }, lines.join(\"\\n\") + \"\\n\");\n if (!guessRange) {\n range.start.column = 0;\n range.end.column = lines[lines.length - 1].length;\n }\n this.selection.setRange(range);\n }\n else {\n sameRowRanges.forEach(function (r) {\n sel.substractPoint(r.cursor);\n });\n var maxCol = 0;\n var minSpace = Infinity;\n var spaceOffsets = ranges.map(function (r) {\n var p = r.cursor;\n var line = session.getLine(p.row);\n var spaceOffset = line.substr(p.column).search(/\\S/g);\n if (spaceOffset == -1)\n spaceOffset = 0;\n if (p.column > maxCol)\n maxCol = p.column;\n if (spaceOffset < minSpace)\n minSpace = spaceOffset;\n return spaceOffset;\n });\n ranges.forEach(function (r, i) {\n var p = r.cursor;\n var l = maxCol - p.column;\n var d = spaceOffsets[i] - minSpace;\n if (l > d)\n session.insert(p, lang.stringRepeat(\" \", l - d));\n else\n session.remove(new Range(p.row, p.column, p.row, p.column - l + d));\n r.start.column = r.end.column = maxCol;\n r.start.row = r.end.row = p.row;\n r.cursor = r.end;\n });\n sel.fromOrientedRange(ranges[0]);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n }\n };\n this.$reAlignText = function (lines, forceLeft) {\n var isLeftAligned = true, isRightAligned = true;\n var startW, textW, endW;\n return lines.map(function (line) {\n var m = line.match(/(\\s*)(.*?)(\\s*)([=:].*)/);\n if (!m)\n return [line];\n if (startW == null) {\n startW = m[1].length;\n textW = m[2].length;\n endW = m[3].length;\n return m;\n }\n if (startW + textW + endW != m[1].length + m[2].length + m[3].length)\n isRightAligned = false;\n if (startW != m[1].length)\n isLeftAligned = false;\n if (startW > m[1].length)\n startW = m[1].length;\n if (textW < m[2].length)\n textW = m[2].length;\n if (endW > m[3].length)\n endW = m[3].length;\n return m;\n }).map(forceLeft ? alignLeft :\n isLeftAligned ? isRightAligned ? alignRight : alignLeft : unAlign);\n function spaces(n) {\n return lang.stringRepeat(\" \", n);\n }\n function alignLeft(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(textW - m[2].length + endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function alignRight(m) {\n return !m[2] ? m[0] : spaces(startW + textW - m[2].length) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function unAlign(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n };\n}).call(Editor.prototype);\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nexports.onSessionChange = function (e) {\n var session = e.session;\n if (session && !session.multiSelect) {\n session.$selectionMarkers = [];\n session.selection.$initRangeList();\n session.multiSelect = session.selection;\n }\n this.multiSelect = session && session.multiSelect;\n var oldSession = e.oldSession;\n if (oldSession) {\n oldSession.multiSelect.off(\"addRange\", this.$onAddRange);\n oldSession.multiSelect.off(\"removeRange\", this.$onRemoveRange);\n oldSession.multiSelect.off(\"multiSelect\", this.$onMultiSelect);\n oldSession.multiSelect.off(\"singleSelect\", this.$onSingleSelect);\n oldSession.multiSelect.lead.off(\"change\", this.$checkMultiselectChange);\n oldSession.multiSelect.anchor.off(\"change\", this.$checkMultiselectChange);\n }\n if (session) {\n session.multiSelect.on(\"addRange\", this.$onAddRange);\n session.multiSelect.on(\"removeRange\", this.$onRemoveRange);\n session.multiSelect.on(\"multiSelect\", this.$onMultiSelect);\n session.multiSelect.on(\"singleSelect\", this.$onSingleSelect);\n session.multiSelect.lead.on(\"change\", this.$checkMultiselectChange);\n session.multiSelect.anchor.on(\"change\", this.$checkMultiselectChange);\n }\n if (session && this.inMultiSelectMode != session.selection.inMultiSelectMode) {\n if (session.selection.inMultiSelectMode)\n this.$onMultiSelect();\n else\n this.$onSingleSelect();\n }\n};\nfunction MultiSelect(editor) {\n if (editor.$multiselectOnSessionChange)\n return;\n editor.$onAddRange = editor.$onAddRange.bind(editor);\n editor.$onRemoveRange = editor.$onRemoveRange.bind(editor);\n editor.$onMultiSelect = editor.$onMultiSelect.bind(editor);\n editor.$onSingleSelect = editor.$onSingleSelect.bind(editor);\n editor.$multiselectOnSessionChange = exports.onSessionChange.bind(editor);\n editor.$checkMultiselectChange = editor.$checkMultiselectChange.bind(editor);\n editor.$multiselectOnSessionChange(editor);\n editor.on(\"changeSession\", editor.$multiselectOnSessionChange);\n editor.on(\"mousedown\", onMouseDown);\n editor.commands.addCommands(commands.defaultCommands);\n addAltCursorListeners(editor);\n}\nfunction addAltCursorListeners(editor) {\n if (!editor.textInput)\n return;\n var el = editor.textInput.getElement();\n var altCursor = false;\n event.addListener(el, \"keydown\", function (e) {\n var altDown = e.keyCode == 18 && !(e.ctrlKey || e.shiftKey || e.metaKey);\n if (editor.$blockSelectEnabled && altDown) {\n if (!altCursor) {\n editor.renderer.setMouseCursor(\"crosshair\");\n altCursor = true;\n }\n }\n else if (altCursor) {\n reset();\n }\n }, editor);\n event.addListener(el, \"keyup\", reset, editor);\n event.addListener(el, \"blur\", reset, editor);\n function reset(e) {\n if (altCursor) {\n editor.renderer.setMouseCursor(\"\");\n altCursor = false;\n }\n }\n}\nexports.MultiSelect = MultiSelect;\nrequire(\"./config\").defineOptions(Editor.prototype, \"editor\", {\n enableMultiselect: {\n set: function (val) {\n MultiSelect(this);\n if (val) {\n this.on(\"mousedown\", onMouseDown);\n }\n else {\n this.off(\"mousedown\", onMouseDown);\n }\n },\n value: true\n },\n enableBlockSelect: {\n set: function (val) {\n this.$blockSelectEnabled = val;\n },\n value: true\n }\n});\n\n});\n\nace.define(\"ace/mode/folding/fold_mode\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../../range\").Range;\nvar FoldMode = exports.FoldMode = function () { };\n(function () {\n this.foldingStartMarker = null;\n this.foldingStopMarker = null;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.foldingStartMarker.test(line))\n return \"start\";\n if (foldStyle == \"markbeginend\"\n && this.foldingStopMarker\n && this.foldingStopMarker.test(line))\n return \"end\";\n return \"\";\n };\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n return null;\n };\n this.indentationBlock = function (session, row, column) {\n var re = /\\S/;\n var line = session.getLine(row);\n var startLevel = line.search(re);\n if (startLevel == -1)\n return;\n var startColumn = column || line.length;\n var maxRow = session.getLength();\n var startRow = row;\n var endRow = row;\n while (++row < maxRow) {\n var level = session.getLine(row).search(re);\n if (level == -1)\n continue;\n if (level <= startLevel) {\n var token = session.getTokenAt(row, 0);\n if (!token || token.type !== \"string\")\n break;\n }\n endRow = row;\n }\n if (endRow > startRow) {\n var endColumn = session.getLine(endRow).length;\n return new Range(startRow, startColumn, endRow, endColumn);\n }\n };\n this.openingBracketBlock = function (session, bracket, row, column, typeRe) {\n var start = { row: row, column: column + 1 };\n var end = session.$findClosingBracket(bracket, start, typeRe);\n if (!end)\n return;\n var fw = session.foldWidgets[end.row];\n if (fw == null)\n fw = session.getFoldWidget(end.row);\n if (fw == \"start\" && end.row > start.row) {\n end.row--;\n end.column = session.getLine(end.row).length;\n }\n return Range.fromPoints(start, end);\n };\n this.closingBracketBlock = function (session, bracket, row, column, typeRe) {\n var end = { row: row, column: column };\n var start = session.$findOpeningBracket(bracket, end);\n if (!start)\n return;\n start.column++;\n end.column--;\n return Range.fromPoints(start, end);\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/ext/error_marker\",[\"require\",\"exports\",\"module\",\"ace/line_widgets\",\"ace/lib/dom\",\"ace/range\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar LineWidgets = require(\"../line_widgets\").LineWidgets;\nvar dom = require(\"../lib/dom\");\nvar Range = require(\"../range\").Range;\nvar nls = require(\"../config\").nls;\nfunction binarySearch(array, needle, comparator) {\n var first = 0;\n var last = array.length - 1;\n while (first <= last) {\n var mid = (first + last) >> 1;\n var c = comparator(needle, array[mid]);\n if (c > 0)\n first = mid + 1;\n else if (c < 0)\n last = mid - 1;\n else\n return mid;\n }\n return -(first + 1);\n}\nfunction findAnnotations(session, row, dir) {\n var annotations = session.getAnnotations().sort(Range.comparePoints);\n if (!annotations.length)\n return;\n var i = binarySearch(annotations, { row: row, column: -1 }, Range.comparePoints);\n if (i < 0)\n i = -i - 1;\n if (i >= annotations.length)\n i = dir > 0 ? 0 : annotations.length - 1;\n else if (i === 0 && dir < 0)\n i = annotations.length - 1;\n var annotation = annotations[i];\n if (!annotation || !dir)\n return;\n if (annotation.row === row) {\n do {\n annotation = annotations[i += dir];\n } while (annotation && annotation.row === row);\n if (!annotation)\n return annotations.slice();\n }\n var matched = [];\n row = annotation.row;\n do {\n matched[dir < 0 ? \"unshift\" : \"push\"](annotation);\n annotation = annotations[i += dir];\n } while (annotation && annotation.row == row);\n return matched.length && matched;\n}\nexports.showErrorMarker = function (editor, dir) {\n var session = editor.session;\n if (!session.widgetManager) {\n session.widgetManager = new LineWidgets(session);\n session.widgetManager.attach(editor);\n }\n var pos = editor.getCursorPosition();\n var row = pos.row;\n var oldWidget = session.widgetManager.getWidgetsAtRow(row).filter(function (w) {\n return w.type == \"errorMarker\";\n })[0];\n if (oldWidget) {\n oldWidget.destroy();\n }\n else {\n row -= dir;\n }\n var annotations = findAnnotations(session, row, dir);\n var gutterAnno;\n if (annotations) {\n var annotation = annotations[0];\n pos.column = (annotation.pos && typeof annotation.column != \"number\"\n ? annotation.pos.sc\n : annotation.column) || 0;\n pos.row = annotation.row;\n gutterAnno = editor.renderer.$gutterLayer.$annotations[pos.row];\n }\n else if (oldWidget) {\n return;\n }\n else {\n gutterAnno = {\n text: [nls(\"Looks good!\")],\n className: \"ace_ok\"\n };\n }\n editor.session.unfold(pos.row);\n editor.selection.moveToPosition(pos);\n var w = {\n row: pos.row,\n fixedWidth: true,\n coverGutter: true,\n el: dom.createElement(\"div\"),\n type: \"errorMarker\"\n };\n var el = w.el.appendChild(dom.createElement(\"div\"));\n var arrow = w.el.appendChild(dom.createElement(\"div\"));\n arrow.className = \"error_widget_arrow \" + gutterAnno.className;\n var left = editor.renderer.$cursorLayer\n .getPixelPosition(pos).left;\n arrow.style.left = left + editor.renderer.gutterWidth - 5 + \"px\";\n w.el.className = \"error_widget_wrapper\";\n el.className = \"error_widget \" + gutterAnno.className;\n el.innerHTML = gutterAnno.text.join(\"
    \");\n el.appendChild(dom.createElement(\"div\"));\n var kb = function (_, hashId, keyString) {\n if (hashId === 0 && (keyString === \"esc\" || keyString === \"return\")) {\n w.destroy();\n return { command: \"null\" };\n }\n };\n w.destroy = function () {\n if (editor.$mouseHandler.isMousePressed)\n return;\n editor.keyBinding.removeKeyboardHandler(kb);\n session.widgetManager.removeLineWidget(w);\n editor.off(\"changeSelection\", w.destroy);\n editor.off(\"changeSession\", w.destroy);\n editor.off(\"mouseup\", w.destroy);\n editor.off(\"change\", w.destroy);\n };\n editor.keyBinding.addKeyboardHandler(kb);\n editor.on(\"changeSelection\", w.destroy);\n editor.on(\"changeSession\", w.destroy);\n editor.on(\"mouseup\", w.destroy);\n editor.on(\"change\", w.destroy);\n editor.session.widgetManager.addLineWidget(w);\n w.el.onmousedown = editor.focus.bind(editor);\n editor.renderer.scrollCursorIntoView(null, 0.5, { bottom: w.el.offsetHeight });\n};\ndom.importCssString(\"\\n .error_widget_wrapper {\\n background: inherit;\\n color: inherit;\\n border:none\\n }\\n .error_widget {\\n border-top: solid 2px;\\n border-bottom: solid 2px;\\n margin: 5px 0;\\n padding: 10px 40px;\\n white-space: pre-wrap;\\n }\\n .error_widget.ace_error, .error_widget_arrow.ace_error{\\n border-color: #ff5a5a\\n }\\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\\n border-color: #F1D817\\n }\\n .error_widget.ace_info, .error_widget_arrow.ace_info{\\n border-color: #5a5a5a\\n }\\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\\n border-color: #5aaa5a\\n }\\n .error_widget_arrow {\\n position: absolute;\\n border: solid 5px;\\n border-top-color: transparent!important;\\n border-right-color: transparent!important;\\n border-left-color: transparent!important;\\n top: -5px;\\n }\\n\", \"error_marker.css\", false);\n\n});\n\nace.define(\"ace/ace\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/range\",\"ace/editor\",\"ace/edit_session\",\"ace/undomanager\",\"ace/virtual_renderer\",\"ace/worker/worker_client\",\"ace/keyboard/hash_handler\",\"ace/placeholder\",\"ace/multi_select\",\"ace/mode/folding/fold_mode\",\"ace/theme/textmate\",\"ace/ext/error_marker\",\"ace/config\",\"ace/loader_build\"], function(require, exports, module){/**\n * The main class required to set up an Ace instance in the browser.\n *\n * @class Ace\n **/\n\"use strict\";\nrequire(\"./loader_build\")(exports)\nvar dom = require(\"./lib/dom\");\nvar Range = require(\"./range\").Range;\nvar Editor = require(\"./editor\").Editor;\nvar EditSession = require(\"./edit_session\").EditSession;\nvar UndoManager = require(\"./undomanager\").UndoManager;\nvar Renderer = require(\"./virtual_renderer\").VirtualRenderer;\nrequire(\"./worker/worker_client\");\nrequire(\"./keyboard/hash_handler\");\nrequire(\"./placeholder\");\nrequire(\"./multi_select\");\nrequire(\"./mode/folding/fold_mode\");\nrequire(\"./theme/textmate\");\nrequire(\"./ext/error_marker\");\nexports.config = require(\"./config\");\nexports.edit = function (el, options) {\n if (typeof el == \"string\") {\n var _id = el;\n el = document.getElementById(_id);\n if (!el)\n throw new Error(\"ace.edit can't find div #\" + _id);\n }\n if (el && el.env && el.env.editor instanceof Editor)\n return el.env.editor;\n var value = \"\";\n if (el && /input|textarea/i.test(el.tagName)) {\n var oldNode = el;\n value = oldNode.value;\n el = dom.createElement(\"pre\");\n oldNode.parentNode.replaceChild(el, oldNode);\n }\n else if (el) {\n value = el.textContent;\n el.innerHTML = \"\";\n }\n var doc = exports.createEditSession(value);\n var editor = new Editor(new Renderer(el), doc, options);\n var env = {\n document: doc,\n editor: editor,\n onResize: editor.resize.bind(editor, null)\n };\n if (oldNode)\n env.textarea = oldNode;\n editor.on(\"destroy\", function () {\n env.editor.container.env = null; // prevent memory leak on old ie\n });\n editor.container.env = editor.env = env;\n return editor;\n};\nexports.createEditSession = function (text, mode) {\n var doc = new EditSession(text, mode);\n doc.setUndoManager(new UndoManager());\n return doc;\n};\nexports.Range = Range;\nexports.Editor = Editor;\nexports.EditSession = EditSession;\nexports.UndoManager = UndoManager;\nexports.VirtualRenderer = Renderer;\nexports.version = exports.config.version;\n\n}); (function() {\n ace.require([\"ace/ace\"], function(a) {\n if (a) {\n a.config.init(true);\n a.define = ace.define;\n }\n var global = (function () {\n return this;\n })();\n if (!global && typeof window != \"undefined\") global = window; // can happen in strict mode\n if (!global && typeof self != \"undefined\") global = self; // can happen in webworker\n \n if (!global.ace)\n global.ace = a;\n for (var key in a) if (a.hasOwnProperty(key))\n global.ace[key] = a[key];\n global.ace[\"default\"] = global.ace;\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = global.ace;\n }\n });\n })();\n ","ace.define(\"ace/ext/beautify\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"], function(require, exports, module){// [WIP]\n\"use strict\";\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nfunction is(token, type) {\n return token.type.lastIndexOf(type + \".xml\") > -1;\n}\nexports.singletonTags = [\"area\", \"base\", \"br\", \"col\", \"command\", \"embed\", \"hr\", \"html\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"param\", \"source\", \"track\", \"wbr\"];\nexports.blockTags = [\"article\", \"aside\", \"blockquote\", \"body\", \"div\", \"dl\", \"fieldset\", \"footer\", \"form\", \"head\", \"header\", \"html\", \"nav\", \"ol\", \"p\", \"script\", \"section\", \"style\", \"table\", \"tbody\", \"tfoot\", \"thead\", \"ul\"];\nexports.formatOptions = {\n lineBreaksAfterCommasInCurlyBlock: true\n};\nexports.beautify = function (session) {\n var iterator = new TokenIterator(session, 0, 0);\n var token = iterator.getCurrentToken();\n var tabString = session.getTabString();\n var singletonTags = exports.singletonTags;\n var blockTags = exports.blockTags;\n var formatOptions = exports.formatOptions || {};\n var nextToken;\n var breakBefore = false;\n var spaceBefore = false;\n var spaceAfter = false;\n var code = \"\";\n var value = \"\";\n var tagName = \"\";\n var depth = 0;\n var lastDepth = 0;\n var lastIndent = 0;\n var indent = 0;\n var unindent = 0;\n var roundDepth = 0;\n var curlyDepth = 0;\n var row;\n var curRow = 0;\n var rowsToAdd = 0;\n var rowTokens = [];\n var abort = false;\n var i;\n var indentNextLine = false;\n var inTag = false;\n var inCSS = false;\n var inBlock = false;\n var levels = { 0: 0 };\n var parents = [];\n var caseBody = false;\n var trimNext = function () {\n if (nextToken && nextToken.value && nextToken.type !== 'string.regexp')\n nextToken.value = nextToken.value.replace(/^\\s*/, \"\");\n };\n var trimLine = function () {\n var end = code.length - 1;\n while (true) {\n if (end == 0)\n break;\n if (code[end] !== \" \")\n break;\n end = end - 1;\n }\n code = code.slice(0, end + 1);\n };\n var trimCode = function () {\n code = code.trimRight();\n breakBefore = false;\n };\n while (token !== null) {\n curRow = iterator.getCurrentTokenRow();\n rowTokens = iterator.$rowTokens;\n nextToken = iterator.stepForward();\n if (typeof token !== \"undefined\") {\n value = token.value;\n unindent = 0;\n inCSS = (tagName === \"style\" || session.$modeId === \"ace/mode/css\");\n if (is(token, \"tag-open\")) {\n inTag = true;\n if (nextToken)\n inBlock = (blockTags.indexOf(nextToken.value) !== -1);\n if (value === \" 0; rowsToAdd--)\n code += \"\\n\";\n breakBefore = true;\n if (!is(token, \"comment\") && !token.type.match(/^(comment|string)$/))\n value = value.trimLeft();\n }\n if (value) {\n if (token.type === \"keyword\" && value.match(/^(if|else|elseif|for|foreach|while|switch)$/)) {\n parents[depth] = value;\n trimNext();\n spaceAfter = true;\n if (value.match(/^(else|elseif)$/)) {\n if (code.match(/\\}[\\s]*$/)) {\n trimCode();\n spaceBefore = true;\n }\n }\n }\n else if (token.type === \"paren.lparen\") {\n trimNext();\n if (value.substr(-1) === \"{\") {\n spaceAfter = true;\n indentNextLine = false;\n if (!inTag)\n rowsToAdd = 1;\n }\n if (value.substr(0, 1) === \"{\") {\n spaceBefore = true;\n if (code.substr(-1) !== '[' && code.trimRight().substr(-1) === '[') {\n trimCode();\n spaceBefore = false;\n }\n else if (code.trimRight().substr(-1) === ')') {\n trimCode();\n }\n else {\n trimLine();\n }\n }\n }\n else if (token.type === \"paren.rparen\") {\n unindent = 1;\n if (value.substr(0, 1) === \"}\") {\n if (parents[depth - 1] === 'case')\n unindent++;\n if (code.trimRight().substr(-1) === '{') {\n trimCode();\n }\n else {\n spaceBefore = true;\n if (inCSS)\n rowsToAdd += 2;\n }\n }\n if (value.substr(0, 1) === \"]\") {\n if (code.substr(-1) !== '}' && code.trimRight().substr(-1) === '}') {\n spaceBefore = false;\n indent++;\n trimCode();\n }\n }\n if (value.substr(0, 1) === \")\") {\n if (code.substr(-1) !== '(' && code.trimRight().substr(-1) === '(') {\n spaceBefore = false;\n indent++;\n trimCode();\n }\n }\n trimLine();\n }\n else if ((token.type === \"keyword.operator\" || token.type === \"keyword\") && value.match(/^(=|==|===|!=|!==|&&|\\|\\||and|or|xor|\\+=|.=|>|>=|<|<=|=>)$/)) {\n trimCode();\n trimNext();\n spaceBefore = true;\n spaceAfter = true;\n }\n else if (token.type === \"punctuation.operator\" && value === ';') {\n trimCode();\n trimNext();\n spaceAfter = true;\n if (inCSS)\n rowsToAdd++;\n }\n else if (token.type === \"punctuation.operator\" && value.match(/^(:|,)$/)) {\n trimCode();\n trimNext();\n if (value.match(/^(,)$/) && curlyDepth > 0 && roundDepth === 0 && formatOptions.lineBreaksAfterCommasInCurlyBlock) {\n rowsToAdd++;\n }\n else {\n spaceAfter = true;\n breakBefore = false;\n }\n }\n else if (token.type === \"support.php_tag\" && value === \"?>\" && !breakBefore) {\n trimCode();\n spaceBefore = true;\n }\n else if (is(token, \"attribute-name\") && code.substr(-1).match(/^\\s$/)) {\n spaceBefore = true;\n }\n else if (is(token, \"attribute-equals\")) {\n trimLine();\n trimNext();\n }\n else if (is(token, \"tag-close\")) {\n trimLine();\n if (value === \"/>\")\n spaceBefore = true;\n }\n else if (token.type === \"keyword\" && value.match(/^(case|default)$/)) {\n if (caseBody)\n unindent = 1;\n }\n if (breakBefore && !(token.type.match(/^(comment)$/) && !value.substr(0, 1).match(/^[/#]$/)) && !(token.type.match(/^(string)$/) && !value.substr(0, 1).match(/^['\"@]$/))) {\n indent = lastIndent;\n if (depth > lastDepth) {\n indent++;\n for (i = depth; i > lastDepth; i--)\n levels[i] = indent;\n }\n else if (depth < lastDepth)\n indent = levels[depth];\n lastDepth = depth;\n lastIndent = indent;\n if (unindent)\n indent -= unindent;\n if (indentNextLine && !roundDepth) {\n indent++;\n indentNextLine = false;\n }\n for (i = 0; i < indent; i++)\n code += tabString;\n }\n if (token.type === \"keyword\" && value.match(/^(case|default)$/)) {\n if (caseBody === false) {\n parents[depth] = value;\n depth++;\n caseBody = true;\n }\n }\n else if (token.type === \"keyword\" && value.match(/^(break)$/)) {\n if (parents[depth - 1] && parents[depth - 1].match(/^(case|default)$/)) {\n depth--;\n caseBody = false;\n }\n }\n if (token.type === \"paren.lparen\") {\n roundDepth += (value.match(/\\(/g) || []).length;\n curlyDepth += (value.match(/\\{/g) || []).length;\n depth += value.length;\n }\n if (token.type === \"keyword\" && value.match(/^(if|else|elseif|for|while)$/)) {\n indentNextLine = true;\n roundDepth = 0;\n }\n else if (!roundDepth && value.trim() && token.type !== \"comment\")\n indentNextLine = false;\n if (token.type === \"paren.rparen\") {\n roundDepth -= (value.match(/\\)/g) || []).length;\n curlyDepth -= (value.match(/\\}/g) || []).length;\n for (i = 0; i < value.length; i++) {\n depth--;\n if (value.substr(i, 1) === '}' && parents[depth] === 'case') {\n depth--;\n }\n }\n }\n if (token.type == \"text\")\n value = value.replace(/\\s+$/, \" \");\n if (spaceBefore && !breakBefore) {\n trimLine();\n if (code.substr(-1) !== \"\\n\")\n code += \" \";\n }\n code += value;\n if (spaceAfter)\n code += \" \";\n breakBefore = false;\n spaceBefore = false;\n spaceAfter = false;\n if ((is(token, \"tag-close\") && (inBlock || blockTags.indexOf(tagName) !== -1)) || (is(token, \"doctype\") && value === \">\")) {\n if (inBlock && nextToken && nextToken.value === \"\") {\n depth--;\n }\n }\n if (is(token, \"tag-name\")) {\n tagName = value;\n }\n row = curRow;\n }\n }\n token = nextToken;\n }\n code = code.trim();\n session.doc.setValue(code);\n};\nexports.commands = [{\n name: \"beautify\",\n description: \"Format selection (Beautify)\",\n exec: function (editor) {\n exports.beautify(editor.session);\n },\n bindKey: \"Ctrl-Shift-B\"\n }];\n\n}); (function() {\n ace.require([\"ace/ext/beautify\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/ext/searchbox-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \"\\n\\n/* ------------------------------------------------------------------------------------------\\n * Editor Search Form\\n * --------------------------------------------------------------------------------------- */\\n.ace_search {\\n background-color: #ddd;\\n color: #666;\\n border: 1px solid #cbcbcb;\\n border-top: 0 none;\\n overflow: hidden;\\n margin: 0;\\n padding: 4px 6px 0 4px;\\n position: absolute;\\n top: 0;\\n z-index: 99;\\n white-space: normal;\\n}\\n.ace_search.left {\\n border-left: 0 none;\\n border-radius: 0px 0px 5px 0px;\\n left: 0;\\n}\\n.ace_search.right {\\n border-radius: 0px 0px 0px 5px;\\n border-right: 0 none;\\n right: 0;\\n}\\n\\n.ace_search_form, .ace_replace_form {\\n margin: 0 20px 4px 0;\\n overflow: hidden;\\n line-height: 1.9;\\n}\\n.ace_replace_form {\\n margin-right: 0;\\n}\\n.ace_search_form.ace_nomatch {\\n outline: 1px solid red;\\n}\\n\\n.ace_search_field {\\n border-radius: 3px 0 0 3px;\\n background-color: white;\\n color: black;\\n border: 1px solid #cbcbcb;\\n border-right: 0 none;\\n outline: 0;\\n padding: 0;\\n font-size: inherit;\\n margin: 0;\\n line-height: inherit;\\n padding: 0 6px;\\n min-width: 17em;\\n vertical-align: top;\\n min-height: 1.8em;\\n box-sizing: content-box;\\n}\\n.ace_searchbtn {\\n border: 1px solid #cbcbcb;\\n line-height: inherit;\\n display: inline-block;\\n padding: 0 6px;\\n background: #fff;\\n border-right: 0 none;\\n border-left: 1px solid #dcdcdc;\\n cursor: pointer;\\n margin: 0;\\n position: relative;\\n color: #666;\\n}\\n.ace_searchbtn:last-child {\\n border-radius: 0 3px 3px 0;\\n border-right: 1px solid #cbcbcb;\\n}\\n.ace_searchbtn:disabled {\\n background: none;\\n cursor: default;\\n}\\n.ace_searchbtn:hover {\\n background-color: #eef1f6;\\n}\\n.ace_searchbtn.prev, .ace_searchbtn.next {\\n padding: 0px 0.7em\\n}\\n.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\\n content: \\\"\\\";\\n border: solid 2px #888;\\n width: 0.5em;\\n height: 0.5em;\\n border-width: 2px 0 0 2px;\\n display:inline-block;\\n transform: rotate(-45deg);\\n}\\n.ace_searchbtn.next:after {\\n border-width: 0 2px 2px 0 ;\\n}\\n.ace_searchbtn_close {\\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\\n border-radius: 50%;\\n border: 0 none;\\n color: #656565;\\n cursor: pointer;\\n font: 16px/16px Arial;\\n padding: 0;\\n height: 14px;\\n width: 14px;\\n top: 9px;\\n right: 7px;\\n position: absolute;\\n}\\n.ace_searchbtn_close:hover {\\n background-color: #656565;\\n background-position: 50% 100%;\\n color: white;\\n}\\n\\n.ace_button {\\n margin-left: 2px;\\n cursor: pointer;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -o-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n overflow: hidden;\\n opacity: 0.7;\\n border: 1px solid rgba(100,100,100,0.23);\\n padding: 1px;\\n box-sizing: border-box!important;\\n color: black;\\n}\\n\\n.ace_button:hover {\\n background-color: #eee;\\n opacity:1;\\n}\\n.ace_button:active {\\n background-color: #ddd;\\n}\\n\\n.ace_button.checked {\\n border-color: #3399ff;\\n opacity:1;\\n}\\n\\n.ace_search_options{\\n margin-bottom: 3px;\\n text-align: right;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -o-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n clear: both;\\n}\\n\\n.ace_search_counter {\\n float: left;\\n font-family: arial;\\n padding: 0 8px;\\n}\";\n\n});\n\nace.define(\"ace/ext/searchbox\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/event\",\"ace/ext/searchbox-css\",\"ace/keyboard/hash_handler\",\"ace/lib/keys\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar event = require(\"../lib/event\");\nvar searchboxCss = require(\"./searchbox-css\");\nvar HashHandler = require(\"../keyboard/hash_handler\").HashHandler;\nvar keyUtil = require(\"../lib/keys\");\nvar nls = require(\"../config\").nls;\nvar MAX_COUNT = 999;\ndom.importCssString(searchboxCss, \"ace_searchbox\", false);\nvar SearchBox = /** @class */ (function () {\n function SearchBox(editor, range, showReplaceForm) {\n var div = dom.createElement(\"div\");\n dom.buildDom([\"div\", { class: \"ace_search right\" },\n [\"span\", { action: \"hide\", class: \"ace_searchbtn_close\" }],\n [\"div\", { class: \"ace_search_form\" },\n [\"input\", { class: \"ace_search_field\", placeholder: nls(\"Search for\"), spellcheck: \"false\" }],\n [\"span\", { action: \"findPrev\", class: \"ace_searchbtn prev\" }, \"\\u200b\"],\n [\"span\", { action: \"findNext\", class: \"ace_searchbtn next\" }, \"\\u200b\"],\n [\"span\", { action: \"findAll\", class: \"ace_searchbtn\", title: \"Alt-Enter\" }, nls(\"All\")]\n ],\n [\"div\", { class: \"ace_replace_form\" },\n [\"input\", { class: \"ace_search_field\", placeholder: nls(\"Replace with\"), spellcheck: \"false\" }],\n [\"span\", { action: \"replaceAndFindNext\", class: \"ace_searchbtn\" }, nls(\"Replace\")],\n [\"span\", { action: \"replaceAll\", class: \"ace_searchbtn\" }, nls(\"All\")]\n ],\n [\"div\", { class: \"ace_search_options\" },\n [\"span\", { action: \"toggleReplace\", class: \"ace_button\", title: nls(\"Toggle Replace mode\"),\n style: \"float:left;margin-top:-2px;padding:0 5px;\" }, \"+\"],\n [\"span\", { class: \"ace_search_counter\" }],\n [\"span\", { action: \"toggleRegexpMode\", class: \"ace_button\", title: nls(\"RegExp Search\") }, \".*\"],\n [\"span\", { action: \"toggleCaseSensitive\", class: \"ace_button\", title: nls(\"CaseSensitive Search\") }, \"Aa\"],\n [\"span\", { action: \"toggleWholeWords\", class: \"ace_button\", title: nls(\"Whole Word Search\") }, \"\\\\b\"],\n [\"span\", { action: \"searchInSelection\", class: \"ace_button\", title: nls(\"Search In Selection\") }, \"S\"]\n ]\n ], div);\n this.element = div.firstChild;\n this.setSession = this.setSession.bind(this);\n this.$init();\n this.setEditor(editor);\n dom.importCssString(searchboxCss, \"ace_searchbox\", editor.container);\n }\n SearchBox.prototype.setEditor = function (editor) {\n editor.searchBox = this;\n editor.renderer.scroller.appendChild(this.element);\n this.editor = editor;\n };\n SearchBox.prototype.setSession = function (e) {\n this.searchRange = null;\n this.$syncOptions(true);\n };\n SearchBox.prototype.$initElements = function (sb) {\n this.searchBox = sb.querySelector(\".ace_search_form\");\n this.replaceBox = sb.querySelector(\".ace_replace_form\");\n this.searchOption = sb.querySelector(\"[action=searchInSelection]\");\n this.replaceOption = sb.querySelector(\"[action=toggleReplace]\");\n this.regExpOption = sb.querySelector(\"[action=toggleRegexpMode]\");\n this.caseSensitiveOption = sb.querySelector(\"[action=toggleCaseSensitive]\");\n this.wholeWordOption = sb.querySelector(\"[action=toggleWholeWords]\");\n this.searchInput = this.searchBox.querySelector(\".ace_search_field\");\n this.replaceInput = this.replaceBox.querySelector(\".ace_search_field\");\n this.searchCounter = sb.querySelector(\".ace_search_counter\");\n };\n SearchBox.prototype.$init = function () {\n var sb = this.element;\n this.$initElements(sb);\n var _this = this;\n event.addListener(sb, \"mousedown\", function (e) {\n setTimeout(function () {\n _this.activeInput.focus();\n }, 0);\n event.stopPropagation(e);\n });\n event.addListener(sb, \"click\", function (e) {\n var t = e.target || e.srcElement;\n var action = t.getAttribute(\"action\");\n if (action && _this[action])\n _this[action]();\n else if (_this.$searchBarKb.commands[action])\n _this.$searchBarKb.commands[action].exec(_this);\n event.stopPropagation(e);\n });\n event.addCommandKeyListener(sb, function (e, hashId, keyCode) {\n var keyString = keyUtil.keyCodeToString(keyCode);\n var command = _this.$searchBarKb.findKeyCommand(hashId, keyString);\n if (command && command.exec) {\n command.exec(_this);\n event.stopEvent(e);\n }\n });\n this.$onChange = lang.delayedCall(function () {\n _this.find(false, false);\n });\n event.addListener(this.searchInput, \"input\", function () {\n _this.$onChange.schedule(20);\n });\n event.addListener(this.searchInput, \"focus\", function () {\n _this.activeInput = _this.searchInput;\n _this.searchInput.value && _this.highlight();\n });\n event.addListener(this.replaceInput, \"focus\", function () {\n _this.activeInput = _this.replaceInput;\n _this.searchInput.value && _this.highlight();\n });\n };\n SearchBox.prototype.setSearchRange = function (range) {\n this.searchRange = range;\n if (range) {\n this.searchRangeMarker = this.editor.session.addMarker(range, \"ace_active-line\");\n }\n else if (this.searchRangeMarker) {\n this.editor.session.removeMarker(this.searchRangeMarker);\n this.searchRangeMarker = null;\n }\n };\n SearchBox.prototype.$syncOptions = function (preventScroll) {\n dom.setCssClass(this.replaceOption, \"checked\", this.searchRange);\n dom.setCssClass(this.searchOption, \"checked\", this.searchOption.checked);\n this.replaceOption.textContent = this.replaceOption.checked ? \"-\" : \"+\";\n dom.setCssClass(this.regExpOption, \"checked\", this.regExpOption.checked);\n dom.setCssClass(this.wholeWordOption, \"checked\", this.wholeWordOption.checked);\n dom.setCssClass(this.caseSensitiveOption, \"checked\", this.caseSensitiveOption.checked);\n var readOnly = this.editor.getReadOnly();\n this.replaceOption.style.display = readOnly ? \"none\" : \"\";\n this.replaceBox.style.display = this.replaceOption.checked && !readOnly ? \"\" : \"none\";\n this.find(false, false, preventScroll);\n };\n SearchBox.prototype.highlight = function (re) {\n this.editor.session.highlight(re || this.editor.$search.$options.re);\n this.editor.renderer.updateBackMarkers();\n };\n SearchBox.prototype.find = function (skipCurrent, backwards, preventScroll) {\n var range = this.editor.find(this.searchInput.value, {\n skipCurrent: skipCurrent,\n backwards: backwards,\n wrap: true,\n regExp: this.regExpOption.checked,\n caseSensitive: this.caseSensitiveOption.checked,\n wholeWord: this.wholeWordOption.checked,\n preventScroll: preventScroll,\n range: this.searchRange\n });\n var noMatch = !range && this.searchInput.value;\n dom.setCssClass(this.searchBox, \"ace_nomatch\", noMatch);\n this.editor._emit(\"findSearchBox\", { match: !noMatch });\n this.highlight();\n this.updateCounter();\n };\n SearchBox.prototype.updateCounter = function () {\n var editor = this.editor;\n var regex = editor.$search.$options.re;\n var supportsUnicodeFlag = regex.unicode;\n var all = 0;\n var before = 0;\n if (regex) {\n var value = this.searchRange\n ? editor.session.getTextRange(this.searchRange)\n : editor.getValue();\n var offset = editor.session.doc.positionToIndex(editor.selection.anchor);\n if (this.searchRange)\n offset -= editor.session.doc.positionToIndex(this.searchRange.start);\n var last = regex.lastIndex = 0;\n var m;\n while ((m = regex.exec(value))) {\n all++;\n last = m.index;\n if (last <= offset)\n before++;\n if (all > MAX_COUNT)\n break;\n if (!m[0]) {\n regex.lastIndex = last += lang.skipEmptyMatch(value, last, supportsUnicodeFlag);\n if (last >= value.length)\n break;\n }\n }\n }\n this.searchCounter.textContent = nls(\"$0 of $1\", [before, (all > MAX_COUNT ? MAX_COUNT + \"+\" : all)]);\n };\n SearchBox.prototype.findNext = function () {\n this.find(true, false);\n };\n SearchBox.prototype.findPrev = function () {\n this.find(true, true);\n };\n SearchBox.prototype.findAll = function () {\n var range = this.editor.findAll(this.searchInput.value, {\n regExp: this.regExpOption.checked,\n caseSensitive: this.caseSensitiveOption.checked,\n wholeWord: this.wholeWordOption.checked\n });\n var noMatch = !range && this.searchInput.value;\n dom.setCssClass(this.searchBox, \"ace_nomatch\", noMatch);\n this.editor._emit(\"findSearchBox\", { match: !noMatch });\n this.highlight();\n this.hide();\n };\n SearchBox.prototype.replace = function () {\n if (!this.editor.getReadOnly())\n this.editor.replace(this.replaceInput.value);\n };\n SearchBox.prototype.replaceAndFindNext = function () {\n if (!this.editor.getReadOnly()) {\n this.editor.replace(this.replaceInput.value);\n this.findNext();\n }\n };\n SearchBox.prototype.replaceAll = function () {\n if (!this.editor.getReadOnly())\n this.editor.replaceAll(this.replaceInput.value);\n };\n SearchBox.prototype.hide = function () {\n this.active = false;\n this.setSearchRange(null);\n this.editor.off(\"changeSession\", this.setSession);\n this.element.style.display = \"none\";\n this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb);\n this.editor.focus();\n };\n SearchBox.prototype.show = function (value, isReplace) {\n this.active = true;\n this.editor.on(\"changeSession\", this.setSession);\n this.element.style.display = \"\";\n this.replaceOption.checked = isReplace;\n if (value)\n this.searchInput.value = value;\n this.searchInput.focus();\n this.searchInput.select();\n this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb);\n this.$syncOptions(true);\n };\n SearchBox.prototype.isFocused = function () {\n var el = document.activeElement;\n return el == this.searchInput || el == this.replaceInput;\n };\n return SearchBox;\n}());\nvar $searchBarKb = new HashHandler();\n$searchBarKb.bindKeys({\n \"Ctrl-f|Command-f\": function (sb) {\n var isReplace = sb.isReplace = !sb.isReplace;\n sb.replaceBox.style.display = isReplace ? \"\" : \"none\";\n sb.replaceOption.checked = false;\n sb.$syncOptions();\n sb.searchInput.focus();\n },\n \"Ctrl-H|Command-Option-F\": function (sb) {\n if (sb.editor.getReadOnly())\n return;\n sb.replaceOption.checked = true;\n sb.$syncOptions();\n sb.replaceInput.focus();\n },\n \"Ctrl-G|Command-G\": function (sb) {\n sb.findNext();\n },\n \"Ctrl-Shift-G|Command-Shift-G\": function (sb) {\n sb.findPrev();\n },\n \"esc\": function (sb) {\n setTimeout(function () { sb.hide(); });\n },\n \"Return\": function (sb) {\n if (sb.activeInput == sb.replaceInput)\n sb.replace();\n sb.findNext();\n },\n \"Shift-Return\": function (sb) {\n if (sb.activeInput == sb.replaceInput)\n sb.replace();\n sb.findPrev();\n },\n \"Alt-Return\": function (sb) {\n if (sb.activeInput == sb.replaceInput)\n sb.replaceAll();\n sb.findAll();\n },\n \"Tab\": function (sb) {\n (sb.activeInput == sb.replaceInput ? sb.searchInput : sb.replaceInput).focus();\n }\n});\n$searchBarKb.addCommands([{\n name: \"toggleRegexpMode\",\n bindKey: { win: \"Alt-R|Alt-/\", mac: \"Ctrl-Alt-R|Ctrl-Alt-/\" },\n exec: function (sb) {\n sb.regExpOption.checked = !sb.regExpOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"toggleCaseSensitive\",\n bindKey: { win: \"Alt-C|Alt-I\", mac: \"Ctrl-Alt-R|Ctrl-Alt-I\" },\n exec: function (sb) {\n sb.caseSensitiveOption.checked = !sb.caseSensitiveOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"toggleWholeWords\",\n bindKey: { win: \"Alt-B|Alt-W\", mac: \"Ctrl-Alt-B|Ctrl-Alt-W\" },\n exec: function (sb) {\n sb.wholeWordOption.checked = !sb.wholeWordOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"toggleReplace\",\n exec: function (sb) {\n sb.replaceOption.checked = !sb.replaceOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"searchInSelection\",\n exec: function (sb) {\n sb.searchOption.checked = !sb.searchRange;\n sb.setSearchRange(sb.searchOption.checked && sb.editor.getSelectionRange());\n sb.$syncOptions();\n }\n }]);\nvar $closeSearchBarKb = new HashHandler([{\n bindKey: \"Esc\",\n name: \"closeSearchBar\",\n exec: function (editor) {\n editor.searchBox.hide();\n }\n }]);\nSearchBox.prototype.$searchBarKb = $searchBarKb;\nSearchBox.prototype.$closeSearchBarKb = $closeSearchBarKb;\nexports.SearchBox = SearchBox;\nexports.Search = function (editor, isReplace) {\n var sb = editor.searchBox || new SearchBox(editor);\n sb.show(editor.session.getTextRange(), isReplace);\n};\n\n}); (function() {\n ace.require([\"ace/ext/searchbox\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|flex-end|flex-start|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\";\nvar supportConstantColor = exports.supportConstantColor = \"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses = exports.pseudoClasses = \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\nvar CssHighlightRules = function () {\n var keywordMapper = this.createKeywordMapper({\n \"support.function\": supportFunction,\n \"support.constant\": supportConstant,\n \"support.type\": supportType,\n \"support.constant.color\": supportConstantColor,\n \"support.constant.fonts\": supportConstantFonts\n }, \"text\", true);\n this.$rules = {\n \"start\": [{\n include: [\"strings\", \"url\", \"comments\"]\n }, {\n token: \"paren.lparen\",\n regex: \"\\\\{\",\n next: \"ruleset\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\"\n }, {\n token: \"string\",\n regex: \"@(?!viewport)\",\n next: \"media\"\n }, {\n token: \"keyword\",\n regex: \"#[a-z0-9-_]+\"\n }, {\n token: \"keyword\",\n regex: \"%\"\n }, {\n token: \"variable\",\n regex: \"\\\\.[a-z0-9-_]+\"\n }, {\n token: \"string\",\n regex: \":[a-z0-9-_]+\"\n }, {\n token: \"constant.numeric\",\n regex: numRe\n }, {\n token: \"constant\",\n regex: \"[a-z0-9-_]+\"\n }, {\n caseInsensitive: true\n }],\n \"media\": [{\n include: [\"strings\", \"url\", \"comments\"]\n }, {\n token: \"paren.lparen\",\n regex: \"\\\\{\",\n next: \"start\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\",\n next: \"start\"\n }, {\n token: \"string\",\n regex: \";\",\n next: \"start\"\n }, {\n token: \"keyword\",\n regex: \"(?:media|supports|document|charset|import|namespace|media|supports|document\"\n + \"|page|font|keyframes|viewport|counter-style|font-feature-values\"\n + \"|swash|ornaments|annotation|stylistic|styleset|character-variant)\"\n }],\n \"comments\": [{\n token: \"comment\",\n regex: \"\\\\/\\\\*\",\n push: [{\n token: \"comment\",\n regex: \"\\\\*\\\\/\",\n next: \"pop\"\n }, {\n defaultToken: \"comment\"\n }]\n }],\n \"ruleset\": [{\n regex: \"-(webkit|ms|moz|o)-\",\n token: \"text\"\n }, {\n token: \"punctuation.operator\",\n regex: \"[:;]\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\",\n next: \"start\"\n }, {\n include: [\"strings\", \"url\", \"comments\"]\n }, {\n token: [\"constant.numeric\", \"keyword\"],\n regex: \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"\n }, {\n token: \"constant.numeric\",\n regex: numRe\n }, {\n token: \"constant.numeric\",\n regex: \"#[a-f0-9]{6}\"\n }, {\n token: \"constant.numeric\",\n regex: \"#[a-f0-9]{3}\"\n }, {\n token: [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n regex: pseudoElements\n }, {\n token: [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n regex: pseudoClasses\n }, {\n include: \"url\"\n }, {\n token: keywordMapper,\n regex: \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n }, {\n caseInsensitive: true\n }],\n url: [{\n token: \"support.function\",\n regex: \"(?:url(:?-prefix)?|domain|regexp)\\\\(\",\n push: [{\n token: \"support.function\",\n regex: \"\\\\)\",\n next: \"pop\"\n }, {\n defaultToken: \"string\"\n }]\n }],\n strings: [{\n token: \"string.start\",\n regex: \"'\",\n push: [{\n token: \"string.end\",\n regex: \"'|$\",\n next: \"pop\"\n }, {\n include: \"escapes\"\n }, {\n token: \"constant.language.escape\",\n regex: /\\\\$/,\n consumeLineEnd: true\n }, {\n defaultToken: \"string\"\n }]\n }, {\n token: \"string.start\",\n regex: '\"',\n push: [{\n token: \"string.end\",\n regex: '\"|$',\n next: \"pop\"\n }, {\n include: \"escapes\"\n }, {\n token: \"constant.language.escape\",\n regex: /\\\\$/,\n consumeLineEnd: true\n }, {\n defaultToken: \"string\"\n }]\n }],\n escapes: [{\n token: \"constant.language.escape\",\n regex: /\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/\n }]\n };\n this.normalizeRules();\n};\noop.inherits(CssHighlightRules, TextHighlightRules);\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar propertyMap = {\n \"background\": { \"#$0\": 1 },\n \"background-color\": { \"#$0\": 1, \"transparent\": 1, \"fixed\": 1 },\n \"background-image\": { \"url('/$0')\": 1 },\n \"background-repeat\": { \"repeat\": 1, \"repeat-x\": 1, \"repeat-y\": 1, \"no-repeat\": 1, \"inherit\": 1 },\n \"background-position\": { \"bottom\": 2, \"center\": 2, \"left\": 2, \"right\": 2, \"top\": 2, \"inherit\": 2 },\n \"background-attachment\": { \"scroll\": 1, \"fixed\": 1 },\n \"background-size\": { \"cover\": 1, \"contain\": 1 },\n \"background-clip\": { \"border-box\": 1, \"padding-box\": 1, \"content-box\": 1 },\n \"background-origin\": { \"border-box\": 1, \"padding-box\": 1, \"content-box\": 1 },\n \"border\": { \"solid $0\": 1, \"dashed $0\": 1, \"dotted $0\": 1, \"#$0\": 1 },\n \"border-color\": { \"#$0\": 1 },\n \"border-style\": { \"solid\": 2, \"dashed\": 2, \"dotted\": 2, \"double\": 2, \"groove\": 2, \"hidden\": 2, \"inherit\": 2, \"inset\": 2, \"none\": 2, \"outset\": 2, \"ridged\": 2 },\n \"border-collapse\": { \"collapse\": 1, \"separate\": 1 },\n \"bottom\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"clear\": { \"left\": 1, \"right\": 1, \"both\": 1, \"none\": 1 },\n \"color\": { \"#$0\": 1, \"rgb(#$00,0,0)\": 1 },\n \"cursor\": { \"default\": 1, \"pointer\": 1, \"move\": 1, \"text\": 1, \"wait\": 1, \"help\": 1, \"progress\": 1, \"n-resize\": 1, \"ne-resize\": 1, \"e-resize\": 1, \"se-resize\": 1, \"s-resize\": 1, \"sw-resize\": 1, \"w-resize\": 1, \"nw-resize\": 1 },\n \"display\": { \"none\": 1, \"block\": 1, \"inline\": 1, \"inline-block\": 1, \"table-cell\": 1 },\n \"empty-cells\": { \"show\": 1, \"hide\": 1 },\n \"float\": { \"left\": 1, \"right\": 1, \"none\": 1 },\n \"font-family\": { \"Arial\": 2, \"Comic Sans MS\": 2, \"Consolas\": 2, \"Courier New\": 2, \"Courier\": 2, \"Georgia\": 2, \"Monospace\": 2, \"Sans-Serif\": 2, \"Segoe UI\": 2, \"Tahoma\": 2, \"Times New Roman\": 2, \"Trebuchet MS\": 2, \"Verdana\": 1 },\n \"font-size\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"font-weight\": { \"bold\": 1, \"normal\": 1 },\n \"font-style\": { \"italic\": 1, \"normal\": 1 },\n \"font-variant\": { \"normal\": 1, \"small-caps\": 1 },\n \"height\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"left\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"letter-spacing\": { \"normal\": 1 },\n \"line-height\": { \"normal\": 1 },\n \"list-style-type\": { \"none\": 1, \"disc\": 1, \"circle\": 1, \"square\": 1, \"decimal\": 1, \"decimal-leading-zero\": 1, \"lower-roman\": 1, \"upper-roman\": 1, \"lower-greek\": 1, \"lower-latin\": 1, \"upper-latin\": 1, \"georgian\": 1, \"lower-alpha\": 1, \"upper-alpha\": 1 },\n \"margin\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-right\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-left\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-top\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-bottom\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"max-height\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"max-width\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"min-height\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"min-width\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"overflow\": { \"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1 },\n \"overflow-x\": { \"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1 },\n \"overflow-y\": { \"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1 },\n \"padding\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-top\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-right\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-bottom\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-left\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"page-break-after\": { \"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1 },\n \"page-break-before\": { \"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1 },\n \"position\": { \"absolute\": 1, \"relative\": 1, \"fixed\": 1, \"static\": 1 },\n \"right\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"table-layout\": { \"fixed\": 1, \"auto\": 1 },\n \"text-decoration\": { \"none\": 1, \"underline\": 1, \"line-through\": 1, \"blink\": 1 },\n \"text-align\": { \"left\": 1, \"right\": 1, \"center\": 1, \"justify\": 1 },\n \"text-transform\": { \"capitalize\": 1, \"uppercase\": 1, \"lowercase\": 1, \"none\": 1 },\n \"top\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"vertical-align\": { \"top\": 1, \"bottom\": 1 },\n \"visibility\": { \"hidden\": 1, \"visible\": 1 },\n \"white-space\": { \"nowrap\": 1, \"normal\": 1, \"pre\": 1, \"pre-line\": 1, \"pre-wrap\": 1 },\n \"width\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"word-spacing\": { \"normal\": 1 },\n \"filter\": { \"alpha(opacity=$0100)\": 1 },\n \"text-shadow\": { \"$02px 2px 2px #777\": 1 },\n \"text-overflow\": { \"ellipsis-word\": 1, \"clip\": 1, \"ellipsis\": 1 },\n \"-moz-border-radius\": 1,\n \"-moz-border-radius-topright\": 1,\n \"-moz-border-radius-bottomright\": 1,\n \"-moz-border-radius-topleft\": 1,\n \"-moz-border-radius-bottomleft\": 1,\n \"-webkit-border-radius\": 1,\n \"-webkit-border-top-right-radius\": 1,\n \"-webkit-border-top-left-radius\": 1,\n \"-webkit-border-bottom-right-radius\": 1,\n \"-webkit-border-bottom-left-radius\": 1,\n \"-moz-box-shadow\": 1,\n \"-webkit-box-shadow\": 1,\n \"transform\": { \"rotate($00deg)\": 1, \"skew($00deg)\": 1 },\n \"-moz-transform\": { \"rotate($00deg)\": 1, \"skew($00deg)\": 1 },\n \"-webkit-transform\": { \"rotate($00deg)\": 1, \"skew($00deg)\": 1 }\n};\nvar CssCompletions = function () {\n};\n(function () {\n this.completionsDefined = false;\n this.defineCompletions = function () {\n if (document) {\n var style = document.createElement('c').style;\n for (var i in style) {\n if (typeof style[i] !== 'string')\n continue;\n var name = i.replace(/[A-Z]/g, function (x) {\n return '-' + x.toLowerCase();\n });\n if (!propertyMap.hasOwnProperty(name))\n propertyMap[name] = 1;\n }\n }\n this.completionsDefined = true;\n };\n this.getCompletions = function (state, session, pos, prefix) {\n if (!this.completionsDefined) {\n this.defineCompletions();\n }\n if (state === 'ruleset' || session.$mode.$id == \"ace/mode/scss\") {\n var line = session.getLine(pos.row).substr(0, pos.column);\n var inParens = /\\([^)]*$/.test(line);\n if (inParens) {\n line = line.substr(line.lastIndexOf('(') + 1);\n }\n if (/:[^;]+$/.test(line)) {\n /([\\w\\-]+):[^:]*$/.test(line);\n return this.getPropertyValueCompletions(state, session, pos, prefix);\n }\n else {\n return this.getPropertyCompletions(state, session, pos, prefix, inParens);\n }\n }\n return [];\n };\n this.getPropertyCompletions = function (state, session, pos, prefix, skipSemicolon) {\n skipSemicolon = skipSemicolon || false;\n var properties = Object.keys(propertyMap);\n return properties.map(function (property) {\n return {\n caption: property,\n snippet: property + ': $0' + (skipSemicolon ? '' : ';'),\n meta: \"property\",\n score: 1000000\n };\n });\n };\n this.getPropertyValueCompletions = function (state, session, pos, prefix) {\n var line = session.getLine(pos.row).substr(0, pos.column);\n var property = (/([\\w\\-]+):[^:]*$/.exec(line) || {})[1];\n if (!property)\n return [];\n var values = [];\n if (property in propertyMap && typeof propertyMap[property] === \"object\") {\n values = Object.keys(propertyMap[property]);\n }\n return values.map(function (value) {\n return {\n caption: value,\n snippet: value,\n meta: \"property value\",\n score: 1000000\n };\n });\n };\n}).call(CssCompletions.prototype);\nexports.CssCompletions = CssCompletions;\n\n});\n\nace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar CstyleBehaviour = require(\"./cstyle\").CstyleBehaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar CssBehaviour = function () {\n this.inherit(CstyleBehaviour);\n this.add(\"colon\", \"insertion\", function (state, action, editor, session, text) {\n if (text === ':' && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.value.match(/\\s+/)) {\n token = iterator.stepBackward();\n }\n if (token && token.type === 'support.type') {\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === ':') {\n return {\n text: '',\n selection: [1, 1]\n };\n }\n if (/^(\\s+[^;]|\\s*$)/.test(line.substring(cursor.column))) {\n return {\n text: ':;',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"colon\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected === ':') {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.value.match(/\\s+/)) {\n token = iterator.stepBackward();\n }\n if (token && token.type === 'support.type') {\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar === ';') {\n range.end.column++;\n return range;\n }\n }\n }\n });\n this.add(\"semicolon\", \"insertion\", function (state, action, editor, session, text) {\n if (text === ';' && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === ';') {\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"!important\", \"insertion\", function (state, action, editor, session, text) {\n if (text === '!' && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (/^\\s*(;|}|$)/.test(line.substring(cursor.column))) {\n return {\n text: '!important',\n selection: [10, 10]\n };\n }\n }\n });\n};\noop.inherits(CssBehaviour, CstyleBehaviour);\nexports.CssBehaviour = CssBehaviour;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CssCompletions = require(\"./css_completions\").CssCompletions;\nvar CssBehaviour = require(\"./behaviour/css\").CssBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = CssHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CssBehaviour();\n this.$completer = new CssCompletions();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.foldingRules = \"cStyle\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n var match = line.match(/^.*\\{\\s*$/);\n if (match) {\n indent += tab;\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.getCompletions = function (state, session, pos, prefix) {\n return this.$completer.getCompletions(state, session, pos, prefix);\n };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/css_worker\", \"Worker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"annotate\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/css\";\n this.snippetFileId = \"ace/snippets/css\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/css\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar DocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n }, DocCommentHighlightRules.getTagRule(), {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ]\n };\n};\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\nDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/golang_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar GolangHighlightRules = function () {\n var keywords = (\"else|break|case|return|goto|if|const|select|\" +\n \"continue|struct|default|switch|for|range|\" +\n \"func|import|package|chan|defer|fallthrough|go|interface|map|range|\" +\n \"select|type|var\");\n var builtinTypes = (\"string|uint8|uint16|uint32|uint64|int8|int16|int32|int64|float32|\" +\n \"float64|complex64|complex128|byte|rune|uint|int|uintptr|bool|error\");\n var builtinFunctions = (\"new|close|cap|copy|panic|panicln|print|println|len|make|delete|real|recover|imag|append\");\n var builtinConstants = (\"nil|true|false|iota\");\n var keywordMapper = this.createKeywordMapper({\n \"keyword\": keywords,\n \"constant.language\": builtinConstants,\n \"support.function\": builtinFunctions,\n \"support.type\": builtinTypes\n }, \"\");\n var stringEscapeRe = \"\\\\\\\\(?:[0-7]{3}|x\\\\h{2}|u{4}|U\\\\h{6}|[abfnrtv'\\\"\\\\\\\\])\".replace(/\\\\h/g, \"[a-fA-F\\\\d]\");\n this.$rules = {\n \"start\": [\n {\n token: \"comment\",\n regex: \"\\\\/\\\\/.*$\"\n },\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n {\n token: \"comment.start\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"string\",\n regex: /\"(?:[^\"\\\\]|\\\\.)*?\"/\n }, {\n token: \"string\",\n regex: '`',\n next: \"bqstring\"\n }, {\n token: \"constant.numeric\",\n regex: \"'(?:[^\\\\'\\uD800-\\uDBFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|\" + stringEscapeRe.replace('\"', '') + \")'\"\n }, {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token: [\"keyword\", \"text\", \"entity.name.function\"],\n regex: \"(func)(\\\\s+)([a-zA-Z_$][a-zA-Z0-9_$]*)\\\\b\"\n }, {\n token: function (val) {\n if (val[val.length - 1] == \"(\") {\n return [{\n type: keywordMapper(val.slice(0, -1)) || \"support.function\",\n value: val.slice(0, -1)\n }, {\n type: \"paren.lparen\",\n value: val.slice(-1)\n }];\n }\n return keywordMapper(val) || \"identifier\";\n },\n regex: \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\\\\(?\"\n }, {\n token: \"keyword.operator\",\n regex: \"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=\"\n }, {\n token: \"punctuation.operator\",\n regex: \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}]\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"comment\": [\n {\n token: \"comment.end\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ],\n \"bqstring\": [\n {\n token: \"string\",\n regex: '`',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }\n ]\n };\n this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"start\")]);\n};\noop.inherits(GolangHighlightRules, TextHighlightRules);\nexports.GolangHighlightRules = GolangHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/golang\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/golang_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar GolangHighlightRules = require(\"./golang_highlight_rules\").GolangHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = GolangHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.foldingRules = new CStyleFoldMode();\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n var endState = tokenizedLine.state;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n }; //end getNextLineIndent\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.$id = \"ace/mode/golang\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/golang\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/jsdoc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JsDocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: [\"comment.doc.tag\", \"comment.doc.text\", \"lparen.doc\"],\n regex: \"(@(?:param|member|typedef|property|namespace|var|const|callback))(\\\\s*)({)\",\n push: [\n {\n token: \"lparen.doc\",\n regex: \"{\",\n push: [\n {\n include: \"doc-syntax\"\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }\n ]\n }, {\n token: [\"rparen.doc\", \"text.doc\", \"variable.parameter.doc\", \"lparen.doc\", \"variable.parameter.doc\", \"rparen.doc\"],\n regex: /(})(\\s*)(?:([\\w=:\\/\\.]+)|(?:(\\[)([\\w=:\\/\\.]+)(\\])))/,\n next: \"pop\"\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }, {\n include: \"doc-syntax\"\n }, {\n defaultToken: \"text.doc\"\n }\n ]\n }, {\n token: [\"comment.doc.tag\", \"text.doc\", \"lparen.doc\"],\n regex: \"(@(?:returns?|yields|type|this|suppress|public|protected|private|package|modifies|\"\n + \"implements|external|exception|throws|enum|define|extends))(\\\\s*)({)\",\n push: [\n {\n token: \"lparen.doc\",\n regex: \"{\",\n push: [\n {\n include: \"doc-syntax\"\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }\n ]\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }, {\n include: \"doc-syntax\"\n }, {\n defaultToken: \"text.doc\"\n }\n ]\n }, {\n token: [\"comment.doc.tag\", \"text.doc\", \"variable.parameter.doc\"],\n regex: \"(@(?:alias|memberof|instance|module|name|lends|namespace|external|this|template|\"\n + \"requires|param|implements|function|extends|typedef|mixes|constructor|var|\"\n + \"memberof\\\\!|event|listens|exports|class|constructs|interface|emits|fires|\"\n + \"throws|const|callback|borrows|augments))(\\\\s+)(\\\\w[\\\\w#\\.:\\/~\\\"\\\\-]*)?\"\n }, {\n token: [\"comment.doc.tag\", \"text.doc\", \"variable.parameter.doc\"],\n regex: \"(@method)(\\\\s+)(\\\\w[\\\\w\\.\\\\(\\\\)]*)\"\n }, {\n token: \"comment.doc.tag\",\n regex: \"@access\\\\s+(?:private|public|protected)\"\n }, {\n token: \"comment.doc.tag\",\n regex: \"@kind\\\\s+(?:class|constant|event|external|file|function|member|mixin|module|namespace|typedef)\"\n }, {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n },\n JsDocCommentHighlightRules.getTagRule(),\n {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ],\n \"doc-syntax\": [{\n token: \"operator.doc\",\n regex: /[|:]/\n }, {\n token: \"paren.doc\",\n regex: /[\\[\\]]/\n }]\n };\n this.normalizeRules();\n};\noop.inherits(JsDocCommentHighlightRules, TextHighlightRules);\nJsDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nJsDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nJsDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.JsDocCommentHighlightRules = JsDocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/jsdoc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./jsdoc_comment_highlight_rules\").JsDocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\nvar JavaScriptHighlightRules = function (options) {\n var keywordMapper = this.createKeywordMapper({\n \"variable.language\": \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|\" + // Constructors\n \"Namespace|QName|XML|XMLList|\" + // E4X\n \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\" +\n \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\" +\n \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\" + // Errors\n \"SyntaxError|TypeError|URIError|\" +\n \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n \"isNaN|parseFloat|parseInt|\" +\n \"JSON|Math|\" + // Other\n \"this|arguments|prototype|window|document\",\n \"keyword\": \"const|yield|import|get|set|async|await|\" +\n \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static|constructor\",\n \"storage.type\": \"const|let|var|function\",\n \"constant.language\": \"null|Infinity|NaN|undefined\",\n \"support.function\": \"alert\",\n \"constant.language.boolean\": \"true|false\"\n }, \"identifier\");\n var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n \"u[0-9a-fA-F]{4}|\" + // unicode\n \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n \"[0-2][0-7]{0,2}|\" + // oct\n \"3[0-7][0-7]?|\" + // oct\n \"[4-7][0-7]?|\" + //oct\n \".)\";\n this.$rules = {\n \"no_regex\": [\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n comments(\"no_regex\"),\n {\n token: \"string\",\n regex: \"'(?=.)\",\n next: \"qstring\"\n }, {\n token: \"string\",\n regex: '\"(?=.)',\n next: \"qqstring\"\n }, {\n token: \"constant.numeric\",\n regex: /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/\n }, {\n token: \"constant.numeric\",\n regex: /(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"support.function\",\n \"punctuation.operator\", \"entity.name.function\", \"text\", \"keyword.operator\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)\",\n next: \"function_arguments\"\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\",\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex: \"(function\\\\*?)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"entity.name.function\", \"text\", \"punctuation.operator\",\n \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex: \"(:)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: \"keyword\",\n regex: \"from(?=\\\\s*('|\\\"))\"\n }, {\n token: \"keyword\",\n regex: \"(?:\" + kwBeforeRe + \")\\\\b\",\n next: \"start\"\n }, {\n token: \"support.constant\",\n regex: /that\\b/\n }, {\n token: [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n regex: /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n }, {\n token: keywordMapper,\n regex: identifierRe\n }, {\n token: \"punctuation.operator\",\n regex: /[.](?![.])/,\n next: \"property\"\n }, {\n token: \"storage.type\",\n regex: /=>/,\n next: \"start\"\n }, {\n token: \"keyword.operator\",\n regex: /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n next: \"start\"\n }, {\n token: \"punctuation.operator\",\n regex: /[?:,;.]/,\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: /[\\[({]/,\n next: \"start\"\n }, {\n token: \"paren.rparen\",\n regex: /[\\])}]/\n }, {\n token: \"comment\",\n regex: /^#!.*$/\n }\n ],\n property: [{\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\",\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: \"punctuation.operator\",\n regex: /[.](?![.])/\n }, {\n token: \"support.function\",\n regex: /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|lter|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward|rEach)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n }, {\n token: \"support.function.dom\",\n regex: /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n }, {\n token: \"support.constant\",\n regex: /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n }, {\n token: \"identifier\",\n regex: identifierRe\n }, {\n regex: \"\",\n token: \"empty\",\n next: \"no_regex\"\n }\n ],\n \"start\": [\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n comments(\"start\"),\n {\n token: \"string.regexp\",\n regex: \"\\\\/\",\n next: \"regex\"\n }, {\n token: \"text\",\n regex: \"\\\\s+|^$\",\n next: \"start\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"regex\": [\n {\n token: \"regexp.keyword.operator\",\n regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n }, {\n token: \"string.regexp\",\n regex: \"/[sxngimy]*\",\n next: \"no_regex\"\n }, {\n token: \"invalid\",\n regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n }, {\n token: \"constant.language.escape\",\n regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n }, {\n token: \"constant.language.delimiter\",\n regex: /\\|/\n }, {\n token: \"constant.language.escape\",\n regex: /\\[\\^?/,\n next: \"regex_character_class\"\n }, {\n token: \"empty\",\n regex: \"$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string.regexp\"\n }\n ],\n \"regex_character_class\": [\n {\n token: \"regexp.charclass.keyword.operator\",\n regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n }, {\n token: \"constant.language.escape\",\n regex: \"]\",\n next: \"regex\"\n }, {\n token: \"constant.language.escape\",\n regex: \"-\"\n }, {\n token: \"empty\",\n regex: \"$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string.regexp.charachterclass\"\n }\n ],\n \"default_parameter\": [\n {\n token: \"string\",\n regex: \"'(?=.)\",\n push: [\n {\n token: \"string\",\n regex: \"'|$\",\n next: \"pop\"\n }, {\n include: \"qstring\"\n }\n ]\n }, {\n token: \"string\",\n regex: '\"(?=.)',\n push: [\n {\n token: \"string\",\n regex: '\"|$',\n next: \"pop\"\n }, {\n include: \"qqstring\"\n }\n ]\n }, {\n token: \"constant.language\",\n regex: \"null|Infinity|NaN|undefined\"\n }, {\n token: \"constant.numeric\",\n regex: /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/\n }, {\n token: \"constant.numeric\",\n regex: /(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/\n }, {\n token: \"punctuation.operator\",\n regex: \",\",\n next: \"function_arguments\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n token: \"punctuation.operator\",\n regex: \"$\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"function_arguments\": [\n comments(\"function_arguments\"),\n {\n token: \"variable.parameter\",\n regex: identifierRe\n }, {\n token: \"punctuation.operator\",\n regex: \",\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n token: \"punctuation.operator\",\n regex: \"$\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"qqstring\": [\n {\n token: \"constant.language.escape\",\n regex: escapedRe\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n consumeLineEnd: true\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"no_regex\"\n }, {\n defaultToken: \"string\"\n }\n ],\n \"qstring\": [\n {\n token: \"constant.language.escape\",\n regex: escapedRe\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n consumeLineEnd: true\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string\"\n }\n ]\n };\n if (!options || !options.noES6) {\n this.$rules.no_regex.unshift({\n regex: \"[{}]\", onMatch: function (val, state, stack) {\n this.next = val == \"{\" ? this.nextState : \"\";\n if (val == \"{\" && stack.length) {\n stack.unshift(\"start\", state);\n }\n else if (val == \"}\" && stack.length) {\n stack.shift();\n this.next = stack.shift();\n if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n return \"paren.quasi.end\";\n }\n return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n },\n nextState: \"start\"\n }, {\n token: \"string.quasi.start\",\n regex: /`/,\n push: [{\n token: \"constant.language.escape\",\n regex: escapedRe\n }, {\n token: \"paren.quasi.start\",\n regex: /\\${/,\n push: \"start\"\n }, {\n token: \"string.quasi.end\",\n regex: /`/,\n next: \"pop\"\n }, {\n defaultToken: \"string.quasi\"\n }]\n }, {\n token: [\"variable.parameter\", \"text\"],\n regex: \"(\" + identifierRe + \")(\\\\s*)(?=\\\\=>)\"\n }, {\n token: \"paren.lparen\",\n regex: \"(\\\\()(?=.+\\\\s*=>)\",\n next: \"function_arguments\"\n }, {\n token: \"variable.language\",\n regex: \"(?:(?:(?:Weak)?(?:Set|Map))|Promise)\\\\b\"\n });\n this.$rules[\"function_arguments\"].unshift({\n token: \"keyword.operator\",\n regex: \"=\",\n next: \"default_parameter\"\n }, {\n token: \"keyword.operator\",\n regex: \"\\\\.{3}\"\n });\n this.$rules[\"property\"].unshift({\n token: \"support.function\",\n regex: \"(findIndex|repeat|startsWith|endsWith|includes|isSafeInteger|trunc|cbrt|log2|log10|sign|then|catch|\"\n + \"finally|resolve|reject|race|any|all|allSettled|keys|entries|isInteger)\\\\b(?=\\\\()\"\n }, {\n token: \"constant.language\",\n regex: \"(?:MAX_SAFE_INTEGER|MIN_SAFE_INTEGER|EPSILON)\\\\b\"\n });\n if (!options || options.jsx != false)\n JSX.call(this);\n }\n this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"no_regex\")]);\n this.normalizeRules();\n};\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\nfunction JSX() {\n var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n var jsxTag = {\n onMatch: function (val, state, stack) {\n var offset = val.charAt(1) == \"/\" ? 2 : 1;\n if (offset == 1) {\n if (state != this.nextState)\n stack.unshift(this.next, this.nextState, 0);\n else\n stack.unshift(this.next);\n stack[2]++;\n }\n else if (offset == 2) {\n if (state == this.nextState) {\n stack[1]--;\n if (!stack[1] || stack[1] < 0) {\n stack.shift();\n stack.shift();\n }\n }\n }\n return [{\n type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n value: val.slice(0, offset)\n }, {\n type: \"meta.tag.tag-name.xml\",\n value: val.substr(offset)\n }];\n },\n regex: \"\",\n onMatch: function (value, currentState, stack) {\n if (currentState == stack[0])\n stack.shift();\n if (value.length == 2) {\n if (stack[0] == this.nextState)\n stack[1]--;\n if (!stack[1] || stack[1] < 0) {\n stack.splice(0, 2);\n }\n }\n this.next = stack[0] || \"start\";\n return [{ type: this.token, value: value }];\n },\n nextState: \"jsx\"\n },\n jsxJsRule,\n comments(\"jsxAttributes\"),\n {\n token: \"entity.other.attribute-name.xml\",\n regex: tagRegex\n }, {\n token: \"keyword.operator.attribute-equals.xml\",\n regex: \"=\"\n }, {\n token: \"text.tag-whitespace.xml\",\n regex: \"\\\\s+\"\n }, {\n token: \"string.attribute-value.xml\",\n regex: \"'\",\n stateName: \"jsx_attr_q\",\n push: [\n { token: \"string.attribute-value.xml\", regex: \"'\", next: \"pop\" },\n { include: \"reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }, {\n token: \"string.attribute-value.xml\",\n regex: '\"',\n stateName: \"jsx_attr_qq\",\n push: [\n { token: \"string.attribute-value.xml\", regex: '\"', next: \"pop\" },\n { include: \"reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n },\n jsxTag\n ];\n this.$rules.reference = [{\n token: \"constant.language.escape.reference.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }];\n}\nfunction comments(next) {\n return [\n {\n token: \"comment\",\n regex: /\\/\\*/,\n next: [\n DocCommentHighlightRules.getTagRule(),\n { token: \"comment\", regex: \"\\\\*\\\\/\", next: next || \"pop\" },\n { defaultToken: \"comment\", caseInsensitive: true }\n ]\n }, {\n token: \"comment\",\n regex: \"\\\\/\\\\/\",\n next: [\n DocCommentHighlightRules.getTagRule(),\n { token: \"comment\", regex: \"$|^\", next: next || \"pop\" },\n { defaultToken: \"comment\", caseInsensitive: true }\n ]\n }\n ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = JavaScriptHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CstyleBehaviour();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.$quotes = { '\"': '\"', \"'\": \"'\", \"`\": \"`\" };\n this.$pairQuotesAfter = {\n \"`\": /\\w/\n };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n var endState = tokenizedLine.state;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\" || state == \"no_regex\") {\n var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n else if (state == \"doc-start\") {\n if (endState == \"start\" || endState == \"no_regex\") {\n return \"\";\n }\n var match = line.match(/^\\s*(\\/?)\\*/);\n if (match) {\n if (match[1]) {\n indent += \" \";\n }\n indent += \"* \";\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"annotate\", function (results) {\n session.setAnnotations(results.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/javascript\";\n this.snippetFileId = \"ace/snippets/javascript\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/javascript\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/json_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JsonHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"variable\",\n regex: '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]\\\\s*(?=:)'\n }, {\n token: \"string\",\n regex: '\"',\n next: \"string\"\n }, {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token: \"constant.language.boolean\",\n regex: \"(?:true|false)\\\\b\"\n }, {\n token: \"text\",\n regex: \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token: \"comment\",\n regex: \"\\\\/\\\\/.*$\"\n }, {\n token: \"comment.start\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}]\"\n }, {\n token: \"punctuation.operator\",\n regex: /[,]/\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"string\": [\n {\n token: \"constant.language.escape\",\n regex: /\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[\"\\\\\\/bfnrt])/\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }\n ],\n \"comment\": [\n {\n token: \"comment.end\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ]\n };\n};\noop.inherits(JsonHighlightRules, TextHighlightRules);\nexports.JsonHighlightRules = JsonHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/json\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/json_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\",\"ace/worker/worker_client\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar HighlightRules = require(\"./json_highlight_rules\").JsonHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar Mode = function () {\n this.HighlightRules = HighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = this.$defaultBehaviour;\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/json_worker\", \"JsonWorker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"annotate\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/json\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/json\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar DocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n }, DocCommentHighlightRules.getTagRule(), {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ]\n };\n};\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\nDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/jsx_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JsxHighlightRules = function () {\n var keywords = lang.arrayToMap((\"break|do|instanceof|typeof|case|else|new|var|catch|finally|return|void|continue|for|switch|default|while|function|this|\" +\n \"if|throw|\" +\n \"delete|in|try|\" +\n \"class|extends|super|import|from|into|implements|interface|static|mixin|override|abstract|final|\" +\n \"number|int|string|boolean|variant|\" +\n \"log|assert\").split(\"|\"));\n var buildinConstants = lang.arrayToMap((\"null|true|false|NaN|Infinity|__FILE__|__LINE__|undefined\").split(\"|\"));\n var reserved = lang.arrayToMap((\"debugger|with|\" +\n \"const|export|\" +\n \"let|private|public|yield|protected|\" +\n \"extern|native|as|operator|__fake__|__readonly__\").split(\"|\"));\n var identifierRe = \"[a-zA-Z_][a-zA-Z0-9_]*\\\\b\";\n this.$rules = {\n \"start\": [\n {\n token: \"comment\",\n regex: \"\\\\/\\\\/.*$\"\n },\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n {\n token: \"comment\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"string.regexp\",\n regex: \"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"\n }, {\n token: \"string\",\n regex: '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n }, {\n token: \"string\",\n regex: \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token: \"constant.language.boolean\",\n regex: \"(?:true|false)\\\\b\"\n }, {\n token: [\n \"storage.type\",\n \"text\",\n \"entity.name.function\"\n ],\n regex: \"(function)(\\\\s+)(\" + identifierRe + \")\"\n }, {\n token: function (value) {\n if (value == \"this\")\n return \"variable.language\";\n else if (value == \"function\")\n return \"storage.type\";\n else if (keywords.hasOwnProperty(value) || reserved.hasOwnProperty(value))\n return \"keyword\";\n else if (buildinConstants.hasOwnProperty(value))\n return \"constant.language\";\n else if (/^_?[A-Z][a-zA-Z0-9_]*$/.test(value))\n return \"language.support.class\";\n else\n return \"identifier\";\n },\n regex: identifierRe\n }, {\n token: \"keyword.operator\",\n regex: \"!|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"\n }, {\n token: \"punctuation.operator\",\n regex: \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({<]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}>]\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"comment\": [\n {\n token: \"comment\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ]\n };\n this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"start\")]);\n};\noop.inherits(JsxHighlightRules, TextHighlightRules);\nexports.JsxHighlightRules = JsxHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/jsx\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/jsx_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JsxHighlightRules = require(\"./jsx_highlight_rules\").JsxHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nfunction Mode() {\n this.HighlightRules = JsxHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = this.$defaultBehaviour;\n this.foldingRules = new CStyleFoldMode();\n}\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.$id = \"ace/mode/jsx\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/jsx\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/python_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){/*\n * TODO: python delimiters\n */\n\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar PythonHighlightRules = function () {\n var keywords = (\"and|as|assert|break|class|continue|def|del|elif|else|except|exec|\" +\n \"finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|\" +\n \"raise|return|try|while|with|yield|async|await|nonlocal\");\n var builtinConstants = (\"True|False|None|NotImplemented|Ellipsis|__debug__\");\n var builtinFunctions = (\"abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|\" +\n \"eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|\" +\n \"binfile|bin|iter|property|tuple|bool|filter|len|range|type|bytearray|\" +\n \"float|list|raw_input|unichr|callable|format|locals|reduce|unicode|\" +\n \"chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|\" +\n \"cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|\" +\n \"__import__|complex|hash|min|apply|delattr|help|next|setattr|set|\" +\n \"buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern|\" +\n \"ascii|breakpoint|bytes\");\n var keywordMapper = this.createKeywordMapper({\n \"invalid.deprecated\": \"debugger\",\n \"support.function\": builtinFunctions,\n \"variable.language\": \"self|cls\",\n \"constant.language\": builtinConstants,\n \"keyword\": keywords\n }, \"identifier\");\n var strPre = \"[uU]?\";\n var strRawPre = \"[rR]\";\n var strFormatPre = \"[fF]\";\n var strRawFormatPre = \"(?:[rR][fF]|[fF][rR])\";\n var decimalInteger = \"(?:(?:[1-9]\\\\d*)|(?:0))\";\n var octInteger = \"(?:0[oO]?[0-7]+)\";\n var hexInteger = \"(?:0[xX][\\\\dA-Fa-f]+)\";\n var binInteger = \"(?:0[bB][01]+)\";\n var integer = \"(?:\" + decimalInteger + \"|\" + octInteger + \"|\" + hexInteger + \"|\" + binInteger + \")\";\n var exponent = \"(?:[eE][+-]?\\\\d+)\";\n var fraction = \"(?:\\\\.\\\\d+)\";\n var intPart = \"(?:\\\\d+)\";\n var pointFloat = \"(?:(?:\" + intPart + \"?\" + fraction + \")|(?:\" + intPart + \"\\\\.))\";\n var exponentFloat = \"(?:(?:\" + pointFloat + \"|\" + intPart + \")\" + exponent + \")\";\n var floatNumber = \"(?:\" + exponentFloat + \"|\" + pointFloat + \")\";\n var stringEscape = \"\\\\\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\\\\\abfnrtv'\\\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})\";\n this.$rules = {\n \"start\": [{\n token: \"comment\",\n regex: \"#.*$\"\n }, {\n token: \"string\",\n regex: strPre + '\"{3}',\n next: \"qqstring3\"\n }, {\n token: \"string\",\n regex: strPre + '\"(?=.)',\n next: \"qqstring\"\n }, {\n token: \"string\",\n regex: strPre + \"'{3}\",\n next: \"qstring3\"\n }, {\n token: \"string\",\n regex: strPre + \"'(?=.)\",\n next: \"qstring\"\n }, {\n token: \"string\",\n regex: strRawPre + '\"{3}',\n next: \"rawqqstring3\"\n }, {\n token: \"string\",\n regex: strRawPre + '\"(?=.)',\n next: \"rawqqstring\"\n }, {\n token: \"string\",\n regex: strRawPre + \"'{3}\",\n next: \"rawqstring3\"\n }, {\n token: \"string\",\n regex: strRawPre + \"'(?=.)\",\n next: \"rawqstring\"\n }, {\n token: \"string\",\n regex: strFormatPre + '\"{3}',\n next: \"fqqstring3\"\n }, {\n token: \"string\",\n regex: strFormatPre + '\"(?=.)',\n next: \"fqqstring\"\n }, {\n token: \"string\",\n regex: strFormatPre + \"'{3}\",\n next: \"fqstring3\"\n }, {\n token: \"string\",\n regex: strFormatPre + \"'(?=.)\",\n next: \"fqstring\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + '\"{3}',\n next: \"rfqqstring3\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + '\"(?=.)',\n next: \"rfqqstring\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + \"'{3}\",\n next: \"rfqstring3\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + \"'(?=.)\",\n next: \"rfqstring\"\n }, {\n token: \"keyword.operator\",\n regex: \"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|%|@|<<|>>|&|\\\\||\\\\^|~|<|>|<=|=>|==|!=|<>|=\"\n }, {\n token: \"punctuation\",\n regex: \",|:|;|\\\\->|\\\\+=|\\\\-=|\\\\*=|\\\\/=|\\\\/\\\\/=|%=|@=|&=|\\\\|=|^=|>>=|<<=|\\\\*\\\\*=\"\n }, {\n token: \"paren.lparen\",\n regex: \"[\\\\[\\\\(\\\\{]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\]\\\\)\\\\}]\"\n }, {\n token: [\"keyword\", \"text\", \"entity.name.function\"],\n regex: \"(def|class)(\\\\s+)([\\\\u00BF-\\\\u1FFF\\\\u2C00-\\\\uD7FF\\\\w]+)\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n include: \"constants\"\n }],\n \"qqstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"qstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"qqstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"qqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"qstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"qstring\"\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqqstring3\": [{\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqstring3\": [{\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqqstring\": [{\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"rawqqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqstring\": [{\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"rawqstring\"\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqqstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqqstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"fqqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqqstring3\": [{\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqstring3\": [{\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqqstring\": [{\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"rfqqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqstring\": [{\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqstringParRules\": [{\n token: \"paren.lparen\",\n regex: \"[\\\\[\\\\(]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\]\\\\)]\"\n }, {\n token: \"string\",\n regex: \"\\\\s+\"\n }, {\n token: \"string\",\n regex: \"'[^']*'\"\n }, {\n token: \"string\",\n regex: '\"[^\"]*\"'\n }, {\n token: \"function.support\",\n regex: \"(!s|!r|!a)\"\n }, {\n include: \"constants\"\n }, {\n token: 'paren.rparen',\n regex: \"}\",\n next: 'pop'\n }, {\n token: 'paren.lparen',\n regex: \"{\",\n push: \"fqstringParRules\"\n }],\n \"constants\": [{\n token: \"constant.numeric\",\n regex: \"(?:\" + floatNumber + \"|\\\\d+)[jJ]\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: floatNumber\n }, {\n token: \"constant.numeric\",\n regex: integer + \"[lL]\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: integer + \"\\\\b\"\n }, {\n token: [\"punctuation\", \"function.support\"],\n regex: \"(\\\\.)([a-zA-Z_]+)\\\\b\"\n }, {\n token: keywordMapper,\n regex: \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n }]\n };\n this.normalizeRules();\n};\noop.inherits(PythonHighlightRules, TextHighlightRules);\nexports.PythonHighlightRules = PythonHighlightRules;\n\n});\n\nace.define(\"ace/mode/folding/pythonic\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (markers) {\n this.foldingStartMarker = new RegExp(\"([\\\\[{])(?:\\\\s*)$|(\" + markers + \")(?:\\\\s*)(?:#.*)?$\");\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n var line = session.getLine(row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, match.index);\n if (match[2])\n return this.indentationBlock(session, row, match.index + match[2].length);\n return this.indentationBlock(session, row);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/python\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/python_highlight_rules\",\"ace/mode/folding/pythonic\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar PythonHighlightRules = require(\"./python_highlight_rules\").PythonHighlightRules;\nvar PythonFoldMode = require(\"./folding/pythonic\").FoldMode;\nvar Range = require(\"../range\").Range;\nvar Mode = function () {\n this.HighlightRules = PythonHighlightRules;\n this.foldingRules = new PythonFoldMode(\"\\\\:\");\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"#\";\n this.$pairQuotesAfter = {\n \"'\": /[ruf]/i,\n '\"': /[ruf]/i\n };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[:]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n };\n var outdents = {\n \"pass\": 1,\n \"return\": 1,\n \"raise\": 1,\n \"break\": 1,\n \"continue\": 1\n };\n this.checkOutdent = function (state, line, input) {\n if (input !== \"\\r\\n\" && input !== \"\\r\" && input !== \"\\n\")\n return false;\n var tokens = this.getTokenizer().getLineTokens(line.trim(), state).tokens;\n if (!tokens)\n return false;\n do {\n var last = tokens.pop();\n } while (last && (last.type == \"comment\" || (last.type == \"text\" && last.value.match(/^\\s+$/))));\n if (!last)\n return false;\n return (last.type == \"keyword\" && outdents[last.value]);\n };\n this.autoOutdent = function (state, doc, row) {\n row += 1;\n var indent = this.$getIndent(doc.getLine(row));\n var tab = doc.getTabString();\n if (indent.slice(-tab.length) == tab)\n doc.remove(new Range(row, indent.length - tab.length, row, indent.length));\n };\n this.$id = \"ace/mode/python\";\n this.snippetFileId = \"ace/snippets/python\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/python\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar XmlHighlightRules = function (normalize) {\n var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n this.$rules = {\n start: [\n { token: \"string.cdata.xml\", regex: \"<\\\\!\\\\[CDATA\\\\[\", next: \"cdata\" },\n {\n token: [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n regex: \"(<\\\\?)(\" + tagRegex + \")\", next: \"processing_instruction\"\n },\n { token: \"comment.start.xml\", regex: \"<\\\\!--\", next: \"comment\" },\n {\n token: [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n regex: \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next: \"doctype\", caseInsensitive: true\n },\n { include: \"tag\" },\n { token: \"text.end-tag-open.xml\", regex: \"\",\n next: \"start\"\n }],\n doctype: [\n { include: \"whitespace\" },\n { include: \"string\" },\n { token: \"xml-pe.doctype.xml\", regex: \">\", next: \"start\" },\n { token: \"xml-pe.xml\", regex: \"[-_a-zA-Z0-9:]+\" },\n { token: \"punctuation.int-subset\", regex: \"\\\\[\", push: \"int_subset\" }\n ],\n int_subset: [{\n token: \"text.xml\",\n regex: \"\\\\s+\"\n }, {\n token: \"punctuation.int-subset.xml\",\n regex: \"]\",\n next: \"pop\"\n }, {\n token: [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n regex: \"(<\\\\!)(\" + tagRegex + \")\",\n push: [{\n token: \"text\",\n regex: \"\\\\s+\"\n },\n {\n token: \"punctuation.markup-decl.xml\",\n regex: \">\",\n next: \"pop\"\n },\n { include: \"string\" }]\n }],\n cdata: [\n { token: \"string.cdata.xml\", regex: \"\\\\]\\\\]>\", next: \"start\" },\n { token: \"text.xml\", regex: \"\\\\s+\" },\n { token: \"text.xml\", regex: \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\" }\n ],\n comment: [\n { token: \"comment.end.xml\", regex: \"-->\", next: \"start\" },\n { defaultToken: \"comment.xml\" }\n ],\n reference: [{\n token: \"constant.language.escape.reference.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }],\n attr_reference: [{\n token: \"constant.language.escape.reference.attribute-value.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }],\n tag: [{\n token: [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n regex: \"(?:(<)|(\", next: \"start\" }\n ]\n }],\n tag_whitespace: [\n { token: \"text.tag-whitespace.xml\", regex: \"\\\\s+\" }\n ],\n whitespace: [\n { token: \"text.whitespace.xml\", regex: \"\\\\s+\" }\n ],\n string: [{\n token: \"string.xml\",\n regex: \"'\",\n push: [\n { token: \"string.xml\", regex: \"'\", next: \"pop\" },\n { defaultToken: \"string.xml\" }\n ]\n }, {\n token: \"string.xml\",\n regex: '\"',\n push: [\n { token: \"string.xml\", regex: '\"', next: \"pop\" },\n { defaultToken: \"string.xml\" }\n ]\n }],\n attributes: [{\n token: \"entity.other.attribute-name.xml\",\n regex: tagRegex\n }, {\n token: \"keyword.operator.attribute-equals.xml\",\n regex: \"=\"\n }, {\n include: \"tag_whitespace\"\n }, {\n include: \"attribute_value\"\n }],\n attribute_value: [{\n token: \"string.attribute-value.xml\",\n regex: \"'\",\n push: [\n { token: \"string.attribute-value.xml\", regex: \"'\", next: \"pop\" },\n { include: \"attr_reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }, {\n token: \"string.attribute-value.xml\",\n regex: '\"',\n push: [\n { token: \"string.attribute-value.xml\", regex: '\"', next: \"pop\" },\n { include: \"attr_reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }]\n };\n if (this.constructor === XmlHighlightRules)\n this.normalizeRules();\n};\n(function () {\n this.embedTagRules = function (HighlightRules, prefix, tag) {\n this.$rules.tag.unshift({\n token: [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n regex: \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n next: [\n { include: \"attributes\" },\n { token: \"meta.tag.punctuation.tag-close.xml\", regex: \"/?>\", next: prefix + \"start\" }\n ]\n });\n this.$rules[tag + \"-end\"] = [\n { include: \"attributes\" },\n { token: \"meta.tag.punctuation.tag-close.xml\", regex: \"/?>\", next: \"start\",\n onMatch: function (value, currentState, stack) {\n stack.splice(0);\n return this.token;\n } }\n ];\n this.embedRules(HighlightRules, prefix, [{\n token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n regex: \"(|$))\",\n next: tag + \"-end\"\n }, {\n token: \"string.cdata.xml\",\n regex: \"<\\\\!\\\\[CDATA\\\\[\"\n }, {\n token: \"string.cdata.xml\",\n regex: \"\\\\]\\\\]>\"\n }]);\n };\n}).call(TextHighlightRules.prototype);\noop.inherits(XmlHighlightRules, TextHighlightRules);\nexports.XmlHighlightRules = XmlHighlightRules;\n\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\nfunction is(token, type) {\n return token && token.type.lastIndexOf(type + \".xml\") > -1;\n}\nvar XmlBehaviour = function () {\n this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '\"' || text == \"'\") {\n var quote = text;\n var selected = session.doc.getTextRange(editor.getSelectionRange());\n if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n return {\n text: quote + selected + quote,\n selection: false\n };\n }\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n return {\n text: \"\",\n selection: [1, 1]\n };\n }\n if (!token)\n token = iterator.stepBackward();\n if (!token)\n return;\n while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n token = iterator.stepBackward();\n }\n var rightSpace = !rightChar || rightChar.match(/\\s/);\n if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n return {\n text: quote + quote,\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"string_dquotes\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '>') {\n var position = editor.getSelectionRange().start;\n var iterator = new TokenIterator(session, position.row, position.column);\n var token = iterator.getCurrentToken() || iterator.stepBackward();\n if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n return;\n if (is(token, \"reference.attribute-value\"))\n return;\n if (is(token, \"attribute-value\")) {\n var tokenEndColumn = iterator.getCurrentTokenColumn() + token.value.length;\n if (position.column < tokenEndColumn)\n return;\n if (position.column == tokenEndColumn) {\n var nextToken = iterator.stepForward();\n if (nextToken && is(nextToken, \"attribute-value\"))\n return;\n iterator.stepBackward();\n }\n }\n if (/^\\s*>/.test(session.getLine(position.row).slice(position.column)))\n return;\n while (!is(token, \"tag-name\")) {\n token = iterator.stepBackward();\n if (token.value == \"<\") {\n token = iterator.stepForward();\n break;\n }\n }\n var tokenRow = iterator.getCurrentTokenRow();\n var tokenColumn = iterator.getCurrentTokenColumn();\n if (is(iterator.stepBackward(), \"end-tag-open\"))\n return;\n var element = token.value;\n if (tokenRow == position.row)\n element = element.substring(0, position.column - tokenColumn);\n if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n return;\n return {\n text: \">\" + \"\",\n selection: [1, 1]\n };\n }\n });\n this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n if (text == \"\\n\") {\n var cursor = editor.getCursorPosition();\n var line = session.getLine(cursor.row);\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.type.indexOf(\"tag-close\") !== -1) {\n if (token.value == \"/>\")\n return;\n while (token && token.type.indexOf(\"tag-name\") === -1) {\n token = iterator.stepBackward();\n }\n if (!token) {\n return;\n }\n var tag = token.value;\n var row = iterator.getCurrentTokenRow();\n token = iterator.stepBackward();\n if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n return;\n }\n if (this.voidElements && !this.voidElements[tag]) {\n var nextToken = session.getTokenAt(cursor.row, cursor.column + 1);\n var line = session.getLine(row);\n var nextIndent = this.$getIndent(line);\n var indent = nextIndent + session.getTabString();\n if (nextToken && nextToken.value === \" -1;\n}\n(function () {\n this.getFoldWidget = function (session, foldStyle, row) {\n var tag = this._getFirstTagInLine(session, row);\n if (!tag)\n return this.getCommentFoldWidget(session, row);\n if (tag.closing || (!tag.tagName && tag.selfClosing))\n return foldStyle === \"markbeginend\" ? \"end\" : \"\";\n if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n return \"\";\n if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n return \"\";\n return \"start\";\n };\n this.getCommentFoldWidget = function (session, row) {\n if (/comment/.test(session.getState(row)) && /';\n break;\n }\n }\n return tag;\n }\n else if (is(token, \"tag-close\")) {\n tag.selfClosing = token.value == '/>';\n return tag;\n }\n tag.start.column += token.value.length;\n }\n return null;\n };\n this._findEndTagInLine = function (session, row, tagName, startColumn) {\n var tokens = session.getTokens(row);\n var column = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n column += token.value.length;\n if (column < startColumn)\n continue;\n if (is(token, \"end-tag-open\")) {\n token = tokens[i + 1];\n if (token && token.value == tagName)\n return true;\n }\n }\n return false;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n var tags = session.getMatchingTags({ row: row, column: 0 });\n if (tags) {\n return new Range(tags.openTag.end.row, tags.openTag.end.column, tags.closeTag.start.row, tags.closeTag.start.column);\n }\n else {\n return this.getCommentFoldWidget(session, row)\n && session.getCommentFoldRange(row, session.getLine(row).length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/xml_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/xml\",\"ace/worker/worker_client\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextMode = require(\"./text\").Mode;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\nvar XmlBehaviour = require(\"./behaviour/xml\").XmlBehaviour;\nvar XmlFoldMode = require(\"./folding/xml\").FoldMode;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar Mode = function () {\n this.HighlightRules = XmlHighlightRules;\n this.$behaviour = new XmlBehaviour();\n this.foldingRules = new XmlFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.voidElements = lang.arrayToMap([]);\n this.blockComment = { start: \"\" };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/xml_worker\", \"Worker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"error\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/xml\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/xml\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/theme/github-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \"/* CSS style content from github's default pygments highlighter template.\\n Cursor and selection styles from textmate.css. */\\n.ace-github .ace_gutter {\\n background: #e8e8e8;\\n color: #AAA;\\n}\\n\\n.ace-github {\\n background: #fff;\\n color: #000;\\n}\\n\\n.ace-github .ace_keyword {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_string {\\n color: #D14;\\n}\\n\\n.ace-github .ace_variable.ace_class {\\n color: teal;\\n}\\n\\n.ace-github .ace_constant.ace_numeric {\\n color: #099;\\n}\\n\\n.ace-github .ace_constant.ace_buildin {\\n color: #0086B3;\\n}\\n\\n.ace-github .ace_support.ace_function {\\n color: #0086B3;\\n}\\n\\n.ace-github .ace_comment {\\n color: #998;\\n font-style: italic;\\n}\\n\\n.ace-github .ace_variable.ace_language {\\n color: #0086B3;\\n}\\n\\n.ace-github .ace_paren {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_boolean {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_string.ace_regexp {\\n color: #009926;\\n font-weight: normal;\\n}\\n\\n.ace-github .ace_variable.ace_instance {\\n color: teal;\\n}\\n\\n.ace-github .ace_constant.ace_language {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_cursor {\\n color: black;\\n}\\n\\n.ace-github.ace_focus .ace_marker-layer .ace_active-line {\\n background: rgb(255, 255, 204);\\n}\\n.ace-github .ace_marker-layer .ace_active-line {\\n background: rgb(245, 245, 245);\\n}\\n\\n.ace-github .ace_marker-layer .ace_selection {\\n background: rgb(181, 213, 255);\\n}\\n\\n.ace-github.ace_multiselect .ace_selection.ace_start {\\n box-shadow: 0 0 3px 0px white;\\n}\\n/* bold keywords cause cursor issues for some fonts */\\n/* this disables bold style for editor and keeps for static highlighter */\\n.ace-github.ace_nobold .ace_line > span {\\n font-weight: normal !important;\\n}\\n\\n.ace-github .ace_marker-layer .ace_step {\\n background: rgb(252, 255, 0);\\n}\\n\\n.ace-github .ace_marker-layer .ace_stack {\\n background: rgb(164, 229, 101);\\n}\\n\\n.ace-github .ace_marker-layer .ace_bracket {\\n margin: -1px 0 0 -1px;\\n border: 1px solid rgb(192, 192, 192);\\n}\\n\\n.ace-github .ace_gutter-active-line {\\n background-color : rgba(0, 0, 0, 0.07);\\n}\\n\\n.ace-github .ace_marker-layer .ace_selected-word {\\n background: rgb(250, 250, 255);\\n border: 1px solid rgb(200, 200, 250);\\n}\\n\\n.ace-github .ace_invisible {\\n color: #BFBFBF\\n}\\n\\n.ace-github .ace_print-margin {\\n width: 1px;\\n background: #e8e8e8;\\n}\\n\\n.ace-github .ace_indent-guide {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\n}\\n\\n.ace-github .ace_indent-guide-active {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC\\\") right repeat-y;\\n}\\n\";\n\n});\n\nace.define(\"ace/theme/github\",[\"require\",\"exports\",\"module\",\"ace/theme/github-css\",\"ace/lib/dom\"], function(require, exports, module){exports.isDark = false;\nexports.cssClass = \"ace-github\";\nexports.cssText = require(\"./github-css\");\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass, false);\n\n}); (function() {\n ace.require([\"ace/theme/github\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","module.exports = require(\"react-dom\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"\";","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"prop-types\");","import { createContext } from 'react';\n\nconst AccordionContext = createContext();\n\nexport default AccordionContext;\n","import { createContext } from 'react';\n\nconst AccordionItemContext = createContext();\n\nexport default AccordionItemContext;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Icon({\n className,\n family,\n type,\n weight,\n ...rest\n}) {\n function getCSSClasses() {\n const fontFamily = family || 'fa';\n const fontWeight = fontFamily === 'fa' ? `fa-${weight || 'regular'}` : '';\n\n return [\n 'tyk-icon',\n fontFamily !== 'fa' && fontFamily,\n `${fontFamily}-${type}`,\n fontWeight,\n className,\n ].filter(Boolean).join(' ');\n }\n\n return ;\n}\n\nIcon.propTypes = {\n // Additional CSS classes to apply\n className: PropTypes.string,\n // Font family to use. Default is 'fa'.\n family: PropTypes.string,\n // Icon type to use\n type: PropTypes.string.isRequired,\n // Icon weight to use. Only applicable for Font Awesome icons. Default is 'regular'. Also supports 'light' and 'solid'\n weight: PropTypes.string\n};\n\nexport default Icon;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport AccordionItemContext from './AccordionItemContext';\n\nfunction ItemTrigger({ wrap }) {\n const { collapsed, disabled, toggleChange } = useContext(AccordionItemContext);\n\n const iconType = collapsed ? 'chevron-down' : 'chevron-up';\n const classes = [\n 'tyk-accordion__trigger',\n disabled && 'tyk-accordion__trigger--disabled',\n ].filter(Boolean).join(' ');\n const trigger = (\n \n \n \n );\n\n return wrap\n ?
    {trigger}
    \n : trigger;\n}\n\nItemTrigger.propTypes = {\n wrap: PropTypes.bool,\n};\n\nexport default ItemTrigger;\n","import React, {\n useMemo, useState, useContext, forwardRef,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport AccordionContext from './AccordionContext';\nimport AccordionItemContext from './AccordionItemContext';\nimport ItemTrigger from './AccordionItemTrigger';\n\nfunction AccordionItem({\n collapsed: collapsedProp,\n children,\n className,\n disabled,\n}, ref) {\n const { arrow } = useContext(AccordionContext);\n const [collapsed, setCollapsed] = useState(collapsedProp);\n\n const toggleChange = () => {\n if (disabled) {\n return;\n }\n\n setCollapsed(!collapsed);\n };\n\n const classes = useMemo(() => [\n 'tyk-accordion__item',\n arrow.expandToContent\n ? `tyk-accordion__item--trigger-position-${arrow.position}`\n : 'tyk-accordion__item--trigger-in-header',\n className,\n collapsed === false && 'tyk-accordion__item--active',\n ].filter(Boolean).join(' '), [arrow, className, collapsed]);\n\n const contextValue = useMemo(() => ({\n collapsed,\n disabled,\n toggleChange,\n }), [collapsed, disabled, toggleChange]);\n\n return (\n
    \n \n {arrow.expandToContent && (\n \n )}\n {children}\n \n
    \n );\n}\n\nAccordionItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n collapsed: PropTypes.bool,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n};\n\nAccordionItem.defaultProps = {\n collapsed: false,\n};\n\nexport default forwardRef(AccordionItem);\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport AccordionContext from './AccordionContext';\nimport AccordionItemContext from './AccordionItemContext';\nimport ItemTrigger from './AccordionItemTrigger';\n\nfunction AccordionItemHeader({ className, children }) {\n const { collapsed, disabled, toggleChange } = useContext(AccordionItemContext);\n const { usearrowastrigger, arrow } = useContext(AccordionContext);\n const iconType = collapsed ? 'chevron-down' : 'chevron-up';\n const classes = [\n 'tyk-accordion__item-header',\n usearrowastrigger && 'tyk-accordion__arrow-trigger',\n className,\n ].filter(Boolean).join(' ');\n\n return (\n
    \n {\n !usearrowastrigger\n ? (\n \n {children}\n \n \n )\n : (\n <>\n {!arrow.expandToContent && arrow.position === 'left' && (\n \n )}\n
    {children}
    \n {!arrow.expandToContent && arrow.position === 'right' && (\n \n )}\n \n )\n }\n
    \n );\n}\n\nAccordionItemHeader.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n};\n\nexport default AccordionItemHeader;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-transition-group\");","import { useCallback, useState, useLayoutEffect } from 'react';\n\nconst getSize = (el) => {\n if (!el) {\n return {\n width: 0,\n height: 0,\n };\n }\n\n return {\n width: el.offsetWidth,\n height: el.offsetHeight,\n };\n};\n\nconst useComponentSize = (ref) => {\n const [componentSize, setComponentSize] = useState(getSize(ref ? ref.current : {}));\n const handleResize = useCallback(() => {\n if (ref.current) {\n setComponentSize(getSize(ref.current));\n }\n }, [ref]);\n\n useLayoutEffect(() => {\n handleResize();\n\n let resizeObserver = new ResizeObserver(() => {\n handleResize();\n });\n resizeObserver.observe(ref.current);\n\n return () => {\n resizeObserver.disconnect(ref.current);\n resizeObserver = null;\n };\n }, [ref.current]);\n\n return componentSize;\n};\n\n/** @component */\nexport default useComponentSize;\n","import { useEffect, useRef } from 'react';\n\nconst useEventListener = (eventName, handler, element) => {\n const savedHandler = useRef();\n useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(() => {\n const isSupported = element?.addEventListener;\n if (!isSupported) {\n // eslint-disable-next-line consistent-return\n return;\n }\n\n const eventListener = (event) => savedHandler.current(event);\n element.addEventListener(eventName, eventListener);\n\n // eslint-disable-next-line consistent-return\n return () => {\n element.removeEventListener(eventName, eventListener);\n };\n }, [eventName, element]);\n};\n\n/** @component */\nexport default useEventListener;\n","import React, {\n useRef, useState, useCallback, useEffect,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { CSSTransition } from 'react-transition-group';\nimport { useEventListener, useComponentSize } from '../../hooks';\n\n/**\n * Collapsible is a component that helps you to collapse/expand any type of content\n */\nfunction Collapsible({\n className,\n collapsed,\n children,\n ...rest\n}) {\n const contentContainer = useRef(null);\n const collapseWrapper = useRef(null);\n const refContainerSize = useComponentSize(contentContainer);\n const [contentContainerStyle, setContentContainerStyle] = useState({\n // eslint-disable-next-line\n height: (collapsed) ? 0 : 'auto',\n });\n\n const setHeight = (height) => {\n setContentContainerStyle({\n height: `${height}px`,\n });\n };\n\n const getHeight = () => (contentContainer.current ? contentContainer.current.clientHeight : 0);\n\n const onEnter = () => {\n setHeight(getHeight());\n };\n\n const onExit = () => {\n setHeight(0);\n };\n\n useEffect(() => {\n if (!collapsed\n && refContainerSize?.height\n && contentContainerStyle.height !== refContainerSize?.height\n ) {\n setHeight(refContainerSize.height);\n }\n }, [refContainerSize.height]);\n\n const onWindowResize = useCallback(() => {\n if (!collapsed && contentContainer.current) {\n setHeight(getHeight());\n collapseWrapper.current.style.height = `${getHeight()}px`;\n }\n }, [collapsed, contentContainer.current]);\n\n useEventListener('resize', onWindowResize, window);\n\n return (\n \n \n \n { children }\n \n \n \n );\n}\n\nCollapsible.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** Describes if the content of Collapsible should be hidden or not */\n collapsed: PropTypes.bool,\n /** CSS classes that can be passed to the Collapsible element */\n className: PropTypes.string,\n};\n\nexport default Collapsible;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Collapsible from '../../Collapsible';\nimport AccordionItemContext from './AccordionItemContext';\n\nfunction AccordionItemContent({ children, className }) {\n const { collapsed } = useContext(AccordionItemContext);\n\n const classes = [\n 'tyk-accordion__item-content',\n className,\n ].filter(Boolean).join(' ');\n\n return (\n
    \n \n { children }\n \n
    \n );\n}\n\nAccordionItemContent.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n};\n\nexport default AccordionItemContent;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport AccordionItem from './js/AccordionItem';\nimport AccordionItemHeader from './js/AccordionItemHeader';\nimport AccordionItemContent from './js/AccordionItemContent';\nimport AccordionContext from './js/AccordionContext';\n\nfunction Accordion({\n className,\n children,\n usearrowastrigger,\n arrow = { position: 'right', expandToContent: false },\n}) {\n const classes = [\n 'tyk-accordion',\n className,\n ].filter(Boolean).join(' ');\n\n const contextValue = useMemo(() => ({\n usearrowastrigger,\n arrow,\n }), [usearrowastrigger, arrow]);\n\n return (\n
    \n \n {children}\n \n
    \n );\n}\n\nAccordion.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n usearrowastrigger: PropTypes.bool,\n arrow: PropTypes.shape({\n position: PropTypes.oneOf(['left', 'right']),\n expandToContent: PropTypes.bool,\n }),\n};\n\nAccordion.defaultProps = {\n usearrowastrigger: false,\n};\n\n// For Readme.md : Start\nAccordion.Item = AccordionItem;\nAccordion.Item.Header = AccordionItemHeader;\nAccordion.Item.Content = AccordionItemContent;\n// For Readme.md : End\n\nexport default Accordion;\n","import React, { cloneElement, forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../Icon';\n\n/**\n * Button component.\n */\nfunction Button(props, ref) {\n const {\n customButton,\n children,\n iconType,\n iconFamily,\n iconPosition,\n iconOnly,\n id,\n className,\n disabled,\n display,\n href,\n onClick,\n noStyle,\n size,\n theme,\n type,\n ...rest\n } = props;\n\n const getCssClasses = () => {\n const cssClasses = ['tyk-button'].concat(className ? className.split(' ') : []);\n const sizeClass = (size) ? `tyk-button--${size}` : 'tyk-button--md';\n const disabledClass = (disabled) ? 'disabled' : '';\n const displayClass = display || '';\n const themeClass = theme ? `tyk-button--${theme}` : '';\n const iconOnlyClass = iconOnly ? 'tyk-button--icon-only' : '';\n const noStyleClass = noStyle ? 'tyk-button--no-style' : '';\n\n cssClasses.push(iconOnlyClass);\n cssClasses.push(themeClass);\n cssClasses.push(sizeClass);\n cssClasses.push(disabledClass);\n cssClasses.push(displayClass);\n cssClasses.push(noStyleClass);\n\n if (iconType) {\n cssClasses.push(`icon-${iconPosition || 'left'}`);\n }\n\n return cssClasses.join(' ');\n };\n\n const getButtonIcon = (position) => {\n const iPos = iconPosition || 'left';\n\n return (\n (iconType && iPos === position)\n ? \n : null\n );\n };\n\n const getButtonType = () => {\n let buttonType;\n\n if (customButton) {\n return (\n <>\n { cloneElement(customButton, {\n className: getCssClasses(),\n disabled,\n })}\n \n );\n }\n\n if (href) {\n buttonType = (\n \n { getButtonIcon('left') }\n { children }\n { getButtonIcon('right') }\n \n );\n } else {\n buttonType = (\n // eslint-disable-next-line react/button-has-type\n \n { getButtonIcon('left') }\n { children && {children} }\n { getButtonIcon('right') }\n \n );\n }\n\n return buttonType;\n };\n\n return (\n getButtonType()\n );\n}\n\nButton.propTypes = {\n /**\n * Content of a button. Can be a DOM element or a React component\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n customButton: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n ]),\n className: PropTypes.string,\n /**\n * Display type: inline/block. Default is inline\n */\n display: PropTypes.string,\n /**\n * Sets the button disabled state\n */\n disabled: PropTypes.bool,\n /**\n * Having this property set the button will become a link\n */\n id: PropTypes.string,\n href: PropTypes.string,\n iconPosition: PropTypes.string, // left or right\n iconFamily: PropTypes.string,\n iconOnly: PropTypes.bool,\n iconType: PropTypes.string,\n noStyle: PropTypes.bool,\n /**\n * Callback function, called when the button si clicked\n */\n onClick: PropTypes.func,\n /**\n * Describes the appearence of the button (ex: primary, danger, primary-outline etc.)\n */\n theme: PropTypes.string,\n /**\n * Type of the button (ex: button, submit etc.)\n */\n type: PropTypes.string,\n /**\n * Describes the size of the button (sm, md, lg). Default one is md\n */\n size: PropTypes.string,\n};\n\nButton.defaultProps = {\n theme: '',\n type: 'button',\n};\n\nexport default forwardRef(Button);\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ButtonGroup({ className, children, label }, ref) {\n return (\n
    \n {Boolean(label) && }\n
    {children}
    \n
    \n );\n}\n\nButtonGroup.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n};\n\nexport default forwardRef(ButtonGroup);\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardHeader({\n right = null,\n children,\n}) {\n return (\n
    \n {children &&
    {children}
    }\n {right &&
    {right}
    }\n
    \n );\n}\n\nCardHeader.propTypes = {\n right: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardBody({\n align = 'top',\n children,\n}) {\n return (\n
    \n
    \n {children}\n
    \n
    \n );\n}\n\nCardBody.propTypes = {\n align: PropTypes.oneOf(['top', 'center', 'bottom']),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardBody;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardFooter({ children }) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardFooter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitle({\n maxLines = 1, // accepted values: 1, 2\n children,\n}) {\n return (\n

    \n {children}\n

    \n );\n}\n\nCardTitle.propTypes = {\n maxLines: PropTypes.number,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitle;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitleGroup({\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardTitleGroup.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitleGroup;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardSubTitle({\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardSubTitle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardSubTitle;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardSummary({\n maxLines = 2, // accepted values: 1, 2, 3, 4, 5\n children,\n}) {\n return (\n

    \n {children}\n

    \n );\n}\n\nCardSummary.propTypes = {\n maxLines: PropTypes.number,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardSummary;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitleIcon({\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardTitleIcon.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitleIcon;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport CardHeader from './CardHeader';\nimport CardBody from './CardBody';\nimport CardFooter from './CardFooter';\nimport CardTitle from './CardTitle';\nimport CardTitleGroup from './CardTitleGroup';\nimport CardSubTitle from './CardSubTitle';\nimport CardSummary from './CardSummary';\nimport CardTitleIcon from './CardTitleIcon';\n\nfunction Card({\n className = '',\n height = 'auto',\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCard.propTypes = {\n className: PropTypes.string,\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nCard.Header = CardHeader;\nCard.Body = CardBody;\nCard.Footer = CardFooter;\nCard.Title = CardTitle;\nCard.TitleGroup = CardTitleGroup;\nCard.Icon = CardTitleIcon;\nCard.SubTitle = CardSubTitle;\nCard.Summary = CardSummary;\n\nexport default Card;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"echarts\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"immutable\");","export default (func, wait, immediate) => {\n let timeout;\n return function debouncer(...args) {\n const context = this;\n const later = () => {\n timeout = null;\n if (!immediate) {\n func.apply(context, args);\n }\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) {\n func.apply(context, args);\n }\n };\n};\n","import { useEffect, useRef } from 'react';\n\nconst usePrevious = (value) => {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n};\n\n/** @component */\nexport default usePrevious;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Loader({ className, position = 'relative', withbackground = false }) {\n const classes = [\n 'loading',\n position,\n className,\n ].filter(Boolean).join(' ');\n\n const loader = (\n
    \n
    \n
    \n
    \n
    \n
    \n );\n\n return withbackground\n ?
    {loader}
    \n : loader;\n}\n\nLoader.propTypes = {\n /** add a class to loader */\n className: PropTypes.string,\n /** position of loader (absolute / relative) */\n position: PropTypes.string,\n /** defines weather loader should be renders with or without background */\n withbackground: PropTypes.bool,\n};\n\nexport default Loader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../Icon';\n\n/**\n * The Message component is used to highlight important content to the users.\n *\n * If the content you are displaying needs immediate attention or is a feedback,\n * consider using `toast` instead\n */\nfunction Message({\n children, theme, onClose, noMargin, className,\n}) {\n function getCssClasses() {\n return [\n 'tyk-message',\n `tyk-message--${theme || 'info'}`,\n noMargin && 'no-margin',\n className,\n ].filter(Boolean).join(' ');\n }\n\n const iconType = theme === 'success' ? 'check' : 'exclamation';\n\n return (\n
    \n \n
    \n { children }\n
    \n {onClose && (\n \n )}\n
    \n );\n}\n\nMessage.propTypes = {\n /** Set theme for message (eg. default, success, danger, etc) */\n theme: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** add a class to loader */\n className: PropTypes.string,\n /** Removes margins by adding `no-margin` class */\n noMargin: PropTypes.bool,\n /** Callback for clicking on the \"x\" */\n onClose: PropTypes.func,\n};\n\nexport default Message;\n","import React, {\n useState, useEffect, useMemo, useRef, memo,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport * as echarts from 'echarts';\nimport { fromJS } from 'immutable';\n\nimport debounce from '../../utils/debounce';\nimport { usePrevious } from '../../hooks';\nimport Loader from '../Loader';\nimport Message from '../Message';\nimport worldMap from './maps/world.json';\n\necharts.registerMap('world', worldMap);\n\nfunction Chart({\n areaStyleColors,\n dataLoaded,\n hasData,\n highlight,\n type,\n option,\n series,\n onChange,\n zoomStart,\n zoomEnd,\n title,\n seriesConfig = [],\n noDataComponent: noDataComponentProp = null,\n zoomColors,\n style,\n}) {\n const [tykChartInstance, setTykChartInstance] = useState(null);\n const chartWrapperRef = useRef(null);\n const onResize = () => {\n if (tykChartInstance) {\n tykChartInstance.resize();\n }\n };\n\n const noDataComponent = useMemo(\n () => (noDataComponentProp\n ? noDataComponentProp()\n : (\n \n No data to display\n \n )),\n [noDataComponentProp],\n );\n\n const lineBarChart = {\n defaultOpts: fromJS({\n title: {\n show: true,\n text: title,\n left: 0,\n },\n color: [],\n toolbox: {\n right: '0',\n orient: 'horizontal',\n itemSize: 15,\n showTitle: true,\n feature: null,\n },\n dataZoom: [{\n show: true,\n start: 0,\n end: 100,\n orient: 'horizontal',\n dataBackground: {\n lineStyle: {\n color: zoomColors?.lineStyle || '#368493',\n },\n areaStyle: {\n color: zoomColors?.areaStyle || '#368493',\n },\n },\n handleStyle: {\n color: zoomColors?.handleStyle || '#368493',\n },\n textStyle: {\n color: zoomColors?.textStyle || '#368493',\n },\n borderColor: 'transparent',\n fillerColor: zoomColors?.fillerColor || 'rgba(54, 132, 147, 0.1)',\n }],\n legend: {\n show: false,\n // data: [],\n // right: '1%',\n },\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'cross',\n },\n },\n grid: {\n left: '1%',\n right: '1%',\n bottom: '50px',\n top: '40px',\n containLabel: true,\n },\n xAxis: {\n boundaryGap: false,\n type: 'category',\n splitLine: {\n show: true,\n lineStyle: {\n type: 'dotted',\n color: '#F0F0F0',\n },\n },\n axisLine: {\n show: false,\n },\n axisTick: {\n show: false,\n },\n data: [],\n },\n yAxis: {\n min: 'dataMin',\n boundaryGap: true,\n axisPointer: {\n show: true,\n },\n splitLine: {\n lineStyle: {\n type: 'dotted',\n color: '#F0F0F0',\n },\n show: true,\n },\n axisLabel: {\n show: true,\n },\n axisLine: {\n show: true,\n },\n axisTick: {\n show: false,\n },\n type: 'value',\n },\n textStyle: {\n color: '#5a5a68',\n },\n series: [],\n animationEasing: 'elasticOut',\n }),\n seriesDefault: fromJS({\n data: [],\n type: 'line',\n areaStyle: {\n opacity: 1,\n color: areaStyleColors\n ? new echarts.graphic.LinearGradient(\n 0,\n 0,\n 1,\n 1,\n areaStyleColors.map((color, index) => ({\n offset: index,\n color,\n })),\n )\n : [],\n },\n smooth: false,\n symbolSize: 7,\n name: '',\n }),\n };\n\n const pieChart = {\n defaultOpts: fromJS({\n tooltip: {\n trigger: 'axis',\n formatter: '{b}: {c} ({d}%)',\n },\n legend: {\n orient: 'horizontal',\n x: 'left',\n y: 'top',\n data: [],\n },\n color: [],\n series: [],\n }),\n seriesDefault: fromJS({\n type: 'pie',\n center: [\n '50%',\n '55%',\n ],\n radius: [\n '50%',\n '75%',\n ],\n avoidLabelOverlap: false,\n animationType: 'scale',\n animationEasing: 'elasticOut',\n labelLine: {\n normal: {\n show: true,\n smooth: 0.2,\n length: 6,\n length2: 6,\n },\n },\n data: [],\n }),\n };\n\n const geoChart = {\n defaultOpts: fromJS({\n series: [],\n }),\n seriesDefault: fromJS({\n type: 'map',\n data: [],\n }),\n };\n\n const buildChartOptions = (selectedType, selectedOptions, selectedSeries) => {\n let finalOpts = {};\n switch (selectedType) {\n case 'pie': {\n finalOpts = pieChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n\n selectedSeries.forEach((entry) => {\n finalOpts.series.push(pieChart.seriesDefault.mergeDeep(fromJS(entry)).toJS());\n });\n\n break;\n }\n\n case 'geo': {\n finalOpts = geoChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n\n selectedSeries.forEach((entry) => {\n finalOpts.series.push(geoChart.seriesDefault.mergeDeep(fromJS(entry)).toJS());\n });\n\n break;\n }\n\n default: {\n finalOpts = lineBarChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n if (Array.isArray(selectedOptions.yAxis)) {\n finalOpts.yAxis = selectedOptions.yAxis;\n }\n\n selectedSeries.forEach((entry, index) => {\n const seriesData = {\n ...lineBarChart.seriesDefault.toJS(),\n ...seriesConfig[index],\n ...entry,\n };\n finalOpts.series.push(seriesData);\n });\n break;\n }\n }\n return finalOpts;\n };\n\n useEffect(() => {\n window.addEventListener('resize', onResize);\n\n return () => {\n window.removeEventListener('resize', onResize);\n };\n }, [tykChartInstance]);\n\n useEffect(() => {\n if (!chartWrapperRef?.current) return;\n\n setTykChartInstance(echarts.init(chartWrapperRef.current));\n\n // eslint-disable-next-line consistent-return\n return () => {\n if (tykChartInstance) {\n tykChartInstance.dispose();\n }\n };\n }, [chartWrapperRef.current]);\n\n const eventCallBack = (e) => {\n if (onChange) {\n onChange(e);\n }\n };\n\n useEffect(() => {\n let debouncedMethod;\n if (tykChartInstance) {\n debouncedMethod = debounce(eventCallBack, 500);\n tykChartInstance.on('dataZoom', debouncedMethod);\n tykChartInstance.on('restore', debouncedMethod);\n tykChartInstance.on('click', debouncedMethod);\n\n tykChartInstance.on('mousemove', (params) => {\n if (params.data) {\n tykChartInstance.getZr().setCursorStyle('pointer');\n }\n });\n }\n\n return () => {\n if (tykChartInstance) {\n tykChartInstance.off('dataZoom', debouncedMethod);\n tykChartInstance.off('restore', debouncedMethod);\n tykChartInstance.off('click', debouncedMethod);\n }\n };\n }, [tykChartInstance, onChange]);\n\n const prevInstance = usePrevious(tykChartInstance);\n const prevOption = usePrevious(option);\n const prevType = usePrevious(type);\n const prevSeries = usePrevious(series);\n useEffect(() => {\n if (\n tykChartInstance\n && (\n !fromJS(prevInstance)?.equals?.(fromJS(tykChartInstance))\n || !fromJS(prevOption)?.equals?.(fromJS(option))\n || (prevType !== type)\n || !fromJS(prevSeries).equals?.(fromJS(series))\n )\n ) {\n tykChartInstance.clear();\n tykChartInstance.setOption(buildChartOptions(type, option, series));\n tykChartInstance.dispatchAction({\n type: 'takeGlobalCursor',\n key: 'dataZoomSelect',\n dataZoomSelectActive: true,\n });\n }\n }, [tykChartInstance, option, series, type]);\n\n useEffect(() => {\n if (tykChartInstance && highlight) {\n tykChartInstance.dispatchAction({\n type: 'highlight',\n seriesIndex: highlight.seriesIndex,\n dataIndex: highlight.dataIndex,\n });\n tykChartInstance.dispatchAction({\n type: 'showTip',\n seriesIndex: highlight.seriesIndex,\n dataIndex: highlight.dataIndex,\n });\n }\n }, [highlight]);\n\n const prevZoomStart = usePrevious(zoomStart);\n const prevZoomEnd = usePrevious(zoomEnd);\n useEffect(() => {\n if (\n tykChartInstance\n && zoomStart !== -1\n && zoomEnd !== -1\n && (\n prevZoomStart !== zoomStart\n || prevZoomEnd !== zoomEnd\n )\n ) {\n tykChartInstance.dispatchAction({\n type: 'dataZoom',\n startValue: zoomStart,\n endValue: zoomEnd,\n });\n }\n }, [zoomStart, zoomEnd]);\n\n const getStyle = () => {\n const tempStyle = style || {};\n\n if (!tempStyle.height) {\n tempStyle.height = '300px';\n }\n if (!tempStyle.width) {\n tempStyle.width = '100%';\n }\n return tempStyle;\n };\n\n const chartHasData = () => (\n (dataLoaded && (hasData === false || hasData === true)) ? hasData : true\n );\n\n const getCssClasses = () => {\n const cssClasses = ['tyk-chart'];\n\n if (!dataLoaded) {\n cssClasses.push('tyk-chart--loading-chart');\n }\n\n if (!chartHasData()) {\n cssClasses.push('tyk-chart--no-data');\n }\n\n return cssClasses.join(' ');\n };\n\n return (\n
    \n {\n !dataLoaded\n ? \n : null\n }\n \n {\n chartHasData()\n ? null\n : noDataComponent\n }\n
    \n );\n}\n\nChart.propTypes = {\n areaStyleColors: PropTypes.instanceOf(Array),\n dataLoaded: PropTypes.bool,\n hasData: PropTypes.bool,\n highlight: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n PropTypes.instanceOf(Array),\n ]),\n noDataComponent: PropTypes.func,\n zoomStart: PropTypes.number,\n zoomEnd: PropTypes.number,\n zoomColors: PropTypes.instanceOf(Object),\n option: PropTypes.instanceOf(Object),\n onChange: PropTypes.func,\n style: PropTypes.instanceOf(Object),\n type: PropTypes.string,\n title: PropTypes.string,\n series: PropTypes.instanceOf(Array),\n seriesConfig: PropTypes.instanceOf(Object),\n};\n\nexport default memo(Chart);\n","import { useEffect, useRef } from 'react';\n\nconst useTimeout = (callback, delay) => {\n const savedCallback = useRef();\n\n useEffect(\n () => {\n savedCallback.current = callback;\n },\n [callback],\n );\n\n useEffect(\n () => {\n function tick() {\n savedCallback.current();\n }\n if (delay !== null) {\n const id = setTimeout(tick, delay);\n return () => clearTimeout(id);\n }\n\n return () => {};\n },\n [delay],\n );\n};\n\n/** @component */\nexport default useTimeout;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../../Message';\nimport { useTimeout } from '../../../hooks';\n\nfunction ToastMessage(props) {\n const {\n children,\n options,\n onClose,\n index,\n } = props;\n const opts = {\n theme: 'success',\n delay: 3000,\n ...options,\n };\n let timer;\n\n const handleClose = (itemIndex) => {\n onClose(itemIndex);\n clearTimeout(timer);\n };\n\n useTimeout(() => handleClose(index), opts.delay);\n\n return (\n handleClose(index)}\n >\n {children}\n \n );\n}\n\nToastMessage.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n options: PropTypes.instanceOf(Object),\n onClose: PropTypes.func,\n index: PropTypes.number,\n};\n\nexport default ToastMessage;\n","import React, {\n useEffect, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToastMessage from './ToastMessage';\n\nfunction ToastContainer(props) {\n const [messages, setMessages] = useState({});\n const {\n notify,\n } = props;\n\n const updateNotifications = (message, options) => {\n const msgID = Math.floor(Math.random() * 1000000);\n\n setMessages((prevMessages) => ({\n ...prevMessages,\n [msgID]: {\n message,\n options,\n },\n }));\n };\n\n useEffect(() => {\n notify(updateNotifications);\n }, [messages]);\n\n const onMessageClosed = (index) => {\n const tempMessages = { ...messages };\n delete tempMessages[index];\n setMessages((prevMessages) => {\n const newMessages = { ...prevMessages };\n delete newMessages[index];\n return newMessages;\n });\n };\n\n return (\n
    \n {\n Object.keys(messages).map((msgID) => (\n messages[msgID]\n ? (\n \n {messages[msgID].message}\n \n )\n : null\n ))\n }\n
    \n );\n}\n\nToastContainer.propTypes = {\n notify: PropTypes.func,\n};\n\nexport default ToastContainer;\n","import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport ToastContainer from './js/ToastContainer';\n\n/**\n * Toast is a service that displays dialogs\n * on the bottom right part of the screen.\n *\n * The dialogs can have one of the Tyk UI themes, so that\n * it would match it's purpose (i.e success message, error message)\n *\n */\nclass ToastCreator {\n constructor() {\n const el = document.createElement('div');\n el.className = 'tyk-toast';\n document.body.appendChild(el);\n const root = createRoot(el);\n root.render();\n }\n\n bindNotify = (fn) => {\n this.createNotification = fn;\n };\n\n notify(message, options) {\n if (this.createNotification) {\n this.createNotification(message, options);\n }\n }\n\n danger(message, options) {\n this.notify(message, { ...options, theme: 'danger' });\n }\n\n success(message, options) {\n this.notify(message, { ...options, theme: 'success' });\n }\n\n warning(message, options) {\n this.notify(message, { ...options, theme: 'warning' });\n }\n\n info(message, options) {\n this.notify(message, { ...options, theme: 'info' });\n }\n}\n\nconst toast = new ToastCreator();\n\nexport default toast;\n","import React, { createRef, useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport toast from '../Toast';\n\n/**\n * - CopyToClipboard is used to copy string for a user.\n * - Can be used normally with a text or a custom components (Eg. Button, Icon, etc)\n */\n\nfunction CopyToClipboard(props) {\n const {\n display, copy, children, onCopy, message = 'copied',\n } = props;\n const txtRef = createRef();\n const handleClick = useCallback(() => {\n if (onCopy) {\n onCopy();\n }\n\n if (!window.navigator.clipboard) {\n txtRef.current.select();\n document.execCommand('copy');\n toast.success(message);\n return;\n }\n window.navigator.clipboard.writeText(copy);\n toast.success(message);\n }, [onCopy, txtRef]);\n\n return (\n <>\n \n {children || display}\n \n {!window.navigator.clipboard ? (\n \n ) : null}\n \n );\n}\n\nCopyToClipboard.propTypes = {\n /** Message to be displayed after text is copied */\n message: PropTypes.string,\n /** Callback function executed after text is copied */\n onCopy: PropTypes.func,\n /** Text to be copied */\n copy: PropTypes.string.isRequired,\n /** Text to be displayed */\n display: PropTypes.string,\n /** Children of custom element if you are using any custom element */\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n ]),\n};\n\nexport default CopyToClipboard;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ModalFooter({ children }) {\n return (\n
    \n { children }\n
    \n );\n}\n\nModalFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default ModalFooter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ModalBody({ children }) {\n return (\n
    \n { children }\n
    \n );\n}\n\nModalBody.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default ModalBody;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { CSSTransition } from 'react-transition-group';\n\nimport Icon from '../Icon';\nimport ModalFooter from './js/ModalFooter';\nimport ModalBody from './js/ModalBody';\n\n/**\n * Modals add dialogs confirmation boxes, notifications, or completely custom content\n * - only one Modal can be opened at a time\n * - are unmounted when Modal is closed\n */\nfunction Modal({\n children,\n theme = 'none',\n disableCloseCommands = false,\n opened = false,\n onClose = () => {},\n size = 'md',\n className = '',\n showBackdrop = true,\n ...restProps\n}) {\n const modalClasses = [\n 'tyk-modal',\n `tyk-modal--theme-${theme}`,\n opened && 'opened',\n ].concat(className.split(' ')).filter(Boolean).join(' ');\n\n const backdropClasses = [\n 'tyk-modal__backdrop',\n opened && 'opened',\n ].filter(Boolean).join(' ');\n\n const themeIcon = {\n success: 'check',\n warning: 'exclamation',\n danger: 'exclamation',\n }[theme];\n\n return (\n <>\n {\n ReactDOM.createPortal(\n \n
    \n
    \n
    \n {theme !== 'none' && (\n
    \n \n
    \n )}\n { children }\n
    \n
    \n
    \n ,\n document.querySelector('body'),\n )\n }\n {showBackdrop && ReactDOM.createPortal(\n \n !disableCloseCommands && onClose()}\n onKeyDown={() => {}}\n type=\"button\"\n aria-label=\"Close\"\n />\n ,\n document.querySelector('body'),\n )}\n \n );\n}\n\nModal.Body = ModalBody;\nModal.Footer = ModalFooter;\n/* eslint-disable-next-line */\nModal.Header = ({ children }) => {\n console.warn('%cModal.Header%c is deprecated.', 'font-weight: bold', '');\n return (\n
    \n { children }\n
    \n );\n};\nModal.Header.propTypes = {\n children: PropTypes.element,\n};\n/* eslint-disable-next-line */\nModal.Title = ({ children }) => {\n console.warn('%cModal.Title%c is deprecated.', 'font-weight: bold', '');\n return (\n

    \n { children }\n

    \n );\n};\nModal.Title.propTypes = {\n children: PropTypes.element,\n};\n\nModal.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n /** one of \"success\", \"warning\", \"danger\", \"none\"; default is \"none\" */\n theme: PropTypes.string,\n /** If set on true, the Modal won't close when clicking on the overlay or by pressing ESC key */\n disableCloseCommands: PropTypes.bool,\n /** If true the Modal will be by default opened */\n opened: PropTypes.bool,\n /** Callback method when the Modal is closed */\n onClose: PropTypes.func,\n /** Width of the Moda: md or lg */\n size: PropTypes.string,\n showBackdrop: PropTypes.bool,\n};\n\nexport default Modal;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../Button';\nimport Modal from '../Modal';\n\n/**\n * Confirm component can be used to open a dialog () before a specific action\n */\nfunction Confirm(props) {\n const {\n children,\n title,\n description,\n confirmBtnText = 'Confirm',\n cancelBtnText = 'Cancel',\n } = props;\n const [open, setOpen] = useState(false);\n const [callback, setCallback] = useState(null);\n const [cancelCallback, setCancelCallback] = useState(null);\n\n const show = (callbackFunc, cancelCallbackFunc, beforeCallback) => (...args) => {\n if (beforeCallback) {\n beforeCallback(...args);\n }\n setOpen(true);\n setCallback(() => () => callbackFunc(...args));\n if (cancelCallbackFunc) {\n setCancelCallback(() => () => cancelCallbackFunc(...args));\n }\n };\n\n const hide = () => {\n setOpen(false);\n setCallback(null);\n setCancelCallback(null);\n };\n\n const cancel = () => {\n if (cancelCallback) {\n cancelCallback();\n }\n hide();\n };\n\n const confirm = () => {\n callback();\n hide();\n };\n\n return (\n <>\n {children(show)}\n \n \n

    {title}

    \n {description}\n
    \n \n \n {cancelBtnText}\n \n \n {confirmBtnText}\n \n \n
    \n \n );\n}\n\nConfirm.propTypes = {\n /** Sets the text for primary / confirmation button on opened modal */\n confirmBtnText: PropTypes.string,\n /** Sets the text for danger / abort button on opened modal */\n cancelBtnText: PropTypes.string,\n /** Sets the title for the opened modal */\n title: PropTypes.string,\n /** Sets the description for the opened modal */\n description: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n PropTypes.func,\n ]),\n};\n\nexport default Confirm;\n","import React, { useCallback, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport debounce from '../../utils/debounce';\n\n/**\n * FixedWrapper component, keeps all its children in a fix position on the page,\n * even if the scroll position changes\n * i.e: The top navigation bar of a page sits within FixedWrapper component\n */\nfunction FixedWrapper({ children, className, showShadow }) {\n const fixedWrapperRef = useRef(null);\n\n const attachShadow = useCallback(() => {\n const element = fixedWrapperRef.current;\n\n if (!element) {\n return;\n }\n\n if (window.scrollY) {\n element.classList.add('tyk-fixed-wrapper--scrolled');\n } else {\n element.classList.remove('tyk-fixed-wrapper--scrolled');\n }\n }, [fixedWrapperRef.current]);\n\n const debouncedAttachShadow = useCallback(debounce(attachShadow, 100), [attachShadow]);\n\n useEffect(() => {\n if (showShadow) {\n window.addEventListener('scroll', debouncedAttachShadow);\n }\n\n return () => {\n window.removeEventListener('scroll', debouncedAttachShadow);\n };\n }, [debouncedAttachShadow, showShadow]);\n\n return (\n
    \n { children }\n
    \n );\n}\n\nFixedWrapper.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** Css classes that can be passed to the FixedWraper element */\n className: PropTypes.string,\n /** If true, bottom shadow on the FixedWrapper component\n * is being displayed when scroll happens\n */\n showShadow: PropTypes.bool,\n};\n\nFixedWrapper.defaultProps = {\n className: '',\n};\n\nexport default FixedWrapper;\n","import React, {\n useEffect, useState, useRef, useCallback,\n} from 'react';\nimport { PropTypes } from 'prop-types';\n\nimport debounce from '../../utils/debounce';\nimport { usePrevious, useComponentSize } from '../../hooks';\nimport Loader from '../Loader';\n\nfunction InfiniteScroller({\n children,\n hasMore,\n initialLoad,\n loadMore,\n pageNumber,\n refChild,\n}) {\n const [showLoader, setShowLoader] = useState(false);\n const containerRef = useRef(null);\n const refChildSize = useComponentSize(refChild);\n\n useEffect(() => {\n if (initialLoad && typeof loadMore === 'function') {\n setShowLoader(false);\n loadMore(pageNumber);\n }\n }, [initialLoad]);\n\n const shouldLoad = useCallback(() => {\n if (!containerRef.current) return false;\n const { clientHeight, scrollTop } = containerRef.current;\n\n return (\n hasMore\n && (\n (clientHeight + Math.round(scrollTop) === refChildSize.height)\n || (clientHeight >= refChildSize.height)\n )\n );\n }, [containerRef, refChildSize.height]);\n\n const loadMoreData = useCallback(() => {\n if (hasMore && typeof loadMore === 'function') {\n loadMore(pageNumber + 1);\n setShowLoader(true);\n } else {\n setShowLoader(false);\n }\n }, [hasMore, pageNumber]);\n\n const prevPageNumber = usePrevious(pageNumber);\n const scrollHandler = useCallback(debounce(() => {\n if (shouldLoad() && prevPageNumber <= pageNumber) {\n loadMoreData();\n }\n }, 200), [loadMoreData, shouldLoad]);\n\n useEffect(() => {\n containerRef.current?.addEventListener('scroll', scrollHandler);\n return () => containerRef.current?.removeEventListener('scroll', scrollHandler);\n }, [containerRef, scrollHandler]);\n\n // if content resets (page number resets) scroll to top\n useEffect(() => {\n if (prevPageNumber > 0 && pageNumber === 0) {\n containerRef.current.scrollTop = 0;\n }\n }, [containerRef, pageNumber]);\n\n const prevRefChildSize = usePrevious(refChildSize);\n useEffect(() => {\n if (\n refChildSize && prevRefChildSize\n && refChildSize.height !== prevRefChildSize.height\n && showLoader === true\n ) {\n setShowLoader(false);\n }\n }, [showLoader, refChildSize.height]);\n\n useEffect(() => {\n if (\n refChild && refChildSize.height < containerRef.current.clientHeight\n && refChildSize.height\n && hasMore\n ) {\n loadMoreData();\n }\n }, [containerRef, refChildSize, refChild, hasMore]);\n\n return (\n
    \n \n { children }\n
    \n {showLoader && (\n \n )}\n
    \n );\n}\n\nInfiniteScroller.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n hasMore: PropTypes.bool,\n initialLoad: PropTypes.bool,\n pageNumber: PropTypes.number,\n loadMore: PropTypes.func,\n refChild: PropTypes.instanceOf(Object),\n};\n\nInfiniteScroller.defaultProps = {\n hasMore: true,\n};\n\nexport default InfiniteScroller;\n","import React, {\n useEffect, useRef, forwardRef,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\nimport InfiniteScroller from '../InfiniteScroller';\n\nconst VIEWPORT_INITIAL_PADDING = 5;\n\n/**\n * It displays a container relative to another element.\n * Meant to be used for dropdowns, tooltips, and other similar components.\n */\nfunction FloatingContainer({\n element,\n size = 'auto',\n forceDisplay = 'auto',\n displayAxis = 'auto',\n preferredPosition,\n offset = 0,\n className,\n children,\n infiniteScrollerConfig,\n}, ref) {\n const localRef = useRef(null);\n const floatingContainerRef = ref || localRef;\n const contentWrapperRef = useRef(null);\n // offset calculated on first render to make sure the floating container is inside the viewport\n const viewportOffset = useRef(null);\n\n function determineDisplay() {\n const target = element.current;\n const container = floatingContainerRef.current;\n if (!container) return preferredPosition ?? displayAxis === 'vertical' ? 'bottom' : 'right';\n\n const { left, top } = target.getBoundingClientRect();\n const topSpace = top;\n const bottomSpace = window.innerHeight - top - target.offsetHeight;\n const leftSpace = left;\n const rightSpace = window.innerWidth - left - target.offsetWidth;\n const hasTopSpace = topSpace > container.scrollHeight;\n const hasBottomSpace = bottomSpace > container.scrollHeight;\n const hasLeftSpace = leftSpace > container.offsetWidth;\n const hasRightSpace = rightSpace > container.offsetWidth;\n const positionedVerticallyFitsInViewport = left + target.offsetWidth / 2 - container.offsetWidth / 2 > 0; // eslint-disable-line max-len\n const positionedHorizontallyFitsInViewport = top + target.offsetHeight / 2 - container.scrollHeight / 2 > 0; // eslint-disable-line max-len\n\n if (\n displayAxis === 'vertical'\n || (\n displayAxis === 'auto'\n && (hasTopSpace || hasBottomSpace)\n && positionedVerticallyFitsInViewport\n )\n ) {\n return getDisplayForVertical({\n preferredPosition, hasTopSpace, hasBottomSpace, topSpace, bottomSpace,\n });\n }\n\n if (displayAxis === 'horizontal') {\n return getDisplayForHorizontal({\n preferredPosition, hasLeftSpace, hasRightSpace, leftSpace, rightSpace,\n });\n }\n\n return getDisplayWhereItFits({\n preferredPosition,\n hasTopSpace,\n hasBottomSpace,\n hasLeftSpace,\n hasRightSpace,\n positionedHorizontallyFitsInViewport,\n positionedVerticallyFitsInViewport,\n });\n }\n\n function adjustPosition() {\n const display = forceDisplay !== 'auto' ? forceDisplay : determineDisplay();\n const target = element.current;\n const container = floatingContainerRef.current;\n\n if (!target || !container) return;\n\n const targetPosition = target.getBoundingClientRect();\n const { left: vpLeft, top: vpTop } = viewportOffset.current ?? { left: 0, top: 0 };\n\n if (display === 'top') {\n Object.assign(container.style, getStylesForTop({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (display === 'bottom') {\n Object.assign(container.style, getStylesForBottom({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (display === 'left') {\n Object.assign(container.style, getStylesForLeft({\n targetPosition, target, container, size, offset,\n }));\n }\n\n if (display === 'right') {\n Object.assign(container.style, getStylesForRight({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (viewportOffset.current !== null) return;\n\n if (size === 'matchEnd') {\n viewportOffset.current = { left: 0, top: 0 };\n } else {\n const left = Number(container.style.left.replace('px', ''));\n const top = Number(container.style.top.replace('px', ''));\n viewportOffset.current = {\n left: left < 0 ? VIEWPORT_INITIAL_PADDING - left : 0,\n top: top < 0 ? VIEWPORT_INITIAL_PADDING - top : 0,\n };\n }\n }\n\n useEffect(() => {\n window.requestAnimationFrame(function schedulePositionUpdate() {\n adjustPosition();\n window.requestAnimationFrame(schedulePositionUpdate);\n });\n }, []);\n\n return createPortal(\n \n \n \n {children}\n
    \n \n
    ,\n document.querySelector('body'),\n );\n}\n\nFloatingContainer.propTypes = {\n /** A DOM element that the floating container will be displayed relative to. */\n element: PropTypes.instanceOf(Object),\n className: PropTypes.string,\n /** The size of the container.\n * If `auto` the size will be determined by its contents.\n * If `matchElement` it will take the width or the height of the element depending\n * on the `displayAxis` prop.\n * It can also be a function that returns a number representing the width\n * or the height in pixels.\n */\n size: PropTypes.oneOfType([\n PropTypes.oneOf(['auto', 'matchElement', 'matchStart', 'matchEnd']),\n PropTypes.func,\n ]),\n /**\n * The distance between the element and the floating container.\n * It can be positive or negative.\n */\n offset: PropTypes.number,\n /**\n * If `auto` the component will try to determine where to display the container relative to the\n * element (top, bottom, left, right).\n * It can also be one of top, bottom, left, right, to force the floating container to always be\n * displayed in that position.\n */\n forceDisplay: PropTypes.oneOf(['auto', 'top', 'bottom', 'left', 'right']),\n /**\n * It can be `auto`, `vertical` or `horizontal`. It specifies the axis where\n * it will be displayed when `forceDisplay` is `auto`.\n */\n displayAxis: PropTypes.oneOf(['auto', 'vertical', 'horizontal']),\n /**\n * If there is space on both sides of the axis preffer this side.\n */\n preferredPosition: PropTypes.oneOf(['top', 'bottom', 'left', 'right']),\n /**\n * Configuration object that will be passed to the infinite scroller component.\n */\n infiniteScrollerConfig: PropTypes.instanceOf(Object),\n};\n\nexport default forwardRef(FloatingContainer);\n\nfunction getDisplayForVertical({\n preferredPosition, hasTopSpace, hasBottomSpace, topSpace, bottomSpace,\n}) {\n if (preferredPosition === 'top' && hasTopSpace) return 'top';\n if (preferredPosition === 'bottom' && hasBottomSpace) return 'bottom';\n return hasBottomSpace || bottomSpace > topSpace ? 'bottom' : 'top';\n}\n\nfunction getDisplayForHorizontal({\n preferredPosition, hasLeftSpace, hasRightSpace, leftSpace, rightSpace,\n}) {\n if (preferredPosition === 'left' && hasLeftSpace) return 'left';\n if (preferredPosition === 'right' && hasRightSpace) return 'right';\n return hasRightSpace || rightSpace > leftSpace ? 'right' : 'left';\n}\n\nfunction getDisplayWhereItFits({\n preferredPosition, hasTopSpace, hasBottomSpace, hasLeftSpace, hasRightSpace,\n positionedHorizontallyFitsInViewport, positionedVerticallyFitsInViewport,\n}) {\n if (hasTopSpace && positionedVerticallyFitsInViewport) return 'top';\n if (hasBottomSpace && positionedVerticallyFitsInViewport) return 'bottom';\n if (hasRightSpace && positionedHorizontallyFitsInViewport) return 'right';\n if (hasLeftSpace && positionedHorizontallyFitsInViewport) return 'left';\n return preferredPosition ?? 'bottom';\n}\n\nfunction getStylesForTop({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = {\n auto: targetPosition.left + target.offsetWidth / 2 - container.offsetWidth / 2,\n matchElement: targetPosition.left,\n matchStart: targetPosition.left,\n matchEnd: targetPosition.right - container.offsetWidth,\n }[size];\n const topPos = targetPosition.top - container.offsetHeight - offset;\n style.left = `${leftPos + vpLeft}px`;\n style.top = `${topPos + vpTop}px`;\n\n if (size === 'matchElement') {\n style.width = `${target.offsetWidth}px`;\n } else if (size === 'matchEnd') {\n style.maxWidth = `${targetPosition.right - VIEWPORT_INITIAL_PADDING}px`;\n } else if (typeof size === 'function') {\n style.width = `${size(target.offsetWidth)}px`;\n }\n style.maxHeight = `${targetPosition.top - offset}px`;\n return style;\n}\n\nfunction getStylesForBottom({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = {\n auto: targetPosition.left + target.offsetWidth / 2 - container.offsetWidth / 2,\n matchElement: targetPosition.left,\n matchStart: targetPosition.left,\n matchEnd: targetPosition.right - container.offsetWidth,\n }[size];\n const topPos = targetPosition.bottom + offset;\n style.left = `${leftPos + vpLeft}px`;\n style.top = `${topPos + vpTop}px`;\n\n if (size === 'matchElement') {\n style.width = `${target.offsetWidth}px`;\n } else if (size === 'matchEnd') {\n style.maxWidth = `${targetPosition.right - VIEWPORT_INITIAL_PADDING}px`;\n } else if (typeof size === 'function') {\n style.width = `${size(target.offsetWidth)}px`;\n }\n style.maxHeight = `${window.innerHeight - targetPosition.bottom - offset}px`;\n return style;\n}\n\nfunction getStylesForLeft({\n targetPosition, target, container, size, offset,\n}) {\n const style = {};\n const leftPos = targetPosition.left - container.offsetWidth - offset;\n const topPos = {\n auto: targetPosition.top + target.offsetHeight / 2 - container.offsetHeight / 2,\n matchElement: targetPosition.top,\n matchStart: targetPosition.top,\n matchEnd: targetPosition.bottom - container.offsetHeight,\n }[size];\n style.left = `${leftPos}px`;\n style.top = `${topPos}px`;\n\n if (size === 'matchElement') {\n style.height = `${target.offsetHeight}px`;\n } else if (typeof size === 'function') {\n style.height = `${size(target.offsetHeight)}px`;\n }\n style.maxWidth = `${targetPosition.left - offset}px`;\n return style;\n}\n\nfunction getStylesForRight({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = targetPosition.left + target.offsetWidth + offset;\n const topPos = {\n auto: targetPosition.top + target.offsetHeight / 2 - container.offsetHeight / 2,\n matchElement: targetPosition.top,\n matchStart: targetPosition.top,\n matchEnd: targetPosition.bottom - container.offsetHeight,\n }[size];\n style.left = size === 'auto' ? `${leftPos + vpLeft}px` : `${leftPos}px`;\n style.top = size === 'auto' ? `${topPos + vpTop}px` : `${topPos}px`;\n\n if (size === 'matchElement') {\n style.height = `${target.offsetHeight}px`;\n } else if (typeof size === 'function') {\n style.height = `${size(target.offsetHeight)}px`;\n }\n style.maxWidth = `${window.innerWidth - targetPosition.left - target.offsetWidth - offset}px`;\n return style;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../Message';\n\nfunction InfoNote({ children }) {\n return (\n
    \n \n { children }\n \n
    \n );\n}\n\nInfoNote.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default InfoNote;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ListItem(props) {\n const {\n className,\n children,\n selected,\n } = props;\n\n return (\n
  • \n {children}\n
  • \n );\n}\n\nListItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n selected: PropTypes.bool,\n};\n\nListItem.defaultProps = {\n className: '',\n};\n\nexport default ListItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ListItem from './js/ListItem';\n\nfunction List(props) {\n const {\n className,\n children,\n label,\n labelwidth,\n theme,\n style,\n } = props;\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-list'];\n\n if (theme) {\n cssClasses.push(`tyk-list--${theme}`);\n }\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n };\n\n const getListStyle = () => {\n const styleCopy = structuredClone(style);\n if (labelwidth) {\n styleCopy.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styleCopy;\n };\n\n return (\n
    \n {\n label !== undefined\n ? (\n \n )\n : null\n }\n
      \n {children}\n
    \n
    \n );\n}\n\nList.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n label: PropTypes.string,\n labelwidth: PropTypes.string,\n theme: PropTypes.string,\n style: PropTypes.instanceOf(Object),\n};\n\nList.defaultProps = {\n theme: 'default',\n style: {},\n};\n\nList.Item = ListItem;\n\nexport default List;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction NavBar({\n align = 'center',\n children,\n left,\n right,\n title,\n pre,\n subtitle,\n withTabs,\n}) {\n const subtitleContent = subtitle ?

    { subtitle }

    : null;\n return (\n
    \n
    \n {pre && (\n
    {pre}
    \n )}\n {\n title\n ? (\n
    \n

    { title }

    \n { subtitleContent }\n
    \n )\n : subtitleContent\n }\n
    \n {left && (\n
    { left }
    \n )}\n {right && (\n
    { right }
    \n )}\n
    \n
    \n { children }\n
    \n );\n}\n\nNavBar.propTypes = {\n align: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n title: PropTypes.string,\n subtitle: PropTypes.string,\n pre: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n left: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n right: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n withTabs: PropTypes.bool,\n};\n\nexport default NavBar;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction NavigationItem({ children }) {\n return (\n
  • \n {children}\n
  • \n );\n}\n\nNavigationItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nexport default NavigationItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport NavigationItem from './js/NavigationItem';\n\nfunction Navigation({ children }) {\n return (\n
      \n {children}\n
    \n );\n}\n\nNavigation.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nNavigation.Item = NavigationItem;\n\nexport default Navigation;\n","import { createContext } from 'react';\n\nexport const PortalContext = createContext();\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Collapsible from '../../Collapsible';\nimport { PortalContext } from '../panel-context';\n\nfunction PanelBody({\n children,\n noPadding,\n className,\n ...rest\n}) {\n const getCssClasses = useCallback(\n () => [\n 'tyk-panel__body',\n className,\n noPadding && 'no-padding',\n ].filter(Boolean).join(' '),\n [className, noPadding],\n );\n\n return (\n \n {\n (portalContext) => (\n portalContext.collapsable\n ? (\n \n { children }\n \n )\n : (\n \n { children }\n
    \n )\n )\n }\n \n );\n}\n\nPanelBody.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n noPadding: PropTypes.bool,\n className: PropTypes.string,\n};\n\nexport default PanelBody;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction PanelFooter(props) {\n const { children } = props;\n return (\n
    \n { children }\n
    \n );\n}\n\nPanelFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default PanelFooter;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport { PortalContext } from '../panel-context';\n\nclass PanelHeader extends Component {\n getCssClasses(props) {\n const { className } = this.props;\n let cssClasses = ['tyk-panel__header'];\n\n if (props.collapsable) {\n cssClasses.push('collapsable');\n }\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n }\n\n render() {\n const {\n children,\n } = this.props;\n\n return (\n \n {\n (portalContext) => {\n const HeaderTag = portalContext.theme === 'blank' ? 'h3' : 'div';\n const iconType = portalContext.collapsed ? 'chevron-down' : 'chevron-up';\n\n return (\n \n { children }\n {\n portalContext.collapsable\n ?
    \n : null\n }\n \n );\n }\n }\n
    \n );\n }\n}\n\nPanelHeader.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]).isRequired,\n className: PropTypes.string,\n};\n\nexport default PanelHeader;\n","import React, {\n useCallback, useEffect, useMemo, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport PanelBody from './js/PanelBody';\nimport PanelFooter from './js/PanelFooter';\nimport PanelHeader from './js/PanelHeader';\n\nimport { PortalContext } from './panel-context';\n\nfunction Panel(props) {\n const {\n children,\n className,\n collapsed,\n collapsable,\n theme,\n onToggleCollapse,\n collapsibleIconPosition = 'right',\n } = props;\n const [collapsedState, setCollapsedState] = useState(collapsed || false);\n\n useEffect(() => {\n if (collapsed !== collapsedState) {\n setCollapsedState(collapsed);\n }\n }, [collapsed]);\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-panel'];\n const panelTheme = `tyk-panel--${theme || 'default'}`;\n const collapsbleIconPosition = `tyk-panel__icon-collapse--${collapsibleIconPosition}`;\n\n cssClasses.push(panelTheme);\n cssClasses.push(collapsbleIconPosition);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n if (collapsedState) {\n cssClasses.push('tyk-panel--collapsed');\n }\n\n return cssClasses.join(' ');\n };\n\n const handleToggle = useCallback(() => {\n setCollapsedState(!collapsedState);\n\n if (onToggleCollapse) {\n onToggleCollapse(!collapsedState);\n }\n }, [collapsedState, onToggleCollapse]);\n\n const context = useMemo(() => ({\n collapsable,\n collapsed: collapsedState,\n onToggle: handleToggle,\n theme,\n collapsibleIconPosition,\n }), [collapsable, collapsedState, collapsibleIconPosition, theme, handleToggle]);\n\n return (\n
    \n \n {\n (typeof children === 'function')\n ? children({\n toggleCollapse: handleToggle,\n })\n : children\n }\n \n
    \n );\n}\n\nPanel.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n collapsable: PropTypes.bool,\n collapsibleIconPosition: PropTypes.string,\n collapsed: PropTypes.bool,\n theme: PropTypes.string,\n onToggleCollapse: PropTypes.func,\n};\n\nPanel.Body = PanelBody;\nPanel.Footer = PanelFooter;\nPanel.Header = PanelHeader;\n\nexport default Panel;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * Pill\n */\nfunction Pill(props) {\n const {\n children,\n className,\n theme,\n } = props;\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-pill', ...theme.split(' ').map((t) => `tyk-pill--${t}`)];\n\n if (className) {\n cssClasses = cssClasses.concat(className);\n }\n\n return cssClasses.join(' ');\n };\n\n return (\n
    \n {children}\n
    \n );\n}\n\nPill.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n /** Css classes that can be passed to the Pill element */\n className: PropTypes.string,\n /** Theme that can be applied to a Pill */\n theme: PropTypes.string,\n};\n\nPill.defaultProps = {\n theme: 'default',\n};\n\nexport default Pill;\n","import { useRef } from 'react';\n\n/**\n * RevealPanelService is a class that manages the resizing of a panel element.\n * It provides methods to set the panel's height, hide and show it, and attach\n * event listeners for resizing.\n */\nclass RevealPanelService {\n #state = null; // Private state for mouse interactions.\n\n #panel = null; // The panel element to be resized.\n\n #gutter = null; // The gutter element used for resizing.\n\n #wrapper = null; // The wrapper element that contains the panel and gutter.\n\n #onHeightChangeCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #onDragStartCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #onDragEndCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #dragStarted = false;\n\n /**\n * Sets a callback function to be executed when the panel is resized.\n * @param {function} callback - The callback function to be called on panel resize.\n */\n on(eventName, listener) {\n let list = null;\n if (eventName === 'onHeightChange') {\n list = this.#onHeightChangeCallbacks;\n } else if (eventName === 'onDragStart') {\n list = this.#onDragStartCallbacks;\n } else if (eventName === 'onDragEnd') {\n list = this.#onDragEndCallbacks;\n }\n\n if (list) {\n this.addListener(list, listener);\n }\n }\n\n off(eventName, listener) {\n let list = null;\n if (eventName === 'onHeightChange') {\n list = this.#onHeightChangeCallbacks;\n } else if (eventName === 'onDragStart') {\n list = this.#onDragStartCallbacks;\n } else if (eventName === 'onDragEnd') {\n list = this.#onDragEndCallbacks;\n }\n\n if (list) {\n this.removeListener(list, listener);\n }\n }\n\n /**\n * Sets the panel, gutter, and wrapper elements to be controlled by this class.\n * @param {HTMLElement} wrapper - The wrapper element containing the panel and gutter.\n * @param {HTMLElement} panel - The panel element to be resized.\n * @param {HTMLElement} gutter - The gutter element used for resizing.\n */\n setRefs(wrapper, panel, gutter) {\n if (this.#panel || this.#gutter || this.#wrapper) {\n this.unbindEvents();\n }\n this.#wrapper = wrapper;\n this.#panel = panel;\n this.#gutter = gutter;\n this.#state = null;\n this.bindEvents();\n }\n\n /**\n * Attaches event listeners for panel resizing.\n */\n bindEvents() {\n this.ensureRefs('bindEvents');\n this.#gutter.addEventListener('mousedown', this.onMouseDown.bind(this));\n document.addEventListener('mousemove', this.onMouseMove.bind(this));\n document.addEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n /**\n * Gets the current height of the panel.\n * @returns {number} - The height of the panel in pixels.\n */\n getHeight() {\n this.ensureRefs('getHeight');\n const size = this.#panel.getBoundingClientRect();\n return size.height;\n }\n\n /**\n * Handles the mouse down event, initiating the resizing process.\n * @param {MouseEvent} e - The mouse event object.\n */\n onMouseDown(e) {\n this.ensureRefs('onMouseDown');\n this.#state = {\n mouseDown: true,\n initialRect: this.#panel.getBoundingClientRect(),\n initialEvent: e,\n };\n }\n\n /**\n * Handles the mouse move event, adjusting the panel's height during resizing.\n * @param {MouseEvent} e - The mouse event object.\n */\n onMouseMove(e) {\n this.ensureRefs('onMouseMove');\n\n if (!this.#state) {\n return;\n }\n\n const isButtonDown = this.isPrimaryMouseButtonDown(e);\n if (!isButtonDown) {\n this.onMouseUp();\n return;\n }\n\n if (!this.#dragStarted) {\n this.#dragStarted = true;\n this.onDragStart.bind(this)();\n }\n\n const newY = this.#state.initialEvent.y - e.y;\n const finalHeight = Math.ceil(this.#state.initialRect.height + newY);\n this.setHeight(`${finalHeight}px`, 'mousemove');\n }\n\n // eslint-disable-next-line class-methods-use-this\n notifyListeners(list, value) {\n if (list && Array.isArray(list) && list.length) {\n list.forEach((fn) => {\n if (typeof fn === 'function') {\n fn(value);\n }\n });\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n addListener(list, listener) {\n if (list && Array.isArray(list) && typeof listener === 'function') {\n list.push(listener);\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n removeListener(list, listener) {\n if (list && Array.isArray(list) && typeof listener === 'function' && list.length) {\n const index = list.indexOf(listener);\n\n if (index > -1) {\n list.splice(index, 1);\n }\n }\n }\n\n onDragEnd() {\n if (this.#dragStarted) {\n this.notifyListeners(this.#onDragEndCallbacks, this.getHeight());\n }\n }\n\n onDragStart() {\n this.notifyListeners(this.#onDragStartCallbacks, this.getHeight());\n }\n\n // eslint-disable-next-line class-methods-use-this\n isPrimaryMouseButtonDown(e) {\n const flags = e.buttons !== undefined ? e.buttons : e.which;\n // eslint-disable-next-line no-bitwise\n const isDown = flags === 1;\n return isDown;\n }\n\n /**\n * Resets the state after the mouse up event, ending the resizing process.\n */\n onMouseUp() {\n this.#state = null;\n this.onDragEnd.bind(this)();\n this.#dragStarted = false;\n }\n\n /**\n * Sets the height of the panel.\n * @param {string} height - The new height value as a CSS string (e.g., \"100px\").\n */\n setHeight(height) {\n let heightVal = height;\n this.ensureRefs('setHeight');\n\n if (typeof heightVal === 'number') {\n heightVal += 'px';\n }\n\n this.#panel.style.height = heightVal;\n\n this.notifyListeners(this.#onHeightChangeCallbacks, this.getHeight());\n }\n\n /**\n * Ensures that the required elements (wrapper, panel, and gutter) are set.\n * Throws an error if they are missing.\n */\n ensureRefs(reason) {\n if (!this.#panel || !this.#gutter || !this.#wrapper) {\n throw new Error(\n `${reason}: Wrapper, panel, and gutter elements are required. Use setRefs method first.`,\n );\n }\n }\n\n /**\n * Checks if the panel is hidden.\n * @returns {boolean} - True if the panel is hidden; false otherwise.\n */\n isHidden() {\n this.ensureRefs('isHidden');\n return this.#wrapper.style.visibility === 'hidden';\n }\n\n /**\n * Hides the panel by setting its visibility to \"hidden\".\n */\n hide() {\n this.ensureRefs('hide');\n this.#wrapper.style.visibility = 'hidden';\n }\n\n /**\n * Shows the panel by setting its visibility to \"visible\".\n */\n show() {\n this.ensureRefs('show');\n this.#wrapper.style.visibility = 'visible';\n }\n\n /**\n * Unbinds the event listeners added for resizing.\n */\n unbindEvents() {\n this.#onHeightChangeCallbacks = [];\n this.#onDragStartCallbacks = [];\n this.#onDragEndCallbacks = [];\n this.#gutter.removeEventListener('mousedown', this.onMouseDown.bind(this));\n document.removeEventListener('mousemove', this.onMouseMove.bind(this));\n document.removeEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n deinit() {\n this.unbindEvents();\n }\n}\n\nexport const useRevealPanelService = () => {\n const revealPanelServiceRef = useRef(new RevealPanelService());\n return revealPanelServiceRef.current;\n};\n","import React, {\n useEffect,\n useRef,\n useImperativeHandle,\n forwardRef,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { createPortal } from 'react-dom';\nimport { useRevealPanelService } from './js/RevealPanelService';\n\nfunction RevealPanelHeaderLeft({ children }) {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <>{children};\n}\n\nRevealPanelHeaderLeft.propTypes = {\n children: PropTypes.instanceOf({}),\n};\n\nfunction RevealPanelHeaderRight({ children }) {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <>{children};\n}\n\nRevealPanelHeaderRight.propTypes = {\n children: PropTypes.instanceOf({}),\n};\n\nconst mergeClasses = (...classNames) => classNames.map((it) => (it || '').trim()).filter(Boolean).join(' ');\n\nfunction RevealPanel({\n children,\n height,\n onHeightChange = null,\n onDragStart = null,\n onDragEnd = null,\n style = null,\n parentSelector = null,\n contentStyle,\n contentClassName,\n gutterClassName,\n wrapperClassName,\n// eslint-disable-next-line consistent-return\n}, ref) {\n const panelRef = useRef(null);\n const gutterRef = useRef(null);\n const wrapperRef = useRef(null);\n\n const panelService = useRevealPanelService();\n\n useEffect(() => {\n if (!panelRef.current || !gutterRef.current || !wrapperRef.current) {\n return;\n }\n\n if (!panelService) {\n return;\n }\n\n panelService.setRefs(wrapperRef.current, panelRef.current, gutterRef.current);\n panelService.on('onHeightChange', onHeightChange);\n panelService.on('onDragStart', onDragStart);\n panelService.on('onDragEnd', onDragEnd);\n panelService.setHeight(height, 'initialize');\n\n // eslint-disable-next-line consistent-return\n return () => {\n panelService.unbindEvents();\n };\n }, []);\n\n useImperativeHandle(\n ref,\n () => {\n // bind this context\n const bind = (func) => func.bind(panelService);\n\n return {\n getHeight: bind(panelService.getHeight),\n setHeight: bind(panelService.setHeight),\n hide: bind(panelService.hide),\n show: bind(panelService.show),\n isHidden: bind(panelService.isHidden),\n deinit: bind(panelService.deinit),\n on: bind(panelService.on),\n off: bind(panelService.off),\n };\n },\n [],\n );\n\n let headerLeft = null;\n let headerRight = null;\n const contents = [];\n\n React.Children.forEach(children, (child) => {\n if (child && React.isValidElement(child)) {\n if (child.type === RevealPanelHeaderLeft) {\n headerLeft = child;\n } else if (child.type === RevealPanelHeaderRight) {\n headerRight = child;\n } else {\n contents.push(child);\n }\n }\n });\n\n const element = (\n
    \n
    \n
    \n\n
    {headerLeft}
    \n
    \n
    {headerRight}
    \n\n
    \n
    \n {contents}\n
    \n
    \n );\n\n if (parentSelector) {\n return createPortal(element, document.querySelector(parentSelector));\n }\n}\n\nRevealPanel.propTypes = {\n children: PropTypes.instanceOf({}),\n height: PropTypes.string,\n onHeightChange: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragEnd: PropTypes.func,\n parentSelector: PropTypes.string,\n style: PropTypes.instanceOf({}),\n contentStyle: PropTypes.instanceOf({}),\n contentClassName: PropTypes.string,\n gutterClassName: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\nconst TempRevealPanel = forwardRef(RevealPanel);\nTempRevealPanel.HeaderLeft = RevealPanelHeaderLeft;\nTempRevealPanel.HeaderRight = RevealPanelHeaderRight;\n\nexport default TempRevealPanel;\n","import { createContext } from 'react';\n\nexport const TabsContext = createContext();\n","import { createContext } from 'react';\n\nexport default createContext();\n","import React, { useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport TabContext from './TabContext';\nimport { usePrevious } from '../../../hooks';\n\nfunction TabContent(props) {\n const {\n addTab,\n hideTab,\n updateTab,\n showTab,\n children,\n selectedPath,\n tabData,\n tabsId,\n tabExists,\n path,\n rendered,\n hideTabContent,\n tabs,\n } = props;\n\n useEffect(() => {\n const tempTabData = { ...tabData };\n\n if (!tabExists(path)) {\n addTab(tempTabData, path);\n }\n }, [tabData, path]);\n\n const prevTabData = usePrevious(tabData);\n useEffect(() => {\n if (\n tabExists(path) && tabData?.title\n && (prevTabData?.title !== tabData?.title || prevTabData?.selected !== tabData.selected)\n ) {\n const tempTabData = { ...tabData };\n updateTab(tempTabData, path);\n }\n }, [tabData, path, prevTabData, tabs]);\n\n useEffect(() => {\n showTab(path);\n return () => hideTab(path);\n }, []);\n\n const shouldRender = useMemo(() => {\n if (!Object.keys(tabs).length) {\n return false;\n }\n\n if (hideTabContent || tabs[tabData.id].show === false) {\n return false;\n }\n\n if (!rendered) {\n return tabExists(path);\n }\n return selectedPath && selectedPath.indexOf(tabData.id) > -1;\n }, [hideTabContent, rendered, selectedPath, tabData, tabs]);\n\n const context = useMemo(() => ({ path, tabsId }), [path, tabsId]);\n\n if (!shouldRender) return null;\n return (\n
    -1 ? 'block' : 'none' }}>\n \n {children}\n \n
    \n );\n}\n\nTabContent.propTypes = {\n addTab: PropTypes.func,\n updateTab: PropTypes.func,\n hideTab: PropTypes.func,\n showTab: PropTypes.func,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n path: PropTypes.instanceOf(Array),\n hideTabContent: PropTypes.bool,\n rendered: PropTypes.bool,\n selectedPath: PropTypes.instanceOf(Array),\n tabExists: PropTypes.func,\n tabsId: PropTypes.string,\n tabData: PropTypes.instanceOf(Object),\n tabs: PropTypes.instanceOf(Object),\n};\n\nexport default TabContent;\n","import React, {\n useContext, useEffect, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { TabsContext } from '../tabs-context';\nimport TabContext from './TabContext';\nimport TabContent from './TabContent';\n\nfunction Tab(props) {\n const { id } = props;\n const tabsContext = useContext(TabsContext);\n const tabContext = useContext(TabContext);\n const {\n tabExists,\n selectedPath,\n addTab,\n updateTab,\n hideTab,\n showTab,\n rendered,\n hideTabContent,\n tabs,\n } = tabsContext;\n const {\n children,\n } = props;\n const [path, setPath] = useState('');\n\n useEffect(() => {\n let tempPath;\n if (tabContext && path) {\n if (tabContext.tabsId === tabsContext.id) {\n tempPath = tabContext.path.concat([id]);\n } else {\n tempPath = [id];\n }\n } else {\n tempPath = [id];\n }\n setPath(tempPath);\n }, [tabContext]);\n\n if (!path) {\n return null;\n }\n\n return (\n \n {children}\n \n );\n}\n\nTab.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n id: PropTypes.string,\n};\n\nTab.defaultProps = {};\n\nexport default Tab;\n","import React, {\n useEffect, useMemo, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport Tab from './js/Tab';\n\nimport Collapsible from '../Collapsible';\nimport Icon from '../Icon';\nimport { TabsContext } from './tabs-context';\n\nfunction Tabs(props) {\n const {\n children,\n className,\n id,\n onTabChange,\n type,\n hideTabContent,\n } = props;\n const [tabs, setTabs] = useState({});\n const [selectedPath, setSelectedPath] = useState([]);\n const [rendered, setRendered] = useState(false);\n const [initialPath, setInitialPath] = useState(null);\n\n useEffect(() => {\n setSelectedPath(initialPath);\n }, [initialPath]);\n\n const updateTabsList = (tabsState, path, tabData) => {\n let tempTabsState = { ...tabsState };\n const tempTabData = { ...tabData };\n const tempPath = path.slice(0);\n\n while (tempPath.length > 1) {\n tempTabsState = tempTabsState[tempPath.shift()];\n\n if (!tempTabsState) {\n tempTabsState = {};\n }\n }\n\n tempTabData.tempPath = tempPath;\n tempTabsState[tempPath.shift()] = tempTabData;\n\n return tempTabsState;\n };\n\n const toggleTab = (tabsState, path) => {\n let tempTabsState = { ...tabsState };\n const tempPath = path.slice(0);\n\n while (tempPath.length > 1) {\n tempTabsState = tempTabsState[tempPath.shift()];\n }\n\n const key = tempPath.shift();\n if (tempTabsState[key].collapsed === undefined) {\n tempTabsState[key].collapsed = true;\n } else {\n tempTabsState[key].collapsed = !tempTabsState[key].collapsed;\n }\n\n return tempTabsState;\n };\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-tabs'];\n\n cssClasses.push(`tyk-tabs--${type || 'default'}`);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n };\n\n const setCurrentSelectedPath = (path, tabData) => {\n const tempPath = path.slice(0);\n let tempRendered = true;\n\n if (tabData.collapsible) {\n tempPath.push(Object.keys(tabData.tabs)[0]);\n tempRendered = false;\n }\n\n setTabs((prevTabs) => {\n let tempTabs = { ...prevTabs };\n\n tempTabs = toggleTab(tempTabs, path);\n\n return tempTabs;\n });\n setSelectedPath(tempPath);\n setRendered(tempRendered);\n\n if (onTabChange) {\n onTabChange(tabData);\n }\n };\n\n const getTabCssClass = (tabId) => {\n const cssClasses = [];\n\n if (selectedPath && selectedPath.indexOf(tabId) > -1) {\n cssClasses.push('active');\n }\n\n return cssClasses.join(' ');\n };\n\n const genTabs = (currentTabs, path) => {\n if (!currentTabs) {\n return null;\n }\n\n return (\n
      \n {\n Object.keys(currentTabs).map((tabId, index) => {\n const tempPath = path ? path.concat([currentTabs[tabId].id]) : [currentTabs[tabId].id];\n const iconType = currentTabs[tabId].collapsed ? 'chevron-up' : 'chevron-down';\n\n if (currentTabs[tabId].show === false) {\n return null;\n }\n\n return (\n
    • \n \n { currentTabs[tabId].title }\n {\n currentTabs[tabId].collapsible\n ? \n : null\n }\n \n {\n currentTabs[tabId].collapsible\n ? (\n \n {genTabs(currentTabs[tabId].tabs, tempPath)}\n \n )\n : genTabs(currentTabs[tabId].tabs, tempPath)\n }\n
    • \n );\n })\n }\n
    \n );\n };\n\n const addTab = (tabData, path) => {\n setTabs((prevTabs) => updateTabsList({ ...prevTabs }, path, tabData));\n\n if (tabData.selected) {\n setInitialPath(path);\n }\n };\n\n const updateTab = (tabData, path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n tempTabs[tabData.id] = tabData;\n return tempTabs;\n });\n\n if (tabData.selected) {\n setCurrentSelectedPath(path, tabData);\n }\n };\n\n const hideTab = (path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n tempTabs[path].show = false;\n\n return tempTabs;\n });\n };\n\n const showTab = (path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n\n tempTabs[path].show = true;\n\n return tempTabs;\n });\n };\n\n const tabExists = (path) => {\n let tempTabs = { ...tabs };\n const tempPath = path.slice(0);\n while (tempPath.length > 1) {\n tempTabs = tempTabs[tempPath.shift()];\n }\n\n const key = tempPath.shift();\n\n return Boolean(tempTabs?.[key]);\n };\n\n const context = useMemo(() => ({\n id,\n addTab,\n hideTab,\n updateTab,\n showTab,\n tabExists,\n selectedPath,\n rendered,\n hideTabContent,\n tabs,\n }), [\n id,\n addTab,\n hideTab,\n updateTab,\n showTab,\n tabExists,\n selectedPath,\n rendered,\n hideTabContent,\n tabs,\n ]);\n\n return (\n
    \n {genTabs(tabs)}\n \n {\n (typeof children === 'function')\n ? children({\n hideTab,\n showTab,\n })\n : children\n }\n \n
    \n );\n}\n\nTabs.propTypes = {\n className: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n hideTabContent: PropTypes.bool,\n id: PropTypes.string,\n onTabChange: PropTypes.func,\n type: PropTypes.string,\n};\n\nTabs.Tab = Tab;\n\nexport default Tabs;\n","import React, {\n useCallback, useEffect, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport FloatingContainer from '../FloatingContainer';\nimport Icon from '../Icon';\n\nfunction Tooltip({\n render,\n className,\n children,\n position = 'auto',\n style,\n icon = false,\n closable,\n isOpened = false,\n additionalClickParents = [],\n ...props\n}) {\n const [isActive, setIsActive] = useState(false);\n const wrapperRef = useRef(null);\n const tooltipRef = useRef(null);\n const activeEvents = closable\n ? {\n onClick: () => setIsActive(true),\n }\n : {\n onMouseEnter: () => setIsActive(true),\n onMouseLeave: () => setIsActive(false),\n onFocus: () => setIsActive(true),\n onBlur: () => setIsActive(false),\n };\n\n const handleDocumentClick = useCallback((e) => {\n if ([...additionalClickParents, tooltipRef.current].some((p) => p?.contains?.(e.target))) {\n return;\n }\n setIsActive(false);\n }, [additionalClickParents]);\n\n useEffect(() => {\n document.addEventListener('click', handleDocumentClick, true);\n return () => document.removeEventListener('click', handleDocumentClick, true);\n }, [handleDocumentClick]);\n\n useEffect(() => {\n setIsActive(isOpened);\n }, [isOpened]);\n\n const classes = ['tyk-tooltip', className].filter(Boolean).join(' ');\n return (\n \n {children}\n {isActive && (\n \n
    \n {icon && (\n icon === true ? (\n \n ) : (\n icon\n )\n )}\n
    \n {render}\n
    \n {closable && (\n {\n e.stopPropagation();\n setIsActive(false);\n }}\n />\n )}\n
    \n \n )}\n
    \n );\n}\n\nTooltip.propTypes = {\n children: PropTypes.node.isRequired,\n /** custom styles to apply on hovered element */\n style: PropTypes.instanceOf(Object),\n /** describes where the tooltip should be displayed in relation\n * whith the hovered element: top, bottom, left, right\n */\n position: PropTypes.string,\n /** content of the tooltip, can be a string or a React node element */\n render: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.string,\n ]),\n /** additional tooltip classes */\n className: PropTypes.string,\n /** if `true` displays the \"question mark\" icon;\n * optionally you can pass a different icon\n */\n icon: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.node,\n ]),\n /** if `true` the tooltip is activated on click and an \"x\" is displayed to close it;\n * if `false` the tooltip is activated on hover and it closes when no longer hovering\n */\n closable: PropTypes.bool,\n /** handles the `isActive` state of the tooltip from outside */\n isOpened: PropTypes.bool,\n /** Additional dom elements to check if the document click was inside of them.\n * Useful when you want to open the tooltip after an interaction\n * with an element not inside the tooltip root.\n */\n additionalClickParents: PropTypes.instanceOf(Array),\n};\n\nexport default Tooltip;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Tooltip from '../Tooltip';\n/**\n * TextEllipsis component helps you to hide a part of a text,\n * but displaying it when it's being hovered.\n * The entire text is displayed with the help of Tooltip component\n */\n\nfunction TextEllipsis({ text, limit, position }) {\n return (\n text.length > limit\n ? (\n \n {text.substring(0, limit)}\n ...\n \n )\n : text\n );\n}\n\nTextEllipsis.propTypes = {\n /** Text to be shrinked by TextEllipsis */\n text: PropTypes.string,\n /** Number of characters that TextEllipsis would leave visible */\n limit: PropTypes.number,\n /** tooltip position */\n position: PropTypes.string,\n};\n\nexport default TextEllipsis;\n","import React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction shouldShowPage(currentNr, pageNr, totalNrOfPages) {\n const basePageNr = 5;\n const minimumNrOfPages = 10;\n\n if (totalNrOfPages < minimumNrOfPages) {\n return true;\n }\n\n if (\n pageNr < basePageNr\n && currentNr < basePageNr\n ) {\n return true;\n }\n\n if (\n pageNr > totalNrOfPages - basePageNr\n && currentNr > totalNrOfPages - basePageNr\n ) {\n return true;\n }\n\n if (\n currentNr >= pageNr - 2\n && currentNr <= pageNr + 2\n ) {\n return true;\n }\n\n return [0, 1, totalNrOfPages - 1, totalNrOfPages].includes(currentNr);\n}\n\nfunction getPagesArr(nrOfPages, selectedPage) {\n let i;\n const pagesArr = [];\n\n for (i = 0; i <= nrOfPages; i += 1) {\n if (shouldShowPage(i, selectedPage, nrOfPages)) {\n if (i > pagesArr.at(-1)) {\n pagesArr.push(`...-${i}`);\n }\n pagesArr.push(i + 1);\n }\n }\n\n return pagesArr;\n}\n\nfunction Pagination(props) {\n const {\n value = 0,\n totalNrOfPages,\n onChange,\n } = props;\n\n const [selectedPage, setSelectedPage] = useState(value);\n\n const pagesArray = useMemo(\n () => getPagesArr(totalNrOfPages, selectedPage),\n [selectedPage, totalNrOfPages],\n );\n\n function goToPage(pageNr) {\n setSelectedPage(pageNr);\n if (onChange) onChange(pageNr);\n }\n\n return (\n totalNrOfPages\n ? (\n
      \n {selectedPage > 0 && totalNrOfPages > 5 && (\n
    • \n \n
    • \n )}\n {\n pagesArray.map((pageNr) => (\n
    • \n {\n String(pageNr).startsWith('...')\n ? ...\n : \n }\n
    • \n ))\n }\n {selectedPage < totalNrOfPages && totalNrOfPages > 5 && (\n
    • \n \n
    • \n )}\n
    \n )\n : null\n );\n}\n\nPagination.propTypes = {\n value: PropTypes.number,\n totalNrOfPages: PropTypes.number,\n onChange: PropTypes.func,\n};\n\nexport default Pagination;\n","import { createContext } from 'react';\n\nexport const tableContext = createContext();\n","import React, { useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { tableContext } from '../tableContext';\nimport Icon from '../../Icon';\n\nexport function HeaderCell({ column }) {\n const { sortable } = column;\n const [sortOrder, setSortOrder] = useState(sortable?.default || 'ASC');\n const { state, sendMessage } = useContext(tableContext);\n return (\n {\n sendMessage('sort', { column, sortOrder });\n setSortOrder(sortOrder === 'ASC' ? 'DESC' : 'ASC');\n } : null}\n className={state.maxHeight ? 'fixed-header' : ''}\n >\n {column.name}\n {column.sortable && (\n \n \n \n )}\n \n );\n}\n\nHeaderCell.propTypes = {\n column: PropTypes.instanceOf(Object),\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { HeaderCell } from './header-cell';\nimport { tableContext } from '../tableContext';\n\nexport function Header({ allRowsSelected }) {\n const { state, sendMessage } = useContext(tableContext);\n const { columns, selectable } = state;\n\n const generateHeaders = () => columns.map((column) => (\n \n ));\n\n const generateSelectable = () => {\n const Component = selectable.type;\n return (\n \n {selectable?.allowSelectAll ? (\n
    \n {\n const isCheckbox = v?.target?.tagName.toLowerCase() === 'input' && v?.target?.type.toLowerCase() === 'checkbox';\n sendMessage('header.selectAll.change', isCheckbox ? v.target.checked : Boolean(v));\n }}\n >\n {selectable.values?.value}\n \n
    \n ) : (\n selectable.name || 'Select'\n )}\n \n );\n };\n\n return (\n \n \n {selectable?.position === 'LEFT' && generateSelectable()}\n {generateHeaders()}\n {selectable?.position === 'RIGHT' && generateSelectable()}\n \n \n );\n}\n\nHeader.propTypes = {\n allRowsSelected: PropTypes.bool,\n};\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * - Checkboxes are used when a user needs to select one or more values from a series of options.\n * - They can be also be used as a binary toggle but consider radio instead.\n * - Can be used with Formik respectively (FormikCheckbox)\n */\nclass Checkbox extends Component {\n getCssClasses() {\n const {\n inline, disabled, readOnly, theme = '', wrapperClassName = '',\n } = this.props;\n\n const cssClasses = [wrapperClassName];\n\n cssClasses.push('tyk-checkbox');\n\n if (inline) {\n cssClasses.push('tyk-checkbox--inline');\n }\n\n if (theme.trim()) {\n cssClasses.push(...theme.split(' ').map((t) => `tyk-checkbox--theme-${t}`));\n }\n\n if (disabled || readOnly) {\n cssClasses.push('tyk-checkbox--is-disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n displayError() {\n const { error } = this.props;\n if (!error) return null;\n\n return (\n

    \n {error}\n

    \n );\n }\n\n displayNote() {\n const { note } = this.props;\n if (!note) return null;\n\n return (\n

    \n {note}\n

    \n );\n }\n\n render() {\n const {\n input, value, label, ...rest\n } = this.props;\n return (\n \n
    \n \n {this.displayNote()}\n {this.displayError()}\n
    \n \n );\n }\n}\n\nCheckbox.propTypes = {\n /** Disable a checkbox */\n disabled: PropTypes.bool,\n /** Readonly prop behaves the same as disable on checkboxes */\n readOnly: PropTypes.bool,\n /** Align checkbox with in same line with other elements */\n inline: PropTypes.bool,\n /** Set a theme for checkbox */\n theme: PropTypes.string,\n /** Set an error state for checkbox if boolean will show just icon without message */\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Adds additional information under the checkbox element */\n note: PropTypes.string,\n input: PropTypes.instanceOf(Object),\n /** Adds a label to checkbox */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Set a name for checkbox */\n name: PropTypes.string,\n /** Set initial value for checkbox */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Make checkbox checked by default */\n checked: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Callback function executed on change of checkbox */\n onChange: PropTypes.func,\n /** CSS classes added to the wrapper of the component */\n wrapperClassName: PropTypes.string,\n};\n\nexport default Checkbox;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nexport function Cell({ col, row }) {\n if (!row.values[col.id]) {\n return ; // eslint-disable-line jsx-a11y/control-has-associated-label\n }\n\n if (col.type === 'string') {\n return (\n \n {row.values[col.id]?.value}\n \n );\n }\n const Component = col.type;\n return (\n \n \n {row.values[col.id].children ? row.values[col.id].children : null}\n
    \n \n );\n}\n\nCell.propTypes = {\n col: PropTypes.instanceOf(Object),\n row: PropTypes.instanceOf(Object),\n index: PropTypes.number,\n};\n","import React, { useCallback, useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport Checkbox from '../../../form/components/Checkbox';\nimport { Cell } from './cell';\nimport { tableContext } from '../tableContext';\n\nexport function Row({ row, index }) {\n const { state, sendMessage } = useContext(tableContext);\n const { columns, selectable } = state;\n\n const SelectableCheckbox = useCallback(() => (\n // eslint-disable-next-line jsx-a11y/control-has-associated-label\n \n sendMessage('row.selected', { index, selected: v.target.checked })}\n />\n \n ), [row.selected, index]);\n\n return (\n \n {selectable && selectable.position === 'LEFT' && SelectableCheckbox()}\n {columns.map((col) => (\n \n ))}\n {selectable && selectable.position === 'RIGHT' && SelectableCheckbox()}\n \n );\n}\n\nRow.propTypes = {\n row: PropTypes.instanceOf(Object),\n index: PropTypes.number,\n};\n","import React, { useContext } from 'react';\nimport { tableContext } from '../tableContext';\nimport { Row } from './row';\n\nexport function Body() {\n const { state } = useContext(tableContext);\n const { rows } = state;\n\n return (\n \n {\n // eslint-disable-next-line react/no-array-index-key\n rows.map((row, i) => )\n }\n \n );\n}\n","import React, {\n useCallback, useEffect, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport Message from '../Message';\nimport Pagination from '../../form/components/Pagination';\nimport Loader from '../Loader';\nimport InfiniteScroller from '../InfiniteScroller';\nimport { Header } from './js/header';\nimport { Body } from './js/body';\nimport { tableContext } from './tableContext';\n\n/**\n * This is tyk's table component used to render a data in a tabular view.\n * See the example configuration object below to understand how to hydrate the table component\n */\n\nfunction Table({\n value, onChange, noDataMessage, loading, infiniteScrolling,\n}) {\n const [state, setState] = useState(null);\n const [onChangeMsg, setOnChangeMsg] = useState('api');\n const itemsListRef = useRef(null);\n const sortRows = useCallback((col, sortOrder) => {\n setState((prevState) => ({\n ...prevState,\n sort: {\n order: sortOrder,\n col,\n },\n }));\n }, []);\n\n const selectAllRows = useCallback((selected) => {\n setState((prevState) => ({\n ...prevState,\n rows: prevState.rows.map((row) => ({ ...row, selected })),\n }));\n }, []);\n\n const selectRow = useCallback(({ index, selected }) => {\n setState((prevState) => ({\n ...prevState,\n rows: [\n ...prevState.rows.slice(0, index),\n { ...prevState.rows[index], selected },\n ...prevState.rows.slice(index + 1),\n ],\n }));\n }, []);\n\n const setPagination = useCallback((data) => {\n setState((prevState) => ({\n ...prevState,\n pagination: {\n ...prevState.pagination,\n current: data + 1,\n },\n }));\n }, []);\n\n const api = {\n getState: () => state,\n setState: (newState) => setState(newState),\n };\n\n const sendMessage = useCallback((message, data) => {\n setOnChangeMsg(message);\n if (message === 'sort') {\n sortRows(data.column.id, data.sortOrder);\n }\n\n if (message === 'header.selectAll.change') {\n selectAllRows(data);\n }\n\n if (message === 'row.selected') {\n selectRow(data);\n }\n\n if (message === 'pagination.change') {\n setPagination(data);\n }\n }, [sortRows, selectAllRows, selectRow, setPagination]);\n\n const context = useMemo(() => ({ state, sendMessage }), [state, sendMessage]);\n\n useEffect(() => setState(value), [value]);\n useEffect(() => {\n if (onChange) {\n onChange(onChangeMsg, state, api);\n }\n setOnChangeMsg('api');\n }, [state]);\n\n if (!state) {\n return ;\n }\n\n if (state.rows <= 0) {\n return {noDataMessage || 'No Data Available'};\n }\n\n const getTable = () => (\n \n
    selected)} />\n \n
    \n );\n\n return (\n \n
    \n {\n loading && \n }\n {\n infiniteScrolling && state.pagination\n ? (\n state.pagination.current}\n loadMore={(num) => sendMessage('pagination.change', num)}\n pageNumber={state.pagination.current - 1}\n initialLoad={false}\n >\n { getTable() }\n \n )\n : getTable()\n }\n
    \n {state.pagination && !infiniteScrolling && (\n
    \n sendMessage('pagination.change', num)}\n />\n
    \n )}\n
    \n );\n}\n\nTable.propTypes = {\n /** Configuration object used to render the component */\n value: PropTypes.shape({\n /** Configuration for table columns */\n columns: PropTypes.arrayOf(PropTypes.shape({\n /** Unique id of the column */\n id: PropTypes.string.isRequired,\n /** Name of the column */\n name: PropTypes.string,\n /** Type of column, String by default */\n type: PropTypes.oneOfType([\n /** Just renders cell data of type strings */\n PropTypes.string,\n /** Render cell of elements (eg. Input / Button) */\n PropTypes.element,\n /** Render a custom function/component */\n PropTypes.func,\n ]),\n sortable: PropTypes.oneOfType([\n /** Make Column sortable */\n PropTypes.bool,\n /** Configure sorting behaviour */\n PropTypes.shape({\n /** Set default sorting direction ASC / DESC */\n default: PropTypes.string,\n }),\n ]),\n })),\n /** Configuration for table rows */\n rows: PropTypes.arrayOf(PropTypes.shape({})),\n /** Configuration to make table rows selectable */\n selectable: PropTypes.shape({}),\n /** Renders pagination for table if the object is missing / empty no pagination is rendered. */\n pagination: PropTypes.shape({}),\n /** Sets maximum height for table container. */\n maxHeight: PropTypes.string,\n /** Styling for the table container. */\n styling: PropTypes.shape({\n /** It's recommended to add styles to a class and pass the class in this object */\n className: PropTypes.string,\n }),\n }).isRequired,\n /** Callback executed with message and value when there are changes on table */\n onChange: PropTypes.func,\n /** Renders a component with the given message when `config.rows` is empty */\n noDataMessage: PropTypes.string,\n /** Show placeholder loader */\n loading: PropTypes.bool,\n /** Adds infinite scroller on page and calls `onChange` with `pagination.change` message */\n infiniteScrolling: PropTypes.bool,\n};\n\nTable.defaultProps = {\n loading: false,\n infiniteScrolling: false,\n noDataMessage: 'No Data Available',\n onChange: null,\n};\n\nexport default Table;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Column({\n children,\n align,\n className,\n offset,\n size,\n ...rest\n}) {\n const classes = [\n 'tyk-col',\n className,\n align && `tyk-col--align-${align}`,\n ...size.split(' ').map((cSize) => `tyk-col--${cSize}`),\n ...(offset ? offset.split(' ') : []).map((cOffset) => `tyk-col--offset-${cOffset}`),\n ].filter(Boolean).join(' ');\n\n return (\n
    \n { children }\n
    \n );\n}\n\nColumn.propTypes = {\n /**\n * This property describes how the column element will be aligned vertically\n * within a Row: bottom, center, top\n */\n align: PropTypes.string,\n /** Css classes that can be passed to the column element */\n className: PropTypes.string,\n /**\n * Specifies the size of the column within a Row (values must be between 1 - 12)\n */\n size: PropTypes.string.isRequired,\n /**\n * Specifies the left gap a column can have within a Row (values must be between 1 - 12)\n */\n offset: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n ]),\n};\n\nexport default Column;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/** Row component which must be always present as a wrapper for Columns */\nfunction Row({\n className,\n nogutters,\n children,\n ...rest\n}) {\n const classes = [\n 'tyk-row',\n className,\n nogutters && 'no-gutters',\n nogutters && 'tyk-row--gutterless',\n ].filter(Boolean).join(' ');\n\n return (\n
    \n { children }\n
    \n );\n}\n\nRow.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n /** Css classes that can be passed to the Row element */\n className: PropTypes.string,\n /** Removes all the spaces between column */\n nogutters: PropTypes.bool,\n};\n\nexport default Row;\n","import { createContext } from 'react';\n\nexport const DropdownContext = createContext();\n","import React, { cloneElement, useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { DropdownContext } from '../dropdown-context';\nimport Icon from '../../../../components/Icon';\n\nfunction DropdownItem(props) {\n const {\n customdropdownitem,\n children,\n eventKey,\n href,\n target,\n title,\n onClick,\n } = props;\n const dropdownItemCLick = useCallback((dropdownContext, itemProps) => {\n dropdownContext.onSelectItem(eventKey, itemProps);\n\n if (onClick) onClick(eventKey);\n }, []);\n\n return (\n \n {\n (dropdownContext) => (\n dropdownItemCLick(dropdownContext, props)}\n onKeyUp={() => {}}\n >\n {\n customdropdownitem\n ? cloneElement(customdropdownitem, {})\n : (\n \n {\n eventKey\n && dropdownContext.selectedItem === eventKey\n && dropdownContext.showCheckmark\n ? \n : null\n }\n \n {title || children}\n \n \n )\n }\n \n )\n }\n \n );\n}\n\nDropdownItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n customdropdownitem: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n ]),\n eventKey: PropTypes.string,\n href: PropTypes.string,\n target: PropTypes.string,\n onClick: PropTypes.func,\n title: PropTypes.string,\n};\n\nexport default DropdownItem;\n","import React, {\n Component, createRef,\n} from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport DropdownItem from './js/DropdownItem';\nimport Button from '../../../components/Button';\nimport { DropdownContext } from './dropdown-context';\n\nclass Dropdown extends Component {\n static isElemInRightView(el, dropdownWidth) {\n const windowWidth = window.innerWidth;\n const offset = el.getBoundingClientRect();\n const elemRight = offset.left + dropdownWidth;\n\n return elemRight <= windowWidth;\n }\n\n static isElemInBottomView(el, dropdownHeight) {\n const windowHeight = window.innerHeight;\n const offset = el.getBoundingClientRect();\n const elHeight = el.clientHeight;\n const elemBottom = offset.top + elHeight + dropdownHeight;\n\n return elemBottom <= windowHeight;\n }\n\n constructor(props) {\n super(props);\n\n const {\n selectedItem,\n open,\n } = this.props;\n\n this.state = {\n opened: open,\n selectedItem: selectedItem || null,\n };\n\n this.dropdownRef = createRef();\n this.dropdownListRef = createRef();\n this.dropdownButtonRef = createRef();\n this.onSelectItem = this.onSelectItem.bind(this);\n this.toggleDropdown = this.toggleDropdown.bind(this);\n this.handleClickOutside = this.handleClickOutside.bind(this);\n }\n\n componentDidMount() {\n document.addEventListener('mousedown', this.handleClickOutside);\n\n if (this.dropdownListRef.current) {\n this.getStyles();\n }\n }\n\n componentDidUpdate(prevProps) {\n const {\n open,\n } = this.props;\n const {\n opened,\n } = this.state;\n\n if (this.dropdownListRef.current) {\n this.getStyles();\n }\n\n if (\n !prevProps.open\n && open === true\n && !opened\n ) {\n this.toggleDropdown();\n }\n\n if (\n prevProps.open\n && open === false\n && opened\n ) {\n this.closeDropdown();\n }\n }\n\n componentWillUnmount() {\n document.removeEventListener('mousedown', this.handleClickOutside);\n }\n\n handleClickOutside(event) {\n if (\n this.dropdownListRef.current && !this.dropdownListRef.current.contains(event.target)\n && this.dropdownRef.current && !this.dropdownRef.current.contains(event.target)\n ) {\n this.closeDropdown();\n }\n }\n\n onSelectItem(itemId, itemProps) {\n const { closeOnSelect, onSelect } = this.props;\n const changes = {\n selectedItem: itemId,\n selectedItemProps: itemProps,\n };\n\n if (closeOnSelect) {\n changes.opened = false;\n }\n\n this.setState(changes);\n\n if (onSelect && typeof onSelect === 'function') {\n onSelect(itemId);\n }\n }\n\n getStyles() {\n const {\n display,\n position,\n offset,\n } = this.props;\n\n const dropdownEl = this.dropdownListRef.current;\n\n if (offset) {\n dropdownEl.style.top = `${offset.top}`;\n dropdownEl.style.left = `${offset.left}`;\n return;\n }\n\n const scrollTop = Math.max(\n document.documentElement.scrollTop,\n document.body.scrollTop,\n window.scrollY,\n );\n const el = this.dropdownRef.current;\n const elHeight = el.clientHeight;\n const dropdownHeight = dropdownEl ? dropdownEl.clientHeight : 0;\n const dropdownWidth = dropdownEl ? dropdownEl.clientWidth : 0;\n const offsetPosition = el.getBoundingClientRect();\n const { left, top } = offsetPosition;\n let customTop = 0;\n let customLeft = left;\n\n // calculate top position, depending on the element position on the page\n if (Dropdown.isElemInBottomView(el, dropdownHeight)) {\n customTop = top + scrollTop + elHeight;\n } else {\n customTop = top + scrollTop - dropdownHeight - 5;\n }\n\n if (!Dropdown.isElemInRightView(el, dropdownWidth)) {\n customLeft = left + el.clientWidth - dropdownWidth;\n }\n\n if (position !== 'relative') {\n dropdownEl.style.top = `${customTop}px`;\n if (display !== 'block') {\n dropdownEl.style.left = `${customLeft}px`;\n }\n }\n if (display !== 'block') {\n dropdownEl.style.minWidth = `${this.dropdownButtonRef.current.clientWidth}px`;\n }\n }\n\n getWrapperCssClasses() {\n const {\n btnGroup,\n btnGroupSize,\n className,\n btnTheme,\n wrapperClassName = '',\n } = this.props;\n let cssClasses = [wrapperClassName, 'tyk-dropdown'];\n\n cssClasses.push(`theme-${btnTheme || 'default'}`);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n if (btnGroup) {\n cssClasses.push('tyk-button-group');\n cssClasses.push(btnGroupSize ? `tyk-button-group--${btnGroupSize}` : 'tyk-button-group--md');\n }\n\n return cssClasses.join(' ');\n }\n\n getCssClasses() {\n const {\n opened,\n } = this.state;\n const {\n hasCustomContent,\n display,\n listclassnames,\n position,\n maxHeight,\n } = this.props;\n let cssClasses = ['tyk-dropdown-menu', 'tyk-dropdown'];\n\n if (maxHeight) {\n cssClasses.push('tyk-dropdown--scrollable');\n }\n\n if (opened) {\n cssClasses.push('opened');\n }\n\n if (listclassnames) {\n cssClasses = cssClasses.concat(listclassnames.split(' '));\n }\n\n if (display) {\n cssClasses.push('tyk-dropdown--block');\n }\n\n if (hasCustomContent) {\n cssClasses.push('tyk-dropdown--custom');\n }\n\n if (position === 'relative') {\n cssClasses.push('tyk-dropdown--relative');\n }\n\n return cssClasses.join(' ');\n }\n\n getBtnTitle() {\n const { btnTitle, stopButtonTextChange } = this.props;\n const { selectedItemProps } = this.state;\n\n if (!stopButtonTextChange && selectedItemProps?.title) {\n return selectedItemProps.title;\n }\n\n return btnTitle;\n }\n\n closeDropdown() {\n const { onClose } = this.props;\n\n this.setState({\n opened: false,\n }, () => {\n if (onClose) {\n onClose();\n }\n });\n }\n\n toggleDropdown() {\n const {\n opened,\n } = this.state;\n if (opened) {\n this.closeDropdown();\n\n return;\n }\n\n this.setState({\n opened: true,\n });\n }\n\n render() {\n const {\n appendTo,\n btnClassName,\n btnSize,\n customBtnTitle,\n hasCustomContent,\n btnTheme,\n children,\n label,\n showDropdownIcon,\n showTriggerButton,\n showCheckmark,\n disabled = false,\n maxHeight,\n } = this.props;\n const {\n selectedItem,\n opened,\n } = this.state;\n const DropdownWrapperTag = hasCustomContent ? 'div' : 'ul';\n return (\n \n {\n label\n ? (\n \n )\n : null\n }\n {\n showTriggerButton\n ? (\n \n { customBtnTitle || this.getBtnTitle() }\n \n )\n : null\n }\n {\n opened\n ? ReactDOM.createPortal(\n \n {\n opened\n ? (\n \n {\n (typeof children === 'function')\n ? children({\n closeDropdown: this.closeDropdown.bind(this),\n })\n : children\n }\n \n )\n : null\n }\n ,\n document.querySelector(appendTo || 'body'),\n )\n : null\n }\n \n );\n }\n}\n\nDropdown.propTypes = {\n appendTo: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n PropTypes.func,\n ]),\n closeOnSelect: PropTypes.bool,\n btnClassName: PropTypes.string,\n btnSize: PropTypes.string,\n btnGroupSize: PropTypes.string,\n btnTheme: PropTypes.string,\n btnTitle: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n customBtnTitle: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n btnGroup: PropTypes.bool,\n className: PropTypes.string,\n display: PropTypes.string,\n disabled: PropTypes.bool,\n hasCustomContent: PropTypes.bool,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n listclassnames: PropTypes.string,\n onClose: PropTypes.func,\n onSelect: PropTypes.func,\n open: PropTypes.bool,\n offset: PropTypes.instanceOf(Object),\n position: PropTypes.string,\n selectedItem: PropTypes.string,\n showDropdownIcon: PropTypes.bool,\n stopButtonTextChange: PropTypes.bool,\n showTriggerButton: PropTypes.bool,\n showCheckmark: PropTypes.bool,\n maxHeight: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\n\nDropdown.defaultProps = {\n closeOnSelect: false,\n showDropdownIcon: true,\n showTriggerButton: true,\n showCheckmark: true,\n open: false,\n};\n\nDropdown.Item = DropdownItem;\n\nexport default Dropdown;\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../../../components/Button';\nimport ButtonGroup from '../../../components/ButtonGroup';\n\nfunction DropdownTrigger({\n title,\n theme = 'primary',\n splitTrigger,\n toggle,\n onTriggerClick,\n value,\n}, ref) {\n return (\n !splitTrigger ? (\n \n {title}\n \n ) : (\n \n onTriggerClick(value) }}\n >\n {title}\n \n \n \n )\n );\n}\n\nDropdownTrigger.propTypes = {\n title: PropTypes.string,\n theme: PropTypes.string,\n splitTrigger: PropTypes.bool,\n toggle: PropTypes.func,\n dropdownRef: PropTypes.shape({\n current: PropTypes.instanceOf(Element),\n }).isRequired,\n onTriggerClick: PropTypes.func,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n};\n\nexport default forwardRef(DropdownTrigger);\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport FloatingContainer from '../../../components/FloatingContainer';\nimport List from '../../../components/List';\n\nfunction DropdownListWrapper({\n children,\n element,\n maxWidth,\n}, ref) {\n return (\n \n \n { children }\n \n \n );\n}\n\nDropdownListWrapper.propTypes = {\n element: PropTypes.shape({\n current: PropTypes.instanceOf(Element),\n }),\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n maxWidth: PropTypes.string,\n};\n\nexport default forwardRef(DropdownListWrapper);\n","import { createContext, useContext } from 'react';\n\nexport const DropdownContext = createContext();\n\nfunction useDropdowContext() {\n return useContext(DropdownContext);\n}\n\nexport default useDropdowContext;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport List from '../../../components/List';\nimport useDropdowContext from './useDrodpownContext';\n\nfunction DropdownItem({\n children,\n value,\n}) {\n const { onChange, value: dropdownValue } = useDropdowContext();\n return (\n \n onChange(value) }}\n >\n { children }\n \n \n );\n}\n\nDropdownItem.propTypes = {\n children: PropTypes.node,\n // eslint-disable-next-line\n value: PropTypes.any,\n};\n\nexport default DropdownItem;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport useDropdown from './useDropdown';\nimport DropdownTrigger from './DropdownTrigger';\nimport DropdownListWrapper from './DropdownListWrapper';\nimport DropdownItem from './DropdowItem';\nimport { DropdownContext } from './useDrodpownContext';\n\nfunction Dropdown2({\n children,\n title,\n theme,\n splitTrigger,\n onChange,\n value,\n setSelectedValueAsTitle,\n maxWidth,\n onTriggerClick,\n}) {\n const {\n isOpen,\n toggle,\n dropdownRef,\n dropdownListRef,\n } = useDropdown({\n splitTrigger,\n });\n\n const contextValue = useMemo(() => ({\n onChange,\n value,\n }), [onChange, value]);\n\n return (\n \n \n {isOpen && (\n \n { children }\n \n )}\n \n );\n}\n\nDropdown2.propTypes = {\n /** Title of the dropdown. It is being displayed in the Drodpown trigger */\n title: PropTypes.string,\n /** Theme of the dropdown trigger */\n theme: PropTypes.string,\n children: PropTypes.node,\n /** If true, the dropdown trigger will be split into two buttons.\n * one with the dropdown title and one for the arrow */\n splitTrigger: PropTypes.bool,\n /** Callback function called when a dropdown item is selected */\n onChange: PropTypes.func,\n /** Value of the selected dropdown item */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n /** If true, the selected value will be displayed in the dropdown trigger */\n setSelectedValueAsTitle: PropTypes.bool,\n /** sets the maximum width of the dropdown list menu */\n maxWidth: PropTypes.string,\n /** this function is being called when splitTrigger is true,\n * and receives as parameter the current value of the dropdown */\n onTriggerClick: PropTypes.func,\n};\n\nDropdown2.Item = DropdownItem;\n\nexport default Dropdown2;\n","import {\n useState, useRef, useCallback, useEffect,\n} from 'react';\n\nconst useDropdown = ({\n splitTrigger,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const dropdownRef = useRef(null);\n const dropdownListRef = useRef(null);\n\n const toggle = () => setIsOpen(!isOpen);\n\n const handleOutsideClick = useCallback((e) => {\n const triggerElement = !splitTrigger\n ? dropdownRef.current\n : dropdownRef.current.querySelector('.dropdown__trigger');\n if (\n isOpen\n && !triggerElement.contains(e.target)\n && !dropdownListRef.current.contains(e.target)\n ) {\n setIsOpen(false);\n }\n }, [isOpen]);\n\n useEffect(() => {\n document.addEventListener('mousedown', handleOutsideClick);\n return () => {\n document.removeEventListener('mousedown', handleOutsideClick);\n };\n }, [handleOutsideClick]);\n\n return {\n isOpen,\n toggle,\n dropdownRef,\n dropdownListRef,\n };\n};\n\nexport default useDropdown;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-ace\");","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport ace from 'ace-builds/src-noconflict/ace';\nimport AceEditor from 'react-ace';\nimport 'ace-builds/src-noconflict/mode-javascript';\nimport 'ace-builds/src-noconflict/mode-golang';\nimport 'ace-builds/src-noconflict/mode-python';\nimport 'ace-builds/src-noconflict/mode-css';\nimport 'ace-builds/src-noconflict/mode-json';\nimport 'ace-builds/src-noconflict/mode-xml';\nimport 'ace-builds/src-noconflict/mode-jsx';\nimport 'ace-builds/src-noconflict/ext-searchbox';\nimport 'ace-builds/src-noconflict/ext-beautify';\nimport 'ace-builds/src-noconflict/theme-github';\nimport jsonWorker from 'ace-builds/src-noconflict/worker-json';\n\nace.config.setModuleUrl('ace/mode/json_worker', jsonWorker);\n\nfunction CodeEditor(props) {\n const {\n disabled,\n readOnly,\n disableValidation,\n id,\n error,\n label,\n labelwidth,\n note,\n onBlur,\n onChange,\n theme,\n value,\n setOptions,\n wrapperClassName,\n } = props;\n const classes = [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const finalSetOptions = {\n ...setOptions,\n ...disableValidation && { useWorker: false },\n };\n\n const getCodeEditorError = useCallback(() => (\n error && error !== 'true' && error !== 'false'\n ? (\n

    \n {error}\n

    \n )\n : null\n ), [error]);\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const getNonLabelWidth = useCallback(() => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n }, [labelwidth]);\n\n const handleOnChange = useCallback((newValue) => {\n if (onChange) onChange(newValue);\n }, [onChange]);\n\n const handleOnBlur = useCallback(() => {\n if (onBlur) onBlur(value);\n }, [onBlur, value]);\n\n return (\n
    \n {\n label\n ? \n : null\n }\n
    \n {\n // eslint-disable-next-line\n editorInstance.container.style.resize = 'both';\n // mouseup = css resize end\n document.addEventListener('mouseup', () => (\n editorInstance.resize()\n ));\n }}\n setOptions={finalSetOptions}\n />\n {\n note\n ?

    { note }

    \n : null\n }\n { getCodeEditorError() }\n
    \n
    \n );\n}\n\nCodeEditor.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n disableValidation: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n mode: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n theme: PropTypes.string,\n value: PropTypes.string,\n setOptions: PropTypes.instanceOf(Object),\n wrapperClassName: PropTypes.string,\n};\n\nexport default CodeEditor;\n","import React, { Component, createRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\nimport Button from '../../../components/Button';\n\nconst getStateSelectedValues = (multiple, tags, value) => {\n if (!value) {\n return (multiple || tags) ? [] : null;\n }\n\n return value;\n};\n\nclass Combobox extends Component {\n static closeList() {\n return {\n cursor: -1,\n opened: false,\n };\n }\n\n static openList() {\n return {\n opened: true,\n };\n }\n\n static filterByName(itemValue, inputValue) {\n return itemValue.name.toLowerCase().indexOf(inputValue) > -1;\n }\n\n constructor(props) {\n super(props);\n const {\n multiple,\n tags,\n value,\n } = props;\n\n this.state = {\n cursor: -1,\n opened: false,\n width: 50,\n initialValue: value,\n stateSelectedValues: getStateSelectedValues(multiple, tags, value),\n searchText: '',\n tags,\n };\n\n this.comboboxRef = createRef();\n this.valuesListRef = createRef();\n this.inputRef = createRef();\n this.textRef = createRef();\n\n this.focusInput = this.focusInput.bind(this);\n this.onKeyUp = this.onKeyUp.bind(this);\n Combobox.openList = Combobox.openList.bind(this);\n this.handleClickOutside = this.handleClickOutside.bind(this);\n this.handleItemsNavigation = this.handleItemsNavigation.bind(this);\n this.handleComboboxDropdownClick = this.handleComboboxDropdownClick.bind(this);\n this.handleListItemClick = this.handleListItemClick.bind(this);\n this.handlePillRemoveClick = this.handlePillRemoveClick.bind(this);\n this.manageSelectedTags = this.manageSelectedTags.bind(this);\n }\n\n componentDidMount() {\n const { tags } = this.props;\n\n if (tags) {\n this.setInputWidth();\n }\n\n this.bindEvents();\n }\n\n componentWillUnmount() {\n this.unBindEvents();\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n if (\n JSON.stringify(nextProps.value) !== JSON.stringify(prevState.initialValue)\n || nextProps.tags !== prevState.tags\n ) {\n return {\n initialValue: nextProps.value,\n stateSelectedValues: getStateSelectedValues(\n nextProps.multiple,\n nextProps.tags,\n nextProps.value,\n ),\n tags: nextProps.tags,\n };\n }\n\n return null;\n }\n\n handleItemsNavigation(e) {\n const { tags } = this.props;\n if (['ArrowDown', 'ArrowUp'].indexOf(e.key) === -1) {\n return;\n }\n\n const { cursor } = this.state;\n const filteredValues = this.filterValues();\n let cursorNext;\n\n e.preventDefault();\n\n if (e.key === 'ArrowDown') {\n if (cursor === -1 || cursor === filteredValues.length - 1) {\n cursorNext = 0;\n } else if (cursor < filteredValues.length - 1) {\n cursorNext = cursor + 1;\n }\n }\n\n if (e.key === 'ArrowUp') {\n if (cursor > 0) {\n cursorNext = cursor - 1;\n } else {\n cursorNext = filteredValues.length - 1;\n }\n }\n\n if (this.valuesListRef.current && cursorNext > 4) {\n const scrollTop = (cursorNext - 4) * 38;\n\n this.valuesListRef.current.scrollTop = (!tags) ? 60 + scrollTop : scrollTop;\n } else if (this.valuesListRef.current) {\n this.valuesListRef.current.scrollTop = 0;\n }\n\n this.setState((previousState) => ({\n ...previousState,\n opened: true,\n cursor: cursorNext,\n }));\n }\n\n handleListItemClick(index) {\n // eslint-disable-next-line react/destructuring-assignment\n const clickedValue = this.props.values[index];\n if (clickedValue.disabled) return;\n\n const { multiple, tags } = this.props;\n\n const methodName = (tags) ? 'manageSelectedTags' : 'manageSelectedValues';\n const tempState = { ...this.state, ...this[methodName](index) };\n\n this.setState((previousState) => {\n if (!multiple && !tags) {\n tempState.opened = false;\n }\n\n return { ...previousState, ...tempState };\n });\n }\n\n handlePillRemoveClick(index) {\n const { disabled } = this.props;\n\n if (disabled) {\n return;\n }\n\n const tempState = this.removeSelectedValue(index);\n\n this.setState((previousState) => ({ ...previousState, ...tempState }));\n }\n\n handleClickOutside(event) {\n if (\n this.valuesListRef.current && !this.valuesListRef.current.contains(event.target)\n && this.comboboxRef.current && !this.comboboxRef.current.contains(event.target)\n ) {\n this.setState((previousState) => ({ ...previousState, ...Combobox.closeList() }));\n }\n }\n\n handleComboboxDropdownClick() {\n const { disabled } = this.props;\n\n if (disabled) {\n return;\n }\n\n this.setState((previousState) => ({ ...previousState, ...Combobox.openList() }));\n }\n\n onKeyUp(e) {\n const { tags, allowCustomValues } = this.props;\n const { cursor, opened } = this.state;\n const filteredValues = this.filterValues();\n let tempState = this.getSearchText();\n\n if (tags && e.key !== 'Escape') {\n tempState = { ...tempState, ...this.setInputWidth() };\n }\n\n if (e.key === 'Enter') {\n const methodName = (tags) ? 'manageSelectedTags' : 'manageSelectedValues';\n tempState = { ...tempState, ...this[methodName](cursor) };\n }\n\n if (allowCustomValues && e.key !== ' ' && tags) {\n tempState = { ...tempState, ...this.manageSelectedTags() };\n }\n\n if (\n !opened\n && this.inputRef.current.value\n && filteredValues?.length\n && e.key !== 'Escape'\n ) {\n tempState = { ...tempState, ...Combobox.openList() };\n }\n\n if (e.key === 'Escape' && opened) {\n tempState = { ...tempState, ...Combobox.closeList() };\n }\n\n if (opened && filteredValues && !filteredValues.length) {\n tempState = { ...tempState, ...Combobox.closeList() };\n }\n\n this.setState((previousState) => ({ ...previousState, ...tempState }));\n }\n\n getLabelStyles() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n getNonLabelWidth() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n setInputWidth() {\n return {\n width: 50 + this.textRef.current.offsetWidth,\n };\n }\n\n getSelectedIndex(value) {\n const { stateSelectedValues } = this.state;\n let position = -1;\n\n if (Array.isArray(stateSelectedValues)) {\n stateSelectedValues.forEach((item, index) => {\n if (item.id === value.id) {\n position = index;\n }\n });\n } else if (stateSelectedValues) {\n if (stateSelectedValues.id === value.id) {\n position = 0;\n }\n }\n\n return position;\n }\n\n getSearchText() {\n return {\n searchText: this.inputRef.current.value,\n };\n }\n\n getListItemCssClasses(value, index) {\n const cssClasses = [];\n const {\n cursor,\n } = this.state;\n\n if (cursor === index) {\n cssClasses.push('active');\n }\n\n if (value.disabled) {\n cssClasses.push('disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n getComboboxListCssClass() {\n const { opened } = this.state;\n const { tags, theme } = this.props;\n const themes = theme ? theme.split(' ') : [];\n\n const cssClasses = ['tyk-combobox__list'];\n\n if (opened) {\n cssClasses.push('tyk-combobox__list--opened');\n }\n\n if (tags) {\n cssClasses.push('tyk-combobox__list--has-tags');\n }\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n return cssClasses.join(' ');\n }\n\n getCssClasses() {\n const {\n error, disabled, theme, labelwidth,\n } = this.props;\n const cssClasses = ['tyk-form-group', 'tyk-combobox'];\n const themes = theme ? theme.split(' ') : [];\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (disabled) {\n cssClasses.push('disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n getInputError() {\n const { error } = this.props;\n\n return (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null;\n }\n\n getStyles() {\n const { scrollTop } = document.documentElement;\n const el = this.comboboxRef.current;\n const elHeight = el.offsetHeight;\n const elWidth = el.offsetWidth;\n\n const offset = el.getBoundingClientRect();\n const { left } = offset;\n let top = 0;\n\n top = offset.top + scrollTop + elHeight;\n\n return {\n top: `${top - 1}px`,\n left: `${left}px`,\n width: `${elWidth}px`,\n };\n }\n\n getComboboxDisplayData() {\n const { stateSelectedValues } = this.state;\n const { multiple, placeholder, values } = this.props;\n\n if (!stateSelectedValues) {\n return placeholder;\n }\n\n if (stateSelectedValues && Array.isArray(stateSelectedValues) && !stateSelectedValues.length) {\n return placeholder;\n }\n\n if (stateSelectedValues && !Array.isArray(stateSelectedValues) && !stateSelectedValues.id) {\n return placeholder;\n }\n\n if (Array.isArray(stateSelectedValues) && multiple) {\n return stateSelectedValues.reduce((prevValue, value, index) => prevValue + value.name + ((index !== stateSelectedValues.length - 1) ? ', ' : ''), '');\n }\n\n if (\n values?.length\n && !Array.isArray(stateSelectedValues) && !stateSelectedValues.name\n ) {\n return values.filter((value) => value.id === stateSelectedValues.id)[0].name;\n }\n\n return stateSelectedValues.name;\n }\n\n manageSelectedTags(index) {\n const { max, allowCustomValues } = this.props;\n const { stateSelectedValues } = this.state;\n const filteredValues = this.filterValues();\n const value = { id: this.inputRef.current.value, name: this.inputRef.current.value };\n\n if (allowCustomValues === false && index === -1) {\n return null;\n }\n\n const tempValue = filteredValues[index] || value;\n const selectedIndex = this.getSelectedIndex(tempValue);\n let selectedValues = {};\n\n this.inputRef.current.value = '';\n\n if (selectedIndex > -1 && this.isInInitialValues(tempValue)) {\n selectedValues = this.removeSelectedValue(selectedIndex);\n } else if (selectedIndex === -1) {\n if (max && stateSelectedValues.length >= max) {\n return selectedValues;\n }\n selectedValues = this.addSelectedValue(tempValue);\n }\n\n return selectedValues;\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n manageSelectedValues(index) {\n const { stateSelectedValues } = this.state;\n const { multiple, onChange, max } = this.props;\n const filteredValues = this.filterValues();\n const tempSelectedValues = filteredValues[index];\n let selectedValues;\n const selectedIndex = this.getSelectedIndex(tempSelectedValues);\n\n if (tempSelectedValues && multiple) {\n if (selectedIndex > -1) {\n selectedValues = this.removeSelectedValue(selectedIndex);\n } else {\n if (max && stateSelectedValues.length >= max) {\n return selectedValues;\n }\n selectedValues = this.addSelectedValue(filteredValues[index]);\n }\n } else {\n selectedValues = {\n stateSelectedValues: (selectedIndex === -1) ? tempSelectedValues : { id: null },\n };\n\n onChange?.((selectedIndex === -1) ? tempSelectedValues : null);\n }\n\n return selectedValues;\n }\n\n removeSelectedValue(index) {\n const { stateSelectedValues } = this.state;\n const { onChange } = this.props;\n const tempStateSelectedValues = JSON.parse(JSON.stringify(stateSelectedValues));\n\n tempStateSelectedValues.splice(index, 1);\n\n if (onChange && typeof onChange === 'function') {\n onChange(tempStateSelectedValues.length ? tempStateSelectedValues : null);\n }\n\n return {\n stateSelectedValues: tempStateSelectedValues,\n searchText: '',\n };\n }\n\n addSelectedValue(value) {\n const { stateSelectedValues } = this.state;\n const { onChange } = this.props;\n const tempStateSelectedValues = JSON.parse(JSON.stringify(stateSelectedValues));\n\n tempStateSelectedValues.push(value);\n\n if (onChange && typeof onChange === 'function') {\n onChange(tempStateSelectedValues.length ? tempStateSelectedValues : null);\n }\n\n return {\n stateSelectedValues: tempStateSelectedValues,\n searchText: '',\n };\n }\n\n isInInitialValues(value) {\n const { values } = this.props;\n let ok = false;\n\n values.forEach((item) => {\n if (value.id === item.id) {\n ok = true;\n }\n });\n\n return ok;\n }\n\n filterValues() {\n const { values, searchItem } = this.props;\n\n if (!this.inputRef.current) {\n return values;\n }\n\n const arr = values\n .filter(\n (value) => (searchItem\n ? searchItem(value, this.inputRef.current.value.toLowerCase())\n : Combobox.filterByName(value, this.inputRef.current.value.toLowerCase())),\n );\n\n return arr;\n }\n\n bindEvents() {\n document.addEventListener('mousedown', this.handleClickOutside);\n }\n\n unBindEvents() {\n document.removeEventListener('mousedown', this.handleClickOutside);\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n reset() {\n const { multiple, tags, value } = this.props;\n\n this.setState({\n stateSelectedValues: getStateSelectedValues(multiple, tags, value),\n });\n }\n\n focusInput() {\n if (this.inputRef.current) {\n this.inputRef.current.focus();\n }\n }\n\n renderInput(filteredValues) {\n const {\n disabled,\n tags,\n max,\n placeholder,\n } = this.props;\n const {\n width, searchText, stateSelectedValues,\n } = this.state;\n\n return (\n {}}\n ref={this.comboboxRef}\n >\n {\n tags\n ? (\n <>\n {\n (stateSelectedValues || []).map((value, index) => (\n
  • \n \n \n \n { value.name }\n
  • \n ))\n }\n \n {(max === undefined || stateSelectedValues?.length < max) && (\n <>\n {\n if (e.key === 'Enter') {\n e.preventDefault();\n }\n this.handleItemsNavigation(e);\n }}\n onKeyUp={this.onKeyUp}\n placeholder={(!stateSelectedValues?.length) ? placeholder : ''}\n ref={this.inputRef}\n style={{\n width: (!stateSelectedValues?.length) ? '100%' : `${width}px`,\n }}\n />\n \n { searchText }\n \n \n )}\n {filteredValues.length > 0 && (\n \n )}\n \n \n )\n : (\n {}}\n >\n { this.getComboboxDisplayData() }\n \n \n )\n }\n \n );\n }\n\n renderDropdown(filteredValues) {\n const { tags } = this.props;\n const { opened } = this.state;\n return (\n \n {\n !tags\n ? (\n
  • \n \n
  • \n )\n : null\n }\n {\n filteredValues\n .map((value, index) => (\n {}}\n key={value.id}\n >\n {\n (this.getSelectedIndex(value) > -1)\n ? \n : null\n }\n \n {' '}\n { value.name }\n \n \n ))\n }\n \n );\n }\n\n render() {\n const {\n CustomListComponent,\n id,\n label,\n note,\n } = this.props;\n const { opened } = this.state;\n\n const filteredValues = this.filterValues();\n\n return (\n <>\n
    \n {\n label\n ? \n : null\n }\n \n {this.renderInput(filteredValues)}\n {\n note\n ?

    { note }

    \n : null\n }\n { this.getInputError() }\n
    \n \n {\n // eslint-disable-next-line no-nested-ternary\n !CustomListComponent\n ? opened && filteredValues.length\n ? ReactDOM.createPortal(\n this.renderDropdown(filteredValues),\n document.querySelector('body'),\n )\n : null\n : (\n \n )\n }\n \n );\n }\n}\n\nCombobox.propTypes = {\n allowCustomValues: PropTypes.bool,\n CustomListComponent: PropTypes.elementType,\n searchItem: PropTypes.func,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n id: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n multiple: PropTypes.bool,\n max: PropTypes.number,\n note: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n tags: PropTypes.bool,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.instanceOf(Object),\n PropTypes.instanceOf(Array),\n ]),\n values: PropTypes.instanceOf(Array),\n};\n\nCombobox.defaultProps = {\n allowCustomValues: true,\n};\n\nexport default Combobox;\n","import React, { useState, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from '../../../../components/Icon';\nimport Pill from '../../../../components/Pill';\n\nfunction Value(props) {\n const {\n value,\n max,\n tags,\n tagSeparators,\n addTagOnBlur,\n placeholder,\n disabled,\n renderValue,\n valueOverflow,\n focus,\n onMessage: sendMessage,\n readOnly,\n } = props;\n const INPUT_MIN_WIDTH = 60;\n const inputRef = useRef(null);\n const dummyElementRef = useRef(null);\n const [inputValue, setInputValue] = useState('');\n const [inputWidth, setInputWidth] = useState(`${INPUT_MIN_WIDTH + 10}px`);\n\n function entryFieldOnChange(val) {\n if (tagSeparators.some((ts) => val.slice(-1) === ts)) return;\n const dummy = dummyElementRef.current;\n dummy.innerHTML = val;\n setInputWidth(`${Math.max(dummy.clientWidth, INPUT_MIN_WIDTH) + 10}px`);\n setInputValue(val);\n sendMessage('tag.input.change', val);\n }\n\n function entryFieldOnKeyDown(key, val) {\n if (!tags) return;\n if (val === '' && key === 'Backspace' && value.length) {\n sendMessage('tag.remove', value[value.length - 1].id);\n return;\n }\n if (key === 'Enter') {\n sendMessage('tag.input.enter', val);\n entryFieldOnChange('');\n return;\n }\n if (key === 'ArrowUp') {\n sendMessage('tag.input.arrowUp');\n return;\n }\n if (key === 'ArrowDown') {\n sendMessage('tag.input.arrowDown');\n return;\n }\n if (key === 'Escape') {\n sendMessage('tag.input.escape');\n return;\n }\n if (tagSeparators.includes(key)) {\n sendMessage('tag.add', val);\n entryFieldOnChange('');\n }\n }\n\n function triggerAction() {\n sendMessage('text-value.click');\n }\n\n function textValue(val, isPlaceholder = false) {\n if (readOnly) return val || '-';\n\n const classes = [\n 'tyk-combobox2__text-value',\n `overflow-${valueOverflow}`,\n isPlaceholder && 'is-placeholder',\n ].filter(Boolean).join(' ');\n return (\n \n {val}\n \n );\n }\n\n function renderCustomValue(v) {\n const config = {\n tags,\n tagSeparators,\n placeholder,\n disabled,\n renderValue,\n sendMessage,\n };\n return renderValue(v, config);\n }\n\n function renderTag(v) {\n if (renderValue) return renderCustomValue(v);\n\n return (\n \n {\n e.stopPropagation();\n sendMessage('tag.remove', v.id);\n }}\n aria-label=\"remove\"\n >\n \n \n { v.name }\n \n );\n }\n\n function getTags() {\n return (\n <>\n {value.map(renderTag)}\n {value.length < max && (\n <>\n entryFieldOnChange(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') e.preventDefault();\n entryFieldOnKeyDown(e.key, e.target.value);\n }}\n onFocus={() => sendMessage('tag.input.focus')}\n onBlur={(e) => {\n sendMessage('tag.input.blur', e.target.value);\n if (addTagOnBlur) entryFieldOnChange('');\n }}\n />\n \n \n )}\n \n );\n }\n\n useEffect(() => {\n if (focus && inputRef.current) inputRef.current.focus();\n }, [focus]);\n\n if (readOnly) {\n return
    {textValue(value.map((v) => v.name).join(', '))}
    ;\n }\n\n if (tags) return getTags();\n if (renderValue) {\n return value.length === 0 ? textValue(placeholder, true) : value.map(renderCustomValue);\n }\n return value.length === 0\n ? textValue(placeholder, true)\n : textValue(value.map((v) => v.name).join(', '));\n}\n\nValue.propTypes = {\n value: PropTypes.instanceOf(Array),\n max: PropTypes.number,\n tags: PropTypes.instanceOf(Array),\n tagSeparators: PropTypes.instanceOf(Array),\n addTagOnBlur: PropTypes.bool,\n placeholder: PropTypes.string,\n disabled: PropTypes.bool,\n renderValue: PropTypes.func,\n valueOverflow: PropTypes.string,\n focus: PropTypes.bool,\n onMessage: PropTypes.func,\n readOnly: PropTypes.bool,\n};\n\nexport default Value;\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from '../../../../components/Icon';\n\nfunction List(props) {\n const {\n listRef,\n tags,\n values,\n searchValue,\n activeItem,\n onMessage: sendMessage,\n renderListItem,\n selectAll,\n showSearch,\n } = props;\n\n useEffect(() => {\n if (!listRef.current) return;\n const activeElement = listRef.current.querySelector('.active');\n if (activeElement) activeElement.scrollIntoView({ block: 'end' });\n }, [activeItem]);\n\n function renderItem(item) {\n if (renderListItem) {\n return renderListItem(item, {\n tags, searchValue, sendMessage, activeItem,\n });\n }\n\n return (\n !item.disabled && sendMessage('value.select', { item })}\n onKeyDown={() => {}}\n >\n {item.selected && }\n {item.name}\n \n );\n }\n\n function renderSelectAllOption() {\n const isAllSelected = values.every((v) => v.selected);\n const isNoneSelected = values.every((v) => !v.selected);\n const label = selectAll?.label ?? 'Select All';\n const mode = selectAll?.mode ?? 'select';\n const show = selectAll?.show ?? 'always';\n const render = selectAll?.render;\n\n const shouldRenderOption = show === 'always' || (mode === 'select' ? !isAllSelected : !isNoneSelected);\n if (!shouldRenderOption) return null;\n\n if (render) {\n return render({\n label,\n mode,\n show,\n isAllSelected,\n isNoneSelected,\n }, sendMessage);\n }\n return (\n sendMessage('value.select-all', mode === 'select' ? !isAllSelected : isNoneSelected)}\n onKeyDown={() => {}}\n >\n {(mode === 'select' ? isAllSelected : isNoneSelected) && }\n {label}\n \n );\n }\n\n return (\n <>\n {!tags && showSearch && (\n
    \n sendMessage('search.change', e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Escape') sendMessage('search.escape');\n if (e.key === 'ArrowUp') sendMessage('search.arrowUp');\n if (e.key === 'ArrowDown') sendMessage('search.arrowDown');\n if (e.key === 'Enter') sendMessage('search.enter');\n }}\n />\n
    \n )}\n {values.length > 0 && (\n
      \n {Boolean(selectAll) && (\n renderSelectAllOption()\n )}\n {values.map(renderItem)}\n
    \n )}\n \n );\n}\n\nList.propTypes = {\n listRef: PropTypes.instanceOf(Object),\n tags: PropTypes.bool,\n values: PropTypes.instanceOf(Array),\n searchValue: PropTypes.string,\n activeItem: PropTypes.instanceOf(Object),\n onMessage: PropTypes.func,\n renderListItem: PropTypes.func,\n selectAll: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n mode: PropTypes.oneOf(['select', 'unselect']),\n show: PropTypes.oneOf(['always', 'notSameState']),\n render: PropTypes.func,\n }),\n ]),\n showSearch: PropTypes.bool,\n};\n\nexport default List;\n","import React, {\n useCallback, useEffect, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\nimport FloatingContainer from '../../../components/FloatingContainer';\n\nimport Value from './js/Value';\nimport List from './js/List';\n\n/**\n * Dropdown-like component that can display selected values as regular text,\n * tags, or in a custom way.\n * You can select values from a list or type in new ones.\n */\nfunction Combobox2({\n value: propValue,\n values: propValues = [],\n valueOverflow = 'single',\n label = '',\n labelwidth,\n tags = false,\n tagSeparators = [' ', 'Enter'],\n addTagOnBlur = false,\n max: maxProp,\n multiple = false,\n placeholder = '',\n theme,\n note = '',\n error = '',\n disabled = false,\n readOnly = false,\n allowCustomValues = true,\n searchItem: matchItemFn,\n renderValue,\n renderListItem,\n renderList: renderListProp,\n CustomListComponent,\n onBeforeChange = () => true,\n onChange = () => {},\n floatingContainerConfig,\n expandMode,\n infiniteScrollerConfig,\n displayDropdownTrigger = true,\n selectAll,\n closeOnSelect,\n showSearch = false,\n required = false,\n validateOnChange = () => {},\n wrapperClassName = '',\n ...restProps\n}) {\n const max = useMemo(\n () => (multiple ? Infinity : maxProp || (tags ? Infinity : 1)),\n [multiple, maxProp, tags],\n );\n const renderList = CustomListComponent\n ? (values, { sendMessage }) => (\n sendMessage('value.select', { item: values[index] })}\n />\n )\n : renderListProp;\n\n const rootRef = useRef(null);\n const comboboxControlRef = useRef(null);\n const dropdownRef = useRef(null);\n const listRef = useRef(null);\n\n const [value, setValue] = useState(getValueFromProp(propValue, propValues));\n const [values, setValues] = useState(propValues.map((v) => normalizeValue(v)));\n const [searchValue, setSearchValue] = useState('');\n const [activeItem, setActiveItem] = useState(null);\n const [isOpened, setIsOpened] = useState(false);\n const [valuesExpanded, setValuesExpanded] = useState(false);\n const [localValidationError, setLocalValidationError] = useState('');\n\n function getThemeClasses() {\n const themes = theme ? theme.split(' ') : [];\n return themes.map((iTheme) => `tyk-form-group--${iTheme}`);\n }\n\n function getCssClasses() {\n return [\n wrapperClassName,\n 'tyk-form-group',\n 'tyk-combobox2',\n ...getThemeClasses(),\n (error || localValidationError) && 'has-error',\n labelwidth && 'tyk-form-group--label-has-width',\n disabled && 'disabled',\n expandMode && 'is-expand-mode',\n ].filter(Boolean).join(' ');\n }\n\n function getFilteredValues() {\n const defaultFn = (v, s) => v?.name?.toLowerCase()?.includes(s);\n const fn = matchItemFn || defaultFn;\n const filteredValues = values.filter((v) => fn(v, searchValue.toLowerCase()));\n return filteredValues;\n }\n\n function openDropdown() {\n setIsOpened(true);\n }\n\n function closeDropdown() {\n setIsOpened(false);\n if (!tags) updateSearchValue('');\n setActiveItem(null);\n }\n\n function updateSearchValue(newSearchValue) {\n setSearchValue(newSearchValue);\n if (activeItem && getFilteredValues().every((fv) => fv.id !== activeItem.id)) {\n setActiveItem(null);\n }\n if (newSearchValue && !isOpened) openDropdown();\n }\n\n function isValidValue(newValues, lastValue) {\n const localError = validateOnChange(newValues, lastValue);\n setLocalValidationError(localError);\n return localError === undefined;\n }\n\n function updateValue(newValues) {\n setValue(newValues);\n onChange(max === 1 && !tags ? (newValues[0] || null) : newValues);\n }\n\n function addTag(val) {\n if (!val) return;\n if (value.length >= max) return;\n if (value.some(({ name }) => name === val)) return;\n\n const listValueIndex = values.findIndex((lv) => lv.name === val);\n let newValue;\n let finalValue = [...value];\n let selectedValues;\n\n if (listValueIndex === -1) {\n if (allowCustomValues) {\n newValue = { id: val, name: val };\n finalValue = [...value, newValue];\n }\n } else {\n selectedValues = [\n ...values.slice(0, listValueIndex),\n { ...values[listValueIndex], selected: true },\n ...values.slice(listValueIndex + 1),\n ];\n newValue = values[listValueIndex];\n finalValue = [...value, values[listValueIndex]];\n }\n\n if (isValidValue(finalValue, newValue) && onBeforeChange(value, finalValue)) {\n if (selectedValues) {\n setValues(selectedValues);\n }\n updateValue(finalValue);\n }\n }\n\n function removeTag(id) {\n if (required && max === 1) return;\n\n const listValueIndex = values.findIndex((lv) => lv.id === id);\n const newValue = value.filter((v) => v.id !== id);\n\n if (!onBeforeChange(value, newValue)) return;\n\n if (listValueIndex !== -1) {\n setValues([\n ...values.slice(0, listValueIndex),\n { ...values[listValueIndex], selected: false },\n ...values.slice(listValueIndex + 1),\n ]);\n }\n updateValue(newValue);\n }\n\n function selectValue({ id }) {\n const val = values.find((v) => v.id === id);\n const valIndex = values.findIndex((v) => v.id === id);\n let finalValue = value;\n let selectedValues = values;\n\n if (val.selected) {\n if (!required || max !== 1) {\n finalValue = value.filter((v) => v.id !== val.id);\n selectedValues = values.with(valIndex, { ...val, selected: false });\n }\n } else if (value.length < max) {\n finalValue = [...value, val];\n selectedValues = values.with(valIndex, { ...val, selected: true });\n } else if (max === 1) {\n finalValue = [val];\n selectedValues = values.map((v) => ({ ...v, selected: v.id === val.id }));\n }\n\n if (isValidValue(finalValue, val) && onBeforeChange(value, finalValue)) {\n updateValue(finalValue);\n setValues(selectedValues);\n }\n\n if (max === 1 || closeOnSelect) {\n closeDropdown();\n }\n }\n\n function selectAllValues(selected) {\n if (values.length > max) return;\n const newValue = selected ? [...values] : [];\n\n if (!onBeforeChange(value, newValue)) return;\n\n updateValue(newValue);\n setValues(values.map((v) => ({ ...v, selected })));\n if (closeOnSelect) closeDropdown();\n }\n\n function moveUpActiveItem() {\n const visibleItems = getFilteredValues().filter((v) => !v.disabled);\n if (visibleItems.length === 0) return;\n if (activeItem === null || visibleItems.length === 1) {\n setActiveItem(visibleItems[visibleItems.length - 1]);\n return;\n }\n const activeIndex = visibleItems.findIndex((v) => v.id === activeItem.id);\n setActiveItem(visibleItems[activeIndex > 0 ? activeIndex - 1 : visibleItems.length - 1]);\n }\n\n function moveDownActiveItem() {\n const visibleItems = getFilteredValues().filter((v) => !v.disabled);\n if (visibleItems.length === 0) return;\n if (activeItem === null || visibleItems.length === 1) {\n setActiveItem(visibleItems[0]);\n return;\n }\n const activeIndex = visibleItems.findIndex((v) => v.id === activeItem.id);\n setActiveItem(visibleItems[activeIndex < visibleItems.length - 1 ? activeIndex + 1 : 0]);\n }\n\n function executeTriggerAction() {\n if (expandMode) {\n setValuesExpanded(!valuesExpanded);\n } else {\n openDropdown();\n }\n }\n\n function handleDocumentClick(e) {\n const isClickInside = rootRef.current?.contains(e.target)\n || dropdownRef.current?.contains(e.target);\n if (!isClickInside) {\n closeDropdown();\n }\n }\n\n function onClickCapture(e) {\n if (!disabled) return;\n if (!expandMode) {\n e.stopPropagation();\n return;\n }\n\n const triggerElement = rootRef.current.querySelector('.tyk-combobox2__values-container-trigger');\n if (!triggerElement) return;\n\n const isClickOnTrigger = triggerElement === e.target || triggerElement.contains(e.target);\n if (!isClickOnTrigger) e.stopPropagation();\n }\n\n function onTagMessage(message, data) {\n if (message === 'add') {\n addTag(data);\n updateSearchValue('');\n }\n\n if (message === 'remove') removeTag(data);\n\n if (message === 'input.change') updateSearchValue(data);\n\n if (message === 'input.enter') {\n if (activeItem) {\n selectValue(activeItem);\n } else if (tagSeparators.includes('Enter')) {\n addTag(data);\n updateSearchValue('');\n }\n }\n\n if (message === 'input.arrowUp') {\n openDropdown();\n moveUpActiveItem();\n }\n\n if (message === 'input.arrowDown') {\n openDropdown();\n moveDownActiveItem();\n }\n\n if (message === 'input.escape') closeDropdown();\n\n if (message === 'input.blur' && addTagOnBlur) {\n addTag(data);\n updateSearchValue('');\n }\n\n if (message === 'input.focus') {\n openDropdown();\n }\n }\n\n const onMessage = useCallback((message, data) => {\n if (message.startsWith('tag.')) onTagMessage(message.slice(4), data);\n\n if (message === 'value.select') selectValue(data.item);\n\n if (message === 'value.select-all') selectAllValues(data);\n\n if (message === 'text-value.click') openDropdown();\n\n if (message === 'search.change') updateSearchValue(data);\n\n if (message === 'search.escape') closeDropdown();\n\n if (message === 'search.arrowUp') moveUpActiveItem();\n\n if (message === 'search.arrowDown') moveDownActiveItem();\n\n if (message === 'search.enter') {\n if (activeItem) selectValue(activeItem);\n }\n }, [\n onTagMessage,\n selectValue,\n selectAllValues,\n openDropdown,\n updateSearchValue,\n closeDropdown,\n moveUpActiveItem,\n moveDownActiveItem,\n ]);\n\n const renderIcon = useCallback(\n () => (expandMode\n ? \n : \n ),\n [expandMode, valuesExpanded],\n );\n\n useEffect(() => {\n window.addEventListener('click', handleDocumentClick, true);\n return () => window.removeEventListener('click', handleDocumentClick, true);\n }, []);\n\n useEffect(() => {\n if (propValues.length) {\n const newValues = propValues.map((v) => ({\n ...normalizeValue(v),\n selected: value.some((sv) => sv.id === v.id),\n }));\n setValues(newValues);\n setValue((val) => val.map((v) => newValues.find((nv) => nv.id === v.id) || v));\n } else if (values.length) {\n setValues([]);\n }\n }, [propValues]);\n\n useEffect(() => {\n const newValue = getValueFromProp(propValue, values);\n setValue(newValue);\n setValues((vals) => vals.map((v) => ({\n ...normalizeValue(v),\n selected: newValue.some((nv) => nv.id === v.id),\n })));\n }, [propValue]);\n\n useEffect(() => {\n if (!expandMode) return () => {};\n\n const valuesElement = comboboxControlRef.current.querySelector('.tyk-combobox2__current-values');\n const updateScroll = () => {\n valuesElement.scrollTop = valuesElement.scrollHeight;\n };\n /* eslint-disable-next-line no-undef */\n const mobserver = new MutationObserver(updateScroll);\n const robserver = new ResizeObserver(updateScroll);\n\n mobserver.observe(valuesElement, { attributes: true, childList: true, subtree: true });\n robserver.observe(valuesElement);\n\n return () => {\n mobserver.disconnect();\n robserver.disconnect();\n };\n });\n\n const filteredValues = getFilteredValues();\n const currentValuesClasses = [\n 'tyk-combobox2__current-values',\n expandMode && 'expand-mode',\n `tyk-combobox2__current-values--${valuesExpanded ? 'expanded' : 'collapsed'}`,\n ].join(' ');\n\n return (\n \n {label && (\n \n )}\n {!readOnly && (\n \n
    \n \n \n
    \n {displayDropdownTrigger && (\n \n {renderIcon()}\n \n )}\n \n {isOpened && (!tags || filteredValues.length > 0) && (\n \n {renderList ? (\n renderList(filteredValues, {\n tags,\n searchValue,\n activeItem,\n listRef,\n sendMessage: onMessage,\n })\n ) : (\n \n )}\n \n )}\n {note && (\n

    {note}

    \n )}\n {((error && error !== 'true' && error !== 'false') || Boolean(localValidationError)) && (\n

    {error || localValidationError}

    \n )}\n \n )}\n {readOnly && (\n
    \n \n
    \n )}\n \n );\n}\n\nCombobox2.propTypes = {\n /** If `true` it allows entering values that are not in the list. */\n allowCustomValues: PropTypes.bool,\n /** Alias for `renderList`\n * used for backwards compatibility with the old Combobox component. */\n CustomListComponent: PropTypes.elementType,\n /** A function used for filtering elements displayed in the list when typing in. */\n searchItem: PropTypes.func,\n /** A custom component that will be used to display a value. */\n renderValue: PropTypes.func,\n /** A custom component that will be used to display an item in the dropdown list. */\n renderListItem: PropTypes.func,\n /** A custom component that will be used to display the entire content of the dropdown. */\n renderList: PropTypes.func,\n disabled: PropTypes.bool,\n /** hides the UI form element and displayes just the value as text */\n readOnly: PropTypes.bool,\n error: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n /** The maximum number of values that can be selected/added. */\n max: PropTypes.number,\n /** Shorthand for max=Infinity */\n multiple: PropTypes.bool,\n note: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n /**\n * Callback called before changing the value of the component.\n * The value change will succeed only if the callback's return value is truthy.\n * The callback is called with two arguments: 1) the previous value, 2) the next value */\n onBeforeChange: PropTypes.func,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n /** Enables the display of values as `Pill` components that can be\n * removed without opening the dropdown. */\n tags: PropTypes.bool,\n /** A list of characters that will trigger the creation of a tag when typed. */\n tagSeparators: PropTypes.arrayOf(PropTypes.string),\n /** If set to true a tag will be created whenever the component loses focus\n * and there is something typed in. */\n addTagOnBlur: PropTypes.bool,\n theme: PropTypes.string,\n /** The value of the component. It can be a string, an array,\n * or an object with an `id` property. */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n ]),\n /** An array of selectable values. */\n values: PropTypes.instanceOf(Array),\n /** Config object passed to the internal floating container component. */\n floatingContainerConfig: PropTypes.instanceOf(Object),\n /** If set to `single` it will display the values on a single line\n * with an ellipsis at the end. */\n valueOverflow: PropTypes.oneOf(['single', 'multiple']),\n /**\n * If set to `true` whenever the user clicks on the dropdown trigger\n * the selected values container\n * will expand to show all selected values instead of opening the dropdown.\n */\n expandMode: PropTypes.bool,\n /** Config object passed to the internal infinite scroller component. */\n infiniteScrollerConfig: PropTypes.instanceOf(Object),\n /** Toggles the display of the dropdown trigger. */\n displayDropdownTrigger: PropTypes.bool,\n /**\n * If a boolean it will toggle the select all functionality from the dropdown.\n * It can also be an object with the shape `{ label, show, mode, render }`.\n * label - A string displayed as the select all option\n * show - It can be one of `['always', 'notSameState']`.\n * `always` means the option will always be displayed.\n * `notSameState` means it will be displayed only if the list items are\n * not all with the same state (depending on the `mode` value)\n * mode - It can be one of `['select', 'unselect']` and makes sense only\n * when the `show` property is `notSameState`\n * `select` means the select all option will only be displayed if not all\n * items are selected\n * `unselect` means the option will be displayed if no items are selected\n */\n selectAll: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n mode: PropTypes.oneOf(['select', 'unselect']),\n show: PropTypes.oneOf(['always', 'notSameState']),\n render: PropTypes.func,\n }),\n ]),\n /** It `true` the dropdown will close after selecting a value. */\n closeOnSelect: PropTypes.bool,\n /** Toggles the display of the search input from the dropdown. */\n showSearch: PropTypes.bool,\n /** If it is required and can only select one value once you have something\n * selected you will not be able to deselect */\n required: PropTypes.bool,\n /** Validates newly added value before adding it to the selected values.\n * Returns an error string in case of error otherwise it returns undefined\n */\n validateOnChange: PropTypes.func,\n wrapperClassName: PropTypes.string,\n};\n\nexport default Combobox2;\n\nfunction normalizeValue(value, values) {\n let v = value;\n if (typeof value === 'string') v = { id: value, name: value };\n else if (!value.hasOwnProperty('name')) v = { ...value, name: value.id }; // eslint-disable-line no-prototype-builtins\n if (!values) return v;\n const existingVal = values.find((ev) => ev.id === v.id);\n return existingVal ? { ...v, ...existingVal } : v;\n}\n\nfunction getValueFromProp(value, values) {\n if (!value) return [];\n if (Array.isArray(value)) return value.map((v) => normalizeValue(v, values));\n return [normalizeValue(value, values)];\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"flatpickr\");","import React, {\n useEffect, useState, useRef, useCallback,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport flatpickr from 'flatpickr';\n\nimport Icon from '../../../components/Icon';\nimport { usePrevious } from '../../../hooks';\n\nfunction DatePicker({\n children,\n disabled,\n readOnly = false,\n error,\n id,\n label,\n labelwidth,\n note,\n onClose,\n onChange,\n onOpen,\n theme,\n config = {},\n value,\n wrapperClassName = '',\n}) {\n const [pickerInstance, setPickerInstance] = useState(null);\n const dateRef = useRef(null);\n\n const prevValue = usePrevious(value);\n\n const hasValueChanged = useCallback((prevDate, currentDate) => {\n if (!prevDate) return true;\n if (!Array.isArray(currentDate)) return prevDate.getTime() !== currentDate.getTime();\n\n let diffDates = currentDate;\n\n if (prevDate && currentDate.length && prevDate.length) {\n diffDates = currentDate.filter((date, index) => date.getTime() !== prevDate[index].getTime());\n\n return diffDates.length > 0;\n }\n\n return currentDate.length > 0;\n }, []);\n\n const onDateChange = useCallback((dateValue) => {\n const finalValue = config.mode === 'range' ? dateValue : dateValue[0] || null;\n\n if (!onChange) return;\n\n if (config.mode === 'range') {\n if (finalValue.length === 2 && hasValueChanged(prevValue, finalValue)) {\n onChange(finalValue);\n }\n } else {\n onChange(finalValue);\n }\n }, [prevValue, onChange, hasValueChanged]);\n\n useEffect(() => {\n if (dateRef.current && !pickerInstance) {\n const instance = flatpickr(dateRef.current, {\n ...config, defaultDate: value, onChange: onDateChange, onClose, onOpen,\n });\n setPickerInstance(instance);\n }\n\n return () => {\n if (pickerInstance) {\n pickerInstance.destroy();\n }\n };\n }, [pickerInstance]);\n\n useEffect(() => {\n if (pickerInstance) {\n let tempValue = value;\n\n if (typeof value === 'string') {\n tempValue = new Date(value);\n } else if (Array.isArray(value)) {\n tempValue = value.map((date) => new Date(date));\n }\n\n if (hasValueChanged(prevValue, tempValue)) {\n pickerInstance.set('onChange', onDateChange);\n if (config.mode === 'range') {\n if (tempValue && tempValue.length === 2) {\n pickerInstance.setDate(tempValue, true);\n }\n } else {\n pickerInstance.setDate(tempValue, true);\n }\n }\n }\n }, [prevValue, value, pickerInstance]);\n\n const classes = [\n 'tyk-form-group',\n 'tyk-form-group--addon-right',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const getLabelStyles = () => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n };\n\n const getNonLabelWidth = () => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n };\n\n const openCalendar = useCallback(() => {\n if (!pickerInstance) return;\n\n pickerInstance.open();\n }, [pickerInstance]);\n\n const getInputError = () => (\n (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null\n );\n\n const getInputField = () => {\n let inputStyle = {};\n let addonStyle = {};\n\n if (config?.inline) {\n inputStyle = {\n height: 0,\n padding: 0,\n width: 0,\n visibility: 'hidden',\n };\n\n addonStyle = {\n display: 'none',\n };\n }\n return (\n <>\n \n {}}\n tabIndex={0}\n style={addonStyle}\n aria-label=\"show calendar\"\n >\n \n \n \n );\n };\n\n return (\n <>\n {\n children?.length\n ? children({ openCalendar, ref: dateRef })\n : (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n
    \n {getInputField()}\n
    \n {\n note\n ?

    { note }

    \n : null\n }\n { getInputError() }\n
    \n )}\n \n )\n }\n
    \n {readOnly && !value && '-'}\n {readOnly && value && flatpickr.formatDate(value, config.dateFormat || 'd/m/Y')}\n
    \n \n );\n}\n\nDatePicker.propTypes = {\n config: PropTypes.instanceOf(Object),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n PropTypes.func,\n ]),\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n onClose: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n onOpen: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n theme: PropTypes.string,\n error: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n PropTypes.string,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default DatePicker;\n","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n // eslint-disable-next-line no-console\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n case 'aaa':\n return dayPeriodEnumValue;\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, dirtyDelimiter);\n}\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\nexport default formatters;","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n var dateTimeFormat;\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n return result;\n};\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import defaultLocale from \"../../locale/en-US/index.js\";\nexport default defaultLocale;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n var originalDate = toDate(dirtyDate);\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n var formatter = formatters[firstCharacter];\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n return substring;\n }).join('');\n return result;\n}\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n if (!matched) {\n return input;\n }\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import React, { Component, createRef } from 'react';\nimport isEqual from 'react-fast-compare';\nimport PropTypes from 'prop-types';\n\nimport Column from '../../../../layout/Column';\nimport Row from '../../../../layout/Row';\nimport Button from '../../../../components/Button';\n\nclass EditableListForm extends Component {\n static getMainFormValue(components) {\n const mainFormValue = new Array(components.length);\n\n components.forEach((component, index) => {\n mainFormValue[index] = component.props.value || undefined;\n });\n\n return mainFormValue;\n }\n\n constructor(props) {\n super(props);\n const {\n components,\n } = props;\n\n this.submitButtonRef = createRef();\n this.handleOnChange = this.handleOnChange.bind(this);\n this.submitForm = this.submitForm.bind(this);\n\n this.state = {\n components,\n errors: {},\n mainError: null,\n mainFormValue: EditableListForm.getMainFormValue(components),\n refs: [],\n };\n }\n\n componentDidMount() {\n const {\n addValueOnFieldChange,\n getMainFormButtonWidth,\n } = this.props;\n this.createRefs();\n\n if (getMainFormButtonWidth) {\n getMainFormButtonWidth(\n !addValueOnFieldChange\n ? this.submitButtonRef.current.clientWidth\n : 0,\n );\n }\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const state = {};\n const {\n components: propsComponents,\n } = nextProps;\n\n const {\n components: stateComponents,\n } = prevState;\n if (\n !isEqual(propsComponents, stateComponents)\n && !isEqual(\n EditableListForm.getMainFormValue(propsComponents),\n EditableListForm.getMainFormValue(stateComponents),\n )\n ) {\n state.mainFormValue = EditableListForm.getMainFormValue(propsComponents);\n state.components = propsComponents;\n }\n\n return state;\n }\n\n handleOnChange(component, index, value) {\n const { addValueOnFieldChange } = this.props;\n let tempState = this.state;\n\n tempState = { ...tempState, ...this.validateValue(value, component.props) };\n\n if (!tempState.errors[component.props.name]) {\n tempState.mainFormValue[index] = value;\n\n if (component.props.onChange) {\n component.props.onChange(value);\n }\n }\n\n this.setState((previousState) => ({ ...previousState, ...tempState }), () => {\n if (addValueOnFieldChange) {\n this.submitForm();\n }\n });\n }\n\n getFormCssClasses() {\n const { noLabels } = this.props;\n const cssClasses = ['tyk-editable-list__form'];\n\n if (noLabels) {\n cssClasses.push('no-labels');\n }\n\n return cssClasses.join(' ');\n }\n\n getButtonClassName() {\n const { buttonStyle, displayType } = this.props;\n const cssClasses = [];\n\n if (buttonStyle) {\n cssClasses.push(buttonStyle);\n }\n\n if (displayType) {\n cssClasses.push(displayType);\n }\n\n return cssClasses.join(' ');\n }\n\n getComponentsError(component) {\n const {\n error,\n errors,\n mainError,\n } = this.state;\n\n if (error || mainError) {\n errors[component.props.name] = 'true';\n } else if (!(error || mainError) && errors[component.props.name] === 'true') {\n delete errors[component.props.name];\n }\n\n return errors[component.props.name] ? errors[component.props.name].toString() : undefined;\n }\n\n createRefs() {\n const { components } = this.props;\n const refs = [];\n\n components.forEach(() => {\n refs.push(createRef());\n });\n\n this.setState({\n refs,\n });\n }\n\n validateValue(value, props) {\n const { mainError, errors } = this.state;\n const { error, errorPersist } = this.props;\n\n const validatorsNames = props.validate ? Object.keys(props.validate) : [];\n // if there is a general form error don't take field errors into consideration\n const tempState = {\n errors: (error || mainError) ? {} : { ...errors },\n };\n let ok = true;\n\n // if the error should stay after changing fields values don't take actions\n if (errorPersist) {\n return tempState;\n }\n\n // validate each field from the form\n for (const validatorName of validatorsNames) {\n const validator = props.validate[validatorName];\n if (validator(value)) {\n tempState.errors[props.name] = props.validationmessages[validatorName];\n ok = false;\n break;\n }\n }\n\n // if the field is ok delete its error\n if (ok) {\n delete tempState.errors[props.name];\n }\n\n tempState.mainError = null;\n\n return tempState;\n }\n\n hasMainFormErrors(errors) {\n const { components, errorPersist } = this.props;\n const { mainFormValue } = this.state;\n const tempState = {\n errors: { ...errors },\n };\n\n if (errorPersist && mainFormValue.indexOf(undefined) === -1) {\n return false;\n }\n\n if (Object.keys(tempState.errors).length > 0) {\n return true;\n }\n\n components.forEach((component, index) => {\n tempState.errors = {\n ...tempState.errors,\n ...this.validateValue(mainFormValue[index], component.props).errors,\n };\n });\n\n return Object.keys(tempState.errors).length > 0;\n }\n\n resetForm() {\n const { refs } = this.state;\n const {\n components,\n } = this.props;\n\n refs.forEach((ref) => {\n if (ref.current?.reset) {\n ref.current.reset();\n }\n });\n\n this.setState({\n errors: {},\n mainError: null,\n mainFormValue: EditableListForm.getMainFormValue(components),\n });\n }\n\n showMainError(error) {\n this.setState({\n mainError: error,\n });\n }\n\n submitForm() {\n const { errors, mainFormValue } = this.state;\n const {\n errorPersist, onSubmit, validate, validationmessage,\n } = this.props;\n\n if (errorPersist) {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n\n if (\n Object.keys(errors).length === 0\n && (onSubmit && typeof onSubmit === 'function')\n ) {\n if (validate) {\n if (validate(mainFormValue)) {\n this.showMainError(validationmessage);\n } else {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n } else {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n }\n }\n\n render() {\n const {\n addValueOnFieldChange, components, buttonName, disabled, displayType, error,\n } = this.props;\n const {\n mainError, refs, errors,\n } = this.state;\n\n return (\n
    \n
    \n \n {\n components.map((component, index) => {\n const ComponentName = component.name;\n console.log('ComponentName', ComponentName);\n const {\n onChange, value, ...rest\n } = component.props;\n\n return (\n \n \n \n );\n })\n }\n \n {\n !addValueOnFieldChange\n ? (\n \n \n { buttonName || 'ADD' }\n \n \n )\n : null\n }\n
    \n {\n error || mainError\n ? (\n
    \n

    \n { error || mainError }\n

    \n
    \n )\n : null\n }\n
    \n );\n }\n}\n\nEditableListForm.propTypes = {\n addValueOnFieldChange: PropTypes.bool,\n noLabels: PropTypes.bool,\n buttonName: PropTypes.string,\n buttonStyle: PropTypes.string,\n components: PropTypes.instanceOf(Array),\n displayType: PropTypes.string,\n disabled: PropTypes.bool,\n getMainFormButtonWidth: PropTypes.func,\n error: PropTypes.string,\n errorPersist: PropTypes.bool,\n onSubmit: PropTypes.func,\n validate: PropTypes.func,\n validationmessage: PropTypes.string,\n};\n\nexport default EditableListForm;\n","import React, { Component, createRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport format from 'date-fns/format';\nimport isDate from 'date-fns/isDate';\n\nimport EditableListForm from './js/EditableListForm';\nimport Column from '../../../layout/Column';\nimport Icon from '../../../components/Icon';\nimport Row from '../../../layout/Row';\n\nclass EditableList extends Component {\n static getItemListValue(itemValue) {\n let tempValue = null;\n\n if (typeof itemValue === 'string') {\n tempValue = itemValue;\n }\n\n if (Object.prototype.toString.call(itemValue) === '[object Object]') {\n tempValue = itemValue.name;\n }\n\n if (isDate(itemValue)) {\n tempValue = format(itemValue, 'dd/MM/yyyy');\n }\n\n return tempValue;\n }\n\n static getListItemCssClass(displayType) {\n const cssClasses = [];\n\n if (displayType === 'inline') {\n cssClasses.push('tyk-editable-list-item--inline');\n }\n\n return cssClasses.join(' ');\n }\n\n constructor(props) {\n super(props);\n const {\n value,\n } = this.props;\n\n this.state = {\n initialValue: value || '',\n value: value || [],\n buttonWidth: 0,\n };\n\n this.startIndex = 1;\n\n this.handleFormSubmit = this.handleFormSubmit.bind(this);\n this.getMainFormButtonWidth = this.getMainFormButtonWidth.bind(this);\n this.dropdownListItemRef = createRef();\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const state = {};\n\n if (\n nextProps.value && JSON.stringify(nextProps.value)\n !== JSON.stringify(prevState.initialValue)\n ) {\n state.value = nextProps.value || [];\n state.initialValue = nextProps.value || '';\n }\n\n return state.value ? state : null;\n }\n\n handleFormSubmit(value) {\n const tempState = this.addValues(value);\n this.setState((previousState) => ({ ...previousState, ...tempState }), () => {\n this.triggerOnChange(tempState.value.length - 1, null, value);\n });\n }\n\n handleItemUpdate(index, value) {\n let prevValue;\n this.setState((previousState) => {\n const tempState = { ...previousState };\n prevValue = fromJS(tempState.value[index].value).toJS();\n tempState.value[index].value = value;\n tempState.value[index].editMode = false;\n\n return tempState;\n }, () => {\n this.triggerOnChange(index, prevValue, value);\n });\n }\n\n handleChildrenOnChange(index, value) {\n let prevValue;\n this.setState((previousState) => {\n const tempState = { ...previousState };\n prevValue = fromJS(tempState.value[index].children).toJS();\n tempState.value[index].children = value;\n\n return tempState;\n }, () => {\n this.triggerOnChange(index, prevValue, value);\n });\n }\n\n getListItemsCssClass(displayType) {\n const { config } = this.props;\n const cssClasses = ['tyk-editable-list-items'];\n\n cssClasses.push(config.displayType || 'table');\n\n if (displayType === 'inline') {\n cssClasses.push('tyk-editable-list-items--inline');\n }\n\n return cssClasses.join(' ');\n }\n\n getFormInputKey() {\n this.startIndex += 1;\n return this.startIndex;\n }\n\n // generate list item value's based on the display types\n // table, inline, list\n getListItemText(itemData) {\n const { config } = this.props;\n let value = null;\n\n switch (config.displayType) {\n case 'list':\n case 'inline': {\n const itemText = itemData.value.reduce((prevValue, itemValue, index) => {\n const tempValue = EditableList.getItemListValue(itemValue);\n let separator = ', ';\n\n if (index === itemData.value.length - 1) {\n separator = '';\n }\n\n return prevValue + tempValue + separator;\n }, '');\n\n value = itemText;\n\n break;\n }\n default:\n value = (\n \n {\n config.components.map((component, index) => (\n \n { EditableList.getItemListValue(itemData.value[index]) }\n \n ))\n }\n \n );\n\n break;\n }\n\n return value;\n }\n\n getMainFormButtonWidth(value) {\n this.setState({\n buttonWidth: value,\n });\n }\n\n setItemEditMode(index) {\n const newValues = this.closeListItems();\n\n this.setState((previousState) => {\n const tempState = { ...previousState };\n tempState.value = newValues;\n tempState.value[index].editMode = !tempState.value[index].editMode;\n\n return tempState;\n });\n }\n\n isInList(index, itemValue) {\n const { value } = this.state;\n let ok = false;\n\n value.forEach((item, itemIndex) => {\n if (JSON.stringify(item.value) === JSON.stringify(itemValue)) {\n if (index >= 0 && itemIndex === index) {\n ok = false;\n } else {\n ok = true;\n }\n }\n });\n\n return ok;\n }\n\n addValues(newValue) {\n const { value } = this.state;\n const { config } = this.props;\n const itemValue = {\n editMode: false,\n value: newValue,\n };\n const tempState = {\n value: value.slice(0),\n };\n\n if (config.children) {\n itemValue.children = [];\n }\n\n tempState.value.push(itemValue);\n\n return tempState;\n }\n\n removeListItem(index) {\n let removedItem;\n this.setState((previousState) => {\n const valueArr = previousState.value.slice(0);\n removedItem = valueArr.splice(index, 1);\n\n return {\n value: valueArr,\n };\n }, () => {\n this.triggerOnChange(index, removedItem, null);\n });\n }\n\n closeListItems() {\n const { value } = this.state;\n\n const newValues = value.map((itemValue) => {\n const tempItemValue = { ...itemValue };\n\n if (tempItemValue.editMode) {\n tempItemValue.editMode = false;\n return tempItemValue;\n }\n\n return tempItemValue;\n });\n\n return newValues;\n }\n\n triggerOnChange(index, prevValue, nextValue) {\n const { onChange } = this.props;\n const { value } = this.state;\n\n if (onChange && typeof onChange === 'function') {\n onChange(((value.length) ? value : null), index, prevValue, nextValue);\n }\n }\n\n genListItem(itemData, index) {\n const { config, disabled } = this.props;\n const { buttonWidth, value } = this.state;\n\n const clonedComponents = fromJS(config.components).toJS();\n\n itemData.value.forEach((itemValue, itemIndex) => {\n clonedComponents[itemIndex].props.value = itemValue;\n });\n\n return (\n \n \n {\n !itemData.editMode\n ? (\n <>\n { this.getListItemText(itemData, index) }\n \n \n \n \n \n \n \n \n \n )\n : (\n <>\n \n \n \n \n \n )\n }\n \n {\n config.children\n ? (\n \n )\n : null\n }\n \n );\n }\n\n genList() {\n const { config } = this.props;\n const { buttonWidth, value } = this.state;\n\n if (!value || value.length === 0) {\n return null;\n }\n\n return (\n <>\n {\n config.displayType === 'table' || !config.displayType\n ? (\n \n \n {\n config.components.map((component, index) => (\n \n { component.props.label }\n \n ))\n }\n \n \n )\n : null\n }\n
      \n {\n value.map((itemData, index) => this.genListItem(itemData, index))\n }\n
    \n \n );\n }\n\n render() {\n const {\n addValueOnFieldChange, config, error, disabled, label,\n } = this.props;\n const appendToElement = document.querySelector(config.appendTo) || document.querySelector('body');\n\n return (\n
    \n {\n label\n ? \n : null\n }\n \n {\n config.appendTo\n ? ReactDOM.createPortal(\n this.genList(),\n appendToElement,\n )\n : this.genList()\n }\n
    \n );\n }\n}\n\nEditableList.propTypes = {\n addValueOnFieldChange: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n config: PropTypes.instanceOf(Object),\n onChange: PropTypes.func,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n ]),\n};\n\nexport default EditableList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../../../components/Button';\n\nfunction Header({\n label, addButtonName, onAddRow, disabled, readOnly,\n}) {\n return (\n
    \n {\n label\n ? \n : null\n }\n {!disabled && !readOnly && (\n \n {addButtonName || 'Add'}\n \n )}\n
    \n );\n}\n\nHeader.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n onAddRow: PropTypes.func,\n addButtonName: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n};\n\nexport default Header;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ListHeader({\n fields,\n readOnly,\n}) {\n return (\n
  • \n {\n fields.map((field) => (\n \n {field?.props?.label}\n \n ))\n }\n
    Delete
    \n
  • \n );\n}\n\nListHeader.propTypes = {\n fields: PropTypes.instanceOf(Array),\n readOnly: PropTypes.bool,\n};\n\nexport default ListHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '../../../components/Button';\n\nfunction FieldsList({\n fields,\n disabled,\n readOnly,\n errors,\n components,\n onChange,\n onDelete,\n value,\n rowIndex,\n}) {\n return (\n
  • \n {\n components.map((Component, index) => {\n const field = fields[index];\n const tempField = typeof field === 'function' ? field(rowIndex, index) : field;\n return (\n \n \n \n );\n })\n }\n
    \n \n
    \n
  • \n );\n}\n\nFieldsList.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n rowIndex: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n fields: PropTypes.instanceOf(Array),\n errors: PropTypes.instanceOf(Array),\n components: PropTypes.instanceOf(Array),\n value: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n onDelete: PropTypes.func,\n};\n\nexport default FieldsList;\n","import React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Header from './Header';\nimport ListHeader from './ListHeader';\nimport FieldsList from './FieldsList';\nimport validateValues from './validate-values';\nimport withValidation from './with-validation';\n\nlet id = 1;\n/* eslint-disable-next-line */\nconst getUID = prefix => `${prefix}-${id++}`;\n\n/**\n * Editable list is a component, that lists rows of form elements (can have n elements on a row),\n * and stores the values of all the rows in an Array list\n */\nfunction EditableList2({\n addButtonName,\n disabled,\n readOnly,\n fields,\n label,\n error,\n value = [],\n onChange = () => {},\n hideOnEmpty = true,\n wrapperClassName = '',\n}) {\n const [internalErrors, setInternalErrors] = useState(null);\n\n const updateRowValue = (rowIndex, fieldIndex, componentValue, isValid) => {\n const tempValueArr = !value ? [] : [...value];\n\n if (!value) {\n tempValueArr[rowIndex] = [...new Array(fields.length)];\n tempValueArr[rowIndex][fieldIndex] = componentValue;\n } else {\n const tempValue = [...tempValueArr[rowIndex]];\n tempValue[fieldIndex] = componentValue;\n tempValueArr[rowIndex] = tempValue;\n tempValueArr[rowIndex].id = value[rowIndex].id;\n }\n\n if (internalErrors?.[rowIndex]?.[fieldIndex] && isValid) {\n const tempErrors = [...internalErrors];\n const tempFieldError = [...tempErrors[rowIndex]];\n tempFieldError[fieldIndex] = null;\n tempErrors[rowIndex] = tempFieldError;\n setInternalErrors(tempErrors);\n }\n onChange(tempValueArr);\n };\n\n const hasErrors = (errors) => Boolean(errors?.flat()?.filter(Boolean).length);\n\n const Components = useMemo(\n () => fields.map((field) => {\n const tempField = typeof field === 'function' ? field() : field;\n\n return withValidation(tempField?.component || null);\n }),\n [],\n );\n\n const onAddRow = () => {\n const errors = validateValues(fields, value);\n\n if (hasErrors(errors)) {\n setInternalErrors(errors);\n return;\n }\n\n const newValue = [...new Array(fields.length)];\n newValue.id = getUID('row');\n\n onChange([\n ...value,\n newValue,\n ]);\n };\n\n const deleteRow = (index) => {\n if (!value) {\n return;\n }\n const tempValue = [...value];\n tempValue.splice(index, 1);\n onChange(tempValue);\n };\n\n return (\n
    \n \n {value?.length || !hideOnEmpty ? (\n
      \n {(value || [[]]).map((v, i) => (\n \n ))}\n \n
    \n ) : null}\n {error && error !== 'true' && error !== 'false' ? (\n

    {error}

    \n ) : null}\n
    \n );\n}\n\nEditableList2.propTypes = {\n /** Sets Editable list in edit mode.\n * If enabled all fields are disabled, the add button is hidden and delete button is disabled\n * */\n disabled: PropTypes.bool,\n /** Sets Editable list in read only mode.\n * If enabled all fields are displaying just the value,\n * the add button is hidden and delete button is disabled\n */\n readOnly: PropTypes.bool,\n /** Name of the Add button. By default has 'Add value' */\n addButtonName: PropTypes.string,\n /** Label of Editable list, is displayed above the list and inline with the Add button */\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n /** Array of form elements that you want the list to have\n * Each field is an object points to the Form element component that you want to use,\n * the props you want to apply on it,\n * and the size (as in width, it's like columns system, between 1 and 12)\n * Example:\n * ...\n * fields={[\n {\n component: Input2,\n styles: {\n width: \"200px\",\n },\n size: 4,\n props: {\n name: 'input',\n label: 'Claim name',\n theme: 'default rounded-corners',\n placeholder: 'Enter claim name',\n validate: formikRequired('This field is required')\n }\n },\n {\n component: Combobox2,\n size: 8,\n props: comboboxProps\n }\n ]}\n */\n fields: PropTypes.instanceOf(Array),\n /** onChange function is called everytime the value of editable list changes */\n onChange: PropTypes.func,\n /** value of editable list, wich is an Array (List of row values)\n * of Arrays (List of column values,\n * each column will have the value format depending on the component type)\n */\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Object),\n PropTypes.instanceOf(Array),\n ]),\n error: PropTypes.string,\n hideOnEmpty: PropTypes.bool,\n wrapperClassName: PropTypes.string,\n};\n\nexport default EditableList2;\n","import React, { useCallback, useState } from 'react';\n\n// eslint-disable-next-line react/function-component-definition\nconst withValidation = (Component) => ({\n onChange, // eslint-disable-line react/prop-types\n validate, // eslint-disable-line react/prop-types\n error, // eslint-disable-line react/prop-types\n ...rest\n}) => {\n const [internalError, setInternalError] = useState(null);\n const onFieldChange = useCallback((event) => {\n /* eslint-disable-next-line */\n const value = event?.target\n ? ['radio', 'checkbox'].includes(event.target.type)\n ? event.target.checked\n : event?.target.value\n : event;\n\n let isValid = true;\n if (validate && typeof validate === 'function') {\n const errorMsg = validate(value);\n isValid = !errorMsg;\n setInternalError(errorMsg);\n }\n\n onChange(value, isValid);\n }, [validate, onChange]);\n\n return ;\n};\n\nexport default withValidation;\n","const validateValues = (fields, rowValues) => (rowValues || [[undefined, undefined]])?.map(\n (colValue) => colValue?.map(\n (value, index) => fields[index].props.validate?.(value),\n ),\n);\n\nexport default validateValues;\n","import React, { useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\n\nfunction FileInput({\n error,\n theme,\n labelwidth,\n wrapperClassName = '',\n id,\n label,\n note,\n accept,\n value,\n onChange,\n ...rest\n}) {\n const fileInputRef = useRef();\n\n function handleOnChange(e) {\n onChange(e.target.files);\n }\n\n function getCssClasses() {\n const cssClasses = [wrapperClassName, 'tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n }\n\n function getLabelStyles() {\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n function getNonLabelWidth() {\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n function getFileInputError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n function getFileInputComponent() {\n return (\n \n \n {\n fileInputRef.current && fileInputRef.current.files.length > 0\n ? (\n \n \n \n )\n : null\n }\n \n );\n }\n\n function clearValue() {\n fileInputRef.current.value = '';\n onChange('');\n }\n\n return (\n
    \n {\n label\n ? \n : null\n }\n
    \n { getFileInputComponent() }\n {\n note\n ?

    { note }

    \n : null\n }\n
    \n { getFileInputError() }\n
    \n );\n}\n\nFileInput.propTypes = {\n accept: PropTypes.string,\n disabled: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.instanceOf(Object),\n wrapperClassName: PropTypes.string,\n};\n\nexport default FileInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nclass Input extends Component {\n static getAddon(content) {\n return (\n
    \n { content }\n
    \n );\n }\n\n constructor(props) {\n super(props);\n const {\n value,\n } = this.props;\n\n this.state = {\n initValue: value,\n stateValue: value,\n };\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n const {\n isfield,\n value,\n onChange,\n } = this.props;\n\n if (!isfield && prevProps.value !== value) {\n /* eslint-disable react/no-did-update-set-state */\n this.setState({\n stateValue: value,\n }, () => {\n if (onChange) {\n onChange(value);\n }\n });\n }\n }\n\n handleOnChange(e) {\n const { onChange, isfield } = this.props;\n const inputValue = e.target.value;\n\n if (!isfield) {\n this.setState({\n stateValue: inputValue,\n }, () => {\n if (onChange) {\n onChange(inputValue);\n }\n });\n } else {\n onChange(inputValue);\n }\n }\n\n getLabelStyles() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n getNonLabelWidth() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n getInputError() {\n const { error } = this.props;\n\n return (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null;\n }\n\n getCssClasses() {\n const {\n error,\n theme,\n labelwidth,\n inputgroupaddonleft,\n inputgroupaddonright,\n } = this.props;\n const cssClasses = ['tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (inputgroupaddonleft) {\n cssClasses.push('tyk-form-group--addon-left');\n }\n\n if (inputgroupaddonright) {\n cssClasses.push('tyk-form-group--addon-right');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n }\n\n getInputGroupAddon() {\n const {\n inputgroupaddonleft,\n inputgroupaddonright,\n } = this.props;\n\n return (\n
    \n {\n inputgroupaddonleft\n ? Input.getAddon(inputgroupaddonleft)\n : null\n }\n { this.getInputComponent() }\n {\n inputgroupaddonright\n ? Input.getAddon(inputgroupaddonright)\n : null\n }\n
    \n );\n }\n\n getInputComponent() {\n const {\n isfield, onChange, value, ...rest\n } = this.props;\n const { stateValue } = this.state;\n return (\n \n );\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n reset() {\n const { initValue } = this.state;\n\n this.setState({\n stateValue: initValue,\n });\n }\n\n render() {\n const {\n label,\n id,\n inputgroupaddonleft,\n inputgroupaddonright,\n note,\n readOnly,\n value,\n } = this.props;\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n {\n inputgroupaddonleft || inputgroupaddonright\n ? this.getInputGroupAddon()\n : this.getInputComponent()\n }\n {\n note\n ?

    { note }

    \n : null\n }\n { this.getInputError() }\n
    \n )}\n {\n readOnly &&
    {value || '-'}
    \n }\n \n );\n }\n}\n\nInput.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n isfield: PropTypes.bool,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n inputgroupaddonleft: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n inputgroupaddonright: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n};\n\nexport default Input;\n","import React, { useImperativeHandle, useRef, forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Input2({\n error,\n onChange,\n readOnly,\n id,\n inputgroupaddonleft,\n inputgroupaddonright,\n label,\n labelwidth,\n note,\n theme,\n value,\n wrapperClassName = '',\n ...rest\n}, ref) {\n const inputRef = useRef();\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n inputRef.current.focus();\n },\n }));\n\n const getAddon = (content) => (\n
    \n { content }\n
    \n );\n\n const getLabelStyles = () => ({\n ...labelwidth && {\n flexBasis: labelwidth,\n },\n });\n\n const getNonLabelWidth = () => ({\n ...labelwidth && {\n flexBasis: `calc(100% - ${labelwidth} - 20px)`,\n },\n });\n\n const getInputError = () => (\n (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null\n );\n\n const getCssClasses = () => {\n const cssClasses = [wrapperClassName, 'tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (inputgroupaddonleft) {\n cssClasses.push('tyk-form-group--addon-left');\n }\n\n if (inputgroupaddonright) {\n cssClasses.push('tyk-form-group--addon-right');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n };\n\n const handleOnChange = (e) => {\n onChange(e, e.target.value);\n };\n\n const getInputElement = () => (\n \n );\n\n const getInputGroupAddon = () => (\n
    \n {\n inputgroupaddonleft\n ? getAddon(inputgroupaddonleft)\n : null\n }\n { getInputElement() }\n {\n inputgroupaddonright\n ? getAddon(inputgroupaddonright)\n : null\n }\n
    \n );\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n {\n inputgroupaddonleft || inputgroupaddonright\n ? getInputGroupAddon()\n : getInputElement()\n }\n {\n note\n ?

    { note }

    \n : null\n }\n { getInputError() }\n
    \n )}\n {\n readOnly && (\n
    \n {value || '-'}\n
    \n )\n }\n \n );\n}\n\nInput2.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n inputgroupaddonleft: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n inputgroupaddonright: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default forwardRef(Input2);\n","import { createContext } from 'react';\n\nconst MultiselectContext = createContext();\n\nexport default MultiselectContext;\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport MultiselectContext from './MultiselectContext';\nimport Button from '../../../../components/Button';\nimport Collapsible from '../../../../components/Collapsible';\nimport Loader from '../../../../components/Loader';\n\nconst getItemContent = (context, item) => (\n context.detailsDisplayTemplate\n ? context.detailsDisplayTemplate(item)\n : JSON.stringify(item.details)\n);\n\nconst getItemLoader = (context, item) => {\n const { opened } = context;\n\n return opened[item.id]\n ? \n : null;\n};\n\nfunction MultiselectItem({\n item,\n itemType,\n searchValue,\n onChange,\n}) {\n const isInSearchValue = useCallback((fieldsToSearchOn) => {\n if (fieldsToSearchOn?.length > 0) {\n return fieldsToSearchOn.some((key) => item[key]?.includes(searchValue));\n }\n\n return JSON.stringify(item).includes(searchValue);\n }, [item, searchValue]);\n\n const onAddRemove = useCallback(() => {\n onChange(item);\n }, [onChange, item]);\n\n return (\n \n {\n (context) => (\n isInSearchValue(context.fieldsToSearchOn)\n ? (\n
  • \n
    \n \n {\n context.itemDisplayTemplate\n ? context.itemDisplayTemplate(item)\n : JSON.stringify(item)\n }\n \n \n \n context.onGetItemDetails(item)}\n />\n \n
    \n {\n item.details\n ? (\n \n {getItemContent(context, item)}\n \n )\n : getItemLoader(context, item)\n }\n
  • \n )\n : null\n )\n }\n
    \n );\n}\n\nMultiselectItem.propTypes = {\n item: PropTypes.instanceOf(Object),\n itemType: PropTypes.string,\n searchValue: PropTypes.string,\n onChange: PropTypes.func,\n};\n\nexport default MultiselectItem;\n","import React, { useCallback, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Input from '../../Input';\nimport Icon from '../../../../components/Icon';\nimport Message from '../../../../components/Message';\nimport InfiniteScroller from '../../../../components/InfiniteScroller';\nimport MultiselectItem from './MultiselectItem';\n\nfunction MultiselectPanel({\n inputPlaceholder,\n noItemsMessage,\n items,\n onCustomSearch,\n onChange,\n customSearch,\n panelType,\n serverLoad,\n itemsPageNumber,\n itemsNrPages,\n loadMoreItems,\n}) {\n const [searchValue, setSearchValue] = useState('');\n const itemIndex = useRef(0);\n const itemsListRef = useRef();\n\n function getItemIndex() {\n itemIndex.current += 1;\n\n return itemIndex.current;\n }\n\n function getItemsList() {\n return (\n serverLoad\n ? (\n itemsPageNumber}\n loadMore={loadMoreItems}\n pageNumber={itemsPageNumber}\n >\n { renderListItems() }\n \n )\n : renderListItems()\n );\n }\n\n const searchOnChange = useCallback((value) => {\n if (onCustomSearch) {\n onCustomSearch(value);\n } else {\n setSearchValue(value);\n }\n }, [onCustomSearch]);\n\n const itemChanged = useCallback((item) => {\n let cloneItems = structuredClone(items);\n cloneItems = cloneItems.filter((clonedItem) => item.id !== clonedItem.id);\n\n onChange(cloneItems, item);\n }, [items]);\n\n function renderListItems() {\n return (\n \n {\n items.map((item) => (\n \n ))\n }\n \n );\n }\n\n return (\n
    \n \n }\n name=\"search\"\n onChange={searchOnChange}\n placeholder={inputPlaceholder}\n value={searchValue}\n />\n {\n items.length\n ? getItemsList()\n : (\n \n { noItemsMessage }\n \n )\n }\n
    \n );\n}\n\nMultiselectPanel.propTypes = {\n customSearch: PropTypes.bool,\n onCustomSearch: PropTypes.func,\n panelType: PropTypes.string,\n onChange: PropTypes.func,\n items: PropTypes.instanceOf(Array),\n itemsPageNumber: PropTypes.number,\n itemsNrPages: PropTypes.number,\n inputPlaceholder: PropTypes.string,\n loadMoreItems: PropTypes.func,\n noItemsMessage: PropTypes.string,\n serverLoad: PropTypes.bool,\n};\n\nexport default MultiselectPanel;\n","import React, { useCallback, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport MultiselectPanel from './js/MultiselectPanel';\nimport MultiselectContext from './js/MultiselectContext';\n\nconst diffObjects = (value, items) => items.filter((item) => !value.find((v) => v.id === item.id));\n\nfunction Multiselect({\n customSearch,\n entityNamePlural,\n disabled,\n error,\n getItemDetails,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n items,\n itemsPageNumber,\n itemsNrPages,\n loadMoreItems,\n maxSelections,\n note,\n value,\n onChange,\n wrapperClassName = '',\n}) {\n const [opened, setOpened] = useState({});\n\n const onGetItemDetails = useCallback((item) => {\n setOpened((prevOpened) => ({ ...prevOpened, [item.id]: !prevOpened[item.id] }));\n\n if (getItemDetails) getItemDetails(item);\n }, [getItemDetails]);\n\n function getMultiselectError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n const getCssClasses = useCallback(\n () => [\n wrapperClassName,\n 'tyk-multiselect',\n error && 'has-error',\n ]\n .filter(Boolean)\n .join(' '),\n [wrapperClassName, error],\n );\n\n const itemsChange = useCallback((allItems, item) => {\n const valueClone = structuredClone(value);\n\n valueClone.unshift(item);\n\n onChange(valueClone, item, 'added');\n }, [value]);\n\n const valueChange = useCallback((newValue, item) => {\n onChange(newValue, item, 'removed');\n }, [items]);\n\n const providerValue = useMemo(() => ({\n disabled,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n maxSelections,\n nrSelectedItems: value.length,\n onGetItemDetails,\n opened,\n }), [\n disabled,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n maxSelections,\n value,\n onGetItemDetails,\n opened,\n ]);\n\n return (\n <>\n
    \n \n
    \n
    \n { value.length }\n {' '}\n Selected\n {' '}\n { entityNamePlural }\n
    \n
    \n Select from existing\n { entityNamePlural }\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n {\n note\n ?

    { note }

    \n : null\n }\n
    \n { getMultiselectError() }\n \n );\n}\n\nMultiselect.propTypes = {\n customSearch: PropTypes.func,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n entityNamePlural: PropTypes.string,\n items: PropTypes.instanceOf(Array),\n itemDisplayTemplate: PropTypes.func,\n detailsDisplayTemplate: PropTypes.func,\n fieldsToSearchOn: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n getItemDetails: PropTypes.func,\n itemsPageNumber: PropTypes.number,\n itemsNrPages: PropTypes.number,\n loadMoreItems: PropTypes.func,\n note: PropTypes.string,\n maxSelections: PropTypes.number,\n value: PropTypes.instanceOf(Array),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Multiselect;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * Radio can be used when a user needs to select at most one value from a multiple options.\n */\nfunction Radio({\n label,\n input,\n note,\n inline,\n nospace,\n theme = '',\n disabled,\n readOnly,\n wrapperClassName = '',\n ...rest\n}) {\n const cssClasses = [\n inline ? 'tyk-radio--inline' : 'tyk-radio',\n wrapperClassName,\n nospace && 'no-margin',\n ...(theme ? theme.split(' ').filter(Boolean).map((t) => `tyk-radio--theme-${t}`) : []),\n (readOnly || disabled) && 'tyk-radio--is-disabled',\n ].filter(Boolean).join(' ');\n\n return (\n
    \n \n {note && (\n

    {note}

    \n )}\n
    \n );\n}\n\nRadio.propTypes = {\n /** Used to disable the element */\n disabled: PropTypes.bool,\n /** Readonly prop behaves the same as disabled on radio elements */\n readOnly: PropTypes.bool,\n /** Align radio in the same line with other elements */\n inline: PropTypes.bool,\n /** Set a theme for radio */\n theme: PropTypes.string,\n input: PropTypes.instanceOf(Object),\n /** Adds label to the radio input */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Set name for the radio input */\n name: PropTypes.string,\n /** If set to true removes margin by adding `no-margin` class */\n nospace: PropTypes.bool,\n /** Set initial value for the radio input */\n value: PropTypes.string,\n /** Add note at the bottom of the radio input */\n note: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Radio;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Select(props) {\n const {\n value,\n onChange,\n onBlur,\n isfield,\n label,\n labelwidth,\n id,\n note,\n readOnly,\n options,\n error,\n theme,\n wrapperClassName = '',\n ...rest\n } = props;\n const [stateValue, setStateValue] = useState(value);\n\n useEffect(() => {\n if (!isfield && stateValue !== value) {\n setStateValue(value);\n if (onChange) onChange(value);\n }\n }, [stateValue, value]);\n\n const handleOnChange = useCallback((e) => {\n const selectedValue = options.find((option) => option.id === e.target.value);\n\n if (!isfield) {\n setStateValue(selectedValue);\n }\n onChange(selectedValue.id ? selectedValue : null);\n }, [options, isfield, onChange]);\n\n const handleOnBlur = useCallback(() => {\n if (onBlur) {\n onBlur(value);\n }\n }, [onBlur]);\n\n // eslint-disable-next-line arrow-body-style\n const getSelectError = useCallback(() => {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }, [error]);\n\n const getCssClasses = useCallback(\n () => [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' '),\n [wrapperClassName, theme, labelwidth, error],\n );\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const getNonLabelWidth = useCallback(() => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n }, [labelwidth]);\n\n const getSelectComponent = useCallback(() => {\n const selectValue = isfield && value ? value : stateValue;\n\n return (\n \n {\n options.map((option) => (\n \n ))\n }\n \n );\n }, [isfield, value, stateValue, handleOnChange, handleOnBlur, options, rest]);\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n { getSelectComponent() }\n {\n note\n ?

    { note }

    \n : null\n }\n { getSelectError() }\n
    \n )}\n {readOnly &&
    {value || '-'}
    }\n \n );\n}\n\nSelect.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n isfield: PropTypes.bool,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n options: PropTypes.instanceOf(Array),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Select;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../../../components/Message';\nimport List from '../../../components/List';\nimport Icon from '../../../components/Icon';\n\nfunction SelectableList(props) {\n const {\n checkboxalticon,\n items,\n itemTemplate,\n value,\n noItemsMessage = 'No items in the list',\n onChange,\n theme,\n primaryKey,\n wrapperClassName = '',\n } = props;\n\n const handleOnSelect = (event) => {\n const newSelectedItems = structuredClone(value);\n const elemPosition = newSelectedItems.findIndex(\n (id) => JSON.stringify(id) === JSON.stringify(\n Array.isArray(id)\n ? event.target.value.split(',')\n : event.target.value,\n ),\n );\n\n if (event.target.checked && elemPosition === -1) {\n const tempValue = event.target.value.split(',');\n const finalValue = tempValue.length > 1 ? tempValue : event.target.value;\n\n newSelectedItems.push(finalValue);\n } else if (!event.target.checked && elemPosition > -1) {\n newSelectedItems.splice(elemPosition, 1);\n }\n\n if (onChange) {\n onChange(newSelectedItems);\n }\n };\n\n const getListItemCssClassName = (isActive) => {\n const cssClasses = [];\n\n if (checkboxalticon) {\n cssClasses.push('tyk-selectable-list__item--with-icon');\n }\n\n if (isActive) {\n cssClasses.push('tyk-selectable-list__item--active');\n }\n\n return cssClasses.join(' ');\n };\n\n const isChecked = (inputValue, itemValue) => Boolean(\n inputValue.find((tvalue) => JSON.stringify(itemValue) === JSON.stringify(tvalue)),\n );\n\n return (\n \n {\n !items.length\n ? (\n
  • \n \n {noItemsMessage}\n \n
  • \n )\n : items.map((item, index) => (\n \n \n \n ))\n }\n
    \n );\n}\n\nSelectableList.propTypes = {\n items: PropTypes.instanceOf(Array),\n itemTemplate: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n PropTypes.func,\n ]),\n value: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n primaryKey: PropTypes.string,\n noItemsMessage: PropTypes.string,\n checkboxalticon: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n theme: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\n\nSelectableList.defaultProps = {\n items: [],\n primaryKey: 'id',\n value: [],\n};\n\nexport default SelectableList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Textarea({\n id,\n input,\n label,\n note,\n error,\n theme,\n labelwidth,\n value,\n readOnly,\n wrapperClassName,\n ...rest\n}) {\n const classes = [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const getLabelStyles = () => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n };\n\n const getNonLabelWidth = () => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n };\n\n function getTextareaError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n \n { value }\n \n {\n note\n ?

    { note }

    \n : null\n }\n {getTextareaError()}\n
    \n )}\n {readOnly &&
    {value || '-'}
    }\n \n );\n}\n\nTextarea.propTypes = {\n /** Disable the component */\n disabled: PropTypes.bool,\n /** Displays only the text value of the component, or \"-\" if no value is set */\n readOnly: PropTypes.bool,\n input: PropTypes.instanceOf(Object),\n /** Set an error message for the component and the component is rendered in the error state */\n error: PropTypes.string,\n /** Adds a label to the component */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Sets the width of the label */\n labelwidth: PropTypes.string,\n /** Set a name for the component */\n name: PropTypes.string,\n /** Adds additional information under the component */\n note: PropTypes.string,\n /** Callback function executed on value change */\n onChange: PropTypes.func,\n id: PropTypes.string,\n /** Set a theme for the component */\n theme: PropTypes.string,\n /** Set the value of the component */\n value: PropTypes.string,\n /** CSS classes added to the wrapper of the component */\n wrapperClassName: PropTypes.string,\n};\n\nexport default Textarea;\n","import { createContext } from 'react';\n\nconst ToggleContext = createContext();\n\nexport default ToggleContext;\n","import React, { Component, createRef } from 'react';\nimport PropTypes from 'prop-types';\n\nclass ToggleItem extends Component {\n static getNotchCssClasses(context) {\n return ['tyk-toggle__item-notch', `tyk-toggle__item-notch--${context.type}`].join(' ');\n }\n\n constructor(props) {\n super(props);\n\n this.itemRef = createRef();\n }\n\n componentDidMount() {\n const { context, value } = this.props;\n\n if (context.value === value) {\n context.saveSelectedRef(this.itemRef);\n }\n }\n\n componentDidUpdate(prevProps) {\n const { context, value } = this.props;\n\n if (prevProps.context.value !== context.value && context.value === value) {\n context.saveSelectedRef(this.itemRef);\n }\n }\n\n onChange(event) {\n const { context, value } = this.props;\n const { disabled, readOnly } = context;\n\n if (disabled || readOnly) {\n return;\n }\n\n context.onItemSelected(context.type === 'single' ? !context.value : value, event);\n }\n\n render() {\n const {\n context, label, name, value,\n } = this.props;\n return (\n
  • \n \n
  • \n );\n }\n}\n\nToggleItem.propTypes = {\n context: PropTypes.instanceOf(Object),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n name: PropTypes.string,\n value: PropTypes.string,\n};\n\nexport default ToggleItem;\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToggleContext from './ToggleContext';\nimport ToggleItem from './ToggleItem';\n\nfunction ToggleItemWrapper({ children, ...rest }, ref) {\n return (\n \n {(context) => (\n \n {children}\n \n )}\n \n );\n}\n\nToggleItemWrapper.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nexport default forwardRef(ToggleItemWrapper);\n","import React, {\n useCallback, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToggleContext from './js/ToggleContext';\nimport ToggleItemWrapper from './js/ToggleItemWrapper';\n\nfunction Toggle({\n className,\n disabled,\n readOnly,\n size,\n theme,\n direction,\n onDark,\n wrapperClassName = '',\n onChange,\n labelwidth,\n label,\n separated,\n children,\n type,\n value,\n error,\n}) {\n const [selectedRef, setSelectedRef] = useState(null);\n const notchRef = useRef();\n const toggleRef = useRef();\n\n const classes = [\n wrapperClassName,\n className,\n 'tyk-toggle',\n `tyk-toggle--disabled-${readOnly || disabled}`,\n `tyk-toggle--${size || 'md'}`,\n `tyk-toggle--${theme}`,\n `tyk-toggle--${direction}`,\n onDark && 'tyk-toggle--on-dark',\n ].filter(Boolean).join(' ');\n\n const onItemSelected = useCallback((itemValue, event) => {\n if (!onChange) return;\n onChange(itemValue, event);\n }, [onChange]);\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const positionNotch = useCallback(() => {\n if (!selectedRef || separated) {\n return {};\n }\n\n const selectedWidth = selectedRef.current.offsetWidth;\n const selectedOffset = selectedRef.current.getBoundingClientRect().left;\n const toggleOffset = toggleRef.current.getBoundingClientRect().left;\n const left = selectedOffset - toggleOffset;\n\n return {\n left: `${left + 4}px`,\n width: `${selectedWidth - 8}px`,\n };\n }, [selectedRef, separated]);\n\n const contextValue = useMemo(() => ({\n disabled,\n readOnly,\n onItemSelected,\n saveSelectedRef: setSelectedRef,\n separated,\n type,\n value,\n }), [disabled, readOnly, onItemSelected, separated, type, value]);\n\n return (\n <>\n
    \n \n {\n label\n ? \n : null\n }\n
      \n { children }\n {\n type === 'multiple' && !separated\n ?
    • \n : null\n }\n
    \n \n
    \n {\n error && (\n

    \n { error }\n

    \n )\n }\n \n );\n}\n\nToggle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n error: PropTypes.string,\n onChange: PropTypes.func,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n theme: PropTypes.string,\n type: PropTypes.string, // single || multiple\n size: PropTypes.string,\n separated: PropTypes.bool,\n direction: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n ]),\n onDark: PropTypes.bool,\n wrapperClassName: PropTypes.string,\n};\n\nToggle.defaultProps = {\n separated: false,\n theme: 'primary',\n type: 'single',\n direction: 'row',\n};\n\nToggle.Item = ToggleItemWrapper;\n\nexport default Toggle;\n","const config = {\n FORM_DEBOUNCE: 200,\n};\n\nexport function setConfig(key, val) {\n config[key] = val;\n}\n\nexport default config;\n","import React, { useCallback, useEffect, useState } from 'react';\n\nimport config from '../config/config';\n\nfunction getValueFromPath(obj, path) {\n // turn 'aaa.qqq[2].bbb[5][3].mmm' into ['aaa', 'qqq', '2', 'bbb', '5', '3', 'mmm']\n const indexes = path.split(/[\\][.]/).filter(Boolean);\n return indexes.reduce((acc, v) => (acc ? acc[v] : acc), obj);\n}\n\nfunction debounce(f, limit) {\n let timeoutId;\n return (...args) => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(f, limit, ...args);\n };\n}\n\n/* eslint-disable react/prop-types, react/function-component-definition */\n/**\n * A wrapper function that \"prepares\" a tyk-ui form component to be used with the formik library.\n * It handles things like setting the value of the component, change events, error state,\n * and also has a default debounce time for when the change event is triggered.\n */\nconst wrapper = (Component, options) => ({ field, form, ...properties }) => {\n const DEFAULT_DEBOUNCE_TIME_MS = typeof config.FORM_DEBOUNCE === 'number' ? config.FORM_DEBOUNCE : 200;\n const [myValue, setMyValue] = useState(field.value);\n const opts = {\n getOnChangeProps: () => ({}),\n hasIsFieldProp: false,\n ...options,\n };\n\n const executeDebounced = useCallback((() => {\n const fn = (f) => f();\n if (\n properties.debounce === false\n || (config.FORM_DEBOUNCE === false && !properties.debounce)\n ) {\n return fn;\n }\n const timeout = typeof properties.debounce === 'number'\n ? properties.debounce\n : DEFAULT_DEBOUNCE_TIME_MS;\n return debounce(fn, timeout);\n })(), []);\n\n const getValue = (v) => {\n if (v?.target) {\n if (v.target.nodeName === 'INPUT' && (v.target.type === 'checkbox' || v.target.type === 'radio')) {\n return v.target.checked;\n }\n return v.target.value;\n }\n return v;\n };\n\n const onChange = (valueOrEvent) => {\n const value = getValue(valueOrEvent);\n const onChangeProps = opts.getOnChangeProps(value, field, form, properties);\n\n const newValue = onChangeProps.value || properties.value || value;\n executeDebounced(() => {\n if (typeof properties.onChange === 'function') {\n properties.onChange(newValue);\n }\n field.onChange({ target: { name: field.name, value: newValue, ...onChangeProps } });\n });\n setMyValue(newValue);\n };\n\n const formError = (getValueFromPath(form.touched, field.name) || Boolean(form.submitCount))\n && getValueFromPath(form.errors, field.name);\n const error = typeof formError === 'string' ? formError : '';\n\n useEffect(() => {\n setMyValue(field.value);\n }, [field.value]);\n\n // eslint-disable-next-line no-param-reassign\n if (form.status?.disabled) properties.disabled = true;\n\n const componentProps = { ...properties };\n delete componentProps.debounce;\n\n if (Object.hasOwn(componentProps, 'className') && componentProps.className === undefined) delete componentProps.className;\n if (Object.hasOwn(componentProps, 'children') && componentProps.children === undefined) delete componentProps.children;\n\n return (\n \n );\n};\n\nexport default wrapper;\n","import wrapper from '../../../utils/formik';\nimport Checkbox from '../../components/Checkbox';\n\nexport default wrapper(Checkbox, {\n getOnChangeProps: (value) => ({\n checked: value,\n }),\n});\n","import wrapper from '../../../utils/formik';\nimport CodeEditor from '../../components/CodeEditor';\n\nexport default wrapper(CodeEditor);\n","import wrapper from '../../../utils/formik';\nimport Combobox from '../../components/Combobox';\n\nexport default wrapper(Combobox);\n","import wrapper from '../../../utils/formik';\nimport Combobox2 from '../../components/Combobox2';\n\nexport default wrapper(Combobox2);\n","import wrapper from '../../../utils/formik';\nimport DatePicker from '../../components/DatePicker';\n\nexport default wrapper(DatePicker);\n","import wrapper from '../../../utils/formik';\nimport EditableList from '../../components/EditableList';\n\nexport default wrapper(EditableList, {\n getOnChangeProps: (value) => ({ value: value || [] }),\n});\n","import wrapper from '../../../utils/formik';\nimport EditableList2 from '../../components/EditableList2';\n\nexport default wrapper(EditableList2);\n","import wrapper from '../../../utils/formik';\nimport FileInput from '../../components/FileInput';\n\nexport default wrapper(FileInput);\n","import wrapper from '../../../utils/formik';\nimport Input from '../../components/Input';\n\nexport default wrapper(Input, { hasIsFieldProp: true });\n","import wrapper from '../../../utils/formik';\nimport Input2 from '../../components/Input2';\n\nexport default wrapper(Input2);\n","import wrapper from '../../../utils/formik';\nimport MultiSelect from '../../components/Multiselect';\n\nexport default wrapper(MultiSelect);\n","import wrapper from '../../../utils/formik';\nimport Radio from '../../components/Radio';\n\nexport default wrapper(Radio, {\n getOnChangeProps: (value, field, form, properties) => ({\n checked: value === properties.value,\n value: properties.value,\n }),\n});\n","import wrapper from '../../../utils/formik';\nimport Select from '../../components/Select';\n\nexport default wrapper(Select, { hasIsFieldProp: true });\n","import wrapper from '../../../utils/formik';\nimport SelectableList from '../../components/SelectableList';\n\nexport default wrapper(SelectableList);\n","import wrapper from '../../../utils/formik';\nimport Textarea from '../../components/Textarea';\n\nexport default wrapper(Textarea);\n","import wrapper from '../../../utils/formik';\nimport Toggle from '../../components/Toggle';\n\nexport default wrapper(Toggle);\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport CodeEditor from '../../components/CodeEditor';\n\nclass FieldCodeEditor extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.prop;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldCodeEditor.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCodeEditor;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Combobox from '../../components/Combobox';\n\nclass FieldCombobox extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getComboboxError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldCombobox.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCombobox;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Dropdown from '../../components/Dropdown';\n\nclass FieldDropdown extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n render() {\n const {\n children,\n input,\n ...rest\n } = this.props;\n\n return (\n \n {children}\n \n );\n }\n}\n\nFieldDropdown.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldDropdown;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Pagination from '../../components/Pagination';\n\nfunction FieldPagination(props) {\n const { input, ...rest } = props;\n\n return (\n \n );\n}\n\nFieldPagination.propTypes = {\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldPagination;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Combobox2 from '../../components/Combobox2';\n\nfunction FieldCombobox2(props) {\n const { input, meta, validationmessages } = props;\n\n const getComboboxError = () => {\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n return message;\n };\n\n const handleOnChange = (value) => {\n const { onChange } = input;\n onChange(fromJS(value));\n };\n\n return (\n \n );\n}\n\nFieldCombobox2.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCombobox2;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport DatePicker from '../../components/DatePicker';\n\nfunction FormDatePicker(props) {\n const {\n input,\n meta,\n validationmessages,\n ...rest\n } = props;\n\n const getDatePickerError = () => {\n const { touched, error } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n }\n\n return message;\n };\n\n const handleOnChange = (value) => {\n const { onChange } = input;\n\n onChange(fromJS(value));\n };\n\n return (\n \n );\n}\n\nFormDatePicker.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FormDatePicker;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport EditableList from '../../components/EditableList';\n\nclass FieldEditableList extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getEditableListError() {\n const { meta, validationmessages } = this.props;\n const { touched, error } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldEditableList.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldEditableList;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport FileInput from '../../components/FileInput';\n\nclass FieldFileInput extends Component {\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldFileInput.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldFileInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Input from '../../components/Input';\n\nclass FieldInput extends Component {\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldInput.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Multiselect from '../../components/Multiselect';\n\nclass FieldMultiselect extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getMultiselectError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldMultiselect.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldMultiselect;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Select from '../../components/Select';\n\nclass FieldSelect extends Component {\n constructor(props) {\n super(props);\n\n this.handleEvent = this.handleEvent.bind(this);\n }\n\n handleEvent(selectValue) {\n const { input } = this.props;\n const { onChange, value } = input;\n\n onChange(fromJS(selectValue !== undefined ? selectValue : value));\n }\n\n getSelectError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldSelect.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldSelect;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport SelectableList from '../../components/SelectableList';\n\nclass FieldSelectableList extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n\n input.onChange(fromJS(value));\n }\n\n render() {\n const { children, ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldSelectableList.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.node,\n ]),\n onChange: PropTypes.func,\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldSelectableList;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Toggle from '../../components/Toggle';\n\nclass FieldToggle extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n\n input.onChange(fromJS(value));\n }\n\n render() {\n const { children, ...props } = this.props;\n\n return (\n \n {children}\n \n );\n }\n}\n\nFieldToggle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.node,\n ]),\n onChange: PropTypes.func,\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldToggle;\n","import { useEffect, useRef } from 'react';\n\n/** @component */\nexport default function useInterval(callback, delay, ...args) {\n const savedCallback = useRef();\n\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n // eslint-disable-next-line consistent-return\n useEffect(() => {\n function tick() {\n savedCallback.current(...args);\n }\n if (delay !== null && delay !== undefined) {\n const id = setInterval(tick, delay);\n return () => clearInterval(id);\n }\n }, [delay]);\n}\n"],"names":["global","this","window","define","module","deps","payload","arguments","length","modules","payloads","original","apply","console","error","trace","ns","root","_require","parentId","callback","lookup","undefined","Object","prototype","toString","call","params","i","l","dep","require","push","packagedModule","normalizeModule","moduleName","indexOf","chunks","split","charAt","slice","join","previous","replace","exports","mod","id","uri","packaged","ace","defineProp","obj","name","val","defineProperty","value","enumerable","writable","configurable","String","startsWith","searchString","position","lastIndexOf","endsWith","subjectString","lastIndex","repeat","count","result","string","includes","str","assign","target","TypeError","output","index","source","keys","forEach","key","values","o","map","k","Array","find","predicate","len","thisArg","kValue","findIndex","item","fill","O","relativeStart","Math","max","min","end","relativeEnd","final","of","deepCopy","copy","isArray","last","a","stringReverse","reverse","stringRepeat","trimBeginRegexp","trimEndRegexp","stringTrimLeft","stringTrimRight","copyObject","copyArray","array","arrayToMap","arr","createMap","props","create","arrayRemove","splice","escapeRegExp","escapeHTML","getMatchOffsets","regExp","matches","offset","deferredCall","fcn","timer","deferred","timeout","cancel","setTimeout","schedule","clearTimeout","isPending","delayedCall","defaultTimeout","_self","delay","supportsLookbehind","RegExp","e","skipEmptyMatch","line","supportsUnicodeFlag","codePointAt","OS","LINUX","MAC","WINDOWS","getOS","isMac","isLinux","_navigator","navigator","os","exec","platform","toLowerCase","ua","userAgent","appName","isWin","isIE","parseFloat","match","isOldIE","isGecko","isMozilla","isOpera","opera","isWebKit","isChrome","isSafari","isEdge","isAIR","isAndroid","isChromeOS","isIOS","test","MSStream","isMobile","strictCSP","useragent","buildDom","parent","refs","txt","document","createTextNode","appendChild","els","ch","el","createElement","options","childIndex","n","className","style","cssText","setAttribute","getDocumentHead","doc","head","getElementsByTagName","documentElement","tag","createElementNS","removeChildren","element","innerHTML","textContent","ownerDocument","createFragment","createDocumentFragment","hasCssClass","addCssClass","removeCssClass","classes","toggleCssClass","add","setCssClass","node","include","hasCssString","sheets","querySelectorAll","removeElementById","getElementById","remove","cssCache","insertPendingStyles","cache","importCssString","container","getRootNode","insertBefore","firstChild","useStrictCSP","importCssStylsheet","rel","href","scrollbarWidth","inner","width","minWidth","height","display","outer","left","overflow","body","noScrollbar","offsetWidth","withScrollbar","clientWidth","removeChild","computedStyle","getComputedStyle","setStyle","styles","property","HAS_CSS_ANIMATION","HAS_CSS_TRANSFORMS","HI_DPI","devicePixelRatio","div","transform","animationName","translate","tx","ty","round","top","dom","get","url","xhr","XMLHttpRequest","open","onreadystatechange","readyState","responseText","send","loadScript","path","s","src","onload","_","isAbort","qualifyURL","inherits","ctor","superCtor","super_","constructor","mixin","implement","proto","EventEmitter","stopPropagation","propagationStopped","preventDefault","defaultPrevented","_emit","_dispatchEvent","eventName","_eventRegistry","_defaultHandlers","listeners","defaultHandler","type","_signal","once","on","newCallback","off","Promise","resolve","setDefaultHandler","handlers","_disabled_","old","disabled","removeDefaultHandler","pop","addEventListener","capturing","removeListener","removeEventListener","removeAllListeners","reportError","msg","data","Error","messages","oop","optionsProvider","setOptions","optList","setOption","getOptions","optionNames","$options","filter","hidden","getOption","opt","warn","forwardTo","handlesSet","set","message","AppConfig","$defaultOptions","defineOptions","initialValue","resetOptions","setDefaultValue","opts","setDefaultValues","optionHash","setMessages","nls","translated","isDark","cssClass","$id","lang","net","customLoader","workerPath","modePath","themePath","basePath","suffix","$moduleUrls","loadWorkerFromBlob","sharedPopups","hasOwnProperty","all","$modes","moduleUrl","component","parts","sep","base","re","setModuleUrl","subst","setLoader","cb","dynamicModules","$loading","$loaded","loadModule","onLoad","loadedModule","moduleType","load","afterLoad","loader","err","reportErrorIfPathIsNotConfigured","then","default","$require","setModuleLoader","version","config","init","scriptOptions","scriptUrl","currentScript","_currentScript","currentDocument","scripts","script","getAttribute","attributes","j","attr","m","m1","toUpperCase","Range","startRow","startColumn","endRow","endColumn","start","row","column","isEqual","range","contains","compare","compareRange","cmp","comparePoint","p","containsRange","intersects","isEnd","isStart","setStart","setEnd","inside","insideStart","insideEnd","isMultiLine","compareStart","compareEnd","compareInside","clipRows","firstRow","lastRow","fromPoints","extend","isEmpty","clone","collapseRows","toScreenRange","session","screenPosStart","documentToScreenPosition","screenPosEnd","moveBy","comparePoints","p1","p2","Keys","ret","MODIFIER_KEYS","KEY_MODS","FUNCTION_KEYS","PRINTABLE_KEYS","parseInt","enter","escape","esc","del","mods","pow","x","keyCodeToString","keyCode","keyString","fromCharCode","activeListenerOptions","pressedKeys","ts","getListenerOptions","createComment","passive","detectListenerOptionsSupport","EventListener","elem","destroy","addListener","destroyer","$toDestroy","stopEvent","getButton","ctrlKey","altKey","shiftKey","button","capture","eventHandler","releaseCaptureHandler","onMouseUp","addMouseWheelListener","deltaX","deltaY","deltaMode","DOM_DELTA_PIXEL","wheelX","wheelY","DOM_DELTA_LINE","DOM_DELTA_PAGE","addMultiMouseDownListener","elements","timeouts","callbackName","startX","startY","clicks","eventNames","onMousedown","detail","isNewClick","abs","clientX","clientY","_clicks","getModifierHash","metaKey","normalizeCommandKeys","hashId","getModifierState","altGr","location","keyLocation","timeStamp","resetPressedKeys","getModifierString","addCommandKeyListener","isOldGecko","lastKeyDownKeyCode","lastDefaultPrevented","postMessage","postMessageId","nextTick","win","messageName","listener","$idleBlocked","onIdle","handler","$idleBlockId","blockIdle","nextFrame","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","bind","$cancelT","lineMode","pasteCancelled","Date","now","event","clipboard","BROKEN_SETDATA","USE_IE_MIME_TYPE","HAS_FOCUS_ARGS","MAX_LINE_LENGTH","KEYS","MODS","valueResetRegex","TextInput","parentNode","host","text","opacity","copied","pasted","inComposition","sendingText","tempStyle","fontSize","commandMode","ignoreFocusEvents","lastValue","lastSelectionStart","lastSelectionEnd","lastRestoreEnd","rowStart","Number","MAX_SAFE_INTEGER","rowEnd","MIN_SAFE_INTEGER","numberOfExtraLines","isFocused","activeElement","setNumberOfExtraLines","number","setAriaOptions","activeDescendant","inline","removeAttribute","role","setLabel","selection","cursor","onBlur","hasFocus","onFocus","resetSelection","$focusScroll","focus","renderer","enableKeyboardAccessibility","preventScroll","isTransformed","getBoundingClientRect","ancestors","t","parentElement","nodeType","blur","curOp","commandName","command","isUserAction","docChanged","selectionChanged","onCompositionEnd","positionToSelection","getLine","newValue","selectionEnd","setSelectionRange","afterContextMenu","selectionStart","getRange","lines","prevLine","nextLine","inputHandler","setInputHandler","getInputHandler","sendText","fromInput","onPaste","extendLeft","extendRight","inserted","restoreStart","restoreEnd","endIndex","shouldReset","onTextInput","onInput","onCompositionUpdate","inputType","execCommand","handleClipboardData","forceIEMime","clipboardData","mime","setData","getData","doCopy","isCut","getCopyText","onCut","onCopy","select","onCommandKey","isAllSelected","selectAll","$readOnly","cancelComposition","useTextareaForIME","markerRange","context","compositionStartOffset","closeTimeout","syncComposition","onContextMenuClose","$isMousePressed","$keepTextAreaAtCursor","$moveTextAreaToCursor","onCompositionStart","getSelectionRange","msGetInputContext","getInputContext","getElement","setCommandMode","readOnly","setReadOnly","setCopyWithEmptySelection","onContextMenu","domEvent","moveToMouse","bringToFront","characterWidth","rect","borderTopWidth","borderLeftWidth","maxTop","bottom","clientHeight","move","textInput","scroller","typingResetTimeout","typing","detectArrowKeys","$mouseHandler","isMousePressed","modifier","up","home","option","down","right","shift","commands","findKeyCommand","addIosSelectionHandler","$setUserAgentForTests","_isMobile","_isIOS","DefaultHandlers","mouseHandler","$clickSelection","editor","onMouseDown","onDoubleClick","onTripleClick","onQuadClick","onMouseWheel","selectByLines","extendSelectionBy","selectByWords","ev","inSelection","pos","getDocumentPosition","mousedownEvent","moveToPosition","time","$focusTimeout","inMultiSelectMode","captureMouse","startSelect","setState","waitForClickSelection","screenToTextCoordinates","y","getShiftKey","selectToPosition","anchor","orientedRange","calcRangeOrientation","setSelectionAnchor","scrollCursorIntoView","unitName","cmpStart","cmpEnd","selectByLinesEnd","unsetStyle","focusWait","ax","ay","bx","by","distance","sqrt","getBracketRange","getWordRange","getLineRange","getAccelKey","$lastScroll","vx","vy","allowed","prevScroll","dt","direction","canScroll","isScrollableBy","speed","scrollBy","stop","selectEnd","selectAllEnd","selectByWordsEnd","extendStatics","__extends","d","b","setPrototypeOf","__proto__","__","__values","Symbol","iterator","next","done","CLASSNAME","Tooltip","isOpen","$element","$parentNode","$init","setText","setHtml","html","setPosition","setClassName","setTheme","theme","show","hide","getHeight","offsetHeight","getWidth","popupManager","PopupManager","popups","addPopup","popup","updatePopups","removePopup","e_1","_a","e_2","_b","sort","priority","visiblepopups","_c","_d","shouldDisplay","visiblepopups_1","visiblepopups_1_1","visiblePopup","doPopupsOverlap","e_2_1","return","e_1_1","popupA","popupB","rectA","rectB","HoverTooltip","_super","_this","lastT","idleTime","lastEvent","onMouseOut","onMouseMove","waitForHover","whiteSpace","pointerEvents","tabIndex","addToEditor","getMouseEventTarget","removeFromEditor","isOutsideOfText","$gatherData","docPos","screenPos","pixelToScreenCoordinates","clippedPos","setDataProvider","showForRange","domNode","startingEvent","$registerCloseEvents","addMarker","textToScreenCoordinates","pageX","maxHeight","labelHeight","labelWidth","spaceBelow","innerHeight","pageY","lineHeight","isAbove","innerWidth","marker","$markerSession","removeMarker","$removeCloseEvents","relatedTarget","currentTarget","classList","GutterHandler","tooltipTimeout","mouseEvent","gutter","$gutterLayer","tooltip","GutterTooltip","hideTooltip","moveTooltip","getRegion","selectTo","srcElement","$tooltipFollowsMouse","getLength","screenRow","$pos","documentToScreenRow","showTooltip","gutterRow","getGutterRow","gutterCell","$lines","querySelector","$gutter","windowWidth","windowHeight","singular","plural","warning","info","annotation","annotationsInRow","$annotations","from","fold","getFoldLine","$showFoldedAnnotations","mostSevereAnnotationInFoldType","annotationsInFold","annotationType","summaryFoldedAnnotations","concat","annotationsToSummaryString","annotationMessages","iconClassName","$useSvgGutterIcons","annotationLabels","tooltipContent","annotations","summary","annotationTypes_1","annotationTypes_1_1","label","MouseEvent","$inSelection","documentRow","selectionRange","DragdropHandler","dragImage","dragSelectionMarker","timerId","dragCursor","dragOperation","isInternal","autoScrollStartTime","cursorMovedTime","cursorPointOnCaretMoved","mouseTarget","counter","onDragInterval","prevCursor","vMovement","hMovement","moveCursorToPosition","calcDistance","layerConfig","editorRect","offsets","nearestXOffset","nearestYOffset","scrollCursor","vScroll","hScroll","autoScroll","addDragMarker","toOrientedRange","getSelectionStyle","clearSelection","$cursorLayer","setBlinking","clearInterval","setInterval","clearDragMarker","fromOrientedRange","$resetCursorStyle","onDragStart","cancelDrag","draggable","self","dataTransfer","effectAllowed","getReadOnly","setDragImage","clearData","getTextRange","onDragEnd","dropEffect","setCursorStyle","onDragEnter","canAccept","getDropEffect","onDragOver","onMouseMoveTimer","onDragLeave","onDrop","moveText","dropData","insert","types","some","copyAllowed","copyModifierState","dragWait","getDragDelay","startDrag","dragWaitEnd","dragReadyEnd","cursorStyle","onMouseDrag","state","dragDrop","$dragEnabled","eventTarget","unselectable","addTouchListeners","touchStartT","longTouchTimer","animationTimer","pressed","contextMenu","mode","animationSteps","clickCount","vX","vY","showContextMenu","handleClick","selected","hasUndo","action","getUndoManager","replaceChild","class","readText","writeText","ontouchstart","ontouchend","onclick","pagePos","leftOffset","scrollLeft","hideContextMenu","handleLongTap","selectWord","touches","h","w","touchObj","setRange","switchToSelectionMode","cursorPos","getPixelPosition","anchorPos","offsetTop","offsetLeft","weightedDistance","diff1","diff2","oldScrollTop","getScrollTop","DefaultGutterHandler","MouseHandler","focusEditor","onMouseEvent","scrollBarV","scrollBarH","Boolean","gutterEl","$dragDelay","character","mousemove","$scrollSpeed","mouseMoveHandler","which","releaseMouse","$mouseMoved","onCaptureEnd","onOperationEnd","onCaptureInterval","$onCaptureMouseMove","endOperation","startOperation","cancelContextMenu","scrollSpeed","dragDelay","dragEnabled","focusTimeout","tooltipFollowsMouse","FoldHandler","getFoldAt","removeFold","expandFold","getUseWrapMode","foldWidgets","onFoldWidgetClick","getParentFoldRangeData","firstRange","addFold","keyUtil","KeyBinding","$editor","$data","$handlers","kb","removeKeyboardHandler","$defaultHandler","addKeyboardHandler","setKeyboardHandler","handleKeyboard","attach","detach","getKeyboardHandler","getStatusText","$callKeyboardHandlers","toExecute","success","args","passEvent","dir","hiLevel","lastArabic","hasUBAT_B","hasUBAT_S","impTab_LTR","impTab_RTL","ET","BN","UnicodeTBL00","UnicodeTBL20","_invertLevel","lev","levels","_array","lo","hi","tmp","_getCharClass","chars","ix","wType","nType","cType","c","rtlCandidate","_getCharacterType","uc","charCodeAt","L","R","EN","ON_R","AN","R_H","B","RLE","DOT","doBidiReorder","textCharTypes","isRtl","logicalFromVisual","bidiLevels","charTypes","impTab","prevState","newClass","newLevel","newState","condPos","_computeLevels","hasBidiCharacters","getVisualFromLogicalIdx","logIdx","rowMap","bidiUtil","bidiRE","BidiHandler","bidiMap","currentRow","charWidths","EOL","showInvisibles","isRtlDir","$isRtl","wrapIndent","EOF","contentWidth","fontMetrics","rtlLineOffset","wrapOffset","isMoveLeftOperation","seenBidi","getValue","isBidiRow","docRow","splitIndex","updateRowLine","updateBidiMap","onChange","delta","getDocumentRow","rowCache","$screenRowCache","$getRowCacheIndex","$docRowCache","getSplitIndex","currentIndex","prevIndex","endOfLine","$useWrapMode","splits","$wrapData","indent","substring","size","isFullWidth","getScreenTabSize","$main","substr","markAsDirty","updateCharacterWidths","$characterSize","bidiCharWidth","$measureCharWidth","setShowInvisibles","setEolChar","eolChar","setContentWidth","isRtlLine","setRtlDirection","getCursorPosition","getSelectionAnchor","$bidiHandler","removeInLine","getPosLeft","col","leftBoundary","logicalIdx","getOverwrite","visualIdx","getSelections","startCol","endCol","level","selections","selColMin","selColMax","isSelected","isSelectedPrev","visIdx","offsetToCol","posX","charWidth","Selection","getDocument","lead","createAnchor","$silent","$cursorChanged","$isEmpty","$keepDesiredColumnOnChange","$desiredColumn","$anchorChanged","getCursor","getPosition","setAnchor","getAnchor","getSelectionLead","isBackwards","$setSelection","MAX_VALUE","anchorRow","anchorColumn","cursorRow","cursorColumn","wasEmpty","wasMultiselect","$moveSelection","mover","moveCursorTo","moveTo","selectUp","moveCursorUp","selectDown","moveCursorDown","selectRight","moveCursorRight","selectLeft","moveCursorLeft","selectLineStart","moveCursorLineStart","selectLineEnd","moveCursorLineEnd","selectFileEnd","moveCursorFileEnd","selectFileStart","moveCursorFileStart","selectWordRight","moveCursorWordRight","selectWordLeft","moveCursorWordLeft","selectAWord","getAWordRange","excludeLastChar","foldLine","selectLine","moveCursorBy","wouldMoveIntoSoftTab","tabSize","isTabStop","getTabSize","getNavigateWithinSoftTabs","firstColumnPosition","screenToDocumentPosition","leadingSpace","getDisplayLine","$useEmacsStyleLineStart","lineEnd","getDocumentLastRowColumnPosition","textEnd","search","moveCursorLongWordRight","rightOfCursor","nonTokenRe","tokenRe","moveCursorLongWordLeft","getFoldStringAt","leftOfCursor","$shortWordEndIndex","whitespaceRe","moveCursorShortWordRight","moveCursorShortWordLeft","$selectLongWords","rows","offsetX","lineWidgets","widget","rowsAbove","rowCount","keepDesiredColumn","moveCursorToScreen","desiredColumn","r","getRangeOfMovements","func","toJSON","rangeCount","ranges","r1","fromJSON","rangeList","toSingleRange","addRange","MAX_TOKEN_COUNT","Tokenizer","rules","states","regExps","matchMappings","ruleRegExps","matchTotal","mapping","defaultToken","flag","splitterRurles","rule","caseInsensitive","unicode","regex","adjustedregex","matchcount","token","groupCount","tokenArray","onMatch","$arrayTokens","$applyToken","digit","removeCapturingGroups","splitRegex","createSplitterRegexp","$setMaxTokenCount","tokens","stack","inChClass","lastCapture","parenOpen","parenClose","square","getLineTokens","startState","currentState","matchAttempts","skipped","consumeLineEnd","merge","unshift","TextHighlightRules","$rules","addRules","prefix","nextState","getRules","embedRules","HighlightRules","escapeRules","append","$embeds","getEmbeds","pushState","popState","normalizeRules","processState","processed","toInsert","stateName","includeName","noEscape","keywordMap","createKeywordMapper","ignoreCase","splitChar","keywords","$keywordList","list","word","getKeywords","$keywords","Behaviour","$behaviours","addBehaviours","behaviours","inherit","getBehaviours","TokenIterator","initialRow","initialColumn","$session","$row","$rowTokens","getTokens","getTokenAt","$tokenIndex","stepBackward","stepForward","getCurrentToken","getCurrentTokenRow","getCurrentTokenColumn","rowTokens","tokenIndex","getCurrentTokenPosition","getCurrentTokenRange","SAFE_INSERT_IN_TOKENS","SAFE_INSERT_BEFORE_TOKENS","contextCache","defaultQuotes","initContext","multiSelect","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","getWrapped","opening","closing","rowDiff","CstyleBehaviour","getWrapBehavioursEnabled","isSaneInsertion","braces","recordAutoInsert","recordMaybeInsert","$findOpeningBracket","isAutoInsertedClosing","popAutoInsertedClosing","isMaybeInsertedClosing","clearMaybeInsertedClosing","openBracePos","findMatchingBracket","next_indent","$getIndent","getTabString","quotes","$mode","$quotes","lineCommentStart","quote","leftChar","rightChar","rightToken","pair","stringBefore","stringAfter","wordRe","isWordBefore","isWordAfter","pairQuotesAfter","$pairQuotesAfter","charBefore","closeDocComment","$matchTokenType","iterator2","bracket","wordChars","code","Mode","$defaultBehaviour","getTokenizer","$tokenizer","$highlightRules","$highlightRuleConfig","blockComment","toggleCommentLines","ignoreBlankLines","shouldRemove","minIndent","Infinity","insertAtTabStop","regexpStart","getUseSoftTabs","uncomment","shouldInsertSpace","commentWithSpace","comment","insertInLine","testRemove","before","after","spaces","lineCommentEnd","regexpEnd","iter","fun","minEmptyLength","floor","toggleBlockComment","colDiff","initialRange","startRange","endRange","getNextLineIndent","tab","checkOutdent","input","autoOutdent","createWorker","createModeDelegates","delegations","scope","functionName","$delegator","method","language","transformAction","param","$behaviour","completionKeywords","ruleItr","aLength","$createKeywordList","getCompletions","score","meta","applyDelta","docLines","doNotValidate","Anchor","$onChange","$clipPositionToDocument","point","moveIfEqual","deltaIsInsert","deltaRowShift","deltaColShift","deltaStart","deltaEnd","$pointsInOrder","$getTransformedPoint","$insertRight","noClip","point1","point2","equalPointsInOrder","bColIsAfter","Document","textOrLines","insertMergedLines","setValue","getAllLines","getNewLineCharacter","$detectNewLine","$autoNewLine","$newLineMode","setNewLineMode","newLineMode","getNewLineMode","isNewLine","getLines","getLinesForRange","insertLines","insertFullLines","removeLines","removeFullLines","insertNewLine","$split","clonePos","$clipPosition","deleteFirstNewLine","deleteLastNewLine","deletedLines","removeNewLine","applyDeltas","deltas","revertDeltas","revertDelta","isInsert","$splitAndapplyLargeDelta","$safeApplyDelta","docLength","MAX","to","chunk","indexToPosition","newlineLength","positionToIndex","BackgroundTokenizer","tokenizer","running","currentLine","$worker","workerStart","endLine","startLine","processedLines","$tokenizeRow","fireUpdateEvent","setTokenizer","setDocument","first","scheduleStart","$updateOnChange","getState","cleanup","SearchHighlight","clazz","setRegexp","update","markerLayer","renderedMarkerRanges","MAX_RANGES","rangeToAddMarkerTo","rangeAsString","drawSingleLineMarker","UndoManager","$maxRev","$fromUndo","$undoDepth","reset","addSession","allowMerge","$lastDelta","$keepRedoStack","$redoStack","lastDeltas","undoStackLength","$undoStack","$rev","addSelection","rev","startNewGroup","markIgnored","ignore","getSelection","getRevision","getDeltas","getChangedRanges","getChangedLines","undo","dontSelect","deltaSet","swapped","swapGroups","rearrangeUndoStack","$redoStackBaseRev","undoSelectionRange","undoChanges","$syncRev","redo","diff","redoStack","deltaSets","moveDeltasByOne","rebaseRedoStack","redoSelectionRange","redoChanges","nextDelta","mark","canUndo","canRedo","bookmark","isAtBookmark","json","$prettyPrint","stringifyDelta","hasRedo","isClean","markClean","stringifyRange","swap","d1","d2","i1","i2","ds1","ds2","selectionBefore","selectionAfter","xform","c1","splitDelta","shiftPos","rowsBefore","otherLines","cloneDelta","xformed","FoldLine","foldData","folds","setFoldLine","shiftRow","sameRow","containsRow","walk","lastEnd","isNewRow","placeholder","getNextFoldTo","kind","addRemoveChars","log","foldBefore","newFoldLine","foldLineNext","idxToPosition","idx","lastFoldEndColumn","RangeList","$bias","pointIndex","excludeEdges","startIndex","addList","removed","substractPoint","containsPoint","rangeAtPoint","clipped","removeAll","lineDif","Fold","subFolds","subFold","collapseChildren","addSubFold","consumePoint","afterStart","firstConsumed","consumedFolds","restoreRange","restorePoint","Folding","side","getFoldsInRange","foldLines","$foldData","foundFolds","getFoldsInRangeList","getAllFolds","trim","lastFold","startFoldLine","getNextFoldLine","getFoldedRowCount","$addFoldLine","added","$clipRangeToDocument","startFold","endFold","removeFolds","$updateWrapData","$updateRowLengthCache","$modified","addFolds","$updating","cloneFolds","foldAll","expandFolds","unfold","expandInner","outermostFolds","isRowFolded","startFoldRow","getRowFoldEnd","getRowFoldStart","getFoldDisplayLine","textLine","lastColumn","$cloneFoldData","fd","toggleFold","tryToUnfold","bracketPos","getCommentFoldRange","depth","getFoldWidget","getFoldWidgetRange","foldToLevel","foldAllComments","$foldStyles","$foldStyle","setFoldStyle","$foldMode","$setFolding","foldMode","$updateFoldWidgets","$tokenizerUpdateFoldWidgets","updateFoldWidgets","tokenizerUpdateFoldWidgets","ignoreCurrent","fw","children","siblings","$toggleFoldWidget","toggleFoldWidget","toggleParent","BracketMatch","chr","charBeforeCursor","$findClosingBracket","getMatchingBracketRanges","bracketsRegExp","$brackets","typeRe","openBracket","valueIndex","closingBracket","valueLength","getMatchingTags","$findTagName","$findClosingTag","$findOpeningTag","found","backward","prevToken","currentTag","openTagStart","openTagName","foundOpenTagEnd","openTagEnd","closeTagStart","closeTagName","closeTagEnd","openTag","closeTag","stepCount","tmpToken","TextMode","EditSession","$breakpoints","$decorations","$frontMarkers","$backMarkers","$markerId","$undoSelect","$uid","bgTokenizer","onChangeFold","setMode","destroyed","resetCaches","$resetRowCache","cacheArray","low","mid","$rowLengthCache","removedFolds","$updateInternalDataOnChange","$undoManager","mergeUndoDeltas","$informUndoManager","setUndoManager","JSON","parse","undoManager","history","editSession","setAnnotations","setBreakpoints","breakpoints","setScrollLeft","setScrollTop","scrollTop","$scrollLeft","$scrollTop","$syncInformUndoManager","markUndoGroup","$defaultUndoManager","setUseSoftTabs","$useSoftTabs","$indentWithTabs","setTabSize","$tabSize","setNavigateWithinSoftTabs","navigateWithinSoftTabs","$navigateWithinSoftTabs","setOverwrite","overwrite","$overwrite","toggleOverwrite","addGutterDecoration","removeGutterDecoration","getBreakpoints","clearBreakpoints","setBreakpoint","clearBreakpoint","inFront","addDynamicMarker","markerId","getMarkers","highlight","$searchHighlight","highlightLines","getAnnotations","clearAnnotations","inToken","wordRange","setUseWorker","useWorker","getUseWorker","$useWorker","onReloadTokenizer","$onChangeMode","$modeId","$isPlaceholder","oldMode","$stopWorker","$startWorker","attachToSession","wrapMethod","$wrapMethod","foldingRules","terminate","getMode","isNaN","getScrollLeft","getScreenWidth","$computeWidth","getLineWidgetMaxWidth","screenWidth","lineWidgetsWidth","lineWidgetWidth","force","$wrapLimit","longestScreenLine","foldIndex","foldStart","$getStringScreenWidth","$getUndoSelection","setUndoSelect","enable","isUndo","fromRange","toPosition","toRange","collDiff","oldStart","newStart","indentRows","indentString","outdentRows","rowRange","deleteRange","$moveLines","$clipRowToDocument","moveLinesUp","moveLinesDown","duplicateLines","$clipColumnToRow","setUseWrapMode","useWrapMode","setWrapLimitRange","$wrapLimitRange","adjustWrapLimit","desiredLimit","$printMargin","limits","wrapLimit","$constrainWrapLimit","getWrapLimit","setWrapLimit","limit","getWrapLimitRange","foldLineBefore","wrapData","walkTokens","$getDisplayTokens","PLACEHOLDER_START","PLACEHOLDER_BODY","$computeWrapSplits","displayLength","lastSplit","lastDocSplit","isCode","$wrapAsCode","indentedSoftWrap","$indentedSoftWrap","maxIndent","addSplit","indentation","SPACE","TAB","TAB_SPACE","getWrapIndent","minSplit","PUNCTUATION","CHAR_EXT","CHAR","maxScreenColumn","screenColumn","getRowLength","getRowLineCount","getRowWrapIndent","getScreenLastRowColumn","documentToScreenColumn","getDocumentLastRowColumn","docColumn","getRowSplitData","screenToDocumentRow","screenToDocumentColumn","rowLength","doCache","maxRow","foldStartRow","wrapRow","screenRowOffset","getScreenLength","screenRows","$getWidgetScreenLength","$setFontMetrics","fm","$enableVarChar","getCharacterWidth","wrap","$wrap","firstLineNumber","useSoftTabs","foldStyle","Search","$matchIterator","sr","sc","er","ec","skipCurrent","findAll","needle","$assembleRegExp","$isMultiLine","prevRange","replacement","preserveCase","$disableFakeMultiline","caseSensitive","$supportsUnicodeFlag","wholeWord","wordBoundary","firstChar","needleArray","lastChar","addWordBoundary","$assembleMultilineRegExp","backwards","forEachInLine","MultiHashHandler","$singleCommand","commandKeyBinding","addCommands","addCommand","removeCommand","bindKey","_buildKeyHash","keepCommand","ckb","keyId","cmdGroup","keyPart","chain","binding","parseKeys","_addCommandToBinding","removeCommands","bindKeys","keyList","$keyChain","isDefault","HashHandler","CommandManager","byName","$checkCommandState","isAvailable","returnValue","toggleRecording","$inReplay","recording","macro","$addCommandToMacro","oldMacro","replay","trimMacro","mac","description","showSettingsMenu","showErrorMarker","scrollIntoView","centerSelection","gotoLine","prompt","$type","multiSelectAction","getAllRanges","findNext","findPrevious","aceCommandGroup","navigateFileStart","navigateUp","times","navigateFileEnd","navigateDown","navigateWordLeft","navigateLineStart","navigateLeft","navigateWordRight","navigateLineEnd","navigateRight","selectPageDown","scrollPageDown","gotoPageDown","selectPageUp","scrollPageUp","gotoPageUp","jumpToMatching","$copyWithEmptySelection","$handlePaste","duplicateSelection","sortLines","modifyNumber","copyLinesUp","copyLinesDown","removeToLineStart","removeToLineEnd","removeWordLeft","removeWordRight","blockOutdent","blockIndent","splitLine","transposeLetters","transposeSelections","autoIndent","openLink","firstLineEndCol","selectedCount","insertLine","curLine","newRanges","exitMultiSelectMode","LineWidgets","widgetManager","updateOnChange","renderWidgets","measureWidgets","_changedWidgets","$onChangeEditor","updateOnFold","_inDocument","removeLineWidget","$updateRows","noWidgets","$oldWidget","$registerLineWidget","addLineWidget","zIndex","coverGutter","pixelHeight","$fold","onWidgetChanged","w1","getWidgetsAtRow","updateFull","changedWidgets","fixedWidth","ceil","coverLine","gutterWidth","fullWidth","padding","scrollBar","GutterKeyboardHandler","gutterLayer","activeRowIndex","activeLane","annotationTooltip","$onGutterKeyDown","$blurGutter","isRowVisible","scrollToLine","$rowToRowIndex","$cursorCell","nearestFoldIndex","$findNearestFoldWidget","nearestAnnotationIndex","$findNearestAnnotation","$focusAnnotation","$focusFoldWidget","$handleGutterKeyboardInteraction","GutterKeyboardEvent","lane","$switchLane","$rowIndexToRow","rowFoldingWidget","$blurFoldWidget","cells","childNodes","$moveFoldWidgetDown","$moveAnnotationDown","$moveFoldWidgetUp","$moveAnnotationUp","$blurAnnotation","$isFoldWidgetVisible","isRowFullyVisible","isIconVisible","$getFoldWidget","$isAnnotationVisible","$getAnnotation","foldWidget","keyboardFocusClassName","desinationLane","annotationIndex","foldWidgetIndex","cell","gutterKeyboardHandler","getKey","getRow","isInAnnotationLane","isInFoldLane","defaultCommands","Editor","getContainerElement","getTextAreaContainer","textarea","keyBinding","$search","$historyTracker","$initOperationListeners","_$emitInputEvent","setSession","$opResetTimer","$lastSel","commandEvent","prevOp","previousCommand","scrollSelectionIntoView","animateScrolling","sel","$mergeUndoDeltas","prev","mergeableCommands","$mergeableCommands","shouldMerge","mergeNextCommand","sequenceStartTime","keyboardHandler","$keybindingId","oldSession","$onDocumentChange","$onTokenizerUpdate","$onChangeTabSize","$onChangeWrapLimit","$onChangeWrapMode","$onChangeFold","$onChangeFrontMarker","$onChangeBackMarker","$onChangeBreakpoint","$onChangeAnnotation","$onCursorChange","$onScrollTopChange","$onScrollLeftChange","$onSelectionChange","onDocumentChange","onChangeMode","onTokenizerUpdate","onChangeTabSize","onChangeWrapLimit","onChangeWrapMode","onChangeFrontMarker","onChangeBackMarker","onChangeBreakpoint","onChangeAnnotation","onCursorChange","onScrollTopChange","onScrollLeftChange","onSelectionChange","oldEditor","getSession","resize","onResize","getTheme","getFontSize","setFontSize","$highlightBrackets","$highlightPending","$bracketHighlight","markerIds","$getDirectionForHighlight","tagNamesRanges","getMatching","markerType","getHighlightIndentGuides","$textLayer","$highlightIndentGuide","$isFocused","showCursor","visualizeFocus","hideCursor","visualizeBlur","$cursorChange","updateCursor","$updateHighlightActiveLine","updateLines","scrollToY","scrollToX","$highlightActiveLine","$selectionStyle","$selectionColorConflict","$maxLines","$minLines","$highlightLineMarker","$selectionMarker","$highlightSelectedWord","$getSelectionHighLightRegexp","wordWithBoundary","updateFrontMarkers","updateBackMarkers","updateBreakpoints","updateText","getSelectedText","nl","copyLine","inVirtualSelectionMode","isFullLine","getBehavioursEnabled","lineState","shouldOutdent","$enableAutoIndent","lineIndent","selectedRange","currIndent","prevLineState","composition","applyComposition","forEachSelection","setScrollSpeed","getScrollSpeed","setDragDelay","setSelectionStyle","setHighlightActiveLine","shouldHighlight","getHighlightActiveLine","setHighlightGutterLine","getHighlightGutterLine","setHighlightSelectedWord","getHighlightSelectedWord","setAnimatedScroll","shouldAnimate","getAnimatedScroll","getShowInvisibles","setDisplayIndentGuides","getDisplayIndentGuides","setHighlightIndentGuides","setShowPrintMargin","showPrintMargin","getShowPrintMargin","setPrintMarginColumn","getPrintMarginColumn","setBehavioursEnabled","enabled","setWrapBehavioursEnabled","setShowFoldWidgets","getShowFoldWidgets","setFadeFoldWidgets","fade","getFadeFoldWidgets","new_range","setGhostText","removeGhostText","originalRange","$getSelectedRows","getNumberAt","_numberRx","amount","charRange","isFinite","nr","fp","decimals","nnr","toFixed","replaceRange","toggleWord","currWordStart","wordParts","curLength","itLength","that","reg","wordPairs","$toggleWordPairs","negate","firstCondition","res","findLinkAt","columnPosition","previousPosition","currentPosition","wordParts_1","wordParts_1_1","endPoint","moved","totalDiff","rangeIndex","subRows","compositionState","showComposition","setCompositionText","hideComposition","getFirstVisibleRow","getLastVisibleRow","getFirstFullyVisibleRow","getLastFullyVisibleRow","$getVisibleRowCount","getScrollBottomRow","getScrollTopRow","$moveByPage","scrollToRow","center","animate","alignCursor","getCursorPositionScreen","expand","tokenCount","matchType","bracketType","brackets","tagsRanges","lineNumber","navigateTo","replaced","$tryReplace","replaceAll","getLastSearchOptions","newRange","revealRange","setAutoScrollEditorIntoView","shouldScroll","$scrollAnchor","scrollAnchor","onChangeSelection","onBeforeRender","onAfterRender","searchBox","$pixelPos","$cursorStyle","cursorLayer","setSmoothBlinking","isBlinking","selectionStyle","highlightActiveLine","highlightSelectedWord","copyWithEmptySelection","behavioursEnabled","wrapBehavioursEnabled","enableAutoIndent","autoScrollEditorIntoView","showLineNumbers","setShowLineNumbers","$loop","CHANGE_GUTTER","$relativeLineNumbers","relativeNumberRenderer","relativeLineNumbers","$showLineNumbers","$updatePlaceholder","hasValue","$composition","placeholderNode","$placeholder","content","blurCommand","focusOnEnterKeyup","customScrollbar","hScrollBarAlwaysVisible","vScrollBarAlwaysVisible","highlightGutterLine","animatedScroll","printMarginColumn","printMargin","fadeFoldWidgets","showFoldWidgets","displayIndentGuides","highlightIndentGuides","showGutter","fontFamily","maxLines","minLines","scrollPastEnd","fixedWidthGutter","hasCssTransforms","maxPixelHeight","useResizeObserver","useSvgGutterIcons","showFoldedAnnotations","getText","lastLineNumber","$renderer","Lines","canvasHeight","cellCache","$offsetCoefficient","moveContainer","firstRowScreen","pageChanged","oldConfig","newConfig","computeLineTop","screenTop","screenPage","computeLineHeight","$cacheCell","fragment","insertAdjacentElement","createCell","initElement","Gutter","parentEl","$showFoldWidgets","$updateAnnotations","rowInfo","annoText","annoType","gutterOffset","oldLastRow","$updateCursorRow","onCreateCell","$renderCell","$updateGutterWidth","gutterRenderer","$firstLineNumber","lastLineText","$fixedWidth","$padding","$computePadding","$highlightGutterLine","$cursorRow","updateLineHighlight","scrollLines","$renderLines","textNode","annotationNode","annotationIconNode","decorations","rowText","foldClass","isClosedFold","foldAnnotationClass","annotationInFold","foldRange","getShowLineNumbers","paddingLeft","borderRightWidth","paddingRight","Marker","setPadding","setMarkers","markers","elt","css","$getTop","drawFullLineMarker","drawScreenLineMarker","drawTextMarker","drawMultiLineMarker","childElementCount","lastChild","stringBuilder","extraStyle","curr","lineRange","range1","drawBidiSingleLineMarker","radiusClass","extraLength","textTokens","Set","isTextToken","tokenType","has","Text","$updateEolChar","EOL_CHAR","EOL_CHAR_LF","EOL_CHAR_CRLF","margin","getLineHeight","$fontMetrics","measure","$pollSizeChanges","checkForSizeChanges","$pollSizeChangesTimer","$computeTabString","showSpaces","showTabs","showEOL","$highlightIndentGuides","tabStr","$tabStrings","span","TAB_CHAR","$indentGuideRe","spaceClass","spaceContent","SPACE_CHAR","tabClass","tabContent","lineElements","lineElementsIdx","heightChanged","lineElement","$renderLine","$renderLinesFragment","lineEl","$useLineGroups","$renderToken","valueFragment","simpleSpace","controlCharacter","cjkSpace","cjk","cloneNode","renderIndentGuide","cols","$highlightIndentGuideMarker","indentLevel","initialIndent","elementIndentLevel","currentIndent","$renderHighlightIndentGuide","$clearActiveIndentGuide","$setIndentGuideActive","$createLineElement","$renderWrappedLine","splitChars","$renderOverflowMessage","$renderSimpleLine","overflowEl","$getFoldLineTokens","lastLineEl","invisibleEl","EOF_CHAR","renderTokens","addTokens","Cursor","isVisible","blinkInterval","smoothBlinking","cursors","addCursor","$updateCursors","$updateOpacity","$startCssAnimation","animationDuration","$isAnimating","$stopCssAnimation","blinking","restartTimer","setBlinkInterval","removeCursor","intervalId","timeoutId","$isSmoothBlinking","blink","onScreen","isCursorInView","pixelPos","$selectionMarkers","cursorIndex","drawCursor","$setOverwrite","MAX_SCROLL_H","Scrollbar","classSuffix","setVisible","skipEvent","onScroll","coeff","VScrollBar","scrollHeight","$scrollbarWidth","$minWidth","setHeight","setScrollHeight","setInnerHeight","HScrollBar","setWidth","setInnerWidth","setScrollWidth","ScrollBar","ScrollBarV","ScrollBarH","VScrollWidth","HScrollHeight","eType","mousePageY","startTop","thumbTop","scrollTopFromThumbTop","thumbHeight","pageHeight","viewHeight","slideHeight","scrollWidth","mousePageX","startLeft","thumbLeft","scrollLeftFromThumbLeft","thumbWidth","pageWidth","viewWidth","slideWidth","RenderLoop","onRender","pending","changes","$recursionLimit","_flush","change","clear","CHAR_COUNT","USE_OBSERVER","ResizeObserver","FontMetrics","$setMeasureNodeStyles","$measureNode","$addObserver","isRoot","visibility","font","$measureSizes","fontWeight","boldSize","charSizes","allowBoldFonts","$observer","observe","setPolling","disconnect","$getZoom","zoom","$initTransformMeasureNodes","transformCoordinates","clientPos","elPos","solve","l1","l2","det","sub","mul","m2","ut","u","f","Decorator","canvas","pixelRatio","heightRatio","canvasWidth","minDecorationHeight","halfMinDecorationHeight","colors","dark","light","$updateDecorators","ctx","getContext","clearRect","priorities","compensateFold","compensateFoldRows","currentY","y1","y2","yCenter","fillStyle","fillRect","GutterLayer","MarkerLayer","TextLayer","CursorLayer","HScrollBarCustom","VScrollBarCustom","editorCss","VirtualRenderer","onGutterResize","$markerBack","textLayer","$markerFront","$horizScroll","$vScroll","$scrollAnimation","scrollMargin","updateCharacterSize","$size","scrollerHeight","scrollerWidth","$dirty","minHeight","v","$renderChanges","defaultView","CHANGE_FULL","$addResizeObserver","$allowBoldFonts","$updatePrintMargin","onChangeNewLineMode","$changedLines","CHANGE_LINES","CHANGE_TEXT","CHANGE_MARKER","updateFontSize","$updateSizeAsync","resizing","$updateCachedSize","$resizeTimer","$changes","$customScrollbar","$updateCustomScrollbar","$extraHeight","oldSize","CHANGE_SIZE","CHANGE_SCROLL","$showGutter","$computeLayerConfig","availableWidth","$showPrintMargin","$printMarginColumn","$animatedScroll","getShowGutter","setShowGutter","$printMarginEl","containerEl","posTop","posLeft","setScrollMargin","sm","setMargin","getHScrollBarAlwaysVisible","$hScrollBarAlwaysVisible","setHScrollBarAlwaysVisible","alwaysVisible","getVScrollBarAlwaysVisible","$vScrollBarAlwaysVisible","setVScrollBarAlwaysVisible","$updateScrollBarV","$scrollPastEnd","$updateScrollBarH","freeze","$frozen","unfreeze","CHANGE_H_SCROLL","st","$scrollDecorator","$updateLines","CHANGE_CURSOR","CHANGE_MARKER_FRONT","CHANGE_MARKER_BACK","$autosize","desiredHeight","$maxPixelHeight","$gutterWidth","hideScrollbars","longestLine","$getLongestLine","horizScroll","hScrollChanged","vScrollBefore","vScrollChanged","firstRowHeight","lineCount","charCount","$viewMargin","newLeft","newTop","topMargin","bottomMargin","$stopAnimation","currentTop","currentLeft","twoCharsWidth","alignment","$calcSteps","fromValue","toValue","x_min","STEPS","steps","initialScroll","oldSteps","$timer","endAnimation","scrollTo","canvasPos","$hasCssTransforms","$blockCursor","$useTextareaForIME","addToken","removeExtraToken","insertPosition","textLines","$ghostText","$ghostTextWidget","pixelPosition","ghostTextHeight","newToken","$themeId","$theme","setMouseCursor","attachToShadowRoot","$resizeObserver","contentRect","workerUrl","Worker","blob","Blob","blobBuilder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","getBlob","$workerBlob","blobURL","URL","webkitURL","createObjectURL","WorkerClient","worker","$createWorkerFromOldConfig","$sendDeltaQueue","changeListener","onMessage","callbackId","callbacks","onmessage","topLevelNamespaces","classname","importScripts","nameToUrl","toUrl","normalizePath","$normalizePath","tlns","deltaQueue","onerror","$doc","cmd","emit","ex","attachToDocument","q","UIWorkerClient","main","emitSync","sender","messageBuffer","workerClient","processNext","setEmitSync","Main","PlaceHolder","others","mainClass","othersClass","$onUpdate","onUpdate","$others","undoStack","$undostack","$undoStackDepth","setup","other","showOtherMarkers","othersActive","hideOtherMarkers","updateAnchors","lengthDiff","inMainRange","distanceFromStart","newPos","otherPos","updateMarkers","updateMarker","undosRequired","isSamePoint","alt","ctrl","accel","selectionMode","isMultiSelect","mouseX","mouseY","screenAnchor","screenCursor","$enableJumpToDef","$blockSelectEnabled","addSelectionMarker","oldRange","removeSelectionMarker","tmpSel","rectSel","blockSelect","newCursor","removeSelectionMarkers","rectangularRangeBlock","updateSelectionMarkers","onSelectionInterval","selectMoreLines","selectMore","joinSelections","splitIntoLines","alignCursors","multiSelectCommands","getSelectionMarkers","$blockChangeEvents","$onAddRange","$onRemoveRange","mergeOverlappingRanges","lastRange","$initRangeList","toggleBlockSelection","includeEmptyLines","xBackwards","startOffsetX","endOffsetX","docEnd","yBackwards","MultiSelect","$multiselectOnSessionChange","$onMultiSelect","$onSingleSelect","onSessionChange","$checkMultiselectChange","altCursor","altDown","addAltCursorListeners","selectionMarkerCount","markerList","$onMultiSelectExec","inVirtualMode","keepOrder","$byLines","cmdResult","anim","buf","additive","skip","screenLead","toRemove","words","stopAtFirst","sameRowRanges","maxCol","minSpace","spaceOffsets","spaceOffset","fr","lr","guessRange","$reAlignText","forceLeft","startW","textW","endW","isLeftAligned","isRightAligned","alignLeft","enableMultiselect","enableBlockSelect","FoldMode","foldingStartMarker","foldingStopMarker","indentationBlock","startLevel","openingBracketBlock","closingBracketBlock","oldWidget","gutterAnno","comparator","binarySearch","matched","findAnnotations","arrow","onmousedown","Renderer","edit","_id","env","tagName","oldNode","createEditSession","is","singletonTags","blockTags","formatOptions","lineBreaksAfterCommasInCurlyBlock","beautify","nextToken","tabString","breakBefore","spaceBefore","spaceAfter","lastDepth","lastIndent","unindent","roundDepth","curlyDepth","curRow","rowsToAdd","indentNextLine","inTag","inCSS","inBlock","parents","caseBody","trimNext","trimLine","trimCode","trimRight","trimLeft","searchboxCss","SearchBox","showReplaceForm","spellcheck","title","setEditor","searchRange","$syncOptions","$initElements","sb","replaceBox","searchOption","replaceOption","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","searchCounter","activeInput","$searchBarKb","setSearchRange","searchRangeMarker","checked","noMatch","updateCounter","MAX_COUNT","findPrev","replaceAndFindNext","active","$closeSearchBarKb","isReplace","supportType","supportFunction","supportConstant","supportConstantColor","supportConstantFonts","numRe","pseudoElements","pseudoClasses","CssHighlightRules","keywordMapper","strings","escapes","MatchingBraceOutdent","propertyMap","CssCompletions","completionsDefined","defineCompletions","inParens","getPropertyValueCompletions","getPropertyCompletions","skipSemicolon","caption","snippet","CssBehaviour","BaseFoldMode","commentRegex","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","forceMultiline","getCommentRegionBlock","getSectionRange","startIndent","subRange","CStyleFoldMode","$outdent","$completer","snippetFileId","DocCommentHighlightRules","getTagRule","getStartRule","getEndRule","GolangHighlightRules","stringEscapeRe","tokenizedLine","JsDocCommentHighlightRules","identifierRe","JavaScriptHighlightRules","escapedRe","comments","noES6","no_regex","jsx","JSX","tagRegex","jsxTag","jsxJsRule","jsxAttributes","reference","endState","results","JsonHighlightRules","JsxHighlightRules","buildinConstants","reserved","PythonHighlightRules","strPre","strRawPre","strFormatPre","strRawFormatPre","integer","intPart","pointFloat","floatNumber","stringEscape","PythonFoldMode","outdents","XmlHighlightRules","normalize","processing_instruction","doctype","int_subset","cdata","attr_reference","tag_whitespace","whitespace","attribute_value","embedTagRules","XmlBehaviour","rightSpace","tokenEndColumn","tokenRow","tokenColumn","voidElements","nextIndent","optionalEndTags","Tag","selfClosing","_getFirstTagInLine","_findEndTagInLine","getCommentFoldWidget","tags","XmlFoldMode","createRoot","hydrateRoot","hasElementType","Element","hasMap","Map","hasSet","hasArrayBuffer","ArrayBuffer","isView","equal","it","entries","flags","valueOf","$$typeof","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","amdD","getter","__esModule","definition","prop","toStringTag","nmd","paths","createContext","Icon","family","weight","rest","getCSSClasses","propTypes","isRequired","ItemTrigger","collapsed","toggleChange","useContext","iconType","trigger","onClick","AccordionItem","collapsedProp","ref","setCollapsed","useState","useMemo","expandToContent","contextValue","Provider","defaultProps","forwardRef","AccordionItemHeader","usearrowastrigger","getSize","componentSize","setComponentSize","current","handleResize","useCallback","useLayoutEffect","resizeObserver","savedHandler","useRef","useEffect","eventListener","Collapsible","contentContainer","collapseWrapper","refContainerSize","contentContainerStyle","setContentContainerStyle","onWindowResize","CSSTransition","onEnter","onExit","in","classNames","AccordionItemContent","Accordion","Item","Header","Content","Button","customButton","iconFamily","iconPosition","iconOnly","noStyle","getCssClasses","cssClasses","sizeClass","disabledClass","displayClass","themeClass","iconOnlyClass","noStyleClass","getButtonIcon","buttonType","cloneElement","getButtonType","ButtonGroup","CardHeader","CardBody","align","CardFooter","CardTitle","CardTitleGroup","CardSubTitle","CardSummary","CardTitleIcon","Card","Body","Footer","Title","TitleGroup","SubTitle","Summary","wait","immediate","callNow","Loader","withbackground","Message","onClose","noMargin","Chart","areaStyleColors","dataLoaded","hasData","series","zoomStart","zoomEnd","seriesConfig","noDataComponent","noDataComponentProp","zoomColors","tykChartInstance","setTykChartInstance","chartWrapperRef","lineBarChart","defaultOpts","fromJS","color","toolbox","orient","itemSize","showTitle","feature","dataZoom","dataBackground","lineStyle","areaStyle","handleStyle","textStyle","borderColor","fillerColor","legend","axisPointer","grid","containLabel","xAxis","boundaryGap","axisLine","axisTick","yAxis","axisLabel","animationEasing","seriesDefault","LinearGradient","smooth","symbolSize","pieChart","formatter","radius","avoidLabelOverlap","animationType","labelLine","normal","length2","geoChart","dispose","eventCallBack","debouncedMethod","debounce","getZr","prevInstance","prevOption","prevType","prevSeries","equals","selectedType","selectedOptions","selectedSeries","finalOpts","mergeDeep","toJS","entry","seriesData","buildChartOptions","dispatchAction","dataZoomSelectActive","seriesIndex","dataIndex","prevZoomStart","prevZoomEnd","startValue","endValue","chartHasData","getStyle","memo","savedCallback","ToastMessage","handleClose","itemIndex","ToastContainer","notify","updateNotifications","msgID","random","prevMessages","onMessageClosed","newMessages","fn","createNotification","render","bindNotify","danger","CopyToClipboard","txtRef","createRef","onKeyUp","ModalFooter","ModalBody","Modal","disableCloseCommands","opened","showBackdrop","restProps","modalClasses","backdropClasses","themeIcon","onKeyDown","Confirm","confirmBtnText","cancelBtnText","setOpen","setCallback","cancelCallback","setCancelCallback","callbackFunc","cancelCallbackFunc","beforeCallback","FixedWrapper","showShadow","fixedWrapperRef","attachShadow","scrollY","debouncedAttachShadow","InfiniteScroller","hasMore","initialLoad","loadMore","pageNumber","refChild","showLoader","setShowLoader","containerRef","refChildSize","shouldLoad","loadMoreData","prevPageNumber","scrollHandler","prevRefChildSize","PropTypes","oneOfType","arrayOf","bool","instanceOf","FloatingContainer","forceDisplay","displayAxis","preferredPosition","infiniteScrollerConfig","localRef","floatingContainerRef","contentWrapperRef","viewportOffset","schedulePositionUpdate","topSpace","bottomSpace","leftSpace","hasTopSpace","hasBottomSpace","hasLeftSpace","hasRightSpace","positionedVerticallyFitsInViewport","positionedHorizontallyFitsInViewport","getDisplayForVertical","getDisplayForHorizontal","getDisplayWhereItFits","determineDisplay","targetPosition","vpLeft","vpTop","leftPos","auto","matchElement","matchStart","matchEnd","topPos","maxWidth","getStylesForTop","getStylesForBottom","getStylesForLeft","getStylesForRight","adjustPosition","createPortal","InfoNote","ListItem","List","labelwidth","flexBasis","styleCopy","structuredClone","getListStyle","NavBar","pre","subtitle","withTabs","subtitleContent","NavigationItem","Navigation","PortalContext","PanelBody","noPadding","Consumer","portalContext","collapsable","PanelFooter","PanelHeader","Component","HeaderTag","onToggle","collapsibleIconPosition","Panel","onToggleCollapse","collapsedState","setCollapsedState","handleToggle","panelTheme","collapsbleIconPosition","toggleCollapse","Pill","RevealPanelService","setRefs","wrapper","panel","unbindEvents","bindEvents","ensureRefs","mouseDown","initialRect","initialEvent","isPrimaryMouseButtonDown","newY","finalHeight","notifyListeners","buttons","heightVal","reason","isHidden","deinit","RevealPanelHeaderLeft","RevealPanelHeaderRight","mergeClasses","RevealPanel","onHeightChange","parentSelector","contentStyle","contentClassName","gutterClassName","wrapperClassName","panelRef","gutterRef","wrapperRef","panelService","useImperativeHandle","headerLeft","headerRight","contents","child","TempRevealPanel","HeaderLeft","HeaderRight","TabsContext","TabContent","addTab","hideTab","updateTab","showTab","selectedPath","tabData","tabsId","tabExists","rendered","hideTabContent","tabs","tempTabData","prevTabData","shouldRender","TabContext","Tab","tabsContext","tabContext","setPath","tempPath","Tabs","onTabChange","setTabs","setSelectedPath","setRendered","initialPath","setInitialPath","setCurrentSelectedPath","tempRendered","collapsible","prevTabs","tempTabs","tabsState","tempTabsState","toggleTab","getTabCssClass","tabId","genTabs","currentTabs","updateTabsList","icon","closable","isOpened","additionalClickParents","isActive","setIsActive","tooltipRef","activeEvents","onMouseEnter","onMouseLeave","handleDocumentClick","TextEllipsis","Pagination","totalNrOfPages","selectedPage","setSelectedPage","pagesArray","nrOfPages","pagesArr","currentNr","pageNr","at","getPagesArr","goToPage","tableContext","HeaderCell","sortable","sortOrder","setSortOrder","sendMessage","allRowsSelected","columns","selectable","generateSelectable","allowSelectAll","isCheckbox","Checkbox","displayError","displayNote","note","Cell","styling","events","Row","SelectableCheckbox","Table","noDataMessage","loading","infiniteScrolling","onChangeMsg","setOnChangeMsg","itemsListRef","sortRows","order","selectAllRows","selectRow","setPagination","pagination","api","getTable","every","totalPages","num","nrItemsOnPage","perPage","Column","cSize","cOffset","nogutters","DropdownContext","DropdownItem","customdropdownitem","eventKey","dropdownItemCLick","dropdownContext","itemProps","onSelectItem","selectedItem","showCheckmark","Dropdown","isElemInRightView","dropdownWidth","isElemInBottomView","dropdownHeight","elHeight","super","dropdownRef","dropdownListRef","dropdownButtonRef","toggleDropdown","handleClickOutside","componentDidMount","getStyles","componentDidUpdate","prevProps","closeDropdown","componentWillUnmount","itemId","closeOnSelect","onSelect","selectedItemProps","dropdownEl","offsetPosition","customTop","customLeft","getWrapperCssClasses","btnGroup","btnGroupSize","btnTheme","hasCustomContent","listclassnames","getBtnTitle","btnTitle","stopButtonTextChange","appendTo","btnClassName","btnSize","customBtnTitle","showDropdownIcon","showTriggerButton","DropdownWrapperTag","DropdownTrigger","splitTrigger","toggle","onTriggerClick","DropdownListWrapper","dropdownValue","Dropdown2","setSelectedValueAsTitle","setIsOpen","handleOutsideClick","triggerElement","CodeEditor","disableValidation","finalSetOptions","getCodeEditorError","getLabelStyles","getNonLabelWidth","handleOnChange","handleOnBlur","htmlFor","editorProps","$blockScrolling","editorInstance","getStateSelectedValues","multiple","Combobox","closeList","openList","filterByName","itemValue","inputValue","stateSelectedValues","searchText","comboboxRef","valuesListRef","inputRef","textRef","focusInput","handleItemsNavigation","handleComboboxDropdownClick","handleListItemClick","handlePillRemoveClick","manageSelectedTags","setInputWidth","unBindEvents","getDerivedStateFromProps","nextProps","stringify","filteredValues","filterValues","cursorNext","previousState","methodName","tempState","removeSelectedValue","allowCustomValues","getSearchText","getSelectedIndex","getListItemCssClasses","getComboboxListCssClass","themes","iTheme","getInputError","elWidth","getComboboxDisplayData","reduce","prevValue","tempValue","selectedIndex","selectedValues","isInInitialValues","addSelectedValue","manageSelectedValues","tempSelectedValues","tempStateSelectedValues","ok","searchItem","renderInput","visbility","renderDropdown","autoFocus","CustomListComponent","Value","tagSeparators","addTagOnBlur","renderValue","valueOverflow","dummyElementRef","setInputValue","inputWidth","entryFieldOnChange","dummy","triggerAction","textValue","isPlaceholder","renderCustomValue","entryFieldOnKeyDown","listRef","searchValue","activeItem","renderListItem","showSearch","block","isNoneSelected","renderSelectAllOption","Combobox2","propValue","propValues","maxProp","matchItemFn","renderList","renderListProp","onBeforeChange","floatingContainerConfig","expandMode","displayDropdownTrigger","required","validateOnChange","rootRef","comboboxControlRef","getValueFromProp","setValues","normalizeValue","setSearchValue","setActiveItem","setIsOpened","valuesExpanded","setValuesExpanded","localValidationError","setLocalValidationError","getThemeClasses","getFilteredValues","openDropdown","updateSearchValue","newSearchValue","fv","isValidValue","newValues","localError","updateValue","addTag","listValueIndex","lv","finalValue","selectValue","valIndex","with","selectAllValues","moveUpActiveItem","visibleItems","activeIndex","moveDownActiveItem","executeTriggerAction","onTagMessage","removeTag","renderIcon","sv","nv","vals","valuesElement","updateScroll","mobserver","MutationObserver","robserver","childList","subtree","currentValuesClasses","onClickCapture","existingVal","DatePicker","onOpen","pickerInstance","setPickerInstance","dateRef","hasValueChanged","prevDate","currentDate","getTime","diffDates","date","onDateChange","dateValue","instance","defaultDate","setDate","openCalendar","inputStyle","addonStyle","getInputField","dateFormat","_typeof","requiredArgs","isDate","toDate","argument","argStr","NaN","toInteger","dirtyNumber","startOfUTCISOWeek","dirtyDate","day","getUTCDay","setUTCDate","getUTCDate","setUTCHours","getUTCISOWeekYear","year","getUTCFullYear","fourthOfJanuaryOfNextYear","setUTCFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","defaultOptions","getDefaultOptions","startOfUTCWeek","_ref","_ref2","_ref3","_options$weekStartsOn","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","weekStartsOn","locale","RangeError","getUTCWeekYear","_options$firstWeekCon","firstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","addLeadingZeros","targetLength","sign","signedYear","month","getUTCMonth","getUTCHours","getUTCMinutes","getUTCSeconds","numberOfDigits","milliseconds","getUTCMilliseconds","G","localize","era","ordinalNumber","unit","lightFormatters","Y","signedWeekYear","weekYear","Q","quarter","M","week","firstWeek","startOfUTCWeekYear","getUTCWeek","I","isoWeek","fourthOfJanuary","startOfUTCISOWeekYear","getUTCISOWeek","D","dayOfYear","timestamp","setUTCMonth","difference","getUTCDayOfYear","E","dayOfWeek","localDayOfWeek","isoDayOfWeek","dayPeriodEnumValue","dayPeriod","hours","H","K","S","X","_localize","timezoneOffset","_originalDate","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","z","originalDate","T","dirtyDelimiter","absOffset","minutes","delimiter","dateLongFormatter","pattern","formatLong","timeLongFormatter","longFormatters","P","dateTimeFormat","matchResult","datePattern","timePattern","dateTime","protectedDayOfYearTokens","protectedWeekYearTokens","throwProtectedError","format","formatDistanceLocale","lessThanXSeconds","one","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","defaultWidth","formats","full","long","medium","short","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchedString","parsePatterns","defaultParseWidth","object","findKey","valueCallback","formatDistance","tokenValue","addSuffix","comparison","formatRelative","_date","_baseDate","_options","rem100","narrow","abbreviated","wide","am","pm","midnight","noon","morning","afternoon","evening","night","parsePattern","parseResult","any","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","_ref4","_options$locale2","_options$locale2$opti","_ref5","_ref6","_ref7","_options$locale3","_options$locale3$opti","_defaultOptions$local3","_defaultOptions$local4","formatStr","defaultLocale","isValid","utcDate","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","getTimezoneOffsetInMilliseconds","dirtyAmount","addMilliseconds","subMilliseconds","formatterOptions","firstCharacter","longFormatter","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","isProtectedDayOfYearToken","EditableListForm","getMainFormValue","components","mainFormValue","submitButtonRef","submitForm","errors","mainError","addValueOnFieldChange","getMainFormButtonWidth","createRefs","propsComponents","stateComponents","validateValue","getFormCssClasses","noLabels","getButtonClassName","buttonStyle","displayType","getComponentsError","errorPersist","validatorsNames","validate","validatorName","validator","validationmessages","hasMainFormErrors","resetForm","showMainError","onSubmit","validationmessage","buttonName","ComponentName","EditableList","getItemListValue","getListItemCssClass","buttonWidth","handleFormSubmit","dropdownListItemRef","addValues","triggerOnChange","handleItemUpdate","editMode","handleChildrenOnChange","getListItemsCssClass","getFormInputKey","getListItemText","itemData","separator","setItemEditMode","closeListItems","isInList","removeListItem","removedItem","valueArr","tempItemValue","nextValue","genListItem","clonedComponents","genList","appendToElement","formButtonTitle","formButtonStyle","addButtonName","onAddRow","ListHeader","fields","field","FieldsList","onDelete","rowIndex","tempField","EditableList2","hideOnEmpty","internalErrors","setInternalErrors","updateRowValue","fieldIndex","componentValue","tempValueArr","tempErrors","tempFieldError","Components","internalError","setInternalError","onFieldChange","errorMsg","deleteRow","rowValues","colValue","flat","hasErrors","FileInput","accept","fileInputRef","files","Input","getAddon","initValue","stateValue","isfield","inputgroupaddonleft","inputgroupaddonright","getInputGroupAddon","getInputComponent","autoComplete","Input2","getInputElement","MultiselectItem","itemType","isInSearchValue","fieldsToSearchOn","onAddRemove","itemDisplayTemplate","maxSelections","nrSelectedItems","onGetItemDetails","details","detailsDisplayTemplate","getItemContent","getItemLoader","MultiselectPanel","inputPlaceholder","noItemsMessage","items","onCustomSearch","customSearch","panelType","serverLoad","itemsPageNumber","itemsNrPages","loadMoreItems","searchOnChange","itemChanged","cloneItems","clonedItem","renderListItems","diffObjects","Multiselect","entityNamePlural","getItemDetails","setOpened","prevOpened","itemsChange","allItems","valueClone","valueChange","providerValue","Radio","nospace","Select","setStateValue","selectedValue","getSelectError","getSelectComponent","SelectableList","checkboxalticon","itemTemplate","primaryKey","handleOnSelect","newSelectedItems","elemPosition","getListItemCssClassName","tvalue","Textarea","ToggleItem","getNotchCssClasses","itemRef","saveSelectedRef","onItemSelected","ToggleItemWrapper","Toggle","onDark","separated","selectedRef","setSelectedRef","notchRef","toggleRef","positionNotch","selectedWidth","FORM_DEBOUNCE","setConfig","getValueFromPath","acc","form","properties","DEFAULT_DEBOUNCE_TIME_MS","myValue","setMyValue","getOnChangeProps","hasIsFieldProp","executeDebounced","valueOrEvent","nodeName","onChangeProps","formError","touched","submitCount","status","componentProps","hasOwn","FieldCodeEditor","FieldCombobox","getComboboxError","FieldDropdown","FieldPagination","FieldCombobox2","FormDatePicker","getDatePickerError","FieldEditableList","getEditableListError","FieldFileInput","FieldInput","FieldMultiselect","getMultiselectError","FieldSelect","handleEvent","FieldSelectableList","FieldToggle","useInterval"],"sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index a6d64763..2a3a5b0f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@tyk-technologies/tyk-ui", - "version": "4.1.0", + "version": "4.1.1", "description": "Tyk UI - ui reusable components", "main": "src/index.js", "scripts": { From a28221770bea6fa3cafd84a9e1e3f66be2f0f2b8 Mon Sep 17 00:00:00 2001 From: lghiur Date: Thu, 27 Jun 2024 08:29:52 +0300 Subject: [PATCH 3/4] fixed tests --- src/components/Button/Button.test.js | 4 +--- src/components/Message/Message.test.js | 2 +- src/components/Table/Table.test.js | 4 ++-- src/components/Table/js/header-cell.js | 2 +- src/components/Toast/Toast.test.js | 6 +++--- src/components/Tooltip/Tooltip.test.js | 6 +++--- src/form/components/Dropdown2/Dropdown.test.js | 2 +- src/form/components/Dropdown2/DropdownTrigger.js | 2 -- 8 files changed, 12 insertions(+), 16 deletions(-) diff --git a/src/components/Button/Button.test.js b/src/components/Button/Button.test.js index 99b45da8..07cf5bfc 100644 --- a/src/components/Button/Button.test.js +++ b/src/components/Button/Button.test.js @@ -36,7 +36,6 @@ describe('Button', () => { \n );\n\n return wrap\n ?
    {trigger}
    \n : trigger;\n}\n\nItemTrigger.propTypes = {\n wrap: PropTypes.bool,\n};\n\nexport default ItemTrigger;\n","import React, {\n useMemo, useState, useContext, forwardRef,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport AccordionContext from './AccordionContext';\nimport AccordionItemContext from './AccordionItemContext';\nimport ItemTrigger from './AccordionItemTrigger';\n\nfunction AccordionItem({\n collapsed: collapsedProp,\n children,\n className,\n disabled,\n}, ref) {\n const { arrow } = useContext(AccordionContext);\n const [collapsed, setCollapsed] = useState(collapsedProp);\n\n const toggleChange = () => {\n if (disabled) {\n return;\n }\n\n setCollapsed(!collapsed);\n };\n\n const classes = useMemo(() => [\n 'tyk-accordion__item',\n arrow.expandToContent\n ? `tyk-accordion__item--trigger-position-${arrow.position}`\n : 'tyk-accordion__item--trigger-in-header',\n className,\n collapsed === false && 'tyk-accordion__item--active',\n ].filter(Boolean).join(' '), [arrow, className, collapsed]);\n\n const contextValue = useMemo(() => ({\n collapsed,\n disabled,\n toggleChange,\n }), [collapsed, disabled, toggleChange]);\n\n return (\n
    \n \n {arrow.expandToContent && (\n \n )}\n {children}\n \n
    \n );\n}\n\nAccordionItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n collapsed: PropTypes.bool,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n};\n\nAccordionItem.defaultProps = {\n collapsed: false,\n};\n\nexport default forwardRef(AccordionItem);\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport AccordionContext from './AccordionContext';\nimport AccordionItemContext from './AccordionItemContext';\nimport ItemTrigger from './AccordionItemTrigger';\n\nfunction AccordionItemHeader({ className, children }) {\n const { collapsed, disabled, toggleChange } = useContext(AccordionItemContext);\n const { usearrowastrigger, arrow } = useContext(AccordionContext);\n const iconType = collapsed ? 'chevron-down' : 'chevron-up';\n const classes = [\n 'tyk-accordion__item-header',\n usearrowastrigger && 'tyk-accordion__arrow-trigger',\n className,\n ].filter(Boolean).join(' ');\n\n return (\n
    \n {\n !usearrowastrigger\n ? (\n \n {children}\n \n \n )\n : (\n <>\n {!arrow.expandToContent && arrow.position === 'left' && (\n \n )}\n
    {children}
    \n {!arrow.expandToContent && arrow.position === 'right' && (\n \n )}\n \n )\n }\n
    \n );\n}\n\nAccordionItemHeader.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n};\n\nexport default AccordionItemHeader;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-transition-group\");","import { useCallback, useState, useLayoutEffect } from 'react';\n\nconst getSize = (el) => {\n if (!el) {\n return {\n width: 0,\n height: 0,\n };\n }\n\n return {\n width: el.offsetWidth,\n height: el.offsetHeight,\n };\n};\n\nconst useComponentSize = (ref) => {\n const [componentSize, setComponentSize] = useState(getSize(ref ? ref.current : {}));\n const handleResize = useCallback(() => {\n if (ref.current) {\n setComponentSize(getSize(ref.current));\n }\n }, [ref]);\n\n useLayoutEffect(() => {\n handleResize();\n\n let resizeObserver = new ResizeObserver(() => {\n handleResize();\n });\n resizeObserver.observe(ref.current);\n\n return () => {\n resizeObserver.disconnect(ref.current);\n resizeObserver = null;\n };\n }, [ref.current]);\n\n return componentSize;\n};\n\n/** @component */\nexport default useComponentSize;\n","import { useEffect, useRef } from 'react';\n\nconst useEventListener = (eventName, handler, element) => {\n const savedHandler = useRef();\n useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(() => {\n const isSupported = element?.addEventListener;\n if (!isSupported) {\n // eslint-disable-next-line consistent-return\n return;\n }\n\n const eventListener = (event) => savedHandler.current(event);\n element.addEventListener(eventName, eventListener);\n\n // eslint-disable-next-line consistent-return\n return () => {\n element.removeEventListener(eventName, eventListener);\n };\n }, [eventName, element]);\n};\n\n/** @component */\nexport default useEventListener;\n","import React, {\n useRef, useState, useCallback, useEffect,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { CSSTransition } from 'react-transition-group';\nimport { useEventListener, useComponentSize } from '../../hooks';\n\n/**\n * Collapsible is a component that helps you to collapse/expand any type of content\n */\nfunction Collapsible({\n className,\n collapsed,\n children,\n ...rest\n}) {\n const contentContainer = useRef(null);\n const collapseWrapper = useRef(null);\n const refContainerSize = useComponentSize(contentContainer);\n const [contentContainerStyle, setContentContainerStyle] = useState({\n // eslint-disable-next-line\n height: (collapsed) ? 0 : 'auto',\n });\n\n const setHeight = (height) => {\n setContentContainerStyle({\n height: `${height}px`,\n });\n };\n\n const getHeight = () => (contentContainer.current ? contentContainer.current.clientHeight : 0);\n\n const onEnter = () => {\n setHeight(getHeight());\n };\n\n const onExit = () => {\n setHeight(0);\n };\n\n useEffect(() => {\n if (!collapsed\n && refContainerSize?.height\n && contentContainerStyle.height !== refContainerSize?.height\n ) {\n setHeight(refContainerSize.height);\n }\n }, [refContainerSize.height]);\n\n const onWindowResize = useCallback(() => {\n if (!collapsed && contentContainer.current) {\n setHeight(getHeight());\n collapseWrapper.current.style.height = `${getHeight()}px`;\n }\n }, [collapsed, contentContainer.current]);\n\n useEventListener('resize', onWindowResize, window);\n\n return (\n \n \n \n { children }\n \n \n \n );\n}\n\nCollapsible.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** Describes if the content of Collapsible should be hidden or not */\n collapsed: PropTypes.bool,\n /** CSS classes that can be passed to the Collapsible element */\n className: PropTypes.string,\n};\n\nexport default Collapsible;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Collapsible from '../../Collapsible';\nimport AccordionItemContext from './AccordionItemContext';\n\nfunction AccordionItemContent({ children, className }) {\n const { collapsed } = useContext(AccordionItemContext);\n\n const classes = [\n 'tyk-accordion__item-content',\n className,\n ].filter(Boolean).join(' ');\n\n return (\n
    \n \n { children }\n \n
    \n );\n}\n\nAccordionItemContent.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n};\n\nexport default AccordionItemContent;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport AccordionItem from './js/AccordionItem';\nimport AccordionItemHeader from './js/AccordionItemHeader';\nimport AccordionItemContent from './js/AccordionItemContent';\nimport AccordionContext from './js/AccordionContext';\n\nfunction Accordion({\n className,\n children,\n usearrowastrigger,\n arrow = { position: 'right', expandToContent: false },\n}) {\n const classes = [\n 'tyk-accordion',\n className,\n ].filter(Boolean).join(' ');\n\n const contextValue = useMemo(() => ({\n usearrowastrigger,\n arrow,\n }), [usearrowastrigger, arrow]);\n\n return (\n
    \n \n {children}\n \n
    \n );\n}\n\nAccordion.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n usearrowastrigger: PropTypes.bool,\n arrow: PropTypes.shape({\n position: PropTypes.oneOf(['left', 'right']),\n expandToContent: PropTypes.bool,\n }),\n};\n\nAccordion.defaultProps = {\n usearrowastrigger: false,\n};\n\n// For Readme.md : Start\nAccordion.Item = AccordionItem;\nAccordion.Item.Header = AccordionItemHeader;\nAccordion.Item.Content = AccordionItemContent;\n// For Readme.md : End\n\nexport default Accordion;\n","import React, { cloneElement, forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../Icon';\n\n/**\n * Button component.\n */\nfunction Button(props, ref) {\n const {\n customButton,\n children,\n iconType,\n iconFamily,\n iconPosition,\n iconOnly,\n id,\n className,\n disabled,\n display,\n href,\n onClick,\n noStyle,\n size,\n theme,\n type,\n ...rest\n } = props;\n\n const getCssClasses = () => {\n const cssClasses = ['tyk-button'].concat(className ? className.split(' ') : []);\n const sizeClass = (size) ? `tyk-button--${size}` : 'tyk-button--md';\n const disabledClass = (disabled) ? 'disabled' : '';\n const displayClass = display || '';\n const themeClass = theme ? `tyk-button--${theme}` : '';\n const iconOnlyClass = iconOnly ? 'tyk-button--icon-only' : '';\n const noStyleClass = noStyle ? 'tyk-button--no-style' : '';\n\n cssClasses.push(iconOnlyClass);\n cssClasses.push(themeClass);\n cssClasses.push(sizeClass);\n cssClasses.push(disabledClass);\n cssClasses.push(displayClass);\n cssClasses.push(noStyleClass);\n\n if (iconType) {\n cssClasses.push(`icon-${iconPosition || 'left'}`);\n }\n\n return cssClasses.join(' ');\n };\n\n const getButtonIcon = (position) => {\n const iPos = iconPosition || 'left';\n\n return (\n (iconType && iPos === position)\n ? \n : null\n );\n };\n\n const getButtonType = () => {\n let buttonType;\n\n if (customButton) {\n return (\n <>\n { cloneElement(customButton, {\n className: getCssClasses(),\n disabled,\n })}\n \n );\n }\n\n if (href) {\n buttonType = (\n \n { getButtonIcon('left') }\n { children }\n { getButtonIcon('right') }\n \n );\n } else {\n buttonType = (\n // eslint-disable-next-line react/button-has-type\n \n { getButtonIcon('left') }\n { children && {children} }\n { getButtonIcon('right') }\n \n );\n }\n\n return buttonType;\n };\n\n return (\n getButtonType()\n );\n}\n\nButton.propTypes = {\n /**\n * Content of a button. Can be a DOM element or a React component\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n customButton: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n ]),\n className: PropTypes.string,\n /**\n * Display type: inline/block. Default is inline\n */\n display: PropTypes.string,\n /**\n * Sets the button disabled state\n */\n disabled: PropTypes.bool,\n /**\n * Having this property set the button will become a link\n */\n id: PropTypes.string,\n href: PropTypes.string,\n iconPosition: PropTypes.string, // left or right\n iconFamily: PropTypes.string,\n iconOnly: PropTypes.bool,\n iconType: PropTypes.string,\n noStyle: PropTypes.bool,\n /**\n * Callback function, called when the button si clicked\n */\n onClick: PropTypes.func,\n /**\n * Describes the appearence of the button (ex: primary, danger, primary-outline etc.)\n */\n theme: PropTypes.string,\n /**\n * Type of the button (ex: button, submit etc.)\n */\n type: PropTypes.string,\n /**\n * Describes the size of the button (sm, md, lg). Default one is md\n */\n size: PropTypes.string,\n};\n\nButton.defaultProps = {\n theme: '',\n type: 'button',\n};\n\nexport default forwardRef(Button);\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ButtonGroup({ className, children, label }, ref) {\n return (\n
    \n {Boolean(label) && }\n
    {children}
    \n
    \n );\n}\n\nButtonGroup.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n};\n\nexport default forwardRef(ButtonGroup);\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardHeader({\n right = null,\n children,\n}) {\n return (\n
    \n {children &&
    {children}
    }\n {right &&
    {right}
    }\n
    \n );\n}\n\nCardHeader.propTypes = {\n right: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardBody({\n align = 'top',\n children,\n}) {\n return (\n
    \n
    \n {children}\n
    \n
    \n );\n}\n\nCardBody.propTypes = {\n align: PropTypes.oneOf(['top', 'center', 'bottom']),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardBody;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardFooter({ children }) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardFooter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitle({\n maxLines = 1, // accepted values: 1, 2\n children,\n}) {\n return (\n

    \n {children}\n

    \n );\n}\n\nCardTitle.propTypes = {\n maxLines: PropTypes.number,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitle;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitleGroup({\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardTitleGroup.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitleGroup;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardSubTitle({\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardSubTitle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardSubTitle;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardSummary({\n maxLines = 2, // accepted values: 1, 2, 3, 4, 5\n children,\n}) {\n return (\n

    \n {children}\n

    \n );\n}\n\nCardSummary.propTypes = {\n maxLines: PropTypes.number,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardSummary;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitleIcon({\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardTitleIcon.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitleIcon;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport CardHeader from './CardHeader';\nimport CardBody from './CardBody';\nimport CardFooter from './CardFooter';\nimport CardTitle from './CardTitle';\nimport CardTitleGroup from './CardTitleGroup';\nimport CardSubTitle from './CardSubTitle';\nimport CardSummary from './CardSummary';\nimport CardTitleIcon from './CardTitleIcon';\n\nfunction Card({\n className = '',\n height = 'auto',\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCard.propTypes = {\n className: PropTypes.string,\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nCard.Header = CardHeader;\nCard.Body = CardBody;\nCard.Footer = CardFooter;\nCard.Title = CardTitle;\nCard.TitleGroup = CardTitleGroup;\nCard.Icon = CardTitleIcon;\nCard.SubTitle = CardSubTitle;\nCard.Summary = CardSummary;\n\nexport default Card;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"echarts\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"immutable\");","export default (func, wait, immediate) => {\n let timeout;\n return function debouncer(...args) {\n const context = this;\n const later = () => {\n timeout = null;\n if (!immediate) {\n func.apply(context, args);\n }\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) {\n func.apply(context, args);\n }\n };\n};\n","import { useEffect, useRef } from 'react';\n\nconst usePrevious = (value) => {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n};\n\n/** @component */\nexport default usePrevious;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Loader({ className, position = 'relative', withbackground = false }) {\n const classes = [\n 'loading',\n position,\n className,\n ].filter(Boolean).join(' ');\n\n const loader = (\n
    \n
    \n
    \n
    \n
    \n
    \n );\n\n return withbackground\n ?
    {loader}
    \n : loader;\n}\n\nLoader.propTypes = {\n /** add a class to loader */\n className: PropTypes.string,\n /** position of loader (absolute / relative) */\n position: PropTypes.string,\n /** defines weather loader should be renders with or without background */\n withbackground: PropTypes.bool,\n};\n\nexport default Loader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../Icon';\n\n/**\n * The Message component is used to highlight important content to the users.\n *\n * If the content you are displaying needs immediate attention or is a feedback,\n * consider using `toast` instead\n */\nfunction Message({\n children, theme, onClose, noMargin, className,\n}) {\n function getCssClasses() {\n return [\n 'tyk-message',\n `tyk-message--${theme || 'info'}`,\n noMargin && 'no-margin',\n className,\n ].filter(Boolean).join(' ');\n }\n\n const iconType = theme === 'success' ? 'check' : 'exclamation';\n\n return (\n
    \n \n
    \n { children }\n
    \n {onClose && (\n \n )}\n
    \n );\n}\n\nMessage.propTypes = {\n /** Set theme for message (eg. default, success, danger, etc) */\n theme: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** add a class to loader */\n className: PropTypes.string,\n /** Removes margins by adding `no-margin` class */\n noMargin: PropTypes.bool,\n /** Callback for clicking on the \"x\" */\n onClose: PropTypes.func,\n};\n\nexport default Message;\n","import React, {\n useState, useEffect, useMemo, useRef, memo,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport * as echarts from 'echarts';\nimport { fromJS } from 'immutable';\n\nimport debounce from '../../utils/debounce';\nimport { usePrevious } from '../../hooks';\nimport Loader from '../Loader';\nimport Message from '../Message';\nimport worldMap from './maps/world.json';\n\necharts.registerMap('world', worldMap);\n\nfunction Chart({\n areaStyleColors,\n dataLoaded,\n hasData,\n highlight,\n type,\n option,\n series,\n onChange,\n zoomStart,\n zoomEnd,\n title,\n seriesConfig = [],\n noDataComponent: noDataComponentProp = null,\n zoomColors,\n style,\n}) {\n const [tykChartInstance, setTykChartInstance] = useState(null);\n const chartWrapperRef = useRef(null);\n const onResize = () => {\n if (tykChartInstance) {\n tykChartInstance.resize();\n }\n };\n\n const noDataComponent = useMemo(\n () => (noDataComponentProp\n ? noDataComponentProp()\n : (\n \n No data to display\n \n )),\n [noDataComponentProp],\n );\n\n const lineBarChart = {\n defaultOpts: fromJS({\n title: {\n show: true,\n text: title,\n left: 0,\n },\n color: [],\n toolbox: {\n right: '0',\n orient: 'horizontal',\n itemSize: 15,\n showTitle: true,\n feature: null,\n },\n dataZoom: [{\n show: true,\n start: 0,\n end: 100,\n orient: 'horizontal',\n dataBackground: {\n lineStyle: {\n color: zoomColors?.lineStyle || '#368493',\n },\n areaStyle: {\n color: zoomColors?.areaStyle || '#368493',\n },\n },\n handleStyle: {\n color: zoomColors?.handleStyle || '#368493',\n },\n textStyle: {\n color: zoomColors?.textStyle || '#368493',\n },\n borderColor: 'transparent',\n fillerColor: zoomColors?.fillerColor || 'rgba(54, 132, 147, 0.1)',\n }],\n legend: {\n show: false,\n // data: [],\n // right: '1%',\n },\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'cross',\n },\n },\n grid: {\n left: '1%',\n right: '1%',\n bottom: '50px',\n top: '40px',\n containLabel: true,\n },\n xAxis: {\n boundaryGap: false,\n type: 'category',\n splitLine: {\n show: true,\n lineStyle: {\n type: 'dotted',\n color: '#F0F0F0',\n },\n },\n axisLine: {\n show: false,\n },\n axisTick: {\n show: false,\n },\n data: [],\n },\n yAxis: {\n min: 'dataMin',\n boundaryGap: true,\n axisPointer: {\n show: true,\n },\n splitLine: {\n lineStyle: {\n type: 'dotted',\n color: '#F0F0F0',\n },\n show: true,\n },\n axisLabel: {\n show: true,\n },\n axisLine: {\n show: true,\n },\n axisTick: {\n show: false,\n },\n type: 'value',\n },\n textStyle: {\n color: '#5a5a68',\n },\n series: [],\n animationEasing: 'elasticOut',\n }),\n seriesDefault: fromJS({\n data: [],\n type: 'line',\n areaStyle: {\n opacity: 1,\n color: areaStyleColors\n ? new echarts.graphic.LinearGradient(\n 0,\n 0,\n 1,\n 1,\n areaStyleColors.map((color, index) => ({\n offset: index,\n color,\n })),\n )\n : [],\n },\n smooth: false,\n symbolSize: 7,\n name: '',\n }),\n };\n\n const pieChart = {\n defaultOpts: fromJS({\n tooltip: {\n trigger: 'axis',\n formatter: '{b}: {c} ({d}%)',\n },\n legend: {\n orient: 'horizontal',\n x: 'left',\n y: 'top',\n data: [],\n },\n color: [],\n series: [],\n }),\n seriesDefault: fromJS({\n type: 'pie',\n center: [\n '50%',\n '55%',\n ],\n radius: [\n '50%',\n '75%',\n ],\n avoidLabelOverlap: false,\n animationType: 'scale',\n animationEasing: 'elasticOut',\n labelLine: {\n normal: {\n show: true,\n smooth: 0.2,\n length: 6,\n length2: 6,\n },\n },\n data: [],\n }),\n };\n\n const geoChart = {\n defaultOpts: fromJS({\n series: [],\n }),\n seriesDefault: fromJS({\n type: 'map',\n data: [],\n }),\n };\n\n const buildChartOptions = (selectedType, selectedOptions, selectedSeries) => {\n let finalOpts = {};\n switch (selectedType) {\n case 'pie': {\n finalOpts = pieChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n\n selectedSeries.forEach((entry) => {\n finalOpts.series.push(pieChart.seriesDefault.mergeDeep(fromJS(entry)).toJS());\n });\n\n break;\n }\n\n case 'geo': {\n finalOpts = geoChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n\n selectedSeries.forEach((entry) => {\n finalOpts.series.push(geoChart.seriesDefault.mergeDeep(fromJS(entry)).toJS());\n });\n\n break;\n }\n\n default: {\n finalOpts = lineBarChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n if (Array.isArray(selectedOptions.yAxis)) {\n finalOpts.yAxis = selectedOptions.yAxis;\n }\n\n selectedSeries.forEach((entry, index) => {\n const seriesData = {\n ...lineBarChart.seriesDefault.toJS(),\n ...seriesConfig[index],\n ...entry,\n };\n finalOpts.series.push(seriesData);\n });\n break;\n }\n }\n return finalOpts;\n };\n\n useEffect(() => {\n window.addEventListener('resize', onResize);\n\n return () => {\n window.removeEventListener('resize', onResize);\n };\n }, [tykChartInstance]);\n\n useEffect(() => {\n if (!chartWrapperRef?.current) return;\n\n setTykChartInstance(echarts.init(chartWrapperRef.current));\n\n // eslint-disable-next-line consistent-return\n return () => {\n if (tykChartInstance) {\n tykChartInstance.dispose();\n }\n };\n }, [chartWrapperRef.current]);\n\n const eventCallBack = (e) => {\n if (onChange) {\n onChange(e);\n }\n };\n\n useEffect(() => {\n let debouncedMethod;\n if (tykChartInstance) {\n debouncedMethod = debounce(eventCallBack, 500);\n tykChartInstance.on('dataZoom', debouncedMethod);\n tykChartInstance.on('restore', debouncedMethod);\n tykChartInstance.on('click', debouncedMethod);\n\n tykChartInstance.on('mousemove', (params) => {\n if (params.data) {\n tykChartInstance.getZr().setCursorStyle('pointer');\n }\n });\n }\n\n return () => {\n if (tykChartInstance) {\n tykChartInstance.off('dataZoom', debouncedMethod);\n tykChartInstance.off('restore', debouncedMethod);\n tykChartInstance.off('click', debouncedMethod);\n }\n };\n }, [tykChartInstance, onChange]);\n\n const prevInstance = usePrevious(tykChartInstance);\n const prevOption = usePrevious(option);\n const prevType = usePrevious(type);\n const prevSeries = usePrevious(series);\n useEffect(() => {\n if (\n tykChartInstance\n && (\n !fromJS(prevInstance)?.equals?.(fromJS(tykChartInstance))\n || !fromJS(prevOption)?.equals?.(fromJS(option))\n || (prevType !== type)\n || !fromJS(prevSeries).equals?.(fromJS(series))\n )\n ) {\n tykChartInstance.clear();\n tykChartInstance.setOption(buildChartOptions(type, option, series));\n tykChartInstance.dispatchAction({\n type: 'takeGlobalCursor',\n key: 'dataZoomSelect',\n dataZoomSelectActive: true,\n });\n }\n }, [tykChartInstance, option, series, type]);\n\n useEffect(() => {\n if (tykChartInstance && highlight) {\n tykChartInstance.dispatchAction({\n type: 'highlight',\n seriesIndex: highlight.seriesIndex,\n dataIndex: highlight.dataIndex,\n });\n tykChartInstance.dispatchAction({\n type: 'showTip',\n seriesIndex: highlight.seriesIndex,\n dataIndex: highlight.dataIndex,\n });\n }\n }, [highlight]);\n\n const prevZoomStart = usePrevious(zoomStart);\n const prevZoomEnd = usePrevious(zoomEnd);\n useEffect(() => {\n if (\n tykChartInstance\n && zoomStart !== -1\n && zoomEnd !== -1\n && (\n prevZoomStart !== zoomStart\n || prevZoomEnd !== zoomEnd\n )\n ) {\n tykChartInstance.dispatchAction({\n type: 'dataZoom',\n startValue: zoomStart,\n endValue: zoomEnd,\n });\n }\n }, [zoomStart, zoomEnd]);\n\n const getStyle = () => {\n const tempStyle = style || {};\n\n if (!tempStyle.height) {\n tempStyle.height = '300px';\n }\n if (!tempStyle.width) {\n tempStyle.width = '100%';\n }\n return tempStyle;\n };\n\n const chartHasData = () => (\n (dataLoaded && (hasData === false || hasData === true)) ? hasData : true\n );\n\n const getCssClasses = () => {\n const cssClasses = ['tyk-chart'];\n\n if (!dataLoaded) {\n cssClasses.push('tyk-chart--loading-chart');\n }\n\n if (!chartHasData()) {\n cssClasses.push('tyk-chart--no-data');\n }\n\n return cssClasses.join(' ');\n };\n\n return (\n
    \n {\n !dataLoaded\n ? \n : null\n }\n \n {\n chartHasData()\n ? null\n : noDataComponent\n }\n
    \n );\n}\n\nChart.propTypes = {\n areaStyleColors: PropTypes.instanceOf(Array),\n dataLoaded: PropTypes.bool,\n hasData: PropTypes.bool,\n highlight: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n PropTypes.instanceOf(Array),\n ]),\n noDataComponent: PropTypes.func,\n zoomStart: PropTypes.number,\n zoomEnd: PropTypes.number,\n zoomColors: PropTypes.instanceOf(Object),\n option: PropTypes.instanceOf(Object),\n onChange: PropTypes.func,\n style: PropTypes.instanceOf(Object),\n type: PropTypes.string,\n title: PropTypes.string,\n series: PropTypes.instanceOf(Array),\n seriesConfig: PropTypes.instanceOf(Object),\n};\n\nexport default memo(Chart);\n","import { useEffect, useRef } from 'react';\n\nconst useTimeout = (callback, delay) => {\n const savedCallback = useRef();\n\n useEffect(\n () => {\n savedCallback.current = callback;\n },\n [callback],\n );\n\n useEffect(\n () => {\n function tick() {\n savedCallback.current();\n }\n if (delay !== null) {\n const id = setTimeout(tick, delay);\n return () => clearTimeout(id);\n }\n\n return () => {};\n },\n [delay],\n );\n};\n\n/** @component */\nexport default useTimeout;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../../Message';\nimport { useTimeout } from '../../../hooks';\n\nfunction ToastMessage(props) {\n const {\n children,\n options,\n onClose,\n index,\n } = props;\n const opts = {\n theme: 'success',\n delay: 3000,\n ...options,\n };\n let timer;\n\n const handleClose = (itemIndex) => {\n onClose(itemIndex);\n clearTimeout(timer);\n };\n\n useTimeout(() => handleClose(index), opts.delay);\n\n return (\n handleClose(index)}\n >\n {children}\n \n );\n}\n\nToastMessage.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n options: PropTypes.instanceOf(Object),\n onClose: PropTypes.func,\n index: PropTypes.number,\n};\n\nexport default ToastMessage;\n","import React, {\n useEffect, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToastMessage from './ToastMessage';\n\nfunction ToastContainer(props) {\n const [messages, setMessages] = useState({});\n const {\n notify,\n } = props;\n\n const updateNotifications = (message, options) => {\n const msgID = Math.floor(Math.random() * 1000000);\n\n setMessages((prevMessages) => ({\n ...prevMessages,\n [msgID]: {\n message,\n options,\n },\n }));\n };\n\n useEffect(() => {\n notify(updateNotifications);\n }, [messages]);\n\n const onMessageClosed = (index) => {\n const tempMessages = { ...messages };\n delete tempMessages[index];\n setMessages((prevMessages) => {\n const newMessages = { ...prevMessages };\n delete newMessages[index];\n return newMessages;\n });\n };\n\n return (\n
    \n {\n Object.keys(messages).map((msgID) => (\n messages[msgID]\n ? (\n \n {messages[msgID].message}\n \n )\n : null\n ))\n }\n
    \n );\n}\n\nToastContainer.propTypes = {\n notify: PropTypes.func,\n};\n\nexport default ToastContainer;\n","import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport ToastContainer from './js/ToastContainer';\n\n/**\n * Toast is a service that displays dialogs\n * on the bottom right part of the screen.\n *\n * The dialogs can have one of the Tyk UI themes, so that\n * it would match it's purpose (i.e success message, error message)\n *\n */\nclass ToastCreator {\n constructor() {\n const el = document.createElement('div');\n el.className = 'tyk-toast';\n document.body.appendChild(el);\n const root = createRoot(el);\n root.render();\n }\n\n bindNotify = (fn) => {\n this.createNotification = fn;\n };\n\n notify(message, options) {\n if (this.createNotification) {\n this.createNotification(message, options);\n }\n }\n\n danger(message, options) {\n this.notify(message, { ...options, theme: 'danger' });\n }\n\n success(message, options) {\n this.notify(message, { ...options, theme: 'success' });\n }\n\n warning(message, options) {\n this.notify(message, { ...options, theme: 'warning' });\n }\n\n info(message, options) {\n this.notify(message, { ...options, theme: 'info' });\n }\n}\n\nconst toast = new ToastCreator();\n\nexport default toast;\n","import React, { createRef, useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport toast from '../Toast';\n\n/**\n * - CopyToClipboard is used to copy string for a user.\n * - Can be used normally with a text or a custom components (Eg. Button, Icon, etc)\n */\n\nfunction CopyToClipboard(props) {\n const {\n display, copy, children, onCopy, message = 'copied',\n } = props;\n const txtRef = createRef();\n const handleClick = useCallback(() => {\n if (onCopy) {\n onCopy();\n }\n\n if (!window.navigator.clipboard) {\n txtRef.current.select();\n document.execCommand('copy');\n toast.success(message);\n return;\n }\n window.navigator.clipboard.writeText(copy);\n toast.success(message);\n }, [onCopy, txtRef]);\n\n return (\n <>\n \n {children || display}\n \n {!window.navigator.clipboard ? (\n \n ) : null}\n \n );\n}\n\nCopyToClipboard.propTypes = {\n /** Message to be displayed after text is copied */\n message: PropTypes.string,\n /** Callback function executed after text is copied */\n onCopy: PropTypes.func,\n /** Text to be copied */\n copy: PropTypes.string.isRequired,\n /** Text to be displayed */\n display: PropTypes.string,\n /** Children of custom element if you are using any custom element */\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n ]),\n};\n\nexport default CopyToClipboard;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ModalFooter({ children }) {\n return (\n
    \n { children }\n
    \n );\n}\n\nModalFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default ModalFooter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ModalBody({ children }) {\n return (\n
    \n { children }\n
    \n );\n}\n\nModalBody.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default ModalBody;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { CSSTransition } from 'react-transition-group';\n\nimport Icon from '../Icon';\nimport ModalFooter from './js/ModalFooter';\nimport ModalBody from './js/ModalBody';\n\n/**\n * Modals add dialogs confirmation boxes, notifications, or completely custom content\n * - only one Modal can be opened at a time\n * - are unmounted when Modal is closed\n */\nfunction Modal({\n children,\n theme = 'none',\n disableCloseCommands = false,\n opened = false,\n onClose = () => {},\n size = 'md',\n className = '',\n showBackdrop = true,\n ...restProps\n}) {\n const modalClasses = [\n 'tyk-modal',\n `tyk-modal--theme-${theme}`,\n opened && 'opened',\n ].concat(className.split(' ')).filter(Boolean).join(' ');\n\n const backdropClasses = [\n 'tyk-modal__backdrop',\n opened && 'opened',\n ].filter(Boolean).join(' ');\n\n const themeIcon = {\n success: 'check',\n warning: 'exclamation',\n danger: 'exclamation',\n }[theme];\n\n return (\n <>\n {\n ReactDOM.createPortal(\n \n
    \n
    \n
    \n {theme !== 'none' && (\n
    \n \n
    \n )}\n { children }\n
    \n
    \n
    \n ,\n document.querySelector('body'),\n )\n }\n {showBackdrop && ReactDOM.createPortal(\n \n !disableCloseCommands && onClose()}\n onKeyDown={() => {}}\n type=\"button\"\n aria-label=\"Close\"\n />\n ,\n document.querySelector('body'),\n )}\n \n );\n}\n\nModal.Body = ModalBody;\nModal.Footer = ModalFooter;\n/* eslint-disable-next-line */\nModal.Header = ({ children }) => {\n console.warn('%cModal.Header%c is deprecated.', 'font-weight: bold', '');\n return (\n
    \n { children }\n
    \n );\n};\nModal.Header.propTypes = {\n children: PropTypes.element,\n};\n/* eslint-disable-next-line */\nModal.Title = ({ children }) => {\n console.warn('%cModal.Title%c is deprecated.', 'font-weight: bold', '');\n return (\n

    \n { children }\n

    \n );\n};\nModal.Title.propTypes = {\n children: PropTypes.element,\n};\n\nModal.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n /** one of \"success\", \"warning\", \"danger\", \"none\"; default is \"none\" */\n theme: PropTypes.string,\n /** If set on true, the Modal won't close when clicking on the overlay or by pressing ESC key */\n disableCloseCommands: PropTypes.bool,\n /** If true the Modal will be by default opened */\n opened: PropTypes.bool,\n /** Callback method when the Modal is closed */\n onClose: PropTypes.func,\n /** Width of the Moda: md or lg */\n size: PropTypes.string,\n showBackdrop: PropTypes.bool,\n};\n\nexport default Modal;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../Button';\nimport Modal from '../Modal';\n\n/**\n * Confirm component can be used to open a dialog () before a specific action\n */\nfunction Confirm(props) {\n const {\n children,\n title,\n description,\n confirmBtnText = 'Confirm',\n cancelBtnText = 'Cancel',\n } = props;\n const [open, setOpen] = useState(false);\n const [callback, setCallback] = useState(null);\n const [cancelCallback, setCancelCallback] = useState(null);\n\n const show = (callbackFunc, cancelCallbackFunc, beforeCallback) => (...args) => {\n if (beforeCallback) {\n beforeCallback(...args);\n }\n setOpen(true);\n setCallback(() => () => callbackFunc(...args));\n if (cancelCallbackFunc) {\n setCancelCallback(() => () => cancelCallbackFunc(...args));\n }\n };\n\n const hide = () => {\n setOpen(false);\n setCallback(null);\n setCancelCallback(null);\n };\n\n const cancel = () => {\n if (cancelCallback) {\n cancelCallback();\n }\n hide();\n };\n\n const confirm = () => {\n callback();\n hide();\n };\n\n return (\n <>\n {children(show)}\n \n \n

    {title}

    \n {description}\n
    \n \n \n {cancelBtnText}\n \n \n {confirmBtnText}\n \n \n
    \n \n );\n}\n\nConfirm.propTypes = {\n /** Sets the text for primary / confirmation button on opened modal */\n confirmBtnText: PropTypes.string,\n /** Sets the text for danger / abort button on opened modal */\n cancelBtnText: PropTypes.string,\n /** Sets the title for the opened modal */\n title: PropTypes.string,\n /** Sets the description for the opened modal */\n description: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n PropTypes.func,\n ]),\n};\n\nexport default Confirm;\n","import React, { useCallback, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport debounce from '../../utils/debounce';\n\n/**\n * FixedWrapper component, keeps all its children in a fix position on the page,\n * even if the scroll position changes\n * i.e: The top navigation bar of a page sits within FixedWrapper component\n */\nfunction FixedWrapper({ children, className, showShadow }) {\n const fixedWrapperRef = useRef(null);\n\n const attachShadow = useCallback(() => {\n const element = fixedWrapperRef.current;\n\n if (!element) {\n return;\n }\n\n if (window.scrollY) {\n element.classList.add('tyk-fixed-wrapper--scrolled');\n } else {\n element.classList.remove('tyk-fixed-wrapper--scrolled');\n }\n }, [fixedWrapperRef.current]);\n\n const debouncedAttachShadow = useCallback(debounce(attachShadow, 100), [attachShadow]);\n\n useEffect(() => {\n if (showShadow) {\n window.addEventListener('scroll', debouncedAttachShadow);\n }\n\n return () => {\n window.removeEventListener('scroll', debouncedAttachShadow);\n };\n }, [debouncedAttachShadow, showShadow]);\n\n return (\n
    \n { children }\n
    \n );\n}\n\nFixedWrapper.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** Css classes that can be passed to the FixedWraper element */\n className: PropTypes.string,\n /** If true, bottom shadow on the FixedWrapper component\n * is being displayed when scroll happens\n */\n showShadow: PropTypes.bool,\n};\n\nFixedWrapper.defaultProps = {\n className: '',\n};\n\nexport default FixedWrapper;\n","import React, {\n useEffect, useState, useRef, useCallback,\n} from 'react';\nimport { PropTypes } from 'prop-types';\n\nimport debounce from '../../utils/debounce';\nimport { usePrevious, useComponentSize } from '../../hooks';\nimport Loader from '../Loader';\n\nfunction InfiniteScroller({\n children,\n hasMore,\n initialLoad,\n loadMore,\n pageNumber,\n refChild,\n}) {\n const [showLoader, setShowLoader] = useState(false);\n const containerRef = useRef(null);\n const refChildSize = useComponentSize(refChild);\n\n useEffect(() => {\n if (initialLoad && typeof loadMore === 'function') {\n setShowLoader(false);\n loadMore(pageNumber);\n }\n }, [initialLoad]);\n\n const shouldLoad = useCallback(() => {\n if (!containerRef.current) return false;\n const { clientHeight, scrollTop } = containerRef.current;\n\n return (\n hasMore\n && (\n (clientHeight + Math.round(scrollTop) === refChildSize.height)\n || (clientHeight >= refChildSize.height)\n )\n );\n }, [containerRef, refChildSize.height]);\n\n const loadMoreData = useCallback(() => {\n if (hasMore && typeof loadMore === 'function') {\n loadMore(pageNumber + 1);\n setShowLoader(true);\n } else {\n setShowLoader(false);\n }\n }, [hasMore, pageNumber]);\n\n const prevPageNumber = usePrevious(pageNumber);\n const scrollHandler = useCallback(debounce(() => {\n if (shouldLoad() && prevPageNumber <= pageNumber) {\n loadMoreData();\n }\n }, 200), [loadMoreData, shouldLoad]);\n\n useEffect(() => {\n containerRef.current?.addEventListener('scroll', scrollHandler);\n return () => containerRef.current?.removeEventListener('scroll', scrollHandler);\n }, [containerRef, scrollHandler]);\n\n // if content resets (page number resets) scroll to top\n useEffect(() => {\n if (prevPageNumber > 0 && pageNumber === 0) {\n containerRef.current.scrollTop = 0;\n }\n }, [containerRef, pageNumber]);\n\n const prevRefChildSize = usePrevious(refChildSize);\n useEffect(() => {\n if (\n refChildSize && prevRefChildSize\n && refChildSize.height !== prevRefChildSize.height\n && showLoader === true\n ) {\n setShowLoader(false);\n }\n }, [showLoader, refChildSize.height]);\n\n useEffect(() => {\n if (\n refChild && refChildSize.height < containerRef.current.clientHeight\n && refChildSize.height\n && hasMore\n ) {\n loadMoreData();\n }\n }, [containerRef, refChildSize, refChild, hasMore]);\n\n return (\n
    \n \n { children }\n
    \n {showLoader && (\n \n )}\n
    \n );\n}\n\nInfiniteScroller.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n hasMore: PropTypes.bool,\n initialLoad: PropTypes.bool,\n pageNumber: PropTypes.number,\n loadMore: PropTypes.func,\n refChild: PropTypes.instanceOf(Object),\n};\n\nInfiniteScroller.defaultProps = {\n hasMore: true,\n};\n\nexport default InfiniteScroller;\n","import React, {\n useEffect, useRef, forwardRef,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\nimport InfiniteScroller from '../InfiniteScroller';\n\nconst VIEWPORT_INITIAL_PADDING = 5;\n\n/**\n * It displays a container relative to another element.\n * Meant to be used for dropdowns, tooltips, and other similar components.\n */\nfunction FloatingContainer({\n element,\n size = 'auto',\n forceDisplay = 'auto',\n displayAxis = 'auto',\n preferredPosition,\n offset = 0,\n className,\n children,\n infiniteScrollerConfig,\n}, ref) {\n const localRef = useRef(null);\n const floatingContainerRef = ref || localRef;\n const contentWrapperRef = useRef(null);\n // offset calculated on first render to make sure the floating container is inside the viewport\n const viewportOffset = useRef(null);\n\n function determineDisplay() {\n const target = element.current;\n const container = floatingContainerRef.current;\n if (!container) return preferredPosition ?? displayAxis === 'vertical' ? 'bottom' : 'right';\n\n const { left, top } = target.getBoundingClientRect();\n const topSpace = top;\n const bottomSpace = window.innerHeight - top - target.offsetHeight;\n const leftSpace = left;\n const rightSpace = window.innerWidth - left - target.offsetWidth;\n const hasTopSpace = topSpace > container.scrollHeight;\n const hasBottomSpace = bottomSpace > container.scrollHeight;\n const hasLeftSpace = leftSpace > container.offsetWidth;\n const hasRightSpace = rightSpace > container.offsetWidth;\n const positionedVerticallyFitsInViewport = left + target.offsetWidth / 2 - container.offsetWidth / 2 > 0; // eslint-disable-line max-len\n const positionedHorizontallyFitsInViewport = top + target.offsetHeight / 2 - container.scrollHeight / 2 > 0; // eslint-disable-line max-len\n\n if (\n displayAxis === 'vertical'\n || (\n displayAxis === 'auto'\n && (hasTopSpace || hasBottomSpace)\n && positionedVerticallyFitsInViewport\n )\n ) {\n return getDisplayForVertical({\n preferredPosition, hasTopSpace, hasBottomSpace, topSpace, bottomSpace,\n });\n }\n\n if (displayAxis === 'horizontal') {\n return getDisplayForHorizontal({\n preferredPosition, hasLeftSpace, hasRightSpace, leftSpace, rightSpace,\n });\n }\n\n return getDisplayWhereItFits({\n preferredPosition,\n hasTopSpace,\n hasBottomSpace,\n hasLeftSpace,\n hasRightSpace,\n positionedHorizontallyFitsInViewport,\n positionedVerticallyFitsInViewport,\n });\n }\n\n function adjustPosition() {\n const display = forceDisplay !== 'auto' ? forceDisplay : determineDisplay();\n const target = element.current;\n const container = floatingContainerRef.current;\n\n if (!target || !container) return;\n\n const targetPosition = target.getBoundingClientRect();\n const { left: vpLeft, top: vpTop } = viewportOffset.current ?? { left: 0, top: 0 };\n\n if (display === 'top') {\n Object.assign(container.style, getStylesForTop({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (display === 'bottom') {\n Object.assign(container.style, getStylesForBottom({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (display === 'left') {\n Object.assign(container.style, getStylesForLeft({\n targetPosition, target, container, size, offset,\n }));\n }\n\n if (display === 'right') {\n Object.assign(container.style, getStylesForRight({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (viewportOffset.current !== null) return;\n\n if (size === 'matchEnd') {\n viewportOffset.current = { left: 0, top: 0 };\n } else {\n const left = Number(container.style.left.replace('px', ''));\n const top = Number(container.style.top.replace('px', ''));\n viewportOffset.current = {\n left: left < 0 ? VIEWPORT_INITIAL_PADDING - left : 0,\n top: top < 0 ? VIEWPORT_INITIAL_PADDING - top : 0,\n };\n }\n }\n\n useEffect(() => {\n window.requestAnimationFrame(function schedulePositionUpdate() {\n adjustPosition();\n window.requestAnimationFrame(schedulePositionUpdate);\n });\n }, []);\n\n return createPortal(\n \n \n \n {children}\n
    \n \n
    ,\n document.querySelector('body'),\n );\n}\n\nFloatingContainer.propTypes = {\n /** A DOM element that the floating container will be displayed relative to. */\n element: PropTypes.instanceOf(Object),\n className: PropTypes.string,\n /** The size of the container.\n * If `auto` the size will be determined by its contents.\n * If `matchElement` it will take the width or the height of the element depending\n * on the `displayAxis` prop.\n * It can also be a function that returns a number representing the width\n * or the height in pixels.\n */\n size: PropTypes.oneOfType([\n PropTypes.oneOf(['auto', 'matchElement', 'matchStart', 'matchEnd']),\n PropTypes.func,\n ]),\n /**\n * The distance between the element and the floating container.\n * It can be positive or negative.\n */\n offset: PropTypes.number,\n /**\n * If `auto` the component will try to determine where to display the container relative to the\n * element (top, bottom, left, right).\n * It can also be one of top, bottom, left, right, to force the floating container to always be\n * displayed in that position.\n */\n forceDisplay: PropTypes.oneOf(['auto', 'top', 'bottom', 'left', 'right']),\n /**\n * It can be `auto`, `vertical` or `horizontal`. It specifies the axis where\n * it will be displayed when `forceDisplay` is `auto`.\n */\n displayAxis: PropTypes.oneOf(['auto', 'vertical', 'horizontal']),\n /**\n * If there is space on both sides of the axis preffer this side.\n */\n preferredPosition: PropTypes.oneOf(['top', 'bottom', 'left', 'right']),\n /**\n * Configuration object that will be passed to the infinite scroller component.\n */\n infiniteScrollerConfig: PropTypes.instanceOf(Object),\n};\n\nexport default forwardRef(FloatingContainer);\n\nfunction getDisplayForVertical({\n preferredPosition, hasTopSpace, hasBottomSpace, topSpace, bottomSpace,\n}) {\n if (preferredPosition === 'top' && hasTopSpace) return 'top';\n if (preferredPosition === 'bottom' && hasBottomSpace) return 'bottom';\n return hasBottomSpace || bottomSpace > topSpace ? 'bottom' : 'top';\n}\n\nfunction getDisplayForHorizontal({\n preferredPosition, hasLeftSpace, hasRightSpace, leftSpace, rightSpace,\n}) {\n if (preferredPosition === 'left' && hasLeftSpace) return 'left';\n if (preferredPosition === 'right' && hasRightSpace) return 'right';\n return hasRightSpace || rightSpace > leftSpace ? 'right' : 'left';\n}\n\nfunction getDisplayWhereItFits({\n preferredPosition, hasTopSpace, hasBottomSpace, hasLeftSpace, hasRightSpace,\n positionedHorizontallyFitsInViewport, positionedVerticallyFitsInViewport,\n}) {\n if (hasTopSpace && positionedVerticallyFitsInViewport) return 'top';\n if (hasBottomSpace && positionedVerticallyFitsInViewport) return 'bottom';\n if (hasRightSpace && positionedHorizontallyFitsInViewport) return 'right';\n if (hasLeftSpace && positionedHorizontallyFitsInViewport) return 'left';\n return preferredPosition ?? 'bottom';\n}\n\nfunction getStylesForTop({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = {\n auto: targetPosition.left + target.offsetWidth / 2 - container.offsetWidth / 2,\n matchElement: targetPosition.left,\n matchStart: targetPosition.left,\n matchEnd: targetPosition.right - container.offsetWidth,\n }[size];\n const topPos = targetPosition.top - container.offsetHeight - offset;\n style.left = `${leftPos + vpLeft}px`;\n style.top = `${topPos + vpTop}px`;\n\n if (size === 'matchElement') {\n style.width = `${target.offsetWidth}px`;\n } else if (size === 'matchEnd') {\n style.maxWidth = `${targetPosition.right - VIEWPORT_INITIAL_PADDING}px`;\n } else if (typeof size === 'function') {\n style.width = `${size(target.offsetWidth)}px`;\n }\n style.maxHeight = `${targetPosition.top - offset}px`;\n return style;\n}\n\nfunction getStylesForBottom({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = {\n auto: targetPosition.left + target.offsetWidth / 2 - container.offsetWidth / 2,\n matchElement: targetPosition.left,\n matchStart: targetPosition.left,\n matchEnd: targetPosition.right - container.offsetWidth,\n }[size];\n const topPos = targetPosition.bottom + offset;\n style.left = `${leftPos + vpLeft}px`;\n style.top = `${topPos + vpTop}px`;\n\n if (size === 'matchElement') {\n style.width = `${target.offsetWidth}px`;\n } else if (size === 'matchEnd') {\n style.maxWidth = `${targetPosition.right - VIEWPORT_INITIAL_PADDING}px`;\n } else if (typeof size === 'function') {\n style.width = `${size(target.offsetWidth)}px`;\n }\n style.maxHeight = `${window.innerHeight - targetPosition.bottom - offset}px`;\n return style;\n}\n\nfunction getStylesForLeft({\n targetPosition, target, container, size, offset,\n}) {\n const style = {};\n const leftPos = targetPosition.left - container.offsetWidth - offset;\n const topPos = {\n auto: targetPosition.top + target.offsetHeight / 2 - container.offsetHeight / 2,\n matchElement: targetPosition.top,\n matchStart: targetPosition.top,\n matchEnd: targetPosition.bottom - container.offsetHeight,\n }[size];\n style.left = `${leftPos}px`;\n style.top = `${topPos}px`;\n\n if (size === 'matchElement') {\n style.height = `${target.offsetHeight}px`;\n } else if (typeof size === 'function') {\n style.height = `${size(target.offsetHeight)}px`;\n }\n style.maxWidth = `${targetPosition.left - offset}px`;\n return style;\n}\n\nfunction getStylesForRight({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = targetPosition.left + target.offsetWidth + offset;\n const topPos = {\n auto: targetPosition.top + target.offsetHeight / 2 - container.offsetHeight / 2,\n matchElement: targetPosition.top,\n matchStart: targetPosition.top,\n matchEnd: targetPosition.bottom - container.offsetHeight,\n }[size];\n style.left = size === 'auto' ? `${leftPos + vpLeft}px` : `${leftPos}px`;\n style.top = size === 'auto' ? `${topPos + vpTop}px` : `${topPos}px`;\n\n if (size === 'matchElement') {\n style.height = `${target.offsetHeight}px`;\n } else if (typeof size === 'function') {\n style.height = `${size(target.offsetHeight)}px`;\n }\n style.maxWidth = `${window.innerWidth - targetPosition.left - target.offsetWidth - offset}px`;\n return style;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../Message';\n\nfunction InfoNote({ children }) {\n return (\n
    \n \n { children }\n \n
    \n );\n}\n\nInfoNote.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default InfoNote;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ListItem(props) {\n const {\n className,\n children,\n selected,\n } = props;\n\n return (\n
  • \n {children}\n
  • \n );\n}\n\nListItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n selected: PropTypes.bool,\n};\n\nListItem.defaultProps = {\n className: '',\n};\n\nexport default ListItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ListItem from './js/ListItem';\n\nfunction List(props) {\n const {\n className,\n children,\n label,\n labelwidth,\n theme,\n style,\n } = props;\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-list'];\n\n if (theme) {\n cssClasses.push(`tyk-list--${theme}`);\n }\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n };\n\n const getListStyle = () => {\n const styleCopy = structuredClone(style);\n if (labelwidth) {\n styleCopy.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styleCopy;\n };\n\n return (\n
    \n {\n label !== undefined\n ? (\n \n )\n : null\n }\n
      \n {children}\n
    \n
    \n );\n}\n\nList.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n label: PropTypes.string,\n labelwidth: PropTypes.string,\n theme: PropTypes.string,\n style: PropTypes.instanceOf(Object),\n};\n\nList.defaultProps = {\n theme: 'default',\n style: {},\n};\n\nList.Item = ListItem;\n\nexport default List;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction NavBar({\n align = 'center',\n children,\n left,\n right,\n title,\n pre,\n subtitle,\n withTabs,\n}) {\n const subtitleContent = subtitle ?

    { subtitle }

    : null;\n return (\n
    \n
    \n {pre && (\n
    {pre}
    \n )}\n {\n title\n ? (\n
    \n

    { title }

    \n { subtitleContent }\n
    \n )\n : subtitleContent\n }\n
    \n {left && (\n
    { left }
    \n )}\n {right && (\n
    { right }
    \n )}\n
    \n
    \n { children }\n
    \n );\n}\n\nNavBar.propTypes = {\n align: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n title: PropTypes.string,\n subtitle: PropTypes.string,\n pre: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n left: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n right: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n withTabs: PropTypes.bool,\n};\n\nexport default NavBar;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction NavigationItem({ children }) {\n return (\n
  • \n {children}\n
  • \n );\n}\n\nNavigationItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nexport default NavigationItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport NavigationItem from './js/NavigationItem';\n\nfunction Navigation({ children }) {\n return (\n
      \n {children}\n
    \n );\n}\n\nNavigation.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nNavigation.Item = NavigationItem;\n\nexport default Navigation;\n","import { createContext } from 'react';\n\nexport const PortalContext = createContext();\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Collapsible from '../../Collapsible';\nimport { PortalContext } from '../panel-context';\n\nfunction PanelBody({\n children,\n noPadding,\n className,\n ...rest\n}) {\n const getCssClasses = useCallback(\n () => [\n 'tyk-panel__body',\n className,\n noPadding && 'no-padding',\n ].filter(Boolean).join(' '),\n [className, noPadding],\n );\n\n return (\n \n {\n (portalContext) => (\n portalContext.collapsable\n ? (\n \n { children }\n \n )\n : (\n \n { children }\n
    \n )\n )\n }\n \n );\n}\n\nPanelBody.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n noPadding: PropTypes.bool,\n className: PropTypes.string,\n};\n\nexport default PanelBody;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction PanelFooter(props) {\n const { children } = props;\n return (\n
    \n { children }\n
    \n );\n}\n\nPanelFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default PanelFooter;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport { PortalContext } from '../panel-context';\n\nclass PanelHeader extends Component {\n getCssClasses(props) {\n const { className } = this.props;\n let cssClasses = ['tyk-panel__header'];\n\n if (props.collapsable) {\n cssClasses.push('collapsable');\n }\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n }\n\n render() {\n const {\n children,\n } = this.props;\n\n return (\n \n {\n (portalContext) => {\n const HeaderTag = portalContext.theme === 'blank' ? 'h3' : 'div';\n const iconType = portalContext.collapsed ? 'chevron-down' : 'chevron-up';\n\n return (\n \n { children }\n {\n portalContext.collapsable\n ?
    \n : null\n }\n \n );\n }\n }\n
    \n );\n }\n}\n\nPanelHeader.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]).isRequired,\n className: PropTypes.string,\n};\n\nexport default PanelHeader;\n","import React, {\n useCallback, useEffect, useMemo, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport PanelBody from './js/PanelBody';\nimport PanelFooter from './js/PanelFooter';\nimport PanelHeader from './js/PanelHeader';\n\nimport { PortalContext } from './panel-context';\n\nfunction Panel(props) {\n const {\n children,\n className,\n collapsed,\n collapsable,\n theme,\n onToggleCollapse,\n collapsibleIconPosition = 'right',\n } = props;\n const [collapsedState, setCollapsedState] = useState(collapsed || false);\n\n useEffect(() => {\n if (collapsed !== collapsedState) {\n setCollapsedState(collapsed);\n }\n }, [collapsed]);\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-panel'];\n const panelTheme = `tyk-panel--${theme || 'default'}`;\n const collapsbleIconPosition = `tyk-panel__icon-collapse--${collapsibleIconPosition}`;\n\n cssClasses.push(panelTheme);\n cssClasses.push(collapsbleIconPosition);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n if (collapsedState) {\n cssClasses.push('tyk-panel--collapsed');\n }\n\n return cssClasses.join(' ');\n };\n\n const handleToggle = useCallback(() => {\n setCollapsedState(!collapsedState);\n\n if (onToggleCollapse) {\n onToggleCollapse(!collapsedState);\n }\n }, [collapsedState, onToggleCollapse]);\n\n const context = useMemo(() => ({\n collapsable,\n collapsed: collapsedState,\n onToggle: handleToggle,\n theme,\n collapsibleIconPosition,\n }), [collapsable, collapsedState, collapsibleIconPosition, theme, handleToggle]);\n\n return (\n
    \n \n {\n (typeof children === 'function')\n ? children({\n toggleCollapse: handleToggle,\n })\n : children\n }\n \n
    \n );\n}\n\nPanel.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n collapsable: PropTypes.bool,\n collapsibleIconPosition: PropTypes.string,\n collapsed: PropTypes.bool,\n theme: PropTypes.string,\n onToggleCollapse: PropTypes.func,\n};\n\nPanel.Body = PanelBody;\nPanel.Footer = PanelFooter;\nPanel.Header = PanelHeader;\n\nexport default Panel;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * Pill\n */\nfunction Pill(props) {\n const {\n children,\n className,\n theme,\n } = props;\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-pill', ...theme.split(' ').map((t) => `tyk-pill--${t}`)];\n\n if (className) {\n cssClasses = cssClasses.concat(className);\n }\n\n return cssClasses.join(' ');\n };\n\n return (\n
    \n {children}\n
    \n );\n}\n\nPill.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n /** Css classes that can be passed to the Pill element */\n className: PropTypes.string,\n /** Theme that can be applied to a Pill */\n theme: PropTypes.string,\n};\n\nPill.defaultProps = {\n theme: 'default',\n};\n\nexport default Pill;\n","import { useRef } from 'react';\n\n/**\n * RevealPanelService is a class that manages the resizing of a panel element.\n * It provides methods to set the panel's height, hide and show it, and attach\n * event listeners for resizing.\n */\nclass RevealPanelService {\n #state = null; // Private state for mouse interactions.\n\n #panel = null; // The panel element to be resized.\n\n #gutter = null; // The gutter element used for resizing.\n\n #wrapper = null; // The wrapper element that contains the panel and gutter.\n\n #onHeightChangeCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #onDragStartCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #onDragEndCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #dragStarted = false;\n\n /**\n * Sets a callback function to be executed when the panel is resized.\n * @param {function} callback - The callback function to be called on panel resize.\n */\n on(eventName, listener) {\n let list = null;\n if (eventName === 'onHeightChange') {\n list = this.#onHeightChangeCallbacks;\n } else if (eventName === 'onDragStart') {\n list = this.#onDragStartCallbacks;\n } else if (eventName === 'onDragEnd') {\n list = this.#onDragEndCallbacks;\n }\n\n if (list) {\n this.addListener(list, listener);\n }\n }\n\n off(eventName, listener) {\n let list = null;\n if (eventName === 'onHeightChange') {\n list = this.#onHeightChangeCallbacks;\n } else if (eventName === 'onDragStart') {\n list = this.#onDragStartCallbacks;\n } else if (eventName === 'onDragEnd') {\n list = this.#onDragEndCallbacks;\n }\n\n if (list) {\n this.removeListener(list, listener);\n }\n }\n\n /**\n * Sets the panel, gutter, and wrapper elements to be controlled by this class.\n * @param {HTMLElement} wrapper - The wrapper element containing the panel and gutter.\n * @param {HTMLElement} panel - The panel element to be resized.\n * @param {HTMLElement} gutter - The gutter element used for resizing.\n */\n setRefs(wrapper, panel, gutter) {\n if (this.#panel || this.#gutter || this.#wrapper) {\n this.unbindEvents();\n }\n this.#wrapper = wrapper;\n this.#panel = panel;\n this.#gutter = gutter;\n this.#state = null;\n this.bindEvents();\n }\n\n /**\n * Attaches event listeners for panel resizing.\n */\n bindEvents() {\n this.ensureRefs('bindEvents');\n this.#gutter.addEventListener('mousedown', this.onMouseDown.bind(this));\n document.addEventListener('mousemove', this.onMouseMove.bind(this));\n document.addEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n /**\n * Gets the current height of the panel.\n * @returns {number} - The height of the panel in pixels.\n */\n getHeight() {\n this.ensureRefs('getHeight');\n const size = this.#panel.getBoundingClientRect();\n return size.height;\n }\n\n /**\n * Handles the mouse down event, initiating the resizing process.\n * @param {MouseEvent} e - The mouse event object.\n */\n onMouseDown(e) {\n this.ensureRefs('onMouseDown');\n this.#state = {\n mouseDown: true,\n initialRect: this.#panel.getBoundingClientRect(),\n initialEvent: e,\n };\n }\n\n /**\n * Handles the mouse move event, adjusting the panel's height during resizing.\n * @param {MouseEvent} e - The mouse event object.\n */\n onMouseMove(e) {\n this.ensureRefs('onMouseMove');\n\n if (!this.#state) {\n return;\n }\n\n const isButtonDown = this.isPrimaryMouseButtonDown(e);\n if (!isButtonDown) {\n this.onMouseUp();\n return;\n }\n\n if (!this.#dragStarted) {\n this.#dragStarted = true;\n this.onDragStart.bind(this)();\n }\n\n const newY = this.#state.initialEvent.y - e.y;\n const finalHeight = Math.ceil(this.#state.initialRect.height + newY);\n this.setHeight(`${finalHeight}px`, 'mousemove');\n }\n\n // eslint-disable-next-line class-methods-use-this\n notifyListeners(list, value) {\n if (list && Array.isArray(list) && list.length) {\n list.forEach((fn) => {\n if (typeof fn === 'function') {\n fn(value);\n }\n });\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n addListener(list, listener) {\n if (list && Array.isArray(list) && typeof listener === 'function') {\n list.push(listener);\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n removeListener(list, listener) {\n if (list && Array.isArray(list) && typeof listener === 'function' && list.length) {\n const index = list.indexOf(listener);\n\n if (index > -1) {\n list.splice(index, 1);\n }\n }\n }\n\n onDragEnd() {\n if (this.#dragStarted) {\n this.notifyListeners(this.#onDragEndCallbacks, this.getHeight());\n }\n }\n\n onDragStart() {\n this.notifyListeners(this.#onDragStartCallbacks, this.getHeight());\n }\n\n // eslint-disable-next-line class-methods-use-this\n isPrimaryMouseButtonDown(e) {\n const flags = e.buttons !== undefined ? e.buttons : e.which;\n // eslint-disable-next-line no-bitwise\n const isDown = flags === 1;\n return isDown;\n }\n\n /**\n * Resets the state after the mouse up event, ending the resizing process.\n */\n onMouseUp() {\n this.#state = null;\n this.onDragEnd.bind(this)();\n this.#dragStarted = false;\n }\n\n /**\n * Sets the height of the panel.\n * @param {string} height - The new height value as a CSS string (e.g., \"100px\").\n */\n setHeight(height) {\n let heightVal = height;\n this.ensureRefs('setHeight');\n\n if (typeof heightVal === 'number') {\n heightVal += 'px';\n }\n\n this.#panel.style.height = heightVal;\n\n this.notifyListeners(this.#onHeightChangeCallbacks, this.getHeight());\n }\n\n /**\n * Ensures that the required elements (wrapper, panel, and gutter) are set.\n * Throws an error if they are missing.\n */\n ensureRefs(reason) {\n if (!this.#panel || !this.#gutter || !this.#wrapper) {\n throw new Error(\n `${reason}: Wrapper, panel, and gutter elements are required. Use setRefs method first.`,\n );\n }\n }\n\n /**\n * Checks if the panel is hidden.\n * @returns {boolean} - True if the panel is hidden; false otherwise.\n */\n isHidden() {\n this.ensureRefs('isHidden');\n return this.#wrapper.style.visibility === 'hidden';\n }\n\n /**\n * Hides the panel by setting its visibility to \"hidden\".\n */\n hide() {\n this.ensureRefs('hide');\n this.#wrapper.style.visibility = 'hidden';\n }\n\n /**\n * Shows the panel by setting its visibility to \"visible\".\n */\n show() {\n this.ensureRefs('show');\n this.#wrapper.style.visibility = 'visible';\n }\n\n /**\n * Unbinds the event listeners added for resizing.\n */\n unbindEvents() {\n this.#onHeightChangeCallbacks = [];\n this.#onDragStartCallbacks = [];\n this.#onDragEndCallbacks = [];\n this.#gutter.removeEventListener('mousedown', this.onMouseDown.bind(this));\n document.removeEventListener('mousemove', this.onMouseMove.bind(this));\n document.removeEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n deinit() {\n this.unbindEvents();\n }\n}\n\nexport const useRevealPanelService = () => {\n const revealPanelServiceRef = useRef(new RevealPanelService());\n return revealPanelServiceRef.current;\n};\n","import React, {\n useEffect,\n useRef,\n useImperativeHandle,\n forwardRef,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { createPortal } from 'react-dom';\nimport { useRevealPanelService } from './js/RevealPanelService';\n\nfunction RevealPanelHeaderLeft({ children }) {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <>{children};\n}\n\nRevealPanelHeaderLeft.propTypes = {\n children: PropTypes.instanceOf({}),\n};\n\nfunction RevealPanelHeaderRight({ children }) {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <>{children};\n}\n\nRevealPanelHeaderRight.propTypes = {\n children: PropTypes.instanceOf({}),\n};\n\nconst mergeClasses = (...classNames) => classNames.map((it) => (it || '').trim()).filter(Boolean).join(' ');\n\nfunction RevealPanel({\n children,\n height,\n onHeightChange = null,\n onDragStart = null,\n onDragEnd = null,\n style = null,\n parentSelector = null,\n contentStyle,\n contentClassName,\n gutterClassName,\n wrapperClassName,\n// eslint-disable-next-line consistent-return\n}, ref) {\n const panelRef = useRef(null);\n const gutterRef = useRef(null);\n const wrapperRef = useRef(null);\n\n const panelService = useRevealPanelService();\n\n useEffect(() => {\n if (!panelRef.current || !gutterRef.current || !wrapperRef.current) {\n return;\n }\n\n if (!panelService) {\n return;\n }\n\n panelService.setRefs(wrapperRef.current, panelRef.current, gutterRef.current);\n panelService.on('onHeightChange', onHeightChange);\n panelService.on('onDragStart', onDragStart);\n panelService.on('onDragEnd', onDragEnd);\n panelService.setHeight(height, 'initialize');\n\n // eslint-disable-next-line consistent-return\n return () => {\n panelService.unbindEvents();\n };\n }, []);\n\n useImperativeHandle(\n ref,\n () => {\n // bind this context\n const bind = (func) => func.bind(panelService);\n\n return {\n getHeight: bind(panelService.getHeight),\n setHeight: bind(panelService.setHeight),\n hide: bind(panelService.hide),\n show: bind(panelService.show),\n isHidden: bind(panelService.isHidden),\n deinit: bind(panelService.deinit),\n on: bind(panelService.on),\n off: bind(panelService.off),\n };\n },\n [],\n );\n\n let headerLeft = null;\n let headerRight = null;\n const contents = [];\n\n React.Children.forEach(children, (child) => {\n if (child && React.isValidElement(child)) {\n if (child.type === RevealPanelHeaderLeft) {\n headerLeft = child;\n } else if (child.type === RevealPanelHeaderRight) {\n headerRight = child;\n } else {\n contents.push(child);\n }\n }\n });\n\n const element = (\n
    \n
    \n
    \n\n
    {headerLeft}
    \n
    \n
    {headerRight}
    \n\n
    \n
    \n {contents}\n
    \n
    \n );\n\n if (parentSelector) {\n return createPortal(element, document.querySelector(parentSelector));\n }\n}\n\nRevealPanel.propTypes = {\n children: PropTypes.instanceOf({}),\n height: PropTypes.string,\n onHeightChange: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragEnd: PropTypes.func,\n parentSelector: PropTypes.string,\n style: PropTypes.instanceOf({}),\n contentStyle: PropTypes.instanceOf({}),\n contentClassName: PropTypes.string,\n gutterClassName: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\nconst TempRevealPanel = forwardRef(RevealPanel);\nTempRevealPanel.HeaderLeft = RevealPanelHeaderLeft;\nTempRevealPanel.HeaderRight = RevealPanelHeaderRight;\n\nexport default TempRevealPanel;\n","import { createContext } from 'react';\n\nexport const TabsContext = createContext();\n","import { createContext } from 'react';\n\nexport default createContext();\n","import React, { useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport TabContext from './TabContext';\nimport { usePrevious } from '../../../hooks';\n\nfunction TabContent(props) {\n const {\n addTab,\n hideTab,\n updateTab,\n showTab,\n children,\n selectedPath,\n tabData,\n tabsId,\n tabExists,\n path,\n rendered,\n hideTabContent,\n tabs,\n } = props;\n\n useEffect(() => {\n const tempTabData = { ...tabData };\n\n if (!tabExists(path)) {\n addTab(tempTabData, path);\n }\n }, [tabData, path]);\n\n const prevTabData = usePrevious(tabData);\n useEffect(() => {\n if (\n tabExists(path) && tabData?.title\n && (prevTabData?.title !== tabData?.title || prevTabData?.selected !== tabData.selected)\n ) {\n const tempTabData = { ...tabData };\n updateTab(tempTabData, path);\n }\n }, [tabData, path, prevTabData, tabs]);\n\n useEffect(() => {\n showTab(path);\n return () => hideTab(path);\n }, []);\n\n const shouldRender = useMemo(() => {\n if (!Object.keys(tabs).length) {\n return false;\n }\n\n if (hideTabContent || tabs[tabData.id].show === false) {\n return false;\n }\n\n if (!rendered) {\n return tabExists(path);\n }\n return selectedPath && selectedPath.indexOf(tabData.id) > -1;\n }, [hideTabContent, rendered, selectedPath, tabData, tabs]);\n\n const context = useMemo(() => ({ path, tabsId }), [path, tabsId]);\n\n if (!shouldRender) return null;\n return (\n
    -1 ? 'block' : 'none' }}>\n \n {children}\n \n
    \n );\n}\n\nTabContent.propTypes = {\n addTab: PropTypes.func,\n updateTab: PropTypes.func,\n hideTab: PropTypes.func,\n showTab: PropTypes.func,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n path: PropTypes.instanceOf(Array),\n hideTabContent: PropTypes.bool,\n rendered: PropTypes.bool,\n selectedPath: PropTypes.instanceOf(Array),\n tabExists: PropTypes.func,\n tabsId: PropTypes.string,\n tabData: PropTypes.instanceOf(Object),\n tabs: PropTypes.instanceOf(Object),\n};\n\nexport default TabContent;\n","import React, {\n useContext, useEffect, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { TabsContext } from '../tabs-context';\nimport TabContext from './TabContext';\nimport TabContent from './TabContent';\n\nfunction Tab(props) {\n const { id } = props;\n const tabsContext = useContext(TabsContext);\n const tabContext = useContext(TabContext);\n const {\n tabExists,\n selectedPath,\n addTab,\n updateTab,\n hideTab,\n showTab,\n rendered,\n hideTabContent,\n tabs,\n } = tabsContext;\n const {\n children,\n } = props;\n const [path, setPath] = useState('');\n\n useEffect(() => {\n let tempPath;\n if (tabContext && path) {\n if (tabContext.tabsId === tabsContext.id) {\n tempPath = tabContext.path.concat([id]);\n } else {\n tempPath = [id];\n }\n } else {\n tempPath = [id];\n }\n setPath(tempPath);\n }, [tabContext]);\n\n if (!path) {\n return null;\n }\n\n return (\n \n {children}\n \n );\n}\n\nTab.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n id: PropTypes.string,\n};\n\nTab.defaultProps = {};\n\nexport default Tab;\n","import React, {\n useEffect, useMemo, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport Tab from './js/Tab';\n\nimport Collapsible from '../Collapsible';\nimport Icon from '../Icon';\nimport { TabsContext } from './tabs-context';\n\nfunction Tabs(props) {\n const {\n children,\n className,\n id,\n onTabChange,\n type,\n hideTabContent,\n } = props;\n const [tabs, setTabs] = useState({});\n const [selectedPath, setSelectedPath] = useState([]);\n const [rendered, setRendered] = useState(false);\n const [initialPath, setInitialPath] = useState(null);\n\n useEffect(() => {\n setSelectedPath(initialPath);\n }, [initialPath]);\n\n const updateTabsList = (tabsState, path, tabData) => {\n let tempTabsState = { ...tabsState };\n const tempTabData = { ...tabData };\n const tempPath = path.slice(0);\n\n while (tempPath.length > 1) {\n tempTabsState = tempTabsState[tempPath.shift()];\n\n if (!tempTabsState) {\n tempTabsState = {};\n }\n }\n\n tempTabData.tempPath = tempPath;\n tempTabsState[tempPath.shift()] = tempTabData;\n\n return tempTabsState;\n };\n\n const toggleTab = (tabsState, path) => {\n let tempTabsState = { ...tabsState };\n const tempPath = path.slice(0);\n\n while (tempPath.length > 1) {\n tempTabsState = tempTabsState[tempPath.shift()];\n }\n\n const key = tempPath.shift();\n if (tempTabsState[key].collapsed === undefined) {\n tempTabsState[key].collapsed = true;\n } else {\n tempTabsState[key].collapsed = !tempTabsState[key].collapsed;\n }\n\n return tempTabsState;\n };\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-tabs'];\n\n cssClasses.push(`tyk-tabs--${type || 'default'}`);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n };\n\n const setCurrentSelectedPath = (path, tabData) => {\n const tempPath = path.slice(0);\n let tempRendered = true;\n\n if (tabData.collapsible) {\n tempPath.push(Object.keys(tabData.tabs)[0]);\n tempRendered = false;\n }\n\n setTabs((prevTabs) => {\n let tempTabs = { ...prevTabs };\n\n tempTabs = toggleTab(tempTabs, path);\n\n return tempTabs;\n });\n setSelectedPath(tempPath);\n setRendered(tempRendered);\n\n if (onTabChange) {\n onTabChange(tabData);\n }\n };\n\n const getTabCssClass = (tabId) => {\n const cssClasses = [];\n\n if (selectedPath && selectedPath.indexOf(tabId) > -1) {\n cssClasses.push('active');\n }\n\n return cssClasses.join(' ');\n };\n\n const genTabs = (currentTabs, path) => {\n if (!currentTabs) {\n return null;\n }\n\n return (\n
      \n {\n Object.keys(currentTabs).map((tabId, index) => {\n const tempPath = path ? path.concat([currentTabs[tabId].id]) : [currentTabs[tabId].id];\n const iconType = currentTabs[tabId].collapsed ? 'chevron-up' : 'chevron-down';\n\n if (currentTabs[tabId].show === false) {\n return null;\n }\n\n return (\n
    • \n \n { currentTabs[tabId].title }\n {\n currentTabs[tabId].collapsible\n ? \n : null\n }\n \n {\n currentTabs[tabId].collapsible\n ? (\n \n {genTabs(currentTabs[tabId].tabs, tempPath)}\n \n )\n : genTabs(currentTabs[tabId].tabs, tempPath)\n }\n
    • \n );\n })\n }\n
    \n );\n };\n\n const addTab = (tabData, path) => {\n setTabs((prevTabs) => updateTabsList({ ...prevTabs }, path, tabData));\n\n if (tabData.selected) {\n setInitialPath(path);\n }\n };\n\n const updateTab = (tabData, path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n tempTabs[tabData.id] = tabData;\n return tempTabs;\n });\n\n if (tabData.selected) {\n setCurrentSelectedPath(path, tabData);\n }\n };\n\n const hideTab = (path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n tempTabs[path].show = false;\n\n return tempTabs;\n });\n };\n\n const showTab = (path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n\n tempTabs[path].show = true;\n\n return tempTabs;\n });\n };\n\n const tabExists = (path) => {\n let tempTabs = { ...tabs };\n const tempPath = path.slice(0);\n while (tempPath.length > 1) {\n tempTabs = tempTabs[tempPath.shift()];\n }\n\n const key = tempPath.shift();\n\n return Boolean(tempTabs?.[key]);\n };\n\n const context = useMemo(() => ({\n id,\n addTab,\n hideTab,\n updateTab,\n showTab,\n tabExists,\n selectedPath,\n rendered,\n hideTabContent,\n tabs,\n }), [\n id,\n addTab,\n hideTab,\n updateTab,\n showTab,\n tabExists,\n selectedPath,\n rendered,\n hideTabContent,\n tabs,\n ]);\n\n return (\n
    \n {genTabs(tabs)}\n \n {\n (typeof children === 'function')\n ? children({\n hideTab,\n showTab,\n })\n : children\n }\n \n
    \n );\n}\n\nTabs.propTypes = {\n className: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n hideTabContent: PropTypes.bool,\n id: PropTypes.string,\n onTabChange: PropTypes.func,\n type: PropTypes.string,\n};\n\nTabs.Tab = Tab;\n\nexport default Tabs;\n","import React, {\n useCallback, useEffect, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport FloatingContainer from '../FloatingContainer';\nimport Icon from '../Icon';\n\nfunction Tooltip({\n render,\n className,\n children,\n position = 'auto',\n style,\n icon = false,\n closable,\n isOpened = false,\n additionalClickParents = [],\n ...props\n}) {\n const [isActive, setIsActive] = useState(false);\n const wrapperRef = useRef(null);\n const tooltipRef = useRef(null);\n const activeEvents = closable\n ? {\n onClick: () => setIsActive(true),\n }\n : {\n onMouseEnter: () => setIsActive(true),\n onMouseLeave: () => setIsActive(false),\n onFocus: () => setIsActive(true),\n onBlur: () => setIsActive(false),\n };\n\n const handleDocumentClick = useCallback((e) => {\n if ([...additionalClickParents, tooltipRef.current].some((p) => p?.contains?.(e.target))) {\n return;\n }\n setIsActive(false);\n }, [additionalClickParents]);\n\n useEffect(() => {\n document.addEventListener('click', handleDocumentClick, true);\n return () => document.removeEventListener('click', handleDocumentClick, true);\n }, [handleDocumentClick]);\n\n useEffect(() => {\n setIsActive(isOpened);\n }, [isOpened]);\n\n const classes = ['tyk-tooltip', className].filter(Boolean).join(' ');\n return (\n \n {children}\n {isActive && (\n \n
    \n {icon && (\n icon === true ? (\n \n ) : (\n icon\n )\n )}\n
    \n {render}\n
    \n {closable && (\n {\n e.stopPropagation();\n setIsActive(false);\n }}\n />\n )}\n
    \n \n )}\n
    \n );\n}\n\nTooltip.propTypes = {\n children: PropTypes.node.isRequired,\n /** custom styles to apply on hovered element */\n style: PropTypes.instanceOf(Object),\n /** describes where the tooltip should be displayed in relation\n * whith the hovered element: top, bottom, left, right\n */\n position: PropTypes.string,\n /** content of the tooltip, can be a string or a React node element */\n render: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.string,\n ]),\n /** additional tooltip classes */\n className: PropTypes.string,\n /** if `true` displays the \"question mark\" icon;\n * optionally you can pass a different icon\n */\n icon: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.node,\n ]),\n /** if `true` the tooltip is activated on click and an \"x\" is displayed to close it;\n * if `false` the tooltip is activated on hover and it closes when no longer hovering\n */\n closable: PropTypes.bool,\n /** handles the `isActive` state of the tooltip from outside */\n isOpened: PropTypes.bool,\n /** Additional dom elements to check if the document click was inside of them.\n * Useful when you want to open the tooltip after an interaction\n * with an element not inside the tooltip root.\n */\n additionalClickParents: PropTypes.instanceOf(Array),\n};\n\nexport default Tooltip;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Tooltip from '../Tooltip';\n/**\n * TextEllipsis component helps you to hide a part of a text,\n * but displaying it when it's being hovered.\n * The entire text is displayed with the help of Tooltip component\n */\n\nfunction TextEllipsis({ text, limit, position }) {\n return (\n text.length > limit\n ? (\n \n {text.substring(0, limit)}\n ...\n \n )\n : text\n );\n}\n\nTextEllipsis.propTypes = {\n /** Text to be shrinked by TextEllipsis */\n text: PropTypes.string,\n /** Number of characters that TextEllipsis would leave visible */\n limit: PropTypes.number,\n /** tooltip position */\n position: PropTypes.string,\n};\n\nexport default TextEllipsis;\n","import React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction shouldShowPage(currentNr, pageNr, totalNrOfPages) {\n const basePageNr = 5;\n const minimumNrOfPages = 10;\n\n if (totalNrOfPages < minimumNrOfPages) {\n return true;\n }\n\n if (\n pageNr < basePageNr\n && currentNr < basePageNr\n ) {\n return true;\n }\n\n if (\n pageNr > totalNrOfPages - basePageNr\n && currentNr > totalNrOfPages - basePageNr\n ) {\n return true;\n }\n\n if (\n currentNr >= pageNr - 2\n && currentNr <= pageNr + 2\n ) {\n return true;\n }\n\n return [0, 1, totalNrOfPages - 1, totalNrOfPages].includes(currentNr);\n}\n\nfunction getPagesArr(nrOfPages, selectedPage) {\n let i;\n const pagesArr = [];\n\n for (i = 0; i <= nrOfPages; i += 1) {\n if (shouldShowPage(i, selectedPage, nrOfPages)) {\n if (i > pagesArr.at(-1)) {\n pagesArr.push(`...-${i}`);\n }\n pagesArr.push(i + 1);\n }\n }\n\n return pagesArr;\n}\n\nfunction Pagination(props) {\n const {\n value = 0,\n totalNrOfPages,\n onChange,\n } = props;\n\n const [selectedPage, setSelectedPage] = useState(value);\n\n const pagesArray = useMemo(\n () => getPagesArr(totalNrOfPages, selectedPage),\n [selectedPage, totalNrOfPages],\n );\n\n function goToPage(pageNr) {\n setSelectedPage(pageNr);\n if (onChange) onChange(pageNr);\n }\n\n return (\n totalNrOfPages\n ? (\n
      \n {selectedPage > 0 && totalNrOfPages > 5 && (\n
    • \n \n
    • \n )}\n {\n pagesArray.map((pageNr) => (\n
    • \n {\n String(pageNr).startsWith('...')\n ? ...\n : \n }\n
    • \n ))\n }\n {selectedPage < totalNrOfPages && totalNrOfPages > 5 && (\n
    • \n \n
    • \n )}\n
    \n )\n : null\n );\n}\n\nPagination.propTypes = {\n value: PropTypes.number,\n totalNrOfPages: PropTypes.number,\n onChange: PropTypes.func,\n};\n\nexport default Pagination;\n","import { createContext } from 'react';\n\nexport const tableContext = createContext();\n","import React, { useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { tableContext } from '../tableContext';\nimport Icon from '../../Icon';\n\nexport function HeaderCell({ column }) {\n const { sortable } = column;\n const [sortOrder, setSortOrder] = useState(sortable?.default || 'ASC');\n const { state, sendMessage } = useContext(tableContext);\n return (\n {\n sendMessage('sort', { column, sortOrder });\n setSortOrder(sortOrder === 'ASC' ? 'DESC' : 'ASC');\n } : null}\n className={state.maxHeight ? 'fixed-header' : ''}\n >\n {column.name}\n {column.sortable && (\n \n \n \n )}\n \n );\n}\n\nHeaderCell.propTypes = {\n column: PropTypes.instanceOf(Object),\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { HeaderCell } from './header-cell';\nimport { tableContext } from '../tableContext';\n\nexport function Header({ allRowsSelected }) {\n const { state, sendMessage } = useContext(tableContext);\n const { columns, selectable } = state;\n\n const generateHeaders = () => columns.map((column) => (\n \n ));\n\n const generateSelectable = () => {\n const Component = selectable.type;\n return (\n \n {selectable?.allowSelectAll ? (\n
    \n {\n const isCheckbox = v?.target?.tagName.toLowerCase() === 'input' && v?.target?.type.toLowerCase() === 'checkbox';\n sendMessage('header.selectAll.change', isCheckbox ? v.target.checked : Boolean(v));\n }}\n >\n {selectable.values?.value}\n \n
    \n ) : (\n selectable.name || 'Select'\n )}\n \n );\n };\n\n return (\n \n \n {selectable?.position === 'LEFT' && generateSelectable()}\n {generateHeaders()}\n {selectable?.position === 'RIGHT' && generateSelectable()}\n \n \n );\n}\n\nHeader.propTypes = {\n allRowsSelected: PropTypes.bool,\n};\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * - Checkboxes are used when a user needs to select one or more values from a series of options.\n * - They can be also be used as a binary toggle but consider radio instead.\n * - Can be used with Formik respectively (FormikCheckbox)\n */\nclass Checkbox extends Component {\n getCssClasses() {\n const {\n inline, disabled, readOnly, theme = '', wrapperClassName = '',\n } = this.props;\n\n const cssClasses = [wrapperClassName];\n\n cssClasses.push('tyk-checkbox');\n\n if (inline) {\n cssClasses.push('tyk-checkbox--inline');\n }\n\n if (theme.trim()) {\n cssClasses.push(...theme.split(' ').map((t) => `tyk-checkbox--theme-${t}`));\n }\n\n if (disabled || readOnly) {\n cssClasses.push('tyk-checkbox--is-disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n displayError() {\n const { error } = this.props;\n if (!error) return null;\n\n return (\n

    \n {error}\n

    \n );\n }\n\n displayNote() {\n const { note } = this.props;\n if (!note) return null;\n\n return (\n

    \n {note}\n

    \n );\n }\n\n render() {\n const {\n input, value, label, ...rest\n } = this.props;\n return (\n \n
    \n \n {this.displayNote()}\n {this.displayError()}\n
    \n \n );\n }\n}\n\nCheckbox.propTypes = {\n /** Disable a checkbox */\n disabled: PropTypes.bool,\n /** Readonly prop behaves the same as disable on checkboxes */\n readOnly: PropTypes.bool,\n /** Align checkbox with in same line with other elements */\n inline: PropTypes.bool,\n /** Set a theme for checkbox */\n theme: PropTypes.string,\n /** Set an error state for checkbox if boolean will show just icon without message */\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Adds additional information under the checkbox element */\n note: PropTypes.string,\n input: PropTypes.instanceOf(Object),\n /** Adds a label to checkbox */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Set a name for checkbox */\n name: PropTypes.string,\n /** Set initial value for checkbox */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Make checkbox checked by default */\n checked: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Callback function executed on change of checkbox */\n onChange: PropTypes.func,\n /** CSS classes added to the wrapper of the component */\n wrapperClassName: PropTypes.string,\n};\n\nexport default Checkbox;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nexport function Cell({ col, row }) {\n if (!row.values[col.id]) {\n return ; // eslint-disable-line jsx-a11y/control-has-associated-label\n }\n\n if (col.type === 'string') {\n return (\n \n {row.values[col.id]?.value}\n \n );\n }\n const Component = col.type;\n return (\n \n \n {row.values[col.id].children ? row.values[col.id].children : null}\n
    \n \n );\n}\n\nCell.propTypes = {\n col: PropTypes.instanceOf(Object),\n row: PropTypes.instanceOf(Object),\n index: PropTypes.number,\n};\n","import React, { useCallback, useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport Checkbox from '../../../form/components/Checkbox';\nimport { Cell } from './cell';\nimport { tableContext } from '../tableContext';\n\nexport function Row({ row, index }) {\n const { state, sendMessage } = useContext(tableContext);\n const { columns, selectable } = state;\n\n const SelectableCheckbox = useCallback(() => (\n // eslint-disable-next-line jsx-a11y/control-has-associated-label\n \n sendMessage('row.selected', { index, selected: v.target.checked })}\n />\n \n ), [row.selected, index]);\n\n return (\n \n {selectable && selectable.position === 'LEFT' && SelectableCheckbox()}\n {columns.map((col) => (\n \n ))}\n {selectable && selectable.position === 'RIGHT' && SelectableCheckbox()}\n \n );\n}\n\nRow.propTypes = {\n row: PropTypes.instanceOf(Object),\n index: PropTypes.number,\n};\n","import React, { useContext } from 'react';\nimport { tableContext } from '../tableContext';\nimport { Row } from './row';\n\nexport function Body() {\n const { state } = useContext(tableContext);\n const { rows } = state;\n\n return (\n \n {\n // eslint-disable-next-line react/no-array-index-key\n rows.map((row, i) => )\n }\n \n );\n}\n","import React, {\n useCallback, useEffect, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport Message from '../Message';\nimport Pagination from '../../form/components/Pagination';\nimport Loader from '../Loader';\nimport InfiniteScroller from '../InfiniteScroller';\nimport { Header } from './js/header';\nimport { Body } from './js/body';\nimport { tableContext } from './tableContext';\n\n/**\n * This is tyk's table component used to render a data in a tabular view.\n * See the example configuration object below to understand how to hydrate the table component\n */\n\nfunction Table({\n value, onChange, noDataMessage, loading, infiniteScrolling,\n}) {\n const [state, setState] = useState(null);\n const [onChangeMsg, setOnChangeMsg] = useState('api');\n const itemsListRef = useRef(null);\n const sortRows = useCallback((col, sortOrder) => {\n setState((prevState) => ({\n ...prevState,\n sort: {\n order: sortOrder,\n col,\n },\n }));\n }, []);\n\n const selectAllRows = useCallback((selected) => {\n setState((prevState) => ({\n ...prevState,\n rows: prevState.rows.map((row) => ({ ...row, selected })),\n }));\n }, []);\n\n const selectRow = useCallback(({ index, selected }) => {\n setState((prevState) => ({\n ...prevState,\n rows: [\n ...prevState.rows.slice(0, index),\n { ...prevState.rows[index], selected },\n ...prevState.rows.slice(index + 1),\n ],\n }));\n }, []);\n\n const setPagination = useCallback((data) => {\n setState((prevState) => ({\n ...prevState,\n pagination: {\n ...prevState.pagination,\n current: data + 1,\n },\n }));\n }, []);\n\n const api = {\n getState: () => state,\n setState: (newState) => setState(newState),\n };\n\n const sendMessage = useCallback((message, data) => {\n setOnChangeMsg(message);\n if (message === 'sort') {\n sortRows(data.column.id, data.sortOrder);\n }\n\n if (message === 'header.selectAll.change') {\n selectAllRows(data);\n }\n\n if (message === 'row.selected') {\n selectRow(data);\n }\n\n if (message === 'pagination.change') {\n setPagination(data);\n }\n }, [sortRows, selectAllRows, selectRow, setPagination]);\n\n const context = useMemo(() => ({ state, sendMessage }), [state, sendMessage]);\n\n useEffect(() => setState(value), [value]);\n useEffect(() => {\n if (onChange) {\n onChange(onChangeMsg, state, api);\n }\n setOnChangeMsg('api');\n }, [state]);\n\n if (!state) {\n return ;\n }\n\n if (state.rows <= 0) {\n return {noDataMessage || 'No Data Available'};\n }\n\n const getTable = () => (\n \n
    selected)} />\n \n
    \n );\n\n return (\n \n
    \n {\n loading && \n }\n {\n infiniteScrolling && state.pagination\n ? (\n state.pagination.current}\n loadMore={(num) => sendMessage('pagination.change', num)}\n pageNumber={state.pagination.current - 1}\n initialLoad={false}\n >\n { getTable() }\n \n )\n : getTable()\n }\n
    \n {state.pagination && !infiniteScrolling && (\n
    \n sendMessage('pagination.change', num)}\n />\n
    \n )}\n
    \n );\n}\n\nTable.propTypes = {\n /** Configuration object used to render the component */\n value: PropTypes.shape({\n /** Configuration for table columns */\n columns: PropTypes.arrayOf(PropTypes.shape({\n /** Unique id of the column */\n id: PropTypes.string.isRequired,\n /** Name of the column */\n name: PropTypes.string,\n /** Type of column, String by default */\n type: PropTypes.oneOfType([\n /** Just renders cell data of type strings */\n PropTypes.string,\n /** Render cell of elements (eg. Input / Button) */\n PropTypes.element,\n /** Render a custom function/component */\n PropTypes.func,\n ]),\n sortable: PropTypes.oneOfType([\n /** Make Column sortable */\n PropTypes.bool,\n /** Configure sorting behaviour */\n PropTypes.shape({\n /** Set default sorting direction ASC / DESC */\n default: PropTypes.string,\n }),\n ]),\n })),\n /** Configuration for table rows */\n rows: PropTypes.arrayOf(PropTypes.shape({})),\n /** Configuration to make table rows selectable */\n selectable: PropTypes.shape({}),\n /** Renders pagination for table if the object is missing / empty no pagination is rendered. */\n pagination: PropTypes.shape({}),\n /** Sets maximum height for table container. */\n maxHeight: PropTypes.string,\n /** Styling for the table container. */\n styling: PropTypes.shape({\n /** It's recommended to add styles to a class and pass the class in this object */\n className: PropTypes.string,\n }),\n }).isRequired,\n /** Callback executed with message and value when there are changes on table */\n onChange: PropTypes.func,\n /** Renders a component with the given message when `config.rows` is empty */\n noDataMessage: PropTypes.string,\n /** Show placeholder loader */\n loading: PropTypes.bool,\n /** Adds infinite scroller on page and calls `onChange` with `pagination.change` message */\n infiniteScrolling: PropTypes.bool,\n};\n\nTable.defaultProps = {\n loading: false,\n infiniteScrolling: false,\n noDataMessage: 'No Data Available',\n onChange: null,\n};\n\nexport default Table;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Column({\n children,\n align,\n className,\n offset,\n size,\n ...rest\n}) {\n const classes = [\n 'tyk-col',\n className,\n align && `tyk-col--align-${align}`,\n ...size.split(' ').map((cSize) => `tyk-col--${cSize}`),\n ...(offset ? offset.split(' ') : []).map((cOffset) => `tyk-col--offset-${cOffset}`),\n ].filter(Boolean).join(' ');\n\n return (\n
    \n { children }\n
    \n );\n}\n\nColumn.propTypes = {\n /**\n * This property describes how the column element will be aligned vertically\n * within a Row: bottom, center, top\n */\n align: PropTypes.string,\n /** Css classes that can be passed to the column element */\n className: PropTypes.string,\n /**\n * Specifies the size of the column within a Row (values must be between 1 - 12)\n */\n size: PropTypes.string.isRequired,\n /**\n * Specifies the left gap a column can have within a Row (values must be between 1 - 12)\n */\n offset: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n ]),\n};\n\nexport default Column;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/** Row component which must be always present as a wrapper for Columns */\nfunction Row({\n className,\n nogutters,\n children,\n ...rest\n}) {\n const classes = [\n 'tyk-row',\n className,\n nogutters && 'no-gutters',\n nogutters && 'tyk-row--gutterless',\n ].filter(Boolean).join(' ');\n\n return (\n
    \n { children }\n
    \n );\n}\n\nRow.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n /** Css classes that can be passed to the Row element */\n className: PropTypes.string,\n /** Removes all the spaces between column */\n nogutters: PropTypes.bool,\n};\n\nexport default Row;\n","import { createContext } from 'react';\n\nexport const DropdownContext = createContext();\n","import React, { cloneElement, useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { DropdownContext } from '../dropdown-context';\nimport Icon from '../../../../components/Icon';\n\nfunction DropdownItem(props) {\n const {\n customdropdownitem,\n children,\n eventKey,\n href,\n target,\n title,\n onClick,\n } = props;\n const dropdownItemCLick = useCallback((dropdownContext, itemProps) => {\n dropdownContext.onSelectItem(eventKey, itemProps);\n\n if (onClick) onClick(eventKey);\n }, []);\n\n return (\n \n {\n (dropdownContext) => (\n dropdownItemCLick(dropdownContext, props)}\n onKeyUp={() => {}}\n >\n {\n customdropdownitem\n ? cloneElement(customdropdownitem, {})\n : (\n \n {\n eventKey\n && dropdownContext.selectedItem === eventKey\n && dropdownContext.showCheckmark\n ? \n : null\n }\n \n {title || children}\n \n \n )\n }\n \n )\n }\n \n );\n}\n\nDropdownItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n customdropdownitem: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n ]),\n eventKey: PropTypes.string,\n href: PropTypes.string,\n target: PropTypes.string,\n onClick: PropTypes.func,\n title: PropTypes.string,\n};\n\nexport default DropdownItem;\n","import React, {\n Component, createRef,\n} from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport DropdownItem from './js/DropdownItem';\nimport Button from '../../../components/Button';\nimport { DropdownContext } from './dropdown-context';\n\nclass Dropdown extends Component {\n static isElemInRightView(el, dropdownWidth) {\n const windowWidth = window.innerWidth;\n const offset = el.getBoundingClientRect();\n const elemRight = offset.left + dropdownWidth;\n\n return elemRight <= windowWidth;\n }\n\n static isElemInBottomView(el, dropdownHeight) {\n const windowHeight = window.innerHeight;\n const offset = el.getBoundingClientRect();\n const elHeight = el.clientHeight;\n const elemBottom = offset.top + elHeight + dropdownHeight;\n\n return elemBottom <= windowHeight;\n }\n\n constructor(props) {\n super(props);\n\n const {\n selectedItem,\n open,\n } = this.props;\n\n this.state = {\n opened: open,\n selectedItem: selectedItem || null,\n };\n\n this.dropdownRef = createRef();\n this.dropdownListRef = createRef();\n this.dropdownButtonRef = createRef();\n this.onSelectItem = this.onSelectItem.bind(this);\n this.toggleDropdown = this.toggleDropdown.bind(this);\n this.handleClickOutside = this.handleClickOutside.bind(this);\n }\n\n componentDidMount() {\n document.addEventListener('mousedown', this.handleClickOutside);\n\n if (this.dropdownListRef.current) {\n this.getStyles();\n }\n }\n\n componentDidUpdate(prevProps) {\n const {\n open,\n } = this.props;\n const {\n opened,\n } = this.state;\n\n if (this.dropdownListRef.current) {\n this.getStyles();\n }\n\n if (\n !prevProps.open\n && open === true\n && !opened\n ) {\n this.toggleDropdown();\n }\n\n if (\n prevProps.open\n && open === false\n && opened\n ) {\n this.closeDropdown();\n }\n }\n\n componentWillUnmount() {\n document.removeEventListener('mousedown', this.handleClickOutside);\n }\n\n handleClickOutside(event) {\n if (\n this.dropdownListRef.current && !this.dropdownListRef.current.contains(event.target)\n && this.dropdownRef.current && !this.dropdownRef.current.contains(event.target)\n ) {\n this.closeDropdown();\n }\n }\n\n onSelectItem(itemId, itemProps) {\n const { closeOnSelect, onSelect } = this.props;\n const changes = {\n selectedItem: itemId,\n selectedItemProps: itemProps,\n };\n\n if (closeOnSelect) {\n changes.opened = false;\n }\n\n this.setState(changes);\n\n if (onSelect && typeof onSelect === 'function') {\n onSelect(itemId);\n }\n }\n\n getStyles() {\n const {\n display,\n position,\n offset,\n } = this.props;\n\n const dropdownEl = this.dropdownListRef.current;\n\n if (offset) {\n dropdownEl.style.top = `${offset.top}`;\n dropdownEl.style.left = `${offset.left}`;\n return;\n }\n\n const scrollTop = Math.max(\n document.documentElement.scrollTop,\n document.body.scrollTop,\n window.scrollY,\n );\n const el = this.dropdownRef.current;\n const elHeight = el.clientHeight;\n const dropdownHeight = dropdownEl ? dropdownEl.clientHeight : 0;\n const dropdownWidth = dropdownEl ? dropdownEl.clientWidth : 0;\n const offsetPosition = el.getBoundingClientRect();\n const { left, top } = offsetPosition;\n let customTop = 0;\n let customLeft = left;\n\n // calculate top position, depending on the element position on the page\n if (Dropdown.isElemInBottomView(el, dropdownHeight)) {\n customTop = top + scrollTop + elHeight;\n } else {\n customTop = top + scrollTop - dropdownHeight - 5;\n }\n\n if (!Dropdown.isElemInRightView(el, dropdownWidth)) {\n customLeft = left + el.clientWidth - dropdownWidth;\n }\n\n if (position !== 'relative') {\n dropdownEl.style.top = `${customTop}px`;\n if (display !== 'block') {\n dropdownEl.style.left = `${customLeft}px`;\n }\n }\n if (display !== 'block') {\n dropdownEl.style.minWidth = `${this.dropdownButtonRef.current.clientWidth}px`;\n }\n }\n\n getWrapperCssClasses() {\n const {\n btnGroup,\n btnGroupSize,\n className,\n btnTheme,\n wrapperClassName = '',\n } = this.props;\n let cssClasses = [wrapperClassName, 'tyk-dropdown'];\n\n cssClasses.push(`theme-${btnTheme || 'default'}`);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n if (btnGroup) {\n cssClasses.push('tyk-button-group');\n cssClasses.push(btnGroupSize ? `tyk-button-group--${btnGroupSize}` : 'tyk-button-group--md');\n }\n\n return cssClasses.join(' ');\n }\n\n getCssClasses() {\n const {\n opened,\n } = this.state;\n const {\n hasCustomContent,\n display,\n listclassnames,\n position,\n maxHeight,\n } = this.props;\n let cssClasses = ['tyk-dropdown-menu', 'tyk-dropdown'];\n\n if (maxHeight) {\n cssClasses.push('tyk-dropdown--scrollable');\n }\n\n if (opened) {\n cssClasses.push('opened');\n }\n\n if (listclassnames) {\n cssClasses = cssClasses.concat(listclassnames.split(' '));\n }\n\n if (display) {\n cssClasses.push('tyk-dropdown--block');\n }\n\n if (hasCustomContent) {\n cssClasses.push('tyk-dropdown--custom');\n }\n\n if (position === 'relative') {\n cssClasses.push('tyk-dropdown--relative');\n }\n\n return cssClasses.join(' ');\n }\n\n getBtnTitle() {\n const { btnTitle, stopButtonTextChange } = this.props;\n const { selectedItemProps } = this.state;\n\n if (!stopButtonTextChange && selectedItemProps?.title) {\n return selectedItemProps.title;\n }\n\n return btnTitle;\n }\n\n closeDropdown() {\n const { onClose } = this.props;\n\n this.setState({\n opened: false,\n }, () => {\n if (onClose) {\n onClose();\n }\n });\n }\n\n toggleDropdown() {\n const {\n opened,\n } = this.state;\n if (opened) {\n this.closeDropdown();\n\n return;\n }\n\n this.setState({\n opened: true,\n });\n }\n\n render() {\n const {\n appendTo,\n btnClassName,\n btnSize,\n customBtnTitle,\n hasCustomContent,\n btnTheme,\n children,\n label,\n showDropdownIcon,\n showTriggerButton,\n showCheckmark,\n disabled = false,\n maxHeight,\n } = this.props;\n const {\n selectedItem,\n opened,\n } = this.state;\n const DropdownWrapperTag = hasCustomContent ? 'div' : 'ul';\n return (\n \n {\n label\n ? (\n \n )\n : null\n }\n {\n showTriggerButton\n ? (\n \n { customBtnTitle || this.getBtnTitle() }\n \n )\n : null\n }\n {\n opened\n ? ReactDOM.createPortal(\n \n {\n opened\n ? (\n \n {\n (typeof children === 'function')\n ? children({\n closeDropdown: this.closeDropdown.bind(this),\n })\n : children\n }\n \n )\n : null\n }\n ,\n document.querySelector(appendTo || 'body'),\n )\n : null\n }\n \n );\n }\n}\n\nDropdown.propTypes = {\n appendTo: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n PropTypes.func,\n ]),\n closeOnSelect: PropTypes.bool,\n btnClassName: PropTypes.string,\n btnSize: PropTypes.string,\n btnGroupSize: PropTypes.string,\n btnTheme: PropTypes.string,\n btnTitle: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n customBtnTitle: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n btnGroup: PropTypes.bool,\n className: PropTypes.string,\n display: PropTypes.string,\n disabled: PropTypes.bool,\n hasCustomContent: PropTypes.bool,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n listclassnames: PropTypes.string,\n onClose: PropTypes.func,\n onSelect: PropTypes.func,\n open: PropTypes.bool,\n offset: PropTypes.instanceOf(Object),\n position: PropTypes.string,\n selectedItem: PropTypes.string,\n showDropdownIcon: PropTypes.bool,\n stopButtonTextChange: PropTypes.bool,\n showTriggerButton: PropTypes.bool,\n showCheckmark: PropTypes.bool,\n maxHeight: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\n\nDropdown.defaultProps = {\n closeOnSelect: false,\n showDropdownIcon: true,\n showTriggerButton: true,\n showCheckmark: true,\n open: false,\n};\n\nDropdown.Item = DropdownItem;\n\nexport default Dropdown;\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../../../components/Button';\nimport ButtonGroup from '../../../components/ButtonGroup';\n\nfunction DropdownTrigger({\n title,\n theme = 'primary',\n splitTrigger,\n toggle,\n onTriggerClick,\n value,\n}, ref) {\n return (\n !splitTrigger ? (\n \n {title}\n \n ) : (\n \n onTriggerClick(value) }}\n >\n {title}\n \n \n \n )\n );\n}\n\nDropdownTrigger.propTypes = {\n title: PropTypes.string,\n theme: PropTypes.string,\n splitTrigger: PropTypes.bool,\n toggle: PropTypes.func,\n dropdownRef: PropTypes.shape({\n current: PropTypes.instanceOf(Element),\n }).isRequired,\n onTriggerClick: PropTypes.func,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n};\n\nexport default forwardRef(DropdownTrigger);\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport FloatingContainer from '../../../components/FloatingContainer';\nimport List from '../../../components/List';\n\nfunction DropdownListWrapper({\n children,\n element,\n maxWidth,\n}, ref) {\n return (\n \n \n { children }\n \n \n );\n}\n\nDropdownListWrapper.propTypes = {\n element: PropTypes.shape({\n current: PropTypes.instanceOf(Element),\n }),\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n maxWidth: PropTypes.string,\n};\n\nexport default forwardRef(DropdownListWrapper);\n","import { createContext, useContext } from 'react';\n\nexport const DropdownContext = createContext();\n\nfunction useDropdowContext() {\n return useContext(DropdownContext);\n}\n\nexport default useDropdowContext;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport List from '../../../components/List';\nimport useDropdowContext from './useDrodpownContext';\n\nfunction DropdownItem({\n children,\n value,\n}) {\n const { onChange, value: dropdownValue } = useDropdowContext();\n return (\n \n onChange(value) }}\n >\n { children }\n \n \n );\n}\n\nDropdownItem.propTypes = {\n children: PropTypes.node,\n // eslint-disable-next-line\n value: PropTypes.any,\n};\n\nexport default DropdownItem;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport useDropdown from './useDropdown';\nimport DropdownTrigger from './DropdownTrigger';\nimport DropdownListWrapper from './DropdownListWrapper';\nimport DropdownItem from './DropdowItem';\nimport { DropdownContext } from './useDrodpownContext';\n\nfunction Dropdown2({\n children,\n title,\n theme,\n splitTrigger,\n onChange,\n value,\n setSelectedValueAsTitle,\n maxWidth,\n onTriggerClick,\n}) {\n const {\n isOpen,\n toggle,\n dropdownRef,\n dropdownListRef,\n } = useDropdown({\n splitTrigger,\n });\n\n const contextValue = useMemo(() => ({\n onChange,\n value,\n }), [onChange, value]);\n\n return (\n \n \n {isOpen && (\n \n { children }\n \n )}\n \n );\n}\n\nDropdown2.propTypes = {\n /** Title of the dropdown. It is being displayed in the Drodpown trigger */\n title: PropTypes.string,\n /** Theme of the dropdown trigger */\n theme: PropTypes.string,\n children: PropTypes.node,\n /** If true, the dropdown trigger will be split into two buttons.\n * one with the dropdown title and one for the arrow */\n splitTrigger: PropTypes.bool,\n /** Callback function called when a dropdown item is selected */\n onChange: PropTypes.func,\n /** Value of the selected dropdown item */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n /** If true, the selected value will be displayed in the dropdown trigger */\n setSelectedValueAsTitle: PropTypes.bool,\n /** sets the maximum width of the dropdown list menu */\n maxWidth: PropTypes.string,\n /** this function is being called when splitTrigger is true,\n * and receives as parameter the current value of the dropdown */\n onTriggerClick: PropTypes.func,\n};\n\nDropdown2.Item = DropdownItem;\n\nexport default Dropdown2;\n","import {\n useState, useRef, useCallback, useEffect,\n} from 'react';\n\nconst useDropdown = ({\n splitTrigger,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const dropdownRef = useRef(null);\n const dropdownListRef = useRef(null);\n\n const toggle = () => setIsOpen(!isOpen);\n\n const handleOutsideClick = useCallback((e) => {\n const triggerElement = !splitTrigger\n ? dropdownRef.current\n : dropdownRef.current.querySelector('.dropdown__trigger');\n if (\n isOpen\n && !triggerElement.contains(e.target)\n && !dropdownListRef.current.contains(e.target)\n ) {\n setIsOpen(false);\n }\n }, [isOpen]);\n\n useEffect(() => {\n document.addEventListener('mousedown', handleOutsideClick);\n return () => {\n document.removeEventListener('mousedown', handleOutsideClick);\n };\n }, [handleOutsideClick]);\n\n return {\n isOpen,\n toggle,\n dropdownRef,\n dropdownListRef,\n };\n};\n\nexport default useDropdown;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-ace\");","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport ace from 'ace-builds/src-noconflict/ace';\nimport AceEditor from 'react-ace';\nimport 'ace-builds/src-noconflict/mode-javascript';\nimport 'ace-builds/src-noconflict/mode-golang';\nimport 'ace-builds/src-noconflict/mode-python';\nimport 'ace-builds/src-noconflict/mode-css';\nimport 'ace-builds/src-noconflict/mode-json';\nimport 'ace-builds/src-noconflict/mode-xml';\nimport 'ace-builds/src-noconflict/mode-jsx';\nimport 'ace-builds/src-noconflict/ext-searchbox';\nimport 'ace-builds/src-noconflict/ext-beautify';\nimport 'ace-builds/src-noconflict/theme-github';\nimport jsonWorker from 'ace-builds/src-noconflict/worker-json';\n\nace.config.setModuleUrl('ace/mode/json_worker', jsonWorker);\n\nfunction CodeEditor(props) {\n const {\n disabled,\n readOnly,\n disableValidation,\n id,\n error,\n label,\n labelwidth,\n note,\n onBlur,\n onChange,\n theme,\n value,\n setOptions,\n wrapperClassName,\n } = props;\n const classes = [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const finalSetOptions = {\n ...setOptions,\n ...disableValidation && { useWorker: false },\n };\n\n const getCodeEditorError = useCallback(() => (\n error && error !== 'true' && error !== 'false'\n ? (\n

    \n {error}\n

    \n )\n : null\n ), [error]);\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const getNonLabelWidth = useCallback(() => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n }, [labelwidth]);\n\n const handleOnChange = useCallback((newValue) => {\n if (onChange) onChange(newValue);\n }, [onChange]);\n\n const handleOnBlur = useCallback(() => {\n if (onBlur) onBlur(value);\n }, [onBlur, value]);\n\n return (\n
    \n {\n label\n ? \n : null\n }\n
    \n {\n // eslint-disable-next-line\n editorInstance.container.style.resize = 'both';\n // mouseup = css resize end\n document.addEventListener('mouseup', () => (\n editorInstance.resize()\n ));\n }}\n setOptions={finalSetOptions}\n />\n {\n note\n ?

    { note }

    \n : null\n }\n { getCodeEditorError() }\n
    \n
    \n );\n}\n\nCodeEditor.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n disableValidation: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n mode: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n theme: PropTypes.string,\n value: PropTypes.string,\n setOptions: PropTypes.instanceOf(Object),\n wrapperClassName: PropTypes.string,\n};\n\nexport default CodeEditor;\n","import React, { Component, createRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\nimport Button from '../../../components/Button';\n\nconst getStateSelectedValues = (multiple, tags, value) => {\n if (!value) {\n return (multiple || tags) ? [] : null;\n }\n\n return value;\n};\n\nclass Combobox extends Component {\n static closeList() {\n return {\n cursor: -1,\n opened: false,\n };\n }\n\n static openList() {\n return {\n opened: true,\n };\n }\n\n static filterByName(itemValue, inputValue) {\n return itemValue.name.toLowerCase().indexOf(inputValue) > -1;\n }\n\n constructor(props) {\n super(props);\n const {\n multiple,\n tags,\n value,\n } = props;\n\n this.state = {\n cursor: -1,\n opened: false,\n width: 50,\n initialValue: value,\n stateSelectedValues: getStateSelectedValues(multiple, tags, value),\n searchText: '',\n tags,\n };\n\n this.comboboxRef = createRef();\n this.valuesListRef = createRef();\n this.inputRef = createRef();\n this.textRef = createRef();\n\n this.focusInput = this.focusInput.bind(this);\n this.onKeyUp = this.onKeyUp.bind(this);\n Combobox.openList = Combobox.openList.bind(this);\n this.handleClickOutside = this.handleClickOutside.bind(this);\n this.handleItemsNavigation = this.handleItemsNavigation.bind(this);\n this.handleComboboxDropdownClick = this.handleComboboxDropdownClick.bind(this);\n this.handleListItemClick = this.handleListItemClick.bind(this);\n this.handlePillRemoveClick = this.handlePillRemoveClick.bind(this);\n this.manageSelectedTags = this.manageSelectedTags.bind(this);\n }\n\n componentDidMount() {\n const { tags } = this.props;\n\n if (tags) {\n this.setInputWidth();\n }\n\n this.bindEvents();\n }\n\n componentWillUnmount() {\n this.unBindEvents();\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n if (\n JSON.stringify(nextProps.value) !== JSON.stringify(prevState.initialValue)\n || nextProps.tags !== prevState.tags\n ) {\n return {\n initialValue: nextProps.value,\n stateSelectedValues: getStateSelectedValues(\n nextProps.multiple,\n nextProps.tags,\n nextProps.value,\n ),\n tags: nextProps.tags,\n };\n }\n\n return null;\n }\n\n handleItemsNavigation(e) {\n const { tags } = this.props;\n if (['ArrowDown', 'ArrowUp'].indexOf(e.key) === -1) {\n return;\n }\n\n const { cursor } = this.state;\n const filteredValues = this.filterValues();\n let cursorNext;\n\n e.preventDefault();\n\n if (e.key === 'ArrowDown') {\n if (cursor === -1 || cursor === filteredValues.length - 1) {\n cursorNext = 0;\n } else if (cursor < filteredValues.length - 1) {\n cursorNext = cursor + 1;\n }\n }\n\n if (e.key === 'ArrowUp') {\n if (cursor > 0) {\n cursorNext = cursor - 1;\n } else {\n cursorNext = filteredValues.length - 1;\n }\n }\n\n if (this.valuesListRef.current && cursorNext > 4) {\n const scrollTop = (cursorNext - 4) * 38;\n\n this.valuesListRef.current.scrollTop = (!tags) ? 60 + scrollTop : scrollTop;\n } else if (this.valuesListRef.current) {\n this.valuesListRef.current.scrollTop = 0;\n }\n\n this.setState((previousState) => ({\n ...previousState,\n opened: true,\n cursor: cursorNext,\n }));\n }\n\n handleListItemClick(index) {\n // eslint-disable-next-line react/destructuring-assignment\n const clickedValue = this.props.values[index];\n if (clickedValue.disabled) return;\n\n const { multiple, tags } = this.props;\n\n const methodName = (tags) ? 'manageSelectedTags' : 'manageSelectedValues';\n const tempState = { ...this.state, ...this[methodName](index) };\n\n this.setState((previousState) => {\n if (!multiple && !tags) {\n tempState.opened = false;\n }\n\n return { ...previousState, ...tempState };\n });\n }\n\n handlePillRemoveClick(index) {\n const { disabled } = this.props;\n\n if (disabled) {\n return;\n }\n\n const tempState = this.removeSelectedValue(index);\n\n this.setState((previousState) => ({ ...previousState, ...tempState }));\n }\n\n handleClickOutside(event) {\n if (\n this.valuesListRef.current && !this.valuesListRef.current.contains(event.target)\n && this.comboboxRef.current && !this.comboboxRef.current.contains(event.target)\n ) {\n this.setState((previousState) => ({ ...previousState, ...Combobox.closeList() }));\n }\n }\n\n handleComboboxDropdownClick() {\n const { disabled } = this.props;\n\n if (disabled) {\n return;\n }\n\n this.setState((previousState) => ({ ...previousState, ...Combobox.openList() }));\n }\n\n onKeyUp(e) {\n const { tags, allowCustomValues } = this.props;\n const { cursor, opened } = this.state;\n const filteredValues = this.filterValues();\n let tempState = this.getSearchText();\n\n if (tags && e.key !== 'Escape') {\n tempState = { ...tempState, ...this.setInputWidth() };\n }\n\n if (e.key === 'Enter') {\n const methodName = (tags) ? 'manageSelectedTags' : 'manageSelectedValues';\n tempState = { ...tempState, ...this[methodName](cursor) };\n }\n\n if (allowCustomValues && e.key !== ' ' && tags) {\n tempState = { ...tempState, ...this.manageSelectedTags() };\n }\n\n if (\n !opened\n && this.inputRef.current.value\n && filteredValues?.length\n && e.key !== 'Escape'\n ) {\n tempState = { ...tempState, ...Combobox.openList() };\n }\n\n if (e.key === 'Escape' && opened) {\n tempState = { ...tempState, ...Combobox.closeList() };\n }\n\n if (opened && filteredValues && !filteredValues.length) {\n tempState = { ...tempState, ...Combobox.closeList() };\n }\n\n this.setState((previousState) => ({ ...previousState, ...tempState }));\n }\n\n getLabelStyles() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n getNonLabelWidth() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n setInputWidth() {\n return {\n width: 50 + this.textRef.current.offsetWidth,\n };\n }\n\n getSelectedIndex(value) {\n const { stateSelectedValues } = this.state;\n let position = -1;\n\n if (Array.isArray(stateSelectedValues)) {\n stateSelectedValues.forEach((item, index) => {\n if (item.id === value.id) {\n position = index;\n }\n });\n } else if (stateSelectedValues) {\n if (stateSelectedValues.id === value.id) {\n position = 0;\n }\n }\n\n return position;\n }\n\n getSearchText() {\n return {\n searchText: this.inputRef.current.value,\n };\n }\n\n getListItemCssClasses(value, index) {\n const cssClasses = [];\n const {\n cursor,\n } = this.state;\n\n if (cursor === index) {\n cssClasses.push('active');\n }\n\n if (value.disabled) {\n cssClasses.push('disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n getComboboxListCssClass() {\n const { opened } = this.state;\n const { tags, theme } = this.props;\n const themes = theme ? theme.split(' ') : [];\n\n const cssClasses = ['tyk-combobox__list'];\n\n if (opened) {\n cssClasses.push('tyk-combobox__list--opened');\n }\n\n if (tags) {\n cssClasses.push('tyk-combobox__list--has-tags');\n }\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n return cssClasses.join(' ');\n }\n\n getCssClasses() {\n const {\n error, disabled, theme, labelwidth,\n } = this.props;\n const cssClasses = ['tyk-form-group', 'tyk-combobox'];\n const themes = theme ? theme.split(' ') : [];\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (disabled) {\n cssClasses.push('disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n getInputError() {\n const { error } = this.props;\n\n return (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null;\n }\n\n getStyles() {\n const { scrollTop } = document.documentElement;\n const el = this.comboboxRef.current;\n const elHeight = el.offsetHeight;\n const elWidth = el.offsetWidth;\n\n const offset = el.getBoundingClientRect();\n const { left } = offset;\n let top = 0;\n\n top = offset.top + scrollTop + elHeight;\n\n return {\n top: `${top - 1}px`,\n left: `${left}px`,\n width: `${elWidth}px`,\n };\n }\n\n getComboboxDisplayData() {\n const { stateSelectedValues } = this.state;\n const { multiple, placeholder, values } = this.props;\n\n if (!stateSelectedValues) {\n return placeholder;\n }\n\n if (stateSelectedValues && Array.isArray(stateSelectedValues) && !stateSelectedValues.length) {\n return placeholder;\n }\n\n if (stateSelectedValues && !Array.isArray(stateSelectedValues) && !stateSelectedValues.id) {\n return placeholder;\n }\n\n if (Array.isArray(stateSelectedValues) && multiple) {\n return stateSelectedValues.reduce((prevValue, value, index) => prevValue + value.name + ((index !== stateSelectedValues.length - 1) ? ', ' : ''), '');\n }\n\n if (\n values?.length\n && !Array.isArray(stateSelectedValues) && !stateSelectedValues.name\n ) {\n return values.filter((value) => value.id === stateSelectedValues.id)[0].name;\n }\n\n return stateSelectedValues.name;\n }\n\n manageSelectedTags(index) {\n const { max, allowCustomValues } = this.props;\n const { stateSelectedValues } = this.state;\n const filteredValues = this.filterValues();\n const value = { id: this.inputRef.current.value, name: this.inputRef.current.value };\n\n if (allowCustomValues === false && index === -1) {\n return null;\n }\n\n const tempValue = filteredValues[index] || value;\n const selectedIndex = this.getSelectedIndex(tempValue);\n let selectedValues = {};\n\n this.inputRef.current.value = '';\n\n if (selectedIndex > -1 && this.isInInitialValues(tempValue)) {\n selectedValues = this.removeSelectedValue(selectedIndex);\n } else if (selectedIndex === -1) {\n if (max && stateSelectedValues.length >= max) {\n return selectedValues;\n }\n selectedValues = this.addSelectedValue(tempValue);\n }\n\n return selectedValues;\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n manageSelectedValues(index) {\n const { stateSelectedValues } = this.state;\n const { multiple, onChange, max } = this.props;\n const filteredValues = this.filterValues();\n const tempSelectedValues = filteredValues[index];\n let selectedValues;\n const selectedIndex = this.getSelectedIndex(tempSelectedValues);\n\n if (tempSelectedValues && multiple) {\n if (selectedIndex > -1) {\n selectedValues = this.removeSelectedValue(selectedIndex);\n } else {\n if (max && stateSelectedValues.length >= max) {\n return selectedValues;\n }\n selectedValues = this.addSelectedValue(filteredValues[index]);\n }\n } else {\n selectedValues = {\n stateSelectedValues: (selectedIndex === -1) ? tempSelectedValues : { id: null },\n };\n\n onChange?.((selectedIndex === -1) ? tempSelectedValues : null);\n }\n\n return selectedValues;\n }\n\n removeSelectedValue(index) {\n const { stateSelectedValues } = this.state;\n const { onChange } = this.props;\n const tempStateSelectedValues = JSON.parse(JSON.stringify(stateSelectedValues));\n\n tempStateSelectedValues.splice(index, 1);\n\n if (onChange && typeof onChange === 'function') {\n onChange(tempStateSelectedValues.length ? tempStateSelectedValues : null);\n }\n\n return {\n stateSelectedValues: tempStateSelectedValues,\n searchText: '',\n };\n }\n\n addSelectedValue(value) {\n const { stateSelectedValues } = this.state;\n const { onChange } = this.props;\n const tempStateSelectedValues = JSON.parse(JSON.stringify(stateSelectedValues));\n\n tempStateSelectedValues.push(value);\n\n if (onChange && typeof onChange === 'function') {\n onChange(tempStateSelectedValues.length ? tempStateSelectedValues : null);\n }\n\n return {\n stateSelectedValues: tempStateSelectedValues,\n searchText: '',\n };\n }\n\n isInInitialValues(value) {\n const { values } = this.props;\n let ok = false;\n\n values.forEach((item) => {\n if (value.id === item.id) {\n ok = true;\n }\n });\n\n return ok;\n }\n\n filterValues() {\n const { values, searchItem } = this.props;\n\n if (!this.inputRef.current) {\n return values;\n }\n\n const arr = values\n .filter(\n (value) => (searchItem\n ? searchItem(value, this.inputRef.current.value.toLowerCase())\n : Combobox.filterByName(value, this.inputRef.current.value.toLowerCase())),\n );\n\n return arr;\n }\n\n bindEvents() {\n document.addEventListener('mousedown', this.handleClickOutside);\n }\n\n unBindEvents() {\n document.removeEventListener('mousedown', this.handleClickOutside);\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n reset() {\n const { multiple, tags, value } = this.props;\n\n this.setState({\n stateSelectedValues: getStateSelectedValues(multiple, tags, value),\n });\n }\n\n focusInput() {\n if (this.inputRef.current) {\n this.inputRef.current.focus();\n }\n }\n\n renderInput(filteredValues) {\n const {\n disabled,\n tags,\n max,\n placeholder,\n } = this.props;\n const {\n width, searchText, stateSelectedValues,\n } = this.state;\n\n return (\n {}}\n ref={this.comboboxRef}\n >\n {\n tags\n ? (\n <>\n {\n (stateSelectedValues || []).map((value, index) => (\n
  • \n \n \n \n { value.name }\n
  • \n ))\n }\n \n {(max === undefined || stateSelectedValues?.length < max) && (\n <>\n {\n if (e.key === 'Enter') {\n e.preventDefault();\n }\n this.handleItemsNavigation(e);\n }}\n onKeyUp={this.onKeyUp}\n placeholder={(!stateSelectedValues?.length) ? placeholder : ''}\n ref={this.inputRef}\n style={{\n width: (!stateSelectedValues?.length) ? '100%' : `${width}px`,\n }}\n />\n \n { searchText }\n \n \n )}\n {filteredValues.length > 0 && (\n \n )}\n \n \n )\n : (\n {}}\n >\n { this.getComboboxDisplayData() }\n \n \n )\n }\n \n );\n }\n\n renderDropdown(filteredValues) {\n const { tags } = this.props;\n const { opened } = this.state;\n return (\n \n {\n !tags\n ? (\n
  • \n \n
  • \n )\n : null\n }\n {\n filteredValues\n .map((value, index) => (\n {}}\n key={value.id}\n >\n {\n (this.getSelectedIndex(value) > -1)\n ? \n : null\n }\n \n {' '}\n { value.name }\n \n \n ))\n }\n \n );\n }\n\n render() {\n const {\n CustomListComponent,\n id,\n label,\n note,\n } = this.props;\n const { opened } = this.state;\n\n const filteredValues = this.filterValues();\n\n return (\n <>\n
    \n {\n label\n ? \n : null\n }\n \n {this.renderInput(filteredValues)}\n {\n note\n ?

    { note }

    \n : null\n }\n { this.getInputError() }\n
    \n \n {\n // eslint-disable-next-line no-nested-ternary\n !CustomListComponent\n ? opened && filteredValues.length\n ? ReactDOM.createPortal(\n this.renderDropdown(filteredValues),\n document.querySelector('body'),\n )\n : null\n : (\n \n )\n }\n \n );\n }\n}\n\nCombobox.propTypes = {\n allowCustomValues: PropTypes.bool,\n CustomListComponent: PropTypes.elementType,\n searchItem: PropTypes.func,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n id: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n multiple: PropTypes.bool,\n max: PropTypes.number,\n note: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n tags: PropTypes.bool,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.instanceOf(Object),\n PropTypes.instanceOf(Array),\n ]),\n values: PropTypes.instanceOf(Array),\n};\n\nCombobox.defaultProps = {\n allowCustomValues: true,\n};\n\nexport default Combobox;\n","import React, { useState, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from '../../../../components/Icon';\nimport Pill from '../../../../components/Pill';\n\nfunction Value(props) {\n const {\n value,\n max,\n tags,\n tagSeparators,\n addTagOnBlur,\n placeholder,\n disabled,\n renderValue,\n valueOverflow,\n focus,\n onMessage: sendMessage,\n readOnly,\n } = props;\n const INPUT_MIN_WIDTH = 60;\n const inputRef = useRef(null);\n const dummyElementRef = useRef(null);\n const [inputValue, setInputValue] = useState('');\n const [inputWidth, setInputWidth] = useState(`${INPUT_MIN_WIDTH + 10}px`);\n\n function entryFieldOnChange(val) {\n if (tagSeparators.some((ts) => val.slice(-1) === ts)) return;\n const dummy = dummyElementRef.current;\n dummy.innerHTML = val;\n setInputWidth(`${Math.max(dummy.clientWidth, INPUT_MIN_WIDTH) + 10}px`);\n setInputValue(val);\n sendMessage('tag.input.change', val);\n }\n\n function entryFieldOnKeyDown(key, val) {\n if (!tags) return;\n if (val === '' && key === 'Backspace' && value.length) {\n sendMessage('tag.remove', value[value.length - 1].id);\n return;\n }\n if (key === 'Enter') {\n sendMessage('tag.input.enter', val);\n entryFieldOnChange('');\n return;\n }\n if (key === 'ArrowUp') {\n sendMessage('tag.input.arrowUp');\n return;\n }\n if (key === 'ArrowDown') {\n sendMessage('tag.input.arrowDown');\n return;\n }\n if (key === 'Escape') {\n sendMessage('tag.input.escape');\n return;\n }\n if (tagSeparators.includes(key)) {\n sendMessage('tag.add', val);\n entryFieldOnChange('');\n }\n }\n\n function triggerAction() {\n sendMessage('text-value.click');\n }\n\n function textValue(val, isPlaceholder = false) {\n if (readOnly) return val || '-';\n\n const classes = [\n 'tyk-combobox2__text-value',\n `overflow-${valueOverflow}`,\n isPlaceholder && 'is-placeholder',\n ].filter(Boolean).join(' ');\n return (\n \n {val}\n \n );\n }\n\n function renderCustomValue(v) {\n const config = {\n tags,\n tagSeparators,\n placeholder,\n disabled,\n renderValue,\n sendMessage,\n };\n return renderValue(v, config);\n }\n\n function renderTag(v) {\n if (renderValue) return renderCustomValue(v);\n\n return (\n \n {\n e.stopPropagation();\n sendMessage('tag.remove', v.id);\n }}\n aria-label=\"remove\"\n >\n \n \n { v.name }\n \n );\n }\n\n function getTags() {\n return (\n <>\n {value.map(renderTag)}\n {value.length < max && (\n <>\n entryFieldOnChange(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') e.preventDefault();\n entryFieldOnKeyDown(e.key, e.target.value);\n }}\n onFocus={() => sendMessage('tag.input.focus')}\n onBlur={(e) => {\n sendMessage('tag.input.blur', e.target.value);\n if (addTagOnBlur) entryFieldOnChange('');\n }}\n />\n \n \n )}\n \n );\n }\n\n useEffect(() => {\n if (focus && inputRef.current) inputRef.current.focus();\n }, [focus]);\n\n if (readOnly) {\n return
    {textValue(value.map((v) => v.name).join(', '))}
    ;\n }\n\n if (tags) return getTags();\n if (renderValue) {\n return value.length === 0 ? textValue(placeholder, true) : value.map(renderCustomValue);\n }\n return value.length === 0\n ? textValue(placeholder, true)\n : textValue(value.map((v) => v.name).join(', '));\n}\n\nValue.propTypes = {\n value: PropTypes.instanceOf(Array),\n max: PropTypes.number,\n tags: PropTypes.instanceOf(Array),\n tagSeparators: PropTypes.instanceOf(Array),\n addTagOnBlur: PropTypes.bool,\n placeholder: PropTypes.string,\n disabled: PropTypes.bool,\n renderValue: PropTypes.func,\n valueOverflow: PropTypes.string,\n focus: PropTypes.bool,\n onMessage: PropTypes.func,\n readOnly: PropTypes.bool,\n};\n\nexport default Value;\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from '../../../../components/Icon';\n\nfunction List(props) {\n const {\n listRef,\n tags,\n values,\n searchValue,\n activeItem,\n onMessage: sendMessage,\n renderListItem,\n selectAll,\n showSearch,\n } = props;\n\n useEffect(() => {\n if (!listRef.current) return;\n const activeElement = listRef.current.querySelector('.active');\n if (activeElement) activeElement.scrollIntoView({ block: 'end' });\n }, [activeItem]);\n\n function renderItem(item) {\n if (renderListItem) {\n return renderListItem(item, {\n tags, searchValue, sendMessage, activeItem,\n });\n }\n\n return (\n !item.disabled && sendMessage('value.select', { item })}\n onKeyDown={() => {}}\n >\n {item.selected && }\n {item.name}\n \n );\n }\n\n function renderSelectAllOption() {\n const isAllSelected = values.every((v) => v.selected);\n const isNoneSelected = values.every((v) => !v.selected);\n const label = selectAll?.label ?? 'Select All';\n const mode = selectAll?.mode ?? 'select';\n const show = selectAll?.show ?? 'always';\n const render = selectAll?.render;\n\n const shouldRenderOption = show === 'always' || (mode === 'select' ? !isAllSelected : !isNoneSelected);\n if (!shouldRenderOption) return null;\n\n if (render) {\n return render({\n label,\n mode,\n show,\n isAllSelected,\n isNoneSelected,\n }, sendMessage);\n }\n return (\n sendMessage('value.select-all', mode === 'select' ? !isAllSelected : isNoneSelected)}\n onKeyDown={() => {}}\n >\n {(mode === 'select' ? isAllSelected : isNoneSelected) && }\n {label}\n \n );\n }\n\n return (\n <>\n {!tags && showSearch && (\n
    \n sendMessage('search.change', e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Escape') sendMessage('search.escape');\n if (e.key === 'ArrowUp') sendMessage('search.arrowUp');\n if (e.key === 'ArrowDown') sendMessage('search.arrowDown');\n if (e.key === 'Enter') sendMessage('search.enter');\n }}\n />\n
    \n )}\n {values.length > 0 && (\n
      \n {Boolean(selectAll) && (\n renderSelectAllOption()\n )}\n {values.map(renderItem)}\n
    \n )}\n \n );\n}\n\nList.propTypes = {\n listRef: PropTypes.instanceOf(Object),\n tags: PropTypes.bool,\n values: PropTypes.instanceOf(Array),\n searchValue: PropTypes.string,\n activeItem: PropTypes.instanceOf(Object),\n onMessage: PropTypes.func,\n renderListItem: PropTypes.func,\n selectAll: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n mode: PropTypes.oneOf(['select', 'unselect']),\n show: PropTypes.oneOf(['always', 'notSameState']),\n render: PropTypes.func,\n }),\n ]),\n showSearch: PropTypes.bool,\n};\n\nexport default List;\n","import React, {\n useCallback, useEffect, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\nimport FloatingContainer from '../../../components/FloatingContainer';\n\nimport Value from './js/Value';\nimport List from './js/List';\n\n/**\n * Dropdown-like component that can display selected values as regular text,\n * tags, or in a custom way.\n * You can select values from a list or type in new ones.\n */\nfunction Combobox2({\n value: propValue,\n values: propValues = [],\n valueOverflow = 'single',\n label = '',\n labelwidth,\n tags = false,\n tagSeparators = [' ', 'Enter'],\n addTagOnBlur = false,\n max: maxProp,\n multiple = false,\n placeholder = '',\n theme,\n note = '',\n error = '',\n disabled = false,\n readOnly = false,\n allowCustomValues = true,\n searchItem: matchItemFn,\n renderValue,\n renderListItem,\n renderList: renderListProp,\n CustomListComponent,\n onBeforeChange = () => true,\n onChange = () => {},\n floatingContainerConfig,\n expandMode,\n infiniteScrollerConfig,\n displayDropdownTrigger = true,\n selectAll,\n closeOnSelect,\n showSearch = false,\n required = false,\n validateOnChange = () => {},\n wrapperClassName = '',\n ...restProps\n}) {\n const max = useMemo(\n () => (multiple ? Infinity : maxProp || (tags ? Infinity : 1)),\n [multiple, maxProp, tags],\n );\n const renderList = CustomListComponent\n ? (values, { sendMessage }) => (\n sendMessage('value.select', { item: values[index] })}\n />\n )\n : renderListProp;\n\n const rootRef = useRef(null);\n const comboboxControlRef = useRef(null);\n const dropdownRef = useRef(null);\n const listRef = useRef(null);\n\n const [value, setValue] = useState(getValueFromProp(propValue, propValues));\n const [values, setValues] = useState(propValues.map((v) => normalizeValue(v)));\n const [searchValue, setSearchValue] = useState('');\n const [activeItem, setActiveItem] = useState(null);\n const [isOpened, setIsOpened] = useState(false);\n const [valuesExpanded, setValuesExpanded] = useState(false);\n const [localValidationError, setLocalValidationError] = useState('');\n\n function getThemeClasses() {\n const themes = theme ? theme.split(' ') : [];\n return themes.map((iTheme) => `tyk-form-group--${iTheme}`);\n }\n\n function getCssClasses() {\n return [\n wrapperClassName,\n 'tyk-form-group',\n 'tyk-combobox2',\n ...getThemeClasses(),\n (error || localValidationError) && 'has-error',\n labelwidth && 'tyk-form-group--label-has-width',\n disabled && 'disabled',\n expandMode && 'is-expand-mode',\n ].filter(Boolean).join(' ');\n }\n\n function getFilteredValues() {\n const defaultFn = (v, s) => v?.name?.toLowerCase()?.includes(s);\n const fn = matchItemFn || defaultFn;\n const filteredValues = values.filter((v) => fn(v, searchValue.toLowerCase()));\n return filteredValues;\n }\n\n function openDropdown() {\n setIsOpened(true);\n }\n\n function closeDropdown() {\n setIsOpened(false);\n if (!tags) updateSearchValue('');\n setActiveItem(null);\n }\n\n function updateSearchValue(newSearchValue) {\n setSearchValue(newSearchValue);\n if (activeItem && getFilteredValues().every((fv) => fv.id !== activeItem.id)) {\n setActiveItem(null);\n }\n if (newSearchValue && !isOpened) openDropdown();\n }\n\n function isValidValue(newValues, lastValue) {\n const localError = validateOnChange(newValues, lastValue);\n setLocalValidationError(localError);\n return localError === undefined;\n }\n\n function updateValue(newValues) {\n setValue(newValues);\n onChange(max === 1 && !tags ? (newValues[0] || null) : newValues);\n }\n\n function addTag(val) {\n if (!val) return;\n if (value.length >= max) return;\n if (value.some(({ name }) => name === val)) return;\n\n const listValueIndex = values.findIndex((lv) => lv.name === val);\n let newValue;\n let finalValue = [...value];\n let selectedValues;\n\n if (listValueIndex === -1) {\n if (allowCustomValues) {\n newValue = { id: val, name: val };\n finalValue = [...value, newValue];\n }\n } else {\n selectedValues = [\n ...values.slice(0, listValueIndex),\n { ...values[listValueIndex], selected: true },\n ...values.slice(listValueIndex + 1),\n ];\n newValue = values[listValueIndex];\n finalValue = [...value, values[listValueIndex]];\n }\n\n if (isValidValue(finalValue, newValue) && onBeforeChange(value, finalValue)) {\n if (selectedValues) {\n setValues(selectedValues);\n }\n updateValue(finalValue);\n }\n }\n\n function removeTag(id) {\n if (required && max === 1) return;\n\n const listValueIndex = values.findIndex((lv) => lv.id === id);\n const newValue = value.filter((v) => v.id !== id);\n\n if (!onBeforeChange(value, newValue)) return;\n\n if (listValueIndex !== -1) {\n setValues([\n ...values.slice(0, listValueIndex),\n { ...values[listValueIndex], selected: false },\n ...values.slice(listValueIndex + 1),\n ]);\n }\n updateValue(newValue);\n }\n\n function selectValue({ id }) {\n const val = values.find((v) => v.id === id);\n const valIndex = values.findIndex((v) => v.id === id);\n let finalValue = value;\n let selectedValues = values;\n\n if (val.selected) {\n if (!required || max !== 1) {\n finalValue = value.filter((v) => v.id !== val.id);\n selectedValues = values.with(valIndex, { ...val, selected: false });\n }\n } else if (value.length < max) {\n finalValue = [...value, val];\n selectedValues = values.with(valIndex, { ...val, selected: true });\n } else if (max === 1) {\n finalValue = [val];\n selectedValues = values.map((v) => ({ ...v, selected: v.id === val.id }));\n }\n\n if (isValidValue(finalValue, val) && onBeforeChange(value, finalValue)) {\n updateValue(finalValue);\n setValues(selectedValues);\n }\n\n if (max === 1 || closeOnSelect) {\n closeDropdown();\n }\n }\n\n function selectAllValues(selected) {\n if (values.length > max) return;\n const newValue = selected ? [...values] : [];\n\n if (!onBeforeChange(value, newValue)) return;\n\n updateValue(newValue);\n setValues(values.map((v) => ({ ...v, selected })));\n if (closeOnSelect) closeDropdown();\n }\n\n function moveUpActiveItem() {\n const visibleItems = getFilteredValues().filter((v) => !v.disabled);\n if (visibleItems.length === 0) return;\n if (activeItem === null || visibleItems.length === 1) {\n setActiveItem(visibleItems[visibleItems.length - 1]);\n return;\n }\n const activeIndex = visibleItems.findIndex((v) => v.id === activeItem.id);\n setActiveItem(visibleItems[activeIndex > 0 ? activeIndex - 1 : visibleItems.length - 1]);\n }\n\n function moveDownActiveItem() {\n const visibleItems = getFilteredValues().filter((v) => !v.disabled);\n if (visibleItems.length === 0) return;\n if (activeItem === null || visibleItems.length === 1) {\n setActiveItem(visibleItems[0]);\n return;\n }\n const activeIndex = visibleItems.findIndex((v) => v.id === activeItem.id);\n setActiveItem(visibleItems[activeIndex < visibleItems.length - 1 ? activeIndex + 1 : 0]);\n }\n\n function executeTriggerAction() {\n if (expandMode) {\n setValuesExpanded(!valuesExpanded);\n } else {\n openDropdown();\n }\n }\n\n function handleDocumentClick(e) {\n const isClickInside = rootRef.current?.contains(e.target)\n || dropdownRef.current?.contains(e.target);\n if (!isClickInside) {\n closeDropdown();\n }\n }\n\n function onClickCapture(e) {\n if (!disabled) return;\n if (!expandMode) {\n e.stopPropagation();\n return;\n }\n\n const triggerElement = rootRef.current.querySelector('.tyk-combobox2__values-container-trigger');\n if (!triggerElement) return;\n\n const isClickOnTrigger = triggerElement === e.target || triggerElement.contains(e.target);\n if (!isClickOnTrigger) e.stopPropagation();\n }\n\n function onTagMessage(message, data) {\n if (message === 'add') {\n addTag(data);\n updateSearchValue('');\n }\n\n if (message === 'remove') removeTag(data);\n\n if (message === 'input.change') updateSearchValue(data);\n\n if (message === 'input.enter') {\n if (activeItem) {\n selectValue(activeItem);\n } else if (tagSeparators.includes('Enter')) {\n addTag(data);\n updateSearchValue('');\n }\n }\n\n if (message === 'input.arrowUp') {\n openDropdown();\n moveUpActiveItem();\n }\n\n if (message === 'input.arrowDown') {\n openDropdown();\n moveDownActiveItem();\n }\n\n if (message === 'input.escape') closeDropdown();\n\n if (message === 'input.blur' && addTagOnBlur) {\n addTag(data);\n updateSearchValue('');\n }\n\n if (message === 'input.focus') {\n openDropdown();\n }\n }\n\n const onMessage = useCallback((message, data) => {\n if (message.startsWith('tag.')) onTagMessage(message.slice(4), data);\n\n if (message === 'value.select') selectValue(data.item);\n\n if (message === 'value.select-all') selectAllValues(data);\n\n if (message === 'text-value.click') openDropdown();\n\n if (message === 'search.change') updateSearchValue(data);\n\n if (message === 'search.escape') closeDropdown();\n\n if (message === 'search.arrowUp') moveUpActiveItem();\n\n if (message === 'search.arrowDown') moveDownActiveItem();\n\n if (message === 'search.enter') {\n if (activeItem) selectValue(activeItem);\n }\n }, [\n onTagMessage,\n selectValue,\n selectAllValues,\n openDropdown,\n updateSearchValue,\n closeDropdown,\n moveUpActiveItem,\n moveDownActiveItem,\n ]);\n\n const renderIcon = useCallback(\n () => (expandMode\n ? \n : \n ),\n [expandMode, valuesExpanded],\n );\n\n useEffect(() => {\n window.addEventListener('click', handleDocumentClick, true);\n return () => window.removeEventListener('click', handleDocumentClick, true);\n }, []);\n\n useEffect(() => {\n if (propValues.length) {\n const newValues = propValues.map((v) => ({\n ...normalizeValue(v),\n selected: value.some((sv) => sv.id === v.id),\n }));\n setValues(newValues);\n setValue((val) => val.map((v) => newValues.find((nv) => nv.id === v.id) || v));\n } else if (values.length) {\n setValues([]);\n }\n }, [propValues]);\n\n useEffect(() => {\n const newValue = getValueFromProp(propValue, values);\n setValue(newValue);\n setValues((vals) => vals.map((v) => ({\n ...normalizeValue(v),\n selected: newValue.some((nv) => nv.id === v.id),\n })));\n }, [propValue]);\n\n useEffect(() => {\n if (!expandMode) return () => {};\n\n const valuesElement = comboboxControlRef.current.querySelector('.tyk-combobox2__current-values');\n const updateScroll = () => {\n valuesElement.scrollTop = valuesElement.scrollHeight;\n };\n /* eslint-disable-next-line no-undef */\n const mobserver = new MutationObserver(updateScroll);\n const robserver = new ResizeObserver(updateScroll);\n\n mobserver.observe(valuesElement, { attributes: true, childList: true, subtree: true });\n robserver.observe(valuesElement);\n\n return () => {\n mobserver.disconnect();\n robserver.disconnect();\n };\n });\n\n const filteredValues = getFilteredValues();\n const currentValuesClasses = [\n 'tyk-combobox2__current-values',\n expandMode && 'expand-mode',\n `tyk-combobox2__current-values--${valuesExpanded ? 'expanded' : 'collapsed'}`,\n ].join(' ');\n\n return (\n \n {label && (\n \n )}\n {!readOnly && (\n \n
    \n \n \n
    \n {displayDropdownTrigger && (\n \n {renderIcon()}\n \n )}\n \n {isOpened && (!tags || filteredValues.length > 0) && (\n \n {renderList ? (\n renderList(filteredValues, {\n tags,\n searchValue,\n activeItem,\n listRef,\n sendMessage: onMessage,\n })\n ) : (\n \n )}\n \n )}\n {note && (\n

    {note}

    \n )}\n {((error && error !== 'true' && error !== 'false') || Boolean(localValidationError)) && (\n

    {error || localValidationError}

    \n )}\n \n )}\n {readOnly && (\n
    \n \n
    \n )}\n \n );\n}\n\nCombobox2.propTypes = {\n /** If `true` it allows entering values that are not in the list. */\n allowCustomValues: PropTypes.bool,\n /** Alias for `renderList`\n * used for backwards compatibility with the old Combobox component. */\n CustomListComponent: PropTypes.elementType,\n /** A function used for filtering elements displayed in the list when typing in. */\n searchItem: PropTypes.func,\n /** A custom component that will be used to display a value. */\n renderValue: PropTypes.func,\n /** A custom component that will be used to display an item in the dropdown list. */\n renderListItem: PropTypes.func,\n /** A custom component that will be used to display the entire content of the dropdown. */\n renderList: PropTypes.func,\n disabled: PropTypes.bool,\n /** hides the UI form element and displayes just the value as text */\n readOnly: PropTypes.bool,\n error: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n /** The maximum number of values that can be selected/added. */\n max: PropTypes.number,\n /** Shorthand for max=Infinity */\n multiple: PropTypes.bool,\n note: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n /**\n * Callback called before changing the value of the component.\n * The value change will succeed only if the callback's return value is truthy.\n * The callback is called with two arguments: 1) the previous value, 2) the next value */\n onBeforeChange: PropTypes.func,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n /** Enables the display of values as `Pill` components that can be\n * removed without opening the dropdown. */\n tags: PropTypes.bool,\n /** A list of characters that will trigger the creation of a tag when typed. */\n tagSeparators: PropTypes.arrayOf(PropTypes.string),\n /** If set to true a tag will be created whenever the component loses focus\n * and there is something typed in. */\n addTagOnBlur: PropTypes.bool,\n theme: PropTypes.string,\n /** The value of the component. It can be a string, an array,\n * or an object with an `id` property. */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n ]),\n /** An array of selectable values. */\n values: PropTypes.instanceOf(Array),\n /** Config object passed to the internal floating container component. */\n floatingContainerConfig: PropTypes.instanceOf(Object),\n /** If set to `single` it will display the values on a single line\n * with an ellipsis at the end. */\n valueOverflow: PropTypes.oneOf(['single', 'multiple']),\n /**\n * If set to `true` whenever the user clicks on the dropdown trigger\n * the selected values container\n * will expand to show all selected values instead of opening the dropdown.\n */\n expandMode: PropTypes.bool,\n /** Config object passed to the internal infinite scroller component. */\n infiniteScrollerConfig: PropTypes.instanceOf(Object),\n /** Toggles the display of the dropdown trigger. */\n displayDropdownTrigger: PropTypes.bool,\n /**\n * If a boolean it will toggle the select all functionality from the dropdown.\n * It can also be an object with the shape `{ label, show, mode, render }`.\n * label - A string displayed as the select all option\n * show - It can be one of `['always', 'notSameState']`.\n * `always` means the option will always be displayed.\n * `notSameState` means it will be displayed only if the list items are\n * not all with the same state (depending on the `mode` value)\n * mode - It can be one of `['select', 'unselect']` and makes sense only\n * when the `show` property is `notSameState`\n * `select` means the select all option will only be displayed if not all\n * items are selected\n * `unselect` means the option will be displayed if no items are selected\n */\n selectAll: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n mode: PropTypes.oneOf(['select', 'unselect']),\n show: PropTypes.oneOf(['always', 'notSameState']),\n render: PropTypes.func,\n }),\n ]),\n /** It `true` the dropdown will close after selecting a value. */\n closeOnSelect: PropTypes.bool,\n /** Toggles the display of the search input from the dropdown. */\n showSearch: PropTypes.bool,\n /** If it is required and can only select one value once you have something\n * selected you will not be able to deselect */\n required: PropTypes.bool,\n /** Validates newly added value before adding it to the selected values.\n * Returns an error string in case of error otherwise it returns undefined\n */\n validateOnChange: PropTypes.func,\n wrapperClassName: PropTypes.string,\n};\n\nexport default Combobox2;\n\nfunction normalizeValue(value, values) {\n let v = value;\n if (typeof value === 'string') v = { id: value, name: value };\n else if (!value.hasOwnProperty('name')) v = { ...value, name: value.id }; // eslint-disable-line no-prototype-builtins\n if (!values) return v;\n const existingVal = values.find((ev) => ev.id === v.id);\n return existingVal ? { ...v, ...existingVal } : v;\n}\n\nfunction getValueFromProp(value, values) {\n if (!value) return [];\n if (Array.isArray(value)) return value.map((v) => normalizeValue(v, values));\n return [normalizeValue(value, values)];\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"flatpickr\");","import React, {\n useEffect, useState, useRef, useCallback,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport flatpickr from 'flatpickr';\n\nimport Icon from '../../../components/Icon';\nimport { usePrevious } from '../../../hooks';\n\nfunction DatePicker({\n children,\n disabled,\n readOnly = false,\n error,\n id,\n label,\n labelwidth,\n note,\n onClose,\n onChange,\n onOpen,\n theme,\n config = {},\n value,\n wrapperClassName = '',\n}) {\n const [pickerInstance, setPickerInstance] = useState(null);\n const dateRef = useRef(null);\n\n const prevValue = usePrevious(value);\n\n const hasValueChanged = useCallback((prevDate, currentDate) => {\n if (!prevDate) return true;\n if (!Array.isArray(currentDate)) return prevDate.getTime() !== currentDate.getTime();\n\n let diffDates = currentDate;\n\n if (prevDate && currentDate.length && prevDate.length) {\n diffDates = currentDate.filter((date, index) => date.getTime() !== prevDate[index].getTime());\n\n return diffDates.length > 0;\n }\n\n return currentDate.length > 0;\n }, []);\n\n const onDateChange = useCallback((dateValue) => {\n const finalValue = config.mode === 'range' ? dateValue : dateValue[0] || null;\n\n if (!onChange) return;\n\n if (config.mode === 'range') {\n if (finalValue.length === 2 && hasValueChanged(prevValue, finalValue)) {\n onChange(finalValue);\n }\n } else {\n onChange(finalValue);\n }\n }, [prevValue, onChange, hasValueChanged]);\n\n useEffect(() => {\n if (dateRef.current && !pickerInstance) {\n const instance = flatpickr(dateRef.current, {\n ...config, defaultDate: value, onChange: onDateChange, onClose, onOpen,\n });\n setPickerInstance(instance);\n }\n\n return () => {\n if (pickerInstance) {\n pickerInstance.destroy();\n }\n };\n }, [pickerInstance]);\n\n useEffect(() => {\n if (pickerInstance) {\n let tempValue = value;\n\n if (typeof value === 'string') {\n tempValue = new Date(value);\n } else if (Array.isArray(value)) {\n tempValue = value.map((date) => new Date(date));\n }\n\n if (hasValueChanged(prevValue, tempValue)) {\n pickerInstance.set('onChange', onDateChange);\n if (config.mode === 'range') {\n if (tempValue && tempValue.length === 2) {\n pickerInstance.setDate(tempValue, true);\n }\n } else {\n pickerInstance.setDate(tempValue, true);\n }\n }\n }\n }, [prevValue, value, pickerInstance]);\n\n const classes = [\n 'tyk-form-group',\n 'tyk-form-group--addon-right',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const getLabelStyles = () => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n };\n\n const getNonLabelWidth = () => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n };\n\n const openCalendar = useCallback(() => {\n if (!pickerInstance) return;\n\n pickerInstance.open();\n }, [pickerInstance]);\n\n const getInputError = () => (\n (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null\n );\n\n const getInputField = () => {\n let inputStyle = {};\n let addonStyle = {};\n\n if (config?.inline) {\n inputStyle = {\n height: 0,\n padding: 0,\n width: 0,\n visibility: 'hidden',\n };\n\n addonStyle = {\n display: 'none',\n };\n }\n return (\n <>\n \n {}}\n tabIndex={0}\n style={addonStyle}\n aria-label=\"show calendar\"\n >\n \n \n \n );\n };\n\n return (\n <>\n {\n children?.length\n ? children({ openCalendar, ref: dateRef })\n : (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n
    \n {getInputField()}\n
    \n {\n note\n ?

    { note }

    \n : null\n }\n { getInputError() }\n
    \n )}\n \n )\n }\n
    \n {readOnly && !value && '-'}\n {readOnly && value && flatpickr.formatDate(value, config.dateFormat || 'd/m/Y')}\n
    \n \n );\n}\n\nDatePicker.propTypes = {\n config: PropTypes.instanceOf(Object),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n PropTypes.func,\n ]),\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n onClose: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n onOpen: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n theme: PropTypes.string,\n error: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n PropTypes.string,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default DatePicker;\n","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n // eslint-disable-next-line no-console\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n case 'aaa':\n return dayPeriodEnumValue;\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, dirtyDelimiter);\n}\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\nexport default formatters;","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n var dateTimeFormat;\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n return result;\n};\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import defaultLocale from \"../../locale/en-US/index.js\";\nexport default defaultLocale;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n var originalDate = toDate(dirtyDate);\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n var formatter = formatters[firstCharacter];\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n return substring;\n }).join('');\n return result;\n}\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n if (!matched) {\n return input;\n }\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import React, { Component, createRef } from 'react';\nimport isEqual from 'react-fast-compare';\nimport PropTypes from 'prop-types';\n\nimport Column from '../../../../layout/Column';\nimport Row from '../../../../layout/Row';\nimport Button from '../../../../components/Button';\n\nclass EditableListForm extends Component {\n static getMainFormValue(components) {\n const mainFormValue = new Array(components.length);\n\n components.forEach((component, index) => {\n mainFormValue[index] = component.props.value || undefined;\n });\n\n return mainFormValue;\n }\n\n constructor(props) {\n super(props);\n const {\n components,\n } = props;\n\n this.submitButtonRef = createRef();\n this.handleOnChange = this.handleOnChange.bind(this);\n this.submitForm = this.submitForm.bind(this);\n\n this.state = {\n components,\n errors: {},\n mainError: null,\n mainFormValue: EditableListForm.getMainFormValue(components),\n refs: [],\n };\n }\n\n componentDidMount() {\n const {\n addValueOnFieldChange,\n getMainFormButtonWidth,\n } = this.props;\n this.createRefs();\n\n if (getMainFormButtonWidth) {\n getMainFormButtonWidth(\n !addValueOnFieldChange\n ? this.submitButtonRef.current.clientWidth\n : 0,\n );\n }\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const state = {};\n const {\n components: propsComponents,\n } = nextProps;\n\n const {\n components: stateComponents,\n } = prevState;\n if (\n !isEqual(propsComponents, stateComponents)\n && !isEqual(\n EditableListForm.getMainFormValue(propsComponents),\n EditableListForm.getMainFormValue(stateComponents),\n )\n ) {\n state.mainFormValue = EditableListForm.getMainFormValue(propsComponents);\n state.components = propsComponents;\n }\n\n return state;\n }\n\n handleOnChange(component, index, value) {\n const { addValueOnFieldChange } = this.props;\n let tempState = this.state;\n\n tempState = { ...tempState, ...this.validateValue(value, component.props) };\n\n if (!tempState.errors[component.props.name]) {\n tempState.mainFormValue[index] = value;\n\n if (component.props.onChange) {\n component.props.onChange(value);\n }\n }\n\n this.setState((previousState) => ({ ...previousState, ...tempState }), () => {\n if (addValueOnFieldChange) {\n this.submitForm();\n }\n });\n }\n\n getFormCssClasses() {\n const { noLabels } = this.props;\n const cssClasses = ['tyk-editable-list__form'];\n\n if (noLabels) {\n cssClasses.push('no-labels');\n }\n\n return cssClasses.join(' ');\n }\n\n getButtonClassName() {\n const { buttonStyle, displayType } = this.props;\n const cssClasses = [];\n\n if (buttonStyle) {\n cssClasses.push(buttonStyle);\n }\n\n if (displayType) {\n cssClasses.push(displayType);\n }\n\n return cssClasses.join(' ');\n }\n\n getComponentsError(component) {\n const {\n error,\n errors,\n mainError,\n } = this.state;\n\n if (error || mainError) {\n errors[component.props.name] = 'true';\n } else if (!(error || mainError) && errors[component.props.name] === 'true') {\n delete errors[component.props.name];\n }\n\n return errors[component.props.name] ? errors[component.props.name].toString() : undefined;\n }\n\n createRefs() {\n const { components } = this.props;\n const refs = [];\n\n components.forEach(() => {\n refs.push(createRef());\n });\n\n this.setState({\n refs,\n });\n }\n\n validateValue(value, props) {\n const { mainError, errors } = this.state;\n const { error, errorPersist } = this.props;\n\n const validatorsNames = props.validate ? Object.keys(props.validate) : [];\n // if there is a general form error don't take field errors into consideration\n const tempState = {\n errors: (error || mainError) ? {} : { ...errors },\n };\n let ok = true;\n\n // if the error should stay after changing fields values don't take actions\n if (errorPersist) {\n return tempState;\n }\n\n // validate each field from the form\n for (const validatorName of validatorsNames) {\n const validator = props.validate[validatorName];\n if (validator(value)) {\n tempState.errors[props.name] = props.validationmessages[validatorName];\n ok = false;\n break;\n }\n }\n\n // if the field is ok delete its error\n if (ok) {\n delete tempState.errors[props.name];\n }\n\n tempState.mainError = null;\n\n return tempState;\n }\n\n hasMainFormErrors(errors) {\n const { components, errorPersist } = this.props;\n const { mainFormValue } = this.state;\n const tempState = {\n errors: { ...errors },\n };\n\n if (errorPersist && mainFormValue.indexOf(undefined) === -1) {\n return false;\n }\n\n if (Object.keys(tempState.errors).length > 0) {\n return true;\n }\n\n components.forEach((component, index) => {\n tempState.errors = {\n ...tempState.errors,\n ...this.validateValue(mainFormValue[index], component.props).errors,\n };\n });\n\n return Object.keys(tempState.errors).length > 0;\n }\n\n resetForm() {\n const { refs } = this.state;\n const {\n components,\n } = this.props;\n\n refs.forEach((ref) => {\n if (ref.current?.reset) {\n ref.current.reset();\n }\n });\n\n this.setState({\n errors: {},\n mainError: null,\n mainFormValue: EditableListForm.getMainFormValue(components),\n });\n }\n\n showMainError(error) {\n this.setState({\n mainError: error,\n });\n }\n\n submitForm() {\n const { errors, mainFormValue } = this.state;\n const {\n errorPersist, onSubmit, validate, validationmessage,\n } = this.props;\n\n if (errorPersist) {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n\n if (\n Object.keys(errors).length === 0\n && (onSubmit && typeof onSubmit === 'function')\n ) {\n if (validate) {\n if (validate(mainFormValue)) {\n this.showMainError(validationmessage);\n } else {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n } else {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n }\n }\n\n render() {\n const {\n addValueOnFieldChange, components, buttonName, disabled, displayType, error,\n } = this.props;\n const {\n mainError, refs, errors,\n } = this.state;\n\n return (\n
    \n
    \n \n {\n components.map((component, index) => {\n const ComponentName = component.name;\n console.log('ComponentName', ComponentName);\n const {\n onChange, value, ...rest\n } = component.props;\n\n return (\n \n \n \n );\n })\n }\n \n {\n !addValueOnFieldChange\n ? (\n \n \n { buttonName || 'ADD' }\n \n \n )\n : null\n }\n
    \n {\n error || mainError\n ? (\n
    \n

    \n { error || mainError }\n

    \n
    \n )\n : null\n }\n
    \n );\n }\n}\n\nEditableListForm.propTypes = {\n addValueOnFieldChange: PropTypes.bool,\n noLabels: PropTypes.bool,\n buttonName: PropTypes.string,\n buttonStyle: PropTypes.string,\n components: PropTypes.instanceOf(Array),\n displayType: PropTypes.string,\n disabled: PropTypes.bool,\n getMainFormButtonWidth: PropTypes.func,\n error: PropTypes.string,\n errorPersist: PropTypes.bool,\n onSubmit: PropTypes.func,\n validate: PropTypes.func,\n validationmessage: PropTypes.string,\n};\n\nexport default EditableListForm;\n","import React, { Component, createRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport format from 'date-fns/format';\nimport isDate from 'date-fns/isDate';\n\nimport EditableListForm from './js/EditableListForm';\nimport Column from '../../../layout/Column';\nimport Icon from '../../../components/Icon';\nimport Row from '../../../layout/Row';\n\nclass EditableList extends Component {\n static getItemListValue(itemValue) {\n let tempValue = null;\n\n if (typeof itemValue === 'string') {\n tempValue = itemValue;\n }\n\n if (Object.prototype.toString.call(itemValue) === '[object Object]') {\n tempValue = itemValue.name;\n }\n\n if (isDate(itemValue)) {\n tempValue = format(itemValue, 'dd/MM/yyyy');\n }\n\n return tempValue;\n }\n\n static getListItemCssClass(displayType) {\n const cssClasses = [];\n\n if (displayType === 'inline') {\n cssClasses.push('tyk-editable-list-item--inline');\n }\n\n return cssClasses.join(' ');\n }\n\n constructor(props) {\n super(props);\n const {\n value,\n } = this.props;\n\n this.state = {\n initialValue: value || '',\n value: value || [],\n buttonWidth: 0,\n };\n\n this.startIndex = 1;\n\n this.handleFormSubmit = this.handleFormSubmit.bind(this);\n this.getMainFormButtonWidth = this.getMainFormButtonWidth.bind(this);\n this.dropdownListItemRef = createRef();\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const state = {};\n\n if (\n nextProps.value && JSON.stringify(nextProps.value)\n !== JSON.stringify(prevState.initialValue)\n ) {\n state.value = nextProps.value || [];\n state.initialValue = nextProps.value || '';\n }\n\n return state.value ? state : null;\n }\n\n handleFormSubmit(value) {\n const tempState = this.addValues(value);\n this.setState((previousState) => ({ ...previousState, ...tempState }), () => {\n this.triggerOnChange(tempState.value.length - 1, null, value);\n });\n }\n\n handleItemUpdate(index, value) {\n let prevValue;\n this.setState((previousState) => {\n const tempState = { ...previousState };\n prevValue = fromJS(tempState.value[index].value).toJS();\n tempState.value[index].value = value;\n tempState.value[index].editMode = false;\n\n return tempState;\n }, () => {\n this.triggerOnChange(index, prevValue, value);\n });\n }\n\n handleChildrenOnChange(index, value) {\n let prevValue;\n this.setState((previousState) => {\n const tempState = { ...previousState };\n prevValue = fromJS(tempState.value[index].children).toJS();\n tempState.value[index].children = value;\n\n return tempState;\n }, () => {\n this.triggerOnChange(index, prevValue, value);\n });\n }\n\n getListItemsCssClass(displayType) {\n const { config } = this.props;\n const cssClasses = ['tyk-editable-list-items'];\n\n cssClasses.push(config.displayType || 'table');\n\n if (displayType === 'inline') {\n cssClasses.push('tyk-editable-list-items--inline');\n }\n\n return cssClasses.join(' ');\n }\n\n getFormInputKey() {\n this.startIndex += 1;\n return this.startIndex;\n }\n\n // generate list item value's based on the display types\n // table, inline, list\n getListItemText(itemData) {\n const { config } = this.props;\n let value = null;\n\n switch (config.displayType) {\n case 'list':\n case 'inline': {\n const itemText = itemData.value.reduce((prevValue, itemValue, index) => {\n const tempValue = EditableList.getItemListValue(itemValue);\n let separator = ', ';\n\n if (index === itemData.value.length - 1) {\n separator = '';\n }\n\n return prevValue + tempValue + separator;\n }, '');\n\n value = itemText;\n\n break;\n }\n default:\n value = (\n \n {\n config.components.map((component, index) => (\n \n { EditableList.getItemListValue(itemData.value[index]) }\n \n ))\n }\n \n );\n\n break;\n }\n\n return value;\n }\n\n getMainFormButtonWidth(value) {\n this.setState({\n buttonWidth: value,\n });\n }\n\n setItemEditMode(index) {\n const newValues = this.closeListItems();\n\n this.setState((previousState) => {\n const tempState = { ...previousState };\n tempState.value = newValues;\n tempState.value[index].editMode = !tempState.value[index].editMode;\n\n return tempState;\n });\n }\n\n isInList(index, itemValue) {\n const { value } = this.state;\n let ok = false;\n\n value.forEach((item, itemIndex) => {\n if (JSON.stringify(item.value) === JSON.stringify(itemValue)) {\n if (index >= 0 && itemIndex === index) {\n ok = false;\n } else {\n ok = true;\n }\n }\n });\n\n return ok;\n }\n\n addValues(newValue) {\n const { value } = this.state;\n const { config } = this.props;\n const itemValue = {\n editMode: false,\n value: newValue,\n };\n const tempState = {\n value: value.slice(0),\n };\n\n if (config.children) {\n itemValue.children = [];\n }\n\n tempState.value.push(itemValue);\n\n return tempState;\n }\n\n removeListItem(index) {\n let removedItem;\n this.setState((previousState) => {\n const valueArr = previousState.value.slice(0);\n removedItem = valueArr.splice(index, 1);\n\n return {\n value: valueArr,\n };\n }, () => {\n this.triggerOnChange(index, removedItem, null);\n });\n }\n\n closeListItems() {\n const { value } = this.state;\n\n const newValues = value.map((itemValue) => {\n const tempItemValue = { ...itemValue };\n\n if (tempItemValue.editMode) {\n tempItemValue.editMode = false;\n return tempItemValue;\n }\n\n return tempItemValue;\n });\n\n return newValues;\n }\n\n triggerOnChange(index, prevValue, nextValue) {\n const { onChange } = this.props;\n const { value } = this.state;\n\n if (onChange && typeof onChange === 'function') {\n onChange(((value.length) ? value : null), index, prevValue, nextValue);\n }\n }\n\n genListItem(itemData, index) {\n const { config, disabled } = this.props;\n const { buttonWidth, value } = this.state;\n\n const clonedComponents = fromJS(config.components).toJS();\n\n itemData.value.forEach((itemValue, itemIndex) => {\n clonedComponents[itemIndex].props.value = itemValue;\n });\n\n return (\n \n \n {\n !itemData.editMode\n ? (\n <>\n { this.getListItemText(itemData, index) }\n \n \n \n \n \n \n \n \n \n )\n : (\n <>\n \n \n \n \n \n )\n }\n \n {\n config.children\n ? (\n \n )\n : null\n }\n \n );\n }\n\n genList() {\n const { config } = this.props;\n const { buttonWidth, value } = this.state;\n\n if (!value || value.length === 0) {\n return null;\n }\n\n return (\n <>\n {\n config.displayType === 'table' || !config.displayType\n ? (\n \n \n {\n config.components.map((component, index) => (\n \n { component.props.label }\n \n ))\n }\n \n \n )\n : null\n }\n
      \n {\n value.map((itemData, index) => this.genListItem(itemData, index))\n }\n
    \n \n );\n }\n\n render() {\n const {\n addValueOnFieldChange, config, error, disabled, label,\n } = this.props;\n const appendToElement = document.querySelector(config.appendTo) || document.querySelector('body');\n\n return (\n
    \n {\n label\n ? \n : null\n }\n \n {\n config.appendTo\n ? ReactDOM.createPortal(\n this.genList(),\n appendToElement,\n )\n : this.genList()\n }\n
    \n );\n }\n}\n\nEditableList.propTypes = {\n addValueOnFieldChange: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n config: PropTypes.instanceOf(Object),\n onChange: PropTypes.func,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n ]),\n};\n\nexport default EditableList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../../../components/Button';\n\nfunction Header({\n label, addButtonName, onAddRow, disabled, readOnly,\n}) {\n return (\n
    \n {\n label\n ? \n : null\n }\n {!disabled && !readOnly && (\n \n {addButtonName || 'Add'}\n \n )}\n
    \n );\n}\n\nHeader.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n onAddRow: PropTypes.func,\n addButtonName: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n};\n\nexport default Header;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ListHeader({\n fields,\n readOnly,\n}) {\n return (\n
  • \n {\n fields.map((field) => (\n \n {field?.props?.label}\n \n ))\n }\n
    Delete
    \n
  • \n );\n}\n\nListHeader.propTypes = {\n fields: PropTypes.instanceOf(Array),\n readOnly: PropTypes.bool,\n};\n\nexport default ListHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '../../../components/Button';\n\nfunction FieldsList({\n fields,\n disabled,\n readOnly,\n errors,\n components,\n onChange,\n onDelete,\n value,\n rowIndex,\n}) {\n return (\n
  • \n {\n components.map((Component, index) => {\n const field = fields[index];\n const tempField = typeof field === 'function' ? field(rowIndex, index) : field;\n return (\n \n \n \n );\n })\n }\n
    \n \n
    \n
  • \n );\n}\n\nFieldsList.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n rowIndex: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n fields: PropTypes.instanceOf(Array),\n errors: PropTypes.instanceOf(Array),\n components: PropTypes.instanceOf(Array),\n value: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n onDelete: PropTypes.func,\n};\n\nexport default FieldsList;\n","import React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Header from './Header';\nimport ListHeader from './ListHeader';\nimport FieldsList from './FieldsList';\nimport validateValues from './validate-values';\nimport withValidation from './with-validation';\n\nlet id = 1;\n/* eslint-disable-next-line */\nconst getUID = prefix => `${prefix}-${id++}`;\n\n/**\n * Editable list is a component, that lists rows of form elements (can have n elements on a row),\n * and stores the values of all the rows in an Array list\n */\nfunction EditableList2({\n addButtonName,\n disabled,\n readOnly,\n fields,\n label,\n error,\n value = [],\n onChange = () => {},\n hideOnEmpty = true,\n wrapperClassName = '',\n}) {\n const [internalErrors, setInternalErrors] = useState(null);\n\n const updateRowValue = (rowIndex, fieldIndex, componentValue, isValid) => {\n const tempValueArr = !value ? [] : [...value];\n\n if (!value) {\n tempValueArr[rowIndex] = [...new Array(fields.length)];\n tempValueArr[rowIndex][fieldIndex] = componentValue;\n } else {\n const tempValue = [...tempValueArr[rowIndex]];\n tempValue[fieldIndex] = componentValue;\n tempValueArr[rowIndex] = tempValue;\n tempValueArr[rowIndex].id = value[rowIndex].id;\n }\n\n if (internalErrors?.[rowIndex]?.[fieldIndex] && isValid) {\n const tempErrors = [...internalErrors];\n const tempFieldError = [...tempErrors[rowIndex]];\n tempFieldError[fieldIndex] = null;\n tempErrors[rowIndex] = tempFieldError;\n setInternalErrors(tempErrors);\n }\n onChange(tempValueArr);\n };\n\n const hasErrors = (errors) => Boolean(errors?.flat()?.filter(Boolean).length);\n\n const Components = useMemo(\n () => fields.map((field) => {\n const tempField = typeof field === 'function' ? field() : field;\n\n return withValidation(tempField?.component || null);\n }),\n [],\n );\n\n const onAddRow = () => {\n const errors = validateValues(fields, value);\n\n if (hasErrors(errors)) {\n setInternalErrors(errors);\n return;\n }\n\n const newValue = [...new Array(fields.length)];\n newValue.id = getUID('row');\n\n onChange([\n ...value,\n newValue,\n ]);\n };\n\n const deleteRow = (index) => {\n if (!value) {\n return;\n }\n const tempValue = [...value];\n tempValue.splice(index, 1);\n onChange(tempValue);\n };\n\n return (\n
    \n \n {value?.length || !hideOnEmpty ? (\n
      \n {(value || [[]]).map((v, i) => (\n \n ))}\n \n
    \n ) : null}\n {error && error !== 'true' && error !== 'false' ? (\n

    {error}

    \n ) : null}\n
    \n );\n}\n\nEditableList2.propTypes = {\n /** Sets Editable list in edit mode.\n * If enabled all fields are disabled, the add button is hidden and delete button is disabled\n * */\n disabled: PropTypes.bool,\n /** Sets Editable list in read only mode.\n * If enabled all fields are displaying just the value,\n * the add button is hidden and delete button is disabled\n */\n readOnly: PropTypes.bool,\n /** Name of the Add button. By default has 'Add value' */\n addButtonName: PropTypes.string,\n /** Label of Editable list, is displayed above the list and inline with the Add button */\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n /** Array of form elements that you want the list to have\n * Each field is an object points to the Form element component that you want to use,\n * the props you want to apply on it,\n * and the size (as in width, it's like columns system, between 1 and 12)\n * Example:\n * ...\n * fields={[\n {\n component: Input2,\n styles: {\n width: \"200px\",\n },\n size: 4,\n props: {\n name: 'input',\n label: 'Claim name',\n theme: 'default rounded-corners',\n placeholder: 'Enter claim name',\n validate: formikRequired('This field is required')\n }\n },\n {\n component: Combobox2,\n size: 8,\n props: comboboxProps\n }\n ]}\n */\n fields: PropTypes.instanceOf(Array),\n /** onChange function is called everytime the value of editable list changes */\n onChange: PropTypes.func,\n /** value of editable list, wich is an Array (List of row values)\n * of Arrays (List of column values,\n * each column will have the value format depending on the component type)\n */\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Object),\n PropTypes.instanceOf(Array),\n ]),\n error: PropTypes.string,\n hideOnEmpty: PropTypes.bool,\n wrapperClassName: PropTypes.string,\n};\n\nexport default EditableList2;\n","import React, { useCallback, useState } from 'react';\n\n// eslint-disable-next-line react/function-component-definition\nconst withValidation = (Component) => ({\n onChange, // eslint-disable-line react/prop-types\n validate, // eslint-disable-line react/prop-types\n error, // eslint-disable-line react/prop-types\n ...rest\n}) => {\n const [internalError, setInternalError] = useState(null);\n const onFieldChange = useCallback((event) => {\n /* eslint-disable-next-line */\n const value = event?.target\n ? ['radio', 'checkbox'].includes(event.target.type)\n ? event.target.checked\n : event?.target.value\n : event;\n\n let isValid = true;\n if (validate && typeof validate === 'function') {\n const errorMsg = validate(value);\n isValid = !errorMsg;\n setInternalError(errorMsg);\n }\n\n onChange(value, isValid);\n }, [validate, onChange]);\n\n return ;\n};\n\nexport default withValidation;\n","const validateValues = (fields, rowValues) => (rowValues || [[undefined, undefined]])?.map(\n (colValue) => colValue?.map(\n (value, index) => fields[index].props.validate?.(value),\n ),\n);\n\nexport default validateValues;\n","import React, { useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\n\nfunction FileInput({\n error,\n theme,\n labelwidth,\n wrapperClassName = '',\n id,\n label,\n note,\n accept,\n value,\n onChange,\n ...rest\n}) {\n const fileInputRef = useRef();\n\n function handleOnChange(e) {\n onChange(e.target.files);\n }\n\n function getCssClasses() {\n const cssClasses = [wrapperClassName, 'tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n }\n\n function getLabelStyles() {\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n function getNonLabelWidth() {\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n function getFileInputError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n function getFileInputComponent() {\n return (\n \n \n {\n fileInputRef.current && fileInputRef.current.files.length > 0\n ? (\n \n \n \n )\n : null\n }\n \n );\n }\n\n function clearValue() {\n fileInputRef.current.value = '';\n onChange('');\n }\n\n return (\n
    \n {\n label\n ? \n : null\n }\n
    \n { getFileInputComponent() }\n {\n note\n ?

    { note }

    \n : null\n }\n
    \n { getFileInputError() }\n
    \n );\n}\n\nFileInput.propTypes = {\n accept: PropTypes.string,\n disabled: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.instanceOf(Object),\n wrapperClassName: PropTypes.string,\n};\n\nexport default FileInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nclass Input extends Component {\n static getAddon(content) {\n return (\n
    \n { content }\n
    \n );\n }\n\n constructor(props) {\n super(props);\n const {\n value,\n } = this.props;\n\n this.state = {\n initValue: value,\n stateValue: value,\n };\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n const {\n isfield,\n value,\n onChange,\n } = this.props;\n\n if (!isfield && prevProps.value !== value) {\n /* eslint-disable react/no-did-update-set-state */\n this.setState({\n stateValue: value,\n }, () => {\n if (onChange) {\n onChange(value);\n }\n });\n }\n }\n\n handleOnChange(e) {\n const { onChange, isfield } = this.props;\n const inputValue = e.target.value;\n\n if (!isfield) {\n this.setState({\n stateValue: inputValue,\n }, () => {\n if (onChange) {\n onChange(inputValue);\n }\n });\n } else {\n onChange(inputValue);\n }\n }\n\n getLabelStyles() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n getNonLabelWidth() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n getInputError() {\n const { error } = this.props;\n\n return (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null;\n }\n\n getCssClasses() {\n const {\n error,\n theme,\n labelwidth,\n inputgroupaddonleft,\n inputgroupaddonright,\n } = this.props;\n const cssClasses = ['tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (inputgroupaddonleft) {\n cssClasses.push('tyk-form-group--addon-left');\n }\n\n if (inputgroupaddonright) {\n cssClasses.push('tyk-form-group--addon-right');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n }\n\n getInputGroupAddon() {\n const {\n inputgroupaddonleft,\n inputgroupaddonright,\n } = this.props;\n\n return (\n
    \n {\n inputgroupaddonleft\n ? Input.getAddon(inputgroupaddonleft)\n : null\n }\n { this.getInputComponent() }\n {\n inputgroupaddonright\n ? Input.getAddon(inputgroupaddonright)\n : null\n }\n
    \n );\n }\n\n getInputComponent() {\n const {\n isfield, onChange, value, ...rest\n } = this.props;\n const { stateValue } = this.state;\n return (\n \n );\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n reset() {\n const { initValue } = this.state;\n\n this.setState({\n stateValue: initValue,\n });\n }\n\n render() {\n const {\n label,\n id,\n inputgroupaddonleft,\n inputgroupaddonright,\n note,\n readOnly,\n value,\n } = this.props;\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n {\n inputgroupaddonleft || inputgroupaddonright\n ? this.getInputGroupAddon()\n : this.getInputComponent()\n }\n {\n note\n ?

    { note }

    \n : null\n }\n { this.getInputError() }\n
    \n )}\n {\n readOnly &&
    {value || '-'}
    \n }\n \n );\n }\n}\n\nInput.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n isfield: PropTypes.bool,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n inputgroupaddonleft: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n inputgroupaddonright: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n};\n\nexport default Input;\n","import React, { useImperativeHandle, useRef, forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Input2({\n error,\n onChange,\n readOnly,\n id,\n inputgroupaddonleft,\n inputgroupaddonright,\n label,\n labelwidth,\n note,\n theme,\n value,\n wrapperClassName = '',\n ...rest\n}, ref) {\n const inputRef = useRef();\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n inputRef.current.focus();\n },\n }));\n\n const getAddon = (content) => (\n
    \n { content }\n
    \n );\n\n const getLabelStyles = () => ({\n ...labelwidth && {\n flexBasis: labelwidth,\n },\n });\n\n const getNonLabelWidth = () => ({\n ...labelwidth && {\n flexBasis: `calc(100% - ${labelwidth} - 20px)`,\n },\n });\n\n const getInputError = () => (\n (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null\n );\n\n const getCssClasses = () => {\n const cssClasses = [wrapperClassName, 'tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (inputgroupaddonleft) {\n cssClasses.push('tyk-form-group--addon-left');\n }\n\n if (inputgroupaddonright) {\n cssClasses.push('tyk-form-group--addon-right');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n };\n\n const handleOnChange = (e) => {\n onChange(e, e.target.value);\n };\n\n const getInputElement = () => (\n \n );\n\n const getInputGroupAddon = () => (\n
    \n {\n inputgroupaddonleft\n ? getAddon(inputgroupaddonleft)\n : null\n }\n { getInputElement() }\n {\n inputgroupaddonright\n ? getAddon(inputgroupaddonright)\n : null\n }\n
    \n );\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n {\n inputgroupaddonleft || inputgroupaddonright\n ? getInputGroupAddon()\n : getInputElement()\n }\n {\n note\n ?

    { note }

    \n : null\n }\n { getInputError() }\n
    \n )}\n {\n readOnly && (\n
    \n {value || '-'}\n
    \n )\n }\n \n );\n}\n\nInput2.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n inputgroupaddonleft: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n inputgroupaddonright: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default forwardRef(Input2);\n","import { createContext } from 'react';\n\nconst MultiselectContext = createContext();\n\nexport default MultiselectContext;\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport MultiselectContext from './MultiselectContext';\nimport Button from '../../../../components/Button';\nimport Collapsible from '../../../../components/Collapsible';\nimport Loader from '../../../../components/Loader';\n\nconst getItemContent = (context, item) => (\n context.detailsDisplayTemplate\n ? context.detailsDisplayTemplate(item)\n : JSON.stringify(item.details)\n);\n\nconst getItemLoader = (context, item) => {\n const { opened } = context;\n\n return opened[item.id]\n ? \n : null;\n};\n\nfunction MultiselectItem({\n item,\n itemType,\n searchValue,\n onChange,\n}) {\n const isInSearchValue = useCallback((fieldsToSearchOn) => {\n if (fieldsToSearchOn?.length > 0) {\n return fieldsToSearchOn.some((key) => item[key]?.includes(searchValue));\n }\n\n return JSON.stringify(item).includes(searchValue);\n }, [item, searchValue]);\n\n const onAddRemove = useCallback(() => {\n onChange(item);\n }, [onChange, item]);\n\n return (\n \n {\n (context) => (\n isInSearchValue(context.fieldsToSearchOn)\n ? (\n
  • \n
    \n \n {\n context.itemDisplayTemplate\n ? context.itemDisplayTemplate(item)\n : JSON.stringify(item)\n }\n \n \n \n context.onGetItemDetails(item)}\n />\n \n
    \n {\n item.details\n ? (\n \n {getItemContent(context, item)}\n \n )\n : getItemLoader(context, item)\n }\n
  • \n )\n : null\n )\n }\n
    \n );\n}\n\nMultiselectItem.propTypes = {\n item: PropTypes.instanceOf(Object),\n itemType: PropTypes.string,\n searchValue: PropTypes.string,\n onChange: PropTypes.func,\n};\n\nexport default MultiselectItem;\n","import React, { useCallback, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Input from '../../Input';\nimport Icon from '../../../../components/Icon';\nimport Message from '../../../../components/Message';\nimport InfiniteScroller from '../../../../components/InfiniteScroller';\nimport MultiselectItem from './MultiselectItem';\n\nfunction MultiselectPanel({\n inputPlaceholder,\n noItemsMessage,\n items,\n onCustomSearch,\n onChange,\n customSearch,\n panelType,\n serverLoad,\n itemsPageNumber,\n itemsNrPages,\n loadMoreItems,\n}) {\n const [searchValue, setSearchValue] = useState('');\n const itemIndex = useRef(0);\n const itemsListRef = useRef();\n\n function getItemIndex() {\n itemIndex.current += 1;\n\n return itemIndex.current;\n }\n\n function getItemsList() {\n return (\n serverLoad\n ? (\n itemsPageNumber}\n loadMore={loadMoreItems}\n pageNumber={itemsPageNumber}\n >\n { renderListItems() }\n \n )\n : renderListItems()\n );\n }\n\n const searchOnChange = useCallback((value) => {\n if (onCustomSearch) {\n onCustomSearch(value);\n } else {\n setSearchValue(value);\n }\n }, [onCustomSearch]);\n\n const itemChanged = useCallback((item) => {\n let cloneItems = structuredClone(items);\n cloneItems = cloneItems.filter((clonedItem) => item.id !== clonedItem.id);\n\n onChange(cloneItems, item);\n }, [items]);\n\n function renderListItems() {\n return (\n \n {\n items.map((item) => (\n \n ))\n }\n \n );\n }\n\n return (\n
    \n \n }\n name=\"search\"\n onChange={searchOnChange}\n placeholder={inputPlaceholder}\n value={searchValue}\n />\n {\n items.length\n ? getItemsList()\n : (\n \n { noItemsMessage }\n \n )\n }\n
    \n );\n}\n\nMultiselectPanel.propTypes = {\n customSearch: PropTypes.bool,\n onCustomSearch: PropTypes.func,\n panelType: PropTypes.string,\n onChange: PropTypes.func,\n items: PropTypes.instanceOf(Array),\n itemsPageNumber: PropTypes.number,\n itemsNrPages: PropTypes.number,\n inputPlaceholder: PropTypes.string,\n loadMoreItems: PropTypes.func,\n noItemsMessage: PropTypes.string,\n serverLoad: PropTypes.bool,\n};\n\nexport default MultiselectPanel;\n","import React, { useCallback, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport MultiselectPanel from './js/MultiselectPanel';\nimport MultiselectContext from './js/MultiselectContext';\n\nconst diffObjects = (value, items) => items.filter((item) => !value.find((v) => v.id === item.id));\n\nfunction Multiselect({\n customSearch,\n entityNamePlural,\n disabled,\n error,\n getItemDetails,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n items,\n itemsPageNumber,\n itemsNrPages,\n loadMoreItems,\n maxSelections,\n note,\n value,\n onChange,\n wrapperClassName = '',\n}) {\n const [opened, setOpened] = useState({});\n\n const onGetItemDetails = useCallback((item) => {\n setOpened((prevOpened) => ({ ...prevOpened, [item.id]: !prevOpened[item.id] }));\n\n if (getItemDetails) getItemDetails(item);\n }, [getItemDetails]);\n\n function getMultiselectError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n const getCssClasses = useCallback(\n () => [\n wrapperClassName,\n 'tyk-multiselect',\n error && 'has-error',\n ]\n .filter(Boolean)\n .join(' '),\n [wrapperClassName, error],\n );\n\n const itemsChange = useCallback((allItems, item) => {\n const valueClone = structuredClone(value);\n\n valueClone.unshift(item);\n\n onChange(valueClone, item, 'added');\n }, [value]);\n\n const valueChange = useCallback((newValue, item) => {\n onChange(newValue, item, 'removed');\n }, [items]);\n\n const providerValue = useMemo(() => ({\n disabled,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n maxSelections,\n nrSelectedItems: value.length,\n onGetItemDetails,\n opened,\n }), [\n disabled,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n maxSelections,\n value,\n onGetItemDetails,\n opened,\n ]);\n\n return (\n <>\n
    \n \n
    \n
    \n { value.length }\n {' '}\n Selected\n {' '}\n { entityNamePlural }\n
    \n
    \n Select from existing\n { entityNamePlural }\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n {\n note\n ?

    { note }

    \n : null\n }\n
    \n { getMultiselectError() }\n \n );\n}\n\nMultiselect.propTypes = {\n customSearch: PropTypes.func,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n entityNamePlural: PropTypes.string,\n items: PropTypes.instanceOf(Array),\n itemDisplayTemplate: PropTypes.func,\n detailsDisplayTemplate: PropTypes.func,\n fieldsToSearchOn: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n getItemDetails: PropTypes.func,\n itemsPageNumber: PropTypes.number,\n itemsNrPages: PropTypes.number,\n loadMoreItems: PropTypes.func,\n note: PropTypes.string,\n maxSelections: PropTypes.number,\n value: PropTypes.instanceOf(Array),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Multiselect;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * Radio can be used when a user needs to select at most one value from a multiple options.\n */\nfunction Radio({\n label,\n input,\n note,\n inline,\n nospace,\n theme = '',\n disabled,\n readOnly,\n wrapperClassName = '',\n ...rest\n}) {\n const cssClasses = [\n inline ? 'tyk-radio--inline' : 'tyk-radio',\n wrapperClassName,\n nospace && 'no-margin',\n ...(theme ? theme.split(' ').filter(Boolean).map((t) => `tyk-radio--theme-${t}`) : []),\n (readOnly || disabled) && 'tyk-radio--is-disabled',\n ].filter(Boolean).join(' ');\n\n return (\n
    \n \n {note && (\n

    {note}

    \n )}\n
    \n );\n}\n\nRadio.propTypes = {\n /** Used to disable the element */\n disabled: PropTypes.bool,\n /** Readonly prop behaves the same as disabled on radio elements */\n readOnly: PropTypes.bool,\n /** Align radio in the same line with other elements */\n inline: PropTypes.bool,\n /** Set a theme for radio */\n theme: PropTypes.string,\n input: PropTypes.instanceOf(Object),\n /** Adds label to the radio input */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Set name for the radio input */\n name: PropTypes.string,\n /** If set to true removes margin by adding `no-margin` class */\n nospace: PropTypes.bool,\n /** Set initial value for the radio input */\n value: PropTypes.string,\n /** Add note at the bottom of the radio input */\n note: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Radio;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Select(props) {\n const {\n value,\n onChange,\n onBlur,\n isfield,\n label,\n labelwidth,\n id,\n note,\n readOnly,\n options,\n error,\n theme,\n wrapperClassName = '',\n ...rest\n } = props;\n const [stateValue, setStateValue] = useState(value);\n\n useEffect(() => {\n if (!isfield && stateValue !== value) {\n setStateValue(value);\n if (onChange) onChange(value);\n }\n }, [stateValue, value]);\n\n const handleOnChange = useCallback((e) => {\n const selectedValue = options.find((option) => option.id === e.target.value);\n\n if (!isfield) {\n setStateValue(selectedValue);\n }\n onChange(selectedValue.id ? selectedValue : null);\n }, [options, isfield, onChange]);\n\n const handleOnBlur = useCallback(() => {\n if (onBlur) {\n onBlur(value);\n }\n }, [onBlur]);\n\n // eslint-disable-next-line arrow-body-style\n const getSelectError = useCallback(() => {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }, [error]);\n\n const getCssClasses = useCallback(\n () => [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' '),\n [wrapperClassName, theme, labelwidth, error],\n );\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const getNonLabelWidth = useCallback(() => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n }, [labelwidth]);\n\n const getSelectComponent = useCallback(() => {\n const selectValue = isfield && value ? value : stateValue;\n\n return (\n \n {\n options.map((option) => (\n \n ))\n }\n \n );\n }, [isfield, value, stateValue, handleOnChange, handleOnBlur, options, rest]);\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n { getSelectComponent() }\n {\n note\n ?

    { note }

    \n : null\n }\n { getSelectError() }\n
    \n )}\n {readOnly &&
    {value || '-'}
    }\n \n );\n}\n\nSelect.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n isfield: PropTypes.bool,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n options: PropTypes.instanceOf(Array),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Select;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../../../components/Message';\nimport List from '../../../components/List';\nimport Icon from '../../../components/Icon';\n\nfunction SelectableList(props) {\n const {\n checkboxalticon,\n items,\n itemTemplate,\n value,\n noItemsMessage = 'No items in the list',\n onChange,\n theme,\n primaryKey,\n wrapperClassName = '',\n } = props;\n\n const handleOnSelect = (event) => {\n const newSelectedItems = structuredClone(value);\n const elemPosition = newSelectedItems.findIndex(\n (id) => JSON.stringify(id) === JSON.stringify(\n Array.isArray(id)\n ? event.target.value.split(',')\n : event.target.value,\n ),\n );\n\n if (event.target.checked && elemPosition === -1) {\n const tempValue = event.target.value.split(',');\n const finalValue = tempValue.length > 1 ? tempValue : event.target.value;\n\n newSelectedItems.push(finalValue);\n } else if (!event.target.checked && elemPosition > -1) {\n newSelectedItems.splice(elemPosition, 1);\n }\n\n if (onChange) {\n onChange(newSelectedItems);\n }\n };\n\n const getListItemCssClassName = (isActive) => {\n const cssClasses = [];\n\n if (checkboxalticon) {\n cssClasses.push('tyk-selectable-list__item--with-icon');\n }\n\n if (isActive) {\n cssClasses.push('tyk-selectable-list__item--active');\n }\n\n return cssClasses.join(' ');\n };\n\n const isChecked = (inputValue, itemValue) => Boolean(\n inputValue.find((tvalue) => JSON.stringify(itemValue) === JSON.stringify(tvalue)),\n );\n\n return (\n \n {\n !items.length\n ? (\n
  • \n \n {noItemsMessage}\n \n
  • \n )\n : items.map((item, index) => (\n \n \n \n ))\n }\n
    \n );\n}\n\nSelectableList.propTypes = {\n items: PropTypes.instanceOf(Array),\n itemTemplate: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n PropTypes.func,\n ]),\n value: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n primaryKey: PropTypes.string,\n noItemsMessage: PropTypes.string,\n checkboxalticon: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n theme: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\n\nSelectableList.defaultProps = {\n items: [],\n primaryKey: 'id',\n value: [],\n};\n\nexport default SelectableList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Textarea({\n id,\n input,\n label,\n note,\n error,\n theme,\n labelwidth,\n value,\n readOnly,\n wrapperClassName,\n ...rest\n}) {\n const classes = [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const getLabelStyles = () => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n };\n\n const getNonLabelWidth = () => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n };\n\n function getTextareaError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n \n { value }\n \n {\n note\n ?

    { note }

    \n : null\n }\n {getTextareaError()}\n
    \n )}\n {readOnly &&
    {value || '-'}
    }\n \n );\n}\n\nTextarea.propTypes = {\n /** Disable the component */\n disabled: PropTypes.bool,\n /** Displays only the text value of the component, or \"-\" if no value is set */\n readOnly: PropTypes.bool,\n input: PropTypes.instanceOf(Object),\n /** Set an error message for the component and the component is rendered in the error state */\n error: PropTypes.string,\n /** Adds a label to the component */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Sets the width of the label */\n labelwidth: PropTypes.string,\n /** Set a name for the component */\n name: PropTypes.string,\n /** Adds additional information under the component */\n note: PropTypes.string,\n /** Callback function executed on value change */\n onChange: PropTypes.func,\n id: PropTypes.string,\n /** Set a theme for the component */\n theme: PropTypes.string,\n /** Set the value of the component */\n value: PropTypes.string,\n /** CSS classes added to the wrapper of the component */\n wrapperClassName: PropTypes.string,\n};\n\nexport default Textarea;\n","import { createContext } from 'react';\n\nconst ToggleContext = createContext();\n\nexport default ToggleContext;\n","import React, { Component, createRef } from 'react';\nimport PropTypes from 'prop-types';\n\nclass ToggleItem extends Component {\n static getNotchCssClasses(context) {\n return ['tyk-toggle__item-notch', `tyk-toggle__item-notch--${context.type}`].join(' ');\n }\n\n constructor(props) {\n super(props);\n\n this.itemRef = createRef();\n }\n\n componentDidMount() {\n const { context, value } = this.props;\n\n if (context.value === value) {\n context.saveSelectedRef(this.itemRef);\n }\n }\n\n componentDidUpdate(prevProps) {\n const { context, value } = this.props;\n\n if (prevProps.context.value !== context.value && context.value === value) {\n context.saveSelectedRef(this.itemRef);\n }\n }\n\n onChange(event) {\n const { context, value } = this.props;\n const { disabled, readOnly } = context;\n\n if (disabled || readOnly) {\n return;\n }\n\n context.onItemSelected(context.type === 'single' ? !context.value : value, event);\n }\n\n render() {\n const {\n context, label, name, value,\n } = this.props;\n return (\n
  • \n \n
  • \n );\n }\n}\n\nToggleItem.propTypes = {\n context: PropTypes.instanceOf(Object),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n name: PropTypes.string,\n value: PropTypes.string,\n};\n\nexport default ToggleItem;\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToggleContext from './ToggleContext';\nimport ToggleItem from './ToggleItem';\n\nfunction ToggleItemWrapper({ children, ...rest }, ref) {\n return (\n \n {(context) => (\n \n {children}\n \n )}\n \n );\n}\n\nToggleItemWrapper.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nexport default forwardRef(ToggleItemWrapper);\n","import React, {\n useCallback, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToggleContext from './js/ToggleContext';\nimport ToggleItemWrapper from './js/ToggleItemWrapper';\n\nfunction Toggle({\n className,\n disabled,\n readOnly,\n size,\n theme,\n direction,\n onDark,\n wrapperClassName = '',\n onChange,\n labelwidth,\n label,\n separated,\n children,\n type,\n value,\n error,\n}) {\n const [selectedRef, setSelectedRef] = useState(null);\n const notchRef = useRef();\n const toggleRef = useRef();\n\n const classes = [\n wrapperClassName,\n className,\n 'tyk-toggle',\n `tyk-toggle--disabled-${readOnly || disabled}`,\n `tyk-toggle--${size || 'md'}`,\n `tyk-toggle--${theme}`,\n `tyk-toggle--${direction}`,\n onDark && 'tyk-toggle--on-dark',\n ].filter(Boolean).join(' ');\n\n const onItemSelected = useCallback((itemValue, event) => {\n if (!onChange) return;\n onChange(itemValue, event);\n }, [onChange]);\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const positionNotch = useCallback(() => {\n if (!selectedRef || separated) {\n return {};\n }\n\n const selectedWidth = selectedRef.current.offsetWidth;\n const selectedOffset = selectedRef.current.getBoundingClientRect().left;\n const toggleOffset = toggleRef.current.getBoundingClientRect().left;\n const left = selectedOffset - toggleOffset;\n\n return {\n left: `${left + 4}px`,\n width: `${selectedWidth - 8}px`,\n };\n }, [selectedRef, separated]);\n\n const contextValue = useMemo(() => ({\n disabled,\n readOnly,\n onItemSelected,\n saveSelectedRef: setSelectedRef,\n separated,\n type,\n value,\n }), [disabled, readOnly, onItemSelected, separated, type, value]);\n\n return (\n <>\n
    \n \n {\n label\n ? \n : null\n }\n
      \n { children }\n {\n type === 'multiple' && !separated\n ?
    • \n : null\n }\n
    \n \n
    \n {\n error && (\n

    \n { error }\n

    \n )\n }\n \n );\n}\n\nToggle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n error: PropTypes.string,\n onChange: PropTypes.func,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n theme: PropTypes.string,\n type: PropTypes.string, // single || multiple\n size: PropTypes.string,\n separated: PropTypes.bool,\n direction: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n ]),\n onDark: PropTypes.bool,\n wrapperClassName: PropTypes.string,\n};\n\nToggle.defaultProps = {\n separated: false,\n theme: 'primary',\n type: 'single',\n direction: 'row',\n};\n\nToggle.Item = ToggleItemWrapper;\n\nexport default Toggle;\n","const config = {\n FORM_DEBOUNCE: 200,\n};\n\nexport function setConfig(key, val) {\n config[key] = val;\n}\n\nexport default config;\n","import React, { useCallback, useEffect, useState } from 'react';\n\nimport config from '../config/config';\n\nfunction getValueFromPath(obj, path) {\n // turn 'aaa.qqq[2].bbb[5][3].mmm' into ['aaa', 'qqq', '2', 'bbb', '5', '3', 'mmm']\n const indexes = path.split(/[\\][.]/).filter(Boolean);\n return indexes.reduce((acc, v) => (acc ? acc[v] : acc), obj);\n}\n\nfunction debounce(f, limit) {\n let timeoutId;\n return (...args) => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(f, limit, ...args);\n };\n}\n\n/* eslint-disable react/prop-types, react/function-component-definition */\n/**\n * A wrapper function that \"prepares\" a tyk-ui form component to be used with the formik library.\n * It handles things like setting the value of the component, change events, error state,\n * and also has a default debounce time for when the change event is triggered.\n */\nconst wrapper = (Component, options) => ({ field, form, ...properties }) => {\n const DEFAULT_DEBOUNCE_TIME_MS = typeof config.FORM_DEBOUNCE === 'number' ? config.FORM_DEBOUNCE : 200;\n const [myValue, setMyValue] = useState(field.value);\n const opts = {\n getOnChangeProps: () => ({}),\n hasIsFieldProp: false,\n ...options,\n };\n\n const executeDebounced = useCallback((() => {\n const fn = (f) => f();\n if (\n properties.debounce === false\n || (config.FORM_DEBOUNCE === false && !properties.debounce)\n ) {\n return fn;\n }\n const timeout = typeof properties.debounce === 'number'\n ? properties.debounce\n : DEFAULT_DEBOUNCE_TIME_MS;\n return debounce(fn, timeout);\n })(), []);\n\n const getValue = (v) => {\n if (v?.target) {\n if (v.target.nodeName === 'INPUT' && (v.target.type === 'checkbox' || v.target.type === 'radio')) {\n return v.target.checked;\n }\n return v.target.value;\n }\n return v;\n };\n\n const onChange = (valueOrEvent) => {\n const value = getValue(valueOrEvent);\n const onChangeProps = opts.getOnChangeProps(value, field, form, properties);\n\n const newValue = onChangeProps.value || properties.value || value;\n executeDebounced(() => {\n if (typeof properties.onChange === 'function') {\n properties.onChange(newValue);\n }\n field.onChange({ target: { name: field.name, value: newValue, ...onChangeProps } });\n });\n setMyValue(newValue);\n };\n\n const formError = (getValueFromPath(form.touched, field.name) || Boolean(form.submitCount))\n && getValueFromPath(form.errors, field.name);\n const error = typeof formError === 'string' ? formError : '';\n\n useEffect(() => {\n setMyValue(field.value);\n }, [field.value]);\n\n // eslint-disable-next-line no-param-reassign\n if (form.status?.disabled) properties.disabled = true;\n\n const componentProps = { ...properties };\n delete componentProps.debounce;\n\n if (Object.hasOwn(componentProps, 'className') && componentProps.className === undefined) delete componentProps.className;\n if (Object.hasOwn(componentProps, 'children') && componentProps.children === undefined) delete componentProps.children;\n\n return (\n \n );\n};\n\nexport default wrapper;\n","import wrapper from '../../../utils/formik';\nimport Checkbox from '../../components/Checkbox';\n\nexport default wrapper(Checkbox, {\n getOnChangeProps: (value) => ({\n checked: value,\n }),\n});\n","import wrapper from '../../../utils/formik';\nimport CodeEditor from '../../components/CodeEditor';\n\nexport default wrapper(CodeEditor);\n","import wrapper from '../../../utils/formik';\nimport Combobox from '../../components/Combobox';\n\nexport default wrapper(Combobox);\n","import wrapper from '../../../utils/formik';\nimport Combobox2 from '../../components/Combobox2';\n\nexport default wrapper(Combobox2);\n","import wrapper from '../../../utils/formik';\nimport DatePicker from '../../components/DatePicker';\n\nexport default wrapper(DatePicker);\n","import wrapper from '../../../utils/formik';\nimport EditableList from '../../components/EditableList';\n\nexport default wrapper(EditableList, {\n getOnChangeProps: (value) => ({ value: value || [] }),\n});\n","import wrapper from '../../../utils/formik';\nimport EditableList2 from '../../components/EditableList2';\n\nexport default wrapper(EditableList2);\n","import wrapper from '../../../utils/formik';\nimport FileInput from '../../components/FileInput';\n\nexport default wrapper(FileInput);\n","import wrapper from '../../../utils/formik';\nimport Input from '../../components/Input';\n\nexport default wrapper(Input, { hasIsFieldProp: true });\n","import wrapper from '../../../utils/formik';\nimport Input2 from '../../components/Input2';\n\nexport default wrapper(Input2);\n","import wrapper from '../../../utils/formik';\nimport MultiSelect from '../../components/Multiselect';\n\nexport default wrapper(MultiSelect);\n","import wrapper from '../../../utils/formik';\nimport Radio from '../../components/Radio';\n\nexport default wrapper(Radio, {\n getOnChangeProps: (value, field, form, properties) => ({\n checked: value === properties.value,\n value: properties.value,\n }),\n});\n","import wrapper from '../../../utils/formik';\nimport Select from '../../components/Select';\n\nexport default wrapper(Select, { hasIsFieldProp: true });\n","import wrapper from '../../../utils/formik';\nimport SelectableList from '../../components/SelectableList';\n\nexport default wrapper(SelectableList);\n","import wrapper from '../../../utils/formik';\nimport Textarea from '../../components/Textarea';\n\nexport default wrapper(Textarea);\n","import wrapper from '../../../utils/formik';\nimport Toggle from '../../components/Toggle';\n\nexport default wrapper(Toggle);\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport CodeEditor from '../../components/CodeEditor';\n\nclass FieldCodeEditor extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.prop;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldCodeEditor.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCodeEditor;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Combobox from '../../components/Combobox';\n\nclass FieldCombobox extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getComboboxError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldCombobox.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCombobox;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Dropdown from '../../components/Dropdown';\n\nclass FieldDropdown extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n render() {\n const {\n children,\n input,\n ...rest\n } = this.props;\n\n return (\n \n {children}\n \n );\n }\n}\n\nFieldDropdown.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldDropdown;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Pagination from '../../components/Pagination';\n\nfunction FieldPagination(props) {\n const { input, ...rest } = props;\n\n return (\n \n );\n}\n\nFieldPagination.propTypes = {\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldPagination;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Combobox2 from '../../components/Combobox2';\n\nfunction FieldCombobox2(props) {\n const { input, meta, validationmessages } = props;\n\n const getComboboxError = () => {\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n return message;\n };\n\n const handleOnChange = (value) => {\n const { onChange } = input;\n onChange(fromJS(value));\n };\n\n return (\n \n );\n}\n\nFieldCombobox2.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCombobox2;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport DatePicker from '../../components/DatePicker';\n\nfunction FormDatePicker(props) {\n const {\n input,\n meta,\n validationmessages,\n ...rest\n } = props;\n\n const getDatePickerError = () => {\n const { touched, error } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n }\n\n return message;\n };\n\n const handleOnChange = (value) => {\n const { onChange } = input;\n\n onChange(fromJS(value));\n };\n\n return (\n \n );\n}\n\nFormDatePicker.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FormDatePicker;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport EditableList from '../../components/EditableList';\n\nclass FieldEditableList extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getEditableListError() {\n const { meta, validationmessages } = this.props;\n const { touched, error } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldEditableList.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldEditableList;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport FileInput from '../../components/FileInput';\n\nclass FieldFileInput extends Component {\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldFileInput.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldFileInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Input from '../../components/Input';\n\nclass FieldInput extends Component {\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldInput.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Multiselect from '../../components/Multiselect';\n\nclass FieldMultiselect extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getMultiselectError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldMultiselect.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldMultiselect;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Select from '../../components/Select';\n\nclass FieldSelect extends Component {\n constructor(props) {\n super(props);\n\n this.handleEvent = this.handleEvent.bind(this);\n }\n\n handleEvent(selectValue) {\n const { input } = this.props;\n const { onChange, value } = input;\n\n onChange(fromJS(selectValue !== undefined ? selectValue : value));\n }\n\n getSelectError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldSelect.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldSelect;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport SelectableList from '../../components/SelectableList';\n\nclass FieldSelectableList extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n\n input.onChange(fromJS(value));\n }\n\n render() {\n const { children, ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldSelectableList.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.node,\n ]),\n onChange: PropTypes.func,\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldSelectableList;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Toggle from '../../components/Toggle';\n\nclass FieldToggle extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n\n input.onChange(fromJS(value));\n }\n\n render() {\n const { children, ...props } = this.props;\n\n return (\n \n {children}\n \n );\n }\n}\n\nFieldToggle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.node,\n ]),\n onChange: PropTypes.func,\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldToggle;\n","import { useEffect, useRef } from 'react';\n\n/** @component */\nexport default function useInterval(callback, delay, ...args) {\n const savedCallback = useRef();\n\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n // eslint-disable-next-line consistent-return\n useEffect(() => {\n function tick() {\n savedCallback.current(...args);\n }\n if (delay !== null && delay !== undefined) {\n const id = setInterval(tick, delay);\n return () => clearInterval(id);\n }\n }, [delay]);\n}\n"],"names":["global","this","window","define","module","deps","payload","arguments","length","modules","payloads","original","apply","console","error","trace","ns","root","_require","parentId","callback","lookup","undefined","Object","prototype","toString","call","params","i","l","dep","require","push","packagedModule","normalizeModule","moduleName","indexOf","chunks","split","charAt","slice","join","previous","replace","exports","mod","id","uri","packaged","ace","defineProp","obj","name","val","defineProperty","value","enumerable","writable","configurable","String","startsWith","searchString","position","lastIndexOf","endsWith","subjectString","lastIndex","repeat","count","result","string","includes","str","assign","target","TypeError","output","index","source","keys","forEach","key","values","o","map","k","Array","find","predicate","len","thisArg","kValue","findIndex","item","fill","O","relativeStart","Math","max","min","end","relativeEnd","final","of","deepCopy","copy","isArray","last","a","stringReverse","reverse","stringRepeat","trimBeginRegexp","trimEndRegexp","stringTrimLeft","stringTrimRight","copyObject","copyArray","array","arrayToMap","arr","createMap","props","create","arrayRemove","splice","escapeRegExp","escapeHTML","getMatchOffsets","regExp","matches","offset","deferredCall","fcn","timer","deferred","timeout","cancel","setTimeout","schedule","clearTimeout","isPending","delayedCall","defaultTimeout","_self","delay","supportsLookbehind","RegExp","e","skipEmptyMatch","line","supportsUnicodeFlag","codePointAt","OS","LINUX","MAC","WINDOWS","getOS","isMac","isLinux","_navigator","navigator","os","exec","platform","toLowerCase","ua","userAgent","appName","isWin","isIE","parseFloat","match","isOldIE","isGecko","isMozilla","isOpera","opera","isWebKit","isChrome","isSafari","isEdge","isAIR","isAndroid","isChromeOS","isIOS","test","MSStream","isMobile","strictCSP","useragent","buildDom","parent","refs","txt","document","createTextNode","appendChild","els","ch","el","createElement","options","childIndex","n","className","style","cssText","setAttribute","getDocumentHead","doc","head","getElementsByTagName","documentElement","tag","createElementNS","removeChildren","element","innerHTML","textContent","ownerDocument","createFragment","createDocumentFragment","hasCssClass","addCssClass","removeCssClass","classes","toggleCssClass","add","setCssClass","node","include","hasCssString","sheets","querySelectorAll","removeElementById","getElementById","remove","cssCache","insertPendingStyles","cache","importCssString","container","getRootNode","insertBefore","firstChild","useStrictCSP","importCssStylsheet","rel","href","scrollbarWidth","inner","width","minWidth","height","display","outer","left","overflow","body","noScrollbar","offsetWidth","withScrollbar","clientWidth","removeChild","computedStyle","getComputedStyle","setStyle","styles","property","HAS_CSS_ANIMATION","HAS_CSS_TRANSFORMS","HI_DPI","devicePixelRatio","div","transform","animationName","translate","tx","ty","round","top","dom","get","url","xhr","XMLHttpRequest","open","onreadystatechange","readyState","responseText","send","loadScript","path","s","src","onload","_","isAbort","qualifyURL","inherits","ctor","superCtor","super_","constructor","mixin","implement","proto","EventEmitter","stopPropagation","propagationStopped","preventDefault","defaultPrevented","_emit","_dispatchEvent","eventName","_eventRegistry","_defaultHandlers","listeners","defaultHandler","type","_signal","once","on","newCallback","off","Promise","resolve","setDefaultHandler","handlers","_disabled_","old","disabled","removeDefaultHandler","pop","addEventListener","capturing","removeListener","removeEventListener","removeAllListeners","reportError","msg","data","Error","messages","oop","optionsProvider","setOptions","optList","setOption","getOptions","optionNames","$options","filter","hidden","getOption","opt","warn","forwardTo","handlesSet","set","message","AppConfig","$defaultOptions","defineOptions","initialValue","resetOptions","setDefaultValue","opts","setDefaultValues","optionHash","setMessages","nls","translated","isDark","cssClass","$id","lang","net","customLoader","workerPath","modePath","themePath","basePath","suffix","$moduleUrls","loadWorkerFromBlob","sharedPopups","hasOwnProperty","all","$modes","moduleUrl","component","parts","sep","base","re","setModuleUrl","subst","setLoader","cb","dynamicModules","$loading","$loaded","loadModule","onLoad","loadedModule","moduleType","load","afterLoad","loader","err","reportErrorIfPathIsNotConfigured","then","default","$require","setModuleLoader","version","config","init","scriptOptions","scriptUrl","currentScript","_currentScript","currentDocument","scripts","script","getAttribute","attributes","j","attr","m","m1","toUpperCase","Range","startRow","startColumn","endRow","endColumn","start","row","column","isEqual","range","contains","compare","compareRange","cmp","comparePoint","p","containsRange","intersects","isEnd","isStart","setStart","setEnd","inside","insideStart","insideEnd","isMultiLine","compareStart","compareEnd","compareInside","clipRows","firstRow","lastRow","fromPoints","extend","isEmpty","clone","collapseRows","toScreenRange","session","screenPosStart","documentToScreenPosition","screenPosEnd","moveBy","comparePoints","p1","p2","Keys","ret","MODIFIER_KEYS","KEY_MODS","FUNCTION_KEYS","PRINTABLE_KEYS","parseInt","enter","escape","esc","del","mods","pow","x","keyCodeToString","keyCode","keyString","fromCharCode","activeListenerOptions","pressedKeys","ts","getListenerOptions","createComment","passive","detectListenerOptionsSupport","EventListener","elem","destroy","addListener","destroyer","$toDestroy","stopEvent","getButton","ctrlKey","altKey","shiftKey","button","capture","eventHandler","releaseCaptureHandler","onMouseUp","addMouseWheelListener","deltaX","deltaY","deltaMode","DOM_DELTA_PIXEL","wheelX","wheelY","DOM_DELTA_LINE","DOM_DELTA_PAGE","addMultiMouseDownListener","elements","timeouts","callbackName","startX","startY","clicks","eventNames","onMousedown","detail","isNewClick","abs","clientX","clientY","_clicks","getModifierHash","metaKey","normalizeCommandKeys","hashId","getModifierState","altGr","location","keyLocation","timeStamp","resetPressedKeys","getModifierString","addCommandKeyListener","isOldGecko","lastKeyDownKeyCode","lastDefaultPrevented","postMessage","postMessageId","nextTick","win","messageName","listener","$idleBlocked","onIdle","handler","$idleBlockId","blockIdle","nextFrame","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","bind","$cancelT","lineMode","pasteCancelled","Date","now","event","clipboard","BROKEN_SETDATA","USE_IE_MIME_TYPE","HAS_FOCUS_ARGS","MAX_LINE_LENGTH","KEYS","MODS","valueResetRegex","TextInput","parentNode","host","text","opacity","copied","pasted","inComposition","sendingText","tempStyle","fontSize","commandMode","ignoreFocusEvents","lastValue","lastSelectionStart","lastSelectionEnd","lastRestoreEnd","rowStart","Number","MAX_SAFE_INTEGER","rowEnd","MIN_SAFE_INTEGER","numberOfExtraLines","isFocused","activeElement","setNumberOfExtraLines","number","setAriaOptions","activeDescendant","inline","removeAttribute","role","setLabel","selection","cursor","onBlur","hasFocus","onFocus","resetSelection","$focusScroll","focus","renderer","enableKeyboardAccessibility","preventScroll","isTransformed","getBoundingClientRect","ancestors","t","parentElement","nodeType","blur","curOp","commandName","command","isUserAction","docChanged","selectionChanged","onCompositionEnd","positionToSelection","getLine","newValue","selectionEnd","setSelectionRange","afterContextMenu","selectionStart","getRange","lines","prevLine","nextLine","inputHandler","setInputHandler","getInputHandler","sendText","fromInput","onPaste","extendLeft","extendRight","inserted","restoreStart","restoreEnd","endIndex","shouldReset","onTextInput","onInput","onCompositionUpdate","inputType","execCommand","handleClipboardData","forceIEMime","clipboardData","mime","setData","getData","doCopy","isCut","getCopyText","onCut","onCopy","select","onCommandKey","isAllSelected","selectAll","$readOnly","cancelComposition","useTextareaForIME","markerRange","context","compositionStartOffset","closeTimeout","syncComposition","onContextMenuClose","$isMousePressed","$keepTextAreaAtCursor","$moveTextAreaToCursor","onCompositionStart","getSelectionRange","msGetInputContext","getInputContext","getElement","setCommandMode","readOnly","setReadOnly","setCopyWithEmptySelection","onContextMenu","domEvent","moveToMouse","bringToFront","characterWidth","rect","borderTopWidth","borderLeftWidth","maxTop","bottom","clientHeight","move","textInput","scroller","typingResetTimeout","typing","detectArrowKeys","$mouseHandler","isMousePressed","modifier","up","home","option","down","right","shift","commands","findKeyCommand","addIosSelectionHandler","$setUserAgentForTests","_isMobile","_isIOS","DefaultHandlers","mouseHandler","$clickSelection","editor","onMouseDown","onDoubleClick","onTripleClick","onQuadClick","onMouseWheel","selectByLines","extendSelectionBy","selectByWords","ev","inSelection","pos","getDocumentPosition","mousedownEvent","moveToPosition","time","$focusTimeout","inMultiSelectMode","captureMouse","startSelect","setState","waitForClickSelection","screenToTextCoordinates","y","getShiftKey","selectToPosition","anchor","orientedRange","calcRangeOrientation","setSelectionAnchor","scrollCursorIntoView","unitName","cmpStart","cmpEnd","selectByLinesEnd","unsetStyle","focusWait","ax","ay","bx","by","distance","sqrt","getBracketRange","getWordRange","getLineRange","getAccelKey","$lastScroll","vx","vy","allowed","prevScroll","dt","direction","canScroll","isScrollableBy","speed","scrollBy","stop","selectEnd","selectAllEnd","selectByWordsEnd","extendStatics","__extends","d","b","setPrototypeOf","__proto__","__","__values","Symbol","iterator","next","done","CLASSNAME","Tooltip","isOpen","$element","$parentNode","$init","setText","setHtml","html","setPosition","setClassName","setTheme","theme","show","hide","getHeight","offsetHeight","getWidth","popupManager","PopupManager","popups","addPopup","popup","updatePopups","removePopup","e_1","_a","e_2","_b","sort","priority","visiblepopups","_c","_d","shouldDisplay","visiblepopups_1","visiblepopups_1_1","visiblePopup","doPopupsOverlap","e_2_1","return","e_1_1","popupA","popupB","rectA","rectB","HoverTooltip","_super","_this","lastT","idleTime","lastEvent","onMouseOut","onMouseMove","waitForHover","whiteSpace","pointerEvents","tabIndex","addToEditor","getMouseEventTarget","removeFromEditor","isOutsideOfText","$gatherData","docPos","screenPos","pixelToScreenCoordinates","clippedPos","setDataProvider","showForRange","domNode","startingEvent","$registerCloseEvents","addMarker","textToScreenCoordinates","pageX","maxHeight","labelHeight","labelWidth","spaceBelow","innerHeight","pageY","lineHeight","isAbove","innerWidth","marker","$markerSession","removeMarker","$removeCloseEvents","relatedTarget","currentTarget","classList","GutterHandler","tooltipTimeout","mouseEvent","gutter","$gutterLayer","tooltip","GutterTooltip","hideTooltip","moveTooltip","getRegion","selectTo","srcElement","$tooltipFollowsMouse","getLength","screenRow","$pos","documentToScreenRow","showTooltip","gutterRow","getGutterRow","gutterCell","$lines","querySelector","$gutter","windowWidth","windowHeight","singular","plural","warning","info","annotation","annotationsInRow","$annotations","from","fold","getFoldLine","$showFoldedAnnotations","mostSevereAnnotationInFoldType","annotationsInFold","annotationType","summaryFoldedAnnotations","concat","annotationsToSummaryString","annotationMessages","iconClassName","$useSvgGutterIcons","annotationLabels","tooltipContent","annotations","summary","annotationTypes_1","annotationTypes_1_1","label","MouseEvent","$inSelection","documentRow","selectionRange","DragdropHandler","dragImage","dragSelectionMarker","timerId","dragCursor","dragOperation","isInternal","autoScrollStartTime","cursorMovedTime","cursorPointOnCaretMoved","mouseTarget","counter","onDragInterval","prevCursor","vMovement","hMovement","moveCursorToPosition","calcDistance","layerConfig","editorRect","offsets","nearestXOffset","nearestYOffset","scrollCursor","vScroll","hScroll","autoScroll","addDragMarker","toOrientedRange","getSelectionStyle","clearSelection","$cursorLayer","setBlinking","clearInterval","setInterval","clearDragMarker","fromOrientedRange","$resetCursorStyle","onDragStart","cancelDrag","draggable","self","dataTransfer","effectAllowed","getReadOnly","setDragImage","clearData","getTextRange","onDragEnd","dropEffect","setCursorStyle","onDragEnter","canAccept","getDropEffect","onDragOver","onMouseMoveTimer","onDragLeave","onDrop","moveText","dropData","insert","types","some","copyAllowed","copyModifierState","dragWait","getDragDelay","startDrag","dragWaitEnd","dragReadyEnd","cursorStyle","onMouseDrag","state","dragDrop","$dragEnabled","eventTarget","unselectable","addTouchListeners","touchStartT","longTouchTimer","animationTimer","pressed","contextMenu","mode","animationSteps","clickCount","vX","vY","showContextMenu","handleClick","selected","hasUndo","action","getUndoManager","replaceChild","class","readText","writeText","ontouchstart","ontouchend","onclick","pagePos","leftOffset","scrollLeft","hideContextMenu","handleLongTap","selectWord","touches","h","w","touchObj","setRange","switchToSelectionMode","cursorPos","getPixelPosition","anchorPos","offsetTop","offsetLeft","weightedDistance","diff1","diff2","oldScrollTop","getScrollTop","DefaultGutterHandler","MouseHandler","focusEditor","onMouseEvent","scrollBarV","scrollBarH","Boolean","gutterEl","$dragDelay","character","mousemove","$scrollSpeed","mouseMoveHandler","which","releaseMouse","$mouseMoved","onCaptureEnd","onOperationEnd","onCaptureInterval","$onCaptureMouseMove","endOperation","startOperation","cancelContextMenu","scrollSpeed","dragDelay","dragEnabled","focusTimeout","tooltipFollowsMouse","FoldHandler","getFoldAt","removeFold","expandFold","getUseWrapMode","foldWidgets","onFoldWidgetClick","getParentFoldRangeData","firstRange","addFold","keyUtil","KeyBinding","$editor","$data","$handlers","kb","removeKeyboardHandler","$defaultHandler","addKeyboardHandler","setKeyboardHandler","handleKeyboard","attach","detach","getKeyboardHandler","getStatusText","$callKeyboardHandlers","toExecute","success","args","passEvent","dir","hiLevel","lastArabic","hasUBAT_B","hasUBAT_S","impTab_LTR","impTab_RTL","ET","BN","UnicodeTBL00","UnicodeTBL20","_invertLevel","lev","levels","_array","lo","hi","tmp","_getCharClass","chars","ix","wType","nType","cType","c","rtlCandidate","_getCharacterType","uc","charCodeAt","L","R","EN","ON_R","AN","R_H","B","RLE","DOT","doBidiReorder","textCharTypes","isRtl","logicalFromVisual","bidiLevels","charTypes","impTab","prevState","newClass","newLevel","newState","condPos","_computeLevels","hasBidiCharacters","getVisualFromLogicalIdx","logIdx","rowMap","bidiUtil","bidiRE","BidiHandler","bidiMap","currentRow","charWidths","EOL","showInvisibles","isRtlDir","$isRtl","wrapIndent","EOF","contentWidth","fontMetrics","rtlLineOffset","wrapOffset","isMoveLeftOperation","seenBidi","getValue","isBidiRow","docRow","splitIndex","updateRowLine","updateBidiMap","onChange","delta","getDocumentRow","rowCache","$screenRowCache","$getRowCacheIndex","$docRowCache","getSplitIndex","currentIndex","prevIndex","endOfLine","$useWrapMode","splits","$wrapData","indent","substring","size","isFullWidth","getScreenTabSize","$main","substr","markAsDirty","updateCharacterWidths","$characterSize","bidiCharWidth","$measureCharWidth","setShowInvisibles","setEolChar","eolChar","setContentWidth","isRtlLine","setRtlDirection","getCursorPosition","getSelectionAnchor","$bidiHandler","removeInLine","getPosLeft","col","leftBoundary","logicalIdx","getOverwrite","visualIdx","getSelections","startCol","endCol","level","selections","selColMin","selColMax","isSelected","isSelectedPrev","visIdx","offsetToCol","posX","charWidth","Selection","getDocument","lead","createAnchor","$silent","$cursorChanged","$isEmpty","$keepDesiredColumnOnChange","$desiredColumn","$anchorChanged","getCursor","getPosition","setAnchor","getAnchor","getSelectionLead","isBackwards","$setSelection","MAX_VALUE","anchorRow","anchorColumn","cursorRow","cursorColumn","wasEmpty","wasMultiselect","$moveSelection","mover","moveCursorTo","moveTo","selectUp","moveCursorUp","selectDown","moveCursorDown","selectRight","moveCursorRight","selectLeft","moveCursorLeft","selectLineStart","moveCursorLineStart","selectLineEnd","moveCursorLineEnd","selectFileEnd","moveCursorFileEnd","selectFileStart","moveCursorFileStart","selectWordRight","moveCursorWordRight","selectWordLeft","moveCursorWordLeft","selectAWord","getAWordRange","excludeLastChar","foldLine","selectLine","moveCursorBy","wouldMoveIntoSoftTab","tabSize","isTabStop","getTabSize","getNavigateWithinSoftTabs","firstColumnPosition","screenToDocumentPosition","leadingSpace","getDisplayLine","$useEmacsStyleLineStart","lineEnd","getDocumentLastRowColumnPosition","textEnd","search","moveCursorLongWordRight","rightOfCursor","nonTokenRe","tokenRe","moveCursorLongWordLeft","getFoldStringAt","leftOfCursor","$shortWordEndIndex","whitespaceRe","moveCursorShortWordRight","moveCursorShortWordLeft","$selectLongWords","rows","offsetX","lineWidgets","widget","rowsAbove","rowCount","keepDesiredColumn","moveCursorToScreen","desiredColumn","r","getRangeOfMovements","func","toJSON","rangeCount","ranges","r1","fromJSON","rangeList","toSingleRange","addRange","MAX_TOKEN_COUNT","Tokenizer","rules","states","regExps","matchMappings","ruleRegExps","matchTotal","mapping","defaultToken","flag","splitterRurles","rule","caseInsensitive","unicode","regex","adjustedregex","matchcount","token","groupCount","tokenArray","onMatch","$arrayTokens","$applyToken","digit","removeCapturingGroups","splitRegex","createSplitterRegexp","$setMaxTokenCount","tokens","stack","inChClass","lastCapture","parenOpen","parenClose","square","getLineTokens","startState","currentState","matchAttempts","skipped","consumeLineEnd","merge","unshift","TextHighlightRules","$rules","addRules","prefix","nextState","getRules","embedRules","HighlightRules","escapeRules","append","$embeds","getEmbeds","pushState","popState","normalizeRules","processState","processed","toInsert","stateName","includeName","noEscape","keywordMap","createKeywordMapper","ignoreCase","splitChar","keywords","$keywordList","list","word","getKeywords","$keywords","Behaviour","$behaviours","addBehaviours","behaviours","inherit","getBehaviours","TokenIterator","initialRow","initialColumn","$session","$row","$rowTokens","getTokens","getTokenAt","$tokenIndex","stepBackward","stepForward","getCurrentToken","getCurrentTokenRow","getCurrentTokenColumn","rowTokens","tokenIndex","getCurrentTokenPosition","getCurrentTokenRange","SAFE_INSERT_IN_TOKENS","SAFE_INSERT_BEFORE_TOKENS","contextCache","defaultQuotes","initContext","multiSelect","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","getWrapped","opening","closing","rowDiff","CstyleBehaviour","getWrapBehavioursEnabled","isSaneInsertion","braces","recordAutoInsert","recordMaybeInsert","$findOpeningBracket","isAutoInsertedClosing","popAutoInsertedClosing","isMaybeInsertedClosing","clearMaybeInsertedClosing","openBracePos","findMatchingBracket","next_indent","$getIndent","getTabString","quotes","$mode","$quotes","lineCommentStart","quote","leftChar","rightChar","rightToken","pair","stringBefore","stringAfter","wordRe","isWordBefore","isWordAfter","pairQuotesAfter","$pairQuotesAfter","charBefore","closeDocComment","$matchTokenType","iterator2","bracket","wordChars","code","Mode","$defaultBehaviour","getTokenizer","$tokenizer","$highlightRules","$highlightRuleConfig","blockComment","toggleCommentLines","ignoreBlankLines","shouldRemove","minIndent","Infinity","insertAtTabStop","regexpStart","getUseSoftTabs","uncomment","shouldInsertSpace","commentWithSpace","comment","insertInLine","testRemove","before","after","spaces","lineCommentEnd","regexpEnd","iter","fun","minEmptyLength","floor","toggleBlockComment","colDiff","initialRange","startRange","endRange","getNextLineIndent","tab","checkOutdent","input","autoOutdent","createWorker","createModeDelegates","delegations","scope","functionName","$delegator","method","language","transformAction","param","$behaviour","completionKeywords","ruleItr","aLength","$createKeywordList","getCompletions","score","meta","applyDelta","docLines","doNotValidate","Anchor","$onChange","$clipPositionToDocument","point","moveIfEqual","deltaIsInsert","deltaRowShift","deltaColShift","deltaStart","deltaEnd","$pointsInOrder","$getTransformedPoint","$insertRight","noClip","point1","point2","equalPointsInOrder","bColIsAfter","Document","textOrLines","insertMergedLines","setValue","getAllLines","getNewLineCharacter","$detectNewLine","$autoNewLine","$newLineMode","setNewLineMode","newLineMode","getNewLineMode","isNewLine","getLines","getLinesForRange","insertLines","insertFullLines","removeLines","removeFullLines","insertNewLine","$split","clonePos","$clipPosition","deleteFirstNewLine","deleteLastNewLine","deletedLines","removeNewLine","applyDeltas","deltas","revertDeltas","revertDelta","isInsert","$splitAndapplyLargeDelta","$safeApplyDelta","docLength","MAX","to","chunk","indexToPosition","newlineLength","positionToIndex","BackgroundTokenizer","tokenizer","running","currentLine","$worker","workerStart","endLine","startLine","processedLines","$tokenizeRow","fireUpdateEvent","setTokenizer","setDocument","first","scheduleStart","$updateOnChange","getState","cleanup","SearchHighlight","clazz","setRegexp","update","markerLayer","renderedMarkerRanges","MAX_RANGES","rangeToAddMarkerTo","rangeAsString","drawSingleLineMarker","UndoManager","$maxRev","$fromUndo","$undoDepth","reset","addSession","allowMerge","$lastDelta","$keepRedoStack","$redoStack","lastDeltas","undoStackLength","$undoStack","$rev","addSelection","rev","startNewGroup","markIgnored","ignore","getSelection","getRevision","getDeltas","getChangedRanges","getChangedLines","undo","dontSelect","deltaSet","swapped","swapGroups","rearrangeUndoStack","$redoStackBaseRev","undoSelectionRange","undoChanges","$syncRev","redo","diff","redoStack","deltaSets","moveDeltasByOne","rebaseRedoStack","redoSelectionRange","redoChanges","nextDelta","mark","canUndo","canRedo","bookmark","isAtBookmark","json","$prettyPrint","stringifyDelta","hasRedo","isClean","markClean","stringifyRange","swap","d1","d2","i1","i2","ds1","ds2","selectionBefore","selectionAfter","xform","c1","splitDelta","shiftPos","rowsBefore","otherLines","cloneDelta","xformed","FoldLine","foldData","folds","setFoldLine","shiftRow","sameRow","containsRow","walk","lastEnd","isNewRow","placeholder","getNextFoldTo","kind","addRemoveChars","log","foldBefore","newFoldLine","foldLineNext","idxToPosition","idx","lastFoldEndColumn","RangeList","$bias","pointIndex","excludeEdges","startIndex","addList","removed","substractPoint","containsPoint","rangeAtPoint","clipped","removeAll","lineDif","Fold","subFolds","subFold","collapseChildren","addSubFold","consumePoint","afterStart","firstConsumed","consumedFolds","restoreRange","restorePoint","Folding","side","getFoldsInRange","foldLines","$foldData","foundFolds","getFoldsInRangeList","getAllFolds","trim","lastFold","startFoldLine","getNextFoldLine","getFoldedRowCount","$addFoldLine","added","$clipRangeToDocument","startFold","endFold","removeFolds","$updateWrapData","$updateRowLengthCache","$modified","addFolds","$updating","cloneFolds","foldAll","expandFolds","unfold","expandInner","outermostFolds","isRowFolded","startFoldRow","getRowFoldEnd","getRowFoldStart","getFoldDisplayLine","textLine","lastColumn","$cloneFoldData","fd","toggleFold","tryToUnfold","bracketPos","getCommentFoldRange","depth","getFoldWidget","getFoldWidgetRange","foldToLevel","foldAllComments","$foldStyles","$foldStyle","setFoldStyle","$foldMode","$setFolding","foldMode","$updateFoldWidgets","$tokenizerUpdateFoldWidgets","updateFoldWidgets","tokenizerUpdateFoldWidgets","ignoreCurrent","fw","children","siblings","$toggleFoldWidget","toggleFoldWidget","toggleParent","BracketMatch","chr","charBeforeCursor","$findClosingBracket","getMatchingBracketRanges","bracketsRegExp","$brackets","typeRe","openBracket","valueIndex","closingBracket","valueLength","getMatchingTags","$findTagName","$findClosingTag","$findOpeningTag","found","backward","prevToken","currentTag","openTagStart","openTagName","foundOpenTagEnd","openTagEnd","closeTagStart","closeTagName","closeTagEnd","openTag","closeTag","stepCount","tmpToken","TextMode","EditSession","$breakpoints","$decorations","$frontMarkers","$backMarkers","$markerId","$undoSelect","$uid","bgTokenizer","onChangeFold","setMode","destroyed","resetCaches","$resetRowCache","cacheArray","low","mid","$rowLengthCache","removedFolds","$updateInternalDataOnChange","$undoManager","mergeUndoDeltas","$informUndoManager","setUndoManager","JSON","parse","undoManager","history","editSession","setAnnotations","setBreakpoints","breakpoints","setScrollLeft","setScrollTop","scrollTop","$scrollLeft","$scrollTop","$syncInformUndoManager","markUndoGroup","$defaultUndoManager","setUseSoftTabs","$useSoftTabs","$indentWithTabs","setTabSize","$tabSize","setNavigateWithinSoftTabs","navigateWithinSoftTabs","$navigateWithinSoftTabs","setOverwrite","overwrite","$overwrite","toggleOverwrite","addGutterDecoration","removeGutterDecoration","getBreakpoints","clearBreakpoints","setBreakpoint","clearBreakpoint","inFront","addDynamicMarker","markerId","getMarkers","highlight","$searchHighlight","highlightLines","getAnnotations","clearAnnotations","inToken","wordRange","setUseWorker","useWorker","getUseWorker","$useWorker","onReloadTokenizer","$onChangeMode","$modeId","$isPlaceholder","oldMode","$stopWorker","$startWorker","attachToSession","wrapMethod","$wrapMethod","foldingRules","terminate","getMode","isNaN","getScrollLeft","getScreenWidth","$computeWidth","getLineWidgetMaxWidth","screenWidth","lineWidgetsWidth","lineWidgetWidth","force","$wrapLimit","longestScreenLine","foldIndex","foldStart","$getStringScreenWidth","$getUndoSelection","setUndoSelect","enable","isUndo","fromRange","toPosition","toRange","collDiff","oldStart","newStart","indentRows","indentString","outdentRows","rowRange","deleteRange","$moveLines","$clipRowToDocument","moveLinesUp","moveLinesDown","duplicateLines","$clipColumnToRow","setUseWrapMode","useWrapMode","setWrapLimitRange","$wrapLimitRange","adjustWrapLimit","desiredLimit","$printMargin","limits","wrapLimit","$constrainWrapLimit","getWrapLimit","setWrapLimit","limit","getWrapLimitRange","foldLineBefore","wrapData","walkTokens","$getDisplayTokens","PLACEHOLDER_START","PLACEHOLDER_BODY","$computeWrapSplits","displayLength","lastSplit","lastDocSplit","isCode","$wrapAsCode","indentedSoftWrap","$indentedSoftWrap","maxIndent","addSplit","indentation","SPACE","TAB","TAB_SPACE","getWrapIndent","minSplit","PUNCTUATION","CHAR_EXT","CHAR","maxScreenColumn","screenColumn","getRowLength","getRowLineCount","getRowWrapIndent","getScreenLastRowColumn","documentToScreenColumn","getDocumentLastRowColumn","docColumn","getRowSplitData","screenToDocumentRow","screenToDocumentColumn","rowLength","doCache","maxRow","foldStartRow","wrapRow","screenRowOffset","getScreenLength","screenRows","$getWidgetScreenLength","$setFontMetrics","fm","$enableVarChar","getCharacterWidth","wrap","$wrap","firstLineNumber","useSoftTabs","foldStyle","Search","$matchIterator","sr","sc","er","ec","skipCurrent","findAll","needle","$assembleRegExp","$isMultiLine","prevRange","replacement","preserveCase","$disableFakeMultiline","caseSensitive","$supportsUnicodeFlag","wholeWord","wordBoundary","firstChar","needleArray","lastChar","addWordBoundary","$assembleMultilineRegExp","backwards","forEachInLine","MultiHashHandler","$singleCommand","commandKeyBinding","addCommands","addCommand","removeCommand","bindKey","_buildKeyHash","keepCommand","ckb","keyId","cmdGroup","keyPart","chain","binding","parseKeys","_addCommandToBinding","removeCommands","bindKeys","keyList","$keyChain","isDefault","HashHandler","CommandManager","byName","$checkCommandState","isAvailable","returnValue","toggleRecording","$inReplay","recording","macro","$addCommandToMacro","oldMacro","replay","trimMacro","mac","description","showSettingsMenu","showErrorMarker","scrollIntoView","centerSelection","gotoLine","prompt","$type","multiSelectAction","getAllRanges","findNext","findPrevious","aceCommandGroup","navigateFileStart","navigateUp","times","navigateFileEnd","navigateDown","navigateWordLeft","navigateLineStart","navigateLeft","navigateWordRight","navigateLineEnd","navigateRight","selectPageDown","scrollPageDown","gotoPageDown","selectPageUp","scrollPageUp","gotoPageUp","jumpToMatching","$copyWithEmptySelection","$handlePaste","duplicateSelection","sortLines","modifyNumber","copyLinesUp","copyLinesDown","removeToLineStart","removeToLineEnd","removeWordLeft","removeWordRight","blockOutdent","blockIndent","splitLine","transposeLetters","transposeSelections","autoIndent","openLink","firstLineEndCol","selectedCount","insertLine","curLine","newRanges","exitMultiSelectMode","LineWidgets","widgetManager","updateOnChange","renderWidgets","measureWidgets","_changedWidgets","$onChangeEditor","updateOnFold","_inDocument","removeLineWidget","$updateRows","noWidgets","$oldWidget","$registerLineWidget","addLineWidget","zIndex","coverGutter","pixelHeight","$fold","onWidgetChanged","w1","getWidgetsAtRow","updateFull","changedWidgets","fixedWidth","ceil","coverLine","gutterWidth","fullWidth","padding","scrollBar","GutterKeyboardHandler","gutterLayer","activeRowIndex","activeLane","annotationTooltip","$onGutterKeyDown","$blurGutter","isRowVisible","scrollToLine","$rowToRowIndex","$cursorCell","nearestFoldIndex","$findNearestFoldWidget","nearestAnnotationIndex","$findNearestAnnotation","$focusAnnotation","$focusFoldWidget","$handleGutterKeyboardInteraction","GutterKeyboardEvent","lane","$switchLane","$rowIndexToRow","rowFoldingWidget","$blurFoldWidget","cells","childNodes","$moveFoldWidgetDown","$moveAnnotationDown","$moveFoldWidgetUp","$moveAnnotationUp","$blurAnnotation","$isFoldWidgetVisible","isRowFullyVisible","isIconVisible","$getFoldWidget","$isAnnotationVisible","$getAnnotation","foldWidget","keyboardFocusClassName","desinationLane","annotationIndex","foldWidgetIndex","cell","gutterKeyboardHandler","getKey","getRow","isInAnnotationLane","isInFoldLane","defaultCommands","Editor","getContainerElement","getTextAreaContainer","textarea","keyBinding","$search","$historyTracker","$initOperationListeners","_$emitInputEvent","setSession","$opResetTimer","$lastSel","commandEvent","prevOp","previousCommand","scrollSelectionIntoView","animateScrolling","sel","$mergeUndoDeltas","prev","mergeableCommands","$mergeableCommands","shouldMerge","mergeNextCommand","sequenceStartTime","keyboardHandler","$keybindingId","oldSession","$onDocumentChange","$onTokenizerUpdate","$onChangeTabSize","$onChangeWrapLimit","$onChangeWrapMode","$onChangeFold","$onChangeFrontMarker","$onChangeBackMarker","$onChangeBreakpoint","$onChangeAnnotation","$onCursorChange","$onScrollTopChange","$onScrollLeftChange","$onSelectionChange","onDocumentChange","onChangeMode","onTokenizerUpdate","onChangeTabSize","onChangeWrapLimit","onChangeWrapMode","onChangeFrontMarker","onChangeBackMarker","onChangeBreakpoint","onChangeAnnotation","onCursorChange","onScrollTopChange","onScrollLeftChange","onSelectionChange","oldEditor","getSession","resize","onResize","getTheme","getFontSize","setFontSize","$highlightBrackets","$highlightPending","$bracketHighlight","markerIds","$getDirectionForHighlight","tagNamesRanges","getMatching","markerType","getHighlightIndentGuides","$textLayer","$highlightIndentGuide","$isFocused","showCursor","visualizeFocus","hideCursor","visualizeBlur","$cursorChange","updateCursor","$updateHighlightActiveLine","updateLines","scrollToY","scrollToX","$highlightActiveLine","$selectionStyle","$selectionColorConflict","$maxLines","$minLines","$highlightLineMarker","$selectionMarker","$highlightSelectedWord","$getSelectionHighLightRegexp","wordWithBoundary","updateFrontMarkers","updateBackMarkers","updateBreakpoints","updateText","getSelectedText","nl","copyLine","inVirtualSelectionMode","isFullLine","getBehavioursEnabled","lineState","shouldOutdent","$enableAutoIndent","lineIndent","selectedRange","currIndent","prevLineState","composition","applyComposition","forEachSelection","setScrollSpeed","getScrollSpeed","setDragDelay","setSelectionStyle","setHighlightActiveLine","shouldHighlight","getHighlightActiveLine","setHighlightGutterLine","getHighlightGutterLine","setHighlightSelectedWord","getHighlightSelectedWord","setAnimatedScroll","shouldAnimate","getAnimatedScroll","getShowInvisibles","setDisplayIndentGuides","getDisplayIndentGuides","setHighlightIndentGuides","setShowPrintMargin","showPrintMargin","getShowPrintMargin","setPrintMarginColumn","getPrintMarginColumn","setBehavioursEnabled","enabled","setWrapBehavioursEnabled","setShowFoldWidgets","getShowFoldWidgets","setFadeFoldWidgets","fade","getFadeFoldWidgets","new_range","setGhostText","removeGhostText","originalRange","$getSelectedRows","getNumberAt","_numberRx","amount","charRange","isFinite","nr","fp","decimals","nnr","toFixed","replaceRange","toggleWord","currWordStart","wordParts","curLength","itLength","that","reg","wordPairs","$toggleWordPairs","negate","firstCondition","res","findLinkAt","columnPosition","previousPosition","currentPosition","wordParts_1","wordParts_1_1","endPoint","moved","totalDiff","rangeIndex","subRows","compositionState","showComposition","setCompositionText","hideComposition","getFirstVisibleRow","getLastVisibleRow","getFirstFullyVisibleRow","getLastFullyVisibleRow","$getVisibleRowCount","getScrollBottomRow","getScrollTopRow","$moveByPage","scrollToRow","center","animate","alignCursor","getCursorPositionScreen","expand","tokenCount","matchType","bracketType","brackets","tagsRanges","lineNumber","navigateTo","replaced","$tryReplace","replaceAll","getLastSearchOptions","newRange","revealRange","setAutoScrollEditorIntoView","shouldScroll","$scrollAnchor","scrollAnchor","onChangeSelection","onBeforeRender","onAfterRender","searchBox","$pixelPos","$cursorStyle","cursorLayer","setSmoothBlinking","isBlinking","selectionStyle","highlightActiveLine","highlightSelectedWord","copyWithEmptySelection","behavioursEnabled","wrapBehavioursEnabled","enableAutoIndent","autoScrollEditorIntoView","showLineNumbers","setShowLineNumbers","$loop","CHANGE_GUTTER","$relativeLineNumbers","relativeNumberRenderer","relativeLineNumbers","$showLineNumbers","$updatePlaceholder","hasValue","$composition","placeholderNode","$placeholder","content","blurCommand","focusOnEnterKeyup","customScrollbar","hScrollBarAlwaysVisible","vScrollBarAlwaysVisible","highlightGutterLine","animatedScroll","printMarginColumn","printMargin","fadeFoldWidgets","showFoldWidgets","displayIndentGuides","highlightIndentGuides","showGutter","fontFamily","maxLines","minLines","scrollPastEnd","fixedWidthGutter","hasCssTransforms","maxPixelHeight","useResizeObserver","useSvgGutterIcons","showFoldedAnnotations","getText","lastLineNumber","$renderer","Lines","canvasHeight","cellCache","$offsetCoefficient","moveContainer","firstRowScreen","pageChanged","oldConfig","newConfig","computeLineTop","screenTop","screenPage","computeLineHeight","$cacheCell","fragment","insertAdjacentElement","createCell","initElement","Gutter","parentEl","$showFoldWidgets","$updateAnnotations","rowInfo","annoText","annoType","gutterOffset","oldLastRow","$updateCursorRow","onCreateCell","$renderCell","$updateGutterWidth","gutterRenderer","$firstLineNumber","lastLineText","$fixedWidth","$padding","$computePadding","$highlightGutterLine","$cursorRow","updateLineHighlight","scrollLines","$renderLines","textNode","annotationNode","annotationIconNode","decorations","rowText","foldClass","isClosedFold","foldAnnotationClass","annotationInFold","foldRange","getShowLineNumbers","paddingLeft","borderRightWidth","paddingRight","Marker","setPadding","setMarkers","markers","elt","css","$getTop","drawFullLineMarker","drawScreenLineMarker","drawTextMarker","drawMultiLineMarker","childElementCount","lastChild","stringBuilder","extraStyle","curr","lineRange","range1","drawBidiSingleLineMarker","radiusClass","extraLength","textTokens","Set","isTextToken","tokenType","has","Text","$updateEolChar","EOL_CHAR","EOL_CHAR_LF","EOL_CHAR_CRLF","margin","getLineHeight","$fontMetrics","measure","$pollSizeChanges","checkForSizeChanges","$pollSizeChangesTimer","$computeTabString","showSpaces","showTabs","showEOL","$highlightIndentGuides","tabStr","$tabStrings","span","TAB_CHAR","$indentGuideRe","spaceClass","spaceContent","SPACE_CHAR","tabClass","tabContent","lineElements","lineElementsIdx","heightChanged","lineElement","$renderLine","$renderLinesFragment","lineEl","$useLineGroups","$renderToken","valueFragment","simpleSpace","controlCharacter","cjkSpace","cjk","cloneNode","renderIndentGuide","cols","$highlightIndentGuideMarker","indentLevel","initialIndent","elementIndentLevel","currentIndent","$renderHighlightIndentGuide","$clearActiveIndentGuide","$setIndentGuideActive","$createLineElement","$renderWrappedLine","splitChars","$renderOverflowMessage","$renderSimpleLine","overflowEl","$getFoldLineTokens","lastLineEl","invisibleEl","EOF_CHAR","renderTokens","addTokens","Cursor","isVisible","blinkInterval","smoothBlinking","cursors","addCursor","$updateCursors","$updateOpacity","$startCssAnimation","animationDuration","$isAnimating","$stopCssAnimation","blinking","restartTimer","setBlinkInterval","removeCursor","intervalId","timeoutId","$isSmoothBlinking","blink","onScreen","isCursorInView","pixelPos","$selectionMarkers","cursorIndex","drawCursor","$setOverwrite","MAX_SCROLL_H","Scrollbar","classSuffix","setVisible","skipEvent","onScroll","coeff","VScrollBar","scrollHeight","$scrollbarWidth","$minWidth","setHeight","setScrollHeight","setInnerHeight","HScrollBar","setWidth","setInnerWidth","setScrollWidth","ScrollBar","ScrollBarV","ScrollBarH","VScrollWidth","HScrollHeight","eType","mousePageY","startTop","thumbTop","scrollTopFromThumbTop","thumbHeight","pageHeight","viewHeight","slideHeight","scrollWidth","mousePageX","startLeft","thumbLeft","scrollLeftFromThumbLeft","thumbWidth","pageWidth","viewWidth","slideWidth","RenderLoop","onRender","pending","changes","$recursionLimit","_flush","change","clear","CHAR_COUNT","USE_OBSERVER","ResizeObserver","FontMetrics","$setMeasureNodeStyles","$measureNode","$addObserver","isRoot","visibility","font","$measureSizes","fontWeight","boldSize","charSizes","allowBoldFonts","$observer","observe","setPolling","disconnect","$getZoom","zoom","$initTransformMeasureNodes","transformCoordinates","clientPos","elPos","solve","l1","l2","det","sub","mul","m2","ut","u","f","Decorator","canvas","pixelRatio","heightRatio","canvasWidth","minDecorationHeight","halfMinDecorationHeight","colors","dark","light","$updateDecorators","ctx","getContext","clearRect","priorities","compensateFold","compensateFoldRows","currentY","y1","y2","yCenter","fillStyle","fillRect","GutterLayer","MarkerLayer","TextLayer","CursorLayer","HScrollBarCustom","VScrollBarCustom","editorCss","VirtualRenderer","onGutterResize","$markerBack","textLayer","$markerFront","$horizScroll","$vScroll","$scrollAnimation","scrollMargin","updateCharacterSize","$size","scrollerHeight","scrollerWidth","$dirty","minHeight","v","$renderChanges","defaultView","CHANGE_FULL","$addResizeObserver","$allowBoldFonts","$updatePrintMargin","onChangeNewLineMode","$changedLines","CHANGE_LINES","CHANGE_TEXT","CHANGE_MARKER","updateFontSize","$updateSizeAsync","resizing","$updateCachedSize","$resizeTimer","$changes","$customScrollbar","$updateCustomScrollbar","$extraHeight","oldSize","CHANGE_SIZE","CHANGE_SCROLL","$showGutter","$computeLayerConfig","availableWidth","$showPrintMargin","$printMarginColumn","$animatedScroll","getShowGutter","setShowGutter","$printMarginEl","containerEl","posTop","posLeft","setScrollMargin","sm","setMargin","getHScrollBarAlwaysVisible","$hScrollBarAlwaysVisible","setHScrollBarAlwaysVisible","alwaysVisible","getVScrollBarAlwaysVisible","$vScrollBarAlwaysVisible","setVScrollBarAlwaysVisible","$updateScrollBarV","$scrollPastEnd","$updateScrollBarH","freeze","$frozen","unfreeze","CHANGE_H_SCROLL","st","$scrollDecorator","$updateLines","CHANGE_CURSOR","CHANGE_MARKER_FRONT","CHANGE_MARKER_BACK","$autosize","desiredHeight","$maxPixelHeight","$gutterWidth","hideScrollbars","longestLine","$getLongestLine","horizScroll","hScrollChanged","vScrollBefore","vScrollChanged","firstRowHeight","lineCount","charCount","$viewMargin","newLeft","newTop","topMargin","bottomMargin","$stopAnimation","currentTop","currentLeft","twoCharsWidth","alignment","$calcSteps","fromValue","toValue","x_min","STEPS","steps","initialScroll","oldSteps","$timer","endAnimation","scrollTo","canvasPos","$hasCssTransforms","$blockCursor","$useTextareaForIME","addToken","removeExtraToken","insertPosition","textLines","$ghostText","$ghostTextWidget","pixelPosition","ghostTextHeight","newToken","$themeId","$theme","setMouseCursor","attachToShadowRoot","$resizeObserver","contentRect","workerUrl","Worker","blob","Blob","blobBuilder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","getBlob","$workerBlob","blobURL","URL","webkitURL","createObjectURL","WorkerClient","worker","$createWorkerFromOldConfig","$sendDeltaQueue","changeListener","onMessage","callbackId","callbacks","onmessage","topLevelNamespaces","classname","importScripts","nameToUrl","toUrl","normalizePath","$normalizePath","tlns","deltaQueue","onerror","$doc","cmd","emit","ex","attachToDocument","q","UIWorkerClient","main","emitSync","sender","messageBuffer","workerClient","processNext","setEmitSync","Main","PlaceHolder","others","mainClass","othersClass","$onUpdate","onUpdate","$others","undoStack","$undostack","$undoStackDepth","setup","other","showOtherMarkers","othersActive","hideOtherMarkers","updateAnchors","lengthDiff","inMainRange","distanceFromStart","newPos","otherPos","updateMarkers","updateMarker","undosRequired","isSamePoint","alt","ctrl","accel","selectionMode","isMultiSelect","mouseX","mouseY","screenAnchor","screenCursor","$enableJumpToDef","$blockSelectEnabled","addSelectionMarker","oldRange","removeSelectionMarker","tmpSel","rectSel","blockSelect","newCursor","removeSelectionMarkers","rectangularRangeBlock","updateSelectionMarkers","onSelectionInterval","selectMoreLines","selectMore","joinSelections","splitIntoLines","alignCursors","multiSelectCommands","getSelectionMarkers","$blockChangeEvents","$onAddRange","$onRemoveRange","mergeOverlappingRanges","lastRange","$initRangeList","toggleBlockSelection","includeEmptyLines","xBackwards","startOffsetX","endOffsetX","docEnd","yBackwards","MultiSelect","$multiselectOnSessionChange","$onMultiSelect","$onSingleSelect","onSessionChange","$checkMultiselectChange","altCursor","altDown","addAltCursorListeners","selectionMarkerCount","markerList","$onMultiSelectExec","inVirtualMode","keepOrder","$byLines","cmdResult","anim","buf","additive","skip","screenLead","toRemove","words","stopAtFirst","sameRowRanges","maxCol","minSpace","spaceOffsets","spaceOffset","fr","lr","guessRange","$reAlignText","forceLeft","startW","textW","endW","isLeftAligned","isRightAligned","alignLeft","enableMultiselect","enableBlockSelect","FoldMode","foldingStartMarker","foldingStopMarker","indentationBlock","startLevel","openingBracketBlock","closingBracketBlock","oldWidget","gutterAnno","comparator","binarySearch","matched","findAnnotations","arrow","onmousedown","Renderer","edit","_id","env","tagName","oldNode","createEditSession","is","singletonTags","blockTags","formatOptions","lineBreaksAfterCommasInCurlyBlock","beautify","nextToken","tabString","breakBefore","spaceBefore","spaceAfter","lastDepth","lastIndent","unindent","roundDepth","curlyDepth","curRow","rowsToAdd","indentNextLine","inTag","inCSS","inBlock","parents","caseBody","trimNext","trimLine","trimCode","trimRight","trimLeft","searchboxCss","SearchBox","showReplaceForm","spellcheck","title","setEditor","searchRange","$syncOptions","$initElements","sb","replaceBox","searchOption","replaceOption","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","searchCounter","activeInput","$searchBarKb","setSearchRange","searchRangeMarker","checked","noMatch","updateCounter","MAX_COUNT","findPrev","replaceAndFindNext","active","$closeSearchBarKb","isReplace","supportType","supportFunction","supportConstant","supportConstantColor","supportConstantFonts","numRe","pseudoElements","pseudoClasses","CssHighlightRules","keywordMapper","strings","escapes","MatchingBraceOutdent","propertyMap","CssCompletions","completionsDefined","defineCompletions","inParens","getPropertyValueCompletions","getPropertyCompletions","skipSemicolon","caption","snippet","CssBehaviour","BaseFoldMode","commentRegex","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","forceMultiline","getCommentRegionBlock","getSectionRange","startIndent","subRange","CStyleFoldMode","$outdent","$completer","snippetFileId","DocCommentHighlightRules","getTagRule","getStartRule","getEndRule","GolangHighlightRules","stringEscapeRe","tokenizedLine","JsDocCommentHighlightRules","identifierRe","JavaScriptHighlightRules","escapedRe","comments","noES6","no_regex","jsx","JSX","tagRegex","jsxTag","jsxJsRule","jsxAttributes","reference","endState","results","JsonHighlightRules","JsxHighlightRules","buildinConstants","reserved","PythonHighlightRules","strPre","strRawPre","strFormatPre","strRawFormatPre","integer","intPart","pointFloat","floatNumber","stringEscape","PythonFoldMode","outdents","XmlHighlightRules","normalize","processing_instruction","doctype","int_subset","cdata","attr_reference","tag_whitespace","whitespace","attribute_value","embedTagRules","XmlBehaviour","rightSpace","tokenEndColumn","tokenRow","tokenColumn","voidElements","nextIndent","optionalEndTags","Tag","selfClosing","_getFirstTagInLine","_findEndTagInLine","getCommentFoldWidget","tags","XmlFoldMode","createRoot","hydrateRoot","hasElementType","Element","hasMap","Map","hasSet","hasArrayBuffer","ArrayBuffer","isView","equal","it","entries","flags","valueOf","$$typeof","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","amdD","getter","__esModule","definition","prop","toStringTag","nmd","paths","createContext","Icon","family","weight","rest","getCSSClasses","propTypes","isRequired","ItemTrigger","collapsed","toggleChange","useContext","iconType","trigger","onClick","AccordionItem","collapsedProp","ref","setCollapsed","useState","useMemo","expandToContent","contextValue","Provider","defaultProps","forwardRef","AccordionItemHeader","usearrowastrigger","getSize","componentSize","setComponentSize","current","handleResize","useCallback","useLayoutEffect","resizeObserver","savedHandler","useRef","useEffect","eventListener","Collapsible","contentContainer","collapseWrapper","refContainerSize","contentContainerStyle","setContentContainerStyle","onWindowResize","CSSTransition","onEnter","onExit","in","classNames","AccordionItemContent","Accordion","Item","Header","Content","Button","customButton","iconFamily","iconPosition","iconOnly","noStyle","getCssClasses","cssClasses","sizeClass","disabledClass","displayClass","themeClass","iconOnlyClass","noStyleClass","getButtonIcon","buttonType","cloneElement","getButtonType","ButtonGroup","CardHeader","CardBody","align","CardFooter","CardTitle","CardTitleGroup","CardSubTitle","CardSummary","CardTitleIcon","Card","Body","Footer","Title","TitleGroup","SubTitle","Summary","wait","immediate","callNow","Loader","withbackground","Message","onClose","noMargin","Chart","areaStyleColors","dataLoaded","hasData","series","zoomStart","zoomEnd","seriesConfig","noDataComponent","noDataComponentProp","zoomColors","tykChartInstance","setTykChartInstance","chartWrapperRef","lineBarChart","defaultOpts","fromJS","color","toolbox","orient","itemSize","showTitle","feature","dataZoom","dataBackground","lineStyle","areaStyle","handleStyle","textStyle","borderColor","fillerColor","legend","axisPointer","grid","containLabel","xAxis","boundaryGap","axisLine","axisTick","yAxis","axisLabel","animationEasing","seriesDefault","LinearGradient","smooth","symbolSize","pieChart","formatter","radius","avoidLabelOverlap","animationType","labelLine","normal","length2","geoChart","dispose","eventCallBack","debouncedMethod","debounce","getZr","prevInstance","prevOption","prevType","prevSeries","equals","selectedType","selectedOptions","selectedSeries","finalOpts","mergeDeep","toJS","entry","seriesData","buildChartOptions","dispatchAction","dataZoomSelectActive","seriesIndex","dataIndex","prevZoomStart","prevZoomEnd","startValue","endValue","chartHasData","getStyle","memo","savedCallback","ToastMessage","handleClose","itemIndex","ToastContainer","notify","updateNotifications","msgID","random","prevMessages","onMessageClosed","newMessages","fn","createNotification","render","bindNotify","danger","CopyToClipboard","txtRef","createRef","onKeyUp","ModalFooter","ModalBody","Modal","disableCloseCommands","opened","showBackdrop","restProps","modalClasses","backdropClasses","themeIcon","onKeyDown","Confirm","confirmBtnText","cancelBtnText","setOpen","setCallback","cancelCallback","setCancelCallback","callbackFunc","cancelCallbackFunc","beforeCallback","FixedWrapper","showShadow","fixedWrapperRef","attachShadow","scrollY","debouncedAttachShadow","InfiniteScroller","hasMore","initialLoad","loadMore","pageNumber","refChild","showLoader","setShowLoader","containerRef","refChildSize","shouldLoad","loadMoreData","prevPageNumber","scrollHandler","prevRefChildSize","PropTypes","oneOfType","arrayOf","bool","instanceOf","FloatingContainer","forceDisplay","displayAxis","preferredPosition","infiniteScrollerConfig","localRef","floatingContainerRef","contentWrapperRef","viewportOffset","schedulePositionUpdate","topSpace","bottomSpace","leftSpace","hasTopSpace","hasBottomSpace","hasLeftSpace","hasRightSpace","positionedVerticallyFitsInViewport","positionedHorizontallyFitsInViewport","getDisplayForVertical","getDisplayForHorizontal","getDisplayWhereItFits","determineDisplay","targetPosition","vpLeft","vpTop","leftPos","auto","matchElement","matchStart","matchEnd","topPos","maxWidth","getStylesForTop","getStylesForBottom","getStylesForLeft","getStylesForRight","adjustPosition","createPortal","InfoNote","ListItem","List","labelwidth","flexBasis","styleCopy","structuredClone","getListStyle","NavBar","pre","subtitle","withTabs","subtitleContent","NavigationItem","Navigation","PortalContext","PanelBody","noPadding","Consumer","portalContext","collapsable","PanelFooter","PanelHeader","Component","HeaderTag","onToggle","collapsibleIconPosition","Panel","onToggleCollapse","collapsedState","setCollapsedState","handleToggle","panelTheme","collapsbleIconPosition","toggleCollapse","Pill","RevealPanelService","setRefs","wrapper","panel","unbindEvents","bindEvents","ensureRefs","mouseDown","initialRect","initialEvent","isPrimaryMouseButtonDown","newY","finalHeight","notifyListeners","buttons","heightVal","reason","isHidden","deinit","RevealPanelHeaderLeft","RevealPanelHeaderRight","mergeClasses","RevealPanel","onHeightChange","parentSelector","contentStyle","contentClassName","gutterClassName","wrapperClassName","panelRef","gutterRef","wrapperRef","panelService","useImperativeHandle","headerLeft","headerRight","contents","child","TempRevealPanel","HeaderLeft","HeaderRight","TabsContext","TabContent","addTab","hideTab","updateTab","showTab","selectedPath","tabData","tabsId","tabExists","rendered","hideTabContent","tabs","tempTabData","prevTabData","shouldRender","TabContext","Tab","tabsContext","tabContext","setPath","tempPath","Tabs","onTabChange","setTabs","setSelectedPath","setRendered","initialPath","setInitialPath","setCurrentSelectedPath","tempRendered","collapsible","prevTabs","tempTabs","tabsState","tempTabsState","toggleTab","getTabCssClass","tabId","genTabs","currentTabs","updateTabsList","icon","closable","isOpened","additionalClickParents","isActive","setIsActive","tooltipRef","activeEvents","onMouseEnter","onMouseLeave","handleDocumentClick","TextEllipsis","Pagination","totalNrOfPages","selectedPage","setSelectedPage","pagesArray","nrOfPages","pagesArr","currentNr","pageNr","at","getPagesArr","goToPage","tableContext","HeaderCell","sortable","sortOrder","setSortOrder","sendMessage","allRowsSelected","columns","selectable","generateSelectable","allowSelectAll","isCheckbox","Checkbox","displayError","displayNote","note","Cell","styling","events","Row","SelectableCheckbox","Table","noDataMessage","loading","infiniteScrolling","onChangeMsg","setOnChangeMsg","itemsListRef","sortRows","order","selectAllRows","selectRow","setPagination","pagination","api","getTable","every","totalPages","num","nrItemsOnPage","perPage","Column","cSize","cOffset","nogutters","DropdownContext","DropdownItem","customdropdownitem","eventKey","dropdownItemCLick","dropdownContext","itemProps","onSelectItem","selectedItem","showCheckmark","Dropdown","isElemInRightView","dropdownWidth","isElemInBottomView","dropdownHeight","elHeight","super","dropdownRef","dropdownListRef","dropdownButtonRef","toggleDropdown","handleClickOutside","componentDidMount","getStyles","componentDidUpdate","prevProps","closeDropdown","componentWillUnmount","itemId","closeOnSelect","onSelect","selectedItemProps","dropdownEl","offsetPosition","customTop","customLeft","getWrapperCssClasses","btnGroup","btnGroupSize","btnTheme","hasCustomContent","listclassnames","getBtnTitle","btnTitle","stopButtonTextChange","appendTo","btnClassName","btnSize","customBtnTitle","showDropdownIcon","showTriggerButton","DropdownWrapperTag","DropdownTrigger","splitTrigger","toggle","onTriggerClick","DropdownListWrapper","dropdownValue","Dropdown2","setSelectedValueAsTitle","setIsOpen","handleOutsideClick","triggerElement","CodeEditor","disableValidation","finalSetOptions","getCodeEditorError","getLabelStyles","getNonLabelWidth","handleOnChange","handleOnBlur","htmlFor","editorProps","$blockScrolling","editorInstance","getStateSelectedValues","multiple","Combobox","closeList","openList","filterByName","itemValue","inputValue","stateSelectedValues","searchText","comboboxRef","valuesListRef","inputRef","textRef","focusInput","handleItemsNavigation","handleComboboxDropdownClick","handleListItemClick","handlePillRemoveClick","manageSelectedTags","setInputWidth","unBindEvents","getDerivedStateFromProps","nextProps","stringify","filteredValues","filterValues","cursorNext","previousState","methodName","tempState","removeSelectedValue","allowCustomValues","getSearchText","getSelectedIndex","getListItemCssClasses","getComboboxListCssClass","themes","iTheme","getInputError","elWidth","getComboboxDisplayData","reduce","prevValue","tempValue","selectedIndex","selectedValues","isInInitialValues","addSelectedValue","manageSelectedValues","tempSelectedValues","tempStateSelectedValues","ok","searchItem","renderInput","visbility","renderDropdown","autoFocus","CustomListComponent","Value","tagSeparators","addTagOnBlur","renderValue","valueOverflow","dummyElementRef","setInputValue","inputWidth","entryFieldOnChange","dummy","triggerAction","textValue","isPlaceholder","renderCustomValue","entryFieldOnKeyDown","listRef","searchValue","activeItem","renderListItem","showSearch","block","isNoneSelected","renderSelectAllOption","Combobox2","propValue","propValues","maxProp","matchItemFn","renderList","renderListProp","onBeforeChange","floatingContainerConfig","expandMode","displayDropdownTrigger","required","validateOnChange","rootRef","comboboxControlRef","getValueFromProp","setValues","normalizeValue","setSearchValue","setActiveItem","setIsOpened","valuesExpanded","setValuesExpanded","localValidationError","setLocalValidationError","getThemeClasses","getFilteredValues","openDropdown","updateSearchValue","newSearchValue","fv","isValidValue","newValues","localError","updateValue","addTag","listValueIndex","lv","finalValue","selectValue","valIndex","with","selectAllValues","moveUpActiveItem","visibleItems","activeIndex","moveDownActiveItem","executeTriggerAction","onTagMessage","removeTag","renderIcon","sv","nv","vals","valuesElement","updateScroll","mobserver","MutationObserver","robserver","childList","subtree","currentValuesClasses","onClickCapture","existingVal","DatePicker","onOpen","pickerInstance","setPickerInstance","dateRef","hasValueChanged","prevDate","currentDate","getTime","diffDates","date","onDateChange","dateValue","instance","defaultDate","setDate","openCalendar","inputStyle","addonStyle","getInputField","dateFormat","_typeof","requiredArgs","isDate","toDate","argument","argStr","NaN","toInteger","dirtyNumber","startOfUTCISOWeek","dirtyDate","day","getUTCDay","setUTCDate","getUTCDate","setUTCHours","getUTCISOWeekYear","year","getUTCFullYear","fourthOfJanuaryOfNextYear","setUTCFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","defaultOptions","getDefaultOptions","startOfUTCWeek","_ref","_ref2","_ref3","_options$weekStartsOn","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","weekStartsOn","locale","RangeError","getUTCWeekYear","_options$firstWeekCon","firstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","addLeadingZeros","targetLength","sign","signedYear","month","getUTCMonth","getUTCHours","getUTCMinutes","getUTCSeconds","numberOfDigits","milliseconds","getUTCMilliseconds","G","localize","era","ordinalNumber","unit","lightFormatters","Y","signedWeekYear","weekYear","Q","quarter","M","week","firstWeek","startOfUTCWeekYear","getUTCWeek","I","isoWeek","fourthOfJanuary","startOfUTCISOWeekYear","getUTCISOWeek","D","dayOfYear","timestamp","setUTCMonth","difference","getUTCDayOfYear","E","dayOfWeek","localDayOfWeek","isoDayOfWeek","dayPeriodEnumValue","dayPeriod","hours","H","K","S","X","_localize","timezoneOffset","_originalDate","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","z","originalDate","T","dirtyDelimiter","absOffset","minutes","delimiter","dateLongFormatter","pattern","formatLong","timeLongFormatter","longFormatters","P","dateTimeFormat","matchResult","datePattern","timePattern","dateTime","protectedDayOfYearTokens","protectedWeekYearTokens","throwProtectedError","format","formatDistanceLocale","lessThanXSeconds","one","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","defaultWidth","formats","full","long","medium","short","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchedString","parsePatterns","defaultParseWidth","object","findKey","valueCallback","formatDistance","tokenValue","addSuffix","comparison","formatRelative","_date","_baseDate","_options","rem100","narrow","abbreviated","wide","am","pm","midnight","noon","morning","afternoon","evening","night","parsePattern","parseResult","any","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","_ref4","_options$locale2","_options$locale2$opti","_ref5","_ref6","_ref7","_options$locale3","_options$locale3$opti","_defaultOptions$local3","_defaultOptions$local4","formatStr","defaultLocale","isValid","utcDate","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","getTimezoneOffsetInMilliseconds","dirtyAmount","addMilliseconds","subMilliseconds","formatterOptions","firstCharacter","longFormatter","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","isProtectedDayOfYearToken","EditableListForm","getMainFormValue","components","mainFormValue","submitButtonRef","submitForm","errors","mainError","addValueOnFieldChange","getMainFormButtonWidth","createRefs","propsComponents","stateComponents","validateValue","getFormCssClasses","noLabels","getButtonClassName","buttonStyle","displayType","getComponentsError","errorPersist","validatorsNames","validate","validatorName","validator","validationmessages","hasMainFormErrors","resetForm","showMainError","onSubmit","validationmessage","buttonName","ComponentName","EditableList","getItemListValue","getListItemCssClass","buttonWidth","handleFormSubmit","dropdownListItemRef","addValues","triggerOnChange","handleItemUpdate","editMode","handleChildrenOnChange","getListItemsCssClass","getFormInputKey","getListItemText","itemData","separator","setItemEditMode","closeListItems","isInList","removeListItem","removedItem","valueArr","tempItemValue","nextValue","genListItem","clonedComponents","genList","appendToElement","formButtonTitle","formButtonStyle","addButtonName","onAddRow","ListHeader","fields","field","FieldsList","onDelete","rowIndex","tempField","EditableList2","hideOnEmpty","internalErrors","setInternalErrors","updateRowValue","fieldIndex","componentValue","tempValueArr","tempErrors","tempFieldError","Components","internalError","setInternalError","onFieldChange","errorMsg","deleteRow","rowValues","colValue","flat","hasErrors","FileInput","accept","fileInputRef","files","Input","getAddon","initValue","stateValue","isfield","inputgroupaddonleft","inputgroupaddonright","getInputGroupAddon","getInputComponent","autoComplete","Input2","getInputElement","MultiselectItem","itemType","isInSearchValue","fieldsToSearchOn","onAddRemove","itemDisplayTemplate","maxSelections","nrSelectedItems","onGetItemDetails","details","detailsDisplayTemplate","getItemContent","getItemLoader","MultiselectPanel","inputPlaceholder","noItemsMessage","items","onCustomSearch","customSearch","panelType","serverLoad","itemsPageNumber","itemsNrPages","loadMoreItems","searchOnChange","itemChanged","cloneItems","clonedItem","renderListItems","diffObjects","Multiselect","entityNamePlural","getItemDetails","setOpened","prevOpened","itemsChange","allItems","valueClone","valueChange","providerValue","Radio","nospace","Select","setStateValue","selectedValue","getSelectError","getSelectComponent","SelectableList","checkboxalticon","itemTemplate","primaryKey","handleOnSelect","newSelectedItems","elemPosition","getListItemCssClassName","tvalue","Textarea","ToggleItem","getNotchCssClasses","itemRef","saveSelectedRef","onItemSelected","ToggleItemWrapper","Toggle","onDark","separated","selectedRef","setSelectedRef","notchRef","toggleRef","positionNotch","selectedWidth","FORM_DEBOUNCE","setConfig","getValueFromPath","acc","form","properties","DEFAULT_DEBOUNCE_TIME_MS","myValue","setMyValue","getOnChangeProps","hasIsFieldProp","executeDebounced","valueOrEvent","nodeName","onChangeProps","formError","touched","submitCount","status","componentProps","hasOwn","FieldCodeEditor","FieldCombobox","getComboboxError","FieldDropdown","FieldPagination","FieldCombobox2","FormDatePicker","getDatePickerError","FieldEditableList","getEditableListError","FieldFileInput","FieldInput","FieldMultiselect","getMultiselectError","FieldSelect","handleEvent","FieldSelectableList","FieldToggle","useInterval"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"index.js","mappings":"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G,IAAK,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,IAAK,GAAI,IAAK,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,KAAM,GAAI,EAAG,GAAI,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,KAAM,GAAI,MAAO,GAAI,KAAM,GAAI,GAAI,EAAG,IAAK,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAA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O,CAAC,eAAgB,uBAAwB,4BAChDH,MAAO,kEACR,CACCG,MAAOqyD,EACPxyD,MAAO80D,GACR,CACC30D,MAAO,uBACPH,MAAO,aACPpkB,KAAM,YACP,CACCukB,MAAO,eACPH,MAAO,KACPpkB,KAAM,SACP,CACCukB,MAAO,mBACPH,MAAO,yEACPpkB,KAAM,SACP,CACCukB,MAAO,uBACPH,MAAO,UACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,SACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,UACR,CACCG,MAAO,UACPH,MAAO,WAGf7mC,SAAU,CAAC,CACHgnC,MAAO,OACPH,MAAO,QACR,CACCG,MAAO,CACH,eAAgB,uBAAwB,uBAAwB,OAChE,mBAAoB,OACpB,eAAgB,OAAQ,uBAAwB,OAAQ,gBAE5DH,MAAO,IAAM80D,EAAe,UAAYA,EAAe,6DACvDl5E,KAAM,sBACP,CACCukB,MAAO,uBACPH,MAAO,cACR,CACCG,MAAO,mBACPH,MAAO,gwDACR,CACCG,MAAO,uBACPH,MAAO,+lBACR,CACCG,MAAO,mBACPH,MAAO,y2DACR,CACCG,MAAO,aACPH,MAAO80D,GACR,CACC90D,MAAO,GACPG,MAAO,QACPvkB,KAAM,aAGd,MAAS,CACL04E,EAAyBE,aAAa,aACtCS,EAAS,SACT,CACI90D,MAAO,gBACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,OACPH,MAAO,UACPpkB,KAAM,SACP,CACCukB,MAAO,QACPH,MAAO,GACPpkB,KAAM,aAGd,MAAS,CACL,CACIukB,MAAO,0BACPH,MAAO,6CACR,CACCG,MAAO,gBACPH,MAAO,cACPpkB,KAAM,YACP,CACCukB,MAAO,UACPH,MAAO,iDACR,CACCG,MAAO,2BACPH,MAAO,iDACR,CACCG,MAAO,8BACPH,MAAO,MACR,CACCG,MAAO,2BACPH,MAAO,QACPpkB,KAAM,yBACP,CACCukB,MAAO,QACPH,MAAO,IACPpkB,KAAM,YACP,CACC8jB,aAAc,kBAGtB,sBAAyB,CACrB,CACIS,MAAO,oCACPH,MAAO,6CACR,CACCG,MAAO,2BACPH,MAAO,IACPpkB,KAAM,SACP,CACCukB,MAAO,2BACPH,MAAO,KACR,CACCG,MAAO,QACPH,MAAO,IACPpkB,KAAM,YACP,CACC8jB,aAAc,kCAGtB,kBAAqB,CACjB,CACIS,MAAO,SACPH,MAAO,SACP11C,KAAM,CACF,CACI61C,MAAO,SACPH,MAAO,MACPpkB,KAAM,OACP,CACC/kB,QAAS,aAGlB,CACCspC,MAAO,SACPH,MAAO,SACP11C,KAAM,CACF,CACI61C,MAAO,SACPH,MAAO,MACPpkB,KAAM,OACP,CACC/kB,QAAS,cAGlB,CACCspC,MAAO,oBACPH,MAAO,+BACR,CACCG,MAAO,mBACPH,MAAO,gDACR,CACCG,MAAO,mBACPH,MAAO,gDACR,CACCG,MAAO,uBACPH,MAAO,IACPpkB,KAAM,sBACP,CACCukB,MAAO,OACPH,MAAO,QACR,CACCG,MAAO,uBACPH,MAAO,KACR,CACCG,MAAO,QACPH,MAAO,GACPpkB,KAAM,aAGd,mBAAsB,CAClBq5E,EAAS,sBACT,CACI90D,MAAO,qBACPH,MAAO80D,GACR,CACC30D,MAAO,uBACPH,MAAO,KACR,CACCG,MAAO,OACPH,MAAO,QACR,CACCG,MAAO,uBACPH,MAAO,KACR,CACCG,MAAO,QACPH,MAAO,GACPpkB,KAAM,aAGd,SAAY,CACR,CACIukB,MAAO,2BACPH,MAAOg1D,GACR,CACC70D,MAAO,SACPH,MAAO,QACP0B,gBAAgB,GACjB,CACCvB,MAAO,SACPH,MAAO,MACPpkB,KAAM,YACP,CACC8jB,aAAc,WAGtB,QAAW,CACP,CACIS,MAAO,2BACPH,MAAOg1D,GACR,CACC70D,MAAO,SACPH,MAAO,QACP0B,gBAAgB,GACjB,CACCvB,MAAO,SACPH,MAAO,MACPpkB,KAAM,YACP,CACC8jB,aAAc,YAIrB1qC,GAAYA,EAAQkgG,QACrB3sG,KAAKu5C,OAAOqzD,SAASvzD,QAAQ,CACzB5B,MAAO,OAAQM,QAAS,SAAU30C,EAAK+9B,EAAOqX,GAE1C,GADAx4C,KAAKqzB,KAAc,KAAPjwB,EAAapD,KAAK0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E,KAAM,eACP,CACCukB,MAAO,SACPH,MAAOm2D,EAAY,SACnBv6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,OACtBx6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,SACtBx6E,KAAM,aACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,OACtBx6E,KAAM,aACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,SACtBx6E,KAAM,YACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,OACzBz6E,KAAM,eACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,SACzBz6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,OACzBz6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,SACzBz6E,KAAM,aACP,CACCukB,MAAO,mBACPH,MAAO,4EACR,CACCG,MAAO,cACPH,MAAO,2EACR,CACCG,MAAO,eACPH,MAAO,eACR,CACCG,MAAO,eACPH,MAAO,eACR,CACCG,MAAO,CAAC,UAAW,OAAQ,wBAC3BH,MAAO,2DACR,CACCG,MAAO,OACPH,MAAO,QACR,CACCnpC,QAAS,cAEjB,UAAa,CAAC,CACNspC,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,SAAY,CAAC,CACLS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,SAAY,CAAC,CACLS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,QACPpkB,KAAM,YACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,QAAW,CAAC,CACJS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,QACPpkB,KAAM,WACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,aAAgB,CAAC,CACTS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,YAAe,CAAC,CACRS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,YAAe,CAAC,CACRS,MAAO,SACPH,MAAO,QACPpkB,KAAM,eACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,SACPH,MAAO,QACPpkB,KAAM,cACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,UAAa,CAAC,CACNS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,UAAa,CAAC,CACNS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,QACPpkB,KAAM,aACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,SAAY,CAAC,CACLS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,YAAe,CAAC,CACRS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO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","sources":["webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/ace.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/ext-beautify.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/ext-searchbox.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-css.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-golang.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-javascript.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-json.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-jsx.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-python.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-xml.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/theme-github.js","webpack://@tyk-technologies/tyk-ui/./node_modules/react-dom/client.js","webpack://@tyk-technologies/tyk-ui/./node_modules/react-fast-compare/index.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react-dom\"","webpack://@tyk-technologies/tyk-ui/webpack/bootstrap","webpack://@tyk-technologies/tyk-ui/webpack/runtime/amd define","webpack://@tyk-technologies/tyk-ui/webpack/runtime/compat get default export","webpack://@tyk-technologies/tyk-ui/webpack/runtime/define property getters","webpack://@tyk-technologies/tyk-ui/webpack/runtime/hasOwnProperty shorthand","webpack://@tyk-technologies/tyk-ui/webpack/runtime/make namespace object","webpack://@tyk-technologies/tyk-ui/webpack/runtime/node module decorator","webpack://@tyk-technologies/tyk-ui/webpack/runtime/publicPath","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react\"","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"prop-types\"","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Icon/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemTrigger.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItem.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemHeader.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react-transition-group\"","webpack://@tyk-technologies/tyk-ui/./src/hooks/useComponentSize/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/useEventListener/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Collapsible/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemContent.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Button/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/ButtonGroup/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardHeader.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardBody.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardFooter.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardTitle.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardTitleGroup.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardSubTitle.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardSummary.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardTitleIcon.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/index.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"echarts\"","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"immutable\"","webpack://@tyk-technologies/tyk-ui/./src/utils/debounce/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/usePrevious/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Loader/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Message/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Chart/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/useTimeout/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/js/ToastMessage.js","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/js/ToastContainer.js","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/CopyToClipboard/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/js/ModalFooter.js","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/js/ModalBody.js","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Confirm/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/FixedWrapper/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/InfiniteScroller/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/FloatingContainer/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/InfoNote/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/List/js/ListItem.js","webpack://@tyk-technologies/tyk-ui/./src/components/List/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/NavBar/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Navigation/js/NavigationItem.js","webpack://@tyk-technologies/tyk-ui/./src/components/Navigation/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/panel-context.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/js/PanelBody.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/js/PanelFooter.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/js/PanelHeader.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Pill/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/RevealPanel/js/RevealPanelService.js","webpack://@tyk-technologies/tyk-ui/./src/components/RevealPanel/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/tabs-context.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/js/TabContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/js/TabContent.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/js/Tab.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tooltip/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/TextEllipsis/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Pagination/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/tableContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/header-cell.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/header.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Checkbox/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/cell.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/row.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/body.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/index.js","webpack://@tyk-technologies/tyk-ui/./src/layout/Column/index.js","webpack://@tyk-technologies/tyk-ui/./src/layout/Row/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/dropdown-context.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/js/DropdownItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/DropdownTrigger.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/DropdownListWrapper.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/useDrodpownContext.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/DropdowItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/useDropdown.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react-ace\"","webpack://@tyk-technologies/tyk-ui/./src/form/components/CodeEditor/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/js/Value.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/js/List.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/index.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"flatpickr\"","webpack://@tyk-technologies/tyk-ui/./src/form/components/DatePicker/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/isDate/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/toDate/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/defaultOptions/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/defaultLocale/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/format/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/isValid/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/subMilliseconds/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/addMilliseconds/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList/js/EditableListForm.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/Header.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/ListHeader.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/FieldsList.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/with-validation.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/validate-values.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/FileInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Input/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Input2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/js/MultiselectContext.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/js/MultiselectItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/js/MultiselectPanel.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Radio/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Select/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/SelectableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Textarea/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/js/ToggleContext.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/js/ToggleItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/js/ToggleItemWrapper.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/index.js","webpack://@tyk-technologies/tyk-ui/./src/utils/config/config.js","webpack://@tyk-technologies/tyk-ui/./src/utils/formik/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCheckbox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCodeEditor/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCombobox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCombobox2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikDatePicker/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikEditableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikEditableList2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikFileInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikInput2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikMultiselect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikRadio/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikSelect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikSelectableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikTextarea/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikToggle/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldCodeEditor/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldCombobox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldDropdown/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldPagination/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldCombobox2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldDatePicker/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldEditableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldFileInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldMultiselect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldSelect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldSelectableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldToggle/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/useInterval/index.js"],"sourcesContent":["/* ***** BEGIN LICENSE BLOCK *****\n * Distributed under the BSD license:\n *\n * Copyright (c) 2010, Ajax.org B.V.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n * * Neither the name of Ajax.org B.V. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * ***** END LICENSE BLOCK ***** */\n\n/**\n * Define a module along with a payload\n * @param module a name for the payload\n * @param payload a function to call with (require, exports, module) params\n */\n\n(function() {\n\nvar ACE_NAMESPACE = \"ace\";\n\nvar global = (function() { return this; })();\nif (!global && typeof window != \"undefined\") global = window; // strict mode\n\n\nif (!ACE_NAMESPACE && typeof requirejs !== \"undefined\")\n return;\n\n\nvar define = function(module, deps, payload) {\n if (typeof module !== \"string\") {\n if (define.original)\n define.original.apply(this, arguments);\n else {\n console.error(\"dropping module because define wasn\\'t a string.\");\n console.trace();\n }\n return;\n }\n if (arguments.length == 2)\n payload = deps;\n if (!define.modules[module]) {\n define.payloads[module] = payload;\n define.modules[module] = null;\n }\n};\n\ndefine.modules = {};\ndefine.payloads = {};\n\n/**\n * Get at functionality define()ed using the function above\n */\nvar _require = function(parentId, module, callback) {\n if (typeof module === \"string\") {\n var payload = lookup(parentId, module);\n if (payload != undefined) {\n callback && callback();\n return payload;\n }\n } else if (Object.prototype.toString.call(module) === \"[object Array]\") {\n var params = [];\n for (var i = 0, l = module.length; i < l; ++i) {\n var dep = lookup(parentId, module[i]);\n if (dep == undefined && require.original)\n return;\n params.push(dep);\n }\n return callback && callback.apply(null, params) || true;\n }\n};\n\nvar require = function(module, callback) {\n var packagedModule = _require(\"\", module, callback);\n if (packagedModule == undefined && require.original)\n return require.original.apply(this, arguments);\n return packagedModule;\n};\n\nvar normalizeModule = function(parentId, moduleName) {\n // normalize plugin requires\n if (moduleName.indexOf(\"!\") !== -1) {\n var chunks = moduleName.split(\"!\");\n return normalizeModule(parentId, chunks[0]) + \"!\" + normalizeModule(parentId, chunks[1]);\n }\n // normalize relative requires\n if (moduleName.charAt(0) == \".\") {\n var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n moduleName = base + \"/\" + moduleName;\n\n while(moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n var previous = moduleName;\n moduleName = moduleName.replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n }\n }\n return moduleName;\n};\n\n/**\n * Internal function to lookup moduleNames and resolve them by calling the\n * definition function if needed.\n */\nvar lookup = function(parentId, moduleName) {\n moduleName = normalizeModule(parentId, moduleName);\n\n var module = define.modules[moduleName];\n if (!module) {\n module = define.payloads[moduleName];\n if (typeof module === 'function') {\n var exports = {};\n var mod = {\n id: moduleName,\n uri: '',\n exports: exports,\n packaged: true\n };\n\n var req = function(module, callback) {\n return _require(moduleName, module, callback);\n };\n\n var returnValue = module(req, exports, mod);\n exports = returnValue || mod.exports;\n define.modules[moduleName] = exports;\n delete define.payloads[moduleName];\n }\n module = define.modules[moduleName] = exports || module;\n }\n return module;\n};\n\nfunction exportAce(ns) {\n var root = global;\n if (ns) {\n if (!global[ns])\n global[ns] = {};\n root = global[ns];\n }\n\n if (!root.define || !root.define.packaged) {\n define.original = root.define;\n root.define = define;\n root.define.packaged = true;\n }\n\n if (!root.require || !root.require.packaged) {\n require.original = root.require;\n root.require = require;\n root.require.packaged = true;\n }\n}\n\nexportAce(ACE_NAMESPACE);\n\n})();\n\nace.define(\"ace/lib/es6-shim\",[\"require\",\"exports\",\"module\"], function(require, exports, module){function defineProp(obj, name, val) {\n Object.defineProperty(obj, name, {\n value: val,\n enumerable: false,\n writable: true,\n configurable: true\n });\n}\nif (!String.prototype.startsWith) {\n defineProp(String.prototype, \"startsWith\", function (searchString, position) {\n position = position || 0;\n return this.lastIndexOf(searchString, position) === position;\n });\n}\nif (!String.prototype.endsWith) {\n defineProp(String.prototype, \"endsWith\", function (searchString, position) {\n var subjectString = this;\n if (position === undefined || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n });\n}\nif (!String.prototype.repeat) {\n defineProp(String.prototype, \"repeat\", function (count) {\n var result = \"\";\n var string = this;\n while (count > 0) {\n if (count & 1)\n result += string;\n if ((count >>= 1))\n string += string;\n }\n return result;\n });\n}\nif (!String.prototype.includes) {\n defineProp(String.prototype, \"includes\", function (str, position) {\n return this.indexOf(str, position) != -1;\n });\n}\nif (!Object.assign) {\n Object.assign = function (target) {\n if (target === undefined || target === null) {\n throw new TypeError(\"Cannot convert undefined or null to object\");\n }\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n Object.keys(source).forEach(function (key) {\n output[key] = source[key];\n });\n }\n }\n return output;\n };\n}\nif (!Object.values) {\n Object.values = function (o) {\n return Object.keys(o).map(function (k) {\n return o[k];\n });\n };\n}\nif (!Array.prototype.find) {\n defineProp(Array.prototype, \"find\", function (predicate) {\n var len = this.length;\n var thisArg = arguments[1];\n for (var k = 0; k < len; k++) {\n var kValue = this[k];\n if (predicate.call(thisArg, kValue, k, this)) {\n return kValue;\n }\n }\n });\n}\nif (!Array.prototype.findIndex) {\n defineProp(Array.prototype, \"findIndex\", function (predicate) {\n var len = this.length;\n var thisArg = arguments[1];\n for (var k = 0; k < len; k++) {\n var kValue = this[k];\n if (predicate.call(thisArg, kValue, k, this)) {\n return k;\n }\n }\n });\n}\nif (!Array.prototype.includes) {\n defineProp(Array.prototype, \"includes\", function (item, position) {\n return this.indexOf(item, position) != -1;\n });\n}\nif (!Array.prototype.fill) {\n defineProp(Array.prototype, \"fill\", function (value) {\n var O = this;\n var len = O.length >>> 0;\n var start = arguments[1];\n var relativeStart = start >> 0;\n var k = relativeStart < 0\n ? Math.max(len + relativeStart, 0)\n : Math.min(relativeStart, len);\n var end = arguments[2];\n var relativeEnd = end === undefined ? len : end >> 0;\n var final = relativeEnd < 0\n ? Math.max(len + relativeEnd, 0)\n : Math.min(relativeEnd, len);\n while (k < final) {\n O[k] = value;\n k++;\n }\n return O;\n });\n}\nif (!Array.of) {\n defineProp(Array, \"of\", function () {\n return Array.prototype.slice.call(arguments);\n });\n}\n\n});\n\nace.define(\"ace/lib/fixoldbrowsers\",[\"require\",\"exports\",\"module\",\"ace/lib/es6-shim\"], function(require, exports, module){// vim:set ts=4 sts=4 sw=4 st:\n\"use strict\";\nrequire(\"./es6-shim\");\n\n});\n\nace.define(\"ace/lib/deep_copy\",[\"require\",\"exports\",\"module\"], function(require, exports, module){exports.deepCopy = function deepCopy(obj) {\n if (typeof obj !== \"object\" || !obj)\n return obj;\n var copy;\n if (Array.isArray(obj)) {\n copy = [];\n for (var key = 0; key < obj.length; key++) {\n copy[key] = deepCopy(obj[key]);\n }\n return copy;\n }\n if (Object.prototype.toString.call(obj) !== \"[object Object]\")\n return obj;\n copy = {};\n for (var key in obj)\n copy[key] = deepCopy(obj[key]);\n return copy;\n};\n\n});\n\nace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\",\"ace/lib/deep_copy\"], function(require, exports, module){\"use strict\";\nexports.last = function (a) {\n return a[a.length - 1];\n};\nexports.stringReverse = function (string) {\n return string.split(\"\").reverse().join(\"\");\n};\nexports.stringRepeat = function (string, count) {\n var result = '';\n while (count > 0) {\n if (count & 1)\n result += string;\n if (count >>= 1)\n string += string;\n }\n return result;\n};\nvar trimBeginRegexp = /^\\s\\s*/;\nvar trimEndRegexp = /\\s\\s*$/;\nexports.stringTrimLeft = function (string) {\n return string.replace(trimBeginRegexp, '');\n};\nexports.stringTrimRight = function (string) {\n return string.replace(trimEndRegexp, '');\n};\nexports.copyObject = function (obj) {\n var copy = {};\n for (var key in obj) {\n copy[key] = obj[key];\n }\n return copy;\n};\nexports.copyArray = function (array) {\n var copy = [];\n for (var i = 0, l = array.length; i < l; i++) {\n if (array[i] && typeof array[i] == \"object\")\n copy[i] = this.copyObject(array[i]);\n else\n copy[i] = array[i];\n }\n return copy;\n};\nexports.deepCopy = require(\"./deep_copy\").deepCopy;\nexports.arrayToMap = function (arr) {\n var map = {};\n for (var i = 0; i < arr.length; i++) {\n map[arr[i]] = 1;\n }\n return map;\n};\nexports.createMap = function (props) {\n var map = Object.create(null);\n for (var i in props) {\n map[i] = props[i];\n }\n return map;\n};\nexports.arrayRemove = function (array, value) {\n for (var i = 0; i <= array.length; i++) {\n if (value === array[i]) {\n array.splice(i, 1);\n }\n }\n};\nexports.escapeRegExp = function (str) {\n return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g, '\\\\$1');\n};\nexports.escapeHTML = function (str) {\n return (\"\" + str).replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(/ 0xffff ? 2 : 1;\n};\n\n});\n\nace.define(\"ace/lib/useragent\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nexports.OS = {\n LINUX: \"LINUX\",\n MAC: \"MAC\",\n WINDOWS: \"WINDOWS\"\n};\nexports.getOS = function () {\n if (exports.isMac) {\n return exports.OS.MAC;\n }\n else if (exports.isLinux) {\n return exports.OS.LINUX;\n }\n else {\n return exports.OS.WINDOWS;\n }\n};\nvar _navigator = typeof navigator == \"object\" ? navigator : {};\nvar os = (/mac|win|linux/i.exec(_navigator.platform) || [\"other\"])[0].toLowerCase();\nvar ua = _navigator.userAgent || \"\";\nvar appName = _navigator.appName || \"\";\nexports.isWin = (os == \"win\");\nexports.isMac = (os == \"mac\");\nexports.isLinux = (os == \"linux\");\nexports.isIE =\n (appName == \"Microsoft Internet Explorer\" || appName.indexOf(\"MSAppHost\") >= 0)\n ? parseFloat((ua.match(/(?:MSIE |Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/) || [])[1])\n : parseFloat((ua.match(/(?:Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/) || [])[1]); // for ie\nexports.isOldIE = exports.isIE && exports.isIE < 9;\nexports.isGecko = exports.isMozilla = ua.match(/ Gecko\\/\\d+/);\nexports.isOpera = typeof opera == \"object\" && Object.prototype.toString.call(window.opera) == \"[object Opera]\";\nexports.isWebKit = parseFloat(ua.split(\"WebKit/\")[1]) || undefined;\nexports.isChrome = parseFloat(ua.split(\" Chrome/\")[1]) || undefined;\nexports.isSafari = parseFloat(ua.split(\" Safari/\")[1]) && !exports.isChrome || undefined;\nexports.isEdge = parseFloat(ua.split(\" Edge/\")[1]) || undefined;\nexports.isAIR = ua.indexOf(\"AdobeAIR\") >= 0;\nexports.isAndroid = ua.indexOf(\"Android\") >= 0;\nexports.isChromeOS = ua.indexOf(\" CrOS \") >= 0;\nexports.isIOS = /iPad|iPhone|iPod/.test(ua) && !window.MSStream;\nif (exports.isIOS)\n exports.isMac = true;\nexports.isMobile = exports.isIOS || exports.isAndroid;\n\n});\n\nace.define(\"ace/lib/dom\",[\"require\",\"exports\",\"module\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar useragent = require(\"./useragent\");\nvar XHTML_NS = \"http://www.w3.org/1999/xhtml\";\nexports.buildDom = function buildDom(arr, parent, refs) {\n if (typeof arr == \"string\" && arr) {\n var txt = document.createTextNode(arr);\n if (parent)\n parent.appendChild(txt);\n return txt;\n }\n if (!Array.isArray(arr)) {\n if (arr && arr.appendChild && parent)\n parent.appendChild(arr);\n return arr;\n }\n if (typeof arr[0] != \"string\" || !arr[0]) {\n var els = [];\n for (var i = 0; i < arr.length; i++) {\n var ch = buildDom(arr[i], parent, refs);\n ch && els.push(ch);\n }\n return els;\n }\n var el = document.createElement(arr[0]);\n var options = arr[1];\n var childIndex = 1;\n if (options && typeof options == \"object\" && !Array.isArray(options))\n childIndex = 2;\n for (var i = childIndex; i < arr.length; i++)\n buildDom(arr[i], el, refs);\n if (childIndex == 2) {\n Object.keys(options).forEach(function (n) {\n var val = options[n];\n if (n === \"class\") {\n el.className = Array.isArray(val) ? val.join(\" \") : val;\n }\n else if (typeof val == \"function\" || n == \"value\" || n[0] == \"$\") {\n el[n] = val;\n }\n else if (n === \"ref\") {\n if (refs)\n refs[val] = el;\n }\n else if (n === \"style\") {\n if (typeof val == \"string\")\n el.style.cssText = val;\n }\n else if (val != null) {\n el.setAttribute(n, val);\n }\n });\n }\n if (parent)\n parent.appendChild(el);\n return el;\n};\nexports.getDocumentHead = function (doc) {\n if (!doc)\n doc = document;\n return doc.head || doc.getElementsByTagName(\"head\")[0] || doc.documentElement;\n};\nexports.createElement = function (tag, ns) {\n return document.createElementNS ?\n document.createElementNS(ns || XHTML_NS, tag) :\n document.createElement(tag);\n};\nexports.removeChildren = function (element) {\n element.innerHTML = \"\";\n};\nexports.createTextNode = function (textContent, element) {\n var doc = element ? element.ownerDocument : document;\n return doc.createTextNode(textContent);\n};\nexports.createFragment = function (element) {\n var doc = element ? element.ownerDocument : document;\n return doc.createDocumentFragment();\n};\nexports.hasCssClass = function (el, name) {\n var classes = (el.className + \"\").split(/\\s+/g);\n return classes.indexOf(name) !== -1;\n};\nexports.addCssClass = function (el, name) {\n if (!exports.hasCssClass(el, name)) {\n el.className += \" \" + name;\n }\n};\nexports.removeCssClass = function (el, name) {\n var classes = el.className.split(/\\s+/g);\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n classes.splice(index, 1);\n }\n el.className = classes.join(\" \");\n};\nexports.toggleCssClass = function (el, name) {\n var classes = el.className.split(/\\s+/g), add = true;\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n add = false;\n classes.splice(index, 1);\n }\n if (add)\n classes.push(name);\n el.className = classes.join(\" \");\n return add;\n};\nexports.setCssClass = function (node, className, include) {\n if (include) {\n exports.addCssClass(node, className);\n }\n else {\n exports.removeCssClass(node, className);\n }\n};\nexports.hasCssString = function (id, doc) {\n var index = 0, sheets;\n doc = doc || document;\n if ((sheets = doc.querySelectorAll(\"style\"))) {\n while (index < sheets.length) {\n if (sheets[index++].id === id) {\n return true;\n }\n }\n }\n};\nexports.removeElementById = function (id, doc) {\n doc = doc || document;\n if (doc.getElementById(id)) {\n doc.getElementById(id).remove();\n }\n};\nvar strictCSP;\nvar cssCache = [];\nexports.useStrictCSP = function (value) {\n strictCSP = value;\n if (value == false)\n insertPendingStyles();\n else if (!cssCache)\n cssCache = [];\n};\nfunction insertPendingStyles() {\n var cache = cssCache;\n cssCache = null;\n cache && cache.forEach(function (item) {\n importCssString(item[0], item[1]);\n });\n}\nfunction importCssString(cssText, id, target) {\n if (typeof document == \"undefined\")\n return;\n if (cssCache) {\n if (target) {\n insertPendingStyles();\n }\n else if (target === false) {\n return cssCache.push([cssText, id]);\n }\n }\n if (strictCSP)\n return;\n var container = target;\n if (!target || !target.getRootNode) {\n container = document;\n }\n else {\n container = target.getRootNode();\n if (!container || container == target)\n container = document;\n }\n var doc = container.ownerDocument || container;\n if (id && exports.hasCssString(id, container))\n return null;\n if (id)\n cssText += \"\\n/*# sourceURL=ace/css/\" + id + \" */\";\n var style = exports.createElement(\"style\");\n style.appendChild(doc.createTextNode(cssText));\n if (id)\n style.id = id;\n if (container == doc)\n container = exports.getDocumentHead(doc);\n container.insertBefore(style, container.firstChild);\n}\nexports.importCssString = importCssString;\nexports.importCssStylsheet = function (uri, doc) {\n exports.buildDom([\"link\", { rel: \"stylesheet\", href: uri }], exports.getDocumentHead(doc));\n};\nexports.scrollbarWidth = function (doc) {\n var inner = exports.createElement(\"ace_inner\");\n inner.style.width = \"100%\";\n inner.style.minWidth = \"0px\";\n inner.style.height = \"200px\";\n inner.style.display = \"block\";\n var outer = exports.createElement(\"ace_outer\");\n var style = outer.style;\n style.position = \"absolute\";\n style.left = \"-10000px\";\n style.overflow = \"hidden\";\n style.width = \"200px\";\n style.minWidth = \"0px\";\n style.height = \"150px\";\n style.display = \"block\";\n outer.appendChild(inner);\n var body = (doc && doc.documentElement) || (document && document.documentElement);\n if (!body)\n return 0;\n body.appendChild(outer);\n var noScrollbar = inner.offsetWidth;\n style.overflow = \"scroll\";\n var withScrollbar = inner.offsetWidth;\n if (noScrollbar === withScrollbar) {\n withScrollbar = outer.clientWidth;\n }\n body.removeChild(outer);\n return noScrollbar - withScrollbar;\n};\nexports.computedStyle = function (element, style) {\n return window.getComputedStyle(element, \"\") || {};\n};\nexports.setStyle = function (styles, property, value) {\n if (styles[property] !== value) {\n styles[property] = value;\n }\n};\nexports.HAS_CSS_ANIMATION = false;\nexports.HAS_CSS_TRANSFORMS = false;\nexports.HI_DPI = useragent.isWin\n ? typeof window !== \"undefined\" && window.devicePixelRatio >= 1.5\n : true;\nif (useragent.isChromeOS)\n exports.HI_DPI = false;\nif (typeof document !== \"undefined\") {\n var div = document.createElement(\"div\");\n if (exports.HI_DPI && div.style.transform !== undefined)\n exports.HAS_CSS_TRANSFORMS = true;\n if (!useragent.isEdge && typeof div.style.animationName !== \"undefined\")\n exports.HAS_CSS_ANIMATION = true;\n div = null;\n}\nif (exports.HAS_CSS_TRANSFORMS) {\n exports.translate = function (element, tx, ty) {\n element.style.transform = \"translate(\" + Math.round(tx) + \"px, \" + Math.round(ty) + \"px)\";\n };\n}\nelse {\n exports.translate = function (element, tx, ty) {\n element.style.top = Math.round(ty) + \"px\";\n element.style.left = Math.round(tx) + \"px\";\n };\n}\n\n});\n\nace.define(\"ace/lib/net\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){/*\n * based on code from:\n *\n * @license RequireJS text 0.25.0 Copyright (c) 2010-2011, The Dojo Foundation All Rights Reserved.\n * Available via the MIT or new BSD license.\n * see: http://github.com/jrburke/requirejs for details\n */\n\"use strict\";\nvar dom = require(\"./dom\");\nexports.get = function (url, callback) {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n callback(xhr.responseText);\n }\n };\n xhr.send(null);\n};\nexports.loadScript = function (path, callback) {\n var head = dom.getDocumentHead();\n var s = document.createElement('script');\n s.src = path;\n head.appendChild(s);\n s.onload = s.onreadystatechange = function (_, isAbort) {\n if (isAbort || !s.readyState || s.readyState == \"loaded\" || s.readyState == \"complete\") {\n s = s.onload = s.onreadystatechange = null;\n if (!isAbort)\n callback();\n }\n };\n};\nexports.qualifyURL = function (url) {\n var a = document.createElement('a');\n a.href = url;\n return a.href;\n};\n\n});\n\nace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nexports.inherits = function (ctor, superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n};\nexports.mixin = function (obj, mixin) {\n for (var key in mixin) {\n obj[key] = mixin[key];\n }\n return obj;\n};\nexports.implement = function (proto, mixin) {\n exports.mixin(proto, mixin);\n};\n\n});\n\nace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar EventEmitter = {};\nvar stopPropagation = function () { this.propagationStopped = true; };\nvar preventDefault = function () { this.defaultPrevented = true; };\nEventEmitter._emit =\n EventEmitter._dispatchEvent = function (eventName, e) {\n this._eventRegistry || (this._eventRegistry = {});\n this._defaultHandlers || (this._defaultHandlers = {});\n var listeners = this._eventRegistry[eventName] || [];\n var defaultHandler = this._defaultHandlers[eventName];\n if (!listeners.length && !defaultHandler)\n return;\n if (typeof e != \"object\" || !e)\n e = {};\n if (!e.type)\n e.type = eventName;\n if (!e.stopPropagation)\n e.stopPropagation = stopPropagation;\n if (!e.preventDefault)\n e.preventDefault = preventDefault;\n listeners = listeners.slice();\n for (var i = 0; i < listeners.length; i++) {\n listeners[i](e, this);\n if (e.propagationStopped)\n break;\n }\n if (defaultHandler && !e.defaultPrevented)\n return defaultHandler(e, this);\n };\nEventEmitter._signal = function (eventName, e) {\n var listeners = (this._eventRegistry || {})[eventName];\n if (!listeners)\n return;\n listeners = listeners.slice();\n for (var i = 0; i < listeners.length; i++)\n listeners[i](e, this);\n};\nEventEmitter.once = function (eventName, callback) {\n var _self = this;\n this.on(eventName, function newCallback() {\n _self.off(eventName, newCallback);\n callback.apply(null, arguments);\n });\n if (!callback) {\n return new Promise(function (resolve) {\n callback = resolve;\n });\n }\n};\nEventEmitter.setDefaultHandler = function (eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n handlers = this._defaultHandlers = { _disabled_: {} };\n if (handlers[eventName]) {\n var old = handlers[eventName];\n var disabled = handlers._disabled_[eventName];\n if (!disabled)\n handlers._disabled_[eventName] = disabled = [];\n disabled.push(old);\n var i = disabled.indexOf(callback);\n if (i != -1)\n disabled.splice(i, 1);\n }\n handlers[eventName] = callback;\n};\nEventEmitter.removeDefaultHandler = function (eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n return;\n var disabled = handlers._disabled_[eventName];\n if (handlers[eventName] == callback) {\n if (disabled)\n this.setDefaultHandler(eventName, disabled.pop());\n }\n else if (disabled) {\n var i = disabled.indexOf(callback);\n if (i != -1)\n disabled.splice(i, 1);\n }\n};\nEventEmitter.on =\n EventEmitter.addEventListener = function (eventName, callback, capturing) {\n this._eventRegistry = this._eventRegistry || {};\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n listeners = this._eventRegistry[eventName] = [];\n if (listeners.indexOf(callback) == -1)\n listeners[capturing ? \"unshift\" : \"push\"](callback);\n return callback;\n };\nEventEmitter.off =\n EventEmitter.removeListener =\n EventEmitter.removeEventListener = function (eventName, callback) {\n this._eventRegistry = this._eventRegistry || {};\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n return;\n var index = listeners.indexOf(callback);\n if (index !== -1)\n listeners.splice(index, 1);\n };\nEventEmitter.removeAllListeners = function (eventName) {\n if (!eventName)\n this._eventRegistry = this._defaultHandlers = undefined;\n if (this._eventRegistry)\n this._eventRegistry[eventName] = undefined;\n if (this._defaultHandlers)\n this._defaultHandlers[eventName] = undefined;\n};\nexports.EventEmitter = EventEmitter;\n\n});\n\nace.define(\"ace/lib/report_error\",[\"require\",\"exports\",\"module\"], function(require, exports, module){exports.reportError = function reportError(msg, data) {\n var e = new Error(msg);\n e.data = data;\n if (typeof console == \"object\" && console.error)\n console.error(e);\n setTimeout(function () { throw e; });\n};\n\n});\n\nace.define(\"ace/lib/app_config\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\",\"ace/lib/report_error\"], function(require, exports, module){\"no use strict\";\nvar oop = require(\"./oop\");\nvar EventEmitter = require(\"./event_emitter\").EventEmitter;\nvar reportError = require(\"./report_error\").reportError;\nvar optionsProvider = {\n setOptions: function (optList) {\n Object.keys(optList).forEach(function (key) {\n this.setOption(key, optList[key]);\n }, this);\n },\n getOptions: function (optionNames) {\n var result = {};\n if (!optionNames) {\n var options = this.$options;\n optionNames = Object.keys(options).filter(function (key) {\n return !options[key].hidden;\n });\n }\n else if (!Array.isArray(optionNames)) {\n result = optionNames;\n optionNames = Object.keys(result);\n }\n optionNames.forEach(function (key) {\n result[key] = this.getOption(key);\n }, this);\n return result;\n },\n setOption: function (name, value) {\n if (this[\"$\" + name] === value)\n return;\n var opt = this.$options[name];\n if (!opt) {\n return warn('misspelled option \"' + name + '\"');\n }\n if (opt.forwardTo)\n return this[opt.forwardTo] && this[opt.forwardTo].setOption(name, value);\n if (!opt.handlesSet)\n this[\"$\" + name] = value;\n if (opt && opt.set)\n opt.set.call(this, value);\n },\n getOption: function (name) {\n var opt = this.$options[name];\n if (!opt) {\n return warn('misspelled option \"' + name + '\"');\n }\n if (opt.forwardTo)\n return this[opt.forwardTo] && this[opt.forwardTo].getOption(name);\n return opt && opt.get ? opt.get.call(this) : this[\"$\" + name];\n }\n};\nfunction warn(message) {\n if (typeof console != \"undefined\" && console.warn)\n console.warn.apply(console, arguments);\n}\nvar messages;\nvar AppConfig = /** @class */ (function () {\n function AppConfig() {\n this.$defaultOptions = {};\n }\n AppConfig.prototype.defineOptions = function (obj, path, options) {\n if (!obj.$options)\n this.$defaultOptions[path] = obj.$options = {};\n Object.keys(options).forEach(function (key) {\n var opt = options[key];\n if (typeof opt == \"string\")\n opt = { forwardTo: opt };\n opt.name || (opt.name = key);\n obj.$options[opt.name] = opt;\n if (\"initialValue\" in opt)\n obj[\"$\" + opt.name] = opt.initialValue;\n });\n oop.implement(obj, optionsProvider);\n return this;\n };\n AppConfig.prototype.resetOptions = function (obj) {\n Object.keys(obj.$options).forEach(function (key) {\n var opt = obj.$options[key];\n if (\"value\" in opt)\n obj.setOption(key, opt.value);\n });\n };\n AppConfig.prototype.setDefaultValue = function (path, name, value) {\n if (!path) {\n for (path in this.$defaultOptions)\n if (this.$defaultOptions[path][name])\n break;\n if (!this.$defaultOptions[path][name])\n return false;\n }\n var opts = this.$defaultOptions[path] || (this.$defaultOptions[path] = {});\n if (opts[name]) {\n if (opts.forwardTo)\n this.setDefaultValue(opts.forwardTo, name, value);\n else\n opts[name].value = value;\n }\n };\n AppConfig.prototype.setDefaultValues = function (path, optionHash) {\n Object.keys(optionHash).forEach(function (key) {\n this.setDefaultValue(path, key, optionHash[key]);\n }, this);\n };\n AppConfig.prototype.setMessages = function (value) {\n messages = value;\n };\n AppConfig.prototype.nls = function (string, params) {\n if (messages && !messages[string]) {\n warn(\"No message found for '\" + string + \"' in the provided messages, falling back to default English message.\");\n }\n var translated = messages && messages[string] || string;\n if (params) {\n translated = translated.replace(/\\$(\\$|[\\d]+)/g, function (_, name) {\n if (name == \"$\")\n return \"$\";\n return params[name];\n });\n }\n return translated;\n };\n return AppConfig;\n}());\nAppConfig.prototype.warn = warn;\nAppConfig.prototype.reportError = reportError;\noop.implement(AppConfig.prototype, EventEmitter);\nexports.AppConfig = AppConfig;\n\n});\n\nace.define(\"ace/theme/textmate-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \".ace-tm .ace_gutter {\\n background: #f0f0f0;\\n color: #333;\\n}\\n\\n.ace-tm .ace_print-margin {\\n width: 1px;\\n background: #e8e8e8;\\n}\\n\\n.ace-tm .ace_fold {\\n background-color: #6B72E6;\\n}\\n\\n.ace-tm {\\n background-color: #FFFFFF;\\n color: black;\\n}\\n\\n.ace-tm .ace_cursor {\\n color: black;\\n}\\n \\n.ace-tm .ace_invisible {\\n color: rgb(191, 191, 191);\\n}\\n\\n.ace-tm .ace_storage,\\n.ace-tm .ace_keyword {\\n color: blue;\\n}\\n\\n.ace-tm .ace_constant {\\n color: rgb(197, 6, 11);\\n}\\n\\n.ace-tm .ace_constant.ace_buildin {\\n color: rgb(88, 72, 246);\\n}\\n\\n.ace-tm .ace_constant.ace_language {\\n color: rgb(88, 92, 246);\\n}\\n\\n.ace-tm .ace_constant.ace_library {\\n color: rgb(6, 150, 14);\\n}\\n\\n.ace-tm .ace_invalid {\\n background-color: rgba(255, 0, 0, 0.1);\\n color: red;\\n}\\n\\n.ace-tm .ace_support.ace_function {\\n color: rgb(60, 76, 114);\\n}\\n\\n.ace-tm .ace_support.ace_constant {\\n color: rgb(6, 150, 14);\\n}\\n\\n.ace-tm .ace_support.ace_type,\\n.ace-tm .ace_support.ace_class {\\n color: rgb(109, 121, 222);\\n}\\n\\n.ace-tm .ace_keyword.ace_operator {\\n color: rgb(104, 118, 135);\\n}\\n\\n.ace-tm .ace_string {\\n color: rgb(3, 106, 7);\\n}\\n\\n.ace-tm .ace_comment {\\n color: rgb(76, 136, 107);\\n}\\n\\n.ace-tm .ace_comment.ace_doc {\\n color: rgb(0, 102, 255);\\n}\\n\\n.ace-tm .ace_comment.ace_doc.ace_tag {\\n color: rgb(128, 159, 191);\\n}\\n\\n.ace-tm .ace_constant.ace_numeric {\\n color: rgb(0, 0, 205);\\n}\\n\\n.ace-tm .ace_variable {\\n color: rgb(49, 132, 149);\\n}\\n\\n.ace-tm .ace_xml-pe {\\n color: rgb(104, 104, 91);\\n}\\n\\n.ace-tm .ace_entity.ace_name.ace_function {\\n color: #0000A2;\\n}\\n\\n\\n.ace-tm .ace_heading {\\n color: rgb(12, 7, 255);\\n}\\n\\n.ace-tm .ace_list {\\n color:rgb(185, 6, 144);\\n}\\n\\n.ace-tm .ace_meta.ace_tag {\\n color:rgb(0, 22, 142);\\n}\\n\\n.ace-tm .ace_string.ace_regex {\\n color: rgb(255, 0, 0)\\n}\\n\\n.ace-tm .ace_marker-layer .ace_selection {\\n background: rgb(181, 213, 255);\\n}\\n.ace-tm.ace_multiselect .ace_selection.ace_start {\\n box-shadow: 0 0 3px 0px white;\\n}\\n.ace-tm .ace_marker-layer .ace_step {\\n background: rgb(252, 255, 0);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_stack {\\n background: rgb(164, 229, 101);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_bracket {\\n margin: -1px 0 0 -1px;\\n border: 1px solid rgb(192, 192, 192);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_active-line {\\n background: rgba(0, 0, 0, 0.07);\\n}\\n\\n.ace-tm .ace_gutter-active-line {\\n background-color : #dcdcdc;\\n}\\n\\n.ace-tm .ace_marker-layer .ace_selected-word {\\n background: rgb(250, 250, 255);\\n border: 1px solid rgb(200, 200, 250);\\n}\\n\\n.ace-tm .ace_indent-guide {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\n}\\n\\n.ace-tm .ace_indent-guide-active {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC\\\") right repeat-y;\\n}\\n\";\n\n});\n\nace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/theme/textmate-css\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nexports.isDark = false;\nexports.cssClass = \"ace-tm\";\nexports.cssText = require(\"./textmate-css\");\nexports.$id = \"ace/theme/textmate\";\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass, false);\n\n});\n\nace.define(\"ace/config\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/net\",\"ace/lib/dom\",\"ace/lib/app_config\",\"ace/theme/textmate\"], function(require, exports, module){\"no use strict\";\nvar lang = require(\"./lib/lang\");\nvar net = require(\"./lib/net\");\nvar dom = require(\"./lib/dom\");\nvar AppConfig = require(\"./lib/app_config\").AppConfig;\nmodule.exports = exports = new AppConfig();\nvar options = {\n packaged: false,\n workerPath: null,\n modePath: null,\n themePath: null,\n basePath: \"\",\n suffix: \".js\",\n $moduleUrls: {},\n loadWorkerFromBlob: true,\n sharedPopups: false,\n useStrictCSP: null\n};\nexports.get = function (key) {\n if (!options.hasOwnProperty(key))\n throw new Error(\"Unknown config key: \" + key);\n return options[key];\n};\nexports.set = function (key, value) {\n if (options.hasOwnProperty(key))\n options[key] = value;\n else if (this.setDefaultValue(\"\", key, value) == false)\n throw new Error(\"Unknown config key: \" + key);\n if (key == \"useStrictCSP\")\n dom.useStrictCSP(value);\n};\nexports.all = function () {\n return lang.copyObject(options);\n};\nexports.$modes = {};\nexports.moduleUrl = function (name, component) {\n if (options.$moduleUrls[name])\n return options.$moduleUrls[name];\n var parts = name.split(\"/\");\n component = component || parts[parts.length - 2] || \"\";\n var sep = component == \"snippets\" ? \"/\" : \"-\";\n var base = parts[parts.length - 1];\n if (component == \"worker\" && sep == \"-\") {\n var re = new RegExp(\"^\" + component + \"[\\\\-_]|[\\\\-_]\" + component + \"$\", \"g\");\n base = base.replace(re, \"\");\n }\n if ((!base || base == component) && parts.length > 1)\n base = parts[parts.length - 2];\n var path = options[component + \"Path\"];\n if (path == null) {\n path = options.basePath;\n }\n else if (sep == \"/\") {\n component = sep = \"\";\n }\n if (path && path.slice(-1) != \"/\")\n path += \"/\";\n return path + component + sep + base + this.get(\"suffix\");\n};\nexports.setModuleUrl = function (name, subst) {\n return options.$moduleUrls[name] = subst;\n};\nvar loader = function (moduleName, cb) {\n if (moduleName === \"ace/theme/textmate\" || moduleName === \"./theme/textmate\")\n return cb(null, require(\"./theme/textmate\"));\n if (customLoader)\n return customLoader(moduleName, cb);\n console.error(\"loader is not configured\");\n};\nvar customLoader;\nexports.setLoader = function (cb) {\n customLoader = cb;\n};\nexports.dynamicModules = Object.create(null);\nexports.$loading = {};\nexports.$loaded = {};\nexports.loadModule = function (moduleName, onLoad) {\n var loadedModule, moduleType;\n if (Array.isArray(moduleName)) {\n moduleType = moduleName[0];\n moduleName = moduleName[1];\n }\n var load = function (module) {\n if (module && !exports.$loading[moduleName])\n return onLoad && onLoad(module);\n if (!exports.$loading[moduleName])\n exports.$loading[moduleName] = [];\n exports.$loading[moduleName].push(onLoad);\n if (exports.$loading[moduleName].length > 1)\n return;\n var afterLoad = function () {\n loader(moduleName, function (err, module) {\n if (module)\n exports.$loaded[moduleName] = module;\n exports._emit(\"load.module\", { name: moduleName, module: module });\n var listeners = exports.$loading[moduleName];\n exports.$loading[moduleName] = null;\n listeners.forEach(function (onLoad) {\n onLoad && onLoad(module);\n });\n });\n };\n if (!exports.get(\"packaged\"))\n return afterLoad();\n net.loadScript(exports.moduleUrl(moduleName, moduleType), afterLoad);\n reportErrorIfPathIsNotConfigured();\n };\n if (exports.dynamicModules[moduleName]) {\n exports.dynamicModules[moduleName]().then(function (module) {\n if (module.default) {\n load(module.default);\n }\n else {\n load(module);\n }\n });\n }\n else {\n try {\n loadedModule = this.$require(moduleName);\n }\n catch (e) { }\n load(loadedModule || exports.$loaded[moduleName]);\n }\n};\nexports.$require = function (moduleName) {\n if (typeof module.require == \"function\") {\n var req = \"require\";\n return module[req](moduleName);\n }\n};\nexports.setModuleLoader = function (moduleName, onLoad) {\n exports.dynamicModules[moduleName] = onLoad;\n};\nvar reportErrorIfPathIsNotConfigured = function () {\n if (!options.basePath && !options.workerPath\n && !options.modePath && !options.themePath\n && !Object.keys(options.$moduleUrls).length) {\n console.error(\"Unable to infer path to ace from script src,\", \"use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes\", \"or with webpack use ace/webpack-resolver\");\n reportErrorIfPathIsNotConfigured = function () { };\n }\n};\nexports.version = \"1.32.0\";\n\n});\n\nace.define(\"ace/loader_build\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nrequire(\"./lib/fixoldbrowsers\");\nvar config = require(\"./config\");\nconfig.setLoader(function(moduleName, cb) {\n require([moduleName], function(module) {\n cb(null, module);\n });\n});\n\nvar global = (function() {\n return this || typeof window != \"undefined\" && window;\n})();\n\nmodule.exports = function(ace) {\n config.init = init;\n config.$require = require;\n ace.require = require;\n\n if (typeof define === \"function\")\n ace.define = define;\n};\ninit(true);function init(packaged) {\n\n if (!global || !global.document)\n return;\n \n config.set(\"packaged\", packaged || require.packaged || module.packaged || (global.define && define.packaged));\n\n var scriptOptions = {};\n var scriptUrl = \"\";\n var currentScript = (document.currentScript || document._currentScript ); // native or polyfill\n var currentDocument = currentScript && currentScript.ownerDocument || document;\n \n if (currentScript && currentScript.src) {\n scriptUrl = currentScript.src.split(/[?#]/)[0].split(\"/\").slice(0, -1).join(\"/\") || \"\";\n }\n \n var scripts = currentDocument.getElementsByTagName(\"script\");\n for (var i=0; i [\" + this.end.row + \"/\" + this.end.column + \"]\");\n };\n Range.prototype.contains = function (row, column) {\n return this.compare(row, column) == 0;\n };\n Range.prototype.compareRange = function (range) {\n var cmp, end = range.end, start = range.start;\n cmp = this.compare(end.row, end.column);\n if (cmp == 1) {\n cmp = this.compare(start.row, start.column);\n if (cmp == 1) {\n return 2;\n }\n else if (cmp == 0) {\n return 1;\n }\n else {\n return 0;\n }\n }\n else if (cmp == -1) {\n return -2;\n }\n else {\n cmp = this.compare(start.row, start.column);\n if (cmp == -1) {\n return -1;\n }\n else if (cmp == 1) {\n return 42;\n }\n else {\n return 0;\n }\n }\n };\n Range.prototype.comparePoint = function (p) {\n return this.compare(p.row, p.column);\n };\n Range.prototype.containsRange = function (range) {\n return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n };\n Range.prototype.intersects = function (range) {\n var cmp = this.compareRange(range);\n return (cmp == -1 || cmp == 0 || cmp == 1);\n };\n Range.prototype.isEnd = function (row, column) {\n return this.end.row == row && this.end.column == column;\n };\n Range.prototype.isStart = function (row, column) {\n return this.start.row == row && this.start.column == column;\n };\n Range.prototype.setStart = function (row, column) {\n if (typeof row == \"object\") {\n this.start.column = row.column;\n this.start.row = row.row;\n }\n else {\n this.start.row = row;\n this.start.column = column;\n }\n };\n Range.prototype.setEnd = function (row, column) {\n if (typeof row == \"object\") {\n this.end.column = row.column;\n this.end.row = row.row;\n }\n else {\n this.end.row = row;\n this.end.column = column;\n }\n };\n Range.prototype.inside = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column) || this.isStart(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.insideStart = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.insideEnd = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isStart(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.compare = function (row, column) {\n if (!this.isMultiLine()) {\n if (row === this.start.row) {\n return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n }\n }\n if (row < this.start.row)\n return -1;\n if (row > this.end.row)\n return 1;\n if (this.start.row === row)\n return column >= this.start.column ? 0 : -1;\n if (this.end.row === row)\n return column <= this.end.column ? 0 : 1;\n return 0;\n };\n Range.prototype.compareStart = function (row, column) {\n if (this.start.row == row && this.start.column == column) {\n return -1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.compareEnd = function (row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.compareInside = function (row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n }\n else if (this.start.row == row && this.start.column == column) {\n return -1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.clipRows = function (firstRow, lastRow) {\n if (this.end.row > lastRow)\n var end = { row: lastRow + 1, column: 0 };\n else if (this.end.row < firstRow)\n var end = { row: firstRow, column: 0 };\n if (this.start.row > lastRow)\n var start = { row: lastRow + 1, column: 0 };\n else if (this.start.row < firstRow)\n var start = { row: firstRow, column: 0 };\n return Range.fromPoints(start || this.start, end || this.end);\n };\n Range.prototype.extend = function (row, column) {\n var cmp = this.compare(row, column);\n if (cmp == 0)\n return this;\n else if (cmp == -1)\n var start = { row: row, column: column };\n else\n var end = { row: row, column: column };\n return Range.fromPoints(start || this.start, end || this.end);\n };\n Range.prototype.isEmpty = function () {\n return (this.start.row === this.end.row && this.start.column === this.end.column);\n };\n Range.prototype.isMultiLine = function () {\n return (this.start.row !== this.end.row);\n };\n Range.prototype.clone = function () {\n return Range.fromPoints(this.start, this.end);\n };\n Range.prototype.collapseRows = function () {\n if (this.end.column == 0)\n return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row - 1), 0);\n else\n return new Range(this.start.row, 0, this.end.row, 0);\n };\n Range.prototype.toScreenRange = function (session) {\n var screenPosStart = session.documentToScreenPosition(this.start);\n var screenPosEnd = session.documentToScreenPosition(this.end);\n return new Range(screenPosStart.row, screenPosStart.column, screenPosEnd.row, screenPosEnd.column);\n };\n Range.prototype.moveBy = function (row, column) {\n this.start.row += row;\n this.start.column += column;\n this.end.row += row;\n this.end.column += column;\n };\n return Range;\n}());\nRange.fromPoints = function (start, end) {\n return new Range(start.row, start.column, end.row, end.column);\n};\nRange.comparePoints = comparePoints;\nRange.comparePoints = function (p1, p2) {\n return p1.row - p2.row || p1.column - p2.column;\n};\nexports.Range = Range;\n\n});\n\nace.define(\"ace/lib/keys\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\"], function(require, exports, module){/*! @license\n==========================================================================\nSproutCore -- JavaScript Application Framework\ncopyright 2006-2009, Sprout Systems Inc., Apple Inc. and contributors.\n\nPermission is hereby granted, free of charge, to any person obtaining a\ncopy of this software and associated documentation files (the \"Software\"),\nto deal in the Software without restriction, including without limitation\nthe rights to use, copy, modify, merge, publish, distribute, sublicense,\nand/or sell copies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\nDEALINGS IN THE SOFTWARE.\n\nSproutCore and the SproutCore logo are trademarks of Sprout Systems, Inc.\n\nFor more information about SproutCore, visit http://www.sproutcore.com\n\n\n==========================================================================\n@license */\n\"use strict\";\nvar oop = require(\"./oop\");\nvar Keys = (function () {\n var ret = {\n MODIFIER_KEYS: {\n 16: 'Shift', 17: 'Ctrl', 18: 'Alt', 224: 'Meta',\n 91: 'MetaLeft', 92: 'MetaRight', 93: 'ContextMenu'\n },\n KEY_MODS: {\n \"ctrl\": 1, \"alt\": 2, \"option\": 2, \"shift\": 4,\n \"super\": 8, \"meta\": 8, \"command\": 8, \"cmd\": 8,\n \"control\": 1\n },\n FUNCTION_KEYS: {\n 8: \"Backspace\",\n 9: \"Tab\",\n 13: \"Return\",\n 19: \"Pause\",\n 27: \"Esc\",\n 32: \"Space\",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"Left\",\n 38: \"Up\",\n 39: \"Right\",\n 40: \"Down\",\n 44: \"Print\",\n 45: \"Insert\",\n 46: \"Delete\",\n 96: \"Numpad0\",\n 97: \"Numpad1\",\n 98: \"Numpad2\",\n 99: \"Numpad3\",\n 100: \"Numpad4\",\n 101: \"Numpad5\",\n 102: \"Numpad6\",\n 103: \"Numpad7\",\n 104: \"Numpad8\",\n 105: \"Numpad9\",\n '-13': \"NumpadEnter\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"Numlock\",\n 145: \"Scrolllock\"\n },\n PRINTABLE_KEYS: {\n 32: ' ', 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5',\n 54: '6', 55: '7', 56: '8', 57: '9', 59: ';', 61: '=', 65: 'a',\n 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h',\n 73: 'i', 74: 'j', 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o',\n 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't', 85: 'u', 86: 'v',\n 87: 'w', 88: 'x', 89: 'y', 90: 'z', 107: '+', 109: '-', 110: '.',\n 186: ';', 187: '=', 188: ',', 189: '-', 190: '.', 191: '/', 192: '`',\n 219: '[', 220: '\\\\', 221: ']', 222: \"'\", 111: '/', 106: '*'\n }\n };\n ret.PRINTABLE_KEYS[173] = '-';\n var name, i;\n for (i in ret.FUNCTION_KEYS) {\n name = ret.FUNCTION_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n for (i in ret.PRINTABLE_KEYS) {\n name = ret.PRINTABLE_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n oop.mixin(ret, ret.MODIFIER_KEYS);\n oop.mixin(ret, ret.PRINTABLE_KEYS);\n oop.mixin(ret, ret.FUNCTION_KEYS);\n ret.enter = ret[\"return\"];\n ret.escape = ret.esc;\n ret.del = ret[\"delete\"];\n (function () {\n var mods = [\"cmd\", \"ctrl\", \"alt\", \"shift\"];\n for (var i = Math.pow(2, mods.length); i--;) {\n ret.KEY_MODS[i] = mods.filter(function (x) {\n return i & ret.KEY_MODS[x];\n }).join(\"-\") + \"-\";\n }\n })();\n ret.KEY_MODS[0] = \"\";\n ret.KEY_MODS[-1] = \"input-\";\n return ret;\n})();\noop.mixin(exports, Keys);\nexports.default = exports;\nexports.keyCodeToString = function (keyCode) {\n var keyString = Keys[keyCode];\n if (typeof keyString != \"string\")\n keyString = String.fromCharCode(keyCode);\n return keyString.toLowerCase();\n};\n\n});\n\nace.define(\"ace/lib/event\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar keys = require(\"./keys\");\nvar useragent = require(\"./useragent\");\nvar pressedKeys = null;\nvar ts = 0;\nvar activeListenerOptions;\nfunction detectListenerOptionsSupport() {\n activeListenerOptions = false;\n try {\n document.createComment(\"\").addEventListener(\"test\", function () { }, {\n get passive() {\n activeListenerOptions = { passive: false };\n }\n });\n }\n catch (e) { }\n}\nfunction getListenerOptions() {\n if (activeListenerOptions == undefined)\n detectListenerOptionsSupport();\n return activeListenerOptions;\n}\nfunction EventListener(elem, type, callback) {\n this.elem = elem;\n this.type = type;\n this.callback = callback;\n}\nEventListener.prototype.destroy = function () {\n removeListener(this.elem, this.type, this.callback);\n this.elem = this.type = this.callback = undefined;\n};\nvar addListener = exports.addListener = function (elem, type, callback, destroyer) {\n elem.addEventListener(type, callback, getListenerOptions());\n if (destroyer)\n destroyer.$toDestroy.push(new EventListener(elem, type, callback));\n};\nvar removeListener = exports.removeListener = function (elem, type, callback) {\n elem.removeEventListener(type, callback, getListenerOptions());\n};\nexports.stopEvent = function (e) {\n exports.stopPropagation(e);\n exports.preventDefault(e);\n return false;\n};\nexports.stopPropagation = function (e) {\n if (e.stopPropagation)\n e.stopPropagation();\n};\nexports.preventDefault = function (e) {\n if (e.preventDefault)\n e.preventDefault();\n};\nexports.getButton = function (e) {\n if (e.type == \"dblclick\")\n return 0;\n if (e.type == \"contextmenu\" || (useragent.isMac && (e.ctrlKey && !e.altKey && !e.shiftKey)))\n return 2;\n return e.button;\n};\nexports.capture = function (el, eventHandler, releaseCaptureHandler) {\n var ownerDocument = el && el.ownerDocument || document;\n function onMouseUp(e) {\n eventHandler && eventHandler(e);\n releaseCaptureHandler && releaseCaptureHandler(e);\n removeListener(ownerDocument, \"mousemove\", eventHandler);\n removeListener(ownerDocument, \"mouseup\", onMouseUp);\n removeListener(ownerDocument, \"dragstart\", onMouseUp);\n }\n addListener(ownerDocument, \"mousemove\", eventHandler);\n addListener(ownerDocument, \"mouseup\", onMouseUp);\n addListener(ownerDocument, \"dragstart\", onMouseUp);\n return onMouseUp;\n};\nexports.addMouseWheelListener = function (el, callback, destroyer) {\n addListener(el, \"wheel\", function (e) {\n var factor = 0.15;\n var deltaX = e.deltaX || 0;\n var deltaY = e.deltaY || 0;\n switch (e.deltaMode) {\n case e.DOM_DELTA_PIXEL:\n e.wheelX = deltaX * factor;\n e.wheelY = deltaY * factor;\n break;\n case e.DOM_DELTA_LINE:\n var linePixels = 15;\n e.wheelX = deltaX * linePixels;\n e.wheelY = deltaY * linePixels;\n break;\n case e.DOM_DELTA_PAGE:\n var pagePixels = 150;\n e.wheelX = deltaX * pagePixels;\n e.wheelY = deltaY * pagePixels;\n break;\n }\n callback(e);\n }, destroyer);\n};\nexports.addMultiMouseDownListener = function (elements, timeouts, eventHandler, callbackName, destroyer) {\n var clicks = 0;\n var startX, startY, timer;\n var eventNames = {\n 2: \"dblclick\",\n 3: \"tripleclick\",\n 4: \"quadclick\"\n };\n function onMousedown(e) {\n if (exports.getButton(e) !== 0) {\n clicks = 0;\n }\n else if (e.detail > 1) {\n clicks++;\n if (clicks > 4)\n clicks = 1;\n }\n else {\n clicks = 1;\n }\n if (useragent.isIE) {\n var isNewClick = Math.abs(e.clientX - startX) > 5 || Math.abs(e.clientY - startY) > 5;\n if (!timer || isNewClick)\n clicks = 1;\n if (timer)\n clearTimeout(timer);\n timer = setTimeout(function () { timer = null; }, timeouts[clicks - 1] || 600);\n if (clicks == 1) {\n startX = e.clientX;\n startY = e.clientY;\n }\n }\n e._clicks = clicks;\n eventHandler[callbackName](\"mousedown\", e);\n if (clicks > 4)\n clicks = 0;\n else if (clicks > 1)\n return eventHandler[callbackName](eventNames[clicks], e);\n }\n if (!Array.isArray(elements))\n elements = [elements];\n elements.forEach(function (el) {\n addListener(el, \"mousedown\", onMousedown, destroyer);\n });\n};\nvar getModifierHash = function (e) {\n return 0 | (e.ctrlKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.metaKey ? 8 : 0);\n};\nexports.getModifierString = function (e) {\n return keys.KEY_MODS[getModifierHash(e)];\n};\nfunction normalizeCommandKeys(callback, e, keyCode) {\n var hashId = getModifierHash(e);\n if (!useragent.isMac && pressedKeys) {\n if (e.getModifierState && (e.getModifierState(\"OS\") || e.getModifierState(\"Win\")))\n hashId |= 8;\n if (pressedKeys.altGr) {\n if ((3 & hashId) != 3)\n pressedKeys.altGr = 0;\n else\n return;\n }\n if (keyCode === 18 || keyCode === 17) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (keyCode === 17 && location === 1) {\n if (pressedKeys[keyCode] == 1)\n ts = e.timeStamp;\n }\n else if (keyCode === 18 && hashId === 3 && location === 2) {\n var dt = e.timeStamp - ts;\n if (dt < 50)\n pressedKeys.altGr = true;\n }\n }\n }\n if (keyCode in keys.MODIFIER_KEYS) {\n keyCode = -1;\n }\n if (!hashId && keyCode === 13) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (location === 3) {\n callback(e, hashId, -keyCode);\n if (e.defaultPrevented)\n return;\n }\n }\n if (useragent.isChromeOS && hashId & 8) {\n callback(e, hashId, keyCode);\n if (e.defaultPrevented)\n return;\n else\n hashId &= ~8;\n }\n if (!hashId && !(keyCode in keys.FUNCTION_KEYS) && !(keyCode in keys.PRINTABLE_KEYS)) {\n return false;\n }\n return callback(e, hashId, keyCode);\n}\nexports.addCommandKeyListener = function (el, callback, destroyer) {\n if (useragent.isOldGecko || (useragent.isOpera && !(\"KeyboardEvent\" in window))) {\n var lastKeyDownKeyCode = null;\n addListener(el, \"keydown\", function (e) {\n lastKeyDownKeyCode = e.keyCode;\n }, destroyer);\n addListener(el, \"keypress\", function (e) {\n return normalizeCommandKeys(callback, e, lastKeyDownKeyCode);\n }, destroyer);\n }\n else {\n var lastDefaultPrevented = null;\n addListener(el, \"keydown\", function (e) {\n pressedKeys[e.keyCode] = (pressedKeys[e.keyCode] || 0) + 1;\n var result = normalizeCommandKeys(callback, e, e.keyCode);\n lastDefaultPrevented = e.defaultPrevented;\n return result;\n }, destroyer);\n addListener(el, \"keypress\", function (e) {\n if (lastDefaultPrevented && (e.ctrlKey || e.altKey || e.shiftKey || e.metaKey)) {\n exports.stopEvent(e);\n lastDefaultPrevented = null;\n }\n }, destroyer);\n addListener(el, \"keyup\", function (e) {\n pressedKeys[e.keyCode] = null;\n }, destroyer);\n if (!pressedKeys) {\n resetPressedKeys();\n addListener(window, \"focus\", resetPressedKeys);\n }\n }\n};\nfunction resetPressedKeys() {\n pressedKeys = Object.create(null);\n}\nif (typeof window == \"object\" && window.postMessage && !useragent.isOldIE) {\n var postMessageId = 1;\n exports.nextTick = function (callback, win) {\n win = win || window;\n var messageName = \"zero-timeout-message-\" + (postMessageId++);\n var listener = function (e) {\n if (e.data == messageName) {\n exports.stopPropagation(e);\n removeListener(win, \"message\", listener);\n callback();\n }\n };\n addListener(win, \"message\", listener);\n win.postMessage(messageName, \"*\");\n };\n}\nexports.$idleBlocked = false;\nexports.onIdle = function (cb, timeout) {\n return setTimeout(function handler() {\n if (!exports.$idleBlocked) {\n cb();\n }\n else {\n setTimeout(handler, 100);\n }\n }, timeout);\n};\nexports.$idleBlockId = null;\nexports.blockIdle = function (delay) {\n if (exports.$idleBlockId)\n clearTimeout(exports.$idleBlockId);\n exports.$idleBlocked = true;\n exports.$idleBlockId = setTimeout(function () {\n exports.$idleBlocked = false;\n }, delay || 100);\n};\nexports.nextFrame = typeof window == \"object\" && (window.requestAnimationFrame\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame\n || window.msRequestAnimationFrame\n || window.oRequestAnimationFrame);\nif (exports.nextFrame)\n exports.nextFrame = exports.nextFrame.bind(window);\nelse\n exports.nextFrame = function (callback) {\n setTimeout(callback, 17);\n };\n\n});\n\nace.define(\"ace/clipboard\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar $cancelT;\nmodule.exports = {\n lineMode: false,\n pasteCancelled: function () {\n if ($cancelT && $cancelT > Date.now() - 50)\n return true;\n return $cancelT = false;\n },\n cancel: function () {\n $cancelT = Date.now();\n }\n};\n\n});\n\nace.define(\"ace/keyboard/textinput\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/config\",\"ace/lib/useragent\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/clipboard\",\"ace/lib/keys\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar nls = require(\"../config\").nls;\nvar useragent = require(\"../lib/useragent\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar clipboard = require(\"../clipboard\");\nvar BROKEN_SETDATA = useragent.isChrome < 18;\nvar USE_IE_MIME_TYPE = useragent.isIE;\nvar HAS_FOCUS_ARGS = useragent.isChrome > 63;\nvar MAX_LINE_LENGTH = 400;\nvar KEYS = require(\"../lib/keys\");\nvar MODS = KEYS.KEY_MODS;\nvar isIOS = useragent.isIOS;\nvar valueResetRegex = isIOS ? /\\s/ : /\\n/;\nvar isMobile = useragent.isMobile;\nvar TextInput = function (parentNode, host) {\n var text = dom.createElement(\"textarea\");\n text.className = \"ace_text-input\";\n text.setAttribute(\"wrap\", \"off\");\n text.setAttribute(\"autocorrect\", \"off\");\n text.setAttribute(\"autocapitalize\", \"off\");\n text.setAttribute(\"spellcheck\", false);\n text.style.opacity = \"0\";\n parentNode.insertBefore(text, parentNode.firstChild);\n var copied = false;\n var pasted = false;\n var inComposition = false;\n var sendingText = false;\n var tempStyle = '';\n if (!isMobile)\n text.style.fontSize = \"1px\";\n var commandMode = false;\n var ignoreFocusEvents = false;\n var lastValue = \"\";\n var lastSelectionStart = 0;\n var lastSelectionEnd = 0;\n var lastRestoreEnd = 0;\n var rowStart = Number.MAX_SAFE_INTEGER;\n var rowEnd = Number.MIN_SAFE_INTEGER;\n var numberOfExtraLines = 0;\n try {\n var isFocused = document.activeElement === text;\n }\n catch (e) { }\n this.setNumberOfExtraLines = function (number) {\n rowStart = Number.MAX_SAFE_INTEGER;\n rowEnd = Number.MIN_SAFE_INTEGER;\n if (number < 0) {\n numberOfExtraLines = 0;\n return;\n }\n numberOfExtraLines = number;\n };\n this.setAriaOptions = function (options) {\n if (options.activeDescendant) {\n text.setAttribute(\"aria-haspopup\", \"true\");\n text.setAttribute(\"aria-autocomplete\", options.inline ? \"both\" : \"list\");\n text.setAttribute(\"aria-activedescendant\", options.activeDescendant);\n }\n else {\n text.setAttribute(\"aria-haspopup\", \"false\");\n text.setAttribute(\"aria-autocomplete\", \"both\");\n text.removeAttribute(\"aria-activedescendant\");\n }\n if (options.role) {\n text.setAttribute(\"role\", options.role);\n }\n if (options.setLabel) {\n text.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n if (host.session) {\n var row = host.session.selection.cursor.row;\n text.setAttribute(\"aria-label\", nls(\"Cursor at row $0\", [row + 1]));\n }\n }\n };\n this.setAriaOptions({ role: \"textbox\" });\n event.addListener(text, \"blur\", function (e) {\n if (ignoreFocusEvents)\n return;\n host.onBlur(e);\n isFocused = false;\n }, host);\n event.addListener(text, \"focus\", function (e) {\n if (ignoreFocusEvents)\n return;\n isFocused = true;\n if (useragent.isEdge) {\n try {\n if (!document.hasFocus())\n return;\n }\n catch (e) { }\n }\n host.onFocus(e);\n if (useragent.isEdge)\n setTimeout(resetSelection);\n else\n resetSelection();\n }, host);\n this.$focusScroll = false;\n this.focus = function () {\n this.setAriaOptions({\n setLabel: host.renderer.enableKeyboardAccessibility\n });\n if (tempStyle || HAS_FOCUS_ARGS || this.$focusScroll == \"browser\")\n return text.focus({ preventScroll: true });\n var top = text.style.top;\n text.style.position = \"fixed\";\n text.style.top = \"0px\";\n try {\n var isTransformed = text.getBoundingClientRect().top != 0;\n }\n catch (e) {\n return;\n }\n var ancestors = [];\n if (isTransformed) {\n var t = text.parentElement;\n while (t && t.nodeType == 1) {\n ancestors.push(t);\n t.setAttribute(\"ace_nocontext\", true);\n if (!t.parentElement && t.getRootNode)\n t = t.getRootNode().host;\n else\n t = t.parentElement;\n }\n }\n text.focus({ preventScroll: true });\n if (isTransformed) {\n ancestors.forEach(function (p) {\n p.removeAttribute(\"ace_nocontext\");\n });\n }\n setTimeout(function () {\n text.style.position = \"\";\n if (text.style.top == \"0px\")\n text.style.top = top;\n }, 0);\n };\n this.blur = function () {\n text.blur();\n };\n this.isFocused = function () {\n return isFocused;\n };\n host.on(\"beforeEndOperation\", function () {\n var curOp = host.curOp;\n var commandName = curOp && curOp.command && curOp.command.name;\n if (commandName == \"insertstring\")\n return;\n var isUserAction = commandName && (curOp.docChanged || curOp.selectionChanged);\n if (inComposition && isUserAction) {\n lastValue = text.value = \"\";\n onCompositionEnd();\n }\n resetSelection();\n });\n var positionToSelection = function (row, column) {\n var selection = column;\n for (var i = 1; i <= row - rowStart && i < 2 * numberOfExtraLines + 1; i++) {\n selection += host.session.getLine(row - i).length + 1;\n }\n return selection;\n };\n var resetSelection = isIOS\n ? function (value) {\n if (!isFocused || (copied && !value) || sendingText)\n return;\n if (!value)\n value = \"\";\n var newValue = \"\\n ab\" + value + \"cde fg\\n\";\n if (newValue != text.value)\n text.value = lastValue = newValue;\n var selectionStart = 4;\n var selectionEnd = 4 + (value.length || (host.selection.isEmpty() ? 0 : 1));\n if (lastSelectionStart != selectionStart || lastSelectionEnd != selectionEnd) {\n text.setSelectionRange(selectionStart, selectionEnd);\n }\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n }\n : function () {\n if (inComposition || sendingText)\n return;\n if (!isFocused && !afterContextMenu)\n return;\n inComposition = true;\n var selectionStart = 0;\n var selectionEnd = 0;\n var line = \"\";\n if (host.session) {\n var selection = host.selection;\n var range = selection.getRange();\n var row = selection.cursor.row;\n if (row === rowEnd + 1) {\n rowStart = rowEnd + 1;\n rowEnd = rowStart + 2 * numberOfExtraLines;\n }\n else if (row === rowStart - 1) {\n rowEnd = rowStart - 1;\n rowStart = rowEnd - 2 * numberOfExtraLines;\n }\n else if (row < rowStart - 1 || row > rowEnd + 1) {\n rowStart = row > numberOfExtraLines ? row - numberOfExtraLines : 0;\n rowEnd = row > numberOfExtraLines ? row + numberOfExtraLines : 2 * numberOfExtraLines;\n }\n var lines = [];\n for (var i = rowStart; i <= rowEnd; i++) {\n lines.push(host.session.getLine(i));\n }\n line = lines.join('\\n');\n selectionStart = positionToSelection(range.start.row, range.start.column);\n selectionEnd = positionToSelection(range.end.row, range.end.column);\n if (range.start.row < rowStart) {\n var prevLine = host.session.getLine(rowStart - 1);\n selectionStart = range.start.row < rowStart - 1 ? 0 : selectionStart;\n selectionEnd += prevLine.length + 1;\n line = prevLine + \"\\n\" + line;\n }\n else if (range.end.row > rowEnd) {\n var nextLine = host.session.getLine(rowEnd + 1);\n selectionEnd = range.end.row > rowEnd + 1 ? nextLine.length : range.end.column;\n selectionEnd += line.length + 1;\n line = line + \"\\n\" + nextLine;\n }\n else if (isMobile && row > 0) {\n line = \"\\n\" + line;\n selectionEnd += 1;\n selectionStart += 1;\n }\n if (line.length > MAX_LINE_LENGTH) {\n if (selectionStart < MAX_LINE_LENGTH && selectionEnd < MAX_LINE_LENGTH) {\n line = line.slice(0, MAX_LINE_LENGTH);\n }\n else {\n line = \"\\n\";\n if (selectionStart == selectionEnd) {\n selectionStart = selectionEnd = 0;\n }\n else {\n selectionStart = 0;\n selectionEnd = 1;\n }\n }\n }\n var newValue = line + \"\\n\\n\";\n if (newValue != lastValue) {\n text.value = lastValue = newValue;\n lastSelectionStart = lastSelectionEnd = newValue.length;\n }\n }\n if (afterContextMenu) {\n lastSelectionStart = text.selectionStart;\n lastSelectionEnd = text.selectionEnd;\n }\n if (lastSelectionEnd != selectionEnd\n || lastSelectionStart != selectionStart\n || text.selectionEnd != lastSelectionEnd // on ie edge selectionEnd changes silently after the initialization\n ) {\n try {\n text.setSelectionRange(selectionStart, selectionEnd);\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n }\n catch (e) { }\n }\n inComposition = false;\n };\n this.resetSelection = resetSelection;\n if (isFocused)\n host.onFocus();\n var isAllSelected = function (text) {\n return text.selectionStart === 0 && text.selectionEnd >= lastValue.length\n && text.value === lastValue && lastValue\n && text.selectionEnd !== lastSelectionEnd;\n };\n var onSelect = function (e) {\n if (inComposition)\n return;\n if (copied) {\n copied = false;\n }\n else if (isAllSelected(text)) {\n host.selectAll();\n resetSelection();\n }\n else if (isMobile && text.selectionStart != lastSelectionStart) {\n resetSelection();\n }\n };\n var inputHandler = null;\n this.setInputHandler = function (cb) { inputHandler = cb; };\n this.getInputHandler = function () { return inputHandler; };\n var afterContextMenu = false;\n var sendText = function (value, fromInput) {\n if (afterContextMenu)\n afterContextMenu = false;\n if (pasted) {\n resetSelection();\n if (value)\n host.onPaste(value);\n pasted = false;\n return \"\";\n }\n else {\n var selectionStart = text.selectionStart;\n var selectionEnd = text.selectionEnd;\n var extendLeft = lastSelectionStart;\n var extendRight = lastValue.length - lastSelectionEnd;\n var inserted = value;\n var restoreStart = value.length - selectionStart;\n var restoreEnd = value.length - selectionEnd;\n var i = 0;\n while (extendLeft > 0 && lastValue[i] == value[i]) {\n i++;\n extendLeft--;\n }\n inserted = inserted.slice(i);\n i = 1;\n while (extendRight > 0 && lastValue.length - i > lastSelectionStart - 1 && lastValue[lastValue.length - i] == value[value.length - i]) {\n i++;\n extendRight--;\n }\n restoreStart -= i - 1;\n restoreEnd -= i - 1;\n var endIndex = inserted.length - i + 1;\n if (endIndex < 0) {\n extendLeft = -endIndex;\n endIndex = 0;\n }\n inserted = inserted.slice(0, endIndex);\n if (!fromInput && !inserted && !restoreStart && !extendLeft && !extendRight && !restoreEnd)\n return \"\";\n sendingText = true;\n var shouldReset = false;\n if (useragent.isAndroid && inserted == \". \") {\n inserted = \" \";\n shouldReset = true;\n }\n if (inserted && !extendLeft && !extendRight && !restoreStart && !restoreEnd || commandMode) {\n host.onTextInput(inserted);\n }\n else {\n host.onTextInput(inserted, {\n extendLeft: extendLeft,\n extendRight: extendRight,\n restoreStart: restoreStart,\n restoreEnd: restoreEnd\n });\n }\n sendingText = false;\n lastValue = value;\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n lastRestoreEnd = restoreEnd;\n return shouldReset ? \"\\n\" : inserted;\n }\n };\n var onInput = function (e) {\n if (inComposition)\n return onCompositionUpdate();\n if (e && e.inputType) {\n if (e.inputType == \"historyUndo\")\n return host.execCommand(\"undo\");\n if (e.inputType == \"historyRedo\")\n return host.execCommand(\"redo\");\n }\n var data = text.value;\n var inserted = sendText(data, true);\n if (data.length > MAX_LINE_LENGTH + 100\n || valueResetRegex.test(inserted)\n || isMobile && lastSelectionStart < 1 && lastSelectionStart == lastSelectionEnd) {\n resetSelection();\n }\n };\n var handleClipboardData = function (e, data, forceIEMime) {\n var clipboardData = e.clipboardData || window.clipboardData;\n if (!clipboardData || BROKEN_SETDATA)\n return;\n var mime = USE_IE_MIME_TYPE || forceIEMime ? \"Text\" : \"text/plain\";\n try {\n if (data) {\n return clipboardData.setData(mime, data) !== false;\n }\n else {\n return clipboardData.getData(mime);\n }\n }\n catch (e) {\n if (!forceIEMime)\n return handleClipboardData(e, data, true);\n }\n };\n var doCopy = function (e, isCut) {\n var data = host.getCopyText();\n if (!data)\n return event.preventDefault(e);\n if (handleClipboardData(e, data)) {\n if (isIOS) {\n resetSelection(data);\n copied = data;\n setTimeout(function () {\n copied = false;\n }, 10);\n }\n isCut ? host.onCut() : host.onCopy();\n event.preventDefault(e);\n }\n else {\n copied = true;\n text.value = data;\n text.select();\n setTimeout(function () {\n copied = false;\n resetSelection();\n isCut ? host.onCut() : host.onCopy();\n });\n }\n };\n var onCut = function (e) {\n doCopy(e, true);\n };\n var onCopy = function (e) {\n doCopy(e, false);\n };\n var onPaste = function (e) {\n var data = handleClipboardData(e);\n if (clipboard.pasteCancelled())\n return;\n if (typeof data == \"string\") {\n if (data)\n host.onPaste(data, e);\n if (useragent.isIE)\n setTimeout(resetSelection);\n event.preventDefault(e);\n }\n else {\n text.value = \"\";\n pasted = true;\n }\n };\n event.addCommandKeyListener(text, host.onCommandKey.bind(host), host);\n event.addListener(text, \"select\", onSelect, host);\n event.addListener(text, \"input\", onInput, host);\n event.addListener(text, \"cut\", onCut, host);\n event.addListener(text, \"copy\", onCopy, host);\n event.addListener(text, \"paste\", onPaste, host);\n if (!('oncut' in text) || !('oncopy' in text) || !('onpaste' in text)) {\n event.addListener(parentNode, \"keydown\", function (e) {\n if ((useragent.isMac && !e.metaKey) || !e.ctrlKey)\n return;\n switch (e.keyCode) {\n case 67:\n onCopy(e);\n break;\n case 86:\n onPaste(e);\n break;\n case 88:\n onCut(e);\n break;\n }\n }, host);\n }\n var onCompositionStart = function (e) {\n if (inComposition || !host.onCompositionStart || host.$readOnly)\n return;\n inComposition = {};\n if (commandMode)\n return;\n if (e.data)\n inComposition.useTextareaForIME = false;\n setTimeout(onCompositionUpdate, 0);\n host._signal(\"compositionStart\");\n host.on(\"mousedown\", cancelComposition);\n var range = host.getSelectionRange();\n range.end.row = range.start.row;\n range.end.column = range.start.column;\n inComposition.markerRange = range;\n inComposition.selectionStart = lastSelectionStart;\n host.onCompositionStart(inComposition);\n if (inComposition.useTextareaForIME) {\n lastValue = text.value = \"\";\n lastSelectionStart = 0;\n lastSelectionEnd = 0;\n }\n else {\n if (text.msGetInputContext)\n inComposition.context = text.msGetInputContext();\n if (text.getInputContext)\n inComposition.context = text.getInputContext();\n }\n };\n var onCompositionUpdate = function () {\n if (!inComposition || !host.onCompositionUpdate || host.$readOnly)\n return;\n if (commandMode)\n return cancelComposition();\n if (inComposition.useTextareaForIME) {\n host.onCompositionUpdate(text.value);\n }\n else {\n var data = text.value;\n sendText(data);\n if (inComposition.markerRange) {\n if (inComposition.context) {\n inComposition.markerRange.start.column = inComposition.selectionStart\n = inComposition.context.compositionStartOffset;\n }\n inComposition.markerRange.end.column = inComposition.markerRange.start.column\n + lastSelectionEnd - inComposition.selectionStart + lastRestoreEnd;\n }\n }\n };\n var onCompositionEnd = function (e) {\n if (!host.onCompositionEnd || host.$readOnly)\n return;\n inComposition = false;\n host.onCompositionEnd();\n host.off(\"mousedown\", cancelComposition);\n if (e)\n onInput();\n };\n function cancelComposition() {\n ignoreFocusEvents = true;\n text.blur();\n text.focus();\n ignoreFocusEvents = false;\n }\n var syncComposition = lang.delayedCall(onCompositionUpdate, 50).schedule.bind(null, null);\n function onKeyup(e) {\n if (e.keyCode == 27 && text.value.length < text.selectionStart) {\n if (!inComposition)\n lastValue = text.value;\n lastSelectionStart = lastSelectionEnd = -1;\n resetSelection();\n }\n syncComposition();\n }\n event.addListener(text, \"compositionstart\", onCompositionStart, host);\n event.addListener(text, \"compositionupdate\", onCompositionUpdate, host);\n event.addListener(text, \"keyup\", onKeyup, host);\n event.addListener(text, \"keydown\", syncComposition, host);\n event.addListener(text, \"compositionend\", onCompositionEnd, host);\n this.getElement = function () {\n return text;\n };\n this.setCommandMode = function (value) {\n commandMode = value;\n text.readOnly = false;\n };\n this.setReadOnly = function (readOnly) {\n if (!commandMode)\n text.readOnly = readOnly;\n };\n this.setCopyWithEmptySelection = function (value) {\n };\n this.onContextMenu = function (e) {\n afterContextMenu = true;\n resetSelection();\n host._emit(\"nativecontextmenu\", { target: host, domEvent: e });\n this.moveToMouse(e, true);\n };\n this.moveToMouse = function (e, bringToFront) {\n if (!tempStyle)\n tempStyle = text.style.cssText;\n text.style.cssText = (bringToFront ? \"z-index:100000;\" : \"\")\n + (useragent.isIE ? \"opacity:0.1;\" : \"\")\n + \"text-indent: -\" + (lastSelectionStart + lastSelectionEnd) * host.renderer.characterWidth * 0.5 + \"px;\";\n var rect = host.container.getBoundingClientRect();\n var style = dom.computedStyle(host.container);\n var top = rect.top + (parseInt(style.borderTopWidth) || 0);\n var left = rect.left + (parseInt(rect.borderLeftWidth) || 0);\n var maxTop = rect.bottom - top - text.clientHeight - 2;\n var move = function (e) {\n dom.translate(text, e.clientX - left - 2, Math.min(e.clientY - top - 2, maxTop));\n };\n move(e);\n if (e.type != \"mousedown\")\n return;\n host.renderer.$isMousePressed = true;\n clearTimeout(closeTimeout);\n if (useragent.isWin)\n event.capture(host.container, move, onContextMenuClose);\n };\n this.onContextMenuClose = onContextMenuClose;\n var closeTimeout;\n function onContextMenuClose() {\n clearTimeout(closeTimeout);\n closeTimeout = setTimeout(function () {\n if (tempStyle) {\n text.style.cssText = tempStyle;\n tempStyle = '';\n }\n host.renderer.$isMousePressed = false;\n if (host.renderer.$keepTextAreaAtCursor)\n host.renderer.$moveTextAreaToCursor();\n }, 0);\n }\n var onContextMenu = function (e) {\n host.textInput.onContextMenu(e);\n onContextMenuClose();\n };\n event.addListener(text, \"mouseup\", onContextMenu, host);\n event.addListener(text, \"mousedown\", function (e) {\n e.preventDefault();\n onContextMenuClose();\n }, host);\n event.addListener(host.renderer.scroller, \"contextmenu\", onContextMenu, host);\n event.addListener(text, \"contextmenu\", onContextMenu, host);\n if (isIOS)\n addIosSelectionHandler(parentNode, host, text);\n function addIosSelectionHandler(parentNode, host, text) {\n var typingResetTimeout = null;\n var typing = false;\n text.addEventListener(\"keydown\", function (e) {\n if (typingResetTimeout)\n clearTimeout(typingResetTimeout);\n typing = true;\n }, true);\n text.addEventListener(\"keyup\", function (e) {\n typingResetTimeout = setTimeout(function () {\n typing = false;\n }, 100);\n }, true);\n var detectArrowKeys = function (e) {\n if (document.activeElement !== text)\n return;\n if (typing || inComposition || host.$mouseHandler.isMousePressed)\n return;\n if (copied) {\n return;\n }\n var selectionStart = text.selectionStart;\n var selectionEnd = text.selectionEnd;\n var key = null;\n var modifier = 0;\n if (selectionStart == 0) {\n key = KEYS.up;\n }\n else if (selectionStart == 1) {\n key = KEYS.home;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue[selectionEnd] == \"\\n\") {\n key = KEYS.end;\n }\n else if (selectionStart < lastSelectionStart && lastValue[selectionStart - 1] == \" \") {\n key = KEYS.left;\n modifier = MODS.option;\n }\n else if (selectionStart < lastSelectionStart\n || (selectionStart == lastSelectionStart\n && lastSelectionEnd != lastSelectionStart\n && selectionStart == selectionEnd)) {\n key = KEYS.left;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue.slice(0, selectionEnd).split(\"\\n\").length > 2) {\n key = KEYS.down;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue[selectionEnd - 1] == \" \") {\n key = KEYS.right;\n modifier = MODS.option;\n }\n else if (selectionEnd > lastSelectionEnd\n || (selectionEnd == lastSelectionEnd\n && lastSelectionEnd != lastSelectionStart\n && selectionStart == selectionEnd)) {\n key = KEYS.right;\n }\n if (selectionStart !== selectionEnd)\n modifier |= MODS.shift;\n if (key) {\n var result = host.onCommandKey({}, modifier, key);\n if (!result && host.commands) {\n key = KEYS.keyCodeToString(key);\n var command = host.commands.findKeyCommand(modifier, key);\n if (command)\n host.execCommand(command);\n }\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n resetSelection(\"\");\n }\n };\n document.addEventListener(\"selectionchange\", detectArrowKeys);\n host.on(\"destroy\", function () {\n document.removeEventListener(\"selectionchange\", detectArrowKeys);\n });\n }\n this.destroy = function () {\n if (text.parentElement)\n text.parentElement.removeChild(text);\n };\n};\nexports.TextInput = TextInput;\nexports.$setUserAgentForTests = function (_isMobile, _isIOS) {\n isMobile = _isMobile;\n isIOS = _isIOS;\n};\n\n});\n\nace.define(\"ace/mouse/default_handlers\",[\"require\",\"exports\",\"module\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar useragent = require(\"../lib/useragent\");\nvar DRAG_OFFSET = 0; // pixels\nvar SCROLL_COOLDOWN_T = 550; // milliseconds\nvar DefaultHandlers = /** @class */ (function () {\n function DefaultHandlers(mouseHandler) {\n mouseHandler.$clickSelection = null;\n var editor = mouseHandler.editor;\n editor.setDefaultHandler(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n editor.setDefaultHandler(\"dblclick\", this.onDoubleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"tripleclick\", this.onTripleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"quadclick\", this.onQuadClick.bind(mouseHandler));\n editor.setDefaultHandler(\"mousewheel\", this.onMouseWheel.bind(mouseHandler));\n var exports = [\"select\", \"startSelect\", \"selectEnd\", \"selectAllEnd\", \"selectByWordsEnd\",\n \"selectByLinesEnd\", \"dragWait\", \"dragWaitEnd\", \"focusWait\"];\n exports.forEach(function (x) {\n mouseHandler[x] = this[x];\n }, this);\n mouseHandler.selectByLines = this.extendSelectionBy.bind(mouseHandler, \"getLineRange\");\n mouseHandler.selectByWords = this.extendSelectionBy.bind(mouseHandler, \"getWordRange\");\n }\n DefaultHandlers.prototype.onMouseDown = function (ev) {\n var inSelection = ev.inSelection();\n var pos = ev.getDocumentPosition();\n this.mousedownEvent = ev;\n var editor = this.editor;\n var button = ev.getButton();\n if (button !== 0) {\n var selectionRange = editor.getSelectionRange();\n var selectionEmpty = selectionRange.isEmpty();\n if (selectionEmpty || button == 1)\n editor.selection.moveToPosition(pos);\n if (button == 2) {\n editor.textInput.onContextMenu(ev.domEvent);\n if (!useragent.isMozilla)\n ev.preventDefault();\n }\n return;\n }\n this.mousedownEvent.time = Date.now();\n if (inSelection && !editor.isFocused()) {\n editor.focus();\n if (this.$focusTimeout && !this.$clickSelection && !editor.inMultiSelectMode) {\n this.setState(\"focusWait\");\n this.captureMouse(ev);\n return;\n }\n }\n this.captureMouse(ev);\n this.startSelect(pos, ev.domEvent._clicks > 1);\n return ev.preventDefault();\n };\n DefaultHandlers.prototype.startSelect = function (pos, waitForClickSelection) {\n pos = pos || this.editor.renderer.screenToTextCoordinates(this.x, this.y);\n var editor = this.editor;\n if (!this.mousedownEvent)\n return;\n if (this.mousedownEvent.getShiftKey())\n editor.selection.selectToPosition(pos);\n else if (!waitForClickSelection)\n editor.selection.moveToPosition(pos);\n if (!waitForClickSelection)\n this.select();\n editor.setStyle(\"ace_selecting\");\n this.setState(\"select\");\n };\n DefaultHandlers.prototype.select = function () {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n if (this.$clickSelection) {\n var cmp = this.$clickSelection.comparePoint(cursor);\n if (cmp == -1) {\n anchor = this.$clickSelection.end;\n }\n else if (cmp == 1) {\n anchor = this.$clickSelection.start;\n }\n else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n };\n DefaultHandlers.prototype.extendSelectionBy = function (unitName) {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n var range = editor.selection[unitName](cursor.row, cursor.column);\n if (this.$clickSelection) {\n var cmpStart = this.$clickSelection.comparePoint(range.start);\n var cmpEnd = this.$clickSelection.comparePoint(range.end);\n if (cmpStart == -1 && cmpEnd <= 0) {\n anchor = this.$clickSelection.end;\n if (range.end.row != cursor.row || range.end.column != cursor.column)\n cursor = range.start;\n }\n else if (cmpEnd == 1 && cmpStart >= 0) {\n anchor = this.$clickSelection.start;\n if (range.start.row != cursor.row || range.start.column != cursor.column)\n cursor = range.end;\n }\n else if (cmpStart == -1 && cmpEnd == 1) {\n cursor = range.end;\n anchor = range.start;\n }\n else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n };\n DefaultHandlers.prototype.selectByLinesEnd = function () {\n this.$clickSelection = null;\n this.editor.unsetStyle(\"ace_selecting\");\n };\n DefaultHandlers.prototype.focusWait = function () {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n var time = Date.now();\n if (distance > DRAG_OFFSET || time - this.mousedownEvent.time > this.$focusTimeout)\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n };\n DefaultHandlers.prototype.onDoubleClick = function (ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n var session = editor.session;\n var range = session.getBracketRange(pos);\n if (range) {\n if (range.isEmpty()) {\n range.start.column--;\n range.end.column++;\n }\n this.setState(\"select\");\n }\n else {\n range = editor.selection.getWordRange(pos.row, pos.column);\n this.setState(\"selectByWords\");\n }\n this.$clickSelection = range;\n this.select();\n };\n DefaultHandlers.prototype.onTripleClick = function (ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n this.setState(\"selectByLines\");\n var range = editor.getSelectionRange();\n if (range.isMultiLine() && range.contains(pos.row, pos.column)) {\n this.$clickSelection = editor.selection.getLineRange(range.start.row);\n this.$clickSelection.end = editor.selection.getLineRange(range.end.row).end;\n }\n else {\n this.$clickSelection = editor.selection.getLineRange(pos.row);\n }\n this.select();\n };\n DefaultHandlers.prototype.onQuadClick = function (ev) {\n var editor = this.editor;\n editor.selectAll();\n this.$clickSelection = editor.getSelectionRange();\n this.setState(\"selectAll\");\n };\n DefaultHandlers.prototype.onMouseWheel = function (ev) {\n if (ev.getAccelKey())\n return;\n if (ev.getShiftKey() && ev.wheelY && !ev.wheelX) {\n ev.wheelX = ev.wheelY;\n ev.wheelY = 0;\n }\n var editor = this.editor;\n if (!this.$lastScroll)\n this.$lastScroll = { t: 0, vx: 0, vy: 0, allowed: 0 };\n var prevScroll = this.$lastScroll;\n var t = ev.domEvent.timeStamp;\n var dt = t - prevScroll.t;\n var vx = dt ? ev.wheelX / dt : prevScroll.vx;\n var vy = dt ? ev.wheelY / dt : prevScroll.vy;\n if (dt < SCROLL_COOLDOWN_T) {\n vx = (vx + prevScroll.vx) / 2;\n vy = (vy + prevScroll.vy) / 2;\n }\n var direction = Math.abs(vx / vy);\n var canScroll = false;\n if (direction >= 1 && editor.renderer.isScrollableBy(ev.wheelX * ev.speed, 0))\n canScroll = true;\n if (direction <= 1 && editor.renderer.isScrollableBy(0, ev.wheelY * ev.speed))\n canScroll = true;\n if (canScroll) {\n prevScroll.allowed = t;\n }\n else if (t - prevScroll.allowed < SCROLL_COOLDOWN_T) {\n var isSlower = Math.abs(vx) <= 1.5 * Math.abs(prevScroll.vx)\n && Math.abs(vy) <= 1.5 * Math.abs(prevScroll.vy);\n if (isSlower) {\n canScroll = true;\n prevScroll.allowed = t;\n }\n else {\n prevScroll.allowed = 0;\n }\n }\n prevScroll.t = t;\n prevScroll.vx = vx;\n prevScroll.vy = vy;\n if (canScroll) {\n editor.renderer.scrollBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n return ev.stop();\n }\n };\n return DefaultHandlers;\n}());\nDefaultHandlers.prototype.selectEnd = DefaultHandlers.prototype.selectByLinesEnd;\nDefaultHandlers.prototype.selectAllEnd = DefaultHandlers.prototype.selectByLinesEnd;\nDefaultHandlers.prototype.selectByWordsEnd = DefaultHandlers.prototype.selectByLinesEnd;\nexports.DefaultHandlers = DefaultHandlers;\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\nfunction calcRangeOrientation(range, cursor) {\n if (range.start.row == range.end.row)\n var cmp = 2 * cursor.column - range.start.column - range.end.column;\n else if (range.start.row == range.end.row - 1 && !range.start.column && !range.end.column)\n var cmp = cursor.column - 4;\n else\n var cmp = 2 * cursor.row - range.start.row - range.end.row;\n if (cmp < 0)\n return { cursor: range.start, anchor: range.end };\n else\n return { cursor: range.end, anchor: range.start };\n}\n\n});\n\nace.define(\"ace/tooltip\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar Range = require(\"./range\").Range;\nvar CLASSNAME = \"ace_tooltip\";\nvar Tooltip = /** @class */ (function () {\n function Tooltip(parentNode) {\n this.isOpen = false;\n this.$element = null;\n this.$parentNode = parentNode;\n }\n Tooltip.prototype.$init = function () {\n this.$element = dom.createElement(\"div\");\n this.$element.className = CLASSNAME;\n this.$element.style.display = \"none\";\n this.$parentNode.appendChild(this.$element);\n return this.$element;\n };\n Tooltip.prototype.getElement = function () {\n return this.$element || this.$init();\n };\n Tooltip.prototype.setText = function (text) {\n this.getElement().textContent = text;\n };\n Tooltip.prototype.setHtml = function (html) {\n this.getElement().innerHTML = html;\n };\n Tooltip.prototype.setPosition = function (x, y) {\n this.getElement().style.left = x + \"px\";\n this.getElement().style.top = y + \"px\";\n };\n Tooltip.prototype.setClassName = function (className) {\n dom.addCssClass(this.getElement(), className);\n };\n Tooltip.prototype.setTheme = function (theme) {\n this.$element.className = CLASSNAME + \" \" +\n (theme.isDark ? \"ace_dark \" : \"\") + (theme.cssClass || \"\");\n };\n Tooltip.prototype.show = function (text, x, y) {\n if (text != null)\n this.setText(text);\n if (x != null && y != null)\n this.setPosition(x, y);\n if (!this.isOpen) {\n this.getElement().style.display = \"block\";\n this.isOpen = true;\n }\n };\n Tooltip.prototype.hide = function () {\n if (this.isOpen) {\n this.getElement().style.display = \"none\";\n this.getElement().className = CLASSNAME;\n this.isOpen = false;\n }\n };\n Tooltip.prototype.getHeight = function () {\n return this.getElement().offsetHeight;\n };\n Tooltip.prototype.getWidth = function () {\n return this.getElement().offsetWidth;\n };\n Tooltip.prototype.destroy = function () {\n this.isOpen = false;\n if (this.$element && this.$element.parentNode) {\n this.$element.parentNode.removeChild(this.$element);\n }\n };\n return Tooltip;\n}());\nvar PopupManager = /** @class */ (function () {\n function PopupManager() {\n this.popups = [];\n }\n PopupManager.prototype.addPopup = function (popup) {\n this.popups.push(popup);\n this.updatePopups();\n };\n PopupManager.prototype.removePopup = function (popup) {\n var index = this.popups.indexOf(popup);\n if (index !== -1) {\n this.popups.splice(index, 1);\n this.updatePopups();\n }\n };\n PopupManager.prototype.updatePopups = function () {\n var e_1, _a, e_2, _b;\n this.popups.sort(function (a, b) { return b.priority - a.priority; });\n var visiblepopups = [];\n try {\n for (var _c = __values(this.popups), _d = _c.next(); !_d.done; _d = _c.next()) {\n var popup = _d.value;\n var shouldDisplay = true;\n try {\n for (var visiblepopups_1 = (e_2 = void 0, __values(visiblepopups)), visiblepopups_1_1 = visiblepopups_1.next(); !visiblepopups_1_1.done; visiblepopups_1_1 = visiblepopups_1.next()) {\n var visiblePopup = visiblepopups_1_1.value;\n if (this.doPopupsOverlap(visiblePopup, popup)) {\n shouldDisplay = false;\n break;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (visiblepopups_1_1 && !visiblepopups_1_1.done && (_b = visiblepopups_1.return)) _b.call(visiblepopups_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (shouldDisplay) {\n visiblepopups.push(popup);\n }\n else {\n popup.hide();\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n PopupManager.prototype.doPopupsOverlap = function (popupA, popupB) {\n var rectA = popupA.getElement().getBoundingClientRect();\n var rectB = popupB.getElement().getBoundingClientRect();\n return (rectA.left < rectB.right && rectA.right > rectB.left && rectA.top < rectB.bottom && rectA.bottom\n > rectB.top);\n };\n return PopupManager;\n}());\nvar popupManager = new PopupManager();\nexports.popupManager = popupManager;\nexports.Tooltip = Tooltip;\nvar HoverTooltip = /** @class */ (function (_super) {\n __extends(HoverTooltip, _super);\n function HoverTooltip(parentNode) {\n if (parentNode === void 0) { parentNode = document.body; }\n var _this = _super.call(this, parentNode) || this;\n _this.timeout = undefined;\n _this.lastT = 0;\n _this.idleTime = 350;\n _this.lastEvent = undefined;\n _this.onMouseOut = _this.onMouseOut.bind(_this);\n _this.onMouseMove = _this.onMouseMove.bind(_this);\n _this.waitForHover = _this.waitForHover.bind(_this);\n _this.hide = _this.hide.bind(_this);\n var el = _this.getElement();\n el.style.whiteSpace = \"pre-wrap\";\n el.style.pointerEvents = \"auto\";\n el.addEventListener(\"mouseout\", _this.onMouseOut);\n el.tabIndex = -1;\n el.addEventListener(\"blur\", function () {\n if (!el.contains(document.activeElement))\n this.hide();\n }.bind(_this));\n el.addEventListener(\"wheel\", event.stopPropagation);\n return _this;\n }\n HoverTooltip.prototype.addToEditor = function (editor) {\n editor.on(\"mousemove\", this.onMouseMove);\n editor.on(\"mousedown\", this.hide);\n editor.renderer.getMouseEventTarget().addEventListener(\"mouseout\", this.onMouseOut, true);\n };\n HoverTooltip.prototype.removeFromEditor = function (editor) {\n editor.off(\"mousemove\", this.onMouseMove);\n editor.off(\"mousedown\", this.hide);\n editor.renderer.getMouseEventTarget().removeEventListener(\"mouseout\", this.onMouseOut, true);\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n };\n HoverTooltip.prototype.onMouseMove = function (e, editor) {\n this.lastEvent = e;\n this.lastT = Date.now();\n var isMousePressed = editor.$mouseHandler.isMousePressed;\n if (this.isOpen) {\n var pos = this.lastEvent && this.lastEvent.getDocumentPosition();\n if (!this.range\n || !this.range.contains(pos.row, pos.column)\n || isMousePressed\n || this.isOutsideOfText(this.lastEvent)) {\n this.hide();\n }\n }\n if (this.timeout || isMousePressed)\n return;\n this.lastEvent = e;\n this.timeout = setTimeout(this.waitForHover, this.idleTime);\n };\n HoverTooltip.prototype.waitForHover = function () {\n if (this.timeout)\n clearTimeout(this.timeout);\n var dt = Date.now() - this.lastT;\n if (this.idleTime - dt > 10) {\n this.timeout = setTimeout(this.waitForHover, this.idleTime - dt);\n return;\n }\n this.timeout = null;\n if (this.lastEvent && !this.isOutsideOfText(this.lastEvent)) {\n this.$gatherData(this.lastEvent, this.lastEvent.editor);\n }\n };\n HoverTooltip.prototype.isOutsideOfText = function (e) {\n var editor = e.editor;\n var docPos = e.getDocumentPosition();\n var line = editor.session.getLine(docPos.row);\n if (docPos.column == line.length) {\n var screenPos = editor.renderer.pixelToScreenCoordinates(e.clientX, e.clientY);\n var clippedPos = editor.session.documentToScreenPosition(docPos.row, docPos.column);\n if (clippedPos.column != screenPos.column\n || clippedPos.row != screenPos.row) {\n return true;\n }\n }\n return false;\n };\n HoverTooltip.prototype.setDataProvider = function (value) {\n this.$gatherData = value;\n };\n HoverTooltip.prototype.showForRange = function (editor, range, domNode, startingEvent) {\n var MARGIN = 10;\n if (startingEvent && startingEvent != this.lastEvent)\n return;\n if (this.isOpen && document.activeElement == this.getElement())\n return;\n var renderer = editor.renderer;\n if (!this.isOpen) {\n popupManager.addPopup(this);\n this.$registerCloseEvents();\n this.setTheme(renderer.theme);\n }\n this.isOpen = true;\n this.addMarker(range, editor.session);\n this.range = Range.fromPoints(range.start, range.end);\n var position = renderer.textToScreenCoordinates(range.start.row, range.start.column);\n var rect = renderer.scroller.getBoundingClientRect();\n if (position.pageX < rect.left)\n position.pageX = rect.left;\n var element = this.getElement();\n element.innerHTML = \"\";\n element.appendChild(domNode);\n element.style.maxHeight = \"\";\n element.style.display = \"block\";\n var labelHeight = element.clientHeight;\n var labelWidth = element.clientWidth;\n var spaceBelow = window.innerHeight - position.pageY - renderer.lineHeight;\n var isAbove = true;\n if (position.pageY - labelHeight < 0 && position.pageY < spaceBelow) {\n isAbove = false;\n }\n element.style.maxHeight = (isAbove ? position.pageY : spaceBelow) - MARGIN + \"px\";\n element.style.top = isAbove ? \"\" : position.pageY + renderer.lineHeight + \"px\";\n element.style.bottom = isAbove ? window.innerHeight - position.pageY + \"px\" : \"\";\n element.style.left = Math.min(position.pageX, window.innerWidth - labelWidth - MARGIN) + \"px\";\n };\n HoverTooltip.prototype.addMarker = function (range, session) {\n if (this.marker) {\n this.$markerSession.removeMarker(this.marker);\n }\n this.$markerSession = session;\n this.marker = session && session.addMarker(range, \"ace_highlight-marker\", \"text\");\n };\n HoverTooltip.prototype.hide = function (e) {\n if (!e && document.activeElement == this.getElement())\n return;\n if (e && e.target && (e.type != \"keydown\" || e.ctrlKey || e.metaKey) && this.$element.contains(e.target))\n return;\n this.lastEvent = null;\n if (this.timeout)\n clearTimeout(this.timeout);\n this.timeout = null;\n this.addMarker(null);\n if (this.isOpen) {\n this.$removeCloseEvents();\n this.getElement().style.display = \"none\";\n this.isOpen = false;\n popupManager.removePopup(this);\n }\n };\n HoverTooltip.prototype.$registerCloseEvents = function () {\n window.addEventListener(\"keydown\", this.hide, true);\n window.addEventListener(\"wheel\", this.hide, true);\n window.addEventListener(\"mousedown\", this.hide, true);\n };\n HoverTooltip.prototype.$removeCloseEvents = function () {\n window.removeEventListener(\"keydown\", this.hide, true);\n window.removeEventListener(\"wheel\", this.hide, true);\n window.removeEventListener(\"mousedown\", this.hide, true);\n };\n HoverTooltip.prototype.onMouseOut = function (e) {\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n this.lastEvent = null;\n if (!this.isOpen)\n return;\n if (!e.relatedTarget || this.getElement().contains(e.relatedTarget))\n return;\n if (e && e.currentTarget.contains(e.relatedTarget))\n return;\n if (!e.relatedTarget.classList.contains(\"ace_content\"))\n this.hide();\n };\n return HoverTooltip;\n}(Tooltip));\nexports.HoverTooltip = HoverTooltip;\n\n});\n\nace.define(\"ace/mouse/default_gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/tooltip\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar dom = require(\"../lib/dom\");\nvar event = require(\"../lib/event\");\nvar Tooltip = require(\"../tooltip\").Tooltip;\nvar nls = require(\"../config\").nls;\nfunction GutterHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var gutter = editor.renderer.$gutterLayer;\n var tooltip = new GutterTooltip(editor);\n mouseHandler.editor.setDefaultHandler(\"guttermousedown\", function (e) {\n if (!editor.isFocused() || e.getButton() != 0)\n return;\n var gutterRegion = gutter.getRegion(e);\n if (gutterRegion == \"foldWidgets\")\n return;\n var row = e.getDocumentPosition().row;\n var selection = editor.session.selection;\n if (e.getShiftKey())\n selection.selectTo(row, 0);\n else {\n if (e.domEvent.detail == 2) {\n editor.selectAll();\n return e.preventDefault();\n }\n mouseHandler.$clickSelection = editor.selection.getLineRange(row);\n }\n mouseHandler.setState(\"selectByLines\");\n mouseHandler.captureMouse(e);\n return e.preventDefault();\n });\n var tooltipTimeout, mouseEvent;\n function showTooltip() {\n var row = mouseEvent.getDocumentPosition().row;\n var maxRow = editor.session.getLength();\n if (row == maxRow) {\n var screenRow = editor.renderer.pixelToScreenCoordinates(0, mouseEvent.y).row;\n var pos = mouseEvent.$pos;\n if (screenRow > editor.session.documentToScreenRow(pos.row, pos.column))\n return hideTooltip();\n }\n tooltip.showTooltip(row);\n if (!tooltip.isOpen)\n return;\n editor.on(\"mousewheel\", hideTooltip);\n if (mouseHandler.$tooltipFollowsMouse) {\n moveTooltip(mouseEvent);\n }\n else {\n var gutterRow = mouseEvent.getGutterRow();\n var gutterCell = gutter.$lines.get(gutterRow);\n if (gutterCell) {\n var gutterElement = gutterCell.element.querySelector(\".ace_gutter_annotation\");\n var rect = gutterElement.getBoundingClientRect();\n var style = tooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n }\n else {\n moveTooltip(mouseEvent);\n }\n }\n }\n function hideTooltip() {\n if (tooltipTimeout)\n tooltipTimeout = clearTimeout(tooltipTimeout);\n if (tooltip.isOpen) {\n tooltip.hideTooltip();\n editor.off(\"mousewheel\", hideTooltip);\n }\n }\n function moveTooltip(e) {\n tooltip.setPosition(e.x, e.y);\n }\n mouseHandler.editor.setDefaultHandler(\"guttermousemove\", function (e) {\n var target = e.domEvent.target || e.domEvent.srcElement;\n if (dom.hasCssClass(target, \"ace_fold-widget\"))\n return hideTooltip();\n if (tooltip.isOpen && mouseHandler.$tooltipFollowsMouse)\n moveTooltip(e);\n mouseEvent = e;\n if (tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function () {\n tooltipTimeout = null;\n if (mouseEvent && !mouseHandler.isMousePressed)\n showTooltip();\n else\n hideTooltip();\n }, 50);\n });\n event.addListener(editor.renderer.$gutter, \"mouseout\", function (e) {\n mouseEvent = null;\n if (!tooltip.isOpen || tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function () {\n tooltipTimeout = null;\n hideTooltip();\n }, 50);\n }, editor);\n editor.on(\"changeSession\", hideTooltip);\n editor.on(\"input\", hideTooltip);\n}\nexports.GutterHandler = GutterHandler;\nvar GutterTooltip = /** @class */ (function (_super) {\n __extends(GutterTooltip, _super);\n function GutterTooltip(editor) {\n var _this = _super.call(this, editor.container) || this;\n _this.editor = editor;\n return _this;\n }\n GutterTooltip.prototype.setPosition = function (x, y) {\n var windowWidth = window.innerWidth || document.documentElement.clientWidth;\n var windowHeight = window.innerHeight || document.documentElement.clientHeight;\n var width = this.getWidth();\n var height = this.getHeight();\n x += 15;\n y += 15;\n if (x + width > windowWidth) {\n x -= (x + width) - windowWidth;\n }\n if (y + height > windowHeight) {\n y -= 20 + height;\n }\n Tooltip.prototype.setPosition.call(this, x, y);\n };\n Object.defineProperty(GutterTooltip, \"annotationLabels\", {\n get: function () {\n return {\n error: { singular: nls(\"error\"), plural: nls(\"errors\") },\n warning: { singular: nls(\"warning\"), plural: nls(\"warnings\") },\n info: { singular: nls(\"information message\"), plural: nls(\"information messages\") }\n };\n },\n enumerable: false,\n configurable: true\n });\n GutterTooltip.prototype.showTooltip = function (row) {\n var gutter = this.editor.renderer.$gutterLayer;\n var annotationsInRow = gutter.$annotations[row];\n var annotation;\n if (annotationsInRow)\n annotation = { text: Array.from(annotationsInRow.text), type: Array.from(annotationsInRow.type) };\n else\n annotation = { text: [], type: [] };\n var fold = gutter.session.getFoldLine(row);\n if (fold && gutter.$showFoldedAnnotations) {\n var annotationsInFold = { error: [], warning: [], info: [] };\n var mostSevereAnnotationInFoldType;\n for (var i = row + 1; i <= fold.end.row; i++) {\n if (!gutter.$annotations[i])\n continue;\n for (var j = 0; j < gutter.$annotations[i].text.length; j++) {\n var annotationType = gutter.$annotations[i].type[j];\n annotationsInFold[annotationType].push(gutter.$annotations[i].text[j]);\n if (annotationType === \"error\") {\n mostSevereAnnotationInFoldType = \"error_fold\";\n continue;\n }\n if (annotationType === \"warning\") {\n mostSevereAnnotationInFoldType = \"warning_fold\";\n continue;\n }\n }\n }\n if (mostSevereAnnotationInFoldType === \"error_fold\" || mostSevereAnnotationInFoldType === \"warning_fold\") {\n var summaryFoldedAnnotations = \"\".concat(GutterTooltip.annotationsToSummaryString(annotationsInFold), \" in folded code.\");\n annotation.text.push(summaryFoldedAnnotations);\n annotation.type.push(mostSevereAnnotationInFoldType);\n }\n }\n if (annotation.text.length === 0)\n return this.hide();\n var annotationMessages = { error: [], warning: [], info: [] };\n var iconClassName = gutter.$useSvgGutterIcons ? \"ace_icon_svg\" : \"ace_icon\";\n for (var i = 0; i < annotation.text.length; i++) {\n var line = \" \").concat(annotation.text[i]);\n annotationMessages[annotation.type[i].replace(\"_fold\", \"\")].push(line);\n }\n var tooltipContent = [].concat(annotationMessages.error, annotationMessages.warning, annotationMessages.info).join(\"
    \");\n this.setHtml(tooltipContent);\n this.$element.setAttribute(\"aria-live\", \"polite\");\n if (!this.isOpen) {\n this.setTheme(this.editor.renderer.theme);\n this.setClassName(\"ace_gutter-tooltip\");\n }\n this.show();\n this.editor._signal(\"showGutterTooltip\", this);\n };\n GutterTooltip.prototype.hideTooltip = function () {\n this.$element.removeAttribute(\"aria-live\");\n this.hide();\n this.editor._signal(\"hideGutterTooltip\", this);\n };\n GutterTooltip.annotationsToSummaryString = function (annotations) {\n var e_1, _a;\n var summary = [];\n var annotationTypes = ['error', 'warning', 'info'];\n try {\n for (var annotationTypes_1 = __values(annotationTypes), annotationTypes_1_1 = annotationTypes_1.next(); !annotationTypes_1_1.done; annotationTypes_1_1 = annotationTypes_1.next()) {\n var annotationType = annotationTypes_1_1.value;\n if (!annotations[annotationType].length)\n continue;\n var label = annotations[annotationType].length === 1 ? GutterTooltip.annotationLabels[annotationType].singular : GutterTooltip.annotationLabels[annotationType].plural;\n summary.push(\"\".concat(annotations[annotationType].length, \" \").concat(label));\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (annotationTypes_1_1 && !annotationTypes_1_1.done && (_a = annotationTypes_1.return)) _a.call(annotationTypes_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return summary.join(\", \");\n };\n return GutterTooltip;\n}(Tooltip));\nexports.GutterTooltip = GutterTooltip;\n\n});\n\nace.define(\"ace/mouse/mouse_event\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar MouseEvent = /** @class */ (function () {\n function MouseEvent(domEvent, editor) {\n this.domEvent = domEvent;\n this.editor = editor;\n this.x = this.clientX = domEvent.clientX;\n this.y = this.clientY = domEvent.clientY;\n this.$pos = null;\n this.$inSelection = null;\n this.propagationStopped = false;\n this.defaultPrevented = false;\n }\n MouseEvent.prototype.stopPropagation = function () {\n event.stopPropagation(this.domEvent);\n this.propagationStopped = true;\n };\n MouseEvent.prototype.preventDefault = function () {\n event.preventDefault(this.domEvent);\n this.defaultPrevented = true;\n };\n MouseEvent.prototype.stop = function () {\n this.stopPropagation();\n this.preventDefault();\n };\n MouseEvent.prototype.getDocumentPosition = function () {\n if (this.$pos)\n return this.$pos;\n this.$pos = this.editor.renderer.screenToTextCoordinates(this.clientX, this.clientY);\n return this.$pos;\n };\n MouseEvent.prototype.getGutterRow = function () {\n var documentRow = this.getDocumentPosition().row;\n var screenRow = this.editor.session.documentToScreenRow(documentRow, 0);\n var screenTopRow = this.editor.session.documentToScreenRow(this.editor.renderer.$gutterLayer.$lines.get(0).row, 0);\n return screenRow - screenTopRow;\n };\n MouseEvent.prototype.inSelection = function () {\n if (this.$inSelection !== null)\n return this.$inSelection;\n var editor = this.editor;\n var selectionRange = editor.getSelectionRange();\n if (selectionRange.isEmpty())\n this.$inSelection = false;\n else {\n var pos = this.getDocumentPosition();\n this.$inSelection = selectionRange.contains(pos.row, pos.column);\n }\n return this.$inSelection;\n };\n MouseEvent.prototype.getButton = function () {\n return event.getButton(this.domEvent);\n };\n MouseEvent.prototype.getShiftKey = function () {\n return this.domEvent.shiftKey;\n };\n MouseEvent.prototype.getAccelKey = function () {\n return useragent.isMac ? this.domEvent.metaKey : this.domEvent.ctrlKey;\n };\n return MouseEvent;\n}());\nexports.MouseEvent = MouseEvent;\n\n});\n\nace.define(\"ace/mouse/dragdrop_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar AUTOSCROLL_DELAY = 200;\nvar SCROLL_CURSOR_DELAY = 200;\nvar SCROLL_CURSOR_HYSTERESIS = 5;\nfunction DragdropHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var dragImage = dom.createElement(\"div\");\n dragImage.style.cssText = \"top:-100px;position:absolute;z-index:2147483647;opacity:0.5\";\n dragImage.textContent = \"\\xa0\";\n var exports = [\"dragWait\", \"dragWaitEnd\", \"startDrag\", \"dragReadyEnd\", \"onMouseDrag\"];\n exports.forEach(function (x) {\n mouseHandler[x] = this[x];\n }, this);\n editor.on(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n var mouseTarget = editor.container;\n var dragSelectionMarker, x, y;\n var timerId, range;\n var dragCursor, counter = 0;\n var dragOperation;\n var isInternal;\n var autoScrollStartTime;\n var cursorMovedTime;\n var cursorPointOnCaretMoved;\n this.onDragStart = function (e) {\n if (this.cancelDrag || !mouseTarget.draggable) {\n var self = this;\n setTimeout(function () {\n self.startSelect();\n self.captureMouse(e);\n }, 0);\n return e.preventDefault();\n }\n range = editor.getSelectionRange();\n var dataTransfer = e.dataTransfer;\n dataTransfer.effectAllowed = editor.getReadOnly() ? \"copy\" : \"copyMove\";\n editor.container.appendChild(dragImage);\n dataTransfer.setDragImage && dataTransfer.setDragImage(dragImage, 0, 0);\n setTimeout(function () {\n editor.container.removeChild(dragImage);\n });\n dataTransfer.clearData();\n dataTransfer.setData(\"Text\", editor.session.getTextRange());\n isInternal = true;\n this.setState(\"drag\");\n };\n this.onDragEnd = function (e) {\n mouseTarget.draggable = false;\n isInternal = false;\n this.setState(null);\n if (!editor.getReadOnly()) {\n var dropEffect = e.dataTransfer.dropEffect;\n if (!dragOperation && dropEffect == \"move\")\n editor.session.remove(editor.getSelectionRange());\n editor.$resetCursorStyle();\n }\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n };\n this.onDragEnter = function (e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker)\n addDragMarker();\n counter++;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n this.onDragOver = function (e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker) {\n addDragMarker();\n counter++;\n }\n if (onMouseMoveTimer !== null)\n onMouseMoveTimer = null;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n this.onDragLeave = function (e) {\n counter--;\n if (counter <= 0 && dragSelectionMarker) {\n clearDragMarker();\n dragOperation = null;\n return event.preventDefault(e);\n }\n };\n this.onDrop = function (e) {\n if (!dragCursor)\n return;\n var dataTransfer = e.dataTransfer;\n if (isInternal) {\n switch (dragOperation) {\n case \"move\":\n if (range.contains(dragCursor.row, dragCursor.column)) {\n range = {\n start: dragCursor,\n end: dragCursor\n };\n }\n else {\n range = editor.moveText(range, dragCursor);\n }\n break;\n case \"copy\":\n range = editor.moveText(range, dragCursor, true);\n break;\n }\n }\n else {\n var dropData = dataTransfer.getData('Text');\n range = {\n start: dragCursor,\n end: editor.session.insert(dragCursor, dropData)\n };\n editor.focus();\n dragOperation = null;\n }\n clearDragMarker();\n return event.preventDefault(e);\n };\n event.addListener(mouseTarget, \"dragstart\", this.onDragStart.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragend\", this.onDragEnd.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragenter\", this.onDragEnter.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragover\", this.onDragOver.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragleave\", this.onDragLeave.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"drop\", this.onDrop.bind(mouseHandler), editor);\n function scrollCursorIntoView(cursor, prevCursor) {\n var now = Date.now();\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n var hMovement = !prevCursor || cursor.column != prevCursor.column;\n if (!cursorMovedTime || vMovement || hMovement) {\n editor.moveCursorToPosition(cursor);\n cursorMovedTime = now;\n cursorPointOnCaretMoved = { x: x, y: y };\n }\n else {\n var distance = calcDistance(cursorPointOnCaretMoved.x, cursorPointOnCaretMoved.y, x, y);\n if (distance > SCROLL_CURSOR_HYSTERESIS) {\n cursorMovedTime = null;\n }\n else if (now - cursorMovedTime >= SCROLL_CURSOR_DELAY) {\n editor.renderer.scrollCursorIntoView();\n cursorMovedTime = null;\n }\n }\n }\n function autoScroll(cursor, prevCursor) {\n var now = Date.now();\n var lineHeight = editor.renderer.layerConfig.lineHeight;\n var characterWidth = editor.renderer.layerConfig.characterWidth;\n var editorRect = editor.renderer.scroller.getBoundingClientRect();\n var offsets = {\n x: {\n left: x - editorRect.left,\n right: editorRect.right - x\n },\n y: {\n top: y - editorRect.top,\n bottom: editorRect.bottom - y\n }\n };\n var nearestXOffset = Math.min(offsets.x.left, offsets.x.right);\n var nearestYOffset = Math.min(offsets.y.top, offsets.y.bottom);\n var scrollCursor = { row: cursor.row, column: cursor.column };\n if (nearestXOffset / characterWidth <= 2) {\n scrollCursor.column += (offsets.x.left < offsets.x.right ? -3 : +2);\n }\n if (nearestYOffset / lineHeight <= 1) {\n scrollCursor.row += (offsets.y.top < offsets.y.bottom ? -1 : +1);\n }\n var vScroll = cursor.row != scrollCursor.row;\n var hScroll = cursor.column != scrollCursor.column;\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n if (vScroll || (hScroll && !vMovement)) {\n if (!autoScrollStartTime)\n autoScrollStartTime = now;\n else if (now - autoScrollStartTime >= AUTOSCROLL_DELAY)\n editor.renderer.scrollCursorIntoView(scrollCursor);\n }\n else {\n autoScrollStartTime = null;\n }\n }\n function onDragInterval() {\n var prevCursor = dragCursor;\n dragCursor = editor.renderer.screenToTextCoordinates(x, y);\n scrollCursorIntoView(dragCursor, prevCursor);\n autoScroll(dragCursor, prevCursor);\n }\n function addDragMarker() {\n range = editor.selection.toOrientedRange();\n dragSelectionMarker = editor.session.addMarker(range, \"ace_selection\", editor.getSelectionStyle());\n editor.clearSelection();\n if (editor.isFocused())\n editor.renderer.$cursorLayer.setBlinking(false);\n clearInterval(timerId);\n onDragInterval();\n timerId = setInterval(onDragInterval, 20);\n counter = 0;\n event.addListener(document, \"mousemove\", onMouseMove);\n }\n function clearDragMarker() {\n clearInterval(timerId);\n editor.session.removeMarker(dragSelectionMarker);\n dragSelectionMarker = null;\n editor.selection.fromOrientedRange(range);\n if (editor.isFocused() && !isInternal)\n editor.$resetCursorStyle();\n range = null;\n dragCursor = null;\n counter = 0;\n autoScrollStartTime = null;\n cursorMovedTime = null;\n event.removeListener(document, \"mousemove\", onMouseMove);\n }\n var onMouseMoveTimer = null;\n function onMouseMove() {\n if (onMouseMoveTimer == null) {\n onMouseMoveTimer = setTimeout(function () {\n if (onMouseMoveTimer != null && dragSelectionMarker)\n clearDragMarker();\n }, 20);\n }\n }\n function canAccept(dataTransfer) {\n var types = dataTransfer.types;\n return !types || Array.prototype.some.call(types, function (type) {\n return type == 'text/plain' || type == 'Text';\n });\n }\n function getDropEffect(e) {\n var copyAllowed = ['copy', 'copymove', 'all', 'uninitialized'];\n var moveAllowed = ['move', 'copymove', 'linkmove', 'all', 'uninitialized'];\n var copyModifierState = useragent.isMac ? e.altKey : e.ctrlKey;\n var effectAllowed = \"uninitialized\";\n try {\n effectAllowed = e.dataTransfer.effectAllowed.toLowerCase();\n }\n catch (e) { }\n var dropEffect = \"none\";\n if (copyModifierState && copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n else if (moveAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"move\";\n else if (copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n return dropEffect;\n }\n}\n(function () {\n this.dragWait = function () {\n var interval = Date.now() - this.mousedownEvent.time;\n if (interval > this.editor.getDragDelay())\n this.startDrag();\n };\n this.dragWaitEnd = function () {\n var target = this.editor.container;\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n this.selectEnd();\n };\n this.dragReadyEnd = function (e) {\n this.editor.$resetCursorStyle();\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n this.dragWaitEnd();\n };\n this.startDrag = function () {\n this.cancelDrag = false;\n var editor = this.editor;\n var target = editor.container;\n target.draggable = true;\n editor.renderer.$cursorLayer.setBlinking(false);\n editor.setStyle(\"ace_dragging\");\n var cursorStyle = useragent.isWin ? \"default\" : \"move\";\n editor.renderer.setCursorStyle(cursorStyle);\n this.setState(\"dragReady\");\n };\n this.onMouseDrag = function (e) {\n var target = this.editor.container;\n if (useragent.isIE && this.state == \"dragReady\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 3)\n target.dragDrop();\n }\n if (this.state === \"dragWait\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 0) {\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n }\n }\n };\n this.onMouseDown = function (e) {\n if (!this.$dragEnabled)\n return;\n this.mousedownEvent = e;\n var editor = this.editor;\n var inSelection = e.inSelection();\n var button = e.getButton();\n var clickCount = e.domEvent.detail || 1;\n if (clickCount === 1 && button === 0 && inSelection) {\n if (e.editor.inMultiSelectMode && (e.getAccelKey() || e.getShiftKey()))\n return;\n this.mousedownEvent.time = Date.now();\n var eventTarget = e.domEvent.target || e.domEvent.srcElement;\n if (\"unselectable\" in eventTarget)\n eventTarget.unselectable = \"on\";\n if (editor.getDragDelay()) {\n if (useragent.isWebKit) {\n this.cancelDrag = true;\n var mouseTarget = editor.container;\n mouseTarget.draggable = true;\n }\n this.setState(\"dragWait\");\n }\n else {\n this.startDrag();\n }\n this.captureMouse(e, this.onMouseDrag.bind(this));\n e.defaultPrevented = true;\n }\n };\n}).call(DragdropHandler.prototype);\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\nexports.DragdropHandler = DragdropHandler;\n\n});\n\nace.define(\"ace/mouse/touch_handler\",[\"require\",\"exports\",\"module\",\"ace/mouse/mouse_event\",\"ace/lib/event\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar MouseEvent = require(\"./mouse_event\").MouseEvent;\nvar event = require(\"../lib/event\");\nvar dom = require(\"../lib/dom\");\nexports.addTouchListeners = function (el, editor) {\n var mode = \"scroll\";\n var startX;\n var startY;\n var touchStartT;\n var lastT;\n var longTouchTimer;\n var animationTimer;\n var animationSteps = 0;\n var pos;\n var clickCount = 0;\n var vX = 0;\n var vY = 0;\n var pressed;\n var contextMenu;\n function createContextMenu() {\n var clipboard = window.navigator && window.navigator.clipboard;\n var isOpen = false;\n var updateMenu = function () {\n var selected = editor.getCopyText();\n var hasUndo = editor.session.getUndoManager().hasUndo();\n contextMenu.replaceChild(dom.buildDom(isOpen ? [\"span\",\n !selected && [\"span\", { class: \"ace_mobile-button\", action: \"selectall\" }, \"Select All\"],\n selected && [\"span\", { class: \"ace_mobile-button\", action: \"copy\" }, \"Copy\"],\n selected && [\"span\", { class: \"ace_mobile-button\", action: \"cut\" }, \"Cut\"],\n clipboard && [\"span\", { class: \"ace_mobile-button\", action: \"paste\" }, \"Paste\"],\n hasUndo && [\"span\", { class: \"ace_mobile-button\", action: \"undo\" }, \"Undo\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"find\" }, \"Find\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"openCommandPalette\" }, \"Palette\"]\n ] : [\"span\"]), contextMenu.firstChild);\n };\n var handleClick = function (e) {\n var action = e.target.getAttribute(\"action\");\n if (action == \"more\" || !isOpen) {\n isOpen = !isOpen;\n return updateMenu();\n }\n if (action == \"paste\") {\n clipboard.readText().then(function (text) {\n editor.execCommand(action, text);\n });\n }\n else if (action) {\n if (action == \"cut\" || action == \"copy\") {\n if (clipboard)\n clipboard.writeText(editor.getCopyText());\n else\n document.execCommand(\"copy\");\n }\n editor.execCommand(action);\n }\n contextMenu.firstChild.style.display = \"none\";\n isOpen = false;\n if (action != \"openCommandPalette\")\n editor.focus();\n };\n contextMenu = dom.buildDom([\"div\",\n {\n class: \"ace_mobile-menu\",\n ontouchstart: function (e) {\n mode = \"menu\";\n e.stopPropagation();\n e.preventDefault();\n editor.textInput.focus();\n },\n ontouchend: function (e) {\n e.stopPropagation();\n e.preventDefault();\n handleClick(e);\n },\n onclick: handleClick\n },\n [\"span\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"more\" }, \"...\"]\n ], editor.container);\n }\n function showContextMenu() {\n if (!contextMenu)\n createContextMenu();\n var cursor = editor.selection.cursor;\n var pagePos = editor.renderer.textToScreenCoordinates(cursor.row, cursor.column);\n var leftOffset = editor.renderer.textToScreenCoordinates(0, 0).pageX;\n var scrollLeft = editor.renderer.scrollLeft;\n var rect = editor.container.getBoundingClientRect();\n contextMenu.style.top = pagePos.pageY - rect.top - 3 + \"px\";\n if (pagePos.pageX - rect.left < rect.width - 70) {\n contextMenu.style.left = \"\";\n contextMenu.style.right = \"10px\";\n }\n else {\n contextMenu.style.right = \"\";\n contextMenu.style.left = leftOffset + scrollLeft - rect.left + \"px\";\n }\n contextMenu.style.display = \"\";\n contextMenu.firstChild.style.display = \"none\";\n editor.on(\"input\", hideContextMenu);\n }\n function hideContextMenu(e) {\n if (contextMenu)\n contextMenu.style.display = \"none\";\n editor.off(\"input\", hideContextMenu);\n }\n function handleLongTap() {\n longTouchTimer = null;\n clearTimeout(longTouchTimer);\n var range = editor.selection.getRange();\n var inSelection = range.contains(pos.row, pos.column);\n if (range.isEmpty() || !inSelection) {\n editor.selection.moveToPosition(pos);\n editor.selection.selectWord();\n }\n mode = \"wait\";\n showContextMenu();\n }\n function switchToSelectionMode() {\n longTouchTimer = null;\n clearTimeout(longTouchTimer);\n editor.selection.moveToPosition(pos);\n var range = clickCount >= 2\n ? editor.selection.getLineRange(pos.row)\n : editor.session.getBracketRange(pos);\n if (range && !range.isEmpty()) {\n editor.selection.setRange(range);\n }\n else {\n editor.selection.selectWord();\n }\n mode = \"wait\";\n }\n event.addListener(el, \"contextmenu\", function (e) {\n if (!pressed)\n return;\n var textarea = editor.textInput.getElement();\n textarea.focus();\n }, editor);\n event.addListener(el, \"touchstart\", function (e) {\n var touches = e.touches;\n if (longTouchTimer || touches.length > 1) {\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n touchStartT = -1;\n mode = \"zoom\";\n return;\n }\n pressed = editor.$mouseHandler.isMousePressed = true;\n var h = editor.renderer.layerConfig.lineHeight;\n var w = editor.renderer.layerConfig.lineHeight;\n var t = e.timeStamp;\n lastT = t;\n var touchObj = touches[0];\n var x = touchObj.clientX;\n var y = touchObj.clientY;\n if (Math.abs(startX - x) + Math.abs(startY - y) > h)\n touchStartT = -1;\n startX = e.clientX = x;\n startY = e.clientY = y;\n vX = vY = 0;\n var ev = new MouseEvent(e, editor);\n pos = ev.getDocumentPosition();\n if (t - touchStartT < 500 && touches.length == 1 && !animationSteps) {\n clickCount++;\n e.preventDefault();\n e.button = 0;\n switchToSelectionMode();\n }\n else {\n clickCount = 0;\n var cursor = editor.selection.cursor;\n var anchor = editor.selection.isEmpty() ? cursor : editor.selection.anchor;\n var cursorPos = editor.renderer.$cursorLayer.getPixelPosition(cursor, true);\n var anchorPos = editor.renderer.$cursorLayer.getPixelPosition(anchor, true);\n var rect = editor.renderer.scroller.getBoundingClientRect();\n var offsetTop = editor.renderer.layerConfig.offset;\n var offsetLeft = editor.renderer.scrollLeft;\n var weightedDistance = function (x, y) {\n x = x / w;\n y = y / h - 0.75;\n return x * x + y * y;\n };\n if (e.clientX < rect.left) {\n mode = \"zoom\";\n return;\n }\n var diff1 = weightedDistance(e.clientX - rect.left - cursorPos.left + offsetLeft, e.clientY - rect.top - cursorPos.top + offsetTop);\n var diff2 = weightedDistance(e.clientX - rect.left - anchorPos.left + offsetLeft, e.clientY - rect.top - anchorPos.top + offsetTop);\n if (diff1 < 3.5 && diff2 < 3.5)\n mode = diff1 > diff2 ? \"cursor\" : \"anchor\";\n if (diff2 < 3.5)\n mode = \"anchor\";\n else if (diff1 < 3.5)\n mode = \"cursor\";\n else\n mode = \"scroll\";\n longTouchTimer = setTimeout(handleLongTap, 450);\n }\n touchStartT = t;\n }, editor);\n event.addListener(el, \"touchend\", function (e) {\n pressed = editor.$mouseHandler.isMousePressed = false;\n if (animationTimer)\n clearInterval(animationTimer);\n if (mode == \"zoom\") {\n mode = \"\";\n animationSteps = 0;\n }\n else if (longTouchTimer) {\n editor.selection.moveToPosition(pos);\n animationSteps = 0;\n showContextMenu();\n }\n else if (mode == \"scroll\") {\n animate();\n hideContextMenu();\n }\n else {\n showContextMenu();\n }\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n }, editor);\n event.addListener(el, \"touchmove\", function (e) {\n if (longTouchTimer) {\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n }\n var touches = e.touches;\n if (touches.length > 1 || mode == \"zoom\")\n return;\n var touchObj = touches[0];\n var wheelX = startX - touchObj.clientX;\n var wheelY = startY - touchObj.clientY;\n if (mode == \"wait\") {\n if (wheelX * wheelX + wheelY * wheelY > 4)\n mode = \"cursor\";\n else\n return e.preventDefault();\n }\n startX = touchObj.clientX;\n startY = touchObj.clientY;\n e.clientX = touchObj.clientX;\n e.clientY = touchObj.clientY;\n var t = e.timeStamp;\n var dt = t - lastT;\n lastT = t;\n if (mode == \"scroll\") {\n var mouseEvent = new MouseEvent(e, editor);\n mouseEvent.speed = 1;\n mouseEvent.wheelX = wheelX;\n mouseEvent.wheelY = wheelY;\n if (10 * Math.abs(wheelX) < Math.abs(wheelY))\n wheelX = 0;\n if (10 * Math.abs(wheelY) < Math.abs(wheelX))\n wheelY = 0;\n if (dt != 0) {\n vX = wheelX / dt;\n vY = wheelY / dt;\n }\n editor._emit(\"mousewheel\", mouseEvent);\n if (!mouseEvent.propagationStopped) {\n vX = vY = 0;\n }\n }\n else {\n var ev = new MouseEvent(e, editor);\n var pos = ev.getDocumentPosition();\n if (mode == \"cursor\")\n editor.selection.moveCursorToPosition(pos);\n else if (mode == \"anchor\")\n editor.selection.setSelectionAnchor(pos.row, pos.column);\n editor.renderer.scrollCursorIntoView(pos);\n e.preventDefault();\n }\n }, editor);\n function animate() {\n animationSteps += 60;\n animationTimer = setInterval(function () {\n if (animationSteps-- <= 0) {\n clearInterval(animationTimer);\n animationTimer = null;\n }\n if (Math.abs(vX) < 0.01)\n vX = 0;\n if (Math.abs(vY) < 0.01)\n vY = 0;\n if (animationSteps < 20)\n vX = 0.9 * vX;\n if (animationSteps < 20)\n vY = 0.9 * vY;\n var oldScrollTop = editor.session.getScrollTop();\n editor.renderer.scrollBy(10 * vX, 10 * vY);\n if (oldScrollTop == editor.session.getScrollTop())\n animationSteps = 0;\n }, 10);\n }\n};\n\n});\n\nace.define(\"ace/mouse/mouse_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/mouse/default_handlers\",\"ace/mouse/default_gutter_handler\",\"ace/mouse/mouse_event\",\"ace/mouse/dragdrop_handler\",\"ace/mouse/touch_handler\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar DefaultHandlers = require(\"./default_handlers\").DefaultHandlers;\nvar DefaultGutterHandler = require(\"./default_gutter_handler\").GutterHandler;\nvar MouseEvent = require(\"./mouse_event\").MouseEvent;\nvar DragdropHandler = require(\"./dragdrop_handler\").DragdropHandler;\nvar addTouchListeners = require(\"./touch_handler\").addTouchListeners;\nvar config = require(\"../config\");\nvar MouseHandler = /** @class */ (function () {\n function MouseHandler(editor) {\n var _self = this;\n this.editor = editor;\n new DefaultHandlers(this);\n new DefaultGutterHandler(this);\n new DragdropHandler(this);\n var focusEditor = function (e) {\n var windowBlurred = !document.hasFocus || !document.hasFocus()\n || !editor.isFocused() && document.activeElement == (editor.textInput && editor.textInput.getElement());\n if (windowBlurred)\n window.focus();\n editor.focus();\n setTimeout(function () {\n if (!editor.isFocused())\n editor.focus();\n });\n };\n var mouseTarget = editor.renderer.getMouseEventTarget();\n event.addListener(mouseTarget, \"click\", this.onMouseEvent.bind(this, \"click\"), editor);\n event.addListener(mouseTarget, \"mousemove\", this.onMouseMove.bind(this, \"mousemove\"), editor);\n event.addMultiMouseDownListener([\n mouseTarget,\n editor.renderer.scrollBarV && editor.renderer.scrollBarV.inner,\n editor.renderer.scrollBarH && editor.renderer.scrollBarH.inner,\n editor.textInput && editor.textInput.getElement()\n ].filter(Boolean), [400, 300, 250], this, \"onMouseEvent\", editor);\n event.addMouseWheelListener(editor.container, this.onMouseWheel.bind(this, \"mousewheel\"), editor);\n addTouchListeners(editor.container, editor);\n var gutterEl = editor.renderer.$gutter;\n event.addListener(gutterEl, \"mousedown\", this.onMouseEvent.bind(this, \"guttermousedown\"), editor);\n event.addListener(gutterEl, \"click\", this.onMouseEvent.bind(this, \"gutterclick\"), editor);\n event.addListener(gutterEl, \"dblclick\", this.onMouseEvent.bind(this, \"gutterdblclick\"), editor);\n event.addListener(gutterEl, \"mousemove\", this.onMouseEvent.bind(this, \"guttermousemove\"), editor);\n event.addListener(mouseTarget, \"mousedown\", focusEditor, editor);\n event.addListener(gutterEl, \"mousedown\", focusEditor, editor);\n if (useragent.isIE && editor.renderer.scrollBarV) {\n event.addListener(editor.renderer.scrollBarV.element, \"mousedown\", focusEditor, editor);\n event.addListener(editor.renderer.scrollBarH.element, \"mousedown\", focusEditor, editor);\n }\n editor.on(\"mousemove\", function (e) {\n if (_self.state || _self.$dragDelay || !_self.$dragEnabled)\n return;\n var character = editor.renderer.screenToTextCoordinates(e.x, e.y);\n var range = editor.session.selection.getRange();\n var renderer = editor.renderer;\n if (!range.isEmpty() && range.insideStart(character.row, character.column)) {\n renderer.setCursorStyle(\"default\");\n }\n else {\n renderer.setCursorStyle(\"\");\n }\n }, editor);\n }\n MouseHandler.prototype.onMouseEvent = function (name, e) {\n if (!this.editor.session)\n return;\n this.editor._emit(name, new MouseEvent(e, this.editor));\n };\n MouseHandler.prototype.onMouseMove = function (name, e) {\n var listeners = this.editor._eventRegistry && this.editor._eventRegistry.mousemove;\n if (!listeners || !listeners.length)\n return;\n this.editor._emit(name, new MouseEvent(e, this.editor));\n };\n MouseHandler.prototype.onMouseWheel = function (name, e) {\n var mouseEvent = new MouseEvent(e, this.editor);\n mouseEvent.speed = this.$scrollSpeed * 2;\n mouseEvent.wheelX = e.wheelX;\n mouseEvent.wheelY = e.wheelY;\n this.editor._emit(name, mouseEvent);\n };\n MouseHandler.prototype.setState = function (state) {\n this.state = state;\n };\n MouseHandler.prototype.captureMouse = function (ev, mouseMoveHandler) {\n this.x = ev.x;\n this.y = ev.y;\n this.isMousePressed = true;\n var editor = this.editor;\n var renderer = this.editor.renderer;\n renderer.$isMousePressed = true;\n var self = this;\n var onMouseMove = function (e) {\n if (!e)\n return;\n if (useragent.isWebKit && !e.which && self.releaseMouse)\n return self.releaseMouse();\n self.x = e.clientX;\n self.y = e.clientY;\n mouseMoveHandler && mouseMoveHandler(e);\n self.mouseEvent = new MouseEvent(e, self.editor);\n self.$mouseMoved = true;\n };\n var onCaptureEnd = function (e) {\n editor.off(\"beforeEndOperation\", onOperationEnd);\n clearInterval(timerId);\n if (editor.session)\n onCaptureInterval();\n self[self.state + \"End\"] && self[self.state + \"End\"](e);\n self.state = \"\";\n self.isMousePressed = renderer.$isMousePressed = false;\n if (renderer.$keepTextAreaAtCursor)\n renderer.$moveTextAreaToCursor();\n self.$onCaptureMouseMove = self.releaseMouse = null;\n e && self.onMouseEvent(\"mouseup\", e);\n editor.endOperation();\n };\n var onCaptureInterval = function () {\n self[self.state] && self[self.state]();\n self.$mouseMoved = false;\n };\n if (useragent.isOldIE && ev.domEvent.type == \"dblclick\") {\n return setTimeout(function () { onCaptureEnd(ev); });\n }\n var onOperationEnd = function (e) {\n if (!self.releaseMouse)\n return;\n if (editor.curOp.command.name && editor.curOp.selectionChanged) {\n self[self.state + \"End\"] && self[self.state + \"End\"]();\n self.state = \"\";\n self.releaseMouse();\n }\n };\n editor.on(\"beforeEndOperation\", onOperationEnd);\n editor.startOperation({ command: { name: \"mouse\" } });\n self.$onCaptureMouseMove = onMouseMove;\n self.releaseMouse = event.capture(this.editor.container, onMouseMove, onCaptureEnd);\n var timerId = setInterval(onCaptureInterval, 20);\n };\n MouseHandler.prototype.cancelContextMenu = function () {\n var stop = function (e) {\n if (e && e.domEvent && e.domEvent.type != \"contextmenu\")\n return;\n this.editor.off(\"nativecontextmenu\", stop);\n if (e && e.domEvent)\n event.stopEvent(e.domEvent);\n }.bind(this);\n setTimeout(stop, 10);\n this.editor.on(\"nativecontextmenu\", stop);\n };\n MouseHandler.prototype.destroy = function () {\n if (this.releaseMouse)\n this.releaseMouse();\n };\n return MouseHandler;\n}());\nMouseHandler.prototype.releaseMouse = null;\nconfig.defineOptions(MouseHandler.prototype, \"mouseHandler\", {\n scrollSpeed: { initialValue: 2 },\n dragDelay: { initialValue: (useragent.isMac ? 150 : 0) },\n dragEnabled: { initialValue: true },\n focusTimeout: { initialValue: 0 },\n tooltipFollowsMouse: { initialValue: true }\n});\nexports.MouseHandler = MouseHandler;\n\n});\n\nace.define(\"ace/mouse/fold_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar FoldHandler = /** @class */ (function () {\n function FoldHandler(editor) {\n editor.on(\"click\", function (e) {\n var position = e.getDocumentPosition();\n var session = editor.session;\n var fold = session.getFoldAt(position.row, position.column, 1);\n if (fold) {\n if (e.getAccelKey())\n session.removeFold(fold);\n else\n session.expandFold(fold);\n e.stop();\n }\n var target = e.domEvent && e.domEvent.target;\n if (target && dom.hasCssClass(target, \"ace_inline_button\")) {\n if (dom.hasCssClass(target, \"ace_toggle_wrap\")) {\n session.setOption(\"wrap\", !session.getUseWrapMode());\n editor.renderer.scrollCursorIntoView();\n }\n }\n });\n editor.on(\"gutterclick\", function (e) {\n var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n if (gutterRegion == \"foldWidgets\") {\n var row = e.getDocumentPosition().row;\n var session = editor.session;\n if (session.foldWidgets && session.foldWidgets[row])\n editor.session.onFoldWidgetClick(row, e);\n if (!editor.isFocused())\n editor.focus();\n e.stop();\n }\n });\n editor.on(\"gutterdblclick\", function (e) {\n var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n if (gutterRegion == \"foldWidgets\") {\n var row = e.getDocumentPosition().row;\n var session = editor.session;\n var data = session.getParentFoldRangeData(row, true);\n var range = data.range || data.firstRange;\n if (range) {\n row = range.start.row;\n var fold = session.getFoldAt(row, session.getLine(row).length, 1);\n if (fold) {\n session.removeFold(fold);\n }\n else {\n session.addFold(\"...\", range);\n editor.renderer.scrollCursorIntoView({ row: range.start.row, column: 0 });\n }\n }\n e.stop();\n }\n });\n }\n return FoldHandler;\n}());\nexports.FoldHandler = FoldHandler;\n\n});\n\nace.define(\"ace/keyboard/keybinding\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/event\"], function(require, exports, module){\"use strict\";\nvar keyUtil = require(\"../lib/keys\");\nvar event = require(\"../lib/event\");\nvar KeyBinding = /** @class */ (function () {\n function KeyBinding(editor) {\n this.$editor = editor;\n this.$data = { editor: editor };\n this.$handlers = [];\n this.setDefaultHandler(editor.commands);\n }\n KeyBinding.prototype.setDefaultHandler = function (kb) {\n this.removeKeyboardHandler(this.$defaultHandler);\n this.$defaultHandler = kb;\n this.addKeyboardHandler(kb, 0);\n };\n KeyBinding.prototype.setKeyboardHandler = function (kb) {\n var h = this.$handlers;\n if (h[h.length - 1] == kb)\n return;\n while (h[h.length - 1] && h[h.length - 1] != this.$defaultHandler)\n this.removeKeyboardHandler(h[h.length - 1]);\n this.addKeyboardHandler(kb, 1);\n };\n KeyBinding.prototype.addKeyboardHandler = function (kb, pos) {\n if (!kb)\n return;\n if (typeof kb == \"function\" && !kb.handleKeyboard)\n kb.handleKeyboard = kb;\n var i = this.$handlers.indexOf(kb);\n if (i != -1)\n this.$handlers.splice(i, 1);\n if (pos == undefined)\n this.$handlers.push(kb);\n else\n this.$handlers.splice(pos, 0, kb);\n if (i == -1 && kb.attach)\n kb.attach(this.$editor);\n };\n KeyBinding.prototype.removeKeyboardHandler = function (kb) {\n var i = this.$handlers.indexOf(kb);\n if (i == -1)\n return false;\n this.$handlers.splice(i, 1);\n kb.detach && kb.detach(this.$editor);\n return true;\n };\n KeyBinding.prototype.getKeyboardHandler = function () {\n return this.$handlers[this.$handlers.length - 1];\n };\n KeyBinding.prototype.getStatusText = function () {\n var data = this.$data;\n var editor = data.editor;\n return this.$handlers.map(function (h) {\n return h.getStatusText && h.getStatusText(editor, data) || \"\";\n }).filter(Boolean).join(\" \");\n };\n KeyBinding.prototype.$callKeyboardHandlers = function (hashId, keyString, keyCode, e) {\n var toExecute;\n var success = false;\n var commands = this.$editor.commands;\n for (var i = this.$handlers.length; i--;) {\n toExecute = this.$handlers[i].handleKeyboard(this.$data, hashId, keyString, keyCode, e);\n if (!toExecute || !toExecute.command)\n continue;\n if (toExecute.command == \"null\") {\n success = true;\n }\n else {\n success = commands.exec(toExecute.command, this.$editor, toExecute.args, e);\n }\n if (success && e && hashId != -1 &&\n toExecute.passEvent != true && toExecute.command.passEvent != true) {\n event.stopEvent(e);\n }\n if (success)\n break;\n }\n if (!success && hashId == -1) {\n toExecute = { command: \"insertstring\" };\n success = commands.exec(\"insertstring\", this.$editor, keyString);\n }\n if (success && this.$editor._signal)\n this.$editor._signal(\"keyboardActivity\", toExecute);\n return success;\n };\n KeyBinding.prototype.onCommandKey = function (e, hashId, keyCode) {\n var keyString = keyUtil.keyCodeToString(keyCode);\n return this.$callKeyboardHandlers(hashId, keyString, keyCode, e);\n };\n KeyBinding.prototype.onTextInput = function (text) {\n return this.$callKeyboardHandlers(-1, text);\n };\n return KeyBinding;\n}());\nexports.KeyBinding = KeyBinding;\n\n});\n\nace.define(\"ace/lib/bidiutil\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar ArabicAlefBetIntervalsBegine = ['\\u0621', '\\u0641'];\nvar ArabicAlefBetIntervalsEnd = ['\\u063A', '\\u064a'];\nvar dir = 0, hiLevel = 0;\nvar lastArabic = false, hasUBAT_AL = false, hasUBAT_B = false, hasUBAT_S = false, hasBlockSep = false, hasSegSep = false;\nvar impTab_LTR = [ [0, 3, 0, 1, 0, 0, 0], [0, 3, 0, 1, 2, 2, 0], [0, 3, 0, 0x11, 2, 0, 1], [0, 3, 5, 5, 4, 1, 0], [0, 3, 0x15, 0x15, 4, 0, 1], [0, 3, 5, 5, 4, 2, 0]\n];\nvar impTab_RTL = [ [2, 0, 1, 1, 0, 1, 0], [2, 0, 1, 1, 0, 2, 0], [2, 0, 2, 1, 3, 2, 0], [2, 0, 2, 0x21, 3, 1, 1]\n];\nvar LTR = 0, RTL = 1;\nvar L = 0;\nvar R = 1;\nvar EN = 2;\nvar AN = 3;\nvar ON = 4;\nvar B = 5;\nvar S = 6;\nvar AL = 7;\nvar WS = 8;\nvar CS = 9;\nvar ES = 10;\nvar ET = 11;\nvar NSM = 12;\nvar LRE = 13;\nvar RLE = 14;\nvar PDF = 15;\nvar LRO = 16;\nvar RLO = 17;\nvar BN = 18;\nvar UnicodeTBL00 = [\n BN, BN, BN, BN, BN, BN, BN, BN, BN, S, B, S, WS, B, BN, BN,\n BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, B, B, B, S,\n WS, ON, ON, ET, ET, ET, ON, ON, ON, ON, ON, ES, CS, ES, CS, CS,\n EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, CS, ON, ON, ON, ON, ON,\n ON, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L,\n L, L, L, L, L, L, L, L, L, L, L, ON, ON, ON, ON, ON,\n ON, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L,\n L, L, L, L, L, L, L, L, L, L, L, ON, ON, ON, ON, BN,\n BN, BN, BN, BN, BN, B, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,\n BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,\n CS, ON, ET, ET, ET, ET, ON, ON, ON, ON, L, ON, ON, BN, ON, ON,\n ET, ET, EN, EN, ON, L, ON, ON, ON, EN, L, ON, ON, ON, ON, ON\n];\nvar UnicodeTBL20 = [\n WS, WS, WS, WS, WS, WS, WS, WS, WS, WS, WS, BN, BN, BN, L, R,\n ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, ON, ON, ON, ON, WS, B, LRE, RLE, PDF, LRO, RLO, CS,\n ET, ET, ET, ET, ET, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, CS, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, WS\n];\nfunction _computeLevels(chars, levels, len, charTypes) {\n var impTab = dir ? impTab_RTL : impTab_LTR, prevState = null, newClass = null, newLevel = null, newState = 0, action = null, cond = null, condPos = -1, i = null, ix = null, classes = [];\n if (!charTypes) {\n for (i = 0, charTypes = []; i < len; i++) {\n charTypes[i] = _getCharacterType(chars[i]);\n }\n }\n hiLevel = dir;\n lastArabic = false;\n hasUBAT_AL = false;\n hasUBAT_B = false;\n hasUBAT_S = false;\n for (ix = 0; ix < len; ix++) {\n prevState = newState;\n classes[ix] = newClass = _getCharClass(chars, charTypes, classes, ix);\n newState = impTab[prevState][newClass];\n action = newState & 0xF0;\n newState &= 0x0F;\n levels[ix] = newLevel = impTab[newState][5];\n if (action > 0) {\n if (action == 0x10) {\n for (i = condPos; i < ix; i++) {\n levels[i] = 1;\n }\n condPos = -1;\n }\n else {\n condPos = -1;\n }\n }\n cond = impTab[newState][6];\n if (cond) {\n if (condPos == -1) {\n condPos = ix;\n }\n }\n else {\n if (condPos > -1) {\n for (i = condPos; i < ix; i++) {\n levels[i] = newLevel;\n }\n condPos = -1;\n }\n }\n if (charTypes[ix] == B) {\n levels[ix] = 0;\n }\n hiLevel |= newLevel;\n }\n if (hasUBAT_S) {\n for (i = 0; i < len; i++) {\n if (charTypes[i] == S) {\n levels[i] = dir;\n for (var j = i - 1; j >= 0; j--) {\n if (charTypes[j] == WS) {\n levels[j] = dir;\n }\n else {\n break;\n }\n }\n }\n }\n }\n}\nfunction _invertLevel(lev, levels, _array) {\n if (hiLevel < lev) {\n return;\n }\n if (lev == 1 && dir == RTL && !hasUBAT_B) {\n _array.reverse();\n return;\n }\n var len = _array.length, start = 0, end, lo, hi, tmp;\n while (start < len) {\n if (levels[start] >= lev) {\n end = start + 1;\n while (end < len && levels[end] >= lev) {\n end++;\n }\n for (lo = start, hi = end - 1; lo < hi; lo++, hi--) {\n tmp = _array[lo];\n _array[lo] = _array[hi];\n _array[hi] = tmp;\n }\n start = end;\n }\n start++;\n }\n}\nfunction _getCharClass(chars, types, classes, ix) {\n var cType = types[ix], wType, nType, len, i;\n switch (cType) {\n case L:\n case R:\n lastArabic = false;\n case ON:\n case AN:\n return cType;\n case EN:\n return lastArabic ? AN : EN;\n case AL:\n lastArabic = true;\n hasUBAT_AL = true;\n return R;\n case WS:\n return ON;\n case CS:\n if (ix < 1 || (ix + 1) >= types.length ||\n ((wType = classes[ix - 1]) != EN && wType != AN) ||\n ((nType = types[ix + 1]) != EN && nType != AN)) {\n return ON;\n }\n if (lastArabic) {\n nType = AN;\n }\n return nType == wType ? nType : ON;\n case ES:\n wType = ix > 0 ? classes[ix - 1] : B;\n if (wType == EN && (ix + 1) < types.length && types[ix + 1] == EN) {\n return EN;\n }\n return ON;\n case ET:\n if (ix > 0 && classes[ix - 1] == EN) {\n return EN;\n }\n if (lastArabic) {\n return ON;\n }\n i = ix + 1;\n len = types.length;\n while (i < len && types[i] == ET) {\n i++;\n }\n if (i < len && types[i] == EN) {\n return EN;\n }\n return ON;\n case NSM:\n len = types.length;\n i = ix + 1;\n while (i < len && types[i] == NSM) {\n i++;\n }\n if (i < len) {\n var c = chars[ix], rtlCandidate = (c >= 0x0591 && c <= 0x08FF) || c == 0xFB1E;\n wType = types[i];\n if (rtlCandidate && (wType == R || wType == AL)) {\n return R;\n }\n }\n if (ix < 1 || (wType = types[ix - 1]) == B) {\n return ON;\n }\n return classes[ix - 1];\n case B:\n lastArabic = false;\n hasUBAT_B = true;\n return dir;\n case S:\n hasUBAT_S = true;\n return ON;\n case LRE:\n case RLE:\n case LRO:\n case RLO:\n case PDF:\n lastArabic = false;\n case BN:\n return ON;\n }\n}\nfunction _getCharacterType(ch) {\n var uc = ch.charCodeAt(0), hi = uc >> 8;\n if (hi == 0) {\n return ((uc > 0x00BF) ? L : UnicodeTBL00[uc]);\n }\n else if (hi == 5) {\n return (/[\\u0591-\\u05f4]/.test(ch) ? R : L);\n }\n else if (hi == 6) {\n if (/[\\u0610-\\u061a\\u064b-\\u065f\\u06d6-\\u06e4\\u06e7-\\u06ed]/.test(ch))\n return NSM;\n else if (/[\\u0660-\\u0669\\u066b-\\u066c]/.test(ch))\n return AN;\n else if (uc == 0x066A)\n return ET;\n else if (/[\\u06f0-\\u06f9]/.test(ch))\n return EN;\n else\n return AL;\n }\n else if (hi == 0x20 && uc <= 0x205F) {\n return UnicodeTBL20[uc & 0xFF];\n }\n else if (hi == 0xFE) {\n return (uc >= 0xFE70 ? AL : ON);\n }\n return ON;\n}\nfunction _isArabicDiacritics(ch) {\n return (ch >= '\\u064b' && ch <= '\\u0655');\n}\nexports.L = L;\nexports.R = R;\nexports.EN = EN;\nexports.ON_R = 3;\nexports.AN = 4;\nexports.R_H = 5;\nexports.B = 6;\nexports.RLE = 7;\nexports.DOT = \"\\xB7\";\nexports.doBidiReorder = function (text, textCharTypes, isRtl) {\n if (text.length < 2)\n return {};\n var chars = text.split(\"\"), logicalFromVisual = new Array(chars.length), bidiLevels = new Array(chars.length), levels = [];\n dir = isRtl ? RTL : LTR;\n _computeLevels(chars, levels, chars.length, textCharTypes);\n for (var i = 0; i < logicalFromVisual.length; logicalFromVisual[i] = i, i++)\n ;\n _invertLevel(2, levels, logicalFromVisual);\n _invertLevel(1, levels, logicalFromVisual);\n for (var i = 0; i < logicalFromVisual.length - 1; i++) { //fix levels to reflect character width\n if (textCharTypes[i] === AN) {\n levels[i] = exports.AN;\n }\n else if (levels[i] === R && ((textCharTypes[i] > AL && textCharTypes[i] < LRE)\n || textCharTypes[i] === ON || textCharTypes[i] === BN)) {\n levels[i] = exports.ON_R;\n }\n else if ((i > 0 && chars[i - 1] === '\\u0644') && /\\u0622|\\u0623|\\u0625|\\u0627/.test(chars[i])) {\n levels[i - 1] = levels[i] = exports.R_H;\n i++;\n }\n }\n if (chars[chars.length - 1] === exports.DOT)\n levels[chars.length - 1] = exports.B;\n if (chars[0] === '\\u202B')\n levels[0] = exports.RLE;\n for (var i = 0; i < logicalFromVisual.length; i++) {\n bidiLevels[i] = levels[logicalFromVisual[i]];\n }\n return { 'logicalFromVisual': logicalFromVisual, 'bidiLevels': bidiLevels };\n};\nexports.hasBidiCharacters = function (text, textCharTypes) {\n var ret = false;\n for (var i = 0; i < text.length; i++) {\n textCharTypes[i] = _getCharacterType(text.charAt(i));\n if (!ret && (textCharTypes[i] == R || textCharTypes[i] == AL || textCharTypes[i] == AN))\n ret = true;\n }\n return ret;\n};\nexports.getVisualFromLogicalIdx = function (logIdx, rowMap) {\n for (var i = 0; i < rowMap.logicalFromVisual.length; i++) {\n if (rowMap.logicalFromVisual[i] == logIdx)\n return i;\n }\n return 0;\n};\n\n});\n\nace.define(\"ace/bidihandler\",[\"require\",\"exports\",\"module\",\"ace/lib/bidiutil\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar bidiUtil = require(\"./lib/bidiutil\");\nvar lang = require(\"./lib/lang\");\nvar bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac\\u202B]/;\nvar BidiHandler = /** @class */ (function () {\n function BidiHandler(session) {\n this.session = session;\n this.bidiMap = {};\n this.currentRow = null;\n this.bidiUtil = bidiUtil;\n this.charWidths = [];\n this.EOL = \"\\xAC\";\n this.showInvisibles = true;\n this.isRtlDir = false;\n this.$isRtl = false;\n this.line = \"\";\n this.wrapIndent = 0;\n this.EOF = \"\\xB6\";\n this.RLE = \"\\u202B\";\n this.contentWidth = 0;\n this.fontMetrics = null;\n this.rtlLineOffset = 0;\n this.wrapOffset = 0;\n this.isMoveLeftOperation = false;\n this.seenBidi = bidiRE.test(session.getValue());\n }\n BidiHandler.prototype.isBidiRow = function (screenRow, docRow, splitIndex) {\n if (!this.seenBidi)\n return false;\n if (screenRow !== this.currentRow) {\n this.currentRow = screenRow;\n this.updateRowLine(docRow, splitIndex);\n this.updateBidiMap();\n }\n return this.bidiMap.bidiLevels;\n };\n BidiHandler.prototype.onChange = function (delta) {\n if (!this.seenBidi) {\n if (delta.action == \"insert\" && bidiRE.test(delta.lines.join(\"\\n\"))) {\n this.seenBidi = true;\n this.currentRow = null;\n }\n }\n else {\n this.currentRow = null;\n }\n };\n BidiHandler.prototype.getDocumentRow = function () {\n var docRow = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var index = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n if (index >= 0)\n docRow = this.session.$docRowCache[index];\n }\n return docRow;\n };\n BidiHandler.prototype.getSplitIndex = function () {\n var splitIndex = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var currentIndex, prevIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n while (this.currentRow - splitIndex > 0) {\n currentIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow - splitIndex - 1);\n if (currentIndex !== prevIndex)\n break;\n prevIndex = currentIndex;\n splitIndex++;\n }\n }\n else {\n splitIndex = this.currentRow;\n }\n return splitIndex;\n };\n BidiHandler.prototype.updateRowLine = function (docRow, splitIndex) {\n if (docRow === undefined)\n docRow = this.getDocumentRow();\n var isLastRow = (docRow === this.session.getLength() - 1), endOfLine = isLastRow ? this.EOF : this.EOL;\n this.wrapIndent = 0;\n this.line = this.session.getLine(docRow);\n this.isRtlDir = this.$isRtl || this.line.charAt(0) === this.RLE;\n if (this.session.$useWrapMode) {\n var splits = this.session.$wrapData[docRow];\n if (splits) {\n if (splitIndex === undefined)\n splitIndex = this.getSplitIndex();\n if (splitIndex > 0 && splits.length) {\n this.wrapIndent = splits.indent;\n this.wrapOffset = this.wrapIndent * this.charWidths[bidiUtil.L];\n this.line = (splitIndex < splits.length) ?\n this.line.substring(splits[splitIndex - 1], splits[splitIndex]) :\n this.line.substring(splits[splits.length - 1]);\n }\n else {\n this.line = this.line.substring(0, splits[splitIndex]);\n }\n if (splitIndex == splits.length) {\n this.line += (this.showInvisibles) ? endOfLine : bidiUtil.DOT;\n }\n }\n }\n else {\n this.line += this.showInvisibles ? endOfLine : bidiUtil.DOT;\n }\n var session = this.session, shift = 0, size;\n this.line = this.line.replace(/\\t|[\\u1100-\\u2029, \\u202F-\\uFFE6]/g, function (ch, i) {\n if (ch === '\\t' || session.isFullWidth(ch.charCodeAt(0))) {\n size = (ch === '\\t') ? session.getScreenTabSize(i + shift) : 2;\n shift += size - 1;\n return lang.stringRepeat(bidiUtil.DOT, size);\n }\n return ch;\n });\n if (this.isRtlDir) {\n this.fontMetrics.$main.textContent = (this.line.charAt(this.line.length - 1) == bidiUtil.DOT) ? this.line.substr(0, this.line.length - 1) : this.line;\n this.rtlLineOffset = this.contentWidth - this.fontMetrics.$main.getBoundingClientRect().width;\n }\n };\n BidiHandler.prototype.updateBidiMap = function () {\n var textCharTypes = [];\n if (bidiUtil.hasBidiCharacters(this.line, textCharTypes) || this.isRtlDir) {\n this.bidiMap = bidiUtil.doBidiReorder(this.line, textCharTypes, this.isRtlDir);\n }\n else {\n this.bidiMap = {};\n }\n };\n BidiHandler.prototype.markAsDirty = function () {\n this.currentRow = null;\n };\n BidiHandler.prototype.updateCharacterWidths = function (fontMetrics) {\n if (this.characterWidth === fontMetrics.$characterSize.width)\n return;\n this.fontMetrics = fontMetrics;\n var characterWidth = this.characterWidth = fontMetrics.$characterSize.width;\n var bidiCharWidth = fontMetrics.$measureCharWidth(\"\\u05d4\");\n this.charWidths[bidiUtil.L] = this.charWidths[bidiUtil.EN] = this.charWidths[bidiUtil.ON_R] = characterWidth;\n this.charWidths[bidiUtil.R] = this.charWidths[bidiUtil.AN] = bidiCharWidth;\n this.charWidths[bidiUtil.R_H] = bidiCharWidth * 0.45;\n this.charWidths[bidiUtil.B] = this.charWidths[bidiUtil.RLE] = 0;\n this.currentRow = null;\n };\n BidiHandler.prototype.setShowInvisibles = function (showInvisibles) {\n this.showInvisibles = showInvisibles;\n this.currentRow = null;\n };\n BidiHandler.prototype.setEolChar = function (eolChar) {\n this.EOL = eolChar;\n };\n BidiHandler.prototype.setContentWidth = function (width) {\n this.contentWidth = width;\n };\n BidiHandler.prototype.isRtlLine = function (row) {\n if (this.$isRtl)\n return true;\n if (row != undefined)\n return (this.session.getLine(row).charAt(0) == this.RLE);\n else\n return this.isRtlDir;\n };\n BidiHandler.prototype.setRtlDirection = function (editor, isRtlDir) {\n var cursor = editor.getCursorPosition();\n for (var row = editor.selection.getSelectionAnchor().row; row <= cursor.row; row++) {\n if (!isRtlDir && editor.session.getLine(row).charAt(0) === editor.session.$bidiHandler.RLE)\n editor.session.doc.removeInLine(row, 0, 1);\n else if (isRtlDir && editor.session.getLine(row).charAt(0) !== editor.session.$bidiHandler.RLE)\n editor.session.doc.insert({ column: 0, row: row }, editor.session.$bidiHandler.RLE);\n }\n };\n BidiHandler.prototype.getPosLeft = function (col) {\n col -= this.wrapIndent;\n var leftBoundary = (this.line.charAt(0) === this.RLE) ? 1 : 0;\n var logicalIdx = (col > leftBoundary) ? (this.session.getOverwrite() ? col : col - 1) : leftBoundary;\n var visualIdx = bidiUtil.getVisualFromLogicalIdx(logicalIdx, this.bidiMap), levels = this.bidiMap.bidiLevels, left = 0;\n if (!this.session.getOverwrite() && col <= leftBoundary && levels[visualIdx] % 2 !== 0)\n visualIdx++;\n for (var i = 0; i < visualIdx; i++) {\n left += this.charWidths[levels[i]];\n }\n if (!this.session.getOverwrite() && (col > leftBoundary) && (levels[visualIdx] % 2 === 0))\n left += this.charWidths[levels[visualIdx]];\n if (this.wrapIndent)\n left += this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n if (this.isRtlDir)\n left += this.rtlLineOffset;\n return left;\n };\n BidiHandler.prototype.getSelections = function (startCol, endCol) {\n var map = this.bidiMap, levels = map.bidiLevels, level, selections = [], offset = 0, selColMin = Math.min(startCol, endCol) - this.wrapIndent, selColMax = Math.max(startCol, endCol) - this.wrapIndent, isSelected = false, isSelectedPrev = false, selectionStart = 0;\n if (this.wrapIndent)\n offset += this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n for (var logIdx, visIdx = 0; visIdx < levels.length; visIdx++) {\n logIdx = map.logicalFromVisual[visIdx];\n level = levels[visIdx];\n isSelected = (logIdx >= selColMin) && (logIdx < selColMax);\n if (isSelected && !isSelectedPrev) {\n selectionStart = offset;\n }\n else if (!isSelected && isSelectedPrev) {\n selections.push({ left: selectionStart, width: offset - selectionStart });\n }\n offset += this.charWidths[level];\n isSelectedPrev = isSelected;\n }\n if (isSelected && (visIdx === levels.length)) {\n selections.push({ left: selectionStart, width: offset - selectionStart });\n }\n if (this.isRtlDir) {\n for (var i = 0; i < selections.length; i++) {\n selections[i].left += this.rtlLineOffset;\n }\n }\n return selections;\n };\n BidiHandler.prototype.offsetToCol = function (posX) {\n if (this.isRtlDir)\n posX -= this.rtlLineOffset;\n var logicalIdx = 0, posX = Math.max(posX, 0), offset = 0, visualIdx = 0, levels = this.bidiMap.bidiLevels, charWidth = this.charWidths[levels[visualIdx]];\n if (this.wrapIndent)\n posX -= this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n while (posX > offset + charWidth / 2) {\n offset += charWidth;\n if (visualIdx === levels.length - 1) {\n charWidth = 0;\n break;\n }\n charWidth = this.charWidths[levels[++visualIdx]];\n }\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && (levels[visualIdx] % 2 === 0)) {\n if (posX < offset)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n }\n else if (visualIdx > 0 && (levels[visualIdx - 1] % 2 === 0) && (levels[visualIdx] % 2 !== 0)) {\n logicalIdx = 1 + ((posX > offset) ? this.bidiMap.logicalFromVisual[visualIdx]\n : this.bidiMap.logicalFromVisual[visualIdx - 1]);\n }\n else if ((this.isRtlDir && visualIdx === levels.length - 1 && charWidth === 0 && (levels[visualIdx - 1] % 2 === 0))\n || (!this.isRtlDir && visualIdx === 0 && (levels[visualIdx] % 2 !== 0))) {\n logicalIdx = 1 + this.bidiMap.logicalFromVisual[visualIdx];\n }\n else {\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && charWidth !== 0)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n }\n if (logicalIdx === 0 && this.isRtlDir)\n logicalIdx++;\n return (logicalIdx + this.wrapIndent);\n };\n return BidiHandler;\n}());\nexports.BidiHandler = BidiHandler;\n\n});\n\nace.define(\"ace/selection\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar lang = require(\"./lib/lang\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Selection = /** @class */ (function () {\n function Selection(session) {\n this.session = session;\n this.doc = session.getDocument();\n this.clearSelection();\n this.cursor = this.lead = this.doc.createAnchor(0, 0);\n this.anchor = this.doc.createAnchor(0, 0);\n this.$silent = false;\n var self = this;\n this.cursor.on(\"change\", function (e) {\n self.$cursorChanged = true;\n if (!self.$silent)\n self._emit(\"changeCursor\");\n if (!self.$isEmpty && !self.$silent)\n self._emit(\"changeSelection\");\n if (!self.$keepDesiredColumnOnChange && e.old.column != e.value.column)\n self.$desiredColumn = null;\n });\n this.anchor.on(\"change\", function () {\n self.$anchorChanged = true;\n if (!self.$isEmpty && !self.$silent)\n self._emit(\"changeSelection\");\n });\n }\n Selection.prototype.isEmpty = function () {\n return this.$isEmpty || (this.anchor.row == this.lead.row &&\n this.anchor.column == this.lead.column);\n };\n Selection.prototype.isMultiLine = function () {\n return !this.$isEmpty && this.anchor.row != this.cursor.row;\n };\n Selection.prototype.getCursor = function () {\n return this.lead.getPosition();\n };\n Selection.prototype.setAnchor = function (row, column) {\n this.$isEmpty = false;\n this.anchor.setPosition(row, column);\n };\n Selection.prototype.getAnchor = function () {\n if (this.$isEmpty)\n return this.getSelectionLead();\n return this.anchor.getPosition();\n };\n Selection.prototype.getSelectionLead = function () {\n return this.lead.getPosition();\n };\n Selection.prototype.isBackwards = function () {\n var anchor = this.anchor;\n var lead = this.lead;\n return (anchor.row > lead.row || (anchor.row == lead.row && anchor.column > lead.column));\n };\n Selection.prototype.getRange = function () {\n var anchor = this.anchor;\n var lead = this.lead;\n if (this.$isEmpty)\n return Range.fromPoints(lead, lead);\n return this.isBackwards()\n ? Range.fromPoints(lead, anchor)\n : Range.fromPoints(anchor, lead);\n };\n Selection.prototype.clearSelection = function () {\n if (!this.$isEmpty) {\n this.$isEmpty = true;\n this._emit(\"changeSelection\");\n }\n };\n Selection.prototype.selectAll = function () {\n this.$setSelection(0, 0, Number.MAX_VALUE, Number.MAX_VALUE);\n };\n Selection.prototype.setRange = function (range, reverse) {\n var start = reverse ? range.end : range.start;\n var end = reverse ? range.start : range.end;\n this.$setSelection(start.row, start.column, end.row, end.column);\n };\n Selection.prototype.$setSelection = function (anchorRow, anchorColumn, cursorRow, cursorColumn) {\n if (this.$silent)\n return;\n var wasEmpty = this.$isEmpty;\n var wasMultiselect = this.inMultiSelectMode;\n this.$silent = true;\n this.$cursorChanged = this.$anchorChanged = false;\n this.anchor.setPosition(anchorRow, anchorColumn);\n this.cursor.setPosition(cursorRow, cursorColumn);\n this.$isEmpty = !Range.comparePoints(this.anchor, this.cursor);\n this.$silent = false;\n if (this.$cursorChanged)\n this._emit(\"changeCursor\");\n if (this.$cursorChanged || this.$anchorChanged || wasEmpty != this.$isEmpty || wasMultiselect)\n this._emit(\"changeSelection\");\n };\n Selection.prototype.$moveSelection = function (mover) {\n var lead = this.lead;\n if (this.$isEmpty)\n this.setSelectionAnchor(lead.row, lead.column);\n mover.call(this);\n };\n Selection.prototype.selectTo = function (row, column) {\n this.$moveSelection(function () {\n this.moveCursorTo(row, column);\n });\n };\n Selection.prototype.selectToPosition = function (pos) {\n this.$moveSelection(function () {\n this.moveCursorToPosition(pos);\n });\n };\n Selection.prototype.moveTo = function (row, column) {\n this.clearSelection();\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveToPosition = function (pos) {\n this.clearSelection();\n this.moveCursorToPosition(pos);\n };\n Selection.prototype.selectUp = function () {\n this.$moveSelection(this.moveCursorUp);\n };\n Selection.prototype.selectDown = function () {\n this.$moveSelection(this.moveCursorDown);\n };\n Selection.prototype.selectRight = function () {\n this.$moveSelection(this.moveCursorRight);\n };\n Selection.prototype.selectLeft = function () {\n this.$moveSelection(this.moveCursorLeft);\n };\n Selection.prototype.selectLineStart = function () {\n this.$moveSelection(this.moveCursorLineStart);\n };\n Selection.prototype.selectLineEnd = function () {\n this.$moveSelection(this.moveCursorLineEnd);\n };\n Selection.prototype.selectFileEnd = function () {\n this.$moveSelection(this.moveCursorFileEnd);\n };\n Selection.prototype.selectFileStart = function () {\n this.$moveSelection(this.moveCursorFileStart);\n };\n Selection.prototype.selectWordRight = function () {\n this.$moveSelection(this.moveCursorWordRight);\n };\n Selection.prototype.selectWordLeft = function () {\n this.$moveSelection(this.moveCursorWordLeft);\n };\n Selection.prototype.getWordRange = function (row, column) {\n if (typeof column == \"undefined\") {\n var cursor = row || this.lead;\n row = cursor.row;\n column = cursor.column;\n }\n return this.session.getWordRange(row, column);\n };\n Selection.prototype.selectWord = function () {\n this.setSelectionRange(this.getWordRange());\n };\n Selection.prototype.selectAWord = function () {\n var cursor = this.getCursor();\n var range = this.session.getAWordRange(cursor.row, cursor.column);\n this.setSelectionRange(range);\n };\n Selection.prototype.getLineRange = function (row, excludeLastChar) {\n var rowStart = typeof row == \"number\" ? row : this.lead.row;\n var rowEnd;\n var foldLine = this.session.getFoldLine(rowStart);\n if (foldLine) {\n rowStart = foldLine.start.row;\n rowEnd = foldLine.end.row;\n }\n else {\n rowEnd = rowStart;\n }\n if (excludeLastChar === true)\n return new Range(rowStart, 0, rowEnd, this.session.getLine(rowEnd).length);\n else\n return new Range(rowStart, 0, rowEnd + 1, 0);\n };\n Selection.prototype.selectLine = function () {\n this.setSelectionRange(this.getLineRange());\n };\n Selection.prototype.moveCursorUp = function () {\n this.moveCursorBy(-1, 0);\n };\n Selection.prototype.moveCursorDown = function () {\n this.moveCursorBy(1, 0);\n };\n Selection.prototype.wouldMoveIntoSoftTab = function (cursor, tabSize, direction) {\n var start = cursor.column;\n var end = cursor.column + tabSize;\n if (direction < 0) {\n start = cursor.column - tabSize;\n end = cursor.column;\n }\n return this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(start, end).split(\" \").length - 1 == tabSize;\n };\n Selection.prototype.moveCursorLeft = function () {\n var cursor = this.lead.getPosition(), fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n }\n else if (cursor.column === 0) {\n if (cursor.row > 0) {\n this.moveCursorTo(cursor.row - 1, this.doc.getLine(cursor.row - 1).length);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, -1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, -tabSize);\n }\n else {\n this.moveCursorBy(0, -1);\n }\n }\n };\n Selection.prototype.moveCursorRight = function () {\n var cursor = this.lead.getPosition(), fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, 1)) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n }\n else if (this.lead.column == this.doc.getLine(this.lead.row).length) {\n if (this.lead.row < this.doc.getLength() - 1) {\n this.moveCursorTo(this.lead.row + 1, 0);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n var cursor = this.lead;\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, 1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, tabSize);\n }\n else {\n this.moveCursorBy(0, 1);\n }\n }\n };\n Selection.prototype.moveCursorLineStart = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var screenRow = this.session.documentToScreenRow(row, column);\n var firstColumnPosition = this.session.screenToDocumentPosition(screenRow, 0);\n var beforeCursor = this.session.getDisplayLine(row, null, firstColumnPosition.row, firstColumnPosition.column);\n var leadingSpace = beforeCursor.match(/^\\s*/);\n if (leadingSpace[0].length != column && !this.session.$useEmacsStyleLineStart)\n firstColumnPosition.column += leadingSpace[0].length;\n this.moveCursorToPosition(firstColumnPosition);\n };\n Selection.prototype.moveCursorLineEnd = function () {\n var lead = this.lead;\n var lineEnd = this.session.getDocumentLastRowColumnPosition(lead.row, lead.column);\n if (this.lead.column == lineEnd.column) {\n var line = this.session.getLine(lineEnd.row);\n if (lineEnd.column == line.length) {\n var textEnd = line.search(/\\s+$/);\n if (textEnd > 0)\n lineEnd.column = textEnd;\n }\n }\n this.moveCursorTo(lineEnd.row, lineEnd.column);\n };\n Selection.prototype.moveCursorFileEnd = function () {\n var row = this.doc.getLength() - 1;\n var column = this.doc.getLine(row).length;\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveCursorFileStart = function () {\n this.moveCursorTo(0, 0);\n };\n Selection.prototype.moveCursorLongWordRight = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n return;\n }\n if (this.session.nonTokenRe.exec(rightOfCursor)) {\n column += this.session.nonTokenRe.lastIndex;\n this.session.nonTokenRe.lastIndex = 0;\n rightOfCursor = line.substring(column);\n }\n if (column >= line.length) {\n this.moveCursorTo(row, line.length);\n this.moveCursorRight();\n if (row < this.doc.getLength() - 1)\n this.moveCursorWordRight();\n return;\n }\n if (this.session.tokenRe.exec(rightOfCursor)) {\n column += this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveCursorLongWordLeft = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n return;\n }\n var str = this.session.getFoldStringAt(row, column, -1);\n if (str == null) {\n str = this.doc.getLine(row).substring(0, column);\n }\n var leftOfCursor = lang.stringReverse(str);\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n if (this.session.nonTokenRe.exec(leftOfCursor)) {\n column -= this.session.nonTokenRe.lastIndex;\n leftOfCursor = leftOfCursor.slice(this.session.nonTokenRe.lastIndex);\n this.session.nonTokenRe.lastIndex = 0;\n }\n if (column <= 0) {\n this.moveCursorTo(row, 0);\n this.moveCursorLeft();\n if (row > 0)\n this.moveCursorWordLeft();\n return;\n }\n if (this.session.tokenRe.exec(leftOfCursor)) {\n column -= this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n this.moveCursorTo(row, column);\n };\n Selection.prototype.$shortWordEndIndex = function (rightOfCursor) {\n var index = 0, ch;\n var whitespaceRe = /\\s/;\n var tokenRe = this.session.tokenRe;\n tokenRe.lastIndex = 0;\n if (this.session.tokenRe.exec(rightOfCursor)) {\n index = this.session.tokenRe.lastIndex;\n }\n else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index++;\n if (index < 1) {\n tokenRe.lastIndex = 0;\n while ((ch = rightOfCursor[index]) && !tokenRe.test(ch)) {\n tokenRe.lastIndex = 0;\n index++;\n if (whitespaceRe.test(ch)) {\n if (index > 2) {\n index--;\n break;\n }\n else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index++;\n if (index > 2)\n break;\n }\n }\n }\n }\n }\n tokenRe.lastIndex = 0;\n return index;\n };\n Selection.prototype.moveCursorShortWordRight = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold)\n return this.moveCursorTo(fold.end.row, fold.end.column);\n if (column == line.length) {\n var l = this.doc.getLength();\n do {\n row++;\n rightOfCursor = this.doc.getLine(row);\n } while (row < l && /^\\s*$/.test(rightOfCursor));\n if (!/^\\s+/.test(rightOfCursor))\n rightOfCursor = \"\";\n column = 0;\n }\n var index = this.$shortWordEndIndex(rightOfCursor);\n this.moveCursorTo(row, column + index);\n };\n Selection.prototype.moveCursorShortWordLeft = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1))\n return this.moveCursorTo(fold.start.row, fold.start.column);\n var line = this.session.getLine(row).substring(0, column);\n if (column === 0) {\n do {\n row--;\n line = this.doc.getLine(row);\n } while (row > 0 && /^\\s*$/.test(line));\n column = line.length;\n if (!/\\s+$/.test(line))\n line = \"\";\n }\n var leftOfCursor = lang.stringReverse(line);\n var index = this.$shortWordEndIndex(leftOfCursor);\n return this.moveCursorTo(row, column - index);\n };\n Selection.prototype.moveCursorWordRight = function () {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordRight();\n else\n this.moveCursorShortWordRight();\n };\n Selection.prototype.moveCursorWordLeft = function () {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordLeft();\n else\n this.moveCursorShortWordLeft();\n };\n Selection.prototype.moveCursorBy = function (rows, chars) {\n var screenPos = this.session.documentToScreenPosition(this.lead.row, this.lead.column);\n var offsetX;\n if (chars === 0) {\n if (rows !== 0) {\n if (this.session.$bidiHandler.isBidiRow(screenPos.row, this.lead.row)) {\n offsetX = this.session.$bidiHandler.getPosLeft(screenPos.column);\n screenPos.column = Math.round(offsetX / this.session.$bidiHandler.charWidths[0]);\n }\n else {\n offsetX = screenPos.column * this.session.$bidiHandler.charWidths[0];\n }\n }\n if (this.$desiredColumn)\n screenPos.column = this.$desiredColumn;\n else\n this.$desiredColumn = screenPos.column;\n }\n if (rows != 0 && this.session.lineWidgets && this.session.lineWidgets[this.lead.row]) {\n var widget = this.session.lineWidgets[this.lead.row];\n if (rows < 0)\n rows -= widget.rowsAbove || 0;\n else if (rows > 0)\n rows += widget.rowCount - (widget.rowsAbove || 0);\n }\n var docPos = this.session.screenToDocumentPosition(screenPos.row + rows, screenPos.column, offsetX);\n if (rows !== 0 && chars === 0 && docPos.row === this.lead.row && docPos.column === this.lead.column) {\n }\n this.moveCursorTo(docPos.row, docPos.column + chars, chars === 0);\n };\n Selection.prototype.moveCursorToPosition = function (position) {\n this.moveCursorTo(position.row, position.column);\n };\n Selection.prototype.moveCursorTo = function (row, column, keepDesiredColumn) {\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n row = fold.start.row;\n column = fold.start.column;\n }\n this.$keepDesiredColumnOnChange = true;\n var line = this.session.getLine(row);\n if (/[\\uDC00-\\uDFFF]/.test(line.charAt(column)) && line.charAt(column - 1)) {\n if (this.lead.row == row && this.lead.column == column + 1)\n column = column - 1;\n else\n column = column + 1;\n }\n this.lead.setPosition(row, column);\n this.$keepDesiredColumnOnChange = false;\n if (!keepDesiredColumn)\n this.$desiredColumn = null;\n };\n Selection.prototype.moveCursorToScreen = function (row, column, keepDesiredColumn) {\n var pos = this.session.screenToDocumentPosition(row, column);\n this.moveCursorTo(pos.row, pos.column, keepDesiredColumn);\n };\n Selection.prototype.detach = function () {\n this.lead.detach();\n this.anchor.detach();\n };\n Selection.prototype.fromOrientedRange = function (range) {\n this.setSelectionRange(range, range.cursor == range.start);\n this.$desiredColumn = range.desiredColumn || this.$desiredColumn;\n };\n Selection.prototype.toOrientedRange = function (range) {\n var r = this.getRange();\n if (range) {\n range.start.column = r.start.column;\n range.start.row = r.start.row;\n range.end.column = r.end.column;\n range.end.row = r.end.row;\n }\n else {\n range = r;\n }\n range.cursor = this.isBackwards() ? range.start : range.end;\n range.desiredColumn = this.$desiredColumn;\n return range;\n };\n Selection.prototype.getRangeOfMovements = function (func) {\n var start = this.getCursor();\n try {\n func(this);\n var end = this.getCursor();\n return Range.fromPoints(start, end);\n }\n catch (e) {\n return Range.fromPoints(start, start);\n }\n finally {\n this.moveCursorToPosition(start);\n }\n };\n Selection.prototype.toJSON = function () {\n if (this.rangeCount) {\n var data = this.ranges.map(function (r) {\n var r1 = r.clone();\n r1.isBackwards = r.cursor == r.start;\n return r1;\n });\n }\n else {\n var data = this.getRange();\n data.isBackwards = this.isBackwards();\n }\n return data;\n };\n Selection.prototype.fromJSON = function (data) {\n if (data.start == undefined) {\n if (this.rangeList && data.length > 1) {\n this.toSingleRange(data[0]);\n for (var i = data.length; i--;) {\n var r = Range.fromPoints(data[i].start, data[i].end);\n if (data[i].isBackwards)\n r.cursor = r.start;\n this.addRange(r, true);\n }\n return;\n }\n else {\n data = data[0];\n }\n }\n if (this.rangeList)\n this.toSingleRange(data);\n this.setSelectionRange(data, data.isBackwards);\n };\n Selection.prototype.isEqual = function (data) {\n if ((data.length || this.rangeCount) && data.length != this.rangeCount)\n return false;\n if (!data.length || !this.ranges)\n return this.getRange().isEqual(data);\n for (var i = this.ranges.length; i--;) {\n if (!this.ranges[i].isEqual(data[i]))\n return false;\n }\n return true;\n };\n return Selection;\n}());\nSelection.prototype.setSelectionAnchor = Selection.prototype.setAnchor;\nSelection.prototype.getSelectionAnchor = Selection.prototype.getAnchor;\nSelection.prototype.setSelectionRange = Selection.prototype.setRange;\noop.implement(Selection.prototype, EventEmitter);\nexports.Selection = Selection;\n\n});\n\nace.define(\"ace/tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/report_error\"], function(require, exports, module){\"use strict\";\nvar reportError = require(\"./lib/report_error\").reportError;\nvar MAX_TOKEN_COUNT = 2000;\nvar Tokenizer = /** @class */ (function () {\n function Tokenizer(rules) {\n this.states = rules;\n this.regExps = {};\n this.matchMappings = {};\n for (var key in this.states) {\n var state = this.states[key];\n var ruleRegExps = [];\n var matchTotal = 0;\n var mapping = this.matchMappings[key] = { defaultToken: \"text\" };\n var flag = \"g\";\n var splitterRurles = [];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.defaultToken)\n mapping.defaultToken = rule.defaultToken;\n if (rule.caseInsensitive && flag.indexOf(\"i\") === -1)\n flag += \"i\";\n if (rule.unicode && flag.indexOf(\"u\") === -1)\n flag += \"u\";\n if (rule.regex == null)\n continue;\n if (rule.regex instanceof RegExp)\n rule.regex = rule.regex.toString().slice(1, -1);\n var adjustedregex = rule.regex;\n var matchcount = new RegExp(\"(?:(\" + adjustedregex + \")|(.))\").exec(\"a\").length - 2;\n if (Array.isArray(rule.token)) {\n if (rule.token.length == 1 || matchcount == 1) {\n rule.token = rule.token[0];\n }\n else if (matchcount - 1 != rule.token.length) {\n this.reportError(\"number of classes and regexp groups doesn't match\", {\n rule: rule,\n groupCount: matchcount - 1\n });\n rule.token = rule.token[0];\n }\n else {\n rule.tokenArray = rule.token;\n rule.token = null;\n rule.onMatch = this.$arrayTokens;\n }\n }\n else if (typeof rule.token == \"function\" && !rule.onMatch) {\n if (matchcount > 1)\n rule.onMatch = this.$applyToken;\n else\n rule.onMatch = rule.token;\n }\n if (matchcount > 1) {\n if (/\\\\\\d/.test(rule.regex)) {\n adjustedregex = rule.regex.replace(/\\\\([0-9]+)/g, function (match, digit) {\n return \"\\\\\" + (parseInt(digit, 10) + matchTotal + 1);\n });\n }\n else {\n matchcount = 1;\n adjustedregex = this.removeCapturingGroups(rule.regex);\n }\n if (!rule.splitRegex && typeof rule.token != \"string\")\n splitterRurles.push(rule); // flag will be known only at the very end\n }\n mapping[matchTotal] = i;\n matchTotal += matchcount;\n ruleRegExps.push(adjustedregex);\n if (!rule.onMatch)\n rule.onMatch = null;\n }\n if (!ruleRegExps.length) {\n mapping[0] = 0;\n ruleRegExps.push(\"$\");\n }\n splitterRurles.forEach(function (rule) {\n rule.splitRegex = this.createSplitterRegexp(rule.regex, flag);\n }, this);\n this.regExps[key] = new RegExp(\"(\" + ruleRegExps.join(\")|(\") + \")|($)\", flag);\n }\n }\n Tokenizer.prototype.$setMaxTokenCount = function (m) {\n MAX_TOKEN_COUNT = m | 0;\n };\n Tokenizer.prototype.$applyToken = function (str) {\n var values = this.splitRegex.exec(str).slice(1);\n var types = this.token.apply(this, values);\n if (typeof types === \"string\")\n return [{ type: types, value: str }];\n var tokens = [];\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i]\n };\n }\n return tokens;\n };\n Tokenizer.prototype.$arrayTokens = function (str) {\n if (!str)\n return [];\n var values = this.splitRegex.exec(str);\n if (!values)\n return \"text\";\n var tokens = [];\n var types = this.tokenArray;\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i + 1])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i + 1]\n };\n }\n return tokens;\n };\n Tokenizer.prototype.removeCapturingGroups = function (src) {\n var r = src.replace(/\\\\.|\\[(?:\\\\.|[^\\\\\\]])*|\\(\\?[:=!<]|(\\()/g, function (x, y) { return y ? \"(?:\" : x; });\n return r;\n };\n Tokenizer.prototype.createSplitterRegexp = function (src, flag) {\n if (src.indexOf(\"(?=\") != -1) {\n var stack = 0;\n var inChClass = false;\n var lastCapture = {};\n src.replace(/(\\\\.)|(\\((?:\\?[=!])?)|(\\))|([\\[\\]])/g, function (m, esc, parenOpen, parenClose, square, index) {\n if (inChClass) {\n inChClass = square != \"]\";\n }\n else if (square) {\n inChClass = true;\n }\n else if (parenClose) {\n if (stack == lastCapture.stack) {\n lastCapture.end = index + 1;\n lastCapture.stack = -1;\n }\n stack--;\n }\n else if (parenOpen) {\n stack++;\n if (parenOpen.length != 1) {\n lastCapture.stack = stack;\n lastCapture.start = index;\n }\n }\n return m;\n });\n if (lastCapture.end != null && /^\\)*$/.test(src.substr(lastCapture.end)))\n src = src.substring(0, lastCapture.start) + src.substr(lastCapture.end);\n }\n if (src.charAt(0) != \"^\")\n src = \"^\" + src;\n if (src.charAt(src.length - 1) != \"$\")\n src += \"$\";\n return new RegExp(src, (flag || \"\").replace(\"g\", \"\"));\n };\n Tokenizer.prototype.getLineTokens = function (line, startState) {\n if (startState && typeof startState != \"string\") {\n var stack = startState.slice(0);\n startState = stack[0];\n if (startState === \"#tmp\") {\n stack.shift();\n startState = stack.shift();\n }\n }\n else\n var stack = [];\n var currentState = startState || \"start\";\n var state = this.states[currentState];\n if (!state) {\n currentState = \"start\";\n state = this.states[currentState];\n }\n var mapping = this.matchMappings[currentState];\n var re = this.regExps[currentState];\n re.lastIndex = 0;\n var match, tokens = [];\n var lastIndex = 0;\n var matchAttempts = 0;\n var token = { type: null, value: \"\" };\n while (match = re.exec(line)) {\n var type = mapping.defaultToken;\n var rule = null;\n var value = match[0];\n var index = re.lastIndex;\n if (index - value.length > lastIndex) {\n var skipped = line.substring(lastIndex, index - value.length);\n if (token.type == type) {\n token.value += skipped;\n }\n else {\n if (token.type)\n tokens.push(token);\n token = { type: type, value: skipped };\n }\n }\n for (var i = 0; i < match.length - 2; i++) {\n if (match[i + 1] === undefined)\n continue;\n rule = state[mapping[i]];\n if (rule.onMatch)\n type = rule.onMatch(value, currentState, stack, line);\n else\n type = rule.token;\n if (rule.next) {\n if (typeof rule.next == \"string\") {\n currentState = rule.next;\n }\n else {\n currentState = rule.next(currentState, stack);\n }\n state = this.states[currentState];\n if (!state) {\n this.reportError(\"state doesn't exist\", currentState);\n currentState = \"start\";\n state = this.states[currentState];\n }\n mapping = this.matchMappings[currentState];\n lastIndex = index;\n re = this.regExps[currentState];\n re.lastIndex = index;\n }\n if (rule.consumeLineEnd)\n lastIndex = index;\n break;\n }\n if (value) {\n if (typeof type === \"string\") {\n if ((!rule || rule.merge !== false) && token.type === type) {\n token.value += value;\n }\n else {\n if (token.type)\n tokens.push(token);\n token = { type: type, value: value };\n }\n }\n else if (type) {\n if (token.type)\n tokens.push(token);\n token = { type: null, value: \"\" };\n for (var i = 0; i < type.length; i++)\n tokens.push(type[i]);\n }\n }\n if (lastIndex == line.length)\n break;\n lastIndex = index;\n if (matchAttempts++ > MAX_TOKEN_COUNT) {\n if (matchAttempts > 2 * line.length) {\n this.reportError(\"infinite loop with in ace tokenizer\", {\n startState: startState,\n line: line\n });\n }\n while (lastIndex < line.length) {\n if (token.type)\n tokens.push(token);\n token = {\n value: line.substring(lastIndex, lastIndex += 500),\n type: \"overflow\"\n };\n }\n currentState = \"start\";\n stack = [];\n break;\n }\n }\n if (token.type)\n tokens.push(token);\n if (stack.length > 1) {\n if (stack[0] !== currentState)\n stack.unshift(\"#tmp\", currentState);\n }\n return {\n tokens: tokens,\n state: stack.length ? stack : currentState\n };\n };\n return Tokenizer;\n}());\nTokenizer.prototype.reportError = reportError;\nexports.Tokenizer = Tokenizer;\n\n});\n\nace.define(\"ace/mode/text_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/deep_copy\"], function(require, exports, module){\"use strict\";\nvar deepCopy = require(\"../lib/deep_copy\").deepCopy;\nvar TextHighlightRules = function () {\n this.$rules = {\n \"start\": [{\n token: \"empty_line\",\n regex: '^$'\n }, {\n defaultToken: \"text\"\n }]\n };\n};\n(function () {\n this.addRules = function (rules, prefix) {\n if (!prefix) {\n for (var key in rules)\n this.$rules[key] = rules[key];\n return;\n }\n for (var key in rules) {\n var state = rules[key];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.next || rule.onMatch) {\n if (typeof rule.next == \"string\") {\n if (rule.next.indexOf(prefix) !== 0)\n rule.next = prefix + rule.next;\n }\n if (rule.nextState && rule.nextState.indexOf(prefix) !== 0)\n rule.nextState = prefix + rule.nextState;\n }\n }\n this.$rules[prefix + key] = state;\n }\n };\n this.getRules = function () {\n return this.$rules;\n };\n this.embedRules = function (HighlightRules, prefix, escapeRules, states, append) {\n var embedRules = typeof HighlightRules == \"function\"\n ? new HighlightRules().getRules()\n : HighlightRules;\n if (states) {\n for (var i = 0; i < states.length; i++)\n states[i] = prefix + states[i];\n }\n else {\n states = [];\n for (var key in embedRules)\n states.push(prefix + key);\n }\n this.addRules(embedRules, prefix);\n if (escapeRules) {\n var addRules = Array.prototype[append ? \"push\" : \"unshift\"];\n for (var i = 0; i < states.length; i++)\n addRules.apply(this.$rules[states[i]], deepCopy(escapeRules));\n }\n if (!this.$embeds)\n this.$embeds = [];\n this.$embeds.push(prefix);\n };\n this.getEmbeds = function () {\n return this.$embeds;\n };\n var pushState = function (currentState, stack) {\n if (currentState != \"start\" || stack.length)\n stack.unshift(this.nextState, currentState);\n return this.nextState;\n };\n var popState = function (currentState, stack) {\n stack.shift();\n return stack.shift() || \"start\";\n };\n this.normalizeRules = function () {\n var id = 0;\n var rules = this.$rules;\n function processState(key) {\n var state = rules[key];\n state.processed = true;\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n var toInsert = null;\n if (Array.isArray(rule)) {\n toInsert = rule;\n rule = {};\n }\n if (!rule.regex && rule.start) {\n rule.regex = rule.start;\n if (!rule.next)\n rule.next = [];\n rule.next.push({\n defaultToken: rule.token\n }, {\n token: rule.token + \".end\",\n regex: rule.end || rule.start,\n next: \"pop\"\n });\n rule.token = rule.token + \".start\";\n rule.push = true;\n }\n var next = rule.next || rule.push;\n if (next && Array.isArray(next)) {\n var stateName = rule.stateName;\n if (!stateName) {\n stateName = rule.token;\n if (typeof stateName != \"string\")\n stateName = stateName[0] || \"\";\n if (rules[stateName])\n stateName += id++;\n }\n rules[stateName] = next;\n rule.next = stateName;\n processState(stateName);\n }\n else if (next == \"pop\") {\n rule.next = popState;\n }\n if (rule.push) {\n rule.nextState = rule.next || rule.push;\n rule.next = pushState;\n delete rule.push;\n }\n if (rule.rules) {\n for (var r in rule.rules) {\n if (rules[r]) {\n if (rules[r].push)\n rules[r].push.apply(rules[r], rule.rules[r]);\n }\n else {\n rules[r] = rule.rules[r];\n }\n }\n }\n var includeName = typeof rule == \"string\" ? rule : rule.include;\n if (includeName) {\n if (includeName === \"$self\")\n includeName = \"start\";\n if (Array.isArray(includeName))\n toInsert = includeName.map(function (x) { return rules[x]; });\n else\n toInsert = rules[includeName];\n }\n if (toInsert) {\n var args = [i, 1].concat(toInsert);\n if (rule.noEscape)\n args = args.filter(function (x) { return !x.next; });\n state.splice.apply(state, args);\n i--;\n }\n if (rule.keywordMap) {\n rule.token = this.createKeywordMapper(rule.keywordMap, rule.defaultToken || \"text\", rule.caseInsensitive);\n delete rule.defaultToken;\n }\n }\n }\n Object.keys(rules).forEach(processState, this);\n };\n this.createKeywordMapper = function (map, defaultToken, ignoreCase, splitChar) {\n var keywords = Object.create(null);\n this.$keywordList = [];\n Object.keys(map).forEach(function (className) {\n var a = map[className];\n var list = a.split(splitChar || \"|\");\n for (var i = list.length; i--;) {\n var word = list[i];\n this.$keywordList.push(word);\n if (ignoreCase)\n word = word.toLowerCase();\n keywords[word] = className;\n }\n }, this);\n map = null;\n return ignoreCase\n ? function (value) { return keywords[value.toLowerCase()] || defaultToken; }\n : function (value) { return keywords[value] || defaultToken; };\n };\n this.getKeywords = function () {\n return this.$keywords;\n };\n}).call(TextHighlightRules.prototype);\nexports.TextHighlightRules = TextHighlightRules;\n\n});\n\nace.define(\"ace/mode/behaviour\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar Behaviour = function () {\n this.$behaviours = {};\n};\n(function () {\n this.add = function (name, action, callback) {\n switch (undefined) {\n case this.$behaviours:\n this.$behaviours = {};\n case this.$behaviours[name]:\n this.$behaviours[name] = {};\n }\n this.$behaviours[name][action] = callback;\n };\n this.addBehaviours = function (behaviours) {\n for (var key in behaviours) {\n for (var action in behaviours[key]) {\n this.add(key, action, behaviours[key][action]);\n }\n }\n };\n this.remove = function (name) {\n if (this.$behaviours && this.$behaviours[name]) {\n delete this.$behaviours[name];\n }\n };\n this.inherit = function (mode, filter) {\n if (typeof mode === \"function\") {\n var behaviours = new mode().getBehaviours(filter);\n }\n else {\n var behaviours = mode.getBehaviours(filter);\n }\n this.addBehaviours(behaviours);\n };\n this.getBehaviours = function (filter) {\n if (!filter) {\n return this.$behaviours;\n }\n else {\n var ret = {};\n for (var i = 0; i < filter.length; i++) {\n if (this.$behaviours[filter[i]]) {\n ret[filter[i]] = this.$behaviours[filter[i]];\n }\n }\n return ret;\n }\n };\n}).call(Behaviour.prototype);\nexports.Behaviour = Behaviour;\n\n});\n\nace.define(\"ace/token_iterator\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar TokenIterator = /** @class */ (function () {\n function TokenIterator(session, initialRow, initialColumn) {\n this.$session = session;\n this.$row = initialRow;\n this.$rowTokens = session.getTokens(initialRow);\n var token = session.getTokenAt(initialRow, initialColumn);\n this.$tokenIndex = token ? token.index : -1;\n }\n TokenIterator.prototype.stepBackward = function () {\n this.$tokenIndex -= 1;\n while (this.$tokenIndex < 0) {\n this.$row -= 1;\n if (this.$row < 0) {\n this.$row = 0;\n return null;\n }\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = this.$rowTokens.length - 1;\n }\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.stepForward = function () {\n this.$tokenIndex += 1;\n var rowCount;\n while (this.$tokenIndex >= this.$rowTokens.length) {\n this.$row += 1;\n if (!rowCount)\n rowCount = this.$session.getLength();\n if (this.$row >= rowCount) {\n this.$row = rowCount - 1;\n return null;\n }\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = 0;\n }\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.getCurrentToken = function () {\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.getCurrentTokenRow = function () {\n return this.$row;\n };\n TokenIterator.prototype.getCurrentTokenColumn = function () {\n var rowTokens = this.$rowTokens;\n var tokenIndex = this.$tokenIndex;\n var column = rowTokens[tokenIndex].start;\n if (column !== undefined)\n return column;\n column = 0;\n while (tokenIndex > 0) {\n tokenIndex -= 1;\n column += rowTokens[tokenIndex].value.length;\n }\n return column;\n };\n TokenIterator.prototype.getCurrentTokenPosition = function () {\n return { row: this.$row, column: this.getCurrentTokenColumn() };\n };\n TokenIterator.prototype.getCurrentTokenRange = function () {\n var token = this.$rowTokens[this.$tokenIndex];\n var column = this.getCurrentTokenColumn();\n return new Range(this.$row, column, this.$row, column + token.value.length);\n };\n return TokenIterator;\n}());\nexports.TokenIterator = TokenIterator;\n\n});\n\nace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\nvar SAFE_INSERT_IN_TOKENS = [\"text\", \"paren.rparen\", \"rparen\", \"paren\", \"punctuation.operator\"];\nvar SAFE_INSERT_BEFORE_TOKENS = [\"text\", \"paren.rparen\", \"rparen\", \"paren\", \"punctuation.operator\", \"comment\"];\nvar context;\nvar contextCache = {};\nvar defaultQuotes = { '\"': '\"', \"'\": \"'\" };\nvar initContext = function (editor) {\n var id = -1;\n if (editor.multiSelect) {\n id = editor.selection.index;\n if (contextCache.rangeCount != editor.multiSelect.rangeCount)\n contextCache = { rangeCount: editor.multiSelect.rangeCount };\n }\n if (contextCache[id])\n return context = contextCache[id];\n context = contextCache[id] = {\n autoInsertedBrackets: 0,\n autoInsertedRow: -1,\n autoInsertedLineEnd: \"\",\n maybeInsertedBrackets: 0,\n maybeInsertedRow: -1,\n maybeInsertedLineStart: \"\",\n maybeInsertedLineEnd: \"\"\n };\n};\nvar getWrapped = function (selection, selected, opening, closing) {\n var rowDiff = selection.end.row - selection.start.row;\n return {\n text: opening + selected + closing,\n selection: [\n 0,\n selection.start.column + 1,\n rowDiff,\n selection.end.column + (rowDiff ? 0 : 1)\n ]\n };\n};\nvar CstyleBehaviour = function (options) {\n options = options || {};\n this.add(\"braces\", \"insertion\", function (state, action, editor, session, text) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (text == '{') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"{\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '{', '}');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n if (/[\\]\\}\\)]/.test(line[cursor.column]) || editor.inMultiSelectMode || options.braces) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"}\");\n return {\n text: '{}',\n selection: [1, 1]\n };\n }\n else {\n CstyleBehaviour.recordMaybeInsert(editor, session, \"{\");\n return {\n text: '{',\n selection: [1, 1]\n };\n }\n }\n }\n else if (text == '}') {\n initContext(editor);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == '}') {\n var matching = session.$findOpeningBracket('}', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n else if (text == \"\\n\" || text == \"\\r\\n\") {\n initContext(editor);\n var closing = \"\";\n if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {\n closing = lang.stringRepeat(\"}\", context.maybeInsertedBrackets);\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === '}') {\n var openBracePos = session.findMatchingBracket({ row: cursor.row, column: cursor.column + 1 }, '}');\n if (!openBracePos)\n return null;\n var next_indent = this.$getIndent(session.getLine(openBracePos.row));\n }\n else if (closing) {\n var next_indent = this.$getIndent(line);\n }\n else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n return;\n }\n var indent = next_indent + session.getTabString();\n return {\n text: '\\n' + indent + '\\n' + next_indent + closing,\n selection: [1, indent.length, 1, indent.length]\n };\n }\n else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n });\n this.add(\"braces\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '{') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar == '}') {\n range.end.column++;\n return range;\n }\n else {\n context.maybeInsertedBrackets--;\n }\n }\n });\n this.add(\"parens\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '(') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '(', ')');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \")\");\n return {\n text: '()',\n selection: [1, 1]\n };\n }\n }\n else if (text == ')') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ')') {\n var matching = session.$findOpeningBracket(')', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"parens\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '(') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ')') {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"brackets\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '[') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '[', ']');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"]\");\n return {\n text: '[]',\n selection: [1, 1]\n };\n }\n }\n else if (text == ']') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ']') {\n var matching = session.$findOpeningBracket(']', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"brackets\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '[') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ']') {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n var quotes = session.$mode.$quotes || defaultQuotes;\n if (text.length == 1 && quotes[text]) {\n if (this.lineCommentStart && this.lineCommentStart.indexOf(text) != -1)\n return;\n initContext(editor);\n var quote = text;\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && (selected.length != 1 || !quotes[selected]) && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, quote, quote);\n }\n else if (!selected) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var leftChar = line.substring(cursor.column - 1, cursor.column);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n var token = session.getTokenAt(cursor.row, cursor.column);\n var rightToken = session.getTokenAt(cursor.row, cursor.column + 1);\n if (leftChar == \"\\\\\" && token && /escape/.test(token.type))\n return null;\n var stringBefore = token && /string|escape/.test(token.type);\n var stringAfter = !rightToken || /string|escape/.test(rightToken.type);\n var pair;\n if (rightChar == quote) {\n pair = stringBefore !== stringAfter;\n if (pair && /string\\.end/.test(rightToken.type))\n pair = false;\n }\n else {\n if (stringBefore && !stringAfter)\n return null; // wrap string with different quote\n if (stringBefore && stringAfter)\n return null; // do not pair quotes inside strings\n var wordRe = session.$mode.tokenRe;\n wordRe.lastIndex = 0;\n var isWordBefore = wordRe.test(leftChar);\n wordRe.lastIndex = 0;\n var isWordAfter = wordRe.test(rightChar);\n var pairQuotesAfter = session.$mode.$pairQuotesAfter;\n var shouldPairQuotes = pairQuotesAfter && pairQuotesAfter[quote] && pairQuotesAfter[quote].test(leftChar);\n if ((!shouldPairQuotes && isWordBefore) || isWordAfter)\n return null; // before or after alphanumeric\n if (rightChar && !/[\\s;,.})\\]\\\\]/.test(rightChar))\n return null; // there is rightChar and it isn't closing\n var charBefore = line[cursor.column - 2];\n if (leftChar == quote && (charBefore == quote || wordRe.test(charBefore)))\n return null;\n pair = true;\n }\n return {\n text: pair ? quote + quote : \"\",\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"string_dquotes\", \"deletion\", function (state, action, editor, session, range) {\n var quotes = session.$mode.$quotes || defaultQuotes;\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && quotes.hasOwnProperty(selected)) {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n if (options.closeDocComment !== false) {\n this.add(\"doc comment end\", \"insertion\", function (state, action, editor, session, text) {\n if (state === \"doc-start\" && (text === \"\\n\" || text === \"\\r\\n\") && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var nextLine = session.doc.getLine(cursor.row + 1);\n var indent = this.$getIndent(line);\n if (/\\s*\\*/.test(nextLine)) {\n if (/^\\s*\\*/.test(line)) {\n return {\n text: text + indent + \"* \",\n selection: [1, 3 + indent.length, 1, 3 + indent.length]\n };\n }\n else {\n return {\n text: text + indent + \" * \",\n selection: [1, 3 + indent.length, 1, 3 + indent.length]\n };\n }\n }\n if (/\\/\\*\\*/.test(line.substring(0, cursor.column))) {\n return {\n text: text + indent + \" * \" + text + \" \" + indent + \"*/\",\n selection: [1, 4 + indent.length, 1, 4 + indent.length]\n };\n }\n }\n });\n }\n};\nCstyleBehaviour.isSaneInsertion = function (editor, session) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n if (!this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS)) {\n if (/[)}\\]]/.test(editor.session.getLine(cursor.row)[cursor.column]))\n return true;\n var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);\n if (!this.$matchTokenType(iterator2.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS))\n return false;\n }\n iterator.stepForward();\n return iterator.getCurrentTokenRow() !== cursor.row ||\n this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_BEFORE_TOKENS);\n};\nCstyleBehaviour.$matchTokenType = function (token, types) {\n return types.indexOf(token.type || token) > -1;\n};\nCstyleBehaviour.recordAutoInsert = function (editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))\n context.autoInsertedBrackets = 0;\n context.autoInsertedRow = cursor.row;\n context.autoInsertedLineEnd = bracket + line.substr(cursor.column);\n context.autoInsertedBrackets++;\n};\nCstyleBehaviour.recordMaybeInsert = function (editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isMaybeInsertedClosing(cursor, line))\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = cursor.row;\n context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;\n context.maybeInsertedLineEnd = line.substr(cursor.column);\n context.maybeInsertedBrackets++;\n};\nCstyleBehaviour.isAutoInsertedClosing = function (cursor, line, bracket) {\n return context.autoInsertedBrackets > 0 &&\n cursor.row === context.autoInsertedRow &&\n bracket === context.autoInsertedLineEnd[0] &&\n line.substr(cursor.column) === context.autoInsertedLineEnd;\n};\nCstyleBehaviour.isMaybeInsertedClosing = function (cursor, line) {\n return context.maybeInsertedBrackets > 0 &&\n cursor.row === context.maybeInsertedRow &&\n line.substr(cursor.column) === context.maybeInsertedLineEnd &&\n line.substr(0, cursor.column) == context.maybeInsertedLineStart;\n};\nCstyleBehaviour.popAutoInsertedClosing = function () {\n context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);\n context.autoInsertedBrackets--;\n};\nCstyleBehaviour.clearMaybeInsertedClosing = function () {\n if (context) {\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = -1;\n }\n};\noop.inherits(CstyleBehaviour, Behaviour);\nexports.CstyleBehaviour = CstyleBehaviour;\n\n});\n\nace.define(\"ace/unicode\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar wordChars = [48, 9, 8, 25, 5, 0, 2, 25, 48, 0, 11, 0, 5, 0, 6, 22, 2, 30, 2, 457, 5, 11, 15, 4, 8, 0, 2, 0, 18, 116, 2, 1, 3, 3, 9, 0, 2, 2, 2, 0, 2, 19, 2, 82, 2, 138, 2, 4, 3, 155, 12, 37, 3, 0, 8, 38, 10, 44, 2, 0, 2, 1, 2, 1, 2, 0, 9, 26, 6, 2, 30, 10, 7, 61, 2, 9, 5, 101, 2, 7, 3, 9, 2, 18, 3, 0, 17, 58, 3, 100, 15, 53, 5, 0, 6, 45, 211, 57, 3, 18, 2, 5, 3, 11, 3, 9, 2, 1, 7, 6, 2, 2, 2, 7, 3, 1, 3, 21, 2, 6, 2, 0, 4, 3, 3, 8, 3, 1, 3, 3, 9, 0, 5, 1, 2, 4, 3, 11, 16, 2, 2, 5, 5, 1, 3, 21, 2, 6, 2, 1, 2, 1, 2, 1, 3, 0, 2, 4, 5, 1, 3, 2, 4, 0, 8, 3, 2, 0, 8, 15, 12, 2, 2, 8, 2, 2, 2, 21, 2, 6, 2, 1, 2, 4, 3, 9, 2, 2, 2, 2, 3, 0, 16, 3, 3, 9, 18, 2, 2, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 3, 8, 3, 1, 3, 2, 9, 1, 5, 1, 2, 4, 3, 9, 2, 0, 17, 1, 2, 5, 4, 2, 2, 3, 4, 1, 2, 0, 2, 1, 4, 1, 4, 2, 4, 11, 5, 4, 4, 2, 2, 3, 3, 0, 7, 0, 15, 9, 18, 2, 2, 7, 2, 2, 2, 22, 2, 9, 2, 4, 4, 7, 2, 2, 2, 3, 8, 1, 2, 1, 7, 3, 3, 9, 19, 1, 2, 7, 2, 2, 2, 22, 2, 9, 2, 4, 3, 8, 2, 2, 2, 3, 8, 1, 8, 0, 2, 3, 3, 9, 19, 1, 2, 7, 2, 2, 2, 22, 2, 15, 4, 7, 2, 2, 2, 3, 10, 0, 9, 3, 3, 9, 11, 5, 3, 1, 2, 17, 4, 23, 2, 8, 2, 0, 3, 6, 4, 0, 5, 5, 2, 0, 2, 7, 19, 1, 14, 57, 6, 14, 2, 9, 40, 1, 2, 0, 3, 1, 2, 0, 3, 0, 7, 3, 2, 6, 2, 2, 2, 0, 2, 0, 3, 1, 2, 12, 2, 2, 3, 4, 2, 0, 2, 5, 3, 9, 3, 1, 35, 0, 24, 1, 7, 9, 12, 0, 2, 0, 2, 0, 5, 9, 2, 35, 5, 19, 2, 5, 5, 7, 2, 35, 10, 0, 58, 73, 7, 77, 3, 37, 11, 42, 2, 0, 4, 328, 2, 3, 3, 6, 2, 0, 2, 3, 3, 40, 2, 3, 3, 32, 2, 3, 3, 6, 2, 0, 2, 3, 3, 14, 2, 56, 2, 3, 3, 66, 5, 0, 33, 15, 17, 84, 13, 619, 3, 16, 2, 25, 6, 74, 22, 12, 2, 6, 12, 20, 12, 19, 13, 12, 2, 2, 2, 1, 13, 51, 3, 29, 4, 0, 5, 1, 3, 9, 34, 2, 3, 9, 7, 87, 9, 42, 6, 69, 11, 28, 4, 11, 5, 11, 11, 39, 3, 4, 12, 43, 5, 25, 7, 10, 38, 27, 5, 62, 2, 28, 3, 10, 7, 9, 14, 0, 89, 75, 5, 9, 18, 8, 13, 42, 4, 11, 71, 55, 9, 9, 4, 48, 83, 2, 2, 30, 14, 230, 23, 280, 3, 5, 3, 37, 3, 5, 3, 7, 2, 0, 2, 0, 2, 0, 2, 30, 3, 52, 2, 6, 2, 0, 4, 2, 2, 6, 4, 3, 3, 5, 5, 12, 6, 2, 2, 6, 67, 1, 20, 0, 29, 0, 14, 0, 17, 4, 60, 12, 5, 0, 4, 11, 18, 0, 5, 0, 3, 9, 2, 0, 4, 4, 7, 0, 2, 0, 2, 0, 2, 3, 2, 10, 3, 3, 6, 4, 5, 0, 53, 1, 2684, 46, 2, 46, 2, 132, 7, 6, 15, 37, 11, 53, 10, 0, 17, 22, 10, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 31, 48, 0, 470, 1, 36, 5, 2, 4, 6, 1, 5, 85, 3, 1, 3, 2, 2, 89, 2, 3, 6, 40, 4, 93, 18, 23, 57, 15, 513, 6581, 75, 20939, 53, 1164, 68, 45, 3, 268, 4, 27, 21, 31, 3, 13, 13, 1, 2, 24, 9, 69, 11, 1, 38, 8, 3, 102, 3, 1, 111, 44, 25, 51, 13, 68, 12, 9, 7, 23, 4, 0, 5, 45, 3, 35, 13, 28, 4, 64, 15, 10, 39, 54, 10, 13, 3, 9, 7, 22, 4, 1, 5, 66, 25, 2, 227, 42, 2, 1, 3, 9, 7, 11171, 13, 22, 5, 48, 8453, 301, 3, 61, 3, 105, 39, 6, 13, 4, 6, 11, 2, 12, 2, 4, 2, 0, 2, 1, 2, 1, 2, 107, 34, 362, 19, 63, 3, 53, 41, 11, 5, 15, 17, 6, 13, 1, 25, 2, 33, 4, 2, 134, 20, 9, 8, 25, 5, 0, 2, 25, 12, 88, 4, 5, 3, 5, 3, 5, 3, 2];\nvar code = 0;\nvar str = [];\nfor (var i = 0; i < wordChars.length; i += 2) {\n str.push(code += wordChars[i]);\n if (wordChars[i + 1])\n str.push(45, code += wordChars[i + 1]);\n}\nexports.wordChars = String.fromCharCode.apply(null, str);\n\n});\n\nace.define(\"ace/mode/text\",[\"require\",\"exports\",\"module\",\"ace/config\",\"ace/tokenizer\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/unicode\",\"ace/lib/lang\",\"ace/token_iterator\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar config = require(\"../config\");\nvar Tokenizer = require(\"../tokenizer\").Tokenizer;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar unicode = require(\"../unicode\");\nvar lang = require(\"../lib/lang\");\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar Range = require(\"../range\").Range;\nvar Mode = function () {\n this.HighlightRules = TextHighlightRules;\n};\n(function () {\n this.$defaultBehaviour = new CstyleBehaviour();\n this.tokenRe = new RegExp(\"^[\" + unicode.wordChars + \"\\\\$_]+\", \"g\");\n this.nonTokenRe = new RegExp(\"^(?:[^\" + unicode.wordChars + \"\\\\$_]|\\\\s])+\", \"g\");\n this.getTokenizer = function () {\n if (!this.$tokenizer) {\n this.$highlightRules = this.$highlightRules || new this.HighlightRules(this.$highlightRuleConfig);\n this.$tokenizer = new Tokenizer(this.$highlightRules.getRules());\n }\n return this.$tokenizer;\n };\n this.lineCommentStart = \"\";\n this.blockComment = \"\";\n this.toggleCommentLines = function (state, session, startRow, endRow) {\n var doc = session.doc;\n var ignoreBlankLines = true;\n var shouldRemove = true;\n var minIndent = Infinity;\n var tabSize = session.getTabSize();\n var insertAtTabStop = false;\n if (!this.lineCommentStart) {\n if (!this.blockComment)\n return false;\n var lineCommentStart = this.blockComment.start;\n var lineCommentEnd = this.blockComment.end;\n var regexpStart = new RegExp(\"^(\\\\s*)(?:\" + lang.escapeRegExp(lineCommentStart) + \")\");\n var regexpEnd = new RegExp(\"(?:\" + lang.escapeRegExp(lineCommentEnd) + \")\\\\s*$\");\n var comment = function (line, i) {\n if (testRemove(line, i))\n return;\n if (!ignoreBlankLines || /\\S/.test(line)) {\n doc.insertInLine({ row: i, column: line.length }, lineCommentEnd);\n doc.insertInLine({ row: i, column: minIndent }, lineCommentStart);\n }\n };\n var uncomment = function (line, i) {\n var m;\n if (m = line.match(regexpEnd))\n doc.removeInLine(i, line.length - m[0].length, line.length);\n if (m = line.match(regexpStart))\n doc.removeInLine(i, m[1].length, m[0].length);\n };\n var testRemove = function (line, row) {\n if (regexpStart.test(line))\n return true;\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n if (tokens[i].type === \"comment\")\n return true;\n }\n };\n }\n else {\n if (Array.isArray(this.lineCommentStart)) {\n var regexpStart = this.lineCommentStart.map(lang.escapeRegExp).join(\"|\");\n var lineCommentStart = this.lineCommentStart[0];\n }\n else {\n var regexpStart = lang.escapeRegExp(this.lineCommentStart);\n var lineCommentStart = this.lineCommentStart;\n }\n regexpStart = new RegExp(\"^(\\\\s*)(?:\" + regexpStart + \") ?\");\n insertAtTabStop = session.getUseSoftTabs();\n var uncomment = function (line, i) {\n var m = line.match(regexpStart);\n if (!m)\n return;\n var start = m[1].length, end = m[0].length;\n if (!shouldInsertSpace(line, start, end) && m[0][end - 1] == \" \")\n end--;\n doc.removeInLine(i, start, end);\n };\n var commentWithSpace = lineCommentStart + \" \";\n var comment = function (line, i) {\n if (!ignoreBlankLines || /\\S/.test(line)) {\n if (shouldInsertSpace(line, minIndent, minIndent))\n doc.insertInLine({ row: i, column: minIndent }, commentWithSpace);\n else\n doc.insertInLine({ row: i, column: minIndent }, lineCommentStart);\n }\n };\n var testRemove = function (line, i) {\n return regexpStart.test(line);\n };\n var shouldInsertSpace = function (line, before, after) {\n var spaces = 0;\n while (before-- && line.charAt(before) == \" \")\n spaces++;\n if (spaces % tabSize != 0)\n return false;\n var spaces = 0;\n while (line.charAt(after++) == \" \")\n spaces++;\n if (tabSize > 2)\n return spaces % tabSize != tabSize - 1;\n else\n return spaces % tabSize == 0;\n };\n }\n function iter(fun) {\n for (var i = startRow; i <= endRow; i++)\n fun(doc.getLine(i), i);\n }\n var minEmptyLength = Infinity;\n iter(function (line, i) {\n var indent = line.search(/\\S/);\n if (indent !== -1) {\n if (indent < minIndent)\n minIndent = indent;\n if (shouldRemove && !testRemove(line, i))\n shouldRemove = false;\n }\n else if (minEmptyLength > line.length) {\n minEmptyLength = line.length;\n }\n });\n if (minIndent == Infinity) {\n minIndent = minEmptyLength;\n ignoreBlankLines = false;\n shouldRemove = false;\n }\n if (insertAtTabStop && minIndent % tabSize != 0)\n minIndent = Math.floor(minIndent / tabSize) * tabSize;\n iter(shouldRemove ? uncomment : comment);\n };\n this.toggleBlockComment = function (state, session, range, cursor) {\n var comment = this.blockComment;\n if (!comment)\n return;\n if (!comment.start && comment[0])\n comment = comment[0];\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n var sel = session.selection;\n var initialRange = session.selection.toOrientedRange();\n var startRow, colDiff;\n if (token && /comment/.test(token.type)) {\n var startRange, endRange;\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.start);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n startRange = new Range(row, column, row, column + comment.start.length);\n break;\n }\n token = iterator.stepBackward();\n }\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.end);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n endRange = new Range(row, column, row, column + comment.end.length);\n break;\n }\n token = iterator.stepForward();\n }\n if (endRange)\n session.remove(endRange);\n if (startRange) {\n session.remove(startRange);\n startRow = startRange.start.row;\n colDiff = -comment.start.length;\n }\n }\n else {\n colDiff = comment.start.length;\n startRow = range.start.row;\n session.insert(range.end, comment.end);\n session.insert(range.start, comment.start);\n }\n if (initialRange.start.row == startRow)\n initialRange.start.column += colDiff;\n if (initialRange.end.row == startRow)\n initialRange.end.column += colDiff;\n session.selection.fromOrientedRange(initialRange);\n };\n this.getNextLineIndent = function (state, line, tab) {\n return this.$getIndent(line);\n };\n this.checkOutdent = function (state, line, input) {\n return false;\n };\n this.autoOutdent = function (state, doc, row) {\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n this.createWorker = function (session) {\n return null;\n };\n this.createModeDelegates = function (mapping) {\n this.$embeds = [];\n this.$modes = {};\n for (var i in mapping) {\n if (mapping[i]) {\n var Mode = mapping[i];\n var id = Mode.prototype.$id;\n var mode = config.$modes[id];\n if (!mode)\n config.$modes[id] = mode = new Mode();\n if (!config.$modes[i])\n config.$modes[i] = mode;\n this.$embeds.push(i);\n this.$modes[i] = mode;\n }\n }\n var delegations = [\"toggleBlockComment\", \"toggleCommentLines\", \"getNextLineIndent\",\n \"checkOutdent\", \"autoOutdent\", \"transformAction\", \"getCompletions\"];\n for (var i = 0; i < delegations.length; i++) {\n (function (scope) {\n var functionName = delegations[i];\n var defaultHandler = scope[functionName];\n scope[delegations[i]] = function () {\n return this.$delegator(functionName, arguments, defaultHandler);\n };\n }(this));\n }\n };\n this.$delegator = function (method, args, defaultHandler) {\n var state = args[0] || \"start\";\n if (typeof state != \"string\") {\n if (Array.isArray(state[2])) {\n var language = state[2][state[2].length - 1];\n var mode = this.$modes[language];\n if (mode)\n return mode[method].apply(mode, [state[1]].concat([].slice.call(args, 1)));\n }\n state = state[0] || \"start\";\n }\n for (var i = 0; i < this.$embeds.length; i++) {\n if (!this.$modes[this.$embeds[i]])\n continue;\n var split = state.split(this.$embeds[i]);\n if (!split[0] && split[1]) {\n args[0] = split[1];\n var mode = this.$modes[this.$embeds[i]];\n return mode[method].apply(mode, args);\n }\n }\n var ret = defaultHandler.apply(this, args);\n return defaultHandler ? ret : undefined;\n };\n this.transformAction = function (state, action, editor, session, param) {\n if (this.$behaviour) {\n var behaviours = this.$behaviour.getBehaviours();\n for (var key in behaviours) {\n if (behaviours[key][action]) {\n var ret = behaviours[key][action].apply(this, arguments);\n if (ret) {\n return ret;\n }\n }\n }\n }\n };\n this.getKeywords = function (append) {\n if (!this.completionKeywords) {\n var rules = this.$tokenizer.rules;\n var completionKeywords = [];\n for (var rule in rules) {\n var ruleItr = rules[rule];\n for (var r = 0, l = ruleItr.length; r < l; r++) {\n if (typeof ruleItr[r].token === \"string\") {\n if (/keyword|support|storage/.test(ruleItr[r].token))\n completionKeywords.push(ruleItr[r].regex);\n }\n else if (typeof ruleItr[r].token === \"object\") {\n for (var a = 0, aLength = ruleItr[r].token.length; a < aLength; a++) {\n if (/keyword|support|storage/.test(ruleItr[r].token[a])) {\n var rule = ruleItr[r].regex.match(/\\(.+?\\)/g)[a];\n completionKeywords.push(rule.substr(1, rule.length - 2));\n }\n }\n }\n }\n }\n this.completionKeywords = completionKeywords;\n }\n if (!append)\n return this.$keywordList;\n return completionKeywords.concat(this.$keywordList || []);\n };\n this.$createKeywordList = function () {\n if (!this.$highlightRules)\n this.getTokenizer();\n return this.$keywordList = this.$highlightRules.$keywordList || [];\n };\n this.getCompletions = function (state, session, pos, prefix) {\n var keywords = this.$keywordList || this.$createKeywordList();\n return keywords.map(function (word) {\n return {\n name: word,\n value: word,\n score: 0,\n meta: \"keyword\"\n };\n });\n };\n this.$id = \"ace/mode/text\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n});\n\nace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nfunction throwDeltaError(delta, errorText) {\n console.log(\"Invalid Delta:\", delta);\n throw \"Invalid Delta: \" + errorText;\n}\nfunction positionInDocument(docLines, position) {\n return position.row >= 0 && position.row < docLines.length &&\n position.column >= 0 && position.column <= docLines[position.row].length;\n}\nfunction validateDelta(docLines, delta) {\n if (delta.action != \"insert\" && delta.action != \"remove\")\n throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n if (!(delta.lines instanceof Array))\n throwDeltaError(delta, \"delta.lines must be an Array\");\n if (!delta.start || !delta.end)\n throwDeltaError(delta, \"delta.start/end must be an present\");\n var start = delta.start;\n if (!positionInDocument(docLines, delta.start))\n throwDeltaError(delta, \"delta.start must be contained in document\");\n var end = delta.end;\n if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n var numRangeRows = end.row - start.row;\n var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n throwDeltaError(delta, \"delta.range must match delta lines\");\n}\nexports.applyDelta = function (docLines, delta, doNotValidate) {\n var row = delta.start.row;\n var startColumn = delta.start.column;\n var line = docLines[row] || \"\";\n switch (delta.action) {\n case \"insert\":\n var lines = delta.lines;\n if (lines.length === 1) {\n docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n }\n else {\n var args = [row, 1].concat(delta.lines);\n docLines.splice.apply(docLines, args);\n docLines[row] = line.substring(0, startColumn) + docLines[row];\n docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n }\n break;\n case \"remove\":\n var endColumn = delta.end.column;\n var endRow = delta.end.row;\n if (row === endRow) {\n docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n }\n else {\n docLines.splice(row, endRow - row + 1, line.substring(0, startColumn) + docLines[endRow].substring(endColumn));\n }\n break;\n }\n};\n\n});\n\nace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Anchor = /** @class */ (function () {\n function Anchor(doc, row, column) {\n this.$onChange = this.onChange.bind(this);\n this.attach(doc);\n if (typeof column == \"undefined\")\n this.setPosition(row.row, row.column);\n else\n this.setPosition(row, column);\n }\n Anchor.prototype.getPosition = function () {\n return this.$clipPositionToDocument(this.row, this.column);\n };\n Anchor.prototype.getDocument = function () {\n return this.document;\n };\n Anchor.prototype.onChange = function (delta) {\n if (delta.start.row == delta.end.row && delta.start.row != this.row)\n return;\n if (delta.start.row > this.row)\n return;\n var point = $getTransformedPoint(delta, { row: this.row, column: this.column }, this.$insertRight);\n this.setPosition(point.row, point.column, true);\n };\n Anchor.prototype.setPosition = function (row, column, noClip) {\n var pos;\n if (noClip) {\n pos = {\n row: row,\n column: column\n };\n }\n else {\n pos = this.$clipPositionToDocument(row, column);\n }\n if (this.row == pos.row && this.column == pos.column)\n return;\n var old = {\n row: this.row,\n column: this.column\n };\n this.row = pos.row;\n this.column = pos.column;\n this._signal(\"change\", {\n old: old,\n value: pos\n });\n };\n Anchor.prototype.detach = function () {\n this.document.off(\"change\", this.$onChange);\n };\n Anchor.prototype.attach = function (doc) {\n this.document = doc || this.document;\n this.document.on(\"change\", this.$onChange);\n };\n Anchor.prototype.$clipPositionToDocument = function (row, column) {\n var pos = {};\n if (row >= this.document.getLength()) {\n pos.row = Math.max(0, this.document.getLength() - 1);\n pos.column = this.document.getLine(pos.row).length;\n }\n else if (row < 0) {\n pos.row = 0;\n pos.column = 0;\n }\n else {\n pos.row = row;\n pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n }\n if (column < 0)\n pos.column = 0;\n return pos;\n };\n return Anchor;\n}());\nAnchor.prototype.$insertRight = false;\noop.implement(Anchor.prototype, EventEmitter);\nfunction $pointsInOrder(point1, point2, equalPointsInOrder) {\n var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n}\nfunction $getTransformedPoint(delta, point, moveIfEqual) {\n var deltaIsInsert = delta.action == \"insert\";\n var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row);\n var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n var deltaStart = delta.start;\n var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n return {\n row: point.row,\n column: point.column\n };\n }\n if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n return {\n row: point.row + deltaRowShift,\n column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n };\n }\n return {\n row: deltaStart.row,\n column: deltaStart.column\n };\n}\nexports.Anchor = Anchor;\n\n});\n\nace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar applyDelta = require(\"./apply_delta\").applyDelta;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Anchor = require(\"./anchor\").Anchor;\nvar Document = /** @class */ (function () {\n function Document(textOrLines) {\n this.$lines = [\"\"];\n if (textOrLines.length === 0) {\n this.$lines = [\"\"];\n }\n else if (Array.isArray(textOrLines)) {\n this.insertMergedLines({ row: 0, column: 0 }, textOrLines);\n }\n else {\n this.insert({ row: 0, column: 0 }, textOrLines);\n }\n }\n Document.prototype.setValue = function (text) {\n var len = this.getLength() - 1;\n this.remove(new Range(0, 0, len, this.getLine(len).length));\n this.insert({ row: 0, column: 0 }, text || \"\");\n };\n Document.prototype.getValue = function () {\n return this.getAllLines().join(this.getNewLineCharacter());\n };\n Document.prototype.createAnchor = function (row, column) {\n return new Anchor(this, row, column);\n };\n Document.prototype.$detectNewLine = function (text) {\n var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n this.$autoNewLine = match ? match[1] : \"\\n\";\n this._signal(\"changeNewLineMode\");\n };\n Document.prototype.getNewLineCharacter = function () {\n switch (this.$newLineMode) {\n case \"windows\":\n return \"\\r\\n\";\n case \"unix\":\n return \"\\n\";\n default:\n return this.$autoNewLine || \"\\n\";\n }\n };\n Document.prototype.setNewLineMode = function (newLineMode) {\n if (this.$newLineMode === newLineMode)\n return;\n this.$newLineMode = newLineMode;\n this._signal(\"changeNewLineMode\");\n };\n Document.prototype.getNewLineMode = function () {\n return this.$newLineMode;\n };\n Document.prototype.isNewLine = function (text) {\n return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n };\n Document.prototype.getLine = function (row) {\n return this.$lines[row] || \"\";\n };\n Document.prototype.getLines = function (firstRow, lastRow) {\n return this.$lines.slice(firstRow, lastRow + 1);\n };\n Document.prototype.getAllLines = function () {\n return this.getLines(0, this.getLength());\n };\n Document.prototype.getLength = function () {\n return this.$lines.length;\n };\n Document.prototype.getTextRange = function (range) {\n return this.getLinesForRange(range).join(this.getNewLineCharacter());\n };\n Document.prototype.getLinesForRange = function (range) {\n var lines;\n if (range.start.row === range.end.row) {\n lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n }\n else {\n lines = this.getLines(range.start.row, range.end.row);\n lines[0] = (lines[0] || \"\").substring(range.start.column);\n var l = lines.length - 1;\n if (range.end.row - range.start.row == l)\n lines[l] = lines[l].substring(0, range.end.column);\n }\n return lines;\n };\n Document.prototype.insertLines = function (row, lines) {\n console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n return this.insertFullLines(row, lines);\n };\n Document.prototype.removeLines = function (firstRow, lastRow) {\n console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n return this.removeFullLines(firstRow, lastRow);\n };\n Document.prototype.insertNewLine = function (position) {\n console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\");\n return this.insertMergedLines(position, [\"\", \"\"]);\n };\n Document.prototype.insert = function (position, text) {\n if (this.getLength() <= 1)\n this.$detectNewLine(text);\n return this.insertMergedLines(position, this.$split(text));\n };\n Document.prototype.insertInLine = function (position, text) {\n var start = this.clippedPos(position.row, position.column);\n var end = this.pos(position.row, position.column + text.length);\n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: [text]\n }, true);\n return this.clonePos(end);\n };\n Document.prototype.clippedPos = function (row, column) {\n var length = this.getLength();\n if (row === undefined) {\n row = length;\n }\n else if (row < 0) {\n row = 0;\n }\n else if (row >= length) {\n row = length - 1;\n column = undefined;\n }\n var line = this.getLine(row);\n if (column == undefined)\n column = line.length;\n column = Math.min(Math.max(column, 0), line.length);\n return { row: row, column: column };\n };\n Document.prototype.clonePos = function (pos) {\n return { row: pos.row, column: pos.column };\n };\n Document.prototype.pos = function (row, column) {\n return { row: row, column: column };\n };\n Document.prototype.$clipPosition = function (position) {\n var length = this.getLength();\n if (position.row >= length) {\n position.row = Math.max(0, length - 1);\n position.column = this.getLine(length - 1).length;\n }\n else {\n position.row = Math.max(0, position.row);\n position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n }\n return position;\n };\n Document.prototype.insertFullLines = function (row, lines) {\n row = Math.min(Math.max(row, 0), this.getLength());\n var column = 0;\n if (row < this.getLength()) {\n lines = lines.concat([\"\"]);\n column = 0;\n }\n else {\n lines = [\"\"].concat(lines);\n row--;\n column = this.$lines[row].length;\n }\n this.insertMergedLines({ row: row, column: column }, lines);\n };\n Document.prototype.insertMergedLines = function (position, lines) {\n var start = this.clippedPos(position.row, position.column);\n var end = {\n row: start.row + lines.length - 1,\n column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n };\n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: lines\n });\n return this.clonePos(end);\n };\n Document.prototype.remove = function (range) {\n var start = this.clippedPos(range.start.row, range.start.column);\n var end = this.clippedPos(range.end.row, range.end.column);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({ start: start, end: end })\n });\n return this.clonePos(start);\n };\n Document.prototype.removeInLine = function (row, startColumn, endColumn) {\n var start = this.clippedPos(row, startColumn);\n var end = this.clippedPos(row, endColumn);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({ start: start, end: end })\n }, true);\n return this.clonePos(start);\n };\n Document.prototype.removeFullLines = function (firstRow, lastRow) {\n firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n lastRow = Math.min(Math.max(0, lastRow), this.getLength() - 1);\n var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n var deleteLastNewLine = lastRow < this.getLength() - 1;\n var startRow = (deleteFirstNewLine ? firstRow - 1 : firstRow);\n var startCol = (deleteFirstNewLine ? this.getLine(startRow).length : 0);\n var endRow = (deleteLastNewLine ? lastRow + 1 : lastRow);\n var endCol = (deleteLastNewLine ? 0 : this.getLine(endRow).length);\n var range = new Range(startRow, startCol, endRow, endCol);\n var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n this.applyDelta({\n start: range.start,\n end: range.end,\n action: \"remove\",\n lines: this.getLinesForRange(range)\n });\n return deletedLines;\n };\n Document.prototype.removeNewLine = function (row) {\n if (row < this.getLength() - 1 && row >= 0) {\n this.applyDelta({\n start: this.pos(row, this.getLine(row).length),\n end: this.pos(row + 1, 0),\n action: \"remove\",\n lines: [\"\", \"\"]\n });\n }\n };\n Document.prototype.replace = function (range, text) {\n if (!(range instanceof Range))\n range = Range.fromPoints(range.start, range.end);\n if (text.length === 0 && range.isEmpty())\n return range.start;\n if (text == this.getTextRange(range))\n return range.end;\n this.remove(range);\n var end;\n if (text) {\n end = this.insert(range.start, text);\n }\n else {\n end = range.start;\n }\n return end;\n };\n Document.prototype.applyDeltas = function (deltas) {\n for (var i = 0; i < deltas.length; i++) {\n this.applyDelta(deltas[i]);\n }\n };\n Document.prototype.revertDeltas = function (deltas) {\n for (var i = deltas.length - 1; i >= 0; i--) {\n this.revertDelta(deltas[i]);\n }\n };\n Document.prototype.applyDelta = function (delta, doNotValidate) {\n var isInsert = delta.action == \"insert\";\n if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n : !Range.comparePoints(delta.start, delta.end)) {\n return;\n }\n if (isInsert && delta.lines.length > 20000) {\n this.$splitAndapplyLargeDelta(delta, 20000);\n }\n else {\n applyDelta(this.$lines, delta, doNotValidate);\n this._signal(\"change\", delta);\n }\n };\n Document.prototype.$safeApplyDelta = function (delta) {\n var docLength = this.$lines.length;\n if (delta.action == \"remove\" && delta.start.row < docLength && delta.end.row < docLength\n || delta.action == \"insert\" && delta.start.row <= docLength) {\n this.applyDelta(delta);\n }\n };\n Document.prototype.$splitAndapplyLargeDelta = function (delta, MAX) {\n var lines = delta.lines;\n var l = lines.length - MAX + 1;\n var row = delta.start.row;\n var column = delta.start.column;\n for (var from = 0, to = 0; from < l; from = to) {\n to += MAX - 1;\n var chunk = lines.slice(from, to);\n chunk.push(\"\");\n this.applyDelta({\n start: this.pos(row + from, column),\n end: this.pos(row + to, column = 0),\n action: delta.action,\n lines: chunk\n }, true);\n }\n delta.lines = lines.slice(from);\n delta.start.row = row + from;\n delta.start.column = column;\n this.applyDelta(delta, true);\n };\n Document.prototype.revertDelta = function (delta) {\n this.$safeApplyDelta({\n start: this.clonePos(delta.start),\n end: this.clonePos(delta.end),\n action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n lines: delta.lines.slice()\n });\n };\n Document.prototype.indexToPosition = function (index, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n for (var i = startRow || 0, l = lines.length; i < l; i++) {\n index -= lines[i].length + newlineLength;\n if (index < 0)\n return { row: i, column: index + lines[i].length + newlineLength };\n }\n return { row: l - 1, column: index + lines[l - 1].length + newlineLength };\n };\n Document.prototype.positionToIndex = function (pos, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n var index = 0;\n var row = Math.min(pos.row, lines.length);\n for (var i = startRow || 0; i < row; ++i)\n index += lines[i].length + newlineLength;\n return index + pos.column;\n };\n Document.prototype.$split = function (text) {\n return text.split(/\\r\\n|\\r|\\n/);\n };\n return Document;\n}());\nDocument.prototype.$autoNewLine = \"\";\nDocument.prototype.$newLineMode = \"auto\";\noop.implement(Document.prototype, EventEmitter);\nexports.Document = Document;\n\n});\n\nace.define(\"ace/background_tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar BackgroundTokenizer = /** @class */ (function () {\n function BackgroundTokenizer(tokenizer, editor) {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.tokenizer = tokenizer;\n var self = this;\n this.$worker = function () {\n if (!self.running) {\n return;\n }\n var workerStart = new Date();\n var currentLine = self.currentLine;\n var endLine = -1;\n var doc = self.doc;\n var startLine = currentLine;\n while (self.lines[currentLine])\n currentLine++;\n var len = doc.getLength();\n var processedLines = 0;\n self.running = false;\n while (currentLine < len) {\n self.$tokenizeRow(currentLine);\n endLine = currentLine;\n do {\n currentLine++;\n } while (self.lines[currentLine]);\n processedLines++;\n if ((processedLines % 5 === 0) && (new Date() - workerStart) > 20) {\n self.running = setTimeout(self.$worker, 20);\n break;\n }\n }\n self.currentLine = currentLine;\n if (endLine == -1)\n endLine = currentLine;\n if (startLine <= endLine)\n self.fireUpdateEvent(startLine, endLine);\n };\n }\n BackgroundTokenizer.prototype.setTokenizer = function (tokenizer) {\n this.tokenizer = tokenizer;\n this.lines = [];\n this.states = [];\n this.start(0);\n };\n BackgroundTokenizer.prototype.setDocument = function (doc) {\n this.doc = doc;\n this.lines = [];\n this.states = [];\n this.stop();\n };\n BackgroundTokenizer.prototype.fireUpdateEvent = function (firstRow, lastRow) {\n var data = {\n first: firstRow,\n last: lastRow\n };\n this._signal(\"update\", { data: data });\n };\n BackgroundTokenizer.prototype.start = function (startRow) {\n this.currentLine = Math.min(startRow || 0, this.currentLine, this.doc.getLength());\n this.lines.splice(this.currentLine, this.lines.length);\n this.states.splice(this.currentLine, this.states.length);\n this.stop();\n this.running = setTimeout(this.$worker, 700);\n };\n BackgroundTokenizer.prototype.scheduleStart = function () {\n if (!this.running)\n this.running = setTimeout(this.$worker, 700);\n };\n BackgroundTokenizer.prototype.$updateOnChange = function (delta) {\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n if (len === 0) {\n this.lines[startRow] = null;\n }\n else if (delta.action == \"remove\") {\n this.lines.splice(startRow, len + 1, null);\n this.states.splice(startRow, len + 1, null);\n }\n else {\n var args = Array(len + 1);\n args.unshift(startRow, 1);\n this.lines.splice.apply(this.lines, args);\n this.states.splice.apply(this.states, args);\n }\n this.currentLine = Math.min(startRow, this.currentLine, this.doc.getLength());\n this.stop();\n };\n BackgroundTokenizer.prototype.stop = function () {\n if (this.running)\n clearTimeout(this.running);\n this.running = false;\n };\n BackgroundTokenizer.prototype.getTokens = function (row) {\n return this.lines[row] || this.$tokenizeRow(row);\n };\n BackgroundTokenizer.prototype.getState = function (row) {\n if (this.currentLine == row)\n this.$tokenizeRow(row);\n return this.states[row] || \"start\";\n };\n BackgroundTokenizer.prototype.$tokenizeRow = function (row) {\n var line = this.doc.getLine(row);\n var state = this.states[row - 1];\n var data = this.tokenizer.getLineTokens(line, state, row);\n if (this.states[row] + \"\" !== data.state + \"\") {\n this.states[row] = data.state;\n this.lines[row + 1] = null;\n if (this.currentLine > row + 1)\n this.currentLine = row + 1;\n }\n else if (this.currentLine == row) {\n this.currentLine = row + 1;\n }\n return this.lines[row] = data.tokens;\n };\n BackgroundTokenizer.prototype.cleanup = function () {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.removeAllListeners();\n };\n return BackgroundTokenizer;\n}());\noop.implement(BackgroundTokenizer.prototype, EventEmitter);\nexports.BackgroundTokenizer = BackgroundTokenizer;\n\n});\n\nace.define(\"ace/search_highlight\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"./lib/lang\");\nvar Range = require(\"./range\").Range;\nvar SearchHighlight = /** @class */ (function () {\n function SearchHighlight(regExp, clazz, type) {\n if (type === void 0) { type = \"text\"; }\n this.setRegexp(regExp);\n this.clazz = clazz;\n this.type = type;\n }\n SearchHighlight.prototype.setRegexp = function (regExp) {\n if (this.regExp + \"\" == regExp + \"\")\n return;\n this.regExp = regExp;\n this.cache = [];\n };\n SearchHighlight.prototype.update = function (html, markerLayer, session, config) {\n if (!this.regExp)\n return;\n var start = config.firstRow, end = config.lastRow;\n var renderedMarkerRanges = {};\n for (var i = start; i <= end; i++) {\n var ranges = this.cache[i];\n if (ranges == null) {\n ranges = lang.getMatchOffsets(session.getLine(i), this.regExp);\n if (ranges.length > this.MAX_RANGES)\n ranges = ranges.slice(0, this.MAX_RANGES);\n ranges = ranges.map(function (match) {\n return new Range(i, match.offset, i, match.offset + match.length);\n });\n this.cache[i] = ranges.length ? ranges : \"\";\n }\n for (var j = ranges.length; j--;) {\n var rangeToAddMarkerTo = ranges[j].toScreenRange(session);\n var rangeAsString = rangeToAddMarkerTo.toString();\n if (renderedMarkerRanges[rangeAsString])\n continue;\n renderedMarkerRanges[rangeAsString] = true;\n markerLayer.drawSingleLineMarker(html, rangeToAddMarkerTo, this.clazz, config);\n }\n }\n };\n return SearchHighlight;\n}());\nSearchHighlight.prototype.MAX_RANGES = 500;\nexports.SearchHighlight = SearchHighlight;\n\n});\n\nace.define(\"ace/undomanager\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar UndoManager = /** @class */ (function () {\n function UndoManager() {\n this.$maxRev = 0;\n this.$fromUndo = false;\n this.$undoDepth = Infinity;\n this.reset();\n }\n UndoManager.prototype.addSession = function (session) {\n this.$session = session;\n };\n UndoManager.prototype.add = function (delta, allowMerge, session) {\n if (this.$fromUndo)\n return;\n if (delta == this.$lastDelta)\n return;\n if (!this.$keepRedoStack)\n this.$redoStack.length = 0;\n if (allowMerge === false || !this.lastDeltas) {\n this.lastDeltas = [];\n var undoStackLength = this.$undoStack.length;\n if (undoStackLength > this.$undoDepth - 1) {\n this.$undoStack.splice(0, undoStackLength - this.$undoDepth + 1);\n }\n this.$undoStack.push(this.lastDeltas);\n delta.id = this.$rev = ++this.$maxRev;\n }\n if (delta.action == \"remove\" || delta.action == \"insert\")\n this.$lastDelta = delta;\n this.lastDeltas.push(delta);\n };\n UndoManager.prototype.addSelection = function (selection, rev) {\n this.selections.push({\n value: selection,\n rev: rev || this.$rev\n });\n };\n UndoManager.prototype.startNewGroup = function () {\n this.lastDeltas = null;\n return this.$rev;\n };\n UndoManager.prototype.markIgnored = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n var stack = this.$undoStack;\n for (var i = stack.length; i--;) {\n var delta = stack[i][0];\n if (delta.id <= from)\n break;\n if (delta.id < to)\n delta.ignore = true;\n }\n this.lastDeltas = null;\n };\n UndoManager.prototype.getSelection = function (rev, after) {\n var stack = this.selections;\n for (var i = stack.length; i--;) {\n var selection = stack[i];\n if (selection.rev < rev) {\n if (after)\n selection = stack[i + 1];\n return selection;\n }\n }\n };\n UndoManager.prototype.getRevision = function () {\n return this.$rev;\n };\n UndoManager.prototype.getDeltas = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n var stack = this.$undoStack;\n var end = null, start = 0;\n for (var i = stack.length; i--;) {\n var delta = stack[i][0];\n if (delta.id < to && !end)\n end = i + 1;\n if (delta.id <= from) {\n start = i + 1;\n break;\n }\n }\n return stack.slice(start, end);\n };\n UndoManager.prototype.getChangedRanges = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n };\n UndoManager.prototype.getChangedLines = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n };\n UndoManager.prototype.undo = function (session, dontSelect) {\n this.lastDeltas = null;\n var stack = this.$undoStack;\n if (!rearrangeUndoStack(stack, stack.length))\n return;\n if (!session)\n session = this.$session;\n if (this.$redoStackBaseRev !== this.$rev && this.$redoStack.length)\n this.$redoStack = [];\n this.$fromUndo = true;\n var deltaSet = stack.pop();\n var undoSelectionRange = null;\n if (deltaSet) {\n undoSelectionRange = session.undoChanges(deltaSet, dontSelect);\n this.$redoStack.push(deltaSet);\n this.$syncRev();\n }\n this.$fromUndo = false;\n return undoSelectionRange;\n };\n UndoManager.prototype.redo = function (session, dontSelect) {\n this.lastDeltas = null;\n if (!session)\n session = this.$session;\n this.$fromUndo = true;\n if (this.$redoStackBaseRev != this.$rev) {\n var diff = this.getDeltas(this.$redoStackBaseRev, this.$rev + 1);\n rebaseRedoStack(this.$redoStack, diff);\n this.$redoStackBaseRev = this.$rev;\n this.$redoStack.forEach(function (x) {\n x[0].id = ++this.$maxRev;\n }, this);\n }\n var deltaSet = this.$redoStack.pop();\n var redoSelectionRange = null;\n if (deltaSet) {\n redoSelectionRange = session.redoChanges(deltaSet, dontSelect);\n this.$undoStack.push(deltaSet);\n this.$syncRev();\n }\n this.$fromUndo = false;\n return redoSelectionRange;\n };\n UndoManager.prototype.$syncRev = function () {\n var stack = this.$undoStack;\n var nextDelta = stack[stack.length - 1];\n var id = nextDelta && nextDelta[0].id || 0;\n this.$redoStackBaseRev = id;\n this.$rev = id;\n };\n UndoManager.prototype.reset = function () {\n this.lastDeltas = null;\n this.$lastDelta = null;\n this.$undoStack = [];\n this.$redoStack = [];\n this.$rev = 0;\n this.mark = 0;\n this.$redoStackBaseRev = this.$rev;\n this.selections = [];\n };\n UndoManager.prototype.canUndo = function () {\n return this.$undoStack.length > 0;\n };\n UndoManager.prototype.canRedo = function () {\n return this.$redoStack.length > 0;\n };\n UndoManager.prototype.bookmark = function (rev) {\n if (rev == undefined)\n rev = this.$rev;\n this.mark = rev;\n };\n UndoManager.prototype.isAtBookmark = function () {\n return this.$rev === this.mark;\n };\n UndoManager.prototype.toJSON = function () {\n return {\n $redoStack: this.$redoStack,\n $undoStack: this.$undoStack\n };\n };\n UndoManager.prototype.fromJSON = function (json) {\n this.reset();\n this.$undoStack = json.$undoStack;\n this.$redoStack = json.$redoStack;\n };\n UndoManager.prototype.$prettyPrint = function (delta) {\n if (delta)\n return stringifyDelta(delta);\n return stringifyDelta(this.$undoStack) + \"\\n---\\n\" + stringifyDelta(this.$redoStack);\n };\n return UndoManager;\n}());\nUndoManager.prototype.hasUndo = UndoManager.prototype.canUndo;\nUndoManager.prototype.hasRedo = UndoManager.prototype.canRedo;\nUndoManager.prototype.isClean = UndoManager.prototype.isAtBookmark;\nUndoManager.prototype.markClean = UndoManager.prototype.bookmark;\nfunction rearrangeUndoStack(stack, pos) {\n for (var i = pos; i--;) {\n var deltaSet = stack[i];\n if (deltaSet && !deltaSet[0].ignore) {\n while (i < pos - 1) {\n var swapped = swapGroups(stack[i], stack[i + 1]);\n stack[i] = swapped[0];\n stack[i + 1] = swapped[1];\n i++;\n }\n return true;\n }\n }\n}\nvar Range = require(\"./range\").Range;\nvar cmp = Range.comparePoints;\nvar comparePoints = Range.comparePoints;\nfunction $updateMarkers(delta) {\n var isInsert = delta.action == \"insert\";\n var start = delta.start;\n var end = delta.end;\n var rowShift = (end.row - start.row) * (isInsert ? 1 : -1);\n var colShift = (end.column - start.column) * (isInsert ? 1 : -1);\n if (isInsert)\n end = start;\n for (var i in this.marks) {\n var point = this.marks[i];\n var cmp = comparePoints(point, start);\n if (cmp < 0) {\n continue; // delta starts after the range\n }\n if (cmp === 0) {\n if (isInsert) {\n if (point.bias == 1) {\n cmp = 1;\n }\n else {\n point.bias == -1;\n continue;\n }\n }\n }\n var cmp2 = isInsert ? cmp : comparePoints(point, end);\n if (cmp2 > 0) {\n point.row += rowShift;\n point.column += point.row == end.row ? colShift : 0;\n continue;\n }\n if (!isInsert && cmp2 <= 0) {\n point.row = start.row;\n point.column = start.column;\n if (cmp2 === 0)\n point.bias = 1;\n }\n }\n}\nfunction clonePos(pos) {\n return { row: pos.row, column: pos.column };\n}\nfunction cloneDelta(d) {\n return {\n start: clonePos(d.start),\n end: clonePos(d.end),\n action: d.action,\n lines: d.lines.slice()\n };\n}\nfunction stringifyDelta(d) {\n d = d || this;\n if (Array.isArray(d)) {\n return d.map(stringifyDelta).join(\"\\n\");\n }\n var type = \"\";\n if (d.action) {\n type = d.action == \"insert\" ? \"+\" : \"-\";\n type += \"[\" + d.lines + \"]\";\n }\n else if (d.value) {\n if (Array.isArray(d.value)) {\n type = d.value.map(stringifyRange).join(\"\\n\");\n }\n else {\n type = stringifyRange(d.value);\n }\n }\n if (d.start) {\n type += stringifyRange(d);\n }\n if (d.id || d.rev) {\n type += \"\\t(\" + (d.id || d.rev) + \")\";\n }\n return type;\n}\nfunction stringifyRange(r) {\n return r.start.row + \":\" + r.start.column\n + \"=>\" + r.end.row + \":\" + r.end.column;\n}\nfunction swap(d1, d2) {\n var i1 = d1.action == \"insert\";\n var i2 = d2.action == \"insert\";\n if (i1 && i2) {\n if (cmp(d2.start, d1.end) >= 0) {\n shift(d2, d1, -1);\n }\n else if (cmp(d2.start, d1.start) <= 0) {\n shift(d1, d2, +1);\n }\n else {\n return null;\n }\n }\n else if (i1 && !i2) {\n if (cmp(d2.start, d1.end) >= 0) {\n shift(d2, d1, -1);\n }\n else if (cmp(d2.end, d1.start) <= 0) {\n shift(d1, d2, -1);\n }\n else {\n return null;\n }\n }\n else if (!i1 && i2) {\n if (cmp(d2.start, d1.start) >= 0) {\n shift(d2, d1, +1);\n }\n else if (cmp(d2.start, d1.start) <= 0) {\n shift(d1, d2, +1);\n }\n else {\n return null;\n }\n }\n else if (!i1 && !i2) {\n if (cmp(d2.start, d1.start) >= 0) {\n shift(d2, d1, +1);\n }\n else if (cmp(d2.end, d1.start) <= 0) {\n shift(d1, d2, -1);\n }\n else {\n return null;\n }\n }\n return [d2, d1];\n}\nfunction swapGroups(ds1, ds2) {\n for (var i = ds1.length; i--;) {\n for (var j = 0; j < ds2.length; j++) {\n if (!swap(ds1[i], ds2[j])) {\n while (i < ds1.length) {\n while (j--) {\n swap(ds2[j], ds1[i]);\n }\n j = ds2.length;\n i++;\n }\n return [ds1, ds2];\n }\n }\n }\n ds1.selectionBefore = ds2.selectionBefore =\n ds1.selectionAfter = ds2.selectionAfter = null;\n return [ds2, ds1];\n}\nfunction xform(d1, c1) {\n var i1 = d1.action == \"insert\";\n var i2 = c1.action == \"insert\";\n if (i1 && i2) {\n if (cmp(d1.start, c1.start) < 0) {\n shift(c1, d1, 1);\n }\n else {\n shift(d1, c1, 1);\n }\n }\n else if (i1 && !i2) {\n if (cmp(d1.start, c1.end) >= 0) {\n shift(d1, c1, -1);\n }\n else if (cmp(d1.start, c1.start) <= 0) {\n shift(c1, d1, +1);\n }\n else {\n shift(d1, Range.fromPoints(c1.start, d1.start), -1);\n shift(c1, d1, +1);\n }\n }\n else if (!i1 && i2) {\n if (cmp(c1.start, d1.end) >= 0) {\n shift(c1, d1, -1);\n }\n else if (cmp(c1.start, d1.start) <= 0) {\n shift(d1, c1, +1);\n }\n else {\n shift(c1, Range.fromPoints(d1.start, c1.start), -1);\n shift(d1, c1, +1);\n }\n }\n else if (!i1 && !i2) {\n if (cmp(c1.start, d1.end) >= 0) {\n shift(c1, d1, -1);\n }\n else if (cmp(c1.end, d1.start) <= 0) {\n shift(d1, c1, -1);\n }\n else {\n var before, after;\n if (cmp(d1.start, c1.start) < 0) {\n before = d1;\n d1 = splitDelta(d1, c1.start);\n }\n if (cmp(d1.end, c1.end) > 0) {\n after = splitDelta(d1, c1.end);\n }\n shiftPos(c1.end, d1.start, d1.end, -1);\n if (after && !before) {\n d1.lines = after.lines;\n d1.start = after.start;\n d1.end = after.end;\n after = d1;\n }\n return [c1, before, after].filter(Boolean);\n }\n }\n return [c1, d1];\n}\nfunction shift(d1, d2, dir) {\n shiftPos(d1.start, d2.start, d2.end, dir);\n shiftPos(d1.end, d2.start, d2.end, dir);\n}\nfunction shiftPos(pos, start, end, dir) {\n if (pos.row == (dir == 1 ? start : end).row) {\n pos.column += dir * (end.column - start.column);\n }\n pos.row += dir * (end.row - start.row);\n}\nfunction splitDelta(c, pos) {\n var lines = c.lines;\n var end = c.end;\n c.end = clonePos(pos);\n var rowsBefore = c.end.row - c.start.row;\n var otherLines = lines.splice(rowsBefore, lines.length);\n var col = rowsBefore ? pos.column : pos.column - c.start.column;\n lines.push(otherLines[0].substring(0, col));\n otherLines[0] = otherLines[0].substr(col);\n var rest = {\n start: clonePos(pos),\n end: end,\n lines: otherLines,\n action: c.action\n };\n return rest;\n}\nfunction moveDeltasByOne(redoStack, d) {\n d = cloneDelta(d);\n for (var j = redoStack.length; j--;) {\n var deltaSet = redoStack[j];\n for (var i = 0; i < deltaSet.length; i++) {\n var x = deltaSet[i];\n var xformed = xform(x, d);\n d = xformed[0];\n if (xformed.length != 2) {\n if (xformed[2]) {\n deltaSet.splice(i + 1, 1, xformed[1], xformed[2]);\n i++;\n }\n else if (!xformed[1]) {\n deltaSet.splice(i, 1);\n i--;\n }\n }\n }\n if (!deltaSet.length) {\n redoStack.splice(j, 1);\n }\n }\n return redoStack;\n}\nfunction rebaseRedoStack(redoStack, deltaSets) {\n for (var i = 0; i < deltaSets.length; i++) {\n var deltas = deltaSets[i];\n for (var j = 0; j < deltas.length; j++) {\n moveDeltasByOne(redoStack, deltas[j]);\n }\n }\n}\nexports.UndoManager = UndoManager;\n\n});\n\nace.define(\"ace/edit_session/fold_line\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar FoldLine = /** @class */ (function () {\n function FoldLine(foldData, folds) {\n this.foldData = foldData;\n if (Array.isArray(folds)) {\n this.folds = folds;\n }\n else {\n folds = this.folds = [folds];\n }\n var last = folds[folds.length - 1];\n this.range = new Range(folds[0].start.row, folds[0].start.column, last.end.row, last.end.column);\n this.start = this.range.start;\n this.end = this.range.end;\n this.folds.forEach(function (fold) {\n fold.setFoldLine(this);\n }, this);\n }\n FoldLine.prototype.shiftRow = function (shift) {\n this.start.row += shift;\n this.end.row += shift;\n this.folds.forEach(function (fold) {\n fold.start.row += shift;\n fold.end.row += shift;\n });\n };\n FoldLine.prototype.addFold = function (fold) {\n if (fold.sameRow) {\n if (fold.start.row < this.startRow || fold.endRow > this.endRow) {\n throw new Error(\"Can't add a fold to this FoldLine as it has no connection\");\n }\n this.folds.push(fold);\n this.folds.sort(function (a, b) {\n return -a.range.compareEnd(b.start.row, b.start.column);\n });\n if (this.range.compareEnd(fold.start.row, fold.start.column) > 0) {\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n }\n else if (this.range.compareStart(fold.end.row, fold.end.column) < 0) {\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n }\n else if (fold.start.row == this.end.row) {\n this.folds.push(fold);\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n }\n else if (fold.end.row == this.start.row) {\n this.folds.unshift(fold);\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n else {\n throw new Error(\"Trying to add fold to FoldRow that doesn't have a matching row\");\n }\n fold.foldLine = this;\n };\n FoldLine.prototype.containsRow = function (row) {\n return row >= this.start.row && row <= this.end.row;\n };\n FoldLine.prototype.walk = function (callback, endRow, endColumn) {\n var lastEnd = 0, folds = this.folds, fold, cmp, stop, isNewRow = true;\n if (endRow == null) {\n endRow = this.end.row;\n endColumn = this.end.column;\n }\n for (var i = 0; i < folds.length; i++) {\n fold = folds[i];\n cmp = fold.range.compareStart(endRow, endColumn);\n if (cmp == -1) {\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n return;\n }\n stop = callback(null, fold.start.row, fold.start.column, lastEnd, isNewRow);\n stop = !stop && callback(fold.placeholder, fold.start.row, fold.start.column, lastEnd);\n if (stop || cmp === 0) {\n return;\n }\n isNewRow = !fold.sameRow;\n lastEnd = fold.end.column;\n }\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n };\n FoldLine.prototype.getNextFoldTo = function (row, column) {\n var fold, cmp;\n for (var i = 0; i < this.folds.length; i++) {\n fold = this.folds[i];\n cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n return {\n fold: fold,\n kind: \"after\"\n };\n }\n else if (cmp === 0) {\n return {\n fold: fold,\n kind: \"inside\"\n };\n }\n }\n return null;\n };\n FoldLine.prototype.addRemoveChars = function (row, column, len) {\n var ret = this.getNextFoldTo(row, column), fold, folds;\n if (ret) {\n fold = ret.fold;\n if (ret.kind == \"inside\"\n && fold.start.column != column\n && fold.start.row != row) {\n window.console && window.console.log(row, column, fold);\n }\n else if (fold.start.row == row) {\n folds = this.folds;\n var i = folds.indexOf(fold);\n if (i === 0) {\n this.start.column += len;\n }\n for (i; i < folds.length; i++) {\n fold = folds[i];\n fold.start.column += len;\n if (!fold.sameRow) {\n return;\n }\n fold.end.column += len;\n }\n this.end.column += len;\n }\n }\n };\n FoldLine.prototype.split = function (row, column) {\n var pos = this.getNextFoldTo(row, column);\n if (!pos || pos.kind == \"inside\")\n return null;\n var fold = pos.fold;\n var folds = this.folds;\n var foldData = this.foldData;\n var i = folds.indexOf(fold);\n var foldBefore = folds[i - 1];\n this.end.row = foldBefore.end.row;\n this.end.column = foldBefore.end.column;\n folds = folds.splice(i, folds.length - i);\n var newFoldLine = new FoldLine(foldData, folds);\n foldData.splice(foldData.indexOf(this) + 1, 0, newFoldLine);\n return newFoldLine;\n };\n FoldLine.prototype.merge = function (foldLineNext) {\n var folds = foldLineNext.folds;\n for (var i = 0; i < folds.length; i++) {\n this.addFold(folds[i]);\n }\n var foldData = this.foldData;\n foldData.splice(foldData.indexOf(foldLineNext), 1);\n };\n FoldLine.prototype.toString = function () {\n var ret = [this.range.toString() + \": [\"];\n this.folds.forEach(function (fold) {\n ret.push(\" \" + fold.toString());\n });\n ret.push(\"]\");\n return ret.join(\"\\n\");\n };\n FoldLine.prototype.idxToPosition = function (idx) {\n var lastFoldEndColumn = 0;\n for (var i = 0; i < this.folds.length; i++) {\n var fold = this.folds[i];\n idx -= fold.start.column - lastFoldEndColumn;\n if (idx < 0) {\n return {\n row: fold.start.row,\n column: fold.start.column + idx\n };\n }\n idx -= fold.placeholder.length;\n if (idx < 0) {\n return fold.start;\n }\n lastFoldEndColumn = fold.end.column;\n }\n return {\n row: this.end.row,\n column: this.end.column + idx\n };\n };\n return FoldLine;\n}());\nexports.FoldLine = FoldLine;\n\n});\n\nace.define(\"ace/range_list\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar comparePoints = Range.comparePoints;\nvar RangeList = /** @class */ (function () {\n function RangeList() {\n this.ranges = [];\n this.$bias = 1;\n }\n RangeList.prototype.pointIndex = function (pos, excludeEdges, startIndex) {\n var list = this.ranges;\n for (var i = startIndex || 0; i < list.length; i++) {\n var range = list[i];\n var cmpEnd = comparePoints(pos, range.end);\n if (cmpEnd > 0)\n continue;\n var cmpStart = comparePoints(pos, range.start);\n if (cmpEnd === 0)\n return excludeEdges && cmpStart !== 0 ? -i - 2 : i;\n if (cmpStart > 0 || (cmpStart === 0 && !excludeEdges))\n return i;\n return -i - 1;\n }\n return -i - 1;\n };\n RangeList.prototype.add = function (range) {\n var excludeEdges = !range.isEmpty();\n var startIndex = this.pointIndex(range.start, excludeEdges);\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex(range.end, excludeEdges, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n else\n endIndex++;\n return this.ranges.splice(startIndex, endIndex - startIndex, range);\n };\n RangeList.prototype.addList = function (list) {\n var removed = [];\n for (var i = list.length; i--;) {\n removed.push.apply(removed, this.add(list[i]));\n }\n return removed;\n };\n RangeList.prototype.substractPoint = function (pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges.splice(i, 1);\n };\n RangeList.prototype.merge = function () {\n var removed = [];\n var list = this.ranges;\n list = list.sort(function (a, b) {\n return comparePoints(a.start, b.start);\n });\n var next = list[0], range;\n for (var i = 1; i < list.length; i++) {\n range = next;\n next = list[i];\n var cmp = comparePoints(range.end, next.start);\n if (cmp < 0)\n continue;\n if (cmp == 0 && !range.isEmpty() && !next.isEmpty())\n continue;\n if (comparePoints(range.end, next.end) < 0) {\n range.end.row = next.end.row;\n range.end.column = next.end.column;\n }\n list.splice(i, 1);\n removed.push(next);\n next = range;\n i--;\n }\n this.ranges = list;\n return removed;\n };\n RangeList.prototype.contains = function (row, column) {\n return this.pointIndex({ row: row, column: column }) >= 0;\n };\n RangeList.prototype.containsPoint = function (pos) {\n return this.pointIndex(pos) >= 0;\n };\n RangeList.prototype.rangeAtPoint = function (pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges[i];\n };\n RangeList.prototype.clipRows = function (startRow, endRow) {\n var list = this.ranges;\n if (list[0].start.row > endRow || list[list.length - 1].start.row < startRow)\n return [];\n var startIndex = this.pointIndex({ row: startRow, column: 0 });\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex({ row: endRow, column: 0 }, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n var clipped = [];\n for (var i = startIndex; i < endIndex; i++) {\n clipped.push(list[i]);\n }\n return clipped;\n };\n RangeList.prototype.removeAll = function () {\n return this.ranges.splice(0, this.ranges.length);\n };\n RangeList.prototype.attach = function (session) {\n if (this.session)\n this.detach();\n this.session = session;\n this.onChange = this.$onChange.bind(this);\n this.session.on('change', this.onChange);\n };\n RangeList.prototype.detach = function () {\n if (!this.session)\n return;\n this.session.removeListener('change', this.onChange);\n this.session = null;\n };\n RangeList.prototype.$onChange = function (delta) {\n var start = delta.start;\n var end = delta.end;\n var startRow = start.row;\n var endRow = end.row;\n var ranges = this.ranges;\n for (var i = 0, n = ranges.length; i < n; i++) {\n var r = ranges[i];\n if (r.end.row >= startRow)\n break;\n }\n if (delta.action == \"insert\") {\n var lineDif = endRow - startRow;\n var colDiff = -start.column + end.column;\n for (; i < n; i++) {\n var r = ranges[i];\n if (r.start.row > startRow)\n break;\n if (r.start.row == startRow && r.start.column >= start.column) {\n if (r.start.column == start.column && this.$bias <= 0) {\n }\n else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n if (r.end.row == startRow && r.end.column >= start.column) {\n if (r.end.column == start.column && this.$bias < 0) {\n continue;\n }\n if (r.end.column == start.column && colDiff > 0 && i < n - 1) {\n if (r.end.column > r.start.column && r.end.column == ranges[i + 1].start.column)\n r.end.column -= colDiff;\n }\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n }\n else {\n var lineDif = startRow - endRow;\n var colDiff = start.column - end.column;\n for (; i < n; i++) {\n var r = ranges[i];\n if (r.start.row > endRow)\n break;\n if (r.end.row < endRow\n && (startRow < r.end.row\n || startRow == r.end.row && start.column < r.end.column)) {\n r.end.row = startRow;\n r.end.column = start.column;\n }\n else if (r.end.row == endRow) {\n if (r.end.column <= end.column) {\n if (lineDif || r.end.column > start.column) {\n r.end.column = start.column;\n r.end.row = start.row;\n }\n }\n else {\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n else if (r.end.row > endRow) {\n r.end.row += lineDif;\n }\n if (r.start.row < endRow\n && (startRow < r.start.row\n || startRow == r.start.row && start.column < r.start.column)) {\n r.start.row = startRow;\n r.start.column = start.column;\n }\n else if (r.start.row == endRow) {\n if (r.start.column <= end.column) {\n if (lineDif || r.start.column > start.column) {\n r.start.column = start.column;\n r.start.row = start.row;\n }\n }\n else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n else if (r.start.row > endRow) {\n r.start.row += lineDif;\n }\n }\n }\n if (lineDif != 0 && i < n) {\n for (; i < n; i++) {\n var r = ranges[i];\n r.start.row += lineDif;\n r.end.row += lineDif;\n }\n }\n };\n return RangeList;\n}());\nRangeList.prototype.comparePoints = comparePoints;\nexports.RangeList = RangeList;\n\n});\n\nace.define(\"ace/edit_session/fold\",[\"require\",\"exports\",\"module\",\"ace/range_list\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar RangeList = require(\"../range_list\").RangeList;\nvar Fold = /** @class */ (function (_super) {\n __extends(Fold, _super);\n function Fold(range, placeholder) {\n var _this = _super.call(this) || this;\n _this.foldLine = null;\n _this.placeholder = placeholder;\n _this.range = range;\n _this.start = range.start;\n _this.end = range.end;\n _this.sameRow = range.start.row == range.end.row;\n _this.subFolds = _this.ranges = [];\n return _this;\n }\n Fold.prototype.toString = function () {\n return '\"' + this.placeholder + '\" ' + this.range.toString();\n };\n Fold.prototype.setFoldLine = function (foldLine) {\n this.foldLine = foldLine;\n this.subFolds.forEach(function (fold) {\n fold.setFoldLine(foldLine);\n });\n };\n Fold.prototype.clone = function () {\n var range = this.range.clone();\n var fold = new Fold(range, this.placeholder);\n this.subFolds.forEach(function (subFold) {\n fold.subFolds.push(subFold.clone());\n });\n fold.collapseChildren = this.collapseChildren;\n return fold;\n };\n Fold.prototype.addSubFold = function (fold) {\n if (this.range.isEqual(fold))\n return;\n consumeRange(fold, this.start);\n var row = fold.start.row, column = fold.start.column;\n for (var i = 0, cmp = -1; i < this.subFolds.length; i++) {\n cmp = this.subFolds[i].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n var afterStart = this.subFolds[i];\n var firstConsumed = 0;\n if (cmp == 0) {\n if (afterStart.range.containsRange(fold))\n return afterStart.addSubFold(fold);\n else\n firstConsumed = 1;\n }\n var row = fold.range.end.row, column = fold.range.end.column;\n for (var j = i, cmp = -1; j < this.subFolds.length; j++) {\n cmp = this.subFolds[j].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n if (cmp == 0)\n j++;\n var consumedFolds = this.subFolds.splice(i, j - i, fold);\n var last = cmp == 0 ? consumedFolds.length - 1 : consumedFolds.length;\n for (var k = firstConsumed; k < last; k++) {\n fold.addSubFold(consumedFolds[k]);\n }\n fold.setFoldLine(this.foldLine);\n return fold;\n };\n Fold.prototype.restoreRange = function (range) {\n return restoreRange(range, this.start);\n };\n return Fold;\n}(RangeList));\nfunction consumePoint(point, anchor) {\n point.row -= anchor.row;\n if (point.row == 0)\n point.column -= anchor.column;\n}\nfunction consumeRange(range, anchor) {\n consumePoint(range.start, anchor);\n consumePoint(range.end, anchor);\n}\nfunction restorePoint(point, anchor) {\n if (point.row == 0)\n point.column += anchor.column;\n point.row += anchor.row;\n}\nfunction restoreRange(range, anchor) {\n restorePoint(range.start, anchor);\n restorePoint(range.end, anchor);\n}\nexports.Fold = Fold;\n\n});\n\nace.define(\"ace/edit_session/folding\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/edit_session/fold_line\",\"ace/edit_session/fold\",\"ace/token_iterator\",\"ace/mouse/mouse_event\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar FoldLine = require(\"./fold_line\").FoldLine;\nvar Fold = require(\"./fold\").Fold;\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar MouseEvent = require(\"../mouse/mouse_event\").MouseEvent;\nfunction Folding() {\n this.getFoldAt = function (row, column, side) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine)\n return null;\n var folds = foldLine.folds;\n for (var i = 0; i < folds.length; i++) {\n var range = folds[i].range;\n if (range.contains(row, column)) {\n if (side == 1 && range.isEnd(row, column) && !range.isEmpty()) {\n continue;\n }\n else if (side == -1 && range.isStart(row, column) && !range.isEmpty()) {\n continue;\n }\n return folds[i];\n }\n }\n };\n this.getFoldsInRange = function (range) {\n var start = range.start;\n var end = range.end;\n var foldLines = this.$foldData;\n var foundFolds = [];\n start.column += 1;\n end.column -= 1;\n for (var i = 0; i < foldLines.length; i++) {\n var cmp = foldLines[i].range.compareRange(range);\n if (cmp == 2) {\n continue;\n }\n else if (cmp == -2) {\n break;\n }\n var folds = foldLines[i].folds;\n for (var j = 0; j < folds.length; j++) {\n var fold = folds[j];\n cmp = fold.range.compareRange(range);\n if (cmp == -2) {\n break;\n }\n else if (cmp == 2) {\n continue;\n }\n else \n if (cmp == 42) {\n break;\n }\n foundFolds.push(fold);\n }\n }\n start.column -= 1;\n end.column += 1;\n return foundFolds;\n };\n this.getFoldsInRangeList = function (ranges) {\n if (Array.isArray(ranges)) {\n var folds = [];\n ranges.forEach(function (range) {\n folds = folds.concat(this.getFoldsInRange(range));\n }, this);\n }\n else {\n var folds = this.getFoldsInRange(ranges);\n }\n return folds;\n };\n this.getAllFolds = function () {\n var folds = [];\n var foldLines = this.$foldData;\n for (var i = 0; i < foldLines.length; i++)\n for (var j = 0; j < foldLines[i].folds.length; j++)\n folds.push(foldLines[i].folds[j]);\n return folds;\n };\n this.getFoldStringAt = function (row, column, trim, foldLine) {\n foldLine = foldLine || this.getFoldLine(row);\n if (!foldLine)\n return null;\n var lastFold = {\n end: { column: 0 }\n };\n var str, fold;\n for (var i = 0; i < foldLine.folds.length; i++) {\n fold = foldLine.folds[i];\n var cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n str = this\n .getLine(fold.start.row)\n .substring(lastFold.end.column, fold.start.column);\n break;\n }\n else if (cmp === 0) {\n return null;\n }\n lastFold = fold;\n }\n if (!str)\n str = this.getLine(fold.start.row).substring(lastFold.end.column);\n if (trim == -1)\n return str.substring(0, column - lastFold.end.column);\n else if (trim == 1)\n return str.substring(column - lastFold.end.column);\n else\n return str;\n };\n this.getFoldLine = function (docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.start.row <= docRow && foldLine.end.row >= docRow) {\n return foldLine;\n }\n else if (foldLine.end.row > docRow) {\n return null;\n }\n }\n return null;\n };\n this.getNextFoldLine = function (docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.end.row >= docRow) {\n return foldLine;\n }\n }\n return null;\n };\n this.getFoldedRowCount = function (first, last) {\n var foldData = this.$foldData, rowCount = last - first + 1;\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i], end = foldLine.end.row, start = foldLine.start.row;\n if (end >= last) {\n if (start < last) {\n if (start >= first)\n rowCount -= last - start;\n else\n rowCount = 0; // in one fold\n }\n break;\n }\n else if (end >= first) {\n if (start >= first) // fold inside range\n rowCount -= end - start;\n else\n rowCount -= end - first + 1;\n }\n }\n return rowCount;\n };\n this.$addFoldLine = function (foldLine) {\n this.$foldData.push(foldLine);\n this.$foldData.sort(function (a, b) {\n return a.start.row - b.start.row;\n });\n return foldLine;\n };\n this.addFold = function (placeholder, range) {\n var foldData = this.$foldData;\n var added = false;\n var fold;\n if (placeholder instanceof Fold)\n fold = placeholder;\n else {\n fold = new Fold(range, placeholder);\n fold.collapseChildren = range.collapseChildren;\n }\n this.$clipRangeToDocument(fold.range);\n var startRow = fold.start.row;\n var startColumn = fold.start.column;\n var endRow = fold.end.row;\n var endColumn = fold.end.column;\n var startFold = this.getFoldAt(startRow, startColumn, 1);\n var endFold = this.getFoldAt(endRow, endColumn, -1);\n if (startFold && endFold == startFold)\n return startFold.addSubFold(fold);\n if (startFold && !startFold.range.isStart(startRow, startColumn))\n this.removeFold(startFold);\n if (endFold && !endFold.range.isEnd(endRow, endColumn))\n this.removeFold(endFold);\n var folds = this.getFoldsInRange(fold.range);\n if (folds.length > 0) {\n this.removeFolds(folds);\n if (!fold.collapseChildren) {\n folds.forEach(function (subFold) {\n fold.addSubFold(subFold);\n });\n }\n }\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (endRow == foldLine.start.row) {\n foldLine.addFold(fold);\n added = true;\n break;\n }\n else if (startRow == foldLine.end.row) {\n foldLine.addFold(fold);\n added = true;\n if (!fold.sameRow) {\n var foldLineNext = foldData[i + 1];\n if (foldLineNext && foldLineNext.start.row == endRow) {\n foldLine.merge(foldLineNext);\n break;\n }\n }\n break;\n }\n else if (endRow <= foldLine.start.row) {\n break;\n }\n }\n if (!added)\n foldLine = this.$addFoldLine(new FoldLine(this.$foldData, fold));\n if (this.$useWrapMode)\n this.$updateWrapData(foldLine.start.row, foldLine.start.row);\n else\n this.$updateRowLengthCache(foldLine.start.row, foldLine.start.row);\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"add\" });\n return fold;\n };\n this.addFolds = function (folds) {\n folds.forEach(function (fold) {\n this.addFold(fold);\n }, this);\n };\n this.removeFold = function (fold) {\n var foldLine = fold.foldLine;\n var startRow = foldLine.start.row;\n var endRow = foldLine.end.row;\n var foldLines = this.$foldData;\n var folds = foldLine.folds;\n if (folds.length == 1) {\n foldLines.splice(foldLines.indexOf(foldLine), 1);\n }\n else \n if (foldLine.range.isEnd(fold.end.row, fold.end.column)) {\n folds.pop();\n foldLine.end.row = folds[folds.length - 1].end.row;\n foldLine.end.column = folds[folds.length - 1].end.column;\n }\n else \n if (foldLine.range.isStart(fold.start.row, fold.start.column)) {\n folds.shift();\n foldLine.start.row = folds[0].start.row;\n foldLine.start.column = folds[0].start.column;\n }\n else \n if (fold.sameRow) {\n folds.splice(folds.indexOf(fold), 1);\n }\n else \n {\n var newFoldLine = foldLine.split(fold.start.row, fold.start.column);\n folds = newFoldLine.folds;\n folds.shift();\n newFoldLine.start.row = folds[0].start.row;\n newFoldLine.start.column = folds[0].start.column;\n }\n if (!this.$updating) {\n if (this.$useWrapMode)\n this.$updateWrapData(startRow, endRow);\n else\n this.$updateRowLengthCache(startRow, endRow);\n }\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"remove\" });\n };\n this.removeFolds = function (folds) {\n var cloneFolds = [];\n for (var i = 0; i < folds.length; i++) {\n cloneFolds.push(folds[i]);\n }\n cloneFolds.forEach(function (fold) {\n this.removeFold(fold);\n }, this);\n this.$modified = true;\n };\n this.expandFold = function (fold) {\n this.removeFold(fold);\n fold.subFolds.forEach(function (subFold) {\n fold.restoreRange(subFold);\n this.addFold(subFold);\n }, this);\n if (fold.collapseChildren > 0) {\n this.foldAll(fold.start.row + 1, fold.end.row, fold.collapseChildren - 1);\n }\n fold.subFolds = [];\n };\n this.expandFolds = function (folds) {\n folds.forEach(function (fold) {\n this.expandFold(fold);\n }, this);\n };\n this.unfold = function (location, expandInner) {\n var range, folds;\n if (location == null) {\n range = new Range(0, 0, this.getLength(), 0);\n if (expandInner == null)\n expandInner = true;\n }\n else if (typeof location == \"number\") {\n range = new Range(location, 0, location, this.getLine(location).length);\n }\n else if (\"row\" in location) {\n range = Range.fromPoints(location, location);\n }\n else if (Array.isArray(location)) {\n folds = [];\n location.forEach(function (range) {\n folds = folds.concat(this.unfold(range));\n }, this);\n return folds;\n }\n else {\n range = location;\n }\n folds = this.getFoldsInRangeList(range);\n var outermostFolds = folds;\n while (folds.length == 1\n && Range.comparePoints(folds[0].start, range.start) < 0\n && Range.comparePoints(folds[0].end, range.end) > 0) {\n this.expandFolds(folds);\n folds = this.getFoldsInRangeList(range);\n }\n if (expandInner != false) {\n this.removeFolds(folds);\n }\n else {\n this.expandFolds(folds);\n }\n if (outermostFolds.length)\n return outermostFolds;\n };\n this.isRowFolded = function (docRow, startFoldRow) {\n return !!this.getFoldLine(docRow, startFoldRow);\n };\n this.getRowFoldEnd = function (docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.end.row : docRow;\n };\n this.getRowFoldStart = function (docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.start.row : docRow;\n };\n this.getFoldDisplayLine = function (foldLine, endRow, endColumn, startRow, startColumn) {\n if (startRow == null)\n startRow = foldLine.start.row;\n if (startColumn == null)\n startColumn = 0;\n if (endRow == null)\n endRow = foldLine.end.row;\n if (endColumn == null)\n endColumn = this.getLine(endRow).length;\n var doc = this.doc;\n var textLine = \"\";\n foldLine.walk(function (placeholder, row, column, lastColumn) {\n if (row < startRow)\n return;\n if (row == startRow) {\n if (column < startColumn)\n return;\n lastColumn = Math.max(startColumn, lastColumn);\n }\n if (placeholder != null) {\n textLine += placeholder;\n }\n else {\n textLine += doc.getLine(row).substring(lastColumn, column);\n }\n }, endRow, endColumn);\n return textLine;\n };\n this.getDisplayLine = function (row, endColumn, startRow, startColumn) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine) {\n var line;\n line = this.doc.getLine(row);\n return line.substring(startColumn || 0, endColumn || line.length);\n }\n else {\n return this.getFoldDisplayLine(foldLine, row, endColumn, startRow, startColumn);\n }\n };\n this.$cloneFoldData = function () {\n var fd = [];\n fd = this.$foldData.map(function (foldLine) {\n var folds = foldLine.folds.map(function (fold) {\n return fold.clone();\n });\n return new FoldLine(fd, folds);\n });\n return fd;\n };\n this.toggleFold = function (tryToUnfold) {\n var selection = this.selection;\n var range = selection.getRange();\n var fold;\n var bracketPos;\n if (range.isEmpty()) {\n var cursor = range.start;\n fold = this.getFoldAt(cursor.row, cursor.column);\n if (fold) {\n this.expandFold(fold);\n return;\n }\n else if (bracketPos = this.findMatchingBracket(cursor)) {\n if (range.comparePoint(bracketPos) == 1) {\n range.end = bracketPos;\n }\n else {\n range.start = bracketPos;\n range.start.column++;\n range.end.column--;\n }\n }\n else if (bracketPos = this.findMatchingBracket({ row: cursor.row, column: cursor.column + 1 })) {\n if (range.comparePoint(bracketPos) == 1)\n range.end = bracketPos;\n else\n range.start = bracketPos;\n range.start.column++;\n }\n else {\n range = this.getCommentFoldRange(cursor.row, cursor.column) || range;\n }\n }\n else {\n var folds = this.getFoldsInRange(range);\n if (tryToUnfold && folds.length) {\n this.expandFolds(folds);\n return;\n }\n else if (folds.length == 1) {\n fold = folds[0];\n }\n }\n if (!fold)\n fold = this.getFoldAt(range.start.row, range.start.column);\n if (fold && fold.range.toString() == range.toString()) {\n this.expandFold(fold);\n return;\n }\n var placeholder = \"...\";\n if (!range.isMultiLine()) {\n placeholder = this.getTextRange(range);\n if (placeholder.length < 4)\n return;\n placeholder = placeholder.trim().substring(0, 2) + \"..\";\n }\n this.addFold(placeholder, range);\n };\n this.getCommentFoldRange = function (row, column, dir) {\n var iterator = new TokenIterator(this, row, column);\n var token = iterator.getCurrentToken();\n var type = token && token.type;\n if (token && /^comment|string/.test(type)) {\n type = type.match(/comment|string/)[0];\n if (type == \"comment\")\n type += \"|doc-start|\\\\.doc\";\n var re = new RegExp(type);\n var range = new Range();\n if (dir != 1) {\n do {\n token = iterator.stepBackward();\n } while (token && re.test(token.type) && !/^comment.end/.test(token.type));\n token = iterator.stepForward();\n }\n range.start.row = iterator.getCurrentTokenRow();\n range.start.column = iterator.getCurrentTokenColumn() + (/^comment.start/.test(token.type) ? token.value.length : 2);\n iterator = new TokenIterator(this, row, column);\n if (dir != -1) {\n var lastRow = -1;\n do {\n token = iterator.stepForward();\n if (lastRow == -1) {\n var state = this.getState(iterator.$row);\n if (!re.test(state))\n lastRow = iterator.$row;\n }\n else if (iterator.$row > lastRow) {\n break;\n }\n } while (token && re.test(token.type) && !/^comment.start/.test(token.type));\n token = iterator.stepBackward();\n }\n else\n token = iterator.getCurrentToken();\n range.end.row = iterator.getCurrentTokenRow();\n range.end.column = iterator.getCurrentTokenColumn();\n if (!/^comment.end/.test(token.type)) {\n range.end.column += token.value.length - 2;\n }\n return range;\n }\n };\n this.foldAll = function (startRow, endRow, depth, test) {\n if (depth == undefined)\n depth = 100000; // JSON.stringify doesn't hanle Infinity\n var foldWidgets = this.foldWidgets;\n if (!foldWidgets)\n return; // mode doesn't support folding\n endRow = endRow || this.getLength();\n startRow = startRow || 0;\n for (var row = startRow; row < endRow; row++) {\n if (foldWidgets[row] == null)\n foldWidgets[row] = this.getFoldWidget(row);\n if (foldWidgets[row] != \"start\")\n continue;\n if (test && !test(row))\n continue;\n var range = this.getFoldWidgetRange(row);\n if (range && range.isMultiLine()\n && range.end.row <= endRow\n && range.start.row >= startRow) {\n row = range.end.row;\n range.collapseChildren = depth;\n this.addFold(\"...\", range);\n }\n }\n };\n this.foldToLevel = function (level) {\n this.foldAll();\n while (level-- > 0)\n this.unfold(null, false);\n };\n this.foldAllComments = function () {\n var session = this;\n this.foldAll(null, null, null, function (row) {\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token.type == \"text\" && /^\\s+$/.test(token.value))\n continue;\n if (/comment/.test(token.type))\n return true;\n return false;\n }\n });\n };\n this.$foldStyles = {\n \"manual\": 1,\n \"markbegin\": 1,\n \"markbeginend\": 1\n };\n this.$foldStyle = \"markbegin\";\n this.setFoldStyle = function (style) {\n if (!this.$foldStyles[style])\n throw new Error(\"invalid fold style: \" + style + \"[\" + Object.keys(this.$foldStyles).join(\", \") + \"]\");\n if (this.$foldStyle == style)\n return;\n this.$foldStyle = style;\n if (style == \"manual\")\n this.unfold();\n var mode = this.$foldMode;\n this.$setFolding(null);\n this.$setFolding(mode);\n };\n this.$setFolding = function (foldMode) {\n if (this.$foldMode == foldMode)\n return;\n this.$foldMode = foldMode;\n this.off('change', this.$updateFoldWidgets);\n this.off('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n this._signal(\"changeAnnotation\");\n if (!foldMode || this.$foldStyle == \"manual\") {\n this.foldWidgets = null;\n return;\n }\n this.foldWidgets = [];\n this.getFoldWidget = foldMode.getFoldWidget.bind(foldMode, this, this.$foldStyle);\n this.getFoldWidgetRange = foldMode.getFoldWidgetRange.bind(foldMode, this, this.$foldStyle);\n this.$updateFoldWidgets = this.updateFoldWidgets.bind(this);\n this.$tokenizerUpdateFoldWidgets = this.tokenizerUpdateFoldWidgets.bind(this);\n this.on('change', this.$updateFoldWidgets);\n this.on('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n };\n this.getParentFoldRangeData = function (row, ignoreCurrent) {\n var fw = this.foldWidgets;\n if (!fw || (ignoreCurrent && fw[row]))\n return {};\n var i = row - 1, firstRange;\n while (i >= 0) {\n var c = fw[i];\n if (c == null)\n c = fw[i] = this.getFoldWidget(i);\n if (c == \"start\") {\n var range = this.getFoldWidgetRange(i);\n if (!firstRange)\n firstRange = range;\n if (range && range.end.row >= row)\n break;\n }\n i--;\n }\n return {\n range: i !== -1 && range,\n firstRange: firstRange\n };\n };\n this.onFoldWidgetClick = function (row, e) {\n if (e instanceof MouseEvent)\n e = e.domEvent;\n var options = {\n children: e.shiftKey,\n all: e.ctrlKey || e.metaKey,\n siblings: e.altKey\n };\n var range = this.$toggleFoldWidget(row, options);\n if (!range) {\n var el = (e.target || e.srcElement);\n if (el && /ace_fold-widget/.test(el.className))\n el.className += \" ace_invalid\";\n }\n };\n this.$toggleFoldWidget = function (row, options) {\n if (!this.getFoldWidget)\n return;\n var type = this.getFoldWidget(row);\n var line = this.getLine(row);\n var dir = type === \"end\" ? -1 : 1;\n var fold = this.getFoldAt(row, dir === -1 ? 0 : line.length, dir);\n if (fold) {\n if (options.children || options.all)\n this.removeFold(fold);\n else\n this.expandFold(fold);\n return fold;\n }\n var range = this.getFoldWidgetRange(row, true);\n if (range && !range.isMultiLine()) {\n fold = this.getFoldAt(range.start.row, range.start.column, 1);\n if (fold && range.isEqual(fold.range)) {\n this.removeFold(fold);\n return fold;\n }\n }\n if (options.siblings) {\n var data = this.getParentFoldRangeData(row);\n if (data.range) {\n var startRow = data.range.start.row + 1;\n var endRow = data.range.end.row;\n }\n this.foldAll(startRow, endRow, options.all ? 10000 : 0);\n }\n else if (options.children) {\n endRow = range ? range.end.row : this.getLength();\n this.foldAll(row + 1, endRow, options.all ? 10000 : 0);\n }\n else if (range) {\n if (options.all)\n range.collapseChildren = 10000;\n this.addFold(\"...\", range);\n }\n return range;\n };\n this.toggleFoldWidget = function (toggleParent) {\n var row = this.selection.getCursor().row;\n row = this.getRowFoldStart(row);\n var range = this.$toggleFoldWidget(row, {});\n if (range)\n return;\n var data = this.getParentFoldRangeData(row, true);\n range = data.range || data.firstRange;\n if (range) {\n row = range.start.row;\n var fold = this.getFoldAt(row, this.getLine(row).length, 1);\n if (fold) {\n this.removeFold(fold);\n }\n else {\n this.addFold(\"...\", range);\n }\n }\n };\n this.updateFoldWidgets = function (delta) {\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n this.foldWidgets[firstRow] = null;\n }\n else if (delta.action == 'remove') {\n this.foldWidgets.splice(firstRow, len + 1, null);\n }\n else {\n var args = Array(len + 1);\n args.unshift(firstRow, 1);\n this.foldWidgets.splice.apply(this.foldWidgets, args);\n }\n };\n this.tokenizerUpdateFoldWidgets = function (e) {\n var rows = e.data;\n if (rows.first != rows.last) {\n if (this.foldWidgets.length > rows.first)\n this.foldWidgets.splice(rows.first, this.foldWidgets.length);\n }\n };\n}\nexports.Folding = Folding;\n\n});\n\nace.define(\"ace/edit_session/bracket_match\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar Range = require(\"../range\").Range;\nfunction BracketMatch() {\n this.findMatchingBracket = function (position, chr) {\n if (position.column == 0)\n return null;\n var charBeforeCursor = chr || this.getLine(position.row).charAt(position.column - 1);\n if (charBeforeCursor == \"\")\n return null;\n var match = charBeforeCursor.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match)\n return null;\n if (match[1])\n return this.$findClosingBracket(match[1], position);\n else\n return this.$findOpeningBracket(match[2], position);\n };\n this.getBracketRange = function (pos) {\n var line = this.getLine(pos.row);\n var before = true, range;\n var chr = line.charAt(pos.column - 1);\n var match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match) {\n chr = line.charAt(pos.column);\n pos = { row: pos.row, column: pos.column + 1 };\n match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n before = false;\n }\n if (!match)\n return null;\n if (match[1]) {\n var bracketPos = this.$findClosingBracket(match[1], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(pos, bracketPos);\n if (!before) {\n range.end.column++;\n range.start.column--;\n }\n range.cursor = range.end;\n }\n else {\n var bracketPos = this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(bracketPos, pos);\n if (!before) {\n range.start.column++;\n range.end.column--;\n }\n range.cursor = range.start;\n }\n return range;\n };\n this.getMatchingBracketRanges = function (pos, isBackwards) {\n var line = this.getLine(pos.row);\n var bracketsRegExp = /([\\(\\[\\{])|([\\)\\]\\}])/;\n var chr = !isBackwards && line.charAt(pos.column - 1);\n var match = chr && chr.match(bracketsRegExp);\n if (!match) {\n chr = (isBackwards === undefined || isBackwards) && line.charAt(pos.column);\n pos = {\n row: pos.row,\n column: pos.column + 1\n };\n match = chr && chr.match(bracketsRegExp);\n }\n if (!match)\n return null;\n var startRange = new Range(pos.row, pos.column - 1, pos.row, pos.column);\n var bracketPos = match[1] ? this.$findClosingBracket(match[1], pos)\n : this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return [startRange];\n var endRange = new Range(bracketPos.row, bracketPos.column, bracketPos.row, bracketPos.column + 1);\n return [startRange, endRange];\n };\n this.$brackets = {\n \")\": \"(\",\n \"(\": \")\",\n \"]\": \"[\",\n \"[\": \"]\",\n \"{\": \"}\",\n \"}\": \"{\",\n \"<\": \">\",\n \">\": \"<\"\n };\n this.$findOpeningBracket = function (bracket, position, typeRe) {\n var openBracket = this.$brackets[bracket];\n var depth = 1;\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n if (!typeRe) {\n typeRe = new RegExp(\"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"rparen\", \".paren\")\n .replace(/\\b(?:end)\\b/, \"(?:start|begin|end)\")\n .replace(/-close\\b/, \"-(close|open)\")\n + \")+\");\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn() - 2;\n var value = token.value;\n while (true) {\n while (valueIndex >= 0) {\n var chr = value.charAt(valueIndex);\n if (chr == openBracket) {\n depth -= 1;\n if (depth == 0) {\n return { row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn() };\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex -= 1;\n }\n do {\n token = iterator.stepBackward();\n } while (token && !typeRe.test(token.type));\n if (token == null)\n break;\n value = token.value;\n valueIndex = value.length - 1;\n }\n return null;\n };\n this.$findClosingBracket = function (bracket, position, typeRe) {\n var closingBracket = this.$brackets[bracket];\n var depth = 1;\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n if (!typeRe) {\n typeRe = new RegExp(\"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"lparen\", \".paren\")\n .replace(/\\b(?:start|begin)\\b/, \"(?:start|begin|end)\")\n .replace(/-open\\b/, \"-(close|open)\")\n + \")+\");\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn();\n while (true) {\n var value = token.value;\n var valueLength = value.length;\n while (valueIndex < valueLength) {\n var chr = value.charAt(valueIndex);\n if (chr == closingBracket) {\n depth -= 1;\n if (depth == 0) {\n return { row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn() };\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex += 1;\n }\n do {\n token = iterator.stepForward();\n } while (token && !typeRe.test(token.type));\n if (token == null)\n break;\n valueIndex = 0;\n }\n return null;\n };\n this.getMatchingTags = function (pos) {\n var iterator = new TokenIterator(this, pos.row, pos.column);\n var token = this.$findTagName(iterator);\n if (!token)\n return;\n var prevToken = iterator.stepBackward();\n if (prevToken.value === '<') {\n return this.$findClosingTag(iterator, token);\n }\n else {\n return this.$findOpeningTag(iterator, token);\n }\n };\n this.$findTagName = function (iterator) {\n var token = iterator.getCurrentToken();\n var found = false;\n var backward = false;\n if (token && token.type.indexOf('tag-name') === -1) {\n do {\n if (backward)\n token = iterator.stepBackward();\n else\n token = iterator.stepForward();\n if (token) {\n if (token.value === \"/>\") {\n backward = true;\n }\n else if (token.type.indexOf('tag-name') !== -1) {\n found = true;\n }\n }\n } while (token && !found);\n }\n return token;\n };\n this.$findClosingTag = function (iterator, token) {\n var prevToken;\n var currentTag = token.value;\n var tag = token.value;\n var depth = 0;\n var openTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1);\n token = iterator.stepForward();\n var openTagName = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + token.value.length);\n var foundOpenTagEnd = false;\n do {\n prevToken = token;\n token = iterator.stepForward();\n if (token) {\n if (token.value === '>' && !foundOpenTagEnd) {\n var openTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for `>`\n foundOpenTagEnd = true;\n }\n if (token.type.indexOf('tag-name') !== -1) {\n currentTag = token.value;\n if (tag === currentTag) {\n if (prevToken.value === '<') {\n depth++;\n }\n else if (prevToken.value === '') {\n var closeTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n }\n else {\n return;\n }\n }\n }\n }\n }\n else if (tag === currentTag && token.value === '/>') { // self-closing tag\n depth--;\n if (depth < 0) { //found self-closing tag end\n var closeTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 2);\n var closeTagName = closeTagStart;\n var closeTagEnd = closeTagName;\n var openTagEnd = new Range(openTagName.end.row, openTagName.end.column, openTagName.end.row, openTagName.end.column + 1);\n }\n }\n }\n } while (token && depth >= 0);\n if (openTagStart && openTagEnd && closeTagStart && closeTagEnd && openTagName && closeTagName) {\n return {\n openTag: new Range(openTagStart.start.row, openTagStart.start.column, openTagEnd.end.row, openTagEnd.end.column),\n closeTag: new Range(closeTagStart.start.row, closeTagStart.start.column, closeTagEnd.end.row, closeTagEnd.end.column),\n openTagName: openTagName,\n closeTagName: closeTagName\n };\n }\n };\n this.$findOpeningTag = function (iterator, token) {\n var prevToken = iterator.getCurrentToken();\n var tag = token.value;\n var depth = 0;\n var startRow = iterator.getCurrentTokenRow();\n var startColumn = iterator.getCurrentTokenColumn();\n var endColumn = startColumn + 2;\n var closeTagStart = new Range(startRow, startColumn, startRow, endColumn); //Range for \")\n return;\n var closeTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n iterator.stepBackward();\n iterator.stepBackward();\n do {\n token = prevToken;\n startRow = iterator.getCurrentTokenRow();\n startColumn = iterator.getCurrentTokenColumn();\n endColumn = startColumn + token.value.length;\n prevToken = iterator.stepBackward();\n if (token) {\n if (token.type.indexOf('tag-name') !== -1) {\n if (tag === token.value) {\n if (prevToken.value === '<') {\n depth++;\n if (depth > 0) { //found opening tag\n var openTagName = new Range(startRow, startColumn, startRow, endColumn);\n var openTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for <\n do {\n token = iterator.stepForward();\n } while (token && token.value !== '>');\n var openTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n }\n }\n else if (prevToken.value === '') { // self-closing tag\n var stepCount = 0;\n var tmpToken = prevToken;\n while (tmpToken) {\n if (tmpToken.type.indexOf('tag-name') !== -1 && tmpToken.value === tag) {\n depth--;\n break;\n }\n else if (tmpToken.value === '<') {\n break;\n }\n tmpToken = iterator.stepBackward();\n stepCount++;\n }\n for (var i = 0; i < stepCount; i++) {\n iterator.stepForward();\n }\n }\n }\n } while (prevToken && depth <= 0);\n if (openTagStart && openTagEnd && closeTagStart && closeTagEnd && openTagName && closeTagName) {\n return {\n openTag: new Range(openTagStart.start.row, openTagStart.start.column, openTagEnd.end.row, openTagEnd.end.column),\n closeTag: new Range(closeTagStart.start.row, closeTagStart.start.column, closeTagEnd.end.row, closeTagEnd.end.column),\n openTagName: openTagName,\n closeTagName: closeTagName\n };\n }\n };\n}\nexports.BracketMatch = BracketMatch;\n\n});\n\nace.define(\"ace/edit_session\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/bidihandler\",\"ace/config\",\"ace/lib/event_emitter\",\"ace/selection\",\"ace/mode/text\",\"ace/range\",\"ace/document\",\"ace/background_tokenizer\",\"ace/search_highlight\",\"ace/undomanager\",\"ace/edit_session/folding\",\"ace/edit_session/bracket_match\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar lang = require(\"./lib/lang\");\nvar BidiHandler = require(\"./bidihandler\").BidiHandler;\nvar config = require(\"./config\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Selection = require(\"./selection\").Selection;\nvar TextMode = require(\"./mode/text\").Mode;\nvar Range = require(\"./range\").Range;\nvar Document = require(\"./document\").Document;\nvar BackgroundTokenizer = require(\"./background_tokenizer\").BackgroundTokenizer;\nvar SearchHighlight = require(\"./search_highlight\").SearchHighlight;\nvar UndoManager = require(\"./undomanager\").UndoManager;\nvar EditSession = /** @class */ (function () {\n function EditSession(text, mode) {\n this.$breakpoints = [];\n this.$decorations = [];\n this.$frontMarkers = {};\n this.$backMarkers = {};\n this.$markerId = 1;\n this.$undoSelect = true;\n this.$foldData = [];\n this.id = \"session\" + (++EditSession.$uid);\n this.$foldData.toString = function () {\n return this.join(\"\\n\");\n };\n this.bgTokenizer = new BackgroundTokenizer((new TextMode()).getTokenizer(), this);\n var _self = this;\n this.bgTokenizer.on(\"update\", function (e) {\n _self._signal(\"tokenizerUpdate\", e);\n });\n this.on(\"changeFold\", this.onChangeFold.bind(this));\n this.$onChange = this.onChange.bind(this);\n if (typeof text != \"object\" || !text.getLine)\n text = new Document(text);\n this.setDocument(text);\n this.selection = new Selection(this);\n this.$bidiHandler = new BidiHandler(this);\n config.resetOptions(this);\n this.setMode(mode);\n config._signal(\"session\", this);\n this.destroyed = false;\n }\n EditSession.prototype.setDocument = function (doc) {\n if (this.doc)\n this.doc.off(\"change\", this.$onChange);\n this.doc = doc;\n doc.on(\"change\", this.$onChange, true);\n this.bgTokenizer.setDocument(this.getDocument());\n this.resetCaches();\n };\n EditSession.prototype.getDocument = function () {\n return this.doc;\n };\n EditSession.prototype.$resetRowCache = function (docRow) {\n if (!docRow) {\n this.$docRowCache = [];\n this.$screenRowCache = [];\n return;\n }\n var l = this.$docRowCache.length;\n var i = this.$getRowCacheIndex(this.$docRowCache, docRow) + 1;\n if (l > i) {\n this.$docRowCache.splice(i, l);\n this.$screenRowCache.splice(i, l);\n }\n };\n EditSession.prototype.$getRowCacheIndex = function (cacheArray, val) {\n var low = 0;\n var hi = cacheArray.length - 1;\n while (low <= hi) {\n var mid = (low + hi) >> 1;\n var c = cacheArray[mid];\n if (val > c)\n low = mid + 1;\n else if (val < c)\n hi = mid - 1;\n else\n return mid;\n }\n return low - 1;\n };\n EditSession.prototype.resetCaches = function () {\n this.$modified = true;\n this.$wrapData = [];\n this.$rowLengthCache = [];\n this.$resetRowCache(0);\n if (!this.destroyed)\n this.bgTokenizer.start(0);\n };\n EditSession.prototype.onChangeFold = function (e) {\n var fold = e.data;\n this.$resetRowCache(fold.start.row);\n };\n EditSession.prototype.onChange = function (delta) {\n this.$modified = true;\n this.$bidiHandler.onChange(delta);\n this.$resetRowCache(delta.start.row);\n var removedFolds = this.$updateInternalDataOnChange(delta);\n if (!this.$fromUndo && this.$undoManager) {\n if (removedFolds && removedFolds.length) {\n this.$undoManager.add({\n action: \"removeFolds\",\n folds: removedFolds\n }, this.mergeUndoDeltas);\n this.mergeUndoDeltas = true;\n }\n this.$undoManager.add(delta, this.mergeUndoDeltas);\n this.mergeUndoDeltas = true;\n this.$informUndoManager.schedule();\n }\n this.bgTokenizer.$updateOnChange(delta);\n this._signal(\"change\", delta);\n };\n EditSession.prototype.setValue = function (text) {\n this.doc.setValue(text);\n this.selection.moveTo(0, 0);\n this.$resetRowCache(0);\n this.setUndoManager(this.$undoManager);\n this.getUndoManager().reset();\n };\n EditSession.fromJSON = function (session) {\n session = JSON.parse(session);\n var undoManager = new UndoManager();\n undoManager.$undoStack = session.history.undo;\n undoManager.$redoStack = session.history.redo;\n undoManager.mark = session.history.mark;\n undoManager.$rev = session.history.rev;\n var editSession = new EditSession(session.value);\n session.folds.forEach(function (fold) {\n editSession.addFold(\"...\", Range.fromPoints(fold.start, fold.end));\n });\n editSession.setAnnotations(session.annotations);\n editSession.setBreakpoints(session.breakpoints);\n editSession.setMode(session.mode);\n editSession.setScrollLeft(session.scrollLeft);\n editSession.setScrollTop(session.scrollTop);\n editSession.setUndoManager(undoManager);\n editSession.selection.fromJSON(session.selection);\n return editSession;\n };\n EditSession.prototype.toJSON = function () {\n return {\n annotations: this.$annotations,\n breakpoints: this.$breakpoints,\n folds: this.getAllFolds().map(function (fold) {\n return fold.range;\n }),\n history: this.getUndoManager(),\n mode: this.$mode.$id,\n scrollLeft: this.$scrollLeft,\n scrollTop: this.$scrollTop,\n selection: this.selection.toJSON(),\n value: this.doc.getValue()\n };\n };\n EditSession.prototype.toString = function () {\n return this.doc.getValue();\n };\n EditSession.prototype.getSelection = function () {\n return this.selection;\n };\n EditSession.prototype.getState = function (row) {\n return this.bgTokenizer.getState(row);\n };\n EditSession.prototype.getTokens = function (row) {\n return this.bgTokenizer.getTokens(row);\n };\n EditSession.prototype.getTokenAt = function (row, column) {\n var tokens = this.bgTokenizer.getTokens(row);\n var token, c = 0;\n if (column == null) {\n var i = tokens.length - 1;\n c = this.getLine(row).length;\n }\n else {\n for (var i = 0; i < tokens.length; i++) {\n c += tokens[i].value.length;\n if (c >= column)\n break;\n }\n }\n token = tokens[i];\n if (!token)\n return null;\n token.index = i;\n token.start = c - token.value.length;\n return token;\n };\n EditSession.prototype.setUndoManager = function (undoManager) {\n this.$undoManager = undoManager;\n if (this.$informUndoManager)\n this.$informUndoManager.cancel();\n if (undoManager) {\n var self = this;\n undoManager.addSession(this);\n this.$syncInformUndoManager = function () {\n self.$informUndoManager.cancel();\n self.mergeUndoDeltas = false;\n };\n this.$informUndoManager = lang.delayedCall(this.$syncInformUndoManager);\n }\n else {\n this.$syncInformUndoManager = function () { };\n }\n };\n EditSession.prototype.markUndoGroup = function () {\n if (this.$syncInformUndoManager)\n this.$syncInformUndoManager();\n };\n EditSession.prototype.getUndoManager = function () {\n return this.$undoManager || this.$defaultUndoManager;\n };\n EditSession.prototype.getTabString = function () {\n if (this.getUseSoftTabs()) {\n return lang.stringRepeat(\" \", this.getTabSize());\n }\n else {\n return \"\\t\";\n }\n };\n EditSession.prototype.setUseSoftTabs = function (val) {\n this.setOption(\"useSoftTabs\", val);\n };\n EditSession.prototype.getUseSoftTabs = function () {\n return this.$useSoftTabs && !this.$mode.$indentWithTabs;\n };\n EditSession.prototype.setTabSize = function (tabSize) {\n this.setOption(\"tabSize\", tabSize);\n };\n EditSession.prototype.getTabSize = function () {\n return this.$tabSize;\n };\n EditSession.prototype.isTabStop = function (position) {\n return this.$useSoftTabs && (position.column % this.$tabSize === 0);\n };\n EditSession.prototype.setNavigateWithinSoftTabs = function (navigateWithinSoftTabs) {\n this.setOption(\"navigateWithinSoftTabs\", navigateWithinSoftTabs);\n };\n EditSession.prototype.getNavigateWithinSoftTabs = function () {\n return this.$navigateWithinSoftTabs;\n };\n EditSession.prototype.setOverwrite = function (overwrite) {\n this.setOption(\"overwrite\", overwrite);\n };\n EditSession.prototype.getOverwrite = function () {\n return this.$overwrite;\n };\n EditSession.prototype.toggleOverwrite = function () {\n this.setOverwrite(!this.$overwrite);\n };\n EditSession.prototype.addGutterDecoration = function (row, className) {\n if (!this.$decorations[row])\n this.$decorations[row] = \"\";\n this.$decorations[row] += \" \" + className;\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.removeGutterDecoration = function (row, className) {\n this.$decorations[row] = (this.$decorations[row] || \"\").replace(\" \" + className, \"\");\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.getBreakpoints = function () {\n return this.$breakpoints;\n };\n EditSession.prototype.setBreakpoints = function (rows) {\n this.$breakpoints = [];\n for (var i = 0; i < rows.length; i++) {\n this.$breakpoints[rows[i]] = \"ace_breakpoint\";\n }\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.clearBreakpoints = function () {\n this.$breakpoints = [];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.setBreakpoint = function (row, className) {\n if (className === undefined)\n className = \"ace_breakpoint\";\n if (className)\n this.$breakpoints[row] = className;\n else\n delete this.$breakpoints[row];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.clearBreakpoint = function (row) {\n delete this.$breakpoints[row];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.addMarker = function (range, clazz, type, inFront) {\n var id = this.$markerId++;\n var marker = {\n range: range,\n type: type || \"line\",\n renderer: typeof type == \"function\" ? type : null,\n clazz: clazz,\n inFront: !!inFront,\n id: id\n };\n if (inFront) {\n this.$frontMarkers[id] = marker;\n this._signal(\"changeFrontMarker\");\n }\n else {\n this.$backMarkers[id] = marker;\n this._signal(\"changeBackMarker\");\n }\n return id;\n };\n EditSession.prototype.addDynamicMarker = function (marker, inFront) {\n if (!marker.update)\n return;\n var id = this.$markerId++;\n marker.id = id;\n marker.inFront = !!inFront;\n if (inFront) {\n this.$frontMarkers[id] = marker;\n this._signal(\"changeFrontMarker\");\n }\n else {\n this.$backMarkers[id] = marker;\n this._signal(\"changeBackMarker\");\n }\n return marker;\n };\n EditSession.prototype.removeMarker = function (markerId) {\n var marker = this.$frontMarkers[markerId] || this.$backMarkers[markerId];\n if (!marker)\n return;\n var markers = marker.inFront ? this.$frontMarkers : this.$backMarkers;\n delete (markers[markerId]);\n this._signal(marker.inFront ? \"changeFrontMarker\" : \"changeBackMarker\");\n };\n EditSession.prototype.getMarkers = function (inFront) {\n return inFront ? this.$frontMarkers : this.$backMarkers;\n };\n EditSession.prototype.highlight = function (re) {\n if (!this.$searchHighlight) {\n var highlight = new SearchHighlight(null, \"ace_selected-word\", \"text\");\n this.$searchHighlight = this.addDynamicMarker(highlight);\n }\n this.$searchHighlight.setRegexp(re);\n };\n EditSession.prototype.highlightLines = function (startRow, endRow, clazz, inFront) {\n if (typeof endRow != \"number\") {\n clazz = endRow;\n endRow = startRow;\n }\n if (!clazz)\n clazz = \"ace_step\";\n var range = new Range(startRow, 0, endRow, Infinity);\n range.id = this.addMarker(range, clazz, \"fullLine\", inFront);\n return range;\n };\n EditSession.prototype.setAnnotations = function (annotations) {\n this.$annotations = annotations;\n this._signal(\"changeAnnotation\", {});\n };\n EditSession.prototype.getAnnotations = function () {\n return this.$annotations || [];\n };\n EditSession.prototype.clearAnnotations = function () {\n this.setAnnotations([]);\n };\n EditSession.prototype.$detectNewLine = function (text) {\n var match = text.match(/^.*?(\\r?\\n)/m);\n if (match) {\n this.$autoNewLine = match[1];\n }\n else {\n this.$autoNewLine = \"\\n\";\n }\n };\n EditSession.prototype.getWordRange = function (row, column) {\n var line = this.getLine(row);\n var inToken = false;\n if (column > 0)\n inToken = !!line.charAt(column - 1).match(this.tokenRe);\n if (!inToken)\n inToken = !!line.charAt(column).match(this.tokenRe);\n if (inToken)\n var re = this.tokenRe;\n else if (/^\\s+$/.test(line.slice(column - 1, column + 1)))\n var re = /\\s/;\n else\n var re = this.nonTokenRe;\n var start = column;\n if (start > 0) {\n do {\n start--;\n } while (start >= 0 && line.charAt(start).match(re));\n start++;\n }\n var end = column;\n while (end < line.length && line.charAt(end).match(re)) {\n end++;\n }\n return new Range(row, start, row, end);\n };\n EditSession.prototype.getAWordRange = function (row, column) {\n var wordRange = this.getWordRange(row, column);\n var line = this.getLine(wordRange.end.row);\n while (line.charAt(wordRange.end.column).match(/[ \\t]/)) {\n wordRange.end.column += 1;\n }\n return wordRange;\n };\n EditSession.prototype.setNewLineMode = function (newLineMode) {\n this.doc.setNewLineMode(newLineMode);\n };\n EditSession.prototype.getNewLineMode = function () {\n return this.doc.getNewLineMode();\n };\n EditSession.prototype.setUseWorker = function (useWorker) { this.setOption(\"useWorker\", useWorker); };\n EditSession.prototype.getUseWorker = function () { return this.$useWorker; };\n EditSession.prototype.onReloadTokenizer = function (e) {\n var rows = e.data;\n this.bgTokenizer.start(rows.first);\n this._signal(\"tokenizerUpdate\", e);\n };\n EditSession.prototype.setMode = function (mode, cb) {\n if (mode && typeof mode === \"object\") {\n if (mode.getTokenizer)\n return this.$onChangeMode(mode);\n var options = mode;\n var path = options.path;\n }\n else {\n path = mode || \"ace/mode/text\";\n }\n if (!this.$modes[\"ace/mode/text\"])\n this.$modes[\"ace/mode/text\"] = new TextMode();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n cb && cb();\n return;\n }\n this.$modeId = path;\n config.loadModule([\"mode\", path], function (m) {\n if (this.$modeId !== path)\n return cb && cb();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n }\n else if (m && m.Mode) {\n m = new m.Mode(options);\n if (!options) {\n this.$modes[path] = m;\n m.$id = path;\n }\n this.$onChangeMode(m);\n }\n cb && cb();\n }.bind(this));\n if (!this.$mode)\n this.$onChangeMode(this.$modes[\"ace/mode/text\"], true);\n };\n EditSession.prototype.$onChangeMode = function (mode, $isPlaceholder) {\n if (!$isPlaceholder)\n this.$modeId = mode.$id;\n if (this.$mode === mode)\n return;\n var oldMode = this.$mode;\n this.$mode = mode;\n this.$stopWorker();\n if (this.$useWorker)\n this.$startWorker();\n var tokenizer = mode.getTokenizer();\n if (tokenizer.on !== undefined) {\n var onReloadTokenizer = this.onReloadTokenizer.bind(this);\n tokenizer.on(\"update\", onReloadTokenizer);\n }\n this.bgTokenizer.setTokenizer(tokenizer);\n this.bgTokenizer.setDocument(this.getDocument());\n this.tokenRe = mode.tokenRe;\n this.nonTokenRe = mode.nonTokenRe;\n if (!$isPlaceholder) {\n if (mode.attachToSession)\n mode.attachToSession(this);\n this.$options.wrapMethod.set.call(this, this.$wrapMethod);\n this.$setFolding(mode.foldingRules);\n this.bgTokenizer.start(0);\n this._emit(\"changeMode\", { oldMode: oldMode, mode: mode });\n }\n };\n EditSession.prototype.$stopWorker = function () {\n if (this.$worker) {\n this.$worker.terminate();\n this.$worker = null;\n }\n };\n EditSession.prototype.$startWorker = function () {\n try {\n this.$worker = this.$mode.createWorker(this);\n }\n catch (e) {\n config.warn(\"Could not load worker\", e);\n this.$worker = null;\n }\n };\n EditSession.prototype.getMode = function () {\n return this.$mode;\n };\n EditSession.prototype.setScrollTop = function (scrollTop) {\n if (this.$scrollTop === scrollTop || isNaN(scrollTop))\n return;\n this.$scrollTop = scrollTop;\n this._signal(\"changeScrollTop\", scrollTop);\n };\n EditSession.prototype.getScrollTop = function () {\n return this.$scrollTop;\n };\n EditSession.prototype.setScrollLeft = function (scrollLeft) {\n if (this.$scrollLeft === scrollLeft || isNaN(scrollLeft))\n return;\n this.$scrollLeft = scrollLeft;\n this._signal(\"changeScrollLeft\", scrollLeft);\n };\n EditSession.prototype.getScrollLeft = function () {\n return this.$scrollLeft;\n };\n EditSession.prototype.getScreenWidth = function () {\n this.$computeWidth();\n if (this.lineWidgets)\n return Math.max(this.getLineWidgetMaxWidth(), this.screenWidth);\n return this.screenWidth;\n };\n EditSession.prototype.getLineWidgetMaxWidth = function () {\n if (this.lineWidgetsWidth != null)\n return this.lineWidgetsWidth;\n var width = 0;\n this.lineWidgets.forEach(function (w) {\n if (w && w.screenWidth > width)\n width = w.screenWidth;\n });\n return this.lineWidgetWidth = width;\n };\n EditSession.prototype.$computeWidth = function (force) {\n if (this.$modified || force) {\n this.$modified = false;\n if (this.$useWrapMode)\n return this.screenWidth = this.$wrapLimit;\n var lines = this.doc.getAllLines();\n var cache = this.$rowLengthCache;\n var longestScreenLine = 0;\n var foldIndex = 0;\n var foldLine = this.$foldData[foldIndex];\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n var len = lines.length;\n for (var i = 0; i < len; i++) {\n if (i > foldStart) {\n i = foldLine.end.row + 1;\n if (i >= len)\n break;\n foldLine = this.$foldData[foldIndex++];\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (cache[i] == null)\n cache[i] = this.$getStringScreenWidth(lines[i])[0];\n if (cache[i] > longestScreenLine)\n longestScreenLine = cache[i];\n }\n this.screenWidth = longestScreenLine;\n }\n };\n EditSession.prototype.getLine = function (row) {\n return this.doc.getLine(row);\n };\n EditSession.prototype.getLines = function (firstRow, lastRow) {\n return this.doc.getLines(firstRow, lastRow);\n };\n EditSession.prototype.getLength = function () {\n return this.doc.getLength();\n };\n EditSession.prototype.getTextRange = function (range) {\n return this.doc.getTextRange(range || this.selection.getRange());\n };\n EditSession.prototype.insert = function (position, text) {\n return this.doc.insert(position, text);\n };\n EditSession.prototype.remove = function (range) {\n return this.doc.remove(range);\n };\n EditSession.prototype.removeFullLines = function (firstRow, lastRow) {\n return this.doc.removeFullLines(firstRow, lastRow);\n };\n EditSession.prototype.undoChanges = function (deltas, dontSelect) {\n if (!deltas.length)\n return;\n this.$fromUndo = true;\n for (var i = deltas.length - 1; i != -1; i--) {\n var delta = deltas[i];\n if (delta.action == \"insert\" || delta.action == \"remove\") {\n this.doc.revertDelta(delta);\n }\n else if (delta.folds) {\n this.addFolds(delta.folds);\n }\n }\n if (!dontSelect && this.$undoSelect) {\n if (deltas.selectionBefore)\n this.selection.fromJSON(deltas.selectionBefore);\n else\n this.selection.setRange(this.$getUndoSelection(deltas, true));\n }\n this.$fromUndo = false;\n };\n EditSession.prototype.redoChanges = function (deltas, dontSelect) {\n if (!deltas.length)\n return;\n this.$fromUndo = true;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (delta.action == \"insert\" || delta.action == \"remove\") {\n this.doc.$safeApplyDelta(delta);\n }\n }\n if (!dontSelect && this.$undoSelect) {\n if (deltas.selectionAfter)\n this.selection.fromJSON(deltas.selectionAfter);\n else\n this.selection.setRange(this.$getUndoSelection(deltas, false));\n }\n this.$fromUndo = false;\n };\n EditSession.prototype.setUndoSelect = function (enable) {\n this.$undoSelect = enable;\n };\n EditSession.prototype.$getUndoSelection = function (deltas, isUndo) {\n function isInsert(delta) {\n return isUndo ? delta.action !== \"insert\" : delta.action === \"insert\";\n }\n var range, point;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (!delta.start)\n continue; // skip folds\n if (!range) {\n if (isInsert(delta)) {\n range = Range.fromPoints(delta.start, delta.end);\n }\n else {\n range = Range.fromPoints(delta.start, delta.start);\n }\n continue;\n }\n if (isInsert(delta)) {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range.setStart(point);\n }\n point = delta.end;\n if (range.compare(point.row, point.column) == 1) {\n range.setEnd(point);\n }\n }\n else {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range = Range.fromPoints(delta.start, delta.start);\n }\n }\n }\n return range;\n };\n EditSession.prototype.replace = function (range, text) {\n return this.doc.replace(range, text);\n };\n EditSession.prototype.moveText = function (fromRange, toPosition, copy) {\n var text = this.getTextRange(fromRange);\n var folds = this.getFoldsInRange(fromRange);\n var toRange = Range.fromPoints(toPosition, toPosition);\n if (!copy) {\n this.remove(fromRange);\n var rowDiff = fromRange.start.row - fromRange.end.row;\n var collDiff = rowDiff ? -fromRange.end.column : fromRange.start.column - fromRange.end.column;\n if (collDiff) {\n if (toRange.start.row == fromRange.end.row && toRange.start.column > fromRange.end.column)\n toRange.start.column += collDiff;\n if (toRange.end.row == fromRange.end.row && toRange.end.column > fromRange.end.column)\n toRange.end.column += collDiff;\n }\n if (rowDiff && toRange.start.row >= fromRange.end.row) {\n toRange.start.row += rowDiff;\n toRange.end.row += rowDiff;\n }\n }\n toRange.end = this.insert(toRange.start, text);\n if (folds.length) {\n var oldStart = fromRange.start;\n var newStart = toRange.start;\n var rowDiff = newStart.row - oldStart.row;\n var collDiff = newStart.column - oldStart.column;\n this.addFolds(folds.map(function (x) {\n x = x.clone();\n if (x.start.row == oldStart.row)\n x.start.column += collDiff;\n if (x.end.row == oldStart.row)\n x.end.column += collDiff;\n x.start.row += rowDiff;\n x.end.row += rowDiff;\n return x;\n }));\n }\n return toRange;\n };\n EditSession.prototype.indentRows = function (startRow, endRow, indentString) {\n indentString = indentString.replace(/\\t/g, this.getTabString());\n for (var row = startRow; row <= endRow; row++)\n this.doc.insertInLine({ row: row, column: 0 }, indentString);\n };\n EditSession.prototype.outdentRows = function (range) {\n var rowRange = range.collapseRows();\n var deleteRange = new Range(0, 0, 0, 0);\n var size = this.getTabSize();\n for (var i = rowRange.start.row; i <= rowRange.end.row; ++i) {\n var line = this.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n for (var j = 0; j < size; ++j)\n if (line.charAt(j) != ' ')\n break;\n if (j < size && line.charAt(j) == '\\t') {\n deleteRange.start.column = j;\n deleteRange.end.column = j + 1;\n }\n else {\n deleteRange.start.column = 0;\n deleteRange.end.column = j;\n }\n this.remove(deleteRange);\n }\n };\n EditSession.prototype.$moveLines = function (firstRow, lastRow, dir) {\n firstRow = this.getRowFoldStart(firstRow);\n lastRow = this.getRowFoldEnd(lastRow);\n if (dir < 0) {\n var row = this.getRowFoldStart(firstRow + dir);\n if (row < 0)\n return 0;\n var diff = row - firstRow;\n }\n else if (dir > 0) {\n var row = this.getRowFoldEnd(lastRow + dir);\n if (row > this.doc.getLength() - 1)\n return 0;\n var diff = row - lastRow;\n }\n else {\n firstRow = this.$clipRowToDocument(firstRow);\n lastRow = this.$clipRowToDocument(lastRow);\n var diff = lastRow - firstRow + 1;\n }\n var range = new Range(firstRow, 0, lastRow, Number.MAX_VALUE);\n var folds = this.getFoldsInRange(range).map(function (x) {\n x = x.clone();\n x.start.row += diff;\n x.end.row += diff;\n return x;\n });\n var lines = dir == 0\n ? this.doc.getLines(firstRow, lastRow)\n : this.doc.removeFullLines(firstRow, lastRow);\n this.doc.insertFullLines(firstRow + diff, lines);\n folds.length && this.addFolds(folds);\n return diff;\n };\n EditSession.prototype.moveLinesUp = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, -1);\n };\n EditSession.prototype.moveLinesDown = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 1);\n };\n EditSession.prototype.duplicateLines = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 0);\n };\n EditSession.prototype.$clipRowToDocument = function (row) {\n return Math.max(0, Math.min(row, this.doc.getLength() - 1));\n };\n EditSession.prototype.$clipColumnToRow = function (row, column) {\n if (column < 0)\n return 0;\n return Math.min(this.doc.getLine(row).length, column);\n };\n EditSession.prototype.$clipPositionToDocument = function (row, column) {\n column = Math.max(0, column);\n if (row < 0) {\n row = 0;\n column = 0;\n }\n else {\n var len = this.doc.getLength();\n if (row >= len) {\n row = len - 1;\n column = this.doc.getLine(len - 1).length;\n }\n else {\n column = Math.min(this.doc.getLine(row).length, column);\n }\n }\n return {\n row: row,\n column: column\n };\n };\n EditSession.prototype.$clipRangeToDocument = function (range) {\n if (range.start.row < 0) {\n range.start.row = 0;\n range.start.column = 0;\n }\n else {\n range.start.column = this.$clipColumnToRow(range.start.row, range.start.column);\n }\n var len = this.doc.getLength() - 1;\n if (range.end.row > len) {\n range.end.row = len;\n range.end.column = this.doc.getLine(len).length;\n }\n else {\n range.end.column = this.$clipColumnToRow(range.end.row, range.end.column);\n }\n return range;\n };\n EditSession.prototype.setUseWrapMode = function (useWrapMode) {\n if (useWrapMode != this.$useWrapMode) {\n this.$useWrapMode = useWrapMode;\n this.$modified = true;\n this.$resetRowCache(0);\n if (useWrapMode) {\n var len = this.getLength();\n this.$wrapData = Array(len);\n this.$updateWrapData(0, len - 1);\n }\n this._signal(\"changeWrapMode\");\n }\n };\n EditSession.prototype.getUseWrapMode = function () {\n return this.$useWrapMode;\n };\n EditSession.prototype.setWrapLimitRange = function (min, max) {\n if (this.$wrapLimitRange.min !== min || this.$wrapLimitRange.max !== max) {\n this.$wrapLimitRange = { min: min, max: max };\n this.$modified = true;\n this.$bidiHandler.markAsDirty();\n if (this.$useWrapMode)\n this._signal(\"changeWrapMode\");\n }\n };\n EditSession.prototype.adjustWrapLimit = function (desiredLimit, $printMargin) {\n var limits = this.$wrapLimitRange;\n if (limits.max < 0)\n limits = { min: $printMargin, max: $printMargin };\n var wrapLimit = this.$constrainWrapLimit(desiredLimit, limits.min, limits.max);\n if (wrapLimit != this.$wrapLimit && wrapLimit > 1) {\n this.$wrapLimit = wrapLimit;\n this.$modified = true;\n if (this.$useWrapMode) {\n this.$updateWrapData(0, this.getLength() - 1);\n this.$resetRowCache(0);\n this._signal(\"changeWrapLimit\");\n }\n return true;\n }\n return false;\n };\n EditSession.prototype.$constrainWrapLimit = function (wrapLimit, min, max) {\n if (min)\n wrapLimit = Math.max(min, wrapLimit);\n if (max)\n wrapLimit = Math.min(max, wrapLimit);\n return wrapLimit;\n };\n EditSession.prototype.getWrapLimit = function () {\n return this.$wrapLimit;\n };\n EditSession.prototype.setWrapLimit = function (limit) {\n this.setWrapLimitRange(limit, limit);\n };\n EditSession.prototype.getWrapLimitRange = function () {\n return {\n min: this.$wrapLimitRange.min,\n max: this.$wrapLimitRange.max\n };\n };\n EditSession.prototype.$updateInternalDataOnChange = function (delta) {\n var useWrapMode = this.$useWrapMode;\n var action = delta.action;\n var start = delta.start;\n var end = delta.end;\n var firstRow = start.row;\n var lastRow = end.row;\n var len = lastRow - firstRow;\n var removedFolds = null;\n this.$updating = true;\n if (len != 0) {\n if (action === \"remove\") {\n this[useWrapMode ? \"$wrapData\" : \"$rowLengthCache\"].splice(firstRow, len);\n var foldLines = this.$foldData;\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n var foldLine = this.getFoldLine(end.row);\n var idx = 0;\n if (foldLine) {\n foldLine.addRemoveChars(end.row, end.column, start.column - end.column);\n foldLine.shiftRow(-len);\n var foldLineBefore = this.getFoldLine(firstRow);\n if (foldLineBefore && foldLineBefore !== foldLine) {\n foldLineBefore.merge(foldLine);\n foldLine = foldLineBefore;\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= end.row) {\n foldLine.shiftRow(-len);\n }\n }\n lastRow = firstRow;\n }\n else {\n var args = Array(len);\n args.unshift(firstRow, 0);\n var arr = useWrapMode ? this.$wrapData : this.$rowLengthCache;\n arr.splice.apply(arr, args);\n var foldLines = this.$foldData;\n var foldLine = this.getFoldLine(firstRow);\n var idx = 0;\n if (foldLine) {\n var cmp = foldLine.range.compareInside(start.row, start.column);\n if (cmp == 0) {\n foldLine = foldLine.split(start.row, start.column);\n if (foldLine) {\n foldLine.shiftRow(len);\n foldLine.addRemoveChars(lastRow, 0, end.column - start.column);\n }\n }\n else \n if (cmp == -1) {\n foldLine.addRemoveChars(firstRow, 0, end.column - start.column);\n foldLine.shiftRow(len);\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= firstRow) {\n foldLine.shiftRow(len);\n }\n }\n }\n }\n else {\n len = Math.abs(delta.start.column - delta.end.column);\n if (action === \"remove\") {\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n len = -len;\n }\n var foldLine = this.getFoldLine(firstRow);\n if (foldLine) {\n foldLine.addRemoveChars(firstRow, start.column, len);\n }\n }\n if (useWrapMode && this.$wrapData.length != this.doc.getLength()) {\n console.error(\"doc.getLength() and $wrapData.length have to be the same!\");\n }\n this.$updating = false;\n if (useWrapMode)\n this.$updateWrapData(firstRow, lastRow);\n else\n this.$updateRowLengthCache(firstRow, lastRow);\n return removedFolds;\n };\n EditSession.prototype.$updateRowLengthCache = function (firstRow, lastRow, b) {\n this.$rowLengthCache[firstRow] = null;\n this.$rowLengthCache[lastRow] = null;\n };\n EditSession.prototype.$updateWrapData = function (firstRow, lastRow) {\n var lines = this.doc.getAllLines();\n var tabSize = this.getTabSize();\n var wrapData = this.$wrapData;\n var wrapLimit = this.$wrapLimit;\n var tokens;\n var foldLine;\n var row = firstRow;\n lastRow = Math.min(lastRow, lines.length - 1);\n while (row <= lastRow) {\n foldLine = this.getFoldLine(row, foldLine);\n if (!foldLine) {\n tokens = this.$getDisplayTokens(lines[row]);\n wrapData[row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row++;\n }\n else {\n tokens = [];\n foldLine.walk(function (placeholder, row, column, lastColumn) {\n var walkTokens;\n if (placeholder != null) {\n walkTokens = this.$getDisplayTokens(placeholder, tokens.length);\n walkTokens[0] = PLACEHOLDER_START;\n for (var i = 1; i < walkTokens.length; i++) {\n walkTokens[i] = PLACEHOLDER_BODY;\n }\n }\n else {\n walkTokens = this.$getDisplayTokens(lines[row].substring(lastColumn, column), tokens.length);\n }\n tokens = tokens.concat(walkTokens);\n }.bind(this), foldLine.end.row, lines[foldLine.end.row].length + 1);\n wrapData[foldLine.start.row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row = foldLine.end.row + 1;\n }\n }\n };\n EditSession.prototype.$computeWrapSplits = function (tokens, wrapLimit, tabSize) {\n if (tokens.length == 0) {\n return [];\n }\n var splits = [];\n var displayLength = tokens.length;\n var lastSplit = 0, lastDocSplit = 0;\n var isCode = this.$wrapAsCode;\n var indentedSoftWrap = this.$indentedSoftWrap;\n var maxIndent = wrapLimit <= Math.max(2 * tabSize, 8)\n || indentedSoftWrap === false ? 0 : Math.floor(wrapLimit / 2);\n function getWrapIndent() {\n var indentation = 0;\n if (maxIndent === 0)\n return indentation;\n if (indentedSoftWrap) {\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token == SPACE)\n indentation += 1;\n else if (token == TAB)\n indentation += tabSize;\n else if (token == TAB_SPACE)\n continue;\n else\n break;\n }\n }\n if (isCode && indentedSoftWrap !== false)\n indentation += tabSize;\n return Math.min(indentation, maxIndent);\n }\n function addSplit(screenPos) {\n var len = screenPos - lastSplit;\n for (var i = lastSplit; i < screenPos; i++) {\n var ch = tokens[i];\n if (ch === 12 || ch === 2)\n len -= 1;\n }\n if (!splits.length) {\n indent = getWrapIndent();\n splits.indent = indent;\n }\n lastDocSplit += len;\n splits.push(lastDocSplit);\n lastSplit = screenPos;\n }\n var indent = 0;\n while (displayLength - lastSplit > wrapLimit - indent) {\n var split = lastSplit + wrapLimit - indent;\n if (tokens[split - 1] >= SPACE && tokens[split] >= SPACE) {\n addSplit(split);\n continue;\n }\n if (tokens[split] == PLACEHOLDER_START || tokens[split] == PLACEHOLDER_BODY) {\n for (split; split != lastSplit - 1; split--) {\n if (tokens[split] == PLACEHOLDER_START) {\n break;\n }\n }\n if (split > lastSplit) {\n addSplit(split);\n continue;\n }\n split = lastSplit + wrapLimit;\n for (split; split < tokens.length; split++) {\n if (tokens[split] != PLACEHOLDER_BODY) {\n break;\n }\n }\n if (split == tokens.length) {\n break; // Breaks the while-loop.\n }\n addSplit(split);\n continue;\n }\n var minSplit = Math.max(split - (wrapLimit - (wrapLimit >> 2)), lastSplit - 1);\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split--;\n }\n if (isCode) {\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split--;\n }\n while (split > minSplit && tokens[split] == PUNCTUATION) {\n split--;\n }\n }\n else {\n while (split > minSplit && tokens[split] < SPACE) {\n split--;\n }\n }\n if (split > minSplit) {\n addSplit(++split);\n continue;\n }\n split = lastSplit + wrapLimit;\n if (tokens[split] == CHAR_EXT)\n split--;\n addSplit(split - indent);\n }\n return splits;\n };\n EditSession.prototype.$getDisplayTokens = function (str, offset) {\n var arr = [];\n var tabSize;\n offset = offset || 0;\n for (var i = 0; i < str.length; i++) {\n var c = str.charCodeAt(i);\n if (c == 9) {\n tabSize = this.getScreenTabSize(arr.length + offset);\n arr.push(TAB);\n for (var n = 1; n < tabSize; n++) {\n arr.push(TAB_SPACE);\n }\n }\n else if (c == 32) {\n arr.push(SPACE);\n }\n else if ((c > 39 && c < 48) || (c > 57 && c < 64)) {\n arr.push(PUNCTUATION);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n arr.push(CHAR, CHAR_EXT);\n }\n else {\n arr.push(CHAR);\n }\n }\n return arr;\n };\n EditSession.prototype.$getStringScreenWidth = function (str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn == 0)\n return [0, 0];\n if (maxScreenColumn == null)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charCodeAt(column);\n if (c == 9) {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n screenColumn += 2;\n }\n else {\n screenColumn += 1;\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n return [screenColumn, column];\n };\n EditSession.prototype.getRowLength = function (row) {\n var h = 1;\n if (this.lineWidgets)\n h += this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n if (!this.$useWrapMode || !this.$wrapData[row])\n return h;\n else\n return this.$wrapData[row].length + h;\n };\n EditSession.prototype.getRowLineCount = function (row) {\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1;\n }\n else {\n return this.$wrapData[row].length + 1;\n }\n };\n EditSession.prototype.getRowWrapIndent = function (screenRow) {\n if (this.$useWrapMode) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n var splits = this.$wrapData[pos.row];\n return splits.length && splits[0] < pos.column ? splits.indent : 0;\n }\n else {\n return 0;\n }\n };\n EditSession.prototype.getScreenLastRowColumn = function (screenRow) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n return this.documentToScreenColumn(pos.row, pos.column);\n };\n EditSession.prototype.getDocumentLastRowColumn = function (docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.getScreenLastRowColumn(screenRow);\n };\n EditSession.prototype.getDocumentLastRowColumnPosition = function (docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.screenToDocumentPosition(screenRow, Number.MAX_VALUE / 10);\n };\n EditSession.prototype.getRowSplitData = function (row) {\n if (!this.$useWrapMode) {\n return undefined;\n }\n else {\n return this.$wrapData[row];\n }\n };\n EditSession.prototype.getScreenTabSize = function (screenColumn) {\n return this.$tabSize - (screenColumn % this.$tabSize | 0);\n };\n EditSession.prototype.screenToDocumentRow = function (screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).row;\n };\n EditSession.prototype.screenToDocumentColumn = function (screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).column;\n };\n EditSession.prototype.screenToDocumentPosition = function (screenRow, screenColumn, offsetX) {\n if (screenRow < 0)\n return { row: 0, column: 0 };\n var line;\n var docRow = 0;\n var docColumn = 0;\n var column;\n var row = 0;\n var rowLength = 0;\n var rowCache = this.$screenRowCache;\n var i = this.$getRowCacheIndex(rowCache, screenRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var docRow = this.$docRowCache[i];\n var doCache = screenRow > rowCache[l - 1];\n }\n else {\n var doCache = !l;\n }\n var maxRow = this.getLength() - 1;\n var foldLine = this.getNextFoldLine(docRow);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (row <= screenRow) {\n rowLength = this.getRowLength(docRow);\n if (row + rowLength > screenRow || docRow >= maxRow) {\n break;\n }\n else {\n row += rowLength;\n docRow++;\n if (docRow > foldStart) {\n docRow = foldLine.end.row + 1;\n foldLine = this.getNextFoldLine(docRow, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n }\n if (doCache) {\n this.$docRowCache.push(docRow);\n this.$screenRowCache.push(row);\n }\n }\n if (foldLine && foldLine.start.row <= docRow) {\n line = this.getFoldDisplayLine(foldLine);\n docRow = foldLine.start.row;\n }\n else if (row + rowLength <= screenRow || docRow > maxRow) {\n return {\n row: maxRow,\n column: this.getLine(maxRow).length\n };\n }\n else {\n line = this.getLine(docRow);\n foldLine = null;\n }\n var wrapIndent = 0, splitIndex = Math.floor(screenRow - row);\n if (this.$useWrapMode) {\n var splits = this.$wrapData[docRow];\n if (splits) {\n column = splits[splitIndex];\n if (splitIndex > 0 && splits.length) {\n wrapIndent = splits.indent;\n docColumn = splits[splitIndex - 1] || splits[splits.length - 1];\n line = line.substring(docColumn);\n }\n }\n }\n if (offsetX !== undefined && this.$bidiHandler.isBidiRow(row + splitIndex, docRow, splitIndex))\n screenColumn = this.$bidiHandler.offsetToCol(offsetX);\n docColumn += this.$getStringScreenWidth(line, screenColumn - wrapIndent)[1];\n if (this.$useWrapMode && docColumn >= column)\n docColumn = column - 1;\n if (foldLine)\n return foldLine.idxToPosition(docColumn);\n return { row: docRow, column: docColumn };\n };\n EditSession.prototype.documentToScreenPosition = function (docRow, docColumn) {\n if (typeof docColumn === \"undefined\")\n var pos = this.$clipPositionToDocument(docRow.row, docRow.column);\n else\n pos = this.$clipPositionToDocument(docRow, docColumn);\n docRow = pos.row;\n docColumn = pos.column;\n var screenRow = 0;\n var foldStartRow = null;\n var fold = null;\n fold = this.getFoldAt(docRow, docColumn, 1);\n if (fold) {\n docRow = fold.start.row;\n docColumn = fold.start.column;\n }\n var rowEnd, row = 0;\n var rowCache = this.$docRowCache;\n var i = this.$getRowCacheIndex(rowCache, docRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var screenRow = this.$screenRowCache[i];\n var doCache = docRow > rowCache[l - 1];\n }\n else {\n var doCache = !l;\n }\n var foldLine = this.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (row < docRow) {\n if (row >= foldStart) {\n rowEnd = foldLine.end.row + 1;\n if (rowEnd > docRow)\n break;\n foldLine = this.getNextFoldLine(rowEnd, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n else {\n rowEnd = row + 1;\n }\n screenRow += this.getRowLength(row);\n row = rowEnd;\n if (doCache) {\n this.$docRowCache.push(row);\n this.$screenRowCache.push(screenRow);\n }\n }\n var textLine = \"\";\n if (foldLine && row >= foldStart) {\n textLine = this.getFoldDisplayLine(foldLine, docRow, docColumn);\n foldStartRow = foldLine.start.row;\n }\n else {\n textLine = this.getLine(docRow).substring(0, docColumn);\n foldStartRow = docRow;\n }\n var wrapIndent = 0;\n if (this.$useWrapMode) {\n var wrapRow = this.$wrapData[foldStartRow];\n if (wrapRow) {\n var screenRowOffset = 0;\n while (textLine.length >= wrapRow[screenRowOffset]) {\n screenRow++;\n screenRowOffset++;\n }\n textLine = textLine.substring(wrapRow[screenRowOffset - 1] || 0, textLine.length);\n wrapIndent = screenRowOffset > 0 ? wrapRow.indent : 0;\n }\n }\n if (this.lineWidgets && this.lineWidgets[row] && this.lineWidgets[row].rowsAbove)\n screenRow += this.lineWidgets[row].rowsAbove;\n return {\n row: screenRow,\n column: wrapIndent + this.$getStringScreenWidth(textLine)[0]\n };\n };\n EditSession.prototype.documentToScreenColumn = function (row, docColumn) {\n return this.documentToScreenPosition(row, docColumn).column;\n };\n EditSession.prototype.documentToScreenRow = function (docRow, docColumn) {\n return this.documentToScreenPosition(docRow, docColumn).row;\n };\n EditSession.prototype.getScreenLength = function () {\n var screenRows = 0;\n var fold = null;\n if (!this.$useWrapMode) {\n screenRows = this.getLength();\n var foldData = this.$foldData;\n for (var i = 0; i < foldData.length; i++) {\n fold = foldData[i];\n screenRows -= fold.end.row - fold.start.row;\n }\n }\n else {\n var lastRow = this.$wrapData.length;\n var row = 0, i = 0;\n var fold = this.$foldData[i++];\n var foldStart = fold ? fold.start.row : Infinity;\n while (row < lastRow) {\n var splits = this.$wrapData[row];\n screenRows += splits ? splits.length + 1 : 1;\n row++;\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = this.$foldData[i++];\n foldStart = fold ? fold.start.row : Infinity;\n }\n }\n }\n if (this.lineWidgets)\n screenRows += this.$getWidgetScreenLength();\n return screenRows;\n };\n EditSession.prototype.$setFontMetrics = function (fm) {\n if (!this.$enableVarChar)\n return;\n this.$getStringScreenWidth = function (str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn === 0)\n return [0, 0];\n if (!maxScreenColumn)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charAt(column);\n if (c === \"\\t\") {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else {\n screenColumn += fm.getCharacterWidth(c);\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n return [screenColumn, column];\n };\n };\n EditSession.prototype.destroy = function () {\n if (!this.destroyed) {\n this.bgTokenizer.setDocument(null);\n this.bgTokenizer.cleanup();\n this.destroyed = true;\n }\n this.$stopWorker();\n this.removeAllListeners();\n if (this.doc) {\n this.doc.off(\"change\", this.$onChange);\n }\n this.selection.detach();\n };\n return EditSession;\n}());\nEditSession.$uid = 0;\nEditSession.prototype.$modes = config.$modes;\nEditSession.prototype.getValue = EditSession.prototype.toString;\nEditSession.prototype.$defaultUndoManager = {\n undo: function () { },\n redo: function () { },\n hasUndo: function () { },\n hasRedo: function () { },\n reset: function () { },\n add: function () { },\n addSelection: function () { },\n startNewGroup: function () { },\n addSession: function () { }\n};\nEditSession.prototype.$overwrite = false;\nEditSession.prototype.$mode = null;\nEditSession.prototype.$modeId = null;\nEditSession.prototype.$scrollTop = 0;\nEditSession.prototype.$scrollLeft = 0;\nEditSession.prototype.$wrapLimit = 80;\nEditSession.prototype.$useWrapMode = false;\nEditSession.prototype.$wrapLimitRange = {\n min: null,\n max: null\n};\nEditSession.prototype.lineWidgets = null;\nEditSession.prototype.isFullWidth = isFullWidth;\noop.implement(EditSession.prototype, EventEmitter);\nvar CHAR = 1, CHAR_EXT = 2, PLACEHOLDER_START = 3, PLACEHOLDER_BODY = 4, PUNCTUATION = 9, SPACE = 10, TAB = 11, TAB_SPACE = 12;\nfunction isFullWidth(c) {\n if (c < 0x1100)\n return false;\n return c >= 0x1100 && c <= 0x115F ||\n c >= 0x11A3 && c <= 0x11A7 ||\n c >= 0x11FA && c <= 0x11FF ||\n c >= 0x2329 && c <= 0x232A ||\n c >= 0x2E80 && c <= 0x2E99 ||\n c >= 0x2E9B && c <= 0x2EF3 ||\n c >= 0x2F00 && c <= 0x2FD5 ||\n c >= 0x2FF0 && c <= 0x2FFB ||\n c >= 0x3000 && c <= 0x303E ||\n c >= 0x3041 && c <= 0x3096 ||\n c >= 0x3099 && c <= 0x30FF ||\n c >= 0x3105 && c <= 0x312D ||\n c >= 0x3131 && c <= 0x318E ||\n c >= 0x3190 && c <= 0x31BA ||\n c >= 0x31C0 && c <= 0x31E3 ||\n c >= 0x31F0 && c <= 0x321E ||\n c >= 0x3220 && c <= 0x3247 ||\n c >= 0x3250 && c <= 0x32FE ||\n c >= 0x3300 && c <= 0x4DBF ||\n c >= 0x4E00 && c <= 0xA48C ||\n c >= 0xA490 && c <= 0xA4C6 ||\n c >= 0xA960 && c <= 0xA97C ||\n c >= 0xAC00 && c <= 0xD7A3 ||\n c >= 0xD7B0 && c <= 0xD7C6 ||\n c >= 0xD7CB && c <= 0xD7FB ||\n c >= 0xF900 && c <= 0xFAFF ||\n c >= 0xFE10 && c <= 0xFE19 ||\n c >= 0xFE30 && c <= 0xFE52 ||\n c >= 0xFE54 && c <= 0xFE66 ||\n c >= 0xFE68 && c <= 0xFE6B ||\n c >= 0xFF01 && c <= 0xFF60 ||\n c >= 0xFFE0 && c <= 0xFFE6;\n}\nrequire(\"./edit_session/folding\").Folding.call(EditSession.prototype);\nrequire(\"./edit_session/bracket_match\").BracketMatch.call(EditSession.prototype);\nconfig.defineOptions(EditSession.prototype, \"session\", {\n wrap: {\n set: function (value) {\n if (!value || value == \"off\")\n value = false;\n else if (value == \"free\")\n value = true;\n else if (value == \"printMargin\")\n value = -1;\n else if (typeof value == \"string\")\n value = parseInt(value, 10) || false;\n if (this.$wrap == value)\n return;\n this.$wrap = value;\n if (!value) {\n this.setUseWrapMode(false);\n }\n else {\n var col = typeof value == \"number\" ? value : null;\n this.setWrapLimitRange(col, col);\n this.setUseWrapMode(true);\n }\n },\n get: function () {\n if (this.getUseWrapMode()) {\n if (this.$wrap == -1)\n return \"printMargin\";\n if (!this.getWrapLimitRange().min)\n return \"free\";\n return this.$wrap;\n }\n return \"off\";\n },\n handlesSet: true\n },\n wrapMethod: {\n set: function (val) {\n val = val == \"auto\"\n ? this.$mode.type != \"text\"\n : val != \"text\";\n if (val != this.$wrapAsCode) {\n this.$wrapAsCode = val;\n if (this.$useWrapMode) {\n this.$useWrapMode = false;\n this.setUseWrapMode(true);\n }\n }\n },\n initialValue: \"auto\"\n },\n indentedSoftWrap: {\n set: function () {\n if (this.$useWrapMode) {\n this.$useWrapMode = false;\n this.setUseWrapMode(true);\n }\n },\n initialValue: true\n },\n firstLineNumber: {\n set: function () { this._signal(\"changeBreakpoint\"); },\n initialValue: 1\n },\n useWorker: {\n set: function (useWorker) {\n this.$useWorker = useWorker;\n this.$stopWorker();\n if (useWorker)\n this.$startWorker();\n },\n initialValue: true\n },\n useSoftTabs: { initialValue: true },\n tabSize: {\n set: function (tabSize) {\n tabSize = parseInt(tabSize);\n if (tabSize > 0 && this.$tabSize !== tabSize) {\n this.$modified = true;\n this.$rowLengthCache = [];\n this.$tabSize = tabSize;\n this._signal(\"changeTabSize\");\n }\n },\n initialValue: 4,\n handlesSet: true\n },\n navigateWithinSoftTabs: { initialValue: false },\n foldStyle: {\n set: function (val) { this.setFoldStyle(val); },\n handlesSet: true\n },\n overwrite: {\n set: function (val) { this._signal(\"changeOverwrite\"); },\n initialValue: false\n },\n newLineMode: {\n set: function (val) { this.doc.setNewLineMode(val); },\n get: function () { return this.doc.getNewLineMode(); },\n handlesSet: true\n },\n mode: {\n set: function (val) { this.setMode(val); },\n get: function () { return this.$modeId; },\n handlesSet: true\n }\n});\nexports.EditSession = EditSession;\n\n});\n\nace.define(\"ace/search\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"./lib/lang\");\nvar oop = require(\"./lib/oop\");\nvar Range = require(\"./range\").Range;\nvar Search = /** @class */ (function () {\n function Search() {\n this.$options = {};\n }\n Search.prototype.set = function (options) {\n oop.mixin(this.$options, options);\n return this;\n };\n Search.prototype.getOptions = function () {\n return lang.copyObject(this.$options);\n };\n Search.prototype.setOptions = function (options) {\n this.$options = options;\n };\n Search.prototype.find = function (session) {\n var options = this.$options;\n var iterator = this.$matchIterator(session, options);\n if (!iterator)\n return false;\n var firstRange = null;\n iterator.forEach(function (sr, sc, er, ec) {\n firstRange = new Range(sr, sc, er, ec);\n if (sc == ec && options.start && options.start.start\n && options.skipCurrent != false && firstRange.isEqual(options.start)) {\n firstRange = null;\n return false;\n }\n return true;\n });\n return firstRange;\n };\n Search.prototype.findAll = function (session) {\n var options = this.$options;\n if (!options.needle)\n return [];\n this.$assembleRegExp(options);\n var range = options.range;\n var lines = range\n ? session.getLines(range.start.row, range.end.row)\n : session.doc.getAllLines();\n var ranges = [];\n var re = options.re;\n if (options.$isMultiLine) {\n var len = re.length;\n var maxRow = lines.length - len;\n var prevRange;\n outer: for (var row = re.offset || 0; row <= maxRow; row++) {\n for (var j = 0; j < len; j++)\n if (lines[row + j].search(re[j]) == -1)\n continue outer;\n var startLine = lines[row];\n var line = lines[row + len - 1];\n var startIndex = startLine.length - startLine.match(re[0])[0].length;\n var endIndex = line.match(re[len - 1])[0].length;\n if (prevRange && prevRange.end.row === row &&\n prevRange.end.column > startIndex) {\n continue;\n }\n ranges.push(prevRange = new Range(row, startIndex, row + len - 1, endIndex));\n if (len > 2)\n row = row + len - 2;\n }\n }\n else {\n for (var i = 0; i < lines.length; i++) {\n var matches = lang.getMatchOffsets(lines[i], re);\n for (var j = 0; j < matches.length; j++) {\n var match = matches[j];\n ranges.push(new Range(i, match.offset, i, match.offset + match.length));\n }\n }\n }\n if (range) {\n var startColumn = range.start.column;\n var endColumn = range.end.column;\n var i = 0, j = ranges.length - 1;\n while (i < j && ranges[i].start.column < startColumn && ranges[i].start.row == 0)\n i++;\n var endRow = range.end.row - range.start.row;\n while (i < j && ranges[j].end.column > endColumn && ranges[j].end.row == endRow)\n j--;\n ranges = ranges.slice(i, j + 1);\n for (i = 0, j = ranges.length; i < j; i++) {\n ranges[i].start.row += range.start.row;\n ranges[i].end.row += range.start.row;\n }\n }\n return ranges;\n };\n Search.prototype.replace = function (input, replacement) {\n var options = this.$options;\n var re = this.$assembleRegExp(options);\n if (options.$isMultiLine)\n return replacement;\n if (!re)\n return;\n var match = re.exec(input);\n if (!match || match[0].length != input.length)\n return null;\n replacement = input.replace(re, replacement);\n if (options.preserveCase) {\n replacement = replacement.split(\"\");\n for (var i = Math.min(input.length, input.length); i--;) {\n var ch = input[i];\n if (ch && ch.toLowerCase() != ch)\n replacement[i] = replacement[i].toUpperCase();\n else\n replacement[i] = replacement[i].toLowerCase();\n }\n replacement = replacement.join(\"\");\n }\n return replacement;\n };\n Search.prototype.$assembleRegExp = function (options, $disableFakeMultiline) {\n if (options.needle instanceof RegExp)\n return options.re = options.needle;\n var needle = options.needle;\n if (!options.needle)\n return options.re = false;\n if (!options.regExp)\n needle = lang.escapeRegExp(needle);\n var modifier = options.caseSensitive ? \"gm\" : \"gmi\";\n try {\n new RegExp(needle, \"u\");\n options.$supportsUnicodeFlag = true;\n modifier += \"u\";\n }\n catch (e) {\n options.$supportsUnicodeFlag = false; //left for backward compatibility with previous versions for cases like /ab\\{2}/gu\n }\n if (options.wholeWord)\n needle = addWordBoundary(needle, options);\n options.$isMultiLine = !$disableFakeMultiline && /[\\n\\r]/.test(needle);\n if (options.$isMultiLine)\n return options.re = this.$assembleMultilineRegExp(needle, modifier);\n try {\n var re = new RegExp(needle, modifier);\n }\n catch (e) {\n re = false;\n }\n return options.re = re;\n };\n Search.prototype.$assembleMultilineRegExp = function (needle, modifier) {\n var parts = needle.replace(/\\r\\n|\\r|\\n/g, \"$\\n^\").split(\"\\n\");\n var re = [];\n for (var i = 0; i < parts.length; i++)\n try {\n re.push(new RegExp(parts[i], modifier));\n }\n catch (e) {\n return false;\n }\n return re;\n };\n Search.prototype.$matchIterator = function (session, options) {\n var re = this.$assembleRegExp(options);\n if (!re)\n return false;\n var backwards = options.backwards == true;\n var skipCurrent = options.skipCurrent != false;\n var supportsUnicodeFlag = re.unicode;\n var range = options.range;\n var start = options.start;\n if (!start)\n start = range ? range[backwards ? \"end\" : \"start\"] : session.selection.getRange();\n if (start.start)\n start = start[skipCurrent != backwards ? \"end\" : \"start\"];\n var firstRow = range ? range.start.row : 0;\n var lastRow = range ? range.end.row : session.getLength() - 1;\n if (backwards) {\n var forEach = function (callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row--; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = lastRow, firstRow = start.row; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n };\n }\n else {\n var forEach = function (callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row = row + 1; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = firstRow, lastRow = start.row; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n };\n }\n if (options.$isMultiLine) {\n var len = re.length;\n var forEachInLine = function (row, offset, callback) {\n var startRow = backwards ? row - len + 1 : row;\n if (startRow < 0 || startRow + len > session.getLength())\n return;\n var line = session.getLine(startRow);\n var startIndex = line.search(re[0]);\n if (!backwards && startIndex < offset || startIndex === -1)\n return;\n for (var i = 1; i < len; i++) {\n line = session.getLine(startRow + i);\n if (line.search(re[i]) == -1)\n return;\n }\n var endIndex = line.match(re[len - 1])[0].length;\n if (backwards && endIndex > offset)\n return;\n if (callback(startRow, startIndex, startRow + len - 1, endIndex))\n return true;\n };\n }\n else if (backwards) {\n var forEachInLine = function (row, endIndex, callback) {\n var line = session.getLine(row);\n var matches = [];\n var m, last = 0;\n re.lastIndex = 0;\n while ((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (!length) {\n if (last >= line.length)\n break;\n re.lastIndex = last += lang.skipEmptyMatch(line, last, supportsUnicodeFlag);\n }\n if (m.index + length > endIndex)\n break;\n matches.push(m.index, length);\n }\n for (var i = matches.length - 1; i >= 0; i -= 2) {\n var column = matches[i - 1];\n var length = matches[i];\n if (callback(row, column, row, column + length))\n return true;\n }\n };\n }\n else {\n var forEachInLine = function (row, startIndex, callback) {\n var line = session.getLine(row);\n var last;\n var m;\n re.lastIndex = startIndex;\n while ((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (callback(row, last, row, last + length))\n return true;\n if (!length) {\n re.lastIndex = last += lang.skipEmptyMatch(line, last, supportsUnicodeFlag);\n if (last >= line.length)\n return false;\n }\n }\n };\n }\n return { forEach: forEach };\n };\n return Search;\n}());\nfunction addWordBoundary(needle, options) {\n var supportsLookbehind = lang.supportsLookbehind();\n function wordBoundary(c, firstChar) {\n if (firstChar === void 0) { firstChar = true; }\n var wordRegExp = supportsLookbehind && options.$supportsUnicodeFlag ? new RegExp(\"[\\\\p{L}\\\\p{N}_]\", \"u\") : new RegExp(\"\\\\w\");\n if (wordRegExp.test(c) || options.regExp) {\n if (supportsLookbehind && options.$supportsUnicodeFlag) {\n if (firstChar)\n return \"(?<=^|[^\\\\p{L}\\\\p{N}_])\";\n return \"(?=[^\\\\p{L}\\\\p{N}_]|$)\";\n }\n return \"\\\\b\";\n }\n return \"\";\n }\n var needleArray = Array.from(needle);\n var firstChar = needleArray[0];\n var lastChar = needleArray[needleArray.length - 1];\n return wordBoundary(firstChar) + needle + wordBoundary(lastChar, false);\n}\nexports.Search = Search;\n\n});\n\nace.define(\"ace/keyboard/hash_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar keyUtil = require(\"../lib/keys\");\nvar useragent = require(\"../lib/useragent\");\nvar KEY_MODS = keyUtil.KEY_MODS;\nvar MultiHashHandler = /** @class */ (function () {\n function MultiHashHandler(config, platform) {\n this.$init(config, platform, false);\n }\n MultiHashHandler.prototype.$init = function (config, platform, $singleCommand) {\n this.platform = platform || (useragent.isMac ? \"mac\" : \"win\");\n this.commands = {};\n this.commandKeyBinding = {};\n this.addCommands(config);\n this.$singleCommand = $singleCommand;\n };\n MultiHashHandler.prototype.addCommand = function (command) {\n if (this.commands[command.name])\n this.removeCommand(command);\n this.commands[command.name] = command;\n if (command.bindKey)\n this._buildKeyHash(command);\n };\n MultiHashHandler.prototype.removeCommand = function (command, keepCommand) {\n var name = command && (typeof command === 'string' ? command : command.name);\n command = this.commands[name];\n if (!keepCommand)\n delete this.commands[name];\n var ckb = this.commandKeyBinding;\n for (var keyId in ckb) {\n var cmdGroup = ckb[keyId];\n if (cmdGroup == command) {\n delete ckb[keyId];\n }\n else if (Array.isArray(cmdGroup)) {\n var i = cmdGroup.indexOf(command);\n if (i != -1) {\n cmdGroup.splice(i, 1);\n if (cmdGroup.length == 1)\n ckb[keyId] = cmdGroup[0];\n }\n }\n }\n };\n MultiHashHandler.prototype.bindKey = function (key, command, position) {\n if (typeof key == \"object\" && key) {\n if (position == undefined)\n position = key.position;\n key = key[this.platform];\n }\n if (!key)\n return;\n if (typeof command == \"function\")\n return this.addCommand({ exec: command, bindKey: key, name: command.name || key });\n key.split(\"|\").forEach(function (keyPart) {\n var chain = \"\";\n if (keyPart.indexOf(\" \") != -1) {\n var parts = keyPart.split(/\\s+/);\n keyPart = parts.pop();\n parts.forEach(function (keyPart) {\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n chain += (chain ? \" \" : \"\") + id;\n this._addCommandToBinding(chain, \"chainKeys\");\n }, this);\n chain += \" \";\n }\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n this._addCommandToBinding(chain + id, command, position);\n }, this);\n };\n MultiHashHandler.prototype._addCommandToBinding = function (keyId, command, position) {\n var ckb = this.commandKeyBinding, i;\n if (!command) {\n delete ckb[keyId];\n }\n else if (!ckb[keyId] || this.$singleCommand) {\n ckb[keyId] = command;\n }\n else {\n if (!Array.isArray(ckb[keyId])) {\n ckb[keyId] = [ckb[keyId]];\n }\n else if ((i = ckb[keyId].indexOf(command)) != -1) {\n ckb[keyId].splice(i, 1);\n }\n if (typeof position != \"number\") {\n position = getPosition(command);\n }\n var commands = ckb[keyId];\n for (i = 0; i < commands.length; i++) {\n var other = commands[i];\n var otherPos = getPosition(other);\n if (otherPos > position)\n break;\n }\n commands.splice(i, 0, command);\n }\n };\n MultiHashHandler.prototype.addCommands = function (commands) {\n commands && Object.keys(commands).forEach(function (name) {\n var command = commands[name];\n if (!command)\n return;\n if (typeof command === \"string\")\n return this.bindKey(command, name);\n if (typeof command === \"function\")\n command = { exec: command };\n if (typeof command !== \"object\")\n return;\n if (!command.name)\n command.name = name;\n this.addCommand(command);\n }, this);\n };\n MultiHashHandler.prototype.removeCommands = function (commands) {\n Object.keys(commands).forEach(function (name) {\n this.removeCommand(commands[name]);\n }, this);\n };\n MultiHashHandler.prototype.bindKeys = function (keyList) {\n Object.keys(keyList).forEach(function (key) {\n this.bindKey(key, keyList[key]);\n }, this);\n };\n MultiHashHandler.prototype._buildKeyHash = function (command) {\n this.bindKey(command.bindKey, command);\n };\n MultiHashHandler.prototype.parseKeys = function (keys) {\n var parts = keys.toLowerCase().split(/[\\-\\+]([\\-\\+])?/).filter(function (x) { return x; });\n var key = parts.pop();\n var keyCode = keyUtil[key];\n if (keyUtil.FUNCTION_KEYS[keyCode])\n key = keyUtil.FUNCTION_KEYS[keyCode].toLowerCase();\n else if (!parts.length)\n return { key: key, hashId: -1 };\n else if (parts.length == 1 && parts[0] == \"shift\")\n return { key: key.toUpperCase(), hashId: -1 };\n var hashId = 0;\n for (var i = parts.length; i--;) {\n var modifier = keyUtil.KEY_MODS[parts[i]];\n if (modifier == null) {\n if (typeof console != \"undefined\")\n console.error(\"invalid modifier \" + parts[i] + \" in \" + keys);\n return false;\n }\n hashId |= modifier;\n }\n return { key: key, hashId: hashId };\n };\n MultiHashHandler.prototype.findKeyCommand = function (hashId, keyString) {\n var key = KEY_MODS[hashId] + keyString;\n return this.commandKeyBinding[key];\n };\n MultiHashHandler.prototype.handleKeyboard = function (data, hashId, keyString, keyCode) {\n if (keyCode < 0)\n return;\n var key = KEY_MODS[hashId] + keyString;\n var command = this.commandKeyBinding[key];\n if (data.$keyChain) {\n data.$keyChain += \" \" + key;\n command = this.commandKeyBinding[data.$keyChain] || command;\n }\n if (command) {\n if (command == \"chainKeys\" || command[command.length - 1] == \"chainKeys\") {\n data.$keyChain = data.$keyChain || key;\n return { command: \"null\" };\n }\n }\n if (data.$keyChain) {\n if ((!hashId || hashId == 4) && keyString.length == 1)\n data.$keyChain = data.$keyChain.slice(0, -key.length - 1); // wait for input\n else if (hashId == -1 || keyCode > 0)\n data.$keyChain = \"\"; // reset keyChain\n }\n return { command: command };\n };\n MultiHashHandler.prototype.getStatusText = function (editor, data) {\n return data.$keyChain || \"\";\n };\n return MultiHashHandler;\n}());\nfunction getPosition(command) {\n return typeof command == \"object\" && command.bindKey\n && command.bindKey.position\n || (command.isDefault ? -100 : 0);\n}\nvar HashHandler = /** @class */ (function (_super) {\n __extends(HashHandler, _super);\n function HashHandler(config, platform) {\n var _this = _super.call(this, config, platform) || this;\n _this.$singleCommand = true;\n return _this;\n }\n return HashHandler;\n}(MultiHashHandler));\nHashHandler.call = function (thisArg, config, platform) {\n MultiHashHandler.prototype.$init.call(thisArg, config, platform, true);\n};\nMultiHashHandler.call = function (thisArg, config, platform) {\n MultiHashHandler.prototype.$init.call(thisArg, config, platform, false);\n};\nexports.HashHandler = HashHandler;\nexports.MultiHashHandler = MultiHashHandler;\n\n});\n\nace.define(\"ace/commands/command_manager\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"../lib/oop\");\nvar MultiHashHandler = require(\"../keyboard/hash_handler\").MultiHashHandler;\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar CommandManager = /** @class */ (function (_super) {\n __extends(CommandManager, _super);\n function CommandManager(platform, commands) {\n var _this = _super.call(this, commands, platform) || this;\n _this.byName = _this.commands;\n _this.setDefaultHandler(\"exec\", function (e) {\n if (!e.args) {\n return e.command.exec(e.editor, {}, e.event, true);\n }\n return e.command.exec(e.editor, e.args, e.event, false);\n });\n return _this;\n }\n CommandManager.prototype.exec = function (command, editor, args) {\n if (Array.isArray(command)) {\n for (var i = command.length; i--;) {\n if (this.exec(command[i], editor, args))\n return true;\n }\n return false;\n }\n if (typeof command === \"string\")\n command = this.commands[command];\n if (!command)\n return false;\n if (editor && editor.$readOnly && !command.readOnly)\n return false;\n if (this.$checkCommandState != false && command.isAvailable && !command.isAvailable(editor))\n return false;\n var e = { editor: editor, command: command, args: args };\n e.returnValue = this._emit(\"exec\", e);\n this._signal(\"afterExec\", e);\n return e.returnValue === false ? false : true;\n };\n CommandManager.prototype.toggleRecording = function (editor) {\n if (this.$inReplay)\n return;\n editor && editor._emit(\"changeStatus\");\n if (this.recording) {\n this.macro.pop();\n this.off(\"exec\", this.$addCommandToMacro);\n if (!this.macro.length)\n this.macro = this.oldMacro;\n return this.recording = false;\n }\n if (!this.$addCommandToMacro) {\n this.$addCommandToMacro = function (e) {\n this.macro.push([e.command, e.args]);\n }.bind(this);\n }\n this.oldMacro = this.macro;\n this.macro = [];\n this.on(\"exec\", this.$addCommandToMacro);\n return this.recording = true;\n };\n CommandManager.prototype.replay = function (editor) {\n if (this.$inReplay || !this.macro)\n return;\n if (this.recording)\n return this.toggleRecording(editor);\n try {\n this.$inReplay = true;\n this.macro.forEach(function (x) {\n if (typeof x == \"string\")\n this.exec(x, editor);\n else\n this.exec(x[0], editor, x[1]);\n }, this);\n }\n finally {\n this.$inReplay = false;\n }\n };\n CommandManager.prototype.trimMacro = function (m) {\n return m.map(function (x) {\n if (typeof x[0] != \"string\")\n x[0] = x[0].name;\n if (!x[1])\n x = x[0];\n return x;\n });\n };\n return CommandManager;\n}(MultiHashHandler));\noop.implement(CommandManager.prototype, EventEmitter);\nexports.CommandManager = CommandManager;\n\n});\n\nace.define(\"ace/commands/default_commands\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/config\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"../lib/lang\");\nvar config = require(\"../config\");\nvar Range = require(\"../range\").Range;\nfunction bindKey(win, mac) {\n return { win: win, mac: mac };\n}\nexports.commands = [{\n name: \"showSettingsMenu\",\n description: \"Show settings menu\",\n bindKey: bindKey(\"Ctrl-,\", \"Command-,\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/settings_menu\", function (module) {\n module.init(editor);\n editor.showSettingsMenu();\n });\n },\n readOnly: true\n }, {\n name: \"goToNextError\",\n description: \"Go to next error\",\n bindKey: bindKey(\"Alt-E\", \"F4\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/error_marker\", function (module) {\n module.showErrorMarker(editor, 1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"goToPreviousError\",\n description: \"Go to previous error\",\n bindKey: bindKey(\"Alt-Shift-E\", \"Shift-F4\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/error_marker\", function (module) {\n module.showErrorMarker(editor, -1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"selectall\",\n description: \"Select all\",\n bindKey: bindKey(\"Ctrl-A\", \"Command-A\"),\n exec: function (editor) { editor.selectAll(); },\n readOnly: true\n }, {\n name: \"centerselection\",\n description: \"Center selection\",\n bindKey: bindKey(null, \"Ctrl-L\"),\n exec: function (editor) { editor.centerSelection(); },\n readOnly: true\n }, {\n name: \"gotoline\",\n description: \"Go to line...\",\n bindKey: bindKey(\"Ctrl-L\", \"Command-L\"),\n exec: function (editor, line) {\n if (typeof line === \"number\" && !isNaN(line))\n editor.gotoLine(line);\n editor.prompt({ $type: \"gotoLine\" });\n },\n readOnly: true\n }, {\n name: \"fold\",\n bindKey: bindKey(\"Alt-L|Ctrl-F1\", \"Command-Alt-L|Command-F1\"),\n exec: function (editor) { editor.session.toggleFold(false); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"unfold\",\n bindKey: bindKey(\"Alt-Shift-L|Ctrl-Shift-F1\", \"Command-Alt-Shift-L|Command-Shift-F1\"),\n exec: function (editor) { editor.session.toggleFold(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"toggleFoldWidget\",\n description: \"Toggle fold widget\",\n bindKey: bindKey(\"F2\", \"F2\"),\n exec: function (editor) { editor.session.toggleFoldWidget(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"toggleParentFoldWidget\",\n description: \"Toggle parent fold widget\",\n bindKey: bindKey(\"Alt-F2\", \"Alt-F2\"),\n exec: function (editor) { editor.session.toggleFoldWidget(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldall\",\n description: \"Fold all\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function (editor) { editor.session.foldAll(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldAllComments\",\n description: \"Fold all comments\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function (editor) { editor.session.foldAllComments(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldOther\",\n description: \"Fold other\",\n bindKey: bindKey(\"Alt-0\", \"Command-Option-0\"),\n exec: function (editor) {\n editor.session.foldAll();\n editor.session.unfold(editor.selection.getAllRanges());\n },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"unfoldall\",\n description: \"Unfold all\",\n bindKey: bindKey(\"Alt-Shift-0\", \"Command-Option-Shift-0\"),\n exec: function (editor) { editor.session.unfold(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"findnext\",\n description: \"Find next\",\n bindKey: bindKey(\"Ctrl-K\", \"Command-G\"),\n exec: function (editor) { editor.findNext(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"findprevious\",\n description: \"Find previous\",\n bindKey: bindKey(\"Ctrl-Shift-K\", \"Command-Shift-G\"),\n exec: function (editor) { editor.findPrevious(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"selectOrFindNext\",\n description: \"Select or find next\",\n bindKey: bindKey(\"Alt-K\", \"Ctrl-G\"),\n exec: function (editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findNext();\n },\n readOnly: true\n }, {\n name: \"selectOrFindPrevious\",\n description: \"Select or find previous\",\n bindKey: bindKey(\"Alt-Shift-K\", \"Ctrl-Shift-G\"),\n exec: function (editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findPrevious();\n },\n readOnly: true\n }, {\n name: \"find\",\n description: \"Find\",\n bindKey: bindKey(\"Ctrl-F\", \"Command-F\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/searchbox\", function (e) { e.Search(editor); });\n },\n readOnly: true\n }, {\n name: \"overwrite\",\n description: \"Overwrite\",\n bindKey: \"Insert\",\n exec: function (editor) { editor.toggleOverwrite(); },\n readOnly: true\n }, {\n name: \"selecttostart\",\n description: \"Select to start\",\n bindKey: bindKey(\"Ctrl-Shift-Home\", \"Command-Shift-Home|Command-Shift-Up\"),\n exec: function (editor) { editor.getSelection().selectFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"gotostart\",\n description: \"Go to start\",\n bindKey: bindKey(\"Ctrl-Home\", \"Command-Home|Command-Up\"),\n exec: function (editor) { editor.navigateFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"selectup\",\n description: \"Select up\",\n bindKey: bindKey(\"Shift-Up\", \"Shift-Up|Ctrl-Shift-P\"),\n exec: function (editor) { editor.getSelection().selectUp(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"golineup\",\n description: \"Go line up\",\n bindKey: bindKey(\"Up\", \"Up|Ctrl-P\"),\n exec: function (editor, args) { editor.navigateUp(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttoend\",\n description: \"Select to end\",\n bindKey: bindKey(\"Ctrl-Shift-End\", \"Command-Shift-End|Command-Shift-Down\"),\n exec: function (editor) { editor.getSelection().selectFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"gotoend\",\n description: \"Go to end\",\n bindKey: bindKey(\"Ctrl-End\", \"Command-End|Command-Down\"),\n exec: function (editor) { editor.navigateFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"selectdown\",\n description: \"Select down\",\n bindKey: bindKey(\"Shift-Down\", \"Shift-Down|Ctrl-Shift-N\"),\n exec: function (editor) { editor.getSelection().selectDown(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"golinedown\",\n description: \"Go line down\",\n bindKey: bindKey(\"Down\", \"Down|Ctrl-N\"),\n exec: function (editor, args) { editor.navigateDown(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectwordleft\",\n description: \"Select word left\",\n bindKey: bindKey(\"Ctrl-Shift-Left\", \"Option-Shift-Left\"),\n exec: function (editor) { editor.getSelection().selectWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotowordleft\",\n description: \"Go to word left\",\n bindKey: bindKey(\"Ctrl-Left\", \"Option-Left\"),\n exec: function (editor) { editor.navigateWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttolinestart\",\n description: \"Select to line start\",\n bindKey: bindKey(\"Alt-Shift-Left\", \"Command-Shift-Left|Ctrl-Shift-A\"),\n exec: function (editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotolinestart\",\n description: \"Go to line start\",\n bindKey: bindKey(\"Alt-Left|Home\", \"Command-Left|Home|Ctrl-A\"),\n exec: function (editor) { editor.navigateLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectleft\",\n description: \"Select left\",\n bindKey: bindKey(\"Shift-Left\", \"Shift-Left|Ctrl-Shift-B\"),\n exec: function (editor) { editor.getSelection().selectLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotoleft\",\n description: \"Go to left\",\n bindKey: bindKey(\"Left\", \"Left|Ctrl-B\"),\n exec: function (editor, args) { editor.navigateLeft(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectwordright\",\n description: \"Select word right\",\n bindKey: bindKey(\"Ctrl-Shift-Right\", \"Option-Shift-Right\"),\n exec: function (editor) { editor.getSelection().selectWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotowordright\",\n description: \"Go to word right\",\n bindKey: bindKey(\"Ctrl-Right\", \"Option-Right\"),\n exec: function (editor) { editor.navigateWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttolineend\",\n description: \"Select to line end\",\n bindKey: bindKey(\"Alt-Shift-Right\", \"Command-Shift-Right|Shift-End|Ctrl-Shift-E\"),\n exec: function (editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotolineend\",\n description: \"Go to line end\",\n bindKey: bindKey(\"Alt-Right|End\", \"Command-Right|End|Ctrl-E\"),\n exec: function (editor) { editor.navigateLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectright\",\n description: \"Select right\",\n bindKey: bindKey(\"Shift-Right\", \"Shift-Right\"),\n exec: function (editor) { editor.getSelection().selectRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotoright\",\n description: \"Go to right\",\n bindKey: bindKey(\"Right\", \"Right|Ctrl-F\"),\n exec: function (editor, args) { editor.navigateRight(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectpagedown\",\n description: \"Select page down\",\n bindKey: \"Shift-PageDown\",\n exec: function (editor) { editor.selectPageDown(); },\n readOnly: true\n }, {\n name: \"pagedown\",\n description: \"Page down\",\n bindKey: bindKey(null, \"Option-PageDown\"),\n exec: function (editor) { editor.scrollPageDown(); },\n readOnly: true\n }, {\n name: \"gotopagedown\",\n description: \"Go to page down\",\n bindKey: bindKey(\"PageDown\", \"PageDown|Ctrl-V\"),\n exec: function (editor) { editor.gotoPageDown(); },\n readOnly: true\n }, {\n name: \"selectpageup\",\n description: \"Select page up\",\n bindKey: \"Shift-PageUp\",\n exec: function (editor) { editor.selectPageUp(); },\n readOnly: true\n }, {\n name: \"pageup\",\n description: \"Page up\",\n bindKey: bindKey(null, \"Option-PageUp\"),\n exec: function (editor) { editor.scrollPageUp(); },\n readOnly: true\n }, {\n name: \"gotopageup\",\n description: \"Go to page up\",\n bindKey: \"PageUp\",\n exec: function (editor) { editor.gotoPageUp(); },\n readOnly: true\n }, {\n name: \"scrollup\",\n description: \"Scroll up\",\n bindKey: bindKey(\"Ctrl-Up\", null),\n exec: function (e) { e.renderer.scrollBy(0, -2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n }, {\n name: \"scrolldown\",\n description: \"Scroll down\",\n bindKey: bindKey(\"Ctrl-Down\", null),\n exec: function (e) { e.renderer.scrollBy(0, 2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n }, {\n name: \"selectlinestart\",\n description: \"Select line start\",\n bindKey: \"Shift-Home\",\n exec: function (editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectlineend\",\n description: \"Select line end\",\n bindKey: \"Shift-End\",\n exec: function (editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"togglerecording\",\n description: \"Toggle recording\",\n bindKey: bindKey(\"Ctrl-Alt-E\", \"Command-Option-E\"),\n exec: function (editor) { editor.commands.toggleRecording(editor); },\n readOnly: true\n }, {\n name: \"replaymacro\",\n description: \"Replay macro\",\n bindKey: bindKey(\"Ctrl-Shift-E\", \"Command-Shift-E\"),\n exec: function (editor) { editor.commands.replay(editor); },\n readOnly: true\n }, {\n name: \"jumptomatching\",\n description: \"Jump to matching\",\n bindKey: bindKey(\"Ctrl-\\\\|Ctrl-P\", \"Command-\\\\\"),\n exec: function (editor) { editor.jumpToMatching(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"selecttomatching\",\n description: \"Select to matching\",\n bindKey: bindKey(\"Ctrl-Shift-\\\\|Ctrl-Shift-P\", \"Command-Shift-\\\\\"),\n exec: function (editor) { editor.jumpToMatching(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"expandToMatching\",\n description: \"Expand to matching\",\n bindKey: bindKey(\"Ctrl-Shift-M\", \"Ctrl-Shift-M\"),\n exec: function (editor) { editor.jumpToMatching(true, true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"passKeysToBrowser\",\n description: \"Pass keys to browser\",\n bindKey: bindKey(null, null),\n exec: function () { },\n passEvent: true,\n readOnly: true\n }, {\n name: \"copy\",\n description: \"Copy\",\n exec: function (editor) {\n },\n readOnly: true\n },\n {\n name: \"cut\",\n description: \"Cut\",\n exec: function (editor) {\n var cutLine = editor.$copyWithEmptySelection && editor.selection.isEmpty();\n var range = cutLine ? editor.selection.getLineRange() : editor.selection.getRange();\n editor._emit(\"cut\", range);\n if (!range.isEmpty())\n editor.session.remove(range);\n editor.clearSelection();\n },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"paste\",\n description: \"Paste\",\n exec: function (editor, args) {\n editor.$handlePaste(args);\n },\n scrollIntoView: \"cursor\"\n }, {\n name: \"removeline\",\n description: \"Remove line\",\n bindKey: bindKey(\"Ctrl-D\", \"Command-D\"),\n exec: function (editor) { editor.removeLines(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEachLine\"\n }, {\n name: \"duplicateSelection\",\n description: \"Duplicate selection\",\n bindKey: bindKey(\"Ctrl-Shift-D\", \"Command-Shift-D\"),\n exec: function (editor) { editor.duplicateSelection(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"sortlines\",\n description: \"Sort lines\",\n bindKey: bindKey(\"Ctrl-Alt-S\", \"Command-Alt-S\"),\n exec: function (editor) { editor.sortLines(); },\n scrollIntoView: \"selection\",\n multiSelectAction: \"forEachLine\"\n }, {\n name: \"togglecomment\",\n description: \"Toggle comment\",\n bindKey: bindKey(\"Ctrl-/\", \"Command-/\"),\n exec: function (editor) { editor.toggleCommentLines(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"toggleBlockComment\",\n description: \"Toggle block comment\",\n bindKey: bindKey(\"Ctrl-Shift-/\", \"Command-Shift-/\"),\n exec: function (editor) { editor.toggleBlockComment(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"modifyNumberUp\",\n description: \"Modify number up\",\n bindKey: bindKey(\"Ctrl-Shift-Up\", \"Alt-Shift-Up\"),\n exec: function (editor) { editor.modifyNumber(1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"modifyNumberDown\",\n description: \"Modify number down\",\n bindKey: bindKey(\"Ctrl-Shift-Down\", \"Alt-Shift-Down\"),\n exec: function (editor) { editor.modifyNumber(-1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"replace\",\n description: \"Replace\",\n bindKey: bindKey(\"Ctrl-H\", \"Command-Option-F\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/searchbox\", function (e) { e.Search(editor, true); });\n }\n }, {\n name: \"undo\",\n description: \"Undo\",\n bindKey: bindKey(\"Ctrl-Z\", \"Command-Z\"),\n exec: function (editor) { editor.undo(); }\n }, {\n name: \"redo\",\n description: \"Redo\",\n bindKey: bindKey(\"Ctrl-Shift-Z|Ctrl-Y\", \"Command-Shift-Z|Command-Y\"),\n exec: function (editor) { editor.redo(); }\n }, {\n name: \"copylinesup\",\n description: \"Copy lines up\",\n bindKey: bindKey(\"Alt-Shift-Up\", \"Command-Option-Up\"),\n exec: function (editor) { editor.copyLinesUp(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"movelinesup\",\n description: \"Move lines up\",\n bindKey: bindKey(\"Alt-Up\", \"Option-Up\"),\n exec: function (editor) { editor.moveLinesUp(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"copylinesdown\",\n description: \"Copy lines down\",\n bindKey: bindKey(\"Alt-Shift-Down\", \"Command-Option-Down\"),\n exec: function (editor) { editor.copyLinesDown(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"movelinesdown\",\n description: \"Move lines down\",\n bindKey: bindKey(\"Alt-Down\", \"Option-Down\"),\n exec: function (editor) { editor.moveLinesDown(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"del\",\n description: \"Delete\",\n bindKey: bindKey(\"Delete\", \"Delete|Ctrl-D|Shift-Delete\"),\n exec: function (editor) { editor.remove(\"right\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"backspace\",\n description: \"Backspace\",\n bindKey: bindKey(\"Shift-Backspace|Backspace\", \"Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H\"),\n exec: function (editor) { editor.remove(\"left\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"cut_or_delete\",\n description: \"Cut or delete\",\n bindKey: bindKey(\"Shift-Delete\", null),\n exec: function (editor) {\n if (editor.selection.isEmpty()) {\n editor.remove(\"left\");\n }\n else {\n return false;\n }\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolinestart\",\n description: \"Remove to line start\",\n bindKey: bindKey(\"Alt-Backspace\", \"Command-Backspace\"),\n exec: function (editor) { editor.removeToLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolineend\",\n description: \"Remove to line end\",\n bindKey: bindKey(\"Alt-Delete\", \"Ctrl-K|Command-Delete\"),\n exec: function (editor) { editor.removeToLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolinestarthard\",\n description: \"Remove to line start hard\",\n bindKey: bindKey(\"Ctrl-Shift-Backspace\", null),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.start.column = 0;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolineendhard\",\n description: \"Remove to line end hard\",\n bindKey: bindKey(\"Ctrl-Shift-Delete\", null),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.end.column = Number.MAX_VALUE;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removewordleft\",\n description: \"Remove word left\",\n bindKey: bindKey(\"Ctrl-Backspace\", \"Alt-Backspace|Ctrl-Alt-Backspace\"),\n exec: function (editor) { editor.removeWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removewordright\",\n description: \"Remove word right\",\n bindKey: bindKey(\"Ctrl-Delete\", \"Alt-Delete\"),\n exec: function (editor) { editor.removeWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"outdent\",\n description: \"Outdent\",\n bindKey: bindKey(\"Shift-Tab\", \"Shift-Tab\"),\n exec: function (editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"indent\",\n description: \"Indent\",\n bindKey: bindKey(\"Tab\", \"Tab\"),\n exec: function (editor) { editor.indent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"blockoutdent\",\n description: \"Block outdent\",\n bindKey: bindKey(\"Ctrl-[\", \"Ctrl-[\"),\n exec: function (editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"blockindent\",\n description: \"Block indent\",\n bindKey: bindKey(\"Ctrl-]\", \"Ctrl-]\"),\n exec: function (editor) { editor.blockIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"insertstring\",\n description: \"Insert string\",\n exec: function (editor, str) { editor.insert(str); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"inserttext\",\n description: \"Insert text\",\n exec: function (editor, args) {\n editor.insert(lang.stringRepeat(args.text || \"\", args.times || 1));\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"splitline\",\n description: \"Split line\",\n bindKey: bindKey(null, \"Ctrl-O\"),\n exec: function (editor) { editor.splitLine(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"transposeletters\",\n description: \"Transpose letters\",\n bindKey: bindKey(\"Alt-Shift-X\", \"Ctrl-T\"),\n exec: function (editor) { editor.transposeLetters(); },\n multiSelectAction: function (editor) { editor.transposeSelections(1); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"touppercase\",\n description: \"To uppercase\",\n bindKey: bindKey(\"Ctrl-U\", \"Ctrl-U\"),\n exec: function (editor) { editor.toUpperCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"tolowercase\",\n description: \"To lowercase\",\n bindKey: bindKey(\"Ctrl-Shift-U\", \"Ctrl-Shift-U\"),\n exec: function (editor) { editor.toLowerCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"autoindent\",\n description: \"Auto Indent\",\n bindKey: bindKey(null, null),\n exec: function (editor) { editor.autoIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"animate\"\n }, {\n name: \"expandtoline\",\n description: \"Expand to line\",\n bindKey: bindKey(\"Ctrl-Shift-L\", \"Command-Shift-L\"),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.start.column = range.end.column = 0;\n range.end.row++;\n editor.selection.setRange(range, false);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"openlink\",\n bindKey: bindKey(\"Ctrl+F3\", \"F3\"),\n exec: function (editor) { editor.openLink(); }\n }, {\n name: \"joinlines\",\n description: \"Join lines\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n var isBackwards = editor.selection.isBackwards();\n var selectionStart = isBackwards ? editor.selection.getSelectionLead() : editor.selection.getSelectionAnchor();\n var selectionEnd = isBackwards ? editor.selection.getSelectionAnchor() : editor.selection.getSelectionLead();\n var firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length;\n var selectedText = editor.session.doc.getTextRange(editor.selection.getRange());\n var selectedCount = selectedText.replace(/\\n\\s*/, \" \").length;\n var insertLine = editor.session.doc.getLine(selectionStart.row);\n for (var i = selectionStart.row + 1; i <= selectionEnd.row + 1; i++) {\n var curLine = lang.stringTrimLeft(lang.stringTrimRight(editor.session.doc.getLine(i)));\n if (curLine.length !== 0) {\n curLine = \" \" + curLine;\n }\n insertLine += curLine;\n }\n if (selectionEnd.row + 1 < (editor.session.doc.getLength() - 1)) {\n insertLine += editor.session.doc.getNewLineCharacter();\n }\n editor.clearSelection();\n editor.session.doc.replace(new Range(selectionStart.row, 0, selectionEnd.row + 2, 0), insertLine);\n if (selectedCount > 0) {\n editor.selection.moveCursorTo(selectionStart.row, selectionStart.column);\n editor.selection.selectTo(selectionStart.row, selectionStart.column + selectedCount);\n }\n else {\n firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length > firstLineEndCol ? (firstLineEndCol + 1) : firstLineEndCol;\n editor.selection.moveCursorTo(selectionStart.row, firstLineEndCol);\n }\n },\n multiSelectAction: \"forEach\",\n readOnly: true\n }, {\n name: \"invertSelection\",\n description: \"Invert selection\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n var endRow = editor.session.doc.getLength() - 1;\n var endCol = editor.session.doc.getLine(endRow).length;\n var ranges = editor.selection.rangeList.ranges;\n var newRanges = [];\n if (ranges.length < 1) {\n ranges = [editor.selection.getRange()];\n }\n for (var i = 0; i < ranges.length; i++) {\n if (i == (ranges.length - 1)) {\n if (!(ranges[i].end.row === endRow && ranges[i].end.column === endCol)) {\n newRanges.push(new Range(ranges[i].end.row, ranges[i].end.column, endRow, endCol));\n }\n }\n if (i === 0) {\n if (!(ranges[i].start.row === 0 && ranges[i].start.column === 0)) {\n newRanges.push(new Range(0, 0, ranges[i].start.row, ranges[i].start.column));\n }\n }\n else {\n newRanges.push(new Range(ranges[i - 1].end.row, ranges[i - 1].end.column, ranges[i].start.row, ranges[i].start.column));\n }\n }\n editor.exitMultiSelectMode();\n editor.clearSelection();\n for (var i = 0; i < newRanges.length; i++) {\n editor.selection.addRange(newRanges[i], false);\n }\n },\n readOnly: true,\n scrollIntoView: \"none\"\n }, {\n name: \"addLineAfter\",\n description: \"Add new line after the current line\",\n exec: function (editor) {\n editor.selection.clearSelection();\n editor.navigateLineEnd();\n editor.insert(\"\\n\");\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"addLineBefore\",\n description: \"Add new line before the current line\",\n exec: function (editor) {\n editor.selection.clearSelection();\n var cursor = editor.getCursorPosition();\n editor.selection.moveTo(cursor.row - 1, Number.MAX_VALUE);\n editor.insert(\"\\n\");\n if (cursor.row === 0)\n editor.navigateUp();\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"openCommandPallete\",\n exec: function (editor) {\n console.warn(\"This is an obsolete command. Please use `openCommandPalette` instead.\");\n editor.prompt({ $type: \"commands\" });\n },\n readOnly: true\n }, {\n name: \"openCommandPalette\",\n description: \"Open command palette\",\n bindKey: bindKey(\"F1\", \"F1\"),\n exec: function (editor) {\n editor.prompt({ $type: \"commands\" });\n },\n readOnly: true\n }, {\n name: \"modeSelect\",\n description: \"Change language mode...\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n editor.prompt({ $type: \"modes\" });\n },\n readOnly: true\n }];\nfor (var i = 1; i < 9; i++) {\n exports.commands.push({\n name: \"foldToLevel\" + i,\n description: \"Fold To Level \" + i,\n level: i,\n exec: function (editor) { editor.session.foldToLevel(this.level); },\n scrollIntoView: \"center\",\n readOnly: true\n });\n}\n\n});\n\nace.define(\"ace/line_widgets\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"./lib/dom\");\nvar LineWidgets = /** @class */ (function () {\n function LineWidgets(session) {\n this.session = session;\n this.session.widgetManager = this;\n this.session.getRowLength = this.getRowLength;\n this.session.$getWidgetScreenLength = this.$getWidgetScreenLength;\n this.updateOnChange = this.updateOnChange.bind(this);\n this.renderWidgets = this.renderWidgets.bind(this);\n this.measureWidgets = this.measureWidgets.bind(this);\n this.session._changedWidgets = [];\n this.$onChangeEditor = this.$onChangeEditor.bind(this);\n this.session.on(\"change\", this.updateOnChange);\n this.session.on(\"changeFold\", this.updateOnFold);\n this.session.on(\"changeEditor\", this.$onChangeEditor);\n }\n LineWidgets.prototype.getRowLength = function (row) {\n var h;\n if (this.lineWidgets)\n h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n else\n h = 0;\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1 + h;\n }\n else {\n return this.$wrapData[row].length + 1 + h;\n }\n };\n LineWidgets.prototype.$getWidgetScreenLength = function () {\n var screenRows = 0;\n this.lineWidgets.forEach(function (w) {\n if (w && w.rowCount && !w.hidden)\n screenRows += w.rowCount;\n });\n return screenRows;\n };\n LineWidgets.prototype.$onChangeEditor = function (e) {\n this.attach(e.editor);\n };\n LineWidgets.prototype.attach = function (editor) {\n if (editor && editor.widgetManager && editor.widgetManager != this)\n editor.widgetManager.detach();\n if (this.editor == editor)\n return;\n this.detach();\n this.editor = editor;\n if (editor) {\n editor.widgetManager = this;\n editor.renderer.on(\"beforeRender\", this.measureWidgets);\n editor.renderer.on(\"afterRender\", this.renderWidgets);\n }\n };\n LineWidgets.prototype.detach = function (e) {\n var editor = this.editor;\n if (!editor)\n return;\n this.editor = null;\n editor.widgetManager = null;\n editor.renderer.off(\"beforeRender\", this.measureWidgets);\n editor.renderer.off(\"afterRender\", this.renderWidgets);\n var lineWidgets = this.session.lineWidgets;\n lineWidgets && lineWidgets.forEach(function (w) {\n if (w && w.el && w.el.parentNode) {\n w._inDocument = false;\n w.el.parentNode.removeChild(w.el);\n }\n });\n };\n LineWidgets.prototype.updateOnFold = function (e, session) {\n var lineWidgets = session.lineWidgets;\n if (!lineWidgets || !e.action)\n return;\n var fold = e.data;\n var start = fold.start.row;\n var end = fold.end.row;\n var hide = e.action == \"add\";\n for (var i = start + 1; i < end; i++) {\n if (lineWidgets[i])\n lineWidgets[i].hidden = hide;\n }\n if (lineWidgets[end]) {\n if (hide) {\n if (!lineWidgets[start])\n lineWidgets[start] = lineWidgets[end];\n else\n lineWidgets[end].hidden = hide;\n }\n else {\n if (lineWidgets[start] == lineWidgets[end])\n lineWidgets[start] = undefined;\n lineWidgets[end].hidden = hide;\n }\n }\n };\n LineWidgets.prototype.updateOnChange = function (delta) {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n if (len === 0) {\n }\n else if (delta.action == \"remove\") {\n var removed = lineWidgets.splice(startRow + 1, len);\n if (!lineWidgets[startRow] && removed[removed.length - 1]) {\n lineWidgets[startRow] = removed.pop();\n }\n removed.forEach(function (w) {\n w && this.removeLineWidget(w);\n }, this);\n this.$updateRows();\n }\n else {\n var args = new Array(len);\n if (lineWidgets[startRow] && lineWidgets[startRow].column != null) {\n if (delta.start.column > lineWidgets[startRow].column)\n startRow++;\n }\n args.unshift(startRow, 0);\n lineWidgets.splice.apply(lineWidgets, args);\n this.$updateRows();\n }\n };\n LineWidgets.prototype.$updateRows = function () {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var noWidgets = true;\n lineWidgets.forEach(function (w, i) {\n if (w) {\n noWidgets = false;\n w.row = i;\n while (w.$oldWidget) {\n w.$oldWidget.row = i;\n w = w.$oldWidget;\n }\n }\n });\n if (noWidgets)\n this.session.lineWidgets = null;\n };\n LineWidgets.prototype.$registerLineWidget = function (w) {\n if (!this.session.lineWidgets)\n this.session.lineWidgets = new Array(this.session.getLength());\n var old = this.session.lineWidgets[w.row];\n if (old) {\n w.$oldWidget = old;\n if (old.el && old.el.parentNode) {\n old.el.parentNode.removeChild(old.el);\n old._inDocument = false;\n }\n }\n this.session.lineWidgets[w.row] = w;\n return w;\n };\n LineWidgets.prototype.addLineWidget = function (w) {\n this.$registerLineWidget(w);\n w.session = this.session;\n if (!this.editor)\n return w;\n var renderer = this.editor.renderer;\n if (w.html && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.innerHTML = w.html;\n }\n if (w.text && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.textContent = w.text;\n }\n if (w.el) {\n dom.addCssClass(w.el, \"ace_lineWidgetContainer\");\n if (w.className) {\n dom.addCssClass(w.el, w.className);\n }\n w.el.style.position = \"absolute\";\n w.el.style.zIndex = 5;\n renderer.container.appendChild(w.el);\n w._inDocument = true;\n if (!w.coverGutter) {\n w.el.style.zIndex = 3;\n }\n if (w.pixelHeight == null) {\n w.pixelHeight = w.el.offsetHeight;\n }\n }\n if (w.rowCount == null) {\n w.rowCount = w.pixelHeight / renderer.layerConfig.lineHeight;\n }\n var fold = this.session.getFoldAt(w.row, 0);\n w.$fold = fold;\n if (fold) {\n var lineWidgets = this.session.lineWidgets;\n if (w.row == fold.end.row && !lineWidgets[fold.start.row])\n lineWidgets[fold.start.row] = w;\n else\n w.hidden = true;\n }\n this.session._emit(\"changeFold\", { data: { start: { row: w.row } } });\n this.$updateRows();\n this.renderWidgets(null, renderer);\n this.onWidgetChanged(w);\n return w;\n };\n LineWidgets.prototype.removeLineWidget = function (w) {\n w._inDocument = false;\n w.session = null;\n if (w.el && w.el.parentNode)\n w.el.parentNode.removeChild(w.el);\n if (w.editor && w.editor.destroy)\n try {\n w.editor.destroy();\n }\n catch (e) { }\n if (this.session.lineWidgets) {\n var w1 = this.session.lineWidgets[w.row];\n if (w1 == w) {\n this.session.lineWidgets[w.row] = w.$oldWidget;\n if (w.$oldWidget)\n this.onWidgetChanged(w.$oldWidget);\n }\n else {\n while (w1) {\n if (w1.$oldWidget == w) {\n w1.$oldWidget = w.$oldWidget;\n break;\n }\n w1 = w1.$oldWidget;\n }\n }\n }\n this.session._emit(\"changeFold\", { data: { start: { row: w.row } } });\n this.$updateRows();\n };\n LineWidgets.prototype.getWidgetsAtRow = function (row) {\n var lineWidgets = this.session.lineWidgets;\n var w = lineWidgets && lineWidgets[row];\n var list = [];\n while (w) {\n list.push(w);\n w = w.$oldWidget;\n }\n return list;\n };\n LineWidgets.prototype.onWidgetChanged = function (w) {\n this.session._changedWidgets.push(w);\n this.editor && this.editor.renderer.updateFull();\n };\n LineWidgets.prototype.measureWidgets = function (e, renderer) {\n var changedWidgets = this.session._changedWidgets;\n var config = renderer.layerConfig;\n if (!changedWidgets || !changedWidgets.length)\n return;\n var min = Infinity;\n for (var i = 0; i < changedWidgets.length; i++) {\n var w = changedWidgets[i];\n if (!w || !w.el)\n continue;\n if (w.session != this.session)\n continue;\n if (!w._inDocument) {\n if (this.session.lineWidgets[w.row] != w)\n continue;\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n w.h = w.el.offsetHeight;\n if (!w.fixedWidth) {\n w.w = w.el.offsetWidth;\n w.screenWidth = Math.ceil(w.w / config.characterWidth);\n }\n var rowCount = w.h / config.lineHeight;\n if (w.coverLine) {\n rowCount -= this.session.getRowLineCount(w.row);\n if (rowCount < 0)\n rowCount = 0;\n }\n if (w.rowCount != rowCount) {\n w.rowCount = rowCount;\n if (w.row < min)\n min = w.row;\n }\n }\n if (min != Infinity) {\n this.session._emit(\"changeFold\", { data: { start: { row: min } } });\n this.session.lineWidgetWidth = null;\n }\n this.session._changedWidgets = [];\n };\n LineWidgets.prototype.renderWidgets = function (e, renderer) {\n var config = renderer.layerConfig;\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var first = Math.min(this.firstRow, config.firstRow);\n var last = Math.max(this.lastRow, config.lastRow, lineWidgets.length);\n while (first > 0 && !lineWidgets[first])\n first--;\n this.firstRow = config.firstRow;\n this.lastRow = config.lastRow;\n renderer.$cursorLayer.config = config;\n for (var i = first; i <= last; i++) {\n var w = lineWidgets[i];\n if (!w || !w.el)\n continue;\n if (w.hidden) {\n w.el.style.top = -100 - (w.pixelHeight || 0) + \"px\";\n continue;\n }\n if (!w._inDocument) {\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n var top = renderer.$cursorLayer.getPixelPosition({ row: i, column: 0 }, true).top;\n if (!w.coverLine)\n top += config.lineHeight * this.session.getRowLineCount(w.row);\n w.el.style.top = top - config.offset + \"px\";\n var left = w.coverGutter ? 0 : renderer.gutterWidth;\n if (!w.fixedWidth)\n left -= renderer.scrollLeft;\n w.el.style.left = left + \"px\";\n if (w.fullWidth && w.screenWidth) {\n w.el.style.minWidth = config.width + 2 * config.padding + \"px\";\n }\n if (w.fixedWidth) {\n w.el.style.right = renderer.scrollBar.getWidth() + \"px\";\n }\n else {\n w.el.style.right = \"\";\n }\n }\n };\n return LineWidgets;\n}());\nexports.LineWidgets = LineWidgets;\n\n});\n\nace.define(\"ace/keyboard/gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/mouse/default_gutter_handler\"], function(require, exports, module){\"use strict\";\nvar keys = require('../lib/keys');\nvar GutterTooltip = require(\"../mouse/default_gutter_handler\").GutterTooltip;\nvar GutterKeyboardHandler = /** @class */ (function () {\n function GutterKeyboardHandler(editor) {\n this.editor = editor;\n this.gutterLayer = editor.renderer.$gutterLayer;\n this.element = editor.renderer.$gutter;\n this.lines = editor.renderer.$gutterLayer.$lines;\n this.activeRowIndex = null;\n this.activeLane = null;\n this.annotationTooltip = new GutterTooltip(this.editor);\n }\n GutterKeyboardHandler.prototype.addListener = function () {\n this.element.addEventListener(\"keydown\", this.$onGutterKeyDown.bind(this));\n this.element.addEventListener(\"focusout\", this.$blurGutter.bind(this));\n this.editor.on(\"mousewheel\", this.$blurGutter.bind(this));\n };\n GutterKeyboardHandler.prototype.removeListener = function () {\n this.element.removeEventListener(\"keydown\", this.$onGutterKeyDown.bind(this));\n this.element.removeEventListener(\"focusout\", this.$blurGutter.bind(this));\n this.editor.off(\"mousewheel\", this.$blurGutter.bind(this));\n };\n GutterKeyboardHandler.prototype.$onGutterKeyDown = function (e) {\n if (this.annotationTooltip.isOpen) {\n e.preventDefault();\n if (e.keyCode === keys[\"escape\"])\n this.annotationTooltip.hideTooltip();\n return;\n }\n if (e.target === this.element) {\n if (e.keyCode != keys[\"enter\"]) {\n return;\n }\n e.preventDefault();\n var row = this.editor.getCursorPosition().row;\n if (!this.editor.isRowVisible(row))\n this.editor.scrollToLine(row, true, true);\n setTimeout(function () {\n var index = this.$rowToRowIndex(this.gutterLayer.$cursorCell.row);\n var nearestFoldIndex = this.$findNearestFoldWidget(index);\n var nearestAnnotationIndex = this.$findNearestAnnotation(index);\n if (nearestFoldIndex === null && nearestAnnotationIndex === null)\n return;\n if (nearestFoldIndex === null && nearestAnnotationIndex !== null) {\n this.activeRowIndex = nearestAnnotationIndex;\n this.activeLane = \"annotation\";\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n if (nearestFoldIndex !== null && nearestAnnotationIndex === null) {\n this.activeRowIndex = nearestFoldIndex;\n this.activeLane = \"fold\";\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n if (Math.abs(nearestAnnotationIndex - index) < Math.abs(nearestFoldIndex - index)) {\n this.activeRowIndex = nearestAnnotationIndex;\n this.activeLane = \"annotation\";\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n else {\n this.activeRowIndex = nearestFoldIndex;\n this.activeLane = \"fold\";\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }.bind(this), 10);\n return;\n }\n this.$handleGutterKeyboardInteraction(e);\n setTimeout(function () {\n this.editor._signal(\"gutterkeydown\", new GutterKeyboardEvent(e, this));\n }.bind(this), 10);\n };\n GutterKeyboardHandler.prototype.$handleGutterKeyboardInteraction = function (e) {\n if (e.keyCode === keys[\"tab\"]) {\n e.preventDefault();\n return;\n }\n if (e.keyCode === keys[\"escape\"]) {\n e.preventDefault();\n this.$blurGutter();\n this.element.focus();\n this.lane = null;\n return;\n }\n if (e.keyCode === keys[\"up\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n this.$moveFoldWidgetUp();\n break;\n case \"annotation\":\n this.$moveAnnotationUp();\n break;\n }\n return;\n }\n if (e.keyCode === keys[\"down\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n this.$moveFoldWidgetDown();\n break;\n case \"annotation\":\n this.$moveAnnotationDown();\n break;\n }\n return;\n }\n if (e.keyCode === keys[\"left\"]) {\n e.preventDefault();\n this.$switchLane(\"annotation\");\n return;\n }\n if (e.keyCode === keys[\"right\"]) {\n e.preventDefault();\n this.$switchLane(\"fold\");\n return;\n }\n if (e.keyCode === keys[\"enter\"] || e.keyCode === keys[\"space\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n if (this.gutterLayer.session.foldWidgets[this.$rowIndexToRow(this.activeRowIndex)] === 'start') {\n var rowFoldingWidget = this.$rowIndexToRow(this.activeRowIndex);\n this.editor.session.onFoldWidgetClick(this.$rowIndexToRow(this.activeRowIndex), e);\n setTimeout(function () {\n if (this.$rowIndexToRow(this.activeRowIndex) !== rowFoldingWidget) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = this.$rowToRowIndex(rowFoldingWidget);\n this.$focusFoldWidget(this.activeRowIndex);\n }\n }.bind(this), 10);\n break;\n }\n else if (this.gutterLayer.session.foldWidgets[this.$rowIndexToRow(this.activeRowIndex)] === 'end') {\n break;\n }\n return;\n case \"annotation\":\n var gutterElement = this.lines.cells[this.activeRowIndex].element.childNodes[2];\n var rect = gutterElement.getBoundingClientRect();\n var style = this.annotationTooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n this.annotationTooltip.showTooltip(this.$rowIndexToRow(this.activeRowIndex));\n break;\n }\n return;\n }\n };\n GutterKeyboardHandler.prototype.$blurGutter = function () {\n if (this.activeRowIndex !== null) {\n switch (this.activeLane) {\n case \"fold\":\n this.$blurFoldWidget(this.activeRowIndex);\n break;\n case \"annotation\":\n this.$blurAnnotation(this.activeRowIndex);\n break;\n }\n }\n if (this.annotationTooltip.isOpen)\n this.annotationTooltip.hideTooltip();\n return;\n };\n GutterKeyboardHandler.prototype.$isFoldWidgetVisible = function (index) {\n var isRowFullyVisible = this.editor.isRowFullyVisible(this.$rowIndexToRow(index));\n var isIconVisible = this.$getFoldWidget(index).style.display !== \"none\";\n return isRowFullyVisible && isIconVisible;\n };\n GutterKeyboardHandler.prototype.$isAnnotationVisible = function (index) {\n var isRowFullyVisible = this.editor.isRowFullyVisible(this.$rowIndexToRow(index));\n var isIconVisible = this.$getAnnotation(index).style.display !== \"none\";\n return isRowFullyVisible && isIconVisible;\n };\n GutterKeyboardHandler.prototype.$getFoldWidget = function (index) {\n var cell = this.lines.get(index);\n var element = cell.element;\n return element.childNodes[1];\n };\n GutterKeyboardHandler.prototype.$getAnnotation = function (index) {\n var cell = this.lines.get(index);\n var element = cell.element;\n return element.childNodes[2];\n };\n GutterKeyboardHandler.prototype.$findNearestFoldWidget = function (index) {\n if (this.$isFoldWidgetVisible(index))\n return index;\n var i = 0;\n while (index - i > 0 || index + i < this.lines.getLength() - 1) {\n i++;\n if (index - i >= 0 && this.$isFoldWidgetVisible(index - i))\n return index - i;\n if (index + i <= this.lines.getLength() - 1 && this.$isFoldWidgetVisible(index + i))\n return index + i;\n }\n return null;\n };\n GutterKeyboardHandler.prototype.$findNearestAnnotation = function (index) {\n if (this.$isAnnotationVisible(index))\n return index;\n var i = 0;\n while (index - i > 0 || index + i < this.lines.getLength() - 1) {\n i++;\n if (index - i >= 0 && this.$isAnnotationVisible(index - i))\n return index - i;\n if (index + i <= this.lines.getLength() - 1 && this.$isAnnotationVisible(index + i))\n return index + i;\n }\n return null;\n };\n GutterKeyboardHandler.prototype.$focusFoldWidget = function (index) {\n if (index == null)\n return;\n var foldWidget = this.$getFoldWidget(index);\n foldWidget.classList.add(this.editor.renderer.keyboardFocusClassName);\n foldWidget.focus();\n };\n GutterKeyboardHandler.prototype.$focusAnnotation = function (index) {\n if (index == null)\n return;\n var annotation = this.$getAnnotation(index);\n annotation.classList.add(this.editor.renderer.keyboardFocusClassName);\n annotation.focus();\n };\n GutterKeyboardHandler.prototype.$blurFoldWidget = function (index) {\n var foldWidget = this.$getFoldWidget(index);\n foldWidget.classList.remove(this.editor.renderer.keyboardFocusClassName);\n foldWidget.blur();\n };\n GutterKeyboardHandler.prototype.$blurAnnotation = function (index) {\n var annotation = this.$getAnnotation(index);\n annotation.classList.remove(this.editor.renderer.keyboardFocusClassName);\n annotation.blur();\n };\n GutterKeyboardHandler.prototype.$moveFoldWidgetUp = function () {\n var index = this.activeRowIndex;\n while (index > 0) {\n index--;\n if (this.$isFoldWidgetVisible(index)) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveFoldWidgetDown = function () {\n var index = this.activeRowIndex;\n while (index < this.lines.getLength() - 1) {\n index++;\n if (this.$isFoldWidgetVisible(index)) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveAnnotationUp = function () {\n var index = this.activeRowIndex;\n while (index > 0) {\n index--;\n if (this.$isAnnotationVisible(index)) {\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveAnnotationDown = function () {\n var index = this.activeRowIndex;\n while (index < this.lines.getLength() - 1) {\n index++;\n if (this.$isAnnotationVisible(index)) {\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$switchLane = function (desinationLane) {\n switch (desinationLane) {\n case \"annotation\":\n if (this.activeLane === \"annotation\") {\n break;\n }\n var annotationIndex = this.$findNearestAnnotation(this.activeRowIndex);\n if (annotationIndex == null) {\n break;\n }\n this.activeLane = \"annotation\";\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = annotationIndex;\n this.$focusAnnotation(this.activeRowIndex);\n break;\n case \"fold\":\n if (this.activeLane === \"fold\") {\n break;\n }\n var foldWidgetIndex = this.$findNearestFoldWidget(this.activeRowIndex);\n if (foldWidgetIndex == null) {\n break;\n }\n this.activeLane = \"fold\";\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = foldWidgetIndex;\n this.$focusFoldWidget(this.activeRowIndex);\n break;\n }\n return;\n };\n GutterKeyboardHandler.prototype.$rowIndexToRow = function (index) {\n var cell = this.lines.get(index);\n if (cell)\n return cell.row;\n return null;\n };\n GutterKeyboardHandler.prototype.$rowToRowIndex = function (row) {\n for (var i = 0; i < this.lines.getLength(); i++) {\n var cell = this.lines.get(i);\n if (cell.row == row)\n return i;\n }\n return null;\n };\n return GutterKeyboardHandler;\n}());\nexports.GutterKeyboardHandler = GutterKeyboardHandler;\nvar GutterKeyboardEvent = /** @class */ (function () {\n function GutterKeyboardEvent(domEvent, gutterKeyboardHandler) {\n this.gutterKeyboardHandler = gutterKeyboardHandler;\n this.domEvent = domEvent;\n }\n GutterKeyboardEvent.prototype.getKey = function () {\n return keys.keyCodeToString(this.domEvent.keyCode);\n };\n GutterKeyboardEvent.prototype.getRow = function () {\n return this.gutterKeyboardHandler.$rowIndexToRow(this.gutterKeyboardHandler.activeRowIndex);\n };\n GutterKeyboardEvent.prototype.isInAnnotationLane = function () {\n return this.gutterKeyboardHandler.activeLane === \"annotation\";\n };\n GutterKeyboardEvent.prototype.isInFoldLane = function () {\n return this.gutterKeyboardHandler.activeLane === \"fold\";\n };\n return GutterKeyboardEvent;\n}());\nexports.GutterKeyboardEvent = GutterKeyboardEvent;\n\n});\n\nace.define(\"ace/editor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/keyboard/textinput\",\"ace/mouse/mouse_handler\",\"ace/mouse/fold_handler\",\"ace/keyboard/keybinding\",\"ace/edit_session\",\"ace/search\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/commands/command_manager\",\"ace/commands/default_commands\",\"ace/config\",\"ace/token_iterator\",\"ace/line_widgets\",\"ace/keyboard/gutter_handler\",\"ace/config\",\"ace/clipboard\",\"ace/lib/keys\"], function(require, exports, module){\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar lang = require(\"./lib/lang\");\nvar useragent = require(\"./lib/useragent\");\nvar TextInput = require(\"./keyboard/textinput\").TextInput;\nvar MouseHandler = require(\"./mouse/mouse_handler\").MouseHandler;\nvar FoldHandler = require(\"./mouse/fold_handler\").FoldHandler;\nvar KeyBinding = require(\"./keyboard/keybinding\").KeyBinding;\nvar EditSession = require(\"./edit_session\").EditSession;\nvar Search = require(\"./search\").Search;\nvar Range = require(\"./range\").Range;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar CommandManager = require(\"./commands/command_manager\").CommandManager;\nvar defaultCommands = require(\"./commands/default_commands\").commands;\nvar config = require(\"./config\");\nvar TokenIterator = require(\"./token_iterator\").TokenIterator;\nvar LineWidgets = require(\"./line_widgets\").LineWidgets;\nvar GutterKeyboardHandler = require(\"./keyboard/gutter_handler\").GutterKeyboardHandler;\nvar nls = require(\"./config\").nls;\nvar clipboard = require(\"./clipboard\");\nvar keys = require('./lib/keys');\nvar Editor = /** @class */ (function () {\n function Editor(renderer, session, options) {\n this.$toDestroy = [];\n var container = renderer.getContainerElement();\n this.container = container;\n this.renderer = renderer;\n this.id = \"editor\" + (++Editor.$uid);\n this.commands = new CommandManager(useragent.isMac ? \"mac\" : \"win\", defaultCommands);\n if (typeof document == \"object\") {\n this.textInput = new TextInput(renderer.getTextAreaContainer(), this);\n this.renderer.textarea = this.textInput.getElement();\n this.$mouseHandler = new MouseHandler(this);\n new FoldHandler(this);\n }\n this.keyBinding = new KeyBinding(this);\n this.$search = new Search().set({\n wrap: true\n });\n this.$historyTracker = this.$historyTracker.bind(this);\n this.commands.on(\"exec\", this.$historyTracker);\n this.$initOperationListeners();\n this._$emitInputEvent = lang.delayedCall(function () {\n this._signal(\"input\", {});\n if (this.session && !this.session.destroyed)\n this.session.bgTokenizer.scheduleStart();\n }.bind(this));\n this.on(\"change\", function (_, _self) {\n _self._$emitInputEvent.schedule(31);\n });\n this.setSession(session || options && options.session || new EditSession(\"\"));\n config.resetOptions(this);\n if (options)\n this.setOptions(options);\n config._signal(\"editor\", this);\n }\n Editor.prototype.$initOperationListeners = function () {\n this.commands.on(\"exec\", this.startOperation.bind(this), true);\n this.commands.on(\"afterExec\", this.endOperation.bind(this), true);\n this.$opResetTimer = lang.delayedCall(this.endOperation.bind(this, true));\n this.on(\"change\", function () {\n if (!this.curOp) {\n this.startOperation();\n this.curOp.selectionBefore = this.$lastSel;\n }\n this.curOp.docChanged = true;\n }.bind(this), true);\n this.on(\"changeSelection\", function () {\n if (!this.curOp) {\n this.startOperation();\n this.curOp.selectionBefore = this.$lastSel;\n }\n this.curOp.selectionChanged = true;\n }.bind(this), true);\n };\n Editor.prototype.startOperation = function (commandEvent) {\n if (this.curOp) {\n if (!commandEvent || this.curOp.command)\n return;\n this.prevOp = this.curOp;\n }\n if (!commandEvent) {\n this.previousCommand = null;\n commandEvent = {};\n }\n this.$opResetTimer.schedule();\n this.curOp = this.session.curOp = {\n command: commandEvent.command || {},\n args: commandEvent.args,\n scrollTop: this.renderer.scrollTop\n };\n this.curOp.selectionBefore = this.selection.toJSON();\n };\n Editor.prototype.endOperation = function (e) {\n if (this.curOp && this.session) {\n if (e && e.returnValue === false || !this.session)\n return (this.curOp = null);\n if (e == true && this.curOp.command && this.curOp.command.name == \"mouse\")\n return;\n this._signal(\"beforeEndOperation\");\n if (!this.curOp)\n return;\n var command = this.curOp.command;\n var scrollIntoView = command && command.scrollIntoView;\n if (scrollIntoView) {\n switch (scrollIntoView) {\n case \"center-animate\":\n scrollIntoView = \"animate\";\n case \"center\":\n this.renderer.scrollCursorIntoView(null, 0.5);\n break;\n case \"animate\":\n case \"cursor\":\n this.renderer.scrollCursorIntoView();\n break;\n case \"selectionPart\":\n var range = this.selection.getRange();\n var config = this.renderer.layerConfig;\n if (range.start.row >= config.lastRow || range.end.row <= config.firstRow) {\n this.renderer.scrollSelectionIntoView(this.selection.anchor, this.selection.lead);\n }\n break;\n default:\n break;\n }\n if (scrollIntoView == \"animate\")\n this.renderer.animateScrolling(this.curOp.scrollTop);\n }\n var sel = this.selection.toJSON();\n this.curOp.selectionAfter = sel;\n this.$lastSel = this.selection.toJSON();\n this.session.getUndoManager().addSelection(sel);\n this.prevOp = this.curOp;\n this.curOp = null;\n }\n };\n Editor.prototype.$historyTracker = function (e) {\n if (!this.$mergeUndoDeltas)\n return;\n var prev = this.prevOp;\n var mergeableCommands = this.$mergeableCommands;\n var shouldMerge = prev.command && (e.command.name == prev.command.name);\n if (e.command.name == \"insertstring\") {\n var text = e.args;\n if (this.mergeNextCommand === undefined)\n this.mergeNextCommand = true;\n shouldMerge = shouldMerge\n && this.mergeNextCommand // previous command allows to coalesce with\n && (!/\\s/.test(text) || /\\s/.test(prev.args)); // previous insertion was of same type\n this.mergeNextCommand = true;\n }\n else {\n shouldMerge = shouldMerge\n && mergeableCommands.indexOf(e.command.name) !== -1; // the command is mergeable\n }\n if (this.$mergeUndoDeltas != \"always\"\n && Date.now() - this.sequenceStartTime > 2000) {\n shouldMerge = false; // the sequence is too long\n }\n if (shouldMerge)\n this.session.mergeUndoDeltas = true;\n else if (mergeableCommands.indexOf(e.command.name) !== -1)\n this.sequenceStartTime = Date.now();\n };\n Editor.prototype.setKeyboardHandler = function (keyboardHandler, cb) {\n if (keyboardHandler && typeof keyboardHandler === \"string\" && keyboardHandler != \"ace\") {\n this.$keybindingId = keyboardHandler;\n var _self = this;\n config.loadModule([\"keybinding\", keyboardHandler], function (module) {\n if (_self.$keybindingId == keyboardHandler)\n _self.keyBinding.setKeyboardHandler(module && module.handler);\n cb && cb();\n });\n }\n else {\n this.$keybindingId = null;\n this.keyBinding.setKeyboardHandler(keyboardHandler);\n cb && cb();\n }\n };\n Editor.prototype.getKeyboardHandler = function () {\n return this.keyBinding.getKeyboardHandler();\n };\n Editor.prototype.setSession = function (session) {\n if (this.session == session)\n return;\n if (this.curOp)\n this.endOperation();\n this.curOp = {};\n var oldSession = this.session;\n if (oldSession) {\n this.session.off(\"change\", this.$onDocumentChange);\n this.session.off(\"changeMode\", this.$onChangeMode);\n this.session.off(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.session.off(\"changeTabSize\", this.$onChangeTabSize);\n this.session.off(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.session.off(\"changeWrapMode\", this.$onChangeWrapMode);\n this.session.off(\"changeFold\", this.$onChangeFold);\n this.session.off(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.session.off(\"changeBackMarker\", this.$onChangeBackMarker);\n this.session.off(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.session.off(\"changeAnnotation\", this.$onChangeAnnotation);\n this.session.off(\"changeOverwrite\", this.$onCursorChange);\n this.session.off(\"changeScrollTop\", this.$onScrollTopChange);\n this.session.off(\"changeScrollLeft\", this.$onScrollLeftChange);\n var selection = this.session.getSelection();\n selection.off(\"changeCursor\", this.$onCursorChange);\n selection.off(\"changeSelection\", this.$onSelectionChange);\n }\n this.session = session;\n if (session) {\n this.$onDocumentChange = this.onDocumentChange.bind(this);\n session.on(\"change\", this.$onDocumentChange);\n this.renderer.setSession(session);\n this.$onChangeMode = this.onChangeMode.bind(this);\n session.on(\"changeMode\", this.$onChangeMode);\n this.$onTokenizerUpdate = this.onTokenizerUpdate.bind(this);\n session.on(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.$onChangeTabSize = this.renderer.onChangeTabSize.bind(this.renderer);\n session.on(\"changeTabSize\", this.$onChangeTabSize);\n this.$onChangeWrapLimit = this.onChangeWrapLimit.bind(this);\n session.on(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.$onChangeWrapMode = this.onChangeWrapMode.bind(this);\n session.on(\"changeWrapMode\", this.$onChangeWrapMode);\n this.$onChangeFold = this.onChangeFold.bind(this);\n session.on(\"changeFold\", this.$onChangeFold);\n this.$onChangeFrontMarker = this.onChangeFrontMarker.bind(this);\n this.session.on(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.$onChangeBackMarker = this.onChangeBackMarker.bind(this);\n this.session.on(\"changeBackMarker\", this.$onChangeBackMarker);\n this.$onChangeBreakpoint = this.onChangeBreakpoint.bind(this);\n this.session.on(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.$onChangeAnnotation = this.onChangeAnnotation.bind(this);\n this.session.on(\"changeAnnotation\", this.$onChangeAnnotation);\n this.$onCursorChange = this.onCursorChange.bind(this);\n this.session.on(\"changeOverwrite\", this.$onCursorChange);\n this.$onScrollTopChange = this.onScrollTopChange.bind(this);\n this.session.on(\"changeScrollTop\", this.$onScrollTopChange);\n this.$onScrollLeftChange = this.onScrollLeftChange.bind(this);\n this.session.on(\"changeScrollLeft\", this.$onScrollLeftChange);\n this.selection = session.getSelection();\n this.selection.on(\"changeCursor\", this.$onCursorChange);\n this.$onSelectionChange = this.onSelectionChange.bind(this);\n this.selection.on(\"changeSelection\", this.$onSelectionChange);\n this.onChangeMode();\n this.onCursorChange();\n this.onScrollTopChange();\n this.onScrollLeftChange();\n this.onSelectionChange();\n this.onChangeFrontMarker();\n this.onChangeBackMarker();\n this.onChangeBreakpoint();\n this.onChangeAnnotation();\n this.session.getUseWrapMode() && this.renderer.adjustWrapLimit();\n this.renderer.updateFull();\n }\n else {\n this.selection = null;\n this.renderer.setSession(session);\n }\n this._signal(\"changeSession\", {\n session: session,\n oldSession: oldSession\n });\n this.curOp = null;\n oldSession && oldSession._signal(\"changeEditor\", { oldEditor: this });\n session && session._signal(\"changeEditor\", { editor: this });\n if (session && !session.destroyed)\n session.bgTokenizer.scheduleStart();\n };\n Editor.prototype.getSession = function () {\n return this.session;\n };\n Editor.prototype.setValue = function (val, cursorPos) {\n this.session.doc.setValue(val);\n if (!cursorPos)\n this.selectAll();\n else if (cursorPos == 1)\n this.navigateFileEnd();\n else if (cursorPos == -1)\n this.navigateFileStart();\n return val;\n };\n Editor.prototype.getValue = function () {\n return this.session.getValue();\n };\n Editor.prototype.getSelection = function () {\n return this.selection;\n };\n Editor.prototype.resize = function (force) {\n this.renderer.onResize(force);\n };\n Editor.prototype.setTheme = function (theme, cb) {\n this.renderer.setTheme(theme, cb);\n };\n Editor.prototype.getTheme = function () {\n return this.renderer.getTheme();\n };\n Editor.prototype.setStyle = function (style) {\n this.renderer.setStyle(style);\n };\n Editor.prototype.unsetStyle = function (style) {\n this.renderer.unsetStyle(style);\n };\n Editor.prototype.getFontSize = function () {\n return this.getOption(\"fontSize\") ||\n dom.computedStyle(this.container).fontSize;\n };\n Editor.prototype.setFontSize = function (size) {\n this.setOption(\"fontSize\", size);\n };\n Editor.prototype.$highlightBrackets = function () {\n if (this.$highlightPending) {\n return;\n }\n var self = this;\n this.$highlightPending = true;\n setTimeout(function () {\n self.$highlightPending = false;\n var session = self.session;\n if (!session || session.destroyed)\n return;\n if (session.$bracketHighlight) {\n session.$bracketHighlight.markerIds.forEach(function (id) {\n session.removeMarker(id);\n });\n session.$bracketHighlight = null;\n }\n var pos = self.getCursorPosition();\n var handler = self.getKeyboardHandler();\n var isBackwards = handler && handler.$getDirectionForHighlight && handler.$getDirectionForHighlight(self);\n var ranges = session.getMatchingBracketRanges(pos, isBackwards);\n if (!ranges) {\n var iterator = new TokenIterator(session, pos.row, pos.column);\n var token = iterator.getCurrentToken();\n if (token && /\\b(?:tag-open|tag-name)/.test(token.type)) {\n var tagNamesRanges = session.getMatchingTags(pos);\n if (tagNamesRanges)\n ranges = [tagNamesRanges.openTagName, tagNamesRanges.closeTagName];\n }\n }\n if (!ranges && session.$mode.getMatching)\n ranges = session.$mode.getMatching(self.session);\n if (!ranges) {\n if (self.getHighlightIndentGuides())\n self.renderer.$textLayer.$highlightIndentGuide();\n return;\n }\n var markerType = \"ace_bracket\";\n if (!Array.isArray(ranges)) {\n ranges = [ranges];\n }\n else if (ranges.length == 1) {\n markerType = \"ace_error_bracket\";\n }\n if (ranges.length == 2) {\n if (Range.comparePoints(ranges[0].end, ranges[1].start) == 0)\n ranges = [Range.fromPoints(ranges[0].start, ranges[1].end)];\n else if (Range.comparePoints(ranges[0].start, ranges[1].end) == 0)\n ranges = [Range.fromPoints(ranges[1].start, ranges[0].end)];\n }\n session.$bracketHighlight = {\n ranges: ranges,\n markerIds: ranges.map(function (range) {\n return session.addMarker(range, markerType, \"text\");\n })\n };\n if (self.getHighlightIndentGuides())\n self.renderer.$textLayer.$highlightIndentGuide();\n }, 50);\n };\n Editor.prototype.focus = function () {\n this.textInput.focus();\n };\n Editor.prototype.isFocused = function () {\n return this.textInput.isFocused();\n };\n Editor.prototype.blur = function () {\n this.textInput.blur();\n };\n Editor.prototype.onFocus = function (e) {\n if (this.$isFocused)\n return;\n this.$isFocused = true;\n this.renderer.showCursor();\n this.renderer.visualizeFocus();\n this._emit(\"focus\", e);\n };\n Editor.prototype.onBlur = function (e) {\n if (!this.$isFocused)\n return;\n this.$isFocused = false;\n this.renderer.hideCursor();\n this.renderer.visualizeBlur();\n this._emit(\"blur\", e);\n };\n Editor.prototype.$cursorChange = function () {\n this.renderer.updateCursor();\n this.$highlightBrackets();\n this.$updateHighlightActiveLine();\n };\n Editor.prototype.onDocumentChange = function (delta) {\n var wrap = this.session.$useWrapMode;\n var lastRow = (delta.start.row == delta.end.row ? delta.end.row : Infinity);\n this.renderer.updateLines(delta.start.row, lastRow, wrap);\n this._signal(\"change\", delta);\n this.$cursorChange();\n };\n Editor.prototype.onTokenizerUpdate = function (e) {\n var rows = e.data;\n this.renderer.updateLines(rows.first, rows.last);\n };\n Editor.prototype.onScrollTopChange = function () {\n this.renderer.scrollToY(this.session.getScrollTop());\n };\n Editor.prototype.onScrollLeftChange = function () {\n this.renderer.scrollToX(this.session.getScrollLeft());\n };\n Editor.prototype.onCursorChange = function () {\n this.$cursorChange();\n this._signal(\"changeSelection\");\n };\n Editor.prototype.$updateHighlightActiveLine = function () {\n var session = this.getSession();\n var highlight;\n if (this.$highlightActiveLine) {\n if (this.$selectionStyle != \"line\" || !this.selection.isMultiLine())\n highlight = this.getCursorPosition();\n if (this.renderer.theme && this.renderer.theme.$selectionColorConflict && !this.selection.isEmpty())\n highlight = false;\n if (this.renderer.$maxLines && this.session.getLength() === 1 && !(this.renderer.$minLines > 1))\n highlight = false;\n }\n if (session.$highlightLineMarker && !highlight) {\n session.removeMarker(session.$highlightLineMarker.id);\n session.$highlightLineMarker = null;\n }\n else if (!session.$highlightLineMarker && highlight) {\n var range = new Range(highlight.row, highlight.column, highlight.row, Infinity);\n range.id = session.addMarker(range, \"ace_active-line\", \"screenLine\");\n session.$highlightLineMarker = range;\n }\n else if (highlight) {\n session.$highlightLineMarker.start.row = highlight.row;\n session.$highlightLineMarker.end.row = highlight.row;\n session.$highlightLineMarker.start.column = highlight.column;\n session._signal(\"changeBackMarker\");\n }\n };\n Editor.prototype.onSelectionChange = function (e) {\n var session = this.session;\n if (session.$selectionMarker) {\n session.removeMarker(session.$selectionMarker);\n }\n session.$selectionMarker = null;\n if (!this.selection.isEmpty()) {\n var range = this.selection.getRange();\n var style = this.getSelectionStyle();\n session.$selectionMarker = session.addMarker(range, \"ace_selection\", style);\n }\n else {\n this.$updateHighlightActiveLine();\n }\n var re = this.$highlightSelectedWord && this.$getSelectionHighLightRegexp();\n this.session.highlight(re);\n this._signal(\"changeSelection\");\n };\n Editor.prototype.$getSelectionHighLightRegexp = function () {\n var session = this.session;\n var selection = this.getSelectionRange();\n if (selection.isEmpty() || selection.isMultiLine())\n return;\n var startColumn = selection.start.column;\n var endColumn = selection.end.column;\n var line = session.getLine(selection.start.row);\n var needle = line.substring(startColumn, endColumn);\n if (needle.length > 5000 || !/[\\w\\d]/.test(needle))\n return;\n var re = this.$search.$assembleRegExp({\n wholeWord: true,\n caseSensitive: true,\n needle: needle\n });\n var wordWithBoundary = line.substring(startColumn - 1, endColumn + 1);\n if (!re.test(wordWithBoundary))\n return;\n return re;\n };\n Editor.prototype.onChangeFrontMarker = function () {\n this.renderer.updateFrontMarkers();\n };\n Editor.prototype.onChangeBackMarker = function () {\n this.renderer.updateBackMarkers();\n };\n Editor.prototype.onChangeBreakpoint = function () {\n this.renderer.updateBreakpoints();\n };\n Editor.prototype.onChangeAnnotation = function () {\n this.renderer.setAnnotations(this.session.getAnnotations());\n };\n Editor.prototype.onChangeMode = function (e) {\n this.renderer.updateText();\n this._emit(\"changeMode\", e);\n };\n Editor.prototype.onChangeWrapLimit = function () {\n this.renderer.updateFull();\n };\n Editor.prototype.onChangeWrapMode = function () {\n this.renderer.onResize(true);\n };\n Editor.prototype.onChangeFold = function () {\n this.$updateHighlightActiveLine();\n this.renderer.updateFull();\n };\n Editor.prototype.getSelectedText = function () {\n return this.session.getTextRange(this.getSelectionRange());\n };\n Editor.prototype.getCopyText = function () {\n var text = this.getSelectedText();\n var nl = this.session.doc.getNewLineCharacter();\n var copyLine = false;\n if (!text && this.$copyWithEmptySelection) {\n copyLine = true;\n var ranges = this.selection.getAllRanges();\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (i && ranges[i - 1].start.row == range.start.row)\n continue;\n text += this.session.getLine(range.start.row) + nl;\n }\n }\n var e = { text: text };\n this._signal(\"copy\", e);\n clipboard.lineMode = copyLine ? e.text : false;\n return e.text;\n };\n Editor.prototype.onCopy = function () {\n this.commands.exec(\"copy\", this);\n };\n Editor.prototype.onCut = function () {\n this.commands.exec(\"cut\", this);\n };\n Editor.prototype.onPaste = function (text, event) {\n var e = { text: text, event: event };\n this.commands.exec(\"paste\", this, e);\n };\n Editor.prototype.$handlePaste = function (e) {\n if (typeof e == \"string\")\n e = { text: e };\n this._signal(\"paste\", e);\n var text = e.text;\n var lineMode = text === clipboard.lineMode;\n var session = this.session;\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode) {\n if (lineMode)\n session.insert({ row: this.selection.lead.row, column: 0 }, text);\n else\n this.insert(text);\n }\n else if (lineMode) {\n this.selection.rangeList.ranges.forEach(function (range) {\n session.insert({ row: range.start.row, column: 0 }, text);\n });\n }\n else {\n var lines = text.split(/\\r\\n|\\r|\\n/);\n var ranges = this.selection.rangeList.ranges;\n var isFullLine = lines.length == 2 && (!lines[0] || !lines[1]);\n if (lines.length != ranges.length || isFullLine)\n return this.commands.exec(\"insertstring\", this, text);\n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.isEmpty())\n session.remove(range);\n session.insert(range.start, lines[i]);\n }\n }\n };\n Editor.prototype.execCommand = function (command, args) {\n return this.commands.exec(command, this, args);\n };\n Editor.prototype.insert = function (text, pasted) {\n var session = this.session;\n var mode = session.getMode();\n var cursor = this.getCursorPosition();\n if (this.getBehavioursEnabled() && !pasted) {\n var transform = mode.transformAction(session.getState(cursor.row), 'insertion', this, session, text);\n if (transform) {\n if (text !== transform.text) {\n if (!this.inVirtualSelectionMode) {\n this.session.mergeUndoDeltas = false;\n this.mergeNextCommand = false;\n }\n }\n text = transform.text;\n }\n }\n if (text == \"\\t\")\n text = this.session.getTabString();\n if (!this.selection.isEmpty()) {\n var range = this.getSelectionRange();\n cursor = this.session.remove(range);\n this.clearSelection();\n }\n else if (this.session.getOverwrite() && text.indexOf(\"\\n\") == -1) {\n var range = new Range.fromPoints(cursor, cursor);\n range.end.column += text.length;\n this.session.remove(range);\n }\n if (text == \"\\n\" || text == \"\\r\\n\") {\n var line = session.getLine(cursor.row);\n if (cursor.column > line.search(/\\S|$/)) {\n var d = line.substr(cursor.column).search(/\\S|$/);\n session.doc.removeInLine(cursor.row, cursor.column, cursor.column + d);\n }\n }\n this.clearSelection();\n var start = cursor.column;\n var lineState = session.getState(cursor.row);\n var line = session.getLine(cursor.row);\n var shouldOutdent = mode.checkOutdent(lineState, line, text);\n session.insert(cursor, text);\n if (transform && transform.selection) {\n if (transform.selection.length == 2) { // Transform relative to the current column\n this.selection.setSelectionRange(new Range(cursor.row, start + transform.selection[0], cursor.row, start + transform.selection[1]));\n }\n else { // Transform relative to the current row.\n this.selection.setSelectionRange(new Range(cursor.row + transform.selection[0], transform.selection[1], cursor.row + transform.selection[2], transform.selection[3]));\n }\n }\n if (this.$enableAutoIndent) {\n if (session.getDocument().isNewLine(text)) {\n var lineIndent = mode.getNextLineIndent(lineState, line.slice(0, cursor.column), session.getTabString());\n session.insert({ row: cursor.row + 1, column: 0 }, lineIndent);\n }\n if (shouldOutdent)\n mode.autoOutdent(lineState, session, cursor.row);\n }\n };\n Editor.prototype.autoIndent = function () {\n var session = this.session;\n var mode = session.getMode();\n var startRow, endRow;\n if (this.selection.isEmpty()) {\n startRow = 0;\n endRow = session.doc.getLength() - 1;\n }\n else {\n var selectedRange = this.getSelectionRange();\n startRow = selectedRange.start.row;\n endRow = selectedRange.end.row;\n }\n var prevLineState = \"\";\n var prevLine = \"\";\n var lineIndent = \"\";\n var line, currIndent, range;\n var tab = session.getTabString();\n for (var row = startRow; row <= endRow; row++) {\n if (row > 0) {\n prevLineState = session.getState(row - 1);\n prevLine = session.getLine(row - 1);\n lineIndent = mode.getNextLineIndent(prevLineState, prevLine, tab);\n }\n line = session.getLine(row);\n currIndent = mode.$getIndent(line);\n if (lineIndent !== currIndent) {\n if (currIndent.length > 0) {\n range = new Range(row, 0, row, currIndent.length);\n session.remove(range);\n }\n if (lineIndent.length > 0) {\n session.insert({ row: row, column: 0 }, lineIndent);\n }\n }\n mode.autoOutdent(prevLineState, session, row);\n }\n };\n Editor.prototype.onTextInput = function (text, composition) {\n if (!composition)\n return this.keyBinding.onTextInput(text);\n this.startOperation({ command: { name: \"insertstring\" } });\n var applyComposition = this.applyComposition.bind(this, text, composition);\n if (this.selection.rangeCount)\n this.forEachSelection(applyComposition);\n else\n applyComposition();\n this.endOperation();\n };\n Editor.prototype.applyComposition = function (text, composition) {\n if (composition.extendLeft || composition.extendRight) {\n var r = this.selection.getRange();\n r.start.column -= composition.extendLeft;\n r.end.column += composition.extendRight;\n if (r.start.column < 0) {\n r.start.row--;\n r.start.column += this.session.getLine(r.start.row).length + 1;\n }\n this.selection.setRange(r);\n if (!text && !r.isEmpty())\n this.remove();\n }\n if (text || !this.selection.isEmpty())\n this.insert(text, true);\n if (composition.restoreStart || composition.restoreEnd) {\n var r = this.selection.getRange();\n r.start.column -= composition.restoreStart;\n r.end.column -= composition.restoreEnd;\n this.selection.setRange(r);\n }\n };\n Editor.prototype.onCommandKey = function (e, hashId, keyCode) {\n return this.keyBinding.onCommandKey(e, hashId, keyCode);\n };\n Editor.prototype.setOverwrite = function (overwrite) {\n this.session.setOverwrite(overwrite);\n };\n Editor.prototype.getOverwrite = function () {\n return this.session.getOverwrite();\n };\n Editor.prototype.toggleOverwrite = function () {\n this.session.toggleOverwrite();\n };\n Editor.prototype.setScrollSpeed = function (speed) {\n this.setOption(\"scrollSpeed\", speed);\n };\n Editor.prototype.getScrollSpeed = function () {\n return this.getOption(\"scrollSpeed\");\n };\n Editor.prototype.setDragDelay = function (dragDelay) {\n this.setOption(\"dragDelay\", dragDelay);\n };\n Editor.prototype.getDragDelay = function () {\n return this.getOption(\"dragDelay\");\n };\n Editor.prototype.setSelectionStyle = function (val) {\n this.setOption(\"selectionStyle\", val);\n };\n Editor.prototype.getSelectionStyle = function () {\n return this.getOption(\"selectionStyle\");\n };\n Editor.prototype.setHighlightActiveLine = function (shouldHighlight) {\n this.setOption(\"highlightActiveLine\", shouldHighlight);\n };\n Editor.prototype.getHighlightActiveLine = function () {\n return this.getOption(\"highlightActiveLine\");\n };\n Editor.prototype.setHighlightGutterLine = function (shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n Editor.prototype.getHighlightGutterLine = function () {\n return this.getOption(\"highlightGutterLine\");\n };\n Editor.prototype.setHighlightSelectedWord = function (shouldHighlight) {\n this.setOption(\"highlightSelectedWord\", shouldHighlight);\n };\n Editor.prototype.getHighlightSelectedWord = function () {\n return this.$highlightSelectedWord;\n };\n Editor.prototype.setAnimatedScroll = function (shouldAnimate) {\n this.renderer.setAnimatedScroll(shouldAnimate);\n };\n Editor.prototype.getAnimatedScroll = function () {\n return this.renderer.getAnimatedScroll();\n };\n Editor.prototype.setShowInvisibles = function (showInvisibles) {\n this.renderer.setShowInvisibles(showInvisibles);\n };\n Editor.prototype.getShowInvisibles = function () {\n return this.renderer.getShowInvisibles();\n };\n Editor.prototype.setDisplayIndentGuides = function (display) {\n this.renderer.setDisplayIndentGuides(display);\n };\n Editor.prototype.getDisplayIndentGuides = function () {\n return this.renderer.getDisplayIndentGuides();\n };\n Editor.prototype.setHighlightIndentGuides = function (highlight) {\n this.renderer.setHighlightIndentGuides(highlight);\n };\n Editor.prototype.getHighlightIndentGuides = function () {\n return this.renderer.getHighlightIndentGuides();\n };\n Editor.prototype.setShowPrintMargin = function (showPrintMargin) {\n this.renderer.setShowPrintMargin(showPrintMargin);\n };\n Editor.prototype.getShowPrintMargin = function () {\n return this.renderer.getShowPrintMargin();\n };\n Editor.prototype.setPrintMarginColumn = function (showPrintMargin) {\n this.renderer.setPrintMarginColumn(showPrintMargin);\n };\n Editor.prototype.getPrintMarginColumn = function () {\n return this.renderer.getPrintMarginColumn();\n };\n Editor.prototype.setReadOnly = function (readOnly) {\n this.setOption(\"readOnly\", readOnly);\n };\n Editor.prototype.getReadOnly = function () {\n return this.getOption(\"readOnly\");\n };\n Editor.prototype.setBehavioursEnabled = function (enabled) {\n this.setOption(\"behavioursEnabled\", enabled);\n };\n Editor.prototype.getBehavioursEnabled = function () {\n return this.getOption(\"behavioursEnabled\");\n };\n Editor.prototype.setWrapBehavioursEnabled = function (enabled) {\n this.setOption(\"wrapBehavioursEnabled\", enabled);\n };\n Editor.prototype.getWrapBehavioursEnabled = function () {\n return this.getOption(\"wrapBehavioursEnabled\");\n };\n Editor.prototype.setShowFoldWidgets = function (show) {\n this.setOption(\"showFoldWidgets\", show);\n };\n Editor.prototype.getShowFoldWidgets = function () {\n return this.getOption(\"showFoldWidgets\");\n };\n Editor.prototype.setFadeFoldWidgets = function (fade) {\n this.setOption(\"fadeFoldWidgets\", fade);\n };\n Editor.prototype.getFadeFoldWidgets = function () {\n return this.getOption(\"fadeFoldWidgets\");\n };\n Editor.prototype.remove = function (dir) {\n if (this.selection.isEmpty()) {\n if (dir == \"left\")\n this.selection.selectLeft();\n else\n this.selection.selectRight();\n }\n var range = this.getSelectionRange();\n if (this.getBehavioursEnabled()) {\n var session = this.session;\n var state = session.getState(range.start.row);\n var new_range = session.getMode().transformAction(state, 'deletion', this, session, range);\n if (range.end.column === 0) {\n var text = session.getTextRange(range);\n if (text[text.length - 1] == \"\\n\") {\n var line = session.getLine(range.end.row);\n if (/^\\s+$/.test(line)) {\n range.end.column = line.length;\n }\n }\n }\n if (new_range)\n range = new_range;\n }\n this.session.remove(range);\n this.clearSelection();\n };\n Editor.prototype.removeWordRight = function () {\n if (this.selection.isEmpty())\n this.selection.selectWordRight();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeWordLeft = function () {\n if (this.selection.isEmpty())\n this.selection.selectWordLeft();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeToLineStart = function () {\n if (this.selection.isEmpty())\n this.selection.selectLineStart();\n if (this.selection.isEmpty())\n this.selection.selectLeft();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeToLineEnd = function () {\n if (this.selection.isEmpty())\n this.selection.selectLineEnd();\n var range = this.getSelectionRange();\n if (range.start.column == range.end.column && range.start.row == range.end.row) {\n range.end.column = 0;\n range.end.row++;\n }\n this.session.remove(range);\n this.clearSelection();\n };\n Editor.prototype.splitLine = function () {\n if (!this.selection.isEmpty()) {\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n }\n var cursor = this.getCursorPosition();\n this.insert(\"\\n\");\n this.moveCursorToPosition(cursor);\n };\n Editor.prototype.setGhostText = function (text, position) {\n if (!this.session.widgetManager) {\n this.session.widgetManager = new LineWidgets(this.session);\n this.session.widgetManager.attach(this);\n }\n this.renderer.setGhostText(text, position);\n };\n Editor.prototype.removeGhostText = function () {\n if (!this.session.widgetManager)\n return;\n this.renderer.removeGhostText();\n };\n Editor.prototype.transposeLetters = function () {\n if (!this.selection.isEmpty()) {\n return;\n }\n var cursor = this.getCursorPosition();\n var column = cursor.column;\n if (column === 0)\n return;\n var line = this.session.getLine(cursor.row);\n var swap, range;\n if (column < line.length) {\n swap = line.charAt(column) + line.charAt(column - 1);\n range = new Range(cursor.row, column - 1, cursor.row, column + 1);\n }\n else {\n swap = line.charAt(column - 1) + line.charAt(column - 2);\n range = new Range(cursor.row, column - 2, cursor.row, column);\n }\n this.session.replace(range, swap);\n this.session.selection.moveToPosition(range.end);\n };\n Editor.prototype.toLowerCase = function () {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toLowerCase());\n this.selection.setSelectionRange(originalRange);\n };\n Editor.prototype.toUpperCase = function () {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toUpperCase());\n this.selection.setSelectionRange(originalRange);\n };\n Editor.prototype.indent = function () {\n var session = this.session;\n var range = this.getSelectionRange();\n if (range.start.row < range.end.row) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n else if (range.start.column < range.end.column) {\n var text = session.getTextRange(range);\n if (!/^\\s+$/.test(text)) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n }\n var line = session.getLine(range.start.row);\n var position = range.start;\n var size = session.getTabSize();\n var column = session.documentToScreenColumn(position.row, position.column);\n if (this.session.getUseSoftTabs()) {\n var count = (size - column % size);\n var indentString = lang.stringRepeat(\" \", count);\n }\n else {\n var count = column % size;\n while (line[range.start.column - 1] == \" \" && count) {\n range.start.column--;\n count--;\n }\n this.selection.setSelectionRange(range);\n indentString = \"\\t\";\n }\n return this.insert(indentString);\n };\n Editor.prototype.blockIndent = function () {\n var rows = this.$getSelectedRows();\n this.session.indentRows(rows.first, rows.last, \"\\t\");\n };\n Editor.prototype.blockOutdent = function () {\n var selection = this.session.getSelection();\n this.session.outdentRows(selection.getRange());\n };\n Editor.prototype.sortLines = function () {\n var rows = this.$getSelectedRows();\n var session = this.session;\n var lines = [];\n for (var i = rows.first; i <= rows.last; i++)\n lines.push(session.getLine(i));\n lines.sort(function (a, b) {\n if (a.toLowerCase() < b.toLowerCase())\n return -1;\n if (a.toLowerCase() > b.toLowerCase())\n return 1;\n return 0;\n });\n var deleteRange = new Range(0, 0, 0, 0);\n for (var i = rows.first; i <= rows.last; i++) {\n var line = session.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n deleteRange.end.column = line.length;\n session.replace(deleteRange, lines[i - rows.first]);\n }\n };\n Editor.prototype.toggleCommentLines = function () {\n var state = this.session.getState(this.getCursorPosition().row);\n var rows = this.$getSelectedRows();\n this.session.getMode().toggleCommentLines(state, this.session, rows.first, rows.last);\n };\n Editor.prototype.toggleBlockComment = function () {\n var cursor = this.getCursorPosition();\n var state = this.session.getState(cursor.row);\n var range = this.getSelectionRange();\n this.session.getMode().toggleBlockComment(state, this.session, range, cursor);\n };\n Editor.prototype.getNumberAt = function (row, column) {\n var _numberRx = /[\\-]?[0-9]+(?:\\.[0-9]+)?/g;\n _numberRx.lastIndex = 0;\n var s = this.session.getLine(row);\n while (_numberRx.lastIndex < column) {\n var m = _numberRx.exec(s);\n if (m.index <= column && m.index + m[0].length >= column) {\n var number = {\n value: m[0],\n start: m.index,\n end: m.index + m[0].length\n };\n return number;\n }\n }\n return null;\n };\n Editor.prototype.modifyNumber = function (amount) {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n var charRange = new Range(row, column - 1, row, column);\n var c = this.session.getTextRange(charRange);\n if (!isNaN(parseFloat(c)) && isFinite(c)) {\n var nr = this.getNumberAt(row, column);\n if (nr) {\n var fp = nr.value.indexOf(\".\") >= 0 ? nr.start + nr.value.indexOf(\".\") + 1 : nr.end;\n var decimals = nr.start + nr.value.length - fp;\n var t = parseFloat(nr.value);\n t *= Math.pow(10, decimals);\n if (fp !== nr.end && column < fp) {\n amount *= Math.pow(10, nr.end - column - 1);\n }\n else {\n amount *= Math.pow(10, nr.end - column);\n }\n t += amount;\n t /= Math.pow(10, decimals);\n var nnr = t.toFixed(decimals);\n var replaceRange = new Range(row, nr.start, row, nr.end);\n this.session.replace(replaceRange, nnr);\n this.moveCursorTo(row, Math.max(nr.start + 1, column + nnr.length - nr.value.length));\n }\n }\n else {\n this.toggleWord();\n }\n };\n Editor.prototype.toggleWord = function () {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n this.selection.selectWord();\n var currentState = this.getSelectedText();\n var currWordStart = this.selection.getWordRange().start.column;\n var wordParts = currentState.replace(/([a-z]+|[A-Z]+)(?=[A-Z_]|$)/g, '$1 ').split(/\\s/);\n var delta = column - currWordStart - 1;\n if (delta < 0)\n delta = 0;\n var curLength = 0, itLength = 0;\n var that = this;\n if (currentState.match(/[A-Za-z0-9_]+/)) {\n wordParts.forEach(function (item, i) {\n itLength = curLength + item.length;\n if (delta >= curLength && delta <= itLength) {\n currentState = item;\n that.selection.clearSelection();\n that.moveCursorTo(row, curLength + currWordStart);\n that.selection.selectTo(row, itLength + currWordStart);\n }\n curLength = itLength;\n });\n }\n var wordPairs = this.$toggleWordPairs;\n var reg;\n for (var i = 0; i < wordPairs.length; i++) {\n var item = wordPairs[i];\n for (var j = 0; j <= 1; j++) {\n var negate = +!j;\n var firstCondition = currentState.match(new RegExp('^\\\\s?_?(' + lang.escapeRegExp(item[j]) + ')\\\\s?$', 'i'));\n if (firstCondition) {\n var secondCondition = currentState.match(new RegExp('([_]|^|\\\\s)(' + lang.escapeRegExp(firstCondition[1]) + ')($|\\\\s)', 'g'));\n if (secondCondition) {\n reg = currentState.replace(new RegExp(lang.escapeRegExp(item[j]), 'i'), function (result) {\n var res = item[negate];\n if (result.toUpperCase() == result) {\n res = res.toUpperCase();\n }\n else if (result.charAt(0).toUpperCase() == result.charAt(0)) {\n res = res.substr(0, 0) + item[negate].charAt(0).toUpperCase() + res.substr(1);\n }\n return res;\n });\n this.insert(reg);\n reg = \"\";\n }\n }\n }\n }\n };\n Editor.prototype.findLinkAt = function (row, column) {\n var e_1, _a;\n var line = this.session.getLine(row);\n var wordParts = line.split(/((?:https?|ftp):\\/\\/[\\S]+)/);\n var columnPosition = column;\n if (columnPosition < 0)\n columnPosition = 0;\n var previousPosition = 0, currentPosition = 0, match;\n try {\n for (var wordParts_1 = __values(wordParts), wordParts_1_1 = wordParts_1.next(); !wordParts_1_1.done; wordParts_1_1 = wordParts_1.next()) {\n var item = wordParts_1_1.value;\n currentPosition = previousPosition + item.length;\n if (columnPosition >= previousPosition && columnPosition <= currentPosition) {\n if (item.match(/((?:https?|ftp):\\/\\/[\\S]+)/)) {\n match = item.replace(/[\\s:.,'\";}\\]]+$/, \"\");\n break;\n }\n }\n previousPosition = currentPosition;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (wordParts_1_1 && !wordParts_1_1.done && (_a = wordParts_1.return)) _a.call(wordParts_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return match;\n };\n Editor.prototype.openLink = function () {\n var cursor = this.selection.getCursor();\n var url = this.findLinkAt(cursor.row, cursor.column);\n if (url)\n window.open(url, '_blank');\n return url != null;\n };\n Editor.prototype.removeLines = function () {\n var rows = this.$getSelectedRows();\n this.session.removeFullLines(rows.first, rows.last);\n this.clearSelection();\n };\n Editor.prototype.duplicateSelection = function () {\n var sel = this.selection;\n var doc = this.session;\n var range = sel.getRange();\n var reverse = sel.isBackwards();\n if (range.isEmpty()) {\n var row = range.start.row;\n doc.duplicateLines(row, row);\n }\n else {\n var point = reverse ? range.start : range.end;\n var endPoint = doc.insert(point, doc.getTextRange(range), false);\n range.start = point;\n range.end = endPoint;\n sel.setSelectionRange(range, reverse);\n }\n };\n Editor.prototype.moveLinesDown = function () {\n this.$moveLines(1, false);\n };\n Editor.prototype.moveLinesUp = function () {\n this.$moveLines(-1, false);\n };\n Editor.prototype.moveText = function (range, toPosition, copy) {\n return this.session.moveText(range, toPosition, copy);\n };\n Editor.prototype.copyLinesUp = function () {\n this.$moveLines(-1, true);\n };\n Editor.prototype.copyLinesDown = function () {\n this.$moveLines(1, true);\n };\n Editor.prototype.$moveLines = function (dir, copy) {\n var rows, moved;\n var selection = this.selection;\n if (!selection.inMultiSelectMode || this.inVirtualSelectionMode) {\n var range = selection.toOrientedRange();\n rows = this.$getSelectedRows(range);\n moved = this.session.$moveLines(rows.first, rows.last, copy ? 0 : dir);\n if (copy && dir == -1)\n moved = 0;\n range.moveBy(moved, 0);\n selection.fromOrientedRange(range);\n }\n else {\n var ranges = selection.rangeList.ranges;\n selection.rangeList.detach(this.session);\n this.inVirtualSelectionMode = true;\n var diff = 0;\n var totalDiff = 0;\n var l = ranges.length;\n for (var i = 0; i < l; i++) {\n var rangeIndex = i;\n ranges[i].moveBy(diff, 0);\n rows = this.$getSelectedRows(ranges[i]);\n var first = rows.first;\n var last = rows.last;\n while (++i < l) {\n if (totalDiff)\n ranges[i].moveBy(totalDiff, 0);\n var subRows = this.$getSelectedRows(ranges[i]);\n if (copy && subRows.first != last)\n break;\n else if (!copy && subRows.first > last + 1)\n break;\n last = subRows.last;\n }\n i--;\n diff = this.session.$moveLines(first, last, copy ? 0 : dir);\n if (copy && dir == -1)\n rangeIndex = i + 1;\n while (rangeIndex <= i) {\n ranges[rangeIndex].moveBy(diff, 0);\n rangeIndex++;\n }\n if (!copy)\n diff = 0;\n totalDiff += diff;\n }\n selection.fromOrientedRange(selection.ranges[0]);\n selection.rangeList.attach(this.session);\n this.inVirtualSelectionMode = false;\n }\n };\n Editor.prototype.$getSelectedRows = function (range) {\n range = (range || this.getSelectionRange()).collapseRows();\n return {\n first: this.session.getRowFoldStart(range.start.row),\n last: this.session.getRowFoldEnd(range.end.row)\n };\n };\n Editor.prototype.onCompositionStart = function (compositionState) {\n this.renderer.showComposition(compositionState);\n };\n Editor.prototype.onCompositionUpdate = function (text) {\n this.renderer.setCompositionText(text);\n };\n Editor.prototype.onCompositionEnd = function () {\n this.renderer.hideComposition();\n };\n Editor.prototype.getFirstVisibleRow = function () {\n return this.renderer.getFirstVisibleRow();\n };\n Editor.prototype.getLastVisibleRow = function () {\n return this.renderer.getLastVisibleRow();\n };\n Editor.prototype.isRowVisible = function (row) {\n return (row >= this.getFirstVisibleRow() && row <= this.getLastVisibleRow());\n };\n Editor.prototype.isRowFullyVisible = function (row) {\n return (row >= this.renderer.getFirstFullyVisibleRow() && row <= this.renderer.getLastFullyVisibleRow());\n };\n Editor.prototype.$getVisibleRowCount = function () {\n return this.renderer.getScrollBottomRow() - this.renderer.getScrollTopRow() + 1;\n };\n Editor.prototype.$moveByPage = function (dir, select) {\n var renderer = this.renderer;\n var config = this.renderer.layerConfig;\n var rows = dir * Math.floor(config.height / config.lineHeight);\n if (select === true) {\n this.selection.$moveSelection(function () {\n this.moveCursorBy(rows, 0);\n });\n }\n else if (select === false) {\n this.selection.moveCursorBy(rows, 0);\n this.selection.clearSelection();\n }\n var scrollTop = renderer.scrollTop;\n renderer.scrollBy(0, rows * config.lineHeight);\n if (select != null)\n renderer.scrollCursorIntoView(null, 0.5);\n renderer.animateScrolling(scrollTop);\n };\n Editor.prototype.selectPageDown = function () {\n this.$moveByPage(1, true);\n };\n Editor.prototype.selectPageUp = function () {\n this.$moveByPage(-1, true);\n };\n Editor.prototype.gotoPageDown = function () {\n this.$moveByPage(1, false);\n };\n Editor.prototype.gotoPageUp = function () {\n this.$moveByPage(-1, false);\n };\n Editor.prototype.scrollPageDown = function () {\n this.$moveByPage(1);\n };\n Editor.prototype.scrollPageUp = function () {\n this.$moveByPage(-1);\n };\n Editor.prototype.scrollToRow = function (row) {\n this.renderer.scrollToRow(row);\n };\n Editor.prototype.scrollToLine = function (line, center, animate, callback) {\n this.renderer.scrollToLine(line, center, animate, callback);\n };\n Editor.prototype.centerSelection = function () {\n var range = this.getSelectionRange();\n var pos = {\n row: Math.floor(range.start.row + (range.end.row - range.start.row) / 2),\n column: Math.floor(range.start.column + (range.end.column - range.start.column) / 2)\n };\n this.renderer.alignCursor(pos, 0.5);\n };\n Editor.prototype.getCursorPosition = function () {\n return this.selection.getCursor();\n };\n Editor.prototype.getCursorPositionScreen = function () {\n return this.session.documentToScreenPosition(this.getCursorPosition());\n };\n Editor.prototype.getSelectionRange = function () {\n return this.selection.getRange();\n };\n Editor.prototype.selectAll = function () {\n this.selection.selectAll();\n };\n Editor.prototype.clearSelection = function () {\n this.selection.clearSelection();\n };\n Editor.prototype.moveCursorTo = function (row, column) {\n this.selection.moveCursorTo(row, column);\n };\n Editor.prototype.moveCursorToPosition = function (pos) {\n this.selection.moveCursorToPosition(pos);\n };\n Editor.prototype.jumpToMatching = function (select, expand) {\n var cursor = this.getCursorPosition();\n var iterator = new TokenIterator(this.session, cursor.row, cursor.column);\n var prevToken = iterator.getCurrentToken();\n var tokenCount = 0;\n if (prevToken && prevToken.type.indexOf('tag-name') !== -1) {\n prevToken = iterator.stepBackward();\n }\n var token = prevToken || iterator.stepForward();\n if (!token)\n return;\n var matchType;\n var found = false;\n var depth = {};\n var i = cursor.column - token.start;\n var bracketType;\n var brackets = {\n \")\": \"(\",\n \"(\": \"(\",\n \"]\": \"[\",\n \"[\": \"[\",\n \"{\": \"{\",\n \"}\": \"{\"\n };\n do {\n if (token.value.match(/[{}()\\[\\]]/g)) {\n for (; i < token.value.length && !found; i++) {\n if (!brackets[token.value[i]]) {\n continue;\n }\n bracketType = brackets[token.value[i]] + '.' + token.type.replace(\"rparen\", \"lparen\");\n if (isNaN(depth[bracketType])) {\n depth[bracketType] = 0;\n }\n switch (token.value[i]) {\n case '(':\n case '[':\n case '{':\n depth[bracketType]++;\n break;\n case ')':\n case ']':\n case '}':\n depth[bracketType]--;\n if (depth[bracketType] === -1) {\n matchType = 'bracket';\n found = true;\n }\n break;\n }\n }\n }\n else if (token.type.indexOf('tag-name') !== -1) {\n if (isNaN(depth[token.value])) {\n depth[token.value] = 0;\n }\n if (prevToken.value === '<' && tokenCount > 1) {\n depth[token.value]++;\n }\n else if (prevToken.value === '= 0; --i) {\n if (this.$tryReplace(ranges[i], replacement)) {\n replaced++;\n }\n }\n this.selection.setSelectionRange(selection);\n return replaced;\n };\n Editor.prototype.$tryReplace = function (range, replacement) {\n var input = this.session.getTextRange(range);\n replacement = this.$search.replace(input, replacement);\n if (replacement !== null) {\n range.end = this.session.replace(range, replacement);\n return range;\n }\n else {\n return null;\n }\n };\n Editor.prototype.getLastSearchOptions = function () {\n return this.$search.getOptions();\n };\n Editor.prototype.find = function (needle, options, animate) {\n if (!options)\n options = {};\n if (typeof needle == \"string\" || needle instanceof RegExp)\n options.needle = needle;\n else if (typeof needle == \"object\")\n oop.mixin(options, needle);\n var range = this.selection.getRange();\n if (options.needle == null) {\n needle = this.session.getTextRange(range)\n || this.$search.$options.needle;\n if (!needle) {\n range = this.session.getWordRange(range.start.row, range.start.column);\n needle = this.session.getTextRange(range);\n }\n this.$search.set({ needle: needle });\n }\n this.$search.set(options);\n if (!options.start)\n this.$search.set({ start: range });\n var newRange = this.$search.find(this.session);\n if (options.preventScroll)\n return newRange;\n if (newRange) {\n this.revealRange(newRange, animate);\n return newRange;\n }\n if (options.backwards)\n range.start = range.end;\n else\n range.end = range.start;\n this.selection.setRange(range);\n };\n Editor.prototype.findNext = function (options, animate) {\n this.find({ skipCurrent: true, backwards: false }, options, animate);\n };\n Editor.prototype.findPrevious = function (options, animate) {\n this.find(options, { skipCurrent: true, backwards: true }, animate);\n };\n Editor.prototype.revealRange = function (range, animate) {\n this.session.unfold(range);\n this.selection.setSelectionRange(range);\n var scrollTop = this.renderer.scrollTop;\n this.renderer.scrollSelectionIntoView(range.start, range.end, 0.5);\n if (animate !== false)\n this.renderer.animateScrolling(scrollTop);\n };\n Editor.prototype.undo = function () {\n this.session.getUndoManager().undo(this.session);\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n Editor.prototype.redo = function () {\n this.session.getUndoManager().redo(this.session);\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n Editor.prototype.destroy = function () {\n if (this.$toDestroy) {\n this.$toDestroy.forEach(function (el) {\n el.destroy();\n });\n this.$toDestroy = null;\n }\n if (this.$mouseHandler)\n this.$mouseHandler.destroy();\n this.renderer.destroy();\n this._signal(\"destroy\", this);\n if (this.session)\n this.session.destroy();\n if (this._$emitInputEvent)\n this._$emitInputEvent.cancel();\n this.removeAllListeners();\n };\n Editor.prototype.setAutoScrollEditorIntoView = function (enable) {\n if (!enable)\n return;\n var rect;\n var self = this;\n var shouldScroll = false;\n if (!this.$scrollAnchor)\n this.$scrollAnchor = document.createElement(\"div\");\n var scrollAnchor = this.$scrollAnchor;\n scrollAnchor.style.cssText = \"position:absolute\";\n this.container.insertBefore(scrollAnchor, this.container.firstChild);\n var onChangeSelection = this.on(\"changeSelection\", function () {\n shouldScroll = true;\n });\n var onBeforeRender = this.renderer.on(\"beforeRender\", function () {\n if (shouldScroll)\n rect = self.renderer.container.getBoundingClientRect();\n });\n var onAfterRender = this.renderer.on(\"afterRender\", function () {\n if (shouldScroll && rect && (self.isFocused()\n || self.searchBox && self.searchBox.isFocused())) {\n var renderer = self.renderer;\n var pos = renderer.$cursorLayer.$pixelPos;\n var config = renderer.layerConfig;\n var top = pos.top - config.offset;\n if (pos.top >= 0 && top + rect.top < 0) {\n shouldScroll = true;\n }\n else if (pos.top < config.height &&\n pos.top + rect.top + config.lineHeight > window.innerHeight) {\n shouldScroll = false;\n }\n else {\n shouldScroll = null;\n }\n if (shouldScroll != null) {\n scrollAnchor.style.top = top + \"px\";\n scrollAnchor.style.left = pos.left + \"px\";\n scrollAnchor.style.height = config.lineHeight + \"px\";\n scrollAnchor.scrollIntoView(shouldScroll);\n }\n shouldScroll = rect = null;\n }\n });\n this.setAutoScrollEditorIntoView = function (enable) {\n if (enable)\n return;\n delete this.setAutoScrollEditorIntoView;\n this.off(\"changeSelection\", onChangeSelection);\n this.renderer.off(\"afterRender\", onAfterRender);\n this.renderer.off(\"beforeRender\", onBeforeRender);\n };\n };\n Editor.prototype.$resetCursorStyle = function () {\n var style = this.$cursorStyle || \"ace\";\n var cursorLayer = this.renderer.$cursorLayer;\n if (!cursorLayer)\n return;\n cursorLayer.setSmoothBlinking(/smooth/.test(style));\n cursorLayer.isBlinking = !this.$readOnly && style != \"wide\";\n dom.setCssClass(cursorLayer.element, \"ace_slim-cursors\", /slim/.test(style));\n };\n Editor.prototype.prompt = function (message, options, callback) {\n var editor = this;\n config.loadModule(\"ace/ext/prompt\", function (module) {\n module.prompt(editor, message, options, callback);\n });\n };\n return Editor;\n}());\nEditor.$uid = 0;\nEditor.prototype.curOp = null;\nEditor.prototype.prevOp = {};\nEditor.prototype.$mergeableCommands = [\"backspace\", \"del\", \"insertstring\"];\nEditor.prototype.$toggleWordPairs = [\n [\"first\", \"last\"],\n [\"true\", \"false\"],\n [\"yes\", \"no\"],\n [\"width\", \"height\"],\n [\"top\", \"bottom\"],\n [\"right\", \"left\"],\n [\"on\", \"off\"],\n [\"x\", \"y\"],\n [\"get\", \"set\"],\n [\"max\", \"min\"],\n [\"horizontal\", \"vertical\"],\n [\"show\", \"hide\"],\n [\"add\", \"remove\"],\n [\"up\", \"down\"],\n [\"before\", \"after\"],\n [\"even\", \"odd\"],\n [\"in\", \"out\"],\n [\"inside\", \"outside\"],\n [\"next\", \"previous\"],\n [\"increase\", \"decrease\"],\n [\"attach\", \"detach\"],\n [\"&&\", \"||\"],\n [\"==\", \"!=\"]\n];\noop.implement(Editor.prototype, EventEmitter);\nconfig.defineOptions(Editor.prototype, \"editor\", {\n selectionStyle: {\n set: function (style) {\n this.onSelectionChange();\n this._signal(\"changeSelectionStyle\", { data: style });\n },\n initialValue: \"line\"\n },\n highlightActiveLine: {\n set: function () { this.$updateHighlightActiveLine(); },\n initialValue: true\n },\n highlightSelectedWord: {\n set: function (shouldHighlight) { this.$onSelectionChange(); },\n initialValue: true\n },\n readOnly: {\n set: function (readOnly) {\n this.textInput.setReadOnly(readOnly);\n this.$resetCursorStyle();\n },\n initialValue: false\n },\n copyWithEmptySelection: {\n set: function (value) {\n this.textInput.setCopyWithEmptySelection(value);\n },\n initialValue: false\n },\n cursorStyle: {\n set: function (val) { this.$resetCursorStyle(); },\n values: [\"ace\", \"slim\", \"smooth\", \"wide\"],\n initialValue: \"ace\"\n },\n mergeUndoDeltas: {\n values: [false, true, \"always\"],\n initialValue: true\n },\n behavioursEnabled: { initialValue: true },\n wrapBehavioursEnabled: { initialValue: true },\n enableAutoIndent: { initialValue: true },\n autoScrollEditorIntoView: {\n set: function (val) { this.setAutoScrollEditorIntoView(val); }\n },\n keyboardHandler: {\n set: function (val) { this.setKeyboardHandler(val); },\n get: function () { return this.$keybindingId; },\n handlesSet: true\n },\n value: {\n set: function (val) { this.session.setValue(val); },\n get: function () { return this.getValue(); },\n handlesSet: true,\n hidden: true\n },\n session: {\n set: function (val) { this.setSession(val); },\n get: function () { return this.session; },\n handlesSet: true,\n hidden: true\n },\n showLineNumbers: {\n set: function (show) {\n this.renderer.$gutterLayer.setShowLineNumbers(show);\n this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER);\n if (show && this.$relativeLineNumbers)\n relativeNumberRenderer.attach(this);\n else\n relativeNumberRenderer.detach(this);\n },\n initialValue: true\n },\n relativeLineNumbers: {\n set: function (value) {\n if (this.$showLineNumbers && value)\n relativeNumberRenderer.attach(this);\n else\n relativeNumberRenderer.detach(this);\n }\n },\n placeholder: {\n set: function (message) {\n if (!this.$updatePlaceholder) {\n this.$updatePlaceholder = function () {\n var hasValue = this.session && (this.renderer.$composition ||\n this.session.getLength() > 1 || this.session.getLine(0).length > 0);\n if (hasValue && this.renderer.placeholderNode) {\n this.renderer.off(\"afterRender\", this.$updatePlaceholder);\n dom.removeCssClass(this.container, \"ace_hasPlaceholder\");\n this.renderer.placeholderNode.remove();\n this.renderer.placeholderNode = null;\n }\n else if (!hasValue && !this.renderer.placeholderNode) {\n this.renderer.on(\"afterRender\", this.$updatePlaceholder);\n dom.addCssClass(this.container, \"ace_hasPlaceholder\");\n var el = dom.createElement(\"div\");\n el.className = \"ace_placeholder\";\n el.textContent = this.$placeholder || \"\";\n this.renderer.placeholderNode = el;\n this.renderer.content.appendChild(this.renderer.placeholderNode);\n }\n else if (!hasValue && this.renderer.placeholderNode) {\n this.renderer.placeholderNode.textContent = this.$placeholder || \"\";\n }\n }.bind(this);\n this.on(\"input\", this.$updatePlaceholder);\n }\n this.$updatePlaceholder();\n }\n },\n enableKeyboardAccessibility: {\n set: function (value) {\n var blurCommand = {\n name: \"blurTextInput\",\n description: \"Set focus to the editor content div to allow tabbing through the page\",\n bindKey: \"Esc\",\n exec: function (editor) {\n editor.blur();\n editor.renderer.scroller.focus();\n },\n readOnly: true\n };\n var focusOnEnterKeyup = function (e) {\n if (e.target == this.renderer.scroller && e.keyCode === keys['enter']) {\n e.preventDefault();\n var row = this.getCursorPosition().row;\n if (!this.isRowVisible(row))\n this.scrollToLine(row, true, true);\n this.focus();\n }\n };\n var gutterKeyboardHandler;\n if (value) {\n this.renderer.enableKeyboardAccessibility = true;\n this.renderer.keyboardFocusClassName = \"ace_keyboard-focus\";\n this.textInput.getElement().setAttribute(\"tabindex\", -1);\n this.textInput.setNumberOfExtraLines(useragent.isWin ? 3 : 0);\n this.renderer.scroller.setAttribute(\"tabindex\", 0);\n this.renderer.scroller.setAttribute(\"role\", \"group\");\n this.renderer.scroller.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName);\n this.renderer.scroller.setAttribute(\"aria-label\", nls(\"Editor content, press Enter to start editing, press Escape to exit\"));\n this.renderer.scroller.addEventListener(\"keyup\", focusOnEnterKeyup.bind(this));\n this.commands.addCommand(blurCommand);\n this.renderer.$gutter.setAttribute(\"tabindex\", 0);\n this.renderer.$gutter.setAttribute(\"aria-hidden\", false);\n this.renderer.$gutter.setAttribute(\"role\", \"group\");\n this.renderer.$gutter.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n this.renderer.$gutter.setAttribute(\"aria-label\", nls(\"Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit\"));\n this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName);\n this.renderer.content.setAttribute(\"aria-hidden\", true);\n if (!gutterKeyboardHandler)\n gutterKeyboardHandler = new GutterKeyboardHandler(this);\n gutterKeyboardHandler.addListener();\n }\n else {\n this.renderer.enableKeyboardAccessibility = false;\n this.textInput.getElement().setAttribute(\"tabindex\", 0);\n this.textInput.setNumberOfExtraLines(0);\n this.renderer.scroller.setAttribute(\"tabindex\", -1);\n this.renderer.scroller.removeAttribute(\"role\");\n this.renderer.scroller.removeAttribute(\"aria-roledescription\");\n this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName);\n this.renderer.scroller.removeAttribute(\"aria-label\");\n this.renderer.scroller.removeEventListener(\"keyup\", focusOnEnterKeyup.bind(this));\n this.commands.removeCommand(blurCommand);\n this.renderer.content.removeAttribute(\"aria-hidden\");\n this.renderer.$gutter.setAttribute(\"tabindex\", -1);\n this.renderer.$gutter.setAttribute(\"aria-hidden\", true);\n this.renderer.$gutter.removeAttribute(\"role\");\n this.renderer.$gutter.removeAttribute(\"aria-roledescription\");\n this.renderer.$gutter.removeAttribute(\"aria-label\");\n this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName);\n if (gutterKeyboardHandler)\n gutterKeyboardHandler.removeListener();\n }\n },\n initialValue: false\n },\n customScrollbar: \"renderer\",\n hScrollBarAlwaysVisible: \"renderer\",\n vScrollBarAlwaysVisible: \"renderer\",\n highlightGutterLine: \"renderer\",\n animatedScroll: \"renderer\",\n showInvisibles: \"renderer\",\n showPrintMargin: \"renderer\",\n printMarginColumn: \"renderer\",\n printMargin: \"renderer\",\n fadeFoldWidgets: \"renderer\",\n showFoldWidgets: \"renderer\",\n displayIndentGuides: \"renderer\",\n highlightIndentGuides: \"renderer\",\n showGutter: \"renderer\",\n fontSize: \"renderer\",\n fontFamily: \"renderer\",\n maxLines: \"renderer\",\n minLines: \"renderer\",\n scrollPastEnd: \"renderer\",\n fixedWidthGutter: \"renderer\",\n theme: \"renderer\",\n hasCssTransforms: \"renderer\",\n maxPixelHeight: \"renderer\",\n useTextareaForIME: \"renderer\",\n useResizeObserver: \"renderer\",\n useSvgGutterIcons: \"renderer\",\n showFoldedAnnotations: \"renderer\",\n scrollSpeed: \"$mouseHandler\",\n dragDelay: \"$mouseHandler\",\n dragEnabled: \"$mouseHandler\",\n focusTimeout: \"$mouseHandler\",\n tooltipFollowsMouse: \"$mouseHandler\",\n firstLineNumber: \"session\",\n overwrite: \"session\",\n newLineMode: \"session\",\n useWorker: \"session\",\n useSoftTabs: \"session\",\n navigateWithinSoftTabs: \"session\",\n tabSize: \"session\",\n wrap: \"session\",\n indentedSoftWrap: \"session\",\n foldStyle: \"session\",\n mode: \"session\"\n});\nvar relativeNumberRenderer = {\n getText: function (session, row) {\n return (Math.abs(session.selection.lead.row - row) || (row + 1 + (row < 9 ? \"\\xb7\" : \"\"))) + \"\";\n },\n getWidth: function (session, lastLineNumber, config) {\n return Math.max(lastLineNumber.toString().length, (config.lastRow + 1).toString().length, 2) * config.characterWidth;\n },\n update: function (e, editor) {\n editor.renderer.$loop.schedule(editor.renderer.CHANGE_GUTTER);\n },\n attach: function (editor) {\n editor.renderer.$gutterLayer.$renderer = this;\n editor.on(\"changeSelection\", this.update);\n this.update(null, editor);\n },\n detach: function (editor) {\n if (editor.renderer.$gutterLayer.$renderer == this)\n editor.renderer.$gutterLayer.$renderer = null;\n editor.off(\"changeSelection\", this.update);\n this.update(null, editor);\n }\n};\nexports.Editor = Editor;\n\n});\n\nace.define(\"ace/layer/lines\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar Lines = /** @class */ (function () {\n function Lines(element, canvasHeight) {\n this.element = element;\n this.canvasHeight = canvasHeight || 500000;\n this.element.style.height = (this.canvasHeight * 2) + \"px\";\n this.cells = [];\n this.cellCache = [];\n this.$offsetCoefficient = 0;\n }\n Lines.prototype.moveContainer = function (config) {\n dom.translate(this.element, 0, -((config.firstRowScreen * config.lineHeight) % this.canvasHeight) - config.offset * this.$offsetCoefficient);\n };\n Lines.prototype.pageChanged = function (oldConfig, newConfig) {\n return (Math.floor((oldConfig.firstRowScreen * oldConfig.lineHeight) / this.canvasHeight) !==\n Math.floor((newConfig.firstRowScreen * newConfig.lineHeight) / this.canvasHeight));\n };\n Lines.prototype.computeLineTop = function (row, config, session) {\n var screenTop = config.firstRowScreen * config.lineHeight;\n var screenPage = Math.floor(screenTop / this.canvasHeight);\n var lineTop = session.documentToScreenRow(row, 0) * config.lineHeight;\n return lineTop - (screenPage * this.canvasHeight);\n };\n Lines.prototype.computeLineHeight = function (row, config, session) {\n return config.lineHeight * session.getRowLineCount(row);\n };\n Lines.prototype.getLength = function () {\n return this.cells.length;\n };\n Lines.prototype.get = function (index) {\n return this.cells[index];\n };\n Lines.prototype.shift = function () {\n this.$cacheCell(this.cells.shift());\n };\n Lines.prototype.pop = function () {\n this.$cacheCell(this.cells.pop());\n };\n Lines.prototype.push = function (cell) {\n if (Array.isArray(cell)) {\n this.cells.push.apply(this.cells, cell);\n var fragment = dom.createFragment(this.element);\n for (var i = 0; i < cell.length; i++) {\n fragment.appendChild(cell[i].element);\n }\n this.element.appendChild(fragment);\n }\n else {\n this.cells.push(cell);\n this.element.appendChild(cell.element);\n }\n };\n Lines.prototype.unshift = function (cell) {\n if (Array.isArray(cell)) {\n this.cells.unshift.apply(this.cells, cell);\n var fragment = dom.createFragment(this.element);\n for (var i = 0; i < cell.length; i++) {\n fragment.appendChild(cell[i].element);\n }\n if (this.element.firstChild)\n this.element.insertBefore(fragment, this.element.firstChild);\n else\n this.element.appendChild(fragment);\n }\n else {\n this.cells.unshift(cell);\n this.element.insertAdjacentElement(\"afterbegin\", cell.element);\n }\n };\n Lines.prototype.last = function () {\n if (this.cells.length)\n return this.cells[this.cells.length - 1];\n else\n return null;\n };\n Lines.prototype.$cacheCell = function (cell) {\n if (!cell)\n return;\n cell.element.remove();\n this.cellCache.push(cell);\n };\n Lines.prototype.createCell = function (row, config, session, initElement) {\n var cell = this.cellCache.pop();\n if (!cell) {\n var element = dom.createElement(\"div\");\n if (initElement)\n initElement(element);\n this.element.appendChild(element);\n cell = {\n element: element,\n text: \"\",\n row: row\n };\n }\n cell.row = row;\n return cell;\n };\n return Lines;\n}());\nexports.Lines = Lines;\n\n});\n\nace.define(\"ace/layer/gutter\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/layer/lines\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar Lines = require(\"./lines\").Lines;\nvar nls = require(\"../config\").nls;\nvar Gutter = /** @class */ (function () {\n function Gutter(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_gutter-layer\";\n parentEl.appendChild(this.element);\n this.setShowFoldWidgets(this.$showFoldWidgets);\n this.gutterWidth = 0;\n this.$annotations = [];\n this.$updateAnnotations = this.$updateAnnotations.bind(this);\n this.$lines = new Lines(this.element);\n this.$lines.$offsetCoefficient = 1;\n }\n Gutter.prototype.setSession = function (session) {\n if (this.session)\n this.session.off(\"change\", this.$updateAnnotations);\n this.session = session;\n if (session)\n session.on(\"change\", this.$updateAnnotations);\n };\n Gutter.prototype.addGutterDecoration = function (row, className) {\n if (window.console)\n console.warn && console.warn(\"deprecated use session.addGutterDecoration\");\n this.session.addGutterDecoration(row, className);\n };\n Gutter.prototype.removeGutterDecoration = function (row, className) {\n if (window.console)\n console.warn && console.warn(\"deprecated use session.removeGutterDecoration\");\n this.session.removeGutterDecoration(row, className);\n };\n Gutter.prototype.setAnnotations = function (annotations) {\n this.$annotations = [];\n for (var i = 0; i < annotations.length; i++) {\n var annotation = annotations[i];\n var row = annotation.row;\n var rowInfo = this.$annotations[row];\n if (!rowInfo)\n rowInfo = this.$annotations[row] = { text: [], type: [] };\n var annoText = annotation.text;\n var annoType = annotation.type;\n annoText = annoText ? lang.escapeHTML(annoText) : annotation.html || \"\";\n if (rowInfo.text.indexOf(annoText) === -1) {\n rowInfo.text.push(annoText);\n rowInfo.type.push(annoType);\n }\n var className = annotation.className;\n if (className)\n rowInfo.className = className;\n else if (annoType == \"error\")\n rowInfo.className = \" ace_error\";\n else if (annoType == \"warning\" && rowInfo.className != \" ace_error\")\n rowInfo.className = \" ace_warning\";\n else if (annoType == \"info\" && (!rowInfo.className))\n rowInfo.className = \" ace_info\";\n }\n };\n Gutter.prototype.$updateAnnotations = function (delta) {\n if (!this.$annotations.length)\n return;\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n }\n else if (delta.action == 'remove') {\n this.$annotations.splice(firstRow, len + 1, null);\n }\n else {\n var args = new Array(len + 1);\n args.unshift(firstRow, 1);\n this.$annotations.splice.apply(this.$annotations, args);\n }\n };\n Gutter.prototype.update = function (config) {\n this.config = config;\n var session = this.session;\n var firstRow = config.firstRow;\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n session.getLength() - 1);\n this.oldLastRow = lastRow;\n this.config = config;\n this.$lines.moveContainer(config);\n this.$updateCursorRow();\n var fold = session.getNextFoldLine(firstRow);\n var foldStart = fold ? fold.start.row : Infinity;\n var cell = null;\n var index = -1;\n var row = firstRow;\n while (true) {\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = session.getNextFoldLine(row, fold);\n foldStart = fold ? fold.start.row : Infinity;\n }\n if (row > lastRow) {\n while (this.$lines.getLength() > index + 1)\n this.$lines.pop();\n break;\n }\n cell = this.$lines.get(++index);\n if (cell) {\n cell.row = row;\n }\n else {\n cell = this.$lines.createCell(row, config, this.session, onCreateCell);\n this.$lines.push(cell);\n }\n this.$renderCell(cell, config, fold, row);\n row++;\n }\n this._signal(\"afterRender\");\n this.$updateGutterWidth(config);\n };\n Gutter.prototype.$updateGutterWidth = function (config) {\n var session = this.session;\n var gutterRenderer = session.gutterRenderer || this.$renderer;\n var firstLineNumber = session.$firstLineNumber;\n var lastLineText = this.$lines.last() ? this.$lines.last().text : \"\";\n if (this.$fixedWidth || session.$useWrapMode)\n lastLineText = session.getLength() + firstLineNumber - 1;\n var gutterWidth = gutterRenderer\n ? gutterRenderer.getWidth(session, lastLineText, config)\n : lastLineText.toString().length * config.characterWidth;\n var padding = this.$padding || this.$computePadding();\n gutterWidth += padding.left + padding.right;\n if (gutterWidth !== this.gutterWidth && !isNaN(gutterWidth)) {\n this.gutterWidth = gutterWidth;\n this.element.parentNode.style.width =\n this.element.style.width = Math.ceil(this.gutterWidth) + \"px\";\n this._signal(\"changeGutterWidth\", gutterWidth);\n }\n };\n Gutter.prototype.$updateCursorRow = function () {\n if (!this.$highlightGutterLine)\n return;\n var position = this.session.selection.getCursor();\n if (this.$cursorRow === position.row)\n return;\n this.$cursorRow = position.row;\n };\n Gutter.prototype.updateLineHighlight = function () {\n if (!this.$highlightGutterLine)\n return;\n var row = this.session.selection.cursor.row;\n this.$cursorRow = row;\n if (this.$cursorCell && this.$cursorCell.row == row)\n return;\n if (this.$cursorCell)\n this.$cursorCell.element.className = this.$cursorCell.element.className.replace(\"ace_gutter-active-line \", \"\");\n var cells = this.$lines.cells;\n this.$cursorCell = null;\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n if (cell.row >= this.$cursorRow) {\n if (cell.row > this.$cursorRow) {\n var fold = this.session.getFoldLine(this.$cursorRow);\n if (i > 0 && fold && fold.start.row == cells[i - 1].row)\n cell = cells[i - 1];\n else\n break;\n }\n cell.element.className = \"ace_gutter-active-line \" + cell.element.className;\n this.$cursorCell = cell;\n break;\n }\n }\n };\n Gutter.prototype.scrollLines = function (config) {\n var oldConfig = this.config;\n this.config = config;\n this.$updateCursorRow();\n if (this.$lines.pageChanged(oldConfig, config))\n return this.update(config);\n this.$lines.moveContainer(config);\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n this.session.getLength() - 1);\n var oldLastRow = this.oldLastRow;\n this.oldLastRow = lastRow;\n if (!oldConfig || oldLastRow < config.firstRow)\n return this.update(config);\n if (lastRow < oldConfig.firstRow)\n return this.update(config);\n if (oldConfig.firstRow < config.firstRow)\n for (var row = this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row > 0; row--)\n this.$lines.shift();\n if (oldLastRow > lastRow)\n for (var row = this.session.getFoldedRowCount(lastRow + 1, oldLastRow); row > 0; row--)\n this.$lines.pop();\n if (config.firstRow < oldConfig.firstRow) {\n this.$lines.unshift(this.$renderLines(config, config.firstRow, oldConfig.firstRow - 1));\n }\n if (lastRow > oldLastRow) {\n this.$lines.push(this.$renderLines(config, oldLastRow + 1, lastRow));\n }\n this.updateLineHighlight();\n this._signal(\"afterRender\");\n this.$updateGutterWidth(config);\n };\n Gutter.prototype.$renderLines = function (config, firstRow, lastRow) {\n var fragment = [];\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n var cell = this.$lines.createCell(row, config, this.session, onCreateCell);\n this.$renderCell(cell, config, foldLine, row);\n fragment.push(cell);\n row++;\n }\n return fragment;\n };\n Gutter.prototype.$renderCell = function (cell, config, fold, row) {\n var element = cell.element;\n var session = this.session;\n var textNode = element.childNodes[0];\n var foldWidget = element.childNodes[1];\n var annotationNode = element.childNodes[2];\n var annotationIconNode = annotationNode.firstChild;\n var firstLineNumber = session.$firstLineNumber;\n var breakpoints = session.$breakpoints;\n var decorations = session.$decorations;\n var gutterRenderer = session.gutterRenderer || this.$renderer;\n var foldWidgets = this.$showFoldWidgets && session.foldWidgets;\n var foldStart = fold ? fold.start.row : Number.MAX_VALUE;\n var lineHeight = config.lineHeight + \"px\";\n var className = this.$useSvgGutterIcons ? \"ace_gutter-cell_svg-icons \" : \"ace_gutter-cell \";\n var iconClassName = this.$useSvgGutterIcons ? \"ace_icon_svg\" : \"ace_icon\";\n var rowText = (gutterRenderer\n ? gutterRenderer.getText(session, row)\n : row + firstLineNumber).toString();\n if (this.$highlightGutterLine) {\n if (row == this.$cursorRow || (fold && row < this.$cursorRow && row >= foldStart && this.$cursorRow <= fold.end.row)) {\n className += \"ace_gutter-active-line \";\n if (this.$cursorCell != cell) {\n if (this.$cursorCell)\n this.$cursorCell.element.className = this.$cursorCell.element.className.replace(\"ace_gutter-active-line \", \"\");\n this.$cursorCell = cell;\n }\n }\n }\n if (breakpoints[row])\n className += breakpoints[row];\n if (decorations[row])\n className += decorations[row];\n if (this.$annotations[row] && row !== foldStart)\n className += this.$annotations[row].className;\n if (foldWidgets) {\n var c = foldWidgets[row];\n if (c == null)\n c = foldWidgets[row] = session.getFoldWidget(row);\n }\n if (c) {\n var foldClass = \"ace_fold-widget ace_\" + c;\n var isClosedFold = c == \"start\" && row == foldStart && row < fold.end.row;\n if (isClosedFold) {\n foldClass += \" ace_closed\";\n var foldAnnotationClass = '';\n var annotationInFold = false;\n for (var i = row + 1; i <= fold.end.row; i++) {\n if (!this.$annotations[i])\n continue;\n if (this.$annotations[i].className === \" ace_error\") {\n annotationInFold = true;\n foldAnnotationClass = \" ace_error_fold\";\n break;\n }\n if (this.$annotations[i].className === \" ace_warning\") {\n annotationInFold = true;\n foldAnnotationClass = \" ace_warning_fold\";\n continue;\n }\n }\n className += foldAnnotationClass;\n }\n else\n foldClass += \" ace_open\";\n if (foldWidget.className != foldClass)\n foldWidget.className = foldClass;\n dom.setStyle(foldWidget.style, \"height\", lineHeight);\n dom.setStyle(foldWidget.style, \"display\", \"inline-block\");\n foldWidget.setAttribute(\"role\", \"button\");\n foldWidget.setAttribute(\"tabindex\", \"-1\");\n var foldRange = session.getFoldWidgetRange(row);\n if (foldRange)\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, rows $0 through $1\", [foldRange.start.row + 1, foldRange.end.row + 1]));\n else {\n if (fold)\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, rows $0 through $1\", [fold.start.row + 1, fold.end.row + 1]));\n else\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, row $0\", [row + 1]));\n }\n if (isClosedFold) {\n foldWidget.setAttribute(\"aria-expanded\", \"false\");\n foldWidget.setAttribute(\"title\", nls(\"Unfold code\"));\n }\n else {\n foldWidget.setAttribute(\"aria-expanded\", \"true\");\n foldWidget.setAttribute(\"title\", nls(\"Fold code\"));\n }\n }\n else {\n if (foldWidget) {\n dom.setStyle(foldWidget.style, \"display\", \"none\");\n foldWidget.setAttribute(\"tabindex\", \"0\");\n foldWidget.removeAttribute(\"role\");\n foldWidget.removeAttribute(\"aria-label\");\n }\n }\n if (annotationInFold && this.$showFoldedAnnotations) {\n annotationNode.className = \"ace_gutter_annotation\";\n annotationIconNode.className = iconClassName;\n annotationIconNode.className += foldAnnotationClass;\n dom.setStyle(annotationIconNode.style, \"height\", lineHeight);\n dom.setStyle(annotationNode.style, \"display\", \"block\");\n dom.setStyle(annotationNode.style, \"height\", lineHeight);\n annotationNode.setAttribute(\"aria-label\", nls(\"Read annotations row $0\", [rowText]));\n annotationNode.setAttribute(\"tabindex\", \"-1\");\n annotationNode.setAttribute(\"role\", \"button\");\n }\n else if (this.$annotations[row]) {\n annotationNode.className = \"ace_gutter_annotation\";\n annotationIconNode.className = iconClassName;\n if (this.$useSvgGutterIcons)\n annotationIconNode.className += this.$annotations[row].className;\n else\n element.classList.add(this.$annotations[row].className.replace(\" \", \"\"));\n dom.setStyle(annotationIconNode.style, \"height\", lineHeight);\n dom.setStyle(annotationNode.style, \"display\", \"block\");\n dom.setStyle(annotationNode.style, \"height\", lineHeight);\n annotationNode.setAttribute(\"aria-label\", nls(\"Read annotations row $0\", [rowText]));\n annotationNode.setAttribute(\"tabindex\", \"-1\");\n annotationNode.setAttribute(\"role\", \"button\");\n }\n else {\n dom.setStyle(annotationNode.style, \"display\", \"none\");\n annotationNode.removeAttribute(\"aria-label\");\n annotationNode.removeAttribute(\"role\");\n annotationNode.setAttribute(\"tabindex\", \"0\");\n }\n if (rowText !== textNode.data) {\n textNode.data = rowText;\n }\n if (element.className != className)\n element.className = className;\n dom.setStyle(cell.element.style, \"height\", this.$lines.computeLineHeight(row, config, session) + \"px\");\n dom.setStyle(cell.element.style, \"top\", this.$lines.computeLineTop(row, config, session) + \"px\");\n cell.text = rowText;\n if (annotationNode.style.display === \"none\" && foldWidget.style.display === \"none\")\n cell.element.setAttribute(\"aria-hidden\", true);\n else\n cell.element.setAttribute(\"aria-hidden\", false);\n return cell;\n };\n Gutter.prototype.setHighlightGutterLine = function (highlightGutterLine) {\n this.$highlightGutterLine = highlightGutterLine;\n };\n Gutter.prototype.setShowLineNumbers = function (show) {\n this.$renderer = !show && {\n getWidth: function () { return 0; },\n getText: function () { return \"\"; }\n };\n };\n Gutter.prototype.getShowLineNumbers = function () {\n return this.$showLineNumbers;\n };\n Gutter.prototype.setShowFoldWidgets = function (show) {\n if (show)\n dom.addCssClass(this.element, \"ace_folding-enabled\");\n else\n dom.removeCssClass(this.element, \"ace_folding-enabled\");\n this.$showFoldWidgets = show;\n this.$padding = null;\n };\n Gutter.prototype.getShowFoldWidgets = function () {\n return this.$showFoldWidgets;\n };\n Gutter.prototype.$computePadding = function () {\n if (!this.element.firstChild)\n return { left: 0, right: 0 };\n var style = dom.computedStyle(this.element.firstChild);\n this.$padding = {};\n this.$padding.left = (parseInt(style.borderLeftWidth) || 0)\n + (parseInt(style.paddingLeft) || 0) + 1;\n this.$padding.right = (parseInt(style.borderRightWidth) || 0)\n + (parseInt(style.paddingRight) || 0);\n return this.$padding;\n };\n Gutter.prototype.getRegion = function (point) {\n var padding = this.$padding || this.$computePadding();\n var rect = this.element.getBoundingClientRect();\n if (point.x < padding.left + rect.left)\n return \"markers\";\n if (this.$showFoldWidgets && point.x > rect.right - padding.right)\n return \"foldWidgets\";\n };\n return Gutter;\n}());\nGutter.prototype.$fixedWidth = false;\nGutter.prototype.$highlightGutterLine = true;\nGutter.prototype.$renderer = \"\";\nGutter.prototype.$showLineNumbers = true;\nGutter.prototype.$showFoldWidgets = true;\noop.implement(Gutter.prototype, EventEmitter);\nfunction onCreateCell(element) {\n var textNode = document.createTextNode('');\n element.appendChild(textNode);\n var foldWidget = dom.createElement(\"span\");\n element.appendChild(foldWidget);\n var annotationNode = dom.createElement(\"span\");\n element.appendChild(annotationNode);\n var annotationIconNode = dom.createElement(\"span\");\n annotationNode.appendChild(annotationIconNode);\n return element;\n}\nexports.Gutter = Gutter;\n\n});\n\nace.define(\"ace/layer/marker\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar dom = require(\"../lib/dom\");\nvar Marker = /** @class */ (function () {\n function Marker(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_marker-layer\";\n parentEl.appendChild(this.element);\n }\n Marker.prototype.setPadding = function (padding) {\n this.$padding = padding;\n };\n Marker.prototype.setSession = function (session) {\n this.session = session;\n };\n Marker.prototype.setMarkers = function (markers) {\n this.markers = markers;\n };\n Marker.prototype.elt = function (className, css) {\n var x = this.i != -1 && this.element.childNodes[this.i];\n if (!x) {\n x = document.createElement(\"div\");\n this.element.appendChild(x);\n this.i = -1;\n }\n else {\n this.i++;\n }\n x.style.cssText = css;\n x.className = className;\n };\n Marker.prototype.update = function (config) {\n if (!config)\n return;\n this.config = config;\n this.i = 0;\n var html;\n for (var key in this.markers) {\n var marker = this.markers[key];\n if (!marker.range) {\n marker.update(html, this, this.session, config);\n continue;\n }\n var range = marker.range.clipRows(config.firstRow, config.lastRow);\n if (range.isEmpty())\n continue;\n range = range.toScreenRange(this.session);\n if (marker.renderer) {\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n marker.renderer(html, range, left, top, config);\n }\n else if (marker.type == \"fullLine\") {\n this.drawFullLineMarker(html, range, marker.clazz, config);\n }\n else if (marker.type == \"screenLine\") {\n this.drawScreenLineMarker(html, range, marker.clazz, config);\n }\n else if (range.isMultiLine()) {\n if (marker.type == \"text\")\n this.drawTextMarker(html, range, marker.clazz, config);\n else\n this.drawMultiLineMarker(html, range, marker.clazz, config);\n }\n else {\n this.drawSingleLineMarker(html, range, marker.clazz + \" ace_start\" + \" ace_br15\", config);\n }\n }\n if (this.i != -1) {\n while (this.i < this.element.childElementCount)\n this.element.removeChild(this.element.lastChild);\n }\n };\n Marker.prototype.$getTop = function (row, layerConfig) {\n return (row - layerConfig.firstRowScreen) * layerConfig.lineHeight;\n };\n Marker.prototype.drawTextMarker = function (stringBuilder, range, clazz, layerConfig, extraStyle) {\n var session = this.session;\n var start = range.start.row;\n var end = range.end.row;\n var row = start;\n var prev = 0;\n var curr = 0;\n var next = session.getScreenLastRowColumn(row);\n var lineRange = new Range(row, range.start.column, row, curr);\n for (; row <= end; row++) {\n lineRange.start.row = lineRange.end.row = row;\n lineRange.start.column = row == start ? range.start.column : session.getRowWrapIndent(row);\n lineRange.end.column = next;\n prev = curr;\n curr = next;\n next = row + 1 < end ? session.getScreenLastRowColumn(row + 1) : row == end ? 0 : range.end.column;\n this.drawSingleLineMarker(stringBuilder, lineRange, clazz + (row == start ? \" ace_start\" : \"\") + \" ace_br\"\n + getBorderClass(row == start || row == start + 1 && range.start.column, prev < curr, curr > next, row == end), layerConfig, row == end ? 0 : 1, extraStyle);\n }\n };\n Marker.prototype.drawMultiLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var padding = this.$padding;\n var height = config.lineHeight;\n var top = this.$getTop(range.start.row, config);\n var left = padding + range.start.column * config.characterWidth;\n extraStyle = extraStyle || \"\";\n if (this.session.$bidiHandler.isBidiRow(range.start.row)) {\n var range1 = range.clone();\n range1.end.row = range1.start.row;\n range1.end.column = this.session.getLine(range1.start.row).length;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br1 ace_start\", config, null, extraStyle);\n }\n else {\n this.elt(clazz + \" ace_br1 ace_start\", \"height:\" + height + \"px;\" + \"right:0;\" + \"top:\" + top + \"px;left:\" + left + \"px;\" + (extraStyle || \"\"));\n }\n if (this.session.$bidiHandler.isBidiRow(range.end.row)) {\n var range1 = range.clone();\n range1.start.row = range1.end.row;\n range1.start.column = 0;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br12\", config, null, extraStyle);\n }\n else {\n top = this.$getTop(range.end.row, config);\n var width = range.end.column * config.characterWidth;\n this.elt(clazz + \" ace_br12\", \"height:\" + height + \"px;\" +\n \"width:\" + width + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + padding + \"px;\" + (extraStyle || \"\"));\n }\n height = (range.end.row - range.start.row - 1) * config.lineHeight;\n if (height <= 0)\n return;\n top = this.$getTop(range.start.row + 1, config);\n var radiusClass = (range.start.column ? 1 : 0) | (range.end.column ? 0 : 8);\n this.elt(clazz + (radiusClass ? \" ace_br\" + radiusClass : \"\"), \"height:\" + height + \"px;\" +\n \"right:0;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + padding + \"px;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawSingleLineMarker = function (stringBuilder, range, clazz, config, extraLength, extraStyle) {\n if (this.session.$bidiHandler.isBidiRow(range.start.row))\n return this.drawBidiSingleLineMarker(stringBuilder, range, clazz, config, extraLength, extraStyle);\n var height = config.lineHeight;\n var width = (range.end.column + (extraLength || 0) - range.start.column) * config.characterWidth;\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"width:\" + width + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + left + \"px;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawBidiSingleLineMarker = function (stringBuilder, range, clazz, config, extraLength, extraStyle) {\n var height = config.lineHeight, top = this.$getTop(range.start.row, config), padding = this.$padding;\n var selections = this.session.$bidiHandler.getSelections(range.start.column, range.end.column);\n selections.forEach(function (selection) {\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"width:\" + (selection.width + (extraLength || 0)) + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + (padding + selection.left) + \"px;\" + (extraStyle || \"\"));\n }, this);\n };\n Marker.prototype.drawFullLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n if (range.start.row != range.end.row)\n height += this.$getTop(range.end.row, config) - top;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:0;right:0;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawScreenLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:0;right:0;\" + (extraStyle || \"\"));\n };\n return Marker;\n}());\nMarker.prototype.$padding = 0;\nfunction getBorderClass(tl, tr, br, bl) {\n return (tl ? 1 : 0) | (tr ? 2 : 0) | (br ? 4 : 0) | (bl ? 8 : 0);\n}\nexports.Marker = Marker;\n\n});\n\nace.define(\"ace/layer/text_util\",[\"require\",\"exports\",\"module\"], function(require, exports, module){// Tokens for which Ace just uses a simple TextNode and does not add any special className.\nvar textTokens = new Set([\"text\", \"rparen\", \"lparen\"]);\nexports.isTextToken = function (tokenType) {\n return textTokens.has(tokenType);\n};\n\n});\n\nace.define(\"ace/layer/text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/layer/lines\",\"ace/lib/event_emitter\",\"ace/config\",\"ace/layer/text_util\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar Lines = require(\"./lines\").Lines;\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar nls = require(\"../config\").nls;\nvar isTextToken = require(\"./text_util\").isTextToken;\nvar Text = /** @class */ (function () {\n function Text(parentEl) {\n this.dom = dom;\n this.element = this.dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_text-layer\";\n parentEl.appendChild(this.element);\n this.$updateEolChar = this.$updateEolChar.bind(this);\n this.$lines = new Lines(this.element);\n }\n Text.prototype.$updateEolChar = function () {\n var doc = this.session.doc;\n var unixMode = doc.getNewLineCharacter() == \"\\n\" && doc.getNewLineMode() != \"windows\";\n var EOL_CHAR = unixMode ? this.EOL_CHAR_LF : this.EOL_CHAR_CRLF;\n if (this.EOL_CHAR != EOL_CHAR) {\n this.EOL_CHAR = EOL_CHAR;\n return true;\n }\n };\n Text.prototype.setPadding = function (padding) {\n this.$padding = padding;\n this.element.style.margin = \"0 \" + padding + \"px\";\n };\n Text.prototype.getLineHeight = function () {\n return this.$fontMetrics.$characterSize.height || 0;\n };\n Text.prototype.getCharacterWidth = function () {\n return this.$fontMetrics.$characterSize.width || 0;\n };\n Text.prototype.$setFontMetrics = function (measure) {\n this.$fontMetrics = measure;\n this.$fontMetrics.on(\"changeCharacterSize\", function (e) {\n this._signal(\"changeCharacterSize\", e);\n }.bind(this));\n this.$pollSizeChanges();\n };\n Text.prototype.checkForSizeChanges = function () {\n this.$fontMetrics.checkForSizeChanges();\n };\n Text.prototype.$pollSizeChanges = function () {\n return this.$pollSizeChangesTimer = this.$fontMetrics.$pollSizeChanges();\n };\n Text.prototype.setSession = function (session) {\n this.session = session;\n if (session)\n this.$computeTabString();\n };\n Text.prototype.setShowInvisibles = function (showInvisibles) {\n if (this.showInvisibles == showInvisibles)\n return false;\n this.showInvisibles = showInvisibles;\n if (typeof showInvisibles == \"string\") {\n this.showSpaces = /tab/i.test(showInvisibles);\n this.showTabs = /space/i.test(showInvisibles);\n this.showEOL = /eol/i.test(showInvisibles);\n }\n else {\n this.showSpaces = this.showTabs = this.showEOL = showInvisibles;\n }\n this.$computeTabString();\n return true;\n };\n Text.prototype.setDisplayIndentGuides = function (display) {\n if (this.displayIndentGuides == display)\n return false;\n this.displayIndentGuides = display;\n this.$computeTabString();\n return true;\n };\n Text.prototype.setHighlightIndentGuides = function (highlight) {\n if (this.$highlightIndentGuides === highlight)\n return false;\n this.$highlightIndentGuides = highlight;\n return highlight;\n };\n Text.prototype.$computeTabString = function () {\n var tabSize = this.session.getTabSize();\n this.tabSize = tabSize;\n var tabStr = this.$tabStrings = [0];\n for (var i = 1; i < tabSize + 1; i++) {\n if (this.showTabs) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_tab\";\n span.textContent = lang.stringRepeat(this.TAB_CHAR, i);\n tabStr.push(span);\n }\n else {\n tabStr.push(this.dom.createTextNode(lang.stringRepeat(\" \", i), this.element));\n }\n }\n if (this.displayIndentGuides) {\n this.$indentGuideRe = /\\s\\S| \\t|\\t |\\s$/;\n var className = \"ace_indent-guide\";\n var spaceClass = this.showSpaces ? \" ace_invisible ace_invisible_space\" : \"\";\n var spaceContent = this.showSpaces\n ? lang.stringRepeat(this.SPACE_CHAR, this.tabSize)\n : lang.stringRepeat(\" \", this.tabSize);\n var tabClass = this.showTabs ? \" ace_invisible ace_invisible_tab\" : \"\";\n var tabContent = this.showTabs\n ? lang.stringRepeat(this.TAB_CHAR, this.tabSize)\n : spaceContent;\n var span = this.dom.createElement(\"span\");\n span.className = className + spaceClass;\n span.textContent = spaceContent;\n this.$tabStrings[\" \"] = span;\n var span = this.dom.createElement(\"span\");\n span.className = className + tabClass;\n span.textContent = tabContent;\n this.$tabStrings[\"\\t\"] = span;\n }\n };\n Text.prototype.updateLines = function (config, firstRow, lastRow) {\n if (this.config.lastRow != config.lastRow ||\n this.config.firstRow != config.firstRow) {\n return this.update(config);\n }\n this.config = config;\n var first = Math.max(firstRow, config.firstRow);\n var last = Math.min(lastRow, config.lastRow);\n var lineElements = this.element.childNodes;\n var lineElementsIdx = 0;\n for (var row = config.firstRow; row < first; row++) {\n var foldLine = this.session.getFoldLine(row);\n if (foldLine) {\n if (foldLine.containsRow(first)) {\n first = foldLine.start.row;\n break;\n }\n else {\n row = foldLine.end.row;\n }\n }\n lineElementsIdx++;\n }\n var heightChanged = false;\n var row = first;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > last)\n break;\n var lineElement = lineElements[lineElementsIdx++];\n if (lineElement) {\n this.dom.removeChildren(lineElement);\n this.$renderLine(lineElement, row, row == foldStart ? foldLine : false);\n if (heightChanged)\n lineElement.style.top = this.$lines.computeLineTop(row, config, this.session) + \"px\";\n var height = (config.lineHeight * this.session.getRowLength(row)) + \"px\";\n if (lineElement.style.height != height) {\n heightChanged = true;\n lineElement.style.height = height;\n }\n }\n row++;\n }\n if (heightChanged) {\n while (lineElementsIdx < this.$lines.cells.length) {\n var cell = this.$lines.cells[lineElementsIdx++];\n cell.element.style.top = this.$lines.computeLineTop(cell.row, config, this.session) + \"px\";\n }\n }\n };\n Text.prototype.scrollLines = function (config) {\n var oldConfig = this.config;\n this.config = config;\n if (this.$lines.pageChanged(oldConfig, config))\n return this.update(config);\n this.$lines.moveContainer(config);\n var lastRow = config.lastRow;\n var oldLastRow = oldConfig ? oldConfig.lastRow : -1;\n if (!oldConfig || oldLastRow < config.firstRow)\n return this.update(config);\n if (lastRow < oldConfig.firstRow)\n return this.update(config);\n if (!oldConfig || oldConfig.lastRow < config.firstRow)\n return this.update(config);\n if (config.lastRow < oldConfig.firstRow)\n return this.update(config);\n if (oldConfig.firstRow < config.firstRow)\n for (var row = this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row > 0; row--)\n this.$lines.shift();\n if (oldConfig.lastRow > config.lastRow)\n for (var row = this.session.getFoldedRowCount(config.lastRow + 1, oldConfig.lastRow); row > 0; row--)\n this.$lines.pop();\n if (config.firstRow < oldConfig.firstRow) {\n this.$lines.unshift(this.$renderLinesFragment(config, config.firstRow, oldConfig.firstRow - 1));\n }\n if (config.lastRow > oldConfig.lastRow) {\n this.$lines.push(this.$renderLinesFragment(config, oldConfig.lastRow + 1, config.lastRow));\n }\n this.$highlightIndentGuide();\n };\n Text.prototype.$renderLinesFragment = function (config, firstRow, lastRow) {\n var fragment = [];\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n var line = this.$lines.createCell(row, config, this.session);\n var lineEl = line.element;\n this.dom.removeChildren(lineEl);\n dom.setStyle(lineEl.style, \"height\", this.$lines.computeLineHeight(row, config, this.session) + \"px\");\n dom.setStyle(lineEl.style, \"top\", this.$lines.computeLineTop(row, config, this.session) + \"px\");\n this.$renderLine(lineEl, row, row == foldStart ? foldLine : false);\n if (this.$useLineGroups()) {\n lineEl.className = \"ace_line_group\";\n }\n else {\n lineEl.className = \"ace_line\";\n }\n fragment.push(line);\n row++;\n }\n return fragment;\n };\n Text.prototype.update = function (config) {\n this.$lines.moveContainer(config);\n this.config = config;\n var firstRow = config.firstRow;\n var lastRow = config.lastRow;\n var lines = this.$lines;\n while (lines.getLength())\n lines.pop();\n lines.push(this.$renderLinesFragment(config, firstRow, lastRow));\n };\n Text.prototype.$renderToken = function (parent, screenColumn, token, value) {\n var self = this;\n var re = /(\\t)|( +)|([\\x00-\\x1f\\x80-\\xa0\\xad\\u1680\\u180E\\u2000-\\u200f\\u2028\\u2029\\u202F\\u205F\\uFEFF\\uFFF9-\\uFFFC\\u2066\\u2067\\u2068\\u202A\\u202B\\u202D\\u202E\\u202C\\u2069]+)|(\\u3000)|([\\u1100-\\u115F\\u11A3-\\u11A7\\u11FA-\\u11FF\\u2329-\\u232A\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3001-\\u303E\\u3041-\\u3096\\u3099-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u3190-\\u31BA\\u31C0-\\u31E3\\u31F0-\\u321E\\u3220-\\u3247\\u3250-\\u32FE\\u3300-\\u4DBF\\u4E00-\\uA48C\\uA490-\\uA4C6\\uA960-\\uA97C\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFAFF\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFF01-\\uFF60\\uFFE0-\\uFFE6]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF])/g;\n var valueFragment = this.dom.createFragment(this.element);\n var m;\n var i = 0;\n while (m = re.exec(value)) {\n var tab = m[1];\n var simpleSpace = m[2];\n var controlCharacter = m[3];\n var cjkSpace = m[4];\n var cjk = m[5];\n if (!self.showSpaces && simpleSpace)\n continue;\n var before = i != m.index ? value.slice(i, m.index) : \"\";\n i = m.index + m[0].length;\n if (before) {\n valueFragment.appendChild(this.dom.createTextNode(before, this.element));\n }\n if (tab) {\n var tabSize = self.session.getScreenTabSize(screenColumn + m.index);\n valueFragment.appendChild(self.$tabStrings[tabSize].cloneNode(true));\n screenColumn += tabSize - 1;\n }\n else if (simpleSpace) {\n if (self.showSpaces) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_space\";\n span.textContent = lang.stringRepeat(self.SPACE_CHAR, simpleSpace.length);\n valueFragment.appendChild(span);\n }\n else {\n valueFragment.appendChild(this.dom.createTextNode(simpleSpace, this.element));\n }\n }\n else if (controlCharacter) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_space ace_invalid\";\n span.textContent = lang.stringRepeat(self.SPACE_CHAR, controlCharacter.length);\n valueFragment.appendChild(span);\n }\n else if (cjkSpace) {\n screenColumn += 1;\n var span = this.dom.createElement(\"span\");\n span.style.width = (self.config.characterWidth * 2) + \"px\";\n span.className = self.showSpaces ? \"ace_cjk ace_invisible ace_invisible_space\" : \"ace_cjk\";\n span.textContent = self.showSpaces ? self.SPACE_CHAR : cjkSpace;\n valueFragment.appendChild(span);\n }\n else if (cjk) {\n screenColumn += 1;\n var span = this.dom.createElement(\"span\");\n span.style.width = (self.config.characterWidth * 2) + \"px\";\n span.className = \"ace_cjk\";\n span.textContent = cjk;\n valueFragment.appendChild(span);\n }\n }\n valueFragment.appendChild(this.dom.createTextNode(i ? value.slice(i) : value, this.element));\n if (!isTextToken(token.type)) {\n var classes = \"ace_\" + token.type.replace(/\\./g, \" ace_\");\n var span = this.dom.createElement(\"span\");\n if (token.type == \"fold\") {\n span.style.width = (token.value.length * this.config.characterWidth) + \"px\";\n span.setAttribute(\"title\", nls(\"Unfold code\"));\n }\n span.className = classes;\n span.appendChild(valueFragment);\n parent.appendChild(span);\n }\n else {\n parent.appendChild(valueFragment);\n }\n return screenColumn + value.length;\n };\n Text.prototype.renderIndentGuide = function (parent, value, max) {\n var cols = value.search(this.$indentGuideRe);\n if (cols <= 0 || cols >= max)\n return value;\n if (value[0] == \" \") {\n cols -= cols % this.tabSize;\n var count = cols / this.tabSize;\n for (var i = 0; i < count; i++) {\n parent.appendChild(this.$tabStrings[\" \"].cloneNode(true));\n }\n this.$highlightIndentGuide();\n return value.substr(cols);\n }\n else if (value[0] == \"\\t\") {\n for (var i = 0; i < cols; i++) {\n parent.appendChild(this.$tabStrings[\"\\t\"].cloneNode(true));\n }\n this.$highlightIndentGuide();\n return value.substr(cols);\n }\n this.$highlightIndentGuide();\n return value;\n };\n Text.prototype.$highlightIndentGuide = function () {\n if (!this.$highlightIndentGuides || !this.displayIndentGuides)\n return;\n this.$highlightIndentGuideMarker = {\n indentLevel: undefined,\n start: undefined,\n end: undefined,\n dir: undefined\n };\n var lines = this.session.doc.$lines;\n if (!lines)\n return;\n var cursor = this.session.selection.getCursor();\n var initialIndent = /^\\s*/.exec(this.session.doc.getLine(cursor.row))[0].length;\n var elementIndentLevel = Math.floor(initialIndent / this.tabSize);\n this.$highlightIndentGuideMarker = {\n indentLevel: elementIndentLevel,\n start: cursor.row\n };\n var bracketHighlight = this.session.$bracketHighlight;\n if (bracketHighlight) {\n var ranges = this.session.$bracketHighlight.ranges;\n for (var i = 0; i < ranges.length; i++) {\n if (cursor.row !== ranges[i].start.row) {\n this.$highlightIndentGuideMarker.end = ranges[i].start.row;\n if (cursor.row > ranges[i].start.row) {\n this.$highlightIndentGuideMarker.dir = -1;\n }\n else {\n this.$highlightIndentGuideMarker.dir = 1;\n }\n break;\n }\n }\n }\n if (!this.$highlightIndentGuideMarker.end) {\n if (lines[cursor.row] !== '' && cursor.column === lines[cursor.row].length) {\n this.$highlightIndentGuideMarker.dir = 1;\n for (var i = cursor.row + 1; i < lines.length; i++) {\n var line = lines[i];\n var currentIndent = /^\\s*/.exec(line)[0].length;\n if (line !== '') {\n this.$highlightIndentGuideMarker.end = i;\n if (currentIndent <= initialIndent)\n break;\n }\n }\n }\n }\n this.$renderHighlightIndentGuide();\n };\n Text.prototype.$clearActiveIndentGuide = function () {\n var cells = this.$lines.cells;\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n var childNodes = cell.element.childNodes;\n if (childNodes.length > 0) {\n for (var j = 0; j < childNodes.length; j++) {\n if (childNodes[j].classList && childNodes[j].classList.contains(\"ace_indent-guide-active\")) {\n childNodes[j].classList.remove(\"ace_indent-guide-active\");\n break;\n }\n }\n }\n }\n };\n Text.prototype.$setIndentGuideActive = function (cell, indentLevel) {\n var line = this.session.doc.getLine(cell.row);\n if (line !== \"\") {\n var childNodes = cell.element.childNodes;\n if (childNodes) {\n var node = childNodes[indentLevel - 1];\n if (node && node.classList && node.classList.contains(\"ace_indent-guide\"))\n node.classList.add(\"ace_indent-guide-active\");\n }\n }\n };\n Text.prototype.$renderHighlightIndentGuide = function () {\n if (!this.$lines)\n return;\n var cells = this.$lines.cells;\n this.$clearActiveIndentGuide();\n var indentLevel = this.$highlightIndentGuideMarker.indentLevel;\n if (indentLevel !== 0) {\n if (this.$highlightIndentGuideMarker.dir === 1) {\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n if (this.$highlightIndentGuideMarker.end && cell.row >= this.$highlightIndentGuideMarker.start\n + 1) {\n if (cell.row >= this.$highlightIndentGuideMarker.end)\n break;\n this.$setIndentGuideActive(cell, indentLevel);\n }\n }\n }\n else {\n for (var i = cells.length - 1; i >= 0; i--) {\n var cell = cells[i];\n if (this.$highlightIndentGuideMarker.end && cell.row < this.$highlightIndentGuideMarker.start) {\n if (cell.row <= this.$highlightIndentGuideMarker.end)\n break;\n this.$setIndentGuideActive(cell, indentLevel);\n }\n }\n }\n }\n };\n Text.prototype.$createLineElement = function (parent) {\n var lineEl = this.dom.createElement(\"div\");\n lineEl.className = \"ace_line\";\n lineEl.style.height = this.config.lineHeight + \"px\";\n return lineEl;\n };\n Text.prototype.$renderWrappedLine = function (parent, tokens, splits) {\n var chars = 0;\n var split = 0;\n var splitChars = splits[0];\n var screenColumn = 0;\n var lineEl = this.$createLineElement();\n parent.appendChild(lineEl);\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n chars = value.length;\n value = this.renderIndentGuide(lineEl, value, splitChars);\n if (!value)\n continue;\n chars -= value.length;\n }\n if (chars + value.length < splitChars) {\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value);\n chars += value.length;\n }\n else {\n while (chars + value.length >= splitChars) {\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value.substring(0, splitChars - chars));\n value = value.substring(splitChars - chars);\n chars = splitChars;\n lineEl = this.$createLineElement();\n parent.appendChild(lineEl);\n lineEl.appendChild(this.dom.createTextNode(lang.stringRepeat(\"\\xa0\", splits.indent), this.element));\n split++;\n screenColumn = 0;\n splitChars = splits[split] || Number.MAX_VALUE;\n }\n if (value.length != 0) {\n chars += value.length;\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value);\n }\n }\n }\n if (splits[splits.length - 1] > this.MAX_LINE_LENGTH)\n this.$renderOverflowMessage(lineEl, screenColumn, null, \"\", true);\n };\n Text.prototype.$renderSimpleLine = function (parent, tokens) {\n var screenColumn = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n value = this.renderIndentGuide(parent, value);\n if (!value)\n continue;\n }\n if (screenColumn + value.length > this.MAX_LINE_LENGTH)\n return this.$renderOverflowMessage(parent, screenColumn, token, value);\n screenColumn = this.$renderToken(parent, screenColumn, token, value);\n }\n };\n Text.prototype.$renderOverflowMessage = function (parent, screenColumn, token, value, hide) {\n token && this.$renderToken(parent, screenColumn, token, value.slice(0, this.MAX_LINE_LENGTH - screenColumn));\n var overflowEl = this.dom.createElement(\"span\");\n overflowEl.className = \"ace_inline_button ace_keyword ace_toggle_wrap\";\n overflowEl.textContent = hide ? \"\" : \"\";\n parent.appendChild(overflowEl);\n };\n Text.prototype.$renderLine = function (parent, row, foldLine) {\n if (!foldLine && foldLine != false)\n foldLine = this.session.getFoldLine(row);\n if (foldLine)\n var tokens = this.$getFoldLineTokens(row, foldLine);\n else\n var tokens = this.session.getTokens(row);\n var lastLineEl = parent;\n if (tokens.length) {\n var splits = this.session.getRowSplitData(row);\n if (splits && splits.length) {\n this.$renderWrappedLine(parent, tokens, splits);\n var lastLineEl = parent.lastChild;\n }\n else {\n var lastLineEl = parent;\n if (this.$useLineGroups()) {\n lastLineEl = this.$createLineElement();\n parent.appendChild(lastLineEl);\n }\n this.$renderSimpleLine(lastLineEl, tokens);\n }\n }\n else if (this.$useLineGroups()) {\n lastLineEl = this.$createLineElement();\n parent.appendChild(lastLineEl);\n }\n if (this.showEOL && lastLineEl) {\n if (foldLine)\n row = foldLine.end.row;\n var invisibleEl = this.dom.createElement(\"span\");\n invisibleEl.className = \"ace_invisible ace_invisible_eol\";\n invisibleEl.textContent = row == this.session.getLength() - 1 ? this.EOF_CHAR : this.EOL_CHAR;\n lastLineEl.appendChild(invisibleEl);\n }\n };\n Text.prototype.$getFoldLineTokens = function (row, foldLine) {\n var session = this.session;\n var renderTokens = [];\n function addTokens(tokens, from, to) {\n var idx = 0, col = 0;\n while ((col + tokens[idx].value.length) < from) {\n col += tokens[idx].value.length;\n idx++;\n if (idx == tokens.length)\n return;\n }\n if (col != from) {\n var value = tokens[idx].value.substring(from - col);\n if (value.length > (to - from))\n value = value.substring(0, to - from);\n renderTokens.push({\n type: tokens[idx].type,\n value: value\n });\n col = from + value.length;\n idx += 1;\n }\n while (col < to && idx < tokens.length) {\n var value = tokens[idx].value;\n if (value.length + col > to) {\n renderTokens.push({\n type: tokens[idx].type,\n value: value.substring(0, to - col)\n });\n }\n else\n renderTokens.push(tokens[idx]);\n col += value.length;\n idx += 1;\n }\n }\n var tokens = session.getTokens(row);\n foldLine.walk(function (placeholder, row, column, lastColumn, isNewRow) {\n if (placeholder != null) {\n renderTokens.push({\n type: \"fold\",\n value: placeholder\n });\n }\n else {\n if (isNewRow)\n tokens = session.getTokens(row);\n if (tokens.length)\n addTokens(tokens, lastColumn, column);\n }\n }, foldLine.end.row, this.session.getLine(foldLine.end.row).length);\n return renderTokens;\n };\n Text.prototype.$useLineGroups = function () {\n return this.session.getUseWrapMode();\n };\n return Text;\n}());\nText.prototype.EOF_CHAR = \"\\xB6\";\nText.prototype.EOL_CHAR_LF = \"\\xAC\";\nText.prototype.EOL_CHAR_CRLF = \"\\xa4\";\nText.prototype.EOL_CHAR = Text.prototype.EOL_CHAR_LF;\nText.prototype.TAB_CHAR = \"\\u2014\"; //\"\\u21E5\";\nText.prototype.SPACE_CHAR = \"\\xB7\";\nText.prototype.$padding = 0;\nText.prototype.MAX_LINE_LENGTH = 10000;\nText.prototype.showInvisibles = false;\nText.prototype.showSpaces = false;\nText.prototype.showTabs = false;\nText.prototype.showEOL = false;\nText.prototype.displayIndentGuides = true;\nText.prototype.$highlightIndentGuides = true;\nText.prototype.$tabStrings = [];\nText.prototype.destroy = {};\nText.prototype.onChangeTabSize = Text.prototype.$computeTabString;\noop.implement(Text.prototype, EventEmitter);\nexports.Text = Text;\n\n});\n\nace.define(\"ace/layer/cursor\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar Cursor = /** @class */ (function () {\n function Cursor(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_cursor-layer\";\n parentEl.appendChild(this.element);\n this.isVisible = false;\n this.isBlinking = true;\n this.blinkInterval = 1000;\n this.smoothBlinking = false;\n this.cursors = [];\n this.cursor = this.addCursor();\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.$updateCursors = this.$updateOpacity.bind(this);\n }\n Cursor.prototype.$updateOpacity = function (val) {\n var cursors = this.cursors;\n for (var i = cursors.length; i--;)\n dom.setStyle(cursors[i].style, \"opacity\", val ? \"\" : \"0\");\n };\n Cursor.prototype.$startCssAnimation = function () {\n var cursors = this.cursors;\n for (var i = cursors.length; i--;)\n cursors[i].style.animationDuration = this.blinkInterval + \"ms\";\n this.$isAnimating = true;\n setTimeout(function () {\n if (this.$isAnimating) {\n dom.addCssClass(this.element, \"ace_animate-blinking\");\n }\n }.bind(this));\n };\n Cursor.prototype.$stopCssAnimation = function () {\n this.$isAnimating = false;\n dom.removeCssClass(this.element, \"ace_animate-blinking\");\n };\n Cursor.prototype.setPadding = function (padding) {\n this.$padding = padding;\n };\n Cursor.prototype.setSession = function (session) {\n this.session = session;\n };\n Cursor.prototype.setBlinking = function (blinking) {\n if (blinking != this.isBlinking) {\n this.isBlinking = blinking;\n this.restartTimer();\n }\n };\n Cursor.prototype.setBlinkInterval = function (blinkInterval) {\n if (blinkInterval != this.blinkInterval) {\n this.blinkInterval = blinkInterval;\n this.restartTimer();\n }\n };\n Cursor.prototype.setSmoothBlinking = function (smoothBlinking) {\n if (smoothBlinking != this.smoothBlinking) {\n this.smoothBlinking = smoothBlinking;\n dom.setCssClass(this.element, \"ace_smooth-blinking\", smoothBlinking);\n this.$updateCursors(true);\n this.restartTimer();\n }\n };\n Cursor.prototype.addCursor = function () {\n var el = dom.createElement(\"div\");\n el.className = \"ace_cursor\";\n this.element.appendChild(el);\n this.cursors.push(el);\n return el;\n };\n Cursor.prototype.removeCursor = function () {\n if (this.cursors.length > 1) {\n var el = this.cursors.pop();\n el.parentNode.removeChild(el);\n return el;\n }\n };\n Cursor.prototype.hideCursor = function () {\n this.isVisible = false;\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n Cursor.prototype.showCursor = function () {\n this.isVisible = true;\n dom.removeCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n Cursor.prototype.restartTimer = function () {\n var update = this.$updateCursors;\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n this.$stopCssAnimation();\n if (this.smoothBlinking) {\n this.$isSmoothBlinking = false;\n dom.removeCssClass(this.element, \"ace_smooth-blinking\");\n }\n update(true);\n if (!this.isBlinking || !this.blinkInterval || !this.isVisible) {\n this.$stopCssAnimation();\n return;\n }\n if (this.smoothBlinking) {\n this.$isSmoothBlinking = true;\n setTimeout(function () {\n if (this.$isSmoothBlinking) {\n dom.addCssClass(this.element, \"ace_smooth-blinking\");\n }\n }.bind(this));\n }\n if (dom.HAS_CSS_ANIMATION) {\n this.$startCssAnimation();\n }\n else {\n var blink = function () {\n this.timeoutId = setTimeout(function () {\n update(false);\n }, 0.6 * this.blinkInterval);\n }.bind(this);\n this.intervalId = setInterval(function () {\n update(true);\n blink();\n }, this.blinkInterval);\n blink();\n }\n };\n Cursor.prototype.getPixelPosition = function (position, onScreen) {\n if (!this.config || !this.session)\n return { left: 0, top: 0 };\n if (!position)\n position = this.session.selection.getCursor();\n var pos = this.session.documentToScreenPosition(position);\n var cursorLeft = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, position.row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : pos.column * this.config.characterWidth);\n var cursorTop = (pos.row - (onScreen ? this.config.firstRowScreen : 0)) *\n this.config.lineHeight;\n return { left: cursorLeft, top: cursorTop };\n };\n Cursor.prototype.isCursorInView = function (pixelPos, config) {\n return pixelPos.top >= 0 && pixelPos.top < config.maxHeight;\n };\n Cursor.prototype.update = function (config) {\n this.config = config;\n var selections = this.session.$selectionMarkers;\n var i = 0, cursorIndex = 0;\n if (selections === undefined || selections.length === 0) {\n selections = [{ cursor: null }];\n }\n for (var i = 0, n = selections.length; i < n; i++) {\n var pixelPos = this.getPixelPosition(selections[i].cursor, true);\n if ((pixelPos.top > config.height + config.offset ||\n pixelPos.top < 0) && i > 1) {\n continue;\n }\n var element = this.cursors[cursorIndex++] || this.addCursor();\n var style = element.style;\n if (!this.drawCursor) {\n if (!this.isCursorInView(pixelPos, config)) {\n dom.setStyle(style, \"display\", \"none\");\n }\n else {\n dom.setStyle(style, \"display\", \"block\");\n dom.translate(element, pixelPos.left, pixelPos.top);\n dom.setStyle(style, \"width\", Math.round(config.characterWidth) + \"px\");\n dom.setStyle(style, \"height\", config.lineHeight + \"px\");\n }\n }\n else {\n this.drawCursor(element, pixelPos, config, selections[i], this.session);\n }\n }\n while (this.cursors.length > cursorIndex)\n this.removeCursor();\n var overwrite = this.session.getOverwrite();\n this.$setOverwrite(overwrite);\n this.$pixelPos = pixelPos;\n this.restartTimer();\n };\n Cursor.prototype.$setOverwrite = function (overwrite) {\n if (overwrite != this.overwrite) {\n this.overwrite = overwrite;\n if (overwrite)\n dom.addCssClass(this.element, \"ace_overwrite-cursors\");\n else\n dom.removeCssClass(this.element, \"ace_overwrite-cursors\");\n }\n };\n Cursor.prototype.destroy = function () {\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n };\n return Cursor;\n}());\nCursor.prototype.$padding = 0;\nCursor.prototype.drawCursor = null;\nexports.Cursor = Cursor;\n\n});\n\nace.define(\"ace/scrollbar\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar MAX_SCROLL_H = 0x8000;\nvar Scrollbar = /** @class */ (function () {\n function Scrollbar(parent, classSuffix) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_scrollbar ace_scrollbar\" + classSuffix;\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"ace_scrollbar-inner\";\n this.inner.textContent = \"\\xa0\";\n this.element.appendChild(this.inner);\n parent.appendChild(this.element);\n this.setVisible(false);\n this.skipEvent = false;\n event.addListener(this.element, \"scroll\", this.onScroll.bind(this));\n event.addListener(this.element, \"mousedown\", event.preventDefault);\n }\n Scrollbar.prototype.setVisible = function (isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n this.coeff = 1;\n };\n return Scrollbar;\n}());\noop.implement(Scrollbar.prototype, EventEmitter);\nvar VScrollBar = /** @class */ (function (_super) {\n __extends(VScrollBar, _super);\n function VScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-v') || this;\n _this.scrollTop = 0;\n _this.scrollHeight = 0;\n renderer.$scrollbarWidth =\n _this.width = dom.scrollbarWidth(parent.ownerDocument);\n _this.inner.style.width =\n _this.element.style.width = (_this.width || 15) + 5 + \"px\";\n _this.$minWidth = 0;\n return _this;\n }\n VScrollBar.prototype.onScroll = function () {\n if (!this.skipEvent) {\n this.scrollTop = this.element.scrollTop;\n if (this.coeff != 1) {\n var h = this.element.clientHeight / this.scrollHeight;\n this.scrollTop = this.scrollTop * (1 - h) / (this.coeff - h);\n }\n this._emit(\"scroll\", { data: this.scrollTop });\n }\n this.skipEvent = false;\n };\n VScrollBar.prototype.getWidth = function () {\n return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0);\n };\n VScrollBar.prototype.setHeight = function (height) {\n this.element.style.height = height + \"px\";\n };\n VScrollBar.prototype.setScrollHeight = function (height) {\n this.scrollHeight = height;\n if (height > MAX_SCROLL_H) {\n this.coeff = MAX_SCROLL_H / height;\n height = MAX_SCROLL_H;\n }\n else if (this.coeff != 1) {\n this.coeff = 1;\n }\n this.inner.style.height = height + \"px\";\n };\n VScrollBar.prototype.setScrollTop = function (scrollTop) {\n if (this.scrollTop != scrollTop) {\n this.skipEvent = true;\n this.scrollTop = scrollTop;\n this.element.scrollTop = scrollTop * this.coeff;\n }\n };\n return VScrollBar;\n}(Scrollbar));\nVScrollBar.prototype.setInnerHeight = VScrollBar.prototype.setScrollHeight;\nvar HScrollBar = /** @class */ (function (_super) {\n __extends(HScrollBar, _super);\n function HScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-h') || this;\n _this.scrollLeft = 0;\n _this.height = renderer.$scrollbarWidth;\n _this.inner.style.height =\n _this.element.style.height = (_this.height || 15) + 5 + \"px\";\n return _this;\n }\n HScrollBar.prototype.onScroll = function () {\n if (!this.skipEvent) {\n this.scrollLeft = this.element.scrollLeft;\n this._emit(\"scroll\", { data: this.scrollLeft });\n }\n this.skipEvent = false;\n };\n HScrollBar.prototype.getHeight = function () {\n return this.isVisible ? this.height : 0;\n };\n HScrollBar.prototype.setWidth = function (width) {\n this.element.style.width = width + \"px\";\n };\n HScrollBar.prototype.setInnerWidth = function (width) {\n this.inner.style.width = width + \"px\";\n };\n HScrollBar.prototype.setScrollWidth = function (width) {\n this.inner.style.width = width + \"px\";\n };\n HScrollBar.prototype.setScrollLeft = function (scrollLeft) {\n if (this.scrollLeft != scrollLeft) {\n this.skipEvent = true;\n this.scrollLeft = this.element.scrollLeft = scrollLeft;\n }\n };\n return HScrollBar;\n}(Scrollbar));\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n\n});\n\nace.define(\"ace/scrollbar_custom\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\ndom.importCssString(\".ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{\\n position: absolute;\\n background: rgba(128, 128, 128, 0.6);\\n -moz-box-sizing: border-box;\\n box-sizing: border-box;\\n border: 1px solid #bbb;\\n border-radius: 2px;\\n z-index: 8;\\n}\\n.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h {\\n position: absolute;\\n z-index: 6;\\n background: none;\\n overflow: hidden!important;\\n}\\n.ace_editor>.ace_sb-v {\\n z-index: 6;\\n right: 0;\\n top: 0;\\n width: 12px;\\n}\\n.ace_editor>.ace_sb-v div {\\n z-index: 8;\\n right: 0;\\n width: 100%;\\n}\\n.ace_editor>.ace_sb-h {\\n bottom: 0;\\n left: 0;\\n height: 12px;\\n}\\n.ace_editor>.ace_sb-h div {\\n bottom: 0;\\n height: 100%;\\n}\\n.ace_editor>.ace_sb_grabbed {\\n z-index: 8;\\n background: #000;\\n}\", \"ace_scrollbar.css\", false);\nvar ScrollBar = /** @class */ (function () {\n function ScrollBar(parent, classSuffix) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_sb\" + classSuffix;\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"\";\n this.element.appendChild(this.inner);\n this.VScrollWidth = 12;\n this.HScrollHeight = 12;\n parent.appendChild(this.element);\n this.setVisible(false);\n this.skipEvent = false;\n event.addMultiMouseDownListener(this.element, [500, 300, 300], this, \"onMouseDown\");\n }\n ScrollBar.prototype.setVisible = function (isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n this.coeff = 1;\n };\n return ScrollBar;\n}());\noop.implement(ScrollBar.prototype, EventEmitter);\nvar VScrollBar = /** @class */ (function (_super) {\n __extends(VScrollBar, _super);\n function VScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-v') || this;\n _this.scrollTop = 0;\n _this.scrollHeight = 0;\n _this.parent = parent;\n _this.width = _this.VScrollWidth;\n _this.renderer = renderer;\n _this.inner.style.width = _this.element.style.width = (_this.width || 15) + \"px\";\n _this.$minWidth = 0;\n return _this;\n }\n VScrollBar.prototype.onMouseDown = function (eType, e) {\n if (eType !== \"mousedown\")\n return;\n if (event.getButton(e) !== 0 || e.detail === 2) {\n return;\n }\n if (e.target === this.inner) {\n var self = this;\n var mousePageY = e.clientY;\n var onMouseMove = function (e) {\n mousePageY = e.clientY;\n };\n var onMouseUp = function () {\n clearInterval(timerId);\n };\n var startY = e.clientY;\n var startTop = this.thumbTop;\n var onScrollInterval = function () {\n if (mousePageY === undefined)\n return;\n var scrollTop = self.scrollTopFromThumbTop(startTop + mousePageY - startY);\n if (scrollTop === self.scrollTop)\n return;\n self._emit(\"scroll\", { data: scrollTop });\n };\n event.capture(this.inner, onMouseMove, onMouseUp);\n var timerId = setInterval(onScrollInterval, 20);\n return event.preventDefault(e);\n }\n var top = e.clientY - this.element.getBoundingClientRect().top - this.thumbHeight / 2;\n this._emit(\"scroll\", { data: this.scrollTopFromThumbTop(top) });\n return event.preventDefault(e);\n };\n VScrollBar.prototype.getHeight = function () {\n return this.height;\n };\n VScrollBar.prototype.scrollTopFromThumbTop = function (thumbTop) {\n var scrollTop = thumbTop * (this.pageHeight - this.viewHeight) / (this.slideHeight - this.thumbHeight);\n scrollTop = scrollTop >> 0;\n if (scrollTop < 0) {\n scrollTop = 0;\n }\n else if (scrollTop > this.pageHeight - this.viewHeight) {\n scrollTop = this.pageHeight - this.viewHeight;\n }\n return scrollTop;\n };\n VScrollBar.prototype.getWidth = function () {\n return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0);\n };\n VScrollBar.prototype.setHeight = function (height) {\n this.height = Math.max(0, height);\n this.slideHeight = this.height;\n this.viewHeight = this.height;\n this.setScrollHeight(this.pageHeight, true);\n };\n VScrollBar.prototype.setScrollHeight = function (height, force) {\n if (this.pageHeight === height && !force)\n return;\n this.pageHeight = height;\n this.thumbHeight = this.slideHeight * this.viewHeight / this.pageHeight;\n if (this.thumbHeight > this.slideHeight)\n this.thumbHeight = this.slideHeight;\n if (this.thumbHeight < 15)\n this.thumbHeight = 15;\n this.inner.style.height = this.thumbHeight + \"px\";\n if (this.scrollTop > (this.pageHeight - this.viewHeight)) {\n this.scrollTop = (this.pageHeight - this.viewHeight);\n if (this.scrollTop < 0)\n this.scrollTop = 0;\n this._emit(\"scroll\", { data: this.scrollTop });\n }\n };\n VScrollBar.prototype.setScrollTop = function (scrollTop) {\n this.scrollTop = scrollTop;\n if (scrollTop < 0)\n scrollTop = 0;\n this.thumbTop = scrollTop * (this.slideHeight - this.thumbHeight) / (this.pageHeight - this.viewHeight);\n this.inner.style.top = this.thumbTop + \"px\";\n };\n return VScrollBar;\n}(ScrollBar));\nVScrollBar.prototype.setInnerHeight = VScrollBar.prototype.setScrollHeight;\nvar HScrollBar = /** @class */ (function (_super) {\n __extends(HScrollBar, _super);\n function HScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-h') || this;\n _this.scrollLeft = 0;\n _this.scrollWidth = 0;\n _this.height = _this.HScrollHeight;\n _this.inner.style.height = _this.element.style.height = (_this.height || 12) + \"px\";\n _this.renderer = renderer;\n return _this;\n }\n HScrollBar.prototype.onMouseDown = function (eType, e) {\n if (eType !== \"mousedown\")\n return;\n if (event.getButton(e) !== 0 || e.detail === 2) {\n return;\n }\n if (e.target === this.inner) {\n var self = this;\n var mousePageX = e.clientX;\n var onMouseMove = function (e) {\n mousePageX = e.clientX;\n };\n var onMouseUp = function () {\n clearInterval(timerId);\n };\n var startX = e.clientX;\n var startLeft = this.thumbLeft;\n var onScrollInterval = function () {\n if (mousePageX === undefined)\n return;\n var scrollLeft = self.scrollLeftFromThumbLeft(startLeft + mousePageX - startX);\n if (scrollLeft === self.scrollLeft)\n return;\n self._emit(\"scroll\", { data: scrollLeft });\n };\n event.capture(this.inner, onMouseMove, onMouseUp);\n var timerId = setInterval(onScrollInterval, 20);\n return event.preventDefault(e);\n }\n var left = e.clientX - this.element.getBoundingClientRect().left - this.thumbWidth / 2;\n this._emit(\"scroll\", { data: this.scrollLeftFromThumbLeft(left) });\n return event.preventDefault(e);\n };\n HScrollBar.prototype.getHeight = function () {\n return this.isVisible ? this.height : 0;\n };\n HScrollBar.prototype.scrollLeftFromThumbLeft = function (thumbLeft) {\n var scrollLeft = thumbLeft * (this.pageWidth - this.viewWidth) / (this.slideWidth - this.thumbWidth);\n scrollLeft = scrollLeft >> 0;\n if (scrollLeft < 0) {\n scrollLeft = 0;\n }\n else if (scrollLeft > this.pageWidth - this.viewWidth) {\n scrollLeft = this.pageWidth - this.viewWidth;\n }\n return scrollLeft;\n };\n HScrollBar.prototype.setWidth = function (width) {\n this.width = Math.max(0, width);\n this.element.style.width = this.width + \"px\";\n this.slideWidth = this.width;\n this.viewWidth = this.width;\n this.setScrollWidth(this.pageWidth, true);\n };\n HScrollBar.prototype.setScrollWidth = function (width, force) {\n if (this.pageWidth === width && !force)\n return;\n this.pageWidth = width;\n this.thumbWidth = this.slideWidth * this.viewWidth / this.pageWidth;\n if (this.thumbWidth > this.slideWidth)\n this.thumbWidth = this.slideWidth;\n if (this.thumbWidth < 15)\n this.thumbWidth = 15;\n this.inner.style.width = this.thumbWidth + \"px\";\n if (this.scrollLeft > (this.pageWidth - this.viewWidth)) {\n this.scrollLeft = (this.pageWidth - this.viewWidth);\n if (this.scrollLeft < 0)\n this.scrollLeft = 0;\n this._emit(\"scroll\", { data: this.scrollLeft });\n }\n };\n HScrollBar.prototype.setScrollLeft = function (scrollLeft) {\n this.scrollLeft = scrollLeft;\n if (scrollLeft < 0)\n scrollLeft = 0;\n this.thumbLeft = scrollLeft * (this.slideWidth - this.thumbWidth) / (this.pageWidth - this.viewWidth);\n this.inner.style.left = (this.thumbLeft) + \"px\";\n };\n return HScrollBar;\n}(ScrollBar));\nHScrollBar.prototype.setInnerWidth = HScrollBar.prototype.setScrollWidth;\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n\n});\n\nace.define(\"ace/renderloop\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"], function(require, exports, module){\"use strict\";\nvar event = require(\"./lib/event\");\nvar RenderLoop = /** @class */ (function () {\n function RenderLoop(onRender, win) {\n this.onRender = onRender;\n this.pending = false;\n this.changes = 0;\n this.$recursionLimit = 2;\n this.window = win || window;\n var _self = this;\n this._flush = function (ts) {\n _self.pending = false;\n var changes = _self.changes;\n if (changes) {\n event.blockIdle(100);\n _self.changes = 0;\n _self.onRender(changes);\n }\n if (_self.changes) {\n if (_self.$recursionLimit-- < 0)\n return;\n _self.schedule();\n }\n else {\n _self.$recursionLimit = 2;\n }\n };\n }\n RenderLoop.prototype.schedule = function (change) {\n this.changes = this.changes | change;\n if (this.changes && !this.pending) {\n event.nextFrame(this._flush);\n this.pending = true;\n }\n };\n RenderLoop.prototype.clear = function (change) {\n var changes = this.changes;\n this.changes = 0;\n return changes;\n };\n return RenderLoop;\n}());\nexports.RenderLoop = RenderLoop;\n\n});\n\nace.define(\"ace/layer/font_metrics\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar CHAR_COUNT = 512;\nvar USE_OBSERVER = typeof ResizeObserver == \"function\";\nvar L = 200;\nvar FontMetrics = /** @class */ (function () {\n function FontMetrics(parentEl) {\n this.el = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.el.style, true);\n this.$main = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$main.style);\n this.$measureNode = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$measureNode.style);\n this.el.appendChild(this.$main);\n this.el.appendChild(this.$measureNode);\n parentEl.appendChild(this.el);\n this.$measureNode.textContent = lang.stringRepeat(\"X\", CHAR_COUNT);\n this.$characterSize = { width: 0, height: 0 };\n if (USE_OBSERVER)\n this.$addObserver();\n else\n this.checkForSizeChanges();\n }\n FontMetrics.prototype.$setMeasureNodeStyles = function (style, isRoot) {\n style.width = style.height = \"auto\";\n style.left = style.top = \"0px\";\n style.visibility = \"hidden\";\n style.position = \"absolute\";\n style.whiteSpace = \"pre\";\n if (useragent.isIE < 8) {\n style[\"font-family\"] = \"inherit\";\n }\n else {\n style.font = \"inherit\";\n }\n style.overflow = isRoot ? \"hidden\" : \"visible\";\n };\n FontMetrics.prototype.checkForSizeChanges = function (size) {\n if (size === undefined)\n size = this.$measureSizes();\n if (size && (this.$characterSize.width !== size.width || this.$characterSize.height !== size.height)) {\n this.$measureNode.style.fontWeight = \"bold\";\n var boldSize = this.$measureSizes();\n this.$measureNode.style.fontWeight = \"\";\n this.$characterSize = size;\n this.charSizes = Object.create(null);\n this.allowBoldFonts = boldSize && boldSize.width === size.width && boldSize.height === size.height;\n this._emit(\"changeCharacterSize\", { data: size });\n }\n };\n FontMetrics.prototype.$addObserver = function () {\n var self = this;\n this.$observer = new window.ResizeObserver(function (e) {\n self.checkForSizeChanges();\n });\n this.$observer.observe(this.$measureNode);\n };\n FontMetrics.prototype.$pollSizeChanges = function () {\n if (this.$pollSizeChangesTimer || this.$observer)\n return this.$pollSizeChangesTimer;\n var self = this;\n return this.$pollSizeChangesTimer = event.onIdle(function cb() {\n self.checkForSizeChanges();\n event.onIdle(cb, 500);\n }, 500);\n };\n FontMetrics.prototype.setPolling = function (val) {\n if (val) {\n this.$pollSizeChanges();\n }\n else if (this.$pollSizeChangesTimer) {\n clearInterval(this.$pollSizeChangesTimer);\n this.$pollSizeChangesTimer = 0;\n }\n };\n FontMetrics.prototype.$measureSizes = function (node) {\n var size = {\n height: (node || this.$measureNode).clientHeight,\n width: (node || this.$measureNode).clientWidth / CHAR_COUNT\n };\n if (size.width === 0 || size.height === 0)\n return null;\n return size;\n };\n FontMetrics.prototype.$measureCharWidth = function (ch) {\n this.$main.textContent = lang.stringRepeat(ch, CHAR_COUNT);\n var rect = this.$main.getBoundingClientRect();\n return rect.width / CHAR_COUNT;\n };\n FontMetrics.prototype.getCharacterWidth = function (ch) {\n var w = this.charSizes[ch];\n if (w === undefined) {\n w = this.charSizes[ch] = this.$measureCharWidth(ch) / this.$characterSize.width;\n }\n return w;\n };\n FontMetrics.prototype.destroy = function () {\n clearInterval(this.$pollSizeChangesTimer);\n if (this.$observer)\n this.$observer.disconnect();\n if (this.el && this.el.parentNode)\n this.el.parentNode.removeChild(this.el);\n };\n FontMetrics.prototype.$getZoom = function (element) {\n if (!element || !element.parentElement)\n return 1;\n return (window.getComputedStyle(element).zoom || 1) * this.$getZoom(element.parentElement);\n };\n FontMetrics.prototype.$initTransformMeasureNodes = function () {\n var t = function (t, l) {\n return [\"div\", {\n style: \"position: absolute;top:\" + t + \"px;left:\" + l + \"px;\"\n }];\n };\n this.els = dom.buildDom([t(0, 0), t(L, 0), t(0, L), t(L, L)], this.el);\n };\n FontMetrics.prototype.transformCoordinates = function (clientPos, elPos) {\n if (clientPos) {\n var zoom = this.$getZoom(this.el);\n clientPos = mul(1 / zoom, clientPos);\n }\n function solve(l1, l2, r) {\n var det = l1[1] * l2[0] - l1[0] * l2[1];\n return [\n (-l2[1] * r[0] + l2[0] * r[1]) / det,\n (+l1[1] * r[0] - l1[0] * r[1]) / det\n ];\n }\n function sub(a, b) { return [a[0] - b[0], a[1] - b[1]]; }\n function add(a, b) { return [a[0] + b[0], a[1] + b[1]]; }\n function mul(a, b) { return [a * b[0], a * b[1]]; }\n if (!this.els)\n this.$initTransformMeasureNodes();\n function p(el) {\n var r = el.getBoundingClientRect();\n return [r.left, r.top];\n }\n var a = p(this.els[0]);\n var b = p(this.els[1]);\n var c = p(this.els[2]);\n var d = p(this.els[3]);\n var h = solve(sub(d, b), sub(d, c), sub(add(b, c), add(d, a)));\n var m1 = mul(1 + h[0], sub(b, a));\n var m2 = mul(1 + h[1], sub(c, a));\n if (elPos) {\n var x = elPos;\n var k = h[0] * x[0] / L + h[1] * x[1] / L + 1;\n var ut = add(mul(x[0], m1), mul(x[1], m2));\n return add(mul(1 / k / L, ut), a);\n }\n var u = sub(clientPos, a);\n var f = solve(sub(m1, mul(h[0], u)), sub(m2, mul(h[1], u)), u);\n return mul(L, f);\n };\n return FontMetrics;\n}());\nFontMetrics.prototype.$characterSize = { width: 0, height: 0 };\noop.implement(FontMetrics.prototype, EventEmitter);\nexports.FontMetrics = FontMetrics;\n\n});\n\nace.define(\"ace/css/editor-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){/*\nstyles = []\nfor (var i = 1; i < 16; i++) {\n styles.push(\".ace_br\" + i + \"{\" + (\n [\"top-left\", \"top-right\", \"bottom-right\", \"bottom-left\"]\n ).map(function(x, j) {\n return i & (1< .ace_line, .ace_text-layer > .ace_line_group {\\n contain: style size layout;\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n}\\n\\n.ace_hidpi .ace_text-layer,\\n.ace_hidpi .ace_gutter-layer,\\n.ace_hidpi .ace_content,\\n.ace_hidpi .ace_gutter {\\n contain: strict;\\n}\\n.ace_hidpi .ace_text-layer > .ace_line, \\n.ace_hidpi .ace_text-layer > .ace_line_group {\\n contain: strict;\\n}\\n\\n.ace_cjk {\\n display: inline-block;\\n text-align: center;\\n}\\n\\n.ace_cursor-layer {\\n z-index: 4;\\n}\\n\\n.ace_cursor {\\n z-index: 4;\\n position: absolute;\\n box-sizing: border-box;\\n border-left: 2px solid;\\n /* workaround for smooth cursor repaintng whole screen in chrome */\\n transform: translatez(0);\\n}\\n\\n.ace_multiselect .ace_cursor {\\n border-left-width: 1px;\\n}\\n\\n.ace_slim-cursors .ace_cursor {\\n border-left-width: 1px;\\n}\\n\\n.ace_overwrite-cursors .ace_cursor {\\n border-left-width: 0;\\n border-bottom: 1px solid;\\n}\\n\\n.ace_hidden-cursors .ace_cursor {\\n opacity: 0.2;\\n}\\n\\n.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {\\n opacity: 0;\\n}\\n\\n.ace_smooth-blinking .ace_cursor {\\n transition: opacity 0.18s;\\n}\\n\\n.ace_animate-blinking .ace_cursor {\\n animation-duration: 1000ms;\\n animation-timing-function: step-end;\\n animation-name: blink-ace-animate;\\n animation-iteration-count: infinite;\\n}\\n\\n.ace_animate-blinking.ace_smooth-blinking .ace_cursor {\\n animation-duration: 1000ms;\\n animation-timing-function: ease-in-out;\\n animation-name: blink-ace-animate-smooth;\\n}\\n \\n@keyframes blink-ace-animate {\\n from, to { opacity: 1; }\\n 60% { opacity: 0; }\\n}\\n\\n@keyframes blink-ace-animate-smooth {\\n from, to { opacity: 1; }\\n 45% { opacity: 1; }\\n 60% { opacity: 0; }\\n 85% { opacity: 0; }\\n}\\n\\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\\n position: absolute;\\n z-index: 3;\\n}\\n\\n.ace_marker-layer .ace_selection {\\n position: absolute;\\n z-index: 5;\\n}\\n\\n.ace_marker-layer .ace_bracket {\\n position: absolute;\\n z-index: 6;\\n}\\n\\n.ace_marker-layer .ace_error_bracket {\\n position: absolute;\\n border-bottom: 1px solid #DE5555;\\n border-radius: 0;\\n}\\n\\n.ace_marker-layer .ace_active-line {\\n position: absolute;\\n z-index: 2;\\n}\\n\\n.ace_marker-layer .ace_selected-word {\\n position: absolute;\\n z-index: 4;\\n box-sizing: border-box;\\n}\\n\\n.ace_line .ace_fold {\\n box-sizing: border-box;\\n\\n display: inline-block;\\n height: 11px;\\n margin-top: -2px;\\n vertical-align: middle;\\n\\n background-image:\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=\\\");\\n background-repeat: no-repeat, repeat-x;\\n background-position: center center, top left;\\n color: transparent;\\n\\n border: 1px solid black;\\n border-radius: 2px;\\n\\n cursor: pointer;\\n pointer-events: auto;\\n}\\n\\n.ace_dark .ace_fold {\\n}\\n\\n.ace_fold:hover{\\n background-image:\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC\\\");\\n}\\n\\n.ace_tooltip {\\n background-color: #f5f5f5;\\n border: 1px solid gray;\\n border-radius: 1px;\\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\\n color: black;\\n max-width: 100%;\\n padding: 3px 4px;\\n position: fixed;\\n z-index: 999999;\\n box-sizing: border-box;\\n cursor: default;\\n white-space: pre-wrap;\\n word-wrap: break-word;\\n line-height: normal;\\n font-style: normal;\\n font-weight: normal;\\n letter-spacing: normal;\\n pointer-events: none;\\n overflow: auto;\\n max-width: min(60em, 66vw);\\n}\\n.ace_tooltip pre {\\n white-space: pre-wrap;\\n}\\n\\n.ace_tooltip.ace_dark {\\n background-color: #636363;\\n color: #fff;\\n}\\n\\n.ace_tooltip:focus {\\n outline: 1px solid #5E9ED6;\\n}\\n\\n.ace_icon {\\n display: inline-block;\\n width: 18px;\\n vertical-align: top;\\n}\\n\\n.ace_icon_svg {\\n display: inline-block;\\n width: 12px;\\n vertical-align: top;\\n -webkit-mask-repeat: no-repeat;\\n -webkit-mask-size: 12px;\\n -webkit-mask-position: center;\\n}\\n\\n.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons {\\n padding-right: 13px;\\n}\\n\\n.ace_fold-widget {\\n box-sizing: border-box;\\n\\n margin: 0 -12px 0 1px;\\n display: none;\\n width: 11px;\\n vertical-align: top;\\n\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==\\\");\\n background-repeat: no-repeat;\\n background-position: center;\\n\\n border-radius: 3px;\\n \\n border: 1px solid transparent;\\n cursor: pointer;\\n}\\n\\n.ace_folding-enabled .ace_fold-widget {\\n display: inline-block; \\n}\\n\\n.ace_fold-widget.ace_end {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==\\\");\\n}\\n\\n.ace_fold-widget.ace_closed {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==\\\");\\n}\\n\\n.ace_fold-widget:hover {\\n border: 1px solid rgba(0, 0, 0, 0.3);\\n background-color: rgba(255, 255, 255, 0.2);\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\\n}\\n\\n.ace_fold-widget:active {\\n border: 1px solid rgba(0, 0, 0, 0.4);\\n background-color: rgba(0, 0, 0, 0.05);\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\\n}\\n/**\\n * Dark version for fold widgets\\n */\\n.ace_dark .ace_fold-widget {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\\\");\\n}\\n.ace_dark .ace_fold-widget.ace_end {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\\\");\\n}\\n.ace_dark .ace_fold-widget.ace_closed {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\\\");\\n}\\n.ace_dark .ace_fold-widget:hover {\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.ace_dark .ace_fold-widget:active {\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\n}\\n\\n.ace_inline_button {\\n border: 1px solid lightgray;\\n display: inline-block;\\n margin: -1px 8px;\\n padding: 0 5px;\\n pointer-events: auto;\\n cursor: pointer;\\n}\\n.ace_inline_button:hover {\\n border-color: gray;\\n background: rgba(200,200,200,0.2);\\n display: inline-block;\\n pointer-events: auto;\\n}\\n\\n.ace_fold-widget.ace_invalid {\\n background-color: #FFB4B4;\\n border-color: #DE5555;\\n}\\n\\n.ace_fade-fold-widgets .ace_fold-widget {\\n transition: opacity 0.4s ease 0.05s;\\n opacity: 0;\\n}\\n\\n.ace_fade-fold-widgets:hover .ace_fold-widget {\\n transition: opacity 0.05s ease 0.05s;\\n opacity:1;\\n}\\n\\n.ace_underline {\\n text-decoration: underline;\\n}\\n\\n.ace_bold {\\n font-weight: bold;\\n}\\n\\n.ace_nobold .ace_bold {\\n font-weight: normal;\\n}\\n\\n.ace_italic {\\n font-style: italic;\\n}\\n\\n\\n.ace_error-marker {\\n background-color: rgba(255, 0, 0,0.2);\\n position: absolute;\\n z-index: 9;\\n}\\n\\n.ace_highlight-marker {\\n background-color: rgba(255, 255, 0,0.2);\\n position: absolute;\\n z-index: 8;\\n}\\n\\n.ace_mobile-menu {\\n position: absolute;\\n line-height: 1.5;\\n border-radius: 4px;\\n -ms-user-select: none;\\n -moz-user-select: none;\\n -webkit-user-select: none;\\n user-select: none;\\n background: white;\\n box-shadow: 1px 3px 2px grey;\\n border: 1px solid #dcdcdc;\\n color: black;\\n}\\n.ace_dark > .ace_mobile-menu {\\n background: #333;\\n color: #ccc;\\n box-shadow: 1px 3px 2px grey;\\n border: 1px solid #444;\\n\\n}\\n.ace_mobile-button {\\n padding: 2px;\\n cursor: pointer;\\n overflow: hidden;\\n}\\n.ace_mobile-button:hover {\\n background-color: #eee;\\n opacity:1;\\n}\\n.ace_mobile-button:active {\\n background-color: #ddd;\\n}\\n\\n.ace_placeholder {\\n font-family: arial;\\n transform: scale(0.9);\\n transform-origin: left;\\n white-space: pre;\\n opacity: 0.7;\\n margin: 0 10px;\\n}\\n\\n.ace_ghost_text {\\n opacity: 0.5;\\n font-style: italic;\\n white-space: pre;\\n}\\n\\n.ace_screenreader-only {\\n position:absolute;\\n left:-10000px;\\n top:auto;\\n width:1px;\\n height:1px;\\n overflow:hidden;\\n}\";\n\n});\n\nace.define(\"ace/layer/decorators\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar oop = require(\"../lib/oop\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar Decorator = /** @class */ (function () {\n function Decorator(parent, renderer) {\n this.canvas = dom.createElement(\"canvas\");\n this.renderer = renderer;\n this.pixelRatio = 1;\n this.maxHeight = renderer.layerConfig.maxHeight;\n this.lineHeight = renderer.layerConfig.lineHeight;\n this.canvasHeight = parent.parent.scrollHeight;\n this.heightRatio = this.canvasHeight / this.maxHeight;\n this.canvasWidth = parent.width;\n this.minDecorationHeight = (2 * this.pixelRatio) | 0;\n this.halfMinDecorationHeight = (this.minDecorationHeight / 2) | 0;\n this.canvas.width = this.canvasWidth;\n this.canvas.height = this.canvasHeight;\n this.canvas.style.top = 0 + \"px\";\n this.canvas.style.right = 0 + \"px\";\n this.canvas.style.zIndex = 7 + \"px\";\n this.canvas.style.position = \"absolute\";\n this.colors = {};\n this.colors.dark = {\n \"error\": \"rgba(255, 18, 18, 1)\",\n \"warning\": \"rgba(18, 136, 18, 1)\",\n \"info\": \"rgba(18, 18, 136, 1)\"\n };\n this.colors.light = {\n \"error\": \"rgb(255,51,51)\",\n \"warning\": \"rgb(32,133,72)\",\n \"info\": \"rgb(35,68,138)\"\n };\n parent.element.appendChild(this.canvas);\n }\n Decorator.prototype.$updateDecorators = function (config) {\n var colors = (this.renderer.theme.isDark === true) ? this.colors.dark : this.colors.light;\n if (config) {\n this.maxHeight = config.maxHeight;\n this.lineHeight = config.lineHeight;\n this.canvasHeight = config.height;\n var allLineHeight = (config.lastRow + 1) * this.lineHeight;\n if (allLineHeight < this.canvasHeight) {\n this.heightRatio = 1;\n }\n else {\n this.heightRatio = this.canvasHeight / this.maxHeight;\n }\n }\n var ctx = this.canvas.getContext(\"2d\");\n function compare(a, b) {\n if (a.priority < b.priority)\n return -1;\n if (a.priority > b.priority)\n return 1;\n return 0;\n }\n var annotations = this.renderer.session.$annotations;\n ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n if (annotations) {\n var priorities = {\n \"info\": 1,\n \"warning\": 2,\n \"error\": 3\n };\n annotations.forEach(function (item) {\n item.priority = priorities[item.type] || null;\n });\n annotations = annotations.sort(compare);\n var foldData = this.renderer.session.$foldData;\n for (var i = 0; i < annotations.length; i++) {\n var row = annotations[i].row;\n var compensateFold = this.compensateFoldRows(row, foldData);\n var currentY = Math.round((row - compensateFold) * this.lineHeight * this.heightRatio);\n var y1 = Math.round(((row - compensateFold) * this.lineHeight * this.heightRatio));\n var y2 = Math.round((((row - compensateFold) * this.lineHeight + this.lineHeight) * this.heightRatio));\n var height = y2 - y1;\n if (height < this.minDecorationHeight) {\n var yCenter = ((y1 + y2) / 2) | 0;\n if (yCenter < this.halfMinDecorationHeight) {\n yCenter = this.halfMinDecorationHeight;\n }\n else if (yCenter + this.halfMinDecorationHeight > this.canvasHeight) {\n yCenter = this.canvasHeight - this.halfMinDecorationHeight;\n }\n y1 = Math.round(yCenter - this.halfMinDecorationHeight);\n y2 = Math.round(yCenter + this.halfMinDecorationHeight);\n }\n ctx.fillStyle = colors[annotations[i].type] || null;\n ctx.fillRect(0, currentY, this.canvasWidth, y2 - y1);\n }\n }\n var cursor = this.renderer.session.selection.getCursor();\n if (cursor) {\n var compensateFold = this.compensateFoldRows(cursor.row, foldData);\n var currentY = Math.round((cursor.row - compensateFold) * this.lineHeight * this.heightRatio);\n ctx.fillStyle = \"rgba(0, 0, 0, 0.5)\";\n ctx.fillRect(0, currentY, this.canvasWidth, 2);\n }\n };\n Decorator.prototype.compensateFoldRows = function (row, foldData) {\n var compensateFold = 0;\n if (foldData && foldData.length > 0) {\n for (var j = 0; j < foldData.length; j++) {\n if (row > foldData[j].start.row && row < foldData[j].end.row) {\n compensateFold += row - foldData[j].start.row;\n }\n else if (row >= foldData[j].end.row) {\n compensateFold += foldData[j].end.row - foldData[j].start.row;\n }\n }\n }\n return compensateFold;\n };\n return Decorator;\n}());\noop.implement(Decorator.prototype, EventEmitter);\nexports.Decorator = Decorator;\n\n});\n\nace.define(\"ace/virtual_renderer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/config\",\"ace/layer/gutter\",\"ace/layer/marker\",\"ace/layer/text\",\"ace/layer/cursor\",\"ace/scrollbar\",\"ace/scrollbar\",\"ace/scrollbar_custom\",\"ace/scrollbar_custom\",\"ace/renderloop\",\"ace/layer/font_metrics\",\"ace/lib/event_emitter\",\"ace/css/editor-css\",\"ace/layer/decorators\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar lang = require(\"./lib/lang\");\nvar config = require(\"./config\");\nvar GutterLayer = require(\"./layer/gutter\").Gutter;\nvar MarkerLayer = require(\"./layer/marker\").Marker;\nvar TextLayer = require(\"./layer/text\").Text;\nvar CursorLayer = require(\"./layer/cursor\").Cursor;\nvar HScrollBar = require(\"./scrollbar\").HScrollBar;\nvar VScrollBar = require(\"./scrollbar\").VScrollBar;\nvar HScrollBarCustom = require(\"./scrollbar_custom\").HScrollBar;\nvar VScrollBarCustom = require(\"./scrollbar_custom\").VScrollBar;\nvar RenderLoop = require(\"./renderloop\").RenderLoop;\nvar FontMetrics = require(\"./layer/font_metrics\").FontMetrics;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar editorCss = require(\"./css/editor-css\");\nvar Decorator = require(\"./layer/decorators\").Decorator;\nvar useragent = require(\"./lib/useragent\");\ndom.importCssString(editorCss, \"ace_editor.css\", false);\nvar VirtualRenderer = /** @class */ (function () {\n function VirtualRenderer(container, theme) {\n var _self = this;\n this.container = container || dom.createElement(\"div\");\n dom.addCssClass(this.container, \"ace_editor\");\n if (dom.HI_DPI)\n dom.addCssClass(this.container, \"ace_hidpi\");\n this.setTheme(theme);\n if (config.get(\"useStrictCSP\") == null)\n config.set(\"useStrictCSP\", false);\n this.$gutter = dom.createElement(\"div\");\n this.$gutter.className = \"ace_gutter\";\n this.container.appendChild(this.$gutter);\n this.$gutter.setAttribute(\"aria-hidden\", true);\n this.scroller = dom.createElement(\"div\");\n this.scroller.className = \"ace_scroller\";\n this.container.appendChild(this.scroller);\n this.content = dom.createElement(\"div\");\n this.content.className = \"ace_content\";\n this.scroller.appendChild(this.content);\n this.$gutterLayer = new GutterLayer(this.$gutter);\n this.$gutterLayer.on(\"changeGutterWidth\", this.onGutterResize.bind(this));\n this.$markerBack = new MarkerLayer(this.content);\n var textLayer = this.$textLayer = new TextLayer(this.content);\n this.canvas = textLayer.element;\n this.$markerFront = new MarkerLayer(this.content);\n this.$cursorLayer = new CursorLayer(this.content);\n this.$horizScroll = false;\n this.$vScroll = false;\n this.scrollBar =\n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.on(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.on(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n this.scrollTop = 0;\n this.scrollLeft = 0;\n this.cursorPos = {\n row: 0,\n column: 0\n };\n this.$fontMetrics = new FontMetrics(this.container);\n this.$textLayer.$setFontMetrics(this.$fontMetrics);\n this.$textLayer.on(\"changeCharacterSize\", function (e) {\n _self.updateCharacterSize();\n _self.onResize(true, _self.gutterWidth, _self.$size.width, _self.$size.height);\n _self._signal(\"changeCharacterSize\", e);\n });\n this.$size = {\n width: 0,\n height: 0,\n scrollerHeight: 0,\n scrollerWidth: 0,\n $dirty: true\n };\n this.layerConfig = {\n width: 1,\n padding: 0,\n firstRow: 0,\n firstRowScreen: 0,\n lastRow: 0,\n lineHeight: 0,\n characterWidth: 0,\n minHeight: 1,\n maxHeight: 1,\n offset: 0,\n height: 1,\n gutterOffset: 1\n };\n this.scrollMargin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n this.margin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n this.$keepTextAreaAtCursor = !useragent.isIOS;\n this.$loop = new RenderLoop(this.$renderChanges.bind(this), this.container.ownerDocument.defaultView);\n this.$loop.schedule(this.CHANGE_FULL);\n this.updateCharacterSize();\n this.setPadding(4);\n this.$addResizeObserver();\n config.resetOptions(this);\n config._signal(\"renderer\", this);\n }\n VirtualRenderer.prototype.updateCharacterSize = function () {\n if (this.$textLayer.allowBoldFonts != this.$allowBoldFonts) {\n this.$allowBoldFonts = this.$textLayer.allowBoldFonts;\n this.setStyle(\"ace_nobold\", !this.$allowBoldFonts);\n }\n this.layerConfig.characterWidth =\n this.characterWidth = this.$textLayer.getCharacterWidth();\n this.layerConfig.lineHeight =\n this.lineHeight = this.$textLayer.getLineHeight();\n this.$updatePrintMargin();\n dom.setStyle(this.scroller.style, \"line-height\", this.lineHeight + \"px\");\n };\n VirtualRenderer.prototype.setSession = function (session) {\n if (this.session)\n this.session.doc.off(\"changeNewLineMode\", this.onChangeNewLineMode);\n this.session = session;\n if (session && this.scrollMargin.top && session.getScrollTop() <= 0)\n session.setScrollTop(-this.scrollMargin.top);\n this.$cursorLayer.setSession(session);\n this.$markerBack.setSession(session);\n this.$markerFront.setSession(session);\n this.$gutterLayer.setSession(session);\n this.$textLayer.setSession(session);\n if (!session)\n return;\n this.$loop.schedule(this.CHANGE_FULL);\n this.session.$setFontMetrics(this.$fontMetrics);\n this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null;\n this.onChangeNewLineMode = this.onChangeNewLineMode.bind(this);\n this.onChangeNewLineMode();\n this.session.doc.on(\"changeNewLineMode\", this.onChangeNewLineMode);\n };\n VirtualRenderer.prototype.updateLines = function (firstRow, lastRow, force) {\n if (lastRow === undefined)\n lastRow = Infinity;\n if (!this.$changedLines) {\n this.$changedLines = {\n firstRow: firstRow,\n lastRow: lastRow\n };\n }\n else {\n if (this.$changedLines.firstRow > firstRow)\n this.$changedLines.firstRow = firstRow;\n if (this.$changedLines.lastRow < lastRow)\n this.$changedLines.lastRow = lastRow;\n }\n if (this.$changedLines.lastRow < this.layerConfig.firstRow) {\n if (force)\n this.$changedLines.lastRow = this.layerConfig.lastRow;\n else\n return;\n }\n if (this.$changedLines.firstRow > this.layerConfig.lastRow)\n return;\n this.$loop.schedule(this.CHANGE_LINES);\n };\n VirtualRenderer.prototype.onChangeNewLineMode = function () {\n this.$loop.schedule(this.CHANGE_TEXT);\n this.$textLayer.$updateEolChar();\n this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR);\n };\n VirtualRenderer.prototype.onChangeTabSize = function () {\n this.$loop.schedule(this.CHANGE_TEXT | this.CHANGE_MARKER);\n this.$textLayer.onChangeTabSize();\n };\n VirtualRenderer.prototype.updateText = function () {\n this.$loop.schedule(this.CHANGE_TEXT);\n };\n VirtualRenderer.prototype.updateFull = function (force) {\n if (force)\n this.$renderChanges(this.CHANGE_FULL, true);\n else\n this.$loop.schedule(this.CHANGE_FULL);\n };\n VirtualRenderer.prototype.updateFontSize = function () {\n this.$textLayer.checkForSizeChanges();\n };\n VirtualRenderer.prototype.$updateSizeAsync = function () {\n if (this.$loop.pending)\n this.$size.$dirty = true;\n else\n this.onResize();\n };\n VirtualRenderer.prototype.onResize = function (force, gutterWidth, width, height) {\n if (this.resizing > 2)\n return;\n else if (this.resizing > 0)\n this.resizing++;\n else\n this.resizing = force ? 1 : 0;\n var el = this.container;\n if (!height)\n height = el.clientHeight || el.scrollHeight;\n if (!width)\n width = el.clientWidth || el.scrollWidth;\n var changes = this.$updateCachedSize(force, gutterWidth, width, height);\n if (this.$resizeTimer)\n this.$resizeTimer.cancel();\n if (!this.$size.scrollerHeight || (!width && !height))\n return this.resizing = 0;\n if (force)\n this.$gutterLayer.$padding = null;\n if (force)\n this.$renderChanges(changes | this.$changes, true);\n else\n this.$loop.schedule(changes | this.$changes);\n if (this.resizing)\n this.resizing = 0;\n this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null;\n if (this.$customScrollbar) {\n this.$updateCustomScrollbar(true);\n }\n };\n VirtualRenderer.prototype.$updateCachedSize = function (force, gutterWidth, width, height) {\n height -= (this.$extraHeight || 0);\n var changes = 0;\n var size = this.$size;\n var oldSize = {\n width: size.width,\n height: size.height,\n scrollerHeight: size.scrollerHeight,\n scrollerWidth: size.scrollerWidth\n };\n if (height && (force || size.height != height)) {\n size.height = height;\n changes |= this.CHANGE_SIZE;\n size.scrollerHeight = size.height;\n if (this.$horizScroll)\n size.scrollerHeight -= this.scrollBarH.getHeight();\n this.scrollBarV.setHeight(size.scrollerHeight);\n this.scrollBarV.element.style.bottom = this.scrollBarH.getHeight() + \"px\";\n changes = changes | this.CHANGE_SCROLL;\n }\n if (width && (force || size.width != width)) {\n changes |= this.CHANGE_SIZE;\n size.width = width;\n if (gutterWidth == null)\n gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n this.gutterWidth = gutterWidth;\n dom.setStyle(this.scrollBarH.element.style, \"left\", gutterWidth + \"px\");\n dom.setStyle(this.scroller.style, \"left\", gutterWidth + this.margin.left + \"px\");\n size.scrollerWidth = Math.max(0, width - gutterWidth - this.scrollBarV.getWidth() - this.margin.h);\n dom.setStyle(this.$gutter.style, \"left\", this.margin.left + \"px\");\n var right = this.scrollBarV.getWidth() + \"px\";\n dom.setStyle(this.scrollBarH.element.style, \"right\", right);\n dom.setStyle(this.scroller.style, \"right\", right);\n dom.setStyle(this.scroller.style, \"bottom\", this.scrollBarH.getHeight());\n this.scrollBarH.setWidth(size.scrollerWidth);\n if (this.session && this.session.getUseWrapMode() && this.adjustWrapLimit() || force) {\n changes |= this.CHANGE_FULL;\n }\n }\n size.$dirty = !width || !height;\n if (changes)\n this._signal(\"resize\", oldSize);\n return changes;\n };\n VirtualRenderer.prototype.onGutterResize = function (width) {\n var gutterWidth = this.$showGutter ? width : 0;\n if (gutterWidth != this.gutterWidth)\n this.$changes |= this.$updateCachedSize(true, gutterWidth, this.$size.width, this.$size.height);\n if (this.session.getUseWrapMode() && this.adjustWrapLimit()) {\n this.$loop.schedule(this.CHANGE_FULL);\n }\n else if (this.$size.$dirty) {\n this.$loop.schedule(this.CHANGE_FULL);\n }\n else {\n this.$computeLayerConfig();\n }\n };\n VirtualRenderer.prototype.adjustWrapLimit = function () {\n var availableWidth = this.$size.scrollerWidth - this.$padding * 2;\n var limit = Math.floor(availableWidth / this.characterWidth);\n return this.session.adjustWrapLimit(limit, this.$showPrintMargin && this.$printMarginColumn);\n };\n VirtualRenderer.prototype.setAnimatedScroll = function (shouldAnimate) {\n this.setOption(\"animatedScroll\", shouldAnimate);\n };\n VirtualRenderer.prototype.getAnimatedScroll = function () {\n return this.$animatedScroll;\n };\n VirtualRenderer.prototype.setShowInvisibles = function (showInvisibles) {\n this.setOption(\"showInvisibles\", showInvisibles);\n this.session.$bidiHandler.setShowInvisibles(showInvisibles);\n };\n VirtualRenderer.prototype.getShowInvisibles = function () {\n return this.getOption(\"showInvisibles\");\n };\n VirtualRenderer.prototype.getDisplayIndentGuides = function () {\n return this.getOption(\"displayIndentGuides\");\n };\n VirtualRenderer.prototype.setDisplayIndentGuides = function (display) {\n this.setOption(\"displayIndentGuides\", display);\n };\n VirtualRenderer.prototype.getHighlightIndentGuides = function () {\n return this.getOption(\"highlightIndentGuides\");\n };\n VirtualRenderer.prototype.setHighlightIndentGuides = function (highlight) {\n this.setOption(\"highlightIndentGuides\", highlight);\n };\n VirtualRenderer.prototype.setShowPrintMargin = function (showPrintMargin) {\n this.setOption(\"showPrintMargin\", showPrintMargin);\n };\n VirtualRenderer.prototype.getShowPrintMargin = function () {\n return this.getOption(\"showPrintMargin\");\n };\n VirtualRenderer.prototype.setPrintMarginColumn = function (showPrintMargin) {\n this.setOption(\"printMarginColumn\", showPrintMargin);\n };\n VirtualRenderer.prototype.getPrintMarginColumn = function () {\n return this.getOption(\"printMarginColumn\");\n };\n VirtualRenderer.prototype.getShowGutter = function () {\n return this.getOption(\"showGutter\");\n };\n VirtualRenderer.prototype.setShowGutter = function (show) {\n return this.setOption(\"showGutter\", show);\n };\n VirtualRenderer.prototype.getFadeFoldWidgets = function () {\n return this.getOption(\"fadeFoldWidgets\");\n };\n VirtualRenderer.prototype.setFadeFoldWidgets = function (show) {\n this.setOption(\"fadeFoldWidgets\", show);\n };\n VirtualRenderer.prototype.setHighlightGutterLine = function (shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n VirtualRenderer.prototype.getHighlightGutterLine = function () {\n return this.getOption(\"highlightGutterLine\");\n };\n VirtualRenderer.prototype.$updatePrintMargin = function () {\n if (!this.$showPrintMargin && !this.$printMarginEl)\n return;\n if (!this.$printMarginEl) {\n var containerEl = dom.createElement(\"div\");\n containerEl.className = \"ace_layer ace_print-margin-layer\";\n this.$printMarginEl = dom.createElement(\"div\");\n this.$printMarginEl.className = \"ace_print-margin\";\n containerEl.appendChild(this.$printMarginEl);\n this.content.insertBefore(containerEl, this.content.firstChild);\n }\n var style = this.$printMarginEl.style;\n style.left = Math.round(this.characterWidth * this.$printMarginColumn + this.$padding) + \"px\";\n style.visibility = this.$showPrintMargin ? \"visible\" : \"hidden\";\n if (this.session && this.session.$wrap == -1)\n this.adjustWrapLimit();\n };\n VirtualRenderer.prototype.getContainerElement = function () {\n return this.container;\n };\n VirtualRenderer.prototype.getMouseEventTarget = function () {\n return this.scroller;\n };\n VirtualRenderer.prototype.getTextAreaContainer = function () {\n return this.container;\n };\n VirtualRenderer.prototype.$moveTextAreaToCursor = function () {\n if (this.$isMousePressed)\n return;\n var style = this.textarea.style;\n var composition = this.$composition;\n if (!this.$keepTextAreaAtCursor && !composition) {\n dom.translate(this.textarea, -100, 0);\n return;\n }\n var pixelPos = this.$cursorLayer.$pixelPos;\n if (!pixelPos)\n return;\n if (composition && composition.markerRange)\n pixelPos = this.$cursorLayer.getPixelPosition(composition.markerRange.start, true);\n var config = this.layerConfig;\n var posTop = pixelPos.top;\n var posLeft = pixelPos.left;\n posTop -= config.offset;\n var h = composition && composition.useTextareaForIME || useragent.isMobile ? this.lineHeight : 1;\n if (posTop < 0 || posTop > config.height - h) {\n dom.translate(this.textarea, 0, 0);\n return;\n }\n var w = 1;\n var maxTop = this.$size.height - h;\n if (!composition) {\n posTop += this.lineHeight;\n }\n else {\n if (composition.useTextareaForIME) {\n var val = this.textarea.value;\n w = this.characterWidth * (this.session.$getStringScreenWidth(val)[0]);\n }\n else {\n posTop += this.lineHeight + 2;\n }\n }\n posLeft -= this.scrollLeft;\n if (posLeft > this.$size.scrollerWidth - w)\n posLeft = this.$size.scrollerWidth - w;\n posLeft += this.gutterWidth + this.margin.left;\n dom.setStyle(style, \"height\", h + \"px\");\n dom.setStyle(style, \"width\", w + \"px\");\n dom.translate(this.textarea, Math.min(posLeft, this.$size.scrollerWidth - w), Math.min(posTop, maxTop));\n };\n VirtualRenderer.prototype.getFirstVisibleRow = function () {\n return this.layerConfig.firstRow;\n };\n VirtualRenderer.prototype.getFirstFullyVisibleRow = function () {\n return this.layerConfig.firstRow + (this.layerConfig.offset === 0 ? 0 : 1);\n };\n VirtualRenderer.prototype.getLastFullyVisibleRow = function () {\n var config = this.layerConfig;\n var lastRow = config.lastRow;\n var top = this.session.documentToScreenRow(lastRow, 0) * config.lineHeight;\n if (top - this.session.getScrollTop() > config.height - config.lineHeight)\n return lastRow - 1;\n return lastRow;\n };\n VirtualRenderer.prototype.getLastVisibleRow = function () {\n return this.layerConfig.lastRow;\n };\n VirtualRenderer.prototype.setPadding = function (padding) {\n this.$padding = padding;\n this.$textLayer.setPadding(padding);\n this.$cursorLayer.setPadding(padding);\n this.$markerFront.setPadding(padding);\n this.$markerBack.setPadding(padding);\n this.$loop.schedule(this.CHANGE_FULL);\n this.$updatePrintMargin();\n };\n VirtualRenderer.prototype.setScrollMargin = function (top, bottom, left, right) {\n var sm = this.scrollMargin;\n sm.top = top | 0;\n sm.bottom = bottom | 0;\n sm.right = right | 0;\n sm.left = left | 0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n if (sm.top && this.scrollTop <= 0 && this.session)\n this.session.setScrollTop(-sm.top);\n this.updateFull();\n };\n VirtualRenderer.prototype.setMargin = function (top, bottom, left, right) {\n var sm = this.margin;\n sm.top = top | 0;\n sm.bottom = bottom | 0;\n sm.right = right | 0;\n sm.left = left | 0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n this.$updateCachedSize(true, this.gutterWidth, this.$size.width, this.$size.height);\n this.updateFull();\n };\n VirtualRenderer.prototype.getHScrollBarAlwaysVisible = function () {\n return this.$hScrollBarAlwaysVisible;\n };\n VirtualRenderer.prototype.setHScrollBarAlwaysVisible = function (alwaysVisible) {\n this.setOption(\"hScrollBarAlwaysVisible\", alwaysVisible);\n };\n VirtualRenderer.prototype.getVScrollBarAlwaysVisible = function () {\n return this.$vScrollBarAlwaysVisible;\n };\n VirtualRenderer.prototype.setVScrollBarAlwaysVisible = function (alwaysVisible) {\n this.setOption(\"vScrollBarAlwaysVisible\", alwaysVisible);\n };\n VirtualRenderer.prototype.$updateScrollBarV = function () {\n var scrollHeight = this.layerConfig.maxHeight;\n var scrollerHeight = this.$size.scrollerHeight;\n if (!this.$maxLines && this.$scrollPastEnd) {\n scrollHeight -= (scrollerHeight - this.lineHeight) * this.$scrollPastEnd;\n if (this.scrollTop > scrollHeight - scrollerHeight) {\n scrollHeight = this.scrollTop + scrollerHeight;\n this.scrollBarV.scrollTop = null;\n }\n }\n this.scrollBarV.setScrollHeight(scrollHeight + this.scrollMargin.v);\n this.scrollBarV.setScrollTop(this.scrollTop + this.scrollMargin.top);\n };\n VirtualRenderer.prototype.$updateScrollBarH = function () {\n this.scrollBarH.setScrollWidth(this.layerConfig.width + 2 * this.$padding + this.scrollMargin.h);\n this.scrollBarH.setScrollLeft(this.scrollLeft + this.scrollMargin.left);\n };\n VirtualRenderer.prototype.freeze = function () {\n this.$frozen = true;\n };\n VirtualRenderer.prototype.unfreeze = function () {\n this.$frozen = false;\n };\n VirtualRenderer.prototype.$renderChanges = function (changes, force) {\n if (this.$changes) {\n changes |= this.$changes;\n this.$changes = 0;\n }\n if ((!this.session || !this.container.offsetWidth || this.$frozen) || (!changes && !force)) {\n this.$changes |= changes;\n return;\n }\n if (this.$size.$dirty) {\n this.$changes |= changes;\n return this.onResize(true);\n }\n if (!this.lineHeight) {\n this.$textLayer.checkForSizeChanges();\n }\n this._signal(\"beforeRender\", changes);\n if (this.session && this.session.$bidiHandler)\n this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);\n var config = this.layerConfig;\n if (changes & this.CHANGE_FULL ||\n changes & this.CHANGE_SIZE ||\n changes & this.CHANGE_TEXT ||\n changes & this.CHANGE_LINES ||\n changes & this.CHANGE_SCROLL ||\n changes & this.CHANGE_H_SCROLL) {\n changes |= this.$computeLayerConfig() | this.$loop.clear();\n if (config.firstRow != this.layerConfig.firstRow && config.firstRowScreen == this.layerConfig.firstRowScreen) {\n var st = this.scrollTop + (config.firstRow - Math.max(this.layerConfig.firstRow, 0)) * this.lineHeight;\n if (st > 0) {\n this.scrollTop = st;\n changes = changes | this.CHANGE_SCROLL;\n changes |= this.$computeLayerConfig() | this.$loop.clear();\n }\n }\n config = this.layerConfig;\n this.$updateScrollBarV();\n if (changes & this.CHANGE_H_SCROLL)\n this.$updateScrollBarH();\n dom.translate(this.content, -this.scrollLeft, -config.offset);\n var width = config.width + 2 * this.$padding + \"px\";\n var height = config.minHeight + \"px\";\n dom.setStyle(this.content.style, \"width\", width);\n dom.setStyle(this.content.style, \"height\", height);\n }\n if (changes & this.CHANGE_H_SCROLL) {\n dom.translate(this.content, -this.scrollLeft, -config.offset);\n this.scroller.className = this.scrollLeft <= 0 ? \"ace_scroller \" : \"ace_scroller ace_scroll-left \";\n if (this.enableKeyboardAccessibility)\n this.scroller.className += this.keyboardFocusClassName;\n }\n if (changes & this.CHANGE_FULL) {\n this.$changedLines = null;\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\", changes);\n return;\n }\n if (changes & this.CHANGE_SCROLL) {\n this.$changedLines = null;\n if (changes & this.CHANGE_TEXT || changes & this.CHANGE_LINES)\n this.$textLayer.update(config);\n else\n this.$textLayer.scrollLines(config);\n if (this.$showGutter) {\n if (changes & this.CHANGE_GUTTER || changes & this.CHANGE_LINES)\n this.$gutterLayer.update(config);\n else\n this.$gutterLayer.scrollLines(config);\n }\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\", changes);\n return;\n }\n if (changes & this.CHANGE_TEXT) {\n this.$changedLines = null;\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_LINES) {\n if (this.$updateLines() || (changes & this.CHANGE_GUTTER) && this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_TEXT || changes & this.CHANGE_GUTTER) {\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_CURSOR) {\n if (this.$highlightGutterLine)\n this.$gutterLayer.updateLineHighlight(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n if (changes & this.CHANGE_CURSOR) {\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n }\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_FRONT)) {\n this.$markerFront.update(config);\n }\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_BACK)) {\n this.$markerBack.update(config);\n }\n this._signal(\"afterRender\", changes);\n };\n VirtualRenderer.prototype.$autosize = function () {\n var height = this.session.getScreenLength() * this.lineHeight;\n var maxHeight = this.$maxLines * this.lineHeight;\n var desiredHeight = Math.min(maxHeight, Math.max((this.$minLines || 1) * this.lineHeight, height)) + this.scrollMargin.v + (this.$extraHeight || 0);\n if (this.$horizScroll)\n desiredHeight += this.scrollBarH.getHeight();\n if (this.$maxPixelHeight && desiredHeight > this.$maxPixelHeight)\n desiredHeight = this.$maxPixelHeight;\n var hideScrollbars = desiredHeight <= 2 * this.lineHeight;\n var vScroll = !hideScrollbars && height > maxHeight;\n if (desiredHeight != this.desiredHeight ||\n this.$size.height != this.desiredHeight || vScroll != this.$vScroll) {\n if (vScroll != this.$vScroll) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n var w = this.container.clientWidth;\n this.container.style.height = desiredHeight + \"px\";\n this.$updateCachedSize(true, this.$gutterWidth, w, desiredHeight);\n this.desiredHeight = desiredHeight;\n this._signal(\"autosize\");\n }\n };\n VirtualRenderer.prototype.$computeLayerConfig = function () {\n var session = this.session;\n var size = this.$size;\n var hideScrollbars = size.height <= 2 * this.lineHeight;\n var screenLines = this.session.getScreenLength();\n var maxHeight = screenLines * this.lineHeight;\n var longestLine = this.$getLongestLine();\n var horizScroll = !hideScrollbars && (this.$hScrollBarAlwaysVisible ||\n size.scrollerWidth - longestLine - 2 * this.$padding < 0);\n var hScrollChanged = this.$horizScroll !== horizScroll;\n if (hScrollChanged) {\n this.$horizScroll = horizScroll;\n this.scrollBarH.setVisible(horizScroll);\n }\n var vScrollBefore = this.$vScroll; // autosize can change vscroll value in which case we need to update longestLine\n if (this.$maxLines && this.lineHeight > 1)\n this.$autosize();\n var minHeight = size.scrollerHeight + this.lineHeight;\n var scrollPastEnd = !this.$maxLines && this.$scrollPastEnd\n ? (size.scrollerHeight - this.lineHeight) * this.$scrollPastEnd\n : 0;\n maxHeight += scrollPastEnd;\n var sm = this.scrollMargin;\n this.session.setScrollTop(Math.max(-sm.top, Math.min(this.scrollTop, maxHeight - size.scrollerHeight + sm.bottom)));\n this.session.setScrollLeft(Math.max(-sm.left, Math.min(this.scrollLeft, longestLine + 2 * this.$padding - size.scrollerWidth + sm.right)));\n var vScroll = !hideScrollbars && (this.$vScrollBarAlwaysVisible ||\n size.scrollerHeight - maxHeight + scrollPastEnd < 0 || this.scrollTop > sm.top);\n var vScrollChanged = vScrollBefore !== vScroll;\n if (vScrollChanged) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n var offset = this.scrollTop % this.lineHeight;\n var lineCount = Math.ceil(minHeight / this.lineHeight) - 1;\n var firstRow = Math.max(0, Math.round((this.scrollTop - offset) / this.lineHeight));\n var lastRow = firstRow + lineCount;\n var firstRowScreen, firstRowHeight;\n var lineHeight = this.lineHeight;\n firstRow = session.screenToDocumentRow(firstRow, 0);\n var foldLine = session.getFoldLine(firstRow);\n if (foldLine) {\n firstRow = foldLine.start.row;\n }\n firstRowScreen = session.documentToScreenRow(firstRow, 0);\n firstRowHeight = session.getRowLength(firstRow) * lineHeight;\n lastRow = Math.min(session.screenToDocumentRow(lastRow, 0), session.getLength() - 1);\n minHeight = size.scrollerHeight + session.getRowLength(lastRow) * lineHeight +\n firstRowHeight;\n offset = this.scrollTop - firstRowScreen * lineHeight;\n var changes = 0;\n if (this.layerConfig.width != longestLine || hScrollChanged)\n changes = this.CHANGE_H_SCROLL;\n if (hScrollChanged || vScrollChanged) {\n changes |= this.$updateCachedSize(true, this.gutterWidth, size.width, size.height);\n this._signal(\"scrollbarVisibilityChanged\");\n if (vScrollChanged)\n longestLine = this.$getLongestLine();\n }\n this.layerConfig = {\n width: longestLine,\n padding: this.$padding,\n firstRow: firstRow,\n firstRowScreen: firstRowScreen,\n lastRow: lastRow,\n lineHeight: lineHeight,\n characterWidth: this.characterWidth,\n minHeight: minHeight,\n maxHeight: maxHeight,\n offset: offset,\n gutterOffset: lineHeight ? Math.max(0, Math.ceil((offset + size.height - size.scrollerHeight) / lineHeight)) : 0,\n height: this.$size.scrollerHeight\n };\n if (this.session.$bidiHandler)\n this.session.$bidiHandler.setContentWidth(longestLine - this.$padding);\n return changes;\n };\n VirtualRenderer.prototype.$updateLines = function () {\n if (!this.$changedLines)\n return;\n var firstRow = this.$changedLines.firstRow;\n var lastRow = this.$changedLines.lastRow;\n this.$changedLines = null;\n var layerConfig = this.layerConfig;\n if (firstRow > layerConfig.lastRow + 1) {\n return;\n }\n if (lastRow < layerConfig.firstRow) {\n return;\n }\n if (lastRow === Infinity) {\n if (this.$showGutter)\n this.$gutterLayer.update(layerConfig);\n this.$textLayer.update(layerConfig);\n return;\n }\n this.$textLayer.updateLines(layerConfig, firstRow, lastRow);\n return true;\n };\n VirtualRenderer.prototype.$getLongestLine = function () {\n var charCount = this.session.getScreenWidth();\n if (this.showInvisibles && !this.session.$useWrapMode)\n charCount += 1;\n if (this.$textLayer && charCount > this.$textLayer.MAX_LINE_LENGTH)\n charCount = this.$textLayer.MAX_LINE_LENGTH + 30;\n return Math.max(this.$size.scrollerWidth - 2 * this.$padding, Math.round(charCount * this.characterWidth));\n };\n VirtualRenderer.prototype.updateFrontMarkers = function () {\n this.$markerFront.setMarkers(this.session.getMarkers(true));\n this.$loop.schedule(this.CHANGE_MARKER_FRONT);\n };\n VirtualRenderer.prototype.updateBackMarkers = function () {\n this.$markerBack.setMarkers(this.session.getMarkers());\n this.$loop.schedule(this.CHANGE_MARKER_BACK);\n };\n VirtualRenderer.prototype.addGutterDecoration = function (row, className) {\n this.$gutterLayer.addGutterDecoration(row, className);\n };\n VirtualRenderer.prototype.removeGutterDecoration = function (row, className) {\n this.$gutterLayer.removeGutterDecoration(row, className);\n };\n VirtualRenderer.prototype.updateBreakpoints = function (rows) {\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n VirtualRenderer.prototype.setAnnotations = function (annotations) {\n this.$gutterLayer.setAnnotations(annotations);\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n VirtualRenderer.prototype.updateCursor = function () {\n this.$loop.schedule(this.CHANGE_CURSOR);\n };\n VirtualRenderer.prototype.hideCursor = function () {\n this.$cursorLayer.hideCursor();\n };\n VirtualRenderer.prototype.showCursor = function () {\n this.$cursorLayer.showCursor();\n };\n VirtualRenderer.prototype.scrollSelectionIntoView = function (anchor, lead, offset) {\n this.scrollCursorIntoView(anchor, offset);\n this.scrollCursorIntoView(lead, offset);\n };\n VirtualRenderer.prototype.scrollCursorIntoView = function (cursor, offset, $viewMargin) {\n if (this.$size.scrollerHeight === 0)\n return;\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var newLeft = pos.left;\n var newTop = pos.top;\n var topMargin = $viewMargin && $viewMargin.top || 0;\n var bottomMargin = $viewMargin && $viewMargin.bottom || 0;\n if (this.$scrollAnimation) {\n this.$stopAnimation = true;\n }\n var currentTop = this.$scrollAnimation ? this.session.getScrollTop() : this.scrollTop;\n if (currentTop + topMargin > newTop) {\n if (offset && currentTop + topMargin > newTop + this.lineHeight)\n newTop -= offset * this.$size.scrollerHeight;\n if (newTop === 0)\n newTop = -this.scrollMargin.top;\n this.session.setScrollTop(newTop);\n }\n else if (currentTop + this.$size.scrollerHeight - bottomMargin < newTop + this.lineHeight) {\n if (offset && currentTop + this.$size.scrollerHeight - bottomMargin < newTop - this.lineHeight)\n newTop += offset * this.$size.scrollerHeight;\n this.session.setScrollTop(newTop + this.lineHeight + bottomMargin - this.$size.scrollerHeight);\n }\n var currentLeft = this.scrollLeft;\n var twoCharsWidth = 2 * this.layerConfig.characterWidth;\n if (newLeft - twoCharsWidth < currentLeft) {\n newLeft -= twoCharsWidth;\n if (newLeft < this.$padding + twoCharsWidth) {\n newLeft = -this.scrollMargin.left;\n }\n this.session.setScrollLeft(newLeft);\n }\n else {\n newLeft += twoCharsWidth;\n if (currentLeft + this.$size.scrollerWidth < newLeft + this.characterWidth) {\n this.session.setScrollLeft(Math.round(newLeft + this.characterWidth - this.$size.scrollerWidth));\n }\n else if (currentLeft <= this.$padding && newLeft - currentLeft < this.characterWidth) {\n this.session.setScrollLeft(0);\n }\n }\n };\n VirtualRenderer.prototype.getScrollTop = function () {\n return this.session.getScrollTop();\n };\n VirtualRenderer.prototype.getScrollLeft = function () {\n return this.session.getScrollLeft();\n };\n VirtualRenderer.prototype.getScrollTopRow = function () {\n return this.scrollTop / this.lineHeight;\n };\n VirtualRenderer.prototype.getScrollBottomRow = function () {\n return Math.max(0, Math.floor((this.scrollTop + this.$size.scrollerHeight) / this.lineHeight) - 1);\n };\n VirtualRenderer.prototype.scrollToRow = function (row) {\n this.session.setScrollTop(row * this.lineHeight);\n };\n VirtualRenderer.prototype.alignCursor = function (cursor, alignment) {\n if (typeof cursor == \"number\")\n cursor = { row: cursor, column: 0 };\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var h = this.$size.scrollerHeight - this.lineHeight;\n var offset = pos.top - h * (alignment || 0);\n this.session.setScrollTop(offset);\n return offset;\n };\n VirtualRenderer.prototype.$calcSteps = function (fromValue, toValue) {\n var i = 0;\n var l = this.STEPS;\n var steps = [];\n var func = function (t, x_min, dx) {\n return dx * (Math.pow(t - 1, 3) + 1) + x_min;\n };\n for (i = 0; i < l; ++i)\n steps.push(func(i / this.STEPS, fromValue, toValue - fromValue));\n return steps;\n };\n VirtualRenderer.prototype.scrollToLine = function (line, center, animate, callback) {\n var pos = this.$cursorLayer.getPixelPosition({ row: line, column: 0 });\n var offset = pos.top;\n if (center)\n offset -= this.$size.scrollerHeight / 2;\n var initialScroll = this.scrollTop;\n this.session.setScrollTop(offset);\n if (animate !== false)\n this.animateScrolling(initialScroll, callback);\n };\n VirtualRenderer.prototype.animateScrolling = function (fromValue, callback) {\n var toValue = this.scrollTop;\n if (!this.$animatedScroll)\n return;\n var _self = this;\n if (fromValue == toValue)\n return;\n if (this.$scrollAnimation) {\n var oldSteps = this.$scrollAnimation.steps;\n if (oldSteps.length) {\n fromValue = oldSteps[0];\n if (fromValue == toValue)\n return;\n }\n }\n var steps = _self.$calcSteps(fromValue, toValue);\n this.$scrollAnimation = { from: fromValue, to: toValue, steps: steps };\n clearInterval(this.$timer);\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n function endAnimation() {\n _self.$timer = clearInterval(_self.$timer);\n _self.$scrollAnimation = null;\n _self.$stopAnimation = false;\n callback && callback();\n }\n this.$timer = setInterval(function () {\n if (_self.$stopAnimation) {\n endAnimation();\n return;\n }\n if (!_self.session)\n return clearInterval(_self.$timer);\n if (steps.length) {\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n }\n else if (toValue != null) {\n _self.session.$scrollTop = -1;\n _self.session.setScrollTop(toValue);\n toValue = null;\n }\n else {\n endAnimation();\n }\n }, 10);\n };\n VirtualRenderer.prototype.scrollToY = function (scrollTop) {\n if (this.scrollTop !== scrollTop) {\n this.$loop.schedule(this.CHANGE_SCROLL);\n this.scrollTop = scrollTop;\n }\n };\n VirtualRenderer.prototype.scrollToX = function (scrollLeft) {\n if (this.scrollLeft !== scrollLeft)\n this.scrollLeft = scrollLeft;\n this.$loop.schedule(this.CHANGE_H_SCROLL);\n };\n VirtualRenderer.prototype.scrollTo = function (x, y) {\n this.session.setScrollTop(y);\n this.session.setScrollLeft(x);\n };\n VirtualRenderer.prototype.scrollBy = function (deltaX, deltaY) {\n deltaY && this.session.setScrollTop(this.session.getScrollTop() + deltaY);\n deltaX && this.session.setScrollLeft(this.session.getScrollLeft() + deltaX);\n };\n VirtualRenderer.prototype.isScrollableBy = function (deltaX, deltaY) {\n if (deltaY < 0 && this.session.getScrollTop() >= 1 - this.scrollMargin.top)\n return true;\n if (deltaY > 0 && this.session.getScrollTop() + this.$size.scrollerHeight\n - this.layerConfig.maxHeight < -1 + this.scrollMargin.bottom)\n return true;\n if (deltaX < 0 && this.session.getScrollLeft() >= 1 - this.scrollMargin.left)\n return true;\n if (deltaX > 0 && this.session.getScrollLeft() + this.$size.scrollerWidth\n - this.layerConfig.width < -1 + this.scrollMargin.right)\n return true;\n };\n VirtualRenderer.prototype.pixelToScreenCoordinates = function (x, y) {\n var canvasPos;\n if (this.$hasCssTransforms) {\n canvasPos = { top: 0, left: 0 };\n var p = this.$fontMetrics.transformCoordinates([x, y]);\n x = p[1] - this.gutterWidth - this.margin.left;\n y = p[0];\n }\n else {\n canvasPos = this.scroller.getBoundingClientRect();\n }\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n var offset = offsetX / this.characterWidth;\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n var col = this.$blockCursor ? Math.floor(offset) : Math.round(offset);\n return { row: row, column: col, side: offset - col > 0 ? 1 : -1, offsetX: offsetX };\n };\n VirtualRenderer.prototype.screenToTextCoordinates = function (x, y) {\n var canvasPos;\n if (this.$hasCssTransforms) {\n canvasPos = { top: 0, left: 0 };\n var p = this.$fontMetrics.transformCoordinates([x, y]);\n x = p[1] - this.gutterWidth - this.margin.left;\n y = p[0];\n }\n else {\n canvasPos = this.scroller.getBoundingClientRect();\n }\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n var offset = offsetX / this.characterWidth;\n var col = this.$blockCursor ? Math.floor(offset) : Math.round(offset);\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n return this.session.screenToDocumentPosition(row, Math.max(col, 0), offsetX);\n };\n VirtualRenderer.prototype.textToScreenCoordinates = function (row, column) {\n var canvasPos = this.scroller.getBoundingClientRect();\n var pos = this.session.documentToScreenPosition(row, column);\n var x = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : Math.round(pos.column * this.characterWidth));\n var y = pos.row * this.lineHeight;\n return {\n pageX: canvasPos.left + x - this.scrollLeft,\n pageY: canvasPos.top + y - this.scrollTop\n };\n };\n VirtualRenderer.prototype.visualizeFocus = function () {\n dom.addCssClass(this.container, \"ace_focus\");\n };\n VirtualRenderer.prototype.visualizeBlur = function () {\n dom.removeCssClass(this.container, \"ace_focus\");\n };\n VirtualRenderer.prototype.showComposition = function (composition) {\n this.$composition = composition;\n if (!composition.cssText) {\n composition.cssText = this.textarea.style.cssText;\n }\n if (composition.useTextareaForIME == undefined)\n composition.useTextareaForIME = this.$useTextareaForIME;\n if (this.$useTextareaForIME) {\n dom.addCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = \"\";\n this.$moveTextAreaToCursor();\n this.$cursorLayer.element.style.display = \"none\";\n }\n else {\n composition.markerId = this.session.addMarker(composition.markerRange, \"ace_composition_marker\", \"text\");\n }\n };\n VirtualRenderer.prototype.setCompositionText = function (text) {\n var cursor = this.session.selection.cursor;\n this.addToken(text, \"composition_placeholder\", cursor.row, cursor.column);\n this.$moveTextAreaToCursor();\n };\n VirtualRenderer.prototype.hideComposition = function () {\n if (!this.$composition)\n return;\n if (this.$composition.markerId)\n this.session.removeMarker(this.$composition.markerId);\n dom.removeCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = this.$composition.cssText;\n var cursor = this.session.selection.cursor;\n this.removeExtraToken(cursor.row, cursor.column);\n this.$composition = null;\n this.$cursorLayer.element.style.display = \"\";\n };\n VirtualRenderer.prototype.setGhostText = function (text, position) {\n var cursor = this.session.selection.cursor;\n var insertPosition = position || { row: cursor.row, column: cursor.column };\n this.removeGhostText();\n var textLines = text.split(\"\\n\");\n this.addToken(textLines[0], \"ghost_text\", insertPosition.row, insertPosition.column);\n this.$ghostText = {\n text: text,\n position: {\n row: insertPosition.row,\n column: insertPosition.column\n }\n };\n if (textLines.length > 1) {\n this.$ghostTextWidget = {\n text: textLines.slice(1).join(\"\\n\"),\n row: insertPosition.row,\n column: insertPosition.column,\n className: \"ace_ghost_text\"\n };\n this.session.widgetManager.addLineWidget(this.$ghostTextWidget);\n var pixelPosition = this.$cursorLayer.getPixelPosition(insertPosition, true);\n var el = this.container;\n var height = el.getBoundingClientRect().height;\n var ghostTextHeight = textLines.length * this.lineHeight;\n var fitsY = ghostTextHeight < height - pixelPosition.top;\n if (fitsY)\n return;\n if (ghostTextHeight < height) {\n this.scrollBy(0, (textLines.length - 1) * this.lineHeight);\n }\n else {\n this.scrollBy(0, pixelPosition.top);\n }\n }\n };\n VirtualRenderer.prototype.removeGhostText = function () {\n if (!this.$ghostText)\n return;\n var position = this.$ghostText.position;\n this.removeExtraToken(position.row, position.column);\n if (this.$ghostTextWidget) {\n this.session.widgetManager.removeLineWidget(this.$ghostTextWidget);\n this.$ghostTextWidget = null;\n }\n this.$ghostText = null;\n };\n VirtualRenderer.prototype.addToken = function (text, type, row, column) {\n var session = this.session;\n session.bgTokenizer.lines[row] = null;\n var newToken = { type: type, value: text };\n var tokens = session.getTokens(row);\n if (column == null || !tokens.length) {\n tokens.push(newToken);\n }\n else {\n var l = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n l += token.value.length;\n if (column <= l) {\n var diff = token.value.length - (l - column);\n var before = token.value.slice(0, diff);\n var after = token.value.slice(diff);\n tokens.splice(i, 1, { type: token.type, value: before }, newToken, { type: token.type, value: after });\n break;\n }\n }\n }\n this.updateLines(row, row);\n };\n VirtualRenderer.prototype.removeExtraToken = function (row, column) {\n this.session.bgTokenizer.lines[row] = null;\n this.updateLines(row, row);\n };\n VirtualRenderer.prototype.setTheme = function (theme, cb) {\n var _self = this;\n this.$themeId = theme;\n _self._dispatchEvent('themeChange', { theme: theme });\n if (!theme || typeof theme == \"string\") {\n var moduleName = theme || this.$options.theme.initialValue;\n config.loadModule([\"theme\", moduleName], afterLoad);\n }\n else {\n afterLoad(theme);\n }\n function afterLoad(module) {\n if (_self.$themeId != theme)\n return cb && cb();\n if (!module || !module.cssClass)\n throw new Error(\"couldn't load module \" + theme + \" or it didn't call define\");\n if (module.$id)\n _self.$themeId = module.$id;\n dom.importCssString(module.cssText, module.cssClass, _self.container);\n if (_self.theme)\n dom.removeCssClass(_self.container, _self.theme.cssClass);\n var padding = \"padding\" in module ? module.padding\n : \"padding\" in (_self.theme || {}) ? 4 : _self.$padding;\n if (_self.$padding && padding != _self.$padding)\n _self.setPadding(padding);\n _self.$theme = module.cssClass;\n _self.theme = module;\n dom.addCssClass(_self.container, module.cssClass);\n dom.setCssClass(_self.container, \"ace_dark\", module.isDark);\n if (_self.$size) {\n _self.$size.width = 0;\n _self.$updateSizeAsync();\n }\n _self._dispatchEvent('themeLoaded', { theme: module });\n cb && cb();\n }\n };\n VirtualRenderer.prototype.getTheme = function () {\n return this.$themeId;\n };\n VirtualRenderer.prototype.setStyle = function (style, include) {\n dom.setCssClass(this.container, style, include !== false);\n };\n VirtualRenderer.prototype.unsetStyle = function (style) {\n dom.removeCssClass(this.container, style);\n };\n VirtualRenderer.prototype.setCursorStyle = function (style) {\n dom.setStyle(this.scroller.style, \"cursor\", style);\n };\n VirtualRenderer.prototype.setMouseCursor = function (cursorStyle) {\n dom.setStyle(this.scroller.style, \"cursor\", cursorStyle);\n };\n VirtualRenderer.prototype.attachToShadowRoot = function () {\n dom.importCssString(editorCss, \"ace_editor.css\", this.container);\n };\n VirtualRenderer.prototype.destroy = function () {\n this.freeze();\n this.$fontMetrics.destroy();\n this.$cursorLayer.destroy();\n this.removeAllListeners();\n this.container.textContent = \"\";\n this.setOption(\"useResizeObserver\", false);\n };\n VirtualRenderer.prototype.$updateCustomScrollbar = function (val) {\n var _self = this;\n this.$horizScroll = this.$vScroll = null;\n this.scrollBarV.element.remove();\n this.scrollBarH.element.remove();\n if (this.$scrollDecorator) {\n delete this.$scrollDecorator;\n }\n if (val === true) {\n this.scrollBarV = new VScrollBarCustom(this.container, this);\n this.scrollBarH = new HScrollBarCustom(this.container, this);\n this.scrollBarV.setHeight(this.$size.scrollerHeight);\n this.scrollBarH.setWidth(this.$size.scrollerWidth);\n this.scrollBarV.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n this.$scrollDecorator = new Decorator(this.scrollBarV, this);\n this.$scrollDecorator.$updateDecorators();\n }\n else {\n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n }\n };\n VirtualRenderer.prototype.$addResizeObserver = function () {\n if (!window.ResizeObserver || this.$resizeObserver)\n return;\n var self = this;\n this.$resizeTimer = lang.delayedCall(function () {\n if (!self.destroyed)\n self.onResize();\n }, 50);\n this.$resizeObserver = new window.ResizeObserver(function (e) {\n var w = e[0].contentRect.width;\n var h = e[0].contentRect.height;\n if (Math.abs(self.$size.width - w) > 1\n || Math.abs(self.$size.height - h) > 1) {\n self.$resizeTimer.delay();\n }\n else {\n self.$resizeTimer.cancel();\n }\n });\n this.$resizeObserver.observe(this.container);\n };\n return VirtualRenderer;\n}());\nVirtualRenderer.prototype.CHANGE_CURSOR = 1;\nVirtualRenderer.prototype.CHANGE_MARKER = 2;\nVirtualRenderer.prototype.CHANGE_GUTTER = 4;\nVirtualRenderer.prototype.CHANGE_SCROLL = 8;\nVirtualRenderer.prototype.CHANGE_LINES = 16;\nVirtualRenderer.prototype.CHANGE_TEXT = 32;\nVirtualRenderer.prototype.CHANGE_SIZE = 64;\nVirtualRenderer.prototype.CHANGE_MARKER_BACK = 128;\nVirtualRenderer.prototype.CHANGE_MARKER_FRONT = 256;\nVirtualRenderer.prototype.CHANGE_FULL = 512;\nVirtualRenderer.prototype.CHANGE_H_SCROLL = 1024;\nVirtualRenderer.prototype.$changes = 0;\nVirtualRenderer.prototype.$padding = null;\nVirtualRenderer.prototype.$frozen = false;\nVirtualRenderer.prototype.STEPS = 8;\noop.implement(VirtualRenderer.prototype, EventEmitter);\nconfig.defineOptions(VirtualRenderer.prototype, \"renderer\", {\n useResizeObserver: {\n set: function (value) {\n if (!value && this.$resizeObserver) {\n this.$resizeObserver.disconnect();\n this.$resizeTimer.cancel();\n this.$resizeTimer = this.$resizeObserver = null;\n }\n else if (value && !this.$resizeObserver) {\n this.$addResizeObserver();\n }\n }\n },\n animatedScroll: { initialValue: false },\n showInvisibles: {\n set: function (value) {\n if (this.$textLayer.setShowInvisibles(value))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: false\n },\n showPrintMargin: {\n set: function () { this.$updatePrintMargin(); },\n initialValue: true\n },\n printMarginColumn: {\n set: function () { this.$updatePrintMargin(); },\n initialValue: 80\n },\n printMargin: {\n set: function (val) {\n if (typeof val == \"number\")\n this.$printMarginColumn = val;\n this.$showPrintMargin = !!val;\n this.$updatePrintMargin();\n },\n get: function () {\n return this.$showPrintMargin && this.$printMarginColumn;\n }\n },\n showGutter: {\n set: function (show) {\n this.$gutter.style.display = show ? \"block\" : \"none\";\n this.$loop.schedule(this.CHANGE_FULL);\n this.onGutterResize();\n },\n initialValue: true\n },\n useSvgGutterIcons: {\n set: function (value) {\n this.$gutterLayer.$useSvgGutterIcons = value;\n },\n initialValue: false\n },\n showFoldedAnnotations: {\n set: function (value) {\n this.$gutterLayer.$showFoldedAnnotations = value;\n },\n initialValue: false\n },\n fadeFoldWidgets: {\n set: function (show) {\n dom.setCssClass(this.$gutter, \"ace_fade-fold-widgets\", show);\n },\n initialValue: false\n },\n showFoldWidgets: {\n set: function (show) {\n this.$gutterLayer.setShowFoldWidgets(show);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n displayIndentGuides: {\n set: function (show) {\n if (this.$textLayer.setDisplayIndentGuides(show))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: true\n },\n highlightIndentGuides: {\n set: function (show) {\n if (this.$textLayer.setHighlightIndentGuides(show) == true) {\n this.$textLayer.$highlightIndentGuide();\n }\n else {\n this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells);\n }\n },\n initialValue: true\n },\n highlightGutterLine: {\n set: function (shouldHighlight) {\n this.$gutterLayer.setHighlightGutterLine(shouldHighlight);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n hScrollBarAlwaysVisible: {\n set: function (val) {\n if (!this.$hScrollBarAlwaysVisible || !this.$horizScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n vScrollBarAlwaysVisible: {\n set: function (val) {\n if (!this.$vScrollBarAlwaysVisible || !this.$vScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n fontSize: {\n set: function (size) {\n if (typeof size == \"number\")\n size = size + \"px\";\n this.container.style.fontSize = size;\n this.updateFontSize();\n },\n initialValue: 12\n },\n fontFamily: {\n set: function (name) {\n this.container.style.fontFamily = name;\n this.updateFontSize();\n }\n },\n maxLines: {\n set: function (val) {\n this.updateFull();\n }\n },\n minLines: {\n set: function (val) {\n if (!(this.$minLines < 0x1ffffffffffff))\n this.$minLines = 0;\n this.updateFull();\n }\n },\n maxPixelHeight: {\n set: function (val) {\n this.updateFull();\n },\n initialValue: 0\n },\n scrollPastEnd: {\n set: function (val) {\n val = +val || 0;\n if (this.$scrollPastEnd == val)\n return;\n this.$scrollPastEnd = val;\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: 0,\n handlesSet: true\n },\n fixedWidthGutter: {\n set: function (val) {\n this.$gutterLayer.$fixedWidth = !!val;\n this.$loop.schedule(this.CHANGE_GUTTER);\n }\n },\n customScrollbar: {\n set: function (val) {\n this.$updateCustomScrollbar(val);\n },\n initialValue: false\n },\n theme: {\n set: function (val) { this.setTheme(val); },\n get: function () { return this.$themeId || this.theme; },\n initialValue: \"./theme/textmate\",\n handlesSet: true\n },\n hasCssTransforms: {},\n useTextareaForIME: {\n initialValue: !useragent.isMobile && !useragent.isIE\n }\n});\nexports.VirtualRenderer = VirtualRenderer;\n\n});\n\nace.define(\"ace/worker/worker_client\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/event_emitter\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar net = require(\"../lib/net\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar config = require(\"../config\");\n\nfunction $workerBlob(workerUrl) {\n var script = \"importScripts('\" + net.qualifyURL(workerUrl) + \"');\";\n try {\n return new Blob([script], {\"type\": \"application/javascript\"});\n } catch (e) { // Backwards-compatibility\n var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;\n var blobBuilder = new BlobBuilder();\n blobBuilder.append(script);\n return blobBuilder.getBlob(\"application/javascript\");\n }\n}\n\nfunction createWorker(workerUrl) {\n if (typeof Worker == \"undefined\")\n return { postMessage: function() {}, terminate: function() {} };\n if (config.get(\"loadWorkerFromBlob\")) {\n var blob = $workerBlob(workerUrl);\n var URL = window.URL || window.webkitURL;\n var blobURL = URL.createObjectURL(blob);\n return new Worker(blobURL);\n }\n return new Worker(workerUrl);\n}\n\nvar WorkerClient = function(worker) {\n if (!worker.postMessage)\n worker = this.$createWorkerFromOldConfig.apply(this, arguments);\n\n this.$worker = worker;\n this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n this.changeListener = this.changeListener.bind(this);\n this.onMessage = this.onMessage.bind(this);\n\n this.callbackId = 1;\n this.callbacks = {};\n\n this.$worker.onmessage = this.onMessage;\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n\n this.$createWorkerFromOldConfig = function(topLevelNamespaces, mod, classname, workerUrl, importScripts) {\n if (require.nameToUrl && !require.toUrl)\n require.toUrl = require.nameToUrl;\n\n if (config.get(\"packaged\") || !require.toUrl) {\n workerUrl = workerUrl || config.moduleUrl(mod, \"worker\");\n } else {\n var normalizePath = this.$normalizePath;\n workerUrl = workerUrl || normalizePath(require.toUrl(\"ace/worker/worker.js\", null, \"_\"));\n\n var tlns = {};\n topLevelNamespaces.forEach(function(ns) {\n tlns[ns] = normalizePath(require.toUrl(ns, null, \"_\").replace(/(\\.js)?(\\?.*)?$/, \"\"));\n });\n }\n\n this.$worker = createWorker(workerUrl);\n if (importScripts) {\n this.send(\"importScripts\", importScripts);\n }\n this.$worker.postMessage({\n init : true,\n tlns : tlns,\n module : mod,\n classname : classname\n });\n return this.$worker;\n };\n\n this.onMessage = function(e) {\n var msg = e.data;\n switch (msg.type) {\n case \"event\":\n this._signal(msg.name, {data: msg.data});\n break;\n case \"call\":\n var callback = this.callbacks[msg.id];\n if (callback) {\n callback(msg.data);\n delete this.callbacks[msg.id];\n }\n break;\n case \"error\":\n this.reportError(msg.data);\n break;\n case \"log\":\n window.console && console.log && console.log.apply(console, msg.data);\n break;\n }\n };\n \n this.reportError = function(err) {\n window.console && console.error && console.error(err);\n };\n\n this.$normalizePath = function(path) {\n return net.qualifyURL(path);\n };\n\n this.terminate = function() {\n this._signal(\"terminate\", {});\n this.deltaQueue = null;\n this.$worker.terminate();\n this.$worker.onerror = function(e) {\n e.preventDefault();\n };\n this.$worker = null;\n if (this.$doc)\n this.$doc.off(\"change\", this.changeListener);\n this.$doc = null;\n };\n\n this.send = function(cmd, args) {\n this.$worker.postMessage({command: cmd, args: args});\n };\n\n this.call = function(cmd, args, callback) {\n if (callback) {\n var id = this.callbackId++;\n this.callbacks[id] = callback;\n args.push(id);\n }\n this.send(cmd, args);\n };\n\n this.emit = function(event, data) {\n try {\n if (data.data && data.data.err)\n data.data.err = {message: data.data.err.message, stack: data.data.err.stack, code: data.data.err.code};\n this.$worker && this.$worker.postMessage({event: event, data: {data: data.data}});\n }\n catch(ex) {\n console.error(ex.stack);\n }\n };\n\n this.attachToDocument = function(doc) {\n if (this.$doc)\n this.terminate();\n\n this.$doc = doc;\n this.call(\"setValue\", [doc.getValue()]);\n doc.on(\"change\", this.changeListener, true);\n };\n\n this.changeListener = function(delta) {\n if (!this.deltaQueue) {\n this.deltaQueue = [];\n setTimeout(this.$sendDeltaQueue, 0);\n }\n if (delta.action == \"insert\")\n this.deltaQueue.push(delta.start, delta.lines);\n else\n this.deltaQueue.push(delta.start, delta.end);\n };\n\n this.$sendDeltaQueue = function() {\n var q = this.deltaQueue;\n if (!q) return;\n this.deltaQueue = null;\n if (q.length > 50 && q.length > this.$doc.getLength() >> 1) {\n this.call(\"setValue\", [this.$doc.getValue()]);\n } else\n this.emit(\"change\", {data: q});\n };\n\n}).call(WorkerClient.prototype);\n\n\nvar UIWorkerClient = function(topLevelNamespaces, mod, classname) {\n var main = null;\n var emitSync = false;\n var sender = Object.create(EventEmitter);\n\n var messageBuffer = [];\n var workerClient = new WorkerClient({\n messageBuffer: messageBuffer,\n terminate: function() {},\n postMessage: function(e) {\n messageBuffer.push(e);\n if (!main) return;\n if (emitSync)\n setTimeout(processNext);\n else\n processNext();\n }\n });\n\n workerClient.setEmitSync = function(val) { emitSync = val; };\n\n var processNext = function() {\n var msg = messageBuffer.shift();\n if (msg.command)\n main[msg.command].apply(main, msg.args);\n else if (msg.event)\n sender._signal(msg.event, msg.data);\n };\n\n sender.postMessage = function(msg) {\n workerClient.onMessage({data: msg});\n };\n sender.callback = function(data, callbackId) {\n this.postMessage({type: \"call\", id: callbackId, data: data});\n };\n sender.emit = function(name, data) {\n this.postMessage({type: \"event\", name: name, data: data});\n };\n\n config.loadModule([\"worker\", mod], function(Main) {\n main = new Main[classname](sender);\n while (messageBuffer.length)\n processNext();\n });\n\n return workerClient;\n};\n\nexports.UIWorkerClient = UIWorkerClient;\nexports.WorkerClient = WorkerClient;\nexports.createWorker = createWorker;\n\n\n});\n\nace.define(\"ace/placeholder\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/oop\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar oop = require(\"./lib/oop\");\nvar PlaceHolder = /** @class */ (function () {\n function PlaceHolder(session, length, pos, others, mainClass, othersClass) {\n var _self = this;\n this.length = length;\n this.session = session;\n this.doc = session.getDocument();\n this.mainClass = mainClass;\n this.othersClass = othersClass;\n this.$onUpdate = this.onUpdate.bind(this);\n this.doc.on(\"change\", this.$onUpdate, true);\n this.$others = others;\n this.$onCursorChange = function () {\n setTimeout(function () {\n _self.onCursorChange();\n });\n };\n this.$pos = pos;\n var undoStack = session.getUndoManager().$undoStack || session.getUndoManager().$undostack || { length: -1 };\n this.$undoStackDepth = undoStack.length;\n this.setup();\n session.selection.on(\"changeCursor\", this.$onCursorChange);\n }\n PlaceHolder.prototype.setup = function () {\n var _self = this;\n var doc = this.doc;\n var session = this.session;\n this.selectionBefore = session.selection.toJSON();\n if (session.selection.inMultiSelectMode)\n session.selection.toSingleRange();\n this.pos = doc.createAnchor(this.$pos.row, this.$pos.column);\n var pos = this.pos;\n pos.$insertRight = true;\n pos.detach();\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + this.length), this.mainClass, null, false);\n this.others = [];\n this.$others.forEach(function (other) {\n var anchor = doc.createAnchor(other.row, other.column);\n anchor.$insertRight = true;\n anchor.detach();\n _self.others.push(anchor);\n });\n session.setUndoSelect(false);\n };\n PlaceHolder.prototype.showOtherMarkers = function () {\n if (this.othersActive)\n return;\n var session = this.session;\n var _self = this;\n this.othersActive = true;\n this.others.forEach(function (anchor) {\n anchor.markerId = session.addMarker(new Range(anchor.row, anchor.column, anchor.row, anchor.column + _self.length), _self.othersClass, null, false);\n });\n };\n PlaceHolder.prototype.hideOtherMarkers = function () {\n if (!this.othersActive)\n return;\n this.othersActive = false;\n for (var i = 0; i < this.others.length; i++) {\n this.session.removeMarker(this.others[i].markerId);\n }\n };\n PlaceHolder.prototype.onUpdate = function (delta) {\n if (this.$updating)\n return this.updateAnchors(delta);\n var range = delta;\n if (range.start.row !== range.end.row)\n return;\n if (range.start.row !== this.pos.row)\n return;\n this.$updating = true;\n var lengthDiff = delta.action === \"insert\" ? range.end.column - range.start.column : range.start.column - range.end.column;\n var inMainRange = range.start.column >= this.pos.column && range.start.column <= this.pos.column + this.length + 1;\n var distanceFromStart = range.start.column - this.pos.column;\n this.updateAnchors(delta);\n if (inMainRange)\n this.length += lengthDiff;\n if (inMainRange && !this.session.$fromUndo) {\n if (delta.action === 'insert') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = { row: otherPos.row, column: otherPos.column + distanceFromStart };\n this.doc.insertMergedLines(newPos, delta.lines);\n }\n }\n else if (delta.action === 'remove') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = { row: otherPos.row, column: otherPos.column + distanceFromStart };\n this.doc.remove(new Range(newPos.row, newPos.column, newPos.row, newPos.column - lengthDiff));\n }\n }\n }\n this.$updating = false;\n this.updateMarkers();\n };\n PlaceHolder.prototype.updateAnchors = function (delta) {\n this.pos.onChange(delta);\n for (var i = this.others.length; i--;)\n this.others[i].onChange(delta);\n this.updateMarkers();\n };\n PlaceHolder.prototype.updateMarkers = function () {\n if (this.$updating)\n return;\n var _self = this;\n var session = this.session;\n var updateMarker = function (pos, className) {\n session.removeMarker(pos.markerId);\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + _self.length), className, null, false);\n };\n updateMarker(this.pos, this.mainClass);\n for (var i = this.others.length; i--;)\n updateMarker(this.others[i], this.othersClass);\n };\n PlaceHolder.prototype.onCursorChange = function (event) {\n if (this.$updating || !this.session)\n return;\n var pos = this.session.selection.getCursor();\n if (pos.row === this.pos.row && pos.column >= this.pos.column && pos.column <= this.pos.column + this.length) {\n this.showOtherMarkers();\n this._emit(\"cursorEnter\", event);\n }\n else {\n this.hideOtherMarkers();\n this._emit(\"cursorLeave\", event);\n }\n };\n PlaceHolder.prototype.detach = function () {\n this.session.removeMarker(this.pos && this.pos.markerId);\n this.hideOtherMarkers();\n this.doc.off(\"change\", this.$onUpdate);\n this.session.selection.off(\"changeCursor\", this.$onCursorChange);\n this.session.setUndoSelect(true);\n this.session = null;\n };\n PlaceHolder.prototype.cancel = function () {\n if (this.$undoStackDepth === -1)\n return;\n var undoManager = this.session.getUndoManager();\n var undosRequired = (undoManager.$undoStack || undoManager.$undostack).length - this.$undoStackDepth;\n for (var i = 0; i < undosRequired; i++) {\n undoManager.undo(this.session, true);\n }\n if (this.selectionBefore)\n this.session.selection.fromJSON(this.selectionBefore);\n };\n return PlaceHolder;\n}());\noop.implement(PlaceHolder.prototype, EventEmitter);\nexports.PlaceHolder = PlaceHolder;\n\n});\n\nace.define(\"ace/mouse/multi_select_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){var event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nfunction onMouseDown(e) {\n var ev = e.domEvent;\n var alt = ev.altKey;\n var shift = ev.shiftKey;\n var ctrl = ev.ctrlKey;\n var accel = e.getAccelKey();\n var button = e.getButton();\n if (ctrl && useragent.isMac)\n button = ev.button;\n if (e.editor.inMultiSelectMode && button == 2) {\n e.editor.textInput.onContextMenu(e.domEvent);\n return;\n }\n if (!ctrl && !alt && !accel) {\n if (button === 0 && e.editor.inMultiSelectMode)\n e.editor.exitMultiSelectMode();\n return;\n }\n if (button !== 0)\n return;\n var editor = e.editor;\n var selection = editor.selection;\n var isMultiSelect = editor.inMultiSelectMode;\n var pos = e.getDocumentPosition();\n var cursor = selection.getCursor();\n var inSelection = e.inSelection() || (selection.isEmpty() && isSamePoint(pos, cursor));\n var mouseX = e.x, mouseY = e.y;\n var onMouseSelection = function (e) {\n mouseX = e.clientX;\n mouseY = e.clientY;\n };\n var session = editor.session;\n var screenAnchor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var screenCursor = screenAnchor;\n var selectionMode;\n if (editor.$mouseHandler.$enableJumpToDef) {\n if (ctrl && alt || accel && alt)\n selectionMode = shift ? \"block\" : \"add\";\n else if (alt && editor.$blockSelectEnabled)\n selectionMode = \"block\";\n }\n else {\n if (accel && !alt) {\n selectionMode = \"add\";\n if (!isMultiSelect && shift)\n return;\n }\n else if (alt && editor.$blockSelectEnabled) {\n selectionMode = \"block\";\n }\n }\n if (selectionMode && useragent.isMac && ev.ctrlKey) {\n editor.$mouseHandler.cancelContextMenu();\n }\n if (selectionMode == \"add\") {\n if (!isMultiSelect && inSelection)\n return; // dragging\n if (!isMultiSelect) {\n var range = selection.toOrientedRange();\n editor.addSelectionMarker(range);\n }\n var oldRange = selection.rangeList.rangeAtPoint(pos);\n editor.inVirtualSelectionMode = true;\n if (shift) {\n oldRange = null;\n range = selection.ranges[0] || range;\n editor.removeSelectionMarker(range);\n }\n editor.once(\"mouseup\", function () {\n var tmpSel = selection.toOrientedRange();\n if (oldRange && tmpSel.isEmpty() && isSamePoint(oldRange.cursor, tmpSel.cursor))\n selection.substractPoint(tmpSel.cursor);\n else {\n if (shift) {\n selection.substractPoint(range.cursor);\n }\n else if (range) {\n editor.removeSelectionMarker(range);\n selection.addRange(range);\n }\n selection.addRange(tmpSel);\n }\n editor.inVirtualSelectionMode = false;\n });\n }\n else if (selectionMode == \"block\") {\n e.stop();\n editor.inVirtualSelectionMode = true;\n var initialRange;\n var rectSel = [];\n var blockSelect = function () {\n var newCursor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var cursor = session.screenToDocumentPosition(newCursor.row, newCursor.column, newCursor.offsetX);\n if (isSamePoint(screenCursor, newCursor) && isSamePoint(cursor, selection.lead))\n return;\n screenCursor = newCursor;\n editor.selection.moveToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n editor.removeSelectionMarkers(rectSel);\n rectSel = selection.rectangularRangeBlock(screenCursor, screenAnchor);\n if (editor.$mouseHandler.$clickSelection && rectSel.length == 1 && rectSel[0].isEmpty())\n rectSel[0] = editor.$mouseHandler.$clickSelection.clone();\n rectSel.forEach(editor.addSelectionMarker, editor);\n editor.updateSelectionMarkers();\n };\n if (isMultiSelect && !accel) {\n selection.toSingleRange();\n }\n else if (!isMultiSelect && accel) {\n initialRange = selection.toOrientedRange();\n editor.addSelectionMarker(initialRange);\n }\n if (shift)\n screenAnchor = session.documentToScreenPosition(selection.lead);\n else\n selection.moveToPosition(pos);\n screenCursor = { row: -1, column: -1 };\n var onMouseSelectionEnd = function (e) {\n blockSelect();\n clearInterval(timerId);\n editor.removeSelectionMarkers(rectSel);\n if (!rectSel.length)\n rectSel = [selection.toOrientedRange()];\n if (initialRange) {\n editor.removeSelectionMarker(initialRange);\n selection.toSingleRange(initialRange);\n }\n for (var i = 0; i < rectSel.length; i++)\n selection.addRange(rectSel[i]);\n editor.inVirtualSelectionMode = false;\n editor.$mouseHandler.$clickSelection = null;\n };\n var onSelectionInterval = blockSelect;\n event.capture(editor.container, onMouseSelection, onMouseSelectionEnd);\n var timerId = setInterval(function () { onSelectionInterval(); }, 20);\n return e.preventDefault();\n }\n}\nexports.onMouseDown = onMouseDown;\n\n});\n\nace.define(\"ace/commands/multi_select_commands\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\"], function(require, exports, module){// commands to enter multiselect mode\nexports.defaultCommands = [{\n name: \"addCursorAbove\",\n description: \"Add cursor above\",\n exec: function (editor) { editor.selectMoreLines(-1); },\n bindKey: { win: \"Ctrl-Alt-Up\", mac: \"Ctrl-Alt-Up\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorBelow\",\n description: \"Add cursor below\",\n exec: function (editor) { editor.selectMoreLines(1); },\n bindKey: { win: \"Ctrl-Alt-Down\", mac: \"Ctrl-Alt-Down\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorAboveSkipCurrent\",\n description: \"Add cursor above (skip current)\",\n exec: function (editor) { editor.selectMoreLines(-1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Up\", mac: \"Ctrl-Alt-Shift-Up\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorBelowSkipCurrent\",\n description: \"Add cursor below (skip current)\",\n exec: function (editor) { editor.selectMoreLines(1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Down\", mac: \"Ctrl-Alt-Shift-Down\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectMoreBefore\",\n description: \"Select more before\",\n exec: function (editor) { editor.selectMore(-1); },\n bindKey: { win: \"Ctrl-Alt-Left\", mac: \"Ctrl-Alt-Left\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectMoreAfter\",\n description: \"Select more after\",\n exec: function (editor) { editor.selectMore(1); },\n bindKey: { win: \"Ctrl-Alt-Right\", mac: \"Ctrl-Alt-Right\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectNextBefore\",\n description: \"Select next before\",\n exec: function (editor) { editor.selectMore(-1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Left\", mac: \"Ctrl-Alt-Shift-Left\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectNextAfter\",\n description: \"Select next after\",\n exec: function (editor) { editor.selectMore(1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Right\", mac: \"Ctrl-Alt-Shift-Right\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"toggleSplitSelectionIntoLines\",\n description: \"Split selection into lines\",\n exec: function (editor) {\n if (editor.multiSelect.rangeCount > 1)\n editor.multiSelect.joinSelections();\n else\n editor.multiSelect.splitIntoLines();\n },\n bindKey: { win: \"Ctrl-Alt-L\", mac: \"Ctrl-Alt-L\" },\n readOnly: true\n }, {\n name: \"splitSelectionIntoLines\",\n description: \"Split into lines\",\n exec: function (editor) { editor.multiSelect.splitIntoLines(); },\n readOnly: true\n }, {\n name: \"alignCursors\",\n description: \"Align cursors\",\n exec: function (editor) { editor.alignCursors(); },\n bindKey: { win: \"Ctrl-Alt-A\", mac: \"Ctrl-Alt-A\" },\n scrollIntoView: \"cursor\"\n }, {\n name: \"findAll\",\n description: \"Find all\",\n exec: function (editor) { editor.findAll(); },\n bindKey: { win: \"Ctrl-Alt-K\", mac: \"Ctrl-Alt-G\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }];\nexports.multiSelectCommands = [{\n name: \"singleSelection\",\n description: \"Single selection\",\n bindKey: \"esc\",\n exec: function (editor) { editor.exitMultiSelectMode(); },\n scrollIntoView: \"cursor\",\n readOnly: true,\n isAvailable: function (editor) { return editor && editor.inMultiSelectMode; }\n }];\nvar HashHandler = require(\"../keyboard/hash_handler\").HashHandler;\nexports.keyboardHandler = new HashHandler(exports.multiSelectCommands);\n\n});\n\nace.define(\"ace/multi_select\",[\"require\",\"exports\",\"module\",\"ace/range_list\",\"ace/range\",\"ace/selection\",\"ace/mouse/multi_select_handler\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/commands/multi_select_commands\",\"ace/search\",\"ace/edit_session\",\"ace/editor\",\"ace/config\"], function(require, exports, module){var RangeList = require(\"./range_list\").RangeList;\nvar Range = require(\"./range\").Range;\nvar Selection = require(\"./selection\").Selection;\nvar onMouseDown = require(\"./mouse/multi_select_handler\").onMouseDown;\nvar event = require(\"./lib/event\");\nvar lang = require(\"./lib/lang\");\nvar commands = require(\"./commands/multi_select_commands\");\nexports.commands = commands.defaultCommands.concat(commands.multiSelectCommands);\nvar Search = require(\"./search\").Search;\nvar search = new Search();\nfunction find(session, needle, dir) {\n search.$options.wrap = true;\n search.$options.needle = needle;\n search.$options.backwards = dir == -1;\n return search.find(session);\n}\nvar EditSession = require(\"./edit_session\").EditSession;\n(function () {\n this.getSelectionMarkers = function () {\n return this.$selectionMarkers;\n };\n}).call(EditSession.prototype);\n(function () {\n this.ranges = null;\n this.rangeList = null;\n this.addRange = function (range, $blockChangeEvents) {\n if (!range)\n return;\n if (!this.inMultiSelectMode && this.rangeCount === 0) {\n var oldRange = this.toOrientedRange();\n this.rangeList.add(oldRange);\n this.rangeList.add(range);\n if (this.rangeList.ranges.length != 2) {\n this.rangeList.removeAll();\n return $blockChangeEvents || this.fromOrientedRange(range);\n }\n this.rangeList.removeAll();\n this.rangeList.add(oldRange);\n this.$onAddRange(oldRange);\n }\n if (!range.cursor)\n range.cursor = range.end;\n var removed = this.rangeList.add(range);\n this.$onAddRange(range);\n if (removed.length)\n this.$onRemoveRange(removed);\n if (this.rangeCount > 1 && !this.inMultiSelectMode) {\n this._signal(\"multiSelect\");\n this.inMultiSelectMode = true;\n this.session.$undoSelect = false;\n this.rangeList.attach(this.session);\n }\n return $blockChangeEvents || this.fromOrientedRange(range);\n };\n this.toSingleRange = function (range) {\n range = range || this.ranges[0];\n var removed = this.rangeList.removeAll();\n if (removed.length)\n this.$onRemoveRange(removed);\n range && this.fromOrientedRange(range);\n };\n this.substractPoint = function (pos) {\n var removed = this.rangeList.substractPoint(pos);\n if (removed) {\n this.$onRemoveRange(removed);\n return removed[0];\n }\n };\n this.mergeOverlappingRanges = function () {\n var removed = this.rangeList.merge();\n if (removed.length)\n this.$onRemoveRange(removed);\n };\n this.$onAddRange = function (range) {\n this.rangeCount = this.rangeList.ranges.length;\n this.ranges.unshift(range);\n this._signal(\"addRange\", { range: range });\n };\n this.$onRemoveRange = function (removed) {\n this.rangeCount = this.rangeList.ranges.length;\n if (this.rangeCount == 1 && this.inMultiSelectMode) {\n var lastRange = this.rangeList.ranges.pop();\n removed.push(lastRange);\n this.rangeCount = 0;\n }\n for (var i = removed.length; i--;) {\n var index = this.ranges.indexOf(removed[i]);\n this.ranges.splice(index, 1);\n }\n this._signal(\"removeRange\", { ranges: removed });\n if (this.rangeCount === 0 && this.inMultiSelectMode) {\n this.inMultiSelectMode = false;\n this._signal(\"singleSelect\");\n this.session.$undoSelect = true;\n this.rangeList.detach(this.session);\n }\n lastRange = lastRange || this.ranges[0];\n if (lastRange && !lastRange.isEqual(this.getRange()))\n this.fromOrientedRange(lastRange);\n };\n this.$initRangeList = function () {\n if (this.rangeList)\n return;\n this.rangeList = new RangeList();\n this.ranges = [];\n this.rangeCount = 0;\n };\n this.getAllRanges = function () {\n return this.rangeCount ? this.rangeList.ranges.concat() : [this.getRange()];\n };\n this.splitIntoLines = function () {\n var ranges = this.ranges.length ? this.ranges : [this.getRange()];\n var newRanges = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n var row = range.start.row;\n var endRow = range.end.row;\n if (row === endRow) {\n newRanges.push(range.clone());\n }\n else {\n newRanges.push(new Range(row, range.start.column, row, this.session.getLine(row).length));\n while (++row < endRow)\n newRanges.push(this.getLineRange(row, true));\n newRanges.push(new Range(endRow, 0, endRow, range.end.column));\n }\n if (i == 0 && !this.isBackwards())\n newRanges = newRanges.reverse();\n }\n this.toSingleRange();\n for (var i = newRanges.length; i--;)\n this.addRange(newRanges[i]);\n };\n this.joinSelections = function () {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n };\n this.toggleBlockSelection = function () {\n if (this.rangeCount > 1) {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n }\n else {\n var cursor = this.session.documentToScreenPosition(this.cursor);\n var anchor = this.session.documentToScreenPosition(this.anchor);\n var rectSel = this.rectangularRangeBlock(cursor, anchor);\n rectSel.forEach(this.addRange, this);\n }\n };\n this.rectangularRangeBlock = function (screenCursor, screenAnchor, includeEmptyLines) {\n var rectSel = [];\n var xBackwards = screenCursor.column < screenAnchor.column;\n if (xBackwards) {\n var startColumn = screenCursor.column;\n var endColumn = screenAnchor.column;\n var startOffsetX = screenCursor.offsetX;\n var endOffsetX = screenAnchor.offsetX;\n }\n else {\n var startColumn = screenAnchor.column;\n var endColumn = screenCursor.column;\n var startOffsetX = screenAnchor.offsetX;\n var endOffsetX = screenCursor.offsetX;\n }\n var yBackwards = screenCursor.row < screenAnchor.row;\n if (yBackwards) {\n var startRow = screenCursor.row;\n var endRow = screenAnchor.row;\n }\n else {\n var startRow = screenAnchor.row;\n var endRow = screenCursor.row;\n }\n if (startColumn < 0)\n startColumn = 0;\n if (startRow < 0)\n startRow = 0;\n if (startRow == endRow)\n includeEmptyLines = true;\n var docEnd;\n for (var row = startRow; row <= endRow; row++) {\n var range = Range.fromPoints(this.session.screenToDocumentPosition(row, startColumn, startOffsetX), this.session.screenToDocumentPosition(row, endColumn, endOffsetX));\n if (range.isEmpty()) {\n if (docEnd && isSamePoint(range.end, docEnd))\n break;\n docEnd = range.end;\n }\n range.cursor = xBackwards ? range.start : range.end;\n rectSel.push(range);\n }\n if (yBackwards)\n rectSel.reverse();\n if (!includeEmptyLines) {\n var end = rectSel.length - 1;\n while (rectSel[end].isEmpty() && end > 0)\n end--;\n if (end > 0) {\n var start = 0;\n while (rectSel[start].isEmpty())\n start++;\n }\n for (var i = end; i >= start; i--) {\n if (rectSel[i].isEmpty())\n rectSel.splice(i, 1);\n }\n }\n return rectSel;\n };\n}).call(Selection.prototype);\nvar Editor = require(\"./editor\").Editor;\n(function () {\n this.updateSelectionMarkers = function () {\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.addSelectionMarker = function (orientedRange) {\n if (!orientedRange.cursor)\n orientedRange.cursor = orientedRange.end;\n var style = this.getSelectionStyle();\n orientedRange.marker = this.session.addMarker(orientedRange, \"ace_selection\", style);\n this.session.$selectionMarkers.push(orientedRange);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n return orientedRange;\n };\n this.removeSelectionMarker = function (range) {\n if (!range.marker)\n return;\n this.session.removeMarker(range.marker);\n var index = this.session.$selectionMarkers.indexOf(range);\n if (index != -1)\n this.session.$selectionMarkers.splice(index, 1);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n };\n this.removeSelectionMarkers = function (ranges) {\n var markerList = this.session.$selectionMarkers;\n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.marker)\n continue;\n this.session.removeMarker(range.marker);\n var index = markerList.indexOf(range);\n if (index != -1)\n markerList.splice(index, 1);\n }\n this.session.selectionMarkerCount = markerList.length;\n };\n this.$onAddRange = function (e) {\n this.addSelectionMarker(e.range);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onRemoveRange = function (e) {\n this.removeSelectionMarkers(e.ranges);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onMultiSelect = function (e) {\n if (this.inMultiSelectMode)\n return;\n this.inMultiSelectMode = true;\n this.setStyle(\"ace_multiselect\");\n this.keyBinding.addKeyboardHandler(commands.keyboardHandler);\n this.commands.setDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onSingleSelect = function (e) {\n if (this.session.multiSelect.inVirtualMode)\n return;\n this.inMultiSelectMode = false;\n this.unsetStyle(\"ace_multiselect\");\n this.keyBinding.removeKeyboardHandler(commands.keyboardHandler);\n this.commands.removeDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n this._emit(\"changeSelection\");\n };\n this.$onMultiSelectExec = function (e) {\n var command = e.command;\n var editor = e.editor;\n if (!editor.multiSelect)\n return;\n if (!command.multiSelectAction) {\n var result = command.exec(editor, e.args || {});\n editor.multiSelect.addRange(editor.multiSelect.toOrientedRange());\n editor.multiSelect.mergeOverlappingRanges();\n }\n else if (command.multiSelectAction == \"forEach\") {\n result = editor.forEachSelection(command, e.args);\n }\n else if (command.multiSelectAction == \"forEachLine\") {\n result = editor.forEachSelection(command, e.args, true);\n }\n else if (command.multiSelectAction == \"single\") {\n editor.exitMultiSelectMode();\n result = command.exec(editor, e.args || {});\n }\n else {\n result = command.multiSelectAction(editor, e.args || {});\n }\n return result;\n };\n this.forEachSelection = function (cmd, args, options) {\n if (this.inVirtualSelectionMode)\n return;\n var keepOrder = options && options.keepOrder;\n var $byLines = options == true || options && options.$byLines;\n var session = this.session;\n var selection = this.selection;\n var rangeList = selection.rangeList;\n var ranges = (keepOrder ? selection : rangeList).ranges;\n var result;\n if (!ranges.length)\n return cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n var reg = selection._eventRegistry;\n selection._eventRegistry = {};\n var tmpSel = new Selection(session);\n this.inVirtualSelectionMode = true;\n for (var i = ranges.length; i--;) {\n if ($byLines) {\n while (i > 0 && ranges[i].start.row == ranges[i - 1].end.row)\n i--;\n }\n tmpSel.fromOrientedRange(ranges[i]);\n tmpSel.index = i;\n this.selection = session.selection = tmpSel;\n var cmdResult = cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n if (!result && cmdResult !== undefined)\n result = cmdResult;\n tmpSel.toOrientedRange(ranges[i]);\n }\n tmpSel.detach();\n this.selection = session.selection = selection;\n this.inVirtualSelectionMode = false;\n selection._eventRegistry = reg;\n selection.mergeOverlappingRanges();\n if (selection.ranges[0])\n selection.fromOrientedRange(selection.ranges[0]);\n var anim = this.renderer.$scrollAnimation;\n this.onCursorChange();\n this.onSelectionChange();\n if (anim && anim.from == anim.to)\n this.renderer.animateScrolling(anim.from);\n return result;\n };\n this.exitMultiSelectMode = function () {\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode)\n return;\n this.multiSelect.toSingleRange();\n };\n this.getSelectedText = function () {\n var text = \"\";\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var ranges = this.multiSelect.rangeList.ranges;\n var buf = [];\n for (var i = 0; i < ranges.length; i++) {\n buf.push(this.session.getTextRange(ranges[i]));\n }\n var nl = this.session.getDocument().getNewLineCharacter();\n text = buf.join(nl);\n if (text.length == (buf.length - 1) * nl.length)\n text = \"\";\n }\n else if (!this.selection.isEmpty()) {\n text = this.session.getTextRange(this.getSelectionRange());\n }\n return text;\n };\n this.$checkMultiselectChange = function (e, anchor) {\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var range = this.multiSelect.ranges[0];\n if (this.multiSelect.isEmpty() && anchor == this.multiSelect.anchor)\n return;\n var pos = anchor == this.multiSelect.anchor\n ? range.cursor == range.start ? range.end : range.start\n : range.cursor;\n if (pos.row != anchor.row\n || this.session.$clipPositionToDocument(pos.row, pos.column).column != anchor.column)\n this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange());\n else\n this.multiSelect.mergeOverlappingRanges();\n }\n };\n this.findAll = function (needle, options, additive) {\n options = options || {};\n options.needle = needle || options.needle;\n if (options.needle == undefined) {\n var range = this.selection.isEmpty()\n ? this.selection.getWordRange()\n : this.selection.getRange();\n options.needle = this.session.getTextRange(range);\n }\n this.$search.set(options);\n var ranges = this.$search.findAll(this.session);\n if (!ranges.length)\n return 0;\n var selection = this.multiSelect;\n if (!additive)\n selection.toSingleRange(ranges[0]);\n for (var i = ranges.length; i--;)\n selection.addRange(ranges[i], true);\n if (range && selection.rangeList.rangeAtPoint(range.start))\n selection.addRange(range, true);\n return ranges.length;\n };\n this.selectMoreLines = function (dir, skip) {\n var range = this.selection.toOrientedRange();\n var isBackwards = range.cursor == range.end;\n var screenLead = this.session.documentToScreenPosition(range.cursor);\n if (this.selection.$desiredColumn)\n screenLead.column = this.selection.$desiredColumn;\n var lead = this.session.screenToDocumentPosition(screenLead.row + dir, screenLead.column);\n if (!range.isEmpty()) {\n var screenAnchor = this.session.documentToScreenPosition(isBackwards ? range.end : range.start);\n var anchor = this.session.screenToDocumentPosition(screenAnchor.row + dir, screenAnchor.column);\n }\n else {\n var anchor = lead;\n }\n if (isBackwards) {\n var newRange = Range.fromPoints(lead, anchor);\n newRange.cursor = newRange.start;\n }\n else {\n var newRange = Range.fromPoints(anchor, lead);\n newRange.cursor = newRange.end;\n }\n newRange.desiredColumn = screenLead.column;\n if (!this.selection.inMultiSelectMode) {\n this.selection.addRange(range);\n }\n else {\n if (skip)\n var toRemove = range.cursor;\n }\n this.selection.addRange(newRange);\n if (toRemove)\n this.selection.substractPoint(toRemove);\n };\n this.transposeSelections = function (dir) {\n var session = this.session;\n var sel = session.multiSelect;\n var all = sel.ranges;\n for (var i = all.length; i--;) {\n var range = all[i];\n if (range.isEmpty()) {\n var tmp = session.getWordRange(range.start.row, range.start.column);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n range.end.row = tmp.end.row;\n range.end.column = tmp.end.column;\n }\n }\n sel.mergeOverlappingRanges();\n var words = [];\n for (var i = all.length; i--;) {\n var range = all[i];\n words.unshift(session.getTextRange(range));\n }\n if (dir < 0)\n words.unshift(words.pop());\n else\n words.push(words.shift());\n for (var i = all.length; i--;) {\n var range = all[i];\n var tmp = range.clone();\n session.replace(range, words[i]);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n }\n sel.fromOrientedRange(sel.ranges[0]);\n };\n this.selectMore = function (dir, skip, stopAtFirst) {\n var session = this.session;\n var sel = session.multiSelect;\n var range = sel.toOrientedRange();\n if (range.isEmpty()) {\n range = session.getWordRange(range.start.row, range.start.column);\n range.cursor = dir == -1 ? range.start : range.end;\n this.multiSelect.addRange(range);\n if (stopAtFirst)\n return;\n }\n var needle = session.getTextRange(range);\n var newRange = find(session, needle, dir);\n if (newRange) {\n newRange.cursor = dir == -1 ? newRange.start : newRange.end;\n this.session.unfold(newRange);\n this.multiSelect.addRange(newRange);\n this.renderer.scrollCursorIntoView(null, 0.5);\n }\n if (skip)\n this.multiSelect.substractPoint(range.cursor);\n };\n this.alignCursors = function () {\n var session = this.session;\n var sel = session.multiSelect;\n var ranges = sel.ranges;\n var row = -1;\n var sameRowRanges = ranges.filter(function (r) {\n if (r.cursor.row == row)\n return true;\n row = r.cursor.row;\n });\n if (!ranges.length || sameRowRanges.length == ranges.length - 1) {\n var range = this.selection.getRange();\n var fr = range.start.row, lr = range.end.row;\n var guessRange = fr == lr;\n if (guessRange) {\n var max = this.session.getLength();\n var line;\n do {\n line = this.session.getLine(lr);\n } while (/[=:]/.test(line) && ++lr < max);\n do {\n line = this.session.getLine(fr);\n } while (/[=:]/.test(line) && --fr > 0);\n if (fr < 0)\n fr = 0;\n if (lr >= max)\n lr = max - 1;\n }\n var lines = this.session.removeFullLines(fr, lr);\n lines = this.$reAlignText(lines, guessRange);\n this.session.insert({ row: fr, column: 0 }, lines.join(\"\\n\") + \"\\n\");\n if (!guessRange) {\n range.start.column = 0;\n range.end.column = lines[lines.length - 1].length;\n }\n this.selection.setRange(range);\n }\n else {\n sameRowRanges.forEach(function (r) {\n sel.substractPoint(r.cursor);\n });\n var maxCol = 0;\n var minSpace = Infinity;\n var spaceOffsets = ranges.map(function (r) {\n var p = r.cursor;\n var line = session.getLine(p.row);\n var spaceOffset = line.substr(p.column).search(/\\S/g);\n if (spaceOffset == -1)\n spaceOffset = 0;\n if (p.column > maxCol)\n maxCol = p.column;\n if (spaceOffset < minSpace)\n minSpace = spaceOffset;\n return spaceOffset;\n });\n ranges.forEach(function (r, i) {\n var p = r.cursor;\n var l = maxCol - p.column;\n var d = spaceOffsets[i] - minSpace;\n if (l > d)\n session.insert(p, lang.stringRepeat(\" \", l - d));\n else\n session.remove(new Range(p.row, p.column, p.row, p.column - l + d));\n r.start.column = r.end.column = maxCol;\n r.start.row = r.end.row = p.row;\n r.cursor = r.end;\n });\n sel.fromOrientedRange(ranges[0]);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n }\n };\n this.$reAlignText = function (lines, forceLeft) {\n var isLeftAligned = true, isRightAligned = true;\n var startW, textW, endW;\n return lines.map(function (line) {\n var m = line.match(/(\\s*)(.*?)(\\s*)([=:].*)/);\n if (!m)\n return [line];\n if (startW == null) {\n startW = m[1].length;\n textW = m[2].length;\n endW = m[3].length;\n return m;\n }\n if (startW + textW + endW != m[1].length + m[2].length + m[3].length)\n isRightAligned = false;\n if (startW != m[1].length)\n isLeftAligned = false;\n if (startW > m[1].length)\n startW = m[1].length;\n if (textW < m[2].length)\n textW = m[2].length;\n if (endW > m[3].length)\n endW = m[3].length;\n return m;\n }).map(forceLeft ? alignLeft :\n isLeftAligned ? isRightAligned ? alignRight : alignLeft : unAlign);\n function spaces(n) {\n return lang.stringRepeat(\" \", n);\n }\n function alignLeft(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(textW - m[2].length + endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function alignRight(m) {\n return !m[2] ? m[0] : spaces(startW + textW - m[2].length) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function unAlign(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n };\n}).call(Editor.prototype);\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nexports.onSessionChange = function (e) {\n var session = e.session;\n if (session && !session.multiSelect) {\n session.$selectionMarkers = [];\n session.selection.$initRangeList();\n session.multiSelect = session.selection;\n }\n this.multiSelect = session && session.multiSelect;\n var oldSession = e.oldSession;\n if (oldSession) {\n oldSession.multiSelect.off(\"addRange\", this.$onAddRange);\n oldSession.multiSelect.off(\"removeRange\", this.$onRemoveRange);\n oldSession.multiSelect.off(\"multiSelect\", this.$onMultiSelect);\n oldSession.multiSelect.off(\"singleSelect\", this.$onSingleSelect);\n oldSession.multiSelect.lead.off(\"change\", this.$checkMultiselectChange);\n oldSession.multiSelect.anchor.off(\"change\", this.$checkMultiselectChange);\n }\n if (session) {\n session.multiSelect.on(\"addRange\", this.$onAddRange);\n session.multiSelect.on(\"removeRange\", this.$onRemoveRange);\n session.multiSelect.on(\"multiSelect\", this.$onMultiSelect);\n session.multiSelect.on(\"singleSelect\", this.$onSingleSelect);\n session.multiSelect.lead.on(\"change\", this.$checkMultiselectChange);\n session.multiSelect.anchor.on(\"change\", this.$checkMultiselectChange);\n }\n if (session && this.inMultiSelectMode != session.selection.inMultiSelectMode) {\n if (session.selection.inMultiSelectMode)\n this.$onMultiSelect();\n else\n this.$onSingleSelect();\n }\n};\nfunction MultiSelect(editor) {\n if (editor.$multiselectOnSessionChange)\n return;\n editor.$onAddRange = editor.$onAddRange.bind(editor);\n editor.$onRemoveRange = editor.$onRemoveRange.bind(editor);\n editor.$onMultiSelect = editor.$onMultiSelect.bind(editor);\n editor.$onSingleSelect = editor.$onSingleSelect.bind(editor);\n editor.$multiselectOnSessionChange = exports.onSessionChange.bind(editor);\n editor.$checkMultiselectChange = editor.$checkMultiselectChange.bind(editor);\n editor.$multiselectOnSessionChange(editor);\n editor.on(\"changeSession\", editor.$multiselectOnSessionChange);\n editor.on(\"mousedown\", onMouseDown);\n editor.commands.addCommands(commands.defaultCommands);\n addAltCursorListeners(editor);\n}\nfunction addAltCursorListeners(editor) {\n if (!editor.textInput)\n return;\n var el = editor.textInput.getElement();\n var altCursor = false;\n event.addListener(el, \"keydown\", function (e) {\n var altDown = e.keyCode == 18 && !(e.ctrlKey || e.shiftKey || e.metaKey);\n if (editor.$blockSelectEnabled && altDown) {\n if (!altCursor) {\n editor.renderer.setMouseCursor(\"crosshair\");\n altCursor = true;\n }\n }\n else if (altCursor) {\n reset();\n }\n }, editor);\n event.addListener(el, \"keyup\", reset, editor);\n event.addListener(el, \"blur\", reset, editor);\n function reset(e) {\n if (altCursor) {\n editor.renderer.setMouseCursor(\"\");\n altCursor = false;\n }\n }\n}\nexports.MultiSelect = MultiSelect;\nrequire(\"./config\").defineOptions(Editor.prototype, \"editor\", {\n enableMultiselect: {\n set: function (val) {\n MultiSelect(this);\n if (val) {\n this.on(\"mousedown\", onMouseDown);\n }\n else {\n this.off(\"mousedown\", onMouseDown);\n }\n },\n value: true\n },\n enableBlockSelect: {\n set: function (val) {\n this.$blockSelectEnabled = val;\n },\n value: true\n }\n});\n\n});\n\nace.define(\"ace/mode/folding/fold_mode\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../../range\").Range;\nvar FoldMode = exports.FoldMode = function () { };\n(function () {\n this.foldingStartMarker = null;\n this.foldingStopMarker = null;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.foldingStartMarker.test(line))\n return \"start\";\n if (foldStyle == \"markbeginend\"\n && this.foldingStopMarker\n && this.foldingStopMarker.test(line))\n return \"end\";\n return \"\";\n };\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n return null;\n };\n this.indentationBlock = function (session, row, column) {\n var re = /\\S/;\n var line = session.getLine(row);\n var startLevel = line.search(re);\n if (startLevel == -1)\n return;\n var startColumn = column || line.length;\n var maxRow = session.getLength();\n var startRow = row;\n var endRow = row;\n while (++row < maxRow) {\n var level = session.getLine(row).search(re);\n if (level == -1)\n continue;\n if (level <= startLevel) {\n var token = session.getTokenAt(row, 0);\n if (!token || token.type !== \"string\")\n break;\n }\n endRow = row;\n }\n if (endRow > startRow) {\n var endColumn = session.getLine(endRow).length;\n return new Range(startRow, startColumn, endRow, endColumn);\n }\n };\n this.openingBracketBlock = function (session, bracket, row, column, typeRe) {\n var start = { row: row, column: column + 1 };\n var end = session.$findClosingBracket(bracket, start, typeRe);\n if (!end)\n return;\n var fw = session.foldWidgets[end.row];\n if (fw == null)\n fw = session.getFoldWidget(end.row);\n if (fw == \"start\" && end.row > start.row) {\n end.row--;\n end.column = session.getLine(end.row).length;\n }\n return Range.fromPoints(start, end);\n };\n this.closingBracketBlock = function (session, bracket, row, column, typeRe) {\n var end = { row: row, column: column };\n var start = session.$findOpeningBracket(bracket, end);\n if (!start)\n return;\n start.column++;\n end.column--;\n return Range.fromPoints(start, end);\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/ext/error_marker\",[\"require\",\"exports\",\"module\",\"ace/line_widgets\",\"ace/lib/dom\",\"ace/range\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar LineWidgets = require(\"../line_widgets\").LineWidgets;\nvar dom = require(\"../lib/dom\");\nvar Range = require(\"../range\").Range;\nvar nls = require(\"../config\").nls;\nfunction binarySearch(array, needle, comparator) {\n var first = 0;\n var last = array.length - 1;\n while (first <= last) {\n var mid = (first + last) >> 1;\n var c = comparator(needle, array[mid]);\n if (c > 0)\n first = mid + 1;\n else if (c < 0)\n last = mid - 1;\n else\n return mid;\n }\n return -(first + 1);\n}\nfunction findAnnotations(session, row, dir) {\n var annotations = session.getAnnotations().sort(Range.comparePoints);\n if (!annotations.length)\n return;\n var i = binarySearch(annotations, { row: row, column: -1 }, Range.comparePoints);\n if (i < 0)\n i = -i - 1;\n if (i >= annotations.length)\n i = dir > 0 ? 0 : annotations.length - 1;\n else if (i === 0 && dir < 0)\n i = annotations.length - 1;\n var annotation = annotations[i];\n if (!annotation || !dir)\n return;\n if (annotation.row === row) {\n do {\n annotation = annotations[i += dir];\n } while (annotation && annotation.row === row);\n if (!annotation)\n return annotations.slice();\n }\n var matched = [];\n row = annotation.row;\n do {\n matched[dir < 0 ? \"unshift\" : \"push\"](annotation);\n annotation = annotations[i += dir];\n } while (annotation && annotation.row == row);\n return matched.length && matched;\n}\nexports.showErrorMarker = function (editor, dir) {\n var session = editor.session;\n if (!session.widgetManager) {\n session.widgetManager = new LineWidgets(session);\n session.widgetManager.attach(editor);\n }\n var pos = editor.getCursorPosition();\n var row = pos.row;\n var oldWidget = session.widgetManager.getWidgetsAtRow(row).filter(function (w) {\n return w.type == \"errorMarker\";\n })[0];\n if (oldWidget) {\n oldWidget.destroy();\n }\n else {\n row -= dir;\n }\n var annotations = findAnnotations(session, row, dir);\n var gutterAnno;\n if (annotations) {\n var annotation = annotations[0];\n pos.column = (annotation.pos && typeof annotation.column != \"number\"\n ? annotation.pos.sc\n : annotation.column) || 0;\n pos.row = annotation.row;\n gutterAnno = editor.renderer.$gutterLayer.$annotations[pos.row];\n }\n else if (oldWidget) {\n return;\n }\n else {\n gutterAnno = {\n text: [nls(\"Looks good!\")],\n className: \"ace_ok\"\n };\n }\n editor.session.unfold(pos.row);\n editor.selection.moveToPosition(pos);\n var w = {\n row: pos.row,\n fixedWidth: true,\n coverGutter: true,\n el: dom.createElement(\"div\"),\n type: \"errorMarker\"\n };\n var el = w.el.appendChild(dom.createElement(\"div\"));\n var arrow = w.el.appendChild(dom.createElement(\"div\"));\n arrow.className = \"error_widget_arrow \" + gutterAnno.className;\n var left = editor.renderer.$cursorLayer\n .getPixelPosition(pos).left;\n arrow.style.left = left + editor.renderer.gutterWidth - 5 + \"px\";\n w.el.className = \"error_widget_wrapper\";\n el.className = \"error_widget \" + gutterAnno.className;\n el.innerHTML = gutterAnno.text.join(\"
    \");\n el.appendChild(dom.createElement(\"div\"));\n var kb = function (_, hashId, keyString) {\n if (hashId === 0 && (keyString === \"esc\" || keyString === \"return\")) {\n w.destroy();\n return { command: \"null\" };\n }\n };\n w.destroy = function () {\n if (editor.$mouseHandler.isMousePressed)\n return;\n editor.keyBinding.removeKeyboardHandler(kb);\n session.widgetManager.removeLineWidget(w);\n editor.off(\"changeSelection\", w.destroy);\n editor.off(\"changeSession\", w.destroy);\n editor.off(\"mouseup\", w.destroy);\n editor.off(\"change\", w.destroy);\n };\n editor.keyBinding.addKeyboardHandler(kb);\n editor.on(\"changeSelection\", w.destroy);\n editor.on(\"changeSession\", w.destroy);\n editor.on(\"mouseup\", w.destroy);\n editor.on(\"change\", w.destroy);\n editor.session.widgetManager.addLineWidget(w);\n w.el.onmousedown = editor.focus.bind(editor);\n editor.renderer.scrollCursorIntoView(null, 0.5, { bottom: w.el.offsetHeight });\n};\ndom.importCssString(\"\\n .error_widget_wrapper {\\n background: inherit;\\n color: inherit;\\n border:none\\n }\\n .error_widget {\\n border-top: solid 2px;\\n border-bottom: solid 2px;\\n margin: 5px 0;\\n padding: 10px 40px;\\n white-space: pre-wrap;\\n }\\n .error_widget.ace_error, .error_widget_arrow.ace_error{\\n border-color: #ff5a5a\\n }\\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\\n border-color: #F1D817\\n }\\n .error_widget.ace_info, .error_widget_arrow.ace_info{\\n border-color: #5a5a5a\\n }\\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\\n border-color: #5aaa5a\\n }\\n .error_widget_arrow {\\n position: absolute;\\n border: solid 5px;\\n border-top-color: transparent!important;\\n border-right-color: transparent!important;\\n border-left-color: transparent!important;\\n top: -5px;\\n }\\n\", \"error_marker.css\", false);\n\n});\n\nace.define(\"ace/ace\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/range\",\"ace/editor\",\"ace/edit_session\",\"ace/undomanager\",\"ace/virtual_renderer\",\"ace/worker/worker_client\",\"ace/keyboard/hash_handler\",\"ace/placeholder\",\"ace/multi_select\",\"ace/mode/folding/fold_mode\",\"ace/theme/textmate\",\"ace/ext/error_marker\",\"ace/config\",\"ace/loader_build\"], function(require, exports, module){/**\n * The main class required to set up an Ace instance in the browser.\n *\n * @class Ace\n **/\n\"use strict\";\nrequire(\"./loader_build\")(exports)\nvar dom = require(\"./lib/dom\");\nvar Range = require(\"./range\").Range;\nvar Editor = require(\"./editor\").Editor;\nvar EditSession = require(\"./edit_session\").EditSession;\nvar UndoManager = require(\"./undomanager\").UndoManager;\nvar Renderer = require(\"./virtual_renderer\").VirtualRenderer;\nrequire(\"./worker/worker_client\");\nrequire(\"./keyboard/hash_handler\");\nrequire(\"./placeholder\");\nrequire(\"./multi_select\");\nrequire(\"./mode/folding/fold_mode\");\nrequire(\"./theme/textmate\");\nrequire(\"./ext/error_marker\");\nexports.config = require(\"./config\");\nexports.edit = function (el, options) {\n if (typeof el == \"string\") {\n var _id = el;\n el = document.getElementById(_id);\n if (!el)\n throw new Error(\"ace.edit can't find div #\" + _id);\n }\n if (el && el.env && el.env.editor instanceof Editor)\n return el.env.editor;\n var value = \"\";\n if (el && /input|textarea/i.test(el.tagName)) {\n var oldNode = el;\n value = oldNode.value;\n el = dom.createElement(\"pre\");\n oldNode.parentNode.replaceChild(el, oldNode);\n }\n else if (el) {\n value = el.textContent;\n el.innerHTML = \"\";\n }\n var doc = exports.createEditSession(value);\n var editor = new Editor(new Renderer(el), doc, options);\n var env = {\n document: doc,\n editor: editor,\n onResize: editor.resize.bind(editor, null)\n };\n if (oldNode)\n env.textarea = oldNode;\n editor.on(\"destroy\", function () {\n env.editor.container.env = null; // prevent memory leak on old ie\n });\n editor.container.env = editor.env = env;\n return editor;\n};\nexports.createEditSession = function (text, mode) {\n var doc = new EditSession(text, mode);\n doc.setUndoManager(new UndoManager());\n return doc;\n};\nexports.Range = Range;\nexports.Editor = Editor;\nexports.EditSession = EditSession;\nexports.UndoManager = UndoManager;\nexports.VirtualRenderer = Renderer;\nexports.version = exports.config.version;\n\n}); (function() {\n ace.require([\"ace/ace\"], function(a) {\n if (a) {\n a.config.init(true);\n a.define = ace.define;\n }\n var global = (function () {\n return this;\n })();\n if (!global && typeof window != \"undefined\") global = window; // can happen in strict mode\n if (!global && typeof self != \"undefined\") global = self; // can happen in webworker\n \n if (!global.ace)\n global.ace = a;\n for (var key in a) if (a.hasOwnProperty(key))\n global.ace[key] = a[key];\n global.ace[\"default\"] = global.ace;\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = global.ace;\n }\n });\n })();\n ","ace.define(\"ace/ext/beautify\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"], function(require, exports, module){// [WIP]\n\"use strict\";\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nfunction is(token, type) {\n return token.type.lastIndexOf(type + \".xml\") > -1;\n}\nexports.singletonTags = [\"area\", \"base\", \"br\", \"col\", \"command\", \"embed\", \"hr\", \"html\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"param\", \"source\", \"track\", \"wbr\"];\nexports.blockTags = [\"article\", \"aside\", \"blockquote\", \"body\", \"div\", \"dl\", \"fieldset\", \"footer\", \"form\", \"head\", \"header\", \"html\", \"nav\", \"ol\", \"p\", \"script\", \"section\", \"style\", \"table\", \"tbody\", \"tfoot\", \"thead\", \"ul\"];\nexports.formatOptions = {\n lineBreaksAfterCommasInCurlyBlock: true\n};\nexports.beautify = function (session) {\n var iterator = new TokenIterator(session, 0, 0);\n var token = iterator.getCurrentToken();\n var tabString = session.getTabString();\n var singletonTags = exports.singletonTags;\n var blockTags = exports.blockTags;\n var formatOptions = exports.formatOptions || {};\n var nextToken;\n var breakBefore = false;\n var spaceBefore = false;\n var spaceAfter = false;\n var code = \"\";\n var value = \"\";\n var tagName = \"\";\n var depth = 0;\n var lastDepth = 0;\n var lastIndent = 0;\n var indent = 0;\n var unindent = 0;\n var roundDepth = 0;\n var curlyDepth = 0;\n var row;\n var curRow = 0;\n var rowsToAdd = 0;\n var rowTokens = [];\n var abort = false;\n var i;\n var indentNextLine = false;\n var inTag = false;\n var inCSS = false;\n var inBlock = false;\n var levels = { 0: 0 };\n var parents = [];\n var caseBody = false;\n var trimNext = function () {\n if (nextToken && nextToken.value && nextToken.type !== 'string.regexp')\n nextToken.value = nextToken.value.replace(/^\\s*/, \"\");\n };\n var trimLine = function () {\n var end = code.length - 1;\n while (true) {\n if (end == 0)\n break;\n if (code[end] !== \" \")\n break;\n end = end - 1;\n }\n code = code.slice(0, end + 1);\n };\n var trimCode = function () {\n code = code.trimRight();\n breakBefore = false;\n };\n while (token !== null) {\n curRow = iterator.getCurrentTokenRow();\n rowTokens = iterator.$rowTokens;\n nextToken = iterator.stepForward();\n if (typeof token !== \"undefined\") {\n value = token.value;\n unindent = 0;\n inCSS = (tagName === \"style\" || session.$modeId === \"ace/mode/css\");\n if (is(token, \"tag-open\")) {\n inTag = true;\n if (nextToken)\n inBlock = (blockTags.indexOf(nextToken.value) !== -1);\n if (value === \" 0; rowsToAdd--)\n code += \"\\n\";\n breakBefore = true;\n if (!is(token, \"comment\") && !token.type.match(/^(comment|string)$/))\n value = value.trimLeft();\n }\n if (value) {\n if (token.type === \"keyword\" && value.match(/^(if|else|elseif|for|foreach|while|switch)$/)) {\n parents[depth] = value;\n trimNext();\n spaceAfter = true;\n if (value.match(/^(else|elseif)$/)) {\n if (code.match(/\\}[\\s]*$/)) {\n trimCode();\n spaceBefore = true;\n }\n }\n }\n else if (token.type === \"paren.lparen\") {\n trimNext();\n if (value.substr(-1) === \"{\") {\n spaceAfter = true;\n indentNextLine = false;\n if (!inTag)\n rowsToAdd = 1;\n }\n if (value.substr(0, 1) === \"{\") {\n spaceBefore = true;\n if (code.substr(-1) !== '[' && code.trimRight().substr(-1) === '[') {\n trimCode();\n spaceBefore = false;\n }\n else if (code.trimRight().substr(-1) === ')') {\n trimCode();\n }\n else {\n trimLine();\n }\n }\n }\n else if (token.type === \"paren.rparen\") {\n unindent = 1;\n if (value.substr(0, 1) === \"}\") {\n if (parents[depth - 1] === 'case')\n unindent++;\n if (code.trimRight().substr(-1) === '{') {\n trimCode();\n }\n else {\n spaceBefore = true;\n if (inCSS)\n rowsToAdd += 2;\n }\n }\n if (value.substr(0, 1) === \"]\") {\n if (code.substr(-1) !== '}' && code.trimRight().substr(-1) === '}') {\n spaceBefore = false;\n indent++;\n trimCode();\n }\n }\n if (value.substr(0, 1) === \")\") {\n if (code.substr(-1) !== '(' && code.trimRight().substr(-1) === '(') {\n spaceBefore = false;\n indent++;\n trimCode();\n }\n }\n trimLine();\n }\n else if ((token.type === \"keyword.operator\" || token.type === \"keyword\") && value.match(/^(=|==|===|!=|!==|&&|\\|\\||and|or|xor|\\+=|.=|>|>=|<|<=|=>)$/)) {\n trimCode();\n trimNext();\n spaceBefore = true;\n spaceAfter = true;\n }\n else if (token.type === \"punctuation.operator\" && value === ';') {\n trimCode();\n trimNext();\n spaceAfter = true;\n if (inCSS)\n rowsToAdd++;\n }\n else if (token.type === \"punctuation.operator\" && value.match(/^(:|,)$/)) {\n trimCode();\n trimNext();\n if (value.match(/^(,)$/) && curlyDepth > 0 && roundDepth === 0 && formatOptions.lineBreaksAfterCommasInCurlyBlock) {\n rowsToAdd++;\n }\n else {\n spaceAfter = true;\n breakBefore = false;\n }\n }\n else if (token.type === \"support.php_tag\" && value === \"?>\" && !breakBefore) {\n trimCode();\n spaceBefore = true;\n }\n else if (is(token, \"attribute-name\") && code.substr(-1).match(/^\\s$/)) {\n spaceBefore = true;\n }\n else if (is(token, \"attribute-equals\")) {\n trimLine();\n trimNext();\n }\n else if (is(token, \"tag-close\")) {\n trimLine();\n if (value === \"/>\")\n spaceBefore = true;\n }\n else if (token.type === \"keyword\" && value.match(/^(case|default)$/)) {\n if (caseBody)\n unindent = 1;\n }\n if (breakBefore && !(token.type.match(/^(comment)$/) && !value.substr(0, 1).match(/^[/#]$/)) && !(token.type.match(/^(string)$/) && !value.substr(0, 1).match(/^['\"@]$/))) {\n indent = lastIndent;\n if (depth > lastDepth) {\n indent++;\n for (i = depth; i > lastDepth; i--)\n levels[i] = indent;\n }\n else if (depth < lastDepth)\n indent = levels[depth];\n lastDepth = depth;\n lastIndent = indent;\n if (unindent)\n indent -= unindent;\n if (indentNextLine && !roundDepth) {\n indent++;\n indentNextLine = false;\n }\n for (i = 0; i < indent; i++)\n code += tabString;\n }\n if (token.type === \"keyword\" && value.match(/^(case|default)$/)) {\n if (caseBody === false) {\n parents[depth] = value;\n depth++;\n caseBody = true;\n }\n }\n else if (token.type === \"keyword\" && value.match(/^(break)$/)) {\n if (parents[depth - 1] && parents[depth - 1].match(/^(case|default)$/)) {\n depth--;\n caseBody = false;\n }\n }\n if (token.type === \"paren.lparen\") {\n roundDepth += (value.match(/\\(/g) || []).length;\n curlyDepth += (value.match(/\\{/g) || []).length;\n depth += value.length;\n }\n if (token.type === \"keyword\" && value.match(/^(if|else|elseif|for|while)$/)) {\n indentNextLine = true;\n roundDepth = 0;\n }\n else if (!roundDepth && value.trim() && token.type !== \"comment\")\n indentNextLine = false;\n if (token.type === \"paren.rparen\") {\n roundDepth -= (value.match(/\\)/g) || []).length;\n curlyDepth -= (value.match(/\\}/g) || []).length;\n for (i = 0; i < value.length; i++) {\n depth--;\n if (value.substr(i, 1) === '}' && parents[depth] === 'case') {\n depth--;\n }\n }\n }\n if (token.type == \"text\")\n value = value.replace(/\\s+$/, \" \");\n if (spaceBefore && !breakBefore) {\n trimLine();\n if (code.substr(-1) !== \"\\n\")\n code += \" \";\n }\n code += value;\n if (spaceAfter)\n code += \" \";\n breakBefore = false;\n spaceBefore = false;\n spaceAfter = false;\n if ((is(token, \"tag-close\") && (inBlock || blockTags.indexOf(tagName) !== -1)) || (is(token, \"doctype\") && value === \">\")) {\n if (inBlock && nextToken && nextToken.value === \"\") {\n depth--;\n }\n }\n if (is(token, \"tag-name\")) {\n tagName = value;\n }\n row = curRow;\n }\n }\n token = nextToken;\n }\n code = code.trim();\n session.doc.setValue(code);\n};\nexports.commands = [{\n name: \"beautify\",\n description: \"Format selection (Beautify)\",\n exec: function (editor) {\n exports.beautify(editor.session);\n },\n bindKey: \"Ctrl-Shift-B\"\n }];\n\n}); (function() {\n ace.require([\"ace/ext/beautify\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/ext/searchbox-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \"\\n\\n/* ------------------------------------------------------------------------------------------\\n * Editor Search Form\\n * --------------------------------------------------------------------------------------- */\\n.ace_search {\\n background-color: #ddd;\\n color: #666;\\n border: 1px solid #cbcbcb;\\n border-top: 0 none;\\n overflow: hidden;\\n margin: 0;\\n padding: 4px 6px 0 4px;\\n position: absolute;\\n top: 0;\\n z-index: 99;\\n white-space: normal;\\n}\\n.ace_search.left {\\n border-left: 0 none;\\n border-radius: 0px 0px 5px 0px;\\n left: 0;\\n}\\n.ace_search.right {\\n border-radius: 0px 0px 0px 5px;\\n border-right: 0 none;\\n right: 0;\\n}\\n\\n.ace_search_form, .ace_replace_form {\\n margin: 0 20px 4px 0;\\n overflow: hidden;\\n line-height: 1.9;\\n}\\n.ace_replace_form {\\n margin-right: 0;\\n}\\n.ace_search_form.ace_nomatch {\\n outline: 1px solid red;\\n}\\n\\n.ace_search_field {\\n border-radius: 3px 0 0 3px;\\n background-color: white;\\n color: black;\\n border: 1px solid #cbcbcb;\\n border-right: 0 none;\\n outline: 0;\\n padding: 0;\\n font-size: inherit;\\n margin: 0;\\n line-height: inherit;\\n padding: 0 6px;\\n min-width: 17em;\\n vertical-align: top;\\n min-height: 1.8em;\\n box-sizing: content-box;\\n}\\n.ace_searchbtn {\\n border: 1px solid #cbcbcb;\\n line-height: inherit;\\n display: inline-block;\\n padding: 0 6px;\\n background: #fff;\\n border-right: 0 none;\\n border-left: 1px solid #dcdcdc;\\n cursor: pointer;\\n margin: 0;\\n position: relative;\\n color: #666;\\n}\\n.ace_searchbtn:last-child {\\n border-radius: 0 3px 3px 0;\\n border-right: 1px solid #cbcbcb;\\n}\\n.ace_searchbtn:disabled {\\n background: none;\\n cursor: default;\\n}\\n.ace_searchbtn:hover {\\n background-color: #eef1f6;\\n}\\n.ace_searchbtn.prev, .ace_searchbtn.next {\\n padding: 0px 0.7em\\n}\\n.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\\n content: \\\"\\\";\\n border: solid 2px #888;\\n width: 0.5em;\\n height: 0.5em;\\n border-width: 2px 0 0 2px;\\n display:inline-block;\\n transform: rotate(-45deg);\\n}\\n.ace_searchbtn.next:after {\\n border-width: 0 2px 2px 0 ;\\n}\\n.ace_searchbtn_close {\\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\\n border-radius: 50%;\\n border: 0 none;\\n color: #656565;\\n cursor: pointer;\\n font: 16px/16px Arial;\\n padding: 0;\\n height: 14px;\\n width: 14px;\\n top: 9px;\\n right: 7px;\\n position: absolute;\\n}\\n.ace_searchbtn_close:hover {\\n background-color: #656565;\\n background-position: 50% 100%;\\n color: white;\\n}\\n\\n.ace_button {\\n margin-left: 2px;\\n cursor: pointer;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -o-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n overflow: hidden;\\n opacity: 0.7;\\n border: 1px solid rgba(100,100,100,0.23);\\n padding: 1px;\\n box-sizing: border-box!important;\\n color: black;\\n}\\n\\n.ace_button:hover {\\n background-color: #eee;\\n opacity:1;\\n}\\n.ace_button:active {\\n background-color: #ddd;\\n}\\n\\n.ace_button.checked {\\n border-color: #3399ff;\\n opacity:1;\\n}\\n\\n.ace_search_options{\\n margin-bottom: 3px;\\n text-align: right;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -o-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n clear: both;\\n}\\n\\n.ace_search_counter {\\n float: left;\\n font-family: arial;\\n padding: 0 8px;\\n}\";\n\n});\n\nace.define(\"ace/ext/searchbox\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/event\",\"ace/ext/searchbox-css\",\"ace/keyboard/hash_handler\",\"ace/lib/keys\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar event = require(\"../lib/event\");\nvar searchboxCss = require(\"./searchbox-css\");\nvar HashHandler = require(\"../keyboard/hash_handler\").HashHandler;\nvar keyUtil = require(\"../lib/keys\");\nvar nls = require(\"../config\").nls;\nvar MAX_COUNT = 999;\ndom.importCssString(searchboxCss, \"ace_searchbox\", false);\nvar SearchBox = /** @class */ (function () {\n function SearchBox(editor, range, showReplaceForm) {\n var div = dom.createElement(\"div\");\n dom.buildDom([\"div\", { class: \"ace_search right\" },\n [\"span\", { action: \"hide\", class: \"ace_searchbtn_close\" }],\n [\"div\", { class: \"ace_search_form\" },\n [\"input\", { class: \"ace_search_field\", placeholder: nls(\"Search for\"), spellcheck: \"false\" }],\n [\"span\", { action: \"findPrev\", class: \"ace_searchbtn prev\" }, \"\\u200b\"],\n [\"span\", { action: \"findNext\", class: \"ace_searchbtn next\" }, \"\\u200b\"],\n [\"span\", { action: \"findAll\", class: \"ace_searchbtn\", title: \"Alt-Enter\" }, nls(\"All\")]\n ],\n [\"div\", { class: \"ace_replace_form\" },\n [\"input\", { class: \"ace_search_field\", placeholder: nls(\"Replace with\"), spellcheck: \"false\" }],\n [\"span\", { action: \"replaceAndFindNext\", class: \"ace_searchbtn\" }, nls(\"Replace\")],\n [\"span\", { action: \"replaceAll\", class: \"ace_searchbtn\" }, nls(\"All\")]\n ],\n [\"div\", { class: \"ace_search_options\" },\n [\"span\", { action: \"toggleReplace\", class: \"ace_button\", title: nls(\"Toggle Replace mode\"),\n style: \"float:left;margin-top:-2px;padding:0 5px;\" }, \"+\"],\n [\"span\", { class: \"ace_search_counter\" }],\n [\"span\", { action: \"toggleRegexpMode\", class: \"ace_button\", title: nls(\"RegExp Search\") }, \".*\"],\n [\"span\", { action: \"toggleCaseSensitive\", class: \"ace_button\", title: nls(\"CaseSensitive Search\") }, \"Aa\"],\n [\"span\", { action: \"toggleWholeWords\", class: \"ace_button\", title: nls(\"Whole Word Search\") }, \"\\\\b\"],\n [\"span\", { action: \"searchInSelection\", class: \"ace_button\", title: nls(\"Search In Selection\") }, \"S\"]\n ]\n ], div);\n this.element = div.firstChild;\n this.setSession = this.setSession.bind(this);\n this.$init();\n this.setEditor(editor);\n dom.importCssString(searchboxCss, \"ace_searchbox\", editor.container);\n }\n SearchBox.prototype.setEditor = function (editor) {\n editor.searchBox = this;\n editor.renderer.scroller.appendChild(this.element);\n this.editor = editor;\n };\n SearchBox.prototype.setSession = function (e) {\n this.searchRange = null;\n this.$syncOptions(true);\n };\n SearchBox.prototype.$initElements = function (sb) {\n this.searchBox = sb.querySelector(\".ace_search_form\");\n this.replaceBox = sb.querySelector(\".ace_replace_form\");\n this.searchOption = sb.querySelector(\"[action=searchInSelection]\");\n this.replaceOption = sb.querySelector(\"[action=toggleReplace]\");\n this.regExpOption = sb.querySelector(\"[action=toggleRegexpMode]\");\n this.caseSensitiveOption = sb.querySelector(\"[action=toggleCaseSensitive]\");\n this.wholeWordOption = sb.querySelector(\"[action=toggleWholeWords]\");\n this.searchInput = this.searchBox.querySelector(\".ace_search_field\");\n this.replaceInput = this.replaceBox.querySelector(\".ace_search_field\");\n this.searchCounter = sb.querySelector(\".ace_search_counter\");\n };\n SearchBox.prototype.$init = function () {\n var sb = this.element;\n this.$initElements(sb);\n var _this = this;\n event.addListener(sb, \"mousedown\", function (e) {\n setTimeout(function () {\n _this.activeInput.focus();\n }, 0);\n event.stopPropagation(e);\n });\n event.addListener(sb, \"click\", function (e) {\n var t = e.target || e.srcElement;\n var action = t.getAttribute(\"action\");\n if (action && _this[action])\n _this[action]();\n else if (_this.$searchBarKb.commands[action])\n _this.$searchBarKb.commands[action].exec(_this);\n event.stopPropagation(e);\n });\n event.addCommandKeyListener(sb, function (e, hashId, keyCode) {\n var keyString = keyUtil.keyCodeToString(keyCode);\n var command = _this.$searchBarKb.findKeyCommand(hashId, keyString);\n if (command && command.exec) {\n command.exec(_this);\n event.stopEvent(e);\n }\n });\n this.$onChange = lang.delayedCall(function () {\n _this.find(false, false);\n });\n event.addListener(this.searchInput, \"input\", function () {\n _this.$onChange.schedule(20);\n });\n event.addListener(this.searchInput, \"focus\", function () {\n _this.activeInput = _this.searchInput;\n _this.searchInput.value && _this.highlight();\n });\n event.addListener(this.replaceInput, \"focus\", function () {\n _this.activeInput = _this.replaceInput;\n _this.searchInput.value && _this.highlight();\n });\n };\n SearchBox.prototype.setSearchRange = function (range) {\n this.searchRange = range;\n if (range) {\n this.searchRangeMarker = this.editor.session.addMarker(range, \"ace_active-line\");\n }\n else if (this.searchRangeMarker) {\n this.editor.session.removeMarker(this.searchRangeMarker);\n this.searchRangeMarker = null;\n }\n };\n SearchBox.prototype.$syncOptions = function (preventScroll) {\n dom.setCssClass(this.replaceOption, \"checked\", this.searchRange);\n dom.setCssClass(this.searchOption, \"checked\", this.searchOption.checked);\n this.replaceOption.textContent = this.replaceOption.checked ? \"-\" : \"+\";\n dom.setCssClass(this.regExpOption, \"checked\", this.regExpOption.checked);\n dom.setCssClass(this.wholeWordOption, \"checked\", this.wholeWordOption.checked);\n dom.setCssClass(this.caseSensitiveOption, \"checked\", this.caseSensitiveOption.checked);\n var readOnly = this.editor.getReadOnly();\n this.replaceOption.style.display = readOnly ? \"none\" : \"\";\n this.replaceBox.style.display = this.replaceOption.checked && !readOnly ? \"\" : \"none\";\n this.find(false, false, preventScroll);\n };\n SearchBox.prototype.highlight = function (re) {\n this.editor.session.highlight(re || this.editor.$search.$options.re);\n this.editor.renderer.updateBackMarkers();\n };\n SearchBox.prototype.find = function (skipCurrent, backwards, preventScroll) {\n var range = this.editor.find(this.searchInput.value, {\n skipCurrent: skipCurrent,\n backwards: backwards,\n wrap: true,\n regExp: this.regExpOption.checked,\n caseSensitive: this.caseSensitiveOption.checked,\n wholeWord: this.wholeWordOption.checked,\n preventScroll: preventScroll,\n range: this.searchRange\n });\n var noMatch = !range && this.searchInput.value;\n dom.setCssClass(this.searchBox, \"ace_nomatch\", noMatch);\n this.editor._emit(\"findSearchBox\", { match: !noMatch });\n this.highlight();\n this.updateCounter();\n };\n SearchBox.prototype.updateCounter = function () {\n var editor = this.editor;\n var regex = editor.$search.$options.re;\n var supportsUnicodeFlag = regex.unicode;\n var all = 0;\n var before = 0;\n if (regex) {\n var value = this.searchRange\n ? editor.session.getTextRange(this.searchRange)\n : editor.getValue();\n var offset = editor.session.doc.positionToIndex(editor.selection.anchor);\n if (this.searchRange)\n offset -= editor.session.doc.positionToIndex(this.searchRange.start);\n var last = regex.lastIndex = 0;\n var m;\n while ((m = regex.exec(value))) {\n all++;\n last = m.index;\n if (last <= offset)\n before++;\n if (all > MAX_COUNT)\n break;\n if (!m[0]) {\n regex.lastIndex = last += lang.skipEmptyMatch(value, last, supportsUnicodeFlag);\n if (last >= value.length)\n break;\n }\n }\n }\n this.searchCounter.textContent = nls(\"$0 of $1\", [before, (all > MAX_COUNT ? MAX_COUNT + \"+\" : all)]);\n };\n SearchBox.prototype.findNext = function () {\n this.find(true, false);\n };\n SearchBox.prototype.findPrev = function () {\n this.find(true, true);\n };\n SearchBox.prototype.findAll = function () {\n var range = this.editor.findAll(this.searchInput.value, {\n regExp: this.regExpOption.checked,\n caseSensitive: this.caseSensitiveOption.checked,\n wholeWord: this.wholeWordOption.checked\n });\n var noMatch = !range && this.searchInput.value;\n dom.setCssClass(this.searchBox, \"ace_nomatch\", noMatch);\n this.editor._emit(\"findSearchBox\", { match: !noMatch });\n this.highlight();\n this.hide();\n };\n SearchBox.prototype.replace = function () {\n if (!this.editor.getReadOnly())\n this.editor.replace(this.replaceInput.value);\n };\n SearchBox.prototype.replaceAndFindNext = function () {\n if (!this.editor.getReadOnly()) {\n this.editor.replace(this.replaceInput.value);\n this.findNext();\n }\n };\n SearchBox.prototype.replaceAll = function () {\n if (!this.editor.getReadOnly())\n this.editor.replaceAll(this.replaceInput.value);\n };\n SearchBox.prototype.hide = function () {\n this.active = false;\n this.setSearchRange(null);\n this.editor.off(\"changeSession\", this.setSession);\n this.element.style.display = \"none\";\n this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb);\n this.editor.focus();\n };\n SearchBox.prototype.show = function (value, isReplace) {\n this.active = true;\n this.editor.on(\"changeSession\", this.setSession);\n this.element.style.display = \"\";\n this.replaceOption.checked = isReplace;\n if (value)\n this.searchInput.value = value;\n this.searchInput.focus();\n this.searchInput.select();\n this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb);\n this.$syncOptions(true);\n };\n SearchBox.prototype.isFocused = function () {\n var el = document.activeElement;\n return el == this.searchInput || el == this.replaceInput;\n };\n return SearchBox;\n}());\nvar $searchBarKb = new HashHandler();\n$searchBarKb.bindKeys({\n \"Ctrl-f|Command-f\": function (sb) {\n var isReplace = sb.isReplace = !sb.isReplace;\n sb.replaceBox.style.display = isReplace ? \"\" : \"none\";\n sb.replaceOption.checked = false;\n sb.$syncOptions();\n sb.searchInput.focus();\n },\n \"Ctrl-H|Command-Option-F\": function (sb) {\n if (sb.editor.getReadOnly())\n return;\n sb.replaceOption.checked = true;\n sb.$syncOptions();\n sb.replaceInput.focus();\n },\n \"Ctrl-G|Command-G\": function (sb) {\n sb.findNext();\n },\n \"Ctrl-Shift-G|Command-Shift-G\": function (sb) {\n sb.findPrev();\n },\n \"esc\": function (sb) {\n setTimeout(function () { sb.hide(); });\n },\n \"Return\": function (sb) {\n if (sb.activeInput == sb.replaceInput)\n sb.replace();\n sb.findNext();\n },\n \"Shift-Return\": function (sb) {\n if (sb.activeInput == sb.replaceInput)\n sb.replace();\n sb.findPrev();\n },\n \"Alt-Return\": function (sb) {\n if (sb.activeInput == sb.replaceInput)\n sb.replaceAll();\n sb.findAll();\n },\n \"Tab\": function (sb) {\n (sb.activeInput == sb.replaceInput ? sb.searchInput : sb.replaceInput).focus();\n }\n});\n$searchBarKb.addCommands([{\n name: \"toggleRegexpMode\",\n bindKey: { win: \"Alt-R|Alt-/\", mac: \"Ctrl-Alt-R|Ctrl-Alt-/\" },\n exec: function (sb) {\n sb.regExpOption.checked = !sb.regExpOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"toggleCaseSensitive\",\n bindKey: { win: \"Alt-C|Alt-I\", mac: \"Ctrl-Alt-R|Ctrl-Alt-I\" },\n exec: function (sb) {\n sb.caseSensitiveOption.checked = !sb.caseSensitiveOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"toggleWholeWords\",\n bindKey: { win: \"Alt-B|Alt-W\", mac: \"Ctrl-Alt-B|Ctrl-Alt-W\" },\n exec: function (sb) {\n sb.wholeWordOption.checked = !sb.wholeWordOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"toggleReplace\",\n exec: function (sb) {\n sb.replaceOption.checked = !sb.replaceOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"searchInSelection\",\n exec: function (sb) {\n sb.searchOption.checked = !sb.searchRange;\n sb.setSearchRange(sb.searchOption.checked && sb.editor.getSelectionRange());\n sb.$syncOptions();\n }\n }]);\nvar $closeSearchBarKb = new HashHandler([{\n bindKey: \"Esc\",\n name: \"closeSearchBar\",\n exec: function (editor) {\n editor.searchBox.hide();\n }\n }]);\nSearchBox.prototype.$searchBarKb = $searchBarKb;\nSearchBox.prototype.$closeSearchBarKb = $closeSearchBarKb;\nexports.SearchBox = SearchBox;\nexports.Search = function (editor, isReplace) {\n var sb = editor.searchBox || new SearchBox(editor);\n sb.show(editor.session.getTextRange(), isReplace);\n};\n\n}); (function() {\n ace.require([\"ace/ext/searchbox\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|flex-end|flex-start|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\";\nvar supportConstantColor = exports.supportConstantColor = \"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses = exports.pseudoClasses = \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\nvar CssHighlightRules = function () {\n var keywordMapper = this.createKeywordMapper({\n \"support.function\": supportFunction,\n \"support.constant\": supportConstant,\n \"support.type\": supportType,\n \"support.constant.color\": supportConstantColor,\n \"support.constant.fonts\": supportConstantFonts\n }, \"text\", true);\n this.$rules = {\n \"start\": [{\n include: [\"strings\", \"url\", \"comments\"]\n }, {\n token: \"paren.lparen\",\n regex: \"\\\\{\",\n next: \"ruleset\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\"\n }, {\n token: \"string\",\n regex: \"@(?!viewport)\",\n next: \"media\"\n }, {\n token: \"keyword\",\n regex: \"#[a-z0-9-_]+\"\n }, {\n token: \"keyword\",\n regex: \"%\"\n }, {\n token: \"variable\",\n regex: \"\\\\.[a-z0-9-_]+\"\n }, {\n token: \"string\",\n regex: \":[a-z0-9-_]+\"\n }, {\n token: \"constant.numeric\",\n regex: numRe\n }, {\n token: \"constant\",\n regex: \"[a-z0-9-_]+\"\n }, {\n caseInsensitive: true\n }],\n \"media\": [{\n include: [\"strings\", \"url\", \"comments\"]\n }, {\n token: \"paren.lparen\",\n regex: \"\\\\{\",\n next: \"start\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\",\n next: \"start\"\n }, {\n token: \"string\",\n regex: \";\",\n next: \"start\"\n }, {\n token: \"keyword\",\n regex: \"(?:media|supports|document|charset|import|namespace|media|supports|document\"\n + \"|page|font|keyframes|viewport|counter-style|font-feature-values\"\n + \"|swash|ornaments|annotation|stylistic|styleset|character-variant)\"\n }],\n \"comments\": [{\n token: \"comment\",\n regex: \"\\\\/\\\\*\",\n push: [{\n token: \"comment\",\n regex: \"\\\\*\\\\/\",\n next: \"pop\"\n }, {\n defaultToken: \"comment\"\n }]\n }],\n \"ruleset\": [{\n regex: \"-(webkit|ms|moz|o)-\",\n token: \"text\"\n }, {\n token: \"punctuation.operator\",\n regex: \"[:;]\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\",\n next: \"start\"\n }, {\n include: [\"strings\", \"url\", \"comments\"]\n }, {\n token: [\"constant.numeric\", \"keyword\"],\n regex: \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"\n }, {\n token: \"constant.numeric\",\n regex: numRe\n }, {\n token: \"constant.numeric\",\n regex: \"#[a-f0-9]{6}\"\n }, {\n token: \"constant.numeric\",\n regex: \"#[a-f0-9]{3}\"\n }, {\n token: [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n regex: pseudoElements\n }, {\n token: [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n regex: pseudoClasses\n }, {\n include: \"url\"\n }, {\n token: keywordMapper,\n regex: \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n }, {\n caseInsensitive: true\n }],\n url: [{\n token: \"support.function\",\n regex: \"(?:url(:?-prefix)?|domain|regexp)\\\\(\",\n push: [{\n token: \"support.function\",\n regex: \"\\\\)\",\n next: \"pop\"\n }, {\n defaultToken: \"string\"\n }]\n }],\n strings: [{\n token: \"string.start\",\n regex: \"'\",\n push: [{\n token: \"string.end\",\n regex: \"'|$\",\n next: \"pop\"\n }, {\n include: \"escapes\"\n }, {\n token: \"constant.language.escape\",\n regex: /\\\\$/,\n consumeLineEnd: true\n }, {\n defaultToken: \"string\"\n }]\n }, {\n token: \"string.start\",\n regex: '\"',\n push: [{\n token: \"string.end\",\n regex: '\"|$',\n next: \"pop\"\n }, {\n include: \"escapes\"\n }, {\n token: \"constant.language.escape\",\n regex: /\\\\$/,\n consumeLineEnd: true\n }, {\n defaultToken: \"string\"\n }]\n }],\n escapes: [{\n token: \"constant.language.escape\",\n regex: /\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/\n }]\n };\n this.normalizeRules();\n};\noop.inherits(CssHighlightRules, TextHighlightRules);\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar propertyMap = {\n \"background\": { \"#$0\": 1 },\n \"background-color\": { \"#$0\": 1, \"transparent\": 1, \"fixed\": 1 },\n \"background-image\": { \"url('/$0')\": 1 },\n \"background-repeat\": { \"repeat\": 1, \"repeat-x\": 1, \"repeat-y\": 1, \"no-repeat\": 1, \"inherit\": 1 },\n \"background-position\": { \"bottom\": 2, \"center\": 2, \"left\": 2, \"right\": 2, \"top\": 2, \"inherit\": 2 },\n \"background-attachment\": { \"scroll\": 1, \"fixed\": 1 },\n \"background-size\": { \"cover\": 1, \"contain\": 1 },\n \"background-clip\": { \"border-box\": 1, \"padding-box\": 1, \"content-box\": 1 },\n \"background-origin\": { \"border-box\": 1, \"padding-box\": 1, \"content-box\": 1 },\n \"border\": { \"solid $0\": 1, \"dashed $0\": 1, \"dotted $0\": 1, \"#$0\": 1 },\n \"border-color\": { \"#$0\": 1 },\n \"border-style\": { \"solid\": 2, \"dashed\": 2, \"dotted\": 2, \"double\": 2, \"groove\": 2, \"hidden\": 2, \"inherit\": 2, \"inset\": 2, \"none\": 2, \"outset\": 2, \"ridged\": 2 },\n \"border-collapse\": { \"collapse\": 1, \"separate\": 1 },\n \"bottom\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"clear\": { \"left\": 1, \"right\": 1, \"both\": 1, \"none\": 1 },\n \"color\": { \"#$0\": 1, \"rgb(#$00,0,0)\": 1 },\n \"cursor\": { \"default\": 1, \"pointer\": 1, \"move\": 1, \"text\": 1, \"wait\": 1, \"help\": 1, \"progress\": 1, \"n-resize\": 1, \"ne-resize\": 1, \"e-resize\": 1, \"se-resize\": 1, \"s-resize\": 1, \"sw-resize\": 1, \"w-resize\": 1, \"nw-resize\": 1 },\n \"display\": { \"none\": 1, \"block\": 1, \"inline\": 1, \"inline-block\": 1, \"table-cell\": 1 },\n \"empty-cells\": { \"show\": 1, \"hide\": 1 },\n \"float\": { \"left\": 1, \"right\": 1, \"none\": 1 },\n \"font-family\": { \"Arial\": 2, \"Comic Sans MS\": 2, \"Consolas\": 2, \"Courier New\": 2, \"Courier\": 2, \"Georgia\": 2, \"Monospace\": 2, \"Sans-Serif\": 2, \"Segoe UI\": 2, \"Tahoma\": 2, \"Times New Roman\": 2, \"Trebuchet MS\": 2, \"Verdana\": 1 },\n \"font-size\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"font-weight\": { \"bold\": 1, \"normal\": 1 },\n \"font-style\": { \"italic\": 1, \"normal\": 1 },\n \"font-variant\": { \"normal\": 1, \"small-caps\": 1 },\n \"height\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"left\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"letter-spacing\": { \"normal\": 1 },\n \"line-height\": { \"normal\": 1 },\n \"list-style-type\": { \"none\": 1, \"disc\": 1, \"circle\": 1, \"square\": 1, \"decimal\": 1, \"decimal-leading-zero\": 1, \"lower-roman\": 1, \"upper-roman\": 1, \"lower-greek\": 1, \"lower-latin\": 1, \"upper-latin\": 1, \"georgian\": 1, \"lower-alpha\": 1, \"upper-alpha\": 1 },\n \"margin\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-right\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-left\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-top\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-bottom\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"max-height\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"max-width\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"min-height\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"min-width\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"overflow\": { \"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1 },\n \"overflow-x\": { \"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1 },\n \"overflow-y\": { \"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1 },\n \"padding\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-top\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-right\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-bottom\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-left\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"page-break-after\": { \"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1 },\n \"page-break-before\": { \"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1 },\n \"position\": { \"absolute\": 1, \"relative\": 1, \"fixed\": 1, \"static\": 1 },\n \"right\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"table-layout\": { \"fixed\": 1, \"auto\": 1 },\n \"text-decoration\": { \"none\": 1, \"underline\": 1, \"line-through\": 1, \"blink\": 1 },\n \"text-align\": { \"left\": 1, \"right\": 1, \"center\": 1, \"justify\": 1 },\n \"text-transform\": { \"capitalize\": 1, \"uppercase\": 1, \"lowercase\": 1, \"none\": 1 },\n \"top\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"vertical-align\": { \"top\": 1, \"bottom\": 1 },\n \"visibility\": { \"hidden\": 1, \"visible\": 1 },\n \"white-space\": { \"nowrap\": 1, \"normal\": 1, \"pre\": 1, \"pre-line\": 1, \"pre-wrap\": 1 },\n \"width\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"word-spacing\": { \"normal\": 1 },\n \"filter\": { \"alpha(opacity=$0100)\": 1 },\n \"text-shadow\": { \"$02px 2px 2px #777\": 1 },\n \"text-overflow\": { \"ellipsis-word\": 1, \"clip\": 1, \"ellipsis\": 1 },\n \"-moz-border-radius\": 1,\n \"-moz-border-radius-topright\": 1,\n \"-moz-border-radius-bottomright\": 1,\n \"-moz-border-radius-topleft\": 1,\n \"-moz-border-radius-bottomleft\": 1,\n \"-webkit-border-radius\": 1,\n \"-webkit-border-top-right-radius\": 1,\n \"-webkit-border-top-left-radius\": 1,\n \"-webkit-border-bottom-right-radius\": 1,\n \"-webkit-border-bottom-left-radius\": 1,\n \"-moz-box-shadow\": 1,\n \"-webkit-box-shadow\": 1,\n \"transform\": { \"rotate($00deg)\": 1, \"skew($00deg)\": 1 },\n \"-moz-transform\": { \"rotate($00deg)\": 1, \"skew($00deg)\": 1 },\n \"-webkit-transform\": { \"rotate($00deg)\": 1, \"skew($00deg)\": 1 }\n};\nvar CssCompletions = function () {\n};\n(function () {\n this.completionsDefined = false;\n this.defineCompletions = function () {\n if (document) {\n var style = document.createElement('c').style;\n for (var i in style) {\n if (typeof style[i] !== 'string')\n continue;\n var name = i.replace(/[A-Z]/g, function (x) {\n return '-' + x.toLowerCase();\n });\n if (!propertyMap.hasOwnProperty(name))\n propertyMap[name] = 1;\n }\n }\n this.completionsDefined = true;\n };\n this.getCompletions = function (state, session, pos, prefix) {\n if (!this.completionsDefined) {\n this.defineCompletions();\n }\n if (state === 'ruleset' || session.$mode.$id == \"ace/mode/scss\") {\n var line = session.getLine(pos.row).substr(0, pos.column);\n var inParens = /\\([^)]*$/.test(line);\n if (inParens) {\n line = line.substr(line.lastIndexOf('(') + 1);\n }\n if (/:[^;]+$/.test(line)) {\n /([\\w\\-]+):[^:]*$/.test(line);\n return this.getPropertyValueCompletions(state, session, pos, prefix);\n }\n else {\n return this.getPropertyCompletions(state, session, pos, prefix, inParens);\n }\n }\n return [];\n };\n this.getPropertyCompletions = function (state, session, pos, prefix, skipSemicolon) {\n skipSemicolon = skipSemicolon || false;\n var properties = Object.keys(propertyMap);\n return properties.map(function (property) {\n return {\n caption: property,\n snippet: property + ': $0' + (skipSemicolon ? '' : ';'),\n meta: \"property\",\n score: 1000000\n };\n });\n };\n this.getPropertyValueCompletions = function (state, session, pos, prefix) {\n var line = session.getLine(pos.row).substr(0, pos.column);\n var property = (/([\\w\\-]+):[^:]*$/.exec(line) || {})[1];\n if (!property)\n return [];\n var values = [];\n if (property in propertyMap && typeof propertyMap[property] === \"object\") {\n values = Object.keys(propertyMap[property]);\n }\n return values.map(function (value) {\n return {\n caption: value,\n snippet: value,\n meta: \"property value\",\n score: 1000000\n };\n });\n };\n}).call(CssCompletions.prototype);\nexports.CssCompletions = CssCompletions;\n\n});\n\nace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar CstyleBehaviour = require(\"./cstyle\").CstyleBehaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar CssBehaviour = function () {\n this.inherit(CstyleBehaviour);\n this.add(\"colon\", \"insertion\", function (state, action, editor, session, text) {\n if (text === ':' && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.value.match(/\\s+/)) {\n token = iterator.stepBackward();\n }\n if (token && token.type === 'support.type') {\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === ':') {\n return {\n text: '',\n selection: [1, 1]\n };\n }\n if (/^(\\s+[^;]|\\s*$)/.test(line.substring(cursor.column))) {\n return {\n text: ':;',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"colon\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected === ':') {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.value.match(/\\s+/)) {\n token = iterator.stepBackward();\n }\n if (token && token.type === 'support.type') {\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar === ';') {\n range.end.column++;\n return range;\n }\n }\n }\n });\n this.add(\"semicolon\", \"insertion\", function (state, action, editor, session, text) {\n if (text === ';' && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === ';') {\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"!important\", \"insertion\", function (state, action, editor, session, text) {\n if (text === '!' && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (/^\\s*(;|}|$)/.test(line.substring(cursor.column))) {\n return {\n text: '!important',\n selection: [10, 10]\n };\n }\n }\n });\n};\noop.inherits(CssBehaviour, CstyleBehaviour);\nexports.CssBehaviour = CssBehaviour;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CssCompletions = require(\"./css_completions\").CssCompletions;\nvar CssBehaviour = require(\"./behaviour/css\").CssBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = CssHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CssBehaviour();\n this.$completer = new CssCompletions();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.foldingRules = \"cStyle\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n var match = line.match(/^.*\\{\\s*$/);\n if (match) {\n indent += tab;\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.getCompletions = function (state, session, pos, prefix) {\n return this.$completer.getCompletions(state, session, pos, prefix);\n };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/css_worker\", \"Worker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"annotate\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/css\";\n this.snippetFileId = \"ace/snippets/css\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/css\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar DocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n }, DocCommentHighlightRules.getTagRule(), {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ]\n };\n};\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\nDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/golang_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar GolangHighlightRules = function () {\n var keywords = (\"else|break|case|return|goto|if|const|select|\" +\n \"continue|struct|default|switch|for|range|\" +\n \"func|import|package|chan|defer|fallthrough|go|interface|map|range|\" +\n \"select|type|var\");\n var builtinTypes = (\"string|uint8|uint16|uint32|uint64|int8|int16|int32|int64|float32|\" +\n \"float64|complex64|complex128|byte|rune|uint|int|uintptr|bool|error\");\n var builtinFunctions = (\"new|close|cap|copy|panic|panicln|print|println|len|make|delete|real|recover|imag|append\");\n var builtinConstants = (\"nil|true|false|iota\");\n var keywordMapper = this.createKeywordMapper({\n \"keyword\": keywords,\n \"constant.language\": builtinConstants,\n \"support.function\": builtinFunctions,\n \"support.type\": builtinTypes\n }, \"\");\n var stringEscapeRe = \"\\\\\\\\(?:[0-7]{3}|x\\\\h{2}|u{4}|U\\\\h{6}|[abfnrtv'\\\"\\\\\\\\])\".replace(/\\\\h/g, \"[a-fA-F\\\\d]\");\n this.$rules = {\n \"start\": [\n {\n token: \"comment\",\n regex: \"\\\\/\\\\/.*$\"\n },\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n {\n token: \"comment.start\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"string\",\n regex: /\"(?:[^\"\\\\]|\\\\.)*?\"/\n }, {\n token: \"string\",\n regex: '`',\n next: \"bqstring\"\n }, {\n token: \"constant.numeric\",\n regex: \"'(?:[^\\\\'\\uD800-\\uDBFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|\" + stringEscapeRe.replace('\"', '') + \")'\"\n }, {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token: [\"keyword\", \"text\", \"entity.name.function\"],\n regex: \"(func)(\\\\s+)([a-zA-Z_$][a-zA-Z0-9_$]*)\\\\b\"\n }, {\n token: function (val) {\n if (val[val.length - 1] == \"(\") {\n return [{\n type: keywordMapper(val.slice(0, -1)) || \"support.function\",\n value: val.slice(0, -1)\n }, {\n type: \"paren.lparen\",\n value: val.slice(-1)\n }];\n }\n return keywordMapper(val) || \"identifier\";\n },\n regex: \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\\\\(?\"\n }, {\n token: \"keyword.operator\",\n regex: \"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=\"\n }, {\n token: \"punctuation.operator\",\n regex: \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}]\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"comment\": [\n {\n token: \"comment.end\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ],\n \"bqstring\": [\n {\n token: \"string\",\n regex: '`',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }\n ]\n };\n this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"start\")]);\n};\noop.inherits(GolangHighlightRules, TextHighlightRules);\nexports.GolangHighlightRules = GolangHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/golang\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/golang_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar GolangHighlightRules = require(\"./golang_highlight_rules\").GolangHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = GolangHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.foldingRules = new CStyleFoldMode();\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n var endState = tokenizedLine.state;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n }; //end getNextLineIndent\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.$id = \"ace/mode/golang\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/golang\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/jsdoc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JsDocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: [\"comment.doc.tag\", \"comment.doc.text\", \"lparen.doc\"],\n regex: \"(@(?:param|member|typedef|property|namespace|var|const|callback))(\\\\s*)({)\",\n push: [\n {\n token: \"lparen.doc\",\n regex: \"{\",\n push: [\n {\n include: \"doc-syntax\"\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }\n ]\n }, {\n token: [\"rparen.doc\", \"text.doc\", \"variable.parameter.doc\", \"lparen.doc\", \"variable.parameter.doc\", \"rparen.doc\"],\n regex: /(})(\\s*)(?:([\\w=:\\/\\.]+)|(?:(\\[)([\\w=:\\/\\.]+)(\\])))/,\n next: \"pop\"\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }, {\n include: \"doc-syntax\"\n }, {\n defaultToken: \"text.doc\"\n }\n ]\n }, {\n token: [\"comment.doc.tag\", \"text.doc\", \"lparen.doc\"],\n regex: \"(@(?:returns?|yields|type|this|suppress|public|protected|private|package|modifies|\"\n + \"implements|external|exception|throws|enum|define|extends))(\\\\s*)({)\",\n push: [\n {\n token: \"lparen.doc\",\n regex: \"{\",\n push: [\n {\n include: \"doc-syntax\"\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }\n ]\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }, {\n include: \"doc-syntax\"\n }, {\n defaultToken: \"text.doc\"\n }\n ]\n }, {\n token: [\"comment.doc.tag\", \"text.doc\", \"variable.parameter.doc\"],\n regex: \"(@(?:alias|memberof|instance|module|name|lends|namespace|external|this|template|\"\n + \"requires|param|implements|function|extends|typedef|mixes|constructor|var|\"\n + \"memberof\\\\!|event|listens|exports|class|constructs|interface|emits|fires|\"\n + \"throws|const|callback|borrows|augments))(\\\\s+)(\\\\w[\\\\w#\\.:\\/~\\\"\\\\-]*)?\"\n }, {\n token: [\"comment.doc.tag\", \"text.doc\", \"variable.parameter.doc\"],\n regex: \"(@method)(\\\\s+)(\\\\w[\\\\w\\.\\\\(\\\\)]*)\"\n }, {\n token: \"comment.doc.tag\",\n regex: \"@access\\\\s+(?:private|public|protected)\"\n }, {\n token: \"comment.doc.tag\",\n regex: \"@kind\\\\s+(?:class|constant|event|external|file|function|member|mixin|module|namespace|typedef)\"\n }, {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n },\n JsDocCommentHighlightRules.getTagRule(),\n {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ],\n \"doc-syntax\": [{\n token: \"operator.doc\",\n regex: /[|:]/\n }, {\n token: \"paren.doc\",\n regex: /[\\[\\]]/\n }]\n };\n this.normalizeRules();\n};\noop.inherits(JsDocCommentHighlightRules, TextHighlightRules);\nJsDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nJsDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nJsDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.JsDocCommentHighlightRules = JsDocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/jsdoc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./jsdoc_comment_highlight_rules\").JsDocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\nvar JavaScriptHighlightRules = function (options) {\n var keywordMapper = this.createKeywordMapper({\n \"variable.language\": \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|\" + // Constructors\n \"Namespace|QName|XML|XMLList|\" + // E4X\n \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\" +\n \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\" +\n \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\" + // Errors\n \"SyntaxError|TypeError|URIError|\" +\n \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n \"isNaN|parseFloat|parseInt|\" +\n \"JSON|Math|\" + // Other\n \"this|arguments|prototype|window|document\",\n \"keyword\": \"const|yield|import|get|set|async|await|\" +\n \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static|constructor\",\n \"storage.type\": \"const|let|var|function\",\n \"constant.language\": \"null|Infinity|NaN|undefined\",\n \"support.function\": \"alert\",\n \"constant.language.boolean\": \"true|false\"\n }, \"identifier\");\n var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n \"u[0-9a-fA-F]{4}|\" + // unicode\n \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n \"[0-2][0-7]{0,2}|\" + // oct\n \"3[0-7][0-7]?|\" + // oct\n \"[4-7][0-7]?|\" + //oct\n \".)\";\n this.$rules = {\n \"no_regex\": [\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n comments(\"no_regex\"),\n {\n token: \"string\",\n regex: \"'(?=.)\",\n next: \"qstring\"\n }, {\n token: \"string\",\n regex: '\"(?=.)',\n next: \"qqstring\"\n }, {\n token: \"constant.numeric\",\n regex: /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/\n }, {\n token: \"constant.numeric\",\n regex: /(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"support.function\",\n \"punctuation.operator\", \"entity.name.function\", \"text\", \"keyword.operator\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)\",\n next: \"function_arguments\"\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\",\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex: \"(function\\\\*?)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"entity.name.function\", \"text\", \"punctuation.operator\",\n \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex: \"(:)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: \"keyword\",\n regex: \"from(?=\\\\s*('|\\\"))\"\n }, {\n token: \"keyword\",\n regex: \"(?:\" + kwBeforeRe + \")\\\\b\",\n next: \"start\"\n }, {\n token: \"support.constant\",\n regex: /that\\b/\n }, {\n token: [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n regex: /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n }, {\n token: keywordMapper,\n regex: identifierRe\n }, {\n token: \"punctuation.operator\",\n regex: /[.](?![.])/,\n next: \"property\"\n }, {\n token: \"storage.type\",\n regex: /=>/,\n next: \"start\"\n }, {\n token: \"keyword.operator\",\n regex: /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n next: \"start\"\n }, {\n token: \"punctuation.operator\",\n regex: /[?:,;.]/,\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: /[\\[({]/,\n next: \"start\"\n }, {\n token: \"paren.rparen\",\n regex: /[\\])}]/\n }, {\n token: \"comment\",\n regex: /^#!.*$/\n }\n ],\n property: [{\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\",\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: \"punctuation.operator\",\n regex: /[.](?![.])/\n }, {\n token: \"support.function\",\n regex: /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|lter|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward|rEach)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n }, {\n token: \"support.function.dom\",\n regex: /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n }, {\n token: \"support.constant\",\n regex: /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n }, {\n token: \"identifier\",\n regex: identifierRe\n }, {\n regex: \"\",\n token: \"empty\",\n next: \"no_regex\"\n }\n ],\n \"start\": [\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n comments(\"start\"),\n {\n token: \"string.regexp\",\n regex: \"\\\\/\",\n next: \"regex\"\n }, {\n token: \"text\",\n regex: \"\\\\s+|^$\",\n next: \"start\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"regex\": [\n {\n token: \"regexp.keyword.operator\",\n regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n }, {\n token: \"string.regexp\",\n regex: \"/[sxngimy]*\",\n next: \"no_regex\"\n }, {\n token: \"invalid\",\n regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n }, {\n token: \"constant.language.escape\",\n regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n }, {\n token: \"constant.language.delimiter\",\n regex: /\\|/\n }, {\n token: \"constant.language.escape\",\n regex: /\\[\\^?/,\n next: \"regex_character_class\"\n }, {\n token: \"empty\",\n regex: \"$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string.regexp\"\n }\n ],\n \"regex_character_class\": [\n {\n token: \"regexp.charclass.keyword.operator\",\n regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n }, {\n token: \"constant.language.escape\",\n regex: \"]\",\n next: \"regex\"\n }, {\n token: \"constant.language.escape\",\n regex: \"-\"\n }, {\n token: \"empty\",\n regex: \"$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string.regexp.charachterclass\"\n }\n ],\n \"default_parameter\": [\n {\n token: \"string\",\n regex: \"'(?=.)\",\n push: [\n {\n token: \"string\",\n regex: \"'|$\",\n next: \"pop\"\n }, {\n include: \"qstring\"\n }\n ]\n }, {\n token: \"string\",\n regex: '\"(?=.)',\n push: [\n {\n token: \"string\",\n regex: '\"|$',\n next: \"pop\"\n }, {\n include: \"qqstring\"\n }\n ]\n }, {\n token: \"constant.language\",\n regex: \"null|Infinity|NaN|undefined\"\n }, {\n token: \"constant.numeric\",\n regex: /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/\n }, {\n token: \"constant.numeric\",\n regex: /(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/\n }, {\n token: \"punctuation.operator\",\n regex: \",\",\n next: \"function_arguments\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n token: \"punctuation.operator\",\n regex: \"$\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"function_arguments\": [\n comments(\"function_arguments\"),\n {\n token: \"variable.parameter\",\n regex: identifierRe\n }, {\n token: \"punctuation.operator\",\n regex: \",\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n token: \"punctuation.operator\",\n regex: \"$\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"qqstring\": [\n {\n token: \"constant.language.escape\",\n regex: escapedRe\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n consumeLineEnd: true\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"no_regex\"\n }, {\n defaultToken: \"string\"\n }\n ],\n \"qstring\": [\n {\n token: \"constant.language.escape\",\n regex: escapedRe\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n consumeLineEnd: true\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string\"\n }\n ]\n };\n if (!options || !options.noES6) {\n this.$rules.no_regex.unshift({\n regex: \"[{}]\", onMatch: function (val, state, stack) {\n this.next = val == \"{\" ? this.nextState : \"\";\n if (val == \"{\" && stack.length) {\n stack.unshift(\"start\", state);\n }\n else if (val == \"}\" && stack.length) {\n stack.shift();\n this.next = stack.shift();\n if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n return \"paren.quasi.end\";\n }\n return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n },\n nextState: \"start\"\n }, {\n token: \"string.quasi.start\",\n regex: /`/,\n push: [{\n token: \"constant.language.escape\",\n regex: escapedRe\n }, {\n token: \"paren.quasi.start\",\n regex: /\\${/,\n push: \"start\"\n }, {\n token: \"string.quasi.end\",\n regex: /`/,\n next: \"pop\"\n }, {\n defaultToken: \"string.quasi\"\n }]\n }, {\n token: [\"variable.parameter\", \"text\"],\n regex: \"(\" + identifierRe + \")(\\\\s*)(?=\\\\=>)\"\n }, {\n token: \"paren.lparen\",\n regex: \"(\\\\()(?=.+\\\\s*=>)\",\n next: \"function_arguments\"\n }, {\n token: \"variable.language\",\n regex: \"(?:(?:(?:Weak)?(?:Set|Map))|Promise)\\\\b\"\n });\n this.$rules[\"function_arguments\"].unshift({\n token: \"keyword.operator\",\n regex: \"=\",\n next: \"default_parameter\"\n }, {\n token: \"keyword.operator\",\n regex: \"\\\\.{3}\"\n });\n this.$rules[\"property\"].unshift({\n token: \"support.function\",\n regex: \"(findIndex|repeat|startsWith|endsWith|includes|isSafeInteger|trunc|cbrt|log2|log10|sign|then|catch|\"\n + \"finally|resolve|reject|race|any|all|allSettled|keys|entries|isInteger)\\\\b(?=\\\\()\"\n }, {\n token: \"constant.language\",\n regex: \"(?:MAX_SAFE_INTEGER|MIN_SAFE_INTEGER|EPSILON)\\\\b\"\n });\n if (!options || options.jsx != false)\n JSX.call(this);\n }\n this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"no_regex\")]);\n this.normalizeRules();\n};\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\nfunction JSX() {\n var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n var jsxTag = {\n onMatch: function (val, state, stack) {\n var offset = val.charAt(1) == \"/\" ? 2 : 1;\n if (offset == 1) {\n if (state != this.nextState)\n stack.unshift(this.next, this.nextState, 0);\n else\n stack.unshift(this.next);\n stack[2]++;\n }\n else if (offset == 2) {\n if (state == this.nextState) {\n stack[1]--;\n if (!stack[1] || stack[1] < 0) {\n stack.shift();\n stack.shift();\n }\n }\n }\n return [{\n type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n value: val.slice(0, offset)\n }, {\n type: \"meta.tag.tag-name.xml\",\n value: val.substr(offset)\n }];\n },\n regex: \"\",\n onMatch: function (value, currentState, stack) {\n if (currentState == stack[0])\n stack.shift();\n if (value.length == 2) {\n if (stack[0] == this.nextState)\n stack[1]--;\n if (!stack[1] || stack[1] < 0) {\n stack.splice(0, 2);\n }\n }\n this.next = stack[0] || \"start\";\n return [{ type: this.token, value: value }];\n },\n nextState: \"jsx\"\n },\n jsxJsRule,\n comments(\"jsxAttributes\"),\n {\n token: \"entity.other.attribute-name.xml\",\n regex: tagRegex\n }, {\n token: \"keyword.operator.attribute-equals.xml\",\n regex: \"=\"\n }, {\n token: \"text.tag-whitespace.xml\",\n regex: \"\\\\s+\"\n }, {\n token: \"string.attribute-value.xml\",\n regex: \"'\",\n stateName: \"jsx_attr_q\",\n push: [\n { token: \"string.attribute-value.xml\", regex: \"'\", next: \"pop\" },\n { include: \"reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }, {\n token: \"string.attribute-value.xml\",\n regex: '\"',\n stateName: \"jsx_attr_qq\",\n push: [\n { token: \"string.attribute-value.xml\", regex: '\"', next: \"pop\" },\n { include: \"reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n },\n jsxTag\n ];\n this.$rules.reference = [{\n token: \"constant.language.escape.reference.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }];\n}\nfunction comments(next) {\n return [\n {\n token: \"comment\",\n regex: /\\/\\*/,\n next: [\n DocCommentHighlightRules.getTagRule(),\n { token: \"comment\", regex: \"\\\\*\\\\/\", next: next || \"pop\" },\n { defaultToken: \"comment\", caseInsensitive: true }\n ]\n }, {\n token: \"comment\",\n regex: \"\\\\/\\\\/\",\n next: [\n DocCommentHighlightRules.getTagRule(),\n { token: \"comment\", regex: \"$|^\", next: next || \"pop\" },\n { defaultToken: \"comment\", caseInsensitive: true }\n ]\n }\n ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = JavaScriptHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CstyleBehaviour();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.$quotes = { '\"': '\"', \"'\": \"'\", \"`\": \"`\" };\n this.$pairQuotesAfter = {\n \"`\": /\\w/\n };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n var endState = tokenizedLine.state;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\" || state == \"no_regex\") {\n var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n else if (state == \"doc-start\") {\n if (endState == \"start\" || endState == \"no_regex\") {\n return \"\";\n }\n var match = line.match(/^\\s*(\\/?)\\*/);\n if (match) {\n if (match[1]) {\n indent += \" \";\n }\n indent += \"* \";\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"annotate\", function (results) {\n session.setAnnotations(results.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/javascript\";\n this.snippetFileId = \"ace/snippets/javascript\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/javascript\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/json_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JsonHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"variable\",\n regex: '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]\\\\s*(?=:)'\n }, {\n token: \"string\",\n regex: '\"',\n next: \"string\"\n }, {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token: \"constant.language.boolean\",\n regex: \"(?:true|false)\\\\b\"\n }, {\n token: \"text\",\n regex: \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token: \"comment\",\n regex: \"\\\\/\\\\/.*$\"\n }, {\n token: \"comment.start\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}]\"\n }, {\n token: \"punctuation.operator\",\n regex: /[,]/\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"string\": [\n {\n token: \"constant.language.escape\",\n regex: /\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[\"\\\\\\/bfnrt])/\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }\n ],\n \"comment\": [\n {\n token: \"comment.end\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ]\n };\n};\noop.inherits(JsonHighlightRules, TextHighlightRules);\nexports.JsonHighlightRules = JsonHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/json\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/json_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\",\"ace/worker/worker_client\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar HighlightRules = require(\"./json_highlight_rules\").JsonHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar Mode = function () {\n this.HighlightRules = HighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = this.$defaultBehaviour;\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/json_worker\", \"JsonWorker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"annotate\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/json\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/json\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar DocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n }, DocCommentHighlightRules.getTagRule(), {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ]\n };\n};\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\nDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/jsx_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JsxHighlightRules = function () {\n var keywords = lang.arrayToMap((\"break|do|instanceof|typeof|case|else|new|var|catch|finally|return|void|continue|for|switch|default|while|function|this|\" +\n \"if|throw|\" +\n \"delete|in|try|\" +\n \"class|extends|super|import|from|into|implements|interface|static|mixin|override|abstract|final|\" +\n \"number|int|string|boolean|variant|\" +\n \"log|assert\").split(\"|\"));\n var buildinConstants = lang.arrayToMap((\"null|true|false|NaN|Infinity|__FILE__|__LINE__|undefined\").split(\"|\"));\n var reserved = lang.arrayToMap((\"debugger|with|\" +\n \"const|export|\" +\n \"let|private|public|yield|protected|\" +\n \"extern|native|as|operator|__fake__|__readonly__\").split(\"|\"));\n var identifierRe = \"[a-zA-Z_][a-zA-Z0-9_]*\\\\b\";\n this.$rules = {\n \"start\": [\n {\n token: \"comment\",\n regex: \"\\\\/\\\\/.*$\"\n },\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n {\n token: \"comment\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"string.regexp\",\n regex: \"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"\n }, {\n token: \"string\",\n regex: '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n }, {\n token: \"string\",\n regex: \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token: \"constant.language.boolean\",\n regex: \"(?:true|false)\\\\b\"\n }, {\n token: [\n \"storage.type\",\n \"text\",\n \"entity.name.function\"\n ],\n regex: \"(function)(\\\\s+)(\" + identifierRe + \")\"\n }, {\n token: function (value) {\n if (value == \"this\")\n return \"variable.language\";\n else if (value == \"function\")\n return \"storage.type\";\n else if (keywords.hasOwnProperty(value) || reserved.hasOwnProperty(value))\n return \"keyword\";\n else if (buildinConstants.hasOwnProperty(value))\n return \"constant.language\";\n else if (/^_?[A-Z][a-zA-Z0-9_]*$/.test(value))\n return \"language.support.class\";\n else\n return \"identifier\";\n },\n regex: identifierRe\n }, {\n token: \"keyword.operator\",\n regex: \"!|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"\n }, {\n token: \"punctuation.operator\",\n regex: \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({<]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}>]\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"comment\": [\n {\n token: \"comment\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ]\n };\n this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"start\")]);\n};\noop.inherits(JsxHighlightRules, TextHighlightRules);\nexports.JsxHighlightRules = JsxHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/jsx\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/jsx_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JsxHighlightRules = require(\"./jsx_highlight_rules\").JsxHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nfunction Mode() {\n this.HighlightRules = JsxHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = this.$defaultBehaviour;\n this.foldingRules = new CStyleFoldMode();\n}\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.$id = \"ace/mode/jsx\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/jsx\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/python_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){/*\n * TODO: python delimiters\n */\n\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar PythonHighlightRules = function () {\n var keywords = (\"and|as|assert|break|class|continue|def|del|elif|else|except|exec|\" +\n \"finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|\" +\n \"raise|return|try|while|with|yield|async|await|nonlocal\");\n var builtinConstants = (\"True|False|None|NotImplemented|Ellipsis|__debug__\");\n var builtinFunctions = (\"abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|\" +\n \"eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|\" +\n \"binfile|bin|iter|property|tuple|bool|filter|len|range|type|bytearray|\" +\n \"float|list|raw_input|unichr|callable|format|locals|reduce|unicode|\" +\n \"chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|\" +\n \"cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|\" +\n \"__import__|complex|hash|min|apply|delattr|help|next|setattr|set|\" +\n \"buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern|\" +\n \"ascii|breakpoint|bytes\");\n var keywordMapper = this.createKeywordMapper({\n \"invalid.deprecated\": \"debugger\",\n \"support.function\": builtinFunctions,\n \"variable.language\": \"self|cls\",\n \"constant.language\": builtinConstants,\n \"keyword\": keywords\n }, \"identifier\");\n var strPre = \"[uU]?\";\n var strRawPre = \"[rR]\";\n var strFormatPre = \"[fF]\";\n var strRawFormatPre = \"(?:[rR][fF]|[fF][rR])\";\n var decimalInteger = \"(?:(?:[1-9]\\\\d*)|(?:0))\";\n var octInteger = \"(?:0[oO]?[0-7]+)\";\n var hexInteger = \"(?:0[xX][\\\\dA-Fa-f]+)\";\n var binInteger = \"(?:0[bB][01]+)\";\n var integer = \"(?:\" + decimalInteger + \"|\" + octInteger + \"|\" + hexInteger + \"|\" + binInteger + \")\";\n var exponent = \"(?:[eE][+-]?\\\\d+)\";\n var fraction = \"(?:\\\\.\\\\d+)\";\n var intPart = \"(?:\\\\d+)\";\n var pointFloat = \"(?:(?:\" + intPart + \"?\" + fraction + \")|(?:\" + intPart + \"\\\\.))\";\n var exponentFloat = \"(?:(?:\" + pointFloat + \"|\" + intPart + \")\" + exponent + \")\";\n var floatNumber = \"(?:\" + exponentFloat + \"|\" + pointFloat + \")\";\n var stringEscape = \"\\\\\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\\\\\abfnrtv'\\\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})\";\n this.$rules = {\n \"start\": [{\n token: \"comment\",\n regex: \"#.*$\"\n }, {\n token: \"string\",\n regex: strPre + '\"{3}',\n next: \"qqstring3\"\n }, {\n token: \"string\",\n regex: strPre + '\"(?=.)',\n next: \"qqstring\"\n }, {\n token: \"string\",\n regex: strPre + \"'{3}\",\n next: \"qstring3\"\n }, {\n token: \"string\",\n regex: strPre + \"'(?=.)\",\n next: \"qstring\"\n }, {\n token: \"string\",\n regex: strRawPre + '\"{3}',\n next: \"rawqqstring3\"\n }, {\n token: \"string\",\n regex: strRawPre + '\"(?=.)',\n next: \"rawqqstring\"\n }, {\n token: \"string\",\n regex: strRawPre + \"'{3}\",\n next: \"rawqstring3\"\n }, {\n token: \"string\",\n regex: strRawPre + \"'(?=.)\",\n next: \"rawqstring\"\n }, {\n token: \"string\",\n regex: strFormatPre + '\"{3}',\n next: \"fqqstring3\"\n }, {\n token: \"string\",\n regex: strFormatPre + '\"(?=.)',\n next: \"fqqstring\"\n }, {\n token: \"string\",\n regex: strFormatPre + \"'{3}\",\n next: \"fqstring3\"\n }, {\n token: \"string\",\n regex: strFormatPre + \"'(?=.)\",\n next: \"fqstring\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + '\"{3}',\n next: \"rfqqstring3\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + '\"(?=.)',\n next: \"rfqqstring\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + \"'{3}\",\n next: \"rfqstring3\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + \"'(?=.)\",\n next: \"rfqstring\"\n }, {\n token: \"keyword.operator\",\n regex: \"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|%|@|<<|>>|&|\\\\||\\\\^|~|<|>|<=|=>|==|!=|<>|=\"\n }, {\n token: \"punctuation\",\n regex: \",|:|;|\\\\->|\\\\+=|\\\\-=|\\\\*=|\\\\/=|\\\\/\\\\/=|%=|@=|&=|\\\\|=|^=|>>=|<<=|\\\\*\\\\*=\"\n }, {\n token: \"paren.lparen\",\n regex: \"[\\\\[\\\\(\\\\{]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\]\\\\)\\\\}]\"\n }, {\n token: [\"keyword\", \"text\", \"entity.name.function\"],\n regex: \"(def|class)(\\\\s+)([\\\\u00BF-\\\\u1FFF\\\\u2C00-\\\\uD7FF\\\\w]+)\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n include: \"constants\"\n }],\n \"qqstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"qstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"qqstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"qqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"qstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"qstring\"\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqqstring3\": [{\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqstring3\": [{\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqqstring\": [{\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"rawqqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqstring\": [{\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"rawqstring\"\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqqstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqqstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"fqqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqqstring3\": [{\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqstring3\": [{\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqqstring\": [{\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"rfqqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqstring\": [{\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqstringParRules\": [{\n token: \"paren.lparen\",\n regex: \"[\\\\[\\\\(]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\]\\\\)]\"\n }, {\n token: \"string\",\n regex: \"\\\\s+\"\n }, {\n token: \"string\",\n regex: \"'[^']*'\"\n }, {\n token: \"string\",\n regex: '\"[^\"]*\"'\n }, {\n token: \"function.support\",\n regex: \"(!s|!r|!a)\"\n }, {\n include: \"constants\"\n }, {\n token: 'paren.rparen',\n regex: \"}\",\n next: 'pop'\n }, {\n token: 'paren.lparen',\n regex: \"{\",\n push: \"fqstringParRules\"\n }],\n \"constants\": [{\n token: \"constant.numeric\",\n regex: \"(?:\" + floatNumber + \"|\\\\d+)[jJ]\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: floatNumber\n }, {\n token: \"constant.numeric\",\n regex: integer + \"[lL]\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: integer + \"\\\\b\"\n }, {\n token: [\"punctuation\", \"function.support\"],\n regex: \"(\\\\.)([a-zA-Z_]+)\\\\b\"\n }, {\n token: keywordMapper,\n regex: \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n }]\n };\n this.normalizeRules();\n};\noop.inherits(PythonHighlightRules, TextHighlightRules);\nexports.PythonHighlightRules = PythonHighlightRules;\n\n});\n\nace.define(\"ace/mode/folding/pythonic\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (markers) {\n this.foldingStartMarker = new RegExp(\"([\\\\[{])(?:\\\\s*)$|(\" + markers + \")(?:\\\\s*)(?:#.*)?$\");\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n var line = session.getLine(row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, match.index);\n if (match[2])\n return this.indentationBlock(session, row, match.index + match[2].length);\n return this.indentationBlock(session, row);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/python\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/python_highlight_rules\",\"ace/mode/folding/pythonic\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar PythonHighlightRules = require(\"./python_highlight_rules\").PythonHighlightRules;\nvar PythonFoldMode = require(\"./folding/pythonic\").FoldMode;\nvar Range = require(\"../range\").Range;\nvar Mode = function () {\n this.HighlightRules = PythonHighlightRules;\n this.foldingRules = new PythonFoldMode(\"\\\\:\");\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"#\";\n this.$pairQuotesAfter = {\n \"'\": /[ruf]/i,\n '\"': /[ruf]/i\n };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[:]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n };\n var outdents = {\n \"pass\": 1,\n \"return\": 1,\n \"raise\": 1,\n \"break\": 1,\n \"continue\": 1\n };\n this.checkOutdent = function (state, line, input) {\n if (input !== \"\\r\\n\" && input !== \"\\r\" && input !== \"\\n\")\n return false;\n var tokens = this.getTokenizer().getLineTokens(line.trim(), state).tokens;\n if (!tokens)\n return false;\n do {\n var last = tokens.pop();\n } while (last && (last.type == \"comment\" || (last.type == \"text\" && last.value.match(/^\\s+$/))));\n if (!last)\n return false;\n return (last.type == \"keyword\" && outdents[last.value]);\n };\n this.autoOutdent = function (state, doc, row) {\n row += 1;\n var indent = this.$getIndent(doc.getLine(row));\n var tab = doc.getTabString();\n if (indent.slice(-tab.length) == tab)\n doc.remove(new Range(row, indent.length - tab.length, row, indent.length));\n };\n this.$id = \"ace/mode/python\";\n this.snippetFileId = \"ace/snippets/python\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/python\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar XmlHighlightRules = function (normalize) {\n var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n this.$rules = {\n start: [\n { token: \"string.cdata.xml\", regex: \"<\\\\!\\\\[CDATA\\\\[\", next: \"cdata\" },\n {\n token: [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n regex: \"(<\\\\?)(\" + tagRegex + \")\", next: \"processing_instruction\"\n },\n { token: \"comment.start.xml\", regex: \"<\\\\!--\", next: \"comment\" },\n {\n token: [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n regex: \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next: \"doctype\", caseInsensitive: true\n },\n { include: \"tag\" },\n { token: \"text.end-tag-open.xml\", regex: \"\",\n next: \"start\"\n }],\n doctype: [\n { include: \"whitespace\" },\n { include: \"string\" },\n { token: \"xml-pe.doctype.xml\", regex: \">\", next: \"start\" },\n { token: \"xml-pe.xml\", regex: \"[-_a-zA-Z0-9:]+\" },\n { token: \"punctuation.int-subset\", regex: \"\\\\[\", push: \"int_subset\" }\n ],\n int_subset: [{\n token: \"text.xml\",\n regex: \"\\\\s+\"\n }, {\n token: \"punctuation.int-subset.xml\",\n regex: \"]\",\n next: \"pop\"\n }, {\n token: [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n regex: \"(<\\\\!)(\" + tagRegex + \")\",\n push: [{\n token: \"text\",\n regex: \"\\\\s+\"\n },\n {\n token: \"punctuation.markup-decl.xml\",\n regex: \">\",\n next: \"pop\"\n },\n { include: \"string\" }]\n }],\n cdata: [\n { token: \"string.cdata.xml\", regex: \"\\\\]\\\\]>\", next: \"start\" },\n { token: \"text.xml\", regex: \"\\\\s+\" },\n { token: \"text.xml\", regex: \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\" }\n ],\n comment: [\n { token: \"comment.end.xml\", regex: \"-->\", next: \"start\" },\n { defaultToken: \"comment.xml\" }\n ],\n reference: [{\n token: \"constant.language.escape.reference.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }],\n attr_reference: [{\n token: \"constant.language.escape.reference.attribute-value.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }],\n tag: [{\n token: [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n regex: \"(?:(<)|(\", next: \"start\" }\n ]\n }],\n tag_whitespace: [\n { token: \"text.tag-whitespace.xml\", regex: \"\\\\s+\" }\n ],\n whitespace: [\n { token: \"text.whitespace.xml\", regex: \"\\\\s+\" }\n ],\n string: [{\n token: \"string.xml\",\n regex: \"'\",\n push: [\n { token: \"string.xml\", regex: \"'\", next: \"pop\" },\n { defaultToken: \"string.xml\" }\n ]\n }, {\n token: \"string.xml\",\n regex: '\"',\n push: [\n { token: \"string.xml\", regex: '\"', next: \"pop\" },\n { defaultToken: \"string.xml\" }\n ]\n }],\n attributes: [{\n token: \"entity.other.attribute-name.xml\",\n regex: tagRegex\n }, {\n token: \"keyword.operator.attribute-equals.xml\",\n regex: \"=\"\n }, {\n include: \"tag_whitespace\"\n }, {\n include: \"attribute_value\"\n }],\n attribute_value: [{\n token: \"string.attribute-value.xml\",\n regex: \"'\",\n push: [\n { token: \"string.attribute-value.xml\", regex: \"'\", next: \"pop\" },\n { include: \"attr_reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }, {\n token: \"string.attribute-value.xml\",\n regex: '\"',\n push: [\n { token: \"string.attribute-value.xml\", regex: '\"', next: \"pop\" },\n { include: \"attr_reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }]\n };\n if (this.constructor === XmlHighlightRules)\n this.normalizeRules();\n};\n(function () {\n this.embedTagRules = function (HighlightRules, prefix, tag) {\n this.$rules.tag.unshift({\n token: [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n regex: \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n next: [\n { include: \"attributes\" },\n { token: \"meta.tag.punctuation.tag-close.xml\", regex: \"/?>\", next: prefix + \"start\" }\n ]\n });\n this.$rules[tag + \"-end\"] = [\n { include: \"attributes\" },\n { token: \"meta.tag.punctuation.tag-close.xml\", regex: \"/?>\", next: \"start\",\n onMatch: function (value, currentState, stack) {\n stack.splice(0);\n return this.token;\n } }\n ];\n this.embedRules(HighlightRules, prefix, [{\n token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n regex: \"(|$))\",\n next: tag + \"-end\"\n }, {\n token: \"string.cdata.xml\",\n regex: \"<\\\\!\\\\[CDATA\\\\[\"\n }, {\n token: \"string.cdata.xml\",\n regex: \"\\\\]\\\\]>\"\n }]);\n };\n}).call(TextHighlightRules.prototype);\noop.inherits(XmlHighlightRules, TextHighlightRules);\nexports.XmlHighlightRules = XmlHighlightRules;\n\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\nfunction is(token, type) {\n return token && token.type.lastIndexOf(type + \".xml\") > -1;\n}\nvar XmlBehaviour = function () {\n this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '\"' || text == \"'\") {\n var quote = text;\n var selected = session.doc.getTextRange(editor.getSelectionRange());\n if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n return {\n text: quote + selected + quote,\n selection: false\n };\n }\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n return {\n text: \"\",\n selection: [1, 1]\n };\n }\n if (!token)\n token = iterator.stepBackward();\n if (!token)\n return;\n while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n token = iterator.stepBackward();\n }\n var rightSpace = !rightChar || rightChar.match(/\\s/);\n if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n return {\n text: quote + quote,\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"string_dquotes\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '>') {\n var position = editor.getSelectionRange().start;\n var iterator = new TokenIterator(session, position.row, position.column);\n var token = iterator.getCurrentToken() || iterator.stepBackward();\n if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n return;\n if (is(token, \"reference.attribute-value\"))\n return;\n if (is(token, \"attribute-value\")) {\n var tokenEndColumn = iterator.getCurrentTokenColumn() + token.value.length;\n if (position.column < tokenEndColumn)\n return;\n if (position.column == tokenEndColumn) {\n var nextToken = iterator.stepForward();\n if (nextToken && is(nextToken, \"attribute-value\"))\n return;\n iterator.stepBackward();\n }\n }\n if (/^\\s*>/.test(session.getLine(position.row).slice(position.column)))\n return;\n while (!is(token, \"tag-name\")) {\n token = iterator.stepBackward();\n if (token.value == \"<\") {\n token = iterator.stepForward();\n break;\n }\n }\n var tokenRow = iterator.getCurrentTokenRow();\n var tokenColumn = iterator.getCurrentTokenColumn();\n if (is(iterator.stepBackward(), \"end-tag-open\"))\n return;\n var element = token.value;\n if (tokenRow == position.row)\n element = element.substring(0, position.column - tokenColumn);\n if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n return;\n return {\n text: \">\" + \"\",\n selection: [1, 1]\n };\n }\n });\n this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n if (text == \"\\n\") {\n var cursor = editor.getCursorPosition();\n var line = session.getLine(cursor.row);\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.type.indexOf(\"tag-close\") !== -1) {\n if (token.value == \"/>\")\n return;\n while (token && token.type.indexOf(\"tag-name\") === -1) {\n token = iterator.stepBackward();\n }\n if (!token) {\n return;\n }\n var tag = token.value;\n var row = iterator.getCurrentTokenRow();\n token = iterator.stepBackward();\n if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n return;\n }\n if (this.voidElements && !this.voidElements[tag]) {\n var nextToken = session.getTokenAt(cursor.row, cursor.column + 1);\n var line = session.getLine(row);\n var nextIndent = this.$getIndent(line);\n var indent = nextIndent + session.getTabString();\n if (nextToken && nextToken.value === \" -1;\n}\n(function () {\n this.getFoldWidget = function (session, foldStyle, row) {\n var tag = this._getFirstTagInLine(session, row);\n if (!tag)\n return this.getCommentFoldWidget(session, row);\n if (tag.closing || (!tag.tagName && tag.selfClosing))\n return foldStyle === \"markbeginend\" ? \"end\" : \"\";\n if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n return \"\";\n if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n return \"\";\n return \"start\";\n };\n this.getCommentFoldWidget = function (session, row) {\n if (/comment/.test(session.getState(row)) && /';\n break;\n }\n }\n return tag;\n }\n else if (is(token, \"tag-close\")) {\n tag.selfClosing = token.value == '/>';\n return tag;\n }\n tag.start.column += token.value.length;\n }\n return null;\n };\n this._findEndTagInLine = function (session, row, tagName, startColumn) {\n var tokens = session.getTokens(row);\n var column = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n column += token.value.length;\n if (column < startColumn)\n continue;\n if (is(token, \"end-tag-open\")) {\n token = tokens[i + 1];\n if (token && token.value == tagName)\n return true;\n }\n }\n return false;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n var tags = session.getMatchingTags({ row: row, column: 0 });\n if (tags) {\n return new Range(tags.openTag.end.row, tags.openTag.end.column, tags.closeTag.start.row, tags.closeTag.start.column);\n }\n else {\n return this.getCommentFoldWidget(session, row)\n && session.getCommentFoldRange(row, session.getLine(row).length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/xml_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/xml\",\"ace/worker/worker_client\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextMode = require(\"./text\").Mode;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\nvar XmlBehaviour = require(\"./behaviour/xml\").XmlBehaviour;\nvar XmlFoldMode = require(\"./folding/xml\").FoldMode;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar Mode = function () {\n this.HighlightRules = XmlHighlightRules;\n this.$behaviour = new XmlBehaviour();\n this.foldingRules = new XmlFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.voidElements = lang.arrayToMap([]);\n this.blockComment = { start: \"\" };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/xml_worker\", \"Worker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"error\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/xml\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/xml\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/theme/github-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \"/* CSS style content from github's default pygments highlighter template.\\n Cursor and selection styles from textmate.css. */\\n.ace-github .ace_gutter {\\n background: #e8e8e8;\\n color: #AAA;\\n}\\n\\n.ace-github {\\n background: #fff;\\n color: #000;\\n}\\n\\n.ace-github .ace_keyword {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_string {\\n color: #D14;\\n}\\n\\n.ace-github .ace_variable.ace_class {\\n color: teal;\\n}\\n\\n.ace-github .ace_constant.ace_numeric {\\n color: #099;\\n}\\n\\n.ace-github .ace_constant.ace_buildin {\\n color: #0086B3;\\n}\\n\\n.ace-github .ace_support.ace_function {\\n color: #0086B3;\\n}\\n\\n.ace-github .ace_comment {\\n color: #998;\\n font-style: italic;\\n}\\n\\n.ace-github .ace_variable.ace_language {\\n color: #0086B3;\\n}\\n\\n.ace-github .ace_paren {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_boolean {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_string.ace_regexp {\\n color: #009926;\\n font-weight: normal;\\n}\\n\\n.ace-github .ace_variable.ace_instance {\\n color: teal;\\n}\\n\\n.ace-github .ace_constant.ace_language {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_cursor {\\n color: black;\\n}\\n\\n.ace-github.ace_focus .ace_marker-layer .ace_active-line {\\n background: rgb(255, 255, 204);\\n}\\n.ace-github .ace_marker-layer .ace_active-line {\\n background: rgb(245, 245, 245);\\n}\\n\\n.ace-github .ace_marker-layer .ace_selection {\\n background: rgb(181, 213, 255);\\n}\\n\\n.ace-github.ace_multiselect .ace_selection.ace_start {\\n box-shadow: 0 0 3px 0px white;\\n}\\n/* bold keywords cause cursor issues for some fonts */\\n/* this disables bold style for editor and keeps for static highlighter */\\n.ace-github.ace_nobold .ace_line > span {\\n font-weight: normal !important;\\n}\\n\\n.ace-github .ace_marker-layer .ace_step {\\n background: rgb(252, 255, 0);\\n}\\n\\n.ace-github .ace_marker-layer .ace_stack {\\n background: rgb(164, 229, 101);\\n}\\n\\n.ace-github .ace_marker-layer .ace_bracket {\\n margin: -1px 0 0 -1px;\\n border: 1px solid rgb(192, 192, 192);\\n}\\n\\n.ace-github .ace_gutter-active-line {\\n background-color : rgba(0, 0, 0, 0.07);\\n}\\n\\n.ace-github .ace_marker-layer .ace_selected-word {\\n background: rgb(250, 250, 255);\\n border: 1px solid rgb(200, 200, 250);\\n}\\n\\n.ace-github .ace_invisible {\\n color: #BFBFBF\\n}\\n\\n.ace-github .ace_print-margin {\\n width: 1px;\\n background: #e8e8e8;\\n}\\n\\n.ace-github .ace_indent-guide {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\n}\\n\\n.ace-github .ace_indent-guide-active {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC\\\") right repeat-y;\\n}\\n\";\n\n});\n\nace.define(\"ace/theme/github\",[\"require\",\"exports\",\"module\",\"ace/theme/github-css\",\"ace/lib/dom\"], function(require, exports, module){exports.isDark = false;\nexports.cssClass = \"ace-github\";\nexports.cssText = require(\"./github-css\");\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass, false);\n\n}); (function() {\n ace.require([\"ace/theme/github\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","module.exports = require(\"react-dom\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"\";","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"prop-types\");","import { createContext } from 'react';\n\nconst AccordionContext = createContext();\n\nexport default AccordionContext;\n","import { createContext } from 'react';\n\nconst AccordionItemContext = createContext();\n\nexport default AccordionItemContext;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Icon({\n className,\n family,\n type,\n weight,\n ...rest\n}) {\n function getCSSClasses() {\n const fontFamily = family || 'fa';\n const fontWeight = fontFamily === 'fa' ? `fa-${weight || 'regular'}` : '';\n\n return [\n 'tyk-icon',\n fontFamily !== 'fa' && fontFamily,\n `${fontFamily}-${type}`,\n fontWeight,\n className,\n ].filter(Boolean).join(' ');\n }\n\n return ;\n}\n\nIcon.propTypes = {\n // Additional CSS classes to apply\n className: PropTypes.string,\n // Font family to use. Default is 'fa'.\n family: PropTypes.string,\n // Icon type to use\n type: PropTypes.string.isRequired,\n // Icon weight to use. Only applicable for Font Awesome icons. Default is 'regular'. Also supports 'light' and 'solid'\n weight: PropTypes.string\n};\n\nexport default Icon;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport AccordionItemContext from './AccordionItemContext';\n\nfunction ItemTrigger({ wrap }) {\n const { collapsed, disabled, toggleChange } = useContext(AccordionItemContext);\n\n const iconType = collapsed ? 'chevron-down' : 'chevron-up';\n const classes = [\n 'tyk-accordion__trigger',\n disabled && 'tyk-accordion__trigger--disabled',\n ].filter(Boolean).join(' ');\n const trigger = (\n \n \n \n );\n\n return wrap\n ?
    {trigger}
    \n : trigger;\n}\n\nItemTrigger.propTypes = {\n wrap: PropTypes.bool,\n};\n\nexport default ItemTrigger;\n","import React, {\n useMemo, useState, useContext, forwardRef,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport AccordionContext from './AccordionContext';\nimport AccordionItemContext from './AccordionItemContext';\nimport ItemTrigger from './AccordionItemTrigger';\n\nfunction AccordionItem({\n collapsed: collapsedProp,\n children,\n className,\n disabled,\n}, ref) {\n const { arrow } = useContext(AccordionContext);\n const [collapsed, setCollapsed] = useState(collapsedProp);\n\n const toggleChange = () => {\n if (disabled) {\n return;\n }\n\n setCollapsed(!collapsed);\n };\n\n const classes = useMemo(() => [\n 'tyk-accordion__item',\n arrow.expandToContent\n ? `tyk-accordion__item--trigger-position-${arrow.position}`\n : 'tyk-accordion__item--trigger-in-header',\n className,\n collapsed === false && 'tyk-accordion__item--active',\n ].filter(Boolean).join(' '), [arrow, className, collapsed]);\n\n const contextValue = useMemo(() => ({\n collapsed,\n disabled,\n toggleChange,\n }), [collapsed, disabled, toggleChange]);\n\n return (\n
    \n \n {arrow.expandToContent && (\n \n )}\n {children}\n \n
    \n );\n}\n\nAccordionItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n collapsed: PropTypes.bool,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n};\n\nAccordionItem.defaultProps = {\n collapsed: false,\n};\n\nexport default forwardRef(AccordionItem);\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport AccordionContext from './AccordionContext';\nimport AccordionItemContext from './AccordionItemContext';\nimport ItemTrigger from './AccordionItemTrigger';\n\nfunction AccordionItemHeader({ className, children }) {\n const { collapsed, disabled, toggleChange } = useContext(AccordionItemContext);\n const { usearrowastrigger, arrow } = useContext(AccordionContext);\n const iconType = collapsed ? 'chevron-down' : 'chevron-up';\n const classes = [\n 'tyk-accordion__item-header',\n usearrowastrigger && 'tyk-accordion__arrow-trigger',\n className,\n ].filter(Boolean).join(' ');\n\n return (\n
    \n {\n !usearrowastrigger\n ? (\n \n {children}\n \n \n )\n : (\n <>\n {!arrow.expandToContent && arrow.position === 'left' && (\n \n )}\n
    {children}
    \n {!arrow.expandToContent && arrow.position === 'right' && (\n \n )}\n \n )\n }\n
    \n );\n}\n\nAccordionItemHeader.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n};\n\nexport default AccordionItemHeader;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-transition-group\");","import { useCallback, useState, useLayoutEffect } from 'react';\n\nconst getSize = (el) => {\n if (!el) {\n return {\n width: 0,\n height: 0,\n };\n }\n\n return {\n width: el.offsetWidth,\n height: el.offsetHeight,\n };\n};\n\nconst useComponentSize = (ref) => {\n const [componentSize, setComponentSize] = useState(getSize(ref ? ref.current : {}));\n const handleResize = useCallback(() => {\n if (ref.current) {\n setComponentSize(getSize(ref.current));\n }\n }, [ref]);\n\n useLayoutEffect(() => {\n handleResize();\n\n let resizeObserver = new ResizeObserver(() => {\n handleResize();\n });\n resizeObserver.observe(ref.current);\n\n return () => {\n resizeObserver.disconnect(ref.current);\n resizeObserver = null;\n };\n }, [ref.current]);\n\n return componentSize;\n};\n\n/** @component */\nexport default useComponentSize;\n","import { useEffect, useRef } from 'react';\n\nconst useEventListener = (eventName, handler, element) => {\n const savedHandler = useRef();\n useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(() => {\n const isSupported = element?.addEventListener;\n if (!isSupported) {\n // eslint-disable-next-line consistent-return\n return;\n }\n\n const eventListener = (event) => savedHandler.current(event);\n element.addEventListener(eventName, eventListener);\n\n // eslint-disable-next-line consistent-return\n return () => {\n element.removeEventListener(eventName, eventListener);\n };\n }, [eventName, element]);\n};\n\n/** @component */\nexport default useEventListener;\n","import React, {\n useRef, useState, useCallback, useEffect,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { CSSTransition } from 'react-transition-group';\nimport { useEventListener, useComponentSize } from '../../hooks';\n\n/**\n * Collapsible is a component that helps you to collapse/expand any type of content\n */\nfunction Collapsible({\n className,\n collapsed,\n children,\n ...rest\n}) {\n const contentContainer = useRef(null);\n const collapseWrapper = useRef(null);\n const refContainerSize = useComponentSize(contentContainer);\n const [contentContainerStyle, setContentContainerStyle] = useState({\n // eslint-disable-next-line\n height: (collapsed) ? 0 : 'auto',\n });\n\n const setHeight = (height) => {\n setContentContainerStyle({\n height: `${height}px`,\n });\n };\n\n const getHeight = () => (contentContainer.current ? contentContainer.current.clientHeight : 0);\n\n const onEnter = () => {\n setHeight(getHeight());\n };\n\n const onExit = () => {\n setHeight(0);\n };\n\n useEffect(() => {\n if (!collapsed\n && refContainerSize?.height\n && contentContainerStyle.height !== refContainerSize?.height\n ) {\n setHeight(refContainerSize.height);\n }\n }, [refContainerSize.height]);\n\n const onWindowResize = useCallback(() => {\n if (!collapsed && contentContainer.current) {\n setHeight(getHeight());\n collapseWrapper.current.style.height = `${getHeight()}px`;\n }\n }, [collapsed, contentContainer.current]);\n\n useEventListener('resize', onWindowResize, window);\n\n return (\n \n \n \n { children }\n \n \n \n );\n}\n\nCollapsible.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** Describes if the content of Collapsible should be hidden or not */\n collapsed: PropTypes.bool,\n /** CSS classes that can be passed to the Collapsible element */\n className: PropTypes.string,\n};\n\nexport default Collapsible;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Collapsible from '../../Collapsible';\nimport AccordionItemContext from './AccordionItemContext';\n\nfunction AccordionItemContent({ children, className }) {\n const { collapsed } = useContext(AccordionItemContext);\n\n const classes = [\n 'tyk-accordion__item-content',\n className,\n ].filter(Boolean).join(' ');\n\n return (\n
    \n \n { children }\n \n
    \n );\n}\n\nAccordionItemContent.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n};\n\nexport default AccordionItemContent;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport AccordionItem from './js/AccordionItem';\nimport AccordionItemHeader from './js/AccordionItemHeader';\nimport AccordionItemContent from './js/AccordionItemContent';\nimport AccordionContext from './js/AccordionContext';\n\nfunction Accordion({\n className,\n children,\n usearrowastrigger,\n arrow = { position: 'right', expandToContent: false },\n}) {\n const classes = [\n 'tyk-accordion',\n className,\n ].filter(Boolean).join(' ');\n\n const contextValue = useMemo(() => ({\n usearrowastrigger,\n arrow,\n }), [usearrowastrigger, arrow]);\n\n return (\n
    \n \n {children}\n \n
    \n );\n}\n\nAccordion.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n usearrowastrigger: PropTypes.bool,\n arrow: PropTypes.shape({\n position: PropTypes.oneOf(['left', 'right']),\n expandToContent: PropTypes.bool,\n }),\n};\n\nAccordion.defaultProps = {\n usearrowastrigger: false,\n};\n\n// For Readme.md : Start\nAccordion.Item = AccordionItem;\nAccordion.Item.Header = AccordionItemHeader;\nAccordion.Item.Content = AccordionItemContent;\n// For Readme.md : End\n\nexport default Accordion;\n","import React, { cloneElement, forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../Icon';\n\n/**\n * Button component.\n */\nfunction Button(props, ref) {\n const {\n customButton,\n children,\n iconType,\n iconFamily,\n iconPosition,\n iconOnly,\n id,\n className,\n disabled,\n display,\n href,\n onClick,\n noStyle,\n size,\n theme,\n type,\n ...rest\n } = props;\n\n const getCssClasses = () => {\n const cssClasses = ['tyk-button'].concat(className ? className.split(' ') : []);\n const sizeClass = (size) ? `tyk-button--${size}` : 'tyk-button--md';\n const disabledClass = (disabled) ? 'disabled' : '';\n const displayClass = display || '';\n const themeClass = theme ? `tyk-button--${theme}` : '';\n const iconOnlyClass = iconOnly ? 'tyk-button--icon-only' : '';\n const noStyleClass = noStyle ? 'tyk-button--no-style' : '';\n\n cssClasses.push(iconOnlyClass);\n cssClasses.push(themeClass);\n cssClasses.push(sizeClass);\n cssClasses.push(disabledClass);\n cssClasses.push(displayClass);\n cssClasses.push(noStyleClass);\n\n if (iconType) {\n cssClasses.push(`icon-${iconPosition || 'left'}`);\n }\n\n return cssClasses.join(' ');\n };\n\n const getButtonIcon = (position) => {\n const iPos = iconPosition || 'left';\n\n return (\n (iconType && iPos === position)\n ? \n : null\n );\n };\n\n const getButtonType = () => {\n let buttonType;\n\n if (customButton) {\n return (\n <>\n { cloneElement(customButton, {\n className: getCssClasses(),\n disabled,\n })}\n \n );\n }\n\n if (href) {\n buttonType = (\n \n { getButtonIcon('left') }\n { children }\n { getButtonIcon('right') }\n \n );\n } else {\n buttonType = (\n // eslint-disable-next-line react/button-has-type\n \n { getButtonIcon('left') }\n { children && {children} }\n { getButtonIcon('right') }\n \n );\n }\n\n return buttonType;\n };\n\n return (\n getButtonType()\n );\n}\n\nButton.propTypes = {\n /**\n * Content of a button. Can be a DOM element or a React component\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n customButton: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n ]),\n className: PropTypes.string,\n /**\n * Display type: inline/block. Default is inline\n */\n display: PropTypes.string,\n /**\n * Sets the button disabled state\n */\n disabled: PropTypes.bool,\n /**\n * Having this property set the button will become a link\n */\n id: PropTypes.string,\n href: PropTypes.string,\n iconPosition: PropTypes.string, // left or right\n iconFamily: PropTypes.string,\n iconOnly: PropTypes.bool,\n iconType: PropTypes.string,\n noStyle: PropTypes.bool,\n /**\n * Callback function, called when the button si clicked\n */\n onClick: PropTypes.func,\n /**\n * Describes the appearence of the button (ex: primary, danger, primary-outline etc.)\n */\n theme: PropTypes.string,\n /**\n * Type of the button (ex: button, submit etc.)\n */\n type: PropTypes.string,\n /**\n * Describes the size of the button (sm, md, lg). Default one is md\n */\n size: PropTypes.string,\n};\n\nButton.defaultProps = {\n theme: '',\n type: 'button',\n};\n\nexport default forwardRef(Button);\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ButtonGroup({ className, children, label }, ref) {\n return (\n
    \n {Boolean(label) && }\n
    {children}
    \n
    \n );\n}\n\nButtonGroup.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n};\n\nexport default forwardRef(ButtonGroup);\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardHeader({\n right = null,\n children,\n}) {\n return (\n
    \n {children &&
    {children}
    }\n {right &&
    {right}
    }\n
    \n );\n}\n\nCardHeader.propTypes = {\n right: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardBody({\n align = 'top',\n children,\n}) {\n return (\n
    \n
    \n {children}\n
    \n
    \n );\n}\n\nCardBody.propTypes = {\n align: PropTypes.oneOf(['top', 'center', 'bottom']),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardBody;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardFooter({ children }) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardFooter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitle({\n maxLines = 1, // accepted values: 1, 2\n children,\n}) {\n return (\n

    \n {children}\n

    \n );\n}\n\nCardTitle.propTypes = {\n maxLines: PropTypes.number,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitle;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitleGroup({\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardTitleGroup.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitleGroup;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardSubTitle({\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardSubTitle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardSubTitle;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardSummary({\n maxLines = 2, // accepted values: 1, 2, 3, 4, 5\n children,\n}) {\n return (\n

    \n {children}\n

    \n );\n}\n\nCardSummary.propTypes = {\n maxLines: PropTypes.number,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardSummary;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitleIcon({\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardTitleIcon.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitleIcon;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport CardHeader from './CardHeader';\nimport CardBody from './CardBody';\nimport CardFooter from './CardFooter';\nimport CardTitle from './CardTitle';\nimport CardTitleGroup from './CardTitleGroup';\nimport CardSubTitle from './CardSubTitle';\nimport CardSummary from './CardSummary';\nimport CardTitleIcon from './CardTitleIcon';\n\nfunction Card({\n className = '',\n height = 'auto',\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCard.propTypes = {\n className: PropTypes.string,\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nCard.Header = CardHeader;\nCard.Body = CardBody;\nCard.Footer = CardFooter;\nCard.Title = CardTitle;\nCard.TitleGroup = CardTitleGroup;\nCard.Icon = CardTitleIcon;\nCard.SubTitle = CardSubTitle;\nCard.Summary = CardSummary;\n\nexport default Card;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"echarts\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"immutable\");","export default (func, wait, immediate) => {\n let timeout;\n return function debouncer(...args) {\n const context = this;\n const later = () => {\n timeout = null;\n if (!immediate) {\n func.apply(context, args);\n }\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) {\n func.apply(context, args);\n }\n };\n};\n","import { useEffect, useRef } from 'react';\n\nconst usePrevious = (value) => {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n};\n\n/** @component */\nexport default usePrevious;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Loader({ className, position = 'relative', withbackground = false }) {\n const classes = [\n 'loading',\n position,\n className,\n ].filter(Boolean).join(' ');\n\n const loader = (\n
    \n
    \n
    \n
    \n
    \n
    \n );\n\n return withbackground\n ?
    {loader}
    \n : loader;\n}\n\nLoader.propTypes = {\n /** add a class to loader */\n className: PropTypes.string,\n /** position of loader (absolute / relative) */\n position: PropTypes.string,\n /** defines weather loader should be renders with or without background */\n withbackground: PropTypes.bool,\n};\n\nexport default Loader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../Icon';\n\n/**\n * The Message component is used to highlight important content to the users.\n *\n * If the content you are displaying needs immediate attention or is a feedback,\n * consider using `toast` instead\n */\nfunction Message({\n children, theme, onClose, noMargin, className,\n}) {\n function getCssClasses() {\n return [\n 'tyk-message',\n `tyk-message--${theme || 'info'}`,\n noMargin && 'no-margin',\n className,\n ].filter(Boolean).join(' ');\n }\n\n const iconType = theme === 'success' ? 'check' : 'exclamation';\n\n return (\n
    \n \n
    \n { children }\n
    \n {onClose && (\n \n )}\n
    \n );\n}\n\nMessage.propTypes = {\n /** Set theme for message (eg. default, success, danger, etc) */\n theme: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** add a class to loader */\n className: PropTypes.string,\n /** Removes margins by adding `no-margin` class */\n noMargin: PropTypes.bool,\n /** Callback for clicking on the \"x\" */\n onClose: PropTypes.func,\n};\n\nexport default Message;\n","import React, {\n useState, useEffect, useMemo, useRef, memo,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport * as echarts from 'echarts';\nimport { fromJS } from 'immutable';\n\nimport debounce from '../../utils/debounce';\nimport { usePrevious } from '../../hooks';\nimport Loader from '../Loader';\nimport Message from '../Message';\nimport worldMap from './maps/world.json';\n\necharts.registerMap('world', worldMap);\n\nfunction Chart({\n areaStyleColors,\n dataLoaded,\n hasData,\n highlight,\n type,\n option,\n series,\n onChange,\n zoomStart,\n zoomEnd,\n title,\n seriesConfig = [],\n noDataComponent: noDataComponentProp = null,\n zoomColors,\n style,\n}) {\n const [tykChartInstance, setTykChartInstance] = useState(null);\n const chartWrapperRef = useRef(null);\n const onResize = () => {\n if (tykChartInstance) {\n tykChartInstance.resize();\n }\n };\n\n const noDataComponent = useMemo(\n () => (noDataComponentProp\n ? noDataComponentProp()\n : (\n \n No data to display\n \n )),\n [noDataComponentProp],\n );\n\n const lineBarChart = {\n defaultOpts: fromJS({\n title: {\n show: true,\n text: title,\n left: 0,\n },\n color: [],\n toolbox: {\n right: '0',\n orient: 'horizontal',\n itemSize: 15,\n showTitle: true,\n feature: null,\n },\n dataZoom: [{\n show: true,\n start: 0,\n end: 100,\n orient: 'horizontal',\n dataBackground: {\n lineStyle: {\n color: zoomColors?.lineStyle || '#368493',\n },\n areaStyle: {\n color: zoomColors?.areaStyle || '#368493',\n },\n },\n handleStyle: {\n color: zoomColors?.handleStyle || '#368493',\n },\n textStyle: {\n color: zoomColors?.textStyle || '#368493',\n },\n borderColor: 'transparent',\n fillerColor: zoomColors?.fillerColor || 'rgba(54, 132, 147, 0.1)',\n }],\n legend: {\n show: false,\n // data: [],\n // right: '1%',\n },\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'cross',\n },\n },\n grid: {\n left: '1%',\n right: '1%',\n bottom: '50px',\n top: '40px',\n containLabel: true,\n },\n xAxis: {\n boundaryGap: false,\n type: 'category',\n splitLine: {\n show: true,\n lineStyle: {\n type: 'dotted',\n color: '#F0F0F0',\n },\n },\n axisLine: {\n show: false,\n },\n axisTick: {\n show: false,\n },\n data: [],\n },\n yAxis: {\n min: 'dataMin',\n boundaryGap: true,\n axisPointer: {\n show: true,\n },\n splitLine: {\n lineStyle: {\n type: 'dotted',\n color: '#F0F0F0',\n },\n show: true,\n },\n axisLabel: {\n show: true,\n },\n axisLine: {\n show: true,\n },\n axisTick: {\n show: false,\n },\n type: 'value',\n },\n textStyle: {\n color: '#5a5a68',\n },\n series: [],\n animationEasing: 'elasticOut',\n }),\n seriesDefault: fromJS({\n data: [],\n type: 'line',\n areaStyle: {\n opacity: 1,\n color: areaStyleColors\n ? new echarts.graphic.LinearGradient(\n 0,\n 0,\n 1,\n 1,\n areaStyleColors.map((color, index) => ({\n offset: index,\n color,\n })),\n )\n : [],\n },\n smooth: false,\n symbolSize: 7,\n name: '',\n }),\n };\n\n const pieChart = {\n defaultOpts: fromJS({\n tooltip: {\n trigger: 'axis',\n formatter: '{b}: {c} ({d}%)',\n },\n legend: {\n orient: 'horizontal',\n x: 'left',\n y: 'top',\n data: [],\n },\n color: [],\n series: [],\n }),\n seriesDefault: fromJS({\n type: 'pie',\n center: [\n '50%',\n '55%',\n ],\n radius: [\n '50%',\n '75%',\n ],\n avoidLabelOverlap: false,\n animationType: 'scale',\n animationEasing: 'elasticOut',\n labelLine: {\n normal: {\n show: true,\n smooth: 0.2,\n length: 6,\n length2: 6,\n },\n },\n data: [],\n }),\n };\n\n const geoChart = {\n defaultOpts: fromJS({\n series: [],\n }),\n seriesDefault: fromJS({\n type: 'map',\n data: [],\n }),\n };\n\n const buildChartOptions = (selectedType, selectedOptions, selectedSeries) => {\n let finalOpts = {};\n switch (selectedType) {\n case 'pie': {\n finalOpts = pieChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n\n selectedSeries.forEach((entry) => {\n finalOpts.series.push(pieChart.seriesDefault.mergeDeep(fromJS(entry)).toJS());\n });\n\n break;\n }\n\n case 'geo': {\n finalOpts = geoChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n\n selectedSeries.forEach((entry) => {\n finalOpts.series.push(geoChart.seriesDefault.mergeDeep(fromJS(entry)).toJS());\n });\n\n break;\n }\n\n default: {\n finalOpts = lineBarChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n if (Array.isArray(selectedOptions.yAxis)) {\n finalOpts.yAxis = selectedOptions.yAxis;\n }\n\n selectedSeries.forEach((entry, index) => {\n const seriesData = {\n ...lineBarChart.seriesDefault.toJS(),\n ...seriesConfig[index],\n ...entry,\n };\n finalOpts.series.push(seriesData);\n });\n break;\n }\n }\n return finalOpts;\n };\n\n useEffect(() => {\n window.addEventListener('resize', onResize);\n\n return () => {\n window.removeEventListener('resize', onResize);\n };\n }, [tykChartInstance]);\n\n useEffect(() => {\n if (!chartWrapperRef?.current) return;\n\n setTykChartInstance(echarts.init(chartWrapperRef.current));\n\n // eslint-disable-next-line consistent-return\n return () => {\n if (tykChartInstance) {\n tykChartInstance.dispose();\n }\n };\n }, [chartWrapperRef.current]);\n\n const eventCallBack = (e) => {\n if (onChange) {\n onChange(e);\n }\n };\n\n useEffect(() => {\n let debouncedMethod;\n if (tykChartInstance) {\n debouncedMethod = debounce(eventCallBack, 500);\n tykChartInstance.on('dataZoom', debouncedMethod);\n tykChartInstance.on('restore', debouncedMethod);\n tykChartInstance.on('click', debouncedMethod);\n\n tykChartInstance.on('mousemove', (params) => {\n if (params.data) {\n tykChartInstance.getZr().setCursorStyle('pointer');\n }\n });\n }\n\n return () => {\n if (tykChartInstance) {\n tykChartInstance.off('dataZoom', debouncedMethod);\n tykChartInstance.off('restore', debouncedMethod);\n tykChartInstance.off('click', debouncedMethod);\n }\n };\n }, [tykChartInstance, onChange]);\n\n const prevInstance = usePrevious(tykChartInstance);\n const prevOption = usePrevious(option);\n const prevType = usePrevious(type);\n const prevSeries = usePrevious(series);\n useEffect(() => {\n if (\n tykChartInstance\n && (\n !fromJS(prevInstance)?.equals?.(fromJS(tykChartInstance))\n || !fromJS(prevOption)?.equals?.(fromJS(option))\n || (prevType !== type)\n || !fromJS(prevSeries).equals?.(fromJS(series))\n )\n ) {\n tykChartInstance.clear();\n tykChartInstance.setOption(buildChartOptions(type, option, series));\n tykChartInstance.dispatchAction({\n type: 'takeGlobalCursor',\n key: 'dataZoomSelect',\n dataZoomSelectActive: true,\n });\n }\n }, [tykChartInstance, option, series, type]);\n\n useEffect(() => {\n if (tykChartInstance && highlight) {\n tykChartInstance.dispatchAction({\n type: 'highlight',\n seriesIndex: highlight.seriesIndex,\n dataIndex: highlight.dataIndex,\n });\n tykChartInstance.dispatchAction({\n type: 'showTip',\n seriesIndex: highlight.seriesIndex,\n dataIndex: highlight.dataIndex,\n });\n }\n }, [highlight]);\n\n const prevZoomStart = usePrevious(zoomStart);\n const prevZoomEnd = usePrevious(zoomEnd);\n useEffect(() => {\n if (\n tykChartInstance\n && zoomStart !== -1\n && zoomEnd !== -1\n && (\n prevZoomStart !== zoomStart\n || prevZoomEnd !== zoomEnd\n )\n ) {\n tykChartInstance.dispatchAction({\n type: 'dataZoom',\n startValue: zoomStart,\n endValue: zoomEnd,\n });\n }\n }, [zoomStart, zoomEnd]);\n\n const getStyle = () => {\n const tempStyle = style || {};\n\n if (!tempStyle.height) {\n tempStyle.height = '300px';\n }\n if (!tempStyle.width) {\n tempStyle.width = '100%';\n }\n return tempStyle;\n };\n\n const chartHasData = () => (\n (dataLoaded && (hasData === false || hasData === true)) ? hasData : true\n );\n\n const getCssClasses = () => {\n const cssClasses = ['tyk-chart'];\n\n if (!dataLoaded) {\n cssClasses.push('tyk-chart--loading-chart');\n }\n\n if (!chartHasData()) {\n cssClasses.push('tyk-chart--no-data');\n }\n\n return cssClasses.join(' ');\n };\n\n return (\n
    \n {\n !dataLoaded\n ? \n : null\n }\n \n {\n chartHasData()\n ? null\n : noDataComponent\n }\n
    \n );\n}\n\nChart.propTypes = {\n areaStyleColors: PropTypes.instanceOf(Array),\n dataLoaded: PropTypes.bool,\n hasData: PropTypes.bool,\n highlight: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n PropTypes.instanceOf(Array),\n ]),\n noDataComponent: PropTypes.func,\n zoomStart: PropTypes.number,\n zoomEnd: PropTypes.number,\n zoomColors: PropTypes.instanceOf(Object),\n option: PropTypes.instanceOf(Object),\n onChange: PropTypes.func,\n style: PropTypes.instanceOf(Object),\n type: PropTypes.string,\n title: PropTypes.string,\n series: PropTypes.instanceOf(Array),\n seriesConfig: PropTypes.instanceOf(Object),\n};\n\nexport default memo(Chart);\n","import { useEffect, useRef } from 'react';\n\nconst useTimeout = (callback, delay) => {\n const savedCallback = useRef();\n\n useEffect(\n () => {\n savedCallback.current = callback;\n },\n [callback],\n );\n\n useEffect(\n () => {\n function tick() {\n savedCallback.current();\n }\n if (delay !== null) {\n const id = setTimeout(tick, delay);\n return () => clearTimeout(id);\n }\n\n return () => {};\n },\n [delay],\n );\n};\n\n/** @component */\nexport default useTimeout;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../../Message';\nimport { useTimeout } from '../../../hooks';\n\nfunction ToastMessage(props) {\n const {\n children,\n options,\n onClose,\n index,\n } = props;\n const opts = {\n theme: 'success',\n delay: 3000,\n ...options,\n };\n let timer;\n\n const handleClose = (itemIndex) => {\n onClose(itemIndex);\n clearTimeout(timer);\n };\n\n useTimeout(() => handleClose(index), opts.delay);\n\n return (\n handleClose(index)}\n >\n {children}\n \n );\n}\n\nToastMessage.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n options: PropTypes.instanceOf(Object),\n onClose: PropTypes.func,\n index: PropTypes.number,\n};\n\nexport default ToastMessage;\n","import React, {\n useEffect, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToastMessage from './ToastMessage';\n\nfunction ToastContainer(props) {\n const [messages, setMessages] = useState({});\n const {\n notify,\n } = props;\n\n const updateNotifications = (message, options) => {\n const msgID = Math.floor(Math.random() * 1000000);\n\n setMessages((prevMessages) => ({\n ...prevMessages,\n [msgID]: {\n message,\n options,\n },\n }));\n };\n\n useEffect(() => {\n notify(updateNotifications);\n }, [messages]);\n\n const onMessageClosed = (index) => {\n const tempMessages = { ...messages };\n delete tempMessages[index];\n setMessages((prevMessages) => {\n const newMessages = { ...prevMessages };\n delete newMessages[index];\n return newMessages;\n });\n };\n\n return (\n
    \n {\n Object.keys(messages).map((msgID) => (\n messages[msgID]\n ? (\n \n {messages[msgID].message}\n \n )\n : null\n ))\n }\n
    \n );\n}\n\nToastContainer.propTypes = {\n notify: PropTypes.func,\n};\n\nexport default ToastContainer;\n","import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport ToastContainer from './js/ToastContainer';\n\n/**\n * Toast is a service that displays dialogs\n * on the bottom right part of the screen.\n *\n * The dialogs can have one of the Tyk UI themes, so that\n * it would match it's purpose (i.e success message, error message)\n *\n */\nclass ToastCreator {\n constructor() {\n const el = document.createElement('div');\n el.className = 'tyk-toast';\n document.body.appendChild(el);\n const root = createRoot(el);\n root.render();\n }\n\n bindNotify = (fn) => {\n this.createNotification = fn;\n };\n\n notify(message, options) {\n if (this.createNotification) {\n this.createNotification(message, options);\n }\n }\n\n danger(message, options) {\n this.notify(message, { ...options, theme: 'danger' });\n }\n\n success(message, options) {\n this.notify(message, { ...options, theme: 'success' });\n }\n\n warning(message, options) {\n this.notify(message, { ...options, theme: 'warning' });\n }\n\n info(message, options) {\n this.notify(message, { ...options, theme: 'info' });\n }\n}\n\nconst toast = new ToastCreator();\n\nexport default toast;\n","import React, { createRef, useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport toast from '../Toast';\n\n/**\n * - CopyToClipboard is used to copy string for a user.\n * - Can be used normally with a text or a custom components (Eg. Button, Icon, etc)\n */\n\nfunction CopyToClipboard(props) {\n const {\n display, copy, children, onCopy, message = 'copied',\n } = props;\n const txtRef = createRef();\n const handleClick = useCallback(() => {\n if (onCopy) {\n onCopy();\n }\n\n if (!window.navigator.clipboard) {\n txtRef.current.select();\n document.execCommand('copy');\n toast.success(message);\n return;\n }\n window.navigator.clipboard.writeText(copy);\n toast.success(message);\n }, [onCopy, txtRef]);\n\n return (\n <>\n \n {children || display}\n \n {!window.navigator.clipboard ? (\n \n ) : null}\n \n );\n}\n\nCopyToClipboard.propTypes = {\n /** Message to be displayed after text is copied */\n message: PropTypes.string,\n /** Callback function executed after text is copied */\n onCopy: PropTypes.func,\n /** Text to be copied */\n copy: PropTypes.string.isRequired,\n /** Text to be displayed */\n display: PropTypes.string,\n /** Children of custom element if you are using any custom element */\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n ]),\n};\n\nexport default CopyToClipboard;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ModalFooter({ children }) {\n return (\n
    \n { children }\n
    \n );\n}\n\nModalFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default ModalFooter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ModalBody({ children }) {\n return (\n
    \n { children }\n
    \n );\n}\n\nModalBody.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default ModalBody;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { CSSTransition } from 'react-transition-group';\n\nimport Icon from '../Icon';\nimport ModalFooter from './js/ModalFooter';\nimport ModalBody from './js/ModalBody';\n\n/**\n * Modals add dialogs confirmation boxes, notifications, or completely custom content\n * - only one Modal can be opened at a time\n * - are unmounted when Modal is closed\n */\nfunction Modal({\n children,\n theme = 'none',\n disableCloseCommands = false,\n opened = false,\n onClose = () => {},\n size = 'md',\n className = '',\n showBackdrop = true,\n ...restProps\n}) {\n const modalClasses = [\n 'tyk-modal',\n `tyk-modal--theme-${theme}`,\n opened && 'opened',\n ].concat(className.split(' ')).filter(Boolean).join(' ');\n\n const backdropClasses = [\n 'tyk-modal__backdrop',\n opened && 'opened',\n ].filter(Boolean).join(' ');\n\n const themeIcon = {\n success: 'check',\n warning: 'exclamation',\n danger: 'exclamation',\n }[theme];\n\n return (\n <>\n {\n ReactDOM.createPortal(\n \n
    \n
    \n
    \n {theme !== 'none' && (\n
    \n \n
    \n )}\n { children }\n
    \n
    \n
    \n ,\n document.querySelector('body'),\n )\n }\n {showBackdrop && ReactDOM.createPortal(\n \n !disableCloseCommands && onClose()}\n onKeyDown={() => {}}\n type=\"button\"\n aria-label=\"Close\"\n />\n ,\n document.querySelector('body'),\n )}\n \n );\n}\n\nModal.Body = ModalBody;\nModal.Footer = ModalFooter;\n/* eslint-disable-next-line */\nModal.Header = ({ children }) => {\n console.warn('%cModal.Header%c is deprecated.', 'font-weight: bold', '');\n return (\n
    \n { children }\n
    \n );\n};\nModal.Header.propTypes = {\n children: PropTypes.element,\n};\n/* eslint-disable-next-line */\nModal.Title = ({ children }) => {\n console.warn('%cModal.Title%c is deprecated.', 'font-weight: bold', '');\n return (\n

    \n { children }\n

    \n );\n};\nModal.Title.propTypes = {\n children: PropTypes.element,\n};\n\nModal.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n /** one of \"success\", \"warning\", \"danger\", \"none\"; default is \"none\" */\n theme: PropTypes.string,\n /** If set on true, the Modal won't close when clicking on the overlay or by pressing ESC key */\n disableCloseCommands: PropTypes.bool,\n /** If true the Modal will be by default opened */\n opened: PropTypes.bool,\n /** Callback method when the Modal is closed */\n onClose: PropTypes.func,\n /** Width of the Moda: md or lg */\n size: PropTypes.string,\n showBackdrop: PropTypes.bool,\n};\n\nexport default Modal;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../Button';\nimport Modal from '../Modal';\n\n/**\n * Confirm component can be used to open a dialog () before a specific action\n */\nfunction Confirm(props) {\n const {\n children,\n title,\n description,\n confirmBtnText = 'Confirm',\n cancelBtnText = 'Cancel',\n } = props;\n const [open, setOpen] = useState(false);\n const [callback, setCallback] = useState(null);\n const [cancelCallback, setCancelCallback] = useState(null);\n\n const show = (callbackFunc, cancelCallbackFunc, beforeCallback) => (...args) => {\n if (beforeCallback) {\n beforeCallback(...args);\n }\n setOpen(true);\n setCallback(() => () => callbackFunc(...args));\n if (cancelCallbackFunc) {\n setCancelCallback(() => () => cancelCallbackFunc(...args));\n }\n };\n\n const hide = () => {\n setOpen(false);\n setCallback(null);\n setCancelCallback(null);\n };\n\n const cancel = () => {\n if (cancelCallback) {\n cancelCallback();\n }\n hide();\n };\n\n const confirm = () => {\n callback();\n hide();\n };\n\n return (\n <>\n {children(show)}\n \n \n

    {title}

    \n {description}\n
    \n \n \n {cancelBtnText}\n \n \n {confirmBtnText}\n \n \n
    \n \n );\n}\n\nConfirm.propTypes = {\n /** Sets the text for primary / confirmation button on opened modal */\n confirmBtnText: PropTypes.string,\n /** Sets the text for danger / abort button on opened modal */\n cancelBtnText: PropTypes.string,\n /** Sets the title for the opened modal */\n title: PropTypes.string,\n /** Sets the description for the opened modal */\n description: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n PropTypes.func,\n ]),\n};\n\nexport default Confirm;\n","import React, { useCallback, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport debounce from '../../utils/debounce';\n\n/**\n * FixedWrapper component, keeps all its children in a fix position on the page,\n * even if the scroll position changes\n * i.e: The top navigation bar of a page sits within FixedWrapper component\n */\nfunction FixedWrapper({ children, className, showShadow }) {\n const fixedWrapperRef = useRef(null);\n\n const attachShadow = useCallback(() => {\n const element = fixedWrapperRef.current;\n\n if (!element) {\n return;\n }\n\n if (window.scrollY) {\n element.classList.add('tyk-fixed-wrapper--scrolled');\n } else {\n element.classList.remove('tyk-fixed-wrapper--scrolled');\n }\n }, [fixedWrapperRef.current]);\n\n const debouncedAttachShadow = useCallback(debounce(attachShadow, 100), [attachShadow]);\n\n useEffect(() => {\n if (showShadow) {\n window.addEventListener('scroll', debouncedAttachShadow);\n }\n\n return () => {\n window.removeEventListener('scroll', debouncedAttachShadow);\n };\n }, [debouncedAttachShadow, showShadow]);\n\n return (\n
    \n { children }\n
    \n );\n}\n\nFixedWrapper.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** Css classes that can be passed to the FixedWraper element */\n className: PropTypes.string,\n /** If true, bottom shadow on the FixedWrapper component\n * is being displayed when scroll happens\n */\n showShadow: PropTypes.bool,\n};\n\nFixedWrapper.defaultProps = {\n className: '',\n};\n\nexport default FixedWrapper;\n","import React, {\n useEffect, useState, useRef, useCallback,\n} from 'react';\nimport { PropTypes } from 'prop-types';\n\nimport debounce from '../../utils/debounce';\nimport { usePrevious, useComponentSize } from '../../hooks';\nimport Loader from '../Loader';\n\nfunction InfiniteScroller({\n children,\n hasMore,\n initialLoad,\n loadMore,\n pageNumber,\n refChild,\n}) {\n const [showLoader, setShowLoader] = useState(false);\n const containerRef = useRef(null);\n const refChildSize = useComponentSize(refChild);\n\n useEffect(() => {\n if (initialLoad && typeof loadMore === 'function') {\n setShowLoader(false);\n loadMore(pageNumber);\n }\n }, [initialLoad]);\n\n const shouldLoad = useCallback(() => {\n if (!containerRef.current) return false;\n const { clientHeight, scrollTop } = containerRef.current;\n\n return (\n hasMore\n && (\n (clientHeight + Math.round(scrollTop) === refChildSize.height)\n || (clientHeight >= refChildSize.height)\n )\n );\n }, [containerRef, refChildSize.height]);\n\n const loadMoreData = useCallback(() => {\n if (hasMore && typeof loadMore === 'function') {\n loadMore(pageNumber + 1);\n setShowLoader(true);\n } else {\n setShowLoader(false);\n }\n }, [hasMore, pageNumber]);\n\n const prevPageNumber = usePrevious(pageNumber);\n const scrollHandler = useCallback(debounce(() => {\n if (shouldLoad() && prevPageNumber <= pageNumber) {\n loadMoreData();\n }\n }, 200), [loadMoreData, shouldLoad]);\n\n useEffect(() => {\n containerRef.current?.addEventListener('scroll', scrollHandler);\n return () => containerRef.current?.removeEventListener('scroll', scrollHandler);\n }, [containerRef, scrollHandler]);\n\n // if content resets (page number resets) scroll to top\n useEffect(() => {\n if (prevPageNumber > 0 && pageNumber === 0) {\n containerRef.current.scrollTop = 0;\n }\n }, [containerRef, pageNumber]);\n\n const prevRefChildSize = usePrevious(refChildSize);\n useEffect(() => {\n if (\n refChildSize && prevRefChildSize\n && refChildSize.height !== prevRefChildSize.height\n && showLoader === true\n ) {\n setShowLoader(false);\n }\n }, [showLoader, refChildSize.height]);\n\n useEffect(() => {\n if (\n refChild && refChildSize.height < containerRef.current.clientHeight\n && refChildSize.height\n && hasMore\n ) {\n loadMoreData();\n }\n }, [containerRef, refChildSize, refChild, hasMore]);\n\n return (\n
    \n \n { children }\n
    \n {showLoader && (\n \n )}\n
    \n );\n}\n\nInfiniteScroller.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n hasMore: PropTypes.bool,\n initialLoad: PropTypes.bool,\n pageNumber: PropTypes.number,\n loadMore: PropTypes.func,\n refChild: PropTypes.instanceOf(Object),\n};\n\nInfiniteScroller.defaultProps = {\n hasMore: true,\n};\n\nexport default InfiniteScroller;\n","import React, {\n useEffect, useRef, forwardRef,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\nimport InfiniteScroller from '../InfiniteScroller';\n\nconst VIEWPORT_INITIAL_PADDING = 5;\n\n/**\n * It displays a container relative to another element.\n * Meant to be used for dropdowns, tooltips, and other similar components.\n */\nfunction FloatingContainer({\n element,\n size = 'auto',\n forceDisplay = 'auto',\n displayAxis = 'auto',\n preferredPosition,\n offset = 0,\n className,\n children,\n infiniteScrollerConfig,\n}, ref) {\n const localRef = useRef(null);\n const floatingContainerRef = ref || localRef;\n const contentWrapperRef = useRef(null);\n // offset calculated on first render to make sure the floating container is inside the viewport\n const viewportOffset = useRef(null);\n\n function determineDisplay() {\n const target = element.current;\n const container = floatingContainerRef.current;\n if (!container) return preferredPosition ?? displayAxis === 'vertical' ? 'bottom' : 'right';\n\n const { left, top } = target.getBoundingClientRect();\n const topSpace = top;\n const bottomSpace = window.innerHeight - top - target.offsetHeight;\n const leftSpace = left;\n const rightSpace = window.innerWidth - left - target.offsetWidth;\n const hasTopSpace = topSpace > container.scrollHeight;\n const hasBottomSpace = bottomSpace > container.scrollHeight;\n const hasLeftSpace = leftSpace > container.offsetWidth;\n const hasRightSpace = rightSpace > container.offsetWidth;\n const positionedVerticallyFitsInViewport = left + target.offsetWidth / 2 - container.offsetWidth / 2 > 0; // eslint-disable-line max-len\n const positionedHorizontallyFitsInViewport = top + target.offsetHeight / 2 - container.scrollHeight / 2 > 0; // eslint-disable-line max-len\n\n if (\n displayAxis === 'vertical'\n || (\n displayAxis === 'auto'\n && (hasTopSpace || hasBottomSpace)\n && positionedVerticallyFitsInViewport\n )\n ) {\n return getDisplayForVertical({\n preferredPosition, hasTopSpace, hasBottomSpace, topSpace, bottomSpace,\n });\n }\n\n if (displayAxis === 'horizontal') {\n return getDisplayForHorizontal({\n preferredPosition, hasLeftSpace, hasRightSpace, leftSpace, rightSpace,\n });\n }\n\n return getDisplayWhereItFits({\n preferredPosition,\n hasTopSpace,\n hasBottomSpace,\n hasLeftSpace,\n hasRightSpace,\n positionedHorizontallyFitsInViewport,\n positionedVerticallyFitsInViewport,\n });\n }\n\n function adjustPosition() {\n const display = forceDisplay !== 'auto' ? forceDisplay : determineDisplay();\n const target = element.current;\n const container = floatingContainerRef.current;\n\n if (!target || !container) return;\n\n const targetPosition = target.getBoundingClientRect();\n const { left: vpLeft, top: vpTop } = viewportOffset.current ?? { left: 0, top: 0 };\n\n if (display === 'top') {\n Object.assign(container.style, getStylesForTop({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (display === 'bottom') {\n Object.assign(container.style, getStylesForBottom({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (display === 'left') {\n Object.assign(container.style, getStylesForLeft({\n targetPosition, target, container, size, offset,\n }));\n }\n\n if (display === 'right') {\n Object.assign(container.style, getStylesForRight({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (viewportOffset.current !== null) return;\n\n if (size === 'matchEnd') {\n viewportOffset.current = { left: 0, top: 0 };\n } else {\n const left = Number(container.style.left.replace('px', ''));\n const top = Number(container.style.top.replace('px', ''));\n viewportOffset.current = {\n left: left < 0 ? VIEWPORT_INITIAL_PADDING - left : 0,\n top: top < 0 ? VIEWPORT_INITIAL_PADDING - top : 0,\n };\n }\n }\n\n useEffect(() => {\n window.requestAnimationFrame(function schedulePositionUpdate() {\n adjustPosition();\n window.requestAnimationFrame(schedulePositionUpdate);\n });\n }, []);\n\n return createPortal(\n \n \n \n {children}\n
    \n \n
    ,\n document.querySelector('body'),\n );\n}\n\nFloatingContainer.propTypes = {\n /** A DOM element that the floating container will be displayed relative to. */\n element: PropTypes.instanceOf(Object),\n className: PropTypes.string,\n /** The size of the container.\n * If `auto` the size will be determined by its contents.\n * If `matchElement` it will take the width or the height of the element depending\n * on the `displayAxis` prop.\n * It can also be a function that returns a number representing the width\n * or the height in pixels.\n */\n size: PropTypes.oneOfType([\n PropTypes.oneOf(['auto', 'matchElement', 'matchStart', 'matchEnd']),\n PropTypes.func,\n ]),\n /**\n * The distance between the element and the floating container.\n * It can be positive or negative.\n */\n offset: PropTypes.number,\n /**\n * If `auto` the component will try to determine where to display the container relative to the\n * element (top, bottom, left, right).\n * It can also be one of top, bottom, left, right, to force the floating container to always be\n * displayed in that position.\n */\n forceDisplay: PropTypes.oneOf(['auto', 'top', 'bottom', 'left', 'right']),\n /**\n * It can be `auto`, `vertical` or `horizontal`. It specifies the axis where\n * it will be displayed when `forceDisplay` is `auto`.\n */\n displayAxis: PropTypes.oneOf(['auto', 'vertical', 'horizontal']),\n /**\n * If there is space on both sides of the axis preffer this side.\n */\n preferredPosition: PropTypes.oneOf(['top', 'bottom', 'left', 'right']),\n /**\n * Configuration object that will be passed to the infinite scroller component.\n */\n infiniteScrollerConfig: PropTypes.instanceOf(Object),\n};\n\nexport default forwardRef(FloatingContainer);\n\nfunction getDisplayForVertical({\n preferredPosition, hasTopSpace, hasBottomSpace, topSpace, bottomSpace,\n}) {\n if (preferredPosition === 'top' && hasTopSpace) return 'top';\n if (preferredPosition === 'bottom' && hasBottomSpace) return 'bottom';\n return hasBottomSpace || bottomSpace > topSpace ? 'bottom' : 'top';\n}\n\nfunction getDisplayForHorizontal({\n preferredPosition, hasLeftSpace, hasRightSpace, leftSpace, rightSpace,\n}) {\n if (preferredPosition === 'left' && hasLeftSpace) return 'left';\n if (preferredPosition === 'right' && hasRightSpace) return 'right';\n return hasRightSpace || rightSpace > leftSpace ? 'right' : 'left';\n}\n\nfunction getDisplayWhereItFits({\n preferredPosition, hasTopSpace, hasBottomSpace, hasLeftSpace, hasRightSpace,\n positionedHorizontallyFitsInViewport, positionedVerticallyFitsInViewport,\n}) {\n if (hasTopSpace && positionedVerticallyFitsInViewport) return 'top';\n if (hasBottomSpace && positionedVerticallyFitsInViewport) return 'bottom';\n if (hasRightSpace && positionedHorizontallyFitsInViewport) return 'right';\n if (hasLeftSpace && positionedHorizontallyFitsInViewport) return 'left';\n return preferredPosition ?? 'bottom';\n}\n\nfunction getStylesForTop({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = {\n auto: targetPosition.left + target.offsetWidth / 2 - container.offsetWidth / 2,\n matchElement: targetPosition.left,\n matchStart: targetPosition.left,\n matchEnd: targetPosition.right - container.offsetWidth,\n }[size];\n const topPos = targetPosition.top - container.offsetHeight - offset;\n style.left = `${leftPos + vpLeft}px`;\n style.top = `${topPos + vpTop}px`;\n\n if (size === 'matchElement') {\n style.width = `${target.offsetWidth}px`;\n } else if (size === 'matchEnd') {\n style.maxWidth = `${targetPosition.right - VIEWPORT_INITIAL_PADDING}px`;\n } else if (typeof size === 'function') {\n style.width = `${size(target.offsetWidth)}px`;\n }\n style.maxHeight = `${targetPosition.top - offset}px`;\n return style;\n}\n\nfunction getStylesForBottom({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = {\n auto: targetPosition.left + target.offsetWidth / 2 - container.offsetWidth / 2,\n matchElement: targetPosition.left,\n matchStart: targetPosition.left,\n matchEnd: targetPosition.right - container.offsetWidth,\n }[size];\n const topPos = targetPosition.bottom + offset;\n style.left = `${leftPos + vpLeft}px`;\n style.top = `${topPos + vpTop}px`;\n\n if (size === 'matchElement') {\n style.width = `${target.offsetWidth}px`;\n } else if (size === 'matchEnd') {\n style.maxWidth = `${targetPosition.right - VIEWPORT_INITIAL_PADDING}px`;\n } else if (typeof size === 'function') {\n style.width = `${size(target.offsetWidth)}px`;\n }\n style.maxHeight = `${window.innerHeight - targetPosition.bottom - offset}px`;\n return style;\n}\n\nfunction getStylesForLeft({\n targetPosition, target, container, size, offset,\n}) {\n const style = {};\n const leftPos = targetPosition.left - container.offsetWidth - offset;\n const topPos = {\n auto: targetPosition.top + target.offsetHeight / 2 - container.offsetHeight / 2,\n matchElement: targetPosition.top,\n matchStart: targetPosition.top,\n matchEnd: targetPosition.bottom - container.offsetHeight,\n }[size];\n style.left = `${leftPos}px`;\n style.top = `${topPos}px`;\n\n if (size === 'matchElement') {\n style.height = `${target.offsetHeight}px`;\n } else if (typeof size === 'function') {\n style.height = `${size(target.offsetHeight)}px`;\n }\n style.maxWidth = `${targetPosition.left - offset}px`;\n return style;\n}\n\nfunction getStylesForRight({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = targetPosition.left + target.offsetWidth + offset;\n const topPos = {\n auto: targetPosition.top + target.offsetHeight / 2 - container.offsetHeight / 2,\n matchElement: targetPosition.top,\n matchStart: targetPosition.top,\n matchEnd: targetPosition.bottom - container.offsetHeight,\n }[size];\n style.left = size === 'auto' ? `${leftPos + vpLeft}px` : `${leftPos}px`;\n style.top = size === 'auto' ? `${topPos + vpTop}px` : `${topPos}px`;\n\n if (size === 'matchElement') {\n style.height = `${target.offsetHeight}px`;\n } else if (typeof size === 'function') {\n style.height = `${size(target.offsetHeight)}px`;\n }\n style.maxWidth = `${window.innerWidth - targetPosition.left - target.offsetWidth - offset}px`;\n return style;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../Message';\n\nfunction InfoNote({ children }) {\n return (\n
    \n \n { children }\n \n
    \n );\n}\n\nInfoNote.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default InfoNote;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ListItem(props) {\n const {\n className,\n children,\n selected,\n } = props;\n\n return (\n
  • \n {children}\n
  • \n );\n}\n\nListItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n selected: PropTypes.bool,\n};\n\nListItem.defaultProps = {\n className: '',\n};\n\nexport default ListItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ListItem from './js/ListItem';\n\nfunction List(props) {\n const {\n className,\n children,\n label,\n labelwidth,\n theme,\n style,\n } = props;\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-list'];\n\n if (theme) {\n cssClasses.push(`tyk-list--${theme}`);\n }\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n };\n\n const getListStyle = () => {\n const styleCopy = structuredClone(style);\n if (labelwidth) {\n styleCopy.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styleCopy;\n };\n\n return (\n
    \n {\n label !== undefined\n ? (\n \n )\n : null\n }\n
      \n {children}\n
    \n
    \n );\n}\n\nList.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n label: PropTypes.string,\n labelwidth: PropTypes.string,\n theme: PropTypes.string,\n style: PropTypes.instanceOf(Object),\n};\n\nList.defaultProps = {\n theme: 'default',\n style: {},\n};\n\nList.Item = ListItem;\n\nexport default List;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction NavBar({\n align = 'center',\n children,\n left,\n right,\n title,\n pre,\n subtitle,\n withTabs,\n}) {\n const subtitleContent = subtitle ?

    { subtitle }

    : null;\n return (\n
    \n
    \n {pre && (\n
    {pre}
    \n )}\n {\n title\n ? (\n
    \n

    { title }

    \n { subtitleContent }\n
    \n )\n : subtitleContent\n }\n
    \n {left && (\n
    { left }
    \n )}\n {right && (\n
    { right }
    \n )}\n
    \n
    \n { children }\n
    \n );\n}\n\nNavBar.propTypes = {\n align: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n title: PropTypes.string,\n subtitle: PropTypes.string,\n pre: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n left: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n right: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n withTabs: PropTypes.bool,\n};\n\nexport default NavBar;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction NavigationItem({ children }) {\n return (\n
  • \n {children}\n
  • \n );\n}\n\nNavigationItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nexport default NavigationItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport NavigationItem from './js/NavigationItem';\n\nfunction Navigation({ children }) {\n return (\n
      \n {children}\n
    \n );\n}\n\nNavigation.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nNavigation.Item = NavigationItem;\n\nexport default Navigation;\n","import { createContext } from 'react';\n\nexport const PortalContext = createContext();\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Collapsible from '../../Collapsible';\nimport { PortalContext } from '../panel-context';\n\nfunction PanelBody({\n children,\n noPadding,\n className,\n ...rest\n}) {\n const getCssClasses = useCallback(\n () => [\n 'tyk-panel__body',\n className,\n noPadding && 'no-padding',\n ].filter(Boolean).join(' '),\n [className, noPadding],\n );\n\n return (\n \n {\n (portalContext) => (\n portalContext.collapsable\n ? (\n \n { children }\n \n )\n : (\n \n { children }\n
    \n )\n )\n }\n \n );\n}\n\nPanelBody.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n noPadding: PropTypes.bool,\n className: PropTypes.string,\n};\n\nexport default PanelBody;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction PanelFooter(props) {\n const { children } = props;\n return (\n
    \n { children }\n
    \n );\n}\n\nPanelFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default PanelFooter;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport { PortalContext } from '../panel-context';\n\nclass PanelHeader extends Component {\n getCssClasses(props) {\n const { className } = this.props;\n let cssClasses = ['tyk-panel__header'];\n\n if (props.collapsable) {\n cssClasses.push('collapsable');\n }\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n }\n\n render() {\n const {\n children,\n } = this.props;\n\n return (\n \n {\n (portalContext) => {\n const HeaderTag = portalContext.theme === 'blank' ? 'h3' : 'div';\n const iconType = portalContext.collapsed ? 'chevron-down' : 'chevron-up';\n\n return (\n \n { children }\n {\n portalContext.collapsable\n ?
    \n : null\n }\n \n );\n }\n }\n
    \n );\n }\n}\n\nPanelHeader.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]).isRequired,\n className: PropTypes.string,\n};\n\nexport default PanelHeader;\n","import React, {\n useCallback, useEffect, useMemo, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport PanelBody from './js/PanelBody';\nimport PanelFooter from './js/PanelFooter';\nimport PanelHeader from './js/PanelHeader';\n\nimport { PortalContext } from './panel-context';\n\nfunction Panel(props) {\n const {\n children,\n className,\n collapsed,\n collapsable,\n theme,\n onToggleCollapse,\n collapsibleIconPosition = 'right',\n } = props;\n const [collapsedState, setCollapsedState] = useState(collapsed || false);\n\n useEffect(() => {\n if (collapsed !== collapsedState) {\n setCollapsedState(collapsed);\n }\n }, [collapsed]);\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-panel'];\n const panelTheme = `tyk-panel--${theme || 'default'}`;\n const collapsbleIconPosition = `tyk-panel__icon-collapse--${collapsibleIconPosition}`;\n\n cssClasses.push(panelTheme);\n cssClasses.push(collapsbleIconPosition);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n if (collapsedState) {\n cssClasses.push('tyk-panel--collapsed');\n }\n\n return cssClasses.join(' ');\n };\n\n const handleToggle = useCallback(() => {\n setCollapsedState(!collapsedState);\n\n if (onToggleCollapse) {\n onToggleCollapse(!collapsedState);\n }\n }, [collapsedState, onToggleCollapse]);\n\n const context = useMemo(() => ({\n collapsable,\n collapsed: collapsedState,\n onToggle: handleToggle,\n theme,\n collapsibleIconPosition,\n }), [collapsable, collapsedState, collapsibleIconPosition, theme, handleToggle]);\n\n return (\n
    \n \n {\n (typeof children === 'function')\n ? children({\n toggleCollapse: handleToggle,\n })\n : children\n }\n \n
    \n );\n}\n\nPanel.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n collapsable: PropTypes.bool,\n collapsibleIconPosition: PropTypes.string,\n collapsed: PropTypes.bool,\n theme: PropTypes.string,\n onToggleCollapse: PropTypes.func,\n};\n\nPanel.Body = PanelBody;\nPanel.Footer = PanelFooter;\nPanel.Header = PanelHeader;\n\nexport default Panel;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * Pill\n */\nfunction Pill(props) {\n const {\n children,\n className,\n theme,\n } = props;\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-pill', ...theme.split(' ').map((t) => `tyk-pill--${t}`)];\n\n if (className) {\n cssClasses = cssClasses.concat(className);\n }\n\n return cssClasses.join(' ');\n };\n\n return (\n
    \n {children}\n
    \n );\n}\n\nPill.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n /** Css classes that can be passed to the Pill element */\n className: PropTypes.string,\n /** Theme that can be applied to a Pill */\n theme: PropTypes.string,\n};\n\nPill.defaultProps = {\n theme: 'default',\n};\n\nexport default Pill;\n","import { useRef } from 'react';\n\n/**\n * RevealPanelService is a class that manages the resizing of a panel element.\n * It provides methods to set the panel's height, hide and show it, and attach\n * event listeners for resizing.\n */\nclass RevealPanelService {\n #state = null; // Private state for mouse interactions.\n\n #panel = null; // The panel element to be resized.\n\n #gutter = null; // The gutter element used for resizing.\n\n #wrapper = null; // The wrapper element that contains the panel and gutter.\n\n #onHeightChangeCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #onDragStartCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #onDragEndCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #dragStarted = false;\n\n /**\n * Sets a callback function to be executed when the panel is resized.\n * @param {function} callback - The callback function to be called on panel resize.\n */\n on(eventName, listener) {\n let list = null;\n if (eventName === 'onHeightChange') {\n list = this.#onHeightChangeCallbacks;\n } else if (eventName === 'onDragStart') {\n list = this.#onDragStartCallbacks;\n } else if (eventName === 'onDragEnd') {\n list = this.#onDragEndCallbacks;\n }\n\n if (list) {\n this.addListener(list, listener);\n }\n }\n\n off(eventName, listener) {\n let list = null;\n if (eventName === 'onHeightChange') {\n list = this.#onHeightChangeCallbacks;\n } else if (eventName === 'onDragStart') {\n list = this.#onDragStartCallbacks;\n } else if (eventName === 'onDragEnd') {\n list = this.#onDragEndCallbacks;\n }\n\n if (list) {\n this.removeListener(list, listener);\n }\n }\n\n /**\n * Sets the panel, gutter, and wrapper elements to be controlled by this class.\n * @param {HTMLElement} wrapper - The wrapper element containing the panel and gutter.\n * @param {HTMLElement} panel - The panel element to be resized.\n * @param {HTMLElement} gutter - The gutter element used for resizing.\n */\n setRefs(wrapper, panel, gutter) {\n if (this.#panel || this.#gutter || this.#wrapper) {\n this.unbindEvents();\n }\n this.#wrapper = wrapper;\n this.#panel = panel;\n this.#gutter = gutter;\n this.#state = null;\n this.bindEvents();\n }\n\n /**\n * Attaches event listeners for panel resizing.\n */\n bindEvents() {\n this.ensureRefs('bindEvents');\n this.#gutter.addEventListener('mousedown', this.onMouseDown.bind(this));\n document.addEventListener('mousemove', this.onMouseMove.bind(this));\n document.addEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n /**\n * Gets the current height of the panel.\n * @returns {number} - The height of the panel in pixels.\n */\n getHeight() {\n this.ensureRefs('getHeight');\n const size = this.#panel.getBoundingClientRect();\n return size.height;\n }\n\n /**\n * Handles the mouse down event, initiating the resizing process.\n * @param {MouseEvent} e - The mouse event object.\n */\n onMouseDown(e) {\n this.ensureRefs('onMouseDown');\n this.#state = {\n mouseDown: true,\n initialRect: this.#panel.getBoundingClientRect(),\n initialEvent: e,\n };\n }\n\n /**\n * Handles the mouse move event, adjusting the panel's height during resizing.\n * @param {MouseEvent} e - The mouse event object.\n */\n onMouseMove(e) {\n this.ensureRefs('onMouseMove');\n\n if (!this.#state) {\n return;\n }\n\n const isButtonDown = this.isPrimaryMouseButtonDown(e);\n if (!isButtonDown) {\n this.onMouseUp();\n return;\n }\n\n if (!this.#dragStarted) {\n this.#dragStarted = true;\n this.onDragStart.bind(this)();\n }\n\n const newY = this.#state.initialEvent.y - e.y;\n const finalHeight = Math.ceil(this.#state.initialRect.height + newY);\n this.setHeight(`${finalHeight}px`, 'mousemove');\n }\n\n // eslint-disable-next-line class-methods-use-this\n notifyListeners(list, value) {\n if (list && Array.isArray(list) && list.length) {\n list.forEach((fn) => {\n if (typeof fn === 'function') {\n fn(value);\n }\n });\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n addListener(list, listener) {\n if (list && Array.isArray(list) && typeof listener === 'function') {\n list.push(listener);\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n removeListener(list, listener) {\n if (list && Array.isArray(list) && typeof listener === 'function' && list.length) {\n const index = list.indexOf(listener);\n\n if (index > -1) {\n list.splice(index, 1);\n }\n }\n }\n\n onDragEnd() {\n if (this.#dragStarted) {\n this.notifyListeners(this.#onDragEndCallbacks, this.getHeight());\n }\n }\n\n onDragStart() {\n this.notifyListeners(this.#onDragStartCallbacks, this.getHeight());\n }\n\n // eslint-disable-next-line class-methods-use-this\n isPrimaryMouseButtonDown(e) {\n const flags = e.buttons !== undefined ? e.buttons : e.which;\n // eslint-disable-next-line no-bitwise\n const isDown = flags === 1;\n return isDown;\n }\n\n /**\n * Resets the state after the mouse up event, ending the resizing process.\n */\n onMouseUp() {\n this.#state = null;\n this.onDragEnd.bind(this)();\n this.#dragStarted = false;\n }\n\n /**\n * Sets the height of the panel.\n * @param {string} height - The new height value as a CSS string (e.g., \"100px\").\n */\n setHeight(height) {\n let heightVal = height;\n this.ensureRefs('setHeight');\n\n if (typeof heightVal === 'number') {\n heightVal += 'px';\n }\n\n this.#panel.style.height = heightVal;\n\n this.notifyListeners(this.#onHeightChangeCallbacks, this.getHeight());\n }\n\n /**\n * Ensures that the required elements (wrapper, panel, and gutter) are set.\n * Throws an error if they are missing.\n */\n ensureRefs(reason) {\n if (!this.#panel || !this.#gutter || !this.#wrapper) {\n throw new Error(\n `${reason}: Wrapper, panel, and gutter elements are required. Use setRefs method first.`,\n );\n }\n }\n\n /**\n * Checks if the panel is hidden.\n * @returns {boolean} - True if the panel is hidden; false otherwise.\n */\n isHidden() {\n this.ensureRefs('isHidden');\n return this.#wrapper.style.visibility === 'hidden';\n }\n\n /**\n * Hides the panel by setting its visibility to \"hidden\".\n */\n hide() {\n this.ensureRefs('hide');\n this.#wrapper.style.visibility = 'hidden';\n }\n\n /**\n * Shows the panel by setting its visibility to \"visible\".\n */\n show() {\n this.ensureRefs('show');\n this.#wrapper.style.visibility = 'visible';\n }\n\n /**\n * Unbinds the event listeners added for resizing.\n */\n unbindEvents() {\n this.#onHeightChangeCallbacks = [];\n this.#onDragStartCallbacks = [];\n this.#onDragEndCallbacks = [];\n this.#gutter.removeEventListener('mousedown', this.onMouseDown.bind(this));\n document.removeEventListener('mousemove', this.onMouseMove.bind(this));\n document.removeEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n deinit() {\n this.unbindEvents();\n }\n}\n\nexport const useRevealPanelService = () => {\n const revealPanelServiceRef = useRef(new RevealPanelService());\n return revealPanelServiceRef.current;\n};\n","import React, {\n useEffect,\n useRef,\n useImperativeHandle,\n forwardRef,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { createPortal } from 'react-dom';\nimport { useRevealPanelService } from './js/RevealPanelService';\n\nfunction RevealPanelHeaderLeft({ children }) {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <>{children};\n}\n\nRevealPanelHeaderLeft.propTypes = {\n children: PropTypes.instanceOf({}),\n};\n\nfunction RevealPanelHeaderRight({ children }) {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <>{children};\n}\n\nRevealPanelHeaderRight.propTypes = {\n children: PropTypes.instanceOf({}),\n};\n\nconst mergeClasses = (...classNames) => classNames.map((it) => (it || '').trim()).filter(Boolean).join(' ');\n\nfunction RevealPanel({\n children,\n height,\n onHeightChange = null,\n onDragStart = null,\n onDragEnd = null,\n style = null,\n parentSelector = null,\n contentStyle,\n contentClassName,\n gutterClassName,\n wrapperClassName,\n// eslint-disable-next-line consistent-return\n}, ref) {\n const panelRef = useRef(null);\n const gutterRef = useRef(null);\n const wrapperRef = useRef(null);\n\n const panelService = useRevealPanelService();\n\n useEffect(() => {\n if (!panelRef.current || !gutterRef.current || !wrapperRef.current) {\n return;\n }\n\n if (!panelService) {\n return;\n }\n\n panelService.setRefs(wrapperRef.current, panelRef.current, gutterRef.current);\n panelService.on('onHeightChange', onHeightChange);\n panelService.on('onDragStart', onDragStart);\n panelService.on('onDragEnd', onDragEnd);\n panelService.setHeight(height, 'initialize');\n\n // eslint-disable-next-line consistent-return\n return () => {\n panelService.unbindEvents();\n };\n }, []);\n\n useImperativeHandle(\n ref,\n () => {\n // bind this context\n const bind = (func) => func.bind(panelService);\n\n return {\n getHeight: bind(panelService.getHeight),\n setHeight: bind(panelService.setHeight),\n hide: bind(panelService.hide),\n show: bind(panelService.show),\n isHidden: bind(panelService.isHidden),\n deinit: bind(panelService.deinit),\n on: bind(panelService.on),\n off: bind(panelService.off),\n };\n },\n [],\n );\n\n let headerLeft = null;\n let headerRight = null;\n const contents = [];\n\n React.Children.forEach(children, (child) => {\n if (child && React.isValidElement(child)) {\n if (child.type === RevealPanelHeaderLeft) {\n headerLeft = child;\n } else if (child.type === RevealPanelHeaderRight) {\n headerRight = child;\n } else {\n contents.push(child);\n }\n }\n });\n\n const element = (\n
    \n
    \n
    \n\n
    {headerLeft}
    \n
    \n
    {headerRight}
    \n\n
    \n
    \n {contents}\n
    \n
    \n );\n\n if (parentSelector) {\n return createPortal(element, document.querySelector(parentSelector));\n }\n}\n\nRevealPanel.propTypes = {\n children: PropTypes.instanceOf({}),\n height: PropTypes.string,\n onHeightChange: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragEnd: PropTypes.func,\n parentSelector: PropTypes.string,\n style: PropTypes.instanceOf({}),\n contentStyle: PropTypes.instanceOf({}),\n contentClassName: PropTypes.string,\n gutterClassName: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\nconst TempRevealPanel = forwardRef(RevealPanel);\nTempRevealPanel.HeaderLeft = RevealPanelHeaderLeft;\nTempRevealPanel.HeaderRight = RevealPanelHeaderRight;\n\nexport default TempRevealPanel;\n","import { createContext } from 'react';\n\nexport const TabsContext = createContext();\n","import { createContext } from 'react';\n\nexport default createContext();\n","import React, { useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport TabContext from './TabContext';\nimport { usePrevious } from '../../../hooks';\n\nfunction TabContent(props) {\n const {\n addTab,\n hideTab,\n updateTab,\n showTab,\n children,\n selectedPath,\n tabData,\n tabsId,\n tabExists,\n path,\n rendered,\n hideTabContent,\n tabs,\n } = props;\n\n useEffect(() => {\n const tempTabData = { ...tabData };\n\n if (!tabExists(path)) {\n addTab(tempTabData, path);\n }\n }, [tabData, path]);\n\n const prevTabData = usePrevious(tabData);\n useEffect(() => {\n if (\n tabExists(path) && tabData?.title\n && (prevTabData?.title !== tabData?.title || prevTabData?.selected !== tabData.selected)\n ) {\n const tempTabData = { ...tabData };\n updateTab(tempTabData, path);\n }\n }, [tabData, path, prevTabData, tabs]);\n\n useEffect(() => {\n showTab(path);\n return () => hideTab(path);\n }, []);\n\n const shouldRender = useMemo(() => {\n if (!Object.keys(tabs).length) {\n return false;\n }\n\n if (hideTabContent || tabs[tabData.id].show === false) {\n return false;\n }\n\n if (!rendered) {\n return tabExists(path);\n }\n return selectedPath && selectedPath.indexOf(tabData.id) > -1;\n }, [hideTabContent, rendered, selectedPath, tabData, tabs]);\n\n const context = useMemo(() => ({ path, tabsId }), [path, tabsId]);\n\n if (!shouldRender) return null;\n return (\n
    -1 ? 'block' : 'none' }}>\n \n {children}\n \n
    \n );\n}\n\nTabContent.propTypes = {\n addTab: PropTypes.func,\n updateTab: PropTypes.func,\n hideTab: PropTypes.func,\n showTab: PropTypes.func,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n path: PropTypes.instanceOf(Array),\n hideTabContent: PropTypes.bool,\n rendered: PropTypes.bool,\n selectedPath: PropTypes.instanceOf(Array),\n tabExists: PropTypes.func,\n tabsId: PropTypes.string,\n tabData: PropTypes.instanceOf(Object),\n tabs: PropTypes.instanceOf(Object),\n};\n\nexport default TabContent;\n","import React, {\n useContext, useEffect, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { TabsContext } from '../tabs-context';\nimport TabContext from './TabContext';\nimport TabContent from './TabContent';\n\nfunction Tab(props) {\n const { id } = props;\n const tabsContext = useContext(TabsContext);\n const tabContext = useContext(TabContext);\n const {\n tabExists,\n selectedPath,\n addTab,\n updateTab,\n hideTab,\n showTab,\n rendered,\n hideTabContent,\n tabs,\n } = tabsContext;\n const {\n children,\n } = props;\n const [path, setPath] = useState('');\n\n useEffect(() => {\n let tempPath;\n if (tabContext && path) {\n if (tabContext.tabsId === tabsContext.id) {\n tempPath = tabContext.path.concat([id]);\n } else {\n tempPath = [id];\n }\n } else {\n tempPath = [id];\n }\n setPath(tempPath);\n }, [tabContext]);\n\n if (!path) {\n return null;\n }\n\n return (\n \n {children}\n \n );\n}\n\nTab.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n id: PropTypes.string,\n};\n\nTab.defaultProps = {};\n\nexport default Tab;\n","import React, {\n useEffect, useMemo, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport Tab from './js/Tab';\n\nimport Collapsible from '../Collapsible';\nimport Icon from '../Icon';\nimport { TabsContext } from './tabs-context';\n\nfunction Tabs(props) {\n const {\n children,\n className,\n id,\n onTabChange,\n type,\n hideTabContent,\n } = props;\n const [tabs, setTabs] = useState({});\n const [selectedPath, setSelectedPath] = useState([]);\n const [rendered, setRendered] = useState(false);\n const [initialPath, setInitialPath] = useState(null);\n\n useEffect(() => {\n setSelectedPath(initialPath);\n }, [initialPath]);\n\n const updateTabsList = (tabsState, path, tabData) => {\n let tempTabsState = { ...tabsState };\n const tempTabData = { ...tabData };\n const tempPath = path.slice(0);\n\n while (tempPath.length > 1) {\n tempTabsState = tempTabsState[tempPath.shift()];\n\n if (!tempTabsState) {\n tempTabsState = {};\n }\n }\n\n tempTabData.tempPath = tempPath;\n tempTabsState[tempPath.shift()] = tempTabData;\n\n return tempTabsState;\n };\n\n const toggleTab = (tabsState, path) => {\n let tempTabsState = { ...tabsState };\n const tempPath = path.slice(0);\n\n while (tempPath.length > 1) {\n tempTabsState = tempTabsState[tempPath.shift()];\n }\n\n const key = tempPath.shift();\n if (tempTabsState[key].collapsed === undefined) {\n tempTabsState[key].collapsed = true;\n } else {\n tempTabsState[key].collapsed = !tempTabsState[key].collapsed;\n }\n\n return tempTabsState;\n };\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-tabs'];\n\n cssClasses.push(`tyk-tabs--${type || 'default'}`);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n };\n\n const setCurrentSelectedPath = (path, tabData) => {\n const tempPath = path.slice(0);\n let tempRendered = true;\n\n if (tabData.collapsible) {\n tempPath.push(Object.keys(tabData.tabs)[0]);\n tempRendered = false;\n }\n\n setTabs((prevTabs) => {\n let tempTabs = { ...prevTabs };\n\n tempTabs = toggleTab(tempTabs, path);\n\n return tempTabs;\n });\n setSelectedPath(tempPath);\n setRendered(tempRendered);\n\n if (onTabChange) {\n onTabChange(tabData);\n }\n };\n\n const getTabCssClass = (tabId) => {\n const cssClasses = [];\n\n if (selectedPath && selectedPath.indexOf(tabId) > -1) {\n cssClasses.push('active');\n }\n\n return cssClasses.join(' ');\n };\n\n const genTabs = (currentTabs, path) => {\n if (!currentTabs) {\n return null;\n }\n\n return (\n
      \n {\n Object.keys(currentTabs).map((tabId, index) => {\n const tempPath = path ? path.concat([currentTabs[tabId].id]) : [currentTabs[tabId].id];\n const iconType = currentTabs[tabId].collapsed ? 'chevron-up' : 'chevron-down';\n\n if (currentTabs[tabId].show === false) {\n return null;\n }\n\n return (\n
    • \n \n { currentTabs[tabId].title }\n {\n currentTabs[tabId].collapsible\n ? \n : null\n }\n \n {\n currentTabs[tabId].collapsible\n ? (\n \n {genTabs(currentTabs[tabId].tabs, tempPath)}\n \n )\n : genTabs(currentTabs[tabId].tabs, tempPath)\n }\n
    • \n );\n })\n }\n
    \n );\n };\n\n const addTab = (tabData, path) => {\n setTabs((prevTabs) => updateTabsList({ ...prevTabs }, path, tabData));\n\n if (tabData.selected) {\n setInitialPath(path);\n }\n };\n\n const updateTab = (tabData, path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n tempTabs[tabData.id] = tabData;\n return tempTabs;\n });\n\n if (tabData.selected) {\n setCurrentSelectedPath(path, tabData);\n }\n };\n\n const hideTab = (path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n tempTabs[path].show = false;\n\n return tempTabs;\n });\n };\n\n const showTab = (path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n\n tempTabs[path].show = true;\n\n return tempTabs;\n });\n };\n\n const tabExists = (path) => {\n let tempTabs = { ...tabs };\n const tempPath = path.slice(0);\n while (tempPath.length > 1) {\n tempTabs = tempTabs[tempPath.shift()];\n }\n\n const key = tempPath.shift();\n\n return Boolean(tempTabs?.[key]);\n };\n\n const context = useMemo(() => ({\n id,\n addTab,\n hideTab,\n updateTab,\n showTab,\n tabExists,\n selectedPath,\n rendered,\n hideTabContent,\n tabs,\n }), [\n id,\n addTab,\n hideTab,\n updateTab,\n showTab,\n tabExists,\n selectedPath,\n rendered,\n hideTabContent,\n tabs,\n ]);\n\n return (\n
    \n {genTabs(tabs)}\n \n {\n (typeof children === 'function')\n ? children({\n hideTab,\n showTab,\n })\n : children\n }\n \n
    \n );\n}\n\nTabs.propTypes = {\n className: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n hideTabContent: PropTypes.bool,\n id: PropTypes.string,\n onTabChange: PropTypes.func,\n type: PropTypes.string,\n};\n\nTabs.Tab = Tab;\n\nexport default Tabs;\n","import React, {\n useCallback, useEffect, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport FloatingContainer from '../FloatingContainer';\nimport Icon from '../Icon';\n\nfunction Tooltip({\n render,\n className,\n children,\n position = 'auto',\n style,\n icon = false,\n closable,\n isOpened = false,\n additionalClickParents = [],\n ...props\n}) {\n const [isActive, setIsActive] = useState(false);\n const wrapperRef = useRef(null);\n const tooltipRef = useRef(null);\n const activeEvents = closable\n ? {\n onClick: () => setIsActive(true),\n }\n : {\n onMouseEnter: () => setIsActive(true),\n onMouseLeave: () => setIsActive(false),\n onFocus: () => setIsActive(true),\n onBlur: () => setIsActive(false),\n };\n\n const handleDocumentClick = useCallback((e) => {\n if ([...additionalClickParents, tooltipRef.current].some((p) => p?.contains?.(e.target))) {\n return;\n }\n setIsActive(false);\n }, [additionalClickParents]);\n\n useEffect(() => {\n document.addEventListener('click', handleDocumentClick, true);\n return () => document.removeEventListener('click', handleDocumentClick, true);\n }, [handleDocumentClick]);\n\n useEffect(() => {\n setIsActive(isOpened);\n }, [isOpened]);\n\n const classes = ['tyk-tooltip', className].filter(Boolean).join(' ');\n return (\n \n {children}\n {isActive && (\n \n
    \n {icon && (\n icon === true ? (\n \n ) : (\n icon\n )\n )}\n
    \n {render}\n
    \n {closable && (\n {\n e.stopPropagation();\n setIsActive(false);\n }}\n />\n )}\n
    \n \n )}\n
    \n );\n}\n\nTooltip.propTypes = {\n children: PropTypes.node.isRequired,\n /** custom styles to apply on hovered element */\n style: PropTypes.instanceOf(Object),\n /** describes where the tooltip should be displayed in relation\n * whith the hovered element: top, bottom, left, right\n */\n position: PropTypes.string,\n /** content of the tooltip, can be a string or a React node element */\n render: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.string,\n ]),\n /** additional tooltip classes */\n className: PropTypes.string,\n /** if `true` displays the \"question mark\" icon;\n * optionally you can pass a different icon\n */\n icon: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.node,\n ]),\n /** if `true` the tooltip is activated on click and an \"x\" is displayed to close it;\n * if `false` the tooltip is activated on hover and it closes when no longer hovering\n */\n closable: PropTypes.bool,\n /** handles the `isActive` state of the tooltip from outside */\n isOpened: PropTypes.bool,\n /** Additional dom elements to check if the document click was inside of them.\n * Useful when you want to open the tooltip after an interaction\n * with an element not inside the tooltip root.\n */\n additionalClickParents: PropTypes.instanceOf(Array),\n};\n\nexport default Tooltip;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Tooltip from '../Tooltip';\n/**\n * TextEllipsis component helps you to hide a part of a text,\n * but displaying it when it's being hovered.\n * The entire text is displayed with the help of Tooltip component\n */\n\nfunction TextEllipsis({ text, limit, position }) {\n return (\n text.length > limit\n ? (\n \n {text.substring(0, limit)}\n ...\n \n )\n : text\n );\n}\n\nTextEllipsis.propTypes = {\n /** Text to be shrinked by TextEllipsis */\n text: PropTypes.string,\n /** Number of characters that TextEllipsis would leave visible */\n limit: PropTypes.number,\n /** tooltip position */\n position: PropTypes.string,\n};\n\nexport default TextEllipsis;\n","import React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction shouldShowPage(currentNr, pageNr, totalNrOfPages) {\n const basePageNr = 5;\n const minimumNrOfPages = 10;\n\n if (totalNrOfPages < minimumNrOfPages) {\n return true;\n }\n\n if (\n pageNr < basePageNr\n && currentNr < basePageNr\n ) {\n return true;\n }\n\n if (\n pageNr > totalNrOfPages - basePageNr\n && currentNr > totalNrOfPages - basePageNr\n ) {\n return true;\n }\n\n if (\n currentNr >= pageNr - 2\n && currentNr <= pageNr + 2\n ) {\n return true;\n }\n\n return [0, 1, totalNrOfPages - 1, totalNrOfPages].includes(currentNr);\n}\n\nfunction getPagesArr(nrOfPages, selectedPage) {\n let i;\n const pagesArr = [];\n\n for (i = 0; i <= nrOfPages; i += 1) {\n if (shouldShowPage(i, selectedPage, nrOfPages)) {\n if (i > pagesArr.at(-1)) {\n pagesArr.push(`...-${i}`);\n }\n pagesArr.push(i + 1);\n }\n }\n\n return pagesArr;\n}\n\nfunction Pagination(props) {\n const {\n value = 0,\n totalNrOfPages,\n onChange,\n } = props;\n\n const [selectedPage, setSelectedPage] = useState(value);\n\n const pagesArray = useMemo(\n () => getPagesArr(totalNrOfPages, selectedPage),\n [selectedPage, totalNrOfPages],\n );\n\n function goToPage(pageNr) {\n setSelectedPage(pageNr);\n if (onChange) onChange(pageNr);\n }\n\n return (\n totalNrOfPages\n ? (\n
      \n {selectedPage > 0 && totalNrOfPages > 5 && (\n
    • \n \n
    • \n )}\n {\n pagesArray.map((pageNr) => (\n
    • \n {\n String(pageNr).startsWith('...')\n ? ...\n : \n }\n
    • \n ))\n }\n {selectedPage < totalNrOfPages && totalNrOfPages > 5 && (\n
    • \n \n
    • \n )}\n
    \n )\n : null\n );\n}\n\nPagination.propTypes = {\n value: PropTypes.number,\n totalNrOfPages: PropTypes.number,\n onChange: PropTypes.func,\n};\n\nexport default Pagination;\n","import { createContext } from 'react';\n\nexport const tableContext = createContext();\n","import React, { useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { tableContext } from '../tableContext';\nimport Icon from '../../Icon';\n\nexport function HeaderCell({ column }) {\n const { sortable } = column;\n const [sortOrder, setSortOrder] = useState(sortable?.default || 'ASC');\n const { state, sendMessage } = useContext(tableContext);\n return (\n {\n sendMessage('sort', { column, sortOrder });\n setSortOrder(sortOrder === 'ASC' ? 'DESC' : 'ASC');\n } : null}\n className={state.maxHeight ? 'fixed-header' : ''}\n >\n {column.name}\n {column.sortable && (\n \n \n \n )}\n \n );\n}\n\nHeaderCell.propTypes = {\n column: PropTypes.instanceOf(Object),\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { HeaderCell } from './header-cell';\nimport { tableContext } from '../tableContext';\n\nexport function Header({ allRowsSelected }) {\n const { state, sendMessage } = useContext(tableContext);\n const { columns, selectable } = state;\n\n const generateHeaders = () => columns.map((column) => (\n \n ));\n\n const generateSelectable = () => {\n const Component = selectable.type;\n return (\n \n {selectable?.allowSelectAll ? (\n
    \n {\n const isCheckbox = v?.target?.tagName.toLowerCase() === 'input' && v?.target?.type.toLowerCase() === 'checkbox';\n sendMessage('header.selectAll.change', isCheckbox ? v.target.checked : Boolean(v));\n }}\n >\n {selectable.values?.value}\n \n
    \n ) : (\n selectable.name || 'Select'\n )}\n \n );\n };\n\n return (\n \n \n {selectable?.position === 'LEFT' && generateSelectable()}\n {generateHeaders()}\n {selectable?.position === 'RIGHT' && generateSelectable()}\n \n \n );\n}\n\nHeader.propTypes = {\n allRowsSelected: PropTypes.bool,\n};\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * - Checkboxes are used when a user needs to select one or more values from a series of options.\n * - They can be also be used as a binary toggle but consider radio instead.\n * - Can be used with Formik respectively (FormikCheckbox)\n */\nclass Checkbox extends Component {\n getCssClasses() {\n const {\n inline, disabled, readOnly, theme = '', wrapperClassName = '',\n } = this.props;\n\n const cssClasses = [wrapperClassName];\n\n cssClasses.push('tyk-checkbox');\n\n if (inline) {\n cssClasses.push('tyk-checkbox--inline');\n }\n\n if (theme.trim()) {\n cssClasses.push(...theme.split(' ').map((t) => `tyk-checkbox--theme-${t}`));\n }\n\n if (disabled || readOnly) {\n cssClasses.push('tyk-checkbox--is-disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n displayError() {\n const { error } = this.props;\n if (!error) return null;\n\n return (\n

    \n {error}\n

    \n );\n }\n\n displayNote() {\n const { note } = this.props;\n if (!note) return null;\n\n return (\n

    \n {note}\n

    \n );\n }\n\n render() {\n const {\n input, value, label, ...rest\n } = this.props;\n return (\n \n
    \n \n {this.displayNote()}\n {this.displayError()}\n
    \n \n );\n }\n}\n\nCheckbox.propTypes = {\n /** Disable a checkbox */\n disabled: PropTypes.bool,\n /** Readonly prop behaves the same as disable on checkboxes */\n readOnly: PropTypes.bool,\n /** Align checkbox with in same line with other elements */\n inline: PropTypes.bool,\n /** Set a theme for checkbox */\n theme: PropTypes.string,\n /** Set an error state for checkbox if boolean will show just icon without message */\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Adds additional information under the checkbox element */\n note: PropTypes.string,\n input: PropTypes.instanceOf(Object),\n /** Adds a label to checkbox */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Set a name for checkbox */\n name: PropTypes.string,\n /** Set initial value for checkbox */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Make checkbox checked by default */\n checked: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Callback function executed on change of checkbox */\n onChange: PropTypes.func,\n /** CSS classes added to the wrapper of the component */\n wrapperClassName: PropTypes.string,\n};\n\nexport default Checkbox;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nexport function Cell({ col, row }) {\n if (!row.values[col.id]) {\n return ; // eslint-disable-line jsx-a11y/control-has-associated-label\n }\n\n if (col.type === 'string') {\n return (\n \n {row.values[col.id]?.value}\n \n );\n }\n const Component = col.type;\n return (\n \n \n {row.values[col.id].children ? row.values[col.id].children : null}\n
    \n \n );\n}\n\nCell.propTypes = {\n col: PropTypes.instanceOf(Object),\n row: PropTypes.instanceOf(Object),\n index: PropTypes.number,\n};\n","import React, { useCallback, useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport Checkbox from '../../../form/components/Checkbox';\nimport { Cell } from './cell';\nimport { tableContext } from '../tableContext';\n\nexport function Row({ row, index }) {\n const { state, sendMessage } = useContext(tableContext);\n const { columns, selectable } = state;\n\n const SelectableCheckbox = useCallback(() => (\n // eslint-disable-next-line jsx-a11y/control-has-associated-label\n \n sendMessage('row.selected', { index, selected: v.target.checked })}\n />\n \n ), [row.selected, index]);\n\n return (\n \n {selectable && selectable.position === 'LEFT' && SelectableCheckbox()}\n {columns.map((col) => (\n \n ))}\n {selectable && selectable.position === 'RIGHT' && SelectableCheckbox()}\n \n );\n}\n\nRow.propTypes = {\n row: PropTypes.instanceOf(Object),\n index: PropTypes.number,\n};\n","import React, { useContext } from 'react';\nimport { tableContext } from '../tableContext';\nimport { Row } from './row';\n\nexport function Body() {\n const { state } = useContext(tableContext);\n const { rows } = state;\n\n return (\n \n {\n // eslint-disable-next-line react/no-array-index-key\n rows.map((row, i) => )\n }\n \n );\n}\n","import React, {\n useCallback, useEffect, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport Message from '../Message';\nimport Pagination from '../../form/components/Pagination';\nimport Loader from '../Loader';\nimport InfiniteScroller from '../InfiniteScroller';\nimport { Header } from './js/header';\nimport { Body } from './js/body';\nimport { tableContext } from './tableContext';\n\n/**\n * This is tyk's table component used to render a data in a tabular view.\n * See the example configuration object below to understand how to hydrate the table component\n */\n\nfunction Table({\n value, onChange, noDataMessage, loading, infiniteScrolling,\n}) {\n const [state, setState] = useState(null);\n const [onChangeMsg, setOnChangeMsg] = useState('api');\n const itemsListRef = useRef(null);\n const sortRows = useCallback((col, sortOrder) => {\n setState((prevState) => ({\n ...prevState,\n sort: {\n order: sortOrder,\n col,\n },\n }));\n }, []);\n\n const selectAllRows = useCallback((selected) => {\n setState((prevState) => ({\n ...prevState,\n rows: prevState.rows.map((row) => ({ ...row, selected })),\n }));\n }, []);\n\n const selectRow = useCallback(({ index, selected }) => {\n setState((prevState) => ({\n ...prevState,\n rows: [\n ...prevState.rows.slice(0, index),\n { ...prevState.rows[index], selected },\n ...prevState.rows.slice(index + 1),\n ],\n }));\n }, []);\n\n const setPagination = useCallback((data) => {\n setState((prevState) => ({\n ...prevState,\n pagination: {\n ...prevState.pagination,\n current: data + 1,\n },\n }));\n }, []);\n\n const api = {\n getState: () => state,\n setState: (newState) => setState(newState),\n };\n\n const sendMessage = useCallback((message, data) => {\n setOnChangeMsg(message);\n if (message === 'sort') {\n sortRows(data.column.id, data.sortOrder);\n }\n\n if (message === 'header.selectAll.change') {\n selectAllRows(data);\n }\n\n if (message === 'row.selected') {\n selectRow(data);\n }\n\n if (message === 'pagination.change') {\n setPagination(data);\n }\n }, [sortRows, selectAllRows, selectRow, setPagination]);\n\n const context = useMemo(() => ({ state, sendMessage }), [state, sendMessage]);\n\n useEffect(() => setState(value), [value]);\n useEffect(() => {\n if (onChange) {\n onChange(onChangeMsg, state, api);\n }\n setOnChangeMsg('api');\n }, [state]);\n\n if (!state) {\n return ;\n }\n\n if (state.rows <= 0) {\n return {noDataMessage || 'No Data Available'};\n }\n\n const getTable = () => (\n \n
    selected)} />\n \n
    \n );\n\n return (\n \n
    \n {\n loading && \n }\n {\n infiniteScrolling && state.pagination\n ? (\n state.pagination.current}\n loadMore={(num) => sendMessage('pagination.change', num)}\n pageNumber={state.pagination.current - 1}\n initialLoad={false}\n >\n { getTable() }\n \n )\n : getTable()\n }\n
    \n {state.pagination && !infiniteScrolling && (\n
    \n sendMessage('pagination.change', num)}\n />\n
    \n )}\n
    \n );\n}\n\nTable.propTypes = {\n /** Configuration object used to render the component */\n value: PropTypes.shape({\n /** Configuration for table columns */\n columns: PropTypes.arrayOf(PropTypes.shape({\n /** Unique id of the column */\n id: PropTypes.string.isRequired,\n /** Name of the column */\n name: PropTypes.string,\n /** Type of column, String by default */\n type: PropTypes.oneOfType([\n /** Just renders cell data of type strings */\n PropTypes.string,\n /** Render cell of elements (eg. Input / Button) */\n PropTypes.element,\n /** Render a custom function/component */\n PropTypes.func,\n ]),\n sortable: PropTypes.oneOfType([\n /** Make Column sortable */\n PropTypes.bool,\n /** Configure sorting behaviour */\n PropTypes.shape({\n /** Set default sorting direction ASC / DESC */\n default: PropTypes.string,\n }),\n ]),\n })),\n /** Configuration for table rows */\n rows: PropTypes.arrayOf(PropTypes.shape({})),\n /** Configuration to make table rows selectable */\n selectable: PropTypes.shape({}),\n /** Renders pagination for table if the object is missing / empty no pagination is rendered. */\n pagination: PropTypes.shape({}),\n /** Sets maximum height for table container. */\n maxHeight: PropTypes.string,\n /** Styling for the table container. */\n styling: PropTypes.shape({\n /** It's recommended to add styles to a class and pass the class in this object */\n className: PropTypes.string,\n }),\n }).isRequired,\n /** Callback executed with message and value when there are changes on table */\n onChange: PropTypes.func,\n /** Renders a component with the given message when `config.rows` is empty */\n noDataMessage: PropTypes.string,\n /** Show placeholder loader */\n loading: PropTypes.bool,\n /** Adds infinite scroller on page and calls `onChange` with `pagination.change` message */\n infiniteScrolling: PropTypes.bool,\n};\n\nTable.defaultProps = {\n loading: false,\n infiniteScrolling: false,\n noDataMessage: 'No Data Available',\n onChange: null,\n};\n\nexport default Table;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Column({\n children,\n align,\n className,\n offset,\n size,\n ...rest\n}) {\n const classes = [\n 'tyk-col',\n className,\n align && `tyk-col--align-${align}`,\n ...size.split(' ').map((cSize) => `tyk-col--${cSize}`),\n ...(offset ? offset.split(' ') : []).map((cOffset) => `tyk-col--offset-${cOffset}`),\n ].filter(Boolean).join(' ');\n\n return (\n
    \n { children }\n
    \n );\n}\n\nColumn.propTypes = {\n /**\n * This property describes how the column element will be aligned vertically\n * within a Row: bottom, center, top\n */\n align: PropTypes.string,\n /** Css classes that can be passed to the column element */\n className: PropTypes.string,\n /**\n * Specifies the size of the column within a Row (values must be between 1 - 12)\n */\n size: PropTypes.string.isRequired,\n /**\n * Specifies the left gap a column can have within a Row (values must be between 1 - 12)\n */\n offset: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n ]),\n};\n\nexport default Column;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/** Row component which must be always present as a wrapper for Columns */\nfunction Row({\n className,\n nogutters,\n children,\n ...rest\n}) {\n const classes = [\n 'tyk-row',\n className,\n nogutters && 'no-gutters',\n nogutters && 'tyk-row--gutterless',\n ].filter(Boolean).join(' ');\n\n return (\n
    \n { children }\n
    \n );\n}\n\nRow.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n /** Css classes that can be passed to the Row element */\n className: PropTypes.string,\n /** Removes all the spaces between column */\n nogutters: PropTypes.bool,\n};\n\nexport default Row;\n","import { createContext } from 'react';\n\nexport const DropdownContext = createContext();\n","import React, { cloneElement, useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { DropdownContext } from '../dropdown-context';\nimport Icon from '../../../../components/Icon';\n\nfunction DropdownItem(props) {\n const {\n customdropdownitem,\n children,\n eventKey,\n href,\n target,\n title,\n onClick,\n } = props;\n const dropdownItemCLick = useCallback((dropdownContext, itemProps) => {\n dropdownContext.onSelectItem(eventKey, itemProps);\n\n if (onClick) onClick(eventKey);\n }, []);\n\n return (\n \n {\n (dropdownContext) => (\n dropdownItemCLick(dropdownContext, props)}\n onKeyUp={() => {}}\n >\n {\n customdropdownitem\n ? cloneElement(customdropdownitem, {})\n : (\n \n {\n eventKey\n && dropdownContext.selectedItem === eventKey\n && dropdownContext.showCheckmark\n ? \n : null\n }\n \n {title || children}\n \n \n )\n }\n \n )\n }\n \n );\n}\n\nDropdownItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n customdropdownitem: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n ]),\n eventKey: PropTypes.string,\n href: PropTypes.string,\n target: PropTypes.string,\n onClick: PropTypes.func,\n title: PropTypes.string,\n};\n\nexport default DropdownItem;\n","import React, {\n Component, createRef,\n} from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport DropdownItem from './js/DropdownItem';\nimport Button from '../../../components/Button';\nimport { DropdownContext } from './dropdown-context';\n\nclass Dropdown extends Component {\n static isElemInRightView(el, dropdownWidth) {\n const windowWidth = window.innerWidth;\n const offset = el.getBoundingClientRect();\n const elemRight = offset.left + dropdownWidth;\n\n return elemRight <= windowWidth;\n }\n\n static isElemInBottomView(el, dropdownHeight) {\n const windowHeight = window.innerHeight;\n const offset = el.getBoundingClientRect();\n const elHeight = el.clientHeight;\n const elemBottom = offset.top + elHeight + dropdownHeight;\n\n return elemBottom <= windowHeight;\n }\n\n constructor(props) {\n super(props);\n\n const {\n selectedItem,\n open,\n } = this.props;\n\n this.state = {\n opened: open,\n selectedItem: selectedItem || null,\n };\n\n this.dropdownRef = createRef();\n this.dropdownListRef = createRef();\n this.dropdownButtonRef = createRef();\n this.onSelectItem = this.onSelectItem.bind(this);\n this.toggleDropdown = this.toggleDropdown.bind(this);\n this.handleClickOutside = this.handleClickOutside.bind(this);\n }\n\n componentDidMount() {\n document.addEventListener('mousedown', this.handleClickOutside);\n\n if (this.dropdownListRef.current) {\n this.getStyles();\n }\n }\n\n componentDidUpdate(prevProps) {\n const {\n open,\n } = this.props;\n const {\n opened,\n } = this.state;\n\n if (this.dropdownListRef.current) {\n this.getStyles();\n }\n\n if (\n !prevProps.open\n && open === true\n && !opened\n ) {\n this.toggleDropdown();\n }\n\n if (\n prevProps.open\n && open === false\n && opened\n ) {\n this.closeDropdown();\n }\n }\n\n componentWillUnmount() {\n document.removeEventListener('mousedown', this.handleClickOutside);\n }\n\n handleClickOutside(event) {\n if (\n this.dropdownListRef.current && !this.dropdownListRef.current.contains(event.target)\n && this.dropdownRef.current && !this.dropdownRef.current.contains(event.target)\n ) {\n this.closeDropdown();\n }\n }\n\n onSelectItem(itemId, itemProps) {\n const { closeOnSelect, onSelect } = this.props;\n const changes = {\n selectedItem: itemId,\n selectedItemProps: itemProps,\n };\n\n if (closeOnSelect) {\n changes.opened = false;\n }\n\n this.setState(changes);\n\n if (onSelect && typeof onSelect === 'function') {\n onSelect(itemId);\n }\n }\n\n getStyles() {\n const {\n display,\n position,\n offset,\n } = this.props;\n\n const dropdownEl = this.dropdownListRef.current;\n\n if (offset) {\n dropdownEl.style.top = `${offset.top}`;\n dropdownEl.style.left = `${offset.left}`;\n return;\n }\n\n const scrollTop = Math.max(\n document.documentElement.scrollTop,\n document.body.scrollTop,\n window.scrollY,\n );\n const el = this.dropdownRef.current;\n const elHeight = el.clientHeight;\n const dropdownHeight = dropdownEl ? dropdownEl.clientHeight : 0;\n const dropdownWidth = dropdownEl ? dropdownEl.clientWidth : 0;\n const offsetPosition = el.getBoundingClientRect();\n const { left, top } = offsetPosition;\n let customTop = 0;\n let customLeft = left;\n\n // calculate top position, depending on the element position on the page\n if (Dropdown.isElemInBottomView(el, dropdownHeight)) {\n customTop = top + scrollTop + elHeight;\n } else {\n customTop = top + scrollTop - dropdownHeight - 5;\n }\n\n if (!Dropdown.isElemInRightView(el, dropdownWidth)) {\n customLeft = left + el.clientWidth - dropdownWidth;\n }\n\n if (position !== 'relative') {\n dropdownEl.style.top = `${customTop}px`;\n if (display !== 'block') {\n dropdownEl.style.left = `${customLeft}px`;\n }\n }\n if (display !== 'block') {\n dropdownEl.style.minWidth = `${this.dropdownButtonRef.current.clientWidth}px`;\n }\n }\n\n getWrapperCssClasses() {\n const {\n btnGroup,\n btnGroupSize,\n className,\n btnTheme,\n wrapperClassName = '',\n } = this.props;\n let cssClasses = [wrapperClassName, 'tyk-dropdown'];\n\n cssClasses.push(`theme-${btnTheme || 'default'}`);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n if (btnGroup) {\n cssClasses.push('tyk-button-group');\n cssClasses.push(btnGroupSize ? `tyk-button-group--${btnGroupSize}` : 'tyk-button-group--md');\n }\n\n return cssClasses.join(' ');\n }\n\n getCssClasses() {\n const {\n opened,\n } = this.state;\n const {\n hasCustomContent,\n display,\n listclassnames,\n position,\n maxHeight,\n } = this.props;\n let cssClasses = ['tyk-dropdown-menu', 'tyk-dropdown'];\n\n if (maxHeight) {\n cssClasses.push('tyk-dropdown--scrollable');\n }\n\n if (opened) {\n cssClasses.push('opened');\n }\n\n if (listclassnames) {\n cssClasses = cssClasses.concat(listclassnames.split(' '));\n }\n\n if (display) {\n cssClasses.push('tyk-dropdown--block');\n }\n\n if (hasCustomContent) {\n cssClasses.push('tyk-dropdown--custom');\n }\n\n if (position === 'relative') {\n cssClasses.push('tyk-dropdown--relative');\n }\n\n return cssClasses.join(' ');\n }\n\n getBtnTitle() {\n const { btnTitle, stopButtonTextChange } = this.props;\n const { selectedItemProps } = this.state;\n\n if (!stopButtonTextChange && selectedItemProps?.title) {\n return selectedItemProps.title;\n }\n\n return btnTitle;\n }\n\n closeDropdown() {\n const { onClose } = this.props;\n\n this.setState({\n opened: false,\n }, () => {\n if (onClose) {\n onClose();\n }\n });\n }\n\n toggleDropdown() {\n const {\n opened,\n } = this.state;\n if (opened) {\n this.closeDropdown();\n\n return;\n }\n\n this.setState({\n opened: true,\n });\n }\n\n render() {\n const {\n appendTo,\n btnClassName,\n btnSize,\n customBtnTitle,\n hasCustomContent,\n btnTheme,\n children,\n label,\n showDropdownIcon,\n showTriggerButton,\n showCheckmark,\n disabled = false,\n maxHeight,\n } = this.props;\n const {\n selectedItem,\n opened,\n } = this.state;\n const DropdownWrapperTag = hasCustomContent ? 'div' : 'ul';\n return (\n \n {\n label\n ? (\n \n )\n : null\n }\n {\n showTriggerButton\n ? (\n \n { customBtnTitle || this.getBtnTitle() }\n \n )\n : null\n }\n {\n opened\n ? ReactDOM.createPortal(\n \n {\n opened\n ? (\n \n {\n (typeof children === 'function')\n ? children({\n closeDropdown: this.closeDropdown.bind(this),\n })\n : children\n }\n \n )\n : null\n }\n ,\n document.querySelector(appendTo || 'body'),\n )\n : null\n }\n \n );\n }\n}\n\nDropdown.propTypes = {\n appendTo: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n PropTypes.func,\n ]),\n closeOnSelect: PropTypes.bool,\n btnClassName: PropTypes.string,\n btnSize: PropTypes.string,\n btnGroupSize: PropTypes.string,\n btnTheme: PropTypes.string,\n btnTitle: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n customBtnTitle: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n btnGroup: PropTypes.bool,\n className: PropTypes.string,\n display: PropTypes.string,\n disabled: PropTypes.bool,\n hasCustomContent: PropTypes.bool,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n listclassnames: PropTypes.string,\n onClose: PropTypes.func,\n onSelect: PropTypes.func,\n open: PropTypes.bool,\n offset: PropTypes.instanceOf(Object),\n position: PropTypes.string,\n selectedItem: PropTypes.string,\n showDropdownIcon: PropTypes.bool,\n stopButtonTextChange: PropTypes.bool,\n showTriggerButton: PropTypes.bool,\n showCheckmark: PropTypes.bool,\n maxHeight: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\n\nDropdown.defaultProps = {\n closeOnSelect: false,\n showDropdownIcon: true,\n showTriggerButton: true,\n showCheckmark: true,\n open: false,\n};\n\nDropdown.Item = DropdownItem;\n\nexport default Dropdown;\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../../../components/Button';\nimport ButtonGroup from '../../../components/ButtonGroup';\n\nfunction DropdownTrigger({\n title,\n theme = 'primary',\n splitTrigger,\n toggle,\n onTriggerClick,\n value,\n}, ref) {\n return (\n !splitTrigger ? (\n \n {title}\n \n ) : (\n \n onTriggerClick(value) }}\n >\n {title}\n \n \n \n )\n );\n}\n\nDropdownTrigger.propTypes = {\n title: PropTypes.string,\n theme: PropTypes.string,\n splitTrigger: PropTypes.bool,\n toggle: PropTypes.func,\n dropdownRef: PropTypes.shape({\n current: PropTypes.instanceOf(Element),\n }).isRequired,\n onTriggerClick: PropTypes.func,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n};\n\nexport default forwardRef(DropdownTrigger);\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport FloatingContainer from '../../../components/FloatingContainer';\nimport List from '../../../components/List';\n\nfunction DropdownListWrapper({\n children,\n element,\n maxWidth,\n}, ref) {\n return (\n \n \n { children }\n \n \n );\n}\n\nDropdownListWrapper.propTypes = {\n element: PropTypes.shape({\n current: PropTypes.instanceOf(Element),\n }),\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n maxWidth: PropTypes.string,\n};\n\nexport default forwardRef(DropdownListWrapper);\n","import { createContext, useContext } from 'react';\n\nexport const DropdownContext = createContext();\n\nfunction useDropdowContext() {\n return useContext(DropdownContext);\n}\n\nexport default useDropdowContext;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport List from '../../../components/List';\nimport useDropdowContext from './useDrodpownContext';\n\nfunction DropdownItem({\n children,\n value,\n}) {\n const { onChange, value: dropdownValue } = useDropdowContext();\n return (\n \n onChange(value) }}\n >\n { children }\n \n \n );\n}\n\nDropdownItem.propTypes = {\n children: PropTypes.node,\n // eslint-disable-next-line\n value: PropTypes.any,\n};\n\nexport default DropdownItem;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport useDropdown from './useDropdown';\nimport DropdownTrigger from './DropdownTrigger';\nimport DropdownListWrapper from './DropdownListWrapper';\nimport DropdownItem from './DropdowItem';\nimport { DropdownContext } from './useDrodpownContext';\n\nfunction Dropdown2({\n children,\n title,\n theme,\n splitTrigger,\n onChange,\n value,\n setSelectedValueAsTitle,\n maxWidth,\n onTriggerClick,\n}) {\n const {\n isOpen,\n toggle,\n dropdownRef,\n dropdownListRef,\n } = useDropdown({\n splitTrigger,\n });\n\n const contextValue = useMemo(() => ({\n onChange,\n value,\n }), [onChange, value]);\n\n return (\n \n \n {isOpen && (\n \n { children }\n \n )}\n \n );\n}\n\nDropdown2.propTypes = {\n /** Title of the dropdown. It is being displayed in the Drodpown trigger */\n title: PropTypes.string,\n /** Theme of the dropdown trigger */\n theme: PropTypes.string,\n children: PropTypes.node,\n /** If true, the dropdown trigger will be split into two buttons.\n * one with the dropdown title and one for the arrow */\n splitTrigger: PropTypes.bool,\n /** Callback function called when a dropdown item is selected */\n onChange: PropTypes.func,\n /** Value of the selected dropdown item */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n /** If true, the selected value will be displayed in the dropdown trigger */\n setSelectedValueAsTitle: PropTypes.bool,\n /** sets the maximum width of the dropdown list menu */\n maxWidth: PropTypes.string,\n /** this function is being called when splitTrigger is true,\n * and receives as parameter the current value of the dropdown */\n onTriggerClick: PropTypes.func,\n};\n\nDropdown2.Item = DropdownItem;\n\nexport default Dropdown2;\n","import {\n useState, useRef, useCallback, useEffect,\n} from 'react';\n\nconst useDropdown = ({\n splitTrigger,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const dropdownRef = useRef(null);\n const dropdownListRef = useRef(null);\n\n const toggle = () => setIsOpen(!isOpen);\n\n const handleOutsideClick = useCallback((e) => {\n const triggerElement = !splitTrigger\n ? dropdownRef.current\n : dropdownRef.current.querySelector('.dropdown__trigger');\n if (\n isOpen\n && !triggerElement.contains(e.target)\n && !dropdownListRef.current.contains(e.target)\n ) {\n setIsOpen(false);\n }\n }, [isOpen]);\n\n useEffect(() => {\n document.addEventListener('mousedown', handleOutsideClick);\n return () => {\n document.removeEventListener('mousedown', handleOutsideClick);\n };\n }, [handleOutsideClick]);\n\n return {\n isOpen,\n toggle,\n dropdownRef,\n dropdownListRef,\n };\n};\n\nexport default useDropdown;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-ace\");","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport ace from 'ace-builds/src-noconflict/ace';\nimport AceEditor from 'react-ace';\nimport 'ace-builds/src-noconflict/mode-javascript';\nimport 'ace-builds/src-noconflict/mode-golang';\nimport 'ace-builds/src-noconflict/mode-python';\nimport 'ace-builds/src-noconflict/mode-css';\nimport 'ace-builds/src-noconflict/mode-json';\nimport 'ace-builds/src-noconflict/mode-xml';\nimport 'ace-builds/src-noconflict/mode-jsx';\nimport 'ace-builds/src-noconflict/ext-searchbox';\nimport 'ace-builds/src-noconflict/ext-beautify';\nimport 'ace-builds/src-noconflict/theme-github';\nimport jsonWorker from 'ace-builds/src-noconflict/worker-json';\n\nace.config.setModuleUrl('ace/mode/json_worker', jsonWorker);\n\nfunction CodeEditor(props) {\n const {\n disabled,\n readOnly,\n disableValidation,\n id,\n error,\n label,\n labelwidth,\n note,\n onBlur,\n onChange,\n theme,\n value,\n setOptions,\n wrapperClassName,\n } = props;\n const classes = [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const finalSetOptions = {\n ...setOptions,\n ...disableValidation && { useWorker: false },\n };\n\n const getCodeEditorError = useCallback(() => (\n error && error !== 'true' && error !== 'false'\n ? (\n

    \n {error}\n

    \n )\n : null\n ), [error]);\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const getNonLabelWidth = useCallback(() => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n }, [labelwidth]);\n\n const handleOnChange = useCallback((newValue) => {\n if (onChange) onChange(newValue);\n }, [onChange]);\n\n const handleOnBlur = useCallback(() => {\n if (onBlur) onBlur(value);\n }, [onBlur, value]);\n\n return (\n
    \n {\n label\n ? \n : null\n }\n
    \n {\n // eslint-disable-next-line\n editorInstance.container.style.resize = 'both';\n // mouseup = css resize end\n document.addEventListener('mouseup', () => (\n editorInstance.resize()\n ));\n }}\n setOptions={finalSetOptions}\n />\n {\n note\n ?

    { note }

    \n : null\n }\n { getCodeEditorError() }\n
    \n
    \n );\n}\n\nCodeEditor.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n disableValidation: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n mode: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n theme: PropTypes.string,\n value: PropTypes.string,\n setOptions: PropTypes.instanceOf(Object),\n wrapperClassName: PropTypes.string,\n};\n\nexport default CodeEditor;\n","import React, { Component, createRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\nimport Button from '../../../components/Button';\n\nconst getStateSelectedValues = (multiple, tags, value) => {\n if (!value) {\n return (multiple || tags) ? [] : null;\n }\n\n return value;\n};\n\nclass Combobox extends Component {\n static closeList() {\n return {\n cursor: -1,\n opened: false,\n };\n }\n\n static openList() {\n return {\n opened: true,\n };\n }\n\n static filterByName(itemValue, inputValue) {\n return itemValue.name.toLowerCase().indexOf(inputValue) > -1;\n }\n\n constructor(props) {\n super(props);\n const {\n multiple,\n tags,\n value,\n } = props;\n\n this.state = {\n cursor: -1,\n opened: false,\n width: 50,\n initialValue: value,\n stateSelectedValues: getStateSelectedValues(multiple, tags, value),\n searchText: '',\n tags,\n };\n\n this.comboboxRef = createRef();\n this.valuesListRef = createRef();\n this.inputRef = createRef();\n this.textRef = createRef();\n\n this.focusInput = this.focusInput.bind(this);\n this.onKeyUp = this.onKeyUp.bind(this);\n Combobox.openList = Combobox.openList.bind(this);\n this.handleClickOutside = this.handleClickOutside.bind(this);\n this.handleItemsNavigation = this.handleItemsNavigation.bind(this);\n this.handleComboboxDropdownClick = this.handleComboboxDropdownClick.bind(this);\n this.handleListItemClick = this.handleListItemClick.bind(this);\n this.handlePillRemoveClick = this.handlePillRemoveClick.bind(this);\n this.manageSelectedTags = this.manageSelectedTags.bind(this);\n }\n\n componentDidMount() {\n const { tags } = this.props;\n\n if (tags) {\n this.setInputWidth();\n }\n\n this.bindEvents();\n }\n\n componentWillUnmount() {\n this.unBindEvents();\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n if (\n JSON.stringify(nextProps.value) !== JSON.stringify(prevState.initialValue)\n || nextProps.tags !== prevState.tags\n ) {\n return {\n initialValue: nextProps.value,\n stateSelectedValues: getStateSelectedValues(\n nextProps.multiple,\n nextProps.tags,\n nextProps.value,\n ),\n tags: nextProps.tags,\n };\n }\n\n return null;\n }\n\n handleItemsNavigation(e) {\n const { tags } = this.props;\n if (['ArrowDown', 'ArrowUp'].indexOf(e.key) === -1) {\n return;\n }\n\n const { cursor } = this.state;\n const filteredValues = this.filterValues();\n let cursorNext;\n\n e.preventDefault();\n\n if (e.key === 'ArrowDown') {\n if (cursor === -1 || cursor === filteredValues.length - 1) {\n cursorNext = 0;\n } else if (cursor < filteredValues.length - 1) {\n cursorNext = cursor + 1;\n }\n }\n\n if (e.key === 'ArrowUp') {\n if (cursor > 0) {\n cursorNext = cursor - 1;\n } else {\n cursorNext = filteredValues.length - 1;\n }\n }\n\n if (this.valuesListRef.current && cursorNext > 4) {\n const scrollTop = (cursorNext - 4) * 38;\n\n this.valuesListRef.current.scrollTop = (!tags) ? 60 + scrollTop : scrollTop;\n } else if (this.valuesListRef.current) {\n this.valuesListRef.current.scrollTop = 0;\n }\n\n this.setState((previousState) => ({\n ...previousState,\n opened: true,\n cursor: cursorNext,\n }));\n }\n\n handleListItemClick(index) {\n // eslint-disable-next-line react/destructuring-assignment\n const clickedValue = this.props.values[index];\n if (clickedValue.disabled) return;\n\n const { multiple, tags } = this.props;\n\n const methodName = (tags) ? 'manageSelectedTags' : 'manageSelectedValues';\n const tempState = { ...this.state, ...this[methodName](index) };\n\n this.setState((previousState) => {\n if (!multiple && !tags) {\n tempState.opened = false;\n }\n\n return { ...previousState, ...tempState };\n });\n }\n\n handlePillRemoveClick(index) {\n const { disabled } = this.props;\n\n if (disabled) {\n return;\n }\n\n const tempState = this.removeSelectedValue(index);\n\n this.setState((previousState) => ({ ...previousState, ...tempState }));\n }\n\n handleClickOutside(event) {\n if (\n this.valuesListRef.current && !this.valuesListRef.current.contains(event.target)\n && this.comboboxRef.current && !this.comboboxRef.current.contains(event.target)\n ) {\n this.setState((previousState) => ({ ...previousState, ...Combobox.closeList() }));\n }\n }\n\n handleComboboxDropdownClick() {\n const { disabled } = this.props;\n\n if (disabled) {\n return;\n }\n\n this.setState((previousState) => ({ ...previousState, ...Combobox.openList() }));\n }\n\n onKeyUp(e) {\n const { tags, allowCustomValues } = this.props;\n const { cursor, opened } = this.state;\n const filteredValues = this.filterValues();\n let tempState = this.getSearchText();\n\n if (tags && e.key !== 'Escape') {\n tempState = { ...tempState, ...this.setInputWidth() };\n }\n\n if (e.key === 'Enter') {\n const methodName = (tags) ? 'manageSelectedTags' : 'manageSelectedValues';\n tempState = { ...tempState, ...this[methodName](cursor) };\n }\n\n if (allowCustomValues && e.key !== ' ' && tags) {\n tempState = { ...tempState, ...this.manageSelectedTags() };\n }\n\n if (\n !opened\n && this.inputRef.current.value\n && filteredValues?.length\n && e.key !== 'Escape'\n ) {\n tempState = { ...tempState, ...Combobox.openList() };\n }\n\n if (e.key === 'Escape' && opened) {\n tempState = { ...tempState, ...Combobox.closeList() };\n }\n\n if (opened && filteredValues && !filteredValues.length) {\n tempState = { ...tempState, ...Combobox.closeList() };\n }\n\n this.setState((previousState) => ({ ...previousState, ...tempState }));\n }\n\n getLabelStyles() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n getNonLabelWidth() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n setInputWidth() {\n return {\n width: 50 + this.textRef.current.offsetWidth,\n };\n }\n\n getSelectedIndex(value) {\n const { stateSelectedValues } = this.state;\n let position = -1;\n\n if (Array.isArray(stateSelectedValues)) {\n stateSelectedValues.forEach((item, index) => {\n if (item.id === value.id) {\n position = index;\n }\n });\n } else if (stateSelectedValues) {\n if (stateSelectedValues.id === value.id) {\n position = 0;\n }\n }\n\n return position;\n }\n\n getSearchText() {\n return {\n searchText: this.inputRef.current.value,\n };\n }\n\n getListItemCssClasses(value, index) {\n const cssClasses = [];\n const {\n cursor,\n } = this.state;\n\n if (cursor === index) {\n cssClasses.push('active');\n }\n\n if (value.disabled) {\n cssClasses.push('disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n getComboboxListCssClass() {\n const { opened } = this.state;\n const { tags, theme } = this.props;\n const themes = theme ? theme.split(' ') : [];\n\n const cssClasses = ['tyk-combobox__list'];\n\n if (opened) {\n cssClasses.push('tyk-combobox__list--opened');\n }\n\n if (tags) {\n cssClasses.push('tyk-combobox__list--has-tags');\n }\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n return cssClasses.join(' ');\n }\n\n getCssClasses() {\n const {\n error, disabled, theme, labelwidth,\n } = this.props;\n const cssClasses = ['tyk-form-group', 'tyk-combobox'];\n const themes = theme ? theme.split(' ') : [];\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (disabled) {\n cssClasses.push('disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n getInputError() {\n const { error } = this.props;\n\n return (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null;\n }\n\n getStyles() {\n const { scrollTop } = document.documentElement;\n const el = this.comboboxRef.current;\n const elHeight = el.offsetHeight;\n const elWidth = el.offsetWidth;\n\n const offset = el.getBoundingClientRect();\n const { left } = offset;\n let top = 0;\n\n top = offset.top + scrollTop + elHeight;\n\n return {\n top: `${top - 1}px`,\n left: `${left}px`,\n width: `${elWidth}px`,\n };\n }\n\n getComboboxDisplayData() {\n const { stateSelectedValues } = this.state;\n const { multiple, placeholder, values } = this.props;\n\n if (!stateSelectedValues) {\n return placeholder;\n }\n\n if (stateSelectedValues && Array.isArray(stateSelectedValues) && !stateSelectedValues.length) {\n return placeholder;\n }\n\n if (stateSelectedValues && !Array.isArray(stateSelectedValues) && !stateSelectedValues.id) {\n return placeholder;\n }\n\n if (Array.isArray(stateSelectedValues) && multiple) {\n return stateSelectedValues.reduce((prevValue, value, index) => prevValue + value.name + ((index !== stateSelectedValues.length - 1) ? ', ' : ''), '');\n }\n\n if (\n values?.length\n && !Array.isArray(stateSelectedValues) && !stateSelectedValues.name\n ) {\n return values.filter((value) => value.id === stateSelectedValues.id)[0].name;\n }\n\n return stateSelectedValues.name;\n }\n\n manageSelectedTags(index) {\n const { max, allowCustomValues } = this.props;\n const { stateSelectedValues } = this.state;\n const filteredValues = this.filterValues();\n const value = { id: this.inputRef.current.value, name: this.inputRef.current.value };\n\n if (allowCustomValues === false && index === -1) {\n return null;\n }\n\n const tempValue = filteredValues[index] || value;\n const selectedIndex = this.getSelectedIndex(tempValue);\n let selectedValues = {};\n\n this.inputRef.current.value = '';\n\n if (selectedIndex > -1 && this.isInInitialValues(tempValue)) {\n selectedValues = this.removeSelectedValue(selectedIndex);\n } else if (selectedIndex === -1) {\n if (max && stateSelectedValues.length >= max) {\n return selectedValues;\n }\n selectedValues = this.addSelectedValue(tempValue);\n }\n\n return selectedValues;\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n manageSelectedValues(index) {\n const { stateSelectedValues } = this.state;\n const { multiple, onChange, max } = this.props;\n const filteredValues = this.filterValues();\n const tempSelectedValues = filteredValues[index];\n let selectedValues;\n const selectedIndex = this.getSelectedIndex(tempSelectedValues);\n\n if (tempSelectedValues && multiple) {\n if (selectedIndex > -1) {\n selectedValues = this.removeSelectedValue(selectedIndex);\n } else {\n if (max && stateSelectedValues.length >= max) {\n return selectedValues;\n }\n selectedValues = this.addSelectedValue(filteredValues[index]);\n }\n } else {\n selectedValues = {\n stateSelectedValues: (selectedIndex === -1) ? tempSelectedValues : { id: null },\n };\n\n onChange?.((selectedIndex === -1) ? tempSelectedValues : null);\n }\n\n return selectedValues;\n }\n\n removeSelectedValue(index) {\n const { stateSelectedValues } = this.state;\n const { onChange } = this.props;\n const tempStateSelectedValues = JSON.parse(JSON.stringify(stateSelectedValues));\n\n tempStateSelectedValues.splice(index, 1);\n\n if (onChange && typeof onChange === 'function') {\n onChange(tempStateSelectedValues.length ? tempStateSelectedValues : null);\n }\n\n return {\n stateSelectedValues: tempStateSelectedValues,\n searchText: '',\n };\n }\n\n addSelectedValue(value) {\n const { stateSelectedValues } = this.state;\n const { onChange } = this.props;\n const tempStateSelectedValues = JSON.parse(JSON.stringify(stateSelectedValues));\n\n tempStateSelectedValues.push(value);\n\n if (onChange && typeof onChange === 'function') {\n onChange(tempStateSelectedValues.length ? tempStateSelectedValues : null);\n }\n\n return {\n stateSelectedValues: tempStateSelectedValues,\n searchText: '',\n };\n }\n\n isInInitialValues(value) {\n const { values } = this.props;\n let ok = false;\n\n values.forEach((item) => {\n if (value.id === item.id) {\n ok = true;\n }\n });\n\n return ok;\n }\n\n filterValues() {\n const { values, searchItem } = this.props;\n\n if (!this.inputRef.current) {\n return values;\n }\n\n const arr = values\n .filter(\n (value) => (searchItem\n ? searchItem(value, this.inputRef.current.value.toLowerCase())\n : Combobox.filterByName(value, this.inputRef.current.value.toLowerCase())),\n );\n\n return arr;\n }\n\n bindEvents() {\n document.addEventListener('mousedown', this.handleClickOutside);\n }\n\n unBindEvents() {\n document.removeEventListener('mousedown', this.handleClickOutside);\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n reset() {\n const { multiple, tags, value } = this.props;\n\n this.setState({\n stateSelectedValues: getStateSelectedValues(multiple, tags, value),\n });\n }\n\n focusInput() {\n if (this.inputRef.current) {\n this.inputRef.current.focus();\n }\n }\n\n renderInput(filteredValues) {\n const {\n disabled,\n tags,\n max,\n placeholder,\n } = this.props;\n const {\n width, searchText, stateSelectedValues,\n } = this.state;\n\n return (\n {}}\n ref={this.comboboxRef}\n >\n {\n tags\n ? (\n <>\n {\n (stateSelectedValues || []).map((value, index) => (\n
  • \n \n \n \n { value.name }\n
  • \n ))\n }\n \n {(max === undefined || stateSelectedValues?.length < max) && (\n <>\n {\n if (e.key === 'Enter') {\n e.preventDefault();\n }\n this.handleItemsNavigation(e);\n }}\n onKeyUp={this.onKeyUp}\n placeholder={(!stateSelectedValues?.length) ? placeholder : ''}\n ref={this.inputRef}\n style={{\n width: (!stateSelectedValues?.length) ? '100%' : `${width}px`,\n }}\n />\n \n { searchText }\n \n \n )}\n {filteredValues.length > 0 && (\n \n )}\n \n \n )\n : (\n {}}\n >\n { this.getComboboxDisplayData() }\n \n \n )\n }\n \n );\n }\n\n renderDropdown(filteredValues) {\n const { tags } = this.props;\n const { opened } = this.state;\n return (\n \n {\n !tags\n ? (\n
  • \n \n
  • \n )\n : null\n }\n {\n filteredValues\n .map((value, index) => (\n {}}\n key={value.id}\n >\n {\n (this.getSelectedIndex(value) > -1)\n ? \n : null\n }\n \n {' '}\n { value.name }\n \n \n ))\n }\n \n );\n }\n\n render() {\n const {\n CustomListComponent,\n id,\n label,\n note,\n } = this.props;\n const { opened } = this.state;\n\n const filteredValues = this.filterValues();\n\n return (\n <>\n
    \n {\n label\n ? \n : null\n }\n \n {this.renderInput(filteredValues)}\n {\n note\n ?

    { note }

    \n : null\n }\n { this.getInputError() }\n
    \n \n {\n // eslint-disable-next-line no-nested-ternary\n !CustomListComponent\n ? opened && filteredValues.length\n ? ReactDOM.createPortal(\n this.renderDropdown(filteredValues),\n document.querySelector('body'),\n )\n : null\n : (\n \n )\n }\n \n );\n }\n}\n\nCombobox.propTypes = {\n allowCustomValues: PropTypes.bool,\n CustomListComponent: PropTypes.elementType,\n searchItem: PropTypes.func,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n id: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n multiple: PropTypes.bool,\n max: PropTypes.number,\n note: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n tags: PropTypes.bool,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.instanceOf(Object),\n PropTypes.instanceOf(Array),\n ]),\n values: PropTypes.instanceOf(Array),\n};\n\nCombobox.defaultProps = {\n allowCustomValues: true,\n};\n\nexport default Combobox;\n","import React, { useState, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from '../../../../components/Icon';\nimport Pill from '../../../../components/Pill';\n\nfunction Value(props) {\n const {\n value,\n max,\n tags,\n tagSeparators,\n addTagOnBlur,\n placeholder,\n disabled,\n renderValue,\n valueOverflow,\n focus,\n onMessage: sendMessage,\n readOnly,\n } = props;\n const INPUT_MIN_WIDTH = 60;\n const inputRef = useRef(null);\n const dummyElementRef = useRef(null);\n const [inputValue, setInputValue] = useState('');\n const [inputWidth, setInputWidth] = useState(`${INPUT_MIN_WIDTH + 10}px`);\n\n function entryFieldOnChange(val) {\n if (tagSeparators.some((ts) => val.slice(-1) === ts)) return;\n const dummy = dummyElementRef.current;\n dummy.innerHTML = val;\n setInputWidth(`${Math.max(dummy.clientWidth, INPUT_MIN_WIDTH) + 10}px`);\n setInputValue(val);\n sendMessage('tag.input.change', val);\n }\n\n function entryFieldOnKeyDown(key, val) {\n if (!tags) return;\n if (val === '' && key === 'Backspace' && value.length) {\n sendMessage('tag.remove', value[value.length - 1].id);\n return;\n }\n if (key === 'Enter') {\n sendMessage('tag.input.enter', val);\n entryFieldOnChange('');\n return;\n }\n if (key === 'ArrowUp') {\n sendMessage('tag.input.arrowUp');\n return;\n }\n if (key === 'ArrowDown') {\n sendMessage('tag.input.arrowDown');\n return;\n }\n if (key === 'Escape') {\n sendMessage('tag.input.escape');\n return;\n }\n if (tagSeparators.includes(key)) {\n sendMessage('tag.add', val);\n entryFieldOnChange('');\n }\n }\n\n function triggerAction() {\n sendMessage('text-value.click');\n }\n\n function textValue(val, isPlaceholder = false) {\n if (readOnly) return val || '-';\n\n const classes = [\n 'tyk-combobox2__text-value',\n `overflow-${valueOverflow}`,\n isPlaceholder && 'is-placeholder',\n ].filter(Boolean).join(' ');\n return (\n \n {val}\n \n );\n }\n\n function renderCustomValue(v) {\n const config = {\n tags,\n tagSeparators,\n placeholder,\n disabled,\n renderValue,\n sendMessage,\n };\n return renderValue(v, config);\n }\n\n function renderTag(v) {\n if (renderValue) return renderCustomValue(v);\n\n return (\n \n {\n e.stopPropagation();\n sendMessage('tag.remove', v.id);\n }}\n aria-label=\"remove\"\n >\n \n \n { v.name }\n \n );\n }\n\n function getTags() {\n return (\n <>\n {value.map(renderTag)}\n {value.length < max && (\n <>\n entryFieldOnChange(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') e.preventDefault();\n entryFieldOnKeyDown(e.key, e.target.value);\n }}\n onFocus={() => sendMessage('tag.input.focus')}\n onBlur={(e) => {\n sendMessage('tag.input.blur', e.target.value);\n if (addTagOnBlur) entryFieldOnChange('');\n }}\n />\n \n \n )}\n \n );\n }\n\n useEffect(() => {\n if (focus && inputRef.current) inputRef.current.focus();\n }, [focus]);\n\n if (readOnly) {\n return
    {textValue(value.map((v) => v.name).join(', '))}
    ;\n }\n\n if (tags) return getTags();\n if (renderValue) {\n return value.length === 0 ? textValue(placeholder, true) : value.map(renderCustomValue);\n }\n return value.length === 0\n ? textValue(placeholder, true)\n : textValue(value.map((v) => v.name).join(', '));\n}\n\nValue.propTypes = {\n value: PropTypes.instanceOf(Array),\n max: PropTypes.number,\n tags: PropTypes.instanceOf(Array),\n tagSeparators: PropTypes.instanceOf(Array),\n addTagOnBlur: PropTypes.bool,\n placeholder: PropTypes.string,\n disabled: PropTypes.bool,\n renderValue: PropTypes.func,\n valueOverflow: PropTypes.string,\n focus: PropTypes.bool,\n onMessage: PropTypes.func,\n readOnly: PropTypes.bool,\n};\n\nexport default Value;\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from '../../../../components/Icon';\n\nfunction List(props) {\n const {\n listRef,\n tags,\n values,\n searchValue,\n activeItem,\n onMessage: sendMessage,\n renderListItem,\n selectAll,\n showSearch,\n } = props;\n\n useEffect(() => {\n if (!listRef.current) return;\n const activeElement = listRef.current.querySelector('.active');\n if (activeElement) activeElement.scrollIntoView({ block: 'end' });\n }, [activeItem]);\n\n function renderItem(item) {\n if (renderListItem) {\n return renderListItem(item, {\n tags, searchValue, sendMessage, activeItem,\n });\n }\n\n return (\n !item.disabled && sendMessage('value.select', { item })}\n onKeyDown={() => {}}\n >\n {item.selected && }\n {item.name}\n \n );\n }\n\n function renderSelectAllOption() {\n const isAllSelected = values.every((v) => v.selected);\n const isNoneSelected = values.every((v) => !v.selected);\n const label = selectAll?.label ?? 'Select All';\n const mode = selectAll?.mode ?? 'select';\n const show = selectAll?.show ?? 'always';\n const render = selectAll?.render;\n\n const shouldRenderOption = show === 'always' || (mode === 'select' ? !isAllSelected : !isNoneSelected);\n if (!shouldRenderOption) return null;\n\n if (render) {\n return render({\n label,\n mode,\n show,\n isAllSelected,\n isNoneSelected,\n }, sendMessage);\n }\n return (\n sendMessage('value.select-all', mode === 'select' ? !isAllSelected : isNoneSelected)}\n onKeyDown={() => {}}\n >\n {(mode === 'select' ? isAllSelected : isNoneSelected) && }\n {label}\n \n );\n }\n\n return (\n <>\n {!tags && showSearch && (\n
    \n sendMessage('search.change', e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Escape') sendMessage('search.escape');\n if (e.key === 'ArrowUp') sendMessage('search.arrowUp');\n if (e.key === 'ArrowDown') sendMessage('search.arrowDown');\n if (e.key === 'Enter') sendMessage('search.enter');\n }}\n />\n
    \n )}\n {values.length > 0 && (\n
      \n {Boolean(selectAll) && (\n renderSelectAllOption()\n )}\n {values.map(renderItem)}\n
    \n )}\n \n );\n}\n\nList.propTypes = {\n listRef: PropTypes.instanceOf(Object),\n tags: PropTypes.bool,\n values: PropTypes.instanceOf(Array),\n searchValue: PropTypes.string,\n activeItem: PropTypes.instanceOf(Object),\n onMessage: PropTypes.func,\n renderListItem: PropTypes.func,\n selectAll: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n mode: PropTypes.oneOf(['select', 'unselect']),\n show: PropTypes.oneOf(['always', 'notSameState']),\n render: PropTypes.func,\n }),\n ]),\n showSearch: PropTypes.bool,\n};\n\nexport default List;\n","import React, {\n useCallback, useEffect, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\nimport FloatingContainer from '../../../components/FloatingContainer';\n\nimport Value from './js/Value';\nimport List from './js/List';\n\n/**\n * Dropdown-like component that can display selected values as regular text,\n * tags, or in a custom way.\n * You can select values from a list or type in new ones.\n */\nfunction Combobox2({\n value: propValue,\n values: propValues = [],\n valueOverflow = 'single',\n label = '',\n labelwidth,\n tags = false,\n tagSeparators = [' ', 'Enter'],\n addTagOnBlur = false,\n max: maxProp,\n multiple = false,\n placeholder = '',\n theme,\n note = '',\n error = '',\n disabled = false,\n readOnly = false,\n allowCustomValues = true,\n searchItem: matchItemFn,\n renderValue,\n renderListItem,\n renderList: renderListProp,\n CustomListComponent,\n onBeforeChange = () => true,\n onChange = () => {},\n floatingContainerConfig,\n expandMode,\n infiniteScrollerConfig,\n displayDropdownTrigger = true,\n selectAll,\n closeOnSelect,\n showSearch = false,\n required = false,\n validateOnChange = () => {},\n wrapperClassName = '',\n ...restProps\n}) {\n const max = useMemo(\n () => (multiple ? Infinity : maxProp || (tags ? Infinity : 1)),\n [multiple, maxProp, tags],\n );\n const renderList = CustomListComponent\n ? (values, { sendMessage }) => (\n sendMessage('value.select', { item: values[index] })}\n />\n )\n : renderListProp;\n\n const rootRef = useRef(null);\n const comboboxControlRef = useRef(null);\n const dropdownRef = useRef(null);\n const listRef = useRef(null);\n\n const [value, setValue] = useState(getValueFromProp(propValue, propValues));\n const [values, setValues] = useState(propValues.map((v) => normalizeValue(v)));\n const [searchValue, setSearchValue] = useState('');\n const [activeItem, setActiveItem] = useState(null);\n const [isOpened, setIsOpened] = useState(false);\n const [valuesExpanded, setValuesExpanded] = useState(false);\n const [localValidationError, setLocalValidationError] = useState('');\n\n function getThemeClasses() {\n const themes = theme ? theme.split(' ') : [];\n return themes.map((iTheme) => `tyk-form-group--${iTheme}`);\n }\n\n function getCssClasses() {\n return [\n wrapperClassName,\n 'tyk-form-group',\n 'tyk-combobox2',\n ...getThemeClasses(),\n (error || localValidationError) && 'has-error',\n labelwidth && 'tyk-form-group--label-has-width',\n disabled && 'disabled',\n expandMode && 'is-expand-mode',\n ].filter(Boolean).join(' ');\n }\n\n function getFilteredValues() {\n const defaultFn = (v, s) => v?.name?.toLowerCase()?.includes(s);\n const fn = matchItemFn || defaultFn;\n const filteredValues = values.filter((v) => fn(v, searchValue.toLowerCase()));\n return filteredValues;\n }\n\n function openDropdown() {\n setIsOpened(true);\n }\n\n function closeDropdown() {\n setIsOpened(false);\n if (!tags) updateSearchValue('');\n setActiveItem(null);\n }\n\n function updateSearchValue(newSearchValue) {\n setSearchValue(newSearchValue);\n if (activeItem && getFilteredValues().every((fv) => fv.id !== activeItem.id)) {\n setActiveItem(null);\n }\n if (newSearchValue && !isOpened) openDropdown();\n }\n\n function isValidValue(newValues, lastValue) {\n const localError = validateOnChange(newValues, lastValue);\n setLocalValidationError(localError);\n return localError === undefined;\n }\n\n function updateValue(newValues) {\n setValue(newValues);\n onChange(max === 1 && !tags ? (newValues[0] || null) : newValues);\n }\n\n function addTag(val) {\n if (!val) return;\n if (value.length >= max) return;\n if (value.some(({ name }) => name === val)) return;\n\n const listValueIndex = values.findIndex((lv) => lv.name === val);\n let newValue;\n let finalValue = [...value];\n let selectedValues;\n\n if (listValueIndex === -1) {\n if (allowCustomValues) {\n newValue = { id: val, name: val };\n finalValue = [...value, newValue];\n }\n } else {\n selectedValues = [\n ...values.slice(0, listValueIndex),\n { ...values[listValueIndex], selected: true },\n ...values.slice(listValueIndex + 1),\n ];\n newValue = values[listValueIndex];\n finalValue = [...value, values[listValueIndex]];\n }\n\n if (isValidValue(finalValue, newValue) && onBeforeChange(value, finalValue)) {\n if (selectedValues) {\n setValues(selectedValues);\n }\n updateValue(finalValue);\n }\n }\n\n function removeTag(id) {\n if (required && max === 1) return;\n\n const listValueIndex = values.findIndex((lv) => lv.id === id);\n const newValue = value.filter((v) => v.id !== id);\n\n if (!onBeforeChange(value, newValue)) return;\n\n if (listValueIndex !== -1) {\n setValues([\n ...values.slice(0, listValueIndex),\n { ...values[listValueIndex], selected: false },\n ...values.slice(listValueIndex + 1),\n ]);\n }\n updateValue(newValue);\n }\n\n function selectValue({ id }) {\n const val = values.find((v) => v.id === id);\n const valIndex = values.findIndex((v) => v.id === id);\n let finalValue = value;\n let selectedValues = values;\n\n if (val.selected) {\n if (!required || max !== 1) {\n finalValue = value.filter((v) => v.id !== val.id);\n selectedValues = values.with(valIndex, { ...val, selected: false });\n }\n } else if (value.length < max) {\n finalValue = [...value, val];\n selectedValues = values.with(valIndex, { ...val, selected: true });\n } else if (max === 1) {\n finalValue = [val];\n selectedValues = values.map((v) => ({ ...v, selected: v.id === val.id }));\n }\n\n if (isValidValue(finalValue, val) && onBeforeChange(value, finalValue)) {\n updateValue(finalValue);\n setValues(selectedValues);\n }\n\n if (max === 1 || closeOnSelect) {\n closeDropdown();\n }\n }\n\n function selectAllValues(selected) {\n if (values.length > max) return;\n const newValue = selected ? [...values] : [];\n\n if (!onBeforeChange(value, newValue)) return;\n\n updateValue(newValue);\n setValues(values.map((v) => ({ ...v, selected })));\n if (closeOnSelect) closeDropdown();\n }\n\n function moveUpActiveItem() {\n const visibleItems = getFilteredValues().filter((v) => !v.disabled);\n if (visibleItems.length === 0) return;\n if (activeItem === null || visibleItems.length === 1) {\n setActiveItem(visibleItems[visibleItems.length - 1]);\n return;\n }\n const activeIndex = visibleItems.findIndex((v) => v.id === activeItem.id);\n setActiveItem(visibleItems[activeIndex > 0 ? activeIndex - 1 : visibleItems.length - 1]);\n }\n\n function moveDownActiveItem() {\n const visibleItems = getFilteredValues().filter((v) => !v.disabled);\n if (visibleItems.length === 0) return;\n if (activeItem === null || visibleItems.length === 1) {\n setActiveItem(visibleItems[0]);\n return;\n }\n const activeIndex = visibleItems.findIndex((v) => v.id === activeItem.id);\n setActiveItem(visibleItems[activeIndex < visibleItems.length - 1 ? activeIndex + 1 : 0]);\n }\n\n function executeTriggerAction() {\n if (expandMode) {\n setValuesExpanded(!valuesExpanded);\n } else {\n openDropdown();\n }\n }\n\n function handleDocumentClick(e) {\n const isClickInside = rootRef.current?.contains(e.target)\n || dropdownRef.current?.contains(e.target);\n if (!isClickInside) {\n closeDropdown();\n }\n }\n\n function onClickCapture(e) {\n if (!disabled) return;\n if (!expandMode) {\n e.stopPropagation();\n return;\n }\n\n const triggerElement = rootRef.current.querySelector('.tyk-combobox2__values-container-trigger');\n if (!triggerElement) return;\n\n const isClickOnTrigger = triggerElement === e.target || triggerElement.contains(e.target);\n if (!isClickOnTrigger) e.stopPropagation();\n }\n\n function onTagMessage(message, data) {\n if (message === 'add') {\n addTag(data);\n updateSearchValue('');\n }\n\n if (message === 'remove') removeTag(data);\n\n if (message === 'input.change') updateSearchValue(data);\n\n if (message === 'input.enter') {\n if (activeItem) {\n selectValue(activeItem);\n } else if (tagSeparators.includes('Enter')) {\n addTag(data);\n updateSearchValue('');\n }\n }\n\n if (message === 'input.arrowUp') {\n openDropdown();\n moveUpActiveItem();\n }\n\n if (message === 'input.arrowDown') {\n openDropdown();\n moveDownActiveItem();\n }\n\n if (message === 'input.escape') closeDropdown();\n\n if (message === 'input.blur' && addTagOnBlur) {\n addTag(data);\n updateSearchValue('');\n }\n\n if (message === 'input.focus') {\n openDropdown();\n }\n }\n\n const onMessage = useCallback((message, data) => {\n if (message.startsWith('tag.')) onTagMessage(message.slice(4), data);\n\n if (message === 'value.select') selectValue(data.item);\n\n if (message === 'value.select-all') selectAllValues(data);\n\n if (message === 'text-value.click') openDropdown();\n\n if (message === 'search.change') updateSearchValue(data);\n\n if (message === 'search.escape') closeDropdown();\n\n if (message === 'search.arrowUp') moveUpActiveItem();\n\n if (message === 'search.arrowDown') moveDownActiveItem();\n\n if (message === 'search.enter') {\n if (activeItem) selectValue(activeItem);\n }\n }, [\n onTagMessage,\n selectValue,\n selectAllValues,\n openDropdown,\n updateSearchValue,\n closeDropdown,\n moveUpActiveItem,\n moveDownActiveItem,\n ]);\n\n const renderIcon = useCallback(\n () => (expandMode\n ? \n : \n ),\n [expandMode, valuesExpanded],\n );\n\n useEffect(() => {\n window.addEventListener('click', handleDocumentClick, true);\n return () => window.removeEventListener('click', handleDocumentClick, true);\n }, []);\n\n useEffect(() => {\n if (propValues.length) {\n const newValues = propValues.map((v) => ({\n ...normalizeValue(v),\n selected: value.some((sv) => sv.id === v.id),\n }));\n setValues(newValues);\n setValue((val) => val.map((v) => newValues.find((nv) => nv.id === v.id) || v));\n } else if (values.length) {\n setValues([]);\n }\n }, [propValues]);\n\n useEffect(() => {\n const newValue = getValueFromProp(propValue, values);\n setValue(newValue);\n setValues((vals) => vals.map((v) => ({\n ...normalizeValue(v),\n selected: newValue.some((nv) => nv.id === v.id),\n })));\n }, [propValue]);\n\n useEffect(() => {\n if (!expandMode) return () => {};\n\n const valuesElement = comboboxControlRef.current.querySelector('.tyk-combobox2__current-values');\n const updateScroll = () => {\n valuesElement.scrollTop = valuesElement.scrollHeight;\n };\n /* eslint-disable-next-line no-undef */\n const mobserver = new MutationObserver(updateScroll);\n const robserver = new ResizeObserver(updateScroll);\n\n mobserver.observe(valuesElement, { attributes: true, childList: true, subtree: true });\n robserver.observe(valuesElement);\n\n return () => {\n mobserver.disconnect();\n robserver.disconnect();\n };\n });\n\n const filteredValues = getFilteredValues();\n const currentValuesClasses = [\n 'tyk-combobox2__current-values',\n expandMode && 'expand-mode',\n `tyk-combobox2__current-values--${valuesExpanded ? 'expanded' : 'collapsed'}`,\n ].join(' ');\n\n return (\n \n {label && (\n \n )}\n {!readOnly && (\n \n
    \n \n \n
    \n {displayDropdownTrigger && (\n \n {renderIcon()}\n \n )}\n \n {isOpened && (!tags || filteredValues.length > 0) && (\n \n {renderList ? (\n renderList(filteredValues, {\n tags,\n searchValue,\n activeItem,\n listRef,\n sendMessage: onMessage,\n })\n ) : (\n \n )}\n \n )}\n {note && (\n

    {note}

    \n )}\n {((error && error !== 'true' && error !== 'false') || Boolean(localValidationError)) && (\n

    {error || localValidationError}

    \n )}\n \n )}\n {readOnly && (\n
    \n \n
    \n )}\n \n );\n}\n\nCombobox2.propTypes = {\n /** If `true` it allows entering values that are not in the list. */\n allowCustomValues: PropTypes.bool,\n /** Alias for `renderList`\n * used for backwards compatibility with the old Combobox component. */\n CustomListComponent: PropTypes.elementType,\n /** A function used for filtering elements displayed in the list when typing in. */\n searchItem: PropTypes.func,\n /** A custom component that will be used to display a value. */\n renderValue: PropTypes.func,\n /** A custom component that will be used to display an item in the dropdown list. */\n renderListItem: PropTypes.func,\n /** A custom component that will be used to display the entire content of the dropdown. */\n renderList: PropTypes.func,\n disabled: PropTypes.bool,\n /** hides the UI form element and displayes just the value as text */\n readOnly: PropTypes.bool,\n error: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n /** The maximum number of values that can be selected/added. */\n max: PropTypes.number,\n /** Shorthand for max=Infinity */\n multiple: PropTypes.bool,\n note: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n /**\n * Callback called before changing the value of the component.\n * The value change will succeed only if the callback's return value is truthy.\n * The callback is called with two arguments: 1) the previous value, 2) the next value */\n onBeforeChange: PropTypes.func,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n /** Enables the display of values as `Pill` components that can be\n * removed without opening the dropdown. */\n tags: PropTypes.bool,\n /** A list of characters that will trigger the creation of a tag when typed. */\n tagSeparators: PropTypes.arrayOf(PropTypes.string),\n /** If set to true a tag will be created whenever the component loses focus\n * and there is something typed in. */\n addTagOnBlur: PropTypes.bool,\n theme: PropTypes.string,\n /** The value of the component. It can be a string, an array,\n * or an object with an `id` property. */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n ]),\n /** An array of selectable values. */\n values: PropTypes.instanceOf(Array),\n /** Config object passed to the internal floating container component. */\n floatingContainerConfig: PropTypes.instanceOf(Object),\n /** If set to `single` it will display the values on a single line\n * with an ellipsis at the end. */\n valueOverflow: PropTypes.oneOf(['single', 'multiple']),\n /**\n * If set to `true` whenever the user clicks on the dropdown trigger\n * the selected values container\n * will expand to show all selected values instead of opening the dropdown.\n */\n expandMode: PropTypes.bool,\n /** Config object passed to the internal infinite scroller component. */\n infiniteScrollerConfig: PropTypes.instanceOf(Object),\n /** Toggles the display of the dropdown trigger. */\n displayDropdownTrigger: PropTypes.bool,\n /**\n * If a boolean it will toggle the select all functionality from the dropdown.\n * It can also be an object with the shape `{ label, show, mode, render }`.\n * label - A string displayed as the select all option\n * show - It can be one of `['always', 'notSameState']`.\n * `always` means the option will always be displayed.\n * `notSameState` means it will be displayed only if the list items are\n * not all with the same state (depending on the `mode` value)\n * mode - It can be one of `['select', 'unselect']` and makes sense only\n * when the `show` property is `notSameState`\n * `select` means the select all option will only be displayed if not all\n * items are selected\n * `unselect` means the option will be displayed if no items are selected\n */\n selectAll: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n mode: PropTypes.oneOf(['select', 'unselect']),\n show: PropTypes.oneOf(['always', 'notSameState']),\n render: PropTypes.func,\n }),\n ]),\n /** It `true` the dropdown will close after selecting a value. */\n closeOnSelect: PropTypes.bool,\n /** Toggles the display of the search input from the dropdown. */\n showSearch: PropTypes.bool,\n /** If it is required and can only select one value once you have something\n * selected you will not be able to deselect */\n required: PropTypes.bool,\n /** Validates newly added value before adding it to the selected values.\n * Returns an error string in case of error otherwise it returns undefined\n */\n validateOnChange: PropTypes.func,\n wrapperClassName: PropTypes.string,\n};\n\nexport default Combobox2;\n\nfunction normalizeValue(value, values) {\n let v = value;\n if (typeof value === 'string') v = { id: value, name: value };\n else if (!value.hasOwnProperty('name')) v = { ...value, name: value.id }; // eslint-disable-line no-prototype-builtins\n if (!values) return v;\n const existingVal = values.find((ev) => ev.id === v.id);\n return existingVal ? { ...v, ...existingVal } : v;\n}\n\nfunction getValueFromProp(value, values) {\n if (!value) return [];\n if (Array.isArray(value)) return value.map((v) => normalizeValue(v, values));\n return [normalizeValue(value, values)];\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"flatpickr\");","import React, {\n useEffect, useState, useRef, useCallback,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport flatpickr from 'flatpickr';\n\nimport Icon from '../../../components/Icon';\nimport { usePrevious } from '../../../hooks';\n\nfunction DatePicker({\n children,\n disabled,\n readOnly = false,\n error,\n id,\n label,\n labelwidth,\n note,\n onClose,\n onChange,\n onOpen,\n theme,\n config = {},\n value,\n wrapperClassName = '',\n}) {\n const [pickerInstance, setPickerInstance] = useState(null);\n const dateRef = useRef(null);\n\n const prevValue = usePrevious(value);\n\n const hasValueChanged = useCallback((prevDate, currentDate) => {\n if (!prevDate) return true;\n if (!Array.isArray(currentDate)) return prevDate.getTime() !== currentDate.getTime();\n\n let diffDates = currentDate;\n\n if (prevDate && currentDate.length && prevDate.length) {\n diffDates = currentDate.filter((date, index) => date.getTime() !== prevDate[index].getTime());\n\n return diffDates.length > 0;\n }\n\n return currentDate.length > 0;\n }, []);\n\n const onDateChange = useCallback((dateValue) => {\n const finalValue = config.mode === 'range' ? dateValue : dateValue[0] || null;\n\n if (!onChange) return;\n\n if (config.mode === 'range') {\n if (finalValue.length === 2 && hasValueChanged(prevValue, finalValue)) {\n onChange(finalValue);\n }\n } else {\n onChange(finalValue);\n }\n }, [prevValue, onChange, hasValueChanged]);\n\n useEffect(() => {\n if (dateRef.current && !pickerInstance) {\n const instance = flatpickr(dateRef.current, {\n ...config, defaultDate: value, onChange: onDateChange, onClose, onOpen,\n });\n setPickerInstance(instance);\n }\n\n return () => {\n if (pickerInstance) {\n pickerInstance.destroy();\n }\n };\n }, [pickerInstance]);\n\n useEffect(() => {\n if (pickerInstance) {\n let tempValue = value;\n\n if (typeof value === 'string') {\n tempValue = new Date(value);\n } else if (Array.isArray(value)) {\n tempValue = value.map((date) => new Date(date));\n }\n\n if (hasValueChanged(prevValue, tempValue)) {\n pickerInstance.set('onChange', onDateChange);\n if (config.mode === 'range') {\n if (tempValue && tempValue.length === 2) {\n pickerInstance.setDate(tempValue, true);\n }\n } else {\n pickerInstance.setDate(tempValue, true);\n }\n }\n }\n }, [prevValue, value, pickerInstance]);\n\n const classes = [\n 'tyk-form-group',\n 'tyk-form-group--addon-right',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const getLabelStyles = () => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n };\n\n const getNonLabelWidth = () => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n };\n\n const openCalendar = useCallback(() => {\n if (!pickerInstance) return;\n\n pickerInstance.open();\n }, [pickerInstance]);\n\n const getInputError = () => (\n (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null\n );\n\n const getInputField = () => {\n let inputStyle = {};\n let addonStyle = {};\n\n if (config?.inline) {\n inputStyle = {\n height: 0,\n padding: 0,\n width: 0,\n visibility: 'hidden',\n };\n\n addonStyle = {\n display: 'none',\n };\n }\n return (\n <>\n \n {}}\n tabIndex={0}\n style={addonStyle}\n aria-label=\"show calendar\"\n >\n \n \n \n );\n };\n\n return (\n <>\n {\n children?.length\n ? children({ openCalendar, ref: dateRef })\n : (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n
    \n {getInputField()}\n
    \n {\n note\n ?

    { note }

    \n : null\n }\n { getInputError() }\n
    \n )}\n \n )\n }\n
    \n {readOnly && !value && '-'}\n {readOnly && value && flatpickr.formatDate(value, config.dateFormat || 'd/m/Y')}\n
    \n \n );\n}\n\nDatePicker.propTypes = {\n config: PropTypes.instanceOf(Object),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n PropTypes.func,\n ]),\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n onClose: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n onOpen: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n theme: PropTypes.string,\n error: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n PropTypes.string,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default DatePicker;\n","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n // eslint-disable-next-line no-console\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n case 'aaa':\n return dayPeriodEnumValue;\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, dirtyDelimiter);\n}\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\nexport default formatters;","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n var dateTimeFormat;\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n return result;\n};\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import defaultLocale from \"../../locale/en-US/index.js\";\nexport default defaultLocale;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n var originalDate = toDate(dirtyDate);\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n var formatter = formatters[firstCharacter];\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n return substring;\n }).join('');\n return result;\n}\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n if (!matched) {\n return input;\n }\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import React, { Component, createRef } from 'react';\nimport isEqual from 'react-fast-compare';\nimport PropTypes from 'prop-types';\n\nimport Column from '../../../../layout/Column';\nimport Row from '../../../../layout/Row';\nimport Button from '../../../../components/Button';\n\nclass EditableListForm extends Component {\n static getMainFormValue(components) {\n const mainFormValue = new Array(components.length);\n\n components.forEach((component, index) => {\n mainFormValue[index] = component.props.value || undefined;\n });\n\n return mainFormValue;\n }\n\n constructor(props) {\n super(props);\n const {\n components,\n } = props;\n\n this.submitButtonRef = createRef();\n this.handleOnChange = this.handleOnChange.bind(this);\n this.submitForm = this.submitForm.bind(this);\n\n this.state = {\n components,\n errors: {},\n mainError: null,\n mainFormValue: EditableListForm.getMainFormValue(components),\n refs: [],\n };\n }\n\n componentDidMount() {\n const {\n addValueOnFieldChange,\n getMainFormButtonWidth,\n } = this.props;\n this.createRefs();\n\n if (getMainFormButtonWidth) {\n getMainFormButtonWidth(\n !addValueOnFieldChange\n ? this.submitButtonRef.current.clientWidth\n : 0,\n );\n }\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const state = {};\n const {\n components: propsComponents,\n } = nextProps;\n\n const {\n components: stateComponents,\n } = prevState;\n if (\n !isEqual(propsComponents, stateComponents)\n && !isEqual(\n EditableListForm.getMainFormValue(propsComponents),\n EditableListForm.getMainFormValue(stateComponents),\n )\n ) {\n state.mainFormValue = EditableListForm.getMainFormValue(propsComponents);\n state.components = propsComponents;\n }\n\n return state;\n }\n\n handleOnChange(component, index, value) {\n const { addValueOnFieldChange } = this.props;\n let tempState = this.state;\n\n tempState = { ...tempState, ...this.validateValue(value, component.props) };\n\n if (!tempState.errors[component.props.name]) {\n tempState.mainFormValue[index] = value;\n\n if (component.props.onChange) {\n component.props.onChange(value);\n }\n }\n\n this.setState((previousState) => ({ ...previousState, ...tempState }), () => {\n if (addValueOnFieldChange) {\n this.submitForm();\n }\n });\n }\n\n getFormCssClasses() {\n const { noLabels } = this.props;\n const cssClasses = ['tyk-editable-list__form'];\n\n if (noLabels) {\n cssClasses.push('no-labels');\n }\n\n return cssClasses.join(' ');\n }\n\n getButtonClassName() {\n const { buttonStyle, displayType } = this.props;\n const cssClasses = [];\n\n if (buttonStyle) {\n cssClasses.push(buttonStyle);\n }\n\n if (displayType) {\n cssClasses.push(displayType);\n }\n\n return cssClasses.join(' ');\n }\n\n getComponentsError(component) {\n const {\n error,\n errors,\n mainError,\n } = this.state;\n\n if (error || mainError) {\n errors[component.props.name] = 'true';\n } else if (!(error || mainError) && errors[component.props.name] === 'true') {\n delete errors[component.props.name];\n }\n\n return errors[component.props.name] ? errors[component.props.name].toString() : undefined;\n }\n\n createRefs() {\n const { components } = this.props;\n const refs = [];\n\n components.forEach(() => {\n refs.push(createRef());\n });\n\n this.setState({\n refs,\n });\n }\n\n validateValue(value, props) {\n const { mainError, errors } = this.state;\n const { error, errorPersist } = this.props;\n\n const validatorsNames = props.validate ? Object.keys(props.validate) : [];\n // if there is a general form error don't take field errors into consideration\n const tempState = {\n errors: (error || mainError) ? {} : { ...errors },\n };\n let ok = true;\n\n // if the error should stay after changing fields values don't take actions\n if (errorPersist) {\n return tempState;\n }\n\n // validate each field from the form\n for (const validatorName of validatorsNames) {\n const validator = props.validate[validatorName];\n if (validator(value)) {\n tempState.errors[props.name] = props.validationmessages[validatorName];\n ok = false;\n break;\n }\n }\n\n // if the field is ok delete its error\n if (ok) {\n delete tempState.errors[props.name];\n }\n\n tempState.mainError = null;\n\n return tempState;\n }\n\n hasMainFormErrors(errors) {\n const { components, errorPersist } = this.props;\n const { mainFormValue } = this.state;\n const tempState = {\n errors: { ...errors },\n };\n\n if (errorPersist && mainFormValue.indexOf(undefined) === -1) {\n return false;\n }\n\n if (Object.keys(tempState.errors).length > 0) {\n return true;\n }\n\n components.forEach((component, index) => {\n tempState.errors = {\n ...tempState.errors,\n ...this.validateValue(mainFormValue[index], component.props).errors,\n };\n });\n\n return Object.keys(tempState.errors).length > 0;\n }\n\n resetForm() {\n const { refs } = this.state;\n const {\n components,\n } = this.props;\n\n refs.forEach((ref) => {\n if (ref.current?.reset) {\n ref.current.reset();\n }\n });\n\n this.setState({\n errors: {},\n mainError: null,\n mainFormValue: EditableListForm.getMainFormValue(components),\n });\n }\n\n showMainError(error) {\n this.setState({\n mainError: error,\n });\n }\n\n submitForm() {\n const { errors, mainFormValue } = this.state;\n const {\n errorPersist, onSubmit, validate, validationmessage,\n } = this.props;\n\n if (errorPersist) {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n\n if (\n Object.keys(errors).length === 0\n && (onSubmit && typeof onSubmit === 'function')\n ) {\n if (validate) {\n if (validate(mainFormValue)) {\n this.showMainError(validationmessage);\n } else {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n } else {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n }\n }\n\n render() {\n const {\n addValueOnFieldChange, components, buttonName, disabled, displayType, error,\n } = this.props;\n const {\n mainError, refs, errors,\n } = this.state;\n\n return (\n
    \n
    \n \n {\n components.map((component, index) => {\n const ComponentName = component.name;\n console.log('ComponentName', ComponentName);\n const {\n onChange, value, ...rest\n } = component.props;\n\n return (\n \n \n \n );\n })\n }\n \n {\n !addValueOnFieldChange\n ? (\n \n \n { buttonName || 'ADD' }\n \n \n )\n : null\n }\n
    \n {\n error || mainError\n ? (\n
    \n

    \n { error || mainError }\n

    \n
    \n )\n : null\n }\n
    \n );\n }\n}\n\nEditableListForm.propTypes = {\n addValueOnFieldChange: PropTypes.bool,\n noLabels: PropTypes.bool,\n buttonName: PropTypes.string,\n buttonStyle: PropTypes.string,\n components: PropTypes.instanceOf(Array),\n displayType: PropTypes.string,\n disabled: PropTypes.bool,\n getMainFormButtonWidth: PropTypes.func,\n error: PropTypes.string,\n errorPersist: PropTypes.bool,\n onSubmit: PropTypes.func,\n validate: PropTypes.func,\n validationmessage: PropTypes.string,\n};\n\nexport default EditableListForm;\n","import React, { Component, createRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport format from 'date-fns/format';\nimport isDate from 'date-fns/isDate';\n\nimport EditableListForm from './js/EditableListForm';\nimport Column from '../../../layout/Column';\nimport Icon from '../../../components/Icon';\nimport Row from '../../../layout/Row';\n\nclass EditableList extends Component {\n static getItemListValue(itemValue) {\n let tempValue = null;\n\n if (typeof itemValue === 'string') {\n tempValue = itemValue;\n }\n\n if (Object.prototype.toString.call(itemValue) === '[object Object]') {\n tempValue = itemValue.name;\n }\n\n if (isDate(itemValue)) {\n tempValue = format(itemValue, 'dd/MM/yyyy');\n }\n\n return tempValue;\n }\n\n static getListItemCssClass(displayType) {\n const cssClasses = [];\n\n if (displayType === 'inline') {\n cssClasses.push('tyk-editable-list-item--inline');\n }\n\n return cssClasses.join(' ');\n }\n\n constructor(props) {\n super(props);\n const {\n value,\n } = this.props;\n\n this.state = {\n initialValue: value || '',\n value: value || [],\n buttonWidth: 0,\n };\n\n this.startIndex = 1;\n\n this.handleFormSubmit = this.handleFormSubmit.bind(this);\n this.getMainFormButtonWidth = this.getMainFormButtonWidth.bind(this);\n this.dropdownListItemRef = createRef();\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const state = {};\n\n if (\n nextProps.value && JSON.stringify(nextProps.value)\n !== JSON.stringify(prevState.initialValue)\n ) {\n state.value = nextProps.value || [];\n state.initialValue = nextProps.value || '';\n }\n\n return state.value ? state : null;\n }\n\n handleFormSubmit(value) {\n const tempState = this.addValues(value);\n this.setState((previousState) => ({ ...previousState, ...tempState }), () => {\n this.triggerOnChange(tempState.value.length - 1, null, value);\n });\n }\n\n handleItemUpdate(index, value) {\n let prevValue;\n this.setState((previousState) => {\n const tempState = { ...previousState };\n prevValue = fromJS(tempState.value[index].value).toJS();\n tempState.value[index].value = value;\n tempState.value[index].editMode = false;\n\n return tempState;\n }, () => {\n this.triggerOnChange(index, prevValue, value);\n });\n }\n\n handleChildrenOnChange(index, value) {\n let prevValue;\n this.setState((previousState) => {\n const tempState = { ...previousState };\n prevValue = fromJS(tempState.value[index].children).toJS();\n tempState.value[index].children = value;\n\n return tempState;\n }, () => {\n this.triggerOnChange(index, prevValue, value);\n });\n }\n\n getListItemsCssClass(displayType) {\n const { config } = this.props;\n const cssClasses = ['tyk-editable-list-items'];\n\n cssClasses.push(config.displayType || 'table');\n\n if (displayType === 'inline') {\n cssClasses.push('tyk-editable-list-items--inline');\n }\n\n return cssClasses.join(' ');\n }\n\n getFormInputKey() {\n this.startIndex += 1;\n return this.startIndex;\n }\n\n // generate list item value's based on the display types\n // table, inline, list\n getListItemText(itemData) {\n const { config } = this.props;\n let value = null;\n\n switch (config.displayType) {\n case 'list':\n case 'inline': {\n const itemText = itemData.value.reduce((prevValue, itemValue, index) => {\n const tempValue = EditableList.getItemListValue(itemValue);\n let separator = ', ';\n\n if (index === itemData.value.length - 1) {\n separator = '';\n }\n\n return prevValue + tempValue + separator;\n }, '');\n\n value = itemText;\n\n break;\n }\n default:\n value = (\n \n {\n config.components.map((component, index) => (\n \n { EditableList.getItemListValue(itemData.value[index]) }\n \n ))\n }\n \n );\n\n break;\n }\n\n return value;\n }\n\n getMainFormButtonWidth(value) {\n this.setState({\n buttonWidth: value,\n });\n }\n\n setItemEditMode(index) {\n const newValues = this.closeListItems();\n\n this.setState((previousState) => {\n const tempState = { ...previousState };\n tempState.value = newValues;\n tempState.value[index].editMode = !tempState.value[index].editMode;\n\n return tempState;\n });\n }\n\n isInList(index, itemValue) {\n const { value } = this.state;\n let ok = false;\n\n value.forEach((item, itemIndex) => {\n if (JSON.stringify(item.value) === JSON.stringify(itemValue)) {\n if (index >= 0 && itemIndex === index) {\n ok = false;\n } else {\n ok = true;\n }\n }\n });\n\n return ok;\n }\n\n addValues(newValue) {\n const { value } = this.state;\n const { config } = this.props;\n const itemValue = {\n editMode: false,\n value: newValue,\n };\n const tempState = {\n value: value.slice(0),\n };\n\n if (config.children) {\n itemValue.children = [];\n }\n\n tempState.value.push(itemValue);\n\n return tempState;\n }\n\n removeListItem(index) {\n let removedItem;\n this.setState((previousState) => {\n const valueArr = previousState.value.slice(0);\n removedItem = valueArr.splice(index, 1);\n\n return {\n value: valueArr,\n };\n }, () => {\n this.triggerOnChange(index, removedItem, null);\n });\n }\n\n closeListItems() {\n const { value } = this.state;\n\n const newValues = value.map((itemValue) => {\n const tempItemValue = { ...itemValue };\n\n if (tempItemValue.editMode) {\n tempItemValue.editMode = false;\n return tempItemValue;\n }\n\n return tempItemValue;\n });\n\n return newValues;\n }\n\n triggerOnChange(index, prevValue, nextValue) {\n const { onChange } = this.props;\n const { value } = this.state;\n\n if (onChange && typeof onChange === 'function') {\n onChange(((value.length) ? value : null), index, prevValue, nextValue);\n }\n }\n\n genListItem(itemData, index) {\n const { config, disabled } = this.props;\n const { buttonWidth, value } = this.state;\n\n const clonedComponents = fromJS(config.components).toJS();\n\n itemData.value.forEach((itemValue, itemIndex) => {\n clonedComponents[itemIndex].props.value = itemValue;\n });\n\n return (\n \n \n {\n !itemData.editMode\n ? (\n <>\n { this.getListItemText(itemData, index) }\n \n \n \n \n \n \n \n \n \n )\n : (\n <>\n \n \n \n \n \n )\n }\n \n {\n config.children\n ? (\n \n )\n : null\n }\n \n );\n }\n\n genList() {\n const { config } = this.props;\n const { buttonWidth, value } = this.state;\n\n if (!value || value.length === 0) {\n return null;\n }\n\n return (\n <>\n {\n config.displayType === 'table' || !config.displayType\n ? (\n \n \n {\n config.components.map((component, index) => (\n \n { component.props.label }\n \n ))\n }\n \n \n )\n : null\n }\n
      \n {\n value.map((itemData, index) => this.genListItem(itemData, index))\n }\n
    \n \n );\n }\n\n render() {\n const {\n addValueOnFieldChange, config, error, disabled, label,\n } = this.props;\n const appendToElement = document.querySelector(config.appendTo) || document.querySelector('body');\n\n return (\n
    \n {\n label\n ? \n : null\n }\n \n {\n config.appendTo\n ? ReactDOM.createPortal(\n this.genList(),\n appendToElement,\n )\n : this.genList()\n }\n
    \n );\n }\n}\n\nEditableList.propTypes = {\n addValueOnFieldChange: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n config: PropTypes.instanceOf(Object),\n onChange: PropTypes.func,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n ]),\n};\n\nexport default EditableList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../../../components/Button';\n\nfunction Header({\n label, addButtonName, onAddRow, disabled, readOnly,\n}) {\n return (\n
    \n {\n label\n ? \n : null\n }\n {!disabled && !readOnly && (\n \n {addButtonName || 'Add'}\n \n )}\n
    \n );\n}\n\nHeader.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n onAddRow: PropTypes.func,\n addButtonName: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n};\n\nexport default Header;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ListHeader({\n fields,\n readOnly,\n}) {\n return (\n
  • \n {\n fields.map((field) => (\n \n {field?.props?.label}\n \n ))\n }\n
    Delete
    \n
  • \n );\n}\n\nListHeader.propTypes = {\n fields: PropTypes.instanceOf(Array),\n readOnly: PropTypes.bool,\n};\n\nexport default ListHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '../../../components/Button';\n\nfunction FieldsList({\n fields,\n disabled,\n readOnly,\n errors,\n components,\n onChange,\n onDelete,\n value,\n rowIndex,\n}) {\n return (\n
  • \n {\n components.map((Component, index) => {\n const field = fields[index];\n const tempField = typeof field === 'function' ? field(rowIndex, index) : field;\n return (\n \n \n \n );\n })\n }\n
    \n \n
    \n
  • \n );\n}\n\nFieldsList.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n rowIndex: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n fields: PropTypes.instanceOf(Array),\n errors: PropTypes.instanceOf(Array),\n components: PropTypes.instanceOf(Array),\n value: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n onDelete: PropTypes.func,\n};\n\nexport default FieldsList;\n","import React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Header from './Header';\nimport ListHeader from './ListHeader';\nimport FieldsList from './FieldsList';\nimport validateValues from './validate-values';\nimport withValidation from './with-validation';\n\nlet id = 1;\n/* eslint-disable-next-line */\nconst getUID = prefix => `${prefix}-${id++}`;\n\n/**\n * Editable list is a component, that lists rows of form elements (can have n elements on a row),\n * and stores the values of all the rows in an Array list\n */\nfunction EditableList2({\n addButtonName,\n disabled,\n readOnly,\n fields,\n label,\n error,\n value = [],\n onChange = () => {},\n hideOnEmpty = true,\n wrapperClassName = '',\n}) {\n const [internalErrors, setInternalErrors] = useState(null);\n\n const updateRowValue = (rowIndex, fieldIndex, componentValue, isValid) => {\n const tempValueArr = !value ? [] : [...value];\n\n if (!value) {\n tempValueArr[rowIndex] = [...new Array(fields.length)];\n tempValueArr[rowIndex][fieldIndex] = componentValue;\n } else {\n const tempValue = [...tempValueArr[rowIndex]];\n tempValue[fieldIndex] = componentValue;\n tempValueArr[rowIndex] = tempValue;\n tempValueArr[rowIndex].id = value[rowIndex].id;\n }\n\n if (internalErrors?.[rowIndex]?.[fieldIndex] && isValid) {\n const tempErrors = [...internalErrors];\n const tempFieldError = [...tempErrors[rowIndex]];\n tempFieldError[fieldIndex] = null;\n tempErrors[rowIndex] = tempFieldError;\n setInternalErrors(tempErrors);\n }\n onChange(tempValueArr);\n };\n\n const hasErrors = (errors) => Boolean(errors?.flat()?.filter(Boolean).length);\n\n const Components = useMemo(\n () => fields.map((field) => {\n const tempField = typeof field === 'function' ? field() : field;\n\n return withValidation(tempField?.component || null);\n }),\n [],\n );\n\n const onAddRow = () => {\n const errors = validateValues(fields, value);\n\n if (hasErrors(errors)) {\n setInternalErrors(errors);\n return;\n }\n\n const newValue = [...new Array(fields.length)];\n newValue.id = getUID('row');\n\n onChange([\n ...value,\n newValue,\n ]);\n };\n\n const deleteRow = (index) => {\n if (!value) {\n return;\n }\n const tempValue = [...value];\n tempValue.splice(index, 1);\n onChange(tempValue);\n };\n\n return (\n
    \n \n {value?.length || !hideOnEmpty ? (\n
      \n {(value || [[]]).map((v, i) => (\n \n ))}\n \n
    \n ) : null}\n {error && error !== 'true' && error !== 'false' ? (\n

    {error}

    \n ) : null}\n
    \n );\n}\n\nEditableList2.propTypes = {\n /** Sets Editable list in edit mode.\n * If enabled all fields are disabled, the add button is hidden and delete button is disabled\n * */\n disabled: PropTypes.bool,\n /** Sets Editable list in read only mode.\n * If enabled all fields are displaying just the value,\n * the add button is hidden and delete button is disabled\n */\n readOnly: PropTypes.bool,\n /** Name of the Add button. By default has 'Add value' */\n addButtonName: PropTypes.string,\n /** Label of Editable list, is displayed above the list and inline with the Add button */\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n /** Array of form elements that you want the list to have\n * Each field is an object points to the Form element component that you want to use,\n * the props you want to apply on it,\n * and the size (as in width, it's like columns system, between 1 and 12)\n * Example:\n * ...\n * fields={[\n {\n component: Input2,\n styles: {\n width: \"200px\",\n },\n size: 4,\n props: {\n name: 'input',\n label: 'Claim name',\n theme: 'default rounded-corners',\n placeholder: 'Enter claim name',\n validate: formikRequired('This field is required')\n }\n },\n {\n component: Combobox2,\n size: 8,\n props: comboboxProps\n }\n ]}\n */\n fields: PropTypes.instanceOf(Array),\n /** onChange function is called everytime the value of editable list changes */\n onChange: PropTypes.func,\n /** value of editable list, wich is an Array (List of row values)\n * of Arrays (List of column values,\n * each column will have the value format depending on the component type)\n */\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Object),\n PropTypes.instanceOf(Array),\n ]),\n error: PropTypes.string,\n hideOnEmpty: PropTypes.bool,\n wrapperClassName: PropTypes.string,\n};\n\nexport default EditableList2;\n","import React, { useCallback, useState } from 'react';\n\n// eslint-disable-next-line react/function-component-definition\nconst withValidation = (Component) => ({\n onChange, // eslint-disable-line react/prop-types\n validate, // eslint-disable-line react/prop-types\n error, // eslint-disable-line react/prop-types\n ...rest\n}) => {\n const [internalError, setInternalError] = useState(null);\n const onFieldChange = useCallback((event) => {\n /* eslint-disable-next-line */\n const value = event?.target\n ? ['radio', 'checkbox'].includes(event.target.type)\n ? event.target.checked\n : event?.target.value\n : event;\n\n let isValid = true;\n if (validate && typeof validate === 'function') {\n const errorMsg = validate(value);\n isValid = !errorMsg;\n setInternalError(errorMsg);\n }\n\n onChange(value, isValid);\n }, [validate, onChange]);\n\n return ;\n};\n\nexport default withValidation;\n","const validateValues = (fields, rowValues) => (rowValues || [[undefined, undefined]])?.map(\n (colValue) => colValue?.map(\n (value, index) => fields[index].props.validate?.(value),\n ),\n);\n\nexport default validateValues;\n","import React, { useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\n\nfunction FileInput({\n error,\n theme,\n labelwidth,\n wrapperClassName = '',\n id,\n label,\n note,\n accept,\n value,\n onChange,\n ...rest\n}) {\n const fileInputRef = useRef();\n\n function handleOnChange(e) {\n onChange(e.target.files);\n }\n\n function getCssClasses() {\n const cssClasses = [wrapperClassName, 'tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n }\n\n function getLabelStyles() {\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n function getNonLabelWidth() {\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n function getFileInputError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n function getFileInputComponent() {\n return (\n \n \n {\n fileInputRef.current && fileInputRef.current.files.length > 0\n ? (\n \n \n \n )\n : null\n }\n \n );\n }\n\n function clearValue() {\n fileInputRef.current.value = '';\n onChange('');\n }\n\n return (\n
    \n {\n label\n ? \n : null\n }\n
    \n { getFileInputComponent() }\n {\n note\n ?

    { note }

    \n : null\n }\n
    \n { getFileInputError() }\n
    \n );\n}\n\nFileInput.propTypes = {\n accept: PropTypes.string,\n disabled: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.instanceOf(Object),\n wrapperClassName: PropTypes.string,\n};\n\nexport default FileInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nclass Input extends Component {\n static getAddon(content) {\n return (\n
    \n { content }\n
    \n );\n }\n\n constructor(props) {\n super(props);\n const {\n value,\n } = this.props;\n\n this.state = {\n initValue: value,\n stateValue: value,\n };\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n const {\n isfield,\n value,\n onChange,\n } = this.props;\n\n if (!isfield && prevProps.value !== value) {\n /* eslint-disable react/no-did-update-set-state */\n this.setState({\n stateValue: value,\n }, () => {\n if (onChange) {\n onChange(value);\n }\n });\n }\n }\n\n handleOnChange(e) {\n const { onChange, isfield } = this.props;\n const inputValue = e.target.value;\n\n if (!isfield) {\n this.setState({\n stateValue: inputValue,\n }, () => {\n if (onChange) {\n onChange(inputValue);\n }\n });\n } else {\n onChange(inputValue);\n }\n }\n\n getLabelStyles() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n getNonLabelWidth() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n getInputError() {\n const { error } = this.props;\n\n return (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null;\n }\n\n getCssClasses() {\n const {\n error,\n theme,\n labelwidth,\n inputgroupaddonleft,\n inputgroupaddonright,\n } = this.props;\n const cssClasses = ['tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (inputgroupaddonleft) {\n cssClasses.push('tyk-form-group--addon-left');\n }\n\n if (inputgroupaddonright) {\n cssClasses.push('tyk-form-group--addon-right');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n }\n\n getInputGroupAddon() {\n const {\n inputgroupaddonleft,\n inputgroupaddonright,\n } = this.props;\n\n return (\n
    \n {\n inputgroupaddonleft\n ? Input.getAddon(inputgroupaddonleft)\n : null\n }\n { this.getInputComponent() }\n {\n inputgroupaddonright\n ? Input.getAddon(inputgroupaddonright)\n : null\n }\n
    \n );\n }\n\n getInputComponent() {\n const {\n isfield, onChange, value, ...rest\n } = this.props;\n const { stateValue } = this.state;\n return (\n \n );\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n reset() {\n const { initValue } = this.state;\n\n this.setState({\n stateValue: initValue,\n });\n }\n\n render() {\n const {\n label,\n id,\n inputgroupaddonleft,\n inputgroupaddonright,\n note,\n readOnly,\n value,\n } = this.props;\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n {\n inputgroupaddonleft || inputgroupaddonright\n ? this.getInputGroupAddon()\n : this.getInputComponent()\n }\n {\n note\n ?

    { note }

    \n : null\n }\n { this.getInputError() }\n
    \n )}\n {\n readOnly &&
    {value || '-'}
    \n }\n \n );\n }\n}\n\nInput.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n isfield: PropTypes.bool,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n inputgroupaddonleft: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n inputgroupaddonright: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n};\n\nexport default Input;\n","import React, { useImperativeHandle, useRef, forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Input2({\n error,\n onChange,\n readOnly,\n id,\n inputgroupaddonleft,\n inputgroupaddonright,\n label,\n labelwidth,\n note,\n theme,\n value,\n wrapperClassName = '',\n ...rest\n}, ref) {\n const inputRef = useRef();\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n inputRef.current.focus();\n },\n }));\n\n const getAddon = (content) => (\n
    \n { content }\n
    \n );\n\n const getLabelStyles = () => ({\n ...labelwidth && {\n flexBasis: labelwidth,\n },\n });\n\n const getNonLabelWidth = () => ({\n ...labelwidth && {\n flexBasis: `calc(100% - ${labelwidth} - 20px)`,\n },\n });\n\n const getInputError = () => (\n (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null\n );\n\n const getCssClasses = () => {\n const cssClasses = [wrapperClassName, 'tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (inputgroupaddonleft) {\n cssClasses.push('tyk-form-group--addon-left');\n }\n\n if (inputgroupaddonright) {\n cssClasses.push('tyk-form-group--addon-right');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n };\n\n const handleOnChange = (e) => {\n onChange(e, e.target.value);\n };\n\n const getInputElement = () => (\n \n );\n\n const getInputGroupAddon = () => (\n
    \n {\n inputgroupaddonleft\n ? getAddon(inputgroupaddonleft)\n : null\n }\n { getInputElement() }\n {\n inputgroupaddonright\n ? getAddon(inputgroupaddonright)\n : null\n }\n
    \n );\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n {\n inputgroupaddonleft || inputgroupaddonright\n ? getInputGroupAddon()\n : getInputElement()\n }\n {\n note\n ?

    { note }

    \n : null\n }\n { getInputError() }\n
    \n )}\n {\n readOnly && (\n
    \n {value || '-'}\n
    \n )\n }\n \n );\n}\n\nInput2.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n inputgroupaddonleft: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n inputgroupaddonright: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default forwardRef(Input2);\n","import { createContext } from 'react';\n\nconst MultiselectContext = createContext();\n\nexport default MultiselectContext;\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport MultiselectContext from './MultiselectContext';\nimport Button from '../../../../components/Button';\nimport Collapsible from '../../../../components/Collapsible';\nimport Loader from '../../../../components/Loader';\n\nconst getItemContent = (context, item) => (\n context.detailsDisplayTemplate\n ? context.detailsDisplayTemplate(item)\n : JSON.stringify(item.details)\n);\n\nconst getItemLoader = (context, item) => {\n const { opened } = context;\n\n return opened[item.id]\n ? \n : null;\n};\n\nfunction MultiselectItem({\n item,\n itemType,\n searchValue,\n onChange,\n}) {\n const isInSearchValue = useCallback((fieldsToSearchOn) => {\n if (fieldsToSearchOn?.length > 0) {\n return fieldsToSearchOn.some((key) => item[key]?.includes(searchValue));\n }\n\n return JSON.stringify(item).includes(searchValue);\n }, [item, searchValue]);\n\n const onAddRemove = useCallback(() => {\n onChange(item);\n }, [onChange, item]);\n\n return (\n \n {\n (context) => (\n isInSearchValue(context.fieldsToSearchOn)\n ? (\n
  • \n
    \n \n {\n context.itemDisplayTemplate\n ? context.itemDisplayTemplate(item)\n : JSON.stringify(item)\n }\n \n \n \n context.onGetItemDetails(item)}\n />\n \n
    \n {\n item.details\n ? (\n \n {getItemContent(context, item)}\n \n )\n : getItemLoader(context, item)\n }\n
  • \n )\n : null\n )\n }\n
    \n );\n}\n\nMultiselectItem.propTypes = {\n item: PropTypes.instanceOf(Object),\n itemType: PropTypes.string,\n searchValue: PropTypes.string,\n onChange: PropTypes.func,\n};\n\nexport default MultiselectItem;\n","import React, { useCallback, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Input from '../../Input';\nimport Icon from '../../../../components/Icon';\nimport Message from '../../../../components/Message';\nimport InfiniteScroller from '../../../../components/InfiniteScroller';\nimport MultiselectItem from './MultiselectItem';\n\nfunction MultiselectPanel({\n inputPlaceholder,\n noItemsMessage,\n items,\n onCustomSearch,\n onChange,\n customSearch,\n panelType,\n serverLoad,\n itemsPageNumber,\n itemsNrPages,\n loadMoreItems,\n}) {\n const [searchValue, setSearchValue] = useState('');\n const itemIndex = useRef(0);\n const itemsListRef = useRef();\n\n function getItemIndex() {\n itemIndex.current += 1;\n\n return itemIndex.current;\n }\n\n function getItemsList() {\n return (\n serverLoad\n ? (\n itemsPageNumber}\n loadMore={loadMoreItems}\n pageNumber={itemsPageNumber}\n >\n { renderListItems() }\n \n )\n : renderListItems()\n );\n }\n\n const searchOnChange = useCallback((value) => {\n if (onCustomSearch) {\n onCustomSearch(value);\n } else {\n setSearchValue(value);\n }\n }, [onCustomSearch]);\n\n const itemChanged = useCallback((item) => {\n let cloneItems = structuredClone(items);\n cloneItems = cloneItems.filter((clonedItem) => item.id !== clonedItem.id);\n\n onChange(cloneItems, item);\n }, [items]);\n\n function renderListItems() {\n return (\n \n {\n items.map((item) => (\n \n ))\n }\n \n );\n }\n\n return (\n
    \n \n }\n name=\"search\"\n onChange={searchOnChange}\n placeholder={inputPlaceholder}\n value={searchValue}\n />\n {\n items.length\n ? getItemsList()\n : (\n \n { noItemsMessage }\n \n )\n }\n
    \n );\n}\n\nMultiselectPanel.propTypes = {\n customSearch: PropTypes.bool,\n onCustomSearch: PropTypes.func,\n panelType: PropTypes.string,\n onChange: PropTypes.func,\n items: PropTypes.instanceOf(Array),\n itemsPageNumber: PropTypes.number,\n itemsNrPages: PropTypes.number,\n inputPlaceholder: PropTypes.string,\n loadMoreItems: PropTypes.func,\n noItemsMessage: PropTypes.string,\n serverLoad: PropTypes.bool,\n};\n\nexport default MultiselectPanel;\n","import React, { useCallback, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport MultiselectPanel from './js/MultiselectPanel';\nimport MultiselectContext from './js/MultiselectContext';\n\nconst diffObjects = (value, items) => items.filter((item) => !value.find((v) => v.id === item.id));\n\nfunction Multiselect({\n customSearch,\n entityNamePlural,\n disabled,\n error,\n getItemDetails,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n items,\n itemsPageNumber,\n itemsNrPages,\n loadMoreItems,\n maxSelections,\n note,\n value,\n onChange,\n wrapperClassName = '',\n}) {\n const [opened, setOpened] = useState({});\n\n const onGetItemDetails = useCallback((item) => {\n setOpened((prevOpened) => ({ ...prevOpened, [item.id]: !prevOpened[item.id] }));\n\n if (getItemDetails) getItemDetails(item);\n }, [getItemDetails]);\n\n function getMultiselectError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n const getCssClasses = useCallback(\n () => [\n wrapperClassName,\n 'tyk-multiselect',\n error && 'has-error',\n ]\n .filter(Boolean)\n .join(' '),\n [wrapperClassName, error],\n );\n\n const itemsChange = useCallback((allItems, item) => {\n const valueClone = structuredClone(value);\n\n valueClone.unshift(item);\n\n onChange(valueClone, item, 'added');\n }, [value]);\n\n const valueChange = useCallback((newValue, item) => {\n onChange(newValue, item, 'removed');\n }, [items]);\n\n const providerValue = useMemo(() => ({\n disabled,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n maxSelections,\n nrSelectedItems: value.length,\n onGetItemDetails,\n opened,\n }), [\n disabled,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n maxSelections,\n value,\n onGetItemDetails,\n opened,\n ]);\n\n return (\n <>\n
    \n \n
    \n
    \n { value.length }\n {' '}\n Selected\n {' '}\n { entityNamePlural }\n
    \n
    \n Select from existing\n { entityNamePlural }\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n {\n note\n ?

    { note }

    \n : null\n }\n
    \n { getMultiselectError() }\n \n );\n}\n\nMultiselect.propTypes = {\n customSearch: PropTypes.func,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n entityNamePlural: PropTypes.string,\n items: PropTypes.instanceOf(Array),\n itemDisplayTemplate: PropTypes.func,\n detailsDisplayTemplate: PropTypes.func,\n fieldsToSearchOn: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n getItemDetails: PropTypes.func,\n itemsPageNumber: PropTypes.number,\n itemsNrPages: PropTypes.number,\n loadMoreItems: PropTypes.func,\n note: PropTypes.string,\n maxSelections: PropTypes.number,\n value: PropTypes.instanceOf(Array),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Multiselect;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * Radio can be used when a user needs to select at most one value from a multiple options.\n */\nfunction Radio({\n label,\n input,\n note,\n inline,\n nospace,\n theme = '',\n disabled,\n readOnly,\n wrapperClassName = '',\n ...rest\n}) {\n const cssClasses = [\n inline ? 'tyk-radio--inline' : 'tyk-radio',\n wrapperClassName,\n nospace && 'no-margin',\n ...(theme ? theme.split(' ').filter(Boolean).map((t) => `tyk-radio--theme-${t}`) : []),\n (readOnly || disabled) && 'tyk-radio--is-disabled',\n ].filter(Boolean).join(' ');\n\n return (\n
    \n \n {note && (\n

    {note}

    \n )}\n
    \n );\n}\n\nRadio.propTypes = {\n /** Used to disable the element */\n disabled: PropTypes.bool,\n /** Readonly prop behaves the same as disabled on radio elements */\n readOnly: PropTypes.bool,\n /** Align radio in the same line with other elements */\n inline: PropTypes.bool,\n /** Set a theme for radio */\n theme: PropTypes.string,\n input: PropTypes.instanceOf(Object),\n /** Adds label to the radio input */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Set name for the radio input */\n name: PropTypes.string,\n /** If set to true removes margin by adding `no-margin` class */\n nospace: PropTypes.bool,\n /** Set initial value for the radio input */\n value: PropTypes.string,\n /** Add note at the bottom of the radio input */\n note: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Radio;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Select(props) {\n const {\n value,\n onChange,\n onBlur,\n isfield,\n label,\n labelwidth,\n id,\n note,\n readOnly,\n options,\n error,\n theme,\n wrapperClassName = '',\n ...rest\n } = props;\n const [stateValue, setStateValue] = useState(value);\n\n useEffect(() => {\n if (!isfield && stateValue !== value) {\n setStateValue(value);\n if (onChange) onChange(value);\n }\n }, [stateValue, value]);\n\n const handleOnChange = useCallback((e) => {\n const selectedValue = options.find((option) => option.id === e.target.value);\n\n if (!isfield) {\n setStateValue(selectedValue);\n }\n onChange(selectedValue.id ? selectedValue : null);\n }, [options, isfield, onChange]);\n\n const handleOnBlur = useCallback(() => {\n if (onBlur) {\n onBlur(value);\n }\n }, [onBlur]);\n\n // eslint-disable-next-line arrow-body-style\n const getSelectError = useCallback(() => {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }, [error]);\n\n const getCssClasses = useCallback(\n () => [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' '),\n [wrapperClassName, theme, labelwidth, error],\n );\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const getNonLabelWidth = useCallback(() => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n }, [labelwidth]);\n\n const getSelectComponent = useCallback(() => {\n const selectValue = isfield && value ? value : stateValue;\n\n return (\n \n {\n options.map((option) => (\n \n ))\n }\n \n );\n }, [isfield, value, stateValue, handleOnChange, handleOnBlur, options, rest]);\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n { getSelectComponent() }\n {\n note\n ?

    { note }

    \n : null\n }\n { getSelectError() }\n
    \n )}\n {readOnly &&
    {value || '-'}
    }\n \n );\n}\n\nSelect.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n isfield: PropTypes.bool,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n options: PropTypes.instanceOf(Array),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Select;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../../../components/Message';\nimport List from '../../../components/List';\nimport Icon from '../../../components/Icon';\n\nfunction SelectableList(props) {\n const {\n checkboxalticon,\n items,\n itemTemplate,\n value,\n noItemsMessage = 'No items in the list',\n onChange,\n theme,\n primaryKey,\n wrapperClassName = '',\n } = props;\n\n const handleOnSelect = (event) => {\n const newSelectedItems = structuredClone(value);\n const elemPosition = newSelectedItems.findIndex(\n (id) => JSON.stringify(id) === JSON.stringify(\n Array.isArray(id)\n ? event.target.value.split(',')\n : event.target.value,\n ),\n );\n\n if (event.target.checked && elemPosition === -1) {\n const tempValue = event.target.value.split(',');\n const finalValue = tempValue.length > 1 ? tempValue : event.target.value;\n\n newSelectedItems.push(finalValue);\n } else if (!event.target.checked && elemPosition > -1) {\n newSelectedItems.splice(elemPosition, 1);\n }\n\n if (onChange) {\n onChange(newSelectedItems);\n }\n };\n\n const getListItemCssClassName = (isActive) => {\n const cssClasses = [];\n\n if (checkboxalticon) {\n cssClasses.push('tyk-selectable-list__item--with-icon');\n }\n\n if (isActive) {\n cssClasses.push('tyk-selectable-list__item--active');\n }\n\n return cssClasses.join(' ');\n };\n\n const isChecked = (inputValue, itemValue) => Boolean(\n inputValue.find((tvalue) => JSON.stringify(itemValue) === JSON.stringify(tvalue)),\n );\n\n return (\n \n {\n !items.length\n ? (\n
  • \n \n {noItemsMessage}\n \n
  • \n )\n : items.map((item, index) => (\n \n \n \n ))\n }\n
    \n );\n}\n\nSelectableList.propTypes = {\n items: PropTypes.instanceOf(Array),\n itemTemplate: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n PropTypes.func,\n ]),\n value: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n primaryKey: PropTypes.string,\n noItemsMessage: PropTypes.string,\n checkboxalticon: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n theme: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\n\nSelectableList.defaultProps = {\n items: [],\n primaryKey: 'id',\n value: [],\n};\n\nexport default SelectableList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Textarea({\n id,\n input,\n label,\n note,\n error,\n theme,\n labelwidth,\n value,\n readOnly,\n wrapperClassName,\n ...rest\n}) {\n const classes = [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const getLabelStyles = () => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n };\n\n const getNonLabelWidth = () => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n };\n\n function getTextareaError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n \n { value }\n \n {\n note\n ?

    { note }

    \n : null\n }\n {getTextareaError()}\n
    \n )}\n {readOnly &&
    {value || '-'}
    }\n \n );\n}\n\nTextarea.propTypes = {\n /** Disable the component */\n disabled: PropTypes.bool,\n /** Displays only the text value of the component, or \"-\" if no value is set */\n readOnly: PropTypes.bool,\n input: PropTypes.instanceOf(Object),\n /** Set an error message for the component and the component is rendered in the error state */\n error: PropTypes.string,\n /** Adds a label to the component */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Sets the width of the label */\n labelwidth: PropTypes.string,\n /** Set a name for the component */\n name: PropTypes.string,\n /** Adds additional information under the component */\n note: PropTypes.string,\n /** Callback function executed on value change */\n onChange: PropTypes.func,\n id: PropTypes.string,\n /** Set a theme for the component */\n theme: PropTypes.string,\n /** Set the value of the component */\n value: PropTypes.string,\n /** CSS classes added to the wrapper of the component */\n wrapperClassName: PropTypes.string,\n};\n\nexport default Textarea;\n","import { createContext } from 'react';\n\nconst ToggleContext = createContext();\n\nexport default ToggleContext;\n","import React, { Component, createRef } from 'react';\nimport PropTypes from 'prop-types';\n\nclass ToggleItem extends Component {\n static getNotchCssClasses(context) {\n return ['tyk-toggle__item-notch', `tyk-toggle__item-notch--${context.type}`].join(' ');\n }\n\n constructor(props) {\n super(props);\n\n this.itemRef = createRef();\n }\n\n componentDidMount() {\n const { context, value } = this.props;\n\n if (context.value === value) {\n context.saveSelectedRef(this.itemRef);\n }\n }\n\n componentDidUpdate(prevProps) {\n const { context, value } = this.props;\n\n if (prevProps.context.value !== context.value && context.value === value) {\n context.saveSelectedRef(this.itemRef);\n }\n }\n\n onChange(event) {\n const { context, value } = this.props;\n const { disabled, readOnly } = context;\n\n if (disabled || readOnly) {\n return;\n }\n\n context.onItemSelected(context.type === 'single' ? !context.value : value, event);\n }\n\n render() {\n const {\n context, label, name, value,\n } = this.props;\n return (\n
  • \n \n
  • \n );\n }\n}\n\nToggleItem.propTypes = {\n context: PropTypes.instanceOf(Object),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n name: PropTypes.string,\n value: PropTypes.string,\n};\n\nexport default ToggleItem;\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToggleContext from './ToggleContext';\nimport ToggleItem from './ToggleItem';\n\nfunction ToggleItemWrapper({ children, ...rest }, ref) {\n return (\n \n {(context) => (\n \n {children}\n \n )}\n \n );\n}\n\nToggleItemWrapper.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nexport default forwardRef(ToggleItemWrapper);\n","import React, {\n useCallback, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToggleContext from './js/ToggleContext';\nimport ToggleItemWrapper from './js/ToggleItemWrapper';\n\nfunction Toggle({\n className,\n disabled,\n readOnly,\n size,\n theme,\n direction,\n onDark,\n wrapperClassName = '',\n onChange,\n labelwidth,\n label,\n separated,\n children,\n type,\n value,\n error,\n}) {\n const [selectedRef, setSelectedRef] = useState(null);\n const notchRef = useRef();\n const toggleRef = useRef();\n\n const classes = [\n wrapperClassName,\n className,\n 'tyk-toggle',\n `tyk-toggle--disabled-${readOnly || disabled}`,\n `tyk-toggle--${size || 'md'}`,\n `tyk-toggle--${theme}`,\n `tyk-toggle--${direction}`,\n onDark && 'tyk-toggle--on-dark',\n ].filter(Boolean).join(' ');\n\n const onItemSelected = useCallback((itemValue, event) => {\n if (!onChange) return;\n onChange(itemValue, event);\n }, [onChange]);\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const positionNotch = useCallback(() => {\n if (!selectedRef || separated) {\n return {};\n }\n\n const selectedWidth = selectedRef.current.offsetWidth;\n const selectedOffset = selectedRef.current.getBoundingClientRect().left;\n const toggleOffset = toggleRef.current.getBoundingClientRect().left;\n const left = selectedOffset - toggleOffset;\n\n return {\n left: `${left + 4}px`,\n width: `${selectedWidth - 8}px`,\n };\n }, [selectedRef, separated]);\n\n const contextValue = useMemo(() => ({\n disabled,\n readOnly,\n onItemSelected,\n saveSelectedRef: setSelectedRef,\n separated,\n type,\n value,\n }), [disabled, readOnly, onItemSelected, separated, type, value]);\n\n return (\n <>\n
    \n \n {\n label\n ? \n : null\n }\n
      \n { children }\n {\n type === 'multiple' && !separated\n ?
    • \n : null\n }\n
    \n \n
    \n {\n error && (\n

    \n { error }\n

    \n )\n }\n \n );\n}\n\nToggle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n error: PropTypes.string,\n onChange: PropTypes.func,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n theme: PropTypes.string,\n type: PropTypes.string, // single || multiple\n size: PropTypes.string,\n separated: PropTypes.bool,\n direction: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n ]),\n onDark: PropTypes.bool,\n wrapperClassName: PropTypes.string,\n};\n\nToggle.defaultProps = {\n separated: false,\n theme: 'primary',\n type: 'single',\n direction: 'row',\n};\n\nToggle.Item = ToggleItemWrapper;\n\nexport default Toggle;\n","const config = {\n FORM_DEBOUNCE: 200,\n};\n\nexport function setConfig(key, val) {\n config[key] = val;\n}\n\nexport default config;\n","import React, { useCallback, useEffect, useState } from 'react';\n\nimport config from '../config/config';\n\nfunction getValueFromPath(obj, path) {\n // turn 'aaa.qqq[2].bbb[5][3].mmm' into ['aaa', 'qqq', '2', 'bbb', '5', '3', 'mmm']\n const indexes = path.split(/[\\][.]/).filter(Boolean);\n return indexes.reduce((acc, v) => (acc ? acc[v] : acc), obj);\n}\n\nfunction debounce(f, limit) {\n let timeoutId;\n return (...args) => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(f, limit, ...args);\n };\n}\n\n/* eslint-disable react/prop-types, react/function-component-definition */\n/**\n * A wrapper function that \"prepares\" a tyk-ui form component to be used with the formik library.\n * It handles things like setting the value of the component, change events, error state,\n * and also has a default debounce time for when the change event is triggered.\n */\nconst wrapper = (Component, options) => ({ field, form, ...properties }) => {\n const DEFAULT_DEBOUNCE_TIME_MS = typeof config.FORM_DEBOUNCE === 'number' ? config.FORM_DEBOUNCE : 200;\n const [myValue, setMyValue] = useState(field.value);\n const opts = {\n getOnChangeProps: () => ({}),\n hasIsFieldProp: false,\n ...options,\n };\n\n const executeDebounced = useCallback((() => {\n const fn = (f) => f();\n if (\n properties.debounce === false\n || (config.FORM_DEBOUNCE === false && !properties.debounce)\n ) {\n return fn;\n }\n const timeout = typeof properties.debounce === 'number'\n ? properties.debounce\n : DEFAULT_DEBOUNCE_TIME_MS;\n return debounce(fn, timeout);\n })(), []);\n\n const getValue = (v) => {\n if (v?.target) {\n if (v.target.nodeName === 'INPUT' && (v.target.type === 'checkbox' || v.target.type === 'radio')) {\n return v.target.checked;\n }\n return v.target.value;\n }\n return v;\n };\n\n const onChange = (valueOrEvent) => {\n const value = getValue(valueOrEvent);\n const onChangeProps = opts.getOnChangeProps(value, field, form, properties);\n\n const newValue = onChangeProps.value || properties.value || value;\n executeDebounced(() => {\n if (typeof properties.onChange === 'function') {\n properties.onChange(newValue);\n }\n field.onChange({ target: { name: field.name, value: newValue, ...onChangeProps } });\n });\n setMyValue(newValue);\n };\n\n const formError = (getValueFromPath(form.touched, field.name) || Boolean(form.submitCount))\n && getValueFromPath(form.errors, field.name);\n const error = typeof formError === 'string' ? formError : '';\n\n useEffect(() => {\n setMyValue(field.value);\n }, [field.value]);\n\n // eslint-disable-next-line no-param-reassign\n if (form.status?.disabled) properties.disabled = true;\n\n const componentProps = { ...properties };\n delete componentProps.debounce;\n\n if (Object.hasOwn(componentProps, 'className') && componentProps.className === undefined) delete componentProps.className;\n if (Object.hasOwn(componentProps, 'children') && componentProps.children === undefined) delete componentProps.children;\n\n return (\n \n );\n};\n\nexport default wrapper;\n","import wrapper from '../../../utils/formik';\nimport Checkbox from '../../components/Checkbox';\n\nexport default wrapper(Checkbox, {\n getOnChangeProps: (value) => ({\n checked: value,\n }),\n});\n","import wrapper from '../../../utils/formik';\nimport CodeEditor from '../../components/CodeEditor';\n\nexport default wrapper(CodeEditor);\n","import wrapper from '../../../utils/formik';\nimport Combobox from '../../components/Combobox';\n\nexport default wrapper(Combobox);\n","import wrapper from '../../../utils/formik';\nimport Combobox2 from '../../components/Combobox2';\n\nexport default wrapper(Combobox2);\n","import wrapper from '../../../utils/formik';\nimport DatePicker from '../../components/DatePicker';\n\nexport default wrapper(DatePicker);\n","import wrapper from '../../../utils/formik';\nimport EditableList from '../../components/EditableList';\n\nexport default wrapper(EditableList, {\n getOnChangeProps: (value) => ({ value: value || [] }),\n});\n","import wrapper from '../../../utils/formik';\nimport EditableList2 from '../../components/EditableList2';\n\nexport default wrapper(EditableList2);\n","import wrapper from '../../../utils/formik';\nimport FileInput from '../../components/FileInput';\n\nexport default wrapper(FileInput);\n","import wrapper from '../../../utils/formik';\nimport Input from '../../components/Input';\n\nexport default wrapper(Input, { hasIsFieldProp: true });\n","import wrapper from '../../../utils/formik';\nimport Input2 from '../../components/Input2';\n\nexport default wrapper(Input2);\n","import wrapper from '../../../utils/formik';\nimport MultiSelect from '../../components/Multiselect';\n\nexport default wrapper(MultiSelect);\n","import wrapper from '../../../utils/formik';\nimport Radio from '../../components/Radio';\n\nexport default wrapper(Radio, {\n getOnChangeProps: (value, field, form, properties) => ({\n checked: value === properties.value,\n value: properties.value,\n }),\n});\n","import wrapper from '../../../utils/formik';\nimport Select from '../../components/Select';\n\nexport default wrapper(Select, { hasIsFieldProp: true });\n","import wrapper from '../../../utils/formik';\nimport SelectableList from '../../components/SelectableList';\n\nexport default wrapper(SelectableList);\n","import wrapper from '../../../utils/formik';\nimport Textarea from '../../components/Textarea';\n\nexport default wrapper(Textarea);\n","import wrapper from '../../../utils/formik';\nimport Toggle from '../../components/Toggle';\n\nexport default wrapper(Toggle);\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport CodeEditor from '../../components/CodeEditor';\n\nclass FieldCodeEditor extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.prop;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldCodeEditor.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCodeEditor;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Combobox from '../../components/Combobox';\n\nclass FieldCombobox extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getComboboxError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldCombobox.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCombobox;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Dropdown from '../../components/Dropdown';\n\nclass FieldDropdown extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n render() {\n const {\n children,\n input,\n ...rest\n } = this.props;\n\n return (\n \n {children}\n \n );\n }\n}\n\nFieldDropdown.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldDropdown;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Pagination from '../../components/Pagination';\n\nfunction FieldPagination(props) {\n const { input, ...rest } = props;\n\n return (\n \n );\n}\n\nFieldPagination.propTypes = {\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldPagination;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Combobox2 from '../../components/Combobox2';\n\nfunction FieldCombobox2(props) {\n const { input, meta, validationmessages } = props;\n\n const getComboboxError = () => {\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n return message;\n };\n\n const handleOnChange = (value) => {\n const { onChange } = input;\n onChange(fromJS(value));\n };\n\n return (\n \n );\n}\n\nFieldCombobox2.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCombobox2;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport DatePicker from '../../components/DatePicker';\n\nfunction FormDatePicker(props) {\n const {\n input,\n meta,\n validationmessages,\n ...rest\n } = props;\n\n const getDatePickerError = () => {\n const { touched, error } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n }\n\n return message;\n };\n\n const handleOnChange = (value) => {\n const { onChange } = input;\n\n onChange(fromJS(value));\n };\n\n return (\n \n );\n}\n\nFormDatePicker.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FormDatePicker;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport EditableList from '../../components/EditableList';\n\nclass FieldEditableList extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getEditableListError() {\n const { meta, validationmessages } = this.props;\n const { touched, error } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldEditableList.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldEditableList;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport FileInput from '../../components/FileInput';\n\nclass FieldFileInput extends Component {\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldFileInput.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldFileInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Input from '../../components/Input';\n\nclass FieldInput extends Component {\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldInput.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Multiselect from '../../components/Multiselect';\n\nclass FieldMultiselect extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getMultiselectError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldMultiselect.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldMultiselect;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Select from '../../components/Select';\n\nclass FieldSelect extends Component {\n constructor(props) {\n super(props);\n\n this.handleEvent = this.handleEvent.bind(this);\n }\n\n handleEvent(selectValue) {\n const { input } = this.props;\n const { onChange, value } = input;\n\n onChange(fromJS(selectValue !== undefined ? selectValue : value));\n }\n\n getSelectError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldSelect.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldSelect;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport SelectableList from '../../components/SelectableList';\n\nclass FieldSelectableList extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n\n input.onChange(fromJS(value));\n }\n\n render() {\n const { children, ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldSelectableList.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.node,\n ]),\n onChange: PropTypes.func,\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldSelectableList;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Toggle from '../../components/Toggle';\n\nclass FieldToggle extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n\n input.onChange(fromJS(value));\n }\n\n render() {\n const { children, ...props } = this.props;\n\n return (\n \n {children}\n \n );\n }\n}\n\nFieldToggle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.node,\n ]),\n onChange: PropTypes.func,\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldToggle;\n","import { useEffect, useRef } from 'react';\n\n/** @component */\nexport default function useInterval(callback, delay, ...args) {\n const savedCallback = useRef();\n\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n // eslint-disable-next-line consistent-return\n useEffect(() => {\n function tick() {\n savedCallback.current(...args);\n }\n if (delay !== null && delay !== undefined) {\n const id = setInterval(tick, delay);\n return () => clearInterval(id);\n }\n }, [delay]);\n}\n"],"names":["global","this","window","define","module","deps","payload","arguments","length","modules","payloads","original","apply","console","error","trace","ns","root","_require","parentId","callback","lookup","undefined","Object","prototype","toString","call","params","i","l","dep","require","push","packagedModule","normalizeModule","moduleName","indexOf","chunks","split","charAt","slice","join","previous","replace","exports","mod","id","uri","packaged","ace","defineProp","obj","name","val","defineProperty","value","enumerable","writable","configurable","String","startsWith","searchString","position","lastIndexOf","endsWith","subjectString","lastIndex","repeat","count","result","string","includes","str","assign","target","TypeError","output","index","source","keys","forEach","key","values","o","map","k","Array","find","predicate","len","thisArg","kValue","findIndex","item","fill","O","relativeStart","Math","max","min","end","relativeEnd","final","of","deepCopy","copy","isArray","last","a","stringReverse","reverse","stringRepeat","trimBeginRegexp","trimEndRegexp","stringTrimLeft","stringTrimRight","copyObject","copyArray","array","arrayToMap","arr","createMap","props","create","arrayRemove","splice","escapeRegExp","escapeHTML","getMatchOffsets","regExp","matches","offset","deferredCall","fcn","timer","deferred","timeout","cancel","setTimeout","schedule","clearTimeout","isPending","delayedCall","defaultTimeout","_self","delay","supportsLookbehind","RegExp","e","skipEmptyMatch","line","supportsUnicodeFlag","codePointAt","OS","LINUX","MAC","WINDOWS","getOS","isMac","isLinux","_navigator","navigator","os","exec","platform","toLowerCase","ua","userAgent","appName","isWin","isIE","parseFloat","match","isOldIE","isGecko","isMozilla","isOpera","opera","isWebKit","isChrome","isSafari","isEdge","isAIR","isAndroid","isChromeOS","isIOS","test","MSStream","isMobile","strictCSP","useragent","buildDom","parent","refs","txt","document","createTextNode","appendChild","els","ch","el","createElement","options","childIndex","n","className","style","cssText","setAttribute","getDocumentHead","doc","head","getElementsByTagName","documentElement","tag","createElementNS","removeChildren","element","innerHTML","textContent","ownerDocument","createFragment","createDocumentFragment","hasCssClass","addCssClass","removeCssClass","classes","toggleCssClass","add","setCssClass","node","include","hasCssString","sheets","querySelectorAll","removeElementById","getElementById","remove","cssCache","insertPendingStyles","cache","importCssString","container","getRootNode","insertBefore","firstChild","useStrictCSP","importCssStylsheet","rel","href","scrollbarWidth","inner","width","minWidth","height","display","outer","left","overflow","body","noScrollbar","offsetWidth","withScrollbar","clientWidth","removeChild","computedStyle","getComputedStyle","setStyle","styles","property","HAS_CSS_ANIMATION","HAS_CSS_TRANSFORMS","HI_DPI","devicePixelRatio","div","transform","animationName","translate","tx","ty","round","top","dom","get","url","xhr","XMLHttpRequest","open","onreadystatechange","readyState","responseText","send","loadScript","path","s","src","onload","_","isAbort","qualifyURL","inherits","ctor","superCtor","super_","constructor","mixin","implement","proto","EventEmitter","stopPropagation","propagationStopped","preventDefault","defaultPrevented","_emit","_dispatchEvent","eventName","_eventRegistry","_defaultHandlers","listeners","defaultHandler","type","_signal","once","on","newCallback","off","Promise","resolve","setDefaultHandler","handlers","_disabled_","old","disabled","removeDefaultHandler","pop","addEventListener","capturing","removeListener","removeEventListener","removeAllListeners","reportError","msg","data","Error","messages","oop","optionsProvider","setOptions","optList","setOption","getOptions","optionNames","$options","filter","hidden","getOption","opt","warn","forwardTo","handlesSet","set","message","AppConfig","$defaultOptions","defineOptions","initialValue","resetOptions","setDefaultValue","opts","setDefaultValues","optionHash","setMessages","nls","translated","isDark","cssClass","$id","lang","net","customLoader","workerPath","modePath","themePath","basePath","suffix","$moduleUrls","loadWorkerFromBlob","sharedPopups","hasOwnProperty","all","$modes","moduleUrl","component","parts","sep","base","re","setModuleUrl","subst","setLoader","cb","dynamicModules","$loading","$loaded","loadModule","onLoad","loadedModule","moduleType","load","afterLoad","loader","err","reportErrorIfPathIsNotConfigured","then","default","$require","setModuleLoader","version","config","init","scriptOptions","scriptUrl","currentScript","_currentScript","currentDocument","scripts","script","getAttribute","attributes","j","attr","m","m1","toUpperCase","Range","startRow","startColumn","endRow","endColumn","start","row","column","isEqual","range","contains","compare","compareRange","cmp","comparePoint","p","containsRange","intersects","isEnd","isStart","setStart","setEnd","inside","insideStart","insideEnd","isMultiLine","compareStart","compareEnd","compareInside","clipRows","firstRow","lastRow","fromPoints","extend","isEmpty","clone","collapseRows","toScreenRange","session","screenPosStart","documentToScreenPosition","screenPosEnd","moveBy","comparePoints","p1","p2","Keys","ret","MODIFIER_KEYS","KEY_MODS","FUNCTION_KEYS","PRINTABLE_KEYS","parseInt","enter","escape","esc","del","mods","pow","x","keyCodeToString","keyCode","keyString","fromCharCode","activeListenerOptions","pressedKeys","ts","getListenerOptions","createComment","passive","detectListenerOptionsSupport","EventListener","elem","destroy","addListener","destroyer","$toDestroy","stopEvent","getButton","ctrlKey","altKey","shiftKey","button","capture","eventHandler","releaseCaptureHandler","onMouseUp","addMouseWheelListener","deltaX","deltaY","deltaMode","DOM_DELTA_PIXEL","wheelX","wheelY","DOM_DELTA_LINE","DOM_DELTA_PAGE","addMultiMouseDownListener","elements","timeouts","callbackName","startX","startY","clicks","eventNames","onMousedown","detail","isNewClick","abs","clientX","clientY","_clicks","getModifierHash","metaKey","normalizeCommandKeys","hashId","getModifierState","altGr","location","keyLocation","timeStamp","resetPressedKeys","getModifierString","addCommandKeyListener","isOldGecko","lastKeyDownKeyCode","lastDefaultPrevented","postMessage","postMessageId","nextTick","win","messageName","listener","$idleBlocked","onIdle","handler","$idleBlockId","blockIdle","nextFrame","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","bind","$cancelT","lineMode","pasteCancelled","Date","now","event","clipboard","BROKEN_SETDATA","USE_IE_MIME_TYPE","HAS_FOCUS_ARGS","MAX_LINE_LENGTH","KEYS","MODS","valueResetRegex","TextInput","parentNode","host","text","opacity","copied","pasted","inComposition","sendingText","tempStyle","fontSize","commandMode","ignoreFocusEvents","lastValue","lastSelectionStart","lastSelectionEnd","lastRestoreEnd","rowStart","Number","MAX_SAFE_INTEGER","rowEnd","MIN_SAFE_INTEGER","numberOfExtraLines","isFocused","activeElement","setNumberOfExtraLines","number","setAriaOptions","activeDescendant","inline","removeAttribute","role","setLabel","selection","cursor","onBlur","hasFocus","onFocus","resetSelection","$focusScroll","focus","renderer","enableKeyboardAccessibility","preventScroll","isTransformed","getBoundingClientRect","ancestors","t","parentElement","nodeType","blur","curOp","commandName","command","isUserAction","docChanged","selectionChanged","onCompositionEnd","positionToSelection","getLine","newValue","selectionEnd","setSelectionRange","afterContextMenu","selectionStart","getRange","lines","prevLine","nextLine","inputHandler","setInputHandler","getInputHandler","sendText","fromInput","onPaste","extendLeft","extendRight","inserted","restoreStart","restoreEnd","endIndex","shouldReset","onTextInput","onInput","onCompositionUpdate","inputType","execCommand","handleClipboardData","forceIEMime","clipboardData","mime","setData","getData","doCopy","isCut","getCopyText","onCut","onCopy","select","onCommandKey","isAllSelected","selectAll","$readOnly","cancelComposition","useTextareaForIME","markerRange","context","compositionStartOffset","closeTimeout","syncComposition","onContextMenuClose","$isMousePressed","$keepTextAreaAtCursor","$moveTextAreaToCursor","onCompositionStart","getSelectionRange","msGetInputContext","getInputContext","getElement","setCommandMode","readOnly","setReadOnly","setCopyWithEmptySelection","onContextMenu","domEvent","moveToMouse","bringToFront","characterWidth","rect","borderTopWidth","borderLeftWidth","maxTop","bottom","clientHeight","move","textInput","scroller","typingResetTimeout","typing","detectArrowKeys","$mouseHandler","isMousePressed","modifier","up","home","option","down","right","shift","commands","findKeyCommand","addIosSelectionHandler","$setUserAgentForTests","_isMobile","_isIOS","DefaultHandlers","mouseHandler","$clickSelection","editor","onMouseDown","onDoubleClick","onTripleClick","onQuadClick","onMouseWheel","selectByLines","extendSelectionBy","selectByWords","ev","inSelection","pos","getDocumentPosition","mousedownEvent","moveToPosition","time","$focusTimeout","inMultiSelectMode","captureMouse","startSelect","setState","waitForClickSelection","screenToTextCoordinates","y","getShiftKey","selectToPosition","anchor","orientedRange","calcRangeOrientation","setSelectionAnchor","scrollCursorIntoView","unitName","cmpStart","cmpEnd","selectByLinesEnd","unsetStyle","focusWait","ax","ay","bx","by","distance","sqrt","getBracketRange","getWordRange","getLineRange","getAccelKey","$lastScroll","vx","vy","allowed","prevScroll","dt","direction","canScroll","isScrollableBy","speed","scrollBy","stop","selectEnd","selectAllEnd","selectByWordsEnd","extendStatics","__extends","d","b","setPrototypeOf","__proto__","__","__values","Symbol","iterator","next","done","CLASSNAME","Tooltip","isOpen","$element","$parentNode","$init","setText","setHtml","html","setPosition","setClassName","setTheme","theme","show","hide","getHeight","offsetHeight","getWidth","popupManager","PopupManager","popups","addPopup","popup","updatePopups","removePopup","e_1","_a","e_2","_b","sort","priority","visiblepopups","_c","_d","shouldDisplay","visiblepopups_1","visiblepopups_1_1","visiblePopup","doPopupsOverlap","e_2_1","return","e_1_1","popupA","popupB","rectA","rectB","HoverTooltip","_super","_this","lastT","idleTime","lastEvent","onMouseOut","onMouseMove","waitForHover","whiteSpace","pointerEvents","tabIndex","addToEditor","getMouseEventTarget","removeFromEditor","isOutsideOfText","$gatherData","docPos","screenPos","pixelToScreenCoordinates","clippedPos","setDataProvider","showForRange","domNode","startingEvent","$registerCloseEvents","addMarker","textToScreenCoordinates","pageX","maxHeight","labelHeight","labelWidth","spaceBelow","innerHeight","pageY","lineHeight","isAbove","innerWidth","marker","$markerSession","removeMarker","$removeCloseEvents","relatedTarget","currentTarget","classList","GutterHandler","tooltipTimeout","mouseEvent","gutter","$gutterLayer","tooltip","GutterTooltip","hideTooltip","moveTooltip","getRegion","selectTo","srcElement","$tooltipFollowsMouse","getLength","screenRow","$pos","documentToScreenRow","showTooltip","gutterRow","getGutterRow","gutterCell","$lines","querySelector","$gutter","windowWidth","windowHeight","singular","plural","warning","info","annotation","annotationsInRow","$annotations","from","fold","getFoldLine","$showFoldedAnnotations","mostSevereAnnotationInFoldType","annotationsInFold","annotationType","summaryFoldedAnnotations","concat","annotationsToSummaryString","annotationMessages","iconClassName","$useSvgGutterIcons","annotationLabels","tooltipContent","annotations","summary","annotationTypes_1","annotationTypes_1_1","label","MouseEvent","$inSelection","documentRow","selectionRange","DragdropHandler","dragImage","dragSelectionMarker","timerId","dragCursor","dragOperation","isInternal","autoScrollStartTime","cursorMovedTime","cursorPointOnCaretMoved","mouseTarget","counter","onDragInterval","prevCursor","vMovement","hMovement","moveCursorToPosition","calcDistance","layerConfig","editorRect","offsets","nearestXOffset","nearestYOffset","scrollCursor","vScroll","hScroll","autoScroll","addDragMarker","toOrientedRange","getSelectionStyle","clearSelection","$cursorLayer","setBlinking","clearInterval","setInterval","clearDragMarker","fromOrientedRange","$resetCursorStyle","onDragStart","cancelDrag","draggable","self","dataTransfer","effectAllowed","getReadOnly","setDragImage","clearData","getTextRange","onDragEnd","dropEffect","setCursorStyle","onDragEnter","canAccept","getDropEffect","onDragOver","onMouseMoveTimer","onDragLeave","onDrop","moveText","dropData","insert","types","some","copyAllowed","copyModifierState","dragWait","getDragDelay","startDrag","dragWaitEnd","dragReadyEnd","cursorStyle","onMouseDrag","state","dragDrop","$dragEnabled","eventTarget","unselectable","addTouchListeners","touchStartT","longTouchTimer","animationTimer","pressed","contextMenu","mode","animationSteps","clickCount","vX","vY","showContextMenu","handleClick","selected","hasUndo","action","getUndoManager","replaceChild","class","readText","writeText","ontouchstart","ontouchend","onclick","pagePos","leftOffset","scrollLeft","hideContextMenu","handleLongTap","selectWord","touches","h","w","touchObj","setRange","switchToSelectionMode","cursorPos","getPixelPosition","anchorPos","offsetTop","offsetLeft","weightedDistance","diff1","diff2","oldScrollTop","getScrollTop","DefaultGutterHandler","MouseHandler","focusEditor","onMouseEvent","scrollBarV","scrollBarH","Boolean","gutterEl","$dragDelay","character","mousemove","$scrollSpeed","mouseMoveHandler","which","releaseMouse","$mouseMoved","onCaptureEnd","onOperationEnd","onCaptureInterval","$onCaptureMouseMove","endOperation","startOperation","cancelContextMenu","scrollSpeed","dragDelay","dragEnabled","focusTimeout","tooltipFollowsMouse","FoldHandler","getFoldAt","removeFold","expandFold","getUseWrapMode","foldWidgets","onFoldWidgetClick","getParentFoldRangeData","firstRange","addFold","keyUtil","KeyBinding","$editor","$data","$handlers","kb","removeKeyboardHandler","$defaultHandler","addKeyboardHandler","setKeyboardHandler","handleKeyboard","attach","detach","getKeyboardHandler","getStatusText","$callKeyboardHandlers","toExecute","success","args","passEvent","dir","hiLevel","lastArabic","hasUBAT_B","hasUBAT_S","impTab_LTR","impTab_RTL","ET","BN","UnicodeTBL00","UnicodeTBL20","_invertLevel","lev","levels","_array","lo","hi","tmp","_getCharClass","chars","ix","wType","nType","cType","c","rtlCandidate","_getCharacterType","uc","charCodeAt","L","R","EN","ON_R","AN","R_H","B","RLE","DOT","doBidiReorder","textCharTypes","isRtl","logicalFromVisual","bidiLevels","charTypes","impTab","prevState","newClass","newLevel","newState","condPos","_computeLevels","hasBidiCharacters","getVisualFromLogicalIdx","logIdx","rowMap","bidiUtil","bidiRE","BidiHandler","bidiMap","currentRow","charWidths","EOL","showInvisibles","isRtlDir","$isRtl","wrapIndent","EOF","contentWidth","fontMetrics","rtlLineOffset","wrapOffset","isMoveLeftOperation","seenBidi","getValue","isBidiRow","docRow","splitIndex","updateRowLine","updateBidiMap","onChange","delta","getDocumentRow","rowCache","$screenRowCache","$getRowCacheIndex","$docRowCache","getSplitIndex","currentIndex","prevIndex","endOfLine","$useWrapMode","splits","$wrapData","indent","substring","size","isFullWidth","getScreenTabSize","$main","substr","markAsDirty","updateCharacterWidths","$characterSize","bidiCharWidth","$measureCharWidth","setShowInvisibles","setEolChar","eolChar","setContentWidth","isRtlLine","setRtlDirection","getCursorPosition","getSelectionAnchor","$bidiHandler","removeInLine","getPosLeft","col","leftBoundary","logicalIdx","getOverwrite","visualIdx","getSelections","startCol","endCol","level","selections","selColMin","selColMax","isSelected","isSelectedPrev","visIdx","offsetToCol","posX","charWidth","Selection","getDocument","lead","createAnchor","$silent","$cursorChanged","$isEmpty","$keepDesiredColumnOnChange","$desiredColumn","$anchorChanged","getCursor","getPosition","setAnchor","getAnchor","getSelectionLead","isBackwards","$setSelection","MAX_VALUE","anchorRow","anchorColumn","cursorRow","cursorColumn","wasEmpty","wasMultiselect","$moveSelection","mover","moveCursorTo","moveTo","selectUp","moveCursorUp","selectDown","moveCursorDown","selectRight","moveCursorRight","selectLeft","moveCursorLeft","selectLineStart","moveCursorLineStart","selectLineEnd","moveCursorLineEnd","selectFileEnd","moveCursorFileEnd","selectFileStart","moveCursorFileStart","selectWordRight","moveCursorWordRight","selectWordLeft","moveCursorWordLeft","selectAWord","getAWordRange","excludeLastChar","foldLine","selectLine","moveCursorBy","wouldMoveIntoSoftTab","tabSize","isTabStop","getTabSize","getNavigateWithinSoftTabs","firstColumnPosition","screenToDocumentPosition","leadingSpace","getDisplayLine","$useEmacsStyleLineStart","lineEnd","getDocumentLastRowColumnPosition","textEnd","search","moveCursorLongWordRight","rightOfCursor","nonTokenRe","tokenRe","moveCursorLongWordLeft","getFoldStringAt","leftOfCursor","$shortWordEndIndex","whitespaceRe","moveCursorShortWordRight","moveCursorShortWordLeft","$selectLongWords","rows","offsetX","lineWidgets","widget","rowsAbove","rowCount","keepDesiredColumn","moveCursorToScreen","desiredColumn","r","getRangeOfMovements","func","toJSON","rangeCount","ranges","r1","fromJSON","rangeList","toSingleRange","addRange","MAX_TOKEN_COUNT","Tokenizer","rules","states","regExps","matchMappings","ruleRegExps","matchTotal","mapping","defaultToken","flag","splitterRurles","rule","caseInsensitive","unicode","regex","adjustedregex","matchcount","token","groupCount","tokenArray","onMatch","$arrayTokens","$applyToken","digit","removeCapturingGroups","splitRegex","createSplitterRegexp","$setMaxTokenCount","tokens","stack","inChClass","lastCapture","parenOpen","parenClose","square","getLineTokens","startState","currentState","matchAttempts","skipped","consumeLineEnd","merge","unshift","TextHighlightRules","$rules","addRules","prefix","nextState","getRules","embedRules","HighlightRules","escapeRules","append","$embeds","getEmbeds","pushState","popState","normalizeRules","processState","processed","toInsert","stateName","includeName","noEscape","keywordMap","createKeywordMapper","ignoreCase","splitChar","keywords","$keywordList","list","word","getKeywords","$keywords","Behaviour","$behaviours","addBehaviours","behaviours","inherit","getBehaviours","TokenIterator","initialRow","initialColumn","$session","$row","$rowTokens","getTokens","getTokenAt","$tokenIndex","stepBackward","stepForward","getCurrentToken","getCurrentTokenRow","getCurrentTokenColumn","rowTokens","tokenIndex","getCurrentTokenPosition","getCurrentTokenRange","SAFE_INSERT_IN_TOKENS","SAFE_INSERT_BEFORE_TOKENS","contextCache","defaultQuotes","initContext","multiSelect","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","getWrapped","opening","closing","rowDiff","CstyleBehaviour","getWrapBehavioursEnabled","isSaneInsertion","braces","recordAutoInsert","recordMaybeInsert","$findOpeningBracket","isAutoInsertedClosing","popAutoInsertedClosing","isMaybeInsertedClosing","clearMaybeInsertedClosing","openBracePos","findMatchingBracket","next_indent","$getIndent","getTabString","quotes","$mode","$quotes","lineCommentStart","quote","leftChar","rightChar","rightToken","pair","stringBefore","stringAfter","wordRe","isWordBefore","isWordAfter","pairQuotesAfter","$pairQuotesAfter","charBefore","closeDocComment","$matchTokenType","iterator2","bracket","wordChars","code","Mode","$defaultBehaviour","getTokenizer","$tokenizer","$highlightRules","$highlightRuleConfig","blockComment","toggleCommentLines","ignoreBlankLines","shouldRemove","minIndent","Infinity","insertAtTabStop","regexpStart","getUseSoftTabs","uncomment","shouldInsertSpace","commentWithSpace","comment","insertInLine","testRemove","before","after","spaces","lineCommentEnd","regexpEnd","iter","fun","minEmptyLength","floor","toggleBlockComment","colDiff","initialRange","startRange","endRange","getNextLineIndent","tab","checkOutdent","input","autoOutdent","createWorker","createModeDelegates","delegations","scope","functionName","$delegator","method","language","transformAction","param","$behaviour","completionKeywords","ruleItr","aLength","$createKeywordList","getCompletions","score","meta","applyDelta","docLines","doNotValidate","Anchor","$onChange","$clipPositionToDocument","point","moveIfEqual","deltaIsInsert","deltaRowShift","deltaColShift","deltaStart","deltaEnd","$pointsInOrder","$getTransformedPoint","$insertRight","noClip","point1","point2","equalPointsInOrder","bColIsAfter","Document","textOrLines","insertMergedLines","setValue","getAllLines","getNewLineCharacter","$detectNewLine","$autoNewLine","$newLineMode","setNewLineMode","newLineMode","getNewLineMode","isNewLine","getLines","getLinesForRange","insertLines","insertFullLines","removeLines","removeFullLines","insertNewLine","$split","clonePos","$clipPosition","deleteFirstNewLine","deleteLastNewLine","deletedLines","removeNewLine","applyDeltas","deltas","revertDeltas","revertDelta","isInsert","$splitAndapplyLargeDelta","$safeApplyDelta","docLength","MAX","to","chunk","indexToPosition","newlineLength","positionToIndex","BackgroundTokenizer","tokenizer","running","currentLine","$worker","workerStart","endLine","startLine","processedLines","$tokenizeRow","fireUpdateEvent","setTokenizer","setDocument","first","scheduleStart","$updateOnChange","getState","cleanup","SearchHighlight","clazz","setRegexp","update","markerLayer","renderedMarkerRanges","MAX_RANGES","rangeToAddMarkerTo","rangeAsString","drawSingleLineMarker","UndoManager","$maxRev","$fromUndo","$undoDepth","reset","addSession","allowMerge","$lastDelta","$keepRedoStack","$redoStack","lastDeltas","undoStackLength","$undoStack","$rev","addSelection","rev","startNewGroup","markIgnored","ignore","getSelection","getRevision","getDeltas","getChangedRanges","getChangedLines","undo","dontSelect","deltaSet","swapped","swapGroups","rearrangeUndoStack","$redoStackBaseRev","undoSelectionRange","undoChanges","$syncRev","redo","diff","redoStack","deltaSets","moveDeltasByOne","rebaseRedoStack","redoSelectionRange","redoChanges","nextDelta","mark","canUndo","canRedo","bookmark","isAtBookmark","json","$prettyPrint","stringifyDelta","hasRedo","isClean","markClean","stringifyRange","swap","d1","d2","i1","i2","ds1","ds2","selectionBefore","selectionAfter","xform","c1","splitDelta","shiftPos","rowsBefore","otherLines","cloneDelta","xformed","FoldLine","foldData","folds","setFoldLine","shiftRow","sameRow","containsRow","walk","lastEnd","isNewRow","placeholder","getNextFoldTo","kind","addRemoveChars","log","foldBefore","newFoldLine","foldLineNext","idxToPosition","idx","lastFoldEndColumn","RangeList","$bias","pointIndex","excludeEdges","startIndex","addList","removed","substractPoint","containsPoint","rangeAtPoint","clipped","removeAll","lineDif","Fold","subFolds","subFold","collapseChildren","addSubFold","consumePoint","afterStart","firstConsumed","consumedFolds","restoreRange","restorePoint","Folding","side","getFoldsInRange","foldLines","$foldData","foundFolds","getFoldsInRangeList","getAllFolds","trim","lastFold","startFoldLine","getNextFoldLine","getFoldedRowCount","$addFoldLine","added","$clipRangeToDocument","startFold","endFold","removeFolds","$updateWrapData","$updateRowLengthCache","$modified","addFolds","$updating","cloneFolds","foldAll","expandFolds","unfold","expandInner","outermostFolds","isRowFolded","startFoldRow","getRowFoldEnd","getRowFoldStart","getFoldDisplayLine","textLine","lastColumn","$cloneFoldData","fd","toggleFold","tryToUnfold","bracketPos","getCommentFoldRange","depth","getFoldWidget","getFoldWidgetRange","foldToLevel","foldAllComments","$foldStyles","$foldStyle","setFoldStyle","$foldMode","$setFolding","foldMode","$updateFoldWidgets","$tokenizerUpdateFoldWidgets","updateFoldWidgets","tokenizerUpdateFoldWidgets","ignoreCurrent","fw","children","siblings","$toggleFoldWidget","toggleFoldWidget","toggleParent","BracketMatch","chr","charBeforeCursor","$findClosingBracket","getMatchingBracketRanges","bracketsRegExp","$brackets","typeRe","openBracket","valueIndex","closingBracket","valueLength","getMatchingTags","$findTagName","$findClosingTag","$findOpeningTag","found","backward","prevToken","currentTag","openTagStart","openTagName","foundOpenTagEnd","openTagEnd","closeTagStart","closeTagName","closeTagEnd","openTag","closeTag","stepCount","tmpToken","TextMode","EditSession","$breakpoints","$decorations","$frontMarkers","$backMarkers","$markerId","$undoSelect","$uid","bgTokenizer","onChangeFold","setMode","destroyed","resetCaches","$resetRowCache","cacheArray","low","mid","$rowLengthCache","removedFolds","$updateInternalDataOnChange","$undoManager","mergeUndoDeltas","$informUndoManager","setUndoManager","JSON","parse","undoManager","history","editSession","setAnnotations","setBreakpoints","breakpoints","setScrollLeft","setScrollTop","scrollTop","$scrollLeft","$scrollTop","$syncInformUndoManager","markUndoGroup","$defaultUndoManager","setUseSoftTabs","$useSoftTabs","$indentWithTabs","setTabSize","$tabSize","setNavigateWithinSoftTabs","navigateWithinSoftTabs","$navigateWithinSoftTabs","setOverwrite","overwrite","$overwrite","toggleOverwrite","addGutterDecoration","removeGutterDecoration","getBreakpoints","clearBreakpoints","setBreakpoint","clearBreakpoint","inFront","addDynamicMarker","markerId","getMarkers","highlight","$searchHighlight","highlightLines","getAnnotations","clearAnnotations","inToken","wordRange","setUseWorker","useWorker","getUseWorker","$useWorker","onReloadTokenizer","$onChangeMode","$modeId","$isPlaceholder","oldMode","$stopWorker","$startWorker","attachToSession","wrapMethod","$wrapMethod","foldingRules","terminate","getMode","isNaN","getScrollLeft","getScreenWidth","$computeWidth","getLineWidgetMaxWidth","screenWidth","lineWidgetsWidth","lineWidgetWidth","force","$wrapLimit","longestScreenLine","foldIndex","foldStart","$getStringScreenWidth","$getUndoSelection","setUndoSelect","enable","isUndo","fromRange","toPosition","toRange","collDiff","oldStart","newStart","indentRows","indentString","outdentRows","rowRange","deleteRange","$moveLines","$clipRowToDocument","moveLinesUp","moveLinesDown","duplicateLines","$clipColumnToRow","setUseWrapMode","useWrapMode","setWrapLimitRange","$wrapLimitRange","adjustWrapLimit","desiredLimit","$printMargin","limits","wrapLimit","$constrainWrapLimit","getWrapLimit","setWrapLimit","limit","getWrapLimitRange","foldLineBefore","wrapData","walkTokens","$getDisplayTokens","PLACEHOLDER_START","PLACEHOLDER_BODY","$computeWrapSplits","displayLength","lastSplit","lastDocSplit","isCode","$wrapAsCode","indentedSoftWrap","$indentedSoftWrap","maxIndent","addSplit","indentation","SPACE","TAB","TAB_SPACE","getWrapIndent","minSplit","PUNCTUATION","CHAR_EXT","CHAR","maxScreenColumn","screenColumn","getRowLength","getRowLineCount","getRowWrapIndent","getScreenLastRowColumn","documentToScreenColumn","getDocumentLastRowColumn","docColumn","getRowSplitData","screenToDocumentRow","screenToDocumentColumn","rowLength","doCache","maxRow","foldStartRow","wrapRow","screenRowOffset","getScreenLength","screenRows","$getWidgetScreenLength","$setFontMetrics","fm","$enableVarChar","getCharacterWidth","wrap","$wrap","firstLineNumber","useSoftTabs","foldStyle","Search","$matchIterator","sr","sc","er","ec","skipCurrent","findAll","needle","$assembleRegExp","$isMultiLine","prevRange","replacement","preserveCase","$disableFakeMultiline","caseSensitive","$supportsUnicodeFlag","wholeWord","wordBoundary","firstChar","needleArray","lastChar","addWordBoundary","$assembleMultilineRegExp","backwards","forEachInLine","MultiHashHandler","$singleCommand","commandKeyBinding","addCommands","addCommand","removeCommand","bindKey","_buildKeyHash","keepCommand","ckb","keyId","cmdGroup","keyPart","chain","binding","parseKeys","_addCommandToBinding","removeCommands","bindKeys","keyList","$keyChain","isDefault","HashHandler","CommandManager","byName","$checkCommandState","isAvailable","returnValue","toggleRecording","$inReplay","recording","macro","$addCommandToMacro","oldMacro","replay","trimMacro","mac","description","showSettingsMenu","showErrorMarker","scrollIntoView","centerSelection","gotoLine","prompt","$type","multiSelectAction","getAllRanges","findNext","findPrevious","aceCommandGroup","navigateFileStart","navigateUp","times","navigateFileEnd","navigateDown","navigateWordLeft","navigateLineStart","navigateLeft","navigateWordRight","navigateLineEnd","navigateRight","selectPageDown","scrollPageDown","gotoPageDown","selectPageUp","scrollPageUp","gotoPageUp","jumpToMatching","$copyWithEmptySelection","$handlePaste","duplicateSelection","sortLines","modifyNumber","copyLinesUp","copyLinesDown","removeToLineStart","removeToLineEnd","removeWordLeft","removeWordRight","blockOutdent","blockIndent","splitLine","transposeLetters","transposeSelections","autoIndent","openLink","firstLineEndCol","selectedCount","insertLine","curLine","newRanges","exitMultiSelectMode","LineWidgets","widgetManager","updateOnChange","renderWidgets","measureWidgets","_changedWidgets","$onChangeEditor","updateOnFold","_inDocument","removeLineWidget","$updateRows","noWidgets","$oldWidget","$registerLineWidget","addLineWidget","zIndex","coverGutter","pixelHeight","$fold","onWidgetChanged","w1","getWidgetsAtRow","updateFull","changedWidgets","fixedWidth","ceil","coverLine","gutterWidth","fullWidth","padding","scrollBar","GutterKeyboardHandler","gutterLayer","activeRowIndex","activeLane","annotationTooltip","$onGutterKeyDown","$blurGutter","isRowVisible","scrollToLine","$rowToRowIndex","$cursorCell","nearestFoldIndex","$findNearestFoldWidget","nearestAnnotationIndex","$findNearestAnnotation","$focusAnnotation","$focusFoldWidget","$handleGutterKeyboardInteraction","GutterKeyboardEvent","lane","$switchLane","$rowIndexToRow","rowFoldingWidget","$blurFoldWidget","cells","childNodes","$moveFoldWidgetDown","$moveAnnotationDown","$moveFoldWidgetUp","$moveAnnotationUp","$blurAnnotation","$isFoldWidgetVisible","isRowFullyVisible","isIconVisible","$getFoldWidget","$isAnnotationVisible","$getAnnotation","foldWidget","keyboardFocusClassName","desinationLane","annotationIndex","foldWidgetIndex","cell","gutterKeyboardHandler","getKey","getRow","isInAnnotationLane","isInFoldLane","defaultCommands","Editor","getContainerElement","getTextAreaContainer","textarea","keyBinding","$search","$historyTracker","$initOperationListeners","_$emitInputEvent","setSession","$opResetTimer","$lastSel","commandEvent","prevOp","previousCommand","scrollSelectionIntoView","animateScrolling","sel","$mergeUndoDeltas","prev","mergeableCommands","$mergeableCommands","shouldMerge","mergeNextCommand","sequenceStartTime","keyboardHandler","$keybindingId","oldSession","$onDocumentChange","$onTokenizerUpdate","$onChangeTabSize","$onChangeWrapLimit","$onChangeWrapMode","$onChangeFold","$onChangeFrontMarker","$onChangeBackMarker","$onChangeBreakpoint","$onChangeAnnotation","$onCursorChange","$onScrollTopChange","$onScrollLeftChange","$onSelectionChange","onDocumentChange","onChangeMode","onTokenizerUpdate","onChangeTabSize","onChangeWrapLimit","onChangeWrapMode","onChangeFrontMarker","onChangeBackMarker","onChangeBreakpoint","onChangeAnnotation","onCursorChange","onScrollTopChange","onScrollLeftChange","onSelectionChange","oldEditor","getSession","resize","onResize","getTheme","getFontSize","setFontSize","$highlightBrackets","$highlightPending","$bracketHighlight","markerIds","$getDirectionForHighlight","tagNamesRanges","getMatching","markerType","getHighlightIndentGuides","$textLayer","$highlightIndentGuide","$isFocused","showCursor","visualizeFocus","hideCursor","visualizeBlur","$cursorChange","updateCursor","$updateHighlightActiveLine","updateLines","scrollToY","scrollToX","$highlightActiveLine","$selectionStyle","$selectionColorConflict","$maxLines","$minLines","$highlightLineMarker","$selectionMarker","$highlightSelectedWord","$getSelectionHighLightRegexp","wordWithBoundary","updateFrontMarkers","updateBackMarkers","updateBreakpoints","updateText","getSelectedText","nl","copyLine","inVirtualSelectionMode","isFullLine","getBehavioursEnabled","lineState","shouldOutdent","$enableAutoIndent","lineIndent","selectedRange","currIndent","prevLineState","composition","applyComposition","forEachSelection","setScrollSpeed","getScrollSpeed","setDragDelay","setSelectionStyle","setHighlightActiveLine","shouldHighlight","getHighlightActiveLine","setHighlightGutterLine","getHighlightGutterLine","setHighlightSelectedWord","getHighlightSelectedWord","setAnimatedScroll","shouldAnimate","getAnimatedScroll","getShowInvisibles","setDisplayIndentGuides","getDisplayIndentGuides","setHighlightIndentGuides","setShowPrintMargin","showPrintMargin","getShowPrintMargin","setPrintMarginColumn","getPrintMarginColumn","setBehavioursEnabled","enabled","setWrapBehavioursEnabled","setShowFoldWidgets","getShowFoldWidgets","setFadeFoldWidgets","fade","getFadeFoldWidgets","new_range","setGhostText","removeGhostText","originalRange","$getSelectedRows","getNumberAt","_numberRx","amount","charRange","isFinite","nr","fp","decimals","nnr","toFixed","replaceRange","toggleWord","currWordStart","wordParts","curLength","itLength","that","reg","wordPairs","$toggleWordPairs","negate","firstCondition","res","findLinkAt","columnPosition","previousPosition","currentPosition","wordParts_1","wordParts_1_1","endPoint","moved","totalDiff","rangeIndex","subRows","compositionState","showComposition","setCompositionText","hideComposition","getFirstVisibleRow","getLastVisibleRow","getFirstFullyVisibleRow","getLastFullyVisibleRow","$getVisibleRowCount","getScrollBottomRow","getScrollTopRow","$moveByPage","scrollToRow","center","animate","alignCursor","getCursorPositionScreen","expand","tokenCount","matchType","bracketType","brackets","tagsRanges","lineNumber","navigateTo","replaced","$tryReplace","replaceAll","getLastSearchOptions","newRange","revealRange","setAutoScrollEditorIntoView","shouldScroll","$scrollAnchor","scrollAnchor","onChangeSelection","onBeforeRender","onAfterRender","searchBox","$pixelPos","$cursorStyle","cursorLayer","setSmoothBlinking","isBlinking","selectionStyle","highlightActiveLine","highlightSelectedWord","copyWithEmptySelection","behavioursEnabled","wrapBehavioursEnabled","enableAutoIndent","autoScrollEditorIntoView","showLineNumbers","setShowLineNumbers","$loop","CHANGE_GUTTER","$relativeLineNumbers","relativeNumberRenderer","relativeLineNumbers","$showLineNumbers","$updatePlaceholder","hasValue","$composition","placeholderNode","$placeholder","content","blurCommand","focusOnEnterKeyup","customScrollbar","hScrollBarAlwaysVisible","vScrollBarAlwaysVisible","highlightGutterLine","animatedScroll","printMarginColumn","printMargin","fadeFoldWidgets","showFoldWidgets","displayIndentGuides","highlightIndentGuides","showGutter","fontFamily","maxLines","minLines","scrollPastEnd","fixedWidthGutter","hasCssTransforms","maxPixelHeight","useResizeObserver","useSvgGutterIcons","showFoldedAnnotations","getText","lastLineNumber","$renderer","Lines","canvasHeight","cellCache","$offsetCoefficient","moveContainer","firstRowScreen","pageChanged","oldConfig","newConfig","computeLineTop","screenTop","screenPage","computeLineHeight","$cacheCell","fragment","insertAdjacentElement","createCell","initElement","Gutter","parentEl","$showFoldWidgets","$updateAnnotations","rowInfo","annoText","annoType","gutterOffset","oldLastRow","$updateCursorRow","onCreateCell","$renderCell","$updateGutterWidth","gutterRenderer","$firstLineNumber","lastLineText","$fixedWidth","$padding","$computePadding","$highlightGutterLine","$cursorRow","updateLineHighlight","scrollLines","$renderLines","textNode","annotationNode","annotationIconNode","decorations","rowText","foldClass","isClosedFold","foldAnnotationClass","annotationInFold","foldRange","getShowLineNumbers","paddingLeft","borderRightWidth","paddingRight","Marker","setPadding","setMarkers","markers","elt","css","$getTop","drawFullLineMarker","drawScreenLineMarker","drawTextMarker","drawMultiLineMarker","childElementCount","lastChild","stringBuilder","extraStyle","curr","lineRange","range1","drawBidiSingleLineMarker","radiusClass","extraLength","textTokens","Set","isTextToken","tokenType","has","Text","$updateEolChar","EOL_CHAR","EOL_CHAR_LF","EOL_CHAR_CRLF","margin","getLineHeight","$fontMetrics","measure","$pollSizeChanges","checkForSizeChanges","$pollSizeChangesTimer","$computeTabString","showSpaces","showTabs","showEOL","$highlightIndentGuides","tabStr","$tabStrings","span","TAB_CHAR","$indentGuideRe","spaceClass","spaceContent","SPACE_CHAR","tabClass","tabContent","lineElements","lineElementsIdx","heightChanged","lineElement","$renderLine","$renderLinesFragment","lineEl","$useLineGroups","$renderToken","valueFragment","simpleSpace","controlCharacter","cjkSpace","cjk","cloneNode","renderIndentGuide","cols","$highlightIndentGuideMarker","indentLevel","initialIndent","elementIndentLevel","currentIndent","$renderHighlightIndentGuide","$clearActiveIndentGuide","$setIndentGuideActive","$createLineElement","$renderWrappedLine","splitChars","$renderOverflowMessage","$renderSimpleLine","overflowEl","$getFoldLineTokens","lastLineEl","invisibleEl","EOF_CHAR","renderTokens","addTokens","Cursor","isVisible","blinkInterval","smoothBlinking","cursors","addCursor","$updateCursors","$updateOpacity","$startCssAnimation","animationDuration","$isAnimating","$stopCssAnimation","blinking","restartTimer","setBlinkInterval","removeCursor","intervalId","timeoutId","$isSmoothBlinking","blink","onScreen","isCursorInView","pixelPos","$selectionMarkers","cursorIndex","drawCursor","$setOverwrite","MAX_SCROLL_H","Scrollbar","classSuffix","setVisible","skipEvent","onScroll","coeff","VScrollBar","scrollHeight","$scrollbarWidth","$minWidth","setHeight","setScrollHeight","setInnerHeight","HScrollBar","setWidth","setInnerWidth","setScrollWidth","ScrollBar","ScrollBarV","ScrollBarH","VScrollWidth","HScrollHeight","eType","mousePageY","startTop","thumbTop","scrollTopFromThumbTop","thumbHeight","pageHeight","viewHeight","slideHeight","scrollWidth","mousePageX","startLeft","thumbLeft","scrollLeftFromThumbLeft","thumbWidth","pageWidth","viewWidth","slideWidth","RenderLoop","onRender","pending","changes","$recursionLimit","_flush","change","clear","CHAR_COUNT","USE_OBSERVER","ResizeObserver","FontMetrics","$setMeasureNodeStyles","$measureNode","$addObserver","isRoot","visibility","font","$measureSizes","fontWeight","boldSize","charSizes","allowBoldFonts","$observer","observe","setPolling","disconnect","$getZoom","zoom","$initTransformMeasureNodes","transformCoordinates","clientPos","elPos","solve","l1","l2","det","sub","mul","m2","ut","u","f","Decorator","canvas","pixelRatio","heightRatio","canvasWidth","minDecorationHeight","halfMinDecorationHeight","colors","dark","light","$updateDecorators","ctx","getContext","clearRect","priorities","compensateFold","compensateFoldRows","currentY","y1","y2","yCenter","fillStyle","fillRect","GutterLayer","MarkerLayer","TextLayer","CursorLayer","HScrollBarCustom","VScrollBarCustom","editorCss","VirtualRenderer","onGutterResize","$markerBack","textLayer","$markerFront","$horizScroll","$vScroll","$scrollAnimation","scrollMargin","updateCharacterSize","$size","scrollerHeight","scrollerWidth","$dirty","minHeight","v","$renderChanges","defaultView","CHANGE_FULL","$addResizeObserver","$allowBoldFonts","$updatePrintMargin","onChangeNewLineMode","$changedLines","CHANGE_LINES","CHANGE_TEXT","CHANGE_MARKER","updateFontSize","$updateSizeAsync","resizing","$updateCachedSize","$resizeTimer","$changes","$customScrollbar","$updateCustomScrollbar","$extraHeight","oldSize","CHANGE_SIZE","CHANGE_SCROLL","$showGutter","$computeLayerConfig","availableWidth","$showPrintMargin","$printMarginColumn","$animatedScroll","getShowGutter","setShowGutter","$printMarginEl","containerEl","posTop","posLeft","setScrollMargin","sm","setMargin","getHScrollBarAlwaysVisible","$hScrollBarAlwaysVisible","setHScrollBarAlwaysVisible","alwaysVisible","getVScrollBarAlwaysVisible","$vScrollBarAlwaysVisible","setVScrollBarAlwaysVisible","$updateScrollBarV","$scrollPastEnd","$updateScrollBarH","freeze","$frozen","unfreeze","CHANGE_H_SCROLL","st","$scrollDecorator","$updateLines","CHANGE_CURSOR","CHANGE_MARKER_FRONT","CHANGE_MARKER_BACK","$autosize","desiredHeight","$maxPixelHeight","$gutterWidth","hideScrollbars","longestLine","$getLongestLine","horizScroll","hScrollChanged","vScrollBefore","vScrollChanged","firstRowHeight","lineCount","charCount","$viewMargin","newLeft","newTop","topMargin","bottomMargin","$stopAnimation","currentTop","currentLeft","twoCharsWidth","alignment","$calcSteps","fromValue","toValue","x_min","STEPS","steps","initialScroll","oldSteps","$timer","endAnimation","scrollTo","canvasPos","$hasCssTransforms","$blockCursor","$useTextareaForIME","addToken","removeExtraToken","insertPosition","textLines","$ghostText","$ghostTextWidget","pixelPosition","ghostTextHeight","newToken","$themeId","$theme","setMouseCursor","attachToShadowRoot","$resizeObserver","contentRect","workerUrl","Worker","blob","Blob","blobBuilder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","getBlob","$workerBlob","blobURL","URL","webkitURL","createObjectURL","WorkerClient","worker","$createWorkerFromOldConfig","$sendDeltaQueue","changeListener","onMessage","callbackId","callbacks","onmessage","topLevelNamespaces","classname","importScripts","nameToUrl","toUrl","normalizePath","$normalizePath","tlns","deltaQueue","onerror","$doc","cmd","emit","ex","attachToDocument","q","UIWorkerClient","main","emitSync","sender","messageBuffer","workerClient","processNext","setEmitSync","Main","PlaceHolder","others","mainClass","othersClass","$onUpdate","onUpdate","$others","undoStack","$undostack","$undoStackDepth","setup","other","showOtherMarkers","othersActive","hideOtherMarkers","updateAnchors","lengthDiff","inMainRange","distanceFromStart","newPos","otherPos","updateMarkers","updateMarker","undosRequired","isSamePoint","alt","ctrl","accel","selectionMode","isMultiSelect","mouseX","mouseY","screenAnchor","screenCursor","$enableJumpToDef","$blockSelectEnabled","addSelectionMarker","oldRange","removeSelectionMarker","tmpSel","rectSel","blockSelect","newCursor","removeSelectionMarkers","rectangularRangeBlock","updateSelectionMarkers","onSelectionInterval","selectMoreLines","selectMore","joinSelections","splitIntoLines","alignCursors","multiSelectCommands","getSelectionMarkers","$blockChangeEvents","$onAddRange","$onRemoveRange","mergeOverlappingRanges","lastRange","$initRangeList","toggleBlockSelection","includeEmptyLines","xBackwards","startOffsetX","endOffsetX","docEnd","yBackwards","MultiSelect","$multiselectOnSessionChange","$onMultiSelect","$onSingleSelect","onSessionChange","$checkMultiselectChange","altCursor","altDown","addAltCursorListeners","selectionMarkerCount","markerList","$onMultiSelectExec","inVirtualMode","keepOrder","$byLines","cmdResult","anim","buf","additive","skip","screenLead","toRemove","words","stopAtFirst","sameRowRanges","maxCol","minSpace","spaceOffsets","spaceOffset","fr","lr","guessRange","$reAlignText","forceLeft","startW","textW","endW","isLeftAligned","isRightAligned","alignLeft","enableMultiselect","enableBlockSelect","FoldMode","foldingStartMarker","foldingStopMarker","indentationBlock","startLevel","openingBracketBlock","closingBracketBlock","oldWidget","gutterAnno","comparator","binarySearch","matched","findAnnotations","arrow","onmousedown","Renderer","edit","_id","env","tagName","oldNode","createEditSession","is","singletonTags","blockTags","formatOptions","lineBreaksAfterCommasInCurlyBlock","beautify","nextToken","tabString","breakBefore","spaceBefore","spaceAfter","lastDepth","lastIndent","unindent","roundDepth","curlyDepth","curRow","rowsToAdd","indentNextLine","inTag","inCSS","inBlock","parents","caseBody","trimNext","trimLine","trimCode","trimRight","trimLeft","searchboxCss","SearchBox","showReplaceForm","spellcheck","title","setEditor","searchRange","$syncOptions","$initElements","sb","replaceBox","searchOption","replaceOption","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","searchCounter","activeInput","$searchBarKb","setSearchRange","searchRangeMarker","checked","noMatch","updateCounter","MAX_COUNT","findPrev","replaceAndFindNext","active","$closeSearchBarKb","isReplace","supportType","supportFunction","supportConstant","supportConstantColor","supportConstantFonts","numRe","pseudoElements","pseudoClasses","CssHighlightRules","keywordMapper","strings","escapes","MatchingBraceOutdent","propertyMap","CssCompletions","completionsDefined","defineCompletions","inParens","getPropertyValueCompletions","getPropertyCompletions","skipSemicolon","caption","snippet","CssBehaviour","BaseFoldMode","commentRegex","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","forceMultiline","getCommentRegionBlock","getSectionRange","startIndent","subRange","CStyleFoldMode","$outdent","$completer","snippetFileId","DocCommentHighlightRules","getTagRule","getStartRule","getEndRule","GolangHighlightRules","stringEscapeRe","tokenizedLine","JsDocCommentHighlightRules","identifierRe","JavaScriptHighlightRules","escapedRe","comments","noES6","no_regex","jsx","JSX","tagRegex","jsxTag","jsxJsRule","jsxAttributes","reference","endState","results","JsonHighlightRules","JsxHighlightRules","buildinConstants","reserved","PythonHighlightRules","strPre","strRawPre","strFormatPre","strRawFormatPre","integer","intPart","pointFloat","floatNumber","stringEscape","PythonFoldMode","outdents","XmlHighlightRules","normalize","processing_instruction","doctype","int_subset","cdata","attr_reference","tag_whitespace","whitespace","attribute_value","embedTagRules","XmlBehaviour","rightSpace","tokenEndColumn","tokenRow","tokenColumn","voidElements","nextIndent","optionalEndTags","Tag","selfClosing","_getFirstTagInLine","_findEndTagInLine","getCommentFoldWidget","tags","XmlFoldMode","createRoot","hydrateRoot","hasElementType","Element","hasMap","Map","hasSet","hasArrayBuffer","ArrayBuffer","isView","equal","it","entries","flags","valueOf","$$typeof","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","amdD","getter","__esModule","definition","prop","toStringTag","nmd","paths","createContext","Icon","family","weight","rest","getCSSClasses","propTypes","isRequired","ItemTrigger","collapsed","toggleChange","useContext","iconType","trigger","onClick","AccordionItem","collapsedProp","ref","setCollapsed","useState","useMemo","expandToContent","contextValue","Provider","defaultProps","forwardRef","AccordionItemHeader","usearrowastrigger","getSize","componentSize","setComponentSize","current","handleResize","useCallback","useLayoutEffect","resizeObserver","savedHandler","useRef","useEffect","eventListener","Collapsible","contentContainer","collapseWrapper","refContainerSize","contentContainerStyle","setContentContainerStyle","onWindowResize","CSSTransition","onEnter","onExit","in","classNames","AccordionItemContent","Accordion","Item","Header","Content","Button","customButton","iconFamily","iconPosition","iconOnly","noStyle","getCssClasses","cssClasses","sizeClass","disabledClass","displayClass","themeClass","iconOnlyClass","noStyleClass","getButtonIcon","buttonType","cloneElement","getButtonType","ButtonGroup","CardHeader","CardBody","align","CardFooter","CardTitle","CardTitleGroup","CardSubTitle","CardSummary","CardTitleIcon","Card","Body","Footer","Title","TitleGroup","SubTitle","Summary","wait","immediate","callNow","Loader","withbackground","Message","onClose","noMargin","Chart","areaStyleColors","dataLoaded","hasData","series","zoomStart","zoomEnd","seriesConfig","noDataComponent","noDataComponentProp","zoomColors","tykChartInstance","setTykChartInstance","chartWrapperRef","lineBarChart","defaultOpts","fromJS","color","toolbox","orient","itemSize","showTitle","feature","dataZoom","dataBackground","lineStyle","areaStyle","handleStyle","textStyle","borderColor","fillerColor","legend","axisPointer","grid","containLabel","xAxis","boundaryGap","axisLine","axisTick","yAxis","axisLabel","animationEasing","seriesDefault","LinearGradient","smooth","symbolSize","pieChart","formatter","radius","avoidLabelOverlap","animationType","labelLine","normal","length2","geoChart","dispose","eventCallBack","debouncedMethod","debounce","getZr","prevInstance","prevOption","prevType","prevSeries","equals","selectedType","selectedOptions","selectedSeries","finalOpts","mergeDeep","toJS","entry","seriesData","buildChartOptions","dispatchAction","dataZoomSelectActive","seriesIndex","dataIndex","prevZoomStart","prevZoomEnd","startValue","endValue","chartHasData","getStyle","memo","savedCallback","ToastMessage","handleClose","itemIndex","ToastContainer","notify","updateNotifications","msgID","random","prevMessages","onMessageClosed","newMessages","fn","createNotification","render","bindNotify","danger","CopyToClipboard","txtRef","createRef","onKeyUp","ModalFooter","ModalBody","Modal","disableCloseCommands","opened","showBackdrop","restProps","modalClasses","backdropClasses","themeIcon","onKeyDown","Confirm","confirmBtnText","cancelBtnText","setOpen","setCallback","cancelCallback","setCancelCallback","callbackFunc","cancelCallbackFunc","beforeCallback","FixedWrapper","showShadow","fixedWrapperRef","attachShadow","scrollY","debouncedAttachShadow","InfiniteScroller","hasMore","initialLoad","loadMore","pageNumber","refChild","showLoader","setShowLoader","containerRef","refChildSize","shouldLoad","loadMoreData","prevPageNumber","scrollHandler","prevRefChildSize","PropTypes","oneOfType","arrayOf","bool","instanceOf","FloatingContainer","forceDisplay","displayAxis","preferredPosition","infiniteScrollerConfig","localRef","floatingContainerRef","contentWrapperRef","viewportOffset","schedulePositionUpdate","topSpace","bottomSpace","leftSpace","hasTopSpace","hasBottomSpace","hasLeftSpace","hasRightSpace","positionedVerticallyFitsInViewport","positionedHorizontallyFitsInViewport","getDisplayForVertical","getDisplayForHorizontal","getDisplayWhereItFits","determineDisplay","targetPosition","vpLeft","vpTop","leftPos","auto","matchElement","matchStart","matchEnd","topPos","maxWidth","getStylesForTop","getStylesForBottom","getStylesForLeft","getStylesForRight","adjustPosition","createPortal","InfoNote","ListItem","List","labelwidth","flexBasis","styleCopy","structuredClone","getListStyle","NavBar","pre","subtitle","withTabs","subtitleContent","NavigationItem","Navigation","PortalContext","PanelBody","noPadding","Consumer","portalContext","collapsable","PanelFooter","PanelHeader","Component","HeaderTag","onToggle","collapsibleIconPosition","Panel","onToggleCollapse","collapsedState","setCollapsedState","handleToggle","panelTheme","collapsbleIconPosition","toggleCollapse","Pill","RevealPanelService","setRefs","wrapper","panel","unbindEvents","bindEvents","ensureRefs","mouseDown","initialRect","initialEvent","isPrimaryMouseButtonDown","newY","finalHeight","notifyListeners","buttons","heightVal","reason","isHidden","deinit","RevealPanelHeaderLeft","RevealPanelHeaderRight","mergeClasses","RevealPanel","onHeightChange","parentSelector","contentStyle","contentClassName","gutterClassName","wrapperClassName","panelRef","gutterRef","wrapperRef","panelService","useImperativeHandle","headerLeft","headerRight","contents","child","TempRevealPanel","HeaderLeft","HeaderRight","TabsContext","TabContent","addTab","hideTab","updateTab","showTab","selectedPath","tabData","tabsId","tabExists","rendered","hideTabContent","tabs","tempTabData","prevTabData","shouldRender","TabContext","Tab","tabsContext","tabContext","setPath","tempPath","Tabs","onTabChange","setTabs","setSelectedPath","setRendered","initialPath","setInitialPath","setCurrentSelectedPath","tempRendered","collapsible","prevTabs","tempTabs","tabsState","tempTabsState","toggleTab","getTabCssClass","tabId","genTabs","currentTabs","updateTabsList","icon","closable","isOpened","additionalClickParents","isActive","setIsActive","tooltipRef","activeEvents","onMouseEnter","onMouseLeave","handleDocumentClick","TextEllipsis","Pagination","totalNrOfPages","selectedPage","setSelectedPage","pagesArray","nrOfPages","pagesArr","currentNr","pageNr","at","getPagesArr","goToPage","tableContext","HeaderCell","sortable","sortOrder","setSortOrder","sendMessage","allRowsSelected","columns","selectable","generateSelectable","allowSelectAll","isCheckbox","Checkbox","displayError","displayNote","note","Cell","styling","events","Row","SelectableCheckbox","Table","noDataMessage","loading","infiniteScrolling","onChangeMsg","setOnChangeMsg","itemsListRef","sortRows","order","selectAllRows","selectRow","setPagination","pagination","api","getTable","every","totalPages","num","nrItemsOnPage","perPage","Column","cSize","cOffset","nogutters","DropdownContext","DropdownItem","customdropdownitem","eventKey","dropdownItemCLick","dropdownContext","itemProps","onSelectItem","selectedItem","showCheckmark","Dropdown","isElemInRightView","dropdownWidth","isElemInBottomView","dropdownHeight","elHeight","super","dropdownRef","dropdownListRef","dropdownButtonRef","toggleDropdown","handleClickOutside","componentDidMount","getStyles","componentDidUpdate","prevProps","closeDropdown","componentWillUnmount","itemId","closeOnSelect","onSelect","selectedItemProps","dropdownEl","offsetPosition","customTop","customLeft","getWrapperCssClasses","btnGroup","btnGroupSize","btnTheme","hasCustomContent","listclassnames","getBtnTitle","btnTitle","stopButtonTextChange","appendTo","btnClassName","btnSize","customBtnTitle","showDropdownIcon","showTriggerButton","DropdownWrapperTag","DropdownTrigger","splitTrigger","toggle","onTriggerClick","DropdownListWrapper","dropdownValue","Dropdown2","setSelectedValueAsTitle","setIsOpen","handleOutsideClick","triggerElement","CodeEditor","disableValidation","finalSetOptions","getCodeEditorError","getLabelStyles","getNonLabelWidth","handleOnChange","handleOnBlur","htmlFor","editorProps","$blockScrolling","editorInstance","getStateSelectedValues","multiple","Combobox","closeList","openList","filterByName","itemValue","inputValue","stateSelectedValues","searchText","comboboxRef","valuesListRef","inputRef","textRef","focusInput","handleItemsNavigation","handleComboboxDropdownClick","handleListItemClick","handlePillRemoveClick","manageSelectedTags","setInputWidth","unBindEvents","getDerivedStateFromProps","nextProps","stringify","filteredValues","filterValues","cursorNext","previousState","methodName","tempState","removeSelectedValue","allowCustomValues","getSearchText","getSelectedIndex","getListItemCssClasses","getComboboxListCssClass","themes","iTheme","getInputError","elWidth","getComboboxDisplayData","reduce","prevValue","tempValue","selectedIndex","selectedValues","isInInitialValues","addSelectedValue","manageSelectedValues","tempSelectedValues","tempStateSelectedValues","ok","searchItem","renderInput","visbility","renderDropdown","autoFocus","CustomListComponent","Value","tagSeparators","addTagOnBlur","renderValue","valueOverflow","dummyElementRef","setInputValue","inputWidth","entryFieldOnChange","dummy","triggerAction","textValue","isPlaceholder","renderCustomValue","entryFieldOnKeyDown","listRef","searchValue","activeItem","renderListItem","showSearch","block","isNoneSelected","renderSelectAllOption","Combobox2","propValue","propValues","maxProp","matchItemFn","renderList","renderListProp","onBeforeChange","floatingContainerConfig","expandMode","displayDropdownTrigger","required","validateOnChange","rootRef","comboboxControlRef","getValueFromProp","setValues","normalizeValue","setSearchValue","setActiveItem","setIsOpened","valuesExpanded","setValuesExpanded","localValidationError","setLocalValidationError","getThemeClasses","getFilteredValues","openDropdown","updateSearchValue","newSearchValue","fv","isValidValue","newValues","localError","updateValue","addTag","listValueIndex","lv","finalValue","selectValue","valIndex","with","selectAllValues","moveUpActiveItem","visibleItems","activeIndex","moveDownActiveItem","executeTriggerAction","onTagMessage","removeTag","renderIcon","sv","nv","vals","valuesElement","updateScroll","mobserver","MutationObserver","robserver","childList","subtree","currentValuesClasses","onClickCapture","existingVal","DatePicker","onOpen","pickerInstance","setPickerInstance","dateRef","hasValueChanged","prevDate","currentDate","getTime","diffDates","date","onDateChange","dateValue","instance","defaultDate","setDate","openCalendar","inputStyle","addonStyle","getInputField","dateFormat","_typeof","requiredArgs","isDate","toDate","argument","argStr","NaN","toInteger","dirtyNumber","startOfUTCISOWeek","dirtyDate","day","getUTCDay","setUTCDate","getUTCDate","setUTCHours","getUTCISOWeekYear","year","getUTCFullYear","fourthOfJanuaryOfNextYear","setUTCFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","defaultOptions","getDefaultOptions","startOfUTCWeek","_ref","_ref2","_ref3","_options$weekStartsOn","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","weekStartsOn","locale","RangeError","getUTCWeekYear","_options$firstWeekCon","firstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","addLeadingZeros","targetLength","sign","signedYear","month","getUTCMonth","getUTCHours","getUTCMinutes","getUTCSeconds","numberOfDigits","milliseconds","getUTCMilliseconds","G","localize","era","ordinalNumber","unit","lightFormatters","Y","signedWeekYear","weekYear","Q","quarter","M","week","firstWeek","startOfUTCWeekYear","getUTCWeek","I","isoWeek","fourthOfJanuary","startOfUTCISOWeekYear","getUTCISOWeek","D","dayOfYear","timestamp","setUTCMonth","difference","getUTCDayOfYear","E","dayOfWeek","localDayOfWeek","isoDayOfWeek","dayPeriodEnumValue","dayPeriod","hours","H","K","S","X","_localize","timezoneOffset","_originalDate","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","z","originalDate","T","dirtyDelimiter","absOffset","minutes","delimiter","dateLongFormatter","pattern","formatLong","timeLongFormatter","longFormatters","P","dateTimeFormat","matchResult","datePattern","timePattern","dateTime","protectedDayOfYearTokens","protectedWeekYearTokens","throwProtectedError","format","formatDistanceLocale","lessThanXSeconds","one","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","defaultWidth","formats","full","long","medium","short","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchedString","parsePatterns","defaultParseWidth","object","findKey","valueCallback","formatDistance","tokenValue","addSuffix","comparison","formatRelative","_date","_baseDate","_options","rem100","narrow","abbreviated","wide","am","pm","midnight","noon","morning","afternoon","evening","night","parsePattern","parseResult","any","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","_ref4","_options$locale2","_options$locale2$opti","_ref5","_ref6","_ref7","_options$locale3","_options$locale3$opti","_defaultOptions$local3","_defaultOptions$local4","formatStr","defaultLocale","isValid","utcDate","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","getTimezoneOffsetInMilliseconds","dirtyAmount","addMilliseconds","subMilliseconds","formatterOptions","firstCharacter","longFormatter","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","isProtectedDayOfYearToken","EditableListForm","getMainFormValue","components","mainFormValue","submitButtonRef","submitForm","errors","mainError","addValueOnFieldChange","getMainFormButtonWidth","createRefs","propsComponents","stateComponents","validateValue","getFormCssClasses","noLabels","getButtonClassName","buttonStyle","displayType","getComponentsError","errorPersist","validatorsNames","validate","validatorName","validator","validationmessages","hasMainFormErrors","resetForm","showMainError","onSubmit","validationmessage","buttonName","ComponentName","EditableList","getItemListValue","getListItemCssClass","buttonWidth","handleFormSubmit","dropdownListItemRef","addValues","triggerOnChange","handleItemUpdate","editMode","handleChildrenOnChange","getListItemsCssClass","getFormInputKey","getListItemText","itemData","separator","setItemEditMode","closeListItems","isInList","removeListItem","removedItem","valueArr","tempItemValue","nextValue","genListItem","clonedComponents","genList","appendToElement","formButtonTitle","formButtonStyle","addButtonName","onAddRow","ListHeader","fields","field","FieldsList","onDelete","rowIndex","tempField","EditableList2","hideOnEmpty","internalErrors","setInternalErrors","updateRowValue","fieldIndex","componentValue","tempValueArr","tempErrors","tempFieldError","Components","internalError","setInternalError","onFieldChange","errorMsg","deleteRow","rowValues","colValue","flat","hasErrors","FileInput","accept","fileInputRef","files","Input","getAddon","initValue","stateValue","isfield","inputgroupaddonleft","inputgroupaddonright","getInputGroupAddon","getInputComponent","autoComplete","Input2","getInputElement","MultiselectItem","itemType","isInSearchValue","fieldsToSearchOn","onAddRemove","itemDisplayTemplate","maxSelections","nrSelectedItems","onGetItemDetails","details","detailsDisplayTemplate","getItemContent","getItemLoader","MultiselectPanel","inputPlaceholder","noItemsMessage","items","onCustomSearch","customSearch","panelType","serverLoad","itemsPageNumber","itemsNrPages","loadMoreItems","searchOnChange","itemChanged","cloneItems","clonedItem","renderListItems","diffObjects","Multiselect","entityNamePlural","getItemDetails","setOpened","prevOpened","itemsChange","allItems","valueClone","valueChange","providerValue","Radio","nospace","Select","setStateValue","selectedValue","getSelectError","getSelectComponent","SelectableList","checkboxalticon","itemTemplate","primaryKey","handleOnSelect","newSelectedItems","elemPosition","getListItemCssClassName","tvalue","Textarea","ToggleItem","getNotchCssClasses","itemRef","saveSelectedRef","onItemSelected","ToggleItemWrapper","Toggle","onDark","separated","selectedRef","setSelectedRef","notchRef","toggleRef","positionNotch","selectedWidth","FORM_DEBOUNCE","setConfig","getValueFromPath","acc","form","properties","DEFAULT_DEBOUNCE_TIME_MS","myValue","setMyValue","getOnChangeProps","hasIsFieldProp","executeDebounced","valueOrEvent","nodeName","onChangeProps","formError","touched","submitCount","status","componentProps","hasOwn","FieldCodeEditor","FieldCombobox","getComboboxError","FieldDropdown","FieldPagination","FieldCombobox2","FormDatePicker","getDatePickerError","FieldEditableList","getEditableListError","FieldFileInput","FieldInput","FieldMultiselect","getMultiselectError","FieldSelect","handleEvent","FieldSelectableList","FieldToggle","useInterval"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/tyk-ui.js b/lib/tyk-ui.js index 3662abfc..3010ff21 100644 --- a/lib/tyk-ui.js +++ b/lib/tyk-ui.js @@ -1,3 +1,3 @@ /*! For license information please see tyk-ui.js.LICENSE.txt */ -(()=>{var e={239:(e,t,n)=>{e=n.nmd(e),function(){var e=function(){return this}();e||"undefined"==typeof window||(e=window);var t=function(e,n,o){"string"==typeof e?(2==arguments.length&&(o=n),t.modules[e]||(t.payloads[e]=o,t.modules[e]=null)):t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace())};t.modules={},t.payloads={};var n,o,i=function(e,t,n){if("string"==typeof t){var o=a(e,t);if(null!=o)return n&&n(),o}else if("[object Array]"===Object.prototype.toString.call(t)){for(var i=[],s=0,l=t.length;sn.length)&&(t=n.length),t-=e.length;var o=n.indexOf(e,t);return-1!==o&&o===t})),String.prototype.repeat||o(String.prototype,"repeat",(function(e){for(var t="",n=this;e>0;)1&e&&(t+=n),(e>>=1)&&(n+=n);return t})),String.prototype.includes||o(String.prototype,"includes",(function(e,t){return-1!=this.indexOf(e,t)})),Object.assign||(Object.assign=function(e){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),n=1;n>>0,o=0|arguments[1],i=o<0?Math.max(n+o,0):Math.min(o,n),r=arguments[2],s=void 0===r?n:0|r,a=s<0?Math.max(n+s,0):Math.min(s,n);i0;)1&t&&(n+=e),(t>>=1)&&(e+=e);return n};var o=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(o,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){for(var t=[],n=0,o=e.length;n65535?2:1}})),ace.define("ace/lib/useragent",["require","exports","module"],(function(e,t,n){"use strict";t.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},t.getOS=function(){return t.isMac?t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS};var o="object"==typeof navigator?navigator:{},i=(/mac|win|linux/i.exec(o.platform)||["other"])[0].toLowerCase(),r=o.userAgent||"",s=o.appName||"";t.isWin="win"==i,t.isMac="mac"==i,t.isLinux="linux"==i,t.isIE="Microsoft Internet Explorer"==s||s.indexOf("MSAppHost")>=0?parseFloat((r.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((r.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=r.match(/ Gecko\/\d+/),t.isOpera="object"==typeof opera&&"[object Opera]"==Object.prototype.toString.call(window.opera),t.isWebKit=parseFloat(r.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(r.split(" Chrome/")[1])||void 0,t.isSafari=parseFloat(r.split(" Safari/")[1])&&!t.isChrome||void 0,t.isEdge=parseFloat(r.split(" Edge/")[1])||void 0,t.isAIR=r.indexOf("AdobeAIR")>=0,t.isAndroid=r.indexOf("Android")>=0,t.isChromeOS=r.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(r)&&!window.MSStream,t.isIOS&&(t.isMac=!0),t.isMobile=t.isIOS||t.isAndroid})),ace.define("ace/lib/dom",["require","exports","module","ace/lib/useragent"],(function(e,t,n){"use strict";var o,i=e("./useragent");t.buildDom=function e(t,n,o){if("string"==typeof t&&t){var i=document.createTextNode(t);return n&&n.appendChild(i),i}if(!Array.isArray(t))return t&&t.appendChild&&n&&n.appendChild(t),t;if("string"!=typeof t[0]||!t[0]){for(var r=[],s=0;s=1.5,i.isChromeOS&&(t.HI_DPI=!1),"undefined"!=typeof document){var l=document.createElement("div");t.HI_DPI&&void 0!==l.style.transform&&(t.HAS_CSS_TRANSFORMS=!0),i.isEdge||void 0===l.style.animationName||(t.HAS_CSS_ANIMATION=!0),l=null}t.HAS_CSS_TRANSFORMS?t.translate=function(e,t,n){e.style.transform="translate("+Math.round(t)+"px, "+Math.round(n)+"px)"}:t.translate=function(e,t,n){e.style.top=Math.round(n)+"px",e.style.left=Math.round(t)+"px"}})),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("./dom");t.get=function(e,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.onreadystatechange=function(){4===n.readyState&&t(n.responseText)},n.send(null)},t.loadScript=function(e,t){var n=o.getDocumentHead(),i=document.createElement("script");i.src=e,n.appendChild(i),i.onload=i.onreadystatechange=function(e,n){!n&&i.readyState&&"loaded"!=i.readyState&&"complete"!=i.readyState||(i=i.onload=i.onreadystatechange=null,n||t())}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}})),ace.define("ace/lib/oop",["require","exports","module"],(function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}})),ace.define("ace/lib/event_emitter",["require","exports","module"],(function(e,t,n){"use strict";var o={},i=function(){this.propagationStopped=!0},r=function(){this.defaultPrevented=!0};o._emit=o._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],o=this._defaultHandlers[e];if(n.length||o){"object"==typeof t&&t||(t={}),t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=r),n=n.slice();for(var s=0;s1&&(i=n[n.length-2]);var s=l[t+"Path"];return null==s?s=l.basePath:"/"==o&&(t=o=""),s&&"/"!=s.slice(-1)&&(s+="/"),s+t+o+i+this.get("suffix")},t.setModuleUrl=function(e,t){return l.$moduleUrls[e]=t},t.setLoader=function(e){a=e},t.dynamicModules=Object.create(null),t.$loading={},t.$loaded={},t.loadModule=function(n,o){var r,s;Array.isArray(n)&&(s=n[0],n=n[1]);var l=function(r){if(r&&!t.$loading[n])return o&&o(r);if(t.$loading[n]||(t.$loading[n]=[]),t.$loading[n].push(o),!(t.$loading[n].length>1)){var l=function(){!function(t,n){"ace/theme/textmate"===t||"./theme/textmate"===t?n(0,e("./theme/textmate")):a?a(t,n):console.error("loader is not configured")}(n,(function(e,o){o&&(t.$loaded[n]=o),t._emit("load.module",{name:n,module:o});var i=t.$loading[n];t.$loading[n]=null,i.forEach((function(e){e&&e(o)}))}))};if(!t.get("packaged"))return l();i.loadScript(t.moduleUrl(n,s),l),c()}};if(t.dynamicModules[n])t.dynamicModules[n]().then((function(e){e.default?l(e.default):l(e)}));else{try{r=this.$require(n)}catch(e){}l(r||t.$loaded[n])}},t.$require=function(e){if("function"==typeof n.require)return n.require(e)},t.setModuleLoader=function(e,n){t.dynamicModules[e]=n};var c=function(){l.basePath||l.workerPath||l.modePath||l.themePath||Object.keys(l.$moduleUrls).length||(console.error("Unable to infer path to ace from script src,","use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes","or with webpack use ace/webpack-resolver"),c=function(){})};t.version="1.32.0"})),ace.define("ace/loader_build",["require","exports","module","ace/lib/fixoldbrowsers","ace/config"],(function(e,t,o){"use strict";e("./lib/fixoldbrowsers");var i=e("./config");i.setLoader((function(t,n){e([t],(function(e){n(null,e)}))}));var r=function(){return this||"undefined"!=typeof window&&window}();function s(t){if(r&&r.document){i.set("packaged",t||e.packaged||o.packaged||r.define&&n.amdD.packaged);var s={},a="",l=document.currentScript||document._currentScript,c=l&&l.ownerDocument||document;l&&l.src&&(a=l.src.split(/[?#]/)[0].split("/").slice(0,-1).join("/")||"");for(var u,h=c.getElementsByTagName("script"),d=0;d ["+this.end.row+"/"+this.end.column+"]"},e.prototype.contains=function(e,t){return 0==this.compare(e,t)},e.prototype.compareRange=function(e){var t,n=e.end,o=e.start;return 1==(t=this.compare(n.row,n.column))?1==(t=this.compare(o.row,o.column))?2:0==t?1:0:-1==t?-2:-1==(t=this.compare(o.row,o.column))?-1:1==t?42:0},e.prototype.comparePoint=function(e){return this.compare(e.row,e.column)},e.prototype.containsRange=function(e){return 0==this.comparePoint(e.start)&&0==this.comparePoint(e.end)},e.prototype.intersects=function(e){var t=this.compareRange(e);return-1==t||0==t||1==t},e.prototype.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},e.prototype.isStart=function(e,t){return this.start.row==e&&this.start.column==t},e.prototype.setStart=function(e,t){"object"==typeof e?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},e.prototype.setEnd=function(e,t){"object"==typeof e?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},e.prototype.inside=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)&&!this.isStart(e,t)},e.prototype.insideStart=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)},e.prototype.insideEnd=function(e,t){return 0==this.compare(e,t)&&!this.isStart(e,t)},e.prototype.compare=function(e,t){return this.isMultiLine()||e!==this.start.row?ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0:tthis.end.column?1:0},e.prototype.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},e.prototype.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},e.prototype.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},e.prototype.clipRows=function(t,n){if(this.end.row>n)var o={row:n+1,column:0};else this.end.rown)var i={row:n+1,column:0};else this.start.row1?++h>4&&(h=1):h=1,r.isIE){var s=Math.abs(e.clientX-a)>5||Math.abs(e.clientY-l)>5;c&&!s||(h=1),c&&clearTimeout(c),c=setTimeout((function(){c=null}),n[h-1]||600),1==h&&(a=e.clientX,l=e.clientY)}if(e._clicks=h,o[i]("mousedown",e),h>4)h=0;else if(h>1)return o[i](d[h],e)}Array.isArray(e)||(e=[e]),e.forEach((function(e){u(e,"mousedown",p,s)}))};var d=function(e){return(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)};function p(e,t,n){var o=d(t);if(!r.isMac&&s){if(t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(o|=8),s.altGr){if(!(3&~o))return;s.altGr=0}if(18===n||17===n){var l="location"in t?t.location:t.keyLocation;17===n&&1===l?1==s[n]&&(a=t.timeStamp):18===n&&3===o&&2===l&&t.timeStamp-a<50&&(s.altGr=!0)}}if(n in i.MODIFIER_KEYS&&(n=-1),o||13!==n||3!==(l="location"in t?t.location:t.keyLocation)||(e(t,o,-n),!t.defaultPrevented)){if(r.isChromeOS&&8&o){if(e(t,o,n),t.defaultPrevented)return;o&=-9}return!!(o||n in i.FUNCTION_KEYS||n in i.PRINTABLE_KEYS)&&e(t,o,n)}}function g(){s=Object.create(null)}if(t.getModifierString=function(e){return i.KEY_MODS[d(e)]},t.addCommandKeyListener=function(e,n,o){if(r.isOldGecko||r.isOpera&&!("KeyboardEvent"in window)){var i=null;u(e,"keydown",(function(e){i=e.keyCode}),o),u(e,"keypress",(function(e){return p(n,e,i)}),o)}else{var a=null;u(e,"keydown",(function(e){s[e.keyCode]=(s[e.keyCode]||0)+1;var t=p(n,e,e.keyCode);return a=e.defaultPrevented,t}),o),u(e,"keypress",(function(e){a&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),a=null)}),o),u(e,"keyup",(function(e){s[e.keyCode]=null}),o),s||(g(),u(window,"focus",g))}},"object"==typeof window&&window.postMessage&&!r.isOldIE){var m=1;t.nextTick=function(e,n){n=n||window;var o="zero-timeout-message-"+m++,i=function(r){r.data==o&&(t.stopPropagation(r),h(n,"message",i),e())};u(n,"message",i),n.postMessage(o,"*")}}t.$idleBlocked=!1,t.onIdle=function(e,n){return setTimeout((function n(){t.$idleBlocked?setTimeout(n,100):e()}),n)},t.$idleBlockId=null,t.blockIdle=function(e){t.$idleBlockId&&clearTimeout(t.$idleBlockId),t.$idleBlocked=!0,t.$idleBlockId=setTimeout((function(){t.$idleBlocked=!1}),e||100)},t.nextFrame="object"==typeof window&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}})),ace.define("ace/clipboard",["require","exports","module"],(function(e,t,n){"use strict";var o;n.exports={lineMode:!1,pasteCancelled:function(){return!!(o&&o>Date.now()-50)||(o=!1)},cancel:function(){o=Date.now()}}})),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/config","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/clipboard","ace/lib/keys"],(function(e,t,n){"use strict";var o=e("../lib/event"),i=e("../config").nls,r=e("../lib/useragent"),s=e("../lib/dom"),a=e("../lib/lang"),l=e("../clipboard"),c=r.isChrome<18,u=r.isIE,h=r.isChrome>63,d=400,p=e("../lib/keys"),g=p.KEY_MODS,m=r.isIOS,f=m?/\s/:/\n/,y=r.isMobile;t.TextInput=function(e,t){var n=s.createElement("textarea");n.className="ace_text-input",n.setAttribute("wrap","off"),n.setAttribute("autocorrect","off"),n.setAttribute("autocapitalize","off"),n.setAttribute("spellcheck",!1),n.style.opacity="0",e.insertBefore(n,e.firstChild);var v=!1,b=!1,w=!1,x=!1,k="";y||(n.style.fontSize="1px");var C=!1,$=!1,S="",E=0,O=0,T=0,A=Number.MAX_SAFE_INTEGER,_=Number.MIN_SAFE_INTEGER,L=0;try{var M=document.activeElement===n}catch(e){}this.setNumberOfExtraLines=function(e){A=Number.MAX_SAFE_INTEGER,_=Number.MIN_SAFE_INTEGER,L=e<0?0:e},this.setAriaOptions=function(e){if(e.activeDescendant?(n.setAttribute("aria-haspopup","true"),n.setAttribute("aria-autocomplete",e.inline?"both":"list"),n.setAttribute("aria-activedescendant",e.activeDescendant)):(n.setAttribute("aria-haspopup","false"),n.setAttribute("aria-autocomplete","both"),n.removeAttribute("aria-activedescendant")),e.role&&n.setAttribute("role",e.role),e.setLabel&&(n.setAttribute("aria-roledescription",i("editor")),t.session)){var o=t.session.selection.cursor.row;n.setAttribute("aria-label",i("Cursor at row $0",[o+1]))}},this.setAriaOptions({role:"textbox"}),o.addListener(n,"blur",(function(e){$||(t.onBlur(e),M=!1)}),t),o.addListener(n,"focus",(function(e){if(!$){if(M=!0,r.isEdge)try{if(!document.hasFocus())return}catch(e){}t.onFocus(e),r.isEdge?setTimeout(N):N()}}),t),this.$focusScroll=!1,this.focus=function(){if(this.setAriaOptions({setLabel:t.renderer.enableKeyboardAccessibility}),k||h||"browser"==this.$focusScroll)return n.focus({preventScroll:!0});var e=n.style.top;n.style.position="fixed",n.style.top="0px";try{var o=0!=n.getBoundingClientRect().top}catch(e){return}var i=[];if(o)for(var r=n.parentElement;r&&1==r.nodeType;)i.push(r),r.setAttribute("ace_nocontext",!0),r=!r.parentElement&&r.getRootNode?r.getRootNode().host:r.parentElement;n.focus({preventScroll:!0}),o&&i.forEach((function(e){e.removeAttribute("ace_nocontext")})),setTimeout((function(){n.style.position="","0px"==n.style.top&&(n.style.top=e)}),0)},this.blur=function(){n.blur()},this.isFocused=function(){return M},t.on("beforeEndOperation",(function(){var e=t.curOp,o=e&&e.command&&e.command.name;if("insertstring"!=o){var i=o&&(e.docChanged||e.selectionChanged);w&&i&&(S=n.value="",U()),N()}}));var R=function(e,n){for(var o=n,i=1;i<=e-A&&i<2*L+1;i++)o+=t.session.getLine(e-i).length+1;return o},N=m?function(e){if(M&&(!v||e)&&!x){e||(e="");var o="\n ab"+e+"cde fg\n";o!=n.value&&(n.value=S=o);var i=4+(e.length||(t.selection.isEmpty()?0:1));4==E&&O==i||n.setSelectionRange(4,i),E=4,O=i}}:function(){if(!w&&!x&&(M||P)){w=!0;var e=0,o=0,i="";if(t.session){var r=t.selection,s=r.getRange(),a=r.cursor.row;a===_+1?_=(A=_+1)+2*L:a===A-1?A=(_=A-1)-2*L:(a_+1)&&(A=a>L?a-L:0,_=a>L?a+L:2*L);for(var l=[],c=A;c<=_;c++)l.push(t.session.getLine(c));if(i=l.join("\n"),e=R(s.start.row,s.start.column),o=R(s.end.row,s.end.column),s.start.row_){var h=t.session.getLine(_+1);o=s.end.row>_+1?h.length:s.end.column,o+=i.length+1,i=i+"\n"+h}else y&&a>0&&(i="\n"+i,o+=1,e+=1);i.length>d&&(e0&&S[d]==e[d];)d++,a--;for(c=c.slice(d),d=1;l>0&&S.length-d>E-1&&S[S.length-d]==e[e.length-d];)d++,l--;u-=d-1,h-=d-1;var p=c.length-d+1;if(p<0&&(a=-p,p=0),c=c.slice(0,p),!(o||c||u||a||l||h))return"";x=!0;var g=!1;return r.isAndroid&&". "==c&&(c=" ",g=!0),c&&!a&&!l&&!u&&!h||C?t.onTextInput(c):t.onTextInput(c,{extendLeft:a,extendRight:l,restoreStart:u,restoreEnd:h}),x=!1,S=e,E=i,O=s,T=h,g?"\n":c},F=function(e){if(w)return V();if(e&&e.inputType){if("historyUndo"==e.inputType)return t.execCommand("undo");if("historyRedo"==e.inputType)return t.execCommand("redo")}var o=n.value,i=D(o,!0);(o.length>500||f.test(i)||y&&E<1&&E==O)&&N()},B=function(e,t,n){var o=e.clipboardData||window.clipboardData;if(o&&!c){var i=u||n?"Text":"text/plain";try{return t?!1!==o.setData(i,t):o.getData(i)}catch(e){if(!n)return B(e,t,!0)}}},W=function(e,i){var r=t.getCopyText();if(!r)return o.preventDefault(e);B(e,r)?(m&&(N(r),v=r,setTimeout((function(){v=!1}),10)),i?t.onCut():t.onCopy(),o.preventDefault(e)):(v=!0,n.value=r,n.select(),setTimeout((function(){v=!1,N(),i?t.onCut():t.onCopy()})))},H=function(e){W(e,!0)},j=function(e){W(e,!1)},z=function(e){var i=B(e);l.pasteCancelled()||("string"==typeof i?(i&&t.onPaste(i,e),r.isIE&&setTimeout(N),o.preventDefault(e)):(n.value="",b=!0))};o.addCommandKeyListener(n,t.onCommandKey.bind(t),t),o.addListener(n,"select",(function(e){w||(v?v=!1:function(e){return 0===e.selectionStart&&e.selectionEnd>=S.length&&e.value===S&&S&&e.selectionEnd!==O}(n)?(t.selectAll(),N()):y&&n.selectionStart!=E&&N())}),t),o.addListener(n,"input",F,t),o.addListener(n,"cut",H,t),o.addListener(n,"copy",j,t),o.addListener(n,"paste",z,t),"oncut"in n&&"oncopy"in n&&"onpaste"in n||o.addListener(e,"keydown",(function(e){if((!r.isMac||e.metaKey)&&e.ctrlKey)switch(e.keyCode){case 67:j(e);break;case 86:z(e);break;case 88:H(e)}}),t);var V=function(){if(w&&t.onCompositionUpdate&&!t.$readOnly){if(C)return G();if(w.useTextareaForIME)t.onCompositionUpdate(n.value);else{var e=n.value;D(e),w.markerRange&&(w.context&&(w.markerRange.start.column=w.selectionStart=w.context.compositionStartOffset),w.markerRange.end.column=w.markerRange.start.column+O-w.selectionStart+T)}}},U=function(e){t.onCompositionEnd&&!t.$readOnly&&(w=!1,t.onCompositionEnd(),t.off("mousedown",G),e&&F())};function G(){$=!0,n.blur(),n.focus(),$=!1}var K,q=a.delayedCall(V,50).schedule.bind(null,null);function Y(){clearTimeout(K),K=setTimeout((function(){k&&(n.style.cssText=k,k=""),t.renderer.$isMousePressed=!1,t.renderer.$keepTextAreaAtCursor&&t.renderer.$moveTextAreaToCursor()}),0)}o.addListener(n,"compositionstart",(function(e){if(!w&&t.onCompositionStart&&!t.$readOnly&&(w={},!C)){e.data&&(w.useTextareaForIME=!1),setTimeout(V,0),t._signal("compositionStart"),t.on("mousedown",G);var o=t.getSelectionRange();o.end.row=o.start.row,o.end.column=o.start.column,w.markerRange=o,w.selectionStart=E,t.onCompositionStart(w),w.useTextareaForIME?(S=n.value="",E=0,O=0):(n.msGetInputContext&&(w.context=n.msGetInputContext()),n.getInputContext&&(w.context=n.getInputContext()))}}),t),o.addListener(n,"compositionupdate",V,t),o.addListener(n,"keyup",(function(e){27==e.keyCode&&n.value.lengthO&&"\n"==S[r]?s=p.end:oO&&S.slice(0,r).split("\n").length>2?s=p.down:r>O&&" "==S[r-1]?(s=p.right,a=g.option):(r>O||r==O&&O!=E&&o==r)&&(s=p.right),o!==r&&(a|=g.shift),s){if(!t.onCommandKey({},a,s)&&t.commands){s=p.keyCodeToString(s);var l=t.commands.findKeyCommand(a,s);l&&t.execCommand(l)}E=o,O=r,N("")}}};document.addEventListener("selectionchange",r),t.on("destroy",(function(){document.removeEventListener("selectionchange",r)}))}(0,t,n),this.destroy=function(){n.parentElement&&n.parentElement.removeChild(n)}},t.$setUserAgentForTests=function(e,t){y=e,m=t}})),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("../lib/useragent"),i=function(){function e(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e)),["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"].forEach((function(t){e[t]=this[t]}),this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}return e.prototype.onMouseDown=function(e){var t=e.inSelection(),n=e.getDocumentPosition();this.mousedownEvent=e;var i=this.editor,r=e.getButton();return 0!==r?((i.getSelectionRange().isEmpty()||1==r)&&i.selection.moveToPosition(n),void(2==r&&(i.textInput.onContextMenu(e.domEvent),o.isMozilla||e.preventDefault()))):(this.mousedownEvent.time=Date.now(),!t||i.isFocused()||(i.focus(),!this.$focusTimeout||this.$clickSelection||i.inMultiSelectMode)?(this.captureMouse(e),this.startSelect(n,e.domEvent._clicks>1),e.preventDefault()):(this.setState("focusWait"),void this.captureMouse(e)))},e.prototype.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var n=this.editor;this.mousedownEvent&&(this.mousedownEvent.getShiftKey()?n.selection.selectToPosition(e):t||n.selection.moveToPosition(e),t||this.select(),n.setStyle("ace_selecting"),this.setState("select"))},e.prototype.select=function(){var e,t=this.editor,n=t.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var o=this.$clickSelection.comparePoint(n);if(-1==o)e=this.$clickSelection.end;else if(1==o)e=this.$clickSelection.start;else{var i=r(this.$clickSelection,n);n=i.cursor,e=i.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(n),t.renderer.scrollCursorIntoView()},e.prototype.extendSelectionBy=function(e){var t,n=this.editor,o=n.renderer.screenToTextCoordinates(this.x,this.y),i=n.selection[e](o.row,o.column);if(this.$clickSelection){var s=this.$clickSelection.comparePoint(i.start),a=this.$clickSelection.comparePoint(i.end);if(-1==s&&a<=0)t=this.$clickSelection.end,i.end.row==o.row&&i.end.column==o.column||(o=i.start);else if(1==a&&s>=0)t=this.$clickSelection.start,i.start.row==o.row&&i.start.column==o.column||(o=i.end);else if(-1==s&&1==a)o=i.end,t=i.start;else{var l=r(this.$clickSelection,o);o=l.cursor,t=l.anchor}n.selection.setSelectionAnchor(t.row,t.column)}n.selection.selectToPosition(o),n.renderer.scrollCursorIntoView()},e.prototype.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting")},e.prototype.focusWait=function(){var e,t,n,o,i=(e=this.mousedownEvent.x,t=this.mousedownEvent.y,n=this.x,o=this.y,Math.sqrt(Math.pow(n-e,2)+Math.pow(o-t,2))),r=Date.now();(i>0||r-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},e.prototype.onDoubleClick=function(e){var t=e.getDocumentPosition(),n=this.editor,o=n.session.getBracketRange(t);o?(o.isEmpty()&&(o.start.column--,o.end.column++),this.setState("select")):(o=n.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=o,this.select()},e.prototype.onTripleClick=function(e){var t=e.getDocumentPosition(),n=this.editor;this.setState("selectByLines");var o=n.getSelectionRange();o.isMultiLine()&&o.contains(t.row,t.column)?(this.$clickSelection=n.selection.getLineRange(o.start.row),this.$clickSelection.end=n.selection.getLineRange(o.end.row).end):this.$clickSelection=n.selection.getLineRange(t.row),this.select()},e.prototype.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},e.prototype.onMouseWheel=function(e){if(!e.getAccelKey()){e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var n=this.$lastScroll,o=e.domEvent.timeStamp,i=o-n.t,r=i?e.wheelX/i:n.vx,s=i?e.wheelY/i:n.vy;i<550&&(r=(r+n.vx)/2,s=(s+n.vy)/2);var a=Math.abs(r/s),l=!1;return a>=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(l=!0),a<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(l=!0),l?n.allowed=o:o-n.allowed<550&&(Math.abs(r)<=1.5*Math.abs(n.vx)&&Math.abs(s)<=1.5*Math.abs(n.vy)?(l=!0,n.allowed=o):n.allowed=0),n.t=o,n.vx=r,n.vy=s,l?(t.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()):void 0}},e}();function r(e,t){if(e.start.row==e.end.row)var n=2*t.column-e.start.column-e.end.column;else if(e.start.row!=e.end.row-1||e.start.column||e.end.column)n=2*t.row-e.start.row-e.end.row;else n=t.column-4;return n<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}i.prototype.selectEnd=i.prototype.selectByLinesEnd,i.prototype.selectAllEnd=i.prototype.selectByLinesEnd,i.prototype.selectByWordsEnd=i.prototype.selectByLinesEnd,t.DefaultHandlers=i})),ace.define("ace/tooltip",["require","exports","module","ace/lib/dom","ace/lib/event","ace/range"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],o=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&o>=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},s=e("./lib/dom"),a=e("./lib/event"),l=e("./range").Range,c="ace_tooltip",u=function(){function e(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}return e.prototype.$init=function(){return this.$element=s.createElement("div"),this.$element.className=c,this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},e.prototype.getElement=function(){return this.$element||this.$init()},e.prototype.setText=function(e){this.getElement().textContent=e},e.prototype.setHtml=function(e){this.getElement().innerHTML=e},e.prototype.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},e.prototype.setClassName=function(e){s.addCssClass(this.getElement(),e)},e.prototype.setTheme=function(e){this.$element.className=c+" "+(e.isDark?"ace_dark ":"")+(e.cssClass||"")},e.prototype.show=function(e,t,n){null!=e&&this.setText(e),null!=t&&null!=n&&this.setPosition(t,n),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},e.prototype.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.getElement().className=c,this.isOpen=!1)},e.prototype.getHeight=function(){return this.getElement().offsetHeight},e.prototype.getWidth=function(){return this.getElement().offsetWidth},e.prototype.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)},e}(),h=new(function(){function e(){this.popups=[]}return e.prototype.addPopup=function(e){this.popups.push(e),this.updatePopups()},e.prototype.removePopup=function(e){var t=this.popups.indexOf(e);-1!==t&&(this.popups.splice(t,1),this.updatePopups())},e.prototype.updatePopups=function(){var e,t,n,o;this.popups.sort((function(e,t){return t.priority-e.priority}));var i=[];try{for(var s=r(this.popups),a=s.next();!a.done;a=s.next()){var l=a.value,c=!0;try{for(var u=(n=void 0,r(i)),h=u.next();!h.done;h=u.next()){var d=h.value;if(this.doPopupsOverlap(d,l)){c=!1;break}}}catch(e){n={error:e}}finally{try{h&&!h.done&&(o=u.return)&&o.call(u)}finally{if(n)throw n.error}}c?i.push(l):l.hide()}}catch(t){e={error:t}}finally{try{a&&!a.done&&(t=s.return)&&t.call(s)}finally{if(e)throw e.error}}},e.prototype.doPopupsOverlap=function(e,t){var n=e.getElement().getBoundingClientRect(),o=t.getElement().getBoundingClientRect();return n.lefto.left&&n.topo.top},e}());t.popupManager=h,t.Tooltip=u;var d=function(e){function t(t){void 0===t&&(t=document.body);var n=e.call(this,t)||this;n.timeout=void 0,n.lastT=0,n.idleTime=350,n.lastEvent=void 0,n.onMouseOut=n.onMouseOut.bind(n),n.onMouseMove=n.onMouseMove.bind(n),n.waitForHover=n.waitForHover.bind(n),n.hide=n.hide.bind(n);var o=n.getElement();return o.style.whiteSpace="pre-wrap",o.style.pointerEvents="auto",o.addEventListener("mouseout",n.onMouseOut),o.tabIndex=-1,o.addEventListener("blur",function(){o.contains(document.activeElement)||this.hide()}.bind(n)),o.addEventListener("wheel",a.stopPropagation),n}return i(t,e),t.prototype.addToEditor=function(e){e.on("mousemove",this.onMouseMove),e.on("mousedown",this.hide),e.renderer.getMouseEventTarget().addEventListener("mouseout",this.onMouseOut,!0)},t.prototype.removeFromEditor=function(e){e.off("mousemove",this.onMouseMove),e.off("mousedown",this.hide),e.renderer.getMouseEventTarget().removeEventListener("mouseout",this.onMouseOut,!0),this.timeout&&(clearTimeout(this.timeout),this.timeout=null)},t.prototype.onMouseMove=function(e,t){this.lastEvent=e,this.lastT=Date.now();var n=t.$mouseHandler.isMousePressed;if(this.isOpen){var o=this.lastEvent&&this.lastEvent.getDocumentPosition();this.range&&this.range.contains(o.row,o.column)&&!n&&!this.isOutsideOfText(this.lastEvent)||this.hide()}this.timeout||n||(this.lastEvent=e,this.timeout=setTimeout(this.waitForHover,this.idleTime))},t.prototype.waitForHover=function(){this.timeout&&clearTimeout(this.timeout);var e=Date.now()-this.lastT;this.idleTime-e>10?this.timeout=setTimeout(this.waitForHover,this.idleTime-e):(this.timeout=null,this.lastEvent&&!this.isOutsideOfText(this.lastEvent)&&this.$gatherData(this.lastEvent,this.lastEvent.editor))},t.prototype.isOutsideOfText=function(e){var t=e.editor,n=e.getDocumentPosition(),o=t.session.getLine(n.row);if(n.column==o.length){var i=t.renderer.pixelToScreenCoordinates(e.clientX,e.clientY),r=t.session.documentToScreenPosition(n.row,n.column);if(r.column!=i.column||r.row!=i.row)return!0}return!1},t.prototype.setDataProvider=function(e){this.$gatherData=e},t.prototype.showForRange=function(e,t,n,o){if(!(o&&o!=this.lastEvent||this.isOpen&&document.activeElement==this.getElement())){var i=e.renderer;this.isOpen||(h.addPopup(this),this.$registerCloseEvents(),this.setTheme(i.theme)),this.isOpen=!0,this.addMarker(t,e.session),this.range=l.fromPoints(t.start,t.end);var r=i.textToScreenCoordinates(t.start.row,t.start.column),s=i.scroller.getBoundingClientRect();r.pageX=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},s=e("../lib/dom"),a=e("../lib/event"),l=e("../tooltip").Tooltip,c=e("../config").nls;t.GutterHandler=function(e){var t,n,o=e.editor,i=o.renderer.$gutterLayer,r=new u(o);function l(){t&&(t=clearTimeout(t)),r.isOpen&&(r.hideTooltip(),o.off("mousewheel",l))}function c(e){r.setPosition(e.x,e.y)}e.editor.setDefaultHandler("guttermousedown",(function(t){if(o.isFocused()&&0==t.getButton()&&"foldWidgets"!=i.getRegion(t)){var n=t.getDocumentPosition().row,r=o.session.selection;if(t.getShiftKey())r.selectTo(n,0);else{if(2==t.domEvent.detail)return o.selectAll(),t.preventDefault();e.$clickSelection=o.selection.getLineRange(n)}return e.setState("selectByLines"),e.captureMouse(t),t.preventDefault()}})),e.editor.setDefaultHandler("guttermousemove",(function(a){var u=a.domEvent.target||a.domEvent.srcElement;if(s.hasCssClass(u,"ace_fold-widget"))return l();r.isOpen&&e.$tooltipFollowsMouse&&c(a),n=a,t||(t=setTimeout((function(){t=null,n&&!e.isMousePressed?function(){var t=n.getDocumentPosition().row;if(t==o.session.getLength()){var s=o.renderer.pixelToScreenCoordinates(0,n.y).row,a=n.$pos;if(s>o.session.documentToScreenRow(a.row,a.column))return l()}if(r.showTooltip(t),r.isOpen)if(o.on("mousewheel",l),e.$tooltipFollowsMouse)c(n);else{var u=n.getGutterRow(),h=i.$lines.get(u);if(h){var d=h.element.querySelector(".ace_gutter_annotation").getBoundingClientRect(),p=r.getElement().style;p.left=d.right+"px",p.top=d.bottom+"px"}else c(n)}}():l()}),50))})),a.addListener(o.renderer.$gutter,"mouseout",(function(e){n=null,r.isOpen&&!t&&(t=setTimeout((function(){t=null,l()}),50))}),o),o.on("changeSession",l),o.on("input",l)};var u=function(e){function t(t){var n=e.call(this,t.container)||this;return n.editor=t,n}return i(t,e),t.prototype.setPosition=function(e,t){var n=window.innerWidth||document.documentElement.clientWidth,o=window.innerHeight||document.documentElement.clientHeight,i=this.getWidth(),r=this.getHeight();(e+=15)+i>n&&(e-=e+i-n),(t+=15)+r>o&&(t-=20+r),l.prototype.setPosition.call(this,e,t)},Object.defineProperty(t,"annotationLabels",{get:function(){return{error:{singular:c("error"),plural:c("errors")},warning:{singular:c("warning"),plural:c("warnings")},info:{singular:c("information message"),plural:c("information messages")}}},enumerable:!1,configurable:!0}),t.prototype.showTooltip=function(e){var n,o=this.editor.renderer.$gutterLayer,i=o.$annotations[e];n=i?{text:Array.from(i.text),type:Array.from(i.type)}:{text:[],type:[]};var r=o.session.getFoldLine(e);if(r&&o.$showFoldedAnnotations){for(var s,a={error:[],warning:[],info:[]},l=e+1;l<=r.end.row;l++)if(o.$annotations[l])for(var c=0;c ").concat(n.text[l]);d[n.type[l].replace("_fold","")].push(g)}var m=[].concat(d.error,d.warning,d.info).join("
    ");this.setHtml(m),this.$element.setAttribute("aria-live","polite"),this.isOpen||(this.setTheme(this.editor.renderer.theme),this.setClassName("ace_gutter-tooltip")),this.show(),this.editor._signal("showGutterTooltip",this)},t.prototype.hideTooltip=function(){this.$element.removeAttribute("aria-live"),this.hide(),this.editor._signal("hideGutterTooltip",this)},t.annotationsToSummaryString=function(e){var n,o,i=[];try{for(var s=r(["error","warning","info"]),a=s.next();!a.done;a=s.next()){var l=a.value;if(e[l].length){var c=1===e[l].length?t.annotationLabels[l].singular:t.annotationLabels[l].plural;i.push("".concat(e[l].length," ").concat(c))}}}catch(e){n={error:e}}finally{try{a&&!a.done&&(o=s.return)&&o.call(s)}finally{if(n)throw n.error}}return i.join(", ")},t}(l);t.GutterTooltip=u})),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("../lib/event"),i=e("../lib/useragent"),r=function(){function e(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1}return e.prototype.stopPropagation=function(){o.stopPropagation(this.domEvent),this.propagationStopped=!0},e.prototype.preventDefault=function(){o.preventDefault(this.domEvent),this.defaultPrevented=!0},e.prototype.stop=function(){this.stopPropagation(),this.preventDefault()},e.prototype.getDocumentPosition=function(){return this.$pos||(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY)),this.$pos},e.prototype.getGutterRow=function(){var e=this.getDocumentPosition().row;return this.editor.session.documentToScreenRow(e,0)-this.editor.session.documentToScreenRow(this.editor.renderer.$gutterLayer.$lines.get(0).row,0)},e.prototype.inSelection=function(){if(null!==this.$inSelection)return this.$inSelection;var e=this.editor.getSelectionRange();if(e.isEmpty())this.$inSelection=!1;else{var t=this.getDocumentPosition();this.$inSelection=e.contains(t.row,t.column)}return this.$inSelection},e.prototype.getButton=function(){return o.getButton(this.domEvent)},e.prototype.getShiftKey=function(){return this.domEvent.shiftKey},e.prototype.getAccelKey=function(){return i.isMac?this.domEvent.metaKey:this.domEvent.ctrlKey},e}();t.MouseEvent=r})),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=e("../lib/event"),r=e("../lib/useragent");function s(e){var t=e.editor,n=o.createElement("div");n.style.cssText="top:-100px;position:absolute;z-index:2147483647;opacity:0.5",n.textContent=" ",["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"].forEach((function(t){e[t]=this[t]}),this),t.on("mousedown",this.onMouseDown.bind(e));var s,l,c,u,h,d,p,g,m,f,y,v=t.container,b=0;function w(){var e=d;(function(e,n){var o=Date.now(),i=!n||e.row!=n.row,r=!n||e.column!=n.column;!f||i||r?(t.moveCursorToPosition(e),f=o,y={x:l,y:c}):a(y.x,y.y,l,c)>5?f=null:o-f>=200&&(t.renderer.scrollCursorIntoView(),f=null)})(d=t.renderer.screenToTextCoordinates(l,c),e),function(e,n){var o=Date.now(),i=t.renderer.layerConfig.lineHeight,r=t.renderer.layerConfig.characterWidth,s=t.renderer.scroller.getBoundingClientRect(),a={x:{left:l-s.left,right:s.right-l},y:{top:c-s.top,bottom:s.bottom-c}},u=Math.min(a.x.left,a.x.right),h=Math.min(a.y.top,a.y.bottom),d={row:e.row,column:e.column};u/r<=2&&(d.column+=a.x.left=200&&t.renderer.scrollCursorIntoView(d):m=o:m=null}(d,e)}function x(){h=t.selection.toOrientedRange(),s=t.session.addMarker(h,"ace_selection",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(u),w(),u=setInterval(w,20),b=0,i.addListener(document,"mousemove",$)}function k(){clearInterval(u),t.session.removeMarker(s),s=null,t.selection.fromOrientedRange(h),t.isFocused()&&!g&&t.$resetCursorStyle(),h=null,d=null,b=0,m=null,f=null,i.removeListener(document,"mousemove",$)}this.onDragStart=function(e){if(this.cancelDrag||!v.draggable){var o=this;return setTimeout((function(){o.startSelect(),o.captureMouse(e)}),0),e.preventDefault()}h=t.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=t.getReadOnly()?"copy":"copyMove",t.container.appendChild(n),i.setDragImage&&i.setDragImage(n,0,0),setTimeout((function(){t.container.removeChild(n)})),i.clearData(),i.setData("Text",t.session.getTextRange()),g=!0,this.setState("drag")},this.onDragEnd=function(e){if(v.draggable=!1,g=!1,this.setState(null),!t.getReadOnly()){var n=e.dataTransfer.dropEffect;p||"move"!=n||t.session.remove(t.getSelectionRange()),t.$resetCursorStyle()}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(!t.getReadOnly()&&S(e.dataTransfer))return l=e.clientX,c=e.clientY,s||x(),b++,e.dataTransfer.dropEffect=p=E(e),i.preventDefault(e)},this.onDragOver=function(e){if(!t.getReadOnly()&&S(e.dataTransfer))return l=e.clientX,c=e.clientY,s||(x(),b++),null!==C&&(C=null),e.dataTransfer.dropEffect=p=E(e),i.preventDefault(e)},this.onDragLeave=function(e){if(--b<=0&&s)return k(),p=null,i.preventDefault(e)},this.onDrop=function(e){if(d){var n=e.dataTransfer;if(g)switch(p){case"move":h=h.contains(d.row,d.column)?{start:d,end:d}:t.moveText(h,d);break;case"copy":h=t.moveText(h,d,!0)}else{var o=n.getData("Text");h={start:d,end:t.session.insert(d,o)},t.focus(),p=null}return k(),i.preventDefault(e)}},i.addListener(v,"dragstart",this.onDragStart.bind(e),t),i.addListener(v,"dragend",this.onDragEnd.bind(e),t),i.addListener(v,"dragenter",this.onDragEnter.bind(e),t),i.addListener(v,"dragover",this.onDragOver.bind(e),t),i.addListener(v,"dragleave",this.onDragLeave.bind(e),t),i.addListener(v,"drop",this.onDrop.bind(e),t);var C=null;function $(){null==C&&(C=setTimeout((function(){null!=C&&s&&k()}),20))}function S(e){var t=e.types;return!t||Array.prototype.some.call(t,(function(e){return"text/plain"==e||"Text"==e}))}function E(e){var t=["copy","copymove","all","uninitialized"],n=r.isMac?e.altKey:e.ctrlKey,o="uninitialized";try{o=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var i="none";return n&&t.indexOf(o)>=0?i="copy":["move","copymove","linkmove","all","uninitialized"].indexOf(o)>=0?i="move":t.indexOf(o)>=0&&(i="copy"),i}}function a(e,t,n,o){return Math.sqrt(Math.pow(n-e,2)+Math.pow(o-t,2))}(function(){this.dragWait=function(){Date.now()-this.mousedownEvent.time>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){this.editor.container.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor;e.container.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var t=r.isWin?"default":"move";e.renderer.setCursorStyle(t),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;r.isIE&&"dragReady"==this.state&&a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>3&&t.dragDrop(),"dragWait"===this.state&&a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))},this.onMouseDown=function(e){if(this.$dragEnabled){this.mousedownEvent=e;var t=this.editor,n=e.inSelection(),o=e.getButton();if(1===(e.domEvent.detail||1)&&0===o&&n){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var i=e.domEvent.target||e.domEvent.srcElement;"unselectable"in i&&(i.unselectable="on"),t.getDragDelay()?(r.isWebKit&&(this.cancelDrag=!0,t.container.draggable=!0),this.setState("dragWait")):this.startDrag(),this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}}).call(s.prototype),t.DragdropHandler=s})),ace.define("ace/mouse/touch_handler",["require","exports","module","ace/mouse/mouse_event","ace/lib/event","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("./mouse_event").MouseEvent,i=e("../lib/event"),r=e("../lib/dom");t.addTouchListeners=function(e,t){var n,s,a,l,c,u,h,d,p,g="scroll",m=0,f=0,y=0,v=0;function b(){var e,n,o;p||(e=window.navigator&&window.navigator.clipboard,n=!1,o=function(o){var i,s,a=o.target.getAttribute("action");if("more"==a||!n)return n=!n,i=t.getCopyText(),s=t.session.getUndoManager().hasUndo(),void p.replaceChild(r.buildDom(n?["span",!i&&["span",{class:"ace_mobile-button",action:"selectall"},"Select All"],i&&["span",{class:"ace_mobile-button",action:"copy"},"Copy"],i&&["span",{class:"ace_mobile-button",action:"cut"},"Cut"],e&&["span",{class:"ace_mobile-button",action:"paste"},"Paste"],s&&["span",{class:"ace_mobile-button",action:"undo"},"Undo"],["span",{class:"ace_mobile-button",action:"find"},"Find"],["span",{class:"ace_mobile-button",action:"openCommandPalette"},"Palette"]]:["span"]),p.firstChild);"paste"==a?e.readText().then((function(e){t.execCommand(a,e)})):a&&("cut"!=a&&"copy"!=a||(e?e.writeText(t.getCopyText()):document.execCommand("copy")),t.execCommand(a)),p.firstChild.style.display="none",n=!1,"openCommandPalette"!=a&&t.focus()},p=r.buildDom(["div",{class:"ace_mobile-menu",ontouchstart:function(e){g="menu",e.stopPropagation(),e.preventDefault(),t.textInput.focus()},ontouchend:function(e){e.stopPropagation(),e.preventDefault(),o(e)},onclick:o},["span"],["span",{class:"ace_mobile-button",action:"more"},"..."]],t.container));var i=t.selection.cursor,s=t.renderer.textToScreenCoordinates(i.row,i.column),a=t.renderer.textToScreenCoordinates(0,0).pageX,l=t.renderer.scrollLeft,c=t.container.getBoundingClientRect();p.style.top=s.pageY-c.top-3+"px",s.pageX-c.left1)return clearTimeout(c),c=null,a=-1,void(g="zoom");d=t.$mouseHandler.isMousePressed=!0;var r=t.renderer.layerConfig.lineHeight,u=t.renderer.layerConfig.lineHeight,p=e.timeStamp;l=p;var b=i[0],w=b.clientX,k=b.clientY;Math.abs(n-w)+Math.abs(s-k)>r&&(a=-1),n=e.clientX=w,s=e.clientY=k,y=v=0;var C=new o(e,t);if(h=C.getDocumentPosition(),p-a<500&&1==i.length&&!m)f++,e.preventDefault(),e.button=0,function(){c=null,clearTimeout(c),t.selection.moveToPosition(h);var e=f>=2?t.selection.getLineRange(h.row):t.session.getBracketRange(h);e&&!e.isEmpty()?t.selection.setRange(e):t.selection.selectWord(),g="wait"}();else{f=0;var $=t.selection.cursor,S=t.selection.isEmpty()?$:t.selection.anchor,E=t.renderer.$cursorLayer.getPixelPosition($,!0),O=t.renderer.$cursorLayer.getPixelPosition(S,!0),T=t.renderer.scroller.getBoundingClientRect(),A=t.renderer.layerConfig.offset,_=t.renderer.scrollLeft,L=function(e,t){return(e/=u)*e+(t=t/r-.75)*t};if(e.clientXR?"cursor":"anchor"),g=R<3.5?"anchor":M<3.5?"cursor":"scroll",c=setTimeout(x,450)}a=p}),t),i.addListener(e,"touchend",(function(e){d=t.$mouseHandler.isMousePressed=!1,u&&clearInterval(u),"zoom"==g?(g="",m=0):c?(t.selection.moveToPosition(h),m=0,b()):"scroll"==g?(m+=60,u=setInterval((function(){m--<=0&&(clearInterval(u),u=null),Math.abs(y)<.01&&(y=0),Math.abs(v)<.01&&(v=0),m<20&&(y*=.9),m<20&&(v*=.9);var e=t.session.getScrollTop();t.renderer.scrollBy(10*y,10*v),e==t.session.getScrollTop()&&(m=0)}),10),w()):b(),clearTimeout(c),c=null}),t),i.addListener(e,"touchmove",(function(e){c&&(clearTimeout(c),c=null);var i=e.touches;if(!(i.length>1||"zoom"==g)){var r=i[0],a=n-r.clientX,u=s-r.clientY;if("wait"==g){if(!(a*a+u*u>4))return e.preventDefault();g="cursor"}n=r.clientX,s=r.clientY,e.clientX=r.clientX,e.clientY=r.clientY;var h=e.timeStamp,d=h-l;if(l=h,"scroll"==g){var p=new o(e,t);p.speed=1,p.wheelX=a,p.wheelY=u,10*Math.abs(a)=e){for(r=h+1;r=e;)r++;for(a=h,l=r-1;a=t.length||2!=(l=n[i-1])&&3!=l||2!=(c=t[i+1])&&3!=c?4:(r&&(c=3),c==l?c:4);case 10:return 2==(l=i>0?n[i-1]:5)&&i+10&&2==n[i-1])return 2;if(r)return 4;for(p=i+1,d=t.length;p=1425&&m<=2303||64286==m;if(l=t[p],f&&(1==l||7==l))return 1}return i<1||5==(l=t[i-1])?4:n[i-1];case 5:return r=!1,s=!0,o;case 6:return a=!0,4;case 13:case 14:case 16:case 17:case 15:r=!1;case h:return 4}}function f(e){var t=e.charCodeAt(0),n=t>>8;return 0==n?t>191?0:d[t]:5==n?/[\u0591-\u05f4]/.test(e)?1:0:6==n?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?12:/[\u0660-\u0669\u066b-\u066c]/.test(e)?3:1642==t?u:/[\u06f0-\u06f9]/.test(e)?2:7:32==n&&t<=8287?p[255&t]:254==n&&t>=65136?7:4}t.L=0,t.R=1,t.EN=2,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.RLE=7,t.DOT="·",t.doBidiReorder=function(e,n,u){if(e.length<2)return{};var d=e.split(""),p=new Array(d.length),y=new Array(d.length),v=[];o=u?1:0,function(e,t,n,u){var h=o?c:l,d=null,p=null,g=null,y=0,v=null,b=-1,w=null,x=null,k=[];if(!u)for(w=0,u=[];w0)if(16==v){for(w=b;w-1){for(w=b;w=0&&8==u[C];C--)t[C]=o}}(d,v,d.length,n);for(var b=0;b7&&n[b]<13||4===n[b]||n[b]===h)?v[b]=t.ON_R:b>0&&"ل"===d[b-1]&&/\u0622|\u0623|\u0625|\u0627/.test(d[b])&&(v[b-1]=v[b]=t.R_H,b++);for(d[d.length-1]===t.DOT&&(v[d.length-1]=t.B),"‫"===d[0]&&(v[0]=t.RLE),b=0;b=0&&(e=this.session.$docRowCache[n])}return e},e.prototype.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length)for(var n,o=this.session.$getRowCacheIndex(t,this.currentRow);this.currentRow-e>0&&(n=this.session.$getRowCacheIndex(t,this.currentRow-e-1))===o;)o=n,e++;else e=this.currentRow;return e},e.prototype.updateRowLine=function(e,t){void 0===e&&(e=this.getDocumentRow());var n=e===this.session.getLength()-1?this.EOF:this.EOL;if(this.wrapIndent=0,this.line=this.session.getLine(e),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE,this.session.$useWrapMode){var r=this.session.$wrapData[e];r&&(void 0===t&&(t=this.getSplitIndex()),t>0&&r.length?(this.wrapIndent=r.indent,this.wrapOffset=this.wrapIndent*this.charWidths[o.L],this.line=tt?this.session.getOverwrite()?e:e-1:t,i=o.getVisualFromLogicalIdx(n,this.bidiMap),r=this.bidiMap.bidiLevels,s=0;!this.session.getOverwrite()&&e<=t&&r[i]%2!=0&&i++;for(var a=0;at&&r[i]%2==0&&(s+=this.charWidths[r[i]]),this.wrapIndent&&(s+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(s+=this.rtlLineOffset),s},e.prototype.getSelections=function(e,t){var n,o=this.bidiMap,i=o.bidiLevels,r=[],s=0,a=Math.min(e,t)-this.wrapIndent,l=Math.max(e,t)-this.wrapIndent,c=!1,u=!1,h=0;this.wrapIndent&&(s+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var d,p=0;p=a&&dn+r/2;){if(n+=r,o===i.length-1){r=0;break}r=this.charWidths[i[++o]]}return o>0&&i[o-1]%2!=0&&i[o]%2==0?(e0&&i[o-1]%2==0&&i[o]%2!=0?t=1+(e>n?this.bidiMap.logicalFromVisual[o]:this.bidiMap.logicalFromVisual[o-1]):this.isRtlDir&&o===i.length-1&&0===r&&i[o-1]%2==0||!this.isRtlDir&&0===o&&i[o]%2!=0?t=1+this.bidiMap.logicalFromVisual[o]:(o>0&&i[o-1]%2!=0&&0!==r&&o--,t=this.bidiMap.logicalFromVisual[o]),0===t&&this.isRtlDir&&t++,t+this.wrapIndent},e}();t.BidiHandler=s})),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],(function(e,t,n){"use strict";var o=e("./lib/oop"),i=e("./lib/lang"),r=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,a=function(){function e(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var t=this;this.cursor.on("change",(function(e){t.$cursorChanged=!0,t.$silent||t._emit("changeCursor"),t.$isEmpty||t.$silent||t._emit("changeSelection"),t.$keepDesiredColumnOnChange||e.old.column==e.value.column||(t.$desiredColumn=null)})),this.anchor.on("change",(function(){t.$anchorChanged=!0,t.$isEmpty||t.$silent||t._emit("changeSelection")}))}return e.prototype.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},e.prototype.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},e.prototype.getCursor=function(){return this.lead.getPosition()},e.prototype.setAnchor=function(e,t){this.$isEmpty=!1,this.anchor.setPosition(e,t)},e.prototype.getAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},e.prototype.getSelectionLead=function(){return this.lead.getPosition()},e.prototype.isBackwards=function(){var e=this.anchor,t=this.lead;return e.row>t.row||e.row==t.row&&e.column>t.column},e.prototype.getRange=function(){var e=this.anchor,t=this.lead;return this.$isEmpty?s.fromPoints(t,t):this.isBackwards()?s.fromPoints(t,e):s.fromPoints(e,t)},e.prototype.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},e.prototype.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},e.prototype.setRange=function(e,t){var n=t?e.end:e.start,o=t?e.start:e.end;this.$setSelection(n.row,n.column,o.row,o.column)},e.prototype.$setSelection=function(e,t,n,o){if(!this.$silent){var i=this.$isEmpty,r=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(e,t),this.cursor.setPosition(n,o),this.$isEmpty=!s.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),(this.$cursorChanged||this.$anchorChanged||i!=this.$isEmpty||r)&&this._emit("changeSelection")}},e.prototype.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},e.prototype.selectTo=function(e,t){this.$moveSelection((function(){this.moveCursorTo(e,t)}))},e.prototype.selectToPosition=function(e){this.$moveSelection((function(){this.moveCursorToPosition(e)}))},e.prototype.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},e.prototype.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},e.prototype.selectUp=function(){this.$moveSelection(this.moveCursorUp)},e.prototype.selectDown=function(){this.$moveSelection(this.moveCursorDown)},e.prototype.selectRight=function(){this.$moveSelection(this.moveCursorRight)},e.prototype.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},e.prototype.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},e.prototype.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},e.prototype.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},e.prototype.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},e.prototype.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},e.prototype.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},e.prototype.getWordRange=function(e,t){if(void 0===t){var n=e||this.lead;e=n.row,t=n.column}return this.session.getWordRange(e,t)},e.prototype.selectWord=function(){this.setSelectionRange(this.getWordRange())},e.prototype.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},e.prototype.getLineRange=function(e,t){var n,o="number"==typeof e?e:this.lead.row,i=this.session.getFoldLine(o);return i?(o=i.start.row,n=i.end.row):n=o,!0===t?new s(o,0,n,this.session.getLine(n).length):new s(o,0,n+1,0)},e.prototype.selectLine=function(){this.setSelectionRange(this.getLineRange())},e.prototype.moveCursorUp=function(){this.moveCursorBy(-1,0)},e.prototype.moveCursorDown=function(){this.moveCursorBy(1,0)},e.prototype.wouldMoveIntoSoftTab=function(e,t,n){var o=e.column,i=e.column+t;return n<0&&(o=e.column-t,i=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(o,i).split(" ").length-1==t},e.prototype.moveCursorLeft=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(0===t.column)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var n=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,n,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},e.prototype.moveCursorRight=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(e.end.row,e.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=o)}}this.moveCursorTo(t.row,t.column)},e.prototype.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},e.prototype.moveCursorFileStart=function(){this.moveCursorTo(0,0)},e.prototype.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),o=n.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var i=this.session.getFoldAt(e,t,1);if(i)this.moveCursorTo(i.end.row,i.end.column);else{if(this.session.nonTokenRe.exec(o)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,o=n.substring(t)),t>=n.length)return this.moveCursorTo(e,n.length),this.moveCursorRight(),void(e0&&this.moveCursorWordLeft());this.session.tokenRe.exec(r)&&(n-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,n)}},e.prototype.$shortWordEndIndex=function(e){var t,n=0,o=/\s/,i=this.session.tokenRe;if(i.lastIndex=0,this.session.tokenRe.exec(e))n=this.session.tokenRe.lastIndex;else{for(;(t=e[n])&&o.test(t);)n++;if(n<1)for(i.lastIndex=0;(t=e[n])&&!i.test(t);)if(i.lastIndex=0,n++,o.test(t)){if(n>2){n--;break}for(;(t=e[n])&&o.test(t);)n++;if(n>2)break}}return i.lastIndex=0,n},e.prototype.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),o=n.substring(t),i=this.session.getFoldAt(e,t,1);if(i)return this.moveCursorTo(i.end.row,i.end.column);if(t==n.length){var r=this.doc.getLength();do{e++,o=this.doc.getLine(e)}while(e0&&/^\s*$/.test(o));n=o.length,/\s+$/.test(o)||(o="")}var r=i.stringReverse(o),s=this.$shortWordEndIndex(r);return this.moveCursorTo(t,n-s)},e.prototype.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},e.prototype.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},e.prototype.moveCursorBy=function(e,t){var n,o=this.session.documentToScreenPosition(this.lead.row,this.lead.column);if(0===t&&(0!==e&&(this.session.$bidiHandler.isBidiRow(o.row,this.lead.row)?(n=this.session.$bidiHandler.getPosLeft(o.column),o.column=Math.round(n/this.session.$bidiHandler.charWidths[0])):n=o.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?o.column=this.$desiredColumn:this.$desiredColumn=o.column),0!=e&&this.session.lineWidgets&&this.session.lineWidgets[this.lead.row]){var i=this.session.lineWidgets[this.lead.row];e<0?e-=i.rowsAbove||0:e>0&&(e+=i.rowCount-(i.rowsAbove||0))}var r=this.session.screenToDocumentPosition(o.row+e,o.column,n);0!==e&&0===t&&r.row===this.lead.row&&(r.column,this.lead.column),this.moveCursorTo(r.row,r.column+t,0===t)},e.prototype.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},e.prototype.moveCursorTo=function(e,t,n){var o=this.session.getFoldAt(e,t,1);o&&(e=o.start.row,t=o.start.column),this.$keepDesiredColumnOnChange=!0;var i=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(i.charAt(t))&&i.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},e.prototype.moveCursorToScreen=function(e,t,n){var o=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(o.row,o.column,n)},e.prototype.detach=function(){this.lead.detach(),this.anchor.detach()},e.prototype.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},e.prototype.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},e.prototype.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var n=this.getCursor();return s.fromPoints(t,n)}catch(e){return s.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},e.prototype.toJSON=function(){if(this.rangeCount)var e=this.ranges.map((function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t}));else(e=this.getRange()).isBackwards=this.isBackwards();return e},e.prototype.fromJSON=function(e){if(null==e.start){if(this.rangeList&&e.length>1){this.toSingleRange(e[0]);for(var t=e.length;t--;){var n=s.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},e.prototype.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0},e}();a.prototype.setSelectionAnchor=a.prototype.setAnchor,a.prototype.getSelectionAnchor=a.prototype.getAnchor,a.prototype.setSelectionRange=a.prototype.setRange,o.implement(a.prototype,r),t.Selection=a})),ace.define("ace/tokenizer",["require","exports","module","ace/lib/report_error"],(function(e,t,n){"use strict";var o=e("./lib/report_error").reportError,i=2e3,r=function(){function e(e){for(var t in this.states=e,this.regExps={},this.matchMappings={},this.states){for(var n=this.states[t],o=[],i=0,r=this.matchMappings[t]={defaultToken:"text"},s="g",a=[],l=0;l1?this.$applyToken:c.token),h>1&&(/\\\d/.test(c.regex)?u=c.regex.replace(/\\([0-9]+)/g,(function(e,t){return"\\"+(parseInt(t,10)+i+1)})):(h=1,u=this.removeCapturingGroups(c.regex)),c.splitRegex||"string"==typeof c.token||a.push(c)),r[i]=l,i+=h,o.push(u),c.onMatch||(c.onMatch=null)}}o.length||(r[0]=0,o.push("$")),a.forEach((function(e){e.splitRegex=this.createSplitterRegexp(e.regex,s)}),this),this.regExps[t]=new RegExp("("+o.join(")|(")+")|($)",s)}}return e.prototype.$setMaxTokenCount=function(e){i=0|e},e.prototype.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),n=this.token.apply(this,t);if("string"==typeof n)return[{type:n,value:e}];for(var o=[],i=0,r=n.length;iu){var y=e.substring(u,f-m.length);d.type==p?d.value+=y:(d.type&&c.push(d),d={type:p,value:y})}for(var v=0;vi){for(h>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});u1&&n[0]!==o&&n.unshift("#tmp",o),{tokens:c,state:n.length?n:o}},e}();r.prototype.reportError=o,t.Tokenizer=r})),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/deep_copy"],(function(e,t,n){"use strict";var o=e("../lib/deep_copy").deepCopy,i=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(t)for(var n in e){for(var o=e[n],i=0;i=this.$rowTokens.length;){if(this.$row+=1,e||(e=this.$session.getLength()),this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},e.prototype.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},e.prototype.getCurrentTokenRow=function(){return this.$row},e.prototype.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,n=e[t].start;if(void 0!==n)return n;for(n=0;t>0;)n+=e[t-=1].value.length;return n},e.prototype.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},e.prototype.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new o(this.$row,t,this.$row,t+e.value.length)},e}();t.TokenIterator=i})),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],(function(e,t,n){"use strict";var o,i=e("../../lib/oop"),r=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,a=e("../../lib/lang"),l=["text","paren.rparen","rparen","paren","punctuation.operator"],c=["text","paren.rparen","rparen","paren","punctuation.operator","comment"],u={},h={'"':'"',"'":"'"},d=function(e){var t=-1;if(e.multiSelect&&(t=e.selection.index,u.rangeCount!=e.multiSelect.rangeCount&&(u={rangeCount:e.multiSelect.rangeCount})),u[t])return o=u[t];o=u[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},p=function(e,t,n,o){var i=e.end.row-e.start.row;return{text:n+t+o,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},g=function(e){e=e||{},this.add("braces","insertion",(function(t,n,i,r,s){var l=i.getCursorPosition(),c=r.doc.getLine(l.row);if("{"==s){d(i);var u=i.getSelectionRange(),h=r.doc.getTextRange(u);if(""!==h&&"{"!==h&&i.getWrapBehavioursEnabled())return p(u,h,"{","}");if(g.isSaneInsertion(i,r))return/[\]\}\)]/.test(c[l.column])||i.inMultiSelectMode||e.braces?(g.recordAutoInsert(i,r,"}"),{text:"{}",selection:[1,1]}):(g.recordMaybeInsert(i,r,"{"),{text:"{",selection:[1,1]})}else if("}"==s){if(d(i),"}"==c.substring(l.column,l.column+1)&&null!==r.$findOpeningBracket("}",{column:l.column+1,row:l.row})&&g.isAutoInsertedClosing(l,c,s))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}else{if("\n"==s||"\r\n"==s){d(i);var m="";if(g.isMaybeInsertedClosing(l,c)&&(m=a.stringRepeat("}",o.maybeInsertedBrackets),g.clearMaybeInsertedClosing()),"}"===c.substring(l.column,l.column+1)){var f=r.findMatchingBracket({row:l.row,column:l.column+1},"}");if(!f)return null;var y=this.$getIndent(r.getLine(f.row))}else{if(!m)return void g.clearMaybeInsertedClosing();y=this.$getIndent(c)}var v=y+r.getTabString();return{text:"\n"+v+"\n"+y+m,selection:[1,v.length,1,v.length]}}g.clearMaybeInsertedClosing()}})),this.add("braces","deletion",(function(e,t,n,i,r){var s=i.doc.getTextRange(r);if(!r.isMultiLine()&&"{"==s){if(d(n),"}"==i.doc.getLine(r.start.row).substring(r.end.column,r.end.column+1))return r.end.column++,r;o.maybeInsertedBrackets--}})),this.add("parens","insertion",(function(e,t,n,o,i){if("("==i){d(n);var r=n.getSelectionRange(),s=o.doc.getTextRange(r);if(""!==s&&n.getWrapBehavioursEnabled())return p(r,s,"(",")");if(g.isSaneInsertion(n,o))return g.recordAutoInsert(n,o,")"),{text:"()",selection:[1,1]}}else if(")"==i){d(n);var a=n.getCursorPosition(),l=o.doc.getLine(a.row);if(")"==l.substring(a.column,a.column+1)&&null!==o.$findOpeningBracket(")",{column:a.column+1,row:a.row})&&g.isAutoInsertedClosing(a,l,i))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}})),this.add("parens","deletion",(function(e,t,n,o,i){var r=o.doc.getTextRange(i);if(!i.isMultiLine()&&"("==r&&(d(n),")"==o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)))return i.end.column++,i})),this.add("brackets","insertion",(function(e,t,n,o,i){if("["==i){d(n);var r=n.getSelectionRange(),s=o.doc.getTextRange(r);if(""!==s&&n.getWrapBehavioursEnabled())return p(r,s,"[","]");if(g.isSaneInsertion(n,o))return g.recordAutoInsert(n,o,"]"),{text:"[]",selection:[1,1]}}else if("]"==i){d(n);var a=n.getCursorPosition(),l=o.doc.getLine(a.row);if("]"==l.substring(a.column,a.column+1)&&null!==o.$findOpeningBracket("]",{column:a.column+1,row:a.row})&&g.isAutoInsertedClosing(a,l,i))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}})),this.add("brackets","deletion",(function(e,t,n,o,i){var r=o.doc.getTextRange(i);if(!i.isMultiLine()&&"["==r&&(d(n),"]"==o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)))return i.end.column++,i})),this.add("string_dquotes","insertion",(function(e,t,n,o,i){var r=o.$mode.$quotes||h;if(1==i.length&&r[i]){if(this.lineCommentStart&&-1!=this.lineCommentStart.indexOf(i))return;d(n);var s=i,a=n.getSelectionRange(),l=o.doc.getTextRange(a);if(!(""===l||1==l.length&&r[l])&&n.getWrapBehavioursEnabled())return p(a,l,s,s);if(!l){var c=n.getCursorPosition(),u=o.doc.getLine(c.row),g=u.substring(c.column-1,c.column),m=u.substring(c.column,c.column+1),f=o.getTokenAt(c.row,c.column),y=o.getTokenAt(c.row,c.column+1);if("\\"==g&&f&&/escape/.test(f.type))return null;var v,b=f&&/string|escape/.test(f.type),w=!y||/string|escape/.test(y.type);if(m==s)(v=b!==w)&&/string\.end/.test(y.type)&&(v=!1);else{if(b&&!w)return null;if(b&&w)return null;var x=o.$mode.tokenRe;x.lastIndex=0;var k=x.test(g);x.lastIndex=0;var C=x.test(m),$=o.$mode.$pairQuotesAfter;if(!($&&$[s]&&$[s].test(g))&&k||C)return null;if(m&&!/[\s;,.})\]\\]/.test(m))return null;var S=u[c.column-2];if(g==s&&(S==s||x.test(S)))return null;v=!0}return{text:v?s+s:"",selection:[1,1]}}}})),this.add("string_dquotes","deletion",(function(e,t,n,o,i){var r=o.$mode.$quotes||h,s=o.doc.getTextRange(i);if(!i.isMultiLine()&&r.hasOwnProperty(s)&&(d(n),o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)==s))return i.end.column++,i})),!1!==e.closeDocComment&&this.add("doc comment end","insertion",(function(e,t,n,o,i){if("doc-start"===e&&("\n"===i||"\r\n"===i)&&n.selection.isEmpty()){var r=n.getCursorPosition(),s=o.doc.getLine(r.row),a=o.doc.getLine(r.row+1),l=this.$getIndent(s);if(/\s*\*/.test(a))return/^\s*\*/.test(s)?{text:i+l+"* ",selection:[1,3+l.length,1,3+l.length]}:{text:i+l+" * ",selection:[1,3+l.length,1,3+l.length]};if(/\/\*\*/.test(s.substring(0,r.column)))return{text:i+l+" * "+i+" "+l+"*/",selection:[1,4+l.length,1,4+l.length]}}}))};g.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),o=new s(t,n.row,n.column);if(!this.$matchTokenType(o.getCurrentToken()||"text",l)){if(/[)}\]]/.test(e.session.getLine(n.row)[n.column]))return!0;var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",l))return!1}return o.stepForward(),o.getCurrentTokenRow()!==n.row||this.$matchTokenType(o.getCurrentToken()||"text",c)},g.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},g.recordAutoInsert=function(e,t,n){var i=e.getCursorPosition(),r=t.doc.getLine(i.row);this.isAutoInsertedClosing(i,r,o.autoInsertedLineEnd[0])||(o.autoInsertedBrackets=0),o.autoInsertedRow=i.row,o.autoInsertedLineEnd=n+r.substr(i.column),o.autoInsertedBrackets++},g.recordMaybeInsert=function(e,t,n){var i=e.getCursorPosition(),r=t.doc.getLine(i.row);this.isMaybeInsertedClosing(i,r)||(o.maybeInsertedBrackets=0),o.maybeInsertedRow=i.row,o.maybeInsertedLineStart=r.substr(0,i.column)+n,o.maybeInsertedLineEnd=r.substr(i.column),o.maybeInsertedBrackets++},g.isAutoInsertedClosing=function(e,t,n){return o.autoInsertedBrackets>0&&e.row===o.autoInsertedRow&&n===o.autoInsertedLineEnd[0]&&t.substr(e.column)===o.autoInsertedLineEnd},g.isMaybeInsertedClosing=function(e,t){return o.maybeInsertedBrackets>0&&e.row===o.maybeInsertedRow&&t.substr(e.column)===o.maybeInsertedLineEnd&&t.substr(0,e.column)==o.maybeInsertedLineStart},g.popAutoInsertedClosing=function(){o.autoInsertedLineEnd=o.autoInsertedLineEnd.substr(1),o.autoInsertedBrackets--},g.clearMaybeInsertedClosing=function(){o&&(o.maybeInsertedBrackets=0,o.maybeInsertedRow=-1)},i.inherits(g,r),t.CstyleBehaviour=g})),ace.define("ace/unicode",["require","exports","module"],(function(e,t,n){"use strict";for(var o=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],i=0,r=[],s=0;s2?o%c!=c-1:o%c==0})}else{if(!this.blockComment)return!1;var p=this.blockComment.start,g=this.blockComment.end,m=new RegExp("^(\\s*)(?:"+l.escapeRegExp(p)+")"),f=new RegExp("(?:"+l.escapeRegExp(g)+")\\s*$"),y=function(e,t){b(e,t)||r&&!/\S/.test(e)||(i.insertInLine({row:t,column:e.length},g),i.insertInLine({row:t,column:a},p))},v=function(e,t){var n;(n=e.match(f))&&i.removeInLine(t,e.length-n[0].length,e.length),(n=e.match(m))&&i.removeInLine(t,n[1].length,n[0].length)},b=function(e,n){if(m.test(e))return!0;for(var o=t.getTokens(n),i=0;ie.length&&(x=e.length)})),a==1/0&&(a=x,r=!1,s=!1),u&&a%c!=0&&(a=Math.floor(a/c)*c),w(s?v:y)},this.toggleBlockComment=function(e,t,n,o){var i=this.blockComment;if(i){!i.start&&i[0]&&(i=i[0]);var r,s,a=(m=new c(t,o.row,o.column)).getCurrentToken(),l=(t.selection,t.selection.toOrientedRange());if(a&&/comment/.test(a.type)){for(var h,d;a&&/comment/.test(a.type);){if(-1!=(f=a.value.indexOf(i.start))){var p=m.getCurrentTokenRow(),g=m.getCurrentTokenColumn()+f;h=new u(p,g,p,g+i.start.length);break}a=m.stepBackward()}var m;for(a=(m=new c(t,o.row,o.column)).getCurrentToken();a&&/comment/.test(a.type);){var f;if(-1!=(f=a.value.indexOf(i.end))){p=m.getCurrentTokenRow(),g=m.getCurrentTokenColumn()+f,d=new u(p,g,p,g+i.end.length);break}a=m.stepForward()}d&&t.remove(d),h&&(t.remove(h),r=h.start.row,s=-i.start.length)}else s=i.start.length,r=n.start.row,t.insert(n.end,i.end),t.insert(n.start,i.start);l.start.row==r&&(l.start.column+=s),l.end.row==r&&(l.end.column+=s),t.selection.fromOrientedRange(l)}},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.autoOutdent=function(e,t,n){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){for(var t in this.$embeds=[],this.$modes={},e)if(e[t]){var n=e[t],i=n.prototype.$id,r=o.$modes[i];r||(o.$modes[i]=r=new n),o.$modes[t]||(o.$modes[t]=r),this.$embeds.push(t),this.$modes[t]=r}var s=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"];for(t=0;tthis.row)){var t=function(e,t,n){var o="insert"==e.action,i=(o?1:-1)*(e.end.row-e.start.row),r=(o?1:-1)*(e.end.column-e.start.column),a=e.start,l=o?a:e.end;return s(t,a,n)?{row:t.row,column:t.column}:s(l,t,!n)?{row:t.row+i,column:t.column+(t.row==l.row?r:0)}:{row:a.row,column:a.column}}(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(t.row,t.column,!0)}},e.prototype.setPosition=function(e,t,n){var o;if(o=n?{row:e,column:t}:this.$clipPositionToDocument(e,t),this.row!=o.row||this.column!=o.column){var i={row:this.row,column:this.column};this.row=o.row,this.column=o.column,this._signal("change",{old:i,value:o})}},e.prototype.detach=function(){this.document.off("change",this.$onChange)},e.prototype.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},e.prototype.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n},e}();function s(e,t,n){var o=n?e.column<=t.column:e.column=n&&(e=n-1,t=void 0);var o=this.getLine(e);return null==t&&(t=o.length),{row:e,column:t=Math.min(Math.max(t,0),o.length)}},e.prototype.clonePos=function(e){return{row:e.row,column:e.column}},e.prototype.pos=function(e,t){return{row:e,column:t}},e.prototype.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},e.prototype.insertFullLines=function(e,t){var n=0;(e=Math.min(Math.max(e,0),this.getLength()))0,o=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},e.prototype.replace=function(e,t){return e instanceof s||(e=s.fromPoints(e.start,e.end)),0===t.length&&e.isEmpty()?e.start:t==this.getTextRange(e)?e.end:(this.remove(e),t?this.insert(e.start,t):e.start)},e.prototype.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},e.prototype.applyDelta=function(e,t){var n="insert"==e.action;(n?e.lines.length<=1&&!e.lines[0]:!s.comparePoints(e.start,e.end))||(n&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(i(this.$lines,e,t),this._signal("change",e)))},e.prototype.$safeApplyDelta=function(e){var t=this.$lines.length;("remove"==e.action&&e.start.row20){n.running=setTimeout(n.$worker,20);break}}n.currentLine=t,-1==o&&(o=t),r<=o&&n.fireUpdateEvent(r,o)}}}return e.prototype.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},e.prototype.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},e.prototype.fireUpdateEvent=function(e,t){var n={first:e,last:t};this._signal("update",{data:n})},e.prototype.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},e.prototype.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},e.prototype.$updateOnChange=function(e){var t=e.start.row,n=e.end.row-t;if(0===n)this.lines[t]=null;else if("remove"==e.action)this.lines.splice(t,n+1,null),this.states.splice(t,n+1,null);else{var o=Array(n+1);o.unshift(t,1),this.lines.splice.apply(this.lines,o),this.states.splice.apply(this.states,o)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},e.prototype.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},e.prototype.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},e.prototype.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},e.prototype.$tokenizeRow=function(e){var t=this.doc.getLine(e),n=this.states[e-1],o=this.tokenizer.getLineTokens(t,n,e);return this.states[e]+""!=o.state+""?(this.states[e]=o.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=o.tokens},e.prototype.cleanup=function(){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.removeAllListeners()},e}();o.implement(r.prototype,i),t.BackgroundTokenizer=r})),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/range"],(function(e,t,n){"use strict";var o=e("./lib/lang"),i=e("./range").Range,r=function(){function e(e,t,n){void 0===n&&(n="text"),this.setRegexp(e),this.clazz=t,this.type=n}return e.prototype.setRegexp=function(e){this.regExp+""!=e+""&&(this.regExp=e,this.cache=[])},e.prototype.update=function(e,t,n,r){if(this.regExp)for(var s=r.firstRow,a=r.lastRow,l={},c=s;c<=a;c++){var u=this.cache[c];null==u&&((u=o.getMatchOffsets(n.getLine(c),this.regExp)).length>this.MAX_RANGES&&(u=u.slice(0,this.MAX_RANGES)),u=u.map((function(e){return new i(c,e.offset,c,e.offset+e.length)})),this.cache[c]=u.length?u:"");for(var h=u.length;h--;){var d=u[h].toScreenRange(n),p=d.toString();l[p]||(l[p]=!0,t.drawSingleLineMarker(e,d,this.clazz,r))}}},e}();r.prototype.MAX_RANGES=500,t.SearchHighlight=r})),ace.define("ace/undomanager",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=function(){function e(){this.$maxRev=0,this.$fromUndo=!1,this.$undoDepth=1/0,this.reset()}return e.prototype.addSession=function(e){this.$session=e},e.prototype.add=function(e,t,n){if(!this.$fromUndo&&e!=this.$lastDelta){if(this.$keepRedoStack||(this.$redoStack.length=0),!1===t||!this.lastDeltas){this.lastDeltas=[];var o=this.$undoStack.length;o>this.$undoDepth-1&&this.$undoStack.splice(0,o-this.$undoDepth+1),this.$undoStack.push(this.lastDeltas),e.id=this.$rev=++this.$maxRev}"remove"!=e.action&&"insert"!=e.action||(this.$lastDelta=e),this.lastDeltas.push(e)}},e.prototype.addSelection=function(e,t){this.selections.push({value:e,rev:t||this.$rev})},e.prototype.startNewGroup=function(){return this.lastDeltas=null,this.$rev},e.prototype.markIgnored=function(e,t){null==t&&(t=this.$rev+1);for(var n=this.$undoStack,o=n.length;o--;){var i=n[o][0];if(i.id<=e)break;i.id0},e.prototype.canRedo=function(){return this.$redoStack.length>0},e.prototype.bookmark=function(e){null==e&&(e=this.$rev),this.mark=e},e.prototype.isAtBookmark=function(){return this.$rev===this.mark},e.prototype.toJSON=function(){return{$redoStack:this.$redoStack,$undoStack:this.$undoStack}},e.prototype.fromJSON=function(e){this.reset(),this.$undoStack=e.$undoStack,this.$redoStack=e.$redoStack},e.prototype.$prettyPrint=function(e){return e?a(e):a(this.$undoStack)+"\n---\n"+a(this.$redoStack)},e}();o.prototype.hasUndo=o.prototype.canUndo,o.prototype.hasRedo=o.prototype.canRedo,o.prototype.isClean=o.prototype.isAtBookmark,o.prototype.markClean=o.prototype.bookmark;var i=e("./range").Range,r=i.comparePoints;function s(e){return{row:e.row,column:e.column}}function a(e){if(e=e||this,Array.isArray(e))return e.map(a).join("\n");var t="";return e.action?(t="insert"==e.action?"+":"-",t+="["+e.lines+"]"):e.value&&(t=Array.isArray(e.value)?e.value.map(l).join("\n"):l(e.value)),e.start&&(t+=l(e)),(e.id||e.rev)&&(t+="\t("+(e.id||e.rev)+")"),t}function l(e){return e.start.row+":"+e.start.column+"=>"+e.end.row+":"+e.end.column}function c(e,t){var n="insert"==e.action,o="insert"==t.action;if(n&&o)if(r(t.start,e.end)>=0)d(t,e,-1);else{if(!(r(t.start,e.start)<=0))return null;d(e,t,1)}else if(n&&!o)if(r(t.start,e.end)>=0)d(t,e,-1);else{if(!(r(t.end,e.start)<=0))return null;d(e,t,-1)}else if(!n&&o)if(r(t.start,e.start)>=0)d(t,e,1);else{if(!(r(t.start,e.start)<=0))return null;d(e,t,1)}else if(!n&&!o)if(r(t.start,e.start)>=0)d(t,e,1);else{if(!(r(t.end,e.start)<=0))return null;d(e,t,-1)}return[t,e]}function u(e,t){for(var n=e.length;n--;)for(var o=0;o=0?d(e,t,-1):(r(e.start,t.start)<=0||d(e,i.fromPoints(t.start,e.start),-1),d(t,e,1));else if(!n&&o)r(t.start,e.end)>=0?d(t,e,-1):(r(t.start,e.start)<=0||d(t,i.fromPoints(e.start,t.start),-1),d(e,t,1));else if(!n&&!o)if(r(t.start,e.end)>=0)d(t,e,-1);else{var s,a;if(!(r(t.end,e.start)<=0))return r(e.start,t.start)<0&&(s=e,e=g(e,t.start)),r(e.end,t.end)>0&&(a=g(e,t.end)),p(t.end,e.start,e.end,-1),a&&!s&&(e.lines=a.lines,e.start=a.start,e.end=a.end,a=e),[t,s,a].filter(Boolean);d(e,t,-1)}return[t,e]}function d(e,t,n){p(e.start,t.start,t.end,n),p(e.end,t.start,t.end,n)}function p(e,t,n,o){e.row==(1==o?t:n).row&&(e.column+=o*(n.column-t.column)),e.row+=o*(n.row-t.row)}function g(e,t){var n=e.lines,o=e.end;e.end=s(t);var i=e.end.row-e.start.row,r=n.splice(i,n.length),a=i?t.column:t.column-e.start.column;return n.push(r[0].substring(0,a)),r[0]=r[0].substr(a),{start:s(t),end:o,lines:r,action:e.action}}function m(e,t){t=function(e){return{start:s(e.start),end:s(e.end),action:e.action,lines:e.lines.slice()}}(t);for(var n=e.length;n--;){for(var o=e[n],i=0;ithis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort((function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)})),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},e.prototype.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},e.prototype.walk=function(e,t,n){var o,i,r=0,s=this.folds,a=!0;null==t&&(t=this.end.row,n=this.end.column);for(var l=0;l0)){var l=o(e,s.start);return 0===a?t&&0!==l?-r-2:r:l>0||0===l&&!t?r:-r-1}}return-r-1},e.prototype.add=function(e){var t=!e.isEmpty(),n=this.pointIndex(e.start,t);n<0&&(n=-n-1);var o=this.pointIndex(e.end,t,n);return o<0?o=-o-1:o++,this.ranges.splice(n,o-n,e)},e.prototype.addList=function(e){for(var t=[],n=e.length;n--;)t.push.apply(t,this.add(e[n]));return t},e.prototype.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},e.prototype.merge=function(){for(var e,t=[],n=this.ranges,i=(n=n.sort((function(e,t){return o(e.start,t.start)})))[0],r=1;r=0},e.prototype.containsPoint=function(e){return this.pointIndex(e)>=0},e.prototype.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},e.prototype.clipRows=function(e,t){var n=this.ranges;if(n[0].start.row>t||n[n.length-1].start.row=o);s++);if("insert"==e.action){for(var l=i-o,c=-t.column+n.column;so);s++)if(u.start.row==o&&u.start.column>=t.column&&(u.start.column==t.column&&this.$bias<=0||(u.start.column+=c,u.start.row+=l)),u.end.row==o&&u.end.column>=t.column){if(u.end.column==t.column&&this.$bias<0)continue;u.end.column==t.column&&c>0&&su.start.column&&u.end.column==r[s+1].start.column&&(u.end.column-=c),u.end.column+=c,u.end.row+=l}}else for(l=o-i,c=t.column-n.column;si);s++)u.end.rowt.column)&&(u.end.column=t.column,u.end.row=t.row):(u.end.column+=c,u.end.row+=l):u.end.row>i&&(u.end.row+=l),u.start.rowt.column)&&(u.start.column=t.column,u.start.row=t.row):(u.start.column+=c,u.start.row+=l):u.start.row>i&&(u.start.row+=l);if(0!=l&&s=e)return i;if(i.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var n=this.$foldData,o=0;for(t&&(o=n.indexOf(t)),-1==o&&(o=0);o=e)return i}return null},this.getFoldedRowCount=function(e,t){for(var n=this.$foldData,o=t-e+1,i=0;i=t){a=e?o-=t-a:o=0);break}s>=e&&(o-=a>=e?s-a:s-e+1)}return o},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort((function(e,t){return e.start.row-t.start.row})),e},this.addFold=function(e,t){var n,o=this.$foldData,s=!1;e instanceof r?n=e:(n=new r(t,e)).collapseChildren=t.collapseChildren,this.$clipRangeToDocument(n.range);var a=n.start.row,l=n.start.column,c=n.end.row,u=n.end.column,h=this.getFoldAt(a,l,1),d=this.getFoldAt(c,u,-1);if(h&&d==h)return h.addSubFold(n);h&&!h.range.isStart(a,l)&&this.removeFold(h),d&&!d.range.isEnd(c,u)&&this.removeFold(d);var p=this.getFoldsInRange(n.range);p.length>0&&(this.removeFolds(p),n.collapseChildren||p.forEach((function(e){n.addSubFold(e)})));for(var g=0;g0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach((function(e){this.expandFold(e)}),this)},this.unfold=function(e,t){var n,i;if(null==e)n=new o(0,0,this.getLength(),0),null==t&&(t=!0);else if("number"==typeof e)n=new o(e,0,e,this.getLine(e).length);else if("row"in e)n=o.fromPoints(e,e);else{if(Array.isArray(e))return i=[],e.forEach((function(e){i=i.concat(this.unfold(e))}),this),i;n=e}for(var r=i=this.getFoldsInRangeList(n);1==i.length&&o.comparePoints(i[0].start,n.start)<0&&o.comparePoints(i[0].end,n.end)>0;)this.expandFolds(i),i=this.getFoldsInRangeList(n);if(0!=t?this.removeFolds(i):this.expandFolds(i),r.length)return r},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var n=this.getFoldLine(e,t);return n?n.end.row:e},this.getRowFoldStart=function(e,t){var n=this.getFoldLine(e,t);return n?n.start.row:e},this.getFoldDisplayLine=function(e,t,n,o,i){null==o&&(o=e.start.row),null==i&&(i=0),null==t&&(t=e.end.row),null==n&&(n=this.getLine(t).length);var r=this.doc,s="";return e.walk((function(e,t,n,a){if(!(tu)break}while(r&&l.test(r.type)&&!/^comment.start/.test(r.type));r=i.stepBackward()}else r=i.getCurrentToken();return c.end.row=i.getCurrentTokenRow(),c.end.column=i.getCurrentTokenColumn(),/^comment.end/.test(r.type)||(c.end.column+=r.value.length-2),c}},this.foldAll=function(e,t,n,o){null==n&&(n=1e5);var i=this.foldWidgets;if(i){t=t||this.getLength();for(var r=e=e||0;r=e&&(r=s.end.row,s.collapseChildren=n,this.addFold("...",s))}}},this.foldToLevel=function(e){for(this.foldAll();e-- >0;)this.unfold(null,!1)},this.foldAllComments=function(){var e=this;this.foldAll(null,null,null,(function(t){for(var n=e.getTokens(t),o=0;o=0;){var r=n[i];if(null==r&&(r=n[i]=this.getFoldWidget(i)),"start"==r){var s=this.getFoldWidgetRange(i);if(o||(o=s),s&&s.end.row>=e)break}i--}return{range:-1!==i&&s,firstRange:o}},this.onFoldWidgetClick=function(e,t){t instanceof a&&(t=t.domEvent);var n={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey};if(!this.$toggleFoldWidget(e,n)){var o=t.target||t.srcElement;o&&/ace_fold-widget/.test(o.className)&&(o.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(this.getFoldWidget){var n=this.getFoldWidget(e),o=this.getLine(e),i="end"===n?-1:1,r=this.getFoldAt(e,-1===i?0:o.length,i);if(r)return t.children||t.all?this.removeFold(r):this.expandFold(r),r;var s=this.getFoldWidgetRange(e,!0);if(s&&!s.isMultiLine()&&(r=this.getFoldAt(s.start.row,s.start.column,1))&&s.isEqual(r.range))return this.removeFold(r),r;if(t.siblings){var a=this.getParentFoldRangeData(e);if(a.range)var l=a.range.start.row+1,c=a.range.end.row;this.foldAll(l,c,t.all?1e4:0)}else t.children?(c=s?s.end.row:this.getLength(),this.foldAll(e+1,c,t.all?1e4:0)):s&&(t.all&&(s.collapseChildren=1e4),this.addFold("...",s));return s}},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var n=this.$toggleFoldWidget(t,{});if(!n){var o=this.getParentFoldRangeData(t,!0);if(n=o.range||o.firstRange){t=n.start.row;var i=this.getFoldAt(t,this.getLine(t).length,1);i?this.removeFold(i):this.addFold("...",n)}}},this.updateFoldWidgets=function(e){var t=e.start.row,n=e.end.row-t;if(0===n)this.foldWidgets[t]=null;else if("remove"==e.action)this.foldWidgets.splice(t,n+1,null);else{var o=Array(n+1);o.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,o)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}})),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],(function(e,t,n){"use strict";var o=e("../token_iterator").TokenIterator,i=e("../range").Range;t.BracketMatch=function(){this.findMatchingBracket=function(e,t){if(0==e.column)return null;var n=t||this.getLine(e.row).charAt(e.column-1);if(""==n)return null;var o=n.match(/([\(\[\{])|([\)\]\}])/);return o?o[1]?this.$findClosingBracket(o[1],e):this.$findOpeningBracket(o[2],e):null},this.getBracketRange=function(e){var t,n=this.getLine(e.row),o=!0,r=n.charAt(e.column-1),s=r&&r.match(/([\(\[\{])|([\)\]\}])/);if(s||(r=n.charAt(e.column),e={row:e.row,column:e.column+1},s=r&&r.match(/([\(\[\{])|([\)\]\}])/),o=!1),!s)return null;if(s[1]){if(!(a=this.$findClosingBracket(s[1],e)))return null;t=i.fromPoints(e,a),o||(t.end.column++,t.start.column--),t.cursor=t.end}else{var a;if(!(a=this.$findOpeningBracket(s[2],e)))return null;t=i.fromPoints(a,e),o||(t.start.column++,t.end.column--),t.cursor=t.start}return t},this.getMatchingBracketRanges=function(e,t){var n=this.getLine(e.row),o=/([\(\[\{])|([\)\]\}])/,r=!t&&n.charAt(e.column-1),s=r&&r.match(o);if(s||(r=(void 0===t||t)&&n.charAt(e.column),e={row:e.row,column:e.column+1},s=r&&r.match(o)),!s)return null;var a=new i(e.row,e.column-1,e.row,e.column),l=s[1]?this.$findClosingBracket(s[1],e):this.$findOpeningBracket(s[2],e);return l?[a,new i(l.row,l.column,l.row,l.column+1)]:[a]},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(e,t,n){var i=this.$brackets[e],r=1,s=new o(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){n||(n=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)").replace(/-close\b/,"-(close|open)")+")+"));for(var l=t.column-s.getCurrentTokenColumn()-2,c=a.value;;){for(;l>=0;){var u=c.charAt(l);if(u==i){if(0==(r-=1))return{row:s.getCurrentTokenRow(),column:l+s.getCurrentTokenColumn()}}else u==e&&(r+=1);l-=1}do{a=s.stepBackward()}while(a&&!n.test(a.type));if(null==a)break;l=(c=a.value).length-1}return null}},this.$findClosingBracket=function(e,t,n){var i=this.$brackets[e],r=1,s=new o(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){n||(n=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)").replace(/-open\b/,"-(close|open)")+")+"));for(var l=t.column-s.getCurrentTokenColumn();;){for(var c=a.value,u=c.length;l"===t.value?o=!0:-1!==t.type.indexOf("tag-name")&&(n=!0))}while(t&&!n);return t},this.$findClosingTag=function(e,t){var n,o=t.value,r=t.value,s=0,a=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);t=e.stepForward();var l=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length),c=!1;do{if(n=t,t=e.stepForward()){if(">"===t.value&&!c){var u=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);c=!0}if(-1!==t.type.indexOf("tag-name")){if(r===(o=t.value))if("<"===n.value)s++;else if(""!==t.value)return;var p=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1)}}else r===o&&"/>"===t.value&&--s<0&&(p=d=h=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+2),u=new i(l.end.row,l.end.column,l.end.row,l.end.column+1))}}while(t&&s>=0);if(a&&u&&h&&p&&l&&d)return{openTag:new i(a.start.row,a.start.column,u.end.row,u.end.column),closeTag:new i(h.start.row,h.start.column,p.end.row,p.end.column),openTagName:l,closeTagName:d}},this.$findOpeningTag=function(e,t){var n=e.getCurrentToken(),o=t.value,r=0,s=e.getCurrentTokenRow(),a=e.getCurrentTokenColumn(),l=a+2,c=new i(s,a,s,l);e.stepForward();var u=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length);if((t=e.stepForward())&&">"===t.value){var h=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);e.stepBackward(),e.stepBackward();do{if(t=n,s=e.getCurrentTokenRow(),l=(a=e.getCurrentTokenColumn())+t.value.length,n=e.stepBackward(),t)if(-1!==t.type.indexOf("tag-name")){if(o===t.value)if("<"===n.value){if(++r>0){var d=new i(s,a,s,l),p=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);do{t=e.stepForward()}while(t&&">"!==t.value);var g=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1)}}else""===t.value){for(var m=0,f=n;f;){if(-1!==f.type.indexOf("tag-name")&&f.value===o){r--;break}if("<"===f.value)break;f=e.stepBackward(),m++}for(var y=0;yn&&(this.$docRowCache.splice(n,t),this.$screenRowCache.splice(n,t))},e.prototype.$getRowCacheIndex=function(e,t){for(var n=0,o=e.length-1;n<=o;){var i=n+o>>1,r=e[i];if(t>r)n=i+1;else{if(!(t=t);r++);return(n=o[r])?(n.index=r,n.start=i-n.value.length,n):null},e.prototype.setUndoManager=function(e){if(this.$undoManager=e,this.$informUndoManager&&this.$informUndoManager.cancel(),e){var t=this;e.addSession(this),this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.mergeUndoDeltas=!1},this.$informUndoManager=i.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},e.prototype.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},e.prototype.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},e.prototype.getTabString=function(){return this.getUseSoftTabs()?i.stringRepeat(" ",this.getTabSize()):"\t"},e.prototype.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},e.prototype.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},e.prototype.setTabSize=function(e){this.setOption("tabSize",e)},e.prototype.getTabSize=function(){return this.$tabSize},e.prototype.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize==0},e.prototype.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},e.prototype.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},e.prototype.setOverwrite=function(e){this.setOption("overwrite",e)},e.prototype.getOverwrite=function(){return this.$overwrite},e.prototype.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},e.prototype.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},e.prototype.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},e.prototype.getBreakpoints=function(){return this.$breakpoints},e.prototype.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(o=!!n.charAt(t-1).match(this.tokenRe)),o||(o=!!n.charAt(t).match(this.tokenRe)),o)var i=this.tokenRe;else i=/^\s+$/.test(n.slice(t-1,t+1))?/\s/:this.nonTokenRe;var r=t;if(r>0){do{r--}while(r>=0&&n.charAt(r).match(i));r++}for(var s=t;se&&(e=t.screenWidth)})),this.lineWidgetWidth=e},e.prototype.$computeWidth=function(e){if(this.$modified||e){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var t=this.doc.getAllLines(),n=this.$rowLengthCache,o=0,i=0,r=this.$foldData[i],s=r?r.start.row:1/0,a=t.length,l=0;ls){if((l=r.end.row+1)>=a)break;s=(r=this.$foldData[i++])?r.start.row:1/0}null==n[l]&&(n[l]=this.$getStringScreenWidth(t[l])[0]),n[l]>o&&(o=n[l])}this.screenWidth=o}},e.prototype.getLine=function(e){return this.doc.getLine(e)},e.prototype.getLines=function(e,t){return this.doc.getLines(e,t)},e.prototype.getLength=function(){return this.doc.getLength()},e.prototype.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},e.prototype.insert=function(e,t){return this.doc.insert(e,t)},e.prototype.remove=function(e){return this.doc.remove(e)},e.prototype.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},e.prototype.undoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var n=e.length-1;-1!=n;n--){var o=e[n];"insert"==o.action||"remove"==o.action?this.doc.revertDelta(o):o.folds&&this.addFolds(o.folds)}!t&&this.$undoSelect&&(e.selectionBefore?this.selection.fromJSON(e.selectionBefore):this.selection.setRange(this.$getUndoSelection(e,!0))),this.$fromUndo=!1}},e.prototype.redoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var n=0;ne.end.column&&(r.start.column+=c),r.end.row==e.end.row&&r.end.column>e.end.column&&(r.end.column+=c)),s&&r.start.row>=e.end.row&&(r.start.row+=s,r.end.row+=s)}if(r.end=this.insert(r.start,o),i.length){var a=e.start,l=r.start,c=(s=l.row-a.row,l.column-a.column);this.addFolds(i.map((function(e){return(e=e.clone()).start.row==a.row&&(e.start.column+=c),e.end.row==a.row&&(e.end.column+=c),e.start.row+=s,e.end.row+=s,e})))}return r},e.prototype.indentRows=function(e,t,n){n=n.replace(/\t/g,this.getTabString());for(var o=e;o<=t;o++)this.doc.insertInLine({row:o,column:0},n)},e.prototype.outdentRows=function(e){for(var t=e.collapseRows(),n=new u(0,0,0,0),o=this.getTabSize(),i=t.start.row;i<=t.end.row;++i){var r=this.getLine(i);n.start.row=i,n.end.row=i;for(var s=0;s0){var i;if((i=this.getRowFoldEnd(t+n))>this.doc.getLength()-1)return 0;o=i-t}else e=this.$clipRowToDocument(e),o=(t=this.$clipRowToDocument(t))-e+1;var r=new u(e,0,t,Number.MAX_VALUE),s=this.getFoldsInRange(r).map((function(e){return(e=e.clone()).start.row+=o,e.end.row+=o,e})),a=0==n?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+o,a),s.length&&this.addFolds(s),o},e.prototype.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},e.prototype.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},e.prototype.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},e.prototype.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},e.prototype.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},e.prototype.$clipPositionToDocument=function(e,t){if(t=Math.max(0,t),e<0)e=0,t=0;else{var n=this.doc.getLength();e>=n?(e=n-1,t=this.doc.getLine(n-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},e.prototype.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},e.prototype.setUseWrapMode=function(e){if(e!=this.$useWrapMode){if(this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0),e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},e.prototype.getUseWrapMode=function(){return this.$useWrapMode},e.prototype.setWrapLimitRange=function(e,t){this.$wrapLimitRange.min===e&&this.$wrapLimitRange.max===t||(this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},e.prototype.adjustWrapLimit=function(e,t){var n=this.$wrapLimitRange;n.max<0&&(n={min:t,max:t});var o=this.$constrainWrapLimit(e,n.min,n.max);return o!=this.$wrapLimit&&o>1&&(this.$wrapLimit=o,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0)},e.prototype.$constrainWrapLimit=function(e,t,n){return t&&(e=Math.max(t,e)),n&&(e=Math.min(n,e)),e},e.prototype.getWrapLimit=function(){return this.$wrapLimit},e.prototype.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},e.prototype.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},e.prototype.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,n=e.action,o=e.start,i=e.end,r=o.row,s=i.row,a=s-r,l=null;if(this.$updating=!0,0!=a)if("remove"===n){this[t?"$wrapData":"$rowLengthCache"].splice(r,a);var c=this.$foldData;l=this.getFoldsInRange(e),this.removeFolds(l);var u=0;if(m=this.getFoldLine(i.row)){m.addRemoveChars(i.row,i.column,o.column-i.column),m.shiftRow(-a);var h=this.getFoldLine(r);h&&h!==m&&(h.merge(m),m=h),u=c.indexOf(m)+1}for(;u=i.row&&m.shiftRow(-a);s=r}else{var d=Array(a);d.unshift(r,0);var p=t?this.$wrapData:this.$rowLengthCache;if(p.splice.apply(p,d),c=this.$foldData,u=0,m=this.getFoldLine(r)){var g=m.range.compareInside(o.row,o.column);0==g?(m=m.split(o.row,o.column))&&(m.shiftRow(a),m.addRemoveChars(s,0,i.column-o.column)):-1==g&&(m.addRemoveChars(r,0,i.column-o.column),m.shiftRow(a)),u=c.indexOf(m)+1}for(;u=r&&m.shiftRow(a)}}else a=Math.abs(e.start.column-e.end.column),"remove"===n&&(l=this.getFoldsInRange(e),this.removeFolds(l),a=-a),(m=this.getFoldLine(r))&&m.addRemoveChars(r,o.column,a);return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(r,s):this.$updateRowLengthCache(r,s),l},e.prototype.$updateRowLengthCache=function(e,t,n){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},e.prototype.$updateWrapData=function(e,t){var n,o,i=this.doc.getAllLines(),r=this.getTabSize(),s=this.$wrapData,a=this.$wrapLimit,l=e;for(t=Math.min(t,i.length-1);l<=t;)(o=this.getFoldLine(l,o))?(n=[],o.walk(function(e,t,o,r){var s;if(null!=e){(s=this.$getDisplayTokens(e,n.length))[0]=v;for(var a=1;at-h;){var d=r+t-h;if(e[d-1]>=x&&e[d]>=x)u(d);else if(e[d]!=v&&e[d]!=b){for(var p=Math.max(d-(t-(t>>2)),r-1);d>p&&e[d]p&&e[d]p&&e[d]==w;)d--}else for(;d>p&&e[d]p?u(++d):(e[d=r+t]==y&&d--,u(d-h))}else{for(;d!=r-1&&e[d]!=v;d--);if(d>r){u(d);continue}for(d=r+t;d39&&r<48||r>57&&r<64?o.push(w):r>=4352&&$(r)?o.push(f,y):o.push(f)}return o},e.prototype.$getStringScreenWidth=function(e,t,n){if(0==t)return[0,0];var o,i;for(null==t&&(t=1/0),n=n||0,i=0;i=4352&&$(o)?n+=2:n+=1,!(n>t));i++);return[n,i]},e.prototype.getRowLength=function(e){var t=1;return this.lineWidgets&&(t+=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0),this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+t:t},e.prototype.getRowLineCount=function(e){return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1:1},e.prototype.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),n=this.$wrapData[t.row];return n.length&&n[0]=0){a=c[u],r=this.$docRowCache[u];var d=e>c[h-1]}else d=!h;for(var p=this.getLength()-1,g=this.getNextFoldLine(r),m=g?g.start.row:1/0;a<=e&&!(a+(l=this.getRowLength(r))>e||r>=p);)a+=l,++r>m&&(r=g.end.row+1,m=(g=this.getNextFoldLine(r,g))?g.start.row:1/0),d&&(this.$docRowCache.push(r),this.$screenRowCache.push(a));if(g&&g.start.row<=r)o=this.getFoldDisplayLine(g),r=g.start.row;else{if(a+l<=e||r>p)return{row:p,column:this.getLine(p).length};o=this.getLine(r),g=null}var f=0,y=Math.floor(e-a);if(this.$useWrapMode){var v=this.$wrapData[r];v&&(i=v[y],y>0&&v.length&&(f=v.indent,s=v[y-1]||v[v.length-1],o=o.substring(s)))}return void 0!==n&&this.$bidiHandler.isBidiRow(a+y,r,y)&&(t=this.$bidiHandler.offsetToCol(n)),s+=this.$getStringScreenWidth(o,t-f)[1],this.$useWrapMode&&s>=i&&(s=i-1),g?g.idxToPosition(s):{row:r,column:s}},e.prototype.documentToScreenPosition=function(e,t){if(void 0===t)var n=this.$clipPositionToDocument(e.row,e.column);else n=this.$clipPositionToDocument(e,t);e=n.row,t=n.column;var o,i=0,r=null;(o=this.getFoldAt(e,t,1))&&(e=o.start.row,t=o.start.column);var s,a=0,l=this.$docRowCache,c=this.$getRowCacheIndex(l,e),u=l.length;if(u&&c>=0){a=l[c],i=this.$screenRowCache[c];var h=e>l[u-1]}else h=!u;for(var d=this.getNextFoldLine(a),p=d?d.start.row:1/0;a=p){if((s=d.end.row+1)>e)break;p=(d=this.getNextFoldLine(s,d))?d.start.row:1/0}else s=a+1;i+=this.getRowLength(a),a=s,h&&(this.$docRowCache.push(a),this.$screenRowCache.push(i))}var g="";d&&a>=p?(g=this.getFoldDisplayLine(d,e,t),r=d.start.row):(g=this.getLine(e).substring(0,t),r=e);var m=0;if(this.$useWrapMode){var f=this.$wrapData[r];if(f){for(var y=0;g.length>=f[y];)i++,y++;g=g.substring(f[y-1]||0,g.length),m=y>0?f.indent:0}}return this.lineWidgets&&this.lineWidgets[a]&&this.lineWidgets[a].rowsAbove&&(i+=this.lineWidgets[a].rowsAbove),{row:i,column:m+this.$getStringScreenWidth(g)[0]}},e.prototype.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},e.prototype.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},e.prototype.getScreenLength=function(){var e=0,t=null;if(this.$useWrapMode)for(var n=this.$wrapData.length,o=0,i=(a=0,(t=this.$foldData[a++])?t.start.row:1/0);oi&&(o=t.end.row+1,i=(t=this.$foldData[a++])?t.start.row:1/0)}else{e=this.getLength();for(var s=this.$foldData,a=0;an);r++);return[o,r]})},e.prototype.destroy=function(){this.destroyed||(this.bgTokenizer.setDocument(null),this.bgTokenizer.cleanup(),this.destroyed=!0),this.$stopWorker(),this.removeAllListeners(),this.doc&&this.doc.off("change",this.$onChange),this.selection.detach()},e}();m.$uid=0,m.prototype.$modes=s.$modes,m.prototype.getValue=m.prototype.toString,m.prototype.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},m.prototype.$overwrite=!1,m.prototype.$mode=null,m.prototype.$modeId=null,m.prototype.$scrollTop=0,m.prototype.$scrollLeft=0,m.prototype.$wrapLimit=80,m.prototype.$useWrapMode=!1,m.prototype.$wrapLimitRange={min:null,max:null},m.prototype.lineWidgets=null,m.prototype.isFullWidth=$,o.implement(m.prototype,a);var f=1,y=2,v=3,b=4,w=9,x=10,k=11,C=12;function $(e){return!(e<4352)&&(e>=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510)}e("./edit_session/folding").Folding.call(m.prototype),e("./edit_session/bracket_match").BracketMatch.call(m.prototype),s.defineOptions(m.prototype,"session",{wrap:{set:function(e){if(e&&"off"!=e?"free"==e?e=!0:"printMargin"==e?e=-1:"string"==typeof e&&(e=parseInt(e,10)||!1):e=!1,this.$wrap!=e)if(this.$wrap=e,e){var t="number"==typeof e?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}else this.setUseWrapMode(!1)},get:function(){return this.getUseWrapMode()?-1==this.$wrap?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){(e="auto"==e?"text"!=this.$mode.type:"text"!=e)!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){(e=parseInt(e))>0&&this.$tabSize!==e&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function(e){this.setFoldStyle(e)},handlesSet:!0},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId},handlesSet:!0}}),t.EditSession=m})),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],(function(e,t,n){"use strict";var o=e("./lib/lang"),i=e("./lib/oop"),r=e("./range").Range,s=function(){function e(){this.$options={}}return e.prototype.set=function(e){return i.mixin(this.$options,e),this},e.prototype.getOptions=function(){return o.copyObject(this.$options)},e.prototype.setOptions=function(e){this.$options=e},e.prototype.find=function(e){var t=this.$options,n=this.$matchIterator(e,t);if(!n)return!1;var o=null;return n.forEach((function(e,n,i,s){return o=new r(e,n,i,s),!(n==s&&t.start&&t.start.start&&0!=t.skipCurrent&&o.isEqual(t.start)&&(o=null,1))})),o},e.prototype.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var n=t.range,i=n?e.getLines(n.start.row,n.end.row):e.doc.getAllLines(),s=[],a=t.re;if(t.$isMultiLine){var l,c=a.length,u=i.length-c;e:for(var h=a.offset||0;h<=u;h++){for(var d=0;dm||(s.push(l=new r(h,m,h+c-1,f)),c>2&&(h=h+c-2))}}else for(var y=0;yx&&s[d].end.row==k;)d--;for(s=s.slice(y,d+1),y=0,d=s.length;y=c;n--)if(p(n,Number.MAX_VALUE,e))return;if(0!=t.wrap)for(n=u,c=l.row;n>=c;n--)if(p(n,Number.MAX_VALUE,e))return}};else h=function(e){var n=l.row;if(!p(n,l.column,e)){for(n+=1;n<=u;n++)if(p(n,0,e))return;if(0!=t.wrap)for(n=c,u=l.row;n<=u;n++)if(p(n,0,e))return}};if(t.$isMultiLine)var d=n.length,p=function(t,o,r){var s=i?t-d+1:t;if(!(s<0||s+d>e.getLength())){var a=e.getLine(s),l=a.search(n[0]);if(!(!i&&lo))return!!r(s,l,s+d-1,u)||void 0}}};else p=i?function(t,i,r){var a,l=e.getLine(t),c=[],u=0;for(n.lastIndex=0;a=n.exec(l);){var h=a[0].length;if(u=a.index,!h){if(u>=l.length)break;n.lastIndex=u+=o.skipEmptyMatch(l,u,s)}if(a.index+h>i)break;c.push(a.index,h)}for(var d=c.length-1;d>=0;d-=2){var p=c[d-1];if(r(t,p,t,p+(h=c[d])))return!0}}:function(t,i,r){var a,l,c=e.getLine(t);for(n.lastIndex=i;l=n.exec(c);){var u=l[0].length;if(r(t,a=l.index,t,a+u))return!0;if(!u&&(n.lastIndex=a+=o.skipEmptyMatch(c,a,s),a>=c.length))return!1}};return{forEach:h}},e}();t.Search=s})),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("../lib/keys"),s=e("../lib/useragent"),a=r.KEY_MODS,l=function(){function e(e,t){this.$init(e,t,!1)}return e.prototype.$init=function(e,t,n){this.platform=t||(s.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=n},e.prototype.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},e.prototype.removeCommand=function(e,t){var n=e&&("string"==typeof e?e:e.name);e=this.commands[n],t||delete this.commands[n];var o=this.commandKeyBinding;for(var i in o){var r=o[i];if(r==e)delete o[i];else if(Array.isArray(r)){var s=r.indexOf(e);-1!=s&&(r.splice(s,1),1==r.length&&(o[i]=r[0]))}}},e.prototype.bindKey=function(e,t,n){if("object"==typeof e&&e&&(null==n&&(n=e.position),e=e[this.platform]),e)return"function"==typeof t?this.addCommand({exec:t,bindKey:e,name:t.name||e}):void e.split("|").forEach((function(e){var o="";if(-1!=e.indexOf(" ")){var i=e.split(/\s+/);e=i.pop(),i.forEach((function(e){var t=this.parseKeys(e),n=a[t.hashId]+t.key;o+=(o?" ":"")+n,this._addCommandToBinding(o,"chainKeys")}),this),o+=" "}var r=this.parseKeys(e),s=a[r.hashId]+r.key;this._addCommandToBinding(o+s,t,n)}),this)},e.prototype._addCommandToBinding=function(e,t,n){var o,i=this.commandKeyBinding;if(t)if(!i[e]||this.$singleCommand)i[e]=t;else{Array.isArray(i[e])?-1!=(o=i[e].indexOf(t))&&i[e].splice(o,1):i[e]=[i[e]],"number"!=typeof n&&(n=c(t));var r=i[e];for(o=0;on);o++);r.splice(o,0,t)}else delete i[e]},e.prototype.addCommands=function(e){e&&Object.keys(e).forEach((function(t){var n=e[t];if(n){if("string"==typeof n)return this.bindKey(n,t);"function"==typeof n&&(n={exec:n}),"object"==typeof n&&(n.name||(n.name=t),this.addCommand(n))}}),this)},e.prototype.removeCommands=function(e){Object.keys(e).forEach((function(t){this.removeCommand(e[t])}),this)},e.prototype.bindKeys=function(e){Object.keys(e).forEach((function(t){this.bindKey(t,e[t])}),this)},e.prototype._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},e.prototype.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter((function(e){return e})),n=t.pop(),o=r[n];if(r.FUNCTION_KEYS[o])n=r.FUNCTION_KEYS[o].toLowerCase();else{if(!t.length)return{key:n,hashId:-1};if(1==t.length&&"shift"==t[0])return{key:n.toUpperCase(),hashId:-1}}for(var i=0,s=t.length;s--;){var a=r.KEY_MODS[t[s]];if(null==a)return"undefined"!=typeof console&&console.error("invalid modifier "+t[s]+" in "+e),!1;i|=a}return{key:n,hashId:i}},e.prototype.findKeyCommand=function(e,t){var n=a[e]+t;return this.commandKeyBinding[n]},e.prototype.handleKeyboard=function(e,t,n,o){if(!(o<0)){var i=a[t]+n,r=this.commandKeyBinding[i];return e.$keyChain&&(e.$keyChain+=" "+i,r=this.commandKeyBinding[e.$keyChain]||r),!r||"chainKeys"!=r&&"chainKeys"!=r[r.length-1]?(e.$keyChain&&(t&&4!=t||1!=n.length?(-1==t||o>0)&&(e.$keyChain=""):e.$keyChain=e.$keyChain.slice(0,-i.length-1)),{command:r}):(e.$keyChain=e.$keyChain||i,{command:"null"})}},e.prototype.getStatusText=function(e,t){return t.$keyChain||""},e}();function c(e){return"object"==typeof e&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}var u=function(e){function t(t,n){var o=e.call(this,t,n)||this;return o.$singleCommand=!0,o}return i(t,e),t}(l);u.call=function(e,t,n){l.prototype.$init.call(e,t,n,!0)},l.call=function(e,t,n){l.prototype.$init.call(e,t,n,!1)},t.HashHandler=u,t.MultiHashHandler=l})),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("../lib/oop"),s=e("../keyboard/hash_handler").MultiHashHandler,a=e("../lib/event_emitter").EventEmitter,l=function(e){function t(t,n){var o=e.call(this,n,t)||this;return o.byName=o.commands,o.setDefaultHandler("exec",(function(e){return e.args?e.command.exec(e.editor,e.args,e.event,!1):e.command.exec(e.editor,{},e.event,!0)})),o}return i(t,e),t.prototype.exec=function(e,t,n){if(Array.isArray(e)){for(var o=e.length;o--;)if(this.exec(e[o],t,n))return!0;return!1}if("string"==typeof e&&(e=this.commands[e]),!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;if(0!=this.$checkCommandState&&e.isAvailable&&!e.isAvailable(t))return!1;var i={editor:t,command:e,args:n};return i.returnValue=this._emit("exec",i),this._signal("afterExec",i),!1!==i.returnValue},t.prototype.toggleRecording=function(e){if(!this.$inReplay)return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.off("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},t.prototype.replay=function(e){if(!this.$inReplay&&this.macro){if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach((function(t){"string"==typeof t?this.exec(t,e):this.exec(t[0],e,t[1])}),this)}finally{this.$inReplay=!1}}},t.prototype.trimMacro=function(e){return e.map((function(e){return"string"!=typeof e[0]&&(e[0]=e[0].name),e[1]||(e=e[0]),e}))},t}(s);r.implement(l.prototype,a),t.CommandManager=l})),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],(function(e,t,n){"use strict";var o=e("../lib/lang"),i=e("../config"),r=e("../range").Range;function s(e,t){return{win:e,mac:t}}t.commands=[{name:"showSettingsMenu",description:"Show settings menu",bindKey:s("Ctrl-,","Command-,"),exec:function(e){i.loadModule("ace/ext/settings_menu",(function(t){t.init(e),e.showSettingsMenu()}))},readOnly:!0},{name:"goToNextError",description:"Go to next error",bindKey:s("Alt-E","F4"),exec:function(e){i.loadModule("ace/ext/error_marker",(function(t){t.showErrorMarker(e,1)}))},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",description:"Go to previous error",bindKey:s("Alt-Shift-E","Shift-F4"),exec:function(e){i.loadModule("ace/ext/error_marker",(function(t){t.showErrorMarker(e,-1)}))},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:s("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:s(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:s("Ctrl-L","Command-L"),exec:function(e,t){"number"!=typeof t||isNaN(t)||e.gotoLine(t),e.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:s("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:s("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",description:"Toggle fold widget",bindKey:s("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",description:"Toggle parent fold widget",bindKey:s("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:s(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldAllComments",description:"Fold all comments",bindKey:s(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAllComments()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:s("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:s("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:s("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:s("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:s("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:s("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:s("Ctrl-F","Command-F"),exec:function(e){i.loadModule("ace/ext/searchbox",(function(t){t.Search(e)}))},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:s("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:s("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:s("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:s("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:s("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:s("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:s("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:s("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:s("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:s("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:s("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:s("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:s("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:s("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:s("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:s("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:s("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:s("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:s("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:s("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:s(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:s("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:s(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:s("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:s("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:s("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:s("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:s("Ctrl-\\|Ctrl-P","Command-\\"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:s("Ctrl-Shift-\\|Ctrl-Shift-P","Command-Shift-\\"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:s("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:s(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(e){},readOnly:!0},{name:"cut",description:"Cut",exec:function(e){var t=e.$copyWithEmptySelection&&e.selection.isEmpty()?e.selection.getLineRange():e.selection.getRange();e._emit("cut",t),t.isEmpty()||e.session.remove(t),e.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:s("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:s("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:s("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:s("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:s("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:s("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:s("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:s("Ctrl-H","Command-Option-F"),exec:function(e){i.loadModule("ace/ext/searchbox",(function(t){t.Search(e,!0)}))}},{name:"undo",description:"Undo",bindKey:s("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",description:"Redo",bindKey:s("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:s("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:s("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:s("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:s("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:s("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:s("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:s("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:s("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:s("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:s("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:s("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:s("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:s("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:s("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:s("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:s("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:s("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(e,t){e.insert(o.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:s(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:s("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:s("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:s("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"autoindent",description:"Auto Indent",bindKey:s(null,null),exec:function(e){e.autoIndent()},multiSelectAction:"forEachLine",scrollIntoView:"animate"},{name:"expandtoline",description:"Expand to line",bindKey:s("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"openlink",bindKey:s("Ctrl+F3","F3"),exec:function(e){e.openLink()}},{name:"joinlines",description:"Join lines",bindKey:s(null,null),exec:function(e){for(var t=e.selection.isBackwards(),n=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),i=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),s=e.session.doc.getLine(n.row).length,a=e.session.doc.getTextRange(e.selection.getRange()).replace(/\n\s*/," ").length,l=e.session.doc.getLine(n.row),c=n.row+1;c<=i.row+1;c++){var u=o.stringTrimLeft(o.stringTrimRight(e.session.doc.getLine(c)));0!==u.length&&(u=" "+u),l+=u}i.row+10?(e.selection.moveCursorTo(n.row,n.column),e.selection.selectTo(n.row,n.column+a)):(s=e.session.doc.getLine(n.row).length>s?s+1:s,e.selection.moveCursorTo(n.row,s))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:s(null,null),exec:function(e){var t=e.session.doc.getLength()-1,n=e.session.doc.getLine(t).length,o=e.selection.rangeList.ranges,i=[];o.length<1&&(o=[e.selection.getRange()]);for(var s=0;st[n].column&&n++,r.unshift(n,0),t.splice.apply(t,r),this.$updateRows()}}},e.prototype.$updateRows=function(){var e=this.session.lineWidgets;if(e){var t=!0;e.forEach((function(e,n){if(e)for(t=!1,e.row=n;e.$oldWidget;)e.$oldWidget.row=n,e=e.$oldWidget})),t&&(this.session.lineWidgets=null)}},e.prototype.$registerLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var t=this.session.lineWidgets[e.row];return t&&(e.$oldWidget=t,t.el&&t.el.parentNode&&(t.el.parentNode.removeChild(t.el),t._inDocument=!1)),this.session.lineWidgets[e.row]=e,e},e.prototype.addLineWidget=function(e){if(this.$registerLineWidget(e),e.session=this.session,!this.editor)return e;var t=this.editor.renderer;e.html&&!e.el&&(e.el=o.createElement("div"),e.el.innerHTML=e.html),e.text&&!e.el&&(e.el=o.createElement("div"),e.el.textContent=e.text),e.el&&(o.addCssClass(e.el,"ace_lineWidgetContainer"),e.className&&o.addCssClass(e.el,e.className),e.el.style.position="absolute",e.el.style.zIndex=5,t.container.appendChild(e.el),e._inDocument=!0,e.coverGutter||(e.el.style.zIndex=3),null==e.pixelHeight&&(e.pixelHeight=e.el.offsetHeight)),null==e.rowCount&&(e.rowCount=e.pixelHeight/t.layerConfig.lineHeight);var n=this.session.getFoldAt(e.row,0);if(e.$fold=n,n){var i=this.session.lineWidgets;e.row!=n.end.row||i[n.start.row]?e.hidden=!0:i[n.start.row]=e}return this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,t),this.onWidgetChanged(e),e},e.prototype.removeLineWidget=function(e){if(e._inDocument=!1,e.session=null,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el),e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(e){}if(this.session.lineWidgets){var t=this.session.lineWidgets[e.row];if(t==e)this.session.lineWidgets[e.row]=e.$oldWidget,e.$oldWidget&&this.onWidgetChanged(e.$oldWidget);else for(;t;){if(t.$oldWidget==e){t.$oldWidget=e.$oldWidget;break}t=t.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows()},e.prototype.getWidgetsAtRow=function(e){for(var t=this.session.lineWidgets,n=t&&t[e],o=[];n;)o.push(n),n=n.$oldWidget;return o},e.prototype.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},e.prototype.measureWidgets=function(e,t){var n=this.session._changedWidgets,o=t.layerConfig;if(n&&n.length){for(var i=1/0,r=0;r0&&!o[i];)i--;this.firstRow=n.firstRow,this.lastRow=n.lastRow,t.$cursorLayer.config=n;for(var s=i;s<=r;s++){var a=o[s];if(a&&a.el)if(a.hidden)a.el.style.top=-100-(a.pixelHeight||0)+"px";else{a._inDocument||(a._inDocument=!0,t.container.appendChild(a.el));var l=t.$cursorLayer.getPixelPosition({row:s,column:0},!0).top;a.coverLine||(l+=n.lineHeight*this.session.getRowLineCount(a.row)),a.el.style.top=l-n.offset+"px";var c=a.coverGutter?0:t.gutterWidth;a.fixedWidth||(c-=t.scrollLeft),a.el.style.left=c+"px",a.fullWidth&&a.screenWidth&&(a.el.style.minWidth=n.width+2*n.padding+"px"),a.fixedWidth?a.el.style.right=t.scrollBar.getWidth()+"px":a.el.style.right=""}}}},e}();t.LineWidgets=i})),ace.define("ace/keyboard/gutter_handler",["require","exports","module","ace/lib/keys","ace/mouse/default_gutter_handler"],(function(e,t,n){"use strict";var o=e("../lib/keys"),i=e("../mouse/default_gutter_handler").GutterTooltip,r=function(){function e(e){this.editor=e,this.gutterLayer=e.renderer.$gutterLayer,this.element=e.renderer.$gutter,this.lines=e.renderer.$gutterLayer.$lines,this.activeRowIndex=null,this.activeLane=null,this.annotationTooltip=new i(this.editor)}return e.prototype.addListener=function(){this.element.addEventListener("keydown",this.$onGutterKeyDown.bind(this)),this.element.addEventListener("focusout",this.$blurGutter.bind(this)),this.editor.on("mousewheel",this.$blurGutter.bind(this))},e.prototype.removeListener=function(){this.element.removeEventListener("keydown",this.$onGutterKeyDown.bind(this)),this.element.removeEventListener("focusout",this.$blurGutter.bind(this)),this.editor.off("mousewheel",this.$blurGutter.bind(this))},e.prototype.$onGutterKeyDown=function(e){if(this.annotationTooltip.isOpen)return e.preventDefault(),void(e.keyCode===o.escape&&this.annotationTooltip.hideTooltip());if(e.target===this.element){if(e.keyCode!=o.enter)return;e.preventDefault();var t=this.editor.getCursorPosition().row;return this.editor.isRowVisible(t)||this.editor.scrollToLine(t,!0,!0),void setTimeout(function(){var e=this.$rowToRowIndex(this.gutterLayer.$cursorCell.row),t=this.$findNearestFoldWidget(e),n=this.$findNearestAnnotation(e);if(null!==t||null!==n)return null===t&&null!==n?(this.activeRowIndex=n,this.activeLane="annotation",void this.$focusAnnotation(this.activeRowIndex)):null!==t&&null===n?(this.activeRowIndex=t,this.activeLane="fold",void this.$focusFoldWidget(this.activeRowIndex)):Math.abs(n-e)0||e+t=0&&this.$isFoldWidgetVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isFoldWidgetVisible(e+t))return e+t}return null},e.prototype.$findNearestAnnotation=function(e){if(this.$isAnnotationVisible(e))return e;for(var t=0;e-t>0||e+t=0&&this.$isAnnotationVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isAnnotationVisible(e+t))return e+t}return null},e.prototype.$focusFoldWidget=function(e){if(null!=e){var t=this.$getFoldWidget(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()}},e.prototype.$focusAnnotation=function(e){if(null!=e){var t=this.$getAnnotation(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()}},e.prototype.$blurFoldWidget=function(e){var t=this.$getFoldWidget(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},e.prototype.$blurAnnotation=function(e){var t=this.$getAnnotation(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},e.prototype.$moveFoldWidgetUp=function(){for(var e=this.activeRowIndex;e>0;)if(e--,this.$isFoldWidgetVisible(e))return this.$blurFoldWidget(this.activeRowIndex),this.activeRowIndex=e,void this.$focusFoldWidget(this.activeRowIndex)},e.prototype.$moveFoldWidgetDown=function(){for(var e=this.activeRowIndex;e0;)if(e--,this.$isAnnotationVisible(e))return this.$blurAnnotation(this.activeRowIndex),this.activeRowIndex=e,void this.$focusAnnotation(this.activeRowIndex)},e.prototype.$moveAnnotationDown=function(){for(var e=this.activeRowIndex;e=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},i=e("./lib/oop"),r=e("./lib/dom"),s=e("./lib/lang"),a=e("./lib/useragent"),l=e("./keyboard/textinput").TextInput,c=e("./mouse/mouse_handler").MouseHandler,u=e("./mouse/fold_handler").FoldHandler,h=e("./keyboard/keybinding").KeyBinding,d=e("./edit_session").EditSession,p=e("./search").Search,g=e("./range").Range,m=e("./lib/event_emitter").EventEmitter,f=e("./commands/command_manager").CommandManager,y=e("./commands/default_commands").commands,v=e("./config"),b=e("./token_iterator").TokenIterator,w=e("./line_widgets").LineWidgets,x=e("./keyboard/gutter_handler").GutterKeyboardHandler,k=e("./config").nls,C=e("./clipboard"),$=e("./lib/keys"),S=function(){function e(t,n,o){this.$toDestroy=[];var i=t.getContainerElement();this.container=i,this.renderer=t,this.id="editor"+ ++e.$uid,this.commands=new f(a.isMac?"mac":"win",y),"object"==typeof document&&(this.textInput=new l(t.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new c(this),new u(this)),this.keyBinding=new h(this),this.$search=(new p).set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=s.delayedCall(function(){this._signal("input",{}),this.session&&!this.session.destroyed&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",(function(e,t){t._$emitInputEvent.schedule(31)})),this.setSession(n||o&&o.session||new d("")),v.resetOptions(this),o&&this.setOptions(o),v._signal("editor",this)}return e.prototype.$initOperationListeners=function(){this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0),this.$opResetTimer=s.delayedCall(this.endOperation.bind(this,!0)),this.on("change",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.docChanged=!0}.bind(this),!0),this.on("changeSelection",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.selectionChanged=!0}.bind(this),!0)},e.prototype.startOperation=function(e){if(this.curOp){if(!e||this.curOp.command)return;this.prevOp=this.curOp}e||(this.previousCommand=null,e={}),this.$opResetTimer.schedule(),this.curOp=this.session.curOp={command:e.command||{},args:e.args,scrollTop:this.renderer.scrollTop},this.curOp.selectionBefore=this.selection.toJSON()},e.prototype.endOperation=function(e){if(this.curOp&&this.session){if(e&&!1===e.returnValue||!this.session)return this.curOp=null;if(1==e&&this.curOp.command&&"mouse"==this.curOp.command.name)return;if(this._signal("beforeEndOperation"),!this.curOp)return;var t=this.curOp.command,n=t&&t.scrollIntoView;if(n){switch(n){case"center-animate":n="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var o=this.selection.getRange(),i=this.renderer.layerConfig;(o.start.row>=i.lastRow||o.end.row<=i.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead)}"animate"==n&&this.renderer.animateScrolling(this.curOp.scrollTop)}var r=this.selection.toJSON();this.curOp.selectionAfter=r,this.$lastSel=this.selection.toJSON(),this.session.getUndoManager().addSelection(r),this.prevOp=this.curOp,this.curOp=null}},e.prototype.$historyTracker=function(e){if(this.$mergeUndoDeltas){var t=this.prevOp,n=this.$mergeableCommands,o=t.command&&e.command.name==t.command.name;if("insertstring"==e.command.name){var i=e.args;void 0===this.mergeNextCommand&&(this.mergeNextCommand=!0),o=o&&this.mergeNextCommand&&(!/\s/.test(i)||/\s/.test(t.args)),this.mergeNextCommand=!0}else o=o&&-1!==n.indexOf(e.command.name);"always"!=this.$mergeUndoDeltas&&Date.now()-this.sequenceStartTime>2e3&&(o=!1),o?this.session.mergeUndoDeltas=!0:-1!==n.indexOf(e.command.name)&&(this.sequenceStartTime=Date.now())}},e.prototype.setKeyboardHandler=function(e,t){if(e&&"string"==typeof e&&"ace"!=e){this.$keybindingId=e;var n=this;v.loadModule(["keybinding",e],(function(o){n.$keybindingId==e&&n.keyBinding.setKeyboardHandler(o&&o.handler),t&&t()}))}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},e.prototype.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},e.prototype.setSession=function(e){if(this.session!=e){this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var n=this.session.getSelection();n.off("changeCursor",this.$onCursorChange),n.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this}),e&&!e.destroyed&&e.bgTokenizer.scheduleStart()}},e.prototype.getSession=function(){return this.session},e.prototype.setValue=function(e,t){return this.session.doc.setValue(e),t?1==t?this.navigateFileEnd():-1==t&&this.navigateFileStart():this.selectAll(),e},e.prototype.getValue=function(){return this.session.getValue()},e.prototype.getSelection=function(){return this.selection},e.prototype.resize=function(e){this.renderer.onResize(e)},e.prototype.setTheme=function(e,t){this.renderer.setTheme(e,t)},e.prototype.getTheme=function(){return this.renderer.getTheme()},e.prototype.setStyle=function(e){this.renderer.setStyle(e)},e.prototype.unsetStyle=function(e){this.renderer.unsetStyle(e)},e.prototype.getFontSize=function(){return this.getOption("fontSize")||r.computedStyle(this.container).fontSize},e.prototype.setFontSize=function(e){this.setOption("fontSize",e)},e.prototype.$highlightBrackets=function(){if(!this.$highlightPending){var e=this;this.$highlightPending=!0,setTimeout((function(){e.$highlightPending=!1;var t=e.session;if(t&&!t.destroyed){t.$bracketHighlight&&(t.$bracketHighlight.markerIds.forEach((function(e){t.removeMarker(e)})),t.$bracketHighlight=null);var n=e.getCursorPosition(),o=e.getKeyboardHandler(),i=o&&o.$getDirectionForHighlight&&o.$getDirectionForHighlight(e),r=t.getMatchingBracketRanges(n,i);if(!r){var s=new b(t,n.row,n.column).getCurrentToken();if(s&&/\b(?:tag-open|tag-name)/.test(s.type)){var a=t.getMatchingTags(n);a&&(r=[a.openTagName,a.closeTagName])}}if(!r&&t.$mode.getMatching&&(r=t.$mode.getMatching(e.session)),r){var l="ace_bracket";Array.isArray(r)?1==r.length&&(l="ace_error_bracket"):r=[r],2==r.length&&(0==g.comparePoints(r[0].end,r[1].start)?r=[g.fromPoints(r[0].start,r[1].end)]:0==g.comparePoints(r[0].start,r[1].end)&&(r=[g.fromPoints(r[1].start,r[0].end)])),t.$bracketHighlight={ranges:r,markerIds:r.map((function(e){return t.addMarker(e,l,"text")}))},e.getHighlightIndentGuides()&&e.renderer.$textLayer.$highlightIndentGuide()}else e.getHighlightIndentGuides()&&e.renderer.$textLayer.$highlightIndentGuide()}}),50)}},e.prototype.focus=function(){this.textInput.focus()},e.prototype.isFocused=function(){return this.textInput.isFocused()},e.prototype.blur=function(){this.textInput.blur()},e.prototype.onFocus=function(e){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",e))},e.prototype.onBlur=function(e){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",e))},e.prototype.$cursorChange=function(){this.renderer.updateCursor(),this.$highlightBrackets(),this.$updateHighlightActiveLine()},e.prototype.onDocumentChange=function(e){var t=this.session.$useWrapMode,n=e.start.row==e.end.row?e.end.row:1/0;this.renderer.updateLines(e.start.row,n,t),this._signal("change",e),this.$cursorChange()},e.prototype.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},e.prototype.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},e.prototype.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},e.prototype.onCursorChange=function(){this.$cursorChange(),this._signal("changeSelection")},e.prototype.$updateHighlightActiveLine=function(){var e,t=this.getSession();if(this.$highlightActiveLine&&("line"==this.$selectionStyle&&this.selection.isMultiLine()||(e=this.getCursorPosition()),this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(e=!1),!this.renderer.$maxLines||1!==this.session.getLength()||this.renderer.$minLines>1||(e=!1)),t.$highlightLineMarker&&!e)t.removeMarker(t.$highlightLineMarker.id),t.$highlightLineMarker=null;else if(!t.$highlightLineMarker&&e){var n=new g(e.row,e.column,e.row,1/0);n.id=t.addMarker(n,"ace_active-line","screenLine"),t.$highlightLineMarker=n}else e&&(t.$highlightLineMarker.start.row=e.row,t.$highlightLineMarker.end.row=e.row,t.$highlightLineMarker.start.column=e.column,t._signal("changeBackMarker"))},e.prototype.onSelectionChange=function(e){var t=this.session;if(t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var n=this.selection.getRange(),o=this.getSelectionStyle();t.$selectionMarker=t.addMarker(n,"ace_selection",o)}var i=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(i),this._signal("changeSelection")},e.prototype.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(!t.isEmpty()&&!t.isMultiLine()){var n=t.start.column,o=t.end.column,i=e.getLine(t.start.row),r=i.substring(n,o);if(!(r.length>5e3)&&/[\w\d]/.test(r)){var s=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:r}),a=i.substring(n-1,o+1);if(s.test(a))return s}}},e.prototype.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},e.prototype.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},e.prototype.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},e.prototype.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},e.prototype.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},e.prototype.onChangeWrapLimit=function(){this.renderer.updateFull()},e.prototype.onChangeWrapMode=function(){this.renderer.onResize(!0)},e.prototype.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},e.prototype.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},e.prototype.getCopyText=function(){var e=this.getSelectedText(),t=this.session.doc.getNewLineCharacter(),n=!1;if(!e&&this.$copyWithEmptySelection){n=!0;for(var o=this.selection.getAllRanges(),i=0;ia.search(/\S|$/)){var l=a.substr(i.column).search(/\S|$/);n.doc.removeInLine(i.row,i.column,i.column+l)}}this.clearSelection();var c=i.column,u=n.getState(i.row),h=(a=n.getLine(i.row),o.checkOutdent(u,a,e));if(n.insert(i,e),r&&r.selection&&(2==r.selection.length?this.selection.setSelectionRange(new g(i.row,c+r.selection[0],i.row,c+r.selection[1])):this.selection.setSelectionRange(new g(i.row+r.selection[0],r.selection[1],i.row+r.selection[2],r.selection[3]))),this.$enableAutoIndent){if(n.getDocument().isNewLine(e)){var d=o.getNextLineIndent(u,a.slice(0,i.column),n.getTabString());n.insert({row:i.row+1,column:0},d)}h&&o.autoOutdent(u,n,i.row)}},e.prototype.autoIndent=function(){var e,t,n=this.session,o=n.getMode();if(this.selection.isEmpty())e=0,t=n.doc.getLength()-1;else{var i=this.getSelectionRange();e=i.start.row,t=i.end.row}for(var r,s,a,l="",c="",u="",h=n.getTabString(),d=e;d<=t;d++)d>0&&(l=n.getState(d-1),c=n.getLine(d-1),u=o.getNextLineIndent(l,c,h)),r=n.getLine(d),u!==(s=o.$getIndent(r))&&(s.length>0&&(a=new g(d,0,d,s.length),n.remove(a)),u.length>0&&n.insert({row:d,column:0},u)),o.autoOutdent(l,n,d)},e.prototype.onTextInput=function(e,t){if(!t)return this.keyBinding.onTextInput(e);this.startOperation({command:{name:"insertstring"}});var n=this.applyComposition.bind(this,e,t);this.selection.rangeCount?this.forEachSelection(n):n(),this.endOperation()},e.prototype.applyComposition=function(e,t){var n;(t.extendLeft||t.extendRight)&&((n=this.selection.getRange()).start.column-=t.extendLeft,n.end.column+=t.extendRight,n.start.column<0&&(n.start.row--,n.start.column+=this.session.getLine(n.start.row).length+1),this.selection.setRange(n),e||n.isEmpty()||this.remove()),!e&&this.selection.isEmpty()||this.insert(e,!0),(t.restoreStart||t.restoreEnd)&&((n=this.selection.getRange()).start.column-=t.restoreStart,n.end.column-=t.restoreEnd,this.selection.setRange(n))},e.prototype.onCommandKey=function(e,t,n){return this.keyBinding.onCommandKey(e,t,n)},e.prototype.setOverwrite=function(e){this.session.setOverwrite(e)},e.prototype.getOverwrite=function(){return this.session.getOverwrite()},e.prototype.toggleOverwrite=function(){this.session.toggleOverwrite()},e.prototype.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},e.prototype.getScrollSpeed=function(){return this.getOption("scrollSpeed")},e.prototype.setDragDelay=function(e){this.setOption("dragDelay",e)},e.prototype.getDragDelay=function(){return this.getOption("dragDelay")},e.prototype.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},e.prototype.getSelectionStyle=function(){return this.getOption("selectionStyle")},e.prototype.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},e.prototype.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},e.prototype.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},e.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},e.prototype.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},e.prototype.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},e.prototype.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},e.prototype.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},e.prototype.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},e.prototype.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},e.prototype.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},e.prototype.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},e.prototype.setHighlightIndentGuides=function(e){this.renderer.setHighlightIndentGuides(e)},e.prototype.getHighlightIndentGuides=function(){return this.renderer.getHighlightIndentGuides()},e.prototype.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},e.prototype.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},e.prototype.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},e.prototype.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},e.prototype.setReadOnly=function(e){this.setOption("readOnly",e)},e.prototype.getReadOnly=function(){return this.getOption("readOnly")},e.prototype.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},e.prototype.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},e.prototype.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},e.prototype.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},e.prototype.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},e.prototype.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},e.prototype.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},e.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},e.prototype.remove=function(e){this.selection.isEmpty()&&("left"==e?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var n=this.session,o=n.getState(t.start.row),i=n.getMode().transformAction(o,"deletion",this,n,t);if(0===t.end.column){var r=n.getTextRange(t);if("\n"==r[r.length-1]){var s=n.getLine(t.end.row);/^\s+$/.test(s)&&(t.end.column=s.length)}}i&&(t=i)}this.session.remove(t),this.clearSelection()},e.prototype.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},e.prototype.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},e.prototype.setGhostText=function(e,t){this.session.widgetManager||(this.session.widgetManager=new w(this.session),this.session.widgetManager.attach(this)),this.renderer.setGhostText(e,t)},e.prototype.removeGhostText=function(){this.session.widgetManager&&this.renderer.removeGhostText()},e.prototype.transposeLetters=function(){if(this.selection.isEmpty()){var e=this.getCursorPosition(),t=e.column;if(0!==t){var n,o,i=this.session.getLine(e.row);tt.toLowerCase()?1:0}));var i=new g(0,0,0,0);for(o=e.first;o<=e.last;o++){var r=t.getLine(o);i.start.row=o,i.end.row=o,i.end.column=r.length,t.replace(i,n[o-e.first])}},e.prototype.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},e.prototype.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),n=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,n,e)},e.prototype.getNumberAt=function(e,t){var n=/[\-]?[0-9]+(?:\.[0-9]+)?/g;n.lastIndex=0;for(var o=this.session.getLine(e);n.lastIndex=t)return{value:i[0],start:i.index,end:i.index+i[0].length}}return null},e.prototype.modifyNumber=function(e){var t=this.selection.getCursor().row,n=this.selection.getCursor().column,o=new g(t,n-1,t,n),i=this.session.getTextRange(o);if(!isNaN(parseFloat(i))&&isFinite(i)){var r=this.getNumberAt(t,n);if(r){var s=r.value.indexOf(".")>=0?r.start+r.value.indexOf(".")+1:r.end,a=r.start+r.value.length-s,l=parseFloat(r.value);l*=Math.pow(10,a),s!==r.end&&n=a&&r<=l&&(n=t,c.selection.clearSelection(),c.moveCursorTo(e,a+o),c.selection.selectTo(e,l+o)),a=l}));for(var u,h=this.$toggleWordPairs,d=0;d=l&&s<=c&&d.match(/((?:https?|ftp):\/\/[\S]+)/)){a=d.replace(/[\s:.,'";}\]]+$/,"");break}l=c}}catch(e){n={error:e}}finally{try{h&&!h.done&&(i=u.return)&&i.call(u)}finally{if(n)throw n.error}}return a},e.prototype.openLink=function(){var e=this.selection.getCursor(),t=this.findLinkAt(e.row,e.column);return t&&window.open(t,"_blank"),null!=t},e.prototype.removeLines=function(){var e=this.$getSelectedRows();this.session.removeFullLines(e.first,e.last),this.clearSelection()},e.prototype.duplicateSelection=function(){var e=this.selection,t=this.session,n=e.getRange(),o=e.isBackwards();if(n.isEmpty()){var i=n.start.row;t.duplicateLines(i,i)}else{var r=o?n.start:n.end,s=t.insert(r,t.getTextRange(n),!1);n.start=r,n.end=s,e.setSelectionRange(n,o)}},e.prototype.moveLinesDown=function(){this.$moveLines(1,!1)},e.prototype.moveLinesUp=function(){this.$moveLines(-1,!1)},e.prototype.moveText=function(e,t,n){return this.session.moveText(e,t,n)},e.prototype.copyLinesUp=function(){this.$moveLines(-1,!0)},e.prototype.copyLinesDown=function(){this.$moveLines(1,!0)},e.prototype.$moveLines=function(e,t){var n,o,i=this.selection;if(!i.inMultiSelectMode||this.inVirtualSelectionMode){var r=i.toOrientedRange();n=this.$getSelectedRows(r),o=this.session.$moveLines(n.first,n.last,t?0:e),t&&-1==e&&(o=0),r.moveBy(o,0),i.fromOrientedRange(r)}else{var s=i.rangeList.ranges;i.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;for(var a=0,l=0,c=s.length,u=0;up+1)break;p=g.last}for(u--,a=this.session.$moveLines(d,p,t?0:e),t&&-1==e&&(h=u+1);h<=u;)s[h].moveBy(a,0),h++;t||(a=0),l+=a}i.fromOrientedRange(i.ranges[0]),i.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},e.prototype.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},e.prototype.onCompositionStart=function(e){this.renderer.showComposition(e)},e.prototype.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},e.prototype.onCompositionEnd=function(){this.renderer.hideComposition()},e.prototype.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},e.prototype.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},e.prototype.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},e.prototype.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},e.prototype.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},e.prototype.$moveByPage=function(e,t){var n=this.renderer,o=this.renderer.layerConfig,i=e*Math.floor(o.height/o.lineHeight);!0===t?this.selection.$moveSelection((function(){this.moveCursorBy(i,0)})):!1===t&&(this.selection.moveCursorBy(i,0),this.selection.clearSelection());var r=n.scrollTop;n.scrollBy(0,i*o.lineHeight),null!=t&&n.scrollCursorIntoView(null,.5),n.animateScrolling(r)},e.prototype.selectPageDown=function(){this.$moveByPage(1,!0)},e.prototype.selectPageUp=function(){this.$moveByPage(-1,!0)},e.prototype.gotoPageDown=function(){this.$moveByPage(1,!1)},e.prototype.gotoPageUp=function(){this.$moveByPage(-1,!1)},e.prototype.scrollPageDown=function(){this.$moveByPage(1)},e.prototype.scrollPageUp=function(){this.$moveByPage(-1)},e.prototype.scrollToRow=function(e){this.renderer.scrollToRow(e)},e.prototype.scrollToLine=function(e,t,n,o){this.renderer.scrollToLine(e,t,n,o)},e.prototype.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},e.prototype.getCursorPosition=function(){return this.selection.getCursor()},e.prototype.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},e.prototype.getSelectionRange=function(){return this.selection.getRange()},e.prototype.selectAll=function(){this.selection.selectAll()},e.prototype.clearSelection=function(){this.selection.clearSelection()},e.prototype.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},e.prototype.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},e.prototype.jumpToMatching=function(e,t){var n=this.getCursorPosition(),o=new b(this.session,n.row,n.column),i=o.getCurrentToken(),r=0;i&&-1!==i.type.indexOf("tag-name")&&(i=o.stepBackward());var s=i||o.stepForward();if(s){var a,l,c=!1,u={},h=n.column-s.start,d={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(s.value.match(/[{}()\[\]]/g)){for(;h1?u[s.value]++:"=0;--r)this.$tryReplace(n[r],e)&&o++;return this.selection.setSelectionRange(i),o},e.prototype.$tryReplace=function(e,t){var n=this.session.getTextRange(e);return null!==(t=this.$search.replace(n,t))?(e.end=this.session.replace(e,t),e):null},e.prototype.getLastSearchOptions=function(){return this.$search.getOptions()},e.prototype.find=function(e,t,n){t||(t={}),"string"==typeof e||e instanceof RegExp?t.needle=e:"object"==typeof e&&i.mixin(t,e);var o=this.selection.getRange();null==t.needle&&((e=this.session.getTextRange(o)||this.$search.$options.needle)||(o=this.session.getWordRange(o.start.row,o.start.column),e=this.session.getTextRange(o)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:o});var r=this.$search.find(this.session);return t.preventScroll?r:r?(this.revealRange(r,n),r):(t.backwards?o.start=o.end:o.end=o.start,void this.selection.setRange(o))},e.prototype.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},e.prototype.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},e.prototype.revealRange=function(e,t){this.session.unfold(e),this.selection.setSelectionRange(e);var n=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),!1!==t&&this.renderer.animateScrolling(n)},e.prototype.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},e.prototype.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},e.prototype.destroy=function(){this.$toDestroy&&(this.$toDestroy.forEach((function(e){e.destroy()})),this.$toDestroy=null),this.$mouseHandler&&this.$mouseHandler.destroy(),this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy(),this._$emitInputEvent&&this._$emitInputEvent.cancel(),this.removeAllListeners()},e.prototype.setAutoScrollEditorIntoView=function(e){if(e){var t,n=this,o=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var i=this.$scrollAnchor;i.style.cssText="position:absolute",this.container.insertBefore(i,this.container.firstChild);var r=this.on("changeSelection",(function(){o=!0})),s=this.renderer.on("beforeRender",(function(){o&&(t=n.renderer.container.getBoundingClientRect())})),a=this.renderer.on("afterRender",(function(){if(o&&t&&(n.isFocused()||n.searchBox&&n.searchBox.isFocused())){var e=n.renderer,r=e.$cursorLayer.$pixelPos,s=e.layerConfig,a=r.top-s.offset;null!=(o=r.top>=0&&a+t.top<0||!(r.topwindow.innerHeight)&&null)&&(i.style.top=a+"px",i.style.left=r.left+"px",i.style.height=s.lineHeight+"px",i.scrollIntoView(o)),o=t=null}}));this.setAutoScrollEditorIntoView=function(e){e||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",r),this.renderer.off("afterRender",a),this.renderer.off("beforeRender",s))}}},e.prototype.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;t&&(t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&"wide"!=e,r.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e)))},e.prototype.prompt=function(e,t,n){var o=this;v.loadModule("ace/ext/prompt",(function(i){i.prompt(o,e,t,n)}))},e}();S.$uid=0,S.prototype.curOp=null,S.prototype.prevOp={},S.prototype.$mergeableCommands=["backspace","del","insertstring"],S.prototype.$toggleWordPairs=[["first","last"],["true","false"],["yes","no"],["width","height"],["top","bottom"],["right","left"],["on","off"],["x","y"],["get","set"],["max","min"],["horizontal","vertical"],["show","hide"],["add","remove"],["up","down"],["before","after"],["even","odd"],["in","out"],["inside","outside"],["next","previous"],["increase","decrease"],["attach","detach"],["&&","||"],["==","!="]],i.implement(S.prototype,m),v.defineOptions(S.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.textInput.setReadOnly(e),this.$resetCursorStyle()},initialValue:!1},copyWithEmptySelection:{set:function(e){this.textInput.setCopyWithEmptySelection(e)},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},enableAutoIndent:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(e){this.session.setValue(e)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(e){this.setSession(e)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(e){this.renderer.$gutterLayer.setShowLineNumbers(e),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),e&&this.$relativeLineNumbers?E.attach(this):E.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(e){this.$showLineNumbers&&e?E.attach(this):E.detach(this)}},placeholder:{set:function(e){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var e=this.session&&(this.renderer.$composition||this.session.getLength()>1||this.session.getLine(0).length>0);if(e&&this.renderer.placeholderNode)this.renderer.off("afterRender",this.$updatePlaceholder),r.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(e||this.renderer.placeholderNode)!e&&this.renderer.placeholderNode&&(this.renderer.placeholderNode.textContent=this.$placeholder||"");else{this.renderer.on("afterRender",this.$updatePlaceholder),r.addCssClass(this.container,"ace_hasPlaceholder");var t=r.createElement("div");t.className="ace_placeholder",t.textContent=this.$placeholder||"",this.renderer.placeholderNode=t,this.renderer.content.appendChild(this.renderer.placeholderNode)}}.bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},enableKeyboardAccessibility:{set:function(e){var t,n={name:"blurTextInput",description:"Set focus to the editor content div to allow tabbing through the page",bindKey:"Esc",exec:function(e){e.blur(),e.renderer.scroller.focus()},readOnly:!0},o=function(e){if(e.target==this.renderer.scroller&&e.keyCode===$.enter){e.preventDefault();var t=this.getCursorPosition().row;this.isRowVisible(t)||this.scrollToLine(t,!0,!0),this.focus()}};e?(this.renderer.enableKeyboardAccessibility=!0,this.renderer.keyboardFocusClassName="ace_keyboard-focus",this.textInput.getElement().setAttribute("tabindex",-1),this.textInput.setNumberOfExtraLines(a.isWin?3:0),this.renderer.scroller.setAttribute("tabindex",0),this.renderer.scroller.setAttribute("role","group"),this.renderer.scroller.setAttribute("aria-roledescription",k("editor")),this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName),this.renderer.scroller.setAttribute("aria-label",k("Editor content, press Enter to start editing, press Escape to exit")),this.renderer.scroller.addEventListener("keyup",o.bind(this)),this.commands.addCommand(n),this.renderer.$gutter.setAttribute("tabindex",0),this.renderer.$gutter.setAttribute("aria-hidden",!1),this.renderer.$gutter.setAttribute("role","group"),this.renderer.$gutter.setAttribute("aria-roledescription",k("editor")),this.renderer.$gutter.setAttribute("aria-label",k("Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit")),this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName),this.renderer.content.setAttribute("aria-hidden",!0),t||(t=new x(this)),t.addListener()):(this.renderer.enableKeyboardAccessibility=!1,this.textInput.getElement().setAttribute("tabindex",0),this.textInput.setNumberOfExtraLines(0),this.renderer.scroller.setAttribute("tabindex",-1),this.renderer.scroller.removeAttribute("role"),this.renderer.scroller.removeAttribute("aria-roledescription"),this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName),this.renderer.scroller.removeAttribute("aria-label"),this.renderer.scroller.removeEventListener("keyup",o.bind(this)),this.commands.removeCommand(n),this.renderer.content.removeAttribute("aria-hidden"),this.renderer.$gutter.setAttribute("tabindex",-1),this.renderer.$gutter.setAttribute("aria-hidden",!0),this.renderer.$gutter.removeAttribute("role"),this.renderer.$gutter.removeAttribute("aria-roledescription"),this.renderer.$gutter.removeAttribute("aria-label"),this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName),t&&t.removeListener())},initialValue:!1},customScrollbar:"renderer",hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",highlightIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",useResizeObserver:"renderer",useSvgGutterIcons:"renderer",showFoldedAnnotations:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimeout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var E={getText:function(e,t){return(Math.abs(e.selection.lead.row-t)||t+1+(t<9?"·":""))+""},getWidth:function(e,t,n){return Math.max(t.toString().length,(n.lastRow+1).toString().length,2)*n.characterWidth},update:function(e,t){t.renderer.$loop.schedule(t.renderer.CHANGE_GUTTER)},attach:function(e){e.renderer.$gutterLayer.$renderer=this,e.on("changeSelection",this.update),this.update(null,e)},detach:function(e){e.renderer.$gutterLayer.$renderer==this&&(e.renderer.$gutterLayer.$renderer=null),e.off("changeSelection",this.update),this.update(null,e)}};t.Editor=S})),ace.define("ace/layer/lines",["require","exports","module","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=function(){function e(e,t){this.element=e,this.canvasHeight=t||5e5,this.element.style.height=2*this.canvasHeight+"px",this.cells=[],this.cellCache=[],this.$offsetCoefficient=0}return e.prototype.moveContainer=function(e){o.translate(this.element,0,-e.firstRowScreen*e.lineHeight%this.canvasHeight-e.offset*this.$offsetCoefficient)},e.prototype.pageChanged=function(e,t){return Math.floor(e.firstRowScreen*e.lineHeight/this.canvasHeight)!==Math.floor(t.firstRowScreen*t.lineHeight/this.canvasHeight)},e.prototype.computeLineTop=function(e,t,n){var o=t.firstRowScreen*t.lineHeight,i=Math.floor(o/this.canvasHeight);return n.documentToScreenRow(e,0)*t.lineHeight-i*this.canvasHeight},e.prototype.computeLineHeight=function(e,t,n){return t.lineHeight*n.getRowLineCount(e)},e.prototype.getLength=function(){return this.cells.length},e.prototype.get=function(e){return this.cells[e]},e.prototype.shift=function(){this.$cacheCell(this.cells.shift())},e.prototype.pop=function(){this.$cacheCell(this.cells.pop())},e.prototype.push=function(e){if(Array.isArray(e)){this.cells.push.apply(this.cells,e);for(var t=o.createFragment(this.element),n=0;nr&&(l=i.end.row+1,r=(i=t.getNextFoldLine(l,i))?i.start.row:1/0),l>o){for(;this.$lines.getLength()>a+1;)this.$lines.pop();break}(s=this.$lines.get(++a))?s.row=l:(s=this.$lines.createCell(l,e,this.session,u),this.$lines.push(s)),this.$renderCell(s,e,i,l),l++}this._signal("afterRender"),this.$updateGutterWidth(e)},e.prototype.$updateGutterWidth=function(e){var t=this.session,n=t.gutterRenderer||this.$renderer,o=t.$firstLineNumber,i=this.$lines.last()?this.$lines.last().text:"";(this.$fixedWidth||t.$useWrapMode)&&(i=t.getLength()+o-1);var r=n?n.getWidth(t,i,e):i.toString().length*e.characterWidth,s=this.$padding||this.$computePadding();(r+=s.left+s.right)===this.gutterWidth||isNaN(r)||(this.gutterWidth=r,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",r))},e.prototype.$updateCursorRow=function(){if(this.$highlightGutterLine){var e=this.session.selection.getCursor();this.$cursorRow!==e.row&&(this.$cursorRow=e.row)}},e.prototype.updateLineHighlight=function(){if(this.$highlightGutterLine){var e=this.session.selection.cursor.row;if(this.$cursorRow=e,!this.$cursorCell||this.$cursorCell.row!=e){this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var t=this.$lines.cells;this.$cursorCell=null;for(var n=0;n=this.$cursorRow){if(o.row>this.$cursorRow){var i=this.session.getFoldLine(this.$cursorRow);if(!(n>0&&i&&i.start.row==t[n-1].row))break;o=t[n-1]}o.element.className="ace_gutter-active-line "+o.element.className,this.$cursorCell=o;break}}}}},e.prototype.scrollLines=function(e){var t=this.config;if(this.config=e,this.$updateCursorRow(),this.$lines.pageChanged(t,e))return this.update(e);this.$lines.moveContainer(e);var n=Math.min(e.lastRow+e.gutterOffset,this.session.getLength()-1),o=this.oldLastRow;if(this.oldLastRow=n,!t||o0;i--)this.$lines.shift();if(o>n)for(i=this.session.getFoldedRowCount(n+1,o);i>0;i--)this.$lines.pop();e.firstRowo&&this.$lines.push(this.$renderLines(e,o+1,n)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(e)},e.prototype.$renderLines=function(e,t,n){for(var o=[],i=t,r=this.session.getNextFoldLine(i),s=r?r.start.row:1/0;i>s&&(i=r.end.row+1,s=(r=this.session.getNextFoldLine(i,r))?r.start.row:1/0),!(i>n);){var a=this.$lines.createCell(i,e,this.session,u);this.$renderCell(a,e,r,i),o.push(a),i++}return o},e.prototype.$renderCell=function(e,t,n,i){var r=e.element,s=this.session,a=r.childNodes[0],c=r.childNodes[1],u=r.childNodes[2],h=u.firstChild,d=s.$firstLineNumber,p=s.$breakpoints,g=s.$decorations,m=s.gutterRenderer||this.$renderer,f=this.$showFoldWidgets&&s.foldWidgets,y=n?n.start.row:Number.MAX_VALUE,v=t.lineHeight+"px",b=this.$useSvgGutterIcons?"ace_gutter-cell_svg-icons ":"ace_gutter-cell ",w=this.$useSvgGutterIcons?"ace_icon_svg":"ace_icon",x=(m?m.getText(s,i):i+d).toString();if(this.$highlightGutterLine&&(i==this.$cursorRow||n&&i=y&&this.$cursorRow<=n.end.row)&&(b+="ace_gutter-active-line ",this.$cursorCell!=e&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=e)),p[i]&&(b+=p[i]),g[i]&&(b+=g[i]),this.$annotations[i]&&i!==y&&(b+=this.$annotations[i].className),f){var k=f[i];null==k&&(k=f[i]=s.getFoldWidget(i))}if(k){var C="ace_fold-widget ace_"+k,$="start"==k&&i==y&&in.right-t.right?"foldWidgets":void 0},e}();function u(e){var t=document.createTextNode("");e.appendChild(t);var n=o.createElement("span");e.appendChild(n);var i=o.createElement("span");e.appendChild(i);var r=o.createElement("span");return i.appendChild(r),e}c.prototype.$fixedWidth=!1,c.prototype.$highlightGutterLine=!0,c.prototype.$renderer="",c.prototype.$showLineNumbers=!0,c.prototype.$showFoldWidgets=!0,i.implement(c.prototype,s),t.Gutter=c})),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("../range").Range,i=e("../lib/dom"),r=function(){function e(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)}return e.prototype.setPadding=function(e){this.$padding=e},e.prototype.setSession=function(e){this.session=e},e.prototype.setMarkers=function(e){this.markers=e},e.prototype.elt=function(e,t){var n=-1!=this.i&&this.element.childNodes[this.i];n?this.i++:(n=document.createElement("div"),this.element.appendChild(n),this.i=-1),n.style.cssText=t,n.className=e},e.prototype.update=function(e){if(e){var t;for(var n in this.config=e,this.i=0,this.markers){var o=this.markers[n];if(o.range){var i=o.range.clipRows(e.firstRow,e.lastRow);if(!i.isEmpty())if(i=i.toScreenRange(this.session),o.renderer){var r=this.$getTop(i.start.row,e),s=this.$padding+i.start.column*e.characterWidth;o.renderer(t,i,s,r,e)}else"fullLine"==o.type?this.drawFullLineMarker(t,i,o.clazz,e):"screenLine"==o.type?this.drawScreenLineMarker(t,i,o.clazz,e):i.isMultiLine()?"text"==o.type?this.drawTextMarker(t,i,o.clazz,e):this.drawMultiLineMarker(t,i,o.clazz,e):this.drawSingleLineMarker(t,i,o.clazz+" ace_start ace_br15",e)}else o.update(t,this,this.session,e)}if(-1!=this.i)for(;this.id?4:0)|(c==l?8:0)),i,c==l?0:1,r)},e.prototype.drawMultiLineMarker=function(e,t,n,o,i){var r=this.$padding,s=o.lineHeight,a=this.$getTop(t.start.row,o),l=r+t.start.column*o.characterWidth;if(i=i||"",this.session.$bidiHandler.isBidiRow(t.start.row)?((c=t.clone()).end.row=c.start.row,c.end.column=this.session.getLine(c.start.row).length,this.drawBidiSingleLineMarker(e,c,n+" ace_br1 ace_start",o,null,i)):this.elt(n+" ace_br1 ace_start","height:"+s+"px;right:0;top:"+a+"px;left:"+l+"px;"+(i||"")),this.session.$bidiHandler.isBidiRow(t.end.row)){var c;(c=t.clone()).start.row=c.end.row,c.start.column=0,this.drawBidiSingleLineMarker(e,c,n+" ace_br12",o,null,i)}else{a=this.$getTop(t.end.row,o);var u=t.end.column*o.characterWidth;this.elt(n+" ace_br12","height:"+s+"px;width:"+u+"px;top:"+a+"px;left:"+r+"px;"+(i||""))}if(!((s=(t.end.row-t.start.row-1)*o.lineHeight)<=0)){a=this.$getTop(t.start.row+1,o);var h=(t.start.column?1:0)|(t.end.column?0:8);this.elt(n+(h?" ace_br"+h:""),"height:"+s+"px;right:0;top:"+a+"px;left:"+r+"px;"+(i||""))}},e.prototype.drawSingleLineMarker=function(e,t,n,o,i,r){if(this.session.$bidiHandler.isBidiRow(t.start.row))return this.drawBidiSingleLineMarker(e,t,n,o,i,r);var s=o.lineHeight,a=(t.end.column+(i||0)-t.start.column)*o.characterWidth,l=this.$getTop(t.start.row,o),c=this.$padding+t.start.column*o.characterWidth;this.elt(n,"height:"+s+"px;width:"+a+"px;top:"+l+"px;left:"+c+"px;"+(r||""))},e.prototype.drawBidiSingleLineMarker=function(e,t,n,o,i,r){var s=o.lineHeight,a=this.$getTop(t.start.row,o),l=this.$padding;this.session.$bidiHandler.getSelections(t.start.column,t.end.column).forEach((function(e){this.elt(n,"height:"+s+"px;width:"+(e.width+(i||0))+"px;top:"+a+"px;left:"+(l+e.left)+"px;"+(r||""))}),this)},e.prototype.drawFullLineMarker=function(e,t,n,o,i){var r=this.$getTop(t.start.row,o),s=o.lineHeight;t.start.row!=t.end.row&&(s+=this.$getTop(t.end.row,o)-r),this.elt(n,"height:"+s+"px;top:"+r+"px;left:0;right:0;"+(i||""))},e.prototype.drawScreenLineMarker=function(e,t,n,o,i){var r=this.$getTop(t.start.row,o),s=o.lineHeight;this.elt(n,"height:"+s+"px;top:"+r+"px;left:0;right:0;"+(i||""))},e}();r.prototype.$padding=0,t.Marker=r})),ace.define("ace/layer/text_util",["require","exports","module"],(function(e,t,n){var o=new Set(["text","rparen","lparen"]);t.isTextToken=function(e){return o.has(e)}})),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter","ace/config","ace/layer/text_util"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("../lib/dom"),r=e("../lib/lang"),s=e("./lines").Lines,a=e("../lib/event_emitter").EventEmitter,l=e("../config").nls,c=e("./text_util").isTextToken,u=function(){function e(e){this.dom=i,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new s(this.element)}return e.prototype.$updateEolChar=function(){var e=this.session.doc,t="\n"==e.getNewLineCharacter()&&"windows"!=e.getNewLineMode()?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=t)return this.EOL_CHAR=t,!0},e.prototype.setPadding=function(e){this.$padding=e,this.element.style.margin="0 "+e+"px"},e.prototype.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},e.prototype.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},e.prototype.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},e.prototype.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},e.prototype.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},e.prototype.setSession=function(e){this.session=e,e&&this.$computeTabString()},e.prototype.setShowInvisibles=function(e){return this.showInvisibles!=e&&(this.showInvisibles=e,"string"==typeof e?(this.showSpaces=/tab/i.test(e),this.showTabs=/space/i.test(e),this.showEOL=/eol/i.test(e)):this.showSpaces=this.showTabs=this.showEOL=e,this.$computeTabString(),!0)},e.prototype.setDisplayIndentGuides=function(e){return this.displayIndentGuides!=e&&(this.displayIndentGuides=e,this.$computeTabString(),!0)},e.prototype.setHighlightIndentGuides=function(e){return this.$highlightIndentGuides!==e&&(this.$highlightIndentGuides=e,e)},e.prototype.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var t=this.$tabStrings=[0],n=1;nu&&(a=l.end.row+1,u=(l=this.session.getNextFoldLine(a,l))?l.start.row:1/0),!(a>i);){var h=r[s++];if(h){this.dom.removeChildren(h),this.$renderLine(h,a,a==u&&l),c&&(h.style.top=this.$lines.computeLineTop(a,e,this.session)+"px");var d=e.lineHeight*this.session.getRowLength(a)+"px";h.style.height!=d&&(c=!0,h.style.height=d)}a++}if(c)for(;s0;i--)this.$lines.shift();if(t.lastRow>e.lastRow)for(i=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);i>0;i--)this.$lines.pop();e.firstRowt.lastRow&&this.$lines.push(this.$renderLinesFragment(e,t.lastRow+1,e.lastRow)),this.$highlightIndentGuide()},e.prototype.$renderLinesFragment=function(e,t,n){for(var o=[],r=t,s=this.session.getNextFoldLine(r),a=s?s.start.row:1/0;r>a&&(r=s.end.row+1,a=(s=this.session.getNextFoldLine(r,s))?s.start.row:1/0),!(r>n);){var l=this.$lines.createCell(r,e,this.session),c=l.element;this.dom.removeChildren(c),i.setStyle(c.style,"height",this.$lines.computeLineHeight(r,e,this.session)+"px"),i.setStyle(c.style,"top",this.$lines.computeLineTop(r,e,this.session)+"px"),this.$renderLine(c,r,r==a&&s),this.$useLineGroups()?c.className="ace_line_group":c.className="ace_line",o.push(l),r++}return o},e.prototype.update=function(e){this.$lines.moveContainer(e),this.config=e;for(var t=e.firstRow,n=e.lastRow,o=this.$lines;o.getLength();)o.pop();o.push(this.$renderLinesFragment(e,t,n))},e.prototype.$renderToken=function(e,t,n,o){for(var i,s=this,a=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC\u2066\u2067\u2068\u202A\u202B\u202D\u202E\u202C\u2069]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,u=this.dom.createFragment(this.element),h=0;i=a.exec(o);){var d=i[1],p=i[2],g=i[3],m=i[4],f=i[5];if(s.showSpaces||!p){var y=h!=i.index?o.slice(h,i.index):"";if(h=i.index+i[0].length,y&&u.appendChild(this.dom.createTextNode(y,this.element)),d){var v=s.session.getScreenTabSize(t+i.index);u.appendChild(s.$tabStrings[v].cloneNode(!0)),t+=v-1}else p?s.showSpaces?((w=this.dom.createElement("span")).className="ace_invisible ace_invisible_space",w.textContent=r.stringRepeat(s.SPACE_CHAR,p.length),u.appendChild(w)):u.appendChild(this.dom.createTextNode(p,this.element)):g?((w=this.dom.createElement("span")).className="ace_invisible ace_invisible_space ace_invalid",w.textContent=r.stringRepeat(s.SPACE_CHAR,g.length),u.appendChild(w)):m?(t+=1,(w=this.dom.createElement("span")).style.width=2*s.config.characterWidth+"px",w.className=s.showSpaces?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",w.textContent=s.showSpaces?s.SPACE_CHAR:m,u.appendChild(w)):f&&(t+=1,(w=this.dom.createElement("span")).style.width=2*s.config.characterWidth+"px",w.className="ace_cjk",w.textContent=f,u.appendChild(w))}}if(u.appendChild(this.dom.createTextNode(h?o.slice(h):o,this.element)),c(n.type))e.appendChild(u);else{var b="ace_"+n.type.replace(/\./g," ace_"),w=this.dom.createElement("span");"fold"==n.type&&(w.style.width=n.value.length*this.config.characterWidth+"px",w.setAttribute("title",l("Unfold code"))),w.className=b,w.appendChild(u),e.appendChild(w)}return t+o.length},e.prototype.renderIndentGuide=function(e,t,n){var o=t.search(this.$indentGuideRe);if(o<=0||o>=n)return t;if(" "==t[0]){for(var i=(o-=o%this.tabSize)/this.tabSize,r=0;ri[r].start.row?this.$highlightIndentGuideMarker.dir=-1:this.$highlightIndentGuideMarker.dir=1;break}if(!this.$highlightIndentGuideMarker.end&&""!==e[t.row]&&t.column===e[t.row].length)for(this.$highlightIndentGuideMarker.dir=1,r=t.row+1;r0)for(var o=0;o=this.$highlightIndentGuideMarker.start+1){if(o.row>=this.$highlightIndentGuideMarker.end)break;this.$setIndentGuideActive(o,t)}}else for(n=e.length-1;n>=0;n--)if(o=e[n],this.$highlightIndentGuideMarker.end&&o.row=s;)a=this.$renderToken(l,a,u,h.substring(0,s-o)),h=h.substring(s-o),o=s,l=this.$createLineElement(),e.appendChild(l),l.appendChild(this.dom.createTextNode(r.stringRepeat(" ",n.indent),this.element)),a=0,s=n[++i]||Number.MAX_VALUE;0!=h.length&&(o+=h.length,a=this.$renderToken(l,a,u,h))}}n[n.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(l,a,null,"",!0)},e.prototype.$renderSimpleLine=function(e,t){for(var n=0,o=0;othis.MAX_LINE_LENGTH)return this.$renderOverflowMessage(e,n,i,r);n=this.$renderToken(e,n,i,r)}}},e.prototype.$renderOverflowMessage=function(e,t,n,o,i){n&&this.$renderToken(e,t,n,o.slice(0,this.MAX_LINE_LENGTH-t));var r=this.dom.createElement("span");r.className="ace_inline_button ace_keyword ace_toggle_wrap",r.textContent=i?"":"",e.appendChild(r)},e.prototype.$renderLine=function(e,t,n){if(n||0==n||(n=this.session.getFoldLine(t)),n)var o=this.$getFoldLineTokens(t,n);else o=this.session.getTokens(t);var i=e;if(o.length){var r=this.session.getRowSplitData(t);r&&r.length?(this.$renderWrappedLine(e,o,r),i=e.lastChild):(i=e,this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i)),this.$renderSimpleLine(i,o))}else this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i));if(this.showEOL&&i){n&&(t=n.end.row);var s=this.dom.createElement("span");s.className="ace_invisible ace_invisible_eol",s.textContent=t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,i.appendChild(s)}},e.prototype.$getFoldLineTokens=function(e,t){var n=this.session,o=[],i=n.getTokens(e);return t.walk((function(e,t,r,s,a){null!=e?o.push({type:"fold",value:e}):(a&&(i=n.getTokens(t)),i.length&&function(e,t,n){for(var i=0,r=0;r+e[i].value.lengthn-t&&(s=s.substring(0,n-t)),o.push({type:e[i].type,value:s}),r=t+s.length,i+=1);rn?o.push({type:e[i].type,value:s.substring(0,n-r)}):o.push(e[i]),r+=s.length,i+=1}}(i,s,r))}),t.end.row,this.session.getLine(t.end.row).length),o},e.prototype.$useLineGroups=function(){return this.session.getUseWrapMode()},e}();u.prototype.EOF_CHAR="¶",u.prototype.EOL_CHAR_LF="¬",u.prototype.EOL_CHAR_CRLF="¤",u.prototype.EOL_CHAR=u.prototype.EOL_CHAR_LF,u.prototype.TAB_CHAR="—",u.prototype.SPACE_CHAR="·",u.prototype.$padding=0,u.prototype.MAX_LINE_LENGTH=1e4,u.prototype.showInvisibles=!1,u.prototype.showSpaces=!1,u.prototype.showTabs=!1,u.prototype.showEOL=!1,u.prototype.displayIndentGuides=!0,u.prototype.$highlightIndentGuides=!0,u.prototype.$tabStrings=[],u.prototype.destroy={},u.prototype.onChangeTabSize=u.prototype.$computeTabString,o.implement(u.prototype,a),t.Text=u})),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=function(){function e(e){this.element=o.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),o.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)}return e.prototype.$updateOpacity=function(e){for(var t=this.cursors,n=t.length;n--;)o.setStyle(t[n].style,"opacity",e?"":"0")},e.prototype.$startCssAnimation=function(){for(var e=this.cursors,t=e.length;t--;)e[t].style.animationDuration=this.blinkInterval+"ms";this.$isAnimating=!0,setTimeout(function(){this.$isAnimating&&o.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},e.prototype.$stopCssAnimation=function(){this.$isAnimating=!1,o.removeCssClass(this.element,"ace_animate-blinking")},e.prototype.setPadding=function(e){this.$padding=e},e.prototype.setSession=function(e){this.session=e},e.prototype.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},e.prototype.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},e.prototype.setSmoothBlinking=function(e){e!=this.smoothBlinking&&(this.smoothBlinking=e,o.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.restartTimer())},e.prototype.addCursor=function(){var e=o.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},e.prototype.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},e.prototype.hideCursor=function(){this.isVisible=!1,o.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},e.prototype.showCursor=function(){this.isVisible=!0,o.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},e.prototype.restartTimer=function(){var e=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&(this.$isSmoothBlinking=!1,o.removeCssClass(this.element,"ace_smooth-blinking")),e(!0),this.isBlinking&&this.blinkInterval&&this.isVisible)if(this.smoothBlinking&&(this.$isSmoothBlinking=!0,setTimeout(function(){this.$isSmoothBlinking&&o.addCssClass(this.element,"ace_smooth-blinking")}.bind(this))),o.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var t=function(){this.timeoutId=setTimeout((function(){e(!1)}),.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval((function(){e(!0),t()}),this.blinkInterval),t()}else this.$stopCssAnimation()},e.prototype.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var n=this.session.documentToScreenPosition(e);return{left:this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e.row)?this.session.$bidiHandler.getPosLeft(n.column):n.column*this.config.characterWidth),top:(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight}},e.prototype.isCursorInView=function(e,t){return e.top>=0&&e.tope.height+e.offset||s.top<0)&&n>1)){var a=this.cursors[i++]||this.addCursor(),l=a.style;this.drawCursor?this.drawCursor(a,s,e,t[n],this.session):this.isCursorInView(s,e)?(o.setStyle(l,"display","block"),o.translate(a,s.left,s.top),o.setStyle(l,"width",Math.round(e.characterWidth)+"px"),o.setStyle(l,"height",e.lineHeight+"px")):o.setStyle(l,"display","none")}}for(;this.cursors.length>i;)this.removeCursor();var c=this.session.getOverwrite();this.$setOverwrite(c),this.$pixelPos=s,this.restartTimer()},e.prototype.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?o.addCssClass(this.element,"ace_overwrite-cursors"):o.removeCssClass(this.element,"ace_overwrite-cursors"))},e.prototype.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)},e}();i.prototype.$padding=0,i.prototype.drawCursor=null,t.Cursor=i})),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("./lib/oop"),s=e("./lib/dom"),a=e("./lib/event"),l=e("./lib/event_emitter").EventEmitter,c=32768,u=function(){function e(e,t){this.element=s.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+t,this.inner=s.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent=" ",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addListener(this.element,"scroll",this.onScroll.bind(this)),a.addListener(this.element,"mousedown",a.preventDefault)}return e.prototype.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1},e}();r.implement(u.prototype,l);var h=function(e){function t(t,n){var o=e.call(this,t,"-v")||this;return o.scrollTop=0,o.scrollHeight=0,n.$scrollbarWidth=o.width=s.scrollbarWidth(t.ownerDocument),o.inner.style.width=o.element.style.width=(o.width||15)+5+"px",o.$minWidth=0,o}return i(t,e),t.prototype.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,1!=this.coeff){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},t.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},t.prototype.setHeight=function(e){this.element.style.height=e+"px"},t.prototype.setScrollHeight=function(e){this.scrollHeight=e,e>c?(this.coeff=c/e,e=c):1!=this.coeff&&(this.coeff=1),this.inner.style.height=e+"px"},t.prototype.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)},t}(u);h.prototype.setInnerHeight=h.prototype.setScrollHeight;var d=function(e){function t(t,n){var o=e.call(this,t,"-h")||this;return o.scrollLeft=0,o.height=n.$scrollbarWidth,o.inner.style.height=o.element.style.height=(o.height||15)+5+"px",o}return i(t,e),t.prototype.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},t.prototype.getHeight=function(){return this.isVisible?this.height:0},t.prototype.setWidth=function(e){this.element.style.width=e+"px"},t.prototype.setInnerWidth=function(e){this.inner.style.width=e+"px"},t.prototype.setScrollWidth=function(e){this.inner.style.width=e+"px"},t.prototype.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)},t}(u);t.ScrollBar=h,t.ScrollBarV=h,t.ScrollBarH=d,t.VScrollBar=h,t.HScrollBar=d})),ace.define("ace/scrollbar_custom",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("./lib/oop"),s=e("./lib/dom"),a=e("./lib/event"),l=e("./lib/event_emitter").EventEmitter;s.importCssString(".ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{\n position: absolute;\n background: rgba(128, 128, 128, 0.6);\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n border: 1px solid #bbb;\n border-radius: 2px;\n z-index: 8;\n}\n.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h {\n position: absolute;\n z-index: 6;\n background: none;\n overflow: hidden!important;\n}\n.ace_editor>.ace_sb-v {\n z-index: 6;\n right: 0;\n top: 0;\n width: 12px;\n}\n.ace_editor>.ace_sb-v div {\n z-index: 8;\n right: 0;\n width: 100%;\n}\n.ace_editor>.ace_sb-h {\n bottom: 0;\n left: 0;\n height: 12px;\n}\n.ace_editor>.ace_sb-h div {\n bottom: 0;\n height: 100%;\n}\n.ace_editor>.ace_sb_grabbed {\n z-index: 8;\n background: #000;\n}","ace_scrollbar.css",!1);var c=function(){function e(e,t){this.element=s.createElement("div"),this.element.className="ace_sb"+t,this.inner=s.createElement("div"),this.inner.className="",this.element.appendChild(this.inner),this.VScrollWidth=12,this.HScrollHeight=12,e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addMultiMouseDownListener(this.element,[500,300,300],this,"onMouseDown")}return e.prototype.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1},e}();r.implement(c.prototype,l);var u=function(e){function t(t,n){var o=e.call(this,t,"-v")||this;return o.scrollTop=0,o.scrollHeight=0,o.parent=t,o.width=o.VScrollWidth,o.renderer=n,o.inner.style.width=o.element.style.width=(o.width||15)+"px",o.$minWidth=0,o}return i(t,e),t.prototype.onMouseDown=function(e,t){if("mousedown"===e&&0===a.getButton(t)&&2!==t.detail){if(t.target===this.inner){var n=this,o=t.clientY,i=t.clientY,r=this.thumbTop;a.capture(this.inner,(function(e){o=e.clientY}),(function(){clearInterval(s)}));var s=setInterval((function(){if(void 0!==o){var e=n.scrollTopFromThumbTop(r+o-i);e!==n.scrollTop&&n._emit("scroll",{data:e})}}),20);return a.preventDefault(t)}var l=t.clientY-this.element.getBoundingClientRect().top-this.thumbHeight/2;return this._emit("scroll",{data:this.scrollTopFromThumbTop(l)}),a.preventDefault(t)}},t.prototype.getHeight=function(){return this.height},t.prototype.scrollTopFromThumbTop=function(e){var t=e*(this.pageHeight-this.viewHeight)/(this.slideHeight-this.thumbHeight);return(t|=0)<0?t=0:t>this.pageHeight-this.viewHeight&&(t=this.pageHeight-this.viewHeight),t},t.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},t.prototype.setHeight=function(e){this.height=Math.max(0,e),this.slideHeight=this.height,this.viewHeight=this.height,this.setScrollHeight(this.pageHeight,!0)},t.prototype.setScrollHeight=function(e,t){(this.pageHeight!==e||t)&&(this.pageHeight=e,this.thumbHeight=this.slideHeight*this.viewHeight/this.pageHeight,this.thumbHeight>this.slideHeight&&(this.thumbHeight=this.slideHeight),this.thumbHeight<15&&(this.thumbHeight=15),this.inner.style.height=this.thumbHeight+"px",this.scrollTop>this.pageHeight-this.viewHeight&&(this.scrollTop=this.pageHeight-this.viewHeight,this.scrollTop<0&&(this.scrollTop=0),this._emit("scroll",{data:this.scrollTop})))},t.prototype.setScrollTop=function(e){this.scrollTop=e,e<0&&(e=0),this.thumbTop=e*(this.slideHeight-this.thumbHeight)/(this.pageHeight-this.viewHeight),this.inner.style.top=this.thumbTop+"px"},t}(c);u.prototype.setInnerHeight=u.prototype.setScrollHeight;var h=function(e){function t(t,n){var o=e.call(this,t,"-h")||this;return o.scrollLeft=0,o.scrollWidth=0,o.height=o.HScrollHeight,o.inner.style.height=o.element.style.height=(o.height||12)+"px",o.renderer=n,o}return i(t,e),t.prototype.onMouseDown=function(e,t){if("mousedown"===e&&0===a.getButton(t)&&2!==t.detail){if(t.target===this.inner){var n=this,o=t.clientX,i=t.clientX,r=this.thumbLeft;a.capture(this.inner,(function(e){o=e.clientX}),(function(){clearInterval(s)}));var s=setInterval((function(){if(void 0!==o){var e=n.scrollLeftFromThumbLeft(r+o-i);e!==n.scrollLeft&&n._emit("scroll",{data:e})}}),20);return a.preventDefault(t)}var l=t.clientX-this.element.getBoundingClientRect().left-this.thumbWidth/2;return this._emit("scroll",{data:this.scrollLeftFromThumbLeft(l)}),a.preventDefault(t)}},t.prototype.getHeight=function(){return this.isVisible?this.height:0},t.prototype.scrollLeftFromThumbLeft=function(e){var t=e*(this.pageWidth-this.viewWidth)/(this.slideWidth-this.thumbWidth);return(t|=0)<0?t=0:t>this.pageWidth-this.viewWidth&&(t=this.pageWidth-this.viewWidth),t},t.prototype.setWidth=function(e){this.width=Math.max(0,e),this.element.style.width=this.width+"px",this.slideWidth=this.width,this.viewWidth=this.width,this.setScrollWidth(this.pageWidth,!0)},t.prototype.setScrollWidth=function(e,t){(this.pageWidth!==e||t)&&(this.pageWidth=e,this.thumbWidth=this.slideWidth*this.viewWidth/this.pageWidth,this.thumbWidth>this.slideWidth&&(this.thumbWidth=this.slideWidth),this.thumbWidth<15&&(this.thumbWidth=15),this.inner.style.width=this.thumbWidth+"px",this.scrollLeft>this.pageWidth-this.viewWidth&&(this.scrollLeft=this.pageWidth-this.viewWidth,this.scrollLeft<0&&(this.scrollLeft=0),this._emit("scroll",{data:this.scrollLeft})))},t.prototype.setScrollLeft=function(e){this.scrollLeft=e,e<0&&(e=0),this.thumbLeft=e*(this.slideWidth-this.thumbWidth)/(this.pageWidth-this.viewWidth),this.inner.style.left=this.thumbLeft+"px"},t}(c);h.prototype.setInnerWidth=h.prototype.setScrollWidth,t.ScrollBar=u,t.ScrollBarV=u,t.ScrollBarH=h,t.VScrollBar=u,t.HScrollBar=h})),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],(function(e,t,n){"use strict";var o=e("./lib/event"),i=function(){function e(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=t||window;var n=this;this._flush=function(e){n.pending=!1;var t=n.changes;if(t&&(o.blockIdle(100),n.changes=0,n.onRender(t)),n.changes){if(n.$recursionLimit--<0)return;n.schedule()}else n.$recursionLimit=2}}return e.prototype.schedule=function(e){this.changes=this.changes|e,this.changes&&!this.pending&&(o.nextFrame(this._flush),this.pending=!0)},e.prototype.clear=function(e){var t=this.changes;return this.changes=0,t},e}();t.RenderLoop=i})),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],(function(e,t,n){var o=e("../lib/oop"),i=e("../lib/dom"),r=e("../lib/lang"),s=e("../lib/event"),a=e("../lib/useragent"),l=e("../lib/event_emitter").EventEmitter,c=512,u="function"==typeof ResizeObserver,h=200,d=function(){function e(e){this.el=i.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=i.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=i.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),this.$measureNode.textContent=r.stringRepeat("X",c),this.$characterSize={width:0,height:0},u?this.$addObserver():this.checkForSizeChanges()}return e.prototype.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",a.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},e.prototype.checkForSizeChanges=function(e){if(void 0===e&&(e=this.$measureSizes()),e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},e.prototype.$addObserver=function(){var e=this;this.$observer=new window.ResizeObserver((function(t){e.checkForSizeChanges()})),this.$observer.observe(this.$measureNode)},e.prototype.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=s.onIdle((function t(){e.checkForSizeChanges(),s.onIdle(t,500)}),500)},e.prototype.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},e.prototype.$measureSizes=function(e){var t={height:(e||this.$measureNode).clientHeight,width:(e||this.$measureNode).clientWidth/c};return 0===t.width||0===t.height?null:t},e.prototype.$measureCharWidth=function(e){return this.$main.textContent=r.stringRepeat(e,c),this.$main.getBoundingClientRect().width/c},e.prototype.getCharacterWidth=function(e){var t=this.charSizes[e];return void 0===t&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},e.prototype.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},e.prototype.$getZoom=function(e){return e&&e.parentElement?(window.getComputedStyle(e).zoom||1)*this.$getZoom(e.parentElement):1},e.prototype.$initTransformMeasureNodes=function(){var e=function(e,t){return["div",{style:"position: absolute;top:"+e+"px;left:"+t+"px;"}]};this.els=i.buildDom([e(0,0),e(h,0),e(0,h),e(h,h)],this.el)},e.prototype.transformCoordinates=function(e,t){function n(e,t,n){var o=e[1]*t[0]-e[0]*t[1];return[(-t[1]*n[0]+t[0]*n[1])/o,(+e[1]*n[0]-e[0]*n[1])/o]}function o(e,t){return[e[0]-t[0],e[1]-t[1]]}function i(e,t){return[e[0]+t[0],e[1]+t[1]]}function r(e,t){return[e*t[0],e*t[1]]}function s(e){var t=e.getBoundingClientRect();return[t.left,t.top]}e&&(e=r(1/this.$getZoom(this.el),e)),this.els||this.$initTransformMeasureNodes();var a=s(this.els[0]),l=s(this.els[1]),c=s(this.els[2]),u=s(this.els[3]),d=n(o(u,l),o(u,c),o(i(l,c),i(u,a))),p=r(1+d[0],o(l,a)),g=r(1+d[1],o(c,a));if(t){var m=t,f=d[0]*m[0]/h+d[1]*m[1]/h+1,y=i(r(m[0],p),r(m[1],g));return i(r(1/f/h,y),a)}var v=o(e,a),b=n(o(p,r(d[0],v)),o(g,r(d[1],v)),v);return r(h,b)},e}();d.prototype.$characterSize={width:0,height:0},o.implement(d.prototype,l),t.FontMetrics=d})),ace.define("ace/css/editor-css",["require","exports","module"],(function(e,t,n){n.exports='\n.ace_br1 {border-top-left-radius : 3px;}\n.ace_br2 {border-top-right-radius : 3px;}\n.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\n.ace_br4 {border-bottom-right-radius: 3px;}\n.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\n.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\n.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\n.ace_br8 {border-bottom-left-radius : 3px;}\n.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\n.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\n.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n\n\n.ace_editor {\n position: relative;\n overflow: hidden;\n padding: 0;\n font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'Source Code Pro\', \'source-code-pro\', monospace;\n direction: ltr;\n text-align: left;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\n.ace_scroller {\n position: absolute;\n overflow: hidden;\n top: 0;\n bottom: 0;\n background-color: inherit;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n cursor: text;\n}\n\n.ace_content {\n position: absolute;\n box-sizing: border-box;\n min-width: 100%;\n contain: style size layout;\n font-variant-ligatures: no-common-ligatures;\n}\n\n.ace_keyboard-focus:focus {\n box-shadow: inset 0 0 0 2px #5E9ED6;\n outline: none;\n}\n\n.ace_dragging .ace_scroller:before{\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n content: \'\';\n background: rgba(250, 250, 250, 0.01);\n z-index: 1000;\n}\n.ace_dragging.ace_dark .ace_scroller:before{\n background: rgba(0, 0, 0, 0.01);\n}\n\n.ace_gutter {\n position: absolute;\n overflow : hidden;\n width: auto;\n top: 0;\n bottom: 0;\n left: 0;\n cursor: default;\n z-index: 4;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n contain: style size layout;\n}\n\n.ace_gutter-active-line {\n position: absolute;\n left: 0;\n right: 0;\n}\n\n.ace_scroller.ace_scroll-left:after {\n content: "";\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\n pointer-events: none;\n}\n\n.ace_gutter-cell, .ace_gutter-cell_svg-icons {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n padding-left: 19px;\n padding-right: 6px;\n background-repeat: no-repeat;\n}\n\n.ace_gutter-cell_svg-icons .ace_gutter_annotation {\n margin-left: -14px;\n float: left;\n}\n\n.ace_gutter-cell .ace_gutter_annotation {\n margin-left: -19px;\n float: left;\n}\n\n.ace_gutter-cell.ace_error, .ace_icon.ace_error, .ace_icon.ace_error_fold {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_warning, .ace_icon.ace_warning, .ace_icon.ace_warning_fold {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_info, .ace_icon.ace_info {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n.ace_dark .ace_gutter-cell.ace_info, .ace_dark .ace_icon.ace_info {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");\n}\n\n.ace_icon_svg.ace_error {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJyZWQiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KPGNpcmNsZSBmaWxsPSJub25lIiBjeD0iOCIgY3k9IjgiIHI9IjciIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPGxpbmUgeDE9IjExIiB5MT0iNSIgeDI9IjUiIHkyPSIxMSIvPgo8bGluZSB4MT0iMTEiIHkxPSIxMSIgeDI9IjUiIHkyPSI1Ii8+CjwvZz4KPC9zdmc+");\n background-color: crimson;\n}\n.ace_icon_svg.ace_warning {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJkYXJrb3JhbmdlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+Cjxwb2x5Z29uIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGZpbGw9Im5vbmUiIHBvaW50cz0iOCAxIDE1IDE1IDEgMTUgOCAxIi8+CjxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iMC4wMSIgaGVpZ2h0PSIwLjAxIi8+CjxsaW5lIHgxPSI4IiB5MT0iNiIgeDI9IjgiIHkyPSIxMCIvPgo8L2c+Cjwvc3ZnPg==");\n background-color: darkorange;\n}\n.ace_icon_svg.ace_info {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJibHVlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CjxjaXJjbGUgZmlsbD0ibm9uZSIgY3g9IjgiIGN5PSI4IiByPSI3IiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjxwb2x5bGluZSBwb2ludHM9IjggMTEgOCA4Ii8+Cjxwb2x5bGluZSBwb2ludHM9IjkgOCA2IDgiLz4KPGxpbmUgeDE9IjEwIiB5MT0iMTEiIHgyPSI2IiB5Mj0iMTEiLz4KPHJlY3QgeD0iOCIgeT0iNSIgd2lkdGg9IjAuMDEiIGhlaWdodD0iMC4wMSIvPgo8L2c+Cjwvc3ZnPg==");\n background-color: royalblue;\n}\n\n.ace_icon_svg.ace_error_fold {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSI+CiAgPHBhdGggZD0ibSAxOC45Mjk4NTEsNy44Mjk4MDc2IGMgMC4xNDYzNTMsNi4zMzc0NjA0IC02LjMyMzE0Nyw3Ljc3Nzg0NDQgLTcuNDc3OTEyLDcuNzc3ODQ0NCAtMi4xMDcyNzI2LC0wLjEyODc1IDUuMTE3Njc4LDAuMzU2MjQ5IDUuMDUxNjk4LC03Ljg3MDA2MTggLTAuNjA0NjcyLC04LjAwMzk3MzQ5IC03LjA3NzI3MDYsLTcuNTYzMTE4OSAtNC44NTczLC03LjQzMDM5NTU2IDEuNjA2LC0wLjExNTE0MjI1IDYuODk3NDg1LDEuMjYyNTQ1OTYgNy4yODM1MTQsNy41MjI2MTI5NiB6IiBmaWxsPSJjcmltc29uIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0ibSA4LjExNDc1NjIsMi4wNTI5ODI4IGMgMy4zNDkxNjk4LDAgNi4wNjQxMzI4LDIuNjc2ODYyNyA2LjA2NDEzMjgsNS45Nzg5NTMgMCwzLjMwMjExMjIgLTIuNzE0OTYzLDUuOTc4OTIwMiAtNi4wNjQxMzI4LDUuOTc4OTIwMiAtMy4zNDkxNDczLDAgLTYuMDY0MTc3MiwtMi42NzY4MDggLTYuMDY0MTc3MiwtNS45Nzg5MjAyIDAuMDA1MzksLTMuMjk5ODg2MSAyLjcxNzI2NTYsLTUuOTczNjQwOCA2LjA2NDE3NzIsLTUuOTc4OTUzIHogbSAwLC0xLjczNTgyNzE5IGMgLTQuMzIxNDgzNiwwIC03LjgyNDc0MDM4LDMuNDU0MDE4NDkgLTcuODI0NzQwMzgsNy43MTQ3ODAxOSAwLDQuMjYwNzI4MiAzLjUwMzI1Njc4LDcuNzE0NzQ1MiA3LjgyNDc0MDM4LDcuNzE0NzQ1MiA0LjMyMTQ0OTgsMCA3LjgyNDY5OTgsLTMuNDU0MDE3IDcuODI0Njk5OCwtNy43MTQ3NDUyIDAsLTIuMDQ2MDkxNCAtMC44MjQzOTIsLTQuMDA4MzY3MiAtMi4yOTE3NTYsLTUuNDU1MTc0NiBDIDEyLjE4MDIyNSwxLjEyOTk2NDggMTAuMTkwMDEzLDAuMzE3MTU1NjEgOC4xMTQ3NTYyLDAuMzE3MTU1NjEgWiBNIDYuOTM3NDU2Myw4LjI0MDU5ODUgNC42NzE4Njg1LDEwLjQ4NTg1MiA2LjAwODY4MTQsMTEuODc2NzI4IDguMzE3MDAzNSw5LjYwMDc5MTEgMTAuNjI1MzM3LDExLjg3NjcyOCAxMS45NjIxMzgsMTAuNDg1ODUyIDkuNjk2NTUwOCw4LjI0MDU5ODUgMTEuOTYyMTM4LDYuMDA2ODA2NiAxMC41NzMyNDYsNC42Mzc0MzM1IDguMzE3MDAzNSw2Ljg3MzQyOTcgNi4wNjA3NjA3LDQuNjM3NDMzNSA0LjY3MTg2ODUsNi4wMDY4MDY2IFoiIGZpbGw9ImNyaW1zb24iIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4=");\n background-color: crimson;\n}\n.ace_icon_svg.ace_warning_fold {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNC43NzY5IDE0LjczMzdMOC42NTE5MiAyLjQ4MzY5QzguMzI5NDYgMS44Mzg3NyA3LjQwOTEzIDEuODM4NzcgNy4wODY2NyAyLjQ4MzY5TDAuOTYxNjY5IDE0LjczMzdDMC42NzA3NzUgMTUuMzE1NSAxLjA5MzgzIDE2IDEuNzQ0MjkgMTZIMTMuOTk0M0MxNC42NDQ4IDE2IDE1LjA2NzggMTUuMzE1NSAxNC43NzY5IDE0LjczMzdaTTMuMTYwMDcgMTQuMjVMNy44NjkyOSA0LjgzMTU2TDEyLjU3ODUgMTQuMjVIMy4xNjAwN1pNOC43NDQyOSAxMS42MjVWMTMuMzc1SDYuOTk0MjlWMTEuNjI1SDguNzQ0MjlaTTYuOTk0MjkgMTAuNzVWNy4yNUg4Ljc0NDI5VjEwLjc1SDYuOTk0MjlaIiBmaWxsPSIjRUM3MjExIi8+CjxwYXRoIGQ9Ik0xMS4xOTkxIDIuOTUyMzhDMTAuODgwOSAyLjMxNDY3IDEwLjM1MzcgMS44MDUyNiA5LjcwNTUgMS41MDlMMTEuMDQxIDEuMDY5NzhDMTEuNjg4MyAwLjk0OTgxNCAxMi4zMzcgMS4yNzI2MyAxMi42MzE3IDEuODYxNDFMMTcuNjEzNiAxMS44MTYxQzE4LjM1MjcgMTMuMjkyOSAxNy41OTM4IDE1LjA4MDQgMTYuMDE4IDE1LjU3NDVDMTYuNDA0NCAxNC40NTA3IDE2LjMyMzEgMTMuMjE4OCAxNS43OTI0IDEyLjE1NTVMMTEuMTk5MSAyLjk1MjM4WiIgZmlsbD0iI0VDNzIxMSIvPgo8L3N2Zz4=");\n background-color: darkorange;\n}\n\n.ace_scrollbar {\n contain: strict;\n position: absolute;\n right: 0;\n bottom: 0;\n z-index: 6;\n}\n\n.ace_scrollbar-inner {\n position: absolute;\n cursor: text;\n left: 0;\n top: 0;\n}\n\n.ace_scrollbar-v{\n overflow-x: hidden;\n overflow-y: scroll;\n top: 0;\n}\n\n.ace_scrollbar-h {\n overflow-x: scroll;\n overflow-y: hidden;\n left: 0;\n}\n\n.ace_print-margin {\n position: absolute;\n height: 100%;\n}\n\n.ace_text-input {\n position: absolute;\n z-index: 0;\n width: 0.5em;\n height: 1em;\n opacity: 0;\n background: transparent;\n -moz-appearance: none;\n appearance: none;\n border: none;\n resize: none;\n outline: none;\n overflow: hidden;\n font: inherit;\n padding: 0 1px;\n margin: 0 -1px;\n contain: strict;\n -ms-user-select: text;\n -moz-user-select: text;\n -webkit-user-select: text;\n user-select: text;\n /*with `pre-line` chrome inserts   instead of space*/\n white-space: pre!important;\n}\n.ace_text-input.ace_composition {\n background: transparent;\n color: inherit;\n z-index: 1000;\n opacity: 1;\n}\n.ace_composition_placeholder { color: transparent }\n.ace_composition_marker { \n border-bottom: 1px solid;\n position: absolute;\n border-radius: 0;\n margin-top: 1px;\n}\n\n[ace_nocontext=true] {\n transform: none!important;\n filter: none!important;\n clip-path: none!important;\n mask : none!important;\n contain: none!important;\n perspective: none!important;\n mix-blend-mode: initial!important;\n z-index: auto;\n}\n\n.ace_layer {\n z-index: 1;\n position: absolute;\n overflow: hidden;\n /* workaround for chrome bug https://github.com/ajaxorg/ace/issues/2312*/\n word-wrap: normal;\n white-space: pre;\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n /* setting pointer-events: auto; on node under the mouse, which changes\n during scroll, will break mouse wheel scrolling in Safari */\n pointer-events: none;\n}\n\n.ace_gutter-layer {\n position: relative;\n width: auto;\n text-align: right;\n pointer-events: auto;\n height: 1000000px;\n contain: style size layout;\n}\n\n.ace_text-layer {\n font: inherit !important;\n position: absolute;\n height: 1000000px;\n width: 1000000px;\n contain: style size layout;\n}\n\n.ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group {\n contain: style size layout;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n}\n\n.ace_hidpi .ace_text-layer,\n.ace_hidpi .ace_gutter-layer,\n.ace_hidpi .ace_content,\n.ace_hidpi .ace_gutter {\n contain: strict;\n}\n.ace_hidpi .ace_text-layer > .ace_line, \n.ace_hidpi .ace_text-layer > .ace_line_group {\n contain: strict;\n}\n\n.ace_cjk {\n display: inline-block;\n text-align: center;\n}\n\n.ace_cursor-layer {\n z-index: 4;\n}\n\n.ace_cursor {\n z-index: 4;\n position: absolute;\n box-sizing: border-box;\n border-left: 2px solid;\n /* workaround for smooth cursor repaintng whole screen in chrome */\n transform: translatez(0);\n}\n\n.ace_multiselect .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_slim-cursors .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_overwrite-cursors .ace_cursor {\n border-left-width: 0;\n border-bottom: 1px solid;\n}\n\n.ace_hidden-cursors .ace_cursor {\n opacity: 0.2;\n}\n\n.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {\n opacity: 0;\n}\n\n.ace_smooth-blinking .ace_cursor {\n transition: opacity 0.18s;\n}\n\n.ace_animate-blinking .ace_cursor {\n animation-duration: 1000ms;\n animation-timing-function: step-end;\n animation-name: blink-ace-animate;\n animation-iteration-count: infinite;\n}\n\n.ace_animate-blinking.ace_smooth-blinking .ace_cursor {\n animation-duration: 1000ms;\n animation-timing-function: ease-in-out;\n animation-name: blink-ace-animate-smooth;\n}\n \n@keyframes blink-ace-animate {\n from, to { opacity: 1; }\n 60% { opacity: 0; }\n}\n\n@keyframes blink-ace-animate-smooth {\n from, to { opacity: 1; }\n 45% { opacity: 1; }\n 60% { opacity: 0; }\n 85% { opacity: 0; }\n}\n\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\n position: absolute;\n z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n position: absolute;\n z-index: 5;\n}\n\n.ace_marker-layer .ace_bracket {\n position: absolute;\n z-index: 6;\n}\n\n.ace_marker-layer .ace_error_bracket {\n position: absolute;\n border-bottom: 1px solid #DE5555;\n border-radius: 0;\n}\n\n.ace_marker-layer .ace_active-line {\n position: absolute;\n z-index: 2;\n}\n\n.ace_marker-layer .ace_selected-word {\n position: absolute;\n z-index: 4;\n box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n box-sizing: border-box;\n\n display: inline-block;\n height: 11px;\n margin-top: -2px;\n vertical-align: middle;\n\n background-image:\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");\n background-repeat: no-repeat, repeat-x;\n background-position: center center, top left;\n color: transparent;\n\n border: 1px solid black;\n border-radius: 2px;\n\n cursor: pointer;\n pointer-events: auto;\n}\n\n.ace_dark .ace_fold {\n}\n\n.ace_fold:hover{\n background-image:\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");\n}\n\n.ace_tooltip {\n background-color: #f5f5f5;\n border: 1px solid gray;\n border-radius: 1px;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\n color: black;\n max-width: 100%;\n padding: 3px 4px;\n position: fixed;\n z-index: 999999;\n box-sizing: border-box;\n cursor: default;\n white-space: pre-wrap;\n word-wrap: break-word;\n line-height: normal;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n pointer-events: none;\n overflow: auto;\n max-width: min(60em, 66vw);\n}\n.ace_tooltip pre {\n white-space: pre-wrap;\n}\n\n.ace_tooltip.ace_dark {\n background-color: #636363;\n color: #fff;\n}\n\n.ace_tooltip:focus {\n outline: 1px solid #5E9ED6;\n}\n\n.ace_icon {\n display: inline-block;\n width: 18px;\n vertical-align: top;\n}\n\n.ace_icon_svg {\n display: inline-block;\n width: 12px;\n vertical-align: top;\n -webkit-mask-repeat: no-repeat;\n -webkit-mask-size: 12px;\n -webkit-mask-position: center;\n}\n\n.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons {\n padding-right: 13px;\n}\n\n.ace_fold-widget {\n box-sizing: border-box;\n\n margin: 0 -12px 0 1px;\n display: none;\n width: 11px;\n vertical-align: top;\n\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: center;\n\n border-radius: 3px;\n \n border: 1px solid transparent;\n cursor: pointer;\n}\n\n.ace_folding-enabled .ace_fold-widget {\n display: inline-block; \n}\n\n.ace_fold-widget.ace_end {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");\n}\n\n.ace_fold-widget.ace_closed {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");\n}\n\n.ace_fold-widget:hover {\n border: 1px solid rgba(0, 0, 0, 0.3);\n background-color: rgba(255, 255, 255, 0.2);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n}\n\n.ace_fold-widget:active {\n border: 1px solid rgba(0, 0, 0, 0.4);\n background-color: rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n}\n/**\n * Dark version for fold widgets\n */\n.ace_dark .ace_fold-widget {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");\n}\n.ace_dark .ace_fold-widget.ace_end {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");\n}\n.ace_dark .ace_fold-widget.ace_closed {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");\n}\n.ace_dark .ace_fold-widget:hover {\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n background-color: rgba(255, 255, 255, 0.1);\n}\n.ace_dark .ace_fold-widget:active {\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n}\n\n.ace_inline_button {\n border: 1px solid lightgray;\n display: inline-block;\n margin: -1px 8px;\n padding: 0 5px;\n pointer-events: auto;\n cursor: pointer;\n}\n.ace_inline_button:hover {\n border-color: gray;\n background: rgba(200,200,200,0.2);\n display: inline-block;\n pointer-events: auto;\n}\n\n.ace_fold-widget.ace_invalid {\n background-color: #FFB4B4;\n border-color: #DE5555;\n}\n\n.ace_fade-fold-widgets .ace_fold-widget {\n transition: opacity 0.4s ease 0.05s;\n opacity: 0;\n}\n\n.ace_fade-fold-widgets:hover .ace_fold-widget {\n transition: opacity 0.05s ease 0.05s;\n opacity:1;\n}\n\n.ace_underline {\n text-decoration: underline;\n}\n\n.ace_bold {\n font-weight: bold;\n}\n\n.ace_nobold .ace_bold {\n font-weight: normal;\n}\n\n.ace_italic {\n font-style: italic;\n}\n\n\n.ace_error-marker {\n background-color: rgba(255, 0, 0,0.2);\n position: absolute;\n z-index: 9;\n}\n\n.ace_highlight-marker {\n background-color: rgba(255, 255, 0,0.2);\n position: absolute;\n z-index: 8;\n}\n\n.ace_mobile-menu {\n position: absolute;\n line-height: 1.5;\n border-radius: 4px;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n background: white;\n box-shadow: 1px 3px 2px grey;\n border: 1px solid #dcdcdc;\n color: black;\n}\n.ace_dark > .ace_mobile-menu {\n background: #333;\n color: #ccc;\n box-shadow: 1px 3px 2px grey;\n border: 1px solid #444;\n\n}\n.ace_mobile-button {\n padding: 2px;\n cursor: pointer;\n overflow: hidden;\n}\n.ace_mobile-button:hover {\n background-color: #eee;\n opacity:1;\n}\n.ace_mobile-button:active {\n background-color: #ddd;\n}\n\n.ace_placeholder {\n font-family: arial;\n transform: scale(0.9);\n transform-origin: left;\n white-space: pre;\n opacity: 0.7;\n margin: 0 10px;\n}\n\n.ace_ghost_text {\n opacity: 0.5;\n font-style: italic;\n white-space: pre;\n}\n\n.ace_screenreader-only {\n position:absolute;\n left:-10000px;\n top:auto;\n width:1px;\n height:1px;\n overflow:hidden;\n}'})),ace.define("ace/layer/decorators",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=e("../lib/oop"),r=e("../lib/event_emitter").EventEmitter,s=function(){function e(e,t){this.canvas=o.createElement("canvas"),this.renderer=t,this.pixelRatio=1,this.maxHeight=t.layerConfig.maxHeight,this.lineHeight=t.layerConfig.lineHeight,this.canvasHeight=e.parent.scrollHeight,this.heightRatio=this.canvasHeight/this.maxHeight,this.canvasWidth=e.width,this.minDecorationHeight=2*this.pixelRatio|0,this.halfMinDecorationHeight=this.minDecorationHeight/2|0,this.canvas.width=this.canvasWidth,this.canvas.height=this.canvasHeight,this.canvas.style.top="0px",this.canvas.style.right="0px",this.canvas.style.zIndex="7px",this.canvas.style.position="absolute",this.colors={},this.colors.dark={error:"rgba(255, 18, 18, 1)",warning:"rgba(18, 136, 18, 1)",info:"rgba(18, 18, 136, 1)"},this.colors.light={error:"rgb(255,51,51)",warning:"rgb(32,133,72)",info:"rgb(35,68,138)"},e.element.appendChild(this.canvas)}return e.prototype.$updateDecorators=function(e){var t=!0===this.renderer.theme.isDark?this.colors.dark:this.colors.light;e&&(this.maxHeight=e.maxHeight,this.lineHeight=e.lineHeight,this.canvasHeight=e.height,(e.lastRow+1)*this.lineHeightt.priority?1:0}));for(var r=this.renderer.session.$foldData,s=0;sthis.canvasHeight&&(d=this.canvasHeight-this.halfMinDecorationHeight),u=Math.round(d-this.halfMinDecorationHeight),h=Math.round(d+this.halfMinDecorationHeight)}n.fillStyle=t[o[s].type]||null,n.fillRect(0,c,this.canvasWidth,h-u)}}var p=this.renderer.session.selection.getCursor();p&&(l=this.compensateFoldRows(p.row,r),c=Math.round((p.row-l)*this.lineHeight*this.heightRatio),n.fillStyle="rgba(0, 0, 0, 0.5)",n.fillRect(0,c,this.canvasWidth,2))},e.prototype.compensateFoldRows=function(e,t){var n=0;if(t&&t.length>0)for(var o=0;ot[o].start.row&&e=t[o].end.row&&(n+=t[o].end.row-t[o].start.row);return n},e}();i.implement(s.prototype,r),t.Decorator=s})),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/config","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/scrollbar_custom","ace/scrollbar_custom","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter","ace/css/editor-css","ace/layer/decorators","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("./lib/oop"),i=e("./lib/dom"),r=e("./lib/lang"),s=e("./config"),a=e("./layer/gutter").Gutter,l=e("./layer/marker").Marker,c=e("./layer/text").Text,u=e("./layer/cursor").Cursor,h=e("./scrollbar").HScrollBar,d=e("./scrollbar").VScrollBar,p=e("./scrollbar_custom").HScrollBar,g=e("./scrollbar_custom").VScrollBar,m=e("./renderloop").RenderLoop,f=e("./layer/font_metrics").FontMetrics,y=e("./lib/event_emitter").EventEmitter,v=e("./css/editor-css"),b=e("./layer/decorators").Decorator,w=e("./lib/useragent");i.importCssString(v,"ace_editor.css",!1);var x=function(){function e(e,t){var n=this;this.container=e||i.createElement("div"),i.addCssClass(this.container,"ace_editor"),i.HI_DPI&&i.addCssClass(this.container,"ace_hidpi"),this.setTheme(t),null==s.get("useStrictCSP")&&s.set("useStrictCSP",!1),this.$gutter=i.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=i.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=i.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new a(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new l(this.content);var o=this.$textLayer=new c(this.content);this.canvas=o.element,this.$markerFront=new l(this.content),this.$cursorLayer=new u(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new d(this.container,this),this.scrollBarH=new h(this.container,this),this.scrollBarV.on("scroll",(function(e){n.$scrollAnimation||n.session.setScrollTop(e.data-n.scrollMargin.top)})),this.scrollBarH.on("scroll",(function(e){n.$scrollAnimation||n.session.setScrollLeft(e.data-n.scrollMargin.left)})),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new f(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.on("changeCharacterSize",(function(e){n.updateCharacterSize(),n.onResize(!0,n.gutterWidth,n.$size.width,n.$size.height),n._signal("changeCharacterSize",e)})),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.margin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$keepTextAreaAtCursor=!w.isIOS,this.$loop=new m(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),this.$addResizeObserver(),s.resetOptions(this),s._signal("renderer",this)}return e.prototype.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin(),i.setStyle(this.scroller.style,"line-height",this.lineHeight+"px")},e.prototype.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e),e&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},e.prototype.updateLines=function(e,t,n){if(void 0===t&&(t=1/0),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},e.prototype.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},e.prototype.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},e.prototype.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},e.prototype.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},e.prototype.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},e.prototype.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},e.prototype.onResize=function(e,t,n,o){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=e?1:0;var i=this.container;o||(o=i.clientHeight||i.scrollHeight),n||(n=i.clientWidth||i.scrollWidth);var r=this.$updateCachedSize(e,t,n,o);if(this.$resizeTimer&&this.$resizeTimer.cancel(),!this.$size.scrollerHeight||!n&&!o)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(r|this.$changes,!0):this.$loop.schedule(r|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.$customScrollbar&&this.$updateCustomScrollbar(!0)}},e.prototype.$updateCachedSize=function(e,t,n,o){o-=this.$extraHeight||0;var r=0,s=this.$size,a={width:s.width,height:s.height,scrollerHeight:s.scrollerHeight,scrollerWidth:s.scrollerWidth};if(o&&(e||s.height!=o)&&(s.height=o,r|=this.CHANGE_SIZE,s.scrollerHeight=s.height,this.$horizScroll&&(s.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.setHeight(s.scrollerHeight),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",r|=this.CHANGE_SCROLL),n&&(e||s.width!=n)){r|=this.CHANGE_SIZE,s.width=n,null==t&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,i.setStyle(this.scrollBarH.element.style,"left",t+"px"),i.setStyle(this.scroller.style,"left",t+this.margin.left+"px"),s.scrollerWidth=Math.max(0,n-t-this.scrollBarV.getWidth()-this.margin.h),i.setStyle(this.$gutter.style,"left",this.margin.left+"px");var l=this.scrollBarV.getWidth()+"px";i.setStyle(this.scrollBarH.element.style,"right",l),i.setStyle(this.scroller.style,"right",l),i.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight()),this.scrollBarH.setWidth(s.scrollerWidth),(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)&&(r|=this.CHANGE_FULL)}return s.$dirty=!n||!o,r&&this._signal("resize",a),r},e.prototype.onGutterResize=function(e){var t=this.$showGutter?e:0;t!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,t,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()||this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},e.prototype.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-2*this.$padding,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},e.prototype.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},e.prototype.getAnimatedScroll=function(){return this.$animatedScroll},e.prototype.setShowInvisibles=function(e){this.setOption("showInvisibles",e),this.session.$bidiHandler.setShowInvisibles(e)},e.prototype.getShowInvisibles=function(){return this.getOption("showInvisibles")},e.prototype.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},e.prototype.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},e.prototype.getHighlightIndentGuides=function(){return this.getOption("highlightIndentGuides")},e.prototype.setHighlightIndentGuides=function(e){this.setOption("highlightIndentGuides",e)},e.prototype.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},e.prototype.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},e.prototype.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},e.prototype.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},e.prototype.getShowGutter=function(){return this.getOption("showGutter")},e.prototype.setShowGutter=function(e){return this.setOption("showGutter",e)},e.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},e.prototype.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},e.prototype.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},e.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},e.prototype.$updatePrintMargin=function(){if(this.$showPrintMargin||this.$printMarginEl){if(!this.$printMarginEl){var e=i.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=i.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&-1==this.session.$wrap&&this.adjustWrapLimit()}},e.prototype.getContainerElement=function(){return this.container},e.prototype.getMouseEventTarget=function(){return this.scroller},e.prototype.getTextAreaContainer=function(){return this.container},e.prototype.$moveTextAreaToCursor=function(){if(!this.$isMousePressed){var e=this.textarea.style,t=this.$composition;if(this.$keepTextAreaAtCursor||t){var n=this.$cursorLayer.$pixelPos;if(n){t&&t.markerRange&&(n=this.$cursorLayer.getPixelPosition(t.markerRange.start,!0));var o=this.layerConfig,r=n.top,s=n.left;r-=o.offset;var a=t&&t.useTextareaForIME||w.isMobile?this.lineHeight:1;if(r<0||r>o.height-a)i.translate(this.textarea,0,0);else{var l=1,c=this.$size.height-a;if(t)if(t.useTextareaForIME){var u=this.textarea.value;l=this.characterWidth*this.session.$getStringScreenWidth(u)[0]}else r+=this.lineHeight+2;else r+=this.lineHeight;(s-=this.scrollLeft)>this.$size.scrollerWidth-l&&(s=this.$size.scrollerWidth-l),s+=this.gutterWidth+this.margin.left,i.setStyle(e,"height",a+"px"),i.setStyle(e,"width",l+"px"),i.translate(this.textarea,Math.min(s,this.$size.scrollerWidth-l),Math.min(r,c))}}}else i.translate(this.textarea,-100,0)}},e.prototype.getFirstVisibleRow=function(){return this.layerConfig.firstRow},e.prototype.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(0===this.layerConfig.offset?0:1)},e.prototype.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow;return this.session.documentToScreenRow(t,0)*e.lineHeight-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},e.prototype.getLastVisibleRow=function(){return this.layerConfig.lastRow},e.prototype.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},e.prototype.setScrollMargin=function(e,t,n,o){var i=this.scrollMargin;i.top=0|e,i.bottom=0|t,i.right=0|o,i.left=0|n,i.v=i.top+i.bottom,i.h=i.left+i.right,i.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-i.top),this.updateFull()},e.prototype.setMargin=function(e,t,n,o){var i=this.margin;i.top=0|e,i.bottom=0|t,i.right=0|o,i.left=0|n,i.v=i.top+i.bottom,i.h=i.left+i.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},e.prototype.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},e.prototype.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},e.prototype.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},e.prototype.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},e.prototype.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},e.prototype.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},e.prototype.freeze=function(){this.$frozen=!0},e.prototype.unfreeze=function(){this.$frozen=!1},e.prototype.$renderChanges=function(e,t){if(this.$changes&&(e|=this.$changes,this.$changes=0),this.session&&this.container.offsetWidth&&!this.$frozen&&(e||t)){if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender",e),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var n=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){if(e|=this.$computeLayerConfig()|this.$loop.clear(),n.firstRow!=this.layerConfig.firstRow&&n.firstRowScreen==this.layerConfig.firstRowScreen){var o=this.scrollTop+(n.firstRow-Math.max(this.layerConfig.firstRow,0))*this.lineHeight;o>0&&(this.scrollTop=o,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig()|this.$loop.clear())}n=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),i.translate(this.content,-this.scrollLeft,-n.offset);var r=n.width+2*this.$padding+"px",s=n.minHeight+"px";i.setStyle(this.content.style,"width",r),i.setStyle(this.content.style,"height",s)}if(e&this.CHANGE_H_SCROLL&&(i.translate(this.content,-this.scrollLeft,-n.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller ":"ace_scroller ace_scroll-left ",this.enableKeyboardAccessibility&&(this.scroller.className+=this.keyboardFocusClassName)),e&this.CHANGE_FULL)return this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),void this._signal("afterRender",e);if(e&this.CHANGE_SCROLL)return this.$changedLines=null,e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(n):this.$textLayer.scrollLines(n),this.$showGutter&&(e&this.CHANGE_GUTTER||e&this.CHANGE_LINES?this.$gutterLayer.update(n):this.$gutterLayer.scrollLines(n)),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),void this._signal("afterRender",e);e&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_LINES?((this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER?(this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_CURSOR&&(this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(n),this.$moveTextAreaToCursor()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(n),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(n),this._signal("afterRender",e)}else this.$changes|=e},e.prototype.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,n=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(n+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&n>this.$maxPixelHeight&&(n=this.$maxPixelHeight);var o=!(n<=2*this.lineHeight)&&e>t;if(n!=this.desiredHeight||this.$size.height!=this.desiredHeight||o!=this.$vScroll){o!=this.$vScroll&&(this.$vScroll=o,this.scrollBarV.setVisible(o));var i=this.container.clientWidth;this.container.style.height=n+"px",this.$updateCachedSize(!0,this.$gutterWidth,i,n),this.desiredHeight=n,this._signal("autosize")}},e.prototype.$computeLayerConfig=function(){var e=this.session,t=this.$size,n=t.height<=2*this.lineHeight,o=this.session.getScreenLength()*this.lineHeight,i=this.$getLongestLine(),r=!n&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-i-2*this.$padding<0),s=this.$horizScroll!==r;s&&(this.$horizScroll=r,this.scrollBarH.setVisible(r));var a=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var l=t.scrollerHeight+this.lineHeight,c=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;o+=c;var u=this.scrollMargin;this.session.setScrollTop(Math.max(-u.top,Math.min(this.scrollTop,o-t.scrollerHeight+u.bottom))),this.session.setScrollLeft(Math.max(-u.left,Math.min(this.scrollLeft,i+2*this.$padding-t.scrollerWidth+u.right)));var h=!n&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-o+c<0||this.scrollTop>u.top),d=a!==h;d&&(this.$vScroll=h,this.scrollBarV.setVisible(h));var p,g,m=this.scrollTop%this.lineHeight,f=Math.ceil(l/this.lineHeight)-1,y=Math.max(0,Math.round((this.scrollTop-m)/this.lineHeight)),v=y+f,b=this.lineHeight;y=e.screenToDocumentRow(y,0);var w=e.getFoldLine(y);w&&(y=w.start.row),p=e.documentToScreenRow(y,0),g=e.getRowLength(y)*b,v=Math.min(e.screenToDocumentRow(v,0),e.getLength()-1),l=t.scrollerHeight+e.getRowLength(v)*b+g,m=this.scrollTop-p*b;var x=0;return(this.layerConfig.width!=i||s)&&(x=this.CHANGE_H_SCROLL),(s||d)&&(x|=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),d&&(i=this.$getLongestLine())),this.layerConfig={width:i,padding:this.$padding,firstRow:y,firstRowScreen:p,lastRow:v,lineHeight:b,characterWidth:this.characterWidth,minHeight:l,maxHeight:o,offset:m,gutterOffset:b?Math.max(0,Math.ceil((m+t.height-t.scrollerHeight)/b)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(i-this.$padding),x},e.prototype.$updateLines=function(){if(this.$changedLines){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var n=this.layerConfig;if(!(e>n.lastRow+1||tthis.$textLayer.MAX_LINE_LENGTH&&(e=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(e*this.characterWidth))},e.prototype.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},e.prototype.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},e.prototype.addGutterDecoration=function(e,t){this.$gutterLayer.addGutterDecoration(e,t)},e.prototype.removeGutterDecoration=function(e,t){this.$gutterLayer.removeGutterDecoration(e,t)},e.prototype.updateBreakpoints=function(e){this.$loop.schedule(this.CHANGE_GUTTER)},e.prototype.setAnnotations=function(e){this.$gutterLayer.setAnnotations(e),this.$loop.schedule(this.CHANGE_GUTTER)},e.prototype.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},e.prototype.hideCursor=function(){this.$cursorLayer.hideCursor()},e.prototype.showCursor=function(){this.$cursorLayer.showCursor()},e.prototype.scrollSelectionIntoView=function(e,t,n){this.scrollCursorIntoView(e,n),this.scrollCursorIntoView(t,n)},e.prototype.scrollCursorIntoView=function(e,t,n){if(0!==this.$size.scrollerHeight){var o=this.$cursorLayer.getPixelPosition(e),i=o.left,r=o.top,s=n&&n.top||0,a=n&&n.bottom||0;this.$scrollAnimation&&(this.$stopAnimation=!0);var l=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;l+s>r?(t&&l+s>r+this.lineHeight&&(r-=t*this.$size.scrollerHeight),0===r&&(r=-this.scrollMargin.top),this.session.setScrollTop(r)):l+this.$size.scrollerHeight-a=1-this.scrollMargin.top||t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right||void 0},e.prototype.pixelToScreenCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var o=this.$fontMetrics.transformCoordinates([e,t]);e=o[1]-this.gutterWidth-this.margin.left,t=o[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,r=i/this.characterWidth,s=Math.floor((t+this.scrollTop-n.top)/this.lineHeight),a=this.$blockCursor?Math.floor(r):Math.round(r);return{row:s,column:a,side:r-a>0?1:-1,offsetX:i}},e.prototype.screenToTextCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var o=this.$fontMetrics.transformCoordinates([e,t]);e=o[1]-this.gutterWidth-this.margin.left,t=o[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,r=i/this.characterWidth,s=this.$blockCursor?Math.floor(r):Math.round(r),a=Math.floor((t+this.scrollTop-n.top)/this.lineHeight);return this.session.screenToDocumentPosition(a,Math.max(s,0),i)},e.prototype.textToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),o=this.session.documentToScreenPosition(e,t),i=this.$padding+(this.session.$bidiHandler.isBidiRow(o.row,e)?this.session.$bidiHandler.getPosLeft(o.column):Math.round(o.column*this.characterWidth)),r=o.row*this.lineHeight;return{pageX:n.left+i-this.scrollLeft,pageY:n.top+r-this.scrollTop}},e.prototype.visualizeFocus=function(){i.addCssClass(this.container,"ace_focus")},e.prototype.visualizeBlur=function(){i.removeCssClass(this.container,"ace_focus")},e.prototype.showComposition=function(e){this.$composition=e,e.cssText||(e.cssText=this.textarea.style.cssText),null==e.useTextareaForIME&&(e.useTextareaForIME=this.$useTextareaForIME),this.$useTextareaForIME?(i.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display="none"):e.markerId=this.session.addMarker(e.markerRange,"ace_composition_marker","text")},e.prototype.setCompositionText=function(e){var t=this.session.selection.cursor;this.addToken(e,"composition_placeholder",t.row,t.column),this.$moveTextAreaToCursor()},e.prototype.hideComposition=function(){if(this.$composition){this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),i.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText;var e=this.session.selection.cursor;this.removeExtraToken(e.row,e.column),this.$composition=null,this.$cursorLayer.element.style.display=""}},e.prototype.setGhostText=function(e,t){var n=this.session.selection.cursor,o=t||{row:n.row,column:n.column};this.removeGhostText();var i=e.split("\n");if(this.addToken(i[0],"ghost_text",o.row,o.column),this.$ghostText={text:e,position:{row:o.row,column:o.column}},i.length>1){this.$ghostTextWidget={text:i.slice(1).join("\n"),row:o.row,column:o.column,className:"ace_ghost_text"},this.session.widgetManager.addLineWidget(this.$ghostTextWidget);var r=this.$cursorLayer.getPixelPosition(o,!0),s=this.container.getBoundingClientRect().height,a=i.length*this.lineHeight;if(a1||Math.abs(e.$size.height-o)>1?e.$resizeTimer.delay():e.$resizeTimer.cancel()})),this.$resizeObserver.observe(this.container)}},e}();x.prototype.CHANGE_CURSOR=1,x.prototype.CHANGE_MARKER=2,x.prototype.CHANGE_GUTTER=4,x.prototype.CHANGE_SCROLL=8,x.prototype.CHANGE_LINES=16,x.prototype.CHANGE_TEXT=32,x.prototype.CHANGE_SIZE=64,x.prototype.CHANGE_MARKER_BACK=128,x.prototype.CHANGE_MARKER_FRONT=256,x.prototype.CHANGE_FULL=512,x.prototype.CHANGE_H_SCROLL=1024,x.prototype.$changes=0,x.prototype.$padding=null,x.prototype.$frozen=!1,x.prototype.STEPS=8,o.implement(x.prototype,y),s.defineOptions(x.prototype,"renderer",{useResizeObserver:{set:function(e){!e&&this.$resizeObserver?(this.$resizeObserver.disconnect(),this.$resizeTimer.cancel(),this.$resizeTimer=this.$resizeObserver=null):e&&!this.$resizeObserver&&this.$addResizeObserver()}},animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){"number"==typeof e&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},useSvgGutterIcons:{set:function(e){this.$gutterLayer.$useSvgGutterIcons=e},initialValue:!1},showFoldedAnnotations:{set:function(e){this.$gutterLayer.$showFoldedAnnotations=e},initialValue:!1},fadeFoldWidgets:{set:function(e){i.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightIndentGuides:{set:function(e){1==this.$textLayer.setHighlightIndentGuides(e)?this.$textLayer.$highlightIndentGuide():this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells)},initialValue:!0},highlightGutterLine:{set:function(e){this.$gutterLayer.setHighlightGutterLine(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},hScrollBarAlwaysVisible:{set:function(e){this.$hScrollBarAlwaysVisible&&this.$horizScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){this.$vScrollBarAlwaysVisible&&this.$vScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){"number"==typeof e&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.$minLines<562949953421311||(this.$minLines=0),this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0,this.$scrollPastEnd!=e&&(this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},customScrollbar:{set:function(e){this.$updateCustomScrollbar(e)},initialValue:!1},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0},hasCssTransforms:{},useTextareaForIME:{initialValue:!w.isMobile&&!w.isIE}}),t.VirtualRenderer=x})),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("../lib/net"),r=e("../lib/event_emitter").EventEmitter,s=e("../config");function a(e){if("undefined"==typeof Worker)return{postMessage:function(){},terminate:function(){}};if(s.get("loadWorkerFromBlob")){var t=function(e){var t="importScripts('"+i.qualifyURL(e)+"');";try{return new Blob([t],{type:"application/javascript"})}catch(e){var n=new(window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder);return n.append(t),n.getBlob("application/javascript")}}(e),n=(window.URL||window.webkitURL).createObjectURL(t);return new Worker(n)}return new Worker(e)}var l=function(e){e.postMessage||(e=this.$createWorkerFromOldConfig.apply(this,arguments)),this.$worker=e,this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){o.implement(this,r),this.$createWorkerFromOldConfig=function(t,n,o,i,r){if(e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl),s.get("packaged")||!e.toUrl)i=i||s.moduleUrl(n,"worker");else{var l=this.$normalizePath;i=i||l(e.toUrl("ace/worker/worker.js",null,"_"));var c={};t.forEach((function(t){c[t]=l(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))}))}return this.$worker=a(i),r&&this.send("importScripts",r),this.$worker.postMessage({init:!0,tlns:c,module:n,classname:o}),this.$worker},this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var n=this.callbacks[t.id];n&&(n(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return i.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker.onerror=function(e){e.preventDefault()},this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,n){if(n){var o=this.callbackId++;this.callbacks[o]=n,t.push(o)}this.send(e,t)},this.emit=function(e,t){try{t.data&&t.data.err&&(t.data.err={message:t.data.err.message,stack:t.data.err.stack,code:t.data.err.code}),this.$worker&&this.$worker.postMessage({event:e,data:{data:t.data}})}catch(e){console.error(e.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener,!0)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),"insert"==e.action?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;e&&(this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e}))}}).call(l.prototype),t.UIWorkerClient=function(e,t,n){var o=null,i=!1,a=Object.create(r),c=[],u=new l({messageBuffer:c,terminate:function(){},postMessage:function(e){c.push(e),o&&(i?setTimeout(h):h())}});u.setEmitSync=function(e){i=e};var h=function(){var e=c.shift();e.command?o[e.command].apply(o,e.args):e.event&&a._signal(e.event,e.data)};return a.postMessage=function(e){u.onMessage({data:e})},a.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},a.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},s.loadModule(["worker",t],(function(e){for(o=new e[n](a);c.length;)h()})),u},t.WorkerClient=l,t.createWorker=a})),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],(function(e,t,n){"use strict";var o=e("./range").Range,i=e("./lib/event_emitter").EventEmitter,r=e("./lib/oop"),s=function(){function e(e,t,n,o,i,r){var s=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=i,this.othersClass=r,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate,!0),this.$others=o,this.$onCursorChange=function(){setTimeout((function(){s.onCursorChange()}))},this.$pos=n;var a=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=a.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)}return e.prototype.setup=function(){var e=this,t=this.doc,n=this.session;this.selectionBefore=n.selection.toJSON(),n.selection.inMultiSelectMode&&n.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var i=this.pos;i.$insertRight=!0,i.detach(),i.markerId=n.addMarker(new o(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach((function(n){var o=t.createAnchor(n.row,n.column);o.$insertRight=!0,o.detach(),e.others.push(o)})),n.setUndoSelect(!1)},e.prototype.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach((function(n){n.markerId=e.addMarker(new o(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1)}))}},e.prototype.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,r=t.start.column-this.pos.column;if(this.updateAnchors(e),i&&(this.length+=n),i&&!this.session.$fromUndo)if("insert"===e.action)for(var s=this.others.length-1;s>=0;s--){var a={row:(l=this.others[s]).row,column:l.column+r};this.doc.insertMergedLines(a,e.lines)}else if("remove"===e.action)for(s=this.others.length-1;s>=0;s--){var l;a={row:(l=this.others[s]).row,column:l.column+r},this.doc.remove(new o(a.row,a.column,a.row,a.column-n))}this.$updating=!1,this.updateMarkers()}},e.prototype.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},e.prototype.updateMarkers=function(){if(!this.$updating){var e=this,t=this.session,n=function(n,i){t.removeMarker(n.markerId),n.markerId=t.addMarker(new o(n.row,n.column,n.row,n.column+e.length),i,null,!1)};n(this.pos,this.mainClass);for(var i=this.others.length;i--;)n(this.others[i],this.othersClass)}},e.prototype.onCursorChange=function(e){if(!this.$updating&&this.session){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))}},e.prototype.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.off("change",this.$onUpdate),this.session.selection.off("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},e.prototype.cancel=function(){if(-1!==this.$undoStackDepth){for(var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth,n=0;n1?e.multiSelect.joinSelections():e.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"splitSelectionIntoLines",description:"Split into lines",exec:function(e){e.multiSelect.splitIntoLines()},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(e){e.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(e){e.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],t.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(e){e.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(e){return e&&e.inMultiSelectMode}}];var o=e("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new o(t.multiSelectCommands)})),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],(function(e,t,n){var o=e("./range_list").RangeList,i=e("./range").Range,r=e("./selection").Selection,s=e("./mouse/multi_select_handler").onMouseDown,a=e("./lib/event"),l=e("./lib/lang"),c=e("./commands/multi_select_commands");t.commands=c.defaultCommands.concat(c.multiSelectCommands);var u=new(0,e("./search").Search),h=e("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(h.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(e){if(!this.inMultiSelectMode&&0===this.rangeCount){var n=this.toOrientedRange();if(this.rangeList.add(n),this.rangeList.add(e),2!=this.rangeList.ranges.length)return this.rangeList.removeAll(),t||this.fromOrientedRange(e);this.rangeList.removeAll(),this.rangeList.add(n),this.$onAddRange(n)}e.cursor||(e.cursor=e.end);var o=this.rangeList.add(e);return this.$onAddRange(e),o.length&&this.$onRemoveRange(o),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)}},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length&&this.$onRemoveRange(e)},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){if(this.rangeCount=this.rangeList.ranges.length,1==this.rangeCount&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var o=this.ranges.indexOf(e[n]);this.ranges.splice(o,1)}this._signal("removeRange",{ranges:e}),0===this.rangeCount&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),(t=t||this.ranges[0])&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new o,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){for(var e=this.ranges.length?this.ranges:[this.getRange()],t=[],n=0;n1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var o=this.session.documentToScreenPosition(this.cursor),r=this.session.documentToScreenPosition(this.anchor);this.rectangularRangeBlock(o,r).forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var o=[],r=e.column0;)v--;if(v>0)for(var b=0;o[b].isEmpty();)b++;for(var w=v;w>=b;w--)o[w].isEmpty()&&o.splice(w,1)}return o}}.call(r.prototype);var d=e("./editor").Editor;function p(e){e.$multiselectOnSessionChange||(e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on("changeSession",e.$multiselectOnSessionChange),e.on("mousedown",s),e.commands.addCommands(c.defaultCommands),function(e){if(e.textInput){var t=e.textInput.getElement(),n=!1;a.addListener(t,"keydown",(function(t){var i=18==t.keyCode&&!(t.ctrlKey||t.shiftKey||t.metaKey);e.$blockSelectEnabled&&i?n||(e.renderer.setMouseCursor("crosshair"),n=!0):n&&o()}),e),a.addListener(t,"keyup",o,e),a.addListener(t,"blur",o,e)}function o(t){n&&(e.renderer.setMouseCursor(""),n=!1)}}(e))}(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(e.marker){this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);-1!=t&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(e){for(var t=this.session.$selectionMarkers,n=e.length;n--;){var o=e[n];if(o.marker){this.session.removeMarker(o.marker);var i=t.indexOf(o);-1!=i&&t.splice(i,1)}}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(c.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(e){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(c.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(n.multiSelect){if(t.multiSelectAction)"forEach"==t.multiSelectAction?o=n.forEachSelection(t,e.args):"forEachLine"==t.multiSelectAction?o=n.forEachSelection(t,e.args,!0):"single"==t.multiSelectAction?(n.exitMultiSelectMode(),o=t.exec(n,e.args||{})):o=t.multiSelectAction(n,e.args||{});else{var o=t.exec(n,e.args||{});n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()}return o}},this.forEachSelection=function(e,t,n){if(!this.inVirtualSelectionMode){var o,i=n&&n.keepOrder,s=1==n||n&&n.$byLines,a=this.session,l=this.selection,c=l.rangeList,u=(i?l:c).ranges;if(!u.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var h=l._eventRegistry;l._eventRegistry={};var d=new r(a);this.inVirtualSelectionMode=!0;for(var p=u.length;p--;){if(s)for(;p>0&&u[p].start.row==u[p-1].end.row;)p--;d.fromOrientedRange(u[p]),d.index=p,this.selection=a.selection=d;var g=e.exec?e.exec(this,t||{}):e(this,t||{});o||void 0===g||(o=g),d.toOrientedRange(u[p])}d.detach(),this.selection=a.selection=l,this.inVirtualSelectionMode=!1,l._eventRegistry=h,l.mergeOverlappingRanges(),l.ranges[0]&&l.fromOrientedRange(l.ranges[0]);var m=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),m&&m.from==m.to&&this.renderer.animateScrolling(m.from),o}},this.exitMultiSelectMode=function(){this.inMultiSelectMode&&!this.inVirtualSelectionMode&&this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var t=this.multiSelect.rangeList.ranges,n=[],o=0;os&&(s=n.column),ou?e.insert(o,l.stringRepeat(" ",r-u)):e.remove(new i(o.row,o.column,o.row,o.column-r+u)),t.start.column=t.end.column=s,t.start.row=t.end.row=o.row,t.cursor=t.end})),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}else{var u=this.selection.getRange(),h=u.start.row,d=u.end.row,p=h==d;if(p){var g,m=this.session.getLength();do{g=this.session.getLine(d)}while(/[=:]/.test(g)&&++d0);h<0&&(h=0),d>=m&&(d=m-1)}var f=this.session.removeFullLines(h,d);f=this.$reAlignText(f,p),this.session.insert({row:h,column:0},f.join("\n")+"\n"),p||(u.start.column=0,u.end.column=f[f.length-1].length),this.selection.setRange(u)}},this.$reAlignText=function(e,t){var n,o,i,r=!0,s=!0;return e.map((function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?null==n?(n=t[1].length,o=t[2].length,i=t[3].length,t):(n+o+i!=t[1].length+t[2].length+t[3].length&&(s=!1),n!=t[1].length&&(r=!1),n>t[1].length&&(n=t[1].length),ot[3].length&&(i=t[3].length),t):[e]})).map(t?c:r?s?function(e){return e[2]?a(n+o-e[2].length)+e[2]+a(i)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}:c:function(e){return e[2]?a(n)+e[2]+a(i)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]});function a(e){return l.stringRepeat(" ",e)}function c(e){return e[2]?a(n)+e[2]+a(o-e[2].length+i)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}}}).call(d.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var n=e.oldSession;n&&(n.multiSelect.off("addRange",this.$onAddRange),n.multiSelect.off("removeRange",this.$onRemoveRange),n.multiSelect.off("multiSelect",this.$onMultiSelect),n.multiSelect.off("singleSelect",this.$onSingleSelect),n.multiSelect.lead.off("change",this.$checkMultiselectChange),n.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=p,e("./config").defineOptions(d.prototype,"editor",{enableMultiselect:{set:function(e){p(this),e?this.on("mousedown",s):this.off("mousedown",s)},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})})),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../../range").Range,i=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);return this.foldingStartMarker.test(o)?"start":"markbeginend"==t&&this.foldingStopMarker&&this.foldingStopMarker.test(o)?"end":""},this.getFoldWidgetRange=function(e,t,n){return null},this.indentationBlock=function(e,t,n){var i=/\S/,r=e.getLine(t),s=r.search(i);if(-1!=s){for(var a=n||r.length,l=e.getLength(),c=t,u=t;++tc){var p=e.getLine(u).length;return new o(c,a,u,p)}}},this.openingBracketBlock=function(e,t,n,i,r){var s={row:n,column:i+1},a=e.$findClosingBracket(t,s,r);if(a){var l=e.foldWidgets[a.row];return null==l&&(l=e.getFoldWidget(a.row)),"start"==l&&a.row>s.row&&(a.row--,a.column=e.getLine(a.row).length),o.fromPoints(s,a)}},this.closingBracketBlock=function(e,t,n,i,r){var s={row:n,column:i},a=e.$findOpeningBracket(t,s);if(a)return a.column++,s.column--,o.fromPoints(a,s)}}).call(i.prototype)})),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range","ace/config"],(function(e,t,n){"use strict";var o=e("../line_widgets").LineWidgets,i=e("../lib/dom"),r=e("../range").Range,s=e("../config").nls;t.showErrorMarker=function(e,t){var n=e.session;n.widgetManager||(n.widgetManager=new o(n),n.widgetManager.attach(e));var a=e.getCursorPosition(),l=a.row,c=n.widgetManager.getWidgetsAtRow(l).filter((function(e){return"errorMarker"==e.type}))[0];c?c.destroy():l-=t;var u,h=function(e,t,n){var o=e.getAnnotations().sort(r.comparePoints);if(o.length){var i=function(e,t,n){for(var o=0,i=e.length-1;o<=i;){var r=o+i>>1,s=n(t,e[r]);if(s>0)o=r+1;else{if(!(s<0))return r;i=r-1}}return-(o+1)}(o,{row:t,column:-1},r.comparePoints);i<0&&(i=-i-1),i>=o.length?i=n>0?0:o.length-1:0===i&&n<0&&(i=o.length-1);var s=o[i];if(s&&n){if(s.row===t){do{s=o[i+=n]}while(s&&s.row===t);if(!s)return o.slice()}var a=[];t=s.row;do{a[n<0?"unshift":"push"](s),s=o[i+=n]}while(s&&s.row==t);return a.length&&a}}}(n,l,t);if(h){var d=h[0];a.column=(d.pos&&"number"!=typeof d.column?d.pos.sc:d.column)||0,a.row=d.row,u=e.renderer.$gutterLayer.$annotations[a.row]}else{if(c)return;u={text:[s("Looks good!")],className:"ace_ok"}}e.session.unfold(a.row),e.selection.moveToPosition(a);var p={row:a.row,fixedWidth:!0,coverGutter:!0,el:i.createElement("div"),type:"errorMarker"},g=p.el.appendChild(i.createElement("div")),m=p.el.appendChild(i.createElement("div"));m.className="error_widget_arrow "+u.className;var f=e.renderer.$cursorLayer.getPixelPosition(a).left;m.style.left=f+e.renderer.gutterWidth-5+"px",p.el.className="error_widget_wrapper",g.className="error_widget "+u.className,g.innerHTML=u.text.join("
    "),g.appendChild(i.createElement("div"));var y=function(e,t,n){if(0===t&&("esc"===n||"return"===n))return p.destroy(),{command:"null"}};p.destroy=function(){e.$mouseHandler.isMousePressed||(e.keyBinding.removeKeyboardHandler(y),n.widgetManager.removeLineWidget(p),e.off("changeSelection",p.destroy),e.off("changeSession",p.destroy),e.off("mouseup",p.destroy),e.off("change",p.destroy))},e.keyBinding.addKeyboardHandler(y),e.on("changeSelection",p.destroy),e.on("changeSession",p.destroy),e.on("mouseup",p.destroy),e.on("change",p.destroy),e.session.widgetManager.addLineWidget(p),p.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:p.el.offsetHeight})},i.importCssString("\n .error_widget_wrapper {\n background: inherit;\n color: inherit;\n border:none\n }\n .error_widget {\n border-top: solid 2px;\n border-bottom: solid 2px;\n margin: 5px 0;\n padding: 10px 40px;\n white-space: pre-wrap;\n }\n .error_widget.ace_error, .error_widget_arrow.ace_error{\n border-color: #ff5a5a\n }\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\n border-color: #F1D817\n }\n .error_widget.ace_info, .error_widget_arrow.ace_info{\n border-color: #5a5a5a\n }\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\n border-color: #5aaa5a\n }\n .error_widget_arrow {\n position: absolute;\n border: solid 5px;\n border-top-color: transparent!important;\n border-right-color: transparent!important;\n border-left-color: transparent!important;\n top: -5px;\n }\n","error_marker.css",!1)})),ace.define("ace/ace",["require","exports","module","ace/lib/dom","ace/range","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config","ace/loader_build"],(function(e,t,n){"use strict";e("./loader_build")(t);var o=e("./lib/dom"),i=e("./range").Range,r=e("./editor").Editor,s=e("./edit_session").EditSession,a=e("./undomanager").UndoManager,l=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.edit=function(e,n){if("string"==typeof e){var i=e;if(!(e=document.getElementById(i)))throw new Error("ace.edit can't find div #"+i)}if(e&&e.env&&e.env.editor instanceof r)return e.env.editor;var s="";if(e&&/input|textarea/i.test(e.tagName)){var a=e;s=a.value,e=o.createElement("pre"),a.parentNode.replaceChild(e,a)}else e&&(s=e.textContent,e.innerHTML="");var c=t.createEditSession(s),u=new r(new l(e),c,n),h={document:c,editor:u,onResize:u.resize.bind(u,null)};return a&&(h.textarea=a),u.on("destroy",(function(){h.editor.container.env=null})),u.container.env=u.env=h,u},t.createEditSession=function(e,t){var n=new s(e,t);return n.setUndoManager(new a),n},t.Range=i,t.Editor=r,t.EditSession=s,t.UndoManager=a,t.VirtualRenderer=l,t.version=t.config.version})),ace.require(["ace/ace"],(function(t){t&&(t.config.init(!0),t.define=ace.define);var n=function(){return this}();for(var o in n||"undefined"==typeof window||(n=window),n||"undefined"==typeof self||(n=self),n.ace||(n.ace=t),t)t.hasOwnProperty(o)&&(n.ace[o]=t[o]);n.ace.default=n.ace,e&&(e.exports=n.ace)}))},134:(e,t,n)=>{e=n.nmd(e),ace.define("ace/ext/beautify",["require","exports","module","ace/token_iterator"],(function(e,t,n){"use strict";var o=e("../token_iterator").TokenIterator;function i(e,t){return e.type.lastIndexOf(t+".xml")>-1}t.singletonTags=["area","base","br","col","command","embed","hr","html","img","input","keygen","link","meta","param","source","track","wbr"],t.blockTags=["article","aside","blockquote","body","div","dl","fieldset","footer","form","head","header","html","nav","ol","p","script","section","style","table","tbody","tfoot","thead","ul"],t.formatOptions={lineBreaksAfterCommasInCurlyBlock:!0},t.beautify=function(e){for(var n,r,s,a=new o(e,0,0),l=a.getCurrentToken(),c=e.getTabString(),u=t.singletonTags,h=t.blockTags,d=t.formatOptions||{},p=!1,g=!1,m=!1,f="",y="",v="",b=0,w=0,x=0,k=0,C=0,$=0,S=0,E=0,O=0,T=!1,A=!1,_=!1,L=!1,M={0:0},R=[],N=!1,I=function(){n&&n.value&&"string.regexp"!==n.type&&(n.value=n.value.replace(/^\s*/,""))},P=function(){for(var e=f.length-1;0!=e&&" "===f[e];)e-=1;f=f.slice(0,e+1)},D=function(){f=f.trimRight(),p=!1};null!==l;){if(E=a.getCurrentTokenRow(),a.$rowTokens,n=a.stepForward(),void 0!==l){if(y=l.value,C=0,_="style"===v||"ace/mode/css"===e.$modeId,i(l,"tag-open")?(A=!0,n&&(L=-1!==h.indexOf(n.value)),"0;O--)f+="\n";p=!0,i(l,"comment")||l.type.match(/^(comment|string)$/)||(y=y.trimLeft())}if(y){if("keyword"===l.type&&y.match(/^(if|else|elseif|for|foreach|while|switch)$/)?(R[b]=y,I(),m=!0,y.match(/^(else|elseif)$/)&&f.match(/\}[\s]*$/)&&(D(),g=!0)):"paren.lparen"===l.type?(I(),"{"===y.substr(-1)&&(m=!0,T=!1,A||(O=1)),"{"===y.substr(0,1)&&(g=!0,"["!==f.substr(-1)&&"["===f.trimRight().substr(-1)?(D(),g=!1):")"===f.trimRight().substr(-1)?D():P())):"paren.rparen"===l.type?(C=1,"}"===y.substr(0,1)&&("case"===R[b-1]&&C++,"{"===f.trimRight().substr(-1)?D():(g=!0,_&&(O+=2))),"]"===y.substr(0,1)&&"}"!==f.substr(-1)&&"}"===f.trimRight().substr(-1)&&(g=!1,k++,D()),")"===y.substr(0,1)&&"("!==f.substr(-1)&&"("===f.trimRight().substr(-1)&&(g=!1,k++,D()),P()):"keyword.operator"!==l.type&&"keyword"!==l.type||!y.match(/^(=|==|===|!=|!==|&&|\|\||and|or|xor|\+=|.=|>|>=|<|<=|=>)$/)?"punctuation.operator"===l.type&&";"===y?(D(),I(),m=!0,_&&O++):"punctuation.operator"===l.type&&y.match(/^(:|,)$/)?(D(),I(),y.match(/^(,)$/)&&S>0&&0===$&&d.lineBreaksAfterCommasInCurlyBlock?O++:(m=!0,p=!1)):"support.php_tag"!==l.type||"?>"!==y||p?i(l,"attribute-name")&&f.substr(-1).match(/^\s$/)?g=!0:i(l,"attribute-equals")?(P(),I()):i(l,"tag-close")?(P(),"/>"===y&&(g=!0)):"keyword"===l.type&&y.match(/^(case|default)$/)&&N&&(C=1):(D(),g=!0):(D(),I(),g=!0,m=!0),p&&(!l.type.match(/^(comment)$/)||y.substr(0,1).match(/^[/#]$/))&&(!l.type.match(/^(string)$/)||y.substr(0,1).match(/^['"@]$/))){if(k=x,b>w)for(k++,s=b;s>w;s--)M[s]=k;else b"===y)&&(O=L&&n&&""===y&&b--),i(l,"tag-name")&&(v=y),r=E}}l=n}f=f.trim(),e.doc.setValue(f)},t.commands=[{name:"beautify",description:"Format selection (Beautify)",exec:function(e){t.beautify(e.session)},bindKey:"Ctrl-Shift-B"}]})),ace.require(["ace/ext/beautify"],(function(t){e&&(e.exports=t)}))},604:(e,t,n)=>{e=n.nmd(e),ace.define("ace/ext/searchbox-css",["require","exports","module"],(function(e,t,n){n.exports='\n\n/* ------------------------------------------------------------------------------------------\n * Editor Search Form\n * --------------------------------------------------------------------------------------- */\n.ace_search {\n background-color: #ddd;\n color: #666;\n border: 1px solid #cbcbcb;\n border-top: 0 none;\n overflow: hidden;\n margin: 0;\n padding: 4px 6px 0 4px;\n position: absolute;\n top: 0;\n z-index: 99;\n white-space: normal;\n}\n.ace_search.left {\n border-left: 0 none;\n border-radius: 0px 0px 5px 0px;\n left: 0;\n}\n.ace_search.right {\n border-radius: 0px 0px 0px 5px;\n border-right: 0 none;\n right: 0;\n}\n\n.ace_search_form, .ace_replace_form {\n margin: 0 20px 4px 0;\n overflow: hidden;\n line-height: 1.9;\n}\n.ace_replace_form {\n margin-right: 0;\n}\n.ace_search_form.ace_nomatch {\n outline: 1px solid red;\n}\n\n.ace_search_field {\n border-radius: 3px 0 0 3px;\n background-color: white;\n color: black;\n border: 1px solid #cbcbcb;\n border-right: 0 none;\n outline: 0;\n padding: 0;\n font-size: inherit;\n margin: 0;\n line-height: inherit;\n padding: 0 6px;\n min-width: 17em;\n vertical-align: top;\n min-height: 1.8em;\n box-sizing: content-box;\n}\n.ace_searchbtn {\n border: 1px solid #cbcbcb;\n line-height: inherit;\n display: inline-block;\n padding: 0 6px;\n background: #fff;\n border-right: 0 none;\n border-left: 1px solid #dcdcdc;\n cursor: pointer;\n margin: 0;\n position: relative;\n color: #666;\n}\n.ace_searchbtn:last-child {\n border-radius: 0 3px 3px 0;\n border-right: 1px solid #cbcbcb;\n}\n.ace_searchbtn:disabled {\n background: none;\n cursor: default;\n}\n.ace_searchbtn:hover {\n background-color: #eef1f6;\n}\n.ace_searchbtn.prev, .ace_searchbtn.next {\n padding: 0px 0.7em\n}\n.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\n content: "";\n border: solid 2px #888;\n width: 0.5em;\n height: 0.5em;\n border-width: 2px 0 0 2px;\n display:inline-block;\n transform: rotate(-45deg);\n}\n.ace_searchbtn.next:after {\n border-width: 0 2px 2px 0 ;\n}\n.ace_searchbtn_close {\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\n border-radius: 50%;\n border: 0 none;\n color: #656565;\n cursor: pointer;\n font: 16px/16px Arial;\n padding: 0;\n height: 14px;\n width: 14px;\n top: 9px;\n right: 7px;\n position: absolute;\n}\n.ace_searchbtn_close:hover {\n background-color: #656565;\n background-position: 50% 100%;\n color: white;\n}\n\n.ace_button {\n margin-left: 2px;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -o-user-select: none;\n -ms-user-select: none;\n user-select: none;\n overflow: hidden;\n opacity: 0.7;\n border: 1px solid rgba(100,100,100,0.23);\n padding: 1px;\n box-sizing: border-box!important;\n color: black;\n}\n\n.ace_button:hover {\n background-color: #eee;\n opacity:1;\n}\n.ace_button:active {\n background-color: #ddd;\n}\n\n.ace_button.checked {\n border-color: #3399ff;\n opacity:1;\n}\n\n.ace_search_options{\n margin-bottom: 3px;\n text-align: right;\n -webkit-user-select: none;\n -moz-user-select: none;\n -o-user-select: none;\n -ms-user-select: none;\n user-select: none;\n clear: both;\n}\n\n.ace_search_counter {\n float: left;\n font-family: arial;\n padding: 0 8px;\n}'})),ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/ext/searchbox-css","ace/keyboard/hash_handler","ace/lib/keys","ace/config"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=e("../lib/lang"),r=e("../lib/event"),s=e("./searchbox-css"),a=e("../keyboard/hash_handler").HashHandler,l=e("../lib/keys"),c=e("../config").nls;o.importCssString(s,"ace_searchbox",!1);var u=function(){function e(e,t,n){var i=o.createElement("div");o.buildDom(["div",{class:"ace_search right"},["span",{action:"hide",class:"ace_searchbtn_close"}],["div",{class:"ace_search_form"},["input",{class:"ace_search_field",placeholder:c("Search for"),spellcheck:"false"}],["span",{action:"findPrev",class:"ace_searchbtn prev"},"​"],["span",{action:"findNext",class:"ace_searchbtn next"},"​"],["span",{action:"findAll",class:"ace_searchbtn",title:"Alt-Enter"},c("All")]],["div",{class:"ace_replace_form"},["input",{class:"ace_search_field",placeholder:c("Replace with"),spellcheck:"false"}],["span",{action:"replaceAndFindNext",class:"ace_searchbtn"},c("Replace")],["span",{action:"replaceAll",class:"ace_searchbtn"},c("All")]],["div",{class:"ace_search_options"},["span",{action:"toggleReplace",class:"ace_button",title:c("Toggle Replace mode"),style:"float:left;margin-top:-2px;padding:0 5px;"},"+"],["span",{class:"ace_search_counter"}],["span",{action:"toggleRegexpMode",class:"ace_button",title:c("RegExp Search")},".*"],["span",{action:"toggleCaseSensitive",class:"ace_button",title:c("CaseSensitive Search")},"Aa"],["span",{action:"toggleWholeWords",class:"ace_button",title:c("Whole Word Search")},"\\b"],["span",{action:"searchInSelection",class:"ace_button",title:c("Search In Selection")},"S"]]],i),this.element=i.firstChild,this.setSession=this.setSession.bind(this),this.$init(),this.setEditor(e),o.importCssString(s,"ace_searchbox",e.container)}return e.prototype.setEditor=function(e){e.searchBox=this,e.renderer.scroller.appendChild(this.element),this.editor=e},e.prototype.setSession=function(e){this.searchRange=null,this.$syncOptions(!0)},e.prototype.$initElements=function(e){this.searchBox=e.querySelector(".ace_search_form"),this.replaceBox=e.querySelector(".ace_replace_form"),this.searchOption=e.querySelector("[action=searchInSelection]"),this.replaceOption=e.querySelector("[action=toggleReplace]"),this.regExpOption=e.querySelector("[action=toggleRegexpMode]"),this.caseSensitiveOption=e.querySelector("[action=toggleCaseSensitive]"),this.wholeWordOption=e.querySelector("[action=toggleWholeWords]"),this.searchInput=this.searchBox.querySelector(".ace_search_field"),this.replaceInput=this.replaceBox.querySelector(".ace_search_field"),this.searchCounter=e.querySelector(".ace_search_counter")},e.prototype.$init=function(){var e=this.element;this.$initElements(e);var t=this;r.addListener(e,"mousedown",(function(e){setTimeout((function(){t.activeInput.focus()}),0),r.stopPropagation(e)})),r.addListener(e,"click",(function(e){var n=(e.target||e.srcElement).getAttribute("action");n&&t[n]?t[n]():t.$searchBarKb.commands[n]&&t.$searchBarKb.commands[n].exec(t),r.stopPropagation(e)})),r.addCommandKeyListener(e,(function(e,n,o){var i=l.keyCodeToString(o),s=t.$searchBarKb.findKeyCommand(n,i);s&&s.exec&&(s.exec(t),r.stopEvent(e))})),this.$onChange=i.delayedCall((function(){t.find(!1,!1)})),r.addListener(this.searchInput,"input",(function(){t.$onChange.schedule(20)})),r.addListener(this.searchInput,"focus",(function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()})),r.addListener(this.replaceInput,"focus",(function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()}))},e.prototype.setSearchRange=function(e){this.searchRange=e,e?this.searchRangeMarker=this.editor.session.addMarker(e,"ace_active-line"):this.searchRangeMarker&&(this.editor.session.removeMarker(this.searchRangeMarker),this.searchRangeMarker=null)},e.prototype.$syncOptions=function(e){o.setCssClass(this.replaceOption,"checked",this.searchRange),o.setCssClass(this.searchOption,"checked",this.searchOption.checked),this.replaceOption.textContent=this.replaceOption.checked?"-":"+",o.setCssClass(this.regExpOption,"checked",this.regExpOption.checked),o.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked),o.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked);var t=this.editor.getReadOnly();this.replaceOption.style.display=t?"none":"",this.replaceBox.style.display=this.replaceOption.checked&&!t?"":"none",this.find(!1,!1,e)},e.prototype.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},e.prototype.find=function(e,t,n){var i=!this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:n,range:this.searchRange})&&this.searchInput.value;o.setCssClass(this.searchBox,"ace_nomatch",i),this.editor._emit("findSearchBox",{match:!i}),this.highlight(),this.updateCounter()},e.prototype.updateCounter=function(){var e=this.editor,t=e.$search.$options.re,n=t.unicode,o=0,r=0;if(t){var s=this.searchRange?e.session.getTextRange(this.searchRange):e.getValue(),a=e.session.doc.positionToIndex(e.selection.anchor);this.searchRange&&(a-=e.session.doc.positionToIndex(this.searchRange.start));for(var l,u=t.lastIndex=0;(l=t.exec(s))&&(o++,(u=l.index)<=a&&r++,!(o>999))&&(l[0]||(t.lastIndex=u+=i.skipEmptyMatch(s,u,n),!(u>=s.length))););}this.searchCounter.textContent=c("$0 of $1",[r,o>999?"999+":o])},e.prototype.findNext=function(){this.find(!0,!1)},e.prototype.findPrev=function(){this.find(!0,!0)},e.prototype.findAll=function(){var e=!this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked})&&this.searchInput.value;o.setCssClass(this.searchBox,"ace_nomatch",e),this.editor._emit("findSearchBox",{match:!e}),this.highlight(),this.hide()},e.prototype.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},e.prototype.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},e.prototype.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},e.prototype.hide=function(){this.active=!1,this.setSearchRange(null),this.editor.off("changeSession",this.setSession),this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},e.prototype.show=function(e,t){this.active=!0,this.editor.on("changeSession",this.setSession),this.element.style.display="",this.replaceOption.checked=t,e&&(this.searchInput.value=e),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb),this.$syncOptions(!0)},e.prototype.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput},e}(),h=new a;h.bindKeys({"Ctrl-f|Command-f":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?"":"none",e.replaceOption.checked=!1,e.$syncOptions(),e.searchInput.focus()},"Ctrl-H|Command-Option-F":function(e){e.editor.getReadOnly()||(e.replaceOption.checked=!0,e.$syncOptions(),e.replaceInput.focus())},"Ctrl-G|Command-G":function(e){e.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(e){e.findPrev()},esc:function(e){setTimeout((function(){e.hide()}))},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},"Shift-Return":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},"Alt-Return":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),h.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}},{name:"toggleReplace",exec:function(e){e.replaceOption.checked=!e.replaceOption.checked,e.$syncOptions()}},{name:"searchInSelection",exec:function(e){e.searchOption.checked=!e.searchRange,e.setSearchRange(e.searchOption.checked&&e.editor.getSelectionRange()),e.$syncOptions()}}]);var d=new a([{bindKey:"Esc",name:"closeSearchBar",exec:function(e){e.searchBox.hide()}}]);u.prototype.$searchBarKb=h,u.prototype.$closeSearchBarKb=d,t.SearchBox=u,t.Search=function(e,t){(e.searchBox||new u(e)).show(e.session.getTextRange(),t)}})),ace.require(["ace/ext/searchbox"],(function(t){e&&(e.exports=t)}))},549:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=(e("../lib/lang"),e("./text_highlight_rules").TextHighlightRules),r=t.supportType="align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index",s=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|flex-end|flex-start|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom",l=t.supportConstantColor="aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen",c=t.supportConstantFonts="arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",u=t.numRe="\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",d=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",p=function(){var e=this.createKeywordMapper({"support.function":s,"support.constant":a,"support.type":r,"support.constant.color":l,"support.constant.fonts":c},"text",!0);this.$rules={start:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"paren.rparen",regex:"\\}"},{token:"string",regex:"@(?!viewport)",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"keyword",regex:"%"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant.numeric",regex:u},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"start"},{token:"paren.rparen",regex:"\\}",next:"start"},{token:"string",regex:";",next:"start"},{token:"keyword",regex:"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)"}],comments:[{token:"comment",regex:"\\/\\*",push:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}]}],ruleset:[{regex:"-(webkit|ms|moz|o)-",token:"text"},{token:"punctuation.operator",regex:"[:;]"},{token:"paren.rparen",regex:"\\}",next:"start"},{include:["strings","url","comments"]},{token:["constant.numeric","keyword"],regex:"("+u+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"},{token:"constant.numeric",regex:u},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:d},{include:"url"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}],url:[{token:"support.function",regex:"(?:url(:?-prefix)?|domain|regexp)\\(",push:[{token:"support.function",regex:"\\)",next:"pop"},{defaultToken:"string"}]}],strings:[{token:"string.start",regex:"'",push:[{token:"string.end",regex:"'|$",next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]},{token:"string.start",regex:'"',push:[{token:"string.end",regex:'"|$',next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]}],escapes:[{token:"constant.language.escape",regex:/\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/}]},this.normalizeRules()};o.inherits(p,i),t.CssHighlightRules=p})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/css_completions",["require","exports","module"],(function(e,t,n){"use strict";var o={background:{"#$0":1},"background-color":{"#$0":1,transparent:1,fixed:1},"background-image":{"url('/$0')":1},"background-repeat":{repeat:1,"repeat-x":1,"repeat-y":1,"no-repeat":1,inherit:1},"background-position":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},"background-attachment":{scroll:1,fixed:1},"background-size":{cover:1,contain:1},"background-clip":{"border-box":1,"padding-box":1,"content-box":1},"background-origin":{"border-box":1,"padding-box":1,"content-box":1},border:{"solid $0":1,"dashed $0":1,"dotted $0":1,"#$0":1},"border-color":{"#$0":1},"border-style":{solid:2,dashed:2,dotted:2,double:2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},"border-collapse":{collapse:1,separate:1},bottom:{px:1,em:1,"%":1},clear:{left:1,right:1,both:1,none:1},color:{"#$0":1,"rgb(#$00,0,0)":1},cursor:{default:1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,"n-resize":1,"ne-resize":1,"e-resize":1,"se-resize":1,"s-resize":1,"sw-resize":1,"w-resize":1,"nw-resize":1},display:{none:1,block:1,inline:1,"inline-block":1,"table-cell":1},"empty-cells":{show:1,hide:1},float:{left:1,right:1,none:1},"font-family":{Arial:2,"Comic Sans MS":2,Consolas:2,"Courier New":2,Courier:2,Georgia:2,Monospace:2,"Sans-Serif":2,"Segoe UI":2,Tahoma:2,"Times New Roman":2,"Trebuchet MS":2,Verdana:1},"font-size":{px:1,em:1,"%":1},"font-weight":{bold:1,normal:1},"font-style":{italic:1,normal:1},"font-variant":{normal:1,"small-caps":1},height:{px:1,em:1,"%":1},left:{px:1,em:1,"%":1},"letter-spacing":{normal:1},"line-height":{normal:1},"list-style-type":{none:1,disc:1,circle:1,square:1,decimal:1,"decimal-leading-zero":1,"lower-roman":1,"upper-roman":1,"lower-greek":1,"lower-latin":1,"upper-latin":1,georgian:1,"lower-alpha":1,"upper-alpha":1},margin:{px:1,em:1,"%":1},"margin-right":{px:1,em:1,"%":1},"margin-left":{px:1,em:1,"%":1},"margin-top":{px:1,em:1,"%":1},"margin-bottom":{px:1,em:1,"%":1},"max-height":{px:1,em:1,"%":1},"max-width":{px:1,em:1,"%":1},"min-height":{px:1,em:1,"%":1},"min-width":{px:1,em:1,"%":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},"overflow-x":{hidden:1,visible:1,auto:1,scroll:1},"overflow-y":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,"%":1},"padding-top":{px:1,em:1,"%":1},"padding-right":{px:1,em:1,"%":1},"padding-bottom":{px:1,em:1,"%":1},"padding-left":{px:1,em:1,"%":1},"page-break-after":{auto:1,always:1,avoid:1,left:1,right:1},"page-break-before":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,static:1},right:{px:1,em:1,"%":1},"table-layout":{fixed:1,auto:1},"text-decoration":{none:1,underline:1,"line-through":1,blink:1},"text-align":{left:1,right:1,center:1,justify:1},"text-transform":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,"%":1},"vertical-align":{top:1,bottom:1},visibility:{hidden:1,visible:1},"white-space":{nowrap:1,normal:1,pre:1,"pre-line":1,"pre-wrap":1},width:{px:1,em:1,"%":1},"word-spacing":{normal:1},filter:{"alpha(opacity=$0100)":1},"text-shadow":{"$02px 2px 2px #777":1},"text-overflow":{"ellipsis-word":1,clip:1,ellipsis:1},"-moz-border-radius":1,"-moz-border-radius-topright":1,"-moz-border-radius-bottomright":1,"-moz-border-radius-topleft":1,"-moz-border-radius-bottomleft":1,"-webkit-border-radius":1,"-webkit-border-top-right-radius":1,"-webkit-border-top-left-radius":1,"-webkit-border-bottom-right-radius":1,"-webkit-border-bottom-left-radius":1,"-moz-box-shadow":1,"-webkit-box-shadow":1,transform:{"rotate($00deg)":1,"skew($00deg)":1},"-moz-transform":{"rotate($00deg)":1,"skew($00deg)":1},"-webkit-transform":{"rotate($00deg)":1,"skew($00deg)":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement("c").style;for(var t in e)if("string"==typeof e[t]){var n=t.replace(/[A-Z]/g,(function(e){return"-"+e.toLowerCase()}));o.hasOwnProperty(n)||(o[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,o){if(this.completionsDefined||this.defineCompletions(),"ruleset"===e||"ace/mode/scss"==t.$mode.$id){var i=t.getLine(n.row).substr(0,n.column),r=/\([^)]*$/.test(i);return r&&(i=i.substr(i.lastIndexOf("(")+1)),/:[^;]+$/.test(i)?(/([\w\-]+):[^:]*$/.test(i),this.getPropertyValueCompletions(e,t,n,o)):this.getPropertyCompletions(e,t,n,o,r)}return[]},this.getPropertyCompletions=function(e,t,n,i,r){return r=r||!1,Object.keys(o).map((function(e){return{caption:e,snippet:e+": $0"+(r?"":";"),meta:"property",score:1e6}}))},this.getPropertyValueCompletions=function(e,t,n,i){var r=t.getLine(n.row).substr(0,n.column),s=(/([\w\-]+):[^:]*$/.exec(r)||{})[1];if(!s)return[];var a=[];return s in o&&"object"==typeof o[s]&&(a=Object.keys(o[s])),a.map((function(e){return{caption:e,snippet:e,meta:"property value",score:1e6}}))}}).call(i.prototype),t.CssCompletions=i})),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=(e("../behaviour").Behaviour,e("./cstyle").CstyleBehaviour),r=e("../../token_iterator").TokenIterator,s=function(){this.inherit(i),this.add("colon","insertion",(function(e,t,n,o,i){if(":"===i&&n.selection.isEmpty()){var s=n.getCursorPosition(),a=new r(o,s.row,s.column),l=a.getCurrentToken();if(l&&l.value.match(/\s+/)&&(l=a.stepBackward()),l&&"support.type"===l.type){var c=o.doc.getLine(s.row);if(":"===c.substring(s.column,s.column+1))return{text:"",selection:[1,1]};if(/^(\s+[^;]|\s*$)/.test(c.substring(s.column)))return{text:":;",selection:[1,1]}}}})),this.add("colon","deletion",(function(e,t,n,o,i){var s=o.doc.getTextRange(i);if(!i.isMultiLine()&&":"===s){var a=n.getCursorPosition(),l=new r(o,a.row,a.column),c=l.getCurrentToken();if(c&&c.value.match(/\s+/)&&(c=l.stepBackward()),c&&"support.type"===c.type&&";"===o.doc.getLine(i.start.row).substring(i.end.column,i.end.column+1))return i.end.column++,i}})),this.add("semicolon","insertion",(function(e,t,n,o,i){if(";"===i&&n.selection.isEmpty()){var r=n.getCursorPosition();if(";"===o.doc.getLine(r.row).substring(r.column,r.column+1))return{text:"",selection:[1,1]}}})),this.add("!important","insertion",(function(e,t,n,o,i){if("!"===i&&n.selection.isEmpty()){var r=n.getCursorPosition(),s=o.doc.getLine(r.row);if(/^\s*(;|}|$)/.test(s.substring(r.column)))return{text:"!important",selection:[10,10]}}}))};o.inherits(s,i),t.CssBehaviour=s})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./css_highlight_rules").CssHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../worker/worker_client").WorkerClient,l=e("./css_completions").CssCompletions,c=e("./behaviour/css").CssBehaviour,u=e("./folding/cstyle").FoldMode,h=function(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=new c,this.$completer=new l,this.foldingRules=new u};o.inherits(h,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;return i.length&&"comment"==i[i.length-1].type||t.match(/^.*\{\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,o){return this.$completer.getCompletions(e,t,n,o)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/css",this.snippetFileId="ace/snippets/css"}.call(h.prototype),t.Mode=h})),ace.require(["ace/mode/css"],(function(t){e&&(e.exports=t)}))},576:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},r.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};o.inherits(r,i),r.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},r.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},r.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=r})),ace.define("ace/mode/golang_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],(function(e,t,n){var o=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,r=e("./text_highlight_rules").TextHighlightRules,s=function(){var e=this.createKeywordMapper({keyword:"else|break|case|return|goto|if|const|select|continue|struct|default|switch|for|range|func|import|package|chan|defer|fallthrough|go|interface|map|range|select|type|var","constant.language":"nil|true|false|iota","support.function":"new|close|cap|copy|panic|panicln|print|println|len|make|delete|real|recover|imag|append","support.type":"string|uint8|uint16|uint32|uint64|int8|int16|int32|int64|float32|float64|complex64|complex128|byte|rune|uint|int|uintptr|bool|error"},""),t="\\\\(?:[0-7]{3}|x\\h{2}|u{4}|U\\h{6}|[abfnrtv'\"\\\\])".replace(/\\h/g,"[a-fA-F\\d]");this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},i.getStartRule("doc-start"),{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"string",regex:/"(?:[^"\\]|\\.)*?"/},{token:"string",regex:"`",next:"bqstring"},{token:"constant.numeric",regex:"'(?:[^\\'\ud800-\udbff]|[\ud800-\udbff][\udc00-\udfff]|"+t.replace('"',"")+")'"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:["keyword","text","entity.name.function"],regex:"(func)(\\s+)([a-zA-Z_$][a-zA-Z0-9_$]*)\\b"},{token:function(t){return"("==t[t.length-1]?[{type:e(t.slice(0,-1))||"support.function",value:t.slice(0,-1)},{type:"paren.lparen",value:t.slice(-1)}]:e(t)||"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b\\(?"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^="},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}],bqstring:[{token:"string",regex:"`",next:"start"},{defaultToken:"string"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};o.inherits(s,r),t.GolangHighlightRules=s})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/golang",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/golang_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle"],(function(e,t,n){var o=e("../lib/oop"),i=e("./text").Mode,r=e("./golang_highlight_rules").GolangHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=r,this.$outdent=new s,this.foldingRules=new a,this.$behaviour=this.$defaultBehaviour};o.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),r=i.tokens;return i.state,r.length&&"comment"==r[r.length-1].type||"start"==e&&t.match(/^.*[\{\(\[]\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/golang"}.call(l.prototype),t.Mode=l})),ace.require(["ace/mode/golang"],(function(t){e&&(e.exports=t)}))},395:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/jsdoc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:["comment.doc.tag","comment.doc.text","lparen.doc"],regex:"(@(?:param|member|typedef|property|namespace|var|const|callback))(\\s*)({)",push:[{token:"lparen.doc",regex:"{",push:[{include:"doc-syntax"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"}]},{token:["rparen.doc","text.doc","variable.parameter.doc","lparen.doc","variable.parameter.doc","rparen.doc"],regex:/(})(\s*)(?:([\w=:\/\.]+)|(?:(\[)([\w=:\/\.]+)(\])))/,next:"pop"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"},{include:"doc-syntax"},{defaultToken:"text.doc"}]},{token:["comment.doc.tag","text.doc","lparen.doc"],regex:"(@(?:returns?|yields|type|this|suppress|public|protected|private|package|modifies|implements|external|exception|throws|enum|define|extends))(\\s*)({)",push:[{token:"lparen.doc",regex:"{",push:[{include:"doc-syntax"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"}]},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"},{include:"doc-syntax"},{defaultToken:"text.doc"}]},{token:["comment.doc.tag","text.doc","variable.parameter.doc"],regex:'(@(?:alias|memberof|instance|module|name|lends|namespace|external|this|template|requires|param|implements|function|extends|typedef|mixes|constructor|var|memberof\\!|event|listens|exports|class|constructs|interface|emits|fires|throws|const|callback|borrows|augments))(\\s+)(\\w[\\w#.:/~"\\-]*)?'},{token:["comment.doc.tag","text.doc","variable.parameter.doc"],regex:"(@method)(\\s+)(\\w[\\w.\\(\\)]*)"},{token:"comment.doc.tag",regex:"@access\\s+(?:private|public|protected)"},{token:"comment.doc.tag",regex:"@kind\\s+(?:class|constant|event|external|file|function|member|mixin|module|namespace|typedef)"},{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},r.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}],"doc-syntax":[{token:"operator.doc",regex:/[|:]/},{token:"paren.doc",regex:/[\[\]]/}]},this.normalizeRules()};o.inherits(r,i),r.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},r.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},r.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.JsDocCommentHighlightRules=r})),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/jsdoc_comment_highlight_rules","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./jsdoc_comment_highlight_rules").JsDocCommentHighlightRules,r=e("./text_highlight_rules").TextHighlightRules,s="[a-zA-Z\\$_¡-￿][a-zA-Z\\d\\$_¡-￿]*",a=function(e){var t=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static|constructor","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},"identifier"),n="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)";this.$rules={no_regex:[i.getStartRule("doc-start"),c("no_regex"),{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+s+")(\\.)(prototype)(\\.)("+s+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+s+")(\\.)("+s+")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+s+")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+s+")(\\.)("+s+")(\\s*)(=)(\\s*)(function\\*?)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function\\*?)(\\s+)("+s+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+s+")(\\s*)(:)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:"keyword",regex:"from(?=\\s*('|\"))"},{token:"keyword",regex:"(?:case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void)\\b",next:"start"},{token:"support.constant",regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:s},{token:"punctuation.operator",regex:/[.](?![.])/,next:"property"},{token:"storage.type",regex:/=>/,next:"start"},{token:"keyword.operator",regex:/--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],property:[{token:"text",regex:"\\s+"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+s+")(\\.)("+s+")(\\s*)(=)(\\s*)(function\\*?)(?:(\\s+)(\\w+))?(\\s*)(\\()",next:"function_arguments"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"support.function",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|lter|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward|rEach)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:"support.function.dom",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:"support.constant",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:"identifier",regex:s},{regex:"",token:"empty",next:"no_regex"}],start:[i.getStartRule("doc-start"),c("start"),{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+|^$",next:"start"},{token:"empty",regex:"",next:"no_regex"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/[sxngimy]*",next:"no_regex"},{token:"invalid",regex:/\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/},{token:"constant.language.delimiter",regex:/\|/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp"}],regex_character_class:[{token:"regexp.charclass.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp.charachterclass"}],default_parameter:[{token:"string",regex:"'(?=.)",push:[{token:"string",regex:"'|$",next:"pop"},{include:"qstring"}]},{token:"string",regex:'"(?=.)',push:[{token:"string",regex:'"|$',next:"pop"},{include:"qqstring"}]},{token:"constant.language",regex:"null|Infinity|NaN|undefined"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:"punctuation.operator",regex:",",next:"function_arguments"},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],function_arguments:[c("function_arguments"),{token:"variable.parameter",regex:s},{token:"punctuation.operator",regex:","},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],qqstring:[{token:"constant.language.escape",regex:n},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:n},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},e&&e.noES6||(this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){if(this.next="{"==e?this.nextState:"","{"==e&&n.length)n.unshift("start",t);else if("}"==e&&n.length&&(n.shift(),this.next=n.shift(),-1!=this.next.indexOf("string")||-1!=this.next.indexOf("jsx")))return"paren.quasi.end";return"{"==e?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:n},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]},{token:["variable.parameter","text"],regex:"("+s+")(\\s*)(?=\\=>)"},{token:"paren.lparen",regex:"(\\()(?=.+\\s*=>)",next:"function_arguments"},{token:"variable.language",regex:"(?:(?:(?:Weak)?(?:Set|Map))|Promise)\\b"}),this.$rules.function_arguments.unshift({token:"keyword.operator",regex:"=",next:"default_parameter"},{token:"keyword.operator",regex:"\\.{3}"}),this.$rules.property.unshift({token:"support.function",regex:"(findIndex|repeat|startsWith|endsWith|includes|isSafeInteger|trunc|cbrt|log2|log10|sign|then|catch|finally|resolve|reject|race|any|all|allSettled|keys|entries|isInteger)\\b(?=\\()"},{token:"constant.language",regex:"(?:MAX_SAFE_INTEGER|MIN_SAFE_INTEGER|EPSILON)\\b"}),e&&0==e.jsx||l.call(this)),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};function l(){var e=s.replace("\\d","\\d\\-"),t={onMatch:function(e,t,n){var o="/"==e.charAt(1)?2:1;return 1==o?(t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++):2==o&&t==this.nextState&&(n[1]--,(!n[1]||n[1]<0)&&(n.shift(),n.shift())),[{type:"meta.tag.punctuation."+(1==o?"":"end-")+"tag-open.xml",value:e.slice(0,o)},{type:"meta.tag.tag-name.xml",value:e.substr(o)}]},regex:"",onMatch:function(e,t,n){return t==n[0]&&n.shift(),2==e.length&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||"start",[{type:this.token,value:e}]},nextState:"jsx"},n,c("jsxAttributes"),{token:"entity.other.attribute-name.xml",regex:e},{token:"keyword.operator.attribute-equals.xml",regex:"="},{token:"text.tag-whitespace.xml",regex:"\\s+"},{token:"string.attribute-value.xml",regex:"'",stateName:"jsx_attr_q",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',stateName:"jsx_attr_qq",push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},t],this.$rules.reference=[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}]}function c(e){return[{token:"comment",regex:/\/\*/,next:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]},{token:"comment",regex:"\\/\\/",next:[i.getTagRule(),{token:"comment",regex:"$|^",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]}]}o.inherits(a,r),t.JavaScriptHighlightRules=a})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./javascript_highlight_rules").JavaScriptHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../worker/worker_client").WorkerClient,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,u=function(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=new l,this.foldingRules=new c};o.inherits(u,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$quotes={'"':'"',"'":"'","`":"`"},this.$pairQuotesAfter={"`":/\w/},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),r=i.tokens,s=i.state;if(r.length&&"comment"==r[r.length-1].type)return o;if("start"==e||"no_regex"==e)(a=t.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/))&&(o+=n);else if("doc-start"==e){if("start"==s||"no_regex"==s)return"";var a;(a=t.match(/^\s*(\/?)\*/))&&(a[1]&&(o+=" "),o+="* ")}return o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/javascript",this.snippetFileId="ace/snippets/javascript"}.call(u.prototype),t.Mode=u})),ace.require(["ace/mode/javascript"],(function(t){e&&(e.exports=t)}))},252:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"punctuation.operator",regex:/[,]/},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};o.inherits(r,i),t.JsonHighlightRules=r})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle","ace/worker/worker_client"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./json_highlight_rules").JsonHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./folding/cstyle").FoldMode,l=e("../worker/worker_client").WorkerClient,c=function(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new a};o.inherits(c,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t);return"start"==e&&t.match(/^.*[\{\(\[]\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new l(["ace"],"ace/mode/json_worker","JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/json"}.call(c.prototype),t.Mode=c})),ace.require(["ace/mode/json"],(function(t){e&&(e.exports=t)}))},711:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},r.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};o.inherits(r,i),r.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},r.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},r.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=r})),ace.define("ace/mode/jsx_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],(function(e,t,n){var o=e("../lib/oop"),i=e("../lib/lang"),r=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,a=function(){var e=i.arrayToMap("break|do|instanceof|typeof|case|else|new|var|catch|finally|return|void|continue|for|switch|default|while|function|this|if|throw|delete|in|try|class|extends|super|import|from|into|implements|interface|static|mixin|override|abstract|final|number|int|string|boolean|variant|log|assert".split("|")),t=i.arrayToMap("null|true|false|NaN|Infinity|__FILE__|__LINE__|undefined".split("|")),n=i.arrayToMap("debugger|with|const|export|let|private|public|yield|protected|extern|native|as|operator|__fake__|__readonly__".split("|")),o="[a-zA-Z_][a-zA-Z0-9_]*\\b";this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},r.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:["storage.type","text","entity.name.function"],regex:"(function)(\\s+)("+o+")"},{token:function(o){return"this"==o?"variable.language":"function"==o?"storage.type":e.hasOwnProperty(o)||n.hasOwnProperty(o)?"keyword":t.hasOwnProperty(o)?"constant.language":/^_?[A-Z][a-zA-Z0-9_]*$/.test(o)?"language.support.class":"identifier"},regex:o},{token:"keyword.operator",regex:"!|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({<]"},{token:"paren.rparen",regex:"[\\])}>]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]},this.embedRules(r,"doc-",[r.getEndRule("start")])};o.inherits(a,s),t.JsxHighlightRules=a})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/jsx",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/jsx_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./jsx_highlight_rules").JsxHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./folding/cstyle").FoldMode;function l(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new a}o.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;return i.length&&"comment"==i[i.length-1].type||"start"==e&&t.match(/^.*[\{\(\[]\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/jsx"}.call(l.prototype),t.Mode=l})),ace.require(["ace/mode/jsx"],(function(t){e&&(e.exports=t)}))},7:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/python_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){var e=this.createKeywordMapper({"invalid.deprecated":"debugger","support.function":"abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|binfile|bin|iter|property|tuple|bool|filter|len|range|type|bytearray|float|list|raw_input|unichr|callable|format|locals|reduce|unicode|chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|__import__|complex|hash|min|apply|delattr|help|next|setattr|set|buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern|ascii|breakpoint|bytes","variable.language":"self|cls","constant.language":"True|False|None|NotImplemented|Ellipsis|__debug__",keyword:"and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield|async|await|nonlocal"},"identifier"),t="[uU]?",n="[rR]",o="[fF]",i="(?:[rR][fF]|[fF][rR])",r="(?:(?:(?:[1-9]\\d*)|(?:0))|(?:0[oO]?[0-7]+)|(?:0[xX][\\dA-Fa-f]+)|(?:0[bB][01]+))",s="(?:\\d+)",a="(?:(?:"+s+"?(?:\\.\\d+))|(?:"+s+"\\.))",l="(?:(?:(?:"+a+"|"+s+")(?:[eE][+-]?\\d+))|"+a+")",c="\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\abfnrtv'\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})";this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string",regex:t+'"{3}',next:"qqstring3"},{token:"string",regex:t+'"(?=.)',next:"qqstring"},{token:"string",regex:t+"'{3}",next:"qstring3"},{token:"string",regex:t+"'(?=.)",next:"qstring"},{token:"string",regex:n+'"{3}',next:"rawqqstring3"},{token:"string",regex:n+'"(?=.)',next:"rawqqstring"},{token:"string",regex:n+"'{3}",next:"rawqstring3"},{token:"string",regex:n+"'(?=.)",next:"rawqstring"},{token:"string",regex:o+'"{3}',next:"fqqstring3"},{token:"string",regex:o+'"(?=.)',next:"fqqstring"},{token:"string",regex:o+"'{3}",next:"fqstring3"},{token:"string",regex:o+"'(?=.)",next:"fqstring"},{token:"string",regex:i+'"{3}',next:"rfqqstring3"},{token:"string",regex:i+'"(?=.)',next:"rfqqstring"},{token:"string",regex:i+"'{3}",next:"rfqstring3"},{token:"string",regex:i+"'(?=.)",next:"rfqstring"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|%|@|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"punctuation",regex:",|:|;|\\->|\\+=|\\-=|\\*=|\\/=|\\/\\/=|%=|@=|&=|\\|=|^=|>>=|<<=|\\*\\*="},{token:"paren.lparen",regex:"[\\[\\(\\{]"},{token:"paren.rparen",regex:"[\\]\\)\\}]"},{token:["keyword","text","entity.name.function"],regex:"(def|class)(\\s+)([\\u00BF-\\u1FFF\\u2C00-\\uD7FF\\w]+)"},{token:"text",regex:"\\s+"},{include:"constants"}],qqstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:'"{3}',next:"start"},{defaultToken:"string"}],qstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:"'{3}",next:"start"},{defaultToken:"string"}],qqstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"start"},{defaultToken:"string"}],rawqqstring3:[{token:"string",regex:'"{3}',next:"start"},{defaultToken:"string"}],rawqstring3:[{token:"string",regex:"'{3}",next:"start"},{defaultToken:"string"}],rawqqstring:[{token:"string",regex:"\\\\$",next:"rawqqstring"},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],rawqstring:[{token:"string",regex:"\\\\$",next:"rawqstring"},{token:"string",regex:"'|$",next:"start"},{defaultToken:"string"}],fqqstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:'"{3}',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:"'{3}",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqqstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"\\\\$",next:"fqqstring"},{token:"string",regex:'"|$',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"'|$",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqqstring3:[{token:"string",regex:'"{3}',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqstring3:[{token:"string",regex:"'{3}",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqqstring:[{token:"string",regex:"\\\\$",next:"rfqqstring"},{token:"string",regex:'"|$',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqstring:[{token:"string",regex:"'|$",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqstringParRules:[{token:"paren.lparen",regex:"[\\[\\(]"},{token:"paren.rparen",regex:"[\\]\\)]"},{token:"string",regex:"\\s+"},{token:"string",regex:"'[^']*'"},{token:"string",regex:'"[^"]*"'},{token:"function.support",regex:"(!s|!r|!a)"},{include:"constants"},{token:"paren.rparen",regex:"}",next:"pop"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"}],constants:[{token:"constant.numeric",regex:"(?:"+l+"|\\d+)[jJ]\\b"},{token:"constant.numeric",regex:l},{token:"constant.numeric",regex:r+"[lL]\\b"},{token:"constant.numeric",regex:r+"\\b"},{token:["punctuation","function.support"],regex:"(\\.)([a-zA-Z_]+)\\b"},{token:e,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"}]},this.normalizeRules()};o.inherits(r,i),t.PythonHighlightRules=r})),ace.define("ace/mode/folding/pythonic",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("./fold_mode").FoldMode,r=t.FoldMode=function(e){this.foldingStartMarker=new RegExp("([\\[{])(?:\\s*)$|("+e+")(?:\\s*)(?:#.*)?$")};o.inherits(r,i),function(){this.getFoldWidgetRange=function(e,t,n){var o=e.getLine(n).match(this.foldingStartMarker);if(o)return o[1]?this.openingBracketBlock(e,o[1],n,o.index):o[2]?this.indentationBlock(e,n,o.index+o[2].length):this.indentationBlock(e,n)}}.call(r.prototype)})),ace.define("ace/mode/python",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/python_highlight_rules","ace/mode/folding/pythonic","ace/range"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./python_highlight_rules").PythonHighlightRules,s=e("./folding/pythonic").FoldMode,a=e("../range").Range,l=function(){this.HighlightRules=r,this.foldingRules=new s("\\:"),this.$behaviour=this.$defaultBehaviour};o.inherits(l,i),function(){this.lineCommentStart="#",this.$pairQuotesAfter={"'":/[ruf]/i,'"':/[ruf]/i},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;return i.length&&"comment"==i[i.length-1].type||"start"==e&&t.match(/^.*[\{\(\[:]\s*$/)&&(o+=n),o};var e={pass:1,return:1,raise:1,break:1,continue:1};this.checkOutdent=function(t,n,o){if("\r\n"!==o&&"\r"!==o&&"\n"!==o)return!1;var i=this.getTokenizer().getLineTokens(n.trim(),t).tokens;if(!i)return!1;do{var r=i.pop()}while(r&&("comment"==r.type||"text"==r.type&&r.value.match(/^\s+$/)));return!!r&&"keyword"==r.type&&e[r.value]},this.autoOutdent=function(e,t,n){n+=1;var o=this.$getIndent(t.getLine(n)),i=t.getTabString();o.slice(-i.length)==i&&t.remove(new a(n,o.length-i.length,n,o.length))},this.$id="ace/mode/python",this.snippetFileId="ace/snippets/python"}.call(l.prototype),t.Mode=l})),ace.require(["ace/mode/python"],(function(t){e&&(e.exports=t)}))},202:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(e){var t="[_:a-zA-ZÀ-￿][-_:.a-zA-Z0-9À-￿]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.start.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"",next:"start"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.end.xml",regex:"--\x3e",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:t},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===r&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),o.inherits(r,i),t.XmlHighlightRules=r})),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../behaviour").Behaviour,r=e("../../token_iterator").TokenIterator;function s(e,t){return e&&e.type.lastIndexOf(t+".xml")>-1}e("../../lib/lang");var a=function(){this.add("string_dquotes","insertion",(function(e,t,n,o,i){if('"'==i||"'"==i){var a=i,l=o.doc.getTextRange(n.getSelectionRange());if(""!==l&&"'"!==l&&'"'!=l&&n.getWrapBehavioursEnabled())return{text:a+l+a,selection:!1};var c=n.getCursorPosition(),u=o.doc.getLine(c.row).substring(c.column,c.column+1),h=new r(o,c.row,c.column),d=h.getCurrentToken();if(u==a&&(s(d,"attribute-value")||s(d,"string")))return{text:"",selection:[1,1]};if(d||(d=h.stepBackward()),!d)return;for(;s(d,"tag-whitespace")||s(d,"whitespace");)d=h.stepBackward();var p=!u||u.match(/\s/);if(s(d,"attribute-equals")&&(p||">"==u)||s(d,"decl-attribute-equals")&&(p||"?"==u))return{text:a+a,selection:[1,1]}}})),this.add("string_dquotes","deletion",(function(e,t,n,o,i){var r=o.doc.getTextRange(i);if(!i.isMultiLine()&&('"'==r||"'"==r)&&o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)==r)return i.end.column++,i})),this.add("autoclosing","insertion",(function(e,t,n,o,i){if(">"==i){var a=n.getSelectionRange().start,l=new r(o,a.row,a.column),c=l.getCurrentToken()||l.stepBackward();if(!c||!(s(c,"tag-name")||s(c,"tag-whitespace")||s(c,"attribute-name")||s(c,"attribute-equals")||s(c,"attribute-value")))return;if(s(c,"reference.attribute-value"))return;if(s(c,"attribute-value")){var u=l.getCurrentTokenColumn()+c.value.length;if(a.column/.test(o.getLine(a.row).slice(a.column)))return;for(;!s(c,"tag-name");)if("<"==(c=l.stepBackward()).value){c=l.stepForward();break}var d=l.getCurrentTokenRow(),p=l.getCurrentTokenColumn();if(s(l.stepBackward(),"end-tag-open"))return;var g=c.value;if(d==a.row&&(g=g.substring(0,a.column-p)),this.voidElements.hasOwnProperty(g.toLowerCase()))return;return{text:">",selection:[1,1]}}})),this.add("autoindent","insertion",(function(e,t,n,o,i){if("\n"==i){var s=n.getCursorPosition(),a=o.getLine(s.row),l=new r(o,s.row,s.column),c=l.getCurrentToken();if(c&&-1!==c.type.indexOf("tag-close")){if("/>"==c.value)return;for(;c&&-1===c.type.indexOf("tag-name");)c=l.stepBackward();if(!c)return;var u=c.value,h=l.getCurrentTokenRow();if(!(c=l.stepBackward())||-1!==c.type.indexOf("end-tag"))return;if(this.voidElements&&!this.voidElements[u]){var d=o.getTokenAt(s.row,s.column+1),p=(a=o.getLine(h),this.$getIndent(a)),g=p+o.getTabString();return d&&"-1}(function(){this.getFoldWidget=function(e,t,n){var o=this._getFirstTagInLine(e,n);return o?o.closing||!o.tagName&&o.selfClosing?"markbeginend"===t?"end":"":!o.tagName||o.selfClosing||this.voidElements.hasOwnProperty(o.tagName.toLowerCase())||this._findEndTagInLine(e,n,o.tagName,o.end.column)?"":"start":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/"==r.value;break}return o}if(l(r,"tag-close"))return o.selfClosing="/>"==r.value,o;o.start.column+=r.value.length}return null},this._findEndTagInLine=function(e,t,n,o){for(var i=e.getTokens(t),r=0,s=0;s{e=n.nmd(e),ace.define("ace/theme/github-css",["require","exports","module"],(function(e,t,n){n.exports='/* CSS style content from github\'s default pygments highlighter template.\n Cursor and selection styles from textmate.css. */\n.ace-github .ace_gutter {\n background: #e8e8e8;\n color: #AAA;\n}\n\n.ace-github {\n background: #fff;\n color: #000;\n}\n\n.ace-github .ace_keyword {\n font-weight: bold;\n}\n\n.ace-github .ace_string {\n color: #D14;\n}\n\n.ace-github .ace_variable.ace_class {\n color: teal;\n}\n\n.ace-github .ace_constant.ace_numeric {\n color: #099;\n}\n\n.ace-github .ace_constant.ace_buildin {\n color: #0086B3;\n}\n\n.ace-github .ace_support.ace_function {\n color: #0086B3;\n}\n\n.ace-github .ace_comment {\n color: #998;\n font-style: italic;\n}\n\n.ace-github .ace_variable.ace_language {\n color: #0086B3;\n}\n\n.ace-github .ace_paren {\n font-weight: bold;\n}\n\n.ace-github .ace_boolean {\n font-weight: bold;\n}\n\n.ace-github .ace_string.ace_regexp {\n color: #009926;\n font-weight: normal;\n}\n\n.ace-github .ace_variable.ace_instance {\n color: teal;\n}\n\n.ace-github .ace_constant.ace_language {\n font-weight: bold;\n}\n\n.ace-github .ace_cursor {\n color: black;\n}\n\n.ace-github.ace_focus .ace_marker-layer .ace_active-line {\n background: rgb(255, 255, 204);\n}\n.ace-github .ace_marker-layer .ace_active-line {\n background: rgb(245, 245, 245);\n}\n\n.ace-github .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-github.ace_multiselect .ace_selection.ace_start {\n box-shadow: 0 0 3px 0px white;\n}\n/* bold keywords cause cursor issues for some fonts */\n/* this disables bold style for editor and keeps for static highlighter */\n.ace-github.ace_nobold .ace_line > span {\n font-weight: normal !important;\n}\n\n.ace-github .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-github .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-github .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-github .ace_gutter-active-line {\n background-color : rgba(0, 0, 0, 0.07);\n}\n\n.ace-github .ace_marker-layer .ace_selected-word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-github .ace_invisible {\n color: #BFBFBF\n}\n\n.ace-github .ace_print-margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-github .ace_indent-guide {\n background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;\n}\n\n.ace-github .ace_indent-guide-active {\n background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC") right repeat-y;\n}\n'})),ace.define("ace/theme/github",["require","exports","module","ace/theme/github-css","ace/lib/dom"],(function(e,t,n){t.isDark=!1,t.cssClass="ace-github",t.cssText=e("./github-css"),e("../lib/dom").importCssString(t.cssText,t.cssClass,!1)})),ace.require(["ace/theme/github"],(function(t){e&&(e.exports=t)}))},745:(e,t,n)=>{"use strict";var o=n(137);t.s=o.createRoot,o.hydrateRoot},590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,o="function"==typeof Set,i="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function r(e,s){if(e===s)return!0;if(e&&s&&"object"==typeof e&&"object"==typeof s){if(e.constructor!==s.constructor)return!1;var a,l,c,u;if(Array.isArray(e)){if((a=e.length)!=s.length)return!1;for(l=a;0!=l--;)if(!r(e[l],s[l]))return!1;return!0}if(n&&e instanceof Map&&s instanceof Map){if(e.size!==s.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!s.has(l.value[0]))return!1;for(u=e.entries();!(l=u.next()).done;)if(!r(l.value[1],s.get(l.value[0])))return!1;return!0}if(o&&e instanceof Set&&s instanceof Set){if(e.size!==s.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!s.has(l.value[0]))return!1;return!0}if(i&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(s)){if((a=e.length)!=s.length)return!1;for(l=a;0!=l--;)if(e[l]!==s[l])return!1;return!0}if(e.constructor===RegExp)return e.source===s.source&&e.flags===s.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof s.valueOf)return e.valueOf()===s.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof s.toString)return e.toString()===s.toString();if((a=(c=Object.keys(e)).length)!==Object.keys(s).length)return!1;for(l=a;0!=l--;)if(!Object.prototype.hasOwnProperty.call(s,c[l]))return!1;if(t&&e instanceof Element)return!1;for(l=a;0!=l--;)if(("_owner"!==c[l]&&"__v"!==c[l]&&"__o"!==c[l]||!e.$$typeof)&&!r(e[c[l]],s[c[l]]))return!1;return!0}return e!=e&&s!=s}e.exports=function(e,t){try{return r(e,t)}catch(e){if((e.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw e}}},137:e=>{"use strict";e.exports=require("react-dom")}},t={};function n(o){var i=t[o];if(void 0!==i)return i.exports;var r=t[o]={id:o,loaded:!1,exports:{}};return e[o](r,r.exports,n),r.loaded=!0,r.exports}n.amdD=function(){throw new Error("define cannot be used indirect")},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n.p="";var o={};(()=>{"use strict";n.r(o),n.d(o,{Accordion:()=>D,Button:()=>U,ButtonGroup:()=>K,Card:()=>he,Chart:()=>Te,Checkbox:()=>Io,CodeEditor:()=>gr,Collapsible:()=>R,Column:()=>li,Combobox:()=>Sr,Combobox2:()=>Wr,Confirm:()=>St,CopyToClipboard:()=>ut,DatePicker:()=>Zr,Dropdown:()=>Oi,Dropdown2:()=>Zi,EditableList:()=>ha,EditableList2:()=>Na,FieldCodeEditor:()=>ru,FieldCombobox:()=>gu,FieldCombobox2:()=>ju,FieldDatePicker:()=>Xu,FieldDropdown:()=>Cu,FieldEditableList:()=>sh,FieldFileInput:()=>fh,FieldInput:()=>Eh,FieldMultiselect:()=>Ih,FieldPagination:()=>Ru,FieldSelect:()=>Uh,FieldSelectableList:()=>ed,FieldToggle:()=>cd,FileInput:()=>za,FixedWrapper:()=>Ot,FloatingContainer:()=>Pt,FormikCheckbox:()=>Nc,FormikCodeEditor:()=>Ic,FormikCombobox:()=>Pc,FormikCombobox2:()=>Dc,FormikDatePicker:()=>Fc,FormikEditableList:()=>Bc,FormikEditableList2:()=>Wc,FormikFileInput:()=>Hc,FormikInput:()=>jc,FormikInput2:()=>zc,FormikMultiselect:()=>Vc,FormikRadio:()=>Uc,FormikSelect:()=>Gc,FormikSelectableList:()=>Kc,FormikTextarea:()=>qc,FormikToggle:()=>Yc,FormikWrapper:()=>Rc,Icon:()=>g,InfiniteScroller:()=>At,InfoNote:()=>Ft,Input:()=>Qa,Input2:()=>ll,List:()=>jt,Loader:()=>ye,Message:()=>be,Modal:()=>Ct,Multiselect:()=>Cl,NavBar:()=>Vt,Navigation:()=>qt,Pagination:()=>po,Panel:()=>pn,Pill:()=>mn,Radio:()=>Rl,RevealPanel:()=>Nn,Row:()=>yi,Select:()=>jl,SelectableList:()=>Xl,Table:()=>ti,Tabs:()=>eo,TextEllipsis:()=>uo,Textarea:()=>rc,Toggle:()=>bc,Tooltip:()=>lo,setConfig:()=>xc,toast:()=>ot,useComponentSize:()=>C,useEventListener:()=>$,useInterval:()=>ud,usePrevious:()=>me,useTimeout:()=>_e});const e=require("react");var t=n.n(e);const i=require("prop-types");var r=n.n(i);const s=(0,e.createContext)(),a=(0,e.createContext)();var l=Object.defineProperty,c=Object.getOwnPropertySymbols,u=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable,d=(e,t,n)=>t in e?l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function p(e){var n=e,{className:o,family:i,type:r,weight:s}=n,a=((e,t)=>{var n={};for(var o in e)u.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&c)for(var o of c(e))t.indexOf(o)<0&&h.call(e,o)&&(n[o]=e[o]);return n})(n,["className","family","type","weight"]);return t().createElement("i",((e,t)=>{for(var n in t||(t={}))u.call(t,n)&&d(e,n,t[n]);if(c)for(var n of c(t))h.call(t,n)&&d(e,n,t[n]);return e})({className:function(){const e=i||"fa";return["tyk-icon","fa"!==e&&e,`${e}-${r}`,"fa"===e?`fa-${s||"regular"}`:"",o].filter(Boolean).join(" ")}()},a))}p.propTypes={className:r().string,family:r().string,type:r().string.isRequired,weight:r().string};const g=p;function m({wrap:n}){const{collapsed:o,disabled:i,toggleChange:r}=(0,e.useContext)(a),s=o?"chevron-down":"chevron-up",l=["tyk-accordion__trigger",i&&"tyk-accordion__trigger--disabled"].filter(Boolean).join(" "),c=t().createElement("button",{className:l,onClick:r,type:"button","aria-label":"collapse/expand"},t().createElement(g,{className:"collapsable__arrow",type:s}));return n?t().createElement("div",{className:"tyk-accordion__trigger-wrapper"},c):c}m.propTypes={wrap:r().bool};const f=m;function y({collapsed:n,children:o,className:i,disabled:r},l){const{arrow:c}=(0,e.useContext)(s),[u,h]=(0,e.useState)(n),d=()=>{r||h(!u)},p=(0,e.useMemo)((()=>["tyk-accordion__item",c.expandToContent?`tyk-accordion__item--trigger-position-${c.position}`:"tyk-accordion__item--trigger-in-header",i,!1===u&&"tyk-accordion__item--active"].filter(Boolean).join(" ")),[c,i,u]),g=(0,e.useMemo)((()=>({collapsed:u,disabled:r,toggleChange:d})),[u,r,d]);return t().createElement("div",{ref:l,className:p},t().createElement(a.Provider,{value:g},c.expandToContent&&t().createElement(f,{wrap:!0}),o))}y.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),collapsed:r().bool,className:r().string,disabled:r().bool},y.defaultProps={collapsed:!1};const v=(0,e.forwardRef)(y);function b({className:n,children:o}){const{collapsed:i,disabled:r,toggleChange:l}=(0,e.useContext)(a),{usearrowastrigger:c,arrow:u}=(0,e.useContext)(s),h=i?"chevron-down":"chevron-up",d=["tyk-accordion__item-header",c&&"tyk-accordion__arrow-trigger",n].filter(Boolean).join(" ");return t().createElement("div",{className:d},c?t().createElement(t().Fragment,null,!u.expandToContent&&"left"===u.position&&t().createElement(f,null),t().createElement("div",null,o),!u.expandToContent&&"right"===u.position&&t().createElement(f,null)):t().createElement("button",{className:r?"tyk-accordion__trigger--disabled":"",onClick:l,type:"button"},t().createElement("span",null,o),t().createElement(g,{className:"collapsable__arrow",type:h})))}b.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string};const w=b,x=require("react-transition-group"),k=e=>e?{width:e.offsetWidth,height:e.offsetHeight}:{width:0,height:0},C=t=>{const[n,o]=(0,e.useState)(k(t?t.current:{})),i=(0,e.useCallback)((()=>{t.current&&o(k(t.current))}),[t]);return(0,e.useLayoutEffect)((()=>{i();let e=new ResizeObserver((()=>{i()}));return e.observe(t.current),()=>{e.disconnect(t.current),e=null}}),[t.current]),n},$=(t,n,o)=>{const i=(0,e.useRef)();(0,e.useEffect)((()=>{i.current=n}),[n]),(0,e.useEffect)((()=>{if(!(null==o?void 0:o.addEventListener))return;const e=e=>i.current(e);return o.addEventListener(t,e),()=>{o.removeEventListener(t,e)}}),[t,o])};var S=Object.defineProperty,E=Object.defineProperties,O=Object.getOwnPropertyDescriptors,T=Object.getOwnPropertySymbols,A=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable,L=(e,t,n)=>t in e?S(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function M(n){var o=n,{className:i,collapsed:r,children:s}=o,a=((e,t)=>{var n={};for(var o in e)A.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&T)for(var o of T(e))t.indexOf(o)<0&&_.call(e,o)&&(n[o]=e[o]);return n})(o,["className","collapsed","children"]);const l=(0,e.useRef)(null),c=(0,e.useRef)(null),u=C(l),[h,d]=(0,e.useState)({height:r?0:"auto"}),p=e=>{d({height:`${e}px`})},g=()=>l.current?l.current.clientHeight:0;(0,e.useEffect)((()=>{!r&&(null==u?void 0:u.height)&&h.height!==(null==u?void 0:u.height)&&p(u.height)}),[u.height]);const m=(0,e.useCallback)((()=>{!r&&l.current&&(p(g()),c.current.style.height=`${g()}px`)}),[r,l.current]);return $("resize",m,window),t().createElement(x.CSSTransition,{onEnter:()=>{p(g())},onExit:()=>{p(0)},in:!r,timeout:0,classNames:"collapse"},t().createElement("div",{className:"collapse-wrapper",ref:c,style:h},t().createElement("div",(f=((e,t)=>{for(var n in t||(t={}))A.call(t,n)&&L(e,n,t[n]);if(T)for(var n of T(t))_.call(t,n)&&L(e,n,t[n]);return e})({},a),E(f,O({className:i,ref:l}))),s)));var f}M.propTypes={children:r().oneOfType([r().element,r().node,r().string]),collapsed:r().bool,className:r().string};const R=M;function N({children:n,className:o}){const{collapsed:i}=(0,e.useContext)(a),r=["tyk-accordion__item-content",o].filter(Boolean).join(" ");return t().createElement("div",{className:r},t().createElement(R,{collapsed:i},n))}N.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string};const I=N;function P({className:n,children:o,usearrowastrigger:i,arrow:r={position:"right",expandToContent:!1}}){const a=["tyk-accordion",n].filter(Boolean).join(" "),l=(0,e.useMemo)((()=>({usearrowastrigger:i,arrow:r})),[i,r]);return t().createElement("div",{className:a},t().createElement(s.Provider,{value:l},o))}P.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,usearrowastrigger:r().bool,arrow:r().shape({position:r().oneOf(["left","right"]),expandToContent:r().bool})},P.defaultProps={usearrowastrigger:!1},P.Item=v,P.Item.Header=w,P.Item.Content=I;const D=P;var F=Object.defineProperty,B=Object.getOwnPropertySymbols,W=Object.prototype.hasOwnProperty,H=Object.prototype.propertyIsEnumerable,j=(e,t,n)=>t in e?F(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,z=(e,t)=>{for(var n in t||(t={}))W.call(t,n)&&j(e,n,t[n]);if(B)for(var n of B(t))H.call(t,n)&&j(e,n,t[n]);return e};function V(n,o){const i=n,{customButton:r,children:s,iconType:a,iconFamily:l,iconPosition:c,iconOnly:u,id:h,className:d,disabled:p,display:m,href:f,onClick:y,noStyle:v,size:b,theme:w,type:x}=i,k=((e,t)=>{var n={};for(var o in e)W.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&B)for(var o of B(e))t.indexOf(o)<0&&H.call(e,o)&&(n[o]=e[o]);return n})(i,["customButton","children","iconType","iconFamily","iconPosition","iconOnly","id","className","disabled","display","href","onClick","noStyle","size","theme","type"]),C=()=>{const e=["tyk-button"].concat(d?d.split(" "):[]),t=b?`tyk-button--${b}`:"tyk-button--md",n=p?"disabled":"",o=m||"",i=w?`tyk-button--${w}`:"",r=u?"tyk-button--icon-only":"",s=v?"tyk-button--no-style":"";return e.push(r),e.push(i),e.push(t),e.push(n),e.push(o),e.push(s),a&&e.push(`icon-${c||"left"}`),e.join(" ")},$=e=>a&&(c||"left")===e?t().createElement(g,{family:l,type:a}):null;return(()=>{let n;return r?t().createElement(t().Fragment,null,(0,e.cloneElement)(r,{className:C(),disabled:p})):(n=f?t().createElement("a",z({id:h,className:C(),disabled:p,onClick:y,href:f,ref:o},k),$("left"),s,$("right")):t().createElement("button",z({id:h,className:C(),disabled:p,onClick:y,type:x||"button",ref:o},k),$("left"),s&&t().createElement("span",null,s),$("right")),n)})()}V.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),customButton:r().oneOfType([r().arrayOf(r().node),r().node,r().element]),className:r().string,display:r().string,disabled:r().bool,id:r().string,href:r().string,iconPosition:r().string,iconFamily:r().string,iconOnly:r().bool,iconType:r().string,noStyle:r().bool,onClick:r().func,theme:r().string,type:r().string,size:r().string},V.defaultProps={theme:"",type:"button"};const U=(0,e.forwardRef)(V);function G({className:e,children:n,label:o},i){return t().createElement("div",{ref:i,className:`tyk-button-group__wrapper ${e}`},Boolean(o)&&t().createElement("label",null,o),t().createElement("div",{className:"tyk-button-group"},n))}G.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string.isRequired,label:r().string.isRequired};const K=(0,e.forwardRef)(G);function q({right:e=null,children:n}){return t().createElement("div",{className:"tyk-card__header"},n&&t().createElement("div",{className:"tyk-card__header-content"},n),e&&t().createElement("div",{className:"tyk-card__header-right"},e))}q.propTypes={right:r().oneOfType([r().element,r().node,r().string]),children:r().oneOfType([r().element,r().node,r().string])};const Y=q;function J({align:e="top",children:n}){return t().createElement("div",{className:`tyk-card__body tyk-card__body--align-${e}`},t().createElement("div",null,n))}J.propTypes={align:r().oneOf(["top","center","bottom"]),children:r().oneOfType([r().element,r().node,r().string])};const X=J;function Q({children:e}){return t().createElement("div",{className:"tyk-card__footer"},e)}Q.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const Z=Q;function ee({maxLines:e=1,children:n}){return t().createElement("h4",{className:`tyk-card__title tyk-card__title--max-${e}-lines`},n)}ee.propTypes={maxLines:r().number,children:r().oneOfType([r().element,r().node,r().string])};const te=ee;function ne({children:e}){return t().createElement("div",{className:"tyk-card__title-group"},e)}ne.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const oe=ne;function ie({children:e}){return t().createElement("h5",{className:"tyk-card__sub-title"},e)}ie.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const re=ie;function se({maxLines:e=2,children:n}){return t().createElement("p",{className:`tyk-card__summary tyk-card__summary--max-${e}-lines`},n)}se.propTypes={maxLines:r().number,children:r().oneOfType([r().element,r().node,r().string])};const ae=se;function le({children:e}){return t().createElement("div",{className:"tyk-card__title-icon"},e)}le.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const ce=le;function ue({className:e="",height:n="auto",children:o}){return t().createElement("div",{style:{height:n},className:`tyk-card ${e}`},o)}ue.propTypes={className:r().string,height:r().oneOfType([r().number,r().string]),children:r().oneOfType([r().element,r().node,r().string])},ue.Header=Y,ue.Body=X,ue.Footer=Z,ue.Title=te,ue.TitleGroup=oe,ue.Icon=ce,ue.SubTitle=re,ue.Summary=ae;const he=ue,de=require("echarts"),pe=require("immutable"),ge=(e,t,n)=>{let o;return function(...i){const r=this,s=n&&!o;clearTimeout(o),o=setTimeout((()=>{o=null,n||e.apply(r,i)}),t),s&&e.apply(r,i)}},me=t=>{const n=(0,e.useRef)();return(0,e.useEffect)((()=>{n.current=t}),[t]),n.current};function fe({className:e,position:n="relative",withbackground:o=!1}){const i=["loading",n,e].filter(Boolean).join(" "),r=t().createElement("div",{className:i},t().createElement("div",{className:"loading-bar"}),t().createElement("div",{className:"loading-bar"}),t().createElement("div",{className:"loading-bar"}),t().createElement("div",{className:"loading-bar"}));return o?t().createElement("div",{className:"tyk-loading__wrapper"},r):r}fe.propTypes={className:r().string,position:r().string,withbackground:r().bool};const ye=fe;function ve({children:e,theme:n,onClose:o,noMargin:i,className:r}){const s="success"===n?"check":"exclamation";return t().createElement("div",{className:["tyk-message",`tyk-message--${n||"info"}`,i&&"no-margin",r].filter(Boolean).join(" ")},t().createElement(g,{type:s}),t().createElement("div",{className:"tyk-message__content"},e),o&&t().createElement(g,{type:"xmark",onClick:o}))}ve.propTypes={theme:r().string,children:r().oneOfType([r().element,r().node,r().string]),className:r().string,noMargin:r().bool,onClose:r().func};const be=ve,we=JSON.parse('{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:OGC:1.3:CRS84"}},"features":[{"geometry":{"type":"Polygon","coordinates":[[[47.97822265625001,7.9970703125],[46.97822265625001,7.9970703125],[43.98378906250002,9.008837890624989],[43.482519531250006,9.379492187499991],[43.181640625,9.879980468749991],[42.84160156250002,10.203076171874997],[42.65644531250001,10.6],[42.92275390625002,10.999316406249989],[43.24599609375002,11.499804687499989],[43.85273437500001,10.784277343749991],[44.38652343750002,10.430224609374989],[44.94296875,10.43671875],[45.81669921875002,10.835888671874997],[46.565039062500006,10.745996093749994],[47.40498046875001,11.174023437499997],[48.01923828125001,11.139355468749997],[48.57255859375002,11.320507812499997],[48.938574218750006,11.258447265624994],[50.11005859375001,11.529296875],[50.79228515625002,11.983691406249989],[51.2548828125,11.830712890624994],[51.08427734375002,11.335644531249997],[51.140625,10.656884765624994],[51.031835937500006,10.444775390624997],[51.19296875,10.554638671874997],[51.390234375,10.422607421875],[50.93007812500002,10.33554687499999],[50.825,9.428173828124997],[50.10283203125002,8.199804687499991],[49.85205078125,7.962548828124994],[49.234960937500006,6.77734375],[49.04931640625,6.173632812499989],[47.97529296875001,4.497021484374997],[46.87880859375002,3.28564453125],[46.05117187500002,2.475146484374989],[44.92021484375002,1.81015625],[43.71757812500002,0.857861328124997],[41.97988281250002,-0.973046875],[41.53271484375,-1.6953125],[41.521875,-1.572265625],[41.42695312500001,-1.449511718750003],[41.24980468750002,-1.220507812500003],[40.97871093750001,-0.870312500000011],[40.964453125,2.814648437499997],[41.341796875,3.20166015625],[41.61347656250001,3.590478515624994],[41.88398437500001,3.977734375],[41.91533203125002,4.031298828124989],[42.02412109375001,4.137939453125],[42.85664062500001,4.32421875],[43.12568359375001,4.644482421874997],[43.58349609375,4.85498046875],[43.988867187500006,4.950537109374991],[44.940527343750006,4.912011718749994],[47.97822265625001,7.9970703125]]]},"properties":{"name":"Somalia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[9.579979133936737,47.05856388629306],[9.409458596647225,47.02019676540292],[9.46249431093294,47.09010747968864],[9.46249431093294,47.19858962254578],[9.527658197470123,47.27026989773668],[9.579979133936737,47.05856388629306]]]},"properties":{"name":"Liechtenstein","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-8.683349609375,27.77800740805682],[-13.038761787013554,27.81190166624856],[-12.948925781249926,27.914160156250034],[-11.552685546874955,28.31010742187496],[-10.486474609374994,29.06494140625],[-10.200585937499994,29.380371093750057],[-9.667089843749949,30.10927734375005],[-9.652929687499977,30.447558593750045],[-9.875488281249943,30.717919921874966],[-9.80869140624992,31.42460937499996],[-9.347460937499932,32.086376953124955],[-9.245849609375,32.572460937499955],[-8.512841796874994,33.25244140625003],[-6.900976562499949,33.96904296874999],[-6.353125,34.77607421875001],[-5.924804687499943,35.78579101562502],[-5.277832031249943,35.90273437500002],[-5.252685546874972,35.61474609374997],[-4.628320312499966,35.206396484375006],[-4.329980468749937,35.161474609375006],[-3.693261718749994,35.27998046874998],[-3.394726562499926,35.21181640625005],[-2.972216796874989,35.40727539062499],[-2.839941406249949,35.127832031249994],[-2.731396484374955,35.13520507812498],[-2.636816406249977,35.11269531250002],[-2.423730468749994,35.12348632812498],[-2.219628906249966,35.10419921874998],[-1.795605468749926,34.751904296874955],[-1.67919921875,33.31865234375002],[-1.550732421874955,33.073583984375006],[-1.510009765625,32.877636718749955],[-1.45,32.784814453124966],[-1.352148437499977,32.70336914062497],[-1.29638671875,32.67568359375002],[-1.188232421875,32.608496093750006],[-1.111035156249983,32.55229492187502],[-1.065527343749949,32.46831054687496],[-1.16259765625,32.399169921875],[-1.275341796874983,32.089013671874966],[-2.863427734374937,32.07470703124997],[-2.930859374999926,32.04252929687499],[-2.988232421874983,31.874218749999983],[-3.01738281249996,31.834277343750017],[-3.439794921874949,31.704541015624983],[-3.604589843749949,31.686767578125],[-3.700244140624989,31.70009765625005],[-3.768164062499977,31.689550781250034],[-3.837109374999983,31.512353515624994],[-3.833398437499937,31.197802734375045],[-3.626904296874955,31.000927734374983],[-4.148779296874977,30.8095703125],[-4.322851562500006,30.698876953124994],[-4.52915039062492,30.62553710937499],[-4.778515624999926,30.552392578124994],[-4.968261718749943,30.465380859375045],[-5.061914062499937,30.326416015625057],[-5.180126953124955,30.166162109374994],[-5.293652343749983,30.058642578125045],[-5.44877929687496,29.956933593750023],[-6.00429687499999,29.83125],[-6.479736328124943,29.82036132812499],[-6.520556640624989,29.659863281249983],[-6.59775390624992,29.578955078125006],[-6.635351562499949,29.568798828124983],[-6.755126953125,29.583837890625034],[-6.855566406249949,29.601611328125017],[-7.142431640624949,29.61958007812504],[-7.427685546874983,29.425],[-7.485742187499994,29.392236328124994],[-8.659912109375,28.718603515625063],[-8.683349609375,27.900390625],[-8.683349609375,27.77800740805682]]]},"properties":{"name":"Morocco","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-13.038761787013554,27.81190166624856],[-8.683349609375,27.77800740805682],[-8.683349609375,27.65644531250004],[-8.817822265624955,27.65644531250004],[-8.817822265624951,27.656445312499997],[-8.683349609375,27.656445312499997],[-8.683349609375,27.2859375],[-8.682861328125,26.921337890624997],[-8.6826171875,26.72314453125],[-8.682324218749983,26.497705078124994],[-8.68212890625,26.273193359375],[-8.68212890625,26.10947265625],[-8.682226562499977,25.995507812499994],[-12.016308593749983,25.995410156250003],[-12.016308593749983,25.740136718749994],[-12.016308593749983,25.331689453124994],[-12.016308593749983,25.059375],[-12.016308593749983,24.923242187499994],[-12.016308593749983,24.378662109375],[-12.016308593749983,23.97021484375],[-12.0234375,23.467578125],[-12.372900390624977,23.318017578124994],[-12.559375,23.290820312500003],[-12.620410156249989,23.27133789062499],[-13.031494140625,23.000244140625],[-13.153271484374983,22.820507812499997],[-13.12702845982141,22.703770926339278],[-13.136540684091575,22.708182548616723],[-13.094335937499977,22.495996093749994],[-13.051220703124983,21.854785156250003],[-13.041748046875,21.713818359374997],[-13.0322265625,21.572070312500003],[-13.025097656249983,21.466796875],[-13.016210937499977,21.333935546874997],[-15.231201171875,21.331298828125],[-16.964550781249983,21.329248046874994],[-17.06396484375,20.89882812499999],[-17.048046874999983,20.80615234375],[-17.098779296874994,20.856884765624997],[-16.930859374999983,21.9],[-16.35874023437495,22.594531250000045],[-16.21025390624999,23.097900390625],[-15.789257812499926,23.792871093750023],[-15.980712890624943,23.670312500000023],[-15.899316406249966,23.844433593749955],[-14.904296875000028,24.719775390625017],[-14.794921874999943,25.404150390625006],[-14.413867187499932,26.25371093749999],[-13.57578125,26.735107421875],[-13.175976562499983,27.655712890624983],[-13.038761787013554,27.81190166624856]],[[-8.774365234374983,27.460546875],[-8.794873046874983,27.120703125000034],[-8.794873046874983,27.120703125],[-8.774365234374983,27.460546875]]]},"properties":{"name":"W. Sahara","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[21.5625,42.247509765625],[21.560839843750017,42.24765625],[21.389550781250023,42.21982421875],[21.28662109375,42.100390625],[21.05976562500001,42.171289062499994],[20.778125,42.071044921875],[20.725,41.87353515625],[20.566210937500017,41.873681640624994],[20.485449218750006,42.223388671875],[20.06396484375,42.54726562499999],[20.054296875,42.760058593749996],[20.344335937500006,42.827929687499996],[20.40996305279786,42.84373166741877],[20.344335937500063,42.82792968750002],[19.670996093750006,43.163964843749994],[19.21875,43.449951171875],[19.196484375000068,43.48500976562502],[19.19160156250004,43.52104492187499],[19.19433593749997,43.533300781250006],[19.495117187500057,43.642871093750045],[19.245019531249994,43.96503906250004],[19.583789062500017,44.04345703125003],[19.118457031250074,44.359960937500006],[19.348632812500057,44.88090820312502],[19.007128906250045,44.86918945312502],[19.062890625000023,45.13720703125],[19.4,45.2125],[19.004687500000074,45.39951171875006],[19.064257812500045,45.51499023437506],[18.839062499999983,45.83574218750002],[18.905371093750006,45.931738281250034],[19.421289062500023,46.064453125],[19.61347656250001,46.169189453125],[19.84443359375001,46.145898437499966],[19.934082031250057,46.161474609375034],[20.161425781250017,46.14189453124996],[20.210156250000068,46.12602539062502],[20.241796875000034,46.10859375000001],[20.301367187500006,46.05068359375002],[20.35859375000004,45.975488281249994],[20.581152343749977,45.86948242187506],[20.65273437499999,45.779394531250006],[20.709277343750074,45.735253906249994],[20.727832031250017,45.73740234374998],[20.746875,45.74897460937501],[20.76015625000005,45.75810546875002],[20.775,45.74980468750002],[20.794042968750006,45.467871093750034],[21.431445312500017,45.192529296874994],[21.465429687500006,45.171875],[21.357031250000034,44.99077148437502],[21.532324218750063,44.900683593750045],[21.519921875000023,44.88081054687498],[21.442187500000074,44.87338867187498],[21.384375,44.87006835937501],[21.357910156250057,44.86181640625003],[21.36005859375004,44.82666015624997],[21.52314453125004,44.79008789062499],[21.63613281250005,44.71044921875],[21.909277343750034,44.666113281250034],[22.026953125,44.61987304687503],[22.093066406250074,44.541943359374955],[22.200976562500017,44.560693359374966],[22.350683593750063,44.676123046875034],[22.497656249999977,44.70625],[22.64208984375,44.65097656249998],[22.720898437499983,44.605517578125045],[22.734375,44.56992187499998],[22.700781250000063,44.55551757812498],[22.620117187500057,44.562353515625034],[22.554003906250017,44.54033203124999],[22.49453125000005,44.43544921875002],[22.687890625000023,44.248291015625],[22.42080078125005,44.00742187500006],[22.399023437500063,43.96953125],[22.36542968750004,43.86210937500002],[22.36962890625003,43.78129882812499],[22.55458984375005,43.45449218750002],[22.767578125,43.35415039062502],[22.81972656250005,43.300732421874955],[22.85957031250001,43.252343749999966],[22.97685546874999,43.18798828125],[22.799902343750006,42.985742187499994],[22.706152343750006,42.88393554687505],[22.466796875,42.842480468749955],[22.53242187500004,42.48120117187497],[22.523535156250006,42.440966796875045],[22.44570312500005,42.35913085937497],[22.42207031250004,42.32885742187503],[22.344042968750045,42.31396484375003],[22.23974609375003,42.303110028468716],[21.81464843750001,42.303125],[21.5625,42.24750976562498],[21.5625,42.247509765625]]]},"properties":{"name":"Serbia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[74.54140625000002,37.02216796875],[74.03886718750002,36.825732421874996],[73.116796875,36.868554687499994],[72.24980468750002,36.734716796875],[71.23291015625,36.12177734375],[71.18505859375,36.04208984375],[71.57197265625001,35.546826171875],[71.62050781250002,35.183007812499994],[70.965625,34.53037109375],[71.095703125,34.369433593749996],[71.05156250000002,34.049707031249994],[70.65400390625001,33.952294921874994],[69.8896484375,34.007275390625],[70.26113281250002,33.289013671875],[69.5015625,33.020068359374996],[69.24140625000001,32.433544921875],[69.279296875,31.936816406249996],[68.86894531250002,31.634228515624997],[68.59765625,31.802978515625],[68.16103515625002,31.802978515625],[67.57822265625,31.506494140624994],[67.737890625,31.343945312499997],[67.45283203125001,31.234619140625],[66.82929687500001,31.263671875],[66.346875,30.802783203124996],[66.23125,29.86572265625],[65.09550781250002,29.559472656249994],[64.39375,29.544335937499994],[64.09873046875,29.391943359375],[63.56757812500001,29.497998046874997],[62.4765625,29.408349609374994],[62.0009765625,29.530419921874994],[61.22441406250002,29.749414062499994],[60.843359375,29.858691406249996],[61.331640625,30.363720703124997],[61.55947265625002,30.599365234375],[61.7841796875,30.831933593749994],[61.81083984375002,30.91328125],[61.81425781250002,31.072558593749996],[61.75507812500001,31.285302734374994],[61.66015625,31.382421875],[61.34648437500002,31.421630859375],[61.11074218750002,31.451123046874997],[60.854101562500006,31.483251953125],[60.82070312500002,31.495166015624996],[60.791601562500006,31.660595703124997],[60.804296875,31.73447265625],[60.7875,31.877197265625],[60.78994140625002,31.987109375],[60.827246093750006,32.16796875],[60.82929687500001,32.249414062499994],[60.71044921875,32.6],[60.57656250000002,32.994873046875],[60.560546875,33.137841796874994],[60.9169921875,33.505224609375],[60.573828125,33.588330078125],[60.4859375,33.7119140625],[60.48574218750002,34.094775390624996],[60.642675781250006,34.307177734374996],[60.88945312500002,34.31943359375],[60.80390625000001,34.418017578124996],[60.76259765625002,34.475244140624994],[60.73613281250002,34.491796875],[60.72626953125001,34.51826171875],[60.73945312500001,34.544726562499996],[60.80234375,34.554638671875],[60.8453125,34.587695312499996],[60.91474609375001,34.633984375],[60.951171875,34.653857421874996],[61.080078125,34.855615234374994],[61.1,35.272314453125],[61.18925781250002,35.31201171875],[61.24550781250002,35.474072265625],[61.27851562500001,35.51376953125],[61.281835937500006,35.55341796875],[61.26201171875002,35.619580078125],[61.3447265625,35.6294921875],[61.62099609375002,35.43232421875],[62.08964843750002,35.3796875],[62.30781250000001,35.170800781249994],[62.688085937500006,35.255322265625],[63.056640625,35.44580078125],[63.08417968750001,35.56806640625],[63.16972656250002,35.678125],[63.129980468750006,35.84619140625],[63.8625,36.012353515624994],[64.184375,36.14892578125],[64.51103515625002,36.340673828125],[64.56582031250002,36.427587890625],[64.6025390625,36.554541015625],[64.78242187500001,37.05927734375],[64.81630859375002,37.132080078125],[64.95156250000002,37.1935546875],[65.08964843750002,37.237939453124994],[65.30361328125002,37.24677734375],[65.55498046875002,37.251171875],[65.76503906250002,37.569140625],[66.471875,37.3447265625],[66.52226562500002,37.348486328125],[66.827734375,37.3712890625],[67.06884765625,37.334814453125],[67.19550781250001,37.235205078125],[67.31972656250002,37.2095703125],[67.44169921875002,37.2580078125],[67.51728515625001,37.266650390624996],[67.546484375,37.235644531249996],[67.607421875,37.222509765625],[67.7,37.22724609375],[67.7529296875,37.1998046875],[67.75898437500001,37.172216796875],[67.76601562500002,37.14013671875],[67.83447265625,37.064208984375],[67.9580078125,36.972021484375],[68.06777343750002,36.9498046875],[68.26093750000001,37.013085937499994],[68.284765625,37.036328125],[68.29951171875001,37.088427734374996],[68.38691406250001,37.1375],[68.66914062500001,37.2583984375],[68.7232421875,37.268017578125],[68.78203125000002,37.2580078125],[68.82373046875,37.270703125],[68.8384765625,37.30283203125],[68.85537109375002,37.316845703125],[68.88525390625,37.328076171875],[68.91181640625001,37.333935546875],[68.96044921875,37.325048828125],[69.18017578125,37.15830078125],[69.26484375000001,37.1083984375],[69.30390625000001,37.116943359375],[69.35380859375002,37.150048828124994],[69.41445312500002,37.207763671875],[69.4296875,37.290869140625],[69.39921875000002,37.399316406249994],[69.42011718750001,37.48671875],[69.49208984375002,37.553076171875],[69.62578125000002,37.594042968749996],[69.8208984375,37.6095703125],[69.9849609375,37.566162109375],[70.18867187500001,37.582470703125],[70.25146484375,37.66416015625],[70.25498046875,37.765380859375],[70.19941406250001,37.886035156249996],[70.21464843750002,37.9244140625],[70.41777343750002,38.075439453125],[70.7359375,38.42255859375],[71.255859375,38.306982421875],[71.33271484375001,38.170263671875],[71.27851562500001,37.918408203125],[71.319921875,37.90185546875],[71.3896484375,37.906298828124996],[71.48779296875,37.931884765625],[71.55195312500001,37.933154296874996],[71.58222656250001,37.910107421875],[71.43291015625002,37.1275390625],[71.530859375,36.845117187499994],[71.665625,36.696923828124994],[72.65742187500001,37.029052734375],[72.8955078125,37.267529296875],[73.21113281250001,37.408496093749996],[73.38291015625,37.462255859375],[73.48134765625002,37.4716796875],[73.60468750000001,37.446044921875],[73.65712890625002,37.43046875],[73.72060546875002,37.41875],[73.73378906250002,37.37578125],[73.71728515625,37.329443359375],[73.6275390625,37.261572265625],[73.65351562500001,37.23935546875],[73.749609375,37.231787109375],[74.16708984375,37.329443359375],[74.20351562500002,37.372460937499994],[74.25966796875002,37.415429687499994],[74.659375,37.394482421875],[74.73056640625,37.35703125],[74.83046875000002,37.2859375],[74.89130859375001,37.231640625],[74.84023437500002,37.225048828125],[74.76738281250002,37.249169921874994],[74.73896484375001,37.28564453125],[74.72666015625,37.29072265625],[74.6689453125,37.26669921875],[74.55898437500002,37.236621093749996],[74.37216796875,37.15771484375],[74.37617187500001,37.137353515624994],[74.49794921875002,37.0572265625],[74.52646484375,37.030664062499994],[74.54140625000002,37.02216796875]]]},"properties":{"name":"Afghanistan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[17.57958984375,-8.099023437500009],[17.643359375000017,-8.090722656250009],[18.00878906250003,-8.107617187499983],[18.56269531250001,-7.9359375],[18.944433593750063,-8.001464843750028],[19.142675781250034,-8.001464843750028],[19.34082031249997,-7.966601562500031],[19.369921875000045,-7.706542968749986],[19.371679687500063,-7.655078124999989],[19.47988281250008,-7.472167968750028],[19.48378906250008,-7.279492187500026],[19.527636718750017,-7.144433593749952],[19.87519531250004,-6.986328124999986],[19.99746093750008,-6.976464843750023],[20.190039062500063,-6.9462890625],[20.482226562500074,-6.915820312500017],[20.59003906250001,-6.919921874999957],[20.598730468750006,-6.935156249999949],[20.536914062500045,-7.121777343749955],[20.535839843749983,-7.182812499999955],[20.558398437500045,-7.244433593749989],[20.60781250000008,-7.277734375000023],[20.910937500000017,-7.281445312499983],[21.190332031250023,-7.284960937499989],[21.751074218750034,-7.305468749999989],[21.80605468750005,-7.32861328125],[21.905371093750034,-8.693359374999943],[21.813183593750068,-9.46875],[22.19775390625,-10.040625],[22.30703125000005,-10.691308593750023],[22.203515625000023,-10.829492187500009],[22.226171875,-11.121972656250009],[22.27880859375,-11.19414062499996],[22.314941406250057,-11.198632812499994],[22.39296875000005,-11.159472656250003],[22.486132812500045,-11.086718750000017],[22.56103515625003,-11.05585937500004],[22.814746093750017,-11.08027343750004],[23.076269531250006,-11.087890624999986],[23.463964843750034,-10.969335937499991],[23.83388671875008,-11.013671874999972],[23.96650390625001,-10.871777343750011],[23.98388671875,-11.725],[23.909375,-12.636132812500009],[23.886523437500045,-12.743261718749991],[23.882421875,-12.799023437499983],[23.968066406250045,-12.956933593749994],[23.962988281250006,-12.988476562500026],[23.843164062500023,-13.0009765625],[22.209570312500006,-13.0009765625],[21.97890625000008,-13.0009765625],[21.979101562500034,-13.798730468749994],[21.979296875000074,-14.11962890625],[21.979394531249994,-14.440527343750006],[21.97978515624999,-15.955566406250014],[22.193945312500006,-16.628125],[23.380664062500017,-17.640625],[22.32421875,-17.8375],[20.74550781250008,-18.019726562499983],[20.194335937500057,-17.86367187499999],[18.95527343750004,-17.80351562499999],[18.39638671875005,-17.3994140625],[16.14843750000003,-17.39023437499999],[14.017480468750023,-17.40888671874997],[13.475976562500023,-17.04003906249997],[13.179492187500017,-16.971679687499986],[12.548144531250017,-17.212695312499974],[12.35927734375008,-17.205859375],[12.318457031250006,-17.21337890625003],[12.213378906250028,-17.209960937500043],[12.013964843750074,-17.168554687500034],[11.902539062500011,-17.226562499999957],[11.743066406250023,-17.24921875000004],[11.780078125000017,-16.87128906249997],[11.818945312500034,-16.704101562500014],[11.750878906250023,-15.831933593749966],[12.016113281250057,-15.513671874999957],[12.55048828125004,-13.437792968750003],[12.983203124999989,-12.775683593750017],[13.4169921875,-12.52041015624998],[13.597949218750017,-12.286132812500028],[13.785351562499983,-11.81279296874996],[13.833593750000063,-10.9296875],[13.33222656250004,-9.998925781250009],[12.99853515625,-9.048046875],[13.358984375,-8.687207031250026],[13.378515625000063,-8.369726562500006],[12.82343750000004,-6.954785156249955],[12.283300781250063,-6.12431640624996],[13.184375,-5.85625],[13.346484375000017,-5.863378906250006],[13.978515625,-5.857226562500003],[16.315234375000074,-5.865625],[16.431445312500045,-5.90019531249996],[16.53710937499997,-5.9658203125],[16.697265625,-6.164257812500026],[16.74296874999999,-6.618457031250003],[16.813085937500063,-6.772558593749963],[16.919433593750057,-6.93398437499998],[16.98476562500005,-7.257421874999977],[17.57958984375,-8.099023437500009]]],[[[12.50146484375,-4.5875],[12.848144531250028,-4.428906249999983],[12.881054687500068,-4.445117187499989],[12.971386718750068,-4.551757812499957],[13.048046875000068,-4.619238281250034],[13.072753906250028,-4.634765625],[13.057324218750011,-4.651074218750026],[12.947460937500011,-4.695312499999986],[12.829687499999977,-4.73662109374996],[12.451464843750017,-5.071484374999969],[12.453222656250034,-5.090625],[12.52236328125008,-5.148925781250028],[12.484570312500011,-5.71875],[12.213671875000074,-5.758691406249994],[12.177148437499994,-5.324804687499977],[12.018359375000074,-5.004296874999966],[12.50146484375,-4.5875]]]]},"properties":{"name":"Angola","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[20.06396484375,42.54726562499999],[20.485449218750006,42.223388671875],[20.566210937500017,41.873681640624994],[20.48896484375001,41.272607421874994],[20.709277343750017,40.928369140624994],[20.964257812500023,40.849902343749996],[20.95576171875001,40.775292968749994],[21.030859375,40.622460937499994],[20.881640625000017,40.467919921874994],[20.65742187500001,40.1173828125],[20.4560546875,40.065576171874994],[20.408007812500017,40.049462890624994],[20.383691406250023,40.0171875],[20.338476562500006,39.991064453125],[20.311132812500006,39.979443359375],[20.311328125000017,39.95078125],[20.381640625000017,39.841796875],[20.382421875,39.802636718749994],[20.206835937500017,39.653515625],[20.13105468750001,39.66162109375],[20.05976562500001,39.699121093749994],[20.022558593750006,39.710693359375],[20.001269531250017,39.709423828125],[19.851855468750017,40.0435546875],[19.322265625,40.407080078125],[19.45917968750001,40.40537109375],[19.3375,40.663818359375],[19.57568359375,41.640429687499996],[19.577539062500023,41.7875],[19.342382812500006,41.869091796875],[19.280664062500023,42.17255859375],[19.65449218750001,42.628564453124994],[19.78828125000001,42.476171875],[20.06396484375,42.54726562499999]]]},"properties":{"name":"Albania","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[19.66230468750001,60.187158203124994],[19.53652343750005,60.14497070312501],[19.551367187500063,60.24384765625001],[19.66230468750001,60.187158203124994]]],[[[19.989550781250074,60.351171875],[20.258886718750063,60.26127929687499],[19.799804687500057,60.08173828125001],[19.68691406250005,60.267626953125045],[19.84765625000003,60.22055664062506],[19.823046875000074,60.390185546875045],[19.989550781250074,60.351171875]]]]},"properties":{"name":"Aland","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[1.7060546875,42.503320312499994],[1.534082031250023,42.441699218749996],[1.448828125,42.437451171875],[1.428125,42.46132812499999],[1.414843750000017,42.548388671874996],[1.428320312500006,42.5958984375],[1.501367187500023,42.642724609374994],[1.568164062500017,42.635009765625],[1.709863281250023,42.604443359375],[1.739453125000011,42.575927734375],[1.740234375,42.55673828125],[1.713964843750006,42.525634765625],[1.7060546875,42.503320312499994]]]},"properties":{"name":"Andorra","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[53.927832031250006,24.177197265624983],[53.63447265625004,24.169775390624977],[53.83378906250002,24.258935546875023],[53.927832031250006,24.177197265624983]]],[[[53.3322265625001,24.258593750000045],[53.19091796874997,24.290917968749966],[53.412402343750074,24.411035156250023],[53.3322265625001,24.258593750000045]]],[[[56.29785156250003,25.650683593750045],[56.38798828125002,24.97919921875004],[56.06386718750005,24.73876953125],[56.00058593750006,24.953222656249977],[55.795703125000074,24.868115234374955],[55.76083984375006,24.24267578125],[55.92861328125005,24.215136718750074],[55.98515625000002,24.063378906249966],[55.4684570312501,23.94111328125001],[55.53164062499999,23.81904296875001],[55.1999023437501,23.034765625000034],[55.185839843750074,22.7041015625],[55.104296875000074,22.621484375000023],[52.55507812500005,22.932812499999955],[51.592578125000074,24.07885742187503],[51.56835937500003,24.286181640625074],[51.76757812500003,24.25439453125],[51.84316406250005,24.010888671875023],[52.118554687499994,23.97109375],[52.64824218750002,24.154638671875006],[53.80175781249997,24.069482421874966],[54.14794921875003,24.17119140624999],[54.39707031250006,24.278173828125034],[54.74677734375004,24.810449218750023],[55.94121093750002,25.793994140625017],[56.08046875,26.06264648437505],[56.16748046875003,26.047460937499977],[56.144628906250006,25.690527343750006],[56.29785156250003,25.650683593750045]]]]},"properties":{"name":"United Arab Emirates","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-64.54916992187498,-54.71621093749998],[-63.81542968749997,-54.725097656250014],[-64.637353515625,-54.90253906250001],[-64.75732421875,-54.82656249999999],[-64.54916992187498,-54.71621093749998]]],[[[-68.65322265624994,-54.85361328124999],[-68.62993164062499,-52.65263671875004],[-68.24013671875,-53.08183593749999],[-68.43115234375,-53.0552734375],[-68.48852539062497,-53.260937499999976],[-68.16113281249997,-53.30644531250001],[-68.00849609374995,-53.5640625],[-67.29423828125002,-54.049804687500014],[-66.23564453124999,-54.53349609374997],[-65.17900390624993,-54.678125],[-65.47114257812495,-54.91464843749999],[-66.5111328125,-55.032128906249945],[-67.127099609375,-54.90380859375001],[-68.65322265624994,-54.85361328124999]]],[[[-61.084716796875,-23.65644531250001],[-60.83984375000003,-23.85810546874997],[-59.89248046874994,-24.093554687499974],[-59.18725585937497,-24.56230468749999],[-57.82167968749994,-25.136425781249983],[-57.56313476562494,-25.473730468749963],[-57.943115234375,-26.05292968750001],[-58.18149414062498,-26.30742187499999],[-58.222070312499994,-26.65],[-58.618603515624955,-27.13212890624996],[-58.64174804687494,-27.196093750000017],[-58.60483398437498,-27.314355468750037],[-58.16826171874993,-27.27343749999997],[-56.437158203124966,-27.553808593749977],[-56.16406250000003,-27.321484374999983],[-55.95146484374996,-27.325683593749957],[-55.789990234374926,-27.416406249999966],[-55.71464843749996,-27.41484375],[-55.632910156250006,-27.35712890624997],[-55.59379882812502,-27.288085937500014],[-55.597265625,-27.207617187499963],[-55.56489257812498,-27.15],[-55.496728515624966,-27.11533203124999],[-55.45063476562498,-27.068359375000014],[-55.426660156249994,-27.00927734374997],[-55.13593750000001,-26.931152343749957],[-54.934472656249994,-26.70253906250001],[-54.677734375,-26.308789062499997],[-54.631933593750006,-26.005761718749994],[-54.615869140624994,-25.576074218750023],[-54.44394531249998,-25.625],[-54.15458984374999,-25.523046874999963],[-53.89116210937499,-25.66884765625001],[-53.668554687500006,-26.288183593749977],[-53.83818359375002,-27.121093750000014],[-54.32700195312495,-27.423535156249997],[-54.82910156250003,-27.55058593750003],[-55.10151367187501,-27.866796874999963],[-55.72548828125002,-28.20410156250003],[-55.68725585937497,-28.38164062499996],[-55.890527343749994,-28.370019531249994],[-56.938623046874994,-29.594824218750034],[-57.22465820312499,-29.782128906249994],[-57.40522460937501,-30.03388671875004],[-57.563867187499994,-30.139941406249974],[-57.60888671875003,-30.187792968750045],[-57.65087890624997,-30.295019531250034],[-57.71269531249996,-30.38447265624997],[-57.83120117187502,-30.495214843749963],[-57.87250976562501,-30.591015625000026],[-57.81059570312499,-30.85859375000001],[-57.88632812499998,-30.937402343749994],[-57.86840820312497,-31.104394531249994],[-57.89335937499999,-31.195312499999957],[-58.03339843750001,-31.416601562500006],[-58.053857421874994,-31.494921874999974],[-58.009667968749966,-31.534375],[-57.98798828124998,-31.576171875],[-58.00698242187494,-31.684960937499966],[-58.04233398437495,-31.769238281249997],[-58.16748046874997,-31.87265625],[-58.18901367187499,-31.924218750000037],[-58.16040039062503,-31.986523437500026],[-58.156347656250006,-32.0515625],[-58.17700195312494,-32.11904296875002],[-58.16479492187494,-32.18486328125002],[-58.119726562500006,-32.24892578125002],[-58.12304687499997,-32.321875],[-58.201171875,-32.471679687500014],[-58.219970703125,-32.563964843749986],[-58.17099609374998,-32.95927734374996],[-58.424462890624994,-33.11152343749998],[-58.54721679687498,-33.66347656249998],[-58.392480468749966,-34.192968750000034],[-58.52548828124998,-34.29619140625002],[-58.28334960937494,-34.68349609375005],[-57.54785156250003,-35.018945312499994],[-57.170654296875,-35.3625],[-57.35390624999994,-35.72031249999998],[-57.33544921875,-36.026757812499966],[-57.07617187499994,-36.296777343749994],[-56.74946289062501,-36.346484375],[-56.67202148437494,-36.85126953124998],[-57.546972656250034,-38.085644531250026],[-58.17919921874994,-38.435839843750045],[-59.82832031250001,-38.83818359375003],[-61.112207031249994,-38.99296875000003],[-61.84790039062497,-38.961816406249994],[-62.33476562499993,-38.80009765625],[-62.29506835937502,-39.24326171874996],[-62.053662109374955,-39.373828125],[-62.179345703124994,-39.38046875000002],[-62.076806640624966,-39.46152343750002],[-62.131542968749926,-39.82539062499998],[-62.28691406249996,-39.89531250000002],[-62.40185546875003,-40.19658203125002],[-62.24633789062494,-40.674609374999974],[-62.39501953124997,-40.89082031249997],[-62.95903320312493,-41.10966796875006],[-63.621777343749955,-41.15976562499996],[-64.86948242187503,-40.735839843750014],[-65.13339843749998,-40.88066406250003],[-64.98637695312496,-42.102050781249986],[-64.53774414062494,-42.25458984374998],[-64.57099609374998,-42.416015625],[-64.42041015625003,-42.43378906249998],[-64.10087890624993,-42.395117187500006],[-64.06118164062494,-42.266113281250014],[-64.228515625,-42.21826171874996],[-63.795556640624994,-42.113867187500006],[-63.6298828125,-42.28271484375003],[-63.61733398437502,-42.695800781249986],[-64.03476562499998,-42.88125],[-64.48784179687499,-42.51347656250006],[-64.97070312499997,-42.66630859375002],[-65.02690429687496,-42.75888671874996],[-64.31914062499999,-42.968945312500026],[-64.83994140624998,-43.18886718749998],[-65.25234374999997,-43.571875],[-65.26552734375,-44.2796875],[-65.64760742187502,-44.661425781250045],[-65.63876953125,-45.0078125],[-66.19013671874995,-44.96474609375002],[-66.94140625,-45.25732421875003],[-67.59956054687495,-46.05253906250003],[-67.5064453125,-46.44277343749995],[-66.77685546874994,-47.005859375],[-65.99853515625,-47.09375],[-65.73808593749999,-47.34492187499998],[-65.81430664062495,-47.63818359374996],[-66.22524414062502,-47.826757812500006],[-65.93422851562497,-47.826757812500006],[-65.81005859374997,-47.941113281250026],[-67.46630859375,-48.95175781250004],[-67.68486328125002,-49.2466796875],[-67.82597656249999,-49.91962890625005],[-68.2572265625,-50.104589843749984],[-68.66757812500003,-49.75253906250003],[-68.66162109374997,-49.93574218750005],[-68.97958984375,-50.003027343749984],[-68.59794921874996,-50.00947265624997],[-68.421875,-50.15791015625001],[-69.04477539062495,-50.49912109374998],[-69.35859374999993,-51.028125],[-69.20102539062498,-50.99365234375001],[-69.03530273437497,-51.48896484375002],[-69.46542968750003,-51.58447265625003],[-68.96533203125003,-51.67714843749999],[-68.443359375,-52.35664062500004],[-69.96025390624993,-52.00820312500002],[-71.91865234374995,-51.98955078125004],[-72.40766601562501,-51.54082031250002],[-72.34023437499997,-50.68183593749999],[-72.50981445312496,-50.607519531250034],[-73.15292968749998,-50.73828125000003],[-73.50126953124996,-50.125292968750024],[-73.55419921875,-49.463867187500014],[-73.46157226562497,-49.31386718750001],[-73.13525390625,-49.30068359374999],[-73.03364257812501,-49.014355468750004],[-72.65126953125,-48.84160156249998],[-72.582861328125,-48.47539062499999],[-72.35473632812497,-48.36582031250005],[-72.32832031250001,-48.11005859374998],[-72.517919921875,-47.87636718749998],[-72.34594726562497,-47.49267578124997],[-71.90498046875001,-47.201660156250014],[-71.94023437499999,-46.83125],[-71.69965820312501,-46.6513671875],[-71.87568359374998,-46.160546875],[-71.63154296874998,-45.95371093749998],[-71.74619140624998,-45.57890625],[-71.34931640624995,-45.33193359374995],[-71.5962890625,-44.97919921875004],[-72.04169921874998,-44.90419921875004],[-72.06372070312503,-44.771875],[-71.26113281250002,-44.763085937499966],[-71.15971679687496,-44.56025390625004],[-71.21259765624998,-44.44121093750003],[-71.82001953124993,-44.38310546875],[-71.68007812500002,-43.92958984374998],[-71.90498046875001,-43.34755859374998],[-71.750634765625,-43.237304687499986],[-72.14643554687498,-42.990039062499974],[-72.10820312499993,-42.25185546874995],[-71.75,-42.04677734375001],[-71.91127929687497,-41.650390624999986],[-71.93212890624994,-40.69169921874999],[-71.70898437499997,-40.381738281249994],[-71.81831054687493,-40.17666015624995],[-71.65976562499998,-40.02080078125],[-71.71992187499995,-39.63525390624997],[-71.53945312499997,-39.60244140624995],[-71.40156249999995,-38.93505859374996],[-70.858642578125,-38.60449218750003],[-71.16757812499998,-37.76230468749996],[-71.19218750000002,-36.84365234375004],[-71.05551757812498,-36.52373046874996],[-70.40478515625,-36.06171874999998],[-70.41572265625001,-35.52304687500002],[-70.55517578125,-35.246875],[-70.39316406250003,-35.146875],[-70.05205078124999,-34.30078124999997],[-69.85244140625,-34.224316406250026],[-69.81962890624999,-33.28378906249999],[-70.08486328125002,-33.20175781249998],[-70.02197265625,-32.88457031250002],[-70.36376953125,-32.08349609374997],[-70.25439453125,-31.957714843750026],[-70.585205078125,-31.569433593749963],[-70.51958007812493,-31.1484375],[-70.30908203124994,-31.02265625000004],[-70.15322265625,-30.360937499999963],[-69.95634765624996,-30.35820312500003],[-69.84428710937493,-30.175],[-69.95996093749997,-30.078320312500026],[-70.02680664062501,-29.324023437500017],[-69.82788085937497,-29.10322265624997],[-69.65693359374995,-28.413574218749986],[-69.17441406249998,-27.924707031250037],[-68.84633789062494,-27.153710937499994],[-68.59208984375002,-27.140039062499966],[-68.31865234374999,-26.973242187500006],[-68.59160156249999,-26.47041015624997],[-68.41450195312498,-26.153710937500023],[-68.59208984375002,-25.420019531250034],[-68.38422851562495,-25.091894531249977],[-68.56201171875,-24.74736328125003],[-68.25029296875002,-24.391992187500023],[-67.35620117187503,-24.033789062499963],[-67.00878906249994,-23.00136718750005],[-67.19487304687493,-22.821679687500037],[-66.99111328125,-22.509863281250006],[-66.71171874999999,-22.216308593749986],[-66.36518554687501,-22.113769531249957],[-66.32246093750001,-22.053125],[-66.28212890624997,-21.94746093750001],[-66.24760742187496,-21.83046875],[-66.22016601562495,-21.802539062499974],[-66.174658203125,-21.805664062499986],[-66.09858398437495,-21.83505859375002],[-66.05859375,-21.87949218750002],[-65.86015624999999,-22.019726562499983],[-65.77104492187493,-22.099609375000014],[-65.68618164062497,-22.11025390625005],[-65.51879882812497,-22.094531250000045],[-64.99262695312498,-22.109667968750017],[-64.60551757812499,-22.228808593750045],[-64.52363281250001,-22.37158203125],[-64.47773437499998,-22.485351562499986],[-64.44550781249998,-22.585351562500023],[-64.37397460937498,-22.761035156250017],[-64.32529296875,-22.82763671875],[-64.30791015624993,-22.7953125],[-64.26640625000002,-22.60332031249996],[-63.97612304687502,-22.072558593750003],[-63.92167968749993,-22.028613281250017],[-62.843359375,-21.997265625000026],[-62.62597656250003,-22.29042968749998],[-62.54155273437496,-22.349609374999957],[-62.37250976562498,-22.439160156249997],[-62.21416015624996,-22.612402343750034],[-61.798535156249955,-23.18203125],[-61.084716796875,-23.65644531250001]]]]},"properties":{"name":"Argentina","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[46.490625,38.90668945312498],[46.1144531250001,38.877783203125034],[45.977441406249994,39.24389648437503],[45.76630859375004,39.37846679687499],[45.78447265625002,39.54560546875001],[45.456835937500074,39.494482421875006],[45.15283203125003,39.58266601562502],[45.03164062500005,39.76513671874997],[44.76826171875004,39.70351562500005],[44.28925781250004,40.040380859375006],[43.66621093750004,40.12636718750002],[43.56933593750003,40.48237304687498],[43.72265624999997,40.71953124999999],[43.43945312500003,41.10712890625001],[44.077246093750006,41.182519531249994],[44.81132812500002,41.259375],[45.001367187499994,41.29096679687498],[45.188574218750006,41.14741210937504],[45.07050781250004,41.075585937499966],[45.5875,40.846923828125],[45.37890624999997,40.67358398437506],[45.45439453125002,40.532373046874966],[45.96464843750002,40.233789062499966],[45.8859375000001,40.024853515624955],[45.57978515625004,39.9775390625],[46.202050781249994,39.59448242187503],[46.48144531249997,39.55517578125003],[46.36523437500003,39.402490234374994],[46.584765625000074,39.22368164062499],[46.400292968749994,39.1921875],[46.490625,38.90668945312498]]]},"properties":{"name":"Armenia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-170.72626953125,-14.351171875],[-170.8205078125,-14.312109375],[-170.568115234375,-14.266796875000011],[-170.72626953125,-14.351171875]]]},"properties":{"name":"American Samoa","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[69.2824218750001,-49.05888671875002],[69.16718750000004,-48.88291015624996],[69.36875,-48.89042968749998],[69.2824218750001,-49.05888671875002]]],[[[69.18486328125002,-49.10957031250004],[69.59277343749997,-48.97099609375005],[69.64404296875003,-49.11738281250003],[69.40507812500002,-49.18173828125],[69.5423828125,-49.25566406250005],[70.32021484375005,-49.05859374999996],[70.55546875000007,-49.201464843750024],[70.38613281250005,-49.433984374999966],[70.16582031250002,-49.34296874999998],[69.75996093750004,-49.430175781249986],[69.98642578125006,-49.58164062500003],[70.2477539062501,-49.53066406250003],[70.12431640625002,-49.70439453124999],[69.153125,-49.5296875],[68.99296875000007,-49.704980468750016],[68.81474609375002,-49.69960937499999],[68.88339843750006,-49.16494140624995],[68.76953125000003,-49.06591796875003],[69.00244140624997,-48.661230468750006],[69.13613281250005,-48.86103515625003],[69.05214843750005,-49.08193359375001],[69.18486328125002,-49.10957031250004]]],[[[51.83457031250006,-46.43994140625],[51.65927734375006,-46.37363281249999],[51.7418945312501,-46.32685546874997],[51.83457031250006,-46.43994140625]]]]},"properties":{"name":"Fr. S. Antarctic Lands","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[-61.71606445312503,17.037011718749994],[-61.85966796874996,17.013330078124966],[-61.887109374999966,17.09814453125],[-61.81728515624994,17.168945312500057],[-61.71606445312503,17.037011718749994]]]},"properties":{"name":"Antigua and Barb.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[147.35605468750006,-43.396972656250014],[147.30888671875007,-43.50078125000002],[147.10498046875003,-43.43115234374996],[147.28388671875004,-43.278906250000034],[147.35605468750006,-43.396972656250014]]],[[[145.04296875000003,-40.78671875],[145.28300781250002,-40.76992187500002],[146.31748046875006,-41.16347656250001],[146.72343750000002,-41.07802734375001],[146.84814453124997,-41.16806640624996],[146.98984375000006,-40.99238281249997],[147.45478515625004,-41.00166015624998],[147.62167968750012,-40.844726562499986],[147.87294921875005,-40.87255859374997],[147.96875,-40.779589843750045],[148.215234375,-40.85488281250002],[148.34257812500007,-42.21533203124997],[148.21367187500002,-41.97001953125],[147.92441406250006,-42.5724609375],[147.94541015625006,-43.18183593749997],[147.7858398437501,-43.22001953125002],[147.69892578125004,-43.12255859374997],[147.64794921874997,-43.02060546874999],[147.8,-42.928125],[147.57382812500006,-42.84570312499997],[147.4523437500001,-43.03339843750001],[147.29794921875006,-42.790917968749994],[147.24501953125005,-43.21591796874999],[146.99697265625005,-43.15634765625002],[147.07734375000004,-43.27587890625003],[146.87392578125,-43.6125],[146.54853515625004,-43.50888671874999],[146.04316406250004,-43.547167968749974],[145.99443359375007,-43.37607421875002],[146.20800781249997,-43.31621093749999],[145.8732421875001,-43.29238281250002],[145.48759765625002,-42.92666015625004],[145.19882812500006,-42.23085937500004],[145.46826171874997,-42.492871093750026],[145.51660156249997,-42.3544921875],[145.33105468750003,-42.14707031250002],[145.23486328124997,-42.19697265624997],[145.23818359375,-42.01962890624999],[144.76611328125003,-41.39003906249998],[144.64609375000006,-40.980859375],[144.71855468750002,-40.67226562500002],[145.04296875000003,-40.78671875]]],[[[148.23691406250006,-40.515136718749986],[148.18779296875007,-40.592578125000045],[148.11728515625012,-40.52148437499996],[148.23691406250006,-40.515136718749986]]],[[[144.784375,-40.506738281249966],[144.74804687499997,-40.589453125000034],[144.7833984375001,-40.434863281249974],[144.784375,-40.506738281249966]]],[[[148.32626953125006,-40.30693359375003],[148.40400390625004,-40.486523437500026],[148.02011718750012,-40.40419921874995],[148.32626953125006,-40.30693359375003]]],[[[148.000390625,-39.75761718750003],[148.29736328125003,-39.985742187499966],[148.31357421875012,-40.173535156250026],[148.10566406250004,-40.26210937499995],[147.76718750000012,-39.87031249999998],[148.000390625,-39.75761718750003]]],[[[143.92792968750004,-40.116113281249966],[143.83857421875004,-39.90410156250003],[144.00078125000007,-39.580175781250034],[144.14101562500005,-39.953808593750026],[143.92792968750004,-40.116113281249966]]],[[[145.31445312500003,-38.49082031249996],[145.35507812500012,-38.55703124999995],[145.12841796875003,-38.52763671875],[145.31445312500003,-38.49082031249996]]],[[[137.59648437500007,-35.73867187499998],[137.92890625000004,-35.72607421875],[138.12343750000005,-35.85234375],[137.67089843749997,-35.897949218750014],[137.44843750000004,-36.07480468749999],[137.20957031250012,-35.982421875],[136.7550781250001,-36.03310546875002],[136.540625,-35.89013671875003],[136.63867187499997,-35.74882812500002],[137.33408203125006,-35.59248046875004],[137.58496093749997,-35.620214843750006],[137.59648437500007,-35.73867187499998]]],[[[153.53876953125004,-27.436425781250037],[153.42656250000002,-27.70644531249998],[153.43544921875,-27.40537109375002],[153.53876953125004,-27.436425781250037]]],[[[113.18300781250005,-26.053125],[112.96425781250005,-25.78310546875001],[112.94707031250002,-25.531542968750017],[113.18300781250005,-26.053125]]],[[[153.07744140625002,-25.75078125],[152.97666015625012,-25.551367187499963],[153.03808593750003,-25.193164062500003],[153.22753906249997,-25.00576171875001],[153.14375,-24.814843750000023],[153.25693359375012,-24.72890625],[153.35019531250012,-25.063085937499963],[153.07744140625002,-25.75078125]]],[[[151.14658203125006,-23.49082031250002],[151.24013671875,-23.529687500000037],[151.23828124999997,-23.77578125],[151.03330078125006,-23.530175781250037],[151.14658203125006,-23.49082031250002]]],[[[115.44619140625005,-20.78779296875001],[115.31806640625004,-20.850585937500014],[115.43457031249997,-20.66796875000003],[115.44619140625005,-20.78779296875001]]],[[[149.04375,-20.29150390624997],[148.93886718750005,-20.283691406249986],[148.98105468750012,-20.153515625000026],[149.04375,-20.29150390624997]]],[[[146.27832031249997,-18.23125],[146.29882812499997,-18.48476562500005],[146.09882812500004,-18.251757812500003],[146.27832031249997,-18.23125]]],[[[139.45917968750004,-17.11455078124996],[139.49277343750006,-16.990429687499983],[139.57089843750006,-17.09443359375004],[139.45917968750004,-17.11455078124996]]],[[[139.50781250000003,-16.57304687499996],[139.1595703125,-16.74169921875003],[139.29296875000003,-16.467285156249986],[139.58789062499997,-16.39521484374997],[139.69775390624997,-16.514941406250017],[139.50781250000003,-16.57304687499996]]],[[[137.09365234375005,-15.778125],[136.94267578125002,-15.711718749999989],[137.00957031250007,-15.594824218749977],[137.09365234375005,-15.778125]]],[[[124.59726562500006,-15.40195312500002],[124.52421875000002,-15.421484375],[124.51933593750002,-15.26748046874998],[124.59726562500006,-15.40195312500002]]],[[[125.19882812500006,-14.57949218749998],[125.0912109375,-14.59169921874998],[125.15996093750002,-14.456054687499972],[125.19882812500006,-14.57949218749998]]],[[[136.71464843750002,-13.803906249999983],[136.89082031250004,-13.786621093750014],[136.74531250000004,-14.072656250000023],[136.95078125000006,-14.184277343750026],[136.89433593750002,-14.293066406249977],[136.33544921875003,-14.211816406250037],[136.42470703125,-13.864843749999963],[136.6556640625,-13.675878906250006],[136.71464843750002,-13.803906249999983]]],[[[136.23740234375006,-13.824511718750003],[136.12265625000012,-13.816601562499983],[136.21542968750012,-13.664746093750054],[136.23740234375006,-13.824511718750003]]],[[[136.33867187500007,-11.602343749999989],[136.18027343750006,-11.676757812499957],[136.47929687500002,-11.465917968749991],[136.33867187500007,-11.602343749999989]]],[[[130.45927734375007,-11.679296875000034],[130.60625,-11.816601562500026],[130.04326171875007,-11.787304687500011],[130.19755859375007,-11.658203125],[130.15283203124997,-11.477539062499972],[130.29492187499997,-11.33681640624998],[130.45927734375007,-11.679296875000034]]],[[[130.6188476562501,-11.376074218749991],[131.02304687500006,-11.334375],[131.26826171875004,-11.18984375],[131.53857421874997,-11.436914062500037],[130.95097656250007,-11.926464843750026],[130.51191406250004,-11.617871093749955],[130.38457031250002,-11.1921875],[130.6188476562501,-11.376074218749991]]],[[[136.59853515625,-11.378906249999943],[136.52656250000004,-11.438867187499994],[136.78027343749997,-11.0125],[136.59853515625,-11.378906249999943]]],[[[132.59335937500006,-11.302832031249991],[132.48378906250005,-11.037304687499983],[132.57880859375004,-10.968847656249977],[132.59335937500006,-11.302832031249991]]],[[[143.17890625000004,-11.954492187499966],[143.11025390625,-12.303515625000017],[143.40156250000004,-12.639941406249989],[143.5866210937501,-13.443652343750031],[143.54843750000012,-13.74101562499996],[143.75634765625003,-14.348828124999969],[143.96181640625005,-14.462890625000028],[144.473046875,-14.231835937500023],[144.64804687500006,-14.492480468750017],[145.28769531250006,-14.943164062499989],[145.42607421875002,-16.406152343749966],[145.75478515625,-16.879492187500034],[145.91210937499997,-16.9125],[146.12587890625005,-17.63525390625],[146.03222656249997,-18.272851562500037],[146.3332031250001,-18.55371093749997],[146.38339843750006,-18.97705078124997],[147.13876953125006,-19.39316406250002],[147.41855468750012,-19.378125],[147.7423828125001,-19.770117187499977],[148.759375,-20.28955078125003],[148.88476562499997,-20.480859375],[148.72998046874997,-20.4677734375],[148.68369140625012,-20.58017578124999],[149.20488281250007,-21.125097656249977],[149.45410156249997,-21.57871093750002],[149.70390625000002,-22.440527343750006],[149.82246093750004,-22.389843749999983],[149.97441406250007,-22.55068359374998],[149.94189453125003,-22.30810546875003],[150.07617187500003,-22.16445312499998],[150.54130859375002,-22.55908203125],[150.56855468750004,-22.38398437500004],[150.67246093750012,-22.418164062499983],[150.84316406250005,-23.4580078125],[151.15380859375003,-23.784082031249994],[151.83164062500006,-24.12294921875001],[152.12988281250003,-24.59755859374998],[152.45634765625007,-24.802441406249983],[152.65429687499997,-25.201953125000017],[152.91347656250005,-25.432128906250014],[152.98496093750012,-25.816210937500003],[153.16494140625,-25.964160156250045],[153.11679687500006,-27.194433593750034],[153.57568359375003,-28.24052734374999],[153.6168945312501,-28.673046875],[153.03056640625002,-30.563378906249994],[152.94394531250012,-31.43486328124999],[152.5592773437501,-32.045703125],[152.4704101562501,-32.439062500000034],[152.13652343750002,-32.678125],[152.1642578125001,-32.75742187499996],[151.812890625,-32.90107421875001],[151.29208984375012,-33.580957031249966],[151.28027343750003,-33.92666015625005],[151.12480468750007,-34.00527343749998],[151.23154296875006,-34.0296875],[150.8712890625001,-34.49912109374996],[150.80458984375,-35.01289062500001],[150.19531249999997,-35.83359374999996],[149.93271484375012,-37.528515625000026],[149.480859375,-37.77119140625],[147.87675781250002,-37.93417968749998],[146.8568359375,-38.663476562499966],[146.21748046875004,-38.72744140625004],[146.33662109375004,-38.89423828125],[146.46660156250007,-38.84033203125003],[146.40000000000012,-39.14550781250003],[146.1583984375001,-38.86572265624996],[145.93535156250002,-38.90175781250002],[145.79082031250007,-38.66699218749997],[145.39726562500002,-38.53535156249998],[145.54218750000004,-38.39384765625002],[145.4757812500001,-38.24375],[145.29277343750002,-38.237597656249974],[144.95957031250012,-38.500781250000045],[144.71777343749997,-38.34033203125004],[144.91142578125007,-38.34404296874999],[145.11992187500007,-38.091308593750014],[144.89130859375004,-37.899804687499994],[144.39550781250003,-38.13691406249998],[144.6652343750001,-38.20996093750003],[143.53896484375005,-38.82089843749998],[142.45585937500002,-38.38632812499999],[141.725,-38.27138671875002],[141.5939453125001,-38.38779296875002],[141.42421875,-38.36347656250004],[141.0109375000001,-38.07695312500003],[140.39042968750007,-37.89667968749998],[139.78427734375012,-37.24580078124998],[139.85732421875,-36.662109375],[139.72900390625003,-36.37138671875002],[138.9689453125001,-35.58076171874997],[139.17802734375007,-35.52304687500002],[139.289453125,-35.61132812499997],[139.28251953125002,-35.375390624999966],[138.521875,-35.6423828125],[138.184375,-35.612695312499994],[138.5111328125,-35.02441406249996],[138.48994140625004,-34.76357421875002],[138.0892578125,-34.16982421875002],[137.69169921875002,-35.14296875000004],[136.88359375000007,-35.23974609375004],[137.01425781250012,-34.91582031250003],[137.39101562500005,-34.91328124999997],[137.49384765625004,-34.16113281250003],[137.9318359375001,-33.57910156250003],[137.85234375000007,-33.20078124999996],[137.99257812500005,-33.094238281250014],[137.78320312500003,-32.578125],[137.79091796875,-32.82324218749996],[137.44228515625,-33.1935546875],[137.23730468750003,-33.62949218749999],[136.43066406249997,-34.02998046875004],[135.891015625,-34.660937499999974],[135.96972656249997,-34.98183593749998],[135.7923828125,-34.863281249999986],[135.64755859375006,-34.93964843750001],[135.12304687499997,-34.58574218750003],[135.21679687499997,-34.48730468749996],[135.45,-34.58105468749996],[135.21894531250004,-33.959765625000045],[134.88876953125012,-33.62636718749998],[134.79101562499997,-33.32832031250001],[134.60771484375002,-33.19013671875001],[134.30126953124997,-33.16503906249996],[134.17353515625004,-32.979101562500006],[134.10039062500007,-32.748632812500034],[134.22714843750006,-32.73056640624999],[134.23417968750007,-32.54853515625004],[133.66533203125007,-32.207226562500054],[133.21210937500004,-32.18378906249998],[132.75742187500012,-31.95625],[132.21464843750002,-32.00712890624996],[131.14365234375006,-31.49570312500005],[130.78300781250002,-31.604003906249986],[129.1876953125001,-31.659960937500017],[127.31982421874997,-32.2640625],[125.91718750000004,-32.296972656250034],[124.75878906250003,-32.882714843749994],[124.24375,-33.01523437499999],[123.50683593749997,-33.916210937500054],[122.15097656250006,-33.99179687499999],[122.06113281250006,-33.874414062499966],[121.40507812500007,-33.826757812500034],[119.85410156250012,-33.97470703124998],[119.45058593750005,-34.368261718750034],[118.89531250000007,-34.47988281250004],[118.13554687500002,-34.98662109374999],[117.58193359375005,-35.09775390624998],[116.51718750000012,-34.98789062499998],[115.98671875000005,-34.795019531250034],[115.56503906250012,-34.42578125000003],[115.00878906250003,-34.25585937499997],[114.9938476562501,-33.51533203125],[115.3587890625,-33.63994140624999],[115.68300781250005,-33.19287109375003],[115.6984375000001,-31.694531250000054],[115.07792968750007,-30.560449218750023],[114.85683593750005,-29.14296875],[114.16513671875012,-28.08066406250002],[114.028125,-27.34726562499999],[113.18476562500004,-26.182226562499963],[113.32324218749997,-26.243847656249997],[113.35605468750012,-26.080468750000023],[113.58164062500006,-26.558105468749986],[113.73369140625002,-26.59511718749998],[113.83642578125003,-26.50058593749999],[113.85283203125007,-26.33212890625005],[113.39531250000002,-25.71328125],[113.4513671875001,-25.599121093750014],[113.7130859375001,-25.83076171875004],[113.72373046875006,-26.129785156250037],[113.85390625,-26.01445312499999],[113.99199218750007,-26.32148437500001],[114.09033203124997,-26.393652343749963],[114.21572265625,-26.289453124999966],[114.2142578125,-25.851562500000014],[113.41767578125004,-24.435644531250034],[113.48984375000012,-23.869628906250014],[113.7570312500001,-23.418164062500054],[113.79511718750004,-22.91455078125003],[113.68281250000004,-22.637792968749963],[114.02285156250005,-21.881445312499977],[114.12392578125005,-21.828613281249957],[114.14160156250003,-22.483105468749983],[114.37773437500007,-22.341503906249997],[114.70927734375002,-21.82343749999997],[115.45615234375012,-21.49169921874997],[116.0109375000001,-21.030371093749963],[116.7067382812501,-20.653808593749986],[117.40625,-20.72119140625003],[118.19921875000003,-20.37519531249997],[118.75146484374997,-20.261914062499983],[119.10449218749997,-19.995312500000026],[119.58593750000003,-20.03828125],[120.99794921875,-19.604394531249966],[121.33769531250002,-19.31992187500002],[121.83378906250002,-18.477050781249986],[122.34541015625004,-18.11191406250002],[122.14746093749997,-17.54902343750001],[122.2609375000001,-17.135742187500014],[122.72041015625004,-16.78769531249999],[122.97070312499997,-16.436816406250003],[123.56308593750006,-17.520898437499966],[123.59355468750007,-17.03037109375005],[123.83105468750003,-17.120800781249997],[123.8744140625,-16.918652343750026],[123.4904296875001,-16.49072265624997],[123.62597656249997,-16.416308593750003],[123.60703125000006,-16.224023437499994],[123.72890625,-16.192480468749963],[123.85917968750007,-16.38232421875],[124.04443359374997,-16.264941406249974],[124.30039062500006,-16.388281249999977],[124.77197265624997,-16.40263671874996],[124.40488281250006,-16.298925781249977],[124.41640625,-16.133496093750026],[124.5768554687501,-16.11367187499998],[124.64853515625012,-15.870214843750034],[124.50429687500005,-15.972460937499989],[124.38164062500002,-15.758203125000037],[124.43955078125012,-15.493554687500037],[124.56162109375012,-15.496289062499969],[124.69257812500004,-15.273632812499997],[125.06298828125003,-15.44228515624998],[125.0729492187501,-15.306738281249991],[124.90917968750003,-15.310058593749957],[124.83906250000004,-15.160742187500006],[125.03818359375012,-15.004101562499969],[125.35566406250004,-15.119824218750011],[125.17871093749997,-14.714746093749994],[125.57978515625004,-14.483203124999989],[125.62773437500002,-14.256640625000017],[125.70458984374997,-14.29140625],[125.66162109375003,-14.529492187500011],[125.81953125000004,-14.469140624999966],[125.890625,-14.61796875],[126.0207031250001,-14.49453125],[126.0539062500001,-13.977246093750026],[126.1842773437501,-14.00205078125002],[126.25849609375004,-14.163574218749972],[126.403125,-14.018945312499994],[126.5697265625,-14.160937499999974],[126.7806640625,-13.955175781249977],[126.77558593750004,-13.788476562500037],[126.90322265625,-13.744140624999972],[127.45761718750006,-14.031445312499969],[128.18046875000007,-14.711621093749983],[128.06943359375012,-15.329296874999969],[128.15546875000004,-15.225585937499972],[128.25468750000002,-15.298535156250011],[128.175,-15.043164062500026],[128.57578125000006,-14.774511718750006],[129.05820312500012,-14.884375],[129.21582031249997,-15.160253906249991],[129.26757812500003,-14.871484375000051],[129.63476562499997,-15.139746093749991],[129.637109375,-14.850976562500037],[129.84873046875012,-14.828906249999989],[129.60468750000004,-14.647070312499977],[129.69794921875004,-14.557421875000017],[129.37871093750002,-14.39248046874998],[129.70986328125,-13.979980468749972],[129.83886718749997,-13.572949218749997],[130.25976562500003,-13.30224609375],[130.1349609375001,-13.145507812499957],[130.1681640625001,-12.957421875],[130.39990234374997,-12.68789062499999],[130.61748046875007,-12.646875],[130.62265625000006,-12.43105468749998],[130.8673828125001,-12.557812499999955],[130.87382812500007,-12.367187500000028],[131.29160156250006,-12.067871093749972],[131.43828125000002,-12.27695312500002],[132.06406250000006,-12.28076171875],[132.25322265625007,-12.186035156249972],[132.41103515625,-12.295117187499997],[132.51054687500002,-12.134863281250034],[132.71279296875,-12.1234375],[132.63046875000012,-12.035156249999972],[132.67421875000005,-11.649023437499991],[132.47519531250006,-11.491503906249974],[132.07285156250006,-11.474707031250006],[131.82246093750004,-11.302441406249997],[131.96152343750006,-11.180859375000011],[132.15546875000004,-11.311132812499991],[132.33398437499997,-11.223535156249994],[132.6828125000001,-11.505566406249997],[132.96103515625012,-11.407324218749963],[133.18525390625004,-11.705664062499991],[133.90419921875,-11.832031249999972],[134.4173828125,-12.052734375],[134.73027343750002,-11.984375],[135.02968750000005,-12.19375],[135.2179687500001,-12.221679687499957],[135.92246093750012,-11.825781250000034],[135.70439453125007,-12.209863281250037],[136.00849609375004,-12.19140625],[136.08183593750007,-12.422460937500006],[136.26064453125,-12.433789062499997],[136.32851562500005,-12.305566406249994],[136.24990234375,-12.173046875],[136.44335937499997,-11.951464843749974],[136.7194335937501,-12.226464843749952],[136.89746093749997,-12.243554687499966],[136.94746093750004,-12.34990234374996],[136.53701171875,-12.784277343749991],[136.59433593750012,-13.003808593750051],[136.46103515625006,-13.225195312500034],[136.29414062500004,-13.137988281250031],[135.92734375000012,-13.304296874999977],[135.95449218750005,-13.934863281250017],[135.40517578125005,-14.758203124999966],[135.4533203125001,-14.923144531250003],[136.20537109375002,-15.403417968749963],[136.29140625000005,-15.570117187500003],[136.70488281250007,-15.685253906250011],[136.78466796874997,-15.89423828125004],[137.00214843750004,-15.878320312499994],[137.70371093750006,-16.233007812499963],[138.24501953125005,-16.718359374999977],[139.00986328125006,-16.899316406249994],[139.2484375,-17.328613281249957],[140.03583984375004,-17.702636718749957],[140.51113281250005,-17.62451171875003],[140.83046875,-17.414453125000037],[141.29140625,-16.46347656250002],[141.62548828124997,-15.056640625000014],[141.52294921875003,-14.470117187499994],[141.59433593750006,-14.152832031250014],[141.47255859375,-13.797558593750011],[141.64541015625,-13.259082031250003],[141.61357421875002,-12.943457031250006],[141.92978515625006,-12.73984375],[141.67773437500003,-12.491406250000011],[141.68857421875012,-12.351074218750028],[141.87050781250005,-11.9755859375],[141.96113281250004,-12.054296874999963],[142.168359375,-10.946582031249974],[142.45644531250005,-10.707324218749989],[142.60507812500012,-10.748242187499983],[142.55273437500003,-10.874414062500023],[142.7796875,-11.115332031249977],[142.87255859374997,-11.821386718750034],[143.17890625000004,-11.954492187499966]]],[[[142.2748046875,-10.704785156250011],[142.19140624999997,-10.762011718750031],[142.1310546875001,-10.640625],[142.19794921875004,-10.59199218750004],[142.2748046875,-10.704785156250011]]]]},"properties":{"name":"Australia","childNum":30}},{"geometry":{"type":"Polygon","coordinates":[[[16.953125,48.598828125],[16.86542968750001,48.3869140625],[17.147363281250023,48.00595703125],[17.06660156250001,47.707568359374996],[16.421289062500023,47.674462890624994],[16.676562500000017,47.536035156249994],[16.44287109375,47.39951171875],[16.453417968750017,47.006787109375],[16.093066406250017,46.86328125],[15.957617187500006,46.677636718749994],[14.893261718750011,46.605908203125],[14.5498046875,46.399707031249996],[13.7,46.520263671875],[13.490039062500017,46.555566406249994],[13.3515625,46.557910156249996],[13.16875,46.57265625],[12.479199218750011,46.672509765624994],[12.38828125,46.70263671875],[12.330078125,46.759814453124996],[12.267968750000023,46.835888671875],[12.154101562500017,46.93525390625],[12.130761718750023,46.98476562499999],[12.16552734375,47.028173828125],[12.201269531250006,47.060888671875],[12.197167968750023,47.075],[12.16943359375,47.08212890625],[11.775683593750017,46.986083984375],[11.527539062500011,46.997412109375],[11.433203125,46.983056640624994],[11.244433593750017,46.97568359375],[11.133886718750006,46.936181640624994],[11.0634765625,46.859130859375],[11.025097656250011,46.79697265625],[10.993261718750006,46.777001953124994],[10.92734375,46.769482421875],[10.828906250000017,46.775244140625],[10.759765625,46.793310546875],[10.689257812500017,46.84638671875],[10.579785156250011,46.8537109375],[10.479394531250023,46.855126953124994],[10.452832031250011,46.86494140625],[10.45458984375,46.8994140625],[10.414941406250023,46.964404296874996],[10.349414062500017,46.98476562499999],[10.133496093750011,46.851513671875],[9.580273437500011,47.057373046875],[9.527539062500011,47.270751953125],[9.625878906250023,47.467041015625],[9.524023437500006,47.52421875],[9.748925781250023,47.575537109375],[9.839160156250017,47.552294921874996],[9.971582031250023,47.505322265625],[10.034082031250023,47.473583984375],[10.059863281250017,47.449072265625],[10.066308593750023,47.393359375],[10.200292968750006,47.363427734374994],[10.183007812500023,47.27880859375],[10.369140625,47.366064453125],[10.40390625,47.4169921875],[10.439453125,47.5515625],[10.482812500000023,47.541796875],[10.65869140625,47.547216796875],[10.741601562500023,47.52412109375],[10.873046875,47.52021484375],[11.0419921875,47.393115234374996],[12.185644531250006,47.61953125],[12.203808593750011,47.646728515625],[12.196875,47.70908203125],[12.209277343750017,47.71826171875],[12.268359375000017,47.702734375],[12.353540736607165,47.70264787946429],[12.492553013392856,47.68551897321428],[12.685839843750017,47.669335937499994],[12.771386718750023,47.639404296875],[12.796191406250017,47.60703125],[12.781152343750023,47.5904296875],[12.7828125,47.56416015625],[12.809375,47.5421875],[12.87890625,47.5064453125],[12.968066406250017,47.47568359375],[13.014355468750011,47.478076171874996],[13.031542968750017,47.5080078125],[13.047949218750006,47.579150390624996],[13.054101562500023,47.655126953125],[12.897656250000011,47.721875],[12.953515625000023,47.890625],[12.760351562500006,48.106982421874996],[13.215234375000023,48.301904296874994],[13.322851562500006,48.33125],[13.409375,48.394140625],[13.459863281250023,48.56455078125],[13.4716796875,48.571826171874996],[13.486621093750017,48.581835937499996],[13.636623883928596,48.580904017857144],[13.785351562500011,48.587451171874996],[13.798828125,48.6216796875],[13.802929687500011,48.747509765625],[13.814746093750017,48.766943359375],[14.049121093750017,48.602490234375],[14.691308593750023,48.59921875],[15.066796875000023,48.997851562499996],[16.057226562500006,48.754785156249994],[16.543554687500006,48.796240234375],[16.953125,48.598828125]]]},"properties":{"name":"Austria","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[46.1144531250001,38.877783203125034],[45.4796875000001,39.00625],[44.81718750000002,39.65043945312496],[44.76826171875004,39.70351562500005],[45.03164062500005,39.76513671874997],[45.15283203125003,39.58266601562502],[45.456835937500074,39.494482421875006],[45.78447265625002,39.54560546875001],[45.76630859375004,39.37846679687499],[45.977441406249994,39.24389648437503],[46.1144531250001,38.877783203125034]]],[[[48.572851562500006,41.84448242187503],[49.45673828125004,40.79985351562502],[49.77597656250006,40.583984375],[50.18251953125005,40.50478515625002],[50.3659179687501,40.279492187499955],[49.91884765625005,40.31640625000003],[49.55117187499999,40.19414062499999],[49.3244140625001,39.60834960937501],[49.36279296875003,39.349560546874955],[49.16533203125002,39.03027343750003],[49.013476562500074,39.13398437500001],[48.85449218750003,38.83881835937501],[48.86875,38.43549804687498],[48.59267578125005,38.41108398437498],[47.99648437499999,38.85375976562503],[48.292089843750006,39.01884765624999],[48.10439453125005,39.241113281249994],[48.322167968749994,39.39907226562502],[47.995898437500074,39.683935546875034],[46.490625,38.90668945312498],[46.400292968749994,39.1921875],[46.584765625000074,39.22368164062499],[46.36523437500003,39.402490234374994],[46.48144531249997,39.55517578125003],[46.202050781249994,39.59448242187503],[45.57978515625004,39.9775390625],[45.8859375000001,40.024853515624955],[45.96464843750002,40.233789062499966],[45.45439453125002,40.532373046874966],[45.37890624999997,40.67358398437506],[45.5875,40.846923828125],[45.07050781250004,41.075585937499966],[45.188574218750006,41.14741210937504],[45.001367187499994,41.29096679687498],[45.2171875,41.423193359375006],[45.28095703125004,41.449560546875034],[46.086523437500006,41.183837890625],[46.43095703125002,41.077050781249994],[46.534375,41.08857421875004],[46.62636718750005,41.15966796875006],[46.66240234375002,41.24550781250002],[46.67255859375004,41.28681640625001],[46.61894531250002,41.34375],[46.30546875000002,41.507714843749994],[46.18427734375004,41.70214843749997],[46.42988281250004,41.890966796875006],[46.74931640625002,41.812597656250006],[47.31767578125002,41.28242187500001],[47.79101562499997,41.19926757812502],[48.572851562500006,41.84448242187503]]]]},"properties":{"name":"Azerbaijan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[30.553613281250023,-2.400097656250011],[30.53369140625,-2.42626953125],[30.441992187500006,-2.613476562500011],[30.424218750000023,-2.6416015625],[30.47333984375001,-2.6943359375],[30.42402343750001,-2.824023437500003],[30.433496093750023,-2.87451171875],[30.515039062500023,-2.917578125],[30.604296875000017,-2.935253906250011],[30.70947265625,-2.977246093750011],[30.7802734375,-2.98486328125],[30.811132812500006,-3.116406250000011],[30.79023437500001,-3.274609375000011],[30.4,-3.65390625],[29.947265625,-4.307324218750011],[29.7177734375,-4.455859375],[29.403222656250023,-4.449316406250006],[29.211816406250023,-3.833789062500003],[29.224414062500017,-3.053515625],[29.01435546875001,-2.72021484375],[29.10205078125,-2.595703125],[29.390234375,-2.80859375],[29.698046875000017,-2.794726562500003],[29.8681640625,-2.71640625],[29.93017578125,-2.339550781250011],[30.117285156250006,-2.416601562500006],[30.408496093750017,-2.31298828125],[30.553613281250023,-2.400097656250011]]]},"properties":{"name":"Burundi","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[5.693554687500011,50.774755859375006],[5.993945312500017,50.75043945312504],[6.340917968750006,50.451757812500034],[6.116503906250045,50.120996093749966],[6.08906250000004,50.15458984374996],[6.054785156249977,50.154296875],[5.976269531250068,50.167187499999955],[5.866894531250068,50.08281250000002],[5.817382812500028,50.01269531250003],[5.7880859375,49.96123046875002],[5.744042968749994,49.91962890624998],[5.789746093749983,49.53828125000001],[5.50732421875,49.51088867187502],[4.867578125000051,49.78813476562502],[4.818652343750045,50.153173828125034],[4.545019531250063,49.96025390624999],[4.149316406250023,49.971582031249994],[4.174609375000017,50.24648437500005],[3.689355468750023,50.30605468750002],[3.595410156250068,50.47734374999999],[3.27333984375008,50.53154296875002],[3.10683593750008,50.779443359374994],[2.759375,50.750634765624994],[2.52490234375,51.097119140624955],[3.35009765625,51.37768554687503],[3.43251953125008,51.24575195312505],[3.902050781250011,51.20766601562502],[4.226171875000034,51.38647460937503],[5.03095703125004,51.46909179687498],[5.214160156250045,51.278955078124966],[5.796484375000034,51.153076171875],[5.693554687500011,50.774755859375006]]]},"properties":{"name":"Belgium","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[3.595410156250011,11.6962890625],[3.553906250000011,11.631884765624989],[3.490527343750017,11.49921875],[3.48779296875,11.395410156249994],[3.638867187500011,11.176855468749991],[3.65625,11.154589843749989],[3.6953125,11.1203125],[3.71640625,11.07958984375],[3.7568359375,10.76875],[3.83447265625,10.607421875],[3.771777343750017,10.417626953124994],[3.646582031250006,10.408984374999989],[3.60205078125,10.004541015624994],[3.3251953125,9.778466796874994],[3.044921875,9.083837890624991],[2.774804687500023,9.048535156249997],[2.703125,8.371826171875],[2.68603515625,7.873730468749997],[2.719335937500006,7.616259765624989],[2.7509765625,7.541894531249994],[2.78515625,7.476855468749989],[2.783984375000017,7.443408203124989],[2.765820312500011,7.422509765624994],[2.75048828125,7.395068359374989],[2.756738281250023,7.067919921874989],[2.721386718750011,6.980273437499989],[2.731738281250017,6.852832031249989],[2.7529296875,6.771630859374994],[2.774609375000011,6.711718749999989],[2.753710937500017,6.661767578124994],[2.735644531250017,6.595703125],[2.706445312500023,6.369238281249991],[1.62265625,6.216796875],[1.777929687500006,6.294628906249997],[1.530957031250011,6.992431640625],[1.624707031250011,6.997314453125],[1.600195312500006,9.050048828125],[1.3857421875,9.361669921874991],[1.330078125,9.996972656249994],[0.763378906250011,10.386669921874997],[0.900488281250006,10.993261718749991],[1.4267578125,11.447119140624991],[1.980371093750023,11.418408203124997],[2.38916015625,11.897070312499991],[2.366015625000017,12.221923828125],[2.805273437500006,12.383837890624989],[3.595410156250011,11.6962890625]]]},"properties":{"name":"Benin","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[0.217480468750011,14.911474609374991],[0.163867187500017,14.497216796874994],[0.382519531250011,14.245800781249997],[0.42919921875,13.972119140624997],[0.6181640625,13.703417968750003],[1.201171875,13.357519531249991],[0.988476562500011,13.36484375],[0.9873046875,13.041894531249994],[1.56494140625,12.635400390624994],[2.104589843750006,12.701269531249991],[2.226269531250011,12.466064453125],[2.072949218750011,12.309375],[2.38916015625,11.897070312499991],[1.980371093750023,11.418408203124997],[1.4267578125,11.447119140624991],[0.900488281250006,10.993261718749991],[0.49267578125,10.954980468749994],[-0.068603515625,11.115625],[-0.299462890624994,11.166894531249994],[-0.627148437499983,10.927392578124994],[-1.04248046875,11.010058593749989],[-2.829931640624977,10.998388671874991],[-2.914892578124977,10.592333984374989],[-2.791162109374994,10.432421874999989],[-2.780517578125,9.745849609375],[-2.765966796874977,9.658056640624991],[-2.706201171874994,9.533935546875],[-2.695849609374989,9.481347656249994],[-2.7171875,9.457128906249991],[-2.7666015625,9.424707031249994],[-2.816748046874977,9.425830078124989],[-2.875146484374994,9.500927734374997],[-2.90087890625,9.534619140624997],[-2.948144531249994,9.610742187499994],[-2.98828125,9.687353515624991],[-3.042626953124994,9.720898437499997],[-3.095800781249977,9.752099609374994],[-3.160693359374989,9.849169921874989],[-3.223535156249994,9.895458984374997],[-3.289697265624994,9.882226562499994],[-3.581152343749977,9.92431640625],[-3.790625,9.9171875],[-4.18115234375,9.78173828125],[-4.267187499999977,9.743261718749991],[-4.332226562499983,9.645703125],[-4.406201171874983,9.647998046874989],[-4.526611328125,9.723486328124991],[-4.625830078124977,9.713574218749997],[-4.721777343749977,9.756542968749997],[-5.262304687499977,10.319677734374991],[-5.523535156249977,10.426025390625],[-5.490478515625,11.042382812499994],[-5.250244140625,11.375781249999989],[-5.288134765624989,11.827929687499989],[-4.699316406249977,12.076171875],[-4.4287109375,12.337597656249997],[-4.480615234374994,12.672216796874991],[-4.227099609374989,12.793701171875],[-4.328710937499977,13.119042968749994],[-4.151025390624994,13.306201171875003],[-3.947314453124989,13.402197265624991],[-3.527636718749989,13.182714843749991],[-3.3017578125,13.28076171875],[-3.248632812499977,13.658349609374994],[-2.950830078124994,13.6484375],[-2.873925781249994,13.950732421875003],[-2.586718749999989,14.227587890625003],[-2.113232421874983,14.16845703125],[-1.97304687499999,14.45654296875],[-1.049560546875,14.81953125],[-0.760449218749983,15.047753906249994],[-0.235888671874989,15.059423828124991],[0.217480468750011,14.911474609374991]]]},"properties":{"name":"Burkina Faso","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[91.94921875000003,21.50805664062503],[91.85947265625012,21.532958984375057],[91.90771484374997,21.722949218750017],[91.94921875000003,21.50805664062503]]],[[[91.87382812500002,21.832128906249977],[91.8375976562501,21.750244140625],[91.85068359375012,21.927050781250045],[91.87382812500002,21.832128906249977]]],[[[91.15078125000005,22.175195312499966],[91.04472656250002,22.10517578125001],[91.0794921875,22.519726562499983],[91.15078125000005,22.175195312499966]]],[[[91.55673828125006,22.38222656250005],[91.41132812500004,22.475683593750006],[91.45605468749997,22.61650390624999],[91.55673828125006,22.38222656250005]]],[[[90.77763671875007,22.089306640624983],[90.51503906250005,22.06513671875001],[90.68046875000007,22.327490234375006],[90.50292968749997,22.835351562499994],[90.59648437500002,22.863525390625057],[90.86816406250003,22.48486328125],[90.77763671875007,22.089306640624983]]],[[[88.94072265625002,26.24536132812497],[88.97041015625004,26.250878906250023],[88.95195312500002,26.412109375],[89.01865234375012,26.410253906249977],[89.28925781250004,26.03759765625],[89.54990234375006,26.005273437499994],[89.57275390625003,26.13232421875003],[89.67089843750003,26.21381835937504],[89.8229492187501,25.94140625000003],[89.82490234375004,25.56015625],[89.80087890625012,25.33613281250001],[89.81406250000006,25.305371093749955],[89.86630859375012,25.293164062499955],[90.11962890625003,25.21997070312497],[90.61308593750002,25.16772460937497],[92.04970703125005,25.16948242187499],[92.46835937500006,24.94414062499999],[92.38496093750004,24.848779296875023],[92.25126953125007,24.895068359375045],[92.22832031250002,24.88134765625],[92.22666015625012,24.77099609374997],[92.11748046875002,24.493945312500017],[92.06416015625004,24.374365234375006],[91.84619140624997,24.17529296875003],[91.72656250000003,24.20507812499997],[91.35019531250012,24.06049804687501],[91.16044921875007,23.66064453125],[91.359375,23.06835937500003],[91.43623046875004,23.19990234375001],[91.55351562500002,22.991552734375006],[91.61953125,22.97968750000001],[91.75097656250003,23.053515625000017],[91.75419921875007,23.287304687499955],[91.79003906249997,23.361035156249983],[91.937890625,23.504687500000017],[91.92949218750007,23.598242187499977],[91.92958984375,23.68598632812501],[91.97851562500003,23.691992187499977],[92.04404296875006,23.677783203125017],[92.24609375000003,23.683593750000057],[92.33378906250002,23.242382812499955],[92.36162109375002,22.929003906250074],[92.46445312500006,22.734423828125045],[92.49140625000004,22.685400390625006],[92.5612304687501,22.04804687500001],[92.57490234375004,21.978076171875045],[92.58281250000002,21.940332031249994],[92.5934570312501,21.46733398437499],[92.63164062500002,21.306201171875045],[92.33056640624997,21.439794921874977],[92.17958984375005,21.293115234375023],[92.32412109375,20.791845703125063],[92.0560546875,21.1748046875],[91.86337890625012,22.350488281249966],[91.7970703125001,22.297460937500006],[91.48007812500006,22.884814453125045],[91.2162109375,22.642236328124994],[90.94560546875002,22.597021484375034],[90.65625,23.025488281250006],[90.60400390624997,23.59135742187499],[90.55566406249997,23.42153320312505],[90.26914062500012,23.455859375000017],[90.59091796875012,23.266406250000045],[90.43505859374997,22.751904296874955],[90.61611328125,22.362158203125034],[90.23056640625006,21.82978515625004],[90.07119140625005,21.887255859375017],[90.20957031250006,22.156591796875006],[89.95419921875006,22.022851562500023],[89.91806640625012,22.11616210937501],[89.98515625000002,22.466406250000063],[89.81191406250005,21.983496093750006],[89.56855468750004,21.767431640625034],[89.48320312500007,22.275537109374994],[89.50058593750006,21.914355468750045],[89.35371093750004,21.72109375],[89.09394531250004,21.872753906249983],[89.05,22.274609374999983],[88.92070312500002,22.632031249999955],[88.89970703125002,22.843505859375057],[88.85058593749997,23.040527343750057],[88.928125,23.186621093750063],[88.72441406250002,23.254980468750034],[88.69765625,23.493017578125034],[88.63574218749997,23.55],[88.56738281249997,23.674414062500034],[88.69980468750006,24.002539062500006],[88.71376953125,24.069628906250017],[88.72656250000003,24.186230468749955],[88.7335937500001,24.23090820312501],[88.72353515625,24.27490234375],[88.64228515625004,24.325976562500017],[88.49853515625003,24.34663085937504],[88.3375,24.45385742187503],[88.225,24.460644531249983],[88.14550781250003,24.485791015624955],[88.07910156249997,24.549902343750063],[88.02343750000003,24.62783203125005],[88.03027343749997,24.66445312500005],[88.0451171875001,24.713037109374994],[88.1498046875,24.914648437500034],[88.1888671875,24.92060546875001],[88.27949218750004,24.881933593750034],[88.31337890625005,24.8818359375],[88.37294921875,24.961523437499977],[88.45625,25.18842773437504],[88.57382812500006,25.18789062499999],[88.92978515625012,25.222998046875063],[88.94414062500002,25.290771484375],[88.85478515625002,25.333544921875017],[88.76914062500006,25.490478515625],[88.50244140624997,25.537011718749994],[88.14746093749997,25.811425781250023],[88.1066406250001,25.841113281250045],[88.15078125000005,26.08715820312497],[88.33398437499997,26.257519531249955],[88.44042968749997,26.369482421875034],[88.38623046875003,26.471533203125034],[88.35146484375005,26.482568359374966],[88.36992187500002,26.564111328124994],[88.51826171875004,26.517773437499955],[88.68281250000004,26.291699218749983],[88.94072265625002,26.24536132812497]]]]},"properties":{"name":"Bangladesh","childNum":6}},{"geometry":{"type":"Polygon","coordinates":[[[28.585351562500023,43.742236328124996],[28.465429687500006,43.389306640624994],[28.133691406250023,43.39560546875],[27.92890625000001,43.1861328125],[27.88886718750001,42.74970703125],[27.484765625000023,42.468066406249996],[28.014453125000017,41.969042968749996],[27.47480468750001,41.946875],[27.294921875,42.079541015625],[27.24433593750001,42.09326171875],[27.01171875,42.058642578124996],[26.96875,42.02685546875],[26.884863281250006,41.991845703124994],[26.615332031250006,41.964892578124996],[26.549707031250023,41.896728515625],[26.51142578125001,41.8263671875],[26.3603515625,41.8015625],[26.327246093750006,41.772802734375],[26.31796875,41.744677734374996],[26.320898437500006,41.716552734375],[26.200585937500023,41.743798828124994],[26.107421875,41.72568359375],[26.085546875,41.704150390624996],[26.066015625,41.673242187499994],[26.1435546875,41.521533203124996],[26.155175781250023,41.434863281249996],[26.135351562500006,41.3857421875],[26.06640625,41.35068359375],[25.92333984375,41.311914062499994],[25.784960937500017,41.330419921875],[25.52705078125001,41.2998046875],[25.381933593750006,41.26435546875],[25.25117187500001,41.243554687499994],[24.773730468750017,41.356103515624994],[24.595996093750017,41.442724609375],[24.5693359375,41.4673828125],[24.51826171875001,41.552539062499996],[24.487890625,41.555224609374996],[24.056054687500023,41.527246093749994],[24.03291015625001,41.469091796875],[24.011328125,41.46005859375],[23.635156250000023,41.386767578124996],[23.53583984375001,41.386035156249996],[23.433398437500017,41.398730468749996],[23.3720703125,41.3896484375],[23.23984375,41.3849609375],[23.15595703125001,41.322070312499996],[22.916015625,41.336279296875],[23.00361328125001,41.73984375],[22.836816406250023,41.993603515625],[22.344042968750017,42.31396484375],[22.42207031250001,42.328857421875],[22.445703125000023,42.359130859375],[22.523535156250006,42.440966796874996],[22.53242187500001,42.481201171875],[22.524218750000017,42.50390625],[22.43623046875001,42.6291015625],[22.466796875,42.84248046875],[22.799902343750006,42.985742187499994],[22.976855468750017,43.18798828125],[22.85957031250001,43.25234375],[22.819726562500023,43.300732421875],[22.767578125,43.354150390624994],[22.554589843750023,43.454492187499994],[22.36962890625,43.781298828124996],[22.36542968750001,43.862109375],[22.399023437500006,43.96953125],[22.420800781250023,44.007421875],[22.452529688228115,44.0510441391688],[22.547921095934313,44.113823956634434],[22.688564844478098,44.254306249271906],[23.02851562500001,44.077978515625],[22.868261718750006,43.947900390624994],[22.919042968750006,43.83447265625],[25.4970703125,43.670800781249994],[26.2158203125,44.007275390625],[27.0869140625,44.167382812499994],[27.425390625,44.0205078125],[27.88427734375,43.987353515624996],[28.221972656250017,43.772851562499994],[28.585351562500023,43.742236328124996]]]},"properties":{"name":"Bulgaria","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[50.60722656250002,25.883105468750003],[50.57490234375001,25.806787109374994],[50.465917968750006,25.965527343749997],[50.46992187500001,26.228955078124997],[50.5859375,26.24072265625],[50.60722656250002,25.883105468750003]]]},"properties":{"name":"Bahrain","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-73.02685546874994,21.19238281250003],[-73.16455078125003,20.979150390625023],[-73.68115234375003,20.9755859375],[-73.68037109374995,21.103320312500017],[-73.52309570312497,21.190820312499966],[-73.23535156249997,21.15449218750004],[-73.05849609375,21.313378906249994],[-73.02685546874994,21.19238281250003]]],[[[-73.041015625,22.429052734375006],[-72.74726562500001,22.32739257812497],[-73.16191406250002,22.380712890625006],[-73.041015625,22.429052734375006]]],[[[-74.20673828124998,22.213769531250023],[-74.27690429687499,22.183691406250006],[-73.906396484375,22.527441406250063],[-73.95419921874995,22.71552734375001],[-73.84995117187503,22.731054687500063],[-73.83652343749998,22.538427734374977],[-74.20673828124998,22.213769531250023]]],[[[-74.05751953124997,22.723486328125034],[-74.27460937499995,22.71166992187503],[-74.30703125,22.83959960937497],[-74.05751953124997,22.723486328125034]]],[[[-74.84047851562494,22.894335937500017],[-75.22333984374995,23.165332031250074],[-75.13056640624998,23.267919921875006],[-75.31596679687502,23.668359374999966],[-74.84047851562494,22.894335937500017]]],[[[-75.66455078124997,23.45014648437501],[-76.03710937500003,23.60278320312503],[-76.01044921875001,23.671386718750057],[-75.66455078124997,23.45014648437501]]],[[[-74.42944335937497,24.068066406249955],[-74.55092773437502,23.96894531250001],[-74.52690429687502,24.105078125000034],[-74.42944335937497,24.068066406249955]]],[[[-77.65771484374994,24.249462890624955],[-77.75527343750002,24.163476562500023],[-77.61538085937494,24.216357421875045],[-77.5615234375,24.136816406250006],[-77.57373046875,23.739160156249994],[-77.77128906249999,23.752539062499977],[-77.99990234374994,24.219824218750063],[-77.65771484374994,24.249462890624955]]],[[[-75.30839843749999,24.2],[-75.50322265624996,24.139062500000023],[-75.40893554687503,24.265771484374994],[-75.72666015625,24.68935546875005],[-75.30839843749999,24.2]]],[[[-77.34755859375,25.013867187499983],[-77.56191406249997,25.030029296875],[-77.27558593750001,25.055761718750006],[-77.34755859375,25.013867187499983]]],[[[-77.74384765625001,24.70742187499999],[-77.74521484375,24.463476562500034],[-78.04492187499997,24.287451171875063],[-78.14580078125002,24.493457031250017],[-78.36650390624993,24.544189453125057],[-78.435302734375,24.627587890624994],[-78.24272460937493,24.65380859375],[-78.21137695312495,25.191259765624977],[-77.97529296874998,25.084814453125063],[-77.74384765625001,24.70742187499999]]],[[[-76.64882812499994,25.487402343750006],[-76.34379882812496,25.33203124999997],[-76.12661132812497,25.14052734375005],[-76.16953125,24.6494140625],[-76.319970703125,24.81767578124999],[-76.21376953124994,24.822460937499983],[-76.160400390625,25.119335937499983],[-76.36928710937502,25.312597656250006],[-76.62070312499998,25.43164062500003],[-76.78066406249997,25.426855468750006],[-76.71083984374997,25.564892578124983],[-76.64882812499994,25.487402343750006]]],[[[-78.49287109375001,26.729052734375017],[-77.92246093749998,26.69111328125001],[-78.74365234374994,26.50068359375004],[-78.98564453124996,26.689501953125045],[-78.79804687500001,26.58242187499999],[-78.59711914062493,26.797949218750006],[-78.49287109375001,26.729052734375017]]],[[[-77.22563476562496,25.904199218750023],[-77.40317382812498,26.02470703124996],[-77.24677734374998,26.156347656250034],[-77.238623046875,26.561132812500006],[-77.510595703125,26.845996093750045],[-77.94375,26.90356445312503],[-77.53388671874995,26.903417968750006],[-77.06635742187501,26.530175781249994],[-77.03828124999998,26.333447265624983],[-77.16728515624996,26.240332031250006],[-77.22563476562496,25.904199218750023]]]]},"properties":{"name":"Bahamas","childNum":14}},{"geometry":{"type":"Polygon","coordinates":[[[19.007128906250045,44.86918945312502],[19.348632812500057,44.88090820312502],[19.118457031250074,44.359960937500006],[19.583789062500017,44.04345703125003],[19.245019531249994,43.96503906250004],[19.495117187500057,43.642871093750045],[19.19433593749997,43.533300781250006],[19.164355468750017,43.53544921874999],[19.11279296874997,43.52773437500002],[19.080078125000057,43.51772460937502],[19.0283203125,43.53251953125002],[18.97421875,43.54233398437498],[18.95068359375,43.52666015624999],[19.036718750000034,43.35732421875002],[19.026660156250017,43.292431640624955],[18.97871093750001,43.28540039062503],[18.934667968750006,43.339453125000034],[18.85107421875003,43.34633789062502],[18.749218750000068,43.283544921875006],[18.67421875000008,43.230810546875006],[18.623632812500063,43.027685546875034],[18.488476562500068,43.01215820312498],[18.44384765625003,42.96845703125004],[18.46601562500001,42.777246093749994],[18.54589843750003,42.64160156249997],[18.436328125000017,42.559716796874994],[17.667578125000063,42.897119140624994],[17.585156250000068,42.93837890625005],[17.650488281250063,43.006591796875],[17.27382812500005,43.44575195312501],[16.300097656250017,44.12451171875],[16.10341796875008,44.52099609375006],[15.736621093750045,44.76582031250001],[15.788085937500057,45.17895507812497],[16.028320312500057,45.18959960937502],[16.29335937500005,45.00883789062496],[16.53066406250008,45.21669921875002],[16.918652343749983,45.27656249999998],[17.812792968750074,45.078125],[18.66259765625,45.07744140624999],[18.83642578125,44.883251953124955],[19.007128906250045,44.86918945312502]]]},"properties":{"name":"Bosnia and Herz.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.14794921875,56.142919921875],[28.284277343750006,56.055908203125],[29.375,55.938720703125],[29.353417968750023,55.784375],[29.412988281250023,55.724853515625],[29.482226562500017,55.6845703125],[29.63007812500001,55.751171875],[29.6845703125,55.7697265625],[29.744140625,55.77041015625],[29.82392578125001,55.7951171875],[29.881640625000017,55.832324218749996],[29.93701171875,55.845263671874996],[30.04267578125001,55.83642578125],[30.23359375000001,55.84521484375],[30.625585937500006,55.666259765625],[30.906835937500006,55.57001953125],[30.90058593750001,55.397412109375],[30.82099609375001,55.3302734375],[30.810546875,55.306982421875],[30.814453125,55.2787109375],[30.87744140625,55.2234375],[30.958886718750023,55.13759765625],[30.97773437500001,55.08779296875],[30.97773437500001,55.05048828125],[30.829882812500017,54.914990234375],[30.804492187500017,54.8609375],[30.791015625,54.806005859375],[30.798828125,54.783251953124996],[30.984179687500017,54.6958984375],[31.12128906250001,54.648486328124996],[31.152148437500017,54.625341796875],[31.074804687500006,54.491796875],[31.18476562500001,54.452978515625],[31.299121093750017,54.29169921875],[31.403613281250017,54.195947265625],[31.62841796875,54.111181640625],[31.7919921875,54.055908203125],[31.825976562500017,54.030712890625],[31.837792968750023,54.00078125],[31.825292968750006,53.935009765625],[31.783007812500017,53.85498046875],[31.754199218750017,53.81044921875],[31.82080078125,53.791943359375],[31.9921875,53.796875],[32.20039062500001,53.78125],[32.45097656250002,53.6533203125],[32.70429687500001,53.336328125],[32.64443359375002,53.32890625],[32.57802734375002,53.31240234375],[32.469335937500006,53.2703125],[32.14199218750002,53.091162109375],[31.849707031250006,53.106201171875],[31.668261718750017,53.200927734375],[31.417871093750023,53.196044921875],[31.38837890625001,53.184814453125],[31.364550781250017,53.138964843749996],[31.30292968750001,53.060888671875],[31.2587890625,53.01669921875],[31.29511718750001,52.989794921874996],[31.35302734375,52.933447265625],[31.442773437500023,52.86181640625],[31.53515625,52.7982421875],[31.564843750000023,52.759228515625],[31.585546875,52.532470703125],[31.57734375000001,52.312304687499996],[31.6015625,52.284814453125],[31.64990234375,52.26220703125],[31.690625,52.220654296875],[31.758593750000017,52.125830078125],[31.76337890625001,52.10107421875],[31.57373046875,52.10810546875],[31.345996093750017,52.10537109375],[31.21796875000001,52.050244140625],[30.98066406250001,52.046191406249996],[30.845703125,51.953076171875],[30.755273437500023,51.895166015625],[30.667285156250017,51.814111328125],[30.583886718750023,51.68896484375],[30.533007812500017,51.596337890624994],[30.56074218750001,51.531494140625],[30.602343750000017,51.471240234374996],[30.611718750000023,51.40634765625],[30.63251953125001,51.355419921875],[30.449511718750017,51.274316406249994],[30.160742187500006,51.477880859375],[29.346484375000017,51.382568359375],[29.10205078125,51.6275390625],[29.06074218750001,51.625439453125],[29.013085937500023,51.598925781249996],[28.97773437500001,51.57177734375],[28.927539062500017,51.562158203124994],[28.849511718750023,51.540185546874994],[28.73125,51.433398437499996],[28.690234375000017,51.438867187499994],[28.647753906250017,51.45654296875],[28.599023437500023,51.542626953124994],[28.532031250000017,51.562451171875],[27.85859375000001,51.5923828125],[27.7,51.477978515625],[27.689746093750017,51.572412109374994],[27.296289062500023,51.597412109375],[27.270117187500006,51.613574218749996],[27.141992187500023,51.75205078125],[27.074121093750023,51.76083984375],[26.95283203125001,51.75400390625],[26.7734375,51.770703125],[25.785742187500006,51.923828125],[24.361914062500006,51.867529296875],[24.280078125000017,51.774707031249996],[24.126855468750023,51.6646484375],[23.978320312500017,51.59130859375],[23.951171875,51.58505859375],[23.8642578125,51.623974609375],[23.79169921875001,51.637109375],[23.706835937500017,51.64130859375],[23.61376953125,51.525390625],[23.605273437500017,51.517919921875],[23.652441406250006,52.040380859375],[23.175097656250017,52.28662109375],[23.915429687500023,52.770263671875],[23.484667968750017,53.939794921875],[23.55908203125,53.91982421875],[23.733691406250017,53.912255859375],[24.191308593750023,53.950439453125],[24.236621093750017,53.919970703124996],[24.31796875,53.89296875],[24.620703125,53.979833984375],[24.768164062500006,53.974658203124996],[24.78925781250001,53.9982421875],[24.82568359375,54.118994140625],[24.869531250000023,54.145166015625],[25.04609375000001,54.133056640625],[25.111425781250006,54.154931640625],[25.179492187500017,54.2142578125],[25.46113281250001,54.292773437499996],[25.505664062500017,54.264941406249996],[25.52734375,54.215136718749996],[25.497363281250017,54.175244140625],[25.573046875000017,54.139892578125],[25.765234375,54.17978515625],[25.702539062500023,54.29296875],[25.61689453125001,54.310107421874996],[25.557519531250023,54.310693359375],[25.54736328125,54.331835937499996],[25.56757812500001,54.37705078125],[25.62031250000001,54.460400390625],[25.68515625,54.535791015625],[25.72480468750001,54.564257812499996],[25.73164062500001,54.590380859374996],[25.722460937500017,54.71787109375],[25.859277343750023,54.919287109375],[25.964453125,54.94716796875],[26.09296875000001,54.9623046875],[26.175195312500023,55.003271484375],[26.250781250000017,55.12451171875],[26.291796875000017,55.139599609375],[26.601171875,55.130175781249996],[26.6484375,55.20419921875],[26.775683593750017,55.273095703125],[26.760156250000023,55.293359375],[26.68125,55.306445312499996],[26.49531250000001,55.318017578125],[26.457617187500006,55.34248046875],[26.469531250000017,55.371923828125],[26.51923828125001,55.44814453125],[26.56660156250001,55.546484375],[26.5908203125,55.62265625],[26.593554687500017,55.667529296874996],[27.052539062500017,55.83056640625],[27.576757812500006,55.798779296875],[28.14794921875,56.142919921875]]]},"properties":{"name":"Belarus","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-87.8529296875,17.4228515625],[-87.92998046874996,17.283007812500017],[-87.826416015625,17.546289062499994],[-87.8529296875,17.4228515625]]],[[[-88.89404296875,15.890625],[-89.2328125,15.888671875],[-89.16147460937503,17.81484375],[-89.13354492187503,17.970800781249977],[-88.80634765624998,17.965527343749983],[-88.52299804687499,18.445898437500063],[-88.29565429687494,18.47241210937503],[-88.34926757812494,18.358837890624983],[-88.1302734375,18.350732421875023],[-88.08525390624999,18.226123046875045],[-88.27172851562494,17.60986328125],[-88.203466796875,17.5166015625],[-88.31342773437501,16.632763671874983],[-88.89404296875,15.890625]]]]},"properties":{"name":"Belize","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-64.73027343749999,32.29345703125],[-64.86284179687499,32.273876953125],[-64.66831054687499,32.38193359375],[-64.73027343749999,32.29345703125]]]},"properties":{"name":"Bermuda","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-58.15976562499999,-20.164648437500006],[-58.18017578125,-19.81787109375],[-59.09052734375,-19.286230468750006],[-60.00737304687499,-19.29755859375001],[-61.7568359375,-19.6453125],[-62.276318359375,-20.5625],[-62.27666015624999,-21.066015625],[-62.65097656249999,-22.233691406250003],[-62.84335937499999,-21.99726562500001],[-63.92167968749999,-22.028613281250003],[-63.97612304687499,-22.072558593750003],[-64.26640624999999,-22.603320312500003],[-64.30791015624999,-22.7953125],[-64.32529296874999,-22.82763671875],[-64.373974609375,-22.761035156250003],[-64.4455078125,-22.58535156250001],[-64.477734375,-22.4853515625],[-64.5236328125,-22.37158203125],[-64.60551757812499,-22.228808593750003],[-64.992626953125,-22.109667968750003],[-65.518798828125,-22.09453125],[-65.686181640625,-22.11025390625001],[-65.77104492187499,-22.099609375],[-65.86015624999999,-22.01972656250001],[-66.05859375,-21.879492187500006],[-66.098583984375,-21.835058593750006],[-66.17465820312499,-21.8056640625],[-66.220166015625,-21.802539062500003],[-66.24760742187499,-21.83046875],[-66.28212890625,-21.94746093750001],[-66.3224609375,-22.053125],[-66.365185546875,-22.11376953125],[-66.71171874999999,-22.21630859375],[-66.99111328125,-22.509863281250006],[-67.19487304687499,-22.82167968750001],[-67.362255859375,-22.85517578125001],[-67.57993164062499,-22.891699218750006],[-67.79443359375,-22.879492187500006],[-67.87944335937499,-22.82294921875001],[-67.88173828125,-22.49335937500001],[-68.18642578125,-21.61855468750001],[-68.197021484375,-21.30029296875],[-68.558251953125,-20.901953125],[-68.484326171875,-20.62841796875],[-68.74516601562499,-20.45859375],[-68.75932617187499,-20.115527343750003],[-68.560693359375,-19.967089843750003],[-68.559375,-19.90234375],[-68.578271484375,-19.856542968750006],[-68.69619140625,-19.74072265625],[-68.69829101562499,-19.72109375],[-68.57529296874999,-19.56015625],[-68.462890625,-19.43281250000001],[-68.470166015625,-19.409960937500003],[-68.49199218749999,-19.381933593750006],[-68.85795898437499,-19.093359375],[-68.96831054687499,-18.96796875000001],[-68.97885742187499,-18.81298828125],[-69.026806640625,-18.65625],[-69.09228515625,-18.28242187500001],[-69.145458984375,-18.14404296875],[-69.0939453125,-18.05048828125001],[-69.28232421874999,-17.96484375],[-69.31337890625,-17.943164062500003],[-69.5109375,-17.50605468750001],[-69.51108398437499,-17.5048828125],[-69.510986328125,-17.46035156250001],[-69.521923828125,-17.388964843750003],[-69.645703125,-17.24853515625],[-69.62485351562499,-17.2001953125],[-69.020703125,-16.6421875],[-69.03291015625,-16.47597656250001],[-68.8427734375,-16.337890625],[-69.21757812499999,-16.14912109375001],[-69.4208984375,-15.640625],[-69.17246093749999,-15.236621093750003],[-69.37470703125,-14.962988281250006],[-69.35947265624999,-14.7953125],[-68.87089843749999,-14.169726562500003],[-69.07412109375,-13.682812500000011],[-68.97861328124999,-12.880078125000011],[-68.68525390625,-12.501953125],[-69.57861328125,-10.951757812500006],[-69.228515625,-10.955664062500006],[-68.84833984375,-11.011132812500009],[-68.678369140625,-11.11279296875],[-68.39799804687499,-11.01875],[-68.0716796875,-10.703125],[-67.99169921875,-10.674414062500006],[-67.83500976562499,-10.662792968750011],[-67.72177734374999,-10.68310546875],[-67.416943359375,-10.389843750000011],[-66.575341796875,-9.89990234375],[-65.396142578125,-9.71240234375],[-65.298583984375,-10.146777343750003],[-65.31308593749999,-10.253027343750006],[-65.395458984375,-10.392285156250011],[-65.4369140625,-10.449023437500003],[-65.44711914062499,-10.507421875],[-65.33403320312499,-10.892773437500011],[-65.32377929687499,-11.024804687500009],[-65.389892578125,-11.246289062500011],[-65.1857421875,-11.74951171875],[-64.783447265625,-12.059375],[-64.42050781249999,-12.439746093750003],[-63.68857421874999,-12.47802734375],[-63.3466796875,-12.680078125],[-63.06748046874999,-12.669140625000011],[-62.76547851562499,-12.997265625000011],[-62.11801757812499,-13.159765625],[-62.09477539062499,-13.241992187500003],[-61.944726562499994,-13.40625],[-61.87412109374999,-13.470410156250011],[-61.789941406249994,-13.525585937500011],[-61.57568359375,-13.524804687500009],[-61.51157226562499,-13.541210937500011],[-61.41606445312499,-13.526562500000011],[-61.129150390625,-13.49853515625],[-61.07700195312499,-13.48974609375],[-60.506591796875,-13.78984375],[-60.372705078124994,-14.41875],[-60.273339843749994,-15.088769531250009],[-60.402001953124994,-15.0927734375],[-60.583203125,-15.098339843750011],[-60.53046875,-15.143164062500006],[-60.38046875,-15.318261718750009],[-60.242333984374994,-15.479589843750006],[-60.20664062499999,-15.901953125],[-60.18720703125,-16.132128906250003],[-60.17558593749999,-16.269335937500003],[-58.53793945312499,-16.328222656250006],[-58.49658203125,-16.32666015625],[-58.42368164062499,-16.307910156250003],[-58.37539062499999,-16.28359375],[-58.345605468749994,-16.284375],[-58.35039062499999,-16.490820312500006],[-58.470605468749994,-16.650195312500003],[-58.478125,-16.70068359375],[-58.45981445312499,-16.910742187500006],[-58.417382812499994,-17.08056640625],[-58.39599609375,-17.23427734375001],[-58.34775390624999,-17.28212890625001],[-57.99091796875,-17.51289062500001],[-57.905029296875,-17.532324218750006],[-57.832470703125,-17.512109375],[-57.78886718749999,-17.573046875],[-57.780175781249994,-17.67177734375001],[-57.66166992187499,-17.947363281250006],[-57.58647460937499,-18.12226562500001],[-57.49565429687499,-18.214648437500003],[-57.57402343749999,-18.279296875],[-57.725,-18.733203125],[-57.783105468749994,-18.91425781250001],[-57.716796875,-19.044042968750006],[-58.131494140624994,-19.74453125],[-57.860742187499994,-19.979589843750006],[-57.887597656249994,-20.02041015625001],[-57.96015625,-20.04072265625001],[-58.021142578124994,-20.05517578125],[-58.09375,-20.15107421875001],[-58.15976562499999,-20.164648437500006]]]},"properties":{"name":"Bolivia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-48.48588867187493,-27.76699218749998],[-48.554589843749994,-27.81220703125004],[-48.542187499999955,-27.57480468749999],[-48.41489257812495,-27.399609375],[-48.48588867187493,-27.76699218749998]]],[[[-48.584423828124955,-26.401562499999983],[-48.665771484375,-26.289648437500006],[-48.53974609374998,-26.170312500000023],[-48.584423828124955,-26.401562499999983]]],[[[-45.26025390624997,-23.889160156249986],[-45.451416015625,-23.895605468749977],[-45.30234375,-23.727539062500014],[-45.26025390624997,-23.889160156249986]]],[[[-44.12929687499994,-23.14189453124999],[-44.36015624999999,-23.17207031250001],[-44.24287109374998,-23.074121093750037],[-44.12929687499994,-23.14189453124999]]],[[[-38.90356445312497,-13.473437499999974],[-38.97758789062496,-13.523535156249963],[-39.02216796874998,-13.445605468749989],[-38.907128906249994,-13.401074218749983],[-38.90356445312497,-13.473437499999974]]],[[[-38.743847656249955,-13.097070312500037],[-38.668115234374966,-12.880175781249989],[-38.601171875,-12.99257812499998],[-38.743847656249955,-13.097070312500037]]],[[[-44.49931640625002,-2.939648437499983],[-44.597753906250006,-3.037597656249943],[-44.4814453125,-2.717578125000031],[-44.49931640625002,-2.939648437499983]]],[[[-44.88310546874996,-1.317871093749986],[-45.020849609375034,-1.372363281249974],[-44.978662109374966,-1.267285156249983],[-44.88310546874996,-1.317871093749986]]],[[[-51.83251953124997,-1.433789062499969],[-51.938378906249966,-1.452636718749986],[-51.680029296875006,-1.086132812500026],[-51.546044921874966,-0.649609375],[-51.25400390624998,-0.54140625],[-51.16074218749998,-0.666699218750011],[-51.27631835937498,-1.02177734374996],[-51.83251953124997,-1.433789062499969]]],[[[-49.62866210937497,-0.229199218749969],[-49.11699218749999,-0.163574218750014],[-48.39267578124995,-0.29736328125],[-48.83359375,-1.390039062500023],[-49.038476562499994,-1.5140625],[-49.17270507812498,-1.41259765625],[-49.233984375000034,-1.59951171874998],[-49.50664062499999,-1.511621093750023],[-49.587890625,-1.712402343749972],[-49.805126953124955,-1.790234375000026],[-50.06572265625002,-1.703808593749997],[-50.50761718749999,-1.787988281250009],[-50.759765625,-1.240234374999972],[-50.72949218749997,-1.126757812499946],[-50.57695312499999,-1.103125],[-50.709619140624994,-1.07773437499999],[-50.796093749999955,-0.90625],[-50.6455078125,-0.27285156249998],[-50.24824218749998,-0.11640625],[-49.62866210937497,-0.229199218749969]]],[[[-50.65288085937499,-0.131640624999989],[-50.926367187500034,-0.327343749999983],[-51.03808593749994,-0.225878906250003],[-50.84218750000002,-0.050195312500009],[-50.65288085937499,-0.131640624999989]]],[[[-49.44389648437499,-0.112402343749977],[-49.83007812499997,-0.093896484375023],[-49.50346679687496,0.083691406250011],[-49.37231445312497,0.001074218749963],[-49.44389648437499,-0.112402343749977]]],[[[-49.73823242187498,0.26816406250002],[-49.917089843750006,-0.023193359375014],[-50.339453125,0.043359375000051],[-50.27265624999998,0.231738281249974],[-49.73823242187498,0.26816406250002]]],[[[-50.42612304687498,0.139257812500048],[-50.44394531249998,-0.007666015624949],[-50.623925781249966,0.054394531249983],[-50.372753906249955,0.590869140625031],[-50.33227539062497,0.259033203125028],[-50.42612304687498,0.139257812500048]]],[[[-50.152929687500006,0.393017578125054],[-50.26132812499998,0.359179687500003],[-50.281689453124955,0.51650390624998],[-50.05883789062503,0.638037109374963],[-50.152929687500006,0.393017578125054]]],[[[-50.29897460937502,1.93852539062496],[-50.45610351562496,1.910498046875034],[-50.49101562499996,2.128613281249969],[-50.34199218749998,2.14174804687498],[-50.29897460937502,1.93852539062496]]],[[[-59.69970703125,4.353515625],[-59.73857421874993,4.226757812500026],[-59.62021484374998,4.023144531250026],[-59.557763671874966,3.960009765625031],[-59.551123046875034,3.933544921874969],[-59.854394531249994,3.5875],[-59.99433593749998,2.689990234375031],[-59.88964843749997,2.362939453125009],[-59.75522460937495,2.27412109375004],[-59.74350585937498,2.12163085937496],[-59.75175781249996,1.962402343750028],[-59.75620117187498,1.900634765624972],[-59.666601562500006,1.746289062499969],[-59.53569335937499,1.7],[-59.23120117187494,1.376025390625031],[-58.82177734374994,1.201220703125031],[-58.787207031250006,1.208496093750014],[-58.73032226562498,1.247509765625054],[-58.68461914062499,1.28105468749996],[-58.511865234374966,1.284667968749986],[-58.506054687499926,1.438671875000011],[-58.39580078124993,1.481738281249989],[-58.38037109375,1.530224609375011],[-58.34067382812498,1.587548828125051],[-58.03466796875,1.520263671875014],[-57.9828125,1.648437500000014],[-57.87343750000002,1.667285156250045],[-57.79565429687497,1.7],[-57.59443359375001,1.704101562499986],[-57.54575195312495,1.726074218750028],[-57.31748046874998,1.963476562499991],[-57.27558593749998,1.959228515625014],[-57.189599609374966,1.981591796875037],[-57.11889648437494,2.013964843749974],[-57.09267578125002,2.005810546874997],[-57.03759765625,1.936474609374997],[-56.96953124999999,1.91640625],[-56.48281249999994,1.942138671874986],[-56.019921874999966,1.842236328124983],[-55.96333007812498,1.85708007812498],[-55.929638671874955,1.8875],[-55.92163085937503,1.976660156250006],[-55.91533203124999,2.039550781250028],[-55.96196289062496,2.09511718749998],[-56.02006835937499,2.15815429687504],[-56.073632812499994,2.236767578124969],[-56.13769531249997,2.259033203124986],[-56.12939453124997,2.299511718749969],[-56.08779296875002,2.341308593750043],[-56.045117187499955,2.364404296875037],[-56.02036132812498,2.392773437500054],[-55.993505859375006,2.497509765624983],[-55.9755859375,2.515966796875006],[-55.957470703124955,2.52045898437504],[-55.730566406250006,2.406152343750023],[-55.385351562500006,2.440625],[-55.34399414062503,2.488769531249972],[-55.28603515625002,2.49965820312498],[-55.18769531249998,2.547509765625037],[-55.114111328125006,2.539208984375037],[-55.07031249999994,2.548339843750028],[-55.005810546874955,2.592968749999983],[-54.97866210937502,2.597656250000043],[-54.968408203124966,2.548339843750028],[-54.92656249999999,2.497363281250045],[-54.876074218750006,2.450390624999969],[-54.72221679687499,2.441650390624972],[-54.69741210937502,2.359814453124997],[-54.66186523437497,2.327539062499994],[-54.61625976562499,2.326757812500006],[-54.59194335937502,2.313769531250031],[-54.55048828125001,2.293066406249991],[-54.51508789062498,2.245458984374963],[-54.43310546875,2.207519531250057],[-54.13007812499998,2.121044921875026],[-53.76777343749998,2.354833984375048],[-52.90346679687502,2.211523437499977],[-52.58300781250003,2.528906249999977],[-52.327880859375,3.18173828125002],[-51.65253906249998,4.061279296874972],[-51.54707031250001,4.31088867187502],[-51.219921874999955,4.093603515624991],[-50.71440429687502,2.134033203125],[-50.458886718749994,1.829589843749972],[-49.957128906250006,1.65986328125004],[-49.898876953124955,1.16298828124998],[-50.29443359374997,0.835742187500003],[-50.755078124999955,0.222558593749966],[-51.28291015625001,-0.085205078125028],[-51.98081054687498,-1.367968749999974],[-52.22924804687497,-1.3625],[-52.664160156250034,-1.551757812500028],[-51.94755859374996,-1.586718749999946],[-50.89492187500002,-0.937597656249963],[-50.690039062500006,-1.761718749999986],[-50.40322265625002,-2.015527343750009],[-49.999218749999955,-1.831835937499974],[-49.71953125000002,-1.926367187499963],[-49.31367187500001,-1.731738281250003],[-49.63652343749996,-2.656933593750026],[-49.45751953125,-2.504589843749983],[-49.21103515624998,-1.916503906249986],[-48.99130859374998,-1.829785156249997],[-48.71000976562496,-1.487695312500023],[-48.46293945312499,-1.613964843749997],[-48.349804687499926,-1.482128906249955],[-48.46806640624996,-1.393847656250003],[-48.44980468749998,-1.145507812499943],[-48.11508789062498,-0.7375],[-47.557324218749955,-0.669921874999957],[-47.418652343749955,-0.765917968749974],[-47.39809570312502,-0.626660156250026],[-45.45859374999995,-1.35625],[-45.32915039062496,-1.71728515625],[-45.07636718749998,-1.466406249999949],[-44.72114257812498,-1.733496093750006],[-44.778515624999955,-1.798828125],[-44.651269531249966,-1.745800781250026],[-44.537792968749955,-2.052734374999943],[-44.75634765624997,-2.265527343749952],[-44.66240234375002,-2.373242187499955],[-44.435449218749966,-2.168066406249991],[-44.38183593749997,-2.365527343749989],[-44.52011718749998,-2.40546875000004],[-44.589013671874994,-2.573437499999983],[-44.72304687500002,-3.204785156249997],[-44.43754882812496,-2.944433593749977],[-44.228613281250006,-2.471289062499949],[-44.105566406250006,-2.493457031250031],[-44.19267578124999,-2.809570312499943],[-43.93291015624999,-2.583496093749986],[-43.45512695312499,-2.502050781250006],[-43.38007812499998,-2.376074218750006],[-42.93671874999998,-2.465039062500011],[-42.24960937499998,-2.7919921875],[-41.876171874999926,-2.746582031249986],[-41.479931640624955,-2.916503906249972],[-40.474560546874926,-2.795605468750026],[-39.96469726562498,-2.861523437499955],[-38.475781249999955,-3.717480468749997],[-38.04882812500003,-4.216406250000034],[-37.626318359375006,-4.592089843750003],[-37.30146484375001,-4.713085937499969],[-37.174658203125006,-4.912402343749974],[-36.590722656249966,-5.097558593749952],[-35.549414062500006,-5.129394531249957],[-35.39257812499994,-5.250878906250009],[-34.833886718749994,-7.024414062500014],[-34.83466796874998,-7.97148437499996],[-35.34086914062499,-9.230664062499983],[-35.76396484374993,-9.702539062500023],[-35.890820312499926,-9.687011718749957],[-35.88544921875001,-9.84765625],[-36.39833984374994,-10.484082031249983],[-36.768310546875,-10.671679687500017],[-37.18281249999998,-11.06845703125002],[-37.35600585937502,-11.403906249999977],[-37.35922851562495,-11.252539062499963],[-37.68872070312503,-12.1],[-38.019238281249955,-12.591308593750028],[-38.401757812499994,-12.966210937500023],[-38.69096679687502,-12.623925781250009],[-38.85175781250001,-12.790136718750034],[-38.76372070312502,-12.9072265625],[-38.835302734375034,-13.147167968750026],[-39.030908203124994,-13.365136718750023],[-39.08935546875,-13.588183593749989],[-38.988623046875006,-13.61503906249996],[-39.04814453124996,-14.043945312500028],[-38.94233398437498,-14.030664062499994],[-39.05957031249997,-14.654785156249957],[-38.88061523437503,-15.864257812499972],[-39.20288085937503,-17.178125],[-39.154003906249926,-17.70390625000003],[-39.650781249999966,-18.252343750000037],[-39.78330078124998,-19.571777343749986],[-40.001367187499994,-19.74199218750003],[-40.39594726562501,-20.56943359375002],[-40.78925781250001,-20.90605468750003],[-40.954541015624926,-21.237890624999963],[-41.04726562499999,-21.505664062499974],[-41.00029296875002,-21.99902343750003],[-41.70551757812498,-22.30966796874999],[-41.980419921874955,-22.580664062499963],[-42.042382812499966,-22.947070312500003],[-42.95830078124996,-22.96708984374999],[-43.154296875,-22.725195312500006],[-43.22416992187502,-22.991210937500014],[-43.898828124999966,-23.10146484375001],[-43.97382812499998,-23.057324218749983],[-43.675976562499955,-23.00947265625001],[-43.86616210937498,-22.910546875000023],[-44.63725585937496,-23.05546875],[-44.67382812499994,-23.206640625000034],[-44.56967773437495,-23.27402343749999],[-45.32539062499998,-23.59970703124999],[-45.464306640624955,-23.802539062500017],[-45.97207031250002,-23.795507812500006],[-46.86728515624998,-24.236328125000014],[-47.989160156249994,-25.03574218749999],[-47.92939453124998,-25.16826171874999],[-48.20273437499998,-25.41650390625003],[-48.18593749999994,-25.309863281249974],[-48.402490234374994,-25.27207031249999],[-48.47612304687499,-25.44296875],[-48.73173828124993,-25.36875],[-48.6921875,-25.49150390625003],[-48.40117187500002,-25.59736328125001],[-48.665771484375,-25.844335937499963],[-48.576318359374994,-25.935449218749966],[-48.61943359374996,-26.17939453125001],[-48.74829101562503,-26.26865234374999],[-48.55415039062498,-27.195996093749997],[-48.62080078124998,-28.075585937499966],[-48.799658203125006,-28.575292968749977],[-49.27128906249999,-28.87119140625005],[-49.745996093749966,-29.363183593749994],[-50.299511718749955,-30.42578125000003],[-50.92138671874997,-31.25839843750002],[-52.039208984374994,-32.11484374999996],[-52.063232421875,-31.830371093750017],[-51.68066406249994,-31.774609375000026],[-51.272167968749955,-31.476953125000037],[-51.16142578124996,-31.11884765625001],[-50.980078125000034,-31.09423828124997],[-50.94082031249994,-30.903710937499966],[-50.68930664062495,-30.70419921874999],[-50.71630859374994,-30.425976562499983],[-50.58193359375002,-30.438867187500037],[-50.56352539062499,-30.25361328125004],[-51.02495117187493,-30.36865234375003],[-51.29804687499998,-30.03486328124997],[-51.15727539062499,-30.364257812500014],[-51.283056640625034,-30.751562499999963],[-51.35908203124998,-30.674511718749983],[-51.506298828124955,-31.104492187500014],[-51.97246093749999,-31.383789062499986],[-52.19355468749998,-31.885546874999974],[-52.12739257812501,-32.1677734375],[-52.652246093749994,-33.137792968750006],[-53.37060546874997,-33.74218750000003],[-53.39755859374995,-33.737304687500014],[-53.46357421875001,-33.70986328125002],[-53.531347656250034,-33.65546875000004],[-53.531347656250034,-33.1708984375],[-53.511865234374966,-33.10869140625003],[-53.482861328124926,-33.068554687500026],[-53.39521484375001,-33.01035156249998],[-53.31010742187499,-32.927050781249974],[-53.21406249999998,-32.82109375],[-53.12558593749998,-32.73671875],[-53.15727539062496,-32.680078125],[-53.601708984374994,-32.40302734374997],[-53.76171875,-32.05683593749997],[-53.920605468749926,-31.95234375],[-54.220556640625034,-31.855175781249997],[-54.58764648437503,-31.48515625000003],[-55.036035156249994,-31.27900390625004],[-55.091162109375034,-31.31396484374997],[-55.173535156249926,-31.279589843749974],[-55.557324218749955,-30.8759765625],[-55.60302734375003,-30.85078125000001],[-55.62714843749998,-30.858105468749997],[-55.650488281250034,-30.89208984375],[-55.66523437500001,-30.92490234375002],[-55.807763671874994,-31.036718749999977],[-55.87368164062502,-31.069628906250017],[-55.95200195312498,-31.08085937499999],[-56.0046875,-31.079199218750006],[-56.01845703125002,-30.991894531249983],[-55.998974609374955,-30.837207031250003],[-56.4072265625,-30.44746093750001],[-56.83271484374998,-30.107226562499974],[-57.120507812499994,-30.144433593749994],[-57.21445312499995,-30.283398437499983],[-57.55229492187496,-30.261230468749986],[-57.60888671875003,-30.187792968750045],[-57.563867187499994,-30.139941406249974],[-57.40522460937501,-30.03388671875004],[-57.22465820312499,-29.782128906249994],[-56.938623046874994,-29.594824218750034],[-55.890527343749994,-28.370019531249994],[-55.68725585937497,-28.38164062499996],[-55.72548828125002,-28.20410156250003],[-55.10151367187501,-27.866796874999963],[-54.82910156250003,-27.55058593750003],[-54.32700195312495,-27.423535156249997],[-53.83818359375002,-27.121093750000014],[-53.668554687500006,-26.288183593749977],[-53.89116210937499,-25.66884765625001],[-54.15458984374999,-25.523046874999963],[-54.44394531249998,-25.625],[-54.615869140624994,-25.576074218750023],[-54.61054687499998,-25.432714843750034],[-54.47314453124997,-25.22021484375],[-54.43623046875001,-25.12128906250001],[-54.281005859375,-24.30605468750001],[-54.31826171874994,-24.128125],[-54.26689453124996,-24.06582031250001],[-54.241796875,-24.047265624999966],[-54.44023437500002,-23.90175781249998],[-54.62548828125,-23.8125],[-54.98266601562494,-23.974511718749966],[-55.081884765625006,-23.997656249999977],[-55.1943359375,-24.017480468750023],[-55.28691406249993,-24.00429687499999],[-55.366308593750034,-23.99101562499996],[-55.41591796875002,-23.95136718749997],[-55.4423828125,-23.86533203125002],[-55.4423828125,-23.792578125000034],[-55.458886718749966,-23.686718750000054],[-55.51845703124994,-23.627246093750017],[-55.53828124999998,-23.580957031249994],[-55.61767578125,-22.67148437499999],[-55.74663085937499,-22.51269531249997],[-55.753271484375006,-22.410156250000043],[-55.84916992187499,-22.307617187500014],[-55.991406249999926,-22.28115234375005],[-56.18984374999994,-22.28115234375005],[-56.246044921874926,-22.26464843749997],[-56.39487304687498,-22.092675781250023],[-56.44780273437502,-22.07617187500003],[-56.77519531249999,-22.261328125],[-57.955908203125034,-22.109179687500003],[-57.94267578124999,-21.79833984375],[-57.830224609374994,-20.99794921875001],[-57.91513671874998,-20.690332031249966],[-57.97905273437493,-20.65732421874999],[-58.00224609374996,-20.465429687499977],[-58.02539062499997,-20.41582031249999],[-58.05844726562495,-20.38613281249998],[-58.091503906249926,-20.33320312500004],[-58.124609375000034,-20.293457031250014],[-58.13779296874995,-20.237304687500043],[-58.15976562499998,-20.164648437499977],[-58.09375,-20.15107421874997],[-58.021142578124994,-20.05517578124997],[-57.96015625000001,-20.04072265625004],[-57.887597656249966,-20.020410156249994],[-57.860742187499994,-19.97958984375002],[-58.029931640624994,-19.83271484375004],[-58.131494140624994,-19.74453125],[-57.71679687499997,-19.044042968750034],[-57.73085937499999,-18.91718750000004],[-57.783105468749994,-18.91425781249997],[-57.725,-18.73320312500003],[-57.57402343749993,-18.279296875000014],[-57.49565429687496,-18.21464843749999],[-57.58647460937499,-18.122265625],[-57.66166992187493,-17.94736328124999],[-57.78017578125002,-17.67177734374998],[-57.78886718750002,-17.573046875000017],[-57.83247070312501,-17.512109375000037],[-57.90502929687497,-17.53232421874999],[-57.990917968749955,-17.512890625000026],[-58.20556640625,-17.363085937499974],[-58.347753906250006,-17.282128906249994],[-58.39599609374997,-17.234277343750023],[-58.417382812499994,-17.08056640624997],[-58.459814453125006,-16.910742187500006],[-58.478125,-16.70068359375003],[-58.470605468749994,-16.650195312500045],[-58.35039062500002,-16.49082031249999],[-58.34560546875002,-16.284375],[-58.375390624999966,-16.283593749999966],[-58.423681640625034,-16.30791015625003],[-58.49658203124994,-16.32666015625003],[-58.537939453125034,-16.32822265624999],[-60.17558593749996,-16.26933593749999],[-60.187207031249955,-16.132128906250017],[-60.206640625,-15.90195312500002],[-60.242333984374994,-15.479589843750034],[-60.38046874999998,-15.318261718750023],[-60.53046874999998,-15.143164062499977],[-60.58320312499998,-15.098339843749983],[-60.273339843749994,-15.088769531249994],[-60.372705078124994,-14.41875],[-60.506591796875,-13.78984375],[-61.077001953125034,-13.489746093750014],[-61.129150390625,-13.498535156250028],[-61.41606445312502,-13.526562499999969],[-61.511572265625006,-13.541210937500011],[-61.789941406249966,-13.525585937500026],[-61.87412109374998,-13.470410156249983],[-61.944726562499966,-13.40625],[-62.09477539062499,-13.241992187499989],[-62.118017578125006,-13.15976562500002],[-62.765478515625034,-12.99726562500004],[-63.01518554687502,-12.80556640624998],[-63.067480468750006,-12.669140624999983],[-63.34667968749994,-12.68007812499999],[-63.68857421874998,-12.478027343749957],[-64.42050781249995,-12.439746093749974],[-64.783447265625,-12.059375],[-65.18574218749998,-11.749511718749957],[-65.389892578125,-11.246289062500011],[-65.33403320312499,-10.892773437500026],[-65.44711914062503,-10.507421875000034],[-65.4369140625,-10.449023437499946],[-65.39545898437498,-10.392285156250026],[-65.31308593749998,-10.253027343749991],[-65.29858398437497,-10.146777343750017],[-65.39614257812494,-9.712402343749986],[-66.57534179687502,-9.899902343749986],[-67.41694335937495,-10.389843749999969],[-67.72177734374998,-10.683105468749943],[-67.83500976562496,-10.662792968749983],[-67.99169921875,-10.674414062499949],[-68.07167968749994,-10.703125],[-68.39799804687499,-11.01875],[-68.678369140625,-11.11279296875],[-68.84833984374998,-11.01113281249998],[-69.228515625,-10.955664062499963],[-69.46254882812497,-10.948144531250023],[-69.57861328125,-10.951757812499963],[-69.67402343749998,-10.9541015625],[-69.83979492187501,-10.93339843749996],[-69.96035156249997,-10.92988281250004],[-70.06630859374997,-10.982421875],[-70.22006835937503,-11.04765625],[-70.29038085937498,-11.064257812499974],[-70.34199218750001,-11.066699218750017],[-70.39228515624995,-11.058593749999972],[-70.45087890624998,-11.024804687500009],[-70.53325195312496,-10.946875],[-70.59653320312498,-10.976855468750017],[-70.642333984375,-11.010253906249986],[-70.59916992187499,-9.620507812500009],[-70.54111328124998,-9.4375],[-70.60791015625,-9.463671875000031],[-70.63691406249995,-9.478222656249969],[-71.041748046875,-9.81875],[-71.11528320312499,-9.852441406250009],[-71.33940429687499,-9.988574218750031],[-72.18159179687495,-10.003710937500003],[-72.37905273437497,-9.51015625],[-73.20942382812493,-9.411425781249946],[-73.08984375,-9.26572265625002],[-72.970361328125,-9.120117187500028],[-72.97402343750002,-8.9931640625],[-73.07050781249995,-8.8828125],[-73.203125,-8.719335937499991],[-73.30244140624995,-8.654003906250011],[-73.36040039062496,-8.479296875000031],[-73.39814453125001,-8.458984374999986],[-73.54912109374993,-8.34580078125002],[-73.73203125,-7.875390625],[-73.72041015624993,-7.782519531250017],[-73.76689453124999,-7.753515624999963],[-73.82207031249996,-7.738964843750026],[-73.89462890624998,-7.654785156250014],[-73.946875,-7.611230468750023],[-73.98173828124996,-7.58505859375002],[-74.00205078125003,-7.556054687499966],[-73.98173828124996,-7.535742187500006],[-73.95849609374994,-7.506640625000031],[-73.96430664062498,-7.378906250000028],[-73.74946289062498,-7.335351562500037],[-73.72041015624993,-7.309277343749969],[-73.758203125,-7.172753906249952],[-73.79301757812499,-7.135058593750003],[-73.75810546874999,-6.90576171875],[-73.137353515625,-6.4658203125],[-73.23554687500001,-6.098437500000017],[-73.209375,-6.028710937500023],[-73.16289062499996,-5.933398437499974],[-72.97988281249997,-5.634863281249991],[-72.88706054687498,-5.122753906250026],[-72.83193359374994,-5.09375],[-72.69873046874997,-5.067187499999989],[-72.60834960937495,-5.009570312499974],[-72.46899414062497,-4.901269531250023],[-72.35283203124993,-4.786035156249994],[-72.25678710937501,-4.74892578124998],[-71.8447265625,-4.504394531249986],[-70.97368164062499,-4.350488281249994],[-70.86601562499999,-4.229589843749963],[-70.79951171874995,-4.173339843749957],[-70.72158203124997,-4.15888671875004],[-70.53066406249997,-4.167578125000034],[-70.40463867187498,-4.150097656250026],[-70.34365234375,-4.193652343750017],[-70.31689453124994,-4.246972656250037],[-70.23916015625002,-4.30117187499998],[-70.12880859375,-4.286621093749943],[-70.05332031249998,-4.333105468750006],[-70.00395507812496,-4.327246093749963],[-69.97202148437503,-4.30117187499998],[-69.96591796875003,-4.2359375],[-69.94819335937498,-4.200585937500009],[-69.66904296875003,-2.667675781249997],[-69.40024414062498,-1.194921874999977],[-69.63398437500001,-0.50927734375],[-70.07050781249993,-0.13886718750004],[-70.05390624999993,0.578613281250028],[-69.47211914062498,0.72993164062504],[-69.15332031249994,0.65878906250002],[-69.31181640624999,1.050488281249969],[-69.85214843750003,1.05952148437504],[-69.84858398437493,1.708740234375043],[-68.17656249999999,1.719824218749991],[-68.25595703125,1.845507812500017],[-68.19379882812495,1.987011718749983],[-67.93623046874998,1.748486328124969],[-67.40043945312499,2.116699218750028],[-67.11923828124998,1.703613281249986],[-67.082275390625,1.185400390625006],[-66.87602539062499,1.223046875000037],[-66.34711914062498,0.7671875],[-66.06005859375003,0.78535156250004],[-65.68144531249999,0.983447265624989],[-65.52299804687493,0.843408203124966],[-65.55605468750002,0.687988281250014],[-65.47338867187497,0.691259765624977],[-65.10375976562497,1.108105468749983],[-64.20502929687493,1.52949218750004],[-64.00849609374995,1.931591796874969],[-63.43251953124994,2.155566406250045],[-63.389257812500006,2.411914062500045],[-64.04658203124998,2.502392578124997],[-64.22109375000002,3.587402343749972],[-64.66899414062496,4.01181640625002],[-64.788671875,4.276025390625023],[-64.57636718750001,4.139892578125],[-64.19248046874995,4.126855468750009],[-64.02148437500003,3.929101562500051],[-63.33867187500002,3.943896484375045],[-62.85698242187502,3.593457031249969],[-62.71210937499998,4.01791992187502],[-62.41064453124994,4.156738281249972],[-62.153125,4.098388671874986],[-61.82084960937496,4.197021484375],[-61.28007812500002,4.516894531249974],[-61.00283203125002,4.535253906249991],[-60.603857421875006,4.94936523437498],[-60.671972656250034,5.164355468749989],[-60.71196289062499,5.191552734375023],[-60.742138671874926,5.202050781250037],[-60.6513671875,5.221142578125011],[-60.45952148437499,5.188085937500034],[-60.40878906249998,5.21015625],[-60.33520507812497,5.199316406250006],[-60.241650390624926,5.257958984374966],[-60.14204101562498,5.238818359374974],[-59.990673828124955,5.082861328124991],[-60.14863281249998,4.533251953125031],[-59.69970703125,4.353515625]]]]},"properties":{"name":"Brazil","childNum":17}},{"geometry":{"type":"Polygon","coordinates":[[[-59.493310546874994,13.081982421874997],[-59.611328125,13.102099609374989],[-59.6466796875,13.303125],[-59.427636718749994,13.152783203124997],[-59.493310546874994,13.081982421874997]]]},"properties":{"name":"Barbados","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[115.02675781250005,4.899707031249989],[115.1400390625,4.899755859374991],[115.290625,4.352587890624989],[115.10703125000006,4.390429687499974],[115.02675781250005,4.899707031249989]]],[[[115.02675781250005,4.899707031249989],[114.74667968750006,4.718066406250017],[114.84023437500005,4.393212890625009],[114.65410156250007,4.037646484375045],[114.0638671875,4.592675781249966],[114.42441406250006,4.660400390625],[114.99541015625002,5.022363281250023],[115.02675781250005,4.899707031249989]]]]},"properties":{"name":"Brunei","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[91.63193359375003,27.759960937499997],[91.5947265625,27.557666015624996],[91.74306640625002,27.442529296874994],[91.85126953125001,27.438623046874994],[91.95097656249999,27.458300781249996],[91.99082031250003,27.4501953125],[92.044921875,27.364697265624997],[92.08339843750002,27.290625],[92.03115234375002,27.214306640624997],[92.00253906250003,27.147363281249994],[91.99228515625003,27.099902343749996],[91.99863281250003,27.079296875],[92.03085937500003,27.040820312499996],[92.06816406249999,26.9751953125],[92.07343750000001,26.91484375],[92.04970703125002,26.874853515625],[91.99833984374999,26.85498046875],[91.84208984374999,26.852978515624997],[91.67158203125001,26.802001953125],[91.517578125,26.807324218749997],[91.45585937499999,26.866894531249997],[91.4267578125,26.867089843749994],[91.28652343750002,26.789941406249994],[90.73964843750002,26.771679687499997],[90.34589843750001,26.890332031249997],[90.2060546875,26.847509765625],[90.12294921875002,26.754589843749997],[89.94316406249999,26.723925781249996],[89.76386718750001,26.7015625],[89.60996093750003,26.719433593749997],[89.58613281250001,26.778955078124994],[89.33212890625003,26.8486328125],[89.14824218749999,26.816162109375],[89.04091796875002,26.865039062499996],[88.85761718750001,26.961474609374996],[88.73876953125,27.175585937499996],[88.76035156250003,27.218115234375],[88.88164062499999,27.2974609375],[88.89140624999999,27.316064453124994],[88.94755859374999,27.464013671874994],[89.48066406250001,28.059960937499994],[89.53691406249999,28.107421875],[89.65273437500002,28.15830078125],[89.74980468749999,28.188183593749997],[89.81689453125,28.256298828124997],[89.89785156250002,28.294140625],[89.98105468750003,28.311181640624994],[90.34824218750003,28.243945312499996],[90.36298828125001,28.216503906249997],[90.33310546875003,28.093994140625],[90.35273437500001,28.080224609374994],[90.47734374999999,28.070849609374996],[90.63007812500001,28.078564453124997],[90.71572265625002,28.071728515624997],[91.02080078124999,27.970068359375],[91.07773437500003,27.974462890625],[91.22587890624999,28.071240234374997],[91.27304687500003,28.078369140625],[91.30683593750001,28.064013671874996],[91.36757812500002,28.021630859374994],[91.64189453124999,27.923242187499994],[91.63193359375003,27.759960937499997]]]},"properties":{"name":"Bhutan","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[25.2587890625,-17.793554687500006],[25.242285156250006,-17.969042968750003],[25.939355468750023,-18.93867187500001],[26.168066406250006,-19.53828125000001],[27.17822265625,-20.10097656250001],[27.28076171875,-20.47871093750001],[27.679296875,-20.503027343750006],[27.66943359375,-21.064257812500003],[28.014062500000023,-21.55419921875],[29.02558593750001,-21.796875],[29.042382812500023,-22.018359375],[29.237207031250023,-22.07949218750001],[29.315234375000017,-22.15771484375],[29.36484375,-22.193945312500006],[29.1298828125,-22.21328125],[29.013476562500017,-22.278417968750006],[28.94580078125,-22.395117187500006],[28.83984375,-22.480859375],[28.21015625000001,-22.693652343750003],[27.812597656250006,-23.108007812500006],[27.7685546875,-23.14892578125],[27.085546875,-23.577929687500003],[26.835058593750006,-24.240820312500006],[26.617773437500006,-24.3955078125],[26.451757812500006,-24.58271484375001],[26.39716796875001,-24.613574218750003],[26.130859375,-24.671484375],[26.031835937500006,-24.702441406250003],[25.912109375,-24.74746093750001],[25.518164062500006,-25.66279296875001],[25.21337890625,-25.75625],[24.33056640625,-25.74287109375001],[24.19296875,-25.632910156250006],[23.969531250000017,-25.626074218750006],[23.89375,-25.600878906250003],[23.389257812500006,-25.29140625],[23.148730468750017,-25.288671875],[22.878808593750023,-25.45791015625001],[22.59765625,-26.13271484375001],[22.548632812500017,-26.17841796875001],[22.47089843750001,-26.219042968750003],[22.217578125000017,-26.38886718750001],[22.090917968750006,-26.580175781250006],[22.01093750000001,-26.635839843750006],[21.78828125000001,-26.710058593750006],[21.738085937500017,-26.80683593750001],[21.694726562500023,-26.840917968750006],[20.73984375,-26.84882812500001],[20.641406250000017,-26.7421875],[20.79316406250001,-25.915625],[20.4306640625,-25.147070312500006],[19.98046875,-24.77675781250001],[19.977343750000017,-22.00019531250001],[20.9794921875,-21.9619140625],[20.97412109375,-18.31884765625],[23.219335937500006,-17.99970703125001],[23.599707031250006,-18.4599609375],[24.243945312500017,-18.0234375],[24.530566406250017,-18.052734375],[24.909082031250023,-17.821386718750006],[25.2587890625,-17.793554687500006]]]},"properties":{"name":"Botswana","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[22.86005859375001,10.919677734375],[23.646289062500017,9.822900390624994],[23.62265625,9.340625],[23.46826171875,9.11474609375],[23.53730468750001,8.815820312499994],[24.147363281250023,8.665625],[24.291406250000023,8.29140625],[24.853320312500017,8.137548828124991],[25.20039062500001,7.807910156249989],[25.18134765625001,7.557226562499991],[25.27890625,7.427490234375],[26.36181640625,6.635302734374989],[26.30859375,6.455322265625],[26.514257812500006,6.069238281249994],[27.143945312500023,5.722949218749989],[27.4033203125,5.109179687499989],[27.071875,5.199755859374989],[26.822070312500017,5.062402343749994],[25.52509765625001,5.31210937499999],[25.065234375000017,4.967431640624994],[24.31982421875,4.994140625],[23.41718750000001,4.663134765624989],[22.864550781250017,4.723876953125],[22.422167968750017,4.134960937499997],[20.55810546875,4.462695312499989],[20.226367187500017,4.829638671874989],[19.806542968750023,5.089306640624997],[19.5009765625,5.127490234374989],[19.06855468750001,4.891406249999989],[18.594140625000023,4.346240234374989],[18.6103515625,3.478417968749994],[18.474414062500017,3.622998046874997],[18.160937500000017,3.499804687499989],[17.491601562500023,3.687304687499989],[16.610742187500023,3.50537109375],[16.468554687500017,2.831738281249997],[16.183398437500017,2.270068359374989],[16.0634765625,2.90859375],[15.128710937500017,3.826904296875],[15.063574218750006,4.284863281249997],[14.73125,4.602392578124991],[14.56298828125,5.279931640624994],[14.616894531250011,5.865136718749994],[14.43115234375,6.038720703124994],[14.7392578125,6.27978515625],[15.206738281250011,7.206152343749991],[15.480078125,7.523779296874991],[15.957617187500006,7.507568359375],[16.37890625,7.683544921874997],[16.545312500000023,7.865478515625],[16.784765625,7.550976562499997],[17.6494140625,7.98359375],[18.56416015625001,8.0458984375],[19.108691406250017,8.656152343749994],[18.886035156250017,8.836035156249991],[18.95625,8.938867187499994],[20.342089843750017,9.127099609374994],[20.773242187500017,9.405664062499994],[21.682714843750006,10.289843749999989],[21.771484375,10.642822265625],[22.49384765625001,10.996240234374994],[22.86005859375001,10.919677734375]]]},"properties":{"name":"Central African Rep.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-59.78759765624997,43.939599609374994],[-60.11748046874996,43.95336914062506],[-59.727148437500006,44.002832031249994],[-59.78759765624997,43.939599609374994]]],[[[-66.7625,44.68178710937502],[-66.8970703125,44.62890625],[-66.80214843749994,44.80537109374998],[-66.7625,44.68178710937502]]],[[[-60.961572265624966,45.48994140625001],[-61.081738281249926,45.55781249999998],[-60.91245117187498,45.56728515625005],[-60.961572265624966,45.48994140625001]]],[[[-73.69531249999997,45.58549804687502],[-73.85771484375002,45.573583984375006],[-73.57236328124998,45.69448242187502],[-73.69531249999997,45.58549804687502]]],[[[-73.56650390625003,45.469091796875034],[-73.960546875,45.44140624999997],[-73.68745117187498,45.561425781249994],[-73.47607421874997,45.704736328124994],[-73.56650390625003,45.469091796875034]]],[[[-61.10517578124998,45.94472656250002],[-60.86523437499997,45.983496093750006],[-61.05903320312501,45.70336914062497],[-60.73789062499995,45.75141601562498],[-60.46059570312494,45.96870117187501],[-60.733300781249994,45.956591796875045],[-60.297949218750034,46.31123046874998],[-60.22646484374994,46.19555664062506],[-59.86503906249993,46.159521484375006],[-59.8421875,45.941552734374994],[-60.67294921874995,45.59082031250006],[-61.28369140624994,45.573876953124966],[-61.44980468749995,45.71621093750002],[-61.40864257812501,46.17036132812498],[-60.87016601562499,46.796777343749966],[-60.40820312500003,47.00351562499998],[-60.332910156249966,46.737011718749955],[-60.49453125000002,46.270263671875],[-61.10517578124998,45.94472656250002]]],[[[-63.811279296875,46.46870117187501],[-63.68144531249993,46.561914062499994],[-63.12939453125,46.422216796875034],[-62.02373046874999,46.42158203125001],[-62.52607421875001,46.20288085937503],[-62.531347656250034,45.977294921875],[-63.02207031249998,46.06660156249998],[-62.89453125000003,46.12358398437496],[-63.056347656249955,46.22392578124996],[-62.97846679687498,46.31635742187498],[-63.21347656249998,46.15986328124998],[-63.641015624999966,46.23046874999997],[-63.758642578125034,46.397607421874994],[-64.11083984375003,46.425439453124994],[-64.13603515624999,46.59970703125006],[-64.388037109375,46.640869140625],[-63.99355468750002,47.06157226562502],[-64.08789062499997,46.77543945312499],[-63.811279296875,46.46870117187501]]],[[[-61.91411132812496,47.284521484375034],[-61.77255859374998,47.25981445312499],[-62.00830078124994,47.23427734375002],[-61.924707031249966,47.425146484375006],[-61.3955078125,47.63764648437504],[-61.91411132812496,47.284521484375034]]],[[[-54.227148437500034,47.44135742187501],[-54.32597656250002,47.408105468749994],[-54.12817382812494,47.646826171875034],[-54.227148437500034,47.44135742187501]]],[[[-74.70888671874997,45.0038574218751],[-73.55810546875,45.425097656250045],[-73.1595703125,46.01005859375002],[-72.10927734374997,46.55122070312504],[-71.26118164062495,46.75625],[-70.51948242187501,47.032519531250045],[-69.47104492187503,47.96728515625006],[-68.23818359374994,48.62641601562504],[-66.17817382812493,49.21313476562503],[-64.83632812499994,49.191748046875006],[-64.2162109375,48.873632812500034],[-64.51372070312493,48.84111328124999],[-64.24609374999994,48.69111328124998],[-64.34882812500001,48.423193359375034],[-65.259423828125,48.02124023437503],[-65.92670898437495,48.188867187499994],[-66.70439453125002,48.0224609375],[-66.35961914062494,48.06064453125006],[-65.84941406250002,47.91103515625005],[-65.60722656249996,47.67001953125006],[-65.00166015624995,47.84682617187502],[-64.70322265625,47.72485351562503],[-64.91220703125003,47.36865234375003],[-65.31889648437502,47.101220703124994],[-64.831396484375,47.06079101562503],[-64.88251953124993,46.822851562500034],[-64.54150390625,46.240332031250034],[-63.91591796875002,46.165820312500045],[-63.831933593749966,46.107177734375],[-64.05639648437503,46.021337890625006],[-63.70288085937494,45.858007812500034],[-62.70068359374997,45.740576171875006],[-62.750097656250006,45.64824218750002],[-62.483056640624966,45.62182617187506],[-61.955517578124955,45.86816406249997],[-61.776513671874994,45.655615234375006],[-61.49228515624998,45.68701171875],[-61.350488281249966,45.57368164062501],[-61.28198242187494,45.441064453124994],[-61.46098632812502,45.36669921875003],[-61.03154296875002,45.29174804687506],[-63.306298828124994,44.64257812500003],[-63.60400390624997,44.68320312500006],[-63.60976562499999,44.47998046875006],[-63.999707031249926,44.64492187499999],[-64.10087890624993,44.487451171874966],[-64.1669921875,44.58666992187503],[-64.28608398437493,44.55034179687499],[-64.27568359374993,44.33408203124998],[-65.48168945312497,43.51806640625],[-65.73813476562498,43.56074218750001],[-65.88691406250001,43.79521484374999],[-66.125732421875,43.813818359375034],[-66.19306640624995,44.143847656250045],[-65.86801757812498,44.56879882812501],[-66.14638671875002,44.43593750000005],[-66.090625,44.50493164062499],[-64.44814453125,45.33745117187502],[-64.13549804687497,45.023046875],[-64.09316406249997,45.21708984375002],[-63.368017578125034,45.36479492187502],[-64.87314453124998,45.35458984375006],[-64.31464843749998,45.83569335937503],[-64.48222656250002,45.80634765624998],[-64.63271484375002,45.94663085937506],[-64.77851562499998,45.63842773437497],[-65.88447265624995,45.22290039062506],[-66.10976562500002,45.316601562499955],[-66.02656249999995,45.417578125],[-66.43984374999994,45.09589843750001],[-66.87246093749997,45.067285156249966],[-67.12485351562498,45.16943359375],[-67.366943359375,45.17377929687498],[-67.43266601562496,45.603125],[-67.80224609374994,45.7275390625],[-67.806787109375,47.08281249999999],[-68.23549804687502,47.34594726562503],[-68.93720703124998,47.21123046875002],[-69.0501953125,47.426611328125034],[-69.24287109374998,47.46298828124998],[-70.00771484375002,46.70893554687501],[-70.296240234375,45.90610351562506],[-70.86503906249999,45.27070312500001],[-71.327294921875,45.29008789062496],[-71.51752929687495,45.00756835937497],[-74.663232421875,45.00390625000003],[-74.70888671874997,45.0038574218751]]],[[[-126.09208984374995,49.35400390625003],[-126.06401367187499,49.26362304687501],[-126.22963867187498,49.29565429687506],[-126.09208984374995,49.35400390625003]]],[[[-54.55439453125001,49.5888671875],[-54.786523437499966,49.496142578125045],[-54.86357421875002,49.576074218749966],[-54.55439453125001,49.5888671875]]],[[[-54.093701171874955,49.74443359374999],[-53.98066406250001,49.66196289062498],[-54.28613281249997,49.595361328124994],[-54.27763671875002,49.71147460937502],[-54.093701171874955,49.74443359374999]]],[[[-126.64121093749999,49.605810546875006],[-126.93857421874999,49.71845703125004],[-126.92583007812497,49.837744140625006],[-126.73813476562502,49.84365234375005],[-126.64121093749999,49.605810546875006]]],[[[-61.801123046875034,49.093896484374966],[-63.04150390624994,49.224951171875034],[-64.485205078125,49.88696289062497],[-64.13144531249995,49.94165039062503],[-62.858544921874966,49.70546875000005],[-61.817138671875,49.28354492187498],[-61.69614257812495,49.139013671875006],[-61.801123046875034,49.093896484374966]]],[[[-125.18413085937497,50.09711914062498],[-125.301171875,50.4140625],[-125.07402343750002,50.22065429687501],[-125.18413085937497,50.09711914062498]]],[[[-127.19731445312495,50.640380859375],[-125.48208007812501,50.316796874999966],[-124.83061523437499,49.53007812500002],[-123.99580078125,49.22402343750002],[-123.49702148437498,48.58208007812499],[-123.38989257812501,48.67021484374999],[-123.31064453125003,48.41103515625002],[-123.57314453124995,48.32280273437499],[-123.91694335937501,48.386572265625034],[-125.12070312500002,48.76079101562496],[-124.84965820312496,49.02827148437501],[-124.81264648437497,49.212646484375],[-124.92734374999998,49.01420898437499],[-125.489453125,48.933789062499955],[-125.82851562499998,49.09184570312499],[-125.64423828125001,49.18579101562506],[-125.95166015625001,49.24804687500003],[-125.93540039062499,49.401464843750006],[-126.51914062499999,49.396777343750045],[-126.54189453125001,49.590478515624966],[-126.13408203124997,49.672314453124955],[-126.52524414062499,49.71958007812498],[-126.90332031250001,49.94414062499999],[-127.114306640625,49.879736328125034],[-127.24980468749999,50.13798828124996],[-127.34941406249995,50.05195312500001],[-127.46713867187503,50.163427734375006],[-127.86391601562495,50.12773437500002],[-127.90585937499998,50.44521484375002],[-127.48652343749998,50.404638671875034],[-127.46591796874996,50.58310546875006],[-128.05834960937494,50.498486328124955],[-128.34604492187503,50.744238281250006],[-127.91806640624998,50.86054687500001],[-127.19731445312495,50.640380859375]]],[[[-55.45874023437494,51.53652343750005],[-55.58339843749994,51.38857421875002],[-56.031103515625034,51.328369140625],[-55.8,51.033300781250034],[-56.732324218749966,50.007714843749994],[-56.822167968749966,49.613476562499955],[-56.179394531249955,50.114990234375],[-56.161279296874994,49.94013671874998],[-55.50292968749997,49.98315429687503],[-56.14018554687496,49.61914062500006],[-55.869824218749955,49.67016601562506],[-56.08730468750002,49.45195312499999],[-55.375927734374955,49.48974609374997],[-55.34384765624998,49.37290039062506],[-55.22954101562496,49.508154296875006],[-55.35317382812502,49.07944335937506],[-54.50219726562503,49.52734375],[-54.44824218749997,49.329443359375006],[-53.957714843749955,49.44184570312498],[-53.61943359374996,49.321630859375006],[-53.57343750000001,49.141210937500034],[-54.16127929687494,48.787695312500034],[-53.852880859375006,48.81132812499996],[-53.966015624999955,48.70668945312505],[-53.70634765624999,48.65551757812503],[-54.11445312499998,48.393603515625045],[-53.027587890625,48.634716796874955],[-53.1357421875,48.40185546875003],[-53.60976562500002,48.20771484375001],[-53.56943359374998,48.088085937499955],[-53.869580078124926,48.019677734374966],[-53.63823242187496,48.01464843750003],[-53.863671874999966,47.787011718749994],[-53.67236328125,47.64824218749999],[-53.28271484375,47.99785156249996],[-52.86601562499993,48.11298828124998],[-53.16982421875002,47.51210937500005],[-52.945019531249955,47.55283203124998],[-52.782421874999955,47.769433593749966],[-52.653662109375034,47.549414062500006],[-53.11484375,46.65581054687502],[-53.32304687499996,46.71835937499998],[-53.589794921874955,46.638867187499955],[-53.59736328124998,47.14599609374997],[-54.00957031249993,46.839599609375],[-54.173730468749994,46.88037109375003],[-53.84951171875002,47.440332031249994],[-53.98901367187503,47.756201171875034],[-54.191845703124955,47.85981445312501],[-54.488134765625006,47.40385742187502],[-54.47392578124996,47.54707031249998],[-54.856640624999955,47.385009765625],[-55.31572265624993,46.905712890624955],[-55.78852539062498,46.86723632812502],[-55.91923828124996,47.01689453124996],[-55.49150390624996,47.16064453125003],[-54.78461914062501,47.664746093749955],[-55.366308593750034,47.66108398437501],[-55.57612304687498,47.46523437499999],[-56.12724609374999,47.50283203125002],[-55.867089843749994,47.592333984375045],[-55.85791015625,47.81918945312498],[-56.774121093749955,47.56499023437499],[-58.33686523437501,47.73085937500002],[-59.11694335937494,47.57070312499999],[-59.32065429687498,47.736914062500006],[-59.272070312500034,47.99555664062504],[-58.330224609374994,48.52211914062502],[-59.16767578124998,48.558496093749966],[-58.84179687500003,48.74643554687498],[-58.906445312499955,48.65019531249999],[-58.716455078124994,48.59804687500002],[-58.403662109375034,49.08432617187498],[-57.99052734374996,48.987939453124966],[-58.09892578124993,49.07744140624999],[-57.98007812499998,49.229638671874994],[-58.19091796875003,49.25874023437498],[-58.21337890625,49.38666992187501],[-58.01582031249998,49.54248046874997],[-57.79130859374999,49.48999023437503],[-57.92617187499999,49.700830078124994],[-57.4326171875,50.50581054687504],[-57.179589843749966,50.614843750000034],[-57.29799804687502,50.69873046874997],[-57.03593750000002,51.01083984374998],[-56.68242187500002,51.332763671875],[-56.025585937499955,51.56835937500006],[-55.6904296875,51.471337890624994],[-55.666406249999966,51.57890624999999],[-55.45874023437494,51.53652343750005]]],[[[-127.92465820312498,51.47387695312497],[-128.14877929687498,51.62670898437503],[-128.03173828125006,51.708398437499966],[-127.92465820312498,51.47387695312497]]],[[[-79.38427734374997,51.951953125000045],[-79.64375,52.01005859374996],[-79.27128906249996,52.086816406249966],[-79.38427734374997,51.951953125000045]]],[[[-128.36875,52.40087890625],[-128.43979492187503,52.696386718750006],[-128.24726562499998,52.784375],[-128.36875,52.40087890625]]],[[[-80.73168945312494,52.74726562499998],[-82.03925781249998,53.04990234374998],[-81.84731445312494,53.18627929687497],[-81.135595703125,53.20581054687503],[-80.73168945312494,52.74726562499998]]],[[[-131.7537109375,53.195556640625],[-131.63466796874997,52.92216796874999],[-131.97177734374998,52.87983398437498],[-131.45522460937502,52.70170898437502],[-131.59057617187494,52.578222656250006],[-131.25971679687495,52.415917968749966],[-131.31992187499998,52.30307617187498],[-131.142626953125,52.291113281250034],[-131.221533203125,52.15361328124999],[-132.16508789062493,52.783300781250034],[-132.14375,52.99931640624999],[-132.54677734374997,53.1375],[-131.7537109375,53.195556640625]]],[[[-128.55244140624998,52.93974609375002],[-128.50991210937502,52.51860351562502],[-128.678955078125,52.289648437500006],[-128.74633789062494,52.763378906249955],[-128.89980468749997,52.67382812500003],[-129.175927734375,52.964941406250006],[-129.033251953125,53.27993164062505],[-128.63266601562498,53.1125],[-128.55244140624998,52.93974609375002]]],[[[-129.167724609375,53.11787109374998],[-129.32387695312502,53.142138671875045],[-129.23818359374997,53.33007812500006],[-129.167724609375,53.11787109374998]]],[[[-129.84858398437498,53.167919921874955],[-130.51757812500003,53.54423828124999],[-130.45200195312498,53.63115234375002],[-129.94472656250002,53.436376953125034],[-129.75483398437498,53.244775390624994],[-129.84858398437498,53.167919921874955]]],[[[-130.236279296875,53.95854492187502],[-130.38422851562504,53.84394531250001],[-130.703173828125,53.892236328124994],[-130.44799804687497,54.08901367187502],[-130.236279296875,53.95854492187502]]],[[[-132.65551757812503,54.12749023437496],[-132.30336914062497,54.098876953125],[-132.16611328124998,53.95522460937505],[-132.53466796875,53.651708984375034],[-132.18696289062504,53.68481445312503],[-132.134423828125,54.03427734374998],[-131.66762695312502,54.14135742187503],[-131.957421875,53.308691406250034],[-132.34726562500003,53.18920898437503],[-132.747509765625,53.310498046874955],[-132.425,53.33696289062502],[-132.84501953125,53.507714843749994],[-133.07949218749997,53.837011718750034],[-133.04838867187493,54.15893554687497],[-132.65551757812503,54.12749023437496]]],[[[-130.92714843749997,54.47905273437499],[-130.90683593750003,54.63178710937504],[-130.75800781249998,54.61376953125],[-130.92714843749997,54.47905273437499]]],[[[-130.57534179687497,54.769677734374966],[-130.2140625,55.02587890625003],[-130.34941406249996,54.814550781250034],[-130.57534179687497,54.769677734374966]]],[[[-79.97758789062499,56.20703125000006],[-80.057470703125,56.28735351562497],[-79.57973632812502,56.466357421875045],[-79.97758789062499,56.20703125000006]]],[[[-78.93559570312496,56.26606445312498],[-79.17548828124998,55.88505859374999],[-79.18212890625,56.21215820312503],[-79.4951171875,55.87475585937503],[-79.76474609374995,55.80678710937505],[-79.54472656249999,56.12836914062501],[-79.9875,55.89213867187502],[-79.45888671875,56.53974609374998],[-79.53632812499995,56.180078124999966],[-79.27241210937493,56.600439453125006],[-78.93559570312496,56.26606445312498]]],[[[-61.743603515624955,57.55458984375005],[-61.6375,57.41606445312499],[-62.01123046875003,57.54848632812505],[-61.743603515624955,57.55458984375005]]],[[[-79.71650390624998,57.515527343749994],[-79.80844726562498,57.44243164062502],[-79.74257812499997,57.60795898437499],[-79.71650390624998,57.515527343749994]]],[[[-69.16005859375,59.04023437500001],[-69.35283203125002,58.96074218749999],[-69.30322265625003,59.144873046875006],[-69.16005859375,59.04023437500001]]],[[[-64.40703125,60.367089843749966],[-64.44194335937496,60.2978515625],[-64.73793945312497,60.37563476562502],[-64.83642578124997,60.50102539062499],[-64.40703125,60.367089843749966]]],[[[-68.23378906250002,60.24091796875001],[-68.36787109374998,60.314746093750045],[-68.08759765624998,60.58784179687501],[-67.81884765624994,60.449511718750074],[-68.23378906250002,60.24091796875001]]],[[[-78.531640625,60.72856445312499],[-78.66889648437498,60.716894531250006],[-78.24169921875,60.818652343750045],[-78.531640625,60.72856445312499]]],[[[-64.83261718749998,61.366064453125006],[-65.43212890625,61.649511718750034],[-64.78964843750003,61.662207031250034],[-64.83261718749998,61.366064453125006]]],[[[-65.03056640624999,61.879052734374966],[-64.89658203124995,61.73330078125005],[-65.23535156249997,61.89770507812506],[-65.03056640624999,61.879052734374966]]],[[[-79.54531250000002,62.41171875000006],[-79.28647460937495,62.247656250000034],[-79.32392578124995,62.02607421875001],[-79.81611328124995,61.59462890625002],[-80.26518554687496,61.818212890625006],[-80.26005859374996,62.10903320312502],[-79.9267578125,62.39287109375002],[-79.54531250000002,62.41171875000006]]],[[[-64.82382812499998,62.558740234374994],[-64.46503906249998,62.535937500000045],[-64.47832031250002,62.417871093749966],[-64.901220703125,62.421044921874994],[-64.82382812499998,62.558740234374994]]],[[[-70.33706054687497,62.548730468749994],[-70.76606445312498,62.596875],[-71.22011718750002,62.873925781249966],[-70.44262695312497,62.73378906250002],[-70.33706054687497,62.548730468749994]]],[[[-82.00048828124997,62.95419921874998],[-82.02583007812498,62.73007812499998],[-82.56826171875002,62.403222656249994],[-83.01582031249998,62.20991210937498],[-83.69887695312497,62.16025390624998],[-83.91049804687498,62.45415039062499],[-83.37641601562498,62.904931640624994],[-82.00048828124997,62.95419921874998]]],[[[-77.87670898437497,63.470556640625034],[-77.53271484374997,63.233642578125],[-77.94243164062496,63.11440429687502],[-78.536767578125,63.423730468749994],[-77.87670898437497,63.470556640625034]]],[[[-76.67758789062503,63.393945312499966],[-77.36474609374994,63.588330078124955],[-77.13369140624997,63.68203125000002],[-76.65244140624998,63.503564453124994],[-76.67758789062503,63.393945312499966]]],[[[-84.91962890624995,65.26108398437503],[-84.50112304687497,65.45844726562501],[-84.08486328125,65.21782226562502],[-82.05,64.64428710937506],[-81.67612304687498,64.21264648437503],[-81.88710937499997,64.01640625000002],[-80.82895507812495,64.08994140625],[-80.30205078124999,63.76220703125003],[-81.04638671875003,63.461572265624966],[-82.378125,63.706787109375],[-82.46708984375002,63.92695312500001],[-83.30395507812497,64.14379882812506],[-84.63291015625,63.30922851562502],[-85.39262695312496,63.119677734375045],[-85.76894531249997,63.70034179687502],[-87.15190429687499,63.58564453125001],[-86.93203124999997,63.90166015625002],[-86.252099609375,64.13686523437497],[-86.37426757812503,64.56582031249997],[-86.074609375,65.533837890625],[-85.55468750000003,65.91865234374995],[-85.17622070312501,65.746875],[-85.23994140624993,65.51030273437499],[-84.91962890624995,65.26108398437503]]],[[[-84.67475585937498,65.575],[-85.096337890625,65.756201171875],[-85.14960937500001,66.01538085937506],[-84.75737304687496,65.85893554687505],[-84.67475585937498,65.575]]],[[[-83.72597656249997,65.796728515625],[-83.23374023437495,65.71503906249995],[-83.332421875,65.63105468749998],[-84.11826171874995,65.77177734375007],[-84.40717773437501,66.13100585937497],[-83.78696289062495,65.96577148437498],[-83.72597656249997,65.796728515625]]],[[[-108.09272460937501,67.00517578124999],[-107.80551757812493,66.99858398437507],[-107.94394531249999,66.8578125],[-108.09272460937501,67.00517578124999]]],[[[-62.681542968749966,67.05629882812502],[-62.87163085937499,67.06259765625006],[-62.41679687499996,67.18847656250003],[-62.681542968749966,67.05629882812502]]],[[[-107.89985351562497,67.40180664062495],[-107.95024414062503,67.31821289062498],[-108.15224609374997,67.429443359375],[-108.04897460937498,67.664892578125],[-107.89985351562497,67.40180664062495]]],[[[-73.621728515625,67.783837890625],[-74.573388671875,67.82866210937507],[-74.70654296875003,68.06708984374995],[-73.49375,68.00063476562502],[-73.40717773437498,67.79306640625],[-73.621728515625,67.783837890625]]],[[[-86.59555664062498,67.7359375],[-86.89252929687498,67.836572265625],[-86.95981445312503,68.10024414062497],[-86.70209960937501,68.30561523437498],[-86.42114257812497,68.18344726562503],[-86.59555664062498,67.7359375]]],[[[-75.67587890624998,68.32250976562506],[-75.078125,68.17314453124999],[-75.20195312499996,67.45917968750001],[-75.78007812499996,67.28354492187503],[-76.94418945312498,67.25029296875002],[-77.30439453125001,67.68510742187505],[-77.12587890624997,67.94707031250002],[-76.59580078124998,68.27895507812497],[-75.67587890624998,68.32250976562506]]],[[[-78.98271484374999,68.19282226562501],[-79.17475585937493,68.26445312500002],[-78.95258789062495,68.35302734375006],[-78.98271484374999,68.19282226562501]]],[[[-104.54067382812497,68.405908203125],[-105.05136718749999,68.55903320312501],[-104.60200195312503,68.56152343749997],[-104.54067382812497,68.405908203125]]],[[[-74.880859375,68.34868164062505],[-75.40024414062503,68.52548828125],[-75.28740234374996,68.68774414062503],[-74.98364257812497,68.64760742187502],[-74.880859375,68.34868164062505]]],[[[-101.84589843749994,68.58632812499997],[-102.30815429687497,68.681982421875],[-102.01337890624995,68.82539062500001],[-101.73295898437495,68.75341796875],[-101.84589843749994,68.58632812499997]]],[[[-100.21723632812497,68.80668945312502],[-100.59653320312496,68.76640625000007],[-100.56547851562495,69.02680664062501],[-100.21723632812497,68.80668945312502]]],[[[-99.99467773437502,69.01352539062503],[-100.19570312500002,68.991455078125],[-100.153125,69.12949218750003],[-99.99467773437502,69.01352539062503]]],[[[-79.21064453124995,68.845458984375],[-79.24267578125,69.04926757812495],[-78.33256835937496,69.38603515624999],[-78.77919921875,68.95048828124999],[-79.21064453124995,68.845458984375]]],[[[-90.1998046875,69.419091796875],[-90.33027343749993,69.252197265625],[-90.49204101562503,69.369873046875],[-90.1998046875,69.419091796875]]],[[[-76.99536132812503,69.14375],[-77.37939453125,69.2740234375],[-77.18754882812502,69.440087890625],[-76.66884765625002,69.36616210937504],[-76.99536132812503,69.14375]]],[[[-101.171728515625,69.39707031250003],[-101.31289062499998,69.57607421875],[-101.00063476562497,69.4619140625],[-101.171728515625,69.39707031250003]]],[[[-95.51367187499997,69.57363281250002],[-95.43745117187498,69.37846679687505],[-95.73012695312502,69.34755859374997],[-95.80620117187499,69.56049804687501],[-95.89345703125,69.35175781250004],[-95.87583007812495,69.60600585937505],[-95.51367187499997,69.57363281250002]]],[[[-67.91469726562494,69.54096679687504],[-68.22138671874998,69.61674804687502],[-67.908837890625,69.68183593749995],[-67.91469726562494,69.54096679687504]]],[[[-78.02910156249993,69.71489257812502],[-78.03999023437495,69.6083984375],[-78.84819335937502,69.4828125],[-78.02910156249993,69.71489257812502]]],[[[-79.43066406250003,69.78779296874995],[-79.55283203124995,69.63085937500006],[-80.04750976562502,69.63432617187505],[-79.97783203124993,69.50966796874997],[-80.794775390625,69.68925781250005],[-80.42421875000002,69.797607421875],[-79.43066406250003,69.78779296874995]]],[[[-97.439453125,69.64267578125006],[-96.29995117187494,69.34438476562505],[-95.7513671875,68.89765624999998],[-95.26777343749998,68.82607421874997],[-96.40156249999995,68.47070312500003],[-97.47202148437498,68.543701171875],[-98.320556640625,68.84272460937498],[-98.70380859374993,68.80278320312502],[-98.90449218749995,68.93242187500005],[-99.25400390625002,68.86318359374997],[-99.49467773437493,68.95957031249998],[-99.455712890625,69.13120117187503],[-98.45595703124997,69.33466796875001],[-98.54599609375,69.57290039062497],[-98.04135742187498,69.456640625],[-98.20048828124996,69.79697265625006],[-97.79072265624998,69.86162109374999],[-97.439453125,69.64267578125006]]],[[[-86.91303710937501,70.11323242187501],[-86.55766601562499,69.99531249999995],[-87.3232421875,70.08012695312502],[-86.91303710937501,70.11323242187501]]],[[[-74.70888671874997,45.0038574218751],[-74.76245117187494,44.99907226562502],[-74.99614257812496,44.970117187499966],[-75.40126953124997,44.77226562499999],[-75.81933593749997,44.468017578125],[-76.18579101562503,44.24223632812502],[-76.819970703125,43.62880859375011],[-77.59653320312492,43.62861328125007],[-78.45825195312497,43.63149414062511],[-78.72041015624993,43.62495117187501],[-78.84555664062492,43.58334960937506],[-79.171875,43.466552734375085],[-79.0830566406249,43.33139648437509],[-79.05922851562494,43.27807617187506],[-79.066064453125,43.10610351562502],[-79.02617187499996,43.01733398437506],[-78.98076171874993,42.98061523437502],[-78.91508789062496,42.90913085937504],[-79.17373046875,42.74853515625],[-80.24755859374991,42.366015625000045],[-81.02822265624997,42.247167968750006],[-81.50732421874997,42.10346679687504],[-81.97416992187496,41.88872070312499],[-82.43906249999989,41.6748535156251],[-82.69003906249995,41.675195312499994],[-83.141943359375,41.97587890624996],[-83.10952148437497,42.25068359375001],[-82.54531249999997,42.62470703124998],[-82.19038085937495,43.47407226562501],[-82.137841796875,43.570898437500034],[-82.48505859374993,45.08374023437503],[-82.55107421874987,45.3473632812501],[-82.91933593749994,45.51796875000002],[-83.59267578125,45.81713867187506],[-83.46948242187503,45.99467773437499],[-83.61596679687503,46.116845703124994],[-83.97778320312494,46.08491210937507],[-84.12319335937497,46.50292968749997],[-84.44047851562496,46.49814453125006],[-84.66577148437503,46.54326171875002],[-84.87597656249994,46.89990234375003],[-85.07006835937497,46.97993164062498],[-85.65224609375,47.21997070312503],[-86.67216796874996,47.636425781249955],[-87.20800781249997,47.848486328125006],[-87.74389648437497,48.06054687500003],[-88.37817382812497,48.30307617187506],[-89.45566406249992,47.99624023437508],[-90.79731445312495,48.13105468750001],[-91.04345703124991,48.19370117187498],[-91.38720703124997,48.05854492187498],[-92.00517578125002,48.301855468750006],[-92.3484375,48.276611328125],[-92.41459960937493,48.276611328125],[-92.50058593749995,48.43535156250002],[-92.83671875,48.567773437499994],[-93.25795898437497,48.62885742187501],[-93.37788085937498,48.61655273437498],[-93.70771484374995,48.525439453125074],[-93.85161132812496,48.607275390625034],[-94.6208984374999,48.7426269531251],[-94.71279296874997,48.863427734374994],[-94.80346679687497,49.0029296875],[-94.86040039062493,49.258593750000045],[-94.85434570312495,49.304589843749994],[-95.15527343749997,49.3696777343751],[-95.16206054687493,48.991748046875045],[-95.39790039062493,48.99316406249997],[-96.25068359374993,48.99316406249997],[-96.67705078124993,48.99316406249997],[-97.52983398437493,48.99316406249997],[-98.80898437499995,48.99316406249997],[-104.77832031249997,48.993115234375125],[-110.7476562499999,48.993066406250136],[-116.71704101562493,48.993066406250136],[-118.84892578124993,48.993066406250136],[-119.27534179687494,48.993066406250136],[-119.70170898437495,48.99301757812495],[-120.98085937499995,48.99301757812495],[-122.78876953124994,48.99301757812495],[-122.82670898437495,49.028417968750034],[-122.9241699218749,49.07465820312504],[-122.96269531249993,49.07460937500005],[-123.06328125,48.97773437500001],[-123.22944335937493,49.260498046875085],[-122.87910156249995,49.39892578125003],[-123.27675781249997,49.34394531250001],[-123.1875,49.680322265624994],[-123.53056640624989,49.39731445312506],[-124.02861328125002,49.602880859375006],[-123.99262695312497,49.736181640625006],[-123.81718749999993,49.58657226562508],[-123.58247070312498,49.68125],[-123.87441406250005,49.736816406250114],[-123.82543945312493,50.14423828124998],[-123.94589843749995,50.18393554687509],[-123.9849121093749,49.87558593749998],[-124.28125,49.77211914062502],[-124.78237304687492,50.02011718749992],[-125.05668945312495,50.418652343750125],[-124.8598632812499,50.872412109375006],[-125.05878906249993,50.51386718749998],[-125.4763183593749,50.49716796874995],[-125.53935546874996,50.64902343749998],[-125.64130859374994,50.46621093750005],[-126.09433593749995,50.497607421875045],[-126.44746093750004,50.58774414062492],[-125.90410156250002,50.704931640625006],[-126.51435546875,50.679394531250125],[-126.37460937499995,50.83735351562498],[-126.5217773437499,50.86606445312498],[-126.51733398437497,51.0568359375001],[-126.63178710937494,50.915136718750006],[-127.057568359375,50.86752929687509],[-127.70810546875,51.15117187499996],[-127.41967773437496,51.608056640625136],[-126.69145507812502,51.70341796875002],[-127.33872070312489,51.70737304687495],[-127.66870117187497,51.47758789062502],[-127.85053710937498,51.67319335937509],[-127.79536132812493,52.19101562500006],[-127.43793945312504,52.356152343750125],[-127.24223632812496,52.39511718750009],[-126.71396484374989,52.060693359374994],[-127.19399414062498,52.45766601562502],[-126.95136718749994,52.7510253906251],[-127.01933593750002,52.8424804687501],[-127.06621093749989,52.65268554687498],[-127.79189453124994,52.28935546875002],[-128.10224609374993,51.78842773437495],[-128.3576171875,52.1588867187501],[-128.0375,52.318164062500045],[-127.94023437499996,52.545166015625085],[-128.27153320312493,52.3629882812501],[-128.05327148437487,52.91069335937496],[-128.3650390624999,52.82578125000006],[-128.52470703125002,53.1406738281251],[-129.08090820312492,53.36728515625006],[-129.1715820312499,53.53359375000002],[-128.8545898437499,53.70454101562504],[-128.90561523437492,53.559326171875114],[-128.5421386718749,53.420654296875114],[-128.13271484375002,53.417773437500045],[-127.92783203125,53.274707031250045],[-128.2072265624999,53.483203125000074],[-128.67553710937494,53.55458984375005],[-128.76367187500003,53.746875],[-128.5321289062499,53.85810546875007],[-128.959375,53.84145507812505],[-129.2578613281249,53.417968750000085],[-129.56372070312506,53.251464843750114],[-130.33525390625002,53.723925781250074],[-130.04331054687495,54.13354492187503],[-129.62602539062493,54.23027343750002],[-130.08422851562503,54.18139648437503],[-130.4302734375,54.42099609374998],[-129.56064453124995,55.46254882812508],[-129.79516601562503,55.559570312500114],[-130.04848632812494,55.05727539062511],[-130.01406249999997,55.950537109375006],[-130.09785156249995,56.10927734375002],[-130.41313476562487,56.12250976562507],[-130.47709960937496,56.230566406250034],[-130.649072265625,56.26367187500003],[-131.471875,56.55673828125006],[-131.82426757812496,56.58999023437508],[-131.86616210937495,56.792822265625006],[-132.1042968749999,56.85678710937509],[-132.062890625,56.95336914062503],[-132.33798828124992,57.07944335937498],[-132.27939453124998,57.14536132812506],[-132.23217773437494,57.198535156250074],[-132.30166015625005,57.2763183593751],[-132.44248046874986,57.40673828125003],[-132.55048828124995,57.499902343749994],[-133.00141601562495,57.948974609375],[-133.27529296875,58.22285156250004],[-133.54638671874997,58.50346679687499],[-134.21850585937503,58.849902343750045],[-134.32963867187505,58.93969726562506],[-134.39306640625,59.009179687499994],[-134.67724609374997,59.19926757812499],[-134.94375,59.28828125000001],[-135.05102539062491,59.57866210937502],[-135.36787109374998,59.743310546874994],[-135.70258789062504,59.72875976562506],[-136.3218261718749,59.604833984375034],[-136.27797851562494,59.48032226562506],[-136.46635742187493,59.459082031250006],[-136.57875976562494,59.15224609375002],[-136.81328125000002,59.15004882812511],[-137.12622070312491,59.04096679687507],[-137.2775390624999,58.988183593749994],[-137.43857421874995,58.903125],[-137.52089843749994,58.91538085937506],[-137.59331054687493,59.22626953124998],[-138.317626953125,59.611132812500074],[-138.86875,59.94575195312501],[-139.18515624999986,60.083593750000034],[-139.13696289062494,60.17270507812506],[-139.07924804687497,60.279443359375136],[-139.07924804687497,60.3437011718751],[-139.23476562499997,60.339746093749994],[-139.67631835937505,60.32832031249998],[-139.97329101562497,60.183154296875074],[-140.45283203125004,60.29970703125002],[-140.5254394531249,60.21835937499995],[-140.76274414062505,60.25913085937509],[-141.00214843750004,60.300244140625125],[-141.00214843750004,60.884667968749994],[-141.00214843750004,61.761279296875045],[-141.00214843750004,63.22226562499998],[-141.00214843750004,64.09887695312506],[-141.00214843750004,65.55991210937498],[-141.00214843750004,66.43652343750006],[-141.00214843750004,67.89755859374998],[-141.00214843750004,68.77416992187506],[-141.00214843750004,69.65078125000011],[-139.18154296874997,69.51552734375008],[-137.25996093749998,68.96411132812503],[-136.12236328124993,68.88222656250002],[-135.258837890625,68.68432617187503],[-135.93901367187487,68.9741699218751],[-135.575537109375,69.02695312500003],[-135.91020507812487,69.11147460937502],[-135.6914550781249,69.31118164062502],[-135.29282226562486,69.30786132812506],[-135.1408203124999,69.46782226562496],[-134.45683593749993,69.47763671875],[-134.40893554687494,69.68178710937502],[-133.87978515624997,69.50771484375011],[-134.17431640624991,69.25283203125005],[-133.16313476562496,69.43388671874999],[-132.91533203125002,69.62963867187506],[-132.40390625,69.65874023437496],[-132.48847656249993,69.73808593749996],[-132.16342773437498,69.70498046875014],[-131.13637695312497,69.90688476562505],[-130.66547851562495,70.12705078124998],[-129.944970703125,70.09091796875006],[-129.675634765625,70.19296875000009],[-129.64829101562495,69.9977539062501],[-130.83208007812487,69.65146484375006],[-131.9377929687499,69.5347167968751],[-132.8174804687499,69.20576171875004],[-133.41831054687492,68.84428710937493],[-133.138037109375,68.74658203125011],[-133.33666992187497,68.83525390625005],[-132.57763671874997,68.84780273437514],[-132.71894531249998,69.07919921875],[-131.78837890625002,69.43198242187495],[-131.32470703124997,69.36118164062509],[-131.06342773437504,69.45068359375003],[-130.97065429687495,69.20908203125],[-130.1176269531249,69.720068359375],[-128.89892578124994,69.96616210937506],[-129.15791015624995,69.80009765624999],[-129.05434570312502,69.70107421875005],[-128.85302734375003,69.7510253906251],[-127.68378906249994,70.26035156249995],[-128.17011718749998,70.41845703125],[-127.99101562499992,70.57382812500003],[-127.22597656249992,70.29614257812497],[-126.25043945312495,69.54526367187492],[-125.52495117187495,69.35156250000009],[-125.171875,69.42797851562503],[-125.35693359374991,69.62597656250003],[-124.767919921875,69.99003906249996],[-124.99038085937494,70.02661132812511],[-124.55502929687488,70.15122070312509],[-124.40693359374991,69.76743164062506],[-124.12460937499995,69.6899902343751],[-124.33808593749991,69.36484374999995],[-123.5284179687499,69.38935546874995],[-123.02578125,69.81000976562504],[-122.07006835937499,69.81616210937506],[-120.96245117187502,69.66040039062511],[-120.13999023437488,69.38056640625013],[-117.22695312499998,68.913427734375],[-116.05947265625,68.83701171875006],[-116.2434082031249,68.9740722656251],[-115.44228515624994,68.94091796875009],[-114.62016601562496,68.74609375],[-113.96440429687495,68.39907226562502],[-114.09594726562491,68.26679687500007],[-114.76528320312494,68.27021484375004],[-115.12705078124992,68.13203124999995],[-115.43447265624994,67.90234375000006],[-115.13320312499994,67.819189453125],[-112.50302734374993,67.6819335937501],[-110.9900390624999,67.79082031250007],[-110.07392578124995,67.99291992187506],[-109.63037109374991,67.73271484374996],[-109.03803710937504,67.69116210937503],[-108.85200195312497,67.42197265625009],[-108.61333007812493,67.59804687500008],[-107.98872070312495,67.2563964843751],[-107.99130859374995,67.09516601562513],[-108.49604492187493,67.09228515625006],[-107.25947265624998,66.39853515624995],[-107.71035156250001,66.74003906250007],[-107.7250976562499,66.98413085937506],[-107.15649414062497,66.88173828124997],[-107.9583984375,67.81860351562506],[-107.79829101562498,68.03691406249996],[-106.42426757812491,68.20058593750008],[-105.7501953125,68.59228515625011],[-106.45805664062496,68.51645507812495],[-106.60849609374988,68.35737304687504],[-107.61933593749994,68.3310546875],[-107.73417968749989,68.17373046875011],[-108.3228027343749,68.15410156250002],[-108.71811523437488,68.29746093750009],[-108.31347656249996,68.61079101562498],[-106.16445312499992,68.91987304687507],[-105.68559570312489,68.82817382812505],[-105.3774414062499,68.413818359375],[-104.65317382812488,68.23007812500003],[-104.48681640624991,68.06318359374998],[-103.47412109374993,68.11503906250005],[-102.32036132812489,67.73564453125005],[-101.55498046874992,67.69316406250007],[-100.21293945312489,67.83857421875004],[-98.92045898437502,67.72578124999998],[-98.41210937499991,67.80717773437505],[-98.63154296875004,68.0725585937501],[-97.45493164062486,67.61699218750002],[-97.20654296874989,67.85507812500003],[-97.73911132812495,67.97817382812505],[-98.19252929687494,67.92299804687502],[-98.65048828124989,68.36352539062506],[-98.21855468750002,68.31743164062507],[-97.7942382812499,68.38759765625],[-97.9250976562499,68.523681640625],[-97.41035156249993,68.49653320312498],[-96.97670898437497,68.25541992187505],[-96.43066406249991,68.3105957031251],[-96.72207031250005,68.03876953124998],[-95.9703125,68.24912109375],[-96.36914062499991,67.50976562500003],[-96.14145507812489,67.27182617187503],[-95.71992187499998,67.31679687500014],[-95.77768554687495,67.18461914062505],[-95.41591796875005,67.15556640624999],[-95.41889648437504,67.01323242187493],[-96.42255859374995,67.05175781249997],[-95.7875488281249,66.616796875],[-96.03686523437489,66.9375],[-95.39965820312503,66.94946289062509],[-95.25874023437493,67.26254882812492],[-95.65048828124986,67.73745117187505],[-95.46069335937503,68.02138671875],[-94.74443359374993,68.07089843749995],[-93.44892578124998,68.61889648437503],[-93.85244140624994,69.00034179687495],[-94.06489257812495,68.78476562500006],[-94.600439453125,68.80322265625011],[-94.08364257812497,69.12309570312507],[-94.254736328125,69.31376953125002],[-93.61948242187492,69.41699218750009],[-93.74853515624991,69.2261230468751],[-93.5322753906249,69.48090820312495],[-94.2708007812499,69.45512695312505],[-94.63383789062496,69.64965820312506],[-94.82250976562494,69.577783203125],[-95.96494140624989,69.80278320312499],[-96.5513671875,70.21030273437506],[-96.29770507812492,70.51137695312511],[-95.87861328124998,70.54897460937514],[-95.88632812499986,70.69428710937507],[-96.25800781249993,70.64228515625013],[-96.54892578124995,70.80874023437511],[-96.44658203124996,71.23989257812502],[-96.06201171874997,71.41386718749993],[-95.5642578124999,71.33676757812503],[-95.40625,71.49165039062498],[-95.87231445312494,71.57314453125005],[-94.73486328124994,71.98295898437507],[-94.30834960937491,71.76489257812506],[-93.74628906249998,71.742822265625],[-92.94868164062493,71.26210937500011],[-92.98144531249994,70.8522460937501],[-91.56406249999995,70.1782714843751],[-92.32050781250004,70.2353515625],[-92.51186523437494,70.10385742187503],[-91.976708984375,70.03867187500009],[-92.88779296874989,69.66821289062511],[-92.31166992187494,69.67290039062499],[-91.91196289062495,69.53125],[-91.20180664062494,69.64477539062494],[-91.43994140624997,69.52568359375002],[-90.4155761718749,69.45698242187507],[-90.89228515625004,69.26728515624995],[-91.23720703125005,69.28554687500014],[-90.47900390624994,68.88115234374999],[-90.57363281250005,68.47470703124998],[-90.20478515625004,68.25747070312511],[-89.27954101562491,69.25546875000003],[-88.22353515625,68.91503906249997],[-87.81357421874986,68.34570312499997],[-87.89267578125,68.24814453125],[-88.34697265624993,68.28828125000001],[-88.313818359375,67.95034179687508],[-87.359375,67.17724609374997],[-86.56079101562491,67.48212890625007],[-85.64316406249992,68.69970703124997],[-84.86757812499994,68.77333984375005],[-85.10664062499995,68.84404296875007],[-84.86220703125,69.07397460937503],[-85.38676757812493,69.23188476562504],[-85.50737304687487,69.84526367187493],[-82.61835937499993,69.69106445312514],[-82.39023437499989,69.60087890625007],[-82.75483398437493,69.49438476562506],[-82.30986328124996,69.41000976562509],[-82.22753906249997,69.24887695312495],[-81.37783203125005,69.18564453125003],[-81.95791015624991,68.88364257812498],[-81.38090820312496,68.85004882812504],[-81.28154296874987,68.65722656250003],[-81.91484374999993,68.4587890625001],[-82.55268554687504,68.44648437500007],[-82.22241210937489,68.145263671875],[-82.0125,68.19389648437496],[-81.97646484374997,67.86201171875001],[-81.2943359375,67.497412109375],[-81.46757812499996,67.0698730468751],[-83.40644531249998,66.37124023437508],[-84.53847656249994,66.97280273437505],[-84.84575195312502,67.02871093750008],[-85.11372070312498,66.90693359375013],[-84.73774414062504,66.93359375000006],[-84.223046875,66.68247070312506],[-83.86904296875,66.2135742187501],[-84.29306640624995,66.29179687500005],[-84.628076171875,66.20771484374998],[-85.603857421875,66.56826171875005],[-86.708154296875,66.52304687500009],[-86.68510742187502,66.36040039062499],[-85.95874023437491,66.11904296875002],[-87.45288085937503,65.33896484375009],[-87.96997070312503,65.34892578124999],[-89.7494140625,65.93603515625006],[-89.88969726562487,65.86855468749997],[-91.42724609374994,65.94790039062497],[-91.04111328124989,65.82983398437509],[-90.98344726562496,65.91923828124999],[-89.92407226562497,65.78027343750011],[-88.97402343749994,65.34829101562502],[-87.02753906249995,65.19809570312498],[-88.10561523437497,64.18330078125001],[-88.81772460937489,63.99223632812499],[-89.20063476562493,64.11376953125006],[-89.13154296874998,63.96850585937494],[-89.61582031249995,64.030615234375],[-89.8113281249999,64.18056640625],[-90.04165039062494,64.14086914062509],[-89.85571289062497,63.9569824218751],[-90.16816406250004,63.978759765625085],[-90.15473632812498,63.68964843749998],[-90.81191406249991,63.580908203125034],[-91.98222656249996,63.82241210937502],[-92.33842773437496,63.787646484375045],[-93.69633789062493,64.14716796875013],[-93.55981445312491,63.865283203125074],[-93.27021484374998,63.840869140625074],[-93.37851562499992,63.94848632812497],[-92.15688476562491,63.691699218750045],[-92.46508789062491,63.55507812500011],[-91.84184570312496,63.69755859374999],[-90.97006835937489,63.442773437500136],[-90.69858398437492,63.06386718750005],[-91.44897460937503,62.804052734375034],[-92.3612792968749,62.81938476562496],[-91.93583984374993,62.59238281250009],[-92.55141601562491,62.546728515625034],[-92.76596679687492,62.34995117187509],[-92.52797851562494,62.16840820312504],[-93.20537109374993,62.364941406250125],[-92.90551757812503,62.21513671874996],[-93.3330566406249,61.93291015625002],[-93.58178710937494,61.94204101562511],[-93.31201171874997,61.76728515625004],[-93.91274414062497,61.48144531250006],[-94.509375,60.60454101562493],[-94.76171874999991,60.498242187500125],[-94.78828124999998,59.26787109374993],[-94.95732421874996,59.068847656250085],[-94.28706054687493,58.716015625000125],[-94.33222656249998,58.297363281250114],[-94.12319335937494,58.73671875000008],[-93.1787597656249,58.72563476562496],[-92.43281249999993,57.3203125],[-92.7981445312499,56.921972656250034],[-90.89746093750003,57.25693359375006],[-88.94848632812489,56.85131835937503],[-88.07509765624997,56.46728515624994],[-87.48242187499991,56.021289062500045],[-85.55932617187491,55.54018554687508],[-85.21801757812491,55.348974609375034],[-85.3652832031249,55.07929687499998],[-85.06093749999997,55.285644531250085],[-83.91059570312493,55.314648437499955],[-82.39326171874998,55.067822265625125],[-82.219384765625,54.8134765625],[-82.42416992187486,54.2445800781251],[-82.14145507812492,53.81762695312497],[-82.29155273437496,53.03071289062507],[-81.5994140624999,52.432617187500085],[-81.82788085937489,52.22421875000009],[-81.46621093749994,52.204492187500136],[-80.588037109375,51.667236328125114],[-80.4433105468749,51.38857421875002],[-80.85122070312497,51.125],[-80.47832031249993,51.30732421874998],[-80.10356445312487,51.282861328125136],[-79.34790039062494,50.76264648437504],[-79.737451171875,51.186279296875],[-79.33867187500002,51.62817382812497],[-79.04052734375003,51.46376953125005],[-78.90317382812495,51.200292968750034],[-78.73134765624994,51.497460937499994],[-78.98164062499993,51.774560546875136],[-78.44809570312495,52.26137695312502],[-78.74414062499994,52.65537109374998],[-79.10034179687497,53.65664062500005],[-78.99604492187493,54.00249023437499],[-79.241796875,54.098876953125085],[-79.14672851562491,54.16923828125002],[-79.71235351562495,54.6718261718751],[-77.77529296874994,55.291259765625],[-76.60405273437496,56.19956054687495],[-76.52558593749998,56.8917968750001],[-76.80981445312497,57.65795898437506],[-77.15678710937496,58.018896484375034],[-78.51508789062493,58.68237304687503],[-77.76069335937498,59.38002929687505],[-77.72617187499995,59.67587890624992],[-77.34907226562495,59.57895507812509],[-77.48530273437493,59.684570312500114],[-77.28920898437494,60.0220214843751],[-77.58588867187498,60.088183593750074],[-77.45288085937497,60.1458007812501],[-77.6814453124999,60.427099609375034],[-77.503564453125,60.54272460937497],[-77.7908203124999,60.63984375000004],[-77.58955078124993,60.808593750000114],[-78.18134765624995,60.81914062499996],[-77.51435546874998,61.55629882812505],[-78.02138671874997,61.8320800781251],[-78.13339843749986,62.28227539062496],[-77.372412109375,62.572509765625114],[-75.81689453124991,62.31586914062507],[-75.7898437499999,62.17958984375002],[-75.3412109375,62.312109375],[-74.63256835937497,62.115673828125125],[-74.6458007812499,62.21113281250004],[-73.70507812499991,62.47314453124994],[-72.68696289062498,62.12456054687499],[-72.771630859375,61.840429687500006],[-72.50556640624998,61.922656250000074],[-72.22612304687487,61.83159179687499],[-72.04003906249991,61.68027343750006],[-72.21586914062502,61.58725585937495],[-71.86611328125,61.68852539062499],[-71.63828124999995,61.6171875],[-71.85439453124991,61.43979492187492],[-71.42270507812489,61.158935546875085],[-70.27929687499991,61.06865234374999],[-69.99243164062491,60.8564941406251],[-69.50332031249994,61.04042968750011],[-69.40473632812493,60.84677734375009],[-69.75947265624998,60.440234375000045],[-69.67373046874994,60.07587890625007],[-70.65483398437496,60.02622070312506],[-69.73393554687493,59.918017578125045],[-69.68188476562489,59.34174804687507],[-69.3440429687499,59.303076171875006],[-69.53164062499994,58.86923828125009],[-69.64838867187493,58.82080078125],[-69.78417968749994,58.95571289062511],[-70.15434570312496,58.76059570312498],[-69.78989257812486,58.689306640625034],[-69.27109374999986,58.88393554687505],[-68.69819335937495,58.904541015625],[-68.38115234374993,58.74350585937506],[-68.22939453124994,58.48457031250007],[-68.35654296874989,58.163232421875136],[-69.04082031249996,57.902490234375136],[-68.41357421874997,58.0517578125],[-68.02104492187493,58.48530273437504],[-67.88828124999989,58.29575195312495],[-68.06386718750005,58.13896484374999],[-67.75595703124992,58.4045898437501],[-67.6782714843749,57.99111328125008],[-67.5696289062499,58.21347656250006],[-66.72216796874991,58.49101562499996],[-66.36240234374989,58.791162109374994],[-66.0023925781249,58.43120117187502],[-66.04306640624995,58.82065429687495],[-65.72099609374996,59.02377929687495],[-65.38354492187494,59.06020507812508],[-65.7,59.21333007812501],[-65.4117187499999,59.31499023437496],[-65.47509765624994,59.47031249999998],[-65.03823242187494,59.38789062500007],[-65.40742187499993,59.53935546875002],[-65.4333984374999,59.776513671874994],[-65.02817382812495,59.77070312500007],[-65.17172851562489,59.90800781249996],[-64.81733398437498,60.3310546875],[-64.49941406250005,60.26826171875001],[-64.41958007812494,60.17138671874997],[-64.76845703124997,60.01210937500005],[-64.28349609374993,60.06406249999998],[-64.22631835937491,59.741210937500085],[-64.05605468750005,59.82255859374996],[-63.7501953124999,59.51259765625005],[-63.945458984374994,59.380175781250074],[-63.775878906249915,59.277148437500045],[-63.539892578124864,59.332861328125034],[-63.41513671874995,59.194384765625074],[-63.97114257812498,59.053808593750034],[-63.24843749999991,59.068310546874955],[-63.28212890624994,58.86738281250007],[-63.05029296874997,58.87817382812494],[-62.87387695312489,58.67246093749998],[-63.537060546874926,58.329931640625006],[-63.209960937499886,58.46694335937502],[-62.593847656249864,58.47402343750005],[-62.81206054687502,58.20039062500007],[-63.26152343749993,58.014697265625074],[-62.486230468749966,58.15405273437506],[-62.30566406249997,57.97226562499995],[-61.95864257812505,57.91176757812508],[-61.9679687499999,57.61191406250009],[-62.495556640624926,57.489208984375125],[-61.92114257812497,57.42080078125005],[-61.977441406249966,57.24794921875002],[-61.33374023437494,57.01059570312498],[-61.37163085937502,56.68081054687511],[-62.497265624999926,56.80170898437504],[-61.73774414062498,56.52602539062502],[-61.940429687499886,56.423583984375114],[-61.42529296874994,56.360644531250074],[-61.713085937499955,56.230957031250114],[-61.364697265624926,56.2160156250001],[-61.30112304687495,56.04716796874999],[-61.4495117187499,55.99570312499998],[-61.08935546874997,55.86635742187511],[-60.74326171874989,55.94145507812493],[-60.56210937499995,55.727001953125125],[-60.341015624999926,55.78466796874997],[-60.40830078124995,55.649560546874994],[-60.19238281249994,55.4809082031251],[-60.617138671874955,55.060205078124994],[-59.75878906249997,55.3095703125],[-59.68906249999989,55.19633789062502],[-59.43789062500005,55.175927734375136],[-59.837792968749994,54.813964843750114],[-59.25957031249996,55.19995117187506],[-58.99711914062496,55.149462890625074],[-58.780175781249994,54.838378906250114],[-58.39814453124998,54.77412109374998],[-57.96245117187493,54.875732421875085],[-57.40449218750004,54.59086914062496],[-57.69926757812496,54.38657226562506],[-58.435205078124966,54.228125],[-58.63320312499999,54.04956054687497],[-59.8230468749999,53.83442382812504],[-60.14492187499994,53.59614257812498],[-60.395410156249994,53.653320312500085],[-60.1002929687499,53.48696289062511],[-60.329492187499966,53.26611328125006],[-58.652050781249926,53.97788085937495],[-57.935986328124955,54.09116210937492],[-58.31748046874989,54.11445312500007],[-58.192089843749926,54.228173828125136],[-57.4160644531249,54.162744140625136],[-57.134960937499926,53.79184570312506],[-57.524072265624966,53.61142578125006],[-57.331738281249955,53.469091796875034],[-56.84086914062496,53.73945312500004],[-56.46499023437505,53.76503906250011],[-55.96611328125002,53.4711425781251],[-55.79794921874995,53.211962890625045],[-55.80283203124989,52.64316406249998],[-56.324902343749926,52.54453124999998],[-55.74648437499994,52.4745605468751],[-55.7771484374999,52.3642578125],[-56.01171874999997,52.394482421875125],[-55.695214843749994,52.13779296875006],[-56.97597656250005,51.45766601562505],[-58.510351562500006,51.295068359375136],[-59.88632812499992,50.316406250000085],[-61.72485351562503,50.10405273437499],[-61.91953124999989,50.2328613281251],[-62.71542968749995,50.30166015625008],[-66.49550781249991,50.2118652343751],[-66.94116210937503,49.993701171875045],[-67.37202148437495,49.348437500000045],[-68.28193359374998,49.197167968750136],[-69.67387695312496,48.19916992187504],[-71.01826171874993,48.455615234375045],[-69.86552734374993,48.17226562500005],[-69.775,48.09809570312504],[-69.9944335937499,47.73989257812508],[-70.70585937499996,47.13979492187505],[-71.26777343749995,46.79594726562499],[-71.87958984374998,46.68681640624996],[-72.98100585937493,46.209716796875085],[-73.4766113281249,45.738232421874955],[-74.03784179687494,45.501855468750136],[-74.31508789062494,45.531054687500045],[-73.97382812499995,45.345117187499994],[-74.70888671874997,45.0038574218751]]],[[[-96.78232421874998,72.93662109375],[-97.0927734375,72.99692382812503],[-96.86240234374995,73.18881835937506],[-96.78232421874998,72.93662109375]]],[[[-114.52153320312502,72.592919921875],[-113.57807617187501,72.65209960937506],[-113.2923828125,72.94980468750003],[-112.75361328125001,72.98603515624995],[-111.26972656249994,72.71372070312498],[-111.895166015625,72.35610351562497],[-111.67509765625002,72.30014648437503],[-110.20512695312495,72.66127929687497],[-110.66083984374998,73.00820312500002],[-110.00844726562494,72.983642578125],[-108.75498046875002,72.55107421874999],[-108.18823242187501,71.72377929687502],[-107.812841796875,71.62617187500004],[-107.30600585937496,71.89467773437502],[-108.23740234374999,73.14990234375003],[-108.029052734375,73.34873046875003],[-106.48212890624998,73.19619140624997],[-105.41513671874995,72.788330078125],[-104.38593749999997,71.57695312500005],[-104.51479492187502,71.06425781250005],[-103.58457031249995,70.63085937500003],[-103.07719726562497,70.50883789062505],[-103.04956054687503,70.65507812499999],[-101.67631835937495,70.27827148437495],[-101.56240234375001,70.135009765625],[-101.04267578125,70.11079101562504],[-100.98237304687497,69.67988281250001],[-101.483837890625,69.85019531250006],[-101.64765624999997,69.69853515625007],[-102.18212890624997,69.845947265625],[-102.59589843749997,69.71791992187502],[-102.62109374999996,69.55151367187506],[-103.464892578125,69.64448242187498],[-103.04892578124999,69.47177734375006],[-103.12021484374995,69.20458984374997],[-102.44677734374997,69.476318359375],[-102.04594726562493,69.46484374999997],[-101.85712890625001,69.02397460937505],[-102.89506835937499,68.8236328125],[-104.57143554687501,68.87211914062502],[-105.105859375,68.92041015625],[-105.019580078125,69.08125],[-106.27016601562497,69.19458007812497],[-106.65908203124997,69.439599609375],[-107.43989257812497,69.00214843749995],[-108.36499023437497,68.93476562499998],[-109.47211914062501,68.67670898437498],[-113.12773437500002,68.49414062500003],[-113.61684570312501,68.8384765625],[-113.69414062499995,69.19501953124998],[-115.61811523437495,69.28295898437506],[-116.51347656249993,69.42460937500005],[-117.19541015624995,70.05405273437503],[-114.59233398437497,70.31245117187498],[-112.63789062499997,70.225244140625],[-111.63256835937497,70.30883789062497],[-113.75727539062503,70.69072265625005],[-115.99091796874997,70.586279296875],[-117.58706054687498,70.62954101562502],[-118.2640625,70.888330078125],[-118.26909179687493,71.03471679687505],[-115.30341796874997,71.49370117187505],[-117.93564453125003,71.39208984375003],[-118.22646484374995,71.46708984375005],[-117.742333984375,71.65932617187502],[-118.58300781250003,71.64902343749998],[-118.98769531249997,71.7642578125],[-118.94462890624997,71.98554687499995],[-118.21347656249998,72.26289062499998],[-118.481298828125,72.42768554687498],[-118.13310546874995,72.63281250000003],[-114.63823242187499,73.37265625000003],[-114.20639648437495,73.29780273437495],[-114.05170898437497,73.07099609375004],[-114.52153320312502,72.592919921875]]],[[[-105.28891601562499,72.919921875],[-106.92153320312497,73.479833984375],[-106.61396484375001,73.69560546875002],[-105.31796874999995,73.76713867187502],[-104.5875,73.57807617187495],[-104.62172851562495,73.3111328125],[-105.28891601562499,72.919921875]]],[[[-79.53730468749998,73.65449218749998],[-78.2865234375,73.66582031250007],[-77.20654296874997,73.49956054687505],[-76.18339843749999,72.84306640625005],[-77.83593750000003,72.89682617187498],[-79.3193359375,72.75771484375],[-79.820703125,72.82631835937502],[-80.18330078124995,73.22465820312499],[-80.77641601562502,73.33417968750001],[-80.84887695312503,73.72124023437499],[-79.53730468749998,73.65449218749998]]],[[[-86.58935546874997,71.01079101562507],[-85.64384765624999,71.15244140624998],[-85.09487304687497,71.15195312500006],[-84.82373046874997,71.02861328125005],[-84.69941406249995,71.63144531250003],[-85.33906249999998,71.69726562500003],[-85.91162109375,71.98652343749998],[-85.321875,72.23315429687506],[-84.28374023437499,72.04448242187499],[-84.84199218749995,72.30815429687505],[-84.62304687500003,72.37656250000003],[-85.34111328124993,72.42153320312497],[-85.64990234374997,72.72216796875003],[-85.26210937500002,72.95400390625],[-84.25664062499999,72.79672851562503],[-85.454736328125,73.10546875000003],[-84.41606445312496,73.45649414062495],[-83.781884765625,73.41689453125],[-83.72983398437495,73.57587890624995],[-81.946142578125,73.72983398437506],[-81.40615234374997,73.634521484375],[-80.27724609375,72.77016601562502],[-81.229345703125,72.31171874999998],[-80.61147460937497,72.450830078125],[-80.925146484375,71.90766601562501],[-80.18193359374996,72.20878906250007],[-79.884375,72.17719726562501],[-80.10893554687499,72.33217773437497],[-79.83129882812503,72.44628906250003],[-79.000244140625,72.27202148437507],[-79.00781250000003,72.04291992187501],[-78.58510742187497,71.880615234375],[-78.86274414062495,72.100830078125],[-78.69926757812496,72.35141601562498],[-77.51650390624997,72.17778320312505],[-78.48427734374994,72.47060546875002],[-77.75322265624996,72.72475585937502],[-75.70429687499998,72.57153320312497],[-75.05268554687493,72.22636718749999],[-75.92280273437501,71.71723632812501],[-74.90317382812503,72.10048828125002],[-74.20932617187498,71.978662109375],[-74.31572265624999,71.84267578125],[-75.20478515625001,71.70913085937497],[-74.70078125,71.67558593750005],[-74.99619140624998,71.21811523437503],[-74.48808593750002,71.64838867187501],[-73.8140625,71.77143554687495],[-74.197265625,71.404150390625],[-73.71284179687498,71.58759765624998],[-73.18061523437501,71.282861328125],[-73.27822265625,71.53798828125],[-72.901953125,71.67778320312507],[-71.64067382812499,71.51625976562502],[-71.22939453124997,71.33876953125],[-71.49501953124997,71.10512695312502],[-71.93793945312498,71.09428710937502],[-72.63271484374994,70.83076171874998],[-71.74252929687495,71.046875],[-71.370849609375,70.97514648437499],[-70.82607421874994,71.10874023437503],[-70.67265625,71.05219726562498],[-70.76171874999997,70.79223632812503],[-71.89018554687502,70.43154296875002],[-71.27587890625,70.50029296874999],[-71.42944335937503,70.12778320312503],[-70.97978515624999,70.5810546875],[-69.94980468750003,70.84501953125005],[-68.49575195312502,70.61025390625],[-68.363525390625,70.48125],[-70.05771484375,70.042626953125],[-68.77822265625,70.20356445312501],[-69.00830078124997,69.97895507812501],[-68.74404296874997,69.94140625],[-68.05908203124997,70.317236328125],[-67.36367187499994,70.03442382812503],[-67.22163085937495,69.73071289062506],[-68.02041015625,69.77006835937499],[-69.25078124999999,69.51191406249998],[-68.51303710937498,69.57729492187497],[-67.236962890625,69.460107421875],[-66.71674804687495,69.31186523437498],[-66.70742187500002,69.16821289062503],[-68.40629882812499,69.23222656250002],[-69.040625,69.09799804687503],[-68.41552734375,69.17207031250001],[-67.8326171875,69.06596679687499],[-67.88320312500002,68.78398437499999],[-69.31909179687497,68.85698242187505],[-68.21040039062495,68.702978515625],[-67.9384765625,68.524169921875],[-66.74272460937502,68.45776367187497],[-67.032958984375,68.32607421874997],[-66.923095703125,68.06572265625005],[-66.72900390624997,68.12900390625006],[-66.66269531249995,68.03442382812497],[-66.63095703124998,68.21064453124998],[-66.21240234374997,68.280419921875],[-66.44394531249998,67.83383789062506],[-65.94238281250003,68.07094726562505],[-65.86435546875003,67.92285156249997],[-65.50908203124996,67.96826171875],[-65.40126953125002,67.67485351562499],[-65.41533203124996,67.87924804687498],[-64.92231445312495,68.03164062500002],[-65.02109375,67.78754882812495],[-64.63779296875,67.84023437500002],[-63.850195312500034,67.56606445312502],[-64.00795898437502,67.34731445312497],[-64.69995117187494,67.35053710937501],[-63.83623046874993,67.26411132812498],[-63.59160156250002,67.3775390625],[-63.040136718750034,67.235009765625],[-63.70156249999994,66.82236328125003],[-62.962304687499966,66.94926757812505],[-62.37973632812495,66.90537109375],[-62.12358398437499,67.046728515625],[-61.35341796874994,66.689208984375],[-61.52783203124994,66.55810546875003],[-62.12333984374993,66.64306640625003],[-61.57080078125,66.37290039062506],[-61.95634765624993,66.30932617187497],[-62.553125,66.40683593750003],[-62.53359374999994,66.22700195312498],[-61.99160156250002,66.03530273437502],[-62.624121093750006,66.01625976562505],[-62.381982421874966,65.83330078124999],[-62.65888671874998,65.63994140625002],[-63.16894531249997,65.65732421875],[-63.45874023437494,65.85302734375],[-63.42089843749997,65.70859374999998],[-63.651074218749955,65.66098632812506],[-63.33745117187493,65.61674804687502],[-63.36337890624998,65.22973632812503],[-63.606591796874966,64.92807617187503],[-64.345703125,65.17241210937499],[-64.26967773437497,65.40078124999997],[-64.55507812500002,65.1166015625],[-65.401611328125,65.764013671875],[-64.44536132812496,66.31713867187497],[-65.0044921875,66.07773437500003],[-65.82573242187499,65.996923828125],[-65.65634765625003,66.204736328125],[-66.06372070312497,66.13271484374997],[-66.986328125,66.62749023437505],[-67.07685546874995,66.52548828125006],[-67.30732421874993,66.5697265625],[-67.22539062499993,66.31025390624998],[-67.88339843749995,66.46743164062502],[-67.18320312499995,66.03442382812503],[-67.350439453125,65.92973632812502],[-67.82802734374997,65.96518554687503],[-68.45991210937498,66.249267578125],[-68.74892578125,66.200048828125],[-68.21718750000002,66.078857421875],[-68.18671874999993,65.87099609375002],[-67.86645507812497,65.773681640625],[-67.936767578125,65.56489257812501],[-67.56962890624999,65.64355468749997],[-67.11796874999999,65.44038085937495],[-67.3365234375,65.34658203125005],[-66.69741210937502,64.81518554687506],[-66.63549804687503,65.00034179687503],[-66.21464843749999,64.72241210937497],[-65.93852539062496,64.88574218750003],[-65.2748046875,64.63154296875004],[-65.52934570312499,64.50478515624997],[-65.074609375,64.43666992187502],[-65.21298828125003,64.30327148437502],[-65.580322265625,64.29384765624997],[-65.16987304687495,64.02817382812503],[-64.67846679687503,64.027978515625],[-64.79814453124999,63.91596679687498],[-64.4109375,63.70634765625002],[-64.66464843749995,63.24536132812497],[-65.19184570312498,63.764257812500006],[-65.06894531249998,63.26347656250002],[-64.67236328125003,62.921972656250006],[-65.16279296875001,62.93261718750003],[-65.10849609374998,62.62646484375],[-66.22402343749994,63.10717773437497],[-66.228662109375,62.99096679687503],[-66.41445312500002,63.027197265625034],[-66.65498046874998,63.264746093750006],[-66.69746093749993,63.069531249999955],[-67.89326171874993,63.733740234375006],[-67.72255859374997,63.422753906249966],[-68.49375,63.725488281249994],[-68.91108398437498,63.703222656250006],[-68.141259765625,63.17231445312501],[-67.67597656249998,63.093554687500045],[-67.73696289062497,63.00957031249999],[-65.98017578125001,62.20888671875002],[-66.12387695312498,61.89306640625],[-68.53588867187503,62.25561523437506],[-69.12558593749998,62.423974609374966],[-69.604736328125,62.76772460937502],[-70.23613281250002,62.76337890625001],[-70.801416015625,62.91049804687506],[-71.10576171874999,63.00224609375002],[-70.94604492187497,63.12070312499998],[-71.34726562499998,63.066113281249955],[-71.99223632812493,63.41616210937505],[-71.380859375,63.580322265625],[-72.29013671874995,63.72797851562498],[-72.17426757812498,63.893408203125006],[-72.49843749999994,63.82348632812497],[-73.45454101562495,64.39926757812503],[-73.27128906250002,64.58251953125],[-73.91035156249998,64.578125],[-74.064794921875,64.42465820312498],[-74.13046874999998,64.6078125],[-74.46123046874996,64.64467773437505],[-74.68139648437497,64.8306640625],[-74.91943359374997,64.76552734374997],[-74.69472656250002,64.49658203124997],[-75.71503906249995,64.52436523437495],[-75.76669921875,64.39194335937498],[-76.85615234374998,64.23764648437498],[-77.76049804687503,64.36015624999999],[-78.04521484374993,64.499267578125],[-78.09560546875,64.93925781250002],[-77.36088867187496,65.19653320312503],[-77.32670898437493,65.453125],[-75.82832031249993,65.22705078125003],[-75.45209960937495,64.84160156250002],[-75.35712890624995,65.00874023437495],[-75.79868164062503,65.297509765625],[-75.16630859374999,65.28393554687497],[-74.13847656250002,65.50346679687502],[-73.55078125000003,65.48525390625005],[-74.41640624999997,66.16708984375003],[-73.03325195312502,66.72817382812505],[-72.78881835937494,67.030615234375],[-72.22001953124999,67.25429687500002],[-73.28447265624993,68.35698242187505],[-73.82050781249998,68.36293945312502],[-73.82211914062495,68.68598632812501],[-74.11796875000002,68.70092773437506],[-73.9892578125,68.54863281250002],[-74.2701171875,68.54121093750001],[-74.89296875,68.80815429687505],[-74.71669921874997,69.04550781249998],[-76.58505859375,68.69873046875003],[-76.55722656250003,69.00947265625001],[-75.9537109375,69.03081054687502],[-75.64775390625002,69.212548828125],[-76.46494140624995,69.46943359375001],[-76.23408203125001,69.66210937500003],[-76.742333984375,69.57290039062497],[-77.08994140625,69.63510742187503],[-76.85859374999995,69.775390625],[-77.591650390625,69.84560546875002],[-77.77402343750003,70.23852539062503],[-78.28281250000003,70.229150390625],[-79.06640624999997,70.60356445312507],[-79.40522460937498,70.40073242187503],[-78.86284179687499,70.24189453125001],[-78.88964843750003,69.97749023437495],[-79.51542968749996,69.88759765625005],[-81.65195312500003,70.09462890625002],[-80.92172851562503,69.73090820312501],[-81.56469726562503,69.94272460937498],[-82.29384765624997,69.83691406250003],[-83.14995117187493,70.00908203125002],[-83.85908203124998,69.96274414062498],[-85.43237304687497,70.11137695312507],[-85.780029296875,70.03666992187505],[-86.32202148437503,70.14541015625],[-86.396875,70.46533203124997],[-87.838134765625,70.24658203125],[-88.78271484374997,70.49448242187503],[-89.45590820312498,71.06171874999995],[-87.84492187499995,70.94438476562505],[-87.14008789062498,71.01162109374997],[-89.80537109374993,71.46230468750005],[-89.86152343750001,72.41191406250005],[-88.70517578124998,73.40327148437495],[-87.71977539062496,73.72290039062497],[-85.95078124999998,73.85014648437505],[-84.94677734375,73.72163085937498],[-86.00053710937499,73.31254882812505],[-86.65629882812502,72.72402343750005],[-86.21845703124998,71.89912109375004],[-85.02338867187495,71.35322265625001],[-86.58935546874997,71.01079101562507]]],[[[-100.00190429687497,73.9458984375],[-99.15795898437499,73.73159179687497],[-97.66997070312499,73.88774414062499],[-97.1705078125,73.82485351562497],[-97.001708984375,73.66650390625003],[-97.62587890624997,73.50229492187498],[-97.27250976562502,73.38681640624998],[-98.42177734375002,72.94101562500003],[-97.63632812499998,73.02763671874999],[-97.128125,72.62758789062502],[-96.59208984374996,72.71025390624999],[-96.44560546874996,72.55244140624998],[-96.80146484374998,72.32241210937502],[-96.61342773437494,71.83383789062506],[-97.58227539062497,71.62968750000005],[-98.18134765624998,71.66245117187503],[-98.32270507812501,71.85234375000002],[-98.19863281249994,71.44086914062501],[-98.66289062499993,71.302099609375],[-99.22363281249996,71.387109375],[-100.594482421875,72.15234375000003],[-101.20854492187495,72.31699218749998],[-101.72392578124996,72.31489257812501],[-102.70874023437496,72.76450195312503],[-102.20400390624998,73.077294921875],[-101.27319335937497,72.7216796875],[-100.48476562500002,72.77294921874997],[-100.395703125,72.97700195312498],[-100.128125,72.90668945312495],[-100.53637695312497,73.19785156250003],[-99.82514648437503,73.2138671875],[-100.36611328125001,73.359033203125],[-100.88935546875003,73.27534179687501],[-101.52319335937501,73.48637695312502],[-100.97578124999995,73.59975585937502],[-100.5216796875,73.44931640625],[-100.96298828125002,73.79140625],[-99.99111328125,73.79516601562503],[-100.00190429687497,73.9458984375]]],[[[-98.270361328125,73.86850585937498],[-98.97392578124997,73.81206054687502],[-99.4169921875,73.89541015625002],[-97.69824218749997,74.10869140625005],[-98.270361328125,73.86850585937498]]],[[[-93.17084960937498,74.16098632812506],[-92.22270507812502,73.97236328124998],[-90.62744140625,73.95170898437505],[-90.38139648437496,73.82475585937502],[-92.11791992187497,72.75380859375],[-94.21132812499997,72.75693359375],[-93.77055664062496,72.66821289062506],[-93.55517578124994,72.42114257812497],[-94.03754882812498,72.02875976562498],[-95.00786132812496,72.01279296875],[-95.60214843749998,72.88447265624995],[-95.63291015625003,73.69545898437497],[-94.697607421875,73.66357421874997],[-95.134130859375,73.88125],[-94.97353515625,74.04140625000002],[-93.17084960937498,74.16098632812506]]],[[[-119.73632812499997,74.11264648437498],[-119.20595703125002,74.19799804687503],[-119.11796874999995,74.01552734375],[-118.54399414062499,74.24462890625003],[-117.51484375000001,74.23173828124999],[-115.51069335937501,73.61875],[-115.446875,73.43886718750002],[-118.96157226562497,72.68413085937499],[-119.51284179687501,72.30268554687501],[-120.17988281250001,72.21264648437506],[-120.61933593750001,71.50576171875002],[-121.47216796875003,71.38901367187503],[-121.74936523437502,71.44477539062501],[-123.09565429687503,71.09379882812502],[-124.00776367187494,71.67744140624998],[-125.29667968749999,71.973046875],[-125.84531250000002,71.978662109375],[-123.79726562499997,73.76816406250003],[-124.69624023437497,74.34819335937499],[-121.50415039062497,74.54511718749998],[-119.56264648437494,74.23281250000002],[-119.73632812499997,74.11264648437498]]],[[[-97.35551757812496,74.52631835937495],[-97.75,74.51054687500005],[-97.41650390624994,74.62656250000003],[-97.35551757812496,74.52631835937495]]],[[[-95.306640625,74.50541992187505],[-95.850732421875,74.58247070312504],[-95.51020507812498,74.63676757812499],[-95.306640625,74.50541992187505]]],[[[-104.11992187499995,75.03632812500004],[-104.88740234374998,75.14775390624999],[-104.34619140624996,75.42993164062503],[-103.64350585937497,75.18657226562499],[-104.11992187499995,75.03632812500004]]],[[[-93.54257812499995,75.0279296875],[-93.57309570312495,74.66884765625005],[-94.53452148437498,74.63671874999997],[-96.59960937499997,75.03178710937499],[-95.95463867187493,75.44379882812501],[-94.878173828125,75.63002929687502],[-93.90908203125002,75.42250976562502],[-93.54257812499995,75.0279296875]]],[[[-96.07856445312495,75.510107421875],[-96.91513671875003,75.37968749999999],[-96.98281249999997,75.50981445312505],[-96.367822265625,75.65463867187506],[-96.07856445312495,75.510107421875]]],[[[-94.52656249999995,75.74931640624999],[-94.901220703125,75.93076171875],[-94.53789062499996,75.99643554687506],[-94.52656249999995,75.74931640624999]]],[[[-118.328125,75.57968749999998],[-118.81713867187503,75.52211914062497],[-119.39458007812499,75.617333984375],[-117.63369140624998,76.11508789062498],[-118.328125,75.57968749999998]]],[[[-79.0630859375,75.92587890624998],[-79.63876953124995,75.84291992187505],[-79.00932617187499,76.14589843750005],[-79.0630859375,75.92587890624998]]],[[[-102.22734374999995,76.014892578125],[-102.00800781250003,75.93940429687498],[-102.57958984375003,75.78022460937498],[-103.31474609374996,75.76420898437499],[-103.04150390624999,75.91884765624997],[-103.98525390624997,75.93310546875003],[-103.80078124999994,76.03701171874997],[-104.24248046874996,76.04697265625006],[-104.35063476562497,76.18232421875001],[-102.72802734374999,76.30703125],[-102.22734374999995,76.014892578125]]],[[[-104.02285156249998,76.58310546875003],[-103.05131835937495,76.44985351562497],[-103.31137695312499,76.34755859375],[-104.35751953124995,76.33461914062502],[-104.58569335937499,76.60649414062499],[-104.07451171875003,76.66611328124998],[-104.02285156249998,76.58310546875003]]],[[[-97.70092773437497,76.46650390624998],[-97.89052734374997,75.7603515625],[-97.40751953124999,75.67250976562497],[-97.33603515624998,75.41982421875],[-97.65332031249997,75.50776367187498],[-97.87822265624996,75.41611328125003],[-97.67431640624997,75.127294921875],[-98.04531249999997,75.20083007812497],[-98.12094726562503,75.03271484375],[-100.234375,75.00771484374997],[-100.48349609374995,75.18842773437501],[-100.14570312499995,75.24614257812505],[-100.71191406250003,75.40634765625],[-99.19458007812499,75.698388671875],[-102.58740234375001,75.51367187500003],[-102.79750976562501,75.59965820312505],[-102.14472656249998,75.87504882812502],[-100.97280273437498,75.79843750000003],[-101.414990234375,75.84584960937502],[-101.87211914062496,76.08310546875003],[-101.52895507812495,76.21728515625003],[-102.1046875,76.33120117187505],[-101.41518554687495,76.42490234375003],[-99.86547851562499,75.92421875],[-100.11284179687502,76.11723632812507],[-99.54106445312497,76.14628906250005],[-100.41420898437495,76.242529296875],[-99.97773437500003,76.31245117187495],[-100.82973632812497,76.52387695312495],[-99.8140625,76.6322265625],[-98.89033203125,76.46557617187497],[-98.71083984374994,76.69384765625003],[-97.70092773437497,76.46650390624998]]],[[[-101.22612304687497,76.57934570312497],[-101.61308593749995,76.60458984375006],[-100.26914062499998,76.73413085937497],[-101.22612304687497,76.57934570312497]]],[[[-108.29238281250001,76.05712890625],[-107.72348632812502,75.99541015625002],[-108.020703125,75.80478515625],[-107.21621093749997,75.89155273437501],[-106.91352539062503,75.67963867187501],[-106.67700195312499,76.02373046875002],[-105.63266601562493,75.94536132812505],[-105.51948242187497,75.63237304687505],[-106.09262695312495,75.08945312500003],[-107.15341796874996,74.9271484375],[-108.47475585937495,74.94721679687501],[-108.83129882812501,75.06489257812498],[-112.51933593749997,74.41684570312503],[-113.67158203124997,74.45302734375005],[-114.31269531250003,74.71508789062506],[-112.835986328125,74.9755859375],[-111.67109375,75.01943359374997],[-111.09345703125001,75.25629882812498],[-113.71176757812499,75.06860351562503],[-113.85332031249996,75.259375],[-113.46708984374996,75.41611328125003],[-114.01650390624998,75.43427734375001],[-114.16845703124994,75.23950195312503],[-114.51381835937497,75.27548828125],[-114.45175781250002,75.08789062499997],[-115.02011718749999,74.97617187500003],[-115.41318359374995,75.11499023437497],[-115.72885742187496,74.968115234375],[-116.47607421874996,75.17177734375],[-117.56523437499997,75.23334960937504],[-117.25761718750002,75.45952148437502],[-116.07714843749996,75.49296874999999],[-115.14184570312501,75.67851562500005],[-116.42563476562498,75.58535156249997],[-117.16362304687496,75.64487304687503],[-116.80214843749995,75.77158203124998],[-114.99150390625002,75.896337890625],[-116.66455078124999,75.95756835937505],[-116.20986328125,76.19443359374998],[-114.77861328124999,76.17260742187497],[-115.82216796874997,76.27001953125003],[-114.99848632812503,76.4974609375],[-114.19394531249999,76.45146484375005],[-113.82348632812501,76.20683593750002],[-112.69760742187496,76.20170898437505],[-111.05268554687495,75.54853515625001],[-108.94716796875,75.54179687499999],[-108.94477539062495,75.69897460937503],[-109.8705078125,75.929052734375],[-109.48681640624999,76.14467773437497],[-110.31445312500001,76.369384765625],[-109.09824218749996,76.811865234375],[-108.46699218749997,76.73759765625007],[-108.29238281250001,76.05712890625]]],[[[-89.72646484374994,76.50742187499998],[-90.55625,76.73457031249998],[-90.13632812499995,76.83696289062505],[-89.69541015625,76.74116210937498],[-89.72646484374994,76.50742187499998]]],[[[-113.56069335937494,76.74326171874998],[-114.83525390624999,76.79467773437497],[-113.89165039062495,76.89487304687503],[-113.56069335937494,76.74326171874998]]],[[[-94.29497070312493,76.91245117187498],[-93.23002929687496,76.77026367187497],[-93.53457031250002,76.44770507812498],[-92.99536132812494,76.62041015624999],[-91.305029296875,76.68076171875003],[-90.54262695312494,76.495751953125],[-91.41508789062496,76.45585937500005],[-89.28452148437498,76.30161132812506],[-89.40659179687498,76.18916015624998],[-91.40732421874998,76.22006835937506],[-89.27758789062497,75.79506835937497],[-89.64604492187499,75.5650390625],[-88.91669921874998,75.45395507812503],[-88.64497070312495,75.65844726562503],[-88.201318359375,75.51201171875005],[-87.72973632812503,75.57563476562495],[-87.53911132812502,75.48486328125003],[-87.25693359374998,75.61772460937499],[-85.95146484374993,75.39501953125],[-85.97299804687498,75.5287109375],[-83.931982421875,75.81894531250003],[-83.23710937499993,75.75083007812503],[-82.153662109375,75.83105468750003],[-80.32197265624998,75.62910156250001],[-79.50908203125002,75.25981445312499],[-80.38198242187494,75.03417968750003],[-79.40141601562502,74.91762695312502],[-79.944482421875,74.83364257812505],[-80.34775390624998,74.90297851562505],[-80.26274414062499,74.58447265625],[-81.94018554687494,74.47270507812505],[-82.73579101562495,74.53027343749997],[-83.5220703125,74.90146484375],[-83.53188476562494,74.58569335937497],[-84.42553710937503,74.50810546875007],[-85.06142578125,74.60693359375003],[-85.133447265625,74.517431640625],[-85.44233398437495,74.6005859375],[-85.80800781249994,74.49897460937498],[-88.42304687499995,74.49414062499997],[-88.53496093749993,74.83173828125001],[-89.55869140624995,74.55473632812507],[-90.55327148437499,74.61274414062498],[-90.88022460937498,74.8177734375],[-91.13457031250002,74.64985351562498],[-91.54912109375002,74.65556640624999],[-92.3892578125,75.263330078125],[-92.18510742187499,75.84653320312498],[-93.09174804687495,76.35400390624997],[-95.27387695312498,76.26440429687503],[-96.03969726562494,76.48671875000002],[-95.65097656249998,76.58466796874998],[-96.88071289062495,76.73833007812505],[-96.40156249999995,76.79721679687503],[-96.75830078124997,76.97177734374998],[-95.84951171875002,77.06621093750005],[-94.29497070312493,76.91245117187498]]],[[[-115.55126953125001,77.36328125],[-116.32919921874996,77.137060546875],[-115.81005859374999,76.939111328125],[-116.25273437500002,76.90141601562505],[-115.94628906250003,76.71127929687503],[-116.99921874999995,76.531591796875],[-117.23359375000001,76.28154296875005],[-117.99296874999999,76.40581054687505],[-117.88081054687497,76.80507812500005],[-118.79140624999994,76.51298828125005],[-119.080712890625,76.12407226562505],[-119.58037109375,76.32651367187498],[-119.52612304687496,75.99721679687505],[-119.91289062499997,75.85883789062501],[-120.40888671874995,75.82563476562498],[-120.84838867187496,76.18266601562499],[-121.21347656249999,75.98369140625005],[-122.53305664062498,75.95092773437503],[-122.59272460937497,76.16206054687495],[-122.90278320312498,76.13471679687498],[-122.51938476562503,76.353173828125],[-121.56113281250003,76.453466796875],[-119.09018554687496,77.30507812500002],[-116.84355468749995,77.33955078124995],[-117.03974609374995,77.46513671875005],[-116.51132812500003,77.54760742187497],[-115.55126953125001,77.36328125]]],[[[-89.83325195312503,77.26762695312505],[-90.22827148437503,77.21245117187499],[-90.99321289062499,77.32949218750002],[-91.01904296875003,77.64389648437503],[-89.83896484375003,77.49140624999998],[-89.83325195312503,77.26762695312505]]],[[[-104.55815429687497,77.14174804687497],[-105.21508789062496,77.18208007812501],[-106.03559570312495,77.73984375000006],[-105.58789062499997,77.73598632812497],[-104.54223632812501,77.33774414062503],[-104.55815429687497,77.14174804687497]]],[[[-95.484375,77.79199218750003],[-93.30097656249995,77.73979492187505],[-93.54394531249997,77.466650390625],[-95.98706054687497,77.484130859375],[-96.19458007812497,77.70053710937503],[-95.484375,77.79199218750003]]],[[[-101.6935546875,77.69658203125005],[-102.37783203124995,77.728125],[-102.44770507812498,77.88061523437506],[-101.19321289062493,77.82978515624998],[-101.00205078124998,77.73510742187497],[-101.6935546875,77.69658203125005]]],[[[-113.83247070312497,77.75463867187506],[-114.28720703124998,77.72148437500005],[-114.98041992187498,77.91542968750002],[-114.33037109374997,78.07753906250002],[-113.83247070312497,77.75463867187506]]],[[[-110.45805664062496,78.10322265625001],[-109.62226562499995,78.07475585937499],[-110.865625,77.834130859375],[-110.15273437500002,77.76293945312506],[-110.19848632812501,77.52451171874998],[-112.37265625000002,77.36411132812498],[-113.16435546875002,77.5302734375],[-113.21518554687498,77.90351562500001],[-110.45805664062496,78.10322265625001]]],[[[-109.81596679687499,78.65039062500003],[-109.48447265624995,78.31640625],[-111.16918945312499,78.38627929687505],[-111.51748046874997,78.27470703125005],[-112.13125,78.366064453125],[-113.22304687499998,78.29790039062505],[-112.85585937499997,78.46684570312502],[-110.877587890625,78.73505859375004],[-109.81596679687499,78.65039062500003]]],[[[-96.20449218749994,78.53129882812499],[-94.91538085937495,78.39052734375002],[-95.32924804687497,78.22504882812495],[-94.93427734374998,78.07563476562498],[-96.98964843749994,77.80600585937503],[-97.65815429687498,78.090625],[-96.944677734375,78.15185546874997],[-98.04951171874995,78.325927734375],[-98.33261718749998,78.77353515625006],[-97.38232421875,78.78291015625001],[-96.20449218749994,78.53129882812499]]],[[[-103.42602539062499,79.315625],[-102.57617187499996,78.87939453125003],[-101.70366210937502,79.07890625000002],[-101.128125,78.80166015625002],[-100.43549804687503,78.8203125],[-99.60942382812495,78.58305664062507],[-99.16640625000002,77.85693359375003],[-100.27465820312503,77.83271484374995],[-101.07412109375001,78.19384765625],[-102.60698242187502,78.24892578125002],[-102.73134765624995,78.37104492187495],[-103.94658203124999,78.26000976562497],[-104.76357421874998,78.35166015625],[-104.90961914062498,78.55263671875],[-103.57050781250003,78.53984375000005],[-104.02084960937502,78.63491210937497],[-103.37158203125,78.73632812500003],[-104.18500976562498,78.78129882812505],[-104.15195312499999,78.989892578125],[-104.89550781249996,78.80815429687502],[-104.74677734375003,79.02709960937503],[-105.53564453124999,79.03251953125007],[-105.51455078124995,79.24248046875002],[-105.38769531249994,79.32358398437503],[-103.42602539062499,79.315625]]],[[[-98.79160156249995,79.98110351562505],[-98.94521484375,79.72407226562498],[-100.05683593749997,79.89824218750005],[-100.05327148437496,80.093359375],[-99.15322265625001,80.12421874999998],[-98.79160156249995,79.98110351562505]]],[[[-91.88554687499999,81.13286132812505],[-90.64301757812498,80.59370117187498],[-89.23559570312494,80.51064453125002],[-88.85732421874997,80.16621093750001],[-88.19990234374998,80.11147460937497],[-88.5248046875,80.41801757812507],[-87.675,80.37211914062505],[-87.92231445312501,80.09770507812499],[-86.97719726562502,79.89423828125001],[-87.29516601562494,79.58017578124998],[-86.33696289062496,79.63496093749995],[-86.00703124999998,79.47944335937498],[-85.6478515625,79.61142578125006],[-85.04213867187497,79.2845703125],[-86.95717773437502,78.97490234375005],[-87.61738281249995,78.67631835937505],[-88.04018554687494,78.99531250000004],[-87.98286132812498,78.53706054687501],[-88.74160156250002,78.58403320312499],[-88.82241210937497,78.18588867187498],[-90.037109375,78.60683593750002],[-89.52568359374999,78.15961914062495],[-90.29721679687495,78.32802734374997],[-90.614404296875,78.14985351562501],[-92.35126953125001,78.312890625],[-92.8482421875,78.46010742187497],[-91.86689453124998,78.54267578125001],[-93.26660156249997,78.60830078124997],[-93.63442382812502,78.75092773437498],[-93.15986328124998,78.77563476562503],[-94.11459960937498,78.92890625000001],[-92.54721679687495,79.28261718750002],[-91.29990234375003,79.372705078125],[-92.82192382812497,79.44990234375001],[-93.93315429687496,79.29072265624998],[-94.11030273437498,79.40156250000001],[-95.10317382812502,79.289892578125],[-95.66289062500002,79.52734374999997],[-94.40185546874997,79.736328125],[-95.73935546874995,79.66015625000003],[-96.58906249999995,79.91665039062497],[-96.77324218749999,80.13579101562502],[-94.64589843749994,80.04873046874997],[-94.26259765625002,80.19487304687499],[-95.40507812499996,80.13500976562506],[-96.39409179687493,80.31503906250003],[-95.549072265625,80.36660156249997],[-95.92695312499998,80.72065429687498],[-93.92792968749995,80.55917968750003],[-95.51474609375003,80.83813476562503],[-94.98051757812499,81.04965820312503],[-93.28671874999998,81.10029296874998],[-94.22011718749997,81.33076171875004],[-93.03466796874997,81.3462890625],[-91.88554687499999,81.13286132812505]]],[[[-69.4888671875,83.01679687499998],[-66.42255859374998,82.92685546875003],[-68.46933593749995,82.65336914062502],[-65.29902343749995,82.79960937500005],[-64.98388671874997,82.90229492187501],[-64.50400390625,82.77841796874998],[-63.641015624999966,82.81259765625003],[-63.246777343749926,82.4501953125],[-62.47519531249995,82.51958007812502],[-61.392480468749994,82.44189453125],[-61.61538085937502,82.18442382812503],[-64.43579101562497,81.74262695312501],[-66.62573242187497,81.61640624999995],[-68.68852539062493,81.29331054687503],[-64.78007812499993,81.49287109375001],[-69.55068359375,80.38325195312498],[-70.71259765625001,80.53959960937505],[-70.264892578125,80.23359374999998],[-72.05595703124996,80.12324218749995],[-70.56840820312493,80.09370117187498],[-71.387841796875,79.76176757812505],[-72.43652343750003,79.69438476562499],[-74.39448242187495,79.87407226562499],[-73.47246093749996,79.7564453125],[-73.36152343750001,79.50400390625],[-75.50341796875,79.41416015625],[-76.898828125,79.5123046875],[-75.60273437499998,79.23955078125005],[-74.48120117187503,79.22949218750006],[-74.64091796874996,79.03554687499997],[-78.58164062499998,79.075],[-77.88276367187498,78.9423828125],[-76.255859375,79.00683593749997],[-74.486328125,78.75009765624998],[-74.87861328124998,78.54482421875],[-76.41611328124995,78.51152343750005],[-75.19345703125,78.327734375],[-75.86596679687497,78.00981445312499],[-78.01259765624997,77.94604492187506],[-78.07617187500003,77.51904296875],[-78.70849609374997,77.34213867187503],[-80.57304687499996,77.31479492187506],[-81.65908203124997,77.52543945312499],[-81.3013671875,77.34404296875007],[-82.056787109375,77.29653320312497],[-81.75634765624997,77.20400390625005],[-79.49726562500001,77.19609375000005],[-78.97919921874998,76.89287109374999],[-78.28886718750002,76.97797851562501],[-77.98330078124994,76.75498046875006],[-78.284326171875,76.57124023437501],[-80.79970703124997,76.173583984375],[-80.97451171874994,76.470068359375],[-81.71738281250003,76.494970703125],[-82.52983398437499,76.723291015625],[-82.23315429687494,76.46582031250003],[-83.88569335937501,76.453125],[-84.22377929687497,76.67534179687499],[-84.27534179687498,76.35654296875006],[-85.141259765625,76.30458984375005],[-86.45371093750003,76.58486328125002],[-86.68022460937499,76.37661132812497],[-87.35419921874998,76.44804687500005],[-87.48979492187499,76.58583984374997],[-87.49755859374997,76.38627929687499],[-88.39599609374997,76.40527343750003],[-88.49584960937497,76.77285156249997],[-88.54580078125002,76.42089843750003],[-89.36962890624997,76.474462890625],[-89.49975585937503,76.82680664062502],[-88.39814453124995,77.10395507812501],[-86.81225585937497,77.18491210937498],[-87.68144531249996,77.43637695312503],[-88.01699218750002,77.78471679687505],[-86.75507812499998,77.86372070312498],[-85.58847656249998,77.46113281250004],[-84.73867187499997,77.36103515624998],[-83.72128906249998,77.41420898437497],[-82.7103515625,77.84951171875002],[-82.5953125,77.99213867187504],[-83.77939453125,77.53261718750002],[-85.28935546874996,77.55903320312498],[-85.54755859374998,77.92768554687495],[-84.61542968749998,78.19570312500002],[-84.22270507812499,78.176025390625],[-84.91035156249993,78.23969726562501],[-84.78320312499997,78.52758789062506],[-85.5859375,78.10957031249998],[-86.21777343750003,78.08120117187497],[-85.92006835937494,78.34287109374998],[-86.91323242187494,78.126806640625],[-87.5517578125,78.17661132812503],[-86.80791015624999,78.77436523437495],[-85.00375976562495,78.912255859375],[-83.27143554687501,78.77031250000002],[-81.75009765624995,78.97578124999995],[-82.43876953125002,78.903662109375],[-84.41201171875002,78.99658203125003],[-84.38359375000002,79.1185546875],[-83.57587890624995,79.05366210937501],[-86.42075195312498,79.84521484374997],[-86.49853515625003,80.25825195312501],[-83.72363281250003,80.22895507812501],[-81.68837890625,79.685791015625],[-80.47592773437498,79.60625],[-80.12446289062495,79.66948242187507],[-81.01015625000002,79.693115234375],[-82.98701171874995,80.32260742187498],[-76.86298828124995,80.86479492187505],[-78.71621093749994,80.95166015624997],[-76.88510742187503,81.43027343750006],[-81.00703125000001,80.6548828125],[-82.88432617187502,80.57753906249997],[-82.22236328124998,80.77231445312503],[-84.41782226562495,80.52675781250002],[-86.250341796875,80.56577148437506],[-86.60307617187499,80.66401367187498],[-85.63930664062494,80.92460937500007],[-83.288818359375,81.14794921875],[-85.780859375,81.03505859375],[-87.32988281250002,80.669775390625],[-88.00366210937497,80.675390625],[-89.16689453125,80.94130859375],[-86.47675781249993,81.03574218750006],[-84.94121093750002,81.28623046875],[-87.27509765624995,81.080810546875],[-89.623046875,81.032470703125],[-89.94731445312499,81.17265625000005],[-89.20869140624998,81.25009765625003],[-89.67368164062503,81.32861328125003],[-87.59702148437498,81.52583007812498],[-88.47905273437502,81.56464843749998],[-90.41630859374996,81.40537109375003],[-89.82167968749997,81.63486328124998],[-91.29238281250002,81.57124023437498],[-91.64755859374998,81.68383789062503],[-88.06318359375001,82.09648437500007],[-87.01821289062502,81.95874023437497],[-86.62680664062495,82.05102539062503],[-85.04482421874997,81.9828125],[-86.615625,82.21855468750007],[-84.89682617187503,82.44941406250001],[-82.63369140625002,82.07729492187497],[-82.53691406250002,82.24726562499995],[-79.465625,81.85112304687499],[-82.44755859374993,82.39501953125003],[-81.68115234375003,82.51865234375],[-82.11684570312497,82.62866210937503],[-80.8625,82.57153320312503],[-81.01015625000002,82.77905273437503],[-78.748779296875,82.67939453124998],[-80.15493164062497,82.91113281250003],[-77.61806640624997,82.89584960937503],[-76.009375,82.53515625],[-75.565625,82.60854492187502],[-77.12490234374994,83.00854492187497],[-74.41416015624995,83.01313476562501],[-72.65869140625,82.72163085937495],[-73.44189453124994,82.90483398437499],[-72.811669921875,83.08120117187502],[-71.98320312499996,83.10141601562498],[-70.94038085937495,82.90224609375],[-71.08481445312498,83.08266601562497],[-69.96992187499995,83.11611328125005],[-69.4888671875,83.01679687499998]]]]},"properties":{"name":"Canada","childNum":110}},{"geometry":{"type":"Polygon","coordinates":[[[9.527658197470123,47.27026989773668],[9.46249431093294,47.19858962254578],[9.46249431093294,47.09010747968864],[9.409458596647225,47.02019676540292],[9.579979133936737,47.05856388629306],[9.580273437500011,47.057373046875],[10.133496093750011,46.851513671875],[10.349414062500017,46.98476562499999],[10.414941406250023,46.964404296874996],[10.45458984375,46.8994140625],[10.452832031250011,46.86494140625],[10.406054687500017,46.73486328125],[10.39794921875,46.6650390625],[10.4306640625,46.550048828125],[10.195507812500011,46.62109375],[10.1375,46.61435546875],[10.087011718750006,46.599902343749996],[10.061230468750011,46.546777343749994],[10.038281250000011,46.483203125],[10.045605468750011,46.447900390624994],[10.081933593750023,46.420751953125],[10.109667968750017,46.362841796874996],[10.128320312500023,46.238232421875],[10.08056640625,46.227978515625],[10.041015625,46.238085937499996],[9.939257812500017,46.36181640625],[9.884472656250011,46.3677734375],[9.787792968750011,46.346044921875],[9.639453125000017,46.2958984375],[9.57958984375,46.29609375],[9.528710937500023,46.306201171874996],[9.427636718750023,46.482324218749994],[9.399316406250023,46.4806640625],[9.304394531250011,46.495556640625],[9.203417968750017,46.21923828125],[9.11874162946429,46.014892578125],[8.97551618303573,45.81677455357143],[8.74961495535715,46.02246372767857],[8.818554687500011,46.0771484375],[8.458398437500023,46.245898437499996],[8.370703125,46.445117187499996],[8.298535156250011,46.40341796875],[8.23193359375,46.341210937499994],[8.08154296875,46.256005859374994],[7.9931640625,46.015917968749996],[7.327929687500017,45.912353515625],[7.129003906250006,45.880419921874996],[7.055761718750006,45.90380859375],[7.02109375,45.92578125],[6.953710937500006,46.017138671874996],[6.897265625000017,46.0517578125],[6.772070312500006,46.16513671875],[6.758105468750017,46.415771484375],[6.578222656250006,46.437353515625],[6.428906250000011,46.430517578125],[6.321875,46.393701171874994],[6.234667968750017,46.3326171875],[6.199414062500011,46.19306640625],[6.086621093750011,46.147021484374996],[6.006640625000017,46.142333984375],[5.971484375000017,46.151220703125],[5.970019531250017,46.214697265625],[6.0361328125,46.238085937499996],[6.095898437500011,46.27939453125],[6.129687500000017,46.5669921875],[6.41015625,46.755419921874996],[6.429003906250017,46.832275390625],[6.45625,46.94833984375],[6.624804687500017,47.004345703125],[6.666894531250023,47.026513671874994],[6.688085937500006,47.058251953124994],[6.820703125000023,47.16318359375],[6.952050781250023,47.2671875],[6.978515625,47.302050781249996],[7.000585937500006,47.322509765625],[7.000585937500006,47.339453125],[6.900390625,47.39423828125],[6.968359375,47.45322265625],[7.136035156250017,47.48984375],[7.343164062500023,47.43310546875],[7.615625,47.592724609375],[8.454003906250023,47.59619140625],[8.559472656250023,47.6240234375],[8.570507812500011,47.63779296875],[8.567089843750011,47.651904296874996],[8.55234375,47.659130859375],[8.451757812500006,47.651806640625],[8.413281250000011,47.6626953125],[8.403417968750006,47.687792968749996],[8.435742187500011,47.731347656249994],[8.572656250000023,47.775634765625],[9.524023437500006,47.52421875],[9.625878906250023,47.467041015625],[9.527539062500011,47.270751953125],[9.527658197470123,47.27026989773668]]]},"properties":{"name":"Switzerland","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-67.28886718749999,-55.776855468749964],[-67.55996093749997,-55.72480468750002],[-67.39736328124997,-55.58515625],[-67.28886718749999,-55.776855468749964]]],[[[-67.07993164062498,-55.15380859374996],[-67.33969726562495,-55.292578124999984],[-67.4947265625,-55.177441406249976],[-68.07001953124995,-55.22109374999999],[-68.30136718750003,-54.98066406250003],[-67.245263671875,-54.977636718750034],[-67.07993164062498,-55.15380859374996]]],[[[-69.70297851562503,-54.91904296875],[-68.90078125000002,-55.01777343750004],[-68.45800781249997,-54.95966796875002],[-68.61328124999997,-55.155566406250045],[-68.28266601562495,-55.25517578125],[-68.04833984375,-55.6431640625],[-68.86704101562498,-55.45019531250003],[-68.89008789062498,-55.2412109375],[-69.19262695312497,-55.171875],[-69.35922851562498,-55.300683593749945],[-69.18085937499995,-55.47480468749998],[-69.41181640624995,-55.44423828124997],[-69.97978515625002,-55.14746093749999],[-69.88442382812494,-54.88203125000001],[-69.70297851562503,-54.91904296875]]],[[[-70.9916015625,-54.86796874999999],[-70.80483398437497,-54.96767578124996],[-70.41752929687493,-54.908886718749976],[-70.29785156249997,-55.11376953124997],[-70.47558593749994,-55.17705078124998],[-71.43720703125001,-54.88925781249997],[-70.9916015625,-54.86796874999999]]],[[[-71.390478515625,-54.03281250000002],[-71.02192382812495,-54.111816406250036],[-71.14326171874998,-54.374023437499986],[-71.473291015625,-54.23115234375001],[-71.94853515624999,-54.300878906250006],[-72.21044921874997,-54.04775390624995],[-71.996484375,-53.884863281249984],[-71.390478515625,-54.03281250000002]]],[[[-72.92324218749997,-53.481640625],[-72.88222656249997,-53.578320312499976],[-72.48227539062503,-53.58808593750001],[-72.20541992187503,-53.80742187500002],[-72.408544921875,-54.00380859374997],[-72.87099609375,-54.12656250000002],[-72.76376953125,-53.86484375],[-73.03945312499994,-53.83281250000004],[-73.08076171875001,-53.99804687499995],[-73.21064453125001,-53.98583984374995],[-73.31435546875,-53.72919921874998],[-73.845458984375,-53.54580078125001],[-73.44707031249993,-53.41005859374998],[-72.92324218749997,-53.481640625]]],[[[-74.38574218749994,-52.92236328125001],[-73.65400390624998,-53.06982421875003],[-73.13520507812498,-53.35390625],[-73.56728515625,-53.3068359375],[-73.86694335937494,-53.096875],[-74.27021484374995,-53.08154296875002],[-74.71201171874998,-52.74873046874998],[-74.38574218749994,-52.92236328125001]]],[[[-68.62993164062499,-52.65263671875004],[-68.65322265624994,-54.85361328124999],[-69.48627929687493,-54.85888671875],[-69.72343750000002,-54.71210937500003],[-70.49716796875,-54.80957031249999],[-71.83154296874997,-54.62617187500002],[-71.92773437500003,-54.52871093749997],[-71.80014648437498,-54.433984374999945],[-71.07993164062498,-54.444238281249994],[-70.79726562500002,-54.32724609374996],[-70.70112304687498,-54.48544921875004],[-70.31098632812498,-54.52851562500002],[-70.86308593749993,-54.11044921875003],[-70.86772460937499,-53.88417968750002],[-70.53129882812502,-53.627343750000016],[-70.37973632812495,-53.98671874999995],[-70.62983398437493,-54.005566406249976],[-70.53530273437494,-54.136132812500016],[-70.16899414062502,-54.37929687499999],[-69.74184570312494,-54.30585937500005],[-69.25317382812494,-54.557421875000045],[-69.04433593749997,-54.40673828124999],[-69.98813476562503,-54.10908203125001],[-70.15112304687503,-53.88808593750002],[-70.09111328124996,-53.72177734374998],[-69.35595703125003,-53.41630859375001],[-69.63701171874999,-53.33408203125004],[-70.32929687499998,-53.37763671875003],[-70.44335937499994,-53.085546875000034],[-70.130615234375,-52.942773437499994],[-70.38012695312494,-52.75195312500002],[-69.93544921874997,-52.82109374999998],[-69.41406249999997,-52.48623046874997],[-69.16704101562499,-52.66757812499997],[-68.78979492187497,-52.576757812500034],[-68.62993164062499,-52.65263671875004]]],[[[-74.82294921874993,-51.63017578125001],[-74.53681640624998,-51.96513671875004],[-74.69448242187497,-52.27919921874999],[-74.85180664062494,-52.27070312500003],[-75.10537109375,-51.78886718750001],[-74.82294921874993,-51.63017578125001]]],[[[-74.55864257812499,-51.27705078125001],[-74.62036132812497,-51.395703125000026],[-75.04736328125,-51.39833984375003],[-75.28911132812496,-51.625390625000016],[-75.15366210937498,-51.278808593750014],[-74.73666992187503,-51.20761718749999],[-74.55864257812499,-51.27705078125001]]],[[[-75.302001953125,-50.67998046875005],[-75.411376953125,-50.76435546875001],[-75.42763671875002,-50.48056640625002],[-75.11533203124998,-50.510449218749976],[-75.302001953125,-50.67998046875005]]],[[[-75.05478515625,-50.29609375],[-75.44912109374997,-50.34335937500004],[-75.32666015624997,-50.01181640625],[-74.8759765625,-50.10996093750001],[-75.05478515625,-50.29609375]]],[[[-75.106689453125,-48.83652343750001],[-75.38994140624999,-49.15917968750002],[-75.64116210937499,-49.195410156250034],[-75.48764648437498,-49.082421875000016],[-75.58310546874998,-48.85888671874995],[-75.106689453125,-48.83652343750001]]],[[[-74.47617187499998,-49.14785156250002],[-74.59472656249997,-50.00664062500001],[-74.76298828124996,-50.01142578125001],[-74.88041992187502,-49.72587890625001],[-74.72382812499998,-49.42382812500003],[-74.960107421875,-49.533007812499974],[-75.06601562499998,-49.85234375000002],[-75.54980468749994,-49.79130859375002],[-75.30585937499998,-49.49404296875003],[-75.46748046874995,-49.35888671875003],[-75.08603515624998,-49.27021484375],[-75.21015624999995,-49.14804687499998],[-74.94921875,-48.960156249999976],[-74.89624023437503,-48.73320312500002],[-74.54609374999993,-48.76689453125004],[-74.47617187499998,-49.14785156250002]]],[[[-75.51025390624997,-48.76347656250005],[-75.65092773437496,-48.58632812500002],[-75.57148437499993,-48.095898437500026],[-75.39140625000002,-48.01972656249997],[-75.15849609374999,-48.62265624999996],[-75.51025390624997,-48.76347656250005]]],[[[-74.56728515625,-48.591992187500026],[-74.92304687499998,-48.62646484375003],[-75.21289062499997,-48.141699218750034],[-75.19829101562502,-47.974609375000014],[-74.895654296875,-47.839355468749986],[-74.56728515625,-48.591992187500026]]],[[[-75.11220703124997,-47.8376953125],[-75.26103515625002,-47.76386718749998],[-74.92646484374998,-47.72314453125003],[-75.11220703124997,-47.8376953125]]],[[[-74.31289062500002,-45.69150390625002],[-74.46552734374995,-45.757226562499994],[-74.68984375,-45.66259765625],[-74.310546875,-45.17265625000002],[-74.31289062500002,-45.69150390625002]]],[[[-73.63217773437498,-44.82148437499997],[-73.81845703125,-44.65214843750002],[-73.72392578124993,-44.544238281249974],[-73.63217773437498,-44.82148437499997]]],[[[-72.98613281249999,-44.780078124999974],[-73.22846679687498,-44.85996093749999],[-73.39707031249998,-44.77431640624995],[-73.44506835937497,-44.641015624999966],[-73.20771484374993,-44.33496093749997],[-72.7763671875,-44.50859374999999],[-72.98613281249999,-44.780078124999974]]],[[[-73.73535156249997,-44.39453125000003],[-74.00205078125003,-44.59091796874998],[-73.728173828125,-45.195898437500034],[-74.016259765625,-45.344921875000026],[-74.61777343749998,-44.64794921874996],[-74.50180664062498,-44.47353515624995],[-74.09721679687496,-44.38935546875004],[-73.99492187499999,-44.140234375],[-73.70322265624998,-44.27412109375001],[-73.73535156249997,-44.39453125000003]]],[[[-73.81064453125003,-43.827246093750006],[-73.95566406249998,-43.921972656250034],[-74.14296874999997,-43.872167968750006],[-73.81064453125003,-43.827246093750006]]],[[[-73.77338867187498,-43.3458984375],[-74.114404296875,-43.35791015624996],[-74.387353515625,-43.231640625],[-74.03666992187496,-41.79550781249998],[-73.52783203124997,-41.89628906249999],[-73.42290039062499,-42.192871093750014],[-73.47080078124998,-42.46630859375004],[-73.78925781249993,-42.58574218750003],[-73.43632812499996,-42.9365234375],[-73.74965820312494,-43.15908203124995],[-73.77338867187498,-43.3458984375]]],[[[-78.80415039062501,-33.646484374999986],[-78.98945312499993,-33.66171874999998],[-78.87744140625003,-33.57519531250003],[-78.80415039062501,-33.646484374999986]]],[[[-109.27998046874994,-27.14042968749996],[-109.434130859375,-27.171289062500023],[-109.39047851562499,-27.068359375000014],[-109.27998046874994,-27.14042968749996]]],[[[-67.19487304687493,-22.821679687500037],[-67.00878906249994,-23.00136718750005],[-67.35620117187503,-24.033789062499963],[-68.25029296875002,-24.391992187500023],[-68.56201171875,-24.74736328125003],[-68.38422851562495,-25.091894531249977],[-68.59208984375002,-25.420019531250034],[-68.41450195312498,-26.153710937500023],[-68.59160156249999,-26.47041015624997],[-68.31865234374999,-26.973242187500006],[-68.59208984375002,-27.140039062499966],[-68.84633789062494,-27.153710937499994],[-69.17441406249998,-27.924707031250037],[-69.65693359374995,-28.413574218749986],[-69.82788085937497,-29.10322265624997],[-70.02680664062501,-29.324023437500017],[-69.95996093749997,-30.078320312500026],[-69.84428710937493,-30.175],[-69.95634765624996,-30.35820312500003],[-70.15322265625,-30.360937499999963],[-70.30908203124994,-31.02265625000004],[-70.51958007812493,-31.1484375],[-70.585205078125,-31.569433593749963],[-70.25439453125,-31.957714843750026],[-70.36376953125,-32.08349609374997],[-70.02197265625,-32.88457031250002],[-70.08486328125002,-33.20175781249998],[-69.81962890624999,-33.28378906249999],[-69.85244140625,-34.224316406250026],[-70.05205078124999,-34.30078124999997],[-70.39316406250003,-35.146875],[-70.55517578125,-35.246875],[-70.41572265625001,-35.52304687500002],[-70.40478515625,-36.06171874999998],[-71.05551757812498,-36.52373046874996],[-71.19218750000002,-36.84365234375004],[-71.16757812499998,-37.76230468749996],[-70.858642578125,-38.60449218750003],[-71.40156249999995,-38.93505859374996],[-71.53945312499997,-39.60244140624995],[-71.71992187499995,-39.63525390624997],[-71.65976562499998,-40.02080078125],[-71.81831054687493,-40.17666015624995],[-71.70898437499997,-40.381738281249994],[-71.93212890624994,-40.69169921874999],[-71.91127929687497,-41.650390624999986],[-71.75,-42.04677734375001],[-72.10820312499993,-42.25185546874995],[-72.14643554687498,-42.990039062499974],[-71.750634765625,-43.237304687499986],[-71.90498046875001,-43.34755859374998],[-71.68007812500002,-43.92958984374998],[-71.82001953124993,-44.38310546875],[-71.21259765624998,-44.44121093750003],[-71.15971679687496,-44.56025390625004],[-71.26113281250002,-44.763085937499966],[-72.06372070312503,-44.771875],[-72.04169921874998,-44.90419921875004],[-71.5962890625,-44.97919921875004],[-71.34931640624995,-45.33193359374995],[-71.74619140624998,-45.57890625],[-71.63154296874998,-45.95371093749998],[-71.87568359374998,-46.160546875],[-71.69965820312501,-46.6513671875],[-71.94023437499999,-46.83125],[-71.90498046875001,-47.201660156250014],[-72.34594726562497,-47.49267578124997],[-72.517919921875,-47.87636718749998],[-72.32832031250001,-48.11005859374998],[-72.35473632812497,-48.36582031250005],[-72.582861328125,-48.47539062499999],[-72.65126953125,-48.84160156249998],[-73.03364257812501,-49.014355468750004],[-73.13525390625,-49.30068359374999],[-73.46157226562497,-49.31386718750001],[-73.55419921875,-49.463867187500014],[-73.50126953124996,-50.125292968750024],[-73.15292968749998,-50.73828125000003],[-72.50981445312496,-50.607519531250034],[-72.34023437499997,-50.68183593749999],[-72.40766601562501,-51.54082031250002],[-71.91865234374995,-51.98955078125004],[-69.96025390624993,-52.00820312500002],[-68.443359375,-52.35664062500004],[-69.24101562499996,-52.20546874999997],[-69.62031249999995,-52.46474609374995],[-70.79511718749995,-52.76875],[-70.99584960937497,-53.77929687499997],[-71.29775390625002,-53.88339843750004],[-72.1744140625,-53.632324218749964],[-72.41289062500002,-53.35019531250004],[-71.94169921874993,-53.23408203125001],[-71.89169921874998,-53.523535156250006],[-71.79145507812498,-53.48457031249997],[-71.74052734374999,-53.232617187499976],[-71.28896484375002,-53.03369140624995],[-71.22714843750003,-52.810644531249984],[-71.38774414062496,-52.76425781250004],[-72.27802734374998,-53.13232421874997],[-72.54892578125,-53.4607421875],[-73.05273437499997,-53.24345703125005],[-72.72768554687502,-52.7623046875],[-72.453466796875,-52.814453124999964],[-72.11757812499997,-52.65],[-71.51127929687502,-52.60537109375],[-72.22568359374998,-52.52099609374995],[-72.43769531250001,-52.62578124999998],[-72.71210937499995,-52.53554687499999],[-73.12246093749997,-53.073925781249976],[-73.64521484374998,-52.83701171875003],[-73.2408203125,-52.707128906250034],[-73.12392578125,-52.487988281249976],[-73.24414062499997,-52.62402343749998],[-73.58569335937503,-52.68574218750003],[-74.01445312499999,-52.63935546875],[-74.26494140624993,-52.1048828125],[-73.83447265625,-52.23398437500001],[-73.68432617187494,-52.07773437499998],[-73.26044921874993,-52.157812500000034],[-72.79501953124998,-51.94951171875005],[-72.57084960937496,-52.200097656249945],[-72.67705078125002,-52.38466796874998],[-72.52333984374997,-52.255468750000034],[-72.62460937499998,-51.94648437499997],[-72.48964843750002,-51.76367187500003],[-72.76123046875,-51.57324218749996],[-73.16875,-51.45390624999998],[-72.60004882812495,-51.79912109374997],[-73.51816406250003,-52.04101562499996],[-73.75263671874993,-51.795507812500034],[-74.19667968749997,-51.68056640624997],[-73.92978515624995,-51.61787109374999],[-73.93950195312499,-51.26630859375005],[-74.81474609374996,-51.06289062499999],[-75.09467773437495,-50.68125],[-74.68574218749995,-50.662011718749945],[-74.77587890625003,-50.46992187499998],[-74.64448242187498,-50.360937499999984],[-74.365576171875,-50.487890625],[-74.13940429687503,-50.81777343749997],[-73.80654296875,-50.93837890625003],[-73.654443359375,-50.49267578125],[-73.97802734375003,-50.827050781249994],[-74.18559570312493,-50.485351562500014],[-73.95034179687497,-50.510546875],[-74.62958984374998,-50.19404296875],[-74.333740234375,-49.97460937499997],[-73.95859374999998,-49.994726562499984],[-74.32392578124995,-49.783398437500004],[-74.29082031249996,-49.604101562499984],[-73.83637695312493,-49.609375],[-74.09443359374993,-49.42968749999998],[-73.93496093749994,-49.02089843750001],[-74.2212890625,-49.500585937500034],[-74.36655273437503,-49.40048828124998],[-74.34101562499998,-48.59570312499998],[-74.00908203124996,-48.475],[-74.47441406249999,-48.46396484374996],[-74.58466796874998,-47.999023437500014],[-73.39106445312498,-48.14589843750001],[-73.60991210937499,-47.993945312500045],[-73.71586914062499,-47.65546875000001],[-73.94086914062498,-47.92939453125004],[-74.22705078124994,-47.96894531250001],[-74.654931640625,-47.702246093750034],[-74.5337890625,-47.567675781249974],[-74.24296874999999,-47.67929687499998],[-74.13408203125002,-47.590820312499986],[-74.48266601562497,-47.43046875],[-74.15839843749998,-47.18251953125002],[-74.31357421874998,-46.78818359374998],[-74.45419921875003,-46.76679687499997],[-74.51225585937496,-46.88515625000002],[-75.00595703125,-46.74111328124998],[-74.98417968750002,-46.51210937499995],[-75.54033203124999,-46.69873046874996],[-75.43037109374995,-46.93457031249996],[-75.70639648437498,-46.70527343749997],[-74.924462890625,-46.159667968750014],[-75.06669921874993,-45.874902343749994],[-74.15786132812497,-45.7671875],[-74.122705078125,-45.49619140625002],[-73.95717773437494,-45.40439453124998],[-73.825,-45.446875],[-74.01992187500002,-46.055859375],[-74.39296875,-46.21738281250005],[-73.96757812500002,-46.15410156250003],[-73.87871093749993,-45.846875],[-73.73525390624994,-45.81171875],[-73.70815429687502,-46.070312500000014],[-73.94863281249997,-46.533105468749966],[-73.845361328125,-46.56601562500002],[-73.59184570312493,-45.89912109375004],[-73.73076171874999,-45.47998046875],[-73.26621093749995,-45.346191406250014],[-72.933837890625,-45.45234374999997],[-73.44497070312497,-45.23818359374995],[-73.36245117187502,-44.97822265625001],[-72.73896484375001,-44.73417968750003],[-72.680078125,-44.59394531249997],[-72.66386718749999,-44.43642578124995],[-73.26508789062498,-44.16865234375001],[-73.22446289062498,-43.89794921875003],[-73.06879882812495,-43.86201171874998],[-72.99658203125,-43.63154296875001],[-73.07597656250002,-43.323632812499994],[-72.75800781249998,-43.039453125],[-72.84804687500002,-42.66914062499997],[-72.77392578125003,-42.505175781250045],[-72.63183593750003,-42.509667968749994],[-72.77324218749996,-42.257714843749994],[-72.63105468749995,-42.199804687500006],[-72.412353515625,-42.388183593750014],[-72.49941406249997,-41.98085937499999],[-72.82407226562503,-41.90878906249996],[-72.36040039062499,-41.64912109375],[-72.31826171875,-41.49902343749997],[-72.54238281250002,-41.690625],[-72.95283203124995,-41.51474609374998],[-73.24179687499995,-41.78085937500002],[-73.62402343750003,-41.77363281249997],[-73.73515625000002,-41.74248046875002],[-73.62392578125,-41.581347656250045],[-73.81074218749995,-41.51748046875001],[-73.96586914062493,-41.118261718750034],[-73.67099609375,-39.96318359374999],[-73.41040039062503,-39.78916015624998],[-73.22646484375002,-39.22441406250003],[-73.52021484375001,-38.509375],[-73.46479492187498,-38.04033203125003],[-73.66181640624998,-37.69853515625003],[-73.66240234375002,-37.341015625000026],[-73.60166015624998,-37.18847656250003],[-73.21596679687502,-37.16689453124998],[-73.11806640624997,-36.68837890625002],[-72.58735351562493,-35.759667968749994],[-72.62392578125002,-35.5857421875],[-72.22377929687494,-35.096191406250014],[-72.00283203124997,-34.16533203125],[-71.66435546875002,-33.65263671875],[-71.74296875,-33.09511718750001],[-71.45224609374998,-32.65957031250001],[-71.70893554687495,-30.62802734375002],[-71.66948242187499,-30.33037109374996],[-71.40039062499997,-30.142968749999966],[-71.31572265624996,-29.649707031250017],[-71.51923828124993,-28.926464843750026],[-71.30673828124998,-28.672460937499963],[-71.08652343749998,-27.814453124999957],[-70.92578125,-27.588671874999974],[-70.64658203124998,-26.329394531250017],[-70.71372070312498,-25.78417968749997],[-70.44536132812502,-25.17265624999999],[-70.57412109374994,-24.644335937500003],[-70.39233398437494,-23.565917968749957],[-70.59335937499995,-23.255468750000034],[-70.56318359374995,-23.057031250000023],[-70.33168945312494,-22.848632812500014],[-70.08002929687501,-21.356835937500037],[-70.19702148437494,-20.725390625],[-70.15742187499995,-19.70585937500003],[-70.41826171874999,-18.345605468750023],[-69.92636718749998,-18.206054687500014],[-69.80258789062498,-17.990234375000014],[-69.85209960937493,-17.70380859375001],[-69.68476562499995,-17.649804687500023],[-69.58642578125,-17.57324218749997],[-69.51093749999998,-17.50605468749997],[-69.31337890624997,-17.943164062500017],[-69.28232421875003,-17.96484375],[-69.09394531249993,-18.05048828125004],[-69.14545898437495,-18.14404296875],[-69.09228515624994,-18.28242187500004],[-69.02680664062493,-18.65625],[-68.97885742187503,-18.81298828125003],[-68.96831054687502,-18.967968749999983],[-68.85795898437499,-19.09335937500005],[-68.62055664062495,-19.29667968749999],[-68.54785156249997,-19.341113281249974],[-68.49199218749996,-19.381933593750034],[-68.47016601562495,-19.409960937499974],[-68.46289062499997,-19.43281250000001],[-68.57529296874998,-19.56015625000002],[-68.69829101562499,-19.721093750000037],[-68.69619140625,-19.74072265625003],[-68.57827148437494,-19.856542968750006],[-68.559375,-19.902343750000014],[-68.56069335937502,-19.96708984374996],[-68.75932617187499,-20.115527343750003],[-68.74516601562493,-20.45859375],[-68.48432617187498,-20.628417968749957],[-68.55825195312497,-20.90195312499999],[-68.197021484375,-21.30029296874997],[-68.18642578124997,-21.618554687499966],[-67.88173828124997,-22.493359375000026],[-67.87944335937496,-22.822949218750026],[-67.57993164062495,-22.89169921874999],[-67.36225585937493,-22.85517578125001],[-67.19487304687493,-22.821679687500037]]]]},"properties":{"name":"Chile","childNum":26}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[110.88876953125006,19.99194335937497],[111.01367187500003,19.65546875000001],[110.64091796875002,19.291210937499955],[110.45126953125012,18.747949218750023],[110.06738281249997,18.447558593750045],[109.51933593750007,18.21826171875003],[108.7015625,18.535253906250034],[108.66552734375003,19.304101562499994],[109.27666015625002,19.761132812500023],[109.17744140625004,19.768457031250023],[109.26347656250007,19.882666015625006],[110.1715820312501,20.053710937500057],[110.58818359375002,19.976367187500017],[110.6517578125,20.137744140625017],[110.88876953125006,19.99194335937497]]],[[[110.38515625000005,21.093164062499966],[110.52158203125006,21.083105468750063],[110.50390625000003,20.96772460937501],[110.28095703125004,21.001171874999983],[110.38515625000005,21.093164062499966]]],[[[112.64375,21.63964843750003],[112.525,21.62304687500003],[112.64765625000004,21.710253906250017],[112.64375,21.63964843750003]]],[[[112.79023437500004,21.601855468750045],[112.78203125000007,21.772265625000045],[112.86259765625002,21.75263671875004],[112.79023437500004,21.601855468750045]]],[[[118.1830078125,24.496289062499983],[118.0905273437501,24.446142578125063],[118.10380859375002,24.552343750000034],[118.1830078125,24.496289062499983]]],[[[119.82089843750006,25.45698242187504],[119.70029296875012,25.432714843750063],[119.72255859375005,25.638818359375023],[119.83837890625003,25.591064453125],[119.82089843750006,25.45698242187504]]],[[[121.2513671875,28.086425781250057],[121.13154296875004,28.062597656250006],[121.20546875,28.204394531250017],[121.2513671875,28.086425781250057]]],[[[122.29589843750003,29.96342773437499],[122.02402343750012,30.01333007812505],[121.96943359375004,30.143115234375017],[122.28447265625007,30.068017578124994],[122.29589843750003,29.96342773437499]]],[[[121.86269531250005,31.492285156249977],[121.519921875,31.549609375000017],[121.2111328125001,31.80537109375001],[121.86269531250005,31.492285156249977]]],[[[130.52695312500012,42.535400390625],[130.24667968750012,42.744824218749955],[130.24033203125006,42.891796874999955],[129.89824218750002,42.998144531250034],[129.69785156250012,42.448144531249994],[129.3136718750001,42.41357421874997],[128.92343750000006,42.038232421874966],[128.04521484375007,41.9875],[128.28925781250004,41.60742187500006],[128.14941406249997,41.38774414062496],[127.17968750000003,41.531347656250006],[126.95478515625004,41.76948242187501],[126.74306640625,41.724853515625],[125.98906250000002,40.904638671875034],[124.8893554687501,40.459814453125006],[124.36210937500002,40.004052734374994],[124.10576171875002,39.84101562499998],[123.65087890625003,39.881591796875],[122.8400390625001,39.600830078125],[121.98232421875,39.05317382812498],[121.67724609374997,39.00341796875006],[121.64990234375003,38.865087890625034],[121.16357421874997,38.73164062500001],[121.10673828125002,38.920800781249994],[121.6798828125001,39.10869140625002],[121.62763671875004,39.22016601562498],[121.81845703125006,39.38652343750002],[121.27548828125006,39.38476562500003],[121.26748046875,39.544677734375],[121.51757812499997,39.638964843750045],[121.51738281250002,39.84482421875006],[121.8009765625001,39.950537109375006],[122.27500000000012,40.541845703125034],[121.83486328125005,40.97426757812502],[121.72929687500002,40.84614257812504],[121.1745117187501,40.901269531249994],[120.47910156250006,40.23095703125003],[119.39111328125003,39.75249023437499],[118.976953125,39.182568359374955],[118.29785156249997,39.067089843749955],[118.04091796875,39.22675781249998],[117.86572265625003,39.191259765625034],[117.61669921875003,38.852880859375034],[117.5578125000001,38.625146484374994],[117.76669921875012,38.311669921874994],[118.01494140625007,38.18339843749996],[118.94003906250006,38.04277343750002],[119.08916015625007,37.70073242187496],[118.95263671875003,37.33115234374998],[119.28740234375002,37.138281250000034],[119.76054687500007,37.15507812499999],[120.31152343750003,37.62270507812505],[120.2572265625,37.67900390624996],[120.75,37.83393554687501],[121.64023437500012,37.46035156250002],[122.05664062500003,37.528906250000034],[122.66699218750003,37.40283203125003],[122.4466796875,37.06811523437503],[122.51972656250004,36.94682617187502],[122.34091796875012,36.83222656250004],[121.93271484375006,36.95947265625003],[121.05380859375006,36.61137695312499],[120.81083984375007,36.6328125],[120.89580078125007,36.44414062500002],[120.71152343750006,36.41328125000004],[120.6378906250001,36.129931640625045],[120.39306640625003,36.053857421874994],[120.32773437500006,36.228173828124994],[120.18330078125004,36.20244140624999],[120.094140625,36.11889648437503],[120.28476562500006,35.98442382812499],[119.42968749999997,35.301416015624994],[119.16533203125002,34.84882812499998],[119.20097656250002,34.748437499999966],[120.26669921875006,34.274023437500034],[120.87109374999997,33.016503906249994],[120.8532226562501,32.66137695312503],[121.34169921875005,32.42504882812503],[121.40390625000006,32.20625],[121.85634765625,31.816455078125045],[121.86630859375006,31.703564453124955],[121.68085937500004,31.71215820312503],[121.351953125,31.85878906250005],[120.97353515625,31.86938476562497],[120.52011718750006,32.10585937500002],[120.03593750000002,31.93627929687503],[120.7155273437501,31.983740234375006],[120.7877929687501,31.81977539062501],[121.66064453124997,31.319726562499994],[121.87792968750003,30.91699218750003],[121.41894531249997,30.789794921875057],[120.8214843750001,30.354638671875023],[120.44980468750006,30.38784179687505],[120.19462890625002,30.241308593750034],[120.49453125,30.303076171875006],[120.63339843750006,30.133154296875034],[121.25800781250004,30.30410156250005],[121.67792968750004,29.979101562500006],[122.08291015625005,29.870361328125057],[121.50625,29.484570312499955],[121.94121093750002,29.605908203124983],[121.91777343750007,29.13500976562497],[121.71748046875004,29.25634765625],[121.48710937500007,29.193164062500017],[121.67968749999997,28.953125],[121.54003906250003,28.931884765625],[121.6625,28.851416015625034],[121.47519531250006,28.64140625],[121.60996093750006,28.29213867187505],[121.27226562500002,28.222119140624983],[121.14570312500004,28.32666015624997],[120.95859375000006,28.037011718750023],[120.74765625000006,28.00996093750001],[120.83300781249997,27.891455078125034],[120.58750000000012,27.580761718749983],[120.60751953125012,27.41240234374996],[120.2787109375,27.097070312500023],[120.08671875000007,26.67158203125004],[119.88222656250005,26.610449218750006],[119.82421874999997,26.84638671875001],[119.71044921874997,26.728662109375023],[119.58818359375002,26.784960937500045],[119.8810546875001,26.33417968750004],[119.46308593750004,26.05468750000003],[119.13945312500007,26.12177734375001],[119.33203124999997,25.94873046875003],[119.61875000000012,26.003564453124994],[119.53945312500005,25.59125976562504],[119.6224609375,25.391162109375017],[119.180078125,25.449804687499977],[119.285546875,25.232226562500074],[118.97753906249997,25.209277343750017],[118.90908203125005,24.92890625000001],[118.63691406250004,24.835546874999977],[118.65703125000002,24.621435546874977],[118.0871093750001,24.627001953125045],[118.00595703125006,24.48198242187499],[117.84267578125005,24.47431640625004],[118.0560546875,24.24609374999997],[117.62822265625002,23.836718750000074],[117.46640625000012,23.84057617187497],[117.36767578124997,23.58862304687497],[117.29082031250007,23.71435546875],[117.08251953124997,23.578759765625023],[116.91064453124997,23.646679687499983],[116.86093750000006,23.453076171874983],[116.62939453124997,23.353857421875034],[116.69882812500006,23.277783203124983],[116.53828125000004,23.17968749999997],[116.47070312499997,22.945898437500034],[116.25185546875005,22.981347656249994],[115.85214843750006,22.801562500000045],[115.64042968750002,22.853417968750023],[115.49833984375002,22.718847656250063],[115.19580078125003,22.81728515625005],[114.85380859375007,22.616796875000063],[114.65166015625002,22.755273437500023],[114.55419921874997,22.52890625],[114.26601562500005,22.540966796874983],[114.01542968750007,22.51191406250001],[113.61962890624997,22.861425781249977],[113.6205078125,23.12749023437499],[113.51972656250004,23.102099609375074],[113.33105468749997,22.912011718749966],[113.55302734375002,22.594042968750045],[113.54912109375002,22.225195312500034],[113.14902343750012,22.075],[113.08876953125,22.207958984374983],[112.95390625000007,21.907324218750034],[112.80859374999997,21.944628906250074],[112.58632812500005,21.77685546875],[112.35966796875007,21.97802734375003],[112.30498046875002,21.74169921875003],[111.94394531250012,21.84965820312499],[111.60273437500004,21.55908203125003],[111.01689453125007,21.51171874999997],[110.56718750000002,21.21406250000001],[110.41093750000007,21.33813476562497],[110.15400390625004,20.944628906250017],[110.36542968750004,20.837597656249955],[110.31308593750012,20.67167968749999],[110.51152343750007,20.51826171875001],[110.34472656249997,20.29482421875005],[109.88251953125004,20.364062500000045],[109.96835937500006,20.448144531250023],[109.66259765625003,20.91689453125005],[109.68125000000012,21.13164062499999],[109.93076171875012,21.480566406250034],[109.6869140625,21.52460937500004],[109.56640624999997,21.690576171874994],[109.54404296875012,21.537939453125006],[109.14863281250004,21.425537109375],[109.1017578125001,21.59047851562505],[108.77167968750004,21.63046875],[108.59375,21.901025390624994],[108.47988281250005,21.904638671875006],[108.50214843750004,21.633447265624994],[108.32480468750006,21.693505859374994],[108.24628906250004,21.55839843749999],[107.97265624999997,21.507958984375023],[107.75927734374997,21.655029296875057],[107.35117187500012,21.60888671874997],[106.97099609375002,21.923925781250034],[106.66357421875003,21.97890625000005],[106.55039062500006,22.501367187499994],[106.78027343749997,22.778906250000034],[106.54179687500007,22.908349609375023],[106.2790039062501,22.857470703125045],[106.14843749999997,22.970068359375006],[105.8429687500001,22.922802734374955],[105.27539062500003,23.34521484375003],[104.86474609375003,23.136376953125023],[104.68730468750002,22.822216796874983],[104.37177734375004,22.704052734374983],[104.14306640624997,22.800146484375006],[103.94150390625006,22.540087890625045],[103.62021484375006,22.782031250000045],[103.49296875000007,22.587988281250034],[103.32666015625003,22.769775390625057],[102.98193359374997,22.4482421875],[102.47089843750004,22.75092773437501],[102.40644531250004,22.70800781249997],[102.2370117187501,22.466015624999983],[102.1759765625001,22.414648437500006],[102.12744140624997,22.379199218750045],[101.84179687500003,22.38847656249999],[101.75996093750004,22.490332031250034],[101.73876953124997,22.495263671874994],[101.70751953125003,22.486572265625],[101.67148437500006,22.462304687500023],[101.64619140625004,22.405419921874966],[101.61992187500002,22.32744140624999],[101.56787109374997,22.27636718749997],[101.52451171875006,22.25366210937497],[101.7365234375001,21.826513671874977],[101.74394531250007,21.77797851562505],[101.74726562500004,21.605761718750045],[101.72294921875007,21.31494140625003],[101.80058593750007,21.212597656249983],[101.78349609375007,21.204150390625017],[101.728125,21.156396484374994],[101.7047851562501,21.15014648437503],[101.54238281250005,21.23427734375005],[101.2814453125001,21.184130859375045],[101.24785156250007,21.197314453125045],[101.22441406250002,21.223730468750034],[101.21181640625,21.278222656250023],[101.2199218750001,21.34243164062505],[101.17539062500006,21.407519531250074],[101.19667968750005,21.522070312500063],[101.1388671875001,21.567480468749977],[101.07978515625004,21.75585937499997],[100.60458984375012,21.471777343750006],[100.14765625000004,21.480517578125017],[99.94072265625007,21.75874023437504],[99.9176757812501,22.02802734375001],[99.19296875000006,22.12597656249997],[99.50712890625002,22.959130859374994],[99.41806640625006,23.069238281250023],[98.86376953125003,23.191259765625034],[98.8322265625001,23.624365234374977],[98.67675781250003,23.905078125000045],[98.83505859375006,24.121191406250034],[98.2125,24.110644531250017],[97.56455078125012,23.911035156250023],[97.7082031250001,24.228759765625],[97.53144531250004,24.49169921875003],[97.58330078125002,24.77480468750005],[97.73789062500006,24.869873046875057],[97.8195312500001,25.251855468749994],[98.01074218749997,25.292529296875017],[98.14287109375007,25.571093750000017],[98.33378906250007,25.586767578125006],[98.65625,25.86357421874999],[98.56406250000006,26.072412109374994],[98.68554687499997,26.189355468750023],[98.7384765625001,26.785742187500006],[98.65117187500007,27.572460937499983],[98.4525390625,27.6572265625],[98.29882812499997,27.550097656250045],[98.06162109375012,28.185888671874977],[97.59921875000006,28.51704101562504],[97.53789062500002,28.510205078124983],[97.43144531250002,28.353906250000023],[97.35644531249997,28.254492187500006],[97.32158929493812,28.217097107438057],[97.3027336276825,28.08710519614969],[97.34382779482424,27.982305259167095],[97.04929369561631,27.76000444316393],[96.96494598325154,27.699301564540924],[96.19423412199573,28.04146177926422],[95.73730002295082,28.117613231051525],[95.11298892962586,27.748338353239472],[94.07167814294401,27.588707868507477],[93.61247595136224,27.323800298697016],[93.30681393470121,26.786120363519142],[92.74319481218781,26.833531317384058],[92.04974640832253,26.874866505386724],[92.07342257335648,26.915311275859864],[92.06813426293174,26.9752569185349],[92.02985139563152,27.03987087331446],[91.99856592104459,27.079255842602592],[91.99177981607339,27.100605151743654],[92.0025114452454,27.147290053160265],[92.03101585307499,27.214271359861193],[92.08387457645458,27.29090135496722],[92.04520857607581,27.364442429033787],[91.99069061380867,27.450181624174498],[91.95099838734396,27.45828799115413],[91.85276579410389,27.438593286730903],[91.74366351462741,27.442853010105477],[91.59505352446729,27.557262710287986],[91.63193359375012,27.759960937499983],[91.64189453125002,27.923242187500023],[91.36259958579089,28.02438066407592],[91.27304687500012,28.078369140625],[91.22587890625007,28.071240234374983],[91.07773437500012,27.974462890624977],[91.02080078125002,27.970068359374977],[90.71572265625,28.071728515624983],[90.63007812500004,28.078564453124955],[90.47734375000007,28.07084960937499],[90.3527343750001,28.080224609375023],[90.33310546875012,28.093994140625],[90.36298828125004,28.21650390625001],[90.34824218750006,28.24394531249999],[90.22080078125006,28.27773437500005],[90.10449218749997,28.302050781250017],[89.98105468750006,28.311181640625023],[89.8978515625,28.29414062500001],[89.81689453125003,28.25629882812501],[89.74980468750002,28.18818359375001],[89.65273437500005,28.158300781250034],[89.53691406250007,28.10742187499997],[89.4806640625001,28.059960937499994],[88.89140625000002,27.316064453124966],[88.83251953125003,27.36284179687499],[88.7648437500001,27.429882812499983],[88.74902343749997,27.521875],[88.82988281250002,27.76738281249999],[88.84882812500004,27.86865234375],[88.80371093750003,28.006933593750034],[88.57792968750002,28.093359375000034],[88.42597656250004,28.01166992187501],[88.27519531250007,27.968847656250006],[88.14111328125003,27.94892578125001],[88.10898437500006,27.933007812499966],[88.10976562500005,27.870605468750057],[87.8607421875,27.886083984375006],[87.62255859374997,27.81518554687503],[87.29072265625004,27.821923828124994],[87.14140625000002,27.838330078124955],[87.02011718750006,27.928662109374983],[86.9337890625001,27.96845703125001],[86.84238281250012,27.99916992187505],[86.750390625,28.022070312500006],[86.71962890625005,28.070654296875034],[86.69052734375006,28.09492187500001],[86.61445312500004,28.10302734374997],[86.55449218750007,28.08520507812497],[86.51689453125007,27.963525390624966],[86.40869140625003,27.928662109374983],[86.32861328124997,27.95952148437496],[86.2179687500001,28.022070312500006],[86.13701171875002,28.114355468750063],[86.07871093750006,28.08359375],[86.0641601562501,27.934716796874966],[85.99453125000005,27.910400390625],[85.95410156249997,27.92822265624997],[85.92167968750002,27.989697265624983],[85.84023437500005,28.135351562499977],[85.75947265625004,28.220654296874955],[85.67832031250012,28.277441406249977],[85.41064453125003,28.27602539062505],[85.21210937500004,28.292626953124966],[85.1224609375,28.315966796875017],[85.08857421875004,28.37226562500001],[85.121484375,28.484277343750023],[85.16015624999997,28.571875],[85.15908203125,28.592236328124983],[85.1263671875,28.602636718750063],[85.06914062500007,28.60966796874999],[84.85507812500006,28.553613281250023],[84.796875,28.560205078125023],[84.2287109375001,28.911767578124966],[84.17558593750002,29.036376953125057],[84.12783203125005,29.15629882812496],[84.10136718750002,29.21997070312497],[84.02197265624997,29.25385742187504],[83.93593750000005,29.27949218750001],[83.58349609375003,29.18359375000003],[83.15546875000004,29.612646484375034],[82.22070312500003,30.063867187500023],[82.04335937500005,30.326757812500034],[81.8548828125,30.362402343750006],[81.64189453125007,30.3875],[81.4171875000001,30.33759765625001],[81.25507812500004,30.09331054687499],[81.17714843750005,30.039892578125034],[80.98544921875006,30.23710937499999],[80.87353515625003,30.290576171875045],[80.19121093750002,30.56840820312496],[80.20712890625006,30.683740234375023],[79.92451171875004,30.888769531250034],[79.66425781250004,30.96523437499999],[79.38847656250007,31.064208984375],[79.10712890625004,31.402636718750017],[78.74355468750005,31.323779296875017],[78.7550781250001,31.55029296875],[78.69345703125006,31.740380859374994],[78.72558593750003,31.983789062500023],[78.49589843750002,32.21577148437504],[78.4552734375001,32.30034179687502],[78.41748046874997,32.466699218749994],[78.38964843749997,32.51987304687498],[78.73671875,32.55839843750002],[78.75351562500012,32.49926757812506],[78.91894531249997,32.35820312500002],[79.16992187500003,32.497216796874994],[79.14550781250003,33.00146484375006],[79.10283203125007,33.05253906249996],[79.13515625000005,33.17192382812496],[79.1125,33.22626953125001],[78.94843750000004,33.346533203125006],[78.86503906250002,33.43110351562501],[78.78378906250006,33.80878906250004],[78.72666015625006,34.013378906249955],[78.97060546875,34.22822265625004],[78.93642578125,34.35195312500002],[78.86484375000006,34.39033203125001],[78.32695312500007,34.60639648437498],[78.15849609375002,34.94648437499998],[78.07578125000006,35.13491210937502],[78.0426757812501,35.47978515625002],[77.79941406250006,35.49589843750002],[77.44648437500004,35.47558593750006],[77.29482421875005,35.508154296875034],[77.09003906250004,35.55205078124999],[76.87890625000003,35.61328125000003],[76.76689453125002,35.661718750000034],[76.72753906250003,35.67866210937504],[76.63183593749997,35.729394531249966],[76.56347656249997,35.77299804687499],[76.55126953124997,35.887060546875034],[76.50205078125006,35.87822265625002],[76.38574218750003,35.837158203125],[76.25166015625004,35.8109375],[76.17783203125012,35.810546875],[76.14785156250005,35.82900390625002],[76.07089843750006,35.983007812500034],[75.91230468750004,36.048974609374994],[75.97441406250007,36.38242187500006],[75.9518554687501,36.458105468750034],[75.9330078125,36.52158203124998],[75.840234375,36.64970703124999],[75.7721679687501,36.694921875000034],[75.6671875000001,36.741992187500045],[75.57373046874997,36.75932617187502],[75.46025390625002,36.725048828124955],[75.42421875000005,36.73823242187498],[75.37685546875,36.88369140625005],[75.34667968749997,36.913476562499966],[75.05390625000004,36.98715820312498],[74.94912109375,36.96835937500006],[74.88925781250006,36.95244140625002],[74.69218750000007,37.035742187500006],[74.60058593749997,37.03666992187502],[74.54140625,37.02216796875001],[74.52646484375006,37.03066406250005],[74.49794921875,37.057226562500034],[74.37617187500004,37.13735351562502],[74.37216796875006,37.15771484375],[74.558984375,37.23662109374999],[74.66894531250003,37.266699218750006],[74.72666015625006,37.29072265625001],[74.7389648437501,37.28564453125003],[74.76738281250002,37.249169921874966],[74.840234375,37.22504882812504],[74.89130859375004,37.231640624999955],[75.11875,37.38569335937498],[74.8942382812501,37.60141601562498],[74.81230468750002,38.46030273437498],[74.27744140625,38.659765625000034],[74.02558593750004,38.53984375000002],[73.80166015625,38.60688476562501],[73.69609375000007,38.85429687499996],[73.8052734375,38.968652343749994],[73.60732421875,39.229199218749955],[73.63632812500006,39.396679687499955],[73.63164062500007,39.44887695312502],[73.82294921875004,39.48896484375004],[73.90712890625,39.578515624999966],[73.9146484375,39.60649414062499],[73.88251953125004,39.71455078124998],[73.83974609375005,39.76284179687505],[73.8353515625,39.800146484375006],[73.85625,39.828662109375045],[73.88457031250002,39.87792968750006],[73.93876953125002,39.97880859374999],[73.99160156250005,40.04311523437502],[74.83046875,40.32851562499999],[74.80126953124997,40.428515625000045],[74.83515625000004,40.482617187499955],[74.865625,40.493505859375034],[75.0044921875,40.44951171874996],[75.11132812499997,40.4541015625],[75.24101562500002,40.48027343750002],[75.52080078125002,40.627539062500006],[75.55556640625,40.625195312499955],[75.6771484375,40.305810546874994],[75.87197265625,40.30322265625],[76.25830078124997,40.43076171875006],[76.3185546875001,40.352246093749955],[76.39638671875005,40.389794921874966],[76.4801757812501,40.44951171874996],[76.57792968750002,40.577880859375],[76.62216796875006,40.66235351562497],[76.6398437500001,40.74223632812499],[76.66113281249997,40.77963867187498],[76.70839843750005,40.818115234375],[76.82402343750002,40.982324218749966],[76.90771484374997,41.02416992187497],[76.98662109375002,41.039160156250006],[77.58173828125004,40.99277343750006],[77.71933593750012,41.024316406249994],[77.81523437500002,41.05561523437498],[77.9564453125,41.05068359375005],[78.1234375,41.07563476562498],[78.34628906250012,41.28144531249998],[78.36240234375012,41.37163085937496],[78.44287109374997,41.41752929687499],[78.742578125,41.56005859375],[79.29355468750006,41.78281249999998],[79.76611328124997,41.89887695312501],[79.84042968750012,41.99575195312502],[79.90966796875003,42.014990234375034],[80.21621093750005,42.03242187500004],[80.23515625000007,42.04345703124997],[80.24619140625012,42.05981445312503],[80.209375,42.190039062500006],[80.20224609375012,42.73447265624998],[80.53896484375005,42.873486328124955],[80.39023437500006,43.043115234374966],[80.78574218750006,43.16157226562504],[80.35527343750002,44.09726562500006],[80.48154296875006,44.71464843749999],[79.871875,44.88378906249997],[80.05917968750012,45.006445312500006],[81.69199218750012,45.34936523437497],[81.94492187500006,45.16083984375001],[82.26660156249997,45.21909179687498],[82.52148437500003,45.12548828125],[82.61162109375007,45.424267578124955],[82.31523437500002,45.59492187499998],[83.02949218750004,47.18593750000002],[84.016015625,46.97050781250002],[84.66660156250006,46.97236328125004],[84.78613281249997,46.83071289062505],[85.484765625,47.06352539062496],[85.65664062500005,47.254638671875],[85.52597656250006,47.915625],[85.7494140625,48.38505859374999],[86.54941406250012,48.52861328125002],[86.8083007812501,49.04970703125002],[87.32285156250012,49.085791015625006],[87.41669921875004,49.07661132812501],[87.5158203125001,49.122412109375006],[87.7625,49.16582031249996],[87.81425781250002,49.162304687499955],[87.87216796875012,49.000146484374966],[87.74316406250003,48.88164062499999],[87.83183593750007,48.79165039062505],[88.02792968750006,48.735595703125],[88.06005859375003,48.707177734374966],[87.9796875000001,48.55512695312498],[88.30996093750005,48.47207031250002],[88.41396484375,48.403417968750006],[88.51708984374997,48.384472656249955],[88.56679687500005,48.31743164062496],[88.57597656250007,48.220166015624955],[88.68183593750004,48.170556640624994],[88.83828125000005,48.101708984374994],[88.91777343750007,48.089013671874966],[89.04765625000007,48.002539062500034],[89.47919921875004,48.02905273437503],[89.5609375,48.00395507812496],[89.778125,47.82700195312498],[89.83134765625002,47.82329101562502],[89.91044921875007,47.844335937500034],[89.95869140625004,47.88632812499998],[90.02792968750012,47.877685546875],[90.1032226562501,47.74541015624996],[90.19101562500012,47.70209960937501],[90.31328125000007,47.67617187499999],[90.33066406250006,47.655175781249966],[90.42519531250005,47.50410156250001],[90.49619140625012,47.28515625],[90.64335937500007,47.10029296874998],[90.71552734375004,47.00385742187498],[90.7990234375001,46.98515624999999],[90.86992187500002,46.95449218750005],[90.91054687500005,46.88325195312501],[90.9857421875,46.7490234375],[90.9115234375,46.270654296874994],[90.94755859375002,46.17729492187499],[90.99677734375004,46.10498046875],[91.00175781250007,46.03579101562502],[90.6618164062501,45.525244140625006],[90.87724609375002,45.19609375000002],[91.05,45.217431640624994],[91.584375,45.07651367187498],[92.42382812499997,45.008935546874994],[92.57890625000002,45.01098632812506],[92.78789062500007,45.035742187500034],[93.51621093750012,44.944482421874994],[94.71201171875012,44.35083007812503],[95.35029296875004,44.27807617187503],[95.32558593750005,44.03935546874999],[95.52558593750004,43.953955078125006],[95.85957031250004,43.27597656249998],[96.38544921875004,42.72036132812502],[97.20566406250012,42.78979492187506],[99.46787109375012,42.568212890625034],[99.98378906250005,42.67734375000006],[100.08632812500005,42.67075195312506],[100.51904296875003,42.61679687499998],[101.09199218750004,42.55131835937496],[101.49531250000004,42.53876953124998],[101.57910156249997,42.52353515624998],[101.65996093750002,42.50004882812499],[101.97294921875002,42.21586914062502],[102.15664062500005,42.158105468749966],[102.57519531249997,42.09208984375002],[103.07285156250006,42.00595703125006],[103.7111328125001,41.75131835937506],[103.99726562500004,41.796972656250034],[104.30517578124997,41.84614257812501],[104.49824218750004,41.87700195312499],[104.49824218750004,41.65869140625],[104.86035156250003,41.64375],[104.98203125000012,41.59550781250002],[105.05058593750002,41.61591796875001],[105.1154296875001,41.66328124999998],[105.19707031250002,41.738037109375],[105.31435546875005,41.77089843750005],[105.86757812500005,41.993994140625034],[106.77001953125003,42.28872070312502],[108.17119140625002,42.44731445312502],[108.68730468750002,42.416113281250034],[109.33984374999997,42.43837890625005],[109.44316406250002,42.455957031249994],[110.40039062499997,42.77368164062497],[111.00722656250005,43.34140624999998],[111.878125,43.68017578125],[111.93173828125012,43.81494140625],[111.40224609375005,44.367285156250006],[111.89804687500006,45.064062500000034],[112.03261718750005,45.08164062500006],[112.11289062500006,45.06293945312498],[112.41132812500004,45.05820312499998],[112.49931640625002,45.01093750000004],[112.59677734375006,44.917675781249955],[112.7067382812501,44.883447265624994],[113.04941406250006,44.81035156250002],[113.3009765625001,44.79165039062502],[113.50791015625006,44.76235351562502],[113.58701171875006,44.745703125],[113.65263671875002,44.76347656249999],[113.87705078125012,44.89619140625001],[114.03027343749997,44.942578124999955],[114.08027343750004,44.97114257812501],[114.41914062500004,45.20258789062501],[114.56015625000012,45.38999023437498],[114.73876953124997,45.41962890624998],[114.91923828125007,45.378271484375006],[115.16259765624997,45.390234375000034],[115.6810546875,45.45825195312503],[116.19765625,45.739355468750006],[116.240625,45.795996093750006],[116.22910156250012,45.84575195312502],[116.21298828125012,45.88691406249998],[116.56259765625012,46.28979492187497],[116.85908203125004,46.387939453125],[117.3333984375,46.36201171875004],[117.35693359375003,46.391308593749955],[117.35634765625,46.436669921874966],[117.39218750000012,46.53759765625003],[117.40556640625007,46.57089843750006],[117.43808593750012,46.58623046874999],[117.546875,46.58828125000005],[117.74121093749997,46.51816406250006],[118.07128906249997,46.666601562500006],[118.15683593750006,46.678564453125034],[118.30869140625012,46.71704101562497],[118.40439453125006,46.70317382812499],[118.58046875,46.69189453125],[118.64873046875002,46.70166015625006],[118.72294921875007,46.69189453125],[118.8439453125001,46.76020507812498],[118.95712890625006,46.73486328124997],[119.16210937499997,46.638671875],[119.33183593750002,46.61381835937499],[119.47402343750005,46.626660156249955],[119.62021484375006,46.60395507812504],[119.70664062500006,46.60600585937502],[119.74746093750005,46.62719726562497],[119.86718750000003,46.67216796874999],[119.89785156250005,46.857812499999966],[119.71113281250004,47.15],[119.08193359375,47.654150390625034],[119.01757812500003,47.68535156249999],[118.88027343750005,47.72509765625],[118.75996093750004,47.75761718749996],[118.69052734375012,47.822265625],[118.56777343750005,47.94326171875005],[118.49843750000005,47.98398437499998],[117.76835937500002,47.98789062499998],[117.3507812500001,47.65219726562498],[117.28593750000002,47.666357421875034],[117.06972656250005,47.80639648437506],[116.95166015624997,47.836572265624966],[116.90117187500007,47.85307617187496],[116.76054687500002,47.869775390624994],[116.65195312500012,47.86450195312497],[116.51347656250007,47.839550781249955],[116.37822265625002,47.84404296874999],[116.31718750000002,47.85986328125],[116.2311523437501,47.85820312500002],[116.07480468750012,47.78955078125],[115.99384765625004,47.71132812500005],[115.89824218750002,47.68691406250005],[115.6164062500001,47.874804687500045],[115.52509765625004,48.13085937499997],[115.63945312500007,48.18623046874998],[115.785546875,48.24824218750001],[115.7965820312501,48.346337890624994],[115.7916992187501,48.455712890624994],[115.8205078125001,48.57724609375006],[116.6833007812501,49.82377929687499],[117.8734375,49.51347656250002],[118.4515625,49.84448242187503],[119.25986328125012,50.06640625000003],[119.34628906250012,50.278955078124994],[119.16367187500006,50.40600585937503],[120.06689453125003,51.60068359375006],[120.74980468750007,52.096533203125006],[120.65615234375,52.56665039062503],[120.0675781250001,52.632910156250034],[120.09453125000007,52.787207031250034],[120.98544921875012,53.28457031250002],[123.6078125,53.546533203124994],[124.81230468750002,53.133837890625045],[125.075,53.20366210937496],[125.64902343750012,53.042285156250045],[126.34169921875,52.36201171875001],[126.92480468749997,51.10014648437496],[127.30703125000005,50.70795898437501],[127.33720703125007,50.35014648437502],[127.590234375,50.20898437500003],[127.55078124999997,49.801806640625045],[127.99960937500006,49.56860351562506],[128.70400390625,49.60014648437499],[129.0651367187501,49.374658203124966],[129.49814453125012,49.38881835937502],[130.1959960937501,48.89165039062499],[130.553125,48.861181640625006],[130.5521484375,48.602490234374955],[130.80429687500012,48.34150390624998],[130.7326171875001,48.01923828124998],[130.96191406249997,47.70932617187498],[132.47626953125004,47.714990234374994],[132.7072265625001,47.94726562500006],[133.14404296875003,48.10566406249998],[133.46835937500006,48.09716796875003],[134.29335937500005,48.37343750000002],[134.66523437500004,48.25390625],[134.56601562500006,48.02250976562502],[134.75234375,47.71542968749998],[134.1676757812501,47.30219726562501],[133.86132812500003,46.24775390625004],[133.43642578125,45.60468750000004],[133.18603515625003,45.49482421875004],[133.1134765625001,45.130712890625006],[132.93603515624997,45.029931640624994],[131.85185546875002,45.32685546875001],[131.44687500000012,44.984033203124966],[130.9816406250001,44.844335937500034],[131.2552734375,44.07158203124999],[131.25732421875003,43.378076171874994],[131.06855468750004,42.90224609375005],[130.42480468749997,42.72705078124997],[130.52695312500012,42.535400390625]]],[[[113.9977539062501,22.210498046875045],[113.83886718749997,22.24169921875003],[114.04394531250003,22.33339843750005],[113.9977539062501,22.210498046875045]]],[[[114.01542968750007,22.51191406250001],[114.26601562500005,22.540966796874983],[114.26796875,22.295556640624966],[113.93730468750002,22.364990234375],[114.01542968750007,22.51191406250001]]],[],[[[118.4074218750001,24.522119140624994],[118.43271484375006,24.414355468750074],[118.29511718750004,24.436328125000017],[118.4074218750001,24.522119140624994]]],[[[121.00878906249997,22.62036132812497],[120.83984375000003,21.925],[120.2328125,22.71791992187505],[120.0724609375001,23.149755859375006],[120.13212890625007,23.652929687500034],[121.040625,25.032812500000034],[121.59365234375,25.275341796874983],[121.92900390625002,24.973730468749977],[121.39746093750003,23.172509765625023],[121.00878906249997,22.62036132812497]]]]},"properties":{"name":"China","childNum":15}},{"geometry":{"type":"Polygon","coordinates":[[[-5.262304687499977,10.319677734374991],[-4.72177734374992,9.756542968750026],[-4.625830078125006,9.713574218749969],[-4.526611328124943,9.723486328125034],[-4.406201171874926,9.647998046875031],[-4.332226562499955,9.645703125],[-4.18115234375,9.78173828125],[-3.790625,9.917187499999983],[-3.581152343749977,9.924316406250014],[-3.289697265625023,9.882226562500051],[-3.223535156249937,9.895458984374997],[-3.160693359374932,9.849169921874974],[-3.095800781249949,9.752099609375009],[-3.042626953124937,9.72089843750004],[-2.988281249999972,9.687353515624963],[-2.900878906249943,9.534619140625026],[-2.875146484374937,9.500927734374997],[-2.816748046874949,9.425830078124974],[-2.766601562499943,9.424707031250009],[-2.7171875,9.457128906250048],[-2.695849609374989,9.481347656250009],[-2.686132812499977,9.43173828125002],[-2.705761718749983,9.351367187499989],[-2.74692382812492,9.04511718750004],[-2.689892578124955,9.02509765625004],[-2.649218750000017,8.956591796875031],[-2.600390625000017,8.800439453125023],[-2.505859375000028,8.208740234375],[-2.538281249999955,8.171630859374986],[-2.61171875,8.147558593749963],[-2.619970703125006,8.12109375],[-2.600976562499937,8.082226562499983],[-2.613378906249977,8.046679687500017],[-2.668847656249994,8.022216796875014],[-2.789746093749955,7.931933593750003],[-2.959082031249977,7.454541015624997],[-3.227148437499977,6.749121093749991],[-2.998291015624972,5.711328125000051],[-2.793652343749955,5.600097656250028],[-2.754980468749977,5.432519531249994],[-2.815673828125,5.153027343749997],[-3.168701171874972,5.203027343749966],[-3.199951171874943,5.3544921875],[-3.347558593749994,5.13066406249996],[-4.120166015625017,5.309716796875023],[-4.60888671875,5.235888671875003],[-4.037207031249977,5.23012695312498],[-4.899707031249932,5.138330078125023],[-5.282373046874994,5.210253906250017],[-5.36752929687492,5.15078125],[-5.061816406249989,5.13066406249996],[-5.913769531249926,5.0109375],[-7.544970703124989,4.351318359375],[-7.574658203124983,4.572314453124989],[-7.585058593749977,4.916748046875],[-7.39990234375,5.550585937499989],[-7.454394531249989,5.841308593749972],[-7.636132812499994,5.90771484375],[-7.730371093749994,5.919042968749991],[-7.800927734374994,6.038916015624991],[-7.833251953125,6.076367187499983],[-7.855517578125017,6.150146484375],[-7.888623046875011,6.234863281250028],[-7.981591796874937,6.2861328125],[-8.287109375,6.31904296875004],[-8.587890625,6.490527343749989],[-8.324511718749989,6.920019531249991],[-8.408740234374989,7.411816406249997],[-8.429980468749989,7.601855468749989],[-8.351757812499926,7.590576171875],[-8.231884765624955,7.556738281250034],[-8.205957031249994,7.590234375000023],[-8.115429687499926,7.760742187500028],[-8.126855468749937,7.867724609374974],[-8.00986328124992,8.078515625000023],[-8.048583984375,8.169726562500045],[-8.140625,8.181445312500031],[-8.217138671874949,8.219677734375011],[-8.256103515625,8.253710937500017],[-8.244140624999943,8.407910156249983],[-8.236962890624994,8.455664062500034],[-7.953125,8.477734375],[-7.823583984374977,8.467675781249994],[-7.738964843749983,8.375244140624986],[-7.696093749999932,8.375585937499977],[-7.71958007812492,8.643017578125011],[-7.950976562499989,8.786816406249997],[-7.938183593749983,8.97978515624996],[-7.902099609375,9.017089843750014],[-7.777978515624937,9.080859375000031],[-7.799804687499943,9.115039062499989],[-7.839404296875017,9.151611328124972],[-7.918066406249949,9.188525390625031],[-7.896191406249955,9.415869140624991],[-8.136962890624972,9.49570312499999],[-8.155175781249937,9.973193359375017],[-7.990625,10.1625],[-7.661132812500028,10.427441406250011],[-7.385058593749989,10.340136718749989],[-7.01708984375,10.143261718750026],[-6.950341796874994,10.342333984374989],[-6.693261718750023,10.34946289062502],[-6.669335937499937,10.39218750000002],[-6.69199218749992,10.512011718750017],[-6.686132812499977,10.578027343750051],[-6.676367187499949,10.633789062500043],[-6.654150390624949,10.65644531250004],[-6.482617187499983,10.561230468749997],[-6.250244140625,10.717919921875037],[-6.190673828124943,10.400292968749994],[-6.192626953124972,10.369433593750003],[-6.241308593749949,10.279199218750009],[-6.238378906249977,10.26162109374998],[-6.117187499999972,10.201904296874986],[-6.034570312499937,10.194824218750057],[-5.907568359375006,10.307226562500034],[-5.896191406249983,10.354736328125028],[-5.843847656249977,10.389550781250023],[-5.694287109374983,10.433203125000034],[-5.556591796874983,10.439941406249986],[-5.382275390625011,10.314013671875003],[-5.262304687499977,10.319677734374991]]]},"properties":{"name":"Côte d\'Ivoire","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[15.480078125,7.523779296874991],[15.206738281250011,7.206152343749991],[14.7392578125,6.27978515625],[14.43115234375,6.038720703124994],[14.616894531250011,5.865136718749994],[14.56298828125,5.279931640624994],[14.73125,4.602392578124991],[15.063574218750006,4.284863281249997],[15.128710937500017,3.826904296875],[16.0634765625,2.90859375],[16.183398437500017,2.270068359374989],[16.059375,1.676220703124997],[15.741601562500023,1.914990234374997],[14.902441406250006,2.012304687499991],[14.578906250000017,2.199121093749994],[13.293554687500006,2.161572265624997],[13.2203125,2.256445312499991],[11.558984375000023,2.302197265624997],[11.348437500000017,2.299707031249994],[11.328710937500006,2.167431640624997],[11.096582031250023,2.16748046875],[10.790917968750023,2.16757812499999],[9.979882812500023,2.167773437499989],[9.8701171875,2.21328125],[9.8369140625,2.242382812499997],[9.830371093750017,2.275488281249991],[9.826171875,2.297802734374997],[9.80078125,2.304443359375],[9.82177734375,2.539257812499997],[9.948437500000011,3.079052734374997],[9.672070312500011,3.53759765625],[9.765722656250006,3.623828124999989],[9.642382812500017,3.611767578124997],[9.55615234375,3.798046875],[9.739648437500023,3.852929687499994],[9.639941406250017,3.96533203125],[9.688867187500023,4.056396484375],[9.483691406250017,4.066113281249997],[9.42529296875,3.922314453124997],[9.000097656250006,4.091601562499989],[8.918261718750017,4.553759765624989],[8.660351562500011,4.670996093749991],[8.65625,4.516357421875],[8.53955078125,4.571875],[8.715625,5.046875],[8.997167968750006,5.917724609375],[9.490234375,6.418652343749997],[9.779882812500006,6.76015625],[9.820703125000023,6.783935546875],[9.874218750000011,6.803271484374989],[10.038867187500017,6.92138671875],[10.1435546875,6.996435546874991],[10.167773437500017,6.959179687499997],[10.185546875,6.912792968749997],[10.205468750000023,6.8916015625],[10.293066406250006,6.876757812499989],[10.413183593750006,6.877734374999989],[10.60625,7.063085937499991],[10.954199218750006,6.7765625],[11.032519531250017,6.697900390624994],[11.1064453125,6.457714843749997],[11.1533203125,6.437939453124997],[11.2373046875,6.450537109374991],[11.401757812500023,6.533935546875],[11.551660156250023,6.697265625],[11.580078125,6.888867187499997],[11.657519531250017,6.9515625],[11.861425781250006,7.11640625],[11.767382812500017,7.272265624999989],[11.809179687500006,7.345068359374991],[12.016015625000023,7.589746093749994],[12.2333984375,8.282324218749991],[12.403515625000011,8.595556640624991],[12.582714843750011,8.624121093749991],[12.651562500000011,8.667773437499989],[12.7822265625,8.81787109375],[12.806542968750023,8.886621093749994],[12.875683593750011,9.303515624999989],[12.929492187500017,9.42626953125],[13.19873046875,9.563769531249989],[13.269921875000023,10.036181640624989],[13.41455078125,10.171435546874989],[13.535351562500011,10.60507812499999],[13.699902343750011,10.873144531249991],[13.89208984375,11.140087890624997],[13.9814453125,11.211865234374997],[14.056738281250006,11.245019531249994],[14.143261718750011,11.24853515625],[14.202343750000011,11.268164062499991],[14.559765625000011,11.492285156249991],[14.619726562500006,12.150976562499991],[14.518945312500023,12.298242187499994],[14.272851562500023,12.356494140624989],[14.184863281250017,12.447216796874997],[14.06396484375,13.07851562499999],[14.244824218750011,13.07734375],[14.461718750000017,13.021777343749989],[14.847070312500023,12.502099609374994],[15.08125,11.845507812499989],[15.029882812500006,11.11367187499999],[15.132226562500023,10.648486328124989],[15.276074218750011,10.357373046874997],[15.654882812500006,10.0078125],[14.243261718750006,9.979736328125],[13.977246093750011,9.691552734374994],[14.332324218750017,9.20351562499999],[15.1162109375,8.557324218749997],[15.5498046875,7.787890624999989],[15.480078125,7.523779296874991]]]},"properties":{"name":"Cameroon","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[27.4033203125,5.109179687499989],[27.7880859375,4.644677734374994],[28.19208984375001,4.350244140624994],[28.427539062500017,4.324169921874997],[28.72705078125,4.504980468749991],[29.224902343750017,4.391894531249989],[29.469628906250023,4.61181640625],[29.676855468750006,4.5869140625],[30.194921875,3.98193359375],[30.50830078125,3.835693359375],[30.586718750000017,3.62421875],[30.757226562500023,3.62421875],[30.83857421875001,3.49072265625],[30.90644531250001,3.408935546875],[30.754003906250006,3.041796874999989],[30.8466796875,2.847021484374991],[30.728613281250006,2.455371093749989],[31.176367187500006,2.270068359374989],[31.252734375000017,2.044580078124994],[29.94287109375,0.819238281249994],[29.934472656250023,0.4990234375],[29.717675781250023,0.098339843749997],[29.576953125000017,-1.387890625000011],[29.196582031250017,-1.719921875000011],[29.13154296875001,-2.195117187500003],[28.876367187500023,-2.400292968750009],[28.893945312500023,-2.635058593750003],[29.01435546875001,-2.72021484375],[29.224414062500017,-3.053515625],[29.211816406250023,-3.833789062500003],[29.403222656250023,-4.449316406250006],[29.404199218750023,-4.496679687500006],[29.32568359375,-4.835644531250011],[29.32343750000001,-4.898828125],[29.3427734375,-4.983105468750011],[29.542382812500023,-5.499804687500003],[29.594140625000023,-5.65078125],[29.60703125,-5.72265625],[29.59638671875001,-5.775976562500006],[29.490820312500006,-5.965429687500006],[29.480078125,-6.025],[29.50625,-6.172070312500011],[29.540820312500017,-6.313867187500009],[29.590625,-6.394433593750009],[29.70966796875001,-6.616894531250011],[29.798144531250017,-6.69189453125],[29.961816406250023,-6.803125],[30.10625,-6.9150390625],[30.212695312500017,-7.037890625],[30.31318359375001,-7.203710937500006],[30.40673828125,-7.460644531250011],[30.75117187500001,-8.193652343750003],[28.89814453125001,-8.485449218750006],[28.869531250000023,-8.785839843750011],[28.400683593750017,-9.224804687500011],[28.60419921875001,-9.678808593750006],[28.6455078125,-10.550195312500009],[28.383398437500006,-11.566699218750003],[28.482519531250006,-11.812109375],[29.064355468750023,-12.348828125000011],[29.48554687500001,-12.41845703125],[29.508203125000023,-12.228222656250011],[29.79511718750001,-12.155468750000011],[29.775195312500017,-13.438085937500006],[29.55419921875,-13.248925781250009],[29.20185546875001,-13.398339843750009],[29.014257812500006,-13.368847656250011],[28.730078125,-12.925488281250011],[28.550878906250006,-12.836132812500011],[28.412890625000017,-12.51806640625],[27.573828125,-12.22705078125],[27.1591796875,-11.579199218750006],[26.824023437500017,-11.965234375],[26.025976562500006,-11.89013671875],[25.349414062500017,-11.623046875],[25.28876953125001,-11.21240234375],[24.3779296875,-11.417089843750006],[24.36572265625,-11.1298828125],[23.96650390625001,-10.871777343750011],[23.901171875000017,-10.983203125],[23.833886718750023,-11.013671875],[23.463964843750006,-10.969335937500006],[23.076269531250006,-11.087890625],[22.814746093750017,-11.080273437500011],[22.56103515625,-11.055859375000011],[22.486132812500017,-11.08671875],[22.392968750000023,-11.159472656250003],[22.31494140625,-11.198632812500009],[22.27880859375,-11.194140625],[22.226171875,-11.121972656250009],[22.203515625000023,-10.829492187500009],[22.307031250000023,-10.691308593750009],[22.19775390625,-10.040625],[21.81318359375001,-9.46875],[21.905371093750006,-8.693359375],[21.806054687500023,-7.32861328125],[21.751074218750006,-7.30546875],[21.190332031250023,-7.284960937500003],[20.910937500000017,-7.281445312500011],[20.607812500000023,-7.277734375],[20.558398437500017,-7.244433593750003],[20.53583984375001,-7.182812500000011],[20.536914062500017,-7.121777343750011],[20.598730468750006,-6.93515625],[20.59003906250001,-6.919921875],[20.482226562500017,-6.915820312500003],[20.190039062500006,-6.9462890625],[19.997460937500023,-6.976464843750009],[19.87519531250001,-6.986328125],[19.527636718750017,-7.144433593750009],[19.483789062500023,-7.279492187500011],[19.479882812500023,-7.47216796875],[19.371679687500006,-7.655078125],[19.369921875000017,-7.70654296875],[19.3408203125,-7.966601562500003],[19.142675781250006,-8.00146484375],[18.944433593750006,-8.00146484375],[18.56269531250001,-7.9359375],[18.0087890625,-8.107617187500011],[17.643359375000017,-8.090722656250009],[17.57958984375,-8.099023437500009],[16.984765625000023,-7.257421875],[16.91943359375,-6.933984375],[16.813085937500006,-6.772558593750006],[16.742968750000017,-6.618457031250003],[16.697265625,-6.164257812500011],[16.537109375,-5.9658203125],[16.431445312500017,-5.900195312500003],[16.315234375000017,-5.865625],[13.978515625,-5.857226562500003],[13.346484375000017,-5.863378906250006],[13.184375,-5.85625],[12.452929687500017,-6.00048828125],[12.213671875000017,-5.758691406250009],[12.484570312500011,-5.71875],[12.451464843750017,-5.071484375000011],[12.502734375000017,-5.036914062500003],[12.573535156250017,-4.99658203125],[12.59619140625,-4.978417968750009],[12.8296875,-4.736621093750003],[12.947460937500011,-4.6953125],[13.057324218750011,-4.651074218750011],[13.07275390625,-4.634765625],[13.08740234375,-4.601953125],[13.136621093750023,-4.604296875],[13.414941406250023,-4.83740234375],[13.659570312500023,-4.721484375],[13.717089843750017,-4.454492187500009],[13.94091796875,-4.484667968750003],[14.358300781250023,-4.299414062500006],[14.449804687500006,-4.449511718750003],[14.365429687500011,-4.585546875],[14.410742187500006,-4.83125],[14.707910156250023,-4.881738281250009],[15.990039062500017,-3.766210937500006],[16.217382812500006,-3.0302734375],[16.21533203125,-2.177832031250006],[16.54072265625001,-1.840136718750003],[16.8798828125,-1.225878906250003],[17.752832031250023,-0.549023437500011],[18.072167968750023,2.01328125],[18.49091796875001,2.924414062499991],[18.6103515625,3.478417968749994],[18.594140625000023,4.346240234374989],[19.06855468750001,4.891406249999989],[19.5009765625,5.127490234374989],[19.806542968750023,5.089306640624997],[20.226367187500017,4.829638671874989],[20.55810546875,4.462695312499989],[22.422167968750017,4.134960937499997],[22.864550781250017,4.723876953125],[23.41718750000001,4.663134765624989],[24.31982421875,4.994140625],[25.065234375000017,4.967431640624994],[25.52509765625001,5.31210937499999],[26.822070312500017,5.062402343749994],[27.071875,5.199755859374989],[27.4033203125,5.109179687499989]]]},"properties":{"name":"Dem. Rep. Congo","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[18.6103515625,3.478417968749994],[18.49091796875001,2.924414062499991],[18.072167968750023,2.01328125],[17.752832031250023,-0.549023437500011],[16.8798828125,-1.225878906250003],[16.54072265625001,-1.840136718750003],[16.21533203125,-2.177832031250006],[16.217382812500006,-3.0302734375],[15.990039062500017,-3.766210937500006],[14.707910156250023,-4.881738281250009],[14.410742187500006,-4.83125],[14.365429687500011,-4.585546875],[14.449804687500006,-4.449511718750003],[14.358300781250023,-4.299414062500006],[13.94091796875,-4.484667968750003],[13.717089843750017,-4.454492187500009],[13.659570312500023,-4.721484375],[13.414941406250023,-4.83740234375],[13.136621093750023,-4.604296875],[13.08740234375,-4.601953125],[13.07275390625,-4.634765625],[13.048046875000011,-4.619238281250006],[12.971386718750011,-4.5517578125],[12.881054687500011,-4.445117187500003],[12.84814453125,-4.428906250000011],[12.50146484375,-4.5875],[12.018359375000017,-5.004296875],[11.777539062500011,-4.565820312500009],[11.130175781250017,-3.916308593750003],[11.234472656250006,-3.690820312500009],[11.504296875000023,-3.5203125],[11.685742187500011,-3.68203125],[11.8798828125,-3.665917968750009],[11.934179687500006,-3.318554687500011],[11.715429687500006,-3.176953125000011],[11.760156250000023,-2.983105468750011],[11.537792968750011,-2.83671875],[11.60546875,-2.342578125],[12.064453125,-2.41259765625],[12.446386718750006,-2.329980468750009],[12.43212890625,-1.928906250000011],[12.590429687500006,-1.826855468750011],[12.793554687500006,-1.931835937500011],[12.991992187500017,-2.313378906250009],[13.464941406250006,-2.395410156250009],[13.733789062500023,-2.138476562500003],[13.886914062500011,-2.465429687500006],[13.993847656250011,-2.490625],[14.199804687500006,-2.354199218750011],[14.162890625000017,-2.217578125],[14.383984375000011,-1.890039062500009],[14.47412109375,-0.573437500000011],[13.860058593750011,-0.203320312500011],[13.949609375000023,0.353808593749989],[14.32421875,0.62421875],[14.429882812500011,0.901464843749991],[14.180859375000011,1.370214843749991],[13.851367187500017,1.41875],[13.21630859375,1.2484375],[13.172167968750017,1.78857421875],[13.293554687500006,2.161572265624997],[14.578906250000017,2.199121093749994],[14.902441406250006,2.012304687499991],[15.741601562500023,1.914990234374997],[16.059375,1.676220703124997],[16.183398437500017,2.270068359374989],[16.468554687500017,2.831738281249997],[16.610742187500023,3.50537109375],[17.491601562500023,3.687304687499989],[18.160937500000017,3.499804687499989],[18.474414062500017,3.622998046874997],[18.6103515625,3.478417968749994]]]},"properties":{"name":"Congo","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-71.31972656249997,11.861914062500048],[-71.95810546875,11.66640625],[-72.24848632812501,11.196435546875009],[-72.690087890625,10.835839843749994],[-72.86933593750001,10.49125976562496],[-73.00654296874998,9.789160156250006],[-73.36621093749997,9.194140625000017],[-73.05839843749999,9.259570312500031],[-72.79638671874997,9.10898437499999],[-72.66542968749994,8.62758789062498],[-72.39033203124995,8.287060546874969],[-72.47197265624996,7.524267578124991],[-72.20771484374995,7.37026367187498],[-72.00664062499993,7.032617187500023],[-71.12861328124993,6.98671875],[-70.73715820312503,7.090039062499997],[-70.12919921874999,6.95361328125],[-69.42714843749997,6.123974609374997],[-68.47177734375,6.156542968749974],[-67.85917968749999,6.289892578124963],[-67.48198242187499,6.18027343750002],[-67.47387695312503,5.929980468750003],[-67.82490234374995,5.270458984375026],[-67.85527343750002,4.506884765624989],[-67.66162109375,3.864257812499986],[-67.3111328125,3.41586914062502],[-67.85908203124998,2.793603515624994],[-67.61870117187496,2.793603515624994],[-67.21083984375,2.390136718750043],[-66.87602539062499,1.223046875000037],[-67.082275390625,1.185400390625006],[-67.11923828124998,1.703613281249986],[-67.40043945312499,2.116699218750028],[-67.93623046874998,1.748486328124969],[-68.19379882812495,1.987011718749983],[-68.25595703125,1.845507812500017],[-68.17656249999999,1.719824218749991],[-69.84858398437493,1.708740234375043],[-69.85214843750003,1.05952148437504],[-69.31181640624999,1.050488281249969],[-69.15332031249994,0.65878906250002],[-69.47211914062498,0.72993164062504],[-70.05390624999993,0.578613281250028],[-70.07050781249993,-0.13886718750004],[-69.63398437500001,-0.50927734375],[-69.40024414062498,-1.194921874999977],[-69.66904296875003,-2.667675781249997],[-69.94819335937498,-4.200585937500009],[-69.96591796875003,-4.2359375],[-70.16752929687499,-4.050195312500009],[-70.24028320312496,-3.882714843749994],[-70.2984375,-3.844238281249972],[-70.33950195312502,-3.814355468750009],[-70.73510742187497,-3.781542968749989],[-70.09584960937494,-2.658203125000014],[-70.16474609374995,-2.639843750000011],[-70.24443359375002,-2.606542968749977],[-70.29462890624995,-2.552539062499989],[-70.57587890624995,-2.418261718749989],[-70.64799804687499,-2.405761718750014],[-70.70537109374996,-2.341992187499983],[-70.91455078125003,-2.218554687499974],[-70.96855468750002,-2.206835937499989],[-71.02729492187498,-2.225781250000026],[-71.11337890625003,-2.245410156250031],[-71.19638671874998,-2.313085937499963],[-71.39697265625,-2.334082031249977],[-71.55947265624997,-2.224218749999977],[-71.75253906249995,-2.15273437499998],[-71.80273437499997,-2.166308593749989],[-71.86728515624998,-2.227734374999983],[-71.932470703125,-2.288671874999963],[-71.98427734375,-2.326562499999952],[-72.21845703125001,-2.400488281250006],[-72.94111328124998,-2.394042968750028],[-72.9896484375,-2.33974609374998],[-73.15449218749993,-2.278222656249966],[-73.19697265624995,-1.830273437500011],[-73.49628906249993,-1.69306640625004],[-73.66430664062497,-1.248828124999946],[-73.86318359374997,-1.19667968749998],[-73.92695312500001,-1.125195312499983],[-73.98681640625003,-1.098144531249986],[-74.05439453124995,-1.028613281250031],[-74.18076171875,-0.997753906249955],[-74.24638671874999,-0.970605468750023],[-74.28388671874998,-0.927832031250006],[-74.33442382812498,-0.85087890624996],[-74.41787109375,-0.580664062499977],[-74.46518554687498,-0.517675781250034],[-74.51386718749993,-0.470117187500023],[-74.555078125,-0.429882812499997],[-74.61635742187494,-0.370019531249966],[-74.691650390625,-0.335253906249989],[-74.75537109375003,-0.298632812499989],[-74.78046874999998,-0.24453125],[-74.80175781249997,-0.200097656249994],[-75.13837890624998,-0.050488281249969],[-75.28447265624999,-0.10654296875002],[-75.77666015624999,0.08925781249998],[-76.27060546874998,0.439404296874997],[-76.49462890624997,0.23544921875002],[-77.396337890625,0.393896484374963],[-77.46767578124997,0.636523437500017],[-77.702880859375,0.837841796874997],[-78.1806640625,0.968554687499974],[-78.85966796874996,1.455371093750031],[-79.02543945312499,1.623681640625037],[-78.79296874999994,1.848730468749963],[-78.576904296875,1.773779296874977],[-78.59169921875,2.356640624999969],[-78.41689453125,2.483496093749963],[-78.06665039062494,2.509130859375034],[-77.81357421875,2.716357421874974],[-77.076806640625,3.913281250000026],[-77.26352539062503,3.893212890625023],[-77.27802734374995,4.058496093750023],[-77.35820312499996,3.944726562500037],[-77.40874023437496,4.24775390625004],[-77.52070312499993,4.212792968750023],[-77.35351562499997,4.398291015624977],[-77.28632812499995,4.72172851562496],[-77.373291015625,5.323974609375],[-77.53442382812497,5.537109374999986],[-77.24926757812497,5.780175781250037],[-77.46943359374995,6.176757812500014],[-77.368798828125,6.575585937499994],[-77.90117187499999,7.229345703125048],[-77.76191406249995,7.698828125000034],[-77.53828124999995,7.56625976562502],[-77.19599609374995,7.972460937500003],[-77.47851562499994,8.498437500000037],[-77.37421874999993,8.65830078125002],[-76.85185546875002,8.09047851562498],[-76.924658203125,7.973193359374974],[-76.78657226562493,7.931591796875026],[-76.7720703125,8.310546875000043],[-76.92045898437496,8.573730468750014],[-76.27685546875,8.989111328124991],[-76.02724609374997,9.365771484374989],[-75.63935546874998,9.450439453125014],[-75.680029296875,9.729785156249989],[-75.53857421874997,10.205175781250034],[-75.708349609375,10.143408203124963],[-75.44599609374995,10.610888671874989],[-74.84458007812498,11.109716796875006],[-74.330224609375,10.996679687499991],[-74.51625976562497,10.8625],[-74.40087890625,10.76523437499999],[-74.14291992187503,11.320849609375031],[-73.31337890624997,11.295751953124991],[-72.275,11.88925781250002],[-72.13574218749994,12.188574218749977],[-71.71455078124993,12.41997070312496],[-71.26210937499997,12.335302734375034],[-71.13730468750003,12.04633789062504],[-71.31972656249997,11.861914062500048]]]},"properties":{"name":"Colombia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[43.788671875,-12.307031250000023],[43.85898437500006,-12.368261718749977],[43.66367187500006,-12.342871093749949],[43.63134765624997,-12.247070312499972],[43.788671875,-12.307031250000023]]],[[[44.476367187500074,-12.08154296875],[44.504980468750006,-12.356542968749991],[44.220117187499994,-12.171386718750014],[44.476367187500074,-12.08154296875]]],[[[43.46582031249997,-11.901269531249966],[43.226660156250006,-11.75185546874998],[43.2990234375001,-11.374511718750028],[43.39296875000005,-11.408593749999952],[43.46582031249997,-11.901269531249966]]]]},"properties":{"name":"Comoros","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-24.308251953124966,14.856298828124991],[-24.44052734374992,14.834814453124963],[-24.496875,14.980273437500017],[-24.329492187499937,15.019482421875011],[-24.308251953124966,14.856298828124991]]],[[[-23.18212890624997,15.136767578125017],[-23.210253906250017,15.32353515625006],[-23.119335937499955,15.26840820312502],[-23.18212890624997,15.136767578125017]]],[[[-23.444238281249994,15.00795898437498],[-23.5046875,14.916113281250006],[-23.70537109374999,14.96132812499998],[-23.74809570312499,15.328515625],[-23.444238281249994,15.00795898437498]]],[[[-22.917724609375,16.237255859374955],[-22.69262695312497,16.169042968750006],[-22.710107421874994,16.043359374999966],[-22.95927734374996,16.045117187499983],[-22.917724609375,16.237255859374955]]],[[[-24.08769531249999,16.62250976562501],[-24.03271484374997,16.57202148437503],[-24.243066406250023,16.599414062500017],[-24.32236328124992,16.49311523437504],[-24.398095703124966,16.61840820312497],[-24.08769531249999,16.62250976562501]]],[[[-22.888330078124966,16.659082031249994],[-22.980615234374937,16.700878906249983],[-22.93291015624999,16.84101562500004],[-22.888330078124966,16.659082031249994]]],[[[-24.88706054687495,16.81811523437497],[-25.09306640624999,16.83251953125],[-24.936474609374983,16.92211914062503],[-24.88706054687495,16.81811523437497]]],[[[-25.169824218749994,16.94648437500001],[-25.308300781249955,16.93583984374999],[-25.337109374999955,17.091015624999983],[-25.03466796875,17.176464843749983],[-24.979687499999983,17.09472656250003],[-25.169824218749994,16.94648437500001]]]]},"properties":{"name":"Cape Verde","childNum":8}},{"geometry":{"type":"Polygon","coordinates":[[[-83.6419921875,10.917236328125],[-83.346826171875,10.315380859374997],[-82.77841796874999,9.66953125],[-82.56357421874999,9.57666015625],[-82.56923828125,9.55820312499999],[-82.58652343749999,9.538818359375],[-82.64409179687499,9.505859375],[-82.801025390625,9.591796875],[-82.843994140625,9.57080078125],[-82.86015624999999,9.511474609375],[-82.88896484374999,9.481005859374989],[-82.925048828125,9.469042968749989],[-82.93984375,9.449169921874997],[-82.94033203125,9.060107421874989],[-82.88134765625,9.055859375],[-82.78305664062499,8.990283203124989],[-82.741162109375,8.951708984374989],[-82.72783203124999,8.916064453124989],[-82.91704101562499,8.740332031249991],[-82.855712890625,8.635302734374989],[-82.84477539062499,8.489355468749991],[-82.86162109374999,8.45351562499999],[-83.02734375,8.337744140624991],[-82.879345703125,8.070654296874991],[-83.12333984374999,8.353076171874989],[-83.16240234374999,8.588183593749989],[-83.4697265625,8.706835937499989],[-83.29150390625,8.406005859375],[-83.54375,8.445849609374989],[-83.73408203125,8.614453125],[-83.613720703125,8.804052734374991],[-83.73691406249999,9.150292968749994],[-84.58159179687499,9.568359375],[-84.71494140624999,9.8994140625],[-85.23564453124999,10.242089843749994],[-85.2365234375,10.107373046874997],[-84.88642578125,9.820947265624994],[-85.07705078125,9.60195312499999],[-85.31455078124999,9.8109375],[-85.62485351562499,9.902441406249991],[-85.84965820312499,10.292041015624989],[-85.667236328125,10.745019531249994],[-85.90800781249999,10.897558593749991],[-85.7443359375,11.06210937499999],[-85.5841796875,11.189453125],[-84.9091796875,10.9453125],[-84.6341796875,11.045605468749997],[-83.91928710937499,10.7353515625],[-83.71293945312499,10.785888671875],[-83.6419921875,10.917236328125]]]},"properties":{"name":"Costa Rica","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-82.56176757812503,21.571679687500023],[-82.959619140625,21.441308593750023],[-83.18378906250001,21.59345703125004],[-82.97358398437498,21.592285156250057],[-83.08251953124997,21.791406250000023],[-82.99121093750003,21.942724609375034],[-82.71455078124998,21.890283203125023],[-82.56176757812503,21.571679687500023]]],[[[-77.66899414062493,21.951953125000045],[-77.91855468749998,22.088085937499983],[-77.63369140624994,22.054003906250074],[-77.66899414062493,21.951953125000045]]],[[[-77.87939453125,22.127539062500034],[-78.04165039062502,22.201269531250034],[-77.99921874999998,22.298730468749994],[-77.87939453125,22.127539062500034]]],[[[-81.83745117187499,23.163037109374955],[-81.26235351562497,23.156835937500034],[-81.14462890624998,23.054931640625057],[-80.65014648437494,23.10307617187499],[-80.36489257812502,22.943408203125074],[-79.82026367187498,22.887011718750045],[-79.27568359374999,22.407617187499994],[-78.68647460937493,22.366845703125023],[-77.63681640624995,21.79736328125],[-77.49711914062502,21.78833007812503],[-77.58315429687497,21.889257812499977],[-77.49726562499995,21.871630859375045],[-77.14414062499995,21.643603515625017],[-77.36616210937498,21.612646484375034],[-77.25288085937498,21.483496093750006],[-77.0986328125,21.589013671875023],[-76.86743164062497,21.330419921875006],[-75.72294921874996,21.111035156249983],[-75.59580078125,20.99467773437499],[-75.72456054687493,20.71455078125004],[-74.882568359375,20.65063476562497],[-74.51313476562495,20.384570312500045],[-74.16748046874997,20.292187499999955],[-74.15371093750002,20.168554687500006],[-75.11640624999995,19.901416015625017],[-75.151611328125,20.008349609375045],[-75.29047851562495,19.893115234375017],[-76.15844726562497,19.98974609374997],[-77.715087890625,19.85546874999997],[-77.10380859374999,20.407519531250017],[-77.22958984374995,20.64375],[-78.11635742187497,20.761865234374994],[-78.49077148437493,21.05371093750003],[-78.72768554687497,21.592724609374955],[-79.35742187500003,21.58515625000001],[-80.23134765625,21.872167968750063],[-80.48544921874998,22.1234375],[-81.03564453124997,22.073583984375063],[-81.18549804687495,22.26796875000005],[-81.284375,22.109423828125074],[-81.84941406249993,22.21367187499999],[-82.077734375,22.3876953125],[-81.71035156250002,22.496679687500006],[-81.83881835937498,22.672460937500034],[-82.73803710937497,22.689257812500074],[-83.37963867187503,22.222998046875034],[-83.90073242187495,22.17011718750001],[-84.03095703124993,21.94311523437503],[-84.502587890625,21.776171875000045],[-84.50136718750002,21.930273437499977],[-84.88720703125003,21.856982421875074],[-84.32636718749998,22.074316406250034],[-84.36127929687498,22.37890625],[-84.04492187500003,22.666015625000057],[-83.25781249999997,22.967578125000017],[-81.83745117187499,23.163037109374955]]]]},"properties":{"name":"Cuba","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[-68.75107421874999,12.059765625],[-68.9951171875,12.141845703125],[-69.15888671875,12.380273437499994],[-68.75107421874999,12.059765625]]]},"properties":{"name":"Curaçao","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-81.36953124999997,19.34887695312497],[-81.10712890624995,19.305175781250057],[-81.40478515624994,19.278417968750006],[-81.36953124999997,19.34887695312497]]],[[[-79.823388671875,19.711914062500057],[-79.90620117187501,19.702539062499994],[-79.74228515625,19.757128906250017],[-79.823388671875,19.711914062500057]]]]},"properties":{"name":"Cayman Is.","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[34.004492187500006,35.065234375],[33.47578125000001,35.000341796875],[33.3837890625,35.1626953125],[32.91953125,35.087841796875],[32.71269531250002,35.171044921874994],[32.8798828125,35.180566406249994],[32.94160156250001,35.390429687499996],[33.60761718750001,35.354150390624994],[34.55605468750002,35.662060546875],[33.941992187500006,35.292041015624996],[34.004492187500006,35.065234375]]]},"properties":{"name":"N. Cyprus","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[32.71269531250002,35.171044921874994],[32.91953125,35.087841796875],[33.3837890625,35.1626953125],[33.47578125000001,35.000341796875],[34.004492187500006,35.065234375],[34.05019531250002,34.98837890625],[33.69941406250001,34.969873046874994],[33.007910156250006,34.569580078125],[32.44902343750002,34.729443359375],[32.31718750000002,34.9533203125],[32.30097656250001,35.082958984375],[32.71269531250002,35.171044921874994]]]},"properties":{"name":"Cyprus","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[14.809375,50.858984375],[14.895800781250017,50.861376953124996],[14.98291015625,50.886572265625],[14.99375,51.01435546875],[16.007226562500023,50.611621093749996],[16.2822265625,50.655615234375],[16.419726562500017,50.573632812499994],[16.210351562500023,50.423730468749994],[16.63916015625,50.1021484375],[16.989648437500023,50.2369140625],[16.88007812500001,50.427050781249996],[17.41523437500001,50.254785156249994],[17.702246093750006,50.307177734374996],[17.627050781250006,50.11640625],[17.874804687500017,49.972265625],[18.0283203125,50.03525390625],[18.562402343750023,49.879345703125],[18.83222656250001,49.510791015624996],[18.160937500000017,49.257373046874996],[18.0859375,49.06513671875],[17.75849609375001,48.888134765625],[17.135644531250023,48.841064453125],[16.953125,48.598828125],[16.543554687500006,48.796240234375],[16.057226562500006,48.754785156249994],[15.066796875000023,48.997851562499996],[14.691308593750023,48.59921875],[14.049121093750017,48.602490234375],[13.814746093750017,48.766943359375],[13.769921875000023,48.815966796874996],[13.684960937500023,48.876708984375],[13.547656250000017,48.95966796875],[13.440722656250017,48.95556640625],[13.401171875000017,48.977587890624996],[12.916699218750011,49.33046875],[12.68115234375,49.414501953125],[12.390527343750023,49.739648437499994],[12.5125,49.87744140625],[12.09921875,50.310986328125],[12.134863281250006,50.3109375],[12.1748046875,50.288378906249996],[12.231152343750011,50.244873046875],[12.27734375,50.181445312499996],[12.3056640625,50.205712890624994],[12.549023437500011,50.393408203125],[13.016406250000017,50.490380859374994],[13.18115234375,50.510498046875],[14.369042968750023,50.898730468749996],[14.319726562500023,51.03779296875],[14.545703125000017,50.993945312499996],[14.559667968750006,50.954931640625],[14.59521484375,50.918603515624994],[14.623828125000017,50.91474609375],[14.613574218750017,50.85556640625],[14.658203125,50.8326171875],[14.723339843750011,50.814697265625],[14.766503906250023,50.818310546875],[14.797460937500006,50.842333984374996],[14.809375,50.858984375]]]},"properties":{"name":"Czech Rep.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[14.1982421875,53.919042968750034],[13.92578125,53.879052734374966],[13.827734375,54.12724609374999],[14.1982421875,53.919042968750034]]],[[[13.709179687500011,54.382714843749994],[13.707324218750074,54.281152343749994],[13.190039062500034,54.32563476562501],[13.336816406249994,54.697119140625006],[13.65761718750008,54.55957031249997],[13.709179687500011,54.382714843749994]]],[[[9.739746093750028,54.82553710937498],[10.022167968750011,54.673925781250006],[9.86865234375,54.47246093749999],[10.731542968750006,54.31625976562506],[11.013378906250068,54.37915039062497],[11.008593750000074,54.18115234374997],[10.810742187500068,54.075146484374955],[10.917773437500045,53.99531250000004],[11.39960937500004,53.94462890625002],[12.111328125,54.168310546875006],[12.57539062500004,54.467382812500006],[13.028613281250017,54.411035156249994],[13.448046875000017,54.14086914062503],[13.724218750000063,54.153222656249966],[13.865527343750074,53.85336914062498],[14.258886718750006,53.729638671874994],[14.298730468750051,53.55644531249999],[14.41455078125,53.28349609374996],[14.412304687500011,53.216748046874955],[14.410937500000074,53.19902343749999],[14.368554687500051,53.105566406250034],[14.293164062500068,53.026757812499966],[14.138867187500068,52.93286132812503],[14.128613281250011,52.87822265625002],[14.253710937500017,52.78251953124996],[14.514062500000023,52.645605468750034],[14.619433593750017,52.52851562499998],[14.569726562499994,52.431103515624955],[14.554589843750023,52.35966796874996],[14.573925781250068,52.31416015625001],[14.615625,52.277636718750045],[14.679882812500068,52.25],[14.752539062500034,52.08183593750002],[14.601660156250034,51.832373046875006],[14.738671875000051,51.62714843750004],[14.7109375,51.54492187499997],[14.724707031250063,51.523876953124955],[14.90595703125004,51.463330078124955],[14.935546875000028,51.435351562500045],[14.9638671875,51.095117187499994],[14.917480468750057,51.00874023437498],[14.814257812499989,50.871630859375045],[14.809375,50.858984375000034],[14.797460937500034,50.84233398437502],[14.766503906250051,50.81831054687501],[14.72333984375004,50.81469726562497],[14.658203125,50.832617187500006],[14.613574218750045,50.85556640625006],[14.623828125000017,50.91474609375004],[14.595214843750057,50.91860351562502],[14.559667968750006,50.954931640625034],[14.545703124999989,50.99394531249999],[14.319726562500051,51.037792968749955],[14.36904296875008,50.89873046874996],[13.18115234375,50.510498046875],[13.016406250000017,50.490380859374994],[12.549023437500011,50.393408203125034],[12.3056640625,50.205712890624994],[12.27734375,50.18144531250002],[12.231152343749983,50.24487304687497],[12.174804687500057,50.28837890624996],[12.134863281250006,50.31093750000002],[12.099218750000034,50.31098632812504],[12.089843749999972,50.30175781250003],[12.089746093750051,50.2685546875],[12.294598214285761,50.13608119419641],[12.5125,49.87744140625],[12.390527343750051,49.739648437499994],[12.68115234375,49.41450195312501],[12.91669921875004,49.33046875000002],[13.401171875000074,48.97758789062499],[13.440722656250045,48.95556640625003],[13.547656250000074,48.95966796874998],[13.684960937500051,48.87670898437506],[13.769921875000051,48.81596679687502],[13.814746093750017,48.76694335937498],[13.802929687500011,48.74750976562501],[13.798828124999972,48.62167968750006],[13.785351562499983,48.58745117187502],[13.486621093750074,48.58183593750002],[13.471679687500028,48.57182617187502],[13.459863281250023,48.564550781250034],[13.409375,48.39414062500006],[13.322851562500006,48.33125],[13.215234375000023,48.301904296874994],[12.760351562500063,48.10698242187499],[12.95351562500008,47.890625],[12.897656250000068,47.721875],[13.054101562500051,47.655126953125034],[13.047949218750034,47.57915039062502],[13.031542968750074,47.50800781250001],[13.01435546875004,47.478076171875045],[12.968066406250017,47.475683593750006],[12.878906250000057,47.506445312500034],[12.809375,47.542187499999955],[12.782812500000034,47.56416015624998],[12.781152343750051,47.590429687500006],[12.796191406249989,47.60703125],[12.771386718750023,47.63940429687503],[12.685839843750074,47.66933593750002],[12.209277343750074,47.71826171875003],[12.196875,47.709082031250034],[12.203808593750011,47.64672851562503],[12.185644531250063,47.61953125],[11.041992187500028,47.39311523437496],[10.98085937499999,47.39814453125001],[10.893945312500051,47.470458984375],[10.870605468750028,47.500781250000045],[10.873046874999972,47.52021484375001],[10.741601562500023,47.52412109375001],[10.65869140625,47.547216796875006],[10.482812500000051,47.54179687499996],[10.439453125000028,47.55156249999999],[10.403906250000063,47.41699218750003],[10.369140625,47.366064453125034],[10.18300781250008,47.27880859375003],[10.200292968750063,47.36342773437505],[10.066308593750023,47.39335937500002],[10.064575892857171,47.42369419642856],[10.059863281250045,47.44907226562498],[10.034082031250023,47.47358398437501],[9.971582031249994,47.50532226562498],[9.839160156250017,47.55229492187496],[9.748925781250023,47.575537109375006],[9.524023437500034,47.52421875000002],[8.572656250000023,47.775634765625],[8.435742187500011,47.73134765625002],[8.403417968750006,47.687792968750045],[8.413281250000068,47.66269531249998],[8.451757812500006,47.65180664062498],[8.552343750000063,47.65913085937498],[8.56708984375004,47.65190429687502],[8.57050781250004,47.63779296874998],[8.55947265625008,47.62402343750003],[8.477636718750034,47.61269531250002],[8.454003906249994,47.59619140625003],[7.615625,47.59272460937504],[7.616601562500023,48.15678710937502],[8.134863281250006,48.97358398437498],[7.450585937500051,49.152197265625034],[6.735449218750006,49.16059570312498],[6.344335937500006,49.45273437499998],[6.4873046875,49.798486328124994],[6.204882812500017,49.915136718750034],[6.13818359375,49.97431640625001],[6.10976562500008,50.034375],[6.116503906250045,50.120996093749966],[6.340917968750006,50.451757812500034],[5.993945312500017,50.75043945312504],[6.048437500000034,50.90488281250006],[5.857519531250034,51.030126953125006],[6.129980468750034,51.14741210937501],[6.198828125000034,51.45],[5.948730468750057,51.80268554687501],[6.800390625,51.96738281249998],[6.724511718749994,52.080224609374966],[7.035156250000057,52.38022460937498],[6.748828125000074,52.464013671874994],[6.710742187500045,52.61787109374998],[7.033007812500045,52.65136718749997],[7.197265625000028,53.28227539062499],[7.074316406250034,53.477636718750006],[7.285253906250034,53.68134765625001],[8.00927734375,53.69072265624999],[8.108496093750063,53.46767578125002],[8.245214843750006,53.44531249999997],[8.333886718750051,53.606201171875],[8.495214843750063,53.39423828124998],[8.618945312500045,53.875],[9.20556640625,53.85595703124997],[9.783984375000074,53.554638671874955],[9.31201171875,53.859130859375],[8.92041015625,53.96533203125006],[8.906640625000023,54.26079101562502],[8.625781250000017,54.35395507812501],[8.951855468750011,54.46757812499996],[8.670312500000023,54.903417968750034],[9.739746093750028,54.82553710937498]]],[[[8.307714843750034,54.786962890625034],[8.451464843750017,55.05537109374998],[8.3798828125,54.89985351562501],[8.629589843750068,54.891748046874966],[8.307714843750034,54.786962890625034]]]]},"properties":{"name":"Germany","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[43.24599609375002,11.499804687499989],[42.92275390625002,10.999316406249989],[42.557714843750006,11.080761718749997],[41.79824218750002,10.98046875],[41.79267578125001,11.68603515625],[42.378515625,12.46640625],[42.40859375000002,12.494384765625],[42.45,12.521337890624991],[42.47939453125002,12.513623046874997],[42.703710937500006,12.380322265624997],[42.76748046875002,12.4228515625],[42.825292968750006,12.5693359375],[42.86591796875001,12.622802734375],[42.88330078125,12.621289062499997],[43.00566406250002,12.662304687499997],[43.11669921875,12.70859375],[43.353515625,12.367041015624991],[43.38027343750002,12.091259765624997],[42.64003906250002,11.560107421874989],[42.52177734375002,11.572167968749994],[42.58378906250002,11.496777343749997],[43.04277343750002,11.588476562499991],[43.24599609375002,11.499804687499989]]]},"properties":{"name":"Djibouti","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-61.281689453125,15.2490234375],[-61.37539062499999,15.227294921875],[-61.45810546874999,15.633105468750003],[-61.277246093749994,15.526708984374991],[-61.281689453125,15.2490234375]]]},"properties":{"name":"Dominica","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[11.361425781250006,54.891650390625045],[11.739550781250017,54.80742187500002],[11.765917968750074,54.67944335937506],[11.457421875000023,54.628857421874955],[11.035546875000051,54.77309570312505],[11.058593750000028,54.940576171874966],[11.361425781250006,54.891650390625045]]],[[[12.549218750000051,54.96577148437504],[12.11884765625004,54.91440429687506],[12.274023437500034,55.064111328124994],[12.549218750000051,54.96577148437504]]],[[[10.061230468750068,54.88637695312502],[9.80625,54.90600585937503],[9.78125,55.06904296875001],[10.061230468750068,54.88637695312502]]],[[[10.734082031250011,54.750732421875],[10.621679687500006,54.851416015625006],[10.95107421875008,55.15620117187501],[10.734082031250011,54.750732421875]]],[[[15.087695312500017,55.021875],[14.684179687500063,55.10224609375004],[14.765332031250068,55.296728515625034],[15.132617187500017,55.14453125000003],[15.087695312500017,55.021875]]],[[[10.645117187500006,55.60981445312498],[10.785253906250034,55.13339843749998],[10.44277343750008,55.04877929687498],[9.988769531250028,55.163183593750006],[9.860644531250045,55.515478515625034],[10.645117187500006,55.60981445312498]]],[[[12.665722656250068,55.596533203125006],[12.550878906250034,55.55625],[12.59921875,55.68022460937502],[12.665722656250068,55.596533203125006]]],[[[12.56875,55.785058593749966],[12.215039062500011,55.46650390624998],[12.413085937500028,55.28618164062502],[12.089941406250006,55.18813476562505],[12.050390625000034,54.81533203125002],[11.8623046875,54.77260742187502],[11.653808593750057,55.186914062499966],[11.286328125000068,55.20444335937498],[10.978906250000051,55.721533203125006],[11.322265625000028,55.752539062500006],[11.627734375000074,55.95688476562498],[11.819726562500023,55.69765625000002],[11.86640625000004,55.968164062499966],[12.218945312499983,56.11865234374997],[12.578710937500006,56.06406250000006],[12.56875,55.785058593749966]]],[[[11.052148437500051,57.25253906250006],[10.873828125000045,57.26225585937499],[11.174511718750011,57.322900390624994],[11.052148437500051,57.25253906250006]]],[[[9.739746093750028,54.82553710937498],[8.670312500000023,54.903417968750034],[8.61591796875004,55.41821289062503],[8.132128906250074,55.59980468749998],[8.16396484375008,56.60688476562498],[8.671679687500045,56.49565429687496],[8.88808593750008,56.73505859374998],[9.06708984375004,56.79384765625005],[9.196386718750006,56.70166015625],[9.2548828125,57.01171875000003],[8.992773437499977,57.01611328125003],[8.771972656250028,56.72529296875004],[8.468359375,56.66455078125],[8.284082031250023,56.85234374999999],[8.618554687500051,57.11127929687498],[9.43359375,57.17431640625003],[9.96230468750008,57.580957031249994],[10.609960937500034,57.73691406249998],[10.282714843750057,56.620507812499994],[10.926171875000051,56.44326171875002],[10.753417968750028,56.24199218749999],[10.31875,56.212890625],[10.18300781250008,55.86518554687504],[9.903710937500023,55.84282226562502],[10.02363281250004,55.76142578125004],[9.591113281250017,55.49321289062502],[9.670996093750063,55.26640624999999],[9.453710937500006,55.03955078125006],[9.732324218750023,54.96801757812506],[9.739746093750028,54.82553710937498]]]]},"properties":{"name":"Denmark","childNum":10,"cp":[10.2768332,56.1773879]}},{"geometry":{"type":"Polygon","coordinates":[[[-71.647216796875,19.195947265624994],[-71.746484375,19.285839843749997],[-71.71147460937499,19.486572265625],[-71.75742187499999,19.688183593749997],[-71.779248046875,19.718164062499994],[-71.6673828125,19.8486328125],[-70.95415039062499,19.913964843749994],[-70.19384765625,19.63803710937499],[-69.95683593749999,19.671875],[-69.739404296875,19.29921875],[-69.23247070312499,19.27182617187499],[-69.60595703125,19.206494140624997],[-69.62363281249999,19.117822265624994],[-68.684765625,18.90478515625],[-68.33916015624999,18.611523437499997],[-68.68740234375,18.21494140624999],[-68.9349609375,18.408007812500003],[-69.27451171874999,18.43984375],[-69.770654296875,18.443554687499997],[-70.479931640625,18.21728515625],[-70.644677734375,18.336230468750003],[-71.02783203125,18.273193359375],[-71.43896484375,17.63559570312499],[-71.63173828125,17.773632812499997],[-71.768310546875,18.03916015624999],[-71.76376953124999,18.20395507812499],[-71.737255859375,18.270800781250003],[-71.7619140625,18.34130859375],[-71.87255859375,18.416210937499997],[-71.940380859375,18.512597656249994],[-72.000390625,18.597900390625],[-71.98686523437499,18.6103515625],[-71.86650390624999,18.614160156249994],[-71.74321289062499,18.73291015625],[-71.72705078125,18.80322265625],[-71.733642578125,18.856396484374997],[-71.80712890625,18.987011718749997],[-71.647216796875,19.195947265624994]]]},"properties":{"name":"Dominican Rep.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[8.207617187500006,36.518945312499994],[8.348730468750006,36.36796875],[8.318066406250011,35.654931640624994],[8.31640625,35.403125],[8.35986328125,35.299609375],[8.394238281250011,35.203857421875],[8.312109375,35.084619140624994],[8.27685546875,34.9794921875],[8.24560546875,34.73408203125],[7.513867187500011,34.080517578125],[7.534375,33.717919921874994],[7.877246093750017,33.172119140625],[8.1125,33.055322265624994],[8.333398437500023,32.543603515624994],[9.044042968750006,32.07236328125],[9.160253906250006,31.621337890625],[9.224023437500023,31.373681640624994],[9.51875,30.229394531249994],[9.310253906250011,30.115234375],[9.805273437500006,29.176953125],[9.916015625,27.785693359374996],[9.74755859375,27.330859375],[9.883203125000023,26.630810546874997],[9.491406250000011,26.333740234375],[9.4482421875,26.067138671875],[10.000683593750011,25.332080078125003],[10.255859375,24.591015625],[10.395898437500023,24.485595703125],[10.686132812500006,24.55136718749999],[11.507617187500017,24.314355468749994],[11.967871093750006,23.517871093750003],[7.481738281250017,20.873095703125003],[5.836621093750011,19.479150390624994],[4.227636718750006,19.142773437499997],[3.3564453125,18.986621093750003],[3.119726562500006,19.103173828124994],[3.255859375,19.4109375],[3.130273437500023,19.85019531249999],[1.685449218750023,20.378369140624997],[1.610644531250017,20.555566406249994],[1.165722656250011,20.817431640625003],[1.1455078125,21.102246093749997],[-1.947900390624994,23.124804687500003],[-4.822607421874977,24.99560546875],[-8.683349609375,27.2859375],[-8.683349609375,27.656445312499997],[-8.683349609375,27.900390625],[-8.659912109375,28.718603515625],[-7.485742187499994,29.392236328124994],[-7.427685546874983,29.425],[-7.142431640624977,29.619580078124997],[-6.855566406249977,29.601611328124996],[-6.755126953125,29.583837890625],[-6.635351562499977,29.568798828124997],[-6.597753906249977,29.578955078125],[-6.520556640624989,29.659863281249997],[-6.479736328125,29.820361328124996],[-6.00429687499999,29.83125],[-5.448779296874989,29.956933593749994],[-5.293652343749983,30.058642578124996],[-5.180126953124983,30.166162109374994],[-4.96826171875,30.465380859374996],[-4.778515624999983,30.552392578124994],[-4.529150390624977,30.625537109374996],[-4.322851562499977,30.698876953124994],[-4.148779296874977,30.8095703125],[-3.626904296874983,31.000927734374997],[-3.833398437499994,31.197802734374996],[-3.837109374999983,31.512353515624994],[-3.768164062499977,31.68955078125],[-3.700244140624989,31.700097656249994],[-3.604589843749977,31.686767578125],[-3.439794921874977,31.704541015624997],[-3.017382812499989,31.834277343749996],[-2.988232421874983,31.87421875],[-2.930859374999983,32.042529296874996],[-2.863427734374994,32.07470703125],[-1.275341796874983,32.089013671874994],[-1.16259765625,32.399169921875],[-1.111035156249983,32.552294921874996],[-1.188232421875,32.60849609375],[-1.29638671875,32.675683593749994],[-1.352148437499977,32.703369140625],[-1.45,32.784814453124994],[-1.510009765625,32.87763671875],[-1.550732421874983,33.073583984375],[-1.67919921875,33.318652343749996],[-1.795605468749983,34.751904296875],[-2.131787109374983,34.970849609374994],[-2.190771484374977,35.02978515625],[-2.219628906249994,35.10419921875],[-1.673632812499989,35.18310546875],[-0.426123046874977,35.8615234375],[-0.048242187499994,35.8328125],[0.312207031250011,36.162353515625],[0.9716796875,36.4439453125],[2.593359375,36.60068359375],[2.972851562500011,36.784472656249996],[3.779003906250011,36.89619140625],[4.758105468750017,36.896337890625],[5.29541015625,36.648242187499996],[6.486523437500011,37.085742187499996],[6.927539062500017,36.91943359375],[7.238476562500011,36.968505859375],[7.204296875000011,37.0923828125],[7.910449218750017,36.856347656249994],[8.576562500000023,36.93720703125],[8.601269531250011,36.833935546875],[8.207617187500006,36.518945312499994]]]},"properties":{"name":"Algeria","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-80.131591796875,-2.973144531249957],[-80.27294921875003,-2.995898437499974],[-80.22368164062502,-2.753125],[-80.08076171874995,-2.668847656249966],[-79.90903320312495,-2.725585937499972],[-80.131591796875,-2.973144531249957]]],[[[-90.42392578125,-1.339941406250034],[-90.51953124999994,-1.299121093749974],[-90.47719726562494,-1.22099609374996],[-90.42392578125,-1.339941406250034]]],[[[-89.41889648437498,-0.911035156249966],[-89.60859374999998,-0.888574218750009],[-89.28784179687503,-0.689843750000023],[-89.41889648437498,-0.911035156249966]]],[[[-90.33486328125,-0.771582031249977],[-90.54213867187502,-0.676464843749955],[-90.53168945312493,-0.581445312499966],[-90.26938476562498,-0.48466796874996],[-90.19272460937498,-0.658789062500006],[-90.33486328125,-0.771582031249977]]],[[[-91.42597656249995,-0.460839843749994],[-91.61074218749994,-0.44394531250002],[-91.64667968749998,-0.284472656249946],[-91.46015625000001,-0.255664062500031],[-91.42597656249995,-0.460839843749994]]],[[[-90.57392578124993,-0.333984375],[-90.8677734375,-0.271386718750037],[-90.78037109374998,-0.160449218749989],[-90.57392578124993,-0.333984375]]],[[[-91.27216796874998,0.025146484374986],[-90.799658203125,-0.752050781249991],[-90.90551757812497,-0.94052734375002],[-91.13105468750001,-1.019628906249977],[-91.41904296874998,-0.996679687500006],[-91.49541015624999,-0.860937499999977],[-91.120947265625,-0.559082031250028],[-91.36918945312493,-0.287207031249977],[-91.42885742187502,-0.023388671874955],[-91.59682617187497,0.002099609374994],[-91.36137695312496,0.125830078124977],[-91.27216796874998,0.025146484374986]]],[[[-78.90922851562502,1.252783203124977],[-78.99169921875003,1.293212890625043],[-78.89980468749997,1.359765625],[-78.90922851562502,1.252783203124977]]],[[[-75.28447265624999,-0.10654296875002],[-75.62626953124999,-0.122851562499974],[-75.63203125000001,-0.157617187500037],[-75.56059570312502,-0.200097656249994],[-75.49106445312498,-0.24833984374996],[-75.42470703124997,-0.408886718749983],[-75.259375,-0.59013671874996],[-75.24960937499998,-0.951855468750026],[-75.34819335937499,-0.966796874999957],[-75.38012695312503,-0.94023437499996],[-75.40805664062503,-0.92431640625],[-75.42041015624997,-0.962207031250003],[-75.570556640625,-1.53125],[-76.08979492187501,-2.133105468749974],[-76.6791015625,-2.562597656249991],[-77.860595703125,-2.981640625000011],[-78.240380859375,-3.472558593750009],[-78.345361328125,-3.397363281249966],[-78.64799804687499,-4.248144531250006],[-78.68603515625003,-4.562402343749994],[-78.86152343749998,-4.665039062499943],[-78.90761718749997,-4.714453124999977],[-78.92578125,-4.770703124999983],[-78.91420898437497,-4.818652343749974],[-78.919189453125,-4.858398437499986],[-78.97539062499999,-4.873242187499997],[-78.99526367187497,-4.908007812499974],[-79.03330078124998,-4.96914062499999],[-79.07626953125003,-4.990625],[-79.18666992187497,-4.958203124999983],[-79.26811523437493,-4.957617187499949],[-79.33095703124997,-4.92783203125002],[-79.39941406249997,-4.840039062499983],[-79.45576171874998,-4.766210937499949],[-79.50190429687495,-4.670605468750011],[-79.51616210937493,-4.539160156249963],[-79.57768554687496,-4.50058593750002],[-79.638525390625,-4.454882812500031],[-79.71098632812502,-4.467578124999946],[-79.79726562500002,-4.47636718749996],[-79.8451171875,-4.445898437499977],[-79.962890625,-4.390332031250026],[-80.06352539062499,-4.327539062500023],[-80.13955078125002,-4.296093750000011],[-80.19746093750001,-4.311035156249943],[-80.293359375,-4.416796875],[-80.38349609374998,-4.46367187499996],[-80.424169921875,-4.461425781250028],[-80.47856445312499,-4.430078125000037],[-80.48847656249995,-4.393652343749991],[-80.44384765625003,-4.335839843750023],[-80.35288085937495,-4.208496093750014],[-80.453759765625,-4.205175781249963],[-80.48847656249995,-4.165527343749972],[-80.49345703124999,-4.119140625000014],[-80.510009765625,-4.06953125000004],[-80.49013671874994,-4.010058593750003],[-80.43720703125001,-3.978613281249991],[-80.30327148437499,-4.005078124999969],[-80.26689453124993,-3.948828124999963],[-80.23051757812499,-3.924023437499969],[-80.19414062499996,-3.905859375],[-80.24375,-3.576757812500006],[-80.32465820312498,-3.387890625],[-79.96333007812501,-3.15771484375],[-79.72988281249997,-2.579101562499972],[-79.842138671875,-2.0673828125],[-79.92558593749996,-2.548535156249969],[-80.03017578124994,-2.556738281249949],[-80.00664062499993,-2.353808593750003],[-80.28471679687502,-2.706738281249955],[-80.93217773437493,-2.269140624999977],[-80.76059570312498,-1.934570312500028],[-80.90239257812499,-1.078906249999974],[-80.55390624999998,-0.847949218749989],[-80.45546875,-0.585449218749986],[-80.282373046875,-0.620507812500023],[-80.48227539062503,-0.368261718749963],[-80.046142578125,0.155371093750048],[-80.08828124999997,0.78476562500002],[-78.89965820312503,1.20625],[-78.85966796874996,1.455371093750031],[-78.1806640625,0.968554687499974],[-77.702880859375,0.837841796874997],[-77.46767578124997,0.636523437500017],[-77.396337890625,0.393896484374963],[-76.49462890624997,0.23544921875002],[-76.27060546874998,0.439404296874997],[-75.77666015624999,0.08925781249998],[-75.28447265624999,-0.10654296875002]]]]},"properties":{"name":"Ecuador","childNum":9}},{"geometry":{"type":"Polygon","coordinates":[[[34.24531250000001,31.208300781249996],[34.904296875,29.47734375],[34.736425781250006,29.27060546875],[34.39970703125002,28.01601562499999],[34.22011718750002,27.764306640624994],[33.76025390625,28.04765625],[33.24775390625001,28.567724609375],[32.56572265625002,29.973974609375],[32.35976562500002,29.630664062499996],[32.89824218750002,28.565234375],[33.54707031250001,27.898144531249997],[33.5498046875,27.607373046874997],[33.84931640625001,27.184912109375],[33.959082031250006,26.6490234375],[35.19414062500002,24.475146484375003],[35.78388671875001,23.937792968750003],[35.54082031250002,23.920654296875],[35.50439453125,23.779296875],[35.697851562500006,22.946191406249994],[36.22968750000001,22.628808593749994],[36.87138671875002,21.996728515624994],[31.434472656250023,21.995849609375],[31.486132812500017,22.14780273437499],[31.400292968750023,22.202441406250003],[31.260644531250023,22.00229492187499],[31.092675781250023,21.994873046875],[28.036425781250017,21.995361328125],[24.980273437500017,21.995849609375],[24.980273437500017,25.5888671875],[24.980273437500017,29.181884765625],[24.703222656250006,30.201074218749994],[24.96142578125,30.678515625],[24.85273437500001,31.334814453125],[25.150488281250006,31.654980468749997],[25.382226562500023,31.51279296875],[25.89326171875001,31.620898437499996],[27.248046875,31.377880859374997],[27.5400390625,31.212695312499996],[28.51484375000001,31.050439453124994],[29.072070312500017,30.830273437499997],[29.929785156250006,31.227490234374997],[30.22265625,31.2583984375],[30.395117187500006,31.4576171875],[30.92353515625001,31.566845703124997],[30.56298828125,31.4169921875],[31.001757812500017,31.462792968749994],[31.082910156250023,31.603320312499996],[31.5244140625,31.458251953125],[31.888964843750017,31.54140625],[32.13603515625002,31.341064453125],[31.8921875,31.482470703124996],[31.77109375,31.292578125],[32.10175781250001,31.092822265624996],[32.281835937500006,31.200878906249997],[32.21621093750002,31.29375],[32.60332031250002,31.06875],[33.66650390625,31.130419921874996],[34.19814453125002,31.322607421875],[34.24531250000001,31.208300781249996]]]},"properties":{"name":"Egypt","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[40.141210937500006,15.696142578125034],[40.399023437500006,15.579882812500045],[39.975195312500006,15.612451171875023],[39.94746093750004,15.696142578125034],[40.07050781250004,15.676611328125034],[39.93994140625003,15.744531250000023],[39.9567382812501,15.889404296875057],[40.141210937500006,15.696142578125034]]],[[[40.07646484375002,16.082421875000023],[40.11005859375004,15.985742187500051],[39.99609375000003,16.04267578125001],[40.07646484375002,16.082421875000023]]],[[[40.938574218750006,13.983105468749997],[40.82011718750002,14.111669921874991],[40.22148437500002,14.431152343749972],[39.531835937500006,14.53671875],[39.198046875000074,14.479394531250037],[39.1354492187501,14.581884765625034],[39.07421874999997,14.628222656249974],[39.02382812499999,14.628222656249974],[38.99570312500006,14.586865234374983],[38.81201171875003,14.482324218750009],[38.50439453124997,14.42441406250002],[38.43144531250002,14.428613281249994],[38.221484375000074,14.649658203124986],[38.002539062500006,14.737109375000045],[37.94345703125006,14.810546875],[37.884179687499994,14.852294921874972],[37.82031250000003,14.708496093749986],[37.70839843750005,14.45722656250004],[37.64843750000003,14.32255859375006],[37.571191406249994,14.149072265624966],[37.546777343749994,14.143847656249974],[37.507226562499994,14.156396484375037],[37.257226562499994,14.453759765625051],[37.024511718750006,14.271972656250057],[36.81191406250005,14.315039062500034],[36.67910156250005,14.307568359375026],[36.542382812499994,14.25820312499999],[36.52431640625005,14.256835937499986],[36.492285156250006,14.544335937500023],[36.470800781250006,14.736474609375009],[36.448144531249994,14.940087890625009],[36.42675781249997,15.132080078125043],[36.566015625,15.362109375],[36.9137695312501,16.296191406250045],[36.887792968750006,16.624658203124994],[36.9787109375001,16.800585937500045],[36.9757812500001,16.866552734375006],[36.99521484375006,17.020556640625017],[37.00898437500004,17.058886718750017],[37.06152343749997,17.061279296875057],[37.16953125000006,17.04140625],[37.41103515625005,17.061718749999955],[37.452929687500074,17.108691406250017],[37.51015625,17.28813476562499],[37.54746093750006,17.32412109375005],[37.78242187500004,17.458007812500057],[38.253515625,17.584765625000017],[38.26728515625004,17.616699218750057],[38.28984375000002,17.637011718750017],[38.34736328125004,17.68359375],[38.37373046875004,17.717333984375045],[38.42246093750006,17.823925781249983],[38.60947265625006,18.00507812500004],[39.03447265625002,17.085546875000034],[39.298925781250006,15.921093750000011],[39.78554687499999,15.124853515624991],[39.86376953124997,15.470312500000034],[40.20410156250003,15.014111328124983],[41.17646484375004,14.620312500000054],[41.65820312499997,13.983056640624994],[42.24511718749997,13.587646484374986],[42.39931640625005,13.212597656249969],[42.522851562499994,13.221484375],[42.796191406250074,12.864257812500057],[42.96953125000002,12.808349609375028],[42.99902343750003,12.899511718750048],[43.08291015625005,12.824609374999966],[43.11669921874997,12.708593749999963],[43.00566406250002,12.66230468750004],[42.88330078124997,12.621289062500026],[42.86591796875004,12.622802734374986],[42.82529296875006,12.569335937500014],[42.767480468749994,12.422851562500014],[42.70371093750006,12.380322265625054],[42.479394531249994,12.513623046875026],[42.45,12.521337890625006],[42.40859375,12.494384765625014],[42.37851562500006,12.46640625],[42.28994140625005,12.570214843750009],[42.225,12.661962890624963],[42.13427734374997,12.771435546874969],[41.95214843749997,12.88232421875],[41.85957031250004,13.025878906250028],[41.76503906250005,13.183935546874991],[41.362890625,13.499804687500031],[40.938574218750006,13.983105468749997]]]]},"properties":{"name":"Eritrea","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-17.887939453125,27.809570312500057],[-17.984765625000023,27.646386718750023],[-18.160546874999937,27.76147460937503],[-17.887939453125,27.809570312500057]]],[[[-15.400585937499955,28.147363281250023],[-15.436767578124972,27.810693359375023],[-15.71030273437492,27.784082031250023],[-15.809472656249966,27.994482421874977],[-15.682763671874994,28.15405273437497],[-15.400585937499955,28.147363281250023]]],[[[-17.184667968749977,28.02197265624997],[-17.324902343749955,28.11767578125003],[-17.25859375,28.203173828125045],[-17.103759765624943,28.111132812500017],[-17.184667968749977,28.02197265624997]]],[[[-16.33447265624997,28.37993164062499],[-16.41821289062497,28.15141601562496],[-16.65800781249999,28.007177734374977],[-16.905322265625017,28.33959960937503],[-16.12363281249992,28.57597656249996],[-16.33447265624997,28.37993164062499]]],[[[-14.196777343749943,28.169287109375063],[-14.332617187500006,28.056005859374977],[-14.49179687499992,28.100927734374977],[-14.231982421875017,28.21582031250003],[-14.003369140624983,28.706689453125023],[-13.85722656249996,28.73803710937503],[-13.928027343749989,28.25346679687499],[-14.196777343749943,28.169287109375063]]],[[[-17.83427734374999,28.49321289062496],[-18.00078124999999,28.758251953124955],[-17.928808593749977,28.844580078125063],[-17.7265625,28.724462890625006],[-17.83427734374999,28.49321289062496]]],[[[-13.715966796874966,28.911230468750034],[-13.85991210937496,28.869091796874983],[-13.823632812499966,29.013330078124966],[-13.463574218749955,29.237207031250023],[-13.477929687499966,29.00659179687503],[-13.715966796874966,28.911230468750034]]],[[[1.593945312500068,38.672070312499955],[1.40576171875,38.670996093750006],[1.436328125000017,38.768212890624994],[1.593945312500068,38.672070312499955]]],[[[1.445214843750051,38.91870117187503],[1.223339843750068,38.90385742187502],[1.3486328125,39.080810546875],[1.564453125,39.12104492187504],[1.623632812499977,39.03881835937497],[1.445214843750051,38.91870117187503]]],[[[3.145312500000017,39.79008789062499],[3.461816406250023,39.69775390625003],[3.072851562500006,39.30126953124997],[2.799804687500057,39.38505859374999],[2.700585937500023,39.54213867187502],[2.49951171875,39.47788085937498],[2.37001953125008,39.57207031249999],[3.15869140625,39.97050781249999],[3.145312500000017,39.79008789062499]]],[[[4.293652343750011,39.84184570312499],[3.8671875,39.958740234375],[3.853417968750051,40.06303710937502],[4.22578125000004,40.032373046874966],[4.293652343750011,39.84184570312499]]],[[[-1.794042968749949,43.407324218750006],[-1.410693359374932,43.240087890625034],[-1.460839843749937,43.05175781250006],[-1.300048828124943,43.10097656250002],[-0.586425781249943,42.798974609374966],[0.631640625000045,42.689599609374994],[0.696875,42.84511718750005],[1.428320312499977,42.59589843749998],[1.414843750000074,42.54838867187499],[1.448828124999977,42.43745117187504],[1.534082031250051,42.44169921875002],[1.7060546875,42.50332031250005],[1.859765625000051,42.457080078125045],[1.927929687500068,42.42631835937499],[2.032714843750028,42.353515625],[3.21142578125,42.43115234375],[3.248046875,41.94423828125002],[3.0048828125,41.76743164062506],[2.082617187500063,41.287402343750045],[1.032910156250068,41.06206054687496],[0.714648437500074,40.822851562500006],[0.891113281250057,40.72236328125004],[0.59609375000008,40.614501953125],[-0.327001953124949,39.519873046875006],[-0.204931640624949,39.062597656250034],[0.20156250000008,38.75917968750002],[-0.520800781249989,38.317285156249966],[-0.814648437500011,37.76992187500002],[-0.721582031249966,37.63105468749998],[-1.327539062499937,37.561132812500034],[-1.640966796874949,37.38696289062497],[-2.111523437499983,36.77666015624999],[-4.366845703124994,36.71811523437506],[-4.67412109374996,36.506445312500006],[-5.171484374999949,36.423779296874955],[-5.3609375,36.134912109374994],[-5.62548828125,36.02592773437499],[-6.040673828124937,36.18842773437498],[-6.38413085937492,36.63701171874996],[-6.216796875000028,36.91357421875],[-6.396191406249983,36.831640625],[-6.863769531250028,37.27890625],[-7.406152343749937,37.17944335937497],[-7.44394531249992,37.72827148437497],[-6.957568359374932,38.18789062499999],[-7.106396484374983,38.181005859375006],[-7.343017578124943,38.45742187500002],[-6.997949218749994,39.05644531250002],[-7.53569335937496,39.66157226562501],[-7.117675781249972,39.681689453125045],[-6.975390624999932,39.79838867187502],[-6.896093749999949,40.02182617187506],[-7.032617187499966,40.16791992187498],[-6.8101562499999,40.343115234375034],[-6.928466796874972,41.009130859375006],[-6.2125,41.53203125],[-6.542187499999955,41.672509765624994],[-6.61826171874992,41.9423828125],[-7.147119140625023,41.98115234374998],[-7.40361328124996,41.833691406249955],[-8.152490234374937,41.81196289062498],[-8.266064453124983,42.13740234375001],[-8.777148437500017,41.941064453124994],[-8.887207031249943,42.105273437500045],[-8.690917968749943,42.274169921875],[-8.815820312499966,42.285253906250034],[-8.730029296874989,42.411718750000034],[-8.8115234375,42.64033203124998],[-9.033105468750023,42.593847656250006],[-8.927197265624926,42.79858398437497],[-9.235205078124977,42.97690429687498],[-9.178076171874977,43.17402343749998],[-8.248925781249937,43.43940429687498],[-8.256738281249937,43.57988281249999],[-8.004687499999932,43.69438476562496],[-7.503613281249983,43.73994140625001],[-7.060986328124955,43.55395507812503],[-5.846679687499943,43.645068359375045],[-4.52304687499992,43.41572265625004],[-3.604638671874966,43.51948242187504],[-3.045605468749926,43.37158203125],[-2.875048828125017,43.454443359375006],[-2.337109374999926,43.32802734375002],[-1.794042968749949,43.407324218750006]]]]},"properties":{"name":"Spain","childNum":12,"cp":[-2.9366964,40.3438963]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[22.61738281250004,58.62124023437502],[23.323242187500057,58.45083007812502],[22.730273437500045,58.23066406250001],[22.371679687499977,58.217138671875006],[21.996875,57.93134765624998],[22.187695312500068,58.15434570312502],[21.88212890624999,58.262353515624994],[21.862304687500057,58.497167968750034],[22.61738281250004,58.62124023437502]]],[[[23.343554687500017,58.550341796875045],[23.10908203125004,58.65922851562502],[23.332812500000045,58.648583984374994],[23.343554687500017,58.550341796875045]]],[[[22.923730468750023,58.826904296875],[22.54218750000001,58.68999023437499],[22.411035156250023,58.863378906250034],[22.05625,58.94360351562506],[22.6494140625,59.08710937499998],[22.90986328125004,58.99121093749997],[22.923730468750023,58.826904296875]]],[[[28.0125,59.484277343749966],[28.15107421875004,59.374414062499966],[27.434179687500006,58.787255859374994],[27.502441406250057,58.221337890624994],[27.778515625000068,57.87070312500006],[27.542089843750063,57.799414062500006],[27.4,57.66679687499999],[27.35195312500005,57.528125],[26.96601562500001,57.60913085937506],[26.532617187499994,57.53100585937503],[26.29804687500001,57.60107421875],[25.66015625,57.920166015625],[25.27265625000001,58.009375],[25.11103515625004,58.06342773437498],[24.45888671875005,57.907861328124994],[24.3625,57.86616210937501],[24.322558593750074,57.87060546875003],[24.529101562500045,58.35424804687497],[24.114843750000034,58.26611328125006],[23.767578125000057,58.36083984374997],[23.50927734375003,58.65854492187498],[23.680761718750063,58.787158203125074],[23.43203125,58.920654296875],[23.494433593750017,59.19565429687498],[24.083398437500023,59.29189453125005],[24.38037109375003,59.47265625],[25.44375,59.52114257812502],[25.50927734374997,59.63901367187506],[26.974707031250006,59.450634765624955],[28.0125,59.484277343749966]]]]},"properties":{"name":"Estonia","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[38.43144531250002,14.428613281249994],[38.50439453125,14.424414062499991],[38.81201171875,14.482324218749994],[38.995703125,14.586865234374997],[39.02382812500002,14.628222656250003],[39.07421875,14.628222656250003],[39.13544921875001,14.581884765624991],[39.19804687500002,14.479394531249994],[39.531835937500006,14.53671875],[40.22148437500002,14.43115234375],[40.82011718750002,14.111669921874991],[40.938574218750006,13.983105468749997],[41.362890625,13.499804687500003],[41.76503906250002,13.183935546874991],[41.85957031250001,13.02587890625],[41.9521484375,12.88232421875],[42.13427734375,12.771435546874997],[42.225,12.661962890624991],[42.28994140625002,12.570214843749994],[42.378515625,12.46640625],[41.79267578125001,11.68603515625],[41.79824218750002,10.98046875],[42.557714843750006,11.080761718749997],[42.92275390625002,10.999316406249989],[42.65644531250001,10.6],[42.84160156250002,10.203076171874997],[43.181640625,9.879980468749991],[43.482519531250006,9.379492187499991],[43.98378906250002,9.008837890624989],[46.97822265625001,7.9970703125],[47.97822265625001,7.9970703125],[44.940527343750006,4.912011718749994],[43.988867187500006,4.950537109374991],[43.58349609375,4.85498046875],[43.12568359375001,4.644482421874997],[42.85664062500001,4.32421875],[42.02412109375001,4.137939453125],[41.91533203125002,4.031298828124989],[41.88398437500001,3.977734375],[41.73769531250002,3.979052734374989],[41.48193359375,3.96328125],[41.37246093750002,3.946191406249994],[41.22089843750001,3.943554687499997],[41.02080078125002,4.057470703124991],[40.765234375,4.27304687499999],[39.84218750000002,3.851464843749994],[39.79033203125002,3.754248046874991],[39.65751953125002,3.577832031249997],[39.49443359375002,3.456103515624989],[38.608007812500006,3.60009765625],[38.45156250000002,3.604833984374991],[38.22529296875001,3.618994140624991],[38.08613281250001,3.64882812499999],[37.15458984375002,4.254541015624994],[36.90556640625002,4.411474609374991],[36.02197265625,4.468115234374991],[35.76308593750002,4.808007812499994],[35.75615234375002,4.950488281249989],[35.779296875,5.105566406249991],[35.80029296875,5.156933593749997],[35.74501953125002,5.343994140625],[35.325292968750006,5.364892578124994],[35.2646484375,5.412060546874997],[35.26386718750001,5.457910156249994],[35.26835937500002,5.492285156249991],[34.98359375000001,5.858300781249994],[34.71064453125001,6.660302734374994],[34.06425781250002,7.225732421874994],[33.902441406250006,7.509521484375],[32.99892578125002,7.899511718749991],[33.28105468750002,8.437255859375],[33.95332031250001,8.443505859374994],[34.07275390625,8.545263671874991],[34.078125,9.461523437499991],[34.31123046875001,10.190869140624997],[34.34394531250001,10.658642578124997],[34.571875,10.880175781249989],[34.77128906250002,10.746191406249991],[34.93144531250002,10.864794921874989],[35.1123046875,11.816552734374994],[35.67021484375002,12.623730468749997],[36.12519531250001,12.75703125],[36.52431640625002,14.2568359375],[36.54238281250002,14.25820312499999],[36.67910156250002,14.307568359374997],[36.81191406250002,14.315039062499991],[37.024511718750006,14.27197265625],[37.25722656250002,14.453759765624994],[37.50722656250002,14.156396484374994],[37.54677734375002,14.143847656250003],[37.57119140625002,14.149072265624994],[37.6484375,14.322558593750003],[37.70839843750002,14.457226562499997],[37.8203125,14.70849609375],[37.88417968750002,14.852294921875],[37.943457031250006,14.810546875],[38.002539062500006,14.737109375],[38.22148437500002,14.649658203125],[38.43144531250002,14.428613281249994]]]},"properties":{"name":"Ethiopia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[22.17509765624999,60.370751953124994],[22.41552734375003,60.30336914062505],[22.36054687500004,60.165576171875045],[22.07714843750003,60.286328124999955],[22.17509765624999,60.370751953124994]]],[[[21.450878906250068,60.529589843750045],[21.3,60.47978515625002],[21.224707031250006,60.62060546875003],[21.450878906250068,60.529589843750045]]],[[[21.2177734375,63.241308593750034],[21.415625,63.19736328125006],[21.25341796875,63.152001953124966],[21.08388671875008,63.277539062499955],[21.2177734375,63.241308593750034]]],[[[24.848242187500034,64.99101562499999],[24.576562500000023,65.04287109375],[24.970605468750023,65.05532226562502],[24.848242187500034,64.99101562499999]]],[[[28.96582031250003,69.02197265625],[28.414062500000057,68.90415039062506],[28.77285156250005,68.84003906249995],[28.470703125000057,68.48837890625],[28.685156250000034,68.189794921875],[29.343847656250006,68.06186523437506],[29.988085937500017,67.66826171874999],[29.066210937500045,66.89174804687497],[30.102734375000097,65.72626953125004],[29.715917968750063,65.62456054687502],[29.608007812500006,65.248681640625],[29.826953125000017,65.14506835937502],[29.60419921875004,64.968408203125],[30.072851562500063,64.76503906250005],[30.04189453125005,64.44335937499997],[30.513769531250006,64.2],[30.50390625000003,64.02060546875],[29.991503906250074,63.73515625000002],[31.180859375000097,63.208300781250074],[31.533984375000017,62.885400390624994],[31.18671875000004,62.48139648437504],[29.69013671875004,61.54609375000001],[27.797656250000074,60.53613281250003],[26.53466796874997,60.412890625000074],[26.56933593750003,60.62456054687502],[26.377734375000074,60.42407226562503],[25.955957031250023,60.474218750000034],[26.03583984375004,60.34150390625001],[25.75800781250004,60.26752929687504],[25.65644531250004,60.33320312499998],[24.44560546874999,60.021289062500045],[23.46357421875004,59.986230468749994],[23.021289062500074,59.81601562500006],[23.19843750000001,60.02182617187498],[22.911718750000063,60.20971679687497],[22.749804687500017,60.057275390624994],[22.462695312500045,60.029199218749966],[22.5849609375,60.380566406249955],[21.436035156250057,60.596386718749955],[21.605957031250057,61.59155273437503],[21.255957031250063,61.98964843750005],[21.143847656250045,62.73999023437506],[21.650976562500063,63.039306640625],[21.545117187499983,63.204296874999955],[22.31972656250005,63.310449218749994],[22.532324218750034,63.647851562499994],[23.598925781250074,64.04091796874997],[24.557910156250045,64.801025390625],[25.288183593750063,64.8603515625],[25.34785156250004,65.47924804687497],[24.674902343750006,65.67070312499999],[24.628027343750034,65.85917968750002],[24.15546875000004,65.80527343750006],[23.700292968750034,66.25263671874998],[23.988574218750045,66.81054687500003],[23.64150390625005,67.12939453124997],[23.733593750000068,67.42290039062499],[23.454882812500045,67.46025390625007],[23.63886718750004,67.95439453125002],[22.854101562500034,68.36733398437502],[21.99746093750005,68.52060546874998],[20.622167968750006,69.036865234375],[21.065722656250017,69.04174804687503],[21.06611328125001,69.21411132812497],[21.59375,69.273583984375],[22.410937500000074,68.719873046875],[23.324023437500017,68.64897460937502],[23.85400390625,68.80590820312503],[24.94140625000003,68.59326171875006],[25.748339843750017,68.99013671875],[26.07246093750004,69.69155273437497],[26.525390625000057,69.91503906250003],[27.127539062500063,69.90649414062497],[27.747851562500045,70.06484375],[29.14160156250003,69.67143554687505],[29.33339843750005,69.47299804687503],[28.846289062500006,69.17690429687502],[28.96582031250003,69.02197265625]]]]},"properties":{"name":"Finland","childNum":5}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[178.48789062500018,-18.97412109375],[177.95869140624998,-19.121582031250014],[178.33427734375013,-18.93447265625001],[178.48789062500018,-18.97412109375]]],[[[179.34931640625015,-18.10234375000003],[179.25351562500018,-18.030566406249974],[179.30644531250013,-17.944042968750026],[179.34931640625015,-18.10234375000003]]],[[[178.28017578124994,-17.37197265625001],[178.59160156249996,-17.651464843750006],[178.66767578125004,-18.080859375],[177.95546875000005,-18.264062500000023],[177.32138671875,-18.077539062500037],[177.26396484375007,-17.86347656250004],[177.5044921875,-17.539550781250043],[177.81796875000012,-17.38847656249999],[178.28017578124994,-17.37197265625001]]],[[[180,-16.96308593750001],[179.89697265625003,-16.96406250000004],[180,-16.785742187500034],[180,-16.96308593750001]]],[[[-179.97490234374996,-16.92480468750003],[-180,-16.96298828124999],[-180,-16.907812500000034],[-180,-16.82431640624999],[-180,-16.78554687499999],[-179.86098632812502,-16.68828124999999],[-179.97490234374996,-16.92480468750003]]],[[[-179.92944335937503,-16.502832031250037],[-179.999951171875,-16.540039062499986],[-179.900927734375,-16.431542968749994],[-179.92944335937503,-16.502832031250037]]],[[[179.99921875000004,-16.168554687499977],[179.56416015625004,-16.636914062499997],[179.56816406249996,-16.747460937499966],[179.93037109375004,-16.51943359375005],[179.9279296875001,-16.74443359374996],[179.41933593750005,-16.80654296875001],[179.20234375000004,-16.71269531249999],[179.00683593750003,-16.90019531249999],[178.70664062500018,-16.97617187500002],[178.4974609375,-16.78789062500003],[178.58359375000012,-16.621875],[178.80507812499994,-16.631445312500034],[179.55175781250003,-16.249902343750023],[180,-16.15292968749999],[179.99921875000004,-16.168554687499977]]]]},"properties":{"name":"Fiji","childNum":7}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-61.01875,-51.7857421875],[-60.87597656250003,-51.79423828125004],[-60.94755859374996,-51.94628906250002],[-61.14501953125003,-51.83945312500001],[-61.01875,-51.7857421875]]],[[[-60.28623046874995,-51.461914062500014],[-59.38759765625002,-51.35996093750003],[-59.26806640625,-51.42753906250003],[-59.92138671874997,-51.969531250000045],[-60.246337890625,-51.98642578125003],[-60.35346679687498,-52.13994140625004],[-60.686376953125034,-52.18837890624996],[-60.96142578125003,-52.05732421874999],[-60.23847656249998,-51.771972656250036],[-60.58251953125,-51.71269531250004],[-60.24516601562493,-51.638867187500004],[-60.56845703124998,-51.357812499999945],[-60.28623046874995,-51.461914062500014]]],[[[-60.11171875000002,-51.39589843749998],[-60.275341796874955,-51.28056640625002],[-60.06982421875,-51.307910156249996],[-60.11171875000002,-51.39589843749998]]],[[[-58.85019531249995,-51.26992187499998],[-58.42583007812502,-51.32421875000003],[-58.508935546874994,-51.48359375],[-58.271582031250034,-51.57470703124999],[-58.25922851562501,-51.417089843750034],[-57.976513671874955,-51.384375],[-57.80849609375002,-51.51796875],[-57.96044921874997,-51.58320312500003],[-57.79179687499999,-51.63613281249998],[-58.68349609375002,-51.93623046875001],[-58.65278320312498,-52.09921875],[-59.19584960937496,-52.01767578125],[-59.06801757812502,-52.17304687500003],[-59.341503906249955,-52.19599609375],[-59.395654296874966,-52.308007812499994],[-59.64873046875002,-52.134375],[-59.57080078124994,-51.92539062500003],[-59.05952148437498,-51.685449218749994],[-59.09663085937498,-51.49140624999998],[-58.85019531249995,-51.26992187499998]]]]},"properties":{"name":"Falkland Is.","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[55.79736328125003,-21.33935546875003],[55.36269531250005,-21.27363281250004],[55.23281250000005,-21.05839843749999],[55.311328125000074,-20.90410156249999],[55.661914062500074,-20.90625],[55.8390625000001,-21.13857421874998],[55.79736328125003,-21.33935546875003]]],[[[45.180273437500006,-12.97675781250004],[45.069433593750006,-12.895605468750034],[45.09238281250006,-12.653027343749997],[45.22314453124997,-12.752148437500026],[45.180273437500006,-12.97675781250004]]],[[[-51.65253906249998,4.061279296874972],[-52.327880859375,3.18173828125002],[-52.58300781250003,2.528906249999977],[-52.90346679687502,2.211523437499977],[-53.76777343749998,2.354833984375048],[-54.13007812499998,2.121044921875026],[-54.43310546875,2.207519531250057],[-54.51508789062498,2.245458984374963],[-54.55048828125001,2.293066406249991],[-54.59194335937502,2.313769531250031],[-54.61625976562499,2.326757812500006],[-54.60473632812497,2.335791015624991],[-54.56840820312502,2.342578125000031],[-54.53593749999999,2.343310546875003],[-54.48554687500001,2.416113281250006],[-54.402001953124966,2.46152343750002],[-54.25673828125002,2.713720703124977],[-54.19550781249998,2.817871093750057],[-54.17070312499999,2.993603515624969],[-54.203125,3.138183593750028],[-54.18803710937499,3.178759765625031],[-54.063183593749955,3.353320312499989],[-54.00957031249993,3.448535156250017],[-54.03422851562499,3.62939453125],[-54.350732421874994,4.054101562500023],[-54.47968749999998,4.836523437499991],[-53.91992187499997,5.768994140624983],[-52.899316406249966,5.425048828124986],[-52.29052734375003,4.942187500000031],[-52.324609374999966,4.770898437500037],[-52.21997070312494,4.862792968750014],[-52.05810546875003,4.717382812499963],[-52.00292968749997,4.352294921875014],[-51.82753906250002,4.635693359375026],[-51.65253906249998,4.061279296874972]]],[[[-60.826269531250006,14.494482421874991],[-61.063720703125,14.467089843750017],[-61.01132812499998,14.601904296875034],[-61.21333007812501,14.848583984375011],[-60.927148437499966,14.755175781249989],[-60.826269531250006,14.494482421874991]]],[[[-61.23046875000003,15.889941406250074],[-61.310742187499955,15.894677734374966],[-61.25,16.006298828124983],[-61.23046875000003,15.889941406250074]]],[[[-61.58955078125001,16.006933593750006],[-61.759423828124966,16.062060546875045],[-61.74804687499997,16.355273437500017],[-61.55234374999998,16.270898437499966],[-61.58955078125001,16.006933593750006]]],[[[-61.3271484375,16.230419921874983],[-61.522167968749955,16.22802734375003],[-61.47119140624994,16.506640625000045],[-61.17260742187497,16.25610351562497],[-61.3271484375,16.230419921874983]]],[[[9.480371093750023,42.80541992187503],[9.550683593750051,42.12973632812506],[9.186132812500034,41.38491210937502],[8.80751953125008,41.58837890625],[8.886816406249977,41.70068359375003],[8.621875,41.93071289062502],[8.700976562500045,42.09560546875002],[8.565625,42.35771484374996],[8.81484375000008,42.60791015625003],[9.313378906250023,42.71318359374999],[9.363183593750051,43.01738281249996],[9.480371093750023,42.80541992187503]]],[[[-1.17832031249992,45.904052734375],[-1.213574218750011,45.81660156250004],[-1.388671874999972,46.05039062500006],[-1.17832031249992,45.904052734375]]],[[[5.789746093749983,49.53828125000001],[5.823437500000011,49.50507812499998],[5.9013671875,49.48974609374997],[5.928906250000011,49.47753906249997],[5.959472656250028,49.45463867187502],[6.01142578125004,49.44545898437502],[6.074121093750023,49.45463867187502],[6.119921875000017,49.485205078125034],[6.181054687500051,49.498925781249966],[6.344335937500006,49.45273437499998],[6.735449218750006,49.16059570312498],[7.450585937500051,49.152197265625034],[8.134863281250006,48.97358398437498],[7.616601562500023,48.15678710937502],[7.615625,47.59272460937504],[7.343164062499994,47.43310546875003],[7.136035156249989,47.489843750000034],[6.968359375000034,47.453222656250034],[6.900390625000028,47.39423828125001],[7.000585937500034,47.339453125000034],[7.000585937500034,47.32250976562506],[6.978515625000057,47.30205078124996],[6.95205078125008,47.26718750000006],[6.820703125000051,47.163183593750006],[6.688085937500034,47.05825195312505],[6.66689453125008,47.026513671874966],[6.624804687500017,47.00434570312498],[6.45625,46.948339843750034],[6.438646763392874,46.774418247767855],[6.129687500000045,46.56699218750006],[6.118111049107182,46.447459542410726],[6.095898437500011,46.279394531250006],[5.970019531250045,46.214697265625034],[5.971484375000074,46.151220703125006],[6.006640625000045,46.14233398437506],[6.086621093750068,46.14702148437502],[6.19941406250004,46.19306640624998],[6.234667968750045,46.332617187500006],[6.321875,46.39370117187502],[6.428906250000011,46.43051757812506],[6.578222656250034,46.437353515625034],[6.758105468750017,46.41577148437497],[6.772070312500006,46.16513671874998],[6.897265625000017,46.05175781249997],[6.953710937500063,46.017138671875045],[7.00390625,45.95883789062506],[7.021093750000034,45.92578124999997],[6.790917968750023,45.740869140624966],[7.146386718750051,45.381738281249994],[7.07832031250004,45.23994140624998],[6.634765625000028,45.06816406249996],[6.99267578125,44.82729492187502],[6.900195312499989,44.33574218749996],[7.318554687500068,44.13798828125002],[7.637207031250057,44.16484375],[7.4931640625,43.767138671875045],[6.570214843750023,43.199072265625034],[6.115917968750011,43.07236328124998],[5.406542968750074,43.228515625],[5.05976562500004,43.44453125000004],[4.712109375000011,43.373291015625],[3.910839843750011,43.563085937500034],[3.258886718750063,43.193212890625006],[3.051757812500057,42.915136718750006],[3.21142578125,42.43115234375],[2.032714843750028,42.353515625],[1.927929687500068,42.42631835937499],[1.859765625000051,42.457080078125045],[1.7060546875,42.50332031250005],[1.709863281250051,42.604443359374955],[1.568164062500045,42.63500976562506],[1.501367187500023,42.64272460937502],[1.428320312499977,42.59589843749998],[0.696875,42.84511718750005],[0.631640625000045,42.689599609374994],[-0.586425781249943,42.798974609374966],[-1.300048828124943,43.10097656250002],[-1.460839843749937,43.05175781250006],[-1.410693359374932,43.240087890625034],[-1.794042968749949,43.407324218750006],[-1.484863281249943,43.56376953124999],[-1.245507812499937,44.55986328124999],[-1.07695312499996,44.68984375],[-1.152880859374989,44.764013671875006],[-1.245214843749977,44.66669921874998],[-1.081005859374983,45.532421874999955],[-0.548486328124966,45.00058593750006],[-0.790771484375028,45.46801757812497],[-1.195996093749983,45.714453125],[-1.03173828125,45.741064453125006],[-1.14628906249996,46.311376953125034],[-1.786523437499937,46.51484375000001],[-2.059375,46.81030273437497],[-2.01889648437492,47.03764648437502],[-2.197070312499989,47.16293945312506],[-2.027587890625028,47.27358398437502],[-1.742529296874949,47.21596679687502],[-1.97539062499996,47.31069335937505],[-2.503125,47.31206054687496],[-2.427685546874983,47.47089843749998],[-2.770312499999989,47.513867187499955],[-2.787207031249949,47.62553710937496],[-4.312109374999949,47.82290039062502],[-4.678808593749949,48.03950195312501],[-4.32944335937492,48.169970703125045],[-4.577148437499943,48.2900390625],[-4.241406249999926,48.30366210937501],[-4.719384765624966,48.363134765625034],[-4.7625,48.45024414062502],[-4.531201171874983,48.61997070312506],[-3.231445312499972,48.84082031250003],[-2.692333984374983,48.53681640624998],[-2.446191406249937,48.64829101562506],[-2.00371093749996,48.58208007812499],[-1.905712890624955,48.69711914062506],[-1.376464843749972,48.65258789062503],[-1.565478515624932,48.805517578125034],[-1.583105468749977,49.20239257812506],[-1.856445312499972,49.68378906249998],[-1.258642578124949,49.68017578125006],[-1.138525390624977,49.38789062500001],[-0.163476562499937,49.296777343749994],[0.41689453125008,49.448388671874994],[0.129394531250028,49.508447265624966],[0.186718749999983,49.703027343749994],[1.245507812500051,49.99824218750001],[1.5927734375,50.25219726562506],[1.672265625000023,50.885009765625],[2.52490234375,51.097119140624955],[2.759375,50.750634765624994],[3.10683593750008,50.779443359374994],[3.27333984375008,50.53154296875002],[3.595410156250068,50.47734374999999],[3.689355468750023,50.30605468750002],[4.174609375000017,50.24648437500005],[4.149316406250023,49.971582031249994],[4.545019531250063,49.96025390624999],[4.818652343750045,50.153173828125034],[4.867578125000051,49.78813476562502],[5.50732421875,49.51088867187502],[5.789746093749983,49.53828125000001]]]]},"properties":{"name":"France","childNum":10,"cp":[2.8719426,46.8222422]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-7.186865234374949,62.139306640624966],[-7.116796874999977,62.046826171874955],[-7.379101562499926,62.07480468749998],[-7.186865234374949,62.139306640624966]]],[[[-6.631054687499955,62.22788085937498],[-6.655810546874932,62.09360351562498],[-6.840527343749983,62.119287109374994],[-6.725195312499949,61.95146484374999],[-7.17216796874996,62.28559570312501],[-6.631054687499955,62.22788085937498]]],[[[-6.406054687499932,62.258642578125034],[-6.544140624999926,62.20561523437499],[-6.554589843749994,62.35566406250001],[-6.406054687499932,62.258642578125034]]]]},"properties":{"name":"Faeroe Is.","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[158.31484375,6.813671875],[158.18339843750002,6.801269531250057],[158.13476562499997,6.944824218749986],[158.29462890625004,6.951074218750023],[158.31484375,6.813671875]]],[[[138.14267578125006,9.50068359375004],[138.06708984375004,9.419042968750006],[138.18583984375007,9.593310546874989],[138.14267578125006,9.50068359375004]]]]},"properties":{"name":"Micronesia","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[13.293554687500006,2.161572265624997],[13.172167968750017,1.78857421875],[13.21630859375,1.2484375],[13.851367187500017,1.41875],[14.180859375000011,1.370214843749991],[14.429882812500011,0.901464843749991],[14.32421875,0.62421875],[13.949609375000023,0.353808593749989],[13.860058593750011,-0.203320312500011],[14.47412109375,-0.573437500000011],[14.383984375000011,-1.890039062500009],[14.162890625000017,-2.217578125],[14.199804687500006,-2.354199218750011],[13.993847656250011,-2.490625],[13.886914062500011,-2.465429687500006],[13.733789062500023,-2.138476562500003],[13.464941406250006,-2.395410156250009],[12.991992187500017,-2.313378906250009],[12.793554687500006,-1.931835937500011],[12.590429687500006,-1.826855468750011],[12.43212890625,-1.928906250000011],[12.446386718750006,-2.329980468750009],[12.064453125,-2.41259765625],[11.60546875,-2.342578125],[11.537792968750011,-2.83671875],[11.760156250000023,-2.983105468750011],[11.715429687500006,-3.176953125000011],[11.934179687500006,-3.318554687500011],[11.8798828125,-3.665917968750009],[11.685742187500011,-3.68203125],[11.504296875000023,-3.5203125],[11.234472656250006,-3.690820312500009],[11.130175781250017,-3.916308593750003],[10.34765625,-3.013085937500009],[9.722070312500023,-2.467578125],[10.06201171875,-2.549902343750006],[9.624609375,-2.367089843750009],[9.298925781250006,-1.903027343750011],[9.483203125000017,-1.894628906250006],[9.265625,-1.825097656250009],[9.036328125000011,-1.308886718750003],[9.31884765625,-1.632031250000011],[9.501074218750006,-1.55517578125],[9.295800781250023,-1.515234375],[9.3466796875,-1.325],[9.203808593750011,-1.382421875],[9.064648437500011,-1.29833984375],[8.703125,-0.591015625000011],[8.946386718750006,-0.688769531250003],[9.296679687500017,-0.351269531250011],[9.354882812500023,0.343603515624991],[9.468164062500023,0.15976562499999],[9.796777343750023,0.044238281249989],[10.00146484375,0.194970703124994],[9.546484375,0.295947265624989],[9.324804687500006,0.552099609374991],[9.495312500000011,0.664843749999989],[9.617968750000017,0.576513671874991],[9.5908203125,1.031982421875],[9.636132812500023,1.046679687499989],[9.676464843750011,1.07470703125],[9.70458984375,1.079980468749994],[9.760546875000017,1.07470703125],[9.788671875,1.025683593749989],[9.803906250000011,0.998730468749997],[9.90673828125,0.960107421874994],[11.335351562500023,0.999707031249997],[11.332324218750017,1.528369140624989],[11.328710937500006,2.167431640624997],[11.348437500000017,2.299707031249994],[11.558984375000023,2.302197265624997],[13.2203125,2.256445312499991],[13.293554687500006,2.161572265624997]]]},"properties":{"name":"Gabon","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-1.065576171874966,50.69023437500002],[-1.25146484375,50.58881835937498],[-1.563427734374955,50.666113281250006],[-1.31279296874996,50.77348632812502],[-1.065576171874966,50.69023437500002]]],[[[-4.196777343749972,53.321435546874966],[-4.04936523437496,53.30576171874998],[-4.373046875,53.13417968750002],[-4.56787109375,53.386474609375],[-4.315087890625023,53.41723632812503],[-4.196777343749972,53.321435546874966]]],[[[-6.218017578125,54.08872070312506],[-6.649804687499937,54.05864257812496],[-7.007714843749937,54.40668945312501],[-7.324511718750017,54.13344726562502],[-7.606542968750006,54.14384765625002],[-8.118261718749977,54.41425781250004],[-7.75439453125,54.59492187499998],[-7.910595703124955,54.698339843750006],[-7.55039062499992,54.767968749999966],[-7.218652343749937,55.09199218749998],[-6.475048828124955,55.24101562499999],[-6.035791015624994,55.14453125000003],[-5.71684570312496,54.817480468750034],[-5.878613281249955,54.64130859375001],[-5.582519531249943,54.66342773437498],[-5.470410156249926,54.500195312499955],[-5.671093749999955,54.54975585937501],[-5.60678710937492,54.272558593750034],[-6.019042968749972,54.05126953124997],[-6.218017578125,54.08872070312506]]],[[[-5.105419921875011,55.448828125000034],[-5.331494140624955,55.481054687500034],[-5.318115234375,55.709179687499955],[-5.105419921875011,55.448828125000034]]],[[[-6.128906249999972,55.93056640625002],[-6.055322265624994,55.69531249999997],[-6.305078124999966,55.60693359375],[-6.286425781249989,55.77250976562499],[-6.491357421874994,55.697314453125045],[-6.462841796874955,55.808251953124994],[-6.128906249999972,55.93056640625002]]],[[[-5.970068359374949,55.814550781250034],[-6.071972656250011,55.893115234375045],[-5.72514648437496,56.118554687499966],[-5.970068359374949,55.814550781250034]]],[[[-5.77788085937496,56.344335937500034],[-6.313427734374983,56.29365234375001],[-6.138867187499955,56.490625],[-6.286328124999983,56.61186523437502],[-6.102734374999955,56.645654296874966],[-5.760839843749949,56.49067382812501],[-5.77788085937496,56.344335937500034]]],[[[-7.249853515624977,57.115332031250006],[-7.410546874999937,57.38110351562506],[-7.26713867187496,57.37177734375001],[-7.249853515624977,57.115332031250006]]],[[[-6.144726562499983,57.50498046874998],[-6.135546874999989,57.31425781250002],[-5.672460937499977,57.252685546875],[-5.94907226562492,57.045166015625],[-6.034375,57.20122070312499],[-6.322705078124926,57.20249023437498],[-6.761132812499994,57.4423828125],[-6.305957031249989,57.67197265624998],[-6.144726562499983,57.50498046874998]]],[[[-7.205566406250028,57.682958984375006],[-7.182617187499972,57.53330078125006],[-7.514746093749949,57.60195312500002],[-7.205566406250028,57.682958984375006]]],[[[-6.198681640624983,58.36328125000003],[-6.554589843749994,58.092871093750006],[-6.425195312499937,58.02128906249999],[-6.983105468749983,57.75],[-7.083447265624926,57.81376953124999],[-6.856835937499937,57.92353515624998],[-7.085253906249932,58.18217773437499],[-6.726464843749937,58.189404296874955],[-6.776464843750006,58.30151367187497],[-6.237451171874966,58.50283203125005],[-6.198681640624983,58.36328125000003]]],[[[-3.109667968749932,58.515478515625034],[-3.212353515624983,58.32124023437501],[-3.99003906249996,57.95903320312502],[-4.035595703124926,57.85200195312498],[-3.857128906249983,57.81855468750001],[-4.134521484375,57.57773437500006],[-3.402783203124955,57.708251953125],[-2.074072265624977,57.70239257812506],[-1.780664062499994,57.474023437499966],[-2.592675781249937,56.56157226562499],[-3.309960937499966,56.36347656250004],[-2.885156249999937,56.397509765625045],[-2.674267578124955,56.25341796875],[-3.362255859374955,56.02763671875002],[-3.789062499999972,56.09521484375],[-3.048730468749937,55.951953125000045],[-2.599316406249955,56.02729492187501],[-2.14707031249992,55.90297851562502],[-1.655371093749949,55.57036132812502],[-1.232421874999943,54.703710937500034],[-0.084375,54.118066406249994],[-0.20556640625,54.021728515625],[0.115332031250006,53.609277343749994],[-0.270019531249972,53.73676757812504],[-0.659912109375,53.72402343750002],[-0.293701171875,53.69233398437504],[0.270996093750028,53.33549804687499],[0.355761718750045,53.15996093750002],[0.0458984375,52.90561523437498],[0.279785156250028,52.80869140625006],[0.55878906250004,52.96694335937505],[1.05556640625008,52.95898437500003],[1.656738281249972,52.753710937500045],[1.74658203125,52.46899414062503],[1.59140625,52.11977539062502],[1.232421875000057,51.97124023437496],[1.188476562500057,51.803369140624966],[0.752246093750017,51.729589843750034],[0.890917968750017,51.571435546874966],[0.42451171875004,51.465625],[1.414941406250023,51.36328125],[1.397558593750034,51.18203125000002],[0.960156250000011,50.92587890624998],[0.299707031249994,50.775976562500006],[-0.785253906249949,50.76542968749999],[-1.416455078124955,50.896875],[-1.334472656249943,50.82080078124997],[-1.516748046874937,50.747460937499966],[-2.031054687499932,50.72539062499999],[-2.035839843749926,50.603076171875045],[-2.999414062499937,50.71660156249999],[-3.40458984374996,50.63242187499998],[-3.679785156250006,50.239941406249955],[-4.194580078124972,50.39331054687503],[-4.727978515624926,50.29047851562504],[-5.11850585937492,50.038330078125],[-5.622119140624932,50.05068359375002],[-4.188183593749926,51.18852539062502],[-3.135986328124972,51.20502929687501],[-2.433056640624926,51.74072265625],[-3.293115234374994,51.390429687500045],[-3.890771484374994,51.591650390625006],[-4.234570312499955,51.56909179687503],[-4.091015624999926,51.65991210937506],[-4.38627929687496,51.74106445312506],[-4.902294921874926,51.626269531250045],[-5.168359374999937,51.74072265625],[-5.183349609374972,51.94965820312501],[-4.217724609374983,52.277441406250006],[-3.980322265624949,52.54174804687503],[-4.101464843750023,52.915478515624955],[-4.683056640624926,52.80615234374997],[-4.268554687499943,53.14453125],[-3.427734374999972,53.34067382812498],[-3.097558593749937,53.260302734375045],[-3.064746093749932,53.426855468750034],[-2.74951171875,53.310205078124994],[-3.064599609374994,53.512841796874966],[-2.84648437499996,54.135302734375045],[-3.165966796874955,54.12792968750006],[-3.56938476562496,54.46757812499996],[-3.464599609374943,54.77309570312505],[-3.036230468749977,54.95307617187501],[-3.550439453124937,54.94741210937502],[-3.957910156249994,54.780957031249955],[-4.818066406249983,54.84614257812501],[-4.911230468749949,54.68945312500006],[-5.032324218749949,54.76137695312505],[-5.172705078124949,54.98588867187496],[-4.676757812499972,55.50131835937498],[-4.871679687499977,55.87392578125005],[-4.58408203124992,55.93867187500001],[-4.844091796874949,56.05117187499999],[-4.80029296875,56.158349609374994],[-5.228222656249983,55.886328125],[-5.084326171874977,56.197460937499955],[-5.41044921874996,55.995361328125],[-5.55644531249996,55.389599609374955],[-5.730664062499926,55.33413085937502],[-5.504492187499949,55.80239257812502],[-5.609570312499955,56.055273437500034],[-5.188378906249937,56.75805664062503],[-5.652441406249977,56.531982421875],[-6.133691406249966,56.706689453124966],[-5.730615234374994,56.853076171875045],[-5.86142578124992,56.902685546875006],[-5.561914062499994,57.23271484375002],[-5.794921874999972,57.37880859375002],[-5.581787109374972,57.546777343749966],[-5.744921874999989,57.668310546875034],[-5.608349609374955,57.88134765625],[-5.157226562499972,57.88134765625],[-5.413183593750006,58.06972656250002],[-5.338281250000023,58.23872070312498],[-5.008300781250028,58.262646484374955],[-5.016748046874966,58.566552734374966],[-4.433251953124937,58.51284179687505],[-3.25913085937492,58.65],[-3.053076171874949,58.63481445312502],[-3.109667968749932,58.515478515625034]]],[[[-3.057421874999932,59.02963867187498],[-2.793017578124989,58.906933593749955],[-3.331640624999949,58.97124023437499],[-3.31035156249996,59.13081054687498],[-3.057421874999932,59.02963867187498]]],[[[-1.30810546875,60.5375],[-1.052441406249955,60.44448242187502],[-1.299462890624994,59.87866210937503],[-1.290917968749937,60.153466796874966],[-1.663769531249983,60.282519531250074],[-1.374609374999949,60.33291015625002],[-1.571777343749972,60.494433593750074],[-1.363964843750011,60.60957031249998],[-1.30810546875,60.5375]]]]},"properties":{"name":"United Kingdom","childNum":14,"cp":[-2.5830348,54.4598409]}},{"geometry":{"type":"Polygon","coordinates":[[[46.30546875000002,41.507714843749994],[46.61894531250002,41.34375],[46.67255859375001,41.28681640625],[46.66240234375002,41.245507812499994],[46.62636718750002,41.15966796875],[46.534375,41.08857421875],[46.43095703125002,41.077050781249994],[46.086523437500006,41.183837890625],[45.28095703125001,41.449560546875],[45.21718750000002,41.423193359375],[45.00136718750002,41.290966796875],[44.97587890625002,41.277490234374994],[44.81132812500002,41.259375],[44.077246093750006,41.182519531249994],[43.43339843750002,41.155517578125],[43.20546875000002,41.199169921875],[43.15283203125,41.23642578125],[43.14101562500002,41.26484375],[43.17128906250002,41.287939453125],[43.149023437500006,41.30712890625],[43.05712890625,41.352832031249996],[42.90673828125,41.466845703124996],[42.82167968750002,41.4923828125],[42.78789062500002,41.563720703125],[42.75410156250001,41.57890625],[42.68242187500002,41.585742187499996],[42.60683593750002,41.57880859375],[42.590429687500006,41.57070312499999],[42.5673828125,41.55927734375],[42.46640625,41.43984375],[41.92578125,41.495654296874996],[41.82353515625002,41.432373046875],[41.779394531250006,41.44052734375],[41.701757812500006,41.471582031249994],[41.57656250000002,41.497314453125],[41.51005859375002,41.517480468749994],[41.701757812500006,41.705419921875],[41.76298828125002,41.970019531249996],[41.48876953125,42.659326171874994],[40.83662109375001,43.0634765625],[40.46210937500001,43.145703125],[39.97832031250002,43.419824218749994],[40.02373046875002,43.48486328125],[40.084570312500006,43.553125],[40.648046875,43.53388671875],[40.941992187500006,43.41806640625],[41.083105468750006,43.374462890625],[41.35820312500002,43.333398437499994],[41.46074218750002,43.276318359375],[41.58056640625,43.21923828125],[42.76064453125002,43.169580078124994],[42.99160156250002,43.09150390625],[43.00019531250001,43.049658203125],[43.08916015625002,42.9890625],[43.55781250000001,42.844482421875],[43.623046875,42.80771484375],[43.78261718750002,42.747021484375],[43.79873046875002,42.727783203125],[43.79541015625,42.702978515625],[43.74990234375002,42.657519531249996],[43.738378906250006,42.616992187499996],[43.759863281250006,42.59384765625],[43.82597656250002,42.571533203125],[43.95742187500002,42.566552734374994],[44.00468750000002,42.595605468749994],[44.10273437500001,42.616357421874994],[44.32949218750002,42.70351562499999],[44.505859375,42.7486328125],[44.77109375,42.616796875],[44.85048828125002,42.746826171875],[44.87099609375002,42.756396484374996],[44.943359375,42.730273437499996],[45.07158203125002,42.694140625],[45.160253906250006,42.675],[45.34375,42.52978515625],[45.56289062500002,42.5357421875],[45.70527343750001,42.498095703124996],[45.7275390625,42.475048828125],[45.63427734375,42.234716796875],[45.63857421875002,42.205078125],[46.21269531250002,41.989892578124994],[46.42988281250001,41.890966796875],[46.18427734375001,41.7021484375],[46.30546875000002,41.507714843749994]]]},"properties":{"name":"Georgia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-0.068603515625,11.115625],[0.009423828125023,11.02099609375],[-0.08632812499999,10.673046875],[0.380859375,10.291845703124991],[0.264550781250023,9.644726562499997],[0.342578125000017,9.604150390624994],[0.2333984375,9.463525390624994],[0.525683593750017,9.398486328124989],[0.48876953125,8.851464843749994],[0.37255859375,8.75927734375],[0.686328125000017,8.354882812499994],[0.5,7.546875],[0.634765625,7.353662109374994],[0.525585937500011,6.850927734374991],[0.736914062500006,6.452587890624997],[1.187207031250011,6.089404296874989],[0.94970703125,5.810253906249997],[0.259667968750023,5.75732421875],[-2.001855468749994,4.762451171875],[-3.114013671875,5.088671874999989],[-2.815673828125,5.153027343749997],[-2.754980468749977,5.432519531249994],[-2.793652343749983,5.60009765625],[-2.998291015625,5.71132812499999],[-3.227148437499977,6.749121093749991],[-2.959082031249977,7.454541015624997],[-2.789746093749983,7.931933593749989],[-2.668847656249994,8.022216796875],[-2.613378906249977,8.046679687499989],[-2.600976562499994,8.082226562499997],[-2.619970703124977,8.12109375],[-2.61171875,8.147558593749991],[-2.538281249999983,8.171630859375],[-2.505859375,8.208740234375],[-2.600390624999989,8.800439453124994],[-2.649218749999989,8.956591796874989],[-2.689892578124983,9.025097656249997],[-2.746923828124977,9.045117187499997],[-2.705761718749983,9.351367187499989],[-2.695849609374989,9.481347656249994],[-2.706201171874994,9.533935546875],[-2.765966796874977,9.658056640624991],[-2.780517578125,9.745849609375],[-2.791162109374994,10.432421874999989],[-2.914892578124977,10.592333984374989],[-2.829931640624977,10.998388671874991],[-1.04248046875,11.010058593749989],[-0.627148437499983,10.927392578124994],[-0.299462890624994,11.166894531249994],[-0.068603515625,11.115625]]]},"properties":{"name":"Ghana","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-11.389404296875,12.404394531249991],[-11.502197265625,12.198632812499994],[-11.30517578125,12.015429687499989],[-10.933203124999977,12.205175781249991],[-10.709228515625,11.898730468749989],[-10.274853515624983,12.212646484375],[-9.754003906249977,12.029931640624994],[-9.358105468749983,12.255419921874989],[-9.395361328124977,12.464648437499989],[-9.043066406249977,12.40234375],[-8.818310546874983,11.922509765624994],[-8.822021484375,11.673242187499994],[-8.398535156249977,11.366552734374991],[-8.666699218749983,11.009472656249997],[-8.33740234375,10.990625],[-8.266650390624989,10.485986328124994],[-8.007275390624983,10.321875],[-7.990625,10.1625],[-8.155175781249994,9.973193359374989],[-8.136962890625,9.49570312499999],[-7.896191406249983,9.415869140624991],[-7.918066406249977,9.188525390624989],[-7.839404296874989,9.151611328125],[-7.7998046875,9.115039062499989],[-7.777978515624994,9.080859374999989],[-7.902099609375,9.01708984375],[-7.938183593749983,8.979785156249989],[-7.950976562499989,8.786816406249997],[-7.719580078124977,8.643017578124997],[-7.696093749999989,8.375585937499991],[-7.823583984374977,8.467675781249994],[-7.953125,8.477734375],[-8.236962890624994,8.455664062499991],[-8.244140625,8.407910156249997],[-8.256103515625,8.253710937499989],[-8.217138671874977,8.219677734374997],[-8.140625,8.181445312499989],[-8.048583984375,8.169726562499989],[-8.009863281249977,8.07851562499999],[-8.126855468749994,7.867724609374989],[-8.115429687499983,7.7607421875],[-8.205957031249994,7.59023437499999],[-8.231884765624983,7.556738281249991],[-8.429980468749989,7.601855468749989],[-8.486425781249977,7.558496093749994],[-8.659765624999977,7.688378906249994],[-8.8896484375,7.2626953125],[-9.11757812499999,7.215917968749991],[-9.463818359374983,7.415869140624991],[-9.369140625,7.703808593749997],[-9.518261718749983,8.34609375],[-9.781982421875,8.537695312499991],[-10.064355468749994,8.429882812499997],[-10.147412109374983,8.519726562499997],[-10.233056640624994,8.488818359374989],[-10.283203125,8.485156249999989],[-10.360058593749983,8.495507812499994],[-10.394433593749994,8.48095703125],[-10.496435546874977,8.362109374999989],[-10.557714843749977,8.315673828125],[-10.686962890624983,8.321679687499994],[-10.712109374999983,8.335253906249989],[-10.677343749999977,8.400585937499997],[-10.500537109374989,8.687548828124989],[-10.615966796875,9.059179687499991],[-10.726855468749989,9.081689453124994],[-10.747021484374983,9.095263671874989],[-10.749951171874983,9.122363281249989],[-10.687646484374994,9.261132812499994],[-10.682714843749977,9.289355468749989],[-10.758593749999989,9.385351562499991],[-11.047460937499977,9.786328125],[-11.180859374999983,9.925341796874989],[-11.205664062499977,9.977734375],[-11.273632812499983,9.996533203124997],[-11.911083984374983,9.993017578124991],[-12.142333984375,9.87539062499999],[-12.427978515625,9.898144531249997],[-12.557861328125,9.704980468749994],[-12.755859375,9.373583984374989],[-12.958789062499989,9.263330078124994],[-13.077294921874994,9.069628906249989],[-13.292675781249983,9.04921875],[-13.436279296875,9.4203125],[-13.691357421874983,9.535791015624994],[-13.689794921874977,9.927783203124989],[-13.820117187499989,9.88720703125],[-14.045019531249977,10.141259765624994],[-14.426904296874994,10.248339843749989],[-14.609570312499983,10.549853515624989],[-14.593505859375,10.766699218749991],[-14.677343749999977,10.68896484375],[-14.775927734374989,10.931640625],[-14.88671875,10.968066406249989],[-14.975,10.803417968749997],[-15.051220703124983,10.834570312499991],[-15.043017578124989,10.940136718749997],[-14.9990234375,10.9921875],[-14.944433593749977,11.072167968749994],[-14.779296875,11.405517578125],[-14.720263671874989,11.48193359375],[-14.682958984374977,11.508496093749997],[-14.604785156249989,11.511621093749994],[-14.452441406249989,11.556201171874989],[-14.327832031249983,11.629785156249994],[-14.265576171874983,11.659912109375],[-14.122314453125,11.65195312499999],[-13.953222656249977,11.664599609374989],[-13.732763671874977,11.736035156249997],[-13.730664062499983,11.959863281249994],[-13.737988281249983,12.009667968749994],[-13.816308593749994,12.054492187499989],[-13.948876953124994,12.178173828124997],[-13.8875,12.246875],[-13.759765625,12.262353515624994],[-13.673535156249983,12.478515625],[-13.732617187499983,12.592822265624989],[-13.729248046875,12.673925781249991],[-13.082910156249994,12.633544921875],[-13.061279296875,12.489990234375],[-12.930712890624989,12.532275390624989],[-12.399072265624994,12.340087890625],[-11.389404296875,12.404394531249991]]]},"properties":{"name":"Guinea","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-16.763330078124994,13.064160156249997],[-16.824804687499977,13.341064453125],[-16.669335937499994,13.475],[-16.41337890624999,13.269726562499997],[-15.427490234375,13.46835937499999],[-16.135449218749983,13.4482421875],[-16.351806640625,13.34335937499999],[-16.56230468749999,13.587304687499994],[-15.509667968749994,13.586230468750003],[-15.426855468749977,13.727001953124997],[-15.108349609374983,13.81210937499999],[-14.405468749999983,13.503710937500003],[-13.977392578124977,13.54345703125],[-13.826708984374989,13.4078125],[-14.246777343749983,13.23583984375],[-15.151123046875,13.556494140624991],[-15.286230468749977,13.39599609375],[-15.814404296874983,13.325146484374997],[-15.834277343749989,13.156445312499997],[-16.648779296874977,13.154150390624991],[-16.763330078124994,13.064160156249997]]]},"properties":{"name":"Gambia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-15.895898437499966,11.082470703124969],[-15.963964843749977,11.05898437499998],[-15.937695312499955,11.192773437499966],[-15.895898437499966,11.082470703124969]]],[[[-16.11450195312503,11.059423828124977],[-16.236425781249977,11.113427734374966],[-16.06733398437501,11.197216796874983],[-16.11450195312503,11.059423828124977]]],[[[-15.901806640624926,11.4658203125],[-16.02319335937497,11.477148437499991],[-15.964550781249926,11.59829101562498],[-15.901806640624926,11.4658203125]]],[[[-15.986425781249949,11.882031249999969],[-16.038330078124943,11.759716796875011],[-16.15244140624992,11.876806640624963],[-15.986425781249949,11.882031249999969]]],[[[-13.759765625,12.262353515624994],[-13.8875,12.246875],[-13.948876953124966,12.178173828124997],[-13.737988281250011,12.009667968750037],[-13.730664062499926,11.959863281250009],[-13.73276367187492,11.736035156249983],[-13.953222656249977,11.664599609374989],[-14.265576171874926,11.659912109375014],[-14.327832031250011,11.629785156250009],[-14.452441406249989,11.556201171875017],[-14.604785156249932,11.511621093749994],[-14.682958984374949,11.508496093749983],[-14.720263671875017,11.481933593749986],[-14.779296874999972,11.405517578125057],[-14.944433593749949,11.072167968749994],[-14.999023437499972,10.992187500000043],[-15.04301757812496,10.940136718750011],[-15.09375,11.011035156249974],[-15.054589843749994,11.141943359375006],[-15.222119140624926,11.030908203125037],[-15.216699218749994,11.15625],[-15.39311523437496,11.217236328124983],[-15.354687499999955,11.396337890624963],[-15.479492187499972,11.410302734374966],[-15.072656249999937,11.597802734374966],[-15.230371093750023,11.686767578124972],[-15.412988281249994,11.615234374999972],[-15.501904296875011,11.723779296874966],[-15.467187499999937,11.842822265624974],[-15.078271484374937,11.968994140625014],[-15.941748046875006,11.786621093749986],[-15.92021484374996,11.93779296874996],[-16.138427734375,11.917285156250045],[-16.32807617187501,12.051611328124963],[-16.244580078124955,12.237109375],[-16.43681640624996,12.204150390625045],[-16.711816406249937,12.354833984375006],[-16.656933593749955,12.364355468749991],[-16.52133789062495,12.348632812499986],[-16.41630859374996,12.367675781250057],[-16.24150390624996,12.443310546875011],[-16.144189453124937,12.457421875000037],[-15.839550781249955,12.437890624999966],[-15.57480468749992,12.490380859375009],[-15.19609375,12.679931640624986],[-14.3492187499999,12.67641601562498],[-14.064843749999966,12.675292968750014],[-13.729248046875,12.673925781250006],[-13.732617187499983,12.592822265625003],[-13.673535156249926,12.478515624999986],[-13.759765625,12.262353515624994]]]]},"properties":{"name":"Guinea-Bissau","childNum":5}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[11.332324218750017,1.528369140624989],[11.335351562500023,0.999707031250011],[9.906738281250028,0.960107421875037],[9.80390625000004,0.998730468749997],[9.788671875000034,1.025683593749974],[9.760546874999989,1.074707031250014],[9.704589843750057,1.079980468750023],[9.676464843750011,1.074707031250014],[9.636132812500051,1.046679687499989],[9.590820312500057,1.031982421875014],[9.599414062500045,1.054443359374972],[9.509863281250006,1.114794921875017],[9.385937500000068,1.13925781250002],[9.807031250000051,1.927490234375028],[9.77968750000008,2.068212890625006],[9.800781250000028,2.304443359375],[9.826171875000057,2.297802734374969],[9.8369140625,2.242382812500054],[9.870117187500028,2.21328125],[9.979882812499994,2.167773437500045],[10.790917968750023,2.167578125],[11.096582031250051,2.167480468749986],[11.328710937500006,2.167431640624969],[11.332324218750017,1.528369140624989]]],[[[8.735742187500023,3.758300781249972],[8.910058593750023,3.758203125000051],[8.946093750000074,3.627539062499977],[8.704003906250051,3.223632812500028],[8.474902343749989,3.264648437500043],[8.464648437500045,3.450585937499994],[8.735742187500023,3.758300781249972]]]]},"properties":{"name":"Eq. Guinea","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[23.852246093749983,35.53544921874999],[24.166015625000057,35.59521484375],[24.108984374999977,35.49580078124998],[24.35400390625,35.359472656250034],[25.73017578125004,35.34858398437501],[25.791308593750074,35.122851562500045],[26.32021484375008,35.315136718749955],[26.165625,35.018603515625045],[24.79980468750003,34.93447265625002],[24.70888671875008,35.08906250000001],[24.463671875000045,35.160351562499955],[23.59277343749997,35.257226562499966],[23.56982421875,35.534765625000034],[23.67265624999999,35.51391601562506],[23.736914062500034,35.65551757812503],[23.852246093749983,35.53544921874999]]],[[[27.17607421874999,35.46528320312498],[27.070703125000023,35.59775390624998],[27.22314453125,35.820458984374966],[27.17607421874999,35.46528320312498]]],[[[23.053808593750034,36.18979492187498],[22.91083984375004,36.220996093750045],[22.950488281250045,36.38393554687502],[23.053808593750034,36.18979492187498]]],[[[27.84277343750003,35.929296875000034],[27.71552734375004,35.95732421874996],[27.71630859375003,36.17158203125001],[28.23183593750005,36.43364257812502],[28.087792968750023,36.06533203125002],[27.84277343750003,35.929296875000034]]],[[[25.48242187500003,36.39262695312502],[25.37050781250005,36.35893554687499],[25.408984375000074,36.473730468750006],[25.48242187500003,36.39262695312502]]],[[[26.46064453125001,36.58540039062501],[26.270019531250057,36.54692382812499],[26.370019531250023,36.63857421875002],[26.46064453125001,36.58540039062501]]],[[[26.94960937500005,36.72709960937502],[27.214941406250006,36.89863281249998],[27.352148437499977,36.86889648437506],[26.94960937500005,36.72709960937502]]],[[[25.859375,36.79042968750005],[25.74316406250003,36.78974609374998],[26.06445312500003,36.90273437500002],[25.859375,36.79042968750005]]],[[[27.01972656250004,36.95903320312502],[26.91992187500003,36.94521484375005],[26.88867187499997,37.087255859375034],[27.01972656250004,36.95903320312502]]],[[[25.278906250000034,37.06840820312502],[25.105468750000057,37.034960937500045],[25.235058593750068,37.148535156250006],[25.278906250000034,37.06840820312502]]],[[[25.54589843749997,36.96757812499999],[25.45673828125001,36.9296875],[25.361914062500063,37.07041015624998],[25.52529296875005,37.19638671875006],[25.54589843749997,36.96757812499999]]],[[[24.523535156250063,37.125097656250006],[24.42480468750003,37.131982421874994],[24.48378906250005,37.21020507812503],[24.523535156250063,37.125097656250006]]],[[[25.402734375000023,37.419140624999955],[25.312695312500068,37.48930664062496],[25.462988281250063,37.47109375],[25.402734375000023,37.419140624999955]]],[[[26.029296875000057,37.529394531250034],[26.086328125000023,37.63491210937505],[26.351367187500017,37.67431640625],[26.029296875000057,37.529394531250034]]],[[[25.255859375000057,37.59960937500006],[25.156347656250034,37.54506835937505],[24.99648437500005,37.676904296874994],[25.255859375000057,37.59960937500006]]],[[[24.35595703125003,37.57685546875004],[24.28896484375005,37.52827148437498],[24.37910156250004,37.682714843750006],[24.35595703125003,37.57685546875004]]],[[[26.82441406250004,37.81142578125005],[27.05507812500005,37.70927734375002],[26.84492187500004,37.64472656250001],[26.58105468750003,37.723730468750034],[26.82441406250004,37.81142578125005]]],[[[20.888476562500074,37.805371093749955],[20.993945312500074,37.70800781250003],[20.81855468750004,37.66474609375001],[20.61953125000008,37.855029296875045],[20.691503906250006,37.929541015625034],[20.888476562500074,37.805371093749955]]],[[[24.991699218750057,37.75961914062506],[24.962207031250074,37.69238281250003],[24.7001953125,37.961669921875],[24.956347656250045,37.90478515625006],[24.991699218750057,37.75961914062506]]],[[[20.61230468750003,38.38334960937502],[20.761328125,38.07055664062497],[20.523535156250063,38.106640624999955],[20.4521484375,38.23417968750002],[20.35253906250003,38.179882812499955],[20.563183593750068,38.474951171875034],[20.61230468750003,38.38334960937502]]],[[[26.094042968750017,38.21806640625002],[25.891894531250045,38.243310546874994],[25.991406250000068,38.353515625],[25.846093750000023,38.57402343749996],[26.16035156250001,38.54072265625001],[26.094042968750017,38.21806640625002]]],[[[20.68671875000001,38.60869140625002],[20.5546875,38.58256835937502],[20.69414062499999,38.84423828125003],[20.68671875000001,38.60869140625002]]],[[[24.67470703125005,38.80922851562502],[24.54101562499997,38.788671875],[24.485644531250074,38.980273437500045],[24.67470703125005,38.80922851562502]]],[[[23.41542968750008,38.958642578124994],[23.525,38.8134765625],[24.127539062500034,38.648486328125045],[24.27578125000005,38.22001953124996],[24.58837890625003,38.12397460937504],[24.53652343750005,37.97973632812506],[24.212011718750006,38.11752929687506],[24.040136718750006,38.389990234375034],[23.65078125000008,38.44306640625001],[23.25214843750004,38.80122070312498],[22.870312500000068,38.870507812499966],[23.258203125000023,39.03134765625006],[23.41542968750008,38.958642578124994]]],[[[26.41015625000003,39.329443359375034],[26.59560546875005,39.04882812499997],[26.488671875000023,39.074804687500034],[26.46875,38.97280273437502],[26.10791015625,39.08105468749997],[26.273144531249983,39.19755859374999],[26.072363281250034,39.095605468749994],[25.84414062500008,39.20004882812506],[26.16542968750008,39.37353515625006],[26.41015625000003,39.329443359375034]]],[[[20.077929687500045,39.432714843750034],[19.883984375000068,39.461523437500034],[19.646484375,39.76708984375003],[19.926074218750017,39.773730468750045],[19.8466796875,39.66811523437502],[20.077929687500045,39.432714843750034]]],[[[25.43769531250004,39.98330078125002],[25.357031250000063,39.80810546875003],[25.24941406250005,39.89414062500006],[25.06220703125004,39.852392578125006],[25.05800781250005,39.999658203124966],[25.43769531250004,39.98330078125002]]],[[[24.774218750000074,40.615185546874955],[24.515527343750023,40.64702148437496],[24.623339843750045,40.79291992187501],[24.774218750000074,40.615185546874955]]],[[[26.03896484375008,40.726757812499955],[25.10449218750003,40.994726562500006],[24.792968750000057,40.857519531250034],[24.47705078125,40.94775390625003],[24.082324218750074,40.72407226562504],[23.762792968750063,40.74780273437497],[23.866796875000034,40.41855468750006],[24.21279296875008,40.32778320312502],[24.343359375000034,40.14770507812503],[23.913183593750063,40.35878906250005],[23.72792968750008,40.329736328124994],[23.96748046875001,40.11455078125002],[23.947070312500045,39.96557617187506],[23.66455078125003,40.22382812499998],[23.42626953125,40.26396484374999],[23.62734375,39.92407226562503],[22.896484375000057,40.39990234374997],[22.92226562500008,40.59086914062499],[22.629492187500034,40.49555664062501],[22.59218750000005,40.03691406250002],[23.327734374999977,39.174902343750006],[23.15468750000008,39.10146484375005],[23.16171875,39.25776367187501],[22.92138671874997,39.30634765625004],[22.886035156250074,39.16997070312496],[23.066699218750017,39.03793945312498],[22.569140625000074,38.86748046874999],[23.25292968750003,38.66123046875006],[23.68398437500008,38.35244140625002],[23.96699218750001,38.275],[24.024511718750006,38.139794921874966],[24.01972656250001,37.67773437499997],[23.50175781249999,38.03486328124998],[23.03632812500004,37.87836914062501],[23.48925781250003,37.440185546875],[23.16152343750005,37.333837890625006],[22.725390625000017,37.542138671874966],[23.16015625000003,36.448095703125034],[22.717187500000023,36.79394531250006],[22.42773437500003,36.47578124999998],[22.08046875000008,37.028955078124966],[21.95556640625003,36.990087890625034],[21.892382812500045,36.73730468749997],[21.58291015625005,37.080957031249994],[21.678906250000068,37.38720703125003],[21.124707031250068,37.89160156250003],[21.40371093750005,38.19667968750002],[21.658398437500068,38.17509765624996],[21.82470703125003,38.328125],[22.846386718750068,37.96757812499996],[23.18349609375008,38.133691406249966],[22.421679687500045,38.43852539062499],[22.319921875,38.35683593750005],[21.96533203124997,38.412451171875006],[21.47255859375005,38.321386718750006],[21.3310546875,38.48730468749997],[21.303320312500034,38.373925781249966],[21.113183593750023,38.38466796875002],[20.768554687500057,38.874414062499966],[21.111621093750045,38.89628906249999],[21.11835937500001,39.029980468749955],[20.71337890625,39.03515625000003],[20.300781250000057,39.32709960937501],[20.19140625,39.545800781249966],[20.099414062500074,39.641259765624966],[20.001269531250074,39.70942382812501],[20.022558593750063,39.710693359375],[20.059765624999983,39.69912109375002],[20.13105468750004,39.66162109375003],[20.206835937500017,39.65351562499998],[20.382421875,39.802636718749994],[20.381640625000017,39.84179687500006],[20.311328125000074,39.95078125000006],[20.311132812500034,39.97944335937504],[20.338476562500006,39.991064453125006],[20.38369140625008,40.0171875],[20.408007812500074,40.049462890624994],[20.4560546875,40.065576171874994],[20.657421875000068,40.11738281249998],[20.881640625000017,40.467919921874994],[21.030859375000034,40.62246093750002],[20.95576171875001,40.775292968749994],[20.96425781250005,40.84990234374999],[21.575781250000034,40.86894531249996],[21.627539062500006,40.896337890625034],[21.77949218750004,40.95043945312506],[21.99335937500001,41.13095703125006],[22.18447265625005,41.15864257812501],[22.49355468750005,41.118505859375006],[22.603613281249977,41.14018554687499],[22.724804687500068,41.17851562499999],[22.78388671875004,41.33198242187498],[23.155957031250068,41.32207031249999],[23.239843750000034,41.38496093750001],[23.372070312500057,41.3896484375],[23.433398437500017,41.39873046874999],[23.53583984375001,41.38603515624999],[23.63515625000008,41.386767578125045],[24.011328124999977,41.460058593750034],[24.03291015625004,41.469091796875034],[24.05605468750005,41.527246093749966],[24.38671875,41.523535156250006],[24.487890625,41.55522460937499],[24.518261718750068,41.55253906249996],[24.773730468750045,41.356103515624994],[24.99355468750008,41.36499023437503],[25.133398437500063,41.31577148437506],[25.251171875000068,41.243554687499994],[25.923339843750057,41.311914062499966],[26.066406250000057,41.35068359375006],[26.135351562499977,41.3857421875],[26.155175781250023,41.43486328124999],[26.143554687500057,41.52153320312496],[26.085546875000063,41.704150390625045],[26.10742187499997,41.72568359374998],[26.20058593750005,41.74379882812502],[26.320898437500034,41.716552734375],[26.581347656250074,41.60126953125004],[26.62490234375008,41.401757812499994],[26.330664062499977,41.23876953125],[26.331054687500057,40.954492187499994],[26.03896484375008,40.726757812499955]]]]},"properties":{"name":"Greece","childNum":29}},{"geometry":{"type":"Polygon","coordinates":[[[-61.71552734375,12.012646484374997],[-61.714990234374994,12.18515625],[-61.60703125,12.223291015624994],[-61.71552734375,12.012646484374997]]]},"properties":{"name":"Grenada","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-46.266699218750006,60.781396484374994],[-46.381542968749955,60.66030273437502],[-46.7880859375,60.758398437500034],[-46.205224609374994,60.943505859374994],[-46.266699218750006,60.781396484374994]]],[[[-37.03125,65.53198242187497],[-37.23842773437494,65.60986328125003],[-37.047509765624966,65.722265625],[-37.03125,65.53198242187497]]],[[[-51.01367187499994,69.55249023437497],[-51.202050781249966,69.525],[-51.33886718749994,69.73203125000006],[-51.094580078125006,69.92416992187503],[-50.67900390624999,69.84853515625],[-51.01367187499994,69.55249023437497]]],[[[-52.73115234375001,69.94472656250005],[-52.0453125,69.8072265625],[-51.90019531249999,69.60478515625007],[-53.57841796874996,69.25664062500002],[-54.18271484374995,69.40351562500001],[-53.65830078124998,69.46513671875005],[-53.825,69.54033203124999],[-54.91914062499998,69.71362304687503],[-54.78789062499996,69.94985351562502],[-54.322607421875034,69.94189453125],[-54.83076171875001,70.13295898437502],[-54.37163085937499,70.31728515625],[-53.296728515625034,70.20537109375002],[-52.73115234375001,69.94472656250005]]],[[[-51.67514648437498,70.855224609375],[-52.11938476562497,70.87065429687502],[-52.10673828124999,70.96801757812497],[-51.67514648437498,70.855224609375]]],[[[-25.43232421875001,70.92133789062495],[-25.402246093749994,70.65268554687503],[-26.217871093749977,70.45405273437498],[-26.604687499999926,70.55336914062497],[-28.03525390624995,70.48681640625],[-27.61723632812496,70.91376953125001],[-26.621777343749955,70.87563476562497],[-25.81889648437499,71.04365234375001],[-25.43232421875001,70.92133789062495]]],[[[-53.53520507812493,71.04082031250005],[-53.9578125,71.12773437499999],[-53.58447265625003,71.29707031249995],[-53.53520507812493,71.04082031250005]]],[[[-55.01689453124999,72.79111328125003],[-55.56660156249998,72.56435546875002],[-56.214794921874955,72.71918945312495],[-55.01689453124999,72.79111328125003]]],[[[-18.000537109374932,75.40732421875003],[-17.391992187499937,75.03691406250007],[-18.670800781249966,75.00166015624998],[-18.856054687499977,75.31914062500002],[-18.000537109374932,75.40732421875003]]],[[[-18.58261718749995,76.042333984375],[-19.085351562499966,76.43037109375001],[-18.882470703124937,76.70380859375001],[-18.58261718749995,76.042333984375]]],[[[-71.667333984375,77.32529296874998],[-72.48955078124999,77.43164062499997],[-71.43344726562495,77.394384765625],[-71.667333984375,77.32529296874998]]],[[[-17.6125,79.82587890624995],[-18.662011718749966,79.72001953125005],[-19.13828125,79.85234375000002],[-17.98291015625,80.05517578125003],[-17.471386718749955,80.02871093749997],[-17.6125,79.82587890624995]]],[[[-44.86455078124999,82.08364257812502],[-46.75190429687501,82.34819335937502],[-47.27226562499996,82.65693359375001],[-46.399169921875,82.692138671875],[-44.91748046875003,82.48051757812505],[-44.86455078124999,82.08364257812502]]],[[[-29.952880859375,83.56484374999997],[-25.795068359374994,83.26098632812497],[-31.99267578125,83.0853515625],[-32.03271484374997,82.98344726562502],[-25.12338867187495,83.15961914062501],[-24.47031249999995,82.87739257812498],[-21.582519531249943,82.6341796875],[-23.118066406249966,82.32470703125003],[-29.57939453124996,82.16118164062502],[-29.887402343749983,82.05483398437502],[-29.543847656249994,81.93994140624997],[-27.839501953124966,82.04887695312505],[-25.148828124999966,82.001123046875],[-24.293066406249977,81.70097656250005],[-23.103710937499983,82.01181640625003],[-21.337988281249977,82.068701171875],[-21.230517578125017,81.60136718749999],[-23.11772460937499,80.77817382812498],[-19.62993164062499,81.63989257812503],[-17.456054687499943,81.397705078125],[-16.12070312499995,81.776611328125],[-14.241992187500017,81.81386718750005],[-12.434423828125006,81.68251953125002],[-11.430664062499972,81.45683593750005],[-13.126220703124972,81.08779296875],[-14.452343749999955,80.99311523437498],[-14.503564453124994,80.76328125000006],[-16.76059570312492,80.573388671875],[-15.937255859374972,80.42763671874997],[-16.48876953124997,80.25195312499997],[-18.070947265624994,80.17207031249995],[-19.429199218749943,80.25771484375],[-20.150146484375,80.01123046874997],[-18.99199218749996,79.17836914062502],[-21.133740234374926,78.65864257812501],[-21.729589843749977,77.70854492187499],[-20.862597656249932,77.91186523437503],[-19.490429687499983,77.71889648437497],[-19.46752929687503,77.56582031250005],[-20.162060546874926,77.68984375],[-20.680810546875023,77.61899414062503],[-20.23193359374997,77.36840820312497],[-19.30029296874997,77.22236328124995],[-18.442626953124943,77.259375],[-18.51030273437496,76.77817382812498],[-20.48671875,76.92080078125],[-21.614697265624926,76.68789062499997],[-22.18525390625001,76.79409179687502],[-22.609326171874983,76.70429687500004],[-21.877343749999966,76.57348632812503],[-21.488232421874926,76.271875],[-20.10361328124992,76.21909179687503],[-19.508984374999926,75.75751953124995],[-19.52636718750003,75.18022460937505],[-20.484960937500006,75.31425781249999],[-21.649316406249966,75.02343749999997],[-22.232861328124926,75.11972656249998],[-21.69511718749999,74.96445312500003],[-20.985791015624983,75.07436523437497],[-20.86157226562497,74.63593750000001],[-20.41708984374995,74.9751953125],[-19.98491210937499,74.9751953125],[-19.287011718750023,74.54638671875006],[-19.36914062499997,74.28403320312498],[-20.256445312499977,74.2828125],[-20.653125,74.13735351562502],[-21.954931640624977,74.24428710937497],[-21.942919921874932,74.56572265624999],[-22.32158203124999,74.30253906250002],[-22.134814453124932,73.99047851562503],[-20.36728515624992,73.8482421875],[-20.509667968749966,73.49287109375001],[-22.346875,73.26923828125001],[-23.23320312499999,73.39770507812497],[-24.157714843749943,73.76445312499999],[-24.67724609375,73.602197265625],[-25.521289062500017,73.85161132812499],[-24.79125976562497,73.51127929687502],[-26.062304687500017,73.25302734375],[-27.270410156250023,73.43627929687503],[-26.541845703125006,73.24897460937495],[-27.561621093750006,73.13847656250002],[-27.348046875000023,73.06782226562501],[-25.057031250000023,73.396484375],[-24.132666015625006,73.409375],[-22.036328124999955,72.91845703125006],[-22.29321289062497,72.11953125],[-24.06904296875001,72.49873046874998],[-24.629980468749977,73.03764648437499],[-26.657617187499966,72.71582031249997],[-24.81333007812492,72.90151367187497],[-24.65,72.58251953125],[-25.117871093749983,72.34697265625005],[-24.66684570312492,72.437353515625],[-21.959667968749955,71.74467773437502],[-22.479638671874937,71.38344726562497],[-22.417578125,71.24868164062505],[-22.29902343750001,71.43232421874998],[-21.75224609374999,71.47832031250002],[-21.522656249999926,70.52622070312503],[-22.38413085937492,70.46240234375],[-22.437011718749943,70.860009765625],[-22.690673828124943,70.43730468750002],[-23.327832031249983,70.45097656250007],[-23.97138671875001,70.64946289062499],[-24.562207031249926,71.22353515624997],[-25.885156249999966,71.571923828125],[-27.08720703124999,71.6265625],[-27.107031250000034,71.53266601562498],[-25.842724609374955,71.48017578124995],[-25.74223632812499,71.18359375],[-26.717919921874994,70.95048828125005],[-28.39843749999997,70.99291992187497],[-27.99218749999997,70.89521484374998],[-28.06987304687499,70.69902343750005],[-29.07207031249999,70.444970703125],[-26.621777343749955,70.46337890625],[-26.576806640625023,70.35708007812502],[-27.560839843749932,70.12446289062498],[-27.384179687500023,69.9916015625],[-27.027734374999966,70.20122070312499],[-25.529882812499977,70.35317382812502],[-23.66733398437495,70.139306640625],[-22.28447265624996,70.12583007812498],[-22.287060546874955,70.03339843749998],[-23.03364257812501,69.90083007812498],[-23.04956054687497,69.79272460937497],[-23.86572265624997,69.73671875000002],[-23.739404296874994,69.58862304687497],[-24.296679687500017,69.58554687500006],[-24.295556640624966,69.439306640625],[-25.188574218750006,69.26054687500002],[-25.092431640624937,69.16518554687502],[-25.697998046874943,68.889892578125],[-26.48291015624997,68.67592773437502],[-29.24951171874997,68.29877929687501],[-29.86850585937495,68.31157226562505],[-30.318115234375,68.19331054687501],[-30.72001953124999,68.25117187499998],[-30.610742187499994,68.11791992187503],[-30.97856445312499,68.06132812500005],[-32.32744140624999,68.43730468749999],[-32.16455078125,67.99111328125002],[-33.15698242187497,67.62670898437506],[-34.1982421875,66.65507812499999],[-35.18857421874995,66.25029296875002],[-35.86723632812502,66.44140624999997],[-35.630078124999926,66.13994140625002],[-36.37919921874996,65.830810546875],[-36.52724609375002,66.00771484375],[-36.665185546874966,65.79008789062507],[-37.06279296874996,65.87143554687503],[-37.410058593749994,65.65634765625],[-37.954785156249955,65.63359375000007],[-37.278710937499994,66.30439453124995],[-38.156640624999966,66.38559570312498],[-37.75234375000002,66.26152343750002],[-38.13994140625002,65.90351562499998],[-38.52036132812498,66.00966796875002],[-38.20336914062497,65.71171874999999],[-40.17353515624998,65.55615234375],[-39.57792968749996,65.34077148437501],[-39.937255859375,65.14160156250003],[-40.253125,65.04887695312505],[-41.08442382812501,65.10083007812497],[-40.966015624999955,64.86884765624995],[-40.655468749999926,64.91533203125002],[-40.18222656249998,64.47993164062495],[-40.78173828125,64.22177734375003],[-41.581005859374926,64.29833984375],[-41.03056640624996,64.12104492187504],[-40.61777343749998,64.13173828125],[-40.550390625000034,63.72524414062505],[-40.77519531249999,63.53364257812501],[-41.04873046875002,63.51381835937505],[-41.387890624999926,63.06186523437498],[-41.84448242187497,63.07026367187501],[-42.174511718749955,63.20878906249999],[-41.63447265624998,62.972460937500074],[-41.90898437499996,62.73710937499999],[-42.94165039062503,62.72021484375003],[-42.15297851562502,62.568457031250006],[-42.32148437499998,62.15273437500005],[-42.110205078125006,61.857226562500074],[-42.58530273437498,61.71748046875001],[-42.34736328125001,61.61743164062497],[-42.717041015625,60.767480468749994],[-43.04409179687502,60.523681640625],[-43.92270507812495,60.59536132812502],[-43.21298828124998,60.390673828125074],[-43.122900390625006,60.06123046875001],[-43.32011718749993,59.928125],[-43.95502929687498,60.025488281250006],[-43.65791015625001,59.85864257812503],[-43.90654296874996,59.815478515625045],[-44.11699218750002,59.83193359375002],[-44.06547851562499,59.92480468750003],[-44.412939453125006,59.922607421875],[-44.22436523437494,60.273535156250006],[-44.61328124999997,60.01665039062499],[-45.37924804687495,60.20292968750002],[-45.367773437500006,60.37294921875002],[-44.97470703124995,60.457226562499955],[-44.756738281249966,60.66459960937502],[-45.38051757812494,60.444921875],[-46.04663085937503,60.61572265625],[-46.141943359375006,60.776513671874994],[-45.87021484374998,61.21831054687502],[-46.87446289062501,60.81640625000003],[-48.180810546874966,60.76923828125001],[-47.77031249999999,60.99775390625001],[-48.386425781249926,61.004736328125034],[-48.42817382812501,61.18740234375002],[-48.92207031249998,61.27744140624998],[-49.28906249999997,61.58994140625006],[-49.380273437499994,61.89018554687502],[-48.82871093749998,62.0796875],[-49.62377929687494,61.99858398437499],[-49.553466796875,62.23271484374999],[-50.319238281249966,62.473193359375045],[-50.298730468749966,62.72197265625002],[-49.793115234374994,63.04462890625004],[-50.39008789062501,62.82202148437497],[-51.46884765624995,63.64228515625001],[-51.547509765624994,64.00610351562497],[-50.260693359374955,64.21425781250002],[-50.48662109374996,64.20888671875],[-50.43706054687499,64.31284179687503],[-51.58491210937498,64.10317382812502],[-51.70786132812498,64.205078125],[-51.403759765624926,64.46318359375002],[-50.49208984375002,64.69316406250005],[-50.00898437500001,64.44726562499997],[-50.12163085937493,64.703759765625],[-50.51699218750002,64.76650390625],[-50.96064453124998,65.20112304687498],[-50.721582031249966,64.79760742187503],[-51.22060546875002,64.62846679687502],[-51.25537109375,64.75810546875005],[-51.92260742187503,64.21875],[-52.259033203125,65.154931640625],[-52.537695312500034,65.32880859374998],[-51.61914062500003,65.71318359375002],[-51.091894531250006,65.77578125],[-51.7234375,65.723486328125],[-52.55126953125003,65.46137695312498],[-52.760937499999926,65.59082031249997],[-53.198974609375,65.59404296875002],[-53.106347656249966,65.97714843749998],[-53.39204101562498,66.04833984375],[-51.225,66.88154296875001],[-53.035791015624966,66.20141601562503],[-53.538769531249955,66.13935546874998],[-53.41875,66.64853515624998],[-53.038281249999955,66.82680664062497],[-52.38686523437502,66.88115234375005],[-53.44360351562503,66.924658203125],[-53.88442382812502,67.13554687499999],[-53.79858398437494,67.41816406250001],[-52.666455078124955,67.74970703124995],[-50.613476562499955,67.5279296875],[-51.171044921874966,67.693603515625],[-50.96884765624998,67.80664062500003],[-51.765234375000034,67.73784179687505],[-52.34482421874998,67.83691406249997],[-53.735205078125006,67.54902343750004],[-53.151562499999926,68.20776367187503],[-51.779980468749926,68.05673828124998],[-51.456494140624926,68.116064453125],[-51.21015625000001,68.419921875],[-52.19853515624993,68.22080078125],[-53.38315429687495,68.29736328124997],[-53.03945312500002,68.61088867187499],[-52.60458984374998,68.70874023437503],[-51.62314453124995,68.53481445312505],[-50.945703124999966,68.68266601562505],[-50.807714843750006,68.81699218749998],[-51.24941406250002,68.73994140625001],[-51.084863281249994,69.12827148437498],[-50.29736328124994,69.17060546874998],[-51.07695312499996,69.20947265625],[-50.291699218749955,70.01445312500005],[-52.254638671875,70.05893554687503],[-53.02304687499995,70.30190429687497],[-54.01445312499996,70.42167968750005],[-54.53076171875,70.69926757812502],[-54.16582031249999,70.82011718750005],[-52.801953124999955,70.7505859375],[-50.87236328124993,70.36489257812502],[-50.66328124999998,70.417578125],[-51.32285156249998,70.58876953124997],[-51.25659179687497,70.85268554687502],[-51.77431640625002,71.01044921875001],[-51.018945312499966,71.001318359375],[-51.37666015625001,71.11904296875],[-53.007568359375,71.17998046874999],[-52.89184570312497,71.457666015625],[-51.76992187500002,71.67172851562498],[-53.44008789062502,71.57900390625002],[-53.14453125000003,71.80742187500002],[-53.65214843749996,72.36264648437506],[-53.92773437499997,72.31879882812501],[-53.47758789062502,71.84995117187506],[-54.01992187500002,71.657861328125],[-53.96298828124995,71.45898437499997],[-54.6890625,71.36723632812505],[-55.59404296874999,71.55351562500005],[-55.315576171874994,72.11069335937498],[-54.84013671874996,72.35610351562497],[-55.581445312499994,72.178857421875],[-55.63583984374998,72.300439453125],[-55.29570312499996,72.35439453124997],[-55.60170898437494,72.453466796875],[-54.924951171874994,72.57197265624998],[-54.737939453124994,72.87250976562501],[-55.07309570312498,73.01513671875003],[-55.28891601562498,72.93320312500003],[-55.66855468749998,73.00791015624998],[-55.288281249999955,73.32709960937498],[-56.10405273437496,73.55815429687499],[-55.83828125,73.75971679687501],[-56.22539062499999,74.12910156249995],[-57.23056640624995,74.12529296875007],[-56.70634765625002,74.21918945312501],[-56.717675781249994,74.42924804687499],[-56.25546874999998,74.52680664062498],[-58.56552734374998,75.35273437500001],[-58.249658203124994,75.50668945312503],[-58.51621093749995,75.68906250000006],[-61.18823242187494,76.157861328125],[-63.29130859374996,76.35205078125003],[-63.84306640624999,76.21713867187498],[-64.307275390625,76.31650390624998],[-65.36992187499993,76.13056640625004],[-65.87573242187494,76.23833007812505],[-66.46577148437498,76.13916015625],[-66.99257812500002,76.21293945312502],[-66.67480468750003,75.977392578125],[-68.14873046875002,76.06704101562497],[-69.48408203125001,76.39916992187503],[-68.1142578125,76.65063476562503],[-69.67382812499994,76.73588867187507],[-69.69423828125002,76.98945312500004],[-70.613134765625,76.82182617187499],[-71.14145507812498,77.02866210937503],[-70.86284179687496,77.175439453125],[-68.97832031250002,77.19531250000006],[-68.13554687499999,77.37958984375001],[-66.38945312499999,77.28027343750003],[-66.69121093749999,77.68120117187502],[-67.68808593749995,77.523779296875],[-68.62153320312498,77.60185546875002],[-69.35136718749999,77.467138671875],[-70.53540039062497,77.699560546875],[-70.11445312500001,77.84135742187505],[-71.27163085937494,77.81313476562497],[-72.81806640624995,78.1943359375],[-72.47250976562498,78.48203125],[-71.65131835937493,78.62314453124998],[-68.99345703124999,78.857421875],[-68.37705078124998,79.037841796875],[-65.82553710937503,79.17373046874997],[-64.79228515624993,80.00063476562502],[-64.17915039062498,80.09926757812497],[-66.84365234374997,80.07622070312507],[-67.05063476562503,80.384521484375],[-64.51552734374997,81],[-63.72197265624993,81.05732421875001],[-63.028662109375006,80.88955078125002],[-62.90336914062496,81.21835937500003],[-61.43598632812498,81.13359375000002],[-60.842871093750034,81.85537109374997],[-59.28193359374998,81.88403320312503],[-56.615136718749994,81.362890625],[-59.26181640624998,82.00664062500005],[-54.54887695312496,82.35063476562505],[-53.671337890624955,82.16406249999997],[-53.55566406250003,81.65327148437501],[-53.022558593750034,82.32172851562504],[-50.894433593749994,81.89521484375001],[-49.54106445312496,81.91806640625003],[-50.93554687500003,82.38281250000003],[-50.03710937499994,82.472412109375],[-44.7294921875,81.77983398437505],[-44.23886718749998,82.3681640625],[-45.55654296875002,82.74702148437498],[-41.87646484375,82.680322265625],[-41.36962890625003,82.75],[-46.136816406250006,82.85883789062504],[-46.169042968750006,83.06386718749997],[-45.41459960937496,83.01767578124998],[-43.00927734375003,83.26459960937501],[-41.300146484375006,83.10078125000004],[-40.35683593750002,83.332177734375],[-38.15625,82.9986328125],[-38.74956054687496,83.37084960937497],[-37.72333984374998,83.49775390624998],[-29.952880859375,83.56484374999997]]]]},"properties":{"name":"Greenland","childNum":14}},{"geometry":{"type":"Polygon","coordinates":[[[-89.2328125,15.888671875],[-88.89404296875,15.890625],[-88.60336914062499,15.76416015625],[-88.5939453125,15.950292968749991],[-88.22832031249999,15.72900390625],[-88.271435546875,15.694873046875003],[-88.36455078124999,15.616015625],[-88.68447265625,15.360498046874994],[-88.96098632812499,15.152441406249991],[-89.142578125,15.072314453125003],[-89.22236328125,14.866064453124991],[-89.16220703124999,14.669238281250003],[-89.17177734375,14.606884765624997],[-89.28671875,14.529980468749997],[-89.36259765624999,14.416015625],[-89.5736328125,14.390087890624997],[-89.54716796874999,14.241259765625003],[-90.04814453124999,13.904052734375],[-90.09521484375,13.736523437499997],[-90.60693359375,13.929003906250003],[-91.37734375,13.990185546874997],[-92.23515624999999,14.54541015625],[-92.15854492187499,14.963574218749997],[-92.14423828125,15.001953125],[-92.09873046874999,15.026757812499994],[-92.07480468749999,15.07421875],[-92.187158203125,15.320898437499991],[-92.08212890624999,15.495556640624997],[-91.9572265625,15.703222656249991],[-91.736572265625,16.07016601562499],[-91.433984375,16.070458984374994],[-90.97958984374999,16.07080078125],[-90.70322265624999,16.071044921875],[-90.52197265625,16.071191406249994],[-90.44716796875,16.072705078124997],[-90.45986328125,16.162353515625],[-90.450146484375,16.261376953124994],[-90.4169921875,16.351318359375],[-90.4169921875,16.39101562499999],[-90.47109375,16.43955078124999],[-90.57578125,16.467822265625003],[-90.63408203124999,16.5107421875],[-90.634375,16.565136718749997],[-90.65996093749999,16.630908203125003],[-90.710693359375,16.70810546874999],[-90.975830078125,16.867822265624994],[-91.409619140625,17.255859375],[-91.1955078125,17.254101562499997],[-90.99296874999999,17.25244140625],[-90.98916015625,17.81640625],[-89.16147460937499,17.81484375],[-89.2328125,15.888671875]]]},"properties":{"name":"Guatemala","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[144.74179687500003,13.25927734375],[144.64931640625002,13.4287109375],[144.87539062500002,13.614648437499994],[144.94082031250002,13.5703125],[144.74179687500003,13.25927734375]]]},"properties":{"name":"Guam","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-57.194775390625,5.5484375],[-57.3185546875,5.335351562499994],[-57.20981445312499,5.195410156249991],[-57.331005859375,5.020166015624994],[-57.711083984374994,4.991064453124991],[-57.91704101562499,4.820410156249991],[-57.84599609374999,4.668164062499997],[-58.05429687499999,4.101660156249991],[-57.646728515625,3.39453125],[-57.303662109375,3.377099609374994],[-57.19736328124999,2.853271484375],[-56.704345703125,2.036474609374991],[-56.4828125,1.942138671875],[-56.96953124999999,1.91640625],[-57.03759765625,1.936474609374997],[-57.092675781249994,2.005810546874997],[-57.118896484375,2.013964843749989],[-57.31748046874999,1.963476562499991],[-57.41269531249999,1.908935546875],[-57.500439453125,1.77382812499999],[-57.54575195312499,1.72607421875],[-57.59443359375,1.7041015625],[-57.795654296875,1.7],[-57.8734375,1.667285156249989],[-57.9828125,1.6484375],[-58.03466796875,1.520263671875],[-58.34067382812499,1.587548828124994],[-58.38037109375,1.530224609374997],[-58.39580078124999,1.481738281249989],[-58.5060546875,1.438671875],[-58.511865234374994,1.28466796875],[-58.68461914062499,1.281054687499989],[-58.73032226562499,1.247509765624997],[-58.78720703124999,1.20849609375],[-58.82177734375,1.201220703124989],[-59.231201171875,1.376025390624989],[-59.53569335937499,1.7],[-59.66660156249999,1.746289062499997],[-59.66850585937499,1.842333984374989],[-59.74072265625,1.874169921874994],[-59.75620117187499,1.900634765625],[-59.75522460937499,2.274121093749997],[-59.8896484375,2.362939453124994],[-59.9943359375,2.689990234374989],[-59.854394531249994,3.5875],[-59.55112304687499,3.933544921874997],[-59.557763671874994,3.960009765624989],[-59.62021484374999,4.023144531249997],[-59.73857421874999,4.226757812499997],[-59.69970703125,4.353515625],[-60.1486328125,4.533251953124989],[-59.990673828125,5.082861328124991],[-60.142041015625,5.238818359374989],[-60.241650390625,5.257958984374994],[-60.335205078125,5.199316406249991],[-60.45952148437499,5.188085937499991],[-60.6513671875,5.221142578124997],[-60.742138671875,5.202050781249994],[-61.37680664062499,5.906982421875],[-61.3908203125,5.938769531249989],[-61.303125,6.049511718749997],[-61.22495117187499,6.129199218749989],[-61.15947265624999,6.174414062499991],[-61.12871093749999,6.214306640624997],[-61.152294921875,6.385107421874991],[-61.151025390624994,6.446533203125],[-61.181591796875,6.513378906249997],[-61.20361328125,6.58837890625],[-61.14560546874999,6.69453125],[-60.717919921874994,6.768310546875],[-60.35209960937499,7.002880859374997],[-60.32207031249999,7.092041015625],[-60.32548828124999,7.133984375],[-60.34506835937499,7.15],[-60.46494140624999,7.166552734374989],[-60.523193359375,7.143701171874994],[-60.583203125,7.156201171874997],[-60.63330078125,7.211083984374994],[-60.718652343749994,7.535937499999989],[-60.513623046875,7.813183593749997],[-60.032421875,8.053564453124991],[-59.99072265625,8.162011718749994],[-59.96484375,8.191601562499997],[-59.849072265625,8.248681640624994],[-59.83164062499999,8.305957031249989],[-60.017529296875,8.54931640625],[-59.20024414062499,8.07460937499999],[-58.51108398437499,7.39804687499999],[-58.48056640624999,7.038134765624989],[-58.67294921874999,6.390771484374994],[-58.414990234375,6.85117187499999],[-57.982568359374994,6.785888671875],[-57.54013671874999,6.33154296875],[-57.2275390625,6.178417968749997],[-57.194775390625,5.5484375]]]},"properties":{"name":"Guyana","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[73.70742187500002,-53.13710937499999],[73.46513671875002,-53.184179687500006],[73.25117187500001,-52.97578125000001],[73.83779296875002,-53.11279296875],[73.70742187500002,-53.13710937499999]]]},"properties":{"name":"Heard I. and McDonald Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-83.635498046875,14.876416015624997],[-84.53764648437496,14.633398437499963],[-84.64594726562498,14.661083984375011],[-84.86044921874998,14.809765625000011],[-84.98515624999999,14.752441406249972],[-85.059375,14.582958984374997],[-85.20834960937498,14.311816406250003],[-85.73393554687496,13.85869140625006],[-85.75341796875,13.852050781250028],[-85.78671874999995,13.844433593749997],[-85.98378906249997,13.965673828125006],[-86.04038085937503,14.050146484374977],[-86.33173828124995,13.770068359375031],[-86.37695312500003,13.755664062500031],[-86.61025390624997,13.774853515625026],[-86.73364257812494,13.763476562500017],[-86.75898437499995,13.746142578125045],[-86.77060546875003,13.698730468749972],[-86.763525390625,13.635253906250014],[-86.72958984375,13.4072265625],[-86.710693359375,13.31337890624998],[-86.72929687499996,13.284375],[-86.79213867187497,13.279785156249972],[-86.87353515624994,13.266503906250023],[-86.918212890625,13.223583984374983],[-87.00932617187499,13.007812499999986],[-87.0591796875,12.991455078125028],[-87.337255859375,12.979248046875028],[-87.48911132812503,13.352929687500051],[-87.814208984375,13.399169921875057],[-87.781884765625,13.521386718749994],[-87.71533203125003,13.812695312500011],[-87.73144531250003,13.841064453125014],[-87.80224609374997,13.889990234375034],[-87.89199218749997,13.894970703124983],[-87.99101562499996,13.879638671874972],[-88.15102539062497,13.987353515624974],[-88.44912109374994,13.850976562499994],[-88.48266601562503,13.854248046875043],[-88.49765624999998,13.904541015624986],[-88.50434570312501,13.964208984374963],[-88.51254882812498,13.97895507812504],[-89.12050781249994,14.370214843749991],[-89.36259765624996,14.416015625],[-89.17177734375,14.606884765624983],[-89.16220703125,14.669238281249989],[-89.22236328125001,14.86606445312502],[-89.142578125,15.072314453125031],[-88.96098632812496,15.15244140625002],[-88.68447265625002,15.360498046875037],[-88.36455078124996,15.616015625000045],[-88.27143554687498,15.694873046875045],[-88.22832031249999,15.729003906249972],[-88.131103515625,15.701025390625034],[-87.87495117187495,15.879345703124955],[-86.35664062499998,15.783203125],[-85.93627929687497,15.953417968750045],[-85.98564453124999,16.02416992187497],[-85.48369140624996,15.899511718749977],[-84.97373046874998,15.989892578124994],[-84.55966796875,15.802001953125],[-84.26142578124998,15.822607421875034],[-83.765283203125,15.405468750000054],[-83.972802734375,15.519628906250034],[-84.11132812499997,15.492431640625],[-84.09506835937503,15.400927734375017],[-83.92744140624998,15.394042968750028],[-83.76044921874998,15.220361328124994],[-83.49794921874997,15.222119140624997],[-83.64638671875,15.368408203125043],[-83.36918945312493,15.239990234375],[-83.29086914062498,15.078906250000045],[-83.2255859375,15.042285156250045],[-83.15751953124999,14.993066406249966],[-83.41503906249994,15.008056640625],[-83.5365234375,14.977001953124983],[-83.635498046875,14.876416015624997]]]},"properties":{"name":"Honduras","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[17.60781250000005,42.76904296875],[17.744238281250063,42.70034179687505],[17.34414062500008,42.790380859375006],[17.60781250000005,42.76904296875]]],[[[16.650683593750017,42.99658203125],[17.188281250000045,42.917041015625045],[16.850683593750006,42.8955078125],[16.650683593750017,42.99658203125]]],[[[17.667578125000063,42.897119140624994],[18.436328125000017,42.559716796874994],[18.517480468750023,42.43291015624999],[17.823828125,42.79741210937502],[17.045410156250057,43.014892578125],[17.667578125000063,42.897119140624994]]],[[[16.785253906250006,43.270654296874966],[16.490332031250034,43.28618164062502],[16.44892578125004,43.38706054687506],[16.89130859375001,43.314648437499955],[16.785253906250006,43.270654296874966]]],[[[15.371386718750074,43.973828124999955],[15.437207031250068,43.899511718750006],[15.270019531250028,44.01074218750003],[15.371386718750074,43.973828124999955]]],[[[14.488085937500074,44.66005859375005],[14.31240234375008,44.90039062499997],[14.33125,45.16499023437498],[14.488085937500074,44.66005859375005]]],[[[14.810253906250068,44.97705078124997],[14.45039062500004,45.079199218750006],[14.571093750000017,45.224755859374994],[14.810253906250068,44.97705078124997]]],[[[18.905371093750006,45.931738281250034],[18.839062499999983,45.83574218750002],[19.064257812500045,45.51499023437506],[19.004687500000074,45.39951171875006],[19.4,45.2125],[19.062890625000023,45.13720703125],[19.007128906250045,44.86918945312502],[18.83642578125,44.883251953124955],[18.66259765625,45.07744140624999],[17.812792968750074,45.078125],[16.918652343749983,45.27656249999998],[16.53066406250008,45.21669921875002],[16.29335937500005,45.00883789062496],[16.028320312500057,45.18959960937502],[15.788085937500057,45.17895507812497],[15.736621093750045,44.76582031250001],[16.10341796875008,44.52099609375006],[16.300097656250017,44.12451171875],[17.27382812500005,43.44575195312501],[17.650488281250063,43.006591796875],[17.585156250000068,42.93837890625005],[16.903125,43.392431640625006],[16.393945312500023,43.54335937500002],[15.985546875000068,43.519775390625],[15.185839843750017,44.17211914062503],[15.122949218749994,44.256787109374955],[15.470996093750045,44.27197265625003],[14.981347656250023,44.60292968750005],[14.854589843750034,45.08100585937501],[14.550488281249983,45.297705078125006],[14.31269531250004,45.33779296875002],[13.86074218750008,44.83740234375003],[13.517187500000063,45.481787109375034],[13.878710937500017,45.428369140624994],[14.369921875000074,45.48144531250006],[14.427343750000034,45.50576171875002],[14.56884765625,45.65722656249997],[14.591796875000057,45.65126953125002],[14.649511718750006,45.57148437500001],[14.793066406250034,45.47822265625001],[14.95458984375,45.499902343749994],[15.110449218750034,45.450781250000034],[15.242089843750023,45.44140624999997],[15.339453125000063,45.46704101562506],[15.326660156250028,45.502294921875034],[15.291210937500011,45.541552734375045],[15.283593750000051,45.5796875],[15.35371093750004,45.659912109375],[15.27705078125004,45.73261718749998],[15.652148437500074,45.86215820312498],[15.675585937500045,45.98369140624996],[15.666210937500011,46.04848632812502],[15.596875,46.10922851562506],[15.592578125000017,46.139990234375006],[15.608984374999977,46.171923828125045],[16.1064453125,46.382226562499994],[16.32119140625005,46.53461914062504],[16.42763671875005,46.5244140625],[16.516210937499977,46.499902343749966],[16.569921875,46.48500976562505],[16.748046875000057,46.41640625000002],[16.87148437500008,46.33930664062504],[17.310644531250006,45.99614257812502],[17.80712890625,45.79042968750002],[18.358300781250023,45.75302734375006],[18.533593750000023,45.79614257812503],[18.56464843750004,45.81328124999999],[18.666015625,45.90747070312497],[18.905371093750006,45.931738281250034]]]]},"properties":{"name":"Croatia","childNum":8}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-72.80458984374997,18.777685546875063],[-72.82221679687501,18.707128906249977],[-73.07797851562498,18.790917968749994],[-73.27641601562499,18.95405273437501],[-72.80458984374997,18.777685546875063]]],[[[-71.647216796875,19.195947265624994],[-71.80712890624997,18.987011718749983],[-71.733642578125,18.85639648437501],[-71.72705078125,18.80322265625003],[-71.74321289062502,18.73291015625],[-71.86650390624999,18.61416015625005],[-71.98686523437499,18.61035156249997],[-72.000390625,18.59790039062503],[-71.94038085937493,18.51259765625005],[-71.87255859374997,18.416210937499955],[-71.76191406249998,18.34130859374997],[-71.73725585937495,18.27080078124999],[-71.76831054687497,18.039160156250063],[-71.85292968749997,18.119140625],[-71.94609375,18.186083984375045],[-72.05986328124993,18.228564453125017],[-72.87666015624998,18.151757812499994],[-73.38515625000002,18.251171874999983],[-73.747314453125,18.190234375000017],[-73.88496093749998,18.041894531249994],[-74.478125,18.45],[-74.3875,18.624707031249983],[-74.22773437499998,18.662695312499977],[-72.78935546874996,18.434814453125],[-72.37607421874998,18.57446289062503],[-72.34765624999994,18.674951171874994],[-72.81108398437496,19.071582031250074],[-72.70322265625,19.441064453125023],[-73.43837890624994,19.722119140624983],[-73.21777343750003,19.88369140625005],[-72.63701171875002,19.90087890625],[-72.21982421875003,19.744628906250057],[-71.834716796875,19.696728515624983],[-71.77924804687498,19.718164062499994],[-71.75742187499998,19.68818359375001],[-71.71147460937493,19.486572265625057],[-71.74648437499997,19.28583984375001],[-71.647216796875,19.195947265624994]]]]},"properties":{"name":"Haiti","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[22.1318359375,48.405322265624996],[22.253710937500017,48.407373046874994],[22.582421875000023,48.134033203125],[22.769140625,48.109619140625],[22.87666015625001,47.947265625],[21.99970703125001,47.505029296874994],[21.121679687500006,46.282421875],[20.76025390625,46.246240234374994],[20.613671875000023,46.13349609375],[20.508105468750017,46.166943359375],[20.28095703125001,46.1330078125],[20.241796875,46.10859375],[20.21015625000001,46.126025390624996],[20.161425781250017,46.141894531249996],[19.93408203125,46.161474609375],[19.84443359375001,46.145898437499994],[19.61347656250001,46.169189453125],[19.421289062500023,46.064453125],[18.666015625,45.907470703125],[18.56464843750001,45.81328125],[18.533593750000023,45.796142578125],[18.358300781250023,45.75302734375],[17.80712890625,45.790429687499994],[17.310644531250006,45.996142578124996],[16.871484375000023,46.339306640625],[16.748046875,46.41640625],[16.569921875,46.485009765624994],[16.516210937500006,46.499902343749994],[16.283593750000023,46.857275390625],[16.093066406250017,46.86328125],[16.453417968750017,47.006787109375],[16.44287109375,47.39951171875],[16.676562500000017,47.536035156249994],[16.421289062500023,47.674462890624994],[17.06660156250001,47.707568359374996],[17.147363281250023,48.00595703125],[17.76191406250001,47.770166015624994],[18.72421875,47.787158203124996],[18.791894531250023,48.000292968749996],[19.625390625000023,48.223095703125],[19.95039062500001,48.146630859374994],[20.333789062500017,48.295556640624994],[20.490039062500017,48.526904296874996],[21.45136718750001,48.55224609375],[21.766992187500023,48.3380859375],[22.1318359375,48.405322265624996]]]},"properties":{"name":"Hungary","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[122.9489257812501,-10.90927734375002],[122.82617187500003,-10.899121093749983],[122.84570312500003,-10.761816406249991],[123.37109375000003,-10.474902343749989],[123.41816406250004,-10.651269531250037],[122.9489257812501,-10.90927734375002]]],[[[121.8830078125001,-10.590332031249957],[121.70468750000006,-10.5556640625],[121.99833984375002,-10.446972656249983],[121.8830078125001,-10.590332031249957]]],[[[123.41621093750004,-10.302636718749966],[123.3255859375,-10.264160156249943],[123.45878906250002,-10.13994140624996],[123.41621093750004,-10.302636718749966]]],[[[120.0125,-9.374707031250026],[120.78447265625002,-9.95703125],[120.83261718750006,-10.0375],[120.69804687500002,-10.206640624999949],[120.4391601562501,-10.294042968749991],[120.14482421875002,-10.200097656249952],[119.60107421874997,-9.773535156250006],[119.08544921875003,-9.706933593750023],[118.95878906250002,-9.519335937500003],[119.29589843749997,-9.3671875],[119.9420898437501,-9.301464843750026],[120.0125,-9.374707031250026]]],[[[125.06816406250002,-9.511914062499997],[124.42753906250002,-10.14863281250004],[123.7472656250001,-10.347167968749986],[123.60478515625002,-10.270117187500006],[123.71640625000012,-10.078613281249986],[123.5892578125,-9.966796875000028],[123.709375,-9.61484375],[124.0363281250001,-9.341601562500031],[124.28232421875012,-9.427929687500026],[124.44443359375012,-9.190332031250023],[124.92226562500005,-8.942480468749977],[124.93681640625007,-9.053417968750026],[125.14902343750012,-9.042578125000034],[125.10048828125,-9.189843750000023],[124.96015625000004,-9.213769531250009],[125.06816406250002,-9.511914062499997]]],[[[115.60996093750012,-8.769824218749974],[115.48046875000003,-8.715429687500006],[115.56142578125,-8.669921874999972],[115.60996093750012,-8.769824218749974]]],[[[122.97734375000002,-8.54521484374996],[122.88779296875006,-8.587304687500009],[123.01054687500002,-8.448339843750034],[123.153125,-8.475781250000026],[122.97734375000002,-8.54521484374996]]],[[[119.46406250000004,-8.741015624999974],[119.38554687500002,-8.736035156250026],[119.4464843750001,-8.429199218749957],[119.55722656250012,-8.518847656250003],[119.46406250000004,-8.741015624999974]]],[[[123.31748046875012,-8.354785156249974],[123.02500000000012,-8.395507812500014],[123.21708984375002,-8.235449218750006],[123.33603515625006,-8.269042968750014],[123.31748046875012,-8.354785156249974]]],[[[116.64082031250004,-8.613867187500006],[116.51425781250012,-8.820996093750011],[116.58652343750012,-8.886132812499966],[116.23935546875006,-8.912109375000014],[115.85732421875005,-8.787890625000017],[116.07646484375002,-8.744921874999974],[116.06113281250006,-8.437402343750023],[116.4015625000001,-8.204199218750034],[116.7189453125001,-8.336035156249977],[116.64082031250004,-8.613867187500006]]],[[[124.28662109375003,-8.32949218749998],[124.14667968750004,-8.531445312499997],[123.92773437500003,-8.448925781249969],[124.23955078125002,-8.20341796874996],[124.28662109375003,-8.32949218749998]]],[[[123.92480468750003,-8.2724609375],[123.55302734375007,-8.566796875],[123.23007812500006,-8.530664062500023],[123.47587890625007,-8.322265625000014],[123.39121093750012,-8.280468750000026],[123.77597656250006,-8.190429687499986],[123.92480468750003,-8.2724609375]]],[[[138.89511718750006,-8.388671874999957],[138.56337890625,-8.30908203125],[138.79619140625007,-8.173632812500017],[138.89511718750006,-8.388671874999957]]],[[[117.55634765625004,-8.367285156249949],[117.49052734375007,-8.183398437499974],[117.66503906249997,-8.148242187500003],[117.55634765625004,-8.367285156249949]]],[[[124.5755859375,-8.140820312499997],[125.05029296874997,-8.179589843749994],[125.13173828125,-8.326464843749989],[124.38066406250002,-8.41513671875002],[124.43066406249997,-8.18320312500002],[124.5755859375,-8.140820312499997]]],[[[127.8234375000001,-8.098828124999969],[128.11923828125012,-8.17070312499996],[128.02353515625006,-8.255371093749972],[127.82089843750012,-8.190234375000031],[127.8234375000001,-8.098828124999969]]],[[[122.7829101562501,-8.61171875],[121.65136718749997,-8.898730468749946],[121.41464843750006,-8.81484375],[121.32832031250004,-8.916894531250009],[121.03525390625012,-8.935449218749966],[120.55048828125004,-8.80185546875002],[119.909375,-8.857617187500011],[119.80791015625002,-8.697656250000023],[119.87480468750007,-8.419824218749994],[120.61025390625005,-8.24042968750004],[121.44453125000004,-8.57783203125004],[121.96650390625004,-8.455175781250006],[122.32324218749997,-8.628320312500023],[122.85048828125,-8.304394531250011],[122.91914062500004,-8.221875],[122.75859375000002,-8.185937499999952],[122.91699218749997,-8.105566406250006],[123.00595703125006,-8.329101562499986],[122.7829101562501,-8.61171875]]],[[[130.86220703125,-8.31875],[130.77519531250002,-8.34990234374996],[131.02011718750012,-8.091308593749943],[131.17636718750006,-8.130761718749994],[130.86220703125,-8.31875]]],[[[118.24238281250004,-8.317773437499994],[118.61191406250006,-8.28066406249998],[118.71386718749997,-8.41494140624998],[118.926171875,-8.297656249999974],[119.12968750000002,-8.668164062499969],[118.74589843750002,-8.735449218749991],[118.83261718750012,-8.833398437499966],[118.47861328125012,-8.856445312499957],[118.37890625000003,-8.674609375000031],[118.18994140624997,-8.840527343749997],[117.06132812500002,-9.099023437499994],[116.78847656250005,-9.006347656250028],[116.83505859375012,-8.532421875000026],[117.16484375000007,-8.367187500000014],[117.56708984375004,-8.426367187499991],[117.80605468750005,-8.711132812500011],[117.96953125000002,-8.728027343749986],[118.23486328124997,-8.591894531249963],[117.81484375000005,-8.342089843749974],[117.7552734375,-8.149511718749991],[118.11748046875007,-8.12226562500004],[118.24238281250004,-8.317773437499994]]],[[[115.44785156250012,-8.155175781249994],[115.70429687500004,-8.40712890624998],[115.14492187500005,-8.849023437500037],[115.05507812500005,-8.573046874999946],[114.61318359375,-8.37832031249998],[114.46757812500007,-8.166308593749946],[114.93847656249997,-8.18710937500002],[115.15400390625004,-8.065722656249974],[115.44785156250012,-8.155175781249994]]],[[[129.83886718749997,-7.954589843749986],[129.71347656250012,-8.04072265625004],[129.60898437500006,-7.803417968750011],[129.81298828124997,-7.819726562499952],[129.83886718749997,-7.954589843749986]]],[[[126.80097656250004,-7.667871093750009],[126.4720703125,-7.950390625000011],[126.04003906250003,-7.885839843750006],[125.79824218750005,-7.984570312499969],[125.97529296875004,-7.663378906249989],[126.21367187500002,-7.706738281250026],[126.60957031250004,-7.571777343749972],[126.80097656250004,-7.667871093750009]]],[[[127.41943359375003,-7.623046875000028],[127.37070312500012,-7.512792968749949],[127.47519531250012,-7.531054687500031],[127.41943359375003,-7.623046875000028]]],[[[138.53535156250004,-8.273632812499969],[138.2962890625,-8.405175781250037],[137.65039062499997,-8.386132812499966],[138.08183593750002,-7.566210937500003],[138.29550781250012,-7.4384765625],[138.76982421875002,-7.390429687499974],[138.98906250000002,-7.696093749999989],[138.53535156250004,-8.273632812499969]]],[[[131.3255859375,-7.999511718749986],[131.11376953125003,-7.997363281249989],[131.13779296875012,-7.684863281250017],[131.64345703125,-7.11279296875],[131.73613281250007,-7.197070312500017],[131.64384765625002,-7.266894531249946],[131.62441406250005,-7.626171874999955],[131.3255859375,-7.999511718749986]]],[[[131.98203125000006,-7.202050781249966],[131.75078125000002,-7.116796875],[131.92226562500005,-7.104492187499986],[131.98203125000006,-7.202050781249966]]],[[[128.6701171875001,-7.183300781249969],[128.52978515625003,-7.134570312499989],[128.62773437500007,-7.06875],[128.6701171875001,-7.183300781249969]]],[[[120.77441406250003,-7.118945312500003],[120.64082031250004,-7.115820312499991],[120.63339843750006,-7.018261718750011],[120.77441406250003,-7.118945312500003]]],[[[113.84453125000007,-7.105371093749994],[113.12695312499997,-7.224121093750028],[112.72587890625007,-7.072753906250014],[112.86806640625,-6.899902343749972],[113.06738281250003,-6.879980468749991],[113.97470703125012,-6.873046875],[114.0736328125,-6.960156249999983],[113.84453125000007,-7.105371093749994]]],[[[115.37705078125006,-6.97080078125002],[115.22031250000012,-6.952539062500037],[115.24052734375007,-6.861230468749994],[115.54609375000004,-6.938671874999955],[115.37705078125006,-6.97080078125002]]],[[[105.25283203125005,-6.640429687499946],[105.12138671875007,-6.614941406249997],[105.26054687500002,-6.523925781250014],[105.25283203125005,-6.640429687499946]]],[[[134.53681640625004,-6.442285156249994],[134.32275390624997,-6.84873046875002],[134.09082031249997,-6.833789062500003],[134.10703125000006,-6.471582031250009],[134.19462890625007,-6.459765625],[134.11464843750005,-6.190820312500009],[134.53681640625004,-6.442285156249994]]],[[[107.37392578125005,-6.007617187499989],[107.66679687500002,-6.215820312499957],[108.33017578125012,-6.286035156249966],[108.67783203125006,-6.790527343749972],[110.42626953124997,-6.947265625000028],[110.83476562500002,-6.424218749999952],[110.97226562500012,-6.435644531249977],[111.18154296875005,-6.686718749999969],[111.54033203125002,-6.648242187500031],[112.0873046875,-6.89335937499996],[112.53925781250004,-6.926464843749955],[112.64873046875007,-7.221289062499977],[112.7943359375,-7.304492187499974],[112.79453125000012,-7.55244140625004],[113.01357421875005,-7.657714843749986],[113.49765625000006,-7.723828124999955],[114.07070312500005,-7.633007812500011],[114.40927734375012,-7.79248046875],[114.38691406250004,-8.405175781250037],[114.58378906250002,-8.769628906250034],[113.25332031250005,-8.286718749999963],[112.67880859375006,-8.409179687499957],[111.50996093750004,-8.30507812499998],[110.60722656250002,-8.149414062499972],[109.28164062500005,-7.704882812500003],[108.74121093749997,-7.667089843750034],[108.45175781250006,-7.79697265625002],[107.91748046875003,-7.724121093750014],[107.28496093750007,-7.471679687500014],[106.45527343750004,-7.368652343749986],[106.51972656250004,-7.053710937499943],[106.19824218749997,-6.927832031249977],[105.25546875000012,-6.835253906250031],[105.37089843750002,-6.664355468750031],[105.48369140625007,-6.781542968750017],[105.65507812500002,-6.469531249999946],[105.78691406250002,-6.456933593749966],[105.86826171875006,-6.11640625000004],[106.075,-5.914160156249963],[106.82519531249997,-6.098242187499977],[107.0462890625,-5.90419921874998],[107.37392578125005,-6.007617187499989]]],[[[120.52832031249997,-6.2984375],[120.48730468749997,-6.464843749999972],[120.47734375000007,-5.775292968750009],[120.52832031249997,-6.2984375]]],[[[112.7194335937501,-5.81103515625],[112.58603515625006,-5.803613281249994],[112.69003906250006,-5.726171875000034],[112.7194335937501,-5.81103515625]]],[[[132.80712890625003,-5.850781250000011],[132.68144531250002,-5.91259765625],[132.63017578125002,-5.60703125],[132.80712890625003,-5.850781250000011]]],[[[134.74697265625,-5.707031249999957],[134.71416015625007,-6.29511718750004],[134.44111328125004,-6.334863281249966],[134.15488281250006,-6.06289062499998],[134.3019531250001,-6.009765624999986],[134.34306640625002,-5.833007812499943],[134.20537109375002,-5.707226562499997],[134.34130859375003,-5.712890624999986],[134.57080078124997,-5.42734375],[134.74697265625,-5.707031249999957]]],[[[132.92626953124997,-5.902050781249983],[132.84501953125002,-5.987988281249997],[133.13847656250002,-5.317871093749986],[133.11962890625003,-5.575976562499989],[132.92626953124997,-5.902050781249983]]],[[[102.36718750000003,-5.478710937499983],[102.1107421875,-5.32255859374996],[102.3717773437501,-5.366406250000011],[102.36718750000003,-5.478710937499983]]],[[[123.62675781250007,-5.271582031249963],[123.58261718750006,-5.36738281250004],[123.54277343750002,-5.271093749999963],[123.62675781250007,-5.271582031249963]]],[[[122.04296874999997,-5.437988281250028],[121.80849609375,-5.256152343750017],[121.91367187500012,-5.072265624999957],[122.04101562500003,-5.158789062499991],[122.04296874999997,-5.437988281250028]]],[[[122.64511718750012,-5.26943359374998],[122.5638671875,-5.3875],[122.28310546875,-5.319531249999969],[122.39628906250002,-5.069824218749986],[122.36894531250007,-4.767187499999977],[122.70195312500002,-4.61865234375],[122.75986328125012,-4.933886718750003],[122.61406250000007,-5.138671874999986],[122.64511718750012,-5.26943359374998]]],[[[123.17978515625006,-4.551171875000023],[123.195703125,-4.82265625],[123.05517578124997,-4.748242187500026],[122.97167968750003,-5.138476562500031],[123.18730468750007,-5.333007812499957],[122.96875,-5.405761718749943],[122.81210937500012,-5.671289062499952],[122.64501953124997,-5.663378906250031],[122.58642578124997,-5.488867187500006],[122.76650390625005,-5.210156249999983],[122.85332031250007,-4.618359375000026],[123.074609375,-4.38691406250004],[123.17978515625006,-4.551171875000023]]],[[[133.57080078124997,-4.245898437500003],[133.621875,-4.299316406249957],[133.32089843750006,-4.111035156249969],[133.57080078124997,-4.245898437500003]]],[[[123.2423828125001,-4.112988281250011],[123.07617187499997,-4.227148437499991],[122.96904296875002,-4.029980468749969],[123.21191406250003,-3.997558593750028],[123.2423828125001,-4.112988281250011]]],[[[128.56259765625012,-3.58544921875],[128.39160156250003,-3.637890625000026],[128.45156250000005,-3.514746093749991],[128.56259765625012,-3.58544921875]]],[[[128.2755859375001,-3.67460937499996],[127.97802734374997,-3.770996093749972],[127.925,-3.69931640625002],[128.32910156249997,-3.51591796874996],[128.2755859375001,-3.67460937499996]]],[[[116.42412109375007,-3.464453124999963],[116.38779296875012,-3.636718749999972],[116.3265625,-3.539062499999972],[116.42412109375007,-3.464453124999963]]],[[[116.30332031250006,-3.868164062499957],[116.05878906250004,-4.006933593749991],[116.06357421875006,-3.457910156249952],[116.26972656250004,-3.251074218750006],[116.30332031250006,-3.868164062499957]]],[[[126.86113281250007,-3.087890624999986],[127.22734375000007,-3.391015625],[127.22958984375006,-3.633007812500011],[126.68632812500007,-3.823632812500037],[126.21455078125004,-3.605175781250026],[126.05654296875,-3.420996093749991],[126.08828125,-3.105468750000014],[126.86113281250007,-3.087890624999986]]],[[[106.88642578125004,-3.005273437500023],[106.7428710937501,-2.932812500000011],[106.91064453124997,-2.93398437499998],[106.88642578125004,-3.005273437500023]]],[[[129.75468750000007,-2.865820312500034],[130.3791015625001,-2.989355468749977],[130.56992187500006,-3.130859375000028],[130.85996093750006,-3.570312500000028],[130.805078125,-3.85771484374996],[129.844140625,-3.327148437499957],[129.51171875000003,-3.32851562499998],[129.46767578125005,-3.453222656249977],[128.8625,-3.234960937500006],[128.51660156249997,-3.449121093750037],[128.13203125000004,-3.157421875000026],[127.90234374999997,-3.496289062499955],[127.87792968749997,-3.222070312499966],[128.19853515625002,-2.865917968749969],[128.99111328125,-2.82851562499998],[129.17441406250006,-2.933496093749966],[129.48417968750002,-2.785742187499977],[129.75468750000007,-2.865820312500034]]],[[[100.42509765625007,-3.182910156249974],[100.46513671875007,-3.32851562499998],[100.20429687500004,-2.98681640625],[100.19853515625002,-2.785546875000023],[100.45458984375003,-3.001953124999972],[100.42509765625007,-3.182910156249974]]],[[[108.2072265625001,-2.997656249999977],[108.05527343750006,-3.22685546874996],[107.85820312500002,-3.086328125000023],[107.61445312500004,-3.209375],[107.56347656250003,-2.920117187499997],[107.66630859375002,-2.566308593750037],[107.83779296875005,-2.530273437499972],[108.21513671875002,-2.696972656250011],[108.29062500000012,-2.829980468750023],[108.2072265625001,-2.997656249999977]]],[[[100.20410156249997,-2.741015625000017],[100.01494140625007,-2.819726562499966],[99.98789062500006,-2.525390624999957],[100.20410156249997,-2.741015625000017]]],[[[99.84306640625007,-2.343066406250031],[99.60703125000012,-2.257519531250011],[99.57216796875005,-2.025781249999966],[99.84306640625007,-2.343066406250031]]],[[[126.055078125,-2.451269531249963],[125.86289062500006,-2.077148437499943],[125.92275390625,-1.974804687499969],[126.055078125,-2.451269531249963]]],[[[126.02421875000007,-1.789746093750011],[126.33173828125004,-1.822851562500006],[125.47919921875004,-1.940039062499991],[125.38720703124997,-1.843066406249946],[126.02421875000007,-1.789746093750011]]],[[[130.35332031250007,-1.690527343749963],[130.41884765625,-1.971289062499963],[130.24804687500003,-2.047753906249994],[129.7376953125,-1.866894531250011],[130.35332031250007,-1.690527343749963]]],[[[124.96953125000007,-1.70546875],[125.18789062500005,-1.712890624999986],[125.31406250000006,-1.877148437499969],[124.41777343750002,-2.005175781250031],[124.32968750000012,-1.858886718749972],[124.41757812500006,-1.659277343749991],[124.96953125000007,-1.70546875]]],[[[135.47421875000006,-1.591796875000014],[136.89257812500003,-1.799707031249994],[136.22812500000012,-1.893652343749949],[135.47421875000006,-1.591796875000014]]],[[[108.953125,-1.61962890625],[108.83789062499997,-1.661621093750028],[108.80371093750003,-1.567773437499994],[108.953125,-1.61962890625]]],[[[106.04570312500002,-1.669433593750014],[106.36591796875004,-2.464843749999972],[106.81845703125006,-2.573339843749963],[106.6120117187501,-2.895507812499957],[106.66718750000004,-3.071777343749986],[105.99873046875004,-2.824902343749955],[105.7858398437501,-2.18134765625004],[105.13339843750012,-2.042578125],[105.45957031250006,-1.574707031249986],[105.58544921875003,-1.526757812499994],[105.7008789062501,-1.731054687499963],[105.7204101562501,-1.533886718750026],[105.91005859375,-1.504980468749991],[106.04570312500002,-1.669433593750014]]],[[[123.59755859375,-1.704296875000011],[123.48251953125006,-1.681445312499974],[123.52851562500004,-1.502832031250009],[123.59755859375,-1.704296875000011]]],[[[128.1530273437501,-1.66054687499998],[127.56162109375012,-1.728515624999972],[127.39501953125003,-1.589843749999972],[127.64667968750004,-1.332421875],[128.1530273437501,-1.66054687499998]]],[[[123.2123046875,-1.171289062499966],[123.23779296874997,-1.389355468749983],[123.43476562500004,-1.236816406249986],[123.54726562500005,-1.337402343749957],[123.51191406250004,-1.447363281249977],[123.27490234374997,-1.437207031249955],[123.17294921875006,-1.616015624999974],[123.15039062500003,-1.304492187500003],[122.89042968750007,-1.58720703124996],[122.81083984375002,-1.432128906249986],[122.90800781250002,-1.182226562499963],[123.2123046875,-1.171289062499966]]],[[[109.71025390625007,-1.1806640625],[109.46367187500002,-1.277539062500026],[109.4759765625,-0.9853515625],[109.74335937500004,-1.039355468749989],[109.71025390625007,-1.1806640625]]],[[[134.96533203124997,-1.116015624999974],[134.86171875,-1.114160156249952],[134.82792968750002,-0.978808593750003],[134.99628906250004,-1.03408203124998],[134.96533203124997,-1.116015624999974]]],[[[99.16386718750007,-1.777929687500006],[98.82773437500006,-1.609960937499977],[98.60175781250004,-1.197851562499949],[98.67607421875007,-0.970507812500003],[98.93261718750003,-0.954003906250009],[99.2672851562501,-1.62773437499996],[99.16386718750007,-1.777929687500006]]],[[[131.00185546875005,-1.315527343750034],[130.78232421875006,-1.255468749999963],[130.67294921875006,-0.959765625000031],[131.03300781250007,-0.917578124999963],[131.00185546875005,-1.315527343750034]]],[[[135.38300781250004,-0.6513671875],[135.89355468749997,-0.725781249999969],[136.37529296875007,-1.094042968750031],[136.1647460937501,-1.214746093750023],[135.91503906250003,-1.178417968749997],[135.74707031249997,-0.823046874999974],[135.64570312500004,-0.881933593749991],[135.38300781250004,-0.6513671875]]],[[[127.30039062500012,-0.780957031250026],[127.1564453125001,-0.760937500000026],[127.20908203125006,-0.619335937499955],[127.30039062500012,-0.780957031250026]]],[[[130.6266601562501,-0.528710937499966],[130.46542968750006,-0.486523437499983],[130.6159179687501,-0.417285156250003],[130.6266601562501,-0.528710937499966]]],[[[121.86435546875012,-0.406835937500006],[121.88125,-0.502636718749983],[121.65527343749997,-0.526171874999989],[121.86435546875012,-0.406835937500006]]],[[[140.97343750000007,-2.609765625],[140.97353515625,-2.803417968750026],[140.975,-6.346093750000023],[140.86230468749997,-6.740039062499989],[140.97519531250006,-6.90537109375002],[140.97617187500012,-9.11875],[140.00292968749997,-8.19550781250004],[140.11699218750002,-7.923730468750009],[139.93476562500004,-8.101171875],[139.38564453125,-8.189062499999963],[139.24882812500002,-7.982421874999972],[138.890625,-8.237792968749943],[139.08798828125012,-7.587207031250017],[138.74794921875,-7.25146484375],[139.17685546875006,-7.1904296875],[138.84570312500003,-7.13632812499999],[138.60136718750007,-6.936523437499972],[138.86455078125007,-6.858398437499943],[138.43867187500004,-6.343359375],[138.2962890625,-5.94902343749996],[138.37460937500006,-5.84365234374998],[138.19960937500005,-5.80703125],[138.33964843750007,-5.675683593749966],[138.08710937500004,-5.70917968750004],[138.06083984375002,-5.46523437499998],[137.27978515624997,-4.945410156249949],[136.61884765625004,-4.81875],[135.97968750000004,-4.530859374999963],[135.19560546875007,-4.450683593749972],[134.67968749999997,-4.079101562499943],[134.70654296875003,-3.954785156250026],[134.88652343750007,-3.938476562499986],[134.26621093750012,-3.945800781249972],[134.14707031250006,-3.79677734374998],[133.97382812500004,-3.817968750000034],[133.67832031250006,-3.4794921875],[133.8415039062501,-3.054785156249991],[133.70039062500004,-3.0875],[133.653125,-3.364355468749991],[133.51816406250012,-3.411914062500003],[133.40087890625003,-3.899023437500034],[133.24873046875004,-4.062304687499989],[132.91445312500005,-4.05693359374996],[132.75390625000003,-3.703613281250014],[132.86972656250006,-3.550976562499997],[132.75136718750005,-3.294628906249997],[131.97119140624997,-2.788574218750014],[132.2306640625001,-2.680371093749997],[132.725,-2.789062500000028],[133.19101562500006,-2.43779296874996],[133.70009765625005,-2.624609375],[133.75332031250005,-2.450683593750014],[133.90488281250012,-2.390917968750003],[133.79101562500003,-2.293652343749997],[133.92158203125004,-2.102050781249957],[132.96279296875005,-2.272558593749963],[132.30761718749997,-2.24228515625002],[132.02343749999997,-1.99033203125002],[131.93037109375004,-1.559667968750034],[131.29375,-1.393457031250009],[130.99589843750007,-1.42470703124998],[131.1908203125,-1.165820312500003],[131.2572265625,-0.855468750000014],[131.80429687500006,-0.703808593750026],[132.39375,-0.355468750000028],[132.85644531250003,-0.417382812500023],[133.47265624999997,-0.726171874999963],[133.97451171875,-0.744335937500026],[134.11152343750004,-0.84677734375002],[134.07197265625004,-1.001855468749994],[134.25957031250007,-1.362988281250026],[134.105859375,-1.720996093749946],[134.19482421875003,-2.309082031249943],[134.45996093749997,-2.83232421874996],[134.48330078125,-2.583007812499972],[134.62744140624997,-2.536718749999963],[134.70214843749997,-2.933593749999986],[134.84335937500006,-2.909179687499986],[134.88681640625006,-3.209863281249966],[135.25156250000012,-3.368554687499966],[135.48662109375002,-3.34511718749998],[135.85917968750002,-2.99531250000004],[136.38994140625002,-2.273339843750037],[137.07207031250002,-2.105078124999949],[137.1710937500001,-2.025488281249991],[137.1234375,-1.840917968749963],[137.80625000000012,-1.483203125],[139.78955078125003,-2.34824218750002],[140.62255859374997,-2.44580078125],[140.74746093750005,-2.607128906249997],[140.97343750000007,-2.609765625]]],[[[104.47421875000012,-0.334667968749955],[104.59013671875002,-0.466601562500017],[104.36318359375,-0.658593749999966],[104.25712890625002,-0.463281249999966],[104.47421875000012,-0.334667968749955]]],[[[127.56699218750006,-0.318945312499949],[127.68242187500002,-0.46835937500002],[127.60498046874997,-0.610156249999946],[127.88017578125002,-0.808691406249991],[127.7611328125,-0.883691406249994],[127.62382812500002,-0.76601562499999],[127.46269531250002,-0.80595703124996],[127.46865234375,-0.64296875],[127.3,-0.500292968749946],[127.32509765625,-0.335839843750023],[127.45517578125012,-0.406347656249991],[127.56699218750006,-0.318945312499949]]],[[[127.24990234375005,-0.4953125],[127.11914062500003,-0.520507812499986],[127.12646484375003,-0.278613281250003],[127.29003906250003,-0.284375],[127.24990234375005,-0.4953125]]],[[[103.73652343750004,-0.347949218750003],[103.461328125,-0.357617187500011],[103.54892578125006,-0.227539062499986],[103.73652343750004,-0.347949218750003]]],[[[130.81328125000007,-0.004101562500026],[131.27685546875003,-0.149804687499952],[131.33974609375005,-0.290332031249989],[131.00537109374997,-0.360742187500037],[130.62216796875006,-0.0859375],[130.89921875000002,-0.344433593749997],[130.7501953125001,-0.44384765625],[130.6886718750001,-0.296582031250011],[130.55078124999997,-0.366406250000026],[130.23662109375002,-0.209667968749983],[130.3625,-0.072851562500006],[130.81328125000007,-0.004101562500026]]],[[[98.45927734375007,-0.530468749999969],[98.30966796875012,-0.531835937499977],[98.4271484375,-0.226464843750037],[98.3229492187501,-0.000781249999974],[98.54414062500004,-0.257617187499989],[98.45927734375007,-0.530468749999969]]],[[[104.77861328125007,-0.175976562499955],[105.00537109374997,-0.282812499999963],[104.44707031250002,-0.189160156249983],[104.54267578125004,0.01772460937498],[104.77861328125007,-0.175976562499955]]],[[[103.28447265625002,0.541943359375011],[103.13955078125,0.549072265625043],[103.18740234375,0.699755859375017],[103.28447265625002,0.541943359375011]]],[[[103.0275390625001,0.746630859374974],[102.4904296875001,0.856640625],[102.50664062500002,1.088769531250037],[103.00244140624997,0.859277343750009],[103.0275390625001,0.746630859374974]]],[[[103.42392578125012,1.048339843749972],[103.31542968750003,1.071289062500028],[103.37998046875006,1.133642578125034],[103.42392578125012,1.048339843749972]]],[[[103.16640625000005,0.870166015625003],[102.7018554687501,1.0537109375],[102.72558593749997,1.158837890625023],[102.99941406250005,1.067773437500023],[103.16640625000005,0.870166015625003]]],[[[104.02480468750005,1.180566406250009],[104.13984375000004,1.165576171874974],[104.06611328125004,0.989550781249989],[103.93222656250012,1.071386718749963],[104.02480468750005,1.180566406250009]]],[[[104.58535156250005,1.21611328124996],[104.66289062500002,1.04951171875004],[104.57519531250003,0.831933593750037],[104.43925781250002,1.050439453125051],[104.25195312499997,1.014892578125],[104.36181640624997,1.18149414062502],[104.58535156250005,1.21611328124996]]],[[[102.4271484375,0.990136718750023],[102.27958984375002,1.075683593750043],[102.25634765625003,1.397070312499963],[102.44287109374997,1.234228515625006],[102.4271484375,0.990136718750023]]],[[[97.48154296875006,1.465087890624972],[97.93193359375002,0.973925781250003],[97.82041015625012,0.564453124999986],[97.683984375,0.596093750000037],[97.60390625000005,0.83388671874998],[97.40537109375012,0.946972656250026],[97.07919921875006,1.425488281249983],[97.35595703124997,1.539746093749997],[97.48154296875006,1.465087890624972]]],[[[102.49189453125004,1.459179687500011],[102.49941406250005,1.330908203124991],[102.02402343750012,1.607958984375031],[102.49189453125004,1.459179687500011]]],[[[124.88886718750004,0.995312500000011],[124.42753906250002,0.470605468750051],[123.75380859375,0.305517578124991],[123.26542968750007,0.326611328125026],[122.996875,0.493505859375006],[121.01298828125002,0.441699218750017],[120.57900390625,0.5283203125],[120.19228515625,0.268505859374997],[120.01328125000012,-0.196191406249994],[120.062890625,-0.555566406250023],[120.240625,-0.868261718749949],[120.51757812499997,-1.039453125],[120.66738281250005,-1.370117187499972],[121.14853515625012,-1.33945312500002],[121.5755859375,-0.828515625000023],[121.96962890625005,-0.933300781249969],[122.27998046875004,-0.757031250000026],[122.88876953125006,-0.755175781250003],[122.8294921875,-0.658886718750026],[123.17148437500012,-0.57070312499999],[123.37968750000002,-0.648535156249949],[123.43417968750006,-0.778222656249994],[123.37792968749997,-1.004101562500011],[122.90283203125003,-0.900976562499963],[122.25068359375004,-1.555273437500034],[121.8585937500001,-1.69326171874998],[121.65097656250006,-1.895410156249952],[121.35546874999997,-1.878222656250003],[122.29169921875004,-2.907617187500023],[122.39902343750006,-3.200878906249997],[122.25292968749997,-3.620410156250017],[122.68964843750004,-4.084472656249972],[122.84794921875002,-4.064550781250006],[122.8722656250001,-4.391992187500009],[122.71972656250003,-4.340722656249952],[122.11425781250003,-4.540234375000011],[122.03808593749997,-4.832421875000023],[121.58867187500007,-4.759570312500017],[121.48652343750004,-4.581054687499972],[121.61806640625,-4.092675781249952],[120.89179687500004,-3.520605468750034],[121.05429687500012,-3.167089843749949],[121.0521484375,-2.751660156249955],[120.87939453124997,-2.64560546875002],[120.65361328125002,-2.667578124999977],[120.26103515625007,-2.949316406249991],[120.43662109375012,-3.70732421874996],[120.42011718750004,-4.617382812500011],[120.27929687499997,-5.146093749999977],[120.4303710937501,-5.591015625000026],[119.9515625,-5.577636718749972],[119.71728515625003,-5.693359375000014],[119.55742187500007,-5.611035156250026],[119.36035156249997,-5.314160156250026],[119.59404296875007,-4.523144531249997],[119.62363281250006,-4.034375],[119.46748046875004,-3.512988281249989],[118.99462890624997,-3.537597656250028],[118.86767578124997,-3.39804687500002],[118.78330078125006,-2.720800781249977],[119.09218750000005,-2.482910156250014],[119.32187500000012,-1.929687500000014],[119.308984375,-1.408203125],[119.508203125,-0.906738281249972],[119.71132812500005,-0.680761718750034],[119.84433593750006,-0.861914062499991],[119.721875,-0.088476562499991],[119.865625,0.040087890625003],[119.80927734375004,0.238671875000051],[119.9132812500001,0.445068359375],[120.26953125000003,0.970800781249991],[120.60253906249997,0.854394531249994],[120.86796875000007,1.25283203124998],[121.0817382812501,1.327636718750028],[121.40410156250002,1.243603515624969],[121.59179687499997,1.067968749999977],[122.43662109375006,1.018066406250028],[122.83828125,0.845703125],[123.06650390625006,0.941796875000037],[123.93076171875006,0.850439453124977],[124.53369140624997,1.230468750000043],[124.94707031250002,1.672167968749974],[125.11093750000012,1.685693359374966],[125.2337890625,1.502294921875006],[124.88886718750004,0.995312500000011]]],[[[101.70810546875006,2.078417968750045],[101.71943359375004,1.789160156250006],[101.50078125000002,1.733203124999974],[101.40966796875003,2.021679687500026],[101.70810546875006,2.078417968750045]]],[[[127.73271484375007,0.848144531250043],[127.8810546875001,0.832128906249977],[127.96728515624997,1.042578125000048],[128.16074218750006,1.1578125],[128.22246093750002,1.400634765624986],[128.68837890625,1.572558593750017],[128.70263671874997,1.106396484374997],[128.29882812500003,0.87680664062502],[128.26064453125,0.733789062500023],[128.61123046875,0.549951171875051],[128.89960937500004,0.216259765625011],[127.9831054687501,0.471875],[127.88740234375004,0.298339843750043],[127.97783203125002,-0.24833984374996],[128.4254882812501,-0.892675781249949],[128.04638671875003,-0.706054687499943],[127.69160156250004,-0.241894531249983],[127.70869140625004,0.288085937499986],[127.53710937500003,0.610888671875031],[127.60800781250006,0.848242187499977],[127.42851562500002,1.139990234374991],[127.63173828125,1.843701171875011],[128.03642578125002,2.199023437500017],[127.88681640625012,1.83295898437504],[128.0109375000001,1.701220703125031],[128.01171874999997,1.331738281249983],[127.65283203124997,1.013867187499969],[127.73271484375007,0.848144531250043]]],[[[97.3341796875001,2.075634765625011],[97.10830078125,2.216894531250006],[97.29140625,2.200830078125023],[97.3341796875001,2.075634765625011]]],[[[128.45390625000002,2.051757812500028],[128.29589843749997,2.034716796875017],[128.2179687500001,2.297460937499991],[128.60214843750012,2.59760742187504],[128.68847656250003,2.473681640625017],[128.62324218750004,2.224414062500031],[128.45390625000002,2.051757812500028]]],[[[96.46367187500002,2.360009765625037],[95.80859374999997,2.655615234375034],[95.7171875,2.825976562500017],[95.89580078125007,2.8890625],[96.41728515625007,2.515185546875031],[96.46367187500002,2.360009765625037]]],[[[108.8875,2.905419921875037],[108.7865234375,2.885644531250009],[108.88574218750003,2.998974609374997],[108.8875,2.905419921875037]]],[[[105.76035156250006,2.863037109375014],[105.69218750000002,3.0625],[105.83671875000007,2.97651367187504],[105.76035156250006,2.863037109375014]]],[[[106.28525390625006,3.15712890624998],[106.28369140624997,3.088232421874977],[106.20097656250002,3.204882812500031],[106.28525390625006,3.15712890624998]]],[[[117.65839843750004,3.280517578124986],[117.54785156250003,3.43198242187502],[117.68085937500004,3.407519531250017],[117.65839843750004,3.280517578124986]]],[[[125.65810546875,3.436035156250043],[125.51152343750007,3.461132812500011],[125.46884765625006,3.73325195312502],[125.65810546875,3.436035156250043]]],[[[117.88476562499997,4.186132812500006],[117.92285156250003,4.054296874999977],[117.73681640624997,4.004003906250034],[117.64902343750012,4.168994140624974],[117.88476562499997,4.186132812500006]]],[[[108.31601562500006,3.689648437500026],[108.10039062500002,3.70454101562504],[108.24326171875006,3.810351562500017],[108.00234375,3.982861328124983],[108.24833984375002,4.21713867187502],[108.39287109375007,3.986181640625034],[108.31601562500006,3.689648437500026]]],[[[117.5744140625001,4.17060546875004],[117.46533203124997,4.076074218749966],[117.77724609375005,3.689257812500031],[117.05595703125007,3.622656249999963],[117.34628906250006,3.426611328124991],[117.35244140625,3.19375],[117.61064453125002,3.064355468749994],[117.56914062500002,2.92929687500002],[117.69765625,2.887304687499991],[117.6388671875001,2.825292968749963],[118.0666015625001,2.317822265624969],[117.7892578125001,2.026855468750014],[118.98496093750006,0.982128906249983],[118.53476562500006,0.813525390625017],[118.19609375000002,0.874365234374977],[117.91162109374997,1.098681640625017],[117.96425781250005,0.889550781250051],[117.74511718749997,0.72963867187498],[117.52216796875004,0.235888671875017],[117.46289062500003,-0.323730468749957],[117.5625,-0.770898437500009],[116.91396484375,-1.223632812499972],[116.73984375000006,-1.044238281250017],[116.75341796874997,-1.327343749999955],[116.27548828125006,-1.784863281249997],[116.42431640625003,-1.784863281249997],[116.45195312500002,-1.923144531250017],[116.31396484374997,-2.139843750000011],[116.56542968749997,-2.299707031249994],[116.52929687499997,-2.51054687499996],[116.31679687500005,-2.55185546875002],[116.33066406250012,-2.902148437499974],[116.16630859375002,-2.934570312500014],[116.2572265625,-3.126367187500009],[115.95615234375012,-3.595019531250003],[114.6935546875001,-4.169726562500017],[114.5255859375001,-3.376660156250011],[114.44599609375004,-3.481835937500037],[114.34433593750012,-3.444433593749963],[114.34433593750012,-3.23515625],[114.23632812500003,-3.36113281249996],[114.0822265625001,-3.27890625],[113.70507812499997,-3.45527343750004],[113.6100585937501,-3.195703125],[113.34316406250005,-3.246484374999966],[113.03398437500002,-2.933496093749966],[112.97148437500002,-3.187109375000034],[112.75800781250004,-3.322167968750009],[112.60029296875004,-3.400488281249977],[112.28496093750002,-3.32099609375004],[111.85810546875004,-3.551855468750006],[111.82304687500007,-3.057226562499949],[111.69472656250005,-2.88945312499996],[110.93007812500005,-3.071093750000017],[110.82968750000012,-2.9951171875],[110.89931640625,-2.908593749999952],[110.703125,-3.020898437500009],[110.57402343750007,-2.89140625],[110.25605468750004,-2.966113281249946],[110.09658203125,-2.001367187499966],[109.95986328125,-1.862792968749972],[109.98330078125,-1.274804687499994],[109.78740234375007,-1.011328124999963],[109.25878906250003,-0.807421874999989],[109.37275390625004,-0.638183593749972],[109.12109375000003,-0.39091796874996],[109.2575195312501,0.031152343750051],[108.94453125000004,0.355664062499997],[108.91679687500007,0.912646484375045],[108.95859375000006,1.134619140624963],[109.1315429687501,1.253857421875011],[109.01025390624997,1.239648437500051],[109.07587890625004,1.495898437500031],[109.37851562500006,1.922705078125034],[109.62890625000003,2.027539062499983],[109.53896484375,1.89619140625004],[109.65400390625004,1.614892578125023],[110.50576171875005,0.861962890625023],[111.10136718750002,1.050537109374986],[111.80898437500005,1.011669921874969],[112.078515625,1.143359374999974],[112.1857421875001,1.4390625],[112.47617187500006,1.559082031250028],[112.94296875000006,1.566992187500034],[113.00654296875004,1.433886718750003],[113.6222656250001,1.2359375],[113.90234375000003,1.434277343749997],[114.5125,1.452001953124963],[114.83056640625003,1.980029296874989],[114.78642578125002,2.250488281250014],[115.1791015625,2.523193359374972],[115.08076171875004,2.63422851562504],[115.117578125,2.89487304687502],[115.24697265625005,3.025927734374989],[115.45439453125002,3.034326171875009],[115.67880859375006,4.193017578124994],[115.86074218750005,4.348046875000037],[116.51474609375006,4.370800781249969],[117.10058593750003,4.337060546875023],[117.5744140625001,4.17060546875004]]],[[[126.81660156250004,4.033496093750003],[126.70449218750005,4.070996093749997],[126.81357421875006,4.258496093750011],[126.72207031250005,4.344189453124969],[126.75732421874997,4.547900390624989],[126.9210937500001,4.291015624999972],[126.81660156250004,4.033496093750003]]],[[[96.49257812500005,5.229345703124991],[97.54716796875002,5.205859375],[98.2484375,4.41455078125],[98.3073242187501,4.09287109375002],[99.73232421875005,3.183056640625026],[100.523828125,2.18916015625004],[100.88789062500004,1.948242187499986],[100.82822265625012,2.242578125],[101.04619140625002,2.257470703125023],[101.47666015625006,1.693066406250054],[102.019921875,1.442138671875],[102.38994140625007,0.84199218750004],[103.03183593750006,0.57890625],[103.0075195312501,0.415332031249974],[102.55,0.216455078124966],[103.33896484375012,0.513720703125045],[103.67265625000007,0.288916015624977],[103.78671875000012,0.046972656249991],[103.42851562500007,-0.19179687499998],[103.40517578125005,-0.36220703124998],[103.5091796875,-0.465527343749969],[103.43857421875006,-0.575585937500009],[103.72109375,-0.886718749999986],[104.36054687500004,-1.038378906249974],[104.51591796875002,-1.81943359375002],[104.84521484375003,-2.092968749999969],[104.65078125000005,-2.595214843749972],[104.97080078125012,-2.370898437500017],[105.39697265624997,-2.380175781249946],[106.0443359375,-3.10625],[105.84375,-3.61367187499998],[105.93046875000007,-3.833007812499986],[105.83144531250005,-4.16289062499996],[105.88720703124997,-5.009570312499974],[105.74833984375007,-5.818261718749966],[105.34941406250007,-5.549511718750011],[105.08134765625002,-5.74550781249998],[104.63955078125005,-5.520410156250037],[104.68398437500005,-5.89267578125002],[104.60156249999997,-5.90458984374996],[103.8314453125,-5.079589843750028],[102.53769531250006,-4.152148437499989],[102.12753906250006,-3.599218749999963],[101.57861328124997,-3.166992187500014],[100.88955078125,-2.248535156249957],[100.85527343750002,-1.934179687499949],[100.30820312500006,-0.82666015625],[99.66982421875005,0.045068359375037],[99.15917968749997,0.351757812499997],[98.59531250000006,1.864599609375006],[97.70078125000006,2.358544921875009],[97.59082031249997,2.846582031250037],[97.3913085937501,2.975292968749969],[96.9689453125001,3.575146484374969],[96.44472656250005,3.81630859374998],[95.57861328125003,4.661962890625048],[95.20664062500006,5.284033203125034],[95.22783203125002,5.564794921875034],[95.62890625000003,5.609082031249997],[96.13330078125003,5.294287109374991],[96.49257812500005,5.229345703124991]]]]},"properties":{"name":"Indonesia","childNum":107}},{"geometry":{"type":"Polygon","coordinates":[[[-4.412060546874983,54.185351562499996],[-4.785351562499983,54.073046875],[-4.424707031249994,54.407177734375],[-4.412060546874983,54.185351562499996]]]},"properties":{"name":"Isle of Man","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[75.32221348233018,32.28516356678968],[75.62496871116024,32.28516356678968],[75.73585997688717,32.78417426256088],[76.32728006076415,32.87658365066666],[76.62299010270264,33.32014871357439],[77.06655516561037,33.301666835953235],[77.71342088235082,32.6917648744551],[78.10154031239509,32.87658365066666],[78.49194250885338,32.53122786149202],[78.38964843749997,32.51987304687498],[78.41748046874997,32.466699218749994],[78.4552734375001,32.30034179687502],[78.49589843750002,32.21577148437504],[78.72558593750009,31.983789062500023],[78.71972656250009,31.887646484374983],[78.69345703125006,31.740380859374994],[78.7550781250001,31.55029296875],[78.74355468750005,31.323779296875017],[79.10712890625004,31.402636718750102],[79.38847656250013,31.064208984375085],[79.66425781250004,30.96523437499999],[79.92451171875004,30.888769531250034],[80.20712890625006,30.683740234375023],[80.19121093750002,30.56840820312496],[80.87353515625003,30.290576171875045],[80.98544921875006,30.23710937499999],[81.01025390625014,30.164501953125097],[80.96611328125002,30.180029296875063],[80.90761718750005,30.171923828125017],[80.84814453125009,30.139746093750034],[80.81992187500012,30.119335937499955],[80.68408203125014,29.994335937500068],[80.54902343750015,29.899804687499994],[80.40185546875003,29.730273437500102],[80.31689453125014,29.572070312500017],[80.25488281250009,29.423339843750114],[80.25595703125006,29.318017578125136],[80.23300781250006,29.194628906250045],[80.16953125000012,29.124316406250102],[80.13046875000006,29.100390625000045],[80.08457031249995,28.994189453125074],[80.05166015625,28.870312500000068],[80.07070312500005,28.830175781250063],[80.22656250000003,28.723339843750125],[80.32480468750012,28.66640625000008],[80.41855468749995,28.61201171875001],[80.47910156250012,28.604882812499994],[80.49580078125015,28.635791015625074],[80.51787109375002,28.665185546875023],[80.58701171875006,28.64960937500004],[81.16894531250014,28.335009765625074],[81.85263671875018,27.867089843750136],[81.89687500000011,27.87446289062504],[81.94521484375005,27.89926757812495],[81.98769531250016,27.91376953125004],[82.03701171875,27.90058593750004],[82.11191406250006,27.86494140625004],[82.28769531250018,27.756542968749983],[82.45136718750004,27.671826171874955],[82.62988281249997,27.687060546875045],[82.67734375000006,27.67343749999995],[82.71083984375005,27.596679687500114],[82.73339843750003,27.518994140625097],[83.28974609375004,27.370996093750136],[83.36943359375002,27.410253906249977],[83.38398437500004,27.444824218750085],[83.44716796875011,27.46533203125],[83.55166015625011,27.456347656249932],[83.74697265625011,27.395947265625068],[83.8288085937501,27.377832031250108],[84.09101562499993,27.491357421875136],[84.22978515625007,27.427832031250006],[84.48085937500005,27.348193359375102],[84.61015625000002,27.298681640624977],[84.64072265625012,27.249853515624977],[84.65478515625014,27.20366210937499],[84.65380859375009,27.09169921875008],[84.68535156250013,27.041015625000057],[85.19179687500011,26.766552734375097],[85.29296875000009,26.741015625000045],[85.56845703125012,26.839843750000114],[85.64843749999997,26.829003906250023],[85.69990234375004,26.781640624999966],[85.73730468750003,26.639746093750034],[85.79453125000006,26.60415039062505],[86.00732421875009,26.64936523437504],[86.70136718750015,26.435058593750057],[87.01640625000002,26.555419921875085],[87.2874023437499,26.360302734375125],[87.41357421875014,26.42294921875009],[87.84921875000006,26.43691406250008],[87.99511718750014,26.38237304687499],[88.02695312500023,26.395019531250085],[88.05488281250004,26.43002929687492],[88.11152343750004,26.58642578125],[88.1615234375,26.724804687500125],[88.15722656250009,26.807324218750068],[88.1110351562501,26.928466796875057],[87.99316406250009,27.086083984374994],[87.984375,27.133935546874994],[88.14697265625014,27.749218750000097],[88.15029296875011,27.843310546875074],[88.10976562500005,27.87060546874997],[88.10898437499995,27.93300781250005],[88.14111328125003,27.948925781250097],[88.27519531250013,27.96884765625009],[88.42597656250015,28.011669921875097],[88.57792968750002,28.093359375000034],[88.80371093750003,28.006933593750034],[88.74902343749997,27.521875000000136],[88.7648437500001,27.429882812500068],[88.83251953125003,27.362841796875074],[88.89140625000002,27.316064453125136],[88.88164062500007,27.29746093750009],[88.76035156250006,27.21811523437509],[88.73876953125009,27.175585937499932],[88.85761718750015,26.961474609375017],[89.14824218750002,26.816162109375085],[89.33212890625018,26.848632812500114],[89.58613281250004,26.778955078125136],[89.60996093750012,26.719433593750097],[89.71093750000009,26.713916015625045],[89.76386718750004,26.7015625],[89.94316406250013,26.723925781249932],[90.12294921875011,26.754589843749983],[90.20605468749997,26.847509765625063],[90.34589843750004,26.890332031250097],[90.73964843750005,26.771679687500068],[91.2865234375,26.78994140625008],[91.42675781249997,26.867089843749966],[91.45585937500013,26.866894531250125],[91.51757812500009,26.807324218750068],[91.67158203124993,26.80200195312503],[91.84208984375013,26.852978515625125],[91.94375,26.860839843750114],[91.99833984375013,26.85498046875],[92.04970703125016,26.87485351562495],[92.73155507489682,26.833697862861648],[93.30975376159499,26.784950522650554],[93.61047043679247,27.32239435188504],[94.06979001484449,27.589407158584788],[95.10800937321915,27.749636881153737],[95.74000740838363,28.116850432722256],[96.19577594042592,28.04291597700983],[96.96279296875,27.698291015625017],[96.88359375000013,27.514843750000125],[96.90195312500012,27.43959960937508],[97.10371093749993,27.163330078125114],[97.10205078125003,27.115429687500125],[96.95341796875013,27.13330078125003],[96.79785156249997,27.29619140624999],[96.19082031250005,27.26127929687499],[95.20146484375007,26.641406250000017],[95.05976562500015,26.473974609375006],[95.06894531250006,26.191113281250097],[95.10839843750014,26.091406250000034],[95.12929687500011,26.070410156250034],[95.13242187500006,26.041259765624943],[94.99199218750002,25.77045898437504],[94.66777343750007,25.458886718749966],[94.55302734375013,25.215722656249994],[94.70371093750012,25.097851562499955],[94.49316406250003,24.637646484374983],[94.37724609375002,24.473730468750006],[94.29306640625012,24.321875],[94.07480468750006,23.8720703125],[93.68339843750007,24.00654296875004],[93.45214843750003,23.987402343750034],[93.32626953125006,24.064208984375057],[93.36601562500007,23.132519531249955],[93.34941406250007,23.08496093750003],[93.20390625000002,23.03701171875005],[93.07871093750018,22.718212890625097],[93.16201171875,22.360205078125006],[93.07060546875002,22.20942382812501],[92.96455078125015,22.003759765625034],[92.90947265625013,21.988916015625023],[92.85429687500002,22.010156250000108],[92.77138671875,22.104785156250017],[92.68896484375009,22.130957031250006],[92.63037109375014,22.011328124999977],[92.57490234374993,21.97807617187496],[92.5612304687501,22.04804687500001],[92.49140625000004,22.685400390625006],[92.46445312500006,22.734423828125045],[92.36162109375002,22.929003906250074],[92.33378906250002,23.242382812499955],[92.24609375000003,23.68359374999997],[92.04404296875006,23.677783203125017],[91.97851562500003,23.691992187500063],[91.92958984375011,23.685986328125097],[91.92949218750019,23.598242187499977],[91.93789062500011,23.504687500000102],[91.75419921875013,23.28730468750004],[91.75097656250003,23.053515625000017],[91.55351562500013,22.991552734375006],[91.43623046875004,23.19990234375001],[91.359375,23.06835937500003],[91.16044921875019,23.660644531250085],[91.35019531250012,24.06049804687501],[91.72656250000003,24.20507812499997],[91.84619140624997,24.175292968749943],[92.06416015625004,24.374365234375006],[92.11748046875002,24.493945312500017],[92.22666015625012,24.77099609374997],[92.22832031250002,24.881347656250085],[92.2512695312499,24.895068359375045],[92.38496093750004,24.848779296875023],[92.46835937500018,24.944140625000074],[92.04970703125016,25.16948242187499],[90.61308593750002,25.16772460937497],[90.11962890625003,25.21997070312497],[89.86630859375012,25.293164062499955],[89.81406250000006,25.305371093749955],[89.80087890625012,25.33613281250001],[89.82490234375004,25.56015625],[89.82294921875015,25.94140625000003],[89.67089843750009,26.213818359375125],[89.57275390625003,26.13232421875003],[89.54990234375006,26.00527343750008],[89.28925781250015,26.037597656250085],[89.01865234375012,26.410253906249977],[88.95195312500002,26.412109375],[88.97041015625004,26.250878906250023],[88.94072265625002,26.24536132812497],[88.68281250000004,26.291699218749983],[88.51826171875004,26.51777343750004],[88.36992187500002,26.56411132812508],[88.35146484375005,26.482568359374966],[88.38623046875003,26.471533203125034],[88.44042968749997,26.369482421875034],[88.33398437499997,26.257519531249955],[88.15078125000005,26.087158203125057],[88.1066406250001,25.841113281250045],[88.14746093749997,25.811425781250023],[88.50244140625009,25.53701171875008],[88.76914062500006,25.490478515625],[88.85478515625002,25.333544921875017],[88.94414062500002,25.290771484375],[88.92978515625012,25.222998046875063],[88.57382812500006,25.18789062499999],[88.45625,25.188427734375125],[88.37294921875016,24.961523437500063],[88.31337890625011,24.8818359375],[88.27949218750015,24.881933593750034],[88.18886718750016,24.920605468750097],[88.14980468750011,24.91464843749995],[88.04511718750015,24.71303710937508],[88.03027343750009,24.664453125000136],[88.02343750000003,24.627832031250136],[88.07910156250009,24.549902343750063],[88.14550781250003,24.485791015624955],[88.225,24.460644531249983],[88.3375,24.45385742187503],[88.49853515625003,24.34663085937504],[88.64228515625015,24.325976562500102],[88.72353515625011,24.27490234375],[88.7335937500001,24.230908203125097],[88.72656250000009,24.18623046875004],[88.71376953125016,24.069628906250102],[88.69980468750006,24.00253906249992],[88.56738281250009,23.674414062500034],[88.63574218749997,23.55],[88.69765625,23.493017578125034],[88.72441406250002,23.254980468750034],[88.89707031250018,23.21040039062501],[88.92812500000011,23.186621093749977],[88.89970703125002,22.843505859375057],[88.92070312500002,22.632031249999955],[89.05,22.274609374999983],[89.02792968750023,21.937207031249983],[88.94931640625018,21.937939453125125],[89.05166015625,21.654101562500045],[88.85751953125012,21.744677734375017],[88.74501953125011,21.584375],[88.74023437500003,22.005419921875017],[88.64160156250003,22.121972656250136],[88.58466796875015,21.659716796874932],[88.44599609375004,21.614257812500085],[88.28750000000016,21.758203125000108],[88.25371093750002,21.622314453124943],[88.0568359375001,21.694140625000017],[88.19628906249997,22.139550781249994],[87.94140625000003,22.374316406250045],[88.15927734375018,22.12172851562508],[87.82373046875003,21.727343750000045],[87.20068359375009,21.544873046874983],[86.95410156250014,21.365332031250006],[86.84228515625009,21.106347656249994],[86.97548828125005,20.70014648437501],[86.75039062500011,20.313232421875057],[86.37656250000006,20.006738281249966],[86.24521484375012,20.05302734374999],[86.27949218750021,19.919433593749943],[85.575,19.69291992187499],[85.496875,19.696923828125108],[85.50410156250004,19.887695312500057],[85.24863281250006,19.757666015625034],[85.18076171875018,19.59487304687508],[85.44160156249993,19.626562499999977],[84.77099609375009,19.125390625000023],[84.10410156250018,18.29267578125001],[82.35957031250004,17.09619140624997],[82.25878906250014,16.55986328124996],[81.76191406250015,16.32949218750008],[81.28613281249997,16.337060546875023],[80.97871093750004,15.758349609375074],[80.64658203125006,15.895019531250028],[80.29345703125014,15.710742187499989],[80.0534179687501,15.074023437499932],[80.17871093750003,14.478320312500074],[80.11171875000005,14.212207031250045],[80.30654296875016,13.485058593750054],[80.15625,13.713769531250108],[80.06210937500006,13.60625],[80.34238281250006,13.361328125000071],[80.22910156250018,12.690332031249966],[79.85849609375018,11.988769531250043],[79.69316406250007,11.312548828124946],[79.79902343750004,11.338671874999932],[79.84863281250009,11.196875],[79.83818359375002,10.322558593750045],[79.31455078125018,10.256689453124949],[78.93994140625009,9.565771484375063],[79.01992187500005,9.333349609374963],[79.41142578125002,9.192382812500014],[78.97958984375018,9.268554687500085],[78.42148437500006,9.105029296874989],[78.19248046874995,8.890869140625057],[78.06015625000006,8.384570312499932],[77.51757812500003,8.078320312500068],[77.06591796875003,8.315917968749986],[76.5534179687501,8.902783203124997],[76.32460937500016,9.452099609374997],[76.24238281250004,9.927099609374949],[76.37558593750006,9.539892578124935],[76.45878906250013,9.536230468750077],[76.34648437500002,9.922119140625],[76.19560546875002,10.086132812500026],[75.72382812500015,11.361767578125026],[74.94550781250004,12.56455078124992],[74.38222656250005,14.494726562500048],[73.94921875000014,15.074755859375088],[73.80078125000009,15.39697265625],[73.93193359375013,15.39697265625],[73.77177734375013,15.573046874999989],[73.83281250000013,15.659375],[73.67988281250015,15.708886718750136],[73.47607421875003,16.05424804687496],[72.87548828124997,18.642822265625114],[72.97207031250011,19.15332031250003],[72.8346679687501,18.975585937500057],[72.80302734375013,19.07929687500004],[72.81162109375,19.298925781250006],[72.98720703125,19.27744140625009],[72.78789062500013,19.362988281250097],[72.66777343750019,19.83095703125005],[72.89375,20.672753906250136],[72.81386718750011,21.117187500000085],[72.62382812500002,21.371972656250108],[72.73476562500016,21.470800781250006],[72.61328125000009,21.461816406250108],[73.1125,21.750439453125125],[72.54306640625,21.69658203124999],[72.70019531250003,21.971923828124943],[72.52226562500013,21.976220703125108],[72.55302734375007,22.159960937500074],[72.80917968749995,22.23330078125008],[72.18281250000015,22.26972656250004],[72.30644531250002,22.18920898437497],[72.27441406250009,22.089746093749966],[72.03720703125006,21.82304687499999],[72.2103515625,21.72822265625004],[72.25400390625006,21.531005859375],[72.01523437500012,21.155712890625097],[71.0246093750001,20.73886718750009],[70.71933593750006,20.740429687500068],[70.12734375,21.094677734375097],[68.96992187500021,22.29028320312497],[69.05166015625016,22.437304687500074],[69.27656250000004,22.285498046875063],[70.17724609375014,22.57275390624997],[70.48925781250009,23.08950195312508],[70.33945312500012,22.939746093749932],[69.66464843750006,22.759082031250074],[69.23593749999995,22.848535156250023],[68.64072265625006,23.189941406250114],[68.41748046875009,23.57148437500004],[68.7767578125,23.852099609375017],[68.23496093749995,23.596972656250074],[68.16503906250009,23.857324218749994],[68.28251953125013,23.927978515625],[68.38125000000016,23.950878906250068],[68.48867187500011,23.96723632812501],[68.5866210937501,23.966601562500074],[68.72412109375003,23.964697265625034],[68.72812500000012,24.265625],[68.73964843750016,24.291992187500085],[68.75898437499993,24.307226562500006],[68.78115234375011,24.313720703125085],[68.8,24.30908203125003],[68.82832031250004,24.26401367187509],[68.86347656250015,24.26650390625005],[68.90078125000011,24.29243164062501],[68.98457031250015,24.273095703124966],[69.05156250000013,24.28632812500001],[69.11953125000011,24.26865234374995],[69.23505859374993,24.268261718750068],[69.44345703124995,24.275390625000085],[69.55917968750006,24.273095703124966],[69.80517578125009,24.16523437500004],[70.0982421875,24.2875],[70.28906250000009,24.356298828125063],[70.54677734375,24.418310546875063],[70.56503906250006,24.385791015625017],[70.55585937500015,24.331103515625074],[70.57929687500015,24.279052734374943],[70.65947265625013,24.24609374999997],[70.71630859375009,24.237988281250097],[70.7672851562501,24.245410156250017],[70.80507812500011,24.26196289062503],[70.88623046875014,24.34375],[70.92812500000016,24.362353515625045],[70.98281250000011,24.361035156250125],[71.04404296875006,24.400097656250097],[71.04531250000005,24.42998046874996],[70.96982421875012,24.571875],[70.97636718750013,24.61875],[71.00234375000016,24.6539062499999],[71.04785156250003,24.687744140625085],[71.02070312500021,24.75766601562492],[70.95087890625015,24.89160156250003],[70.87773437500019,25.06298828124997],[70.65205078125004,25.422900390625102],[70.64843750000003,25.666943359375068],[70.5695312500001,25.705957031250023],[70.50585937500009,25.685302734375085],[70.44853515625013,25.681347656249983],[70.26464843750009,25.70654296874997],[70.10019531250006,25.91005859375005],[70.14921875000002,26.347558593749994],[70.11464843750016,26.548046874999983],[69.47001953125002,26.804443359375],[69.56796875,27.174609375000102],[69.89628906250007,27.473632812500085],[70.04980468750009,27.694726562500023],[70.14453125000003,27.849023437499994],[70.19394531250006,27.89487304687492],[70.24433593750004,27.934130859375102],[70.4037109375,28.025048828124994],[70.48857421875013,28.023144531250125],[70.62910156250015,27.937451171875068],[70.6916015625001,27.76899414062504],[70.79794921875012,27.709619140625023],[70.87490234375016,27.71445312499995],[71.18476562500004,27.831640625],[71.54296875000003,27.869873046875],[71.8703125000001,27.9625],[71.88886718750004,28.04746093749992],[71.94804687500002,28.177294921875102],[72.12851562500012,28.34633789062508],[72.29199218750003,28.69726562499997],[72.34189453125006,28.751904296875097],[72.90332031250003,29.02875976562501],[73.38164062500013,29.934375],[73.8091796875,30.093359375],[73.88652343750013,30.162011718750136],[73.93339843750002,30.222070312500108],[73.92460937500007,30.28164062499999],[73.88271484375,30.352148437499977],[73.89931640625,30.435351562500045],[74.00898437500004,30.519677734374994],[74.33935546875003,30.893554687499943],[74.38037109375003,30.89340820312509],[74.50976562500009,30.959667968750097],[74.63281250000014,31.034667968750114],[74.62578125000002,31.068750000000108],[74.61035156250009,31.112841796875045],[74.51767578125012,31.185595703124932],[74.53496093750007,31.261376953125108],[74.59394531249993,31.465380859375102],[74.58183593750013,31.523925781250114],[74.50996093750015,31.712939453125074],[74.52597656249995,31.765136718750057],[74.55556640625011,31.818554687500097],[74.63574218750003,31.889746093750034],[74.73945312500015,31.948828125],[75.07148437500015,32.08935546875003],[75.13876953125,32.10478515624999],[75.25410156250004,32.140332031250125],[75.33349609374997,32.279199218749994],[75.32221348233018,32.28516356678968]]]]},"properties":{"name":"India","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[72.49199218750002,-7.37744140625],[72.42910156250002,-7.435351562500003],[72.34970703125,-7.263378906250011],[72.447265625,-7.395703125000011],[72.44560546875002,-7.220410156250011],[72.49199218750002,-7.37744140625]]]},"properties":{"name":"Br. Indian Ocean Ter.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-9.948193359374926,53.91313476562499],[-10.265722656249949,53.977685546874994],[-9.99638671874996,54.00361328125004],[-9.948193359374926,53.91313476562499]]],[[[-6.218017578125,54.08872070312506],[-6.347607421874926,53.94130859375005],[-6.027392578124989,52.927099609375006],[-6.463183593749932,52.345361328124994],[-6.325,52.246679687500034],[-6.890234375,52.15922851562499],[-6.965771484374926,52.24951171875],[-8.057812499999926,51.82558593750005],[-8.4091796875,51.888769531250034],[-8.349121093749943,51.73930664062496],[-8.813427734374926,51.584912109374955],[-9.737304687499943,51.473730468750034],[-9.524902343750028,51.68110351562501],[-10.120751953124994,51.60068359375006],[-9.598828124999983,51.87441406250005],[-10.341064453124943,51.798925781250034],[-9.909667968749972,52.122949218749966],[-10.39023437499992,52.134912109374994],[-10.356689453125,52.20693359375002],[-9.772119140624937,52.250097656250034],[-9.90605468749996,52.403710937499966],[-9.632226562499937,52.54692382812502],[-8.783447265624943,52.679638671874955],[-8.990283203124989,52.755419921875045],[-9.175390624999949,52.634912109374994],[-9.916601562499977,52.56972656250005],[-9.46489257812496,52.82319335937498],[-9.299218749999966,53.09755859375002],[-8.930126953124983,53.207080078125045],[-9.51420898437496,53.23823242187498],[-10.091259765624926,53.41284179687503],[-10.116992187499932,53.548535156249955],[-9.720654296874926,53.6044921875],[-9.901611328124943,53.72719726562502],[-9.578222656249949,53.80541992187497],[-9.578857421875,53.879833984374955],[-9.9140625,53.863720703124955],[-9.856445312499972,54.095361328124994],[-10.092675781249966,54.15576171875003],[-10.056396484374943,54.25781250000006],[-8.545556640624994,54.24121093750003],[-8.623144531249977,54.346875],[-8.133447265624966,54.64082031250001],[-8.763916015624972,54.68120117187496],[-8.377294921874977,54.88945312500002],[-8.274609374999955,55.146289062500045],[-7.667089843749977,55.25649414062502],[-7.65874023437496,54.97094726562503],[-7.308789062500011,55.365820312500006],[-6.961669921874972,55.23789062500006],[-7.218652343749937,55.09199218749998],[-7.55039062499992,54.767968749999966],[-7.910595703124955,54.698339843750006],[-7.75439453125,54.59492187499998],[-8.118261718749977,54.41425781250004],[-7.606542968750006,54.14384765625002],[-7.324511718750017,54.13344726562502],[-7.007714843749937,54.40668945312501],[-6.649804687499937,54.05864257812496],[-6.218017578125,54.08872070312506]]]]},"properties":{"name":"Ireland","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[56.18798828125003,26.92114257812497],[55.95429687500004,26.70112304687501],[55.31152343749997,26.592626953125006],[55.76259765625005,26.81196289062504],[55.75761718750002,26.94765625000005],[56.279394531250006,26.952099609374983],[56.18798828125003,26.92114257812497]]],[[[46.1144531250001,38.877783203125034],[46.490625,38.90668945312498],[47.995898437500074,39.683935546875034],[48.322167968749994,39.39907226562502],[48.10439453125005,39.241113281249994],[48.292089843750006,39.01884765624999],[47.99648437499999,38.85375976562503],[48.59267578125005,38.41108398437498],[48.86875,38.43549804687498],[48.95996093750003,37.89013671875],[49.171191406250074,37.60058593749997],[50.13046875,37.407128906249994],[50.53320312499997,37.01367187500006],[51.11855468750005,36.742578124999966],[52.19013671875004,36.62172851562505],[53.76767578125006,36.93032226562502],[53.91542968750005,36.93032226562502],[53.67949218750002,36.853125],[53.970117187499994,36.818310546874955],[53.91416015625006,37.34355468750002],[54.6994140625001,37.47016601562498],[54.90009765625004,37.77792968750006],[55.38085937500003,38.051123046875034],[56.272070312500006,38.080419921875034],[56.440625,38.249414062499994],[57.1935546875001,38.216406250000034],[57.35371093750004,37.97333984374998],[58.261621093749994,37.665820312500045],[58.81542968750003,37.683496093749994],[59.30175781249997,37.51064453125005],[59.454980468749994,37.25283203125002],[60.06279296875002,36.962890625],[60.34130859375003,36.63764648437501],[61.11962890625003,36.64257812500003],[61.212011718750006,36.190527343750034],[61.15292968750006,35.97675781250001],[61.25214843750004,35.86762695312498],[61.26201171875002,35.61958007812498],[61.28183593750006,35.55341796875001],[61.2785156250001,35.513769531250006],[61.245507812499994,35.47407226562501],[61.18925781250002,35.31201171875003],[61.1,35.272314453125034],[61.08007812499997,34.85561523437505],[60.95117187499997,34.65385742187499],[60.91474609375004,34.63398437500001],[60.80234375000006,34.55463867187501],[60.73945312500004,34.544726562500045],[60.7262695312501,34.51826171874998],[60.736132812500074,34.491796875],[60.76259765625005,34.475244140624994],[60.88945312500002,34.31943359375006],[60.642675781250006,34.30717773437496],[60.48574218750005,34.09477539062502],[60.4859375,33.7119140625],[60.57382812500006,33.58833007812498],[60.91699218749997,33.505224609375006],[60.56054687499997,33.13784179687502],[60.5765625,32.99487304687503],[60.71044921874997,32.6],[60.82929687500004,32.24941406250005],[60.82724609375006,32.16796874999997],[60.789941406249994,31.98710937499999],[60.7875,31.87719726562497],[60.791601562500006,31.660595703124983],[60.82070312499999,31.495166015625045],[60.854101562500006,31.483251953125006],[61.110742187499994,31.45112304687504],[61.346484375000074,31.42163085937497],[61.66015625000003,31.382421874999977],[61.7550781250001,31.285302734374994],[61.814257812500074,31.072558593750017],[61.810839843750074,30.913281249999983],[61.78417968749997,30.831933593750023],[61.55947265625005,30.59936523437497],[61.33164062500006,30.36372070312501],[60.84335937500006,29.85869140624999],[61.03417968750003,29.663427734374977],[61.15214843750002,29.542724609375],[61.8898437500001,28.546533203124994],[62.7625,28.202050781249994],[62.782324218750006,27.800537109375],[62.75273437500002,27.265625],[63.16679687500002,27.25249023437499],[63.19609375000002,27.243945312500017],[63.25625,27.20791015625005],[63.30156250000002,27.151464843750006],[63.30517578124997,27.124560546875017],[63.242089843749994,27.07768554687499],[63.25039062499999,26.879248046875063],[63.24160156250005,26.86474609375003],[63.18613281250006,26.83759765625001],[63.168066406250006,26.66557617187496],[62.31230468750002,26.490869140624994],[62.23935546875006,26.357031249999977],[62.12597656249997,26.368994140625034],[61.842382812500006,26.225927734375006],[61.809960937499994,26.165283203125],[61.78076171874997,25.99584960937503],[61.75439453125003,25.843359375000063],[61.737695312499994,25.821093750000045],[61.66865234375004,25.76899414062501],[61.6618164062501,25.751269531250017],[61.67138671874997,25.69238281250003],[61.64013671875003,25.584619140624994],[61.61542968750004,25.28613281250003],[61.58789062499997,25.20234375000001],[61.533105468749994,25.195507812499955],[61.41220703125006,25.102099609375017],[60.66386718750002,25.28222656250003],[60.51054687500002,25.437060546875045],[60.40019531250002,25.311572265625074],[59.45605468749997,25.481494140625045],[59.0460937500001,25.417285156250017],[58.79785156249997,25.554589843750023],[57.334570312500006,25.791552734375074],[57.03603515625005,26.80068359375005],[56.728125,27.127685546875057],[56.118066406249994,27.14311523437499],[54.75927734375003,26.50507812500004],[54.24707031250003,26.696630859374977],[53.70576171875004,26.72558593750003],[52.69160156250004,27.323388671875023],[52.475878906250074,27.61650390624999],[52.03076171874997,27.824414062499955],[51.58906250000004,27.864208984374983],[51.27890625,28.13134765624997],[51.06201171874997,28.72612304687499],[50.86699218750002,28.870166015625017],[50.87578125000002,29.062695312499983],[50.67519531250005,29.146582031250034],[50.64960937500004,29.420068359374966],[50.16894531250003,29.921240234375034],[50.071582031250074,30.198535156250017],[49.55488281250004,30.028955078125023],[49.028125,30.333447265624983],[49.224511718749994,30.472314453125023],[49.00195312500003,30.506542968749983],[48.91914062500004,30.120898437500017],[48.54648437500006,29.962353515624955],[48.47851562499997,30.003808593749966],[48.43457031249997,30.03759765625],[48.33105468749997,30.28544921874996],[48.01494140625002,30.465625],[48.01064453125005,30.989794921875017],[47.679492187500074,31.00239257812501],[47.679492187500074,31.400585937499955],[47.75390624999997,31.601367187500017],[47.829980468749994,31.79443359375],[47.71455078125004,31.936425781249966],[47.5915039062501,32.087988281250034],[47.51191406250004,32.15083007812504],[47.3297851562501,32.45551757812501],[47.28515625000003,32.474023437499966],[47.121386718750074,32.46660156249996],[46.569921875,32.83393554687501],[46.37705078125006,32.92924804687499],[46.29824218750005,32.95024414062502],[46.11279296875003,32.957666015624994],[46.09306640625002,32.97587890624999],[46.08046875,33.028222656249994],[46.0807617187501,33.08652343750006],[46.14111328125003,33.174414062500034],[46.145898437499994,33.229638671874994],[46.01992187500005,33.41572265624998],[45.39707031250006,33.970849609374994],[45.542773437500074,34.21552734375004],[45.459375,34.470361328124994],[45.50078125000002,34.58159179687499],[45.6375,34.573828125],[45.678125,34.798437500000034],[45.92089843750003,35.02851562500001],[46.04179687500002,35.08017578125006],[46.13378906249997,35.127636718749955],[46.15468750000005,35.19672851562498],[46.112109375000074,35.32167968750005],[45.97109375000005,35.524169921875],[46.03740234375002,35.67314453124999],[46.180957031250074,35.71137695312504],[46.2625,35.74414062500006],[46.27343749999997,35.77324218750002],[46.16748046874997,35.820556640625],[45.77636718749997,35.82182617187499],[45.36162109375002,36.015332031249955],[45.241113281249994,36.35595703125],[45.20654296874997,36.397167968749955],[45.15527343749997,36.407373046874994],[45.11240234375006,36.409277343750034],[45.053125,36.47163085937501],[44.76513671875003,37.142431640625006],[44.79414062500004,37.290380859375034],[44.574023437500074,37.435400390625006],[44.589941406250006,37.710351562499966],[44.21132812499999,37.908056640625006],[44.4499023437501,38.33422851562506],[44.2985351562501,38.38627929687499],[44.27167968750004,38.83603515625006],[44.02324218750002,39.37744140625006],[44.3893554687501,39.422119140625],[44.58710937500004,39.76855468750006],[44.81718750000002,39.65043945312496],[45.4796875000001,39.00625],[46.1144531250001,38.877783203125034]]]]},"properties":{"name":"Iran","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[45.6375,34.573828125],[45.50078125000002,34.581591796874996],[45.459375,34.470361328124994],[45.54277343750002,34.21552734375],[45.397070312500006,33.970849609374994],[46.01992187500002,33.41572265625],[46.14589843750002,33.229638671874994],[46.14111328125,33.1744140625],[46.08076171875001,33.0865234375],[46.08046875000002,33.028222656249994],[46.09306640625002,32.975878906249996],[46.11279296875,32.957666015624994],[46.377050781250006,32.929248046874996],[46.569921875,32.833935546875],[47.12138671875002,32.466601562499996],[47.28515625,32.474023437499994],[47.32978515625001,32.455517578125],[47.51191406250001,32.150830078125],[47.59150390625001,32.08798828125],[47.71455078125001,31.936425781249994],[47.82998046875002,31.79443359375],[47.75390625,31.601367187499996],[47.67949218750002,31.400585937499997],[47.67949218750002,31.002392578124997],[48.01064453125002,30.989794921874996],[48.01494140625002,30.465625],[48.3310546875,30.285449218749996],[48.546484375,29.962353515624997],[48.454199218750006,29.9384765625],[48.354589843750006,29.956738281249997],[48.141699218750006,30.040917968749994],[47.982519531250006,30.011328125],[47.97871093750001,29.9828125],[47.64375,30.097314453124994],[47.14824218750002,30.0009765625],[46.905859375,29.5375],[46.76933593750002,29.347460937499996],[46.69375,29.259667968749994],[46.53144531250001,29.096240234374996],[46.3564453125,29.063671875],[44.71650390625001,29.193603515625],[43.77373046875002,29.84921875],[42.07441406250001,31.080371093749996],[40.47890625000002,31.893359375],[40.36933593750001,31.93896484375],[40.02783203125,31.995019531249994],[39.7041015625,32.042529296874996],[39.14541015625002,32.12451171875],[39.29277343750002,32.24384765625],[39.24746093750002,32.350976562499994],[39.04140625000002,32.3056640625],[38.773535156250006,33.372216796874994],[40.98701171875001,34.429052734375],[41.19472656250002,34.768994140625],[41.354101562500006,35.640429687499996],[41.295996093750006,36.383349609374996],[41.41679687500002,36.5146484375],[41.78857421875,36.59716796875],[42.358984375,37.10859375],[42.45585937500002,37.128710937499996],[42.63544921875001,37.249267578125],[42.74111328125002,37.3619140625],[42.77460937500001,37.371875],[42.869140625,37.334912109375],[42.936621093750006,37.324755859374996],[43.09248046875001,37.3673828125],[43.67578125,37.22724609375],[43.83642578125,37.223535156249994],[44.01318359375,37.313525390624996],[44.11445312500001,37.30185546875],[44.15625,37.282958984375],[44.19179687500002,37.249853515625],[44.20839843750002,37.20263671875],[44.20166015625,37.051806640624996],[44.281835937500006,36.97802734375],[44.32558593750002,37.0107421875],[44.401953125,37.058496093749994],[44.60595703125,37.176025390625],[44.66933593750002,37.173583984375],[44.73095703125,37.165283203125],[44.76513671875,37.142431640625],[45.053125,36.471630859375],[45.112402343750006,36.40927734375],[45.1552734375,36.407373046874994],[45.20654296875,36.39716796875],[45.24111328125002,36.35595703125],[45.36162109375002,36.01533203125],[45.7763671875,35.821826171874996],[46.16748046875,35.820556640625],[46.2734375,35.773242187499996],[46.2625,35.744140625],[46.18095703125002,35.711376953125],[46.03740234375002,35.673144531249996],[45.97109375000002,35.524169921875],[46.11210937500002,35.321679687499994],[46.15468750000002,35.196728515625],[46.1337890625,35.12763671875],[46.04179687500002,35.08017578125],[45.9208984375,35.028515625],[45.678125,34.7984375],[45.6375,34.573828125]]]},"properties":{"name":"Iraq","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-15.543115234374994,66.228515625],[-14.595849609374994,66.38154296875],[-15.117382812499983,66.125634765625],[-14.698193359374983,66.02021484375],[-14.827099609374983,65.7642578125],[-14.391845703125,65.78740234375],[-14.473388671875,65.575341796875],[-14.166943359374983,65.64228515625],[-13.617871093749983,65.5193359375],[-13.804785156249977,65.35478515625],[-13.599316406249983,65.0359375],[-14.04443359375,64.74189453125],[-14.385107421874977,64.74521484375],[-14.475390624999989,64.493994140625],[-14.927392578124994,64.319677734375],[-15.832910156249994,64.17666015625],[-16.640332031249983,63.865478515625],[-17.81572265624999,63.71298828125],[-17.946923828124994,63.5357421875],[-18.65361328124999,63.406689453125],[-20.198144531249994,63.555810546874994],[-20.494042968749994,63.687353515625],[-20.413964843749994,63.80517578125],[-20.65092773437499,63.73740234375],[-21.15239257812499,63.94453125],[-22.652197265624977,63.827734375],[-22.701171875,64.083203125],[-22.51005859374999,63.991455078125],[-22.187597656249977,64.039208984375],[-21.463330078124983,64.379150390625],[-22.053369140624994,64.313916015625],[-21.950341796874994,64.514990234375],[-21.590625,64.6263671875],[-22.10600585937499,64.533056640625],[-22.467041015625,64.794970703125],[-23.818994140624994,64.73916015625],[-24.02617187499999,64.863427734375],[-22.7880859375,65.046484375],[-21.89213867187499,65.048779296875],[-21.779980468749983,65.1876953125],[-22.50908203124999,65.19677734375],[-21.844384765624994,65.44736328125],[-22.902490234374994,65.58046875],[-23.89990234375,65.407568359375],[-24.475683593749977,65.5251953125],[-24.248925781249994,65.614990234375],[-23.85673828124999,65.53837890625],[-24.092626953124977,65.77646484375],[-23.615917968749983,65.67958984375],[-23.285351562499983,65.75],[-23.832617187499977,65.84921875],[-23.52495117187499,65.880029296875],[-23.77734375,66.017578125],[-23.434472656249994,66.02421875],[-23.452539062499994,66.181005859375],[-23.018994140624983,65.98212890625],[-22.659863281249983,66.025927734375],[-22.61601562499999,65.86748046875],[-22.44169921874999,65.90830078125],[-22.4453125,66.07001953125],[-22.947900390624994,66.212744140625],[-22.48442382812499,66.26630859375],[-23.116943359375,66.338720703125],[-22.9443359375,66.429443359375],[-22.426123046874977,66.430126953125],[-21.406884765624994,66.0255859375],[-21.374902343749994,65.74189453125],[-21.658447265625,65.723583984375],[-21.12968749999999,65.2666015625],[-20.804345703124994,65.63642578125],[-20.454833984375,65.571044921875],[-20.20751953125,66.10009765625],[-19.489697265624983,65.76806640625],[-19.382958984374994,66.07568359375],[-18.845898437499983,66.183935546875],[-18.141943359374977,65.73408203125],[-18.29716796874999,66.157421875],[-17.906982421875,66.143310546875],[-17.550439453124994,65.964404296875],[-17.153027343749983,66.20283203125],[-16.838037109374994,66.125244140625],[-16.485009765624994,66.195947265625],[-16.540673828124994,66.446728515625],[-16.24931640624999,66.522900390625],[-15.985400390624989,66.5146484375],[-15.543115234374994,66.228515625]]]},"properties":{"name":"Iceland","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[35.78730468750001,32.734912109374996],[35.572851562500006,32.640869140625],[35.56904296875001,32.619873046875],[35.55146484375001,32.3955078125],[35.484375,32.401660156249996],[35.40263671875002,32.450634765625],[35.38671875,32.493017578125],[35.303808593750006,32.512939453125],[35.19326171875002,32.534423828125],[35.065039062500006,32.46044921875],[35.01054687500002,32.338183593749996],[34.95595703125002,32.1609375],[34.98974609375,31.91328125],[34.97832031250002,31.86640625],[34.95380859375001,31.841259765624997],[34.96113281250001,31.82333984375],[34.983007812500006,31.81679687499999],[35.05322265625,31.837939453124996],[35.12714843750001,31.816748046875],[35.203710937500006,31.75],[34.95097656250002,31.602294921875],[34.88046875,31.3681640625],[35.45058593750002,31.479296875],[34.97343750000002,29.555029296875],[34.904296875,29.47734375],[34.24531250000001,31.208300781249996],[34.34833984375001,31.292919921874997],[34.350195312500006,31.362744140624997],[34.52558593750001,31.525634765625],[34.47734375000002,31.584863281249994],[34.483984375,31.59228515625],[34.67841796875001,31.895703125],[35.10859375000001,33.08369140625],[35.411230468750006,33.07568359375],[35.869140625,33.43173828125],[35.91347656250002,32.94960937499999],[35.78730468750001,32.734912109374996]]]},"properties":{"name":"Israel","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[15.576562500000051,38.220312500000034],[15.099511718750023,37.45859375],[15.295703125000017,37.05517578124997],[15.112597656250017,36.687841796875006],[14.501855468750023,36.798681640625034],[14.142968750000023,37.103662109374994],[13.90546875000004,37.10063476562502],[13.169921875000028,37.47929687499996],[12.640234375000034,37.594335937500034],[12.435546874999972,37.819775390624955],[12.734375,38.18305664062498],[12.902734375000023,38.03486328124998],[13.291113281250034,38.19145507812502],[13.788867187499989,37.981201171875],[15.11875,38.15273437500002],[15.498730468750011,38.290869140625006],[15.576562500000051,38.220312500000034]]],[[[8.478906250000023,39.067529296874966],[8.421484375000034,38.968652343749994],[8.366796875,39.115917968749955],[8.478906250000023,39.067529296874966]]],[[[8.28603515625008,41.03984375],[8.205664062500034,40.99746093750005],[8.320214843750023,41.121875],[8.28603515625008,41.03984375]]],[[[9.632031250000011,40.88203124999998],[9.805273437500063,40.499560546875045],[9.642968750000023,40.268408203125006],[9.5625,39.16601562500006],[9.056347656250068,39.23916015625002],[8.966601562500074,38.963720703125034],[8.648535156250034,38.92656250000002],[8.418164062500068,39.205712890624966],[8.547753906250023,39.83920898437506],[8.4078125,39.91723632812497],[8.471289062500063,40.29267578124998],[8.189941406250028,40.651611328125],[8.22421875,40.91333007812503],[8.571875,40.85019531250006],[9.228417968750023,41.257080078125],[9.615332031249977,41.01728515624998],[9.632031250000011,40.88203124999998]]],[[[10.395117187500034,42.85815429687503],[10.419335937499994,42.71318359374999],[10.13125,42.742041015625006],[10.395117187500034,42.85815429687503]]],[[[13.420996093750006,46.212304687499994],[13.63251953125004,46.17705078125002],[13.634960937499983,46.15776367187499],[13.61660156250008,46.133105468750045],[13.54804687500004,46.08911132812503],[13.486425781250034,46.03955078124997],[13.480273437500017,46.00922851562501],[13.487695312500023,45.987109375000045],[13.509179687500051,45.973779296874994],[13.6005859375,45.97978515624996],[13.663476562500023,45.7919921875],[13.831152343750006,45.680419921875],[13.719824218750063,45.58759765625001],[13.628320312500051,45.77094726562498],[13.206347656250074,45.771386718749966],[12.27431640625008,45.44604492187503],[12.225683593750034,45.24150390625002],[12.523437500000028,44.96796874999998],[12.248339843750045,44.72250976562498],[12.396289062500074,44.223876953125],[13.56416015625004,43.57128906250003],[14.010449218750011,42.68955078125006],[14.54072265625004,42.24428710937502],[15.16875,41.93403320312498],[16.164648437500034,41.89619140624998],[15.900488281250034,41.51206054687498],[17.954980468749994,40.65517578125002],[18.460644531249983,40.221044921875034],[18.34375,39.82138671874998],[18.077929687500017,39.93696289062498],[17.865039062500074,40.28017578125002],[17.395800781250045,40.34023437499999],[17.179980468750045,40.50278320312498],[16.92822265625,40.45805664062502],[16.521875,39.74755859375003],[17.114550781250017,39.38061523437497],[17.174609375000017,38.998095703125045],[16.61669921875003,38.800146484375034],[16.54560546875001,38.40908203125002],[16.05683593750001,37.941845703124955],[15.72451171875008,37.93911132812502],[15.645800781250017,38.034228515625045],[15.87890625,38.61391601562502],[16.19677734375,38.759228515624955],[16.20996093750003,38.94111328124998],[15.692773437499994,39.99018554687501],[14.95087890625004,40.23901367187497],[14.94765625000008,40.469335937500006],[14.765722656250063,40.66840820312498],[14.339941406250006,40.59882812500001],[14.460546875000063,40.72871093750001],[14.04433593750008,40.81225585937506],[13.733398437500057,41.23564453124999],[13.088671875000074,41.243847656249955],[12.630859374999972,41.469677734374955],[11.637304687500063,42.287548828124955],[11.141210937499977,42.38989257812503],[11.167773437500074,42.53515625000006],[10.708398437500023,42.93632812499999],[10.514843750000011,42.96752929687503],[10.188085937500063,43.947509765625],[8.76582031250004,44.42231445312501],[8.004980468750006,43.87675781249999],[7.4931640625,43.767138671875045],[7.637207031250057,44.16484375],[7.318554687500068,44.13798828125002],[6.900195312499989,44.33574218749996],[6.99267578125,44.82729492187502],[6.634765625000028,45.06816406249996],[7.07832031250004,45.23994140624998],[7.146386718750051,45.381738281249994],[6.790917968750023,45.740869140624966],[7.021093750000034,45.92578124999997],[7.055761718749977,45.90380859375003],[7.129003906249977,45.88041992187499],[7.327929687500017,45.912353515625],[7.9931640625,46.01591796874996],[8.081542968750057,46.25600585937502],[8.231933593750057,46.341210937499966],[8.29853515625004,46.403417968750034],[8.370703125,46.44511718750002],[8.458398437500023,46.24589843750002],[8.818554687500011,46.0771484375],[8.826757812500006,46.06103515625],[8.77802734375004,45.996191406250034],[8.953710937500034,45.83002929687501],[9.023730468750074,45.845703125],[9.203417968750017,46.21923828125],[9.304394531250068,46.49555664062498],[9.399316406250023,46.480664062499955],[9.427636718750023,46.48232421875002],[9.528710937500023,46.306201171875045],[9.57958984375,46.29609375000001],[9.639453125000017,46.29589843749997],[9.78779296875004,46.34604492187498],[9.884472656250011,46.36777343750006],[9.939257812500074,46.36181640625],[10.041015625000028,46.23808593750002],[10.08056640625,46.22797851562501],[10.128320312500051,46.238232421874955],[10.109667968750074,46.36284179687502],[10.081933593750023,46.420751953125006],[10.045605468750068,46.44790039062505],[10.038281250000011,46.483203125000045],[10.061230468750068,46.54677734375002],[10.087011718750063,46.59990234375002],[10.1375,46.614355468750034],[10.195507812500068,46.62109374999997],[10.4306640625,46.55004882812497],[10.409352678571473,46.6092047991071],[10.39794921875,46.66503906250006],[10.406054687500045,46.73486328124997],[10.452832031249983,46.86494140625001],[10.47939453125008,46.85512695312505],[10.579785156250011,46.85371093750001],[10.689257812500017,46.846386718749955],[10.759765625,46.79331054687498],[10.828906250000045,46.775244140625034],[10.927343750000034,46.76948242187501],[10.993261718750034,46.77700195312502],[11.02509765625004,46.796972656250006],[11.063476562500057,46.85913085937497],[11.133886718750006,46.93618164062505],[11.244433593750045,46.975683593750006],[11.433203125000063,46.983056640624994],[11.527539062500011,46.99741210937498],[11.775683593750017,46.986083984375],[12.169433593750028,47.082128906250006],[12.19716796875008,47.075],[12.201269531250034,47.060888671875034],[12.165527343750028,47.028173828125034],[12.130761718750051,46.98476562499999],[12.154101562500017,46.93525390625004],[12.267968750000023,46.83588867187504],[12.330078125,46.75981445312499],[12.388281250000034,46.70263671874997],[12.479199218749983,46.672509765624966],[13.16875,46.572656249999966],[13.3515625,46.55791015624999],[13.490039062500045,46.55556640625002],[13.7,46.52026367187503],[13.679687500000057,46.46289062499997],[13.63710937500008,46.44853515624999],[13.563281250000045,46.41508789062502],[13.399511718749977,46.31752929687502],[13.420996093750006,46.212304687499994]]]]},"properties":{"name":"Italy","childNum":6}},{"geometry":{"type":"Polygon","coordinates":[[[-77.261474609375,18.45742187499999],[-76.349853515625,18.15185546875],[-76.21079101562499,17.913525390624997],[-76.524609375,17.8662109375],[-76.85322265625,17.97373046874999],[-76.94414062499999,17.848779296874994],[-77.11948242187499,17.880078125],[-77.20498046875,17.71494140624999],[-77.36142578124999,17.833691406249997],[-77.76816406249999,17.877392578124997],[-78.04448242187499,18.173828125],[-78.339501953125,18.28720703124999],[-78.21669921875,18.44809570312499],[-77.8734375,18.522216796875],[-77.261474609375,18.45742187499999]]]},"properties":{"name":"Jamaica","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-2.018652343749977,49.23125],[-2.23583984375,49.1763671875],[-2.220507812499989,49.266357421875],[-2.018652343749977,49.23125]]]},"properties":{"name":"Jersey","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[39.14541015625002,32.12451171875],[38.9970703125,32.007470703124994],[38.96230468750002,31.994921875],[38.37548828125,31.847460937499996],[38.111425781250006,31.781152343749994],[37.49335937500001,31.625878906249994],[37.215625,31.556103515624997],[36.95859375,31.491503906249996],[37.980078125,30.5],[37.862890625,30.442626953125],[37.66972656250002,30.34814453125],[37.64990234375,30.330957031249994],[37.63359375000002,30.31328125],[37.55361328125002,30.144580078124996],[37.49072265625,30.01171875],[37.46923828125,29.995068359374997],[36.75527343750002,29.866015625],[36.70390625000002,29.831640625],[36.591796875,29.66611328125],[36.47607421875,29.4951171875],[36.2828125,29.355371093749994],[36.068457031250006,29.200537109375],[34.95078125,29.353515625],[34.97343750000002,29.555029296875],[35.45058593750002,31.479296875],[35.57207031250002,32.237890625],[35.55146484375001,32.3955078125],[35.56904296875001,32.619873046875],[35.572851562500006,32.640869140625],[35.78730468750001,32.734912109374996],[36.3720703125,32.3869140625],[36.818359375,32.317285156249994],[38.773535156250006,33.372216796874994],[39.04140625000002,32.3056640625],[39.24746093750002,32.350976562499994],[39.29277343750002,32.24384765625],[39.14541015625002,32.12451171875]]]},"properties":{"name":"Jordan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[123.88867187499997,24.280126953124977],[123.67978515625012,24.317773437500023],[123.77148437499997,24.41445312499999],[123.93486328125002,24.362011718749983],[123.88867187499997,24.280126953124977]]],[[[124.29316406250004,24.515917968750074],[124.13574218750003,24.347607421874983],[124.08476562500002,24.435839843750017],[124.30195312500004,24.58710937500001],[124.29316406250004,24.515917968750074]]],[[[125.44414062500002,24.7431640625],[125.26894531250005,24.732519531250063],[125.28359375,24.871923828125034],[125.44414062500002,24.7431640625]]],[[[128.25878906249997,26.65278320312501],[127.86708984375,26.442480468749977],[127.80361328125005,26.152539062499983],[127.653125,26.0947265625],[127.90722656250003,26.69360351562497],[128.09765624999997,26.66777343749996],[128.25488281249997,26.88188476562496],[128.25878906249997,26.65278320312501]]],[[[128.99814453125012,27.720800781250006],[128.90000000000012,27.727783203125],[128.9076171875,27.897998046875045],[128.99814453125012,27.720800781250006]]],[[[129.45253906250005,28.20898437499997],[129.3664062500001,28.127734375000045],[129.16464843750012,28.24975585937503],[129.68955078125012,28.517480468750023],[129.45253906250005,28.20898437499997]]],[[[130.6227539062501,30.262988281250017],[130.44560546875002,30.264697265625017],[130.38808593750005,30.38818359375003],[130.49716796875006,30.465527343749983],[130.64355468749997,30.388964843750017],[130.6227539062501,30.262988281250017]]],[[[130.95976562500007,30.39692382812504],[130.87031250000004,30.444238281249994],[131.06035156250007,30.828466796875006],[130.95976562500007,30.39692382812504]]],[[[130.38105468750004,32.42373046875002],[130.24169921874997,32.462792968749994],[130.46142578124997,32.515722656250034],[130.38105468750004,32.42373046875002]]],[[[130.08251953124997,32.22968750000001],[129.9601562500001,32.24375],[130.00976562499997,32.521630859374994],[130.16777343750002,32.54121093749998],[130.19951171875002,32.34057617187506],[130.08251953124997,32.22968750000001]]],[[[128.66533203125002,32.783886718749955],[128.89453124999997,32.65214843750002],[128.69296875000012,32.60473632812506],[128.66533203125002,32.783886718749955]]],[[[129.07695312500002,32.84028320312498],[128.99726562500004,32.95185546874998],[129.10976562500005,33.13256835937503],[129.18193359375002,32.99311523437504],[129.07695312500002,32.84028320312498]]],[[[129.49179687500006,33.22304687499999],[129.37041015625002,33.176025390625],[129.56992187500006,33.36103515625004],[129.49179687500006,33.22304687499999]]],[[[129.79570312500007,33.74882812499999],[129.67480468749997,33.73969726562498],[129.71728515624997,33.8583984375],[129.79570312500007,33.74882812499999]]],[[[131.17460937500007,33.602587890625045],[131.69628906250003,33.60283203124999],[131.53740234375007,33.274072265624994],[131.89658203125006,33.25458984375001],[131.8478515625001,33.118066406249994],[132.0021484375001,32.882373046875045],[131.6603515625001,32.465625],[131.33720703125007,31.4046875],[131.07080078124997,31.436865234374977],[131.09843750000002,31.256152343750017],[130.68574218750004,31.01513671875003],[130.77626953125,31.70629882812497],[130.65507812500002,31.71840820312505],[130.5560546875,31.563085937500034],[130.58876953125,31.178515625000017],[130.20068359374997,31.291894531250023],[130.14726562500002,31.40849609374996],[130.2941406250001,31.45068359375003],[130.3219726562501,31.601464843750023],[130.18789062500005,31.768847656250017],[130.19443359375012,32.090771484374955],[130.64052734375005,32.61923828124998],[130.49785156250002,32.65693359375001],[130.547265625,32.83159179687499],[130.2375,33.177636718749966],[130.12685546875005,33.10483398437506],[130.175,32.851318359375],[130.32646484375002,32.852636718750006],[130.34042968750012,32.70185546875004],[130.05410156250005,32.770800781250045],[129.76855468749997,32.57099609375001],[129.82675781250006,32.72534179687503],[129.67910156250005,33.059960937499966],[129.99169921875003,32.85156249999997],[129.58007812500003,33.23627929687501],[129.61015625000002,33.34365234375005],[129.844140625,33.32177734375003],[129.82568359374997,33.43701171875006],[130.36503906250007,33.634472656249955],[130.4837890625,33.834619140624966],[130.715625,33.92778320312502],[130.953125,33.87202148437504],[131.17460937500007,33.602587890625045]]],[[[132.266015625,33.945166015625006],[132.44492187500006,33.91318359374998],[132.20878906250007,33.87285156250002],[132.266015625,33.945166015625006]]],[[[129.27949218750004,34.123388671875006],[129.18642578125,34.14501953125006],[129.21484374999997,34.320654296875034],[129.3371093750001,34.284765625],[129.27949218750004,34.123388671875006]]],[[[134.35742187500003,34.25634765625],[134.6375,34.22661132812499],[134.73886718750012,33.82050781250001],[134.37705078125012,33.60839843749997],[134.18164062500003,33.24721679687502],[133.95869140625004,33.44833984375006],[133.63203125000004,33.51098632812503],[133.28593750000007,33.35996093749998],[132.97724609375004,32.84199218749998],[132.80429687500006,32.75200195312502],[132.6417968750001,32.76245117187503],[132.70898437500003,32.90249023437505],[132.49511718749997,32.91660156249998],[132.41279296875004,33.43046875],[132.0326171875,33.339990234374994],[132.64306640624997,33.68994140624997],[132.93515625000006,34.09531250000006],[133.19306640625004,33.93320312499998],[133.58203124999997,34.01713867187502],[133.60263671875006,34.24384765625001],[133.94833984375006,34.34804687500002],[134.35742187500003,34.25634765625]]],[[[134.35185546875002,34.48364257812503],[134.25185546875,34.42304687500004],[134.18212890625003,34.51923828124998],[134.35185546875002,34.48364257812503]]],[[[134.9328125000001,34.28813476562499],[134.82441406250004,34.202929687500045],[134.66787109375005,34.294140624999955],[135.00468750000002,34.54404296874998],[134.9328125000001,34.28813476562499]]],[[[129.38564453125,34.35366210937502],[129.26669921875012,34.37045898437506],[129.45107421875005,34.68657226562499],[129.38564453125,34.35366210937502]]],[[[133.37050781250005,36.203857421875],[133.23925781249997,36.178759765625045],[133.20615234375006,36.293408203124955],[133.29570312500002,36.34013671874996],[133.37050781250005,36.203857421875]]],[[[138.34404296875007,37.822119140625006],[138.22519531250006,37.82939453124996],[138.25,38.078466796875006],[138.50361328125004,38.31591796875006],[138.45361328124997,38.07568359375006],[138.57519531249997,38.065527343750034],[138.34404296875007,37.822119140625006]]],[[[141.22929687500007,41.37265625],[141.45546875000005,41.404736328124955],[141.43046875000002,40.72333984374998],[141.7970703125001,40.29116210937502],[141.97695312500005,39.428808593750034],[141.90078125,39.111328125],[141.5462890625,38.762841796874966],[141.4674804687501,38.404150390625006],[141.10839843750003,38.33793945312502],[140.9621093750001,38.148876953124955],[141.00166015625004,37.11464843750002],[140.57353515625007,36.23134765625002],[140.87402343749997,35.72495117187506],[140.457421875,35.51025390625],[140.35468750000004,35.18144531249999],[139.8439453125001,34.914892578125034],[139.82646484375002,35.29667968750002],[140.096875,35.58515624999998],[139.83476562500002,35.658056640625006],[139.65000000000012,35.40913085937501],[139.675,35.149267578125006],[139.47441406250002,35.298535156249955],[139.24941406250005,35.27802734375004],[139.08603515625006,34.83916015624999],[138.8375,34.619238281250034],[138.80273437499997,34.97480468749998],[138.90361328125002,35.02524414062506],[138.71962890625,35.12407226562502],[138.18906250000012,34.596337890624994],[137.543359375,34.66420898437505],[137.06171875000004,34.58281249999999],[137.27519531250002,34.77250976562499],[136.96328125000005,34.83491210937501],[136.87128906250004,34.733105468749955],[136.89707031250006,35.03554687500002],[136.80419921874997,35.05029296875],[136.53300781250007,34.678369140624994],[136.8802734375,34.43359375000006],[136.8537109375001,34.324072265625034],[136.32988281250007,34.17685546875006],[135.91621093750004,33.561718749999955],[135.69531250000003,33.48696289062502],[135.4528320312501,33.55336914062505],[135.12792968749997,34.006982421874994],[135.10009765624997,34.288378906250045],[135.41591796875,34.61748046875002],[134.74003906250007,34.765234375],[134.246875,34.71386718750003],[133.96826171874997,34.52729492187504],[133.14238281250002,34.30244140624998],[132.65654296875007,34.24609375000003],[132.31259765625006,34.32495117187503],[132.14648437499997,33.83876953125002],[131.74052734375007,34.05205078125002],[130.91884765625,33.97573242187502],[130.88925781250012,34.261816406250034],[131.00419921875007,34.39257812500003],[131.35439453125,34.41318359375006],[132.92294921875006,35.511279296875045],[133.98125,35.50722656250002],[135.17431640625003,35.74707031250003],[135.32695312500002,35.52553710937502],[135.68027343750006,35.503125],[135.903125,35.60688476562498],[136.09531250000006,35.767626953125045],[136.06748046875006,36.11684570312505],[136.69814453125005,36.742041015625034],[136.84345703125004,37.38212890624999],[137.32265625,37.52207031249998],[136.89990234375003,37.11767578125],[137.01669921875006,36.83720703124999],[137.24628906250004,36.753173828125],[137.5140625,36.95156250000002],[138.31992187500012,37.21840820312502],[138.88505859375007,37.84394531250001],[139.36386718750006,38.09902343750002],[139.80195312500004,38.881591796875],[140.06474609375002,39.624414062499994],[139.99472656250006,39.855078125],[139.74150390625002,39.92084960937498],[140.01113281250005,40.26035156250006],[139.92285156250003,40.59843750000002],[140.28125,40.84609375000002],[140.3444335937501,41.203320312499955],[140.62763671875004,41.195410156250034],[140.74863281250012,40.830322265625],[140.93603515625003,40.940771484375034],[141.1185546875,40.88227539062501],[141.24423828125006,41.20561523437499],[140.80058593750002,41.138818359374966],[140.80185546875012,41.253662109375],[140.9369140625,41.50556640624998],[141.22929687500007,41.37265625]]],[[[139.48125,42.08100585937498],[139.43134765625004,42.19956054687498],[139.55839843750002,42.235205078125034],[139.48125,42.08100585937498]]],[[[141.29541015625003,45.11933593750001],[141.14531250000002,45.153906250000034],[141.19375,45.24785156249999],[141.29541015625003,45.11933593750001]]],[[[141.07275390624997,45.33286132812498],[141.03398437500007,45.26933593750002],[140.97167968749997,45.465478515624994],[141.07275390624997,45.33286132812498]]],[[[143.82431640625012,44.11699218749999],[144.71523437500005,43.92797851562503],[145.36953125000005,44.32739257812506],[145.13964843750003,43.6625],[145.34082031249997,43.30253906249999],[145.83300781249997,43.38593750000001],[144.92138671874997,43.00092773437498],[143.96933593750006,42.88139648437499],[143.42949218750002,42.41889648437498],[143.2365234375001,42.000195312499955],[141.85136718750007,42.57905273437501],[141.40664062500005,42.54692382812496],[140.98613281250002,42.34213867187498],[140.70976562500002,42.555615234374955],[140.48046875000003,42.559375],[140.32666015625003,42.29335937499999],[141.15097656250012,41.80507812499999],[140.99951171874997,41.73740234375006],[140.65986328125004,41.815576171874994],[140.3849609375001,41.51928710937503],[140.08515625000004,41.43408203125],[139.99531250000004,41.57641601562503],[140.10839843749997,41.912939453125034],[139.83544921874997,42.278076171875],[139.86015625000002,42.58173828125004],[140.43222656250012,42.95410156250006],[140.39238281250002,43.303125],[141.13818359374997,43.17993164062506],[141.37412109375006,43.279638671875006],[141.7609375000001,44.482519531250034],[141.58300781250003,45.15595703125001],[141.66796874999997,45.401269531249966],[141.93769531250004,45.509521484375],[142.88476562499997,44.670117187499955],[143.82431640625012,44.11699218749999]]]]},"properties":{"name":"Japan","childNum":28}},{"geometry":{"type":"Polygon","coordinates":[[[77.04863281249999,35.109912109374996],[76.927734375,35.346630859375],[76.88222656250002,35.4357421875],[76.81279296874999,35.571826171874996],[76.76689453124999,35.66171875],[76.87890625,35.61328125],[77.09003906250001,35.552050781249996],[77.29482421875002,35.508154296875],[77.44648437500001,35.4755859375],[77.57255859374999,35.471826171874994],[77.72402343750002,35.48056640625],[77.79941406250003,35.495898437499996],[77.42343750000003,35.302587890625],[77.16855468750003,35.171533203124994],[77.04863281249999,35.109912109374996]]]},"properties":{"name":"Siachen Glacier","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[50.184472656249994,44.854638671874994],[49.99511718750003,44.93696289062498],[50.10986328124997,45.08193359375002],[50.038867187500074,44.949121093749966],[50.184472656249994,44.854638671874994]]],[[[87.32285156250012,49.085791015625006],[86.8083007812501,49.04970703125002],[86.54941406250012,48.52861328125002],[85.7494140625,48.38505859374999],[85.52597656250006,47.915625],[85.65664062500005,47.254638671875],[85.484765625,47.06352539062496],[84.78613281249997,46.83071289062505],[84.66660156250006,46.97236328125004],[84.016015625,46.97050781250002],[83.02949218750004,47.18593750000002],[82.31523437500002,45.59492187499998],[82.61162109375007,45.424267578124955],[82.52148437500003,45.12548828125],[82.26660156249997,45.21909179687498],[81.94492187500006,45.16083984375001],[81.69199218750012,45.34936523437497],[80.05917968750012,45.006445312500006],[79.871875,44.88378906249997],[80.48154296875006,44.71464843749999],[80.35527343750002,44.09726562500006],[80.78574218750006,43.16157226562504],[80.39023437500006,43.043115234374966],[80.53896484375005,42.873486328124955],[80.20224609375012,42.73447265624998],[80.209375,42.190039062500006],[80.07128906249997,42.302978515625],[79.92109375000004,42.41313476562496],[79.49013671875,42.45756835937496],[79.42822265624997,42.483496093750006],[79.20302734375005,42.66601562499997],[79.16484375000007,42.759033203125],[79.1266601562501,42.775732421875034],[76.98808593750007,42.97358398437501],[76.64648437500003,42.928808593750034],[76.50917968750005,42.91889648437498],[75.9322265625,42.92851562499999],[75.84033203125003,42.9375],[75.78955078124997,42.93291015624999],[75.68173828125,42.83046875],[75.04765625000007,42.904394531250034],[74.20908203125006,43.24038085937502],[73.88603515625002,43.132568359375],[73.55625,43.002783203125006],[73.45019531249997,42.703027343749966],[73.421875,42.59350585937503],[73.49296875000007,42.409033203125034],[73.41162109375003,42.41977539062498],[73.316015625,42.46699218750001],[73.2829101562501,42.50410156250004],[72.85507812500006,42.561132812500006],[72.75292968750003,42.63789062500001],[72.54316406250004,42.67773437500006],[72.27578125,42.757666015625006],[71.76054687500002,42.82148437500004],[71.5142578125,42.766943359375006],[71.42207031250004,42.78315429687504],[71.25664062500002,42.733544921874966],[70.89287109375007,42.339990234374994],[70.94677734374997,42.24868164062505],[69.15361328125002,41.42524414062498],[68.58408203125,40.876269531250045],[68.57265625,40.62265624999998],[68.29189453125,40.656103515625034],[68.04765625000007,40.80927734374998],[68.11308593750007,41.02861328124999],[67.9357421875001,41.19658203125002],[66.70966796875004,41.17915039062501],[66.49863281250006,41.99487304687503],[66.00957031250007,42.00488281250003],[66.1002929687501,42.99082031249998],[65.80302734375002,42.87695312500006],[65.49619140625,43.310546875],[64.9054687500001,43.714697265625006],[64.44316406250007,43.55117187499999],[63.20703125000003,43.62797851562502],[61.99023437500003,43.492138671874955],[61.007910156250006,44.39379882812497],[58.555273437500006,45.55537109375001],[55.97568359375006,44.99492187499996],[55.97744140625005,41.32221679687504],[55.434375,41.296289062499994],[54.85380859375002,41.965185546875006],[54.120996093749994,42.335205078125],[53.0558593750001,42.14775390624999],[52.4938476562501,41.780371093750034],[52.59658203125005,42.760156249999966],[51.898242187500074,42.86962890624997],[51.61601562500002,43.15844726562503],[51.29541015624997,43.17412109375002],[51.30175781249997,43.48237304687501],[50.8307617187501,44.192773437499966],[50.331152343750006,44.32548828125002],[50.25292968749997,44.461523437500006],[50.409472656250074,44.6240234375],[51.543554687500006,44.53100585937506],[51.009375,44.92182617187501],[51.4157226562501,45.35786132812501],[53.20039062500004,45.33198242187498],[52.77382812499999,45.57275390625],[53.13525390625003,46.19165039062497],[53.069433593750006,46.85605468750006],[52.48320312500002,46.99067382812504],[52.13828125,46.82861328124997],[51.178027343750074,47.110156250000045],[49.886328125,46.59565429687504],[49.347460937500074,46.51914062499998],[49.232226562500074,46.33715820312503],[48.54121093750004,46.60561523437502],[48.558398437500074,46.75712890624999],[48.959375,46.77460937499998],[48.16699218750003,47.70878906249996],[47.48193359374997,47.80390624999998],[47.292382812499994,47.74091796875004],[47.06464843750004,48.23247070312499],[46.660937500000074,48.41225585937502],[46.70263671875003,48.80556640625002],[47.031347656250006,49.150292968749994],[46.80205078125002,49.36708984375002],[46.889550781249994,49.69697265625001],[47.42919921874997,50.35795898437502],[47.7057617187501,50.37797851562502],[48.33496093750003,49.858251953125006],[48.7589843750001,49.92832031250006],[48.625097656250006,50.61269531250005],[49.32343750000004,50.851708984374966],[49.49804687500003,51.08359375000006],[50.246875,51.28950195312498],[50.79394531249997,51.729199218749955],[51.16347656250005,51.6474609375],[51.344531250000074,51.47534179687503],[52.21914062499999,51.709375],[52.57119140625005,51.481640624999955],[53.33808593750004,51.48237304687504],[54.139746093750006,51.04077148437503],[54.555273437500006,50.535791015624994],[54.64160156250003,51.011572265625034],[55.68623046875004,50.582861328125006],[56.49140625000004,51.01953124999997],[57.01171874999997,51.06518554687503],[57.44218750000002,50.88886718749998],[57.83886718750003,51.091650390625006],[58.359179687500074,51.063818359375034],[58.88369140625005,50.694433593750006],[59.4523437500001,50.62041015625002],[59.523046875,50.492871093749955],[59.812402343749994,50.58203125],[60.05859374999997,50.850292968749955],[60.42480468749997,50.67915039062498],[60.94228515625005,50.69550781250004],[61.38945312500002,50.86103515625001],[61.55468750000003,51.32460937500005],[60.464746093749994,51.651171875000045],[60.03027343749997,51.93325195312505],[60.99453125000005,52.33686523437504],[60.77441406249997,52.67578124999997],[61.047460937500006,52.97246093750002],[62.08271484375004,53.00541992187499],[61.65986328125004,53.22846679687504],[61.19921874999997,53.28715820312502],[61.22890625,53.445898437500006],[61.53496093750002,53.52329101562506],[60.97949218749997,53.62172851562505],[61.231054687500006,54.01948242187498],[61.92871093750003,53.94648437500004],[64.46123046875002,54.38417968750002],[65.08837890624997,54.340185546875034],[65.476953125,54.62329101562497],[68.15585937500006,54.97670898437505],[68.20625,55.16093750000002],[68.9772460937501,55.389599609374955],[70.18242187500002,55.162451171875034],[70.73808593750007,55.30517578125],[71.18554687500003,54.59931640624998],[71.09316406250005,54.21220703124999],[72.00449218750006,54.20566406249998],[72.18603515625003,54.32563476562501],[72.44677734375003,53.94184570312498],[72.62226562500004,54.13432617187502],[73.22988281250005,53.957812500000045],[73.71240234375003,54.04238281250002],[73.30566406250003,53.707226562499955],[73.40693359375004,53.44755859374999],[73.85898437500006,53.61972656249998],[74.35156250000003,53.487646484375006],[74.45195312500007,53.64726562500002],[75.22021484374997,53.89379882812506],[75.43720703125004,54.08964843749999],[76.8373046875,54.4423828125],[76.65458984375007,54.14526367187503],[76.42167968750007,54.151513671874966],[76.48476562500005,54.02255859374998],[77.85996093750006,53.269189453124994],[79.98623046875,50.774560546874966],[80.42363281250002,50.94628906249997],[80.44804687500002,51.18334960937503],[80.73525390625,51.29340820312498],[81.12724609375002,51.19106445312502],[81.0714843750001,50.96875],[81.38828125000006,50.95649414062501],[81.46591796875006,50.73984375],[82.49394531250007,50.72758789062499],[82.76083984375012,50.89335937500002],[83.35732421875005,50.99458007812504],[83.94511718750007,50.774658203125],[84.32324218749997,50.239160156249966],[84.9894531250001,50.061425781249994],[85.2326171875001,49.61582031249998],[86.1808593750001,49.49931640624996],[86.67548828125004,49.77729492187501],[86.62646484374997,49.56269531250001],[87.32285156250012,49.085791015625006]]]]},"properties":{"name":"Kazakhstan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[35.325292968750006,5.364892578124994],[35.745019531249994,5.343994140625],[35.80029296874997,5.156933593749983],[35.77929687499997,5.105566406250006],[35.756152343750074,4.950488281250031],[35.76308593750005,4.808007812500051],[36.02197265625003,4.468115234374991],[36.90556640625002,4.411474609374991],[37.15458984375002,4.254541015624994],[37.944921875,3.746728515625023],[38.0861328125001,3.648828124999966],[38.22529296875004,3.61899414062502],[38.45156250000005,3.604833984374977],[38.608007812500006,3.600097656249986],[39.49443359375002,3.45610351562496],[39.65751953125002,3.577832031249983],[39.79033203125002,3.754248046875034],[39.8421875,3.851464843750037],[40.765234375,4.273046875000034],[41.02080078125002,4.057470703124991],[41.22089843750004,3.943554687499969],[41.372460937499994,3.94619140624998],[41.48193359375003,3.96328125],[41.737695312499994,3.979052734375003],[41.88398437500004,3.977734375000011],[41.6134765625001,3.59047851562498],[41.34179687499997,3.20166015625],[40.964453125,2.814648437500026],[40.9787109375001,-0.870312500000011],[41.249804687500074,-1.220507812499946],[41.4269531250001,-1.449511718749974],[41.521875,-1.572265625000028],[41.53271484374997,-1.695312499999957],[41.26748046875005,-1.945019531250026],[40.889746093750006,-2.023535156250034],[40.89824218750002,-2.269921874999966],[40.64414062500006,-2.53945312499998],[40.22246093750002,-2.688378906250037],[40.1154296875001,-3.250585937499991],[39.8609375,-3.576757812500006],[39.49091796875004,-4.478417968750023],[39.221777343750006,-4.692382812500014],[37.608203125000074,-3.497070312500028],[37.643847656250074,-3.045410156250028],[33.90322265625005,-1.002050781250034],[33.94316406250002,0.173779296874969],[34.160937500000074,0.605175781250026],[34.4108398437501,0.867285156250034],[34.48173828125002,1.042138671875051],[34.79863281250002,1.24453125],[34.976464843749994,1.719628906250051],[34.97753906249997,1.861914062499991],[34.9640625000001,2.06240234374998],[34.8830078125001,2.417919921875026],[34.90576171875003,2.4796875],[34.44785156250006,3.163476562500037],[34.40722656249997,3.357519531250034],[34.39941406249997,3.412695312500006],[34.44179687499999,3.60625],[34.43769531250004,3.650585937499969],[34.392871093750074,3.691503906250048],[34.26708984375003,3.733154296875],[34.16503906250003,3.812988281250014],[34.18574218750004,3.869775390625037],[34.13203125000004,3.889160156249986],[33.97607421874997,4.220214843750028],[34.176855468750006,4.419091796875037],[34.38017578125002,4.620654296874974],[34.6398437500001,4.875488281250028],[34.878320312499994,5.109570312500026],[35.08447265624997,5.31186523437502],[35.268359375000074,5.492285156250006],[35.325292968750006,5.364892578124994]]]},"properties":{"name":"Kenya","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[72.63994140625002,39.385986328125],[72.22998046875,39.20751953125],[72.14736328125002,39.2607421875],[72.08417968750001,39.31064453125],[72.04277343750002,39.3521484375],[71.77861328125002,39.277978515624994],[71.73222656250002,39.422998046874994],[71.50332031250002,39.478808593749996],[71.51738281250002,39.553857421874994],[71.50302734375,39.582177734374994],[71.4703125,39.603662109374994],[70.79931640625,39.3947265625],[70.50117187500001,39.587353515625],[69.29765625000002,39.524804687499994],[69.2447265625,39.827099609375],[69.27880859375,39.917773437499996],[69.3072265625,39.968554687499996],[69.36542968750001,39.947070312499996],[69.43193359375002,39.909765625],[69.47626953125001,39.919726562499996],[69.47099609375002,39.990625],[69.46875,40.020751953125],[69.966796875,40.20224609375],[70.59921875,39.974511718749994],[70.990625,40.2548828125],[71.3046875,40.286914062499996],[71.69248046875,40.15234375],[72.13125,40.438623046874994],[72.3892578125,40.427392578124994],[72.40205078125001,40.578076171875],[72.6041015625,40.525439453124996],[73.13212890625002,40.82851562499999],[72.65830078125,40.869921875],[72.36406250000002,41.04345703125],[72.294921875,41.039941406249994],[72.21308593750001,41.0142578125],[72.18730468750002,41.025927734374996],[72.18095703125002,41.118457031249996],[72.16425781250001,41.173730468749994],[72.11542968750001,41.186572265624996],[72.05244140625001,41.16474609375],[71.95849609375,41.187060546874996],[71.87861328125001,41.19501953125],[71.8580078125,41.311376953125],[71.79248046875,41.413134765624996],[71.75771484375002,41.428027343749996],[71.70068359375,41.454003906249994],[71.66494140625002,41.5412109375],[71.6375,41.5341796875],[71.60224609375001,41.503271484375],[71.60625,41.367431640625],[71.54560546875001,41.308056640625],[71.5,41.307470703125],[71.4208984375,41.34189453125],[71.40839843750001,41.136035156249996],[71.39306640625,41.123388671875],[71.11074218750002,41.152636718749996],[70.86044921875,41.224902343749996],[70.734375,41.400537109374994],[70.18095703125002,41.571435546874994],[70.85664062500001,42.030810546874996],[71.0322265625,42.077783203124994],[71.228515625,42.162890625],[71.23232421875002,42.186279296875],[71.21269531250002,42.206445312499994],[71.12998046875,42.25],[71.03603515625002,42.28466796875],[70.97900390625,42.266552734375],[70.94677734375,42.248681640624994],[70.89287109375002,42.339990234374994],[71.25664062500002,42.733544921874994],[71.42207031250001,42.783154296875],[71.5142578125,42.766943359375],[71.76054687500002,42.821484375],[72.16181640625001,42.760693359375],[72.27578125000002,42.757666015625],[72.54316406250001,42.677734375],[72.7529296875,42.637890625],[72.855078125,42.5611328125],[73.28291015625001,42.5041015625],[73.316015625,42.4669921875],[73.41162109375,42.419775390625],[73.49296875000002,42.409033203125],[73.421875,42.593505859375],[73.4501953125,42.703027343749994],[73.55625,43.002783203125],[73.88603515625002,43.132568359375],[74.20908203125,43.240380859374994],[75.04765625000002,42.90439453125],[75.68173828125,42.83046875],[75.78955078125,42.932910156249996],[75.84033203125,42.9375],[75.9322265625,42.928515625],[76.50917968750002,42.918896484375],[76.646484375,42.92880859375],[76.98808593749999,42.973583984375],[79.12666015625001,42.775732421875],[79.20302734375002,42.666015625],[79.29550781250003,42.604833984375],[79.36777343750003,42.547216796875],[79.42822265625,42.48349609375],[79.92109375000001,42.413134765624996],[80.0712890625,42.302978515625],[80.209375,42.1900390625],[80.24619140625003,42.059814453125],[80.23515624999999,42.04345703125],[80.21621093750002,42.032421875],[79.90966796875,42.014990234375],[79.84042968750003,41.995751953124994],[79.76611328125,41.898876953125],[78.74257812500002,41.56005859375],[78.54316406250001,41.4595703125],[78.44287109375,41.417529296874996],[78.36240234375003,41.371630859374996],[78.34628906250003,41.2814453125],[78.12343750000002,41.075634765625],[77.95644531250002,41.050683593749994],[77.81523437499999,41.055615234375],[77.71933593750003,41.024316406249994],[77.58173828125001,40.9927734375],[76.98662109374999,41.03916015625],[76.90771484375,41.024169921875],[76.82402343749999,40.982324218749994],[76.70839843750002,40.818115234375],[76.6611328125,40.779638671875],[76.63984375000001,40.742236328124996],[76.62216796875003,40.662353515625],[76.57792968749999,40.577880859375],[76.48017578125001,40.449511718749996],[76.39638671875002,40.389794921874994],[76.31855468750001,40.35224609375],[76.25830078125,40.43076171875],[75.87197265625002,40.30322265625],[75.67714843750002,40.305810546874994],[75.55556640625002,40.6251953125],[75.52080078125002,40.6275390625],[75.24101562500002,40.480273437499996],[75.111328125,40.4541015625],[75.0044921875,40.449511718749996],[74.865625,40.493505859375],[74.80126953125,40.428515625],[74.83046875000002,40.32851562499999],[74.41191406250002,40.13720703125],[74.24267578125,40.092041015625],[74.08515625000001,40.07431640625],[73.99160156250002,40.043115234374994],[73.93876953125002,39.978808593749996],[73.88457031250002,39.8779296875],[73.85625,39.828662109374996],[73.83535156250002,39.800146484375],[73.83974609375002,39.762841796874994],[73.88251953125001,39.71455078125],[73.9146484375,39.606494140624996],[73.90712890625002,39.57851562499999],[73.87275390625001,39.53330078125],[73.82294921875001,39.48896484375],[73.71572265625002,39.462255859375],[73.63164062500002,39.448876953124994],[73.47041015625001,39.460595703124994],[73.38740234375001,39.442724609375],[73.33613281250001,39.412353515625],[73.2349609375,39.374560546874996],[73.10927734375002,39.3619140625],[72.63994140625002,39.385986328125]],[[70.66416015625,39.85546875],[70.56708984375001,39.866601562499994],[70.49775390625001,39.882421875],[70.48281250000002,39.882714843749994],[70.4892578125,39.863037109375],[70.5595703125,39.790917968749994],[70.61210937500002,39.786767578124994],[70.70166015625,39.82529296875],[70.66416015625,39.85546875]],[[71.20615234375,39.892578125],[71.22871093750001,40.048144531249996],[71.08037109375002,40.079882812499996],[71.02412109375001,40.149169921875],[71.00546875,40.152294921875],[70.96064453125001,40.08798828125],[71.04482421875002,39.992529296875],[71.04365234375001,39.976318359375],[71.01171875,39.8951171875],[71.06425781250002,39.884912109374994],[71.15625,39.883447265624994],[71.20615234375,39.892578125]]]},"properties":{"name":"Kyrgyzstan","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[104.42636718750006,10.411230468749991],[103.87050781250005,10.655126953125034],[103.58710937500004,10.552197265625026],[103.54042968750005,10.668701171875043],[103.721875,10.890136718750043],[103.5324218750001,11.146679687499997],[103.35361328125006,10.921582031250054],[103.15283203124997,10.913720703125051],[103.12548828124997,11.460644531250011],[102.9486328125,11.773486328124974],[102.93388671875002,11.706689453125037],[102.73662109375007,12.089794921875011],[102.75566406250002,12.42626953125],[102.49960937500012,12.669970703125003],[102.33632812500005,13.560302734375014],[102.546875,13.585693359375043],[102.90927734375006,14.136718750000028],[103.19941406250004,14.332617187499977],[104.77900390625004,14.427832031250006],[105.07412109375005,14.227441406250037],[105.12597656250003,14.280957031250011],[105.16914062500004,14.336083984374966],[105.1833007812501,14.346240234374989],[105.18554687500003,14.319091796874972],[105.20703125000003,14.259375],[105.24570312500006,14.200537109374977],[105.35019531250006,14.109570312500011],[105.53154296875007,14.156152343749994],[105.73974609375003,14.084960937500057],[105.83144531250005,13.976611328125003],[105.9044921875001,13.924511718750054],[106.06679687500005,13.921191406250003],[106.12470703125004,14.049121093750031],[106.09667968749997,14.127099609375023],[106.00410156250004,14.262890624999983],[105.97890625,14.343017578125043],[106.00839843750012,14.357177734375],[106.1652343750001,14.372363281249989],[106.19072265625007,14.388134765624997],[106.22539062500002,14.476220703125009],[106.26796875,14.466210937500009],[106.35498046875003,14.454785156249997],[106.44697265625004,14.515039062500009],[106.50146484375003,14.578222656250006],[106.53115234375005,14.549414062499991],[106.5636718750001,14.505078125000026],[106.59921875000006,14.479394531250037],[106.66542968750005,14.441308593749994],[106.73818359375005,14.387744140625017],[106.78349609375002,14.335107421875037],[106.81992187500006,14.314697265625057],[106.91318359375006,14.329394531250031],[106.93808593750006,14.327343750000054],[106.99218750000003,14.391015624999966],[107.03017578125,14.425683593750009],[107.06240234375,14.415771484375043],[107.109375,14.416699218750054],[107.29267578125004,14.592382812500048],[107.37988281250003,14.555322265625051],[107.41474609375004,14.56289062499999],[107.51943359375005,14.705078125],[107.3314453125,14.126611328125009],[107.60546874999997,13.437792968750017],[107.47539062500002,13.030371093749963],[107.50644531250006,12.364550781250031],[107.39335937500002,12.260498046874972],[107.21210937500004,12.30400390624996],[106.70009765625,11.979296874999974],[106.41386718750002,11.9484375],[106.39921875000007,11.687011718750028],[106.0060546875001,11.758007812500011],[105.85146484375005,11.635009765625],[105.85605468750006,11.294287109375048],[106.16093750000002,11.037109375000057],[106.16396484375005,10.794921875],[105.85332031250007,10.86357421874996],[105.75507812500004,10.989990234375043],[105.40576171875003,10.95161132812504],[105.3146484375001,10.845166015625026],[105.04570312500002,10.911376953125014],[105.04638671874997,10.701660156250014],[104.85058593749997,10.534472656249974],[104.42636718750006,10.411230468749991]]]},"properties":{"name":"Cambodia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-157.34213867187503,1.855566406250034],[-157.17578125,1.73984375],[-157.57895507812498,1.902050781249997],[-157.43583984374993,1.84726562500002],[-157.365185546875,1.94609375],[-157.44189453125003,2.025048828125009],[-157.321875,1.968554687500045],[-157.34213867187503,1.855566406250034]]],[[[-159.3390625,3.923535156249983],[-159.27475585937503,3.796582031250054],[-159.40903320312503,3.87324218750004],[-159.3390625,3.923535156249983]]]]},"properties":{"name":"Kiribati","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[126.32695312500002,33.2236328125],[126.16562500000012,33.31201171875],[126.33769531250002,33.46040039062501],[126.90117187500002,33.51513671874997],[126.87285156250002,33.34116210937498],[126.32695312500002,33.2236328125]]],[[[126.23369140625002,34.370507812499994],[126.12285156250002,34.443945312500034],[126.34384765625012,34.544921875],[126.23369140625002,34.370507812499994]]],[[[126.17197265625006,34.73115234375001],[126.00751953125004,34.86748046874999],[126.07841796875002,34.914843750000045],[126.17197265625006,34.73115234375001]]],[[[128.0658203125,34.80585937500004],[128.05468750000003,34.70805664062502],[127.87343750000005,34.73496093749998],[127.8322265625001,34.87451171875],[128.0658203125,34.80585937500004]]],[[[128.74101562500007,34.798535156249955],[128.64667968750004,34.73686523437502],[128.48925781250003,34.86528320312496],[128.66796875000003,35.0087890625],[128.74101562500007,34.798535156249955]]],[[[126.52070312500004,37.73681640625003],[126.516015625,37.60468750000001],[126.42333984375003,37.62363281250006],[126.41162109374997,37.82265625000002],[126.52070312500004,37.73681640625003]]],[[[128.37460937500012,38.6234375],[129.41826171875002,37.059033203124955],[129.40351562500004,36.052148437499994],[129.57285156250006,36.05053710937503],[129.4191406250001,35.49785156249996],[129.07675781250006,35.12270507812502],[128.5109375000001,35.10097656250002],[128.44394531250012,34.87036132812503],[128.03623046875006,35.02197265625],[127.71484374999997,34.95468749999998],[127.71542968750012,34.72104492187498],[127.40429687499997,34.823095703125006],[127.47910156250012,34.625244140625],[127.324609375,34.463281249999966],[127.17343750000006,34.54614257812497],[127.24707031249997,34.755126953125],[126.89746093749997,34.438867187499966],[126.75478515625005,34.511865234374994],[126.53144531250004,34.31425781249999],[126.26445312500002,34.67324218750002],[126.52451171875006,34.697900390624966],[126.59335937500012,34.824365234374994],[126.42070312500002,34.823388671874966],[126.29111328125012,35.154150390625034],[126.61406250000007,35.57099609375004],[126.4884765625001,35.647070312500006],[126.75302734375006,35.871972656249994],[126.5404296875,36.166162109374966],[126.4876953125,36.69379882812498],[126.18085937500004,36.69160156249998],[126.16054687500005,36.77192382812501],[126.48701171875004,37.00747070312502],[126.78447265625007,36.94843749999998],[126.87207031249997,36.82446289062506],[126.97685546875002,36.93940429687501],[126.74638671875002,37.19355468750001],[126.63388671875012,37.78183593750006],[127.09033203125003,38.28388671875001],[128.03896484375,38.30854492187498],[128.37460937500012,38.6234375]]]]},"properties":{"name":"Korea","childNum":7}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[48.27539062499997,29.624316406250017],[48.17968750000003,29.611425781250063],[48.081445312499994,29.798925781250063],[48.1847656250001,29.978857421875034],[48.348242187500006,29.78266601562504],[48.27539062499997,29.624316406250017]]],[[[48.442480468750006,28.542919921874983],[47.671289062499994,28.53315429687504],[47.433203125,28.989550781250017],[46.53144531250004,29.09624023437499],[46.69375,29.259667968749966],[46.76933593750002,29.347460937500017],[46.90585937500006,29.5375],[47.14824218750002,30.0009765625],[47.64375,30.097314453125023],[47.75390624999997,30.076611328124955],[47.97871093750004,29.98281250000005],[48.00566406250002,29.835791015625034],[48.143457031249994,29.57246093750001],[47.96962890625005,29.61669921874997],[47.72265624999997,29.393017578124955],[48.0514648437501,29.355371093750023],[48.442480468750006,28.542919921874983]]]]},"properties":{"name":"Kuwait","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[102.12744140625011,22.37919921874999],[102.58251953125006,21.904296875000057],[102.66201171875008,21.676025390625057],[102.73857421875005,21.677929687500125],[102.77109375000015,21.70966796875001],[102.79824218750014,21.797949218750034],[102.81591796875,21.807373046875],[102.94960937500008,21.681347656250068],[102.85117187500009,21.26591796874999],[102.8837890625,21.202587890625068],[103.1044921875,20.89165039062499],[103.21074218749999,20.840625],[103.46357421874995,20.779833984375102],[103.6350585937501,20.697070312500102],[104.10136718750005,20.945507812500125],[104.1953125,20.91396484375008],[104.349609375,20.82109374999999],[104.58320312500001,20.646679687499955],[104.53271484375,20.554882812500125],[104.47861328124998,20.529589843750102],[104.40781250000015,20.485742187500023],[104.36777343750015,20.441406250000057],[104.39218750000015,20.424755859375068],[104.49619140625003,20.41367187499992],[104.61884765624995,20.374511718750114],[104.65644531250001,20.328515624999966],[104.66191406250005,20.289013671875125],[104.67695312500007,20.224707031249977],[104.69873046875006,20.205322265625114],[104.84785156250007,20.202441406250045],[104.88867187500006,20.169091796875023],[104.92919921874994,20.082812500000045],[104.92792968750007,20.01811523437499],[104.81513671875001,19.90400390625001],[104.80175781250011,19.836132812500068],[104.74316406250006,19.754736328124977],[104.58789062500006,19.61875],[104.54628906250014,19.610546875000068],[104.25986328125003,19.685498046875068],[104.06279296875005,19.678417968750068],[104.03203124999999,19.67514648437492],[104.0134765625001,19.646484374999943],[104.05156250000005,19.564160156250068],[104.06289062500002,19.482568359375136],[104.02753906250013,19.420458984375102],[103.93203125000002,19.366064453125034],[103.89638671875002,19.339990234375023],[103.89160156249994,19.30498046874999],[105.146484375,18.650976562499977],[105.14541015625014,18.616796874999977],[105.08701171875015,18.49624023437508],[105.11455078125005,18.405273437500057],[105.45820312500007,18.154296875000057],[105.51855468750011,18.077441406250045],[105.58847656250015,17.983691406249932],[105.69140625,17.737841796874932],[106.00625,17.415283203124943],[106.26953125,17.216796875000057],[106.33339843750002,17.14370117187508],[106.42597656250007,17.00253906250009],[106.50224609374999,16.9541015625],[106.52597656250003,16.876611328125023],[106.53369140625,16.821044921875057],[106.54619140625005,16.650732421874977],[106.65644531250013,16.492626953125125],[106.73955078124999,16.452539062500136],[106.79160156250015,16.490332031249977],[106.83242187500008,16.526269531250023],[106.85107421875,16.515625],[106.89277343750013,16.396533203125102],[106.93066406250006,16.353125],[107.39638671875008,16.04301757812499],[107.39199218750008,15.951660156250057],[107.36064453125005,15.921728515624977],[107.18886718750008,15.838623046875114],[107.16591796875002,15.802490234375],[107.27939453125003,15.618701171875045],[107.33876953125002,15.560498046875125],[107.56425781249999,15.3916015625],[107.62167968750015,15.309863281250045],[107.653125,15.255224609375091],[107.63369140625008,15.18984375000008],[107.58964843749999,15.118457031250102],[107.55527343750009,15.057031250000023],[107.48037109375014,14.979882812500136],[107.5046875000001,14.91591796875008],[107.52451171875003,14.871826171874943],[107.51376953124998,14.817382812500057],[107.51943359375008,14.705078125000114],[107.46513671875005,14.664990234375125],[107.41474609375007,14.56289062500008],[107.37988281250006,14.555322265625136],[107.29267578125007,14.592382812500034],[107.109375,14.416699218749955],[107.06240234375008,14.415771484374943],[107.03017578125008,14.425683593750023],[106.99218749999994,14.39101562500008],[106.93808593750015,14.327343750000068],[106.91318359375003,14.329394531249932],[106.81992187500003,14.314697265624943],[106.7834960937501,14.335107421875023],[106.73818359375008,14.387744140625102],[106.66542968750002,14.441308593750023],[106.59921875000003,14.479394531250136],[106.56367187500007,14.505078125000011],[106.53115234375002,14.549414062499977],[106.50146484375,14.578222656250034],[106.22539062500005,14.476220703125023],[106.1907226562501,14.388134765625011],[106.16523437500007,14.372363281249989],[106.00839843750009,14.357177734375114],[105.97890625000014,14.343017578125057],[106.00410156250013,14.262890625000068],[106.09667968750011,14.127099609375136],[106.12470703124995,14.049121093750045],[106.06679687500008,13.921191406250102],[105.90449218750007,13.924511718750068],[105.83144531250008,13.976611328124989],[105.73974609375006,14.084960937500057],[105.5315429687501,14.156152343750023],[105.35019531250009,14.109570312500125],[105.24570312500015,14.200537109374977],[105.20703125000006,14.259375],[105.18554687499994,14.319091796875],[105.18330078125001,14.346240234374989],[105.24365234375006,14.367871093749955],[105.34218750000008,14.416699218749955],[105.42265624999993,14.471630859374955],[105.47558593750006,14.530126953124977],[105.49736328125005,14.590673828125034],[105.52304687500015,14.843310546874989],[105.54667968749999,14.932470703125034],[105.53339843750013,15.041601562500091],[105.49042968750007,15.127587890625023],[105.49042968750007,15.256591796875],[105.615625,15.488281249999943],[105.63886718750013,15.585937499999943],[105.64101562500002,15.656542968749932],[105.62207031250006,15.699951171875114],[105.39892578125011,15.829882812500102],[105.40625,15.987451171875023],[105.33066406250003,16.037890625000045],[105.1487304687501,16.09355468749999],[105.04716796874999,16.16025390625009],[104.81933593749994,16.466064453125057],[104.75058593750015,16.647558593750034],[104.74355468750014,16.884375],[104.75898437500013,17.0771484375],[104.81601562499998,17.30029296875],[104.73964843750008,17.461669921875],[104.428125,17.698974609375057],[104.32265625000002,17.815820312500023],[104.19619140625002,17.988378906250034],[104.04873046875002,18.216699218749966],[103.94960937500008,18.318994140625023],[103.89882812500002,18.295312500000023],[103.79228515624999,18.31650390625009],[103.62968750000005,18.382568359375057],[103.48798828124995,18.41816406250001],[103.36699218750005,18.42333984375],[103.28828124999995,18.408398437499955],[103.25175781249999,18.373486328125125],[103.24892578125014,18.338964843750034],[103.27958984374999,18.304980468750045],[103.26318359375,18.278466796875136],[103.19970703125006,18.25947265625001],[103.14853515625009,18.221728515624932],[103.09121093750014,18.13823242187499],[103.05136718750003,18.02851562500001],[102.80742187500005,17.945556640625],[102.71757812500005,17.892236328125136],[102.67519531250014,17.851757812500068],[102.68007812500008,17.824121093750136],[102.66064453125,17.8179687499999],[102.61679687500015,17.833349609375034],[102.59824218750009,17.926757812500057],[102.55253906249999,17.965087890625057],[102.4587890625001,17.984619140624943],[102.35185546874999,18.045947265625045],[102.14824218750005,18.203857421875057],[102.10146484375014,18.21064453125001],[102.03457031250002,18.169824218750023],[101.94746093750001,18.081494140624955],[101.87548828125011,18.046435546874932],[101.81865234375005,18.064648437500125],[101.77480468750002,18.033398437500125],[101.6875,17.889404296875114],[101.56367187500001,17.820507812500125],[101.55507812500002,17.812353515625034],[101.41367187500015,17.71875],[101.16748046875011,17.4990234375],[101.10517578125001,17.479541015625102],[100.9084960937501,17.583886718750023],[101.14394531250008,18.14262695312499],[101.1375,18.286865234375057],[101.0505859375001,18.407031250000045],[101.04697265625003,18.441992187500034],[101.28632812499995,18.977148437500034],[101.19755859374999,19.327929687500045],[101.22080078125015,19.486621093750045],[101.21191406250011,19.548339843750057],[100.51357421875008,19.553466796875],[100.39765625000013,19.756103515625057],[100.51953125000006,20.177929687500068],[100.31796875000003,20.385888671875136],[100.2180664062501,20.339599609375114],[100.13974609375015,20.245410156250102],[100.11494140625007,20.25766601562492],[100.12246093750002,20.316650390625057],[100.12968750000005,20.372216796875023],[100.1838867187501,20.589111328124943],[100.2493164062501,20.730273437499932],[100.32607421875008,20.795703124999932],[100.40742187499995,20.823242187500057],[100.56513671875013,20.82509765625008],[100.62294921875002,20.85957031250001],[100.61767578125,20.87924804687509],[100.54931640625011,20.884228515625068],[100.5222656250001,20.921923828125102],[100.53613281250006,20.992382812500068],[100.703125,21.25136718750008],[101.0803710937501,21.46865234375008],[101.13886718750013,21.567480468749977],[101.19667968750002,21.522070312499977],[101.17539062500009,21.407519531250102],[101.21992187500013,21.342431640625136],[101.21181640625008,21.278222656250023],[101.22441406249999,21.22373046874992],[101.24785156249993,21.197314453125045],[101.28144531250007,21.184130859375045],[101.44355468750001,21.230810546874977],[101.54238281250008,21.234277343750136],[101.70478515625013,21.150146484375057],[101.728125,21.15639648437508],[101.78349609374999,21.204150390625045],[101.8005859375001,21.212597656249955],[101.7229492187501,21.314941406250057],[101.74726562500007,21.60576171874999],[101.7439453125001,21.77797851562508],[101.73652343750001,21.826513671874977],[101.52451171874998,22.253662109375],[101.56787109375011,22.2763671875],[101.6199218750001,22.327441406250102],[101.67148437500009,22.462304687500023],[101.70751953125,22.486572265625],[101.73876953125011,22.495263671874966],[101.75996093750001,22.490332031250034],[101.841796875,22.388476562500102],[102.02441406250006,22.439208984375114],[102.09150390625007,22.412255859375136],[102.12744140625011,22.37919921874999]]]},"properties":{"name":"Lao PDR","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[35.869140625,33.43173828125],[35.411230468750006,33.07568359375],[35.10859375000001,33.08369140625],[35.64785156250002,34.2482421875],[35.97626953125001,34.629199218749996],[36.383886718750006,34.65791015625],[36.32988281250002,34.499609375],[36.50439453125,34.432373046875],[36.5849609375,34.221240234374996],[36.27783203125,33.92529296875],[36.36503906250002,33.83935546875],[35.98613281250002,33.75263671875],[36.03447265625002,33.58505859375],[35.869140625,33.43173828125]]]},"properties":{"name":"Lebanon","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-8.486425781249977,7.558496093749994],[-8.408740234374989,7.411816406249997],[-8.324511718749989,6.920019531249991],[-8.587890625,6.490527343749989],[-8.287109375,6.319042968749997],[-7.981591796874994,6.2861328125],[-7.888623046874983,6.23486328125],[-7.800927734374994,6.038916015624991],[-7.730371093749994,5.919042968749991],[-7.636132812499994,5.90771484375],[-7.454394531249989,5.84130859375],[-7.39990234375,5.550585937499989],[-7.585058593749977,4.916748046875],[-7.574658203124983,4.572314453124989],[-7.544970703124989,4.351318359375],[-8.259033203125,4.589990234374994],[-9.132177734374977,5.054638671874997],[-10.2763671875,6.07763671875],[-11.291601562499977,6.688232421875],[-11.507519531249983,6.906542968749989],[-11.267675781249977,7.232617187499997],[-10.878076171874994,7.538232421874994],[-10.6474609375,7.759375],[-10.570849609374989,8.071142578124991],[-10.516748046874994,8.125292968749989],[-10.359814453124983,8.187939453124997],[-10.283203125,8.485156249999989],[-10.233056640624994,8.488818359374989],[-10.147412109374983,8.519726562499997],[-10.064355468749994,8.429882812499997],[-9.781982421875,8.537695312499991],[-9.518261718749983,8.34609375],[-9.369140625,7.703808593749997],[-9.463818359374983,7.415869140624991],[-9.11757812499999,7.215917968749991],[-8.8896484375,7.2626953125],[-8.659765624999977,7.688378906249994],[-8.486425781249977,7.558496093749994]]]},"properties":{"name":"Liberia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[25.150488281250006,31.654980468749997],[24.85273437500001,31.334814453125],[24.96142578125,30.678515625],[24.703222656250006,30.201074218749994],[24.980273437500017,29.181884765625],[24.980273437500017,25.5888671875],[24.980273437500017,21.995849609375],[24.9794921875,20.002587890624994],[23.980273437500017,19.99594726562499],[23.980273437500017,19.496630859375003],[20.14765625000001,21.38925781249999],[15.984082031250011,23.445214843749994],[14.97900390625,22.99619140624999],[14.215527343750011,22.619677734375003],[13.48125,23.18017578125],[11.967871093750006,23.517871093750003],[11.507617187500017,24.314355468749994],[10.686132812500006,24.55136718749999],[10.395898437500023,24.485595703125],[10.255859375,24.591015625],[10.000683593750011,25.332080078125003],[9.4482421875,26.067138671875],[9.491406250000011,26.333740234375],[9.883203125000023,26.630810546874997],[9.74755859375,27.330859375],[9.916015625,27.785693359374996],[9.805273437500006,29.176953125],[9.310253906250011,30.115234375],[9.51875,30.229394531249994],[9.89501953125,30.3873046875],[9.932519531250023,30.425341796874996],[10.059765625000011,30.580078125],[10.21640625,30.783203125],[10.114941406250011,31.463769531249994],[10.274609375000011,31.684960937499994],[10.475781250000011,31.736035156249997],[10.60888671875,31.929541015625],[10.826367187500011,32.0806640625],[11.005175781250017,32.172705078125],[11.168261718750017,32.256738281249994],[11.358007812500006,32.34521484375],[11.504980468750006,32.413671875],[11.535937500000017,32.47333984375],[11.533789062500006,32.524951171874996],[11.453906250000017,32.642578125],[11.453906250000017,32.781689453125],[11.459179687500011,32.897363281249994],[11.467187500000023,32.965722656249994],[11.504589843750011,33.181933593749996],[11.657128906250023,33.118896484375],[11.8134765625,33.093701171875],[12.279882812500006,32.858544921874994],[12.753515625,32.801074218749996],[13.283496093750017,32.9146484375],[15.176562500000017,32.391162109374996],[15.705957031250023,31.426416015624994],[17.830468750000023,30.927587890625],[18.669824218750023,30.415673828124994],[19.12373046875001,30.26611328125],[19.713281250000023,30.48837890625],[20.11152343750001,30.963720703125],[19.926367187500006,31.817529296874994],[20.121484375000023,32.21875],[20.62109375,32.58017578125],[21.63593750000001,32.937304687499996],[22.187402343750023,32.918261718749996],[23.090625,32.61875],[23.10625,32.331445312499994],[23.28632812500001,32.213818359375],[24.129687500000017,32.009228515625],[24.878515625,31.984277343749994],[25.150488281250006,31.654980468749997]]]},"properties":{"name":"Libya","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-60.89521484375,13.821972656249997],[-60.951416015625,13.717578125],[-61.073144531249994,13.865576171874991],[-60.908105468749994,14.09335937499999],[-60.89521484375,13.821972656249997]]]},"properties":{"name":"Saint Lucia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[79.87480468750002,9.050732421875026],[79.90371093750005,8.975],[79.74765625000006,9.104589843749991],[79.87480468750002,9.050732421875026]]],[[[79.98232421875,9.812695312500011],[80.25283203125005,9.796337890625054],[80.71113281250004,9.366357421875023],[81.226953125,8.50551757812498],[81.37285156250002,8.431445312499989],[81.42216796875007,8.147851562500023],[81.87412109375012,7.288330078124986],[81.86142578125012,6.901269531249994],[81.63740234375004,6.425146484374991],[80.72412109375003,5.97905273437496],[80.26738281250007,6.009765625],[80.09531250000012,6.153173828125006],[79.859375,6.829296874999983],[79.71298828125012,8.18232421875004],[79.74980468750007,8.294238281250003],[79.78349609375007,8.018457031250051],[79.92890625000004,8.899218749999974],[80.09960937499997,9.209960937500043],[80.08632812500005,9.577832031250026],[80.42832031250006,9.480957031250014],[80.04580078125005,9.649902343749972],[79.98232421875,9.812695312500011]]]]},"properties":{"name":"Sri Lanka","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[28.646875,-30.1265625],[28.39208984375,-30.147558593750006],[28.128710937500017,-30.52509765625001],[28.05683593750001,-30.63105468750001],[27.753125,-30.6],[27.364062500000017,-30.27919921875001],[27.19355468750001,-29.94130859375001],[27.056933593750017,-29.625585937500006],[27.29453125,-29.519335937500003],[27.73554687500001,-28.940039062500006],[27.959863281250023,-28.873339843750003],[28.084375,-28.77998046875001],[28.23261718750001,-28.701269531250006],[28.471875,-28.615820312500006],[28.583398437500023,-28.594140625],[28.625781250000017,-28.58173828125001],[29.301367187500006,-29.08984375],[29.38671875,-29.31972656250001],[29.34882812500001,-29.441992187500006],[29.293554687500006,-29.56689453125],[29.1421875,-29.700976562500003],[29.098046875000023,-29.919042968750006],[28.646875,-30.1265625]]]},"properties":{"name":"Lesotho","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[20.957812500000074,55.27890625000006],[20.89980468750008,55.286669921875045],[21.11484375,55.61650390624999],[20.957812500000074,55.27890625000006]]],[[[25.573046875000017,54.139892578125],[25.497363281250045,54.17524414062501],[25.52734375000003,54.21513671874996],[25.505664062500045,54.26494140624999],[25.46113281250004,54.29277343749996],[25.179492187500017,54.214257812499966],[25.111425781250006,54.15493164062505],[25.04609375000004,54.13305664062503],[24.869531250000023,54.14516601562502],[24.82568359374997,54.118994140625006],[24.78925781250001,53.99824218750001],[24.768164062499977,53.97465820312499],[24.31796875,53.892968749999966],[24.236621093750045,53.91997070312496],[24.19130859375005,53.95043945312503],[23.559082031250057,53.91982421875002],[23.484667968750074,53.939794921875006],[23.453613281250057,54.14345703125002],[23.3701171875,54.20048828124999],[23.282324218750063,54.240332031250034],[23.17031250000008,54.28144531249998],[23.0875,54.299462890624994],[23.042187500000068,54.30419921875],[23.01552734375005,54.34833984375001],[22.976757812500068,54.36635742187505],[22.89394531250008,54.390527343749994],[22.82373046874997,54.39580078124999],[22.766210937499977,54.356787109375034],[22.679882812500068,54.493017578125006],[22.684472656250023,54.56293945312504],[22.82470703125,54.87128906249998],[22.56728515625005,55.05913085937496],[22.072363281250034,55.06367187499998],[21.235742187500023,55.26411132812498],[21.237890625000034,55.455029296874955],[21.06191406250005,55.81342773437498],[21.053808593750006,56.02294921875003],[21.04609375000004,56.07006835937503],[21.31464843750004,56.18813476562502],[21.65351562500004,56.314550781250006],[22.084570312500034,56.40673828125006],[22.875585937500063,56.39643554687501],[22.96826171875003,56.38041992187502],[23.042968750000057,56.324072265625006],[23.119824218749983,56.330664062500006],[23.195898437500034,56.36713867187498],[24.120703125000063,56.26425781249998],[24.90302734375001,56.398193359375],[25.069921875,56.20039062500004],[25.663183593750063,56.104833984375006],[26.593554687500074,55.66752929687502],[26.590820312500057,55.62265625],[26.56660156250001,55.546484375000034],[26.51923828125004,55.448144531249994],[26.469531250000045,55.371923828125006],[26.457617187500006,55.342480468749955],[26.49531250000004,55.31801757812502],[26.68125,55.30644531249999],[26.76015625000008,55.29335937499999],[26.775683593750045,55.27309570312502],[26.601171875000034,55.130175781250045],[26.291796875000074,55.13959960937501],[26.250781250000045,55.12451171875006],[26.175195312500023,55.003271484375034],[26.092968750000068,54.96230468750005],[25.964453124999977,54.947167968749966],[25.85927734375005,54.91928710937498],[25.722460937500074,54.71787109374998],[25.731640625000068,54.59038085937502],[25.72480468750001,54.564257812500045],[25.68515625,54.53579101562502],[25.62031250000004,54.46040039062501],[25.56757812500004,54.377050781250006],[25.54736328125,54.33183593750002],[25.55751953125005,54.310693359374994],[25.702539062499994,54.29296875],[25.765234374999977,54.179785156250034],[25.573046875000017,54.139892578125]]]]},"properties":{"name":"Lithuania","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[6.4873046875,49.798486328124994],[6.344335937500006,49.452734375],[6.181054687500023,49.498925781249994],[6.119921875000017,49.485205078125],[6.074121093750023,49.454638671874996],[6.011425781250011,49.445458984374994],[5.95947265625,49.454638671874996],[5.928906250000011,49.4775390625],[5.9013671875,49.48974609375],[5.823437500000011,49.505078125],[5.789746093750011,49.53828125],[5.776710379464286,49.639953962053575],[5.744042968750023,49.91962890625],[5.7880859375,49.961230468749996],[5.8173828125,50.0126953125],[5.866894531250011,50.0828125],[5.976269531250011,50.1671875],[6.089062500000011,50.154589843749996],[6.110058593750011,50.123779296875],[6.116503906250017,50.120996093749994],[6.109765625000023,50.034375],[6.13818359375,49.97431640625],[6.204882812500017,49.91513671875],[6.272327008928583,49.887234933035714],[6.4873046875,49.798486328124994]]]},"properties":{"name":"Luxembourg","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.14794921875,56.142919921875],[27.576757812500006,55.798779296875],[27.052539062500017,55.83056640625],[26.593554687500017,55.667529296874996],[25.663183593750006,56.104833984375],[25.069921875,56.200390625],[24.90302734375001,56.398193359375],[24.120703125,56.2642578125],[23.81269531250001,56.329248046875],[23.195898437500006,56.367138671875],[23.11982421875001,56.3306640625],[23.04296875,56.324072265625],[22.875585937500006,56.396435546875],[22.084570312500006,56.40673828125],[21.730566406250006,56.325976562499996],[21.65351562500001,56.31455078125],[21.31464843750001,56.188134765625],[21.04609375000001,56.070068359375],[21.0712890625,56.82373046875],[21.72871093750001,57.57099609375],[22.554589843750023,57.724267578125],[23.28730468750001,57.08974609375],[23.647753906250017,56.971044921875],[24.382617187500017,57.250048828124996],[24.322558593750017,57.87060546875],[24.3625,57.866162109375],[24.458886718750023,57.907861328125],[25.11103515625001,58.063427734375],[25.27265625000001,58.009375],[25.66015625,57.920166015625],[26.29804687500001,57.60107421875],[26.532617187500023,57.531005859375],[26.96601562500001,57.609130859375],[27.187109375,57.538330078125],[27.326562500000023,57.52548828125],[27.4697265625,57.5240234375],[27.538671875,57.42978515625],[27.796875,57.316943359374996],[27.82861328125,57.293310546875],[27.838281250000023,57.247705078125],[27.83027343750001,57.194482421875],[27.639453125000017,56.845654296875],[27.806054687500023,56.86708984375],[27.8486328125,56.85341796875],[27.89208984375,56.741064453125],[28.00751953125001,56.599853515625],[28.103125,56.545703125],[28.11083984375,56.510693359375],[28.169238281250017,56.386865234375],[28.191699218750017,56.315576171875],[28.202050781250023,56.260400390625],[28.14794921875,56.142919921875]]]},"properties":{"name":"Latvia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.2125,45.450439453125],[28.07470703125,45.598974609375],[28.23945312500001,46.6408203125],[28.07177734375,46.978417968749994],[27.614062500000017,47.34052734375],[26.980761718750017,48.155029296875],[26.618945312500017,48.25986328125],[26.640429687500017,48.294140625],[26.847070312500023,48.387158203125],[26.90058593750001,48.371923828125],[27.228515625,48.371435546875],[27.549218750000023,48.477734375],[28.34052734375001,48.144433593749994],[28.42304687500001,48.146875],[29.125390625000023,47.96455078125],[29.134863281250006,47.489697265625],[29.455664062500006,47.292626953124994],[29.57197265625001,46.964013671874994],[29.7197265625,46.88291015625],[29.877832031250023,46.82890625],[29.942480468750006,46.723779296874994],[29.93476562500001,46.625],[29.92431640625,46.538867187499996],[30.13105468750001,46.423095703125],[30.07568359375,46.377832031249994],[29.878027343750006,46.360205078125],[29.837890625,46.350537109375],[29.458789062500017,46.453759765624994],[29.30488281250001,46.466601562499996],[29.22382812500001,46.376953125],[29.20458984375,46.379345703125],[29.20078125,46.50498046875],[29.18623046875001,46.523974609374996],[29.146289062500017,46.526904296874996],[28.958398437500023,46.45849609375],[28.92744140625001,46.424121093749996],[28.930566406250023,46.362255859375],[28.94375,46.288427734375],[29.00625,46.17646484375],[28.971875,46.12763671875],[28.94775390625,46.049951171874994],[28.849511718750023,45.978662109374994],[28.73876953125,45.937158203124994],[28.729296875000017,45.852001953125],[28.667578125,45.793847656249994],[28.562304687500017,45.735791015625],[28.491601562500023,45.665771484375],[28.4990234375,45.517724609374994],[28.310351562500017,45.498583984374996],[28.26484375000001,45.48388671875],[28.2125,45.450439453125]]]},"properties":{"name":"Moldova","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[49.936425781249994,-16.90292968750002],[49.82402343750002,-17.08652343750002],[50.02304687500006,-16.6953125],[49.936425781249994,-16.90292968750002]]],[[[48.3421875,-13.363867187500034],[48.21191406250003,-13.385253906249957],[48.191210937500074,-13.259960937500011],[48.308886718750074,-13.198242187499957],[48.3421875,-13.363867187500034]]],[[[49.53828125000004,-12.432128906250014],[49.9375,-13.072265624999957],[50.23535156249997,-14.732031249999963],[50.482714843750074,-15.385644531249994],[50.20898437499997,-15.960449218750028],[50.02041015625005,-15.801757812500028],[49.89257812500003,-15.457714843750011],[49.664355468750074,-15.521582031249977],[49.83906250000004,-16.486523437499997],[49.76718750000006,-16.815136718749983],[49.44931640625006,-17.240625],[49.477832031250074,-17.89853515624999],[49.362890625,-18.336328125],[47.934472656249994,-22.393945312500023],[47.55800781250005,-23.874609374999963],[47.17734375,-24.787207031249977],[46.72851562499997,-25.14990234374997],[46.15869140624997,-25.230371093750023],[45.5080078125001,-25.56318359374997],[45.2057617187501,-25.57050781250004],[44.0353515625001,-24.995703125],[43.670019531250006,-24.30029296875],[43.722265625,-23.529687500000037],[43.2648437500001,-22.38359375],[43.29052734374997,-21.93251953124998],[43.50185546875005,-21.356445312499957],[43.800195312499994,-21.179199218749986],[44.40468750000005,-19.922070312500026],[44.44882812500006,-19.42871093749997],[44.23876953124997,-19.075195312499986],[44.23310546875004,-18.740625],[44.04003906249997,-18.288476562500023],[43.979394531249994,-17.3916015625],[44.42138671874997,-16.70263671874997],[44.476171875,-16.217285156249957],[44.90917968749997,-16.174511718750026],[45.2228515625001,-15.95048828124996],[45.3421875,-16.03671875000002],[45.598242187500006,-15.992578125],[45.70019531249997,-15.813769531249989],[46.157519531250074,-15.738281249999972],[46.3996093750001,-15.924609375000017],[46.331445312499994,-15.713671875000031],[46.47509765625003,-15.513476562500003],[46.942285156249994,-15.219042968749974],[47.09921875,-15.43417968750002],[47.092578125000074,-15.150097656249969],[47.35195312500005,-14.766113281249986],[47.46474609375005,-14.713281249999966],[47.47832031250002,-15.009375],[47.77402343750006,-14.63671875],[47.964160156250074,-14.672558593750026],[47.773339843749994,-14.369921875],[47.995507812499994,-13.960449218749986],[47.88359375000002,-13.807519531250009],[47.94101562500006,-13.662402343750017],[48.03984375000002,-13.596289062499963],[48.25527343750005,-13.719335937499977],[48.796484375,-13.267480468750023],[48.91943359375003,-12.839062499999969],[48.78632812500004,-12.470898437500011],[48.931738281250006,-12.4390625],[49.20703124999997,-12.079589843749957],[49.53828125000004,-12.432128906250014]]]]},"properties":{"name":"Madagascar","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-91.68369140624998,18.677343750000034],[-91.81611328124995,18.675878906250006],[-91.53671874999998,18.760009765625],[-91.68369140624998,18.677343750000034]]],[[[-86.93964843750001,20.303320312500006],[-86.97797851562498,20.489794921875074],[-86.76328124999995,20.579052734374955],[-86.93964843750001,20.303320312500006]]],[[[-106.50224609374999,21.61083984375003],[-106.60703124999993,21.561474609374983],[-106.63935546874995,21.697851562499977],[-106.50224609374999,21.61083984375003]]],[[[-110.56738281249994,25.003466796875017],[-110.5388671875,24.89155273437504],[-110.69926757812499,25.081445312499994],[-110.56738281249994,25.003466796875017]]],[[[-112.05727539062498,24.545703125000017],[-112.29677734375002,24.789648437500063],[-112.15942382812501,25.28564453125003],[-112.19501953124998,24.841064453125057],[-112.05727539062498,24.545703125000017]]],[[[-111.10029296874998,26.020605468750006],[-111.224658203125,25.83588867187504],[-111.18291015625002,26.040625],[-111.10029296874998,26.020605468750006]]],[[[-115.17060546875001,28.06938476562496],[-115.35292968750002,28.103955078124983],[-115.23354492187495,28.36835937500004],[-115.17060546875001,28.06938476562496]]],[[[-112.20307617187503,29.00532226562504],[-112.27841796875,28.769335937500017],[-112.51406249999997,28.847607421874955],[-112.42353515625,29.203662109375017],[-112.28505859374994,29.240429687499955],[-112.20307617187503,29.00532226562504]]],[[[-113.15561523437502,29.05224609375],[-113.49633789062497,29.30761718749997],[-113.58720703125002,29.57304687499996],[-113.20214843749999,29.301855468750034],[-113.15561523437502,29.05224609375]]],[[[-97.14624023437494,25.961474609375045],[-97.66767578124995,24.389990234374977],[-97.84248046874995,22.510302734375017],[-97.76328124999998,22.105859374999966],[-97.31450195312496,21.56420898437503],[-97.40917968749997,21.272558593750034],[-97.38344726562497,21.56669921874999],[-97.75380859375002,22.02666015624999],[-97.18632812499996,20.717041015625],[-96.45605468749994,19.869775390624966],[-96.28955078124994,19.34375],[-95.778125,18.805517578125034],[-95.92036132812495,18.81958007812497],[-95.62680664062503,18.690576171874994],[-95.71982421874998,18.768359375000017],[-95.18183593749995,18.700732421875017],[-94.79814453124996,18.51459960937501],[-94.45976562499993,18.166650390624994],[-93.55234375,18.430468750000017],[-92.88476562499997,18.468652343749966],[-92.44101562499998,18.67529296874997],[-91.97377929687502,18.715869140625074],[-91.91357421875,18.52851562500001],[-91.53398437499993,18.45654296875],[-91.27524414062498,18.62446289062501],[-91.34306640624996,18.900585937499955],[-91.43666992187502,18.889794921874966],[-90.73925781249994,19.352246093749955],[-90.69316406249996,19.729882812499966],[-90.49169921874997,19.94677734375003],[-90.353125,21.009423828124966],[-89.81977539062495,21.274609374999983],[-88.46669921874997,21.569384765625017],[-88.0068359375,21.604052734375045],[-87.25087890625,21.44697265625004],[-87.18828124999993,21.546435546875045],[-87.36850585937498,21.57373046875],[-87.034765625,21.592236328124955],[-86.824072265625,21.421679687500017],[-86.77177734374999,21.150537109375023],[-86.92622070312493,20.786474609375034],[-87.42138671875,20.23139648437501],[-87.44174804687498,19.861523437499983],[-87.68769531249998,19.63710937499999],[-87.6453125,19.55390625000001],[-87.42475585937498,19.583349609375063],[-87.65869140625003,19.352343750000074],[-87.65576171874997,19.25786132812499],[-87.50107421874998,19.287792968749983],[-87.76181640624998,18.446142578125006],[-87.88198242187497,18.27387695312501],[-88.05644531249996,18.524462890625074],[-88.03173828125,18.838916015625017],[-88.29565429687494,18.47241210937503],[-88.52299804687499,18.445898437500063],[-88.80634765624998,17.965527343749983],[-89.13354492187503,17.970800781249977],[-89.16147460937503,17.81484375],[-90.98916015624997,17.81640624999997],[-90.99296874999993,17.25244140625],[-91.19550781249998,17.254101562499983],[-91.40961914062501,17.255859375],[-90.975830078125,16.867822265624994],[-90.710693359375,16.708105468750034],[-90.65996093749996,16.630908203125045],[-90.634375,16.565136718749955],[-90.63408203125002,16.51074218749997],[-90.57578124999995,16.467822265625017],[-90.47109374999994,16.439550781250034],[-90.41699218750003,16.391015625000023],[-90.41699218750003,16.351318359375],[-90.45014648437493,16.261376953124994],[-90.45986328124997,16.16235351562497],[-90.44716796874994,16.07270507812501],[-90.52197265625,16.07119140625005],[-90.70322265624998,16.07104492187503],[-90.97958984374998,16.07080078124997],[-91.433984375,16.070458984374994],[-91.736572265625,16.070166015625006],[-91.95722656250001,15.703222656250034],[-92.08212890624998,15.495556640625011],[-92.18715820312497,15.320898437499963],[-92.07480468749998,15.074218749999972],[-92.09873046874998,15.026757812499994],[-92.14423828125001,15.001953125],[-92.158544921875,14.963574218749997],[-92.23515625,14.545410156249986],[-93.91606445312493,16.053564453125006],[-94.374169921875,16.284765625000034],[-94.426416015625,16.22626953125001],[-94.00126953124996,16.018945312499966],[-94.66152343750002,16.20190429687503],[-94.58710937499995,16.315820312499966],[-94.79082031249999,16.28715820312499],[-94.85869140624996,16.41972656249999],[-95.02084960937503,16.277636718750017],[-94.79941406249995,16.20966796875001],[-95.134375,16.17695312500001],[-96.21357421874993,15.693066406250011],[-96.80795898437495,15.726416015624977],[-97.18466796874998,15.909277343750006],[-97.75478515624994,15.966845703125017],[-98.52031249999993,16.30483398437505],[-98.76220703125,16.534765624999977],[-99.69067382812499,16.719628906249994],[-100.847802734375,17.20048828124999],[-101.91870117187494,17.959765625000045],[-102.69956054687495,18.062841796875006],[-103.44160156249995,18.32539062500001],[-103.91245117187496,18.828466796875006],[-104.9384765625,19.309375],[-105.482080078125,19.97607421875003],[-105.66943359374997,20.385595703124977],[-105.26015625,20.579052734374955],[-105.32705078124994,20.752978515625045],[-105.51083984374999,20.808740234375023],[-105.23706054687499,21.119189453125045],[-105.20869140624998,21.490820312499977],[-105.43144531249997,21.618261718750006],[-105.64912109375001,21.988085937500045],[-105.64550781249999,22.32690429687497],[-105.79179687500003,22.627490234375017],[-106.93549804687497,23.88125],[-107.76494140625002,24.47192382812497],[-107.52724609375001,24.36005859375001],[-107.51191406249998,24.489160156250023],[-107.95117187499994,24.614892578124966],[-108.28076171874994,25.08154296875],[-108.05146484374995,25.067041015624994],[-108.69638671874998,25.382910156250034],[-108.78725585937502,25.53803710937501],[-109.02880859375003,25.48046875000003],[-108.886572265625,25.733447265625045],[-109.19648437499998,25.59252929687503],[-109.38496093750001,25.727148437500006],[-109.42563476562495,26.032568359375063],[-109.19970703125003,26.30522460937499],[-109.11669921874999,26.25273437499996],[-109.27626953125,26.533886718749955],[-109.48286132812498,26.710351562500023],[-109.75478515624995,26.702929687500017],[-109.94399414062495,27.079345703125057],[-110.37729492187495,27.233300781249966],[-110.59267578124995,27.544335937500023],[-110.52988281249995,27.864208984374983],[-111.12138671875002,27.966992187499983],[-112.16176757812495,29.018896484375034],[-113.05766601562496,30.651025390625023],[-113.04672851562495,31.17924804687499],[-113.62348632812494,31.34589843750001],[-113.75942382812501,31.557763671874994],[-113.94775390625001,31.62934570312501],[-114.14931640624995,31.507373046875045],[-114.93359374999994,31.900732421874977],[-114.78989257812498,31.647119140624994],[-114.88188476562499,31.156396484375023],[-114.55048828124997,30.02226562499999],[-113.75546875,29.367480468750017],[-113.49970703124995,28.92670898437501],[-113.20556640624997,28.798779296874955],[-113.09365234375001,28.511767578125017],[-112.870849609375,28.42421875000005],[-112.73403320312501,27.825976562500017],[-112.32919921874996,27.52343750000003],[-111.86264648437495,26.678515625000017],[-111.6994140625,26.58095703125005],[-111.79526367187499,26.8796875],[-111.56967773437495,26.707617187500006],[-111.29160156249996,25.78979492187497],[-110.68676757812501,24.867675781250057],[-110.65932617187502,24.34145507812505],[-110.36743164062497,24.100488281249994],[-110.30375976562497,24.339453125],[-110.02280273437502,24.17460937499999],[-109.6765625,23.66157226562501],[-109.42084960937495,23.480126953124994],[-109.49570312500002,23.159814453125023],[-110.00625,22.894042968750057],[-110.3626953125,23.60493164062501],[-111.68291015625002,24.555810546875023],[-111.80249023437494,24.542529296875074],[-112.07255859374999,24.84003906250001],[-112.06987304687497,25.572851562500006],[-112.37724609374997,26.21391601562496],[-113.02075195312499,26.58325195312497],[-113.15581054687496,26.94624023437504],[-113.27226562499997,26.79096679687501],[-113.59853515625001,26.721289062500034],[-113.84096679687502,26.966503906249983],[-114.44526367187503,27.218164062499994],[-114.53989257812495,27.431103515624955],[-114.99350585937499,27.736035156249983],[-115.03647460937495,27.84184570312496],[-114.57001953124995,27.78393554687497],[-114.30058593749995,27.87299804687501],[-114.30224609375003,27.775732421875006],[-114.0693359375,27.67568359375005],[-114.15839843750003,27.919677734375],[-114.26586914062499,27.934472656249994],[-114.04848632812502,28.42617187499999],[-114.93730468749999,29.35161132812496],[-115.67382812500003,29.756396484375017],[-116.06215820312501,30.80415039062504],[-116.29628906250001,30.97050781249999],[-116.33344726562494,31.202783203124994],[-116.66215820312495,31.56489257812504],[-116.72207031249998,31.734570312499955],[-116.62080078124995,31.85107421874997],[-116.84799804687496,31.997363281250045],[-117.12827148437495,32.533349609374994],[-114.72475585937495,32.71533203125003],[-114.83593749999994,32.50830078125003],[-111.0419921875,31.32421875000003],[-108.21445312499993,31.329443359375034],[-108.21181640625002,31.779345703125017],[-106.44541015624996,31.768408203125006],[-106.14804687499995,31.450927734375],[-104.97880859374996,30.645947265624955],[-104.50400390624995,29.677685546874955],[-104.110595703125,29.386132812499994],[-103.16831054687498,28.998193359374994],[-102.8919921875,29.216406250000034],[-102.61494140624994,29.75234375],[-102.26894531249998,29.871191406250034],[-101.44038085937503,29.77685546875],[-100.75458984375001,29.182519531249994],[-100.29604492187495,28.32768554687499],[-99.50532226562497,27.54833984375003],[-99.45654296874999,27.05668945312496],[-99.10776367187498,26.446923828124994],[-97.37563476562497,25.871826171875],[-97.14624023437494,25.961474609375045]]]]},"properties":{"name":"Mexico","childNum":10}},{"geometry":{"type":"Polygon","coordinates":[[[22.344042968750017,42.31396484375],[22.836816406250023,41.993603515625],[23.00361328125001,41.73984375],[22.916015625,41.336279296875],[22.78388671875001,41.331982421875],[22.72480468750001,41.178515625],[22.603613281250006,41.140185546874996],[22.493554687500023,41.118505859375],[22.184472656250023,41.158642578125],[21.99335937500001,41.13095703125],[21.77949218750001,40.950439453125],[21.627539062500006,40.896337890625],[21.57578125,40.868945312499996],[20.964257812500023,40.849902343749996],[20.709277343750017,40.928369140624994],[20.48896484375001,41.272607421874994],[20.566210937500017,41.873681640624994],[20.725,41.87353515625],[20.778125,42.071044921875],[21.05976562500001,42.171289062499994],[21.28662109375,42.100390625],[21.389550781250023,42.21982421875],[21.560839843750017,42.24765625],[21.5625,42.247509765625],[21.81464843750001,42.303125],[22.344042968750017,42.31396484375]]]},"properties":{"name":"Macedonia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[4.227636718750006,19.142773437499997],[4.234667968750017,16.996386718750003],[4.121289062500011,16.357714843750003],[3.842968750000011,15.701708984375003],[3.5205078125,15.483105468749997],[3.504296875000023,15.356347656249994],[3.06015625,15.427197265624997],[3.001074218750006,15.340966796874994],[1.300195312500023,15.272265625],[0.947460937500011,14.982128906249997],[0.217480468750011,14.911474609374991],[-0.235888671874989,15.059423828124991],[-0.760449218749983,15.047753906249994],[-1.049560546875,14.81953125],[-1.97304687499999,14.45654296875],[-2.113232421874983,14.16845703125],[-2.586718749999989,14.227587890625003],[-2.873925781249994,13.950732421875003],[-2.950830078124994,13.6484375],[-3.248632812499977,13.658349609374994],[-3.3017578125,13.28076171875],[-3.527636718749989,13.182714843749991],[-3.947314453124989,13.402197265624991],[-4.151025390624994,13.306201171875003],[-4.328710937499977,13.119042968749994],[-4.227099609374989,12.793701171875],[-4.480615234374994,12.672216796874991],[-4.4287109375,12.337597656249997],[-4.699316406249977,12.076171875],[-5.288134765624989,11.827929687499989],[-5.250244140625,11.375781249999989],[-5.490478515625,11.042382812499994],[-5.523535156249977,10.426025390625],[-5.556591796874983,10.43994140625],[-5.694287109374983,10.43320312499999],[-5.843847656249977,10.389550781249994],[-5.896191406249983,10.354736328125],[-5.907568359374977,10.307226562499991],[-6.034570312499994,10.19482421875],[-6.1171875,10.201904296875],[-6.238378906249977,10.261621093749994],[-6.241308593749977,10.279199218749994],[-6.192626953125,10.369433593749989],[-6.190673828125,10.400292968749994],[-6.250244140625,10.717919921874994],[-6.482617187499983,10.561230468749997],[-6.564599609374994,10.58642578125],[-6.654150390624977,10.656445312499997],[-6.676367187499977,10.6337890625],[-6.686132812499977,10.578027343749994],[-6.691992187499977,10.512011718749989],[-6.669335937499994,10.3921875],[-6.693261718749994,10.349462890624991],[-6.950341796874994,10.342333984374989],[-7.01708984375,10.143261718749997],[-7.385058593749989,10.340136718749989],[-7.6611328125,10.427441406249997],[-7.990625,10.1625],[-8.007275390624983,10.321875],[-8.266650390624989,10.485986328124994],[-8.33740234375,10.990625],[-8.666699218749983,11.009472656249997],[-8.398535156249977,11.366552734374991],[-8.822021484375,11.673242187499994],[-8.818310546874983,11.922509765624994],[-9.043066406249977,12.40234375],[-9.395361328124977,12.464648437499989],[-9.358105468749983,12.255419921874989],[-9.754003906249977,12.029931640624994],[-10.274853515624983,12.212646484375],[-10.709228515625,11.898730468749989],[-10.933203124999977,12.205175781249991],[-11.30517578125,12.015429687499989],[-11.502197265625,12.198632812499994],[-11.389404296875,12.404394531249991],[-11.390380859375,12.941992187499991],[-11.634960937499983,13.369873046875],[-11.831689453124994,13.315820312499994],[-12.05419921875,13.633056640625],[-11.960888671874983,13.875292968750003],[-12.019189453124994,14.206494140624997],[-12.228417968749994,14.45859375],[-12.280615234374977,14.809033203124997],[-12.104687499999983,14.745361328125],[-12.08154296875,14.766357421875],[-12.021582031249977,14.804931640625],[-11.76015625,15.425537109375],[-11.675878906249977,15.512060546874991],[-11.502685546875,15.636816406249991],[-11.455224609374994,15.62539062499999],[-10.9482421875,15.151123046875],[-10.696582031249989,15.42265625],[-9.94140625,15.373779296875],[-9.446923828124994,15.458203125],[-9.447705078124983,15.574853515624994],[-9.426562499999989,15.623046875],[-9.3505859375,15.677392578124994],[-9.33544921875,15.525683593750003],[-9.293701171875,15.502832031249994],[-5.5125,15.496289062499997],[-5.359912109374989,16.282861328124994],[-5.509619140624977,16.442041015624994],[-5.628662109375,16.568652343750003],[-5.65625,16.8095703125],[-5.684765624999983,17.058251953124994],[-5.713183593749989,17.306884765625],[-5.74169921875,17.555566406249994],[-5.827099609374983,18.3015625],[-6.026416015624989,20.0421875],[-6.396582031249977,23.274804687499994],[-6.482031249999977,24.020800781250003],[-6.538964843749994,24.51816406249999],[-6.5673828125,24.766796875],[-6.594091796874977,24.99462890625],[-6.287207031249977,24.994824218749997],[-5.959814453124977,24.99497070312499],[-5.640771484374994,24.995166015625003],[-4.822607421874977,24.99560546875],[-1.947900390624994,23.124804687500003],[1.1455078125,21.102246093749997],[1.165722656250011,20.817431640625003],[1.610644531250017,20.555566406249994],[1.685449218750023,20.378369140624997],[3.130273437500023,19.85019531249999],[3.255859375,19.4109375],[3.119726562500006,19.103173828124994],[3.3564453125,18.986621093750003],[4.227636718750006,19.142773437499997]]]},"properties":{"name":"Mali","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[14.566210937499989,35.85273437499998],[14.436425781250023,35.82167968750005],[14.351269531250011,35.978417968749994],[14.566210937499989,35.85273437499998]]]},"properties":{"name":"Malta","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[98.18261718749997,9.933447265625006],[98.11806640625,9.877880859375054],[98.2916992187501,10.051318359375031],[98.18261718749997,9.933447265625006]]],[[[98.20976562500002,10.952734375],[98.27148437499997,10.73989257812498],[98.08046875000005,10.886621093750037],[98.20976562500002,10.952734375]]],[[[98.55380859375012,11.744873046875],[98.52841796875012,11.538671875],[98.43476562500004,11.567089843750026],[98.37646484374997,11.79150390625],[98.55380859375012,11.744873046875]]],[[[98.516015625,11.905029296875028],[98.46621093750005,12.08427734374996],[98.60957031250004,11.956640624999977],[98.516015625,11.905029296875028]]],[[[98.06611328125004,12.389794921875023],[98.00234375000005,12.279003906250011],[97.93867187500004,12.34609375],[98.06611328125004,12.389794921875023]]],[[[98.41396484375005,12.597949218749974],[98.45947265625003,12.473730468749991],[98.3138671875,12.335986328124989],[98.31210937500006,12.678173828124983],[98.41396484375005,12.597949218749974]]],[[[98.31542968749997,13.099072265625026],[98.30917968750012,12.934716796875023],[98.26533203125004,13.202246093749991],[98.31542968749997,13.099072265625026]]],[[[94.80488281250004,15.8193359375],[94.73349609375006,15.823046875000045],[94.82802734375005,15.933007812499966],[94.80488281250004,15.8193359375]]],[[[94.47675781250004,15.945947265625023],[94.41191406250007,15.848388671875057],[94.3878906250001,15.994140624999972],[94.60126953125004,16.205517578124983],[94.47675781250004,15.945947265625023]]],[[[97.575,16.253222656250017],[97.48037109375,16.305712890625045],[97.54199218749997,16.505078124999983],[97.575,16.253222656250017]]],[[[93.6908203125,18.68427734375004],[93.4875,18.867529296875063],[93.74472656250006,18.865527343750017],[93.6908203125,18.68427734375004]]],[[[93.71484374999997,19.558251953124994],[93.94570312500005,19.428613281249966],[93.90195312500012,19.33203125],[93.75585937500003,19.325683593750057],[93.64404296874997,19.49506835937501],[93.71484374999997,19.558251953124994]]],[[[93.49179687500012,19.892578125],[93.51328125000006,19.754785156249994],[93.41289062500002,19.950341796875023],[93.49179687500012,19.892578125]]],[[[93.01015625000005,19.923925781249977],[93.02324218750007,19.82885742187497],[92.91464843750006,20.086474609375045],[93.01015625000005,19.923925781249977]]],[[[101.1388671875001,21.567480468749977],[101.08037109375007,21.468652343749994],[100.703125,21.251367187499966],[100.613671875,21.059326171875],[100.56660156250004,21.038183593750063],[100.53613281250003,20.992382812499955],[100.52226562500007,20.92192382812499],[100.54931640624997,20.884228515624955],[100.61767578125003,20.879248046875006],[100.62294921875005,20.859570312499983],[100.5651367187501,20.825097656249994],[100.4074218750001,20.823242187500057],[100.32607421875005,20.795703125000045],[100.24931640625002,20.730273437500045],[100.18388671875002,20.589111328125057],[100.12968750000002,20.372216796874994],[100.12246093750005,20.316650390625057],[100.0036132812501,20.37958984375001],[99.9542968750001,20.415429687500023],[99.8903320312501,20.424414062499977],[99.72011718750005,20.32543945312497],[99.45888671875005,20.363037109375],[99.48593750000006,20.14985351562501],[99.07421875000003,20.09936523437503],[98.9166992187501,19.77290039062504],[98.37128906250004,19.68916015625004],[98.01503906250005,19.74951171874997],[97.816796875,19.459960937500057],[97.74589843750002,18.58818359374999],[97.37392578125,18.51796875],[97.63222656250005,18.290332031250074],[97.7064453125,17.79711914062503],[98.4388671875,16.975683593750034],[98.66074218750006,16.330419921875006],[98.83544921875003,16.417578125],[98.88828125000006,16.351904296875034],[98.81796875000012,16.180810546874994],[98.59238281250006,16.05068359375005],[98.55693359375007,15.367675781249986],[98.19101562500012,15.204101562499972],[98.20214843749997,14.97592773437502],[98.57001953125004,14.359912109375031],[99.13681640625006,13.716699218749994],[99.12392578125,13.030761718750043],[99.40507812500002,12.547900390625003],[99.61474609374997,11.781201171875026],[99.1901367187501,11.105273437499989],[98.7572265625,10.660937499999974],[98.70253906250005,10.19038085937504],[98.56259765625006,10.034960937499989],[98.46494140625006,10.675830078124989],[98.67558593750007,10.986914062500034],[98.74140625000004,11.591699218749966],[98.87597656250003,11.719726562500028],[98.63632812500006,11.738378906250006],[98.69628906250003,12.225244140624994],[98.6002929687501,12.2453125],[98.67871093749997,12.348486328124963],[98.57597656250002,13.161914062500031],[98.20039062500004,13.980175781250026],[98.14951171875012,13.647607421875037],[98.11064453125007,13.712890625000014],[98.10019531250006,14.161523437500023],[97.90976562500012,14.652685546874991],[98.01875,14.652587890625057],[97.81230468750007,14.858935546874989],[97.7103515625,15.875537109375074],[97.58427734375007,16.019580078125017],[97.72597656250005,16.56855468750004],[97.37587890625005,16.52294921874997],[97.20019531249997,17.095410156249983],[96.85146484375005,17.401025390624994],[96.90859375000005,17.03095703125001],[96.76542968750002,16.710351562499966],[96.43115234374997,16.504931640625045],[96.18906250000012,16.768310546875057],[96.32431640625006,16.444433593750063],[95.76328125000006,16.169042968750006],[95.38955078125005,15.722753906250034],[95.30146484375004,15.756152343749989],[95.34677734375012,16.09760742187501],[95.17695312500004,15.825683593750028],[94.9425781250001,15.818261718750023],[94.89316406250006,16.182812499999955],[94.66152343750005,15.904394531250006],[94.70332031250004,16.511914062499955],[94.4416015625001,16.094384765624966],[94.22382812500004,16.016455078125006],[94.58896484375006,17.5693359375],[94.17070312500007,18.73242187499997],[94.24570312500006,18.741162109374983],[94.07001953125004,18.893408203125006],[94.04492187500003,19.287402343750074],[93.92919921874997,18.89965820312503],[93.70546875000005,19.026904296875017],[93.49306640625005,19.369482421875006],[93.82490234375004,19.238476562499955],[93.99814453125006,19.440869140624983],[93.61171875000005,19.776074218749983],[93.70703125000003,19.912158203125074],[93.25,20.070117187500017],[93.12949218750012,19.858007812500063],[93.00195312499997,20.074853515624994],[93.06679687500005,20.377636718749955],[92.82832031250004,20.177587890625063],[92.89111328124997,20.34033203125],[92.73564453125007,20.56269531250001],[92.72285156250004,20.29560546875004],[92.32412109375,20.791845703125063],[92.17958984375005,21.293115234375023],[92.33056640624997,21.439794921874977],[92.63164062500002,21.306201171875045],[92.5934570312501,21.46733398437499],[92.58281250000002,21.940332031249994],[92.57490234375004,21.978076171875045],[92.68896484374997,22.130957031250006],[92.72099609375002,22.132421875000063],[92.77138671875,22.104785156250017],[92.9645507812501,22.003759765625034],[93.07060546875002,22.20942382812501],[93.16201171875,22.360205078125006],[93.07871093750006,22.71821289062501],[93.20390625000002,23.03701171875005],[93.34941406250007,23.08496093750003],[93.36601562500007,23.132519531249955],[93.32626953125006,24.064208984375057],[93.45214843750003,23.987402343750034],[93.68339843750007,24.00654296875004],[94.07480468750006,23.8720703125],[94.29306640625012,24.321875],[94.37724609375002,24.473730468750006],[94.49316406250003,24.637646484374983],[94.70371093750012,25.097851562499955],[94.55302734375007,25.215722656249994],[94.66777343750007,25.458886718749966],[94.99199218750002,25.77045898437504],[95.01523437500006,25.912939453125006],[95.0929687500001,25.98730468749997],[95.13242187500006,26.041259765625057],[95.12929687500005,26.070410156250034],[95.10839843749997,26.091406250000034],[95.06894531250006,26.19111328125001],[95.0597656250001,26.473974609375006],[95.20146484375007,26.641406250000017],[96.19082031250005,27.26127929687499],[96.79785156249997,27.29619140624999],[96.95341796875002,27.13330078125003],[97.10205078125003,27.11542968750004],[97.10371093750004,27.16333007812503],[96.90195312500012,27.439599609374994],[96.88359375000002,27.514843749999955],[96.96279296875,27.698291015625017],[97.04970703125005,27.760009765625],[97.34355468750002,27.982324218749994],[97.30273437499997,28.08598632812496],[97.3224609375001,28.21796875000004],[97.35644531249997,28.254492187500006],[97.43144531250002,28.353906250000023],[97.53789062500002,28.510205078124983],[97.59921875000006,28.51704101562504],[98.06162109375012,28.185888671874977],[98.29882812499997,27.550097656250045],[98.4525390625,27.6572265625],[98.65117187500007,27.572460937499983],[98.7384765625001,26.785742187500006],[98.68554687499997,26.189355468750023],[98.56406250000006,26.072412109374994],[98.65625,25.86357421874999],[98.33378906250007,25.586767578125006],[98.14287109375007,25.571093750000017],[98.01074218749997,25.292529296875017],[97.8195312500001,25.251855468749994],[97.73789062500006,24.869873046875057],[97.58330078125002,24.77480468750005],[97.53144531250004,24.49169921875003],[97.7082031250001,24.228759765625],[97.56455078125012,23.911035156250023],[98.2125,24.110644531250017],[98.83505859375006,24.121191406250034],[98.67675781250003,23.905078125000045],[98.8322265625001,23.624365234374977],[98.86376953125003,23.191259765625034],[99.41806640625006,23.069238281250023],[99.50712890625002,22.959130859374994],[99.19296875000006,22.12597656249997],[99.9176757812501,22.02802734375001],[99.94072265625007,21.75874023437504],[100.14765625000004,21.480517578125017],[100.60458984375012,21.471777343750006],[101.07978515625004,21.75585937499997],[101.1388671875001,21.567480468749977]]]]},"properties":{"name":"Myanmar","childNum":15}},{"geometry":{"type":"Polygon","coordinates":[[[19.21875,43.449951171875],[19.670996093750006,43.163964843749994],[20.344335937500006,42.827929687499996],[20.054296875,42.760058593749996],[20.06396484375,42.54726562499999],[19.78828125000001,42.476171875],[19.65449218750001,42.628564453124994],[19.280664062500023,42.17255859375],[19.342382812500006,41.869091796875],[18.436328125000017,42.559716796874994],[18.5458984375,42.6416015625],[18.46601562500001,42.777246093749994],[18.44384765625,42.96845703125],[18.46015625000001,42.997900390625],[18.48847656250001,43.012158203125],[18.623632812500006,43.027685546875],[18.621875,43.124609375],[18.674218750000023,43.230810546875],[18.74921875000001,43.283544921875],[18.85107421875,43.346337890624994],[18.934667968750006,43.339453125],[18.97871093750001,43.285400390625],[19.026660156250017,43.292431640625],[19.03671875,43.357324218749994],[18.940234375000017,43.496728515624994],[18.95068359375,43.526660156249996],[18.97421875,43.542333984375],[19.0283203125,43.532519531249996],[19.080078125,43.517724609374994],[19.11279296875,43.52773437499999],[19.164355468750017,43.535449218749996],[19.1943359375,43.53330078125],[19.21875,43.449951171875]]]},"properties":{"name":"Montenegro","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[111.878125,43.68017578125],[111.00722656250002,43.34140625],[110.400390625,42.773681640625],[109.44316406249999,42.455957031249994],[109.33984375,42.438378906249994],[108.68730468749999,42.41611328125],[108.17119140624999,42.447314453124996],[106.77001953125,42.288720703124994],[105.86757812500002,41.993994140625],[105.31435546875002,41.770898437499994],[105.19707031249999,41.738037109375],[105.11542968750001,41.66328125],[105.05058593749999,41.61591796875],[104.98203125000003,41.595507812499996],[104.49824218750001,41.65869140625],[104.49824218750001,41.877001953124996],[104.30517578125,41.846142578125],[103.99726562500001,41.79697265625],[103.71113281250001,41.751318359375],[103.07285156250003,42.00595703125],[102.5751953125,42.092089843749996],[102.15664062500002,42.158105468749994],[101.97294921874999,42.215869140624996],[101.65996093749999,42.500048828124996],[101.5791015625,42.52353515625],[101.49531250000001,42.53876953125],[101.09199218750001,42.551318359374996],[100.51904296875,42.616796875],[100.08632812500002,42.670751953125],[99.98378906250002,42.67734375],[99.46787109375003,42.568212890625],[97.20566406250003,42.789794921875],[96.38544921875001,42.720361328124994],[95.85957031250001,43.2759765625],[95.52558593750001,43.953955078125],[95.32558593750002,44.039355468749996],[95.35029296875001,44.278076171875],[94.71201171875003,44.350830078125],[93.51621093750003,44.944482421874994],[92.78789062499999,45.0357421875],[92.57890624999999,45.010986328125],[92.423828125,45.008935546874994],[92.17265624999999,45.03525390625],[92.02978515625,45.068505859374994],[91.584375,45.076513671875],[91.05,45.217431640624994],[90.87724609374999,45.19609375],[90.66181640625001,45.525244140625],[91.00175781249999,46.035791015624994],[90.99677734375001,46.10498046875],[90.94755859374999,46.177294921874996],[90.91152343750002,46.270654296874994],[90.98574218750002,46.7490234375],[90.91054687500002,46.883251953125],[90.86992187499999,46.954492187499994],[90.79902343750001,46.98515625],[90.71552734375001,47.003857421875],[90.49619140625003,47.28515625],[90.42519531250002,47.5041015625],[90.34746093749999,47.596972656249996],[90.33066406250003,47.655175781249994],[90.31328124999999,47.67617187499999],[90.19101562500003,47.702099609375],[90.10322265625001,47.745410156249996],[90.02792968750003,47.877685546875],[89.95869140625001,47.886328125],[89.91044921874999,47.8443359375],[89.83134765624999,47.823291015624996],[89.778125,47.827001953125],[89.56093750000002,48.003955078124996],[89.47919921875001,48.029052734375],[89.04765624999999,48.0025390625],[88.97109375000002,48.049951171874994],[88.91777343749999,48.089013671874994],[88.83828125000002,48.101708984374994],[88.68183593750001,48.170556640624994],[88.57597656249999,48.220166015625],[88.56679687500002,48.317431640624996],[88.51708984375,48.38447265625],[88.41396484375002,48.40341796875],[88.30996093750002,48.472070312499994],[87.97968750000001,48.555126953125],[88.06005859375,48.707177734374994],[87.83183593749999,48.791650390624994],[87.7431640625,48.881640625],[87.87216796875003,49.000146484374994],[87.81630859375002,49.0802734375],[87.8251953125,49.11630859375],[87.81425781249999,49.1623046875],[87.93476562500001,49.16455078125],[87.98808593749999,49.186914062499994],[88.02851562500001,49.219775390624996],[88.11572265625,49.256298828125],[88.19257812500001,49.451708984374996],[88.63320312500002,49.486132812499996],[88.83164062500003,49.4484375],[88.86386718750003,49.527636718749996],[88.90019531249999,49.539697265624994],[88.94541015625003,49.507666015625],[88.97060546875002,49.483740234375],[89.00839843750003,49.472802734374994],[89.10947265625003,49.501367187499994],[89.17998046874999,49.5322265625],[89.20292968749999,49.595703125],[89.24394531249999,49.62705078125],[89.39560546875003,49.6115234375],[89.475,49.66054687499999],[89.57919921875003,49.69970703125],[89.65410156249999,49.71748046875],[89.64384765624999,49.90302734375],[90.0537109375,50.09375],[90.65507812499999,50.22236328125],[90.71435546875,50.259423828124994],[90.7607421875,50.305957031249996],[91.02158203125003,50.415478515625],[91.23378906250002,50.452392578125],[91.30058593749999,50.46337890625],[91.3408203125,50.470068359375],[91.4150390625,50.468017578125],[91.44648437500001,50.52216796875],[91.80429687500003,50.693603515625],[92.10400390625,50.6919921875],[92.1923828125,50.700585937499994],[92.35478515624999,50.864160156249994],[92.42636718750003,50.803076171875],[92.62666015625001,50.68828125],[92.68134765625001,50.683203125],[92.73867187500002,50.7109375],[92.779296875,50.778662109375],[92.8564453125,50.789111328124996],[92.94130859375002,50.778222656249994],[93.103125,50.60390625],[94.25107421875003,50.556396484375],[94.35468750000001,50.221826171874994],[94.61474609375,50.023730468749996],[94.67548828125001,50.028076171875],[94.71806640624999,50.043261718749996],[94.93027343750003,50.04375],[95.11142578125003,49.935449218749994],[95.52265625000001,49.91123046875],[96.06552734375003,49.99873046875],[96.31503906250003,49.901123046875],[96.98574218750002,49.8828125],[97.20859375000003,49.730810546875],[97.35976562500002,49.741455078125],[97.58935546875,49.911474609375],[98.00390625,50.0142578125],[98.25029296874999,50.30244140625],[98.27949218750001,50.533251953124996],[98.14501953125,50.5685546875],[98.07890624999999,50.603808593749996],[98.02978515625,50.64462890625],[97.82529296875003,50.985253906249994],[98.103125,51.483544921874994],[98.64052734375002,51.801171875],[98.89316406250003,52.11728515625],[99.92167968749999,51.755517578125],[100.03457031250002,51.737109375],[100.23037109375002,51.729833984375],[100.46894531250001,51.72607421875],[100.53623046875003,51.7134765625],[101.38125,51.45263671875],[101.57089843750003,51.4671875],[101.82119140625002,51.421044921874994],[102.11152343750001,51.353466796875],[102.15566406250002,51.313769531249996],[102.16005859375002,51.26083984375],[102.14238281249999,51.216064453125],[102.15195312500003,51.10751953125],[102.19453125000001,51.050683593749994],[102.21503906250001,50.829443359375],[102.31660156250001,50.71845703125],[102.28837890624999,50.585107421874994],[103.30439453125001,50.20029296875],[103.63291015625003,50.138574218749994],[103.72324218750003,50.153857421874996],[103.80263671875002,50.176074218749996],[104.07871093750003,50.154248046875],[105.38359374999999,50.47373046875],[106.21787109375003,50.304589843749994],[106.36845703124999,50.317578125],[106.57441406250001,50.32880859375],[106.71113281250001,50.31259765625],[106.94130859375002,50.196679687499994],[107.04023437500001,50.086474609374996],[107.14306640625,50.033007812499996],[107.23330078125002,49.989404296874994],[107.34707031250002,49.986669921875],[107.63095703125003,49.98310546875],[107.91660156250003,49.947802734374996],[107.96542968750003,49.653515625],[108.40693359375001,49.396386718749994],[108.5224609375,49.34150390625],[108.61367187500002,49.322802734374996],[109.23671875000002,49.334912109375],[109.45371093750003,49.296337890625],[109.52871093750002,49.269873046875],[110.19990234375001,49.17041015625],[110.42783203125003,49.219970703125],[110.70976562499999,49.14296875],[110.82792968749999,49.166162109374994],[111.20419921875003,49.304296875],[111.33662109375001,49.35585937499999],[111.42929687500003,49.342626953125],[112.07968750000003,49.42421875],[112.49492187499999,49.53232421875],[112.69736328125003,49.507275390625],[112.80644531249999,49.523583984374994],[112.91484374999999,49.569238281249994],[113.05556640625002,49.616259765624996],[113.09208984374999,49.692529296874994],[113.16416015625003,49.797167968749996],[113.31904296875001,49.874316406249996],[113.44550781250001,49.9416015625],[113.57421875,50.00703125],[114.29707031250001,50.2744140625],[114.7431640625,50.233691406249996],[115.00332031250002,50.138574218749994],[115.27451171875003,49.948876953124994],[115.36503906249999,49.911767578124994],[115.42919921875,49.896484375],[115.58798828125003,49.886035156249996],[115.7177734375,49.880615234375],[115.79521484374999,49.905908203124994],[115.92597656250001,49.9521484375],[116.13457031249999,50.010791015624996],[116.216796875,50.00927734375],[116.35117187500003,49.978076171874996],[116.55117187500002,49.9203125],[116.68330078125001,49.823779296874996],[115.82050781250001,48.57724609375],[115.79169921875001,48.455712890624994],[115.79658203125001,48.346337890624994],[115.78554687500002,48.2482421875],[115.63945312499999,48.18623046875],[115.52509765625001,48.130859375],[115.61640625000001,47.874804687499996],[115.89824218749999,47.686914062499994],[115.99384765625001,47.71132812499999],[116.07480468750003,47.78955078125],[116.23115234375001,47.858203125],[116.31718749999999,47.85986328125],[116.37822265624999,47.844042968749996],[116.51347656249999,47.83955078125],[116.65195312500003,47.864501953125],[116.76054687499999,47.869775390624994],[116.90117187499999,47.853076171874996],[116.95166015625,47.836572265624994],[117.06972656250002,47.806396484375],[117.28593749999999,47.666357421875],[117.35078125000001,47.652197265625],[117.76835937499999,47.987890625],[118.49843750000002,47.983984375],[118.56777343750002,47.943261718749994],[118.69052734375003,47.822265625],[118.75996093750001,47.757617187499996],[118.88027343750002,47.72509765625],[119.017578125,47.685351562499996],[119.08193359375002,47.654150390625],[119.71113281250001,47.15],[119.89785156250002,46.8578125],[119.8671875,46.672167968749996],[119.74746093750002,46.627197265625],[119.70664062500003,46.606005859374996],[119.62021484375003,46.603955078125],[119.47402343750002,46.62666015625],[119.33183593749999,46.613818359374996],[119.162109375,46.638671875],[118.95712890625003,46.73486328125],[118.84394531250001,46.760205078125],[118.79033203124999,46.7470703125],[118.72294921874999,46.69189453125],[118.64873046874999,46.70166015625],[118.58046875000002,46.69189453125],[118.40439453125003,46.703173828124996],[118.30869140625003,46.717041015625],[118.15683593750003,46.678564453125],[118.0712890625,46.6666015625],[117.7412109375,46.5181640625],[117.546875,46.58828125],[117.43808593750003,46.586230468749996],[117.40556640624999,46.5708984375],[117.39218750000003,46.53759765625],[117.35634765625002,46.436669921874994],[117.35693359375,46.39130859375],[117.33339843750002,46.36201171875],[116.85908203125001,46.387939453125],[116.56259765625003,46.289794921875],[116.21298828125003,45.8869140625],[116.22910156250003,45.845751953124996],[116.240625,45.79599609375],[116.19765625000002,45.73935546875],[115.68105468750002,45.458251953125],[115.16259765625,45.390234375],[114.91923828124999,45.378271484375],[114.73876953125,45.41962890625],[114.56015625000003,45.389990234375],[114.41914062500001,45.202587890625],[114.16738281250002,45.049853515624996],[114.08027343750001,44.971142578125],[113.87705078125003,44.89619140625],[113.65263671874999,44.763476562499996],[113.58701171875003,44.745703125],[113.04941406250003,44.810351562499996],[112.70673828125001,44.883447265624994],[112.59677734375003,44.91767578125],[112.49931640624999,45.0109375],[112.41132812500001,45.058203125],[112.11289062500003,45.062939453125],[112.03261718750002,45.081640625],[111.89804687500003,45.0640625],[111.40224609375002,44.36728515625],[111.93173828125003,43.81494140625],[111.878125,43.68017578125]]]},"properties":{"name":"Mongolia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[145.75195312499997,15.133154296874991],[145.71318359375007,15.215283203125026],[145.821875,15.265380859375014],[145.75195312499997,15.133154296874991]]]},"properties":{"name":"N. Mariana Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[32.112890625,-26.839453125],[32.10595703125,-26.52001953125],[32.04140625000002,-26.28125],[32.060546875,-26.018359375],[31.9482421875,-25.957617187500006],[31.98583984375,-24.46064453125001],[31.799609375000017,-23.8921875],[31.54560546875001,-23.48232421875001],[31.287890625000017,-22.40205078125001],[31.429492187500017,-22.298828125],[32.429785156250006,-21.29707031250001],[32.353613281250006,-21.136523437500003],[32.49238281250001,-20.659765625],[32.992773437500006,-19.98486328125],[32.77763671875002,-19.388769531250006],[32.84980468750001,-19.10439453125001],[32.69970703125,-18.94091796875],[32.99306640625002,-18.35957031250001],[32.87626953125002,-16.88359375],[32.94804687500002,-16.71230468750001],[31.939843750000023,-16.428808593750006],[31.236230468750023,-16.02363281250001],[30.437792968750017,-15.995312500000011],[30.39609375,-15.64306640625],[30.231835937500023,-14.990332031250006],[33.201757812500006,-14.013378906250011],[33.63642578125001,-14.568164062500003],[34.375,-14.4248046875],[34.50527343750002,-14.59814453125],[34.54082031250002,-15.297265625],[34.24609375,-15.829394531250003],[34.528125,-16.319140625],[34.93339843750002,-16.760351562500006],[35.11210937500002,-16.898535156250006],[35.06464843750001,-17.07861328125],[35.124609375,-17.127246093750003],[35.20136718750001,-17.13105468750001],[35.272558593750006,-17.118457031250003],[35.29042968750002,-17.096972656250003],[35.28115234375002,-16.80781250000001],[35.22978515625002,-16.639257812500006],[35.178320312500006,-16.573339843750006],[35.16718750000001,-16.56025390625001],[35.242773437500006,-16.375390625],[35.358496093750006,-16.160546875],[35.59931640625001,-16.12587890625001],[35.70888671875002,-16.095800781250006],[35.75527343750002,-16.05830078125001],[35.79121093750001,-15.958691406250011],[35.89277343750001,-14.891796875000011],[35.86669921875,-14.86376953125],[35.84716796875,-14.6708984375],[35.6904296875,-14.465527343750011],[35.48847656250001,-14.201074218750009],[35.37578125000002,-14.058691406250006],[35.24746093750002,-13.896875],[35.01386718750001,-13.643457031250009],[34.61152343750001,-13.437890625],[34.54570312500002,-13.21630859375],[34.542578125,-13.108691406250003],[34.35781250000002,-12.164746093750011],[34.60625,-11.690039062500006],[34.65957031250002,-11.588671875],[34.82656250000002,-11.57568359375],[34.95947265625,-11.578125],[35.1826171875,-11.574804687500006],[35.41826171875002,-11.583203125000011],[35.50439453125,-11.604785156250003],[35.56435546875002,-11.60234375],[35.630957031250006,-11.58203125],[35.78544921875002,-11.452929687500003],[35.91132812500001,-11.4546875],[36.08222656250001,-11.537304687500011],[36.17548828125001,-11.609277343750009],[36.19130859375002,-11.670703125],[36.3056640625,-11.706347656250003],[36.97890625000002,-11.566992187500006],[37.37285156250002,-11.71044921875],[37.54169921875001,-11.675097656250003],[37.72480468750001,-11.580664062500006],[37.92021484375002,-11.294726562500003],[38.491796875,-11.413281250000011],[38.9875,-11.167285156250003],[39.81708984375001,-10.912402343750003],[39.98867187500002,-10.82080078125],[40.46357421875001,-10.46435546875],[40.61171875000002,-10.661523437500009],[40.48662109375002,-10.76513671875],[40.59716796875,-10.830664062500006],[40.40283203125,-11.33203125],[40.53154296875002,-12.004589843750011],[40.48710937500002,-12.4921875],[40.58085937500002,-12.635546875],[40.43681640625002,-12.983105468750011],[40.56875,-12.984667968750003],[40.595703125,-14.122851562500003],[40.715625,-14.214453125],[40.64609375,-14.538671875],[40.775,-14.421289062500009],[40.84453125000002,-14.718652343750009],[40.617773437500006,-15.115527343750003],[40.650976562500006,-15.260937500000011],[39.98359375000001,-16.22548828125001],[39.79091796875002,-16.29453125],[39.84462890625002,-16.435644531250006],[39.084375,-16.97285156250001],[38.14492187500002,-17.242773437500006],[37.24453125000002,-17.73994140625001],[36.93935546875002,-17.993457031250003],[36.40371093750002,-18.76972656250001],[36.26289062500001,-18.71962890625001],[36.23564453125002,-18.861328125],[35.85371093750001,-18.99335937500001],[34.947851562500006,-19.81269531250001],[34.6494140625,-19.70136718750001],[34.75576171875002,-19.82197265625001],[34.705078125,-20.473046875],[34.98232421875002,-20.80625],[35.267675781250006,-21.650976562500006],[35.31572265625002,-22.396875],[35.38300781250001,-22.45458984375],[35.45634765625002,-22.11591796875001],[35.53007812500002,-22.248144531250006],[35.57539062500001,-22.96308593750001],[35.37041015625002,-23.79824218750001],[35.5419921875,-23.82441406250001],[35.48964843750002,-24.065527343750006],[34.99208984375002,-24.65058593750001],[32.96113281250001,-25.49042968750001],[32.590429687500006,-26.00410156250001],[32.84882812500001,-26.26806640625],[32.95488281250002,-26.08359375],[32.93359375,-26.25234375],[32.88916015625,-26.83046875],[32.88613281250002,-26.84931640625001],[32.353515625,-26.861621093750003],[32.19960937500002,-26.83349609375],[32.112890625,-26.839453125]]]},"properties":{"name":"Mozambique","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-16.37333984374999,19.706445312499994],[-16.437548828124932,19.609277343749994],[-16.477001953124983,19.710351562499994],[-16.343652343749994,19.86621093750003],[-16.37333984374999,19.706445312499994]]],[[[-5.359912109374989,16.282861328124994],[-5.5125,15.496289062499983],[-9.293701171875,15.502832031249994],[-9.350585937499943,15.677392578125023],[-9.38535156249992,15.667626953124994],[-9.4265625,15.623046875000057],[-9.447705078124926,15.574853515624994],[-9.446923828124937,15.458203124999955],[-9.941406249999972,15.373779296874986],[-10.696582031249989,15.42265625],[-10.9482421875,15.151123046875014],[-11.455224609374994,15.62539062499999],[-11.760156249999937,15.425537109375057],[-11.828759765624966,15.244873046875014],[-11.872851562499989,14.995166015625031],[-12.02158203124992,14.804931640625],[-12.081542968749972,14.766357421875057],[-12.104687499999955,14.745361328125043],[-12.40869140625,14.889013671874991],[-12.735253906249994,15.13125],[-13.105273437499989,15.57177734375],[-13.40966796875,16.059179687500006],[-13.756640624999989,16.172509765624994],[-13.868457031249932,16.14814453125001],[-14.300097656249932,16.58027343750001],[-14.990625,16.676904296874994],[-15.768212890624994,16.485107421875],[-16.23901367187497,16.53129882812499],[-16.44101562499992,16.20454101562504],[-16.480078124999977,16.097216796875017],[-16.50205078124992,15.917333984375063],[-16.53525390624995,15.838378906250057],[-16.53574218749995,16.28681640625001],[-16.463623046875,16.60151367187501],[-16.030322265625017,17.88793945312497],[-16.213085937499926,19.003320312500023],[-16.51445312499996,19.361962890624994],[-16.305273437499977,19.51264648437504],[-16.44487304687499,19.47314453124997],[-16.21044921875003,20.227929687500023],[-16.42978515624995,20.652343750000057],[-16.622509765624955,20.634179687499994],[-16.87607421874992,21.086132812499955],[-16.998242187499926,21.039697265625023],[-17.048046874999955,20.80615234375003],[-17.06396484375,20.89882812499999],[-16.96455078125001,21.329248046875023],[-15.231201171875,21.331298828125],[-14.084667968749926,21.33271484375001],[-13.626025390624932,21.33325195312503],[-13.396728515624943,21.333544921875017],[-13.167431640624926,21.333789062500074],[-13.016210937499949,21.33393554687501],[-13.025097656249983,21.46679687499997],[-13.032226562500028,21.572070312500017],[-13.041748046875,21.71381835937504],[-13.051220703124983,21.854785156250074],[-13.094335937499977,22.49599609375005],[-13.153271484374983,22.820507812499983],[-13.031494140624943,23.000244140625],[-12.895996093749972,23.08955078125001],[-12.739599609375006,23.192724609375063],[-12.62041015624996,23.271337890625006],[-12.559375,23.290820312500045],[-12.372900390624977,23.318017578124994],[-12.023437499999943,23.467578125000017],[-12.016308593749983,23.97021484375],[-12.016308593749983,24.378662109375],[-12.016308593749983,24.923242187499994],[-12.016308593749983,25.059375],[-12.016308593749983,25.331689453124994],[-12.016308593749983,25.740136718749994],[-12.016308593749983,25.995410156250017],[-10.376123046874966,25.995458984375034],[-9.444531249999983,25.99550781250005],[-9.071923828124937,25.99550781250005],[-8.885644531249994,25.99550781250005],[-8.682226562499949,25.99550781250005],[-8.68212890625,26.109472656250006],[-8.68212890625,26.273193359375057],[-8.682324218749955,26.49770507812505],[-8.682617187500028,26.723144531250057],[-8.682861328124972,26.92133789062501],[-8.683349609375,27.285937500000045],[-4.822607421874949,24.99560546875],[-5.640771484374994,24.99516601562499],[-5.959814453124977,24.994970703125063],[-6.287207031249977,24.99482421875001],[-6.594091796874977,24.99462890624997],[-6.396582031249977,23.274804687499994],[-6.02641601562496,20.04218750000001],[-5.827099609374955,18.301562500000045],[-5.741699218749943,17.555566406250023],[-5.713183593750017,17.306884765625],[-5.684765624999983,17.058251953124966],[-5.628662109375028,16.568652343750045],[-5.50961914062492,16.442041015625023],[-5.359912109374989,16.282861328124994]]]]},"properties":{"name":"Mauritania","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-62.1484375,16.74033203124999],[-62.221630859375,16.699511718750003],[-62.191357421875,16.804394531249997],[-62.1484375,16.74033203124999]]]},"properties":{"name":"Montserrat","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[57.65126953125002,-20.48486328125],[57.31767578125002,-20.42763671875001],[57.416015625,-20.18378906250001],[57.65654296875002,-19.98994140625001],[57.7919921875,-20.21259765625001],[57.65126953125002,-20.48486328125]]]},"properties":{"name":"Mauritius","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[34.95947265625003,-11.578125],[34.82656250000005,-11.575683593749972],[34.65957031250005,-11.58867187499996],[34.61855468750005,-11.620214843749991],[34.60625,-11.690039062500006],[34.3578125,-12.164746093749997],[34.542578125,-13.108691406250003],[34.54570312500002,-13.21630859375],[34.6115234375001,-13.437890625000023],[35.0138671875001,-13.64345703124998],[35.247460937499994,-13.896875],[35.37578125000002,-14.05869140625002],[35.48847656250004,-14.20107421874998],[35.69042968749997,-14.465527343750026],[35.84716796875003,-14.670898437500043],[35.8927734375001,-14.891796875000011],[35.7912109375001,-15.958691406250026],[35.75527343750005,-16.058300781249983],[35.708886718749994,-16.095800781249977],[35.5993164062501,-16.12587890624998],[35.35849609375006,-16.160546875000023],[35.242773437500006,-16.375390625],[35.16718750000004,-16.56025390625001],[35.178320312500006,-16.57333984375002],[35.22978515625002,-16.639257812500034],[35.281152343749994,-16.8078125],[35.29042968750005,-17.096972656250017],[35.27255859375006,-17.11845703124996],[35.2013671875001,-17.13105468750004],[35.124609375,-17.127246093749974],[35.06464843750004,-17.078613281250014],[35.11210937500002,-16.898535156250006],[34.93339843750002,-16.760351562500006],[34.528125,-16.319140625],[34.24609374999997,-15.829394531249974],[34.54082031250002,-15.297265625],[34.50527343750005,-14.598144531249957],[34.375,-14.4248046875],[33.63642578125004,-14.568164062499974],[33.148046875,-13.94091796875],[32.98125,-14.009375],[32.797460937500006,-13.6884765625],[32.67041015624997,-13.590429687500006],[32.96757812500002,-13.225],[32.97519531250006,-12.701367187499983],[33.51230468750006,-12.347753906249977],[33.340136718750074,-12.308300781250011],[33.25234375000005,-12.112597656250031],[33.3039062500001,-11.69082031249998],[33.23271484375002,-11.417675781250026],[33.26835937500002,-11.403906249999977],[33.379785156249994,-11.15791015625004],[33.29277343750002,-10.85234375],[33.661523437499994,-10.553125],[33.55371093749997,-10.391308593750011],[33.53759765624997,-10.351562499999986],[33.52890625,-10.234667968749974],[33.31152343750003,-10.037988281249966],[33.3371093750001,-9.954003906249994],[33.350976562499994,-9.862207031250037],[33.25,-9.759570312500003],[33.148046875,-9.603515625],[32.99599609375005,-9.622851562499946],[32.91992187500003,-9.407421875000026],[33.88886718750004,-9.670117187499983],[33.99560546875003,-9.495410156250003],[34.32089843750006,-9.731542968749977],[34.56992187500006,-10.241113281249966],[34.66708984375006,-10.792480468750028],[34.60791015624997,-11.08046875],[34.77382812500005,-11.341699218750009],[34.890625,-11.3935546875],[34.93701171874997,-11.463476562500034],[34.95947265625003,-11.578125]]]},"properties":{"name":"Malawi","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[111.38925781250006,2.415332031250031],[111.31152343749997,2.437597656250034],[111.33349609374997,2.768310546875],[111.38925781250006,2.415332031250031]]],[[[104.22158203125,2.731738281250003],[104.1291015625001,2.767236328125037],[104.18476562500004,2.871728515625009],[104.22158203125,2.731738281250003]]],[[[117.88476562499997,4.186132812500006],[117.64902343750012,4.168994140624974],[117.70800781249997,4.262402343749997],[117.88476562499997,4.186132812500006]]],[[[100.28896484375005,5.294726562499989],[100.19101562500006,5.28286132812498],[100.2455078125,5.467773437499986],[100.33886718749997,5.410058593750037],[100.28896484375005,5.294726562499989]]],[[[99.848046875,6.465722656249994],[99.9186523437501,6.358593750000011],[99.74375,6.263281249999963],[99.64628906250002,6.418359375000023],[99.848046875,6.465722656249994]]],[[[102.10107421874997,6.242236328125031],[102.34013671875002,6.172021484375023],[102.534375,5.862548828125028],[103.09707031250005,5.408447265624986],[103.41582031250007,4.85029296875004],[103.43945312499997,2.93310546875],[103.8122070312501,2.58046875],[104.21855468750002,1.722851562499997],[104.25009765625012,1.388574218750009],[104.11494140625004,1.412255859375037],[103.98144531250003,1.623632812500034],[103.99150390625002,1.454785156249997],[103.6945312500001,1.449658203125026],[103.48027343750007,1.329492187499966],[103.35683593750005,1.546142578125057],[102.72714843750012,1.855566406250034],[101.29550781250012,2.885205078125011],[101.29990234375012,3.253271484375034],[100.71542968750006,3.966210937499966],[100.79550781250012,4.023388671874983],[100.61455078125002,4.3734375],[100.34326171874997,5.984179687500031],[100.11914062499997,6.441992187500048],[100.26142578125004,6.682714843749963],[100.3454101562501,6.549902343750006],[100.75449218750012,6.460058593749991],[100.87392578125,6.24541015624996],[101.05351562500002,6.242578125],[100.98164062500004,5.771044921875045],[101.1139648437501,5.636767578125045],[101.5560546875,5.907763671875003],[101.67841796875004,5.778808593750028],[101.87363281250012,5.825292968749991],[102.10107421874997,6.242236328125031]]],[[[117.5744140625001,4.17060546875004],[117.10058593750003,4.337060546875023],[116.51474609375006,4.370800781249969],[115.86074218750005,4.348046875000037],[115.67880859375006,4.193017578124994],[115.45439453125002,3.034326171875009],[115.24697265625005,3.025927734374989],[115.117578125,2.89487304687502],[115.08076171875004,2.63422851562504],[115.1791015625,2.523193359374972],[114.78642578125002,2.250488281250014],[114.83056640625003,1.980029296874989],[114.5125,1.452001953124963],[113.90234375000003,1.434277343749997],[113.6222656250001,1.2359375],[113.00654296875004,1.433886718750003],[112.94296875000006,1.566992187500034],[112.47617187500006,1.559082031250028],[112.1857421875001,1.4390625],[112.078515625,1.143359374999974],[111.80898437500005,1.011669921874969],[111.10136718750002,1.050537109374986],[110.50576171875005,0.861962890625023],[109.65400390625004,1.614892578125023],[109.53896484375,1.89619140625004],[109.62890625000003,2.027539062499983],[109.86484375000012,1.764453125000031],[110.34921875000012,1.719726562499972],[111.22324218750012,1.395849609374991],[111.0287109375,1.557812500000026],[111.26816406250012,2.13974609375002],[111.20859375000012,2.379638671875043],[111.44384765625003,2.381542968749983],[111.5125,2.743017578124991],[112.98789062500006,3.161914062499974],[113.92392578125006,4.243212890625003],[114.0638671875,4.592675781249966],[114.65410156250007,4.037646484375045],[114.84023437500005,4.393212890625009],[114.74667968750006,4.718066406250017],[115.02675781250005,4.899707031249989],[115.10703125000006,4.390429687499974],[115.290625,4.352587890624989],[115.1400390625,4.899755859374991],[115.37490234375,4.932763671874966],[115.55449218750007,5.093554687500045],[115.41904296875012,5.413183593749963],[115.60390625,5.603417968749994],[115.74082031250012,5.533007812500045],[115.8771484375001,5.613525390625014],[116.74980468750007,6.977099609374989],[116.8498046875001,6.826708984374989],[116.78808593749997,6.606103515624994],[117.12851562500012,6.968896484375009],[117.2298828125,6.939990234374974],[117.29404296875006,6.676904296875023],[117.60966796875002,6.512646484375054],[117.69375,6.35],[117.64453124999997,6.001855468749994],[117.5011718750001,5.884667968750009],[118.00380859375,6.053320312499991],[118.11582031250006,5.8625],[117.93476562500004,5.7875],[117.97363281249997,5.70625],[118.35312500000012,5.80605468749998],[118.59482421875006,5.592089843750003],[119.22343750000007,5.412646484375031],[119.2663085937501,5.308105468750057],[119.21962890625,5.159814453125037],[118.9125,5.02290039062504],[118.26054687500007,4.988867187500034],[118.18535156250002,4.828515625000051],[118.5625,4.502148437499997],[118.54833984375003,4.379248046875006],[118.008203125,4.250244140625014],[117.6964843750001,4.342822265625045],[117.5744140625001,4.17060546875004]]],[[[117.14160156250003,7.168212890625028],[117.08066406250006,7.115283203124989],[117.06425781250007,7.26069335937504],[117.2640625,7.351660156250006],[117.26679687500004,7.220800781249991],[117.14160156250003,7.168212890625028]]]]},"properties":{"name":"Malaysia","childNum":8}},{"geometry":{"type":"Polygon","coordinates":[[[23.380664062500017,-17.640625],[24.27490234375,-17.481054687500006],[24.73291015625,-17.51777343750001],[25.001757812500017,-17.56855468750001],[25.2587890625,-17.793554687500006],[24.909082031250023,-17.821386718750006],[24.530566406250017,-18.052734375],[24.243945312500017,-18.0234375],[23.599707031250006,-18.4599609375],[23.219335937500006,-17.99970703125001],[20.97412109375,-18.31884765625],[20.9794921875,-21.9619140625],[19.977343750000017,-22.00019531250001],[19.98046875,-24.77675781250001],[19.98046875,-28.310351562500003],[19.98046875,-28.451269531250006],[19.539843750000017,-28.574609375],[19.31269531250001,-28.73330078125001],[19.24580078125001,-28.901660156250003],[19.16171875,-28.938769531250003],[18.310839843750017,-28.88623046875],[17.44794921875001,-28.69814453125001],[17.34785156250001,-28.50117187500001],[17.358691406250017,-28.26943359375001],[17.1884765625,-28.13251953125001],[17.05625,-28.031054687500003],[16.93330078125001,-28.069628906250003],[16.875292968750017,-28.1279296875],[16.841210937500023,-28.21894531250001],[16.81015625,-28.26455078125001],[16.7875,-28.39472656250001],[16.755761718750023,-28.4521484375],[16.62617187500001,-28.487890625],[16.487109375000017,-28.572851562500006],[16.447558593750017,-28.617578125],[15.719042968750017,-27.9658203125],[15.341503906250011,-27.386523437500003],[15.139062500000023,-26.50800781250001],[14.9677734375,-26.31806640625001],[14.837109375000011,-25.033203125],[14.5015625,-24.201953125],[14.462792968750023,-22.44912109375001],[13.450585937500023,-20.91669921875001],[13.168359375000023,-20.184667968750006],[12.458203125000011,-18.9267578125],[11.77587890625,-18.001757812500003],[11.733496093750006,-17.7509765625],[11.743066406250023,-17.24921875000001],[11.902539062500011,-17.2265625],[12.013964843750017,-17.168554687500006],[12.21337890625,-17.2099609375],[12.318457031250006,-17.21337890625],[12.359277343750023,-17.205859375],[12.548144531250017,-17.212695312500003],[13.179492187500017,-16.9716796875],[13.475976562500023,-17.0400390625],[14.017480468750023,-17.40888671875001],[16.1484375,-17.390234375],[18.396386718750023,-17.3994140625],[18.95527343750001,-17.803515625],[20.1943359375,-17.863671875],[20.745507812500023,-18.01972656250001],[22.32421875,-17.8375],[23.380664062500017,-17.640625]]]},"properties":{"name":"Namibia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[167.54443359375003,-22.62324218750001],[167.44375,-22.63916015624997],[167.44345703125006,-22.541406250000037],[167.54443359375003,-22.62324218750001]]],[[[168.01093750000004,-21.429980468750017],[168.1390625,-21.44521484375001],[168.12070312500012,-21.615820312500034],[167.96679687500003,-21.641601562499957],[167.81542968749997,-21.392675781249963],[167.9884765625001,-21.337890624999986],[168.01093750000004,-21.429980468750017]]],[[[167.40087890625003,-21.16064453125003],[167.07265625,-20.99726562499997],[167.03271484374997,-20.922558593750026],[167.18945312500003,-20.803515625000017],[167.05576171875012,-20.720214843750014],[167.29794921875006,-20.732519531250034],[167.40087890625003,-21.16064453125003]]],[[[164.20234375000004,-20.246093749999957],[164.4359375,-20.282226562499957],[165.191796875,-20.768847656249974],[165.66279296875004,-21.267187499999977],[166.94238281250003,-22.09013671875003],[166.97031250000012,-22.32285156250002],[166.77412109375004,-22.37617187500004],[166.4679687500001,-22.256054687499997],[164.92744140625004,-21.289843749999974],[164.16972656250007,-20.48017578125004],[164.05966796875012,-20.141503906249966],[164.20234375000004,-20.246093749999957]]]]},"properties":{"name":"New Caledonia","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[14.97900390625,22.99619140624999],[15.181835937500011,21.523388671874997],[15.607324218750023,20.954394531250003],[15.587109375000011,20.733300781249994],[15.963183593750017,20.34619140625],[15.735058593750011,19.904052734375],[15.474316406250011,16.908398437499997],[14.367968750000017,15.750146484374994],[13.4482421875,14.380664062500003],[13.505761718750023,14.134423828124994],[13.606347656250023,13.70458984375],[13.426953125000011,13.701757812499991],[13.323828125,13.670849609374997],[12.871679687500006,13.449023437500003],[12.65478515625,13.3265625],[12.463183593750017,13.09375],[10.958886718750023,13.371533203124997],[10.475878906250017,13.330224609374994],[10.229589843750006,13.281005859375],[10.184667968750006,13.270117187499991],[9.615917968750011,12.810644531249991],[9.201562500000023,12.821484375],[8.750585937500006,12.908154296874997],[8.4560546875,13.059667968749991],[8.095019531250017,13.291162109374994],[7.955761718750011,13.32275390625],[7.788671875,13.337890625],[7.056738281250006,13.000195312499997],[6.804296875,13.107666015625],[6.2998046875,13.658789062499991],[6.184277343750011,13.66367187499999],[5.838183593750017,13.765380859375],[5.491992187500017,13.872851562500003],[5.415820312500017,13.859179687500003],[5.361621093750017,13.836865234374997],[5.241894531250011,13.757226562499994],[4.664843750000017,13.733203125],[4.147558593750006,13.457714843749997],[3.947851562500006,12.775048828124994],[3.646679687500011,12.529980468749997],[3.595410156250011,11.6962890625],[2.805273437500006,12.383837890624989],[2.366015625000017,12.221923828125],[2.38916015625,11.897070312499991],[2.072949218750011,12.309375],[2.226269531250011,12.466064453125],[2.104589843750006,12.701269531249991],[1.56494140625,12.635400390624994],[0.9873046875,13.041894531249994],[0.988476562500011,13.36484375],[1.201171875,13.357519531249991],[0.6181640625,13.703417968750003],[0.42919921875,13.972119140624997],[0.382519531250011,14.245800781249997],[0.163867187500017,14.497216796874994],[0.217480468750011,14.911474609374991],[0.947460937500011,14.982128906249997],[1.300195312500023,15.272265625],[3.001074218750006,15.340966796874994],[3.06015625,15.427197265624997],[3.504296875000023,15.356347656249994],[3.5205078125,15.483105468749997],[3.842968750000011,15.701708984375003],[4.121289062500011,16.357714843750003],[4.234667968750017,16.996386718750003],[4.227636718750006,19.142773437499997],[5.836621093750011,19.479150390624994],[7.481738281250017,20.873095703125003],[11.967871093750006,23.517871093750003],[13.48125,23.18017578125],[14.215527343750011,22.619677734375003],[14.97900390625,22.99619140624999]]]},"properties":{"name":"Niger","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[7.30078125,4.418164062500026],[7.140429687500017,4.395117187500034],[7.227343750000045,4.527343749999972],[7.30078125,4.418164062500026]]],[[[6.804296875,13.107666015625],[7.056738281250006,13.00019531250004],[7.788671875,13.337890625],[7.955761718750011,13.322753906250028],[8.095019531250045,13.29116210937498],[8.750585937500034,12.908154296875026],[9.20156250000008,12.82148437500004],[9.615917968750011,12.810644531249963],[10.184667968750063,13.270117187499963],[10.229589843749977,13.281005859375043],[10.475878906250074,13.330224609375037],[10.958886718750051,13.371533203125011],[12.463183593750017,13.09375],[12.654785156250057,13.3265625],[13.426953125000068,13.701757812499963],[13.606347656250023,13.704589843750014],[13.932324218750011,13.258496093749997],[14.06396484375,13.078515625],[14.160058593750023,12.612792968749986],[14.184863281250017,12.447216796874997],[14.272851562500023,12.356494140624989],[14.518945312500051,12.298242187500023],[14.619726562500063,12.150976562500048],[14.559765625000011,11.492285156249963],[14.20234375000004,11.268164062499963],[14.143261718750068,11.248535156250043],[14.056738281250034,11.245019531250037],[13.981445312500057,11.21186523437504],[13.892089843750057,11.140087890624983],[13.699902343749983,10.873144531250048],[13.53535156250004,10.605078124999963],[13.414550781250028,10.171435546874989],[13.269921875000051,10.036181640624974],[13.198730468750028,9.563769531250003],[12.929492187500074,9.426269531249972],[12.87568359375004,9.303515625000017],[12.80654296875008,8.886621093749994],[12.7822265625,8.817871093750014],[12.651562500000011,8.667773437499989],[12.40351562500004,8.59555664062502],[12.311328125000074,8.419726562499989],[12.2333984375,8.282324218749977],[12.016015625000051,7.589746093750009],[11.809179687500006,7.345068359374991],[11.767382812500017,7.272265624999989],[11.861425781249977,7.11640625000004],[11.657519531250017,6.951562500000023],[11.580078125000057,6.88886718750004],[11.551660156250023,6.697265625],[11.153320312500057,6.437939453125011],[11.1064453125,6.457714843750054],[11.032519531250045,6.697900390625037],[10.954199218750006,6.7765625],[10.60625,7.063085937500006],[10.413183593750006,6.877734375],[10.293066406250034,6.876757812499974],[10.205468750000051,6.891601562499986],[10.185546874999972,6.91279296875004],[10.167773437500017,6.959179687499983],[10.143554687500057,6.99643554687502],[10.038867187500045,6.921386718750014],[9.874218750000068,6.803271484375017],[9.82070312500008,6.783935546874986],[9.779882812500034,6.760156250000023],[9.725585937499972,6.65],[9.659960937500017,6.531982421874986],[9.490234375,6.418652343749997],[8.997167968750006,5.917724609375],[8.715625,5.046875],[8.514843750000068,4.724707031250034],[8.23378906250008,4.907470703124972],[8.293066406250006,4.557617187500014],[7.644238281250068,4.525341796875011],[7.530761718750028,4.655175781249994],[7.284375,4.547656250000031],[7.076562500000051,4.716162109374991],[7.15468750000008,4.514404296875],[6.92324218750008,4.390673828125017],[6.767675781250006,4.724707031250034],[6.860351562500057,4.373339843750045],[6.633007812500011,4.340234375000051],[6.579980468750051,4.475976562499994],[6.554589843750023,4.34140625000002],[6.263671875,4.309423828124991],[6.270996093749972,4.432128906250028],[6.173339843749972,4.277392578125031],[5.970703125,4.338574218749983],[5.587792968750051,4.647216796874972],[5.448144531250023,4.945849609374974],[5.383300781250057,5.129003906249977],[5.475976562500023,5.153857421874989],[5.370019531250023,5.195019531250026],[5.367968750000045,5.337744140624963],[5.549707031250023,5.474218749999963],[5.385839843750034,5.401757812500037],[5.199218750000028,5.533544921874977],[5.456640624999977,5.61171875],[5.327343750000011,5.707519531249986],[5.112402343750034,5.64155273437504],[4.861035156250068,6.026318359374997],[4.431347656250011,6.348583984375026],[3.450781249999977,6.427050781250017],[3.71699218750004,6.597949218750017],[3.430175781250057,6.525],[3.335546875000063,6.396923828125011],[2.706445312500051,6.369238281249963],[2.735644531250045,6.595703125],[2.753710937499989,6.661767578124966],[2.774609374999983,6.711718750000017],[2.752929687500028,6.771630859374966],[2.731738281250045,6.852832031249989],[2.721386718750068,6.980273437500017],[2.75673828125008,7.067919921875017],[2.750488281250057,7.39506835937496],[2.765820312500068,7.422509765625051],[2.783984375000045,7.443408203125045],[2.78515625,7.476855468750017],[2.703125,8.371826171875],[2.774804687500023,9.048535156250026],[3.044921875,9.08383789062502],[3.325195312499972,9.778466796875051],[3.60205078125,10.004541015625009],[3.646582031250006,10.408984374999989],[3.771777343750017,10.417626953124966],[3.83447265625,10.607421875],[3.7568359375,10.76875],[3.71640625,11.07958984375],[3.695312499999972,11.12031250000004],[3.63886718750004,11.176855468750006],[3.487792968749972,11.395410156250037],[3.490527343750017,11.499218750000054],[3.55390625000004,11.631884765624989],[3.595410156250068,11.696289062500057],[3.664746093750068,11.762451171875028],[3.646679687500011,12.529980468749983],[3.947851562500006,12.775048828124994],[4.147558593750006,13.457714843749983],[4.664843750000045,13.733203124999974],[5.241894531250011,13.757226562499994],[5.361621093750074,13.836865234375054],[5.415820312500017,13.859179687499974],[5.491992187500074,13.872851562500003],[6.2998046875,13.658789062500006],[6.804296875,13.107666015625]]]]},"properties":{"name":"Nigeria","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-83.6419921875,10.917236328125],[-83.71293945312499,10.785888671875],[-83.91928710937499,10.7353515625],[-84.6341796875,11.045605468749997],[-84.9091796875,10.9453125],[-85.5841796875,11.189453125],[-85.7443359375,11.06210937499999],[-87.670166015625,12.965673828124991],[-87.58505859374999,13.043310546874991],[-87.42436523437499,12.921142578125],[-87.33725585937499,12.979248046875],[-87.05917968749999,12.991455078125],[-87.00932617187499,13.0078125],[-86.918212890625,13.223583984374997],[-86.87353515625,13.266503906249994],[-86.792138671875,13.27978515625],[-86.72929687499999,13.284375],[-86.710693359375,13.313378906249994],[-86.76352539062499,13.63525390625],[-86.77060546874999,13.69873046875],[-86.758984375,13.746142578125003],[-86.733642578125,13.763476562500003],[-86.61025390625,13.774853515624997],[-86.376953125,13.755664062500003],[-86.33173828125,13.770068359375003],[-86.238232421875,13.899462890625003],[-86.15122070312499,13.994580078124997],[-86.0892578125,14.037207031249991],[-86.04038085937499,14.050146484374991],[-85.9837890625,13.965673828124991],[-85.78671875,13.844433593749997],[-85.75341796875,13.85205078125],[-85.73393554687499,13.858691406250003],[-85.727734375,13.876074218749991],[-85.731201171875,13.931835937499997],[-85.68193359374999,13.982568359374994],[-85.20834960937499,14.311816406250003],[-85.059375,14.582958984374997],[-84.86044921874999,14.809765625],[-84.645947265625,14.661083984374997],[-84.53764648437499,14.633398437499991],[-83.635498046875,14.876416015624997],[-83.5365234375,14.977001953124997],[-83.4150390625,15.008056640625],[-83.15751953124999,14.993066406249994],[-83.18535156249999,14.956396484374991],[-83.21591796874999,14.932373046875],[-83.27988281249999,14.812792968750003],[-83.344384765625,14.902099609375],[-83.413720703125,14.825341796874994],[-83.29921875,14.7490234375],[-83.187744140625,14.340087890625],[-83.4123046875,13.99648437499999],[-83.567333984375,13.3203125],[-83.5109375,12.411816406249997],[-83.627197265625,12.459326171874991],[-83.59335937499999,12.713085937499997],[-83.75424804687499,12.501953125],[-83.680419921875,12.024316406249994],[-83.7671875,12.059277343749997],[-83.82890624999999,11.861035156249997],[-83.70458984375,11.824560546874991],[-83.6517578125,11.642041015624997],[-83.86787109375,11.300048828125],[-83.6419921875,10.917236328125]]]},"properties":{"name":"Nicaragua","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-169.80341796875,-19.0830078125],[-169.94833984375,-19.072851562500006],[-169.834033203125,-18.96601562500001],[-169.80341796875,-19.0830078125]]]},"properties":{"name":"Niue","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-68.205810546875,12.144580078124989],[-68.25434570312495,12.032080078124977],[-68.36923828125,12.301953124999983],[-68.205810546875,12.144580078124989]]],[[[4.226171875000034,51.38647460937503],[3.902050781250011,51.20766601562502],[3.43251953125008,51.24575195312505],[3.35009765625,51.37768554687503],[4.226171875000034,51.38647460937503]]],[[[3.94912109375008,51.73945312500001],[4.07509765625008,51.648779296875006],[3.699023437500017,51.70991210937501],[3.94912109375008,51.73945312500001]]],[[[4.886132812500023,53.07070312500005],[4.70917968750004,53.036035156249994],[4.886425781249983,53.18330078124998],[4.886132812500023,53.07070312500005]]],[[[4.226171875000034,51.38647460937503],[3.448925781250068,51.54077148437503],[3.743945312500017,51.596044921875006],[4.27412109375004,51.47163085937498],[4.004785156250051,51.595849609374966],[4.182617187500057,51.61030273437498],[3.946875,51.810546875],[4.482812500000023,52.30917968749998],[4.76875,52.941308593749966],[5.061230468750068,52.96064453125001],[5.532031250000074,53.268701171874966],[6.062207031250068,53.407080078125006],[6.816210937500045,53.44116210937503],[7.197265625000028,53.28227539062499],[7.033007812500045,52.65136718749997],[6.710742187500045,52.61787109374998],[6.748828125000074,52.464013671874994],[7.035156250000057,52.38022460937498],[6.724511718749994,52.080224609374966],[6.800390625,51.96738281249998],[5.948730468750057,51.80268554687501],[6.198828125000034,51.45],[6.129980468750034,51.14741210937501],[5.857519531250034,51.030126953125006],[6.048437500000034,50.90488281250006],[5.993945312500017,50.75043945312504],[5.693554687500011,50.774755859375006],[5.796484375000034,51.153076171875],[5.214160156250045,51.278955078124966],[5.03095703125004,51.46909179687498],[4.226171875000034,51.38647460937503]]],[[[5.325781250000063,53.38574218750003],[5.190234375000074,53.39179687500001],[5.582617187500063,53.438085937500034],[5.325781250000063,53.38574218750003]]]]},"properties":{"name":"Netherlands","childNum":6,"cp":[5.0752777,52.358465]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[5.085839843750023,60.30756835937501],[5.089062500000068,60.188769531250045],[4.95722656250004,60.44726562500006],[5.085839843750023,60.30756835937501]]],[[[4.958691406250068,61.084570312500034],[4.79902343750004,61.08271484375001],[4.861621093749989,61.19384765625],[4.958691406250068,61.084570312500034]]],[[[8.10273437500004,63.33759765625004],[7.804003906250017,63.413916015625034],[8.073535156250045,63.47080078124998],[8.10273437500004,63.33759765625004]]],[[[8.470800781250063,63.66713867187502],[8.287109375000028,63.68715820312502],[8.764648437500057,63.804638671874955],[8.78652343750008,63.703466796875034],[8.470800781250063,63.66713867187502]]],[[[11.2314453125,64.865869140625],[10.739843750000034,64.87031250000001],[11.02099609375,64.97871093749995],[11.2314453125,64.865869140625]]],[[[12.971777343750063,67.87412109375],[12.824023437500074,67.82124023437498],[13.068066406250068,68.07133789062505],[12.971777343750063,67.87412109375]]],[[[13.872851562500045,68.26533203125004],[14.096777343750034,68.218603515625],[13.229394531250051,67.995361328125],[13.300195312499994,68.16044921875007],[13.872851562500045,68.26533203125004]]],[[[15.207128906250006,68.943115234375],[15.222070312500023,68.61630859375003],[14.404687500000051,68.663232421875],[15.037792968750068,69.00053710937507],[15.207128906250006,68.943115234375]]],[[[15.760351562500006,68.56123046875001],[16.328906250000017,68.87631835937498],[16.519238281250068,68.63300781249998],[15.975292968750011,68.402490234375],[14.257519531249983,68.19077148437503],[15.412597656250028,68.61582031250003],[15.483007812500006,69.04345703125003],[16.04804687500001,69.30205078125002],[15.760351562500006,68.56123046875001]]],[[[17.503027343750034,69.59624023437502],[18.004101562500068,69.50498046874998],[17.95068359375003,69.19814453125],[17.487890625000063,69.19682617187499],[17.08251953124997,69.013671875],[16.81044921875008,69.07070312499997],[17.001757812500045,69.36191406250006],[17.36083984375003,69.38149414062497],[17.503027343750034,69.59624023437502]]],[[[29.956152343750006,69.79677734375002],[29.766210937500006,69.76752929687501],[29.835839843749994,69.90556640625005],[29.956152343750006,69.79677734375002]]],[[[20.779199218750023,70.08974609375002],[20.46425781250005,70.0765625],[20.492773437500006,70.20332031249995],[20.78603515625008,70.21953124999999],[20.779199218750023,70.08974609375002]]],[[[19.25507812500001,70.06640625000006],[19.607812500000023,70.019140625],[19.334765625000074,69.82026367187501],[18.784765625000034,69.57900390624997],[18.12988281250003,69.557861328125],[18.34931640625004,69.76787109374999],[18.67402343750004,69.78164062500002],[19.13271484375005,70.24414062500003],[19.25507812500001,70.06640625000006]]],[[[19.76748046875005,70.21669921875002],[20.005957031250034,70.07622070312502],[19.599023437499994,70.26616210937507],[19.76748046875005,70.21669921875002]]],[[[23.615332031250034,70.54931640625003],[23.15917968750003,70.28261718750005],[22.941015625000063,70.444580078125],[23.546679687500017,70.61708984374997],[23.615332031250034,70.54931640625003]]],[[[24.01757812500003,70.56738281249997],[23.716601562500074,70.561865234375],[23.778417968750063,70.74736328125005],[24.01757812500003,70.56738281249997]]],[[[23.440527343750063,70.81577148437503],[22.8291015625,70.54155273437505],[22.358691406250017,70.514794921875],[21.99453125000008,70.65712890624997],[23.440527343750063,70.81577148437503]]],[[[30.869726562500006,69.78344726562506],[30.860742187499994,69.53842773437503],[30.18017578124997,69.63583984375],[30.08730468750005,69.43286132812503],[29.38828125,69.29814453125005],[28.96582031250003,69.02197265625],[28.846289062500006,69.17690429687502],[29.33339843750005,69.47299804687503],[29.14160156250003,69.67143554687505],[27.747851562500045,70.06484375],[27.127539062500063,69.90649414062497],[26.525390625000057,69.91503906250003],[26.07246093750004,69.69155273437497],[25.748339843750017,68.99013671875],[24.94140625000003,68.59326171875006],[23.85400390625,68.80590820312503],[23.324023437500017,68.64897460937502],[22.410937500000074,68.719873046875],[21.59375,69.273583984375],[21.06611328125001,69.21411132812497],[21.065722656250017,69.04174804687503],[20.622167968750006,69.036865234375],[20.116699218750057,69.02089843750005],[20.348046875000023,68.84873046875003],[19.969824218750063,68.35639648437501],[18.303027343750045,68.55541992187497],[17.91669921875001,67.96489257812502],[17.324609375000023,68.10380859374999],[16.783593750000023,67.89501953125],[16.12744140625,67.42583007812507],[16.40351562500004,67.05498046875002],[15.422949218750006,66.48984374999998],[15.483789062500051,66.30595703124999],[14.543261718750045,66.12934570312498],[14.47968750000004,65.30146484374998],[13.650292968750023,64.58154296874997],[14.077636718750028,64.464013671875],[14.141210937500006,64.17353515624998],[13.960546875000063,64.01401367187498],[13.203515625000023,64.07509765625],[12.792773437500017,64],[12.175195312500051,63.595947265625],[11.999902343750051,63.29169921875001],[12.303515625000074,62.28559570312501],[12.155371093750006,61.720751953125045],[12.88076171875008,61.35229492187506],[12.706054687500028,61.059863281250074],[12.29414062500004,61.00268554687506],[12.588671874999989,60.450732421875045],[12.486132812500074,60.10678710937506],[11.680761718750034,59.59228515625003],[11.798144531250074,59.28989257812498],[11.64277343750004,58.92607421875002],[11.470703125000057,58.909521484375034],[11.388281250000063,59.036523437499966],[10.834472656250028,59.18393554687498],[10.595312500000063,59.764550781249966],[10.179394531250068,59.00927734375003],[9.842578125000017,58.95849609374997],[9.557226562500063,59.11269531250002],[9.65693359375004,58.97119140624997],[8.166113281250063,58.145312500000045],[7.0048828125,58.024218750000074],[6.877050781250006,58.15073242187498],[6.590527343750068,58.09731445312502],[6.659863281250068,58.26274414062499],[5.706835937500074,58.52363281250001],[5.55556640625008,58.975195312500006],[6.099023437500023,58.87026367187502],[6.363281250000028,59.00092773437501],[6.099414062500017,58.951953125000074],[5.88916015625,59.097949218750045],[5.951855468750068,59.299072265625],[6.415332031250074,59.547119140625],[5.17324218750008,59.16254882812498],[5.2421875,59.564306640625034],[5.472460937500017,59.713085937499955],[5.77216796875004,59.66093749999999],[6.216601562499989,59.818359375],[5.73046875,59.863085937500045],[6.348730468750006,60.35297851562504],[6.57363281250008,60.36059570312497],[6.526855468750057,60.152929687500034],[6.995703125,60.511962890625],[6.1533203125,60.34624023437499],[5.145800781250074,59.63881835937502],[5.205664062500006,60.087939453125045],[5.688574218749977,60.12319335937502],[5.285839843750011,60.20571289062505],[5.13710937500008,60.445605468750074],[5.648339843750051,60.68798828124997],[5.244042968750023,60.569580078125],[5.115820312500006,60.63598632812503],[5.008593750000017,61.038183593750006],[6.777832031250028,61.142431640625006],[7.038671875000063,60.952929687500045],[7.040136718750006,61.091162109375034],[7.604492187500057,61.210546875000034],[7.34658203125008,61.30058593749999],[7.442578125000011,61.43461914062502],[7.173535156250011,61.16596679687501],[6.599902343750017,61.28964843749998],[6.383496093750068,61.133886718750034],[5.451269531250034,61.10234375000002],[5.106738281250017,61.187548828125045],[5.002734375000074,61.43359375],[5.338671875000017,61.485498046874994],[4.927832031249977,61.71069335937506],[4.93007812499999,61.878320312499994],[6.01582031250004,61.7875],[6.730761718750045,61.86977539062505],[5.266894531250045,61.935595703125045],[5.143164062500063,62.159912109375],[5.908300781249977,62.41601562500003],[6.083496093750057,62.349609375],[6.580078125000057,62.407275390625045],[6.692382812500028,62.46806640624999],[6.136132812500051,62.40747070312497],[6.352929687500051,62.61113281249999],[7.653125,62.56401367187499],[7.538378906250074,62.67207031249998],[8.045507812500006,62.77124023437503],[6.734960937500006,62.72070312500003],[6.940429687500028,62.930468750000045],[7.571875,63.09951171875002],[8.100585937500028,63.090966796874966],[8.623144531250006,62.84624023437502],[8.158007812500017,63.16152343750005],[8.635546875000045,63.34233398437502],[8.360742187500023,63.498876953125034],[8.576171875000028,63.60117187499998],[9.135839843750006,63.593652343749966],[9.156054687500045,63.459326171875034],[9.696875,63.624560546875045],[10.020996093750028,63.39082031250004],[10.76015625000008,63.461279296875006],[10.725292968750068,63.625],[11.370703125000034,63.804833984374994],[11.175585937500074,63.89887695312498],[11.457617187500063,64.00297851562505],[11.306640625000028,64.04887695312499],[10.91425781250004,63.92109374999998],[10.934863281250045,63.770214843749955],[10.055078125000051,63.5126953125],[9.567285156250051,63.70615234374998],[10.565625,64.418310546875],[11.523828125000051,64.744384765625],[11.632910156250063,64.81391601562495],[11.296777343750051,64.75478515625],[11.489355468750034,64.975830078125],[12.15966796875,65.178955078125],[12.508398437499977,65.09941406250005],[12.915527343750057,65.33925781249997],[12.417578125000063,65.18408203124997],[12.133886718749977,65.27915039062498],[12.68886718750008,65.90219726562498],[13.033105468750051,65.95625],[12.783789062500063,66.10043945312506],[14.034179687500057,66.29755859374998],[13.118847656250011,66.23066406250004],[13.211425781250028,66.64082031250001],[13.959472656250028,66.79433593750002],[13.651562500000011,66.90708007812498],[14.10878906250008,67.11923828125003],[15.41572265625004,67.20244140625002],[14.441699218750045,67.27138671875005],[14.961914062500057,67.57426757812502],[15.59443359375004,67.34853515625005],[15.691503906250006,67.52138671875],[15.24873046875004,67.6021484375],[15.303906250000011,67.76528320312502],[14.854687500000068,67.66333007812506],[14.798925781250063,67.80932617187503],[15.13427734375,67.97270507812502],[15.621386718750017,67.94829101562502],[15.316015624999977,68.06875],[16.007910156250006,68.22871093750004],[16.312304687500017,67.88144531249998],[16.20380859375001,68.31674804687503],[17.552832031250063,68.42626953125006],[16.51435546875004,68.53256835937503],[18.101464843749994,69.15629882812499],[18.259765625,69.47060546875],[18.915917968750023,69.33559570312502],[18.614453125000068,69.49057617187498],[19.197265625000057,69.74785156249999],[19.722460937500017,69.78164062500002],[19.64150390625005,69.42402343750001],[20.324218750000057,69.94531249999997],[20.054492187500074,69.33266601562497],[20.486718750000023,69.54208984375],[20.739453124999983,69.52050781250003],[20.622070312500057,69.91391601562498],[21.163085937500057,69.88950195312498],[21.432910156250045,70.01318359375006],[21.974707031250034,69.83457031249998],[21.355761718750045,70.23339843749997],[22.321972656250068,70.264501953125],[22.684570312500057,70.374755859375],[23.35390625000008,69.98339843750003],[23.3291015625,70.20722656249995],[24.420019531250034,70.70200195312503],[24.263476562500017,70.82631835937497],[24.658007812500017,71.00102539062505],[25.264648437500057,70.843505859375],[25.768164062500063,70.85317382812502],[25.043847656250023,70.10903320312502],[26.66132812500004,70.93974609374999],[26.585058593750034,70.41000976562498],[26.989355468750063,70.51137695312502],[27.183691406250034,70.74404296875],[27.546484375000063,70.80400390625005],[27.23525390625008,70.94721679687498],[27.59707031250005,71.09130859375003],[28.392285156250068,70.97529296875004],[27.898046875,70.67792968750001],[28.271777343750017,70.66796875000003],[28.192968750000034,70.24858398437505],[28.83154296875003,70.86396484375001],[29.7375,70.646826171875],[30.065136718750097,70.70297851562498],[30.944140625000017,70.27441406249997],[30.262988281250074,70.12470703125004],[28.804296875000063,70.09252929687506],[29.601367187500017,69.97675781249998],[29.792089843750063,69.727880859375],[30.08828125,69.71757812500005],[30.237597656250017,69.86220703125002],[30.428320312500006,69.722265625],[30.869726562500006,69.78344726562506]]],[[[25.58632812500005,71.14208984375],[26.13378906250003,70.99580078125004],[25.582031250000057,70.960791015625],[25.31494140625,71.03413085937504],[25.58632812500005,71.14208984375]]],[[[-8.953564453124983,70.83916015625002],[-8.001367187499966,71.17768554687495],[-8.002099609374937,71.04125976562497],[-8.953564453124983,70.83916015625002]]],[[[19.219335937500006,74.39101562500002],[18.86123046875008,74.51416015624997],[19.182910156250045,74.51791992187503],[19.219335937500006,74.39101562500002]]],[[[21.60810546875004,78.59570312499997],[22.04316406250004,78.57695312500007],[22.29951171875004,78.22817382812497],[23.451953125000074,78.14946289062502],[23.11669921874997,77.99150390624999],[24.901855468750057,77.756591796875],[22.55371093750003,77.26665039062502],[22.685351562500045,77.55351562500002],[20.928125,77.45966796874998],[21.653125,77.92353515624998],[20.22792968750005,78.47783203125005],[21.60810546875004,78.59570312499997]]],[[[11.250292968750017,78.610693359375],[12.116406250000068,78.232568359375],[11.121289062500011,78.46328125],[10.558203125000063,78.90292968750003],[11.250292968750017,78.610693359375]]],[[[29.047070312500068,78.91206054687504],[29.69667968750005,78.90473632812495],[27.88906250000005,78.8521484375],[28.511132812500023,78.96733398437502],[29.047070312500068,78.91206054687504]]],[[[16.786718750000034,79.90673828125],[17.834570312499977,79.80004882812503],[17.66875,79.38593750000004],[18.39736328125008,79.60517578125001],[18.677832031250006,79.26171875000003],[19.893554687500057,79.05620117187499],[20.61103515625004,79.10664062499998],[21.388769531250034,78.74042968749998],[19.67675781250003,78.60957031249995],[16.700488281250045,76.57929687499995],[14.365820312500034,77.23447265625003],[13.995703125000034,77.50820312500002],[14.69501953125004,77.525048828125],[14.920800781250023,77.68881835937506],[17.033300781250006,77.79770507812503],[16.91406250000003,77.89799804687505],[14.089941406250063,77.77138671875],[13.680566406250051,78.028125],[14.307226562500006,78.00507812500001],[15.783886718750011,78.32705078125005],[17.00292968750003,78.36938476562497],[16.44863281250008,78.50356445312502],[16.78261718750008,78.66362304687505],[15.417382812500023,78.47324218749998],[15.384179687500023,78.77119140625001],[15.01630859375004,78.63012695312497],[14.689257812500017,78.720947265625],[14.638281250000034,78.41459960937502],[14.110449218750063,78.27089843749997],[13.150195312499989,78.2375],[11.365429687500011,78.95039062500004],[12.323437500000068,78.91425781249995],[12.083984375000028,79.26752929687498],[11.579785156250068,79.28349609375005],[11.208105468750034,79.12963867187503],[10.737597656250017,79.52016601562502],[10.804003906250045,79.79877929687504],[11.150390625,79.71699218749998],[11.702343750000011,79.82060546875005],[12.287792968750068,79.713134765625],[12.279980468749983,79.81596679687507],[13.692871093749972,79.860986328125],[13.777539062500011,79.71528320312498],[12.555371093750068,79.56948242187502],[13.333789062500017,79.57480468750006],[14.029589843750017,79.34414062500005],[14.59365234375008,79.79873046875002],[16.34375,78.97612304687502],[15.816113281250011,79.68183593750001],[16.245703125000034,80.04946289062502],[16.786718750000034,79.90673828125]]],[[[32.52597656250006,80.119140625],[31.48193359374997,80.10791015625003],[33.62929687499999,80.21743164062497],[32.52597656250006,80.119140625]]],[[[20.897851562500023,80.24995117187501],[22.289746093749983,80.04921874999997],[22.450781250000034,80.40224609375005],[23.00800781250004,80.473974609375],[23.114550781250074,80.18696289062498],[24.29755859375004,80.36040039062505],[26.86083984375,80.16000976562498],[27.19863281250008,79.90659179687506],[25.641210937500034,79.40302734374995],[23.94775390625,79.19428710937498],[22.903710937500023,79.23066406250001],[22.865527343750045,79.41186523437497],[20.861132812500017,79.39785156249997],[20.128222656250074,79.489599609375],[19.674609375000045,79.591162109375],[20.784082031250023,79.74858398437502],[18.725,79.7607421875],[18.25537109375,79.92919921875003],[18.855957031250057,80.03662109375],[17.91689453125005,80.14311523437502],[19.343359375000063,80.11640624999998],[19.733300781249994,80.47783203124999],[20.897851562500023,80.24995117187501]]]]},"properties":{"name":"Norway","childNum":27}},{"geometry":{"type":"Polygon","coordinates":[[[87.984375,27.133935546874994],[87.9931640625,27.086083984374994],[88.11103515625001,26.928466796875],[88.1572265625,26.807324218749997],[88.16152343750002,26.724804687499997],[88.11152343750001,26.58642578125],[88.05488281250001,26.430029296875],[88.02695312500003,26.39501953125],[87.9951171875,26.382373046874996],[87.28740234374999,26.360302734374997],[87.01640624999999,26.555419921875],[86.70136718750001,26.43505859375],[86.00732421875,26.649365234374997],[85.79453125000003,26.604150390624994],[85.7373046875,26.63974609375],[85.6484375,26.829003906249994],[85.56845703125003,26.83984375],[85.29296875,26.741015625],[85.19179687500002,26.766552734374997],[84.68535156249999,27.041015625],[84.65380859375,27.091699218749994],[84.65478515625,27.203662109374996],[84.64072265625003,27.249853515625],[84.61015624999999,27.298681640625],[84.48085937500002,27.348193359374996],[84.22978515624999,27.42783203125],[84.09101562500001,27.491357421874994],[83.82880859375001,27.377832031249994],[83.74697265625002,27.395947265624997],[83.55166015625002,27.456347656249996],[83.44716796875002,27.46533203125],[83.38398437500001,27.44482421875],[83.36943359374999,27.41025390625],[83.28974609375001,27.370996093749994],[82.7333984375,27.518994140624997],[82.71083984375002,27.5966796875],[82.67734375000003,27.6734375],[82.6298828125,27.687060546874996],[82.45136718750001,27.671826171874997],[82.28769531250003,27.756542968749997],[82.11191406250003,27.864941406249997],[82.03701171875002,27.900585937499997],[81.98769531250002,27.913769531249997],[81.94521484375002,27.899267578125],[81.896875,27.874462890624997],[81.85263671875003,27.867089843749994],[81.1689453125,28.335009765624996],[80.58701171875003,28.649609375],[80.51787109374999,28.665185546874994],[80.49580078125001,28.635791015624996],[80.47910156250003,28.604882812499994],[80.41855468750003,28.612011718749997],[80.32480468750003,28.66640625],[80.2265625,28.723339843749997],[80.07070312500002,28.83017578125],[80.05166015625002,28.8703125],[80.08457031250003,28.994189453124996],[80.13046875000003,29.100390625],[80.16953125000003,29.124316406249996],[80.23300781250003,29.194628906249996],[80.25595703125003,29.318017578124994],[80.2548828125,29.42333984375],[80.31689453125,29.572070312499996],[80.40185546875,29.730273437499996],[80.54902343750001,29.899804687499994],[80.81992187500003,30.119335937499997],[80.84814453125,30.13974609375],[80.90761718750002,30.171923828124996],[80.96611328124999,30.180029296875],[81.17714843750002,30.039892578125],[81.25507812500001,30.093310546874996],[81.41718750000001,30.337597656249997],[81.64189453124999,30.3875],[81.85488281250002,30.36240234375],[82.04335937500002,30.3267578125],[82.220703125,30.063867187499994],[83.15546875000001,29.612646484375],[83.58349609375,29.18359375],[83.93593750000002,29.279492187499997],[84.02197265625,29.253857421874997],[84.10136718749999,29.219970703125],[84.12783203125002,29.156298828124996],[84.17558593749999,29.036376953125],[84.22871093750001,28.911767578124994],[84.796875,28.560205078124994],[84.85507812500003,28.553613281249994],[85.06914062499999,28.609667968749996],[85.12636718750002,28.60263671875],[85.15908203125002,28.592236328124997],[85.16015625,28.571875],[85.12148437500002,28.484277343749994],[85.08857421875001,28.372265625],[85.12246093750002,28.315966796874996],[85.21210937500001,28.292626953124994],[85.41064453125,28.276025390624994],[85.67832031250003,28.27744140625],[85.75947265625001,28.220654296874997],[85.84023437500002,28.1353515625],[85.92167968749999,27.989697265624997],[85.9541015625,27.92822265625],[85.99453125000002,27.910400390625],[86.06416015625001,27.934716796874994],[86.07871093750003,28.08359375],[86.13701171874999,28.11435546875],[86.21796875000001,28.0220703125],[86.32861328125,27.959521484374996],[86.40869140625,27.928662109374997],[86.51689453124999,27.963525390624994],[86.55449218749999,28.085205078125],[86.61445312500001,28.10302734375],[86.69052734375003,28.094921875],[86.71962890625002,28.070654296875],[86.75039062500002,28.0220703125],[86.93378906250001,27.968457031249997],[87.02011718750003,27.928662109374997],[87.14140624999999,27.838330078124997],[87.29072265625001,27.821923828124994],[87.62255859375,27.815185546875],[87.86074218750002,27.886083984375],[88.10976562500002,27.87060546875],[87.984375,27.133935546874994]]]},"properties":{"name":"Nepal","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[169.17822265624997,-52.497265625],[169.12753906250006,-52.570312499999964],[169.02177734375002,-52.49541015624998],[169.17822265624997,-52.497265625]]],[[[166.22109375,-50.76152343749997],[166.2428710937501,-50.84570312499998],[165.88916015624997,-50.80771484374996],[166.10136718750002,-50.538964843750016],[166.26748046875005,-50.558593750000014],[166.22109375,-50.76152343749997]]],[[[168.14492187500005,-46.862207031249966],[168.04316406250004,-46.9326171875],[168.2409179687501,-47.070019531250026],[167.52197265624997,-47.258691406249994],[167.80078125000003,-46.90654296875002],[167.78398437500007,-46.699804687500006],[167.9557617187501,-46.69443359374998],[168.14492187500005,-46.862207031249966]]],[[[166.97949218749997,-45.17968750000003],[167.02265625000004,-45.299804687499986],[166.89267578125012,-45.24052734374999],[166.97949218749997,-45.17968750000003]]],[[[-176.17763671874997,-43.74033203124998],[-176.38173828124997,-43.86679687499998],[-176.40737304687497,-43.7609375],[-176.516552734375,-43.78476562499996],[-176.33359375000003,-44.02529296875004],[-176.51552734374997,-44.11660156249998],[-176.62934570312495,-44.036132812500014],[-176.55512695312504,-43.85195312499998],[-176.84765625000003,-43.82392578125004],[-176.56611328124995,-43.717578125000045],[-176.17763671874997,-43.74033203124998]]],[[[173.91464843750018,-40.86367187500004],[173.78085937500012,-40.921777343749966],[173.964453125,-40.71298828124998],[173.91464843750018,-40.86367187500004]]],[[[173.11533203125006,-41.27929687499997],[173.94716796875005,-40.92412109375],[173.79785156250003,-41.271972656249986],[173.99941406250005,-40.99326171874996],[174.30253906249996,-41.019531249999986],[174.03857421875003,-41.24189453125],[174.37011718750009,-41.1037109375],[174.06933593750009,-41.42949218750002],[174.08369140625015,-41.67080078124998],[174.2831054687501,-41.740625],[173.22119140624997,-42.976562499999986],[172.62402343749997,-43.27246093749996],[172.73476562500005,-43.35478515625003],[172.52666015625002,-43.464746093749966],[172.69345703125006,-43.444335937499986],[172.80703125000005,-43.620996093749994],[173.07324218750003,-43.676171874999966],[173.065625,-43.87460937499998],[172.50273437500002,-43.84365234374998],[172.48037109375,-43.726660156250034],[172.29658203125004,-43.867871093750026],[172.035546875,-43.70175781250002],[172.17978515625006,-43.895996093749986],[171.24072265624997,-44.26416015625003],[171.14628906250002,-44.9123046875],[170.99902343750003,-44.91142578124999],[171.11328125000003,-45.03925781250001],[170.7005859375,-45.68427734374997],[170.77626953125005,-45.870898437499974],[170.4191406250001,-45.94101562499996],[169.68662109375006,-46.55166015625002],[169.34228515625003,-46.62050781250001],[168.38212890625007,-46.60537109374995],[168.1891601562501,-46.362207031249966],[167.8419921875001,-46.366210937499986],[167.539453125,-46.14853515624996],[167.36894531250007,-46.24150390624999],[166.73154296875006,-46.19785156249998],[166.91669921875004,-45.95722656249998],[166.64990234374997,-46.04169921875004],[166.71796875000004,-45.88935546875001],[166.49316406249997,-45.9638671875],[166.48828124999997,-45.83183593750002],[167.0033203125,-45.71210937500004],[166.79765625000002,-45.64560546874999],[166.99082031250012,-45.531738281249986],[166.73398437500012,-45.54355468749999],[166.74306640625,-45.46845703124997],[166.91992187499997,-45.40791015624998],[166.86923828125006,-45.31123046875],[167.15566406250005,-45.410937499999974],[167.23007812500012,-45.29033203125],[167.02587890624997,-45.12363281249998],[167.25947265625004,-45.08222656249997],[167.19453125000004,-44.963476562500034],[167.41074218750006,-44.82792968750003],[167.4662109375,-44.958300781250045],[167.48496093750006,-44.77138671874998],[167.78701171875,-44.59501953125002],[167.90898437500002,-44.66474609375001],[167.85654296875012,-44.50068359374998],[168.45742187500005,-44.030566406250045],[169.17890625000004,-43.9130859375],[169.16953125000006,-43.77705078125],[169.83388671875,-43.53701171875004],[170.24023437499997,-43.163867187500045],[170.39609375000012,-43.18222656249996],[170.30283203125012,-43.10761718750004],[170.61181640625003,-43.091796875000014],[170.5236328125001,-43.00898437500001],[170.6654296875,-42.961230468749974],[170.73525390625005,-43.029785156249986],[170.96992187500004,-42.71835937499996],[171.01171875000003,-42.88505859374999],[171.027734375,-42.696093750000045],[171.31337890625005,-42.460156250000026],[171.48623046875,-41.7947265625],[171.94804687500002,-41.53867187499996],[172.13945312500002,-40.947265625000014],[172.640625,-40.51826171875001],[172.94365234375007,-40.51875],[172.73261718750004,-40.54375],[172.70439453125002,-40.6677734375],[172.988671875,-40.84824218749999],[173.11533203125006,-41.27929687499997]]],[[[175.54316406250015,-36.279296874999986],[175.34619140624997,-36.217773437499986],[175.3895507812501,-36.07773437499996],[175.54316406250015,-36.279296874999986]]],[[[173.26943359375,-34.93476562499998],[173.44785156250012,-34.844335937500034],[173.47265625000003,-34.94697265624998],[174.10400390625003,-35.14287109375002],[174.1431640625,-35.3],[174.32031250000003,-35.246679687500034],[174.58066406250018,-35.78554687500004],[174.39580078124996,-35.79736328124996],[174.8021484375,-36.30947265625001],[174.72246093750007,-36.84121093749998],[175.29951171875004,-36.99326171874996],[175.38535156250012,-37.206933593749966],[175.54248046874997,-37.2013671875],[175.46083984375005,-36.475683593750034],[175.77216796875004,-36.73515625],[176.10839843749997,-37.64511718749998],[177.27402343750012,-37.993457031249974],[178.0091796875,-37.55488281249998],[178.53623046875006,-37.69208984375004],[178.26767578125006,-38.551171875],[177.976171875,-38.72226562500005],[177.90878906250012,-39.23955078125],[177.52294921875003,-39.07382812499999],[177.07675781250012,-39.22177734375002],[176.93925781249996,-39.55527343750002],[177.10986328125009,-39.673144531250045],[176.8421875000001,-40.15781250000002],[175.98291015625003,-41.21328125000002],[175.30976562499998,-41.610644531249974],[175.16562500000012,-41.41738281249995],[174.88134765624997,-41.42402343749997],[174.8656250000001,-41.223046874999966],[174.63535156250012,-41.28945312499999],[175.1625,-40.62158203125],[175.25410156250004,-40.28935546875],[175.1559570312501,-40.11494140625],[175.00927734375009,-39.95214843749996],[173.93437500000013,-39.50908203125002],[173.76367187499997,-39.31875],[173.84433593750006,-39.13935546875001],[174.39843749999997,-38.96259765624998],[174.59736328124998,-38.78505859374995],[174.80166015625005,-37.895507812500014],[174.92802734375002,-37.80449218750003],[174.58583984374994,-37.09775390625002],[174.73427734375,-37.21523437499998],[174.92890625000004,-37.084765625000045],[174.78203125000013,-36.94375],[174.47558593750009,-36.94189453124997],[174.1888671875001,-36.492285156250034],[174.4015625000001,-36.60195312499999],[174.39277343750004,-36.24003906249999],[174.26787109375002,-36.16308593750003],[174.25371093749996,-36.24912109374998],[174.03642578125013,-36.12246093750001],[173.91445312499994,-35.908691406249986],[173.91728515625002,-36.01816406249999],[174.16640624999994,-36.327636718749986],[174.05468749999991,-36.35976562500004],[173.41220703125012,-35.542578125],[173.62617187500004,-35.31914062499996],[173.3763671875001,-35.50009765624996],[173.31396484375003,-35.44335937499996],[173.11669921874997,-35.205273437500026],[173.190625,-35.01621093749998],[172.70595703125005,-34.45517578124998],[173.04394531249997,-34.429101562499994],[172.96376953125,-34.53515625000003],[173.26943359375,-34.93476562499998]]]]},"properties":{"name":"New Zealand","childNum":9}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[58.722070312499994,20.21875],[58.640917968750074,20.210693359375057],[58.64121093750006,20.33735351562501],[58.884375,20.680566406250023],[58.95078125000006,20.516162109375017],[58.722070312499994,20.21875]]],[[[56.38798828125002,24.97919921875004],[56.640625,24.4703125],[57.12304687500003,23.980712890625],[58.773046875,23.517187499999977],[59.42939453125004,22.660839843749955],[59.82324218749997,22.50898437500004],[59.8,22.21992187500001],[59.37148437500005,21.498828125000017],[58.89570312500004,21.11279296874997],[58.47421875000006,20.406884765624966],[58.20898437500003,20.423974609374994],[58.245019531249994,20.599218749999977],[58.16943359375003,20.58950195312505],[57.86181640624997,20.24414062500003],[57.71416015625002,19.678417968749983],[57.81162109375006,19.01708984374997],[56.825976562500074,18.753515625],[56.3834960937501,17.98798828125001],[55.479101562500006,17.84326171875003],[55.25537109375003,17.58564453125004],[55.275195312500074,17.320898437500006],[55.06416015625004,17.038916015625034],[54.06816406250002,17.005517578124966],[53.60986328124997,16.75996093750004],[53.08564453125004,16.648388671874955],[51.977636718750006,18.996142578125074],[54.97734375000002,19.995947265625006],[55.64101562499999,22.001855468749994],[55.185839843750074,22.7041015625],[55.1999023437501,23.034765625000034],[55.53164062499999,23.81904296875001],[55.4684570312501,23.94111328125001],[55.98515625000002,24.063378906249966],[55.92861328125005,24.215136718750074],[55.76083984375006,24.24267578125],[55.795703125000074,24.868115234374955],[56.00058593750006,24.953222656249977],[56.06386718750005,24.73876953125],[56.38798828125002,24.97919921875004]]],[[[56.29785156250003,25.650683593750045],[56.144628906250006,25.690527343750006],[56.16748046875003,26.047460937499977],[56.08046875,26.06264648437505],[56.41308593749997,26.351171875000034],[56.29785156250003,25.650683593750045]]]]},"properties":{"name":"Oman","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[73.08961802927895,36.86435907947333],[73.08203125000107,36.43949943991182],[72.31128647748268,35.77290936638241],[73.13410859949555,34.82510160558277],[73.19895048106557,33.88770931468204],[74.00809389139292,33.25375789331485],[73.98984375,33.22119140625],[74.30361328125002,32.991796875],[74.30546875000002,32.810449218749994],[74.35458984375,32.768701171874994],[74.58828125000002,32.753222656249996],[74.632421875,32.770898437499994],[74.66328125000001,32.757666015625],[74.64335937500002,32.607714843749996],[74.68574218750001,32.493798828124994],[74.78886718750002,32.4578125],[74.9873046875,32.462207031249996],[75.33349609375,32.279199218749994],[75.25410156250001,32.14033203125],[75.13876953125,32.104785156249996],[75.07148437500001,32.08935546875],[74.73945312500001,31.948828125],[74.6357421875,31.88974609375],[74.55556640625002,31.818554687499997],[74.5259765625,31.76513671875],[74.50996093750001,31.712939453124996],[74.58183593750002,31.52392578125],[74.59394531250001,31.465380859374996],[74.53496093750002,31.261376953124994],[74.51767578125,31.185595703124996],[74.6103515625,31.112841796874996],[74.62578125000002,31.06875],[74.6328125,31.03466796875],[74.509765625,30.959667968749997],[74.38037109375,30.893408203125],[74.33935546875,30.8935546875],[74.00898437500001,30.519677734374994],[73.89931640625002,30.435351562499996],[73.88271484375002,30.3521484375],[73.92460937500002,30.28164062499999],[73.93339843750002,30.222070312499994],[73.88652343750002,30.162011718749994],[73.8091796875,30.093359375],[73.38164062500002,29.934375],[72.9033203125,29.028759765624997],[72.34189453125,28.751904296874997],[72.2919921875,28.697265625],[72.128515625,28.346337890624994],[71.94804687500002,28.177294921874996],[71.88886718750001,28.0474609375],[71.87031250000001,27.9625],[71.54296875,27.869873046875],[71.18476562500001,27.831640625],[70.87490234375002,27.714453125],[70.79794921875,27.709619140624994],[70.69160156250001,27.768994140624997],[70.62910156250001,27.937451171874997],[70.40371093750002,28.025048828124994],[70.24433593750001,27.934130859374996],[70.1939453125,27.894873046875],[70.14453125,27.849023437499994],[70.0498046875,27.694726562499994],[69.89628906250002,27.4736328125],[69.56796875,27.174609375],[69.47001953125002,26.804443359375],[70.11464843750002,26.548046875],[70.14921875000002,26.347558593749994],[70.1001953125,25.910058593749994],[70.2646484375,25.70654296875],[70.3251953125,25.685742187499997],[70.44853515625002,25.681347656249997],[70.505859375,25.685302734375],[70.56953125000001,25.705957031249994],[70.6484375,25.666943359374997],[70.65205078125001,25.422900390625003],[70.87773437500002,25.06298828125],[70.95087890625001,24.8916015625],[71.02070312500001,24.75766601562499],[71.0478515625,24.687744140625],[71.00234375000002,24.65390625],[70.97636718750002,24.61875],[70.96982421875,24.571875],[71.04531250000002,24.429980468750003],[71.04404296875,24.400097656249997],[70.98281250000002,24.361035156249997],[70.928125,24.362353515625003],[70.88623046875,24.34375],[70.80507812500002,24.261962890625],[70.76728515625001,24.245410156250003],[70.71630859375,24.237988281249997],[70.65947265625002,24.24609375],[70.57929687500001,24.279052734375],[70.55585937500001,24.331103515625003],[70.5650390625,24.385791015625003],[70.54677734375002,24.41831054687499],[70.2890625,24.35629882812499],[70.0982421875,24.2875],[69.80517578125,24.165234375],[69.71621093750002,24.172607421875],[69.63417968750002,24.22519531249999],[69.5591796875,24.273095703124994],[69.44345703125,24.275390625],[69.23505859375001,24.268261718749997],[69.11953125000002,24.26865234374999],[69.05156250000002,24.286328125],[68.98457031250001,24.273095703124994],[68.90078125000002,24.292431640624997],[68.86347656250001,24.266503906249994],[68.82832031250001,24.26401367187499],[68.78115234375002,24.313720703125],[68.75898437500001,24.30722656249999],[68.73964843750002,24.2919921875],[68.728125,24.265625],[68.72412109375,23.96469726562499],[68.48867187500002,23.967236328124997],[68.38125,23.950878906249997],[68.28251953125002,23.927978515625],[68.1650390625,23.857324218749994],[68.11552734375002,23.753369140624997],[67.8599609375,23.90268554687499],[67.66845703125,23.810986328124997],[67.309375,24.1748046875],[67.171484375,24.756103515625],[66.70302734375002,24.8609375],[66.69863281250002,25.226318359375],[66.32421875,25.601806640625],[66.13115234375002,25.49326171874999],[66.46767578125002,25.4453125],[64.77666015625002,25.307324218749997],[64.65898437500002,25.18408203125],[64.059375,25.40292968749999],[63.556640625,25.353173828124994],[63.49140625000001,25.210839843749994],[61.56689453125,25.186328125],[61.587890625,25.20234375],[61.61542968750001,25.2861328125],[61.64013671875,25.584619140624994],[61.67138671875,25.6923828125],[61.66181640625001,25.751269531250003],[61.66865234375001,25.768994140624997],[61.73769531250002,25.82109375],[61.75439453125,25.84335937499999],[61.78076171875,25.995849609375],[61.80996093750002,26.165283203125],[61.842382812500006,26.225927734375],[62.1259765625,26.368994140625],[62.239355468750006,26.35703125],[62.31230468750002,26.490869140624994],[63.168066406250006,26.665576171874996],[63.186132812500006,26.837597656249997],[63.24160156250002,26.86474609375],[63.25039062500002,26.879248046875],[63.24208984375002,27.077685546874996],[63.30517578125,27.124560546874996],[63.30156250000002,27.15146484375],[63.25625,27.207910156249994],[63.19609375000002,27.243945312499996],[63.16679687500002,27.252490234374996],[62.75273437500002,27.265625],[62.782324218750006,27.800537109375],[62.7625,28.202050781249994],[61.88984375000001,28.546533203124994],[61.15214843750002,29.542724609375],[61.0341796875,29.663427734375],[60.843359375,29.858691406249996],[61.22441406250002,29.749414062499994],[62.0009765625,29.530419921874994],[62.4765625,29.408349609374994],[63.56757812500001,29.497998046874997],[64.09873046875,29.391943359375],[64.39375,29.544335937499994],[65.09550781250002,29.559472656249994],[66.23125,29.86572265625],[66.346875,30.802783203124996],[66.82929687500001,31.263671875],[67.45283203125001,31.234619140625],[67.737890625,31.343945312499997],[67.57822265625,31.506494140624994],[68.16103515625002,31.802978515625],[68.59765625,31.802978515625],[68.86894531250002,31.634228515624997],[69.279296875,31.936816406249996],[69.24140625000001,32.433544921875],[69.5015625,33.020068359374996],[70.26113281250002,33.289013671875],[69.8896484375,34.007275390625],[70.65400390625001,33.952294921874994],[71.05156250000002,34.049707031249994],[71.095703125,34.369433593749996],[70.965625,34.53037109375],[71.62050781250002,35.183007812499994],[71.57197265625001,35.546826171875],[71.18505859375,36.04208984375],[71.23291015625,36.12177734375],[72.24980468750002,36.734716796875],[73.08961802927895,36.86435907947333]]]},"properties":{"name":"Pakistan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-81.60327148437497,7.332812499999989],[-81.85205078125003,7.453320312500026],[-81.812158203125,7.59238281250002],[-81.72875976562494,7.62119140625002],[-81.60327148437497,7.332812499999989]]],[[[-78.89833984375002,8.27426757812502],[-78.960595703125,8.435839843749989],[-78.88325195312495,8.460253906249989],[-78.89833984375002,8.27426757812502]]],[[[-77.37421874999993,8.65830078125002],[-77.47851562499994,8.498437500000037],[-77.19599609374995,7.972460937500003],[-77.53828124999995,7.56625976562502],[-77.76191406249995,7.698828125000034],[-77.90117187499999,7.229345703125048],[-78.42158203124995,8.060986328125011],[-78.28735351562497,8.091796874999972],[-78.14189453125002,8.386083984374977],[-77.76054687499993,8.133251953124983],[-78.09946289062498,8.496972656250009],[-78.22304687500002,8.396630859374994],[-78.39921874999993,8.505664062500003],[-78.40986328124998,8.35532226562502],[-78.51406249999997,8.628173828125],[-79.08637695312495,8.997167968750034],[-79.50708007812494,8.97006835937502],[-79.68745117187493,8.850976562500009],[-79.81591796875,8.639208984375031],[-79.75043945312498,8.595507812500017],[-80.458984375,8.213867187499972],[-80.45810546875,8.077050781249994],[-80.01123046875,7.500048828125031],[-80.66669921874995,7.225683593750006],[-80.90122070312503,7.277148437500017],[-81.06386718749994,7.89975585937502],[-81.26840820312495,7.625488281250014],[-81.50415039062503,7.721191406249972],[-81.72763671875,8.137548828124977],[-82.15986328124995,8.19482421875],[-82.23544921874998,8.311035156250057],[-82.67954101562503,8.321972656249969],[-82.86611328124994,8.246337890625014],[-82.87934570312498,8.07065429687502],[-83.02734375,8.337744140624991],[-82.86162109374999,8.453515625000037],[-82.84477539062493,8.489355468749963],[-82.85571289062494,8.635302734375031],[-82.91704101562502,8.740332031250034],[-82.88198242187497,8.805322265625037],[-82.72783203125002,8.916064453125031],[-82.78305664062498,8.990283203124974],[-82.88134765625003,9.055859375000011],[-82.94033203124997,9.060107421874989],[-82.93984374999994,9.449169921875026],[-82.92504882812494,9.469042968749989],[-82.88896484374999,9.481005859375017],[-82.86015625,9.511474609375014],[-82.84399414062497,9.570800781250014],[-82.801025390625,9.591796875000028],[-82.64409179687502,9.505859375000028],[-82.56357421875003,9.576660156249972],[-82.50034179687503,9.523242187500017],[-82.37080078124993,9.428564453124991],[-82.33974609375,9.209179687499983],[-82.18813476562502,9.191748046874977],[-82.24418945312499,9.031494140625014],[-82.07788085937503,8.93486328124996],[-81.78022460937495,8.957226562499983],[-81.89448242187495,9.140429687500003],[-81.35478515624996,8.78056640624996],[-80.83867187499999,8.887207031250014],[-80.12709960937497,9.20991210937504],[-79.57729492187497,9.597851562500026],[-78.08276367187494,9.236279296874997],[-77.37421874999993,8.65830078125002]]]]},"properties":{"name":"Panama","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[-73.137353515625,-6.4658203125],[-73.75810546874999,-6.90576171875],[-73.79301757812499,-7.135058593750003],[-73.758203125,-7.172753906250009],[-73.72041015625,-7.309277343750011],[-73.964306640625,-7.37890625],[-73.95849609375,-7.506640625],[-73.98173828124999,-7.535742187500006],[-74.00205078124999,-7.556054687500009],[-73.98173828124999,-7.585058593750006],[-73.946875,-7.611230468750009],[-73.89462890624999,-7.65478515625],[-73.82207031249999,-7.738964843750011],[-73.76689453124999,-7.753515625],[-73.72041015625,-7.782519531250003],[-73.73203125,-7.875390625],[-73.54912109374999,-8.345800781250006],[-73.39814453125,-8.458984375],[-73.36040039062499,-8.479296875],[-73.351708984375,-8.51416015625],[-73.35673828124999,-8.566992187500006],[-73.30244140625,-8.654003906250011],[-73.203125,-8.719335937500006],[-73.0705078125,-8.8828125],[-72.9740234375,-8.9931640625],[-72.970361328125,-9.1201171875],[-73.08984375,-9.265722656250006],[-73.209423828125,-9.411425781250003],[-72.379052734375,-9.51015625],[-72.181591796875,-10.003710937500003],[-71.33940429687499,-9.988574218750003],[-71.11528320312499,-9.852441406250009],[-71.041748046875,-9.81875],[-70.6369140625,-9.478222656250011],[-70.60791015625,-9.463671875],[-70.54111328124999,-9.4375],[-70.57016601562499,-9.48984375],[-70.592236328125,-9.54345703125],[-70.59916992187499,-9.620507812500009],[-70.642333984375,-11.01025390625],[-70.59653320312499,-10.976855468750003],[-70.53325195312499,-10.946875],[-70.45087890625,-11.024804687500009],[-70.39228515625,-11.05859375],[-70.3419921875,-11.066699218750003],[-70.29038085937499,-11.064257812500003],[-70.22006835937499,-11.04765625],[-70.06630859375,-10.982421875],[-69.9603515625,-10.929882812500011],[-69.839794921875,-10.933398437500003],[-69.6740234375,-10.9541015625],[-69.57861328125,-10.951757812500006],[-68.68525390625,-12.501953125],[-68.97861328124999,-12.880078125000011],[-69.07412109375,-13.682812500000011],[-68.87089843749999,-14.169726562500003],[-69.35947265624999,-14.7953125],[-69.37470703125,-14.962988281250006],[-69.17246093749999,-15.236621093750003],[-69.4208984375,-15.640625],[-69.21757812499999,-16.14912109375001],[-68.8427734375,-16.337890625],[-69.03291015625,-16.47597656250001],[-69.020703125,-16.6421875],[-69.62485351562499,-17.2001953125],[-69.645703125,-17.24853515625],[-69.521923828125,-17.388964843750003],[-69.510986328125,-17.46035156250001],[-69.51108398437499,-17.5048828125],[-69.5109375,-17.50605468750001],[-69.58642578125,-17.5732421875],[-69.684765625,-17.64980468750001],[-69.85209960937499,-17.70380859375001],[-69.80258789062499,-17.990234375],[-69.92636718749999,-18.2060546875],[-70.41826171874999,-18.34560546875001],[-71.33696289062499,-17.68251953125001],[-71.5322265625,-17.29433593750001],[-72.46767578125,-16.708105468750006],[-73.727685546875,-16.20166015625],[-75.104248046875,-15.411914062500003],[-75.533642578125,-14.89921875],[-75.93388671874999,-14.63359375],[-76.37646484375,-13.863085937500003],[-76.259228515625,-13.802832031250006],[-76.2236328125,-13.371191406250006],[-76.83212890624999,-12.348730468750006],[-77.152734375,-12.060351562500003],[-77.2203125,-11.663378906250003],[-77.633203125,-11.287792968750011],[-77.736083984375,-10.83671875],[-78.18559570312499,-10.089062500000011],[-78.76225585937499,-8.616992187500003],[-79.37724609374999,-7.835546875],[-79.99497070312499,-6.768945312500009],[-81.142041015625,-6.056738281250006],[-81.164306640625,-5.875292968750003],[-80.9306640625,-5.8408203125],[-80.88193359374999,-5.635058593750003],[-81.33662109375,-4.66953125],[-81.283203125,-4.322265625],[-80.503662109375,-3.49609375],[-80.324658203125,-3.387890625000011],[-80.24375,-3.576757812500006],[-80.19414062499999,-3.905859375],[-80.23051757812499,-3.924023437500011],[-80.26689453124999,-3.948828125],[-80.30327148437499,-4.005078125000011],[-80.43720703125,-3.978613281250006],[-80.49013671875,-4.010058593750003],[-80.510009765625,-4.069531250000011],[-80.49345703124999,-4.119140625],[-80.4884765625,-4.16552734375],[-80.453759765625,-4.205175781250006],[-80.35288085937499,-4.20849609375],[-80.44384765625,-4.335839843750009],[-80.4884765625,-4.393652343750006],[-80.47856445312499,-4.430078125],[-80.42416992187499,-4.46142578125],[-80.38349609375,-4.463671875],[-80.293359375,-4.416796875],[-80.1974609375,-4.31103515625],[-80.13955078125,-4.296093750000011],[-80.06352539062499,-4.327539062500009],[-79.962890625,-4.390332031250011],[-79.8451171875,-4.445898437500006],[-79.797265625,-4.476367187500003],[-79.71098632812499,-4.467578125],[-79.63852539062499,-4.454882812500003],[-79.57768554687499,-4.500585937500006],[-79.51616210937499,-4.539160156250006],[-79.501904296875,-4.670605468750011],[-79.45576171875,-4.766210937500006],[-79.3994140625,-4.840039062500011],[-79.33095703125,-4.927832031250006],[-79.26811523437499,-4.957617187500006],[-79.186669921875,-4.958203125000011],[-79.07626953124999,-4.990625],[-79.03330078124999,-4.969140625],[-78.995263671875,-4.908007812500003],[-78.97539062499999,-4.873242187500011],[-78.919189453125,-4.8583984375],[-78.92578125,-4.770703125000011],[-78.9076171875,-4.714453125],[-78.8615234375,-4.6650390625],[-78.68603515625,-4.562402343750009],[-78.64799804687499,-4.248144531250006],[-78.345361328125,-3.397363281250009],[-78.240380859375,-3.472558593750009],[-77.860595703125,-2.981640625000011],[-76.6791015625,-2.562597656250006],[-76.089794921875,-2.133105468750003],[-75.570556640625,-1.53125],[-75.42041015625,-0.962207031250003],[-75.40805664062499,-0.92431640625],[-75.24960937499999,-0.951855468750011],[-75.259375,-0.590136718750003],[-75.42470703125,-0.408886718750011],[-75.49106445312499,-0.248339843750003],[-75.56059570312499,-0.200097656250009],[-75.63203125,-0.157617187500009],[-75.62626953124999,-0.122851562500003],[-75.340478515625,-0.1421875],[-75.13837890625,-0.050488281250011],[-74.8017578125,-0.200097656250009],[-74.78046875,-0.24453125],[-74.75537109375,-0.298632812500003],[-74.691650390625,-0.335253906250003],[-74.616357421875,-0.370019531250009],[-74.555078125,-0.429882812500011],[-74.5138671875,-0.470117187500009],[-74.46518554687499,-0.517675781250006],[-74.41787109375,-0.580664062500006],[-74.334423828125,-0.850878906250003],[-74.28388671875,-0.927832031250006],[-74.24638671874999,-0.970605468750009],[-74.05439453125,-1.028613281250003],[-73.98681640625,-1.09814453125],[-73.926953125,-1.125195312500011],[-73.86318359375,-1.196679687500009],[-73.664306640625,-1.248828125],[-73.4962890625,-1.693066406250011],[-73.19697265625,-1.830273437500011],[-73.1544921875,-2.278222656250009],[-72.9896484375,-2.339746093750009],[-72.94111328125,-2.39404296875],[-72.21845703125,-2.400488281250006],[-71.98427734375,-2.3265625],[-71.93247070312499,-2.288671875],[-71.86728515624999,-2.227734375000011],[-71.802734375,-2.166308593750003],[-71.75253906249999,-2.152734375],[-71.55947265625,-2.22421875],[-71.39697265625,-2.334082031250006],[-71.19638671874999,-2.313085937500006],[-71.11337890624999,-2.245410156250003],[-71.027294921875,-2.225781250000011],[-70.96855468749999,-2.206835937500003],[-70.70537109374999,-2.341992187500011],[-70.64799804687499,-2.40576171875],[-70.57587890625,-2.418261718750003],[-70.29462890625,-2.552539062500003],[-70.24443359374999,-2.606542968750006],[-70.16474609375,-2.639843750000011],[-70.095849609375,-2.658203125],[-70.735107421875,-3.781542968750003],[-70.5296875,-3.866406250000011],[-70.48583984375,-3.869335937500011],[-70.42109375,-3.849609375],[-70.37919921874999,-3.81875],[-70.339501953125,-3.814355468750009],[-70.2984375,-3.84423828125],[-70.24028320312499,-3.882714843750009],[-70.16752929687499,-4.050195312500009],[-70.0171875,-4.162011718750009],[-69.96591796874999,-4.2359375],[-69.97202148437499,-4.301171875],[-70.00395507812499,-4.327246093750006],[-70.05332031249999,-4.333105468750006],[-70.12880859375,-4.28662109375],[-70.23916015625,-4.301171875],[-70.31689453125,-4.246972656250009],[-70.34365234375,-4.193652343750003],[-70.40463867187499,-4.150097656250011],[-70.5306640625,-4.167578125],[-70.72158203125,-4.158886718750011],[-70.79951171875,-4.17333984375],[-70.97368164062499,-4.350488281250009],[-71.8447265625,-4.50439453125],[-72.256787109375,-4.748925781250009],[-72.35283203124999,-4.786035156250009],[-72.468994140625,-4.901269531250009],[-72.608349609375,-5.009570312500003],[-72.69873046875,-5.0671875],[-72.83193359375,-5.09375],[-72.88706054687499,-5.122753906250011],[-72.9798828125,-5.634863281250006],[-73.16289062499999,-5.933398437500003],[-73.209375,-6.028710937500009],[-73.235546875,-6.0984375],[-73.137353515625,-6.4658203125]]]},"properties":{"name":"Peru","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[120.250390625,5.256591796875043],[119.82148437500004,5.06953125000004],[120.1652343750001,5.332421875000037],[120.250390625,5.256591796875043]]],[[[121.159375,6.075634765625011],[121.41103515625005,5.939843749999966],[121.29443359374997,5.869970703125034],[120.8763671875,5.95263671875],[121.159375,6.075634765625011]]],[[[122.09287109375012,6.428320312500006],[121.95917968750004,6.415820312500045],[121.83203125000003,6.664062499999986],[122.0583007812501,6.740722656249972],[122.32353515625002,6.602246093750011],[122.09287109375012,6.428320312500006]]],[[[122.93710937500006,7.409130859374983],[122.80468750000003,7.315966796875017],[122.82216796875,7.428466796875014],[122.93710937500006,7.409130859374983]]],[[[117.07988281250007,7.883398437499977],[117.02832031249997,7.807519531249966],[116.96953125000007,7.894921875],[116.9935546875,8.050537109375014],[117.07705078125,8.069140624999974],[117.07988281250007,7.883398437499977]]],[[[117.35527343750002,8.21464843749996],[117.28701171875,8.191015625000034],[117.28085937500006,8.314990234374974],[117.35527343750002,8.21464843749996]]],[[[124.80664062500003,9.142626953125003],[124.66582031250002,9.132324218750043],[124.65332031250003,9.225830078125],[124.80664062500003,9.142626953125003]]],[[[123.69765625000005,9.237304687500028],[123.61445312500004,9.103320312499989],[123.49345703125002,9.192089843750054],[123.69765625000005,9.237304687500028]]],[[[126.00595703125006,9.320947265625009],[126.19335937499997,9.276708984374963],[126.30458984375,8.952050781249994],[126.13955078125005,8.59565429687504],[126.36533203125012,8.483886718750014],[126.45869140625004,8.20283203125004],[126.43535156250002,7.832812499999974],[126.57011718750002,7.677246093749986],[126.58154296875003,7.247753906249969],[126.1920898437501,6.852539062500014],[126.18935546875,6.309667968749991],[125.82441406250004,7.333300781249989],[125.68925781250007,7.263037109374977],[125.38066406250007,6.689941406250014],[125.58847656250012,6.465771484374997],[125.66796874999997,5.97866210937498],[125.34648437500002,5.598974609374977],[125.23154296875006,6.069531250000011],[124.92734375000006,5.875341796874977],[124.21279296875,6.233251953124977],[124.078125,6.404443359375037],[123.98525390625,6.993701171875003],[124.20664062500006,7.396435546874983],[123.66582031250002,7.817773437500023],[123.49306640625,7.80791015624996],[123.39091796875007,7.407519531250017],[123.09667968749997,7.700439453125],[122.8429687500001,7.529296875000043],[122.79179687500002,7.72246093749996],[122.61621093749997,7.763134765624983],[122.14248046875,6.949658203124997],[121.96425781250005,6.96821289062504],[121.92460937500002,7.199511718750003],[122.24335937500004,7.945117187500031],[122.91113281250003,8.156445312499997],[123.05058593750002,8.433935546875048],[123.43457031249997,8.70332031250004],[123.84921875000006,8.432714843749977],[123.79941406250006,8.049121093749989],[124.19765625,8.229541015624974],[124.40488281250006,8.599853515625014],[124.7311523437501,8.562988281250043],[124.86894531250002,8.972265625000034],[125.141015625,8.86875],[125.20966796875004,9.027148437500017],[125.49873046875004,9.014746093749977],[125.47128906250006,9.756787109374983],[126.00595703125006,9.320947265625009]]],[[[126.059375,9.766210937500034],[125.99121093750003,9.838525390625023],[126.07382812500006,10.059228515625051],[126.1725585937501,9.79995117187498],[126.059375,9.766210937500034]]],[[[124.59384765625006,9.787207031249963],[124.1224609375,9.599316406249969],[123.93564453125012,9.623974609375011],[123.81718750000002,9.817382812499986],[124.17285156250003,10.135205078124983],[124.33574218750002,10.159912109375043],[124.57714843749997,10.026708984374991],[124.59384765625006,9.787207031249963]]],[[[125.69023437500007,9.914453125000037],[125.49482421875004,10.118701171875003],[125.66679687500002,10.440136718750026],[125.69023437500007,9.914453125000037]]],[[[119.91621093750004,10.485986328125037],[119.79316406250004,10.455273437499997],[119.85205078124997,10.64013671875],[120.00839843750012,10.570117187500031],[119.91621093750004,10.485986328125037]]],[[[122.64951171875012,10.472705078125003],[122.53837890625002,10.424951171875037],[122.5375,10.607568359375023],[122.70126953125006,10.740625],[122.64951171875012,10.472705078125003]]],[[[123.13085937500003,9.064111328124994],[122.99472656250006,9.058837890624986],[122.8666015625,9.319824218750043],[122.5625,9.482812500000037],[122.39951171875006,9.823046874999989],[122.47148437500007,9.961523437500034],[122.85556640625006,10.0869140625],[122.81699218750012,10.503808593750023],[122.98330078125,10.886621093750037],[123.25664062500007,10.99394531249996],[123.51064453125005,10.923046875],[123.5675781250001,10.780761718750057],[123.16201171875,9.864257812500028],[123.1498046875,9.606152343750026],[123.32050781250004,9.27294921875],[123.13085937500003,9.064111328124994]]],[[[123.37031250000004,9.449609375000023],[123.38623046874997,9.967089843750017],[124.03886718750002,11.273535156249991],[124.00498046875012,10.40009765625004],[123.70048828125007,10.128320312500009],[123.37031250000004,9.449609375000023]]],[[[123.75703125000004,11.28330078125002],[123.815625,11.15073242187502],[123.73671875,11.151464843749991],[123.75703125000004,11.28330078125002]]],[[[117.31113281250012,8.439599609375051],[117.21855468750007,8.367285156249963],[117.34990234375002,8.713574218749997],[119.22382812500004,10.477294921875043],[119.30566406250003,10.9736328125],[119.55332031250012,11.31352539062496],[119.52666015625002,10.953173828125003],[119.68691406250005,10.500341796875034],[119.36933593750004,10.327294921875037],[119.19150390625012,10.061083984374989],[118.78212890625005,9.91611328125002],[118.4349609375,9.256005859375009],[117.31113281250012,8.439599609375051]]],[[[119.86142578125006,11.52534179687504],[119.83066406250012,11.375683593750011],[119.72998046874997,11.431933593750017],[119.86142578125006,11.52534179687504]]],[[[124.574609375,11.343066406250031],[124.92998046875002,11.372851562499974],[125.02656250000004,11.21171875],[125.01318359374997,10.785693359374989],[125.26845703125005,10.307714843750048],[125.14257812499997,10.189453125000028],[124.9875,10.36757812499998],[125.02656250000004,10.033105468749966],[124.78076171874997,10.16806640625002],[124.78671875000012,10.781396484375009],[124.66269531250006,10.961962890625017],[124.44550781250004,10.923583984375014],[124.33066406250012,11.535205078125003],[124.574609375,11.343066406250031]]],[[[124.60839843750003,11.492187500000043],[124.48349609375006,11.485839843749986],[124.36035156250003,11.665917968749994],[124.5109375000001,11.687109375000048],[124.60839843750003,11.492187500000043]]],[[[122.49619140625006,11.615087890625034],[122.83808593750004,11.595654296874983],[122.89453125000003,11.44130859374998],[123.15830078125012,11.53554687499999],[123.11953125,11.286816406250026],[122.8029296875001,10.99003906249996],[122.76992187500005,10.823828125000034],[121.95400390625,10.444384765625003],[122.10351562499997,11.64291992187502],[121.91601562499997,11.854345703125006],[122.02919921875005,11.895410156250023],[122.49619140625006,11.615087890625034]]],[[[120.03876953125004,11.703320312499969],[119.94492187500006,11.690722656249989],[119.86093750000006,11.953955078124963],[120.03593750000002,11.917236328125028],[120.03876953125004,11.703320312499969]]],[[[120.1,12.167675781249983],[120.22822265625004,12.219824218750034],[120.31455078125012,12.012402343749969],[120.01054687500002,12.008251953125011],[119.88574218749997,12.299853515625003],[120.1,12.167675781249983]]],[[[122.65449218750004,12.309033203125011],[122.42294921875006,12.455078125],[122.60361328125006,12.49160156249998],[122.65449218750004,12.309033203125011]]],[[[125.23955078125002,12.527880859375003],[125.32021484375,12.321826171875031],[125.53564453125003,12.191406250000028],[125.49179687500006,11.594335937499977],[125.57353515625002,11.238232421874997],[125.73564453125002,11.049609375000017],[125.23339843749997,11.145068359375017],[125.03427734375012,11.341259765625026],[124.91699218750003,11.558398437500031],[124.99501953125,11.764941406250003],[124.445703125,12.152783203124969],[124.29472656250007,12.569335937500014],[125.23955078125002,12.527880859375003]]],[[[123.71660156250007,12.287353515625028],[124.04033203125002,11.966796875],[124.04550781250012,11.752441406250028],[123.47373046875006,12.21665039062502],[123.15781250000012,11.925634765624963],[123.23642578125012,12.583496093750057],[123.71660156250007,12.287353515625028]]],[[[122.09404296875002,12.354882812500023],[122.01396484375002,12.105615234375037],[121.9232421875,12.331298828125014],[122.00156250000006,12.598535156250009],[122.14501953124997,12.652636718750017],[122.09404296875002,12.354882812500023]]],[[[123.77539062499997,12.453906250000031],[123.77910156250002,12.366259765625031],[123.62148437500005,12.67490234375002],[123.77539062499997,12.453906250000031]]],[[[123.28183593750006,12.85341796874998],[123.36718750000003,12.70083007812498],[122.95751953124997,13.107177734374986],[123.28183593750006,12.85341796874998]]],[[[120.70439453125002,13.479492187499986],[121.20273437500006,13.432324218749969],[121.52275390625007,13.131201171874991],[121.540625,12.63818359375],[121.39433593750002,12.300585937499974],[121.23671875000005,12.218798828125003],[120.92216796875002,12.51162109374998],[120.65136718749997,13.169140625],[120.33847656250012,13.412353515624986],[120.40126953125,13.517041015624997],[120.70439453125002,13.479492187499986]]],[[[121.91484375000002,13.540332031250031],[122.11455078125002,13.463183593750031],[122.00488281249997,13.204980468750009],[121.82919921875006,13.328613281249972],[121.91484375000002,13.540332031250031]]],[[[124.35361328125006,13.632226562500009],[124.17539062500012,13.531542968750017],[124.03886718750002,13.663134765625003],[124.22490234375007,14.077587890624969],[124.41718750000004,13.871044921874997],[124.35361328125006,13.632226562500009]]],[[[122.03349609375002,15.005029296875009],[121.93300781250005,14.656054687500045],[121.83984374999997,15.038134765625003],[122.03349609375002,15.005029296875009]]],[[[121.10156249999997,18.615283203125017],[121.84560546875,18.29541015625003],[122.03847656250005,18.32792968749999],[122.14667968750004,18.486572265625],[122.26552734375005,18.458837890625034],[122.15234374999997,17.664404296875006],[122.51914062500012,17.124853515625034],[122.13515625000005,16.18481445312503],[121.59531250000012,15.933251953125023],[121.60703125000006,15.669824218749994],[121.39228515625004,15.324414062499969],[121.69541015625006,14.7373046875],[121.62792968749997,14.581152343749977],[121.76660156249997,14.16806640625002],[122.21171875000002,13.930175781250057],[122.2875,13.996191406250006],[122.19970703125003,14.148046875000034],[122.6271484375001,14.317529296875009],[122.93417968750012,14.18808593750002],[123.101953125,13.750244140624986],[123.29697265625012,13.836425781250043],[123.32031249999997,14.061669921875023],[123.81572265625002,13.837109375000011],[123.80625000000012,13.721728515625045],[123.54960937500007,13.645751953125014],[123.81923828125,13.269482421875011],[123.78515625000003,13.110546875000054],[124.14277343750004,13.035791015625009],[124.0597656250001,12.567089843749997],[123.87783203125005,12.689697265625014],[123.94853515625007,12.916406250000023],[123.31093750000005,13.044091796875009],[123.16328125000004,13.44174804687502],[122.59521484374997,13.90761718749998],[122.46796875000004,13.886718749999986],[122.66787109375,13.395361328124991],[122.59990234375002,13.194140625000031],[122.37656250000012,13.520605468750006],[121.77792968750006,13.93764648437498],[121.50107421875006,13.8421875],[121.344140625,13.649121093749997],[121.09550781250007,13.679492187500045],[120.84072265625,13.884716796875026],[120.637109375,13.804492187500031],[120.61679687500006,14.188037109375003],[120.9220703125001,14.493115234374983],[120.94130859375,14.645068359375031],[120.58369140625004,14.88125],[120.58867187500002,14.483105468749983],[120.43876953125002,14.453369140624972],[120.25078125000002,14.793310546875034],[120.08212890625012,14.851074218749986],[119.77255859375012,16.25512695312503],[119.83076171875004,16.326562500000023],[120.15976562500012,16.047656250000045],[120.36875,16.109570312499955],[120.35839843749997,17.63818359375],[120.59970703125012,18.507861328125074],[121.10156249999997,18.615283203125017]]],[[[121.92167968750007,18.89472656250001],[121.82519531250003,18.842724609374983],[121.94335937500003,19.010449218749955],[121.92167968750007,18.89472656250001]]],[[[121.52089843750005,19.361962890624994],[121.53125,19.271337890625006],[121.37460937500006,19.356298828124977],[121.52089843750005,19.361962890624994]]]]},"properties":{"name":"Philippines","childNum":37}},{"geometry":{"type":"Polygon","coordinates":[[[134.5954101562501,7.382031249999969],[134.51572265625012,7.525781250000037],[134.65117187500002,7.712109374999983],[134.5954101562501,7.382031249999969]]]},"properties":{"name":"Palau","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[153.53613281249997,-11.476171874999949],[153.75986328125006,-11.586328125],[153.55371093749997,-11.630566406249969],[153.28681640625004,-11.516992187500009],[153.20361328124997,-11.32412109374998],[153.53613281249997,-11.476171874999949]]],[[[154.28076171874997,-11.36142578125002],[154.12119140625006,-11.425683593749966],[154.02343750000003,-11.347949218750031],[154.28076171874997,-11.36142578125002]]],[[[150.89873046875002,-10.565332031250023],[150.88466796875,-10.643457031250037],[150.78574218750006,-10.603417968749966],[150.89873046875002,-10.565332031250023]]],[[[151.08095703125,-10.020117187499963],[151.29648437500012,-9.956738281250026],[151.230859375,-10.194726562500009],[150.95917968750004,-10.092578124999989],[150.77607421875004,-9.70908203125002],[151.08095703125,-10.020117187499963]]],[[[150.52841796875006,-9.34658203124998],[150.78867187500006,-9.417968749999957],[150.89404296875003,-9.667480468749986],[150.43623046875004,-9.624609374999949],[150.5084960937501,-9.536132812499957],[150.43730468750007,-9.359960937500034],[150.52841796875006,-9.34658203124998]]],[[[150.3454101562501,-9.493847656249955],[150.10976562500005,-9.361914062499991],[150.20830078125002,-9.206347656250003],[150.32011718750007,-9.264160156249972],[150.3454101562501,-9.493847656249955]]],[[[152.63095703125012,-8.959375],[152.95292968750007,-9.07011718749996],[152.96689453125006,-9.208984375000014],[152.51513671874997,-9.009863281250034],[152.63095703125012,-8.959375]]],[[[151.10683593750005,-8.733496093749949],[151.12412109375012,-8.804882812500011],[151.00498046875006,-8.523828124999952],[151.117578125,-8.41884765624998],[151.10683593750005,-8.733496093749949]]],[[[143.58681640625005,-8.481738281250003],[143.321875,-8.367578125],[143.5814453125,-8.390917968749974],[143.58681640625005,-8.481738281250003]]],[[[148.02578125,-5.826367187500011],[147.78105468750007,-5.627246093749946],[147.7946289062501,-5.492382812500011],[148.05478515625006,-5.61152343750004],[148.02578125,-5.826367187500011]]],[[[155.95761718750006,-6.686816406249989],[155.71933593750012,-6.862792968749957],[155.34404296875007,-6.721679687499986],[155.20214843750003,-6.3076171875],[154.75927734375003,-5.931347656249997],[154.72929687500002,-5.444433593750006],[155.09384765625006,-5.620214843750034],[155.46699218750004,-6.145117187500034],[155.82255859375002,-6.38046875000002],[155.95761718750006,-6.686816406249989]]],[[[147.17626953124997,-5.431933593749946],[147.00585937499997,-5.30703125],[147.1310546875001,-5.190820312500037],[147.17626953124997,-5.431933593749946]]],[[[154.64726562500002,-5.43271484375002],[154.54003906250003,-5.11083984375],[154.63261718750007,-5.013867187499955],[154.72714843750006,-5.218066406249989],[154.64726562500002,-5.43271484375002]]],[[[146.01933593750007,-4.726171874999963],[145.88359375000007,-4.66748046875],[145.9958007812501,-4.539257812499983],[146.01933593750007,-4.726171874999963]]],[[[151.915625,-4.296777343749966],[152.11718749999997,-4.212207031249974],[152.40566406250005,-4.340722656249952],[152.35117187500006,-4.82216796874998],[151.98369140625007,-5.07441406250004],[152.14296875,-5.357031249999963],[152.07705078125,-5.458300781249989],[151.86542968750004,-5.564843750000023],[151.51513671874997,-5.552343749999963],[151.22929687500002,-5.919921874999986],[150.47353515625,-6.263378906249969],[149.65253906250004,-6.290429687499966],[149.38232421874997,-6.078125],[149.0990234375,-6.116992187499989],[148.33720703125007,-5.669433593750014],[148.43203125,-5.471777343749991],[149.35888671875003,-5.583984375000014],[149.8314453125,-5.524121093749997],[149.96279296875,-5.447753906249972],[150.0900390625001,-5.011816406249977],[150.1703125,-5.070605468749974],[150.0724609375001,-5.309570312499986],[150.18310546874997,-5.523632812499983],[150.90029296875005,-5.447167968750037],[151.32656250000005,-4.96035156249998],[151.67119140625007,-4.88330078125],[151.59306640625007,-4.200781249999949],[151.915625,-4.296777343749966]]],[[[152.67060546875004,-3.13339843750002],[152.64619140625004,-3.221191406249957],[152.54326171875002,-3.095605468749952],[152.63876953125012,-3.042773437500031],[152.67060546875004,-3.13339843750002]]],[[[140.97617187500012,-9.11875],[140.97519531250006,-6.90537109375002],[140.86230468749997,-6.740039062499989],[140.975,-6.346093750000023],[140.97353515625,-2.803417968750026],[140.97343750000007,-2.609765625],[142.90517578125,-3.32070312499998],[143.50898437500004,-3.431152343750014],[144.06640625000003,-3.80517578125],[144.4777343750001,-3.82529296875002],[145.08779296875,-4.349121093749972],[145.33457031250012,-4.385253906249972],[145.7669921875,-4.823046874999989],[145.74521484375012,-5.402441406249977],[147.56669921875002,-6.056933593750003],[147.80205078125002,-6.31523437499996],[147.84550781250007,-6.662402343749989],[147.11914062499997,-6.721679687499986],[146.95361328124997,-6.834082031249963],[147.19003906250012,-7.378125],[148.12675781250007,-8.103613281249963],[148.246875,-8.554296875000034],[148.45117187499997,-8.694531250000011],[148.58310546875006,-9.051757812499957],[149.19833984375006,-9.03125],[149.26318359374997,-9.497851562499974],[150.01103515625007,-9.688183593750026],[149.76123046874997,-9.805859375000011],[149.87441406250005,-10.012988281250031],[150.84951171875,-10.236035156249997],[150.44609375000007,-10.30732421875004],[150.6471679687501,-10.517968749999966],[150.31992187500012,-10.654882812499963],[150.0167968750001,-10.577148437500028],[149.75410156250004,-10.353027343750028],[147.76865234375012,-10.070117187500031],[147.01718750000006,-9.38789062500004],[146.96376953125,-9.059570312499943],[146.63085937499997,-8.951171874999972],[146.03320312499997,-8.076367187500011],[144.97382812500004,-7.802148437500009],[144.86425781249997,-7.631542968749983],[144.50986328125006,-7.567382812499972],[144.14287109375007,-7.757226562500009],[143.65488281250012,-7.460351562500009],[143.94228515625005,-7.944238281250009],[143.8333984375,-8.029101562499974],[143.51816406250006,-8.000683593749955],[143.61376953125003,-8.200390624999969],[142.52412109375004,-8.32167968749998],[142.34746093750002,-8.167480468750014],[142.20683593750002,-8.195800781250014],[142.47480468750004,-8.369433593750031],[142.79794921875006,-8.345019531250031],[143.11181640624997,-8.474511718750037],[143.37724609375007,-8.762207031250028],[143.36621093750003,-8.961035156250034],[142.6471679687501,-9.327832031249969],[142.22958984375012,-9.169921874999957],[141.13320312500005,-9.221289062500034],[140.97617187500012,-9.11875]]],[[[152.96582031249997,-4.756347656249986],[152.89169921875006,-4.832421875000023],[152.73994140625004,-4.635839843750034],[152.66816406250004,-4.131835937500028],[152.27939453125006,-3.582421875],[151.06679687500005,-2.829003906249994],[150.74609374999997,-2.73886718750002],[150.8253906250001,-2.572949218749969],[152.03291015625004,-3.25136718749998],[153.01679687500004,-4.105664062500026],[153.1325195312501,-4.352441406250037],[152.96582031249997,-4.756347656249986]]],[[[150.43662109375012,-2.66181640625004],[150.16572265625004,-2.660253906249991],[149.96162109375004,-2.473828125000026],[150.22714843750006,-2.384179687499966],[150.42949218750007,-2.47041015625004],[150.43662109375012,-2.66181640625004]]],[[[147.06757812500004,-1.96015625],[147.43808593750012,-2.05898437499998],[147.20634765625007,-2.181933593749974],[146.54648437500012,-2.20859375],[146.65625,-1.97402343749998],[147.06757812500004,-1.96015625]]],[[[149.76542968750007,-1.553027343750017],[149.54589843749997,-1.471679687499957],[149.58095703125005,-1.353222656249983],[149.76542968750007,-1.553027343750017]]]]},"properties":{"name":"Papua New Guinea","childNum":21}},{"geometry":{"type":"Polygon","coordinates":[[[23.484667968750017,53.939794921875],[23.915429687500023,52.770263671875],[23.175097656250017,52.28662109375],[23.652441406250006,52.040380859375],[23.605273437500017,51.517919921875],[23.664453125000023,51.31005859375],[24.095800781250006,50.87275390625],[23.9970703125,50.809375],[24.089941406250006,50.53046875],[23.97265625,50.410058593749994],[23.711718750000017,50.37734375],[23.03632812500001,49.899072265624994],[22.706152343750006,49.606201171875],[22.6494140625,49.539013671875],[22.66064453125,49.483691406249996],[22.71992187500001,49.353808593749996],[22.732421875,49.295166015625],[22.705664062500006,49.171191406249996],[22.847070312500023,49.08125],[22.538671875,49.072705078125],[22.473046875000023,49.081298828125],[22.020117187500006,49.209521484374996],[21.6396484375,49.411962890625],[21.079394531250017,49.418261718749996],[20.868457031250017,49.314697265625],[20.36298828125001,49.38525390625],[20.0576171875,49.181298828124994],[19.756640625000017,49.204394531249996],[19.77392578125,49.37216796875],[19.44160156250001,49.597705078124996],[19.1494140625,49.4],[18.83222656250001,49.510791015624996],[18.562402343750023,49.879345703125],[18.0283203125,50.03525390625],[17.874804687500017,49.972265625],[17.627050781250006,50.11640625],[17.702246093750006,50.307177734374996],[17.41523437500001,50.254785156249994],[16.88007812500001,50.427050781249996],[16.989648437500023,50.2369140625],[16.63916015625,50.1021484375],[16.210351562500023,50.423730468749994],[16.419726562500017,50.573632812499994],[16.2822265625,50.655615234375],[16.007226562500023,50.611621093749996],[14.99375,51.01435546875],[14.98291015625,50.886572265625],[14.895800781250017,50.861376953124996],[14.809375,50.858984375],[14.814257812500017,50.871630859374996],[14.91748046875,51.008740234375],[14.9638671875,51.095117187499994],[14.935546875,51.435351562499996],[14.905957031250011,51.463330078125],[14.724707031250006,51.523876953125],[14.7109375,51.544921875],[14.738671875000023,51.6271484375],[14.601660156250006,51.832373046875],[14.752539062500006,52.081835937499996],[14.679882812500011,52.25],[14.615625,52.277636718749996],[14.573925781250011,52.31416015625],[14.554589843750023,52.359667968749996],[14.569726562500023,52.431103515625],[14.619433593750017,52.528515625],[14.514062500000023,52.64560546875],[14.253710937500017,52.782519531249996],[14.128613281250011,52.878222656249996],[14.138867187500011,52.932861328125],[14.293164062500011,53.0267578125],[14.368554687500023,53.10556640625],[14.410937500000017,53.199023437499996],[14.412304687500011,53.216748046875],[14.41455078125,53.283496093749996],[14.258886718750006,53.729638671875],[14.58349609375,53.63935546875],[14.558398437500017,53.823193359375],[14.21142578125,53.950341796875],[16.186328125000017,54.290380859375],[16.55976562500001,54.55380859375],[18.32343750000001,54.838183593749996],[18.75927734375,54.6845703125],[18.43623046875001,54.7447265625],[18.83642578125,54.369580078125],[19.604394531250023,54.4591796875],[20.20820312500001,54.420751953125],[22.16845703125,54.35986328125],[22.731835937500023,54.35009765625],[22.766210937500006,54.356787109375],[22.82373046875,54.395800781249996],[22.893945312500023,54.39052734375],[22.97675781250001,54.366357421875],[23.015527343750023,54.34833984375],[23.04218750000001,54.30419921875],[23.0875,54.299462890625],[23.170312500000023,54.2814453125],[23.282324218750006,54.24033203125],[23.3701171875,54.200488281249996],[23.45361328125,54.14345703125],[23.484667968750017,53.939794921875]]]},"properties":{"name":"Poland","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-65.42558593749999,18.105615234374994],[-65.57221679687493,18.137304687499977],[-65.29487304687501,18.133349609375045],[-65.42558593749999,18.105615234374994]]],[[[-66.12939453125003,18.444921875000034],[-65.62880859375,18.381396484375045],[-65.62084960937497,18.242333984374966],[-65.97080078124995,17.974365234375],[-67.196875,17.994189453125045],[-67.2640625,18.364599609375006],[-67.15864257812501,18.499218749999983],[-66.12939453125003,18.444921875000034]]]]},"properties":{"name":"Puerto Rico","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[130.52695312500012,42.535400390625],[130.68730468750007,42.30253906249999],[130.2357421875,42.183203125000034],[129.75634765624997,41.712255859375006],[129.70869140625004,40.857324218749994],[129.34111328125002,40.72631835937506],[128.51123046874997,40.130224609375006],[127.56816406250002,39.78198242187503],[127.39453125000003,39.207910156249966],[127.78613281250003,39.084130859374966],[128.37460937500012,38.6234375],[128.03896484375,38.30854492187498],[127.09033203125003,38.28388671875001],[126.63388671875012,37.78183593750006],[126.36992187500007,37.87836914062501],[126.11669921875003,37.74291992187503],[125.76914062500006,37.98535156250003],[125.35781250000005,37.72480468749998],[125.31074218750004,37.843505859375],[124.98876953124997,37.93144531249999],[125.2067382812501,38.08154296875],[124.69091796874997,38.12919921875002],[125.06738281250003,38.556738281250006],[125.55449218750002,38.68623046875001],[125.16884765625,38.80551757812506],[125.40966796875003,39.28837890625002],[125.36083984375003,39.52661132812497],[124.77529296875,39.75805664062506],[124.63828125000006,39.61508789062506],[124.36210937500002,40.004052734374994],[124.8893554687501,40.459814453125006],[125.98906250000002,40.904638671875034],[126.74306640625,41.724853515625],[126.95478515625004,41.76948242187501],[127.17968750000003,41.531347656250006],[128.14941406249997,41.38774414062496],[128.28925781250004,41.60742187500006],[128.04521484375007,41.9875],[128.92343750000006,42.038232421874966],[129.3136718750001,42.41357421874997],[129.69785156250012,42.448144531249994],[129.89824218750002,42.998144531250034],[130.24033203125006,42.891796874999955],[130.24667968750012,42.744824218749955],[130.52695312500012,42.535400390625]]]},"properties":{"name":"Dem. Rep. Korea","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-17.190869140624926,32.86860351562498],[-16.693261718749966,32.75800781250001],[-17.018261718749926,32.66279296874998],[-17.226025390624983,32.76684570312503],[-17.190869140624926,32.86860351562498]]],[[[-25.64897460937499,37.840917968750006],[-25.18193359374996,37.837890625],[-25.19072265624999,37.764355468749955],[-25.73447265624992,37.76289062500001],[-25.845898437499983,37.89404296875],[-25.64897460937499,37.840917968750006]]],[[[-28.14726562499996,38.45268554687502],[-28.064794921875034,38.412744140624966],[-28.454492187500023,38.40864257812504],[-28.54882812499997,38.51855468750003],[-28.14726562499996,38.45268554687502]]],[[[-28.641308593749983,38.525],[-28.842041015625,38.5984375],[-28.69775390625,38.638476562500045],[-28.641308593749983,38.525]]],[[[-27.07524414062496,38.643457031249994],[-27.38593750000001,38.765820312499955],[-27.127001953125017,38.78984375],[-27.07524414062496,38.643457031249994]]],[[[-31.137109374999937,39.40693359375001],[-31.282958984375,39.39409179687496],[-31.260839843750034,39.49677734375001],[-31.137109374999937,39.40693359375001]]],[[[-7.406152343749937,37.17944335937497],[-7.834130859374994,37.005712890625034],[-8.597656249999943,37.12133789062506],[-8.997802734375028,37.03227539062502],[-8.814160156249983,37.43081054687502],[-8.881103515624943,38.44667968750005],[-8.668310546874949,38.42431640625003],[-8.798876953124989,38.518164062500034],[-9.213281249999937,38.44809570312498],[-9.250390624999966,38.65673828125003],[-9.021484374999943,38.746875],[-8.79160156249992,39.07817382812502],[-9.13579101562496,38.74277343749998],[-9.35673828124996,38.697900390624994],[-9.479736328124972,38.79877929687501],[-9.374755859374972,39.338281249999966],[-8.837841796874926,40.11567382812498],[-8.684619140624989,40.75253906250006],[-8.755419921874932,41.69838867187502],[-8.887597656249937,41.76459960937501],[-8.777148437500017,41.941064453124994],[-8.266064453124983,42.13740234375001],[-8.152490234374937,41.81196289062498],[-7.40361328124996,41.833691406249955],[-7.147119140625023,41.98115234374998],[-6.61826171874992,41.9423828125],[-6.542187499999955,41.672509765624994],[-6.2125,41.53203125],[-6.928466796874972,41.009130859375006],[-6.8101562499999,40.343115234375034],[-7.032617187499966,40.16791992187498],[-6.896093749999949,40.02182617187506],[-6.975390624999932,39.79838867187502],[-7.117675781249972,39.681689453125045],[-7.53569335937496,39.66157226562501],[-6.997949218749994,39.05644531250002],[-7.343017578124943,38.45742187500002],[-7.106396484374983,38.181005859375006],[-6.957568359374932,38.18789062499999],[-7.44394531249992,37.72827148437497],[-7.406152343749937,37.17944335937497]]]]},"properties":{"name":"Portugal","childNum":7,"cp":[-8.7440694,39.9251454]}},{"geometry":{"type":"Polygon","coordinates":[[[-58.15976562499999,-20.164648437500006],[-58.13779296874999,-20.2373046875],[-58.12460937499999,-20.29345703125],[-58.09150390625,-20.33320312500001],[-58.05844726562499,-20.38613281250001],[-58.025390625,-20.415820312500003],[-58.00224609374999,-20.465429687500006],[-57.97905273437499,-20.657324218750006],[-57.91513671874999,-20.69033203125001],[-57.830224609374994,-20.99794921875001],[-57.94267578124999,-21.79833984375],[-57.95590820312499,-22.109179687500003],[-56.77519531249999,-22.261328125],[-56.44780273437499,-22.076171875],[-56.39487304687499,-22.09267578125001],[-56.35185546874999,-22.17861328125001],[-56.246044921875,-22.2646484375],[-56.18984375,-22.28115234375001],[-55.99140625,-22.28115234375001],[-55.84916992187499,-22.3076171875],[-55.75327148437499,-22.41015625],[-55.74663085937499,-22.5126953125],[-55.61767578125,-22.671484375],[-55.53828125,-23.58095703125001],[-55.518457031249994,-23.627246093750003],[-55.458886718749994,-23.68671875000001],[-55.4423828125,-23.792578125],[-55.4423828125,-23.865332031250006],[-55.415917968749994,-23.95136718750001],[-55.36630859374999,-23.991015625],[-55.28691406249999,-24.004296875],[-55.1943359375,-24.01748046875001],[-55.08188476562499,-23.99765625],[-54.982666015625,-23.97451171875001],[-54.62548828125,-23.8125],[-54.44023437499999,-23.90175781250001],[-54.37080078125,-23.97119140625],[-54.24179687499999,-24.047265625],[-54.281005859375,-24.30605468750001],[-54.43623046875,-25.12128906250001],[-54.47314453125,-25.22021484375],[-54.610546875,-25.432714843750006],[-54.615869140624994,-25.57607421875001],[-54.63193359374999,-26.00576171875001],[-54.677734375,-26.30878906250001],[-54.934472656249994,-26.70253906250001],[-55.1359375,-26.93115234375],[-55.426660156249994,-27.00927734375],[-55.450634765625,-27.068359375],[-55.496728515624994,-27.115332031250006],[-55.564892578125,-27.15],[-55.59726562499999,-27.207617187500006],[-55.59379882812499,-27.2880859375],[-55.63291015624999,-27.35712890625001],[-55.71464843749999,-27.41484375],[-55.789990234375,-27.41640625],[-55.95146484374999,-27.32568359375],[-56.1640625,-27.32148437500001],[-56.437158203124994,-27.553808593750006],[-58.16826171874999,-27.2734375],[-58.60483398437499,-27.31435546875001],[-58.641748046874994,-27.19609375],[-58.618603515625,-27.132128906250003],[-58.222070312499994,-26.65],[-58.18149414062499,-26.307421875],[-57.943115234375,-26.05292968750001],[-57.563134765624994,-25.473730468750006],[-57.821679687499994,-25.13642578125001],[-59.187255859375,-24.562304687500003],[-59.892480468749994,-24.093554687500003],[-60.83984375,-23.85810546875001],[-61.084716796875,-23.65644531250001],[-61.79853515625,-23.18203125],[-62.21416015624999,-22.612402343750006],[-62.372509765625,-22.43916015625001],[-62.54155273437499,-22.349609375],[-62.6259765625,-22.29042968750001],[-62.62568359375,-22.261523437500003],[-62.65097656249999,-22.233691406250003],[-62.27666015624999,-21.066015625],[-62.276318359375,-20.5625],[-61.7568359375,-19.6453125],[-60.00737304687499,-19.29755859375001],[-59.09052734375,-19.286230468750006],[-58.18017578125,-19.81787109375],[-58.15976562499999,-20.164648437500006]]]},"properties":{"name":"Paraguay","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[34.34833984375004,31.292919921874955],[34.2453125000001,31.208300781250045],[34.2125,31.292285156250017],[34.198144531249994,31.322607421875063],[34.47734375000002,31.584863281250023],[34.52412109375004,31.541650390624994],[34.5255859375001,31.52563476562503],[34.34833984375004,31.292919921874955]]],[[[34.88046875,31.3681640625],[34.950976562500074,31.60229492187503],[35.20371093750006,31.75],[35.1271484375001,31.816748046875006],[35.05322265625003,31.83793945312496],[34.983007812500006,31.816796875000023],[34.9611328125001,31.823339843750006],[34.95380859375004,31.84125976562504],[34.98974609374997,31.913281249999955],[34.955957031249994,32.1609375],[35.01054687500002,32.33818359375002],[35.06503906250006,32.46044921875006],[35.19326171875005,32.53442382812503],[35.303808593750006,32.512939453125],[35.38671875000003,32.493017578125034],[35.402636718750074,32.45063476562501],[35.484375,32.40166015624999],[35.5514648437501,32.39550781250006],[35.57207031250002,32.237890625],[35.450585937499994,31.479296875000017],[34.88046875,31.3681640625]]]]},"properties":{"name":"Palestine","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-149.321533203125,-17.690039062499963],[-149.177685546875,-17.736621093750045],[-149.18178710937497,-17.86230468749997],[-149.34111328125,-17.732421874999986],[-149.57890624999993,-17.734960937499963],[-149.635009765625,-17.564257812500003],[-149.37919921874993,-17.522363281249994],[-149.321533203125,-17.690039062499963]]],[[[-143.44057617187497,-16.619726562499963],[-143.38618164062498,-16.668847656250023],[-143.55068359375002,-16.62109374999997],[-143.44057617187497,-16.619726562499963]]],[[[-139.02431640624997,-9.695214843750037],[-138.82734375,-9.74160156249998],[-139.13408203124996,-9.829492187500037],[-139.02431640624997,-9.695214843750037]]],[[[-140.075634765625,-9.425976562499983],[-140.14438476562498,-9.359375],[-140.07094726562497,-9.328125],[-140.075634765625,-9.425976562499983]]],[[[-140.07260742187503,-8.910449218750031],[-140.21743164062497,-8.929687499999957],[-140.24003906249993,-8.79755859375004],[-140.057666015625,-8.801464843750026],[-140.07260742187503,-8.910449218750031]]]]},"properties":{"name":"Fr. Polynesia","childNum":5}},{"geometry":{"type":"Polygon","coordinates":[[[51.26796875000002,24.607226562500003],[51.17802734375002,24.58671875],[51.093359375,24.564648437499997],[51.02275390625002,24.565234375],[50.96601562500001,24.573925781249997],[50.928320312500006,24.595117187499994],[50.85566406250001,24.679638671874997],[50.80439453125001,24.789257812499997],[50.8359375,24.850390625],[50.846777343750006,24.888574218749994],[50.75458984375001,25.39926757812499],[51.003125,25.9814453125],[51.262304687500006,26.153271484374997],[51.543066406250006,25.902392578125003],[51.4853515625,25.524707031250003],[51.60888671875,25.052880859374994],[51.42792968750001,24.668261718750003],[51.26796875000002,24.607226562500003]]]},"properties":{"name":"Qatar","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.2125,45.450439453125],[28.317675781250017,45.347119140625],[28.451269531250006,45.2921875],[28.78828125000001,45.240966796875],[28.78173828125,45.309863281249996],[28.894335937500017,45.289941406249994],[29.223535156250023,45.4029296875],[29.403710937500023,45.419677734375],[29.567675781250017,45.37080078125],[29.705859375000017,45.259912109374994],[29.557519531250023,44.843408203124994],[29.048242187500023,44.757568359375],[29.0953125,44.975048828125],[28.891503906250023,44.91865234375],[28.585351562500023,43.742236328124996],[28.221972656250017,43.772851562499994],[27.88427734375,43.987353515624996],[27.425390625,44.0205078125],[27.0869140625,44.167382812499994],[26.2158203125,44.007275390625],[25.4970703125,43.670800781249994],[22.919042968750006,43.83447265625],[22.868261718750006,43.947900390624994],[23.02851562500001,44.077978515625],[22.705078125,44.23779296875],[22.687890625000023,44.248291015625],[22.494531250000023,44.435449218749994],[22.554003906250017,44.540332031249996],[22.6201171875,44.562353515625],[22.70078125,44.555517578125],[22.734375,44.569921875],[22.72089843750001,44.605517578124996],[22.64208984375,44.6509765625],[22.49765625,44.70625],[22.350683593750006,44.676123046875],[22.200976562500017,44.560693359374994],[22.093066406250017,44.541943359375],[21.909277343750006,44.66611328125],[21.636132812500023,44.71044921875],[21.52314453125001,44.790087890624996],[21.36005859375001,44.82666015625],[21.35791015625,44.86181640625],[21.384375,44.870068359375],[21.442187500000017,44.873388671875],[21.519921875000023,44.880810546875],[21.532324218750006,44.900683593749996],[21.35703125,44.990771484374996],[21.465429687500006,45.171875],[21.431445312500017,45.192529296874994],[20.794042968750006,45.46787109375],[20.775,45.749804687499996],[20.760156250000023,45.758105468749996],[20.746875,45.748974609375],[20.727832031250017,45.73740234375],[20.709277343750017,45.735253906249994],[20.652734375000023,45.77939453125],[20.581152343750006,45.869482421875],[20.35859375000001,45.975488281249994],[20.241796875,46.10859375],[20.28095703125001,46.1330078125],[20.508105468750017,46.166943359375],[20.613671875000023,46.13349609375],[20.76025390625,46.246240234374994],[21.121679687500006,46.282421875],[21.99970703125001,47.505029296874994],[22.87666015625001,47.947265625],[23.054785156250006,48.00654296875],[23.139453125000017,48.08740234375],[23.20263671875,48.084521484374996],[23.408203125,47.989990234375],[23.628710937500017,47.995849609375],[24.578906250000017,47.931054687499994],[24.979101562500006,47.72412109375],[25.464257812500023,47.910791015624994],[25.689257812500017,47.932470703125],[25.90869140625,47.967578125],[26.162695312500006,47.992529296875],[26.236230468750023,48.064355468749994],[26.276953125,48.113232421875],[26.3056640625,48.203759765624994],[26.4423828125,48.22998046875],[26.618945312500017,48.25986328125],[26.980761718750017,48.155029296875],[27.614062500000017,47.34052734375],[28.07177734375,46.978417968749994],[28.23945312500001,46.6408203125],[28.07470703125,45.598974609375],[28.2125,45.450439453125]]]},"properties":{"name":"Romania","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[146.71396484375012,43.743798828124994],[146.62197265625,43.81298828125006],[146.88408203125002,43.82915039062496],[146.71396484375012,43.743798828124994]]],[[[146.20761718750006,44.49765625],[146.5677734375,44.44042968749997],[145.91406249999997,44.10371093750004],[145.58681640625,43.84511718750002],[145.5558593750001,43.66459960937502],[145.46171875000007,43.870898437500045],[146.20761718750006,44.49765625]]],[[[148.59951171875,45.317626953125],[147.91376953125004,44.99038085937502],[147.65781250000012,44.97714843749998],[146.89746093750003,44.404296875],[147.24658203124997,44.856054687500006],[147.88554687500007,45.22563476562499],[147.9240234375001,45.38330078125006],[148.05605468750005,45.26210937500005],[148.32421874999997,45.28242187500001],[148.8122070312501,45.510009765625],[148.83710937500004,45.36269531250002],[148.59951171875,45.317626953125]]],[[[149.68769531250004,45.64204101562501],[149.44707031250002,45.593359375000034],[149.9623046875,46.02192382812504],[150.553125,46.208544921875045],[149.68769531250004,45.64204101562501]]],[[[152.00205078125006,46.89716796874998],[151.72343750000007,46.82880859375001],[152.28886718750007,47.1421875],[152.00205078125006,46.89716796874998]]],[[[154.81044921875005,49.31201171875],[154.61093750000006,49.29404296874998],[154.82490234375004,49.64692382812501],[154.81044921875005,49.31201171875]]],[[[155.9210937500001,50.30219726562501],[155.39716796875004,50.04125976562497],[155.24306640625,50.09462890625002],[155.21835937500012,50.29785156250003],[155.68017578124997,50.400732421875034],[156.096875,50.771875],[155.9210937500001,50.30219726562501]]],[[[156.40507812500002,50.65761718750005],[156.16796874999997,50.73188476562498],[156.37646484374997,50.86210937499996],[156.4875,50.84296874999998],[156.40507812500002,50.65761718750005]]],[[[142.76103515625002,54.393945312499966],[143.32470703125003,52.96308593749998],[143.15556640625002,52.08374023437497],[143.29951171875004,51.632373046875045],[143.81601562500006,50.28261718750002],[144.71376953125,48.64028320312502],[144.04873046875,49.249169921874994],[143.73232421875,49.31201171875],[143.10498046875003,49.198828125000034],[142.57421874999997,48.07216796875002],[142.55693359375002,47.737890625000034],[143.21767578125005,46.79487304687504],[143.48564453125002,46.752050781250006],[143.58066406250012,46.360693359375034],[143.43164062500003,46.02866210937498],[143.28232421875006,46.55898437500002],[142.57802734375005,46.700781250000034],[142.07714843749997,45.91704101562499],[141.83037109375002,46.451074218749966],[142.03867187500012,47.140283203124966],[141.9640625000001,47.58745117187502],[142.18173828125012,48.01337890625001],[141.86630859375006,48.750097656250006],[142.1422851562501,49.56914062499999],[142.06601562500006,50.630468750000034],[142.20673828125004,51.22255859375002],[141.72236328125004,51.73632812499997],[141.66083984375004,52.27294921874997],[141.85556640625012,52.79350585937499],[141.82353515625007,53.33950195312502],[142.1419921875,53.49560546875003],[142.52617187500002,53.44746093749998],[142.70595703125,53.89570312499998],[142.33496093749997,54.28071289062501],[142.76103515625002,54.393945312499966]]],[[[137.17861328125005,55.100439453125034],[137.05527343750006,54.9267578125],[136.71464843750002,54.956152343750034],[137.17861328125005,55.100439453125034]]],[[[137.94052734375012,55.092626953125034],[138.20615234375012,55.03354492187498],[137.72148437500007,54.66323242187505],[137.46269531250002,54.873388671875034],[137.23291015624997,54.79057617187496],[137.5773437500001,55.19702148437497],[137.94052734375012,55.092626953125034]]],[[[21.235742187500023,55.26411132812498],[22.072363281250034,55.06367187499998],[22.56728515625005,55.05913085937496],[22.82470703125,54.87128906249998],[22.684472656250023,54.56293945312504],[22.679882812500068,54.493017578125006],[22.766210937499977,54.356787109375034],[22.168457031250057,54.35986328125006],[21.14052734375008,54.39179687499998],[19.604394531250023,54.45917968750004],[19.974511718750023,54.92119140625002],[20.520312500000017,54.994873046875],[20.89980468750008,55.286669921875045],[20.957812500000074,55.27890625000006],[20.594824218750006,54.982373046874955],[20.995898437500017,54.90268554687506],[21.18886718750008,54.93520507812502],[21.235742187500023,55.26411132812498]]],[[[166.65029296875005,54.83906249999998],[166.64511718750006,54.69409179687503],[165.75107421875006,55.294531250000034],[166.27578125000005,55.311962890624955],[166.24804687499997,55.16542968750002],[166.65029296875005,54.83906249999998]]],[[[150.58994140625006,59.01875],[150.47021484375003,59.05405273437498],[150.66621093750004,59.16015625000003],[150.58994140625006,59.01875]]],[[[163.63515625000005,58.603369140625006],[163.47138671875004,58.509375],[163.7609375000001,59.01503906250002],[164.57265625,59.22114257812501],[164.61572265624997,58.885595703125034],[163.63515625000005,58.603369140625006]]],[[[35.8161132812501,65.18208007812501],[35.77871093750005,64.97666015625],[35.52890625000006,65.15107421875001],[35.8161132812501,65.18208007812501]]],[[[70.02070312500004,66.502197265625],[69.65136718750003,66.56533203125],[69.50273437500002,66.75107421875],[70.07666015624997,66.69589843750003],[70.02070312500004,66.502197265625]]],[[[-179.79853515625,68.9404296875],[-178.873876953125,68.75410156249995],[-178.69262695312503,68.54599609375],[-178.09746093750002,68.4248046875],[-178.05581054687497,68.26489257812503],[-177.79677734374997,68.33798828125],[-178.37304687500003,68.56567382812503],[-177.52724609375002,68.29438476562501],[-177.58920898437503,68.22421875],[-175.34521484375,67.67807617187503],[-175.37470703124998,67.35737304687498],[-175.00268554687494,67.4375],[-174.849853515625,67.34887695312503],[-174.92490234375,66.62314453125006],[-174.503759765625,66.537939453125],[-174.39409179687496,66.34423828124997],[-174.084765625,66.47309570312504],[-174.06503906249998,66.22958984374998],[-173.77397460937502,66.43466796875003],[-174.23159179687497,66.63188476562505],[-174.08642578125,66.94287109375],[-174.55009765624993,67.090625],[-173.6796875,67.144775390625],[-173.15781249999998,67.06909179687503],[-173.32353515625,66.95483398437503],[-173.25893554687497,66.84008789062503],[-173.19301757812497,66.99360351562504],[-172.5201171875,66.952490234375],[-173.00751953125,67.06489257812498],[-171.79555664062502,66.93173828125003],[-170.50952148437503,66.34365234375005],[-170.604443359375,66.24892578125002],[-170.30122070312504,66.29404296874998],[-170.24394531250002,66.16928710937503],[-169.777880859375,66.14311523437505],[-169.83168945312497,65.99892578124997],[-170.54067382812497,65.86542968749995],[-170.66630859375,65.62153320312501],[-171.42153320312502,65.81035156250002],[-171.10585937500002,65.51103515625005],[-171.90712890625,65.495947265625],[-172.78330078124998,65.68105468749997],[-172.23281250000002,65.45571289062497],[-172.30927734375004,65.27563476562497],[-172.66191406249993,65.24853515625006],[-172.28603515625002,65.20571289062502],[-172.21318359375,65.04814453124999],[-173.08579101562498,64.81733398437495],[-172.80107421874996,64.79052734375],[-172.90087890624994,64.62885742187501],[-172.40146484374998,64.413916015625],[-172.73916015624997,64.41225585937502],[-172.90317382812498,64.52607421875004],[-172.96005859375003,64.32768554687502],[-173.27548828124998,64.2896484375],[-173.327490234375,64.53955078125003],[-173.72973632812497,64.36450195312497],[-174.57055664062503,64.7177734375],[-175.39511718749998,64.80239257812502],[-175.85385742187498,65.01083984375003],[-176.09326171875,65.471044921875],[-177.05625,65.613623046875],[-177.48876953125,65.50371093749999],[-178.4125,65.49555664062501],[-178.93906249999998,66.03276367187505],[-178.74672851562497,66.01367187500006],[-178.52656250000004,66.40156250000004],[-178.86811523437498,66.18706054687502],[-179.14340820312503,66.37504882812505],[-179.327197265625,66.16259765625003],[-179.68330078124998,66.18413085937505],[-179.78969726562497,65.90087890625],[-179.352099609375,65.51674804687497],[-180,65.06723632812498],[-180,65.31196289062501],[-180,65.55678710937497],[-180,65.80156250000002],[-180,66.04628906250002],[-180,66.29106445312499],[-180,66.53583984375004],[-180,66.78056640625005],[-180,67.02534179687501],[-180,67.27011718750006],[-180,67.51484374999998],[-180,67.75961914062503],[-180,68.00439453124997],[-180,68.24912109375],[-180,68.49389648437497],[-180,68.738671875],[-179.999951171875,68.98344726562505],[-179.79853515625,68.9404296875]]],[[[50.265234375,69.18559570312502],[49.62626953125002,68.85971679687498],[48.91035156250004,68.74306640625002],[48.4390625,68.80488281249998],[48.319921875,69.26923828125001],[48.8449218750001,69.49472656250003],[49.22519531250006,69.51123046875],[50.265234375,69.18559570312502]]],[[[161.46708984375002,68.90097656250003],[161.08281250000007,69.4056640625],[161.50517578125007,69.63945312500002],[161.46708984375002,68.90097656250003]]],[[[169.20078125000006,69.58046875],[168.34804687500005,69.66435546875005],[167.86474609375003,69.90107421875004],[168.35791015625003,70.01567382812502],[169.37480468750007,69.88261718749999],[169.20078125000006,69.58046875]]],[[[60.450488281250074,69.93486328124999],[60.44023437500002,69.72592773437506],[59.637011718750074,69.72104492187503],[59.50263671875004,69.86621093750003],[58.952734375,69.89277343750004],[58.51992187500005,70.31831054687504],[59.04804687500004,70.46049804687505],[60.450488281250074,69.93486328124999]]],[[[52.90332031250003,71.36499023437503],[53.19257812500004,71.21528320312498],[53.0226562500001,70.96870117187501],[52.24960937500006,71.28491210937506],[52.90332031250003,71.36499023437503]]],[[[178.8615234375001,70.826416015625],[178.68388671875013,71.10566406250004],[180,71.53774414062505],[180,70.993017578125],[178.8615234375001,70.826416015625]]],[[[137.95986328125005,71.50766601562503],[137.71181640625005,71.4232421875],[137.06406250000006,71.52988281250003],[137.816796875,71.58789062500006],[137.95986328125005,71.50766601562503]]],[[[-178.87646484375,71.57705078124997],[-178.13388671874998,71.46547851562497],[-177.523583984375,71.16689453125],[-179.415673828125,70.91899414062502],[-179.999951171875,70.993017578125],[-179.999951171875,71.53774414062505],[-178.87646484375,71.57705078124997]]],[[[77.6325195312501,72.291259765625],[76.87109374999997,72.317041015625],[77.74853515625003,72.63120117187506],[78.36513671875005,72.48242187500003],[77.6325195312501,72.291259765625]]],[[[79.50146484374997,72.72192382812497],[78.63320312500005,72.85073242187502],[79.16425781250004,73.0943359375],[79.50146484374997,72.72192382812497]]],[[[74.660546875,72.87343750000002],[74.18066406250003,72.975341796875],[74.19853515625002,73.10908203124998],[74.9615234375,73.0625],[74.660546875,72.87343750000002]]],[[[120.26132812500012,73.08984374999997],[119.79208984375006,73.04541015624997],[119.64042968750002,73.12431640625007],[120.26132812500012,73.08984374999997]]],[[[55.31982421875003,73.30830078124998],[56.42958984375005,73.201171875],[56.121679687500006,72.80659179687498],[55.40332031249997,72.54907226562503],[55.29785156249997,71.93535156250005],[56.45439453125002,71.10737304687504],[57.62539062500005,70.72880859374999],[57.14589843750005,70.58911132812506],[56.38574218749997,70.73413085937503],[56.49970703125004,70.56640625000003],[55.687304687500074,70.69218749999999],[54.60117187500006,70.68007812500002],[53.383593750000074,70.87353515625],[53.670507812500006,71.08691406250003],[54.155664062499994,71.12548828125],[53.40996093750002,71.34013671875002],[53.41162109375003,71.530126953125],[51.93789062500005,71.47470703124998],[51.511328125,71.64809570312497],[51.58251953124997,72.07119140625],[52.252050781250006,72.12973632812503],[52.66191406250002,72.33686523437495],[52.91660156250006,72.66889648437501],[52.5792968750001,72.791357421875],[53.3698242187501,72.91674804687506],[53.2511718750001,73.182958984375],[54.80390625000004,73.38764648437498],[55.31982421875003,73.30830078124998]]],[[[70.67392578125006,73.09501953125005],[70.04072265625004,73.03715820312507],[69.99589843750002,73.359375],[70.94023437500002,73.51440429687503],[71.6261718750001,73.17397460937497],[70.67392578125006,73.09501953125005]]],[[[142.18486328125007,73.89589843750005],[143.34375,73.56875],[143.45146484375007,73.231298828125],[141.59667968750003,73.31083984375005],[140.66279296875004,73.45200195312503],[139.785546875,73.35522460937503],[141.08476562500002,73.86586914062497],[142.18486328125007,73.89589843750005]]],[[[83.5490234375001,74.07177734375],[82.8177734375,74.09160156250005],[83.14980468750005,74.151611328125],[83.5490234375001,74.07177734375]]],[[[141.01025390625003,73.99946289062501],[140.40947265625002,73.92167968750005],[140.1935546875001,74.23671875000002],[141.03857421875003,74.24272460937502],[141.01025390625003,73.99946289062501]]],[[[113.38720703124997,74.40043945312499],[112.78242187500004,74.09506835937503],[111.50341796874997,74.35307617187502],[111.87978515625,74.36381835937499],[112.08447265624997,74.54897460937505],[113.38720703124997,74.40043945312499]]],[[[86.653125,74.981298828125],[87.05214843750005,74.982568359375],[86.92714843750005,74.83076171874998],[86.25859375000002,74.89350585937498],[86.653125,74.981298828125]]],[[[82.17236328125003,75.41938476562501],[81.97851562499997,75.24711914062499],[81.65478515625003,75.28891601562498],[81.71210937500004,75.45141601562506],[82.165625,75.515625],[82.17236328125003,75.41938476562501]]],[[[146.79521484375007,75.37075195312505],[148.43242187500002,75.41352539062495],[148.59013671875007,75.23637695312502],[150.82236328125006,75.15654296875002],[150.64628906250002,74.944580078125],[149.596875,74.77260742187505],[148.296875,74.80043945312502],[146.14853515625012,75.19829101562499],[146.5375,75.58178710937506],[146.79521484375007,75.37075195312505]]],[[[135.9486328125,75.40957031250005],[135.45195312500007,75.38955078124997],[135.6986328125,75.84526367187499],[136.16894531249997,75.60556640625],[135.9486328125,75.40957031250005]]],[[[140.04873046875,75.82895507812503],[140.81591796874997,75.63071289062498],[141.48544921875012,76.13715820312495],[142.66953125000012,75.86342773437497],[143.68583984375002,75.86367187500002],[145.35996093750006,75.53046874999998],[144.01972656250004,75.04467773437506],[143.1703125,75.11689453125001],[142.72949218749997,75.33764648437506],[142.941796875,75.71328125000002],[142.30791015625007,75.69169921875005],[142.19882812500006,75.39267578124998],[143.12792968749997,74.9703125],[142.47275390625006,74.82041015625],[141.98730468750003,74.99125976562499],[140.26787109375002,74.846923828125],[139.68125,74.96406249999995],[139.09912109374997,74.65654296875002],[138.09228515625003,74.79746093750003],[136.94765625000005,75.32553710937498],[137.28974609375004,75.34863281249997],[137.26884765625002,75.7494140625],[137.70654296875003,75.75957031250002],[137.56054687499997,75.95522460937502],[138.20761718750006,76.11494140624995],[138.91953125000006,76.19672851562501],[140.04873046875,75.82895507812503]]],[[[96.5324218750001,76.278125],[96.30058593750002,76.121728515625],[95.31113281250006,76.21474609375002],[95.37988281250003,76.2890625],[96.5324218750001,76.278125]]],[[[112.47802734375003,76.62089843749999],[112.531640625,76.450048828125],[111.96894531250004,76.62617187500001],[112.47802734375003,76.62089843749999]]],[[[149.15019531250002,76.65991210937506],[148.39863281250004,76.64824218750007],[149.4064453125001,76.78208007812498],[149.15019531250002,76.65991210937506]]],[[[67.7653320312501,76.23759765624999],[61.35595703124997,75.31484375000002],[60.27685546875003,75.00756835937503],[60.501367187499994,74.90463867187503],[59.67402343750004,74.61015624999999],[59.24013671875005,74.69296874999998],[59.040429687499994,74.48554687500001],[58.53466796875003,74.49892578124997],[58.6178710937501,74.22739257812498],[57.76738281250002,74.013818359375],[57.755957031250006,73.769189453125],[57.313085937500006,73.838037109375],[57.54257812500006,73.65820312500003],[56.96386718750003,73.36655273437503],[56.43037109375004,73.29721679687503],[55.00683593750003,73.45385742187506],[54.29990234375006,73.35097656249997],[53.7628906250001,73.76616210937499],[54.64267578125006,73.95957031250006],[55.34091796875006,74.41962890624998],[56.13710937500005,74.49609375000003],[55.5822265625001,74.627685546875],[56.4987304687501,74.95708007812505],[55.81005859374997,75.12490234374997],[56.03554687499999,75.19423828124997],[56.57031250000003,75.09775390625003],[56.8444335937501,75.351416015625],[57.606835937499994,75.34125976562498],[58.05830078125004,75.6630859375],[58.88125,75.85478515625007],[60.27929687499997,76.09624023437505],[60.94218750000002,76.07128906250003],[61.20166015624997,76.28203125000007],[62.97148437500002,76.23666992187498],[64.4634765625,76.37817382812503],[67.65185546874997,77.011572265625],[68.48574218750005,76.93369140625003],[68.94169921875002,76.707666015625],[67.7653320312501,76.23759765624999]]],[[[96.28544921875002,77.02666015625007],[95.27031250000007,77.01884765624999],[96.52841796875006,77.20551757812501],[96.28544921875002,77.02666015625007]]],[[[89.51425781250006,77.18881835937498],[89.14169921875012,77.22680664062497],[89.61621093749997,77.31103515625],[89.51425781250006,77.18881835937498]]],[[[130.68730468750007,42.30253906249999],[130.52695312500012,42.535400390625],[130.42480468749997,42.72705078124997],[131.06855468750004,42.90224609375005],[131.25732421875003,43.378076171874994],[131.2552734375,44.07158203124999],[130.9816406250001,44.844335937500034],[131.44687500000012,44.984033203124966],[131.85185546875002,45.32685546875001],[132.93603515624997,45.029931640624994],[133.1134765625001,45.130712890625006],[133.18603515625003,45.49482421875004],[133.43642578125,45.60468750000004],[133.86132812500003,46.24775390625004],[134.1676757812501,47.30219726562501],[134.75234375,47.71542968749998],[134.56601562500006,48.02250976562502],[134.66523437500004,48.25390625],[134.29335937500005,48.37343750000002],[133.46835937500006,48.09716796875003],[133.14404296875003,48.10566406249998],[132.7072265625001,47.94726562500006],[132.47626953125004,47.714990234374994],[130.96191406249997,47.70932617187498],[130.7326171875001,48.01923828124998],[130.80429687500012,48.34150390624998],[130.5521484375,48.602490234374955],[130.553125,48.861181640625006],[130.1959960937501,48.89165039062499],[129.49814453125012,49.38881835937502],[129.0651367187501,49.374658203124966],[128.70400390625,49.60014648437499],[127.99960937500006,49.56860351562506],[127.55078124999997,49.801806640625045],[127.590234375,50.20898437500003],[127.33720703125007,50.35014648437502],[127.30703125000005,50.70795898437501],[126.92480468749997,51.10014648437496],[126.34169921875,52.36201171875001],[125.64902343750012,53.042285156250045],[125.075,53.20366210937496],[124.81230468750002,53.133837890625045],[123.6078125,53.546533203124994],[120.98544921875012,53.28457031250002],[120.09453125000007,52.787207031250034],[120.0675781250001,52.632910156250034],[120.65615234375,52.56665039062503],[120.74980468750007,52.096533203125006],[120.06689453125003,51.60068359375006],[119.16367187500006,50.40600585937503],[119.34628906250012,50.278955078124994],[119.25986328125012,50.06640625000003],[118.4515625,49.84448242187503],[117.8734375,49.51347656250002],[116.6833007812501,49.82377929687499],[116.551171875,49.92031250000002],[116.35117187500012,49.97807617187499],[116.21679687500003,50.00927734375003],[116.13457031250002,50.01079101562499],[115.9259765625001,49.95214843750003],[115.79521484375002,49.90590820312502],[115.71777343750003,49.88061523437503],[115.58798828125006,49.88603515624996],[115.42919921874997,49.89648437499997],[115.36503906250002,49.911767578124966],[115.27451171875006,49.948876953124994],[115.00332031250005,50.138574218749994],[114.74316406249997,50.23369140625002],[114.29707031250004,50.27441406250006],[113.57421874999997,50.00703125000001],[113.44550781250004,49.94160156250001],[113.31904296875004,49.87431640624999],[113.16416015625012,49.79716796874999],[113.09208984375007,49.692529296874994],[113.05556640625,49.61625976562499],[112.91484375000002,49.569238281249994],[112.80644531250007,49.52358398437502],[112.69736328125012,49.50727539062498],[112.49492187500002,49.532324218750034],[112.07968750000006,49.42421875000002],[111.42929687500006,49.342626953125034],[111.3366210937501,49.355859374999966],[111.20419921875012,49.304296875000034],[110.82792968750002,49.16616210937505],[110.70976562500002,49.14296875000002],[110.42783203125006,49.219970703125],[110.32138671875012,49.215869140625045],[110.19990234375004,49.17041015625003],[109.5287109375,49.269873046875034],[109.45371093750012,49.29633789062501],[109.23671875000005,49.334912109374955],[108.61367187500005,49.32280273437499],[108.52246093750003,49.34150390624998],[108.4069335937501,49.39638671875005],[107.96542968750012,49.65351562500004],[107.91660156250012,49.947802734375045],[107.63095703125012,49.98310546875004],[107.3470703125,49.986669921875034],[107.23330078125,49.989404296874994],[107.14306640625003,50.03300781249999],[107.04023437500004,50.086474609375045],[106.94130859375005,50.19667968750002],[106.71113281250004,50.312597656250006],[106.57441406250004,50.32880859375004],[106.36845703125002,50.317578124999955],[106.21787109375006,50.304589843749966],[105.38359375000002,50.47373046874998],[104.07871093750012,50.15424804687498],[103.63291015625006,50.138574218749994],[103.49628906250004,50.16494140625005],[103.42119140625002,50.18706054687502],[103.3043945312501,50.200292968750034],[102.28837890625007,50.58510742187502],[102.31660156250004,50.71845703125001],[102.21503906250004,50.82944335937506],[102.19453125000004,51.05068359375002],[102.15195312500006,51.107519531250034],[102.14238281250007,51.21606445312503],[102.16005859375005,51.260839843750006],[102.1556640625,51.31376953124996],[102.1115234375001,51.353466796874955],[101.97919921875004,51.382226562499966],[101.82119140625,51.421044921874966],[101.57089843750006,51.46718750000005],[101.38125,51.45263671875],[100.53623046875006,51.713476562500034],[100.46894531250004,51.72607421875003],[100.23037109375,51.729833984375006],[100.0345703125,51.73710937499996],[99.92167968750002,51.755517578124994],[99.71923828124997,51.87163085937502],[98.89316406250006,52.11728515625006],[98.64052734375005,51.80117187500005],[98.103125,51.483544921874994],[97.82529296875012,50.985253906249994],[97.953125,50.85517578124998],[98.02978515625003,50.64462890624998],[98.07890625000002,50.60380859375002],[98.14501953124997,50.56855468750001],[98.22050781250007,50.55717773437502],[98.2794921875001,50.53325195312502],[98.25029296875002,50.30244140624998],[98.00390625000003,50.01425781249998],[97.35976562500005,49.741455078125],[97.20859375000006,49.73081054687506],[96.98574218750005,49.88281250000003],[96.31503906250012,49.90112304687503],[96.06552734375006,49.99873046875001],[95.52265625000004,49.911230468750034],[95.11142578125012,49.935449218749994],[94.93027343750006,50.04375],[94.8112304687501,50.04819335937506],[94.71806640625002,50.04326171875002],[94.67548828125004,50.02807617187506],[94.61474609375003,50.02373046874996],[94.56464843750004,50.08793945312499],[94.35468750000004,50.221826171874994],[94.25107421875006,50.55639648437503],[93.103125,50.60390625000002],[92.94130859375005,50.77822265625002],[92.85644531250003,50.78911132812502],[92.77929687500003,50.778662109375006],[92.738671875,50.71093749999997],[92.68134765625004,50.683203125],[92.6266601562501,50.68828124999999],[92.57890625000002,50.725439453125006],[92.42636718750006,50.803076171875006],[92.35478515625002,50.86416015625002],[92.29580078125,50.84980468750004],[92.19238281249997,50.700585937499994],[91.80429687500006,50.693603515625],[91.4464843750001,50.52216796874998],[91.41503906249997,50.46801757812506],[91.34082031249997,50.470068359375034],[91.30058593750002,50.46337890625],[91.2337890625,50.45239257812497],[91.02158203125012,50.41547851562501],[90.83808593750004,50.32373046874997],[90.76074218749997,50.30595703124999],[90.71435546874997,50.25942382812502],[90.65507812500007,50.22236328125001],[90.05371093750003,50.09375],[89.64384765625002,49.90302734374998],[89.65410156250007,49.71748046875001],[89.57919921875006,49.69970703125003],[89.475,49.66054687500005],[89.39560546875006,49.61152343750001],[89.24394531250007,49.62705078125006],[89.20292968750007,49.59570312499997],[89.17998046875002,49.5322265625],[89.10947265625012,49.50136718750002],[89.00839843750006,49.472802734374994],[88.97060546875,49.483740234375006],[88.94541015625012,49.50766601562498],[88.90019531250002,49.53969726562502],[88.86386718750006,49.52763671874996],[88.83164062500012,49.44843749999998],[88.633203125,49.486132812500045],[88.19257812500004,49.451708984375045],[88.13554687500002,49.38149414062502],[88.11572265624997,49.25629882812501],[88.0285156250001,49.219775390625045],[87.98808593750002,49.186914062499994],[87.9347656250001,49.16455078124997],[87.81425781250002,49.162304687499955],[87.7625,49.16582031249996],[87.5158203125001,49.122412109375006],[87.41669921875004,49.07661132812501],[87.32285156250012,49.085791015625006],[86.62646484374997,49.56269531250001],[86.67548828125004,49.77729492187501],[86.1808593750001,49.49931640624996],[85.2326171875001,49.61582031249998],[84.9894531250001,50.061425781249994],[84.32324218749997,50.239160156249966],[83.94511718750007,50.774658203125],[83.35732421875005,50.99458007812504],[82.76083984375012,50.89335937500002],[82.49394531250007,50.72758789062499],[81.46591796875006,50.73984375],[81.38828125000006,50.95649414062501],[81.0714843750001,50.96875],[81.12724609375002,51.19106445312502],[80.73525390625,51.29340820312498],[80.44804687500002,51.18334960937503],[80.42363281250002,50.94628906249997],[79.98623046875,50.774560546874966],[77.85996093750006,53.269189453124994],[76.48476562500005,54.02255859374998],[76.42167968750007,54.151513671874966],[76.65458984375007,54.14526367187503],[76.8373046875,54.4423828125],[75.43720703125004,54.08964843749999],[75.22021484374997,53.89379882812506],[74.45195312500007,53.64726562500002],[74.35156250000003,53.487646484375006],[73.85898437500006,53.61972656249998],[73.40693359375004,53.44755859374999],[73.30566406250003,53.707226562499955],[73.71240234375003,54.04238281250002],[73.22988281250005,53.957812500000045],[72.62226562500004,54.13432617187502],[72.44677734375003,53.94184570312498],[72.18603515625003,54.32563476562501],[72.00449218750006,54.20566406249998],[71.09316406250005,54.21220703124999],[71.18554687500003,54.59931640624998],[70.73808593750007,55.30517578125],[70.18242187500002,55.162451171875034],[68.9772460937501,55.389599609374955],[68.20625,55.16093750000002],[68.15585937500006,54.97670898437505],[65.476953125,54.62329101562497],[65.08837890624997,54.340185546875034],[64.46123046875002,54.38417968750002],[61.92871093750003,53.94648437500004],[61.231054687500006,54.01948242187498],[60.97949218749997,53.62172851562505],[61.53496093750002,53.52329101562506],[61.22890625,53.445898437500006],[61.19921874999997,53.28715820312502],[61.65986328125004,53.22846679687504],[62.08271484375004,53.00541992187499],[61.047460937500006,52.97246093750002],[60.77441406249997,52.67578124999997],[60.99453125000005,52.33686523437504],[60.03027343749997,51.93325195312505],[60.464746093749994,51.651171875000045],[61.55468750000003,51.32460937500005],[61.38945312500002,50.86103515625001],[60.94228515625005,50.69550781250004],[60.42480468749997,50.67915039062498],[60.05859374999997,50.850292968749955],[59.812402343749994,50.58203125],[59.523046875,50.492871093749955],[59.4523437500001,50.62041015625002],[58.88369140625005,50.694433593750006],[58.359179687500074,51.063818359375034],[57.83886718750003,51.091650390625006],[57.44218750000002,50.88886718749998],[57.01171874999997,51.06518554687503],[56.49140625000004,51.01953124999997],[55.68623046875004,50.582861328125006],[54.64160156250003,51.011572265625034],[54.555273437500006,50.535791015624994],[54.139746093750006,51.04077148437503],[53.33808593750004,51.48237304687504],[52.57119140625005,51.481640624999955],[52.21914062499999,51.709375],[51.344531250000074,51.47534179687503],[51.16347656250005,51.6474609375],[50.79394531249997,51.729199218749955],[50.246875,51.28950195312498],[49.49804687500003,51.08359375000006],[49.32343750000004,50.851708984374966],[48.625097656250006,50.61269531250005],[48.7589843750001,49.92832031250006],[48.33496093750003,49.858251953125006],[47.7057617187501,50.37797851562502],[47.42919921874997,50.35795898437502],[46.889550781249994,49.69697265625001],[46.80205078125002,49.36708984375002],[47.031347656250006,49.150292968749994],[46.70263671875003,48.80556640625002],[46.660937500000074,48.41225585937502],[47.06464843750004,48.23247070312499],[47.292382812499994,47.74091796875004],[47.48193359374997,47.80390624999998],[48.16699218750003,47.70878906249996],[48.959375,46.77460937499998],[48.558398437500074,46.75712890624999],[48.54121093750004,46.60561523437502],[49.232226562500074,46.33715820312503],[48.683691406250006,46.08618164062497],[48.72958984375006,45.896826171875034],[48.4870117187501,45.93486328124996],[47.63330078124997,45.58403320312499],[47.46328125,45.67968750000003],[47.5294921875001,45.530224609374955],[47.3512695312501,45.21772460937498],[46.7072265625001,44.503320312499994],[47.30703125000005,44.103125],[47.462792968749994,43.55502929687498],[47.64648437500003,43.88461914062498],[47.463183593750074,43.03505859375002],[48.572851562500006,41.84448242187503],[47.79101562499997,41.19926757812502],[47.31767578125002,41.28242187500001],[46.74931640625002,41.812597656250006],[46.42988281250004,41.890966796875006],[46.21269531250002,41.989892578124994],[45.63857421875005,42.20507812500003],[45.63427734374997,42.234716796875034],[45.72753906249997,42.47504882812498],[45.70527343750004,42.49809570312496],[45.56289062499999,42.53574218749998],[45.34375,42.52978515625003],[45.16025390625006,42.675],[45.07158203125002,42.69414062500002],[44.94335937499997,42.73027343750002],[44.870996093749994,42.75639648437499],[44.850488281249994,42.746826171875],[44.77109375000006,42.61679687499998],[44.69179687499999,42.709619140624966],[44.64433593750002,42.734716796875034],[44.50585937500003,42.748632812500006],[44.329492187499994,42.703515624999966],[44.10273437500004,42.616357421874994],[44.004687500000074,42.59560546875002],[43.95742187500005,42.56655273437505],[43.825976562500074,42.571533203125],[43.759863281250006,42.593847656250006],[43.738378906250006,42.61699218750002],[43.74990234375005,42.65751953125002],[43.79541015624997,42.702978515625034],[43.78261718750005,42.747021484374955],[43.62304687500003,42.80771484374998],[43.5578125000001,42.844482421875],[43.089160156250074,42.9890625],[43.00019531250004,43.04965820312506],[42.991601562499994,43.09150390624998],[42.76064453125005,43.169580078124966],[41.58056640624997,43.21923828124997],[41.460742187500074,43.276318359374955],[41.35820312500002,43.33339843750005],[41.08310546875006,43.37446289062498],[40.94199218750006,43.41806640624998],[40.801660156249994,43.479931640624955],[40.64804687500006,43.53388671875004],[40.084570312500006,43.553125],[40.02373046875002,43.48486328125],[39.873632812500006,43.47280273437502],[38.71728515624997,44.28808593750003],[38.18125,44.41967773437503],[37.851464843749994,44.698828125000034],[37.49511718750003,44.69526367187504],[37.20478515625004,44.97197265624999],[36.62763671875004,45.15131835937504],[36.941210937500074,45.289697265624994],[36.72041015625004,45.371875],[36.8659179687501,45.42705078124999],[37.21357421875004,45.272314453125006],[37.6471679687501,45.37719726562506],[37.61240234375006,45.56469726562506],[37.93310546875003,46.001708984375],[38.014257812500006,46.047753906249966],[38.07958984375003,45.93481445312506],[38.18359374999997,46.09482421875006],[38.49228515625006,46.09052734374998],[37.913867187500074,46.40649414062503],[37.766503906249994,46.63613281250002],[38.50097656249997,46.663671875000034],[38.43867187500004,46.813085937500006],[39.29345703125003,47.105761718750045],[39.19570312499999,47.268847656250045],[39.023730468750074,47.27221679687503],[38.928320312500006,47.175683593749994],[38.55244140625004,47.15034179687498],[38.7619140625001,47.261621093749994],[38.21435546875003,47.091455078124966],[38.36884765625004,47.609960937500006],[38.90029296875005,47.85512695312502],[39.77871093750005,47.88754882812506],[39.95791015625005,48.268896484375034],[39.8356445312501,48.54277343749996],[39.6447265625001,48.591210937499966],[39.792871093749994,48.807714843750034],[40.00361328125004,48.82207031250002],[39.68652343749997,49.007910156250034],[40.10878906250005,49.251562500000034],[40.080664062500006,49.576855468749955],[39.780566406250074,49.57202148437503],[39.17480468750003,49.85595703124997],[38.91835937499999,49.82470703125],[38.258593750000074,50.05234375],[38.046875,49.92001953125006],[37.42285156249997,50.411474609375006],[36.619433593750074,50.209228515625],[36.1164062500001,50.408544921875006],[35.59111328125002,50.36875],[35.31191406250005,51.043896484374955],[35.0640625,51.203417968750045],[34.21386718750003,51.25537109375006],[34.12109375000003,51.67915039062498],[34.397851562499994,51.780419921874994],[33.735253906249994,52.344775390625045],[32.435449218749994,52.307226562500034],[32.12226562500004,52.05058593749996],[31.763378906250097,52.10107421875003],[31.758593750000017,52.125830078125034],[31.690625,52.22065429687498],[31.64990234374997,52.26220703125],[31.60156250000003,52.284814453124994],[31.57734375000004,52.31230468749999],[31.585546875,52.532470703125],[31.56484375,52.75922851562501],[31.53515624999997,52.798242187499966],[31.442773437499994,52.86181640625003],[31.35302734374997,52.93344726562498],[31.295117187500097,52.98979492187499],[31.25878906249997,53.01669921875006],[31.364550781250017,53.13896484375002],[31.388378906250097,53.18481445312503],[31.41787109375005,53.196044921875],[31.849707031250006,53.106201171875],[32.14199218750005,53.091162109375034],[32.46933593750006,53.270312500000045],[32.578027343749994,53.312402343749994],[32.644433593749994,53.32890624999999],[32.70429687500004,53.33632812499999],[32.45097656250002,53.6533203125],[32.20039062500004,53.78125],[31.99218750000003,53.796875],[31.82080078124997,53.79194335937498],[31.754199218750017,53.81044921875002],[31.825292968750006,53.93500976562501],[31.837792968749994,54.00078124999999],[31.825976562500074,54.030712890624955],[31.79199218749997,54.05590820312503],[31.62841796874997,54.111181640625006],[31.403613281250017,54.195947265624966],[31.299121093750017,54.29169921875001],[31.184765625000097,54.452978515625006],[31.074804687500063,54.491796875],[31.154882812500063,54.610937500000034],[31.152148437500017,54.625341796875034],[31.12128906250004,54.64848632812496],[30.984179687500074,54.695898437500034],[30.79882812499997,54.78325195312499],[30.79101562499997,54.806005859375006],[30.804492187500074,54.8609375],[30.829882812500017,54.91499023437498],[30.977734375000097,55.05048828124998],[30.977734375000097,55.08779296875002],[30.958886718749994,55.13759765625005],[30.87744140625003,55.223437500000045],[30.81445312499997,55.27871093750002],[30.81054687499997,55.306982421875006],[30.82099609375004,55.330273437499955],[30.900585937500097,55.397412109374955],[30.906835937500063,55.57001953125004],[30.625585937500006,55.666259765625],[30.23359375000004,55.84521484375006],[30.04267578125004,55.83642578125003],[29.93701171874997,55.84526367187499],[29.881640625000074,55.83232421875002],[29.82392578125004,55.79511718749998],[29.74414062499997,55.770410156249994],[29.630078125000097,55.75117187499998],[29.482226562500074,55.6845703125],[29.412988281249994,55.72485351562506],[29.35341796875005,55.784375],[29.375,55.938720703125],[28.284277343750006,56.055908203125],[28.14794921875003,56.142919921875034],[28.202050781250023,56.260400390624994],[28.191699218750045,56.31557617187505],[28.169238281250017,56.386865234374994],[28.11083984375,56.51069335937501],[28.103125,56.545703125000045],[27.89208984375003,56.741064453125034],[27.88154296875001,56.82416992187501],[27.848632812500057,56.85341796875002],[27.806054687499994,56.86708984375005],[27.639453125000074,56.84565429687504],[27.83027343750004,57.19448242187505],[27.83828125000008,57.247705078124966],[27.82861328124997,57.293310546875006],[27.796875,57.316943359375045],[27.538671875000063,57.429785156250034],[27.51113281250005,57.508154296875006],[27.469726562500057,57.524023437500034],[27.35195312500005,57.528125],[27.4,57.66679687499999],[27.542089843750063,57.799414062500006],[27.778515625000068,57.87070312500006],[27.502441406250057,58.221337890624994],[27.434179687500006,58.787255859374994],[28.15107421875004,59.374414062499966],[28.0125,59.484277343749966],[28.05800781250008,59.781542968750045],[28.334570312500034,59.69252929687502],[28.518164062500034,59.849560546874955],[28.947265625000057,59.828759765624994],[29.147265625000045,59.999755859375],[30.12255859374997,59.873583984375074],[30.172656250000017,59.957128906250034],[29.72119140624997,60.19531249999997],[29.069140625000017,60.19145507812499],[28.643164062500006,60.375292968750045],[28.512792968750006,60.67729492187502],[27.797656250000074,60.53613281250003],[29.69013671875004,61.54609375000001],[31.18671875000004,62.48139648437504],[31.533984375000017,62.885400390624994],[31.180859375000097,63.208300781250074],[29.991503906250074,63.73515625000002],[30.50390625000003,64.02060546875],[30.513769531250006,64.2],[30.04189453125005,64.44335937499997],[30.072851562500063,64.76503906250005],[29.60419921875004,64.968408203125],[29.826953125000017,65.14506835937502],[29.608007812500006,65.248681640625],[29.715917968750063,65.62456054687502],[30.102734375000097,65.72626953125004],[29.066210937500045,66.89174804687497],[29.988085937500017,67.66826171874999],[29.343847656250006,68.06186523437506],[28.685156250000034,68.189794921875],[28.470703125000057,68.48837890625],[28.77285156250005,68.84003906249995],[28.414062500000057,68.90415039062506],[28.96582031250003,69.02197265625],[29.38828125,69.29814453125005],[30.08730468750005,69.43286132812503],[30.18017578124997,69.63583984375],[30.860742187499994,69.53842773437503],[30.869726562500006,69.78344726562506],[31.546972656250063,69.696923828125],[31.997949218749994,69.80991210937503],[31.98457031250004,69.95366210937499],[33.00781249999997,69.72211914062498],[32.91503906249997,69.60170898437497],[32.17675781250003,69.67402343749995],[32.37773437500002,69.47910156250003],[32.99980468750002,69.4701171875],[32.97890625000005,69.367333984375],[33.45429687500004,69.42817382812495],[33.14121093750006,69.068701171875],[33.684375,69.31025390625001],[35.85791015625003,69.19174804687503],[37.73056640625006,68.69213867187503],[38.43017578125003,68.35561523437505],[39.568945312500006,68.07172851562501],[39.82333984375006,68.05859375],[39.80927734375004,68.15083007812498],[40.38066406250002,67.831884765625],[40.96640625000006,67.71347656250003],[41.358789062499994,67.20966796874998],[41.18896484375003,66.82617187500003],[40.10332031250002,66.29995117187502],[38.65390625000006,66.06904296874995],[35.51347656250002,66.39580078125002],[34.82460937499999,66.61113281249999],[34.48261718750004,66.55034179687505],[34.4515625,66.651220703125],[33.15019531250002,66.84394531250001],[32.93046875000002,67.08681640625002],[31.895312500000074,67.16142578125002],[33.65595703125004,66.44262695312506],[33.36054687500004,66.32954101562501],[34.112695312499994,66.225244140625],[34.69179687500005,65.95185546874998],[34.77695312500006,65.76826171874998],[34.40644531250004,65.39575195312503],[35.03535156250004,64.44023437500005],[35.802050781250074,64.3353515625],[36.3649414062501,64.00283203125002],[37.44218750000002,63.813378906249966],[37.9679687500001,63.949121093749994],[38.0622070312501,64.09101562499995],[37.953710937500006,64.32011718749999],[37.183691406250006,64.40849609375007],[36.6242187500001,64.75053710937502],[36.534570312499994,64.93862304687497],[36.88281249999997,65.17236328124997],[39.7580078125001,64.57705078125002],[40.05781250000004,64.77075195312497],[40.44492187500006,64.7787109375],[39.7980468750001,65.349853515625],[39.816503906250006,65.59794921874999],[41.4757812500001,66.12343750000002],[42.21054687500006,66.51967773437502],[43.23320312500002,66.41552734375003],[43.653125,66.2509765625],[43.54189453125005,66.12338867187503],[43.84375,66.14238281249999],[44.10439453125005,66.00859374999999],[44.42929687500006,66.93774414062503],[43.7824218750001,67.25449218749998],[44.20468750000006,68.25375976562498],[43.33320312500004,68.67338867187502],[44.04804687500004,68.54882812499997],[45.891992187499994,68.47968750000001],[46.69042968750003,67.84882812500001],[45.52871093750005,67.75756835937497],[44.90214843750002,67.41313476562505],[45.56220703125004,67.18559570312507],[45.88535156250006,66.89106445312501],[46.4923828125001,66.80019531249997],[47.65585937500006,66.97592773437498],[47.87470703125004,67.58417968749998],[48.83320312500004,67.681494140625],[48.75429687500005,67.89594726562501],[49.15527343750003,67.87041015625005],[51.994726562500006,68.53876953124995],[52.3966796875001,68.35170898437505],[52.72265624999997,68.484033203125],[52.34404296875002,68.60815429687497],[53.80195312500004,68.99589843750002],[54.49121093750003,68.992333984375],[53.797656250000074,68.90747070312503],[53.9308593750001,68.43554687499997],[53.260546875000074,68.26748046875002],[54.476171875,68.29414062499995],[54.86132812500003,68.20185546874998],[55.418066406250006,68.56782226562501],[56.04365234375004,68.64887695312501],[57.126855468749994,68.55400390625005],[58.17304687500004,68.88974609375006],[59.0573242187501,69.00605468750004],[59.37050781250005,68.73837890625003],[59.09902343750005,68.4443359375],[59.725683593750006,68.35161132812502],[59.89599609374997,68.70634765624999],[60.489160156249994,68.72895507812498],[60.93359374999997,68.98676757812501],[60.17060546875004,69.59091796875],[60.90908203125005,69.84711914062495],[64.19042968750003,69.53466796875],[64.89628906250002,69.247802734375],[67.00244140625003,68.87358398437505],[68.37119140625006,68.31425781250005],[69.14052734375005,68.95063476562501],[68.54277343750002,68.96708984374999],[68.00585937499997,69.48002929687505],[67.62412109375,69.58442382812501],[67.06445312500003,69.69370117187498],[66.89667968750004,69.55380859374998],[67.28476562500006,70.73872070312498],[67.14335937500002,70.83754882812502],[66.70224609375006,70.81850585937497],[66.63964843749997,71.08139648437498],[68.2692382812501,71.68281250000001],[69.61181640625003,72.98193359375],[69.73828124999997,72.88496093749998],[71.5001953125001,72.91367187500003],[72.812109375,72.69140624999997],[72.57412109375,72.01254882812506],[71.86728515625,71.457373046875],[72.70449218750005,70.96323242187498],[72.5767578125,68.96870117187498],[73.59169921875005,68.48188476562501],[73.13945312500002,68.18134765624998],[73.06679687500005,67.766943359375],[71.84746093750002,67.00761718750005],[71.36523437500003,66.96152343749998],[71.53955078125003,66.68310546875],[70.72490234375007,66.51943359374997],[70.38281249999997,66.60249023437501],[70.69072265625002,66.74531249999998],[70.2833984375001,66.68579101562503],[69.8771484375001,66.84545898437506],[69.21777343749997,66.82861328125],[69.01347656250002,66.78833007812503],[69.19433593749997,66.57866210937505],[70.33945312500006,66.34238281250006],[71.35800781250006,66.35942382812505],[71.91699218749997,66.24672851562502],[72.32158203125002,66.33212890625],[72.4173828125,66.56079101562506],[73.79208984375,66.99531250000001],[74.07451171875007,67.41411132812499],[74.76953124999997,67.76635742187497],[74.39140625000007,68.42060546874995],[74.57958984375003,68.751220703125],[76.10751953125006,68.975732421875],[76.45917968750004,68.97827148437497],[77.2384765625001,68.46958007812498],[77.17441406250012,67.77851562499998],[77.77158203125006,67.57026367187501],[78.92246093750006,67.58911132812503],[77.58828125000005,67.75190429687498],[77.66484375000002,68.19038085937495],[77.99511718749997,68.25947265624998],[77.65068359375007,68.90302734375001],[76.00097656249997,69.23505859374998],[75.42001953125,69.23862304687498],[74.81484375,69.09057617187503],[73.83603515625006,69.143212890625],[73.578125,69.80297851562503],[74.34335937500006,70.57871093749998],[73.08623046875007,71.44492187500006],[73.67177734375,71.84506835937503],[74.99218749999997,72.14482421874999],[74.78681640625004,72.811865234375],[75.15244140625,72.85273437499998],[75.74140625000004,72.29624023437503],[75.273828125,71.95893554687495],[75.33203125000003,71.34174804687498],[76.92900390625002,71.12788085937504],[77.58964843750007,71.16791992187501],[78.32060546875002,70.93041992187503],[78.94218750000002,70.93378906250001],[79.08388671875,71.00200195312505],[78.58769531250007,70.993896484375],[78.21259765625004,71.26630859374998],[76.43339843750002,71.55249023437503],[76.03242187500004,71.91040039062503],[76.87138671875002,72.03300781250005],[77.77753906250004,71.83642578125006],[78.23242187500003,71.95229492187502],[78.01640625000007,72.092041015625],[77.49287109375004,72.07172851562504],[77.47158203125,72.19213867187506],[78.22539062500007,72.37744140625006],[79.4220703125001,72.38076171875002],[80.7625,72.08916015625002],[81.66162109374997,71.71596679687502],[82.75781250000003,71.76411132812498],[83.23359375000004,71.66816406249995],[82.32285156250006,71.26000976562503],[82.16318359375012,70.59814453125003],[82.22119140625003,70.39570312499998],[82.86914062499997,70.95483398437503],[83.03017578125,70.58051757812498],[82.6823242187501,70.21772460937498],[83.0807617187501,70.09301757812497],[83.07382812500012,70.276708984375],[83.73593750000006,70.54648437499998],[83.15126953125005,71.10361328124998],[83.534375,71.68393554687498],[83.20029296875012,71.87470703125004],[82.64541015625005,71.92524414062504],[82.09365234375,72.26542968750005],[80.82705078125005,72.48828124999997],[80.84160156250007,72.94916992187498],[80.4245117187501,73.23115234374998],[80.5832031250001,73.56845703125003],[85.20058593750005,73.72153320312506],[86.89296875,73.88710937500002],[85.79257812500012,73.438330078125],[86.67705078125002,73.10678710937503],[85.93896484374997,73.45649414062495],[87.12011718750003,73.61503906250002],[87.57119140625,73.81074218750001],[86.57109375000007,74.24375],[86.0013671875,74.316015625],[86.39580078125007,74.45009765624997],[86.89794921874997,74.32534179687497],[87.22968750000004,74.3638671875],[85.79101562499997,74.6451171875],[86.20126953125006,74.81621093750005],[86.65146484375012,74.68242187500005],[87.04179687500007,74.77885742187499],[87.46757812500002,75.01323242187505],[86.93906250000006,75.06811523437503],[87.00595703125012,75.16982421874997],[87.67138671874997,75.12958984375004],[90.18496093750005,75.59106445312497],[94.07519531249997,75.91289062499999],[92.89042968750002,75.90996093750002],[93.25927734375003,76.09877929687502],[95.57871093750012,76.13730468749998],[96.07548828125007,76.08198242187498],[95.65332031250003,75.89218750000003],[96.50859375000002,76.00556640624995],[96.49707031249997,75.89121093750003],[98.66201171875005,76.24267578125003],[99.77041015625,76.02875976562498],[99.5407226562501,75.79858398437497],[99.85136718750007,75.93027343749998],[99.8253906250001,76.13593749999995],[98.80566406250003,76.48066406250004],[100.84375,76.52519531250005],[101.59775390625006,76.43920898437503],[100.92802734375002,76.55673828124998],[100.98994140625004,76.99047851562497],[102.61015625000007,77.508544921875],[104.01455078125,77.73041992187501],[106.05957031249997,77.39052734375002],[104.20244140625002,77.101806640625],[106.9416015625001,77.034375],[107.42978515625006,76.92656250000002],[106.41357421874997,76.51225585937499],[107.72216796875003,76.52231445312498],[108.18164062500003,76.73784179687502],[111.39248046875,76.686669921875],[112.09394531250004,76.48032226562506],[111.94267578125002,76.38046875000003],[112.61953125,76.38354492187506],[112.65625,76.05356445312498],[113.2726562500001,76.25166015625001],[113.5638671875,75.89165039062502],[113.85722656250007,75.92128906250002],[113.56757812500004,75.56840820312499],[112.45302734375,75.83017578125003],[112.95566406250006,75.571923828125],[113.24296875000007,75.61142578125003],[113.72617187500012,75.45063476562498],[112.92490234375012,75.01503906249997],[109.84033203124997,74.32197265624998],[109.8102539062501,74.16918945312503],[108.19951171875002,73.69409179687497],[107.27109375000006,73.62104492187501],[106.67939453125004,73.3306640625],[106.1886718750001,73.3080078125],[105.14394531250005,72.77705078125001],[105.7082031250001,72.836669921875],[106.47792968750005,73.13940429687503],[107.750390625,73.17314453125007],[109.33105468749997,73.48745117187497],[109.85527343750002,73.47246093750002],[110.86816406249997,73.73071289062497],[109.70673828125004,73.74375],[110.2614257812501,74.01743164062503],[111.05625,73.93935546875002],[111.13085937500003,74.05283203125003],[111.55058593750007,74.02851562499998],[111.22812500000012,73.96855468750002],[111.40039062500003,73.827734375],[112.14726562500007,73.70893554687498],[112.79541015625003,73.74609375],[112.83593750000003,73.96206054687502],[113.03281250000006,73.91386718750007],[113.4162109375001,73.647607421875],[113.15693359375004,73.45957031249998],[113.49091796875004,73.34609375000002],[113.12783203125,72.8306640625],[113.66455078124997,72.63452148437503],[113.2155273437501,72.80585937500001],[113.88623046875003,73.34580078124998],[113.51035156250012,73.50498046874998],[115.33769531250007,73.70258789062501],[118.87089843750007,73.53789062500002],[118.45703124999997,73.46440429687507],[118.43027343750012,73.24653320312501],[119.750390625,72.97910156250006],[122.26015625,72.88056640624995],[122.75195312500003,72.906494140625],[122.61523437499997,73.02792968750006],[123.1603515625001,72.95488281250002],[123.62226562500004,73.19326171875],[123.49111328125005,73.666357421875],[124.54121093750004,73.75126953125007],[125.59853515625005,73.447412109375],[126.25449218750012,73.548193359375],[126.55253906250007,73.33491210937498],[127.03134765625006,73.54746093750003],[127.74033203125012,73.48154296875],[129.10058593750003,73.11235351562502],[128.5990234375,72.895166015625],[129.01728515625004,72.8724609375],[129.250390625,72.70517578125003],[128.41826171875002,72.53515625000003],[129.28134765625006,72.43769531249998],[129.41064453124997,72.16630859375002],[128.93496093750005,72.07949218750002],[127.8034179687501,72.43403320312504],[127.84140625000012,72.308251953125],[128.91142578125002,71.75532226562495],[129.21025390625007,71.91694335937501],[129.46083984375,71.73930664062499],[128.84326171875003,71.6634765625],[129.76191406250004,71.11953125000002],[130.53710937500003,70.89252929687495],[130.75712890625002,70.96235351562498],[131.02158203125006,70.74609374999997],[132.0353515625001,71.24404296875],[132.65390625000006,71.92597656250001],[133.6888671875,71.434228515625],[134.70273437500012,71.38681640625003],[135.55917968750006,71.6103515625],[136.09033203125003,71.61958007812501],[137.9396484375001,71.1333984375],[137.84404296875007,71.22680664062503],[138.31406250000006,71.32553710937498],[137.918359375,71.38408203124999],[138.23417968750007,71.596337890625],[138.78017578125,71.62900390624998],[139.209375,71.44477539062501],[139.98417968750007,71.49150390625005],[139.72294921875002,71.88496093749998],[139.35927734375005,71.95136718750001],[140.18769531250004,72.19130859374997],[139.17636718750006,72.16347656249997],[139.14082031250004,72.32973632812502],[139.60117187500012,72.49609374999997],[141.07929687500004,72.5869140625],[140.80820312500006,72.89096679687503],[142.06142578125005,72.72080078125],[146.25292968749997,72.442236328125],[146.234765625,72.34970703125],[144.77636718749997,72.38227539062495],[144.16923828125002,72.25878906250003],[144.29492187499997,72.19262695312497],[146.83183593750007,72.29541015625003],[146.11328125000003,71.94497070312497],[146.23027343750007,72.1375],[145.75859375000007,72.22587890624999],[145.75673828125005,71.94130859375002],[145.06396484374997,71.92607421875002],[145.18857421875012,71.69580078125],[146.07324218749997,71.80834960937503],[147.26181640625006,72.327880859375],[149.50156250000012,72.16430664062497],[150.01689453125002,71.89565429687505],[149.04873046875005,71.79575195312503],[148.9681640625,71.69047851562499],[150.59980468750004,71.5201171875],[150.09765624999997,71.22656249999997],[150.96777343749997,71.38046874999998],[151.58242187500005,71.28696289062503],[152.09277343749997,71.02329101562503],[151.76201171875002,70.98247070312499],[152.50878906250003,70.83447265625003],[156.68457031250003,71.09375],[158.03701171875005,71.03925781250001],[159.35068359375006,70.79072265625001],[160.00644531250006,70.30966796875006],[159.72939453125005,69.87021484375006],[160.91074218750012,69.60634765625002],[161.03554687500005,69.09819335937507],[161.30986328125007,68.98227539062498],[160.85605468750006,68.53833007812506],[161.565625,68.90517578125],[161.53691406250002,69.379541015625],[162.16601562499997,69.61157226562503],[163.20136718750004,69.71474609375],[166.82031250000003,69.49956054687505],[167.8568359375,69.72822265624998],[168.30302734375002,69.27148437500003],[169.31064453125006,69.07954101562498],[169.60986328124997,68.78603515624997],[170.53759765624997,68.82539062500001],[170.99541015625002,69.04531250000005],[170.58222656250004,69.58334960937506],[170.16093750000007,69.62656249999998],[170.48681640625003,70.107568359375],[173.27744140625006,69.823828125],[173.43867187500004,69.94682617187502],[175.92148437500012,69.89531250000002],[179.27265624999998,69.25966796875002],[180,68.98344726562505],[180,65.06723632812498],[178.51953125000003,64.60297851562498],[177.7486328125,64.71704101562503],[176.88085937499997,65.08193359375002],[176.34101562500015,65.04731445312501],[177.03730468750004,64.99965820312497],[177.22285156250004,64.861669921875],[177.06875,64.78666992187502],[176.06113281250012,64.96088867187498],[174.54882812500009,64.68388671875005],[176.0565429687501,64.90473632812498],[176.35097656250005,64.70512695312502],[176.14091796875007,64.58583984375005],[177.42744140625015,64.76337890624998],[177.43291015625002,64.44448242187502],[177.6875,64.30473632812507],[178.04472656250013,64.21958007812503],[178.22949218749991,64.36440429687497],[178.38144531250018,64.26088867187502],[178.73144531250003,63.667089843750006],[178.44042968750009,63.605566406250006],[178.74404296874994,63.39477539062503],[178.79296874999997,63.54033203125002],[179.38857421875,63.14721679687497],[179.25957031250002,63.00830078125],[179.5705078125001,62.6875],[179.12070312500012,62.32036132812499],[177.292578125,62.59902343750002],[177.33896484375006,62.781347656250034],[177.02353515625012,62.777246093749994],[177.15947265625007,62.56098632812498],[174.51435546875015,61.823632812499966],[173.6234375,61.716064453125],[173.13183593749997,61.40664062500002],[172.85654296875006,61.469189453124955],[172.90800781250002,61.311621093750006],[172.39609375000006,61.16738281250002],[172.39277343750004,61.061767578125],[170.60820312500007,60.434912109375034],[170.3509765625,59.965527343749955],[169.9826171875001,60.067089843749955],[169.2267578125001,60.59594726562497],[168.1375,60.57392578125001],[167.22675781250004,60.406298828125045],[166.27304687500012,59.85625],[166.13603515625007,59.979345703125034],[166.35214843750006,60.48481445312498],[165.08457031250006,60.09858398437498],[164.95371093750006,59.843603515625006],[164.52529296875,60.06127929687503],[164.11328125000003,59.89755859374998],[164.13505859375002,59.984375],[163.74384765625004,60.02802734374998],[163.36484375000012,59.78144531250004],[163.27285156250005,59.302587890625006],[162.14160156249997,58.44741210937502],[161.96005859375012,58.07690429687506],[162.39140625000002,57.717236328124955],[162.65429687499997,57.94824218750003],[163.22578125000004,57.790380859375034],[162.77929687500003,57.35761718749998],[162.79111328125012,56.875390624999966],[162.92207031250004,56.72265625000003],[163.2565429687501,56.68803710937499],[163.33554687500012,56.232519531250006],[163.04736328125003,56.044677734375],[162.84033203125003,56.065625],[162.628125,56.232275390625034],[163.03837890625002,56.521875],[162.67148437500006,56.49008789062498],[162.52822265625005,56.260693359374955],[162.08496093749997,56.08964843750002],[161.72392578125002,55.49614257812499],[162.10556640625006,54.75214843750004],[161.62480468750002,54.51625976562502],[160.77265625000004,54.54135742187498],[160.0744140625001,54.18916015625001],[159.84375,53.78364257812498],[160.02509765625004,53.129589843749955],[159.58593750000003,53.237695312499966],[158.74541015625002,52.90893554687506],[158.47207031250005,53.032373046874966],[158.6087890625,52.873632812500034],[158.49316406249997,52.383154296875034],[158.10351562500003,51.80961914062499],[156.84746093750002,51.006591796875],[156.74775390625004,50.969287109375045],[156.52119140625004,51.38027343750002],[156.36474609374997,52.509375],[156.11035156250003,52.86616210937504],[155.62031250000004,54.86455078125002],[155.5548828125001,55.348486328125034],[155.98251953125012,56.69521484375002],[156.8488281250001,57.290185546874994],[156.97675781250004,57.46630859375],[156.82988281250007,57.77963867187498],[157.4503906250001,57.79926757812498],[157.66640625000005,58.01977539062506],[158.27519531250007,58.00898437499998],[159.21064453125004,58.519433593749966],[159.8473632812501,59.127148437499955],[161.75351562500012,60.15229492187501],[162.06816406250002,60.466406250000034],[163.70996093749997,60.916796875000045],[163.55351562500002,61.02563476562503],[164.00546875000006,61.34379882812499],[163.80439453125004,61.46137695312498],[164.20722656250004,62.29223632812506],[164.59833984375004,62.470556640625034],[165.20810546875012,62.37397460937501],[165.41738281250005,62.447070312500045],[164.418359375,62.704638671875045],[163.33173828125004,62.550927734374994],[163.01767578125006,61.89106445312504],[163.25781249999997,61.69946289062497],[163.08525390625002,61.570556640625],[162.85595703125003,61.705029296874955],[162.39257812500003,61.662109375],[160.76660156249997,60.753320312499966],[160.17363281250002,60.638427734375],[160.37890625000003,61.02548828124998],[159.79042968750005,60.956640625],[160.309375,61.894384765625006],[159.55234375000012,61.71948242187497],[159.18925781250007,61.92939453125001],[158.07011718750002,61.75361328125001],[157.46933593750012,61.798925781250006],[157.0841796875001,61.67568359375002],[155.71611328125002,60.682373046875],[154.97080078125012,60.376660156249955],[154.29306640625006,59.833349609375034],[154.1498046875,59.52851562500001],[154.97128906250006,59.44960937500002],[155.16044921875002,59.19013671875001],[154.45800781250003,59.21655273437497],[154.01093750000004,59.075537109375006],[153.69521484375005,59.22475585937505],[153.36113281250002,59.214794921874955],[152.81787109375003,58.92626953124997],[152.31962890625002,59.03076171875003],[152.08789062499997,58.910449218750045],[151.32675781250006,58.875097656250034],[151.12109375000003,59.08251953125003],[152.26064453125,59.22358398437498],[151.34824218750012,59.561132812500006],[150.4835937500001,59.494384765625],[150.66728515625002,59.55634765625001],[149.64257812499997,59.770410156249994],[149.06523437500002,59.63051757812502],[149.20498046875,59.488183593749966],[148.79707031250004,59.532324218750006],[148.74414062499997,59.37353515624997],[148.96464843750007,59.36914062499997],[148.72666015625006,59.257910156250034],[148.25742187500006,59.414208984374994],[147.51445312500002,59.2685546875],[146.53720703125006,59.45698242187501],[146.0495117187501,59.17055664062502],[145.55458984375,59.413525390624955],[143.19218750000002,59.3701171875],[142.58027343750004,59.240136718749966],[140.79023437500004,58.30346679687503],[140.446875,57.81367187499998],[138.66210937500003,56.96552734375004],[137.69150390625006,56.13935546875004],[135.2625,54.94331054687498],[135.25771484375005,54.73149414062499],[135.85156249999997,54.583935546874955],[136.797265625,54.62099609375005],[136.71884765625006,53.804101562499994],[137.15537109375012,53.82167968750002],[137.14160156249997,54.182226562500006],[137.66601562500003,54.283300781250006],[137.3392578125,54.10053710937498],[137.83476562500002,53.94672851562498],[137.25371093750007,53.546142578125],[137.95048828125007,53.60356445312499],[138.52792968750012,53.959863281249994],[138.56914062500002,53.818798828124955],[138.24970703125004,53.524023437500034],[138.45068359375003,53.53701171875002],[138.69941406250004,53.869726562500034],[138.65722656249997,54.29833984375003],[139.31972656250005,54.19296874999998],[139.707421875,54.27714843749999],[140.68759765625012,53.59643554687503],[141.3737304687501,53.29277343749999],[141.18125,53.01528320312505],[140.83964843750002,53.087890625],[141.25585937499997,52.84013671874996],[141.13242187500006,52.435693359374994],[141.48525390625,52.17851562500002],[141.36689453125004,51.92065429687506],[140.93261718750003,51.61992187499999],[140.5208984375,50.80019531250005],[140.62451171874997,50.08242187500002],[140.46269531250002,49.911474609375006],[140.51718750000012,49.59614257812498],[140.17060546875004,48.52368164062497],[138.58681640625005,47.057226562500006],[138.33691406250003,46.543408203124955],[137.68544921875,45.81835937500003],[136.14228515625004,44.489111328125034],[135.87460937500012,44.37353515625003],[135.1310546875001,43.52573242187506],[134.01044921875004,42.94746093750001],[133.15996093750007,42.69697265624998],[132.70898437500003,42.875830078125006],[132.30380859375006,42.88330078125],[132.30957031249997,43.31352539062499],[131.8666015625,43.09516601562501],[131.93896484374997,43.30195312500004],[131.15830078125012,42.62602539062499],[130.709375,42.656396484374966],[130.8341796875001,42.52294921875006],[130.68730468750007,42.30253906249999]]],[[[107.69550781250004,78.13090820312505],[107.48164062500004,78.057763671875],[106.41552734375003,78.13984375000001],[107.69550781250004,78.13090820312505]]],[[[102.88476562499997,79.25395507812505],[102.4123046875001,78.83544921874997],[103.80078124999997,79.14926757812503],[104.45205078125005,78.880029296875],[105.14599609375003,78.81884765625006],[105.31259765625012,78.49990234375],[104.74179687500012,78.33974609374997],[102.79667968750007,78.18789062500002],[101.20410156249997,78.19194335937505],[99.50029296875002,77.97607421875003],[101.590625,79.350439453125],[102.25126953125002,79.25605468749995],[102.40488281250006,79.43320312499998],[102.88476562499997,79.25395507812505]]],[[[76.24892578125005,79.65107421874995],[77.58896484375012,79.50190429687504],[76.64951171875012,79.493408203125],[76.24892578125005,79.65107421874995]]],[[[92.68349609375005,79.685205078125],[91.37626953125007,79.83549804687505],[91.22929687500007,80.03071289062504],[93.803125,79.904541015625],[92.68349609375005,79.685205078125]]],[[[51.409277343750006,79.94423828125],[50.09140625,79.98056640625003],[50.93632812500002,80.09423828125],[51.409277343750006,79.94423828125]]],[[[59.68886718750005,79.95581054687506],[58.91923828125002,79.98461914062506],[59.54453125000006,80.11884765624995],[59.68886718750005,79.95581054687506]]],[[[97.67451171875004,80.15825195312499],[97.65166015625002,79.76064453125],[98.59648437500002,80.05219726562495],[100.0612304687501,79.77709960937506],[99.68066406250003,79.32333984374998],[99.04179687500007,79.29301757812502],[99.92929687500012,78.96142578124997],[98.41113281250003,78.78779296875004],[95.53105468750007,79.09809570312501],[95.02041015625005,79.05268554687498],[94.21875,79.40234375],[93.07080078124997,79.49531250000001],[94.98730468749997,80.096826171875],[95.28134765625012,80.030517578125],[97.67451171875004,80.15825195312499]]],[[[50.05175781250003,80.07431640625003],[49.55605468750005,80.15893554687503],[49.883691406249994,80.230224609375],[50.05175781250003,80.07431640625003]]],[[[57.07871093750006,80.35092773437498],[56.986914062500006,80.07148437499998],[55.811621093750006,80.08715820312497],[56.02441406250003,80.34130859374997],[57.07871093750006,80.35092773437498]]],[[[53.521386718749994,80.18520507812497],[52.34355468750002,80.213232421875],[52.85390625,80.40239257812499],[53.85166015625006,80.26835937500005],[53.521386718749994,80.18520507812497]]],[[[57.95625,80.12324218749995],[57.33232421875002,80.15810546875005],[57.075,80.49394531249999],[59.25546875000006,80.34321289062501],[58.39794921874997,80.31875],[57.95625,80.12324218749995]]],[[[54.41533203125002,80.47280273437502],[53.811914062499994,80.47622070312502],[53.87724609375002,80.60527343750002],[54.41533203125002,80.47280273437502]]],[[[47.441992187500006,80.853662109375],[48.44570312500005,80.80600585937506],[48.68359375000003,80.63325195312504],[47.7052734375001,80.76518554687499],[46.141406250000074,80.44672851562495],[45.969042968750074,80.56948242187502],[44.9049804687501,80.61127929687501],[47.441992187500006,80.853662109375]]],[[[62.167773437500074,80.83476562500005],[62.07578125000006,80.616943359375],[61.05126953124997,80.418603515625],[60.27832031249997,80.49443359374999],[59.649804687499994,80.43125],[59.59228515625003,80.81650390624998],[62.167773437500074,80.83476562500005]]],[[[50.278125,80.92724609374997],[51.70361328125003,80.68764648437502],[48.81103515625003,80.35371093750001],[48.97753906250003,80.16259765624997],[47.73730468749997,80.08168945312502],[47.89296875000005,80.23925781249997],[46.991015625000074,80.182763671875],[46.644433593749994,80.30034179687507],[47.89580078125002,80.52905273437503],[49.087792968749994,80.515771484375],[49.24433593750004,80.82138671875],[50.278125,80.92724609374997]]],[[[80.02666015625007,80.84814453125003],[79.09853515625005,80.81206054687505],[79.21738281250012,80.96035156249997],[80.27958984375007,80.94980468750003],[80.02666015625007,80.84814453125003]]],[[[61.1408203125001,80.95034179687497],[60.0783203125001,80.99916992187497],[61.45742187499999,81.10395507812501],[61.1408203125001,80.95034179687497]]],[[[54.71894531250004,81.11596679687497],[56.47226562500006,80.99824218749995],[57.58037109375002,80.75546874999998],[55.88339843750006,80.62841796875003],[54.66816406250004,80.73867187500002],[54.04541015624997,80.87197265625],[54.71894531250004,81.11596679687497]]],[[[58.62236328125002,81.04165039062502],[58.930566406249994,80.83168945312497],[58.28564453124997,80.76489257812503],[57.21093749999997,81.01708984374997],[58.04951171875004,81.11845703125002],[58.62236328125002,81.04165039062502]]],[[[63.37382812500002,80.70009765624997],[62.59257812500002,80.85302734375006],[64.80205078125002,81.197265625],[65.43740234375005,80.93071289062507],[63.37382812500002,80.70009765624997]]],[[[91.56718750000007,81.14121093750003],[91.2228515625001,81.063818359375],[89.90117187500002,81.17070312500002],[91.56718750000007,81.14121093750003]]],[[[96.52656250000004,81.0755859375],[97.86992187500007,80.76328125000006],[97.02539062499997,80.53554687500002],[97.29843750000006,80.27275390625005],[93.6546875,80.009619140625],[91.52382812500005,80.35854492187502],[93.2625,80.79125976562497],[92.59257812500007,80.780859375],[92.7103515625,80.87216796875003],[95.1595703125,81.27099609375003],[95.80068359375005,81.28046874999998],[96.52656250000004,81.0755859375]]],[[[57.81025390625004,81.54604492187502],[58.563867187499994,81.41840820312504],[57.858691406250074,81.36806640625],[57.76972656250004,81.16972656249999],[55.71669921875005,81.1884765625],[55.46601562500004,81.31118164062502],[57.81025390625004,81.54604492187502]]],[[[63.65097656250006,81.60932617187501],[62.10644531249997,81.679345703125],[63.709570312500006,81.68730468750002],[63.65097656250006,81.60932617187501]]],[[[58.29541015625003,81.715185546875],[58.13457031250002,81.82797851562498],[59.261816406250006,81.85419921874998],[59.35644531250003,81.75898437499995],[58.29541015625003,81.715185546875]]]]},"properties":{"name":"Russia","childNum":73}},{"geometry":{"type":"Polygon","coordinates":[[[30.50996093750001,-1.067285156250009],[30.47705078125,-1.0830078125],[30.47021484375,-1.131152343750003],[30.508105468750017,-1.208203125000011],[30.631933593750006,-1.367480468750003],[30.710742187500017,-1.396777343750003],[30.76220703125,-1.458691406250011],[30.812597656250006,-1.563085937500006],[30.8765625,-2.143359375],[30.85498046875,-2.265429687500003],[30.828710937500006,-2.338476562500006],[30.7625,-2.371679687500006],[30.71484375,-2.363476562500011],[30.656640625000023,-2.373828125],[30.593359375,-2.396777343750003],[30.553613281250023,-2.400097656250011],[30.408496093750017,-2.31298828125],[30.117285156250006,-2.416601562500006],[29.93017578125,-2.339550781250011],[29.8681640625,-2.71640625],[29.698046875000017,-2.794726562500003],[29.390234375,-2.80859375],[29.10205078125,-2.595703125],[29.01435546875001,-2.72021484375],[28.893945312500023,-2.635058593750003],[28.876367187500023,-2.400292968750009],[29.13154296875001,-2.195117187500003],[29.196582031250017,-1.719921875000011],[29.576953125000017,-1.387890625000011],[29.82539062500001,-1.335546875],[29.930078125000023,-1.469921875000011],[30.360253906250023,-1.074609375],[30.41230468750001,-1.063085937500006],[30.46992187500001,-1.066015625],[30.50996093750001,-1.067285156250009]]]},"properties":{"name":"Rwanda","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[41.98769531250005,16.715625],[42.059960937499994,16.803515625000017],[42.15781250000006,16.570703125000023],[41.80156250000002,16.778759765624955],[41.86044921875006,17.002539062499977],[41.98769531250005,16.715625]]],[[[46.53144531250004,29.09624023437499],[47.433203125,28.989550781250017],[47.671289062499994,28.53315429687504],[48.442480468750006,28.542919921874983],[48.80898437499999,27.895898437499966],[48.797167968750074,27.72431640625001],[49.2375,27.49272460937499],[49.17509765625002,27.43764648437505],[49.40527343749997,27.18095703124996],[50.149804687499994,26.66264648437499],[50.00810546875002,26.678515625000017],[50.21386718750003,26.30849609375005],[50.15546875000004,26.100537109374955],[50.03164062499999,26.11098632812505],[50.55791015625002,25.086669921875],[50.66689453125005,24.96381835937501],[50.72558593749997,24.869384765625057],[50.80439453125004,24.789257812499983],[50.928320312500006,24.595117187500023],[50.96601562500004,24.573925781249983],[51.022753906250074,24.56523437499999],[51.09335937500006,24.564648437499955],[51.178027343750074,24.586718750000017],[51.26796875,24.607226562500017],[51.33847656250006,24.564355468749994],[51.41123046875006,24.570800781250057],[51.30986328125002,24.340380859375017],[51.56835937500003,24.286181640625074],[51.592578125000074,24.07885742187503],[52.55507812500005,22.932812499999955],[55.104296875000074,22.621484375000023],[55.185839843750074,22.7041015625],[55.64101562499999,22.001855468749994],[54.97734375000002,19.995947265625006],[51.977636718750006,18.996142578125074],[49.04199218750003,18.58178710937503],[48.17216796875002,18.156933593749983],[47.57958984374997,17.448339843750034],[47.44179687499999,17.111865234375045],[47.14355468749997,16.946679687499966],[46.97568359375006,16.953466796875034],[46.72763671875006,17.26557617187501],[45.5353515625001,17.30205078124999],[45.14804687500006,17.427441406249955],[43.91699218749997,17.32470703124997],[43.41796875000003,17.516259765625023],[43.19091796875003,17.359375],[43.16503906249997,16.689404296874955],[42.79931640624997,16.37177734375001],[42.29394531249997,17.434960937499966],[41.75,17.88574218749997],[41.22949218750003,18.678417968749983],[40.75917968750005,19.755468750000034],[40.080664062500006,20.265917968750017],[39.728320312500074,20.390332031249955],[39.27607421875004,20.973974609375034],[39.093554687500074,21.31035156249999],[39.14707031250006,21.518994140624955],[38.98789062500006,21.88173828125005],[39.06201171874997,22.592187500000023],[38.46416015625002,23.71186523437504],[37.91972656250002,24.185400390625063],[37.54306640625006,24.291650390625023],[37.18085937500004,24.82001953125001],[37.26630859375004,24.960058593750034],[37.14882812499999,25.291113281249977],[35.18046875000002,28.03486328125004],[34.722070312499994,28.130664062500017],[34.625,28.064501953125017],[34.95078125,29.353515625],[36.068457031250006,29.200537109375006],[36.28281250000006,29.355371093750023],[36.47607421874997,29.49511718749997],[36.59179687500003,29.666113281250006],[36.703906250000074,29.831640624999977],[36.75527343750005,29.86601562499996],[37.46923828125003,29.995068359374955],[37.49072265625003,30.01171874999997],[37.55361328125005,30.14458007812496],[37.63359375000002,30.313281250000045],[37.64990234374997,30.330957031249994],[37.669726562500074,30.34814453125003],[37.862890625,30.44262695312503],[37.98007812500006,30.5],[37.47900390624997,31.007763671874955],[37.10527343750002,31.35517578125004],[36.95859375000006,31.491503906250017],[37.215625,31.55610351562501],[37.49335937500004,31.625878906250023],[38.111425781250006,31.78115234375005],[38.37548828124997,31.84746093749996],[38.962304687499994,31.99492187499999],[38.99707031249997,32.00747070312505],[39.145410156249994,32.12451171875],[39.36865234374997,32.09174804687498],[39.70410156250003,32.04252929687499],[40.02783203124997,31.995019531249994],[40.3693359375001,31.93896484375003],[40.47890625000005,31.89335937499999],[42.07441406250004,31.08037109374999],[43.77373046875002,29.84921875],[44.71650390625004,29.19360351562503],[46.35644531250003,29.06367187500001],[46.53144531250004,29.09624023437499]]]]},"properties":{"name":"Saudi Arabia","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[36.87138671875002,21.996728515624994],[36.92695312500001,21.58652343749999],[37.25859375000002,21.108544921874994],[37.25722656250002,21.03940429687499],[37.15058593750001,21.103759765625],[37.14111328125,20.98178710937499],[37.19316406250002,20.12070312499999],[37.471289062500006,18.820117187500003],[38.609472656250006,18.005078125],[38.422460937500006,17.823925781249997],[38.39716796875001,17.778369140625003],[38.38554687500002,17.751269531250003],[38.37373046875001,17.717333984375003],[38.34736328125001,17.68359375],[38.28984375000002,17.637011718750003],[38.26728515625001,17.61669921875],[38.253515625,17.584765625],[37.78242187500001,17.4580078125],[37.547460937500006,17.324121093749994],[37.51015625000002,17.288134765625003],[37.45292968750002,17.108691406250003],[37.41103515625002,17.06171875],[37.24882812500002,17.056884765625],[37.16953125,17.04140625],[37.0615234375,17.061279296875],[37.00898437500001,17.058886718750003],[36.995214843750006,17.020556640625003],[36.97578125000001,16.86655273437499],[36.97871093750001,16.800585937500003],[36.887792968750006,16.624658203124994],[36.91376953125001,16.296191406250003],[36.566015625,15.362109375],[36.4267578125,15.132080078125],[36.44814453125002,14.940087890624994],[36.470800781250006,14.736474609374994],[36.52431640625002,14.2568359375],[36.12519531250001,12.75703125],[35.67021484375002,12.623730468749997],[35.1123046875,11.816552734374994],[34.93144531250002,10.864794921874989],[34.77128906250002,10.746191406249991],[34.571875,10.880175781249989],[34.34394531250001,10.658642578124997],[34.31123046875001,10.190869140624997],[34.078125,9.461523437499991],[33.87148437500002,9.506152343749989],[33.96328125000002,9.861767578124997],[33.90703125000002,10.181445312499989],[33.13007812500001,10.745947265624991],[33.073339843750006,11.606103515624994],[33.199316406250006,12.21728515625],[32.721875,12.223095703124997],[32.73671875000002,12.009667968749994],[32.072265625,12.006738281249994],[32.338476562500006,11.710107421874994],[32.42080078125002,11.089111328125],[31.224902343750017,9.799267578124997],[30.75537109375,9.731201171875],[30.003027343750006,10.277392578124989],[29.60546875,10.065087890624994],[29.47314453125,9.768603515624989],[28.979589843750006,9.594189453124997],[28.844531250000017,9.326074218749994],[28.048925781250006,9.32861328125],[27.880859375,9.601611328124989],[27.07421875,9.613818359374989],[26.65869140625,9.484130859375],[25.91914062500001,10.169335937499994],[25.858203125000017,10.406494140625],[25.211718750000017,10.329931640624991],[25.066992187500006,10.293798828124991],[24.785253906250006,9.774658203125],[24.53193359375001,8.886914062499997],[24.147363281250023,8.665625],[23.53730468750001,8.815820312499994],[23.46826171875,9.11474609375],[23.62265625,9.340625],[23.646289062500017,9.822900390624994],[22.86005859375001,10.919677734375],[22.922656250000017,11.344873046874994],[22.591113281250017,11.579882812499989],[22.580957031250023,11.990136718749994],[22.472460937500017,12.067773437499994],[22.352343750000017,12.660449218749989],[21.928125,12.678125],[21.825292968750006,12.79052734375],[22.228125,13.32958984375],[22.1064453125,13.7998046875],[22.53857421875,14.161865234375],[22.38154296875001,14.550488281249997],[22.6708984375,14.722460937500003],[22.93232421875001,15.162109375],[22.933886718750017,15.533105468749994],[23.10517578125001,15.702539062499994],[23.970800781250006,15.721533203124991],[23.980273437500017,19.496630859375003],[23.980273437500017,19.99594726562499],[24.9794921875,20.002587890624994],[24.980273437500017,21.995849609375],[28.036425781250017,21.995361328125],[31.092675781250023,21.994873046875],[31.260644531250023,22.00229492187499],[31.400292968750023,22.202441406250003],[31.486132812500017,22.14780273437499],[31.434472656250023,21.995849609375],[36.87138671875002,21.996728515624994]]]},"properties":{"name":"Sudan","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[34.078125,9.461523437499991],[34.07275390625,8.545263671874991],[33.95332031250001,8.443505859374994],[33.28105468750002,8.437255859375],[32.99892578125002,7.899511718749991],[33.902441406250006,7.509521484375],[34.06425781250002,7.225732421874994],[34.71064453125001,6.660302734374994],[34.98359375000001,5.858300781249994],[35.26835937500002,5.492285156249991],[35.08447265625,5.311865234374991],[34.87832031250002,5.109570312499997],[34.63984375000001,4.87548828125],[34.38017578125002,4.620654296874989],[34.176855468750006,4.419091796874994],[33.97607421875,4.22021484375],[33.74160156250002,3.985253906249994],[33.568457031250006,3.81171875],[33.489355468750006,3.755078125],[32.99726562500001,3.880175781249989],[32.33574218750002,3.706201171874994],[32.13593750000001,3.519726562499997],[31.79804687500001,3.802636718749994],[31.547167968750017,3.677587890624991],[31.15234375,3.785595703124997],[30.83857421875001,3.49072265625],[30.757226562500023,3.62421875],[30.586718750000017,3.62421875],[30.50830078125,3.835693359375],[30.194921875,3.98193359375],[29.676855468750006,4.5869140625],[29.469628906250023,4.61181640625],[29.224902343750017,4.391894531249989],[28.72705078125,4.504980468749991],[28.427539062500017,4.324169921874997],[28.19208984375001,4.350244140624994],[27.7880859375,4.644677734374994],[27.4033203125,5.109179687499989],[27.143945312500023,5.722949218749989],[26.514257812500006,6.069238281249994],[26.30859375,6.455322265625],[26.36181640625,6.635302734374989],[25.27890625,7.427490234375],[25.18134765625001,7.557226562499991],[25.20039062500001,7.807910156249989],[24.853320312500017,8.137548828124991],[24.291406250000023,8.29140625],[24.147363281250023,8.665625],[24.53193359375001,8.886914062499997],[24.785253906250006,9.774658203125],[25.066992187500006,10.293798828124991],[25.211718750000017,10.329931640624991],[25.858203125000017,10.406494140625],[25.91914062500001,10.169335937499994],[26.65869140625,9.484130859375],[27.07421875,9.613818359374989],[27.880859375,9.601611328124989],[28.048925781250006,9.32861328125],[28.844531250000017,9.326074218749994],[28.979589843750006,9.594189453124997],[29.47314453125,9.768603515624989],[29.60546875,10.065087890624994],[30.003027343750006,10.277392578124989],[30.75537109375,9.731201171875],[31.224902343750017,9.799267578124997],[32.42080078125002,11.089111328125],[32.338476562500006,11.710107421874994],[32.072265625,12.006738281249994],[32.73671875000002,12.009667968749994],[32.721875,12.223095703124997],[33.199316406250006,12.21728515625],[33.073339843750006,11.606103515624994],[33.13007812500001,10.745947265624991],[33.90703125000002,10.181445312499989],[33.96328125000002,9.861767578124997],[33.87148437500002,9.506152343749989],[34.078125,9.461523437499991]]]},"properties":{"name":"S. Sudan","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-12.280615234374977,14.809033203124997],[-12.228417968749994,14.45859375],[-12.019189453124994,14.206494140624997],[-11.960888671874983,13.875292968750003],[-12.05419921875,13.633056640625],[-11.831689453124994,13.315820312499994],[-11.634960937499983,13.369873046875],[-11.390380859375,12.941992187499991],[-11.389404296875,12.404394531249991],[-12.399072265624994,12.340087890625],[-12.930712890624989,12.532275390624989],[-13.061279296875,12.489990234375],[-13.082910156249994,12.633544921875],[-13.729248046875,12.673925781249991],[-14.06484375,12.67529296875],[-14.349218749999977,12.676416015624994],[-15.196093749999989,12.679931640625],[-15.3779296875,12.588964843749991],[-15.574804687499977,12.490380859374994],[-15.839550781249983,12.43789062499999],[-16.144189453124994,12.45742187499999],[-16.24150390624999,12.443310546874997],[-16.41630859374999,12.36767578125],[-16.521337890624977,12.3486328125],[-16.656933593749983,12.364355468749991],[-16.711816406249994,12.354833984374991],[-16.76030273437499,12.52578125],[-16.44287109375,12.609472656249991],[-16.59765625,12.715283203124997],[-16.743896484375,12.58544921875],[-16.763330078124994,13.064160156249997],[-16.648779296874977,13.154150390624991],[-15.834277343749989,13.156445312499997],[-15.814404296874983,13.325146484374997],[-15.286230468749977,13.39599609375],[-15.151123046875,13.556494140624991],[-14.246777343749983,13.23583984375],[-13.826708984374989,13.4078125],[-13.977392578124977,13.54345703125],[-14.405468749999983,13.503710937500003],[-15.108349609374983,13.81210937499999],[-15.426855468749977,13.727001953124997],[-15.509667968749994,13.586230468750003],[-16.56230468749999,13.587304687499994],[-16.766943359374977,13.904931640624994],[-16.618115234374983,14.04052734375],[-16.791748046875,14.004150390625],[-17.168066406249977,14.640625],[-17.345800781249977,14.729296875],[-17.445019531249983,14.651611328125],[-17.53564453125,14.755126953125],[-17.147167968749983,14.922021484374994],[-16.843408203124994,15.293994140625003],[-16.570751953124983,15.734423828125003],[-16.535253906249977,15.83837890625],[-16.502050781249977,15.917333984374991],[-16.480078124999977,16.097216796875003],[-16.441015624999977,16.204541015624997],[-16.239013671875,16.531298828125003],[-15.768212890624994,16.485107421875],[-14.990625,16.676904296874994],[-14.300097656249989,16.580273437499997],[-13.868457031249989,16.148144531249997],[-13.756640624999989,16.172509765624994],[-13.40966796875,16.05917968749999],[-13.105273437499989,15.57177734375],[-12.735253906249994,15.13125],[-12.40869140625,14.889013671874991],[-12.280615234374977,14.809033203124997]]]},"properties":{"name":"Senegal","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[103.9697265625,1.331445312499994],[103.65019531249999,1.325537109374991],[103.81796875000003,1.447070312499989],[103.9697265625,1.331445312499994]]]},"properties":{"name":"Singapore","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-37.10332031249996,-54.065625],[-36.70380859375001,-54.10810546874999],[-36.64741210937498,-54.26230468749996],[-36.32646484374996,-54.251171875],[-35.79858398437497,-54.76347656250002],[-36.08549804687499,-54.86679687500001],[-36.885986328125,-54.33945312499996],[-37.63090820312496,-54.16748046875001],[-37.61884765625001,-54.04208984375004],[-38.017431640625034,-54.008007812500026],[-37.10332031249996,-54.065625]]]},"properties":{"name":"S. Geo. and S. Sandw. Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-5.692138671874972,-15.997753906249997],[-5.782519531250017,-16.00400390625002],[-5.707861328124977,-15.90615234374998],[-5.692138671874972,-15.997753906249997]]]},"properties":{"name":"Saint Helena","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[160.57626953125006,-11.797851562500028],[160.44306640625004,-11.814941406249957],[159.98632812499997,-11.494726562500006],[160.57626953125006,-11.797851562500028]]],[[[166.13320312500005,-10.757812499999972],[165.90400390625004,-10.851464843749966],[165.79101562500003,-10.784765624999963],[166.02382812500005,-10.6611328125],[166.13320312500005,-10.757812499999972]]],[[[161.71533203124997,-10.387304687499991],[162.10537109375005,-10.45380859375004],[162.37333984375002,-10.823242187499986],[161.78681640625004,-10.716894531249991],[161.53789062500007,-10.566406249999972],[161.4870117187501,-10.361425781249963],[161.29394531250003,-10.326464843750031],[161.30478515625012,-10.204394531250031],[161.71533203124997,-10.387304687499991]]],[[[161.54785156249997,-9.625683593749997],[161.55380859375012,-9.769726562500026],[161.40976562500006,-9.681640625000028],[161.36416015625,-9.353417968750037],[161.54785156249997,-9.625683593749997]]],[[[159.75039062500005,-9.272656250000011],[159.97060546875,-9.433300781249969],[160.35458984375006,-9.421582031249983],[160.81894531250006,-9.862792968749986],[160.64921875000002,-9.92861328124998],[159.80273437499997,-9.763476562500003],[159.61230468749997,-9.470703124999943],[159.62558593750012,-9.311230468749969],[159.75039062500005,-9.272656250000011]]],[[[160.1681640625001,-8.995507812500037],[160.40751953125007,-9.140332031249969],[160.10537109375,-9.080761718749997],[160.1681640625001,-8.995507812500037]]],[[[159.18857421875006,-9.123535156250014],[159.03632812500004,-9.075],[159.12978515625,-8.99306640624998],[159.22841796875005,-9.029980468749955],[159.18857421875006,-9.123535156250014]]],[[[158.10791015625003,-8.684179687500034],[157.93759765625006,-8.73642578125002],[157.90927734375006,-8.565625],[158.10546874999997,-8.536816406250026],[158.10791015625003,-8.684179687500034]]],[[[157.38896484375002,-8.713476562499963],[157.2123046875,-8.565039062500006],[157.37949218750012,-8.420898437499943],[157.38896484375002,-8.713476562499963]]],[[[160.7494140625,-8.313964843750014],[160.99765625000006,-8.612011718749983],[160.94433593750003,-8.799023437499983],[161.15869140624997,-8.961816406250009],[161.36738281250004,-9.61123046874998],[160.77207031250012,-8.963867187499986],[160.7140625000001,-8.539257812499997],[160.59042968750006,-8.372753906249997],[160.7494140625,-8.313964843750014]]],[[[157.76347656250002,-8.242187499999957],[157.89843749999997,-8.506347656249943],[157.81933593750003,-8.612011718749983],[157.58789062500003,-8.445410156249963],[157.5580078125,-8.269921875],[157.30244140625004,-8.33330078124996],[157.21757812500002,-8.262792968749977],[157.490625,-7.965722656250037],[157.76347656250002,-8.242187499999957]]],[[[157.171875,-8.108105468749997],[156.95830078125002,-8.014355468749997],[157.02412109375004,-7.867871093749997],[157.18613281250006,-7.941210937500017],[157.171875,-8.108105468749997]]],[[[156.687890625,-7.92304687500004],[156.5109375000001,-7.707812499999974],[156.5609375,-7.574023437499989],[156.80908203124997,-7.722851562500026],[156.687890625,-7.92304687500004]]],[[[159.8791015625001,-8.534277343749949],[158.9440429687501,-8.04072265625004],[158.457421875,-7.544726562499974],[158.734375,-7.604296875000031],[159.43144531250002,-8.029003906249955],[159.84306640625002,-8.326953124999989],[159.8791015625001,-8.534277343749949]]],[[[155.83984374999997,-7.097167968750014],[155.67753906250002,-7.08896484375002],[155.73896484375004,-6.972949218750017],[155.83984374999997,-7.097167968750014]]],[[[157.48671875000005,-7.330371093750003],[157.44130859375,-7.425683593749966],[157.10156249999997,-7.323632812499966],[156.4525390625,-6.638281249999963],[157.03027343750003,-6.891992187499952],[157.19335937499997,-7.160351562499997],[157.48671875000005,-7.330371093750003]]]]},"properties":{"name":"Solomon Is.","childNum":16}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-12.526074218749926,7.436328125000017],[-12.951611328124926,7.570849609374989],[-12.615234374999972,7.63720703125],[-12.5125,7.582421875000037],[-12.526074218749926,7.436328125000017]]],[[[-10.758593749999989,9.385351562499991],[-10.682714843750006,9.289355468749974],[-10.687646484374937,9.261132812499994],[-10.749951171874926,9.12236328124996],[-10.747021484374955,9.095263671875045],[-10.726855468749932,9.081689453125023],[-10.615966796875,9.059179687499977],[-10.500537109375017,8.687548828125017],[-10.677343749999977,8.400585937499997],[-10.712109374999955,8.335253906250017],[-10.686962890624983,8.321679687500009],[-10.652636718749989,8.330273437499983],[-10.604003906249943,8.319482421874994],[-10.55771484374992,8.315673828125028],[-10.496435546874977,8.362109374999974],[-10.394433593749966,8.480957031250028],[-10.360058593749983,8.49550781249998],[-10.283203124999972,8.48515625],[-10.285742187499949,8.454101562499986],[-10.314648437499983,8.310839843750017],[-10.359814453124926,8.187939453125026],[-10.570849609374932,8.071142578125034],[-10.6474609375,7.759375],[-10.878076171874994,7.538232421874994],[-11.267675781249977,7.232617187499997],[-11.507519531249983,6.906542968750003],[-12.48564453124996,7.386279296875045],[-12.480273437499932,7.75327148437502],[-12.697607421874977,7.715869140625045],[-12.850878906249932,7.818701171875034],[-12.956933593749966,8.145312500000045],[-13.148974609374989,8.214599609375043],[-13.272753906249989,8.429736328124989],[-13.085009765624932,8.42475585937504],[-12.894091796874932,8.62978515624998],[-13.181835937499955,8.576904296875043],[-13.206933593749994,8.843115234375006],[-13.059472656249966,8.881152343750031],[-13.292675781249955,9.04921875],[-13.077294921874966,9.069628906249974],[-12.958789062499989,9.263330078124994],[-12.755859374999943,9.373583984374989],[-12.557861328125,9.704980468749994],[-12.427978515625028,9.898144531250011],[-12.142333984375,9.87539062499999],[-11.911083984374955,9.993017578124977],[-11.273632812499955,9.996533203124983],[-11.205664062499949,9.977734374999969],[-11.180859374999955,9.925341796875045],[-11.047460937499977,9.786328125000054],[-10.758593749999989,9.385351562499991]]]]},"properties":{"name":"Sierra Leone","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-89.36259765624999,14.416015625],[-89.1205078125,14.370214843749991],[-88.51254882812499,13.978955078124997],[-88.504345703125,13.964208984374991],[-88.49765625,13.904541015625],[-88.482666015625,13.854248046875],[-88.44912109375,13.850976562499994],[-88.40849609374999,13.87539062499999],[-88.27622070312499,13.942675781250003],[-88.151025390625,13.987353515625003],[-87.99101562499999,13.879638671875],[-87.8919921875,13.894970703124997],[-87.80224609375,13.889990234374991],[-87.7314453125,13.841064453125],[-87.71533203125,13.812695312499997],[-87.781884765625,13.521386718749994],[-87.930859375,13.1806640625],[-88.68564453124999,13.281494140625],[-88.51201171874999,13.183935546874991],[-89.80419921875,13.560107421875003],[-90.09521484375,13.736523437499997],[-90.04814453124999,13.904052734375],[-89.54716796874999,14.241259765625003],[-89.5736328125,14.390087890624997],[-89.36259765624999,14.416015625]]]},"properties":{"name":"El Salvador","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-56.26708984374997,46.838476562500034],[-56.38476562499994,46.81943359375006],[-56.36464843749994,47.09897460937498],[-56.26708984374997,46.838476562500034]]]},"properties":{"name":"St. Pierre and Miquelon","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[6.659960937499989,0.120654296874989],[6.51972656250004,0.066308593750023],[6.468164062499994,0.22734375],[6.68691406250008,0.404394531249977],[6.75,0.24345703124996],[6.659960937499989,0.120654296874989]]],[[[7.423828125,1.567724609375006],[7.330664062500034,1.603369140624991],[7.414453125000051,1.699121093750037],[7.423828125,1.567724609375006]]]]},"properties":{"name":"São Tomé and Principe","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-54.03422851562499,3.62939453125],[-54.00957031249999,3.448535156249989],[-54.06318359375,3.353320312499989],[-54.18803710937499,3.178759765624989],[-54.203125,3.13818359375],[-54.17070312499999,2.993603515624997],[-54.18808593749999,2.874853515624991],[-54.1955078125,2.81787109375],[-54.256738281249994,2.713720703124991],[-54.402001953124994,2.461523437499991],[-54.53593749999999,2.343310546874989],[-54.56840820312499,2.342578124999989],[-54.604736328125,2.335791015624991],[-54.61625976562499,2.326757812499991],[-54.661865234375,2.327539062499994],[-54.697412109374994,2.359814453124997],[-54.72221679687499,2.441650390625],[-54.87607421874999,2.450390625],[-54.92656249999999,2.497363281249989],[-54.968408203124994,2.54833984375],[-54.978662109374994,2.59765625],[-55.005810546875,2.59296875],[-55.0703125,2.54833984375],[-55.11411132812499,2.539208984374994],[-55.1876953125,2.547509765624994],[-55.286035156249994,2.499658203124994],[-55.343994140625,2.48876953125],[-55.38535156249999,2.440625],[-55.73056640624999,2.406152343749994],[-55.957470703125,2.520458984374997],[-55.99350585937499,2.497509765624997],[-56.02036132812499,2.392773437499997],[-56.0451171875,2.364404296874994],[-56.087792968749994,2.34130859375],[-56.12939453125,2.299511718749997],[-56.1376953125,2.259033203125],[-56.073632812499994,2.236767578124997],[-56.02006835937499,2.158154296874997],[-55.96196289062499,2.095117187499994],[-55.91533203124999,2.03955078125],[-55.921630859375,1.976660156249991],[-55.929638671875,1.8875],[-56.01992187499999,1.842236328124997],[-56.4828125,1.942138671875],[-56.704345703125,2.036474609374991],[-57.19736328124999,2.853271484375],[-57.303662109375,3.377099609374994],[-57.646728515625,3.39453125],[-58.05429687499999,4.101660156249991],[-57.84599609374999,4.668164062499997],[-57.91704101562499,4.820410156249991],[-57.711083984374994,4.991064453124991],[-57.331005859375,5.020166015624994],[-57.20981445312499,5.195410156249991],[-57.3185546875,5.335351562499994],[-57.194775390625,5.5484375],[-56.96982421874999,5.992871093749997],[-56.235595703125,5.885351562499991],[-55.897607421874994,5.699316406249991],[-55.909912109375,5.892626953124989],[-55.648339843749994,5.985888671874989],[-54.83369140625,5.988330078124989],[-54.05419921875,5.807910156249989],[-54.08046875,5.502246093749989],[-54.4796875,4.836523437499991],[-54.350732421874994,4.054101562499994],[-54.03422851562499,3.62939453125]]]},"properties":{"name":"Suriname","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[22.538671875,49.072705078125],[22.52412109375001,49.031396484374994],[22.389453125000017,48.873486328125],[22.295214843750017,48.685839843749996],[22.142871093750017,48.568505859374994],[22.1318359375,48.405322265624996],[21.766992187500023,48.3380859375],[21.45136718750001,48.55224609375],[20.490039062500017,48.526904296874996],[20.333789062500017,48.295556640624994],[19.95039062500001,48.146630859374994],[19.625390625000023,48.223095703125],[18.791894531250023,48.000292968749996],[18.72421875,47.787158203124996],[17.76191406250001,47.770166015624994],[17.147363281250023,48.00595703125],[16.86542968750001,48.3869140625],[16.953125,48.598828125],[17.135644531250023,48.841064453125],[17.75849609375001,48.888134765625],[18.0859375,49.06513671875],[18.160937500000017,49.257373046874996],[18.83222656250001,49.510791015624996],[19.1494140625,49.4],[19.44160156250001,49.597705078124996],[19.77392578125,49.37216796875],[19.756640625000017,49.204394531249996],[20.0576171875,49.181298828124994],[20.36298828125001,49.38525390625],[20.868457031250017,49.314697265625],[21.079394531250017,49.418261718749996],[21.6396484375,49.411962890625],[22.020117187500006,49.209521484374996],[22.473046875000023,49.081298828125],[22.538671875,49.072705078125]]]},"properties":{"name":"Slovakia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[16.516210937500006,46.499902343749994],[16.427636718750023,46.5244140625],[16.321191406250023,46.534619140625],[16.1064453125,46.382226562499994],[15.608984375,46.171923828124996],[15.592578125000017,46.139990234375],[15.596875,46.109228515625],[15.675585937500017,45.983691406249996],[15.652148437500017,45.862158203125],[15.277050781250011,45.7326171875],[15.353710937500011,45.659912109375],[15.283593750000023,45.5796875],[15.291210937500011,45.541552734374996],[15.32666015625,45.502294921875],[15.339453125,45.467041015625],[15.242089843750023,45.44140625],[15.110449218750006,45.45078125],[14.95458984375,45.499902343749994],[14.793066406250006,45.47822265625],[14.649511718750006,45.571484375],[14.591796875,45.651269531249994],[14.56884765625,45.6572265625],[14.548448660714302,45.628388671875],[14.507586495535731,45.59039341517857],[14.42734375,45.505761718749994],[14.369921875000017,45.4814453125],[13.878710937500017,45.428369140624994],[13.577929687500017,45.516894531249996],[13.8447265625,45.59287109375],[13.831152343750006,45.680419921875],[13.663476562500023,45.7919921875],[13.6005859375,45.979785156249996],[13.509179687500023,45.973779296874994],[13.487695312500023,45.987109375],[13.480273437500017,46.009228515625],[13.486425781250006,46.03955078125],[13.548046875000011,46.089111328125],[13.616601562500023,46.133105468749996],[13.634960937500011,46.157763671874996],[13.632519531250011,46.177050781249996],[13.420996093750006,46.212304687499994],[13.399511718750006,46.317529296874994],[13.563281250000017,46.415087890624996],[13.637109375000023,46.448535156249996],[13.6796875,46.462890625],[13.7,46.520263671875],[14.5498046875,46.399707031249996],[14.893261718750011,46.605908203125],[15.957617187500006,46.677636718749994],[16.093066406250017,46.86328125],[16.283593750000023,46.857275390625],[16.516210937500006,46.499902343749994]]]},"properties":{"name":"Slovenia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[16.52851562500001,56.29052734375],[16.431640625,56.24375],[16.41230468750004,56.568994140624994],[17.02539062499997,57.345068359375006],[16.52851562500001,56.29052734375]]],[[[19.076464843750045,57.8359375],[18.813867187500023,57.70620117187502],[18.907910156250068,57.39833984375002],[18.146386718749994,56.920507812500006],[18.285351562500068,57.08320312500001],[18.136523437500045,57.55664062500003],[18.53740234374999,57.83056640625006],[18.90058593750001,57.91547851562504],[19.076464843750045,57.8359375]]],[[[19.156347656250063,57.92260742187497],[19.086523437500034,57.86499023437506],[19.134863281250034,57.98134765625002],[19.331445312500023,57.962890625],[19.156347656250063,57.92260742187497]]],[[[24.15546875000004,65.80527343750006],[23.102343750000074,65.73535156250003],[22.400976562500006,65.86210937499999],[22.254003906250006,65.59755859375002],[21.565527343750063,65.40810546874997],[21.609179687500074,65.261376953125],[21.410351562500068,65.31743164062505],[21.57392578125001,65.12578124999999],[21.138183593750057,64.80869140625006],[21.519628906250034,64.46308593749998],[20.76269531250003,63.86782226562505],[18.60644531250003,63.17827148437499],[18.31289062500008,62.996386718750045],[18.46308593750004,62.895849609375006],[18.170019531250034,62.789355468750074],[17.906640625000023,62.88676757812502],[18.037304687500068,62.60053710937498],[17.834472656250057,62.50273437500002],[17.410253906250063,62.508398437500034],[17.633691406249994,62.23300781250006],[17.374511718750057,61.866308593750034],[17.465429687500006,61.68447265625005],[17.196386718750006,61.72456054687504],[17.13076171875005,61.57573242187499],[17.25097656250003,60.70078125],[17.6611328125,60.53515625000003],[17.955761718750068,60.589794921874955],[18.85273437500001,60.02587890625],[18.970507812500045,59.757226562499994],[17.964257812500023,59.359375],[18.56025390625004,59.39448242187498],[18.285351562500068,59.109375],[16.978125,58.65415039062506],[16.214257812500023,58.636669921874955],[16.92382812499997,58.49257812499999],[16.651953125,58.43432617187503],[16.65224609375008,57.50068359374998],[16.348730468750063,56.70927734374996],[15.826660156250028,56.12495117187501],[14.782031250000017,56.16191406250002],[14.754785156250051,56.03315429687498],[14.401953125000034,55.97675781250004],[14.21503906250004,55.83261718749998],[14.341699218749994,55.52773437500002],[14.17373046875008,55.396630859374966],[12.885839843750063,55.41137695312506],[12.973925781250074,55.748144531250006],[12.471191406250057,56.29052734375],[12.801660156250051,56.263916015625],[12.65644531250004,56.44057617187502],[12.857421875000028,56.45239257812503],[12.883691406250051,56.61772460937496],[12.421484375000034,56.906396484374966],[11.449316406250063,58.118359374999955],[11.43154296875008,58.339990234374994],[11.24824218750004,58.369140625],[11.14716796875004,58.98862304687498],[11.19580078125,59.07827148437505],[11.388281250000063,59.036523437499966],[11.470703125000057,58.909521484375034],[11.64277343750004,58.92607421875002],[11.798144531250074,59.28989257812498],[11.680761718750034,59.59228515625003],[12.486132812500074,60.10678710937506],[12.588671874999989,60.450732421875045],[12.29414062500004,61.00268554687506],[12.706054687500028,61.059863281250074],[12.88076171875008,61.35229492187506],[12.155371093750006,61.720751953125045],[12.303515625000074,62.28559570312501],[11.999902343750051,63.29169921875001],[12.175195312500051,63.595947265625],[12.792773437500017,64],[13.203515625000023,64.07509765625],[13.960546875000063,64.01401367187498],[14.141210937500006,64.17353515624998],[14.077636718750028,64.464013671875],[13.650292968750023,64.58154296874997],[14.47968750000004,65.30146484374998],[14.543261718750045,66.12934570312498],[15.483789062500051,66.30595703124999],[15.422949218750006,66.48984374999998],[16.40351562500004,67.05498046875002],[16.12744140625,67.42583007812507],[16.783593750000023,67.89501953125],[17.324609375000023,68.10380859374999],[17.91669921875001,67.96489257812502],[18.303027343750045,68.55541992187497],[19.969824218750063,68.35639648437501],[20.348046875000023,68.84873046875003],[20.116699218750057,69.02089843750005],[20.622167968750006,69.036865234375],[21.99746093750005,68.52060546874998],[22.854101562500034,68.36733398437502],[23.63886718750004,67.95439453125002],[23.454882812500045,67.46025390625007],[23.733593750000068,67.42290039062499],[23.64150390625005,67.12939453124997],[23.988574218750045,66.81054687500003],[23.700292968750034,66.25263671874998],[24.15546875000004,65.80527343750006]]]]},"properties":{"name":"Sweden","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[31.9482421875,-25.957617187500006],[32.060546875,-26.018359375],[32.04140625000002,-26.28125],[32.10595703125,-26.52001953125],[32.112890625,-26.839453125],[32.02480468750002,-26.811132812500006],[31.994726562500006,-26.817480468750006],[31.967187500000023,-26.96064453125001],[31.946093750000017,-27.173632812500003],[31.958398437500023,-27.30585937500001],[31.742578125000023,-27.30996093750001],[31.469531250000017,-27.295507812500006],[31.274023437500006,-27.238378906250006],[31.063378906250023,-27.1123046875],[30.938085937500006,-26.915820312500003],[30.88330078125,-26.79238281250001],[30.806738281250006,-26.785253906250006],[30.794335937500023,-26.764257812500006],[30.803320312500006,-26.41347656250001],[31.08808593750001,-25.98066406250001],[31.207324218750017,-25.843359375],[31.33515625000001,-25.75556640625001],[31.382617187500017,-25.74296875],[31.415136718750006,-25.74658203125],[31.921679687500017,-25.96875],[31.9482421875,-25.957617187500006]]]},"properties":{"name":"Swaziland","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[55.54033203125002,-4.693066406250011],[55.54296875,-4.785546875],[55.383398437500006,-4.609277343750009],[55.45576171875001,-4.558789062500011],[55.54033203125002,-4.693066406250011]]]},"properties":{"name":"Seychelles","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[42.358984375,37.10859375],[41.78857421875,36.59716796875],[41.41679687500002,36.5146484375],[41.295996093750006,36.383349609374996],[41.354101562500006,35.640429687499996],[41.19472656250002,34.768994140625],[40.98701171875001,34.429052734375],[38.773535156250006,33.372216796874994],[36.818359375,32.317285156249994],[36.3720703125,32.3869140625],[35.78730468750001,32.734912109374996],[35.91347656250002,32.94960937499999],[35.869140625,33.43173828125],[36.03447265625002,33.58505859375],[35.98613281250002,33.75263671875],[36.36503906250002,33.83935546875],[36.27783203125,33.92529296875],[36.5849609375,34.221240234374996],[36.50439453125,34.432373046875],[36.32988281250002,34.499609375],[36.383886718750006,34.65791015625],[35.97626953125001,34.629199218749996],[35.902441406250006,35.420703125],[35.76445312500002,35.571582031249996],[35.83964843750002,35.84921875],[35.892675781250006,35.916552734374996],[35.96757812500002,35.910058593749994],[36.12734375000002,35.831445312499994],[36.15361328125002,35.833886718749994],[36.34755859375002,36.003515625],[36.37539062500002,36.171240234375],[36.63671875,36.233984375],[36.64140625000002,36.263525390625],[36.5375,36.45742187499999],[36.54667968750002,36.50634765625],[36.596875,36.7013671875],[36.62841796875,36.777685546875],[36.65859375000002,36.802539062499996],[36.77656250000001,36.79267578125],[36.94179687500002,36.7583984375],[36.9853515625,36.702392578125],[37.06621093750002,36.652636718749996],[37.43632812500002,36.643310546875],[37.523535156250006,36.6783203125],[37.7203125,36.743701171874996],[37.90664062500002,36.79462890625],[38.19169921875002,36.9015625],[38.7666015625,36.693115234375],[38.90644531250001,36.694677734375],[39.1083984375,36.680566406249994],[39.35664062500001,36.681591796875],[39.50146484375,36.70224609375],[39.6865234375,36.738623046875],[40.01640625000002,36.826074218749994],[40.705664062500006,37.097705078124996],[41.886816406250006,37.156396484374994],[42.05986328125002,37.2060546875],[42.16787109375002,37.288623046874996],[42.202734375,37.29726562499999],[42.24755859375,37.2822265625],[42.2685546875,37.2765625],[42.31289062500002,37.22958984375],[42.358984375,37.10859375]]]},"properties":{"name":"Syria","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-72.3328125,21.85136718749999],[-72.14433593750002,21.79272460937503],[-72.33544921874994,21.758007812499983],[-72.3328125,21.85136718749999]]]},"properties":{"name":"Turks and Caicos Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[23.980273437500017,19.496630859375003],[23.970800781250006,15.721533203124991],[23.10517578125001,15.702539062499994],[22.933886718750017,15.533105468749994],[22.93232421875001,15.162109375],[22.6708984375,14.722460937500003],[22.38154296875001,14.550488281249997],[22.53857421875,14.161865234375],[22.1064453125,13.7998046875],[22.228125,13.32958984375],[21.825292968750006,12.79052734375],[21.928125,12.678125],[22.352343750000017,12.660449218749989],[22.472460937500017,12.067773437499994],[22.580957031250023,11.990136718749994],[22.591113281250017,11.579882812499989],[22.922656250000017,11.344873046874994],[22.86005859375001,10.919677734375],[22.49384765625001,10.996240234374994],[21.771484375,10.642822265625],[21.682714843750006,10.289843749999989],[20.773242187500017,9.405664062499994],[20.342089843750017,9.127099609374994],[18.95625,8.938867187499994],[18.886035156250017,8.836035156249991],[19.108691406250017,8.656152343749994],[18.56416015625001,8.0458984375],[17.6494140625,7.98359375],[16.784765625,7.550976562499997],[16.545312500000023,7.865478515625],[16.37890625,7.683544921874997],[15.957617187500006,7.507568359375],[15.480078125,7.523779296874991],[15.5498046875,7.787890624999989],[15.1162109375,8.557324218749997],[14.332324218750017,9.20351562499999],[13.977246093750011,9.691552734374994],[14.243261718750006,9.979736328125],[15.654882812500006,10.0078125],[15.276074218750011,10.357373046874997],[15.132226562500023,10.648486328124989],[15.029882812500006,11.11367187499999],[15.08125,11.845507812499989],[14.847070312500023,12.502099609374994],[14.461718750000017,13.021777343749989],[14.244824218750011,13.07734375],[14.06396484375,13.07851562499999],[13.932324218750011,13.258496093749997],[13.606347656250023,13.70458984375],[13.505761718750023,14.134423828124994],[13.4482421875,14.380664062500003],[14.367968750000017,15.750146484374994],[15.474316406250011,16.908398437499997],[15.735058593750011,19.904052734375],[15.963183593750017,20.34619140625],[15.587109375000011,20.733300781249994],[15.607324218750023,20.954394531250003],[15.181835937500011,21.523388671874997],[14.97900390625,22.99619140624999],[15.984082031250011,23.445214843749994],[20.14765625000001,21.38925781249999],[23.980273437500017,19.496630859375003]]]},"properties":{"name":"Chad","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[0.900488281250006,10.993261718749991],[0.763378906250011,10.386669921874997],[1.330078125,9.996972656249994],[1.3857421875,9.361669921874991],[1.600195312500006,9.050048828125],[1.624707031250011,6.997314453125],[1.530957031250011,6.992431640625],[1.777929687500006,6.294628906249997],[1.62265625,6.216796875],[1.187207031250011,6.089404296874989],[0.736914062500006,6.452587890624997],[0.525585937500011,6.850927734374991],[0.634765625,7.353662109374994],[0.5,7.546875],[0.686328125000017,8.354882812499994],[0.37255859375,8.75927734375],[0.48876953125,8.851464843749994],[0.525683593750017,9.398486328124989],[0.2333984375,9.463525390624994],[0.342578125000017,9.604150390624994],[0.264550781250023,9.644726562499997],[0.380859375,10.291845703124991],[-0.08632812499999,10.673046875],[0.009423828125023,11.02099609375],[-0.068603515625,11.115625],[0.49267578125,10.954980468749994],[0.900488281250006,10.993261718749991]]]},"properties":{"name":"Togo","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[98.40908203125005,7.90205078125004],[98.2962890625,7.776074218750054],[98.32207031250007,8.166308593749974],[98.4349609375,8.085644531249969],[98.40908203125005,7.90205078125004]]],[[[100.070703125,9.58603515625002],[99.96240234375003,9.421630859375],[99.93955078125006,9.559960937500037],[100.070703125,9.58603515625002]]],[[[102.42675781250003,11.988720703125026],[102.30195312500004,11.98081054687502],[102.27744140625006,12.151855468750043],[102.42675781250003,11.988720703125026]]],[[[100.12246093750005,20.316650390625057],[100.11494140625004,20.257666015625034],[100.13974609375012,20.245410156250017],[100.31796875000006,20.38588867187505],[100.51953125000003,20.17792968750004],[100.39765625000004,19.756103515625],[100.51357421875005,19.553466796875],[101.21191406249997,19.54833984375003],[101.22080078125006,19.486621093750074],[101.19755859375007,19.327929687500074],[101.2863281250001,18.977148437500006],[101.04697265625012,18.441992187500063],[101.05058593750002,18.407031250000045],[101.1375,18.28686523437497],[101.14394531250005,18.14262695312499],[100.90849609375002,17.583886718750023],[100.95585937500002,17.541113281250006],[101.10517578125004,17.47954101562499],[101.16748046874997,17.49902343749997],[101.41367187500012,17.71875],[101.55507812500005,17.812353515625034],[101.56367187500004,17.82050781250001],[101.6875,17.889404296875],[101.77480468750005,18.03339843750004],[101.81865234375002,18.06464843750001],[101.87548828124997,18.046435546875017],[101.94746093750004,18.081494140624983],[102.03457031250005,18.169824218750023],[102.10146484375,18.210644531249983],[102.14824218750002,18.20385742187503],[102.35185546875002,18.045947265625017],[102.45878906250002,17.984619140625057],[102.55253906250007,17.96508789062497],[102.61679687500006,17.833349609375034],[102.66064453124997,17.817968750000034],[102.680078125,17.824121093750023],[103.05136718750006,18.02851562500001],[103.0912109375,18.13823242187499],[103.14853515625006,18.221728515625045],[103.19970703124997,18.259472656249983],[103.26318359374997,18.27846679687505],[103.27958984375002,18.304980468750017],[103.24892578125,18.338964843750034],[103.25175781250002,18.373486328124955],[103.2882812500001,18.408398437499955],[103.36699218750007,18.42333984374997],[103.48798828125004,18.418164062499983],[103.62968750000002,18.38256835937503],[103.79228515625002,18.316503906249977],[103.89882812500005,18.295312500000023],[103.949609375,18.31899414062505],[104.04873046875005,18.216699218749994],[104.19619140625005,17.988378906250006],[104.32265625,17.815820312500023],[104.428125,17.69897460937503],[104.7396484375,17.461669921875],[104.81601562500012,17.30029296874997],[104.75898437500004,17.0771484375],[104.7435546875,16.884375],[104.75058593750012,16.647558593750063],[104.81933593750003,16.46606445312503],[105.04716796875007,16.160253906249977],[105.14873046875007,16.09355468749999],[105.33066406250006,16.037890625000017],[105.40625,15.987451171875051],[105.39892578124997,15.829882812500017],[105.62207031250003,15.699951171875],[105.641015625,15.656542968750045],[105.6388671875001,15.585937500000057],[105.615625,15.488281250000057],[105.49042968750004,15.256591796875],[105.49042968750004,15.127587890625009],[105.5333984375001,15.041601562499991],[105.54667968750002,14.932470703124963],[105.52304687500012,14.843310546875003],[105.49736328125002,14.590673828124963],[105.47558593750003,14.530126953124977],[105.42265625000007,14.471630859375054],[105.34218750000005,14.416699218750054],[105.24365234375003,14.367871093750054],[105.1833007812501,14.346240234374989],[105.16914062500004,14.336083984374966],[105.12597656250003,14.280957031250011],[105.07412109375005,14.227441406250037],[104.77900390625004,14.427832031250006],[103.19941406250004,14.332617187499977],[102.90927734375006,14.136718750000028],[102.546875,13.585693359375043],[102.33632812500005,13.560302734375014],[102.49960937500012,12.669970703125003],[102.75566406250002,12.42626953125],[102.73662109375007,12.089794921875011],[102.93388671875002,11.706689453125037],[102.594140625,12.203027343749994],[102.54023437500004,12.109228515624977],[101.83574218750002,12.640380859375014],[100.89775390625007,12.653808593749986],[100.96269531250007,13.431982421874991],[100.60292968750005,13.568164062500017],[100.23564453125002,13.48447265625002],[99.99052734375007,13.243457031250031],[100.08994140625006,13.045654296874972],[99.96396484375006,12.690039062500006],[99.98906250000007,12.170800781249994],[99.16503906250003,10.319824218750028],[99.25390625000003,9.265234375000034],[99.83554687500012,9.288378906250031],[99.98955078125007,8.589208984374977],[100.129296875,8.428076171875006],[100.16347656250005,8.508398437500034],[100.27939453125006,8.268505859375011],[100.54521484375002,7.226904296874991],[100.43935546875005,7.280761718750043],[100.38037109375003,7.541503906250043],[100.28378906250006,7.551513671875043],[100.25664062500002,7.774902343749986],[100.16074218750012,7.599267578124994],[100.4235351562501,7.18784179687502],[101.01787109375002,6.860937500000034],[101.49794921875005,6.865283203125031],[102.10107421874997,6.242236328125031],[101.87363281250012,5.825292968749991],[101.67841796875004,5.778808593750028],[101.5560546875,5.907763671875003],[101.1139648437501,5.636767578125045],[100.98164062500004,5.771044921875045],[101.05351562500002,6.242578125],[100.87392578125,6.24541015624996],[100.75449218750012,6.460058593749991],[100.3454101562501,6.549902343750006],[100.26142578125004,6.682714843749963],[100.11914062499997,6.441992187500048],[99.69599609375004,6.87666015625004],[99.72031250000012,7.106201171875],[99.55302734375002,7.218798828125031],[99.59697265625002,7.355615234375009],[99.35859375000004,7.372216796875023],[99.26367187499997,7.619042968750037],[99.07763671874997,7.718066406250045],[99.05107421875002,7.887841796874994],[98.78867187500012,8.059814453125028],[98.703515625,8.256738281250009],[98.57919921875006,8.344287109374989],[98.42099609375006,8.17822265625],[98.30546875000007,8.226220703125009],[98.24179687500006,8.767871093750045],[98.70253906250005,10.19038085937504],[98.7572265625,10.660937499999974],[99.1901367187501,11.105273437499989],[99.61474609374997,11.781201171875026],[99.40507812500002,12.547900390625003],[99.12392578125,13.030761718750043],[99.13681640625006,13.716699218749994],[98.57001953125004,14.359912109375031],[98.20214843749997,14.97592773437502],[98.19101562500012,15.204101562499972],[98.55693359375007,15.367675781249986],[98.59238281250006,16.05068359375005],[98.81796875000012,16.180810546874994],[98.88828125000006,16.351904296875034],[98.83544921875003,16.417578125],[98.66074218750006,16.330419921875006],[98.4388671875,16.975683593750034],[97.7064453125,17.79711914062503],[97.63222656250005,18.290332031250074],[97.37392578125,18.51796875],[97.74589843750002,18.58818359374999],[97.816796875,19.459960937500057],[98.01503906250005,19.74951171874997],[98.37128906250004,19.68916015625004],[98.9166992187501,19.77290039062504],[99.07421875000003,20.09936523437503],[99.48593750000006,20.14985351562501],[99.45888671875005,20.363037109375],[99.72011718750005,20.32543945312497],[99.8903320312501,20.424414062499977],[99.9542968750001,20.415429687500023],[100.0036132812501,20.37958984375001],[100.12246093750005,20.316650390625057]]]]},"properties":{"name":"Thailand","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[70.66416015625,39.85546875],[70.55957031250003,39.790917968749994],[70.48925781250003,39.86303710937503],[70.48281250000005,39.88271484375005],[70.49775390625004,39.88242187499998],[70.56708984375004,39.86660156250005],[70.66416015625,39.85546875]]],[[[70.95800781250003,40.238867187500034],[70.59921875,39.974511718749994],[69.96679687499997,40.202246093750034],[69.46875,40.020751953125],[69.47099609375002,39.990625],[69.43193359375007,39.909765625000034],[69.36542968750004,39.94707031250002],[69.30722656250006,39.968554687500045],[69.27880859374997,39.91777343749999],[69.24472656250006,39.82709960937498],[69.29765625000007,39.52480468750005],[70.50117187500004,39.58735351562501],[70.79931640625003,39.39472656250001],[71.4703125,39.60366210937502],[71.50302734375006,39.58217773437502],[71.51738281250002,39.55385742187502],[71.50585937499997,39.51708984374997],[71.5033203125,39.47880859374999],[71.73222656250002,39.422998046874994],[71.77861328125007,39.27797851562502],[72.04277343750002,39.352148437500034],[72.08417968750004,39.310644531250034],[72.14736328125005,39.26074218749997],[72.22998046874997,39.20751953124997],[72.63994140625002,39.385986328125],[73.10927734375,39.36191406249998],[73.2349609375,39.37456054687499],[73.3361328125001,39.41235351562506],[73.38740234375004,39.442724609375034],[73.4704101562501,39.46059570312502],[73.63164062500007,39.44887695312502],[73.63632812500006,39.396679687499955],[73.60732421875,39.229199218749955],[73.8052734375,38.968652343749994],[73.69609375000007,38.85429687499996],[73.80166015625,38.60688476562501],[74.02558593750004,38.53984375000002],[74.27744140625,38.659765625000034],[74.81230468750002,38.46030273437498],[74.8942382812501,37.60141601562498],[75.11875,37.38569335937498],[74.89130859375004,37.231640624999955],[74.875390625,37.24199218750002],[74.83046875,37.28593750000002],[74.73056640625006,37.35703125],[74.659375,37.39448242187501],[74.34902343750005,37.41875],[74.25966796875005,37.41542968750002],[74.20351562500005,37.37246093750005],[74.16708984375,37.32944335937498],[73.74960937500006,37.23178710937498],[73.6535156250001,37.239355468750034],[73.62753906250006,37.261572265625006],[73.71728515625003,37.32944335937498],[73.7337890625,37.37578125000002],[73.72060546875,37.41875],[73.65712890625005,37.43046875],[73.6046875000001,37.44604492187503],[73.48134765625,37.4716796875],[73.38291015625006,37.462255859375034],[73.21113281250004,37.40849609375002],[72.89550781250003,37.26752929687498],[72.65742187500004,37.029052734375],[71.665625,36.696923828124994],[71.530859375,36.845117187499994],[71.43291015625007,37.12753906249998],[71.5822265625001,37.91010742187498],[71.55195312500004,37.93315429687496],[71.48779296874997,37.93188476562497],[71.38964843750003,37.90629882812502],[71.31992187500006,37.90185546875],[71.27851562500004,37.91840820312498],[71.33271484375004,38.170263671875034],[71.25585937499997,38.306982421875006],[70.7359375,38.42255859375001],[70.41777343750002,38.075439453125],[70.21464843750002,37.92441406250006],[70.19941406250004,37.88603515624996],[70.25498046875006,37.76538085937497],[70.25146484374997,37.66416015625006],[70.18867187500004,37.58247070312501],[70.11982421875004,37.54350585937499],[69.9849609375,37.566162109375],[69.8208984375,37.60957031250004],[69.62578125000002,37.59404296874999],[69.49208984375,37.55307617187498],[69.42011718750004,37.486718749999966],[69.39921875000007,37.39931640625002],[69.42968749999997,37.290869140625034],[69.414453125,37.20776367187497],[69.35380859375007,37.15004882812502],[69.3039062500001,37.11694335937503],[69.26484375000004,37.1083984375],[69.18017578125003,37.158300781250034],[68.96044921875003,37.32504882812498],[68.9118164062501,37.33393554687501],[68.88525390624997,37.32807617187498],[68.85537109375005,37.31684570312501],[68.83847656250006,37.30283203124998],[68.82373046874997,37.27070312500001],[68.78203125000002,37.25800781250001],[68.7232421875,37.26801757812501],[68.6691406250001,37.258398437500006],[68.3869140625001,37.1375],[68.29951171875004,37.08842773437502],[68.28476562500006,37.036328124999955],[68.2609375000001,37.01308593750002],[68.2121093750001,37.02153320312496],[68.0677734375,36.949804687500006],[67.95800781249997,36.972021484375006],[67.83447265624997,37.06420898437506],[67.75898437500004,37.172216796875034],[67.7980468750001,37.244970703125006],[67.81435546875005,37.48701171875004],[68.3502929687501,38.211035156250006],[68.08720703125002,38.47353515625002],[68.13251953125004,38.927636718749966],[67.69443359375006,38.99462890625003],[67.64833984375005,39.13105468750004],[67.3576171875001,39.216699218749994],[67.426171875,39.46557617187497],[67.71904296875007,39.62138671875002],[68.46328125,39.53671874999998],[68.63896484375007,39.8388671875],[68.86875,39.90747070312503],[68.80468750000003,40.05034179687499],[68.9720703125,40.08994140624998],[68.63066406250007,40.16708984374998],[69.27490234374997,40.19809570312498],[69.20625,40.566552734374994],[69.35722656250002,40.76738281249996],[69.71289062500003,40.65698242187503],[70.40195312500006,41.03510742187498],[70.75107421875006,40.721777343750006],[70.37158203125003,40.38413085937506],[70.653125,40.201171875],[70.95800781250003,40.238867187500034]]]]},"properties":{"name":"Tajikistan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[66.52226562500007,37.34848632812506],[66.471875,37.3447265625],[65.7650390625,37.56914062499996],[65.55498046875002,37.25117187500004],[65.30361328125005,37.24677734375001],[65.08964843750007,37.237939453124994],[64.9515625,37.19355468750001],[64.81630859375005,37.13208007812503],[64.7824218750001,37.05927734375001],[64.60253906250003,36.554541015625034],[64.5658203125,36.427587890625034],[64.51103515625002,36.34067382812498],[64.184375,36.14892578125],[63.8625,36.012353515624994],[63.12998046875006,35.84619140624997],[63.169726562500074,35.678125],[63.05664062500003,35.44580078125003],[62.98027343750002,35.40917968750003],[62.85800781250006,35.34965820312499],[62.688085937500006,35.25532226562504],[62.3078125000001,35.17080078125005],[62.08964843750002,35.3796875],[61.62099609375005,35.43232421875004],[61.34472656249997,35.62949218750006],[61.26201171875002,35.61958007812498],[61.25214843750004,35.86762695312498],[61.15292968750006,35.97675781250001],[61.212011718750006,36.190527343750034],[61.11962890625003,36.64257812500003],[60.34130859375003,36.63764648437501],[60.06279296875002,36.962890625],[59.454980468749994,37.25283203125002],[59.30175781249997,37.51064453125005],[58.81542968750003,37.683496093749994],[58.261621093749994,37.665820312500045],[57.35371093750004,37.97333984374998],[57.1935546875001,38.216406250000034],[56.440625,38.249414062499994],[56.272070312500006,38.080419921875034],[55.38085937500003,38.051123046875034],[54.90009765625004,37.77792968750006],[54.6994140625001,37.47016601562498],[53.91416015625006,37.34355468750002],[53.86865234375003,38.949267578125045],[53.70458984375003,39.209570312500034],[53.33632812500005,39.34082031250006],[53.15664062499999,39.26499023437506],[53.23564453125002,39.608544921874966],[53.603125,39.546972656250034],[53.472265625,39.66879882812498],[53.48730468749997,39.909375],[52.9875,39.98759765625002],[53.03554687500005,39.7744140625],[52.80468749999997,40.054003906250045],[52.73369140625002,40.39873046875002],[52.943457031250006,41.03808593750006],[53.1452148437501,40.82495117187497],[53.61523437500003,40.818505859374994],[53.87001953125005,40.64868164062503],[54.37734375,40.693261718749966],[54.319433593750006,40.83457031249998],[54.68505859375003,40.873046875],[54.70371093750006,41.071142578125034],[54.094824218750006,41.51938476562506],[53.80468749999997,42.11762695312498],[53.16416015625006,42.09379882812502],[52.97001953125002,41.97622070312505],[52.81484375,41.711816406249994],[52.850390625000074,41.20029296875006],[52.4938476562501,41.780371093750034],[53.0558593750001,42.14775390624999],[54.120996093749994,42.335205078125],[54.85380859375002,41.965185546875006],[55.434375,41.296289062499994],[55.97744140625005,41.32221679687504],[57.01796875,41.26347656249996],[57.11884765625004,41.35029296874998],[56.96406250000004,41.856542968750006],[57.290625,42.123779296875],[57.814257812500074,42.18984375000005],[58.02890625,42.48764648437506],[58.474414062500074,42.29936523437496],[58.15156250000004,42.628076171874966],[58.477148437500006,42.66284179687503],[58.5890625000001,42.778466796874966],[59.35429687500002,42.32329101562496],[59.98515625000002,42.21171875],[59.94179687499999,41.97353515625002],[60.20078125000006,41.803125],[60.07558593750005,41.759667968749966],[60.089648437500074,41.39941406250003],[60.454980468749994,41.221630859374955],[61.2423828125001,41.18920898437503],[61.496972656249994,41.276074218749955],[61.90283203124997,41.09370117187501],[62.48320312500002,39.97563476562496],[63.76367187500003,39.16054687499999],[64.3099609375,38.97729492187497],[65.612890625,38.23857421875002],[65.97119140624997,38.244238281250006],[66.60625,37.98671875000005],[66.52558593750004,37.785742187500034],[66.51132812500006,37.59916992187496],[66.51064453125,37.45869140625004],[66.52226562500007,37.34848632812506]]]},"properties":{"name":"Turkmenistan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[124.0363281250001,-9.341601562500031],[124.44443359375012,-9.190332031250023],[124.28232421875012,-9.427929687500026],[124.0363281250001,-9.341601562500031]]],[[[125.06816406250002,-9.511914062499997],[124.96015625000004,-9.213769531250009],[125.10048828125,-9.189843750000023],[125.14902343750012,-9.042578125000034],[124.93681640625007,-9.053417968750026],[124.92226562500005,-8.942480468749977],[125.17802734375002,-8.647851562499994],[125.38183593749997,-8.575390624999983],[126.61972656250006,-8.459472656249986],[126.96640625000012,-8.315722656250017],[127.29609375000004,-8.424511718749969],[126.91523437500004,-8.715234374999966],[125.40800781250002,-9.275781250000023],[125.06816406250002,-9.511914062499997]]],[[[125.64609375000006,-8.139941406250003],[125.5794921875,-8.311816406250017],[125.50712890625007,-8.275097656249997],[125.64609375000006,-8.139941406250003]]]]},"properties":{"name":"Timor-Leste","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-175.1619140625,-21.169335937500023],[-175.07817382812496,-21.129003906249977],[-175.15659179687495,-21.26367187499997],[-175.36235351562496,-21.106835937499994],[-175.1619140625,-21.169335937500023]]],[[[-173.953515625,-18.63935546875001],[-174.06914062500002,-18.640234375],[-173.96806640624993,-18.565332031250023],[-173.953515625,-18.63935546875001]]]]},"properties":{"name":"Tonga","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-61.012109374999966,10.134326171874989],[-61.906103515625006,10.069140625000031],[-61.49931640624999,10.268554687499972],[-61.47827148437497,10.603369140624977],[-61.65117187499993,10.718066406249974],[-60.917626953124966,10.84023437499999],[-61.03374023437502,10.669873046875026],[-61.012109374999966,10.134326171874989]]]},"properties":{"name":"Trinidad and Tobago","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[10.957617187500063,33.72207031250005],[10.722070312500051,33.738916015624994],[10.745214843750063,33.88867187500006],[11.017871093749989,33.82333984374998],[10.957617187500063,33.72207031250005]]],[[[11.278027343750068,34.753808593749994],[11.123632812500063,34.68168945312496],[11.254882812500057,34.82031250000006],[11.278027343750068,34.753808593749994]]],[[[10.274609375000011,31.684960937499994],[10.114941406250068,31.46376953125005],[10.216406250000063,30.78320312500003],[10.05976562500004,30.58007812500003],[9.932519531250051,30.42534179687496],[9.895019531250028,30.387304687500034],[9.51875,30.229394531249994],[9.224023437500023,31.373681640624994],[9.160253906250006,31.621337890625],[9.044042968750034,32.072363281250034],[8.333398437500051,32.54360351562502],[8.1125,33.055322265624994],[7.877246093750017,33.172119140625],[7.534375,33.717919921874994],[7.513867187500068,34.080517578124955],[8.24560546875,34.73408203124998],[8.276855468750057,34.97949218749997],[8.312109375000063,35.084619140624994],[8.394238281250011,35.20385742187503],[8.318066406250011,35.654931640624994],[8.348730468750063,36.367968750000045],[8.207617187500006,36.518945312499994],[8.601269531250068,36.83393554687504],[8.576562500000023,36.93720703125001],[9.687988281250057,37.34038085937499],[9.838476562500063,37.30898437499999],[9.830273437499983,37.13535156250006],[9.875585937499977,37.25415039062503],[10.196386718750063,37.205859375000045],[10.293261718750074,36.781494140625],[10.412304687499983,36.73183593750002],[11.053906250000068,37.07250976562506],[11.12666015625004,36.874072265625045],[10.476562500000028,36.175146484375006],[10.590820312500028,35.88725585937499],[11.00429687500008,35.63383789062496],[11.120117187500057,35.24028320312499],[10.69091796875,34.67846679687503],[10.118359375000068,34.280078125000045],[10.049023437500068,34.056298828124994],[10.305273437500034,33.72827148437497],[10.713183593750017,33.68901367187496],[10.722753906250006,33.514404296875],[10.958007812500057,33.62631835937498],[11.257421875000034,33.30883789062506],[11.202636718749972,33.24921874999998],[11.50458984375004,33.181933593750045],[11.502441406250028,33.15556640624999],[11.467187500000051,32.96572265625005],[11.459179687500011,32.897363281249966],[11.453906250000017,32.64257812500003],[11.533789062500034,32.52495117187496],[11.535937500000017,32.47333984375001],[11.504980468750034,32.413671875000034],[11.358007812500006,32.34521484375003],[11.168261718750074,32.25673828125002],[11.005175781250074,32.17270507812506],[10.826367187500068,32.080664062500034],[10.771582031250006,32.02119140625001],[10.60888671875,31.929541015624977],[10.47578125000004,31.736035156249983],[10.274609375000011,31.684960937499994]]]]},"properties":{"name":"Tunisia","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[25.970019531250045,40.136328125],[25.6689453125,40.13588867187502],[25.918359375000023,40.23798828125004],[25.970019531250045,40.136328125]]],[[[43.43339843750002,41.155517578125],[43.43945312500003,41.10712890625001],[43.72265624999997,40.71953124999999],[43.56933593750003,40.48237304687498],[43.66621093750004,40.12636718750002],[44.28925781250004,40.040380859375006],[44.76826171875004,39.70351562500005],[44.81718750000002,39.65043945312496],[44.58710937500004,39.76855468750006],[44.3893554687501,39.422119140625],[44.02324218750002,39.37744140625006],[44.27167968750004,38.83603515625006],[44.2985351562501,38.38627929687499],[44.4499023437501,38.33422851562506],[44.21132812499999,37.908056640625006],[44.589941406250006,37.710351562499966],[44.574023437500074,37.435400390625006],[44.79414062500004,37.290380859375034],[44.76513671875003,37.142431640625006],[44.73095703124997,37.16528320312503],[44.66933593750005,37.17358398437503],[44.60595703124997,37.176025390625],[44.401953125,37.05849609375002],[44.325585937499994,37.0107421875],[44.28183593750006,36.97802734374997],[44.24570312500006,36.983300781249994],[44.20166015624997,37.05180664062502],[44.208398437499994,37.20263671875],[44.19179687499999,37.249853515625034],[44.15625,37.28295898437503],[44.11445312500004,37.30185546875006],[44.01318359375003,37.313525390625045],[43.83642578124997,37.223535156249994],[43.67578125000003,37.227246093749955],[43.09248046875004,37.36738281249998],[42.936621093750006,37.32475585937502],[42.77460937500004,37.371875],[42.74111328125005,37.361914062500034],[42.6354492187501,37.249267578125],[42.45585937500002,37.128710937500045],[42.358984375,37.10859375000004],[42.31289062499999,37.22958984374998],[42.26855468749997,37.276562499999955],[42.24755859375003,37.28222656250006],[42.20273437500006,37.29726562499999],[42.16787109375005,37.28862304687502],[42.059863281250074,37.2060546875],[41.886816406250006,37.156396484374994],[40.70566406250006,37.09770507812502],[40.4503906250001,37.00888671875006],[40.016406250000074,36.82607421875002],[39.68652343749997,36.73862304687506],[39.50146484374997,36.702246093750034],[39.35664062500004,36.68159179687498],[39.10839843749997,36.68056640625005],[38.90644531250004,36.69467773437498],[38.76660156249997,36.69311523437503],[38.19169921875002,36.90156250000004],[37.90664062500005,36.79462890625001],[37.7203125,36.74370117187502],[37.52353515625006,36.678320312500034],[37.436328125000074,36.643310546875],[37.327050781249994,36.64658203125006],[37.18740234375005,36.655908203124994],[37.066210937500074,36.652636718750045],[36.98535156250003,36.70239257812506],[36.94179687499999,36.758398437500006],[36.77656250000004,36.79267578124998],[36.65859375000005,36.80253906250002],[36.62841796875003,36.777685546875034],[36.596875,36.70136718750001],[36.546679687500074,36.50634765625],[36.5375,36.457421874999966],[36.63671874999997,36.233984375],[36.37539062499999,36.171240234375034],[36.347558593749994,36.003515625000034],[36.20195312500002,35.93754882812502],[36.15361328125002,35.83388671875005],[36.12734375,35.831445312499994],[35.967578125000074,35.91005859375002],[35.89267578125006,35.91655273437502],[35.81093750000005,36.30986328125002],[36.18847656250003,36.65898437499999],[36.048925781250006,36.91059570312501],[35.393164062500006,36.57519531249997],[34.70361328125003,36.81679687499999],[33.694726562499994,36.18198242187498],[32.794824218749994,36.03588867187497],[32.37773437500002,36.18364257812496],[32.02197265625003,36.53530273437502],[31.35253906249997,36.80107421874999],[30.64404296874997,36.86567382812501],[30.446093750000074,36.269873046875034],[29.6890625,36.15668945312498],[29.22363281249997,36.32446289062497],[28.96962890625008,36.71533203125003],[28.303710937500057,36.81196289062498],[28.01943359375005,36.63447265624998],[28.083984375000057,36.75146484375],[27.453906250000017,36.712158203125],[28.00537109375003,36.83198242187498],[28.242382812500068,37.029052734375],[27.262988281250045,36.97656250000003],[27.30019531250005,37.12685546875002],[27.53505859375005,37.16386718750002],[27.06796875,37.65791015625004],[27.224414062500074,37.725439453125006],[27.23242187500003,37.978662109374994],[26.29072265625001,38.27719726562498],[26.44130859375005,38.64121093749998],[26.67421875000008,38.33574218750002],[27.14423828125001,38.45195312499996],[26.906835937500034,38.48173828124999],[26.763671875,38.709619140624966],[27.013671875000057,38.88686523437502],[26.814941406250057,38.96098632812502],[26.853613281250034,39.115625],[26.68183593750004,39.292236328125],[26.89921874999999,39.549658203125034],[26.113085937500074,39.46738281249998],[26.101367187500074,39.56894531249998],[26.18134765625004,39.99008789062498],[26.738085937500045,40.40024414062506],[27.28457031250008,40.45561523437496],[27.4755859375,40.319921875000034],[27.72802734375,40.32880859374998],[27.84853515625005,40.38173828125002],[27.73183593750008,40.48149414062499],[27.87490234375008,40.512939453125],[27.989550781250074,40.48945312500001],[27.96259765625001,40.369873046875],[29.00712890624999,40.389746093750034],[28.787890625000017,40.534033203125034],[28.95800781250003,40.63056640624998],[29.849218750000063,40.760107421875006],[29.113867187499977,40.93784179687506],[29.14814453125004,41.221044921875034],[31.25488281249997,41.10761718750001],[31.45800781249997,41.32001953125004],[32.306445312500074,41.72958984374998],[33.38134765625003,42.01757812500003],[34.75048828124997,41.95683593749999],[35.006445312500006,42.06328125000002],[35.15488281250006,42.02753906250001],[35.12207031250003,41.89111328125003],[35.297753906249994,41.72851562500003],[35.558007812499994,41.63403320312506],[36.05175781249997,41.68256835937498],[36.40537109375006,41.27460937500001],[36.77773437499999,41.36347656250001],[37.066210937500074,41.184423828125034],[38.38105468750004,40.92451171875001],[39.426367187500006,41.10644531250003],[40.26523437500006,40.96132812500005],[41.08359375000006,41.26118164062504],[41.41435546875002,41.42363281249999],[41.510058593750074,41.51748046875002],[41.70175781250006,41.471582031249994],[41.77939453125006,41.44052734374998],[41.823535156250074,41.432373046875],[41.92578125000003,41.49565429687502],[42.46640625,41.43984375000002],[42.56738281249997,41.55927734375001],[42.590429687500006,41.57070312500002],[42.60683593750005,41.57880859374998],[42.682421875000074,41.58574218749999],[42.75410156250004,41.57890625000002],[42.787890625000074,41.56372070312503],[42.82167968750005,41.49238281249998],[42.90673828125003,41.46684570312502],[43.05712890625003,41.35283203124996],[43.149023437500006,41.30712890624997],[43.171289062499994,41.28793945312498],[43.14101562499999,41.26484374999998],[43.15283203124997,41.23642578125006],[43.20546875000005,41.19916992187501],[43.43339843750002,41.155517578125]]],[[[27.47480468750001,41.946875],[28.014453125000017,41.96904296874999],[28.197851562500063,41.55449218750002],[29.057226562500006,41.22973632812503],[28.95625,41.00820312499999],[28.172167968750074,41.08071289062502],[27.49941406250005,40.97314453124997],[27.258007812499983,40.687353515625006],[26.772070312500034,40.498046875],[26.202734375000034,40.07539062500004],[26.25380859375005,40.31469726562503],[26.792089843750034,40.626611328124994],[26.10546875000003,40.61132812499997],[26.03896484375008,40.726757812499955],[26.331054687500057,40.954492187499994],[26.330664062499977,41.23876953125],[26.62490234375008,41.401757812499994],[26.581347656250074,41.60126953125004],[26.320898437500034,41.716552734375],[26.3603515625,41.80156249999999],[26.51142578125004,41.82636718749998],[26.549707031250023,41.896728515625],[26.5796875,41.947949218749955],[26.615332031250063,41.964892578125045],[26.884863281250006,41.99184570312502],[26.96875,42.02685546875006],[27.01171875,42.05864257812496],[27.193359375000057,42.07709960937498],[27.24433593750004,42.09326171875],[27.294921875000057,42.079541015624955],[27.47480468750001,41.946875]]]]},"properties":{"name":"Turkey","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[39.71132812499999,-7.977441406250023],[39.602929687499994,-7.936132812499949],[39.907128906249994,-7.649218750000031],[39.71132812499999,-7.977441406250023]]],[[[39.49648437499999,-6.174609375],[39.573046875000074,-6.387402343750011],[39.48095703124997,-6.45371093750002],[39.18232421875004,-6.172558593750026],[39.30898437499999,-5.721972656249974],[39.49648437499999,-6.174609375]]],[[[39.86503906250002,-4.906152343750037],[39.74931640625002,-5.443847656249986],[39.646777343750074,-5.368554687500009],[39.6734375,-4.927050781250031],[39.86503906250002,-4.906152343750037]]],[[[33.90322265625005,-1.002050781250034],[37.643847656250074,-3.045410156250028],[37.608203125000074,-3.497070312500028],[39.221777343750006,-4.692382812500014],[38.80468750000003,-6.070117187500031],[38.87402343750003,-6.33125],[39.5460937500001,-7.024023437500034],[39.288476562499994,-7.517871093750003],[39.28701171875005,-7.787695312500006],[39.4284179687501,-7.81279296874996],[39.441015625,-8.011523437499946],[39.304003906250074,-8.44384765625],[39.451269531250006,-8.94296875],[39.64130859375004,-9.19248046875002],[39.72519531250006,-10.000488281249972],[40.46357421875004,-10.464355468749972],[39.98867187499999,-10.820800781250014],[39.81708984375004,-10.912402343750031],[38.9875,-11.167285156250003],[38.49179687500006,-11.413281250000026],[37.92021484375002,-11.294726562500031],[37.72480468750004,-11.58066406250002],[37.54169921875004,-11.675097656249974],[37.37285156250002,-11.710449218749986],[36.97890625000005,-11.566992187499977],[36.30566406250003,-11.706347656249946],[36.191308593749994,-11.670703124999974],[36.17548828125004,-11.60927734374998],[36.08222656250004,-11.537304687499969],[35.91132812500004,-11.45468750000002],[35.785449218750074,-11.452929687500017],[35.63095703125006,-11.582031250000028],[35.564355468749994,-11.602343749999989],[35.418261718750074,-11.583203125],[35.18261718750003,-11.574804687499977],[34.95947265625003,-11.578125],[34.93701171874997,-11.463476562500034],[34.890625,-11.3935546875],[34.77382812500005,-11.341699218750009],[34.60791015624997,-11.08046875],[34.66708984375006,-10.792480468750028],[34.56992187500006,-10.241113281249966],[34.32089843750006,-9.731542968749977],[33.99560546875003,-9.495410156250003],[33.88886718750004,-9.670117187499983],[32.91992187500003,-9.407421875000026],[32.75664062500002,-9.322265625],[31.94257812500004,-9.05400390624996],[31.91865234375004,-8.942187500000017],[31.886132812499994,-8.921972656249977],[31.81806640625004,-8.902246093749952],[31.673632812500017,-8.908789062499963],[31.55625,-8.80546875],[31.44921874999997,-8.65390625],[31.35058593750003,-8.607031250000034],[31.07636718750004,-8.611914062499963],[30.968359375000063,-8.550976562499983],[30.89199218750005,-8.473730468749963],[30.830664062500063,-8.385546875000031],[30.720898437500097,-8.104394531250037],[30.40673828125003,-7.460644531249983],[30.313183593750097,-7.203710937499949],[30.212695312500017,-7.037890625000017],[30.10625,-6.915039062500028],[29.961816406249994,-6.803125],[29.798144531250017,-6.691894531249957],[29.70966796875004,-6.61689453125004],[29.590625,-6.394433593750023],[29.540820312500017,-6.313867187500037],[29.50625,-6.172070312500011],[29.480078125,-6.025],[29.490820312500063,-5.96542968750002],[29.59638671875004,-5.775976562499963],[29.60703125,-5.722656250000028],[29.59414062500005,-5.650781250000037],[29.542382812499994,-5.499804687500017],[29.34277343749997,-4.983105468749997],[29.32343750000004,-4.898828124999966],[29.32568359374997,-4.835644531249969],[29.404199218749994,-4.49667968750002],[29.40322265625005,-4.449316406249963],[29.71777343750003,-4.45585937499996],[29.94726562499997,-4.307324218749983],[30.4,-3.65390625],[30.790234375000097,-3.274609375000011],[30.811132812500006,-3.116406250000011],[30.78027343750003,-2.984863281249957],[30.70947265624997,-2.977246093749997],[30.604296875000074,-2.935253906249969],[30.515039062499994,-2.917578125],[30.45556640625003,-2.893164062500006],[30.433496093749994,-2.874511718750028],[30.424023437500097,-2.82402343749996],[30.473339843750097,-2.6943359375],[30.42421875000005,-2.641601562500014],[30.441992187500006,-2.613476562499969],[30.53369140624997,-2.426269531250014],[30.55361328125005,-2.400097656250011],[30.593359375000063,-2.39677734374996],[30.65664062500005,-2.373828124999989],[30.71484375000003,-2.363476562500011],[30.7625,-2.371679687499991],[30.828710937500006,-2.338476562499977],[30.85498046874997,-2.265429687500017],[30.8765625,-2.143359375000017],[30.864648437499994,-2.044042968749949],[30.819140625000017,-1.967480468749983],[30.812597656250006,-1.56308593750002],[30.76220703124997,-1.458691406249983],[30.710742187500074,-1.396777343749974],[30.631933593750006,-1.36748046874996],[30.508105468750074,-1.208203125000026],[30.47021484374997,-1.13115234374996],[30.47705078124997,-1.0830078125],[30.509960937500097,-1.067285156249994],[30.51992187499999,-1.0625],[30.67275390625005,-1.051367187499949],[30.741992187500017,-1.007519531249997],[30.809179687500063,-0.994921875],[30.82363281250005,-0.999023437499943],[30.84472656250003,-1.002050781250034],[32.371875,-1.002050781250034],[33.90322265625005,-1.002050781250034]]]]},"properties":{"name":"Tanzania","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[30.50996093750001,-1.067285156250009],[30.46992187500001,-1.066015625],[30.41230468750001,-1.063085937500006],[30.360253906250023,-1.074609375],[29.930078125000023,-1.469921875000011],[29.82539062500001,-1.335546875],[29.576953125000017,-1.387890625000011],[29.717675781250023,0.098339843749997],[29.934472656250023,0.4990234375],[29.94287109375,0.819238281249994],[31.252734375000017,2.044580078124994],[31.176367187500006,2.270068359374989],[30.728613281250006,2.455371093749989],[30.8466796875,2.847021484374991],[30.754003906250006,3.041796874999989],[30.90644531250001,3.408935546875],[30.83857421875001,3.49072265625],[31.15234375,3.785595703124997],[31.547167968750017,3.677587890624991],[31.79804687500001,3.802636718749994],[32.13593750000001,3.519726562499997],[32.33574218750002,3.706201171874994],[32.99726562500001,3.880175781249989],[33.489355468750006,3.755078125],[33.568457031250006,3.81171875],[33.74160156250002,3.985253906249994],[33.97607421875,4.22021484375],[34.13203125000001,3.88916015625],[34.18574218750001,3.869775390624994],[34.1650390625,3.81298828125],[34.26708984375,3.733154296875],[34.39287109375002,3.691503906249991],[34.43769531250001,3.650585937499997],[34.44179687500002,3.60625],[34.3994140625,3.412695312499991],[34.4072265625,3.357519531249991],[34.447851562500006,3.163476562499994],[34.90576171875,2.4796875],[34.88300781250001,2.417919921874997],[34.96406250000001,2.062402343749994],[34.9775390625,1.861914062499991],[34.97646484375002,1.719628906249994],[34.79863281250002,1.24453125],[34.48173828125002,1.042138671874994],[34.41083984375001,0.867285156249991],[34.16093750000002,0.605175781249997],[33.94316406250002,0.173779296874997],[33.90322265625002,-1.002050781250006],[32.371875,-1.002050781250006],[30.8447265625,-1.002050781250006],[30.823632812500023,-0.9990234375],[30.809179687500006,-0.994921875],[30.741992187500017,-1.007519531250011],[30.672753906250023,-1.051367187500006],[30.598730468750006,-1.069726562500009],[30.519921875000023,-1.0625],[30.50996093750001,-1.067285156250009]]]},"properties":{"name":"Uganda","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[32.01220703124997,46.20390624999999],[32.15009765625004,46.1546875],[31.56386718750005,46.25776367187504],[31.50878906250003,46.373144531250006],[32.01220703124997,46.20390624999999]]],[[[38.21435546875003,47.091455078124966],[37.54335937499999,47.07456054687498],[36.794824218749994,46.71440429687499],[36.55878906250004,46.76269531250006],[35.82714843749997,46.62431640625002],[35.01455078125005,46.10600585937502],[35.280175781249994,46.27949218750001],[35.23037109375005,46.440625],[34.84960937500003,46.189892578124955],[35.02285156250005,45.70097656250002],[35.45751953124997,45.316308593749994],[36.170507812500006,45.453076171874955],[36.575,45.3935546875],[36.39335937500002,45.06538085937501],[35.87011718750003,45.005322265624955],[35.472558593749994,45.098486328125006],[35.08769531250002,44.802636718749966],[34.46992187500004,44.7216796875],[33.909960937500074,44.387597656249966],[33.45068359374997,44.553662109374955],[33.55517578125003,45.09765625000003],[32.5080078125001,45.40380859375006],[33.664843750000074,45.94707031249996],[33.59414062500005,46.09624023437499],[33.42988281250004,46.05761718750003],[33.20224609375006,46.17573242187501],[32.47675781250004,46.08369140625001],[31.83125,46.28168945312501],[32.00849609375004,46.42998046875002],[31.554882812500097,46.554296875000034],[32.36132812499997,46.474951171875034],[32.578027343749994,46.615625],[32.04433593750005,46.642480468749966],[31.75917968750005,47.21284179687501],[31.872851562500017,46.649755859375034],[31.532128906249994,46.66474609374998],[31.56337890625005,46.77729492187501],[31.402929687500063,46.62880859375002],[30.796289062499994,46.55200195312503],[30.219042968750074,45.866748046875045],[29.62841796875003,45.722460937500045],[29.705859375000074,45.25991210937505],[29.567675781250074,45.37080078124998],[29.40371093750005,45.419677734375],[29.22353515625005,45.402929687500034],[28.894335937500017,45.28994140625002],[28.78173828125,45.30986328125002],[28.76660156250003,45.28623046874998],[28.78828125000001,45.240966796875],[28.451269531250006,45.292187499999955],[28.317675781250045,45.347119140624955],[28.2125,45.45043945312506],[28.26484375000004,45.48388671875003],[28.310351562500074,45.49858398437499],[28.499023437500057,45.517724609374994],[28.513769531250034,45.57241210937502],[28.49160156250005,45.66577148437503],[28.562304687500074,45.73579101562501],[28.667578125,45.79384765625002],[28.729296875000074,45.852001953124955],[28.73876953125003,45.937158203124994],[28.84951171875005,45.97866210937502],[28.94775390624997,46.049951171874966],[28.971875,46.12763671874998],[29.00625,46.17646484374998],[28.94375,46.28842773437506],[28.930566406250023,46.36225585937501],[28.92744140625001,46.42412109374999],[28.958398437500023,46.45849609374997],[29.146289062500017,46.52690429687496],[29.186230468750068,46.52397460937499],[29.20078125,46.504980468750034],[29.20458984374997,46.37934570312501],[29.223828125000097,46.37695312499997],[29.458789062500017,46.453759765624994],[29.83789062499997,46.35053710937501],[29.878027343750063,46.360205078125034],[30.07568359375003,46.377832031249966],[30.131054687500097,46.42309570312506],[29.92431640624997,46.53886718750002],[29.934765625000097,46.625],[29.942480468750063,46.72377929687502],[29.918066406250063,46.78242187499998],[29.877832031249994,46.828906250000045],[29.57197265625004,46.96401367187502],[29.455664062500006,47.292626953124994],[29.134863281250006,47.48969726562501],[29.125390625000023,47.96455078125001],[28.42304687500001,48.146875],[28.34052734375001,48.144433593749994],[27.54921875000008,48.47773437500004],[27.22851562500003,48.37143554687506],[26.90058593750001,48.37192382812506],[26.847070312500023,48.387158203124955],[26.640429687500045,48.29414062500001],[26.618945312500017,48.25986328125006],[26.4423828125,48.22998046875],[26.162695312500063,47.992529296875034],[25.90869140625,47.96757812500002],[25.689257812500045,47.93247070312506],[25.46425781250005,47.910791015624994],[24.979101562500063,47.72412109374997],[24.578906250000074,47.93105468750005],[23.628710937500017,47.995849609375],[23.40820312500003,47.98999023437506],[23.20263671875,48.084521484375045],[23.13945312499999,48.08740234375],[22.87666015625001,47.94726562500006],[22.769140625000063,48.109619140625],[22.582421875000023,48.134033203125],[22.253710937500017,48.407373046874994],[22.131835937500057,48.40532226562502],[22.142871093750017,48.568505859374966],[22.295214843750045,48.68583984374999],[22.389453125000045,48.87348632812501],[22.52412109375004,49.03139648437502],[22.538671875,49.07270507812501],[22.847070312500023,49.08125],[22.705664062500006,49.17119140624999],[22.6494140625,49.53901367187498],[22.706152343750006,49.60620117187497],[23.03632812500004,49.899072265624966],[23.711718750000045,50.377343749999966],[23.97265625,50.410058593749966],[24.089941406250006,50.53046874999998],[24.0947265625,50.617041015625034],[23.9970703125,50.809375],[24.095800781250063,50.87275390625001],[23.664453125000023,51.31005859375],[23.61376953125,51.525390625],[23.706835937500045,51.64130859374998],[23.79169921875001,51.63710937500002],[23.864257812500057,51.62397460937501],[23.951171875,51.58505859374998],[23.978320312500017,51.59130859375003],[24.12685546875008,51.664648437500034],[24.280078125000017,51.77470703124999],[24.361914062500006,51.86752929687498],[25.785742187500006,51.923828125],[26.77343750000003,51.77070312499998],[26.952832031249983,51.754003906250034],[27.074121093750023,51.760839843750006],[27.14199218750008,51.75205078124998],[27.29628906250008,51.59741210937503],[27.689746093750017,51.572412109374994],[27.7,51.47797851562501],[27.85859375000004,51.59238281250006],[28.532031250000017,51.56245117187501],[28.59902343750008,51.54262695312505],[28.647753906250074,51.45654296875],[28.690234375000017,51.43886718750005],[28.73125,51.43339843749999],[28.84951171875005,51.540185546874994],[28.927539062500045,51.56215820312502],[28.97773437500004,51.57177734375003],[29.01308593750005,51.59892578124996],[29.06074218750001,51.625439453124955],[29.102050781250057,51.627539062500034],[29.346484375000017,51.38256835937503],[30.160742187500006,51.477880859375006],[30.449511718750017,51.274316406249994],[30.63251953125004,51.35541992187501],[30.61171875000005,51.406347656250006],[30.602343750000017,51.47124023437499],[30.56074218750004,51.531494140625],[30.533007812500017,51.596337890624966],[30.583886718749994,51.68896484375003],[30.667285156250017,51.81411132812502],[30.755273437499994,51.89516601562502],[30.84570312500003,51.95307617187501],[30.980664062500097,52.04619140624996],[31.217968750000097,52.05024414062498],[31.345996093750074,52.10537109375002],[31.57373046875003,52.108105468749955],[31.763378906250097,52.10107421875003],[32.12226562500004,52.05058593749996],[32.435449218749994,52.307226562500034],[33.735253906249994,52.344775390625045],[34.397851562499994,51.780419921874994],[34.12109375000003,51.67915039062498],[34.21386718750003,51.25537109375006],[35.0640625,51.203417968750045],[35.31191406250005,51.043896484374955],[35.59111328125002,50.36875],[36.1164062500001,50.408544921875006],[36.619433593750074,50.209228515625],[37.42285156249997,50.411474609375006],[38.046875,49.92001953125006],[38.258593750000074,50.05234375],[38.91835937499999,49.82470703125],[39.17480468750003,49.85595703124997],[39.780566406250074,49.57202148437503],[40.080664062500006,49.576855468749955],[40.10878906250005,49.251562500000034],[39.68652343749997,49.007910156250034],[40.00361328125004,48.82207031250002],[39.792871093749994,48.807714843750034],[39.6447265625001,48.591210937499966],[39.8356445312501,48.54277343749996],[39.95791015625005,48.268896484375034],[39.77871093750005,47.88754882812506],[38.90029296875005,47.85512695312502],[38.36884765625004,47.609960937500006],[38.21435546875003,47.091455078124966]]]]},"properties":{"name":"Ukraine","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-57.81059570312499,-30.85859375000001],[-57.872509765625,-30.59101562500001],[-57.831201171874994,-30.495214843750006],[-57.71269531249999,-30.38447265625001],[-57.65087890625,-30.295019531250006],[-57.645751953125,-30.226953125],[-57.60888671875,-30.187792968750003],[-57.55229492187499,-30.26123046875],[-57.21445312499999,-30.28339843750001],[-57.186914062499994,-30.26484375000001],[-57.120507812499994,-30.14443359375001],[-56.83271484375,-30.107226562500003],[-56.4072265625,-30.44746093750001],[-55.998974609375,-30.837207031250003],[-56.018457031249994,-30.99189453125001],[-56.00468749999999,-31.079199218750006],[-55.873681640624994,-31.069628906250003],[-55.6271484375,-30.85810546875001],[-55.60302734375,-30.85078125000001],[-55.55732421875,-30.8759765625],[-55.17353515625,-31.279589843750003],[-55.09116210937499,-31.31396484375],[-55.036035156249994,-31.27900390625001],[-54.587646484375,-31.48515625],[-54.22055664062499,-31.85517578125001],[-53.76171875,-32.05683593750001],[-53.601708984374994,-32.40302734375001],[-53.12558593749999,-32.73671875],[-53.2140625,-32.82109375],[-53.31010742187499,-32.92705078125],[-53.39521484375,-33.010351562500006],[-53.482861328125,-33.06855468750001],[-53.511865234374994,-33.10869140625],[-53.53134765624999,-33.1708984375],[-53.53134765624999,-33.65546875000001],[-53.37060546875,-33.7421875],[-53.419580078124994,-33.77919921875001],[-53.47246093749999,-33.84931640625001],[-53.53452148437499,-34.01748046875001],[-53.742919921875,-34.24951171875],[-53.785302734374994,-34.38037109375],[-54.16855468749999,-34.670703125],[-54.902294921875,-34.93281250000001],[-55.67314453124999,-34.77568359375],[-56.249951171875,-34.90126953125001],[-57.17070312499999,-34.45234375000001],[-57.8291015625,-34.47734375],[-58.40019531249999,-33.91240234375],[-58.363525390625,-33.18232421875001],[-58.08232421874999,-32.893652343750006],[-58.12958984375,-32.75722656250001],[-58.16220703124999,-32.566503906250006],[-58.201171875,-32.4716796875],[-58.123046875,-32.321875],[-58.11972656249999,-32.24892578125001],[-58.164794921875,-32.18486328125],[-58.177001953125,-32.11904296875001],[-58.15634765624999,-32.0515625],[-58.160400390625,-31.98652343750001],[-58.18901367187499,-31.92421875],[-58.16748046875,-31.87265625],[-58.04233398437499,-31.76923828125001],[-58.006982421874994,-31.68496093750001],[-58.053857421874994,-31.494921875],[-58.0333984375,-31.416601562500006],[-57.89335937499999,-31.1953125],[-57.868408203125,-31.10439453125001],[-57.88632812499999,-30.93740234375001],[-57.81059570312499,-30.85859375000001]]]},"properties":{"name":"Uruguay","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-155.58134765624996,19.012011718750017],[-155.88129882812495,19.07050781250001],[-156.04868164062498,19.749951171874983],[-155.82031249999997,20.01416015624997],[-155.83164062499998,20.27583007812501],[-155.198779296875,19.99438476562503],[-154.80419921875,19.524462890625045],[-155.58134765624996,19.012011718750017]]],[[[-156.84960937499997,20.772656249999955],[-156.97338867187497,20.757519531249983],[-157.0505859375,20.912451171875034],[-156.88056640624995,20.904833984375074],[-156.84960937499997,20.772656249999955]]],[[[-156.48681640624994,20.93256835937504],[-156.27753906250004,20.951269531250034],[-155.98984374999998,20.75712890624999],[-156.40878906249998,20.60517578125004],[-156.480078125,20.80122070312501],[-156.69775390625003,20.949072265625034],[-156.58540039062495,21.034326171874994],[-156.48681640624994,20.93256835937504]]],[[[-157.21362304687497,21.215380859375017],[-156.71215820312506,21.155078125000074],[-156.85986328125,21.05634765625004],[-157.29033203124996,21.112597656250017],[-157.21362304687497,21.215380859375017]]],[[[-157.79936523437502,21.456640625000034],[-157.63540039062502,21.30761718749997],[-158.11035156249994,21.318603515625],[-158.27314453125,21.585253906250045],[-157.9625,21.701367187499983],[-157.79936523437502,21.456640625000034]]],[[[-159.37275390625,21.93237304687497],[-159.60883789062495,21.909521484375034],[-159.78916015625003,22.041796875000074],[-159.57919921874998,22.22314453124997],[-159.35205078124997,22.219580078125034],[-159.37275390625,21.93237304687497]]],[[[-81.04418945312503,24.716796875000057],[-81.137353515625,24.710498046875017],[-80.93046875,24.75947265625004],[-81.04418945312503,24.716796875000057]]],[[[-80.3818359375,25.142285156249955],[-80.58056640624997,24.954248046875023],[-80.25708007812497,25.34760742187504],[-80.3818359375,25.142285156249955]]],[[[-97.17070312499996,26.159375],[-97.40209960937494,26.820507812499983],[-97.38598632812494,27.19648437500004],[-97.17070312499996,26.159375]]],[[[-80.18676757812497,27.278417968750034],[-80.17050781250003,27.20478515625004],[-80.43691406249994,27.850537109374955],[-80.18676757812497,27.278417968750034]]],[[[-91.793701171875,29.50073242187497],[-92.00664062499996,29.61030273437501],[-91.875244140625,29.640966796875034],[-91.793701171875,29.50073242187497]]],[[[-84.90791015624998,29.642626953125017],[-85.11674804687499,29.63281249999997],[-84.737158203125,29.732421875],[-84.90791015624998,29.642626953125017]]],[[[-89.22397460937498,30.084082031249977],[-89.34199218749995,30.062841796875006],[-89.18466796874995,30.168652343749983],[-89.22397460937498,30.084082031249977]]],[[[-118.34794921875002,33.3857421875],[-118.29746093750003,33.312109375],[-118.44628906249997,33.317089843749955],[-118.56943359375002,33.46416015624999],[-118.34794921875002,33.3857421875]]],[[[-120.04355468749995,33.918847656249994],[-120.25190429687494,34.01386718749998],[-120.07182617187493,34.026513671874966],[-120.04355468749995,33.918847656249994]]],[[[-119.88237304687497,34.07968749999998],[-119.54926757812497,34.02817382812506],[-119.80957031249997,33.9677734375],[-119.88237304687497,34.07968749999998]]],[[[-75.54414062499995,35.240087890625034],[-75.69008789062502,35.221582031249994],[-75.53637695312497,35.27861328124999],[-75.50351562500003,35.769140625],[-75.46474609374994,35.448632812499966],[-75.54414062499995,35.240087890625034]]],[[[-74.13320312500002,39.680761718750034],[-74.25048828125,39.529394531250006],[-74.10673828124996,39.74643554687498],[-74.13320312500002,39.680761718750034]]],[[[-72.50976562500003,40.98603515625001],[-72.58085937499996,40.92133789062498],[-71.90322265625,41.06069335937505],[-73.19428710937495,40.654199218749994],[-74.01489257812497,40.581201171874966],[-73.87924804687498,40.79165039062502],[-73.573828125,40.91962890624998],[-72.62509765624998,40.99184570312505],[-72.27412109374998,41.15302734375001],[-72.50976562500003,40.98603515625001]]],[[[-69.9779296875,41.26557617187504],[-70.23305664062502,41.28632812500001],[-70.04121093750001,41.3974609375],[-69.9779296875,41.26557617187504]]],[[[-70.50991210937502,41.376318359375034],[-70.82919921874995,41.35898437500006],[-70.61601562499996,41.45722656250001],[-70.50991210937502,41.376318359375034]]],[[[-71.24140625000001,41.49194335937497],[-71.34624023437496,41.469384765624994],[-71.23203124999995,41.654296875],[-71.24140625000001,41.49194335937497]]],[[[-68.18725585937497,44.33247070312501],[-68.41171875000003,44.294335937499966],[-68.29941406249998,44.456494140624955],[-68.18725585937497,44.33247070312501]]],[[[-122.394140625,47.39526367187503],[-122.50991210937497,47.358007812500006],[-122.486474609375,47.48876953125],[-122.394140625,47.39526367187503]]],[[[-122.57275390624999,48.15664062499999],[-122.38315429687499,47.923193359375034],[-122.74150390624999,48.22529296875004],[-122.62861328125,48.38422851562498],[-122.54243164062503,48.29399414062499],[-122.69702148437499,48.228662109374994],[-122.57275390624999,48.15664062499999]]],[[[-94.80346679687497,49.0029296875],[-94.71279296874997,48.863427734374994],[-94.62089843749999,48.74262695312501],[-93.85161132812496,48.607275390625034],[-93.70771484374995,48.52543945312499],[-93.37788085937498,48.61655273437498],[-93.25795898437497,48.62885742187501],[-92.83671875,48.567773437499994],[-92.50058593749995,48.43535156250002],[-92.41459960937493,48.276611328125],[-92.3484375,48.276611328125],[-92.00517578125002,48.301855468750006],[-91.38720703124997,48.05854492187498],[-91.04345703125003,48.19370117187498],[-90.84033203125003,48.20053710937506],[-90.79731445312495,48.13105468750001],[-89.4556640625,47.996240234374994],[-88.37817382812497,48.30307617187498],[-87.74389648437497,48.06054687500003],[-87.20800781249997,47.848486328125006],[-86.67216796874996,47.636425781249955],[-85.65224609375,47.21997070312503],[-85.07006835937497,46.97993164062498],[-84.87597656249994,46.89990234375003],[-84.66577148437503,46.54326171875002],[-84.44047851562496,46.49814453125006],[-84.12319335937497,46.50292968749997],[-83.97778320312503,46.08491210937498],[-83.61596679687503,46.116845703124994],[-83.46948242187503,45.99467773437499],[-83.59267578125,45.81713867187506],[-82.91933593749994,45.51796875000002],[-82.55107421874996,45.34736328125001],[-82.48505859374993,45.08374023437503],[-82.137841796875,43.570898437500034],[-82.19038085937495,43.47407226562501],[-82.54531249999997,42.62470703124998],[-83.10952148437497,42.25068359375001],[-83.141943359375,41.97587890624996],[-82.69003906249995,41.675195312499994],[-82.43906249999998,41.67485351562502],[-81.97416992187496,41.88872070312499],[-81.50732421874997,42.10346679687504],[-81.02822265624997,42.247167968750006],[-80.24755859375,42.36601562499996],[-79.17373046875,42.74853515625],[-78.91508789062496,42.90913085937504],[-78.98076171874993,42.98061523437502],[-79.02617187499996,43.01733398437506],[-79.066064453125,43.10610351562502],[-79.171875,43.466552734375],[-79.00249023437502,43.52714843749999],[-78.845556640625,43.58334960937498],[-78.72041015625001,43.62495117187501],[-78.45825195312497,43.63149414062502],[-77.596533203125,43.62861328124998],[-76.819970703125,43.62880859375002],[-76.18579101562503,44.24223632812502],[-75.81933593749997,44.468017578125],[-75.40126953124997,44.77226562499999],[-74.99614257812496,44.970117187499966],[-74.76245117187494,44.99907226562502],[-74.663232421875,45.00390625000003],[-71.51752929687495,45.00756835937497],[-71.327294921875,45.29008789062496],[-70.86503906249999,45.27070312500001],[-70.296240234375,45.90610351562506],[-70.00771484375002,46.70893554687501],[-69.24287109374998,47.46298828124998],[-69.0501953125,47.426611328125034],[-68.93720703124998,47.21123046875002],[-68.23549804687502,47.34594726562503],[-67.806787109375,47.08281249999999],[-67.80224609374994,45.7275390625],[-67.43266601562496,45.603125],[-67.366943359375,45.17377929687498],[-67.12485351562498,45.16943359375],[-66.98701171874995,44.82768554687502],[-67.191259765625,44.67558593750002],[-67.83906249999998,44.576269531250034],[-68.056640625,44.38432617187502],[-68.15205078124998,44.50200195312499],[-68.45058593749997,44.50761718749999],[-68.53251953124996,44.25864257812498],[-68.81191406249994,44.33935546875],[-68.76269531249994,44.57075195312498],[-69.22607421875003,43.98647460937505],[-69.52075195312503,43.89736328125002],[-69.55668945312496,43.982763671875006],[-69.62392578125,43.88061523437497],[-69.65288085937493,43.99389648437506],[-69.808349609375,43.772314453125034],[-69.965234375,43.855078125],[-70.17880859374998,43.76635742187506],[-70.73310546875001,43.07001953125004],[-70.82905273437493,42.82534179687502],[-70.61293945312497,42.623242187499955],[-71.04619140624993,42.331103515625045],[-70.73828125,42.228857421875006],[-70.42666015625002,41.75727539062501],[-70.00141601562498,41.82617187500003],[-70.24106445312495,42.09121093750002],[-70.10893554687496,42.07832031249998],[-69.97788085937498,41.961279296875006],[-69.94863281249997,41.67714843750005],[-70.65712890625,41.53422851562496],[-70.70112304687498,41.71484375],[-71.1685546875,41.489404296874994],[-71.14873046874996,41.74570312499998],[-71.27109375,41.68125],[-71.39013671875003,41.79531250000005],[-71.52285156249997,41.378955078125045],[-72.92470703125002,41.28515625000003],[-73.98710937499999,40.751367187499994],[-73.87197265625,41.05517578124997],[-73.96992187499995,41.24970703125001],[-73.92719726562495,40.914257812499955],[-74.26420898437496,40.52861328124999],[-73.972265625,40.40034179687498],[-74.079931640625,39.78813476562496],[-74.06459960937497,39.99311523437498],[-74.79448242187499,39.00190429687501],[-74.95429687499995,38.949951171875],[-74.89702148437502,39.14545898437504],[-75.52421874999999,39.49018554687501],[-75.421875,39.78969726562502],[-75.07416992187495,39.98349609375006],[-75.40063476562503,39.83159179687502],[-75.58759765625001,39.64077148437505],[-75.3921875,39.09277343750006],[-75.08867187499999,38.777539062499955],[-75.18710937499995,38.59111328124999],[-75.03876953124993,38.426367187500006],[-75.934375,37.15190429687496],[-75.97504882812498,37.3984375],[-75.65927734374995,37.953955078125034],[-75.850830078125,37.971582031249994],[-75.85869140624999,38.36206054687503],[-76.05122070312495,38.27954101562503],[-76.2646484375,38.436425781249994],[-76.26416015625,38.599951171875006],[-76.016943359375,38.62509765624998],[-76.21298828124998,38.75830078125003],[-76.34116210937498,38.70966796874998],[-76.16816406249998,38.85273437499998],[-76.32958984375,38.95278320312505],[-76.13520507812493,39.082128906250006],[-76.23569335937498,39.19160156250001],[-76.153125,39.315039062500034],[-75.87597656249997,39.3759765625],[-76.003125,39.41083984375001],[-75.87294921874997,39.510888671874966],[-75.95893554687498,39.58505859374998],[-76.2763671875,39.32275390625],[-76.330810546875,39.40390625],[-76.42089843749997,39.225],[-76.57041015624995,39.26933593749996],[-76.42758789062498,39.12602539062499],[-76.55854492187493,39.065234375000045],[-76.39409179687502,38.368994140625034],[-76.67734374999998,38.611962890624966],[-76.66855468749998,38.5375],[-76.34116210937498,38.08701171875006],[-76.86811523437495,38.39028320312502],[-76.88974609375,38.292089843750006],[-77.00117187499995,38.44526367187504],[-77.23251953125,38.40771484375003],[-77.03037109374995,38.88925781249998],[-77.26040039062502,38.6],[-77.27324218749996,38.35175781249998],[-77.04677734375002,38.356689453125],[-76.26425781250003,37.89355468749997],[-76.34414062499997,37.675683593749994],[-76.49248046874999,37.682226562500006],[-77.11108398437497,38.165673828124994],[-76.54946289062494,37.66914062500001],[-76.30556640625,37.57148437500001],[-76.26347656249996,37.35703125],[-76.40097656249998,37.386132812499994],[-76.45390624999993,37.27353515625006],[-76.75771484375002,37.50541992187496],[-76.28330078125,37.05268554687501],[-76.40087890624997,36.991308593750034],[-76.63090820312493,37.22172851562499],[-77.25087890624994,37.329199218750034],[-76.671875,37.172949218750006],[-76.48784179687502,36.89702148437499],[-75.99941406249997,36.91264648437499],[-75.53417968749997,35.81909179687506],[-75.94648437499995,36.65908203125002],[-75.99277343749995,36.47377929687502],[-75.82006835937494,36.11284179687502],[-76.14785156250002,36.279296875],[-76.15,36.14575195312497],[-76.27060546874998,36.18989257812501],[-76.22739257812498,36.11601562499996],[-76.559375,36.015332031249955],[-76.733642578125,36.229150390624994],[-76.726220703125,35.957617187500034],[-76.06977539062501,35.970312500000034],[-76.08359374999998,35.69052734375006],[-75.85390625,35.96015625000001],[-75.75883789062499,35.84326171875],[-75.77392578124997,35.64697265624997],[-76.17382812499997,35.354150390624994],[-76.489501953125,35.397021484375045],[-76.57719726562502,35.53232421874998],[-76.74140624999998,35.431494140625034],[-77.03999023437495,35.527392578125045],[-76.51293945312497,35.270410156249994],[-76.77915039062503,34.990332031250034],[-77.07026367187501,35.154638671875034],[-76.97495117187503,35.025195312500045],[-76.74497070312498,34.94096679687502],[-76.45673828124998,34.989355468750034],[-76.36220703125,34.9365234375],[-76.43979492187498,34.84291992187502],[-77.29624023437503,34.602929687499994],[-77.41225585937497,34.730810546875034],[-77.37978515625,34.526611328125],[-77.750732421875,34.28496093749996],[-77.92783203125,33.93974609374999],[-77.95327148437494,34.16899414062496],[-78.01333007812502,33.91181640624998],[-78.40585937499995,33.91757812499998],[-78.84145507812497,33.72407226562501],[-79.19379882812498,33.24414062500003],[-79.22646484375,33.40488281249998],[-79.27602539062497,33.135400390624966],[-79.80498046874999,32.78740234374996],[-79.93310546874997,32.81005859375006],[-79.94072265625002,32.667138671874966],[-80.36284179687496,32.500732421875],[-80.6341796875,32.51171875000003],[-80.474267578125,32.42275390625002],[-80.579345703125,32.28730468750004],[-80.80253906249999,32.44804687500002],[-80.69423828124997,32.21572265625002],[-81.11328124999997,31.87861328125001],[-81.06611328124995,31.787988281250023],[-81.259375,31.538916015624977],[-81.17543945312494,31.531298828125017],[-81.38095703124998,31.353271484375],[-81.28847656249997,31.263916015625],[-81.441748046875,31.19970703124997],[-81.5162109375,30.801806640625017],[-81.24951171875003,29.793798828125006],[-80.52412109374995,28.48608398437503],[-80.5849609375,28.271582031250034],[-80.456884765625,27.90068359374996],[-80.61000976562494,28.177587890624977],[-80.60693359375003,28.522900390624983],[-80.693505859375,28.34497070312497],[-80.68847656250003,28.578515625000023],[-80.83818359374999,28.757666015625034],[-80.74863281250003,28.381005859375023],[-80.050048828125,26.807714843750063],[-80.1263671875,25.83349609375],[-80.48466796874999,25.229833984375034],[-81.11049804687494,25.138037109374977],[-81.13603515624999,25.309667968750034],[-80.94042968750003,25.264208984375017],[-81.11333007812499,25.367236328125045],[-81.36494140625001,25.83105468750003],[-81.715478515625,25.98315429687503],[-81.95893554687495,26.489941406249983],[-81.82866210937496,26.68706054687499],[-82.03959960937496,26.552050781250017],[-82.01328125,26.96157226562505],[-82.24287109374998,26.848876953125],[-82.44135742187501,27.059667968750034],[-82.71459960937497,27.499609375000063],[-82.40576171874994,27.862890624999977],[-82.67519531249994,27.963769531250023],[-82.61098632812502,27.77724609375005],[-82.74287109374995,27.709375],[-82.84350585937494,27.845996093750017],[-82.65146484375,28.8875],[-83.69438476562502,29.92597656250001],[-84.04423828124996,30.10380859374999],[-84.30966796874995,30.064746093750045],[-84.38281250000003,29.90737304687505],[-85.31894531249995,29.680224609375045],[-85.413818359375,29.76757812499997],[-85.413818359375,29.842480468749955],[-85.31489257812493,29.758105468750017],[-85.35361328125,29.875732421875],[-85.67578125,30.121923828125063],[-85.60351562500003,30.286767578124966],[-85.75581054687495,30.1669921875],[-86.454443359375,30.39912109375004],[-86.12382812499999,30.40581054687499],[-86.25737304687502,30.493017578124977],[-87.201171875,30.339257812499994],[-86.98579101562498,30.43085937500001],[-86.99755859375,30.5703125],[-87.17060546874998,30.538769531249983],[-87.28105468750002,30.339257812499994],[-87.47578124999998,30.294287109375006],[-87.44829101562499,30.394140625],[-87.62226562499998,30.264746093750006],[-88.00595703124998,30.230908203124955],[-87.79028320312503,30.291796875000017],[-88.011328125,30.694189453125006],[-88.13544921874998,30.366601562499994],[-88.90522460937495,30.415136718750006],[-89.32055664062503,30.3453125],[-89.58847656249998,30.165966796874955],[-90.12597656249997,30.369091796874955],[-90.33198242187493,30.277587890625057],[-90.41303710937501,30.140332031249983],[-90.17534179687499,30.02910156249996],[-89.73745117187497,30.171972656250034],[-89.66503906249994,30.117041015625034],[-89.81518554687497,30.007275390624955],[-89.631689453125,29.90380859375003],[-89.400732421875,30.04604492187505],[-89.35444335937501,29.82021484375005],[-89.72089843749995,29.619287109374966],[-89.01572265625,29.202880859375057],[-89.15551757812497,29.01660156250003],[-89.23608398437494,29.081103515625017],[-89.37612304687497,28.981347656250023],[-89.44316406249996,29.194140625000045],[-90.15908203124997,29.537158203125017],[-90.05278320312499,29.336816406249966],[-90.21279296875,29.104931640624983],[-90.37919921874996,29.29511718750001],[-90.75102539062496,29.13085937500003],[-91.29013671875,29.288964843749994],[-91.15078124999994,29.317919921875045],[-91.24882812499993,29.56420898437503],[-91.51420898437499,29.55537109375001],[-91.8931640625,29.836035156249977],[-92.135498046875,29.699462890625057],[-92.08403320312499,29.59282226562499],[-92.26083984374995,29.55683593750004],[-93.17568359375,29.778955078124994],[-93.82646484374999,29.725146484375045],[-93.84145507812502,29.97973632812503],[-93.89047851562495,29.689355468750023],[-94.759619140625,29.384277343750057],[-94.52626953125,29.547949218750006],[-94.77827148437498,29.54785156249997],[-94.74194335937497,29.75],[-95.0228515625,29.70234375000001],[-94.88828125000003,29.37055664062501],[-95.27348632812499,28.96386718750003],[-96.23452148437502,28.488964843749983],[-96.01103515624996,28.631933593749977],[-96.44873046874997,28.594482421875],[-96.64003906249994,28.708789062500017],[-96.42109374999993,28.457324218750045],[-96.67636718749998,28.34130859375003],[-96.77353515624998,28.421630859375057],[-96.839501953125,28.194384765625017],[-97.156494140625,28.144335937500045],[-97.141259765625,28.060742187499983],[-97.034326171875,28.093847656250063],[-97.07309570312498,27.98608398437503],[-97.43149414062498,27.83720703124999],[-97.28872070312494,27.670605468749983],[-97.43911132812502,27.328271484374966],[-97.76845703124997,27.45751953125],[-97.69238281250003,27.287158203125017],[-97.48510742187497,27.237402343750006],[-97.55468749999994,26.96733398437496],[-97.43505859375,26.48583984375003],[-97.14624023437494,25.961474609375045],[-97.37563476562497,25.871826171875],[-99.10776367187498,26.446923828124994],[-99.45654296874999,27.05668945312496],[-99.50532226562497,27.54833984375003],[-100.29604492187495,28.32768554687499],[-100.75458984375001,29.182519531249994],[-101.44038085937503,29.77685546875],[-102.26894531249998,29.871191406250034],[-102.61494140624994,29.75234375],[-102.8919921875,29.216406250000034],[-103.16831054687498,28.998193359374994],[-104.110595703125,29.386132812499994],[-104.50400390624995,29.677685546874955],[-104.97880859374996,30.645947265624955],[-106.14804687499995,31.450927734375],[-106.44541015624996,31.768408203125006],[-108.21181640625002,31.779345703125017],[-108.21445312499993,31.329443359375034],[-111.0419921875,31.32421875000003],[-114.83593749999994,32.50830078125003],[-114.72475585937495,32.71533203125003],[-117.12827148437495,32.533349609374994],[-117.46743164062495,33.295507812500006],[-118.08051757812497,33.72216796874997],[-118.41044921874996,33.74394531249996],[-118.506201171875,34.01738281249999],[-119.14375,34.11201171874998],[-119.60605468749999,34.41801757812499],[-120.48120117187503,34.47163085937498],[-120.64467773437502,34.57998046875002],[-120.65908203124994,35.122412109375034],[-120.85737304687501,35.209667968749955],[-120.899609375,35.42509765624999],[-121.28383789062494,35.67631835937499],[-121.87739257812498,36.33105468749997],[-121.80742187499995,36.851220703124994],[-122.394921875,37.20751953125003],[-122.49921875000001,37.542626953124994],[-122.44560546875002,37.797998046874966],[-122.07050781249998,37.47827148437503],[-122.38544921875001,37.960595703124966],[-122.31425781249999,38.00732421874997],[-121.52534179687503,38.05590820312503],[-122.39335937499995,38.14482421875002],[-122.52133789062499,37.82641601562497],[-122.93198242187498,38.05546875000002],[-122.998779296875,37.98862304687498],[-122.90815429687501,38.19658203124999],[-123.701123046875,38.90727539062502],[-123.83291015624994,39.775488281250034],[-124.35654296875003,40.37109374999997],[-124.07192382812497,41.45952148437502],[-124.53964843750003,42.812890624999966],[-124.14873046874997,43.691748046875034],[-123.92934570312495,45.57695312499996],[-123.989306640625,46.21938476562502],[-123.22060546874998,46.153613281250045],[-123.46484375,46.27109374999998],[-124.07275390624996,46.279443359374994],[-124.04433593750002,46.605078125],[-123.946142578125,46.43256835937501],[-123.88916015625003,46.660009765625006],[-124.11254882812497,46.862695312499994],[-123.84287109375002,46.963183593750045],[-124.11171875,47.03520507812496],[-124.1392578125,46.95468749999998],[-124.376025390625,47.658642578124955],[-124.66308593749996,47.97412109375003],[-124.7099609375,48.38037109375],[-123.97578125,48.16845703125],[-122.97387695312499,48.07329101562496],[-122.77861328125,48.13759765625002],[-122.65664062500002,47.88115234374999],[-122.77841796874996,47.738427734374966],[-122.82138671875,47.79316406250001],[-123.1390625,47.386083984375034],[-122.92216796874993,47.40766601562498],[-123.066796875,47.39965820312506],[-123.04863281249995,47.479345703125034],[-122.53281250000002,47.919726562500045],[-122.67548828124995,47.612353515625045],[-122.57788085937496,47.29316406250001],[-122.76777343750001,47.21835937500006],[-122.82846679687503,47.336572265624994],[-123.02758789062501,47.13891601562503],[-122.70195312500002,47.11088867187502],[-122.35380859374996,47.37158203125],[-122.40180664062497,47.78427734374998],[-122.24199218750002,48.01074218750003],[-122.5169921875,48.15966796874997],[-122.40854492187502,48.29389648437498],[-122.66899414062496,48.465234374999966],[-122.49677734374995,48.50556640625001],[-122.51274414062502,48.66943359375],[-122.56201171875001,48.777978515624994],[-122.68593749999995,48.794287109375034],[-122.72246093750002,48.85302734375003],[-122.78876953125003,48.993017578125034],[-121.40722656249994,48.993017578125034],[-119.70170898437495,48.993017578125034],[-119.27534179687494,48.99306640625005],[-118.84892578124993,48.99306640625005],[-117.99619140625002,48.99306640625005],[-116.71704101562501,48.99306640625005],[-110.74765625,48.99306640625005],[-104.77832031249997,48.993115234374955],[-98.80898437499995,48.99316406249997],[-97.52983398437493,48.99316406249997],[-96.67705078124993,48.99316406249997],[-96.25068359374993,48.99316406249997],[-95.39790039062493,48.99316406249997],[-95.16206054687493,48.991748046875045],[-95.15527343749997,49.36967773437502],[-94.85434570312495,49.304589843749994],[-94.86040039062493,49.258593750000045],[-94.80346679687497,49.0029296875]]],[[[-176.28671874999998,51.79199218750006],[-176.34965820312502,51.733300781249994],[-176.41372070312502,51.840576171875],[-176.28671874999998,51.79199218750006]]],[[[-177.87905273437502,51.64970703125002],[-178.05888671875,51.67260742187497],[-177.98637695312493,51.76425781249998],[-178.16826171874996,51.90302734375001],[-177.644482421875,51.826269531250006],[-177.87905273437502,51.64970703125002]]],[[[-177.14819335937497,51.71674804687498],[-177.67021484375002,51.701074218749994],[-177.11005859375,51.92875976562502],[-177.14819335937497,51.71674804687498]]],[[[-176.593310546875,51.86669921875],[-176.45234374999995,51.735693359375034],[-176.96162109374998,51.60366210937505],[-176.69833984374998,51.986035156249955],[-176.593310546875,51.86669921875]]],[[[179.72773437500015,51.905419921874966],[179.50390625000003,51.97958984374998],[179.6271484375001,52.03041992187502],[179.72773437500015,51.905419921874966]]],[[[177.4154296875,51.88281249999997],[177.25029296875013,51.902929687500006],[177.6696289062501,52.10302734375],[177.4154296875,51.88281249999997]]],[[[-173.5533203125,52.13627929687502],[-173.02290039062504,52.07915039062502],[-173.83579101562498,52.048193359375006],[-173.99248046874993,52.12333984374996],[-173.5533203125,52.13627929687502]]],[[[-172.464794921875,52.27226562500002],[-172.61982421874998,52.27285156250005],[-172.47041015625,52.38803710937506],[-172.31362304687497,52.32958984375006],[-172.464794921875,52.27226562500002]]],[[[-174.67739257812502,52.035009765625006],[-175.29555664062502,52.022167968749955],[-174.30615234375,52.216162109375034],[-174.43554687499997,52.317236328125034],[-174.168896484375,52.42016601562503],[-174.04560546875,52.36723632812499],[-174.12065429687493,52.13520507812498],[-174.67739257812502,52.035009765625006]]],[[[173.72275390625018,52.35957031250004],[173.40234375000009,52.40478515625],[173.77607421875004,52.49511718750003],[173.72275390625018,52.35957031250004]]],[[[172.81181640625002,53.01298828125002],[173.43603515625003,52.85205078125],[172.93515625000012,52.752099609374966],[172.49482421875004,52.93789062499999],[172.81181640625002,53.01298828125002]]],[[[-167.96435546875003,53.345117187499994],[-169.088916015625,52.83203125],[-168.68984375000002,53.227246093749955],[-168.38041992187496,53.28344726562506],[-168.28769531249998,53.500146484374966],[-167.82807617187495,53.50795898437505],[-167.96435546875003,53.345117187499994]]],[[[-166.61533203124998,53.90092773437499],[-166.37231445312494,53.99897460937498],[-166.230859375,53.93261718750006],[-166.54560546875,53.726464843749966],[-166.354541015625,53.67353515625004],[-166.85097656249997,53.45288085937503],[-167.78085937500003,53.30024414062501],[-167.13608398437503,53.526464843750006],[-167.01572265625003,53.69838867187502],[-166.80898437500002,53.64614257812505],[-166.741259765625,53.71293945312496],[-167.10561523437497,53.813378906249994],[-167.03808593749997,53.9421875],[-166.67329101562498,54.00595703124998],[-166.61533203124998,53.90092773437499]]],[[[-165.841552734375,54.070654296875006],[-166.05664062500003,54.054345703124994],[-166.08774414062498,54.16914062500001],[-165.89287109375,54.20698242187498],[-165.69287109375,54.09990234375002],[-165.841552734375,54.070654296875006]]],[[[-165.56113281249998,54.13671874999997],[-165.55063476562498,54.28452148437498],[-165.40786132812502,54.19682617187496],[-165.56113281249998,54.13671874999997]]],[[[-162.29814453124993,54.847021484375006],[-162.43388671875,54.931542968749994],[-162.26459960937504,54.983496093750006],[-162.29814453124993,54.847021484375006]]],[[[-163.476025390625,54.98071289062497],[-163.37895507812496,54.81552734374998],[-163.083251953125,54.66899414062496],[-163.35810546874995,54.73569335937506],[-164.82343749999998,54.41909179687505],[-164.887646484375,54.60781250000002],[-164.47861328124998,54.906835937500006],[-163.80712890624997,55.04907226562503],[-163.476025390625,54.98071289062497]]],[[[-159.51513671875,55.15185546875003],[-159.617724609375,55.05732421875004],[-159.54506835937497,55.22597656250002],[-159.51513671875,55.15185546875003]]],[[[-131.33974609375002,55.079833984375],[-131.32954101562498,54.887744140625045],[-131.592236328125,55.02568359374999],[-131.5654296875,55.26411132812498],[-131.33974609375002,55.079833984375]]],[[[-159.87299804687495,55.128759765625034],[-160.22705078124997,54.92270507812506],[-160.17207031249995,55.123046875],[-159.88735351562497,55.27299804687502],[-159.87299804687495,55.128759765625034]]],[[[-132.86225585937504,54.894433593749966],[-132.61723632812493,54.892431640625006],[-132.70581054687497,54.684179687500034],[-133.42905273437498,55.30380859374998],[-133.097412109375,55.213720703125006],[-132.86225585937504,54.894433593749966]]],[[[-160.329296875,55.337695312500045],[-160.34331054687493,55.25878906250006],[-160.51748046875,55.33383789062506],[-160.329296875,55.337695312500045]]],[[[-160.68491210937498,55.314794921875006],[-160.552783203125,55.38076171875002],[-160.48754882812503,55.18486328124999],[-160.79506835937497,55.14521484375001],[-160.72392578124993,55.404638671875006],[-160.68491210937498,55.314794921875006]]],[[[-133.30507812500002,55.54375],[-133.6501953125,55.26928710937506],[-133.73710937500002,55.49692382812498],[-133.30507812500002,55.54375]]],[[[-155.56601562500003,55.82119140625005],[-155.73735351562493,55.82978515625001],[-155.59394531250004,55.92431640625],[-155.56601562500003,55.82119140625005]]],[[[-130.97915039062502,55.489160156249994],[-131.187890625,55.206298828125],[-131.44755859374996,55.40878906250006],[-131.7625,55.16582031250002],[-131.84609374999997,55.41625976562497],[-131.62495117187504,55.831689453124966],[-131.26923828125004,55.95537109375002],[-130.997802734375,55.727636718750006],[-130.97915039062502,55.489160156249994]]],[[[-133.56611328125,56.33920898437498],[-133.202978515625,56.31982421875003],[-133.096630859375,56.09003906250001],[-132.59760742187504,55.89501953125],[-132.17270507812498,55.48061523437502],[-132.51127929687493,55.59394531250001],[-132.63129882812495,55.47319335937502],[-132.41787109375002,55.48291015625006],[-132.20668945312497,55.22441406249996],[-131.97641601562498,55.208593750000034],[-132.06474609375002,54.713134765625],[-133.11855468750002,55.32763671875003],[-132.95888671875002,55.39555664062502],[-133.0333984375,55.589697265625034],[-133.68017578124994,55.78515625],[-133.24150390624993,55.920800781249994],[-133.371240234375,56.035888671875],[-133.74252929687498,55.96484375],[-133.530859375,56.145654296874966],[-133.56611328125,56.33920898437498]]],[[[-132.77988281249998,56.24726562499998],[-133.03500976562498,56.34091796875006],[-132.90205078124998,56.45375976562505],[-132.62910156249995,56.411914062500045],[-132.77988281249998,56.24726562499998]]],[[[-132.11235351562493,56.109375],[-132.13295898437497,55.94326171875005],[-132.28730468749995,55.92939453124998],[-132.65991210937503,56.07817382812499],[-132.379833984375,56.49877929687497],[-132.06689453125,56.24423828124998],[-132.11235351562493,56.109375]]],[[[-154.208642578125,56.51489257812497],[-154.32221679687504,56.570605468750045],[-154.11040039062496,56.602929687499966],[-154.208642578125,56.51489257812497]]],[[[-169.755224609375,56.63505859375002],[-169.47431640624998,56.59404296875002],[-169.6326171875,56.545703125000045],[-169.755224609375,56.63505859375002]]],[[[-132.746875,56.525683593750045],[-132.94804687500002,56.56723632812498],[-132.842529296875,56.79477539062506],[-132.56796875000003,56.57583007812505],[-132.746875,56.525683593750045]]],[[[-133.98959960937503,56.84497070312497],[-133.73837890625,56.65043945312496],[-133.94970703125,56.12773437499996],[-134.18959960937502,56.07695312500002],[-134.084375,56.456347656250045],[-134.37368164062502,56.838671875000045],[-134.14326171874998,56.93232421875001],[-133.98959960937503,56.84497070312497]]],[[[-133.36621093750006,57.003515625000034],[-132.99624023437497,56.93041992187497],[-132.95917968749998,56.67705078124996],[-133.03491210937494,56.62075195312505],[-133.32895507812498,56.83007812499997],[-133.158154296875,56.495166015625045],[-133.4841796875,56.45175781249998],[-133.979443359375,57.009570312500045],[-133.36621093750006,57.003515625000034]]],[[[-153.007080078125,57.12485351562498],[-153.37460937499998,57.05190429687505],[-153.285205078125,57.18505859375],[-152.90839843750004,57.152441406250006],[-153.007080078125,57.12485351562498]]],[[[-134.96977539062496,57.351416015625034],[-134.62070312499998,56.71831054687502],[-134.68188476562503,56.216162109375034],[-134.98056640625003,56.518945312499994],[-134.88344726562497,56.679052734375034],[-135.33061523437505,56.821875],[-135.19960937499997,57.02734375],[-135.45493164062503,57.24941406250005],[-135.81230468750002,57.00952148437503],[-135.82275390625,57.280419921874966],[-135.448681640625,57.534375],[-134.96977539062496,57.351416015625034]]],[[[-152.89804687499998,57.82392578125004],[-152.42875976562493,57.82568359375003],[-152.48261718749998,57.70332031249998],[-152.21621093749997,57.577001953125006],[-152.41220703125003,57.454785156249955],[-152.94077148437498,57.49809570312499],[-152.67905273437503,57.345117187499994],[-153.274365234375,57.22636718749996],[-153.732568359375,57.052343750000034],[-153.643310546875,56.960742187500045],[-154.02734375,56.77797851562502],[-153.793212890625,56.98950195312503],[-154.24375,57.143017578124955],[-154.33896484374998,56.9208984375],[-154.67319335937498,57.44609375],[-154.11616210937498,57.651220703125006],[-153.6876953125,57.30512695312504],[-153.841552734375,57.86284179687496],[-153.48793945312497,57.73095703125],[-153.21748046875004,57.79575195312506],[-153.16044921875,57.97197265624999],[-152.85039062499993,57.896777343750045],[-152.89804687499998,57.82392578125004]]],[[[-135.73037109375002,58.244238281250034],[-135.61323242187507,57.99184570312505],[-135.346630859375,58.12412109374998],[-134.9546875,58.01533203125004],[-134.97065429687495,57.817236328125006],[-135.33847656250003,57.768652343750034],[-134.97885742187503,57.724365234375],[-134.93149414062498,57.48115234375001],[-135.564208984375,57.66640625],[-135.691943359375,57.41992187500006],[-135.91079101562502,57.44658203124999],[-136.568603515625,57.97216796875003],[-136.32197265625,58.21889648437502],[-136.14375,58.098486328125006],[-136.09438476562502,58.198144531249966],[-135.73037109375002,58.244238281250034]]],[[[-134.68027343749998,58.16166992187499],[-134.24008789062498,58.143994140624955],[-133.82275390624997,57.62866210937503],[-134.29233398437498,58.044726562500074],[-133.91113281250003,57.3525390625],[-134.51601562499997,57.042578125],[-134.48676757812495,57.48203125],[-134.92348632812497,58.354638671874966],[-134.68027343749998,58.16166992187499]]],[[[-152.416943359375,58.360205078125034],[-151.974365234375,58.30986328124999],[-152.068896484375,58.17792968750001],[-152.26835937499993,58.25170898437506],[-152.30922851562502,58.133886718750034],[-152.5982421875,58.16259765625],[-152.92841796875004,57.99370117187499],[-153.38134765625003,58.08720703125002],[-152.976123046875,58.29702148437505],[-152.771875,58.278564453125],[-152.84111328125002,58.41640625000002],[-152.416943359375,58.360205078125034]]],[[[-152.486083984375,58.485009765624966],[-152.63662109375002,58.54169921874998],[-152.3955078125,58.619384765625],[-152.486083984375,58.485009765624966]]],[[[-160.918994140625,58.57709960937498],[-161.13149414062502,58.668212890625],[-160.71513671875005,58.79521484375002],[-160.918994140625,58.57709960937498]]],[[[-148.02177734375,60.06533203125005],[-148.271875,60.05327148437499],[-148.07958984375003,60.151660156250045],[-148.02177734375,60.06533203125005]]],[[[-147.735888671875,59.81323242187503],[-147.76806640625,59.94375],[-147.180859375,60.358251953125034],[-147.01987304687498,60.33222656249998],[-147.735888671875,59.81323242187503]]],[[[-166.13544921875,60.38354492187503],[-165.72968750000004,60.31420898437503],[-165.591796875,59.913134765625045],[-166.14873046874996,59.764111328124955],[-167.13886718749998,60.00854492187503],[-167.43642578125002,60.20664062500006],[-166.836328125,60.21699218750004],[-166.47568359374998,60.382763671874955],[-166.13544921875,60.38354492187503]]],[[[-146.3939453125,60.44965820312501],[-146.10224609374998,60.41118164062499],[-146.61831054687497,60.27368164062503],[-146.70253906249997,60.40854492187498],[-146.3939453125,60.44965820312501]]],[[[-147.658251953125,60.45048828124999],[-147.787841796875,60.17792968749998],[-147.89145507812498,60.299414062500034],[-147.658251953125,60.45048828124999]]],[[[-172.74223632812496,60.45737304687498],[-172.23208007812494,60.299121093750074],[-172.63574218750003,60.328857421875],[-173.04765625000002,60.56831054687501],[-172.74223632812496,60.45737304687498]]],[[[-171.46303710937494,63.640039062499994],[-171.03486328125,63.58549804687499],[-170.29936523437502,63.68061523437501],[-169.55454101562498,63.373486328124955],[-168.71601562500004,63.310595703125045],[-168.76132812500003,63.21376953125002],[-169.364697265625,63.17114257812506],[-169.67636718750003,62.95610351562502],[-169.81860351562494,63.122363281250045],[-170.84838867187494,63.44438476562502],[-171.63183593749997,63.351220703124966],[-171.74638671874993,63.703076171874955],[-171.46303710937494,63.640039062499994]]],[[[-141.00214843750004,68.77416992187506],[-141.00214843750004,67.89755859374998],[-141.00214843750004,66.43652343750006],[-141.00214843750004,65.55991210937498],[-141.00214843750004,64.09887695312506],[-141.00214843750004,63.22226562499998],[-141.00214843750004,61.761279296875045],[-141.00214843750004,60.884667968749994],[-141.00214843750004,60.30024414062504],[-140.76274414062505,60.259130859375006],[-140.525439453125,60.218359375000034],[-140.45283203125004,60.29970703125002],[-139.97329101562497,60.183154296875074],[-139.67631835937505,60.32832031249998],[-139.23476562499997,60.339746093749994],[-139.07924804687497,60.34370117187501],[-139.07924804687497,60.279443359374966],[-139.136962890625,60.17270507812498],[-139.18515624999998,60.083593750000034],[-138.86875,59.94575195312501],[-138.317626953125,59.611132812500074],[-137.59331054687493,59.22626953124998],[-137.52089843750002,58.91538085937498],[-137.43857421875003,58.903125],[-137.2775390625,58.988183593749994],[-137.126220703125,59.04096679687498],[-136.81328125000002,59.150048828124994],[-136.57875976562502,59.15224609375002],[-136.46635742187493,59.459082031250006],[-136.27797851562502,59.48032226562506],[-136.321826171875,59.604833984375034],[-135.70258789062504,59.72875976562506],[-135.36787109374998,59.743310546874994],[-135.051025390625,59.57866210937502],[-134.94375,59.28828125000001],[-134.67724609374997,59.19926757812499],[-134.39306640625,59.009179687499994],[-134.32963867187505,58.93969726562506],[-134.21850585937503,58.849902343750045],[-133.54638671874997,58.50346679687499],[-133.27529296875,58.22285156250004],[-133.00141601562495,57.948974609375],[-132.55048828125,57.499902343749994],[-132.44248046874998,57.40673828125003],[-132.30166015624997,57.27631835937501],[-132.232177734375,57.19853515624999],[-132.27939453124998,57.14536132812498],[-132.33798828124998,57.07944335937506],[-132.15703125,57.048193359375006],[-132.03154296875,57.02656250000004],[-132.062890625,56.95336914062503],[-132.104296875,56.856787109375006],[-131.86616210937495,56.792822265625006],[-131.82426757812496,56.589990234374994],[-131.471875,56.55673828125006],[-130.649072265625,56.26367187500003],[-130.47709960937496,56.230566406250034],[-130.413134765625,56.12250976562498],[-130.09785156249995,56.10927734375002],[-130.01406249999997,55.950537109375006],[-130.2140625,55.02587890625003],[-130.57534179687497,54.769677734374966],[-130.849609375,54.80761718750006],[-131.04785156249997,55.157666015624955],[-130.74819335937502,55.31801757812502],[-131.127685546875,55.96015625000001],[-131.032763671875,56.08808593749998],[-131.78417968749997,55.876562500000034],[-131.98339843749994,55.535009765625006],[-132.15541992187502,55.59956054687501],[-132.20751953124997,55.75341796875],[-131.84384765625003,56.16010742187498],[-131.55136718749998,56.206787109375],[-131.88789062500004,56.24165039062498],[-132.18203125000002,56.42065429687506],[-132.82460937500002,57.05581054687505],[-133.465869140625,57.17216796875002],[-133.64873046874993,57.64228515624998],[-133.11704101562498,57.56621093750002],[-133.535205078125,57.83295898437501],[-133.1943359375,57.87768554687506],[-133.559375,57.924462890624994],[-133.72231445312502,57.84423828125],[-134.03110351562498,58.072167968749966],[-133.87675781249996,58.51816406249998],[-134.20883789062503,58.232958984375045],[-134.77612304687506,58.45385742187503],[-135.36367187500002,59.41943359375],[-135.50234375000002,59.202294921874994],[-135.090234375,58.245849609375],[-135.57177734374994,58.41206054687504],[-135.89755859374998,58.40019531250002],[-136.04311523437497,58.82163085937498],[-135.82636718750004,58.89794921874997],[-136.0166015625,58.87397460937498],[-136.150048828125,59.04809570312503],[-136.22583007812497,58.765478515625006],[-136.98901367187503,59.03447265624999],[-137.05903320312498,58.87373046875001],[-136.613916015625,58.809277343749955],[-136.48374023437503,58.61767578125],[-136.224609375,58.602246093749955],[-136.06147460937495,58.45273437500006],[-136.607421875,58.24399414062498],[-137.54399414062502,58.58120117187502],[-138.51489257812503,59.16591796875005],[-139.77329101562498,59.52729492187504],[-139.51303710937498,59.698095703125006],[-139.5123046875,59.95356445312501],[-139.28671874999998,59.610937500000034],[-139.22080078125003,59.819873046875045],[-138.9880859375,59.83500976562502],[-139.43144531249996,60.012255859375074],[-140.41982421874997,59.71074218750002],[-141.40830078125,59.90278320312498],[-141.408740234375,60.11767578125006],[-141.67016601562497,59.969873046874966],[-142.94565429687503,60.09697265625002],[-144.14721679687494,60.01640625000002],[-144.185498046875,60.150732421875034],[-144.901318359375,60.335156249999955],[-144.69111328125,60.66909179687502],[-145.248291015625,60.38012695312506],[-145.898876953125,60.47817382812505],[-145.67490234374998,60.65112304687503],[-146.57045898437497,60.72915039062502],[-146.39199218749997,60.810839843750045],[-146.63842773437497,60.89731445312498],[-146.59912109374994,61.05351562500002],[-146.284912109375,61.11264648437498],[-147.89111328125,60.889892578125],[-148.00512695312494,60.96855468750002],[-147.75185546874997,61.218945312499955],[-148.34189453125,61.060400390625006],[-148.34443359374998,60.853564453125045],[-148.55615234374994,60.82700195312506],[-148.25673828124997,60.67529296874997],[-148.64013671875,60.48945312500004],[-148.11918945312502,60.57514648437498],[-147.96411132812494,60.48486328124997],[-148.430712890625,59.98911132812498],[-149.2666015625,59.99829101562497],[-149.395263671875,60.10576171875002],[-149.59804687500002,59.77045898437501],[-149.7138671875,59.91958007812502],[-149.80126953124994,59.737939453124966],[-150.00532226562507,59.78442382812503],[-150.19804687499996,59.56655273437505],[-150.60737304687504,59.56337890625002],[-150.934521484375,59.249121093750034],[-151.18276367187502,59.30078124999997],[-151.73818359375002,59.18852539062502],[-151.94951171875,59.26508789062498],[-151.88461914062503,59.386328125],[-151.39960937499995,59.51630859375001],[-151.04648437499998,59.771826171875034],[-151.45009765624997,59.65039062499997],[-151.85322265625,59.78208007812498],[-151.39599609375006,60.27446289062502],[-151.35644531249997,60.72294921874999],[-150.44125976562503,61.02358398437505],[-149.07509765624997,60.87641601562498],[-150.05327148437496,61.17109374999998],[-149.433544921875,61.50078125000002],[-149.97568359374998,61.27934570312502],[-150.61225585937495,61.301123046875006],[-151.59350585937494,60.979638671874966],[-152.54091796874997,60.265429687500045],[-153.025,60.29565429687497],[-152.660107421875,59.99721679687502],[-153.21123046875002,59.84272460937498],[-153.09360351562503,59.70913085937505],[-153.65253906250004,59.64702148437499],[-154.17832031250003,59.155566406250074],[-153.41826171875,58.9599609375],[-153.43759765625003,58.754833984374955],[-154.289013671875,58.30434570312502],[-154.247021484375,58.15942382812497],[-155.006884765625,58.01606445312501],[-155.77797851562497,57.56821289062498],[-156.43588867187498,57.359960937500006],[-156.62900390624998,57.00996093750001],[-158.41440429687498,56.435839843750045],[-158.5521484375,56.31269531249998],[-158.27563476562497,56.19624023437498],[-158.5046875,56.062109375],[-158.59116210937503,56.18452148437498],[-158.78984375000002,55.98691406250006],[-159.52324218749993,55.81000976562498],[-159.65966796875003,55.625927734374955],[-159.77138671874997,55.84111328125002],[-160.49931640625002,55.53730468750004],[-161.38193359374998,55.371289062499955],[-161.44379882812495,55.513281250000034],[-161.202099609375,55.54355468750006],[-161.51694335937503,55.61840820312503],[-162.073974609375,55.13930664062505],[-162.38637695312497,55.05234375],[-162.63037109375003,55.24667968749998],[-162.67436523437505,54.99658203125],[-162.86503906249996,54.954541015624955],[-163.11962890624997,55.06469726562503],[-163.131103515625,54.916552734375045],[-163.33530273437503,54.83916015624999],[-163.27880859374997,55.12182617187503],[-162.906591796875,55.19555664062503],[-161.69731445312502,55.9072265625],[-161.215625,56.02143554687498],[-160.8986328125,55.99365234375],[-161.00537109375,55.88715820312498],[-160.80283203125003,55.754443359375045],[-160.70634765625002,55.870458984375034],[-160.29169921875,55.80507812500005],[-160.53906250000006,56.00629882812501],[-160.30205078125,56.31411132812502],[-158.91801757812502,56.882177734375006],[-158.675146484375,56.79487304687498],[-158.66079101562502,57.03940429687498],[-158.32094726562497,57.29790039062499],[-157.84575195312496,57.52807617187497],[-157.4619140625,57.506201171875034],[-157.697216796875,57.679443359375],[-157.610888671875,58.050830078125074],[-157.19370117187498,58.19418945312506],[-157.48837890624998,58.25371093750002],[-157.52363281249998,58.421337890624955],[-156.97465820312496,58.736328125],[-156.80888671875005,59.13427734375],[-157.14204101562504,58.87763671875001],[-158.19091796875003,58.6142578125],[-158.50317382812494,58.85034179687497],[-158.42563476562498,58.99931640625002],[-158.080517578125,58.97744140625002],[-158.422802734375,59.08984375],[-158.67827148437502,58.92939453124998],[-158.80947265625002,58.973876953125],[-158.78862304687493,58.440966796875045],[-158.95068359375,58.404541015625],[-159.67026367187498,58.9111328125],[-159.92021484375,58.819873046875074],[-160.36313476562498,59.05117187500002],[-161.246826171875,58.799462890624994],[-161.36132812499994,58.66953124999998],[-162.144921875,58.64423828124998],[-161.724365234375,58.794287109375006],[-161.64438476562498,59.109667968750045],[-161.9810546875,59.14614257812502],[-161.82871093749998,59.588623046875],[-162.421337890625,60.28398437500002],[-161.96201171875003,60.695361328125045],[-162.68496093749997,60.268945312499966],[-162.57075195312495,59.98974609375],[-163.68037109374998,59.80151367187503],[-164.14282226562497,59.89677734374999],[-165.02651367187497,60.500634765624994],[-165.35380859375002,60.54121093750001],[-164.80517578125,60.89204101562498],[-164.31850585937497,60.77128906249999],[-164.37236328125002,60.59184570312502],[-163.999560546875,60.76606445312498],[-163.72998046874997,60.589990234374994],[-163.420947265625,60.757421875],[-163.90654296874996,60.85380859375002],[-163.58691406249994,60.902978515624994],[-163.74902343750003,60.9697265625],[-163.99462890624997,60.86469726562501],[-165.11484375,60.93281250000004],[-164.86899414062503,61.11176757812498],[-165.27978515624994,61.169628906249955],[-165.27363281250004,61.27485351562498],[-165.56586914062498,61.10234375000002],[-165.86396484375004,61.33569335937503],[-165.84531249999998,61.536230468750034],[-166.152734375,61.545947265625074],[-166.16811523437502,61.65083007812501],[-165.80893554687503,61.69609375000002],[-166.07880859375,61.803125],[-165.61279296875003,61.86928710937502],[-165.707275390625,62.10043945312506],[-165.19453125,62.47353515625002],[-164.75786132812493,62.496728515624966],[-164.589453125,62.709375],[-164.79267578125,62.623193359374966],[-164.79965820312503,62.918066406250006],[-164.384228515625,63.03046874999998],[-164.40903320312503,63.21503906250001],[-163.94287109375,63.247216796874994],[-163.61630859374998,63.125146484374994],[-163.73784179687496,63.016406250000045],[-163.504345703125,63.105859374999966],[-163.28784179687494,63.046435546875045],[-162.621484375,63.26582031249998],[-162.28281250000003,63.529199218749994],[-161.97397460937498,63.45292968749999],[-161.09970703125003,63.557910156250045],[-160.778564453125,63.818945312500034],[-160.987548828125,64.25126953125002],[-161.49072265625003,64.43378906249998],[-160.93193359374996,64.5791015625],[-160.855908203125,64.755615234375],[-161.13017578125005,64.92543945312505],[-161.759375,64.816259765625],[-162.80703124999997,64.37421875000001],[-163.20390625,64.65200195312502],[-163.14433593750002,64.423828125],[-163.71308593749998,64.588232421875],[-164.978759765625,64.45366210937502],[-166.1427734375,64.58276367187503],[-166.48139648437498,64.72807617187507],[-166.415234375,64.926513671875],[-166.92841796875,65.15708007812498],[-166.15703125,65.28583984375001],[-167.40400390625,65.42211914062497],[-168.08837890624997,65.65776367187502],[-166.39873046875002,66.14443359375005],[-165.62993164062496,66.131201171875],[-165.77617187500002,66.31904296875001],[-164.46049804687502,66.58842773437499],[-163.63823242187502,66.57465820312504],[-163.89394531249997,66.57587890625001],[-164.03374023437493,66.21552734374995],[-163.69536132812502,66.08383789062503],[-161.93369140625003,66.04287109374997],[-161.45541992187503,66.28139648437497],[-161.03427734375003,66.18881835937503],[-161.12031249999995,66.334326171875],[-161.91689453124997,66.41181640624998],[-162.54365234375004,66.80512695312501],[-162.36162109375,66.94731445312502],[-161.591015625,66.45952148437502],[-160.23168945312503,66.420263671875],[-160.360888671875,66.6125],[-160.864013671875,66.67084960937501],[-161.39804687499998,66.55185546875],[-161.85668945312497,66.70034179687497],[-161.719921875,67.02055664062502],[-163.5318359375,67.10258789062502],[-164.1251953125,67.60673828125007],[-166.786279296875,68.35961914062497],[-166.38051757812502,68.425146484375],[-166.20908203125,68.88535156250003],[-165.04394531249994,68.882470703125],[-163.867919921875,69.03666992187505],[-161.88095703125003,70.33173828125001],[-162.073876953125,70.16196289062498],[-160.9962890625,70.30458984375],[-160.11713867187495,70.59121093750002],[-159.86567382812498,70.27885742187499],[-159.81499023437496,70.49707031250003],[-159.38676757812493,70.52451171875003],[-160.081591796875,70.63486328125003],[-159.680908203125,70.786767578125],[-159.31450195312496,70.87851562500003],[-159.251171875,70.7484375],[-157.909375,70.860107421875],[-156.47021484374994,71.40766601562501],[-156.469970703125,71.29155273437507],[-155.57944335937503,71.12109374999997],[-156.14658203125,70.92783203125003],[-155.97353515625002,70.84199218749995],[-155.16684570312498,71.09921875000006],[-154.19521484375002,70.80112304687498],[-153.23291015625,70.93256835937504],[-152.49121093749994,70.88095703125],[-152.23291015625,70.81035156249999],[-152.39921875,70.62045898437503],[-151.76904296875,70.56015625],[-151.94467773437498,70.45209960937501],[-149.26943359374997,70.50078124999999],[-147.70537109375,70.21723632812495],[-145.82314453124997,70.16005859375002],[-145.19736328125003,70.00869140625002],[-143.218310546875,70.11625976562499],[-142.70786132812498,70.03378906249998],[-141.40791015625,69.65336914062502],[-141.00214843750004,69.65078125000002],[-141.00214843750004,68.77416992187506]]]]},"properties":{"name":"United States","childNum":76}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[71.20615234375006,39.892578125],[71.15625,39.88344726562502],[71.06425781250002,39.88491210937505],[71.01171874999997,39.895117187500006],[71.04365234375004,39.97631835937503],[71.04482421875005,39.992529296875034],[70.96064453125004,40.087988281250034],[71.00546875,40.15229492187498],[71.0241210937501,40.14916992187497],[71.08037109375007,40.07988281249999],[71.2287109375001,40.04814453124999],[71.20615234375006,39.892578125]]],[[[70.94677734374997,42.24868164062505],[70.97900390625003,42.26655273437504],[71.03603515625,42.28466796875],[71.12998046875006,42.25],[71.21269531250002,42.20644531250005],[71.23232421875005,42.18627929687503],[71.22851562499997,42.16289062499996],[70.18095703125007,41.571435546874994],[70.734375,41.400537109374994],[70.86044921875006,41.22490234375002],[71.11074218750005,41.152636718750045],[71.29882812500003,41.152490234374994],[71.39306640625003,41.123388671875034],[71.40839843750004,41.13603515625002],[71.42089843750003,41.341894531250034],[71.60625,41.367431640625],[71.66494140625,41.54121093749998],[71.70068359374997,41.454003906249966],[71.75771484375005,41.42802734375002],[71.79248046875003,41.41313476562499],[71.85800781250006,41.311376953125034],[71.8786132812501,41.195019531249955],[71.95849609375003,41.18706054687502],[72.05244140625004,41.16474609375001],[72.1154296875001,41.18657226562502],[72.1642578125001,41.173730468749966],[72.18095703125002,41.11845703124999],[72.18730468750002,41.02592773437499],[72.2130859375001,41.014257812500006],[72.36406250000002,41.04345703125],[72.65830078125,40.86992187499999],[73.13212890625002,40.82851562499999],[72.6041015625,40.52543945312499],[72.40205078125004,40.578076171874955],[72.3892578125,40.427392578124994],[72.13125,40.438623046874966],[71.69248046875,40.15234375],[71.30468749999997,40.28691406249996],[70.990625,40.2548828125],[70.95800781250003,40.238867187500034],[70.653125,40.201171875],[70.37158203125003,40.38413085937506],[70.75107421875006,40.721777343750006],[70.40195312500006,41.03510742187498],[69.71289062500003,40.65698242187503],[69.35722656250002,40.76738281249996],[69.20625,40.566552734374994],[69.27490234374997,40.19809570312498],[68.63066406250007,40.16708984374998],[68.9720703125,40.08994140624998],[68.80468750000003,40.05034179687499],[68.86875,39.90747070312503],[68.63896484375007,39.8388671875],[68.46328125,39.53671874999998],[67.71904296875007,39.62138671875002],[67.426171875,39.46557617187497],[67.3576171875001,39.216699218749994],[67.64833984375005,39.13105468750004],[67.69443359375006,38.99462890625003],[68.13251953125004,38.927636718749966],[68.08720703125002,38.47353515625002],[68.3502929687501,38.211035156250006],[67.81435546875005,37.48701171875004],[67.7980468750001,37.244970703125006],[67.75898437500004,37.172216796875034],[67.75292968749997,37.199804687500034],[67.7,37.227246093749955],[67.60742187499997,37.22250976562506],[67.5172851562501,37.26665039062499],[67.44169921875007,37.25800781250001],[67.3197265625,37.209570312500006],[67.1955078125001,37.23520507812498],[67.06884765624997,37.334814453125006],[66.82773437500006,37.37128906249998],[66.52226562500007,37.34848632812506],[66.51064453125,37.45869140625004],[66.51132812500006,37.59916992187496],[66.52558593750004,37.785742187500034],[66.60625,37.98671875000005],[65.97119140624997,38.244238281250006],[65.612890625,38.23857421875002],[64.3099609375,38.97729492187497],[63.76367187500003,39.16054687499999],[62.48320312500002,39.97563476562496],[61.90283203124997,41.09370117187501],[61.496972656249994,41.276074218749955],[61.2423828125001,41.18920898437503],[60.454980468749994,41.221630859374955],[60.089648437500074,41.39941406250003],[60.07558593750005,41.759667968749966],[60.20078125000006,41.803125],[59.94179687499999,41.97353515625002],[59.98515625000002,42.21171875],[59.35429687500002,42.32329101562496],[58.5890625000001,42.778466796874966],[58.477148437500006,42.66284179687503],[58.15156250000004,42.628076171874966],[58.474414062500074,42.29936523437496],[58.02890625,42.48764648437506],[57.814257812500074,42.18984375000005],[57.290625,42.123779296875],[56.96406250000004,41.856542968750006],[57.11884765625004,41.35029296874998],[57.01796875,41.26347656249996],[55.97744140625005,41.32221679687504],[55.97568359375006,44.99492187499996],[58.555273437500006,45.55537109375001],[61.007910156250006,44.39379882812497],[61.99023437500003,43.492138671874955],[63.20703125000003,43.62797851562502],[64.44316406250007,43.55117187499999],[64.9054687500001,43.714697265625006],[65.49619140625,43.310546875],[65.80302734375002,42.87695312500006],[66.1002929687501,42.99082031249998],[66.00957031250007,42.00488281250003],[66.49863281250006,41.99487304687503],[66.70966796875004,41.17915039062501],[67.9357421875001,41.19658203125002],[68.11308593750007,41.02861328124999],[68.04765625000007,40.80927734374998],[68.29189453125,40.656103515625034],[68.57265625,40.62265624999998],[68.58408203125,40.876269531250045],[69.15361328125002,41.42524414062498],[70.94677734374997,42.24868164062505]]]]},"properties":{"name":"Uzbekistan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-61.17451171875001,13.158105468749966],[-61.268457031249966,13.287695312499991],[-61.13896484374996,13.358740234374991],[-61.17451171875001,13.158105468749966]]]},"properties":{"name":"St. Vin. and Gren.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-60.99790039062498,8.867333984374966],[-61.069189453125034,8.947314453125003],[-60.91582031249996,9.070312500000014],[-60.86142578124998,8.949609375000037],[-60.99790039062498,8.867333984374966]]],[[[-60.821191406249966,9.138378906250026],[-60.94140625000003,9.105566406250006],[-60.73583984374997,9.203320312500026],[-60.821191406249966,9.138378906250026]]],[[[-63.84936523437494,11.131005859374994],[-63.917626953124994,10.887548828125048],[-64.40234375,10.981591796875023],[-64.21367187500002,11.086132812499997],[-64.0283203125,11.00185546874998],[-63.84936523437494,11.131005859374994]]],[[[-60.742138671874926,5.202050781250037],[-60.71196289062499,5.191552734375023],[-60.671972656250034,5.164355468749989],[-60.603857421875006,4.94936523437498],[-61.00283203125002,4.535253906249991],[-61.28007812500002,4.516894531249974],[-61.82084960937496,4.197021484375],[-62.153125,4.098388671874986],[-62.41064453124994,4.156738281249972],[-62.71210937499998,4.01791992187502],[-62.85698242187502,3.593457031249969],[-63.33867187500002,3.943896484375045],[-64.02148437500003,3.929101562500051],[-64.19248046874995,4.126855468750009],[-64.57636718750001,4.139892578125],[-64.788671875,4.276025390625023],[-64.66899414062496,4.01181640625002],[-64.22109375000002,3.587402343749972],[-64.04658203124998,2.502392578124997],[-63.389257812500006,2.411914062500045],[-63.43251953124994,2.155566406250045],[-64.00849609374995,1.931591796874969],[-64.20502929687493,1.52949218750004],[-65.10375976562497,1.108105468749983],[-65.47338867187497,0.691259765624977],[-65.55605468750002,0.687988281250014],[-65.52299804687493,0.843408203124966],[-65.68144531249999,0.983447265624989],[-66.06005859375003,0.78535156250004],[-66.34711914062498,0.7671875],[-66.87602539062499,1.223046875000037],[-67.21083984375,2.390136718750043],[-67.61870117187496,2.793603515624994],[-67.85908203124998,2.793603515624994],[-67.3111328125,3.41586914062502],[-67.66162109375,3.864257812499986],[-67.85527343750002,4.506884765624989],[-67.82490234374995,5.270458984375026],[-67.47387695312503,5.929980468750003],[-67.48198242187499,6.18027343750002],[-67.85917968749999,6.289892578124963],[-68.47177734375,6.156542968749974],[-69.42714843749997,6.123974609374997],[-70.12919921874999,6.95361328125],[-70.73715820312503,7.090039062499997],[-71.12861328124993,6.98671875],[-72.00664062499993,7.032617187500023],[-72.20771484374995,7.37026367187498],[-72.47197265624996,7.524267578124991],[-72.39033203124995,8.287060546874969],[-72.66542968749994,8.62758789062498],[-72.79638671874997,9.10898437499999],[-73.05839843749999,9.259570312500031],[-73.36621093749997,9.194140625000017],[-73.00654296874998,9.789160156250006],[-72.86933593750001,10.49125976562496],[-72.690087890625,10.835839843749994],[-72.24848632812501,11.196435546875009],[-71.95810546875,11.66640625],[-71.31972656249997,11.861914062500048],[-71.95693359375002,11.569921874999977],[-71.835107421875,11.190332031250009],[-71.6416015625,11.013525390625048],[-71.73090820312498,10.994677734375017],[-71.59433593749995,10.657373046875051],[-72.11284179687499,9.815576171874966],[-71.61953124999994,9.047949218749991],[-71.24140625000001,9.160449218750003],[-71.08583984375002,9.348242187499977],[-71.05268554687501,9.705810546874986],[-71.49423828125,10.533203124999972],[-71.46953124999993,10.964160156250017],[-70.23251953124998,11.372998046874997],[-70.09711914062493,11.519775390624972],[-69.80478515624998,11.47421875000002],[-69.81733398437495,11.672070312499997],[-70.19257812499993,11.62460937500002],[-70.28652343749997,11.886035156249989],[-70.20278320312497,12.098388671874986],[-70.00395507812496,12.177880859375023],[-69.63159179687494,11.479931640625026],[-68.827978515625,11.431738281249977],[-68.39863281249995,11.160986328124977],[-68.29628906249997,10.689355468749994],[-68.13994140624999,10.492724609374989],[-66.24721679687497,10.632226562499994],[-65.85175781249995,10.257763671874997],[-65.12910156249998,10.070068359375043],[-64.85048828125,10.098095703124969],[-64.188330078125,10.457812499999989],[-63.73188476562501,10.503417968750043],[-64.24750976562498,10.54257812500002],[-64.298193359375,10.635156249999966],[-61.879492187500006,10.741015625000031],[-62.379980468750006,10.546875],[-62.91357421875,10.531494140624986],[-62.68583984374996,10.289794921875043],[-62.740576171875006,10.056152343750043],[-62.55034179687499,10.200439453125043],[-62.320410156250034,9.783056640625006],[-62.22114257812498,9.882568359375028],[-62.15336914062493,9.821777343749986],[-62.15532226562499,9.979248046875014],[-62.077099609374926,9.97504882812504],[-61.73593749999998,9.631201171874977],[-61.76591796874996,9.813818359374963],[-61.58886718749994,9.894531249999986],[-60.79248046874997,9.360742187500037],[-61.02314453124998,9.15458984374996],[-61.24726562499998,8.600341796875014],[-61.61870117187499,8.59746093749996],[-61.30400390624999,8.410400390625043],[-60.800976562499926,8.592138671875034],[-60.16748046875,8.616992187500031],[-60.01752929687501,8.549316406250014],[-59.83164062499998,8.305957031250003],[-59.84907226562498,8.248681640624966],[-59.96484375000003,8.191601562499969],[-59.99072265624997,8.16201171874998],[-60.032421874999926,8.053564453125006],[-60.51362304687501,7.813183593749969],[-60.71865234374994,7.535937499999974],[-60.606542968750006,7.320849609375031],[-60.63330078124997,7.211083984374966],[-60.58320312499998,7.156201171874969],[-60.523193359375,7.143701171875009],[-60.464941406250034,7.166552734375045],[-60.39238281249999,7.164550781249986],[-60.34506835937495,7.15],[-60.32548828124996,7.133984374999983],[-60.32207031249996,7.092041015625043],[-60.35209960937496,7.002880859374997],[-60.39501953125,6.945361328125003],[-60.717919921874966,6.768310546875],[-61.14560546874998,6.694531249999983],[-61.20361328124997,6.588378906250028],[-61.181591796874926,6.513378906250026],[-61.15102539062502,6.446533203124986],[-61.15229492187501,6.385107421875006],[-61.12871093749999,6.214306640625026],[-61.15947265624996,6.174414062499977],[-61.22495117187498,6.129199218750003],[-61.303125,6.049511718750026],[-61.39082031250001,5.938769531250017],[-61.376806640625006,5.906982421875028],[-61.167187499999926,5.674218750000037],[-60.95400390625002,5.437402343750023],[-60.742138671874926,5.202050781250037]]]]},"properties":{"name":"Venezuela","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[-64.765625,17.794335937499994],[-64.58046874999994,17.750195312499983],[-64.88911132812495,17.701708984375045],[-64.765625,17.794335937499994]]]},"properties":{"name":"U.S. Virgin Is.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[104.06396484375003,10.390820312500011],[104.01845703125,10.029199218749966],[103.84951171875005,10.371093749999986],[104.06396484375003,10.390820312500011]]],[[[107.52128906250007,20.926611328124977],[107.39921875000007,20.903466796874966],[107.55126953125003,21.034033203125006],[107.52128906250007,20.926611328124977]]],[[[107.60273437500004,21.21679687500003],[107.40351562500004,21.093652343749994],[107.47626953125004,21.268945312499994],[107.60273437500004,21.21679687500003]]],[[[107.97265624999997,21.507958984375023],[107.40996093750002,21.284814453125023],[107.35429687500007,21.055175781250057],[107.1647460937501,20.94873046875003],[106.68339843750007,21.000292968750074],[106.75341796875003,20.73505859375004],[106.55078124999997,20.52656250000001],[106.57285156250012,20.392187499999977],[105.98408203125004,19.939062500000034],[105.62177734375004,18.96630859375003],[105.88828125000006,18.502490234375045],[106.49902343749997,17.946435546874994],[106.47890625000005,17.719580078125063],[106.3705078125,17.746875],[107.83378906250002,16.322460937499983],[108.02939453125012,16.331103515625074],[108.82128906249997,15.377929687500028],[109.30332031250012,13.856445312500043],[109.271875,13.279345703124974],[109.42392578125006,12.955957031249994],[109.44492187500006,12.599609375000057],[109.33554687500012,12.751904296874997],[109.21894531250004,12.64580078124996],[109.30468750000003,12.391162109375045],[109.20683593750007,12.415380859375006],[109.1986328125,11.724853515625014],[109.03964843750012,11.592675781249994],[108.98671875,11.336376953124997],[108.09492187500004,10.897265624999989],[108.0013671875,10.720361328125009],[107.26152343750007,10.39838867187504],[107.00664062500002,10.66054687499998],[106.94746093750004,10.400341796874997],[106.72734375000007,10.535644531250028],[106.605859375,10.46494140625002],[106.74121093750003,10.444384765625003],[106.75742187500006,10.295800781250023],[106.46406250000004,10.298291015624997],[106.78525390625012,10.116455078124986],[106.59560546875005,9.859863281250028],[106.1364257812501,10.221679687500014],[106.56435546875005,9.715625],[106.48408203125004,9.559423828125006],[105.83095703125005,10.000732421875028],[106.15859375,9.59414062499998],[106.16835937500005,9.396728515625],[105.50097656249997,9.093212890624983],[105.11435546875006,8.629199218750031],[104.77041015625,8.59765625],[104.89628906250007,8.746630859374974],[104.81855468750004,8.801855468750034],[104.84521484375003,9.606152343750026],[105.08447265625003,9.99570312499999],[104.8019531250001,10.202734374999977],[104.66347656250005,10.169921875000043],[104.42636718750006,10.411230468749991],[104.85058593749997,10.534472656249974],[105.04638671874997,10.701660156250014],[105.04570312500002,10.911376953125014],[105.3146484375001,10.845166015625026],[105.40576171875003,10.95161132812504],[105.75507812500004,10.989990234375043],[105.85332031250007,10.86357421874996],[106.16396484375005,10.794921875],[106.16093750000002,11.037109375000057],[105.85605468750006,11.294287109375048],[105.85146484375005,11.635009765625],[106.0060546875001,11.758007812500011],[106.39921875000007,11.687011718750028],[106.41386718750002,11.9484375],[106.70009765625,11.979296874999974],[107.21210937500004,12.30400390624996],[107.39335937500002,12.260498046874972],[107.50644531250006,12.364550781250031],[107.47539062500002,13.030371093749963],[107.60546874999997,13.437792968750017],[107.3314453125,14.126611328125009],[107.51943359375005,14.705078125],[107.51376953125012,14.817382812500057],[107.52451171875012,14.871826171875043],[107.50468750000007,14.915917968749966],[107.48037109375,14.979882812500037],[107.55527343750006,15.057031250000023],[107.58964843750002,15.118457031250017],[107.63369140625005,15.18984375],[107.653125,15.255224609374991],[107.62167968750006,15.309863281250017],[107.56425781250002,15.391601562499972],[107.45957031250012,15.4658203125],[107.33876953125,15.560498046875011],[107.27939453125006,15.618701171875045],[107.16591796875005,15.802490234375028],[107.1888671875,15.838623046875],[107.36064453125002,15.921728515624977],[107.3919921875,15.951660156250028],[107.39638671875,16.04301757812499],[106.93066406249997,16.353125],[106.8927734375001,16.396533203125074],[106.85107421875003,16.515625],[106.83242187500005,16.526269531250023],[106.79160156250006,16.490332031250006],[106.73955078125007,16.452539062500023],[106.6564453125001,16.49262695312501],[106.54619140625002,16.650732421874977],[106.53369140625003,16.821044921875057],[106.52597656250006,16.876611328124994],[106.50224609375002,16.95410156249997],[106.26953125000003,17.21679687500003],[106.00625,17.415283203125057],[105.69140625000003,17.737841796875045],[105.58847656250012,17.983691406250045],[105.51855468749997,18.077441406250045],[105.45820312500004,18.15429687499997],[105.11455078125002,18.40527343750003],[105.08701171875006,18.496240234374994],[105.14541015625,18.616796875000063],[105.14648437500003,18.650976562500006],[103.89160156250003,19.304980468750017],[103.89638671875,19.339990234375023],[103.93203125,19.366064453125006],[104.0275390625001,19.42045898437499],[104.062890625,19.48256835937505],[104.05156250000007,19.564160156249955],[104.01347656250007,19.64648437500003],[104.03203125000002,19.675146484375006],[104.06279296875007,19.678417968749983],[104.25986328125006,19.685498046874983],[104.5462890625,19.61054687500001],[104.58789062500003,19.61875],[104.74316406250003,19.754736328124977],[104.80175781249997,19.83613281250004],[104.81513671875004,19.90400390625001],[104.9279296875001,20.01811523437499],[104.92919921875003,20.082812500000017],[104.88867187500003,20.169091796875023],[104.84785156250004,20.202441406250045],[104.69873046875003,20.20532226562503],[104.67695312500004,20.224707031249977],[104.66191406250007,20.28901367187501],[104.65644531250004,20.32851562499999],[104.6188476562501,20.37451171875003],[104.49619140625006,20.413671875],[104.39218750000012,20.424755859374955],[104.36777343750012,20.44140624999997],[104.40781250000012,20.48574218750005],[104.47861328125006,20.529589843750017],[104.53271484374997,20.55488281250001],[104.58320312500004,20.646679687499955],[104.34960937499997,20.821093750000074],[104.19531249999997,20.913964843749966],[104.10136718750002,20.94550781250001],[103.63505859375007,20.697070312500017],[103.46357421875004,20.779833984375017],[103.21074218750002,20.840625],[103.10449218749997,20.891650390625045],[102.88378906250003,21.202587890624983],[102.85117187500006,21.26591796874999],[102.94960937500005,21.681347656249983],[102.84521484374997,21.73476562500005],[102.81591796874997,21.807373046875],[102.7982421875,21.797949218750034],[102.77109375000006,21.709667968749983],[102.73857421875002,21.67792968750001],[102.66201171875005,21.67602539062497],[102.58251953125003,21.90429687500003],[102.12744140624997,22.379199218750045],[102.1759765625001,22.414648437500006],[102.2370117187501,22.466015624999983],[102.40644531250004,22.70800781249997],[102.47089843750004,22.75092773437501],[102.98193359374997,22.4482421875],[103.32666015625003,22.769775390625057],[103.49296875000007,22.587988281250034],[103.62021484375006,22.782031250000045],[103.94150390625006,22.540087890625045],[104.14306640624997,22.800146484375006],[104.37177734375004,22.704052734374983],[104.68730468750002,22.822216796874983],[104.86474609375003,23.136376953125023],[105.27539062500003,23.34521484375003],[105.8429687500001,22.922802734374955],[106.14843749999997,22.970068359375006],[106.2790039062501,22.857470703125045],[106.54179687500007,22.908349609375023],[106.78027343749997,22.778906250000034],[106.55039062500006,22.501367187499994],[106.66357421875003,21.97890625000005],[106.97099609375002,21.923925781250034],[107.35117187500012,21.60888671874997],[107.75927734374997,21.655029296875057],[107.97265624999997,21.507958984375023]]]]},"properties":{"name":"Vietnam","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[169.49130859375006,-19.54013671875002],[169.34726562500006,-19.623535156249957],[169.2174804687501,-19.476367187500003],[169.24746093750005,-19.3447265625],[169.49130859375006,-19.54013671875002]]],[[[169.334375,-18.940234375000017],[168.98691406250006,-18.87128906250001],[169.01582031250004,-18.64375],[169.14384765625002,-18.63105468750001],[169.334375,-18.940234375000017]]],[[[168.44580078124997,-17.54218750000004],[168.58496093750003,-17.695898437500006],[168.52460937500004,-17.798046875000026],[168.15820312500003,-17.710546874999963],[168.2731445312501,-17.552246093749957],[168.44580078124997,-17.54218750000004]]],[[[168.44677734375003,-16.778808593749957],[168.18144531250002,-16.804003906250017],[168.13535156250006,-16.636914062499997],[168.44677734375003,-16.778808593749957]]],[[[168.29667968750007,-16.33652343749999],[167.92900390625002,-16.22871093749997],[168.16386718750002,-16.081640625000034],[168.29667968750007,-16.33652343749999]]],[[[167.4125,-16.095898437499997],[167.83662109375004,-16.449707031249957],[167.44931640625012,-16.554980468750003],[167.34921875000006,-16.15449218750004],[167.15146484375006,-16.080468749999966],[167.19951171875002,-15.885058593750031],[167.33574218750007,-15.916699218749997],[167.4125,-16.095898437499997]]],[[[167.9113281250001,-15.435937500000023],[167.67421875,-15.4515625],[168.00253906250012,-15.283203124999986],[167.9113281250001,-15.435937500000023]]],[[[166.74580078125004,-14.826855468750011],[166.81015625000012,-15.15742187500004],[167.0755859375,-14.935644531249977],[167.20078125000012,-15.443066406249969],[167.0939453125001,-15.580859374999974],[166.75830078125003,-15.631152343750003],[166.63105468750004,-15.406054687499974],[166.56738281250003,-14.641796874999969],[166.74580078125004,-14.826855468750011]]],[[[167.58486328125,-14.260937500000011],[167.43027343750012,-14.294921875],[167.41074218750006,-14.19746093750004],[167.50644531250012,-14.142187499999977],[167.58486328125,-14.260937500000011]]],[[[167.48886718750006,-13.907226562499972],[167.3917968750001,-13.788378906250017],[167.48105468750006,-13.709472656250014],[167.48886718750006,-13.907226562499972]]]]},"properties":{"name":"Vanuatu","childNum":10}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-171.4541015625,-14.04648437500002],[-171.9119140625,-14.001660156250026],[-172.04589843750003,-13.857128906249983],[-171.60390624999997,-13.879199218750045],[-171.4541015625,-14.04648437500002]]],[[[-172.33349609375,-13.46523437499999],[-172.17685546874998,-13.68466796875002],[-172.224951171875,-13.804296874999963],[-172.535693359375,-13.791699218749983],[-172.77851562499998,-13.516796875000011],[-172.33349609375,-13.46523437499999]]]]},"properties":{"name":"Samoa","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[53.76318359374997,12.636816406249991],[54.18740234375005,12.664013671875026],[54.511132812499994,12.552783203125017],[54.12949218750006,12.360644531250045],[53.71884765625006,12.318994140624994],[53.31582031250005,12.533154296875011],[53.53496093750002,12.715771484374997],[53.76318359374997,12.636816406249991]]],[[[42.75585937500003,13.70429687500004],[42.689746093750074,13.673632812500017],[42.7941406250001,13.766113281250028],[42.75585937500003,13.70429687500004]]],[[[42.787402343750074,13.971484375000031],[42.69404296875004,14.007910156249991],[42.76210937500005,14.067480468750048],[42.787402343750074,13.971484375000031]]],[[[53.08564453125004,16.648388671874955],[52.327734375,16.293554687500063],[52.17402343750004,15.956835937500017],[52.2174804687501,15.655517578125],[51.3224609375001,15.22626953125004],[49.34990234375002,14.637792968749977],[48.66835937499999,14.050146484374977],[47.9899414062501,14.048095703125],[47.40771484374997,13.661621093750057],[46.78886718750002,13.465576171874986],[45.65732421875006,13.338720703124991],[45.03867187500006,12.815869140624969],[44.617773437500006,12.817236328124977],[44.00585937499997,12.607666015625],[43.634375,12.744482421874991],[43.487597656250074,12.69882812500002],[43.23193359375003,13.267089843750057],[43.2824218750001,13.692529296875037],[43.08906250000004,14.010986328125],[42.93642578125005,14.938574218749963],[42.85566406250004,15.132958984375037],[42.65781250000006,15.232812500000051],[42.79902343750004,15.326269531249991],[42.71718750000005,15.654638671875006],[42.83964843750002,16.032031250000074],[42.79931640624997,16.37177734375001],[43.16503906249997,16.689404296874955],[43.19091796875003,17.359375],[43.41796875000003,17.516259765625023],[43.91699218749997,17.32470703124997],[45.14804687500006,17.427441406249955],[45.5353515625001,17.30205078124999],[46.72763671875006,17.26557617187501],[46.97568359375006,16.953466796875034],[47.14355468749997,16.946679687499966],[47.44179687499999,17.111865234375045],[47.57958984374997,17.448339843750034],[48.17216796875002,18.156933593749983],[49.04199218750003,18.58178710937503],[51.977636718750006,18.996142578125074],[53.08564453125004,16.648388671874955]]]]},"properties":{"name":"Yemen","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[37.85693359375003,-46.94423828124998],[37.5900390625001,-46.90800781250006],[37.78955078124997,-46.8375],[37.85693359375003,-46.94423828124998]]],[[[31.799609375000017,-23.8921875],[31.98583984374997,-24.460644531249983],[31.921679687500017,-25.96875],[31.335156250000097,-25.755566406249997],[31.207324218750074,-25.843359375000034],[31.08808593750004,-25.980664062500026],[30.803320312500006,-26.41347656250001],[30.806738281250006,-26.78525390624999],[30.88330078124997,-26.792382812500023],[30.938085937500006,-26.91582031250003],[31.06337890625005,-27.1123046875],[31.274023437500063,-27.23837890625002],[31.469531250000017,-27.29550781250002],[31.74257812500005,-27.309960937500037],[31.95839843750005,-27.305859375],[31.946093750000017,-27.173632812499974],[31.96718750000005,-26.96064453125001],[31.994726562500006,-26.817480468749977],[32.024804687499994,-26.81113281250002],[32.112890625,-26.83945312500002],[32.19960937499999,-26.833496093749957],[32.35351562499997,-26.861621093750003],[32.7765625000001,-26.850976562499966],[32.88613281250005,-26.849316406249983],[32.53476562500006,-28.19970703125003],[32.285742187500006,-28.62148437499998],[31.335156250000097,-29.378125],[29.97119140625003,-31.322070312500017],[28.449414062500068,-32.62460937499999],[27.077441406250074,-33.52119140625004],[26.429492187500045,-33.75957031250002],[25.80585937500001,-33.737109374999974],[25.574218750000057,-34.03535156249998],[25.00292968750003,-33.97363281250003],[24.8271484375,-34.16894531250003],[24.595507812500074,-34.17451171875],[23.697851562500063,-33.99277343750002],[23.268164062500006,-34.08115234374999],[22.553808593750063,-34.01005859374999],[22.24550781250005,-34.06914062500003],[21.788964843750023,-34.37265624999996],[20.529882812500034,-34.4630859375],[20.020605468750006,-34.785742187500006],[19.298242187500023,-34.61503906249996],[19.330761718750068,-34.49238281250001],[19.098339843750068,-34.350097656249986],[18.831347656250017,-34.36406249999999],[18.75214843750004,-34.08261718750002],[18.50039062499999,-34.10927734375004],[18.46162109375001,-34.346875],[18.35205078124997,-34.1884765625],[18.43300781250005,-33.71728515625003],[17.851074218750057,-32.82744140625002],[17.96523437500005,-32.70859374999996],[18.125,-32.74912109374996],[18.325292968750034,-32.50498046874996],[18.21083984375008,-31.74248046874996],[17.34707031250005,-30.44482421875],[16.95,-29.40341796875002],[16.739453124999983,-29.009375],[16.447558593750045,-28.61757812499998],[16.755761718750023,-28.45214843750003],[16.7875,-28.39472656249997],[16.81015625,-28.264550781249994],[16.841210937500023,-28.21894531250004],[16.875292968750045,-28.12792968749997],[16.93330078125004,-28.06962890624999],[17.05625,-28.03105468750003],[17.1884765625,-28.13251953125001],[17.358691406250017,-28.269433593750023],[17.44794921875001,-28.698144531249966],[18.310839843750017,-28.88623046875],[19.16171875,-28.93876953124996],[19.245800781250068,-28.90166015625003],[19.31269531250004,-28.733300781250023],[19.539843750000017,-28.574609375000023],[19.98046875,-28.45126953125002],[19.98046875,-28.310351562500003],[19.98046875,-24.77675781249998],[20.430664062500057,-25.14707031250002],[20.79316406250001,-25.915625],[20.641406250000017,-26.7421875],[20.739843749999977,-26.84882812499997],[21.694726562500023,-26.840917968749963],[21.738085937500045,-26.806835937500026],[21.788281250000068,-26.710058593750034],[22.01093750000004,-26.635839843750006],[22.090917968749977,-26.580175781250034],[22.217578125000045,-26.38886718749997],[22.47089843750004,-26.219042968750003],[22.548632812500074,-26.178417968749997],[22.59765625000003,-26.13271484375001],[22.878808593750023,-25.457910156250023],[23.148730468750017,-25.288671875],[23.389257812500006,-25.291406250000023],[23.89375,-25.600878906250017],[23.96953124999999,-25.62607421874999],[24.192968750000034,-25.632910156249963],[24.33056640625,-25.742871093749983],[25.21337890625,-25.75625],[25.518164062500006,-25.66279296875001],[25.91210937499997,-24.747460937499966],[26.031835937500034,-24.70244140625003],[26.130859375000057,-24.671484375000034],[26.39716796875004,-24.61357421874996],[26.451757812500063,-24.582714843749983],[26.835058593750063,-24.240820312499963],[27.085546875000034,-23.577929687500003],[27.7685546875,-23.14892578125],[27.812597656250006,-23.108007812500006],[28.210156249999983,-22.693652343749974],[28.83984375000003,-22.480859374999966],[28.94580078125003,-22.39511718749999],[29.013476562500045,-22.27841796875002],[29.129882812500057,-22.21328125],[29.364843750000063,-22.19394531250005],[29.37744140625003,-22.19277343749998],[29.66308593749997,-22.146289062500017],[29.90234375000003,-22.184179687500006],[30.19042968750003,-22.291113281250034],[30.460156250000097,-22.329003906250023],[30.71162109375004,-22.297851562499986],[31.07343750000004,-22.30781249999997],[31.19726562499997,-22.344921874999983],[31.287890625000074,-22.402050781249983],[31.54560546875004,-23.48232421874998],[31.799609375000017,-23.8921875]],[[27.19355468750001,-29.94130859375001],[27.364062500000017,-30.27919921875001],[27.753125,-30.6],[28.05683593750001,-30.63105468750001],[28.128710937500017,-30.52509765625001],[28.39208984375003,-30.14755859375002],[28.646875,-30.1265625],[29.09804687500005,-29.919042968750006],[29.142187500000063,-29.70097656249999],[29.293554687500006,-29.56689453125003],[29.348828125000097,-29.441992187499977],[29.38671874999997,-29.319726562500023],[29.301367187500006,-29.08984375],[28.625781250000017,-28.581738281250054],[28.583398437499994,-28.59414062499999],[28.471875,-28.615820312499977],[28.23261718750004,-28.701269531249977],[28.084375,-28.779980468750026],[27.95986328125008,-28.87333984375003],[27.73554687500004,-28.940039062500034],[27.294531250000063,-29.519335937500017],[27.056933593750074,-29.62558593749999],[27.19355468750001,-29.94130859375001]]]]},"properties":{"name":"South Africa","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[33.148046875,-9.603515625],[33.25,-9.759570312500003],[33.35097656250002,-9.862207031250009],[33.33710937500001,-9.954003906250009],[33.3115234375,-10.037988281250009],[33.52890625,-10.234667968750003],[33.53759765625,-10.3515625],[33.5537109375,-10.391308593750011],[33.66152343750002,-10.553125],[33.29277343750002,-10.85234375],[33.37978515625002,-11.157910156250011],[33.26835937500002,-11.40390625],[33.23271484375002,-11.417675781250011],[33.22636718750002,-11.534863281250011],[33.30390625000001,-11.690820312500009],[33.25234375000002,-12.112597656250003],[33.34013671875002,-12.308300781250011],[33.512304687500006,-12.347753906250006],[32.975195312500006,-12.701367187500011],[32.96757812500002,-13.225],[32.67041015625,-13.590429687500006],[32.797460937500006,-13.6884765625],[32.98125,-14.009375],[33.148046875,-13.94091796875],[33.201757812500006,-14.013378906250011],[30.231835937500023,-14.990332031250006],[30.39609375,-15.64306640625],[29.4873046875,-15.69677734375],[28.9130859375,-15.98779296875],[28.760546875000017,-16.53212890625001],[27.932226562500006,-16.89619140625001],[27.020800781250017,-17.95839843750001],[26.779882812500006,-18.04150390625],[26.333398437500023,-17.929296875],[25.995898437500017,-17.969824218750006],[25.2587890625,-17.793554687500006],[25.001757812500017,-17.56855468750001],[24.73291015625,-17.51777343750001],[24.27490234375,-17.481054687500006],[23.380664062500017,-17.640625],[22.193945312500006,-16.628125],[21.979785156250017,-15.95556640625],[21.979394531250023,-14.440527343750006],[21.979296875000017,-14.11962890625],[21.979101562500006,-13.798730468750009],[21.978906250000023,-13.0009765625],[22.209570312500006,-13.0009765625],[23.843164062500023,-13.0009765625],[23.962988281250006,-12.988476562500011],[23.882421875,-12.799023437500011],[23.886523437500017,-12.743261718750006],[23.909375,-12.636132812500009],[23.98388671875,-11.725],[23.96650390625001,-10.871777343750011],[24.36572265625,-11.1298828125],[24.3779296875,-11.417089843750006],[25.28876953125001,-11.21240234375],[25.349414062500017,-11.623046875],[26.025976562500006,-11.89013671875],[26.824023437500017,-11.965234375],[27.1591796875,-11.579199218750006],[27.573828125,-12.22705078125],[28.412890625000017,-12.51806640625],[28.550878906250006,-12.836132812500011],[28.730078125,-12.925488281250011],[29.014257812500006,-13.368847656250011],[29.20185546875001,-13.398339843750009],[29.55419921875,-13.248925781250009],[29.775195312500017,-13.438085937500006],[29.79511718750001,-12.155468750000011],[29.508203125000023,-12.228222656250011],[29.48554687500001,-12.41845703125],[29.064355468750023,-12.348828125000011],[28.482519531250006,-11.812109375],[28.383398437500006,-11.566699218750003],[28.6455078125,-10.550195312500009],[28.60419921875001,-9.678808593750006],[28.400683593750017,-9.224804687500011],[28.869531250000023,-8.785839843750011],[28.89814453125001,-8.485449218750006],[30.75117187500001,-8.193652343750003],[30.830664062500006,-8.385546875],[30.891992187500023,-8.473730468750006],[30.968359375,-8.550976562500011],[31.07636718750001,-8.611914062500006],[31.3505859375,-8.60703125],[31.44921875,-8.65390625],[31.53486328125001,-8.71328125],[31.55625,-8.80546875],[31.673632812500017,-8.908789062500006],[31.91865234375001,-8.9421875],[31.921875,-9.019433593750009],[31.94257812500001,-9.054003906250003],[32.75664062500002,-9.322265625],[32.919921875,-9.407421875000011],[32.99599609375002,-9.622851562500003],[33.148046875,-9.603515625]]]},"properties":{"name":"Zambia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[31.287890625000017,-22.40205078125001],[31.07343750000001,-22.30781250000001],[30.71162109375001,-22.2978515625],[30.46015625000001,-22.32900390625001],[30.1904296875,-22.291113281250006],[29.90234375,-22.184179687500006],[29.6630859375,-22.146289062500003],[29.37744140625,-22.19277343750001],[29.36484375,-22.193945312500006],[29.315234375000017,-22.15771484375],[29.237207031250023,-22.07949218750001],[29.042382812500023,-22.018359375],[29.02558593750001,-21.796875],[28.014062500000023,-21.55419921875],[27.66943359375,-21.064257812500003],[27.679296875,-20.503027343750006],[27.28076171875,-20.47871093750001],[27.17822265625,-20.10097656250001],[26.168066406250006,-19.53828125000001],[25.939355468750023,-18.93867187500001],[25.242285156250006,-17.969042968750003],[25.2587890625,-17.793554687500006],[25.995898437500017,-17.969824218750006],[26.333398437500023,-17.929296875],[26.779882812500006,-18.04150390625],[27.020800781250017,-17.95839843750001],[27.932226562500006,-16.89619140625001],[28.760546875000017,-16.53212890625001],[28.9130859375,-15.98779296875],[29.4873046875,-15.69677734375],[30.39609375,-15.64306640625],[30.437792968750017,-15.995312500000011],[31.236230468750023,-16.02363281250001],[31.939843750000023,-16.428808593750006],[32.94804687500002,-16.71230468750001],[32.87626953125002,-16.88359375],[32.99306640625002,-18.35957031250001],[32.69970703125,-18.94091796875],[32.84980468750001,-19.10439453125001],[32.77763671875002,-19.388769531250006],[32.992773437500006,-19.98486328125],[32.49238281250001,-20.659765625],[32.353613281250006,-21.136523437500003],[32.429785156250006,-21.29707031250001],[31.429492187500017,-22.298828125],[31.287890625000017,-22.40205078125001]]]},"properties":{"name":"Zimbabwe","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[74.00809389139292,33.25375789331485],[73.19660141888893,33.898124784580936],[73.13410859949555,34.82510160558277],[72.31128647748268,35.77290936638241],[73.08203125000107,36.43949943991182],[73.08961802927895,36.86435907947333],[73.116796875,36.868554687499994],[74.03886718750002,36.825732421874996],[74.54140625000002,37.02216796875],[74.69218750000002,37.0357421875],[74.8892578125,36.952441406249996],[74.94912109375002,36.968359375],[75.05390625000001,36.987158203125],[75.14521484375001,36.9732421875],[75.3466796875,36.913476562499994],[75.37685546875002,36.883691406249994],[75.42421875000002,36.738232421875],[75.46025390625002,36.725048828125],[75.57373046875,36.759326171874996],[75.66718750000001,36.741992187499996],[75.77216796875001,36.694921875],[75.84023437500002,36.649707031249996],[75.88496093750001,36.600732421874994],[75.93300781250002,36.52158203125],[75.95185546875001,36.45810546875],[75.97441406250002,36.382421875],[75.91230468750001,36.048974609374994],[76.07089843750003,35.9830078125],[76.14785156250002,35.829003906249994],[76.17783203125003,35.810546875],[76.25166015625001,35.8109375],[76.3857421875,35.837158203125],[76.50205078125003,35.878222656249996],[76.55126953125,35.887060546875],[76.5634765625,35.772998046874996],[76.6318359375,35.729394531249994],[76.7275390625,35.678662109375],[76.76689453124999,35.66171875],[76.81279296874999,35.571826171874996],[76.88222656250002,35.4357421875],[76.927734375,35.346630859375],[77.04863281249999,35.109912109374996],[77.00087890625002,34.991992187499996],[76.78291015625001,34.900195312499996],[76.75751953125001,34.877832031249994],[76.7490234375,34.847558593749994],[76.6962890625,34.786914062499996],[76.59443359375001,34.73583984375],[76.45673828125001,34.756103515625],[76.17246093750003,34.667724609375],[76.041015625,34.669921875],[75.93828125000002,34.612548828125],[75.86210937500002,34.56025390625],[75.70917968750001,34.503076171874994],[74.300390625,34.765380859375],[74.17197265625,34.7208984375],[74.05585937500001,34.6806640625],[73.96123046875002,34.653466796874994],[73.79453125,34.378222656249996],[73.80996093750002,34.325341796874994],[73.92460937500002,34.287841796875],[73.97236328125001,34.236621093749996],[73.9794921875,34.191308593749994],[73.90390625,34.1080078125],[73.94990234375001,34.018798828125],[74.24648437500002,33.990185546875],[73.97646484375002,33.7212890625],[74.15,33.506982421874994],[74.00809389139292,33.25375789331485]]]},"properties":{"name":"","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[78.49194250885338,32.53122786149202],[78.10154031239509,32.87658365066666],[77.71342088235082,32.6917648744551],[77.06655516561037,33.301666835953235],[76.62299010270264,33.32014871357439],[76.32728006076415,32.87658365066666],[75.73585997688717,32.78417426256088],[75.62496871116024,32.28516356678968],[75.32221348233018,32.28516356678968],[74.98730468749997,32.46220703124996],[74.78886718750013,32.4578125],[74.6857421875001,32.493798828124994],[74.66328125000004,32.75766601562495],[74.63242187499995,32.770898437500136],[74.58828125000011,32.7532226562501],[74.35458984375012,32.76870117187505],[74.30546875000007,32.81044921875002],[74.30361328125005,32.991796875000034],[73.98984375000006,33.22119140625006],[74.15,33.506982421874994],[73.97646484375016,33.72128906249998],[74.24648437500011,33.99018554687504],[73.9499023437501,34.018798828125],[73.90390625000012,34.10800781250006],[73.97949218750009,34.191308593749966],[73.97236328125004,34.23662109374996],[73.92460937500007,34.287841796875114],[73.80996093750016,34.32534179687511],[73.79453125000006,34.378222656250045],[73.96123046875007,34.653466796874994],[74.05585937500015,34.68066406250003],[74.17197265624995,34.72089843750004],[74.30039062500006,34.76538085937506],[75.70917968750004,34.50307617187508],[75.86210937500002,34.56025390625001],[75.93828125000019,34.612548828125],[76.04101562500014,34.66992187499997],[76.17246093750006,34.66772460937506],[76.4567382812501,34.756103515625114],[76.5944335937501,34.73583984375006],[76.69628906249997,34.78691406249999],[76.74902343750014,34.84755859375008],[76.7575195312501,34.87783203125005],[76.7829101562501,34.90019531249999],[77.00087890625011,34.99199218750002],[77.03066406250011,35.06235351562498],[77.04863281250007,35.109912109375074],[77.42343749999995,35.30258789062506],[77.57158203125002,35.37875976562495],[77.69697265625015,35.443261718750136],[77.79941406250006,35.49589843750002],[78.0426757812501,35.4797851562501],[78.07578125000006,35.13491210937502],[78.15849609375002,34.94648437499998],[78.32695312500007,34.60639648437498],[78.86484375000006,34.39033203125001],[78.93642578125,34.35195312500002],[78.97060546875011,34.22822265625004],[78.72666015625006,34.013378906249955],[78.78378906250006,33.80878906250004],[78.86503906250002,33.43110351562501],[78.94843750000004,33.346533203125006],[79.1125,33.22626953125001],[79.13515625000005,33.17192382812496],[79.10283203125007,33.05253906249996],[79.14550781250003,33.00146484375006],[79.16992187500003,32.497216796874994],[78.91894531249997,32.3582031250001],[78.75351562500012,32.49926757812506],[78.73671875,32.55839843750002],[78.49194250885338,32.53122786149202]]]]},"properties":{"name":"","childNum":1}}]}');var xe=Object.defineProperty,ke=Object.getOwnPropertySymbols,Ce=Object.prototype.hasOwnProperty,$e=Object.prototype.propertyIsEnumerable,Se=(e,t,n)=>t in e?xe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ee=(e,t)=>{for(var n in t||(t={}))Ce.call(t,n)&&Se(e,n,t[n]);if(ke)for(var n of ke(t))$e.call(t,n)&&Se(e,n,t[n]);return e};function Oe({areaStyleColors:n,dataLoaded:o,hasData:i,highlight:r,type:s,option:a,series:l,onChange:c,zoomStart:u,zoomEnd:h,title:d,seriesConfig:p=[],noDataComponent:g=null,zoomColors:m,style:f}){const[y,v]=(0,e.useState)(null),b=(0,e.useRef)(null),w=()=>{y&&y.resize()},x=(0,e.useMemo)((()=>g?g():t().createElement(be,{theme:"info"},"No data to display")),[g]),k={defaultOpts:(0,pe.fromJS)({title:{show:!0,text:d,left:0},color:[],toolbox:{right:"0",orient:"horizontal",itemSize:15,showTitle:!0,feature:null},dataZoom:[{show:!0,start:0,end:100,orient:"horizontal",dataBackground:{lineStyle:{color:(null==m?void 0:m.lineStyle)||"#368493"},areaStyle:{color:(null==m?void 0:m.areaStyle)||"#368493"}},handleStyle:{color:(null==m?void 0:m.handleStyle)||"#368493"},textStyle:{color:(null==m?void 0:m.textStyle)||"#368493"},borderColor:"transparent",fillerColor:(null==m?void 0:m.fillerColor)||"rgba(54, 132, 147, 0.1)"}],legend:{show:!1},tooltip:{trigger:"axis",axisPointer:{type:"cross"}},grid:{left:"1%",right:"1%",bottom:"50px",top:"40px",containLabel:!0},xAxis:{boundaryGap:!1,type:"category",splitLine:{show:!0,lineStyle:{type:"dotted",color:"#F0F0F0"}},axisLine:{show:!1},axisTick:{show:!1},data:[]},yAxis:{min:"dataMin",boundaryGap:!0,axisPointer:{show:!0},splitLine:{lineStyle:{type:"dotted",color:"#F0F0F0"},show:!0},axisLabel:{show:!0},axisLine:{show:!0},axisTick:{show:!1},type:"value"},textStyle:{color:"#5a5a68"},series:[],animationEasing:"elasticOut"}),seriesDefault:(0,pe.fromJS)({data:[],type:"line",areaStyle:{opacity:1,color:n?new de.graphic.LinearGradient(0,0,1,1,n.map(((e,t)=>({offset:t,color:e})))):[]},smooth:!1,symbolSize:7,name:""})},C={defaultOpts:(0,pe.fromJS)({tooltip:{trigger:"axis",formatter:"{b}: {c} ({d}%)"},legend:{orient:"horizontal",x:"left",y:"top",data:[]},color:[],series:[]}),seriesDefault:(0,pe.fromJS)({type:"pie",center:["50%","55%"],radius:["50%","75%"],avoidLabelOverlap:!1,animationType:"scale",animationEasing:"elasticOut",labelLine:{normal:{show:!0,smooth:.2,length:6,length2:6}},data:[]})},$={defaultOpts:(0,pe.fromJS)({series:[]}),seriesDefault:(0,pe.fromJS)({type:"map",data:[]})};(0,e.useEffect)((()=>(window.addEventListener("resize",w),()=>{window.removeEventListener("resize",w)})),[y]),(0,e.useEffect)((()=>{if(null==b?void 0:b.current)return v(de.init(b.current)),()=>{y&&y.dispose()}}),[b.current]);const S=e=>{c&&c(e)};(0,e.useEffect)((()=>{let e;return y&&(e=ge(S,500),y.on("dataZoom",e),y.on("restore",e),y.on("click",e),y.on("mousemove",(e=>{e.data&&y.getZr().setCursorStyle("pointer")}))),()=>{y&&(y.off("dataZoom",e),y.off("restore",e),y.off("click",e))}}),[y,c]);const E=me(y),O=me(a),T=me(s),A=me(l);(0,e.useEffect)((()=>{var e,t,n,o,i,r;!y||(null==(t=null==(e=(0,pe.fromJS)(E))?void 0:e.equals)?void 0:t.call(e,(0,pe.fromJS)(y)))&&(null==(o=null==(n=(0,pe.fromJS)(O))?void 0:n.equals)?void 0:o.call(n,(0,pe.fromJS)(a)))&&T===s&&(null==(r=(i=(0,pe.fromJS)(A)).equals)?void 0:r.call(i,(0,pe.fromJS)(l)))||(y.clear(),y.setOption(((e,t,n)=>{let o={};switch(e){case"pie":o=C.defaultOpts.mergeDeep((0,pe.fromJS)(t)).toJS(),n.forEach((e=>{o.series.push(C.seriesDefault.mergeDeep((0,pe.fromJS)(e)).toJS())}));break;case"geo":o=$.defaultOpts.mergeDeep((0,pe.fromJS)(t)).toJS(),n.forEach((e=>{o.series.push($.seriesDefault.mergeDeep((0,pe.fromJS)(e)).toJS())}));break;default:o=k.defaultOpts.mergeDeep((0,pe.fromJS)(t)).toJS(),Array.isArray(t.yAxis)&&(o.yAxis=t.yAxis),n.forEach(((e,t)=>{const n=Ee(Ee(Ee({},k.seriesDefault.toJS()),p[t]),e);o.series.push(n)}))}return o})(s,a,l)),y.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:!0}))}),[y,a,l,s]),(0,e.useEffect)((()=>{y&&r&&(y.dispatchAction({type:"highlight",seriesIndex:r.seriesIndex,dataIndex:r.dataIndex}),y.dispatchAction({type:"showTip",seriesIndex:r.seriesIndex,dataIndex:r.dataIndex}))}),[r]);const _=me(u),L=me(h);(0,e.useEffect)((()=>{!y||-1===u||-1===h||_===u&&L===h||y.dispatchAction({type:"dataZoom",startValue:u,endValue:h})}),[u,h]);const M=()=>!o||!1!==i&&!0!==i||i;return t().createElement("div",{className:"tyk-chart__wrapper"},o?null:t().createElement(ye,null),t().createElement("div",{className:(()=>{const e=["tyk-chart"];return o||e.push("tyk-chart--loading-chart"),M()||e.push("tyk-chart--no-data"),e.join(" ")})(),style:(()=>{const e=f||{};return e.height||(e.height="300px"),e.width||(e.width="100%"),e})(),"data-type":s,ref:b}),M()?null:x)}de.registerMap("world",we),Oe.propTypes={areaStyleColors:r().instanceOf(Array),dataLoaded:r().bool,hasData:r().bool,highlight:r().oneOfType([r().number,r().string,r().instanceOf(Array)]),noDataComponent:r().func,zoomStart:r().number,zoomEnd:r().number,zoomColors:r().instanceOf(Object),option:r().instanceOf(Object),onChange:r().func,style:r().instanceOf(Object),type:r().string,title:r().string,series:r().instanceOf(Array),seriesConfig:r().instanceOf(Object)};const Te=(0,e.memo)(Oe);var Ae=n(745);const _e=(t,n)=>{const o=(0,e.useRef)();(0,e.useEffect)((()=>{o.current=t}),[t]),(0,e.useEffect)((()=>{if(null!==n){const e=setTimeout((function(){o.current()}),n);return()=>clearTimeout(e)}return()=>{}}),[n])};var Le=Object.defineProperty,Me=Object.getOwnPropertySymbols,Re=Object.prototype.hasOwnProperty,Ne=Object.prototype.propertyIsEnumerable,Ie=(e,t,n)=>t in e?Le(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Pe(e){const{children:n,options:o,onClose:i,index:r}=e,s=((e,t)=>{for(var n in t||(t={}))Re.call(t,n)&&Ie(e,n,t[n]);if(Me)for(var n of Me(t))Ne.call(t,n)&&Ie(e,n,t[n]);return e})({theme:"success",delay:3e3},o),a=e=>{i(e),clearTimeout(void 0)};return _e((()=>a(r)),s.delay),t().createElement(be,{className:"tyk-toast__message",theme:s.theme,onClose:()=>a(r)},n)}Pe.propTypes={children:r().oneOfType([r().element,r().node,r().string]),options:r().instanceOf(Object),onClose:r().func,index:r().number};const De=Pe;var Fe=Object.defineProperty,Be=Object.defineProperties,We=Object.getOwnPropertyDescriptors,He=Object.getOwnPropertySymbols,je=Object.prototype.hasOwnProperty,ze=Object.prototype.propertyIsEnumerable,Ve=(e,t,n)=>t in e?Fe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ue=(e,t)=>{for(var n in t||(t={}))je.call(t,n)&&Ve(e,n,t[n]);if(He)for(var n of He(t))ze.call(t,n)&&Ve(e,n,t[n]);return e};function Ge(n){const[o,i]=(0,e.useState)({}),{notify:r}=n,s=(e,t)=>{const n=Math.floor(1e6*Math.random());i((o=>{return i=Ue({},o),Be(i,We({[n]:{message:e,options:t}}));var i}))};(0,e.useEffect)((()=>{r(s)}),[o]);const a=e=>{delete Ue({},o)[e],i((t=>{const n=Ue({},t);return delete n[e],n}))};return t().createElement("div",{className:"tyk-toast__container"},Object.keys(o).map((e=>o[e]?t().createElement(De,{options:o[e].options,onClose:a.bind(null,e),index:e,key:e},o[e].message):null)))}Ge.propTypes={notify:r().func};const Ke=Ge;var qe=Object.defineProperty,Ye=Object.defineProperties,Je=Object.getOwnPropertyDescriptors,Xe=Object.getOwnPropertySymbols,Qe=Object.prototype.hasOwnProperty,Ze=Object.prototype.propertyIsEnumerable,et=(e,t,n)=>t in e?qe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,tt=(e,t)=>{for(var n in t||(t={}))Qe.call(t,n)&&et(e,n,t[n]);if(Xe)for(var n of Xe(t))Ze.call(t,n)&&et(e,n,t[n]);return e},nt=(e,t)=>Ye(e,Je(t));const ot=new class{constructor(){var e;et(this,"symbol"!=typeof(e="bindNotify")?e+"":e,(e=>{this.createNotification=e}));const n=document.createElement("div");n.className="tyk-toast",document.body.appendChild(n),(0,Ae.s)(n).render(t().createElement(Ke,{notify:this.bindNotify}))}notify(e,t){this.createNotification&&this.createNotification(e,t)}danger(e,t){this.notify(e,nt(tt({},t),{theme:"danger"}))}success(e,t){this.notify(e,nt(tt({},t),{theme:"success"}))}warning(e,t){this.notify(e,nt(tt({},t),{theme:"warning"}))}info(e,t){this.notify(e,nt(tt({},t),{theme:"info"}))}};var it=Object.defineProperty,rt=Object.getOwnPropertySymbols,st=Object.prototype.hasOwnProperty,at=Object.prototype.propertyIsEnumerable,lt=(e,t,n)=>t in e?it(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function ct(n){const{display:o,copy:i,children:r,onCopy:s,message:a="copied"}=n,l=(0,e.createRef)(),c=(0,e.useCallback)((()=>{if(s&&s(),!window.navigator.clipboard)return l.current.select(),document.execCommand("copy"),void ot.success(a);window.navigator.clipboard.writeText(i),ot.success(a)}),[s,l]);return t().createElement(t().Fragment,null,t().createElement(n.element,((e,t)=>{for(var n in t||(t={}))st.call(t,n)&<(e,n,t[n]);if(rt)for(var n of rt(t))at.call(t,n)&<(e,n,t[n]);return e})({onClick:c,onKeyUp:c},n),r||o),window.navigator.clipboard?null:t().createElement("textarea",{ref:l,className:"tyk-copy-to-clipboard",name:"copy",value:i},i))}ct.propTypes={message:r().string,onCopy:r().func,copy:r().string.isRequired,display:r().string,children:r().oneOfType([r().element,r().string,r().object,r().node])};const ut=ct;var ht=n(137),dt=n.n(ht);function pt({children:e}){return t().createElement("div",{className:"tyk-modal__footer"},e)}pt.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const gt=pt;function mt({children:e}){return t().createElement("div",{className:"tyk-modal__body"},e)}mt.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const ft=mt;var yt=Object.defineProperty,vt=Object.getOwnPropertySymbols,bt=Object.prototype.hasOwnProperty,wt=Object.prototype.propertyIsEnumerable,xt=(e,t,n)=>t in e?yt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function kt(e){var n=e,{children:o,theme:i="none",disableCloseCommands:r=!1,opened:s=!1,onClose:a=(()=>{}),size:l="md",className:c="",showBackdrop:u=!0}=n,h=((e,t)=>{var n={};for(var o in e)bt.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&vt)for(var o of vt(e))t.indexOf(o)<0&&wt.call(e,o)&&(n[o]=e[o]);return n})(n,["children","theme","disableCloseCommands","opened","onClose","size","className","showBackdrop"]);const d=["tyk-modal",`tyk-modal--theme-${i}`,s&&"opened"].concat(c.split(" ")).filter(Boolean).join(" "),p=["tyk-modal__backdrop",s&&"opened"].filter(Boolean).join(" "),m={success:"check",warning:"exclamation",danger:"exclamation"}[i];return t().createElement(t().Fragment,null,dt().createPortal(t().createElement(x.CSSTransition,{in:s,timeout:100,classNames:"appear"},t().createElement("div",((e,t)=>{for(var n in t||(t={}))bt.call(t,n)&&xt(e,n,t[n]);if(vt)for(var n of vt(t))wt.call(t,n)&&xt(e,n,t[n]);return e})({className:d},h),t().createElement("div",{className:`tyk-modal__dialog tyk-modal--${l}`},t().createElement("div",{className:"tyk-modal__content"},"none"!==i&&t().createElement("div",{className:"tyk-modal__theme-header"},t().createElement(g,{type:m})),o)))),document.querySelector("body")),u&&dt().createPortal(t().createElement(x.CSSTransition,{in:s,timeout:100,classNames:"fade"},t().createElement("button",{className:p,onClick:()=>!r&&a(),onKeyDown:()=>{},type:"button","aria-label":"Close"})),document.querySelector("body")))}kt.Body=ft,kt.Footer=gt,kt.Header=({children:e})=>(console.warn("%cModal.Header%c is deprecated.","font-weight: bold",""),t().createElement("div",{className:"tyk-modal__header"},e)),kt.Header.propTypes={children:r().element},kt.Title=({children:e})=>(console.warn("%cModal.Title%c is deprecated.","font-weight: bold",""),t().createElement("h4",{className:"tyk-modal__title"},e)),kt.Title.propTypes={children:r().element},kt.propTypes={children:r().oneOfType([r().element,r().node,r().string]),className:r().string,theme:r().string,disableCloseCommands:r().bool,opened:r().bool,onClose:r().func,size:r().string,showBackdrop:r().bool};const Ct=kt;function $t(n){const{children:o,title:i,description:r,confirmBtnText:s="Confirm",cancelBtnText:a="Cancel"}=n,[l,c]=(0,e.useState)(!1),[u,h]=(0,e.useState)(null),[d,p]=(0,e.useState)(null),g=()=>{c(!1),h(null),p(null)},m=()=>{d&&d(),g()};return t().createElement(t().Fragment,null,o(((e,t,n)=>(...o)=>{n&&n(...o),c(!0),h((()=>()=>e(...o))),t&&p((()=>()=>t(...o)))})),t().createElement(Ct,{opened:l,onClose:m},t().createElement(Ct.Body,null,t().createElement("h4",null,i),r),t().createElement(Ct.Footer,null,t().createElement(U,{onClick:m,theme:"default"},a),t().createElement(U,{onClick:()=>{u(),g()},theme:"success"},s))))}$t.propTypes={confirmBtnText:r().string,cancelBtnText:r().string,title:r().string,description:r().string,children:r().oneOfType([r().element,r().string,r().object,r().node,r().func])};const St=$t;function Et({children:n,className:o,showShadow:i}){const r=(0,e.useRef)(null),s=(0,e.useCallback)((()=>{const e=r.current;e&&(window.scrollY?e.classList.add("tyk-fixed-wrapper--scrolled"):e.classList.remove("tyk-fixed-wrapper--scrolled"))}),[r.current]),a=(0,e.useCallback)(ge(s,100),[s]);return(0,e.useEffect)((()=>(i&&window.addEventListener("scroll",a),()=>{window.removeEventListener("scroll",a)})),[a,i]),t().createElement("div",{className:`tyk-fixed-wrapper ${o}`,ref:r},n)}Et.propTypes={children:r().oneOfType([r().element,r().node,r().string]),className:r().string,showShadow:r().bool},Et.defaultProps={className:""};const Ot=Et;function Tt({children:n,hasMore:o,initialLoad:i,loadMore:r,pageNumber:s,refChild:a}){const[l,c]=(0,e.useState)(!1),u=(0,e.useRef)(null),h=C(a);(0,e.useEffect)((()=>{i&&"function"==typeof r&&(c(!1),r(s))}),[i]);const d=(0,e.useCallback)((()=>{if(!u.current)return!1;const{clientHeight:e,scrollTop:t}=u.current;return o&&(e+Math.round(t)===h.height||e>=h.height)}),[u,h.height]),p=(0,e.useCallback)((()=>{o&&"function"==typeof r?(r(s+1),c(!0)):c(!1)}),[o,s]),g=me(s),m=(0,e.useCallback)(ge((()=>{d()&&g<=s&&p()}),200),[p,d]);(0,e.useEffect)((()=>{var e;return null==(e=u.current)||e.addEventListener("scroll",m),()=>{var e;return null==(e=u.current)?void 0:e.removeEventListener("scroll",m)}}),[u,m]),(0,e.useEffect)((()=>{g>0&&0===s&&(u.current.scrollTop=0)}),[u,s]);const f=me(h);return(0,e.useEffect)((()=>{h&&f&&h.height!==f.height&&!0===l&&c(!1)}),[l,h.height]),(0,e.useEffect)((()=>{a&&h.heightt in e?_t(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function It({element:n,size:o="auto",forceDisplay:i="auto",displayAxis:r="auto",preferredPosition:s,offset:a=0,className:l,children:c,infiniteScrollerConfig:u},h){const d=(0,e.useRef)(null),p=h||d,g=(0,e.useRef)(null),m=(0,e.useRef)(null);return(0,e.useEffect)((()=>{window.requestAnimationFrame((function e(){(function(){var e;const t="auto"!==i?i:function(){const e=n.current,t=p.current;if(!t)return(null!=s?s:"vertical"===r)?"bottom":"right";const{left:o,top:i}=e.getBoundingClientRect(),a=i,l=window.innerHeight-i-e.offsetHeight,c=o,u=window.innerWidth-o-e.offsetWidth,h=a>t.scrollHeight,d=l>t.scrollHeight,g=c>t.offsetWidth,m=u>t.offsetWidth,f=o+e.offsetWidth/2-t.offsetWidth/2>0,y=i+e.offsetHeight/2-t.scrollHeight/2>0;return"vertical"===r||"auto"===r&&(h||d)&&f?function({preferredPosition:e,hasTopSpace:t,hasBottomSpace:n,topSpace:o,bottomSpace:i}){return"top"===e&&t?"top":"bottom"===e&&n||n||i>o?"bottom":"top"}({preferredPosition:s,hasTopSpace:h,hasBottomSpace:d,topSpace:a,bottomSpace:l}):"horizontal"===r?function({preferredPosition:e,hasLeftSpace:t,hasRightSpace:n,leftSpace:o,rightSpace:i}){return"left"===e&&t?"left":"right"===e&&n||n||i>o?"right":"left"}({preferredPosition:s,hasLeftSpace:g,hasRightSpace:m,leftSpace:c,rightSpace:u}):function({preferredPosition:e,hasTopSpace:t,hasBottomSpace:n,hasLeftSpace:o,hasRightSpace:i,positionedHorizontallyFitsInViewport:r,positionedVerticallyFitsInViewport:s}){return t&&s?"top":n&&s?"bottom":i&&r?"right":o&&r?"left":null!=e?e:"bottom"}({preferredPosition:s,hasTopSpace:h,hasBottomSpace:d,hasLeftSpace:g,hasRightSpace:m,positionedHorizontallyFitsInViewport:y,positionedVerticallyFitsInViewport:f})}(),l=n.current,c=p.current;if(!l||!c)return;const u=l.getBoundingClientRect(),{left:h,top:d}=null!=(e=m.current)?e:{left:0,top:0};if("top"===t&&Object.assign(c.style,function({container:e,targetPosition:t,target:n,size:o,offset:i,vpLeft:r,vpTop:s}){const a={},l={auto:t.left+n.offsetWidth/2-e.offsetWidth/2,matchElement:t.left,matchStart:t.left,matchEnd:t.right-e.offsetWidth}[o],c=t.top-e.offsetHeight-i;return a.left=`${l+r}px`,a.top=`${c+s}px`,"matchElement"===o?a.width=`${n.offsetWidth}px`:"matchEnd"===o?a.maxWidth=t.right-5+"px":"function"==typeof o&&(a.width=`${o(n.offsetWidth)}px`),a.maxHeight=t.top-i+"px",a}({container:c,targetPosition:u,target:l,size:o,offset:a,vpLeft:h,vpTop:d})),"bottom"===t&&Object.assign(c.style,function({targetPosition:e,target:t,container:n,size:o,offset:i,vpLeft:r,vpTop:s}){const a={},l={auto:e.left+t.offsetWidth/2-n.offsetWidth/2,matchElement:e.left,matchStart:e.left,matchEnd:e.right-n.offsetWidth}[o],c=e.bottom+i;return a.left=`${l+r}px`,a.top=`${c+s}px`,"matchElement"===o?a.width=`${t.offsetWidth}px`:"matchEnd"===o?a.maxWidth=e.right-5+"px":"function"==typeof o&&(a.width=`${o(t.offsetWidth)}px`),a.maxHeight=window.innerHeight-e.bottom-i+"px",a}({container:c,targetPosition:u,target:l,size:o,offset:a,vpLeft:h,vpTop:d})),"left"===t&&Object.assign(c.style,function({targetPosition:e,target:t,container:n,size:o,offset:i}){const r={},s=e.left-n.offsetWidth-i,a={auto:e.top+t.offsetHeight/2-n.offsetHeight/2,matchElement:e.top,matchStart:e.top,matchEnd:e.bottom-n.offsetHeight}[o];return r.left=`${s}px`,r.top=`${a}px`,"matchElement"===o?r.height=`${t.offsetHeight}px`:"function"==typeof o&&(r.height=`${o(t.offsetHeight)}px`),r.maxWidth=e.left-i+"px",r}({targetPosition:u,target:l,container:c,size:o,offset:a})),"right"===t&&Object.assign(c.style,function({targetPosition:e,target:t,container:n,size:o,offset:i,vpLeft:r,vpTop:s}){const a={},l=e.left+t.offsetWidth+i,c={auto:e.top+t.offsetHeight/2-n.offsetHeight/2,matchElement:e.top,matchStart:e.top,matchEnd:e.bottom-n.offsetHeight}[o];return a.left="auto"===o?`${l+r}px`:`${l}px`,a.top="auto"===o?`${c+s}px`:`${c}px`,"matchElement"===o?a.height=`${t.offsetHeight}px`:"function"==typeof o&&(a.height=`${o(t.offsetHeight)}px`),a.maxWidth=window.innerWidth-e.left-t.offsetWidth-i+"px",a}({targetPosition:u,target:l,container:c,size:o,offset:a,vpLeft:h,vpTop:d})),null===m.current)if("matchEnd"===o)m.current={left:0,top:0};else{const e=Number(c.style.left.replace("px","")),t=Number(c.style.top.replace("px",""));m.current={left:e<0?5-e:0,top:t<0?5-t:0}}})(),window.requestAnimationFrame(e)}))}),[]),(0,ht.createPortal)(t().createElement("div",{className:`floating-container ${l||""}`,ref:p},t().createElement(At,((e,t)=>{for(var n in t||(t={}))Mt.call(t,n)&&Nt(e,n,t[n]);if(Lt)for(var n of Lt(t))Rt.call(t,n)&&Nt(e,n,t[n]);return e})({refChild:g},u),t().createElement("div",{className:"floating-container__content-wrapper",ref:g},c))),document.querySelector("body"))}It.propTypes={element:r().instanceOf(Object),className:r().string,size:r().oneOfType([r().oneOf(["auto","matchElement","matchStart","matchEnd"]),r().func]),offset:r().number,forceDisplay:r().oneOf(["auto","top","bottom","left","right"]),displayAxis:r().oneOf(["auto","vertical","horizontal"]),preferredPosition:r().oneOf(["top","bottom","left","right"]),infiniteScrollerConfig:r().instanceOf(Object)};const Pt=(0,e.forwardRef)(It);function Dt({children:e}){return t().createElement("div",{className:"tyk-info-note"},t().createElement(be,{theme:"info"},e))}Dt.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const Ft=Dt;function Bt(e){const{className:n,children:o,selected:i}=e;return t().createElement("li",{className:`${n} ${i?"tyk-list__item--selected":""}`},o)}Bt.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,selected:r().bool},Bt.defaultProps={className:""};const Wt=Bt;function Ht(e){const{className:n,children:o,label:i,labelwidth:r,theme:s,style:a}=e;return t().createElement("div",{className:"tyk-list__wrapper "+(r?"tyk-list--with-inline-label":"")},void 0!==i?t().createElement("label",{style:{flexBasis:r||"auto"}},i):null,t().createElement("ul",{className:(()=>{let e=["tyk-list"];return s&&e.push(`tyk-list--${s}`),n&&(e=e.concat(n.split(" "))),e.join(" ")})(),style:(()=>{const e=structuredClone(a);return r&&(e.flexBasis=`calc(100% - ${r} - 20px)`),e})()},o))}Ht.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,label:r().string,labelwidth:r().string,theme:r().string,style:r().instanceOf(Object)},Ht.defaultProps={theme:"default",style:{}},Ht.Item=Wt;const jt=Ht;function zt({align:e="center",children:n,left:o,right:i,title:r,pre:s,subtitle:a,withTabs:l}){const c=a?t().createElement("p",{className:"font-family-medium"},a):null;return t().createElement("section",{className:"tyk-nav-bar "+(l?"tyk-nav-bar__with-tabs":"")},t().createElement("div",{className:`tyk-nav-bar__wrapper tyk-nav-bar--align-${e}`},s&&t().createElement("div",{className:"tyk-nav-bar__pre"},s),r?t().createElement("div",null,t().createElement("h1",null,r),c):c,t().createElement("div",{className:"tyk-nav-bar__container"},o&&t().createElement("div",{className:"tyk-nav-bar__left"},o),i&&t().createElement("div",{className:"tyk-nav-bar__right"},i))),n)}zt.propTypes={align:r().string,children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),title:r().string,subtitle:r().string,pre:r().oneOfType([r().element,r().node]),left:r().oneOfType([r().element,r().node]),right:r().oneOfType([r().element,r().node]),withTabs:r().bool};const Vt=zt;function Ut({children:e}){return t().createElement("li",{className:"tyk-navigation-item"},e)}Ut.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string])};const Gt=Ut;function Kt({children:e}){return t().createElement("ul",{className:"tyk-navigation"},e)}Kt.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string])},Kt.Item=Gt;const qt=Kt,Yt=(0,e.createContext)();var Jt=Object.defineProperty,Xt=Object.defineProperties,Qt=Object.getOwnPropertyDescriptors,Zt=Object.getOwnPropertySymbols,en=Object.prototype.hasOwnProperty,tn=Object.prototype.propertyIsEnumerable,nn=(e,t,n)=>t in e?Jt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,on=(e,t)=>{for(var n in t||(t={}))en.call(t,n)&&nn(e,n,t[n]);if(Zt)for(var n of Zt(t))tn.call(t,n)&&nn(e,n,t[n]);return e},rn=(e,t)=>Xt(e,Qt(t));function sn(n){var o=n,{children:i,noPadding:r,className:s}=o,a=((e,t)=>{var n={};for(var o in e)en.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Zt)for(var o of Zt(e))t.indexOf(o)<0&&tn.call(e,o)&&(n[o]=e[o]);return n})(o,["children","noPadding","className"]);const l=(0,e.useCallback)((()=>["tyk-panel__body",s,r&&"no-padding"].filter(Boolean).join(" ")),[s,r]);return t().createElement(Yt.Consumer,null,(e=>e.collapsable?t().createElement(R,rn(on({},a),{collapsed:e.collapsed,className:l()}),i):t().createElement("div",rn(on({},a),{className:l()}),i)))}sn.propTypes={children:r().oneOfType([r().element,r().node,r().string]),noPadding:r().bool,className:r().string};const an=sn;function ln(e){const{children:n}=e;return t().createElement("div",{className:"tyk-panel__footer"},n)}ln.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const cn=ln;class un extends e.Component{getCssClasses(e){const{className:t}=this.props;let n=["tyk-panel__header"];return e.collapsable&&n.push("collapsable"),t&&(n=n.concat(t.split(" "))),n.join(" ")}render(){const{children:e}=this.props;return t().createElement(Yt.Consumer,null,(n=>{const o="blank"===n.theme?"h3":"div",i=n.collapsed?"chevron-down":"chevron-up";return t().createElement(o,{className:this.getCssClasses(n),onClick:n.collapsable?n.onToggle:void 0},e,n.collapsable?t().createElement("div",{className:`collapsable__arrow-${n.collapsibleIconPosition}`},t().createElement(g,{type:i})):null)}))}}un.propTypes={children:r().oneOfType([r().element,r().node,r().string]).isRequired,className:r().string};const hn=un;function dn(n){const{children:o,className:i,collapsed:r,collapsable:s,theme:a,onToggleCollapse:l,collapsibleIconPosition:c="right"}=n,[u,h]=(0,e.useState)(r||!1);(0,e.useEffect)((()=>{r!==u&&h(r)}),[r]);const d=(0,e.useCallback)((()=>{h(!u),l&&l(!u)}),[u,l]),p=(0,e.useMemo)((()=>({collapsable:s,collapsed:u,onToggle:d,theme:a,collapsibleIconPosition:c})),[s,u,c,a,d]);return t().createElement("div",{className:(()=>{let e=["tyk-panel"];const t=`tyk-panel--${a||"default"}`,n=`tyk-panel__icon-collapse--${c}`;return e.push(t),e.push(n),i&&(e=e.concat(i.split(" "))),u&&e.push("tyk-panel--collapsed"),e.join(" ")})()},t().createElement(Yt.Provider,{value:p},"function"==typeof o?o({toggleCollapse:d}):o))}dn.propTypes={children:r().oneOfType([r().func,r().element,r().node,r().string]),className:r().string,collapsable:r().bool,collapsibleIconPosition:r().string,collapsed:r().bool,theme:r().string,onToggleCollapse:r().func},dn.Body=an,dn.Footer=cn,dn.Header=hn;const pn=dn;function gn(e){const{children:n,className:o,theme:i}=e;return t().createElement("div",{className:(()=>{let e=["tyk-pill",...i.split(" ").map((e=>`tyk-pill--${e}`))];return o&&(e=e.concat(o)),e.join(" ")})()},n)}gn.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,theme:r().string},gn.defaultProps={theme:"default"};const mn=gn;var fn,yn,vn,bn,wn,xn,kn,Cn,$n=(e,t,n)=>{if(!t.has(e))throw TypeError("Cannot "+n)},Sn=(e,t,n)=>($n(e,t,"read from private field"),n?n.call(e):t.get(e)),En=(e,t,n)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,n)},On=(e,t,n,o)=>($n(e,t,"write to private field"),o?o.call(e,n):t.set(e,n),n);class Tn{constructor(){En(this,fn,null),En(this,yn,null),En(this,vn,null),En(this,bn,null),En(this,wn,[]),En(this,xn,[]),En(this,kn,[]),En(this,Cn,!1)}on(e,t){let n=null;"onHeightChange"===e?n=Sn(this,wn):"onDragStart"===e?n=Sn(this,xn):"onDragEnd"===e&&(n=Sn(this,kn)),n&&this.addListener(n,t)}off(e,t){let n=null;"onHeightChange"===e?n=Sn(this,wn):"onDragStart"===e?n=Sn(this,xn):"onDragEnd"===e&&(n=Sn(this,kn)),n&&this.removeListener(n,t)}setRefs(e,t,n){(Sn(this,yn)||Sn(this,vn)||Sn(this,bn))&&this.unbindEvents(),On(this,bn,e),On(this,yn,t),On(this,vn,n),On(this,fn,null),this.bindEvents()}bindEvents(){this.ensureRefs("bindEvents"),Sn(this,vn).addEventListener("mousedown",this.onMouseDown.bind(this)),document.addEventListener("mousemove",this.onMouseMove.bind(this)),document.addEventListener("mouseup",this.onMouseUp.bind(this))}getHeight(){return this.ensureRefs("getHeight"),Sn(this,yn).getBoundingClientRect().height}onMouseDown(e){this.ensureRefs("onMouseDown"),On(this,fn,{mouseDown:!0,initialRect:Sn(this,yn).getBoundingClientRect(),initialEvent:e})}onMouseMove(e){if(this.ensureRefs("onMouseMove"),!Sn(this,fn))return;if(!this.isPrimaryMouseButtonDown(e))return void this.onMouseUp();Sn(this,Cn)||(On(this,Cn,!0),this.onDragStart.bind(this)());const t=Sn(this,fn).initialEvent.y-e.y,n=Math.ceil(Sn(this,fn).initialRect.height+t);this.setHeight(`${n}px`,"mousemove")}notifyListeners(e,t){e&&Array.isArray(e)&&e.length&&e.forEach((e=>{"function"==typeof e&&e(t)}))}addListener(e,t){e&&Array.isArray(e)&&"function"==typeof t&&e.push(t)}removeListener(e,t){if(e&&Array.isArray(e)&&"function"==typeof t&&e.length){const n=e.indexOf(t);n>-1&&e.splice(n,1)}}onDragEnd(){Sn(this,Cn)&&this.notifyListeners(Sn(this,kn),this.getHeight())}onDragStart(){this.notifyListeners(Sn(this,xn),this.getHeight())}isPrimaryMouseButtonDown(e){return 1===(void 0!==e.buttons?e.buttons:e.which)}onMouseUp(){On(this,fn,null),this.onDragEnd.bind(this)(),On(this,Cn,!1)}setHeight(e){let t=e;this.ensureRefs("setHeight"),"number"==typeof t&&(t+="px"),Sn(this,yn).style.height=t,this.notifyListeners(Sn(this,wn),this.getHeight())}ensureRefs(e){if(!Sn(this,yn)||!Sn(this,vn)||!Sn(this,bn))throw new Error(`${e}: Wrapper, panel, and gutter elements are required. Use setRefs method first.`)}isHidden(){return this.ensureRefs("isHidden"),"hidden"===Sn(this,bn).style.visibility}hide(){this.ensureRefs("hide"),Sn(this,bn).style.visibility="hidden"}show(){this.ensureRefs("show"),Sn(this,bn).style.visibility="visible"}unbindEvents(){On(this,wn,[]),On(this,xn,[]),On(this,kn,[]),Sn(this,vn).removeEventListener("mousedown",this.onMouseDown.bind(this)),document.removeEventListener("mousemove",this.onMouseMove.bind(this)),document.removeEventListener("mouseup",this.onMouseUp.bind(this))}deinit(){this.unbindEvents()}}function An({children:e}){return t().createElement(t().Fragment,null,e)}function _n({children:e}){return t().createElement(t().Fragment,null,e)}fn=new WeakMap,yn=new WeakMap,vn=new WeakMap,bn=new WeakMap,wn=new WeakMap,xn=new WeakMap,kn=new WeakMap,Cn=new WeakMap,An.propTypes={children:r().instanceOf({})},_n.propTypes={children:r().instanceOf({})};const Ln=(...e)=>e.map((e=>(e||"").trim())).filter(Boolean).join(" ");function Mn({children:n,height:o,onHeightChange:i=null,onDragStart:r=null,onDragEnd:s=null,style:a=null,parentSelector:l=null,contentStyle:c,contentClassName:u,gutterClassName:h,wrapperClassName:d},p){const g=(0,e.useRef)(null),m=(0,e.useRef)(null),f=(0,e.useRef)(null),y=(0,e.useRef)(new Tn).current;(0,e.useEffect)((()=>{if(g.current&&m.current&&f.current&&y)return y.setRefs(f.current,g.current,m.current),y.on("onHeightChange",i),y.on("onDragStart",r),y.on("onDragEnd",s),y.setHeight(o,"initialize"),()=>{y.unbindEvents()}}),[]),(0,e.useImperativeHandle)(p,(()=>{const e=e=>e.bind(y);return{getHeight:e(y.getHeight),setHeight:e(y.setHeight),hide:e(y.hide),show:e(y.show),isHidden:e(y.isHidden),deinit:e(y.deinit),on:e(y.on),off:e(y.off)}}),[]);let v=null,b=null;const w=[];t().Children.forEach(n,(e=>{e&&t().isValidElement(e)&&(e.type===An?v=e:e.type===_n?b=e:w.push(e))}));const x=t().createElement("div",{className:Ln("tyk-ui-reveal-wrapper",d||"cem"),ref:f,style:a},t().createElement("div",{className:"tyk-ui-reveal-wrapper__hole"}),t().createElement("div",{ref:m,className:Ln("tyk-ui-reveal-wrapper__gutter",h)},t().createElement("div",{className:"tyk-ui-reveal-wrapper__gutter__headerleft"},v),t().createElement("div",{className:"tyk-ui-reveal-wrapper__gutter__logo"}," "),t().createElement("div",{className:"tyk-ui-reveal-wrapper__gutter__headerright"},b)),t().createElement("div",{ref:g,className:Ln("tyk-ui-reveal-wrapper__panel",u),style:c},w));if(l)return(0,ht.createPortal)(x,document.querySelector(l))}Mn.propTypes={children:r().instanceOf({}),height:r().string,onHeightChange:r().func,onDragStart:r().func,onDragEnd:r().func,parentSelector:r().string,style:r().instanceOf({}),contentStyle:r().instanceOf({}),contentClassName:r().string,gutterClassName:r().string,wrapperClassName:r().string};const Rn=(0,e.forwardRef)(Mn);Rn.HeaderLeft=An,Rn.HeaderRight=_n;const Nn=Rn,In=(0,e.createContext)(),Pn=(0,e.createContext)();var Dn=Object.defineProperty,Fn=Object.getOwnPropertySymbols,Bn=Object.prototype.hasOwnProperty,Wn=Object.prototype.propertyIsEnumerable,Hn=(e,t,n)=>t in e?Dn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,jn=(e,t)=>{for(var n in t||(t={}))Bn.call(t,n)&&Hn(e,n,t[n]);if(Fn)for(var n of Fn(t))Wn.call(t,n)&&Hn(e,n,t[n]);return e};function zn(n){const{addTab:o,hideTab:i,updateTab:r,showTab:s,children:a,selectedPath:l,tabData:c,tabsId:u,tabExists:h,path:d,rendered:p,hideTabContent:g,tabs:m}=n;(0,e.useEffect)((()=>{const e=jn({},c);h(d)||o(e,d)}),[c,d]);const f=me(c);(0,e.useEffect)((()=>{if(h(d)&&(null==c?void 0:c.title)&&((null==f?void 0:f.title)!==(null==c?void 0:c.title)||(null==f?void 0:f.selected)!==c.selected)){const e=jn({},c);r(e,d)}}),[c,d,f,m]),(0,e.useEffect)((()=>(s(d),()=>i(d))),[]);const y=(0,e.useMemo)((()=>!!Object.keys(m).length&&!g&&!1!==m[c.id].show&&(p?l&&l.indexOf(c.id)>-1:h(d))),[g,p,l,c,m]),v=(0,e.useMemo)((()=>({path:d,tabsId:u})),[d,u]);return y?t().createElement("div",{key:c.id,className:"tyk-tab__content",style:{display:l&&l.indexOf(c.id)>-1?"block":"none"}},t().createElement(Pn.Provider,{value:v},a)):null}zn.propTypes={addTab:r().func,updateTab:r().func,hideTab:r().func,showTab:r().func,children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),path:r().instanceOf(Array),hideTabContent:r().bool,rendered:r().bool,selectedPath:r().instanceOf(Array),tabExists:r().func,tabsId:r().string,tabData:r().instanceOf(Object),tabs:r().instanceOf(Object)};const Vn=zn;function Un(n){const{id:o}=n,i=(0,e.useContext)(In),r=(0,e.useContext)(Pn),{tabExists:s,selectedPath:a,addTab:l,updateTab:c,hideTab:u,showTab:h,rendered:d,hideTabContent:p,tabs:g}=i,{children:m}=n,[f,y]=(0,e.useState)("");return(0,e.useEffect)((()=>{let e;e=r&&f&&r.tabsId===i.id?r.path.concat([o]):[o],y(e)}),[r]),f?t().createElement(Vn,{addTab:l,updateTab:c,hideTab:u,showTab:h,tabExists:s,tabData:n,path:f,tabsId:i.id,selectedPath:a,rendered:d,hideTabContent:p,tabs:g},m):null}Un.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),id:r().string},Un.defaultProps={};const Gn=Un;var Kn=Object.defineProperty,qn=Object.getOwnPropertySymbols,Yn=Object.prototype.hasOwnProperty,Jn=Object.prototype.propertyIsEnumerable,Xn=(e,t,n)=>t in e?Kn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Qn=(e,t)=>{for(var n in t||(t={}))Yn.call(t,n)&&Xn(e,n,t[n]);if(qn)for(var n of qn(t))Jn.call(t,n)&&Xn(e,n,t[n]);return e};function Zn(n){const{children:o,className:i,id:r,onTabChange:s,type:a,hideTabContent:l}=n,[c,u]=(0,e.useState)({}),[h,d]=(0,e.useState)([]),[p,m]=(0,e.useState)(!1),[f,y]=(0,e.useState)(null);(0,e.useEffect)((()=>{d(f)}),[f]);const v=(e,t)=>{const n=e.slice(0);let o=!0;t.collapsible&&(n.push(Object.keys(t.tabs)[0]),o=!1),u((t=>{let n=Qn({},t);return n=((e,t)=>{let n=Qn({},e);const o=t.slice(0);for(;o.length>1;)n=n[o.shift()];const i=o.shift();return void 0===n[i].collapsed?n[i].collapsed=!0:n[i].collapsed=!n[i].collapsed,n})(n,e),n})),d(n),m(o),s&&s(t)},b=e=>{const t=[];return h&&h.indexOf(e)>-1&&t.push("active"),t.join(" ")},w=(e,n)=>e?t().createElement("ul",null,Object.keys(e).map(((o,i)=>{const r=n?n.concat([e[o].id]):[e[o].id],s=e[o].collapsed?"chevron-up":"chevron-down";return!1===e[o].show?null:t().createElement("li",{className:b(e[o].id),key:e[o].id},t().createElement("button",{type:"button",onClick:v.bind(null,r,e[o]),onKeyDown:v.bind(null,r,e[o]),tabIndex:i},e[o].title,e[o].collapsible?t().createElement(g,{className:"collapsable-arrow",type:s}):null),e[o].collapsible?t().createElement(R,{collapsed:e[o].collapsed},w(e[o].tabs,r)):w(e[o].tabs,r))}))):null,x=(e,t)=>{u((n=>((e,t,n)=>{let o=Qn({},e);const i=Qn({},n),r=t.slice(0);for(;r.length>1;)o=o[r.shift()],o||(o={});return i.tempPath=r,o[r.shift()]=i,o})(Qn({},n),t,e))),e.selected&&y(t)},k=(e,t)=>{u((t=>{const n=Qn({},t);return n[e.id]=e,n})),e.selected&&v(t,e)},C=e=>{u((t=>{const n=Qn({},t);return n[e].show=!1,n}))},$=e=>{u((t=>{const n=Qn({},t);return n[e].show=!0,n}))},S=e=>{let t=Qn({},c);const n=e.slice(0);for(;n.length>1;)t=t[n.shift()];const o=n.shift();return Boolean(null==t?void 0:t[o])},E=(0,e.useMemo)((()=>({id:r,addTab:x,hideTab:C,updateTab:k,showTab:$,tabExists:S,selectedPath:h,rendered:p,hideTabContent:l,tabs:c})),[r,x,C,k,$,S,h,p,l,c]);return t().createElement("div",{className:(()=>{let e=["tyk-tabs"];return e.push(`tyk-tabs--${a||"default"}`),i&&(e=e.concat(i.split(" "))),e.join(" ")})()},w(c),t().createElement(In.Provider,{value:E},"function"==typeof o?o({hideTab:C,showTab:$}):o))}Zn.propTypes={className:r().string,children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),hideTabContent:r().bool,id:r().string,onTabChange:r().func,type:r().string},Zn.Tab=Gn;const eo=Zn;var to=Object.defineProperty,no=Object.getOwnPropertySymbols,oo=Object.prototype.hasOwnProperty,io=Object.prototype.propertyIsEnumerable,ro=(e,t,n)=>t in e?to(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,so=(e,t)=>{for(var n in t||(t={}))oo.call(t,n)&&ro(e,n,t[n]);if(no)for(var n of no(t))io.call(t,n)&&ro(e,n,t[n]);return e};function ao(n){var o=n,{render:i,className:r,children:s,position:a="auto",style:l,icon:c=!1,closable:u,isOpened:h=!1,additionalClickParents:d=[]}=o,p=((e,t)=>{var n={};for(var o in e)oo.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&no)for(var o of no(e))t.indexOf(o)<0&&io.call(e,o)&&(n[o]=e[o]);return n})(o,["render","className","children","position","style","icon","closable","isOpened","additionalClickParents"]);const[m,f]=(0,e.useState)(!1),y=(0,e.useRef)(null),v=(0,e.useRef)(null),b=u?{onClick:()=>f(!0)}:{onMouseEnter:()=>f(!0),onMouseLeave:()=>f(!1),onFocus:()=>f(!0),onBlur:()=>f(!1)},w=(0,e.useCallback)((e=>{[...d,v.current].some((t=>{var n;return null==(n=null==t?void 0:t.contains)?void 0:n.call(t,e.target)}))||f(!1)}),[d]);(0,e.useEffect)((()=>(document.addEventListener("click",w,!0),()=>document.removeEventListener("click",w,!0))),[w]),(0,e.useEffect)((()=>{f(h)}),[h]);const x=["tyk-tooltip",r].filter(Boolean).join(" ");return t().createElement("div",so(so({className:"tyk-tooltip__wrapper",style:so({display:"inline-block"},l),ref:y},b),p),s,m&&t().createElement(Pt,{element:y,forceDisplay:a,preferredPosition:"top",offset:20},t().createElement("div",{className:x,ref:v},c&&(!0===c?t().createElement(g,{type:"question"}):c),t().createElement("div",{className:"tyk-tooltip__content"},i),u&&t().createElement(g,{type:"xmark",onClick:e=>{e.stopPropagation(),f(!1)}}))))}ao.propTypes={children:r().node.isRequired,style:r().instanceOf(Object),position:r().string,render:r().oneOfType([r().node,r().string]),className:r().string,icon:r().oneOfType([r().bool,r().node]),closable:r().bool,isOpened:r().bool,additionalClickParents:r().instanceOf(Array)};const lo=ao;function co({text:e,limit:n,position:o}){return e.length>n?t().createElement(lo,{render:e,position:o},e.substring(0,n),"..."):e}co.propTypes={text:r().string,limit:r().number,position:r().string};const uo=co;function ho(n){const{value:o=0,totalNrOfPages:i,onChange:r}=n,[s,a]=(0,e.useState)(o),l=(0,e.useMemo)((()=>function(e,t){let n;const o=[];for(n=0;n<=e;n+=1)i=n,r=t,((s=e)<10||r<5&&i<5||r>s-5&&i>s-5||i>=r-2&&i<=r+2||[0,1,s-1,s].includes(i))&&(n>o.at(-1)&&o.push(`...-${n}`),o.push(n+1));var i,r,s;return o}(i,s)),[s,i]);function c(e){a(e),r&&r(e)}return i?t().createElement("ul",{className:"tyk-pagination"},s>0&&i>5&&t().createElement("li",null,t().createElement("button",{onClick:()=>c(s-1),type:"button"},"Previous")),l.map((e=>t().createElement("li",{key:e,className:s===e-1?"active":""},String(e).startsWith("...")?t().createElement("span",null,"..."):t().createElement("button",{onClick:()=>c(e-1),type:"button"},e)))),s5&&t().createElement("li",null,t().createElement("button",{onClick:()=>c(s+1),type:"button"},"Next"))):null}ho.propTypes={value:r().number,totalNrOfPages:r().number,onChange:r().func};const po=ho,go=(0,e.createContext)();function mo({column:n}){const{sortable:o}=n,[i,r]=(0,e.useState)((null==o?void 0:o.default)||"ASC"),{state:s,sendMessage:a}=(0,e.useContext)(go);return t().createElement("th",{key:n.id,onClick:o?()=>{a("sort",{column:n,sortOrder:i}),r("ASC"===i?"DESC":"ASC")}:null,className:s.maxHeight?"fixed-header":""},n.name,n.sortable&&t().createElement("span",{className:"header-sort"},t().createElement(g,{family:"tykon",type:"arrowsort"})))}mo.propTypes={column:r().instanceOf(Object)};var fo=Object.defineProperty,yo=Object.defineProperties,vo=Object.getOwnPropertyDescriptors,bo=Object.getOwnPropertySymbols,wo=Object.prototype.hasOwnProperty,xo=Object.prototype.propertyIsEnumerable,ko=(e,t,n)=>t in e?fo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Co=(e,t)=>{for(var n in t||(t={}))wo.call(t,n)&&ko(e,n,t[n]);if(bo)for(var n of bo(t))xo.call(t,n)&&ko(e,n,t[n]);return e},$o=(e,t)=>yo(e,vo(t));function So({allRowsSelected:n}){const{state:o,sendMessage:i}=(0,e.useContext)(go),{columns:r,selectable:s}=o,a=()=>{var e;const r=s.type;return t().createElement("th",{className:o.maxHeight?"fixed-header":""},(null==s?void 0:s.allowSelectAll)?t().createElement("div",{className:null==s?void 0:s.style},t().createElement(r,$o(Co({},s.values),{value:n,onChange:e=>{var t,n;const o="input"===(null==(t=null==e?void 0:e.target)?void 0:t.tagName.toLowerCase())&&"checkbox"===(null==(n=null==e?void 0:e.target)?void 0:n.type.toLowerCase());i("header.selectAll.change",o?e.target.checked:Boolean(e))}}),null==(e=s.values)?void 0:e.value)):s.name||"Select")};return t().createElement("thead",null,t().createElement("tr",null,"LEFT"===(null==s?void 0:s.position)&&a(),r.map((e=>t().createElement(mo,{key:e.id,column:e}))),"RIGHT"===(null==s?void 0:s.position)&&a()))}So.propTypes={allRowsSelected:r().bool};var Eo=Object.defineProperty,Oo=Object.defineProperties,To=Object.getOwnPropertyDescriptors,Ao=Object.getOwnPropertySymbols,_o=Object.prototype.hasOwnProperty,Lo=Object.prototype.propertyIsEnumerable,Mo=(e,t,n)=>t in e?Eo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ro=(e,t)=>{for(var n in t||(t={}))_o.call(t,n)&&Mo(e,n,t[n]);if(Ao)for(var n of Ao(t))Lo.call(t,n)&&Mo(e,n,t[n]);return e};class No extends e.Component{getCssClasses(){const{inline:e,disabled:t,readOnly:n,theme:o="",wrapperClassName:i=""}=this.props,r=[i];return r.push("tyk-checkbox"),e&&r.push("tyk-checkbox--inline"),o.trim()&&r.push(...o.split(" ").map((e=>`tyk-checkbox--theme-${e}`))),(t||n)&&r.push("tyk-checkbox--is-disabled"),r.join(" ")}displayError(){const{error:e}=this.props;return e?t().createElement("p",{className:"tyk-form-control__error-message"},e):null}displayNote(){const{note:e}=this.props;return e?t().createElement("p",{className:"tyk-form-control__help-block"},e):null}render(){const e=this.props,{input:n,value:o,label:i}=e,r=((e,t)=>{var n={};for(var o in e)_o.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ao)for(var o of Ao(e))t.indexOf(o)<0&&Lo.call(e,o)&&(n[o]=e[o]);return n})(e,["input","value","label"]);return t().createElement("div",{className:this.getCssClasses()},t().createElement("div",{className:"tyk-form-control__wrapper"},t().createElement("label",null,t().createElement("input",(s=Ro(Ro({checked:n?n.value:o},n),r),Oo(s,To({type:"checkbox"})))),i),this.displayNote(),this.displayError()));var s}}No.propTypes={disabled:r().bool,readOnly:r().bool,inline:r().bool,theme:r().string,error:r().oneOfType([r().string,r().bool]),note:r().string,input:r().instanceOf(Object),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),name:r().string,value:r().oneOfType([r().string,r().bool]),checked:r().oneOfType([r().string,r().bool]),onChange:r().func,wrapperClassName:r().string};const Io=No;var Po=Object.defineProperty,Do=Object.getOwnPropertySymbols,Fo=Object.prototype.hasOwnProperty,Bo=Object.prototype.propertyIsEnumerable,Wo=(e,t,n)=>t in e?Po(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ho=(e,t)=>{for(var n in t||(t={}))Fo.call(t,n)&&Wo(e,n,t[n]);if(Do)for(var n of Do(t))Bo.call(t,n)&&Wo(e,n,t[n]);return e};function jo({col:e,row:n}){var o,i,r,s,a;if(!n.values[e.id])return t().createElement("td",null);if("string"===e.type)return t().createElement("td",Ho({className:(null==(o=n.values[e.id].styling)?void 0:o.className)||null},null==(i=n.values[e.id])?void 0:i.events),null==(r=n.values[e.id])?void 0:r.value);const l=e.type;return t().createElement("td",Ho({className:(null==(s=n.values[e.id].styling)?void 0:s.className)||null},null==(a=n.values[e.id])?void 0:a.events),t().createElement(l,Ho({},n.values[e.id].props),n.values[e.id].children?n.values[e.id].children:null))}function zo({row:n,index:o}){var i,r;const{state:s,sendMessage:a}=(0,e.useContext)(go),{columns:l,selectable:c}=s,u=(0,e.useCallback)((()=>t().createElement("td",null,t().createElement(Io,{value:n.selected,onChange:e=>a("row.selected",{index:o,selected:e.target.checked})}))),[n.selected,o]);return t().createElement("tr",{onClick:null==(i=n.events)?void 0:i.onClick,className:null==(r=n.styling)?void 0:r.className},c&&"LEFT"===c.position&&u(),l.map((e=>t().createElement(jo,{key:e.id,col:e,row:n,index:o}))),c&&"RIGHT"===c.position&&u())}function Vo(){const{state:n}=(0,e.useContext)(go),{rows:o}=n;return t().createElement("tbody",null,o.map(((e,n)=>t().createElement(zo,{key:n,row:e,index:n}))))}jo.propTypes={col:r().instanceOf(Object),row:r().instanceOf(Object),index:r().number},zo.propTypes={row:r().instanceOf(Object),index:r().number};var Uo=Object.defineProperty,Go=Object.defineProperties,Ko=Object.getOwnPropertyDescriptors,qo=Object.getOwnPropertySymbols,Yo=Object.prototype.hasOwnProperty,Jo=Object.prototype.propertyIsEnumerable,Xo=(e,t,n)=>t in e?Uo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Qo=(e,t)=>{for(var n in t||(t={}))Yo.call(t,n)&&Xo(e,n,t[n]);if(qo)for(var n of qo(t))Jo.call(t,n)&&Xo(e,n,t[n]);return e},Zo=(e,t)=>Go(e,Ko(t));function ei({value:n,onChange:o,noDataMessage:i,loading:r,infiniteScrolling:s}){var a;const[l,c]=(0,e.useState)(null),[u,h]=(0,e.useState)("api"),d=(0,e.useRef)(null),p=(0,e.useCallback)(((e,t)=>{c((n=>Zo(Qo({},n),{sort:{order:t,col:e}})))}),[]),g=(0,e.useCallback)((e=>{c((t=>Zo(Qo({},t),{rows:t.rows.map((t=>Zo(Qo({},t),{selected:e})))})))}),[]),m=(0,e.useCallback)((({index:e,selected:t})=>{c((n=>Zo(Qo({},n),{rows:[...n.rows.slice(0,e),Zo(Qo({},n.rows[e]),{selected:t}),...n.rows.slice(e+1)]})))}),[]),f=(0,e.useCallback)((e=>{c((t=>Zo(Qo({},t),{pagination:Zo(Qo({},t.pagination),{current:e+1})})))}),[]),y={getState:()=>l,setState:e=>c(e)},v=(0,e.useCallback)(((e,t)=>{h(e),"sort"===e&&p(t.column.id,t.sortOrder),"header.selectAll.change"===e&&g(t),"row.selected"===e&&m(t),"pagination.change"===e&&f(t)}),[p,g,m,f]),b=(0,e.useMemo)((()=>({state:l,sendMessage:v})),[l,v]);if((0,e.useEffect)((()=>c(n)),[n]),(0,e.useEffect)((()=>{o&&o(u,l,y),h("api")}),[l]),!l)return t().createElement(ye,{position:"absolute"});if(l.rows<=0)return t().createElement(be,{theme:"info"},i||"No Data Available");const w=()=>t().createElement("table",{className:"tyk-table",ref:d},t().createElement(So,{allRowsSelected:l.rows.every((({selected:e})=>e))}),t().createElement(Vo,null));return t().createElement(go.Provider,{value:b},t().createElement("div",{className:`scrollable ${(null==(a=l.styling)?void 0:a.className)||""}`,style:{height:l.maxHeight?l.maxHeight:"auto",position:"relative"}},r&&t().createElement(ye,{position:"absolute",withbackground:!0}),s&&l.pagination?t().createElement(At,{refChild:d,hasMore:l.pagination.totalPages>l.pagination.current,loadMore:e=>v("pagination.change",e),pageNumber:l.pagination.current-1,initialLoad:!1},w()):w()),l.pagination&&!s&&t().createElement("div",{className:"new-table-pagination"},t().createElement(po,{value:l.pagination.current-1,nrItemsOnPage:l.pagination.perPage-1,totalNrOfPages:l.pagination.totalPages-1,onChange:e=>v("pagination.change",e)})))}ei.propTypes={value:r().shape({columns:r().arrayOf(r().shape({id:r().string.isRequired,name:r().string,type:r().oneOfType([r().string,r().element,r().func]),sortable:r().oneOfType([r().bool,r().shape({default:r().string})])})),rows:r().arrayOf(r().shape({})),selectable:r().shape({}),pagination:r().shape({}),maxHeight:r().string,styling:r().shape({className:r().string})}).isRequired,onChange:r().func,noDataMessage:r().string,loading:r().bool,infiniteScrolling:r().bool},ei.defaultProps={loading:!1,infiniteScrolling:!1,noDataMessage:"No Data Available",onChange:null};const ti=ei;var ni=Object.defineProperty,oi=Object.getOwnPropertySymbols,ii=Object.prototype.hasOwnProperty,ri=Object.prototype.propertyIsEnumerable,si=(e,t,n)=>t in e?ni(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function ai(e){var n=e,{children:o,align:i,className:r,offset:s,size:a}=n,l=((e,t)=>{var n={};for(var o in e)ii.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&oi)for(var o of oi(e))t.indexOf(o)<0&&ri.call(e,o)&&(n[o]=e[o]);return n})(n,["children","align","className","offset","size"]);const c=["tyk-col",r,i&&`tyk-col--align-${i}`,...a.split(" ").map((e=>`tyk-col--${e}`)),...(s?s.split(" "):[]).map((e=>`tyk-col--offset-${e}`))].filter(Boolean).join(" ");return t().createElement("div",((e,t)=>{for(var n in t||(t={}))ii.call(t,n)&&si(e,n,t[n]);if(oi)for(var n of oi(t))ri.call(t,n)&&si(e,n,t[n]);return e})({className:c},l),o)}ai.propTypes={align:r().string,className:r().string,size:r().string.isRequired,offset:r().string,children:r().oneOfType([r().element,r().string,r().object,r().node])};const li=ai;var ci=Object.defineProperty,ui=Object.defineProperties,hi=Object.getOwnPropertyDescriptors,di=Object.getOwnPropertySymbols,pi=Object.prototype.hasOwnProperty,gi=Object.prototype.propertyIsEnumerable,mi=(e,t,n)=>t in e?ci(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function fi(e){var n=e,{className:o,nogutters:i,children:r}=n,s=((e,t)=>{var n={};for(var o in e)pi.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&di)for(var o of di(e))t.indexOf(o)<0&&gi.call(e,o)&&(n[o]=e[o]);return n})(n,["className","nogutters","children"]);const a=["tyk-row",o,i&&"no-gutters",i&&"tyk-row--gutterless"].filter(Boolean).join(" ");return t().createElement("div",(l=((e,t)=>{for(var n in t||(t={}))pi.call(t,n)&&mi(e,n,t[n]);if(di)for(var n of di(t))gi.call(t,n)&&mi(e,n,t[n]);return e})({},s),ui(l,hi({className:a}))),r);var l}fi.propTypes={children:r().oneOfType([r().element,r().node]),className:r().string,nogutters:r().bool};const yi=fi,vi=(0,e.createContext)();function bi(n){const{customdropdownitem:o,children:i,eventKey:r,href:s,target:a,title:l,onClick:c}=n,u=(0,e.useCallback)(((e,t)=>{e.onSelectItem(r,t),c&&c(r)}),[]);return t().createElement(vi.Consumer,null,(c=>t().createElement("li",{onClick:()=>u(c,n),onKeyUp:()=>{}},o?(0,e.cloneElement)(o,{}):t().createElement("a",{href:s,target:a},r&&c.selectedItem===r&&c.showCheckmark?t().createElement(g,{type:"check"}):null,t().createElement("span",null,l||i)))))}bi.propTypes={children:r().oneOfType([r().element,r().node,r().string]),customdropdownitem:r().oneOfType([r().arrayOf(r().node),r().node,r().element]),eventKey:r().string,href:r().string,target:r().string,onClick:r().func,title:r().string};const wi=bi;var xi=Object.defineProperty,ki=Object.getOwnPropertySymbols,Ci=Object.prototype.hasOwnProperty,$i=Object.prototype.propertyIsEnumerable,Si=(e,t,n)=>t in e?xi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Ei extends e.Component{static isElemInRightView(e,t){const n=window.innerWidth;return e.getBoundingClientRect().left+t<=n}static isElemInBottomView(e,t){const n=window.innerHeight,o=e.getBoundingClientRect(),i=e.clientHeight;return o.top+i+t<=n}constructor(t){super(t);const{selectedItem:n,open:o}=this.props;this.state={opened:o,selectedItem:n||null},this.dropdownRef=(0,e.createRef)(),this.dropdownListRef=(0,e.createRef)(),this.dropdownButtonRef=(0,e.createRef)(),this.onSelectItem=this.onSelectItem.bind(this),this.toggleDropdown=this.toggleDropdown.bind(this),this.handleClickOutside=this.handleClickOutside.bind(this)}componentDidMount(){document.addEventListener("mousedown",this.handleClickOutside),this.dropdownListRef.current&&this.getStyles()}componentDidUpdate(e){const{open:t}=this.props,{opened:n}=this.state;this.dropdownListRef.current&&this.getStyles(),e.open||!0!==t||n||this.toggleDropdown(),e.open&&!1===t&&n&&this.closeDropdown()}componentWillUnmount(){document.removeEventListener("mousedown",this.handleClickOutside)}handleClickOutside(e){this.dropdownListRef.current&&!this.dropdownListRef.current.contains(e.target)&&this.dropdownRef.current&&!this.dropdownRef.current.contains(e.target)&&this.closeDropdown()}onSelectItem(e,t){const{closeOnSelect:n,onSelect:o}=this.props,i={selectedItem:e,selectedItemProps:t};n&&(i.opened=!1),this.setState(i),o&&"function"==typeof o&&o(e)}getStyles(){const{display:e,position:t,offset:n}=this.props,o=this.dropdownListRef.current;if(n)return o.style.top=`${n.top}`,void(o.style.left=`${n.left}`);const i=Math.max(document.documentElement.scrollTop,document.body.scrollTop,window.scrollY),r=this.dropdownRef.current,s=r.clientHeight,a=o?o.clientHeight:0,l=o?o.clientWidth:0,c=r.getBoundingClientRect(),{left:u,top:h}=c;let d=0,p=u;d=Ei.isElemInBottomView(r,a)?h+i+s:h+i-a-5,Ei.isElemInRightView(r,l)||(p=u+r.clientWidth-l),"relative"!==t&&(o.style.top=`${d}px`,"block"!==e&&(o.style.left=`${p}px`)),"block"!==e&&(o.style.minWidth=`${this.dropdownButtonRef.current.clientWidth}px`)}getWrapperCssClasses(){const{btnGroup:e,btnGroupSize:t,className:n,btnTheme:o,wrapperClassName:i=""}=this.props;let r=[i,"tyk-dropdown"];return r.push(`theme-${o||"default"}`),n&&(r=r.concat(n.split(" "))),e&&(r.push("tyk-button-group"),r.push(t?`tyk-button-group--${t}`:"tyk-button-group--md")),r.join(" ")}getCssClasses(){const{opened:e}=this.state,{hasCustomContent:t,display:n,listclassnames:o,position:i,maxHeight:r}=this.props;let s=["tyk-dropdown-menu","tyk-dropdown"];return r&&s.push("tyk-dropdown--scrollable"),e&&s.push("opened"),o&&(s=s.concat(o.split(" "))),n&&s.push("tyk-dropdown--block"),t&&s.push("tyk-dropdown--custom"),"relative"===i&&s.push("tyk-dropdown--relative"),s.join(" ")}getBtnTitle(){const{btnTitle:e,stopButtonTextChange:t}=this.props,{selectedItemProps:n}=this.state;return!t&&(null==n?void 0:n.title)?n.title:e}closeDropdown(){const{onClose:e}=this.props;this.setState({opened:!1},(()=>{e&&e()}))}toggleDropdown(){const{opened:e}=this.state;e?this.closeDropdown():this.setState({opened:!0})}render(){const{appendTo:e,btnClassName:n,btnSize:o,customBtnTitle:i,hasCustomContent:r,btnTheme:s,children:a,label:l,showDropdownIcon:c,showTriggerButton:u,showCheckmark:h,disabled:d=!1,maxHeight:p}=this.props,{selectedItem:g,opened:m}=this.state,f=r?"div":"ul";return t().createElement("div",{className:this.getWrapperCssClasses(),ref:this.dropdownRef},l?t().createElement("label",{className:"font-family-medium"},l):null,u?t().createElement(U,{className:`tyk-dropdown__trigger ${m?"tyk-dropdown__trigger--opened ":" "} ${n}`,theme:s||"default",onClick:this.toggleDropdown,iconType:c?"chevron-down":null,iconPosition:"right",size:o||"md",type:"button",disabled:d,ref:this.dropdownButtonRef},i||this.getBtnTitle()):null,m?dt().createPortal(t().createElement(vi.Provider,{value:{onSelectItem:this.onSelectItem,selectedItem:g,showCheckmark:h}},m?t().createElement(f,((e,t)=>{for(var n in t||(t={}))Ci.call(t,n)&&Si(e,n,t[n]);if(ki)for(var n of ki(t))$i.call(t,n)&&Si(e,n,t[n]);return e})({className:this.getCssClasses(),ref:this.dropdownListRef},p&&{style:{maxHeight:p}}),"function"==typeof a?a({closeDropdown:this.closeDropdown.bind(this)}):a):null),document.querySelector(e||"body")):null)}}Ei.propTypes={appendTo:r().string,children:r().oneOfType([r().element,r().node,r().string,r().func]),closeOnSelect:r().bool,btnClassName:r().string,btnSize:r().string,btnGroupSize:r().string,btnTheme:r().string,btnTitle:r().oneOfType([r().node,r().element,r().string]),customBtnTitle:r().oneOfType([r().node,r().element,r().string]),btnGroup:r().bool,className:r().string,display:r().string,disabled:r().bool,hasCustomContent:r().bool,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),listclassnames:r().string,onClose:r().func,onSelect:r().func,open:r().bool,offset:r().instanceOf(Object),position:r().string,selectedItem:r().string,showDropdownIcon:r().bool,stopButtonTextChange:r().bool,showTriggerButton:r().bool,showCheckmark:r().bool,maxHeight:r().string,wrapperClassName:r().string},Ei.defaultProps={closeOnSelect:!1,showDropdownIcon:!0,showTriggerButton:!0,showCheckmark:!0,open:!1},Ei.Item=wi;const Oi=Ei;var Ti=Object.defineProperty,Ai=Object.getOwnPropertySymbols,_i=Object.prototype.hasOwnProperty,Li=Object.prototype.propertyIsEnumerable,Mi=(e,t,n)=>t in e?Ti(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Ri({title:e,theme:n="primary",splitTrigger:o,toggle:i,onTriggerClick:r,value:s},a){return o?t().createElement(K,{ref:a},t().createElement(U,((e,t)=>{for(var n in t||(t={}))_i.call(t,n)&&Mi(e,n,t[n]);if(Ai)for(var n of Ai(t))Li.call(t,n)&&Mi(e,n,t[n]);return e})({theme:n},r&&{onClick:()=>r(s)}),e),t().createElement(U,{className:"dropdown__trigger",iconType:"chevron-down",iconFamily:"tykon",iconPosition:"right",theme:n,onClick:i,iconOnly:!0})):t().createElement(U,{className:"dropdown__trigger",iconType:"chevron-down",iconFamily:"tykon",iconPosition:"right",theme:n,ref:a,onClick:i},e)}Ri.propTypes={title:r().string,theme:r().string,splitTrigger:r().bool,toggle:r().func,dropdownRef:r().shape({current:r().instanceOf(Element)}).isRequired,onTriggerClick:r().func,value:r().oneOfType([r().string,r().number])};const Ni=(0,e.forwardRef)(Ri);var Ii=Object.defineProperty,Pi=Object.getOwnPropertySymbols,Di=Object.prototype.hasOwnProperty,Fi=Object.prototype.propertyIsEnumerable,Bi=(e,t,n)=>t in e?Ii(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Wi=(e,t)=>{for(var n in t||(t={}))Di.call(t,n)&&Bi(e,n,t[n]);if(Pi)for(var n of Pi(t))Fi.call(t,n)&&Bi(e,n,t[n]);return e};function Hi({children:e,element:n,maxWidth:o},i){return t().createElement(Pt,{element:n,ref:i,className:"dropdown__menu",position:"bottom",alignment:"auto",offset:5,arrow:!0},t().createElement(jt,{style:Wi({},o&&{maxWidth:o}),theme:"primary"},e))}Hi.propTypes={element:r().shape({current:r().instanceOf(Element)}),children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),maxWidth:r().string};const ji=(0,e.forwardRef)(Hi),zi=(0,e.createContext)();var Vi=Object.defineProperty,Ui=Object.getOwnPropertySymbols,Gi=Object.prototype.hasOwnProperty,Ki=Object.prototype.propertyIsEnumerable,qi=(e,t,n)=>t in e?Vi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Yi=(e,t)=>{for(var n in t||(t={}))Gi.call(t,n)&&qi(e,n,t[n]);if(Ui)for(var n of Ui(t))Ki.call(t,n)&&qi(e,n,t[n]);return e};function Ji({children:n,value:o}){const{onChange:i,value:r}=(0,e.useContext)(zi);return t().createElement(jt.Item,Yi({},o===r&&{selected:!0}),t().createElement("a",Yi({},i&&{onClick:()=>i(o)}),n))}Ji.propTypes={children:r().node,value:r().any};const Xi=Ji;function Qi({children:n,title:o,theme:i,splitTrigger:r,onChange:s,value:a,setSelectedValueAsTitle:l,maxWidth:c,onTriggerClick:u}){const{isOpen:h,toggle:d,dropdownRef:p,dropdownListRef:g}=(({splitTrigger:t})=>{const[n,o]=(0,e.useState)(!1),i=(0,e.useRef)(null),r=(0,e.useRef)(null),s=(0,e.useCallback)((e=>{const s=t?i.current.querySelector(".dropdown__trigger"):i.current;!n||s.contains(e.target)||r.current.contains(e.target)||o(!1)}),[n]);return(0,e.useEffect)((()=>(document.addEventListener("mousedown",s),()=>{document.removeEventListener("mousedown",s)})),[s]),{isOpen:n,toggle:()=>o(!n),dropdownRef:i,dropdownListRef:r}})({splitTrigger:r}),m=(0,e.useMemo)((()=>({onChange:s,value:a})),[s,a]);return t().createElement(zi.Provider,{value:m},t().createElement(Ni,{title:l?a:o,onTriggerClick:u,theme:i,splitTrigger:r,toggle:d,ref:p,value:a}),h&&t().createElement(ji,{element:p,ref:g,maxWidth:c},n))}Qi.propTypes={title:r().string,theme:r().string,children:r().node,splitTrigger:r().bool,onChange:r().func,value:r().oneOfType([r().string,r().number]),setSelectedValueAsTitle:r().bool,maxWidth:r().string,onTriggerClick:r().func},Qi.Item=Xi;const Zi=Qi;var er=n(239),tr=n.n(er);const nr=require("react-ace");var or=n.n(nr);n(395),n(576),n(7),n(549),n(252),n(202),n(711),n(604),n(134),n(203);const ir=n.p+"ee385296b124aae4e5d9.js";var rr=Object.defineProperty,sr=Object.defineProperties,ar=Object.getOwnPropertyDescriptors,lr=Object.getOwnPropertySymbols,cr=Object.prototype.hasOwnProperty,ur=Object.prototype.propertyIsEnumerable,hr=(e,t,n)=>t in e?rr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,dr=(e,t)=>{for(var n in t||(t={}))cr.call(t,n)&&hr(e,n,t[n]);if(lr)for(var n of lr(t))ur.call(t,n)&&hr(e,n,t[n]);return e};function pr(n){const{disabled:o,readOnly:i,disableValidation:r,id:s,error:a,label:l,labelwidth:c,note:u,onBlur:h,onChange:d,theme:p,value:g,setOptions:m,wrapperClassName:f}=n,y=["tyk-form-group",f,...p?p.split(" ").map((e=>`tyk-form-group--${e}`)):[],c&&"tyk-form-group--label-has-width",a&&"has-error"].filter(Boolean).join(" "),v=dr(dr({},m),r&&{useWorker:!1}),b=(0,e.useCallback)((()=>a&&"true"!==a&&"false"!==a?t().createElement("p",{className:"tyk-form-control__error-message"},a):null),[a]),w=(0,e.useCallback)((()=>c?{flexBasis:c}:{}),[c]),x=(0,e.useCallback)((()=>c?{flexBasis:`calc(100% - ${c} - 20px)`}:{}),[c]),k=(0,e.useCallback)((e=>{d&&d(e)}),[d]),C=(0,e.useCallback)((()=>{h&&h(g)}),[h,g]);return t().createElement("div",{className:y},l?t().createElement("label",{htmlFor:s,style:w()},l):null,t().createElement("div",{className:"tyk-form-control__wrapper",style:x()},t().createElement(or(),($=dr({className:"tyk-form-control"},n),sr($,ar({onChange:k,onBlur:C,theme:"github",editorProps:{$blockScrolling:!0},readOnly:i||o,onLoad:e=>{e.container.style.resize="both",document.addEventListener("mouseup",(()=>e.resize()))},setOptions:v})))),u?t().createElement("p",{className:"tyk-form-control__help-block"},u):null,b()));var $}tr().config.setModuleUrl("ace/mode/json_worker",ir),pr.propTypes={disabled:r().bool,readOnly:r().bool,disableValidation:r().bool,id:r().string,error:r().oneOfType([r().string,r().bool]),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,mode:r().string,name:r().string,note:r().string,onBlur:r().func,onChange:r().func,theme:r().string,value:r().string,setOptions:r().instanceOf(Object),wrapperClassName:r().string};const gr=pr;var mr=Object.defineProperty,fr=Object.defineProperties,yr=Object.getOwnPropertyDescriptors,vr=Object.getOwnPropertySymbols,br=Object.prototype.hasOwnProperty,wr=Object.prototype.propertyIsEnumerable,xr=(e,t,n)=>t in e?mr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,kr=(e,t)=>{for(var n in t||(t={}))br.call(t,n)&&xr(e,n,t[n]);if(vr)for(var n of vr(t))wr.call(t,n)&&xr(e,n,t[n]);return e};const Cr=(e,t,n)=>n||(e||t?[]:null);class $r extends e.Component{static closeList(){return{cursor:-1,opened:!1}}static openList(){return{opened:!0}}static filterByName(e,t){return e.name.toLowerCase().indexOf(t)>-1}constructor(t){super(t);const{multiple:n,tags:o,value:i}=t;this.state={cursor:-1,opened:!1,width:50,initialValue:i,stateSelectedValues:Cr(n,o,i),searchText:"",tags:o},this.comboboxRef=(0,e.createRef)(),this.valuesListRef=(0,e.createRef)(),this.inputRef=(0,e.createRef)(),this.textRef=(0,e.createRef)(),this.focusInput=this.focusInput.bind(this),this.onKeyUp=this.onKeyUp.bind(this),$r.openList=$r.openList.bind(this),this.handleClickOutside=this.handleClickOutside.bind(this),this.handleItemsNavigation=this.handleItemsNavigation.bind(this),this.handleComboboxDropdownClick=this.handleComboboxDropdownClick.bind(this),this.handleListItemClick=this.handleListItemClick.bind(this),this.handlePillRemoveClick=this.handlePillRemoveClick.bind(this),this.manageSelectedTags=this.manageSelectedTags.bind(this)}componentDidMount(){const{tags:e}=this.props;e&&this.setInputWidth(),this.bindEvents()}componentWillUnmount(){this.unBindEvents()}static getDerivedStateFromProps(e,t){return JSON.stringify(e.value)!==JSON.stringify(t.initialValue)||e.tags!==t.tags?{initialValue:e.value,stateSelectedValues:Cr(e.multiple,e.tags,e.value),tags:e.tags}:null}handleItemsNavigation(e){const{tags:t}=this.props;if(-1===["ArrowDown","ArrowUp"].indexOf(e.key))return;const{cursor:n}=this.state,o=this.filterValues();let i;if(e.preventDefault(),"ArrowDown"===e.key&&(-1===n||n===o.length-1?i=0:n0?n-1:o.length-1),this.valuesListRef.current&&i>4){const e=38*(i-4);this.valuesListRef.current.scrollTop=t?e:60+e}else this.valuesListRef.current&&(this.valuesListRef.current.scrollTop=0);this.setState((e=>{return t=kr({},e),fr(t,yr({opened:!0,cursor:i}));var t}))}handleListItemClick(e){if(this.props.values[e].disabled)return;const{multiple:t,tags:n}=this.props,o=n?"manageSelectedTags":"manageSelectedValues",i=kr(kr({},this.state),this[o](e));this.setState((e=>(t||n||(i.opened=!1),kr(kr({},e),i))))}handlePillRemoveClick(e){const{disabled:t}=this.props;if(t)return;const n=this.removeSelectedValue(e);this.setState((e=>kr(kr({},e),n)))}handleClickOutside(e){this.valuesListRef.current&&!this.valuesListRef.current.contains(e.target)&&this.comboboxRef.current&&!this.comboboxRef.current.contains(e.target)&&this.setState((e=>kr(kr({},e),$r.closeList())))}handleComboboxDropdownClick(){const{disabled:e}=this.props;e||this.setState((e=>kr(kr({},e),$r.openList())))}onKeyUp(e){const{tags:t,allowCustomValues:n}=this.props,{cursor:o,opened:i}=this.state,r=this.filterValues();let s=this.getSearchText();if(t&&"Escape"!==e.key&&(s=kr(kr({},s),this.setInputWidth())),"Enter"===e.key){const e=t?"manageSelectedTags":"manageSelectedValues";s=kr(kr({},s),this[e](o))}n&&" "!==e.key&&t&&(s=kr(kr({},s),this.manageSelectedTags())),!i&&this.inputRef.current.value&&(null==r?void 0:r.length)&&"Escape"!==e.key&&(s=kr(kr({},s),$r.openList())),"Escape"===e.key&&i&&(s=kr(kr({},s),$r.closeList())),i&&r&&!r.length&&(s=kr(kr({},s),$r.closeList())),this.setState((e=>kr(kr({},e),s)))}getLabelStyles(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=e),t}getNonLabelWidth(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=`calc(100% - ${e} - 20px)`),t}setInputWidth(){return{width:50+this.textRef.current.offsetWidth}}getSelectedIndex(e){const{stateSelectedValues:t}=this.state;let n=-1;return Array.isArray(t)?t.forEach(((t,o)=>{t.id===e.id&&(n=o)})):t&&t.id===e.id&&(n=0),n}getSearchText(){return{searchText:this.inputRef.current.value}}getListItemCssClasses(e,t){const n=[],{cursor:o}=this.state;return o===t&&n.push("active"),e.disabled&&n.push("disabled"),n.join(" ")}getComboboxListCssClass(){const{opened:e}=this.state,{tags:t,theme:n}=this.props,o=n?n.split(" "):[],i=["tyk-combobox__list"];return e&&i.push("tyk-combobox__list--opened"),t&&i.push("tyk-combobox__list--has-tags"),o.length&&o.forEach((e=>{i.push(`tyk-form-group--${e}`)})),i.join(" ")}getCssClasses(){const{error:e,disabled:t,theme:n,labelwidth:o}=this.props,i=["tyk-form-group","tyk-combobox"],r=n?n.split(" "):[];return e&&i.push("has-error"),o&&i.push("tyk-form-group--label-has-width"),r.length&&r.forEach((e=>{i.push(`tyk-form-group--${e}`)})),t&&i.push("disabled"),i.join(" ")}getInputError(){const{error:e}=this.props;return e&&"true"!==e&&"false"!==e?t().createElement("p",{className:"tyk-form-control__error-message"},e):null}getStyles(){const{scrollTop:e}=document.documentElement,t=this.comboboxRef.current,n=t.offsetHeight,o=t.offsetWidth,i=t.getBoundingClientRect(),{left:r}=i;let s=0;return s=i.top+e+n,{top:s-1+"px",left:`${r}px`,width:`${o}px`}}getComboboxDisplayData(){const{stateSelectedValues:e}=this.state,{multiple:t,placeholder:n,values:o}=this.props;return e?e&&Array.isArray(e)&&!e.length?n:!e||Array.isArray(e)||e.id?Array.isArray(e)&&t?e.reduce(((t,n,o)=>t+n.name+(o!==e.length-1?", ":"")),""):!(null==o?void 0:o.length)||Array.isArray(e)||e.name?e.name:o.filter((t=>t.id===e.id))[0].name:n:n}manageSelectedTags(e){const{max:t,allowCustomValues:n}=this.props,{stateSelectedValues:o}=this.state,i=this.filterValues(),r={id:this.inputRef.current.value,name:this.inputRef.current.value};if(!1===n&&-1===e)return null;const s=i[e]||r,a=this.getSelectedIndex(s);let l={};if(this.inputRef.current.value="",a>-1&&this.isInInitialValues(s))l=this.removeSelectedValue(a);else if(-1===a){if(t&&o.length>=t)return l;l=this.addSelectedValue(s)}return l}manageSelectedValues(e){const{stateSelectedValues:t}=this.state,{multiple:n,onChange:o,max:i}=this.props,r=this.filterValues(),s=r[e];let a;const l=this.getSelectedIndex(s);if(s&&n)if(l>-1)a=this.removeSelectedValue(l);else{if(i&&t.length>=i)return a;a=this.addSelectedValue(r[e])}else a={stateSelectedValues:-1===l?s:{id:null}},null==o||o(-1===l?s:null);return a}removeSelectedValue(e){const{stateSelectedValues:t}=this.state,{onChange:n}=this.props,o=JSON.parse(JSON.stringify(t));return o.splice(e,1),n&&"function"==typeof n&&n(o.length?o:null),{stateSelectedValues:o,searchText:""}}addSelectedValue(e){const{stateSelectedValues:t}=this.state,{onChange:n}=this.props,o=JSON.parse(JSON.stringify(t));return o.push(e),n&&"function"==typeof n&&n(o.length?o:null),{stateSelectedValues:o,searchText:""}}isInInitialValues(e){const{values:t}=this.props;let n=!1;return t.forEach((t=>{e.id===t.id&&(n=!0)})),n}filterValues(){const{values:e,searchItem:t}=this.props;return this.inputRef.current?e.filter((e=>t?t(e,this.inputRef.current.value.toLowerCase()):$r.filterByName(e,this.inputRef.current.value.toLowerCase()))):e}bindEvents(){document.addEventListener("mousedown",this.handleClickOutside)}unBindEvents(){document.removeEventListener("mousedown",this.handleClickOutside)}reset(){const{multiple:e,tags:t,value:n}=this.props;this.setState({stateSelectedValues:Cr(e,t,n)})}focusInput(){this.inputRef.current&&this.inputRef.current.focus()}renderInput(e){const{disabled:n,tags:o,max:i,placeholder:r}=this.props,{width:s,searchText:a,stateSelectedValues:l}=this.state;return t().createElement("ul",{className:"tyk-form-control"+(o?" tyk-form-control--with-tags":""),onClick:this.focusInput,onKeyDown:()=>{},ref:this.comboboxRef},o?t().createElement(t().Fragment,null,(l||[]).map(((e,n)=>t().createElement("li",{className:"pill",key:e.id},t().createElement("button",{type:"button",onClick:this.handlePillRemoveClick.bind(this,n),"aria-label":"remove"},t().createElement(g,{type:"xmark"})),t().createElement("span",null,e.name)))),t().createElement("li",{className:"tyk-combobox__search-box",style:{width:(null==l?void 0:l.length)?"auto":"100%"}},(void 0===i||(null==l?void 0:l.length){"Enter"===e.key&&e.preventDefault(),this.handleItemsNavigation(e)},onKeyUp:this.onKeyUp,placeholder:(null==l?void 0:l.length)?"":r,ref:this.inputRef,style:{width:(null==l?void 0:l.length)?`${s}px`:"100%"}}),t().createElement("span",{ref:this.textRef,style:{visbility:"hidden",position:"absolute",top:"-9999px"}},a)),e.length>0&&t().createElement(U,{className:"tyk-combobox--with-tags__button-down",iconType:"chevron-down",iconOnly:!0,onClick:this.handleComboboxDropdownClick}))):t().createElement("li",{className:"tyk-combobox__placeholder",onClick:this.handleComboboxDropdownClick,onKeyDown:()=>{}},this.getComboboxDisplayData(),t().createElement(g,{type:"chevron-down"})))}renderDropdown(e){const{tags:n}=this.props,{opened:o}=this.state;return t().createElement("ul",{className:this.getComboboxListCssClass(),ref:this.valuesListRef,style:this.getStyles()},n?null:t().createElement("li",{className:"combobox-search__container"},t().createElement("input",{autoFocus:o,className:"tyk-form-control",onKeyUp:this.onKeyUp,onKeyDown:this.handleItemsNavigation,key:"searchInput",ref:this.inputRef})),e.map(((e,n)=>t().createElement("li",{className:this.getListItemCssClasses(e,n),onClick:this.handleListItemClick.bind(this,n),onKeyDown:()=>{},key:e.id},this.getSelectedIndex(e)>-1?t().createElement(g,{type:"check"}):null,t().createElement("span",null," ",e.name)))))}render(){const{CustomListComponent:e,id:n,label:o,note:i}=this.props,{opened:r}=this.state,s=this.filterValues();return t().createElement(t().Fragment,null,t().createElement("div",{className:this.getCssClasses()},o?t().createElement("label",{htmlFor:n,style:this.getLabelStyles()},o):null,t().createElement("div",{className:"tyk-form-control__wrapper",style:this.getNonLabelWidth()},this.renderInput(s),i?t().createElement("p",{className:"tyk-form-control__help-block"},i):null,this.getInputError())),e?t().createElement(e,{ref:this.valuesListRef,className:this.getComboboxListCssClass(),getListItemCssClasses:this.getListItemCssClasses.bind(this),getSelectedIndex:this.getSelectedIndex.bind(this),filteredValues:s,handleListItemClick:this.handleListItemClick.bind(this)}):r&&s.length?dt().createPortal(this.renderDropdown(s),document.querySelector("body")):null)}}$r.propTypes={allowCustomValues:r().bool,CustomListComponent:r().elementType,searchItem:r().func,disabled:r().bool,error:r().string,id:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,multiple:r().bool,max:r().number,note:r().oneOfType([r().node,r().element,r().string]),onChange:r().func,placeholder:r().string,tags:r().bool,theme:r().string,value:r().oneOfType([r().string,r().instanceOf(Object),r().instanceOf(Array)]),values:r().instanceOf(Array)},$r.defaultProps={allowCustomValues:!0};const Sr=$r;function Er(n){const{value:o,max:i,tags:r,tagSeparators:s,addTagOnBlur:a,placeholder:l,disabled:c,renderValue:u,valueOverflow:h,focus:d,onMessage:p,readOnly:m}=n,f=(0,e.useRef)(null),y=(0,e.useRef)(null),[v,b]=(0,e.useState)(""),[w,x]=(0,e.useState)("70px");function k(e){if(s.some((t=>e.slice(-1)===t)))return;const t=y.current;t.innerHTML=e,x(`${Math.max(t.clientWidth,60)+10}px`),b(e),p("tag.input.change",e)}function C(){p("text-value.click")}function $(e,n=!1){if(m)return e||"-";const o=["tyk-combobox2__text-value",`overflow-${h}`,n&&"is-placeholder"].filter(Boolean).join(" ");return t().createElement("span",{className:o,title:"single"===h?e:void 0,role:"none",tabIndex:c?"-1":"0",onClick:C,onKeyDown:C},e)}function S(e){return u(e,{tags:r,tagSeparators:s,placeholder:l,disabled:c,renderValue:u,sendMessage:p})}return(0,e.useEffect)((()=>{d&&f.current&&f.current.focus()}),[d]),m?t().createElement("div",{className:"tyk-form-control--readonly"},$(o.map((e=>e.name)).join(", "))):r?t().createElement(t().Fragment,null,o.map((function(e){return u?S(e):t().createElement(mn,{key:e.id,theme:"combobox"},t().createElement("button",{type:"button",onClick:t=>{t.stopPropagation(),p("tag.remove",e.id)},"aria-label":"remove"},t().createElement(g,{type:"times"})),t().createElement("span",{title:e.name},e.name))})),o.lengthk(e.target.value),onKeyDown:e=>{"Enter"===e.key&&e.preventDefault(),function(e,t){if(r){if(""!==t||"Backspace"!==e||!o.length)return"Enter"===e?(p("tag.input.enter",t),void k("")):void("ArrowUp"!==e?"ArrowDown"!==e?"Escape"!==e?s.includes(e)&&(p("tag.add",t),k("")):p("tag.input.escape"):p("tag.input.arrowDown"):p("tag.input.arrowUp"));p("tag.remove",o[o.length-1].id)}}(e.key,e.target.value)},onFocus:()=>p("tag.input.focus"),onBlur:e=>{p("tag.input.blur",e.target.value),a&&k("")}}),t().createElement("span",{ref:y,style:{visbility:"hidden",position:"absolute",top:"-9999px"}}))):u?0===o.length?$(l,!0):o.map(S):0===o.length?$(l,!0):$(o.map((e=>e.name)).join(", "))}Er.propTypes={value:r().instanceOf(Array),max:r().number,tags:r().instanceOf(Array),tagSeparators:r().instanceOf(Array),addTagOnBlur:r().bool,placeholder:r().string,disabled:r().bool,renderValue:r().func,valueOverflow:r().string,focus:r().bool,onMessage:r().func,readOnly:r().bool};const Or=Er;function Tr(n){const{listRef:o,tags:i,values:r,searchValue:s,activeItem:a,onMessage:l,renderListItem:c,selectAll:u,showSearch:h}=n;return(0,e.useEffect)((()=>{if(!o.current)return;const e=o.current.querySelector(".active");e&&e.scrollIntoView({block:"end"})}),[a]),t().createElement(t().Fragment,null,!i&&h&&t().createElement("div",{className:"tyk-combobox2__combobox-search"},t().createElement("input",{autoFocus:!0,className:"tyk-form-control",value:s,onChange:e=>l("search.change",e.target.value),onKeyDown:e=>{"Escape"===e.key&&l("search.escape"),"ArrowUp"===e.key&&l("search.arrowUp"),"ArrowDown"===e.key&&l("search.arrowDown"),"Enter"===e.key&&l("search.enter")}})),r.length>0&&t().createElement("ul",{ref:o,className:"tyk-combobox2__combobox-list"},Boolean(u)&&function(){var e,n,o;const i=r.every((e=>e.selected)),s=r.every((e=>!e.selected)),a=null!=(e=null==u?void 0:u.label)?e:"Select All",c=null!=(n=null==u?void 0:u.mode)?n:"select",h=null!=(o=null==u?void 0:u.show)?o:"always",d=null==u?void 0:u.render;return"always"!==h&&("select"===c?i:s)?null:d?d({label:a,mode:c,show:h,isAllSelected:i,isNoneSelected:s},l):t().createElement("li",{onClick:()=>l("value.select-all","select"===c?!i:s),onKeyDown:()=>{}},("select"===c?i:s)&&t().createElement(g,{type:"check"}),a)}(),r.map((function(e){return c?c(e,{tags:i,searchValue:s,sendMessage:l,activeItem:a}):t().createElement("li",{key:e.id,title:e.name,className:[e.disabled&&"disabled",a&&e.id===a.id&&"active"].filter(Boolean).join(" "),onClick:()=>!e.disabled&&l("value.select",{item:e}),onKeyDown:()=>{}},e.selected&&t().createElement(g,{type:"check"}),t().createElement("span",{className:"item-name"},e.name))}))))}Tr.propTypes={listRef:r().instanceOf(Object),tags:r().bool,values:r().instanceOf(Array),searchValue:r().string,activeItem:r().instanceOf(Object),onMessage:r().func,renderListItem:r().func,selectAll:r().oneOfType([r().bool,r().shape({label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),mode:r().oneOf(["select","unselect"]),show:r().oneOf(["always","notSameState"]),render:r().func})]),showSearch:r().bool};const Ar=Tr;var _r=Object.defineProperty,Lr=Object.defineProperties,Mr=Object.getOwnPropertyDescriptors,Rr=Object.getOwnPropertySymbols,Nr=Object.prototype.hasOwnProperty,Ir=Object.prototype.propertyIsEnumerable,Pr=(e,t,n)=>t in e?_r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Dr=(e,t)=>{for(var n in t||(t={}))Nr.call(t,n)&&Pr(e,n,t[n]);if(Rr)for(var n of Rr(t))Ir.call(t,n)&&Pr(e,n,t[n]);return e},Fr=(e,t)=>Lr(e,Mr(t));function Br(n){var o=n,{value:i,values:r=[],valueOverflow:s="single",label:a="",labelwidth:l,tags:c=!1,tagSeparators:u=[" ","Enter"],addTagOnBlur:h=!1,max:d,multiple:p=!1,placeholder:m="",theme:f,note:y="",error:v="",disabled:b=!1,readOnly:w=!1,allowCustomValues:x=!0,searchItem:k,renderValue:C,renderListItem:$,renderList:S,CustomListComponent:E,onBeforeChange:O=(()=>!0),onChange:T=(()=>{}),floatingContainerConfig:A,expandMode:_,infiniteScrollerConfig:L,displayDropdownTrigger:M=!0,selectAll:R,closeOnSelect:N,showSearch:I=!1,required:P=!1,validateOnChange:D=(()=>{}),wrapperClassName:F=""}=o,B=((e,t)=>{var n={};for(var o in e)Nr.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Rr)for(var o of Rr(e))t.indexOf(o)<0&&Ir.call(e,o)&&(n[o]=e[o]);return n})(o,["value","values","valueOverflow","label","labelwidth","tags","tagSeparators","addTagOnBlur","max","multiple","placeholder","theme","note","error","disabled","readOnly","allowCustomValues","searchItem","renderValue","renderListItem","renderList","CustomListComponent","onBeforeChange","onChange","floatingContainerConfig","expandMode","infiniteScrollerConfig","displayDropdownTrigger","selectAll","closeOnSelect","showSearch","required","validateOnChange","wrapperClassName"]);const W=(0,e.useMemo)((()=>p?1/0:d||(c?1/0:1)),[p,d,c]),H=E?(e,{sendMessage:n})=>t().createElement(E,{filteredValues:e,handleListItemClick:t=>n("value.select",{item:e[t]})}):S,j=(0,e.useRef)(null),z=(0,e.useRef)(null),V=(0,e.useRef)(null),U=(0,e.useRef)(null),[G,K]=(0,e.useState)(jr(i,r)),[q,Y]=(0,e.useState)(r.map((e=>Hr(e)))),[J,X]=(0,e.useState)(""),[Q,Z]=(0,e.useState)(null),[ee,te]=(0,e.useState)(!1),[ne,oe]=(0,e.useState)(!1),[ie,re]=(0,e.useState)("");function se(){return(f?f.split(" "):[]).map((e=>`tyk-form-group--${e}`))}function ae(){const e=k||((e,t)=>{var n,o;return null==(o=null==(n=null==e?void 0:e.name)?void 0:n.toLowerCase())?void 0:o.includes(t)});return q.filter((t=>e(t,J.toLowerCase())))}function le(){te(!0)}function ce(){te(!1),c||ue(""),Z(null)}function ue(e){X(e),Q&&ae().every((e=>e.id!==Q.id))&&Z(null),e&&!ee&&le()}function he(e,t){const n=D(e,t);return re(n),void 0===n}function de(e){K(e),T(1!==W||c?e:e[0]||null)}function pe(e){if(!e)return;if(G.length>=W)return;if(G.some((({name:t})=>t===e)))return;const t=q.findIndex((t=>t.name===e));let n,o,i=[...G];-1===t?x&&(n={id:e,name:e},i=[...G,n]):(o=[...q.slice(0,t),Fr(Dr({},q[t]),{selected:!0}),...q.slice(t+1)],n=q[t],i=[...G,q[t]]),he(i,n)&&O(G,i)&&(o&&Y(o),de(i))}function ge({id:e}){const t=q.find((t=>t.id===e)),n=q.findIndex((t=>t.id===e));let o=G,i=q;t.selected?P&&1===W||(o=G.filter((e=>e.id!==t.id)),i=q.with(n,Fr(Dr({},t),{selected:!1}))):G.lengthFr(Dr({},e),{selected:e.id===t.id})))),he(o,t)&&O(G,o)&&(de(o),Y(i)),(1===W||N)&&ce()}function me(e){if(q.length>W)return;const t=e?[...q]:[];O(G,t)&&(de(t),Y(q.map((t=>Fr(Dr({},t),{selected:e})))),N&&ce())}function fe(){const e=ae().filter((e=>!e.disabled));if(0===e.length)return;if(null===Q||1===e.length)return void Z(e[e.length-1]);const t=e.findIndex((e=>e.id===Q.id));Z(e[t>0?t-1:e.length-1])}function ye(){const e=ae().filter((e=>!e.disabled));if(0===e.length)return;if(null===Q||1===e.length)return void Z(e[0]);const t=e.findIndex((e=>e.id===Q.id));Z(e[tt.id===e)),n=G.filter((t=>t.id!==e));O(G,n)&&(-1!==t&&Y([...q.slice(0,t),Fr(Dr({},q[t]),{selected:!1}),...q.slice(t+1)]),de(n))}(t),"input.change"===e&&ue(t),"input.enter"===e&&(Q?ge(Q):u.includes("Enter")&&(pe(t),ue(""))),"input.arrowUp"===e&&(le(),fe()),"input.arrowDown"===e&&(le(),ye()),"input.escape"===e&&ce(),"input.blur"===e&&h&&(pe(t),ue("")),"input.focus"===e&&le()}const xe=(0,e.useCallback)(((e,t)=>{e.startsWith("tag.")&&we(e.slice(4),t),"value.select"===e&&ge(t.item),"value.select-all"===e&&me(t),"text-value.click"===e&&le(),"search.change"===e&&ue(t),"search.escape"===e&&ce(),"search.arrowUp"===e&&fe(),"search.arrowDown"===e&&ye(),"search.enter"===e&&Q&&ge(Q)}),[we,ge,me,le,ue,ce,fe,ye]),ke=(0,e.useCallback)((()=>_?t().createElement(g,{type:ne?"chevron-down":"chevron-up"}):t().createElement(g,{type:"chevron-down"})),[_,ne]);(0,e.useEffect)((()=>(window.addEventListener("click",be,!0),()=>window.removeEventListener("click",be,!0))),[]),(0,e.useEffect)((()=>{if(r.length){const e=r.map((e=>Fr(Dr({},Hr(e)),{selected:G.some((t=>t.id===e.id))})));Y(e),K((t=>t.map((t=>e.find((e=>e.id===t.id))||t))))}else q.length&&Y([])}),[r]),(0,e.useEffect)((()=>{const e=jr(i,q);K(e),Y((t=>t.map((t=>Fr(Dr({},Hr(t)),{selected:e.some((e=>e.id===t.id))})))))}),[i]),(0,e.useEffect)((()=>{if(!_)return()=>{};const e=z.current.querySelector(".tyk-combobox2__current-values"),t=()=>{e.scrollTop=e.scrollHeight},n=new MutationObserver(t),o=new ResizeObserver(t);return n.observe(e,{attributes:!0,childList:!0,subtree:!0}),o.observe(e),()=>{n.disconnect(),o.disconnect()}}));const Ce=ae(),$e=["tyk-combobox2__current-values",_&&"expand-mode","tyk-combobox2__current-values--"+(ne?"expanded":"collapsed")].join(" ");return t().createElement("div",Fr(Dr({ref:j,tabIndex:b?"-1":"0",onClickCapture:function(e){if(!b)return;if(!_)return void e.stopPropagation();const t=j.current.querySelector(".tyk-combobox2__values-container-trigger");t&&(t===e.target||t.contains(e.target)||e.stopPropagation())}},B),{className:[F,"tyk-form-group","tyk-combobox2",...se(),(v||ie)&&"has-error",l&&"tyk-form-group--label-has-width",b&&"disabled",_&&"is-expand-mode"].filter(Boolean).join(" ")}),a&&t().createElement("label",{style:{flexBasis:l||"auto"}},a),!w&&t().createElement("div",{className:"tyk-form-control__wrapper",style:{flexBasis:`calc(100% - ${l} - 20px)`}},t().createElement("div",{className:"tyk-form-control",ref:z},t().createElement("div",{className:$e,onClick:le,role:"none"},t().createElement(Or,{value:G,max:W,tags:c,tagSeparators:u,addTagOnBlur:h,allowCustomValues:x,placeholder:m,disabled:b,valueOverflow:s,renderValue:C,focus:ee,onMessage:xe,readOnly:w})),M&&t().createElement("div",{className:"tyk-combobox2__values-container-trigger"+(ne?" tyk-combobox2__values-container-trigger--expanded":""),role:"button",tabIndex:b?-1:0,onClick:ve,onKeyDown:ve},ke())),ee&&(!c||Ce.length>0)&&t().createElement(Pt,Fr(Dr({element:z,size:"matchElement",className:`tyk-combobox2__combobox-dropdown tyk-form-group ${se().join(" ")}`,ref:V,displayAxis:"vertical"},A),{infiniteScrollerConfig:L}),H?H(Ce,{tags:c,searchValue:J,activeItem:Q,listRef:U,sendMessage:xe}):t().createElement(Ar,{listRef:U,showSearch:I,values:Ce,tags:c,searchValue:J,activeItem:Q,onMessage:xe,renderListItem:$,selectAll:R})),y&&t().createElement("p",{className:"tyk-form-control__help-block"},y),(v&&"true"!==v&&"false"!==v||Boolean(ie))&&t().createElement("p",{className:"tyk-form-control__error-message"},v||ie)),w&&t().createElement("div",null,t().createElement(Or,{value:G,tags:c,renderValue:C,readOnly:w})))}Br.propTypes={allowCustomValues:r().bool,CustomListComponent:r().elementType,searchItem:r().func,renderValue:r().func,renderListItem:r().func,renderList:r().func,disabled:r().bool,readOnly:r().bool,error:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,max:r().number,multiple:r().bool,note:r().oneOfType([r().node,r().element,r().string]),onBeforeChange:r().func,onChange:r().func,placeholder:r().string,tags:r().bool,tagSeparators:r().arrayOf(r().string),addTagOnBlur:r().bool,theme:r().string,value:r().oneOfType([r().string,r().instanceOf(Array),r().instanceOf(Object)]),values:r().instanceOf(Array),floatingContainerConfig:r().instanceOf(Object),valueOverflow:r().oneOf(["single","multiple"]),expandMode:r().bool,infiniteScrollerConfig:r().instanceOf(Object),displayDropdownTrigger:r().bool,selectAll:r().oneOfType([r().bool,r().shape({label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),mode:r().oneOf(["select","unselect"]),show:r().oneOf(["always","notSameState"]),render:r().func})]),closeOnSelect:r().bool,showSearch:r().bool,required:r().bool,validateOnChange:r().func,wrapperClassName:r().string};const Wr=Br;function Hr(e,t){let n=e;if("string"==typeof e?n={id:e,name:e}:e.hasOwnProperty("name")||(n=Fr(Dr({},e),{name:e.id})),!t)return n;const o=t.find((e=>e.id===n.id));return o?Dr(Dr({},n),o):n}function jr(e,t){return e?Array.isArray(e)?e.map((e=>Hr(e,t))):[Hr(e,t)]:[]}const zr=require("flatpickr");var Vr=n.n(zr),Ur=Object.defineProperty,Gr=Object.defineProperties,Kr=Object.getOwnPropertyDescriptors,qr=Object.getOwnPropertySymbols,Yr=Object.prototype.hasOwnProperty,Jr=Object.prototype.propertyIsEnumerable,Xr=(e,t,n)=>t in e?Ur(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Qr({children:n,disabled:o,readOnly:i=!1,error:r,id:s,label:a,labelwidth:l,note:c,onClose:u,onChange:h,onOpen:d,theme:p,config:m={},value:f,wrapperClassName:y=""}){const[v,b]=(0,e.useState)(null),w=(0,e.useRef)(null),x=me(f),k=(0,e.useCallback)(((e,t)=>{if(!e)return!0;if(!Array.isArray(t))return e.getTime()!==t.getTime();let n=t;return e&&t.length&&e.length?(n=t.filter(((t,n)=>t.getTime()!==e[n].getTime())),n.length>0):t.length>0}),[]),C=(0,e.useCallback)((e=>{const t="range"===m.mode?e:e[0]||null;h&&("range"===m.mode?2===t.length&&k(x,t)&&h(t):h(t))}),[x,h,k]);(0,e.useEffect)((()=>{if(w.current&&!v){const t=Vr()(w.current,(e=((e,t)=>{for(var n in t||(t={}))Yr.call(t,n)&&Xr(e,n,t[n]);if(qr)for(var n of qr(t))Jr.call(t,n)&&Xr(e,n,t[n]);return e})({},m),Gr(e,Kr({defaultDate:f,onChange:C,onClose:u,onOpen:d}))));b(t)}var e;return()=>{v&&v.destroy()}}),[v]),(0,e.useEffect)((()=>{if(v){let e=f;"string"==typeof f?e=new Date(f):Array.isArray(f)&&(e=f.map((e=>new Date(e)))),k(x,e)&&(v.set("onChange",C),"range"===m.mode?e&&2===e.length&&v.setDate(e,!0):v.setDate(e,!0))}}),[x,f,v]);const $=["tyk-form-group","tyk-form-group--addon-right",y,...p?p.split(" ").map((e=>`tyk-form-group--${e}`)):[],l&&"tyk-form-group--label-has-width",r&&"has-error"].filter(Boolean).join(" "),S=(0,e.useCallback)((()=>{v&&v.open()}),[v]);return t().createElement(t().Fragment,null,(null==n?void 0:n.length)?n({openCalendar:S,ref:w}):t().createElement("div",{className:$},a?t().createElement("label",{htmlFor:s,style:l?{flexBasis:l}:{}},a):null,!i&&t().createElement("div",{className:"tyk-form-control__wrapper flatpickr",style:l?{flexBasis:`calc(100% - ${l} - 20px)`}:{}},t().createElement("div",{className:"tyk-input-group"},(()=>{let e={},n={};return(null==m?void 0:m.inline)&&(e={height:0,padding:0,width:0,visibility:"hidden"},n={display:"none"}),t().createElement(t().Fragment,null,t().createElement("input",{disabled:o,className:"tyk-form-control","data-input":!0,type:"date",ref:w,style:e}),t().createElement("div",{className:"tyk-input-group__addon",onClick:S,role:"button",onKeyUp:()=>{},tabIndex:0,style:n,"aria-label":"show calendar"},t().createElement(g,{type:"calendar"})))})()),c?t().createElement("p",{className:"tyk-form-control__help-block"},c):null,r&&"true"!==r&&"false"!==r?t().createElement("p",{className:"tyk-form-control__error-message"},r):null)),t().createElement("div",{className:"tyk-form-control--readonly"},i&&!f&&"-",i&&f&&Vr().formatDate(f,m.dateFormat||"d/m/Y")))}Qr.propTypes={config:r().instanceOf(Object),children:r().oneOfType([r().element,r().node,r().string,r().func]),disabled:r().bool,readOnly:r().bool,id:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,note:r().string,onChange:r().oneOfType([r().func,r().instanceOf(Array)]),onClose:r().oneOfType([r().func,r().instanceOf(Array)]),onOpen:r().oneOfType([r().func,r().instanceOf(Array)]),theme:r().string,error:r().string,value:r().oneOfType([r().instanceOf(Array),r().instanceOf(Object),r().string]),wrapperClassName:r().string};const Zr=Qr;function es(e){return es="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},es(e)}function ts(e,t){if(t.length1?"s":"")+" required, but only "+t.length+" present")}function ns(e){return ts(1,arguments),e instanceof Date||"object"===es(e)&&"[object Date]"===Object.prototype.toString.call(e)}function os(e){ts(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||"object"===es(e)&&"[object Date]"===t?new Date(e.getTime()):"number"==typeof e||"[object Number]"===t?new Date(e):("string"!=typeof e&&"[object String]"!==t||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn((new Error).stack)),new Date(NaN))}function is(e){if(null===e||!0===e||!1===e)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function rs(e){ts(1,arguments);var t=os(e),n=t.getUTCDay(),o=(n<1?7:0)+n-1;return t.setUTCDate(t.getUTCDate()-o),t.setUTCHours(0,0,0,0),t}function ss(e){ts(1,arguments);var t=os(e),n=t.getUTCFullYear(),o=new Date(0);o.setUTCFullYear(n+1,0,4),o.setUTCHours(0,0,0,0);var i=rs(o),r=new Date(0);r.setUTCFullYear(n,0,4),r.setUTCHours(0,0,0,0);var s=rs(r);return t.getTime()>=i.getTime()?n+1:t.getTime()>=s.getTime()?n:n-1}var as={};function ls(){return as}function cs(e,t){var n,o,i,r,s,a,l,c;ts(1,arguments);var u=ls(),h=is(null!==(n=null!==(o=null!==(i=null!==(r=null==t?void 0:t.weekStartsOn)&&void 0!==r?r:null==t||null===(s=t.locale)||void 0===s||null===(a=s.options)||void 0===a?void 0:a.weekStartsOn)&&void 0!==i?i:u.weekStartsOn)&&void 0!==o?o:null===(l=u.locale)||void 0===l||null===(c=l.options)||void 0===c?void 0:c.weekStartsOn)&&void 0!==n?n:0);if(!(h>=0&&h<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var d=os(e),p=d.getUTCDay(),g=(p=1&&p<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var g=new Date(0);g.setUTCFullYear(h+1,0,p),g.setUTCHours(0,0,0,0);var m=cs(g,t),f=new Date(0);f.setUTCFullYear(h,0,p),f.setUTCHours(0,0,0,0);var y=cs(f,t);return u.getTime()>=m.getTime()?h+1:u.getTime()>=y.getTime()?h:h-1}function hs(e,t){for(var n=e<0?"-":"",o=Math.abs(e).toString();o.length0?n:1-n;return hs("yy"===t?o%100:o,t.length)},ps=function(e,t){var n=e.getUTCMonth();return"M"===t?String(n+1):hs(n+1,2)},gs=function(e,t){return hs(e.getUTCDate(),t.length)},ms=function(e,t){return hs(e.getUTCHours()%12||12,t.length)},fs=function(e,t){return hs(e.getUTCHours(),t.length)},ys=function(e,t){return hs(e.getUTCMinutes(),t.length)},vs=function(e,t){return hs(e.getUTCSeconds(),t.length)},bs=function(e,t){var n=t.length,o=e.getUTCMilliseconds();return hs(Math.floor(o*Math.pow(10,n-3)),t.length)};var ws={G:function(e,t,n){var o=e.getUTCFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(o,{width:"abbreviated"});case"GGGGG":return n.era(o,{width:"narrow"});default:return n.era(o,{width:"wide"})}},y:function(e,t,n){if("yo"===t){var o=e.getUTCFullYear(),i=o>0?o:1-o;return n.ordinalNumber(i,{unit:"year"})}return ds(e,t)},Y:function(e,t,n,o){var i=us(e,o),r=i>0?i:1-i;return"YY"===t?hs(r%100,2):"Yo"===t?n.ordinalNumber(r,{unit:"year"}):hs(r,t.length)},R:function(e,t){return hs(ss(e),t.length)},u:function(e,t){return hs(e.getUTCFullYear(),t.length)},Q:function(e,t,n){var o=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"Q":return String(o);case"QQ":return hs(o,2);case"Qo":return n.ordinalNumber(o,{unit:"quarter"});case"QQQ":return n.quarter(o,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(o,{width:"narrow",context:"formatting"});default:return n.quarter(o,{width:"wide",context:"formatting"})}},q:function(e,t,n){var o=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"q":return String(o);case"qq":return hs(o,2);case"qo":return n.ordinalNumber(o,{unit:"quarter"});case"qqq":return n.quarter(o,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(o,{width:"narrow",context:"standalone"});default:return n.quarter(o,{width:"wide",context:"standalone"})}},M:function(e,t,n){var o=e.getUTCMonth();switch(t){case"M":case"MM":return ps(e,t);case"Mo":return n.ordinalNumber(o+1,{unit:"month"});case"MMM":return n.month(o,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(o,{width:"narrow",context:"formatting"});default:return n.month(o,{width:"wide",context:"formatting"})}},L:function(e,t,n){var o=e.getUTCMonth();switch(t){case"L":return String(o+1);case"LL":return hs(o+1,2);case"Lo":return n.ordinalNumber(o+1,{unit:"month"});case"LLL":return n.month(o,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(o,{width:"narrow",context:"standalone"});default:return n.month(o,{width:"wide",context:"standalone"})}},w:function(e,t,n,o){var i=function(e,t){ts(1,arguments);var n=os(e),o=cs(n,t).getTime()-function(e,t){var n,o,i,r,s,a,l,c;ts(1,arguments);var u=ls(),h=is(null!==(n=null!==(o=null!==(i=null!==(r=null==t?void 0:t.firstWeekContainsDate)&&void 0!==r?r:null==t||null===(s=t.locale)||void 0===s||null===(a=s.options)||void 0===a?void 0:a.firstWeekContainsDate)&&void 0!==i?i:u.firstWeekContainsDate)&&void 0!==o?o:null===(l=u.locale)||void 0===l||null===(c=l.options)||void 0===c?void 0:c.firstWeekContainsDate)&&void 0!==n?n:1),d=us(e,t),p=new Date(0);return p.setUTCFullYear(d,0,h),p.setUTCHours(0,0,0,0),cs(p,t)}(n,t).getTime();return Math.round(o/6048e5)+1}(e,o);return"wo"===t?n.ordinalNumber(i,{unit:"week"}):hs(i,t.length)},I:function(e,t,n){var o=function(e){ts(1,arguments);var t=os(e),n=rs(t).getTime()-function(e){ts(1,arguments);var t=ss(e),n=new Date(0);return n.setUTCFullYear(t,0,4),n.setUTCHours(0,0,0,0),rs(n)}(t).getTime();return Math.round(n/6048e5)+1}(e);return"Io"===t?n.ordinalNumber(o,{unit:"week"}):hs(o,t.length)},d:function(e,t,n){return"do"===t?n.ordinalNumber(e.getUTCDate(),{unit:"date"}):gs(e,t)},D:function(e,t,n){var o=function(e){ts(1,arguments);var t=os(e),n=t.getTime();t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0);var o=n-t.getTime();return Math.floor(o/864e5)+1}(e);return"Do"===t?n.ordinalNumber(o,{unit:"dayOfYear"}):hs(o,t.length)},E:function(e,t,n){var o=e.getUTCDay();switch(t){case"E":case"EE":case"EEE":return n.day(o,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(o,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(o,{width:"short",context:"formatting"});default:return n.day(o,{width:"wide",context:"formatting"})}},e:function(e,t,n,o){var i=e.getUTCDay(),r=(i-o.weekStartsOn+8)%7||7;switch(t){case"e":return String(r);case"ee":return hs(r,2);case"eo":return n.ordinalNumber(r,{unit:"day"});case"eee":return n.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(i,{width:"short",context:"formatting"});default:return n.day(i,{width:"wide",context:"formatting"})}},c:function(e,t,n,o){var i=e.getUTCDay(),r=(i-o.weekStartsOn+8)%7||7;switch(t){case"c":return String(r);case"cc":return hs(r,t.length);case"co":return n.ordinalNumber(r,{unit:"day"});case"ccc":return n.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(i,{width:"narrow",context:"standalone"});case"cccccc":return n.day(i,{width:"short",context:"standalone"});default:return n.day(i,{width:"wide",context:"standalone"})}},i:function(e,t,n){var o=e.getUTCDay(),i=0===o?7:o;switch(t){case"i":return String(i);case"ii":return hs(i,t.length);case"io":return n.ordinalNumber(i,{unit:"day"});case"iii":return n.day(o,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(o,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(o,{width:"short",context:"formatting"});default:return n.day(o,{width:"wide",context:"formatting"})}},a:function(e,t,n){var o=e.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(o,{width:"narrow",context:"formatting"});default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},b:function(e,t,n){var o,i=e.getUTCHours();switch(o=12===i?"noon":0===i?"midnight":i/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(o,{width:"narrow",context:"formatting"});default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},B:function(e,t,n){var o,i=e.getUTCHours();switch(o=i>=17?"evening":i>=12?"afternoon":i>=4?"morning":"night",t){case"B":case"BB":case"BBB":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(o,{width:"narrow",context:"formatting"});default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},h:function(e,t,n){if("ho"===t){var o=e.getUTCHours()%12;return 0===o&&(o=12),n.ordinalNumber(o,{unit:"hour"})}return ms(e,t)},H:function(e,t,n){return"Ho"===t?n.ordinalNumber(e.getUTCHours(),{unit:"hour"}):fs(e,t)},K:function(e,t,n){var o=e.getUTCHours()%12;return"Ko"===t?n.ordinalNumber(o,{unit:"hour"}):hs(o,t.length)},k:function(e,t,n){var o=e.getUTCHours();return 0===o&&(o=24),"ko"===t?n.ordinalNumber(o,{unit:"hour"}):hs(o,t.length)},m:function(e,t,n){return"mo"===t?n.ordinalNumber(e.getUTCMinutes(),{unit:"minute"}):ys(e,t)},s:function(e,t,n){return"so"===t?n.ordinalNumber(e.getUTCSeconds(),{unit:"second"}):vs(e,t)},S:function(e,t){return bs(e,t)},X:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();if(0===i)return"Z";switch(t){case"X":return ks(i);case"XXXX":case"XX":return Cs(i);default:return Cs(i,":")}},x:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();switch(t){case"x":return ks(i);case"xxxx":case"xx":return Cs(i);default:return Cs(i,":")}},O:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+xs(i,":");default:return"GMT"+Cs(i,":")}},z:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+xs(i,":");default:return"GMT"+Cs(i,":")}},t:function(e,t,n,o){var i=o._originalDate||e;return hs(Math.floor(i.getTime()/1e3),t.length)},T:function(e,t,n,o){return hs((o._originalDate||e).getTime(),t.length)}};function xs(e,t){var n=e>0?"-":"+",o=Math.abs(e),i=Math.floor(o/60),r=o%60;if(0===r)return n+String(i);var s=t||"";return n+String(i)+s+hs(r,2)}function ks(e,t){return e%60==0?(e>0?"-":"+")+hs(Math.abs(e)/60,2):Cs(e,t)}function Cs(e,t){var n=t||"",o=e>0?"-":"+",i=Math.abs(e);return o+hs(Math.floor(i/60),2)+n+hs(i%60,2)}const $s=ws;var Ss=function(e,t){switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},Es=function(e,t){switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},Os={p:Es,P:function(e,t){var n,o=e.match(/(P+)(p+)?/)||[],i=o[1],r=o[2];if(!r)return Ss(e,t);switch(i){case"P":n=t.dateTime({width:"short"});break;case"PP":n=t.dateTime({width:"medium"});break;case"PPP":n=t.dateTime({width:"long"});break;default:n=t.dateTime({width:"full"})}return n.replace("{{date}}",Ss(i,t)).replace("{{time}}",Es(r,t))}};const Ts=Os;var As=["D","DD"],_s=["YY","YYYY"];function Ls(e,t,n){if("YYYY"===e)throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("YY"===e)throw new RangeError("Use `yy` instead of `YY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("D"===e)throw new RangeError("Use `d` instead of `D` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("DD"===e)throw new RangeError("Use `dd` instead of `DD` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))}var Ms={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function Rs(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}var Ns,Is={date:Rs({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:Rs({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:Rs({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},Ps={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function Ds(e){return function(t,n){var o;if("formatting"===(null!=n&&n.context?String(n.context):"standalone")&&e.formattingValues){var i=e.defaultFormattingWidth||e.defaultWidth,r=null!=n&&n.width?String(n.width):i;o=e.formattingValues[r]||e.formattingValues[i]}else{var s=e.defaultWidth,a=null!=n&&n.width?String(n.width):e.defaultWidth;o=e.values[a]||e.values[s]}return o[e.argumentCallback?e.argumentCallback(t):t]}}function Fs(e){return function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=n.width,i=o&&e.matchPatterns[o]||e.matchPatterns[e.defaultMatchWidth],r=t.match(i);if(!r)return null;var s,a=r[0],l=o&&e.parsePatterns[o]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(l)?function(e,t){for(var n=0;n0?"in "+o:o+" ago":o},formatLong:Is,formatRelative:function(e,t,n,o){return Ps[e]},localize:{ordinalNumber:function(e,t){var n=Number(e),o=n%100;if(o>20||o<10)switch(o%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:Ds({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:Ds({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:Ds({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:Ds({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:Ds({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(Ns={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(e){return parseInt(e,10)}},function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.match(Ns.matchPattern);if(!n)return null;var o=n[0],i=e.match(Ns.parsePattern);if(!i)return null;var r=Ns.valueCallback?Ns.valueCallback(i[0]):i[0];return{value:r=t.valueCallback?t.valueCallback(r):r,rest:e.slice(o.length)}}),era:Fs({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:Fs({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:Fs({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:Fs({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:Fs({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};var Ws=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Hs=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,js=/^'([^]*?)'?$/,zs=/''/g,Vs=/[a-zA-Z]/;function Us(e,t,n){var o,i,r,s,a,l,c,u,h,d,p,g,m,f,y,v,b,w;ts(2,arguments);var x=String(t),k=ls(),C=null!==(o=null!==(i=null==n?void 0:n.locale)&&void 0!==i?i:k.locale)&&void 0!==o?o:Bs,$=is(null!==(r=null!==(s=null!==(a=null!==(l=null==n?void 0:n.firstWeekContainsDate)&&void 0!==l?l:null==n||null===(c=n.locale)||void 0===c||null===(u=c.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==a?a:k.firstWeekContainsDate)&&void 0!==s?s:null===(h=k.locale)||void 0===h||null===(d=h.options)||void 0===d?void 0:d.firstWeekContainsDate)&&void 0!==r?r:1);if(!($>=1&&$<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var S=is(null!==(p=null!==(g=null!==(m=null!==(f=null==n?void 0:n.weekStartsOn)&&void 0!==f?f:null==n||null===(y=n.locale)||void 0===y||null===(v=y.options)||void 0===v?void 0:v.weekStartsOn)&&void 0!==m?m:k.weekStartsOn)&&void 0!==g?g:null===(b=k.locale)||void 0===b||null===(w=b.options)||void 0===w?void 0:w.weekStartsOn)&&void 0!==p?p:0);if(!(S>=0&&S<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!C.localize)throw new RangeError("locale must contain localize property");if(!C.formatLong)throw new RangeError("locale must contain formatLong property");var E=os(e);if(!function(e){if(ts(1,arguments),!ns(e)&&"number"!=typeof e)return!1;var t=os(e);return!isNaN(Number(t))}(E))throw new RangeError("Invalid time value");var O=function(e){var t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e.getTime()-t.getTime()}(E),T=function(e,t){return ts(2,arguments),function(e,t){ts(2,arguments);var n=os(e).getTime(),o=is(t);return new Date(n+o)}(e,-is(t))}(E,O),A={firstWeekContainsDate:$,weekStartsOn:S,locale:C,_originalDate:E};return x.match(Hs).map((function(e){var t=e[0];return"p"===t||"P"===t?(0,Ts[t])(e,C.formatLong):e})).join("").match(Ws).map((function(o){if("''"===o)return"'";var i,r,s=o[0];if("'"===s)return(r=(i=o).match(js))?r[1].replace(zs,"'"):i;var a,l=$s[s];if(l)return null!=n&&n.useAdditionalWeekYearTokens||(a=o,-1===_s.indexOf(a))||Ls(o,t,String(e)),null!=n&&n.useAdditionalDayOfYearTokens||!function(e){return-1!==As.indexOf(e)}(o)||Ls(o,t,String(e)),l(T,o,C.localize,A);if(s.match(Vs))throw new RangeError("Format string contains an unescaped latin alphabet character `"+s+"`");return o})).join("")}var Gs=n(590),Ks=n.n(Gs),qs=Object.defineProperty,Ys=Object.defineProperties,Js=Object.getOwnPropertyDescriptors,Xs=Object.getOwnPropertySymbols,Qs=Object.prototype.hasOwnProperty,Zs=Object.prototype.propertyIsEnumerable,ea=(e,t,n)=>t in e?qs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ta=(e,t)=>{for(var n in t||(t={}))Qs.call(t,n)&&ea(e,n,t[n]);if(Xs)for(var n of Xs(t))Zs.call(t,n)&&ea(e,n,t[n]);return e};class na extends e.Component{static getMainFormValue(e){const t=new Array(e.length);return e.forEach(((e,n)=>{t[n]=e.props.value||void 0})),t}constructor(t){super(t);const{components:n}=t;this.submitButtonRef=(0,e.createRef)(),this.handleOnChange=this.handleOnChange.bind(this),this.submitForm=this.submitForm.bind(this),this.state={components:n,errors:{},mainError:null,mainFormValue:na.getMainFormValue(n),refs:[]}}componentDidMount(){const{addValueOnFieldChange:e,getMainFormButtonWidth:t}=this.props;this.createRefs(),t&&t(e?0:this.submitButtonRef.current.clientWidth)}static getDerivedStateFromProps(e,t){const n={},{components:o}=e,{components:i}=t;return Ks()(o,i)||Ks()(na.getMainFormValue(o),na.getMainFormValue(i))||(n.mainFormValue=na.getMainFormValue(o),n.components=o),n}handleOnChange(e,t,n){const{addValueOnFieldChange:o}=this.props;let i=this.state;i=ta(ta({},i),this.validateValue(n,e.props)),i.errors[e.props.name]||(i.mainFormValue[t]=n,e.props.onChange&&e.props.onChange(n)),this.setState((e=>ta(ta({},e),i)),(()=>{o&&this.submitForm()}))}getFormCssClasses(){const{noLabels:e}=this.props,t=["tyk-editable-list__form"];return e&&t.push("no-labels"),t.join(" ")}getButtonClassName(){const{buttonStyle:e,displayType:t}=this.props,n=[];return e&&n.push(e),t&&n.push(t),n.join(" ")}getComponentsError(e){const{error:t,errors:n,mainError:o}=this.state;return t||o?n[e.props.name]="true":t||o||"true"!==n[e.props.name]||delete n[e.props.name],n[e.props.name]?n[e.props.name].toString():void 0}createRefs(){const{components:t}=this.props,n=[];t.forEach((()=>{n.push((0,e.createRef)())})),this.setState({refs:n})}validateValue(e,t){const{mainError:n,errors:o}=this.state,{error:i,errorPersist:r}=this.props,s=t.validate?Object.keys(t.validate):[],a={errors:i||n?{}:ta({},o)};let l=!0;if(r)return a;for(const n of s)if((0,t.validate[n])(e)){a.errors[t.name]=t.validationmessages[n],l=!1;break}return l&&delete a.errors[t.name],a.mainError=null,a}hasMainFormErrors(e){const{components:t,errorPersist:n}=this.props,{mainFormValue:o}=this.state,i={errors:ta({},e)};return(!n||-1!==o.indexOf(void 0))&&(Object.keys(i.errors).length>0||(t.forEach(((e,t)=>{i.errors=ta(ta({},i.errors),this.validateValue(o[t],e.props).errors)})),Object.keys(i.errors).length>0))}resetForm(){const{refs:e}=this.state,{components:t}=this.props;e.forEach((e=>{var t;(null==(t=e.current)?void 0:t.reset)&&e.current.reset()})),this.setState({errors:{},mainError:null,mainFormValue:na.getMainFormValue(t)})}showMainError(e){this.setState({mainError:e})}submitForm(){const{errors:e,mainFormValue:t}=this.state,{errorPersist:n,onSubmit:o,validate:i,validationmessage:r}=this.props;n&&(o(t),this.resetForm()),0===Object.keys(e).length&&o&&"function"==typeof o&&(i&&i(t)?this.showMainError(r):(o(t),this.resetForm()))}render(){const{addValueOnFieldChange:e,components:n,buttonName:o,disabled:i,displayType:r,error:s}=this.props,{mainError:a,refs:l,errors:c}=this.state;return t().createElement("div",null,t().createElement("div",{className:this.getFormCssClasses()},t().createElement(yi,null,n.map(((e,n)=>{const o=e.name;console.log("ComponentName",o);const s=e.props,{onChange:a,value:c}=s,u=((e,t)=>{var n={};for(var o in e)Qs.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Xs)for(var o of Xs(e))t.indexOf(o)<0&&Zs.call(e,o)&&(n[o]=e[o]);return n})(s,["onChange","value"]);return t().createElement(li,{size:`md-${e.size||"12"} lg-${e.size||"12"}`,key:e.props.name},t().createElement(o,(h=ta({disabled:i||e.props.disabled,onChange:this.handleOnChange.bind(this,e,n)},u),d={label:"inline"===r?"":e.props.label,error:this.getComponentsError(e),ref:l[n],value:c},Ys(h,Js(d)))));var h,d}))),e?null:t().createElement("span",{className:this.getButtonClassName(),ref:this.submitButtonRef},t().createElement(U,{disabled:this.hasMainFormErrors(c),className:"tyk-editable-list__submit-btn",onClick:this.submitForm,theme:"default",type:"button",size:"inline"===r?"sm":"md"},o||"ADD"))),s||a?t().createElement("div",{className:"tyk-editable-list-main-error"},t().createElement("p",{className:"error-message"},s||a)):null)}}na.propTypes={addValueOnFieldChange:r().bool,noLabels:r().bool,buttonName:r().string,buttonStyle:r().string,components:r().instanceOf(Array),displayType:r().string,disabled:r().bool,getMainFormButtonWidth:r().func,error:r().string,errorPersist:r().bool,onSubmit:r().func,validate:r().func,validationmessage:r().string};const oa=na;var ia=Object.defineProperty,ra=Object.getOwnPropertySymbols,sa=Object.prototype.hasOwnProperty,aa=Object.prototype.propertyIsEnumerable,la=(e,t,n)=>t in e?ia(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ca=(e,t)=>{for(var n in t||(t={}))sa.call(t,n)&&la(e,n,t[n]);if(ra)for(var n of ra(t))aa.call(t,n)&&la(e,n,t[n]);return e};class ua extends e.Component{static getItemListValue(e){let t=null;return"string"==typeof e&&(t=e),"[object Object]"===Object.prototype.toString.call(e)&&(t=e.name),ns(e)&&(t=Us(e,"dd/MM/yyyy")),t}static getListItemCssClass(e){const t=[];return"inline"===e&&t.push("tyk-editable-list-item--inline"),t.join(" ")}constructor(t){super(t);const{value:n}=this.props;this.state={initialValue:n||"",value:n||[],buttonWidth:0},this.startIndex=1,this.handleFormSubmit=this.handleFormSubmit.bind(this),this.getMainFormButtonWidth=this.getMainFormButtonWidth.bind(this),this.dropdownListItemRef=(0,e.createRef)()}static getDerivedStateFromProps(e,t){const n={};return e.value&&JSON.stringify(e.value)!==JSON.stringify(t.initialValue)&&(n.value=e.value||[],n.initialValue=e.value||""),n.value?n:null}handleFormSubmit(e){const t=this.addValues(e);this.setState((e=>ca(ca({},e),t)),(()=>{this.triggerOnChange(t.value.length-1,null,e)}))}handleItemUpdate(e,t){let n;this.setState((o=>{const i=ca({},o);return n=(0,pe.fromJS)(i.value[e].value).toJS(),i.value[e].value=t,i.value[e].editMode=!1,i}),(()=>{this.triggerOnChange(e,n,t)}))}handleChildrenOnChange(e,t){let n;this.setState((o=>{const i=ca({},o);return n=(0,pe.fromJS)(i.value[e].children).toJS(),i.value[e].children=t,i}),(()=>{this.triggerOnChange(e,n,t)}))}getListItemsCssClass(e){const{config:t}=this.props,n=["tyk-editable-list-items"];return n.push(t.displayType||"table"),"inline"===e&&n.push("tyk-editable-list-items--inline"),n.join(" ")}getFormInputKey(){return this.startIndex+=1,this.startIndex}getListItemText(e){const{config:n}=this.props;let o=null;switch(n.displayType){case"list":case"inline":o=e.value.reduce(((t,n,o)=>{const i=ua.getItemListValue(n);let r=", ";return o===e.value.length-1&&(r=""),t+i+r}),"");break;default:o=t().createElement(yi,null,n.components.map(((n,o)=>t().createElement(li,{key:this.getFormInputKey(),size:`md-${n.size} lg-${n.size}`},ua.getItemListValue(e.value[o])))))}return o}getMainFormButtonWidth(e){this.setState({buttonWidth:e})}setItemEditMode(e){const t=this.closeListItems();this.setState((n=>{const o=ca({},n);return o.value=t,o.value[e].editMode=!o.value[e].editMode,o}))}isInList(e,t){const{value:n}=this.state;let o=!1;return n.forEach(((n,i)=>{JSON.stringify(n.value)===JSON.stringify(t)&&(o=!(e>=0&&i===e))})),o}addValues(e){const{value:t}=this.state,{config:n}=this.props,o={editMode:!1,value:e},i={value:t.slice(0)};return n.children&&(o.children=[]),i.value.push(o),i}removeListItem(e){let t;this.setState((n=>{const o=n.value.slice(0);return t=o.splice(e,1),{value:o}}),(()=>{this.triggerOnChange(e,t,null)}))}closeListItems(){const{value:e}=this.state;return e.map((e=>{const t=ca({},e);return t.editMode?(t.editMode=!1,t):t}))}triggerOnChange(e,t,n){const{onChange:o}=this.props,{value:i}=this.state;o&&"function"==typeof o&&o(i.length?i:null,e,t,n)}genListItem(e,n){var o;const{config:i,disabled:r}=this.props,{buttonWidth:s,value:a}=this.state,l=(0,pe.fromJS)(i.components).toJS();return e.value.forEach(((e,t)=>{l[t].props.value=e})),t().createElement("li",{key:n,className:ua.getListItemCssClass(i.displayType),ref:this.dropdownListItemRef},t().createElement("div",{className:`tyk-editable-list-item__text ${i.displayType||"table"}${e.editMode?" edit-mode-wrapper":""}`},e.editMode?t().createElement(t().Fragment,null,t().createElement(oa,{buttonName:"Update",noLabels:i.noLabels,disabled:r,displayType:i.displayType,components:l,onSubmit:this.handleItemUpdate.bind(this,n),validate:this.isInList.bind(this,n),validationmessage:"This value is already in the list"}),t().createElement("button",{type:"button",className:"tyk-editable-list-action__button on-edit",onClick:this.removeListItem.bind(this,n),"aria-label":"remove"},t().createElement(g,{type:"trash"}))):t().createElement(t().Fragment,null,this.getListItemText(e,n),t().createElement("div",{className:"tyk-editable-list-item__controls",style:{display:"block",width:"inline"===i.displayType?"auto":`${s+60}px`}},t().createElement("button",{disabled:r,type:"button",className:"tyk-editable-list-action__button",onClick:this.setItemEditMode.bind(this,n),"aria-label":"edit"},t().createElement(g,{type:"edit"})),t().createElement("button",{disabled:r,type:"button",className:"tyk-editable-list-action__button",onClick:this.removeListItem.bind(this,n),"aria-label":"remove"},t().createElement(g,{type:"trash"}))))),i.children?t().createElement(ua,{disabled:r,onChange:this.handleChildrenOnChange.bind(this,n),config:i.children.config,value:(null==(o=a[n])?void 0:o.children)||[]}):null)}genList(){const{config:e}=this.props,{buttonWidth:n,value:o}=this.state;return o&&0!==o.length?t().createElement(t().Fragment,null,"table"!==e.displayType&&e.displayType?null:t().createElement("div",{className:"tyk-editable-list__header",style:{paddingRight:`${n+60}px`}},t().createElement(yi,null,e.components.map(((e,n)=>t().createElement(li,{key:e.props.label||n,size:`md-${e.size||12} lg-${e.size||12}`},e.props.label))))),t().createElement("ul",{className:this.getListItemsCssClass(e.displayType)},o.map(((e,t)=>this.genListItem(e,t))))):null}render(){const{addValueOnFieldChange:e,config:n,error:o,disabled:i,label:r}=this.props,s=document.querySelector(n.appendTo)||document.querySelector("body");return t().createElement("div",{className:"tyk-editable-list"},r?t().createElement("label",null,r):null,t().createElement(oa,{addValueOnFieldChange:e,components:n.components,buttonName:n.formButtonTitle,buttonStyle:n.formButtonStyle,disabled:i,error:o,errorPersist:!!o,noLabels:n.noLabels,onSubmit:this.handleFormSubmit,validate:this.isInList.bind(this,-1),validationmessage:"This value is already in the list",getMainFormButtonWidth:this.getMainFormButtonWidth}),n.appendTo?dt().createPortal(this.genList(),s):this.genList())}}ua.propTypes={addValueOnFieldChange:r().bool,disabled:r().bool,error:r().string,config:r().instanceOf(Object),onChange:r().func,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),value:r().oneOfType([r().instanceOf(Array),r().instanceOf(Object)])};const ha=ua;function da({label:e,addButtonName:n,onAddRow:o,disabled:i,readOnly:r}){return t().createElement("div",{className:"editable-list__header"},e?t().createElement("label",null,e):null,!i&&!r&&t().createElement(U,{theme:"primary rounded-corners",onClick:o},n||"Add"))}da.propTypes={disabled:r().bool,readOnly:r().bool,onAddRow:r().func,addButtonName:r().string,label:r().oneOfType([r().string,r().element,r().node])};const pa=da;function ga({fields:e,readOnly:n}){return t().createElement("li",{className:"editable-list__item editable-list__item-header"},e.map((e=>{var n,o;return t().createElement("div",{key:(null==(n=null==e?void 0:e.props)?void 0:n.label)||JSON.stringify(e),className:`editable-list__item-cell editable-list__item--size-${(null==e?void 0:e.size)||12}`},null==(o=null==e?void 0:e.props)?void 0:o.label)})),t().createElement("div",{className:`editable-list__item-cell editable-list__item-action ${n&&"editable-list__item-action--read-only"}`},"Delete"))}ga.propTypes={fields:r().instanceOf(Array),readOnly:r().bool};const ma=ga;var fa=Object.defineProperty,ya=Object.defineProperties,va=Object.getOwnPropertyDescriptors,ba=Object.getOwnPropertySymbols,wa=Object.prototype.hasOwnProperty,xa=Object.prototype.propertyIsEnumerable,ka=(e,t,n)=>t in e?fa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Ca({fields:e,disabled:n,readOnly:o,errors:i,components:r,onChange:s,onDelete:a,value:l,rowIndex:c}){return t().createElement("li",{className:"editable-list__item"},r.map(((r,a)=>{var u,h,d;const p=e[a],g="function"==typeof p?p(c,a):p;return t().createElement("div",{key:`${c}-${a}`,className:`editable-list__item-cell editable-list__item--size-${(null==(u=e[a])?void 0:u.size)||12}`},t().createElement(r,(m=((e,t)=>{for(var n in t||(t={}))wa.call(t,n)&&ka(e,n,t[n]);if(ba)for(var n of ba(t))xa.call(t,n)&&ka(e,n,t[n]);return e})({},null==g?void 0:g.props),f={label:"",value:l[a],onChange:s.bind(null,a),error:null==i?void 0:i[a],disabled:n||(null==(h=null==g?void 0:g.props)?void 0:h.disabled),readOnly:o||(null==(d=null==g?void 0:g.props)?void 0:d.readOnly)},ya(m,va(f)))));var m,f})),t().createElement("div",{className:`editable-list__item-cell editable-list__item-action ${o&&"editable-list__item-action--read-only"}`},t().createElement(U,{iconOnly:!0,iconType:"trash",theme:"primary-link",onClick:a,disabled:o||n})))}Ca.propTypes={disabled:r().bool,readOnly:r().bool,rowIndex:r().oneOfType([r().string,r().number]),fields:r().instanceOf(Array),errors:r().instanceOf(Array),components:r().instanceOf(Array),value:r().instanceOf(Array),onChange:r().func,onDelete:r().func};const $a=Ca;var Sa=Object.defineProperty,Ea=Object.defineProperties,Oa=Object.getOwnPropertyDescriptors,Ta=Object.getOwnPropertySymbols,Aa=Object.prototype.hasOwnProperty,_a=Object.prototype.propertyIsEnumerable,La=(e,t,n)=>t in e?Sa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;let Ma=1;function Ra({addButtonName:n,disabled:o,readOnly:i,fields:r,label:s,error:a,value:l=[],onChange:c=(()=>{}),hideOnEmpty:u=!0,wrapperClassName:h=""}){const[d,p]=(0,e.useState)(null),g=(e,t,n,o)=>{var i;const s=l?[...l]:[];if(l){const o=[...s[e]];o[t]=n,s[e]=o,s[e].id=l[e].id}else s[e]=[...new Array(r.length)],s[e][t]=n;if((null==(i=null==d?void 0:d[e])?void 0:i[t])&&o){const n=[...d],o=[...n[e]];o[t]=null,n[e]=o,p(n)}c(s)},m=(0,e.useMemo)((()=>r.map((n=>{const o="function"==typeof n?n():n;return i=(null==o?void 0:o.component)||null,n=>{var o=n,{onChange:r,validate:s,error:a}=o,l=((e,t)=>{var n={};for(var o in e)Aa.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ta)for(var o of Ta(e))t.indexOf(o)<0&&_a.call(e,o)&&(n[o]=e[o]);return n})(o,["onChange","validate","error"]);const[c,u]=(0,e.useState)(null),h=(0,e.useCallback)((e=>{const t=(null==e?void 0:e.target)?["radio","checkbox"].includes(e.target.type)?e.target.checked:null==e?void 0:e.target.value:e;let n=!0;if(s&&"function"==typeof s){const e=s(t);n=!e,u(e)}r(t,n)}),[s,r]);return t().createElement(i,(d=((e,t)=>{for(var n in t||(t={}))Aa.call(t,n)&&La(e,n,t[n]);if(Ta)for(var n of Ta(t))_a.call(t,n)&&La(e,n,t[n]);return e})({},l),Ea(d,Oa({onChange:h,error:c||a}))));var d};var i}))),[]),f=e=>{if(!l)return;const t=[...l];t.splice(e,1),c(t)};return t().createElement("div",{className:`editable-list__wrapper tyk-form-group tyk-form-group--default ${a?"has-error":""} ${h}`},t().createElement(pa,{disabled:o,readOnly:i,label:s,addButtonName:n,onAddRow:()=>{const e=((e,t)=>{var n;return null==(n=t||[[void 0,void 0]])?void 0:n.map((t=>null==t?void 0:t.map(((t,n)=>{var o,i;return null==(i=(o=e[n].props).validate)?void 0:i.call(o,t)}))))})(r,l);if((e=>{var t;return Boolean(null==(t=null==e?void 0:e.flat())?void 0:t.filter(Boolean).length)})(e))return void p(e);const t=[...new Array(r.length)];t.id="row-"+Ma++,c([...l,t])}}),(null==l?void 0:l.length)||!u?t().createElement("ul",{className:"editable-list__list"},(l||[[]]).map(((e,n)=>t().createElement($a,{key:e.id||n,rowIndex:n,disabled:o,readOnly:i,fields:r,onChange:g.bind(null,n),onDelete:f.bind(null,n),value:e,errors:null==d?void 0:d[n],components:m}))),t().createElement(ma,{fields:r,readOnly:i})):null,a&&"true"!==a&&"false"!==a?t().createElement("p",{className:"tyk-form-control__error-message"},a):null)}Ra.propTypes={disabled:r().bool,readOnly:r().bool,addButtonName:r().string,label:r().oneOfType([r().string,r().element,r().node]),fields:r().instanceOf(Array),onChange:r().func,value:r().oneOfType([r().instanceOf(Object),r().instanceOf(Array)]),error:r().string,hideOnEmpty:r().bool,wrapperClassName:r().string};const Na=Ra;var Ia=Object.defineProperty,Pa=Object.defineProperties,Da=Object.getOwnPropertyDescriptors,Fa=Object.getOwnPropertySymbols,Ba=Object.prototype.hasOwnProperty,Wa=Object.prototype.propertyIsEnumerable,Ha=(e,t,n)=>t in e?Ia(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function ja(n){var o=n,{error:i,theme:r,labelwidth:s,wrapperClassName:a="",id:l,label:c,note:u,accept:h,value:d,onChange:p}=o,m=((e,t)=>{var n={};for(var o in e)Ba.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Fa)for(var o of Fa(e))t.indexOf(o)<0&&Wa.call(e,o)&&(n[o]=e[o]);return n})(o,["error","theme","labelwidth","wrapperClassName","id","label","note","accept","value","onChange"]);const f=(0,e.useRef)();return t().createElement("div",{className:function(){const e=[a,"tyk-form-group"],t=r?r.split(" "):[];return t.length&&t.forEach((t=>{e.push(`tyk-form-group--${t}`)})),s&&e.push("tyk-form-group--label-has-width"),i&&e.push("has-error"),e.join(" ")}()},c?t().createElement("label",{htmlFor:l,style:function(){const e={};return s&&(e.flexBasis=s),e}()},c):null,t().createElement("div",{className:"tyk-form-control__wrapper"},t().createElement("div",{className:"tyk-file-input__wrapper",style:function(){const e={};return s&&(e.flexBasis=`calc(100% - ${s} - 20px)`),e}()},t().createElement("input",(y=((e,t)=>{for(var n in t||(t={}))Ba.call(t,n)&&Ha(e,n,t[n]);if(Fa)for(var n of Fa(t))Wa.call(t,n)&&Ha(e,n,t[n]);return e})({accept:h,className:"tyk-form-control"},m),Pa(y,Da({onChange:function(e){p(e.target.files)},ref:f,type:"file"})))),f.current&&f.current.files.length>0?t().createElement("button",{onClick:function(){f.current.value="",p("")},type:"button","aria-label":"clear value"},t().createElement(g,{type:"xmark"})):null),u?t().createElement("p",{className:"tyk-form-control__help-block"},u):null),i&&"true"!==i&&"false"!==i?t().createElement("p",{className:"tyk-form-control__error-message"},i):null);var y}ja.propTypes={accept:r().string,disabled:r().bool,id:r().string,error:r().oneOfType([r().string,r().bool]),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,placeholder:r().string,theme:r().string,value:r().instanceOf(Object),wrapperClassName:r().string};const za=ja;var Va=Object.defineProperty,Ua=Object.defineProperties,Ga=Object.getOwnPropertyDescriptors,Ka=Object.getOwnPropertySymbols,qa=Object.prototype.hasOwnProperty,Ya=Object.prototype.propertyIsEnumerable,Ja=(e,t,n)=>t in e?Va(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Xa extends e.Component{static getAddon(e){return t().createElement("div",{className:"tyk-input-group__addon"},e)}constructor(e){super(e);const{value:t}=this.props;this.state={initValue:t,stateValue:t},this.handleOnChange=this.handleOnChange.bind(this)}componentDidUpdate(e){const{isfield:t,value:n,onChange:o}=this.props;t||e.value===n||this.setState({stateValue:n},(()=>{o&&o(n)}))}handleOnChange(e){const{onChange:t,isfield:n}=this.props,o=e.target.value;n?t(o):this.setState({stateValue:o},(()=>{t&&t(o)}))}getLabelStyles(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=e),t}getNonLabelWidth(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=`calc(100% - ${e} - 20px)`),t}getInputError(){const{error:e}=this.props;return e&&"true"!==e&&"false"!==e?t().createElement("p",{className:"tyk-form-control__error-message"},e):null}getCssClasses(){const{error:e,theme:t,labelwidth:n,inputgroupaddonleft:o,inputgroupaddonright:i}=this.props,r=["tyk-form-group"],s=t?t.split(" "):[];return s.length&&s.forEach((e=>{r.push(`tyk-form-group--${e}`)})),o&&r.push("tyk-form-group--addon-left"),i&&r.push("tyk-form-group--addon-right"),n&&r.push("tyk-form-group--label-has-width"),e&&r.push("has-error"),r.join(" ")}getInputGroupAddon(){const{inputgroupaddonleft:e,inputgroupaddonright:n}=this.props;return t().createElement("div",{className:"tyk-input-group"},e?Xa.getAddon(e):null,this.getInputComponent(),n?Xa.getAddon(n):null)}getInputComponent(){const e=this.props,{isfield:n,onChange:o,value:i}=e,r=((e,t)=>{var n={};for(var o in e)qa.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ka)for(var o of Ka(e))t.indexOf(o)<0&&Ya.call(e,o)&&(n[o]=e[o]);return n})(e,["isfield","onChange","value"]),{stateValue:s}=this.state;return t().createElement("input",(a=((e,t)=>{for(var n in t||(t={}))qa.call(t,n)&&Ja(e,n,t[n]);if(Ka)for(var n of Ka(t))Ya.call(t,n)&&Ja(e,n,t[n]);return e})({autoComplete:"off",className:"tyk-form-control"},r),l={onChange:this.handleOnChange,value:n?i:s},Ua(a,Ga(l))));var a,l}reset(){const{initValue:e}=this.state;this.setState({stateValue:e})}render(){const{label:e,id:n,inputgroupaddonleft:o,inputgroupaddonright:i,note:r,readOnly:s,value:a}=this.props;return t().createElement("div",{className:this.getCssClasses()},e?t().createElement("label",{htmlFor:n,style:this.getLabelStyles()},e):null,!s&&t().createElement("div",{className:"tyk-form-control__wrapper",style:this.getNonLabelWidth()},o||i?this.getInputGroupAddon():this.getInputComponent(),r?t().createElement("p",{className:"tyk-form-control__help-block"},r):null,this.getInputError()),s&&t().createElement("div",{className:"tyk-form-control--readonly"},a||"-"))}}Xa.propTypes={disabled:r().bool,readOnly:r().bool,id:r().string,isfield:r().bool,error:r().oneOfType([r().string,r().bool]),inputgroupaddonleft:r().oneOfType([r().element,r().node,r().string]),inputgroupaddonright:r().oneOfType([r().element,r().node,r().string]),label:r().oneOfType([r().string,r().element,r().node]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,placeholder:r().string,theme:r().string,value:r().oneOfType([r().number,r().string])};const Qa=Xa;var Za=Object.defineProperty,el=Object.defineProperties,tl=Object.getOwnPropertyDescriptors,nl=Object.getOwnPropertySymbols,ol=Object.prototype.hasOwnProperty,il=Object.prototype.propertyIsEnumerable,rl=(e,t,n)=>t in e?Za(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,sl=(e,t)=>{for(var n in t||(t={}))ol.call(t,n)&&rl(e,n,t[n]);if(nl)for(var n of nl(t))il.call(t,n)&&rl(e,n,t[n]);return e};function al(n,o){var i=n,{error:r,onChange:s,readOnly:a,id:l,inputgroupaddonleft:c,inputgroupaddonright:u,label:h,labelwidth:d,note:p,theme:g,value:m,wrapperClassName:f=""}=i,y=((e,t)=>{var n={};for(var o in e)ol.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&nl)for(var o of nl(e))t.indexOf(o)<0&&il.call(e,o)&&(n[o]=e[o]);return n})(i,["error","onChange","readOnly","id","inputgroupaddonleft","inputgroupaddonright","label","labelwidth","note","theme","value","wrapperClassName"]);const v=(0,e.useRef)();(0,e.useImperativeHandle)(o,(()=>({focus:()=>{v.current.focus()}})));const b=e=>t().createElement("div",{className:"tyk-input-group__addon"},e),w=e=>{s(e,e.target.value)},x=()=>{return t().createElement("input",(e=sl({autoComplete:"off",className:"tyk-form-control"},y),el(e,tl({onChange:w,value:m,ref:v}))));var e};return t().createElement("div",{className:(()=>{const e=[f,"tyk-form-group"],t=g?g.split(" "):[];return t.length&&t.forEach((t=>{e.push(`tyk-form-group--${t}`)})),c&&e.push("tyk-form-group--addon-left"),u&&e.push("tyk-form-group--addon-right"),d&&e.push("tyk-form-group--label-has-width"),r&&e.push("has-error"),e.join(" ")})()},h?t().createElement("label",{htmlFor:l,style:sl({},d&&{flexBasis:d})},h):null,!a&&t().createElement("div",{className:"tyk-form-control__wrapper",style:sl({},d&&{flexBasis:`calc(100% - ${d} - 20px)`})},c||u?t().createElement("div",{className:"tyk-input-group"},c?b(c):null,x(),u?b(u):null):x(),p?t().createElement("p",{className:"tyk-form-control__help-block"},p):null,r&&"true"!==r&&"false"!==r?t().createElement("p",{className:"tyk-form-control__error-message"},r):null),a&&t().createElement("div",{className:"tyk-form-control--readonly"},m||"-"))}al.propTypes={disabled:r().bool,readOnly:r().bool,id:r().string,error:r().oneOfType([r().string,r().bool]),inputgroupaddonleft:r().oneOfType([r().element,r().node,r().string]),inputgroupaddonright:r().oneOfType([r().element,r().node,r().string]),label:r().oneOfType([r().string,r().element,r().node]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,placeholder:r().string,theme:r().string,value:r().oneOfType([r().number,r().string]),wrapperClassName:r().string};const ll=(0,e.forwardRef)(al),cl=(0,e.createContext)();function ul({item:n,itemType:o,searchValue:i,onChange:r}){const s=(0,e.useCallback)((e=>(null==e?void 0:e.length)>0?e.some((e=>{var t;return null==(t=n[e])?void 0:t.includes(i)})):JSON.stringify(n).includes(i)),[n,i]),a=(0,e.useCallback)((()=>{r(n)}),[r,n]);return t().createElement(cl.Consumer,null,(e=>s(e.fieldsToSearchOn)?t().createElement("li",null,t().createElement("div",null,t().createElement("span",{className:"tyk-multiselect-item__name"},e.itemDisplayTemplate?e.itemDisplayTemplate(n):JSON.stringify(n)),t().createElement("span",{className:"tyk-multiselect-item__controls"},t().createElement(U,{iconType:"normal"===o?"plus":"minus",iconOnly:!0,onClick:a,disabled:e.disabled||e.maxSelections&&e.maxSelections===e.nrSelectedItems&&"normal"===o}),t().createElement(U,{iconType:e.opened[n.id]?"chevron-up":"chevron-down",iconOnly:!0,onClick:()=>e.onGetItemDetails(n)}))),n.details?t().createElement(R,{collapsed:!e.opened[n.id],className:"tyk-multiselect-item__details"},((e,t)=>e.detailsDisplayTemplate?e.detailsDisplayTemplate(t):JSON.stringify(t.details))(e,n)):((e,n)=>{const{opened:o}=e;return o[n.id]?t().createElement(ye,{position:"relative"}):null})(e,n)):null))}ul.propTypes={item:r().instanceOf(Object),itemType:r().string,searchValue:r().string,onChange:r().func};const hl=ul;function dl({inputPlaceholder:n,noItemsMessage:o,items:i,onCustomSearch:r,onChange:s,customSearch:a,panelType:l,serverLoad:c,itemsPageNumber:u,itemsNrPages:h,loadMoreItems:d}){const[p,m]=(0,e.useState)(""),f=(0,e.useRef)(0),y=(0,e.useRef)(),v=(0,e.useCallback)((e=>{r?r(e):m(e)}),[r]),b=(0,e.useCallback)((e=>{let t=structuredClone(i);t=t.filter((t=>e.id!==t.id)),s(t,e)}),[i]);function w(){return t().createElement("ul",{className:"tyk-multiselect__list"+(c?"":" tyk-multiselect__list--scroll"),ref:y},i.map((e=>t().createElement(hl,{itemType:l,key:(f.current+=1,f.current),onChange:b,searchValue:a?"":p,item:e}))))}return t().createElement("div",{className:"tyk-multiselect__panel"},t().createElement(Qa,{inputgroupaddonleft:t().createElement(g,{type:"magnifying-glass"}),name:"search",onChange:v,placeholder:n,value:p}),i.length?c?t().createElement(At,{refChild:y,hasMore:h>u,loadMore:d,pageNumber:u},w()):w():t().createElement(be,{theme:"info"},o))}dl.propTypes={customSearch:r().bool,onCustomSearch:r().func,panelType:r().string,onChange:r().func,items:r().instanceOf(Array),itemsPageNumber:r().number,itemsNrPages:r().number,inputPlaceholder:r().string,loadMoreItems:r().func,noItemsMessage:r().string,serverLoad:r().bool};const pl=dl;var gl=Object.defineProperty,ml=Object.defineProperties,fl=Object.getOwnPropertyDescriptors,yl=Object.getOwnPropertySymbols,vl=Object.prototype.hasOwnProperty,bl=Object.prototype.propertyIsEnumerable,wl=(e,t,n)=>t in e?gl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const xl=(e,t)=>t.filter((t=>!e.find((e=>e.id===t.id))));function kl({customSearch:n,entityNamePlural:o,disabled:i,error:r,getItemDetails:s,itemDisplayTemplate:a,detailsDisplayTemplate:l,fieldsToSearchOn:c,items:u,itemsPageNumber:h,itemsNrPages:d,loadMoreItems:p,maxSelections:g,note:m,value:f,onChange:y,wrapperClassName:v=""}){const[b,w]=(0,e.useState)({}),x=(0,e.useCallback)((e=>{w((t=>{return n=((e,t)=>{for(var n in t||(t={}))vl.call(t,n)&&wl(e,n,t[n]);if(yl)for(var n of yl(t))bl.call(t,n)&&wl(e,n,t[n]);return e})({},t),o={[e.id]:!t[e.id]},ml(n,fl(o));var n,o})),s&&s(e)}),[s]),k=(0,e.useCallback)((()=>[v,"tyk-multiselect",r&&"has-error"].filter(Boolean).join(" ")),[v,r]),C=(0,e.useCallback)(((e,t)=>{const n=structuredClone(f);n.unshift(t),y(n,t,"added")}),[f]),$=(0,e.useCallback)(((e,t)=>{y(e,t,"removed")}),[u]),S=(0,e.useMemo)((()=>({disabled:i,itemDisplayTemplate:a,detailsDisplayTemplate:l,fieldsToSearchOn:c,maxSelections:g,nrSelectedItems:f.length,onGetItemDetails:x,opened:b})),[i,a,l,c,g,f,x,b]);return t().createElement(t().Fragment,null,t().createElement("div",{className:k()},t().createElement(cl.Provider,{value:S},t().createElement("div",{className:"tyk-multiselect__header"},t().createElement("div",null,f.length," ","Selected"," ",o),t().createElement("div",null,"Select from existing",o)),t().createElement("div",{className:"tyk-multiselect__panel-wrapper"},t().createElement(pl,{inputPlaceholder:`Search through selected ${o}`,noItemsMessage:`Selected ${o} will show here`,items:f,onChange:$,panelType:"selected"}),t().createElement(pl,{inputPlaceholder:`Search existing ${o}`,noItemsMessage:`No ${o} to display`,entityNamePlural:o,customSearch:!!n,onCustomSearch:n,items:xl(f,u),onChange:C,serverLoad:!!p,loadMoreItems:p,itemsPageNumber:h,itemsNrPages:d,panelType:"normal"})))),t().createElement("div",null,m?t().createElement("p",{className:"tyk-form-control__help-block"},m):null),r&&"true"!==r&&"false"!==r?t().createElement("p",{className:"tyk-form-control__error-message"},r):null)}kl.propTypes={customSearch:r().func,disabled:r().bool,error:r().string,entityNamePlural:r().string,items:r().instanceOf(Array),itemDisplayTemplate:r().func,detailsDisplayTemplate:r().func,fieldsToSearchOn:r().instanceOf(Array),onChange:r().func,getItemDetails:r().func,itemsPageNumber:r().number,itemsNrPages:r().number,loadMoreItems:r().func,note:r().string,maxSelections:r().number,value:r().instanceOf(Array),wrapperClassName:r().string};const Cl=kl;var $l=Object.defineProperty,Sl=Object.defineProperties,El=Object.getOwnPropertyDescriptors,Ol=Object.getOwnPropertySymbols,Tl=Object.prototype.hasOwnProperty,Al=Object.prototype.propertyIsEnumerable,_l=(e,t,n)=>t in e?$l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ll=(e,t)=>{for(var n in t||(t={}))Tl.call(t,n)&&_l(e,n,t[n]);if(Ol)for(var n of Ol(t))Al.call(t,n)&&_l(e,n,t[n]);return e};function Ml(e){var n=e,{label:o,input:i,note:r,inline:s,nospace:a,theme:l="",disabled:c,readOnly:u,wrapperClassName:h=""}=n,d=((e,t)=>{var n={};for(var o in e)Tl.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ol)for(var o of Ol(e))t.indexOf(o)<0&&Al.call(e,o)&&(n[o]=e[o]);return n})(n,["label","input","note","inline","nospace","theme","disabled","readOnly","wrapperClassName"]);const p=[s?"tyk-radio--inline":"tyk-radio",h,a&&"no-margin",...l?l.split(" ").filter(Boolean).map((e=>`tyk-radio--theme-${e}`)):[],(u||c)&&"tyk-radio--is-disabled"].filter(Boolean).join(" ");return t().createElement("div",{className:p},t().createElement("label",null,t().createElement("input",(g=Ll(Ll({},i),d),Sl(g,El({type:"radio",disabled:u||c})))),o),r&&t().createElement("p",{className:"tyk-form-control__help-block"},r));var g}Ml.propTypes={disabled:r().bool,readOnly:r().bool,inline:r().bool,theme:r().string,input:r().instanceOf(Object),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),name:r().string,nospace:r().bool,value:r().string,note:r().oneOfType([r().string,r().element,r().node]),wrapperClassName:r().string};const Rl=Ml;var Nl=Object.defineProperty,Il=Object.defineProperties,Pl=Object.getOwnPropertyDescriptors,Dl=Object.getOwnPropertySymbols,Fl=Object.prototype.hasOwnProperty,Bl=Object.prototype.propertyIsEnumerable,Wl=(e,t,n)=>t in e?Nl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Hl(n){const o=n,{value:i,onChange:r,onBlur:s,isfield:a,label:l,labelwidth:c,id:u,note:h,readOnly:d,options:p,error:g,theme:m,wrapperClassName:f=""}=o,y=((e,t)=>{var n={};for(var o in e)Fl.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Dl)for(var o of Dl(e))t.indexOf(o)<0&&Bl.call(e,o)&&(n[o]=e[o]);return n})(o,["value","onChange","onBlur","isfield","label","labelwidth","id","note","readOnly","options","error","theme","wrapperClassName"]),[v,b]=(0,e.useState)(i);(0,e.useEffect)((()=>{a||v===i||(b(i),r&&r(i))}),[v,i]);const w=(0,e.useCallback)((e=>{const t=p.find((t=>t.id===e.target.value));a||b(t),r(t.id?t:null)}),[p,a,r]),x=(0,e.useCallback)((()=>{s&&s(i)}),[s]),k=(0,e.useCallback)((()=>g&&"true"!==g&&"false"!==g?t().createElement("p",{className:"tyk-form-control__error-message"},g):null),[g]),C=(0,e.useCallback)((()=>["tyk-form-group",f,...m?m.split(" ").map((e=>`tyk-form-group--${e}`)):[],c&&"tyk-form-group--label-has-width",g&&"has-error"].filter(Boolean).join(" ")),[f,m,c,g]),$=(0,e.useCallback)((()=>c?{flexBasis:c}:{}),[c]),S=(0,e.useCallback)((()=>c?{flexBasis:`calc(100% - ${c} - 20px)`}:{}),[c]),E=(0,e.useCallback)((()=>{const e=a&&i?i:v;return t().createElement("select",(n=((e,t)=>{for(var n in t||(t={}))Fl.call(t,n)&&Wl(e,n,t[n]);if(Dl)for(var n of Dl(t))Bl.call(t,n)&&Wl(e,n,t[n]);return e})({className:"tyk-form-control tyk-select"},y),o={onChange:w,onBlur:x,value:e?e.id:""},Il(n,Pl(o))),p.map((e=>t().createElement("option",{key:e.id,value:e.id},e.name))));var n,o}),[a,i,v,w,x,p,y]);return t().createElement("div",{className:C()},l?t().createElement("label",{htmlFor:u,style:$()},l):null,!d&&t().createElement("div",{className:"tyk-form-control__wrapper",style:S()},E(),h?t().createElement("p",{className:"tyk-form-control__help-block"},h):null,k()),d&&t().createElement("div",{className:"tyk-form-control--readonly"},i||"-"))}Hl.propTypes={disabled:r().bool,readOnly:r().bool,id:r().string,isfield:r().bool,error:r().oneOfType([r().string,r().bool]),options:r().instanceOf(Array),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,name:r().string,note:r().string,onBlur:r().func,onChange:r().func,placeholder:r().string,theme:r().string,value:r().oneOfType([r().string,r().object]),wrapperClassName:r().string};const jl=Hl;var zl=Object.defineProperty,Vl=Object.defineProperties,Ul=Object.getOwnPropertyDescriptors,Gl=Object.getOwnPropertySymbols,Kl=Object.prototype.hasOwnProperty,ql=Object.prototype.propertyIsEnumerable,Yl=(e,t,n)=>t in e?zl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Jl(e){const{checkboxalticon:n,items:o,itemTemplate:i,value:r,noItemsMessage:s="No items in the list",onChange:a,theme:l,primaryKey:c,wrapperClassName:u=""}=e,h=e=>{const t=structuredClone(r),n=t.findIndex((t=>JSON.stringify(t)===JSON.stringify(Array.isArray(t)?e.target.value.split(","):e.target.value)));if(e.target.checked&&-1===n){const n=e.target.value.split(","),o=n.length>1?n:e.target.value;t.push(o)}else!e.target.checked&&n>-1&&t.splice(n,1);a&&a(t)},d=e=>{const t=[];return n&&t.push("tyk-selectable-list__item--with-icon"),e&&t.push("tyk-selectable-list__item--active"),t.join(" ")};return t().createElement(jt,(p=((e,t)=>{for(var n in t||(t={}))Kl.call(t,n)&&Yl(e,n,t[n]);if(Gl)for(var n of Gl(t))ql.call(t,n)&&Yl(e,n,t[n]);return e})({},e),Vl(p,Ul({theme:l||"default",className:`tyk-selectable-list ${u}`}))),o.length?o.map(((e,o)=>{return t().createElement(jt.Item,{key:o,className:d(r.includes(e[c]))},t().createElement("label",null,t().createElement("div",{className:"tyk-selectable-list__item"},i?i(e):e.name),t().createElement("input",{type:"checkbox",checked:(s=r,a=e[c],Boolean(s.find((e=>JSON.stringify(a)===JSON.stringify(e))))),onChange:h.bind(e),value:e[c]}),n?t().createElement(g,{type:n}):null));var s,a})):t().createElement("li",{className:"tyk-selectable-list__no-items-message"},t().createElement(be,{theme:"info"},s)));var p}Jl.propTypes={items:r().instanceOf(Array),itemTemplate:r().oneOfType([r().node,r().element,r().string,r().func]),value:r().instanceOf(Array),onChange:r().func,primaryKey:r().string,noItemsMessage:r().string,checkboxalticon:r().oneOfType([r().node,r().element,r().string]),theme:r().string,wrapperClassName:r().string},Jl.defaultProps={items:[],primaryKey:"id",value:[]};const Xl=Jl;var Ql=Object.defineProperty,Zl=Object.getOwnPropertySymbols,ec=Object.prototype.hasOwnProperty,tc=Object.prototype.propertyIsEnumerable,nc=(e,t,n)=>t in e?Ql(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,oc=(e,t)=>{for(var n in t||(t={}))ec.call(t,n)&&nc(e,n,t[n]);if(Zl)for(var n of Zl(t))tc.call(t,n)&&nc(e,n,t[n]);return e};function ic(e){var n=e,{id:o,input:i,label:r,note:s,error:a,theme:l,labelwidth:c,value:u,readOnly:h,wrapperClassName:d}=n,p=((e,t)=>{var n={};for(var o in e)ec.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Zl)for(var o of Zl(e))t.indexOf(o)<0&&tc.call(e,o)&&(n[o]=e[o]);return n})(n,["id","input","label","note","error","theme","labelwidth","value","readOnly","wrapperClassName"]);const g=["tyk-form-group",d,...l?l.split(" ").map((e=>`tyk-form-group--${e}`)):[],c&&"tyk-form-group--label-has-width",a&&"has-error"].filter(Boolean).join(" ");return t().createElement("div",{className:g},r?t().createElement("label",{htmlFor:o,style:c?{flexBasis:c}:{}},r):null,!h&&t().createElement("div",{className:"tyk-form-control__wrapper",style:c?{flexBasis:`calc(100% - ${c} - 20px)`}:{}},t().createElement("textarea",oc(oc({className:"tyk-form-control"},p),i),u),s?t().createElement("p",{className:"tyk-form-control__help-block"},s):null,a&&"true"!==a&&"false"!==a?t().createElement("p",{className:"tyk-form-control__error-message"},a):null),h&&t().createElement("div",{className:"tyk-form-control--readonly"},u||"-"))}ic.propTypes={disabled:r().bool,readOnly:r().bool,input:r().instanceOf(Object),error:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,id:r().string,theme:r().string,value:r().string,wrapperClassName:r().string};const rc=ic,sc=(0,e.createContext)();class ac extends e.Component{static getNotchCssClasses(e){return["tyk-toggle__item-notch",`tyk-toggle__item-notch--${e.type}`].join(" ")}constructor(t){super(t),this.itemRef=(0,e.createRef)()}componentDidMount(){const{context:e,value:t}=this.props;e.value===t&&e.saveSelectedRef(this.itemRef)}componentDidUpdate(e){const{context:t,value:n}=this.props;e.context.value!==t.value&&t.value===n&&t.saveSelectedRef(this.itemRef)}onChange(e){const{context:t,value:n}=this.props,{disabled:o,readOnly:i}=t;o||i||t.onItemSelected("single"===t.type?!t.value:n,e)}render(){const{context:e,label:n,name:o,value:i}=this.props;return t().createElement("li",{className:"tyk-toggle__item "+(!e.value||"single"!==e.type&&e.value!==i?"":"tyk-toggle__item--active"),ref:this.itemRef},t().createElement("label",null,t().createElement("input",{type:"single"===e.type?"checkbox":"radio",name:o,checked:e.value===i,onChange:this.onChange.bind(this),value:i}),n?t().createElement("span",null,n):t().createElement("span",{className:"empty-toggle"}," "),"single"===e.type?t().createElement("span",{className:ac.getNotchCssClasses(e)}):null))}}ac.propTypes={context:r().instanceOf(Object),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),name:r().string,value:r().string};const lc=ac;var cc=Object.defineProperty,uc=Object.defineProperties,hc=Object.getOwnPropertyDescriptors,dc=Object.getOwnPropertySymbols,pc=Object.prototype.hasOwnProperty,gc=Object.prototype.propertyIsEnumerable,mc=(e,t,n)=>t in e?cc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function fc(e,n){var o=e,{children:i}=o,r=((e,t)=>{var n={};for(var o in e)pc.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&dc)for(var o of dc(e))t.indexOf(o)<0&&gc.call(e,o)&&(n[o]=e[o]);return n})(o,["children"]);return t().createElement(sc.Consumer,null,(e=>{return t().createElement(lc,(o=((e,t)=>{for(var n in t||(t={}))pc.call(t,n)&&mc(e,n,t[n]);if(dc)for(var n of dc(t))gc.call(t,n)&&mc(e,n,t[n]);return e})({},r),uc(o,hc({context:e,ref:n}))),i);var o}))}fc.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string])};const yc=(0,e.forwardRef)(fc);function vc({className:n,disabled:o,readOnly:i,size:r,theme:s,direction:a,onDark:l,wrapperClassName:c="",onChange:u,labelwidth:h,label:d,separated:p,children:g,type:m,value:f,error:y}){const[v,b]=(0,e.useState)(null),w=(0,e.useRef)(),x=(0,e.useRef)(),k=[c,n,"tyk-toggle",`tyk-toggle--disabled-${i||o}`,`tyk-toggle--${r||"md"}`,`tyk-toggle--${s}`,`tyk-toggle--${a}`,l&&"tyk-toggle--on-dark"].filter(Boolean).join(" "),C=(0,e.useCallback)(((e,t)=>{u&&u(e,t)}),[u]),$=(0,e.useCallback)((()=>h?{flexBasis:h}:{}),[h]),S=(0,e.useCallback)((()=>{if(!v||p)return{};const e=v.current.offsetWidth;return{left:v.current.getBoundingClientRect().left-x.current.getBoundingClientRect().left+4+"px",width:e-8+"px"}}),[v,p]),E=(0,e.useMemo)((()=>({disabled:o,readOnly:i,onItemSelected:C,saveSelectedRef:b,separated:p,type:m,value:f})),[o,i,C,p,m,f]);return t().createElement(t().Fragment,null,t().createElement("div",{className:k,ref:x},t().createElement(sc.Provider,{value:E},d?t().createElement("label",{className:"tyk-toggle__label",style:$()},d):null,t().createElement("ul",{className:`tyk-toggle__list tyk-toggle__list--${m} ${y&&"tyk-toggle__list--has-error"} tyk-toggle__list--${p?"separated":"not-separated"}`},g,"multiple"!==m||p?null:t().createElement("li",{className:"tyk-toggle__notch",ref:w,style:S()})))),y&&t().createElement("p",{className:"tyk-form-control__error-message"},y))}vc.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,disabled:r().bool,readOnly:r().bool,error:r().string,onChange:r().func,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,theme:r().string,type:r().string,size:r().string,separated:r().bool,direction:r().string,value:r().oneOfType([r().bool,r().string]),onDark:r().bool,wrapperClassName:r().string},vc.defaultProps={separated:!1,theme:"primary",type:"single",direction:"row"},vc.Item=yc;const bc=vc,wc={FORM_DEBOUNCE:200};function xc(e,t){wc[e]=t}const kc=wc;var Cc=Object.defineProperty,$c=Object.defineProperties,Sc=Object.getOwnPropertyDescriptors,Ec=Object.getOwnPropertySymbols,Oc=Object.prototype.hasOwnProperty,Tc=Object.prototype.propertyIsEnumerable,Ac=(e,t,n)=>t in e?Cc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,_c=(e,t)=>{for(var n in t||(t={}))Oc.call(t,n)&&Ac(e,n,t[n]);if(Ec)for(var n of Ec(t))Tc.call(t,n)&&Ac(e,n,t[n]);return e},Lc=(e,t)=>$c(e,Sc(t));function Mc(e,t){return t.split(/[\][.]/).filter(Boolean).reduce(((e,t)=>e?e[t]:e),e)}const Rc=(n,o)=>i=>{var r,s=i,{field:a,form:l}=s,c=((e,t)=>{var n={};for(var o in e)Oc.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ec)for(var o of Ec(e))t.indexOf(o)<0&&Tc.call(e,o)&&(n[o]=e[o]);return n})(s,["field","form"]);const u="number"==typeof kc.FORM_DEBOUNCE?kc.FORM_DEBOUNCE:200,[h,d]=(0,e.useState)(a.value),p=_c({getOnChangeProps:()=>({}),hasIsFieldProp:!1},o),g=(0,e.useCallback)((()=>{const e=e=>e();return!1===c.debounce||!1===kc.FORM_DEBOUNCE&&!c.debounce?e:function(e,t){let n;return(...o)=>{clearTimeout(n),n=setTimeout(e,t,...o)}}(e,"number"==typeof c.debounce?c.debounce:u)})(),[]),m=e=>{const t=(null==(n=e)?void 0:n.target)?"INPUT"!==n.target.nodeName||"checkbox"!==n.target.type&&"radio"!==n.target.type?n.target.value:n.target.checked:n;var n;const o=p.getOnChangeProps(t,a,l,c),i=o.value||c.value||t;g((()=>{"function"==typeof c.onChange&&c.onChange(i),a.onChange({target:_c({name:a.name,value:i},o)})})),d(i)},f=(Mc(l.touched,a.name)||Boolean(l.submitCount))&&Mc(l.errors,a.name),y="string"==typeof f?f:"";(0,e.useEffect)((()=>{d(a.value)}),[a.value]),(null==(r=l.status)?void 0:r.disabled)&&(c.disabled=!0);const v=_c({},c);return delete v.debounce,Object.hasOwn(v,"className")&&void 0===v.className&&delete v.className,Object.hasOwn(v,"children")&&void 0===v.children&&delete v.children,t().createElement(n,Lc(_c(_c(Lc(_c({},a),{error:y}),p.hasIsFieldProp?{isfield:!0}:{}),v),{checked:"string"==typeof c.value?a.value===c.value:a.value,onChange:m,value:h,input:{value:h,onChange:m}}))},Nc=Rc(Io,{getOnChangeProps:e=>({checked:e})}),Ic=Rc(gr),Pc=Rc(Sr),Dc=Rc(Wr),Fc=Rc(Zr),Bc=Rc(ha,{getOnChangeProps:e=>({value:e||[]})}),Wc=Rc(Na),Hc=Rc(za),jc=Rc(Qa,{hasIsFieldProp:!0}),zc=Rc(ll),Vc=Rc(Cl),Uc=Rc(Rl,{getOnChangeProps:(e,t,n,o)=>({checked:e===o.value,value:o.value})}),Gc=Rc(jl,{hasIsFieldProp:!0}),Kc=Rc(Xl),qc=Rc(rc),Yc=Rc(bc);var Jc=Object.defineProperty,Xc=Object.defineProperties,Qc=Object.getOwnPropertyDescriptors,Zc=Object.getOwnPropertySymbols,eu=Object.prototype.hasOwnProperty,tu=Object.prototype.propertyIsEnumerable,nu=(e,t,n)=>t in e?Jc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ou=(e,t)=>{for(var n in t||(t={}))eu.call(t,n)&&nu(e,n,t[n]);if(Zc)for(var n of Zc(t))tu.call(t,n)&&nu(e,n,t[n]);return e};class iu extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.prop,{onChange:n}=t;n((0,pe.fromJS)(e))}getInputError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)eu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Zc)for(var o of Zc(e))t.indexOf(o)<0&&tu.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(gr,(i=ou(ou({},n),o),r={error:this.getInputError()},Xc(i,Qc(r))));var i,r}}iu.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const ru=iu;var su=Object.defineProperty,au=Object.defineProperties,lu=Object.getOwnPropertyDescriptors,cu=Object.getOwnPropertySymbols,uu=Object.prototype.hasOwnProperty,hu=Object.prototype.propertyIsEnumerable,du=(e,t,n)=>t in e?su(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class pu extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}getComboboxError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=((e,t)=>{var n={};for(var o in e)uu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&cu)for(var o of cu(e))t.indexOf(o)<0&&hu.call(e,o)&&(n[o]=e[o]);return n})(this.props,[]);return t().createElement(Sr,(n=((e,t)=>{for(var n in t||(t={}))uu.call(t,n)&&du(e,n,t[n]);if(cu)for(var n of cu(t))hu.call(t,n)&&du(e,n,t[n]);return e})({},e),o={onChange:this.handleOnChange,value:e.input.value?e.input.value.toJS():e.input.value,error:this.getComboboxError()},au(n,lu(o))));var n,o}}pu.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const gu=pu;var mu=Object.defineProperty,fu=Object.defineProperties,yu=Object.getOwnPropertyDescriptors,vu=Object.getOwnPropertySymbols,bu=Object.prototype.hasOwnProperty,wu=Object.prototype.propertyIsEnumerable,xu=(e,t,n)=>t in e?mu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class ku extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}render(){const e=this.props,{children:n,input:o}=e,i=((e,t)=>{var n={};for(var o in e)bu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&vu)for(var o of vu(e))t.indexOf(o)<0&&wu.call(e,o)&&(n[o]=e[o]);return n})(e,["children","input"]);return t().createElement(Oi,(r=((e,t)=>{for(var n in t||(t={}))bu.call(t,n)&&xu(e,n,t[n]);if(vu)for(var n of vu(t))wu.call(t,n)&&xu(e,n,t[n]);return e})({},i),s={onSelect:this.handleOnChange,selectedItem:o.value},fu(r,yu(s))),n);var r,s}}ku.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),input:r().instanceOf(Object)};const Cu=ku;var $u=Object.defineProperty,Su=Object.defineProperties,Eu=Object.getOwnPropertyDescriptors,Ou=Object.getOwnPropertySymbols,Tu=Object.prototype.hasOwnProperty,Au=Object.prototype.propertyIsEnumerable,_u=(e,t,n)=>t in e?$u(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Lu=(e,t)=>{for(var n in t||(t={}))Tu.call(t,n)&&_u(e,n,t[n]);if(Ou)for(var n of Ou(t))Au.call(t,n)&&_u(e,n,t[n]);return e};function Mu(e){const n=e,{input:o}=n,i=((e,t)=>{var n={};for(var o in e)Tu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ou)for(var o of Ou(e))t.indexOf(o)<0&&Au.call(e,o)&&(n[o]=e[o]);return n})(n,["input"]);return t().createElement(po,(r=Lu(Lu({},o),i),s={onChange:o.onChange,value:o.value?o.value:0},Su(r,Eu(s))));var r,s}Mu.propTypes={input:r().instanceOf(Object)};const Ru=Mu;var Nu=Object.defineProperty,Iu=Object.defineProperties,Pu=Object.getOwnPropertyDescriptors,Du=Object.getOwnPropertySymbols,Fu=Object.prototype.hasOwnProperty,Bu=Object.prototype.propertyIsEnumerable,Wu=(e,t,n)=>t in e?Nu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Hu(e){const{input:n,meta:o,validationmessages:i}=e;return t().createElement(Wr,(r=((e,t)=>{for(var n in t||(t={}))Fu.call(t,n)&&Wu(e,n,t[n]);if(Du)for(var n of Du(t))Bu.call(t,n)&&Wu(e,n,t[n]);return e})({},e),s={onChange:e=>{const{onChange:t}=n;t((0,pe.fromJS)(e))},value:n.value?n.value.toJS():n.value,error:(()=>{const{touched:e,error:t,warning:n}=o;let r=null;return e&&t&&i[t]?r=i[t]:e&&n&&(r="warning"),r})()},Iu(r,Pu(s))));var r,s}Hu.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const ju=Hu;var zu=Object.defineProperty,Vu=Object.defineProperties,Uu=Object.getOwnPropertyDescriptors,Gu=Object.getOwnPropertySymbols,Ku=Object.prototype.hasOwnProperty,qu=Object.prototype.propertyIsEnumerable,Yu=(e,t,n)=>t in e?zu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Ju(e){const n=e,{input:o,meta:i,validationmessages:r}=n,s=((e,t)=>{var n={};for(var o in e)Ku.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Gu)for(var o of Gu(e))t.indexOf(o)<0&&qu.call(e,o)&&(n[o]=e[o]);return n})(n,["input","meta","validationmessages"]);return t().createElement(Zr,(a=((e,t)=>{for(var n in t||(t={}))Ku.call(t,n)&&Yu(e,n,t[n]);if(Gu)for(var n of Gu(t))qu.call(t,n)&&Yu(e,n,t[n]);return e})({},s),l={onChange:e=>{const{onChange:t}=o;t((0,pe.fromJS)(e))},value:o.value?o.value.toJS():o.value,error:(()=>{const{touched:e,error:t}=i;let n=null;return e&&t&&r[t]&&(n=r[t]),n})()},Vu(a,Uu(l))));var a,l}Ju.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Xu=Ju;var Qu=Object.defineProperty,Zu=Object.defineProperties,eh=Object.getOwnPropertyDescriptors,th=Object.getOwnPropertySymbols,nh=Object.prototype.hasOwnProperty,oh=Object.prototype.propertyIsEnumerable,ih=(e,t,n)=>t in e?Qu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class rh extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}getEditableListError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o}=e;let i=null;return n&&o&&t[o]&&(i=t[o]),i}render(){const e=((e,t)=>{var n={};for(var o in e)nh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&th)for(var o of th(e))t.indexOf(o)<0&&oh.call(e,o)&&(n[o]=e[o]);return n})(this.props,[]);return t().createElement(ha,(n=((e,t)=>{for(var n in t||(t={}))nh.call(t,n)&&ih(e,n,t[n]);if(th)for(var n of th(t))oh.call(t,n)&&ih(e,n,t[n]);return e})({},e),o={onChange:this.handleOnChange,value:e.input.value?e.input.value.toJS():null,error:this.getEditableListError()},Zu(n,eh(o))));var n,o}}rh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const sh=rh;var ah=Object.defineProperty,lh=Object.defineProperties,ch=Object.getOwnPropertyDescriptors,uh=Object.getOwnPropertySymbols,hh=Object.prototype.hasOwnProperty,dh=Object.prototype.propertyIsEnumerable,ph=(e,t,n)=>t in e?ah(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,gh=(e,t)=>{for(var n in t||(t={}))hh.call(t,n)&&ph(e,n,t[n]);if(uh)for(var n of uh(t))dh.call(t,n)&&ph(e,n,t[n]);return e};class mh extends e.Component{getInputError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)hh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&uh)for(var o of uh(e))t.indexOf(o)<0&&dh.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(za,(i=gh(gh({},n),o),r={error:this.getInputError()},lh(i,ch(r))));var i,r}}mh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const fh=mh;var yh=Object.defineProperty,vh=Object.defineProperties,bh=Object.getOwnPropertyDescriptors,wh=Object.getOwnPropertySymbols,xh=Object.prototype.hasOwnProperty,kh=Object.prototype.propertyIsEnumerable,Ch=(e,t,n)=>t in e?yh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,$h=(e,t)=>{for(var n in t||(t={}))xh.call(t,n)&&Ch(e,n,t[n]);if(wh)for(var n of wh(t))kh.call(t,n)&&Ch(e,n,t[n]);return e};class Sh extends e.Component{getInputError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)xh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&wh)for(var o of wh(e))t.indexOf(o)<0&&kh.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(Qa,(i=$h($h({},n),o),r={isfield:!0,error:this.getInputError()},vh(i,bh(r))));var i,r}}Sh.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Eh=Sh;var Oh=Object.defineProperty,Th=Object.defineProperties,Ah=Object.getOwnPropertyDescriptors,_h=Object.getOwnPropertySymbols,Lh=Object.prototype.hasOwnProperty,Mh=Object.prototype.propertyIsEnumerable,Rh=(e,t,n)=>t in e?Oh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Nh extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}getMultiselectError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=((e,t)=>{var n={};for(var o in e)Lh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&_h)for(var o of _h(e))t.indexOf(o)<0&&Mh.call(e,o)&&(n[o]=e[o]);return n})(this.props,[]);return t().createElement(Cl,(n=((e,t)=>{for(var n in t||(t={}))Lh.call(t,n)&&Rh(e,n,t[n]);if(_h)for(var n of _h(t))Mh.call(t,n)&&Rh(e,n,t[n]);return e})({},e),o={onChange:this.handleOnChange,value:e.input.value?e.input.value.toJS():e.input.value,error:this.getMultiselectError()},Th(n,Ah(o))));var n,o}}Nh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Ih=Nh;var Ph=Object.defineProperty,Dh=Object.defineProperties,Fh=Object.getOwnPropertyDescriptors,Bh=Object.getOwnPropertySymbols,Wh=Object.prototype.hasOwnProperty,Hh=Object.prototype.propertyIsEnumerable,jh=(e,t,n)=>t in e?Ph(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,zh=(e,t)=>{for(var n in t||(t={}))Wh.call(t,n)&&jh(e,n,t[n]);if(Bh)for(var n of Bh(t))Hh.call(t,n)&&jh(e,n,t[n]);return e};class Vh extends e.Component{constructor(e){super(e),this.handleEvent=this.handleEvent.bind(this)}handleEvent(e){const{input:t}=this.props,{onChange:n,value:o}=t;n((0,pe.fromJS)(void 0!==e?e:o))}getSelectError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)Wh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Bh)for(var o of Bh(e))t.indexOf(o)<0&&Hh.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(jl,(i=zh(zh({},n),o),r={isfield:!0,error:this.getSelectError(),onChange:this.handleEvent,onBlur:this.handleEvent,value:n.value?n.value.toJS():n.value},Dh(i,Fh(r))));var i,r}}Vh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Uh=Vh;var Gh=Object.defineProperty,Kh=Object.defineProperties,qh=Object.getOwnPropertyDescriptors,Yh=Object.getOwnPropertySymbols,Jh=Object.prototype.hasOwnProperty,Xh=Object.prototype.propertyIsEnumerable,Qh=(e,t,n)=>t in e?Gh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Zh extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props;t.onChange((0,pe.fromJS)(e))}render(){const e=this.props,{children:n}=e,o=((e,t)=>{var n={};for(var o in e)Jh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Yh)for(var o of Yh(e))t.indexOf(o)<0&&Xh.call(e,o)&&(n[o]=e[o]);return n})(e,["children"]);return t().createElement(Xl,(i=((e,t)=>{for(var n in t||(t={}))Jh.call(t,n)&&Qh(e,n,t[n]);if(Yh)for(var n of Yh(t))Xh.call(t,n)&&Qh(e,n,t[n]);return e})({},o),r={onChange:this.handleOnChange,value:o.input.value?o.input.value.toJS():[]},Kh(i,qh(r))));var i,r}}Zh.propTypes={children:r().oneOfType([r().node]),onChange:r().func,input:r().instanceOf(Object)};const ed=Zh;var td=Object.defineProperty,nd=Object.defineProperties,od=Object.getOwnPropertyDescriptors,id=Object.getOwnPropertySymbols,rd=Object.prototype.hasOwnProperty,sd=Object.prototype.propertyIsEnumerable,ad=(e,t,n)=>t in e?td(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class ld extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props;t.onChange((0,pe.fromJS)(e))}render(){const e=this.props,{children:n}=e,o=((e,t)=>{var n={};for(var o in e)rd.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&id)for(var o of id(e))t.indexOf(o)<0&&sd.call(e,o)&&(n[o]=e[o]);return n})(e,["children"]);return t().createElement(bc,(i=((e,t)=>{for(var n in t||(t={}))rd.call(t,n)&&ad(e,n,t[n]);if(id)for(var n of id(t))sd.call(t,n)&&ad(e,n,t[n]);return e})({},o),r={onChange:this.handleOnChange,value:o.input.value},nd(i,od(r))),n);var i,r}}ld.propTypes={children:r().oneOfType([r().node]),onChange:r().func,input:r().instanceOf(Object)};const cd=ld;function ud(t,n,...o){const i=(0,e.useRef)();(0,e.useEffect)((()=>{i.current=t}),[t]),(0,e.useEffect)((()=>{if(null!=n){const e=setInterval((function(){i.current(...o)}),n);return()=>clearInterval(e)}}),[n])}})(),module.exports=o})(); +(()=>{var e={239:(e,t,n)=>{e=n.nmd(e),function(){var e=function(){return this}();e||"undefined"==typeof window||(e=window);var t=function(e,n,o){"string"==typeof e?(2==arguments.length&&(o=n),t.modules[e]||(t.payloads[e]=o,t.modules[e]=null)):t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace())};t.modules={},t.payloads={};var n,o,i=function(e,t,n){if("string"==typeof t){var o=a(e,t);if(null!=o)return n&&n(),o}else if("[object Array]"===Object.prototype.toString.call(t)){for(var i=[],s=0,l=t.length;sn.length)&&(t=n.length),t-=e.length;var o=n.indexOf(e,t);return-1!==o&&o===t})),String.prototype.repeat||o(String.prototype,"repeat",(function(e){for(var t="",n=this;e>0;)1&e&&(t+=n),(e>>=1)&&(n+=n);return t})),String.prototype.includes||o(String.prototype,"includes",(function(e,t){return-1!=this.indexOf(e,t)})),Object.assign||(Object.assign=function(e){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),n=1;n>>0,o=0|arguments[1],i=o<0?Math.max(n+o,0):Math.min(o,n),r=arguments[2],s=void 0===r?n:0|r,a=s<0?Math.max(n+s,0):Math.min(s,n);i0;)1&t&&(n+=e),(t>>=1)&&(e+=e);return n};var o=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(o,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){for(var t=[],n=0,o=e.length;n65535?2:1}})),ace.define("ace/lib/useragent",["require","exports","module"],(function(e,t,n){"use strict";t.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},t.getOS=function(){return t.isMac?t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS};var o="object"==typeof navigator?navigator:{},i=(/mac|win|linux/i.exec(o.platform)||["other"])[0].toLowerCase(),r=o.userAgent||"",s=o.appName||"";t.isWin="win"==i,t.isMac="mac"==i,t.isLinux="linux"==i,t.isIE="Microsoft Internet Explorer"==s||s.indexOf("MSAppHost")>=0?parseFloat((r.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((r.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=r.match(/ Gecko\/\d+/),t.isOpera="object"==typeof opera&&"[object Opera]"==Object.prototype.toString.call(window.opera),t.isWebKit=parseFloat(r.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(r.split(" Chrome/")[1])||void 0,t.isSafari=parseFloat(r.split(" Safari/")[1])&&!t.isChrome||void 0,t.isEdge=parseFloat(r.split(" Edge/")[1])||void 0,t.isAIR=r.indexOf("AdobeAIR")>=0,t.isAndroid=r.indexOf("Android")>=0,t.isChromeOS=r.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(r)&&!window.MSStream,t.isIOS&&(t.isMac=!0),t.isMobile=t.isIOS||t.isAndroid})),ace.define("ace/lib/dom",["require","exports","module","ace/lib/useragent"],(function(e,t,n){"use strict";var o,i=e("./useragent");t.buildDom=function e(t,n,o){if("string"==typeof t&&t){var i=document.createTextNode(t);return n&&n.appendChild(i),i}if(!Array.isArray(t))return t&&t.appendChild&&n&&n.appendChild(t),t;if("string"!=typeof t[0]||!t[0]){for(var r=[],s=0;s=1.5,i.isChromeOS&&(t.HI_DPI=!1),"undefined"!=typeof document){var l=document.createElement("div");t.HI_DPI&&void 0!==l.style.transform&&(t.HAS_CSS_TRANSFORMS=!0),i.isEdge||void 0===l.style.animationName||(t.HAS_CSS_ANIMATION=!0),l=null}t.HAS_CSS_TRANSFORMS?t.translate=function(e,t,n){e.style.transform="translate("+Math.round(t)+"px, "+Math.round(n)+"px)"}:t.translate=function(e,t,n){e.style.top=Math.round(n)+"px",e.style.left=Math.round(t)+"px"}})),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("./dom");t.get=function(e,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.onreadystatechange=function(){4===n.readyState&&t(n.responseText)},n.send(null)},t.loadScript=function(e,t){var n=o.getDocumentHead(),i=document.createElement("script");i.src=e,n.appendChild(i),i.onload=i.onreadystatechange=function(e,n){!n&&i.readyState&&"loaded"!=i.readyState&&"complete"!=i.readyState||(i=i.onload=i.onreadystatechange=null,n||t())}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}})),ace.define("ace/lib/oop",["require","exports","module"],(function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}})),ace.define("ace/lib/event_emitter",["require","exports","module"],(function(e,t,n){"use strict";var o={},i=function(){this.propagationStopped=!0},r=function(){this.defaultPrevented=!0};o._emit=o._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],o=this._defaultHandlers[e];if(n.length||o){"object"==typeof t&&t||(t={}),t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=r),n=n.slice();for(var s=0;s1&&(i=n[n.length-2]);var s=l[t+"Path"];return null==s?s=l.basePath:"/"==o&&(t=o=""),s&&"/"!=s.slice(-1)&&(s+="/"),s+t+o+i+this.get("suffix")},t.setModuleUrl=function(e,t){return l.$moduleUrls[e]=t},t.setLoader=function(e){a=e},t.dynamicModules=Object.create(null),t.$loading={},t.$loaded={},t.loadModule=function(n,o){var r,s;Array.isArray(n)&&(s=n[0],n=n[1]);var l=function(r){if(r&&!t.$loading[n])return o&&o(r);if(t.$loading[n]||(t.$loading[n]=[]),t.$loading[n].push(o),!(t.$loading[n].length>1)){var l=function(){!function(t,n){"ace/theme/textmate"===t||"./theme/textmate"===t?n(0,e("./theme/textmate")):a?a(t,n):console.error("loader is not configured")}(n,(function(e,o){o&&(t.$loaded[n]=o),t._emit("load.module",{name:n,module:o});var i=t.$loading[n];t.$loading[n]=null,i.forEach((function(e){e&&e(o)}))}))};if(!t.get("packaged"))return l();i.loadScript(t.moduleUrl(n,s),l),c()}};if(t.dynamicModules[n])t.dynamicModules[n]().then((function(e){e.default?l(e.default):l(e)}));else{try{r=this.$require(n)}catch(e){}l(r||t.$loaded[n])}},t.$require=function(e){if("function"==typeof n.require)return n.require(e)},t.setModuleLoader=function(e,n){t.dynamicModules[e]=n};var c=function(){l.basePath||l.workerPath||l.modePath||l.themePath||Object.keys(l.$moduleUrls).length||(console.error("Unable to infer path to ace from script src,","use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes","or with webpack use ace/webpack-resolver"),c=function(){})};t.version="1.32.0"})),ace.define("ace/loader_build",["require","exports","module","ace/lib/fixoldbrowsers","ace/config"],(function(e,t,o){"use strict";e("./lib/fixoldbrowsers");var i=e("./config");i.setLoader((function(t,n){e([t],(function(e){n(null,e)}))}));var r=function(){return this||"undefined"!=typeof window&&window}();function s(t){if(r&&r.document){i.set("packaged",t||e.packaged||o.packaged||r.define&&n.amdD.packaged);var s={},a="",l=document.currentScript||document._currentScript,c=l&&l.ownerDocument||document;l&&l.src&&(a=l.src.split(/[?#]/)[0].split("/").slice(0,-1).join("/")||"");for(var u,h=c.getElementsByTagName("script"),d=0;d ["+this.end.row+"/"+this.end.column+"]"},e.prototype.contains=function(e,t){return 0==this.compare(e,t)},e.prototype.compareRange=function(e){var t,n=e.end,o=e.start;return 1==(t=this.compare(n.row,n.column))?1==(t=this.compare(o.row,o.column))?2:0==t?1:0:-1==t?-2:-1==(t=this.compare(o.row,o.column))?-1:1==t?42:0},e.prototype.comparePoint=function(e){return this.compare(e.row,e.column)},e.prototype.containsRange=function(e){return 0==this.comparePoint(e.start)&&0==this.comparePoint(e.end)},e.prototype.intersects=function(e){var t=this.compareRange(e);return-1==t||0==t||1==t},e.prototype.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},e.prototype.isStart=function(e,t){return this.start.row==e&&this.start.column==t},e.prototype.setStart=function(e,t){"object"==typeof e?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},e.prototype.setEnd=function(e,t){"object"==typeof e?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},e.prototype.inside=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)&&!this.isStart(e,t)},e.prototype.insideStart=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)},e.prototype.insideEnd=function(e,t){return 0==this.compare(e,t)&&!this.isStart(e,t)},e.prototype.compare=function(e,t){return this.isMultiLine()||e!==this.start.row?ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0:tthis.end.column?1:0},e.prototype.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},e.prototype.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},e.prototype.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},e.prototype.clipRows=function(t,n){if(this.end.row>n)var o={row:n+1,column:0};else this.end.rown)var i={row:n+1,column:0};else this.start.row1?++h>4&&(h=1):h=1,r.isIE){var s=Math.abs(e.clientX-a)>5||Math.abs(e.clientY-l)>5;c&&!s||(h=1),c&&clearTimeout(c),c=setTimeout((function(){c=null}),n[h-1]||600),1==h&&(a=e.clientX,l=e.clientY)}if(e._clicks=h,o[i]("mousedown",e),h>4)h=0;else if(h>1)return o[i](d[h],e)}Array.isArray(e)||(e=[e]),e.forEach((function(e){u(e,"mousedown",p,s)}))};var d=function(e){return(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)};function p(e,t,n){var o=d(t);if(!r.isMac&&s){if(t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(o|=8),s.altGr){if(!(3&~o))return;s.altGr=0}if(18===n||17===n){var l="location"in t?t.location:t.keyLocation;17===n&&1===l?1==s[n]&&(a=t.timeStamp):18===n&&3===o&&2===l&&t.timeStamp-a<50&&(s.altGr=!0)}}if(n in i.MODIFIER_KEYS&&(n=-1),o||13!==n||3!==(l="location"in t?t.location:t.keyLocation)||(e(t,o,-n),!t.defaultPrevented)){if(r.isChromeOS&&8&o){if(e(t,o,n),t.defaultPrevented)return;o&=-9}return!!(o||n in i.FUNCTION_KEYS||n in i.PRINTABLE_KEYS)&&e(t,o,n)}}function g(){s=Object.create(null)}if(t.getModifierString=function(e){return i.KEY_MODS[d(e)]},t.addCommandKeyListener=function(e,n,o){if(r.isOldGecko||r.isOpera&&!("KeyboardEvent"in window)){var i=null;u(e,"keydown",(function(e){i=e.keyCode}),o),u(e,"keypress",(function(e){return p(n,e,i)}),o)}else{var a=null;u(e,"keydown",(function(e){s[e.keyCode]=(s[e.keyCode]||0)+1;var t=p(n,e,e.keyCode);return a=e.defaultPrevented,t}),o),u(e,"keypress",(function(e){a&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),a=null)}),o),u(e,"keyup",(function(e){s[e.keyCode]=null}),o),s||(g(),u(window,"focus",g))}},"object"==typeof window&&window.postMessage&&!r.isOldIE){var m=1;t.nextTick=function(e,n){n=n||window;var o="zero-timeout-message-"+m++,i=function(r){r.data==o&&(t.stopPropagation(r),h(n,"message",i),e())};u(n,"message",i),n.postMessage(o,"*")}}t.$idleBlocked=!1,t.onIdle=function(e,n){return setTimeout((function n(){t.$idleBlocked?setTimeout(n,100):e()}),n)},t.$idleBlockId=null,t.blockIdle=function(e){t.$idleBlockId&&clearTimeout(t.$idleBlockId),t.$idleBlocked=!0,t.$idleBlockId=setTimeout((function(){t.$idleBlocked=!1}),e||100)},t.nextFrame="object"==typeof window&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}})),ace.define("ace/clipboard",["require","exports","module"],(function(e,t,n){"use strict";var o;n.exports={lineMode:!1,pasteCancelled:function(){return!!(o&&o>Date.now()-50)||(o=!1)},cancel:function(){o=Date.now()}}})),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/config","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/clipboard","ace/lib/keys"],(function(e,t,n){"use strict";var o=e("../lib/event"),i=e("../config").nls,r=e("../lib/useragent"),s=e("../lib/dom"),a=e("../lib/lang"),l=e("../clipboard"),c=r.isChrome<18,u=r.isIE,h=r.isChrome>63,d=400,p=e("../lib/keys"),g=p.KEY_MODS,m=r.isIOS,f=m?/\s/:/\n/,y=r.isMobile;t.TextInput=function(e,t){var n=s.createElement("textarea");n.className="ace_text-input",n.setAttribute("wrap","off"),n.setAttribute("autocorrect","off"),n.setAttribute("autocapitalize","off"),n.setAttribute("spellcheck",!1),n.style.opacity="0",e.insertBefore(n,e.firstChild);var v=!1,b=!1,w=!1,x=!1,k="";y||(n.style.fontSize="1px");var C=!1,$=!1,S="",E=0,O=0,T=0,A=Number.MAX_SAFE_INTEGER,_=Number.MIN_SAFE_INTEGER,L=0;try{var M=document.activeElement===n}catch(e){}this.setNumberOfExtraLines=function(e){A=Number.MAX_SAFE_INTEGER,_=Number.MIN_SAFE_INTEGER,L=e<0?0:e},this.setAriaOptions=function(e){if(e.activeDescendant?(n.setAttribute("aria-haspopup","true"),n.setAttribute("aria-autocomplete",e.inline?"both":"list"),n.setAttribute("aria-activedescendant",e.activeDescendant)):(n.setAttribute("aria-haspopup","false"),n.setAttribute("aria-autocomplete","both"),n.removeAttribute("aria-activedescendant")),e.role&&n.setAttribute("role",e.role),e.setLabel&&(n.setAttribute("aria-roledescription",i("editor")),t.session)){var o=t.session.selection.cursor.row;n.setAttribute("aria-label",i("Cursor at row $0",[o+1]))}},this.setAriaOptions({role:"textbox"}),o.addListener(n,"blur",(function(e){$||(t.onBlur(e),M=!1)}),t),o.addListener(n,"focus",(function(e){if(!$){if(M=!0,r.isEdge)try{if(!document.hasFocus())return}catch(e){}t.onFocus(e),r.isEdge?setTimeout(N):N()}}),t),this.$focusScroll=!1,this.focus=function(){if(this.setAriaOptions({setLabel:t.renderer.enableKeyboardAccessibility}),k||h||"browser"==this.$focusScroll)return n.focus({preventScroll:!0});var e=n.style.top;n.style.position="fixed",n.style.top="0px";try{var o=0!=n.getBoundingClientRect().top}catch(e){return}var i=[];if(o)for(var r=n.parentElement;r&&1==r.nodeType;)i.push(r),r.setAttribute("ace_nocontext",!0),r=!r.parentElement&&r.getRootNode?r.getRootNode().host:r.parentElement;n.focus({preventScroll:!0}),o&&i.forEach((function(e){e.removeAttribute("ace_nocontext")})),setTimeout((function(){n.style.position="","0px"==n.style.top&&(n.style.top=e)}),0)},this.blur=function(){n.blur()},this.isFocused=function(){return M},t.on("beforeEndOperation",(function(){var e=t.curOp,o=e&&e.command&&e.command.name;if("insertstring"!=o){var i=o&&(e.docChanged||e.selectionChanged);w&&i&&(S=n.value="",U()),N()}}));var R=function(e,n){for(var o=n,i=1;i<=e-A&&i<2*L+1;i++)o+=t.session.getLine(e-i).length+1;return o},N=m?function(e){if(M&&(!v||e)&&!x){e||(e="");var o="\n ab"+e+"cde fg\n";o!=n.value&&(n.value=S=o);var i=4+(e.length||(t.selection.isEmpty()?0:1));4==E&&O==i||n.setSelectionRange(4,i),E=4,O=i}}:function(){if(!w&&!x&&(M||P)){w=!0;var e=0,o=0,i="";if(t.session){var r=t.selection,s=r.getRange(),a=r.cursor.row;a===_+1?_=(A=_+1)+2*L:a===A-1?A=(_=A-1)-2*L:(a_+1)&&(A=a>L?a-L:0,_=a>L?a+L:2*L);for(var l=[],c=A;c<=_;c++)l.push(t.session.getLine(c));if(i=l.join("\n"),e=R(s.start.row,s.start.column),o=R(s.end.row,s.end.column),s.start.row_){var h=t.session.getLine(_+1);o=s.end.row>_+1?h.length:s.end.column,o+=i.length+1,i=i+"\n"+h}else y&&a>0&&(i="\n"+i,o+=1,e+=1);i.length>d&&(e0&&S[d]==e[d];)d++,a--;for(c=c.slice(d),d=1;l>0&&S.length-d>E-1&&S[S.length-d]==e[e.length-d];)d++,l--;u-=d-1,h-=d-1;var p=c.length-d+1;if(p<0&&(a=-p,p=0),c=c.slice(0,p),!(o||c||u||a||l||h))return"";x=!0;var g=!1;return r.isAndroid&&". "==c&&(c=" ",g=!0),c&&!a&&!l&&!u&&!h||C?t.onTextInput(c):t.onTextInput(c,{extendLeft:a,extendRight:l,restoreStart:u,restoreEnd:h}),x=!1,S=e,E=i,O=s,T=h,g?"\n":c},F=function(e){if(w)return V();if(e&&e.inputType){if("historyUndo"==e.inputType)return t.execCommand("undo");if("historyRedo"==e.inputType)return t.execCommand("redo")}var o=n.value,i=D(o,!0);(o.length>500||f.test(i)||y&&E<1&&E==O)&&N()},B=function(e,t,n){var o=e.clipboardData||window.clipboardData;if(o&&!c){var i=u||n?"Text":"text/plain";try{return t?!1!==o.setData(i,t):o.getData(i)}catch(e){if(!n)return B(e,t,!0)}}},W=function(e,i){var r=t.getCopyText();if(!r)return o.preventDefault(e);B(e,r)?(m&&(N(r),v=r,setTimeout((function(){v=!1}),10)),i?t.onCut():t.onCopy(),o.preventDefault(e)):(v=!0,n.value=r,n.select(),setTimeout((function(){v=!1,N(),i?t.onCut():t.onCopy()})))},H=function(e){W(e,!0)},j=function(e){W(e,!1)},z=function(e){var i=B(e);l.pasteCancelled()||("string"==typeof i?(i&&t.onPaste(i,e),r.isIE&&setTimeout(N),o.preventDefault(e)):(n.value="",b=!0))};o.addCommandKeyListener(n,t.onCommandKey.bind(t),t),o.addListener(n,"select",(function(e){w||(v?v=!1:function(e){return 0===e.selectionStart&&e.selectionEnd>=S.length&&e.value===S&&S&&e.selectionEnd!==O}(n)?(t.selectAll(),N()):y&&n.selectionStart!=E&&N())}),t),o.addListener(n,"input",F,t),o.addListener(n,"cut",H,t),o.addListener(n,"copy",j,t),o.addListener(n,"paste",z,t),"oncut"in n&&"oncopy"in n&&"onpaste"in n||o.addListener(e,"keydown",(function(e){if((!r.isMac||e.metaKey)&&e.ctrlKey)switch(e.keyCode){case 67:j(e);break;case 86:z(e);break;case 88:H(e)}}),t);var V=function(){if(w&&t.onCompositionUpdate&&!t.$readOnly){if(C)return G();if(w.useTextareaForIME)t.onCompositionUpdate(n.value);else{var e=n.value;D(e),w.markerRange&&(w.context&&(w.markerRange.start.column=w.selectionStart=w.context.compositionStartOffset),w.markerRange.end.column=w.markerRange.start.column+O-w.selectionStart+T)}}},U=function(e){t.onCompositionEnd&&!t.$readOnly&&(w=!1,t.onCompositionEnd(),t.off("mousedown",G),e&&F())};function G(){$=!0,n.blur(),n.focus(),$=!1}var K,q=a.delayedCall(V,50).schedule.bind(null,null);function Y(){clearTimeout(K),K=setTimeout((function(){k&&(n.style.cssText=k,k=""),t.renderer.$isMousePressed=!1,t.renderer.$keepTextAreaAtCursor&&t.renderer.$moveTextAreaToCursor()}),0)}o.addListener(n,"compositionstart",(function(e){if(!w&&t.onCompositionStart&&!t.$readOnly&&(w={},!C)){e.data&&(w.useTextareaForIME=!1),setTimeout(V,0),t._signal("compositionStart"),t.on("mousedown",G);var o=t.getSelectionRange();o.end.row=o.start.row,o.end.column=o.start.column,w.markerRange=o,w.selectionStart=E,t.onCompositionStart(w),w.useTextareaForIME?(S=n.value="",E=0,O=0):(n.msGetInputContext&&(w.context=n.msGetInputContext()),n.getInputContext&&(w.context=n.getInputContext()))}}),t),o.addListener(n,"compositionupdate",V,t),o.addListener(n,"keyup",(function(e){27==e.keyCode&&n.value.lengthO&&"\n"==S[r]?s=p.end:oO&&S.slice(0,r).split("\n").length>2?s=p.down:r>O&&" "==S[r-1]?(s=p.right,a=g.option):(r>O||r==O&&O!=E&&o==r)&&(s=p.right),o!==r&&(a|=g.shift),s){if(!t.onCommandKey({},a,s)&&t.commands){s=p.keyCodeToString(s);var l=t.commands.findKeyCommand(a,s);l&&t.execCommand(l)}E=o,O=r,N("")}}};document.addEventListener("selectionchange",r),t.on("destroy",(function(){document.removeEventListener("selectionchange",r)}))}(0,t,n),this.destroy=function(){n.parentElement&&n.parentElement.removeChild(n)}},t.$setUserAgentForTests=function(e,t){y=e,m=t}})),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("../lib/useragent"),i=function(){function e(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e)),["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"].forEach((function(t){e[t]=this[t]}),this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}return e.prototype.onMouseDown=function(e){var t=e.inSelection(),n=e.getDocumentPosition();this.mousedownEvent=e;var i=this.editor,r=e.getButton();return 0!==r?((i.getSelectionRange().isEmpty()||1==r)&&i.selection.moveToPosition(n),void(2==r&&(i.textInput.onContextMenu(e.domEvent),o.isMozilla||e.preventDefault()))):(this.mousedownEvent.time=Date.now(),!t||i.isFocused()||(i.focus(),!this.$focusTimeout||this.$clickSelection||i.inMultiSelectMode)?(this.captureMouse(e),this.startSelect(n,e.domEvent._clicks>1),e.preventDefault()):(this.setState("focusWait"),void this.captureMouse(e)))},e.prototype.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var n=this.editor;this.mousedownEvent&&(this.mousedownEvent.getShiftKey()?n.selection.selectToPosition(e):t||n.selection.moveToPosition(e),t||this.select(),n.setStyle("ace_selecting"),this.setState("select"))},e.prototype.select=function(){var e,t=this.editor,n=t.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var o=this.$clickSelection.comparePoint(n);if(-1==o)e=this.$clickSelection.end;else if(1==o)e=this.$clickSelection.start;else{var i=r(this.$clickSelection,n);n=i.cursor,e=i.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(n),t.renderer.scrollCursorIntoView()},e.prototype.extendSelectionBy=function(e){var t,n=this.editor,o=n.renderer.screenToTextCoordinates(this.x,this.y),i=n.selection[e](o.row,o.column);if(this.$clickSelection){var s=this.$clickSelection.comparePoint(i.start),a=this.$clickSelection.comparePoint(i.end);if(-1==s&&a<=0)t=this.$clickSelection.end,i.end.row==o.row&&i.end.column==o.column||(o=i.start);else if(1==a&&s>=0)t=this.$clickSelection.start,i.start.row==o.row&&i.start.column==o.column||(o=i.end);else if(-1==s&&1==a)o=i.end,t=i.start;else{var l=r(this.$clickSelection,o);o=l.cursor,t=l.anchor}n.selection.setSelectionAnchor(t.row,t.column)}n.selection.selectToPosition(o),n.renderer.scrollCursorIntoView()},e.prototype.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting")},e.prototype.focusWait=function(){var e,t,n,o,i=(e=this.mousedownEvent.x,t=this.mousedownEvent.y,n=this.x,o=this.y,Math.sqrt(Math.pow(n-e,2)+Math.pow(o-t,2))),r=Date.now();(i>0||r-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},e.prototype.onDoubleClick=function(e){var t=e.getDocumentPosition(),n=this.editor,o=n.session.getBracketRange(t);o?(o.isEmpty()&&(o.start.column--,o.end.column++),this.setState("select")):(o=n.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=o,this.select()},e.prototype.onTripleClick=function(e){var t=e.getDocumentPosition(),n=this.editor;this.setState("selectByLines");var o=n.getSelectionRange();o.isMultiLine()&&o.contains(t.row,t.column)?(this.$clickSelection=n.selection.getLineRange(o.start.row),this.$clickSelection.end=n.selection.getLineRange(o.end.row).end):this.$clickSelection=n.selection.getLineRange(t.row),this.select()},e.prototype.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},e.prototype.onMouseWheel=function(e){if(!e.getAccelKey()){e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var n=this.$lastScroll,o=e.domEvent.timeStamp,i=o-n.t,r=i?e.wheelX/i:n.vx,s=i?e.wheelY/i:n.vy;i<550&&(r=(r+n.vx)/2,s=(s+n.vy)/2);var a=Math.abs(r/s),l=!1;return a>=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(l=!0),a<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(l=!0),l?n.allowed=o:o-n.allowed<550&&(Math.abs(r)<=1.5*Math.abs(n.vx)&&Math.abs(s)<=1.5*Math.abs(n.vy)?(l=!0,n.allowed=o):n.allowed=0),n.t=o,n.vx=r,n.vy=s,l?(t.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()):void 0}},e}();function r(e,t){if(e.start.row==e.end.row)var n=2*t.column-e.start.column-e.end.column;else if(e.start.row!=e.end.row-1||e.start.column||e.end.column)n=2*t.row-e.start.row-e.end.row;else n=t.column-4;return n<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}i.prototype.selectEnd=i.prototype.selectByLinesEnd,i.prototype.selectAllEnd=i.prototype.selectByLinesEnd,i.prototype.selectByWordsEnd=i.prototype.selectByLinesEnd,t.DefaultHandlers=i})),ace.define("ace/tooltip",["require","exports","module","ace/lib/dom","ace/lib/event","ace/range"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],o=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&o>=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},s=e("./lib/dom"),a=e("./lib/event"),l=e("./range").Range,c="ace_tooltip",u=function(){function e(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}return e.prototype.$init=function(){return this.$element=s.createElement("div"),this.$element.className=c,this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},e.prototype.getElement=function(){return this.$element||this.$init()},e.prototype.setText=function(e){this.getElement().textContent=e},e.prototype.setHtml=function(e){this.getElement().innerHTML=e},e.prototype.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},e.prototype.setClassName=function(e){s.addCssClass(this.getElement(),e)},e.prototype.setTheme=function(e){this.$element.className=c+" "+(e.isDark?"ace_dark ":"")+(e.cssClass||"")},e.prototype.show=function(e,t,n){null!=e&&this.setText(e),null!=t&&null!=n&&this.setPosition(t,n),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},e.prototype.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.getElement().className=c,this.isOpen=!1)},e.prototype.getHeight=function(){return this.getElement().offsetHeight},e.prototype.getWidth=function(){return this.getElement().offsetWidth},e.prototype.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)},e}(),h=new(function(){function e(){this.popups=[]}return e.prototype.addPopup=function(e){this.popups.push(e),this.updatePopups()},e.prototype.removePopup=function(e){var t=this.popups.indexOf(e);-1!==t&&(this.popups.splice(t,1),this.updatePopups())},e.prototype.updatePopups=function(){var e,t,n,o;this.popups.sort((function(e,t){return t.priority-e.priority}));var i=[];try{for(var s=r(this.popups),a=s.next();!a.done;a=s.next()){var l=a.value,c=!0;try{for(var u=(n=void 0,r(i)),h=u.next();!h.done;h=u.next()){var d=h.value;if(this.doPopupsOverlap(d,l)){c=!1;break}}}catch(e){n={error:e}}finally{try{h&&!h.done&&(o=u.return)&&o.call(u)}finally{if(n)throw n.error}}c?i.push(l):l.hide()}}catch(t){e={error:t}}finally{try{a&&!a.done&&(t=s.return)&&t.call(s)}finally{if(e)throw e.error}}},e.prototype.doPopupsOverlap=function(e,t){var n=e.getElement().getBoundingClientRect(),o=t.getElement().getBoundingClientRect();return n.lefto.left&&n.topo.top},e}());t.popupManager=h,t.Tooltip=u;var d=function(e){function t(t){void 0===t&&(t=document.body);var n=e.call(this,t)||this;n.timeout=void 0,n.lastT=0,n.idleTime=350,n.lastEvent=void 0,n.onMouseOut=n.onMouseOut.bind(n),n.onMouseMove=n.onMouseMove.bind(n),n.waitForHover=n.waitForHover.bind(n),n.hide=n.hide.bind(n);var o=n.getElement();return o.style.whiteSpace="pre-wrap",o.style.pointerEvents="auto",o.addEventListener("mouseout",n.onMouseOut),o.tabIndex=-1,o.addEventListener("blur",function(){o.contains(document.activeElement)||this.hide()}.bind(n)),o.addEventListener("wheel",a.stopPropagation),n}return i(t,e),t.prototype.addToEditor=function(e){e.on("mousemove",this.onMouseMove),e.on("mousedown",this.hide),e.renderer.getMouseEventTarget().addEventListener("mouseout",this.onMouseOut,!0)},t.prototype.removeFromEditor=function(e){e.off("mousemove",this.onMouseMove),e.off("mousedown",this.hide),e.renderer.getMouseEventTarget().removeEventListener("mouseout",this.onMouseOut,!0),this.timeout&&(clearTimeout(this.timeout),this.timeout=null)},t.prototype.onMouseMove=function(e,t){this.lastEvent=e,this.lastT=Date.now();var n=t.$mouseHandler.isMousePressed;if(this.isOpen){var o=this.lastEvent&&this.lastEvent.getDocumentPosition();this.range&&this.range.contains(o.row,o.column)&&!n&&!this.isOutsideOfText(this.lastEvent)||this.hide()}this.timeout||n||(this.lastEvent=e,this.timeout=setTimeout(this.waitForHover,this.idleTime))},t.prototype.waitForHover=function(){this.timeout&&clearTimeout(this.timeout);var e=Date.now()-this.lastT;this.idleTime-e>10?this.timeout=setTimeout(this.waitForHover,this.idleTime-e):(this.timeout=null,this.lastEvent&&!this.isOutsideOfText(this.lastEvent)&&this.$gatherData(this.lastEvent,this.lastEvent.editor))},t.prototype.isOutsideOfText=function(e){var t=e.editor,n=e.getDocumentPosition(),o=t.session.getLine(n.row);if(n.column==o.length){var i=t.renderer.pixelToScreenCoordinates(e.clientX,e.clientY),r=t.session.documentToScreenPosition(n.row,n.column);if(r.column!=i.column||r.row!=i.row)return!0}return!1},t.prototype.setDataProvider=function(e){this.$gatherData=e},t.prototype.showForRange=function(e,t,n,o){if(!(o&&o!=this.lastEvent||this.isOpen&&document.activeElement==this.getElement())){var i=e.renderer;this.isOpen||(h.addPopup(this),this.$registerCloseEvents(),this.setTheme(i.theme)),this.isOpen=!0,this.addMarker(t,e.session),this.range=l.fromPoints(t.start,t.end);var r=i.textToScreenCoordinates(t.start.row,t.start.column),s=i.scroller.getBoundingClientRect();r.pageX=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},s=e("../lib/dom"),a=e("../lib/event"),l=e("../tooltip").Tooltip,c=e("../config").nls;t.GutterHandler=function(e){var t,n,o=e.editor,i=o.renderer.$gutterLayer,r=new u(o);function l(){t&&(t=clearTimeout(t)),r.isOpen&&(r.hideTooltip(),o.off("mousewheel",l))}function c(e){r.setPosition(e.x,e.y)}e.editor.setDefaultHandler("guttermousedown",(function(t){if(o.isFocused()&&0==t.getButton()&&"foldWidgets"!=i.getRegion(t)){var n=t.getDocumentPosition().row,r=o.session.selection;if(t.getShiftKey())r.selectTo(n,0);else{if(2==t.domEvent.detail)return o.selectAll(),t.preventDefault();e.$clickSelection=o.selection.getLineRange(n)}return e.setState("selectByLines"),e.captureMouse(t),t.preventDefault()}})),e.editor.setDefaultHandler("guttermousemove",(function(a){var u=a.domEvent.target||a.domEvent.srcElement;if(s.hasCssClass(u,"ace_fold-widget"))return l();r.isOpen&&e.$tooltipFollowsMouse&&c(a),n=a,t||(t=setTimeout((function(){t=null,n&&!e.isMousePressed?function(){var t=n.getDocumentPosition().row;if(t==o.session.getLength()){var s=o.renderer.pixelToScreenCoordinates(0,n.y).row,a=n.$pos;if(s>o.session.documentToScreenRow(a.row,a.column))return l()}if(r.showTooltip(t),r.isOpen)if(o.on("mousewheel",l),e.$tooltipFollowsMouse)c(n);else{var u=n.getGutterRow(),h=i.$lines.get(u);if(h){var d=h.element.querySelector(".ace_gutter_annotation").getBoundingClientRect(),p=r.getElement().style;p.left=d.right+"px",p.top=d.bottom+"px"}else c(n)}}():l()}),50))})),a.addListener(o.renderer.$gutter,"mouseout",(function(e){n=null,r.isOpen&&!t&&(t=setTimeout((function(){t=null,l()}),50))}),o),o.on("changeSession",l),o.on("input",l)};var u=function(e){function t(t){var n=e.call(this,t.container)||this;return n.editor=t,n}return i(t,e),t.prototype.setPosition=function(e,t){var n=window.innerWidth||document.documentElement.clientWidth,o=window.innerHeight||document.documentElement.clientHeight,i=this.getWidth(),r=this.getHeight();(e+=15)+i>n&&(e-=e+i-n),(t+=15)+r>o&&(t-=20+r),l.prototype.setPosition.call(this,e,t)},Object.defineProperty(t,"annotationLabels",{get:function(){return{error:{singular:c("error"),plural:c("errors")},warning:{singular:c("warning"),plural:c("warnings")},info:{singular:c("information message"),plural:c("information messages")}}},enumerable:!1,configurable:!0}),t.prototype.showTooltip=function(e){var n,o=this.editor.renderer.$gutterLayer,i=o.$annotations[e];n=i?{text:Array.from(i.text),type:Array.from(i.type)}:{text:[],type:[]};var r=o.session.getFoldLine(e);if(r&&o.$showFoldedAnnotations){for(var s,a={error:[],warning:[],info:[]},l=e+1;l<=r.end.row;l++)if(o.$annotations[l])for(var c=0;c ").concat(n.text[l]);d[n.type[l].replace("_fold","")].push(g)}var m=[].concat(d.error,d.warning,d.info).join("
    ");this.setHtml(m),this.$element.setAttribute("aria-live","polite"),this.isOpen||(this.setTheme(this.editor.renderer.theme),this.setClassName("ace_gutter-tooltip")),this.show(),this.editor._signal("showGutterTooltip",this)},t.prototype.hideTooltip=function(){this.$element.removeAttribute("aria-live"),this.hide(),this.editor._signal("hideGutterTooltip",this)},t.annotationsToSummaryString=function(e){var n,o,i=[];try{for(var s=r(["error","warning","info"]),a=s.next();!a.done;a=s.next()){var l=a.value;if(e[l].length){var c=1===e[l].length?t.annotationLabels[l].singular:t.annotationLabels[l].plural;i.push("".concat(e[l].length," ").concat(c))}}}catch(e){n={error:e}}finally{try{a&&!a.done&&(o=s.return)&&o.call(s)}finally{if(n)throw n.error}}return i.join(", ")},t}(l);t.GutterTooltip=u})),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("../lib/event"),i=e("../lib/useragent"),r=function(){function e(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1}return e.prototype.stopPropagation=function(){o.stopPropagation(this.domEvent),this.propagationStopped=!0},e.prototype.preventDefault=function(){o.preventDefault(this.domEvent),this.defaultPrevented=!0},e.prototype.stop=function(){this.stopPropagation(),this.preventDefault()},e.prototype.getDocumentPosition=function(){return this.$pos||(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY)),this.$pos},e.prototype.getGutterRow=function(){var e=this.getDocumentPosition().row;return this.editor.session.documentToScreenRow(e,0)-this.editor.session.documentToScreenRow(this.editor.renderer.$gutterLayer.$lines.get(0).row,0)},e.prototype.inSelection=function(){if(null!==this.$inSelection)return this.$inSelection;var e=this.editor.getSelectionRange();if(e.isEmpty())this.$inSelection=!1;else{var t=this.getDocumentPosition();this.$inSelection=e.contains(t.row,t.column)}return this.$inSelection},e.prototype.getButton=function(){return o.getButton(this.domEvent)},e.prototype.getShiftKey=function(){return this.domEvent.shiftKey},e.prototype.getAccelKey=function(){return i.isMac?this.domEvent.metaKey:this.domEvent.ctrlKey},e}();t.MouseEvent=r})),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=e("../lib/event"),r=e("../lib/useragent");function s(e){var t=e.editor,n=o.createElement("div");n.style.cssText="top:-100px;position:absolute;z-index:2147483647;opacity:0.5",n.textContent=" ",["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"].forEach((function(t){e[t]=this[t]}),this),t.on("mousedown",this.onMouseDown.bind(e));var s,l,c,u,h,d,p,g,m,f,y,v=t.container,b=0;function w(){var e=d;(function(e,n){var o=Date.now(),i=!n||e.row!=n.row,r=!n||e.column!=n.column;!f||i||r?(t.moveCursorToPosition(e),f=o,y={x:l,y:c}):a(y.x,y.y,l,c)>5?f=null:o-f>=200&&(t.renderer.scrollCursorIntoView(),f=null)})(d=t.renderer.screenToTextCoordinates(l,c),e),function(e,n){var o=Date.now(),i=t.renderer.layerConfig.lineHeight,r=t.renderer.layerConfig.characterWidth,s=t.renderer.scroller.getBoundingClientRect(),a={x:{left:l-s.left,right:s.right-l},y:{top:c-s.top,bottom:s.bottom-c}},u=Math.min(a.x.left,a.x.right),h=Math.min(a.y.top,a.y.bottom),d={row:e.row,column:e.column};u/r<=2&&(d.column+=a.x.left=200&&t.renderer.scrollCursorIntoView(d):m=o:m=null}(d,e)}function x(){h=t.selection.toOrientedRange(),s=t.session.addMarker(h,"ace_selection",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(u),w(),u=setInterval(w,20),b=0,i.addListener(document,"mousemove",$)}function k(){clearInterval(u),t.session.removeMarker(s),s=null,t.selection.fromOrientedRange(h),t.isFocused()&&!g&&t.$resetCursorStyle(),h=null,d=null,b=0,m=null,f=null,i.removeListener(document,"mousemove",$)}this.onDragStart=function(e){if(this.cancelDrag||!v.draggable){var o=this;return setTimeout((function(){o.startSelect(),o.captureMouse(e)}),0),e.preventDefault()}h=t.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=t.getReadOnly()?"copy":"copyMove",t.container.appendChild(n),i.setDragImage&&i.setDragImage(n,0,0),setTimeout((function(){t.container.removeChild(n)})),i.clearData(),i.setData("Text",t.session.getTextRange()),g=!0,this.setState("drag")},this.onDragEnd=function(e){if(v.draggable=!1,g=!1,this.setState(null),!t.getReadOnly()){var n=e.dataTransfer.dropEffect;p||"move"!=n||t.session.remove(t.getSelectionRange()),t.$resetCursorStyle()}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(!t.getReadOnly()&&S(e.dataTransfer))return l=e.clientX,c=e.clientY,s||x(),b++,e.dataTransfer.dropEffect=p=E(e),i.preventDefault(e)},this.onDragOver=function(e){if(!t.getReadOnly()&&S(e.dataTransfer))return l=e.clientX,c=e.clientY,s||(x(),b++),null!==C&&(C=null),e.dataTransfer.dropEffect=p=E(e),i.preventDefault(e)},this.onDragLeave=function(e){if(--b<=0&&s)return k(),p=null,i.preventDefault(e)},this.onDrop=function(e){if(d){var n=e.dataTransfer;if(g)switch(p){case"move":h=h.contains(d.row,d.column)?{start:d,end:d}:t.moveText(h,d);break;case"copy":h=t.moveText(h,d,!0)}else{var o=n.getData("Text");h={start:d,end:t.session.insert(d,o)},t.focus(),p=null}return k(),i.preventDefault(e)}},i.addListener(v,"dragstart",this.onDragStart.bind(e),t),i.addListener(v,"dragend",this.onDragEnd.bind(e),t),i.addListener(v,"dragenter",this.onDragEnter.bind(e),t),i.addListener(v,"dragover",this.onDragOver.bind(e),t),i.addListener(v,"dragleave",this.onDragLeave.bind(e),t),i.addListener(v,"drop",this.onDrop.bind(e),t);var C=null;function $(){null==C&&(C=setTimeout((function(){null!=C&&s&&k()}),20))}function S(e){var t=e.types;return!t||Array.prototype.some.call(t,(function(e){return"text/plain"==e||"Text"==e}))}function E(e){var t=["copy","copymove","all","uninitialized"],n=r.isMac?e.altKey:e.ctrlKey,o="uninitialized";try{o=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var i="none";return n&&t.indexOf(o)>=0?i="copy":["move","copymove","linkmove","all","uninitialized"].indexOf(o)>=0?i="move":t.indexOf(o)>=0&&(i="copy"),i}}function a(e,t,n,o){return Math.sqrt(Math.pow(n-e,2)+Math.pow(o-t,2))}(function(){this.dragWait=function(){Date.now()-this.mousedownEvent.time>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){this.editor.container.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor;e.container.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var t=r.isWin?"default":"move";e.renderer.setCursorStyle(t),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;r.isIE&&"dragReady"==this.state&&a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>3&&t.dragDrop(),"dragWait"===this.state&&a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))},this.onMouseDown=function(e){if(this.$dragEnabled){this.mousedownEvent=e;var t=this.editor,n=e.inSelection(),o=e.getButton();if(1===(e.domEvent.detail||1)&&0===o&&n){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var i=e.domEvent.target||e.domEvent.srcElement;"unselectable"in i&&(i.unselectable="on"),t.getDragDelay()?(r.isWebKit&&(this.cancelDrag=!0,t.container.draggable=!0),this.setState("dragWait")):this.startDrag(),this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}}).call(s.prototype),t.DragdropHandler=s})),ace.define("ace/mouse/touch_handler",["require","exports","module","ace/mouse/mouse_event","ace/lib/event","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("./mouse_event").MouseEvent,i=e("../lib/event"),r=e("../lib/dom");t.addTouchListeners=function(e,t){var n,s,a,l,c,u,h,d,p,g="scroll",m=0,f=0,y=0,v=0;function b(){var e,n,o;p||(e=window.navigator&&window.navigator.clipboard,n=!1,o=function(o){var i,s,a=o.target.getAttribute("action");if("more"==a||!n)return n=!n,i=t.getCopyText(),s=t.session.getUndoManager().hasUndo(),void p.replaceChild(r.buildDom(n?["span",!i&&["span",{class:"ace_mobile-button",action:"selectall"},"Select All"],i&&["span",{class:"ace_mobile-button",action:"copy"},"Copy"],i&&["span",{class:"ace_mobile-button",action:"cut"},"Cut"],e&&["span",{class:"ace_mobile-button",action:"paste"},"Paste"],s&&["span",{class:"ace_mobile-button",action:"undo"},"Undo"],["span",{class:"ace_mobile-button",action:"find"},"Find"],["span",{class:"ace_mobile-button",action:"openCommandPalette"},"Palette"]]:["span"]),p.firstChild);"paste"==a?e.readText().then((function(e){t.execCommand(a,e)})):a&&("cut"!=a&&"copy"!=a||(e?e.writeText(t.getCopyText()):document.execCommand("copy")),t.execCommand(a)),p.firstChild.style.display="none",n=!1,"openCommandPalette"!=a&&t.focus()},p=r.buildDom(["div",{class:"ace_mobile-menu",ontouchstart:function(e){g="menu",e.stopPropagation(),e.preventDefault(),t.textInput.focus()},ontouchend:function(e){e.stopPropagation(),e.preventDefault(),o(e)},onclick:o},["span"],["span",{class:"ace_mobile-button",action:"more"},"..."]],t.container));var i=t.selection.cursor,s=t.renderer.textToScreenCoordinates(i.row,i.column),a=t.renderer.textToScreenCoordinates(0,0).pageX,l=t.renderer.scrollLeft,c=t.container.getBoundingClientRect();p.style.top=s.pageY-c.top-3+"px",s.pageX-c.left1)return clearTimeout(c),c=null,a=-1,void(g="zoom");d=t.$mouseHandler.isMousePressed=!0;var r=t.renderer.layerConfig.lineHeight,u=t.renderer.layerConfig.lineHeight,p=e.timeStamp;l=p;var b=i[0],w=b.clientX,k=b.clientY;Math.abs(n-w)+Math.abs(s-k)>r&&(a=-1),n=e.clientX=w,s=e.clientY=k,y=v=0;var C=new o(e,t);if(h=C.getDocumentPosition(),p-a<500&&1==i.length&&!m)f++,e.preventDefault(),e.button=0,function(){c=null,clearTimeout(c),t.selection.moveToPosition(h);var e=f>=2?t.selection.getLineRange(h.row):t.session.getBracketRange(h);e&&!e.isEmpty()?t.selection.setRange(e):t.selection.selectWord(),g="wait"}();else{f=0;var $=t.selection.cursor,S=t.selection.isEmpty()?$:t.selection.anchor,E=t.renderer.$cursorLayer.getPixelPosition($,!0),O=t.renderer.$cursorLayer.getPixelPosition(S,!0),T=t.renderer.scroller.getBoundingClientRect(),A=t.renderer.layerConfig.offset,_=t.renderer.scrollLeft,L=function(e,t){return(e/=u)*e+(t=t/r-.75)*t};if(e.clientXR?"cursor":"anchor"),g=R<3.5?"anchor":M<3.5?"cursor":"scroll",c=setTimeout(x,450)}a=p}),t),i.addListener(e,"touchend",(function(e){d=t.$mouseHandler.isMousePressed=!1,u&&clearInterval(u),"zoom"==g?(g="",m=0):c?(t.selection.moveToPosition(h),m=0,b()):"scroll"==g?(m+=60,u=setInterval((function(){m--<=0&&(clearInterval(u),u=null),Math.abs(y)<.01&&(y=0),Math.abs(v)<.01&&(v=0),m<20&&(y*=.9),m<20&&(v*=.9);var e=t.session.getScrollTop();t.renderer.scrollBy(10*y,10*v),e==t.session.getScrollTop()&&(m=0)}),10),w()):b(),clearTimeout(c),c=null}),t),i.addListener(e,"touchmove",(function(e){c&&(clearTimeout(c),c=null);var i=e.touches;if(!(i.length>1||"zoom"==g)){var r=i[0],a=n-r.clientX,u=s-r.clientY;if("wait"==g){if(!(a*a+u*u>4))return e.preventDefault();g="cursor"}n=r.clientX,s=r.clientY,e.clientX=r.clientX,e.clientY=r.clientY;var h=e.timeStamp,d=h-l;if(l=h,"scroll"==g){var p=new o(e,t);p.speed=1,p.wheelX=a,p.wheelY=u,10*Math.abs(a)=e){for(r=h+1;r=e;)r++;for(a=h,l=r-1;a=t.length||2!=(l=n[i-1])&&3!=l||2!=(c=t[i+1])&&3!=c?4:(r&&(c=3),c==l?c:4);case 10:return 2==(l=i>0?n[i-1]:5)&&i+10&&2==n[i-1])return 2;if(r)return 4;for(p=i+1,d=t.length;p=1425&&m<=2303||64286==m;if(l=t[p],f&&(1==l||7==l))return 1}return i<1||5==(l=t[i-1])?4:n[i-1];case 5:return r=!1,s=!0,o;case 6:return a=!0,4;case 13:case 14:case 16:case 17:case 15:r=!1;case h:return 4}}function f(e){var t=e.charCodeAt(0),n=t>>8;return 0==n?t>191?0:d[t]:5==n?/[\u0591-\u05f4]/.test(e)?1:0:6==n?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?12:/[\u0660-\u0669\u066b-\u066c]/.test(e)?3:1642==t?u:/[\u06f0-\u06f9]/.test(e)?2:7:32==n&&t<=8287?p[255&t]:254==n&&t>=65136?7:4}t.L=0,t.R=1,t.EN=2,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.RLE=7,t.DOT="·",t.doBidiReorder=function(e,n,u){if(e.length<2)return{};var d=e.split(""),p=new Array(d.length),y=new Array(d.length),v=[];o=u?1:0,function(e,t,n,u){var h=o?c:l,d=null,p=null,g=null,y=0,v=null,b=-1,w=null,x=null,k=[];if(!u)for(w=0,u=[];w0)if(16==v){for(w=b;w-1){for(w=b;w=0&&8==u[C];C--)t[C]=o}}(d,v,d.length,n);for(var b=0;b7&&n[b]<13||4===n[b]||n[b]===h)?v[b]=t.ON_R:b>0&&"ل"===d[b-1]&&/\u0622|\u0623|\u0625|\u0627/.test(d[b])&&(v[b-1]=v[b]=t.R_H,b++);for(d[d.length-1]===t.DOT&&(v[d.length-1]=t.B),"‫"===d[0]&&(v[0]=t.RLE),b=0;b=0&&(e=this.session.$docRowCache[n])}return e},e.prototype.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length)for(var n,o=this.session.$getRowCacheIndex(t,this.currentRow);this.currentRow-e>0&&(n=this.session.$getRowCacheIndex(t,this.currentRow-e-1))===o;)o=n,e++;else e=this.currentRow;return e},e.prototype.updateRowLine=function(e,t){void 0===e&&(e=this.getDocumentRow());var n=e===this.session.getLength()-1?this.EOF:this.EOL;if(this.wrapIndent=0,this.line=this.session.getLine(e),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE,this.session.$useWrapMode){var r=this.session.$wrapData[e];r&&(void 0===t&&(t=this.getSplitIndex()),t>0&&r.length?(this.wrapIndent=r.indent,this.wrapOffset=this.wrapIndent*this.charWidths[o.L],this.line=tt?this.session.getOverwrite()?e:e-1:t,i=o.getVisualFromLogicalIdx(n,this.bidiMap),r=this.bidiMap.bidiLevels,s=0;!this.session.getOverwrite()&&e<=t&&r[i]%2!=0&&i++;for(var a=0;at&&r[i]%2==0&&(s+=this.charWidths[r[i]]),this.wrapIndent&&(s+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(s+=this.rtlLineOffset),s},e.prototype.getSelections=function(e,t){var n,o=this.bidiMap,i=o.bidiLevels,r=[],s=0,a=Math.min(e,t)-this.wrapIndent,l=Math.max(e,t)-this.wrapIndent,c=!1,u=!1,h=0;this.wrapIndent&&(s+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var d,p=0;p=a&&dn+r/2;){if(n+=r,o===i.length-1){r=0;break}r=this.charWidths[i[++o]]}return o>0&&i[o-1]%2!=0&&i[o]%2==0?(e0&&i[o-1]%2==0&&i[o]%2!=0?t=1+(e>n?this.bidiMap.logicalFromVisual[o]:this.bidiMap.logicalFromVisual[o-1]):this.isRtlDir&&o===i.length-1&&0===r&&i[o-1]%2==0||!this.isRtlDir&&0===o&&i[o]%2!=0?t=1+this.bidiMap.logicalFromVisual[o]:(o>0&&i[o-1]%2!=0&&0!==r&&o--,t=this.bidiMap.logicalFromVisual[o]),0===t&&this.isRtlDir&&t++,t+this.wrapIndent},e}();t.BidiHandler=s})),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],(function(e,t,n){"use strict";var o=e("./lib/oop"),i=e("./lib/lang"),r=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,a=function(){function e(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var t=this;this.cursor.on("change",(function(e){t.$cursorChanged=!0,t.$silent||t._emit("changeCursor"),t.$isEmpty||t.$silent||t._emit("changeSelection"),t.$keepDesiredColumnOnChange||e.old.column==e.value.column||(t.$desiredColumn=null)})),this.anchor.on("change",(function(){t.$anchorChanged=!0,t.$isEmpty||t.$silent||t._emit("changeSelection")}))}return e.prototype.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},e.prototype.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},e.prototype.getCursor=function(){return this.lead.getPosition()},e.prototype.setAnchor=function(e,t){this.$isEmpty=!1,this.anchor.setPosition(e,t)},e.prototype.getAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},e.prototype.getSelectionLead=function(){return this.lead.getPosition()},e.prototype.isBackwards=function(){var e=this.anchor,t=this.lead;return e.row>t.row||e.row==t.row&&e.column>t.column},e.prototype.getRange=function(){var e=this.anchor,t=this.lead;return this.$isEmpty?s.fromPoints(t,t):this.isBackwards()?s.fromPoints(t,e):s.fromPoints(e,t)},e.prototype.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},e.prototype.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},e.prototype.setRange=function(e,t){var n=t?e.end:e.start,o=t?e.start:e.end;this.$setSelection(n.row,n.column,o.row,o.column)},e.prototype.$setSelection=function(e,t,n,o){if(!this.$silent){var i=this.$isEmpty,r=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(e,t),this.cursor.setPosition(n,o),this.$isEmpty=!s.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),(this.$cursorChanged||this.$anchorChanged||i!=this.$isEmpty||r)&&this._emit("changeSelection")}},e.prototype.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},e.prototype.selectTo=function(e,t){this.$moveSelection((function(){this.moveCursorTo(e,t)}))},e.prototype.selectToPosition=function(e){this.$moveSelection((function(){this.moveCursorToPosition(e)}))},e.prototype.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},e.prototype.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},e.prototype.selectUp=function(){this.$moveSelection(this.moveCursorUp)},e.prototype.selectDown=function(){this.$moveSelection(this.moveCursorDown)},e.prototype.selectRight=function(){this.$moveSelection(this.moveCursorRight)},e.prototype.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},e.prototype.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},e.prototype.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},e.prototype.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},e.prototype.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},e.prototype.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},e.prototype.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},e.prototype.getWordRange=function(e,t){if(void 0===t){var n=e||this.lead;e=n.row,t=n.column}return this.session.getWordRange(e,t)},e.prototype.selectWord=function(){this.setSelectionRange(this.getWordRange())},e.prototype.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},e.prototype.getLineRange=function(e,t){var n,o="number"==typeof e?e:this.lead.row,i=this.session.getFoldLine(o);return i?(o=i.start.row,n=i.end.row):n=o,!0===t?new s(o,0,n,this.session.getLine(n).length):new s(o,0,n+1,0)},e.prototype.selectLine=function(){this.setSelectionRange(this.getLineRange())},e.prototype.moveCursorUp=function(){this.moveCursorBy(-1,0)},e.prototype.moveCursorDown=function(){this.moveCursorBy(1,0)},e.prototype.wouldMoveIntoSoftTab=function(e,t,n){var o=e.column,i=e.column+t;return n<0&&(o=e.column-t,i=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(o,i).split(" ").length-1==t},e.prototype.moveCursorLeft=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(0===t.column)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var n=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,n,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},e.prototype.moveCursorRight=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(e.end.row,e.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=o)}}this.moveCursorTo(t.row,t.column)},e.prototype.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},e.prototype.moveCursorFileStart=function(){this.moveCursorTo(0,0)},e.prototype.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),o=n.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var i=this.session.getFoldAt(e,t,1);if(i)this.moveCursorTo(i.end.row,i.end.column);else{if(this.session.nonTokenRe.exec(o)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,o=n.substring(t)),t>=n.length)return this.moveCursorTo(e,n.length),this.moveCursorRight(),void(e0&&this.moveCursorWordLeft());this.session.tokenRe.exec(r)&&(n-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,n)}},e.prototype.$shortWordEndIndex=function(e){var t,n=0,o=/\s/,i=this.session.tokenRe;if(i.lastIndex=0,this.session.tokenRe.exec(e))n=this.session.tokenRe.lastIndex;else{for(;(t=e[n])&&o.test(t);)n++;if(n<1)for(i.lastIndex=0;(t=e[n])&&!i.test(t);)if(i.lastIndex=0,n++,o.test(t)){if(n>2){n--;break}for(;(t=e[n])&&o.test(t);)n++;if(n>2)break}}return i.lastIndex=0,n},e.prototype.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),o=n.substring(t),i=this.session.getFoldAt(e,t,1);if(i)return this.moveCursorTo(i.end.row,i.end.column);if(t==n.length){var r=this.doc.getLength();do{e++,o=this.doc.getLine(e)}while(e0&&/^\s*$/.test(o));n=o.length,/\s+$/.test(o)||(o="")}var r=i.stringReverse(o),s=this.$shortWordEndIndex(r);return this.moveCursorTo(t,n-s)},e.prototype.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},e.prototype.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},e.prototype.moveCursorBy=function(e,t){var n,o=this.session.documentToScreenPosition(this.lead.row,this.lead.column);if(0===t&&(0!==e&&(this.session.$bidiHandler.isBidiRow(o.row,this.lead.row)?(n=this.session.$bidiHandler.getPosLeft(o.column),o.column=Math.round(n/this.session.$bidiHandler.charWidths[0])):n=o.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?o.column=this.$desiredColumn:this.$desiredColumn=o.column),0!=e&&this.session.lineWidgets&&this.session.lineWidgets[this.lead.row]){var i=this.session.lineWidgets[this.lead.row];e<0?e-=i.rowsAbove||0:e>0&&(e+=i.rowCount-(i.rowsAbove||0))}var r=this.session.screenToDocumentPosition(o.row+e,o.column,n);0!==e&&0===t&&r.row===this.lead.row&&(r.column,this.lead.column),this.moveCursorTo(r.row,r.column+t,0===t)},e.prototype.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},e.prototype.moveCursorTo=function(e,t,n){var o=this.session.getFoldAt(e,t,1);o&&(e=o.start.row,t=o.start.column),this.$keepDesiredColumnOnChange=!0;var i=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(i.charAt(t))&&i.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},e.prototype.moveCursorToScreen=function(e,t,n){var o=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(o.row,o.column,n)},e.prototype.detach=function(){this.lead.detach(),this.anchor.detach()},e.prototype.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},e.prototype.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},e.prototype.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var n=this.getCursor();return s.fromPoints(t,n)}catch(e){return s.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},e.prototype.toJSON=function(){if(this.rangeCount)var e=this.ranges.map((function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t}));else(e=this.getRange()).isBackwards=this.isBackwards();return e},e.prototype.fromJSON=function(e){if(null==e.start){if(this.rangeList&&e.length>1){this.toSingleRange(e[0]);for(var t=e.length;t--;){var n=s.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},e.prototype.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0},e}();a.prototype.setSelectionAnchor=a.prototype.setAnchor,a.prototype.getSelectionAnchor=a.prototype.getAnchor,a.prototype.setSelectionRange=a.prototype.setRange,o.implement(a.prototype,r),t.Selection=a})),ace.define("ace/tokenizer",["require","exports","module","ace/lib/report_error"],(function(e,t,n){"use strict";var o=e("./lib/report_error").reportError,i=2e3,r=function(){function e(e){for(var t in this.states=e,this.regExps={},this.matchMappings={},this.states){for(var n=this.states[t],o=[],i=0,r=this.matchMappings[t]={defaultToken:"text"},s="g",a=[],l=0;l1?this.$applyToken:c.token),h>1&&(/\\\d/.test(c.regex)?u=c.regex.replace(/\\([0-9]+)/g,(function(e,t){return"\\"+(parseInt(t,10)+i+1)})):(h=1,u=this.removeCapturingGroups(c.regex)),c.splitRegex||"string"==typeof c.token||a.push(c)),r[i]=l,i+=h,o.push(u),c.onMatch||(c.onMatch=null)}}o.length||(r[0]=0,o.push("$")),a.forEach((function(e){e.splitRegex=this.createSplitterRegexp(e.regex,s)}),this),this.regExps[t]=new RegExp("("+o.join(")|(")+")|($)",s)}}return e.prototype.$setMaxTokenCount=function(e){i=0|e},e.prototype.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),n=this.token.apply(this,t);if("string"==typeof n)return[{type:n,value:e}];for(var o=[],i=0,r=n.length;iu){var y=e.substring(u,f-m.length);d.type==p?d.value+=y:(d.type&&c.push(d),d={type:p,value:y})}for(var v=0;vi){for(h>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});u1&&n[0]!==o&&n.unshift("#tmp",o),{tokens:c,state:n.length?n:o}},e}();r.prototype.reportError=o,t.Tokenizer=r})),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/deep_copy"],(function(e,t,n){"use strict";var o=e("../lib/deep_copy").deepCopy,i=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(t)for(var n in e){for(var o=e[n],i=0;i=this.$rowTokens.length;){if(this.$row+=1,e||(e=this.$session.getLength()),this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},e.prototype.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},e.prototype.getCurrentTokenRow=function(){return this.$row},e.prototype.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,n=e[t].start;if(void 0!==n)return n;for(n=0;t>0;)n+=e[t-=1].value.length;return n},e.prototype.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},e.prototype.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new o(this.$row,t,this.$row,t+e.value.length)},e}();t.TokenIterator=i})),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],(function(e,t,n){"use strict";var o,i=e("../../lib/oop"),r=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,a=e("../../lib/lang"),l=["text","paren.rparen","rparen","paren","punctuation.operator"],c=["text","paren.rparen","rparen","paren","punctuation.operator","comment"],u={},h={'"':'"',"'":"'"},d=function(e){var t=-1;if(e.multiSelect&&(t=e.selection.index,u.rangeCount!=e.multiSelect.rangeCount&&(u={rangeCount:e.multiSelect.rangeCount})),u[t])return o=u[t];o=u[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},p=function(e,t,n,o){var i=e.end.row-e.start.row;return{text:n+t+o,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},g=function(e){e=e||{},this.add("braces","insertion",(function(t,n,i,r,s){var l=i.getCursorPosition(),c=r.doc.getLine(l.row);if("{"==s){d(i);var u=i.getSelectionRange(),h=r.doc.getTextRange(u);if(""!==h&&"{"!==h&&i.getWrapBehavioursEnabled())return p(u,h,"{","}");if(g.isSaneInsertion(i,r))return/[\]\}\)]/.test(c[l.column])||i.inMultiSelectMode||e.braces?(g.recordAutoInsert(i,r,"}"),{text:"{}",selection:[1,1]}):(g.recordMaybeInsert(i,r,"{"),{text:"{",selection:[1,1]})}else if("}"==s){if(d(i),"}"==c.substring(l.column,l.column+1)&&null!==r.$findOpeningBracket("}",{column:l.column+1,row:l.row})&&g.isAutoInsertedClosing(l,c,s))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}else{if("\n"==s||"\r\n"==s){d(i);var m="";if(g.isMaybeInsertedClosing(l,c)&&(m=a.stringRepeat("}",o.maybeInsertedBrackets),g.clearMaybeInsertedClosing()),"}"===c.substring(l.column,l.column+1)){var f=r.findMatchingBracket({row:l.row,column:l.column+1},"}");if(!f)return null;var y=this.$getIndent(r.getLine(f.row))}else{if(!m)return void g.clearMaybeInsertedClosing();y=this.$getIndent(c)}var v=y+r.getTabString();return{text:"\n"+v+"\n"+y+m,selection:[1,v.length,1,v.length]}}g.clearMaybeInsertedClosing()}})),this.add("braces","deletion",(function(e,t,n,i,r){var s=i.doc.getTextRange(r);if(!r.isMultiLine()&&"{"==s){if(d(n),"}"==i.doc.getLine(r.start.row).substring(r.end.column,r.end.column+1))return r.end.column++,r;o.maybeInsertedBrackets--}})),this.add("parens","insertion",(function(e,t,n,o,i){if("("==i){d(n);var r=n.getSelectionRange(),s=o.doc.getTextRange(r);if(""!==s&&n.getWrapBehavioursEnabled())return p(r,s,"(",")");if(g.isSaneInsertion(n,o))return g.recordAutoInsert(n,o,")"),{text:"()",selection:[1,1]}}else if(")"==i){d(n);var a=n.getCursorPosition(),l=o.doc.getLine(a.row);if(")"==l.substring(a.column,a.column+1)&&null!==o.$findOpeningBracket(")",{column:a.column+1,row:a.row})&&g.isAutoInsertedClosing(a,l,i))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}})),this.add("parens","deletion",(function(e,t,n,o,i){var r=o.doc.getTextRange(i);if(!i.isMultiLine()&&"("==r&&(d(n),")"==o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)))return i.end.column++,i})),this.add("brackets","insertion",(function(e,t,n,o,i){if("["==i){d(n);var r=n.getSelectionRange(),s=o.doc.getTextRange(r);if(""!==s&&n.getWrapBehavioursEnabled())return p(r,s,"[","]");if(g.isSaneInsertion(n,o))return g.recordAutoInsert(n,o,"]"),{text:"[]",selection:[1,1]}}else if("]"==i){d(n);var a=n.getCursorPosition(),l=o.doc.getLine(a.row);if("]"==l.substring(a.column,a.column+1)&&null!==o.$findOpeningBracket("]",{column:a.column+1,row:a.row})&&g.isAutoInsertedClosing(a,l,i))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}})),this.add("brackets","deletion",(function(e,t,n,o,i){var r=o.doc.getTextRange(i);if(!i.isMultiLine()&&"["==r&&(d(n),"]"==o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)))return i.end.column++,i})),this.add("string_dquotes","insertion",(function(e,t,n,o,i){var r=o.$mode.$quotes||h;if(1==i.length&&r[i]){if(this.lineCommentStart&&-1!=this.lineCommentStart.indexOf(i))return;d(n);var s=i,a=n.getSelectionRange(),l=o.doc.getTextRange(a);if(!(""===l||1==l.length&&r[l])&&n.getWrapBehavioursEnabled())return p(a,l,s,s);if(!l){var c=n.getCursorPosition(),u=o.doc.getLine(c.row),g=u.substring(c.column-1,c.column),m=u.substring(c.column,c.column+1),f=o.getTokenAt(c.row,c.column),y=o.getTokenAt(c.row,c.column+1);if("\\"==g&&f&&/escape/.test(f.type))return null;var v,b=f&&/string|escape/.test(f.type),w=!y||/string|escape/.test(y.type);if(m==s)(v=b!==w)&&/string\.end/.test(y.type)&&(v=!1);else{if(b&&!w)return null;if(b&&w)return null;var x=o.$mode.tokenRe;x.lastIndex=0;var k=x.test(g);x.lastIndex=0;var C=x.test(m),$=o.$mode.$pairQuotesAfter;if(!($&&$[s]&&$[s].test(g))&&k||C)return null;if(m&&!/[\s;,.})\]\\]/.test(m))return null;var S=u[c.column-2];if(g==s&&(S==s||x.test(S)))return null;v=!0}return{text:v?s+s:"",selection:[1,1]}}}})),this.add("string_dquotes","deletion",(function(e,t,n,o,i){var r=o.$mode.$quotes||h,s=o.doc.getTextRange(i);if(!i.isMultiLine()&&r.hasOwnProperty(s)&&(d(n),o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)==s))return i.end.column++,i})),!1!==e.closeDocComment&&this.add("doc comment end","insertion",(function(e,t,n,o,i){if("doc-start"===e&&("\n"===i||"\r\n"===i)&&n.selection.isEmpty()){var r=n.getCursorPosition(),s=o.doc.getLine(r.row),a=o.doc.getLine(r.row+1),l=this.$getIndent(s);if(/\s*\*/.test(a))return/^\s*\*/.test(s)?{text:i+l+"* ",selection:[1,3+l.length,1,3+l.length]}:{text:i+l+" * ",selection:[1,3+l.length,1,3+l.length]};if(/\/\*\*/.test(s.substring(0,r.column)))return{text:i+l+" * "+i+" "+l+"*/",selection:[1,4+l.length,1,4+l.length]}}}))};g.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),o=new s(t,n.row,n.column);if(!this.$matchTokenType(o.getCurrentToken()||"text",l)){if(/[)}\]]/.test(e.session.getLine(n.row)[n.column]))return!0;var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",l))return!1}return o.stepForward(),o.getCurrentTokenRow()!==n.row||this.$matchTokenType(o.getCurrentToken()||"text",c)},g.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},g.recordAutoInsert=function(e,t,n){var i=e.getCursorPosition(),r=t.doc.getLine(i.row);this.isAutoInsertedClosing(i,r,o.autoInsertedLineEnd[0])||(o.autoInsertedBrackets=0),o.autoInsertedRow=i.row,o.autoInsertedLineEnd=n+r.substr(i.column),o.autoInsertedBrackets++},g.recordMaybeInsert=function(e,t,n){var i=e.getCursorPosition(),r=t.doc.getLine(i.row);this.isMaybeInsertedClosing(i,r)||(o.maybeInsertedBrackets=0),o.maybeInsertedRow=i.row,o.maybeInsertedLineStart=r.substr(0,i.column)+n,o.maybeInsertedLineEnd=r.substr(i.column),o.maybeInsertedBrackets++},g.isAutoInsertedClosing=function(e,t,n){return o.autoInsertedBrackets>0&&e.row===o.autoInsertedRow&&n===o.autoInsertedLineEnd[0]&&t.substr(e.column)===o.autoInsertedLineEnd},g.isMaybeInsertedClosing=function(e,t){return o.maybeInsertedBrackets>0&&e.row===o.maybeInsertedRow&&t.substr(e.column)===o.maybeInsertedLineEnd&&t.substr(0,e.column)==o.maybeInsertedLineStart},g.popAutoInsertedClosing=function(){o.autoInsertedLineEnd=o.autoInsertedLineEnd.substr(1),o.autoInsertedBrackets--},g.clearMaybeInsertedClosing=function(){o&&(o.maybeInsertedBrackets=0,o.maybeInsertedRow=-1)},i.inherits(g,r),t.CstyleBehaviour=g})),ace.define("ace/unicode",["require","exports","module"],(function(e,t,n){"use strict";for(var o=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],i=0,r=[],s=0;s2?o%c!=c-1:o%c==0})}else{if(!this.blockComment)return!1;var p=this.blockComment.start,g=this.blockComment.end,m=new RegExp("^(\\s*)(?:"+l.escapeRegExp(p)+")"),f=new RegExp("(?:"+l.escapeRegExp(g)+")\\s*$"),y=function(e,t){b(e,t)||r&&!/\S/.test(e)||(i.insertInLine({row:t,column:e.length},g),i.insertInLine({row:t,column:a},p))},v=function(e,t){var n;(n=e.match(f))&&i.removeInLine(t,e.length-n[0].length,e.length),(n=e.match(m))&&i.removeInLine(t,n[1].length,n[0].length)},b=function(e,n){if(m.test(e))return!0;for(var o=t.getTokens(n),i=0;ie.length&&(x=e.length)})),a==1/0&&(a=x,r=!1,s=!1),u&&a%c!=0&&(a=Math.floor(a/c)*c),w(s?v:y)},this.toggleBlockComment=function(e,t,n,o){var i=this.blockComment;if(i){!i.start&&i[0]&&(i=i[0]);var r,s,a=(m=new c(t,o.row,o.column)).getCurrentToken(),l=(t.selection,t.selection.toOrientedRange());if(a&&/comment/.test(a.type)){for(var h,d;a&&/comment/.test(a.type);){if(-1!=(f=a.value.indexOf(i.start))){var p=m.getCurrentTokenRow(),g=m.getCurrentTokenColumn()+f;h=new u(p,g,p,g+i.start.length);break}a=m.stepBackward()}var m;for(a=(m=new c(t,o.row,o.column)).getCurrentToken();a&&/comment/.test(a.type);){var f;if(-1!=(f=a.value.indexOf(i.end))){p=m.getCurrentTokenRow(),g=m.getCurrentTokenColumn()+f,d=new u(p,g,p,g+i.end.length);break}a=m.stepForward()}d&&t.remove(d),h&&(t.remove(h),r=h.start.row,s=-i.start.length)}else s=i.start.length,r=n.start.row,t.insert(n.end,i.end),t.insert(n.start,i.start);l.start.row==r&&(l.start.column+=s),l.end.row==r&&(l.end.column+=s),t.selection.fromOrientedRange(l)}},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.autoOutdent=function(e,t,n){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){for(var t in this.$embeds=[],this.$modes={},e)if(e[t]){var n=e[t],i=n.prototype.$id,r=o.$modes[i];r||(o.$modes[i]=r=new n),o.$modes[t]||(o.$modes[t]=r),this.$embeds.push(t),this.$modes[t]=r}var s=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"];for(t=0;tthis.row)){var t=function(e,t,n){var o="insert"==e.action,i=(o?1:-1)*(e.end.row-e.start.row),r=(o?1:-1)*(e.end.column-e.start.column),a=e.start,l=o?a:e.end;return s(t,a,n)?{row:t.row,column:t.column}:s(l,t,!n)?{row:t.row+i,column:t.column+(t.row==l.row?r:0)}:{row:a.row,column:a.column}}(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(t.row,t.column,!0)}},e.prototype.setPosition=function(e,t,n){var o;if(o=n?{row:e,column:t}:this.$clipPositionToDocument(e,t),this.row!=o.row||this.column!=o.column){var i={row:this.row,column:this.column};this.row=o.row,this.column=o.column,this._signal("change",{old:i,value:o})}},e.prototype.detach=function(){this.document.off("change",this.$onChange)},e.prototype.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},e.prototype.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n},e}();function s(e,t,n){var o=n?e.column<=t.column:e.column=n&&(e=n-1,t=void 0);var o=this.getLine(e);return null==t&&(t=o.length),{row:e,column:t=Math.min(Math.max(t,0),o.length)}},e.prototype.clonePos=function(e){return{row:e.row,column:e.column}},e.prototype.pos=function(e,t){return{row:e,column:t}},e.prototype.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},e.prototype.insertFullLines=function(e,t){var n=0;(e=Math.min(Math.max(e,0),this.getLength()))0,o=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},e.prototype.replace=function(e,t){return e instanceof s||(e=s.fromPoints(e.start,e.end)),0===t.length&&e.isEmpty()?e.start:t==this.getTextRange(e)?e.end:(this.remove(e),t?this.insert(e.start,t):e.start)},e.prototype.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},e.prototype.applyDelta=function(e,t){var n="insert"==e.action;(n?e.lines.length<=1&&!e.lines[0]:!s.comparePoints(e.start,e.end))||(n&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(i(this.$lines,e,t),this._signal("change",e)))},e.prototype.$safeApplyDelta=function(e){var t=this.$lines.length;("remove"==e.action&&e.start.row20){n.running=setTimeout(n.$worker,20);break}}n.currentLine=t,-1==o&&(o=t),r<=o&&n.fireUpdateEvent(r,o)}}}return e.prototype.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},e.prototype.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},e.prototype.fireUpdateEvent=function(e,t){var n={first:e,last:t};this._signal("update",{data:n})},e.prototype.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},e.prototype.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},e.prototype.$updateOnChange=function(e){var t=e.start.row,n=e.end.row-t;if(0===n)this.lines[t]=null;else if("remove"==e.action)this.lines.splice(t,n+1,null),this.states.splice(t,n+1,null);else{var o=Array(n+1);o.unshift(t,1),this.lines.splice.apply(this.lines,o),this.states.splice.apply(this.states,o)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},e.prototype.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},e.prototype.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},e.prototype.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},e.prototype.$tokenizeRow=function(e){var t=this.doc.getLine(e),n=this.states[e-1],o=this.tokenizer.getLineTokens(t,n,e);return this.states[e]+""!=o.state+""?(this.states[e]=o.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=o.tokens},e.prototype.cleanup=function(){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.removeAllListeners()},e}();o.implement(r.prototype,i),t.BackgroundTokenizer=r})),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/range"],(function(e,t,n){"use strict";var o=e("./lib/lang"),i=e("./range").Range,r=function(){function e(e,t,n){void 0===n&&(n="text"),this.setRegexp(e),this.clazz=t,this.type=n}return e.prototype.setRegexp=function(e){this.regExp+""!=e+""&&(this.regExp=e,this.cache=[])},e.prototype.update=function(e,t,n,r){if(this.regExp)for(var s=r.firstRow,a=r.lastRow,l={},c=s;c<=a;c++){var u=this.cache[c];null==u&&((u=o.getMatchOffsets(n.getLine(c),this.regExp)).length>this.MAX_RANGES&&(u=u.slice(0,this.MAX_RANGES)),u=u.map((function(e){return new i(c,e.offset,c,e.offset+e.length)})),this.cache[c]=u.length?u:"");for(var h=u.length;h--;){var d=u[h].toScreenRange(n),p=d.toString();l[p]||(l[p]=!0,t.drawSingleLineMarker(e,d,this.clazz,r))}}},e}();r.prototype.MAX_RANGES=500,t.SearchHighlight=r})),ace.define("ace/undomanager",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=function(){function e(){this.$maxRev=0,this.$fromUndo=!1,this.$undoDepth=1/0,this.reset()}return e.prototype.addSession=function(e){this.$session=e},e.prototype.add=function(e,t,n){if(!this.$fromUndo&&e!=this.$lastDelta){if(this.$keepRedoStack||(this.$redoStack.length=0),!1===t||!this.lastDeltas){this.lastDeltas=[];var o=this.$undoStack.length;o>this.$undoDepth-1&&this.$undoStack.splice(0,o-this.$undoDepth+1),this.$undoStack.push(this.lastDeltas),e.id=this.$rev=++this.$maxRev}"remove"!=e.action&&"insert"!=e.action||(this.$lastDelta=e),this.lastDeltas.push(e)}},e.prototype.addSelection=function(e,t){this.selections.push({value:e,rev:t||this.$rev})},e.prototype.startNewGroup=function(){return this.lastDeltas=null,this.$rev},e.prototype.markIgnored=function(e,t){null==t&&(t=this.$rev+1);for(var n=this.$undoStack,o=n.length;o--;){var i=n[o][0];if(i.id<=e)break;i.id0},e.prototype.canRedo=function(){return this.$redoStack.length>0},e.prototype.bookmark=function(e){null==e&&(e=this.$rev),this.mark=e},e.prototype.isAtBookmark=function(){return this.$rev===this.mark},e.prototype.toJSON=function(){return{$redoStack:this.$redoStack,$undoStack:this.$undoStack}},e.prototype.fromJSON=function(e){this.reset(),this.$undoStack=e.$undoStack,this.$redoStack=e.$redoStack},e.prototype.$prettyPrint=function(e){return e?a(e):a(this.$undoStack)+"\n---\n"+a(this.$redoStack)},e}();o.prototype.hasUndo=o.prototype.canUndo,o.prototype.hasRedo=o.prototype.canRedo,o.prototype.isClean=o.prototype.isAtBookmark,o.prototype.markClean=o.prototype.bookmark;var i=e("./range").Range,r=i.comparePoints;function s(e){return{row:e.row,column:e.column}}function a(e){if(e=e||this,Array.isArray(e))return e.map(a).join("\n");var t="";return e.action?(t="insert"==e.action?"+":"-",t+="["+e.lines+"]"):e.value&&(t=Array.isArray(e.value)?e.value.map(l).join("\n"):l(e.value)),e.start&&(t+=l(e)),(e.id||e.rev)&&(t+="\t("+(e.id||e.rev)+")"),t}function l(e){return e.start.row+":"+e.start.column+"=>"+e.end.row+":"+e.end.column}function c(e,t){var n="insert"==e.action,o="insert"==t.action;if(n&&o)if(r(t.start,e.end)>=0)d(t,e,-1);else{if(!(r(t.start,e.start)<=0))return null;d(e,t,1)}else if(n&&!o)if(r(t.start,e.end)>=0)d(t,e,-1);else{if(!(r(t.end,e.start)<=0))return null;d(e,t,-1)}else if(!n&&o)if(r(t.start,e.start)>=0)d(t,e,1);else{if(!(r(t.start,e.start)<=0))return null;d(e,t,1)}else if(!n&&!o)if(r(t.start,e.start)>=0)d(t,e,1);else{if(!(r(t.end,e.start)<=0))return null;d(e,t,-1)}return[t,e]}function u(e,t){for(var n=e.length;n--;)for(var o=0;o=0?d(e,t,-1):(r(e.start,t.start)<=0||d(e,i.fromPoints(t.start,e.start),-1),d(t,e,1));else if(!n&&o)r(t.start,e.end)>=0?d(t,e,-1):(r(t.start,e.start)<=0||d(t,i.fromPoints(e.start,t.start),-1),d(e,t,1));else if(!n&&!o)if(r(t.start,e.end)>=0)d(t,e,-1);else{var s,a;if(!(r(t.end,e.start)<=0))return r(e.start,t.start)<0&&(s=e,e=g(e,t.start)),r(e.end,t.end)>0&&(a=g(e,t.end)),p(t.end,e.start,e.end,-1),a&&!s&&(e.lines=a.lines,e.start=a.start,e.end=a.end,a=e),[t,s,a].filter(Boolean);d(e,t,-1)}return[t,e]}function d(e,t,n){p(e.start,t.start,t.end,n),p(e.end,t.start,t.end,n)}function p(e,t,n,o){e.row==(1==o?t:n).row&&(e.column+=o*(n.column-t.column)),e.row+=o*(n.row-t.row)}function g(e,t){var n=e.lines,o=e.end;e.end=s(t);var i=e.end.row-e.start.row,r=n.splice(i,n.length),a=i?t.column:t.column-e.start.column;return n.push(r[0].substring(0,a)),r[0]=r[0].substr(a),{start:s(t),end:o,lines:r,action:e.action}}function m(e,t){t=function(e){return{start:s(e.start),end:s(e.end),action:e.action,lines:e.lines.slice()}}(t);for(var n=e.length;n--;){for(var o=e[n],i=0;ithis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort((function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)})),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},e.prototype.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},e.prototype.walk=function(e,t,n){var o,i,r=0,s=this.folds,a=!0;null==t&&(t=this.end.row,n=this.end.column);for(var l=0;l0)){var l=o(e,s.start);return 0===a?t&&0!==l?-r-2:r:l>0||0===l&&!t?r:-r-1}}return-r-1},e.prototype.add=function(e){var t=!e.isEmpty(),n=this.pointIndex(e.start,t);n<0&&(n=-n-1);var o=this.pointIndex(e.end,t,n);return o<0?o=-o-1:o++,this.ranges.splice(n,o-n,e)},e.prototype.addList=function(e){for(var t=[],n=e.length;n--;)t.push.apply(t,this.add(e[n]));return t},e.prototype.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},e.prototype.merge=function(){for(var e,t=[],n=this.ranges,i=(n=n.sort((function(e,t){return o(e.start,t.start)})))[0],r=1;r=0},e.prototype.containsPoint=function(e){return this.pointIndex(e)>=0},e.prototype.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},e.prototype.clipRows=function(e,t){var n=this.ranges;if(n[0].start.row>t||n[n.length-1].start.row=o);s++);if("insert"==e.action){for(var l=i-o,c=-t.column+n.column;so);s++)if(u.start.row==o&&u.start.column>=t.column&&(u.start.column==t.column&&this.$bias<=0||(u.start.column+=c,u.start.row+=l)),u.end.row==o&&u.end.column>=t.column){if(u.end.column==t.column&&this.$bias<0)continue;u.end.column==t.column&&c>0&&su.start.column&&u.end.column==r[s+1].start.column&&(u.end.column-=c),u.end.column+=c,u.end.row+=l}}else for(l=o-i,c=t.column-n.column;si);s++)u.end.rowt.column)&&(u.end.column=t.column,u.end.row=t.row):(u.end.column+=c,u.end.row+=l):u.end.row>i&&(u.end.row+=l),u.start.rowt.column)&&(u.start.column=t.column,u.start.row=t.row):(u.start.column+=c,u.start.row+=l):u.start.row>i&&(u.start.row+=l);if(0!=l&&s=e)return i;if(i.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var n=this.$foldData,o=0;for(t&&(o=n.indexOf(t)),-1==o&&(o=0);o=e)return i}return null},this.getFoldedRowCount=function(e,t){for(var n=this.$foldData,o=t-e+1,i=0;i=t){a=e?o-=t-a:o=0);break}s>=e&&(o-=a>=e?s-a:s-e+1)}return o},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort((function(e,t){return e.start.row-t.start.row})),e},this.addFold=function(e,t){var n,o=this.$foldData,s=!1;e instanceof r?n=e:(n=new r(t,e)).collapseChildren=t.collapseChildren,this.$clipRangeToDocument(n.range);var a=n.start.row,l=n.start.column,c=n.end.row,u=n.end.column,h=this.getFoldAt(a,l,1),d=this.getFoldAt(c,u,-1);if(h&&d==h)return h.addSubFold(n);h&&!h.range.isStart(a,l)&&this.removeFold(h),d&&!d.range.isEnd(c,u)&&this.removeFold(d);var p=this.getFoldsInRange(n.range);p.length>0&&(this.removeFolds(p),n.collapseChildren||p.forEach((function(e){n.addSubFold(e)})));for(var g=0;g0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach((function(e){this.expandFold(e)}),this)},this.unfold=function(e,t){var n,i;if(null==e)n=new o(0,0,this.getLength(),0),null==t&&(t=!0);else if("number"==typeof e)n=new o(e,0,e,this.getLine(e).length);else if("row"in e)n=o.fromPoints(e,e);else{if(Array.isArray(e))return i=[],e.forEach((function(e){i=i.concat(this.unfold(e))}),this),i;n=e}for(var r=i=this.getFoldsInRangeList(n);1==i.length&&o.comparePoints(i[0].start,n.start)<0&&o.comparePoints(i[0].end,n.end)>0;)this.expandFolds(i),i=this.getFoldsInRangeList(n);if(0!=t?this.removeFolds(i):this.expandFolds(i),r.length)return r},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var n=this.getFoldLine(e,t);return n?n.end.row:e},this.getRowFoldStart=function(e,t){var n=this.getFoldLine(e,t);return n?n.start.row:e},this.getFoldDisplayLine=function(e,t,n,o,i){null==o&&(o=e.start.row),null==i&&(i=0),null==t&&(t=e.end.row),null==n&&(n=this.getLine(t).length);var r=this.doc,s="";return e.walk((function(e,t,n,a){if(!(tu)break}while(r&&l.test(r.type)&&!/^comment.start/.test(r.type));r=i.stepBackward()}else r=i.getCurrentToken();return c.end.row=i.getCurrentTokenRow(),c.end.column=i.getCurrentTokenColumn(),/^comment.end/.test(r.type)||(c.end.column+=r.value.length-2),c}},this.foldAll=function(e,t,n,o){null==n&&(n=1e5);var i=this.foldWidgets;if(i){t=t||this.getLength();for(var r=e=e||0;r=e&&(r=s.end.row,s.collapseChildren=n,this.addFold("...",s))}}},this.foldToLevel=function(e){for(this.foldAll();e-- >0;)this.unfold(null,!1)},this.foldAllComments=function(){var e=this;this.foldAll(null,null,null,(function(t){for(var n=e.getTokens(t),o=0;o=0;){var r=n[i];if(null==r&&(r=n[i]=this.getFoldWidget(i)),"start"==r){var s=this.getFoldWidgetRange(i);if(o||(o=s),s&&s.end.row>=e)break}i--}return{range:-1!==i&&s,firstRange:o}},this.onFoldWidgetClick=function(e,t){t instanceof a&&(t=t.domEvent);var n={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey};if(!this.$toggleFoldWidget(e,n)){var o=t.target||t.srcElement;o&&/ace_fold-widget/.test(o.className)&&(o.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(this.getFoldWidget){var n=this.getFoldWidget(e),o=this.getLine(e),i="end"===n?-1:1,r=this.getFoldAt(e,-1===i?0:o.length,i);if(r)return t.children||t.all?this.removeFold(r):this.expandFold(r),r;var s=this.getFoldWidgetRange(e,!0);if(s&&!s.isMultiLine()&&(r=this.getFoldAt(s.start.row,s.start.column,1))&&s.isEqual(r.range))return this.removeFold(r),r;if(t.siblings){var a=this.getParentFoldRangeData(e);if(a.range)var l=a.range.start.row+1,c=a.range.end.row;this.foldAll(l,c,t.all?1e4:0)}else t.children?(c=s?s.end.row:this.getLength(),this.foldAll(e+1,c,t.all?1e4:0)):s&&(t.all&&(s.collapseChildren=1e4),this.addFold("...",s));return s}},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var n=this.$toggleFoldWidget(t,{});if(!n){var o=this.getParentFoldRangeData(t,!0);if(n=o.range||o.firstRange){t=n.start.row;var i=this.getFoldAt(t,this.getLine(t).length,1);i?this.removeFold(i):this.addFold("...",n)}}},this.updateFoldWidgets=function(e){var t=e.start.row,n=e.end.row-t;if(0===n)this.foldWidgets[t]=null;else if("remove"==e.action)this.foldWidgets.splice(t,n+1,null);else{var o=Array(n+1);o.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,o)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}})),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],(function(e,t,n){"use strict";var o=e("../token_iterator").TokenIterator,i=e("../range").Range;t.BracketMatch=function(){this.findMatchingBracket=function(e,t){if(0==e.column)return null;var n=t||this.getLine(e.row).charAt(e.column-1);if(""==n)return null;var o=n.match(/([\(\[\{])|([\)\]\}])/);return o?o[1]?this.$findClosingBracket(o[1],e):this.$findOpeningBracket(o[2],e):null},this.getBracketRange=function(e){var t,n=this.getLine(e.row),o=!0,r=n.charAt(e.column-1),s=r&&r.match(/([\(\[\{])|([\)\]\}])/);if(s||(r=n.charAt(e.column),e={row:e.row,column:e.column+1},s=r&&r.match(/([\(\[\{])|([\)\]\}])/),o=!1),!s)return null;if(s[1]){if(!(a=this.$findClosingBracket(s[1],e)))return null;t=i.fromPoints(e,a),o||(t.end.column++,t.start.column--),t.cursor=t.end}else{var a;if(!(a=this.$findOpeningBracket(s[2],e)))return null;t=i.fromPoints(a,e),o||(t.start.column++,t.end.column--),t.cursor=t.start}return t},this.getMatchingBracketRanges=function(e,t){var n=this.getLine(e.row),o=/([\(\[\{])|([\)\]\}])/,r=!t&&n.charAt(e.column-1),s=r&&r.match(o);if(s||(r=(void 0===t||t)&&n.charAt(e.column),e={row:e.row,column:e.column+1},s=r&&r.match(o)),!s)return null;var a=new i(e.row,e.column-1,e.row,e.column),l=s[1]?this.$findClosingBracket(s[1],e):this.$findOpeningBracket(s[2],e);return l?[a,new i(l.row,l.column,l.row,l.column+1)]:[a]},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(e,t,n){var i=this.$brackets[e],r=1,s=new o(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){n||(n=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)").replace(/-close\b/,"-(close|open)")+")+"));for(var l=t.column-s.getCurrentTokenColumn()-2,c=a.value;;){for(;l>=0;){var u=c.charAt(l);if(u==i){if(0==(r-=1))return{row:s.getCurrentTokenRow(),column:l+s.getCurrentTokenColumn()}}else u==e&&(r+=1);l-=1}do{a=s.stepBackward()}while(a&&!n.test(a.type));if(null==a)break;l=(c=a.value).length-1}return null}},this.$findClosingBracket=function(e,t,n){var i=this.$brackets[e],r=1,s=new o(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){n||(n=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)").replace(/-open\b/,"-(close|open)")+")+"));for(var l=t.column-s.getCurrentTokenColumn();;){for(var c=a.value,u=c.length;l"===t.value?o=!0:-1!==t.type.indexOf("tag-name")&&(n=!0))}while(t&&!n);return t},this.$findClosingTag=function(e,t){var n,o=t.value,r=t.value,s=0,a=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);t=e.stepForward();var l=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length),c=!1;do{if(n=t,t=e.stepForward()){if(">"===t.value&&!c){var u=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);c=!0}if(-1!==t.type.indexOf("tag-name")){if(r===(o=t.value))if("<"===n.value)s++;else if(""!==t.value)return;var p=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1)}}else r===o&&"/>"===t.value&&--s<0&&(p=d=h=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+2),u=new i(l.end.row,l.end.column,l.end.row,l.end.column+1))}}while(t&&s>=0);if(a&&u&&h&&p&&l&&d)return{openTag:new i(a.start.row,a.start.column,u.end.row,u.end.column),closeTag:new i(h.start.row,h.start.column,p.end.row,p.end.column),openTagName:l,closeTagName:d}},this.$findOpeningTag=function(e,t){var n=e.getCurrentToken(),o=t.value,r=0,s=e.getCurrentTokenRow(),a=e.getCurrentTokenColumn(),l=a+2,c=new i(s,a,s,l);e.stepForward();var u=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length);if((t=e.stepForward())&&">"===t.value){var h=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);e.stepBackward(),e.stepBackward();do{if(t=n,s=e.getCurrentTokenRow(),l=(a=e.getCurrentTokenColumn())+t.value.length,n=e.stepBackward(),t)if(-1!==t.type.indexOf("tag-name")){if(o===t.value)if("<"===n.value){if(++r>0){var d=new i(s,a,s,l),p=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);do{t=e.stepForward()}while(t&&">"!==t.value);var g=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1)}}else""===t.value){for(var m=0,f=n;f;){if(-1!==f.type.indexOf("tag-name")&&f.value===o){r--;break}if("<"===f.value)break;f=e.stepBackward(),m++}for(var y=0;yn&&(this.$docRowCache.splice(n,t),this.$screenRowCache.splice(n,t))},e.prototype.$getRowCacheIndex=function(e,t){for(var n=0,o=e.length-1;n<=o;){var i=n+o>>1,r=e[i];if(t>r)n=i+1;else{if(!(t=t);r++);return(n=o[r])?(n.index=r,n.start=i-n.value.length,n):null},e.prototype.setUndoManager=function(e){if(this.$undoManager=e,this.$informUndoManager&&this.$informUndoManager.cancel(),e){var t=this;e.addSession(this),this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.mergeUndoDeltas=!1},this.$informUndoManager=i.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},e.prototype.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},e.prototype.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},e.prototype.getTabString=function(){return this.getUseSoftTabs()?i.stringRepeat(" ",this.getTabSize()):"\t"},e.prototype.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},e.prototype.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},e.prototype.setTabSize=function(e){this.setOption("tabSize",e)},e.prototype.getTabSize=function(){return this.$tabSize},e.prototype.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize==0},e.prototype.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},e.prototype.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},e.prototype.setOverwrite=function(e){this.setOption("overwrite",e)},e.prototype.getOverwrite=function(){return this.$overwrite},e.prototype.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},e.prototype.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},e.prototype.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},e.prototype.getBreakpoints=function(){return this.$breakpoints},e.prototype.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(o=!!n.charAt(t-1).match(this.tokenRe)),o||(o=!!n.charAt(t).match(this.tokenRe)),o)var i=this.tokenRe;else i=/^\s+$/.test(n.slice(t-1,t+1))?/\s/:this.nonTokenRe;var r=t;if(r>0){do{r--}while(r>=0&&n.charAt(r).match(i));r++}for(var s=t;se&&(e=t.screenWidth)})),this.lineWidgetWidth=e},e.prototype.$computeWidth=function(e){if(this.$modified||e){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var t=this.doc.getAllLines(),n=this.$rowLengthCache,o=0,i=0,r=this.$foldData[i],s=r?r.start.row:1/0,a=t.length,l=0;ls){if((l=r.end.row+1)>=a)break;s=(r=this.$foldData[i++])?r.start.row:1/0}null==n[l]&&(n[l]=this.$getStringScreenWidth(t[l])[0]),n[l]>o&&(o=n[l])}this.screenWidth=o}},e.prototype.getLine=function(e){return this.doc.getLine(e)},e.prototype.getLines=function(e,t){return this.doc.getLines(e,t)},e.prototype.getLength=function(){return this.doc.getLength()},e.prototype.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},e.prototype.insert=function(e,t){return this.doc.insert(e,t)},e.prototype.remove=function(e){return this.doc.remove(e)},e.prototype.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},e.prototype.undoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var n=e.length-1;-1!=n;n--){var o=e[n];"insert"==o.action||"remove"==o.action?this.doc.revertDelta(o):o.folds&&this.addFolds(o.folds)}!t&&this.$undoSelect&&(e.selectionBefore?this.selection.fromJSON(e.selectionBefore):this.selection.setRange(this.$getUndoSelection(e,!0))),this.$fromUndo=!1}},e.prototype.redoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var n=0;ne.end.column&&(r.start.column+=c),r.end.row==e.end.row&&r.end.column>e.end.column&&(r.end.column+=c)),s&&r.start.row>=e.end.row&&(r.start.row+=s,r.end.row+=s)}if(r.end=this.insert(r.start,o),i.length){var a=e.start,l=r.start,c=(s=l.row-a.row,l.column-a.column);this.addFolds(i.map((function(e){return(e=e.clone()).start.row==a.row&&(e.start.column+=c),e.end.row==a.row&&(e.end.column+=c),e.start.row+=s,e.end.row+=s,e})))}return r},e.prototype.indentRows=function(e,t,n){n=n.replace(/\t/g,this.getTabString());for(var o=e;o<=t;o++)this.doc.insertInLine({row:o,column:0},n)},e.prototype.outdentRows=function(e){for(var t=e.collapseRows(),n=new u(0,0,0,0),o=this.getTabSize(),i=t.start.row;i<=t.end.row;++i){var r=this.getLine(i);n.start.row=i,n.end.row=i;for(var s=0;s0){var i;if((i=this.getRowFoldEnd(t+n))>this.doc.getLength()-1)return 0;o=i-t}else e=this.$clipRowToDocument(e),o=(t=this.$clipRowToDocument(t))-e+1;var r=new u(e,0,t,Number.MAX_VALUE),s=this.getFoldsInRange(r).map((function(e){return(e=e.clone()).start.row+=o,e.end.row+=o,e})),a=0==n?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+o,a),s.length&&this.addFolds(s),o},e.prototype.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},e.prototype.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},e.prototype.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},e.prototype.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},e.prototype.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},e.prototype.$clipPositionToDocument=function(e,t){if(t=Math.max(0,t),e<0)e=0,t=0;else{var n=this.doc.getLength();e>=n?(e=n-1,t=this.doc.getLine(n-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},e.prototype.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},e.prototype.setUseWrapMode=function(e){if(e!=this.$useWrapMode){if(this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0),e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},e.prototype.getUseWrapMode=function(){return this.$useWrapMode},e.prototype.setWrapLimitRange=function(e,t){this.$wrapLimitRange.min===e&&this.$wrapLimitRange.max===t||(this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},e.prototype.adjustWrapLimit=function(e,t){var n=this.$wrapLimitRange;n.max<0&&(n={min:t,max:t});var o=this.$constrainWrapLimit(e,n.min,n.max);return o!=this.$wrapLimit&&o>1&&(this.$wrapLimit=o,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0)},e.prototype.$constrainWrapLimit=function(e,t,n){return t&&(e=Math.max(t,e)),n&&(e=Math.min(n,e)),e},e.prototype.getWrapLimit=function(){return this.$wrapLimit},e.prototype.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},e.prototype.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},e.prototype.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,n=e.action,o=e.start,i=e.end,r=o.row,s=i.row,a=s-r,l=null;if(this.$updating=!0,0!=a)if("remove"===n){this[t?"$wrapData":"$rowLengthCache"].splice(r,a);var c=this.$foldData;l=this.getFoldsInRange(e),this.removeFolds(l);var u=0;if(m=this.getFoldLine(i.row)){m.addRemoveChars(i.row,i.column,o.column-i.column),m.shiftRow(-a);var h=this.getFoldLine(r);h&&h!==m&&(h.merge(m),m=h),u=c.indexOf(m)+1}for(;u=i.row&&m.shiftRow(-a);s=r}else{var d=Array(a);d.unshift(r,0);var p=t?this.$wrapData:this.$rowLengthCache;if(p.splice.apply(p,d),c=this.$foldData,u=0,m=this.getFoldLine(r)){var g=m.range.compareInside(o.row,o.column);0==g?(m=m.split(o.row,o.column))&&(m.shiftRow(a),m.addRemoveChars(s,0,i.column-o.column)):-1==g&&(m.addRemoveChars(r,0,i.column-o.column),m.shiftRow(a)),u=c.indexOf(m)+1}for(;u=r&&m.shiftRow(a)}}else a=Math.abs(e.start.column-e.end.column),"remove"===n&&(l=this.getFoldsInRange(e),this.removeFolds(l),a=-a),(m=this.getFoldLine(r))&&m.addRemoveChars(r,o.column,a);return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(r,s):this.$updateRowLengthCache(r,s),l},e.prototype.$updateRowLengthCache=function(e,t,n){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},e.prototype.$updateWrapData=function(e,t){var n,o,i=this.doc.getAllLines(),r=this.getTabSize(),s=this.$wrapData,a=this.$wrapLimit,l=e;for(t=Math.min(t,i.length-1);l<=t;)(o=this.getFoldLine(l,o))?(n=[],o.walk(function(e,t,o,r){var s;if(null!=e){(s=this.$getDisplayTokens(e,n.length))[0]=v;for(var a=1;at-h;){var d=r+t-h;if(e[d-1]>=x&&e[d]>=x)u(d);else if(e[d]!=v&&e[d]!=b){for(var p=Math.max(d-(t-(t>>2)),r-1);d>p&&e[d]p&&e[d]p&&e[d]==w;)d--}else for(;d>p&&e[d]p?u(++d):(e[d=r+t]==y&&d--,u(d-h))}else{for(;d!=r-1&&e[d]!=v;d--);if(d>r){u(d);continue}for(d=r+t;d39&&r<48||r>57&&r<64?o.push(w):r>=4352&&$(r)?o.push(f,y):o.push(f)}return o},e.prototype.$getStringScreenWidth=function(e,t,n){if(0==t)return[0,0];var o,i;for(null==t&&(t=1/0),n=n||0,i=0;i=4352&&$(o)?n+=2:n+=1,!(n>t));i++);return[n,i]},e.prototype.getRowLength=function(e){var t=1;return this.lineWidgets&&(t+=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0),this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+t:t},e.prototype.getRowLineCount=function(e){return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1:1},e.prototype.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),n=this.$wrapData[t.row];return n.length&&n[0]=0){a=c[u],r=this.$docRowCache[u];var d=e>c[h-1]}else d=!h;for(var p=this.getLength()-1,g=this.getNextFoldLine(r),m=g?g.start.row:1/0;a<=e&&!(a+(l=this.getRowLength(r))>e||r>=p);)a+=l,++r>m&&(r=g.end.row+1,m=(g=this.getNextFoldLine(r,g))?g.start.row:1/0),d&&(this.$docRowCache.push(r),this.$screenRowCache.push(a));if(g&&g.start.row<=r)o=this.getFoldDisplayLine(g),r=g.start.row;else{if(a+l<=e||r>p)return{row:p,column:this.getLine(p).length};o=this.getLine(r),g=null}var f=0,y=Math.floor(e-a);if(this.$useWrapMode){var v=this.$wrapData[r];v&&(i=v[y],y>0&&v.length&&(f=v.indent,s=v[y-1]||v[v.length-1],o=o.substring(s)))}return void 0!==n&&this.$bidiHandler.isBidiRow(a+y,r,y)&&(t=this.$bidiHandler.offsetToCol(n)),s+=this.$getStringScreenWidth(o,t-f)[1],this.$useWrapMode&&s>=i&&(s=i-1),g?g.idxToPosition(s):{row:r,column:s}},e.prototype.documentToScreenPosition=function(e,t){if(void 0===t)var n=this.$clipPositionToDocument(e.row,e.column);else n=this.$clipPositionToDocument(e,t);e=n.row,t=n.column;var o,i=0,r=null;(o=this.getFoldAt(e,t,1))&&(e=o.start.row,t=o.start.column);var s,a=0,l=this.$docRowCache,c=this.$getRowCacheIndex(l,e),u=l.length;if(u&&c>=0){a=l[c],i=this.$screenRowCache[c];var h=e>l[u-1]}else h=!u;for(var d=this.getNextFoldLine(a),p=d?d.start.row:1/0;a=p){if((s=d.end.row+1)>e)break;p=(d=this.getNextFoldLine(s,d))?d.start.row:1/0}else s=a+1;i+=this.getRowLength(a),a=s,h&&(this.$docRowCache.push(a),this.$screenRowCache.push(i))}var g="";d&&a>=p?(g=this.getFoldDisplayLine(d,e,t),r=d.start.row):(g=this.getLine(e).substring(0,t),r=e);var m=0;if(this.$useWrapMode){var f=this.$wrapData[r];if(f){for(var y=0;g.length>=f[y];)i++,y++;g=g.substring(f[y-1]||0,g.length),m=y>0?f.indent:0}}return this.lineWidgets&&this.lineWidgets[a]&&this.lineWidgets[a].rowsAbove&&(i+=this.lineWidgets[a].rowsAbove),{row:i,column:m+this.$getStringScreenWidth(g)[0]}},e.prototype.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},e.prototype.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},e.prototype.getScreenLength=function(){var e=0,t=null;if(this.$useWrapMode)for(var n=this.$wrapData.length,o=0,i=(a=0,(t=this.$foldData[a++])?t.start.row:1/0);oi&&(o=t.end.row+1,i=(t=this.$foldData[a++])?t.start.row:1/0)}else{e=this.getLength();for(var s=this.$foldData,a=0;an);r++);return[o,r]})},e.prototype.destroy=function(){this.destroyed||(this.bgTokenizer.setDocument(null),this.bgTokenizer.cleanup(),this.destroyed=!0),this.$stopWorker(),this.removeAllListeners(),this.doc&&this.doc.off("change",this.$onChange),this.selection.detach()},e}();m.$uid=0,m.prototype.$modes=s.$modes,m.prototype.getValue=m.prototype.toString,m.prototype.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},m.prototype.$overwrite=!1,m.prototype.$mode=null,m.prototype.$modeId=null,m.prototype.$scrollTop=0,m.prototype.$scrollLeft=0,m.prototype.$wrapLimit=80,m.prototype.$useWrapMode=!1,m.prototype.$wrapLimitRange={min:null,max:null},m.prototype.lineWidgets=null,m.prototype.isFullWidth=$,o.implement(m.prototype,a);var f=1,y=2,v=3,b=4,w=9,x=10,k=11,C=12;function $(e){return!(e<4352)&&(e>=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510)}e("./edit_session/folding").Folding.call(m.prototype),e("./edit_session/bracket_match").BracketMatch.call(m.prototype),s.defineOptions(m.prototype,"session",{wrap:{set:function(e){if(e&&"off"!=e?"free"==e?e=!0:"printMargin"==e?e=-1:"string"==typeof e&&(e=parseInt(e,10)||!1):e=!1,this.$wrap!=e)if(this.$wrap=e,e){var t="number"==typeof e?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}else this.setUseWrapMode(!1)},get:function(){return this.getUseWrapMode()?-1==this.$wrap?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){(e="auto"==e?"text"!=this.$mode.type:"text"!=e)!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){(e=parseInt(e))>0&&this.$tabSize!==e&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function(e){this.setFoldStyle(e)},handlesSet:!0},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId},handlesSet:!0}}),t.EditSession=m})),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],(function(e,t,n){"use strict";var o=e("./lib/lang"),i=e("./lib/oop"),r=e("./range").Range,s=function(){function e(){this.$options={}}return e.prototype.set=function(e){return i.mixin(this.$options,e),this},e.prototype.getOptions=function(){return o.copyObject(this.$options)},e.prototype.setOptions=function(e){this.$options=e},e.prototype.find=function(e){var t=this.$options,n=this.$matchIterator(e,t);if(!n)return!1;var o=null;return n.forEach((function(e,n,i,s){return o=new r(e,n,i,s),!(n==s&&t.start&&t.start.start&&0!=t.skipCurrent&&o.isEqual(t.start)&&(o=null,1))})),o},e.prototype.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var n=t.range,i=n?e.getLines(n.start.row,n.end.row):e.doc.getAllLines(),s=[],a=t.re;if(t.$isMultiLine){var l,c=a.length,u=i.length-c;e:for(var h=a.offset||0;h<=u;h++){for(var d=0;dm||(s.push(l=new r(h,m,h+c-1,f)),c>2&&(h=h+c-2))}}else for(var y=0;yx&&s[d].end.row==k;)d--;for(s=s.slice(y,d+1),y=0,d=s.length;y=c;n--)if(p(n,Number.MAX_VALUE,e))return;if(0!=t.wrap)for(n=u,c=l.row;n>=c;n--)if(p(n,Number.MAX_VALUE,e))return}};else h=function(e){var n=l.row;if(!p(n,l.column,e)){for(n+=1;n<=u;n++)if(p(n,0,e))return;if(0!=t.wrap)for(n=c,u=l.row;n<=u;n++)if(p(n,0,e))return}};if(t.$isMultiLine)var d=n.length,p=function(t,o,r){var s=i?t-d+1:t;if(!(s<0||s+d>e.getLength())){var a=e.getLine(s),l=a.search(n[0]);if(!(!i&&lo))return!!r(s,l,s+d-1,u)||void 0}}};else p=i?function(t,i,r){var a,l=e.getLine(t),c=[],u=0;for(n.lastIndex=0;a=n.exec(l);){var h=a[0].length;if(u=a.index,!h){if(u>=l.length)break;n.lastIndex=u+=o.skipEmptyMatch(l,u,s)}if(a.index+h>i)break;c.push(a.index,h)}for(var d=c.length-1;d>=0;d-=2){var p=c[d-1];if(r(t,p,t,p+(h=c[d])))return!0}}:function(t,i,r){var a,l,c=e.getLine(t);for(n.lastIndex=i;l=n.exec(c);){var u=l[0].length;if(r(t,a=l.index,t,a+u))return!0;if(!u&&(n.lastIndex=a+=o.skipEmptyMatch(c,a,s),a>=c.length))return!1}};return{forEach:h}},e}();t.Search=s})),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("../lib/keys"),s=e("../lib/useragent"),a=r.KEY_MODS,l=function(){function e(e,t){this.$init(e,t,!1)}return e.prototype.$init=function(e,t,n){this.platform=t||(s.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=n},e.prototype.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},e.prototype.removeCommand=function(e,t){var n=e&&("string"==typeof e?e:e.name);e=this.commands[n],t||delete this.commands[n];var o=this.commandKeyBinding;for(var i in o){var r=o[i];if(r==e)delete o[i];else if(Array.isArray(r)){var s=r.indexOf(e);-1!=s&&(r.splice(s,1),1==r.length&&(o[i]=r[0]))}}},e.prototype.bindKey=function(e,t,n){if("object"==typeof e&&e&&(null==n&&(n=e.position),e=e[this.platform]),e)return"function"==typeof t?this.addCommand({exec:t,bindKey:e,name:t.name||e}):void e.split("|").forEach((function(e){var o="";if(-1!=e.indexOf(" ")){var i=e.split(/\s+/);e=i.pop(),i.forEach((function(e){var t=this.parseKeys(e),n=a[t.hashId]+t.key;o+=(o?" ":"")+n,this._addCommandToBinding(o,"chainKeys")}),this),o+=" "}var r=this.parseKeys(e),s=a[r.hashId]+r.key;this._addCommandToBinding(o+s,t,n)}),this)},e.prototype._addCommandToBinding=function(e,t,n){var o,i=this.commandKeyBinding;if(t)if(!i[e]||this.$singleCommand)i[e]=t;else{Array.isArray(i[e])?-1!=(o=i[e].indexOf(t))&&i[e].splice(o,1):i[e]=[i[e]],"number"!=typeof n&&(n=c(t));var r=i[e];for(o=0;on);o++);r.splice(o,0,t)}else delete i[e]},e.prototype.addCommands=function(e){e&&Object.keys(e).forEach((function(t){var n=e[t];if(n){if("string"==typeof n)return this.bindKey(n,t);"function"==typeof n&&(n={exec:n}),"object"==typeof n&&(n.name||(n.name=t),this.addCommand(n))}}),this)},e.prototype.removeCommands=function(e){Object.keys(e).forEach((function(t){this.removeCommand(e[t])}),this)},e.prototype.bindKeys=function(e){Object.keys(e).forEach((function(t){this.bindKey(t,e[t])}),this)},e.prototype._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},e.prototype.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter((function(e){return e})),n=t.pop(),o=r[n];if(r.FUNCTION_KEYS[o])n=r.FUNCTION_KEYS[o].toLowerCase();else{if(!t.length)return{key:n,hashId:-1};if(1==t.length&&"shift"==t[0])return{key:n.toUpperCase(),hashId:-1}}for(var i=0,s=t.length;s--;){var a=r.KEY_MODS[t[s]];if(null==a)return"undefined"!=typeof console&&console.error("invalid modifier "+t[s]+" in "+e),!1;i|=a}return{key:n,hashId:i}},e.prototype.findKeyCommand=function(e,t){var n=a[e]+t;return this.commandKeyBinding[n]},e.prototype.handleKeyboard=function(e,t,n,o){if(!(o<0)){var i=a[t]+n,r=this.commandKeyBinding[i];return e.$keyChain&&(e.$keyChain+=" "+i,r=this.commandKeyBinding[e.$keyChain]||r),!r||"chainKeys"!=r&&"chainKeys"!=r[r.length-1]?(e.$keyChain&&(t&&4!=t||1!=n.length?(-1==t||o>0)&&(e.$keyChain=""):e.$keyChain=e.$keyChain.slice(0,-i.length-1)),{command:r}):(e.$keyChain=e.$keyChain||i,{command:"null"})}},e.prototype.getStatusText=function(e,t){return t.$keyChain||""},e}();function c(e){return"object"==typeof e&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}var u=function(e){function t(t,n){var o=e.call(this,t,n)||this;return o.$singleCommand=!0,o}return i(t,e),t}(l);u.call=function(e,t,n){l.prototype.$init.call(e,t,n,!0)},l.call=function(e,t,n){l.prototype.$init.call(e,t,n,!1)},t.HashHandler=u,t.MultiHashHandler=l})),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("../lib/oop"),s=e("../keyboard/hash_handler").MultiHashHandler,a=e("../lib/event_emitter").EventEmitter,l=function(e){function t(t,n){var o=e.call(this,n,t)||this;return o.byName=o.commands,o.setDefaultHandler("exec",(function(e){return e.args?e.command.exec(e.editor,e.args,e.event,!1):e.command.exec(e.editor,{},e.event,!0)})),o}return i(t,e),t.prototype.exec=function(e,t,n){if(Array.isArray(e)){for(var o=e.length;o--;)if(this.exec(e[o],t,n))return!0;return!1}if("string"==typeof e&&(e=this.commands[e]),!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;if(0!=this.$checkCommandState&&e.isAvailable&&!e.isAvailable(t))return!1;var i={editor:t,command:e,args:n};return i.returnValue=this._emit("exec",i),this._signal("afterExec",i),!1!==i.returnValue},t.prototype.toggleRecording=function(e){if(!this.$inReplay)return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.off("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},t.prototype.replay=function(e){if(!this.$inReplay&&this.macro){if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach((function(t){"string"==typeof t?this.exec(t,e):this.exec(t[0],e,t[1])}),this)}finally{this.$inReplay=!1}}},t.prototype.trimMacro=function(e){return e.map((function(e){return"string"!=typeof e[0]&&(e[0]=e[0].name),e[1]||(e=e[0]),e}))},t}(s);r.implement(l.prototype,a),t.CommandManager=l})),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],(function(e,t,n){"use strict";var o=e("../lib/lang"),i=e("../config"),r=e("../range").Range;function s(e,t){return{win:e,mac:t}}t.commands=[{name:"showSettingsMenu",description:"Show settings menu",bindKey:s("Ctrl-,","Command-,"),exec:function(e){i.loadModule("ace/ext/settings_menu",(function(t){t.init(e),e.showSettingsMenu()}))},readOnly:!0},{name:"goToNextError",description:"Go to next error",bindKey:s("Alt-E","F4"),exec:function(e){i.loadModule("ace/ext/error_marker",(function(t){t.showErrorMarker(e,1)}))},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",description:"Go to previous error",bindKey:s("Alt-Shift-E","Shift-F4"),exec:function(e){i.loadModule("ace/ext/error_marker",(function(t){t.showErrorMarker(e,-1)}))},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:s("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:s(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:s("Ctrl-L","Command-L"),exec:function(e,t){"number"!=typeof t||isNaN(t)||e.gotoLine(t),e.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:s("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:s("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",description:"Toggle fold widget",bindKey:s("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",description:"Toggle parent fold widget",bindKey:s("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:s(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldAllComments",description:"Fold all comments",bindKey:s(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAllComments()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:s("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:s("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:s("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:s("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:s("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:s("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:s("Ctrl-F","Command-F"),exec:function(e){i.loadModule("ace/ext/searchbox",(function(t){t.Search(e)}))},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:s("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:s("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:s("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:s("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:s("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:s("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:s("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:s("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:s("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:s("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:s("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:s("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:s("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:s("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:s("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:s("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:s("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:s("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:s("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:s("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:s(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:s("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:s(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:s("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:s("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:s("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:s("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:s("Ctrl-\\|Ctrl-P","Command-\\"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:s("Ctrl-Shift-\\|Ctrl-Shift-P","Command-Shift-\\"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:s("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:s(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(e){},readOnly:!0},{name:"cut",description:"Cut",exec:function(e){var t=e.$copyWithEmptySelection&&e.selection.isEmpty()?e.selection.getLineRange():e.selection.getRange();e._emit("cut",t),t.isEmpty()||e.session.remove(t),e.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:s("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:s("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:s("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:s("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:s("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:s("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:s("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:s("Ctrl-H","Command-Option-F"),exec:function(e){i.loadModule("ace/ext/searchbox",(function(t){t.Search(e,!0)}))}},{name:"undo",description:"Undo",bindKey:s("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",description:"Redo",bindKey:s("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:s("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:s("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:s("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:s("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:s("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:s("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:s("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:s("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:s("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:s("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:s("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:s("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:s("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:s("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:s("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:s("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:s("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(e,t){e.insert(o.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:s(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:s("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:s("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:s("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"autoindent",description:"Auto Indent",bindKey:s(null,null),exec:function(e){e.autoIndent()},multiSelectAction:"forEachLine",scrollIntoView:"animate"},{name:"expandtoline",description:"Expand to line",bindKey:s("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"openlink",bindKey:s("Ctrl+F3","F3"),exec:function(e){e.openLink()}},{name:"joinlines",description:"Join lines",bindKey:s(null,null),exec:function(e){for(var t=e.selection.isBackwards(),n=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),i=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),s=e.session.doc.getLine(n.row).length,a=e.session.doc.getTextRange(e.selection.getRange()).replace(/\n\s*/," ").length,l=e.session.doc.getLine(n.row),c=n.row+1;c<=i.row+1;c++){var u=o.stringTrimLeft(o.stringTrimRight(e.session.doc.getLine(c)));0!==u.length&&(u=" "+u),l+=u}i.row+10?(e.selection.moveCursorTo(n.row,n.column),e.selection.selectTo(n.row,n.column+a)):(s=e.session.doc.getLine(n.row).length>s?s+1:s,e.selection.moveCursorTo(n.row,s))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:s(null,null),exec:function(e){var t=e.session.doc.getLength()-1,n=e.session.doc.getLine(t).length,o=e.selection.rangeList.ranges,i=[];o.length<1&&(o=[e.selection.getRange()]);for(var s=0;st[n].column&&n++,r.unshift(n,0),t.splice.apply(t,r),this.$updateRows()}}},e.prototype.$updateRows=function(){var e=this.session.lineWidgets;if(e){var t=!0;e.forEach((function(e,n){if(e)for(t=!1,e.row=n;e.$oldWidget;)e.$oldWidget.row=n,e=e.$oldWidget})),t&&(this.session.lineWidgets=null)}},e.prototype.$registerLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var t=this.session.lineWidgets[e.row];return t&&(e.$oldWidget=t,t.el&&t.el.parentNode&&(t.el.parentNode.removeChild(t.el),t._inDocument=!1)),this.session.lineWidgets[e.row]=e,e},e.prototype.addLineWidget=function(e){if(this.$registerLineWidget(e),e.session=this.session,!this.editor)return e;var t=this.editor.renderer;e.html&&!e.el&&(e.el=o.createElement("div"),e.el.innerHTML=e.html),e.text&&!e.el&&(e.el=o.createElement("div"),e.el.textContent=e.text),e.el&&(o.addCssClass(e.el,"ace_lineWidgetContainer"),e.className&&o.addCssClass(e.el,e.className),e.el.style.position="absolute",e.el.style.zIndex=5,t.container.appendChild(e.el),e._inDocument=!0,e.coverGutter||(e.el.style.zIndex=3),null==e.pixelHeight&&(e.pixelHeight=e.el.offsetHeight)),null==e.rowCount&&(e.rowCount=e.pixelHeight/t.layerConfig.lineHeight);var n=this.session.getFoldAt(e.row,0);if(e.$fold=n,n){var i=this.session.lineWidgets;e.row!=n.end.row||i[n.start.row]?e.hidden=!0:i[n.start.row]=e}return this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,t),this.onWidgetChanged(e),e},e.prototype.removeLineWidget=function(e){if(e._inDocument=!1,e.session=null,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el),e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(e){}if(this.session.lineWidgets){var t=this.session.lineWidgets[e.row];if(t==e)this.session.lineWidgets[e.row]=e.$oldWidget,e.$oldWidget&&this.onWidgetChanged(e.$oldWidget);else for(;t;){if(t.$oldWidget==e){t.$oldWidget=e.$oldWidget;break}t=t.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows()},e.prototype.getWidgetsAtRow=function(e){for(var t=this.session.lineWidgets,n=t&&t[e],o=[];n;)o.push(n),n=n.$oldWidget;return o},e.prototype.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},e.prototype.measureWidgets=function(e,t){var n=this.session._changedWidgets,o=t.layerConfig;if(n&&n.length){for(var i=1/0,r=0;r0&&!o[i];)i--;this.firstRow=n.firstRow,this.lastRow=n.lastRow,t.$cursorLayer.config=n;for(var s=i;s<=r;s++){var a=o[s];if(a&&a.el)if(a.hidden)a.el.style.top=-100-(a.pixelHeight||0)+"px";else{a._inDocument||(a._inDocument=!0,t.container.appendChild(a.el));var l=t.$cursorLayer.getPixelPosition({row:s,column:0},!0).top;a.coverLine||(l+=n.lineHeight*this.session.getRowLineCount(a.row)),a.el.style.top=l-n.offset+"px";var c=a.coverGutter?0:t.gutterWidth;a.fixedWidth||(c-=t.scrollLeft),a.el.style.left=c+"px",a.fullWidth&&a.screenWidth&&(a.el.style.minWidth=n.width+2*n.padding+"px"),a.fixedWidth?a.el.style.right=t.scrollBar.getWidth()+"px":a.el.style.right=""}}}},e}();t.LineWidgets=i})),ace.define("ace/keyboard/gutter_handler",["require","exports","module","ace/lib/keys","ace/mouse/default_gutter_handler"],(function(e,t,n){"use strict";var o=e("../lib/keys"),i=e("../mouse/default_gutter_handler").GutterTooltip,r=function(){function e(e){this.editor=e,this.gutterLayer=e.renderer.$gutterLayer,this.element=e.renderer.$gutter,this.lines=e.renderer.$gutterLayer.$lines,this.activeRowIndex=null,this.activeLane=null,this.annotationTooltip=new i(this.editor)}return e.prototype.addListener=function(){this.element.addEventListener("keydown",this.$onGutterKeyDown.bind(this)),this.element.addEventListener("focusout",this.$blurGutter.bind(this)),this.editor.on("mousewheel",this.$blurGutter.bind(this))},e.prototype.removeListener=function(){this.element.removeEventListener("keydown",this.$onGutterKeyDown.bind(this)),this.element.removeEventListener("focusout",this.$blurGutter.bind(this)),this.editor.off("mousewheel",this.$blurGutter.bind(this))},e.prototype.$onGutterKeyDown=function(e){if(this.annotationTooltip.isOpen)return e.preventDefault(),void(e.keyCode===o.escape&&this.annotationTooltip.hideTooltip());if(e.target===this.element){if(e.keyCode!=o.enter)return;e.preventDefault();var t=this.editor.getCursorPosition().row;return this.editor.isRowVisible(t)||this.editor.scrollToLine(t,!0,!0),void setTimeout(function(){var e=this.$rowToRowIndex(this.gutterLayer.$cursorCell.row),t=this.$findNearestFoldWidget(e),n=this.$findNearestAnnotation(e);if(null!==t||null!==n)return null===t&&null!==n?(this.activeRowIndex=n,this.activeLane="annotation",void this.$focusAnnotation(this.activeRowIndex)):null!==t&&null===n?(this.activeRowIndex=t,this.activeLane="fold",void this.$focusFoldWidget(this.activeRowIndex)):Math.abs(n-e)0||e+t=0&&this.$isFoldWidgetVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isFoldWidgetVisible(e+t))return e+t}return null},e.prototype.$findNearestAnnotation=function(e){if(this.$isAnnotationVisible(e))return e;for(var t=0;e-t>0||e+t=0&&this.$isAnnotationVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isAnnotationVisible(e+t))return e+t}return null},e.prototype.$focusFoldWidget=function(e){if(null!=e){var t=this.$getFoldWidget(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()}},e.prototype.$focusAnnotation=function(e){if(null!=e){var t=this.$getAnnotation(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()}},e.prototype.$blurFoldWidget=function(e){var t=this.$getFoldWidget(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},e.prototype.$blurAnnotation=function(e){var t=this.$getAnnotation(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},e.prototype.$moveFoldWidgetUp=function(){for(var e=this.activeRowIndex;e>0;)if(e--,this.$isFoldWidgetVisible(e))return this.$blurFoldWidget(this.activeRowIndex),this.activeRowIndex=e,void this.$focusFoldWidget(this.activeRowIndex)},e.prototype.$moveFoldWidgetDown=function(){for(var e=this.activeRowIndex;e0;)if(e--,this.$isAnnotationVisible(e))return this.$blurAnnotation(this.activeRowIndex),this.activeRowIndex=e,void this.$focusAnnotation(this.activeRowIndex)},e.prototype.$moveAnnotationDown=function(){for(var e=this.activeRowIndex;e=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},i=e("./lib/oop"),r=e("./lib/dom"),s=e("./lib/lang"),a=e("./lib/useragent"),l=e("./keyboard/textinput").TextInput,c=e("./mouse/mouse_handler").MouseHandler,u=e("./mouse/fold_handler").FoldHandler,h=e("./keyboard/keybinding").KeyBinding,d=e("./edit_session").EditSession,p=e("./search").Search,g=e("./range").Range,m=e("./lib/event_emitter").EventEmitter,f=e("./commands/command_manager").CommandManager,y=e("./commands/default_commands").commands,v=e("./config"),b=e("./token_iterator").TokenIterator,w=e("./line_widgets").LineWidgets,x=e("./keyboard/gutter_handler").GutterKeyboardHandler,k=e("./config").nls,C=e("./clipboard"),$=e("./lib/keys"),S=function(){function e(t,n,o){this.$toDestroy=[];var i=t.getContainerElement();this.container=i,this.renderer=t,this.id="editor"+ ++e.$uid,this.commands=new f(a.isMac?"mac":"win",y),"object"==typeof document&&(this.textInput=new l(t.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new c(this),new u(this)),this.keyBinding=new h(this),this.$search=(new p).set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=s.delayedCall(function(){this._signal("input",{}),this.session&&!this.session.destroyed&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",(function(e,t){t._$emitInputEvent.schedule(31)})),this.setSession(n||o&&o.session||new d("")),v.resetOptions(this),o&&this.setOptions(o),v._signal("editor",this)}return e.prototype.$initOperationListeners=function(){this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0),this.$opResetTimer=s.delayedCall(this.endOperation.bind(this,!0)),this.on("change",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.docChanged=!0}.bind(this),!0),this.on("changeSelection",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.selectionChanged=!0}.bind(this),!0)},e.prototype.startOperation=function(e){if(this.curOp){if(!e||this.curOp.command)return;this.prevOp=this.curOp}e||(this.previousCommand=null,e={}),this.$opResetTimer.schedule(),this.curOp=this.session.curOp={command:e.command||{},args:e.args,scrollTop:this.renderer.scrollTop},this.curOp.selectionBefore=this.selection.toJSON()},e.prototype.endOperation=function(e){if(this.curOp&&this.session){if(e&&!1===e.returnValue||!this.session)return this.curOp=null;if(1==e&&this.curOp.command&&"mouse"==this.curOp.command.name)return;if(this._signal("beforeEndOperation"),!this.curOp)return;var t=this.curOp.command,n=t&&t.scrollIntoView;if(n){switch(n){case"center-animate":n="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var o=this.selection.getRange(),i=this.renderer.layerConfig;(o.start.row>=i.lastRow||o.end.row<=i.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead)}"animate"==n&&this.renderer.animateScrolling(this.curOp.scrollTop)}var r=this.selection.toJSON();this.curOp.selectionAfter=r,this.$lastSel=this.selection.toJSON(),this.session.getUndoManager().addSelection(r),this.prevOp=this.curOp,this.curOp=null}},e.prototype.$historyTracker=function(e){if(this.$mergeUndoDeltas){var t=this.prevOp,n=this.$mergeableCommands,o=t.command&&e.command.name==t.command.name;if("insertstring"==e.command.name){var i=e.args;void 0===this.mergeNextCommand&&(this.mergeNextCommand=!0),o=o&&this.mergeNextCommand&&(!/\s/.test(i)||/\s/.test(t.args)),this.mergeNextCommand=!0}else o=o&&-1!==n.indexOf(e.command.name);"always"!=this.$mergeUndoDeltas&&Date.now()-this.sequenceStartTime>2e3&&(o=!1),o?this.session.mergeUndoDeltas=!0:-1!==n.indexOf(e.command.name)&&(this.sequenceStartTime=Date.now())}},e.prototype.setKeyboardHandler=function(e,t){if(e&&"string"==typeof e&&"ace"!=e){this.$keybindingId=e;var n=this;v.loadModule(["keybinding",e],(function(o){n.$keybindingId==e&&n.keyBinding.setKeyboardHandler(o&&o.handler),t&&t()}))}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},e.prototype.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},e.prototype.setSession=function(e){if(this.session!=e){this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var n=this.session.getSelection();n.off("changeCursor",this.$onCursorChange),n.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this}),e&&!e.destroyed&&e.bgTokenizer.scheduleStart()}},e.prototype.getSession=function(){return this.session},e.prototype.setValue=function(e,t){return this.session.doc.setValue(e),t?1==t?this.navigateFileEnd():-1==t&&this.navigateFileStart():this.selectAll(),e},e.prototype.getValue=function(){return this.session.getValue()},e.prototype.getSelection=function(){return this.selection},e.prototype.resize=function(e){this.renderer.onResize(e)},e.prototype.setTheme=function(e,t){this.renderer.setTheme(e,t)},e.prototype.getTheme=function(){return this.renderer.getTheme()},e.prototype.setStyle=function(e){this.renderer.setStyle(e)},e.prototype.unsetStyle=function(e){this.renderer.unsetStyle(e)},e.prototype.getFontSize=function(){return this.getOption("fontSize")||r.computedStyle(this.container).fontSize},e.prototype.setFontSize=function(e){this.setOption("fontSize",e)},e.prototype.$highlightBrackets=function(){if(!this.$highlightPending){var e=this;this.$highlightPending=!0,setTimeout((function(){e.$highlightPending=!1;var t=e.session;if(t&&!t.destroyed){t.$bracketHighlight&&(t.$bracketHighlight.markerIds.forEach((function(e){t.removeMarker(e)})),t.$bracketHighlight=null);var n=e.getCursorPosition(),o=e.getKeyboardHandler(),i=o&&o.$getDirectionForHighlight&&o.$getDirectionForHighlight(e),r=t.getMatchingBracketRanges(n,i);if(!r){var s=new b(t,n.row,n.column).getCurrentToken();if(s&&/\b(?:tag-open|tag-name)/.test(s.type)){var a=t.getMatchingTags(n);a&&(r=[a.openTagName,a.closeTagName])}}if(!r&&t.$mode.getMatching&&(r=t.$mode.getMatching(e.session)),r){var l="ace_bracket";Array.isArray(r)?1==r.length&&(l="ace_error_bracket"):r=[r],2==r.length&&(0==g.comparePoints(r[0].end,r[1].start)?r=[g.fromPoints(r[0].start,r[1].end)]:0==g.comparePoints(r[0].start,r[1].end)&&(r=[g.fromPoints(r[1].start,r[0].end)])),t.$bracketHighlight={ranges:r,markerIds:r.map((function(e){return t.addMarker(e,l,"text")}))},e.getHighlightIndentGuides()&&e.renderer.$textLayer.$highlightIndentGuide()}else e.getHighlightIndentGuides()&&e.renderer.$textLayer.$highlightIndentGuide()}}),50)}},e.prototype.focus=function(){this.textInput.focus()},e.prototype.isFocused=function(){return this.textInput.isFocused()},e.prototype.blur=function(){this.textInput.blur()},e.prototype.onFocus=function(e){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",e))},e.prototype.onBlur=function(e){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",e))},e.prototype.$cursorChange=function(){this.renderer.updateCursor(),this.$highlightBrackets(),this.$updateHighlightActiveLine()},e.prototype.onDocumentChange=function(e){var t=this.session.$useWrapMode,n=e.start.row==e.end.row?e.end.row:1/0;this.renderer.updateLines(e.start.row,n,t),this._signal("change",e),this.$cursorChange()},e.prototype.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},e.prototype.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},e.prototype.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},e.prototype.onCursorChange=function(){this.$cursorChange(),this._signal("changeSelection")},e.prototype.$updateHighlightActiveLine=function(){var e,t=this.getSession();if(this.$highlightActiveLine&&("line"==this.$selectionStyle&&this.selection.isMultiLine()||(e=this.getCursorPosition()),this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(e=!1),!this.renderer.$maxLines||1!==this.session.getLength()||this.renderer.$minLines>1||(e=!1)),t.$highlightLineMarker&&!e)t.removeMarker(t.$highlightLineMarker.id),t.$highlightLineMarker=null;else if(!t.$highlightLineMarker&&e){var n=new g(e.row,e.column,e.row,1/0);n.id=t.addMarker(n,"ace_active-line","screenLine"),t.$highlightLineMarker=n}else e&&(t.$highlightLineMarker.start.row=e.row,t.$highlightLineMarker.end.row=e.row,t.$highlightLineMarker.start.column=e.column,t._signal("changeBackMarker"))},e.prototype.onSelectionChange=function(e){var t=this.session;if(t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var n=this.selection.getRange(),o=this.getSelectionStyle();t.$selectionMarker=t.addMarker(n,"ace_selection",o)}var i=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(i),this._signal("changeSelection")},e.prototype.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(!t.isEmpty()&&!t.isMultiLine()){var n=t.start.column,o=t.end.column,i=e.getLine(t.start.row),r=i.substring(n,o);if(!(r.length>5e3)&&/[\w\d]/.test(r)){var s=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:r}),a=i.substring(n-1,o+1);if(s.test(a))return s}}},e.prototype.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},e.prototype.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},e.prototype.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},e.prototype.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},e.prototype.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},e.prototype.onChangeWrapLimit=function(){this.renderer.updateFull()},e.prototype.onChangeWrapMode=function(){this.renderer.onResize(!0)},e.prototype.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},e.prototype.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},e.prototype.getCopyText=function(){var e=this.getSelectedText(),t=this.session.doc.getNewLineCharacter(),n=!1;if(!e&&this.$copyWithEmptySelection){n=!0;for(var o=this.selection.getAllRanges(),i=0;ia.search(/\S|$/)){var l=a.substr(i.column).search(/\S|$/);n.doc.removeInLine(i.row,i.column,i.column+l)}}this.clearSelection();var c=i.column,u=n.getState(i.row),h=(a=n.getLine(i.row),o.checkOutdent(u,a,e));if(n.insert(i,e),r&&r.selection&&(2==r.selection.length?this.selection.setSelectionRange(new g(i.row,c+r.selection[0],i.row,c+r.selection[1])):this.selection.setSelectionRange(new g(i.row+r.selection[0],r.selection[1],i.row+r.selection[2],r.selection[3]))),this.$enableAutoIndent){if(n.getDocument().isNewLine(e)){var d=o.getNextLineIndent(u,a.slice(0,i.column),n.getTabString());n.insert({row:i.row+1,column:0},d)}h&&o.autoOutdent(u,n,i.row)}},e.prototype.autoIndent=function(){var e,t,n=this.session,o=n.getMode();if(this.selection.isEmpty())e=0,t=n.doc.getLength()-1;else{var i=this.getSelectionRange();e=i.start.row,t=i.end.row}for(var r,s,a,l="",c="",u="",h=n.getTabString(),d=e;d<=t;d++)d>0&&(l=n.getState(d-1),c=n.getLine(d-1),u=o.getNextLineIndent(l,c,h)),r=n.getLine(d),u!==(s=o.$getIndent(r))&&(s.length>0&&(a=new g(d,0,d,s.length),n.remove(a)),u.length>0&&n.insert({row:d,column:0},u)),o.autoOutdent(l,n,d)},e.prototype.onTextInput=function(e,t){if(!t)return this.keyBinding.onTextInput(e);this.startOperation({command:{name:"insertstring"}});var n=this.applyComposition.bind(this,e,t);this.selection.rangeCount?this.forEachSelection(n):n(),this.endOperation()},e.prototype.applyComposition=function(e,t){var n;(t.extendLeft||t.extendRight)&&((n=this.selection.getRange()).start.column-=t.extendLeft,n.end.column+=t.extendRight,n.start.column<0&&(n.start.row--,n.start.column+=this.session.getLine(n.start.row).length+1),this.selection.setRange(n),e||n.isEmpty()||this.remove()),!e&&this.selection.isEmpty()||this.insert(e,!0),(t.restoreStart||t.restoreEnd)&&((n=this.selection.getRange()).start.column-=t.restoreStart,n.end.column-=t.restoreEnd,this.selection.setRange(n))},e.prototype.onCommandKey=function(e,t,n){return this.keyBinding.onCommandKey(e,t,n)},e.prototype.setOverwrite=function(e){this.session.setOverwrite(e)},e.prototype.getOverwrite=function(){return this.session.getOverwrite()},e.prototype.toggleOverwrite=function(){this.session.toggleOverwrite()},e.prototype.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},e.prototype.getScrollSpeed=function(){return this.getOption("scrollSpeed")},e.prototype.setDragDelay=function(e){this.setOption("dragDelay",e)},e.prototype.getDragDelay=function(){return this.getOption("dragDelay")},e.prototype.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},e.prototype.getSelectionStyle=function(){return this.getOption("selectionStyle")},e.prototype.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},e.prototype.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},e.prototype.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},e.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},e.prototype.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},e.prototype.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},e.prototype.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},e.prototype.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},e.prototype.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},e.prototype.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},e.prototype.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},e.prototype.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},e.prototype.setHighlightIndentGuides=function(e){this.renderer.setHighlightIndentGuides(e)},e.prototype.getHighlightIndentGuides=function(){return this.renderer.getHighlightIndentGuides()},e.prototype.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},e.prototype.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},e.prototype.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},e.prototype.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},e.prototype.setReadOnly=function(e){this.setOption("readOnly",e)},e.prototype.getReadOnly=function(){return this.getOption("readOnly")},e.prototype.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},e.prototype.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},e.prototype.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},e.prototype.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},e.prototype.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},e.prototype.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},e.prototype.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},e.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},e.prototype.remove=function(e){this.selection.isEmpty()&&("left"==e?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var n=this.session,o=n.getState(t.start.row),i=n.getMode().transformAction(o,"deletion",this,n,t);if(0===t.end.column){var r=n.getTextRange(t);if("\n"==r[r.length-1]){var s=n.getLine(t.end.row);/^\s+$/.test(s)&&(t.end.column=s.length)}}i&&(t=i)}this.session.remove(t),this.clearSelection()},e.prototype.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},e.prototype.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},e.prototype.setGhostText=function(e,t){this.session.widgetManager||(this.session.widgetManager=new w(this.session),this.session.widgetManager.attach(this)),this.renderer.setGhostText(e,t)},e.prototype.removeGhostText=function(){this.session.widgetManager&&this.renderer.removeGhostText()},e.prototype.transposeLetters=function(){if(this.selection.isEmpty()){var e=this.getCursorPosition(),t=e.column;if(0!==t){var n,o,i=this.session.getLine(e.row);tt.toLowerCase()?1:0}));var i=new g(0,0,0,0);for(o=e.first;o<=e.last;o++){var r=t.getLine(o);i.start.row=o,i.end.row=o,i.end.column=r.length,t.replace(i,n[o-e.first])}},e.prototype.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},e.prototype.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),n=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,n,e)},e.prototype.getNumberAt=function(e,t){var n=/[\-]?[0-9]+(?:\.[0-9]+)?/g;n.lastIndex=0;for(var o=this.session.getLine(e);n.lastIndex=t)return{value:i[0],start:i.index,end:i.index+i[0].length}}return null},e.prototype.modifyNumber=function(e){var t=this.selection.getCursor().row,n=this.selection.getCursor().column,o=new g(t,n-1,t,n),i=this.session.getTextRange(o);if(!isNaN(parseFloat(i))&&isFinite(i)){var r=this.getNumberAt(t,n);if(r){var s=r.value.indexOf(".")>=0?r.start+r.value.indexOf(".")+1:r.end,a=r.start+r.value.length-s,l=parseFloat(r.value);l*=Math.pow(10,a),s!==r.end&&n=a&&r<=l&&(n=t,c.selection.clearSelection(),c.moveCursorTo(e,a+o),c.selection.selectTo(e,l+o)),a=l}));for(var u,h=this.$toggleWordPairs,d=0;d=l&&s<=c&&d.match(/((?:https?|ftp):\/\/[\S]+)/)){a=d.replace(/[\s:.,'";}\]]+$/,"");break}l=c}}catch(e){n={error:e}}finally{try{h&&!h.done&&(i=u.return)&&i.call(u)}finally{if(n)throw n.error}}return a},e.prototype.openLink=function(){var e=this.selection.getCursor(),t=this.findLinkAt(e.row,e.column);return t&&window.open(t,"_blank"),null!=t},e.prototype.removeLines=function(){var e=this.$getSelectedRows();this.session.removeFullLines(e.first,e.last),this.clearSelection()},e.prototype.duplicateSelection=function(){var e=this.selection,t=this.session,n=e.getRange(),o=e.isBackwards();if(n.isEmpty()){var i=n.start.row;t.duplicateLines(i,i)}else{var r=o?n.start:n.end,s=t.insert(r,t.getTextRange(n),!1);n.start=r,n.end=s,e.setSelectionRange(n,o)}},e.prototype.moveLinesDown=function(){this.$moveLines(1,!1)},e.prototype.moveLinesUp=function(){this.$moveLines(-1,!1)},e.prototype.moveText=function(e,t,n){return this.session.moveText(e,t,n)},e.prototype.copyLinesUp=function(){this.$moveLines(-1,!0)},e.prototype.copyLinesDown=function(){this.$moveLines(1,!0)},e.prototype.$moveLines=function(e,t){var n,o,i=this.selection;if(!i.inMultiSelectMode||this.inVirtualSelectionMode){var r=i.toOrientedRange();n=this.$getSelectedRows(r),o=this.session.$moveLines(n.first,n.last,t?0:e),t&&-1==e&&(o=0),r.moveBy(o,0),i.fromOrientedRange(r)}else{var s=i.rangeList.ranges;i.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;for(var a=0,l=0,c=s.length,u=0;up+1)break;p=g.last}for(u--,a=this.session.$moveLines(d,p,t?0:e),t&&-1==e&&(h=u+1);h<=u;)s[h].moveBy(a,0),h++;t||(a=0),l+=a}i.fromOrientedRange(i.ranges[0]),i.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},e.prototype.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},e.prototype.onCompositionStart=function(e){this.renderer.showComposition(e)},e.prototype.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},e.prototype.onCompositionEnd=function(){this.renderer.hideComposition()},e.prototype.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},e.prototype.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},e.prototype.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},e.prototype.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},e.prototype.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},e.prototype.$moveByPage=function(e,t){var n=this.renderer,o=this.renderer.layerConfig,i=e*Math.floor(o.height/o.lineHeight);!0===t?this.selection.$moveSelection((function(){this.moveCursorBy(i,0)})):!1===t&&(this.selection.moveCursorBy(i,0),this.selection.clearSelection());var r=n.scrollTop;n.scrollBy(0,i*o.lineHeight),null!=t&&n.scrollCursorIntoView(null,.5),n.animateScrolling(r)},e.prototype.selectPageDown=function(){this.$moveByPage(1,!0)},e.prototype.selectPageUp=function(){this.$moveByPage(-1,!0)},e.prototype.gotoPageDown=function(){this.$moveByPage(1,!1)},e.prototype.gotoPageUp=function(){this.$moveByPage(-1,!1)},e.prototype.scrollPageDown=function(){this.$moveByPage(1)},e.prototype.scrollPageUp=function(){this.$moveByPage(-1)},e.prototype.scrollToRow=function(e){this.renderer.scrollToRow(e)},e.prototype.scrollToLine=function(e,t,n,o){this.renderer.scrollToLine(e,t,n,o)},e.prototype.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},e.prototype.getCursorPosition=function(){return this.selection.getCursor()},e.prototype.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},e.prototype.getSelectionRange=function(){return this.selection.getRange()},e.prototype.selectAll=function(){this.selection.selectAll()},e.prototype.clearSelection=function(){this.selection.clearSelection()},e.prototype.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},e.prototype.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},e.prototype.jumpToMatching=function(e,t){var n=this.getCursorPosition(),o=new b(this.session,n.row,n.column),i=o.getCurrentToken(),r=0;i&&-1!==i.type.indexOf("tag-name")&&(i=o.stepBackward());var s=i||o.stepForward();if(s){var a,l,c=!1,u={},h=n.column-s.start,d={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(s.value.match(/[{}()\[\]]/g)){for(;h1?u[s.value]++:"=0;--r)this.$tryReplace(n[r],e)&&o++;return this.selection.setSelectionRange(i),o},e.prototype.$tryReplace=function(e,t){var n=this.session.getTextRange(e);return null!==(t=this.$search.replace(n,t))?(e.end=this.session.replace(e,t),e):null},e.prototype.getLastSearchOptions=function(){return this.$search.getOptions()},e.prototype.find=function(e,t,n){t||(t={}),"string"==typeof e||e instanceof RegExp?t.needle=e:"object"==typeof e&&i.mixin(t,e);var o=this.selection.getRange();null==t.needle&&((e=this.session.getTextRange(o)||this.$search.$options.needle)||(o=this.session.getWordRange(o.start.row,o.start.column),e=this.session.getTextRange(o)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:o});var r=this.$search.find(this.session);return t.preventScroll?r:r?(this.revealRange(r,n),r):(t.backwards?o.start=o.end:o.end=o.start,void this.selection.setRange(o))},e.prototype.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},e.prototype.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},e.prototype.revealRange=function(e,t){this.session.unfold(e),this.selection.setSelectionRange(e);var n=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),!1!==t&&this.renderer.animateScrolling(n)},e.prototype.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},e.prototype.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},e.prototype.destroy=function(){this.$toDestroy&&(this.$toDestroy.forEach((function(e){e.destroy()})),this.$toDestroy=null),this.$mouseHandler&&this.$mouseHandler.destroy(),this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy(),this._$emitInputEvent&&this._$emitInputEvent.cancel(),this.removeAllListeners()},e.prototype.setAutoScrollEditorIntoView=function(e){if(e){var t,n=this,o=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var i=this.$scrollAnchor;i.style.cssText="position:absolute",this.container.insertBefore(i,this.container.firstChild);var r=this.on("changeSelection",(function(){o=!0})),s=this.renderer.on("beforeRender",(function(){o&&(t=n.renderer.container.getBoundingClientRect())})),a=this.renderer.on("afterRender",(function(){if(o&&t&&(n.isFocused()||n.searchBox&&n.searchBox.isFocused())){var e=n.renderer,r=e.$cursorLayer.$pixelPos,s=e.layerConfig,a=r.top-s.offset;null!=(o=r.top>=0&&a+t.top<0||!(r.topwindow.innerHeight)&&null)&&(i.style.top=a+"px",i.style.left=r.left+"px",i.style.height=s.lineHeight+"px",i.scrollIntoView(o)),o=t=null}}));this.setAutoScrollEditorIntoView=function(e){e||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",r),this.renderer.off("afterRender",a),this.renderer.off("beforeRender",s))}}},e.prototype.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;t&&(t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&"wide"!=e,r.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e)))},e.prototype.prompt=function(e,t,n){var o=this;v.loadModule("ace/ext/prompt",(function(i){i.prompt(o,e,t,n)}))},e}();S.$uid=0,S.prototype.curOp=null,S.prototype.prevOp={},S.prototype.$mergeableCommands=["backspace","del","insertstring"],S.prototype.$toggleWordPairs=[["first","last"],["true","false"],["yes","no"],["width","height"],["top","bottom"],["right","left"],["on","off"],["x","y"],["get","set"],["max","min"],["horizontal","vertical"],["show","hide"],["add","remove"],["up","down"],["before","after"],["even","odd"],["in","out"],["inside","outside"],["next","previous"],["increase","decrease"],["attach","detach"],["&&","||"],["==","!="]],i.implement(S.prototype,m),v.defineOptions(S.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.textInput.setReadOnly(e),this.$resetCursorStyle()},initialValue:!1},copyWithEmptySelection:{set:function(e){this.textInput.setCopyWithEmptySelection(e)},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},enableAutoIndent:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(e){this.session.setValue(e)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(e){this.setSession(e)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(e){this.renderer.$gutterLayer.setShowLineNumbers(e),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),e&&this.$relativeLineNumbers?E.attach(this):E.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(e){this.$showLineNumbers&&e?E.attach(this):E.detach(this)}},placeholder:{set:function(e){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var e=this.session&&(this.renderer.$composition||this.session.getLength()>1||this.session.getLine(0).length>0);if(e&&this.renderer.placeholderNode)this.renderer.off("afterRender",this.$updatePlaceholder),r.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(e||this.renderer.placeholderNode)!e&&this.renderer.placeholderNode&&(this.renderer.placeholderNode.textContent=this.$placeholder||"");else{this.renderer.on("afterRender",this.$updatePlaceholder),r.addCssClass(this.container,"ace_hasPlaceholder");var t=r.createElement("div");t.className="ace_placeholder",t.textContent=this.$placeholder||"",this.renderer.placeholderNode=t,this.renderer.content.appendChild(this.renderer.placeholderNode)}}.bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},enableKeyboardAccessibility:{set:function(e){var t,n={name:"blurTextInput",description:"Set focus to the editor content div to allow tabbing through the page",bindKey:"Esc",exec:function(e){e.blur(),e.renderer.scroller.focus()},readOnly:!0},o=function(e){if(e.target==this.renderer.scroller&&e.keyCode===$.enter){e.preventDefault();var t=this.getCursorPosition().row;this.isRowVisible(t)||this.scrollToLine(t,!0,!0),this.focus()}};e?(this.renderer.enableKeyboardAccessibility=!0,this.renderer.keyboardFocusClassName="ace_keyboard-focus",this.textInput.getElement().setAttribute("tabindex",-1),this.textInput.setNumberOfExtraLines(a.isWin?3:0),this.renderer.scroller.setAttribute("tabindex",0),this.renderer.scroller.setAttribute("role","group"),this.renderer.scroller.setAttribute("aria-roledescription",k("editor")),this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName),this.renderer.scroller.setAttribute("aria-label",k("Editor content, press Enter to start editing, press Escape to exit")),this.renderer.scroller.addEventListener("keyup",o.bind(this)),this.commands.addCommand(n),this.renderer.$gutter.setAttribute("tabindex",0),this.renderer.$gutter.setAttribute("aria-hidden",!1),this.renderer.$gutter.setAttribute("role","group"),this.renderer.$gutter.setAttribute("aria-roledescription",k("editor")),this.renderer.$gutter.setAttribute("aria-label",k("Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit")),this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName),this.renderer.content.setAttribute("aria-hidden",!0),t||(t=new x(this)),t.addListener()):(this.renderer.enableKeyboardAccessibility=!1,this.textInput.getElement().setAttribute("tabindex",0),this.textInput.setNumberOfExtraLines(0),this.renderer.scroller.setAttribute("tabindex",-1),this.renderer.scroller.removeAttribute("role"),this.renderer.scroller.removeAttribute("aria-roledescription"),this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName),this.renderer.scroller.removeAttribute("aria-label"),this.renderer.scroller.removeEventListener("keyup",o.bind(this)),this.commands.removeCommand(n),this.renderer.content.removeAttribute("aria-hidden"),this.renderer.$gutter.setAttribute("tabindex",-1),this.renderer.$gutter.setAttribute("aria-hidden",!0),this.renderer.$gutter.removeAttribute("role"),this.renderer.$gutter.removeAttribute("aria-roledescription"),this.renderer.$gutter.removeAttribute("aria-label"),this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName),t&&t.removeListener())},initialValue:!1},customScrollbar:"renderer",hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",highlightIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",useResizeObserver:"renderer",useSvgGutterIcons:"renderer",showFoldedAnnotations:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimeout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var E={getText:function(e,t){return(Math.abs(e.selection.lead.row-t)||t+1+(t<9?"·":""))+""},getWidth:function(e,t,n){return Math.max(t.toString().length,(n.lastRow+1).toString().length,2)*n.characterWidth},update:function(e,t){t.renderer.$loop.schedule(t.renderer.CHANGE_GUTTER)},attach:function(e){e.renderer.$gutterLayer.$renderer=this,e.on("changeSelection",this.update),this.update(null,e)},detach:function(e){e.renderer.$gutterLayer.$renderer==this&&(e.renderer.$gutterLayer.$renderer=null),e.off("changeSelection",this.update),this.update(null,e)}};t.Editor=S})),ace.define("ace/layer/lines",["require","exports","module","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=function(){function e(e,t){this.element=e,this.canvasHeight=t||5e5,this.element.style.height=2*this.canvasHeight+"px",this.cells=[],this.cellCache=[],this.$offsetCoefficient=0}return e.prototype.moveContainer=function(e){o.translate(this.element,0,-e.firstRowScreen*e.lineHeight%this.canvasHeight-e.offset*this.$offsetCoefficient)},e.prototype.pageChanged=function(e,t){return Math.floor(e.firstRowScreen*e.lineHeight/this.canvasHeight)!==Math.floor(t.firstRowScreen*t.lineHeight/this.canvasHeight)},e.prototype.computeLineTop=function(e,t,n){var o=t.firstRowScreen*t.lineHeight,i=Math.floor(o/this.canvasHeight);return n.documentToScreenRow(e,0)*t.lineHeight-i*this.canvasHeight},e.prototype.computeLineHeight=function(e,t,n){return t.lineHeight*n.getRowLineCount(e)},e.prototype.getLength=function(){return this.cells.length},e.prototype.get=function(e){return this.cells[e]},e.prototype.shift=function(){this.$cacheCell(this.cells.shift())},e.prototype.pop=function(){this.$cacheCell(this.cells.pop())},e.prototype.push=function(e){if(Array.isArray(e)){this.cells.push.apply(this.cells,e);for(var t=o.createFragment(this.element),n=0;nr&&(l=i.end.row+1,r=(i=t.getNextFoldLine(l,i))?i.start.row:1/0),l>o){for(;this.$lines.getLength()>a+1;)this.$lines.pop();break}(s=this.$lines.get(++a))?s.row=l:(s=this.$lines.createCell(l,e,this.session,u),this.$lines.push(s)),this.$renderCell(s,e,i,l),l++}this._signal("afterRender"),this.$updateGutterWidth(e)},e.prototype.$updateGutterWidth=function(e){var t=this.session,n=t.gutterRenderer||this.$renderer,o=t.$firstLineNumber,i=this.$lines.last()?this.$lines.last().text:"";(this.$fixedWidth||t.$useWrapMode)&&(i=t.getLength()+o-1);var r=n?n.getWidth(t,i,e):i.toString().length*e.characterWidth,s=this.$padding||this.$computePadding();(r+=s.left+s.right)===this.gutterWidth||isNaN(r)||(this.gutterWidth=r,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",r))},e.prototype.$updateCursorRow=function(){if(this.$highlightGutterLine){var e=this.session.selection.getCursor();this.$cursorRow!==e.row&&(this.$cursorRow=e.row)}},e.prototype.updateLineHighlight=function(){if(this.$highlightGutterLine){var e=this.session.selection.cursor.row;if(this.$cursorRow=e,!this.$cursorCell||this.$cursorCell.row!=e){this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var t=this.$lines.cells;this.$cursorCell=null;for(var n=0;n=this.$cursorRow){if(o.row>this.$cursorRow){var i=this.session.getFoldLine(this.$cursorRow);if(!(n>0&&i&&i.start.row==t[n-1].row))break;o=t[n-1]}o.element.className="ace_gutter-active-line "+o.element.className,this.$cursorCell=o;break}}}}},e.prototype.scrollLines=function(e){var t=this.config;if(this.config=e,this.$updateCursorRow(),this.$lines.pageChanged(t,e))return this.update(e);this.$lines.moveContainer(e);var n=Math.min(e.lastRow+e.gutterOffset,this.session.getLength()-1),o=this.oldLastRow;if(this.oldLastRow=n,!t||o0;i--)this.$lines.shift();if(o>n)for(i=this.session.getFoldedRowCount(n+1,o);i>0;i--)this.$lines.pop();e.firstRowo&&this.$lines.push(this.$renderLines(e,o+1,n)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(e)},e.prototype.$renderLines=function(e,t,n){for(var o=[],i=t,r=this.session.getNextFoldLine(i),s=r?r.start.row:1/0;i>s&&(i=r.end.row+1,s=(r=this.session.getNextFoldLine(i,r))?r.start.row:1/0),!(i>n);){var a=this.$lines.createCell(i,e,this.session,u);this.$renderCell(a,e,r,i),o.push(a),i++}return o},e.prototype.$renderCell=function(e,t,n,i){var r=e.element,s=this.session,a=r.childNodes[0],c=r.childNodes[1],u=r.childNodes[2],h=u.firstChild,d=s.$firstLineNumber,p=s.$breakpoints,g=s.$decorations,m=s.gutterRenderer||this.$renderer,f=this.$showFoldWidgets&&s.foldWidgets,y=n?n.start.row:Number.MAX_VALUE,v=t.lineHeight+"px",b=this.$useSvgGutterIcons?"ace_gutter-cell_svg-icons ":"ace_gutter-cell ",w=this.$useSvgGutterIcons?"ace_icon_svg":"ace_icon",x=(m?m.getText(s,i):i+d).toString();if(this.$highlightGutterLine&&(i==this.$cursorRow||n&&i=y&&this.$cursorRow<=n.end.row)&&(b+="ace_gutter-active-line ",this.$cursorCell!=e&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=e)),p[i]&&(b+=p[i]),g[i]&&(b+=g[i]),this.$annotations[i]&&i!==y&&(b+=this.$annotations[i].className),f){var k=f[i];null==k&&(k=f[i]=s.getFoldWidget(i))}if(k){var C="ace_fold-widget ace_"+k,$="start"==k&&i==y&&in.right-t.right?"foldWidgets":void 0},e}();function u(e){var t=document.createTextNode("");e.appendChild(t);var n=o.createElement("span");e.appendChild(n);var i=o.createElement("span");e.appendChild(i);var r=o.createElement("span");return i.appendChild(r),e}c.prototype.$fixedWidth=!1,c.prototype.$highlightGutterLine=!0,c.prototype.$renderer="",c.prototype.$showLineNumbers=!0,c.prototype.$showFoldWidgets=!0,i.implement(c.prototype,s),t.Gutter=c})),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("../range").Range,i=e("../lib/dom"),r=function(){function e(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)}return e.prototype.setPadding=function(e){this.$padding=e},e.prototype.setSession=function(e){this.session=e},e.prototype.setMarkers=function(e){this.markers=e},e.prototype.elt=function(e,t){var n=-1!=this.i&&this.element.childNodes[this.i];n?this.i++:(n=document.createElement("div"),this.element.appendChild(n),this.i=-1),n.style.cssText=t,n.className=e},e.prototype.update=function(e){if(e){var t;for(var n in this.config=e,this.i=0,this.markers){var o=this.markers[n];if(o.range){var i=o.range.clipRows(e.firstRow,e.lastRow);if(!i.isEmpty())if(i=i.toScreenRange(this.session),o.renderer){var r=this.$getTop(i.start.row,e),s=this.$padding+i.start.column*e.characterWidth;o.renderer(t,i,s,r,e)}else"fullLine"==o.type?this.drawFullLineMarker(t,i,o.clazz,e):"screenLine"==o.type?this.drawScreenLineMarker(t,i,o.clazz,e):i.isMultiLine()?"text"==o.type?this.drawTextMarker(t,i,o.clazz,e):this.drawMultiLineMarker(t,i,o.clazz,e):this.drawSingleLineMarker(t,i,o.clazz+" ace_start ace_br15",e)}else o.update(t,this,this.session,e)}if(-1!=this.i)for(;this.id?4:0)|(c==l?8:0)),i,c==l?0:1,r)},e.prototype.drawMultiLineMarker=function(e,t,n,o,i){var r=this.$padding,s=o.lineHeight,a=this.$getTop(t.start.row,o),l=r+t.start.column*o.characterWidth;if(i=i||"",this.session.$bidiHandler.isBidiRow(t.start.row)?((c=t.clone()).end.row=c.start.row,c.end.column=this.session.getLine(c.start.row).length,this.drawBidiSingleLineMarker(e,c,n+" ace_br1 ace_start",o,null,i)):this.elt(n+" ace_br1 ace_start","height:"+s+"px;right:0;top:"+a+"px;left:"+l+"px;"+(i||"")),this.session.$bidiHandler.isBidiRow(t.end.row)){var c;(c=t.clone()).start.row=c.end.row,c.start.column=0,this.drawBidiSingleLineMarker(e,c,n+" ace_br12",o,null,i)}else{a=this.$getTop(t.end.row,o);var u=t.end.column*o.characterWidth;this.elt(n+" ace_br12","height:"+s+"px;width:"+u+"px;top:"+a+"px;left:"+r+"px;"+(i||""))}if(!((s=(t.end.row-t.start.row-1)*o.lineHeight)<=0)){a=this.$getTop(t.start.row+1,o);var h=(t.start.column?1:0)|(t.end.column?0:8);this.elt(n+(h?" ace_br"+h:""),"height:"+s+"px;right:0;top:"+a+"px;left:"+r+"px;"+(i||""))}},e.prototype.drawSingleLineMarker=function(e,t,n,o,i,r){if(this.session.$bidiHandler.isBidiRow(t.start.row))return this.drawBidiSingleLineMarker(e,t,n,o,i,r);var s=o.lineHeight,a=(t.end.column+(i||0)-t.start.column)*o.characterWidth,l=this.$getTop(t.start.row,o),c=this.$padding+t.start.column*o.characterWidth;this.elt(n,"height:"+s+"px;width:"+a+"px;top:"+l+"px;left:"+c+"px;"+(r||""))},e.prototype.drawBidiSingleLineMarker=function(e,t,n,o,i,r){var s=o.lineHeight,a=this.$getTop(t.start.row,o),l=this.$padding;this.session.$bidiHandler.getSelections(t.start.column,t.end.column).forEach((function(e){this.elt(n,"height:"+s+"px;width:"+(e.width+(i||0))+"px;top:"+a+"px;left:"+(l+e.left)+"px;"+(r||""))}),this)},e.prototype.drawFullLineMarker=function(e,t,n,o,i){var r=this.$getTop(t.start.row,o),s=o.lineHeight;t.start.row!=t.end.row&&(s+=this.$getTop(t.end.row,o)-r),this.elt(n,"height:"+s+"px;top:"+r+"px;left:0;right:0;"+(i||""))},e.prototype.drawScreenLineMarker=function(e,t,n,o,i){var r=this.$getTop(t.start.row,o),s=o.lineHeight;this.elt(n,"height:"+s+"px;top:"+r+"px;left:0;right:0;"+(i||""))},e}();r.prototype.$padding=0,t.Marker=r})),ace.define("ace/layer/text_util",["require","exports","module"],(function(e,t,n){var o=new Set(["text","rparen","lparen"]);t.isTextToken=function(e){return o.has(e)}})),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter","ace/config","ace/layer/text_util"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("../lib/dom"),r=e("../lib/lang"),s=e("./lines").Lines,a=e("../lib/event_emitter").EventEmitter,l=e("../config").nls,c=e("./text_util").isTextToken,u=function(){function e(e){this.dom=i,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new s(this.element)}return e.prototype.$updateEolChar=function(){var e=this.session.doc,t="\n"==e.getNewLineCharacter()&&"windows"!=e.getNewLineMode()?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=t)return this.EOL_CHAR=t,!0},e.prototype.setPadding=function(e){this.$padding=e,this.element.style.margin="0 "+e+"px"},e.prototype.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},e.prototype.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},e.prototype.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},e.prototype.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},e.prototype.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},e.prototype.setSession=function(e){this.session=e,e&&this.$computeTabString()},e.prototype.setShowInvisibles=function(e){return this.showInvisibles!=e&&(this.showInvisibles=e,"string"==typeof e?(this.showSpaces=/tab/i.test(e),this.showTabs=/space/i.test(e),this.showEOL=/eol/i.test(e)):this.showSpaces=this.showTabs=this.showEOL=e,this.$computeTabString(),!0)},e.prototype.setDisplayIndentGuides=function(e){return this.displayIndentGuides!=e&&(this.displayIndentGuides=e,this.$computeTabString(),!0)},e.prototype.setHighlightIndentGuides=function(e){return this.$highlightIndentGuides!==e&&(this.$highlightIndentGuides=e,e)},e.prototype.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var t=this.$tabStrings=[0],n=1;nu&&(a=l.end.row+1,u=(l=this.session.getNextFoldLine(a,l))?l.start.row:1/0),!(a>i);){var h=r[s++];if(h){this.dom.removeChildren(h),this.$renderLine(h,a,a==u&&l),c&&(h.style.top=this.$lines.computeLineTop(a,e,this.session)+"px");var d=e.lineHeight*this.session.getRowLength(a)+"px";h.style.height!=d&&(c=!0,h.style.height=d)}a++}if(c)for(;s0;i--)this.$lines.shift();if(t.lastRow>e.lastRow)for(i=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);i>0;i--)this.$lines.pop();e.firstRowt.lastRow&&this.$lines.push(this.$renderLinesFragment(e,t.lastRow+1,e.lastRow)),this.$highlightIndentGuide()},e.prototype.$renderLinesFragment=function(e,t,n){for(var o=[],r=t,s=this.session.getNextFoldLine(r),a=s?s.start.row:1/0;r>a&&(r=s.end.row+1,a=(s=this.session.getNextFoldLine(r,s))?s.start.row:1/0),!(r>n);){var l=this.$lines.createCell(r,e,this.session),c=l.element;this.dom.removeChildren(c),i.setStyle(c.style,"height",this.$lines.computeLineHeight(r,e,this.session)+"px"),i.setStyle(c.style,"top",this.$lines.computeLineTop(r,e,this.session)+"px"),this.$renderLine(c,r,r==a&&s),this.$useLineGroups()?c.className="ace_line_group":c.className="ace_line",o.push(l),r++}return o},e.prototype.update=function(e){this.$lines.moveContainer(e),this.config=e;for(var t=e.firstRow,n=e.lastRow,o=this.$lines;o.getLength();)o.pop();o.push(this.$renderLinesFragment(e,t,n))},e.prototype.$renderToken=function(e,t,n,o){for(var i,s=this,a=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC\u2066\u2067\u2068\u202A\u202B\u202D\u202E\u202C\u2069]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,u=this.dom.createFragment(this.element),h=0;i=a.exec(o);){var d=i[1],p=i[2],g=i[3],m=i[4],f=i[5];if(s.showSpaces||!p){var y=h!=i.index?o.slice(h,i.index):"";if(h=i.index+i[0].length,y&&u.appendChild(this.dom.createTextNode(y,this.element)),d){var v=s.session.getScreenTabSize(t+i.index);u.appendChild(s.$tabStrings[v].cloneNode(!0)),t+=v-1}else p?s.showSpaces?((w=this.dom.createElement("span")).className="ace_invisible ace_invisible_space",w.textContent=r.stringRepeat(s.SPACE_CHAR,p.length),u.appendChild(w)):u.appendChild(this.dom.createTextNode(p,this.element)):g?((w=this.dom.createElement("span")).className="ace_invisible ace_invisible_space ace_invalid",w.textContent=r.stringRepeat(s.SPACE_CHAR,g.length),u.appendChild(w)):m?(t+=1,(w=this.dom.createElement("span")).style.width=2*s.config.characterWidth+"px",w.className=s.showSpaces?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",w.textContent=s.showSpaces?s.SPACE_CHAR:m,u.appendChild(w)):f&&(t+=1,(w=this.dom.createElement("span")).style.width=2*s.config.characterWidth+"px",w.className="ace_cjk",w.textContent=f,u.appendChild(w))}}if(u.appendChild(this.dom.createTextNode(h?o.slice(h):o,this.element)),c(n.type))e.appendChild(u);else{var b="ace_"+n.type.replace(/\./g," ace_"),w=this.dom.createElement("span");"fold"==n.type&&(w.style.width=n.value.length*this.config.characterWidth+"px",w.setAttribute("title",l("Unfold code"))),w.className=b,w.appendChild(u),e.appendChild(w)}return t+o.length},e.prototype.renderIndentGuide=function(e,t,n){var o=t.search(this.$indentGuideRe);if(o<=0||o>=n)return t;if(" "==t[0]){for(var i=(o-=o%this.tabSize)/this.tabSize,r=0;ri[r].start.row?this.$highlightIndentGuideMarker.dir=-1:this.$highlightIndentGuideMarker.dir=1;break}if(!this.$highlightIndentGuideMarker.end&&""!==e[t.row]&&t.column===e[t.row].length)for(this.$highlightIndentGuideMarker.dir=1,r=t.row+1;r0)for(var o=0;o=this.$highlightIndentGuideMarker.start+1){if(o.row>=this.$highlightIndentGuideMarker.end)break;this.$setIndentGuideActive(o,t)}}else for(n=e.length-1;n>=0;n--)if(o=e[n],this.$highlightIndentGuideMarker.end&&o.row=s;)a=this.$renderToken(l,a,u,h.substring(0,s-o)),h=h.substring(s-o),o=s,l=this.$createLineElement(),e.appendChild(l),l.appendChild(this.dom.createTextNode(r.stringRepeat(" ",n.indent),this.element)),a=0,s=n[++i]||Number.MAX_VALUE;0!=h.length&&(o+=h.length,a=this.$renderToken(l,a,u,h))}}n[n.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(l,a,null,"",!0)},e.prototype.$renderSimpleLine=function(e,t){for(var n=0,o=0;othis.MAX_LINE_LENGTH)return this.$renderOverflowMessage(e,n,i,r);n=this.$renderToken(e,n,i,r)}}},e.prototype.$renderOverflowMessage=function(e,t,n,o,i){n&&this.$renderToken(e,t,n,o.slice(0,this.MAX_LINE_LENGTH-t));var r=this.dom.createElement("span");r.className="ace_inline_button ace_keyword ace_toggle_wrap",r.textContent=i?"":"",e.appendChild(r)},e.prototype.$renderLine=function(e,t,n){if(n||0==n||(n=this.session.getFoldLine(t)),n)var o=this.$getFoldLineTokens(t,n);else o=this.session.getTokens(t);var i=e;if(o.length){var r=this.session.getRowSplitData(t);r&&r.length?(this.$renderWrappedLine(e,o,r),i=e.lastChild):(i=e,this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i)),this.$renderSimpleLine(i,o))}else this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i));if(this.showEOL&&i){n&&(t=n.end.row);var s=this.dom.createElement("span");s.className="ace_invisible ace_invisible_eol",s.textContent=t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,i.appendChild(s)}},e.prototype.$getFoldLineTokens=function(e,t){var n=this.session,o=[],i=n.getTokens(e);return t.walk((function(e,t,r,s,a){null!=e?o.push({type:"fold",value:e}):(a&&(i=n.getTokens(t)),i.length&&function(e,t,n){for(var i=0,r=0;r+e[i].value.lengthn-t&&(s=s.substring(0,n-t)),o.push({type:e[i].type,value:s}),r=t+s.length,i+=1);rn?o.push({type:e[i].type,value:s.substring(0,n-r)}):o.push(e[i]),r+=s.length,i+=1}}(i,s,r))}),t.end.row,this.session.getLine(t.end.row).length),o},e.prototype.$useLineGroups=function(){return this.session.getUseWrapMode()},e}();u.prototype.EOF_CHAR="¶",u.prototype.EOL_CHAR_LF="¬",u.prototype.EOL_CHAR_CRLF="¤",u.prototype.EOL_CHAR=u.prototype.EOL_CHAR_LF,u.prototype.TAB_CHAR="—",u.prototype.SPACE_CHAR="·",u.prototype.$padding=0,u.prototype.MAX_LINE_LENGTH=1e4,u.prototype.showInvisibles=!1,u.prototype.showSpaces=!1,u.prototype.showTabs=!1,u.prototype.showEOL=!1,u.prototype.displayIndentGuides=!0,u.prototype.$highlightIndentGuides=!0,u.prototype.$tabStrings=[],u.prototype.destroy={},u.prototype.onChangeTabSize=u.prototype.$computeTabString,o.implement(u.prototype,a),t.Text=u})),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=function(){function e(e){this.element=o.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),o.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)}return e.prototype.$updateOpacity=function(e){for(var t=this.cursors,n=t.length;n--;)o.setStyle(t[n].style,"opacity",e?"":"0")},e.prototype.$startCssAnimation=function(){for(var e=this.cursors,t=e.length;t--;)e[t].style.animationDuration=this.blinkInterval+"ms";this.$isAnimating=!0,setTimeout(function(){this.$isAnimating&&o.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},e.prototype.$stopCssAnimation=function(){this.$isAnimating=!1,o.removeCssClass(this.element,"ace_animate-blinking")},e.prototype.setPadding=function(e){this.$padding=e},e.prototype.setSession=function(e){this.session=e},e.prototype.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},e.prototype.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},e.prototype.setSmoothBlinking=function(e){e!=this.smoothBlinking&&(this.smoothBlinking=e,o.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.restartTimer())},e.prototype.addCursor=function(){var e=o.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},e.prototype.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},e.prototype.hideCursor=function(){this.isVisible=!1,o.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},e.prototype.showCursor=function(){this.isVisible=!0,o.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},e.prototype.restartTimer=function(){var e=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&(this.$isSmoothBlinking=!1,o.removeCssClass(this.element,"ace_smooth-blinking")),e(!0),this.isBlinking&&this.blinkInterval&&this.isVisible)if(this.smoothBlinking&&(this.$isSmoothBlinking=!0,setTimeout(function(){this.$isSmoothBlinking&&o.addCssClass(this.element,"ace_smooth-blinking")}.bind(this))),o.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var t=function(){this.timeoutId=setTimeout((function(){e(!1)}),.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval((function(){e(!0),t()}),this.blinkInterval),t()}else this.$stopCssAnimation()},e.prototype.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var n=this.session.documentToScreenPosition(e);return{left:this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e.row)?this.session.$bidiHandler.getPosLeft(n.column):n.column*this.config.characterWidth),top:(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight}},e.prototype.isCursorInView=function(e,t){return e.top>=0&&e.tope.height+e.offset||s.top<0)&&n>1)){var a=this.cursors[i++]||this.addCursor(),l=a.style;this.drawCursor?this.drawCursor(a,s,e,t[n],this.session):this.isCursorInView(s,e)?(o.setStyle(l,"display","block"),o.translate(a,s.left,s.top),o.setStyle(l,"width",Math.round(e.characterWidth)+"px"),o.setStyle(l,"height",e.lineHeight+"px")):o.setStyle(l,"display","none")}}for(;this.cursors.length>i;)this.removeCursor();var c=this.session.getOverwrite();this.$setOverwrite(c),this.$pixelPos=s,this.restartTimer()},e.prototype.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?o.addCssClass(this.element,"ace_overwrite-cursors"):o.removeCssClass(this.element,"ace_overwrite-cursors"))},e.prototype.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)},e}();i.prototype.$padding=0,i.prototype.drawCursor=null,t.Cursor=i})),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("./lib/oop"),s=e("./lib/dom"),a=e("./lib/event"),l=e("./lib/event_emitter").EventEmitter,c=32768,u=function(){function e(e,t){this.element=s.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+t,this.inner=s.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent=" ",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addListener(this.element,"scroll",this.onScroll.bind(this)),a.addListener(this.element,"mousedown",a.preventDefault)}return e.prototype.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1},e}();r.implement(u.prototype,l);var h=function(e){function t(t,n){var o=e.call(this,t,"-v")||this;return o.scrollTop=0,o.scrollHeight=0,n.$scrollbarWidth=o.width=s.scrollbarWidth(t.ownerDocument),o.inner.style.width=o.element.style.width=(o.width||15)+5+"px",o.$minWidth=0,o}return i(t,e),t.prototype.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,1!=this.coeff){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},t.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},t.prototype.setHeight=function(e){this.element.style.height=e+"px"},t.prototype.setScrollHeight=function(e){this.scrollHeight=e,e>c?(this.coeff=c/e,e=c):1!=this.coeff&&(this.coeff=1),this.inner.style.height=e+"px"},t.prototype.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)},t}(u);h.prototype.setInnerHeight=h.prototype.setScrollHeight;var d=function(e){function t(t,n){var o=e.call(this,t,"-h")||this;return o.scrollLeft=0,o.height=n.$scrollbarWidth,o.inner.style.height=o.element.style.height=(o.height||15)+5+"px",o}return i(t,e),t.prototype.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},t.prototype.getHeight=function(){return this.isVisible?this.height:0},t.prototype.setWidth=function(e){this.element.style.width=e+"px"},t.prototype.setInnerWidth=function(e){this.inner.style.width=e+"px"},t.prototype.setScrollWidth=function(e){this.inner.style.width=e+"px"},t.prototype.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)},t}(u);t.ScrollBar=h,t.ScrollBarV=h,t.ScrollBarH=d,t.VScrollBar=h,t.HScrollBar=d})),ace.define("ace/scrollbar_custom",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("./lib/oop"),s=e("./lib/dom"),a=e("./lib/event"),l=e("./lib/event_emitter").EventEmitter;s.importCssString(".ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{\n position: absolute;\n background: rgba(128, 128, 128, 0.6);\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n border: 1px solid #bbb;\n border-radius: 2px;\n z-index: 8;\n}\n.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h {\n position: absolute;\n z-index: 6;\n background: none;\n overflow: hidden!important;\n}\n.ace_editor>.ace_sb-v {\n z-index: 6;\n right: 0;\n top: 0;\n width: 12px;\n}\n.ace_editor>.ace_sb-v div {\n z-index: 8;\n right: 0;\n width: 100%;\n}\n.ace_editor>.ace_sb-h {\n bottom: 0;\n left: 0;\n height: 12px;\n}\n.ace_editor>.ace_sb-h div {\n bottom: 0;\n height: 100%;\n}\n.ace_editor>.ace_sb_grabbed {\n z-index: 8;\n background: #000;\n}","ace_scrollbar.css",!1);var c=function(){function e(e,t){this.element=s.createElement("div"),this.element.className="ace_sb"+t,this.inner=s.createElement("div"),this.inner.className="",this.element.appendChild(this.inner),this.VScrollWidth=12,this.HScrollHeight=12,e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addMultiMouseDownListener(this.element,[500,300,300],this,"onMouseDown")}return e.prototype.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1},e}();r.implement(c.prototype,l);var u=function(e){function t(t,n){var o=e.call(this,t,"-v")||this;return o.scrollTop=0,o.scrollHeight=0,o.parent=t,o.width=o.VScrollWidth,o.renderer=n,o.inner.style.width=o.element.style.width=(o.width||15)+"px",o.$minWidth=0,o}return i(t,e),t.prototype.onMouseDown=function(e,t){if("mousedown"===e&&0===a.getButton(t)&&2!==t.detail){if(t.target===this.inner){var n=this,o=t.clientY,i=t.clientY,r=this.thumbTop;a.capture(this.inner,(function(e){o=e.clientY}),(function(){clearInterval(s)}));var s=setInterval((function(){if(void 0!==o){var e=n.scrollTopFromThumbTop(r+o-i);e!==n.scrollTop&&n._emit("scroll",{data:e})}}),20);return a.preventDefault(t)}var l=t.clientY-this.element.getBoundingClientRect().top-this.thumbHeight/2;return this._emit("scroll",{data:this.scrollTopFromThumbTop(l)}),a.preventDefault(t)}},t.prototype.getHeight=function(){return this.height},t.prototype.scrollTopFromThumbTop=function(e){var t=e*(this.pageHeight-this.viewHeight)/(this.slideHeight-this.thumbHeight);return(t|=0)<0?t=0:t>this.pageHeight-this.viewHeight&&(t=this.pageHeight-this.viewHeight),t},t.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},t.prototype.setHeight=function(e){this.height=Math.max(0,e),this.slideHeight=this.height,this.viewHeight=this.height,this.setScrollHeight(this.pageHeight,!0)},t.prototype.setScrollHeight=function(e,t){(this.pageHeight!==e||t)&&(this.pageHeight=e,this.thumbHeight=this.slideHeight*this.viewHeight/this.pageHeight,this.thumbHeight>this.slideHeight&&(this.thumbHeight=this.slideHeight),this.thumbHeight<15&&(this.thumbHeight=15),this.inner.style.height=this.thumbHeight+"px",this.scrollTop>this.pageHeight-this.viewHeight&&(this.scrollTop=this.pageHeight-this.viewHeight,this.scrollTop<0&&(this.scrollTop=0),this._emit("scroll",{data:this.scrollTop})))},t.prototype.setScrollTop=function(e){this.scrollTop=e,e<0&&(e=0),this.thumbTop=e*(this.slideHeight-this.thumbHeight)/(this.pageHeight-this.viewHeight),this.inner.style.top=this.thumbTop+"px"},t}(c);u.prototype.setInnerHeight=u.prototype.setScrollHeight;var h=function(e){function t(t,n){var o=e.call(this,t,"-h")||this;return o.scrollLeft=0,o.scrollWidth=0,o.height=o.HScrollHeight,o.inner.style.height=o.element.style.height=(o.height||12)+"px",o.renderer=n,o}return i(t,e),t.prototype.onMouseDown=function(e,t){if("mousedown"===e&&0===a.getButton(t)&&2!==t.detail){if(t.target===this.inner){var n=this,o=t.clientX,i=t.clientX,r=this.thumbLeft;a.capture(this.inner,(function(e){o=e.clientX}),(function(){clearInterval(s)}));var s=setInterval((function(){if(void 0!==o){var e=n.scrollLeftFromThumbLeft(r+o-i);e!==n.scrollLeft&&n._emit("scroll",{data:e})}}),20);return a.preventDefault(t)}var l=t.clientX-this.element.getBoundingClientRect().left-this.thumbWidth/2;return this._emit("scroll",{data:this.scrollLeftFromThumbLeft(l)}),a.preventDefault(t)}},t.prototype.getHeight=function(){return this.isVisible?this.height:0},t.prototype.scrollLeftFromThumbLeft=function(e){var t=e*(this.pageWidth-this.viewWidth)/(this.slideWidth-this.thumbWidth);return(t|=0)<0?t=0:t>this.pageWidth-this.viewWidth&&(t=this.pageWidth-this.viewWidth),t},t.prototype.setWidth=function(e){this.width=Math.max(0,e),this.element.style.width=this.width+"px",this.slideWidth=this.width,this.viewWidth=this.width,this.setScrollWidth(this.pageWidth,!0)},t.prototype.setScrollWidth=function(e,t){(this.pageWidth!==e||t)&&(this.pageWidth=e,this.thumbWidth=this.slideWidth*this.viewWidth/this.pageWidth,this.thumbWidth>this.slideWidth&&(this.thumbWidth=this.slideWidth),this.thumbWidth<15&&(this.thumbWidth=15),this.inner.style.width=this.thumbWidth+"px",this.scrollLeft>this.pageWidth-this.viewWidth&&(this.scrollLeft=this.pageWidth-this.viewWidth,this.scrollLeft<0&&(this.scrollLeft=0),this._emit("scroll",{data:this.scrollLeft})))},t.prototype.setScrollLeft=function(e){this.scrollLeft=e,e<0&&(e=0),this.thumbLeft=e*(this.slideWidth-this.thumbWidth)/(this.pageWidth-this.viewWidth),this.inner.style.left=this.thumbLeft+"px"},t}(c);h.prototype.setInnerWidth=h.prototype.setScrollWidth,t.ScrollBar=u,t.ScrollBarV=u,t.ScrollBarH=h,t.VScrollBar=u,t.HScrollBar=h})),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],(function(e,t,n){"use strict";var o=e("./lib/event"),i=function(){function e(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=t||window;var n=this;this._flush=function(e){n.pending=!1;var t=n.changes;if(t&&(o.blockIdle(100),n.changes=0,n.onRender(t)),n.changes){if(n.$recursionLimit--<0)return;n.schedule()}else n.$recursionLimit=2}}return e.prototype.schedule=function(e){this.changes=this.changes|e,this.changes&&!this.pending&&(o.nextFrame(this._flush),this.pending=!0)},e.prototype.clear=function(e){var t=this.changes;return this.changes=0,t},e}();t.RenderLoop=i})),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],(function(e,t,n){var o=e("../lib/oop"),i=e("../lib/dom"),r=e("../lib/lang"),s=e("../lib/event"),a=e("../lib/useragent"),l=e("../lib/event_emitter").EventEmitter,c=512,u="function"==typeof ResizeObserver,h=200,d=function(){function e(e){this.el=i.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=i.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=i.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),this.$measureNode.textContent=r.stringRepeat("X",c),this.$characterSize={width:0,height:0},u?this.$addObserver():this.checkForSizeChanges()}return e.prototype.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",a.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},e.prototype.checkForSizeChanges=function(e){if(void 0===e&&(e=this.$measureSizes()),e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},e.prototype.$addObserver=function(){var e=this;this.$observer=new window.ResizeObserver((function(t){e.checkForSizeChanges()})),this.$observer.observe(this.$measureNode)},e.prototype.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=s.onIdle((function t(){e.checkForSizeChanges(),s.onIdle(t,500)}),500)},e.prototype.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},e.prototype.$measureSizes=function(e){var t={height:(e||this.$measureNode).clientHeight,width:(e||this.$measureNode).clientWidth/c};return 0===t.width||0===t.height?null:t},e.prototype.$measureCharWidth=function(e){return this.$main.textContent=r.stringRepeat(e,c),this.$main.getBoundingClientRect().width/c},e.prototype.getCharacterWidth=function(e){var t=this.charSizes[e];return void 0===t&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},e.prototype.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},e.prototype.$getZoom=function(e){return e&&e.parentElement?(window.getComputedStyle(e).zoom||1)*this.$getZoom(e.parentElement):1},e.prototype.$initTransformMeasureNodes=function(){var e=function(e,t){return["div",{style:"position: absolute;top:"+e+"px;left:"+t+"px;"}]};this.els=i.buildDom([e(0,0),e(h,0),e(0,h),e(h,h)],this.el)},e.prototype.transformCoordinates=function(e,t){function n(e,t,n){var o=e[1]*t[0]-e[0]*t[1];return[(-t[1]*n[0]+t[0]*n[1])/o,(+e[1]*n[0]-e[0]*n[1])/o]}function o(e,t){return[e[0]-t[0],e[1]-t[1]]}function i(e,t){return[e[0]+t[0],e[1]+t[1]]}function r(e,t){return[e*t[0],e*t[1]]}function s(e){var t=e.getBoundingClientRect();return[t.left,t.top]}e&&(e=r(1/this.$getZoom(this.el),e)),this.els||this.$initTransformMeasureNodes();var a=s(this.els[0]),l=s(this.els[1]),c=s(this.els[2]),u=s(this.els[3]),d=n(o(u,l),o(u,c),o(i(l,c),i(u,a))),p=r(1+d[0],o(l,a)),g=r(1+d[1],o(c,a));if(t){var m=t,f=d[0]*m[0]/h+d[1]*m[1]/h+1,y=i(r(m[0],p),r(m[1],g));return i(r(1/f/h,y),a)}var v=o(e,a),b=n(o(p,r(d[0],v)),o(g,r(d[1],v)),v);return r(h,b)},e}();d.prototype.$characterSize={width:0,height:0},o.implement(d.prototype,l),t.FontMetrics=d})),ace.define("ace/css/editor-css",["require","exports","module"],(function(e,t,n){n.exports='\n.ace_br1 {border-top-left-radius : 3px;}\n.ace_br2 {border-top-right-radius : 3px;}\n.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\n.ace_br4 {border-bottom-right-radius: 3px;}\n.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\n.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\n.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\n.ace_br8 {border-bottom-left-radius : 3px;}\n.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\n.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\n.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n\n\n.ace_editor {\n position: relative;\n overflow: hidden;\n padding: 0;\n font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'Source Code Pro\', \'source-code-pro\', monospace;\n direction: ltr;\n text-align: left;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\n.ace_scroller {\n position: absolute;\n overflow: hidden;\n top: 0;\n bottom: 0;\n background-color: inherit;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n cursor: text;\n}\n\n.ace_content {\n position: absolute;\n box-sizing: border-box;\n min-width: 100%;\n contain: style size layout;\n font-variant-ligatures: no-common-ligatures;\n}\n\n.ace_keyboard-focus:focus {\n box-shadow: inset 0 0 0 2px #5E9ED6;\n outline: none;\n}\n\n.ace_dragging .ace_scroller:before{\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n content: \'\';\n background: rgba(250, 250, 250, 0.01);\n z-index: 1000;\n}\n.ace_dragging.ace_dark .ace_scroller:before{\n background: rgba(0, 0, 0, 0.01);\n}\n\n.ace_gutter {\n position: absolute;\n overflow : hidden;\n width: auto;\n top: 0;\n bottom: 0;\n left: 0;\n cursor: default;\n z-index: 4;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n contain: style size layout;\n}\n\n.ace_gutter-active-line {\n position: absolute;\n left: 0;\n right: 0;\n}\n\n.ace_scroller.ace_scroll-left:after {\n content: "";\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\n pointer-events: none;\n}\n\n.ace_gutter-cell, .ace_gutter-cell_svg-icons {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n padding-left: 19px;\n padding-right: 6px;\n background-repeat: no-repeat;\n}\n\n.ace_gutter-cell_svg-icons .ace_gutter_annotation {\n margin-left: -14px;\n float: left;\n}\n\n.ace_gutter-cell .ace_gutter_annotation {\n margin-left: -19px;\n float: left;\n}\n\n.ace_gutter-cell.ace_error, .ace_icon.ace_error, .ace_icon.ace_error_fold {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_warning, .ace_icon.ace_warning, .ace_icon.ace_warning_fold {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_info, .ace_icon.ace_info {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n.ace_dark .ace_gutter-cell.ace_info, .ace_dark .ace_icon.ace_info {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");\n}\n\n.ace_icon_svg.ace_error {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJyZWQiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KPGNpcmNsZSBmaWxsPSJub25lIiBjeD0iOCIgY3k9IjgiIHI9IjciIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPGxpbmUgeDE9IjExIiB5MT0iNSIgeDI9IjUiIHkyPSIxMSIvPgo8bGluZSB4MT0iMTEiIHkxPSIxMSIgeDI9IjUiIHkyPSI1Ii8+CjwvZz4KPC9zdmc+");\n background-color: crimson;\n}\n.ace_icon_svg.ace_warning {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJkYXJrb3JhbmdlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+Cjxwb2x5Z29uIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGZpbGw9Im5vbmUiIHBvaW50cz0iOCAxIDE1IDE1IDEgMTUgOCAxIi8+CjxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iMC4wMSIgaGVpZ2h0PSIwLjAxIi8+CjxsaW5lIHgxPSI4IiB5MT0iNiIgeDI9IjgiIHkyPSIxMCIvPgo8L2c+Cjwvc3ZnPg==");\n background-color: darkorange;\n}\n.ace_icon_svg.ace_info {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJibHVlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CjxjaXJjbGUgZmlsbD0ibm9uZSIgY3g9IjgiIGN5PSI4IiByPSI3IiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjxwb2x5bGluZSBwb2ludHM9IjggMTEgOCA4Ii8+Cjxwb2x5bGluZSBwb2ludHM9IjkgOCA2IDgiLz4KPGxpbmUgeDE9IjEwIiB5MT0iMTEiIHgyPSI2IiB5Mj0iMTEiLz4KPHJlY3QgeD0iOCIgeT0iNSIgd2lkdGg9IjAuMDEiIGhlaWdodD0iMC4wMSIvPgo8L2c+Cjwvc3ZnPg==");\n background-color: royalblue;\n}\n\n.ace_icon_svg.ace_error_fold {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSI+CiAgPHBhdGggZD0ibSAxOC45Mjk4NTEsNy44Mjk4MDc2IGMgMC4xNDYzNTMsNi4zMzc0NjA0IC02LjMyMzE0Nyw3Ljc3Nzg0NDQgLTcuNDc3OTEyLDcuNzc3ODQ0NCAtMi4xMDcyNzI2LC0wLjEyODc1IDUuMTE3Njc4LDAuMzU2MjQ5IDUuMDUxNjk4LC03Ljg3MDA2MTggLTAuNjA0NjcyLC04LjAwMzk3MzQ5IC03LjA3NzI3MDYsLTcuNTYzMTE4OSAtNC44NTczLC03LjQzMDM5NTU2IDEuNjA2LC0wLjExNTE0MjI1IDYuODk3NDg1LDEuMjYyNTQ1OTYgNy4yODM1MTQsNy41MjI2MTI5NiB6IiBmaWxsPSJjcmltc29uIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0ibSA4LjExNDc1NjIsMi4wNTI5ODI4IGMgMy4zNDkxNjk4LDAgNi4wNjQxMzI4LDIuNjc2ODYyNyA2LjA2NDEzMjgsNS45Nzg5NTMgMCwzLjMwMjExMjIgLTIuNzE0OTYzLDUuOTc4OTIwMiAtNi4wNjQxMzI4LDUuOTc4OTIwMiAtMy4zNDkxNDczLDAgLTYuMDY0MTc3MiwtMi42NzY4MDggLTYuMDY0MTc3MiwtNS45Nzg5MjAyIDAuMDA1MzksLTMuMjk5ODg2MSAyLjcxNzI2NTYsLTUuOTczNjQwOCA2LjA2NDE3NzIsLTUuOTc4OTUzIHogbSAwLC0xLjczNTgyNzE5IGMgLTQuMzIxNDgzNiwwIC03LjgyNDc0MDM4LDMuNDU0MDE4NDkgLTcuODI0NzQwMzgsNy43MTQ3ODAxOSAwLDQuMjYwNzI4MiAzLjUwMzI1Njc4LDcuNzE0NzQ1MiA3LjgyNDc0MDM4LDcuNzE0NzQ1MiA0LjMyMTQ0OTgsMCA3LjgyNDY5OTgsLTMuNDU0MDE3IDcuODI0Njk5OCwtNy43MTQ3NDUyIDAsLTIuMDQ2MDkxNCAtMC44MjQzOTIsLTQuMDA4MzY3MiAtMi4yOTE3NTYsLTUuNDU1MTc0NiBDIDEyLjE4MDIyNSwxLjEyOTk2NDggMTAuMTkwMDEzLDAuMzE3MTU1NjEgOC4xMTQ3NTYyLDAuMzE3MTU1NjEgWiBNIDYuOTM3NDU2Myw4LjI0MDU5ODUgNC42NzE4Njg1LDEwLjQ4NTg1MiA2LjAwODY4MTQsMTEuODc2NzI4IDguMzE3MDAzNSw5LjYwMDc5MTEgMTAuNjI1MzM3LDExLjg3NjcyOCAxMS45NjIxMzgsMTAuNDg1ODUyIDkuNjk2NTUwOCw4LjI0MDU5ODUgMTEuOTYyMTM4LDYuMDA2ODA2NiAxMC41NzMyNDYsNC42Mzc0MzM1IDguMzE3MDAzNSw2Ljg3MzQyOTcgNi4wNjA3NjA3LDQuNjM3NDMzNSA0LjY3MTg2ODUsNi4wMDY4MDY2IFoiIGZpbGw9ImNyaW1zb24iIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4=");\n background-color: crimson;\n}\n.ace_icon_svg.ace_warning_fold {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNC43NzY5IDE0LjczMzdMOC42NTE5MiAyLjQ4MzY5QzguMzI5NDYgMS44Mzg3NyA3LjQwOTEzIDEuODM4NzcgNy4wODY2NyAyLjQ4MzY5TDAuOTYxNjY5IDE0LjczMzdDMC42NzA3NzUgMTUuMzE1NSAxLjA5MzgzIDE2IDEuNzQ0MjkgMTZIMTMuOTk0M0MxNC42NDQ4IDE2IDE1LjA2NzggMTUuMzE1NSAxNC43NzY5IDE0LjczMzdaTTMuMTYwMDcgMTQuMjVMNy44NjkyOSA0LjgzMTU2TDEyLjU3ODUgMTQuMjVIMy4xNjAwN1pNOC43NDQyOSAxMS42MjVWMTMuMzc1SDYuOTk0MjlWMTEuNjI1SDguNzQ0MjlaTTYuOTk0MjkgMTAuNzVWNy4yNUg4Ljc0NDI5VjEwLjc1SDYuOTk0MjlaIiBmaWxsPSIjRUM3MjExIi8+CjxwYXRoIGQ9Ik0xMS4xOTkxIDIuOTUyMzhDMTAuODgwOSAyLjMxNDY3IDEwLjM1MzcgMS44MDUyNiA5LjcwNTUgMS41MDlMMTEuMDQxIDEuMDY5NzhDMTEuNjg4MyAwLjk0OTgxNCAxMi4zMzcgMS4yNzI2MyAxMi42MzE3IDEuODYxNDFMMTcuNjEzNiAxMS44MTYxQzE4LjM1MjcgMTMuMjkyOSAxNy41OTM4IDE1LjA4MDQgMTYuMDE4IDE1LjU3NDVDMTYuNDA0NCAxNC40NTA3IDE2LjMyMzEgMTMuMjE4OCAxNS43OTI0IDEyLjE1NTVMMTEuMTk5MSAyLjk1MjM4WiIgZmlsbD0iI0VDNzIxMSIvPgo8L3N2Zz4=");\n background-color: darkorange;\n}\n\n.ace_scrollbar {\n contain: strict;\n position: absolute;\n right: 0;\n bottom: 0;\n z-index: 6;\n}\n\n.ace_scrollbar-inner {\n position: absolute;\n cursor: text;\n left: 0;\n top: 0;\n}\n\n.ace_scrollbar-v{\n overflow-x: hidden;\n overflow-y: scroll;\n top: 0;\n}\n\n.ace_scrollbar-h {\n overflow-x: scroll;\n overflow-y: hidden;\n left: 0;\n}\n\n.ace_print-margin {\n position: absolute;\n height: 100%;\n}\n\n.ace_text-input {\n position: absolute;\n z-index: 0;\n width: 0.5em;\n height: 1em;\n opacity: 0;\n background: transparent;\n -moz-appearance: none;\n appearance: none;\n border: none;\n resize: none;\n outline: none;\n overflow: hidden;\n font: inherit;\n padding: 0 1px;\n margin: 0 -1px;\n contain: strict;\n -ms-user-select: text;\n -moz-user-select: text;\n -webkit-user-select: text;\n user-select: text;\n /*with `pre-line` chrome inserts   instead of space*/\n white-space: pre!important;\n}\n.ace_text-input.ace_composition {\n background: transparent;\n color: inherit;\n z-index: 1000;\n opacity: 1;\n}\n.ace_composition_placeholder { color: transparent }\n.ace_composition_marker { \n border-bottom: 1px solid;\n position: absolute;\n border-radius: 0;\n margin-top: 1px;\n}\n\n[ace_nocontext=true] {\n transform: none!important;\n filter: none!important;\n clip-path: none!important;\n mask : none!important;\n contain: none!important;\n perspective: none!important;\n mix-blend-mode: initial!important;\n z-index: auto;\n}\n\n.ace_layer {\n z-index: 1;\n position: absolute;\n overflow: hidden;\n /* workaround for chrome bug https://github.com/ajaxorg/ace/issues/2312*/\n word-wrap: normal;\n white-space: pre;\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n /* setting pointer-events: auto; on node under the mouse, which changes\n during scroll, will break mouse wheel scrolling in Safari */\n pointer-events: none;\n}\n\n.ace_gutter-layer {\n position: relative;\n width: auto;\n text-align: right;\n pointer-events: auto;\n height: 1000000px;\n contain: style size layout;\n}\n\n.ace_text-layer {\n font: inherit !important;\n position: absolute;\n height: 1000000px;\n width: 1000000px;\n contain: style size layout;\n}\n\n.ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group {\n contain: style size layout;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n}\n\n.ace_hidpi .ace_text-layer,\n.ace_hidpi .ace_gutter-layer,\n.ace_hidpi .ace_content,\n.ace_hidpi .ace_gutter {\n contain: strict;\n}\n.ace_hidpi .ace_text-layer > .ace_line, \n.ace_hidpi .ace_text-layer > .ace_line_group {\n contain: strict;\n}\n\n.ace_cjk {\n display: inline-block;\n text-align: center;\n}\n\n.ace_cursor-layer {\n z-index: 4;\n}\n\n.ace_cursor {\n z-index: 4;\n position: absolute;\n box-sizing: border-box;\n border-left: 2px solid;\n /* workaround for smooth cursor repaintng whole screen in chrome */\n transform: translatez(0);\n}\n\n.ace_multiselect .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_slim-cursors .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_overwrite-cursors .ace_cursor {\n border-left-width: 0;\n border-bottom: 1px solid;\n}\n\n.ace_hidden-cursors .ace_cursor {\n opacity: 0.2;\n}\n\n.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {\n opacity: 0;\n}\n\n.ace_smooth-blinking .ace_cursor {\n transition: opacity 0.18s;\n}\n\n.ace_animate-blinking .ace_cursor {\n animation-duration: 1000ms;\n animation-timing-function: step-end;\n animation-name: blink-ace-animate;\n animation-iteration-count: infinite;\n}\n\n.ace_animate-blinking.ace_smooth-blinking .ace_cursor {\n animation-duration: 1000ms;\n animation-timing-function: ease-in-out;\n animation-name: blink-ace-animate-smooth;\n}\n \n@keyframes blink-ace-animate {\n from, to { opacity: 1; }\n 60% { opacity: 0; }\n}\n\n@keyframes blink-ace-animate-smooth {\n from, to { opacity: 1; }\n 45% { opacity: 1; }\n 60% { opacity: 0; }\n 85% { opacity: 0; }\n}\n\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\n position: absolute;\n z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n position: absolute;\n z-index: 5;\n}\n\n.ace_marker-layer .ace_bracket {\n position: absolute;\n z-index: 6;\n}\n\n.ace_marker-layer .ace_error_bracket {\n position: absolute;\n border-bottom: 1px solid #DE5555;\n border-radius: 0;\n}\n\n.ace_marker-layer .ace_active-line {\n position: absolute;\n z-index: 2;\n}\n\n.ace_marker-layer .ace_selected-word {\n position: absolute;\n z-index: 4;\n box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n box-sizing: border-box;\n\n display: inline-block;\n height: 11px;\n margin-top: -2px;\n vertical-align: middle;\n\n background-image:\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");\n background-repeat: no-repeat, repeat-x;\n background-position: center center, top left;\n color: transparent;\n\n border: 1px solid black;\n border-radius: 2px;\n\n cursor: pointer;\n pointer-events: auto;\n}\n\n.ace_dark .ace_fold {\n}\n\n.ace_fold:hover{\n background-image:\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");\n}\n\n.ace_tooltip {\n background-color: #f5f5f5;\n border: 1px solid gray;\n border-radius: 1px;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\n color: black;\n max-width: 100%;\n padding: 3px 4px;\n position: fixed;\n z-index: 999999;\n box-sizing: border-box;\n cursor: default;\n white-space: pre-wrap;\n word-wrap: break-word;\n line-height: normal;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n pointer-events: none;\n overflow: auto;\n max-width: min(60em, 66vw);\n}\n.ace_tooltip pre {\n white-space: pre-wrap;\n}\n\n.ace_tooltip.ace_dark {\n background-color: #636363;\n color: #fff;\n}\n\n.ace_tooltip:focus {\n outline: 1px solid #5E9ED6;\n}\n\n.ace_icon {\n display: inline-block;\n width: 18px;\n vertical-align: top;\n}\n\n.ace_icon_svg {\n display: inline-block;\n width: 12px;\n vertical-align: top;\n -webkit-mask-repeat: no-repeat;\n -webkit-mask-size: 12px;\n -webkit-mask-position: center;\n}\n\n.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons {\n padding-right: 13px;\n}\n\n.ace_fold-widget {\n box-sizing: border-box;\n\n margin: 0 -12px 0 1px;\n display: none;\n width: 11px;\n vertical-align: top;\n\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: center;\n\n border-radius: 3px;\n \n border: 1px solid transparent;\n cursor: pointer;\n}\n\n.ace_folding-enabled .ace_fold-widget {\n display: inline-block; \n}\n\n.ace_fold-widget.ace_end {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");\n}\n\n.ace_fold-widget.ace_closed {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");\n}\n\n.ace_fold-widget:hover {\n border: 1px solid rgba(0, 0, 0, 0.3);\n background-color: rgba(255, 255, 255, 0.2);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n}\n\n.ace_fold-widget:active {\n border: 1px solid rgba(0, 0, 0, 0.4);\n background-color: rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n}\n/**\n * Dark version for fold widgets\n */\n.ace_dark .ace_fold-widget {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");\n}\n.ace_dark .ace_fold-widget.ace_end {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");\n}\n.ace_dark .ace_fold-widget.ace_closed {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");\n}\n.ace_dark .ace_fold-widget:hover {\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n background-color: rgba(255, 255, 255, 0.1);\n}\n.ace_dark .ace_fold-widget:active {\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n}\n\n.ace_inline_button {\n border: 1px solid lightgray;\n display: inline-block;\n margin: -1px 8px;\n padding: 0 5px;\n pointer-events: auto;\n cursor: pointer;\n}\n.ace_inline_button:hover {\n border-color: gray;\n background: rgba(200,200,200,0.2);\n display: inline-block;\n pointer-events: auto;\n}\n\n.ace_fold-widget.ace_invalid {\n background-color: #FFB4B4;\n border-color: #DE5555;\n}\n\n.ace_fade-fold-widgets .ace_fold-widget {\n transition: opacity 0.4s ease 0.05s;\n opacity: 0;\n}\n\n.ace_fade-fold-widgets:hover .ace_fold-widget {\n transition: opacity 0.05s ease 0.05s;\n opacity:1;\n}\n\n.ace_underline {\n text-decoration: underline;\n}\n\n.ace_bold {\n font-weight: bold;\n}\n\n.ace_nobold .ace_bold {\n font-weight: normal;\n}\n\n.ace_italic {\n font-style: italic;\n}\n\n\n.ace_error-marker {\n background-color: rgba(255, 0, 0,0.2);\n position: absolute;\n z-index: 9;\n}\n\n.ace_highlight-marker {\n background-color: rgba(255, 255, 0,0.2);\n position: absolute;\n z-index: 8;\n}\n\n.ace_mobile-menu {\n position: absolute;\n line-height: 1.5;\n border-radius: 4px;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n background: white;\n box-shadow: 1px 3px 2px grey;\n border: 1px solid #dcdcdc;\n color: black;\n}\n.ace_dark > .ace_mobile-menu {\n background: #333;\n color: #ccc;\n box-shadow: 1px 3px 2px grey;\n border: 1px solid #444;\n\n}\n.ace_mobile-button {\n padding: 2px;\n cursor: pointer;\n overflow: hidden;\n}\n.ace_mobile-button:hover {\n background-color: #eee;\n opacity:1;\n}\n.ace_mobile-button:active {\n background-color: #ddd;\n}\n\n.ace_placeholder {\n font-family: arial;\n transform: scale(0.9);\n transform-origin: left;\n white-space: pre;\n opacity: 0.7;\n margin: 0 10px;\n}\n\n.ace_ghost_text {\n opacity: 0.5;\n font-style: italic;\n white-space: pre;\n}\n\n.ace_screenreader-only {\n position:absolute;\n left:-10000px;\n top:auto;\n width:1px;\n height:1px;\n overflow:hidden;\n}'})),ace.define("ace/layer/decorators",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=e("../lib/oop"),r=e("../lib/event_emitter").EventEmitter,s=function(){function e(e,t){this.canvas=o.createElement("canvas"),this.renderer=t,this.pixelRatio=1,this.maxHeight=t.layerConfig.maxHeight,this.lineHeight=t.layerConfig.lineHeight,this.canvasHeight=e.parent.scrollHeight,this.heightRatio=this.canvasHeight/this.maxHeight,this.canvasWidth=e.width,this.minDecorationHeight=2*this.pixelRatio|0,this.halfMinDecorationHeight=this.minDecorationHeight/2|0,this.canvas.width=this.canvasWidth,this.canvas.height=this.canvasHeight,this.canvas.style.top="0px",this.canvas.style.right="0px",this.canvas.style.zIndex="7px",this.canvas.style.position="absolute",this.colors={},this.colors.dark={error:"rgba(255, 18, 18, 1)",warning:"rgba(18, 136, 18, 1)",info:"rgba(18, 18, 136, 1)"},this.colors.light={error:"rgb(255,51,51)",warning:"rgb(32,133,72)",info:"rgb(35,68,138)"},e.element.appendChild(this.canvas)}return e.prototype.$updateDecorators=function(e){var t=!0===this.renderer.theme.isDark?this.colors.dark:this.colors.light;e&&(this.maxHeight=e.maxHeight,this.lineHeight=e.lineHeight,this.canvasHeight=e.height,(e.lastRow+1)*this.lineHeightt.priority?1:0}));for(var r=this.renderer.session.$foldData,s=0;sthis.canvasHeight&&(d=this.canvasHeight-this.halfMinDecorationHeight),u=Math.round(d-this.halfMinDecorationHeight),h=Math.round(d+this.halfMinDecorationHeight)}n.fillStyle=t[o[s].type]||null,n.fillRect(0,c,this.canvasWidth,h-u)}}var p=this.renderer.session.selection.getCursor();p&&(l=this.compensateFoldRows(p.row,r),c=Math.round((p.row-l)*this.lineHeight*this.heightRatio),n.fillStyle="rgba(0, 0, 0, 0.5)",n.fillRect(0,c,this.canvasWidth,2))},e.prototype.compensateFoldRows=function(e,t){var n=0;if(t&&t.length>0)for(var o=0;ot[o].start.row&&e=t[o].end.row&&(n+=t[o].end.row-t[o].start.row);return n},e}();i.implement(s.prototype,r),t.Decorator=s})),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/config","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/scrollbar_custom","ace/scrollbar_custom","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter","ace/css/editor-css","ace/layer/decorators","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("./lib/oop"),i=e("./lib/dom"),r=e("./lib/lang"),s=e("./config"),a=e("./layer/gutter").Gutter,l=e("./layer/marker").Marker,c=e("./layer/text").Text,u=e("./layer/cursor").Cursor,h=e("./scrollbar").HScrollBar,d=e("./scrollbar").VScrollBar,p=e("./scrollbar_custom").HScrollBar,g=e("./scrollbar_custom").VScrollBar,m=e("./renderloop").RenderLoop,f=e("./layer/font_metrics").FontMetrics,y=e("./lib/event_emitter").EventEmitter,v=e("./css/editor-css"),b=e("./layer/decorators").Decorator,w=e("./lib/useragent");i.importCssString(v,"ace_editor.css",!1);var x=function(){function e(e,t){var n=this;this.container=e||i.createElement("div"),i.addCssClass(this.container,"ace_editor"),i.HI_DPI&&i.addCssClass(this.container,"ace_hidpi"),this.setTheme(t),null==s.get("useStrictCSP")&&s.set("useStrictCSP",!1),this.$gutter=i.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=i.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=i.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new a(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new l(this.content);var o=this.$textLayer=new c(this.content);this.canvas=o.element,this.$markerFront=new l(this.content),this.$cursorLayer=new u(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new d(this.container,this),this.scrollBarH=new h(this.container,this),this.scrollBarV.on("scroll",(function(e){n.$scrollAnimation||n.session.setScrollTop(e.data-n.scrollMargin.top)})),this.scrollBarH.on("scroll",(function(e){n.$scrollAnimation||n.session.setScrollLeft(e.data-n.scrollMargin.left)})),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new f(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.on("changeCharacterSize",(function(e){n.updateCharacterSize(),n.onResize(!0,n.gutterWidth,n.$size.width,n.$size.height),n._signal("changeCharacterSize",e)})),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.margin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$keepTextAreaAtCursor=!w.isIOS,this.$loop=new m(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),this.$addResizeObserver(),s.resetOptions(this),s._signal("renderer",this)}return e.prototype.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin(),i.setStyle(this.scroller.style,"line-height",this.lineHeight+"px")},e.prototype.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e),e&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},e.prototype.updateLines=function(e,t,n){if(void 0===t&&(t=1/0),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},e.prototype.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},e.prototype.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},e.prototype.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},e.prototype.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},e.prototype.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},e.prototype.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},e.prototype.onResize=function(e,t,n,o){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=e?1:0;var i=this.container;o||(o=i.clientHeight||i.scrollHeight),n||(n=i.clientWidth||i.scrollWidth);var r=this.$updateCachedSize(e,t,n,o);if(this.$resizeTimer&&this.$resizeTimer.cancel(),!this.$size.scrollerHeight||!n&&!o)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(r|this.$changes,!0):this.$loop.schedule(r|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.$customScrollbar&&this.$updateCustomScrollbar(!0)}},e.prototype.$updateCachedSize=function(e,t,n,o){o-=this.$extraHeight||0;var r=0,s=this.$size,a={width:s.width,height:s.height,scrollerHeight:s.scrollerHeight,scrollerWidth:s.scrollerWidth};if(o&&(e||s.height!=o)&&(s.height=o,r|=this.CHANGE_SIZE,s.scrollerHeight=s.height,this.$horizScroll&&(s.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.setHeight(s.scrollerHeight),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",r|=this.CHANGE_SCROLL),n&&(e||s.width!=n)){r|=this.CHANGE_SIZE,s.width=n,null==t&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,i.setStyle(this.scrollBarH.element.style,"left",t+"px"),i.setStyle(this.scroller.style,"left",t+this.margin.left+"px"),s.scrollerWidth=Math.max(0,n-t-this.scrollBarV.getWidth()-this.margin.h),i.setStyle(this.$gutter.style,"left",this.margin.left+"px");var l=this.scrollBarV.getWidth()+"px";i.setStyle(this.scrollBarH.element.style,"right",l),i.setStyle(this.scroller.style,"right",l),i.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight()),this.scrollBarH.setWidth(s.scrollerWidth),(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)&&(r|=this.CHANGE_FULL)}return s.$dirty=!n||!o,r&&this._signal("resize",a),r},e.prototype.onGutterResize=function(e){var t=this.$showGutter?e:0;t!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,t,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()||this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},e.prototype.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-2*this.$padding,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},e.prototype.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},e.prototype.getAnimatedScroll=function(){return this.$animatedScroll},e.prototype.setShowInvisibles=function(e){this.setOption("showInvisibles",e),this.session.$bidiHandler.setShowInvisibles(e)},e.prototype.getShowInvisibles=function(){return this.getOption("showInvisibles")},e.prototype.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},e.prototype.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},e.prototype.getHighlightIndentGuides=function(){return this.getOption("highlightIndentGuides")},e.prototype.setHighlightIndentGuides=function(e){this.setOption("highlightIndentGuides",e)},e.prototype.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},e.prototype.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},e.prototype.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},e.prototype.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},e.prototype.getShowGutter=function(){return this.getOption("showGutter")},e.prototype.setShowGutter=function(e){return this.setOption("showGutter",e)},e.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},e.prototype.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},e.prototype.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},e.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},e.prototype.$updatePrintMargin=function(){if(this.$showPrintMargin||this.$printMarginEl){if(!this.$printMarginEl){var e=i.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=i.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&-1==this.session.$wrap&&this.adjustWrapLimit()}},e.prototype.getContainerElement=function(){return this.container},e.prototype.getMouseEventTarget=function(){return this.scroller},e.prototype.getTextAreaContainer=function(){return this.container},e.prototype.$moveTextAreaToCursor=function(){if(!this.$isMousePressed){var e=this.textarea.style,t=this.$composition;if(this.$keepTextAreaAtCursor||t){var n=this.$cursorLayer.$pixelPos;if(n){t&&t.markerRange&&(n=this.$cursorLayer.getPixelPosition(t.markerRange.start,!0));var o=this.layerConfig,r=n.top,s=n.left;r-=o.offset;var a=t&&t.useTextareaForIME||w.isMobile?this.lineHeight:1;if(r<0||r>o.height-a)i.translate(this.textarea,0,0);else{var l=1,c=this.$size.height-a;if(t)if(t.useTextareaForIME){var u=this.textarea.value;l=this.characterWidth*this.session.$getStringScreenWidth(u)[0]}else r+=this.lineHeight+2;else r+=this.lineHeight;(s-=this.scrollLeft)>this.$size.scrollerWidth-l&&(s=this.$size.scrollerWidth-l),s+=this.gutterWidth+this.margin.left,i.setStyle(e,"height",a+"px"),i.setStyle(e,"width",l+"px"),i.translate(this.textarea,Math.min(s,this.$size.scrollerWidth-l),Math.min(r,c))}}}else i.translate(this.textarea,-100,0)}},e.prototype.getFirstVisibleRow=function(){return this.layerConfig.firstRow},e.prototype.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(0===this.layerConfig.offset?0:1)},e.prototype.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow;return this.session.documentToScreenRow(t,0)*e.lineHeight-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},e.prototype.getLastVisibleRow=function(){return this.layerConfig.lastRow},e.prototype.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},e.prototype.setScrollMargin=function(e,t,n,o){var i=this.scrollMargin;i.top=0|e,i.bottom=0|t,i.right=0|o,i.left=0|n,i.v=i.top+i.bottom,i.h=i.left+i.right,i.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-i.top),this.updateFull()},e.prototype.setMargin=function(e,t,n,o){var i=this.margin;i.top=0|e,i.bottom=0|t,i.right=0|o,i.left=0|n,i.v=i.top+i.bottom,i.h=i.left+i.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},e.prototype.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},e.prototype.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},e.prototype.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},e.prototype.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},e.prototype.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},e.prototype.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},e.prototype.freeze=function(){this.$frozen=!0},e.prototype.unfreeze=function(){this.$frozen=!1},e.prototype.$renderChanges=function(e,t){if(this.$changes&&(e|=this.$changes,this.$changes=0),this.session&&this.container.offsetWidth&&!this.$frozen&&(e||t)){if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender",e),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var n=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){if(e|=this.$computeLayerConfig()|this.$loop.clear(),n.firstRow!=this.layerConfig.firstRow&&n.firstRowScreen==this.layerConfig.firstRowScreen){var o=this.scrollTop+(n.firstRow-Math.max(this.layerConfig.firstRow,0))*this.lineHeight;o>0&&(this.scrollTop=o,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig()|this.$loop.clear())}n=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),i.translate(this.content,-this.scrollLeft,-n.offset);var r=n.width+2*this.$padding+"px",s=n.minHeight+"px";i.setStyle(this.content.style,"width",r),i.setStyle(this.content.style,"height",s)}if(e&this.CHANGE_H_SCROLL&&(i.translate(this.content,-this.scrollLeft,-n.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller ":"ace_scroller ace_scroll-left ",this.enableKeyboardAccessibility&&(this.scroller.className+=this.keyboardFocusClassName)),e&this.CHANGE_FULL)return this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),void this._signal("afterRender",e);if(e&this.CHANGE_SCROLL)return this.$changedLines=null,e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(n):this.$textLayer.scrollLines(n),this.$showGutter&&(e&this.CHANGE_GUTTER||e&this.CHANGE_LINES?this.$gutterLayer.update(n):this.$gutterLayer.scrollLines(n)),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),void this._signal("afterRender",e);e&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_LINES?((this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER?(this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_CURSOR&&(this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(n),this.$moveTextAreaToCursor()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(n),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(n),this._signal("afterRender",e)}else this.$changes|=e},e.prototype.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,n=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(n+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&n>this.$maxPixelHeight&&(n=this.$maxPixelHeight);var o=!(n<=2*this.lineHeight)&&e>t;if(n!=this.desiredHeight||this.$size.height!=this.desiredHeight||o!=this.$vScroll){o!=this.$vScroll&&(this.$vScroll=o,this.scrollBarV.setVisible(o));var i=this.container.clientWidth;this.container.style.height=n+"px",this.$updateCachedSize(!0,this.$gutterWidth,i,n),this.desiredHeight=n,this._signal("autosize")}},e.prototype.$computeLayerConfig=function(){var e=this.session,t=this.$size,n=t.height<=2*this.lineHeight,o=this.session.getScreenLength()*this.lineHeight,i=this.$getLongestLine(),r=!n&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-i-2*this.$padding<0),s=this.$horizScroll!==r;s&&(this.$horizScroll=r,this.scrollBarH.setVisible(r));var a=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var l=t.scrollerHeight+this.lineHeight,c=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;o+=c;var u=this.scrollMargin;this.session.setScrollTop(Math.max(-u.top,Math.min(this.scrollTop,o-t.scrollerHeight+u.bottom))),this.session.setScrollLeft(Math.max(-u.left,Math.min(this.scrollLeft,i+2*this.$padding-t.scrollerWidth+u.right)));var h=!n&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-o+c<0||this.scrollTop>u.top),d=a!==h;d&&(this.$vScroll=h,this.scrollBarV.setVisible(h));var p,g,m=this.scrollTop%this.lineHeight,f=Math.ceil(l/this.lineHeight)-1,y=Math.max(0,Math.round((this.scrollTop-m)/this.lineHeight)),v=y+f,b=this.lineHeight;y=e.screenToDocumentRow(y,0);var w=e.getFoldLine(y);w&&(y=w.start.row),p=e.documentToScreenRow(y,0),g=e.getRowLength(y)*b,v=Math.min(e.screenToDocumentRow(v,0),e.getLength()-1),l=t.scrollerHeight+e.getRowLength(v)*b+g,m=this.scrollTop-p*b;var x=0;return(this.layerConfig.width!=i||s)&&(x=this.CHANGE_H_SCROLL),(s||d)&&(x|=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),d&&(i=this.$getLongestLine())),this.layerConfig={width:i,padding:this.$padding,firstRow:y,firstRowScreen:p,lastRow:v,lineHeight:b,characterWidth:this.characterWidth,minHeight:l,maxHeight:o,offset:m,gutterOffset:b?Math.max(0,Math.ceil((m+t.height-t.scrollerHeight)/b)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(i-this.$padding),x},e.prototype.$updateLines=function(){if(this.$changedLines){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var n=this.layerConfig;if(!(e>n.lastRow+1||tthis.$textLayer.MAX_LINE_LENGTH&&(e=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(e*this.characterWidth))},e.prototype.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},e.prototype.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},e.prototype.addGutterDecoration=function(e,t){this.$gutterLayer.addGutterDecoration(e,t)},e.prototype.removeGutterDecoration=function(e,t){this.$gutterLayer.removeGutterDecoration(e,t)},e.prototype.updateBreakpoints=function(e){this.$loop.schedule(this.CHANGE_GUTTER)},e.prototype.setAnnotations=function(e){this.$gutterLayer.setAnnotations(e),this.$loop.schedule(this.CHANGE_GUTTER)},e.prototype.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},e.prototype.hideCursor=function(){this.$cursorLayer.hideCursor()},e.prototype.showCursor=function(){this.$cursorLayer.showCursor()},e.prototype.scrollSelectionIntoView=function(e,t,n){this.scrollCursorIntoView(e,n),this.scrollCursorIntoView(t,n)},e.prototype.scrollCursorIntoView=function(e,t,n){if(0!==this.$size.scrollerHeight){var o=this.$cursorLayer.getPixelPosition(e),i=o.left,r=o.top,s=n&&n.top||0,a=n&&n.bottom||0;this.$scrollAnimation&&(this.$stopAnimation=!0);var l=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;l+s>r?(t&&l+s>r+this.lineHeight&&(r-=t*this.$size.scrollerHeight),0===r&&(r=-this.scrollMargin.top),this.session.setScrollTop(r)):l+this.$size.scrollerHeight-a=1-this.scrollMargin.top||t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right||void 0},e.prototype.pixelToScreenCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var o=this.$fontMetrics.transformCoordinates([e,t]);e=o[1]-this.gutterWidth-this.margin.left,t=o[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,r=i/this.characterWidth,s=Math.floor((t+this.scrollTop-n.top)/this.lineHeight),a=this.$blockCursor?Math.floor(r):Math.round(r);return{row:s,column:a,side:r-a>0?1:-1,offsetX:i}},e.prototype.screenToTextCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var o=this.$fontMetrics.transformCoordinates([e,t]);e=o[1]-this.gutterWidth-this.margin.left,t=o[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,r=i/this.characterWidth,s=this.$blockCursor?Math.floor(r):Math.round(r),a=Math.floor((t+this.scrollTop-n.top)/this.lineHeight);return this.session.screenToDocumentPosition(a,Math.max(s,0),i)},e.prototype.textToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),o=this.session.documentToScreenPosition(e,t),i=this.$padding+(this.session.$bidiHandler.isBidiRow(o.row,e)?this.session.$bidiHandler.getPosLeft(o.column):Math.round(o.column*this.characterWidth)),r=o.row*this.lineHeight;return{pageX:n.left+i-this.scrollLeft,pageY:n.top+r-this.scrollTop}},e.prototype.visualizeFocus=function(){i.addCssClass(this.container,"ace_focus")},e.prototype.visualizeBlur=function(){i.removeCssClass(this.container,"ace_focus")},e.prototype.showComposition=function(e){this.$composition=e,e.cssText||(e.cssText=this.textarea.style.cssText),null==e.useTextareaForIME&&(e.useTextareaForIME=this.$useTextareaForIME),this.$useTextareaForIME?(i.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display="none"):e.markerId=this.session.addMarker(e.markerRange,"ace_composition_marker","text")},e.prototype.setCompositionText=function(e){var t=this.session.selection.cursor;this.addToken(e,"composition_placeholder",t.row,t.column),this.$moveTextAreaToCursor()},e.prototype.hideComposition=function(){if(this.$composition){this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),i.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText;var e=this.session.selection.cursor;this.removeExtraToken(e.row,e.column),this.$composition=null,this.$cursorLayer.element.style.display=""}},e.prototype.setGhostText=function(e,t){var n=this.session.selection.cursor,o=t||{row:n.row,column:n.column};this.removeGhostText();var i=e.split("\n");if(this.addToken(i[0],"ghost_text",o.row,o.column),this.$ghostText={text:e,position:{row:o.row,column:o.column}},i.length>1){this.$ghostTextWidget={text:i.slice(1).join("\n"),row:o.row,column:o.column,className:"ace_ghost_text"},this.session.widgetManager.addLineWidget(this.$ghostTextWidget);var r=this.$cursorLayer.getPixelPosition(o,!0),s=this.container.getBoundingClientRect().height,a=i.length*this.lineHeight;if(a1||Math.abs(e.$size.height-o)>1?e.$resizeTimer.delay():e.$resizeTimer.cancel()})),this.$resizeObserver.observe(this.container)}},e}();x.prototype.CHANGE_CURSOR=1,x.prototype.CHANGE_MARKER=2,x.prototype.CHANGE_GUTTER=4,x.prototype.CHANGE_SCROLL=8,x.prototype.CHANGE_LINES=16,x.prototype.CHANGE_TEXT=32,x.prototype.CHANGE_SIZE=64,x.prototype.CHANGE_MARKER_BACK=128,x.prototype.CHANGE_MARKER_FRONT=256,x.prototype.CHANGE_FULL=512,x.prototype.CHANGE_H_SCROLL=1024,x.prototype.$changes=0,x.prototype.$padding=null,x.prototype.$frozen=!1,x.prototype.STEPS=8,o.implement(x.prototype,y),s.defineOptions(x.prototype,"renderer",{useResizeObserver:{set:function(e){!e&&this.$resizeObserver?(this.$resizeObserver.disconnect(),this.$resizeTimer.cancel(),this.$resizeTimer=this.$resizeObserver=null):e&&!this.$resizeObserver&&this.$addResizeObserver()}},animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){"number"==typeof e&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},useSvgGutterIcons:{set:function(e){this.$gutterLayer.$useSvgGutterIcons=e},initialValue:!1},showFoldedAnnotations:{set:function(e){this.$gutterLayer.$showFoldedAnnotations=e},initialValue:!1},fadeFoldWidgets:{set:function(e){i.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightIndentGuides:{set:function(e){1==this.$textLayer.setHighlightIndentGuides(e)?this.$textLayer.$highlightIndentGuide():this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells)},initialValue:!0},highlightGutterLine:{set:function(e){this.$gutterLayer.setHighlightGutterLine(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},hScrollBarAlwaysVisible:{set:function(e){this.$hScrollBarAlwaysVisible&&this.$horizScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){this.$vScrollBarAlwaysVisible&&this.$vScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){"number"==typeof e&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.$minLines<562949953421311||(this.$minLines=0),this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0,this.$scrollPastEnd!=e&&(this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},customScrollbar:{set:function(e){this.$updateCustomScrollbar(e)},initialValue:!1},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0},hasCssTransforms:{},useTextareaForIME:{initialValue:!w.isMobile&&!w.isIE}}),t.VirtualRenderer=x})),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("../lib/net"),r=e("../lib/event_emitter").EventEmitter,s=e("../config");function a(e){if("undefined"==typeof Worker)return{postMessage:function(){},terminate:function(){}};if(s.get("loadWorkerFromBlob")){var t=function(e){var t="importScripts('"+i.qualifyURL(e)+"');";try{return new Blob([t],{type:"application/javascript"})}catch(e){var n=new(window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder);return n.append(t),n.getBlob("application/javascript")}}(e),n=(window.URL||window.webkitURL).createObjectURL(t);return new Worker(n)}return new Worker(e)}var l=function(e){e.postMessage||(e=this.$createWorkerFromOldConfig.apply(this,arguments)),this.$worker=e,this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){o.implement(this,r),this.$createWorkerFromOldConfig=function(t,n,o,i,r){if(e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl),s.get("packaged")||!e.toUrl)i=i||s.moduleUrl(n,"worker");else{var l=this.$normalizePath;i=i||l(e.toUrl("ace/worker/worker.js",null,"_"));var c={};t.forEach((function(t){c[t]=l(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))}))}return this.$worker=a(i),r&&this.send("importScripts",r),this.$worker.postMessage({init:!0,tlns:c,module:n,classname:o}),this.$worker},this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var n=this.callbacks[t.id];n&&(n(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return i.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker.onerror=function(e){e.preventDefault()},this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,n){if(n){var o=this.callbackId++;this.callbacks[o]=n,t.push(o)}this.send(e,t)},this.emit=function(e,t){try{t.data&&t.data.err&&(t.data.err={message:t.data.err.message,stack:t.data.err.stack,code:t.data.err.code}),this.$worker&&this.$worker.postMessage({event:e,data:{data:t.data}})}catch(e){console.error(e.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener,!0)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),"insert"==e.action?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;e&&(this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e}))}}).call(l.prototype),t.UIWorkerClient=function(e,t,n){var o=null,i=!1,a=Object.create(r),c=[],u=new l({messageBuffer:c,terminate:function(){},postMessage:function(e){c.push(e),o&&(i?setTimeout(h):h())}});u.setEmitSync=function(e){i=e};var h=function(){var e=c.shift();e.command?o[e.command].apply(o,e.args):e.event&&a._signal(e.event,e.data)};return a.postMessage=function(e){u.onMessage({data:e})},a.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},a.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},s.loadModule(["worker",t],(function(e){for(o=new e[n](a);c.length;)h()})),u},t.WorkerClient=l,t.createWorker=a})),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],(function(e,t,n){"use strict";var o=e("./range").Range,i=e("./lib/event_emitter").EventEmitter,r=e("./lib/oop"),s=function(){function e(e,t,n,o,i,r){var s=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=i,this.othersClass=r,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate,!0),this.$others=o,this.$onCursorChange=function(){setTimeout((function(){s.onCursorChange()}))},this.$pos=n;var a=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=a.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)}return e.prototype.setup=function(){var e=this,t=this.doc,n=this.session;this.selectionBefore=n.selection.toJSON(),n.selection.inMultiSelectMode&&n.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var i=this.pos;i.$insertRight=!0,i.detach(),i.markerId=n.addMarker(new o(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach((function(n){var o=t.createAnchor(n.row,n.column);o.$insertRight=!0,o.detach(),e.others.push(o)})),n.setUndoSelect(!1)},e.prototype.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach((function(n){n.markerId=e.addMarker(new o(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1)}))}},e.prototype.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,r=t.start.column-this.pos.column;if(this.updateAnchors(e),i&&(this.length+=n),i&&!this.session.$fromUndo)if("insert"===e.action)for(var s=this.others.length-1;s>=0;s--){var a={row:(l=this.others[s]).row,column:l.column+r};this.doc.insertMergedLines(a,e.lines)}else if("remove"===e.action)for(s=this.others.length-1;s>=0;s--){var l;a={row:(l=this.others[s]).row,column:l.column+r},this.doc.remove(new o(a.row,a.column,a.row,a.column-n))}this.$updating=!1,this.updateMarkers()}},e.prototype.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},e.prototype.updateMarkers=function(){if(!this.$updating){var e=this,t=this.session,n=function(n,i){t.removeMarker(n.markerId),n.markerId=t.addMarker(new o(n.row,n.column,n.row,n.column+e.length),i,null,!1)};n(this.pos,this.mainClass);for(var i=this.others.length;i--;)n(this.others[i],this.othersClass)}},e.prototype.onCursorChange=function(e){if(!this.$updating&&this.session){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))}},e.prototype.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.off("change",this.$onUpdate),this.session.selection.off("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},e.prototype.cancel=function(){if(-1!==this.$undoStackDepth){for(var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth,n=0;n1?e.multiSelect.joinSelections():e.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"splitSelectionIntoLines",description:"Split into lines",exec:function(e){e.multiSelect.splitIntoLines()},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(e){e.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(e){e.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],t.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(e){e.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(e){return e&&e.inMultiSelectMode}}];var o=e("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new o(t.multiSelectCommands)})),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],(function(e,t,n){var o=e("./range_list").RangeList,i=e("./range").Range,r=e("./selection").Selection,s=e("./mouse/multi_select_handler").onMouseDown,a=e("./lib/event"),l=e("./lib/lang"),c=e("./commands/multi_select_commands");t.commands=c.defaultCommands.concat(c.multiSelectCommands);var u=new(0,e("./search").Search),h=e("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(h.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(e){if(!this.inMultiSelectMode&&0===this.rangeCount){var n=this.toOrientedRange();if(this.rangeList.add(n),this.rangeList.add(e),2!=this.rangeList.ranges.length)return this.rangeList.removeAll(),t||this.fromOrientedRange(e);this.rangeList.removeAll(),this.rangeList.add(n),this.$onAddRange(n)}e.cursor||(e.cursor=e.end);var o=this.rangeList.add(e);return this.$onAddRange(e),o.length&&this.$onRemoveRange(o),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)}},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length&&this.$onRemoveRange(e)},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){if(this.rangeCount=this.rangeList.ranges.length,1==this.rangeCount&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var o=this.ranges.indexOf(e[n]);this.ranges.splice(o,1)}this._signal("removeRange",{ranges:e}),0===this.rangeCount&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),(t=t||this.ranges[0])&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new o,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){for(var e=this.ranges.length?this.ranges:[this.getRange()],t=[],n=0;n1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var o=this.session.documentToScreenPosition(this.cursor),r=this.session.documentToScreenPosition(this.anchor);this.rectangularRangeBlock(o,r).forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var o=[],r=e.column0;)v--;if(v>0)for(var b=0;o[b].isEmpty();)b++;for(var w=v;w>=b;w--)o[w].isEmpty()&&o.splice(w,1)}return o}}.call(r.prototype);var d=e("./editor").Editor;function p(e){e.$multiselectOnSessionChange||(e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on("changeSession",e.$multiselectOnSessionChange),e.on("mousedown",s),e.commands.addCommands(c.defaultCommands),function(e){if(e.textInput){var t=e.textInput.getElement(),n=!1;a.addListener(t,"keydown",(function(t){var i=18==t.keyCode&&!(t.ctrlKey||t.shiftKey||t.metaKey);e.$blockSelectEnabled&&i?n||(e.renderer.setMouseCursor("crosshair"),n=!0):n&&o()}),e),a.addListener(t,"keyup",o,e),a.addListener(t,"blur",o,e)}function o(t){n&&(e.renderer.setMouseCursor(""),n=!1)}}(e))}(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(e.marker){this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);-1!=t&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(e){for(var t=this.session.$selectionMarkers,n=e.length;n--;){var o=e[n];if(o.marker){this.session.removeMarker(o.marker);var i=t.indexOf(o);-1!=i&&t.splice(i,1)}}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(c.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(e){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(c.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(n.multiSelect){if(t.multiSelectAction)"forEach"==t.multiSelectAction?o=n.forEachSelection(t,e.args):"forEachLine"==t.multiSelectAction?o=n.forEachSelection(t,e.args,!0):"single"==t.multiSelectAction?(n.exitMultiSelectMode(),o=t.exec(n,e.args||{})):o=t.multiSelectAction(n,e.args||{});else{var o=t.exec(n,e.args||{});n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()}return o}},this.forEachSelection=function(e,t,n){if(!this.inVirtualSelectionMode){var o,i=n&&n.keepOrder,s=1==n||n&&n.$byLines,a=this.session,l=this.selection,c=l.rangeList,u=(i?l:c).ranges;if(!u.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var h=l._eventRegistry;l._eventRegistry={};var d=new r(a);this.inVirtualSelectionMode=!0;for(var p=u.length;p--;){if(s)for(;p>0&&u[p].start.row==u[p-1].end.row;)p--;d.fromOrientedRange(u[p]),d.index=p,this.selection=a.selection=d;var g=e.exec?e.exec(this,t||{}):e(this,t||{});o||void 0===g||(o=g),d.toOrientedRange(u[p])}d.detach(),this.selection=a.selection=l,this.inVirtualSelectionMode=!1,l._eventRegistry=h,l.mergeOverlappingRanges(),l.ranges[0]&&l.fromOrientedRange(l.ranges[0]);var m=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),m&&m.from==m.to&&this.renderer.animateScrolling(m.from),o}},this.exitMultiSelectMode=function(){this.inMultiSelectMode&&!this.inVirtualSelectionMode&&this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var t=this.multiSelect.rangeList.ranges,n=[],o=0;os&&(s=n.column),ou?e.insert(o,l.stringRepeat(" ",r-u)):e.remove(new i(o.row,o.column,o.row,o.column-r+u)),t.start.column=t.end.column=s,t.start.row=t.end.row=o.row,t.cursor=t.end})),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}else{var u=this.selection.getRange(),h=u.start.row,d=u.end.row,p=h==d;if(p){var g,m=this.session.getLength();do{g=this.session.getLine(d)}while(/[=:]/.test(g)&&++d0);h<0&&(h=0),d>=m&&(d=m-1)}var f=this.session.removeFullLines(h,d);f=this.$reAlignText(f,p),this.session.insert({row:h,column:0},f.join("\n")+"\n"),p||(u.start.column=0,u.end.column=f[f.length-1].length),this.selection.setRange(u)}},this.$reAlignText=function(e,t){var n,o,i,r=!0,s=!0;return e.map((function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?null==n?(n=t[1].length,o=t[2].length,i=t[3].length,t):(n+o+i!=t[1].length+t[2].length+t[3].length&&(s=!1),n!=t[1].length&&(r=!1),n>t[1].length&&(n=t[1].length),ot[3].length&&(i=t[3].length),t):[e]})).map(t?c:r?s?function(e){return e[2]?a(n+o-e[2].length)+e[2]+a(i)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}:c:function(e){return e[2]?a(n)+e[2]+a(i)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]});function a(e){return l.stringRepeat(" ",e)}function c(e){return e[2]?a(n)+e[2]+a(o-e[2].length+i)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}}}).call(d.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var n=e.oldSession;n&&(n.multiSelect.off("addRange",this.$onAddRange),n.multiSelect.off("removeRange",this.$onRemoveRange),n.multiSelect.off("multiSelect",this.$onMultiSelect),n.multiSelect.off("singleSelect",this.$onSingleSelect),n.multiSelect.lead.off("change",this.$checkMultiselectChange),n.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=p,e("./config").defineOptions(d.prototype,"editor",{enableMultiselect:{set:function(e){p(this),e?this.on("mousedown",s):this.off("mousedown",s)},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})})),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../../range").Range,i=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);return this.foldingStartMarker.test(o)?"start":"markbeginend"==t&&this.foldingStopMarker&&this.foldingStopMarker.test(o)?"end":""},this.getFoldWidgetRange=function(e,t,n){return null},this.indentationBlock=function(e,t,n){var i=/\S/,r=e.getLine(t),s=r.search(i);if(-1!=s){for(var a=n||r.length,l=e.getLength(),c=t,u=t;++tc){var p=e.getLine(u).length;return new o(c,a,u,p)}}},this.openingBracketBlock=function(e,t,n,i,r){var s={row:n,column:i+1},a=e.$findClosingBracket(t,s,r);if(a){var l=e.foldWidgets[a.row];return null==l&&(l=e.getFoldWidget(a.row)),"start"==l&&a.row>s.row&&(a.row--,a.column=e.getLine(a.row).length),o.fromPoints(s,a)}},this.closingBracketBlock=function(e,t,n,i,r){var s={row:n,column:i},a=e.$findOpeningBracket(t,s);if(a)return a.column++,s.column--,o.fromPoints(a,s)}}).call(i.prototype)})),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range","ace/config"],(function(e,t,n){"use strict";var o=e("../line_widgets").LineWidgets,i=e("../lib/dom"),r=e("../range").Range,s=e("../config").nls;t.showErrorMarker=function(e,t){var n=e.session;n.widgetManager||(n.widgetManager=new o(n),n.widgetManager.attach(e));var a=e.getCursorPosition(),l=a.row,c=n.widgetManager.getWidgetsAtRow(l).filter((function(e){return"errorMarker"==e.type}))[0];c?c.destroy():l-=t;var u,h=function(e,t,n){var o=e.getAnnotations().sort(r.comparePoints);if(o.length){var i=function(e,t,n){for(var o=0,i=e.length-1;o<=i;){var r=o+i>>1,s=n(t,e[r]);if(s>0)o=r+1;else{if(!(s<0))return r;i=r-1}}return-(o+1)}(o,{row:t,column:-1},r.comparePoints);i<0&&(i=-i-1),i>=o.length?i=n>0?0:o.length-1:0===i&&n<0&&(i=o.length-1);var s=o[i];if(s&&n){if(s.row===t){do{s=o[i+=n]}while(s&&s.row===t);if(!s)return o.slice()}var a=[];t=s.row;do{a[n<0?"unshift":"push"](s),s=o[i+=n]}while(s&&s.row==t);return a.length&&a}}}(n,l,t);if(h){var d=h[0];a.column=(d.pos&&"number"!=typeof d.column?d.pos.sc:d.column)||0,a.row=d.row,u=e.renderer.$gutterLayer.$annotations[a.row]}else{if(c)return;u={text:[s("Looks good!")],className:"ace_ok"}}e.session.unfold(a.row),e.selection.moveToPosition(a);var p={row:a.row,fixedWidth:!0,coverGutter:!0,el:i.createElement("div"),type:"errorMarker"},g=p.el.appendChild(i.createElement("div")),m=p.el.appendChild(i.createElement("div"));m.className="error_widget_arrow "+u.className;var f=e.renderer.$cursorLayer.getPixelPosition(a).left;m.style.left=f+e.renderer.gutterWidth-5+"px",p.el.className="error_widget_wrapper",g.className="error_widget "+u.className,g.innerHTML=u.text.join("
    "),g.appendChild(i.createElement("div"));var y=function(e,t,n){if(0===t&&("esc"===n||"return"===n))return p.destroy(),{command:"null"}};p.destroy=function(){e.$mouseHandler.isMousePressed||(e.keyBinding.removeKeyboardHandler(y),n.widgetManager.removeLineWidget(p),e.off("changeSelection",p.destroy),e.off("changeSession",p.destroy),e.off("mouseup",p.destroy),e.off("change",p.destroy))},e.keyBinding.addKeyboardHandler(y),e.on("changeSelection",p.destroy),e.on("changeSession",p.destroy),e.on("mouseup",p.destroy),e.on("change",p.destroy),e.session.widgetManager.addLineWidget(p),p.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:p.el.offsetHeight})},i.importCssString("\n .error_widget_wrapper {\n background: inherit;\n color: inherit;\n border:none\n }\n .error_widget {\n border-top: solid 2px;\n border-bottom: solid 2px;\n margin: 5px 0;\n padding: 10px 40px;\n white-space: pre-wrap;\n }\n .error_widget.ace_error, .error_widget_arrow.ace_error{\n border-color: #ff5a5a\n }\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\n border-color: #F1D817\n }\n .error_widget.ace_info, .error_widget_arrow.ace_info{\n border-color: #5a5a5a\n }\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\n border-color: #5aaa5a\n }\n .error_widget_arrow {\n position: absolute;\n border: solid 5px;\n border-top-color: transparent!important;\n border-right-color: transparent!important;\n border-left-color: transparent!important;\n top: -5px;\n }\n","error_marker.css",!1)})),ace.define("ace/ace",["require","exports","module","ace/lib/dom","ace/range","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config","ace/loader_build"],(function(e,t,n){"use strict";e("./loader_build")(t);var o=e("./lib/dom"),i=e("./range").Range,r=e("./editor").Editor,s=e("./edit_session").EditSession,a=e("./undomanager").UndoManager,l=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.edit=function(e,n){if("string"==typeof e){var i=e;if(!(e=document.getElementById(i)))throw new Error("ace.edit can't find div #"+i)}if(e&&e.env&&e.env.editor instanceof r)return e.env.editor;var s="";if(e&&/input|textarea/i.test(e.tagName)){var a=e;s=a.value,e=o.createElement("pre"),a.parentNode.replaceChild(e,a)}else e&&(s=e.textContent,e.innerHTML="");var c=t.createEditSession(s),u=new r(new l(e),c,n),h={document:c,editor:u,onResize:u.resize.bind(u,null)};return a&&(h.textarea=a),u.on("destroy",(function(){h.editor.container.env=null})),u.container.env=u.env=h,u},t.createEditSession=function(e,t){var n=new s(e,t);return n.setUndoManager(new a),n},t.Range=i,t.Editor=r,t.EditSession=s,t.UndoManager=a,t.VirtualRenderer=l,t.version=t.config.version})),ace.require(["ace/ace"],(function(t){t&&(t.config.init(!0),t.define=ace.define);var n=function(){return this}();for(var o in n||"undefined"==typeof window||(n=window),n||"undefined"==typeof self||(n=self),n.ace||(n.ace=t),t)t.hasOwnProperty(o)&&(n.ace[o]=t[o]);n.ace.default=n.ace,e&&(e.exports=n.ace)}))},134:(e,t,n)=>{e=n.nmd(e),ace.define("ace/ext/beautify",["require","exports","module","ace/token_iterator"],(function(e,t,n){"use strict";var o=e("../token_iterator").TokenIterator;function i(e,t){return e.type.lastIndexOf(t+".xml")>-1}t.singletonTags=["area","base","br","col","command","embed","hr","html","img","input","keygen","link","meta","param","source","track","wbr"],t.blockTags=["article","aside","blockquote","body","div","dl","fieldset","footer","form","head","header","html","nav","ol","p","script","section","style","table","tbody","tfoot","thead","ul"],t.formatOptions={lineBreaksAfterCommasInCurlyBlock:!0},t.beautify=function(e){for(var n,r,s,a=new o(e,0,0),l=a.getCurrentToken(),c=e.getTabString(),u=t.singletonTags,h=t.blockTags,d=t.formatOptions||{},p=!1,g=!1,m=!1,f="",y="",v="",b=0,w=0,x=0,k=0,C=0,$=0,S=0,E=0,O=0,T=!1,A=!1,_=!1,L=!1,M={0:0},R=[],N=!1,I=function(){n&&n.value&&"string.regexp"!==n.type&&(n.value=n.value.replace(/^\s*/,""))},P=function(){for(var e=f.length-1;0!=e&&" "===f[e];)e-=1;f=f.slice(0,e+1)},D=function(){f=f.trimRight(),p=!1};null!==l;){if(E=a.getCurrentTokenRow(),a.$rowTokens,n=a.stepForward(),void 0!==l){if(y=l.value,C=0,_="style"===v||"ace/mode/css"===e.$modeId,i(l,"tag-open")?(A=!0,n&&(L=-1!==h.indexOf(n.value)),"0;O--)f+="\n";p=!0,i(l,"comment")||l.type.match(/^(comment|string)$/)||(y=y.trimLeft())}if(y){if("keyword"===l.type&&y.match(/^(if|else|elseif|for|foreach|while|switch)$/)?(R[b]=y,I(),m=!0,y.match(/^(else|elseif)$/)&&f.match(/\}[\s]*$/)&&(D(),g=!0)):"paren.lparen"===l.type?(I(),"{"===y.substr(-1)&&(m=!0,T=!1,A||(O=1)),"{"===y.substr(0,1)&&(g=!0,"["!==f.substr(-1)&&"["===f.trimRight().substr(-1)?(D(),g=!1):")"===f.trimRight().substr(-1)?D():P())):"paren.rparen"===l.type?(C=1,"}"===y.substr(0,1)&&("case"===R[b-1]&&C++,"{"===f.trimRight().substr(-1)?D():(g=!0,_&&(O+=2))),"]"===y.substr(0,1)&&"}"!==f.substr(-1)&&"}"===f.trimRight().substr(-1)&&(g=!1,k++,D()),")"===y.substr(0,1)&&"("!==f.substr(-1)&&"("===f.trimRight().substr(-1)&&(g=!1,k++,D()),P()):"keyword.operator"!==l.type&&"keyword"!==l.type||!y.match(/^(=|==|===|!=|!==|&&|\|\||and|or|xor|\+=|.=|>|>=|<|<=|=>)$/)?"punctuation.operator"===l.type&&";"===y?(D(),I(),m=!0,_&&O++):"punctuation.operator"===l.type&&y.match(/^(:|,)$/)?(D(),I(),y.match(/^(,)$/)&&S>0&&0===$&&d.lineBreaksAfterCommasInCurlyBlock?O++:(m=!0,p=!1)):"support.php_tag"!==l.type||"?>"!==y||p?i(l,"attribute-name")&&f.substr(-1).match(/^\s$/)?g=!0:i(l,"attribute-equals")?(P(),I()):i(l,"tag-close")?(P(),"/>"===y&&(g=!0)):"keyword"===l.type&&y.match(/^(case|default)$/)&&N&&(C=1):(D(),g=!0):(D(),I(),g=!0,m=!0),p&&(!l.type.match(/^(comment)$/)||y.substr(0,1).match(/^[/#]$/))&&(!l.type.match(/^(string)$/)||y.substr(0,1).match(/^['"@]$/))){if(k=x,b>w)for(k++,s=b;s>w;s--)M[s]=k;else b"===y)&&(O=L&&n&&""===y&&b--),i(l,"tag-name")&&(v=y),r=E}}l=n}f=f.trim(),e.doc.setValue(f)},t.commands=[{name:"beautify",description:"Format selection (Beautify)",exec:function(e){t.beautify(e.session)},bindKey:"Ctrl-Shift-B"}]})),ace.require(["ace/ext/beautify"],(function(t){e&&(e.exports=t)}))},604:(e,t,n)=>{e=n.nmd(e),ace.define("ace/ext/searchbox-css",["require","exports","module"],(function(e,t,n){n.exports='\n\n/* ------------------------------------------------------------------------------------------\n * Editor Search Form\n * --------------------------------------------------------------------------------------- */\n.ace_search {\n background-color: #ddd;\n color: #666;\n border: 1px solid #cbcbcb;\n border-top: 0 none;\n overflow: hidden;\n margin: 0;\n padding: 4px 6px 0 4px;\n position: absolute;\n top: 0;\n z-index: 99;\n white-space: normal;\n}\n.ace_search.left {\n border-left: 0 none;\n border-radius: 0px 0px 5px 0px;\n left: 0;\n}\n.ace_search.right {\n border-radius: 0px 0px 0px 5px;\n border-right: 0 none;\n right: 0;\n}\n\n.ace_search_form, .ace_replace_form {\n margin: 0 20px 4px 0;\n overflow: hidden;\n line-height: 1.9;\n}\n.ace_replace_form {\n margin-right: 0;\n}\n.ace_search_form.ace_nomatch {\n outline: 1px solid red;\n}\n\n.ace_search_field {\n border-radius: 3px 0 0 3px;\n background-color: white;\n color: black;\n border: 1px solid #cbcbcb;\n border-right: 0 none;\n outline: 0;\n padding: 0;\n font-size: inherit;\n margin: 0;\n line-height: inherit;\n padding: 0 6px;\n min-width: 17em;\n vertical-align: top;\n min-height: 1.8em;\n box-sizing: content-box;\n}\n.ace_searchbtn {\n border: 1px solid #cbcbcb;\n line-height: inherit;\n display: inline-block;\n padding: 0 6px;\n background: #fff;\n border-right: 0 none;\n border-left: 1px solid #dcdcdc;\n cursor: pointer;\n margin: 0;\n position: relative;\n color: #666;\n}\n.ace_searchbtn:last-child {\n border-radius: 0 3px 3px 0;\n border-right: 1px solid #cbcbcb;\n}\n.ace_searchbtn:disabled {\n background: none;\n cursor: default;\n}\n.ace_searchbtn:hover {\n background-color: #eef1f6;\n}\n.ace_searchbtn.prev, .ace_searchbtn.next {\n padding: 0px 0.7em\n}\n.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\n content: "";\n border: solid 2px #888;\n width: 0.5em;\n height: 0.5em;\n border-width: 2px 0 0 2px;\n display:inline-block;\n transform: rotate(-45deg);\n}\n.ace_searchbtn.next:after {\n border-width: 0 2px 2px 0 ;\n}\n.ace_searchbtn_close {\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\n border-radius: 50%;\n border: 0 none;\n color: #656565;\n cursor: pointer;\n font: 16px/16px Arial;\n padding: 0;\n height: 14px;\n width: 14px;\n top: 9px;\n right: 7px;\n position: absolute;\n}\n.ace_searchbtn_close:hover {\n background-color: #656565;\n background-position: 50% 100%;\n color: white;\n}\n\n.ace_button {\n margin-left: 2px;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -o-user-select: none;\n -ms-user-select: none;\n user-select: none;\n overflow: hidden;\n opacity: 0.7;\n border: 1px solid rgba(100,100,100,0.23);\n padding: 1px;\n box-sizing: border-box!important;\n color: black;\n}\n\n.ace_button:hover {\n background-color: #eee;\n opacity:1;\n}\n.ace_button:active {\n background-color: #ddd;\n}\n\n.ace_button.checked {\n border-color: #3399ff;\n opacity:1;\n}\n\n.ace_search_options{\n margin-bottom: 3px;\n text-align: right;\n -webkit-user-select: none;\n -moz-user-select: none;\n -o-user-select: none;\n -ms-user-select: none;\n user-select: none;\n clear: both;\n}\n\n.ace_search_counter {\n float: left;\n font-family: arial;\n padding: 0 8px;\n}'})),ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/ext/searchbox-css","ace/keyboard/hash_handler","ace/lib/keys","ace/config"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=e("../lib/lang"),r=e("../lib/event"),s=e("./searchbox-css"),a=e("../keyboard/hash_handler").HashHandler,l=e("../lib/keys"),c=e("../config").nls;o.importCssString(s,"ace_searchbox",!1);var u=function(){function e(e,t,n){var i=o.createElement("div");o.buildDom(["div",{class:"ace_search right"},["span",{action:"hide",class:"ace_searchbtn_close"}],["div",{class:"ace_search_form"},["input",{class:"ace_search_field",placeholder:c("Search for"),spellcheck:"false"}],["span",{action:"findPrev",class:"ace_searchbtn prev"},"​"],["span",{action:"findNext",class:"ace_searchbtn next"},"​"],["span",{action:"findAll",class:"ace_searchbtn",title:"Alt-Enter"},c("All")]],["div",{class:"ace_replace_form"},["input",{class:"ace_search_field",placeholder:c("Replace with"),spellcheck:"false"}],["span",{action:"replaceAndFindNext",class:"ace_searchbtn"},c("Replace")],["span",{action:"replaceAll",class:"ace_searchbtn"},c("All")]],["div",{class:"ace_search_options"},["span",{action:"toggleReplace",class:"ace_button",title:c("Toggle Replace mode"),style:"float:left;margin-top:-2px;padding:0 5px;"},"+"],["span",{class:"ace_search_counter"}],["span",{action:"toggleRegexpMode",class:"ace_button",title:c("RegExp Search")},".*"],["span",{action:"toggleCaseSensitive",class:"ace_button",title:c("CaseSensitive Search")},"Aa"],["span",{action:"toggleWholeWords",class:"ace_button",title:c("Whole Word Search")},"\\b"],["span",{action:"searchInSelection",class:"ace_button",title:c("Search In Selection")},"S"]]],i),this.element=i.firstChild,this.setSession=this.setSession.bind(this),this.$init(),this.setEditor(e),o.importCssString(s,"ace_searchbox",e.container)}return e.prototype.setEditor=function(e){e.searchBox=this,e.renderer.scroller.appendChild(this.element),this.editor=e},e.prototype.setSession=function(e){this.searchRange=null,this.$syncOptions(!0)},e.prototype.$initElements=function(e){this.searchBox=e.querySelector(".ace_search_form"),this.replaceBox=e.querySelector(".ace_replace_form"),this.searchOption=e.querySelector("[action=searchInSelection]"),this.replaceOption=e.querySelector("[action=toggleReplace]"),this.regExpOption=e.querySelector("[action=toggleRegexpMode]"),this.caseSensitiveOption=e.querySelector("[action=toggleCaseSensitive]"),this.wholeWordOption=e.querySelector("[action=toggleWholeWords]"),this.searchInput=this.searchBox.querySelector(".ace_search_field"),this.replaceInput=this.replaceBox.querySelector(".ace_search_field"),this.searchCounter=e.querySelector(".ace_search_counter")},e.prototype.$init=function(){var e=this.element;this.$initElements(e);var t=this;r.addListener(e,"mousedown",(function(e){setTimeout((function(){t.activeInput.focus()}),0),r.stopPropagation(e)})),r.addListener(e,"click",(function(e){var n=(e.target||e.srcElement).getAttribute("action");n&&t[n]?t[n]():t.$searchBarKb.commands[n]&&t.$searchBarKb.commands[n].exec(t),r.stopPropagation(e)})),r.addCommandKeyListener(e,(function(e,n,o){var i=l.keyCodeToString(o),s=t.$searchBarKb.findKeyCommand(n,i);s&&s.exec&&(s.exec(t),r.stopEvent(e))})),this.$onChange=i.delayedCall((function(){t.find(!1,!1)})),r.addListener(this.searchInput,"input",(function(){t.$onChange.schedule(20)})),r.addListener(this.searchInput,"focus",(function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()})),r.addListener(this.replaceInput,"focus",(function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()}))},e.prototype.setSearchRange=function(e){this.searchRange=e,e?this.searchRangeMarker=this.editor.session.addMarker(e,"ace_active-line"):this.searchRangeMarker&&(this.editor.session.removeMarker(this.searchRangeMarker),this.searchRangeMarker=null)},e.prototype.$syncOptions=function(e){o.setCssClass(this.replaceOption,"checked",this.searchRange),o.setCssClass(this.searchOption,"checked",this.searchOption.checked),this.replaceOption.textContent=this.replaceOption.checked?"-":"+",o.setCssClass(this.regExpOption,"checked",this.regExpOption.checked),o.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked),o.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked);var t=this.editor.getReadOnly();this.replaceOption.style.display=t?"none":"",this.replaceBox.style.display=this.replaceOption.checked&&!t?"":"none",this.find(!1,!1,e)},e.prototype.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},e.prototype.find=function(e,t,n){var i=!this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:n,range:this.searchRange})&&this.searchInput.value;o.setCssClass(this.searchBox,"ace_nomatch",i),this.editor._emit("findSearchBox",{match:!i}),this.highlight(),this.updateCounter()},e.prototype.updateCounter=function(){var e=this.editor,t=e.$search.$options.re,n=t.unicode,o=0,r=0;if(t){var s=this.searchRange?e.session.getTextRange(this.searchRange):e.getValue(),a=e.session.doc.positionToIndex(e.selection.anchor);this.searchRange&&(a-=e.session.doc.positionToIndex(this.searchRange.start));for(var l,u=t.lastIndex=0;(l=t.exec(s))&&(o++,(u=l.index)<=a&&r++,!(o>999))&&(l[0]||(t.lastIndex=u+=i.skipEmptyMatch(s,u,n),!(u>=s.length))););}this.searchCounter.textContent=c("$0 of $1",[r,o>999?"999+":o])},e.prototype.findNext=function(){this.find(!0,!1)},e.prototype.findPrev=function(){this.find(!0,!0)},e.prototype.findAll=function(){var e=!this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked})&&this.searchInput.value;o.setCssClass(this.searchBox,"ace_nomatch",e),this.editor._emit("findSearchBox",{match:!e}),this.highlight(),this.hide()},e.prototype.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},e.prototype.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},e.prototype.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},e.prototype.hide=function(){this.active=!1,this.setSearchRange(null),this.editor.off("changeSession",this.setSession),this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},e.prototype.show=function(e,t){this.active=!0,this.editor.on("changeSession",this.setSession),this.element.style.display="",this.replaceOption.checked=t,e&&(this.searchInput.value=e),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb),this.$syncOptions(!0)},e.prototype.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput},e}(),h=new a;h.bindKeys({"Ctrl-f|Command-f":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?"":"none",e.replaceOption.checked=!1,e.$syncOptions(),e.searchInput.focus()},"Ctrl-H|Command-Option-F":function(e){e.editor.getReadOnly()||(e.replaceOption.checked=!0,e.$syncOptions(),e.replaceInput.focus())},"Ctrl-G|Command-G":function(e){e.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(e){e.findPrev()},esc:function(e){setTimeout((function(){e.hide()}))},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},"Shift-Return":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},"Alt-Return":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),h.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}},{name:"toggleReplace",exec:function(e){e.replaceOption.checked=!e.replaceOption.checked,e.$syncOptions()}},{name:"searchInSelection",exec:function(e){e.searchOption.checked=!e.searchRange,e.setSearchRange(e.searchOption.checked&&e.editor.getSelectionRange()),e.$syncOptions()}}]);var d=new a([{bindKey:"Esc",name:"closeSearchBar",exec:function(e){e.searchBox.hide()}}]);u.prototype.$searchBarKb=h,u.prototype.$closeSearchBarKb=d,t.SearchBox=u,t.Search=function(e,t){(e.searchBox||new u(e)).show(e.session.getTextRange(),t)}})),ace.require(["ace/ext/searchbox"],(function(t){e&&(e.exports=t)}))},549:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=(e("../lib/lang"),e("./text_highlight_rules").TextHighlightRules),r=t.supportType="align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index",s=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|flex-end|flex-start|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom",l=t.supportConstantColor="aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen",c=t.supportConstantFonts="arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",u=t.numRe="\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",d=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",p=function(){var e=this.createKeywordMapper({"support.function":s,"support.constant":a,"support.type":r,"support.constant.color":l,"support.constant.fonts":c},"text",!0);this.$rules={start:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"paren.rparen",regex:"\\}"},{token:"string",regex:"@(?!viewport)",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"keyword",regex:"%"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant.numeric",regex:u},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"start"},{token:"paren.rparen",regex:"\\}",next:"start"},{token:"string",regex:";",next:"start"},{token:"keyword",regex:"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)"}],comments:[{token:"comment",regex:"\\/\\*",push:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}]}],ruleset:[{regex:"-(webkit|ms|moz|o)-",token:"text"},{token:"punctuation.operator",regex:"[:;]"},{token:"paren.rparen",regex:"\\}",next:"start"},{include:["strings","url","comments"]},{token:["constant.numeric","keyword"],regex:"("+u+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"},{token:"constant.numeric",regex:u},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:d},{include:"url"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}],url:[{token:"support.function",regex:"(?:url(:?-prefix)?|domain|regexp)\\(",push:[{token:"support.function",regex:"\\)",next:"pop"},{defaultToken:"string"}]}],strings:[{token:"string.start",regex:"'",push:[{token:"string.end",regex:"'|$",next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]},{token:"string.start",regex:'"',push:[{token:"string.end",regex:'"|$',next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]}],escapes:[{token:"constant.language.escape",regex:/\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/}]},this.normalizeRules()};o.inherits(p,i),t.CssHighlightRules=p})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/css_completions",["require","exports","module"],(function(e,t,n){"use strict";var o={background:{"#$0":1},"background-color":{"#$0":1,transparent:1,fixed:1},"background-image":{"url('/$0')":1},"background-repeat":{repeat:1,"repeat-x":1,"repeat-y":1,"no-repeat":1,inherit:1},"background-position":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},"background-attachment":{scroll:1,fixed:1},"background-size":{cover:1,contain:1},"background-clip":{"border-box":1,"padding-box":1,"content-box":1},"background-origin":{"border-box":1,"padding-box":1,"content-box":1},border:{"solid $0":1,"dashed $0":1,"dotted $0":1,"#$0":1},"border-color":{"#$0":1},"border-style":{solid:2,dashed:2,dotted:2,double:2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},"border-collapse":{collapse:1,separate:1},bottom:{px:1,em:1,"%":1},clear:{left:1,right:1,both:1,none:1},color:{"#$0":1,"rgb(#$00,0,0)":1},cursor:{default:1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,"n-resize":1,"ne-resize":1,"e-resize":1,"se-resize":1,"s-resize":1,"sw-resize":1,"w-resize":1,"nw-resize":1},display:{none:1,block:1,inline:1,"inline-block":1,"table-cell":1},"empty-cells":{show:1,hide:1},float:{left:1,right:1,none:1},"font-family":{Arial:2,"Comic Sans MS":2,Consolas:2,"Courier New":2,Courier:2,Georgia:2,Monospace:2,"Sans-Serif":2,"Segoe UI":2,Tahoma:2,"Times New Roman":2,"Trebuchet MS":2,Verdana:1},"font-size":{px:1,em:1,"%":1},"font-weight":{bold:1,normal:1},"font-style":{italic:1,normal:1},"font-variant":{normal:1,"small-caps":1},height:{px:1,em:1,"%":1},left:{px:1,em:1,"%":1},"letter-spacing":{normal:1},"line-height":{normal:1},"list-style-type":{none:1,disc:1,circle:1,square:1,decimal:1,"decimal-leading-zero":1,"lower-roman":1,"upper-roman":1,"lower-greek":1,"lower-latin":1,"upper-latin":1,georgian:1,"lower-alpha":1,"upper-alpha":1},margin:{px:1,em:1,"%":1},"margin-right":{px:1,em:1,"%":1},"margin-left":{px:1,em:1,"%":1},"margin-top":{px:1,em:1,"%":1},"margin-bottom":{px:1,em:1,"%":1},"max-height":{px:1,em:1,"%":1},"max-width":{px:1,em:1,"%":1},"min-height":{px:1,em:1,"%":1},"min-width":{px:1,em:1,"%":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},"overflow-x":{hidden:1,visible:1,auto:1,scroll:1},"overflow-y":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,"%":1},"padding-top":{px:1,em:1,"%":1},"padding-right":{px:1,em:1,"%":1},"padding-bottom":{px:1,em:1,"%":1},"padding-left":{px:1,em:1,"%":1},"page-break-after":{auto:1,always:1,avoid:1,left:1,right:1},"page-break-before":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,static:1},right:{px:1,em:1,"%":1},"table-layout":{fixed:1,auto:1},"text-decoration":{none:1,underline:1,"line-through":1,blink:1},"text-align":{left:1,right:1,center:1,justify:1},"text-transform":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,"%":1},"vertical-align":{top:1,bottom:1},visibility:{hidden:1,visible:1},"white-space":{nowrap:1,normal:1,pre:1,"pre-line":1,"pre-wrap":1},width:{px:1,em:1,"%":1},"word-spacing":{normal:1},filter:{"alpha(opacity=$0100)":1},"text-shadow":{"$02px 2px 2px #777":1},"text-overflow":{"ellipsis-word":1,clip:1,ellipsis:1},"-moz-border-radius":1,"-moz-border-radius-topright":1,"-moz-border-radius-bottomright":1,"-moz-border-radius-topleft":1,"-moz-border-radius-bottomleft":1,"-webkit-border-radius":1,"-webkit-border-top-right-radius":1,"-webkit-border-top-left-radius":1,"-webkit-border-bottom-right-radius":1,"-webkit-border-bottom-left-radius":1,"-moz-box-shadow":1,"-webkit-box-shadow":1,transform:{"rotate($00deg)":1,"skew($00deg)":1},"-moz-transform":{"rotate($00deg)":1,"skew($00deg)":1},"-webkit-transform":{"rotate($00deg)":1,"skew($00deg)":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement("c").style;for(var t in e)if("string"==typeof e[t]){var n=t.replace(/[A-Z]/g,(function(e){return"-"+e.toLowerCase()}));o.hasOwnProperty(n)||(o[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,o){if(this.completionsDefined||this.defineCompletions(),"ruleset"===e||"ace/mode/scss"==t.$mode.$id){var i=t.getLine(n.row).substr(0,n.column),r=/\([^)]*$/.test(i);return r&&(i=i.substr(i.lastIndexOf("(")+1)),/:[^;]+$/.test(i)?(/([\w\-]+):[^:]*$/.test(i),this.getPropertyValueCompletions(e,t,n,o)):this.getPropertyCompletions(e,t,n,o,r)}return[]},this.getPropertyCompletions=function(e,t,n,i,r){return r=r||!1,Object.keys(o).map((function(e){return{caption:e,snippet:e+": $0"+(r?"":";"),meta:"property",score:1e6}}))},this.getPropertyValueCompletions=function(e,t,n,i){var r=t.getLine(n.row).substr(0,n.column),s=(/([\w\-]+):[^:]*$/.exec(r)||{})[1];if(!s)return[];var a=[];return s in o&&"object"==typeof o[s]&&(a=Object.keys(o[s])),a.map((function(e){return{caption:e,snippet:e,meta:"property value",score:1e6}}))}}).call(i.prototype),t.CssCompletions=i})),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=(e("../behaviour").Behaviour,e("./cstyle").CstyleBehaviour),r=e("../../token_iterator").TokenIterator,s=function(){this.inherit(i),this.add("colon","insertion",(function(e,t,n,o,i){if(":"===i&&n.selection.isEmpty()){var s=n.getCursorPosition(),a=new r(o,s.row,s.column),l=a.getCurrentToken();if(l&&l.value.match(/\s+/)&&(l=a.stepBackward()),l&&"support.type"===l.type){var c=o.doc.getLine(s.row);if(":"===c.substring(s.column,s.column+1))return{text:"",selection:[1,1]};if(/^(\s+[^;]|\s*$)/.test(c.substring(s.column)))return{text:":;",selection:[1,1]}}}})),this.add("colon","deletion",(function(e,t,n,o,i){var s=o.doc.getTextRange(i);if(!i.isMultiLine()&&":"===s){var a=n.getCursorPosition(),l=new r(o,a.row,a.column),c=l.getCurrentToken();if(c&&c.value.match(/\s+/)&&(c=l.stepBackward()),c&&"support.type"===c.type&&";"===o.doc.getLine(i.start.row).substring(i.end.column,i.end.column+1))return i.end.column++,i}})),this.add("semicolon","insertion",(function(e,t,n,o,i){if(";"===i&&n.selection.isEmpty()){var r=n.getCursorPosition();if(";"===o.doc.getLine(r.row).substring(r.column,r.column+1))return{text:"",selection:[1,1]}}})),this.add("!important","insertion",(function(e,t,n,o,i){if("!"===i&&n.selection.isEmpty()){var r=n.getCursorPosition(),s=o.doc.getLine(r.row);if(/^\s*(;|}|$)/.test(s.substring(r.column)))return{text:"!important",selection:[10,10]}}}))};o.inherits(s,i),t.CssBehaviour=s})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./css_highlight_rules").CssHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../worker/worker_client").WorkerClient,l=e("./css_completions").CssCompletions,c=e("./behaviour/css").CssBehaviour,u=e("./folding/cstyle").FoldMode,h=function(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=new c,this.$completer=new l,this.foldingRules=new u};o.inherits(h,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;return i.length&&"comment"==i[i.length-1].type||t.match(/^.*\{\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,o){return this.$completer.getCompletions(e,t,n,o)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/css",this.snippetFileId="ace/snippets/css"}.call(h.prototype),t.Mode=h})),ace.require(["ace/mode/css"],(function(t){e&&(e.exports=t)}))},576:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},r.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};o.inherits(r,i),r.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},r.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},r.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=r})),ace.define("ace/mode/golang_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],(function(e,t,n){var o=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,r=e("./text_highlight_rules").TextHighlightRules,s=function(){var e=this.createKeywordMapper({keyword:"else|break|case|return|goto|if|const|select|continue|struct|default|switch|for|range|func|import|package|chan|defer|fallthrough|go|interface|map|range|select|type|var","constant.language":"nil|true|false|iota","support.function":"new|close|cap|copy|panic|panicln|print|println|len|make|delete|real|recover|imag|append","support.type":"string|uint8|uint16|uint32|uint64|int8|int16|int32|int64|float32|float64|complex64|complex128|byte|rune|uint|int|uintptr|bool|error"},""),t="\\\\(?:[0-7]{3}|x\\h{2}|u{4}|U\\h{6}|[abfnrtv'\"\\\\])".replace(/\\h/g,"[a-fA-F\\d]");this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},i.getStartRule("doc-start"),{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"string",regex:/"(?:[^"\\]|\\.)*?"/},{token:"string",regex:"`",next:"bqstring"},{token:"constant.numeric",regex:"'(?:[^\\'\ud800-\udbff]|[\ud800-\udbff][\udc00-\udfff]|"+t.replace('"',"")+")'"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:["keyword","text","entity.name.function"],regex:"(func)(\\s+)([a-zA-Z_$][a-zA-Z0-9_$]*)\\b"},{token:function(t){return"("==t[t.length-1]?[{type:e(t.slice(0,-1))||"support.function",value:t.slice(0,-1)},{type:"paren.lparen",value:t.slice(-1)}]:e(t)||"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b\\(?"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^="},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}],bqstring:[{token:"string",regex:"`",next:"start"},{defaultToken:"string"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};o.inherits(s,r),t.GolangHighlightRules=s})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/golang",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/golang_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle"],(function(e,t,n){var o=e("../lib/oop"),i=e("./text").Mode,r=e("./golang_highlight_rules").GolangHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=r,this.$outdent=new s,this.foldingRules=new a,this.$behaviour=this.$defaultBehaviour};o.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),r=i.tokens;return i.state,r.length&&"comment"==r[r.length-1].type||"start"==e&&t.match(/^.*[\{\(\[]\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/golang"}.call(l.prototype),t.Mode=l})),ace.require(["ace/mode/golang"],(function(t){e&&(e.exports=t)}))},395:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/jsdoc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:["comment.doc.tag","comment.doc.text","lparen.doc"],regex:"(@(?:param|member|typedef|property|namespace|var|const|callback))(\\s*)({)",push:[{token:"lparen.doc",regex:"{",push:[{include:"doc-syntax"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"}]},{token:["rparen.doc","text.doc","variable.parameter.doc","lparen.doc","variable.parameter.doc","rparen.doc"],regex:/(})(\s*)(?:([\w=:\/\.]+)|(?:(\[)([\w=:\/\.]+)(\])))/,next:"pop"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"},{include:"doc-syntax"},{defaultToken:"text.doc"}]},{token:["comment.doc.tag","text.doc","lparen.doc"],regex:"(@(?:returns?|yields|type|this|suppress|public|protected|private|package|modifies|implements|external|exception|throws|enum|define|extends))(\\s*)({)",push:[{token:"lparen.doc",regex:"{",push:[{include:"doc-syntax"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"}]},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"},{include:"doc-syntax"},{defaultToken:"text.doc"}]},{token:["comment.doc.tag","text.doc","variable.parameter.doc"],regex:'(@(?:alias|memberof|instance|module|name|lends|namespace|external|this|template|requires|param|implements|function|extends|typedef|mixes|constructor|var|memberof\\!|event|listens|exports|class|constructs|interface|emits|fires|throws|const|callback|borrows|augments))(\\s+)(\\w[\\w#.:/~"\\-]*)?'},{token:["comment.doc.tag","text.doc","variable.parameter.doc"],regex:"(@method)(\\s+)(\\w[\\w.\\(\\)]*)"},{token:"comment.doc.tag",regex:"@access\\s+(?:private|public|protected)"},{token:"comment.doc.tag",regex:"@kind\\s+(?:class|constant|event|external|file|function|member|mixin|module|namespace|typedef)"},{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},r.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}],"doc-syntax":[{token:"operator.doc",regex:/[|:]/},{token:"paren.doc",regex:/[\[\]]/}]},this.normalizeRules()};o.inherits(r,i),r.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},r.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},r.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.JsDocCommentHighlightRules=r})),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/jsdoc_comment_highlight_rules","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./jsdoc_comment_highlight_rules").JsDocCommentHighlightRules,r=e("./text_highlight_rules").TextHighlightRules,s="[a-zA-Z\\$_¡-￿][a-zA-Z\\d\\$_¡-￿]*",a=function(e){var t=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static|constructor","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},"identifier"),n="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)";this.$rules={no_regex:[i.getStartRule("doc-start"),c("no_regex"),{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+s+")(\\.)(prototype)(\\.)("+s+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+s+")(\\.)("+s+")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+s+")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+s+")(\\.)("+s+")(\\s*)(=)(\\s*)(function\\*?)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function\\*?)(\\s+)("+s+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+s+")(\\s*)(:)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:"keyword",regex:"from(?=\\s*('|\"))"},{token:"keyword",regex:"(?:case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void)\\b",next:"start"},{token:"support.constant",regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:s},{token:"punctuation.operator",regex:/[.](?![.])/,next:"property"},{token:"storage.type",regex:/=>/,next:"start"},{token:"keyword.operator",regex:/--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],property:[{token:"text",regex:"\\s+"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+s+")(\\.)("+s+")(\\s*)(=)(\\s*)(function\\*?)(?:(\\s+)(\\w+))?(\\s*)(\\()",next:"function_arguments"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"support.function",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|lter|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward|rEach)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:"support.function.dom",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:"support.constant",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:"identifier",regex:s},{regex:"",token:"empty",next:"no_regex"}],start:[i.getStartRule("doc-start"),c("start"),{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+|^$",next:"start"},{token:"empty",regex:"",next:"no_regex"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/[sxngimy]*",next:"no_regex"},{token:"invalid",regex:/\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/},{token:"constant.language.delimiter",regex:/\|/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp"}],regex_character_class:[{token:"regexp.charclass.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp.charachterclass"}],default_parameter:[{token:"string",regex:"'(?=.)",push:[{token:"string",regex:"'|$",next:"pop"},{include:"qstring"}]},{token:"string",regex:'"(?=.)',push:[{token:"string",regex:'"|$',next:"pop"},{include:"qqstring"}]},{token:"constant.language",regex:"null|Infinity|NaN|undefined"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:"punctuation.operator",regex:",",next:"function_arguments"},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],function_arguments:[c("function_arguments"),{token:"variable.parameter",regex:s},{token:"punctuation.operator",regex:","},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],qqstring:[{token:"constant.language.escape",regex:n},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:n},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},e&&e.noES6||(this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){if(this.next="{"==e?this.nextState:"","{"==e&&n.length)n.unshift("start",t);else if("}"==e&&n.length&&(n.shift(),this.next=n.shift(),-1!=this.next.indexOf("string")||-1!=this.next.indexOf("jsx")))return"paren.quasi.end";return"{"==e?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:n},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]},{token:["variable.parameter","text"],regex:"("+s+")(\\s*)(?=\\=>)"},{token:"paren.lparen",regex:"(\\()(?=.+\\s*=>)",next:"function_arguments"},{token:"variable.language",regex:"(?:(?:(?:Weak)?(?:Set|Map))|Promise)\\b"}),this.$rules.function_arguments.unshift({token:"keyword.operator",regex:"=",next:"default_parameter"},{token:"keyword.operator",regex:"\\.{3}"}),this.$rules.property.unshift({token:"support.function",regex:"(findIndex|repeat|startsWith|endsWith|includes|isSafeInteger|trunc|cbrt|log2|log10|sign|then|catch|finally|resolve|reject|race|any|all|allSettled|keys|entries|isInteger)\\b(?=\\()"},{token:"constant.language",regex:"(?:MAX_SAFE_INTEGER|MIN_SAFE_INTEGER|EPSILON)\\b"}),e&&0==e.jsx||l.call(this)),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};function l(){var e=s.replace("\\d","\\d\\-"),t={onMatch:function(e,t,n){var o="/"==e.charAt(1)?2:1;return 1==o?(t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++):2==o&&t==this.nextState&&(n[1]--,(!n[1]||n[1]<0)&&(n.shift(),n.shift())),[{type:"meta.tag.punctuation."+(1==o?"":"end-")+"tag-open.xml",value:e.slice(0,o)},{type:"meta.tag.tag-name.xml",value:e.substr(o)}]},regex:"",onMatch:function(e,t,n){return t==n[0]&&n.shift(),2==e.length&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||"start",[{type:this.token,value:e}]},nextState:"jsx"},n,c("jsxAttributes"),{token:"entity.other.attribute-name.xml",regex:e},{token:"keyword.operator.attribute-equals.xml",regex:"="},{token:"text.tag-whitespace.xml",regex:"\\s+"},{token:"string.attribute-value.xml",regex:"'",stateName:"jsx_attr_q",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',stateName:"jsx_attr_qq",push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},t],this.$rules.reference=[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}]}function c(e){return[{token:"comment",regex:/\/\*/,next:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]},{token:"comment",regex:"\\/\\/",next:[i.getTagRule(),{token:"comment",regex:"$|^",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]}]}o.inherits(a,r),t.JavaScriptHighlightRules=a})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./javascript_highlight_rules").JavaScriptHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../worker/worker_client").WorkerClient,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,u=function(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=new l,this.foldingRules=new c};o.inherits(u,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$quotes={'"':'"',"'":"'","`":"`"},this.$pairQuotesAfter={"`":/\w/},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),r=i.tokens,s=i.state;if(r.length&&"comment"==r[r.length-1].type)return o;if("start"==e||"no_regex"==e)(a=t.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/))&&(o+=n);else if("doc-start"==e){if("start"==s||"no_regex"==s)return"";var a;(a=t.match(/^\s*(\/?)\*/))&&(a[1]&&(o+=" "),o+="* ")}return o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/javascript",this.snippetFileId="ace/snippets/javascript"}.call(u.prototype),t.Mode=u})),ace.require(["ace/mode/javascript"],(function(t){e&&(e.exports=t)}))},252:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"punctuation.operator",regex:/[,]/},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};o.inherits(r,i),t.JsonHighlightRules=r})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle","ace/worker/worker_client"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./json_highlight_rules").JsonHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./folding/cstyle").FoldMode,l=e("../worker/worker_client").WorkerClient,c=function(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new a};o.inherits(c,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t);return"start"==e&&t.match(/^.*[\{\(\[]\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new l(["ace"],"ace/mode/json_worker","JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/json"}.call(c.prototype),t.Mode=c})),ace.require(["ace/mode/json"],(function(t){e&&(e.exports=t)}))},711:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},r.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};o.inherits(r,i),r.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},r.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},r.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=r})),ace.define("ace/mode/jsx_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],(function(e,t,n){var o=e("../lib/oop"),i=e("../lib/lang"),r=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,a=function(){var e=i.arrayToMap("break|do|instanceof|typeof|case|else|new|var|catch|finally|return|void|continue|for|switch|default|while|function|this|if|throw|delete|in|try|class|extends|super|import|from|into|implements|interface|static|mixin|override|abstract|final|number|int|string|boolean|variant|log|assert".split("|")),t=i.arrayToMap("null|true|false|NaN|Infinity|__FILE__|__LINE__|undefined".split("|")),n=i.arrayToMap("debugger|with|const|export|let|private|public|yield|protected|extern|native|as|operator|__fake__|__readonly__".split("|")),o="[a-zA-Z_][a-zA-Z0-9_]*\\b";this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},r.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:["storage.type","text","entity.name.function"],regex:"(function)(\\s+)("+o+")"},{token:function(o){return"this"==o?"variable.language":"function"==o?"storage.type":e.hasOwnProperty(o)||n.hasOwnProperty(o)?"keyword":t.hasOwnProperty(o)?"constant.language":/^_?[A-Z][a-zA-Z0-9_]*$/.test(o)?"language.support.class":"identifier"},regex:o},{token:"keyword.operator",regex:"!|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({<]"},{token:"paren.rparen",regex:"[\\])}>]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]},this.embedRules(r,"doc-",[r.getEndRule("start")])};o.inherits(a,s),t.JsxHighlightRules=a})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/jsx",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/jsx_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./jsx_highlight_rules").JsxHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./folding/cstyle").FoldMode;function l(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new a}o.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;return i.length&&"comment"==i[i.length-1].type||"start"==e&&t.match(/^.*[\{\(\[]\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/jsx"}.call(l.prototype),t.Mode=l})),ace.require(["ace/mode/jsx"],(function(t){e&&(e.exports=t)}))},7:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/python_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){var e=this.createKeywordMapper({"invalid.deprecated":"debugger","support.function":"abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|binfile|bin|iter|property|tuple|bool|filter|len|range|type|bytearray|float|list|raw_input|unichr|callable|format|locals|reduce|unicode|chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|__import__|complex|hash|min|apply|delattr|help|next|setattr|set|buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern|ascii|breakpoint|bytes","variable.language":"self|cls","constant.language":"True|False|None|NotImplemented|Ellipsis|__debug__",keyword:"and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield|async|await|nonlocal"},"identifier"),t="[uU]?",n="[rR]",o="[fF]",i="(?:[rR][fF]|[fF][rR])",r="(?:(?:(?:[1-9]\\d*)|(?:0))|(?:0[oO]?[0-7]+)|(?:0[xX][\\dA-Fa-f]+)|(?:0[bB][01]+))",s="(?:\\d+)",a="(?:(?:"+s+"?(?:\\.\\d+))|(?:"+s+"\\.))",l="(?:(?:(?:"+a+"|"+s+")(?:[eE][+-]?\\d+))|"+a+")",c="\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\abfnrtv'\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})";this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string",regex:t+'"{3}',next:"qqstring3"},{token:"string",regex:t+'"(?=.)',next:"qqstring"},{token:"string",regex:t+"'{3}",next:"qstring3"},{token:"string",regex:t+"'(?=.)",next:"qstring"},{token:"string",regex:n+'"{3}',next:"rawqqstring3"},{token:"string",regex:n+'"(?=.)',next:"rawqqstring"},{token:"string",regex:n+"'{3}",next:"rawqstring3"},{token:"string",regex:n+"'(?=.)",next:"rawqstring"},{token:"string",regex:o+'"{3}',next:"fqqstring3"},{token:"string",regex:o+'"(?=.)',next:"fqqstring"},{token:"string",regex:o+"'{3}",next:"fqstring3"},{token:"string",regex:o+"'(?=.)",next:"fqstring"},{token:"string",regex:i+'"{3}',next:"rfqqstring3"},{token:"string",regex:i+'"(?=.)',next:"rfqqstring"},{token:"string",regex:i+"'{3}",next:"rfqstring3"},{token:"string",regex:i+"'(?=.)",next:"rfqstring"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|%|@|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"punctuation",regex:",|:|;|\\->|\\+=|\\-=|\\*=|\\/=|\\/\\/=|%=|@=|&=|\\|=|^=|>>=|<<=|\\*\\*="},{token:"paren.lparen",regex:"[\\[\\(\\{]"},{token:"paren.rparen",regex:"[\\]\\)\\}]"},{token:["keyword","text","entity.name.function"],regex:"(def|class)(\\s+)([\\u00BF-\\u1FFF\\u2C00-\\uD7FF\\w]+)"},{token:"text",regex:"\\s+"},{include:"constants"}],qqstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:'"{3}',next:"start"},{defaultToken:"string"}],qstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:"'{3}",next:"start"},{defaultToken:"string"}],qqstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"start"},{defaultToken:"string"}],rawqqstring3:[{token:"string",regex:'"{3}',next:"start"},{defaultToken:"string"}],rawqstring3:[{token:"string",regex:"'{3}",next:"start"},{defaultToken:"string"}],rawqqstring:[{token:"string",regex:"\\\\$",next:"rawqqstring"},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],rawqstring:[{token:"string",regex:"\\\\$",next:"rawqstring"},{token:"string",regex:"'|$",next:"start"},{defaultToken:"string"}],fqqstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:'"{3}',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:"'{3}",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqqstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"\\\\$",next:"fqqstring"},{token:"string",regex:'"|$',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"'|$",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqqstring3:[{token:"string",regex:'"{3}',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqstring3:[{token:"string",regex:"'{3}",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqqstring:[{token:"string",regex:"\\\\$",next:"rfqqstring"},{token:"string",regex:'"|$',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqstring:[{token:"string",regex:"'|$",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqstringParRules:[{token:"paren.lparen",regex:"[\\[\\(]"},{token:"paren.rparen",regex:"[\\]\\)]"},{token:"string",regex:"\\s+"},{token:"string",regex:"'[^']*'"},{token:"string",regex:'"[^"]*"'},{token:"function.support",regex:"(!s|!r|!a)"},{include:"constants"},{token:"paren.rparen",regex:"}",next:"pop"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"}],constants:[{token:"constant.numeric",regex:"(?:"+l+"|\\d+)[jJ]\\b"},{token:"constant.numeric",regex:l},{token:"constant.numeric",regex:r+"[lL]\\b"},{token:"constant.numeric",regex:r+"\\b"},{token:["punctuation","function.support"],regex:"(\\.)([a-zA-Z_]+)\\b"},{token:e,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"}]},this.normalizeRules()};o.inherits(r,i),t.PythonHighlightRules=r})),ace.define("ace/mode/folding/pythonic",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("./fold_mode").FoldMode,r=t.FoldMode=function(e){this.foldingStartMarker=new RegExp("([\\[{])(?:\\s*)$|("+e+")(?:\\s*)(?:#.*)?$")};o.inherits(r,i),function(){this.getFoldWidgetRange=function(e,t,n){var o=e.getLine(n).match(this.foldingStartMarker);if(o)return o[1]?this.openingBracketBlock(e,o[1],n,o.index):o[2]?this.indentationBlock(e,n,o.index+o[2].length):this.indentationBlock(e,n)}}.call(r.prototype)})),ace.define("ace/mode/python",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/python_highlight_rules","ace/mode/folding/pythonic","ace/range"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./python_highlight_rules").PythonHighlightRules,s=e("./folding/pythonic").FoldMode,a=e("../range").Range,l=function(){this.HighlightRules=r,this.foldingRules=new s("\\:"),this.$behaviour=this.$defaultBehaviour};o.inherits(l,i),function(){this.lineCommentStart="#",this.$pairQuotesAfter={"'":/[ruf]/i,'"':/[ruf]/i},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;return i.length&&"comment"==i[i.length-1].type||"start"==e&&t.match(/^.*[\{\(\[:]\s*$/)&&(o+=n),o};var e={pass:1,return:1,raise:1,break:1,continue:1};this.checkOutdent=function(t,n,o){if("\r\n"!==o&&"\r"!==o&&"\n"!==o)return!1;var i=this.getTokenizer().getLineTokens(n.trim(),t).tokens;if(!i)return!1;do{var r=i.pop()}while(r&&("comment"==r.type||"text"==r.type&&r.value.match(/^\s+$/)));return!!r&&"keyword"==r.type&&e[r.value]},this.autoOutdent=function(e,t,n){n+=1;var o=this.$getIndent(t.getLine(n)),i=t.getTabString();o.slice(-i.length)==i&&t.remove(new a(n,o.length-i.length,n,o.length))},this.$id="ace/mode/python",this.snippetFileId="ace/snippets/python"}.call(l.prototype),t.Mode=l})),ace.require(["ace/mode/python"],(function(t){e&&(e.exports=t)}))},202:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(e){var t="[_:a-zA-ZÀ-￿][-_:.a-zA-Z0-9À-￿]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.start.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"",next:"start"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.end.xml",regex:"--\x3e",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:t},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===r&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),o.inherits(r,i),t.XmlHighlightRules=r})),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../behaviour").Behaviour,r=e("../../token_iterator").TokenIterator;function s(e,t){return e&&e.type.lastIndexOf(t+".xml")>-1}e("../../lib/lang");var a=function(){this.add("string_dquotes","insertion",(function(e,t,n,o,i){if('"'==i||"'"==i){var a=i,l=o.doc.getTextRange(n.getSelectionRange());if(""!==l&&"'"!==l&&'"'!=l&&n.getWrapBehavioursEnabled())return{text:a+l+a,selection:!1};var c=n.getCursorPosition(),u=o.doc.getLine(c.row).substring(c.column,c.column+1),h=new r(o,c.row,c.column),d=h.getCurrentToken();if(u==a&&(s(d,"attribute-value")||s(d,"string")))return{text:"",selection:[1,1]};if(d||(d=h.stepBackward()),!d)return;for(;s(d,"tag-whitespace")||s(d,"whitespace");)d=h.stepBackward();var p=!u||u.match(/\s/);if(s(d,"attribute-equals")&&(p||">"==u)||s(d,"decl-attribute-equals")&&(p||"?"==u))return{text:a+a,selection:[1,1]}}})),this.add("string_dquotes","deletion",(function(e,t,n,o,i){var r=o.doc.getTextRange(i);if(!i.isMultiLine()&&('"'==r||"'"==r)&&o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)==r)return i.end.column++,i})),this.add("autoclosing","insertion",(function(e,t,n,o,i){if(">"==i){var a=n.getSelectionRange().start,l=new r(o,a.row,a.column),c=l.getCurrentToken()||l.stepBackward();if(!c||!(s(c,"tag-name")||s(c,"tag-whitespace")||s(c,"attribute-name")||s(c,"attribute-equals")||s(c,"attribute-value")))return;if(s(c,"reference.attribute-value"))return;if(s(c,"attribute-value")){var u=l.getCurrentTokenColumn()+c.value.length;if(a.column/.test(o.getLine(a.row).slice(a.column)))return;for(;!s(c,"tag-name");)if("<"==(c=l.stepBackward()).value){c=l.stepForward();break}var d=l.getCurrentTokenRow(),p=l.getCurrentTokenColumn();if(s(l.stepBackward(),"end-tag-open"))return;var g=c.value;if(d==a.row&&(g=g.substring(0,a.column-p)),this.voidElements.hasOwnProperty(g.toLowerCase()))return;return{text:">",selection:[1,1]}}})),this.add("autoindent","insertion",(function(e,t,n,o,i){if("\n"==i){var s=n.getCursorPosition(),a=o.getLine(s.row),l=new r(o,s.row,s.column),c=l.getCurrentToken();if(c&&-1!==c.type.indexOf("tag-close")){if("/>"==c.value)return;for(;c&&-1===c.type.indexOf("tag-name");)c=l.stepBackward();if(!c)return;var u=c.value,h=l.getCurrentTokenRow();if(!(c=l.stepBackward())||-1!==c.type.indexOf("end-tag"))return;if(this.voidElements&&!this.voidElements[u]){var d=o.getTokenAt(s.row,s.column+1),p=(a=o.getLine(h),this.$getIndent(a)),g=p+o.getTabString();return d&&"-1}(function(){this.getFoldWidget=function(e,t,n){var o=this._getFirstTagInLine(e,n);return o?o.closing||!o.tagName&&o.selfClosing?"markbeginend"===t?"end":"":!o.tagName||o.selfClosing||this.voidElements.hasOwnProperty(o.tagName.toLowerCase())||this._findEndTagInLine(e,n,o.tagName,o.end.column)?"":"start":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/"==r.value;break}return o}if(l(r,"tag-close"))return o.selfClosing="/>"==r.value,o;o.start.column+=r.value.length}return null},this._findEndTagInLine=function(e,t,n,o){for(var i=e.getTokens(t),r=0,s=0;s{e=n.nmd(e),ace.define("ace/theme/github-css",["require","exports","module"],(function(e,t,n){n.exports='/* CSS style content from github\'s default pygments highlighter template.\n Cursor and selection styles from textmate.css. */\n.ace-github .ace_gutter {\n background: #e8e8e8;\n color: #AAA;\n}\n\n.ace-github {\n background: #fff;\n color: #000;\n}\n\n.ace-github .ace_keyword {\n font-weight: bold;\n}\n\n.ace-github .ace_string {\n color: #D14;\n}\n\n.ace-github .ace_variable.ace_class {\n color: teal;\n}\n\n.ace-github .ace_constant.ace_numeric {\n color: #099;\n}\n\n.ace-github .ace_constant.ace_buildin {\n color: #0086B3;\n}\n\n.ace-github .ace_support.ace_function {\n color: #0086B3;\n}\n\n.ace-github .ace_comment {\n color: #998;\n font-style: italic;\n}\n\n.ace-github .ace_variable.ace_language {\n color: #0086B3;\n}\n\n.ace-github .ace_paren {\n font-weight: bold;\n}\n\n.ace-github .ace_boolean {\n font-weight: bold;\n}\n\n.ace-github .ace_string.ace_regexp {\n color: #009926;\n font-weight: normal;\n}\n\n.ace-github .ace_variable.ace_instance {\n color: teal;\n}\n\n.ace-github .ace_constant.ace_language {\n font-weight: bold;\n}\n\n.ace-github .ace_cursor {\n color: black;\n}\n\n.ace-github.ace_focus .ace_marker-layer .ace_active-line {\n background: rgb(255, 255, 204);\n}\n.ace-github .ace_marker-layer .ace_active-line {\n background: rgb(245, 245, 245);\n}\n\n.ace-github .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-github.ace_multiselect .ace_selection.ace_start {\n box-shadow: 0 0 3px 0px white;\n}\n/* bold keywords cause cursor issues for some fonts */\n/* this disables bold style for editor and keeps for static highlighter */\n.ace-github.ace_nobold .ace_line > span {\n font-weight: normal !important;\n}\n\n.ace-github .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-github .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-github .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-github .ace_gutter-active-line {\n background-color : rgba(0, 0, 0, 0.07);\n}\n\n.ace-github .ace_marker-layer .ace_selected-word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-github .ace_invisible {\n color: #BFBFBF\n}\n\n.ace-github .ace_print-margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-github .ace_indent-guide {\n background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;\n}\n\n.ace-github .ace_indent-guide-active {\n background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC") right repeat-y;\n}\n'})),ace.define("ace/theme/github",["require","exports","module","ace/theme/github-css","ace/lib/dom"],(function(e,t,n){t.isDark=!1,t.cssClass="ace-github",t.cssText=e("./github-css"),e("../lib/dom").importCssString(t.cssText,t.cssClass,!1)})),ace.require(["ace/theme/github"],(function(t){e&&(e.exports=t)}))},745:(e,t,n)=>{"use strict";var o=n(137);t.s=o.createRoot,o.hydrateRoot},590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,o="function"==typeof Set,i="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function r(e,s){if(e===s)return!0;if(e&&s&&"object"==typeof e&&"object"==typeof s){if(e.constructor!==s.constructor)return!1;var a,l,c,u;if(Array.isArray(e)){if((a=e.length)!=s.length)return!1;for(l=a;0!=l--;)if(!r(e[l],s[l]))return!1;return!0}if(n&&e instanceof Map&&s instanceof Map){if(e.size!==s.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!s.has(l.value[0]))return!1;for(u=e.entries();!(l=u.next()).done;)if(!r(l.value[1],s.get(l.value[0])))return!1;return!0}if(o&&e instanceof Set&&s instanceof Set){if(e.size!==s.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!s.has(l.value[0]))return!1;return!0}if(i&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(s)){if((a=e.length)!=s.length)return!1;for(l=a;0!=l--;)if(e[l]!==s[l])return!1;return!0}if(e.constructor===RegExp)return e.source===s.source&&e.flags===s.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof s.valueOf)return e.valueOf()===s.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof s.toString)return e.toString()===s.toString();if((a=(c=Object.keys(e)).length)!==Object.keys(s).length)return!1;for(l=a;0!=l--;)if(!Object.prototype.hasOwnProperty.call(s,c[l]))return!1;if(t&&e instanceof Element)return!1;for(l=a;0!=l--;)if(("_owner"!==c[l]&&"__v"!==c[l]&&"__o"!==c[l]||!e.$$typeof)&&!r(e[c[l]],s[c[l]]))return!1;return!0}return e!=e&&s!=s}e.exports=function(e,t){try{return r(e,t)}catch(e){if((e.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw e}}},137:e=>{"use strict";e.exports=require("react-dom")}},t={};function n(o){var i=t[o];if(void 0!==i)return i.exports;var r=t[o]={id:o,loaded:!1,exports:{}};return e[o](r,r.exports,n),r.loaded=!0,r.exports}n.amdD=function(){throw new Error("define cannot be used indirect")},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n.p="";var o={};(()=>{"use strict";n.r(o),n.d(o,{Accordion:()=>D,Button:()=>U,ButtonGroup:()=>K,Card:()=>he,Chart:()=>Te,Checkbox:()=>Io,CodeEditor:()=>gr,Collapsible:()=>R,Column:()=>li,Combobox:()=>Sr,Combobox2:()=>Wr,Confirm:()=>St,CopyToClipboard:()=>ut,DatePicker:()=>Zr,Dropdown:()=>Oi,Dropdown2:()=>Zi,EditableList:()=>ha,EditableList2:()=>Na,FieldCodeEditor:()=>ru,FieldCombobox:()=>gu,FieldCombobox2:()=>ju,FieldDatePicker:()=>Xu,FieldDropdown:()=>Cu,FieldEditableList:()=>sh,FieldFileInput:()=>fh,FieldInput:()=>Eh,FieldMultiselect:()=>Ih,FieldPagination:()=>Ru,FieldSelect:()=>Uh,FieldSelectableList:()=>ed,FieldToggle:()=>cd,FileInput:()=>za,FixedWrapper:()=>Ot,FloatingContainer:()=>Pt,FormikCheckbox:()=>Nc,FormikCodeEditor:()=>Ic,FormikCombobox:()=>Pc,FormikCombobox2:()=>Dc,FormikDatePicker:()=>Fc,FormikEditableList:()=>Bc,FormikEditableList2:()=>Wc,FormikFileInput:()=>Hc,FormikInput:()=>jc,FormikInput2:()=>zc,FormikMultiselect:()=>Vc,FormikRadio:()=>Uc,FormikSelect:()=>Gc,FormikSelectableList:()=>Kc,FormikTextarea:()=>qc,FormikToggle:()=>Yc,FormikWrapper:()=>Rc,Icon:()=>g,InfiniteScroller:()=>At,InfoNote:()=>Ft,Input:()=>Qa,Input2:()=>ll,List:()=>jt,Loader:()=>ye,Message:()=>be,Modal:()=>Ct,Multiselect:()=>Cl,NavBar:()=>Vt,Navigation:()=>qt,Pagination:()=>po,Panel:()=>pn,Pill:()=>mn,Radio:()=>Rl,RevealPanel:()=>Nn,Row:()=>yi,Select:()=>jl,SelectableList:()=>Xl,Table:()=>ti,Tabs:()=>eo,TextEllipsis:()=>uo,Textarea:()=>rc,Toggle:()=>bc,Tooltip:()=>lo,setConfig:()=>xc,toast:()=>ot,useComponentSize:()=>C,useEventListener:()=>$,useInterval:()=>ud,usePrevious:()=>me,useTimeout:()=>_e});const e=require("react");var t=n.n(e);const i=require("prop-types");var r=n.n(i);const s=(0,e.createContext)(),a=(0,e.createContext)();var l=Object.defineProperty,c=Object.getOwnPropertySymbols,u=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable,d=(e,t,n)=>t in e?l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function p(e){var n=e,{className:o,family:i,type:r,weight:s}=n,a=((e,t)=>{var n={};for(var o in e)u.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&c)for(var o of c(e))t.indexOf(o)<0&&h.call(e,o)&&(n[o]=e[o]);return n})(n,["className","family","type","weight"]);return t().createElement("i",((e,t)=>{for(var n in t||(t={}))u.call(t,n)&&d(e,n,t[n]);if(c)for(var n of c(t))h.call(t,n)&&d(e,n,t[n]);return e})({className:function(){const e=i||"fa";return["tyk-icon","fa"!==e&&e,`${e}-${r}`,"fa"===e?`fa-${s||"regular"}`:"",o].filter(Boolean).join(" ")}()},a))}p.propTypes={className:r().string,family:r().string,type:r().string.isRequired,weight:r().string};const g=p;function m({wrap:n}){const{collapsed:o,disabled:i,toggleChange:r}=(0,e.useContext)(a),s=o?"chevron-down":"chevron-up",l=["tyk-accordion__trigger",i&&"tyk-accordion__trigger--disabled"].filter(Boolean).join(" "),c=t().createElement("button",{className:l,onClick:r,type:"button","aria-label":"collapse/expand"},t().createElement(g,{className:"collapsable__arrow",type:s}));return n?t().createElement("div",{className:"tyk-accordion__trigger-wrapper"},c):c}m.propTypes={wrap:r().bool};const f=m;function y({collapsed:n,children:o,className:i,disabled:r},l){const{arrow:c}=(0,e.useContext)(s),[u,h]=(0,e.useState)(n),d=()=>{r||h(!u)},p=(0,e.useMemo)((()=>["tyk-accordion__item",c.expandToContent?`tyk-accordion__item--trigger-position-${c.position}`:"tyk-accordion__item--trigger-in-header",i,!1===u&&"tyk-accordion__item--active"].filter(Boolean).join(" ")),[c,i,u]),g=(0,e.useMemo)((()=>({collapsed:u,disabled:r,toggleChange:d})),[u,r,d]);return t().createElement("div",{ref:l,className:p},t().createElement(a.Provider,{value:g},c.expandToContent&&t().createElement(f,{wrap:!0}),o))}y.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),collapsed:r().bool,className:r().string,disabled:r().bool},y.defaultProps={collapsed:!1};const v=(0,e.forwardRef)(y);function b({className:n,children:o}){const{collapsed:i,disabled:r,toggleChange:l}=(0,e.useContext)(a),{usearrowastrigger:c,arrow:u}=(0,e.useContext)(s),h=i?"chevron-down":"chevron-up",d=["tyk-accordion__item-header",c&&"tyk-accordion__arrow-trigger",n].filter(Boolean).join(" ");return t().createElement("div",{className:d},c?t().createElement(t().Fragment,null,!u.expandToContent&&"left"===u.position&&t().createElement(f,null),t().createElement("div",null,o),!u.expandToContent&&"right"===u.position&&t().createElement(f,null)):t().createElement("button",{className:r?"tyk-accordion__trigger--disabled":"",onClick:l,type:"button"},t().createElement("span",null,o),t().createElement(g,{className:"collapsable__arrow",type:h})))}b.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string};const w=b,x=require("react-transition-group"),k=e=>e?{width:e.offsetWidth,height:e.offsetHeight}:{width:0,height:0},C=t=>{const[n,o]=(0,e.useState)(k(t?t.current:{})),i=(0,e.useCallback)((()=>{t.current&&o(k(t.current))}),[t]);return(0,e.useLayoutEffect)((()=>{i();let e=new ResizeObserver((()=>{i()}));return e.observe(t.current),()=>{e.disconnect(t.current),e=null}}),[t.current]),n},$=(t,n,o)=>{const i=(0,e.useRef)();(0,e.useEffect)((()=>{i.current=n}),[n]),(0,e.useEffect)((()=>{if(!(null==o?void 0:o.addEventListener))return;const e=e=>i.current(e);return o.addEventListener(t,e),()=>{o.removeEventListener(t,e)}}),[t,o])};var S=Object.defineProperty,E=Object.defineProperties,O=Object.getOwnPropertyDescriptors,T=Object.getOwnPropertySymbols,A=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable,L=(e,t,n)=>t in e?S(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function M(n){var o=n,{className:i,collapsed:r,children:s}=o,a=((e,t)=>{var n={};for(var o in e)A.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&T)for(var o of T(e))t.indexOf(o)<0&&_.call(e,o)&&(n[o]=e[o]);return n})(o,["className","collapsed","children"]);const l=(0,e.useRef)(null),c=(0,e.useRef)(null),u=C(l),[h,d]=(0,e.useState)({height:r?0:"auto"}),p=e=>{d({height:`${e}px`})},g=()=>l.current?l.current.clientHeight:0;(0,e.useEffect)((()=>{!r&&(null==u?void 0:u.height)&&h.height!==(null==u?void 0:u.height)&&p(u.height)}),[u.height]);const m=(0,e.useCallback)((()=>{!r&&l.current&&(p(g()),c.current.style.height=`${g()}px`)}),[r,l.current]);return $("resize",m,window),t().createElement(x.CSSTransition,{onEnter:()=>{p(g())},onExit:()=>{p(0)},in:!r,timeout:0,classNames:"collapse"},t().createElement("div",{className:"collapse-wrapper",ref:c,style:h},t().createElement("div",(f=((e,t)=>{for(var n in t||(t={}))A.call(t,n)&&L(e,n,t[n]);if(T)for(var n of T(t))_.call(t,n)&&L(e,n,t[n]);return e})({},a),E(f,O({className:i,ref:l}))),s)));var f}M.propTypes={children:r().oneOfType([r().element,r().node,r().string]),collapsed:r().bool,className:r().string};const R=M;function N({children:n,className:o}){const{collapsed:i}=(0,e.useContext)(a),r=["tyk-accordion__item-content",o].filter(Boolean).join(" ");return t().createElement("div",{className:r},t().createElement(R,{collapsed:i},n))}N.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string};const I=N;function P({className:n,children:o,usearrowastrigger:i,arrow:r={position:"right",expandToContent:!1}}){const a=["tyk-accordion",n].filter(Boolean).join(" "),l=(0,e.useMemo)((()=>({usearrowastrigger:i,arrow:r})),[i,r]);return t().createElement("div",{className:a},t().createElement(s.Provider,{value:l},o))}P.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,usearrowastrigger:r().bool,arrow:r().shape({position:r().oneOf(["left","right"]),expandToContent:r().bool})},P.defaultProps={usearrowastrigger:!1},P.Item=v,P.Item.Header=w,P.Item.Content=I;const D=P;var F=Object.defineProperty,B=Object.getOwnPropertySymbols,W=Object.prototype.hasOwnProperty,H=Object.prototype.propertyIsEnumerable,j=(e,t,n)=>t in e?F(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,z=(e,t)=>{for(var n in t||(t={}))W.call(t,n)&&j(e,n,t[n]);if(B)for(var n of B(t))H.call(t,n)&&j(e,n,t[n]);return e};function V(n,o){const i=n,{customButton:r,children:s,iconType:a,iconFamily:l,iconPosition:c,iconOnly:u,id:h,className:d,disabled:p,display:m,href:f,onClick:y,noStyle:v,size:b,theme:w,type:x}=i,k=((e,t)=>{var n={};for(var o in e)W.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&B)for(var o of B(e))t.indexOf(o)<0&&H.call(e,o)&&(n[o]=e[o]);return n})(i,["customButton","children","iconType","iconFamily","iconPosition","iconOnly","id","className","disabled","display","href","onClick","noStyle","size","theme","type"]),C=()=>{const e=["tyk-button"].concat(d?d.split(" "):[]),t=b?`tyk-button--${b}`:"tyk-button--md",n=p?"disabled":"",o=m||"",i=w?`tyk-button--${w}`:"",r=u?"tyk-button--icon-only":"",s=v?"tyk-button--no-style":"";return e.push(r),e.push(i),e.push(t),e.push(n),e.push(o),e.push(s),a&&e.push(`icon-${c||"left"}`),e.join(" ")},$=e=>a&&(c||"left")===e?t().createElement(g,{family:l,type:a}):null;return(()=>{let n;return r?t().createElement(t().Fragment,null,(0,e.cloneElement)(r,{className:C(),disabled:p})):(n=f?t().createElement("a",z({id:h,className:C(),disabled:p,onClick:y,href:f,ref:o},k),$("left"),s,$("right")):t().createElement("button",z({id:h,className:C(),disabled:p,onClick:y,type:x||"button",ref:o},k),$("left"),s&&t().createElement("span",null,s),$("right")),n)})()}V.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),customButton:r().oneOfType([r().arrayOf(r().node),r().node,r().element]),className:r().string,display:r().string,disabled:r().bool,id:r().string,href:r().string,iconPosition:r().string,iconFamily:r().string,iconOnly:r().bool,iconType:r().string,noStyle:r().bool,onClick:r().func,theme:r().string,type:r().string,size:r().string},V.defaultProps={theme:"",type:"button"};const U=(0,e.forwardRef)(V);function G({className:e,children:n,label:o},i){return t().createElement("div",{ref:i,className:`tyk-button-group__wrapper ${e}`},Boolean(o)&&t().createElement("label",null,o),t().createElement("div",{className:"tyk-button-group"},n))}G.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string.isRequired,label:r().string.isRequired};const K=(0,e.forwardRef)(G);function q({right:e=null,children:n}){return t().createElement("div",{className:"tyk-card__header"},n&&t().createElement("div",{className:"tyk-card__header-content"},n),e&&t().createElement("div",{className:"tyk-card__header-right"},e))}q.propTypes={right:r().oneOfType([r().element,r().node,r().string]),children:r().oneOfType([r().element,r().node,r().string])};const Y=q;function J({align:e="top",children:n}){return t().createElement("div",{className:`tyk-card__body tyk-card__body--align-${e}`},t().createElement("div",null,n))}J.propTypes={align:r().oneOf(["top","center","bottom"]),children:r().oneOfType([r().element,r().node,r().string])};const X=J;function Q({children:e}){return t().createElement("div",{className:"tyk-card__footer"},e)}Q.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const Z=Q;function ee({maxLines:e=1,children:n}){return t().createElement("h4",{className:`tyk-card__title tyk-card__title--max-${e}-lines`},n)}ee.propTypes={maxLines:r().number,children:r().oneOfType([r().element,r().node,r().string])};const te=ee;function ne({children:e}){return t().createElement("div",{className:"tyk-card__title-group"},e)}ne.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const oe=ne;function ie({children:e}){return t().createElement("h5",{className:"tyk-card__sub-title"},e)}ie.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const re=ie;function se({maxLines:e=2,children:n}){return t().createElement("p",{className:`tyk-card__summary tyk-card__summary--max-${e}-lines`},n)}se.propTypes={maxLines:r().number,children:r().oneOfType([r().element,r().node,r().string])};const ae=se;function le({children:e}){return t().createElement("div",{className:"tyk-card__title-icon"},e)}le.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const ce=le;function ue({className:e="",height:n="auto",children:o}){return t().createElement("div",{style:{height:n},className:`tyk-card ${e}`},o)}ue.propTypes={className:r().string,height:r().oneOfType([r().number,r().string]),children:r().oneOfType([r().element,r().node,r().string])},ue.Header=Y,ue.Body=X,ue.Footer=Z,ue.Title=te,ue.TitleGroup=oe,ue.Icon=ce,ue.SubTitle=re,ue.Summary=ae;const he=ue,de=require("echarts"),pe=require("immutable"),ge=(e,t,n)=>{let o;return function(...i){const r=this,s=n&&!o;clearTimeout(o),o=setTimeout((()=>{o=null,n||e.apply(r,i)}),t),s&&e.apply(r,i)}},me=t=>{const n=(0,e.useRef)();return(0,e.useEffect)((()=>{n.current=t}),[t]),n.current};function fe({className:e,position:n="relative",withbackground:o=!1}){const i=["loading",n,e].filter(Boolean).join(" "),r=t().createElement("div",{className:i},t().createElement("div",{className:"loading-bar"}),t().createElement("div",{className:"loading-bar"}),t().createElement("div",{className:"loading-bar"}),t().createElement("div",{className:"loading-bar"}));return o?t().createElement("div",{className:"tyk-loading__wrapper"},r):r}fe.propTypes={className:r().string,position:r().string,withbackground:r().bool};const ye=fe;function ve({children:e,theme:n,onClose:o,noMargin:i,className:r}){const s="success"===n?"check":"exclamation";return t().createElement("div",{className:["tyk-message",`tyk-message--${n||"info"}`,i&&"no-margin",r].filter(Boolean).join(" ")},t().createElement(g,{type:s}),t().createElement("div",{className:"tyk-message__content"},e),o&&t().createElement(g,{type:"xmark",onClick:o}))}ve.propTypes={theme:r().string,children:r().oneOfType([r().element,r().node,r().string]),className:r().string,noMargin:r().bool,onClose:r().func};const be=ve,we=JSON.parse('{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:OGC:1.3:CRS84"}},"features":[{"geometry":{"type":"Polygon","coordinates":[[[47.97822265625001,7.9970703125],[46.97822265625001,7.9970703125],[43.98378906250002,9.008837890624989],[43.482519531250006,9.379492187499991],[43.181640625,9.879980468749991],[42.84160156250002,10.203076171874997],[42.65644531250001,10.6],[42.92275390625002,10.999316406249989],[43.24599609375002,11.499804687499989],[43.85273437500001,10.784277343749991],[44.38652343750002,10.430224609374989],[44.94296875,10.43671875],[45.81669921875002,10.835888671874997],[46.565039062500006,10.745996093749994],[47.40498046875001,11.174023437499997],[48.01923828125001,11.139355468749997],[48.57255859375002,11.320507812499997],[48.938574218750006,11.258447265624994],[50.11005859375001,11.529296875],[50.79228515625002,11.983691406249989],[51.2548828125,11.830712890624994],[51.08427734375002,11.335644531249997],[51.140625,10.656884765624994],[51.031835937500006,10.444775390624997],[51.19296875,10.554638671874997],[51.390234375,10.422607421875],[50.93007812500002,10.33554687499999],[50.825,9.428173828124997],[50.10283203125002,8.199804687499991],[49.85205078125,7.962548828124994],[49.234960937500006,6.77734375],[49.04931640625,6.173632812499989],[47.97529296875001,4.497021484374997],[46.87880859375002,3.28564453125],[46.05117187500002,2.475146484374989],[44.92021484375002,1.81015625],[43.71757812500002,0.857861328124997],[41.97988281250002,-0.973046875],[41.53271484375,-1.6953125],[41.521875,-1.572265625],[41.42695312500001,-1.449511718750003],[41.24980468750002,-1.220507812500003],[40.97871093750001,-0.870312500000011],[40.964453125,2.814648437499997],[41.341796875,3.20166015625],[41.61347656250001,3.590478515624994],[41.88398437500001,3.977734375],[41.91533203125002,4.031298828124989],[42.02412109375001,4.137939453125],[42.85664062500001,4.32421875],[43.12568359375001,4.644482421874997],[43.58349609375,4.85498046875],[43.988867187500006,4.950537109374991],[44.940527343750006,4.912011718749994],[47.97822265625001,7.9970703125]]]},"properties":{"name":"Somalia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[9.579979133936737,47.05856388629306],[9.409458596647225,47.02019676540292],[9.46249431093294,47.09010747968864],[9.46249431093294,47.19858962254578],[9.527658197470123,47.27026989773668],[9.579979133936737,47.05856388629306]]]},"properties":{"name":"Liechtenstein","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-8.683349609375,27.77800740805682],[-13.038761787013554,27.81190166624856],[-12.948925781249926,27.914160156250034],[-11.552685546874955,28.31010742187496],[-10.486474609374994,29.06494140625],[-10.200585937499994,29.380371093750057],[-9.667089843749949,30.10927734375005],[-9.652929687499977,30.447558593750045],[-9.875488281249943,30.717919921874966],[-9.80869140624992,31.42460937499996],[-9.347460937499932,32.086376953124955],[-9.245849609375,32.572460937499955],[-8.512841796874994,33.25244140625003],[-6.900976562499949,33.96904296874999],[-6.353125,34.77607421875001],[-5.924804687499943,35.78579101562502],[-5.277832031249943,35.90273437500002],[-5.252685546874972,35.61474609374997],[-4.628320312499966,35.206396484375006],[-4.329980468749937,35.161474609375006],[-3.693261718749994,35.27998046874998],[-3.394726562499926,35.21181640625005],[-2.972216796874989,35.40727539062499],[-2.839941406249949,35.127832031249994],[-2.731396484374955,35.13520507812498],[-2.636816406249977,35.11269531250002],[-2.423730468749994,35.12348632812498],[-2.219628906249966,35.10419921874998],[-1.795605468749926,34.751904296874955],[-1.67919921875,33.31865234375002],[-1.550732421874955,33.073583984375006],[-1.510009765625,32.877636718749955],[-1.45,32.784814453124966],[-1.352148437499977,32.70336914062497],[-1.29638671875,32.67568359375002],[-1.188232421875,32.608496093750006],[-1.111035156249983,32.55229492187502],[-1.065527343749949,32.46831054687496],[-1.16259765625,32.399169921875],[-1.275341796874983,32.089013671874966],[-2.863427734374937,32.07470703124997],[-2.930859374999926,32.04252929687499],[-2.988232421874983,31.874218749999983],[-3.01738281249996,31.834277343750017],[-3.439794921874949,31.704541015624983],[-3.604589843749949,31.686767578125],[-3.700244140624989,31.70009765625005],[-3.768164062499977,31.689550781250034],[-3.837109374999983,31.512353515624994],[-3.833398437499937,31.197802734375045],[-3.626904296874955,31.000927734374983],[-4.148779296874977,30.8095703125],[-4.322851562500006,30.698876953124994],[-4.52915039062492,30.62553710937499],[-4.778515624999926,30.552392578124994],[-4.968261718749943,30.465380859375045],[-5.061914062499937,30.326416015625057],[-5.180126953124955,30.166162109374994],[-5.293652343749983,30.058642578125045],[-5.44877929687496,29.956933593750023],[-6.00429687499999,29.83125],[-6.479736328124943,29.82036132812499],[-6.520556640624989,29.659863281249983],[-6.59775390624992,29.578955078125006],[-6.635351562499949,29.568798828124983],[-6.755126953125,29.583837890625034],[-6.855566406249949,29.601611328125017],[-7.142431640624949,29.61958007812504],[-7.427685546874983,29.425],[-7.485742187499994,29.392236328124994],[-8.659912109375,28.718603515625063],[-8.683349609375,27.900390625],[-8.683349609375,27.77800740805682]]]},"properties":{"name":"Morocco","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-13.038761787013554,27.81190166624856],[-8.683349609375,27.77800740805682],[-8.683349609375,27.65644531250004],[-8.817822265624955,27.65644531250004],[-8.817822265624951,27.656445312499997],[-8.683349609375,27.656445312499997],[-8.683349609375,27.2859375],[-8.682861328125,26.921337890624997],[-8.6826171875,26.72314453125],[-8.682324218749983,26.497705078124994],[-8.68212890625,26.273193359375],[-8.68212890625,26.10947265625],[-8.682226562499977,25.995507812499994],[-12.016308593749983,25.995410156250003],[-12.016308593749983,25.740136718749994],[-12.016308593749983,25.331689453124994],[-12.016308593749983,25.059375],[-12.016308593749983,24.923242187499994],[-12.016308593749983,24.378662109375],[-12.016308593749983,23.97021484375],[-12.0234375,23.467578125],[-12.372900390624977,23.318017578124994],[-12.559375,23.290820312500003],[-12.620410156249989,23.27133789062499],[-13.031494140625,23.000244140625],[-13.153271484374983,22.820507812499997],[-13.12702845982141,22.703770926339278],[-13.136540684091575,22.708182548616723],[-13.094335937499977,22.495996093749994],[-13.051220703124983,21.854785156250003],[-13.041748046875,21.713818359374997],[-13.0322265625,21.572070312500003],[-13.025097656249983,21.466796875],[-13.016210937499977,21.333935546874997],[-15.231201171875,21.331298828125],[-16.964550781249983,21.329248046874994],[-17.06396484375,20.89882812499999],[-17.048046874999983,20.80615234375],[-17.098779296874994,20.856884765624997],[-16.930859374999983,21.9],[-16.35874023437495,22.594531250000045],[-16.21025390624999,23.097900390625],[-15.789257812499926,23.792871093750023],[-15.980712890624943,23.670312500000023],[-15.899316406249966,23.844433593749955],[-14.904296875000028,24.719775390625017],[-14.794921874999943,25.404150390625006],[-14.413867187499932,26.25371093749999],[-13.57578125,26.735107421875],[-13.175976562499983,27.655712890624983],[-13.038761787013554,27.81190166624856]],[[-8.774365234374983,27.460546875],[-8.794873046874983,27.120703125000034],[-8.794873046874983,27.120703125],[-8.774365234374983,27.460546875]]]},"properties":{"name":"W. Sahara","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[21.5625,42.247509765625],[21.560839843750017,42.24765625],[21.389550781250023,42.21982421875],[21.28662109375,42.100390625],[21.05976562500001,42.171289062499994],[20.778125,42.071044921875],[20.725,41.87353515625],[20.566210937500017,41.873681640624994],[20.485449218750006,42.223388671875],[20.06396484375,42.54726562499999],[20.054296875,42.760058593749996],[20.344335937500006,42.827929687499996],[20.40996305279786,42.84373166741877],[20.344335937500063,42.82792968750002],[19.670996093750006,43.163964843749994],[19.21875,43.449951171875],[19.196484375000068,43.48500976562502],[19.19160156250004,43.52104492187499],[19.19433593749997,43.533300781250006],[19.495117187500057,43.642871093750045],[19.245019531249994,43.96503906250004],[19.583789062500017,44.04345703125003],[19.118457031250074,44.359960937500006],[19.348632812500057,44.88090820312502],[19.007128906250045,44.86918945312502],[19.062890625000023,45.13720703125],[19.4,45.2125],[19.004687500000074,45.39951171875006],[19.064257812500045,45.51499023437506],[18.839062499999983,45.83574218750002],[18.905371093750006,45.931738281250034],[19.421289062500023,46.064453125],[19.61347656250001,46.169189453125],[19.84443359375001,46.145898437499966],[19.934082031250057,46.161474609375034],[20.161425781250017,46.14189453124996],[20.210156250000068,46.12602539062502],[20.241796875000034,46.10859375000001],[20.301367187500006,46.05068359375002],[20.35859375000004,45.975488281249994],[20.581152343749977,45.86948242187506],[20.65273437499999,45.779394531250006],[20.709277343750074,45.735253906249994],[20.727832031250017,45.73740234374998],[20.746875,45.74897460937501],[20.76015625000005,45.75810546875002],[20.775,45.74980468750002],[20.794042968750006,45.467871093750034],[21.431445312500017,45.192529296874994],[21.465429687500006,45.171875],[21.357031250000034,44.99077148437502],[21.532324218750063,44.900683593750045],[21.519921875000023,44.88081054687498],[21.442187500000074,44.87338867187498],[21.384375,44.87006835937501],[21.357910156250057,44.86181640625003],[21.36005859375004,44.82666015624997],[21.52314453125004,44.79008789062499],[21.63613281250005,44.71044921875],[21.909277343750034,44.666113281250034],[22.026953125,44.61987304687503],[22.093066406250074,44.541943359374955],[22.200976562500017,44.560693359374966],[22.350683593750063,44.676123046875034],[22.497656249999977,44.70625],[22.64208984375,44.65097656249998],[22.720898437499983,44.605517578125045],[22.734375,44.56992187499998],[22.700781250000063,44.55551757812498],[22.620117187500057,44.562353515625034],[22.554003906250017,44.54033203124999],[22.49453125000005,44.43544921875002],[22.687890625000023,44.248291015625],[22.42080078125005,44.00742187500006],[22.399023437500063,43.96953125],[22.36542968750004,43.86210937500002],[22.36962890625003,43.78129882812499],[22.55458984375005,43.45449218750002],[22.767578125,43.35415039062502],[22.81972656250005,43.300732421874955],[22.85957031250001,43.252343749999966],[22.97685546874999,43.18798828125],[22.799902343750006,42.985742187499994],[22.706152343750006,42.88393554687505],[22.466796875,42.842480468749955],[22.53242187500004,42.48120117187497],[22.523535156250006,42.440966796875045],[22.44570312500005,42.35913085937497],[22.42207031250004,42.32885742187503],[22.344042968750045,42.31396484375003],[22.23974609375003,42.303110028468716],[21.81464843750001,42.303125],[21.5625,42.24750976562498],[21.5625,42.247509765625]]]},"properties":{"name":"Serbia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[74.54140625000002,37.02216796875],[74.03886718750002,36.825732421874996],[73.116796875,36.868554687499994],[72.24980468750002,36.734716796875],[71.23291015625,36.12177734375],[71.18505859375,36.04208984375],[71.57197265625001,35.546826171875],[71.62050781250002,35.183007812499994],[70.965625,34.53037109375],[71.095703125,34.369433593749996],[71.05156250000002,34.049707031249994],[70.65400390625001,33.952294921874994],[69.8896484375,34.007275390625],[70.26113281250002,33.289013671875],[69.5015625,33.020068359374996],[69.24140625000001,32.433544921875],[69.279296875,31.936816406249996],[68.86894531250002,31.634228515624997],[68.59765625,31.802978515625],[68.16103515625002,31.802978515625],[67.57822265625,31.506494140624994],[67.737890625,31.343945312499997],[67.45283203125001,31.234619140625],[66.82929687500001,31.263671875],[66.346875,30.802783203124996],[66.23125,29.86572265625],[65.09550781250002,29.559472656249994],[64.39375,29.544335937499994],[64.09873046875,29.391943359375],[63.56757812500001,29.497998046874997],[62.4765625,29.408349609374994],[62.0009765625,29.530419921874994],[61.22441406250002,29.749414062499994],[60.843359375,29.858691406249996],[61.331640625,30.363720703124997],[61.55947265625002,30.599365234375],[61.7841796875,30.831933593749994],[61.81083984375002,30.91328125],[61.81425781250002,31.072558593749996],[61.75507812500001,31.285302734374994],[61.66015625,31.382421875],[61.34648437500002,31.421630859375],[61.11074218750002,31.451123046874997],[60.854101562500006,31.483251953125],[60.82070312500002,31.495166015624996],[60.791601562500006,31.660595703124997],[60.804296875,31.73447265625],[60.7875,31.877197265625],[60.78994140625002,31.987109375],[60.827246093750006,32.16796875],[60.82929687500001,32.249414062499994],[60.71044921875,32.6],[60.57656250000002,32.994873046875],[60.560546875,33.137841796874994],[60.9169921875,33.505224609375],[60.573828125,33.588330078125],[60.4859375,33.7119140625],[60.48574218750002,34.094775390624996],[60.642675781250006,34.307177734374996],[60.88945312500002,34.31943359375],[60.80390625000001,34.418017578124996],[60.76259765625002,34.475244140624994],[60.73613281250002,34.491796875],[60.72626953125001,34.51826171875],[60.73945312500001,34.544726562499996],[60.80234375,34.554638671875],[60.8453125,34.587695312499996],[60.91474609375001,34.633984375],[60.951171875,34.653857421874996],[61.080078125,34.855615234374994],[61.1,35.272314453125],[61.18925781250002,35.31201171875],[61.24550781250002,35.474072265625],[61.27851562500001,35.51376953125],[61.281835937500006,35.55341796875],[61.26201171875002,35.619580078125],[61.3447265625,35.6294921875],[61.62099609375002,35.43232421875],[62.08964843750002,35.3796875],[62.30781250000001,35.170800781249994],[62.688085937500006,35.255322265625],[63.056640625,35.44580078125],[63.08417968750001,35.56806640625],[63.16972656250002,35.678125],[63.129980468750006,35.84619140625],[63.8625,36.012353515624994],[64.184375,36.14892578125],[64.51103515625002,36.340673828125],[64.56582031250002,36.427587890625],[64.6025390625,36.554541015625],[64.78242187500001,37.05927734375],[64.81630859375002,37.132080078125],[64.95156250000002,37.1935546875],[65.08964843750002,37.237939453124994],[65.30361328125002,37.24677734375],[65.55498046875002,37.251171875],[65.76503906250002,37.569140625],[66.471875,37.3447265625],[66.52226562500002,37.348486328125],[66.827734375,37.3712890625],[67.06884765625,37.334814453125],[67.19550781250001,37.235205078125],[67.31972656250002,37.2095703125],[67.44169921875002,37.2580078125],[67.51728515625001,37.266650390624996],[67.546484375,37.235644531249996],[67.607421875,37.222509765625],[67.7,37.22724609375],[67.7529296875,37.1998046875],[67.75898437500001,37.172216796875],[67.76601562500002,37.14013671875],[67.83447265625,37.064208984375],[67.9580078125,36.972021484375],[68.06777343750002,36.9498046875],[68.26093750000001,37.013085937499994],[68.284765625,37.036328125],[68.29951171875001,37.088427734374996],[68.38691406250001,37.1375],[68.66914062500001,37.2583984375],[68.7232421875,37.268017578125],[68.78203125000002,37.2580078125],[68.82373046875,37.270703125],[68.8384765625,37.30283203125],[68.85537109375002,37.316845703125],[68.88525390625,37.328076171875],[68.91181640625001,37.333935546875],[68.96044921875,37.325048828125],[69.18017578125,37.15830078125],[69.26484375000001,37.1083984375],[69.30390625000001,37.116943359375],[69.35380859375002,37.150048828124994],[69.41445312500002,37.207763671875],[69.4296875,37.290869140625],[69.39921875000002,37.399316406249994],[69.42011718750001,37.48671875],[69.49208984375002,37.553076171875],[69.62578125000002,37.594042968749996],[69.8208984375,37.6095703125],[69.9849609375,37.566162109375],[70.18867187500001,37.582470703125],[70.25146484375,37.66416015625],[70.25498046875,37.765380859375],[70.19941406250001,37.886035156249996],[70.21464843750002,37.9244140625],[70.41777343750002,38.075439453125],[70.7359375,38.42255859375],[71.255859375,38.306982421875],[71.33271484375001,38.170263671875],[71.27851562500001,37.918408203125],[71.319921875,37.90185546875],[71.3896484375,37.906298828124996],[71.48779296875,37.931884765625],[71.55195312500001,37.933154296874996],[71.58222656250001,37.910107421875],[71.43291015625002,37.1275390625],[71.530859375,36.845117187499994],[71.665625,36.696923828124994],[72.65742187500001,37.029052734375],[72.8955078125,37.267529296875],[73.21113281250001,37.408496093749996],[73.38291015625,37.462255859375],[73.48134765625002,37.4716796875],[73.60468750000001,37.446044921875],[73.65712890625002,37.43046875],[73.72060546875002,37.41875],[73.73378906250002,37.37578125],[73.71728515625,37.329443359375],[73.6275390625,37.261572265625],[73.65351562500001,37.23935546875],[73.749609375,37.231787109375],[74.16708984375,37.329443359375],[74.20351562500002,37.372460937499994],[74.25966796875002,37.415429687499994],[74.659375,37.394482421875],[74.73056640625,37.35703125],[74.83046875000002,37.2859375],[74.89130859375001,37.231640625],[74.84023437500002,37.225048828125],[74.76738281250002,37.249169921874994],[74.73896484375001,37.28564453125],[74.72666015625,37.29072265625],[74.6689453125,37.26669921875],[74.55898437500002,37.236621093749996],[74.37216796875,37.15771484375],[74.37617187500001,37.137353515624994],[74.49794921875002,37.0572265625],[74.52646484375,37.030664062499994],[74.54140625000002,37.02216796875]]]},"properties":{"name":"Afghanistan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[17.57958984375,-8.099023437500009],[17.643359375000017,-8.090722656250009],[18.00878906250003,-8.107617187499983],[18.56269531250001,-7.9359375],[18.944433593750063,-8.001464843750028],[19.142675781250034,-8.001464843750028],[19.34082031249997,-7.966601562500031],[19.369921875000045,-7.706542968749986],[19.371679687500063,-7.655078124999989],[19.47988281250008,-7.472167968750028],[19.48378906250008,-7.279492187500026],[19.527636718750017,-7.144433593749952],[19.87519531250004,-6.986328124999986],[19.99746093750008,-6.976464843750023],[20.190039062500063,-6.9462890625],[20.482226562500074,-6.915820312500017],[20.59003906250001,-6.919921874999957],[20.598730468750006,-6.935156249999949],[20.536914062500045,-7.121777343749955],[20.535839843749983,-7.182812499999955],[20.558398437500045,-7.244433593749989],[20.60781250000008,-7.277734375000023],[20.910937500000017,-7.281445312499983],[21.190332031250023,-7.284960937499989],[21.751074218750034,-7.305468749999989],[21.80605468750005,-7.32861328125],[21.905371093750034,-8.693359374999943],[21.813183593750068,-9.46875],[22.19775390625,-10.040625],[22.30703125000005,-10.691308593750023],[22.203515625000023,-10.829492187500009],[22.226171875,-11.121972656250009],[22.27880859375,-11.19414062499996],[22.314941406250057,-11.198632812499994],[22.39296875000005,-11.159472656250003],[22.486132812500045,-11.086718750000017],[22.56103515625003,-11.05585937500004],[22.814746093750017,-11.08027343750004],[23.076269531250006,-11.087890624999986],[23.463964843750034,-10.969335937499991],[23.83388671875008,-11.013671874999972],[23.96650390625001,-10.871777343750011],[23.98388671875,-11.725],[23.909375,-12.636132812500009],[23.886523437500045,-12.743261718749991],[23.882421875,-12.799023437499983],[23.968066406250045,-12.956933593749994],[23.962988281250006,-12.988476562500026],[23.843164062500023,-13.0009765625],[22.209570312500006,-13.0009765625],[21.97890625000008,-13.0009765625],[21.979101562500034,-13.798730468749994],[21.979296875000074,-14.11962890625],[21.979394531249994,-14.440527343750006],[21.97978515624999,-15.955566406250014],[22.193945312500006,-16.628125],[23.380664062500017,-17.640625],[22.32421875,-17.8375],[20.74550781250008,-18.019726562499983],[20.194335937500057,-17.86367187499999],[18.95527343750004,-17.80351562499999],[18.39638671875005,-17.3994140625],[16.14843750000003,-17.39023437499999],[14.017480468750023,-17.40888671874997],[13.475976562500023,-17.04003906249997],[13.179492187500017,-16.971679687499986],[12.548144531250017,-17.212695312499974],[12.35927734375008,-17.205859375],[12.318457031250006,-17.21337890625003],[12.213378906250028,-17.209960937500043],[12.013964843750074,-17.168554687500034],[11.902539062500011,-17.226562499999957],[11.743066406250023,-17.24921875000004],[11.780078125000017,-16.87128906249997],[11.818945312500034,-16.704101562500014],[11.750878906250023,-15.831933593749966],[12.016113281250057,-15.513671874999957],[12.55048828125004,-13.437792968750003],[12.983203124999989,-12.775683593750017],[13.4169921875,-12.52041015624998],[13.597949218750017,-12.286132812500028],[13.785351562499983,-11.81279296874996],[13.833593750000063,-10.9296875],[13.33222656250004,-9.998925781250009],[12.99853515625,-9.048046875],[13.358984375,-8.687207031250026],[13.378515625000063,-8.369726562500006],[12.82343750000004,-6.954785156249955],[12.283300781250063,-6.12431640624996],[13.184375,-5.85625],[13.346484375000017,-5.863378906250006],[13.978515625,-5.857226562500003],[16.315234375000074,-5.865625],[16.431445312500045,-5.90019531249996],[16.53710937499997,-5.9658203125],[16.697265625,-6.164257812500026],[16.74296874999999,-6.618457031250003],[16.813085937500063,-6.772558593749963],[16.919433593750057,-6.93398437499998],[16.98476562500005,-7.257421874999977],[17.57958984375,-8.099023437500009]]],[[[12.50146484375,-4.5875],[12.848144531250028,-4.428906249999983],[12.881054687500068,-4.445117187499989],[12.971386718750068,-4.551757812499957],[13.048046875000068,-4.619238281250034],[13.072753906250028,-4.634765625],[13.057324218750011,-4.651074218750026],[12.947460937500011,-4.695312499999986],[12.829687499999977,-4.73662109374996],[12.451464843750017,-5.071484374999969],[12.453222656250034,-5.090625],[12.52236328125008,-5.148925781250028],[12.484570312500011,-5.71875],[12.213671875000074,-5.758691406249994],[12.177148437499994,-5.324804687499977],[12.018359375000074,-5.004296874999966],[12.50146484375,-4.5875]]]]},"properties":{"name":"Angola","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[20.06396484375,42.54726562499999],[20.485449218750006,42.223388671875],[20.566210937500017,41.873681640624994],[20.48896484375001,41.272607421874994],[20.709277343750017,40.928369140624994],[20.964257812500023,40.849902343749996],[20.95576171875001,40.775292968749994],[21.030859375,40.622460937499994],[20.881640625000017,40.467919921874994],[20.65742187500001,40.1173828125],[20.4560546875,40.065576171874994],[20.408007812500017,40.049462890624994],[20.383691406250023,40.0171875],[20.338476562500006,39.991064453125],[20.311132812500006,39.979443359375],[20.311328125000017,39.95078125],[20.381640625000017,39.841796875],[20.382421875,39.802636718749994],[20.206835937500017,39.653515625],[20.13105468750001,39.66162109375],[20.05976562500001,39.699121093749994],[20.022558593750006,39.710693359375],[20.001269531250017,39.709423828125],[19.851855468750017,40.0435546875],[19.322265625,40.407080078125],[19.45917968750001,40.40537109375],[19.3375,40.663818359375],[19.57568359375,41.640429687499996],[19.577539062500023,41.7875],[19.342382812500006,41.869091796875],[19.280664062500023,42.17255859375],[19.65449218750001,42.628564453124994],[19.78828125000001,42.476171875],[20.06396484375,42.54726562499999]]]},"properties":{"name":"Albania","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[19.66230468750001,60.187158203124994],[19.53652343750005,60.14497070312501],[19.551367187500063,60.24384765625001],[19.66230468750001,60.187158203124994]]],[[[19.989550781250074,60.351171875],[20.258886718750063,60.26127929687499],[19.799804687500057,60.08173828125001],[19.68691406250005,60.267626953125045],[19.84765625000003,60.22055664062506],[19.823046875000074,60.390185546875045],[19.989550781250074,60.351171875]]]]},"properties":{"name":"Aland","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[1.7060546875,42.503320312499994],[1.534082031250023,42.441699218749996],[1.448828125,42.437451171875],[1.428125,42.46132812499999],[1.414843750000017,42.548388671874996],[1.428320312500006,42.5958984375],[1.501367187500023,42.642724609374994],[1.568164062500017,42.635009765625],[1.709863281250023,42.604443359375],[1.739453125000011,42.575927734375],[1.740234375,42.55673828125],[1.713964843750006,42.525634765625],[1.7060546875,42.503320312499994]]]},"properties":{"name":"Andorra","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[53.927832031250006,24.177197265624983],[53.63447265625004,24.169775390624977],[53.83378906250002,24.258935546875023],[53.927832031250006,24.177197265624983]]],[[[53.3322265625001,24.258593750000045],[53.19091796874997,24.290917968749966],[53.412402343750074,24.411035156250023],[53.3322265625001,24.258593750000045]]],[[[56.29785156250003,25.650683593750045],[56.38798828125002,24.97919921875004],[56.06386718750005,24.73876953125],[56.00058593750006,24.953222656249977],[55.795703125000074,24.868115234374955],[55.76083984375006,24.24267578125],[55.92861328125005,24.215136718750074],[55.98515625000002,24.063378906249966],[55.4684570312501,23.94111328125001],[55.53164062499999,23.81904296875001],[55.1999023437501,23.034765625000034],[55.185839843750074,22.7041015625],[55.104296875000074,22.621484375000023],[52.55507812500005,22.932812499999955],[51.592578125000074,24.07885742187503],[51.56835937500003,24.286181640625074],[51.76757812500003,24.25439453125],[51.84316406250005,24.010888671875023],[52.118554687499994,23.97109375],[52.64824218750002,24.154638671875006],[53.80175781249997,24.069482421874966],[54.14794921875003,24.17119140624999],[54.39707031250006,24.278173828125034],[54.74677734375004,24.810449218750023],[55.94121093750002,25.793994140625017],[56.08046875,26.06264648437505],[56.16748046875003,26.047460937499977],[56.144628906250006,25.690527343750006],[56.29785156250003,25.650683593750045]]]]},"properties":{"name":"United Arab Emirates","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-64.54916992187498,-54.71621093749998],[-63.81542968749997,-54.725097656250014],[-64.637353515625,-54.90253906250001],[-64.75732421875,-54.82656249999999],[-64.54916992187498,-54.71621093749998]]],[[[-68.65322265624994,-54.85361328124999],[-68.62993164062499,-52.65263671875004],[-68.24013671875,-53.08183593749999],[-68.43115234375,-53.0552734375],[-68.48852539062497,-53.260937499999976],[-68.16113281249997,-53.30644531250001],[-68.00849609374995,-53.5640625],[-67.29423828125002,-54.049804687500014],[-66.23564453124999,-54.53349609374997],[-65.17900390624993,-54.678125],[-65.47114257812495,-54.91464843749999],[-66.5111328125,-55.032128906249945],[-67.127099609375,-54.90380859375001],[-68.65322265624994,-54.85361328124999]]],[[[-61.084716796875,-23.65644531250001],[-60.83984375000003,-23.85810546874997],[-59.89248046874994,-24.093554687499974],[-59.18725585937497,-24.56230468749999],[-57.82167968749994,-25.136425781249983],[-57.56313476562494,-25.473730468749963],[-57.943115234375,-26.05292968750001],[-58.18149414062498,-26.30742187499999],[-58.222070312499994,-26.65],[-58.618603515624955,-27.13212890624996],[-58.64174804687494,-27.196093750000017],[-58.60483398437498,-27.314355468750037],[-58.16826171874993,-27.27343749999997],[-56.437158203124966,-27.553808593749977],[-56.16406250000003,-27.321484374999983],[-55.95146484374996,-27.325683593749957],[-55.789990234374926,-27.416406249999966],[-55.71464843749996,-27.41484375],[-55.632910156250006,-27.35712890624997],[-55.59379882812502,-27.288085937500014],[-55.597265625,-27.207617187499963],[-55.56489257812498,-27.15],[-55.496728515624966,-27.11533203124999],[-55.45063476562498,-27.068359375000014],[-55.426660156249994,-27.00927734374997],[-55.13593750000001,-26.931152343749957],[-54.934472656249994,-26.70253906250001],[-54.677734375,-26.308789062499997],[-54.631933593750006,-26.005761718749994],[-54.615869140624994,-25.576074218750023],[-54.44394531249998,-25.625],[-54.15458984374999,-25.523046874999963],[-53.89116210937499,-25.66884765625001],[-53.668554687500006,-26.288183593749977],[-53.83818359375002,-27.121093750000014],[-54.32700195312495,-27.423535156249997],[-54.82910156250003,-27.55058593750003],[-55.10151367187501,-27.866796874999963],[-55.72548828125002,-28.20410156250003],[-55.68725585937497,-28.38164062499996],[-55.890527343749994,-28.370019531249994],[-56.938623046874994,-29.594824218750034],[-57.22465820312499,-29.782128906249994],[-57.40522460937501,-30.03388671875004],[-57.563867187499994,-30.139941406249974],[-57.60888671875003,-30.187792968750045],[-57.65087890624997,-30.295019531250034],[-57.71269531249996,-30.38447265624997],[-57.83120117187502,-30.495214843749963],[-57.87250976562501,-30.591015625000026],[-57.81059570312499,-30.85859375000001],[-57.88632812499998,-30.937402343749994],[-57.86840820312497,-31.104394531249994],[-57.89335937499999,-31.195312499999957],[-58.03339843750001,-31.416601562500006],[-58.053857421874994,-31.494921874999974],[-58.009667968749966,-31.534375],[-57.98798828124998,-31.576171875],[-58.00698242187494,-31.684960937499966],[-58.04233398437495,-31.769238281249997],[-58.16748046874997,-31.87265625],[-58.18901367187499,-31.924218750000037],[-58.16040039062503,-31.986523437500026],[-58.156347656250006,-32.0515625],[-58.17700195312494,-32.11904296875002],[-58.16479492187494,-32.18486328125002],[-58.119726562500006,-32.24892578125002],[-58.12304687499997,-32.321875],[-58.201171875,-32.471679687500014],[-58.219970703125,-32.563964843749986],[-58.17099609374998,-32.95927734374996],[-58.424462890624994,-33.11152343749998],[-58.54721679687498,-33.66347656249998],[-58.392480468749966,-34.192968750000034],[-58.52548828124998,-34.29619140625002],[-58.28334960937494,-34.68349609375005],[-57.54785156250003,-35.018945312499994],[-57.170654296875,-35.3625],[-57.35390624999994,-35.72031249999998],[-57.33544921875,-36.026757812499966],[-57.07617187499994,-36.296777343749994],[-56.74946289062501,-36.346484375],[-56.67202148437494,-36.85126953124998],[-57.546972656250034,-38.085644531250026],[-58.17919921874994,-38.435839843750045],[-59.82832031250001,-38.83818359375003],[-61.112207031249994,-38.99296875000003],[-61.84790039062497,-38.961816406249994],[-62.33476562499993,-38.80009765625],[-62.29506835937502,-39.24326171874996],[-62.053662109374955,-39.373828125],[-62.179345703124994,-39.38046875000002],[-62.076806640624966,-39.46152343750002],[-62.131542968749926,-39.82539062499998],[-62.28691406249996,-39.89531250000002],[-62.40185546875003,-40.19658203125002],[-62.24633789062494,-40.674609374999974],[-62.39501953124997,-40.89082031249997],[-62.95903320312493,-41.10966796875006],[-63.621777343749955,-41.15976562499996],[-64.86948242187503,-40.735839843750014],[-65.13339843749998,-40.88066406250003],[-64.98637695312496,-42.102050781249986],[-64.53774414062494,-42.25458984374998],[-64.57099609374998,-42.416015625],[-64.42041015625003,-42.43378906249998],[-64.10087890624993,-42.395117187500006],[-64.06118164062494,-42.266113281250014],[-64.228515625,-42.21826171874996],[-63.795556640624994,-42.113867187500006],[-63.6298828125,-42.28271484375003],[-63.61733398437502,-42.695800781249986],[-64.03476562499998,-42.88125],[-64.48784179687499,-42.51347656250006],[-64.97070312499997,-42.66630859375002],[-65.02690429687496,-42.75888671874996],[-64.31914062499999,-42.968945312500026],[-64.83994140624998,-43.18886718749998],[-65.25234374999997,-43.571875],[-65.26552734375,-44.2796875],[-65.64760742187502,-44.661425781250045],[-65.63876953125,-45.0078125],[-66.19013671874995,-44.96474609375002],[-66.94140625,-45.25732421875003],[-67.59956054687495,-46.05253906250003],[-67.5064453125,-46.44277343749995],[-66.77685546874994,-47.005859375],[-65.99853515625,-47.09375],[-65.73808593749999,-47.34492187499998],[-65.81430664062495,-47.63818359374996],[-66.22524414062502,-47.826757812500006],[-65.93422851562497,-47.826757812500006],[-65.81005859374997,-47.941113281250026],[-67.46630859375,-48.95175781250004],[-67.68486328125002,-49.2466796875],[-67.82597656249999,-49.91962890625005],[-68.2572265625,-50.104589843749984],[-68.66757812500003,-49.75253906250003],[-68.66162109374997,-49.93574218750005],[-68.97958984375,-50.003027343749984],[-68.59794921874996,-50.00947265624997],[-68.421875,-50.15791015625001],[-69.04477539062495,-50.49912109374998],[-69.35859374999993,-51.028125],[-69.20102539062498,-50.99365234375001],[-69.03530273437497,-51.48896484375002],[-69.46542968750003,-51.58447265625003],[-68.96533203125003,-51.67714843749999],[-68.443359375,-52.35664062500004],[-69.96025390624993,-52.00820312500002],[-71.91865234374995,-51.98955078125004],[-72.40766601562501,-51.54082031250002],[-72.34023437499997,-50.68183593749999],[-72.50981445312496,-50.607519531250034],[-73.15292968749998,-50.73828125000003],[-73.50126953124996,-50.125292968750024],[-73.55419921875,-49.463867187500014],[-73.46157226562497,-49.31386718750001],[-73.13525390625,-49.30068359374999],[-73.03364257812501,-49.014355468750004],[-72.65126953125,-48.84160156249998],[-72.582861328125,-48.47539062499999],[-72.35473632812497,-48.36582031250005],[-72.32832031250001,-48.11005859374998],[-72.517919921875,-47.87636718749998],[-72.34594726562497,-47.49267578124997],[-71.90498046875001,-47.201660156250014],[-71.94023437499999,-46.83125],[-71.69965820312501,-46.6513671875],[-71.87568359374998,-46.160546875],[-71.63154296874998,-45.95371093749998],[-71.74619140624998,-45.57890625],[-71.34931640624995,-45.33193359374995],[-71.5962890625,-44.97919921875004],[-72.04169921874998,-44.90419921875004],[-72.06372070312503,-44.771875],[-71.26113281250002,-44.763085937499966],[-71.15971679687496,-44.56025390625004],[-71.21259765624998,-44.44121093750003],[-71.82001953124993,-44.38310546875],[-71.68007812500002,-43.92958984374998],[-71.90498046875001,-43.34755859374998],[-71.750634765625,-43.237304687499986],[-72.14643554687498,-42.990039062499974],[-72.10820312499993,-42.25185546874995],[-71.75,-42.04677734375001],[-71.91127929687497,-41.650390624999986],[-71.93212890624994,-40.69169921874999],[-71.70898437499997,-40.381738281249994],[-71.81831054687493,-40.17666015624995],[-71.65976562499998,-40.02080078125],[-71.71992187499995,-39.63525390624997],[-71.53945312499997,-39.60244140624995],[-71.40156249999995,-38.93505859374996],[-70.858642578125,-38.60449218750003],[-71.16757812499998,-37.76230468749996],[-71.19218750000002,-36.84365234375004],[-71.05551757812498,-36.52373046874996],[-70.40478515625,-36.06171874999998],[-70.41572265625001,-35.52304687500002],[-70.55517578125,-35.246875],[-70.39316406250003,-35.146875],[-70.05205078124999,-34.30078124999997],[-69.85244140625,-34.224316406250026],[-69.81962890624999,-33.28378906249999],[-70.08486328125002,-33.20175781249998],[-70.02197265625,-32.88457031250002],[-70.36376953125,-32.08349609374997],[-70.25439453125,-31.957714843750026],[-70.585205078125,-31.569433593749963],[-70.51958007812493,-31.1484375],[-70.30908203124994,-31.02265625000004],[-70.15322265625,-30.360937499999963],[-69.95634765624996,-30.35820312500003],[-69.84428710937493,-30.175],[-69.95996093749997,-30.078320312500026],[-70.02680664062501,-29.324023437500017],[-69.82788085937497,-29.10322265624997],[-69.65693359374995,-28.413574218749986],[-69.17441406249998,-27.924707031250037],[-68.84633789062494,-27.153710937499994],[-68.59208984375002,-27.140039062499966],[-68.31865234374999,-26.973242187500006],[-68.59160156249999,-26.47041015624997],[-68.41450195312498,-26.153710937500023],[-68.59208984375002,-25.420019531250034],[-68.38422851562495,-25.091894531249977],[-68.56201171875,-24.74736328125003],[-68.25029296875002,-24.391992187500023],[-67.35620117187503,-24.033789062499963],[-67.00878906249994,-23.00136718750005],[-67.19487304687493,-22.821679687500037],[-66.99111328125,-22.509863281250006],[-66.71171874999999,-22.216308593749986],[-66.36518554687501,-22.113769531249957],[-66.32246093750001,-22.053125],[-66.28212890624997,-21.94746093750001],[-66.24760742187496,-21.83046875],[-66.22016601562495,-21.802539062499974],[-66.174658203125,-21.805664062499986],[-66.09858398437495,-21.83505859375002],[-66.05859375,-21.87949218750002],[-65.86015624999999,-22.019726562499983],[-65.77104492187493,-22.099609375000014],[-65.68618164062497,-22.11025390625005],[-65.51879882812497,-22.094531250000045],[-64.99262695312498,-22.109667968750017],[-64.60551757812499,-22.228808593750045],[-64.52363281250001,-22.37158203125],[-64.47773437499998,-22.485351562499986],[-64.44550781249998,-22.585351562500023],[-64.37397460937498,-22.761035156250017],[-64.32529296875,-22.82763671875],[-64.30791015624993,-22.7953125],[-64.26640625000002,-22.60332031249996],[-63.97612304687502,-22.072558593750003],[-63.92167968749993,-22.028613281250017],[-62.843359375,-21.997265625000026],[-62.62597656250003,-22.29042968749998],[-62.54155273437496,-22.349609374999957],[-62.37250976562498,-22.439160156249997],[-62.21416015624996,-22.612402343750034],[-61.798535156249955,-23.18203125],[-61.084716796875,-23.65644531250001]]]]},"properties":{"name":"Argentina","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[46.490625,38.90668945312498],[46.1144531250001,38.877783203125034],[45.977441406249994,39.24389648437503],[45.76630859375004,39.37846679687499],[45.78447265625002,39.54560546875001],[45.456835937500074,39.494482421875006],[45.15283203125003,39.58266601562502],[45.03164062500005,39.76513671874997],[44.76826171875004,39.70351562500005],[44.28925781250004,40.040380859375006],[43.66621093750004,40.12636718750002],[43.56933593750003,40.48237304687498],[43.72265624999997,40.71953124999999],[43.43945312500003,41.10712890625001],[44.077246093750006,41.182519531249994],[44.81132812500002,41.259375],[45.001367187499994,41.29096679687498],[45.188574218750006,41.14741210937504],[45.07050781250004,41.075585937499966],[45.5875,40.846923828125],[45.37890624999997,40.67358398437506],[45.45439453125002,40.532373046874966],[45.96464843750002,40.233789062499966],[45.8859375000001,40.024853515624955],[45.57978515625004,39.9775390625],[46.202050781249994,39.59448242187503],[46.48144531249997,39.55517578125003],[46.36523437500003,39.402490234374994],[46.584765625000074,39.22368164062499],[46.400292968749994,39.1921875],[46.490625,38.90668945312498]]]},"properties":{"name":"Armenia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-170.72626953125,-14.351171875],[-170.8205078125,-14.312109375],[-170.568115234375,-14.266796875000011],[-170.72626953125,-14.351171875]]]},"properties":{"name":"American Samoa","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[69.2824218750001,-49.05888671875002],[69.16718750000004,-48.88291015624996],[69.36875,-48.89042968749998],[69.2824218750001,-49.05888671875002]]],[[[69.18486328125002,-49.10957031250004],[69.59277343749997,-48.97099609375005],[69.64404296875003,-49.11738281250003],[69.40507812500002,-49.18173828125],[69.5423828125,-49.25566406250005],[70.32021484375005,-49.05859374999996],[70.55546875000007,-49.201464843750024],[70.38613281250005,-49.433984374999966],[70.16582031250002,-49.34296874999998],[69.75996093750004,-49.430175781249986],[69.98642578125006,-49.58164062500003],[70.2477539062501,-49.53066406250003],[70.12431640625002,-49.70439453124999],[69.153125,-49.5296875],[68.99296875000007,-49.704980468750016],[68.81474609375002,-49.69960937499999],[68.88339843750006,-49.16494140624995],[68.76953125000003,-49.06591796875003],[69.00244140624997,-48.661230468750006],[69.13613281250005,-48.86103515625003],[69.05214843750005,-49.08193359375001],[69.18486328125002,-49.10957031250004]]],[[[51.83457031250006,-46.43994140625],[51.65927734375006,-46.37363281249999],[51.7418945312501,-46.32685546874997],[51.83457031250006,-46.43994140625]]]]},"properties":{"name":"Fr. S. Antarctic Lands","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[-61.71606445312503,17.037011718749994],[-61.85966796874996,17.013330078124966],[-61.887109374999966,17.09814453125],[-61.81728515624994,17.168945312500057],[-61.71606445312503,17.037011718749994]]]},"properties":{"name":"Antigua and Barb.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[147.35605468750006,-43.396972656250014],[147.30888671875007,-43.50078125000002],[147.10498046875003,-43.43115234374996],[147.28388671875004,-43.278906250000034],[147.35605468750006,-43.396972656250014]]],[[[145.04296875000003,-40.78671875],[145.28300781250002,-40.76992187500002],[146.31748046875006,-41.16347656250001],[146.72343750000002,-41.07802734375001],[146.84814453124997,-41.16806640624996],[146.98984375000006,-40.99238281249997],[147.45478515625004,-41.00166015624998],[147.62167968750012,-40.844726562499986],[147.87294921875005,-40.87255859374997],[147.96875,-40.779589843750045],[148.215234375,-40.85488281250002],[148.34257812500007,-42.21533203124997],[148.21367187500002,-41.97001953125],[147.92441406250006,-42.5724609375],[147.94541015625006,-43.18183593749997],[147.7858398437501,-43.22001953125002],[147.69892578125004,-43.12255859374997],[147.64794921874997,-43.02060546874999],[147.8,-42.928125],[147.57382812500006,-42.84570312499997],[147.4523437500001,-43.03339843750001],[147.29794921875006,-42.790917968749994],[147.24501953125005,-43.21591796874999],[146.99697265625005,-43.15634765625002],[147.07734375000004,-43.27587890625003],[146.87392578125,-43.6125],[146.54853515625004,-43.50888671874999],[146.04316406250004,-43.547167968749974],[145.99443359375007,-43.37607421875002],[146.20800781249997,-43.31621093749999],[145.8732421875001,-43.29238281250002],[145.48759765625002,-42.92666015625004],[145.19882812500006,-42.23085937500004],[145.46826171874997,-42.492871093750026],[145.51660156249997,-42.3544921875],[145.33105468750003,-42.14707031250002],[145.23486328124997,-42.19697265624997],[145.23818359375,-42.01962890624999],[144.76611328125003,-41.39003906249998],[144.64609375000006,-40.980859375],[144.71855468750002,-40.67226562500002],[145.04296875000003,-40.78671875]]],[[[148.23691406250006,-40.515136718749986],[148.18779296875007,-40.592578125000045],[148.11728515625012,-40.52148437499996],[148.23691406250006,-40.515136718749986]]],[[[144.784375,-40.506738281249966],[144.74804687499997,-40.589453125000034],[144.7833984375001,-40.434863281249974],[144.784375,-40.506738281249966]]],[[[148.32626953125006,-40.30693359375003],[148.40400390625004,-40.486523437500026],[148.02011718750012,-40.40419921874995],[148.32626953125006,-40.30693359375003]]],[[[148.000390625,-39.75761718750003],[148.29736328125003,-39.985742187499966],[148.31357421875012,-40.173535156250026],[148.10566406250004,-40.26210937499995],[147.76718750000012,-39.87031249999998],[148.000390625,-39.75761718750003]]],[[[143.92792968750004,-40.116113281249966],[143.83857421875004,-39.90410156250003],[144.00078125000007,-39.580175781250034],[144.14101562500005,-39.953808593750026],[143.92792968750004,-40.116113281249966]]],[[[145.31445312500003,-38.49082031249996],[145.35507812500012,-38.55703124999995],[145.12841796875003,-38.52763671875],[145.31445312500003,-38.49082031249996]]],[[[137.59648437500007,-35.73867187499998],[137.92890625000004,-35.72607421875],[138.12343750000005,-35.85234375],[137.67089843749997,-35.897949218750014],[137.44843750000004,-36.07480468749999],[137.20957031250012,-35.982421875],[136.7550781250001,-36.03310546875002],[136.540625,-35.89013671875003],[136.63867187499997,-35.74882812500002],[137.33408203125006,-35.59248046875004],[137.58496093749997,-35.620214843750006],[137.59648437500007,-35.73867187499998]]],[[[153.53876953125004,-27.436425781250037],[153.42656250000002,-27.70644531249998],[153.43544921875,-27.40537109375002],[153.53876953125004,-27.436425781250037]]],[[[113.18300781250005,-26.053125],[112.96425781250005,-25.78310546875001],[112.94707031250002,-25.531542968750017],[113.18300781250005,-26.053125]]],[[[153.07744140625002,-25.75078125],[152.97666015625012,-25.551367187499963],[153.03808593750003,-25.193164062500003],[153.22753906249997,-25.00576171875001],[153.14375,-24.814843750000023],[153.25693359375012,-24.72890625],[153.35019531250012,-25.063085937499963],[153.07744140625002,-25.75078125]]],[[[151.14658203125006,-23.49082031250002],[151.24013671875,-23.529687500000037],[151.23828124999997,-23.77578125],[151.03330078125006,-23.530175781250037],[151.14658203125006,-23.49082031250002]]],[[[115.44619140625005,-20.78779296875001],[115.31806640625004,-20.850585937500014],[115.43457031249997,-20.66796875000003],[115.44619140625005,-20.78779296875001]]],[[[149.04375,-20.29150390624997],[148.93886718750005,-20.283691406249986],[148.98105468750012,-20.153515625000026],[149.04375,-20.29150390624997]]],[[[146.27832031249997,-18.23125],[146.29882812499997,-18.48476562500005],[146.09882812500004,-18.251757812500003],[146.27832031249997,-18.23125]]],[[[139.45917968750004,-17.11455078124996],[139.49277343750006,-16.990429687499983],[139.57089843750006,-17.09443359375004],[139.45917968750004,-17.11455078124996]]],[[[139.50781250000003,-16.57304687499996],[139.1595703125,-16.74169921875003],[139.29296875000003,-16.467285156249986],[139.58789062499997,-16.39521484374997],[139.69775390624997,-16.514941406250017],[139.50781250000003,-16.57304687499996]]],[[[137.09365234375005,-15.778125],[136.94267578125002,-15.711718749999989],[137.00957031250007,-15.594824218749977],[137.09365234375005,-15.778125]]],[[[124.59726562500006,-15.40195312500002],[124.52421875000002,-15.421484375],[124.51933593750002,-15.26748046874998],[124.59726562500006,-15.40195312500002]]],[[[125.19882812500006,-14.57949218749998],[125.0912109375,-14.59169921874998],[125.15996093750002,-14.456054687499972],[125.19882812500006,-14.57949218749998]]],[[[136.71464843750002,-13.803906249999983],[136.89082031250004,-13.786621093750014],[136.74531250000004,-14.072656250000023],[136.95078125000006,-14.184277343750026],[136.89433593750002,-14.293066406249977],[136.33544921875003,-14.211816406250037],[136.42470703125,-13.864843749999963],[136.6556640625,-13.675878906250006],[136.71464843750002,-13.803906249999983]]],[[[136.23740234375006,-13.824511718750003],[136.12265625000012,-13.816601562499983],[136.21542968750012,-13.664746093750054],[136.23740234375006,-13.824511718750003]]],[[[136.33867187500007,-11.602343749999989],[136.18027343750006,-11.676757812499957],[136.47929687500002,-11.465917968749991],[136.33867187500007,-11.602343749999989]]],[[[130.45927734375007,-11.679296875000034],[130.60625,-11.816601562500026],[130.04326171875007,-11.787304687500011],[130.19755859375007,-11.658203125],[130.15283203124997,-11.477539062499972],[130.29492187499997,-11.33681640624998],[130.45927734375007,-11.679296875000034]]],[[[130.6188476562501,-11.376074218749991],[131.02304687500006,-11.334375],[131.26826171875004,-11.18984375],[131.53857421874997,-11.436914062500037],[130.95097656250007,-11.926464843750026],[130.51191406250004,-11.617871093749955],[130.38457031250002,-11.1921875],[130.6188476562501,-11.376074218749991]]],[[[136.59853515625,-11.378906249999943],[136.52656250000004,-11.438867187499994],[136.78027343749997,-11.0125],[136.59853515625,-11.378906249999943]]],[[[132.59335937500006,-11.302832031249991],[132.48378906250005,-11.037304687499983],[132.57880859375004,-10.968847656249977],[132.59335937500006,-11.302832031249991]]],[[[143.17890625000004,-11.954492187499966],[143.11025390625,-12.303515625000017],[143.40156250000004,-12.639941406249989],[143.5866210937501,-13.443652343750031],[143.54843750000012,-13.74101562499996],[143.75634765625003,-14.348828124999969],[143.96181640625005,-14.462890625000028],[144.473046875,-14.231835937500023],[144.64804687500006,-14.492480468750017],[145.28769531250006,-14.943164062499989],[145.42607421875002,-16.406152343749966],[145.75478515625,-16.879492187500034],[145.91210937499997,-16.9125],[146.12587890625005,-17.63525390625],[146.03222656249997,-18.272851562500037],[146.3332031250001,-18.55371093749997],[146.38339843750006,-18.97705078124997],[147.13876953125006,-19.39316406250002],[147.41855468750012,-19.378125],[147.7423828125001,-19.770117187499977],[148.759375,-20.28955078125003],[148.88476562499997,-20.480859375],[148.72998046874997,-20.4677734375],[148.68369140625012,-20.58017578124999],[149.20488281250007,-21.125097656249977],[149.45410156249997,-21.57871093750002],[149.70390625000002,-22.440527343750006],[149.82246093750004,-22.389843749999983],[149.97441406250007,-22.55068359374998],[149.94189453125003,-22.30810546875003],[150.07617187500003,-22.16445312499998],[150.54130859375002,-22.55908203125],[150.56855468750004,-22.38398437500004],[150.67246093750012,-22.418164062499983],[150.84316406250005,-23.4580078125],[151.15380859375003,-23.784082031249994],[151.83164062500006,-24.12294921875001],[152.12988281250003,-24.59755859374998],[152.45634765625007,-24.802441406249983],[152.65429687499997,-25.201953125000017],[152.91347656250005,-25.432128906250014],[152.98496093750012,-25.816210937500003],[153.16494140625,-25.964160156250045],[153.11679687500006,-27.194433593750034],[153.57568359375003,-28.24052734374999],[153.6168945312501,-28.673046875],[153.03056640625002,-30.563378906249994],[152.94394531250012,-31.43486328124999],[152.5592773437501,-32.045703125],[152.4704101562501,-32.439062500000034],[152.13652343750002,-32.678125],[152.1642578125001,-32.75742187499996],[151.812890625,-32.90107421875001],[151.29208984375012,-33.580957031249966],[151.28027343750003,-33.92666015625005],[151.12480468750007,-34.00527343749998],[151.23154296875006,-34.0296875],[150.8712890625001,-34.49912109374996],[150.80458984375,-35.01289062500001],[150.19531249999997,-35.83359374999996],[149.93271484375012,-37.528515625000026],[149.480859375,-37.77119140625],[147.87675781250002,-37.93417968749998],[146.8568359375,-38.663476562499966],[146.21748046875004,-38.72744140625004],[146.33662109375004,-38.89423828125],[146.46660156250007,-38.84033203125003],[146.40000000000012,-39.14550781250003],[146.1583984375001,-38.86572265624996],[145.93535156250002,-38.90175781250002],[145.79082031250007,-38.66699218749997],[145.39726562500002,-38.53535156249998],[145.54218750000004,-38.39384765625002],[145.4757812500001,-38.24375],[145.29277343750002,-38.237597656249974],[144.95957031250012,-38.500781250000045],[144.71777343749997,-38.34033203125004],[144.91142578125007,-38.34404296874999],[145.11992187500007,-38.091308593750014],[144.89130859375004,-37.899804687499994],[144.39550781250003,-38.13691406249998],[144.6652343750001,-38.20996093750003],[143.53896484375005,-38.82089843749998],[142.45585937500002,-38.38632812499999],[141.725,-38.27138671875002],[141.5939453125001,-38.38779296875002],[141.42421875,-38.36347656250004],[141.0109375000001,-38.07695312500003],[140.39042968750007,-37.89667968749998],[139.78427734375012,-37.24580078124998],[139.85732421875,-36.662109375],[139.72900390625003,-36.37138671875002],[138.9689453125001,-35.58076171874997],[139.17802734375007,-35.52304687500002],[139.289453125,-35.61132812499997],[139.28251953125002,-35.375390624999966],[138.521875,-35.6423828125],[138.184375,-35.612695312499994],[138.5111328125,-35.02441406249996],[138.48994140625004,-34.76357421875002],[138.0892578125,-34.16982421875002],[137.69169921875002,-35.14296875000004],[136.88359375000007,-35.23974609375004],[137.01425781250012,-34.91582031250003],[137.39101562500005,-34.91328124999997],[137.49384765625004,-34.16113281250003],[137.9318359375001,-33.57910156250003],[137.85234375000007,-33.20078124999996],[137.99257812500005,-33.094238281250014],[137.78320312500003,-32.578125],[137.79091796875,-32.82324218749996],[137.44228515625,-33.1935546875],[137.23730468750003,-33.62949218749999],[136.43066406249997,-34.02998046875004],[135.891015625,-34.660937499999974],[135.96972656249997,-34.98183593749998],[135.7923828125,-34.863281249999986],[135.64755859375006,-34.93964843750001],[135.12304687499997,-34.58574218750003],[135.21679687499997,-34.48730468749996],[135.45,-34.58105468749996],[135.21894531250004,-33.959765625000045],[134.88876953125012,-33.62636718749998],[134.79101562499997,-33.32832031250001],[134.60771484375002,-33.19013671875001],[134.30126953124997,-33.16503906249996],[134.17353515625004,-32.979101562500006],[134.10039062500007,-32.748632812500034],[134.22714843750006,-32.73056640624999],[134.23417968750007,-32.54853515625004],[133.66533203125007,-32.207226562500054],[133.21210937500004,-32.18378906249998],[132.75742187500012,-31.95625],[132.21464843750002,-32.00712890624996],[131.14365234375006,-31.49570312500005],[130.78300781250002,-31.604003906249986],[129.1876953125001,-31.659960937500017],[127.31982421874997,-32.2640625],[125.91718750000004,-32.296972656250034],[124.75878906250003,-32.882714843749994],[124.24375,-33.01523437499999],[123.50683593749997,-33.916210937500054],[122.15097656250006,-33.99179687499999],[122.06113281250006,-33.874414062499966],[121.40507812500007,-33.826757812500034],[119.85410156250012,-33.97470703124998],[119.45058593750005,-34.368261718750034],[118.89531250000007,-34.47988281250004],[118.13554687500002,-34.98662109374999],[117.58193359375005,-35.09775390624998],[116.51718750000012,-34.98789062499998],[115.98671875000005,-34.795019531250034],[115.56503906250012,-34.42578125000003],[115.00878906250003,-34.25585937499997],[114.9938476562501,-33.51533203125],[115.3587890625,-33.63994140624999],[115.68300781250005,-33.19287109375003],[115.6984375000001,-31.694531250000054],[115.07792968750007,-30.560449218750023],[114.85683593750005,-29.14296875],[114.16513671875012,-28.08066406250002],[114.028125,-27.34726562499999],[113.18476562500004,-26.182226562499963],[113.32324218749997,-26.243847656249997],[113.35605468750012,-26.080468750000023],[113.58164062500006,-26.558105468749986],[113.73369140625002,-26.59511718749998],[113.83642578125003,-26.50058593749999],[113.85283203125007,-26.33212890625005],[113.39531250000002,-25.71328125],[113.4513671875001,-25.599121093750014],[113.7130859375001,-25.83076171875004],[113.72373046875006,-26.129785156250037],[113.85390625,-26.01445312499999],[113.99199218750007,-26.32148437500001],[114.09033203124997,-26.393652343749963],[114.21572265625,-26.289453124999966],[114.2142578125,-25.851562500000014],[113.41767578125004,-24.435644531250034],[113.48984375000012,-23.869628906250014],[113.7570312500001,-23.418164062500054],[113.79511718750004,-22.91455078125003],[113.68281250000004,-22.637792968749963],[114.02285156250005,-21.881445312499977],[114.12392578125005,-21.828613281249957],[114.14160156250003,-22.483105468749983],[114.37773437500007,-22.341503906249997],[114.70927734375002,-21.82343749999997],[115.45615234375012,-21.49169921874997],[116.0109375000001,-21.030371093749963],[116.7067382812501,-20.653808593749986],[117.40625,-20.72119140625003],[118.19921875000003,-20.37519531249997],[118.75146484374997,-20.261914062499983],[119.10449218749997,-19.995312500000026],[119.58593750000003,-20.03828125],[120.99794921875,-19.604394531249966],[121.33769531250002,-19.31992187500002],[121.83378906250002,-18.477050781249986],[122.34541015625004,-18.11191406250002],[122.14746093749997,-17.54902343750001],[122.2609375000001,-17.135742187500014],[122.72041015625004,-16.78769531249999],[122.97070312499997,-16.436816406250003],[123.56308593750006,-17.520898437499966],[123.59355468750007,-17.03037109375005],[123.83105468750003,-17.120800781249997],[123.8744140625,-16.918652343750026],[123.4904296875001,-16.49072265624997],[123.62597656249997,-16.416308593750003],[123.60703125000006,-16.224023437499994],[123.72890625,-16.192480468749963],[123.85917968750007,-16.38232421875],[124.04443359374997,-16.264941406249974],[124.30039062500006,-16.388281249999977],[124.77197265624997,-16.40263671874996],[124.40488281250006,-16.298925781249977],[124.41640625,-16.133496093750026],[124.5768554687501,-16.11367187499998],[124.64853515625012,-15.870214843750034],[124.50429687500005,-15.972460937499989],[124.38164062500002,-15.758203125000037],[124.43955078125012,-15.493554687500037],[124.56162109375012,-15.496289062499969],[124.69257812500004,-15.273632812499997],[125.06298828125003,-15.44228515624998],[125.0729492187501,-15.306738281249991],[124.90917968750003,-15.310058593749957],[124.83906250000004,-15.160742187500006],[125.03818359375012,-15.004101562499969],[125.35566406250004,-15.119824218750011],[125.17871093749997,-14.714746093749994],[125.57978515625004,-14.483203124999989],[125.62773437500002,-14.256640625000017],[125.70458984374997,-14.29140625],[125.66162109375003,-14.529492187500011],[125.81953125000004,-14.469140624999966],[125.890625,-14.61796875],[126.0207031250001,-14.49453125],[126.0539062500001,-13.977246093750026],[126.1842773437501,-14.00205078125002],[126.25849609375004,-14.163574218749972],[126.403125,-14.018945312499994],[126.5697265625,-14.160937499999974],[126.7806640625,-13.955175781249977],[126.77558593750004,-13.788476562500037],[126.90322265625,-13.744140624999972],[127.45761718750006,-14.031445312499969],[128.18046875000007,-14.711621093749983],[128.06943359375012,-15.329296874999969],[128.15546875000004,-15.225585937499972],[128.25468750000002,-15.298535156250011],[128.175,-15.043164062500026],[128.57578125000006,-14.774511718750006],[129.05820312500012,-14.884375],[129.21582031249997,-15.160253906249991],[129.26757812500003,-14.871484375000051],[129.63476562499997,-15.139746093749991],[129.637109375,-14.850976562500037],[129.84873046875012,-14.828906249999989],[129.60468750000004,-14.647070312499977],[129.69794921875004,-14.557421875000017],[129.37871093750002,-14.39248046874998],[129.70986328125,-13.979980468749972],[129.83886718749997,-13.572949218749997],[130.25976562500003,-13.30224609375],[130.1349609375001,-13.145507812499957],[130.1681640625001,-12.957421875],[130.39990234374997,-12.68789062499999],[130.61748046875007,-12.646875],[130.62265625000006,-12.43105468749998],[130.8673828125001,-12.557812499999955],[130.87382812500007,-12.367187500000028],[131.29160156250006,-12.067871093749972],[131.43828125000002,-12.27695312500002],[132.06406250000006,-12.28076171875],[132.25322265625007,-12.186035156249972],[132.41103515625,-12.295117187499997],[132.51054687500002,-12.134863281250034],[132.71279296875,-12.1234375],[132.63046875000012,-12.035156249999972],[132.67421875000005,-11.649023437499991],[132.47519531250006,-11.491503906249974],[132.07285156250006,-11.474707031250006],[131.82246093750004,-11.302441406249997],[131.96152343750006,-11.180859375000011],[132.15546875000004,-11.311132812499991],[132.33398437499997,-11.223535156249994],[132.6828125000001,-11.505566406249997],[132.96103515625012,-11.407324218749963],[133.18525390625004,-11.705664062499991],[133.90419921875,-11.832031249999972],[134.4173828125,-12.052734375],[134.73027343750002,-11.984375],[135.02968750000005,-12.19375],[135.2179687500001,-12.221679687499957],[135.92246093750012,-11.825781250000034],[135.70439453125007,-12.209863281250037],[136.00849609375004,-12.19140625],[136.08183593750007,-12.422460937500006],[136.26064453125,-12.433789062499997],[136.32851562500005,-12.305566406249994],[136.24990234375,-12.173046875],[136.44335937499997,-11.951464843749974],[136.7194335937501,-12.226464843749952],[136.89746093749997,-12.243554687499966],[136.94746093750004,-12.34990234374996],[136.53701171875,-12.784277343749991],[136.59433593750012,-13.003808593750051],[136.46103515625006,-13.225195312500034],[136.29414062500004,-13.137988281250031],[135.92734375000012,-13.304296874999977],[135.95449218750005,-13.934863281250017],[135.40517578125005,-14.758203124999966],[135.4533203125001,-14.923144531250003],[136.20537109375002,-15.403417968749963],[136.29140625000005,-15.570117187500003],[136.70488281250007,-15.685253906250011],[136.78466796874997,-15.89423828125004],[137.00214843750004,-15.878320312499994],[137.70371093750006,-16.233007812499963],[138.24501953125005,-16.718359374999977],[139.00986328125006,-16.899316406249994],[139.2484375,-17.328613281249957],[140.03583984375004,-17.702636718749957],[140.51113281250005,-17.62451171875003],[140.83046875,-17.414453125000037],[141.29140625,-16.46347656250002],[141.62548828124997,-15.056640625000014],[141.52294921875003,-14.470117187499994],[141.59433593750006,-14.152832031250014],[141.47255859375,-13.797558593750011],[141.64541015625,-13.259082031250003],[141.61357421875002,-12.943457031250006],[141.92978515625006,-12.73984375],[141.67773437500003,-12.491406250000011],[141.68857421875012,-12.351074218750028],[141.87050781250005,-11.9755859375],[141.96113281250004,-12.054296874999963],[142.168359375,-10.946582031249974],[142.45644531250005,-10.707324218749989],[142.60507812500012,-10.748242187499983],[142.55273437500003,-10.874414062500023],[142.7796875,-11.115332031249977],[142.87255859374997,-11.821386718750034],[143.17890625000004,-11.954492187499966]]],[[[142.2748046875,-10.704785156250011],[142.19140624999997,-10.762011718750031],[142.1310546875001,-10.640625],[142.19794921875004,-10.59199218750004],[142.2748046875,-10.704785156250011]]]]},"properties":{"name":"Australia","childNum":30}},{"geometry":{"type":"Polygon","coordinates":[[[16.953125,48.598828125],[16.86542968750001,48.3869140625],[17.147363281250023,48.00595703125],[17.06660156250001,47.707568359374996],[16.421289062500023,47.674462890624994],[16.676562500000017,47.536035156249994],[16.44287109375,47.39951171875],[16.453417968750017,47.006787109375],[16.093066406250017,46.86328125],[15.957617187500006,46.677636718749994],[14.893261718750011,46.605908203125],[14.5498046875,46.399707031249996],[13.7,46.520263671875],[13.490039062500017,46.555566406249994],[13.3515625,46.557910156249996],[13.16875,46.57265625],[12.479199218750011,46.672509765624994],[12.38828125,46.70263671875],[12.330078125,46.759814453124996],[12.267968750000023,46.835888671875],[12.154101562500017,46.93525390625],[12.130761718750023,46.98476562499999],[12.16552734375,47.028173828125],[12.201269531250006,47.060888671875],[12.197167968750023,47.075],[12.16943359375,47.08212890625],[11.775683593750017,46.986083984375],[11.527539062500011,46.997412109375],[11.433203125,46.983056640624994],[11.244433593750017,46.97568359375],[11.133886718750006,46.936181640624994],[11.0634765625,46.859130859375],[11.025097656250011,46.79697265625],[10.993261718750006,46.777001953124994],[10.92734375,46.769482421875],[10.828906250000017,46.775244140625],[10.759765625,46.793310546875],[10.689257812500017,46.84638671875],[10.579785156250011,46.8537109375],[10.479394531250023,46.855126953124994],[10.452832031250011,46.86494140625],[10.45458984375,46.8994140625],[10.414941406250023,46.964404296874996],[10.349414062500017,46.98476562499999],[10.133496093750011,46.851513671875],[9.580273437500011,47.057373046875],[9.527539062500011,47.270751953125],[9.625878906250023,47.467041015625],[9.524023437500006,47.52421875],[9.748925781250023,47.575537109375],[9.839160156250017,47.552294921874996],[9.971582031250023,47.505322265625],[10.034082031250023,47.473583984375],[10.059863281250017,47.449072265625],[10.066308593750023,47.393359375],[10.200292968750006,47.363427734374994],[10.183007812500023,47.27880859375],[10.369140625,47.366064453125],[10.40390625,47.4169921875],[10.439453125,47.5515625],[10.482812500000023,47.541796875],[10.65869140625,47.547216796875],[10.741601562500023,47.52412109375],[10.873046875,47.52021484375],[11.0419921875,47.393115234374996],[12.185644531250006,47.61953125],[12.203808593750011,47.646728515625],[12.196875,47.70908203125],[12.209277343750017,47.71826171875],[12.268359375000017,47.702734375],[12.353540736607165,47.70264787946429],[12.492553013392856,47.68551897321428],[12.685839843750017,47.669335937499994],[12.771386718750023,47.639404296875],[12.796191406250017,47.60703125],[12.781152343750023,47.5904296875],[12.7828125,47.56416015625],[12.809375,47.5421875],[12.87890625,47.5064453125],[12.968066406250017,47.47568359375],[13.014355468750011,47.478076171874996],[13.031542968750017,47.5080078125],[13.047949218750006,47.579150390624996],[13.054101562500023,47.655126953125],[12.897656250000011,47.721875],[12.953515625000023,47.890625],[12.760351562500006,48.106982421874996],[13.215234375000023,48.301904296874994],[13.322851562500006,48.33125],[13.409375,48.394140625],[13.459863281250023,48.56455078125],[13.4716796875,48.571826171874996],[13.486621093750017,48.581835937499996],[13.636623883928596,48.580904017857144],[13.785351562500011,48.587451171874996],[13.798828125,48.6216796875],[13.802929687500011,48.747509765625],[13.814746093750017,48.766943359375],[14.049121093750017,48.602490234375],[14.691308593750023,48.59921875],[15.066796875000023,48.997851562499996],[16.057226562500006,48.754785156249994],[16.543554687500006,48.796240234375],[16.953125,48.598828125]]]},"properties":{"name":"Austria","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[46.1144531250001,38.877783203125034],[45.4796875000001,39.00625],[44.81718750000002,39.65043945312496],[44.76826171875004,39.70351562500005],[45.03164062500005,39.76513671874997],[45.15283203125003,39.58266601562502],[45.456835937500074,39.494482421875006],[45.78447265625002,39.54560546875001],[45.76630859375004,39.37846679687499],[45.977441406249994,39.24389648437503],[46.1144531250001,38.877783203125034]]],[[[48.572851562500006,41.84448242187503],[49.45673828125004,40.79985351562502],[49.77597656250006,40.583984375],[50.18251953125005,40.50478515625002],[50.3659179687501,40.279492187499955],[49.91884765625005,40.31640625000003],[49.55117187499999,40.19414062499999],[49.3244140625001,39.60834960937501],[49.36279296875003,39.349560546874955],[49.16533203125002,39.03027343750003],[49.013476562500074,39.13398437500001],[48.85449218750003,38.83881835937501],[48.86875,38.43549804687498],[48.59267578125005,38.41108398437498],[47.99648437499999,38.85375976562503],[48.292089843750006,39.01884765624999],[48.10439453125005,39.241113281249994],[48.322167968749994,39.39907226562502],[47.995898437500074,39.683935546875034],[46.490625,38.90668945312498],[46.400292968749994,39.1921875],[46.584765625000074,39.22368164062499],[46.36523437500003,39.402490234374994],[46.48144531249997,39.55517578125003],[46.202050781249994,39.59448242187503],[45.57978515625004,39.9775390625],[45.8859375000001,40.024853515624955],[45.96464843750002,40.233789062499966],[45.45439453125002,40.532373046874966],[45.37890624999997,40.67358398437506],[45.5875,40.846923828125],[45.07050781250004,41.075585937499966],[45.188574218750006,41.14741210937504],[45.001367187499994,41.29096679687498],[45.2171875,41.423193359375006],[45.28095703125004,41.449560546875034],[46.086523437500006,41.183837890625],[46.43095703125002,41.077050781249994],[46.534375,41.08857421875004],[46.62636718750005,41.15966796875006],[46.66240234375002,41.24550781250002],[46.67255859375004,41.28681640625001],[46.61894531250002,41.34375],[46.30546875000002,41.507714843749994],[46.18427734375004,41.70214843749997],[46.42988281250004,41.890966796875006],[46.74931640625002,41.812597656250006],[47.31767578125002,41.28242187500001],[47.79101562499997,41.19926757812502],[48.572851562500006,41.84448242187503]]]]},"properties":{"name":"Azerbaijan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[30.553613281250023,-2.400097656250011],[30.53369140625,-2.42626953125],[30.441992187500006,-2.613476562500011],[30.424218750000023,-2.6416015625],[30.47333984375001,-2.6943359375],[30.42402343750001,-2.824023437500003],[30.433496093750023,-2.87451171875],[30.515039062500023,-2.917578125],[30.604296875000017,-2.935253906250011],[30.70947265625,-2.977246093750011],[30.7802734375,-2.98486328125],[30.811132812500006,-3.116406250000011],[30.79023437500001,-3.274609375000011],[30.4,-3.65390625],[29.947265625,-4.307324218750011],[29.7177734375,-4.455859375],[29.403222656250023,-4.449316406250006],[29.211816406250023,-3.833789062500003],[29.224414062500017,-3.053515625],[29.01435546875001,-2.72021484375],[29.10205078125,-2.595703125],[29.390234375,-2.80859375],[29.698046875000017,-2.794726562500003],[29.8681640625,-2.71640625],[29.93017578125,-2.339550781250011],[30.117285156250006,-2.416601562500006],[30.408496093750017,-2.31298828125],[30.553613281250023,-2.400097656250011]]]},"properties":{"name":"Burundi","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[5.693554687500011,50.774755859375006],[5.993945312500017,50.75043945312504],[6.340917968750006,50.451757812500034],[6.116503906250045,50.120996093749966],[6.08906250000004,50.15458984374996],[6.054785156249977,50.154296875],[5.976269531250068,50.167187499999955],[5.866894531250068,50.08281250000002],[5.817382812500028,50.01269531250003],[5.7880859375,49.96123046875002],[5.744042968749994,49.91962890624998],[5.789746093749983,49.53828125000001],[5.50732421875,49.51088867187502],[4.867578125000051,49.78813476562502],[4.818652343750045,50.153173828125034],[4.545019531250063,49.96025390624999],[4.149316406250023,49.971582031249994],[4.174609375000017,50.24648437500005],[3.689355468750023,50.30605468750002],[3.595410156250068,50.47734374999999],[3.27333984375008,50.53154296875002],[3.10683593750008,50.779443359374994],[2.759375,50.750634765624994],[2.52490234375,51.097119140624955],[3.35009765625,51.37768554687503],[3.43251953125008,51.24575195312505],[3.902050781250011,51.20766601562502],[4.226171875000034,51.38647460937503],[5.03095703125004,51.46909179687498],[5.214160156250045,51.278955078124966],[5.796484375000034,51.153076171875],[5.693554687500011,50.774755859375006]]]},"properties":{"name":"Belgium","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[3.595410156250011,11.6962890625],[3.553906250000011,11.631884765624989],[3.490527343750017,11.49921875],[3.48779296875,11.395410156249994],[3.638867187500011,11.176855468749991],[3.65625,11.154589843749989],[3.6953125,11.1203125],[3.71640625,11.07958984375],[3.7568359375,10.76875],[3.83447265625,10.607421875],[3.771777343750017,10.417626953124994],[3.646582031250006,10.408984374999989],[3.60205078125,10.004541015624994],[3.3251953125,9.778466796874994],[3.044921875,9.083837890624991],[2.774804687500023,9.048535156249997],[2.703125,8.371826171875],[2.68603515625,7.873730468749997],[2.719335937500006,7.616259765624989],[2.7509765625,7.541894531249994],[2.78515625,7.476855468749989],[2.783984375000017,7.443408203124989],[2.765820312500011,7.422509765624994],[2.75048828125,7.395068359374989],[2.756738281250023,7.067919921874989],[2.721386718750011,6.980273437499989],[2.731738281250017,6.852832031249989],[2.7529296875,6.771630859374994],[2.774609375000011,6.711718749999989],[2.753710937500017,6.661767578124994],[2.735644531250017,6.595703125],[2.706445312500023,6.369238281249991],[1.62265625,6.216796875],[1.777929687500006,6.294628906249997],[1.530957031250011,6.992431640625],[1.624707031250011,6.997314453125],[1.600195312500006,9.050048828125],[1.3857421875,9.361669921874991],[1.330078125,9.996972656249994],[0.763378906250011,10.386669921874997],[0.900488281250006,10.993261718749991],[1.4267578125,11.447119140624991],[1.980371093750023,11.418408203124997],[2.38916015625,11.897070312499991],[2.366015625000017,12.221923828125],[2.805273437500006,12.383837890624989],[3.595410156250011,11.6962890625]]]},"properties":{"name":"Benin","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[0.217480468750011,14.911474609374991],[0.163867187500017,14.497216796874994],[0.382519531250011,14.245800781249997],[0.42919921875,13.972119140624997],[0.6181640625,13.703417968750003],[1.201171875,13.357519531249991],[0.988476562500011,13.36484375],[0.9873046875,13.041894531249994],[1.56494140625,12.635400390624994],[2.104589843750006,12.701269531249991],[2.226269531250011,12.466064453125],[2.072949218750011,12.309375],[2.38916015625,11.897070312499991],[1.980371093750023,11.418408203124997],[1.4267578125,11.447119140624991],[0.900488281250006,10.993261718749991],[0.49267578125,10.954980468749994],[-0.068603515625,11.115625],[-0.299462890624994,11.166894531249994],[-0.627148437499983,10.927392578124994],[-1.04248046875,11.010058593749989],[-2.829931640624977,10.998388671874991],[-2.914892578124977,10.592333984374989],[-2.791162109374994,10.432421874999989],[-2.780517578125,9.745849609375],[-2.765966796874977,9.658056640624991],[-2.706201171874994,9.533935546875],[-2.695849609374989,9.481347656249994],[-2.7171875,9.457128906249991],[-2.7666015625,9.424707031249994],[-2.816748046874977,9.425830078124989],[-2.875146484374994,9.500927734374997],[-2.90087890625,9.534619140624997],[-2.948144531249994,9.610742187499994],[-2.98828125,9.687353515624991],[-3.042626953124994,9.720898437499997],[-3.095800781249977,9.752099609374994],[-3.160693359374989,9.849169921874989],[-3.223535156249994,9.895458984374997],[-3.289697265624994,9.882226562499994],[-3.581152343749977,9.92431640625],[-3.790625,9.9171875],[-4.18115234375,9.78173828125],[-4.267187499999977,9.743261718749991],[-4.332226562499983,9.645703125],[-4.406201171874983,9.647998046874989],[-4.526611328125,9.723486328124991],[-4.625830078124977,9.713574218749997],[-4.721777343749977,9.756542968749997],[-5.262304687499977,10.319677734374991],[-5.523535156249977,10.426025390625],[-5.490478515625,11.042382812499994],[-5.250244140625,11.375781249999989],[-5.288134765624989,11.827929687499989],[-4.699316406249977,12.076171875],[-4.4287109375,12.337597656249997],[-4.480615234374994,12.672216796874991],[-4.227099609374989,12.793701171875],[-4.328710937499977,13.119042968749994],[-4.151025390624994,13.306201171875003],[-3.947314453124989,13.402197265624991],[-3.527636718749989,13.182714843749991],[-3.3017578125,13.28076171875],[-3.248632812499977,13.658349609374994],[-2.950830078124994,13.6484375],[-2.873925781249994,13.950732421875003],[-2.586718749999989,14.227587890625003],[-2.113232421874983,14.16845703125],[-1.97304687499999,14.45654296875],[-1.049560546875,14.81953125],[-0.760449218749983,15.047753906249994],[-0.235888671874989,15.059423828124991],[0.217480468750011,14.911474609374991]]]},"properties":{"name":"Burkina Faso","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[91.94921875000003,21.50805664062503],[91.85947265625012,21.532958984375057],[91.90771484374997,21.722949218750017],[91.94921875000003,21.50805664062503]]],[[[91.87382812500002,21.832128906249977],[91.8375976562501,21.750244140625],[91.85068359375012,21.927050781250045],[91.87382812500002,21.832128906249977]]],[[[91.15078125000005,22.175195312499966],[91.04472656250002,22.10517578125001],[91.0794921875,22.519726562499983],[91.15078125000005,22.175195312499966]]],[[[91.55673828125006,22.38222656250005],[91.41132812500004,22.475683593750006],[91.45605468749997,22.61650390624999],[91.55673828125006,22.38222656250005]]],[[[90.77763671875007,22.089306640624983],[90.51503906250005,22.06513671875001],[90.68046875000007,22.327490234375006],[90.50292968749997,22.835351562499994],[90.59648437500002,22.863525390625057],[90.86816406250003,22.48486328125],[90.77763671875007,22.089306640624983]]],[[[88.94072265625002,26.24536132812497],[88.97041015625004,26.250878906250023],[88.95195312500002,26.412109375],[89.01865234375012,26.410253906249977],[89.28925781250004,26.03759765625],[89.54990234375006,26.005273437499994],[89.57275390625003,26.13232421875003],[89.67089843750003,26.21381835937504],[89.8229492187501,25.94140625000003],[89.82490234375004,25.56015625],[89.80087890625012,25.33613281250001],[89.81406250000006,25.305371093749955],[89.86630859375012,25.293164062499955],[90.11962890625003,25.21997070312497],[90.61308593750002,25.16772460937497],[92.04970703125005,25.16948242187499],[92.46835937500006,24.94414062499999],[92.38496093750004,24.848779296875023],[92.25126953125007,24.895068359375045],[92.22832031250002,24.88134765625],[92.22666015625012,24.77099609374997],[92.11748046875002,24.493945312500017],[92.06416015625004,24.374365234375006],[91.84619140624997,24.17529296875003],[91.72656250000003,24.20507812499997],[91.35019531250012,24.06049804687501],[91.16044921875007,23.66064453125],[91.359375,23.06835937500003],[91.43623046875004,23.19990234375001],[91.55351562500002,22.991552734375006],[91.61953125,22.97968750000001],[91.75097656250003,23.053515625000017],[91.75419921875007,23.287304687499955],[91.79003906249997,23.361035156249983],[91.937890625,23.504687500000017],[91.92949218750007,23.598242187499977],[91.92958984375,23.68598632812501],[91.97851562500003,23.691992187499977],[92.04404296875006,23.677783203125017],[92.24609375000003,23.683593750000057],[92.33378906250002,23.242382812499955],[92.36162109375002,22.929003906250074],[92.46445312500006,22.734423828125045],[92.49140625000004,22.685400390625006],[92.5612304687501,22.04804687500001],[92.57490234375004,21.978076171875045],[92.58281250000002,21.940332031249994],[92.5934570312501,21.46733398437499],[92.63164062500002,21.306201171875045],[92.33056640624997,21.439794921874977],[92.17958984375005,21.293115234375023],[92.32412109375,20.791845703125063],[92.0560546875,21.1748046875],[91.86337890625012,22.350488281249966],[91.7970703125001,22.297460937500006],[91.48007812500006,22.884814453125045],[91.2162109375,22.642236328124994],[90.94560546875002,22.597021484375034],[90.65625,23.025488281250006],[90.60400390624997,23.59135742187499],[90.55566406249997,23.42153320312505],[90.26914062500012,23.455859375000017],[90.59091796875012,23.266406250000045],[90.43505859374997,22.751904296874955],[90.61611328125,22.362158203125034],[90.23056640625006,21.82978515625004],[90.07119140625005,21.887255859375017],[90.20957031250006,22.156591796875006],[89.95419921875006,22.022851562500023],[89.91806640625012,22.11616210937501],[89.98515625000002,22.466406250000063],[89.81191406250005,21.983496093750006],[89.56855468750004,21.767431640625034],[89.48320312500007,22.275537109374994],[89.50058593750006,21.914355468750045],[89.35371093750004,21.72109375],[89.09394531250004,21.872753906249983],[89.05,22.274609374999983],[88.92070312500002,22.632031249999955],[88.89970703125002,22.843505859375057],[88.85058593749997,23.040527343750057],[88.928125,23.186621093750063],[88.72441406250002,23.254980468750034],[88.69765625,23.493017578125034],[88.63574218749997,23.55],[88.56738281249997,23.674414062500034],[88.69980468750006,24.002539062500006],[88.71376953125,24.069628906250017],[88.72656250000003,24.186230468749955],[88.7335937500001,24.23090820312501],[88.72353515625,24.27490234375],[88.64228515625004,24.325976562500017],[88.49853515625003,24.34663085937504],[88.3375,24.45385742187503],[88.225,24.460644531249983],[88.14550781250003,24.485791015624955],[88.07910156249997,24.549902343750063],[88.02343750000003,24.62783203125005],[88.03027343749997,24.66445312500005],[88.0451171875001,24.713037109374994],[88.1498046875,24.914648437500034],[88.1888671875,24.92060546875001],[88.27949218750004,24.881933593750034],[88.31337890625005,24.8818359375],[88.37294921875,24.961523437499977],[88.45625,25.18842773437504],[88.57382812500006,25.18789062499999],[88.92978515625012,25.222998046875063],[88.94414062500002,25.290771484375],[88.85478515625002,25.333544921875017],[88.76914062500006,25.490478515625],[88.50244140624997,25.537011718749994],[88.14746093749997,25.811425781250023],[88.1066406250001,25.841113281250045],[88.15078125000005,26.08715820312497],[88.33398437499997,26.257519531249955],[88.44042968749997,26.369482421875034],[88.38623046875003,26.471533203125034],[88.35146484375005,26.482568359374966],[88.36992187500002,26.564111328124994],[88.51826171875004,26.517773437499955],[88.68281250000004,26.291699218749983],[88.94072265625002,26.24536132812497]]]]},"properties":{"name":"Bangladesh","childNum":6}},{"geometry":{"type":"Polygon","coordinates":[[[28.585351562500023,43.742236328124996],[28.465429687500006,43.389306640624994],[28.133691406250023,43.39560546875],[27.92890625000001,43.1861328125],[27.88886718750001,42.74970703125],[27.484765625000023,42.468066406249996],[28.014453125000017,41.969042968749996],[27.47480468750001,41.946875],[27.294921875,42.079541015625],[27.24433593750001,42.09326171875],[27.01171875,42.058642578124996],[26.96875,42.02685546875],[26.884863281250006,41.991845703124994],[26.615332031250006,41.964892578124996],[26.549707031250023,41.896728515625],[26.51142578125001,41.8263671875],[26.3603515625,41.8015625],[26.327246093750006,41.772802734375],[26.31796875,41.744677734374996],[26.320898437500006,41.716552734375],[26.200585937500023,41.743798828124994],[26.107421875,41.72568359375],[26.085546875,41.704150390624996],[26.066015625,41.673242187499994],[26.1435546875,41.521533203124996],[26.155175781250023,41.434863281249996],[26.135351562500006,41.3857421875],[26.06640625,41.35068359375],[25.92333984375,41.311914062499994],[25.784960937500017,41.330419921875],[25.52705078125001,41.2998046875],[25.381933593750006,41.26435546875],[25.25117187500001,41.243554687499994],[24.773730468750017,41.356103515624994],[24.595996093750017,41.442724609375],[24.5693359375,41.4673828125],[24.51826171875001,41.552539062499996],[24.487890625,41.555224609374996],[24.056054687500023,41.527246093749994],[24.03291015625001,41.469091796875],[24.011328125,41.46005859375],[23.635156250000023,41.386767578124996],[23.53583984375001,41.386035156249996],[23.433398437500017,41.398730468749996],[23.3720703125,41.3896484375],[23.23984375,41.3849609375],[23.15595703125001,41.322070312499996],[22.916015625,41.336279296875],[23.00361328125001,41.73984375],[22.836816406250023,41.993603515625],[22.344042968750017,42.31396484375],[22.42207031250001,42.328857421875],[22.445703125000023,42.359130859375],[22.523535156250006,42.440966796874996],[22.53242187500001,42.481201171875],[22.524218750000017,42.50390625],[22.43623046875001,42.6291015625],[22.466796875,42.84248046875],[22.799902343750006,42.985742187499994],[22.976855468750017,43.18798828125],[22.85957031250001,43.25234375],[22.819726562500023,43.300732421875],[22.767578125,43.354150390624994],[22.554589843750023,43.454492187499994],[22.36962890625,43.781298828124996],[22.36542968750001,43.862109375],[22.399023437500006,43.96953125],[22.420800781250023,44.007421875],[22.452529688228115,44.0510441391688],[22.547921095934313,44.113823956634434],[22.688564844478098,44.254306249271906],[23.02851562500001,44.077978515625],[22.868261718750006,43.947900390624994],[22.919042968750006,43.83447265625],[25.4970703125,43.670800781249994],[26.2158203125,44.007275390625],[27.0869140625,44.167382812499994],[27.425390625,44.0205078125],[27.88427734375,43.987353515624996],[28.221972656250017,43.772851562499994],[28.585351562500023,43.742236328124996]]]},"properties":{"name":"Bulgaria","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[50.60722656250002,25.883105468750003],[50.57490234375001,25.806787109374994],[50.465917968750006,25.965527343749997],[50.46992187500001,26.228955078124997],[50.5859375,26.24072265625],[50.60722656250002,25.883105468750003]]]},"properties":{"name":"Bahrain","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-73.02685546874994,21.19238281250003],[-73.16455078125003,20.979150390625023],[-73.68115234375003,20.9755859375],[-73.68037109374995,21.103320312500017],[-73.52309570312497,21.190820312499966],[-73.23535156249997,21.15449218750004],[-73.05849609375,21.313378906249994],[-73.02685546874994,21.19238281250003]]],[[[-73.041015625,22.429052734375006],[-72.74726562500001,22.32739257812497],[-73.16191406250002,22.380712890625006],[-73.041015625,22.429052734375006]]],[[[-74.20673828124998,22.213769531250023],[-74.27690429687499,22.183691406250006],[-73.906396484375,22.527441406250063],[-73.95419921874995,22.71552734375001],[-73.84995117187503,22.731054687500063],[-73.83652343749998,22.538427734374977],[-74.20673828124998,22.213769531250023]]],[[[-74.05751953124997,22.723486328125034],[-74.27460937499995,22.71166992187503],[-74.30703125,22.83959960937497],[-74.05751953124997,22.723486328125034]]],[[[-74.84047851562494,22.894335937500017],[-75.22333984374995,23.165332031250074],[-75.13056640624998,23.267919921875006],[-75.31596679687502,23.668359374999966],[-74.84047851562494,22.894335937500017]]],[[[-75.66455078124997,23.45014648437501],[-76.03710937500003,23.60278320312503],[-76.01044921875001,23.671386718750057],[-75.66455078124997,23.45014648437501]]],[[[-74.42944335937497,24.068066406249955],[-74.55092773437502,23.96894531250001],[-74.52690429687502,24.105078125000034],[-74.42944335937497,24.068066406249955]]],[[[-77.65771484374994,24.249462890624955],[-77.75527343750002,24.163476562500023],[-77.61538085937494,24.216357421875045],[-77.5615234375,24.136816406250006],[-77.57373046875,23.739160156249994],[-77.77128906249999,23.752539062499977],[-77.99990234374994,24.219824218750063],[-77.65771484374994,24.249462890624955]]],[[[-75.30839843749999,24.2],[-75.50322265624996,24.139062500000023],[-75.40893554687503,24.265771484374994],[-75.72666015625,24.68935546875005],[-75.30839843749999,24.2]]],[[[-77.34755859375,25.013867187499983],[-77.56191406249997,25.030029296875],[-77.27558593750001,25.055761718750006],[-77.34755859375,25.013867187499983]]],[[[-77.74384765625001,24.70742187499999],[-77.74521484375,24.463476562500034],[-78.04492187499997,24.287451171875063],[-78.14580078125002,24.493457031250017],[-78.36650390624993,24.544189453125057],[-78.435302734375,24.627587890624994],[-78.24272460937493,24.65380859375],[-78.21137695312495,25.191259765624977],[-77.97529296874998,25.084814453125063],[-77.74384765625001,24.70742187499999]]],[[[-76.64882812499994,25.487402343750006],[-76.34379882812496,25.33203124999997],[-76.12661132812497,25.14052734375005],[-76.16953125,24.6494140625],[-76.319970703125,24.81767578124999],[-76.21376953124994,24.822460937499983],[-76.160400390625,25.119335937499983],[-76.36928710937502,25.312597656250006],[-76.62070312499998,25.43164062500003],[-76.78066406249997,25.426855468750006],[-76.71083984374997,25.564892578124983],[-76.64882812499994,25.487402343750006]]],[[[-78.49287109375001,26.729052734375017],[-77.92246093749998,26.69111328125001],[-78.74365234374994,26.50068359375004],[-78.98564453124996,26.689501953125045],[-78.79804687500001,26.58242187499999],[-78.59711914062493,26.797949218750006],[-78.49287109375001,26.729052734375017]]],[[[-77.22563476562496,25.904199218750023],[-77.40317382812498,26.02470703124996],[-77.24677734374998,26.156347656250034],[-77.238623046875,26.561132812500006],[-77.510595703125,26.845996093750045],[-77.94375,26.90356445312503],[-77.53388671874995,26.903417968750006],[-77.06635742187501,26.530175781249994],[-77.03828124999998,26.333447265624983],[-77.16728515624996,26.240332031250006],[-77.22563476562496,25.904199218750023]]]]},"properties":{"name":"Bahamas","childNum":14}},{"geometry":{"type":"Polygon","coordinates":[[[19.007128906250045,44.86918945312502],[19.348632812500057,44.88090820312502],[19.118457031250074,44.359960937500006],[19.583789062500017,44.04345703125003],[19.245019531249994,43.96503906250004],[19.495117187500057,43.642871093750045],[19.19433593749997,43.533300781250006],[19.164355468750017,43.53544921874999],[19.11279296874997,43.52773437500002],[19.080078125000057,43.51772460937502],[19.0283203125,43.53251953125002],[18.97421875,43.54233398437498],[18.95068359375,43.52666015624999],[19.036718750000034,43.35732421875002],[19.026660156250017,43.292431640624955],[18.97871093750001,43.28540039062503],[18.934667968750006,43.339453125000034],[18.85107421875003,43.34633789062502],[18.749218750000068,43.283544921875006],[18.67421875000008,43.230810546875006],[18.623632812500063,43.027685546875034],[18.488476562500068,43.01215820312498],[18.44384765625003,42.96845703125004],[18.46601562500001,42.777246093749994],[18.54589843750003,42.64160156249997],[18.436328125000017,42.559716796874994],[17.667578125000063,42.897119140624994],[17.585156250000068,42.93837890625005],[17.650488281250063,43.006591796875],[17.27382812500005,43.44575195312501],[16.300097656250017,44.12451171875],[16.10341796875008,44.52099609375006],[15.736621093750045,44.76582031250001],[15.788085937500057,45.17895507812497],[16.028320312500057,45.18959960937502],[16.29335937500005,45.00883789062496],[16.53066406250008,45.21669921875002],[16.918652343749983,45.27656249999998],[17.812792968750074,45.078125],[18.66259765625,45.07744140624999],[18.83642578125,44.883251953124955],[19.007128906250045,44.86918945312502]]]},"properties":{"name":"Bosnia and Herz.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.14794921875,56.142919921875],[28.284277343750006,56.055908203125],[29.375,55.938720703125],[29.353417968750023,55.784375],[29.412988281250023,55.724853515625],[29.482226562500017,55.6845703125],[29.63007812500001,55.751171875],[29.6845703125,55.7697265625],[29.744140625,55.77041015625],[29.82392578125001,55.7951171875],[29.881640625000017,55.832324218749996],[29.93701171875,55.845263671874996],[30.04267578125001,55.83642578125],[30.23359375000001,55.84521484375],[30.625585937500006,55.666259765625],[30.906835937500006,55.57001953125],[30.90058593750001,55.397412109375],[30.82099609375001,55.3302734375],[30.810546875,55.306982421875],[30.814453125,55.2787109375],[30.87744140625,55.2234375],[30.958886718750023,55.13759765625],[30.97773437500001,55.08779296875],[30.97773437500001,55.05048828125],[30.829882812500017,54.914990234375],[30.804492187500017,54.8609375],[30.791015625,54.806005859375],[30.798828125,54.783251953124996],[30.984179687500017,54.6958984375],[31.12128906250001,54.648486328124996],[31.152148437500017,54.625341796875],[31.074804687500006,54.491796875],[31.18476562500001,54.452978515625],[31.299121093750017,54.29169921875],[31.403613281250017,54.195947265625],[31.62841796875,54.111181640625],[31.7919921875,54.055908203125],[31.825976562500017,54.030712890625],[31.837792968750023,54.00078125],[31.825292968750006,53.935009765625],[31.783007812500017,53.85498046875],[31.754199218750017,53.81044921875],[31.82080078125,53.791943359375],[31.9921875,53.796875],[32.20039062500001,53.78125],[32.45097656250002,53.6533203125],[32.70429687500001,53.336328125],[32.64443359375002,53.32890625],[32.57802734375002,53.31240234375],[32.469335937500006,53.2703125],[32.14199218750002,53.091162109375],[31.849707031250006,53.106201171875],[31.668261718750017,53.200927734375],[31.417871093750023,53.196044921875],[31.38837890625001,53.184814453125],[31.364550781250017,53.138964843749996],[31.30292968750001,53.060888671875],[31.2587890625,53.01669921875],[31.29511718750001,52.989794921874996],[31.35302734375,52.933447265625],[31.442773437500023,52.86181640625],[31.53515625,52.7982421875],[31.564843750000023,52.759228515625],[31.585546875,52.532470703125],[31.57734375000001,52.312304687499996],[31.6015625,52.284814453125],[31.64990234375,52.26220703125],[31.690625,52.220654296875],[31.758593750000017,52.125830078125],[31.76337890625001,52.10107421875],[31.57373046875,52.10810546875],[31.345996093750017,52.10537109375],[31.21796875000001,52.050244140625],[30.98066406250001,52.046191406249996],[30.845703125,51.953076171875],[30.755273437500023,51.895166015625],[30.667285156250017,51.814111328125],[30.583886718750023,51.68896484375],[30.533007812500017,51.596337890624994],[30.56074218750001,51.531494140625],[30.602343750000017,51.471240234374996],[30.611718750000023,51.40634765625],[30.63251953125001,51.355419921875],[30.449511718750017,51.274316406249994],[30.160742187500006,51.477880859375],[29.346484375000017,51.382568359375],[29.10205078125,51.6275390625],[29.06074218750001,51.625439453125],[29.013085937500023,51.598925781249996],[28.97773437500001,51.57177734375],[28.927539062500017,51.562158203124994],[28.849511718750023,51.540185546874994],[28.73125,51.433398437499996],[28.690234375000017,51.438867187499994],[28.647753906250017,51.45654296875],[28.599023437500023,51.542626953124994],[28.532031250000017,51.562451171875],[27.85859375000001,51.5923828125],[27.7,51.477978515625],[27.689746093750017,51.572412109374994],[27.296289062500023,51.597412109375],[27.270117187500006,51.613574218749996],[27.141992187500023,51.75205078125],[27.074121093750023,51.76083984375],[26.95283203125001,51.75400390625],[26.7734375,51.770703125],[25.785742187500006,51.923828125],[24.361914062500006,51.867529296875],[24.280078125000017,51.774707031249996],[24.126855468750023,51.6646484375],[23.978320312500017,51.59130859375],[23.951171875,51.58505859375],[23.8642578125,51.623974609375],[23.79169921875001,51.637109375],[23.706835937500017,51.64130859375],[23.61376953125,51.525390625],[23.605273437500017,51.517919921875],[23.652441406250006,52.040380859375],[23.175097656250017,52.28662109375],[23.915429687500023,52.770263671875],[23.484667968750017,53.939794921875],[23.55908203125,53.91982421875],[23.733691406250017,53.912255859375],[24.191308593750023,53.950439453125],[24.236621093750017,53.919970703124996],[24.31796875,53.89296875],[24.620703125,53.979833984375],[24.768164062500006,53.974658203124996],[24.78925781250001,53.9982421875],[24.82568359375,54.118994140625],[24.869531250000023,54.145166015625],[25.04609375000001,54.133056640625],[25.111425781250006,54.154931640625],[25.179492187500017,54.2142578125],[25.46113281250001,54.292773437499996],[25.505664062500017,54.264941406249996],[25.52734375,54.215136718749996],[25.497363281250017,54.175244140625],[25.573046875000017,54.139892578125],[25.765234375,54.17978515625],[25.702539062500023,54.29296875],[25.61689453125001,54.310107421874996],[25.557519531250023,54.310693359375],[25.54736328125,54.331835937499996],[25.56757812500001,54.37705078125],[25.62031250000001,54.460400390625],[25.68515625,54.535791015625],[25.72480468750001,54.564257812499996],[25.73164062500001,54.590380859374996],[25.722460937500017,54.71787109375],[25.859277343750023,54.919287109375],[25.964453125,54.94716796875],[26.09296875000001,54.9623046875],[26.175195312500023,55.003271484375],[26.250781250000017,55.12451171875],[26.291796875000017,55.139599609375],[26.601171875,55.130175781249996],[26.6484375,55.20419921875],[26.775683593750017,55.273095703125],[26.760156250000023,55.293359375],[26.68125,55.306445312499996],[26.49531250000001,55.318017578125],[26.457617187500006,55.34248046875],[26.469531250000017,55.371923828125],[26.51923828125001,55.44814453125],[26.56660156250001,55.546484375],[26.5908203125,55.62265625],[26.593554687500017,55.667529296874996],[27.052539062500017,55.83056640625],[27.576757812500006,55.798779296875],[28.14794921875,56.142919921875]]]},"properties":{"name":"Belarus","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-87.8529296875,17.4228515625],[-87.92998046874996,17.283007812500017],[-87.826416015625,17.546289062499994],[-87.8529296875,17.4228515625]]],[[[-88.89404296875,15.890625],[-89.2328125,15.888671875],[-89.16147460937503,17.81484375],[-89.13354492187503,17.970800781249977],[-88.80634765624998,17.965527343749983],[-88.52299804687499,18.445898437500063],[-88.29565429687494,18.47241210937503],[-88.34926757812494,18.358837890624983],[-88.1302734375,18.350732421875023],[-88.08525390624999,18.226123046875045],[-88.27172851562494,17.60986328125],[-88.203466796875,17.5166015625],[-88.31342773437501,16.632763671874983],[-88.89404296875,15.890625]]]]},"properties":{"name":"Belize","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-64.73027343749999,32.29345703125],[-64.86284179687499,32.273876953125],[-64.66831054687499,32.38193359375],[-64.73027343749999,32.29345703125]]]},"properties":{"name":"Bermuda","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-58.15976562499999,-20.164648437500006],[-58.18017578125,-19.81787109375],[-59.09052734375,-19.286230468750006],[-60.00737304687499,-19.29755859375001],[-61.7568359375,-19.6453125],[-62.276318359375,-20.5625],[-62.27666015624999,-21.066015625],[-62.65097656249999,-22.233691406250003],[-62.84335937499999,-21.99726562500001],[-63.92167968749999,-22.028613281250003],[-63.97612304687499,-22.072558593750003],[-64.26640624999999,-22.603320312500003],[-64.30791015624999,-22.7953125],[-64.32529296874999,-22.82763671875],[-64.373974609375,-22.761035156250003],[-64.4455078125,-22.58535156250001],[-64.477734375,-22.4853515625],[-64.5236328125,-22.37158203125],[-64.60551757812499,-22.228808593750003],[-64.992626953125,-22.109667968750003],[-65.518798828125,-22.09453125],[-65.686181640625,-22.11025390625001],[-65.77104492187499,-22.099609375],[-65.86015624999999,-22.01972656250001],[-66.05859375,-21.879492187500006],[-66.098583984375,-21.835058593750006],[-66.17465820312499,-21.8056640625],[-66.220166015625,-21.802539062500003],[-66.24760742187499,-21.83046875],[-66.28212890625,-21.94746093750001],[-66.3224609375,-22.053125],[-66.365185546875,-22.11376953125],[-66.71171874999999,-22.21630859375],[-66.99111328125,-22.509863281250006],[-67.19487304687499,-22.82167968750001],[-67.362255859375,-22.85517578125001],[-67.57993164062499,-22.891699218750006],[-67.79443359375,-22.879492187500006],[-67.87944335937499,-22.82294921875001],[-67.88173828125,-22.49335937500001],[-68.18642578125,-21.61855468750001],[-68.197021484375,-21.30029296875],[-68.558251953125,-20.901953125],[-68.484326171875,-20.62841796875],[-68.74516601562499,-20.45859375],[-68.75932617187499,-20.115527343750003],[-68.560693359375,-19.967089843750003],[-68.559375,-19.90234375],[-68.578271484375,-19.856542968750006],[-68.69619140625,-19.74072265625],[-68.69829101562499,-19.72109375],[-68.57529296874999,-19.56015625],[-68.462890625,-19.43281250000001],[-68.470166015625,-19.409960937500003],[-68.49199218749999,-19.381933593750006],[-68.85795898437499,-19.093359375],[-68.96831054687499,-18.96796875000001],[-68.97885742187499,-18.81298828125],[-69.026806640625,-18.65625],[-69.09228515625,-18.28242187500001],[-69.145458984375,-18.14404296875],[-69.0939453125,-18.05048828125001],[-69.28232421874999,-17.96484375],[-69.31337890625,-17.943164062500003],[-69.5109375,-17.50605468750001],[-69.51108398437499,-17.5048828125],[-69.510986328125,-17.46035156250001],[-69.521923828125,-17.388964843750003],[-69.645703125,-17.24853515625],[-69.62485351562499,-17.2001953125],[-69.020703125,-16.6421875],[-69.03291015625,-16.47597656250001],[-68.8427734375,-16.337890625],[-69.21757812499999,-16.14912109375001],[-69.4208984375,-15.640625],[-69.17246093749999,-15.236621093750003],[-69.37470703125,-14.962988281250006],[-69.35947265624999,-14.7953125],[-68.87089843749999,-14.169726562500003],[-69.07412109375,-13.682812500000011],[-68.97861328124999,-12.880078125000011],[-68.68525390625,-12.501953125],[-69.57861328125,-10.951757812500006],[-69.228515625,-10.955664062500006],[-68.84833984375,-11.011132812500009],[-68.678369140625,-11.11279296875],[-68.39799804687499,-11.01875],[-68.0716796875,-10.703125],[-67.99169921875,-10.674414062500006],[-67.83500976562499,-10.662792968750011],[-67.72177734374999,-10.68310546875],[-67.416943359375,-10.389843750000011],[-66.575341796875,-9.89990234375],[-65.396142578125,-9.71240234375],[-65.298583984375,-10.146777343750003],[-65.31308593749999,-10.253027343750006],[-65.395458984375,-10.392285156250011],[-65.4369140625,-10.449023437500003],[-65.44711914062499,-10.507421875],[-65.33403320312499,-10.892773437500011],[-65.32377929687499,-11.024804687500009],[-65.389892578125,-11.246289062500011],[-65.1857421875,-11.74951171875],[-64.783447265625,-12.059375],[-64.42050781249999,-12.439746093750003],[-63.68857421874999,-12.47802734375],[-63.3466796875,-12.680078125],[-63.06748046874999,-12.669140625000011],[-62.76547851562499,-12.997265625000011],[-62.11801757812499,-13.159765625],[-62.09477539062499,-13.241992187500003],[-61.944726562499994,-13.40625],[-61.87412109374999,-13.470410156250011],[-61.789941406249994,-13.525585937500011],[-61.57568359375,-13.524804687500009],[-61.51157226562499,-13.541210937500011],[-61.41606445312499,-13.526562500000011],[-61.129150390625,-13.49853515625],[-61.07700195312499,-13.48974609375],[-60.506591796875,-13.78984375],[-60.372705078124994,-14.41875],[-60.273339843749994,-15.088769531250009],[-60.402001953124994,-15.0927734375],[-60.583203125,-15.098339843750011],[-60.53046875,-15.143164062500006],[-60.38046875,-15.318261718750009],[-60.242333984374994,-15.479589843750006],[-60.20664062499999,-15.901953125],[-60.18720703125,-16.132128906250003],[-60.17558593749999,-16.269335937500003],[-58.53793945312499,-16.328222656250006],[-58.49658203125,-16.32666015625],[-58.42368164062499,-16.307910156250003],[-58.37539062499999,-16.28359375],[-58.345605468749994,-16.284375],[-58.35039062499999,-16.490820312500006],[-58.470605468749994,-16.650195312500003],[-58.478125,-16.70068359375],[-58.45981445312499,-16.910742187500006],[-58.417382812499994,-17.08056640625],[-58.39599609375,-17.23427734375001],[-58.34775390624999,-17.28212890625001],[-57.99091796875,-17.51289062500001],[-57.905029296875,-17.532324218750006],[-57.832470703125,-17.512109375],[-57.78886718749999,-17.573046875],[-57.780175781249994,-17.67177734375001],[-57.66166992187499,-17.947363281250006],[-57.58647460937499,-18.12226562500001],[-57.49565429687499,-18.214648437500003],[-57.57402343749999,-18.279296875],[-57.725,-18.733203125],[-57.783105468749994,-18.91425781250001],[-57.716796875,-19.044042968750006],[-58.131494140624994,-19.74453125],[-57.860742187499994,-19.979589843750006],[-57.887597656249994,-20.02041015625001],[-57.96015625,-20.04072265625001],[-58.021142578124994,-20.05517578125],[-58.09375,-20.15107421875001],[-58.15976562499999,-20.164648437500006]]]},"properties":{"name":"Bolivia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-48.48588867187493,-27.76699218749998],[-48.554589843749994,-27.81220703125004],[-48.542187499999955,-27.57480468749999],[-48.41489257812495,-27.399609375],[-48.48588867187493,-27.76699218749998]]],[[[-48.584423828124955,-26.401562499999983],[-48.665771484375,-26.289648437500006],[-48.53974609374998,-26.170312500000023],[-48.584423828124955,-26.401562499999983]]],[[[-45.26025390624997,-23.889160156249986],[-45.451416015625,-23.895605468749977],[-45.30234375,-23.727539062500014],[-45.26025390624997,-23.889160156249986]]],[[[-44.12929687499994,-23.14189453124999],[-44.36015624999999,-23.17207031250001],[-44.24287109374998,-23.074121093750037],[-44.12929687499994,-23.14189453124999]]],[[[-38.90356445312497,-13.473437499999974],[-38.97758789062496,-13.523535156249963],[-39.02216796874998,-13.445605468749989],[-38.907128906249994,-13.401074218749983],[-38.90356445312497,-13.473437499999974]]],[[[-38.743847656249955,-13.097070312500037],[-38.668115234374966,-12.880175781249989],[-38.601171875,-12.99257812499998],[-38.743847656249955,-13.097070312500037]]],[[[-44.49931640625002,-2.939648437499983],[-44.597753906250006,-3.037597656249943],[-44.4814453125,-2.717578125000031],[-44.49931640625002,-2.939648437499983]]],[[[-44.88310546874996,-1.317871093749986],[-45.020849609375034,-1.372363281249974],[-44.978662109374966,-1.267285156249983],[-44.88310546874996,-1.317871093749986]]],[[[-51.83251953124997,-1.433789062499969],[-51.938378906249966,-1.452636718749986],[-51.680029296875006,-1.086132812500026],[-51.546044921874966,-0.649609375],[-51.25400390624998,-0.54140625],[-51.16074218749998,-0.666699218750011],[-51.27631835937498,-1.02177734374996],[-51.83251953124997,-1.433789062499969]]],[[[-49.62866210937497,-0.229199218749969],[-49.11699218749999,-0.163574218750014],[-48.39267578124995,-0.29736328125],[-48.83359375,-1.390039062500023],[-49.038476562499994,-1.5140625],[-49.17270507812498,-1.41259765625],[-49.233984375000034,-1.59951171874998],[-49.50664062499999,-1.511621093750023],[-49.587890625,-1.712402343749972],[-49.805126953124955,-1.790234375000026],[-50.06572265625002,-1.703808593749997],[-50.50761718749999,-1.787988281250009],[-50.759765625,-1.240234374999972],[-50.72949218749997,-1.126757812499946],[-50.57695312499999,-1.103125],[-50.709619140624994,-1.07773437499999],[-50.796093749999955,-0.90625],[-50.6455078125,-0.27285156249998],[-50.24824218749998,-0.11640625],[-49.62866210937497,-0.229199218749969]]],[[[-50.65288085937499,-0.131640624999989],[-50.926367187500034,-0.327343749999983],[-51.03808593749994,-0.225878906250003],[-50.84218750000002,-0.050195312500009],[-50.65288085937499,-0.131640624999989]]],[[[-49.44389648437499,-0.112402343749977],[-49.83007812499997,-0.093896484375023],[-49.50346679687496,0.083691406250011],[-49.37231445312497,0.001074218749963],[-49.44389648437499,-0.112402343749977]]],[[[-49.73823242187498,0.26816406250002],[-49.917089843750006,-0.023193359375014],[-50.339453125,0.043359375000051],[-50.27265624999998,0.231738281249974],[-49.73823242187498,0.26816406250002]]],[[[-50.42612304687498,0.139257812500048],[-50.44394531249998,-0.007666015624949],[-50.623925781249966,0.054394531249983],[-50.372753906249955,0.590869140625031],[-50.33227539062497,0.259033203125028],[-50.42612304687498,0.139257812500048]]],[[[-50.152929687500006,0.393017578125054],[-50.26132812499998,0.359179687500003],[-50.281689453124955,0.51650390624998],[-50.05883789062503,0.638037109374963],[-50.152929687500006,0.393017578125054]]],[[[-50.29897460937502,1.93852539062496],[-50.45610351562496,1.910498046875034],[-50.49101562499996,2.128613281249969],[-50.34199218749998,2.14174804687498],[-50.29897460937502,1.93852539062496]]],[[[-59.69970703125,4.353515625],[-59.73857421874993,4.226757812500026],[-59.62021484374998,4.023144531250026],[-59.557763671874966,3.960009765625031],[-59.551123046875034,3.933544921874969],[-59.854394531249994,3.5875],[-59.99433593749998,2.689990234375031],[-59.88964843749997,2.362939453125009],[-59.75522460937495,2.27412109375004],[-59.74350585937498,2.12163085937496],[-59.75175781249996,1.962402343750028],[-59.75620117187498,1.900634765624972],[-59.666601562500006,1.746289062499969],[-59.53569335937499,1.7],[-59.23120117187494,1.376025390625031],[-58.82177734374994,1.201220703125031],[-58.787207031250006,1.208496093750014],[-58.73032226562498,1.247509765625054],[-58.68461914062499,1.28105468749996],[-58.511865234374966,1.284667968749986],[-58.506054687499926,1.438671875000011],[-58.39580078124993,1.481738281249989],[-58.38037109375,1.530224609375011],[-58.34067382812498,1.587548828125051],[-58.03466796875,1.520263671875014],[-57.9828125,1.648437500000014],[-57.87343750000002,1.667285156250045],[-57.79565429687497,1.7],[-57.59443359375001,1.704101562499986],[-57.54575195312495,1.726074218750028],[-57.31748046874998,1.963476562499991],[-57.27558593749998,1.959228515625014],[-57.189599609374966,1.981591796875037],[-57.11889648437494,2.013964843749974],[-57.09267578125002,2.005810546874997],[-57.03759765625,1.936474609374997],[-56.96953124999999,1.91640625],[-56.48281249999994,1.942138671874986],[-56.019921874999966,1.842236328124983],[-55.96333007812498,1.85708007812498],[-55.929638671874955,1.8875],[-55.92163085937503,1.976660156250006],[-55.91533203124999,2.039550781250028],[-55.96196289062496,2.09511718749998],[-56.02006835937499,2.15815429687504],[-56.073632812499994,2.236767578124969],[-56.13769531249997,2.259033203124986],[-56.12939453124997,2.299511718749969],[-56.08779296875002,2.341308593750043],[-56.045117187499955,2.364404296875037],[-56.02036132812498,2.392773437500054],[-55.993505859375006,2.497509765624983],[-55.9755859375,2.515966796875006],[-55.957470703124955,2.52045898437504],[-55.730566406250006,2.406152343750023],[-55.385351562500006,2.440625],[-55.34399414062503,2.488769531249972],[-55.28603515625002,2.49965820312498],[-55.18769531249998,2.547509765625037],[-55.114111328125006,2.539208984375037],[-55.07031249999994,2.548339843750028],[-55.005810546874955,2.592968749999983],[-54.97866210937502,2.597656250000043],[-54.968408203124966,2.548339843750028],[-54.92656249999999,2.497363281250045],[-54.876074218750006,2.450390624999969],[-54.72221679687499,2.441650390624972],[-54.69741210937502,2.359814453124997],[-54.66186523437497,2.327539062499994],[-54.61625976562499,2.326757812500006],[-54.59194335937502,2.313769531250031],[-54.55048828125001,2.293066406249991],[-54.51508789062498,2.245458984374963],[-54.43310546875,2.207519531250057],[-54.13007812499998,2.121044921875026],[-53.76777343749998,2.354833984375048],[-52.90346679687502,2.211523437499977],[-52.58300781250003,2.528906249999977],[-52.327880859375,3.18173828125002],[-51.65253906249998,4.061279296874972],[-51.54707031250001,4.31088867187502],[-51.219921874999955,4.093603515624991],[-50.71440429687502,2.134033203125],[-50.458886718749994,1.829589843749972],[-49.957128906250006,1.65986328125004],[-49.898876953124955,1.16298828124998],[-50.29443359374997,0.835742187500003],[-50.755078124999955,0.222558593749966],[-51.28291015625001,-0.085205078125028],[-51.98081054687498,-1.367968749999974],[-52.22924804687497,-1.3625],[-52.664160156250034,-1.551757812500028],[-51.94755859374996,-1.586718749999946],[-50.89492187500002,-0.937597656249963],[-50.690039062500006,-1.761718749999986],[-50.40322265625002,-2.015527343750009],[-49.999218749999955,-1.831835937499974],[-49.71953125000002,-1.926367187499963],[-49.31367187500001,-1.731738281250003],[-49.63652343749996,-2.656933593750026],[-49.45751953125,-2.504589843749983],[-49.21103515624998,-1.916503906249986],[-48.99130859374998,-1.829785156249997],[-48.71000976562496,-1.487695312500023],[-48.46293945312499,-1.613964843749997],[-48.349804687499926,-1.482128906249955],[-48.46806640624996,-1.393847656250003],[-48.44980468749998,-1.145507812499943],[-48.11508789062498,-0.7375],[-47.557324218749955,-0.669921874999957],[-47.418652343749955,-0.765917968749974],[-47.39809570312502,-0.626660156250026],[-45.45859374999995,-1.35625],[-45.32915039062496,-1.71728515625],[-45.07636718749998,-1.466406249999949],[-44.72114257812498,-1.733496093750006],[-44.778515624999955,-1.798828125],[-44.651269531249966,-1.745800781250026],[-44.537792968749955,-2.052734374999943],[-44.75634765624997,-2.265527343749952],[-44.66240234375002,-2.373242187499955],[-44.435449218749966,-2.168066406249991],[-44.38183593749997,-2.365527343749989],[-44.52011718749998,-2.40546875000004],[-44.589013671874994,-2.573437499999983],[-44.72304687500002,-3.204785156249997],[-44.43754882812496,-2.944433593749977],[-44.228613281250006,-2.471289062499949],[-44.105566406250006,-2.493457031250031],[-44.19267578124999,-2.809570312499943],[-43.93291015624999,-2.583496093749986],[-43.45512695312499,-2.502050781250006],[-43.38007812499998,-2.376074218750006],[-42.93671874999998,-2.465039062500011],[-42.24960937499998,-2.7919921875],[-41.876171874999926,-2.746582031249986],[-41.479931640624955,-2.916503906249972],[-40.474560546874926,-2.795605468750026],[-39.96469726562498,-2.861523437499955],[-38.475781249999955,-3.717480468749997],[-38.04882812500003,-4.216406250000034],[-37.626318359375006,-4.592089843750003],[-37.30146484375001,-4.713085937499969],[-37.174658203125006,-4.912402343749974],[-36.590722656249966,-5.097558593749952],[-35.549414062500006,-5.129394531249957],[-35.39257812499994,-5.250878906250009],[-34.833886718749994,-7.024414062500014],[-34.83466796874998,-7.97148437499996],[-35.34086914062499,-9.230664062499983],[-35.76396484374993,-9.702539062500023],[-35.890820312499926,-9.687011718749957],[-35.88544921875001,-9.84765625],[-36.39833984374994,-10.484082031249983],[-36.768310546875,-10.671679687500017],[-37.18281249999998,-11.06845703125002],[-37.35600585937502,-11.403906249999977],[-37.35922851562495,-11.252539062499963],[-37.68872070312503,-12.1],[-38.019238281249955,-12.591308593750028],[-38.401757812499994,-12.966210937500023],[-38.69096679687502,-12.623925781250009],[-38.85175781250001,-12.790136718750034],[-38.76372070312502,-12.9072265625],[-38.835302734375034,-13.147167968750026],[-39.030908203124994,-13.365136718750023],[-39.08935546875,-13.588183593749989],[-38.988623046875006,-13.61503906249996],[-39.04814453124996,-14.043945312500028],[-38.94233398437498,-14.030664062499994],[-39.05957031249997,-14.654785156249957],[-38.88061523437503,-15.864257812499972],[-39.20288085937503,-17.178125],[-39.154003906249926,-17.70390625000003],[-39.650781249999966,-18.252343750000037],[-39.78330078124998,-19.571777343749986],[-40.001367187499994,-19.74199218750003],[-40.39594726562501,-20.56943359375002],[-40.78925781250001,-20.90605468750003],[-40.954541015624926,-21.237890624999963],[-41.04726562499999,-21.505664062499974],[-41.00029296875002,-21.99902343750003],[-41.70551757812498,-22.30966796874999],[-41.980419921874955,-22.580664062499963],[-42.042382812499966,-22.947070312500003],[-42.95830078124996,-22.96708984374999],[-43.154296875,-22.725195312500006],[-43.22416992187502,-22.991210937500014],[-43.898828124999966,-23.10146484375001],[-43.97382812499998,-23.057324218749983],[-43.675976562499955,-23.00947265625001],[-43.86616210937498,-22.910546875000023],[-44.63725585937496,-23.05546875],[-44.67382812499994,-23.206640625000034],[-44.56967773437495,-23.27402343749999],[-45.32539062499998,-23.59970703124999],[-45.464306640624955,-23.802539062500017],[-45.97207031250002,-23.795507812500006],[-46.86728515624998,-24.236328125000014],[-47.989160156249994,-25.03574218749999],[-47.92939453124998,-25.16826171874999],[-48.20273437499998,-25.41650390625003],[-48.18593749999994,-25.309863281249974],[-48.402490234374994,-25.27207031249999],[-48.47612304687499,-25.44296875],[-48.73173828124993,-25.36875],[-48.6921875,-25.49150390625003],[-48.40117187500002,-25.59736328125001],[-48.665771484375,-25.844335937499963],[-48.576318359374994,-25.935449218749966],[-48.61943359374996,-26.17939453125001],[-48.74829101562503,-26.26865234374999],[-48.55415039062498,-27.195996093749997],[-48.62080078124998,-28.075585937499966],[-48.799658203125006,-28.575292968749977],[-49.27128906249999,-28.87119140625005],[-49.745996093749966,-29.363183593749994],[-50.299511718749955,-30.42578125000003],[-50.92138671874997,-31.25839843750002],[-52.039208984374994,-32.11484374999996],[-52.063232421875,-31.830371093750017],[-51.68066406249994,-31.774609375000026],[-51.272167968749955,-31.476953125000037],[-51.16142578124996,-31.11884765625001],[-50.980078125000034,-31.09423828124997],[-50.94082031249994,-30.903710937499966],[-50.68930664062495,-30.70419921874999],[-50.71630859374994,-30.425976562499983],[-50.58193359375002,-30.438867187500037],[-50.56352539062499,-30.25361328125004],[-51.02495117187493,-30.36865234375003],[-51.29804687499998,-30.03486328124997],[-51.15727539062499,-30.364257812500014],[-51.283056640625034,-30.751562499999963],[-51.35908203124998,-30.674511718749983],[-51.506298828124955,-31.104492187500014],[-51.97246093749999,-31.383789062499986],[-52.19355468749998,-31.885546874999974],[-52.12739257812501,-32.1677734375],[-52.652246093749994,-33.137792968750006],[-53.37060546874997,-33.74218750000003],[-53.39755859374995,-33.737304687500014],[-53.46357421875001,-33.70986328125002],[-53.531347656250034,-33.65546875000004],[-53.531347656250034,-33.1708984375],[-53.511865234374966,-33.10869140625003],[-53.482861328124926,-33.068554687500026],[-53.39521484375001,-33.01035156249998],[-53.31010742187499,-32.927050781249974],[-53.21406249999998,-32.82109375],[-53.12558593749998,-32.73671875],[-53.15727539062496,-32.680078125],[-53.601708984374994,-32.40302734374997],[-53.76171875,-32.05683593749997],[-53.920605468749926,-31.95234375],[-54.220556640625034,-31.855175781249997],[-54.58764648437503,-31.48515625000003],[-55.036035156249994,-31.27900390625004],[-55.091162109375034,-31.31396484374997],[-55.173535156249926,-31.279589843749974],[-55.557324218749955,-30.8759765625],[-55.60302734375003,-30.85078125000001],[-55.62714843749998,-30.858105468749997],[-55.650488281250034,-30.89208984375],[-55.66523437500001,-30.92490234375002],[-55.807763671874994,-31.036718749999977],[-55.87368164062502,-31.069628906250017],[-55.95200195312498,-31.08085937499999],[-56.0046875,-31.079199218750006],[-56.01845703125002,-30.991894531249983],[-55.998974609374955,-30.837207031250003],[-56.4072265625,-30.44746093750001],[-56.83271484374998,-30.107226562499974],[-57.120507812499994,-30.144433593749994],[-57.21445312499995,-30.283398437499983],[-57.55229492187496,-30.261230468749986],[-57.60888671875003,-30.187792968750045],[-57.563867187499994,-30.139941406249974],[-57.40522460937501,-30.03388671875004],[-57.22465820312499,-29.782128906249994],[-56.938623046874994,-29.594824218750034],[-55.890527343749994,-28.370019531249994],[-55.68725585937497,-28.38164062499996],[-55.72548828125002,-28.20410156250003],[-55.10151367187501,-27.866796874999963],[-54.82910156250003,-27.55058593750003],[-54.32700195312495,-27.423535156249997],[-53.83818359375002,-27.121093750000014],[-53.668554687500006,-26.288183593749977],[-53.89116210937499,-25.66884765625001],[-54.15458984374999,-25.523046874999963],[-54.44394531249998,-25.625],[-54.615869140624994,-25.576074218750023],[-54.61054687499998,-25.432714843750034],[-54.47314453124997,-25.22021484375],[-54.43623046875001,-25.12128906250001],[-54.281005859375,-24.30605468750001],[-54.31826171874994,-24.128125],[-54.26689453124996,-24.06582031250001],[-54.241796875,-24.047265624999966],[-54.44023437500002,-23.90175781249998],[-54.62548828125,-23.8125],[-54.98266601562494,-23.974511718749966],[-55.081884765625006,-23.997656249999977],[-55.1943359375,-24.017480468750023],[-55.28691406249993,-24.00429687499999],[-55.366308593750034,-23.99101562499996],[-55.41591796875002,-23.95136718749997],[-55.4423828125,-23.86533203125002],[-55.4423828125,-23.792578125000034],[-55.458886718749966,-23.686718750000054],[-55.51845703124994,-23.627246093750017],[-55.53828124999998,-23.580957031249994],[-55.61767578125,-22.67148437499999],[-55.74663085937499,-22.51269531249997],[-55.753271484375006,-22.410156250000043],[-55.84916992187499,-22.307617187500014],[-55.991406249999926,-22.28115234375005],[-56.18984374999994,-22.28115234375005],[-56.246044921874926,-22.26464843749997],[-56.39487304687498,-22.092675781250023],[-56.44780273437502,-22.07617187500003],[-56.77519531249999,-22.261328125],[-57.955908203125034,-22.109179687500003],[-57.94267578124999,-21.79833984375],[-57.830224609374994,-20.99794921875001],[-57.91513671874998,-20.690332031249966],[-57.97905273437493,-20.65732421874999],[-58.00224609374996,-20.465429687499977],[-58.02539062499997,-20.41582031249999],[-58.05844726562495,-20.38613281249998],[-58.091503906249926,-20.33320312500004],[-58.124609375000034,-20.293457031250014],[-58.13779296874995,-20.237304687500043],[-58.15976562499998,-20.164648437499977],[-58.09375,-20.15107421874997],[-58.021142578124994,-20.05517578124997],[-57.96015625000001,-20.04072265625004],[-57.887597656249966,-20.020410156249994],[-57.860742187499994,-19.97958984375002],[-58.029931640624994,-19.83271484375004],[-58.131494140624994,-19.74453125],[-57.71679687499997,-19.044042968750034],[-57.73085937499999,-18.91718750000004],[-57.783105468749994,-18.91425781249997],[-57.725,-18.73320312500003],[-57.57402343749993,-18.279296875000014],[-57.49565429687496,-18.21464843749999],[-57.58647460937499,-18.122265625],[-57.66166992187493,-17.94736328124999],[-57.78017578125002,-17.67177734374998],[-57.78886718750002,-17.573046875000017],[-57.83247070312501,-17.512109375000037],[-57.90502929687497,-17.53232421874999],[-57.990917968749955,-17.512890625000026],[-58.20556640625,-17.363085937499974],[-58.347753906250006,-17.282128906249994],[-58.39599609374997,-17.234277343750023],[-58.417382812499994,-17.08056640624997],[-58.459814453125006,-16.910742187500006],[-58.478125,-16.70068359375003],[-58.470605468749994,-16.650195312500045],[-58.35039062500002,-16.49082031249999],[-58.34560546875002,-16.284375],[-58.375390624999966,-16.283593749999966],[-58.423681640625034,-16.30791015625003],[-58.49658203124994,-16.32666015625003],[-58.537939453125034,-16.32822265624999],[-60.17558593749996,-16.26933593749999],[-60.187207031249955,-16.132128906250017],[-60.206640625,-15.90195312500002],[-60.242333984374994,-15.479589843750034],[-60.38046874999998,-15.318261718750023],[-60.53046874999998,-15.143164062499977],[-60.58320312499998,-15.098339843749983],[-60.273339843749994,-15.088769531249994],[-60.372705078124994,-14.41875],[-60.506591796875,-13.78984375],[-61.077001953125034,-13.489746093750014],[-61.129150390625,-13.498535156250028],[-61.41606445312502,-13.526562499999969],[-61.511572265625006,-13.541210937500011],[-61.789941406249966,-13.525585937500026],[-61.87412109374998,-13.470410156249983],[-61.944726562499966,-13.40625],[-62.09477539062499,-13.241992187499989],[-62.118017578125006,-13.15976562500002],[-62.765478515625034,-12.99726562500004],[-63.01518554687502,-12.80556640624998],[-63.067480468750006,-12.669140624999983],[-63.34667968749994,-12.68007812499999],[-63.68857421874998,-12.478027343749957],[-64.42050781249995,-12.439746093749974],[-64.783447265625,-12.059375],[-65.18574218749998,-11.749511718749957],[-65.389892578125,-11.246289062500011],[-65.33403320312499,-10.892773437500026],[-65.44711914062503,-10.507421875000034],[-65.4369140625,-10.449023437499946],[-65.39545898437498,-10.392285156250026],[-65.31308593749998,-10.253027343749991],[-65.29858398437497,-10.146777343750017],[-65.39614257812494,-9.712402343749986],[-66.57534179687502,-9.899902343749986],[-67.41694335937495,-10.389843749999969],[-67.72177734374998,-10.683105468749943],[-67.83500976562496,-10.662792968749983],[-67.99169921875,-10.674414062499949],[-68.07167968749994,-10.703125],[-68.39799804687499,-11.01875],[-68.678369140625,-11.11279296875],[-68.84833984374998,-11.01113281249998],[-69.228515625,-10.955664062499963],[-69.46254882812497,-10.948144531250023],[-69.57861328125,-10.951757812499963],[-69.67402343749998,-10.9541015625],[-69.83979492187501,-10.93339843749996],[-69.96035156249997,-10.92988281250004],[-70.06630859374997,-10.982421875],[-70.22006835937503,-11.04765625],[-70.29038085937498,-11.064257812499974],[-70.34199218750001,-11.066699218750017],[-70.39228515624995,-11.058593749999972],[-70.45087890624998,-11.024804687500009],[-70.53325195312496,-10.946875],[-70.59653320312498,-10.976855468750017],[-70.642333984375,-11.010253906249986],[-70.59916992187499,-9.620507812500009],[-70.54111328124998,-9.4375],[-70.60791015625,-9.463671875000031],[-70.63691406249995,-9.478222656249969],[-71.041748046875,-9.81875],[-71.11528320312499,-9.852441406250009],[-71.33940429687499,-9.988574218750031],[-72.18159179687495,-10.003710937500003],[-72.37905273437497,-9.51015625],[-73.20942382812493,-9.411425781249946],[-73.08984375,-9.26572265625002],[-72.970361328125,-9.120117187500028],[-72.97402343750002,-8.9931640625],[-73.07050781249995,-8.8828125],[-73.203125,-8.719335937499991],[-73.30244140624995,-8.654003906250011],[-73.36040039062496,-8.479296875000031],[-73.39814453125001,-8.458984374999986],[-73.54912109374993,-8.34580078125002],[-73.73203125,-7.875390625],[-73.72041015624993,-7.782519531250017],[-73.76689453124999,-7.753515624999963],[-73.82207031249996,-7.738964843750026],[-73.89462890624998,-7.654785156250014],[-73.946875,-7.611230468750023],[-73.98173828124996,-7.58505859375002],[-74.00205078125003,-7.556054687499966],[-73.98173828124996,-7.535742187500006],[-73.95849609374994,-7.506640625000031],[-73.96430664062498,-7.378906250000028],[-73.74946289062498,-7.335351562500037],[-73.72041015624993,-7.309277343749969],[-73.758203125,-7.172753906249952],[-73.79301757812499,-7.135058593750003],[-73.75810546874999,-6.90576171875],[-73.137353515625,-6.4658203125],[-73.23554687500001,-6.098437500000017],[-73.209375,-6.028710937500023],[-73.16289062499996,-5.933398437499974],[-72.97988281249997,-5.634863281249991],[-72.88706054687498,-5.122753906250026],[-72.83193359374994,-5.09375],[-72.69873046874997,-5.067187499999989],[-72.60834960937495,-5.009570312499974],[-72.46899414062497,-4.901269531250023],[-72.35283203124993,-4.786035156249994],[-72.25678710937501,-4.74892578124998],[-71.8447265625,-4.504394531249986],[-70.97368164062499,-4.350488281249994],[-70.86601562499999,-4.229589843749963],[-70.79951171874995,-4.173339843749957],[-70.72158203124997,-4.15888671875004],[-70.53066406249997,-4.167578125000034],[-70.40463867187498,-4.150097656250026],[-70.34365234375,-4.193652343750017],[-70.31689453124994,-4.246972656250037],[-70.23916015625002,-4.30117187499998],[-70.12880859375,-4.286621093749943],[-70.05332031249998,-4.333105468750006],[-70.00395507812496,-4.327246093749963],[-69.97202148437503,-4.30117187499998],[-69.96591796875003,-4.2359375],[-69.94819335937498,-4.200585937500009],[-69.66904296875003,-2.667675781249997],[-69.40024414062498,-1.194921874999977],[-69.63398437500001,-0.50927734375],[-70.07050781249993,-0.13886718750004],[-70.05390624999993,0.578613281250028],[-69.47211914062498,0.72993164062504],[-69.15332031249994,0.65878906250002],[-69.31181640624999,1.050488281249969],[-69.85214843750003,1.05952148437504],[-69.84858398437493,1.708740234375043],[-68.17656249999999,1.719824218749991],[-68.25595703125,1.845507812500017],[-68.19379882812495,1.987011718749983],[-67.93623046874998,1.748486328124969],[-67.40043945312499,2.116699218750028],[-67.11923828124998,1.703613281249986],[-67.082275390625,1.185400390625006],[-66.87602539062499,1.223046875000037],[-66.34711914062498,0.7671875],[-66.06005859375003,0.78535156250004],[-65.68144531249999,0.983447265624989],[-65.52299804687493,0.843408203124966],[-65.55605468750002,0.687988281250014],[-65.47338867187497,0.691259765624977],[-65.10375976562497,1.108105468749983],[-64.20502929687493,1.52949218750004],[-64.00849609374995,1.931591796874969],[-63.43251953124994,2.155566406250045],[-63.389257812500006,2.411914062500045],[-64.04658203124998,2.502392578124997],[-64.22109375000002,3.587402343749972],[-64.66899414062496,4.01181640625002],[-64.788671875,4.276025390625023],[-64.57636718750001,4.139892578125],[-64.19248046874995,4.126855468750009],[-64.02148437500003,3.929101562500051],[-63.33867187500002,3.943896484375045],[-62.85698242187502,3.593457031249969],[-62.71210937499998,4.01791992187502],[-62.41064453124994,4.156738281249972],[-62.153125,4.098388671874986],[-61.82084960937496,4.197021484375],[-61.28007812500002,4.516894531249974],[-61.00283203125002,4.535253906249991],[-60.603857421875006,4.94936523437498],[-60.671972656250034,5.164355468749989],[-60.71196289062499,5.191552734375023],[-60.742138671874926,5.202050781250037],[-60.6513671875,5.221142578125011],[-60.45952148437499,5.188085937500034],[-60.40878906249998,5.21015625],[-60.33520507812497,5.199316406250006],[-60.241650390624926,5.257958984374966],[-60.14204101562498,5.238818359374974],[-59.990673828124955,5.082861328124991],[-60.14863281249998,4.533251953125031],[-59.69970703125,4.353515625]]]]},"properties":{"name":"Brazil","childNum":17}},{"geometry":{"type":"Polygon","coordinates":[[[-59.493310546874994,13.081982421874997],[-59.611328125,13.102099609374989],[-59.6466796875,13.303125],[-59.427636718749994,13.152783203124997],[-59.493310546874994,13.081982421874997]]]},"properties":{"name":"Barbados","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[115.02675781250005,4.899707031249989],[115.1400390625,4.899755859374991],[115.290625,4.352587890624989],[115.10703125000006,4.390429687499974],[115.02675781250005,4.899707031249989]]],[[[115.02675781250005,4.899707031249989],[114.74667968750006,4.718066406250017],[114.84023437500005,4.393212890625009],[114.65410156250007,4.037646484375045],[114.0638671875,4.592675781249966],[114.42441406250006,4.660400390625],[114.99541015625002,5.022363281250023],[115.02675781250005,4.899707031249989]]]]},"properties":{"name":"Brunei","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[91.63193359375003,27.759960937499997],[91.5947265625,27.557666015624996],[91.74306640625002,27.442529296874994],[91.85126953125001,27.438623046874994],[91.95097656249999,27.458300781249996],[91.99082031250003,27.4501953125],[92.044921875,27.364697265624997],[92.08339843750002,27.290625],[92.03115234375002,27.214306640624997],[92.00253906250003,27.147363281249994],[91.99228515625003,27.099902343749996],[91.99863281250003,27.079296875],[92.03085937500003,27.040820312499996],[92.06816406249999,26.9751953125],[92.07343750000001,26.91484375],[92.04970703125002,26.874853515625],[91.99833984374999,26.85498046875],[91.84208984374999,26.852978515624997],[91.67158203125001,26.802001953125],[91.517578125,26.807324218749997],[91.45585937499999,26.866894531249997],[91.4267578125,26.867089843749994],[91.28652343750002,26.789941406249994],[90.73964843750002,26.771679687499997],[90.34589843750001,26.890332031249997],[90.2060546875,26.847509765625],[90.12294921875002,26.754589843749997],[89.94316406249999,26.723925781249996],[89.76386718750001,26.7015625],[89.60996093750003,26.719433593749997],[89.58613281250001,26.778955078124994],[89.33212890625003,26.8486328125],[89.14824218749999,26.816162109375],[89.04091796875002,26.865039062499996],[88.85761718750001,26.961474609374996],[88.73876953125,27.175585937499996],[88.76035156250003,27.218115234375],[88.88164062499999,27.2974609375],[88.89140624999999,27.316064453124994],[88.94755859374999,27.464013671874994],[89.48066406250001,28.059960937499994],[89.53691406249999,28.107421875],[89.65273437500002,28.15830078125],[89.74980468749999,28.188183593749997],[89.81689453125,28.256298828124997],[89.89785156250002,28.294140625],[89.98105468750003,28.311181640624994],[90.34824218750003,28.243945312499996],[90.36298828125001,28.216503906249997],[90.33310546875003,28.093994140625],[90.35273437500001,28.080224609374994],[90.47734374999999,28.070849609374996],[90.63007812500001,28.078564453124997],[90.71572265625002,28.071728515624997],[91.02080078124999,27.970068359375],[91.07773437500003,27.974462890625],[91.22587890624999,28.071240234374997],[91.27304687500003,28.078369140625],[91.30683593750001,28.064013671874996],[91.36757812500002,28.021630859374994],[91.64189453124999,27.923242187499994],[91.63193359375003,27.759960937499997]]]},"properties":{"name":"Bhutan","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[25.2587890625,-17.793554687500006],[25.242285156250006,-17.969042968750003],[25.939355468750023,-18.93867187500001],[26.168066406250006,-19.53828125000001],[27.17822265625,-20.10097656250001],[27.28076171875,-20.47871093750001],[27.679296875,-20.503027343750006],[27.66943359375,-21.064257812500003],[28.014062500000023,-21.55419921875],[29.02558593750001,-21.796875],[29.042382812500023,-22.018359375],[29.237207031250023,-22.07949218750001],[29.315234375000017,-22.15771484375],[29.36484375,-22.193945312500006],[29.1298828125,-22.21328125],[29.013476562500017,-22.278417968750006],[28.94580078125,-22.395117187500006],[28.83984375,-22.480859375],[28.21015625000001,-22.693652343750003],[27.812597656250006,-23.108007812500006],[27.7685546875,-23.14892578125],[27.085546875,-23.577929687500003],[26.835058593750006,-24.240820312500006],[26.617773437500006,-24.3955078125],[26.451757812500006,-24.58271484375001],[26.39716796875001,-24.613574218750003],[26.130859375,-24.671484375],[26.031835937500006,-24.702441406250003],[25.912109375,-24.74746093750001],[25.518164062500006,-25.66279296875001],[25.21337890625,-25.75625],[24.33056640625,-25.74287109375001],[24.19296875,-25.632910156250006],[23.969531250000017,-25.626074218750006],[23.89375,-25.600878906250003],[23.389257812500006,-25.29140625],[23.148730468750017,-25.288671875],[22.878808593750023,-25.45791015625001],[22.59765625,-26.13271484375001],[22.548632812500017,-26.17841796875001],[22.47089843750001,-26.219042968750003],[22.217578125000017,-26.38886718750001],[22.090917968750006,-26.580175781250006],[22.01093750000001,-26.635839843750006],[21.78828125000001,-26.710058593750006],[21.738085937500017,-26.80683593750001],[21.694726562500023,-26.840917968750006],[20.73984375,-26.84882812500001],[20.641406250000017,-26.7421875],[20.79316406250001,-25.915625],[20.4306640625,-25.147070312500006],[19.98046875,-24.77675781250001],[19.977343750000017,-22.00019531250001],[20.9794921875,-21.9619140625],[20.97412109375,-18.31884765625],[23.219335937500006,-17.99970703125001],[23.599707031250006,-18.4599609375],[24.243945312500017,-18.0234375],[24.530566406250017,-18.052734375],[24.909082031250023,-17.821386718750006],[25.2587890625,-17.793554687500006]]]},"properties":{"name":"Botswana","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[22.86005859375001,10.919677734375],[23.646289062500017,9.822900390624994],[23.62265625,9.340625],[23.46826171875,9.11474609375],[23.53730468750001,8.815820312499994],[24.147363281250023,8.665625],[24.291406250000023,8.29140625],[24.853320312500017,8.137548828124991],[25.20039062500001,7.807910156249989],[25.18134765625001,7.557226562499991],[25.27890625,7.427490234375],[26.36181640625,6.635302734374989],[26.30859375,6.455322265625],[26.514257812500006,6.069238281249994],[27.143945312500023,5.722949218749989],[27.4033203125,5.109179687499989],[27.071875,5.199755859374989],[26.822070312500017,5.062402343749994],[25.52509765625001,5.31210937499999],[25.065234375000017,4.967431640624994],[24.31982421875,4.994140625],[23.41718750000001,4.663134765624989],[22.864550781250017,4.723876953125],[22.422167968750017,4.134960937499997],[20.55810546875,4.462695312499989],[20.226367187500017,4.829638671874989],[19.806542968750023,5.089306640624997],[19.5009765625,5.127490234374989],[19.06855468750001,4.891406249999989],[18.594140625000023,4.346240234374989],[18.6103515625,3.478417968749994],[18.474414062500017,3.622998046874997],[18.160937500000017,3.499804687499989],[17.491601562500023,3.687304687499989],[16.610742187500023,3.50537109375],[16.468554687500017,2.831738281249997],[16.183398437500017,2.270068359374989],[16.0634765625,2.90859375],[15.128710937500017,3.826904296875],[15.063574218750006,4.284863281249997],[14.73125,4.602392578124991],[14.56298828125,5.279931640624994],[14.616894531250011,5.865136718749994],[14.43115234375,6.038720703124994],[14.7392578125,6.27978515625],[15.206738281250011,7.206152343749991],[15.480078125,7.523779296874991],[15.957617187500006,7.507568359375],[16.37890625,7.683544921874997],[16.545312500000023,7.865478515625],[16.784765625,7.550976562499997],[17.6494140625,7.98359375],[18.56416015625001,8.0458984375],[19.108691406250017,8.656152343749994],[18.886035156250017,8.836035156249991],[18.95625,8.938867187499994],[20.342089843750017,9.127099609374994],[20.773242187500017,9.405664062499994],[21.682714843750006,10.289843749999989],[21.771484375,10.642822265625],[22.49384765625001,10.996240234374994],[22.86005859375001,10.919677734375]]]},"properties":{"name":"Central African Rep.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-59.78759765624997,43.939599609374994],[-60.11748046874996,43.95336914062506],[-59.727148437500006,44.002832031249994],[-59.78759765624997,43.939599609374994]]],[[[-66.7625,44.68178710937502],[-66.8970703125,44.62890625],[-66.80214843749994,44.80537109374998],[-66.7625,44.68178710937502]]],[[[-60.961572265624966,45.48994140625001],[-61.081738281249926,45.55781249999998],[-60.91245117187498,45.56728515625005],[-60.961572265624966,45.48994140625001]]],[[[-73.69531249999997,45.58549804687502],[-73.85771484375002,45.573583984375006],[-73.57236328124998,45.69448242187502],[-73.69531249999997,45.58549804687502]]],[[[-73.56650390625003,45.469091796875034],[-73.960546875,45.44140624999997],[-73.68745117187498,45.561425781249994],[-73.47607421874997,45.704736328124994],[-73.56650390625003,45.469091796875034]]],[[[-61.10517578124998,45.94472656250002],[-60.86523437499997,45.983496093750006],[-61.05903320312501,45.70336914062497],[-60.73789062499995,45.75141601562498],[-60.46059570312494,45.96870117187501],[-60.733300781249994,45.956591796875045],[-60.297949218750034,46.31123046874998],[-60.22646484374994,46.19555664062506],[-59.86503906249993,46.159521484375006],[-59.8421875,45.941552734374994],[-60.67294921874995,45.59082031250006],[-61.28369140624994,45.573876953124966],[-61.44980468749995,45.71621093750002],[-61.40864257812501,46.17036132812498],[-60.87016601562499,46.796777343749966],[-60.40820312500003,47.00351562499998],[-60.332910156249966,46.737011718749955],[-60.49453125000002,46.270263671875],[-61.10517578124998,45.94472656250002]]],[[[-63.811279296875,46.46870117187501],[-63.68144531249993,46.561914062499994],[-63.12939453125,46.422216796875034],[-62.02373046874999,46.42158203125001],[-62.52607421875001,46.20288085937503],[-62.531347656250034,45.977294921875],[-63.02207031249998,46.06660156249998],[-62.89453125000003,46.12358398437496],[-63.056347656249955,46.22392578124996],[-62.97846679687498,46.31635742187498],[-63.21347656249998,46.15986328124998],[-63.641015624999966,46.23046874999997],[-63.758642578125034,46.397607421874994],[-64.11083984375003,46.425439453124994],[-64.13603515624999,46.59970703125006],[-64.388037109375,46.640869140625],[-63.99355468750002,47.06157226562502],[-64.08789062499997,46.77543945312499],[-63.811279296875,46.46870117187501]]],[[[-61.91411132812496,47.284521484375034],[-61.77255859374998,47.25981445312499],[-62.00830078124994,47.23427734375002],[-61.924707031249966,47.425146484375006],[-61.3955078125,47.63764648437504],[-61.91411132812496,47.284521484375034]]],[[[-54.227148437500034,47.44135742187501],[-54.32597656250002,47.408105468749994],[-54.12817382812494,47.646826171875034],[-54.227148437500034,47.44135742187501]]],[[[-74.70888671874997,45.0038574218751],[-73.55810546875,45.425097656250045],[-73.1595703125,46.01005859375002],[-72.10927734374997,46.55122070312504],[-71.26118164062495,46.75625],[-70.51948242187501,47.032519531250045],[-69.47104492187503,47.96728515625006],[-68.23818359374994,48.62641601562504],[-66.17817382812493,49.21313476562503],[-64.83632812499994,49.191748046875006],[-64.2162109375,48.873632812500034],[-64.51372070312493,48.84111328124999],[-64.24609374999994,48.69111328124998],[-64.34882812500001,48.423193359375034],[-65.259423828125,48.02124023437503],[-65.92670898437495,48.188867187499994],[-66.70439453125002,48.0224609375],[-66.35961914062494,48.06064453125006],[-65.84941406250002,47.91103515625005],[-65.60722656249996,47.67001953125006],[-65.00166015624995,47.84682617187502],[-64.70322265625,47.72485351562503],[-64.91220703125003,47.36865234375003],[-65.31889648437502,47.101220703124994],[-64.831396484375,47.06079101562503],[-64.88251953124993,46.822851562500034],[-64.54150390625,46.240332031250034],[-63.91591796875002,46.165820312500045],[-63.831933593749966,46.107177734375],[-64.05639648437503,46.021337890625006],[-63.70288085937494,45.858007812500034],[-62.70068359374997,45.740576171875006],[-62.750097656250006,45.64824218750002],[-62.483056640624966,45.62182617187506],[-61.955517578124955,45.86816406249997],[-61.776513671874994,45.655615234375006],[-61.49228515624998,45.68701171875],[-61.350488281249966,45.57368164062501],[-61.28198242187494,45.441064453124994],[-61.46098632812502,45.36669921875003],[-61.03154296875002,45.29174804687506],[-63.306298828124994,44.64257812500003],[-63.60400390624997,44.68320312500006],[-63.60976562499999,44.47998046875006],[-63.999707031249926,44.64492187499999],[-64.10087890624993,44.487451171874966],[-64.1669921875,44.58666992187503],[-64.28608398437493,44.55034179687499],[-64.27568359374993,44.33408203124998],[-65.48168945312497,43.51806640625],[-65.73813476562498,43.56074218750001],[-65.88691406250001,43.79521484374999],[-66.125732421875,43.813818359375034],[-66.19306640624995,44.143847656250045],[-65.86801757812498,44.56879882812501],[-66.14638671875002,44.43593750000005],[-66.090625,44.50493164062499],[-64.44814453125,45.33745117187502],[-64.13549804687497,45.023046875],[-64.09316406249997,45.21708984375002],[-63.368017578125034,45.36479492187502],[-64.87314453124998,45.35458984375006],[-64.31464843749998,45.83569335937503],[-64.48222656250002,45.80634765624998],[-64.63271484375002,45.94663085937506],[-64.77851562499998,45.63842773437497],[-65.88447265624995,45.22290039062506],[-66.10976562500002,45.316601562499955],[-66.02656249999995,45.417578125],[-66.43984374999994,45.09589843750001],[-66.87246093749997,45.067285156249966],[-67.12485351562498,45.16943359375],[-67.366943359375,45.17377929687498],[-67.43266601562496,45.603125],[-67.80224609374994,45.7275390625],[-67.806787109375,47.08281249999999],[-68.23549804687502,47.34594726562503],[-68.93720703124998,47.21123046875002],[-69.0501953125,47.426611328125034],[-69.24287109374998,47.46298828124998],[-70.00771484375002,46.70893554687501],[-70.296240234375,45.90610351562506],[-70.86503906249999,45.27070312500001],[-71.327294921875,45.29008789062496],[-71.51752929687495,45.00756835937497],[-74.663232421875,45.00390625000003],[-74.70888671874997,45.0038574218751]]],[[[-126.09208984374995,49.35400390625003],[-126.06401367187499,49.26362304687501],[-126.22963867187498,49.29565429687506],[-126.09208984374995,49.35400390625003]]],[[[-54.55439453125001,49.5888671875],[-54.786523437499966,49.496142578125045],[-54.86357421875002,49.576074218749966],[-54.55439453125001,49.5888671875]]],[[[-54.093701171874955,49.74443359374999],[-53.98066406250001,49.66196289062498],[-54.28613281249997,49.595361328124994],[-54.27763671875002,49.71147460937502],[-54.093701171874955,49.74443359374999]]],[[[-126.64121093749999,49.605810546875006],[-126.93857421874999,49.71845703125004],[-126.92583007812497,49.837744140625006],[-126.73813476562502,49.84365234375005],[-126.64121093749999,49.605810546875006]]],[[[-61.801123046875034,49.093896484374966],[-63.04150390624994,49.224951171875034],[-64.485205078125,49.88696289062497],[-64.13144531249995,49.94165039062503],[-62.858544921874966,49.70546875000005],[-61.817138671875,49.28354492187498],[-61.69614257812495,49.139013671875006],[-61.801123046875034,49.093896484374966]]],[[[-125.18413085937497,50.09711914062498],[-125.301171875,50.4140625],[-125.07402343750002,50.22065429687501],[-125.18413085937497,50.09711914062498]]],[[[-127.19731445312495,50.640380859375],[-125.48208007812501,50.316796874999966],[-124.83061523437499,49.53007812500002],[-123.99580078125,49.22402343750002],[-123.49702148437498,48.58208007812499],[-123.38989257812501,48.67021484374999],[-123.31064453125003,48.41103515625002],[-123.57314453124995,48.32280273437499],[-123.91694335937501,48.386572265625034],[-125.12070312500002,48.76079101562496],[-124.84965820312496,49.02827148437501],[-124.81264648437497,49.212646484375],[-124.92734374999998,49.01420898437499],[-125.489453125,48.933789062499955],[-125.82851562499998,49.09184570312499],[-125.64423828125001,49.18579101562506],[-125.95166015625001,49.24804687500003],[-125.93540039062499,49.401464843750006],[-126.51914062499999,49.396777343750045],[-126.54189453125001,49.590478515624966],[-126.13408203124997,49.672314453124955],[-126.52524414062499,49.71958007812498],[-126.90332031250001,49.94414062499999],[-127.114306640625,49.879736328125034],[-127.24980468749999,50.13798828124996],[-127.34941406249995,50.05195312500001],[-127.46713867187503,50.163427734375006],[-127.86391601562495,50.12773437500002],[-127.90585937499998,50.44521484375002],[-127.48652343749998,50.404638671875034],[-127.46591796874996,50.58310546875006],[-128.05834960937494,50.498486328124955],[-128.34604492187503,50.744238281250006],[-127.91806640624998,50.86054687500001],[-127.19731445312495,50.640380859375]]],[[[-55.45874023437494,51.53652343750005],[-55.58339843749994,51.38857421875002],[-56.031103515625034,51.328369140625],[-55.8,51.033300781250034],[-56.732324218749966,50.007714843749994],[-56.822167968749966,49.613476562499955],[-56.179394531249955,50.114990234375],[-56.161279296874994,49.94013671874998],[-55.50292968749997,49.98315429687503],[-56.14018554687496,49.61914062500006],[-55.869824218749955,49.67016601562506],[-56.08730468750002,49.45195312499999],[-55.375927734374955,49.48974609374997],[-55.34384765624998,49.37290039062506],[-55.22954101562496,49.508154296875006],[-55.35317382812502,49.07944335937506],[-54.50219726562503,49.52734375],[-54.44824218749997,49.329443359375006],[-53.957714843749955,49.44184570312498],[-53.61943359374996,49.321630859375006],[-53.57343750000001,49.141210937500034],[-54.16127929687494,48.787695312500034],[-53.852880859375006,48.81132812499996],[-53.966015624999955,48.70668945312505],[-53.70634765624999,48.65551757812503],[-54.11445312499998,48.393603515625045],[-53.027587890625,48.634716796874955],[-53.1357421875,48.40185546875003],[-53.60976562500002,48.20771484375001],[-53.56943359374998,48.088085937499955],[-53.869580078124926,48.019677734374966],[-53.63823242187496,48.01464843750003],[-53.863671874999966,47.787011718749994],[-53.67236328125,47.64824218749999],[-53.28271484375,47.99785156249996],[-52.86601562499993,48.11298828124998],[-53.16982421875002,47.51210937500005],[-52.945019531249955,47.55283203124998],[-52.782421874999955,47.769433593749966],[-52.653662109375034,47.549414062500006],[-53.11484375,46.65581054687502],[-53.32304687499996,46.71835937499998],[-53.589794921874955,46.638867187499955],[-53.59736328124998,47.14599609374997],[-54.00957031249993,46.839599609375],[-54.173730468749994,46.88037109375003],[-53.84951171875002,47.440332031249994],[-53.98901367187503,47.756201171875034],[-54.191845703124955,47.85981445312501],[-54.488134765625006,47.40385742187502],[-54.47392578124996,47.54707031249998],[-54.856640624999955,47.385009765625],[-55.31572265624993,46.905712890624955],[-55.78852539062498,46.86723632812502],[-55.91923828124996,47.01689453124996],[-55.49150390624996,47.16064453125003],[-54.78461914062501,47.664746093749955],[-55.366308593750034,47.66108398437501],[-55.57612304687498,47.46523437499999],[-56.12724609374999,47.50283203125002],[-55.867089843749994,47.592333984375045],[-55.85791015625,47.81918945312498],[-56.774121093749955,47.56499023437499],[-58.33686523437501,47.73085937500002],[-59.11694335937494,47.57070312499999],[-59.32065429687498,47.736914062500006],[-59.272070312500034,47.99555664062504],[-58.330224609374994,48.52211914062502],[-59.16767578124998,48.558496093749966],[-58.84179687500003,48.74643554687498],[-58.906445312499955,48.65019531249999],[-58.716455078124994,48.59804687500002],[-58.403662109375034,49.08432617187498],[-57.99052734374996,48.987939453124966],[-58.09892578124993,49.07744140624999],[-57.98007812499998,49.229638671874994],[-58.19091796875003,49.25874023437498],[-58.21337890625,49.38666992187501],[-58.01582031249998,49.54248046874997],[-57.79130859374999,49.48999023437503],[-57.92617187499999,49.700830078124994],[-57.4326171875,50.50581054687504],[-57.179589843749966,50.614843750000034],[-57.29799804687502,50.69873046874997],[-57.03593750000002,51.01083984374998],[-56.68242187500002,51.332763671875],[-56.025585937499955,51.56835937500006],[-55.6904296875,51.471337890624994],[-55.666406249999966,51.57890624999999],[-55.45874023437494,51.53652343750005]]],[[[-127.92465820312498,51.47387695312497],[-128.14877929687498,51.62670898437503],[-128.03173828125006,51.708398437499966],[-127.92465820312498,51.47387695312497]]],[[[-79.38427734374997,51.951953125000045],[-79.64375,52.01005859374996],[-79.27128906249996,52.086816406249966],[-79.38427734374997,51.951953125000045]]],[[[-128.36875,52.40087890625],[-128.43979492187503,52.696386718750006],[-128.24726562499998,52.784375],[-128.36875,52.40087890625]]],[[[-80.73168945312494,52.74726562499998],[-82.03925781249998,53.04990234374998],[-81.84731445312494,53.18627929687497],[-81.135595703125,53.20581054687503],[-80.73168945312494,52.74726562499998]]],[[[-131.7537109375,53.195556640625],[-131.63466796874997,52.92216796874999],[-131.97177734374998,52.87983398437498],[-131.45522460937502,52.70170898437502],[-131.59057617187494,52.578222656250006],[-131.25971679687495,52.415917968749966],[-131.31992187499998,52.30307617187498],[-131.142626953125,52.291113281250034],[-131.221533203125,52.15361328124999],[-132.16508789062493,52.783300781250034],[-132.14375,52.99931640624999],[-132.54677734374997,53.1375],[-131.7537109375,53.195556640625]]],[[[-128.55244140624998,52.93974609375002],[-128.50991210937502,52.51860351562502],[-128.678955078125,52.289648437500006],[-128.74633789062494,52.763378906249955],[-128.89980468749997,52.67382812500003],[-129.175927734375,52.964941406250006],[-129.033251953125,53.27993164062505],[-128.63266601562498,53.1125],[-128.55244140624998,52.93974609375002]]],[[[-129.167724609375,53.11787109374998],[-129.32387695312502,53.142138671875045],[-129.23818359374997,53.33007812500006],[-129.167724609375,53.11787109374998]]],[[[-129.84858398437498,53.167919921874955],[-130.51757812500003,53.54423828124999],[-130.45200195312498,53.63115234375002],[-129.94472656250002,53.436376953125034],[-129.75483398437498,53.244775390624994],[-129.84858398437498,53.167919921874955]]],[[[-130.236279296875,53.95854492187502],[-130.38422851562504,53.84394531250001],[-130.703173828125,53.892236328124994],[-130.44799804687497,54.08901367187502],[-130.236279296875,53.95854492187502]]],[[[-132.65551757812503,54.12749023437496],[-132.30336914062497,54.098876953125],[-132.16611328124998,53.95522460937505],[-132.53466796875,53.651708984375034],[-132.18696289062504,53.68481445312503],[-132.134423828125,54.03427734374998],[-131.66762695312502,54.14135742187503],[-131.957421875,53.308691406250034],[-132.34726562500003,53.18920898437503],[-132.747509765625,53.310498046874955],[-132.425,53.33696289062502],[-132.84501953125,53.507714843749994],[-133.07949218749997,53.837011718750034],[-133.04838867187493,54.15893554687497],[-132.65551757812503,54.12749023437496]]],[[[-130.92714843749997,54.47905273437499],[-130.90683593750003,54.63178710937504],[-130.75800781249998,54.61376953125],[-130.92714843749997,54.47905273437499]]],[[[-130.57534179687497,54.769677734374966],[-130.2140625,55.02587890625003],[-130.34941406249996,54.814550781250034],[-130.57534179687497,54.769677734374966]]],[[[-79.97758789062499,56.20703125000006],[-80.057470703125,56.28735351562497],[-79.57973632812502,56.466357421875045],[-79.97758789062499,56.20703125000006]]],[[[-78.93559570312496,56.26606445312498],[-79.17548828124998,55.88505859374999],[-79.18212890625,56.21215820312503],[-79.4951171875,55.87475585937503],[-79.76474609374995,55.80678710937505],[-79.54472656249999,56.12836914062501],[-79.9875,55.89213867187502],[-79.45888671875,56.53974609374998],[-79.53632812499995,56.180078124999966],[-79.27241210937493,56.600439453125006],[-78.93559570312496,56.26606445312498]]],[[[-61.743603515624955,57.55458984375005],[-61.6375,57.41606445312499],[-62.01123046875003,57.54848632812505],[-61.743603515624955,57.55458984375005]]],[[[-79.71650390624998,57.515527343749994],[-79.80844726562498,57.44243164062502],[-79.74257812499997,57.60795898437499],[-79.71650390624998,57.515527343749994]]],[[[-69.16005859375,59.04023437500001],[-69.35283203125002,58.96074218749999],[-69.30322265625003,59.144873046875006],[-69.16005859375,59.04023437500001]]],[[[-64.40703125,60.367089843749966],[-64.44194335937496,60.2978515625],[-64.73793945312497,60.37563476562502],[-64.83642578124997,60.50102539062499],[-64.40703125,60.367089843749966]]],[[[-68.23378906250002,60.24091796875001],[-68.36787109374998,60.314746093750045],[-68.08759765624998,60.58784179687501],[-67.81884765624994,60.449511718750074],[-68.23378906250002,60.24091796875001]]],[[[-78.531640625,60.72856445312499],[-78.66889648437498,60.716894531250006],[-78.24169921875,60.818652343750045],[-78.531640625,60.72856445312499]]],[[[-64.83261718749998,61.366064453125006],[-65.43212890625,61.649511718750034],[-64.78964843750003,61.662207031250034],[-64.83261718749998,61.366064453125006]]],[[[-65.03056640624999,61.879052734374966],[-64.89658203124995,61.73330078125005],[-65.23535156249997,61.89770507812506],[-65.03056640624999,61.879052734374966]]],[[[-79.54531250000002,62.41171875000006],[-79.28647460937495,62.247656250000034],[-79.32392578124995,62.02607421875001],[-79.81611328124995,61.59462890625002],[-80.26518554687496,61.818212890625006],[-80.26005859374996,62.10903320312502],[-79.9267578125,62.39287109375002],[-79.54531250000002,62.41171875000006]]],[[[-64.82382812499998,62.558740234374994],[-64.46503906249998,62.535937500000045],[-64.47832031250002,62.417871093749966],[-64.901220703125,62.421044921874994],[-64.82382812499998,62.558740234374994]]],[[[-70.33706054687497,62.548730468749994],[-70.76606445312498,62.596875],[-71.22011718750002,62.873925781249966],[-70.44262695312497,62.73378906250002],[-70.33706054687497,62.548730468749994]]],[[[-82.00048828124997,62.95419921874998],[-82.02583007812498,62.73007812499998],[-82.56826171875002,62.403222656249994],[-83.01582031249998,62.20991210937498],[-83.69887695312497,62.16025390624998],[-83.91049804687498,62.45415039062499],[-83.37641601562498,62.904931640624994],[-82.00048828124997,62.95419921874998]]],[[[-77.87670898437497,63.470556640625034],[-77.53271484374997,63.233642578125],[-77.94243164062496,63.11440429687502],[-78.536767578125,63.423730468749994],[-77.87670898437497,63.470556640625034]]],[[[-76.67758789062503,63.393945312499966],[-77.36474609374994,63.588330078124955],[-77.13369140624997,63.68203125000002],[-76.65244140624998,63.503564453124994],[-76.67758789062503,63.393945312499966]]],[[[-84.91962890624995,65.26108398437503],[-84.50112304687497,65.45844726562501],[-84.08486328125,65.21782226562502],[-82.05,64.64428710937506],[-81.67612304687498,64.21264648437503],[-81.88710937499997,64.01640625000002],[-80.82895507812495,64.08994140625],[-80.30205078124999,63.76220703125003],[-81.04638671875003,63.461572265624966],[-82.378125,63.706787109375],[-82.46708984375002,63.92695312500001],[-83.30395507812497,64.14379882812506],[-84.63291015625,63.30922851562502],[-85.39262695312496,63.119677734375045],[-85.76894531249997,63.70034179687502],[-87.15190429687499,63.58564453125001],[-86.93203124999997,63.90166015625002],[-86.252099609375,64.13686523437497],[-86.37426757812503,64.56582031249997],[-86.074609375,65.533837890625],[-85.55468750000003,65.91865234374995],[-85.17622070312501,65.746875],[-85.23994140624993,65.51030273437499],[-84.91962890624995,65.26108398437503]]],[[[-84.67475585937498,65.575],[-85.096337890625,65.756201171875],[-85.14960937500001,66.01538085937506],[-84.75737304687496,65.85893554687505],[-84.67475585937498,65.575]]],[[[-83.72597656249997,65.796728515625],[-83.23374023437495,65.71503906249995],[-83.332421875,65.63105468749998],[-84.11826171874995,65.77177734375007],[-84.40717773437501,66.13100585937497],[-83.78696289062495,65.96577148437498],[-83.72597656249997,65.796728515625]]],[[[-108.09272460937501,67.00517578124999],[-107.80551757812493,66.99858398437507],[-107.94394531249999,66.8578125],[-108.09272460937501,67.00517578124999]]],[[[-62.681542968749966,67.05629882812502],[-62.87163085937499,67.06259765625006],[-62.41679687499996,67.18847656250003],[-62.681542968749966,67.05629882812502]]],[[[-107.89985351562497,67.40180664062495],[-107.95024414062503,67.31821289062498],[-108.15224609374997,67.429443359375],[-108.04897460937498,67.664892578125],[-107.89985351562497,67.40180664062495]]],[[[-73.621728515625,67.783837890625],[-74.573388671875,67.82866210937507],[-74.70654296875003,68.06708984374995],[-73.49375,68.00063476562502],[-73.40717773437498,67.79306640625],[-73.621728515625,67.783837890625]]],[[[-86.59555664062498,67.7359375],[-86.89252929687498,67.836572265625],[-86.95981445312503,68.10024414062497],[-86.70209960937501,68.30561523437498],[-86.42114257812497,68.18344726562503],[-86.59555664062498,67.7359375]]],[[[-75.67587890624998,68.32250976562506],[-75.078125,68.17314453124999],[-75.20195312499996,67.45917968750001],[-75.78007812499996,67.28354492187503],[-76.94418945312498,67.25029296875002],[-77.30439453125001,67.68510742187505],[-77.12587890624997,67.94707031250002],[-76.59580078124998,68.27895507812497],[-75.67587890624998,68.32250976562506]]],[[[-78.98271484374999,68.19282226562501],[-79.17475585937493,68.26445312500002],[-78.95258789062495,68.35302734375006],[-78.98271484374999,68.19282226562501]]],[[[-104.54067382812497,68.405908203125],[-105.05136718749999,68.55903320312501],[-104.60200195312503,68.56152343749997],[-104.54067382812497,68.405908203125]]],[[[-74.880859375,68.34868164062505],[-75.40024414062503,68.52548828125],[-75.28740234374996,68.68774414062503],[-74.98364257812497,68.64760742187502],[-74.880859375,68.34868164062505]]],[[[-101.84589843749994,68.58632812499997],[-102.30815429687497,68.681982421875],[-102.01337890624995,68.82539062500001],[-101.73295898437495,68.75341796875],[-101.84589843749994,68.58632812499997]]],[[[-100.21723632812497,68.80668945312502],[-100.59653320312496,68.76640625000007],[-100.56547851562495,69.02680664062501],[-100.21723632812497,68.80668945312502]]],[[[-99.99467773437502,69.01352539062503],[-100.19570312500002,68.991455078125],[-100.153125,69.12949218750003],[-99.99467773437502,69.01352539062503]]],[[[-79.21064453124995,68.845458984375],[-79.24267578125,69.04926757812495],[-78.33256835937496,69.38603515624999],[-78.77919921875,68.95048828124999],[-79.21064453124995,68.845458984375]]],[[[-90.1998046875,69.419091796875],[-90.33027343749993,69.252197265625],[-90.49204101562503,69.369873046875],[-90.1998046875,69.419091796875]]],[[[-76.99536132812503,69.14375],[-77.37939453125,69.2740234375],[-77.18754882812502,69.440087890625],[-76.66884765625002,69.36616210937504],[-76.99536132812503,69.14375]]],[[[-101.171728515625,69.39707031250003],[-101.31289062499998,69.57607421875],[-101.00063476562497,69.4619140625],[-101.171728515625,69.39707031250003]]],[[[-95.51367187499997,69.57363281250002],[-95.43745117187498,69.37846679687505],[-95.73012695312502,69.34755859374997],[-95.80620117187499,69.56049804687501],[-95.89345703125,69.35175781250004],[-95.87583007812495,69.60600585937505],[-95.51367187499997,69.57363281250002]]],[[[-67.91469726562494,69.54096679687504],[-68.22138671874998,69.61674804687502],[-67.908837890625,69.68183593749995],[-67.91469726562494,69.54096679687504]]],[[[-78.02910156249993,69.71489257812502],[-78.03999023437495,69.6083984375],[-78.84819335937502,69.4828125],[-78.02910156249993,69.71489257812502]]],[[[-79.43066406250003,69.78779296874995],[-79.55283203124995,69.63085937500006],[-80.04750976562502,69.63432617187505],[-79.97783203124993,69.50966796874997],[-80.794775390625,69.68925781250005],[-80.42421875000002,69.797607421875],[-79.43066406250003,69.78779296874995]]],[[[-97.439453125,69.64267578125006],[-96.29995117187494,69.34438476562505],[-95.7513671875,68.89765624999998],[-95.26777343749998,68.82607421874997],[-96.40156249999995,68.47070312500003],[-97.47202148437498,68.543701171875],[-98.320556640625,68.84272460937498],[-98.70380859374993,68.80278320312502],[-98.90449218749995,68.93242187500005],[-99.25400390625002,68.86318359374997],[-99.49467773437493,68.95957031249998],[-99.455712890625,69.13120117187503],[-98.45595703124997,69.33466796875001],[-98.54599609375,69.57290039062497],[-98.04135742187498,69.456640625],[-98.20048828124996,69.79697265625006],[-97.79072265624998,69.86162109374999],[-97.439453125,69.64267578125006]]],[[[-86.91303710937501,70.11323242187501],[-86.55766601562499,69.99531249999995],[-87.3232421875,70.08012695312502],[-86.91303710937501,70.11323242187501]]],[[[-74.70888671874997,45.0038574218751],[-74.76245117187494,44.99907226562502],[-74.99614257812496,44.970117187499966],[-75.40126953124997,44.77226562499999],[-75.81933593749997,44.468017578125],[-76.18579101562503,44.24223632812502],[-76.819970703125,43.62880859375011],[-77.59653320312492,43.62861328125007],[-78.45825195312497,43.63149414062511],[-78.72041015624993,43.62495117187501],[-78.84555664062492,43.58334960937506],[-79.171875,43.466552734375085],[-79.0830566406249,43.33139648437509],[-79.05922851562494,43.27807617187506],[-79.066064453125,43.10610351562502],[-79.02617187499996,43.01733398437506],[-78.98076171874993,42.98061523437502],[-78.91508789062496,42.90913085937504],[-79.17373046875,42.74853515625],[-80.24755859374991,42.366015625000045],[-81.02822265624997,42.247167968750006],[-81.50732421874997,42.10346679687504],[-81.97416992187496,41.88872070312499],[-82.43906249999989,41.6748535156251],[-82.69003906249995,41.675195312499994],[-83.141943359375,41.97587890624996],[-83.10952148437497,42.25068359375001],[-82.54531249999997,42.62470703124998],[-82.19038085937495,43.47407226562501],[-82.137841796875,43.570898437500034],[-82.48505859374993,45.08374023437503],[-82.55107421874987,45.3473632812501],[-82.91933593749994,45.51796875000002],[-83.59267578125,45.81713867187506],[-83.46948242187503,45.99467773437499],[-83.61596679687503,46.116845703124994],[-83.97778320312494,46.08491210937507],[-84.12319335937497,46.50292968749997],[-84.44047851562496,46.49814453125006],[-84.66577148437503,46.54326171875002],[-84.87597656249994,46.89990234375003],[-85.07006835937497,46.97993164062498],[-85.65224609375,47.21997070312503],[-86.67216796874996,47.636425781249955],[-87.20800781249997,47.848486328125006],[-87.74389648437497,48.06054687500003],[-88.37817382812497,48.30307617187506],[-89.45566406249992,47.99624023437508],[-90.79731445312495,48.13105468750001],[-91.04345703124991,48.19370117187498],[-91.38720703124997,48.05854492187498],[-92.00517578125002,48.301855468750006],[-92.3484375,48.276611328125],[-92.41459960937493,48.276611328125],[-92.50058593749995,48.43535156250002],[-92.83671875,48.567773437499994],[-93.25795898437497,48.62885742187501],[-93.37788085937498,48.61655273437498],[-93.70771484374995,48.525439453125074],[-93.85161132812496,48.607275390625034],[-94.6208984374999,48.7426269531251],[-94.71279296874997,48.863427734374994],[-94.80346679687497,49.0029296875],[-94.86040039062493,49.258593750000045],[-94.85434570312495,49.304589843749994],[-95.15527343749997,49.3696777343751],[-95.16206054687493,48.991748046875045],[-95.39790039062493,48.99316406249997],[-96.25068359374993,48.99316406249997],[-96.67705078124993,48.99316406249997],[-97.52983398437493,48.99316406249997],[-98.80898437499995,48.99316406249997],[-104.77832031249997,48.993115234375125],[-110.7476562499999,48.993066406250136],[-116.71704101562493,48.993066406250136],[-118.84892578124993,48.993066406250136],[-119.27534179687494,48.993066406250136],[-119.70170898437495,48.99301757812495],[-120.98085937499995,48.99301757812495],[-122.78876953124994,48.99301757812495],[-122.82670898437495,49.028417968750034],[-122.9241699218749,49.07465820312504],[-122.96269531249993,49.07460937500005],[-123.06328125,48.97773437500001],[-123.22944335937493,49.260498046875085],[-122.87910156249995,49.39892578125003],[-123.27675781249997,49.34394531250001],[-123.1875,49.680322265624994],[-123.53056640624989,49.39731445312506],[-124.02861328125002,49.602880859375006],[-123.99262695312497,49.736181640625006],[-123.81718749999993,49.58657226562508],[-123.58247070312498,49.68125],[-123.87441406250005,49.736816406250114],[-123.82543945312493,50.14423828124998],[-123.94589843749995,50.18393554687509],[-123.9849121093749,49.87558593749998],[-124.28125,49.77211914062502],[-124.78237304687492,50.02011718749992],[-125.05668945312495,50.418652343750125],[-124.8598632812499,50.872412109375006],[-125.05878906249993,50.51386718749998],[-125.4763183593749,50.49716796874995],[-125.53935546874996,50.64902343749998],[-125.64130859374994,50.46621093750005],[-126.09433593749995,50.497607421875045],[-126.44746093750004,50.58774414062492],[-125.90410156250002,50.704931640625006],[-126.51435546875,50.679394531250125],[-126.37460937499995,50.83735351562498],[-126.5217773437499,50.86606445312498],[-126.51733398437497,51.0568359375001],[-126.63178710937494,50.915136718750006],[-127.057568359375,50.86752929687509],[-127.70810546875,51.15117187499996],[-127.41967773437496,51.608056640625136],[-126.69145507812502,51.70341796875002],[-127.33872070312489,51.70737304687495],[-127.66870117187497,51.47758789062502],[-127.85053710937498,51.67319335937509],[-127.79536132812493,52.19101562500006],[-127.43793945312504,52.356152343750125],[-127.24223632812496,52.39511718750009],[-126.71396484374989,52.060693359374994],[-127.19399414062498,52.45766601562502],[-126.95136718749994,52.7510253906251],[-127.01933593750002,52.8424804687501],[-127.06621093749989,52.65268554687498],[-127.79189453124994,52.28935546875002],[-128.10224609374993,51.78842773437495],[-128.3576171875,52.1588867187501],[-128.0375,52.318164062500045],[-127.94023437499996,52.545166015625085],[-128.27153320312493,52.3629882812501],[-128.05327148437487,52.91069335937496],[-128.3650390624999,52.82578125000006],[-128.52470703125002,53.1406738281251],[-129.08090820312492,53.36728515625006],[-129.1715820312499,53.53359375000002],[-128.8545898437499,53.70454101562504],[-128.90561523437492,53.559326171875114],[-128.5421386718749,53.420654296875114],[-128.13271484375002,53.417773437500045],[-127.92783203125,53.274707031250045],[-128.2072265624999,53.483203125000074],[-128.67553710937494,53.55458984375005],[-128.76367187500003,53.746875],[-128.5321289062499,53.85810546875007],[-128.959375,53.84145507812505],[-129.2578613281249,53.417968750000085],[-129.56372070312506,53.251464843750114],[-130.33525390625002,53.723925781250074],[-130.04331054687495,54.13354492187503],[-129.62602539062493,54.23027343750002],[-130.08422851562503,54.18139648437503],[-130.4302734375,54.42099609374998],[-129.56064453124995,55.46254882812508],[-129.79516601562503,55.559570312500114],[-130.04848632812494,55.05727539062511],[-130.01406249999997,55.950537109375006],[-130.09785156249995,56.10927734375002],[-130.41313476562487,56.12250976562507],[-130.47709960937496,56.230566406250034],[-130.649072265625,56.26367187500003],[-131.471875,56.55673828125006],[-131.82426757812496,56.58999023437508],[-131.86616210937495,56.792822265625006],[-132.1042968749999,56.85678710937509],[-132.062890625,56.95336914062503],[-132.33798828124992,57.07944335937498],[-132.27939453124998,57.14536132812506],[-132.23217773437494,57.198535156250074],[-132.30166015625005,57.2763183593751],[-132.44248046874986,57.40673828125003],[-132.55048828124995,57.499902343749994],[-133.00141601562495,57.948974609375],[-133.27529296875,58.22285156250004],[-133.54638671874997,58.50346679687499],[-134.21850585937503,58.849902343750045],[-134.32963867187505,58.93969726562506],[-134.39306640625,59.009179687499994],[-134.67724609374997,59.19926757812499],[-134.94375,59.28828125000001],[-135.05102539062491,59.57866210937502],[-135.36787109374998,59.743310546874994],[-135.70258789062504,59.72875976562506],[-136.3218261718749,59.604833984375034],[-136.27797851562494,59.48032226562506],[-136.46635742187493,59.459082031250006],[-136.57875976562494,59.15224609375002],[-136.81328125000002,59.15004882812511],[-137.12622070312491,59.04096679687507],[-137.2775390624999,58.988183593749994],[-137.43857421874995,58.903125],[-137.52089843749994,58.91538085937506],[-137.59331054687493,59.22626953124998],[-138.317626953125,59.611132812500074],[-138.86875,59.94575195312501],[-139.18515624999986,60.083593750000034],[-139.13696289062494,60.17270507812506],[-139.07924804687497,60.279443359375136],[-139.07924804687497,60.3437011718751],[-139.23476562499997,60.339746093749994],[-139.67631835937505,60.32832031249998],[-139.97329101562497,60.183154296875074],[-140.45283203125004,60.29970703125002],[-140.5254394531249,60.21835937499995],[-140.76274414062505,60.25913085937509],[-141.00214843750004,60.300244140625125],[-141.00214843750004,60.884667968749994],[-141.00214843750004,61.761279296875045],[-141.00214843750004,63.22226562499998],[-141.00214843750004,64.09887695312506],[-141.00214843750004,65.55991210937498],[-141.00214843750004,66.43652343750006],[-141.00214843750004,67.89755859374998],[-141.00214843750004,68.77416992187506],[-141.00214843750004,69.65078125000011],[-139.18154296874997,69.51552734375008],[-137.25996093749998,68.96411132812503],[-136.12236328124993,68.88222656250002],[-135.258837890625,68.68432617187503],[-135.93901367187487,68.9741699218751],[-135.575537109375,69.02695312500003],[-135.91020507812487,69.11147460937502],[-135.6914550781249,69.31118164062502],[-135.29282226562486,69.30786132812506],[-135.1408203124999,69.46782226562496],[-134.45683593749993,69.47763671875],[-134.40893554687494,69.68178710937502],[-133.87978515624997,69.50771484375011],[-134.17431640624991,69.25283203125005],[-133.16313476562496,69.43388671874999],[-132.91533203125002,69.62963867187506],[-132.40390625,69.65874023437496],[-132.48847656249993,69.73808593749996],[-132.16342773437498,69.70498046875014],[-131.13637695312497,69.90688476562505],[-130.66547851562495,70.12705078124998],[-129.944970703125,70.09091796875006],[-129.675634765625,70.19296875000009],[-129.64829101562495,69.9977539062501],[-130.83208007812487,69.65146484375006],[-131.9377929687499,69.5347167968751],[-132.8174804687499,69.20576171875004],[-133.41831054687492,68.84428710937493],[-133.138037109375,68.74658203125011],[-133.33666992187497,68.83525390625005],[-132.57763671874997,68.84780273437514],[-132.71894531249998,69.07919921875],[-131.78837890625002,69.43198242187495],[-131.32470703124997,69.36118164062509],[-131.06342773437504,69.45068359375003],[-130.97065429687495,69.20908203125],[-130.1176269531249,69.720068359375],[-128.89892578124994,69.96616210937506],[-129.15791015624995,69.80009765624999],[-129.05434570312502,69.70107421875005],[-128.85302734375003,69.7510253906251],[-127.68378906249994,70.26035156249995],[-128.17011718749998,70.41845703125],[-127.99101562499992,70.57382812500003],[-127.22597656249992,70.29614257812497],[-126.25043945312495,69.54526367187492],[-125.52495117187495,69.35156250000009],[-125.171875,69.42797851562503],[-125.35693359374991,69.62597656250003],[-124.767919921875,69.99003906249996],[-124.99038085937494,70.02661132812511],[-124.55502929687488,70.15122070312509],[-124.40693359374991,69.76743164062506],[-124.12460937499995,69.6899902343751],[-124.33808593749991,69.36484374999995],[-123.5284179687499,69.38935546874995],[-123.02578125,69.81000976562504],[-122.07006835937499,69.81616210937506],[-120.96245117187502,69.66040039062511],[-120.13999023437488,69.38056640625013],[-117.22695312499998,68.913427734375],[-116.05947265625,68.83701171875006],[-116.2434082031249,68.9740722656251],[-115.44228515624994,68.94091796875009],[-114.62016601562496,68.74609375],[-113.96440429687495,68.39907226562502],[-114.09594726562491,68.26679687500007],[-114.76528320312494,68.27021484375004],[-115.12705078124992,68.13203124999995],[-115.43447265624994,67.90234375000006],[-115.13320312499994,67.819189453125],[-112.50302734374993,67.6819335937501],[-110.9900390624999,67.79082031250007],[-110.07392578124995,67.99291992187506],[-109.63037109374991,67.73271484374996],[-109.03803710937504,67.69116210937503],[-108.85200195312497,67.42197265625009],[-108.61333007812493,67.59804687500008],[-107.98872070312495,67.2563964843751],[-107.99130859374995,67.09516601562513],[-108.49604492187493,67.09228515625006],[-107.25947265624998,66.39853515624995],[-107.71035156250001,66.74003906250007],[-107.7250976562499,66.98413085937506],[-107.15649414062497,66.88173828124997],[-107.9583984375,67.81860351562506],[-107.79829101562498,68.03691406249996],[-106.42426757812491,68.20058593750008],[-105.7501953125,68.59228515625011],[-106.45805664062496,68.51645507812495],[-106.60849609374988,68.35737304687504],[-107.61933593749994,68.3310546875],[-107.73417968749989,68.17373046875011],[-108.3228027343749,68.15410156250002],[-108.71811523437488,68.29746093750009],[-108.31347656249996,68.61079101562498],[-106.16445312499992,68.91987304687507],[-105.68559570312489,68.82817382812505],[-105.3774414062499,68.413818359375],[-104.65317382812488,68.23007812500003],[-104.48681640624991,68.06318359374998],[-103.47412109374993,68.11503906250005],[-102.32036132812489,67.73564453125005],[-101.55498046874992,67.69316406250007],[-100.21293945312489,67.83857421875004],[-98.92045898437502,67.72578124999998],[-98.41210937499991,67.80717773437505],[-98.63154296875004,68.0725585937501],[-97.45493164062486,67.61699218750002],[-97.20654296874989,67.85507812500003],[-97.73911132812495,67.97817382812505],[-98.19252929687494,67.92299804687502],[-98.65048828124989,68.36352539062506],[-98.21855468750002,68.31743164062507],[-97.7942382812499,68.38759765625],[-97.9250976562499,68.523681640625],[-97.41035156249993,68.49653320312498],[-96.97670898437497,68.25541992187505],[-96.43066406249991,68.3105957031251],[-96.72207031250005,68.03876953124998],[-95.9703125,68.24912109375],[-96.36914062499991,67.50976562500003],[-96.14145507812489,67.27182617187503],[-95.71992187499998,67.31679687500014],[-95.77768554687495,67.18461914062505],[-95.41591796875005,67.15556640624999],[-95.41889648437504,67.01323242187493],[-96.42255859374995,67.05175781249997],[-95.7875488281249,66.616796875],[-96.03686523437489,66.9375],[-95.39965820312503,66.94946289062509],[-95.25874023437493,67.26254882812492],[-95.65048828124986,67.73745117187505],[-95.46069335937503,68.02138671875],[-94.74443359374993,68.07089843749995],[-93.44892578124998,68.61889648437503],[-93.85244140624994,69.00034179687495],[-94.06489257812495,68.78476562500006],[-94.600439453125,68.80322265625011],[-94.08364257812497,69.12309570312507],[-94.254736328125,69.31376953125002],[-93.61948242187492,69.41699218750009],[-93.74853515624991,69.2261230468751],[-93.5322753906249,69.48090820312495],[-94.2708007812499,69.45512695312505],[-94.63383789062496,69.64965820312506],[-94.82250976562494,69.577783203125],[-95.96494140624989,69.80278320312499],[-96.5513671875,70.21030273437506],[-96.29770507812492,70.51137695312511],[-95.87861328124998,70.54897460937514],[-95.88632812499986,70.69428710937507],[-96.25800781249993,70.64228515625013],[-96.54892578124995,70.80874023437511],[-96.44658203124996,71.23989257812502],[-96.06201171874997,71.41386718749993],[-95.5642578124999,71.33676757812503],[-95.40625,71.49165039062498],[-95.87231445312494,71.57314453125005],[-94.73486328124994,71.98295898437507],[-94.30834960937491,71.76489257812506],[-93.74628906249998,71.742822265625],[-92.94868164062493,71.26210937500011],[-92.98144531249994,70.8522460937501],[-91.56406249999995,70.1782714843751],[-92.32050781250004,70.2353515625],[-92.51186523437494,70.10385742187503],[-91.976708984375,70.03867187500009],[-92.88779296874989,69.66821289062511],[-92.31166992187494,69.67290039062499],[-91.91196289062495,69.53125],[-91.20180664062494,69.64477539062494],[-91.43994140624997,69.52568359375002],[-90.4155761718749,69.45698242187507],[-90.89228515625004,69.26728515624995],[-91.23720703125005,69.28554687500014],[-90.47900390624994,68.88115234374999],[-90.57363281250005,68.47470703124998],[-90.20478515625004,68.25747070312511],[-89.27954101562491,69.25546875000003],[-88.22353515625,68.91503906249997],[-87.81357421874986,68.34570312499997],[-87.89267578125,68.24814453125],[-88.34697265624993,68.28828125000001],[-88.313818359375,67.95034179687508],[-87.359375,67.17724609374997],[-86.56079101562491,67.48212890625007],[-85.64316406249992,68.69970703124997],[-84.86757812499994,68.77333984375005],[-85.10664062499995,68.84404296875007],[-84.86220703125,69.07397460937503],[-85.38676757812493,69.23188476562504],[-85.50737304687487,69.84526367187493],[-82.61835937499993,69.69106445312514],[-82.39023437499989,69.60087890625007],[-82.75483398437493,69.49438476562506],[-82.30986328124996,69.41000976562509],[-82.22753906249997,69.24887695312495],[-81.37783203125005,69.18564453125003],[-81.95791015624991,68.88364257812498],[-81.38090820312496,68.85004882812504],[-81.28154296874987,68.65722656250003],[-81.91484374999993,68.4587890625001],[-82.55268554687504,68.44648437500007],[-82.22241210937489,68.145263671875],[-82.0125,68.19389648437496],[-81.97646484374997,67.86201171875001],[-81.2943359375,67.497412109375],[-81.46757812499996,67.0698730468751],[-83.40644531249998,66.37124023437508],[-84.53847656249994,66.97280273437505],[-84.84575195312502,67.02871093750008],[-85.11372070312498,66.90693359375013],[-84.73774414062504,66.93359375000006],[-84.223046875,66.68247070312506],[-83.86904296875,66.2135742187501],[-84.29306640624995,66.29179687500005],[-84.628076171875,66.20771484374998],[-85.603857421875,66.56826171875005],[-86.708154296875,66.52304687500009],[-86.68510742187502,66.36040039062499],[-85.95874023437491,66.11904296875002],[-87.45288085937503,65.33896484375009],[-87.96997070312503,65.34892578124999],[-89.7494140625,65.93603515625006],[-89.88969726562487,65.86855468749997],[-91.42724609374994,65.94790039062497],[-91.04111328124989,65.82983398437509],[-90.98344726562496,65.91923828124999],[-89.92407226562497,65.78027343750011],[-88.97402343749994,65.34829101562502],[-87.02753906249995,65.19809570312498],[-88.10561523437497,64.18330078125001],[-88.81772460937489,63.99223632812499],[-89.20063476562493,64.11376953125006],[-89.13154296874998,63.96850585937494],[-89.61582031249995,64.030615234375],[-89.8113281249999,64.18056640625],[-90.04165039062494,64.14086914062509],[-89.85571289062497,63.9569824218751],[-90.16816406250004,63.978759765625085],[-90.15473632812498,63.68964843749998],[-90.81191406249991,63.580908203125034],[-91.98222656249996,63.82241210937502],[-92.33842773437496,63.787646484375045],[-93.69633789062493,64.14716796875013],[-93.55981445312491,63.865283203125074],[-93.27021484374998,63.840869140625074],[-93.37851562499992,63.94848632812497],[-92.15688476562491,63.691699218750045],[-92.46508789062491,63.55507812500011],[-91.84184570312496,63.69755859374999],[-90.97006835937489,63.442773437500136],[-90.69858398437492,63.06386718750005],[-91.44897460937503,62.804052734375034],[-92.3612792968749,62.81938476562496],[-91.93583984374993,62.59238281250009],[-92.55141601562491,62.546728515625034],[-92.76596679687492,62.34995117187509],[-92.52797851562494,62.16840820312504],[-93.20537109374993,62.364941406250125],[-92.90551757812503,62.21513671874996],[-93.3330566406249,61.93291015625002],[-93.58178710937494,61.94204101562511],[-93.31201171874997,61.76728515625004],[-93.91274414062497,61.48144531250006],[-94.509375,60.60454101562493],[-94.76171874999991,60.498242187500125],[-94.78828124999998,59.26787109374993],[-94.95732421874996,59.068847656250085],[-94.28706054687493,58.716015625000125],[-94.33222656249998,58.297363281250114],[-94.12319335937494,58.73671875000008],[-93.1787597656249,58.72563476562496],[-92.43281249999993,57.3203125],[-92.7981445312499,56.921972656250034],[-90.89746093750003,57.25693359375006],[-88.94848632812489,56.85131835937503],[-88.07509765624997,56.46728515624994],[-87.48242187499991,56.021289062500045],[-85.55932617187491,55.54018554687508],[-85.21801757812491,55.348974609375034],[-85.3652832031249,55.07929687499998],[-85.06093749999997,55.285644531250085],[-83.91059570312493,55.314648437499955],[-82.39326171874998,55.067822265625125],[-82.219384765625,54.8134765625],[-82.42416992187486,54.2445800781251],[-82.14145507812492,53.81762695312497],[-82.29155273437496,53.03071289062507],[-81.5994140624999,52.432617187500085],[-81.82788085937489,52.22421875000009],[-81.46621093749994,52.204492187500136],[-80.588037109375,51.667236328125114],[-80.4433105468749,51.38857421875002],[-80.85122070312497,51.125],[-80.47832031249993,51.30732421874998],[-80.10356445312487,51.282861328125136],[-79.34790039062494,50.76264648437504],[-79.737451171875,51.186279296875],[-79.33867187500002,51.62817382812497],[-79.04052734375003,51.46376953125005],[-78.90317382812495,51.200292968750034],[-78.73134765624994,51.497460937499994],[-78.98164062499993,51.774560546875136],[-78.44809570312495,52.26137695312502],[-78.74414062499994,52.65537109374998],[-79.10034179687497,53.65664062500005],[-78.99604492187493,54.00249023437499],[-79.241796875,54.098876953125085],[-79.14672851562491,54.16923828125002],[-79.71235351562495,54.6718261718751],[-77.77529296874994,55.291259765625],[-76.60405273437496,56.19956054687495],[-76.52558593749998,56.8917968750001],[-76.80981445312497,57.65795898437506],[-77.15678710937496,58.018896484375034],[-78.51508789062493,58.68237304687503],[-77.76069335937498,59.38002929687505],[-77.72617187499995,59.67587890624992],[-77.34907226562495,59.57895507812509],[-77.48530273437493,59.684570312500114],[-77.28920898437494,60.0220214843751],[-77.58588867187498,60.088183593750074],[-77.45288085937497,60.1458007812501],[-77.6814453124999,60.427099609375034],[-77.503564453125,60.54272460937497],[-77.7908203124999,60.63984375000004],[-77.58955078124993,60.808593750000114],[-78.18134765624995,60.81914062499996],[-77.51435546874998,61.55629882812505],[-78.02138671874997,61.8320800781251],[-78.13339843749986,62.28227539062496],[-77.372412109375,62.572509765625114],[-75.81689453124991,62.31586914062507],[-75.7898437499999,62.17958984375002],[-75.3412109375,62.312109375],[-74.63256835937497,62.115673828125125],[-74.6458007812499,62.21113281250004],[-73.70507812499991,62.47314453124994],[-72.68696289062498,62.12456054687499],[-72.771630859375,61.840429687500006],[-72.50556640624998,61.922656250000074],[-72.22612304687487,61.83159179687499],[-72.04003906249991,61.68027343750006],[-72.21586914062502,61.58725585937495],[-71.86611328125,61.68852539062499],[-71.63828124999995,61.6171875],[-71.85439453124991,61.43979492187492],[-71.42270507812489,61.158935546875085],[-70.27929687499991,61.06865234374999],[-69.99243164062491,60.8564941406251],[-69.50332031249994,61.04042968750011],[-69.40473632812493,60.84677734375009],[-69.75947265624998,60.440234375000045],[-69.67373046874994,60.07587890625007],[-70.65483398437496,60.02622070312506],[-69.73393554687493,59.918017578125045],[-69.68188476562489,59.34174804687507],[-69.3440429687499,59.303076171875006],[-69.53164062499994,58.86923828125009],[-69.64838867187493,58.82080078125],[-69.78417968749994,58.95571289062511],[-70.15434570312496,58.76059570312498],[-69.78989257812486,58.689306640625034],[-69.27109374999986,58.88393554687505],[-68.69819335937495,58.904541015625],[-68.38115234374993,58.74350585937506],[-68.22939453124994,58.48457031250007],[-68.35654296874989,58.163232421875136],[-69.04082031249996,57.902490234375136],[-68.41357421874997,58.0517578125],[-68.02104492187493,58.48530273437504],[-67.88828124999989,58.29575195312495],[-68.06386718750005,58.13896484374999],[-67.75595703124992,58.4045898437501],[-67.6782714843749,57.99111328125008],[-67.5696289062499,58.21347656250006],[-66.72216796874991,58.49101562499996],[-66.36240234374989,58.791162109374994],[-66.0023925781249,58.43120117187502],[-66.04306640624995,58.82065429687495],[-65.72099609374996,59.02377929687495],[-65.38354492187494,59.06020507812508],[-65.7,59.21333007812501],[-65.4117187499999,59.31499023437496],[-65.47509765624994,59.47031249999998],[-65.03823242187494,59.38789062500007],[-65.40742187499993,59.53935546875002],[-65.4333984374999,59.776513671874994],[-65.02817382812495,59.77070312500007],[-65.17172851562489,59.90800781249996],[-64.81733398437498,60.3310546875],[-64.49941406250005,60.26826171875001],[-64.41958007812494,60.17138671874997],[-64.76845703124997,60.01210937500005],[-64.28349609374993,60.06406249999998],[-64.22631835937491,59.741210937500085],[-64.05605468750005,59.82255859374996],[-63.7501953124999,59.51259765625005],[-63.945458984374994,59.380175781250074],[-63.775878906249915,59.277148437500045],[-63.539892578124864,59.332861328125034],[-63.41513671874995,59.194384765625074],[-63.97114257812498,59.053808593750034],[-63.24843749999991,59.068310546874955],[-63.28212890624994,58.86738281250007],[-63.05029296874997,58.87817382812494],[-62.87387695312489,58.67246093749998],[-63.537060546874926,58.329931640625006],[-63.209960937499886,58.46694335937502],[-62.593847656249864,58.47402343750005],[-62.81206054687502,58.20039062500007],[-63.26152343749993,58.014697265625074],[-62.486230468749966,58.15405273437506],[-62.30566406249997,57.97226562499995],[-61.95864257812505,57.91176757812508],[-61.9679687499999,57.61191406250009],[-62.495556640624926,57.489208984375125],[-61.92114257812497,57.42080078125005],[-61.977441406249966,57.24794921875002],[-61.33374023437494,57.01059570312498],[-61.37163085937502,56.68081054687511],[-62.497265624999926,56.80170898437504],[-61.73774414062498,56.52602539062502],[-61.940429687499886,56.423583984375114],[-61.42529296874994,56.360644531250074],[-61.713085937499955,56.230957031250114],[-61.364697265624926,56.2160156250001],[-61.30112304687495,56.04716796874999],[-61.4495117187499,55.99570312499998],[-61.08935546874997,55.86635742187511],[-60.74326171874989,55.94145507812493],[-60.56210937499995,55.727001953125125],[-60.341015624999926,55.78466796874997],[-60.40830078124995,55.649560546874994],[-60.19238281249994,55.4809082031251],[-60.617138671874955,55.060205078124994],[-59.75878906249997,55.3095703125],[-59.68906249999989,55.19633789062502],[-59.43789062500005,55.175927734375136],[-59.837792968749994,54.813964843750114],[-59.25957031249996,55.19995117187506],[-58.99711914062496,55.149462890625074],[-58.780175781249994,54.838378906250114],[-58.39814453124998,54.77412109374998],[-57.96245117187493,54.875732421875085],[-57.40449218750004,54.59086914062496],[-57.69926757812496,54.38657226562506],[-58.435205078124966,54.228125],[-58.63320312499999,54.04956054687497],[-59.8230468749999,53.83442382812504],[-60.14492187499994,53.59614257812498],[-60.395410156249994,53.653320312500085],[-60.1002929687499,53.48696289062511],[-60.329492187499966,53.26611328125006],[-58.652050781249926,53.97788085937495],[-57.935986328124955,54.09116210937492],[-58.31748046874989,54.11445312500007],[-58.192089843749926,54.228173828125136],[-57.4160644531249,54.162744140625136],[-57.134960937499926,53.79184570312506],[-57.524072265624966,53.61142578125006],[-57.331738281249955,53.469091796875034],[-56.84086914062496,53.73945312500004],[-56.46499023437505,53.76503906250011],[-55.96611328125002,53.4711425781251],[-55.79794921874995,53.211962890625045],[-55.80283203124989,52.64316406249998],[-56.324902343749926,52.54453124999998],[-55.74648437499994,52.4745605468751],[-55.7771484374999,52.3642578125],[-56.01171874999997,52.394482421875125],[-55.695214843749994,52.13779296875006],[-56.97597656250005,51.45766601562505],[-58.510351562500006,51.295068359375136],[-59.88632812499992,50.316406250000085],[-61.72485351562503,50.10405273437499],[-61.91953124999989,50.2328613281251],[-62.71542968749995,50.30166015625008],[-66.49550781249991,50.2118652343751],[-66.94116210937503,49.993701171875045],[-67.37202148437495,49.348437500000045],[-68.28193359374998,49.197167968750136],[-69.67387695312496,48.19916992187504],[-71.01826171874993,48.455615234375045],[-69.86552734374993,48.17226562500005],[-69.775,48.09809570312504],[-69.9944335937499,47.73989257812508],[-70.70585937499996,47.13979492187505],[-71.26777343749995,46.79594726562499],[-71.87958984374998,46.68681640624996],[-72.98100585937493,46.209716796875085],[-73.4766113281249,45.738232421874955],[-74.03784179687494,45.501855468750136],[-74.31508789062494,45.531054687500045],[-73.97382812499995,45.345117187499994],[-74.70888671874997,45.0038574218751]]],[[[-96.78232421874998,72.93662109375],[-97.0927734375,72.99692382812503],[-96.86240234374995,73.18881835937506],[-96.78232421874998,72.93662109375]]],[[[-114.52153320312502,72.592919921875],[-113.57807617187501,72.65209960937506],[-113.2923828125,72.94980468750003],[-112.75361328125001,72.98603515624995],[-111.26972656249994,72.71372070312498],[-111.895166015625,72.35610351562497],[-111.67509765625002,72.30014648437503],[-110.20512695312495,72.66127929687497],[-110.66083984374998,73.00820312500002],[-110.00844726562494,72.983642578125],[-108.75498046875002,72.55107421874999],[-108.18823242187501,71.72377929687502],[-107.812841796875,71.62617187500004],[-107.30600585937496,71.89467773437502],[-108.23740234374999,73.14990234375003],[-108.029052734375,73.34873046875003],[-106.48212890624998,73.19619140624997],[-105.41513671874995,72.788330078125],[-104.38593749999997,71.57695312500005],[-104.51479492187502,71.06425781250005],[-103.58457031249995,70.63085937500003],[-103.07719726562497,70.50883789062505],[-103.04956054687503,70.65507812499999],[-101.67631835937495,70.27827148437495],[-101.56240234375001,70.135009765625],[-101.04267578125,70.11079101562504],[-100.98237304687497,69.67988281250001],[-101.483837890625,69.85019531250006],[-101.64765624999997,69.69853515625007],[-102.18212890624997,69.845947265625],[-102.59589843749997,69.71791992187502],[-102.62109374999996,69.55151367187506],[-103.464892578125,69.64448242187498],[-103.04892578124999,69.47177734375006],[-103.12021484374995,69.20458984374997],[-102.44677734374997,69.476318359375],[-102.04594726562493,69.46484374999997],[-101.85712890625001,69.02397460937505],[-102.89506835937499,68.8236328125],[-104.57143554687501,68.87211914062502],[-105.105859375,68.92041015625],[-105.019580078125,69.08125],[-106.27016601562497,69.19458007812497],[-106.65908203124997,69.439599609375],[-107.43989257812497,69.00214843749995],[-108.36499023437497,68.93476562499998],[-109.47211914062501,68.67670898437498],[-113.12773437500002,68.49414062500003],[-113.61684570312501,68.8384765625],[-113.69414062499995,69.19501953124998],[-115.61811523437495,69.28295898437506],[-116.51347656249993,69.42460937500005],[-117.19541015624995,70.05405273437503],[-114.59233398437497,70.31245117187498],[-112.63789062499997,70.225244140625],[-111.63256835937497,70.30883789062497],[-113.75727539062503,70.69072265625005],[-115.99091796874997,70.586279296875],[-117.58706054687498,70.62954101562502],[-118.2640625,70.888330078125],[-118.26909179687493,71.03471679687505],[-115.30341796874997,71.49370117187505],[-117.93564453125003,71.39208984375003],[-118.22646484374995,71.46708984375005],[-117.742333984375,71.65932617187502],[-118.58300781250003,71.64902343749998],[-118.98769531249997,71.7642578125],[-118.94462890624997,71.98554687499995],[-118.21347656249998,72.26289062499998],[-118.481298828125,72.42768554687498],[-118.13310546874995,72.63281250000003],[-114.63823242187499,73.37265625000003],[-114.20639648437495,73.29780273437495],[-114.05170898437497,73.07099609375004],[-114.52153320312502,72.592919921875]]],[[[-105.28891601562499,72.919921875],[-106.92153320312497,73.479833984375],[-106.61396484375001,73.69560546875002],[-105.31796874999995,73.76713867187502],[-104.5875,73.57807617187495],[-104.62172851562495,73.3111328125],[-105.28891601562499,72.919921875]]],[[[-79.53730468749998,73.65449218749998],[-78.2865234375,73.66582031250007],[-77.20654296874997,73.49956054687505],[-76.18339843749999,72.84306640625005],[-77.83593750000003,72.89682617187498],[-79.3193359375,72.75771484375],[-79.820703125,72.82631835937502],[-80.18330078124995,73.22465820312499],[-80.77641601562502,73.33417968750001],[-80.84887695312503,73.72124023437499],[-79.53730468749998,73.65449218749998]]],[[[-86.58935546874997,71.01079101562507],[-85.64384765624999,71.15244140624998],[-85.09487304687497,71.15195312500006],[-84.82373046874997,71.02861328125005],[-84.69941406249995,71.63144531250003],[-85.33906249999998,71.69726562500003],[-85.91162109375,71.98652343749998],[-85.321875,72.23315429687506],[-84.28374023437499,72.04448242187499],[-84.84199218749995,72.30815429687505],[-84.62304687500003,72.37656250000003],[-85.34111328124993,72.42153320312497],[-85.64990234374997,72.72216796875003],[-85.26210937500002,72.95400390625],[-84.25664062499999,72.79672851562503],[-85.454736328125,73.10546875000003],[-84.41606445312496,73.45649414062495],[-83.781884765625,73.41689453125],[-83.72983398437495,73.57587890624995],[-81.946142578125,73.72983398437506],[-81.40615234374997,73.634521484375],[-80.27724609375,72.77016601562502],[-81.229345703125,72.31171874999998],[-80.61147460937497,72.450830078125],[-80.925146484375,71.90766601562501],[-80.18193359374996,72.20878906250007],[-79.884375,72.17719726562501],[-80.10893554687499,72.33217773437497],[-79.83129882812503,72.44628906250003],[-79.000244140625,72.27202148437507],[-79.00781250000003,72.04291992187501],[-78.58510742187497,71.880615234375],[-78.86274414062495,72.100830078125],[-78.69926757812496,72.35141601562498],[-77.51650390624997,72.17778320312505],[-78.48427734374994,72.47060546875002],[-77.75322265624996,72.72475585937502],[-75.70429687499998,72.57153320312497],[-75.05268554687493,72.22636718749999],[-75.92280273437501,71.71723632812501],[-74.90317382812503,72.10048828125002],[-74.20932617187498,71.978662109375],[-74.31572265624999,71.84267578125],[-75.20478515625001,71.70913085937497],[-74.70078125,71.67558593750005],[-74.99619140624998,71.21811523437503],[-74.48808593750002,71.64838867187501],[-73.8140625,71.77143554687495],[-74.197265625,71.404150390625],[-73.71284179687498,71.58759765624998],[-73.18061523437501,71.282861328125],[-73.27822265625,71.53798828125],[-72.901953125,71.67778320312507],[-71.64067382812499,71.51625976562502],[-71.22939453124997,71.33876953125],[-71.49501953124997,71.10512695312502],[-71.93793945312498,71.09428710937502],[-72.63271484374994,70.83076171874998],[-71.74252929687495,71.046875],[-71.370849609375,70.97514648437499],[-70.82607421874994,71.10874023437503],[-70.67265625,71.05219726562498],[-70.76171874999997,70.79223632812503],[-71.89018554687502,70.43154296875002],[-71.27587890625,70.50029296874999],[-71.42944335937503,70.12778320312503],[-70.97978515624999,70.5810546875],[-69.94980468750003,70.84501953125005],[-68.49575195312502,70.61025390625],[-68.363525390625,70.48125],[-70.05771484375,70.042626953125],[-68.77822265625,70.20356445312501],[-69.00830078124997,69.97895507812501],[-68.74404296874997,69.94140625],[-68.05908203124997,70.317236328125],[-67.36367187499994,70.03442382812503],[-67.22163085937495,69.73071289062506],[-68.02041015625,69.77006835937499],[-69.25078124999999,69.51191406249998],[-68.51303710937498,69.57729492187497],[-67.236962890625,69.460107421875],[-66.71674804687495,69.31186523437498],[-66.70742187500002,69.16821289062503],[-68.40629882812499,69.23222656250002],[-69.040625,69.09799804687503],[-68.41552734375,69.17207031250001],[-67.8326171875,69.06596679687499],[-67.88320312500002,68.78398437499999],[-69.31909179687497,68.85698242187505],[-68.21040039062495,68.702978515625],[-67.9384765625,68.524169921875],[-66.74272460937502,68.45776367187497],[-67.032958984375,68.32607421874997],[-66.923095703125,68.06572265625005],[-66.72900390624997,68.12900390625006],[-66.66269531249995,68.03442382812497],[-66.63095703124998,68.21064453124998],[-66.21240234374997,68.280419921875],[-66.44394531249998,67.83383789062506],[-65.94238281250003,68.07094726562505],[-65.86435546875003,67.92285156249997],[-65.50908203124996,67.96826171875],[-65.40126953125002,67.67485351562499],[-65.41533203124996,67.87924804687498],[-64.92231445312495,68.03164062500002],[-65.02109375,67.78754882812495],[-64.63779296875,67.84023437500002],[-63.850195312500034,67.56606445312502],[-64.00795898437502,67.34731445312497],[-64.69995117187494,67.35053710937501],[-63.83623046874993,67.26411132812498],[-63.59160156250002,67.3775390625],[-63.040136718750034,67.235009765625],[-63.70156249999994,66.82236328125003],[-62.962304687499966,66.94926757812505],[-62.37973632812495,66.90537109375],[-62.12358398437499,67.046728515625],[-61.35341796874994,66.689208984375],[-61.52783203124994,66.55810546875003],[-62.12333984374993,66.64306640625003],[-61.57080078125,66.37290039062506],[-61.95634765624993,66.30932617187497],[-62.553125,66.40683593750003],[-62.53359374999994,66.22700195312498],[-61.99160156250002,66.03530273437502],[-62.624121093750006,66.01625976562505],[-62.381982421874966,65.83330078124999],[-62.65888671874998,65.63994140625002],[-63.16894531249997,65.65732421875],[-63.45874023437494,65.85302734375],[-63.42089843749997,65.70859374999998],[-63.651074218749955,65.66098632812506],[-63.33745117187493,65.61674804687502],[-63.36337890624998,65.22973632812503],[-63.606591796874966,64.92807617187503],[-64.345703125,65.17241210937499],[-64.26967773437497,65.40078124999997],[-64.55507812500002,65.1166015625],[-65.401611328125,65.764013671875],[-64.44536132812496,66.31713867187497],[-65.0044921875,66.07773437500003],[-65.82573242187499,65.996923828125],[-65.65634765625003,66.204736328125],[-66.06372070312497,66.13271484374997],[-66.986328125,66.62749023437505],[-67.07685546874995,66.52548828125006],[-67.30732421874993,66.5697265625],[-67.22539062499993,66.31025390624998],[-67.88339843749995,66.46743164062502],[-67.18320312499995,66.03442382812503],[-67.350439453125,65.92973632812502],[-67.82802734374997,65.96518554687503],[-68.45991210937498,66.249267578125],[-68.74892578125,66.200048828125],[-68.21718750000002,66.078857421875],[-68.18671874999993,65.87099609375002],[-67.86645507812497,65.773681640625],[-67.936767578125,65.56489257812501],[-67.56962890624999,65.64355468749997],[-67.11796874999999,65.44038085937495],[-67.3365234375,65.34658203125005],[-66.69741210937502,64.81518554687506],[-66.63549804687503,65.00034179687503],[-66.21464843749999,64.72241210937497],[-65.93852539062496,64.88574218750003],[-65.2748046875,64.63154296875004],[-65.52934570312499,64.50478515624997],[-65.074609375,64.43666992187502],[-65.21298828125003,64.30327148437502],[-65.580322265625,64.29384765624997],[-65.16987304687495,64.02817382812503],[-64.67846679687503,64.027978515625],[-64.79814453124999,63.91596679687498],[-64.4109375,63.70634765625002],[-64.66464843749995,63.24536132812497],[-65.19184570312498,63.764257812500006],[-65.06894531249998,63.26347656250002],[-64.67236328125003,62.921972656250006],[-65.16279296875001,62.93261718750003],[-65.10849609374998,62.62646484375],[-66.22402343749994,63.10717773437497],[-66.228662109375,62.99096679687503],[-66.41445312500002,63.027197265625034],[-66.65498046874998,63.264746093750006],[-66.69746093749993,63.069531249999955],[-67.89326171874993,63.733740234375006],[-67.72255859374997,63.422753906249966],[-68.49375,63.725488281249994],[-68.91108398437498,63.703222656250006],[-68.141259765625,63.17231445312501],[-67.67597656249998,63.093554687500045],[-67.73696289062497,63.00957031249999],[-65.98017578125001,62.20888671875002],[-66.12387695312498,61.89306640625],[-68.53588867187503,62.25561523437506],[-69.12558593749998,62.423974609374966],[-69.604736328125,62.76772460937502],[-70.23613281250002,62.76337890625001],[-70.801416015625,62.91049804687506],[-71.10576171874999,63.00224609375002],[-70.94604492187497,63.12070312499998],[-71.34726562499998,63.066113281249955],[-71.99223632812493,63.41616210937505],[-71.380859375,63.580322265625],[-72.29013671874995,63.72797851562498],[-72.17426757812498,63.893408203125006],[-72.49843749999994,63.82348632812497],[-73.45454101562495,64.39926757812503],[-73.27128906250002,64.58251953125],[-73.91035156249998,64.578125],[-74.064794921875,64.42465820312498],[-74.13046874999998,64.6078125],[-74.46123046874996,64.64467773437505],[-74.68139648437497,64.8306640625],[-74.91943359374997,64.76552734374997],[-74.69472656250002,64.49658203124997],[-75.71503906249995,64.52436523437495],[-75.76669921875,64.39194335937498],[-76.85615234374998,64.23764648437498],[-77.76049804687503,64.36015624999999],[-78.04521484374993,64.499267578125],[-78.09560546875,64.93925781250002],[-77.36088867187496,65.19653320312503],[-77.32670898437493,65.453125],[-75.82832031249993,65.22705078125003],[-75.45209960937495,64.84160156250002],[-75.35712890624995,65.00874023437495],[-75.79868164062503,65.297509765625],[-75.16630859374999,65.28393554687497],[-74.13847656250002,65.50346679687502],[-73.55078125000003,65.48525390625005],[-74.41640624999997,66.16708984375003],[-73.03325195312502,66.72817382812505],[-72.78881835937494,67.030615234375],[-72.22001953124999,67.25429687500002],[-73.28447265624993,68.35698242187505],[-73.82050781249998,68.36293945312502],[-73.82211914062495,68.68598632812501],[-74.11796875000002,68.70092773437506],[-73.9892578125,68.54863281250002],[-74.2701171875,68.54121093750001],[-74.89296875,68.80815429687505],[-74.71669921874997,69.04550781249998],[-76.58505859375,68.69873046875003],[-76.55722656250003,69.00947265625001],[-75.9537109375,69.03081054687502],[-75.64775390625002,69.212548828125],[-76.46494140624995,69.46943359375001],[-76.23408203125001,69.66210937500003],[-76.742333984375,69.57290039062497],[-77.08994140625,69.63510742187503],[-76.85859374999995,69.775390625],[-77.591650390625,69.84560546875002],[-77.77402343750003,70.23852539062503],[-78.28281250000003,70.229150390625],[-79.06640624999997,70.60356445312507],[-79.40522460937498,70.40073242187503],[-78.86284179687499,70.24189453125001],[-78.88964843750003,69.97749023437495],[-79.51542968749996,69.88759765625005],[-81.65195312500003,70.09462890625002],[-80.92172851562503,69.73090820312501],[-81.56469726562503,69.94272460937498],[-82.29384765624997,69.83691406250003],[-83.14995117187493,70.00908203125002],[-83.85908203124998,69.96274414062498],[-85.43237304687497,70.11137695312507],[-85.780029296875,70.03666992187505],[-86.32202148437503,70.14541015625],[-86.396875,70.46533203124997],[-87.838134765625,70.24658203125],[-88.78271484374997,70.49448242187503],[-89.45590820312498,71.06171874999995],[-87.84492187499995,70.94438476562505],[-87.14008789062498,71.01162109374997],[-89.80537109374993,71.46230468750005],[-89.86152343750001,72.41191406250005],[-88.70517578124998,73.40327148437495],[-87.71977539062496,73.72290039062497],[-85.95078124999998,73.85014648437505],[-84.94677734375,73.72163085937498],[-86.00053710937499,73.31254882812505],[-86.65629882812502,72.72402343750005],[-86.21845703124998,71.89912109375004],[-85.02338867187495,71.35322265625001],[-86.58935546874997,71.01079101562507]]],[[[-100.00190429687497,73.9458984375],[-99.15795898437499,73.73159179687497],[-97.66997070312499,73.88774414062499],[-97.1705078125,73.82485351562497],[-97.001708984375,73.66650390625003],[-97.62587890624997,73.50229492187498],[-97.27250976562502,73.38681640624998],[-98.42177734375002,72.94101562500003],[-97.63632812499998,73.02763671874999],[-97.128125,72.62758789062502],[-96.59208984374996,72.71025390624999],[-96.44560546874996,72.55244140624998],[-96.80146484374998,72.32241210937502],[-96.61342773437494,71.83383789062506],[-97.58227539062497,71.62968750000005],[-98.18134765624998,71.66245117187503],[-98.32270507812501,71.85234375000002],[-98.19863281249994,71.44086914062501],[-98.66289062499993,71.302099609375],[-99.22363281249996,71.387109375],[-100.594482421875,72.15234375000003],[-101.20854492187495,72.31699218749998],[-101.72392578124996,72.31489257812501],[-102.70874023437496,72.76450195312503],[-102.20400390624998,73.077294921875],[-101.27319335937497,72.7216796875],[-100.48476562500002,72.77294921874997],[-100.395703125,72.97700195312498],[-100.128125,72.90668945312495],[-100.53637695312497,73.19785156250003],[-99.82514648437503,73.2138671875],[-100.36611328125001,73.359033203125],[-100.88935546875003,73.27534179687501],[-101.52319335937501,73.48637695312502],[-100.97578124999995,73.59975585937502],[-100.5216796875,73.44931640625],[-100.96298828125002,73.79140625],[-99.99111328125,73.79516601562503],[-100.00190429687497,73.9458984375]]],[[[-98.270361328125,73.86850585937498],[-98.97392578124997,73.81206054687502],[-99.4169921875,73.89541015625002],[-97.69824218749997,74.10869140625005],[-98.270361328125,73.86850585937498]]],[[[-93.17084960937498,74.16098632812506],[-92.22270507812502,73.97236328124998],[-90.62744140625,73.95170898437505],[-90.38139648437496,73.82475585937502],[-92.11791992187497,72.75380859375],[-94.21132812499997,72.75693359375],[-93.77055664062496,72.66821289062506],[-93.55517578124994,72.42114257812497],[-94.03754882812498,72.02875976562498],[-95.00786132812496,72.01279296875],[-95.60214843749998,72.88447265624995],[-95.63291015625003,73.69545898437497],[-94.697607421875,73.66357421874997],[-95.134130859375,73.88125],[-94.97353515625,74.04140625000002],[-93.17084960937498,74.16098632812506]]],[[[-119.73632812499997,74.11264648437498],[-119.20595703125002,74.19799804687503],[-119.11796874999995,74.01552734375],[-118.54399414062499,74.24462890625003],[-117.51484375000001,74.23173828124999],[-115.51069335937501,73.61875],[-115.446875,73.43886718750002],[-118.96157226562497,72.68413085937499],[-119.51284179687501,72.30268554687501],[-120.17988281250001,72.21264648437506],[-120.61933593750001,71.50576171875002],[-121.47216796875003,71.38901367187503],[-121.74936523437502,71.44477539062501],[-123.09565429687503,71.09379882812502],[-124.00776367187494,71.67744140624998],[-125.29667968749999,71.973046875],[-125.84531250000002,71.978662109375],[-123.79726562499997,73.76816406250003],[-124.69624023437497,74.34819335937499],[-121.50415039062497,74.54511718749998],[-119.56264648437494,74.23281250000002],[-119.73632812499997,74.11264648437498]]],[[[-97.35551757812496,74.52631835937495],[-97.75,74.51054687500005],[-97.41650390624994,74.62656250000003],[-97.35551757812496,74.52631835937495]]],[[[-95.306640625,74.50541992187505],[-95.850732421875,74.58247070312504],[-95.51020507812498,74.63676757812499],[-95.306640625,74.50541992187505]]],[[[-104.11992187499995,75.03632812500004],[-104.88740234374998,75.14775390624999],[-104.34619140624996,75.42993164062503],[-103.64350585937497,75.18657226562499],[-104.11992187499995,75.03632812500004]]],[[[-93.54257812499995,75.0279296875],[-93.57309570312495,74.66884765625005],[-94.53452148437498,74.63671874999997],[-96.59960937499997,75.03178710937499],[-95.95463867187493,75.44379882812501],[-94.878173828125,75.63002929687502],[-93.90908203125002,75.42250976562502],[-93.54257812499995,75.0279296875]]],[[[-96.07856445312495,75.510107421875],[-96.91513671875003,75.37968749999999],[-96.98281249999997,75.50981445312505],[-96.367822265625,75.65463867187506],[-96.07856445312495,75.510107421875]]],[[[-94.52656249999995,75.74931640624999],[-94.901220703125,75.93076171875],[-94.53789062499996,75.99643554687506],[-94.52656249999995,75.74931640624999]]],[[[-118.328125,75.57968749999998],[-118.81713867187503,75.52211914062497],[-119.39458007812499,75.617333984375],[-117.63369140624998,76.11508789062498],[-118.328125,75.57968749999998]]],[[[-79.0630859375,75.92587890624998],[-79.63876953124995,75.84291992187505],[-79.00932617187499,76.14589843750005],[-79.0630859375,75.92587890624998]]],[[[-102.22734374999995,76.014892578125],[-102.00800781250003,75.93940429687498],[-102.57958984375003,75.78022460937498],[-103.31474609374996,75.76420898437499],[-103.04150390624999,75.91884765624997],[-103.98525390624997,75.93310546875003],[-103.80078124999994,76.03701171874997],[-104.24248046874996,76.04697265625006],[-104.35063476562497,76.18232421875001],[-102.72802734374999,76.30703125],[-102.22734374999995,76.014892578125]]],[[[-104.02285156249998,76.58310546875003],[-103.05131835937495,76.44985351562497],[-103.31137695312499,76.34755859375],[-104.35751953124995,76.33461914062502],[-104.58569335937499,76.60649414062499],[-104.07451171875003,76.66611328124998],[-104.02285156249998,76.58310546875003]]],[[[-97.70092773437497,76.46650390624998],[-97.89052734374997,75.7603515625],[-97.40751953124999,75.67250976562497],[-97.33603515624998,75.41982421875],[-97.65332031249997,75.50776367187498],[-97.87822265624996,75.41611328125003],[-97.67431640624997,75.127294921875],[-98.04531249999997,75.20083007812497],[-98.12094726562503,75.03271484375],[-100.234375,75.00771484374997],[-100.48349609374995,75.18842773437501],[-100.14570312499995,75.24614257812505],[-100.71191406250003,75.40634765625],[-99.19458007812499,75.698388671875],[-102.58740234375001,75.51367187500003],[-102.79750976562501,75.59965820312505],[-102.14472656249998,75.87504882812502],[-100.97280273437498,75.79843750000003],[-101.414990234375,75.84584960937502],[-101.87211914062496,76.08310546875003],[-101.52895507812495,76.21728515625003],[-102.1046875,76.33120117187505],[-101.41518554687495,76.42490234375003],[-99.86547851562499,75.92421875],[-100.11284179687502,76.11723632812507],[-99.54106445312497,76.14628906250005],[-100.41420898437495,76.242529296875],[-99.97773437500003,76.31245117187495],[-100.82973632812497,76.52387695312495],[-99.8140625,76.6322265625],[-98.89033203125,76.46557617187497],[-98.71083984374994,76.69384765625003],[-97.70092773437497,76.46650390624998]]],[[[-101.22612304687497,76.57934570312497],[-101.61308593749995,76.60458984375006],[-100.26914062499998,76.73413085937497],[-101.22612304687497,76.57934570312497]]],[[[-108.29238281250001,76.05712890625],[-107.72348632812502,75.99541015625002],[-108.020703125,75.80478515625],[-107.21621093749997,75.89155273437501],[-106.91352539062503,75.67963867187501],[-106.67700195312499,76.02373046875002],[-105.63266601562493,75.94536132812505],[-105.51948242187497,75.63237304687505],[-106.09262695312495,75.08945312500003],[-107.15341796874996,74.9271484375],[-108.47475585937495,74.94721679687501],[-108.83129882812501,75.06489257812498],[-112.51933593749997,74.41684570312503],[-113.67158203124997,74.45302734375005],[-114.31269531250003,74.71508789062506],[-112.835986328125,74.9755859375],[-111.67109375,75.01943359374997],[-111.09345703125001,75.25629882812498],[-113.71176757812499,75.06860351562503],[-113.85332031249996,75.259375],[-113.46708984374996,75.41611328125003],[-114.01650390624998,75.43427734375001],[-114.16845703124994,75.23950195312503],[-114.51381835937497,75.27548828125],[-114.45175781250002,75.08789062499997],[-115.02011718749999,74.97617187500003],[-115.41318359374995,75.11499023437497],[-115.72885742187496,74.968115234375],[-116.47607421874996,75.17177734375],[-117.56523437499997,75.23334960937504],[-117.25761718750002,75.45952148437502],[-116.07714843749996,75.49296874999999],[-115.14184570312501,75.67851562500005],[-116.42563476562498,75.58535156249997],[-117.16362304687496,75.64487304687503],[-116.80214843749995,75.77158203124998],[-114.99150390625002,75.896337890625],[-116.66455078124999,75.95756835937505],[-116.20986328125,76.19443359374998],[-114.77861328124999,76.17260742187497],[-115.82216796874997,76.27001953125003],[-114.99848632812503,76.4974609375],[-114.19394531249999,76.45146484375005],[-113.82348632812501,76.20683593750002],[-112.69760742187496,76.20170898437505],[-111.05268554687495,75.54853515625001],[-108.94716796875,75.54179687499999],[-108.94477539062495,75.69897460937503],[-109.8705078125,75.929052734375],[-109.48681640624999,76.14467773437497],[-110.31445312500001,76.369384765625],[-109.09824218749996,76.811865234375],[-108.46699218749997,76.73759765625007],[-108.29238281250001,76.05712890625]]],[[[-89.72646484374994,76.50742187499998],[-90.55625,76.73457031249998],[-90.13632812499995,76.83696289062505],[-89.69541015625,76.74116210937498],[-89.72646484374994,76.50742187499998]]],[[[-113.56069335937494,76.74326171874998],[-114.83525390624999,76.79467773437497],[-113.89165039062495,76.89487304687503],[-113.56069335937494,76.74326171874998]]],[[[-94.29497070312493,76.91245117187498],[-93.23002929687496,76.77026367187497],[-93.53457031250002,76.44770507812498],[-92.99536132812494,76.62041015624999],[-91.305029296875,76.68076171875003],[-90.54262695312494,76.495751953125],[-91.41508789062496,76.45585937500005],[-89.28452148437498,76.30161132812506],[-89.40659179687498,76.18916015624998],[-91.40732421874998,76.22006835937506],[-89.27758789062497,75.79506835937497],[-89.64604492187499,75.5650390625],[-88.91669921874998,75.45395507812503],[-88.64497070312495,75.65844726562503],[-88.201318359375,75.51201171875005],[-87.72973632812503,75.57563476562495],[-87.53911132812502,75.48486328125003],[-87.25693359374998,75.61772460937499],[-85.95146484374993,75.39501953125],[-85.97299804687498,75.5287109375],[-83.931982421875,75.81894531250003],[-83.23710937499993,75.75083007812503],[-82.153662109375,75.83105468750003],[-80.32197265624998,75.62910156250001],[-79.50908203125002,75.25981445312499],[-80.38198242187494,75.03417968750003],[-79.40141601562502,74.91762695312502],[-79.944482421875,74.83364257812505],[-80.34775390624998,74.90297851562505],[-80.26274414062499,74.58447265625],[-81.94018554687494,74.47270507812505],[-82.73579101562495,74.53027343749997],[-83.5220703125,74.90146484375],[-83.53188476562494,74.58569335937497],[-84.42553710937503,74.50810546875007],[-85.06142578125,74.60693359375003],[-85.133447265625,74.517431640625],[-85.44233398437495,74.6005859375],[-85.80800781249994,74.49897460937498],[-88.42304687499995,74.49414062499997],[-88.53496093749993,74.83173828125001],[-89.55869140624995,74.55473632812507],[-90.55327148437499,74.61274414062498],[-90.88022460937498,74.8177734375],[-91.13457031250002,74.64985351562498],[-91.54912109375002,74.65556640624999],[-92.3892578125,75.263330078125],[-92.18510742187499,75.84653320312498],[-93.09174804687495,76.35400390624997],[-95.27387695312498,76.26440429687503],[-96.03969726562494,76.48671875000002],[-95.65097656249998,76.58466796874998],[-96.88071289062495,76.73833007812505],[-96.40156249999995,76.79721679687503],[-96.75830078124997,76.97177734374998],[-95.84951171875002,77.06621093750005],[-94.29497070312493,76.91245117187498]]],[[[-115.55126953125001,77.36328125],[-116.32919921874996,77.137060546875],[-115.81005859374999,76.939111328125],[-116.25273437500002,76.90141601562505],[-115.94628906250003,76.71127929687503],[-116.99921874999995,76.531591796875],[-117.23359375000001,76.28154296875005],[-117.99296874999999,76.40581054687505],[-117.88081054687497,76.80507812500005],[-118.79140624999994,76.51298828125005],[-119.080712890625,76.12407226562505],[-119.58037109375,76.32651367187498],[-119.52612304687496,75.99721679687505],[-119.91289062499997,75.85883789062501],[-120.40888671874995,75.82563476562498],[-120.84838867187496,76.18266601562499],[-121.21347656249999,75.98369140625005],[-122.53305664062498,75.95092773437503],[-122.59272460937497,76.16206054687495],[-122.90278320312498,76.13471679687498],[-122.51938476562503,76.353173828125],[-121.56113281250003,76.453466796875],[-119.09018554687496,77.30507812500002],[-116.84355468749995,77.33955078124995],[-117.03974609374995,77.46513671875005],[-116.51132812500003,77.54760742187497],[-115.55126953125001,77.36328125]]],[[[-89.83325195312503,77.26762695312505],[-90.22827148437503,77.21245117187499],[-90.99321289062499,77.32949218750002],[-91.01904296875003,77.64389648437503],[-89.83896484375003,77.49140624999998],[-89.83325195312503,77.26762695312505]]],[[[-104.55815429687497,77.14174804687497],[-105.21508789062496,77.18208007812501],[-106.03559570312495,77.73984375000006],[-105.58789062499997,77.73598632812497],[-104.54223632812501,77.33774414062503],[-104.55815429687497,77.14174804687497]]],[[[-95.484375,77.79199218750003],[-93.30097656249995,77.73979492187505],[-93.54394531249997,77.466650390625],[-95.98706054687497,77.484130859375],[-96.19458007812497,77.70053710937503],[-95.484375,77.79199218750003]]],[[[-101.6935546875,77.69658203125005],[-102.37783203124995,77.728125],[-102.44770507812498,77.88061523437506],[-101.19321289062493,77.82978515624998],[-101.00205078124998,77.73510742187497],[-101.6935546875,77.69658203125005]]],[[[-113.83247070312497,77.75463867187506],[-114.28720703124998,77.72148437500005],[-114.98041992187498,77.91542968750002],[-114.33037109374997,78.07753906250002],[-113.83247070312497,77.75463867187506]]],[[[-110.45805664062496,78.10322265625001],[-109.62226562499995,78.07475585937499],[-110.865625,77.834130859375],[-110.15273437500002,77.76293945312506],[-110.19848632812501,77.52451171874998],[-112.37265625000002,77.36411132812498],[-113.16435546875002,77.5302734375],[-113.21518554687498,77.90351562500001],[-110.45805664062496,78.10322265625001]]],[[[-109.81596679687499,78.65039062500003],[-109.48447265624995,78.31640625],[-111.16918945312499,78.38627929687505],[-111.51748046874997,78.27470703125005],[-112.13125,78.366064453125],[-113.22304687499998,78.29790039062505],[-112.85585937499997,78.46684570312502],[-110.877587890625,78.73505859375004],[-109.81596679687499,78.65039062500003]]],[[[-96.20449218749994,78.53129882812499],[-94.91538085937495,78.39052734375002],[-95.32924804687497,78.22504882812495],[-94.93427734374998,78.07563476562498],[-96.98964843749994,77.80600585937503],[-97.65815429687498,78.090625],[-96.944677734375,78.15185546874997],[-98.04951171874995,78.325927734375],[-98.33261718749998,78.77353515625006],[-97.38232421875,78.78291015625001],[-96.20449218749994,78.53129882812499]]],[[[-103.42602539062499,79.315625],[-102.57617187499996,78.87939453125003],[-101.70366210937502,79.07890625000002],[-101.128125,78.80166015625002],[-100.43549804687503,78.8203125],[-99.60942382812495,78.58305664062507],[-99.16640625000002,77.85693359375003],[-100.27465820312503,77.83271484374995],[-101.07412109375001,78.19384765625],[-102.60698242187502,78.24892578125002],[-102.73134765624995,78.37104492187495],[-103.94658203124999,78.26000976562497],[-104.76357421874998,78.35166015625],[-104.90961914062498,78.55263671875],[-103.57050781250003,78.53984375000005],[-104.02084960937502,78.63491210937497],[-103.37158203125,78.73632812500003],[-104.18500976562498,78.78129882812505],[-104.15195312499999,78.989892578125],[-104.89550781249996,78.80815429687502],[-104.74677734375003,79.02709960937503],[-105.53564453124999,79.03251953125007],[-105.51455078124995,79.24248046875002],[-105.38769531249994,79.32358398437503],[-103.42602539062499,79.315625]]],[[[-98.79160156249995,79.98110351562505],[-98.94521484375,79.72407226562498],[-100.05683593749997,79.89824218750005],[-100.05327148437496,80.093359375],[-99.15322265625001,80.12421874999998],[-98.79160156249995,79.98110351562505]]],[[[-91.88554687499999,81.13286132812505],[-90.64301757812498,80.59370117187498],[-89.23559570312494,80.51064453125002],[-88.85732421874997,80.16621093750001],[-88.19990234374998,80.11147460937497],[-88.5248046875,80.41801757812507],[-87.675,80.37211914062505],[-87.92231445312501,80.09770507812499],[-86.97719726562502,79.89423828125001],[-87.29516601562494,79.58017578124998],[-86.33696289062496,79.63496093749995],[-86.00703124999998,79.47944335937498],[-85.6478515625,79.61142578125006],[-85.04213867187497,79.2845703125],[-86.95717773437502,78.97490234375005],[-87.61738281249995,78.67631835937505],[-88.04018554687494,78.99531250000004],[-87.98286132812498,78.53706054687501],[-88.74160156250002,78.58403320312499],[-88.82241210937497,78.18588867187498],[-90.037109375,78.60683593750002],[-89.52568359374999,78.15961914062495],[-90.29721679687495,78.32802734374997],[-90.614404296875,78.14985351562501],[-92.35126953125001,78.312890625],[-92.8482421875,78.46010742187497],[-91.86689453124998,78.54267578125001],[-93.26660156249997,78.60830078124997],[-93.63442382812502,78.75092773437498],[-93.15986328124998,78.77563476562503],[-94.11459960937498,78.92890625000001],[-92.54721679687495,79.28261718750002],[-91.29990234375003,79.372705078125],[-92.82192382812497,79.44990234375001],[-93.93315429687496,79.29072265624998],[-94.11030273437498,79.40156250000001],[-95.10317382812502,79.289892578125],[-95.66289062500002,79.52734374999997],[-94.40185546874997,79.736328125],[-95.73935546874995,79.66015625000003],[-96.58906249999995,79.91665039062497],[-96.77324218749999,80.13579101562502],[-94.64589843749994,80.04873046874997],[-94.26259765625002,80.19487304687499],[-95.40507812499996,80.13500976562506],[-96.39409179687493,80.31503906250003],[-95.549072265625,80.36660156249997],[-95.92695312499998,80.72065429687498],[-93.92792968749995,80.55917968750003],[-95.51474609375003,80.83813476562503],[-94.98051757812499,81.04965820312503],[-93.28671874999998,81.10029296874998],[-94.22011718749997,81.33076171875004],[-93.03466796874997,81.3462890625],[-91.88554687499999,81.13286132812505]]],[[[-69.4888671875,83.01679687499998],[-66.42255859374998,82.92685546875003],[-68.46933593749995,82.65336914062502],[-65.29902343749995,82.79960937500005],[-64.98388671874997,82.90229492187501],[-64.50400390625,82.77841796874998],[-63.641015624999966,82.81259765625003],[-63.246777343749926,82.4501953125],[-62.47519531249995,82.51958007812502],[-61.392480468749994,82.44189453125],[-61.61538085937502,82.18442382812503],[-64.43579101562497,81.74262695312501],[-66.62573242187497,81.61640624999995],[-68.68852539062493,81.29331054687503],[-64.78007812499993,81.49287109375001],[-69.55068359375,80.38325195312498],[-70.71259765625001,80.53959960937505],[-70.264892578125,80.23359374999998],[-72.05595703124996,80.12324218749995],[-70.56840820312493,80.09370117187498],[-71.387841796875,79.76176757812505],[-72.43652343750003,79.69438476562499],[-74.39448242187495,79.87407226562499],[-73.47246093749996,79.7564453125],[-73.36152343750001,79.50400390625],[-75.50341796875,79.41416015625],[-76.898828125,79.5123046875],[-75.60273437499998,79.23955078125005],[-74.48120117187503,79.22949218750006],[-74.64091796874996,79.03554687499997],[-78.58164062499998,79.075],[-77.88276367187498,78.9423828125],[-76.255859375,79.00683593749997],[-74.486328125,78.75009765624998],[-74.87861328124998,78.54482421875],[-76.41611328124995,78.51152343750005],[-75.19345703125,78.327734375],[-75.86596679687497,78.00981445312499],[-78.01259765624997,77.94604492187506],[-78.07617187500003,77.51904296875],[-78.70849609374997,77.34213867187503],[-80.57304687499996,77.31479492187506],[-81.65908203124997,77.52543945312499],[-81.3013671875,77.34404296875007],[-82.056787109375,77.29653320312497],[-81.75634765624997,77.20400390625005],[-79.49726562500001,77.19609375000005],[-78.97919921874998,76.89287109374999],[-78.28886718750002,76.97797851562501],[-77.98330078124994,76.75498046875006],[-78.284326171875,76.57124023437501],[-80.79970703124997,76.173583984375],[-80.97451171874994,76.470068359375],[-81.71738281250003,76.494970703125],[-82.52983398437499,76.723291015625],[-82.23315429687494,76.46582031250003],[-83.88569335937501,76.453125],[-84.22377929687497,76.67534179687499],[-84.27534179687498,76.35654296875006],[-85.141259765625,76.30458984375005],[-86.45371093750003,76.58486328125002],[-86.68022460937499,76.37661132812497],[-87.35419921874998,76.44804687500005],[-87.48979492187499,76.58583984374997],[-87.49755859374997,76.38627929687499],[-88.39599609374997,76.40527343750003],[-88.49584960937497,76.77285156249997],[-88.54580078125002,76.42089843750003],[-89.36962890624997,76.474462890625],[-89.49975585937503,76.82680664062502],[-88.39814453124995,77.10395507812501],[-86.81225585937497,77.18491210937498],[-87.68144531249996,77.43637695312503],[-88.01699218750002,77.78471679687505],[-86.75507812499998,77.86372070312498],[-85.58847656249998,77.46113281250004],[-84.73867187499997,77.36103515624998],[-83.72128906249998,77.41420898437497],[-82.7103515625,77.84951171875002],[-82.5953125,77.99213867187504],[-83.77939453125,77.53261718750002],[-85.28935546874996,77.55903320312498],[-85.54755859374998,77.92768554687495],[-84.61542968749998,78.19570312500002],[-84.22270507812499,78.176025390625],[-84.91035156249993,78.23969726562501],[-84.78320312499997,78.52758789062506],[-85.5859375,78.10957031249998],[-86.21777343750003,78.08120117187497],[-85.92006835937494,78.34287109374998],[-86.91323242187494,78.126806640625],[-87.5517578125,78.17661132812503],[-86.80791015624999,78.77436523437495],[-85.00375976562495,78.912255859375],[-83.27143554687501,78.77031250000002],[-81.75009765624995,78.97578124999995],[-82.43876953125002,78.903662109375],[-84.41201171875002,78.99658203125003],[-84.38359375000002,79.1185546875],[-83.57587890624995,79.05366210937501],[-86.42075195312498,79.84521484374997],[-86.49853515625003,80.25825195312501],[-83.72363281250003,80.22895507812501],[-81.68837890625,79.685791015625],[-80.47592773437498,79.60625],[-80.12446289062495,79.66948242187507],[-81.01015625000002,79.693115234375],[-82.98701171874995,80.32260742187498],[-76.86298828124995,80.86479492187505],[-78.71621093749994,80.95166015624997],[-76.88510742187503,81.43027343750006],[-81.00703125000001,80.6548828125],[-82.88432617187502,80.57753906249997],[-82.22236328124998,80.77231445312503],[-84.41782226562495,80.52675781250002],[-86.250341796875,80.56577148437506],[-86.60307617187499,80.66401367187498],[-85.63930664062494,80.92460937500007],[-83.288818359375,81.14794921875],[-85.780859375,81.03505859375],[-87.32988281250002,80.669775390625],[-88.00366210937497,80.675390625],[-89.16689453125,80.94130859375],[-86.47675781249993,81.03574218750006],[-84.94121093750002,81.28623046875],[-87.27509765624995,81.080810546875],[-89.623046875,81.032470703125],[-89.94731445312499,81.17265625000005],[-89.20869140624998,81.25009765625003],[-89.67368164062503,81.32861328125003],[-87.59702148437498,81.52583007812498],[-88.47905273437502,81.56464843749998],[-90.41630859374996,81.40537109375003],[-89.82167968749997,81.63486328124998],[-91.29238281250002,81.57124023437498],[-91.64755859374998,81.68383789062503],[-88.06318359375001,82.09648437500007],[-87.01821289062502,81.95874023437497],[-86.62680664062495,82.05102539062503],[-85.04482421874997,81.9828125],[-86.615625,82.21855468750007],[-84.89682617187503,82.44941406250001],[-82.63369140625002,82.07729492187497],[-82.53691406250002,82.24726562499995],[-79.465625,81.85112304687499],[-82.44755859374993,82.39501953125003],[-81.68115234375003,82.51865234375],[-82.11684570312497,82.62866210937503],[-80.8625,82.57153320312503],[-81.01015625000002,82.77905273437503],[-78.748779296875,82.67939453124998],[-80.15493164062497,82.91113281250003],[-77.61806640624997,82.89584960937503],[-76.009375,82.53515625],[-75.565625,82.60854492187502],[-77.12490234374994,83.00854492187497],[-74.41416015624995,83.01313476562501],[-72.65869140625,82.72163085937495],[-73.44189453124994,82.90483398437499],[-72.811669921875,83.08120117187502],[-71.98320312499996,83.10141601562498],[-70.94038085937495,82.90224609375],[-71.08481445312498,83.08266601562497],[-69.96992187499995,83.11611328125005],[-69.4888671875,83.01679687499998]]]]},"properties":{"name":"Canada","childNum":110}},{"geometry":{"type":"Polygon","coordinates":[[[9.527658197470123,47.27026989773668],[9.46249431093294,47.19858962254578],[9.46249431093294,47.09010747968864],[9.409458596647225,47.02019676540292],[9.579979133936737,47.05856388629306],[9.580273437500011,47.057373046875],[10.133496093750011,46.851513671875],[10.349414062500017,46.98476562499999],[10.414941406250023,46.964404296874996],[10.45458984375,46.8994140625],[10.452832031250011,46.86494140625],[10.406054687500017,46.73486328125],[10.39794921875,46.6650390625],[10.4306640625,46.550048828125],[10.195507812500011,46.62109375],[10.1375,46.61435546875],[10.087011718750006,46.599902343749996],[10.061230468750011,46.546777343749994],[10.038281250000011,46.483203125],[10.045605468750011,46.447900390624994],[10.081933593750023,46.420751953125],[10.109667968750017,46.362841796874996],[10.128320312500023,46.238232421875],[10.08056640625,46.227978515625],[10.041015625,46.238085937499996],[9.939257812500017,46.36181640625],[9.884472656250011,46.3677734375],[9.787792968750011,46.346044921875],[9.639453125000017,46.2958984375],[9.57958984375,46.29609375],[9.528710937500023,46.306201171874996],[9.427636718750023,46.482324218749994],[9.399316406250023,46.4806640625],[9.304394531250011,46.495556640625],[9.203417968750017,46.21923828125],[9.11874162946429,46.014892578125],[8.97551618303573,45.81677455357143],[8.74961495535715,46.02246372767857],[8.818554687500011,46.0771484375],[8.458398437500023,46.245898437499996],[8.370703125,46.445117187499996],[8.298535156250011,46.40341796875],[8.23193359375,46.341210937499994],[8.08154296875,46.256005859374994],[7.9931640625,46.015917968749996],[7.327929687500017,45.912353515625],[7.129003906250006,45.880419921874996],[7.055761718750006,45.90380859375],[7.02109375,45.92578125],[6.953710937500006,46.017138671874996],[6.897265625000017,46.0517578125],[6.772070312500006,46.16513671875],[6.758105468750017,46.415771484375],[6.578222656250006,46.437353515625],[6.428906250000011,46.430517578125],[6.321875,46.393701171874994],[6.234667968750017,46.3326171875],[6.199414062500011,46.19306640625],[6.086621093750011,46.147021484374996],[6.006640625000017,46.142333984375],[5.971484375000017,46.151220703125],[5.970019531250017,46.214697265625],[6.0361328125,46.238085937499996],[6.095898437500011,46.27939453125],[6.129687500000017,46.5669921875],[6.41015625,46.755419921874996],[6.429003906250017,46.832275390625],[6.45625,46.94833984375],[6.624804687500017,47.004345703125],[6.666894531250023,47.026513671874994],[6.688085937500006,47.058251953124994],[6.820703125000023,47.16318359375],[6.952050781250023,47.2671875],[6.978515625,47.302050781249996],[7.000585937500006,47.322509765625],[7.000585937500006,47.339453125],[6.900390625,47.39423828125],[6.968359375,47.45322265625],[7.136035156250017,47.48984375],[7.343164062500023,47.43310546875],[7.615625,47.592724609375],[8.454003906250023,47.59619140625],[8.559472656250023,47.6240234375],[8.570507812500011,47.63779296875],[8.567089843750011,47.651904296874996],[8.55234375,47.659130859375],[8.451757812500006,47.651806640625],[8.413281250000011,47.6626953125],[8.403417968750006,47.687792968749996],[8.435742187500011,47.731347656249994],[8.572656250000023,47.775634765625],[9.524023437500006,47.52421875],[9.625878906250023,47.467041015625],[9.527539062500011,47.270751953125],[9.527658197470123,47.27026989773668]]]},"properties":{"name":"Switzerland","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-67.28886718749999,-55.776855468749964],[-67.55996093749997,-55.72480468750002],[-67.39736328124997,-55.58515625],[-67.28886718749999,-55.776855468749964]]],[[[-67.07993164062498,-55.15380859374996],[-67.33969726562495,-55.292578124999984],[-67.4947265625,-55.177441406249976],[-68.07001953124995,-55.22109374999999],[-68.30136718750003,-54.98066406250003],[-67.245263671875,-54.977636718750034],[-67.07993164062498,-55.15380859374996]]],[[[-69.70297851562503,-54.91904296875],[-68.90078125000002,-55.01777343750004],[-68.45800781249997,-54.95966796875002],[-68.61328124999997,-55.155566406250045],[-68.28266601562495,-55.25517578125],[-68.04833984375,-55.6431640625],[-68.86704101562498,-55.45019531250003],[-68.89008789062498,-55.2412109375],[-69.19262695312497,-55.171875],[-69.35922851562498,-55.300683593749945],[-69.18085937499995,-55.47480468749998],[-69.41181640624995,-55.44423828124997],[-69.97978515625002,-55.14746093749999],[-69.88442382812494,-54.88203125000001],[-69.70297851562503,-54.91904296875]]],[[[-70.9916015625,-54.86796874999999],[-70.80483398437497,-54.96767578124996],[-70.41752929687493,-54.908886718749976],[-70.29785156249997,-55.11376953124997],[-70.47558593749994,-55.17705078124998],[-71.43720703125001,-54.88925781249997],[-70.9916015625,-54.86796874999999]]],[[[-71.390478515625,-54.03281250000002],[-71.02192382812495,-54.111816406250036],[-71.14326171874998,-54.374023437499986],[-71.473291015625,-54.23115234375001],[-71.94853515624999,-54.300878906250006],[-72.21044921874997,-54.04775390624995],[-71.996484375,-53.884863281249984],[-71.390478515625,-54.03281250000002]]],[[[-72.92324218749997,-53.481640625],[-72.88222656249997,-53.578320312499976],[-72.48227539062503,-53.58808593750001],[-72.20541992187503,-53.80742187500002],[-72.408544921875,-54.00380859374997],[-72.87099609375,-54.12656250000002],[-72.76376953125,-53.86484375],[-73.03945312499994,-53.83281250000004],[-73.08076171875001,-53.99804687499995],[-73.21064453125001,-53.98583984374995],[-73.31435546875,-53.72919921874998],[-73.845458984375,-53.54580078125001],[-73.44707031249993,-53.41005859374998],[-72.92324218749997,-53.481640625]]],[[[-74.38574218749994,-52.92236328125001],[-73.65400390624998,-53.06982421875003],[-73.13520507812498,-53.35390625],[-73.56728515625,-53.3068359375],[-73.86694335937494,-53.096875],[-74.27021484374995,-53.08154296875002],[-74.71201171874998,-52.74873046874998],[-74.38574218749994,-52.92236328125001]]],[[[-68.62993164062499,-52.65263671875004],[-68.65322265624994,-54.85361328124999],[-69.48627929687493,-54.85888671875],[-69.72343750000002,-54.71210937500003],[-70.49716796875,-54.80957031249999],[-71.83154296874997,-54.62617187500002],[-71.92773437500003,-54.52871093749997],[-71.80014648437498,-54.433984374999945],[-71.07993164062498,-54.444238281249994],[-70.79726562500002,-54.32724609374996],[-70.70112304687498,-54.48544921875004],[-70.31098632812498,-54.52851562500002],[-70.86308593749993,-54.11044921875003],[-70.86772460937499,-53.88417968750002],[-70.53129882812502,-53.627343750000016],[-70.37973632812495,-53.98671874999995],[-70.62983398437493,-54.005566406249976],[-70.53530273437494,-54.136132812500016],[-70.16899414062502,-54.37929687499999],[-69.74184570312494,-54.30585937500005],[-69.25317382812494,-54.557421875000045],[-69.04433593749997,-54.40673828124999],[-69.98813476562503,-54.10908203125001],[-70.15112304687503,-53.88808593750002],[-70.09111328124996,-53.72177734374998],[-69.35595703125003,-53.41630859375001],[-69.63701171874999,-53.33408203125004],[-70.32929687499998,-53.37763671875003],[-70.44335937499994,-53.085546875000034],[-70.130615234375,-52.942773437499994],[-70.38012695312494,-52.75195312500002],[-69.93544921874997,-52.82109374999998],[-69.41406249999997,-52.48623046874997],[-69.16704101562499,-52.66757812499997],[-68.78979492187497,-52.576757812500034],[-68.62993164062499,-52.65263671875004]]],[[[-74.82294921874993,-51.63017578125001],[-74.53681640624998,-51.96513671875004],[-74.69448242187497,-52.27919921874999],[-74.85180664062494,-52.27070312500003],[-75.10537109375,-51.78886718750001],[-74.82294921874993,-51.63017578125001]]],[[[-74.55864257812499,-51.27705078125001],[-74.62036132812497,-51.395703125000026],[-75.04736328125,-51.39833984375003],[-75.28911132812496,-51.625390625000016],[-75.15366210937498,-51.278808593750014],[-74.73666992187503,-51.20761718749999],[-74.55864257812499,-51.27705078125001]]],[[[-75.302001953125,-50.67998046875005],[-75.411376953125,-50.76435546875001],[-75.42763671875002,-50.48056640625002],[-75.11533203124998,-50.510449218749976],[-75.302001953125,-50.67998046875005]]],[[[-75.05478515625,-50.29609375],[-75.44912109374997,-50.34335937500004],[-75.32666015624997,-50.01181640625],[-74.8759765625,-50.10996093750001],[-75.05478515625,-50.29609375]]],[[[-75.106689453125,-48.83652343750001],[-75.38994140624999,-49.15917968750002],[-75.64116210937499,-49.195410156250034],[-75.48764648437498,-49.082421875000016],[-75.58310546874998,-48.85888671874995],[-75.106689453125,-48.83652343750001]]],[[[-74.47617187499998,-49.14785156250002],[-74.59472656249997,-50.00664062500001],[-74.76298828124996,-50.01142578125001],[-74.88041992187502,-49.72587890625001],[-74.72382812499998,-49.42382812500003],[-74.960107421875,-49.533007812499974],[-75.06601562499998,-49.85234375000002],[-75.54980468749994,-49.79130859375002],[-75.30585937499998,-49.49404296875003],[-75.46748046874995,-49.35888671875003],[-75.08603515624998,-49.27021484375],[-75.21015624999995,-49.14804687499998],[-74.94921875,-48.960156249999976],[-74.89624023437503,-48.73320312500002],[-74.54609374999993,-48.76689453125004],[-74.47617187499998,-49.14785156250002]]],[[[-75.51025390624997,-48.76347656250005],[-75.65092773437496,-48.58632812500002],[-75.57148437499993,-48.095898437500026],[-75.39140625000002,-48.01972656249997],[-75.15849609374999,-48.62265624999996],[-75.51025390624997,-48.76347656250005]]],[[[-74.56728515625,-48.591992187500026],[-74.92304687499998,-48.62646484375003],[-75.21289062499997,-48.141699218750034],[-75.19829101562502,-47.974609375000014],[-74.895654296875,-47.839355468749986],[-74.56728515625,-48.591992187500026]]],[[[-75.11220703124997,-47.8376953125],[-75.26103515625002,-47.76386718749998],[-74.92646484374998,-47.72314453125003],[-75.11220703124997,-47.8376953125]]],[[[-74.31289062500002,-45.69150390625002],[-74.46552734374995,-45.757226562499994],[-74.68984375,-45.66259765625],[-74.310546875,-45.17265625000002],[-74.31289062500002,-45.69150390625002]]],[[[-73.63217773437498,-44.82148437499997],[-73.81845703125,-44.65214843750002],[-73.72392578124993,-44.544238281249974],[-73.63217773437498,-44.82148437499997]]],[[[-72.98613281249999,-44.780078124999974],[-73.22846679687498,-44.85996093749999],[-73.39707031249998,-44.77431640624995],[-73.44506835937497,-44.641015624999966],[-73.20771484374993,-44.33496093749997],[-72.7763671875,-44.50859374999999],[-72.98613281249999,-44.780078124999974]]],[[[-73.73535156249997,-44.39453125000003],[-74.00205078125003,-44.59091796874998],[-73.728173828125,-45.195898437500034],[-74.016259765625,-45.344921875000026],[-74.61777343749998,-44.64794921874996],[-74.50180664062498,-44.47353515624995],[-74.09721679687496,-44.38935546875004],[-73.99492187499999,-44.140234375],[-73.70322265624998,-44.27412109375001],[-73.73535156249997,-44.39453125000003]]],[[[-73.81064453125003,-43.827246093750006],[-73.95566406249998,-43.921972656250034],[-74.14296874999997,-43.872167968750006],[-73.81064453125003,-43.827246093750006]]],[[[-73.77338867187498,-43.3458984375],[-74.114404296875,-43.35791015624996],[-74.387353515625,-43.231640625],[-74.03666992187496,-41.79550781249998],[-73.52783203124997,-41.89628906249999],[-73.42290039062499,-42.192871093750014],[-73.47080078124998,-42.46630859375004],[-73.78925781249993,-42.58574218750003],[-73.43632812499996,-42.9365234375],[-73.74965820312494,-43.15908203124995],[-73.77338867187498,-43.3458984375]]],[[[-78.80415039062501,-33.646484374999986],[-78.98945312499993,-33.66171874999998],[-78.87744140625003,-33.57519531250003],[-78.80415039062501,-33.646484374999986]]],[[[-109.27998046874994,-27.14042968749996],[-109.434130859375,-27.171289062500023],[-109.39047851562499,-27.068359375000014],[-109.27998046874994,-27.14042968749996]]],[[[-67.19487304687493,-22.821679687500037],[-67.00878906249994,-23.00136718750005],[-67.35620117187503,-24.033789062499963],[-68.25029296875002,-24.391992187500023],[-68.56201171875,-24.74736328125003],[-68.38422851562495,-25.091894531249977],[-68.59208984375002,-25.420019531250034],[-68.41450195312498,-26.153710937500023],[-68.59160156249999,-26.47041015624997],[-68.31865234374999,-26.973242187500006],[-68.59208984375002,-27.140039062499966],[-68.84633789062494,-27.153710937499994],[-69.17441406249998,-27.924707031250037],[-69.65693359374995,-28.413574218749986],[-69.82788085937497,-29.10322265624997],[-70.02680664062501,-29.324023437500017],[-69.95996093749997,-30.078320312500026],[-69.84428710937493,-30.175],[-69.95634765624996,-30.35820312500003],[-70.15322265625,-30.360937499999963],[-70.30908203124994,-31.02265625000004],[-70.51958007812493,-31.1484375],[-70.585205078125,-31.569433593749963],[-70.25439453125,-31.957714843750026],[-70.36376953125,-32.08349609374997],[-70.02197265625,-32.88457031250002],[-70.08486328125002,-33.20175781249998],[-69.81962890624999,-33.28378906249999],[-69.85244140625,-34.224316406250026],[-70.05205078124999,-34.30078124999997],[-70.39316406250003,-35.146875],[-70.55517578125,-35.246875],[-70.41572265625001,-35.52304687500002],[-70.40478515625,-36.06171874999998],[-71.05551757812498,-36.52373046874996],[-71.19218750000002,-36.84365234375004],[-71.16757812499998,-37.76230468749996],[-70.858642578125,-38.60449218750003],[-71.40156249999995,-38.93505859374996],[-71.53945312499997,-39.60244140624995],[-71.71992187499995,-39.63525390624997],[-71.65976562499998,-40.02080078125],[-71.81831054687493,-40.17666015624995],[-71.70898437499997,-40.381738281249994],[-71.93212890624994,-40.69169921874999],[-71.91127929687497,-41.650390624999986],[-71.75,-42.04677734375001],[-72.10820312499993,-42.25185546874995],[-72.14643554687498,-42.990039062499974],[-71.750634765625,-43.237304687499986],[-71.90498046875001,-43.34755859374998],[-71.68007812500002,-43.92958984374998],[-71.82001953124993,-44.38310546875],[-71.21259765624998,-44.44121093750003],[-71.15971679687496,-44.56025390625004],[-71.26113281250002,-44.763085937499966],[-72.06372070312503,-44.771875],[-72.04169921874998,-44.90419921875004],[-71.5962890625,-44.97919921875004],[-71.34931640624995,-45.33193359374995],[-71.74619140624998,-45.57890625],[-71.63154296874998,-45.95371093749998],[-71.87568359374998,-46.160546875],[-71.69965820312501,-46.6513671875],[-71.94023437499999,-46.83125],[-71.90498046875001,-47.201660156250014],[-72.34594726562497,-47.49267578124997],[-72.517919921875,-47.87636718749998],[-72.32832031250001,-48.11005859374998],[-72.35473632812497,-48.36582031250005],[-72.582861328125,-48.47539062499999],[-72.65126953125,-48.84160156249998],[-73.03364257812501,-49.014355468750004],[-73.13525390625,-49.30068359374999],[-73.46157226562497,-49.31386718750001],[-73.55419921875,-49.463867187500014],[-73.50126953124996,-50.125292968750024],[-73.15292968749998,-50.73828125000003],[-72.50981445312496,-50.607519531250034],[-72.34023437499997,-50.68183593749999],[-72.40766601562501,-51.54082031250002],[-71.91865234374995,-51.98955078125004],[-69.96025390624993,-52.00820312500002],[-68.443359375,-52.35664062500004],[-69.24101562499996,-52.20546874999997],[-69.62031249999995,-52.46474609374995],[-70.79511718749995,-52.76875],[-70.99584960937497,-53.77929687499997],[-71.29775390625002,-53.88339843750004],[-72.1744140625,-53.632324218749964],[-72.41289062500002,-53.35019531250004],[-71.94169921874993,-53.23408203125001],[-71.89169921874998,-53.523535156250006],[-71.79145507812498,-53.48457031249997],[-71.74052734374999,-53.232617187499976],[-71.28896484375002,-53.03369140624995],[-71.22714843750003,-52.810644531249984],[-71.38774414062496,-52.76425781250004],[-72.27802734374998,-53.13232421874997],[-72.54892578125,-53.4607421875],[-73.05273437499997,-53.24345703125005],[-72.72768554687502,-52.7623046875],[-72.453466796875,-52.814453124999964],[-72.11757812499997,-52.65],[-71.51127929687502,-52.60537109375],[-72.22568359374998,-52.52099609374995],[-72.43769531250001,-52.62578124999998],[-72.71210937499995,-52.53554687499999],[-73.12246093749997,-53.073925781249976],[-73.64521484374998,-52.83701171875003],[-73.2408203125,-52.707128906250034],[-73.12392578125,-52.487988281249976],[-73.24414062499997,-52.62402343749998],[-73.58569335937503,-52.68574218750003],[-74.01445312499999,-52.63935546875],[-74.26494140624993,-52.1048828125],[-73.83447265625,-52.23398437500001],[-73.68432617187494,-52.07773437499998],[-73.26044921874993,-52.157812500000034],[-72.79501953124998,-51.94951171875005],[-72.57084960937496,-52.200097656249945],[-72.67705078125002,-52.38466796874998],[-72.52333984374997,-52.255468750000034],[-72.62460937499998,-51.94648437499997],[-72.48964843750002,-51.76367187500003],[-72.76123046875,-51.57324218749996],[-73.16875,-51.45390624999998],[-72.60004882812495,-51.79912109374997],[-73.51816406250003,-52.04101562499996],[-73.75263671874993,-51.795507812500034],[-74.19667968749997,-51.68056640624997],[-73.92978515624995,-51.61787109374999],[-73.93950195312499,-51.26630859375005],[-74.81474609374996,-51.06289062499999],[-75.09467773437495,-50.68125],[-74.68574218749995,-50.662011718749945],[-74.77587890625003,-50.46992187499998],[-74.64448242187498,-50.360937499999984],[-74.365576171875,-50.487890625],[-74.13940429687503,-50.81777343749997],[-73.80654296875,-50.93837890625003],[-73.654443359375,-50.49267578125],[-73.97802734375003,-50.827050781249994],[-74.18559570312493,-50.485351562500014],[-73.95034179687497,-50.510546875],[-74.62958984374998,-50.19404296875],[-74.333740234375,-49.97460937499997],[-73.95859374999998,-49.994726562499984],[-74.32392578124995,-49.783398437500004],[-74.29082031249996,-49.604101562499984],[-73.83637695312493,-49.609375],[-74.09443359374993,-49.42968749999998],[-73.93496093749994,-49.02089843750001],[-74.2212890625,-49.500585937500034],[-74.36655273437503,-49.40048828124998],[-74.34101562499998,-48.59570312499998],[-74.00908203124996,-48.475],[-74.47441406249999,-48.46396484374996],[-74.58466796874998,-47.999023437500014],[-73.39106445312498,-48.14589843750001],[-73.60991210937499,-47.993945312500045],[-73.71586914062499,-47.65546875000001],[-73.94086914062498,-47.92939453125004],[-74.22705078124994,-47.96894531250001],[-74.654931640625,-47.702246093750034],[-74.5337890625,-47.567675781249974],[-74.24296874999999,-47.67929687499998],[-74.13408203125002,-47.590820312499986],[-74.48266601562497,-47.43046875],[-74.15839843749998,-47.18251953125002],[-74.31357421874998,-46.78818359374998],[-74.45419921875003,-46.76679687499997],[-74.51225585937496,-46.88515625000002],[-75.00595703125,-46.74111328124998],[-74.98417968750002,-46.51210937499995],[-75.54033203124999,-46.69873046874996],[-75.43037109374995,-46.93457031249996],[-75.70639648437498,-46.70527343749997],[-74.924462890625,-46.159667968750014],[-75.06669921874993,-45.874902343749994],[-74.15786132812497,-45.7671875],[-74.122705078125,-45.49619140625002],[-73.95717773437494,-45.40439453124998],[-73.825,-45.446875],[-74.01992187500002,-46.055859375],[-74.39296875,-46.21738281250005],[-73.96757812500002,-46.15410156250003],[-73.87871093749993,-45.846875],[-73.73525390624994,-45.81171875],[-73.70815429687502,-46.070312500000014],[-73.94863281249997,-46.533105468749966],[-73.845361328125,-46.56601562500002],[-73.59184570312493,-45.89912109375004],[-73.73076171874999,-45.47998046875],[-73.26621093749995,-45.346191406250014],[-72.933837890625,-45.45234374999997],[-73.44497070312497,-45.23818359374995],[-73.36245117187502,-44.97822265625001],[-72.73896484375001,-44.73417968750003],[-72.680078125,-44.59394531249997],[-72.66386718749999,-44.43642578124995],[-73.26508789062498,-44.16865234375001],[-73.22446289062498,-43.89794921875003],[-73.06879882812495,-43.86201171874998],[-72.99658203125,-43.63154296875001],[-73.07597656250002,-43.323632812499994],[-72.75800781249998,-43.039453125],[-72.84804687500002,-42.66914062499997],[-72.77392578125003,-42.505175781250045],[-72.63183593750003,-42.509667968749994],[-72.77324218749996,-42.257714843749994],[-72.63105468749995,-42.199804687500006],[-72.412353515625,-42.388183593750014],[-72.49941406249997,-41.98085937499999],[-72.82407226562503,-41.90878906249996],[-72.36040039062499,-41.64912109375],[-72.31826171875,-41.49902343749997],[-72.54238281250002,-41.690625],[-72.95283203124995,-41.51474609374998],[-73.24179687499995,-41.78085937500002],[-73.62402343750003,-41.77363281249997],[-73.73515625000002,-41.74248046875002],[-73.62392578125,-41.581347656250045],[-73.81074218749995,-41.51748046875001],[-73.96586914062493,-41.118261718750034],[-73.67099609375,-39.96318359374999],[-73.41040039062503,-39.78916015624998],[-73.22646484375002,-39.22441406250003],[-73.52021484375001,-38.509375],[-73.46479492187498,-38.04033203125003],[-73.66181640624998,-37.69853515625003],[-73.66240234375002,-37.341015625000026],[-73.60166015624998,-37.18847656250003],[-73.21596679687502,-37.16689453124998],[-73.11806640624997,-36.68837890625002],[-72.58735351562493,-35.759667968749994],[-72.62392578125002,-35.5857421875],[-72.22377929687494,-35.096191406250014],[-72.00283203124997,-34.16533203125],[-71.66435546875002,-33.65263671875],[-71.74296875,-33.09511718750001],[-71.45224609374998,-32.65957031250001],[-71.70893554687495,-30.62802734375002],[-71.66948242187499,-30.33037109374996],[-71.40039062499997,-30.142968749999966],[-71.31572265624996,-29.649707031250017],[-71.51923828124993,-28.926464843750026],[-71.30673828124998,-28.672460937499963],[-71.08652343749998,-27.814453124999957],[-70.92578125,-27.588671874999974],[-70.64658203124998,-26.329394531250017],[-70.71372070312498,-25.78417968749997],[-70.44536132812502,-25.17265624999999],[-70.57412109374994,-24.644335937500003],[-70.39233398437494,-23.565917968749957],[-70.59335937499995,-23.255468750000034],[-70.56318359374995,-23.057031250000023],[-70.33168945312494,-22.848632812500014],[-70.08002929687501,-21.356835937500037],[-70.19702148437494,-20.725390625],[-70.15742187499995,-19.70585937500003],[-70.41826171874999,-18.345605468750023],[-69.92636718749998,-18.206054687500014],[-69.80258789062498,-17.990234375000014],[-69.85209960937493,-17.70380859375001],[-69.68476562499995,-17.649804687500023],[-69.58642578125,-17.57324218749997],[-69.51093749999998,-17.50605468749997],[-69.31337890624997,-17.943164062500017],[-69.28232421875003,-17.96484375],[-69.09394531249993,-18.05048828125004],[-69.14545898437495,-18.14404296875],[-69.09228515624994,-18.28242187500004],[-69.02680664062493,-18.65625],[-68.97885742187503,-18.81298828125003],[-68.96831054687502,-18.967968749999983],[-68.85795898437499,-19.09335937500005],[-68.62055664062495,-19.29667968749999],[-68.54785156249997,-19.341113281249974],[-68.49199218749996,-19.381933593750034],[-68.47016601562495,-19.409960937499974],[-68.46289062499997,-19.43281250000001],[-68.57529296874998,-19.56015625000002],[-68.69829101562499,-19.721093750000037],[-68.69619140625,-19.74072265625003],[-68.57827148437494,-19.856542968750006],[-68.559375,-19.902343750000014],[-68.56069335937502,-19.96708984374996],[-68.75932617187499,-20.115527343750003],[-68.74516601562493,-20.45859375],[-68.48432617187498,-20.628417968749957],[-68.55825195312497,-20.90195312499999],[-68.197021484375,-21.30029296874997],[-68.18642578124997,-21.618554687499966],[-67.88173828124997,-22.493359375000026],[-67.87944335937496,-22.822949218750026],[-67.57993164062495,-22.89169921874999],[-67.36225585937493,-22.85517578125001],[-67.19487304687493,-22.821679687500037]]]]},"properties":{"name":"Chile","childNum":26}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[110.88876953125006,19.99194335937497],[111.01367187500003,19.65546875000001],[110.64091796875002,19.291210937499955],[110.45126953125012,18.747949218750023],[110.06738281249997,18.447558593750045],[109.51933593750007,18.21826171875003],[108.7015625,18.535253906250034],[108.66552734375003,19.304101562499994],[109.27666015625002,19.761132812500023],[109.17744140625004,19.768457031250023],[109.26347656250007,19.882666015625006],[110.1715820312501,20.053710937500057],[110.58818359375002,19.976367187500017],[110.6517578125,20.137744140625017],[110.88876953125006,19.99194335937497]]],[[[110.38515625000005,21.093164062499966],[110.52158203125006,21.083105468750063],[110.50390625000003,20.96772460937501],[110.28095703125004,21.001171874999983],[110.38515625000005,21.093164062499966]]],[[[112.64375,21.63964843750003],[112.525,21.62304687500003],[112.64765625000004,21.710253906250017],[112.64375,21.63964843750003]]],[[[112.79023437500004,21.601855468750045],[112.78203125000007,21.772265625000045],[112.86259765625002,21.75263671875004],[112.79023437500004,21.601855468750045]]],[[[118.1830078125,24.496289062499983],[118.0905273437501,24.446142578125063],[118.10380859375002,24.552343750000034],[118.1830078125,24.496289062499983]]],[[[119.82089843750006,25.45698242187504],[119.70029296875012,25.432714843750063],[119.72255859375005,25.638818359375023],[119.83837890625003,25.591064453125],[119.82089843750006,25.45698242187504]]],[[[121.2513671875,28.086425781250057],[121.13154296875004,28.062597656250006],[121.20546875,28.204394531250017],[121.2513671875,28.086425781250057]]],[[[122.29589843750003,29.96342773437499],[122.02402343750012,30.01333007812505],[121.96943359375004,30.143115234375017],[122.28447265625007,30.068017578124994],[122.29589843750003,29.96342773437499]]],[[[121.86269531250005,31.492285156249977],[121.519921875,31.549609375000017],[121.2111328125001,31.80537109375001],[121.86269531250005,31.492285156249977]]],[[[130.52695312500012,42.535400390625],[130.24667968750012,42.744824218749955],[130.24033203125006,42.891796874999955],[129.89824218750002,42.998144531250034],[129.69785156250012,42.448144531249994],[129.3136718750001,42.41357421874997],[128.92343750000006,42.038232421874966],[128.04521484375007,41.9875],[128.28925781250004,41.60742187500006],[128.14941406249997,41.38774414062496],[127.17968750000003,41.531347656250006],[126.95478515625004,41.76948242187501],[126.74306640625,41.724853515625],[125.98906250000002,40.904638671875034],[124.8893554687501,40.459814453125006],[124.36210937500002,40.004052734374994],[124.10576171875002,39.84101562499998],[123.65087890625003,39.881591796875],[122.8400390625001,39.600830078125],[121.98232421875,39.05317382812498],[121.67724609374997,39.00341796875006],[121.64990234375003,38.865087890625034],[121.16357421874997,38.73164062500001],[121.10673828125002,38.920800781249994],[121.6798828125001,39.10869140625002],[121.62763671875004,39.22016601562498],[121.81845703125006,39.38652343750002],[121.27548828125006,39.38476562500003],[121.26748046875,39.544677734375],[121.51757812499997,39.638964843750045],[121.51738281250002,39.84482421875006],[121.8009765625001,39.950537109375006],[122.27500000000012,40.541845703125034],[121.83486328125005,40.97426757812502],[121.72929687500002,40.84614257812504],[121.1745117187501,40.901269531249994],[120.47910156250006,40.23095703125003],[119.39111328125003,39.75249023437499],[118.976953125,39.182568359374955],[118.29785156249997,39.067089843749955],[118.04091796875,39.22675781249998],[117.86572265625003,39.191259765625034],[117.61669921875003,38.852880859375034],[117.5578125000001,38.625146484374994],[117.76669921875012,38.311669921874994],[118.01494140625007,38.18339843749996],[118.94003906250006,38.04277343750002],[119.08916015625007,37.70073242187496],[118.95263671875003,37.33115234374998],[119.28740234375002,37.138281250000034],[119.76054687500007,37.15507812499999],[120.31152343750003,37.62270507812505],[120.2572265625,37.67900390624996],[120.75,37.83393554687501],[121.64023437500012,37.46035156250002],[122.05664062500003,37.528906250000034],[122.66699218750003,37.40283203125003],[122.4466796875,37.06811523437503],[122.51972656250004,36.94682617187502],[122.34091796875012,36.83222656250004],[121.93271484375006,36.95947265625003],[121.05380859375006,36.61137695312499],[120.81083984375007,36.6328125],[120.89580078125007,36.44414062500002],[120.71152343750006,36.41328125000004],[120.6378906250001,36.129931640625045],[120.39306640625003,36.053857421874994],[120.32773437500006,36.228173828124994],[120.18330078125004,36.20244140624999],[120.094140625,36.11889648437503],[120.28476562500006,35.98442382812499],[119.42968749999997,35.301416015624994],[119.16533203125002,34.84882812499998],[119.20097656250002,34.748437499999966],[120.26669921875006,34.274023437500034],[120.87109374999997,33.016503906249994],[120.8532226562501,32.66137695312503],[121.34169921875005,32.42504882812503],[121.40390625000006,32.20625],[121.85634765625,31.816455078125045],[121.86630859375006,31.703564453124955],[121.68085937500004,31.71215820312503],[121.351953125,31.85878906250005],[120.97353515625,31.86938476562497],[120.52011718750006,32.10585937500002],[120.03593750000002,31.93627929687503],[120.7155273437501,31.983740234375006],[120.7877929687501,31.81977539062501],[121.66064453124997,31.319726562499994],[121.87792968750003,30.91699218750003],[121.41894531249997,30.789794921875057],[120.8214843750001,30.354638671875023],[120.44980468750006,30.38784179687505],[120.19462890625002,30.241308593750034],[120.49453125,30.303076171875006],[120.63339843750006,30.133154296875034],[121.25800781250004,30.30410156250005],[121.67792968750004,29.979101562500006],[122.08291015625005,29.870361328125057],[121.50625,29.484570312499955],[121.94121093750002,29.605908203124983],[121.91777343750007,29.13500976562497],[121.71748046875004,29.25634765625],[121.48710937500007,29.193164062500017],[121.67968749999997,28.953125],[121.54003906250003,28.931884765625],[121.6625,28.851416015625034],[121.47519531250006,28.64140625],[121.60996093750006,28.29213867187505],[121.27226562500002,28.222119140624983],[121.14570312500004,28.32666015624997],[120.95859375000006,28.037011718750023],[120.74765625000006,28.00996093750001],[120.83300781249997,27.891455078125034],[120.58750000000012,27.580761718749983],[120.60751953125012,27.41240234374996],[120.2787109375,27.097070312500023],[120.08671875000007,26.67158203125004],[119.88222656250005,26.610449218750006],[119.82421874999997,26.84638671875001],[119.71044921874997,26.728662109375023],[119.58818359375002,26.784960937500045],[119.8810546875001,26.33417968750004],[119.46308593750004,26.05468750000003],[119.13945312500007,26.12177734375001],[119.33203124999997,25.94873046875003],[119.61875000000012,26.003564453124994],[119.53945312500005,25.59125976562504],[119.6224609375,25.391162109375017],[119.180078125,25.449804687499977],[119.285546875,25.232226562500074],[118.97753906249997,25.209277343750017],[118.90908203125005,24.92890625000001],[118.63691406250004,24.835546874999977],[118.65703125000002,24.621435546874977],[118.0871093750001,24.627001953125045],[118.00595703125006,24.48198242187499],[117.84267578125005,24.47431640625004],[118.0560546875,24.24609374999997],[117.62822265625002,23.836718750000074],[117.46640625000012,23.84057617187497],[117.36767578124997,23.58862304687497],[117.29082031250007,23.71435546875],[117.08251953124997,23.578759765625023],[116.91064453124997,23.646679687499983],[116.86093750000006,23.453076171874983],[116.62939453124997,23.353857421875034],[116.69882812500006,23.277783203124983],[116.53828125000004,23.17968749999997],[116.47070312499997,22.945898437500034],[116.25185546875005,22.981347656249994],[115.85214843750006,22.801562500000045],[115.64042968750002,22.853417968750023],[115.49833984375002,22.718847656250063],[115.19580078125003,22.81728515625005],[114.85380859375007,22.616796875000063],[114.65166015625002,22.755273437500023],[114.55419921874997,22.52890625],[114.26601562500005,22.540966796874983],[114.01542968750007,22.51191406250001],[113.61962890624997,22.861425781249977],[113.6205078125,23.12749023437499],[113.51972656250004,23.102099609375074],[113.33105468749997,22.912011718749966],[113.55302734375002,22.594042968750045],[113.54912109375002,22.225195312500034],[113.14902343750012,22.075],[113.08876953125,22.207958984374983],[112.95390625000007,21.907324218750034],[112.80859374999997,21.944628906250074],[112.58632812500005,21.77685546875],[112.35966796875007,21.97802734375003],[112.30498046875002,21.74169921875003],[111.94394531250012,21.84965820312499],[111.60273437500004,21.55908203125003],[111.01689453125007,21.51171874999997],[110.56718750000002,21.21406250000001],[110.41093750000007,21.33813476562497],[110.15400390625004,20.944628906250017],[110.36542968750004,20.837597656249955],[110.31308593750012,20.67167968749999],[110.51152343750007,20.51826171875001],[110.34472656249997,20.29482421875005],[109.88251953125004,20.364062500000045],[109.96835937500006,20.448144531250023],[109.66259765625003,20.91689453125005],[109.68125000000012,21.13164062499999],[109.93076171875012,21.480566406250034],[109.6869140625,21.52460937500004],[109.56640624999997,21.690576171874994],[109.54404296875012,21.537939453125006],[109.14863281250004,21.425537109375],[109.1017578125001,21.59047851562505],[108.77167968750004,21.63046875],[108.59375,21.901025390624994],[108.47988281250005,21.904638671875006],[108.50214843750004,21.633447265624994],[108.32480468750006,21.693505859374994],[108.24628906250004,21.55839843749999],[107.97265624999997,21.507958984375023],[107.75927734374997,21.655029296875057],[107.35117187500012,21.60888671874997],[106.97099609375002,21.923925781250034],[106.66357421875003,21.97890625000005],[106.55039062500006,22.501367187499994],[106.78027343749997,22.778906250000034],[106.54179687500007,22.908349609375023],[106.2790039062501,22.857470703125045],[106.14843749999997,22.970068359375006],[105.8429687500001,22.922802734374955],[105.27539062500003,23.34521484375003],[104.86474609375003,23.136376953125023],[104.68730468750002,22.822216796874983],[104.37177734375004,22.704052734374983],[104.14306640624997,22.800146484375006],[103.94150390625006,22.540087890625045],[103.62021484375006,22.782031250000045],[103.49296875000007,22.587988281250034],[103.32666015625003,22.769775390625057],[102.98193359374997,22.4482421875],[102.47089843750004,22.75092773437501],[102.40644531250004,22.70800781249997],[102.2370117187501,22.466015624999983],[102.1759765625001,22.414648437500006],[102.12744140624997,22.379199218750045],[101.84179687500003,22.38847656249999],[101.75996093750004,22.490332031250034],[101.73876953124997,22.495263671874994],[101.70751953125003,22.486572265625],[101.67148437500006,22.462304687500023],[101.64619140625004,22.405419921874966],[101.61992187500002,22.32744140624999],[101.56787109374997,22.27636718749997],[101.52451171875006,22.25366210937497],[101.7365234375001,21.826513671874977],[101.74394531250007,21.77797851562505],[101.74726562500004,21.605761718750045],[101.72294921875007,21.31494140625003],[101.80058593750007,21.212597656249983],[101.78349609375007,21.204150390625017],[101.728125,21.156396484374994],[101.7047851562501,21.15014648437503],[101.54238281250005,21.23427734375005],[101.2814453125001,21.184130859375045],[101.24785156250007,21.197314453125045],[101.22441406250002,21.223730468750034],[101.21181640625,21.278222656250023],[101.2199218750001,21.34243164062505],[101.17539062500006,21.407519531250074],[101.19667968750005,21.522070312500063],[101.1388671875001,21.567480468749977],[101.07978515625004,21.75585937499997],[100.60458984375012,21.471777343750006],[100.14765625000004,21.480517578125017],[99.94072265625007,21.75874023437504],[99.9176757812501,22.02802734375001],[99.19296875000006,22.12597656249997],[99.50712890625002,22.959130859374994],[99.41806640625006,23.069238281250023],[98.86376953125003,23.191259765625034],[98.8322265625001,23.624365234374977],[98.67675781250003,23.905078125000045],[98.83505859375006,24.121191406250034],[98.2125,24.110644531250017],[97.56455078125012,23.911035156250023],[97.7082031250001,24.228759765625],[97.53144531250004,24.49169921875003],[97.58330078125002,24.77480468750005],[97.73789062500006,24.869873046875057],[97.8195312500001,25.251855468749994],[98.01074218749997,25.292529296875017],[98.14287109375007,25.571093750000017],[98.33378906250007,25.586767578125006],[98.65625,25.86357421874999],[98.56406250000006,26.072412109374994],[98.68554687499997,26.189355468750023],[98.7384765625001,26.785742187500006],[98.65117187500007,27.572460937499983],[98.4525390625,27.6572265625],[98.29882812499997,27.550097656250045],[98.06162109375012,28.185888671874977],[97.59921875000006,28.51704101562504],[97.53789062500002,28.510205078124983],[97.43144531250002,28.353906250000023],[97.35644531249997,28.254492187500006],[97.32158929493812,28.217097107438057],[97.3027336276825,28.08710519614969],[97.34382779482424,27.982305259167095],[97.04929369561631,27.76000444316393],[96.96494598325154,27.699301564540924],[96.19423412199573,28.04146177926422],[95.73730002295082,28.117613231051525],[95.11298892962586,27.748338353239472],[94.07167814294401,27.588707868507477],[93.61247595136224,27.323800298697016],[93.30681393470121,26.786120363519142],[92.74319481218781,26.833531317384058],[92.04974640832253,26.874866505386724],[92.07342257335648,26.915311275859864],[92.06813426293174,26.9752569185349],[92.02985139563152,27.03987087331446],[91.99856592104459,27.079255842602592],[91.99177981607339,27.100605151743654],[92.0025114452454,27.147290053160265],[92.03101585307499,27.214271359861193],[92.08387457645458,27.29090135496722],[92.04520857607581,27.364442429033787],[91.99069061380867,27.450181624174498],[91.95099838734396,27.45828799115413],[91.85276579410389,27.438593286730903],[91.74366351462741,27.442853010105477],[91.59505352446729,27.557262710287986],[91.63193359375012,27.759960937499983],[91.64189453125002,27.923242187500023],[91.36259958579089,28.02438066407592],[91.27304687500012,28.078369140625],[91.22587890625007,28.071240234374983],[91.07773437500012,27.974462890624977],[91.02080078125002,27.970068359374977],[90.71572265625,28.071728515624983],[90.63007812500004,28.078564453124955],[90.47734375000007,28.07084960937499],[90.3527343750001,28.080224609375023],[90.33310546875012,28.093994140625],[90.36298828125004,28.21650390625001],[90.34824218750006,28.24394531249999],[90.22080078125006,28.27773437500005],[90.10449218749997,28.302050781250017],[89.98105468750006,28.311181640625023],[89.8978515625,28.29414062500001],[89.81689453125003,28.25629882812501],[89.74980468750002,28.18818359375001],[89.65273437500005,28.158300781250034],[89.53691406250007,28.10742187499997],[89.4806640625001,28.059960937499994],[88.89140625000002,27.316064453124966],[88.83251953125003,27.36284179687499],[88.7648437500001,27.429882812499983],[88.74902343749997,27.521875],[88.82988281250002,27.76738281249999],[88.84882812500004,27.86865234375],[88.80371093750003,28.006933593750034],[88.57792968750002,28.093359375000034],[88.42597656250004,28.01166992187501],[88.27519531250007,27.968847656250006],[88.14111328125003,27.94892578125001],[88.10898437500006,27.933007812499966],[88.10976562500005,27.870605468750057],[87.8607421875,27.886083984375006],[87.62255859374997,27.81518554687503],[87.29072265625004,27.821923828124994],[87.14140625000002,27.838330078124955],[87.02011718750006,27.928662109374983],[86.9337890625001,27.96845703125001],[86.84238281250012,27.99916992187505],[86.750390625,28.022070312500006],[86.71962890625005,28.070654296875034],[86.69052734375006,28.09492187500001],[86.61445312500004,28.10302734374997],[86.55449218750007,28.08520507812497],[86.51689453125007,27.963525390624966],[86.40869140625003,27.928662109374983],[86.32861328124997,27.95952148437496],[86.2179687500001,28.022070312500006],[86.13701171875002,28.114355468750063],[86.07871093750006,28.08359375],[86.0641601562501,27.934716796874966],[85.99453125000005,27.910400390625],[85.95410156249997,27.92822265624997],[85.92167968750002,27.989697265624983],[85.84023437500005,28.135351562499977],[85.75947265625004,28.220654296874955],[85.67832031250012,28.277441406249977],[85.41064453125003,28.27602539062505],[85.21210937500004,28.292626953124966],[85.1224609375,28.315966796875017],[85.08857421875004,28.37226562500001],[85.121484375,28.484277343750023],[85.16015624999997,28.571875],[85.15908203125,28.592236328124983],[85.1263671875,28.602636718750063],[85.06914062500007,28.60966796874999],[84.85507812500006,28.553613281250023],[84.796875,28.560205078125023],[84.2287109375001,28.911767578124966],[84.17558593750002,29.036376953125057],[84.12783203125005,29.15629882812496],[84.10136718750002,29.21997070312497],[84.02197265624997,29.25385742187504],[83.93593750000005,29.27949218750001],[83.58349609375003,29.18359375000003],[83.15546875000004,29.612646484375034],[82.22070312500003,30.063867187500023],[82.04335937500005,30.326757812500034],[81.8548828125,30.362402343750006],[81.64189453125007,30.3875],[81.4171875000001,30.33759765625001],[81.25507812500004,30.09331054687499],[81.17714843750005,30.039892578125034],[80.98544921875006,30.23710937499999],[80.87353515625003,30.290576171875045],[80.19121093750002,30.56840820312496],[80.20712890625006,30.683740234375023],[79.92451171875004,30.888769531250034],[79.66425781250004,30.96523437499999],[79.38847656250007,31.064208984375],[79.10712890625004,31.402636718750017],[78.74355468750005,31.323779296875017],[78.7550781250001,31.55029296875],[78.69345703125006,31.740380859374994],[78.72558593750003,31.983789062500023],[78.49589843750002,32.21577148437504],[78.4552734375001,32.30034179687502],[78.41748046874997,32.466699218749994],[78.38964843749997,32.51987304687498],[78.73671875,32.55839843750002],[78.75351562500012,32.49926757812506],[78.91894531249997,32.35820312500002],[79.16992187500003,32.497216796874994],[79.14550781250003,33.00146484375006],[79.10283203125007,33.05253906249996],[79.13515625000005,33.17192382812496],[79.1125,33.22626953125001],[78.94843750000004,33.346533203125006],[78.86503906250002,33.43110351562501],[78.78378906250006,33.80878906250004],[78.72666015625006,34.013378906249955],[78.97060546875,34.22822265625004],[78.93642578125,34.35195312500002],[78.86484375000006,34.39033203125001],[78.32695312500007,34.60639648437498],[78.15849609375002,34.94648437499998],[78.07578125000006,35.13491210937502],[78.0426757812501,35.47978515625002],[77.79941406250006,35.49589843750002],[77.44648437500004,35.47558593750006],[77.29482421875005,35.508154296875034],[77.09003906250004,35.55205078124999],[76.87890625000003,35.61328125000003],[76.76689453125002,35.661718750000034],[76.72753906250003,35.67866210937504],[76.63183593749997,35.729394531249966],[76.56347656249997,35.77299804687499],[76.55126953124997,35.887060546875034],[76.50205078125006,35.87822265625002],[76.38574218750003,35.837158203125],[76.25166015625004,35.8109375],[76.17783203125012,35.810546875],[76.14785156250005,35.82900390625002],[76.07089843750006,35.983007812500034],[75.91230468750004,36.048974609374994],[75.97441406250007,36.38242187500006],[75.9518554687501,36.458105468750034],[75.9330078125,36.52158203124998],[75.840234375,36.64970703124999],[75.7721679687501,36.694921875000034],[75.6671875000001,36.741992187500045],[75.57373046874997,36.75932617187502],[75.46025390625002,36.725048828124955],[75.42421875000005,36.73823242187498],[75.37685546875,36.88369140625005],[75.34667968749997,36.913476562499966],[75.05390625000004,36.98715820312498],[74.94912109375,36.96835937500006],[74.88925781250006,36.95244140625002],[74.69218750000007,37.035742187500006],[74.60058593749997,37.03666992187502],[74.54140625,37.02216796875001],[74.52646484375006,37.03066406250005],[74.49794921875,37.057226562500034],[74.37617187500004,37.13735351562502],[74.37216796875006,37.15771484375],[74.558984375,37.23662109374999],[74.66894531250003,37.266699218750006],[74.72666015625006,37.29072265625001],[74.7389648437501,37.28564453125003],[74.76738281250002,37.249169921874966],[74.840234375,37.22504882812504],[74.89130859375004,37.231640624999955],[75.11875,37.38569335937498],[74.8942382812501,37.60141601562498],[74.81230468750002,38.46030273437498],[74.27744140625,38.659765625000034],[74.02558593750004,38.53984375000002],[73.80166015625,38.60688476562501],[73.69609375000007,38.85429687499996],[73.8052734375,38.968652343749994],[73.60732421875,39.229199218749955],[73.63632812500006,39.396679687499955],[73.63164062500007,39.44887695312502],[73.82294921875004,39.48896484375004],[73.90712890625,39.578515624999966],[73.9146484375,39.60649414062499],[73.88251953125004,39.71455078124998],[73.83974609375005,39.76284179687505],[73.8353515625,39.800146484375006],[73.85625,39.828662109375045],[73.88457031250002,39.87792968750006],[73.93876953125002,39.97880859374999],[73.99160156250005,40.04311523437502],[74.83046875,40.32851562499999],[74.80126953124997,40.428515625000045],[74.83515625000004,40.482617187499955],[74.865625,40.493505859375034],[75.0044921875,40.44951171874996],[75.11132812499997,40.4541015625],[75.24101562500002,40.48027343750002],[75.52080078125002,40.627539062500006],[75.55556640625,40.625195312499955],[75.6771484375,40.305810546874994],[75.87197265625,40.30322265625],[76.25830078124997,40.43076171875006],[76.3185546875001,40.352246093749955],[76.39638671875005,40.389794921874966],[76.4801757812501,40.44951171874996],[76.57792968750002,40.577880859375],[76.62216796875006,40.66235351562497],[76.6398437500001,40.74223632812499],[76.66113281249997,40.77963867187498],[76.70839843750005,40.818115234375],[76.82402343750002,40.982324218749966],[76.90771484374997,41.02416992187497],[76.98662109375002,41.039160156250006],[77.58173828125004,40.99277343750006],[77.71933593750012,41.024316406249994],[77.81523437500002,41.05561523437498],[77.9564453125,41.05068359375005],[78.1234375,41.07563476562498],[78.34628906250012,41.28144531249998],[78.36240234375012,41.37163085937496],[78.44287109374997,41.41752929687499],[78.742578125,41.56005859375],[79.29355468750006,41.78281249999998],[79.76611328124997,41.89887695312501],[79.84042968750012,41.99575195312502],[79.90966796875003,42.014990234375034],[80.21621093750005,42.03242187500004],[80.23515625000007,42.04345703124997],[80.24619140625012,42.05981445312503],[80.209375,42.190039062500006],[80.20224609375012,42.73447265624998],[80.53896484375005,42.873486328124955],[80.39023437500006,43.043115234374966],[80.78574218750006,43.16157226562504],[80.35527343750002,44.09726562500006],[80.48154296875006,44.71464843749999],[79.871875,44.88378906249997],[80.05917968750012,45.006445312500006],[81.69199218750012,45.34936523437497],[81.94492187500006,45.16083984375001],[82.26660156249997,45.21909179687498],[82.52148437500003,45.12548828125],[82.61162109375007,45.424267578124955],[82.31523437500002,45.59492187499998],[83.02949218750004,47.18593750000002],[84.016015625,46.97050781250002],[84.66660156250006,46.97236328125004],[84.78613281249997,46.83071289062505],[85.484765625,47.06352539062496],[85.65664062500005,47.254638671875],[85.52597656250006,47.915625],[85.7494140625,48.38505859374999],[86.54941406250012,48.52861328125002],[86.8083007812501,49.04970703125002],[87.32285156250012,49.085791015625006],[87.41669921875004,49.07661132812501],[87.5158203125001,49.122412109375006],[87.7625,49.16582031249996],[87.81425781250002,49.162304687499955],[87.87216796875012,49.000146484374966],[87.74316406250003,48.88164062499999],[87.83183593750007,48.79165039062505],[88.02792968750006,48.735595703125],[88.06005859375003,48.707177734374966],[87.9796875000001,48.55512695312498],[88.30996093750005,48.47207031250002],[88.41396484375,48.403417968750006],[88.51708984374997,48.384472656249955],[88.56679687500005,48.31743164062496],[88.57597656250007,48.220166015624955],[88.68183593750004,48.170556640624994],[88.83828125000005,48.101708984374994],[88.91777343750007,48.089013671874966],[89.04765625000007,48.002539062500034],[89.47919921875004,48.02905273437503],[89.5609375,48.00395507812496],[89.778125,47.82700195312498],[89.83134765625002,47.82329101562502],[89.91044921875007,47.844335937500034],[89.95869140625004,47.88632812499998],[90.02792968750012,47.877685546875],[90.1032226562501,47.74541015624996],[90.19101562500012,47.70209960937501],[90.31328125000007,47.67617187499999],[90.33066406250006,47.655175781249966],[90.42519531250005,47.50410156250001],[90.49619140625012,47.28515625],[90.64335937500007,47.10029296874998],[90.71552734375004,47.00385742187498],[90.7990234375001,46.98515624999999],[90.86992187500002,46.95449218750005],[90.91054687500005,46.88325195312501],[90.9857421875,46.7490234375],[90.9115234375,46.270654296874994],[90.94755859375002,46.17729492187499],[90.99677734375004,46.10498046875],[91.00175781250007,46.03579101562502],[90.6618164062501,45.525244140625006],[90.87724609375002,45.19609375000002],[91.05,45.217431640624994],[91.584375,45.07651367187498],[92.42382812499997,45.008935546874994],[92.57890625000002,45.01098632812506],[92.78789062500007,45.035742187500034],[93.51621093750012,44.944482421874994],[94.71201171875012,44.35083007812503],[95.35029296875004,44.27807617187503],[95.32558593750005,44.03935546874999],[95.52558593750004,43.953955078125006],[95.85957031250004,43.27597656249998],[96.38544921875004,42.72036132812502],[97.20566406250012,42.78979492187506],[99.46787109375012,42.568212890625034],[99.98378906250005,42.67734375000006],[100.08632812500005,42.67075195312506],[100.51904296875003,42.61679687499998],[101.09199218750004,42.55131835937496],[101.49531250000004,42.53876953124998],[101.57910156249997,42.52353515624998],[101.65996093750002,42.50004882812499],[101.97294921875002,42.21586914062502],[102.15664062500005,42.158105468749966],[102.57519531249997,42.09208984375002],[103.07285156250006,42.00595703125006],[103.7111328125001,41.75131835937506],[103.99726562500004,41.796972656250034],[104.30517578124997,41.84614257812501],[104.49824218750004,41.87700195312499],[104.49824218750004,41.65869140625],[104.86035156250003,41.64375],[104.98203125000012,41.59550781250002],[105.05058593750002,41.61591796875001],[105.1154296875001,41.66328124999998],[105.19707031250002,41.738037109375],[105.31435546875005,41.77089843750005],[105.86757812500005,41.993994140625034],[106.77001953125003,42.28872070312502],[108.17119140625002,42.44731445312502],[108.68730468750002,42.416113281250034],[109.33984374999997,42.43837890625005],[109.44316406250002,42.455957031249994],[110.40039062499997,42.77368164062497],[111.00722656250005,43.34140624999998],[111.878125,43.68017578125],[111.93173828125012,43.81494140625],[111.40224609375005,44.367285156250006],[111.89804687500006,45.064062500000034],[112.03261718750005,45.08164062500006],[112.11289062500006,45.06293945312498],[112.41132812500004,45.05820312499998],[112.49931640625002,45.01093750000004],[112.59677734375006,44.917675781249955],[112.7067382812501,44.883447265624994],[113.04941406250006,44.81035156250002],[113.3009765625001,44.79165039062502],[113.50791015625006,44.76235351562502],[113.58701171875006,44.745703125],[113.65263671875002,44.76347656249999],[113.87705078125012,44.89619140625001],[114.03027343749997,44.942578124999955],[114.08027343750004,44.97114257812501],[114.41914062500004,45.20258789062501],[114.56015625000012,45.38999023437498],[114.73876953124997,45.41962890624998],[114.91923828125007,45.378271484375006],[115.16259765624997,45.390234375000034],[115.6810546875,45.45825195312503],[116.19765625,45.739355468750006],[116.240625,45.795996093750006],[116.22910156250012,45.84575195312502],[116.21298828125012,45.88691406249998],[116.56259765625012,46.28979492187497],[116.85908203125004,46.387939453125],[117.3333984375,46.36201171875004],[117.35693359375003,46.391308593749955],[117.35634765625,46.436669921874966],[117.39218750000012,46.53759765625003],[117.40556640625007,46.57089843750006],[117.43808593750012,46.58623046874999],[117.546875,46.58828125000005],[117.74121093749997,46.51816406250006],[118.07128906249997,46.666601562500006],[118.15683593750006,46.678564453125034],[118.30869140625012,46.71704101562497],[118.40439453125006,46.70317382812499],[118.58046875,46.69189453125],[118.64873046875002,46.70166015625006],[118.72294921875007,46.69189453125],[118.8439453125001,46.76020507812498],[118.95712890625006,46.73486328124997],[119.16210937499997,46.638671875],[119.33183593750002,46.61381835937499],[119.47402343750005,46.626660156249955],[119.62021484375006,46.60395507812504],[119.70664062500006,46.60600585937502],[119.74746093750005,46.62719726562497],[119.86718750000003,46.67216796874999],[119.89785156250005,46.857812499999966],[119.71113281250004,47.15],[119.08193359375,47.654150390625034],[119.01757812500003,47.68535156249999],[118.88027343750005,47.72509765625],[118.75996093750004,47.75761718749996],[118.69052734375012,47.822265625],[118.56777343750005,47.94326171875005],[118.49843750000005,47.98398437499998],[117.76835937500002,47.98789062499998],[117.3507812500001,47.65219726562498],[117.28593750000002,47.666357421875034],[117.06972656250005,47.80639648437506],[116.95166015624997,47.836572265624966],[116.90117187500007,47.85307617187496],[116.76054687500002,47.869775390624994],[116.65195312500012,47.86450195312497],[116.51347656250007,47.839550781249955],[116.37822265625002,47.84404296874999],[116.31718750000002,47.85986328125],[116.2311523437501,47.85820312500002],[116.07480468750012,47.78955078125],[115.99384765625004,47.71132812500005],[115.89824218750002,47.68691406250005],[115.6164062500001,47.874804687500045],[115.52509765625004,48.13085937499997],[115.63945312500007,48.18623046874998],[115.785546875,48.24824218750001],[115.7965820312501,48.346337890624994],[115.7916992187501,48.455712890624994],[115.8205078125001,48.57724609375006],[116.6833007812501,49.82377929687499],[117.8734375,49.51347656250002],[118.4515625,49.84448242187503],[119.25986328125012,50.06640625000003],[119.34628906250012,50.278955078124994],[119.16367187500006,50.40600585937503],[120.06689453125003,51.60068359375006],[120.74980468750007,52.096533203125006],[120.65615234375,52.56665039062503],[120.0675781250001,52.632910156250034],[120.09453125000007,52.787207031250034],[120.98544921875012,53.28457031250002],[123.6078125,53.546533203124994],[124.81230468750002,53.133837890625045],[125.075,53.20366210937496],[125.64902343750012,53.042285156250045],[126.34169921875,52.36201171875001],[126.92480468749997,51.10014648437496],[127.30703125000005,50.70795898437501],[127.33720703125007,50.35014648437502],[127.590234375,50.20898437500003],[127.55078124999997,49.801806640625045],[127.99960937500006,49.56860351562506],[128.70400390625,49.60014648437499],[129.0651367187501,49.374658203124966],[129.49814453125012,49.38881835937502],[130.1959960937501,48.89165039062499],[130.553125,48.861181640625006],[130.5521484375,48.602490234374955],[130.80429687500012,48.34150390624998],[130.7326171875001,48.01923828124998],[130.96191406249997,47.70932617187498],[132.47626953125004,47.714990234374994],[132.7072265625001,47.94726562500006],[133.14404296875003,48.10566406249998],[133.46835937500006,48.09716796875003],[134.29335937500005,48.37343750000002],[134.66523437500004,48.25390625],[134.56601562500006,48.02250976562502],[134.75234375,47.71542968749998],[134.1676757812501,47.30219726562501],[133.86132812500003,46.24775390625004],[133.43642578125,45.60468750000004],[133.18603515625003,45.49482421875004],[133.1134765625001,45.130712890625006],[132.93603515624997,45.029931640624994],[131.85185546875002,45.32685546875001],[131.44687500000012,44.984033203124966],[130.9816406250001,44.844335937500034],[131.2552734375,44.07158203124999],[131.25732421875003,43.378076171874994],[131.06855468750004,42.90224609375005],[130.42480468749997,42.72705078124997],[130.52695312500012,42.535400390625]]],[[[113.9977539062501,22.210498046875045],[113.83886718749997,22.24169921875003],[114.04394531250003,22.33339843750005],[113.9977539062501,22.210498046875045]]],[[[114.01542968750007,22.51191406250001],[114.26601562500005,22.540966796874983],[114.26796875,22.295556640624966],[113.93730468750002,22.364990234375],[114.01542968750007,22.51191406250001]]],[],[[[118.4074218750001,24.522119140624994],[118.43271484375006,24.414355468750074],[118.29511718750004,24.436328125000017],[118.4074218750001,24.522119140624994]]],[[[121.00878906249997,22.62036132812497],[120.83984375000003,21.925],[120.2328125,22.71791992187505],[120.0724609375001,23.149755859375006],[120.13212890625007,23.652929687500034],[121.040625,25.032812500000034],[121.59365234375,25.275341796874983],[121.92900390625002,24.973730468749977],[121.39746093750003,23.172509765625023],[121.00878906249997,22.62036132812497]]]]},"properties":{"name":"China","childNum":15}},{"geometry":{"type":"Polygon","coordinates":[[[-5.262304687499977,10.319677734374991],[-4.72177734374992,9.756542968750026],[-4.625830078125006,9.713574218749969],[-4.526611328124943,9.723486328125034],[-4.406201171874926,9.647998046875031],[-4.332226562499955,9.645703125],[-4.18115234375,9.78173828125],[-3.790625,9.917187499999983],[-3.581152343749977,9.924316406250014],[-3.289697265625023,9.882226562500051],[-3.223535156249937,9.895458984374997],[-3.160693359374932,9.849169921874974],[-3.095800781249949,9.752099609375009],[-3.042626953124937,9.72089843750004],[-2.988281249999972,9.687353515624963],[-2.900878906249943,9.534619140625026],[-2.875146484374937,9.500927734374997],[-2.816748046874949,9.425830078124974],[-2.766601562499943,9.424707031250009],[-2.7171875,9.457128906250048],[-2.695849609374989,9.481347656250009],[-2.686132812499977,9.43173828125002],[-2.705761718749983,9.351367187499989],[-2.74692382812492,9.04511718750004],[-2.689892578124955,9.02509765625004],[-2.649218750000017,8.956591796875031],[-2.600390625000017,8.800439453125023],[-2.505859375000028,8.208740234375],[-2.538281249999955,8.171630859374986],[-2.61171875,8.147558593749963],[-2.619970703125006,8.12109375],[-2.600976562499937,8.082226562499983],[-2.613378906249977,8.046679687500017],[-2.668847656249994,8.022216796875014],[-2.789746093749955,7.931933593750003],[-2.959082031249977,7.454541015624997],[-3.227148437499977,6.749121093749991],[-2.998291015624972,5.711328125000051],[-2.793652343749955,5.600097656250028],[-2.754980468749977,5.432519531249994],[-2.815673828125,5.153027343749997],[-3.168701171874972,5.203027343749966],[-3.199951171874943,5.3544921875],[-3.347558593749994,5.13066406249996],[-4.120166015625017,5.309716796875023],[-4.60888671875,5.235888671875003],[-4.037207031249977,5.23012695312498],[-4.899707031249932,5.138330078125023],[-5.282373046874994,5.210253906250017],[-5.36752929687492,5.15078125],[-5.061816406249989,5.13066406249996],[-5.913769531249926,5.0109375],[-7.544970703124989,4.351318359375],[-7.574658203124983,4.572314453124989],[-7.585058593749977,4.916748046875],[-7.39990234375,5.550585937499989],[-7.454394531249989,5.841308593749972],[-7.636132812499994,5.90771484375],[-7.730371093749994,5.919042968749991],[-7.800927734374994,6.038916015624991],[-7.833251953125,6.076367187499983],[-7.855517578125017,6.150146484375],[-7.888623046875011,6.234863281250028],[-7.981591796874937,6.2861328125],[-8.287109375,6.31904296875004],[-8.587890625,6.490527343749989],[-8.324511718749989,6.920019531249991],[-8.408740234374989,7.411816406249997],[-8.429980468749989,7.601855468749989],[-8.351757812499926,7.590576171875],[-8.231884765624955,7.556738281250034],[-8.205957031249994,7.590234375000023],[-8.115429687499926,7.760742187500028],[-8.126855468749937,7.867724609374974],[-8.00986328124992,8.078515625000023],[-8.048583984375,8.169726562500045],[-8.140625,8.181445312500031],[-8.217138671874949,8.219677734375011],[-8.256103515625,8.253710937500017],[-8.244140624999943,8.407910156249983],[-8.236962890624994,8.455664062500034],[-7.953125,8.477734375],[-7.823583984374977,8.467675781249994],[-7.738964843749983,8.375244140624986],[-7.696093749999932,8.375585937499977],[-7.71958007812492,8.643017578125011],[-7.950976562499989,8.786816406249997],[-7.938183593749983,8.97978515624996],[-7.902099609375,9.017089843750014],[-7.777978515624937,9.080859375000031],[-7.799804687499943,9.115039062499989],[-7.839404296875017,9.151611328124972],[-7.918066406249949,9.188525390625031],[-7.896191406249955,9.415869140624991],[-8.136962890624972,9.49570312499999],[-8.155175781249937,9.973193359375017],[-7.990625,10.1625],[-7.661132812500028,10.427441406250011],[-7.385058593749989,10.340136718749989],[-7.01708984375,10.143261718750026],[-6.950341796874994,10.342333984374989],[-6.693261718750023,10.34946289062502],[-6.669335937499937,10.39218750000002],[-6.69199218749992,10.512011718750017],[-6.686132812499977,10.578027343750051],[-6.676367187499949,10.633789062500043],[-6.654150390624949,10.65644531250004],[-6.482617187499983,10.561230468749997],[-6.250244140625,10.717919921875037],[-6.190673828124943,10.400292968749994],[-6.192626953124972,10.369433593750003],[-6.241308593749949,10.279199218750009],[-6.238378906249977,10.26162109374998],[-6.117187499999972,10.201904296874986],[-6.034570312499937,10.194824218750057],[-5.907568359375006,10.307226562500034],[-5.896191406249983,10.354736328125028],[-5.843847656249977,10.389550781250023],[-5.694287109374983,10.433203125000034],[-5.556591796874983,10.439941406249986],[-5.382275390625011,10.314013671875003],[-5.262304687499977,10.319677734374991]]]},"properties":{"name":"Côte d\'Ivoire","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[15.480078125,7.523779296874991],[15.206738281250011,7.206152343749991],[14.7392578125,6.27978515625],[14.43115234375,6.038720703124994],[14.616894531250011,5.865136718749994],[14.56298828125,5.279931640624994],[14.73125,4.602392578124991],[15.063574218750006,4.284863281249997],[15.128710937500017,3.826904296875],[16.0634765625,2.90859375],[16.183398437500017,2.270068359374989],[16.059375,1.676220703124997],[15.741601562500023,1.914990234374997],[14.902441406250006,2.012304687499991],[14.578906250000017,2.199121093749994],[13.293554687500006,2.161572265624997],[13.2203125,2.256445312499991],[11.558984375000023,2.302197265624997],[11.348437500000017,2.299707031249994],[11.328710937500006,2.167431640624997],[11.096582031250023,2.16748046875],[10.790917968750023,2.16757812499999],[9.979882812500023,2.167773437499989],[9.8701171875,2.21328125],[9.8369140625,2.242382812499997],[9.830371093750017,2.275488281249991],[9.826171875,2.297802734374997],[9.80078125,2.304443359375],[9.82177734375,2.539257812499997],[9.948437500000011,3.079052734374997],[9.672070312500011,3.53759765625],[9.765722656250006,3.623828124999989],[9.642382812500017,3.611767578124997],[9.55615234375,3.798046875],[9.739648437500023,3.852929687499994],[9.639941406250017,3.96533203125],[9.688867187500023,4.056396484375],[9.483691406250017,4.066113281249997],[9.42529296875,3.922314453124997],[9.000097656250006,4.091601562499989],[8.918261718750017,4.553759765624989],[8.660351562500011,4.670996093749991],[8.65625,4.516357421875],[8.53955078125,4.571875],[8.715625,5.046875],[8.997167968750006,5.917724609375],[9.490234375,6.418652343749997],[9.779882812500006,6.76015625],[9.820703125000023,6.783935546875],[9.874218750000011,6.803271484374989],[10.038867187500017,6.92138671875],[10.1435546875,6.996435546874991],[10.167773437500017,6.959179687499997],[10.185546875,6.912792968749997],[10.205468750000023,6.8916015625],[10.293066406250006,6.876757812499989],[10.413183593750006,6.877734374999989],[10.60625,7.063085937499991],[10.954199218750006,6.7765625],[11.032519531250017,6.697900390624994],[11.1064453125,6.457714843749997],[11.1533203125,6.437939453124997],[11.2373046875,6.450537109374991],[11.401757812500023,6.533935546875],[11.551660156250023,6.697265625],[11.580078125,6.888867187499997],[11.657519531250017,6.9515625],[11.861425781250006,7.11640625],[11.767382812500017,7.272265624999989],[11.809179687500006,7.345068359374991],[12.016015625000023,7.589746093749994],[12.2333984375,8.282324218749991],[12.403515625000011,8.595556640624991],[12.582714843750011,8.624121093749991],[12.651562500000011,8.667773437499989],[12.7822265625,8.81787109375],[12.806542968750023,8.886621093749994],[12.875683593750011,9.303515624999989],[12.929492187500017,9.42626953125],[13.19873046875,9.563769531249989],[13.269921875000023,10.036181640624989],[13.41455078125,10.171435546874989],[13.535351562500011,10.60507812499999],[13.699902343750011,10.873144531249991],[13.89208984375,11.140087890624997],[13.9814453125,11.211865234374997],[14.056738281250006,11.245019531249994],[14.143261718750011,11.24853515625],[14.202343750000011,11.268164062499991],[14.559765625000011,11.492285156249991],[14.619726562500006,12.150976562499991],[14.518945312500023,12.298242187499994],[14.272851562500023,12.356494140624989],[14.184863281250017,12.447216796874997],[14.06396484375,13.07851562499999],[14.244824218750011,13.07734375],[14.461718750000017,13.021777343749989],[14.847070312500023,12.502099609374994],[15.08125,11.845507812499989],[15.029882812500006,11.11367187499999],[15.132226562500023,10.648486328124989],[15.276074218750011,10.357373046874997],[15.654882812500006,10.0078125],[14.243261718750006,9.979736328125],[13.977246093750011,9.691552734374994],[14.332324218750017,9.20351562499999],[15.1162109375,8.557324218749997],[15.5498046875,7.787890624999989],[15.480078125,7.523779296874991]]]},"properties":{"name":"Cameroon","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[27.4033203125,5.109179687499989],[27.7880859375,4.644677734374994],[28.19208984375001,4.350244140624994],[28.427539062500017,4.324169921874997],[28.72705078125,4.504980468749991],[29.224902343750017,4.391894531249989],[29.469628906250023,4.61181640625],[29.676855468750006,4.5869140625],[30.194921875,3.98193359375],[30.50830078125,3.835693359375],[30.586718750000017,3.62421875],[30.757226562500023,3.62421875],[30.83857421875001,3.49072265625],[30.90644531250001,3.408935546875],[30.754003906250006,3.041796874999989],[30.8466796875,2.847021484374991],[30.728613281250006,2.455371093749989],[31.176367187500006,2.270068359374989],[31.252734375000017,2.044580078124994],[29.94287109375,0.819238281249994],[29.934472656250023,0.4990234375],[29.717675781250023,0.098339843749997],[29.576953125000017,-1.387890625000011],[29.196582031250017,-1.719921875000011],[29.13154296875001,-2.195117187500003],[28.876367187500023,-2.400292968750009],[28.893945312500023,-2.635058593750003],[29.01435546875001,-2.72021484375],[29.224414062500017,-3.053515625],[29.211816406250023,-3.833789062500003],[29.403222656250023,-4.449316406250006],[29.404199218750023,-4.496679687500006],[29.32568359375,-4.835644531250011],[29.32343750000001,-4.898828125],[29.3427734375,-4.983105468750011],[29.542382812500023,-5.499804687500003],[29.594140625000023,-5.65078125],[29.60703125,-5.72265625],[29.59638671875001,-5.775976562500006],[29.490820312500006,-5.965429687500006],[29.480078125,-6.025],[29.50625,-6.172070312500011],[29.540820312500017,-6.313867187500009],[29.590625,-6.394433593750009],[29.70966796875001,-6.616894531250011],[29.798144531250017,-6.69189453125],[29.961816406250023,-6.803125],[30.10625,-6.9150390625],[30.212695312500017,-7.037890625],[30.31318359375001,-7.203710937500006],[30.40673828125,-7.460644531250011],[30.75117187500001,-8.193652343750003],[28.89814453125001,-8.485449218750006],[28.869531250000023,-8.785839843750011],[28.400683593750017,-9.224804687500011],[28.60419921875001,-9.678808593750006],[28.6455078125,-10.550195312500009],[28.383398437500006,-11.566699218750003],[28.482519531250006,-11.812109375],[29.064355468750023,-12.348828125000011],[29.48554687500001,-12.41845703125],[29.508203125000023,-12.228222656250011],[29.79511718750001,-12.155468750000011],[29.775195312500017,-13.438085937500006],[29.55419921875,-13.248925781250009],[29.20185546875001,-13.398339843750009],[29.014257812500006,-13.368847656250011],[28.730078125,-12.925488281250011],[28.550878906250006,-12.836132812500011],[28.412890625000017,-12.51806640625],[27.573828125,-12.22705078125],[27.1591796875,-11.579199218750006],[26.824023437500017,-11.965234375],[26.025976562500006,-11.89013671875],[25.349414062500017,-11.623046875],[25.28876953125001,-11.21240234375],[24.3779296875,-11.417089843750006],[24.36572265625,-11.1298828125],[23.96650390625001,-10.871777343750011],[23.901171875000017,-10.983203125],[23.833886718750023,-11.013671875],[23.463964843750006,-10.969335937500006],[23.076269531250006,-11.087890625],[22.814746093750017,-11.080273437500011],[22.56103515625,-11.055859375000011],[22.486132812500017,-11.08671875],[22.392968750000023,-11.159472656250003],[22.31494140625,-11.198632812500009],[22.27880859375,-11.194140625],[22.226171875,-11.121972656250009],[22.203515625000023,-10.829492187500009],[22.307031250000023,-10.691308593750009],[22.19775390625,-10.040625],[21.81318359375001,-9.46875],[21.905371093750006,-8.693359375],[21.806054687500023,-7.32861328125],[21.751074218750006,-7.30546875],[21.190332031250023,-7.284960937500003],[20.910937500000017,-7.281445312500011],[20.607812500000023,-7.277734375],[20.558398437500017,-7.244433593750003],[20.53583984375001,-7.182812500000011],[20.536914062500017,-7.121777343750011],[20.598730468750006,-6.93515625],[20.59003906250001,-6.919921875],[20.482226562500017,-6.915820312500003],[20.190039062500006,-6.9462890625],[19.997460937500023,-6.976464843750009],[19.87519531250001,-6.986328125],[19.527636718750017,-7.144433593750009],[19.483789062500023,-7.279492187500011],[19.479882812500023,-7.47216796875],[19.371679687500006,-7.655078125],[19.369921875000017,-7.70654296875],[19.3408203125,-7.966601562500003],[19.142675781250006,-8.00146484375],[18.944433593750006,-8.00146484375],[18.56269531250001,-7.9359375],[18.0087890625,-8.107617187500011],[17.643359375000017,-8.090722656250009],[17.57958984375,-8.099023437500009],[16.984765625000023,-7.257421875],[16.91943359375,-6.933984375],[16.813085937500006,-6.772558593750006],[16.742968750000017,-6.618457031250003],[16.697265625,-6.164257812500011],[16.537109375,-5.9658203125],[16.431445312500017,-5.900195312500003],[16.315234375000017,-5.865625],[13.978515625,-5.857226562500003],[13.346484375000017,-5.863378906250006],[13.184375,-5.85625],[12.452929687500017,-6.00048828125],[12.213671875000017,-5.758691406250009],[12.484570312500011,-5.71875],[12.451464843750017,-5.071484375000011],[12.502734375000017,-5.036914062500003],[12.573535156250017,-4.99658203125],[12.59619140625,-4.978417968750009],[12.8296875,-4.736621093750003],[12.947460937500011,-4.6953125],[13.057324218750011,-4.651074218750011],[13.07275390625,-4.634765625],[13.08740234375,-4.601953125],[13.136621093750023,-4.604296875],[13.414941406250023,-4.83740234375],[13.659570312500023,-4.721484375],[13.717089843750017,-4.454492187500009],[13.94091796875,-4.484667968750003],[14.358300781250023,-4.299414062500006],[14.449804687500006,-4.449511718750003],[14.365429687500011,-4.585546875],[14.410742187500006,-4.83125],[14.707910156250023,-4.881738281250009],[15.990039062500017,-3.766210937500006],[16.217382812500006,-3.0302734375],[16.21533203125,-2.177832031250006],[16.54072265625001,-1.840136718750003],[16.8798828125,-1.225878906250003],[17.752832031250023,-0.549023437500011],[18.072167968750023,2.01328125],[18.49091796875001,2.924414062499991],[18.6103515625,3.478417968749994],[18.594140625000023,4.346240234374989],[19.06855468750001,4.891406249999989],[19.5009765625,5.127490234374989],[19.806542968750023,5.089306640624997],[20.226367187500017,4.829638671874989],[20.55810546875,4.462695312499989],[22.422167968750017,4.134960937499997],[22.864550781250017,4.723876953125],[23.41718750000001,4.663134765624989],[24.31982421875,4.994140625],[25.065234375000017,4.967431640624994],[25.52509765625001,5.31210937499999],[26.822070312500017,5.062402343749994],[27.071875,5.199755859374989],[27.4033203125,5.109179687499989]]]},"properties":{"name":"Dem. Rep. Congo","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[18.6103515625,3.478417968749994],[18.49091796875001,2.924414062499991],[18.072167968750023,2.01328125],[17.752832031250023,-0.549023437500011],[16.8798828125,-1.225878906250003],[16.54072265625001,-1.840136718750003],[16.21533203125,-2.177832031250006],[16.217382812500006,-3.0302734375],[15.990039062500017,-3.766210937500006],[14.707910156250023,-4.881738281250009],[14.410742187500006,-4.83125],[14.365429687500011,-4.585546875],[14.449804687500006,-4.449511718750003],[14.358300781250023,-4.299414062500006],[13.94091796875,-4.484667968750003],[13.717089843750017,-4.454492187500009],[13.659570312500023,-4.721484375],[13.414941406250023,-4.83740234375],[13.136621093750023,-4.604296875],[13.08740234375,-4.601953125],[13.07275390625,-4.634765625],[13.048046875000011,-4.619238281250006],[12.971386718750011,-4.5517578125],[12.881054687500011,-4.445117187500003],[12.84814453125,-4.428906250000011],[12.50146484375,-4.5875],[12.018359375000017,-5.004296875],[11.777539062500011,-4.565820312500009],[11.130175781250017,-3.916308593750003],[11.234472656250006,-3.690820312500009],[11.504296875000023,-3.5203125],[11.685742187500011,-3.68203125],[11.8798828125,-3.665917968750009],[11.934179687500006,-3.318554687500011],[11.715429687500006,-3.176953125000011],[11.760156250000023,-2.983105468750011],[11.537792968750011,-2.83671875],[11.60546875,-2.342578125],[12.064453125,-2.41259765625],[12.446386718750006,-2.329980468750009],[12.43212890625,-1.928906250000011],[12.590429687500006,-1.826855468750011],[12.793554687500006,-1.931835937500011],[12.991992187500017,-2.313378906250009],[13.464941406250006,-2.395410156250009],[13.733789062500023,-2.138476562500003],[13.886914062500011,-2.465429687500006],[13.993847656250011,-2.490625],[14.199804687500006,-2.354199218750011],[14.162890625000017,-2.217578125],[14.383984375000011,-1.890039062500009],[14.47412109375,-0.573437500000011],[13.860058593750011,-0.203320312500011],[13.949609375000023,0.353808593749989],[14.32421875,0.62421875],[14.429882812500011,0.901464843749991],[14.180859375000011,1.370214843749991],[13.851367187500017,1.41875],[13.21630859375,1.2484375],[13.172167968750017,1.78857421875],[13.293554687500006,2.161572265624997],[14.578906250000017,2.199121093749994],[14.902441406250006,2.012304687499991],[15.741601562500023,1.914990234374997],[16.059375,1.676220703124997],[16.183398437500017,2.270068359374989],[16.468554687500017,2.831738281249997],[16.610742187500023,3.50537109375],[17.491601562500023,3.687304687499989],[18.160937500000017,3.499804687499989],[18.474414062500017,3.622998046874997],[18.6103515625,3.478417968749994]]]},"properties":{"name":"Congo","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-71.31972656249997,11.861914062500048],[-71.95810546875,11.66640625],[-72.24848632812501,11.196435546875009],[-72.690087890625,10.835839843749994],[-72.86933593750001,10.49125976562496],[-73.00654296874998,9.789160156250006],[-73.36621093749997,9.194140625000017],[-73.05839843749999,9.259570312500031],[-72.79638671874997,9.10898437499999],[-72.66542968749994,8.62758789062498],[-72.39033203124995,8.287060546874969],[-72.47197265624996,7.524267578124991],[-72.20771484374995,7.37026367187498],[-72.00664062499993,7.032617187500023],[-71.12861328124993,6.98671875],[-70.73715820312503,7.090039062499997],[-70.12919921874999,6.95361328125],[-69.42714843749997,6.123974609374997],[-68.47177734375,6.156542968749974],[-67.85917968749999,6.289892578124963],[-67.48198242187499,6.18027343750002],[-67.47387695312503,5.929980468750003],[-67.82490234374995,5.270458984375026],[-67.85527343750002,4.506884765624989],[-67.66162109375,3.864257812499986],[-67.3111328125,3.41586914062502],[-67.85908203124998,2.793603515624994],[-67.61870117187496,2.793603515624994],[-67.21083984375,2.390136718750043],[-66.87602539062499,1.223046875000037],[-67.082275390625,1.185400390625006],[-67.11923828124998,1.703613281249986],[-67.40043945312499,2.116699218750028],[-67.93623046874998,1.748486328124969],[-68.19379882812495,1.987011718749983],[-68.25595703125,1.845507812500017],[-68.17656249999999,1.719824218749991],[-69.84858398437493,1.708740234375043],[-69.85214843750003,1.05952148437504],[-69.31181640624999,1.050488281249969],[-69.15332031249994,0.65878906250002],[-69.47211914062498,0.72993164062504],[-70.05390624999993,0.578613281250028],[-70.07050781249993,-0.13886718750004],[-69.63398437500001,-0.50927734375],[-69.40024414062498,-1.194921874999977],[-69.66904296875003,-2.667675781249997],[-69.94819335937498,-4.200585937500009],[-69.96591796875003,-4.2359375],[-70.16752929687499,-4.050195312500009],[-70.24028320312496,-3.882714843749994],[-70.2984375,-3.844238281249972],[-70.33950195312502,-3.814355468750009],[-70.73510742187497,-3.781542968749989],[-70.09584960937494,-2.658203125000014],[-70.16474609374995,-2.639843750000011],[-70.24443359375002,-2.606542968749977],[-70.29462890624995,-2.552539062499989],[-70.57587890624995,-2.418261718749989],[-70.64799804687499,-2.405761718750014],[-70.70537109374996,-2.341992187499983],[-70.91455078125003,-2.218554687499974],[-70.96855468750002,-2.206835937499989],[-71.02729492187498,-2.225781250000026],[-71.11337890625003,-2.245410156250031],[-71.19638671874998,-2.313085937499963],[-71.39697265625,-2.334082031249977],[-71.55947265624997,-2.224218749999977],[-71.75253906249995,-2.15273437499998],[-71.80273437499997,-2.166308593749989],[-71.86728515624998,-2.227734374999983],[-71.932470703125,-2.288671874999963],[-71.98427734375,-2.326562499999952],[-72.21845703125001,-2.400488281250006],[-72.94111328124998,-2.394042968750028],[-72.9896484375,-2.33974609374998],[-73.15449218749993,-2.278222656249966],[-73.19697265624995,-1.830273437500011],[-73.49628906249993,-1.69306640625004],[-73.66430664062497,-1.248828124999946],[-73.86318359374997,-1.19667968749998],[-73.92695312500001,-1.125195312499983],[-73.98681640625003,-1.098144531249986],[-74.05439453124995,-1.028613281250031],[-74.18076171875,-0.997753906249955],[-74.24638671874999,-0.970605468750023],[-74.28388671874998,-0.927832031250006],[-74.33442382812498,-0.85087890624996],[-74.41787109375,-0.580664062499977],[-74.46518554687498,-0.517675781250034],[-74.51386718749993,-0.470117187500023],[-74.555078125,-0.429882812499997],[-74.61635742187494,-0.370019531249966],[-74.691650390625,-0.335253906249989],[-74.75537109375003,-0.298632812499989],[-74.78046874999998,-0.24453125],[-74.80175781249997,-0.200097656249994],[-75.13837890624998,-0.050488281249969],[-75.28447265624999,-0.10654296875002],[-75.77666015624999,0.08925781249998],[-76.27060546874998,0.439404296874997],[-76.49462890624997,0.23544921875002],[-77.396337890625,0.393896484374963],[-77.46767578124997,0.636523437500017],[-77.702880859375,0.837841796874997],[-78.1806640625,0.968554687499974],[-78.85966796874996,1.455371093750031],[-79.02543945312499,1.623681640625037],[-78.79296874999994,1.848730468749963],[-78.576904296875,1.773779296874977],[-78.59169921875,2.356640624999969],[-78.41689453125,2.483496093749963],[-78.06665039062494,2.509130859375034],[-77.81357421875,2.716357421874974],[-77.076806640625,3.913281250000026],[-77.26352539062503,3.893212890625023],[-77.27802734374995,4.058496093750023],[-77.35820312499996,3.944726562500037],[-77.40874023437496,4.24775390625004],[-77.52070312499993,4.212792968750023],[-77.35351562499997,4.398291015624977],[-77.28632812499995,4.72172851562496],[-77.373291015625,5.323974609375],[-77.53442382812497,5.537109374999986],[-77.24926757812497,5.780175781250037],[-77.46943359374995,6.176757812500014],[-77.368798828125,6.575585937499994],[-77.90117187499999,7.229345703125048],[-77.76191406249995,7.698828125000034],[-77.53828124999995,7.56625976562502],[-77.19599609374995,7.972460937500003],[-77.47851562499994,8.498437500000037],[-77.37421874999993,8.65830078125002],[-76.85185546875002,8.09047851562498],[-76.924658203125,7.973193359374974],[-76.78657226562493,7.931591796875026],[-76.7720703125,8.310546875000043],[-76.92045898437496,8.573730468750014],[-76.27685546875,8.989111328124991],[-76.02724609374997,9.365771484374989],[-75.63935546874998,9.450439453125014],[-75.680029296875,9.729785156249989],[-75.53857421874997,10.205175781250034],[-75.708349609375,10.143408203124963],[-75.44599609374995,10.610888671874989],[-74.84458007812498,11.109716796875006],[-74.330224609375,10.996679687499991],[-74.51625976562497,10.8625],[-74.40087890625,10.76523437499999],[-74.14291992187503,11.320849609375031],[-73.31337890624997,11.295751953124991],[-72.275,11.88925781250002],[-72.13574218749994,12.188574218749977],[-71.71455078124993,12.41997070312496],[-71.26210937499997,12.335302734375034],[-71.13730468750003,12.04633789062504],[-71.31972656249997,11.861914062500048]]]},"properties":{"name":"Colombia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[43.788671875,-12.307031250000023],[43.85898437500006,-12.368261718749977],[43.66367187500006,-12.342871093749949],[43.63134765624997,-12.247070312499972],[43.788671875,-12.307031250000023]]],[[[44.476367187500074,-12.08154296875],[44.504980468750006,-12.356542968749991],[44.220117187499994,-12.171386718750014],[44.476367187500074,-12.08154296875]]],[[[43.46582031249997,-11.901269531249966],[43.226660156250006,-11.75185546874998],[43.2990234375001,-11.374511718750028],[43.39296875000005,-11.408593749999952],[43.46582031249997,-11.901269531249966]]]]},"properties":{"name":"Comoros","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-24.308251953124966,14.856298828124991],[-24.44052734374992,14.834814453124963],[-24.496875,14.980273437500017],[-24.329492187499937,15.019482421875011],[-24.308251953124966,14.856298828124991]]],[[[-23.18212890624997,15.136767578125017],[-23.210253906250017,15.32353515625006],[-23.119335937499955,15.26840820312502],[-23.18212890624997,15.136767578125017]]],[[[-23.444238281249994,15.00795898437498],[-23.5046875,14.916113281250006],[-23.70537109374999,14.96132812499998],[-23.74809570312499,15.328515625],[-23.444238281249994,15.00795898437498]]],[[[-22.917724609375,16.237255859374955],[-22.69262695312497,16.169042968750006],[-22.710107421874994,16.043359374999966],[-22.95927734374996,16.045117187499983],[-22.917724609375,16.237255859374955]]],[[[-24.08769531249999,16.62250976562501],[-24.03271484374997,16.57202148437503],[-24.243066406250023,16.599414062500017],[-24.32236328124992,16.49311523437504],[-24.398095703124966,16.61840820312497],[-24.08769531249999,16.62250976562501]]],[[[-22.888330078124966,16.659082031249994],[-22.980615234374937,16.700878906249983],[-22.93291015624999,16.84101562500004],[-22.888330078124966,16.659082031249994]]],[[[-24.88706054687495,16.81811523437497],[-25.09306640624999,16.83251953125],[-24.936474609374983,16.92211914062503],[-24.88706054687495,16.81811523437497]]],[[[-25.169824218749994,16.94648437500001],[-25.308300781249955,16.93583984374999],[-25.337109374999955,17.091015624999983],[-25.03466796875,17.176464843749983],[-24.979687499999983,17.09472656250003],[-25.169824218749994,16.94648437500001]]]]},"properties":{"name":"Cape Verde","childNum":8}},{"geometry":{"type":"Polygon","coordinates":[[[-83.6419921875,10.917236328125],[-83.346826171875,10.315380859374997],[-82.77841796874999,9.66953125],[-82.56357421874999,9.57666015625],[-82.56923828125,9.55820312499999],[-82.58652343749999,9.538818359375],[-82.64409179687499,9.505859375],[-82.801025390625,9.591796875],[-82.843994140625,9.57080078125],[-82.86015624999999,9.511474609375],[-82.88896484374999,9.481005859374989],[-82.925048828125,9.469042968749989],[-82.93984375,9.449169921874997],[-82.94033203125,9.060107421874989],[-82.88134765625,9.055859375],[-82.78305664062499,8.990283203124989],[-82.741162109375,8.951708984374989],[-82.72783203124999,8.916064453124989],[-82.91704101562499,8.740332031249991],[-82.855712890625,8.635302734374989],[-82.84477539062499,8.489355468749991],[-82.86162109374999,8.45351562499999],[-83.02734375,8.337744140624991],[-82.879345703125,8.070654296874991],[-83.12333984374999,8.353076171874989],[-83.16240234374999,8.588183593749989],[-83.4697265625,8.706835937499989],[-83.29150390625,8.406005859375],[-83.54375,8.445849609374989],[-83.73408203125,8.614453125],[-83.613720703125,8.804052734374991],[-83.73691406249999,9.150292968749994],[-84.58159179687499,9.568359375],[-84.71494140624999,9.8994140625],[-85.23564453124999,10.242089843749994],[-85.2365234375,10.107373046874997],[-84.88642578125,9.820947265624994],[-85.07705078125,9.60195312499999],[-85.31455078124999,9.8109375],[-85.62485351562499,9.902441406249991],[-85.84965820312499,10.292041015624989],[-85.667236328125,10.745019531249994],[-85.90800781249999,10.897558593749991],[-85.7443359375,11.06210937499999],[-85.5841796875,11.189453125],[-84.9091796875,10.9453125],[-84.6341796875,11.045605468749997],[-83.91928710937499,10.7353515625],[-83.71293945312499,10.785888671875],[-83.6419921875,10.917236328125]]]},"properties":{"name":"Costa Rica","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-82.56176757812503,21.571679687500023],[-82.959619140625,21.441308593750023],[-83.18378906250001,21.59345703125004],[-82.97358398437498,21.592285156250057],[-83.08251953124997,21.791406250000023],[-82.99121093750003,21.942724609375034],[-82.71455078124998,21.890283203125023],[-82.56176757812503,21.571679687500023]]],[[[-77.66899414062493,21.951953125000045],[-77.91855468749998,22.088085937499983],[-77.63369140624994,22.054003906250074],[-77.66899414062493,21.951953125000045]]],[[[-77.87939453125,22.127539062500034],[-78.04165039062502,22.201269531250034],[-77.99921874999998,22.298730468749994],[-77.87939453125,22.127539062500034]]],[[[-81.83745117187499,23.163037109374955],[-81.26235351562497,23.156835937500034],[-81.14462890624998,23.054931640625057],[-80.65014648437494,23.10307617187499],[-80.36489257812502,22.943408203125074],[-79.82026367187498,22.887011718750045],[-79.27568359374999,22.407617187499994],[-78.68647460937493,22.366845703125023],[-77.63681640624995,21.79736328125],[-77.49711914062502,21.78833007812503],[-77.58315429687497,21.889257812499977],[-77.49726562499995,21.871630859375045],[-77.14414062499995,21.643603515625017],[-77.36616210937498,21.612646484375034],[-77.25288085937498,21.483496093750006],[-77.0986328125,21.589013671875023],[-76.86743164062497,21.330419921875006],[-75.72294921874996,21.111035156249983],[-75.59580078125,20.99467773437499],[-75.72456054687493,20.71455078125004],[-74.882568359375,20.65063476562497],[-74.51313476562495,20.384570312500045],[-74.16748046874997,20.292187499999955],[-74.15371093750002,20.168554687500006],[-75.11640624999995,19.901416015625017],[-75.151611328125,20.008349609375045],[-75.29047851562495,19.893115234375017],[-76.15844726562497,19.98974609374997],[-77.715087890625,19.85546874999997],[-77.10380859374999,20.407519531250017],[-77.22958984374995,20.64375],[-78.11635742187497,20.761865234374994],[-78.49077148437493,21.05371093750003],[-78.72768554687497,21.592724609374955],[-79.35742187500003,21.58515625000001],[-80.23134765625,21.872167968750063],[-80.48544921874998,22.1234375],[-81.03564453124997,22.073583984375063],[-81.18549804687495,22.26796875000005],[-81.284375,22.109423828125074],[-81.84941406249993,22.21367187499999],[-82.077734375,22.3876953125],[-81.71035156250002,22.496679687500006],[-81.83881835937498,22.672460937500034],[-82.73803710937497,22.689257812500074],[-83.37963867187503,22.222998046875034],[-83.90073242187495,22.17011718750001],[-84.03095703124993,21.94311523437503],[-84.502587890625,21.776171875000045],[-84.50136718750002,21.930273437499977],[-84.88720703125003,21.856982421875074],[-84.32636718749998,22.074316406250034],[-84.36127929687498,22.37890625],[-84.04492187500003,22.666015625000057],[-83.25781249999997,22.967578125000017],[-81.83745117187499,23.163037109374955]]]]},"properties":{"name":"Cuba","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[-68.75107421874999,12.059765625],[-68.9951171875,12.141845703125],[-69.15888671875,12.380273437499994],[-68.75107421874999,12.059765625]]]},"properties":{"name":"Curaçao","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-81.36953124999997,19.34887695312497],[-81.10712890624995,19.305175781250057],[-81.40478515624994,19.278417968750006],[-81.36953124999997,19.34887695312497]]],[[[-79.823388671875,19.711914062500057],[-79.90620117187501,19.702539062499994],[-79.74228515625,19.757128906250017],[-79.823388671875,19.711914062500057]]]]},"properties":{"name":"Cayman Is.","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[34.004492187500006,35.065234375],[33.47578125000001,35.000341796875],[33.3837890625,35.1626953125],[32.91953125,35.087841796875],[32.71269531250002,35.171044921874994],[32.8798828125,35.180566406249994],[32.94160156250001,35.390429687499996],[33.60761718750001,35.354150390624994],[34.55605468750002,35.662060546875],[33.941992187500006,35.292041015624996],[34.004492187500006,35.065234375]]]},"properties":{"name":"N. Cyprus","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[32.71269531250002,35.171044921874994],[32.91953125,35.087841796875],[33.3837890625,35.1626953125],[33.47578125000001,35.000341796875],[34.004492187500006,35.065234375],[34.05019531250002,34.98837890625],[33.69941406250001,34.969873046874994],[33.007910156250006,34.569580078125],[32.44902343750002,34.729443359375],[32.31718750000002,34.9533203125],[32.30097656250001,35.082958984375],[32.71269531250002,35.171044921874994]]]},"properties":{"name":"Cyprus","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[14.809375,50.858984375],[14.895800781250017,50.861376953124996],[14.98291015625,50.886572265625],[14.99375,51.01435546875],[16.007226562500023,50.611621093749996],[16.2822265625,50.655615234375],[16.419726562500017,50.573632812499994],[16.210351562500023,50.423730468749994],[16.63916015625,50.1021484375],[16.989648437500023,50.2369140625],[16.88007812500001,50.427050781249996],[17.41523437500001,50.254785156249994],[17.702246093750006,50.307177734374996],[17.627050781250006,50.11640625],[17.874804687500017,49.972265625],[18.0283203125,50.03525390625],[18.562402343750023,49.879345703125],[18.83222656250001,49.510791015624996],[18.160937500000017,49.257373046874996],[18.0859375,49.06513671875],[17.75849609375001,48.888134765625],[17.135644531250023,48.841064453125],[16.953125,48.598828125],[16.543554687500006,48.796240234375],[16.057226562500006,48.754785156249994],[15.066796875000023,48.997851562499996],[14.691308593750023,48.59921875],[14.049121093750017,48.602490234375],[13.814746093750017,48.766943359375],[13.769921875000023,48.815966796874996],[13.684960937500023,48.876708984375],[13.547656250000017,48.95966796875],[13.440722656250017,48.95556640625],[13.401171875000017,48.977587890624996],[12.916699218750011,49.33046875],[12.68115234375,49.414501953125],[12.390527343750023,49.739648437499994],[12.5125,49.87744140625],[12.09921875,50.310986328125],[12.134863281250006,50.3109375],[12.1748046875,50.288378906249996],[12.231152343750011,50.244873046875],[12.27734375,50.181445312499996],[12.3056640625,50.205712890624994],[12.549023437500011,50.393408203125],[13.016406250000017,50.490380859374994],[13.18115234375,50.510498046875],[14.369042968750023,50.898730468749996],[14.319726562500023,51.03779296875],[14.545703125000017,50.993945312499996],[14.559667968750006,50.954931640625],[14.59521484375,50.918603515624994],[14.623828125000017,50.91474609375],[14.613574218750017,50.85556640625],[14.658203125,50.8326171875],[14.723339843750011,50.814697265625],[14.766503906250023,50.818310546875],[14.797460937500006,50.842333984374996],[14.809375,50.858984375]]]},"properties":{"name":"Czech Rep.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[14.1982421875,53.919042968750034],[13.92578125,53.879052734374966],[13.827734375,54.12724609374999],[14.1982421875,53.919042968750034]]],[[[13.709179687500011,54.382714843749994],[13.707324218750074,54.281152343749994],[13.190039062500034,54.32563476562501],[13.336816406249994,54.697119140625006],[13.65761718750008,54.55957031249997],[13.709179687500011,54.382714843749994]]],[[[9.739746093750028,54.82553710937498],[10.022167968750011,54.673925781250006],[9.86865234375,54.47246093749999],[10.731542968750006,54.31625976562506],[11.013378906250068,54.37915039062497],[11.008593750000074,54.18115234374997],[10.810742187500068,54.075146484374955],[10.917773437500045,53.99531250000004],[11.39960937500004,53.94462890625002],[12.111328125,54.168310546875006],[12.57539062500004,54.467382812500006],[13.028613281250017,54.411035156249994],[13.448046875000017,54.14086914062503],[13.724218750000063,54.153222656249966],[13.865527343750074,53.85336914062498],[14.258886718750006,53.729638671874994],[14.298730468750051,53.55644531249999],[14.41455078125,53.28349609374996],[14.412304687500011,53.216748046874955],[14.410937500000074,53.19902343749999],[14.368554687500051,53.105566406250034],[14.293164062500068,53.026757812499966],[14.138867187500068,52.93286132812503],[14.128613281250011,52.87822265625002],[14.253710937500017,52.78251953124996],[14.514062500000023,52.645605468750034],[14.619433593750017,52.52851562499998],[14.569726562499994,52.431103515624955],[14.554589843750023,52.35966796874996],[14.573925781250068,52.31416015625001],[14.615625,52.277636718750045],[14.679882812500068,52.25],[14.752539062500034,52.08183593750002],[14.601660156250034,51.832373046875006],[14.738671875000051,51.62714843750004],[14.7109375,51.54492187499997],[14.724707031250063,51.523876953124955],[14.90595703125004,51.463330078124955],[14.935546875000028,51.435351562500045],[14.9638671875,51.095117187499994],[14.917480468750057,51.00874023437498],[14.814257812499989,50.871630859375045],[14.809375,50.858984375000034],[14.797460937500034,50.84233398437502],[14.766503906250051,50.81831054687501],[14.72333984375004,50.81469726562497],[14.658203125,50.832617187500006],[14.613574218750045,50.85556640625006],[14.623828125000017,50.91474609375004],[14.595214843750057,50.91860351562502],[14.559667968750006,50.954931640625034],[14.545703124999989,50.99394531249999],[14.319726562500051,51.037792968749955],[14.36904296875008,50.89873046874996],[13.18115234375,50.510498046875],[13.016406250000017,50.490380859374994],[12.549023437500011,50.393408203125034],[12.3056640625,50.205712890624994],[12.27734375,50.18144531250002],[12.231152343749983,50.24487304687497],[12.174804687500057,50.28837890624996],[12.134863281250006,50.31093750000002],[12.099218750000034,50.31098632812504],[12.089843749999972,50.30175781250003],[12.089746093750051,50.2685546875],[12.294598214285761,50.13608119419641],[12.5125,49.87744140625],[12.390527343750051,49.739648437499994],[12.68115234375,49.41450195312501],[12.91669921875004,49.33046875000002],[13.401171875000074,48.97758789062499],[13.440722656250045,48.95556640625003],[13.547656250000074,48.95966796874998],[13.684960937500051,48.87670898437506],[13.769921875000051,48.81596679687502],[13.814746093750017,48.76694335937498],[13.802929687500011,48.74750976562501],[13.798828124999972,48.62167968750006],[13.785351562499983,48.58745117187502],[13.486621093750074,48.58183593750002],[13.471679687500028,48.57182617187502],[13.459863281250023,48.564550781250034],[13.409375,48.39414062500006],[13.322851562500006,48.33125],[13.215234375000023,48.301904296874994],[12.760351562500063,48.10698242187499],[12.95351562500008,47.890625],[12.897656250000068,47.721875],[13.054101562500051,47.655126953125034],[13.047949218750034,47.57915039062502],[13.031542968750074,47.50800781250001],[13.01435546875004,47.478076171875045],[12.968066406250017,47.475683593750006],[12.878906250000057,47.506445312500034],[12.809375,47.542187499999955],[12.782812500000034,47.56416015624998],[12.781152343750051,47.590429687500006],[12.796191406249989,47.60703125],[12.771386718750023,47.63940429687503],[12.685839843750074,47.66933593750002],[12.209277343750074,47.71826171875003],[12.196875,47.709082031250034],[12.203808593750011,47.64672851562503],[12.185644531250063,47.61953125],[11.041992187500028,47.39311523437496],[10.98085937499999,47.39814453125001],[10.893945312500051,47.470458984375],[10.870605468750028,47.500781250000045],[10.873046874999972,47.52021484375001],[10.741601562500023,47.52412109375001],[10.65869140625,47.547216796875006],[10.482812500000051,47.54179687499996],[10.439453125000028,47.55156249999999],[10.403906250000063,47.41699218750003],[10.369140625,47.366064453125034],[10.18300781250008,47.27880859375003],[10.200292968750063,47.36342773437505],[10.066308593750023,47.39335937500002],[10.064575892857171,47.42369419642856],[10.059863281250045,47.44907226562498],[10.034082031250023,47.47358398437501],[9.971582031249994,47.50532226562498],[9.839160156250017,47.55229492187496],[9.748925781250023,47.575537109375006],[9.524023437500034,47.52421875000002],[8.572656250000023,47.775634765625],[8.435742187500011,47.73134765625002],[8.403417968750006,47.687792968750045],[8.413281250000068,47.66269531249998],[8.451757812500006,47.65180664062498],[8.552343750000063,47.65913085937498],[8.56708984375004,47.65190429687502],[8.57050781250004,47.63779296874998],[8.55947265625008,47.62402343750003],[8.477636718750034,47.61269531250002],[8.454003906249994,47.59619140625003],[7.615625,47.59272460937504],[7.616601562500023,48.15678710937502],[8.134863281250006,48.97358398437498],[7.450585937500051,49.152197265625034],[6.735449218750006,49.16059570312498],[6.344335937500006,49.45273437499998],[6.4873046875,49.798486328124994],[6.204882812500017,49.915136718750034],[6.13818359375,49.97431640625001],[6.10976562500008,50.034375],[6.116503906250045,50.120996093749966],[6.340917968750006,50.451757812500034],[5.993945312500017,50.75043945312504],[6.048437500000034,50.90488281250006],[5.857519531250034,51.030126953125006],[6.129980468750034,51.14741210937501],[6.198828125000034,51.45],[5.948730468750057,51.80268554687501],[6.800390625,51.96738281249998],[6.724511718749994,52.080224609374966],[7.035156250000057,52.38022460937498],[6.748828125000074,52.464013671874994],[6.710742187500045,52.61787109374998],[7.033007812500045,52.65136718749997],[7.197265625000028,53.28227539062499],[7.074316406250034,53.477636718750006],[7.285253906250034,53.68134765625001],[8.00927734375,53.69072265624999],[8.108496093750063,53.46767578125002],[8.245214843750006,53.44531249999997],[8.333886718750051,53.606201171875],[8.495214843750063,53.39423828124998],[8.618945312500045,53.875],[9.20556640625,53.85595703124997],[9.783984375000074,53.554638671874955],[9.31201171875,53.859130859375],[8.92041015625,53.96533203125006],[8.906640625000023,54.26079101562502],[8.625781250000017,54.35395507812501],[8.951855468750011,54.46757812499996],[8.670312500000023,54.903417968750034],[9.739746093750028,54.82553710937498]]],[[[8.307714843750034,54.786962890625034],[8.451464843750017,55.05537109374998],[8.3798828125,54.89985351562501],[8.629589843750068,54.891748046874966],[8.307714843750034,54.786962890625034]]]]},"properties":{"name":"Germany","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[43.24599609375002,11.499804687499989],[42.92275390625002,10.999316406249989],[42.557714843750006,11.080761718749997],[41.79824218750002,10.98046875],[41.79267578125001,11.68603515625],[42.378515625,12.46640625],[42.40859375000002,12.494384765625],[42.45,12.521337890624991],[42.47939453125002,12.513623046874997],[42.703710937500006,12.380322265624997],[42.76748046875002,12.4228515625],[42.825292968750006,12.5693359375],[42.86591796875001,12.622802734375],[42.88330078125,12.621289062499997],[43.00566406250002,12.662304687499997],[43.11669921875,12.70859375],[43.353515625,12.367041015624991],[43.38027343750002,12.091259765624997],[42.64003906250002,11.560107421874989],[42.52177734375002,11.572167968749994],[42.58378906250002,11.496777343749997],[43.04277343750002,11.588476562499991],[43.24599609375002,11.499804687499989]]]},"properties":{"name":"Djibouti","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-61.281689453125,15.2490234375],[-61.37539062499999,15.227294921875],[-61.45810546874999,15.633105468750003],[-61.277246093749994,15.526708984374991],[-61.281689453125,15.2490234375]]]},"properties":{"name":"Dominica","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[11.361425781250006,54.891650390625045],[11.739550781250017,54.80742187500002],[11.765917968750074,54.67944335937506],[11.457421875000023,54.628857421874955],[11.035546875000051,54.77309570312505],[11.058593750000028,54.940576171874966],[11.361425781250006,54.891650390625045]]],[[[12.549218750000051,54.96577148437504],[12.11884765625004,54.91440429687506],[12.274023437500034,55.064111328124994],[12.549218750000051,54.96577148437504]]],[[[10.061230468750068,54.88637695312502],[9.80625,54.90600585937503],[9.78125,55.06904296875001],[10.061230468750068,54.88637695312502]]],[[[10.734082031250011,54.750732421875],[10.621679687500006,54.851416015625006],[10.95107421875008,55.15620117187501],[10.734082031250011,54.750732421875]]],[[[15.087695312500017,55.021875],[14.684179687500063,55.10224609375004],[14.765332031250068,55.296728515625034],[15.132617187500017,55.14453125000003],[15.087695312500017,55.021875]]],[[[10.645117187500006,55.60981445312498],[10.785253906250034,55.13339843749998],[10.44277343750008,55.04877929687498],[9.988769531250028,55.163183593750006],[9.860644531250045,55.515478515625034],[10.645117187500006,55.60981445312498]]],[[[12.665722656250068,55.596533203125006],[12.550878906250034,55.55625],[12.59921875,55.68022460937502],[12.665722656250068,55.596533203125006]]],[[[12.56875,55.785058593749966],[12.215039062500011,55.46650390624998],[12.413085937500028,55.28618164062502],[12.089941406250006,55.18813476562505],[12.050390625000034,54.81533203125002],[11.8623046875,54.77260742187502],[11.653808593750057,55.186914062499966],[11.286328125000068,55.20444335937498],[10.978906250000051,55.721533203125006],[11.322265625000028,55.752539062500006],[11.627734375000074,55.95688476562498],[11.819726562500023,55.69765625000002],[11.86640625000004,55.968164062499966],[12.218945312499983,56.11865234374997],[12.578710937500006,56.06406250000006],[12.56875,55.785058593749966]]],[[[11.052148437500051,57.25253906250006],[10.873828125000045,57.26225585937499],[11.174511718750011,57.322900390624994],[11.052148437500051,57.25253906250006]]],[[[9.739746093750028,54.82553710937498],[8.670312500000023,54.903417968750034],[8.61591796875004,55.41821289062503],[8.132128906250074,55.59980468749998],[8.16396484375008,56.60688476562498],[8.671679687500045,56.49565429687496],[8.88808593750008,56.73505859374998],[9.06708984375004,56.79384765625005],[9.196386718750006,56.70166015625],[9.2548828125,57.01171875000003],[8.992773437499977,57.01611328125003],[8.771972656250028,56.72529296875004],[8.468359375,56.66455078125],[8.284082031250023,56.85234374999999],[8.618554687500051,57.11127929687498],[9.43359375,57.17431640625003],[9.96230468750008,57.580957031249994],[10.609960937500034,57.73691406249998],[10.282714843750057,56.620507812499994],[10.926171875000051,56.44326171875002],[10.753417968750028,56.24199218749999],[10.31875,56.212890625],[10.18300781250008,55.86518554687504],[9.903710937500023,55.84282226562502],[10.02363281250004,55.76142578125004],[9.591113281250017,55.49321289062502],[9.670996093750063,55.26640624999999],[9.453710937500006,55.03955078125006],[9.732324218750023,54.96801757812506],[9.739746093750028,54.82553710937498]]]]},"properties":{"name":"Denmark","childNum":10,"cp":[10.2768332,56.1773879]}},{"geometry":{"type":"Polygon","coordinates":[[[-71.647216796875,19.195947265624994],[-71.746484375,19.285839843749997],[-71.71147460937499,19.486572265625],[-71.75742187499999,19.688183593749997],[-71.779248046875,19.718164062499994],[-71.6673828125,19.8486328125],[-70.95415039062499,19.913964843749994],[-70.19384765625,19.63803710937499],[-69.95683593749999,19.671875],[-69.739404296875,19.29921875],[-69.23247070312499,19.27182617187499],[-69.60595703125,19.206494140624997],[-69.62363281249999,19.117822265624994],[-68.684765625,18.90478515625],[-68.33916015624999,18.611523437499997],[-68.68740234375,18.21494140624999],[-68.9349609375,18.408007812500003],[-69.27451171874999,18.43984375],[-69.770654296875,18.443554687499997],[-70.479931640625,18.21728515625],[-70.644677734375,18.336230468750003],[-71.02783203125,18.273193359375],[-71.43896484375,17.63559570312499],[-71.63173828125,17.773632812499997],[-71.768310546875,18.03916015624999],[-71.76376953124999,18.20395507812499],[-71.737255859375,18.270800781250003],[-71.7619140625,18.34130859375],[-71.87255859375,18.416210937499997],[-71.940380859375,18.512597656249994],[-72.000390625,18.597900390625],[-71.98686523437499,18.6103515625],[-71.86650390624999,18.614160156249994],[-71.74321289062499,18.73291015625],[-71.72705078125,18.80322265625],[-71.733642578125,18.856396484374997],[-71.80712890625,18.987011718749997],[-71.647216796875,19.195947265624994]]]},"properties":{"name":"Dominican Rep.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[8.207617187500006,36.518945312499994],[8.348730468750006,36.36796875],[8.318066406250011,35.654931640624994],[8.31640625,35.403125],[8.35986328125,35.299609375],[8.394238281250011,35.203857421875],[8.312109375,35.084619140624994],[8.27685546875,34.9794921875],[8.24560546875,34.73408203125],[7.513867187500011,34.080517578125],[7.534375,33.717919921874994],[7.877246093750017,33.172119140625],[8.1125,33.055322265624994],[8.333398437500023,32.543603515624994],[9.044042968750006,32.07236328125],[9.160253906250006,31.621337890625],[9.224023437500023,31.373681640624994],[9.51875,30.229394531249994],[9.310253906250011,30.115234375],[9.805273437500006,29.176953125],[9.916015625,27.785693359374996],[9.74755859375,27.330859375],[9.883203125000023,26.630810546874997],[9.491406250000011,26.333740234375],[9.4482421875,26.067138671875],[10.000683593750011,25.332080078125003],[10.255859375,24.591015625],[10.395898437500023,24.485595703125],[10.686132812500006,24.55136718749999],[11.507617187500017,24.314355468749994],[11.967871093750006,23.517871093750003],[7.481738281250017,20.873095703125003],[5.836621093750011,19.479150390624994],[4.227636718750006,19.142773437499997],[3.3564453125,18.986621093750003],[3.119726562500006,19.103173828124994],[3.255859375,19.4109375],[3.130273437500023,19.85019531249999],[1.685449218750023,20.378369140624997],[1.610644531250017,20.555566406249994],[1.165722656250011,20.817431640625003],[1.1455078125,21.102246093749997],[-1.947900390624994,23.124804687500003],[-4.822607421874977,24.99560546875],[-8.683349609375,27.2859375],[-8.683349609375,27.656445312499997],[-8.683349609375,27.900390625],[-8.659912109375,28.718603515625],[-7.485742187499994,29.392236328124994],[-7.427685546874983,29.425],[-7.142431640624977,29.619580078124997],[-6.855566406249977,29.601611328124996],[-6.755126953125,29.583837890625],[-6.635351562499977,29.568798828124997],[-6.597753906249977,29.578955078125],[-6.520556640624989,29.659863281249997],[-6.479736328125,29.820361328124996],[-6.00429687499999,29.83125],[-5.448779296874989,29.956933593749994],[-5.293652343749983,30.058642578124996],[-5.180126953124983,30.166162109374994],[-4.96826171875,30.465380859374996],[-4.778515624999983,30.552392578124994],[-4.529150390624977,30.625537109374996],[-4.322851562499977,30.698876953124994],[-4.148779296874977,30.8095703125],[-3.626904296874983,31.000927734374997],[-3.833398437499994,31.197802734374996],[-3.837109374999983,31.512353515624994],[-3.768164062499977,31.68955078125],[-3.700244140624989,31.700097656249994],[-3.604589843749977,31.686767578125],[-3.439794921874977,31.704541015624997],[-3.017382812499989,31.834277343749996],[-2.988232421874983,31.87421875],[-2.930859374999983,32.042529296874996],[-2.863427734374994,32.07470703125],[-1.275341796874983,32.089013671874994],[-1.16259765625,32.399169921875],[-1.111035156249983,32.552294921874996],[-1.188232421875,32.60849609375],[-1.29638671875,32.675683593749994],[-1.352148437499977,32.703369140625],[-1.45,32.784814453124994],[-1.510009765625,32.87763671875],[-1.550732421874983,33.073583984375],[-1.67919921875,33.318652343749996],[-1.795605468749983,34.751904296875],[-2.131787109374983,34.970849609374994],[-2.190771484374977,35.02978515625],[-2.219628906249994,35.10419921875],[-1.673632812499989,35.18310546875],[-0.426123046874977,35.8615234375],[-0.048242187499994,35.8328125],[0.312207031250011,36.162353515625],[0.9716796875,36.4439453125],[2.593359375,36.60068359375],[2.972851562500011,36.784472656249996],[3.779003906250011,36.89619140625],[4.758105468750017,36.896337890625],[5.29541015625,36.648242187499996],[6.486523437500011,37.085742187499996],[6.927539062500017,36.91943359375],[7.238476562500011,36.968505859375],[7.204296875000011,37.0923828125],[7.910449218750017,36.856347656249994],[8.576562500000023,36.93720703125],[8.601269531250011,36.833935546875],[8.207617187500006,36.518945312499994]]]},"properties":{"name":"Algeria","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-80.131591796875,-2.973144531249957],[-80.27294921875003,-2.995898437499974],[-80.22368164062502,-2.753125],[-80.08076171874995,-2.668847656249966],[-79.90903320312495,-2.725585937499972],[-80.131591796875,-2.973144531249957]]],[[[-90.42392578125,-1.339941406250034],[-90.51953124999994,-1.299121093749974],[-90.47719726562494,-1.22099609374996],[-90.42392578125,-1.339941406250034]]],[[[-89.41889648437498,-0.911035156249966],[-89.60859374999998,-0.888574218750009],[-89.28784179687503,-0.689843750000023],[-89.41889648437498,-0.911035156249966]]],[[[-90.33486328125,-0.771582031249977],[-90.54213867187502,-0.676464843749955],[-90.53168945312493,-0.581445312499966],[-90.26938476562498,-0.48466796874996],[-90.19272460937498,-0.658789062500006],[-90.33486328125,-0.771582031249977]]],[[[-91.42597656249995,-0.460839843749994],[-91.61074218749994,-0.44394531250002],[-91.64667968749998,-0.284472656249946],[-91.46015625000001,-0.255664062500031],[-91.42597656249995,-0.460839843749994]]],[[[-90.57392578124993,-0.333984375],[-90.8677734375,-0.271386718750037],[-90.78037109374998,-0.160449218749989],[-90.57392578124993,-0.333984375]]],[[[-91.27216796874998,0.025146484374986],[-90.799658203125,-0.752050781249991],[-90.90551757812497,-0.94052734375002],[-91.13105468750001,-1.019628906249977],[-91.41904296874998,-0.996679687500006],[-91.49541015624999,-0.860937499999977],[-91.120947265625,-0.559082031250028],[-91.36918945312493,-0.287207031249977],[-91.42885742187502,-0.023388671874955],[-91.59682617187497,0.002099609374994],[-91.36137695312496,0.125830078124977],[-91.27216796874998,0.025146484374986]]],[[[-78.90922851562502,1.252783203124977],[-78.99169921875003,1.293212890625043],[-78.89980468749997,1.359765625],[-78.90922851562502,1.252783203124977]]],[[[-75.28447265624999,-0.10654296875002],[-75.62626953124999,-0.122851562499974],[-75.63203125000001,-0.157617187500037],[-75.56059570312502,-0.200097656249994],[-75.49106445312498,-0.24833984374996],[-75.42470703124997,-0.408886718749983],[-75.259375,-0.59013671874996],[-75.24960937499998,-0.951855468750026],[-75.34819335937499,-0.966796874999957],[-75.38012695312503,-0.94023437499996],[-75.40805664062503,-0.92431640625],[-75.42041015624997,-0.962207031250003],[-75.570556640625,-1.53125],[-76.08979492187501,-2.133105468749974],[-76.6791015625,-2.562597656249991],[-77.860595703125,-2.981640625000011],[-78.240380859375,-3.472558593750009],[-78.345361328125,-3.397363281249966],[-78.64799804687499,-4.248144531250006],[-78.68603515625003,-4.562402343749994],[-78.86152343749998,-4.665039062499943],[-78.90761718749997,-4.714453124999977],[-78.92578125,-4.770703124999983],[-78.91420898437497,-4.818652343749974],[-78.919189453125,-4.858398437499986],[-78.97539062499999,-4.873242187499997],[-78.99526367187497,-4.908007812499974],[-79.03330078124998,-4.96914062499999],[-79.07626953125003,-4.990625],[-79.18666992187497,-4.958203124999983],[-79.26811523437493,-4.957617187499949],[-79.33095703124997,-4.92783203125002],[-79.39941406249997,-4.840039062499983],[-79.45576171874998,-4.766210937499949],[-79.50190429687495,-4.670605468750011],[-79.51616210937493,-4.539160156249963],[-79.57768554687496,-4.50058593750002],[-79.638525390625,-4.454882812500031],[-79.71098632812502,-4.467578124999946],[-79.79726562500002,-4.47636718749996],[-79.8451171875,-4.445898437499977],[-79.962890625,-4.390332031250026],[-80.06352539062499,-4.327539062500023],[-80.13955078125002,-4.296093750000011],[-80.19746093750001,-4.311035156249943],[-80.293359375,-4.416796875],[-80.38349609374998,-4.46367187499996],[-80.424169921875,-4.461425781250028],[-80.47856445312499,-4.430078125000037],[-80.48847656249995,-4.393652343749991],[-80.44384765625003,-4.335839843750023],[-80.35288085937495,-4.208496093750014],[-80.453759765625,-4.205175781249963],[-80.48847656249995,-4.165527343749972],[-80.49345703124999,-4.119140625000014],[-80.510009765625,-4.06953125000004],[-80.49013671874994,-4.010058593750003],[-80.43720703125001,-3.978613281249991],[-80.30327148437499,-4.005078124999969],[-80.26689453124993,-3.948828124999963],[-80.23051757812499,-3.924023437499969],[-80.19414062499996,-3.905859375],[-80.24375,-3.576757812500006],[-80.32465820312498,-3.387890625],[-79.96333007812501,-3.15771484375],[-79.72988281249997,-2.579101562499972],[-79.842138671875,-2.0673828125],[-79.92558593749996,-2.548535156249969],[-80.03017578124994,-2.556738281249949],[-80.00664062499993,-2.353808593750003],[-80.28471679687502,-2.706738281249955],[-80.93217773437493,-2.269140624999977],[-80.76059570312498,-1.934570312500028],[-80.90239257812499,-1.078906249999974],[-80.55390624999998,-0.847949218749989],[-80.45546875,-0.585449218749986],[-80.282373046875,-0.620507812500023],[-80.48227539062503,-0.368261718749963],[-80.046142578125,0.155371093750048],[-80.08828124999997,0.78476562500002],[-78.89965820312503,1.20625],[-78.85966796874996,1.455371093750031],[-78.1806640625,0.968554687499974],[-77.702880859375,0.837841796874997],[-77.46767578124997,0.636523437500017],[-77.396337890625,0.393896484374963],[-76.49462890624997,0.23544921875002],[-76.27060546874998,0.439404296874997],[-75.77666015624999,0.08925781249998],[-75.28447265624999,-0.10654296875002]]]]},"properties":{"name":"Ecuador","childNum":9}},{"geometry":{"type":"Polygon","coordinates":[[[34.24531250000001,31.208300781249996],[34.904296875,29.47734375],[34.736425781250006,29.27060546875],[34.39970703125002,28.01601562499999],[34.22011718750002,27.764306640624994],[33.76025390625,28.04765625],[33.24775390625001,28.567724609375],[32.56572265625002,29.973974609375],[32.35976562500002,29.630664062499996],[32.89824218750002,28.565234375],[33.54707031250001,27.898144531249997],[33.5498046875,27.607373046874997],[33.84931640625001,27.184912109375],[33.959082031250006,26.6490234375],[35.19414062500002,24.475146484375003],[35.78388671875001,23.937792968750003],[35.54082031250002,23.920654296875],[35.50439453125,23.779296875],[35.697851562500006,22.946191406249994],[36.22968750000001,22.628808593749994],[36.87138671875002,21.996728515624994],[31.434472656250023,21.995849609375],[31.486132812500017,22.14780273437499],[31.400292968750023,22.202441406250003],[31.260644531250023,22.00229492187499],[31.092675781250023,21.994873046875],[28.036425781250017,21.995361328125],[24.980273437500017,21.995849609375],[24.980273437500017,25.5888671875],[24.980273437500017,29.181884765625],[24.703222656250006,30.201074218749994],[24.96142578125,30.678515625],[24.85273437500001,31.334814453125],[25.150488281250006,31.654980468749997],[25.382226562500023,31.51279296875],[25.89326171875001,31.620898437499996],[27.248046875,31.377880859374997],[27.5400390625,31.212695312499996],[28.51484375000001,31.050439453124994],[29.072070312500017,30.830273437499997],[29.929785156250006,31.227490234374997],[30.22265625,31.2583984375],[30.395117187500006,31.4576171875],[30.92353515625001,31.566845703124997],[30.56298828125,31.4169921875],[31.001757812500017,31.462792968749994],[31.082910156250023,31.603320312499996],[31.5244140625,31.458251953125],[31.888964843750017,31.54140625],[32.13603515625002,31.341064453125],[31.8921875,31.482470703124996],[31.77109375,31.292578125],[32.10175781250001,31.092822265624996],[32.281835937500006,31.200878906249997],[32.21621093750002,31.29375],[32.60332031250002,31.06875],[33.66650390625,31.130419921874996],[34.19814453125002,31.322607421875],[34.24531250000001,31.208300781249996]]]},"properties":{"name":"Egypt","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[40.141210937500006,15.696142578125034],[40.399023437500006,15.579882812500045],[39.975195312500006,15.612451171875023],[39.94746093750004,15.696142578125034],[40.07050781250004,15.676611328125034],[39.93994140625003,15.744531250000023],[39.9567382812501,15.889404296875057],[40.141210937500006,15.696142578125034]]],[[[40.07646484375002,16.082421875000023],[40.11005859375004,15.985742187500051],[39.99609375000003,16.04267578125001],[40.07646484375002,16.082421875000023]]],[[[40.938574218750006,13.983105468749997],[40.82011718750002,14.111669921874991],[40.22148437500002,14.431152343749972],[39.531835937500006,14.53671875],[39.198046875000074,14.479394531250037],[39.1354492187501,14.581884765625034],[39.07421874999997,14.628222656249974],[39.02382812499999,14.628222656249974],[38.99570312500006,14.586865234374983],[38.81201171875003,14.482324218750009],[38.50439453124997,14.42441406250002],[38.43144531250002,14.428613281249994],[38.221484375000074,14.649658203124986],[38.002539062500006,14.737109375000045],[37.94345703125006,14.810546875],[37.884179687499994,14.852294921874972],[37.82031250000003,14.708496093749986],[37.70839843750005,14.45722656250004],[37.64843750000003,14.32255859375006],[37.571191406249994,14.149072265624966],[37.546777343749994,14.143847656249974],[37.507226562499994,14.156396484375037],[37.257226562499994,14.453759765625051],[37.024511718750006,14.271972656250057],[36.81191406250005,14.315039062500034],[36.67910156250005,14.307568359375026],[36.542382812499994,14.25820312499999],[36.52431640625005,14.256835937499986],[36.492285156250006,14.544335937500023],[36.470800781250006,14.736474609375009],[36.448144531249994,14.940087890625009],[36.42675781249997,15.132080078125043],[36.566015625,15.362109375],[36.9137695312501,16.296191406250045],[36.887792968750006,16.624658203124994],[36.9787109375001,16.800585937500045],[36.9757812500001,16.866552734375006],[36.99521484375006,17.020556640625017],[37.00898437500004,17.058886718750017],[37.06152343749997,17.061279296875057],[37.16953125000006,17.04140625],[37.41103515625005,17.061718749999955],[37.452929687500074,17.108691406250017],[37.51015625,17.28813476562499],[37.54746093750006,17.32412109375005],[37.78242187500004,17.458007812500057],[38.253515625,17.584765625000017],[38.26728515625004,17.616699218750057],[38.28984375000002,17.637011718750017],[38.34736328125004,17.68359375],[38.37373046875004,17.717333984375045],[38.42246093750006,17.823925781249983],[38.60947265625006,18.00507812500004],[39.03447265625002,17.085546875000034],[39.298925781250006,15.921093750000011],[39.78554687499999,15.124853515624991],[39.86376953124997,15.470312500000034],[40.20410156250003,15.014111328124983],[41.17646484375004,14.620312500000054],[41.65820312499997,13.983056640624994],[42.24511718749997,13.587646484374986],[42.39931640625005,13.212597656249969],[42.522851562499994,13.221484375],[42.796191406250074,12.864257812500057],[42.96953125000002,12.808349609375028],[42.99902343750003,12.899511718750048],[43.08291015625005,12.824609374999966],[43.11669921874997,12.708593749999963],[43.00566406250002,12.66230468750004],[42.88330078124997,12.621289062500026],[42.86591796875004,12.622802734374986],[42.82529296875006,12.569335937500014],[42.767480468749994,12.422851562500014],[42.70371093750006,12.380322265625054],[42.479394531249994,12.513623046875026],[42.45,12.521337890625006],[42.40859375,12.494384765625014],[42.37851562500006,12.46640625],[42.28994140625005,12.570214843750009],[42.225,12.661962890624963],[42.13427734374997,12.771435546874969],[41.95214843749997,12.88232421875],[41.85957031250004,13.025878906250028],[41.76503906250005,13.183935546874991],[41.362890625,13.499804687500031],[40.938574218750006,13.983105468749997]]]]},"properties":{"name":"Eritrea","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-17.887939453125,27.809570312500057],[-17.984765625000023,27.646386718750023],[-18.160546874999937,27.76147460937503],[-17.887939453125,27.809570312500057]]],[[[-15.400585937499955,28.147363281250023],[-15.436767578124972,27.810693359375023],[-15.71030273437492,27.784082031250023],[-15.809472656249966,27.994482421874977],[-15.682763671874994,28.15405273437497],[-15.400585937499955,28.147363281250023]]],[[[-17.184667968749977,28.02197265624997],[-17.324902343749955,28.11767578125003],[-17.25859375,28.203173828125045],[-17.103759765624943,28.111132812500017],[-17.184667968749977,28.02197265624997]]],[[[-16.33447265624997,28.37993164062499],[-16.41821289062497,28.15141601562496],[-16.65800781249999,28.007177734374977],[-16.905322265625017,28.33959960937503],[-16.12363281249992,28.57597656249996],[-16.33447265624997,28.37993164062499]]],[[[-14.196777343749943,28.169287109375063],[-14.332617187500006,28.056005859374977],[-14.49179687499992,28.100927734374977],[-14.231982421875017,28.21582031250003],[-14.003369140624983,28.706689453125023],[-13.85722656249996,28.73803710937503],[-13.928027343749989,28.25346679687499],[-14.196777343749943,28.169287109375063]]],[[[-17.83427734374999,28.49321289062496],[-18.00078124999999,28.758251953124955],[-17.928808593749977,28.844580078125063],[-17.7265625,28.724462890625006],[-17.83427734374999,28.49321289062496]]],[[[-13.715966796874966,28.911230468750034],[-13.85991210937496,28.869091796874983],[-13.823632812499966,29.013330078124966],[-13.463574218749955,29.237207031250023],[-13.477929687499966,29.00659179687503],[-13.715966796874966,28.911230468750034]]],[[[1.593945312500068,38.672070312499955],[1.40576171875,38.670996093750006],[1.436328125000017,38.768212890624994],[1.593945312500068,38.672070312499955]]],[[[1.445214843750051,38.91870117187503],[1.223339843750068,38.90385742187502],[1.3486328125,39.080810546875],[1.564453125,39.12104492187504],[1.623632812499977,39.03881835937497],[1.445214843750051,38.91870117187503]]],[[[3.145312500000017,39.79008789062499],[3.461816406250023,39.69775390625003],[3.072851562500006,39.30126953124997],[2.799804687500057,39.38505859374999],[2.700585937500023,39.54213867187502],[2.49951171875,39.47788085937498],[2.37001953125008,39.57207031249999],[3.15869140625,39.97050781249999],[3.145312500000017,39.79008789062499]]],[[[4.293652343750011,39.84184570312499],[3.8671875,39.958740234375],[3.853417968750051,40.06303710937502],[4.22578125000004,40.032373046874966],[4.293652343750011,39.84184570312499]]],[[[-1.794042968749949,43.407324218750006],[-1.410693359374932,43.240087890625034],[-1.460839843749937,43.05175781250006],[-1.300048828124943,43.10097656250002],[-0.586425781249943,42.798974609374966],[0.631640625000045,42.689599609374994],[0.696875,42.84511718750005],[1.428320312499977,42.59589843749998],[1.414843750000074,42.54838867187499],[1.448828124999977,42.43745117187504],[1.534082031250051,42.44169921875002],[1.7060546875,42.50332031250005],[1.859765625000051,42.457080078125045],[1.927929687500068,42.42631835937499],[2.032714843750028,42.353515625],[3.21142578125,42.43115234375],[3.248046875,41.94423828125002],[3.0048828125,41.76743164062506],[2.082617187500063,41.287402343750045],[1.032910156250068,41.06206054687496],[0.714648437500074,40.822851562500006],[0.891113281250057,40.72236328125004],[0.59609375000008,40.614501953125],[-0.327001953124949,39.519873046875006],[-0.204931640624949,39.062597656250034],[0.20156250000008,38.75917968750002],[-0.520800781249989,38.317285156249966],[-0.814648437500011,37.76992187500002],[-0.721582031249966,37.63105468749998],[-1.327539062499937,37.561132812500034],[-1.640966796874949,37.38696289062497],[-2.111523437499983,36.77666015624999],[-4.366845703124994,36.71811523437506],[-4.67412109374996,36.506445312500006],[-5.171484374999949,36.423779296874955],[-5.3609375,36.134912109374994],[-5.62548828125,36.02592773437499],[-6.040673828124937,36.18842773437498],[-6.38413085937492,36.63701171874996],[-6.216796875000028,36.91357421875],[-6.396191406249983,36.831640625],[-6.863769531250028,37.27890625],[-7.406152343749937,37.17944335937497],[-7.44394531249992,37.72827148437497],[-6.957568359374932,38.18789062499999],[-7.106396484374983,38.181005859375006],[-7.343017578124943,38.45742187500002],[-6.997949218749994,39.05644531250002],[-7.53569335937496,39.66157226562501],[-7.117675781249972,39.681689453125045],[-6.975390624999932,39.79838867187502],[-6.896093749999949,40.02182617187506],[-7.032617187499966,40.16791992187498],[-6.8101562499999,40.343115234375034],[-6.928466796874972,41.009130859375006],[-6.2125,41.53203125],[-6.542187499999955,41.672509765624994],[-6.61826171874992,41.9423828125],[-7.147119140625023,41.98115234374998],[-7.40361328124996,41.833691406249955],[-8.152490234374937,41.81196289062498],[-8.266064453124983,42.13740234375001],[-8.777148437500017,41.941064453124994],[-8.887207031249943,42.105273437500045],[-8.690917968749943,42.274169921875],[-8.815820312499966,42.285253906250034],[-8.730029296874989,42.411718750000034],[-8.8115234375,42.64033203124998],[-9.033105468750023,42.593847656250006],[-8.927197265624926,42.79858398437497],[-9.235205078124977,42.97690429687498],[-9.178076171874977,43.17402343749998],[-8.248925781249937,43.43940429687498],[-8.256738281249937,43.57988281249999],[-8.004687499999932,43.69438476562496],[-7.503613281249983,43.73994140625001],[-7.060986328124955,43.55395507812503],[-5.846679687499943,43.645068359375045],[-4.52304687499992,43.41572265625004],[-3.604638671874966,43.51948242187504],[-3.045605468749926,43.37158203125],[-2.875048828125017,43.454443359375006],[-2.337109374999926,43.32802734375002],[-1.794042968749949,43.407324218750006]]]]},"properties":{"name":"Spain","childNum":12,"cp":[-2.9366964,40.3438963]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[22.61738281250004,58.62124023437502],[23.323242187500057,58.45083007812502],[22.730273437500045,58.23066406250001],[22.371679687499977,58.217138671875006],[21.996875,57.93134765624998],[22.187695312500068,58.15434570312502],[21.88212890624999,58.262353515624994],[21.862304687500057,58.497167968750034],[22.61738281250004,58.62124023437502]]],[[[23.343554687500017,58.550341796875045],[23.10908203125004,58.65922851562502],[23.332812500000045,58.648583984374994],[23.343554687500017,58.550341796875045]]],[[[22.923730468750023,58.826904296875],[22.54218750000001,58.68999023437499],[22.411035156250023,58.863378906250034],[22.05625,58.94360351562506],[22.6494140625,59.08710937499998],[22.90986328125004,58.99121093749997],[22.923730468750023,58.826904296875]]],[[[28.0125,59.484277343749966],[28.15107421875004,59.374414062499966],[27.434179687500006,58.787255859374994],[27.502441406250057,58.221337890624994],[27.778515625000068,57.87070312500006],[27.542089843750063,57.799414062500006],[27.4,57.66679687499999],[27.35195312500005,57.528125],[26.96601562500001,57.60913085937506],[26.532617187499994,57.53100585937503],[26.29804687500001,57.60107421875],[25.66015625,57.920166015625],[25.27265625000001,58.009375],[25.11103515625004,58.06342773437498],[24.45888671875005,57.907861328124994],[24.3625,57.86616210937501],[24.322558593750074,57.87060546875003],[24.529101562500045,58.35424804687497],[24.114843750000034,58.26611328125006],[23.767578125000057,58.36083984374997],[23.50927734375003,58.65854492187498],[23.680761718750063,58.787158203125074],[23.43203125,58.920654296875],[23.494433593750017,59.19565429687498],[24.083398437500023,59.29189453125005],[24.38037109375003,59.47265625],[25.44375,59.52114257812502],[25.50927734374997,59.63901367187506],[26.974707031250006,59.450634765624955],[28.0125,59.484277343749966]]]]},"properties":{"name":"Estonia","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[38.43144531250002,14.428613281249994],[38.50439453125,14.424414062499991],[38.81201171875,14.482324218749994],[38.995703125,14.586865234374997],[39.02382812500002,14.628222656250003],[39.07421875,14.628222656250003],[39.13544921875001,14.581884765624991],[39.19804687500002,14.479394531249994],[39.531835937500006,14.53671875],[40.22148437500002,14.43115234375],[40.82011718750002,14.111669921874991],[40.938574218750006,13.983105468749997],[41.362890625,13.499804687500003],[41.76503906250002,13.183935546874991],[41.85957031250001,13.02587890625],[41.9521484375,12.88232421875],[42.13427734375,12.771435546874997],[42.225,12.661962890624991],[42.28994140625002,12.570214843749994],[42.378515625,12.46640625],[41.79267578125001,11.68603515625],[41.79824218750002,10.98046875],[42.557714843750006,11.080761718749997],[42.92275390625002,10.999316406249989],[42.65644531250001,10.6],[42.84160156250002,10.203076171874997],[43.181640625,9.879980468749991],[43.482519531250006,9.379492187499991],[43.98378906250002,9.008837890624989],[46.97822265625001,7.9970703125],[47.97822265625001,7.9970703125],[44.940527343750006,4.912011718749994],[43.988867187500006,4.950537109374991],[43.58349609375,4.85498046875],[43.12568359375001,4.644482421874997],[42.85664062500001,4.32421875],[42.02412109375001,4.137939453125],[41.91533203125002,4.031298828124989],[41.88398437500001,3.977734375],[41.73769531250002,3.979052734374989],[41.48193359375,3.96328125],[41.37246093750002,3.946191406249994],[41.22089843750001,3.943554687499997],[41.02080078125002,4.057470703124991],[40.765234375,4.27304687499999],[39.84218750000002,3.851464843749994],[39.79033203125002,3.754248046874991],[39.65751953125002,3.577832031249997],[39.49443359375002,3.456103515624989],[38.608007812500006,3.60009765625],[38.45156250000002,3.604833984374991],[38.22529296875001,3.618994140624991],[38.08613281250001,3.64882812499999],[37.15458984375002,4.254541015624994],[36.90556640625002,4.411474609374991],[36.02197265625,4.468115234374991],[35.76308593750002,4.808007812499994],[35.75615234375002,4.950488281249989],[35.779296875,5.105566406249991],[35.80029296875,5.156933593749997],[35.74501953125002,5.343994140625],[35.325292968750006,5.364892578124994],[35.2646484375,5.412060546874997],[35.26386718750001,5.457910156249994],[35.26835937500002,5.492285156249991],[34.98359375000001,5.858300781249994],[34.71064453125001,6.660302734374994],[34.06425781250002,7.225732421874994],[33.902441406250006,7.509521484375],[32.99892578125002,7.899511718749991],[33.28105468750002,8.437255859375],[33.95332031250001,8.443505859374994],[34.07275390625,8.545263671874991],[34.078125,9.461523437499991],[34.31123046875001,10.190869140624997],[34.34394531250001,10.658642578124997],[34.571875,10.880175781249989],[34.77128906250002,10.746191406249991],[34.93144531250002,10.864794921874989],[35.1123046875,11.816552734374994],[35.67021484375002,12.623730468749997],[36.12519531250001,12.75703125],[36.52431640625002,14.2568359375],[36.54238281250002,14.25820312499999],[36.67910156250002,14.307568359374997],[36.81191406250002,14.315039062499991],[37.024511718750006,14.27197265625],[37.25722656250002,14.453759765624994],[37.50722656250002,14.156396484374994],[37.54677734375002,14.143847656250003],[37.57119140625002,14.149072265624994],[37.6484375,14.322558593750003],[37.70839843750002,14.457226562499997],[37.8203125,14.70849609375],[37.88417968750002,14.852294921875],[37.943457031250006,14.810546875],[38.002539062500006,14.737109375],[38.22148437500002,14.649658203125],[38.43144531250002,14.428613281249994]]]},"properties":{"name":"Ethiopia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[22.17509765624999,60.370751953124994],[22.41552734375003,60.30336914062505],[22.36054687500004,60.165576171875045],[22.07714843750003,60.286328124999955],[22.17509765624999,60.370751953124994]]],[[[21.450878906250068,60.529589843750045],[21.3,60.47978515625002],[21.224707031250006,60.62060546875003],[21.450878906250068,60.529589843750045]]],[[[21.2177734375,63.241308593750034],[21.415625,63.19736328125006],[21.25341796875,63.152001953124966],[21.08388671875008,63.277539062499955],[21.2177734375,63.241308593750034]]],[[[24.848242187500034,64.99101562499999],[24.576562500000023,65.04287109375],[24.970605468750023,65.05532226562502],[24.848242187500034,64.99101562499999]]],[[[28.96582031250003,69.02197265625],[28.414062500000057,68.90415039062506],[28.77285156250005,68.84003906249995],[28.470703125000057,68.48837890625],[28.685156250000034,68.189794921875],[29.343847656250006,68.06186523437506],[29.988085937500017,67.66826171874999],[29.066210937500045,66.89174804687497],[30.102734375000097,65.72626953125004],[29.715917968750063,65.62456054687502],[29.608007812500006,65.248681640625],[29.826953125000017,65.14506835937502],[29.60419921875004,64.968408203125],[30.072851562500063,64.76503906250005],[30.04189453125005,64.44335937499997],[30.513769531250006,64.2],[30.50390625000003,64.02060546875],[29.991503906250074,63.73515625000002],[31.180859375000097,63.208300781250074],[31.533984375000017,62.885400390624994],[31.18671875000004,62.48139648437504],[29.69013671875004,61.54609375000001],[27.797656250000074,60.53613281250003],[26.53466796874997,60.412890625000074],[26.56933593750003,60.62456054687502],[26.377734375000074,60.42407226562503],[25.955957031250023,60.474218750000034],[26.03583984375004,60.34150390625001],[25.75800781250004,60.26752929687504],[25.65644531250004,60.33320312499998],[24.44560546874999,60.021289062500045],[23.46357421875004,59.986230468749994],[23.021289062500074,59.81601562500006],[23.19843750000001,60.02182617187498],[22.911718750000063,60.20971679687497],[22.749804687500017,60.057275390624994],[22.462695312500045,60.029199218749966],[22.5849609375,60.380566406249955],[21.436035156250057,60.596386718749955],[21.605957031250057,61.59155273437503],[21.255957031250063,61.98964843750005],[21.143847656250045,62.73999023437506],[21.650976562500063,63.039306640625],[21.545117187499983,63.204296874999955],[22.31972656250005,63.310449218749994],[22.532324218750034,63.647851562499994],[23.598925781250074,64.04091796874997],[24.557910156250045,64.801025390625],[25.288183593750063,64.8603515625],[25.34785156250004,65.47924804687497],[24.674902343750006,65.67070312499999],[24.628027343750034,65.85917968750002],[24.15546875000004,65.80527343750006],[23.700292968750034,66.25263671874998],[23.988574218750045,66.81054687500003],[23.64150390625005,67.12939453124997],[23.733593750000068,67.42290039062499],[23.454882812500045,67.46025390625007],[23.63886718750004,67.95439453125002],[22.854101562500034,68.36733398437502],[21.99746093750005,68.52060546874998],[20.622167968750006,69.036865234375],[21.065722656250017,69.04174804687503],[21.06611328125001,69.21411132812497],[21.59375,69.273583984375],[22.410937500000074,68.719873046875],[23.324023437500017,68.64897460937502],[23.85400390625,68.80590820312503],[24.94140625000003,68.59326171875006],[25.748339843750017,68.99013671875],[26.07246093750004,69.69155273437497],[26.525390625000057,69.91503906250003],[27.127539062500063,69.90649414062497],[27.747851562500045,70.06484375],[29.14160156250003,69.67143554687505],[29.33339843750005,69.47299804687503],[28.846289062500006,69.17690429687502],[28.96582031250003,69.02197265625]]]]},"properties":{"name":"Finland","childNum":5}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[178.48789062500018,-18.97412109375],[177.95869140624998,-19.121582031250014],[178.33427734375013,-18.93447265625001],[178.48789062500018,-18.97412109375]]],[[[179.34931640625015,-18.10234375000003],[179.25351562500018,-18.030566406249974],[179.30644531250013,-17.944042968750026],[179.34931640625015,-18.10234375000003]]],[[[178.28017578124994,-17.37197265625001],[178.59160156249996,-17.651464843750006],[178.66767578125004,-18.080859375],[177.95546875000005,-18.264062500000023],[177.32138671875,-18.077539062500037],[177.26396484375007,-17.86347656250004],[177.5044921875,-17.539550781250043],[177.81796875000012,-17.38847656249999],[178.28017578124994,-17.37197265625001]]],[[[180,-16.96308593750001],[179.89697265625003,-16.96406250000004],[180,-16.785742187500034],[180,-16.96308593750001]]],[[[-179.97490234374996,-16.92480468750003],[-180,-16.96298828124999],[-180,-16.907812500000034],[-180,-16.82431640624999],[-180,-16.78554687499999],[-179.86098632812502,-16.68828124999999],[-179.97490234374996,-16.92480468750003]]],[[[-179.92944335937503,-16.502832031250037],[-179.999951171875,-16.540039062499986],[-179.900927734375,-16.431542968749994],[-179.92944335937503,-16.502832031250037]]],[[[179.99921875000004,-16.168554687499977],[179.56416015625004,-16.636914062499997],[179.56816406249996,-16.747460937499966],[179.93037109375004,-16.51943359375005],[179.9279296875001,-16.74443359374996],[179.41933593750005,-16.80654296875001],[179.20234375000004,-16.71269531249999],[179.00683593750003,-16.90019531249999],[178.70664062500018,-16.97617187500002],[178.4974609375,-16.78789062500003],[178.58359375000012,-16.621875],[178.80507812499994,-16.631445312500034],[179.55175781250003,-16.249902343750023],[180,-16.15292968749999],[179.99921875000004,-16.168554687499977]]]]},"properties":{"name":"Fiji","childNum":7}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-61.01875,-51.7857421875],[-60.87597656250003,-51.79423828125004],[-60.94755859374996,-51.94628906250002],[-61.14501953125003,-51.83945312500001],[-61.01875,-51.7857421875]]],[[[-60.28623046874995,-51.461914062500014],[-59.38759765625002,-51.35996093750003],[-59.26806640625,-51.42753906250003],[-59.92138671874997,-51.969531250000045],[-60.246337890625,-51.98642578125003],[-60.35346679687498,-52.13994140625004],[-60.686376953125034,-52.18837890624996],[-60.96142578125003,-52.05732421874999],[-60.23847656249998,-51.771972656250036],[-60.58251953125,-51.71269531250004],[-60.24516601562493,-51.638867187500004],[-60.56845703124998,-51.357812499999945],[-60.28623046874995,-51.461914062500014]]],[[[-60.11171875000002,-51.39589843749998],[-60.275341796874955,-51.28056640625002],[-60.06982421875,-51.307910156249996],[-60.11171875000002,-51.39589843749998]]],[[[-58.85019531249995,-51.26992187499998],[-58.42583007812502,-51.32421875000003],[-58.508935546874994,-51.48359375],[-58.271582031250034,-51.57470703124999],[-58.25922851562501,-51.417089843750034],[-57.976513671874955,-51.384375],[-57.80849609375002,-51.51796875],[-57.96044921874997,-51.58320312500003],[-57.79179687499999,-51.63613281249998],[-58.68349609375002,-51.93623046875001],[-58.65278320312498,-52.09921875],[-59.19584960937496,-52.01767578125],[-59.06801757812502,-52.17304687500003],[-59.341503906249955,-52.19599609375],[-59.395654296874966,-52.308007812499994],[-59.64873046875002,-52.134375],[-59.57080078124994,-51.92539062500003],[-59.05952148437498,-51.685449218749994],[-59.09663085937498,-51.49140624999998],[-58.85019531249995,-51.26992187499998]]]]},"properties":{"name":"Falkland Is.","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[55.79736328125003,-21.33935546875003],[55.36269531250005,-21.27363281250004],[55.23281250000005,-21.05839843749999],[55.311328125000074,-20.90410156249999],[55.661914062500074,-20.90625],[55.8390625000001,-21.13857421874998],[55.79736328125003,-21.33935546875003]]],[[[45.180273437500006,-12.97675781250004],[45.069433593750006,-12.895605468750034],[45.09238281250006,-12.653027343749997],[45.22314453124997,-12.752148437500026],[45.180273437500006,-12.97675781250004]]],[[[-51.65253906249998,4.061279296874972],[-52.327880859375,3.18173828125002],[-52.58300781250003,2.528906249999977],[-52.90346679687502,2.211523437499977],[-53.76777343749998,2.354833984375048],[-54.13007812499998,2.121044921875026],[-54.43310546875,2.207519531250057],[-54.51508789062498,2.245458984374963],[-54.55048828125001,2.293066406249991],[-54.59194335937502,2.313769531250031],[-54.61625976562499,2.326757812500006],[-54.60473632812497,2.335791015624991],[-54.56840820312502,2.342578125000031],[-54.53593749999999,2.343310546875003],[-54.48554687500001,2.416113281250006],[-54.402001953124966,2.46152343750002],[-54.25673828125002,2.713720703124977],[-54.19550781249998,2.817871093750057],[-54.17070312499999,2.993603515624969],[-54.203125,3.138183593750028],[-54.18803710937499,3.178759765625031],[-54.063183593749955,3.353320312499989],[-54.00957031249993,3.448535156250017],[-54.03422851562499,3.62939453125],[-54.350732421874994,4.054101562500023],[-54.47968749999998,4.836523437499991],[-53.91992187499997,5.768994140624983],[-52.899316406249966,5.425048828124986],[-52.29052734375003,4.942187500000031],[-52.324609374999966,4.770898437500037],[-52.21997070312494,4.862792968750014],[-52.05810546875003,4.717382812499963],[-52.00292968749997,4.352294921875014],[-51.82753906250002,4.635693359375026],[-51.65253906249998,4.061279296874972]]],[[[-60.826269531250006,14.494482421874991],[-61.063720703125,14.467089843750017],[-61.01132812499998,14.601904296875034],[-61.21333007812501,14.848583984375011],[-60.927148437499966,14.755175781249989],[-60.826269531250006,14.494482421874991]]],[[[-61.23046875000003,15.889941406250074],[-61.310742187499955,15.894677734374966],[-61.25,16.006298828124983],[-61.23046875000003,15.889941406250074]]],[[[-61.58955078125001,16.006933593750006],[-61.759423828124966,16.062060546875045],[-61.74804687499997,16.355273437500017],[-61.55234374999998,16.270898437499966],[-61.58955078125001,16.006933593750006]]],[[[-61.3271484375,16.230419921874983],[-61.522167968749955,16.22802734375003],[-61.47119140624994,16.506640625000045],[-61.17260742187497,16.25610351562497],[-61.3271484375,16.230419921874983]]],[[[9.480371093750023,42.80541992187503],[9.550683593750051,42.12973632812506],[9.186132812500034,41.38491210937502],[8.80751953125008,41.58837890625],[8.886816406249977,41.70068359375003],[8.621875,41.93071289062502],[8.700976562500045,42.09560546875002],[8.565625,42.35771484374996],[8.81484375000008,42.60791015625003],[9.313378906250023,42.71318359374999],[9.363183593750051,43.01738281249996],[9.480371093750023,42.80541992187503]]],[[[-1.17832031249992,45.904052734375],[-1.213574218750011,45.81660156250004],[-1.388671874999972,46.05039062500006],[-1.17832031249992,45.904052734375]]],[[[5.789746093749983,49.53828125000001],[5.823437500000011,49.50507812499998],[5.9013671875,49.48974609374997],[5.928906250000011,49.47753906249997],[5.959472656250028,49.45463867187502],[6.01142578125004,49.44545898437502],[6.074121093750023,49.45463867187502],[6.119921875000017,49.485205078125034],[6.181054687500051,49.498925781249966],[6.344335937500006,49.45273437499998],[6.735449218750006,49.16059570312498],[7.450585937500051,49.152197265625034],[8.134863281250006,48.97358398437498],[7.616601562500023,48.15678710937502],[7.615625,47.59272460937504],[7.343164062499994,47.43310546875003],[7.136035156249989,47.489843750000034],[6.968359375000034,47.453222656250034],[6.900390625000028,47.39423828125001],[7.000585937500034,47.339453125000034],[7.000585937500034,47.32250976562506],[6.978515625000057,47.30205078124996],[6.95205078125008,47.26718750000006],[6.820703125000051,47.163183593750006],[6.688085937500034,47.05825195312505],[6.66689453125008,47.026513671874966],[6.624804687500017,47.00434570312498],[6.45625,46.948339843750034],[6.438646763392874,46.774418247767855],[6.129687500000045,46.56699218750006],[6.118111049107182,46.447459542410726],[6.095898437500011,46.279394531250006],[5.970019531250045,46.214697265625034],[5.971484375000074,46.151220703125006],[6.006640625000045,46.14233398437506],[6.086621093750068,46.14702148437502],[6.19941406250004,46.19306640624998],[6.234667968750045,46.332617187500006],[6.321875,46.39370117187502],[6.428906250000011,46.43051757812506],[6.578222656250034,46.437353515625034],[6.758105468750017,46.41577148437497],[6.772070312500006,46.16513671874998],[6.897265625000017,46.05175781249997],[6.953710937500063,46.017138671875045],[7.00390625,45.95883789062506],[7.021093750000034,45.92578124999997],[6.790917968750023,45.740869140624966],[7.146386718750051,45.381738281249994],[7.07832031250004,45.23994140624998],[6.634765625000028,45.06816406249996],[6.99267578125,44.82729492187502],[6.900195312499989,44.33574218749996],[7.318554687500068,44.13798828125002],[7.637207031250057,44.16484375],[7.4931640625,43.767138671875045],[6.570214843750023,43.199072265625034],[6.115917968750011,43.07236328124998],[5.406542968750074,43.228515625],[5.05976562500004,43.44453125000004],[4.712109375000011,43.373291015625],[3.910839843750011,43.563085937500034],[3.258886718750063,43.193212890625006],[3.051757812500057,42.915136718750006],[3.21142578125,42.43115234375],[2.032714843750028,42.353515625],[1.927929687500068,42.42631835937499],[1.859765625000051,42.457080078125045],[1.7060546875,42.50332031250005],[1.709863281250051,42.604443359374955],[1.568164062500045,42.63500976562506],[1.501367187500023,42.64272460937502],[1.428320312499977,42.59589843749998],[0.696875,42.84511718750005],[0.631640625000045,42.689599609374994],[-0.586425781249943,42.798974609374966],[-1.300048828124943,43.10097656250002],[-1.460839843749937,43.05175781250006],[-1.410693359374932,43.240087890625034],[-1.794042968749949,43.407324218750006],[-1.484863281249943,43.56376953124999],[-1.245507812499937,44.55986328124999],[-1.07695312499996,44.68984375],[-1.152880859374989,44.764013671875006],[-1.245214843749977,44.66669921874998],[-1.081005859374983,45.532421874999955],[-0.548486328124966,45.00058593750006],[-0.790771484375028,45.46801757812497],[-1.195996093749983,45.714453125],[-1.03173828125,45.741064453125006],[-1.14628906249996,46.311376953125034],[-1.786523437499937,46.51484375000001],[-2.059375,46.81030273437497],[-2.01889648437492,47.03764648437502],[-2.197070312499989,47.16293945312506],[-2.027587890625028,47.27358398437502],[-1.742529296874949,47.21596679687502],[-1.97539062499996,47.31069335937505],[-2.503125,47.31206054687496],[-2.427685546874983,47.47089843749998],[-2.770312499999989,47.513867187499955],[-2.787207031249949,47.62553710937496],[-4.312109374999949,47.82290039062502],[-4.678808593749949,48.03950195312501],[-4.32944335937492,48.169970703125045],[-4.577148437499943,48.2900390625],[-4.241406249999926,48.30366210937501],[-4.719384765624966,48.363134765625034],[-4.7625,48.45024414062502],[-4.531201171874983,48.61997070312506],[-3.231445312499972,48.84082031250003],[-2.692333984374983,48.53681640624998],[-2.446191406249937,48.64829101562506],[-2.00371093749996,48.58208007812499],[-1.905712890624955,48.69711914062506],[-1.376464843749972,48.65258789062503],[-1.565478515624932,48.805517578125034],[-1.583105468749977,49.20239257812506],[-1.856445312499972,49.68378906249998],[-1.258642578124949,49.68017578125006],[-1.138525390624977,49.38789062500001],[-0.163476562499937,49.296777343749994],[0.41689453125008,49.448388671874994],[0.129394531250028,49.508447265624966],[0.186718749999983,49.703027343749994],[1.245507812500051,49.99824218750001],[1.5927734375,50.25219726562506],[1.672265625000023,50.885009765625],[2.52490234375,51.097119140624955],[2.759375,50.750634765624994],[3.10683593750008,50.779443359374994],[3.27333984375008,50.53154296875002],[3.595410156250068,50.47734374999999],[3.689355468750023,50.30605468750002],[4.174609375000017,50.24648437500005],[4.149316406250023,49.971582031249994],[4.545019531250063,49.96025390624999],[4.818652343750045,50.153173828125034],[4.867578125000051,49.78813476562502],[5.50732421875,49.51088867187502],[5.789746093749983,49.53828125000001]]]]},"properties":{"name":"France","childNum":10,"cp":[2.8719426,46.8222422]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-7.186865234374949,62.139306640624966],[-7.116796874999977,62.046826171874955],[-7.379101562499926,62.07480468749998],[-7.186865234374949,62.139306640624966]]],[[[-6.631054687499955,62.22788085937498],[-6.655810546874932,62.09360351562498],[-6.840527343749983,62.119287109374994],[-6.725195312499949,61.95146484374999],[-7.17216796874996,62.28559570312501],[-6.631054687499955,62.22788085937498]]],[[[-6.406054687499932,62.258642578125034],[-6.544140624999926,62.20561523437499],[-6.554589843749994,62.35566406250001],[-6.406054687499932,62.258642578125034]]]]},"properties":{"name":"Faeroe Is.","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[158.31484375,6.813671875],[158.18339843750002,6.801269531250057],[158.13476562499997,6.944824218749986],[158.29462890625004,6.951074218750023],[158.31484375,6.813671875]]],[[[138.14267578125006,9.50068359375004],[138.06708984375004,9.419042968750006],[138.18583984375007,9.593310546874989],[138.14267578125006,9.50068359375004]]]]},"properties":{"name":"Micronesia","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[13.293554687500006,2.161572265624997],[13.172167968750017,1.78857421875],[13.21630859375,1.2484375],[13.851367187500017,1.41875],[14.180859375000011,1.370214843749991],[14.429882812500011,0.901464843749991],[14.32421875,0.62421875],[13.949609375000023,0.353808593749989],[13.860058593750011,-0.203320312500011],[14.47412109375,-0.573437500000011],[14.383984375000011,-1.890039062500009],[14.162890625000017,-2.217578125],[14.199804687500006,-2.354199218750011],[13.993847656250011,-2.490625],[13.886914062500011,-2.465429687500006],[13.733789062500023,-2.138476562500003],[13.464941406250006,-2.395410156250009],[12.991992187500017,-2.313378906250009],[12.793554687500006,-1.931835937500011],[12.590429687500006,-1.826855468750011],[12.43212890625,-1.928906250000011],[12.446386718750006,-2.329980468750009],[12.064453125,-2.41259765625],[11.60546875,-2.342578125],[11.537792968750011,-2.83671875],[11.760156250000023,-2.983105468750011],[11.715429687500006,-3.176953125000011],[11.934179687500006,-3.318554687500011],[11.8798828125,-3.665917968750009],[11.685742187500011,-3.68203125],[11.504296875000023,-3.5203125],[11.234472656250006,-3.690820312500009],[11.130175781250017,-3.916308593750003],[10.34765625,-3.013085937500009],[9.722070312500023,-2.467578125],[10.06201171875,-2.549902343750006],[9.624609375,-2.367089843750009],[9.298925781250006,-1.903027343750011],[9.483203125000017,-1.894628906250006],[9.265625,-1.825097656250009],[9.036328125000011,-1.308886718750003],[9.31884765625,-1.632031250000011],[9.501074218750006,-1.55517578125],[9.295800781250023,-1.515234375],[9.3466796875,-1.325],[9.203808593750011,-1.382421875],[9.064648437500011,-1.29833984375],[8.703125,-0.591015625000011],[8.946386718750006,-0.688769531250003],[9.296679687500017,-0.351269531250011],[9.354882812500023,0.343603515624991],[9.468164062500023,0.15976562499999],[9.796777343750023,0.044238281249989],[10.00146484375,0.194970703124994],[9.546484375,0.295947265624989],[9.324804687500006,0.552099609374991],[9.495312500000011,0.664843749999989],[9.617968750000017,0.576513671874991],[9.5908203125,1.031982421875],[9.636132812500023,1.046679687499989],[9.676464843750011,1.07470703125],[9.70458984375,1.079980468749994],[9.760546875000017,1.07470703125],[9.788671875,1.025683593749989],[9.803906250000011,0.998730468749997],[9.90673828125,0.960107421874994],[11.335351562500023,0.999707031249997],[11.332324218750017,1.528369140624989],[11.328710937500006,2.167431640624997],[11.348437500000017,2.299707031249994],[11.558984375000023,2.302197265624997],[13.2203125,2.256445312499991],[13.293554687500006,2.161572265624997]]]},"properties":{"name":"Gabon","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-1.065576171874966,50.69023437500002],[-1.25146484375,50.58881835937498],[-1.563427734374955,50.666113281250006],[-1.31279296874996,50.77348632812502],[-1.065576171874966,50.69023437500002]]],[[[-4.196777343749972,53.321435546874966],[-4.04936523437496,53.30576171874998],[-4.373046875,53.13417968750002],[-4.56787109375,53.386474609375],[-4.315087890625023,53.41723632812503],[-4.196777343749972,53.321435546874966]]],[[[-6.218017578125,54.08872070312506],[-6.649804687499937,54.05864257812496],[-7.007714843749937,54.40668945312501],[-7.324511718750017,54.13344726562502],[-7.606542968750006,54.14384765625002],[-8.118261718749977,54.41425781250004],[-7.75439453125,54.59492187499998],[-7.910595703124955,54.698339843750006],[-7.55039062499992,54.767968749999966],[-7.218652343749937,55.09199218749998],[-6.475048828124955,55.24101562499999],[-6.035791015624994,55.14453125000003],[-5.71684570312496,54.817480468750034],[-5.878613281249955,54.64130859375001],[-5.582519531249943,54.66342773437498],[-5.470410156249926,54.500195312499955],[-5.671093749999955,54.54975585937501],[-5.60678710937492,54.272558593750034],[-6.019042968749972,54.05126953124997],[-6.218017578125,54.08872070312506]]],[[[-5.105419921875011,55.448828125000034],[-5.331494140624955,55.481054687500034],[-5.318115234375,55.709179687499955],[-5.105419921875011,55.448828125000034]]],[[[-6.128906249999972,55.93056640625002],[-6.055322265624994,55.69531249999997],[-6.305078124999966,55.60693359375],[-6.286425781249989,55.77250976562499],[-6.491357421874994,55.697314453125045],[-6.462841796874955,55.808251953124994],[-6.128906249999972,55.93056640625002]]],[[[-5.970068359374949,55.814550781250034],[-6.071972656250011,55.893115234375045],[-5.72514648437496,56.118554687499966],[-5.970068359374949,55.814550781250034]]],[[[-5.77788085937496,56.344335937500034],[-6.313427734374983,56.29365234375001],[-6.138867187499955,56.490625],[-6.286328124999983,56.61186523437502],[-6.102734374999955,56.645654296874966],[-5.760839843749949,56.49067382812501],[-5.77788085937496,56.344335937500034]]],[[[-7.249853515624977,57.115332031250006],[-7.410546874999937,57.38110351562506],[-7.26713867187496,57.37177734375001],[-7.249853515624977,57.115332031250006]]],[[[-6.144726562499983,57.50498046874998],[-6.135546874999989,57.31425781250002],[-5.672460937499977,57.252685546875],[-5.94907226562492,57.045166015625],[-6.034375,57.20122070312499],[-6.322705078124926,57.20249023437498],[-6.761132812499994,57.4423828125],[-6.305957031249989,57.67197265624998],[-6.144726562499983,57.50498046874998]]],[[[-7.205566406250028,57.682958984375006],[-7.182617187499972,57.53330078125006],[-7.514746093749949,57.60195312500002],[-7.205566406250028,57.682958984375006]]],[[[-6.198681640624983,58.36328125000003],[-6.554589843749994,58.092871093750006],[-6.425195312499937,58.02128906249999],[-6.983105468749983,57.75],[-7.083447265624926,57.81376953124999],[-6.856835937499937,57.92353515624998],[-7.085253906249932,58.18217773437499],[-6.726464843749937,58.189404296874955],[-6.776464843750006,58.30151367187497],[-6.237451171874966,58.50283203125005],[-6.198681640624983,58.36328125000003]]],[[[-3.109667968749932,58.515478515625034],[-3.212353515624983,58.32124023437501],[-3.99003906249996,57.95903320312502],[-4.035595703124926,57.85200195312498],[-3.857128906249983,57.81855468750001],[-4.134521484375,57.57773437500006],[-3.402783203124955,57.708251953125],[-2.074072265624977,57.70239257812506],[-1.780664062499994,57.474023437499966],[-2.592675781249937,56.56157226562499],[-3.309960937499966,56.36347656250004],[-2.885156249999937,56.397509765625045],[-2.674267578124955,56.25341796875],[-3.362255859374955,56.02763671875002],[-3.789062499999972,56.09521484375],[-3.048730468749937,55.951953125000045],[-2.599316406249955,56.02729492187501],[-2.14707031249992,55.90297851562502],[-1.655371093749949,55.57036132812502],[-1.232421874999943,54.703710937500034],[-0.084375,54.118066406249994],[-0.20556640625,54.021728515625],[0.115332031250006,53.609277343749994],[-0.270019531249972,53.73676757812504],[-0.659912109375,53.72402343750002],[-0.293701171875,53.69233398437504],[0.270996093750028,53.33549804687499],[0.355761718750045,53.15996093750002],[0.0458984375,52.90561523437498],[0.279785156250028,52.80869140625006],[0.55878906250004,52.96694335937505],[1.05556640625008,52.95898437500003],[1.656738281249972,52.753710937500045],[1.74658203125,52.46899414062503],[1.59140625,52.11977539062502],[1.232421875000057,51.97124023437496],[1.188476562500057,51.803369140624966],[0.752246093750017,51.729589843750034],[0.890917968750017,51.571435546874966],[0.42451171875004,51.465625],[1.414941406250023,51.36328125],[1.397558593750034,51.18203125000002],[0.960156250000011,50.92587890624998],[0.299707031249994,50.775976562500006],[-0.785253906249949,50.76542968749999],[-1.416455078124955,50.896875],[-1.334472656249943,50.82080078124997],[-1.516748046874937,50.747460937499966],[-2.031054687499932,50.72539062499999],[-2.035839843749926,50.603076171875045],[-2.999414062499937,50.71660156249999],[-3.40458984374996,50.63242187499998],[-3.679785156250006,50.239941406249955],[-4.194580078124972,50.39331054687503],[-4.727978515624926,50.29047851562504],[-5.11850585937492,50.038330078125],[-5.622119140624932,50.05068359375002],[-4.188183593749926,51.18852539062502],[-3.135986328124972,51.20502929687501],[-2.433056640624926,51.74072265625],[-3.293115234374994,51.390429687500045],[-3.890771484374994,51.591650390625006],[-4.234570312499955,51.56909179687503],[-4.091015624999926,51.65991210937506],[-4.38627929687496,51.74106445312506],[-4.902294921874926,51.626269531250045],[-5.168359374999937,51.74072265625],[-5.183349609374972,51.94965820312501],[-4.217724609374983,52.277441406250006],[-3.980322265624949,52.54174804687503],[-4.101464843750023,52.915478515624955],[-4.683056640624926,52.80615234374997],[-4.268554687499943,53.14453125],[-3.427734374999972,53.34067382812498],[-3.097558593749937,53.260302734375045],[-3.064746093749932,53.426855468750034],[-2.74951171875,53.310205078124994],[-3.064599609374994,53.512841796874966],[-2.84648437499996,54.135302734375045],[-3.165966796874955,54.12792968750006],[-3.56938476562496,54.46757812499996],[-3.464599609374943,54.77309570312505],[-3.036230468749977,54.95307617187501],[-3.550439453124937,54.94741210937502],[-3.957910156249994,54.780957031249955],[-4.818066406249983,54.84614257812501],[-4.911230468749949,54.68945312500006],[-5.032324218749949,54.76137695312505],[-5.172705078124949,54.98588867187496],[-4.676757812499972,55.50131835937498],[-4.871679687499977,55.87392578125005],[-4.58408203124992,55.93867187500001],[-4.844091796874949,56.05117187499999],[-4.80029296875,56.158349609374994],[-5.228222656249983,55.886328125],[-5.084326171874977,56.197460937499955],[-5.41044921874996,55.995361328125],[-5.55644531249996,55.389599609374955],[-5.730664062499926,55.33413085937502],[-5.504492187499949,55.80239257812502],[-5.609570312499955,56.055273437500034],[-5.188378906249937,56.75805664062503],[-5.652441406249977,56.531982421875],[-6.133691406249966,56.706689453124966],[-5.730615234374994,56.853076171875045],[-5.86142578124992,56.902685546875006],[-5.561914062499994,57.23271484375002],[-5.794921874999972,57.37880859375002],[-5.581787109374972,57.546777343749966],[-5.744921874999989,57.668310546875034],[-5.608349609374955,57.88134765625],[-5.157226562499972,57.88134765625],[-5.413183593750006,58.06972656250002],[-5.338281250000023,58.23872070312498],[-5.008300781250028,58.262646484374955],[-5.016748046874966,58.566552734374966],[-4.433251953124937,58.51284179687505],[-3.25913085937492,58.65],[-3.053076171874949,58.63481445312502],[-3.109667968749932,58.515478515625034]]],[[[-3.057421874999932,59.02963867187498],[-2.793017578124989,58.906933593749955],[-3.331640624999949,58.97124023437499],[-3.31035156249996,59.13081054687498],[-3.057421874999932,59.02963867187498]]],[[[-1.30810546875,60.5375],[-1.052441406249955,60.44448242187502],[-1.299462890624994,59.87866210937503],[-1.290917968749937,60.153466796874966],[-1.663769531249983,60.282519531250074],[-1.374609374999949,60.33291015625002],[-1.571777343749972,60.494433593750074],[-1.363964843750011,60.60957031249998],[-1.30810546875,60.5375]]]]},"properties":{"name":"United Kingdom","childNum":14,"cp":[-2.5830348,54.4598409]}},{"geometry":{"type":"Polygon","coordinates":[[[46.30546875000002,41.507714843749994],[46.61894531250002,41.34375],[46.67255859375001,41.28681640625],[46.66240234375002,41.245507812499994],[46.62636718750002,41.15966796875],[46.534375,41.08857421875],[46.43095703125002,41.077050781249994],[46.086523437500006,41.183837890625],[45.28095703125001,41.449560546875],[45.21718750000002,41.423193359375],[45.00136718750002,41.290966796875],[44.97587890625002,41.277490234374994],[44.81132812500002,41.259375],[44.077246093750006,41.182519531249994],[43.43339843750002,41.155517578125],[43.20546875000002,41.199169921875],[43.15283203125,41.23642578125],[43.14101562500002,41.26484375],[43.17128906250002,41.287939453125],[43.149023437500006,41.30712890625],[43.05712890625,41.352832031249996],[42.90673828125,41.466845703124996],[42.82167968750002,41.4923828125],[42.78789062500002,41.563720703125],[42.75410156250001,41.57890625],[42.68242187500002,41.585742187499996],[42.60683593750002,41.57880859375],[42.590429687500006,41.57070312499999],[42.5673828125,41.55927734375],[42.46640625,41.43984375],[41.92578125,41.495654296874996],[41.82353515625002,41.432373046875],[41.779394531250006,41.44052734375],[41.701757812500006,41.471582031249994],[41.57656250000002,41.497314453125],[41.51005859375002,41.517480468749994],[41.701757812500006,41.705419921875],[41.76298828125002,41.970019531249996],[41.48876953125,42.659326171874994],[40.83662109375001,43.0634765625],[40.46210937500001,43.145703125],[39.97832031250002,43.419824218749994],[40.02373046875002,43.48486328125],[40.084570312500006,43.553125],[40.648046875,43.53388671875],[40.941992187500006,43.41806640625],[41.083105468750006,43.374462890625],[41.35820312500002,43.333398437499994],[41.46074218750002,43.276318359375],[41.58056640625,43.21923828125],[42.76064453125002,43.169580078124994],[42.99160156250002,43.09150390625],[43.00019531250001,43.049658203125],[43.08916015625002,42.9890625],[43.55781250000001,42.844482421875],[43.623046875,42.80771484375],[43.78261718750002,42.747021484375],[43.79873046875002,42.727783203125],[43.79541015625,42.702978515625],[43.74990234375002,42.657519531249996],[43.738378906250006,42.616992187499996],[43.759863281250006,42.59384765625],[43.82597656250002,42.571533203125],[43.95742187500002,42.566552734374994],[44.00468750000002,42.595605468749994],[44.10273437500001,42.616357421874994],[44.32949218750002,42.70351562499999],[44.505859375,42.7486328125],[44.77109375,42.616796875],[44.85048828125002,42.746826171875],[44.87099609375002,42.756396484374996],[44.943359375,42.730273437499996],[45.07158203125002,42.694140625],[45.160253906250006,42.675],[45.34375,42.52978515625],[45.56289062500002,42.5357421875],[45.70527343750001,42.498095703124996],[45.7275390625,42.475048828125],[45.63427734375,42.234716796875],[45.63857421875002,42.205078125],[46.21269531250002,41.989892578124994],[46.42988281250001,41.890966796875],[46.18427734375001,41.7021484375],[46.30546875000002,41.507714843749994]]]},"properties":{"name":"Georgia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-0.068603515625,11.115625],[0.009423828125023,11.02099609375],[-0.08632812499999,10.673046875],[0.380859375,10.291845703124991],[0.264550781250023,9.644726562499997],[0.342578125000017,9.604150390624994],[0.2333984375,9.463525390624994],[0.525683593750017,9.398486328124989],[0.48876953125,8.851464843749994],[0.37255859375,8.75927734375],[0.686328125000017,8.354882812499994],[0.5,7.546875],[0.634765625,7.353662109374994],[0.525585937500011,6.850927734374991],[0.736914062500006,6.452587890624997],[1.187207031250011,6.089404296874989],[0.94970703125,5.810253906249997],[0.259667968750023,5.75732421875],[-2.001855468749994,4.762451171875],[-3.114013671875,5.088671874999989],[-2.815673828125,5.153027343749997],[-2.754980468749977,5.432519531249994],[-2.793652343749983,5.60009765625],[-2.998291015625,5.71132812499999],[-3.227148437499977,6.749121093749991],[-2.959082031249977,7.454541015624997],[-2.789746093749983,7.931933593749989],[-2.668847656249994,8.022216796875],[-2.613378906249977,8.046679687499989],[-2.600976562499994,8.082226562499997],[-2.619970703124977,8.12109375],[-2.61171875,8.147558593749991],[-2.538281249999983,8.171630859375],[-2.505859375,8.208740234375],[-2.600390624999989,8.800439453124994],[-2.649218749999989,8.956591796874989],[-2.689892578124983,9.025097656249997],[-2.746923828124977,9.045117187499997],[-2.705761718749983,9.351367187499989],[-2.695849609374989,9.481347656249994],[-2.706201171874994,9.533935546875],[-2.765966796874977,9.658056640624991],[-2.780517578125,9.745849609375],[-2.791162109374994,10.432421874999989],[-2.914892578124977,10.592333984374989],[-2.829931640624977,10.998388671874991],[-1.04248046875,11.010058593749989],[-0.627148437499983,10.927392578124994],[-0.299462890624994,11.166894531249994],[-0.068603515625,11.115625]]]},"properties":{"name":"Ghana","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-11.389404296875,12.404394531249991],[-11.502197265625,12.198632812499994],[-11.30517578125,12.015429687499989],[-10.933203124999977,12.205175781249991],[-10.709228515625,11.898730468749989],[-10.274853515624983,12.212646484375],[-9.754003906249977,12.029931640624994],[-9.358105468749983,12.255419921874989],[-9.395361328124977,12.464648437499989],[-9.043066406249977,12.40234375],[-8.818310546874983,11.922509765624994],[-8.822021484375,11.673242187499994],[-8.398535156249977,11.366552734374991],[-8.666699218749983,11.009472656249997],[-8.33740234375,10.990625],[-8.266650390624989,10.485986328124994],[-8.007275390624983,10.321875],[-7.990625,10.1625],[-8.155175781249994,9.973193359374989],[-8.136962890625,9.49570312499999],[-7.896191406249983,9.415869140624991],[-7.918066406249977,9.188525390624989],[-7.839404296874989,9.151611328125],[-7.7998046875,9.115039062499989],[-7.777978515624994,9.080859374999989],[-7.902099609375,9.01708984375],[-7.938183593749983,8.979785156249989],[-7.950976562499989,8.786816406249997],[-7.719580078124977,8.643017578124997],[-7.696093749999989,8.375585937499991],[-7.823583984374977,8.467675781249994],[-7.953125,8.477734375],[-8.236962890624994,8.455664062499991],[-8.244140625,8.407910156249997],[-8.256103515625,8.253710937499989],[-8.217138671874977,8.219677734374997],[-8.140625,8.181445312499989],[-8.048583984375,8.169726562499989],[-8.009863281249977,8.07851562499999],[-8.126855468749994,7.867724609374989],[-8.115429687499983,7.7607421875],[-8.205957031249994,7.59023437499999],[-8.231884765624983,7.556738281249991],[-8.429980468749989,7.601855468749989],[-8.486425781249977,7.558496093749994],[-8.659765624999977,7.688378906249994],[-8.8896484375,7.2626953125],[-9.11757812499999,7.215917968749991],[-9.463818359374983,7.415869140624991],[-9.369140625,7.703808593749997],[-9.518261718749983,8.34609375],[-9.781982421875,8.537695312499991],[-10.064355468749994,8.429882812499997],[-10.147412109374983,8.519726562499997],[-10.233056640624994,8.488818359374989],[-10.283203125,8.485156249999989],[-10.360058593749983,8.495507812499994],[-10.394433593749994,8.48095703125],[-10.496435546874977,8.362109374999989],[-10.557714843749977,8.315673828125],[-10.686962890624983,8.321679687499994],[-10.712109374999983,8.335253906249989],[-10.677343749999977,8.400585937499997],[-10.500537109374989,8.687548828124989],[-10.615966796875,9.059179687499991],[-10.726855468749989,9.081689453124994],[-10.747021484374983,9.095263671874989],[-10.749951171874983,9.122363281249989],[-10.687646484374994,9.261132812499994],[-10.682714843749977,9.289355468749989],[-10.758593749999989,9.385351562499991],[-11.047460937499977,9.786328125],[-11.180859374999983,9.925341796874989],[-11.205664062499977,9.977734375],[-11.273632812499983,9.996533203124997],[-11.911083984374983,9.993017578124991],[-12.142333984375,9.87539062499999],[-12.427978515625,9.898144531249997],[-12.557861328125,9.704980468749994],[-12.755859375,9.373583984374989],[-12.958789062499989,9.263330078124994],[-13.077294921874994,9.069628906249989],[-13.292675781249983,9.04921875],[-13.436279296875,9.4203125],[-13.691357421874983,9.535791015624994],[-13.689794921874977,9.927783203124989],[-13.820117187499989,9.88720703125],[-14.045019531249977,10.141259765624994],[-14.426904296874994,10.248339843749989],[-14.609570312499983,10.549853515624989],[-14.593505859375,10.766699218749991],[-14.677343749999977,10.68896484375],[-14.775927734374989,10.931640625],[-14.88671875,10.968066406249989],[-14.975,10.803417968749997],[-15.051220703124983,10.834570312499991],[-15.043017578124989,10.940136718749997],[-14.9990234375,10.9921875],[-14.944433593749977,11.072167968749994],[-14.779296875,11.405517578125],[-14.720263671874989,11.48193359375],[-14.682958984374977,11.508496093749997],[-14.604785156249989,11.511621093749994],[-14.452441406249989,11.556201171874989],[-14.327832031249983,11.629785156249994],[-14.265576171874983,11.659912109375],[-14.122314453125,11.65195312499999],[-13.953222656249977,11.664599609374989],[-13.732763671874977,11.736035156249997],[-13.730664062499983,11.959863281249994],[-13.737988281249983,12.009667968749994],[-13.816308593749994,12.054492187499989],[-13.948876953124994,12.178173828124997],[-13.8875,12.246875],[-13.759765625,12.262353515624994],[-13.673535156249983,12.478515625],[-13.732617187499983,12.592822265624989],[-13.729248046875,12.673925781249991],[-13.082910156249994,12.633544921875],[-13.061279296875,12.489990234375],[-12.930712890624989,12.532275390624989],[-12.399072265624994,12.340087890625],[-11.389404296875,12.404394531249991]]]},"properties":{"name":"Guinea","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-16.763330078124994,13.064160156249997],[-16.824804687499977,13.341064453125],[-16.669335937499994,13.475],[-16.41337890624999,13.269726562499997],[-15.427490234375,13.46835937499999],[-16.135449218749983,13.4482421875],[-16.351806640625,13.34335937499999],[-16.56230468749999,13.587304687499994],[-15.509667968749994,13.586230468750003],[-15.426855468749977,13.727001953124997],[-15.108349609374983,13.81210937499999],[-14.405468749999983,13.503710937500003],[-13.977392578124977,13.54345703125],[-13.826708984374989,13.4078125],[-14.246777343749983,13.23583984375],[-15.151123046875,13.556494140624991],[-15.286230468749977,13.39599609375],[-15.814404296874983,13.325146484374997],[-15.834277343749989,13.156445312499997],[-16.648779296874977,13.154150390624991],[-16.763330078124994,13.064160156249997]]]},"properties":{"name":"Gambia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-15.895898437499966,11.082470703124969],[-15.963964843749977,11.05898437499998],[-15.937695312499955,11.192773437499966],[-15.895898437499966,11.082470703124969]]],[[[-16.11450195312503,11.059423828124977],[-16.236425781249977,11.113427734374966],[-16.06733398437501,11.197216796874983],[-16.11450195312503,11.059423828124977]]],[[[-15.901806640624926,11.4658203125],[-16.02319335937497,11.477148437499991],[-15.964550781249926,11.59829101562498],[-15.901806640624926,11.4658203125]]],[[[-15.986425781249949,11.882031249999969],[-16.038330078124943,11.759716796875011],[-16.15244140624992,11.876806640624963],[-15.986425781249949,11.882031249999969]]],[[[-13.759765625,12.262353515624994],[-13.8875,12.246875],[-13.948876953124966,12.178173828124997],[-13.737988281250011,12.009667968750037],[-13.730664062499926,11.959863281250009],[-13.73276367187492,11.736035156249983],[-13.953222656249977,11.664599609374989],[-14.265576171874926,11.659912109375014],[-14.327832031250011,11.629785156250009],[-14.452441406249989,11.556201171875017],[-14.604785156249932,11.511621093749994],[-14.682958984374949,11.508496093749983],[-14.720263671875017,11.481933593749986],[-14.779296874999972,11.405517578125057],[-14.944433593749949,11.072167968749994],[-14.999023437499972,10.992187500000043],[-15.04301757812496,10.940136718750011],[-15.09375,11.011035156249974],[-15.054589843749994,11.141943359375006],[-15.222119140624926,11.030908203125037],[-15.216699218749994,11.15625],[-15.39311523437496,11.217236328124983],[-15.354687499999955,11.396337890624963],[-15.479492187499972,11.410302734374966],[-15.072656249999937,11.597802734374966],[-15.230371093750023,11.686767578124972],[-15.412988281249994,11.615234374999972],[-15.501904296875011,11.723779296874966],[-15.467187499999937,11.842822265624974],[-15.078271484374937,11.968994140625014],[-15.941748046875006,11.786621093749986],[-15.92021484374996,11.93779296874996],[-16.138427734375,11.917285156250045],[-16.32807617187501,12.051611328124963],[-16.244580078124955,12.237109375],[-16.43681640624996,12.204150390625045],[-16.711816406249937,12.354833984375006],[-16.656933593749955,12.364355468749991],[-16.52133789062495,12.348632812499986],[-16.41630859374996,12.367675781250057],[-16.24150390624996,12.443310546875011],[-16.144189453124937,12.457421875000037],[-15.839550781249955,12.437890624999966],[-15.57480468749992,12.490380859375009],[-15.19609375,12.679931640624986],[-14.3492187499999,12.67641601562498],[-14.064843749999966,12.675292968750014],[-13.729248046875,12.673925781250006],[-13.732617187499983,12.592822265625003],[-13.673535156249926,12.478515624999986],[-13.759765625,12.262353515624994]]]]},"properties":{"name":"Guinea-Bissau","childNum":5}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[11.332324218750017,1.528369140624989],[11.335351562500023,0.999707031250011],[9.906738281250028,0.960107421875037],[9.80390625000004,0.998730468749997],[9.788671875000034,1.025683593749974],[9.760546874999989,1.074707031250014],[9.704589843750057,1.079980468750023],[9.676464843750011,1.074707031250014],[9.636132812500051,1.046679687499989],[9.590820312500057,1.031982421875014],[9.599414062500045,1.054443359374972],[9.509863281250006,1.114794921875017],[9.385937500000068,1.13925781250002],[9.807031250000051,1.927490234375028],[9.77968750000008,2.068212890625006],[9.800781250000028,2.304443359375],[9.826171875000057,2.297802734374969],[9.8369140625,2.242382812500054],[9.870117187500028,2.21328125],[9.979882812499994,2.167773437500045],[10.790917968750023,2.167578125],[11.096582031250051,2.167480468749986],[11.328710937500006,2.167431640624969],[11.332324218750017,1.528369140624989]]],[[[8.735742187500023,3.758300781249972],[8.910058593750023,3.758203125000051],[8.946093750000074,3.627539062499977],[8.704003906250051,3.223632812500028],[8.474902343749989,3.264648437500043],[8.464648437500045,3.450585937499994],[8.735742187500023,3.758300781249972]]]]},"properties":{"name":"Eq. Guinea","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[23.852246093749983,35.53544921874999],[24.166015625000057,35.59521484375],[24.108984374999977,35.49580078124998],[24.35400390625,35.359472656250034],[25.73017578125004,35.34858398437501],[25.791308593750074,35.122851562500045],[26.32021484375008,35.315136718749955],[26.165625,35.018603515625045],[24.79980468750003,34.93447265625002],[24.70888671875008,35.08906250000001],[24.463671875000045,35.160351562499955],[23.59277343749997,35.257226562499966],[23.56982421875,35.534765625000034],[23.67265624999999,35.51391601562506],[23.736914062500034,35.65551757812503],[23.852246093749983,35.53544921874999]]],[[[27.17607421874999,35.46528320312498],[27.070703125000023,35.59775390624998],[27.22314453125,35.820458984374966],[27.17607421874999,35.46528320312498]]],[[[23.053808593750034,36.18979492187498],[22.91083984375004,36.220996093750045],[22.950488281250045,36.38393554687502],[23.053808593750034,36.18979492187498]]],[[[27.84277343750003,35.929296875000034],[27.71552734375004,35.95732421874996],[27.71630859375003,36.17158203125001],[28.23183593750005,36.43364257812502],[28.087792968750023,36.06533203125002],[27.84277343750003,35.929296875000034]]],[[[25.48242187500003,36.39262695312502],[25.37050781250005,36.35893554687499],[25.408984375000074,36.473730468750006],[25.48242187500003,36.39262695312502]]],[[[26.46064453125001,36.58540039062501],[26.270019531250057,36.54692382812499],[26.370019531250023,36.63857421875002],[26.46064453125001,36.58540039062501]]],[[[26.94960937500005,36.72709960937502],[27.214941406250006,36.89863281249998],[27.352148437499977,36.86889648437506],[26.94960937500005,36.72709960937502]]],[[[25.859375,36.79042968750005],[25.74316406250003,36.78974609374998],[26.06445312500003,36.90273437500002],[25.859375,36.79042968750005]]],[[[27.01972656250004,36.95903320312502],[26.91992187500003,36.94521484375005],[26.88867187499997,37.087255859375034],[27.01972656250004,36.95903320312502]]],[[[25.278906250000034,37.06840820312502],[25.105468750000057,37.034960937500045],[25.235058593750068,37.148535156250006],[25.278906250000034,37.06840820312502]]],[[[25.54589843749997,36.96757812499999],[25.45673828125001,36.9296875],[25.361914062500063,37.07041015624998],[25.52529296875005,37.19638671875006],[25.54589843749997,36.96757812499999]]],[[[24.523535156250063,37.125097656250006],[24.42480468750003,37.131982421874994],[24.48378906250005,37.21020507812503],[24.523535156250063,37.125097656250006]]],[[[25.402734375000023,37.419140624999955],[25.312695312500068,37.48930664062496],[25.462988281250063,37.47109375],[25.402734375000023,37.419140624999955]]],[[[26.029296875000057,37.529394531250034],[26.086328125000023,37.63491210937505],[26.351367187500017,37.67431640625],[26.029296875000057,37.529394531250034]]],[[[25.255859375000057,37.59960937500006],[25.156347656250034,37.54506835937505],[24.99648437500005,37.676904296874994],[25.255859375000057,37.59960937500006]]],[[[24.35595703125003,37.57685546875004],[24.28896484375005,37.52827148437498],[24.37910156250004,37.682714843750006],[24.35595703125003,37.57685546875004]]],[[[26.82441406250004,37.81142578125005],[27.05507812500005,37.70927734375002],[26.84492187500004,37.64472656250001],[26.58105468750003,37.723730468750034],[26.82441406250004,37.81142578125005]]],[[[20.888476562500074,37.805371093749955],[20.993945312500074,37.70800781250003],[20.81855468750004,37.66474609375001],[20.61953125000008,37.855029296875045],[20.691503906250006,37.929541015625034],[20.888476562500074,37.805371093749955]]],[[[24.991699218750057,37.75961914062506],[24.962207031250074,37.69238281250003],[24.7001953125,37.961669921875],[24.956347656250045,37.90478515625006],[24.991699218750057,37.75961914062506]]],[[[20.61230468750003,38.38334960937502],[20.761328125,38.07055664062497],[20.523535156250063,38.106640624999955],[20.4521484375,38.23417968750002],[20.35253906250003,38.179882812499955],[20.563183593750068,38.474951171875034],[20.61230468750003,38.38334960937502]]],[[[26.094042968750017,38.21806640625002],[25.891894531250045,38.243310546874994],[25.991406250000068,38.353515625],[25.846093750000023,38.57402343749996],[26.16035156250001,38.54072265625001],[26.094042968750017,38.21806640625002]]],[[[20.68671875000001,38.60869140625002],[20.5546875,38.58256835937502],[20.69414062499999,38.84423828125003],[20.68671875000001,38.60869140625002]]],[[[24.67470703125005,38.80922851562502],[24.54101562499997,38.788671875],[24.485644531250074,38.980273437500045],[24.67470703125005,38.80922851562502]]],[[[23.41542968750008,38.958642578124994],[23.525,38.8134765625],[24.127539062500034,38.648486328125045],[24.27578125000005,38.22001953124996],[24.58837890625003,38.12397460937504],[24.53652343750005,37.97973632812506],[24.212011718750006,38.11752929687506],[24.040136718750006,38.389990234375034],[23.65078125000008,38.44306640625001],[23.25214843750004,38.80122070312498],[22.870312500000068,38.870507812499966],[23.258203125000023,39.03134765625006],[23.41542968750008,38.958642578124994]]],[[[26.41015625000003,39.329443359375034],[26.59560546875005,39.04882812499997],[26.488671875000023,39.074804687500034],[26.46875,38.97280273437502],[26.10791015625,39.08105468749997],[26.273144531249983,39.19755859374999],[26.072363281250034,39.095605468749994],[25.84414062500008,39.20004882812506],[26.16542968750008,39.37353515625006],[26.41015625000003,39.329443359375034]]],[[[20.077929687500045,39.432714843750034],[19.883984375000068,39.461523437500034],[19.646484375,39.76708984375003],[19.926074218750017,39.773730468750045],[19.8466796875,39.66811523437502],[20.077929687500045,39.432714843750034]]],[[[25.43769531250004,39.98330078125002],[25.357031250000063,39.80810546875003],[25.24941406250005,39.89414062500006],[25.06220703125004,39.852392578125006],[25.05800781250005,39.999658203124966],[25.43769531250004,39.98330078125002]]],[[[24.774218750000074,40.615185546874955],[24.515527343750023,40.64702148437496],[24.623339843750045,40.79291992187501],[24.774218750000074,40.615185546874955]]],[[[26.03896484375008,40.726757812499955],[25.10449218750003,40.994726562500006],[24.792968750000057,40.857519531250034],[24.47705078125,40.94775390625003],[24.082324218750074,40.72407226562504],[23.762792968750063,40.74780273437497],[23.866796875000034,40.41855468750006],[24.21279296875008,40.32778320312502],[24.343359375000034,40.14770507812503],[23.913183593750063,40.35878906250005],[23.72792968750008,40.329736328124994],[23.96748046875001,40.11455078125002],[23.947070312500045,39.96557617187506],[23.66455078125003,40.22382812499998],[23.42626953125,40.26396484374999],[23.62734375,39.92407226562503],[22.896484375000057,40.39990234374997],[22.92226562500008,40.59086914062499],[22.629492187500034,40.49555664062501],[22.59218750000005,40.03691406250002],[23.327734374999977,39.174902343750006],[23.15468750000008,39.10146484375005],[23.16171875,39.25776367187501],[22.92138671874997,39.30634765625004],[22.886035156250074,39.16997070312496],[23.066699218750017,39.03793945312498],[22.569140625000074,38.86748046874999],[23.25292968750003,38.66123046875006],[23.68398437500008,38.35244140625002],[23.96699218750001,38.275],[24.024511718750006,38.139794921874966],[24.01972656250001,37.67773437499997],[23.50175781249999,38.03486328124998],[23.03632812500004,37.87836914062501],[23.48925781250003,37.440185546875],[23.16152343750005,37.333837890625006],[22.725390625000017,37.542138671874966],[23.16015625000003,36.448095703125034],[22.717187500000023,36.79394531250006],[22.42773437500003,36.47578124999998],[22.08046875000008,37.028955078124966],[21.95556640625003,36.990087890625034],[21.892382812500045,36.73730468749997],[21.58291015625005,37.080957031249994],[21.678906250000068,37.38720703125003],[21.124707031250068,37.89160156250003],[21.40371093750005,38.19667968750002],[21.658398437500068,38.17509765624996],[21.82470703125003,38.328125],[22.846386718750068,37.96757812499996],[23.18349609375008,38.133691406249966],[22.421679687500045,38.43852539062499],[22.319921875,38.35683593750005],[21.96533203124997,38.412451171875006],[21.47255859375005,38.321386718750006],[21.3310546875,38.48730468749997],[21.303320312500034,38.373925781249966],[21.113183593750023,38.38466796875002],[20.768554687500057,38.874414062499966],[21.111621093750045,38.89628906249999],[21.11835937500001,39.029980468749955],[20.71337890625,39.03515625000003],[20.300781250000057,39.32709960937501],[20.19140625,39.545800781249966],[20.099414062500074,39.641259765624966],[20.001269531250074,39.70942382812501],[20.022558593750063,39.710693359375],[20.059765624999983,39.69912109375002],[20.13105468750004,39.66162109375003],[20.206835937500017,39.65351562499998],[20.382421875,39.802636718749994],[20.381640625000017,39.84179687500006],[20.311328125000074,39.95078125000006],[20.311132812500034,39.97944335937504],[20.338476562500006,39.991064453125006],[20.38369140625008,40.0171875],[20.408007812500074,40.049462890624994],[20.4560546875,40.065576171874994],[20.657421875000068,40.11738281249998],[20.881640625000017,40.467919921874994],[21.030859375000034,40.62246093750002],[20.95576171875001,40.775292968749994],[20.96425781250005,40.84990234374999],[21.575781250000034,40.86894531249996],[21.627539062500006,40.896337890625034],[21.77949218750004,40.95043945312506],[21.99335937500001,41.13095703125006],[22.18447265625005,41.15864257812501],[22.49355468750005,41.118505859375006],[22.603613281249977,41.14018554687499],[22.724804687500068,41.17851562499999],[22.78388671875004,41.33198242187498],[23.155957031250068,41.32207031249999],[23.239843750000034,41.38496093750001],[23.372070312500057,41.3896484375],[23.433398437500017,41.39873046874999],[23.53583984375001,41.38603515624999],[23.63515625000008,41.386767578125045],[24.011328124999977,41.460058593750034],[24.03291015625004,41.469091796875034],[24.05605468750005,41.527246093749966],[24.38671875,41.523535156250006],[24.487890625,41.55522460937499],[24.518261718750068,41.55253906249996],[24.773730468750045,41.356103515624994],[24.99355468750008,41.36499023437503],[25.133398437500063,41.31577148437506],[25.251171875000068,41.243554687499994],[25.923339843750057,41.311914062499966],[26.066406250000057,41.35068359375006],[26.135351562499977,41.3857421875],[26.155175781250023,41.43486328124999],[26.143554687500057,41.52153320312496],[26.085546875000063,41.704150390625045],[26.10742187499997,41.72568359374998],[26.20058593750005,41.74379882812502],[26.320898437500034,41.716552734375],[26.581347656250074,41.60126953125004],[26.62490234375008,41.401757812499994],[26.330664062499977,41.23876953125],[26.331054687500057,40.954492187499994],[26.03896484375008,40.726757812499955]]]]},"properties":{"name":"Greece","childNum":29}},{"geometry":{"type":"Polygon","coordinates":[[[-61.71552734375,12.012646484374997],[-61.714990234374994,12.18515625],[-61.60703125,12.223291015624994],[-61.71552734375,12.012646484374997]]]},"properties":{"name":"Grenada","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-46.266699218750006,60.781396484374994],[-46.381542968749955,60.66030273437502],[-46.7880859375,60.758398437500034],[-46.205224609374994,60.943505859374994],[-46.266699218750006,60.781396484374994]]],[[[-37.03125,65.53198242187497],[-37.23842773437494,65.60986328125003],[-37.047509765624966,65.722265625],[-37.03125,65.53198242187497]]],[[[-51.01367187499994,69.55249023437497],[-51.202050781249966,69.525],[-51.33886718749994,69.73203125000006],[-51.094580078125006,69.92416992187503],[-50.67900390624999,69.84853515625],[-51.01367187499994,69.55249023437497]]],[[[-52.73115234375001,69.94472656250005],[-52.0453125,69.8072265625],[-51.90019531249999,69.60478515625007],[-53.57841796874996,69.25664062500002],[-54.18271484374995,69.40351562500001],[-53.65830078124998,69.46513671875005],[-53.825,69.54033203124999],[-54.91914062499998,69.71362304687503],[-54.78789062499996,69.94985351562502],[-54.322607421875034,69.94189453125],[-54.83076171875001,70.13295898437502],[-54.37163085937499,70.31728515625],[-53.296728515625034,70.20537109375002],[-52.73115234375001,69.94472656250005]]],[[[-51.67514648437498,70.855224609375],[-52.11938476562497,70.87065429687502],[-52.10673828124999,70.96801757812497],[-51.67514648437498,70.855224609375]]],[[[-25.43232421875001,70.92133789062495],[-25.402246093749994,70.65268554687503],[-26.217871093749977,70.45405273437498],[-26.604687499999926,70.55336914062497],[-28.03525390624995,70.48681640625],[-27.61723632812496,70.91376953125001],[-26.621777343749955,70.87563476562497],[-25.81889648437499,71.04365234375001],[-25.43232421875001,70.92133789062495]]],[[[-53.53520507812493,71.04082031250005],[-53.9578125,71.12773437499999],[-53.58447265625003,71.29707031249995],[-53.53520507812493,71.04082031250005]]],[[[-55.01689453124999,72.79111328125003],[-55.56660156249998,72.56435546875002],[-56.214794921874955,72.71918945312495],[-55.01689453124999,72.79111328125003]]],[[[-18.000537109374932,75.40732421875003],[-17.391992187499937,75.03691406250007],[-18.670800781249966,75.00166015624998],[-18.856054687499977,75.31914062500002],[-18.000537109374932,75.40732421875003]]],[[[-18.58261718749995,76.042333984375],[-19.085351562499966,76.43037109375001],[-18.882470703124937,76.70380859375001],[-18.58261718749995,76.042333984375]]],[[[-71.667333984375,77.32529296874998],[-72.48955078124999,77.43164062499997],[-71.43344726562495,77.394384765625],[-71.667333984375,77.32529296874998]]],[[[-17.6125,79.82587890624995],[-18.662011718749966,79.72001953125005],[-19.13828125,79.85234375000002],[-17.98291015625,80.05517578125003],[-17.471386718749955,80.02871093749997],[-17.6125,79.82587890624995]]],[[[-44.86455078124999,82.08364257812502],[-46.75190429687501,82.34819335937502],[-47.27226562499996,82.65693359375001],[-46.399169921875,82.692138671875],[-44.91748046875003,82.48051757812505],[-44.86455078124999,82.08364257812502]]],[[[-29.952880859375,83.56484374999997],[-25.795068359374994,83.26098632812497],[-31.99267578125,83.0853515625],[-32.03271484374997,82.98344726562502],[-25.12338867187495,83.15961914062501],[-24.47031249999995,82.87739257812498],[-21.582519531249943,82.6341796875],[-23.118066406249966,82.32470703125003],[-29.57939453124996,82.16118164062502],[-29.887402343749983,82.05483398437502],[-29.543847656249994,81.93994140624997],[-27.839501953124966,82.04887695312505],[-25.148828124999966,82.001123046875],[-24.293066406249977,81.70097656250005],[-23.103710937499983,82.01181640625003],[-21.337988281249977,82.068701171875],[-21.230517578125017,81.60136718749999],[-23.11772460937499,80.77817382812498],[-19.62993164062499,81.63989257812503],[-17.456054687499943,81.397705078125],[-16.12070312499995,81.776611328125],[-14.241992187500017,81.81386718750005],[-12.434423828125006,81.68251953125002],[-11.430664062499972,81.45683593750005],[-13.126220703124972,81.08779296875],[-14.452343749999955,80.99311523437498],[-14.503564453124994,80.76328125000006],[-16.76059570312492,80.573388671875],[-15.937255859374972,80.42763671874997],[-16.48876953124997,80.25195312499997],[-18.070947265624994,80.17207031249995],[-19.429199218749943,80.25771484375],[-20.150146484375,80.01123046874997],[-18.99199218749996,79.17836914062502],[-21.133740234374926,78.65864257812501],[-21.729589843749977,77.70854492187499],[-20.862597656249932,77.91186523437503],[-19.490429687499983,77.71889648437497],[-19.46752929687503,77.56582031250005],[-20.162060546874926,77.68984375],[-20.680810546875023,77.61899414062503],[-20.23193359374997,77.36840820312497],[-19.30029296874997,77.22236328124995],[-18.442626953124943,77.259375],[-18.51030273437496,76.77817382812498],[-20.48671875,76.92080078125],[-21.614697265624926,76.68789062499997],[-22.18525390625001,76.79409179687502],[-22.609326171874983,76.70429687500004],[-21.877343749999966,76.57348632812503],[-21.488232421874926,76.271875],[-20.10361328124992,76.21909179687503],[-19.508984374999926,75.75751953124995],[-19.52636718750003,75.18022460937505],[-20.484960937500006,75.31425781249999],[-21.649316406249966,75.02343749999997],[-22.232861328124926,75.11972656249998],[-21.69511718749999,74.96445312500003],[-20.985791015624983,75.07436523437497],[-20.86157226562497,74.63593750000001],[-20.41708984374995,74.9751953125],[-19.98491210937499,74.9751953125],[-19.287011718750023,74.54638671875006],[-19.36914062499997,74.28403320312498],[-20.256445312499977,74.2828125],[-20.653125,74.13735351562502],[-21.954931640624977,74.24428710937497],[-21.942919921874932,74.56572265624999],[-22.32158203124999,74.30253906250002],[-22.134814453124932,73.99047851562503],[-20.36728515624992,73.8482421875],[-20.509667968749966,73.49287109375001],[-22.346875,73.26923828125001],[-23.23320312499999,73.39770507812497],[-24.157714843749943,73.76445312499999],[-24.67724609375,73.602197265625],[-25.521289062500017,73.85161132812499],[-24.79125976562497,73.51127929687502],[-26.062304687500017,73.25302734375],[-27.270410156250023,73.43627929687503],[-26.541845703125006,73.24897460937495],[-27.561621093750006,73.13847656250002],[-27.348046875000023,73.06782226562501],[-25.057031250000023,73.396484375],[-24.132666015625006,73.409375],[-22.036328124999955,72.91845703125006],[-22.29321289062497,72.11953125],[-24.06904296875001,72.49873046874998],[-24.629980468749977,73.03764648437499],[-26.657617187499966,72.71582031249997],[-24.81333007812492,72.90151367187497],[-24.65,72.58251953125],[-25.117871093749983,72.34697265625005],[-24.66684570312492,72.437353515625],[-21.959667968749955,71.74467773437502],[-22.479638671874937,71.38344726562497],[-22.417578125,71.24868164062505],[-22.29902343750001,71.43232421874998],[-21.75224609374999,71.47832031250002],[-21.522656249999926,70.52622070312503],[-22.38413085937492,70.46240234375],[-22.437011718749943,70.860009765625],[-22.690673828124943,70.43730468750002],[-23.327832031249983,70.45097656250007],[-23.97138671875001,70.64946289062499],[-24.562207031249926,71.22353515624997],[-25.885156249999966,71.571923828125],[-27.08720703124999,71.6265625],[-27.107031250000034,71.53266601562498],[-25.842724609374955,71.48017578124995],[-25.74223632812499,71.18359375],[-26.717919921874994,70.95048828125005],[-28.39843749999997,70.99291992187497],[-27.99218749999997,70.89521484374998],[-28.06987304687499,70.69902343750005],[-29.07207031249999,70.444970703125],[-26.621777343749955,70.46337890625],[-26.576806640625023,70.35708007812502],[-27.560839843749932,70.12446289062498],[-27.384179687500023,69.9916015625],[-27.027734374999966,70.20122070312499],[-25.529882812499977,70.35317382812502],[-23.66733398437495,70.139306640625],[-22.28447265624996,70.12583007812498],[-22.287060546874955,70.03339843749998],[-23.03364257812501,69.90083007812498],[-23.04956054687497,69.79272460937497],[-23.86572265624997,69.73671875000002],[-23.739404296874994,69.58862304687497],[-24.296679687500017,69.58554687500006],[-24.295556640624966,69.439306640625],[-25.188574218750006,69.26054687500002],[-25.092431640624937,69.16518554687502],[-25.697998046874943,68.889892578125],[-26.48291015624997,68.67592773437502],[-29.24951171874997,68.29877929687501],[-29.86850585937495,68.31157226562505],[-30.318115234375,68.19331054687501],[-30.72001953124999,68.25117187499998],[-30.610742187499994,68.11791992187503],[-30.97856445312499,68.06132812500005],[-32.32744140624999,68.43730468749999],[-32.16455078125,67.99111328125002],[-33.15698242187497,67.62670898437506],[-34.1982421875,66.65507812499999],[-35.18857421874995,66.25029296875002],[-35.86723632812502,66.44140624999997],[-35.630078124999926,66.13994140625002],[-36.37919921874996,65.830810546875],[-36.52724609375002,66.00771484375],[-36.665185546874966,65.79008789062507],[-37.06279296874996,65.87143554687503],[-37.410058593749994,65.65634765625],[-37.954785156249955,65.63359375000007],[-37.278710937499994,66.30439453124995],[-38.156640624999966,66.38559570312498],[-37.75234375000002,66.26152343750002],[-38.13994140625002,65.90351562499998],[-38.52036132812498,66.00966796875002],[-38.20336914062497,65.71171874999999],[-40.17353515624998,65.55615234375],[-39.57792968749996,65.34077148437501],[-39.937255859375,65.14160156250003],[-40.253125,65.04887695312505],[-41.08442382812501,65.10083007812497],[-40.966015624999955,64.86884765624995],[-40.655468749999926,64.91533203125002],[-40.18222656249998,64.47993164062495],[-40.78173828125,64.22177734375003],[-41.581005859374926,64.29833984375],[-41.03056640624996,64.12104492187504],[-40.61777343749998,64.13173828125],[-40.550390625000034,63.72524414062505],[-40.77519531249999,63.53364257812501],[-41.04873046875002,63.51381835937505],[-41.387890624999926,63.06186523437498],[-41.84448242187497,63.07026367187501],[-42.174511718749955,63.20878906249999],[-41.63447265624998,62.972460937500074],[-41.90898437499996,62.73710937499999],[-42.94165039062503,62.72021484375003],[-42.15297851562502,62.568457031250006],[-42.32148437499998,62.15273437500005],[-42.110205078125006,61.857226562500074],[-42.58530273437498,61.71748046875001],[-42.34736328125001,61.61743164062497],[-42.717041015625,60.767480468749994],[-43.04409179687502,60.523681640625],[-43.92270507812495,60.59536132812502],[-43.21298828124998,60.390673828125074],[-43.122900390625006,60.06123046875001],[-43.32011718749993,59.928125],[-43.95502929687498,60.025488281250006],[-43.65791015625001,59.85864257812503],[-43.90654296874996,59.815478515625045],[-44.11699218750002,59.83193359375002],[-44.06547851562499,59.92480468750003],[-44.412939453125006,59.922607421875],[-44.22436523437494,60.273535156250006],[-44.61328124999997,60.01665039062499],[-45.37924804687495,60.20292968750002],[-45.367773437500006,60.37294921875002],[-44.97470703124995,60.457226562499955],[-44.756738281249966,60.66459960937502],[-45.38051757812494,60.444921875],[-46.04663085937503,60.61572265625],[-46.141943359375006,60.776513671874994],[-45.87021484374998,61.21831054687502],[-46.87446289062501,60.81640625000003],[-48.180810546874966,60.76923828125001],[-47.77031249999999,60.99775390625001],[-48.386425781249926,61.004736328125034],[-48.42817382812501,61.18740234375002],[-48.92207031249998,61.27744140624998],[-49.28906249999997,61.58994140625006],[-49.380273437499994,61.89018554687502],[-48.82871093749998,62.0796875],[-49.62377929687494,61.99858398437499],[-49.553466796875,62.23271484374999],[-50.319238281249966,62.473193359375045],[-50.298730468749966,62.72197265625002],[-49.793115234374994,63.04462890625004],[-50.39008789062501,62.82202148437497],[-51.46884765624995,63.64228515625001],[-51.547509765624994,64.00610351562497],[-50.260693359374955,64.21425781250002],[-50.48662109374996,64.20888671875],[-50.43706054687499,64.31284179687503],[-51.58491210937498,64.10317382812502],[-51.70786132812498,64.205078125],[-51.403759765624926,64.46318359375002],[-50.49208984375002,64.69316406250005],[-50.00898437500001,64.44726562499997],[-50.12163085937493,64.703759765625],[-50.51699218750002,64.76650390625],[-50.96064453124998,65.20112304687498],[-50.721582031249966,64.79760742187503],[-51.22060546875002,64.62846679687502],[-51.25537109375,64.75810546875005],[-51.92260742187503,64.21875],[-52.259033203125,65.154931640625],[-52.537695312500034,65.32880859374998],[-51.61914062500003,65.71318359375002],[-51.091894531250006,65.77578125],[-51.7234375,65.723486328125],[-52.55126953125003,65.46137695312498],[-52.760937499999926,65.59082031249997],[-53.198974609375,65.59404296875002],[-53.106347656249966,65.97714843749998],[-53.39204101562498,66.04833984375],[-51.225,66.88154296875001],[-53.035791015624966,66.20141601562503],[-53.538769531249955,66.13935546874998],[-53.41875,66.64853515624998],[-53.038281249999955,66.82680664062497],[-52.38686523437502,66.88115234375005],[-53.44360351562503,66.924658203125],[-53.88442382812502,67.13554687499999],[-53.79858398437494,67.41816406250001],[-52.666455078124955,67.74970703124995],[-50.613476562499955,67.5279296875],[-51.171044921874966,67.693603515625],[-50.96884765624998,67.80664062500003],[-51.765234375000034,67.73784179687505],[-52.34482421874998,67.83691406249997],[-53.735205078125006,67.54902343750004],[-53.151562499999926,68.20776367187503],[-51.779980468749926,68.05673828124998],[-51.456494140624926,68.116064453125],[-51.21015625000001,68.419921875],[-52.19853515624993,68.22080078125],[-53.38315429687495,68.29736328124997],[-53.03945312500002,68.61088867187499],[-52.60458984374998,68.70874023437503],[-51.62314453124995,68.53481445312505],[-50.945703124999966,68.68266601562505],[-50.807714843750006,68.81699218749998],[-51.24941406250002,68.73994140625001],[-51.084863281249994,69.12827148437498],[-50.29736328124994,69.17060546874998],[-51.07695312499996,69.20947265625],[-50.291699218749955,70.01445312500005],[-52.254638671875,70.05893554687503],[-53.02304687499995,70.30190429687497],[-54.01445312499996,70.42167968750005],[-54.53076171875,70.69926757812502],[-54.16582031249999,70.82011718750005],[-52.801953124999955,70.7505859375],[-50.87236328124993,70.36489257812502],[-50.66328124999998,70.417578125],[-51.32285156249998,70.58876953124997],[-51.25659179687497,70.85268554687502],[-51.77431640625002,71.01044921875001],[-51.018945312499966,71.001318359375],[-51.37666015625001,71.11904296875],[-53.007568359375,71.17998046874999],[-52.89184570312497,71.457666015625],[-51.76992187500002,71.67172851562498],[-53.44008789062502,71.57900390625002],[-53.14453125000003,71.80742187500002],[-53.65214843749996,72.36264648437506],[-53.92773437499997,72.31879882812501],[-53.47758789062502,71.84995117187506],[-54.01992187500002,71.657861328125],[-53.96298828124995,71.45898437499997],[-54.6890625,71.36723632812505],[-55.59404296874999,71.55351562500005],[-55.315576171874994,72.11069335937498],[-54.84013671874996,72.35610351562497],[-55.581445312499994,72.178857421875],[-55.63583984374998,72.300439453125],[-55.29570312499996,72.35439453124997],[-55.60170898437494,72.453466796875],[-54.924951171874994,72.57197265624998],[-54.737939453124994,72.87250976562501],[-55.07309570312498,73.01513671875003],[-55.28891601562498,72.93320312500003],[-55.66855468749998,73.00791015624998],[-55.288281249999955,73.32709960937498],[-56.10405273437496,73.55815429687499],[-55.83828125,73.75971679687501],[-56.22539062499999,74.12910156249995],[-57.23056640624995,74.12529296875007],[-56.70634765625002,74.21918945312501],[-56.717675781249994,74.42924804687499],[-56.25546874999998,74.52680664062498],[-58.56552734374998,75.35273437500001],[-58.249658203124994,75.50668945312503],[-58.51621093749995,75.68906250000006],[-61.18823242187494,76.157861328125],[-63.29130859374996,76.35205078125003],[-63.84306640624999,76.21713867187498],[-64.307275390625,76.31650390624998],[-65.36992187499993,76.13056640625004],[-65.87573242187494,76.23833007812505],[-66.46577148437498,76.13916015625],[-66.99257812500002,76.21293945312502],[-66.67480468750003,75.977392578125],[-68.14873046875002,76.06704101562497],[-69.48408203125001,76.39916992187503],[-68.1142578125,76.65063476562503],[-69.67382812499994,76.73588867187507],[-69.69423828125002,76.98945312500004],[-70.613134765625,76.82182617187499],[-71.14145507812498,77.02866210937503],[-70.86284179687496,77.175439453125],[-68.97832031250002,77.19531250000006],[-68.13554687499999,77.37958984375001],[-66.38945312499999,77.28027343750003],[-66.69121093749999,77.68120117187502],[-67.68808593749995,77.523779296875],[-68.62153320312498,77.60185546875002],[-69.35136718749999,77.467138671875],[-70.53540039062497,77.699560546875],[-70.11445312500001,77.84135742187505],[-71.27163085937494,77.81313476562497],[-72.81806640624995,78.1943359375],[-72.47250976562498,78.48203125],[-71.65131835937493,78.62314453124998],[-68.99345703124999,78.857421875],[-68.37705078124998,79.037841796875],[-65.82553710937503,79.17373046874997],[-64.79228515624993,80.00063476562502],[-64.17915039062498,80.09926757812497],[-66.84365234374997,80.07622070312507],[-67.05063476562503,80.384521484375],[-64.51552734374997,81],[-63.72197265624993,81.05732421875001],[-63.028662109375006,80.88955078125002],[-62.90336914062496,81.21835937500003],[-61.43598632812498,81.13359375000002],[-60.842871093750034,81.85537109374997],[-59.28193359374998,81.88403320312503],[-56.615136718749994,81.362890625],[-59.26181640624998,82.00664062500005],[-54.54887695312496,82.35063476562505],[-53.671337890624955,82.16406249999997],[-53.55566406250003,81.65327148437501],[-53.022558593750034,82.32172851562504],[-50.894433593749994,81.89521484375001],[-49.54106445312496,81.91806640625003],[-50.93554687500003,82.38281250000003],[-50.03710937499994,82.472412109375],[-44.7294921875,81.77983398437505],[-44.23886718749998,82.3681640625],[-45.55654296875002,82.74702148437498],[-41.87646484375,82.680322265625],[-41.36962890625003,82.75],[-46.136816406250006,82.85883789062504],[-46.169042968750006,83.06386718749997],[-45.41459960937496,83.01767578124998],[-43.00927734375003,83.26459960937501],[-41.300146484375006,83.10078125000004],[-40.35683593750002,83.332177734375],[-38.15625,82.9986328125],[-38.74956054687496,83.37084960937497],[-37.72333984374998,83.49775390624998],[-29.952880859375,83.56484374999997]]]]},"properties":{"name":"Greenland","childNum":14}},{"geometry":{"type":"Polygon","coordinates":[[[-89.2328125,15.888671875],[-88.89404296875,15.890625],[-88.60336914062499,15.76416015625],[-88.5939453125,15.950292968749991],[-88.22832031249999,15.72900390625],[-88.271435546875,15.694873046875003],[-88.36455078124999,15.616015625],[-88.68447265625,15.360498046874994],[-88.96098632812499,15.152441406249991],[-89.142578125,15.072314453125003],[-89.22236328125,14.866064453124991],[-89.16220703124999,14.669238281250003],[-89.17177734375,14.606884765624997],[-89.28671875,14.529980468749997],[-89.36259765624999,14.416015625],[-89.5736328125,14.390087890624997],[-89.54716796874999,14.241259765625003],[-90.04814453124999,13.904052734375],[-90.09521484375,13.736523437499997],[-90.60693359375,13.929003906250003],[-91.37734375,13.990185546874997],[-92.23515624999999,14.54541015625],[-92.15854492187499,14.963574218749997],[-92.14423828125,15.001953125],[-92.09873046874999,15.026757812499994],[-92.07480468749999,15.07421875],[-92.187158203125,15.320898437499991],[-92.08212890624999,15.495556640624997],[-91.9572265625,15.703222656249991],[-91.736572265625,16.07016601562499],[-91.433984375,16.070458984374994],[-90.97958984374999,16.07080078125],[-90.70322265624999,16.071044921875],[-90.52197265625,16.071191406249994],[-90.44716796875,16.072705078124997],[-90.45986328125,16.162353515625],[-90.450146484375,16.261376953124994],[-90.4169921875,16.351318359375],[-90.4169921875,16.39101562499999],[-90.47109375,16.43955078124999],[-90.57578125,16.467822265625003],[-90.63408203124999,16.5107421875],[-90.634375,16.565136718749997],[-90.65996093749999,16.630908203125003],[-90.710693359375,16.70810546874999],[-90.975830078125,16.867822265624994],[-91.409619140625,17.255859375],[-91.1955078125,17.254101562499997],[-90.99296874999999,17.25244140625],[-90.98916015625,17.81640625],[-89.16147460937499,17.81484375],[-89.2328125,15.888671875]]]},"properties":{"name":"Guatemala","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[144.74179687500003,13.25927734375],[144.64931640625002,13.4287109375],[144.87539062500002,13.614648437499994],[144.94082031250002,13.5703125],[144.74179687500003,13.25927734375]]]},"properties":{"name":"Guam","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-57.194775390625,5.5484375],[-57.3185546875,5.335351562499994],[-57.20981445312499,5.195410156249991],[-57.331005859375,5.020166015624994],[-57.711083984374994,4.991064453124991],[-57.91704101562499,4.820410156249991],[-57.84599609374999,4.668164062499997],[-58.05429687499999,4.101660156249991],[-57.646728515625,3.39453125],[-57.303662109375,3.377099609374994],[-57.19736328124999,2.853271484375],[-56.704345703125,2.036474609374991],[-56.4828125,1.942138671875],[-56.96953124999999,1.91640625],[-57.03759765625,1.936474609374997],[-57.092675781249994,2.005810546874997],[-57.118896484375,2.013964843749989],[-57.31748046874999,1.963476562499991],[-57.41269531249999,1.908935546875],[-57.500439453125,1.77382812499999],[-57.54575195312499,1.72607421875],[-57.59443359375,1.7041015625],[-57.795654296875,1.7],[-57.8734375,1.667285156249989],[-57.9828125,1.6484375],[-58.03466796875,1.520263671875],[-58.34067382812499,1.587548828124994],[-58.38037109375,1.530224609374997],[-58.39580078124999,1.481738281249989],[-58.5060546875,1.438671875],[-58.511865234374994,1.28466796875],[-58.68461914062499,1.281054687499989],[-58.73032226562499,1.247509765624997],[-58.78720703124999,1.20849609375],[-58.82177734375,1.201220703124989],[-59.231201171875,1.376025390624989],[-59.53569335937499,1.7],[-59.66660156249999,1.746289062499997],[-59.66850585937499,1.842333984374989],[-59.74072265625,1.874169921874994],[-59.75620117187499,1.900634765625],[-59.75522460937499,2.274121093749997],[-59.8896484375,2.362939453124994],[-59.9943359375,2.689990234374989],[-59.854394531249994,3.5875],[-59.55112304687499,3.933544921874997],[-59.557763671874994,3.960009765624989],[-59.62021484374999,4.023144531249997],[-59.73857421874999,4.226757812499997],[-59.69970703125,4.353515625],[-60.1486328125,4.533251953124989],[-59.990673828125,5.082861328124991],[-60.142041015625,5.238818359374989],[-60.241650390625,5.257958984374994],[-60.335205078125,5.199316406249991],[-60.45952148437499,5.188085937499991],[-60.6513671875,5.221142578124997],[-60.742138671875,5.202050781249994],[-61.37680664062499,5.906982421875],[-61.3908203125,5.938769531249989],[-61.303125,6.049511718749997],[-61.22495117187499,6.129199218749989],[-61.15947265624999,6.174414062499991],[-61.12871093749999,6.214306640624997],[-61.152294921875,6.385107421874991],[-61.151025390624994,6.446533203125],[-61.181591796875,6.513378906249997],[-61.20361328125,6.58837890625],[-61.14560546874999,6.69453125],[-60.717919921874994,6.768310546875],[-60.35209960937499,7.002880859374997],[-60.32207031249999,7.092041015625],[-60.32548828124999,7.133984375],[-60.34506835937499,7.15],[-60.46494140624999,7.166552734374989],[-60.523193359375,7.143701171874994],[-60.583203125,7.156201171874997],[-60.63330078125,7.211083984374994],[-60.718652343749994,7.535937499999989],[-60.513623046875,7.813183593749997],[-60.032421875,8.053564453124991],[-59.99072265625,8.162011718749994],[-59.96484375,8.191601562499997],[-59.849072265625,8.248681640624994],[-59.83164062499999,8.305957031249989],[-60.017529296875,8.54931640625],[-59.20024414062499,8.07460937499999],[-58.51108398437499,7.39804687499999],[-58.48056640624999,7.038134765624989],[-58.67294921874999,6.390771484374994],[-58.414990234375,6.85117187499999],[-57.982568359374994,6.785888671875],[-57.54013671874999,6.33154296875],[-57.2275390625,6.178417968749997],[-57.194775390625,5.5484375]]]},"properties":{"name":"Guyana","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[73.70742187500002,-53.13710937499999],[73.46513671875002,-53.184179687500006],[73.25117187500001,-52.97578125000001],[73.83779296875002,-53.11279296875],[73.70742187500002,-53.13710937499999]]]},"properties":{"name":"Heard I. and McDonald Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-83.635498046875,14.876416015624997],[-84.53764648437496,14.633398437499963],[-84.64594726562498,14.661083984375011],[-84.86044921874998,14.809765625000011],[-84.98515624999999,14.752441406249972],[-85.059375,14.582958984374997],[-85.20834960937498,14.311816406250003],[-85.73393554687496,13.85869140625006],[-85.75341796875,13.852050781250028],[-85.78671874999995,13.844433593749997],[-85.98378906249997,13.965673828125006],[-86.04038085937503,14.050146484374977],[-86.33173828124995,13.770068359375031],[-86.37695312500003,13.755664062500031],[-86.61025390624997,13.774853515625026],[-86.73364257812494,13.763476562500017],[-86.75898437499995,13.746142578125045],[-86.77060546875003,13.698730468749972],[-86.763525390625,13.635253906250014],[-86.72958984375,13.4072265625],[-86.710693359375,13.31337890624998],[-86.72929687499996,13.284375],[-86.79213867187497,13.279785156249972],[-86.87353515624994,13.266503906250023],[-86.918212890625,13.223583984374983],[-87.00932617187499,13.007812499999986],[-87.0591796875,12.991455078125028],[-87.337255859375,12.979248046875028],[-87.48911132812503,13.352929687500051],[-87.814208984375,13.399169921875057],[-87.781884765625,13.521386718749994],[-87.71533203125003,13.812695312500011],[-87.73144531250003,13.841064453125014],[-87.80224609374997,13.889990234375034],[-87.89199218749997,13.894970703124983],[-87.99101562499996,13.879638671874972],[-88.15102539062497,13.987353515624974],[-88.44912109374994,13.850976562499994],[-88.48266601562503,13.854248046875043],[-88.49765624999998,13.904541015624986],[-88.50434570312501,13.964208984374963],[-88.51254882812498,13.97895507812504],[-89.12050781249994,14.370214843749991],[-89.36259765624996,14.416015625],[-89.17177734375,14.606884765624983],[-89.16220703125,14.669238281249989],[-89.22236328125001,14.86606445312502],[-89.142578125,15.072314453125031],[-88.96098632812496,15.15244140625002],[-88.68447265625002,15.360498046875037],[-88.36455078124996,15.616015625000045],[-88.27143554687498,15.694873046875045],[-88.22832031249999,15.729003906249972],[-88.131103515625,15.701025390625034],[-87.87495117187495,15.879345703124955],[-86.35664062499998,15.783203125],[-85.93627929687497,15.953417968750045],[-85.98564453124999,16.02416992187497],[-85.48369140624996,15.899511718749977],[-84.97373046874998,15.989892578124994],[-84.55966796875,15.802001953125],[-84.26142578124998,15.822607421875034],[-83.765283203125,15.405468750000054],[-83.972802734375,15.519628906250034],[-84.11132812499997,15.492431640625],[-84.09506835937503,15.400927734375017],[-83.92744140624998,15.394042968750028],[-83.76044921874998,15.220361328124994],[-83.49794921874997,15.222119140624997],[-83.64638671875,15.368408203125043],[-83.36918945312493,15.239990234375],[-83.29086914062498,15.078906250000045],[-83.2255859375,15.042285156250045],[-83.15751953124999,14.993066406249966],[-83.41503906249994,15.008056640625],[-83.5365234375,14.977001953124983],[-83.635498046875,14.876416015624997]]]},"properties":{"name":"Honduras","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[17.60781250000005,42.76904296875],[17.744238281250063,42.70034179687505],[17.34414062500008,42.790380859375006],[17.60781250000005,42.76904296875]]],[[[16.650683593750017,42.99658203125],[17.188281250000045,42.917041015625045],[16.850683593750006,42.8955078125],[16.650683593750017,42.99658203125]]],[[[17.667578125000063,42.897119140624994],[18.436328125000017,42.559716796874994],[18.517480468750023,42.43291015624999],[17.823828125,42.79741210937502],[17.045410156250057,43.014892578125],[17.667578125000063,42.897119140624994]]],[[[16.785253906250006,43.270654296874966],[16.490332031250034,43.28618164062502],[16.44892578125004,43.38706054687506],[16.89130859375001,43.314648437499955],[16.785253906250006,43.270654296874966]]],[[[15.371386718750074,43.973828124999955],[15.437207031250068,43.899511718750006],[15.270019531250028,44.01074218750003],[15.371386718750074,43.973828124999955]]],[[[14.488085937500074,44.66005859375005],[14.31240234375008,44.90039062499997],[14.33125,45.16499023437498],[14.488085937500074,44.66005859375005]]],[[[14.810253906250068,44.97705078124997],[14.45039062500004,45.079199218750006],[14.571093750000017,45.224755859374994],[14.810253906250068,44.97705078124997]]],[[[18.905371093750006,45.931738281250034],[18.839062499999983,45.83574218750002],[19.064257812500045,45.51499023437506],[19.004687500000074,45.39951171875006],[19.4,45.2125],[19.062890625000023,45.13720703125],[19.007128906250045,44.86918945312502],[18.83642578125,44.883251953124955],[18.66259765625,45.07744140624999],[17.812792968750074,45.078125],[16.918652343749983,45.27656249999998],[16.53066406250008,45.21669921875002],[16.29335937500005,45.00883789062496],[16.028320312500057,45.18959960937502],[15.788085937500057,45.17895507812497],[15.736621093750045,44.76582031250001],[16.10341796875008,44.52099609375006],[16.300097656250017,44.12451171875],[17.27382812500005,43.44575195312501],[17.650488281250063,43.006591796875],[17.585156250000068,42.93837890625005],[16.903125,43.392431640625006],[16.393945312500023,43.54335937500002],[15.985546875000068,43.519775390625],[15.185839843750017,44.17211914062503],[15.122949218749994,44.256787109374955],[15.470996093750045,44.27197265625003],[14.981347656250023,44.60292968750005],[14.854589843750034,45.08100585937501],[14.550488281249983,45.297705078125006],[14.31269531250004,45.33779296875002],[13.86074218750008,44.83740234375003],[13.517187500000063,45.481787109375034],[13.878710937500017,45.428369140624994],[14.369921875000074,45.48144531250006],[14.427343750000034,45.50576171875002],[14.56884765625,45.65722656249997],[14.591796875000057,45.65126953125002],[14.649511718750006,45.57148437500001],[14.793066406250034,45.47822265625001],[14.95458984375,45.499902343749994],[15.110449218750034,45.450781250000034],[15.242089843750023,45.44140624999997],[15.339453125000063,45.46704101562506],[15.326660156250028,45.502294921875034],[15.291210937500011,45.541552734375045],[15.283593750000051,45.5796875],[15.35371093750004,45.659912109375],[15.27705078125004,45.73261718749998],[15.652148437500074,45.86215820312498],[15.675585937500045,45.98369140624996],[15.666210937500011,46.04848632812502],[15.596875,46.10922851562506],[15.592578125000017,46.139990234375006],[15.608984374999977,46.171923828125045],[16.1064453125,46.382226562499994],[16.32119140625005,46.53461914062504],[16.42763671875005,46.5244140625],[16.516210937499977,46.499902343749966],[16.569921875,46.48500976562505],[16.748046875000057,46.41640625000002],[16.87148437500008,46.33930664062504],[17.310644531250006,45.99614257812502],[17.80712890625,45.79042968750002],[18.358300781250023,45.75302734375006],[18.533593750000023,45.79614257812503],[18.56464843750004,45.81328124999999],[18.666015625,45.90747070312497],[18.905371093750006,45.931738281250034]]]]},"properties":{"name":"Croatia","childNum":8}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-72.80458984374997,18.777685546875063],[-72.82221679687501,18.707128906249977],[-73.07797851562498,18.790917968749994],[-73.27641601562499,18.95405273437501],[-72.80458984374997,18.777685546875063]]],[[[-71.647216796875,19.195947265624994],[-71.80712890624997,18.987011718749983],[-71.733642578125,18.85639648437501],[-71.72705078125,18.80322265625003],[-71.74321289062502,18.73291015625],[-71.86650390624999,18.61416015625005],[-71.98686523437499,18.61035156249997],[-72.000390625,18.59790039062503],[-71.94038085937493,18.51259765625005],[-71.87255859374997,18.416210937499955],[-71.76191406249998,18.34130859374997],[-71.73725585937495,18.27080078124999],[-71.76831054687497,18.039160156250063],[-71.85292968749997,18.119140625],[-71.94609375,18.186083984375045],[-72.05986328124993,18.228564453125017],[-72.87666015624998,18.151757812499994],[-73.38515625000002,18.251171874999983],[-73.747314453125,18.190234375000017],[-73.88496093749998,18.041894531249994],[-74.478125,18.45],[-74.3875,18.624707031249983],[-74.22773437499998,18.662695312499977],[-72.78935546874996,18.434814453125],[-72.37607421874998,18.57446289062503],[-72.34765624999994,18.674951171874994],[-72.81108398437496,19.071582031250074],[-72.70322265625,19.441064453125023],[-73.43837890624994,19.722119140624983],[-73.21777343750003,19.88369140625005],[-72.63701171875002,19.90087890625],[-72.21982421875003,19.744628906250057],[-71.834716796875,19.696728515624983],[-71.77924804687498,19.718164062499994],[-71.75742187499998,19.68818359375001],[-71.71147460937493,19.486572265625057],[-71.74648437499997,19.28583984375001],[-71.647216796875,19.195947265624994]]]]},"properties":{"name":"Haiti","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[22.1318359375,48.405322265624996],[22.253710937500017,48.407373046874994],[22.582421875000023,48.134033203125],[22.769140625,48.109619140625],[22.87666015625001,47.947265625],[21.99970703125001,47.505029296874994],[21.121679687500006,46.282421875],[20.76025390625,46.246240234374994],[20.613671875000023,46.13349609375],[20.508105468750017,46.166943359375],[20.28095703125001,46.1330078125],[20.241796875,46.10859375],[20.21015625000001,46.126025390624996],[20.161425781250017,46.141894531249996],[19.93408203125,46.161474609375],[19.84443359375001,46.145898437499994],[19.61347656250001,46.169189453125],[19.421289062500023,46.064453125],[18.666015625,45.907470703125],[18.56464843750001,45.81328125],[18.533593750000023,45.796142578125],[18.358300781250023,45.75302734375],[17.80712890625,45.790429687499994],[17.310644531250006,45.996142578124996],[16.871484375000023,46.339306640625],[16.748046875,46.41640625],[16.569921875,46.485009765624994],[16.516210937500006,46.499902343749994],[16.283593750000023,46.857275390625],[16.093066406250017,46.86328125],[16.453417968750017,47.006787109375],[16.44287109375,47.39951171875],[16.676562500000017,47.536035156249994],[16.421289062500023,47.674462890624994],[17.06660156250001,47.707568359374996],[17.147363281250023,48.00595703125],[17.76191406250001,47.770166015624994],[18.72421875,47.787158203124996],[18.791894531250023,48.000292968749996],[19.625390625000023,48.223095703125],[19.95039062500001,48.146630859374994],[20.333789062500017,48.295556640624994],[20.490039062500017,48.526904296874996],[21.45136718750001,48.55224609375],[21.766992187500023,48.3380859375],[22.1318359375,48.405322265624996]]]},"properties":{"name":"Hungary","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[122.9489257812501,-10.90927734375002],[122.82617187500003,-10.899121093749983],[122.84570312500003,-10.761816406249991],[123.37109375000003,-10.474902343749989],[123.41816406250004,-10.651269531250037],[122.9489257812501,-10.90927734375002]]],[[[121.8830078125001,-10.590332031249957],[121.70468750000006,-10.5556640625],[121.99833984375002,-10.446972656249983],[121.8830078125001,-10.590332031249957]]],[[[123.41621093750004,-10.302636718749966],[123.3255859375,-10.264160156249943],[123.45878906250002,-10.13994140624996],[123.41621093750004,-10.302636718749966]]],[[[120.0125,-9.374707031250026],[120.78447265625002,-9.95703125],[120.83261718750006,-10.0375],[120.69804687500002,-10.206640624999949],[120.4391601562501,-10.294042968749991],[120.14482421875002,-10.200097656249952],[119.60107421874997,-9.773535156250006],[119.08544921875003,-9.706933593750023],[118.95878906250002,-9.519335937500003],[119.29589843749997,-9.3671875],[119.9420898437501,-9.301464843750026],[120.0125,-9.374707031250026]]],[[[125.06816406250002,-9.511914062499997],[124.42753906250002,-10.14863281250004],[123.7472656250001,-10.347167968749986],[123.60478515625002,-10.270117187500006],[123.71640625000012,-10.078613281249986],[123.5892578125,-9.966796875000028],[123.709375,-9.61484375],[124.0363281250001,-9.341601562500031],[124.28232421875012,-9.427929687500026],[124.44443359375012,-9.190332031250023],[124.92226562500005,-8.942480468749977],[124.93681640625007,-9.053417968750026],[125.14902343750012,-9.042578125000034],[125.10048828125,-9.189843750000023],[124.96015625000004,-9.213769531250009],[125.06816406250002,-9.511914062499997]]],[[[115.60996093750012,-8.769824218749974],[115.48046875000003,-8.715429687500006],[115.56142578125,-8.669921874999972],[115.60996093750012,-8.769824218749974]]],[[[122.97734375000002,-8.54521484374996],[122.88779296875006,-8.587304687500009],[123.01054687500002,-8.448339843750034],[123.153125,-8.475781250000026],[122.97734375000002,-8.54521484374996]]],[[[119.46406250000004,-8.741015624999974],[119.38554687500002,-8.736035156250026],[119.4464843750001,-8.429199218749957],[119.55722656250012,-8.518847656250003],[119.46406250000004,-8.741015624999974]]],[[[123.31748046875012,-8.354785156249974],[123.02500000000012,-8.395507812500014],[123.21708984375002,-8.235449218750006],[123.33603515625006,-8.269042968750014],[123.31748046875012,-8.354785156249974]]],[[[116.64082031250004,-8.613867187500006],[116.51425781250012,-8.820996093750011],[116.58652343750012,-8.886132812499966],[116.23935546875006,-8.912109375000014],[115.85732421875005,-8.787890625000017],[116.07646484375002,-8.744921874999974],[116.06113281250006,-8.437402343750023],[116.4015625000001,-8.204199218750034],[116.7189453125001,-8.336035156249977],[116.64082031250004,-8.613867187500006]]],[[[124.28662109375003,-8.32949218749998],[124.14667968750004,-8.531445312499997],[123.92773437500003,-8.448925781249969],[124.23955078125002,-8.20341796874996],[124.28662109375003,-8.32949218749998]]],[[[123.92480468750003,-8.2724609375],[123.55302734375007,-8.566796875],[123.23007812500006,-8.530664062500023],[123.47587890625007,-8.322265625000014],[123.39121093750012,-8.280468750000026],[123.77597656250006,-8.190429687499986],[123.92480468750003,-8.2724609375]]],[[[138.89511718750006,-8.388671874999957],[138.56337890625,-8.30908203125],[138.79619140625007,-8.173632812500017],[138.89511718750006,-8.388671874999957]]],[[[117.55634765625004,-8.367285156249949],[117.49052734375007,-8.183398437499974],[117.66503906249997,-8.148242187500003],[117.55634765625004,-8.367285156249949]]],[[[124.5755859375,-8.140820312499997],[125.05029296874997,-8.179589843749994],[125.13173828125,-8.326464843749989],[124.38066406250002,-8.41513671875002],[124.43066406249997,-8.18320312500002],[124.5755859375,-8.140820312499997]]],[[[127.8234375000001,-8.098828124999969],[128.11923828125012,-8.17070312499996],[128.02353515625006,-8.255371093749972],[127.82089843750012,-8.190234375000031],[127.8234375000001,-8.098828124999969]]],[[[122.7829101562501,-8.61171875],[121.65136718749997,-8.898730468749946],[121.41464843750006,-8.81484375],[121.32832031250004,-8.916894531250009],[121.03525390625012,-8.935449218749966],[120.55048828125004,-8.80185546875002],[119.909375,-8.857617187500011],[119.80791015625002,-8.697656250000023],[119.87480468750007,-8.419824218749994],[120.61025390625005,-8.24042968750004],[121.44453125000004,-8.57783203125004],[121.96650390625004,-8.455175781250006],[122.32324218749997,-8.628320312500023],[122.85048828125,-8.304394531250011],[122.91914062500004,-8.221875],[122.75859375000002,-8.185937499999952],[122.91699218749997,-8.105566406250006],[123.00595703125006,-8.329101562499986],[122.7829101562501,-8.61171875]]],[[[130.86220703125,-8.31875],[130.77519531250002,-8.34990234374996],[131.02011718750012,-8.091308593749943],[131.17636718750006,-8.130761718749994],[130.86220703125,-8.31875]]],[[[118.24238281250004,-8.317773437499994],[118.61191406250006,-8.28066406249998],[118.71386718749997,-8.41494140624998],[118.926171875,-8.297656249999974],[119.12968750000002,-8.668164062499969],[118.74589843750002,-8.735449218749991],[118.83261718750012,-8.833398437499966],[118.47861328125012,-8.856445312499957],[118.37890625000003,-8.674609375000031],[118.18994140624997,-8.840527343749997],[117.06132812500002,-9.099023437499994],[116.78847656250005,-9.006347656250028],[116.83505859375012,-8.532421875000026],[117.16484375000007,-8.367187500000014],[117.56708984375004,-8.426367187499991],[117.80605468750005,-8.711132812500011],[117.96953125000002,-8.728027343749986],[118.23486328124997,-8.591894531249963],[117.81484375000005,-8.342089843749974],[117.7552734375,-8.149511718749991],[118.11748046875007,-8.12226562500004],[118.24238281250004,-8.317773437499994]]],[[[115.44785156250012,-8.155175781249994],[115.70429687500004,-8.40712890624998],[115.14492187500005,-8.849023437500037],[115.05507812500005,-8.573046874999946],[114.61318359375,-8.37832031249998],[114.46757812500007,-8.166308593749946],[114.93847656249997,-8.18710937500002],[115.15400390625004,-8.065722656249974],[115.44785156250012,-8.155175781249994]]],[[[129.83886718749997,-7.954589843749986],[129.71347656250012,-8.04072265625004],[129.60898437500006,-7.803417968750011],[129.81298828124997,-7.819726562499952],[129.83886718749997,-7.954589843749986]]],[[[126.80097656250004,-7.667871093750009],[126.4720703125,-7.950390625000011],[126.04003906250003,-7.885839843750006],[125.79824218750005,-7.984570312499969],[125.97529296875004,-7.663378906249989],[126.21367187500002,-7.706738281250026],[126.60957031250004,-7.571777343749972],[126.80097656250004,-7.667871093750009]]],[[[127.41943359375003,-7.623046875000028],[127.37070312500012,-7.512792968749949],[127.47519531250012,-7.531054687500031],[127.41943359375003,-7.623046875000028]]],[[[138.53535156250004,-8.273632812499969],[138.2962890625,-8.405175781250037],[137.65039062499997,-8.386132812499966],[138.08183593750002,-7.566210937500003],[138.29550781250012,-7.4384765625],[138.76982421875002,-7.390429687499974],[138.98906250000002,-7.696093749999989],[138.53535156250004,-8.273632812499969]]],[[[131.3255859375,-7.999511718749986],[131.11376953125003,-7.997363281249989],[131.13779296875012,-7.684863281250017],[131.64345703125,-7.11279296875],[131.73613281250007,-7.197070312500017],[131.64384765625002,-7.266894531249946],[131.62441406250005,-7.626171874999955],[131.3255859375,-7.999511718749986]]],[[[131.98203125000006,-7.202050781249966],[131.75078125000002,-7.116796875],[131.92226562500005,-7.104492187499986],[131.98203125000006,-7.202050781249966]]],[[[128.6701171875001,-7.183300781249969],[128.52978515625003,-7.134570312499989],[128.62773437500007,-7.06875],[128.6701171875001,-7.183300781249969]]],[[[120.77441406250003,-7.118945312500003],[120.64082031250004,-7.115820312499991],[120.63339843750006,-7.018261718750011],[120.77441406250003,-7.118945312500003]]],[[[113.84453125000007,-7.105371093749994],[113.12695312499997,-7.224121093750028],[112.72587890625007,-7.072753906250014],[112.86806640625,-6.899902343749972],[113.06738281250003,-6.879980468749991],[113.97470703125012,-6.873046875],[114.0736328125,-6.960156249999983],[113.84453125000007,-7.105371093749994]]],[[[115.37705078125006,-6.97080078125002],[115.22031250000012,-6.952539062500037],[115.24052734375007,-6.861230468749994],[115.54609375000004,-6.938671874999955],[115.37705078125006,-6.97080078125002]]],[[[105.25283203125005,-6.640429687499946],[105.12138671875007,-6.614941406249997],[105.26054687500002,-6.523925781250014],[105.25283203125005,-6.640429687499946]]],[[[134.53681640625004,-6.442285156249994],[134.32275390624997,-6.84873046875002],[134.09082031249997,-6.833789062500003],[134.10703125000006,-6.471582031250009],[134.19462890625007,-6.459765625],[134.11464843750005,-6.190820312500009],[134.53681640625004,-6.442285156249994]]],[[[107.37392578125005,-6.007617187499989],[107.66679687500002,-6.215820312499957],[108.33017578125012,-6.286035156249966],[108.67783203125006,-6.790527343749972],[110.42626953124997,-6.947265625000028],[110.83476562500002,-6.424218749999952],[110.97226562500012,-6.435644531249977],[111.18154296875005,-6.686718749999969],[111.54033203125002,-6.648242187500031],[112.0873046875,-6.89335937499996],[112.53925781250004,-6.926464843749955],[112.64873046875007,-7.221289062499977],[112.7943359375,-7.304492187499974],[112.79453125000012,-7.55244140625004],[113.01357421875005,-7.657714843749986],[113.49765625000006,-7.723828124999955],[114.07070312500005,-7.633007812500011],[114.40927734375012,-7.79248046875],[114.38691406250004,-8.405175781250037],[114.58378906250002,-8.769628906250034],[113.25332031250005,-8.286718749999963],[112.67880859375006,-8.409179687499957],[111.50996093750004,-8.30507812499998],[110.60722656250002,-8.149414062499972],[109.28164062500005,-7.704882812500003],[108.74121093749997,-7.667089843750034],[108.45175781250006,-7.79697265625002],[107.91748046875003,-7.724121093750014],[107.28496093750007,-7.471679687500014],[106.45527343750004,-7.368652343749986],[106.51972656250004,-7.053710937499943],[106.19824218749997,-6.927832031249977],[105.25546875000012,-6.835253906250031],[105.37089843750002,-6.664355468750031],[105.48369140625007,-6.781542968750017],[105.65507812500002,-6.469531249999946],[105.78691406250002,-6.456933593749966],[105.86826171875006,-6.11640625000004],[106.075,-5.914160156249963],[106.82519531249997,-6.098242187499977],[107.0462890625,-5.90419921874998],[107.37392578125005,-6.007617187499989]]],[[[120.52832031249997,-6.2984375],[120.48730468749997,-6.464843749999972],[120.47734375000007,-5.775292968750009],[120.52832031249997,-6.2984375]]],[[[112.7194335937501,-5.81103515625],[112.58603515625006,-5.803613281249994],[112.69003906250006,-5.726171875000034],[112.7194335937501,-5.81103515625]]],[[[132.80712890625003,-5.850781250000011],[132.68144531250002,-5.91259765625],[132.63017578125002,-5.60703125],[132.80712890625003,-5.850781250000011]]],[[[134.74697265625,-5.707031249999957],[134.71416015625007,-6.29511718750004],[134.44111328125004,-6.334863281249966],[134.15488281250006,-6.06289062499998],[134.3019531250001,-6.009765624999986],[134.34306640625002,-5.833007812499943],[134.20537109375002,-5.707226562499997],[134.34130859375003,-5.712890624999986],[134.57080078124997,-5.42734375],[134.74697265625,-5.707031249999957]]],[[[132.92626953124997,-5.902050781249983],[132.84501953125002,-5.987988281249997],[133.13847656250002,-5.317871093749986],[133.11962890625003,-5.575976562499989],[132.92626953124997,-5.902050781249983]]],[[[102.36718750000003,-5.478710937499983],[102.1107421875,-5.32255859374996],[102.3717773437501,-5.366406250000011],[102.36718750000003,-5.478710937499983]]],[[[123.62675781250007,-5.271582031249963],[123.58261718750006,-5.36738281250004],[123.54277343750002,-5.271093749999963],[123.62675781250007,-5.271582031249963]]],[[[122.04296874999997,-5.437988281250028],[121.80849609375,-5.256152343750017],[121.91367187500012,-5.072265624999957],[122.04101562500003,-5.158789062499991],[122.04296874999997,-5.437988281250028]]],[[[122.64511718750012,-5.26943359374998],[122.5638671875,-5.3875],[122.28310546875,-5.319531249999969],[122.39628906250002,-5.069824218749986],[122.36894531250007,-4.767187499999977],[122.70195312500002,-4.61865234375],[122.75986328125012,-4.933886718750003],[122.61406250000007,-5.138671874999986],[122.64511718750012,-5.26943359374998]]],[[[123.17978515625006,-4.551171875000023],[123.195703125,-4.82265625],[123.05517578124997,-4.748242187500026],[122.97167968750003,-5.138476562500031],[123.18730468750007,-5.333007812499957],[122.96875,-5.405761718749943],[122.81210937500012,-5.671289062499952],[122.64501953124997,-5.663378906250031],[122.58642578124997,-5.488867187500006],[122.76650390625005,-5.210156249999983],[122.85332031250007,-4.618359375000026],[123.074609375,-4.38691406250004],[123.17978515625006,-4.551171875000023]]],[[[133.57080078124997,-4.245898437500003],[133.621875,-4.299316406249957],[133.32089843750006,-4.111035156249969],[133.57080078124997,-4.245898437500003]]],[[[123.2423828125001,-4.112988281250011],[123.07617187499997,-4.227148437499991],[122.96904296875002,-4.029980468749969],[123.21191406250003,-3.997558593750028],[123.2423828125001,-4.112988281250011]]],[[[128.56259765625012,-3.58544921875],[128.39160156250003,-3.637890625000026],[128.45156250000005,-3.514746093749991],[128.56259765625012,-3.58544921875]]],[[[128.2755859375001,-3.67460937499996],[127.97802734374997,-3.770996093749972],[127.925,-3.69931640625002],[128.32910156249997,-3.51591796874996],[128.2755859375001,-3.67460937499996]]],[[[116.42412109375007,-3.464453124999963],[116.38779296875012,-3.636718749999972],[116.3265625,-3.539062499999972],[116.42412109375007,-3.464453124999963]]],[[[116.30332031250006,-3.868164062499957],[116.05878906250004,-4.006933593749991],[116.06357421875006,-3.457910156249952],[116.26972656250004,-3.251074218750006],[116.30332031250006,-3.868164062499957]]],[[[126.86113281250007,-3.087890624999986],[127.22734375000007,-3.391015625],[127.22958984375006,-3.633007812500011],[126.68632812500007,-3.823632812500037],[126.21455078125004,-3.605175781250026],[126.05654296875,-3.420996093749991],[126.08828125,-3.105468750000014],[126.86113281250007,-3.087890624999986]]],[[[106.88642578125004,-3.005273437500023],[106.7428710937501,-2.932812500000011],[106.91064453124997,-2.93398437499998],[106.88642578125004,-3.005273437500023]]],[[[129.75468750000007,-2.865820312500034],[130.3791015625001,-2.989355468749977],[130.56992187500006,-3.130859375000028],[130.85996093750006,-3.570312500000028],[130.805078125,-3.85771484374996],[129.844140625,-3.327148437499957],[129.51171875000003,-3.32851562499998],[129.46767578125005,-3.453222656249977],[128.8625,-3.234960937500006],[128.51660156249997,-3.449121093750037],[128.13203125000004,-3.157421875000026],[127.90234374999997,-3.496289062499955],[127.87792968749997,-3.222070312499966],[128.19853515625002,-2.865917968749969],[128.99111328125,-2.82851562499998],[129.17441406250006,-2.933496093749966],[129.48417968750002,-2.785742187499977],[129.75468750000007,-2.865820312500034]]],[[[100.42509765625007,-3.182910156249974],[100.46513671875007,-3.32851562499998],[100.20429687500004,-2.98681640625],[100.19853515625002,-2.785546875000023],[100.45458984375003,-3.001953124999972],[100.42509765625007,-3.182910156249974]]],[[[108.2072265625001,-2.997656249999977],[108.05527343750006,-3.22685546874996],[107.85820312500002,-3.086328125000023],[107.61445312500004,-3.209375],[107.56347656250003,-2.920117187499997],[107.66630859375002,-2.566308593750037],[107.83779296875005,-2.530273437499972],[108.21513671875002,-2.696972656250011],[108.29062500000012,-2.829980468750023],[108.2072265625001,-2.997656249999977]]],[[[100.20410156249997,-2.741015625000017],[100.01494140625007,-2.819726562499966],[99.98789062500006,-2.525390624999957],[100.20410156249997,-2.741015625000017]]],[[[99.84306640625007,-2.343066406250031],[99.60703125000012,-2.257519531250011],[99.57216796875005,-2.025781249999966],[99.84306640625007,-2.343066406250031]]],[[[126.055078125,-2.451269531249963],[125.86289062500006,-2.077148437499943],[125.92275390625,-1.974804687499969],[126.055078125,-2.451269531249963]]],[[[126.02421875000007,-1.789746093750011],[126.33173828125004,-1.822851562500006],[125.47919921875004,-1.940039062499991],[125.38720703124997,-1.843066406249946],[126.02421875000007,-1.789746093750011]]],[[[130.35332031250007,-1.690527343749963],[130.41884765625,-1.971289062499963],[130.24804687500003,-2.047753906249994],[129.7376953125,-1.866894531250011],[130.35332031250007,-1.690527343749963]]],[[[124.96953125000007,-1.70546875],[125.18789062500005,-1.712890624999986],[125.31406250000006,-1.877148437499969],[124.41777343750002,-2.005175781250031],[124.32968750000012,-1.858886718749972],[124.41757812500006,-1.659277343749991],[124.96953125000007,-1.70546875]]],[[[135.47421875000006,-1.591796875000014],[136.89257812500003,-1.799707031249994],[136.22812500000012,-1.893652343749949],[135.47421875000006,-1.591796875000014]]],[[[108.953125,-1.61962890625],[108.83789062499997,-1.661621093750028],[108.80371093750003,-1.567773437499994],[108.953125,-1.61962890625]]],[[[106.04570312500002,-1.669433593750014],[106.36591796875004,-2.464843749999972],[106.81845703125006,-2.573339843749963],[106.6120117187501,-2.895507812499957],[106.66718750000004,-3.071777343749986],[105.99873046875004,-2.824902343749955],[105.7858398437501,-2.18134765625004],[105.13339843750012,-2.042578125],[105.45957031250006,-1.574707031249986],[105.58544921875003,-1.526757812499994],[105.7008789062501,-1.731054687499963],[105.7204101562501,-1.533886718750026],[105.91005859375,-1.504980468749991],[106.04570312500002,-1.669433593750014]]],[[[123.59755859375,-1.704296875000011],[123.48251953125006,-1.681445312499974],[123.52851562500004,-1.502832031250009],[123.59755859375,-1.704296875000011]]],[[[128.1530273437501,-1.66054687499998],[127.56162109375012,-1.728515624999972],[127.39501953125003,-1.589843749999972],[127.64667968750004,-1.332421875],[128.1530273437501,-1.66054687499998]]],[[[123.2123046875,-1.171289062499966],[123.23779296874997,-1.389355468749983],[123.43476562500004,-1.236816406249986],[123.54726562500005,-1.337402343749957],[123.51191406250004,-1.447363281249977],[123.27490234374997,-1.437207031249955],[123.17294921875006,-1.616015624999974],[123.15039062500003,-1.304492187500003],[122.89042968750007,-1.58720703124996],[122.81083984375002,-1.432128906249986],[122.90800781250002,-1.182226562499963],[123.2123046875,-1.171289062499966]]],[[[109.71025390625007,-1.1806640625],[109.46367187500002,-1.277539062500026],[109.4759765625,-0.9853515625],[109.74335937500004,-1.039355468749989],[109.71025390625007,-1.1806640625]]],[[[134.96533203124997,-1.116015624999974],[134.86171875,-1.114160156249952],[134.82792968750002,-0.978808593750003],[134.99628906250004,-1.03408203124998],[134.96533203124997,-1.116015624999974]]],[[[99.16386718750007,-1.777929687500006],[98.82773437500006,-1.609960937499977],[98.60175781250004,-1.197851562499949],[98.67607421875007,-0.970507812500003],[98.93261718750003,-0.954003906250009],[99.2672851562501,-1.62773437499996],[99.16386718750007,-1.777929687500006]]],[[[131.00185546875005,-1.315527343750034],[130.78232421875006,-1.255468749999963],[130.67294921875006,-0.959765625000031],[131.03300781250007,-0.917578124999963],[131.00185546875005,-1.315527343750034]]],[[[135.38300781250004,-0.6513671875],[135.89355468749997,-0.725781249999969],[136.37529296875007,-1.094042968750031],[136.1647460937501,-1.214746093750023],[135.91503906250003,-1.178417968749997],[135.74707031249997,-0.823046874999974],[135.64570312500004,-0.881933593749991],[135.38300781250004,-0.6513671875]]],[[[127.30039062500012,-0.780957031250026],[127.1564453125001,-0.760937500000026],[127.20908203125006,-0.619335937499955],[127.30039062500012,-0.780957031250026]]],[[[130.6266601562501,-0.528710937499966],[130.46542968750006,-0.486523437499983],[130.6159179687501,-0.417285156250003],[130.6266601562501,-0.528710937499966]]],[[[121.86435546875012,-0.406835937500006],[121.88125,-0.502636718749983],[121.65527343749997,-0.526171874999989],[121.86435546875012,-0.406835937500006]]],[[[140.97343750000007,-2.609765625],[140.97353515625,-2.803417968750026],[140.975,-6.346093750000023],[140.86230468749997,-6.740039062499989],[140.97519531250006,-6.90537109375002],[140.97617187500012,-9.11875],[140.00292968749997,-8.19550781250004],[140.11699218750002,-7.923730468750009],[139.93476562500004,-8.101171875],[139.38564453125,-8.189062499999963],[139.24882812500002,-7.982421874999972],[138.890625,-8.237792968749943],[139.08798828125012,-7.587207031250017],[138.74794921875,-7.25146484375],[139.17685546875006,-7.1904296875],[138.84570312500003,-7.13632812499999],[138.60136718750007,-6.936523437499972],[138.86455078125007,-6.858398437499943],[138.43867187500004,-6.343359375],[138.2962890625,-5.94902343749996],[138.37460937500006,-5.84365234374998],[138.19960937500005,-5.80703125],[138.33964843750007,-5.675683593749966],[138.08710937500004,-5.70917968750004],[138.06083984375002,-5.46523437499998],[137.27978515624997,-4.945410156249949],[136.61884765625004,-4.81875],[135.97968750000004,-4.530859374999963],[135.19560546875007,-4.450683593749972],[134.67968749999997,-4.079101562499943],[134.70654296875003,-3.954785156250026],[134.88652343750007,-3.938476562499986],[134.26621093750012,-3.945800781249972],[134.14707031250006,-3.79677734374998],[133.97382812500004,-3.817968750000034],[133.67832031250006,-3.4794921875],[133.8415039062501,-3.054785156249991],[133.70039062500004,-3.0875],[133.653125,-3.364355468749991],[133.51816406250012,-3.411914062500003],[133.40087890625003,-3.899023437500034],[133.24873046875004,-4.062304687499989],[132.91445312500005,-4.05693359374996],[132.75390625000003,-3.703613281250014],[132.86972656250006,-3.550976562499997],[132.75136718750005,-3.294628906249997],[131.97119140624997,-2.788574218750014],[132.2306640625001,-2.680371093749997],[132.725,-2.789062500000028],[133.19101562500006,-2.43779296874996],[133.70009765625005,-2.624609375],[133.75332031250005,-2.450683593750014],[133.90488281250012,-2.390917968750003],[133.79101562500003,-2.293652343749997],[133.92158203125004,-2.102050781249957],[132.96279296875005,-2.272558593749963],[132.30761718749997,-2.24228515625002],[132.02343749999997,-1.99033203125002],[131.93037109375004,-1.559667968750034],[131.29375,-1.393457031250009],[130.99589843750007,-1.42470703124998],[131.1908203125,-1.165820312500003],[131.2572265625,-0.855468750000014],[131.80429687500006,-0.703808593750026],[132.39375,-0.355468750000028],[132.85644531250003,-0.417382812500023],[133.47265624999997,-0.726171874999963],[133.97451171875,-0.744335937500026],[134.11152343750004,-0.84677734375002],[134.07197265625004,-1.001855468749994],[134.25957031250007,-1.362988281250026],[134.105859375,-1.720996093749946],[134.19482421875003,-2.309082031249943],[134.45996093749997,-2.83232421874996],[134.48330078125,-2.583007812499972],[134.62744140624997,-2.536718749999963],[134.70214843749997,-2.933593749999986],[134.84335937500006,-2.909179687499986],[134.88681640625006,-3.209863281249966],[135.25156250000012,-3.368554687499966],[135.48662109375002,-3.34511718749998],[135.85917968750002,-2.99531250000004],[136.38994140625002,-2.273339843750037],[137.07207031250002,-2.105078124999949],[137.1710937500001,-2.025488281249991],[137.1234375,-1.840917968749963],[137.80625000000012,-1.483203125],[139.78955078125003,-2.34824218750002],[140.62255859374997,-2.44580078125],[140.74746093750005,-2.607128906249997],[140.97343750000007,-2.609765625]]],[[[104.47421875000012,-0.334667968749955],[104.59013671875002,-0.466601562500017],[104.36318359375,-0.658593749999966],[104.25712890625002,-0.463281249999966],[104.47421875000012,-0.334667968749955]]],[[[127.56699218750006,-0.318945312499949],[127.68242187500002,-0.46835937500002],[127.60498046874997,-0.610156249999946],[127.88017578125002,-0.808691406249991],[127.7611328125,-0.883691406249994],[127.62382812500002,-0.76601562499999],[127.46269531250002,-0.80595703124996],[127.46865234375,-0.64296875],[127.3,-0.500292968749946],[127.32509765625,-0.335839843750023],[127.45517578125012,-0.406347656249991],[127.56699218750006,-0.318945312499949]]],[[[127.24990234375005,-0.4953125],[127.11914062500003,-0.520507812499986],[127.12646484375003,-0.278613281250003],[127.29003906250003,-0.284375],[127.24990234375005,-0.4953125]]],[[[103.73652343750004,-0.347949218750003],[103.461328125,-0.357617187500011],[103.54892578125006,-0.227539062499986],[103.73652343750004,-0.347949218750003]]],[[[130.81328125000007,-0.004101562500026],[131.27685546875003,-0.149804687499952],[131.33974609375005,-0.290332031249989],[131.00537109374997,-0.360742187500037],[130.62216796875006,-0.0859375],[130.89921875000002,-0.344433593749997],[130.7501953125001,-0.44384765625],[130.6886718750001,-0.296582031250011],[130.55078124999997,-0.366406250000026],[130.23662109375002,-0.209667968749983],[130.3625,-0.072851562500006],[130.81328125000007,-0.004101562500026]]],[[[98.45927734375007,-0.530468749999969],[98.30966796875012,-0.531835937499977],[98.4271484375,-0.226464843750037],[98.3229492187501,-0.000781249999974],[98.54414062500004,-0.257617187499989],[98.45927734375007,-0.530468749999969]]],[[[104.77861328125007,-0.175976562499955],[105.00537109374997,-0.282812499999963],[104.44707031250002,-0.189160156249983],[104.54267578125004,0.01772460937498],[104.77861328125007,-0.175976562499955]]],[[[103.28447265625002,0.541943359375011],[103.13955078125,0.549072265625043],[103.18740234375,0.699755859375017],[103.28447265625002,0.541943359375011]]],[[[103.0275390625001,0.746630859374974],[102.4904296875001,0.856640625],[102.50664062500002,1.088769531250037],[103.00244140624997,0.859277343750009],[103.0275390625001,0.746630859374974]]],[[[103.42392578125012,1.048339843749972],[103.31542968750003,1.071289062500028],[103.37998046875006,1.133642578125034],[103.42392578125012,1.048339843749972]]],[[[103.16640625000005,0.870166015625003],[102.7018554687501,1.0537109375],[102.72558593749997,1.158837890625023],[102.99941406250005,1.067773437500023],[103.16640625000005,0.870166015625003]]],[[[104.02480468750005,1.180566406250009],[104.13984375000004,1.165576171874974],[104.06611328125004,0.989550781249989],[103.93222656250012,1.071386718749963],[104.02480468750005,1.180566406250009]]],[[[104.58535156250005,1.21611328124996],[104.66289062500002,1.04951171875004],[104.57519531250003,0.831933593750037],[104.43925781250002,1.050439453125051],[104.25195312499997,1.014892578125],[104.36181640624997,1.18149414062502],[104.58535156250005,1.21611328124996]]],[[[102.4271484375,0.990136718750023],[102.27958984375002,1.075683593750043],[102.25634765625003,1.397070312499963],[102.44287109374997,1.234228515625006],[102.4271484375,0.990136718750023]]],[[[97.48154296875006,1.465087890624972],[97.93193359375002,0.973925781250003],[97.82041015625012,0.564453124999986],[97.683984375,0.596093750000037],[97.60390625000005,0.83388671874998],[97.40537109375012,0.946972656250026],[97.07919921875006,1.425488281249983],[97.35595703124997,1.539746093749997],[97.48154296875006,1.465087890624972]]],[[[102.49189453125004,1.459179687500011],[102.49941406250005,1.330908203124991],[102.02402343750012,1.607958984375031],[102.49189453125004,1.459179687500011]]],[[[124.88886718750004,0.995312500000011],[124.42753906250002,0.470605468750051],[123.75380859375,0.305517578124991],[123.26542968750007,0.326611328125026],[122.996875,0.493505859375006],[121.01298828125002,0.441699218750017],[120.57900390625,0.5283203125],[120.19228515625,0.268505859374997],[120.01328125000012,-0.196191406249994],[120.062890625,-0.555566406250023],[120.240625,-0.868261718749949],[120.51757812499997,-1.039453125],[120.66738281250005,-1.370117187499972],[121.14853515625012,-1.33945312500002],[121.5755859375,-0.828515625000023],[121.96962890625005,-0.933300781249969],[122.27998046875004,-0.757031250000026],[122.88876953125006,-0.755175781250003],[122.8294921875,-0.658886718750026],[123.17148437500012,-0.57070312499999],[123.37968750000002,-0.648535156249949],[123.43417968750006,-0.778222656249994],[123.37792968749997,-1.004101562500011],[122.90283203125003,-0.900976562499963],[122.25068359375004,-1.555273437500034],[121.8585937500001,-1.69326171874998],[121.65097656250006,-1.895410156249952],[121.35546874999997,-1.878222656250003],[122.29169921875004,-2.907617187500023],[122.39902343750006,-3.200878906249997],[122.25292968749997,-3.620410156250017],[122.68964843750004,-4.084472656249972],[122.84794921875002,-4.064550781250006],[122.8722656250001,-4.391992187500009],[122.71972656250003,-4.340722656249952],[122.11425781250003,-4.540234375000011],[122.03808593749997,-4.832421875000023],[121.58867187500007,-4.759570312500017],[121.48652343750004,-4.581054687499972],[121.61806640625,-4.092675781249952],[120.89179687500004,-3.520605468750034],[121.05429687500012,-3.167089843749949],[121.0521484375,-2.751660156249955],[120.87939453124997,-2.64560546875002],[120.65361328125002,-2.667578124999977],[120.26103515625007,-2.949316406249991],[120.43662109375012,-3.70732421874996],[120.42011718750004,-4.617382812500011],[120.27929687499997,-5.146093749999977],[120.4303710937501,-5.591015625000026],[119.9515625,-5.577636718749972],[119.71728515625003,-5.693359375000014],[119.55742187500007,-5.611035156250026],[119.36035156249997,-5.314160156250026],[119.59404296875007,-4.523144531249997],[119.62363281250006,-4.034375],[119.46748046875004,-3.512988281249989],[118.99462890624997,-3.537597656250028],[118.86767578124997,-3.39804687500002],[118.78330078125006,-2.720800781249977],[119.09218750000005,-2.482910156250014],[119.32187500000012,-1.929687500000014],[119.308984375,-1.408203125],[119.508203125,-0.906738281249972],[119.71132812500005,-0.680761718750034],[119.84433593750006,-0.861914062499991],[119.721875,-0.088476562499991],[119.865625,0.040087890625003],[119.80927734375004,0.238671875000051],[119.9132812500001,0.445068359375],[120.26953125000003,0.970800781249991],[120.60253906249997,0.854394531249994],[120.86796875000007,1.25283203124998],[121.0817382812501,1.327636718750028],[121.40410156250002,1.243603515624969],[121.59179687499997,1.067968749999977],[122.43662109375006,1.018066406250028],[122.83828125,0.845703125],[123.06650390625006,0.941796875000037],[123.93076171875006,0.850439453124977],[124.53369140624997,1.230468750000043],[124.94707031250002,1.672167968749974],[125.11093750000012,1.685693359374966],[125.2337890625,1.502294921875006],[124.88886718750004,0.995312500000011]]],[[[101.70810546875006,2.078417968750045],[101.71943359375004,1.789160156250006],[101.50078125000002,1.733203124999974],[101.40966796875003,2.021679687500026],[101.70810546875006,2.078417968750045]]],[[[127.73271484375007,0.848144531250043],[127.8810546875001,0.832128906249977],[127.96728515624997,1.042578125000048],[128.16074218750006,1.1578125],[128.22246093750002,1.400634765624986],[128.68837890625,1.572558593750017],[128.70263671874997,1.106396484374997],[128.29882812500003,0.87680664062502],[128.26064453125,0.733789062500023],[128.61123046875,0.549951171875051],[128.89960937500004,0.216259765625011],[127.9831054687501,0.471875],[127.88740234375004,0.298339843750043],[127.97783203125002,-0.24833984374996],[128.4254882812501,-0.892675781249949],[128.04638671875003,-0.706054687499943],[127.69160156250004,-0.241894531249983],[127.70869140625004,0.288085937499986],[127.53710937500003,0.610888671875031],[127.60800781250006,0.848242187499977],[127.42851562500002,1.139990234374991],[127.63173828125,1.843701171875011],[128.03642578125002,2.199023437500017],[127.88681640625012,1.83295898437504],[128.0109375000001,1.701220703125031],[128.01171874999997,1.331738281249983],[127.65283203124997,1.013867187499969],[127.73271484375007,0.848144531250043]]],[[[97.3341796875001,2.075634765625011],[97.10830078125,2.216894531250006],[97.29140625,2.200830078125023],[97.3341796875001,2.075634765625011]]],[[[128.45390625000002,2.051757812500028],[128.29589843749997,2.034716796875017],[128.2179687500001,2.297460937499991],[128.60214843750012,2.59760742187504],[128.68847656250003,2.473681640625017],[128.62324218750004,2.224414062500031],[128.45390625000002,2.051757812500028]]],[[[96.46367187500002,2.360009765625037],[95.80859374999997,2.655615234375034],[95.7171875,2.825976562500017],[95.89580078125007,2.8890625],[96.41728515625007,2.515185546875031],[96.46367187500002,2.360009765625037]]],[[[108.8875,2.905419921875037],[108.7865234375,2.885644531250009],[108.88574218750003,2.998974609374997],[108.8875,2.905419921875037]]],[[[105.76035156250006,2.863037109375014],[105.69218750000002,3.0625],[105.83671875000007,2.97651367187504],[105.76035156250006,2.863037109375014]]],[[[106.28525390625006,3.15712890624998],[106.28369140624997,3.088232421874977],[106.20097656250002,3.204882812500031],[106.28525390625006,3.15712890624998]]],[[[117.65839843750004,3.280517578124986],[117.54785156250003,3.43198242187502],[117.68085937500004,3.407519531250017],[117.65839843750004,3.280517578124986]]],[[[125.65810546875,3.436035156250043],[125.51152343750007,3.461132812500011],[125.46884765625006,3.73325195312502],[125.65810546875,3.436035156250043]]],[[[117.88476562499997,4.186132812500006],[117.92285156250003,4.054296874999977],[117.73681640624997,4.004003906250034],[117.64902343750012,4.168994140624974],[117.88476562499997,4.186132812500006]]],[[[108.31601562500006,3.689648437500026],[108.10039062500002,3.70454101562504],[108.24326171875006,3.810351562500017],[108.00234375,3.982861328124983],[108.24833984375002,4.21713867187502],[108.39287109375007,3.986181640625034],[108.31601562500006,3.689648437500026]]],[[[117.5744140625001,4.17060546875004],[117.46533203124997,4.076074218749966],[117.77724609375005,3.689257812500031],[117.05595703125007,3.622656249999963],[117.34628906250006,3.426611328124991],[117.35244140625,3.19375],[117.61064453125002,3.064355468749994],[117.56914062500002,2.92929687500002],[117.69765625,2.887304687499991],[117.6388671875001,2.825292968749963],[118.0666015625001,2.317822265624969],[117.7892578125001,2.026855468750014],[118.98496093750006,0.982128906249983],[118.53476562500006,0.813525390625017],[118.19609375000002,0.874365234374977],[117.91162109374997,1.098681640625017],[117.96425781250005,0.889550781250051],[117.74511718749997,0.72963867187498],[117.52216796875004,0.235888671875017],[117.46289062500003,-0.323730468749957],[117.5625,-0.770898437500009],[116.91396484375,-1.223632812499972],[116.73984375000006,-1.044238281250017],[116.75341796874997,-1.327343749999955],[116.27548828125006,-1.784863281249997],[116.42431640625003,-1.784863281249997],[116.45195312500002,-1.923144531250017],[116.31396484374997,-2.139843750000011],[116.56542968749997,-2.299707031249994],[116.52929687499997,-2.51054687499996],[116.31679687500005,-2.55185546875002],[116.33066406250012,-2.902148437499974],[116.16630859375002,-2.934570312500014],[116.2572265625,-3.126367187500009],[115.95615234375012,-3.595019531250003],[114.6935546875001,-4.169726562500017],[114.5255859375001,-3.376660156250011],[114.44599609375004,-3.481835937500037],[114.34433593750012,-3.444433593749963],[114.34433593750012,-3.23515625],[114.23632812500003,-3.36113281249996],[114.0822265625001,-3.27890625],[113.70507812499997,-3.45527343750004],[113.6100585937501,-3.195703125],[113.34316406250005,-3.246484374999966],[113.03398437500002,-2.933496093749966],[112.97148437500002,-3.187109375000034],[112.75800781250004,-3.322167968750009],[112.60029296875004,-3.400488281249977],[112.28496093750002,-3.32099609375004],[111.85810546875004,-3.551855468750006],[111.82304687500007,-3.057226562499949],[111.69472656250005,-2.88945312499996],[110.93007812500005,-3.071093750000017],[110.82968750000012,-2.9951171875],[110.89931640625,-2.908593749999952],[110.703125,-3.020898437500009],[110.57402343750007,-2.89140625],[110.25605468750004,-2.966113281249946],[110.09658203125,-2.001367187499966],[109.95986328125,-1.862792968749972],[109.98330078125,-1.274804687499994],[109.78740234375007,-1.011328124999963],[109.25878906250003,-0.807421874999989],[109.37275390625004,-0.638183593749972],[109.12109375000003,-0.39091796874996],[109.2575195312501,0.031152343750051],[108.94453125000004,0.355664062499997],[108.91679687500007,0.912646484375045],[108.95859375000006,1.134619140624963],[109.1315429687501,1.253857421875011],[109.01025390624997,1.239648437500051],[109.07587890625004,1.495898437500031],[109.37851562500006,1.922705078125034],[109.62890625000003,2.027539062499983],[109.53896484375,1.89619140625004],[109.65400390625004,1.614892578125023],[110.50576171875005,0.861962890625023],[111.10136718750002,1.050537109374986],[111.80898437500005,1.011669921874969],[112.078515625,1.143359374999974],[112.1857421875001,1.4390625],[112.47617187500006,1.559082031250028],[112.94296875000006,1.566992187500034],[113.00654296875004,1.433886718750003],[113.6222656250001,1.2359375],[113.90234375000003,1.434277343749997],[114.5125,1.452001953124963],[114.83056640625003,1.980029296874989],[114.78642578125002,2.250488281250014],[115.1791015625,2.523193359374972],[115.08076171875004,2.63422851562504],[115.117578125,2.89487304687502],[115.24697265625005,3.025927734374989],[115.45439453125002,3.034326171875009],[115.67880859375006,4.193017578124994],[115.86074218750005,4.348046875000037],[116.51474609375006,4.370800781249969],[117.10058593750003,4.337060546875023],[117.5744140625001,4.17060546875004]]],[[[126.81660156250004,4.033496093750003],[126.70449218750005,4.070996093749997],[126.81357421875006,4.258496093750011],[126.72207031250005,4.344189453124969],[126.75732421874997,4.547900390624989],[126.9210937500001,4.291015624999972],[126.81660156250004,4.033496093750003]]],[[[96.49257812500005,5.229345703124991],[97.54716796875002,5.205859375],[98.2484375,4.41455078125],[98.3073242187501,4.09287109375002],[99.73232421875005,3.183056640625026],[100.523828125,2.18916015625004],[100.88789062500004,1.948242187499986],[100.82822265625012,2.242578125],[101.04619140625002,2.257470703125023],[101.47666015625006,1.693066406250054],[102.019921875,1.442138671875],[102.38994140625007,0.84199218750004],[103.03183593750006,0.57890625],[103.0075195312501,0.415332031249974],[102.55,0.216455078124966],[103.33896484375012,0.513720703125045],[103.67265625000007,0.288916015624977],[103.78671875000012,0.046972656249991],[103.42851562500007,-0.19179687499998],[103.40517578125005,-0.36220703124998],[103.5091796875,-0.465527343749969],[103.43857421875006,-0.575585937500009],[103.72109375,-0.886718749999986],[104.36054687500004,-1.038378906249974],[104.51591796875002,-1.81943359375002],[104.84521484375003,-2.092968749999969],[104.65078125000005,-2.595214843749972],[104.97080078125012,-2.370898437500017],[105.39697265624997,-2.380175781249946],[106.0443359375,-3.10625],[105.84375,-3.61367187499998],[105.93046875000007,-3.833007812499986],[105.83144531250005,-4.16289062499996],[105.88720703124997,-5.009570312499974],[105.74833984375007,-5.818261718749966],[105.34941406250007,-5.549511718750011],[105.08134765625002,-5.74550781249998],[104.63955078125005,-5.520410156250037],[104.68398437500005,-5.89267578125002],[104.60156249999997,-5.90458984374996],[103.8314453125,-5.079589843750028],[102.53769531250006,-4.152148437499989],[102.12753906250006,-3.599218749999963],[101.57861328124997,-3.166992187500014],[100.88955078125,-2.248535156249957],[100.85527343750002,-1.934179687499949],[100.30820312500006,-0.82666015625],[99.66982421875005,0.045068359375037],[99.15917968749997,0.351757812499997],[98.59531250000006,1.864599609375006],[97.70078125000006,2.358544921875009],[97.59082031249997,2.846582031250037],[97.3913085937501,2.975292968749969],[96.9689453125001,3.575146484374969],[96.44472656250005,3.81630859374998],[95.57861328125003,4.661962890625048],[95.20664062500006,5.284033203125034],[95.22783203125002,5.564794921875034],[95.62890625000003,5.609082031249997],[96.13330078125003,5.294287109374991],[96.49257812500005,5.229345703124991]]]]},"properties":{"name":"Indonesia","childNum":107}},{"geometry":{"type":"Polygon","coordinates":[[[-4.412060546874983,54.185351562499996],[-4.785351562499983,54.073046875],[-4.424707031249994,54.407177734375],[-4.412060546874983,54.185351562499996]]]},"properties":{"name":"Isle of Man","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[75.32221348233018,32.28516356678968],[75.62496871116024,32.28516356678968],[75.73585997688717,32.78417426256088],[76.32728006076415,32.87658365066666],[76.62299010270264,33.32014871357439],[77.06655516561037,33.301666835953235],[77.71342088235082,32.6917648744551],[78.10154031239509,32.87658365066666],[78.49194250885338,32.53122786149202],[78.38964843749997,32.51987304687498],[78.41748046874997,32.466699218749994],[78.4552734375001,32.30034179687502],[78.49589843750002,32.21577148437504],[78.72558593750009,31.983789062500023],[78.71972656250009,31.887646484374983],[78.69345703125006,31.740380859374994],[78.7550781250001,31.55029296875],[78.74355468750005,31.323779296875017],[79.10712890625004,31.402636718750102],[79.38847656250013,31.064208984375085],[79.66425781250004,30.96523437499999],[79.92451171875004,30.888769531250034],[80.20712890625006,30.683740234375023],[80.19121093750002,30.56840820312496],[80.87353515625003,30.290576171875045],[80.98544921875006,30.23710937499999],[81.01025390625014,30.164501953125097],[80.96611328125002,30.180029296875063],[80.90761718750005,30.171923828125017],[80.84814453125009,30.139746093750034],[80.81992187500012,30.119335937499955],[80.68408203125014,29.994335937500068],[80.54902343750015,29.899804687499994],[80.40185546875003,29.730273437500102],[80.31689453125014,29.572070312500017],[80.25488281250009,29.423339843750114],[80.25595703125006,29.318017578125136],[80.23300781250006,29.194628906250045],[80.16953125000012,29.124316406250102],[80.13046875000006,29.100390625000045],[80.08457031249995,28.994189453125074],[80.05166015625,28.870312500000068],[80.07070312500005,28.830175781250063],[80.22656250000003,28.723339843750125],[80.32480468750012,28.66640625000008],[80.41855468749995,28.61201171875001],[80.47910156250012,28.604882812499994],[80.49580078125015,28.635791015625074],[80.51787109375002,28.665185546875023],[80.58701171875006,28.64960937500004],[81.16894531250014,28.335009765625074],[81.85263671875018,27.867089843750136],[81.89687500000011,27.87446289062504],[81.94521484375005,27.89926757812495],[81.98769531250016,27.91376953125004],[82.03701171875,27.90058593750004],[82.11191406250006,27.86494140625004],[82.28769531250018,27.756542968749983],[82.45136718750004,27.671826171874955],[82.62988281249997,27.687060546875045],[82.67734375000006,27.67343749999995],[82.71083984375005,27.596679687500114],[82.73339843750003,27.518994140625097],[83.28974609375004,27.370996093750136],[83.36943359375002,27.410253906249977],[83.38398437500004,27.444824218750085],[83.44716796875011,27.46533203125],[83.55166015625011,27.456347656249932],[83.74697265625011,27.395947265625068],[83.8288085937501,27.377832031250108],[84.09101562499993,27.491357421875136],[84.22978515625007,27.427832031250006],[84.48085937500005,27.348193359375102],[84.61015625000002,27.298681640624977],[84.64072265625012,27.249853515624977],[84.65478515625014,27.20366210937499],[84.65380859375009,27.09169921875008],[84.68535156250013,27.041015625000057],[85.19179687500011,26.766552734375097],[85.29296875000009,26.741015625000045],[85.56845703125012,26.839843750000114],[85.64843749999997,26.829003906250023],[85.69990234375004,26.781640624999966],[85.73730468750003,26.639746093750034],[85.79453125000006,26.60415039062505],[86.00732421875009,26.64936523437504],[86.70136718750015,26.435058593750057],[87.01640625000002,26.555419921875085],[87.2874023437499,26.360302734375125],[87.41357421875014,26.42294921875009],[87.84921875000006,26.43691406250008],[87.99511718750014,26.38237304687499],[88.02695312500023,26.395019531250085],[88.05488281250004,26.43002929687492],[88.11152343750004,26.58642578125],[88.1615234375,26.724804687500125],[88.15722656250009,26.807324218750068],[88.1110351562501,26.928466796875057],[87.99316406250009,27.086083984374994],[87.984375,27.133935546874994],[88.14697265625014,27.749218750000097],[88.15029296875011,27.843310546875074],[88.10976562500005,27.87060546874997],[88.10898437499995,27.93300781250005],[88.14111328125003,27.948925781250097],[88.27519531250013,27.96884765625009],[88.42597656250015,28.011669921875097],[88.57792968750002,28.093359375000034],[88.80371093750003,28.006933593750034],[88.74902343749997,27.521875000000136],[88.7648437500001,27.429882812500068],[88.83251953125003,27.362841796875074],[88.89140625000002,27.316064453125136],[88.88164062500007,27.29746093750009],[88.76035156250006,27.21811523437509],[88.73876953125009,27.175585937499932],[88.85761718750015,26.961474609375017],[89.14824218750002,26.816162109375085],[89.33212890625018,26.848632812500114],[89.58613281250004,26.778955078125136],[89.60996093750012,26.719433593750097],[89.71093750000009,26.713916015625045],[89.76386718750004,26.7015625],[89.94316406250013,26.723925781249932],[90.12294921875011,26.754589843749983],[90.20605468749997,26.847509765625063],[90.34589843750004,26.890332031250097],[90.73964843750005,26.771679687500068],[91.2865234375,26.78994140625008],[91.42675781249997,26.867089843749966],[91.45585937500013,26.866894531250125],[91.51757812500009,26.807324218750068],[91.67158203124993,26.80200195312503],[91.84208984375013,26.852978515625125],[91.94375,26.860839843750114],[91.99833984375013,26.85498046875],[92.04970703125016,26.87485351562495],[92.73155507489682,26.833697862861648],[93.30975376159499,26.784950522650554],[93.61047043679247,27.32239435188504],[94.06979001484449,27.589407158584788],[95.10800937321915,27.749636881153737],[95.74000740838363,28.116850432722256],[96.19577594042592,28.04291597700983],[96.96279296875,27.698291015625017],[96.88359375000013,27.514843750000125],[96.90195312500012,27.43959960937508],[97.10371093749993,27.163330078125114],[97.10205078125003,27.115429687500125],[96.95341796875013,27.13330078125003],[96.79785156249997,27.29619140624999],[96.19082031250005,27.26127929687499],[95.20146484375007,26.641406250000017],[95.05976562500015,26.473974609375006],[95.06894531250006,26.191113281250097],[95.10839843750014,26.091406250000034],[95.12929687500011,26.070410156250034],[95.13242187500006,26.041259765624943],[94.99199218750002,25.77045898437504],[94.66777343750007,25.458886718749966],[94.55302734375013,25.215722656249994],[94.70371093750012,25.097851562499955],[94.49316406250003,24.637646484374983],[94.37724609375002,24.473730468750006],[94.29306640625012,24.321875],[94.07480468750006,23.8720703125],[93.68339843750007,24.00654296875004],[93.45214843750003,23.987402343750034],[93.32626953125006,24.064208984375057],[93.36601562500007,23.132519531249955],[93.34941406250007,23.08496093750003],[93.20390625000002,23.03701171875005],[93.07871093750018,22.718212890625097],[93.16201171875,22.360205078125006],[93.07060546875002,22.20942382812501],[92.96455078125015,22.003759765625034],[92.90947265625013,21.988916015625023],[92.85429687500002,22.010156250000108],[92.77138671875,22.104785156250017],[92.68896484375009,22.130957031250006],[92.63037109375014,22.011328124999977],[92.57490234374993,21.97807617187496],[92.5612304687501,22.04804687500001],[92.49140625000004,22.685400390625006],[92.46445312500006,22.734423828125045],[92.36162109375002,22.929003906250074],[92.33378906250002,23.242382812499955],[92.24609375000003,23.68359374999997],[92.04404296875006,23.677783203125017],[91.97851562500003,23.691992187500063],[91.92958984375011,23.685986328125097],[91.92949218750019,23.598242187499977],[91.93789062500011,23.504687500000102],[91.75419921875013,23.28730468750004],[91.75097656250003,23.053515625000017],[91.55351562500013,22.991552734375006],[91.43623046875004,23.19990234375001],[91.359375,23.06835937500003],[91.16044921875019,23.660644531250085],[91.35019531250012,24.06049804687501],[91.72656250000003,24.20507812499997],[91.84619140624997,24.175292968749943],[92.06416015625004,24.374365234375006],[92.11748046875002,24.493945312500017],[92.22666015625012,24.77099609374997],[92.22832031250002,24.881347656250085],[92.2512695312499,24.895068359375045],[92.38496093750004,24.848779296875023],[92.46835937500018,24.944140625000074],[92.04970703125016,25.16948242187499],[90.61308593750002,25.16772460937497],[90.11962890625003,25.21997070312497],[89.86630859375012,25.293164062499955],[89.81406250000006,25.305371093749955],[89.80087890625012,25.33613281250001],[89.82490234375004,25.56015625],[89.82294921875015,25.94140625000003],[89.67089843750009,26.213818359375125],[89.57275390625003,26.13232421875003],[89.54990234375006,26.00527343750008],[89.28925781250015,26.037597656250085],[89.01865234375012,26.410253906249977],[88.95195312500002,26.412109375],[88.97041015625004,26.250878906250023],[88.94072265625002,26.24536132812497],[88.68281250000004,26.291699218749983],[88.51826171875004,26.51777343750004],[88.36992187500002,26.56411132812508],[88.35146484375005,26.482568359374966],[88.38623046875003,26.471533203125034],[88.44042968749997,26.369482421875034],[88.33398437499997,26.257519531249955],[88.15078125000005,26.087158203125057],[88.1066406250001,25.841113281250045],[88.14746093749997,25.811425781250023],[88.50244140625009,25.53701171875008],[88.76914062500006,25.490478515625],[88.85478515625002,25.333544921875017],[88.94414062500002,25.290771484375],[88.92978515625012,25.222998046875063],[88.57382812500006,25.18789062499999],[88.45625,25.188427734375125],[88.37294921875016,24.961523437500063],[88.31337890625011,24.8818359375],[88.27949218750015,24.881933593750034],[88.18886718750016,24.920605468750097],[88.14980468750011,24.91464843749995],[88.04511718750015,24.71303710937508],[88.03027343750009,24.664453125000136],[88.02343750000003,24.627832031250136],[88.07910156250009,24.549902343750063],[88.14550781250003,24.485791015624955],[88.225,24.460644531249983],[88.3375,24.45385742187503],[88.49853515625003,24.34663085937504],[88.64228515625015,24.325976562500102],[88.72353515625011,24.27490234375],[88.7335937500001,24.230908203125097],[88.72656250000009,24.18623046875004],[88.71376953125016,24.069628906250102],[88.69980468750006,24.00253906249992],[88.56738281250009,23.674414062500034],[88.63574218749997,23.55],[88.69765625,23.493017578125034],[88.72441406250002,23.254980468750034],[88.89707031250018,23.21040039062501],[88.92812500000011,23.186621093749977],[88.89970703125002,22.843505859375057],[88.92070312500002,22.632031249999955],[89.05,22.274609374999983],[89.02792968750023,21.937207031249983],[88.94931640625018,21.937939453125125],[89.05166015625,21.654101562500045],[88.85751953125012,21.744677734375017],[88.74501953125011,21.584375],[88.74023437500003,22.005419921875017],[88.64160156250003,22.121972656250136],[88.58466796875015,21.659716796874932],[88.44599609375004,21.614257812500085],[88.28750000000016,21.758203125000108],[88.25371093750002,21.622314453124943],[88.0568359375001,21.694140625000017],[88.19628906249997,22.139550781249994],[87.94140625000003,22.374316406250045],[88.15927734375018,22.12172851562508],[87.82373046875003,21.727343750000045],[87.20068359375009,21.544873046874983],[86.95410156250014,21.365332031250006],[86.84228515625009,21.106347656249994],[86.97548828125005,20.70014648437501],[86.75039062500011,20.313232421875057],[86.37656250000006,20.006738281249966],[86.24521484375012,20.05302734374999],[86.27949218750021,19.919433593749943],[85.575,19.69291992187499],[85.496875,19.696923828125108],[85.50410156250004,19.887695312500057],[85.24863281250006,19.757666015625034],[85.18076171875018,19.59487304687508],[85.44160156249993,19.626562499999977],[84.77099609375009,19.125390625000023],[84.10410156250018,18.29267578125001],[82.35957031250004,17.09619140624997],[82.25878906250014,16.55986328124996],[81.76191406250015,16.32949218750008],[81.28613281249997,16.337060546875023],[80.97871093750004,15.758349609375074],[80.64658203125006,15.895019531250028],[80.29345703125014,15.710742187499989],[80.0534179687501,15.074023437499932],[80.17871093750003,14.478320312500074],[80.11171875000005,14.212207031250045],[80.30654296875016,13.485058593750054],[80.15625,13.713769531250108],[80.06210937500006,13.60625],[80.34238281250006,13.361328125000071],[80.22910156250018,12.690332031249966],[79.85849609375018,11.988769531250043],[79.69316406250007,11.312548828124946],[79.79902343750004,11.338671874999932],[79.84863281250009,11.196875],[79.83818359375002,10.322558593750045],[79.31455078125018,10.256689453124949],[78.93994140625009,9.565771484375063],[79.01992187500005,9.333349609374963],[79.41142578125002,9.192382812500014],[78.97958984375018,9.268554687500085],[78.42148437500006,9.105029296874989],[78.19248046874995,8.890869140625057],[78.06015625000006,8.384570312499932],[77.51757812500003,8.078320312500068],[77.06591796875003,8.315917968749986],[76.5534179687501,8.902783203124997],[76.32460937500016,9.452099609374997],[76.24238281250004,9.927099609374949],[76.37558593750006,9.539892578124935],[76.45878906250013,9.536230468750077],[76.34648437500002,9.922119140625],[76.19560546875002,10.086132812500026],[75.72382812500015,11.361767578125026],[74.94550781250004,12.56455078124992],[74.38222656250005,14.494726562500048],[73.94921875000014,15.074755859375088],[73.80078125000009,15.39697265625],[73.93193359375013,15.39697265625],[73.77177734375013,15.573046874999989],[73.83281250000013,15.659375],[73.67988281250015,15.708886718750136],[73.47607421875003,16.05424804687496],[72.87548828124997,18.642822265625114],[72.97207031250011,19.15332031250003],[72.8346679687501,18.975585937500057],[72.80302734375013,19.07929687500004],[72.81162109375,19.298925781250006],[72.98720703125,19.27744140625009],[72.78789062500013,19.362988281250097],[72.66777343750019,19.83095703125005],[72.89375,20.672753906250136],[72.81386718750011,21.117187500000085],[72.62382812500002,21.371972656250108],[72.73476562500016,21.470800781250006],[72.61328125000009,21.461816406250108],[73.1125,21.750439453125125],[72.54306640625,21.69658203124999],[72.70019531250003,21.971923828124943],[72.52226562500013,21.976220703125108],[72.55302734375007,22.159960937500074],[72.80917968749995,22.23330078125008],[72.18281250000015,22.26972656250004],[72.30644531250002,22.18920898437497],[72.27441406250009,22.089746093749966],[72.03720703125006,21.82304687499999],[72.2103515625,21.72822265625004],[72.25400390625006,21.531005859375],[72.01523437500012,21.155712890625097],[71.0246093750001,20.73886718750009],[70.71933593750006,20.740429687500068],[70.12734375,21.094677734375097],[68.96992187500021,22.29028320312497],[69.05166015625016,22.437304687500074],[69.27656250000004,22.285498046875063],[70.17724609375014,22.57275390624997],[70.48925781250009,23.08950195312508],[70.33945312500012,22.939746093749932],[69.66464843750006,22.759082031250074],[69.23593749999995,22.848535156250023],[68.64072265625006,23.189941406250114],[68.41748046875009,23.57148437500004],[68.7767578125,23.852099609375017],[68.23496093749995,23.596972656250074],[68.16503906250009,23.857324218749994],[68.28251953125013,23.927978515625],[68.38125000000016,23.950878906250068],[68.48867187500011,23.96723632812501],[68.5866210937501,23.966601562500074],[68.72412109375003,23.964697265625034],[68.72812500000012,24.265625],[68.73964843750016,24.291992187500085],[68.75898437499993,24.307226562500006],[68.78115234375011,24.313720703125085],[68.8,24.30908203125003],[68.82832031250004,24.26401367187509],[68.86347656250015,24.26650390625005],[68.90078125000011,24.29243164062501],[68.98457031250015,24.273095703124966],[69.05156250000013,24.28632812500001],[69.11953125000011,24.26865234374995],[69.23505859374993,24.268261718750068],[69.44345703124995,24.275390625000085],[69.55917968750006,24.273095703124966],[69.80517578125009,24.16523437500004],[70.0982421875,24.2875],[70.28906250000009,24.356298828125063],[70.54677734375,24.418310546875063],[70.56503906250006,24.385791015625017],[70.55585937500015,24.331103515625074],[70.57929687500015,24.279052734374943],[70.65947265625013,24.24609374999997],[70.71630859375009,24.237988281250097],[70.7672851562501,24.245410156250017],[70.80507812500011,24.26196289062503],[70.88623046875014,24.34375],[70.92812500000016,24.362353515625045],[70.98281250000011,24.361035156250125],[71.04404296875006,24.400097656250097],[71.04531250000005,24.42998046874996],[70.96982421875012,24.571875],[70.97636718750013,24.61875],[71.00234375000016,24.6539062499999],[71.04785156250003,24.687744140625085],[71.02070312500021,24.75766601562492],[70.95087890625015,24.89160156250003],[70.87773437500019,25.06298828124997],[70.65205078125004,25.422900390625102],[70.64843750000003,25.666943359375068],[70.5695312500001,25.705957031250023],[70.50585937500009,25.685302734375085],[70.44853515625013,25.681347656249983],[70.26464843750009,25.70654296874997],[70.10019531250006,25.91005859375005],[70.14921875000002,26.347558593749994],[70.11464843750016,26.548046874999983],[69.47001953125002,26.804443359375],[69.56796875,27.174609375000102],[69.89628906250007,27.473632812500085],[70.04980468750009,27.694726562500023],[70.14453125000003,27.849023437499994],[70.19394531250006,27.89487304687492],[70.24433593750004,27.934130859375102],[70.4037109375,28.025048828124994],[70.48857421875013,28.023144531250125],[70.62910156250015,27.937451171875068],[70.6916015625001,27.76899414062504],[70.79794921875012,27.709619140625023],[70.87490234375016,27.71445312499995],[71.18476562500004,27.831640625],[71.54296875000003,27.869873046875],[71.8703125000001,27.9625],[71.88886718750004,28.04746093749992],[71.94804687500002,28.177294921875102],[72.12851562500012,28.34633789062508],[72.29199218750003,28.69726562499997],[72.34189453125006,28.751904296875097],[72.90332031250003,29.02875976562501],[73.38164062500013,29.934375],[73.8091796875,30.093359375],[73.88652343750013,30.162011718750136],[73.93339843750002,30.222070312500108],[73.92460937500007,30.28164062499999],[73.88271484375,30.352148437499977],[73.89931640625,30.435351562500045],[74.00898437500004,30.519677734374994],[74.33935546875003,30.893554687499943],[74.38037109375003,30.89340820312509],[74.50976562500009,30.959667968750097],[74.63281250000014,31.034667968750114],[74.62578125000002,31.068750000000108],[74.61035156250009,31.112841796875045],[74.51767578125012,31.185595703124932],[74.53496093750007,31.261376953125108],[74.59394531249993,31.465380859375102],[74.58183593750013,31.523925781250114],[74.50996093750015,31.712939453125074],[74.52597656249995,31.765136718750057],[74.55556640625011,31.818554687500097],[74.63574218750003,31.889746093750034],[74.73945312500015,31.948828125],[75.07148437500015,32.08935546875003],[75.13876953125,32.10478515624999],[75.25410156250004,32.140332031250125],[75.33349609374997,32.279199218749994],[75.32221348233018,32.28516356678968]]]]},"properties":{"name":"India","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[72.49199218750002,-7.37744140625],[72.42910156250002,-7.435351562500003],[72.34970703125,-7.263378906250011],[72.447265625,-7.395703125000011],[72.44560546875002,-7.220410156250011],[72.49199218750002,-7.37744140625]]]},"properties":{"name":"Br. Indian Ocean Ter.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-9.948193359374926,53.91313476562499],[-10.265722656249949,53.977685546874994],[-9.99638671874996,54.00361328125004],[-9.948193359374926,53.91313476562499]]],[[[-6.218017578125,54.08872070312506],[-6.347607421874926,53.94130859375005],[-6.027392578124989,52.927099609375006],[-6.463183593749932,52.345361328124994],[-6.325,52.246679687500034],[-6.890234375,52.15922851562499],[-6.965771484374926,52.24951171875],[-8.057812499999926,51.82558593750005],[-8.4091796875,51.888769531250034],[-8.349121093749943,51.73930664062496],[-8.813427734374926,51.584912109374955],[-9.737304687499943,51.473730468750034],[-9.524902343750028,51.68110351562501],[-10.120751953124994,51.60068359375006],[-9.598828124999983,51.87441406250005],[-10.341064453124943,51.798925781250034],[-9.909667968749972,52.122949218749966],[-10.39023437499992,52.134912109374994],[-10.356689453125,52.20693359375002],[-9.772119140624937,52.250097656250034],[-9.90605468749996,52.403710937499966],[-9.632226562499937,52.54692382812502],[-8.783447265624943,52.679638671874955],[-8.990283203124989,52.755419921875045],[-9.175390624999949,52.634912109374994],[-9.916601562499977,52.56972656250005],[-9.46489257812496,52.82319335937498],[-9.299218749999966,53.09755859375002],[-8.930126953124983,53.207080078125045],[-9.51420898437496,53.23823242187498],[-10.091259765624926,53.41284179687503],[-10.116992187499932,53.548535156249955],[-9.720654296874926,53.6044921875],[-9.901611328124943,53.72719726562502],[-9.578222656249949,53.80541992187497],[-9.578857421875,53.879833984374955],[-9.9140625,53.863720703124955],[-9.856445312499972,54.095361328124994],[-10.092675781249966,54.15576171875003],[-10.056396484374943,54.25781250000006],[-8.545556640624994,54.24121093750003],[-8.623144531249977,54.346875],[-8.133447265624966,54.64082031250001],[-8.763916015624972,54.68120117187496],[-8.377294921874977,54.88945312500002],[-8.274609374999955,55.146289062500045],[-7.667089843749977,55.25649414062502],[-7.65874023437496,54.97094726562503],[-7.308789062500011,55.365820312500006],[-6.961669921874972,55.23789062500006],[-7.218652343749937,55.09199218749998],[-7.55039062499992,54.767968749999966],[-7.910595703124955,54.698339843750006],[-7.75439453125,54.59492187499998],[-8.118261718749977,54.41425781250004],[-7.606542968750006,54.14384765625002],[-7.324511718750017,54.13344726562502],[-7.007714843749937,54.40668945312501],[-6.649804687499937,54.05864257812496],[-6.218017578125,54.08872070312506]]]]},"properties":{"name":"Ireland","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[56.18798828125003,26.92114257812497],[55.95429687500004,26.70112304687501],[55.31152343749997,26.592626953125006],[55.76259765625005,26.81196289062504],[55.75761718750002,26.94765625000005],[56.279394531250006,26.952099609374983],[56.18798828125003,26.92114257812497]]],[[[46.1144531250001,38.877783203125034],[46.490625,38.90668945312498],[47.995898437500074,39.683935546875034],[48.322167968749994,39.39907226562502],[48.10439453125005,39.241113281249994],[48.292089843750006,39.01884765624999],[47.99648437499999,38.85375976562503],[48.59267578125005,38.41108398437498],[48.86875,38.43549804687498],[48.95996093750003,37.89013671875],[49.171191406250074,37.60058593749997],[50.13046875,37.407128906249994],[50.53320312499997,37.01367187500006],[51.11855468750005,36.742578124999966],[52.19013671875004,36.62172851562505],[53.76767578125006,36.93032226562502],[53.91542968750005,36.93032226562502],[53.67949218750002,36.853125],[53.970117187499994,36.818310546874955],[53.91416015625006,37.34355468750002],[54.6994140625001,37.47016601562498],[54.90009765625004,37.77792968750006],[55.38085937500003,38.051123046875034],[56.272070312500006,38.080419921875034],[56.440625,38.249414062499994],[57.1935546875001,38.216406250000034],[57.35371093750004,37.97333984374998],[58.261621093749994,37.665820312500045],[58.81542968750003,37.683496093749994],[59.30175781249997,37.51064453125005],[59.454980468749994,37.25283203125002],[60.06279296875002,36.962890625],[60.34130859375003,36.63764648437501],[61.11962890625003,36.64257812500003],[61.212011718750006,36.190527343750034],[61.15292968750006,35.97675781250001],[61.25214843750004,35.86762695312498],[61.26201171875002,35.61958007812498],[61.28183593750006,35.55341796875001],[61.2785156250001,35.513769531250006],[61.245507812499994,35.47407226562501],[61.18925781250002,35.31201171875003],[61.1,35.272314453125034],[61.08007812499997,34.85561523437505],[60.95117187499997,34.65385742187499],[60.91474609375004,34.63398437500001],[60.80234375000006,34.55463867187501],[60.73945312500004,34.544726562500045],[60.7262695312501,34.51826171874998],[60.736132812500074,34.491796875],[60.76259765625005,34.475244140624994],[60.88945312500002,34.31943359375006],[60.642675781250006,34.30717773437496],[60.48574218750005,34.09477539062502],[60.4859375,33.7119140625],[60.57382812500006,33.58833007812498],[60.91699218749997,33.505224609375006],[60.56054687499997,33.13784179687502],[60.5765625,32.99487304687503],[60.71044921874997,32.6],[60.82929687500004,32.24941406250005],[60.82724609375006,32.16796874999997],[60.789941406249994,31.98710937499999],[60.7875,31.87719726562497],[60.791601562500006,31.660595703124983],[60.82070312499999,31.495166015625045],[60.854101562500006,31.483251953125006],[61.110742187499994,31.45112304687504],[61.346484375000074,31.42163085937497],[61.66015625000003,31.382421874999977],[61.7550781250001,31.285302734374994],[61.814257812500074,31.072558593750017],[61.810839843750074,30.913281249999983],[61.78417968749997,30.831933593750023],[61.55947265625005,30.59936523437497],[61.33164062500006,30.36372070312501],[60.84335937500006,29.85869140624999],[61.03417968750003,29.663427734374977],[61.15214843750002,29.542724609375],[61.8898437500001,28.546533203124994],[62.7625,28.202050781249994],[62.782324218750006,27.800537109375],[62.75273437500002,27.265625],[63.16679687500002,27.25249023437499],[63.19609375000002,27.243945312500017],[63.25625,27.20791015625005],[63.30156250000002,27.151464843750006],[63.30517578124997,27.124560546875017],[63.242089843749994,27.07768554687499],[63.25039062499999,26.879248046875063],[63.24160156250005,26.86474609375003],[63.18613281250006,26.83759765625001],[63.168066406250006,26.66557617187496],[62.31230468750002,26.490869140624994],[62.23935546875006,26.357031249999977],[62.12597656249997,26.368994140625034],[61.842382812500006,26.225927734375006],[61.809960937499994,26.165283203125],[61.78076171874997,25.99584960937503],[61.75439453125003,25.843359375000063],[61.737695312499994,25.821093750000045],[61.66865234375004,25.76899414062501],[61.6618164062501,25.751269531250017],[61.67138671874997,25.69238281250003],[61.64013671875003,25.584619140624994],[61.61542968750004,25.28613281250003],[61.58789062499997,25.20234375000001],[61.533105468749994,25.195507812499955],[61.41220703125006,25.102099609375017],[60.66386718750002,25.28222656250003],[60.51054687500002,25.437060546875045],[60.40019531250002,25.311572265625074],[59.45605468749997,25.481494140625045],[59.0460937500001,25.417285156250017],[58.79785156249997,25.554589843750023],[57.334570312500006,25.791552734375074],[57.03603515625005,26.80068359375005],[56.728125,27.127685546875057],[56.118066406249994,27.14311523437499],[54.75927734375003,26.50507812500004],[54.24707031250003,26.696630859374977],[53.70576171875004,26.72558593750003],[52.69160156250004,27.323388671875023],[52.475878906250074,27.61650390624999],[52.03076171874997,27.824414062499955],[51.58906250000004,27.864208984374983],[51.27890625,28.13134765624997],[51.06201171874997,28.72612304687499],[50.86699218750002,28.870166015625017],[50.87578125000002,29.062695312499983],[50.67519531250005,29.146582031250034],[50.64960937500004,29.420068359374966],[50.16894531250003,29.921240234375034],[50.071582031250074,30.198535156250017],[49.55488281250004,30.028955078125023],[49.028125,30.333447265624983],[49.224511718749994,30.472314453125023],[49.00195312500003,30.506542968749983],[48.91914062500004,30.120898437500017],[48.54648437500006,29.962353515624955],[48.47851562499997,30.003808593749966],[48.43457031249997,30.03759765625],[48.33105468749997,30.28544921874996],[48.01494140625002,30.465625],[48.01064453125005,30.989794921875017],[47.679492187500074,31.00239257812501],[47.679492187500074,31.400585937499955],[47.75390624999997,31.601367187500017],[47.829980468749994,31.79443359375],[47.71455078125004,31.936425781249966],[47.5915039062501,32.087988281250034],[47.51191406250004,32.15083007812504],[47.3297851562501,32.45551757812501],[47.28515625000003,32.474023437499966],[47.121386718750074,32.46660156249996],[46.569921875,32.83393554687501],[46.37705078125006,32.92924804687499],[46.29824218750005,32.95024414062502],[46.11279296875003,32.957666015624994],[46.09306640625002,32.97587890624999],[46.08046875,33.028222656249994],[46.0807617187501,33.08652343750006],[46.14111328125003,33.174414062500034],[46.145898437499994,33.229638671874994],[46.01992187500005,33.41572265624998],[45.39707031250006,33.970849609374994],[45.542773437500074,34.21552734375004],[45.459375,34.470361328124994],[45.50078125000002,34.58159179687499],[45.6375,34.573828125],[45.678125,34.798437500000034],[45.92089843750003,35.02851562500001],[46.04179687500002,35.08017578125006],[46.13378906249997,35.127636718749955],[46.15468750000005,35.19672851562498],[46.112109375000074,35.32167968750005],[45.97109375000005,35.524169921875],[46.03740234375002,35.67314453124999],[46.180957031250074,35.71137695312504],[46.2625,35.74414062500006],[46.27343749999997,35.77324218750002],[46.16748046874997,35.820556640625],[45.77636718749997,35.82182617187499],[45.36162109375002,36.015332031249955],[45.241113281249994,36.35595703125],[45.20654296874997,36.397167968749955],[45.15527343749997,36.407373046874994],[45.11240234375006,36.409277343750034],[45.053125,36.47163085937501],[44.76513671875003,37.142431640625006],[44.79414062500004,37.290380859375034],[44.574023437500074,37.435400390625006],[44.589941406250006,37.710351562499966],[44.21132812499999,37.908056640625006],[44.4499023437501,38.33422851562506],[44.2985351562501,38.38627929687499],[44.27167968750004,38.83603515625006],[44.02324218750002,39.37744140625006],[44.3893554687501,39.422119140625],[44.58710937500004,39.76855468750006],[44.81718750000002,39.65043945312496],[45.4796875000001,39.00625],[46.1144531250001,38.877783203125034]]]]},"properties":{"name":"Iran","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[45.6375,34.573828125],[45.50078125000002,34.581591796874996],[45.459375,34.470361328124994],[45.54277343750002,34.21552734375],[45.397070312500006,33.970849609374994],[46.01992187500002,33.41572265625],[46.14589843750002,33.229638671874994],[46.14111328125,33.1744140625],[46.08076171875001,33.0865234375],[46.08046875000002,33.028222656249994],[46.09306640625002,32.975878906249996],[46.11279296875,32.957666015624994],[46.377050781250006,32.929248046874996],[46.569921875,32.833935546875],[47.12138671875002,32.466601562499996],[47.28515625,32.474023437499994],[47.32978515625001,32.455517578125],[47.51191406250001,32.150830078125],[47.59150390625001,32.08798828125],[47.71455078125001,31.936425781249994],[47.82998046875002,31.79443359375],[47.75390625,31.601367187499996],[47.67949218750002,31.400585937499997],[47.67949218750002,31.002392578124997],[48.01064453125002,30.989794921874996],[48.01494140625002,30.465625],[48.3310546875,30.285449218749996],[48.546484375,29.962353515624997],[48.454199218750006,29.9384765625],[48.354589843750006,29.956738281249997],[48.141699218750006,30.040917968749994],[47.982519531250006,30.011328125],[47.97871093750001,29.9828125],[47.64375,30.097314453124994],[47.14824218750002,30.0009765625],[46.905859375,29.5375],[46.76933593750002,29.347460937499996],[46.69375,29.259667968749994],[46.53144531250001,29.096240234374996],[46.3564453125,29.063671875],[44.71650390625001,29.193603515625],[43.77373046875002,29.84921875],[42.07441406250001,31.080371093749996],[40.47890625000002,31.893359375],[40.36933593750001,31.93896484375],[40.02783203125,31.995019531249994],[39.7041015625,32.042529296874996],[39.14541015625002,32.12451171875],[39.29277343750002,32.24384765625],[39.24746093750002,32.350976562499994],[39.04140625000002,32.3056640625],[38.773535156250006,33.372216796874994],[40.98701171875001,34.429052734375],[41.19472656250002,34.768994140625],[41.354101562500006,35.640429687499996],[41.295996093750006,36.383349609374996],[41.41679687500002,36.5146484375],[41.78857421875,36.59716796875],[42.358984375,37.10859375],[42.45585937500002,37.128710937499996],[42.63544921875001,37.249267578125],[42.74111328125002,37.3619140625],[42.77460937500001,37.371875],[42.869140625,37.334912109375],[42.936621093750006,37.324755859374996],[43.09248046875001,37.3673828125],[43.67578125,37.22724609375],[43.83642578125,37.223535156249994],[44.01318359375,37.313525390624996],[44.11445312500001,37.30185546875],[44.15625,37.282958984375],[44.19179687500002,37.249853515625],[44.20839843750002,37.20263671875],[44.20166015625,37.051806640624996],[44.281835937500006,36.97802734375],[44.32558593750002,37.0107421875],[44.401953125,37.058496093749994],[44.60595703125,37.176025390625],[44.66933593750002,37.173583984375],[44.73095703125,37.165283203125],[44.76513671875,37.142431640625],[45.053125,36.471630859375],[45.112402343750006,36.40927734375],[45.1552734375,36.407373046874994],[45.20654296875,36.39716796875],[45.24111328125002,36.35595703125],[45.36162109375002,36.01533203125],[45.7763671875,35.821826171874996],[46.16748046875,35.820556640625],[46.2734375,35.773242187499996],[46.2625,35.744140625],[46.18095703125002,35.711376953125],[46.03740234375002,35.673144531249996],[45.97109375000002,35.524169921875],[46.11210937500002,35.321679687499994],[46.15468750000002,35.196728515625],[46.1337890625,35.12763671875],[46.04179687500002,35.08017578125],[45.9208984375,35.028515625],[45.678125,34.7984375],[45.6375,34.573828125]]]},"properties":{"name":"Iraq","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-15.543115234374994,66.228515625],[-14.595849609374994,66.38154296875],[-15.117382812499983,66.125634765625],[-14.698193359374983,66.02021484375],[-14.827099609374983,65.7642578125],[-14.391845703125,65.78740234375],[-14.473388671875,65.575341796875],[-14.166943359374983,65.64228515625],[-13.617871093749983,65.5193359375],[-13.804785156249977,65.35478515625],[-13.599316406249983,65.0359375],[-14.04443359375,64.74189453125],[-14.385107421874977,64.74521484375],[-14.475390624999989,64.493994140625],[-14.927392578124994,64.319677734375],[-15.832910156249994,64.17666015625],[-16.640332031249983,63.865478515625],[-17.81572265624999,63.71298828125],[-17.946923828124994,63.5357421875],[-18.65361328124999,63.406689453125],[-20.198144531249994,63.555810546874994],[-20.494042968749994,63.687353515625],[-20.413964843749994,63.80517578125],[-20.65092773437499,63.73740234375],[-21.15239257812499,63.94453125],[-22.652197265624977,63.827734375],[-22.701171875,64.083203125],[-22.51005859374999,63.991455078125],[-22.187597656249977,64.039208984375],[-21.463330078124983,64.379150390625],[-22.053369140624994,64.313916015625],[-21.950341796874994,64.514990234375],[-21.590625,64.6263671875],[-22.10600585937499,64.533056640625],[-22.467041015625,64.794970703125],[-23.818994140624994,64.73916015625],[-24.02617187499999,64.863427734375],[-22.7880859375,65.046484375],[-21.89213867187499,65.048779296875],[-21.779980468749983,65.1876953125],[-22.50908203124999,65.19677734375],[-21.844384765624994,65.44736328125],[-22.902490234374994,65.58046875],[-23.89990234375,65.407568359375],[-24.475683593749977,65.5251953125],[-24.248925781249994,65.614990234375],[-23.85673828124999,65.53837890625],[-24.092626953124977,65.77646484375],[-23.615917968749983,65.67958984375],[-23.285351562499983,65.75],[-23.832617187499977,65.84921875],[-23.52495117187499,65.880029296875],[-23.77734375,66.017578125],[-23.434472656249994,66.02421875],[-23.452539062499994,66.181005859375],[-23.018994140624983,65.98212890625],[-22.659863281249983,66.025927734375],[-22.61601562499999,65.86748046875],[-22.44169921874999,65.90830078125],[-22.4453125,66.07001953125],[-22.947900390624994,66.212744140625],[-22.48442382812499,66.26630859375],[-23.116943359375,66.338720703125],[-22.9443359375,66.429443359375],[-22.426123046874977,66.430126953125],[-21.406884765624994,66.0255859375],[-21.374902343749994,65.74189453125],[-21.658447265625,65.723583984375],[-21.12968749999999,65.2666015625],[-20.804345703124994,65.63642578125],[-20.454833984375,65.571044921875],[-20.20751953125,66.10009765625],[-19.489697265624983,65.76806640625],[-19.382958984374994,66.07568359375],[-18.845898437499983,66.183935546875],[-18.141943359374977,65.73408203125],[-18.29716796874999,66.157421875],[-17.906982421875,66.143310546875],[-17.550439453124994,65.964404296875],[-17.153027343749983,66.20283203125],[-16.838037109374994,66.125244140625],[-16.485009765624994,66.195947265625],[-16.540673828124994,66.446728515625],[-16.24931640624999,66.522900390625],[-15.985400390624989,66.5146484375],[-15.543115234374994,66.228515625]]]},"properties":{"name":"Iceland","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[35.78730468750001,32.734912109374996],[35.572851562500006,32.640869140625],[35.56904296875001,32.619873046875],[35.55146484375001,32.3955078125],[35.484375,32.401660156249996],[35.40263671875002,32.450634765625],[35.38671875,32.493017578125],[35.303808593750006,32.512939453125],[35.19326171875002,32.534423828125],[35.065039062500006,32.46044921875],[35.01054687500002,32.338183593749996],[34.95595703125002,32.1609375],[34.98974609375,31.91328125],[34.97832031250002,31.86640625],[34.95380859375001,31.841259765624997],[34.96113281250001,31.82333984375],[34.983007812500006,31.81679687499999],[35.05322265625,31.837939453124996],[35.12714843750001,31.816748046875],[35.203710937500006,31.75],[34.95097656250002,31.602294921875],[34.88046875,31.3681640625],[35.45058593750002,31.479296875],[34.97343750000002,29.555029296875],[34.904296875,29.47734375],[34.24531250000001,31.208300781249996],[34.34833984375001,31.292919921874997],[34.350195312500006,31.362744140624997],[34.52558593750001,31.525634765625],[34.47734375000002,31.584863281249994],[34.483984375,31.59228515625],[34.67841796875001,31.895703125],[35.10859375000001,33.08369140625],[35.411230468750006,33.07568359375],[35.869140625,33.43173828125],[35.91347656250002,32.94960937499999],[35.78730468750001,32.734912109374996]]]},"properties":{"name":"Israel","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[15.576562500000051,38.220312500000034],[15.099511718750023,37.45859375],[15.295703125000017,37.05517578124997],[15.112597656250017,36.687841796875006],[14.501855468750023,36.798681640625034],[14.142968750000023,37.103662109374994],[13.90546875000004,37.10063476562502],[13.169921875000028,37.47929687499996],[12.640234375000034,37.594335937500034],[12.435546874999972,37.819775390624955],[12.734375,38.18305664062498],[12.902734375000023,38.03486328124998],[13.291113281250034,38.19145507812502],[13.788867187499989,37.981201171875],[15.11875,38.15273437500002],[15.498730468750011,38.290869140625006],[15.576562500000051,38.220312500000034]]],[[[8.478906250000023,39.067529296874966],[8.421484375000034,38.968652343749994],[8.366796875,39.115917968749955],[8.478906250000023,39.067529296874966]]],[[[8.28603515625008,41.03984375],[8.205664062500034,40.99746093750005],[8.320214843750023,41.121875],[8.28603515625008,41.03984375]]],[[[9.632031250000011,40.88203124999998],[9.805273437500063,40.499560546875045],[9.642968750000023,40.268408203125006],[9.5625,39.16601562500006],[9.056347656250068,39.23916015625002],[8.966601562500074,38.963720703125034],[8.648535156250034,38.92656250000002],[8.418164062500068,39.205712890624966],[8.547753906250023,39.83920898437506],[8.4078125,39.91723632812497],[8.471289062500063,40.29267578124998],[8.189941406250028,40.651611328125],[8.22421875,40.91333007812503],[8.571875,40.85019531250006],[9.228417968750023,41.257080078125],[9.615332031249977,41.01728515624998],[9.632031250000011,40.88203124999998]]],[[[10.395117187500034,42.85815429687503],[10.419335937499994,42.71318359374999],[10.13125,42.742041015625006],[10.395117187500034,42.85815429687503]]],[[[13.420996093750006,46.212304687499994],[13.63251953125004,46.17705078125002],[13.634960937499983,46.15776367187499],[13.61660156250008,46.133105468750045],[13.54804687500004,46.08911132812503],[13.486425781250034,46.03955078124997],[13.480273437500017,46.00922851562501],[13.487695312500023,45.987109375000045],[13.509179687500051,45.973779296874994],[13.6005859375,45.97978515624996],[13.663476562500023,45.7919921875],[13.831152343750006,45.680419921875],[13.719824218750063,45.58759765625001],[13.628320312500051,45.77094726562498],[13.206347656250074,45.771386718749966],[12.27431640625008,45.44604492187503],[12.225683593750034,45.24150390625002],[12.523437500000028,44.96796874999998],[12.248339843750045,44.72250976562498],[12.396289062500074,44.223876953125],[13.56416015625004,43.57128906250003],[14.010449218750011,42.68955078125006],[14.54072265625004,42.24428710937502],[15.16875,41.93403320312498],[16.164648437500034,41.89619140624998],[15.900488281250034,41.51206054687498],[17.954980468749994,40.65517578125002],[18.460644531249983,40.221044921875034],[18.34375,39.82138671874998],[18.077929687500017,39.93696289062498],[17.865039062500074,40.28017578125002],[17.395800781250045,40.34023437499999],[17.179980468750045,40.50278320312498],[16.92822265625,40.45805664062502],[16.521875,39.74755859375003],[17.114550781250017,39.38061523437497],[17.174609375000017,38.998095703125045],[16.61669921875003,38.800146484375034],[16.54560546875001,38.40908203125002],[16.05683593750001,37.941845703124955],[15.72451171875008,37.93911132812502],[15.645800781250017,38.034228515625045],[15.87890625,38.61391601562502],[16.19677734375,38.759228515624955],[16.20996093750003,38.94111328124998],[15.692773437499994,39.99018554687501],[14.95087890625004,40.23901367187497],[14.94765625000008,40.469335937500006],[14.765722656250063,40.66840820312498],[14.339941406250006,40.59882812500001],[14.460546875000063,40.72871093750001],[14.04433593750008,40.81225585937506],[13.733398437500057,41.23564453124999],[13.088671875000074,41.243847656249955],[12.630859374999972,41.469677734374955],[11.637304687500063,42.287548828124955],[11.141210937499977,42.38989257812503],[11.167773437500074,42.53515625000006],[10.708398437500023,42.93632812499999],[10.514843750000011,42.96752929687503],[10.188085937500063,43.947509765625],[8.76582031250004,44.42231445312501],[8.004980468750006,43.87675781249999],[7.4931640625,43.767138671875045],[7.637207031250057,44.16484375],[7.318554687500068,44.13798828125002],[6.900195312499989,44.33574218749996],[6.99267578125,44.82729492187502],[6.634765625000028,45.06816406249996],[7.07832031250004,45.23994140624998],[7.146386718750051,45.381738281249994],[6.790917968750023,45.740869140624966],[7.021093750000034,45.92578124999997],[7.055761718749977,45.90380859375003],[7.129003906249977,45.88041992187499],[7.327929687500017,45.912353515625],[7.9931640625,46.01591796874996],[8.081542968750057,46.25600585937502],[8.231933593750057,46.341210937499966],[8.29853515625004,46.403417968750034],[8.370703125,46.44511718750002],[8.458398437500023,46.24589843750002],[8.818554687500011,46.0771484375],[8.826757812500006,46.06103515625],[8.77802734375004,45.996191406250034],[8.953710937500034,45.83002929687501],[9.023730468750074,45.845703125],[9.203417968750017,46.21923828125],[9.304394531250068,46.49555664062498],[9.399316406250023,46.480664062499955],[9.427636718750023,46.48232421875002],[9.528710937500023,46.306201171875045],[9.57958984375,46.29609375000001],[9.639453125000017,46.29589843749997],[9.78779296875004,46.34604492187498],[9.884472656250011,46.36777343750006],[9.939257812500074,46.36181640625],[10.041015625000028,46.23808593750002],[10.08056640625,46.22797851562501],[10.128320312500051,46.238232421874955],[10.109667968750074,46.36284179687502],[10.081933593750023,46.420751953125006],[10.045605468750068,46.44790039062505],[10.038281250000011,46.483203125000045],[10.061230468750068,46.54677734375002],[10.087011718750063,46.59990234375002],[10.1375,46.614355468750034],[10.195507812500068,46.62109374999997],[10.4306640625,46.55004882812497],[10.409352678571473,46.6092047991071],[10.39794921875,46.66503906250006],[10.406054687500045,46.73486328124997],[10.452832031249983,46.86494140625001],[10.47939453125008,46.85512695312505],[10.579785156250011,46.85371093750001],[10.689257812500017,46.846386718749955],[10.759765625,46.79331054687498],[10.828906250000045,46.775244140625034],[10.927343750000034,46.76948242187501],[10.993261718750034,46.77700195312502],[11.02509765625004,46.796972656250006],[11.063476562500057,46.85913085937497],[11.133886718750006,46.93618164062505],[11.244433593750045,46.975683593750006],[11.433203125000063,46.983056640624994],[11.527539062500011,46.99741210937498],[11.775683593750017,46.986083984375],[12.169433593750028,47.082128906250006],[12.19716796875008,47.075],[12.201269531250034,47.060888671875034],[12.165527343750028,47.028173828125034],[12.130761718750051,46.98476562499999],[12.154101562500017,46.93525390625004],[12.267968750000023,46.83588867187504],[12.330078125,46.75981445312499],[12.388281250000034,46.70263671874997],[12.479199218749983,46.672509765624966],[13.16875,46.572656249999966],[13.3515625,46.55791015624999],[13.490039062500045,46.55556640625002],[13.7,46.52026367187503],[13.679687500000057,46.46289062499997],[13.63710937500008,46.44853515624999],[13.563281250000045,46.41508789062502],[13.399511718749977,46.31752929687502],[13.420996093750006,46.212304687499994]]]]},"properties":{"name":"Italy","childNum":6}},{"geometry":{"type":"Polygon","coordinates":[[[-77.261474609375,18.45742187499999],[-76.349853515625,18.15185546875],[-76.21079101562499,17.913525390624997],[-76.524609375,17.8662109375],[-76.85322265625,17.97373046874999],[-76.94414062499999,17.848779296874994],[-77.11948242187499,17.880078125],[-77.20498046875,17.71494140624999],[-77.36142578124999,17.833691406249997],[-77.76816406249999,17.877392578124997],[-78.04448242187499,18.173828125],[-78.339501953125,18.28720703124999],[-78.21669921875,18.44809570312499],[-77.8734375,18.522216796875],[-77.261474609375,18.45742187499999]]]},"properties":{"name":"Jamaica","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-2.018652343749977,49.23125],[-2.23583984375,49.1763671875],[-2.220507812499989,49.266357421875],[-2.018652343749977,49.23125]]]},"properties":{"name":"Jersey","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[39.14541015625002,32.12451171875],[38.9970703125,32.007470703124994],[38.96230468750002,31.994921875],[38.37548828125,31.847460937499996],[38.111425781250006,31.781152343749994],[37.49335937500001,31.625878906249994],[37.215625,31.556103515624997],[36.95859375,31.491503906249996],[37.980078125,30.5],[37.862890625,30.442626953125],[37.66972656250002,30.34814453125],[37.64990234375,30.330957031249994],[37.63359375000002,30.31328125],[37.55361328125002,30.144580078124996],[37.49072265625,30.01171875],[37.46923828125,29.995068359374997],[36.75527343750002,29.866015625],[36.70390625000002,29.831640625],[36.591796875,29.66611328125],[36.47607421875,29.4951171875],[36.2828125,29.355371093749994],[36.068457031250006,29.200537109375],[34.95078125,29.353515625],[34.97343750000002,29.555029296875],[35.45058593750002,31.479296875],[35.57207031250002,32.237890625],[35.55146484375001,32.3955078125],[35.56904296875001,32.619873046875],[35.572851562500006,32.640869140625],[35.78730468750001,32.734912109374996],[36.3720703125,32.3869140625],[36.818359375,32.317285156249994],[38.773535156250006,33.372216796874994],[39.04140625000002,32.3056640625],[39.24746093750002,32.350976562499994],[39.29277343750002,32.24384765625],[39.14541015625002,32.12451171875]]]},"properties":{"name":"Jordan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[123.88867187499997,24.280126953124977],[123.67978515625012,24.317773437500023],[123.77148437499997,24.41445312499999],[123.93486328125002,24.362011718749983],[123.88867187499997,24.280126953124977]]],[[[124.29316406250004,24.515917968750074],[124.13574218750003,24.347607421874983],[124.08476562500002,24.435839843750017],[124.30195312500004,24.58710937500001],[124.29316406250004,24.515917968750074]]],[[[125.44414062500002,24.7431640625],[125.26894531250005,24.732519531250063],[125.28359375,24.871923828125034],[125.44414062500002,24.7431640625]]],[[[128.25878906249997,26.65278320312501],[127.86708984375,26.442480468749977],[127.80361328125005,26.152539062499983],[127.653125,26.0947265625],[127.90722656250003,26.69360351562497],[128.09765624999997,26.66777343749996],[128.25488281249997,26.88188476562496],[128.25878906249997,26.65278320312501]]],[[[128.99814453125012,27.720800781250006],[128.90000000000012,27.727783203125],[128.9076171875,27.897998046875045],[128.99814453125012,27.720800781250006]]],[[[129.45253906250005,28.20898437499997],[129.3664062500001,28.127734375000045],[129.16464843750012,28.24975585937503],[129.68955078125012,28.517480468750023],[129.45253906250005,28.20898437499997]]],[[[130.6227539062501,30.262988281250017],[130.44560546875002,30.264697265625017],[130.38808593750005,30.38818359375003],[130.49716796875006,30.465527343749983],[130.64355468749997,30.388964843750017],[130.6227539062501,30.262988281250017]]],[[[130.95976562500007,30.39692382812504],[130.87031250000004,30.444238281249994],[131.06035156250007,30.828466796875006],[130.95976562500007,30.39692382812504]]],[[[130.38105468750004,32.42373046875002],[130.24169921874997,32.462792968749994],[130.46142578124997,32.515722656250034],[130.38105468750004,32.42373046875002]]],[[[130.08251953124997,32.22968750000001],[129.9601562500001,32.24375],[130.00976562499997,32.521630859374994],[130.16777343750002,32.54121093749998],[130.19951171875002,32.34057617187506],[130.08251953124997,32.22968750000001]]],[[[128.66533203125002,32.783886718749955],[128.89453124999997,32.65214843750002],[128.69296875000012,32.60473632812506],[128.66533203125002,32.783886718749955]]],[[[129.07695312500002,32.84028320312498],[128.99726562500004,32.95185546874998],[129.10976562500005,33.13256835937503],[129.18193359375002,32.99311523437504],[129.07695312500002,32.84028320312498]]],[[[129.49179687500006,33.22304687499999],[129.37041015625002,33.176025390625],[129.56992187500006,33.36103515625004],[129.49179687500006,33.22304687499999]]],[[[129.79570312500007,33.74882812499999],[129.67480468749997,33.73969726562498],[129.71728515624997,33.8583984375],[129.79570312500007,33.74882812499999]]],[[[131.17460937500007,33.602587890625045],[131.69628906250003,33.60283203124999],[131.53740234375007,33.274072265624994],[131.89658203125006,33.25458984375001],[131.8478515625001,33.118066406249994],[132.0021484375001,32.882373046875045],[131.6603515625001,32.465625],[131.33720703125007,31.4046875],[131.07080078124997,31.436865234374977],[131.09843750000002,31.256152343750017],[130.68574218750004,31.01513671875003],[130.77626953125,31.70629882812497],[130.65507812500002,31.71840820312505],[130.5560546875,31.563085937500034],[130.58876953125,31.178515625000017],[130.20068359374997,31.291894531250023],[130.14726562500002,31.40849609374996],[130.2941406250001,31.45068359375003],[130.3219726562501,31.601464843750023],[130.18789062500005,31.768847656250017],[130.19443359375012,32.090771484374955],[130.64052734375005,32.61923828124998],[130.49785156250002,32.65693359375001],[130.547265625,32.83159179687499],[130.2375,33.177636718749966],[130.12685546875005,33.10483398437506],[130.175,32.851318359375],[130.32646484375002,32.852636718750006],[130.34042968750012,32.70185546875004],[130.05410156250005,32.770800781250045],[129.76855468749997,32.57099609375001],[129.82675781250006,32.72534179687503],[129.67910156250005,33.059960937499966],[129.99169921875003,32.85156249999997],[129.58007812500003,33.23627929687501],[129.61015625000002,33.34365234375005],[129.844140625,33.32177734375003],[129.82568359374997,33.43701171875006],[130.36503906250007,33.634472656249955],[130.4837890625,33.834619140624966],[130.715625,33.92778320312502],[130.953125,33.87202148437504],[131.17460937500007,33.602587890625045]]],[[[132.266015625,33.945166015625006],[132.44492187500006,33.91318359374998],[132.20878906250007,33.87285156250002],[132.266015625,33.945166015625006]]],[[[129.27949218750004,34.123388671875006],[129.18642578125,34.14501953125006],[129.21484374999997,34.320654296875034],[129.3371093750001,34.284765625],[129.27949218750004,34.123388671875006]]],[[[134.35742187500003,34.25634765625],[134.6375,34.22661132812499],[134.73886718750012,33.82050781250001],[134.37705078125012,33.60839843749997],[134.18164062500003,33.24721679687502],[133.95869140625004,33.44833984375006],[133.63203125000004,33.51098632812503],[133.28593750000007,33.35996093749998],[132.97724609375004,32.84199218749998],[132.80429687500006,32.75200195312502],[132.6417968750001,32.76245117187503],[132.70898437500003,32.90249023437505],[132.49511718749997,32.91660156249998],[132.41279296875004,33.43046875],[132.0326171875,33.339990234374994],[132.64306640624997,33.68994140624997],[132.93515625000006,34.09531250000006],[133.19306640625004,33.93320312499998],[133.58203124999997,34.01713867187502],[133.60263671875006,34.24384765625001],[133.94833984375006,34.34804687500002],[134.35742187500003,34.25634765625]]],[[[134.35185546875002,34.48364257812503],[134.25185546875,34.42304687500004],[134.18212890625003,34.51923828124998],[134.35185546875002,34.48364257812503]]],[[[134.9328125000001,34.28813476562499],[134.82441406250004,34.202929687500045],[134.66787109375005,34.294140624999955],[135.00468750000002,34.54404296874998],[134.9328125000001,34.28813476562499]]],[[[129.38564453125,34.35366210937502],[129.26669921875012,34.37045898437506],[129.45107421875005,34.68657226562499],[129.38564453125,34.35366210937502]]],[[[133.37050781250005,36.203857421875],[133.23925781249997,36.178759765625045],[133.20615234375006,36.293408203124955],[133.29570312500002,36.34013671874996],[133.37050781250005,36.203857421875]]],[[[138.34404296875007,37.822119140625006],[138.22519531250006,37.82939453124996],[138.25,38.078466796875006],[138.50361328125004,38.31591796875006],[138.45361328124997,38.07568359375006],[138.57519531249997,38.065527343750034],[138.34404296875007,37.822119140625006]]],[[[141.22929687500007,41.37265625],[141.45546875000005,41.404736328124955],[141.43046875000002,40.72333984374998],[141.7970703125001,40.29116210937502],[141.97695312500005,39.428808593750034],[141.90078125,39.111328125],[141.5462890625,38.762841796874966],[141.4674804687501,38.404150390625006],[141.10839843750003,38.33793945312502],[140.9621093750001,38.148876953124955],[141.00166015625004,37.11464843750002],[140.57353515625007,36.23134765625002],[140.87402343749997,35.72495117187506],[140.457421875,35.51025390625],[140.35468750000004,35.18144531249999],[139.8439453125001,34.914892578125034],[139.82646484375002,35.29667968750002],[140.096875,35.58515624999998],[139.83476562500002,35.658056640625006],[139.65000000000012,35.40913085937501],[139.675,35.149267578125006],[139.47441406250002,35.298535156249955],[139.24941406250005,35.27802734375004],[139.08603515625006,34.83916015624999],[138.8375,34.619238281250034],[138.80273437499997,34.97480468749998],[138.90361328125002,35.02524414062506],[138.71962890625,35.12407226562502],[138.18906250000012,34.596337890624994],[137.543359375,34.66420898437505],[137.06171875000004,34.58281249999999],[137.27519531250002,34.77250976562499],[136.96328125000005,34.83491210937501],[136.87128906250004,34.733105468749955],[136.89707031250006,35.03554687500002],[136.80419921874997,35.05029296875],[136.53300781250007,34.678369140624994],[136.8802734375,34.43359375000006],[136.8537109375001,34.324072265625034],[136.32988281250007,34.17685546875006],[135.91621093750004,33.561718749999955],[135.69531250000003,33.48696289062502],[135.4528320312501,33.55336914062505],[135.12792968749997,34.006982421874994],[135.10009765624997,34.288378906250045],[135.41591796875,34.61748046875002],[134.74003906250007,34.765234375],[134.246875,34.71386718750003],[133.96826171874997,34.52729492187504],[133.14238281250002,34.30244140624998],[132.65654296875007,34.24609375000003],[132.31259765625006,34.32495117187503],[132.14648437499997,33.83876953125002],[131.74052734375007,34.05205078125002],[130.91884765625,33.97573242187502],[130.88925781250012,34.261816406250034],[131.00419921875007,34.39257812500003],[131.35439453125,34.41318359375006],[132.92294921875006,35.511279296875045],[133.98125,35.50722656250002],[135.17431640625003,35.74707031250003],[135.32695312500002,35.52553710937502],[135.68027343750006,35.503125],[135.903125,35.60688476562498],[136.09531250000006,35.767626953125045],[136.06748046875006,36.11684570312505],[136.69814453125005,36.742041015625034],[136.84345703125004,37.38212890624999],[137.32265625,37.52207031249998],[136.89990234375003,37.11767578125],[137.01669921875006,36.83720703124999],[137.24628906250004,36.753173828125],[137.5140625,36.95156250000002],[138.31992187500012,37.21840820312502],[138.88505859375007,37.84394531250001],[139.36386718750006,38.09902343750002],[139.80195312500004,38.881591796875],[140.06474609375002,39.624414062499994],[139.99472656250006,39.855078125],[139.74150390625002,39.92084960937498],[140.01113281250005,40.26035156250006],[139.92285156250003,40.59843750000002],[140.28125,40.84609375000002],[140.3444335937501,41.203320312499955],[140.62763671875004,41.195410156250034],[140.74863281250012,40.830322265625],[140.93603515625003,40.940771484375034],[141.1185546875,40.88227539062501],[141.24423828125006,41.20561523437499],[140.80058593750002,41.138818359374966],[140.80185546875012,41.253662109375],[140.9369140625,41.50556640624998],[141.22929687500007,41.37265625]]],[[[139.48125,42.08100585937498],[139.43134765625004,42.19956054687498],[139.55839843750002,42.235205078125034],[139.48125,42.08100585937498]]],[[[141.29541015625003,45.11933593750001],[141.14531250000002,45.153906250000034],[141.19375,45.24785156249999],[141.29541015625003,45.11933593750001]]],[[[141.07275390624997,45.33286132812498],[141.03398437500007,45.26933593750002],[140.97167968749997,45.465478515624994],[141.07275390624997,45.33286132812498]]],[[[143.82431640625012,44.11699218749999],[144.71523437500005,43.92797851562503],[145.36953125000005,44.32739257812506],[145.13964843750003,43.6625],[145.34082031249997,43.30253906249999],[145.83300781249997,43.38593750000001],[144.92138671874997,43.00092773437498],[143.96933593750006,42.88139648437499],[143.42949218750002,42.41889648437498],[143.2365234375001,42.000195312499955],[141.85136718750007,42.57905273437501],[141.40664062500005,42.54692382812496],[140.98613281250002,42.34213867187498],[140.70976562500002,42.555615234374955],[140.48046875000003,42.559375],[140.32666015625003,42.29335937499999],[141.15097656250012,41.80507812499999],[140.99951171874997,41.73740234375006],[140.65986328125004,41.815576171874994],[140.3849609375001,41.51928710937503],[140.08515625000004,41.43408203125],[139.99531250000004,41.57641601562503],[140.10839843749997,41.912939453125034],[139.83544921874997,42.278076171875],[139.86015625000002,42.58173828125004],[140.43222656250012,42.95410156250006],[140.39238281250002,43.303125],[141.13818359374997,43.17993164062506],[141.37412109375006,43.279638671875006],[141.7609375000001,44.482519531250034],[141.58300781250003,45.15595703125001],[141.66796874999997,45.401269531249966],[141.93769531250004,45.509521484375],[142.88476562499997,44.670117187499955],[143.82431640625012,44.11699218749999]]]]},"properties":{"name":"Japan","childNum":28}},{"geometry":{"type":"Polygon","coordinates":[[[77.04863281249999,35.109912109374996],[76.927734375,35.346630859375],[76.88222656250002,35.4357421875],[76.81279296874999,35.571826171874996],[76.76689453124999,35.66171875],[76.87890625,35.61328125],[77.09003906250001,35.552050781249996],[77.29482421875002,35.508154296875],[77.44648437500001,35.4755859375],[77.57255859374999,35.471826171874994],[77.72402343750002,35.48056640625],[77.79941406250003,35.495898437499996],[77.42343750000003,35.302587890625],[77.16855468750003,35.171533203124994],[77.04863281249999,35.109912109374996]]]},"properties":{"name":"Siachen Glacier","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[50.184472656249994,44.854638671874994],[49.99511718750003,44.93696289062498],[50.10986328124997,45.08193359375002],[50.038867187500074,44.949121093749966],[50.184472656249994,44.854638671874994]]],[[[87.32285156250012,49.085791015625006],[86.8083007812501,49.04970703125002],[86.54941406250012,48.52861328125002],[85.7494140625,48.38505859374999],[85.52597656250006,47.915625],[85.65664062500005,47.254638671875],[85.484765625,47.06352539062496],[84.78613281249997,46.83071289062505],[84.66660156250006,46.97236328125004],[84.016015625,46.97050781250002],[83.02949218750004,47.18593750000002],[82.31523437500002,45.59492187499998],[82.61162109375007,45.424267578124955],[82.52148437500003,45.12548828125],[82.26660156249997,45.21909179687498],[81.94492187500006,45.16083984375001],[81.69199218750012,45.34936523437497],[80.05917968750012,45.006445312500006],[79.871875,44.88378906249997],[80.48154296875006,44.71464843749999],[80.35527343750002,44.09726562500006],[80.78574218750006,43.16157226562504],[80.39023437500006,43.043115234374966],[80.53896484375005,42.873486328124955],[80.20224609375012,42.73447265624998],[80.209375,42.190039062500006],[80.07128906249997,42.302978515625],[79.92109375000004,42.41313476562496],[79.49013671875,42.45756835937496],[79.42822265624997,42.483496093750006],[79.20302734375005,42.66601562499997],[79.16484375000007,42.759033203125],[79.1266601562501,42.775732421875034],[76.98808593750007,42.97358398437501],[76.64648437500003,42.928808593750034],[76.50917968750005,42.91889648437498],[75.9322265625,42.92851562499999],[75.84033203125003,42.9375],[75.78955078124997,42.93291015624999],[75.68173828125,42.83046875],[75.04765625000007,42.904394531250034],[74.20908203125006,43.24038085937502],[73.88603515625002,43.132568359375],[73.55625,43.002783203125006],[73.45019531249997,42.703027343749966],[73.421875,42.59350585937503],[73.49296875000007,42.409033203125034],[73.41162109375003,42.41977539062498],[73.316015625,42.46699218750001],[73.2829101562501,42.50410156250004],[72.85507812500006,42.561132812500006],[72.75292968750003,42.63789062500001],[72.54316406250004,42.67773437500006],[72.27578125,42.757666015625006],[71.76054687500002,42.82148437500004],[71.5142578125,42.766943359375006],[71.42207031250004,42.78315429687504],[71.25664062500002,42.733544921874966],[70.89287109375007,42.339990234374994],[70.94677734374997,42.24868164062505],[69.15361328125002,41.42524414062498],[68.58408203125,40.876269531250045],[68.57265625,40.62265624999998],[68.29189453125,40.656103515625034],[68.04765625000007,40.80927734374998],[68.11308593750007,41.02861328124999],[67.9357421875001,41.19658203125002],[66.70966796875004,41.17915039062501],[66.49863281250006,41.99487304687503],[66.00957031250007,42.00488281250003],[66.1002929687501,42.99082031249998],[65.80302734375002,42.87695312500006],[65.49619140625,43.310546875],[64.9054687500001,43.714697265625006],[64.44316406250007,43.55117187499999],[63.20703125000003,43.62797851562502],[61.99023437500003,43.492138671874955],[61.007910156250006,44.39379882812497],[58.555273437500006,45.55537109375001],[55.97568359375006,44.99492187499996],[55.97744140625005,41.32221679687504],[55.434375,41.296289062499994],[54.85380859375002,41.965185546875006],[54.120996093749994,42.335205078125],[53.0558593750001,42.14775390624999],[52.4938476562501,41.780371093750034],[52.59658203125005,42.760156249999966],[51.898242187500074,42.86962890624997],[51.61601562500002,43.15844726562503],[51.29541015624997,43.17412109375002],[51.30175781249997,43.48237304687501],[50.8307617187501,44.192773437499966],[50.331152343750006,44.32548828125002],[50.25292968749997,44.461523437500006],[50.409472656250074,44.6240234375],[51.543554687500006,44.53100585937506],[51.009375,44.92182617187501],[51.4157226562501,45.35786132812501],[53.20039062500004,45.33198242187498],[52.77382812499999,45.57275390625],[53.13525390625003,46.19165039062497],[53.069433593750006,46.85605468750006],[52.48320312500002,46.99067382812504],[52.13828125,46.82861328124997],[51.178027343750074,47.110156250000045],[49.886328125,46.59565429687504],[49.347460937500074,46.51914062499998],[49.232226562500074,46.33715820312503],[48.54121093750004,46.60561523437502],[48.558398437500074,46.75712890624999],[48.959375,46.77460937499998],[48.16699218750003,47.70878906249996],[47.48193359374997,47.80390624999998],[47.292382812499994,47.74091796875004],[47.06464843750004,48.23247070312499],[46.660937500000074,48.41225585937502],[46.70263671875003,48.80556640625002],[47.031347656250006,49.150292968749994],[46.80205078125002,49.36708984375002],[46.889550781249994,49.69697265625001],[47.42919921874997,50.35795898437502],[47.7057617187501,50.37797851562502],[48.33496093750003,49.858251953125006],[48.7589843750001,49.92832031250006],[48.625097656250006,50.61269531250005],[49.32343750000004,50.851708984374966],[49.49804687500003,51.08359375000006],[50.246875,51.28950195312498],[50.79394531249997,51.729199218749955],[51.16347656250005,51.6474609375],[51.344531250000074,51.47534179687503],[52.21914062499999,51.709375],[52.57119140625005,51.481640624999955],[53.33808593750004,51.48237304687504],[54.139746093750006,51.04077148437503],[54.555273437500006,50.535791015624994],[54.64160156250003,51.011572265625034],[55.68623046875004,50.582861328125006],[56.49140625000004,51.01953124999997],[57.01171874999997,51.06518554687503],[57.44218750000002,50.88886718749998],[57.83886718750003,51.091650390625006],[58.359179687500074,51.063818359375034],[58.88369140625005,50.694433593750006],[59.4523437500001,50.62041015625002],[59.523046875,50.492871093749955],[59.812402343749994,50.58203125],[60.05859374999997,50.850292968749955],[60.42480468749997,50.67915039062498],[60.94228515625005,50.69550781250004],[61.38945312500002,50.86103515625001],[61.55468750000003,51.32460937500005],[60.464746093749994,51.651171875000045],[60.03027343749997,51.93325195312505],[60.99453125000005,52.33686523437504],[60.77441406249997,52.67578124999997],[61.047460937500006,52.97246093750002],[62.08271484375004,53.00541992187499],[61.65986328125004,53.22846679687504],[61.19921874999997,53.28715820312502],[61.22890625,53.445898437500006],[61.53496093750002,53.52329101562506],[60.97949218749997,53.62172851562505],[61.231054687500006,54.01948242187498],[61.92871093750003,53.94648437500004],[64.46123046875002,54.38417968750002],[65.08837890624997,54.340185546875034],[65.476953125,54.62329101562497],[68.15585937500006,54.97670898437505],[68.20625,55.16093750000002],[68.9772460937501,55.389599609374955],[70.18242187500002,55.162451171875034],[70.73808593750007,55.30517578125],[71.18554687500003,54.59931640624998],[71.09316406250005,54.21220703124999],[72.00449218750006,54.20566406249998],[72.18603515625003,54.32563476562501],[72.44677734375003,53.94184570312498],[72.62226562500004,54.13432617187502],[73.22988281250005,53.957812500000045],[73.71240234375003,54.04238281250002],[73.30566406250003,53.707226562499955],[73.40693359375004,53.44755859374999],[73.85898437500006,53.61972656249998],[74.35156250000003,53.487646484375006],[74.45195312500007,53.64726562500002],[75.22021484374997,53.89379882812506],[75.43720703125004,54.08964843749999],[76.8373046875,54.4423828125],[76.65458984375007,54.14526367187503],[76.42167968750007,54.151513671874966],[76.48476562500005,54.02255859374998],[77.85996093750006,53.269189453124994],[79.98623046875,50.774560546874966],[80.42363281250002,50.94628906249997],[80.44804687500002,51.18334960937503],[80.73525390625,51.29340820312498],[81.12724609375002,51.19106445312502],[81.0714843750001,50.96875],[81.38828125000006,50.95649414062501],[81.46591796875006,50.73984375],[82.49394531250007,50.72758789062499],[82.76083984375012,50.89335937500002],[83.35732421875005,50.99458007812504],[83.94511718750007,50.774658203125],[84.32324218749997,50.239160156249966],[84.9894531250001,50.061425781249994],[85.2326171875001,49.61582031249998],[86.1808593750001,49.49931640624996],[86.67548828125004,49.77729492187501],[86.62646484374997,49.56269531250001],[87.32285156250012,49.085791015625006]]]]},"properties":{"name":"Kazakhstan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[35.325292968750006,5.364892578124994],[35.745019531249994,5.343994140625],[35.80029296874997,5.156933593749983],[35.77929687499997,5.105566406250006],[35.756152343750074,4.950488281250031],[35.76308593750005,4.808007812500051],[36.02197265625003,4.468115234374991],[36.90556640625002,4.411474609374991],[37.15458984375002,4.254541015624994],[37.944921875,3.746728515625023],[38.0861328125001,3.648828124999966],[38.22529296875004,3.61899414062502],[38.45156250000005,3.604833984374977],[38.608007812500006,3.600097656249986],[39.49443359375002,3.45610351562496],[39.65751953125002,3.577832031249983],[39.79033203125002,3.754248046875034],[39.8421875,3.851464843750037],[40.765234375,4.273046875000034],[41.02080078125002,4.057470703124991],[41.22089843750004,3.943554687499969],[41.372460937499994,3.94619140624998],[41.48193359375003,3.96328125],[41.737695312499994,3.979052734375003],[41.88398437500004,3.977734375000011],[41.6134765625001,3.59047851562498],[41.34179687499997,3.20166015625],[40.964453125,2.814648437500026],[40.9787109375001,-0.870312500000011],[41.249804687500074,-1.220507812499946],[41.4269531250001,-1.449511718749974],[41.521875,-1.572265625000028],[41.53271484374997,-1.695312499999957],[41.26748046875005,-1.945019531250026],[40.889746093750006,-2.023535156250034],[40.89824218750002,-2.269921874999966],[40.64414062500006,-2.53945312499998],[40.22246093750002,-2.688378906250037],[40.1154296875001,-3.250585937499991],[39.8609375,-3.576757812500006],[39.49091796875004,-4.478417968750023],[39.221777343750006,-4.692382812500014],[37.608203125000074,-3.497070312500028],[37.643847656250074,-3.045410156250028],[33.90322265625005,-1.002050781250034],[33.94316406250002,0.173779296874969],[34.160937500000074,0.605175781250026],[34.4108398437501,0.867285156250034],[34.48173828125002,1.042138671875051],[34.79863281250002,1.24453125],[34.976464843749994,1.719628906250051],[34.97753906249997,1.861914062499991],[34.9640625000001,2.06240234374998],[34.8830078125001,2.417919921875026],[34.90576171875003,2.4796875],[34.44785156250006,3.163476562500037],[34.40722656249997,3.357519531250034],[34.39941406249997,3.412695312500006],[34.44179687499999,3.60625],[34.43769531250004,3.650585937499969],[34.392871093750074,3.691503906250048],[34.26708984375003,3.733154296875],[34.16503906250003,3.812988281250014],[34.18574218750004,3.869775390625037],[34.13203125000004,3.889160156249986],[33.97607421874997,4.220214843750028],[34.176855468750006,4.419091796875037],[34.38017578125002,4.620654296874974],[34.6398437500001,4.875488281250028],[34.878320312499994,5.109570312500026],[35.08447265624997,5.31186523437502],[35.268359375000074,5.492285156250006],[35.325292968750006,5.364892578124994]]]},"properties":{"name":"Kenya","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[72.63994140625002,39.385986328125],[72.22998046875,39.20751953125],[72.14736328125002,39.2607421875],[72.08417968750001,39.31064453125],[72.04277343750002,39.3521484375],[71.77861328125002,39.277978515624994],[71.73222656250002,39.422998046874994],[71.50332031250002,39.478808593749996],[71.51738281250002,39.553857421874994],[71.50302734375,39.582177734374994],[71.4703125,39.603662109374994],[70.79931640625,39.3947265625],[70.50117187500001,39.587353515625],[69.29765625000002,39.524804687499994],[69.2447265625,39.827099609375],[69.27880859375,39.917773437499996],[69.3072265625,39.968554687499996],[69.36542968750001,39.947070312499996],[69.43193359375002,39.909765625],[69.47626953125001,39.919726562499996],[69.47099609375002,39.990625],[69.46875,40.020751953125],[69.966796875,40.20224609375],[70.59921875,39.974511718749994],[70.990625,40.2548828125],[71.3046875,40.286914062499996],[71.69248046875,40.15234375],[72.13125,40.438623046874994],[72.3892578125,40.427392578124994],[72.40205078125001,40.578076171875],[72.6041015625,40.525439453124996],[73.13212890625002,40.82851562499999],[72.65830078125,40.869921875],[72.36406250000002,41.04345703125],[72.294921875,41.039941406249994],[72.21308593750001,41.0142578125],[72.18730468750002,41.025927734374996],[72.18095703125002,41.118457031249996],[72.16425781250001,41.173730468749994],[72.11542968750001,41.186572265624996],[72.05244140625001,41.16474609375],[71.95849609375,41.187060546874996],[71.87861328125001,41.19501953125],[71.8580078125,41.311376953125],[71.79248046875,41.413134765624996],[71.75771484375002,41.428027343749996],[71.70068359375,41.454003906249994],[71.66494140625002,41.5412109375],[71.6375,41.5341796875],[71.60224609375001,41.503271484375],[71.60625,41.367431640625],[71.54560546875001,41.308056640625],[71.5,41.307470703125],[71.4208984375,41.34189453125],[71.40839843750001,41.136035156249996],[71.39306640625,41.123388671875],[71.11074218750002,41.152636718749996],[70.86044921875,41.224902343749996],[70.734375,41.400537109374994],[70.18095703125002,41.571435546874994],[70.85664062500001,42.030810546874996],[71.0322265625,42.077783203124994],[71.228515625,42.162890625],[71.23232421875002,42.186279296875],[71.21269531250002,42.206445312499994],[71.12998046875,42.25],[71.03603515625002,42.28466796875],[70.97900390625,42.266552734375],[70.94677734375,42.248681640624994],[70.89287109375002,42.339990234374994],[71.25664062500002,42.733544921874994],[71.42207031250001,42.783154296875],[71.5142578125,42.766943359375],[71.76054687500002,42.821484375],[72.16181640625001,42.760693359375],[72.27578125000002,42.757666015625],[72.54316406250001,42.677734375],[72.7529296875,42.637890625],[72.855078125,42.5611328125],[73.28291015625001,42.5041015625],[73.316015625,42.4669921875],[73.41162109375,42.419775390625],[73.49296875000002,42.409033203125],[73.421875,42.593505859375],[73.4501953125,42.703027343749994],[73.55625,43.002783203125],[73.88603515625002,43.132568359375],[74.20908203125,43.240380859374994],[75.04765625000002,42.90439453125],[75.68173828125,42.83046875],[75.78955078125,42.932910156249996],[75.84033203125,42.9375],[75.9322265625,42.928515625],[76.50917968750002,42.918896484375],[76.646484375,42.92880859375],[76.98808593749999,42.973583984375],[79.12666015625001,42.775732421875],[79.20302734375002,42.666015625],[79.29550781250003,42.604833984375],[79.36777343750003,42.547216796875],[79.42822265625,42.48349609375],[79.92109375000001,42.413134765624996],[80.0712890625,42.302978515625],[80.209375,42.1900390625],[80.24619140625003,42.059814453125],[80.23515624999999,42.04345703125],[80.21621093750002,42.032421875],[79.90966796875,42.014990234375],[79.84042968750003,41.995751953124994],[79.76611328125,41.898876953125],[78.74257812500002,41.56005859375],[78.54316406250001,41.4595703125],[78.44287109375,41.417529296874996],[78.36240234375003,41.371630859374996],[78.34628906250003,41.2814453125],[78.12343750000002,41.075634765625],[77.95644531250002,41.050683593749994],[77.81523437499999,41.055615234375],[77.71933593750003,41.024316406249994],[77.58173828125001,40.9927734375],[76.98662109374999,41.03916015625],[76.90771484375,41.024169921875],[76.82402343749999,40.982324218749994],[76.70839843750002,40.818115234375],[76.6611328125,40.779638671875],[76.63984375000001,40.742236328124996],[76.62216796875003,40.662353515625],[76.57792968749999,40.577880859375],[76.48017578125001,40.449511718749996],[76.39638671875002,40.389794921874994],[76.31855468750001,40.35224609375],[76.25830078125,40.43076171875],[75.87197265625002,40.30322265625],[75.67714843750002,40.305810546874994],[75.55556640625002,40.6251953125],[75.52080078125002,40.6275390625],[75.24101562500002,40.480273437499996],[75.111328125,40.4541015625],[75.0044921875,40.449511718749996],[74.865625,40.493505859375],[74.80126953125,40.428515625],[74.83046875000002,40.32851562499999],[74.41191406250002,40.13720703125],[74.24267578125,40.092041015625],[74.08515625000001,40.07431640625],[73.99160156250002,40.043115234374994],[73.93876953125002,39.978808593749996],[73.88457031250002,39.8779296875],[73.85625,39.828662109374996],[73.83535156250002,39.800146484375],[73.83974609375002,39.762841796874994],[73.88251953125001,39.71455078125],[73.9146484375,39.606494140624996],[73.90712890625002,39.57851562499999],[73.87275390625001,39.53330078125],[73.82294921875001,39.48896484375],[73.71572265625002,39.462255859375],[73.63164062500002,39.448876953124994],[73.47041015625001,39.460595703124994],[73.38740234375001,39.442724609375],[73.33613281250001,39.412353515625],[73.2349609375,39.374560546874996],[73.10927734375002,39.3619140625],[72.63994140625002,39.385986328125]],[[70.66416015625,39.85546875],[70.56708984375001,39.866601562499994],[70.49775390625001,39.882421875],[70.48281250000002,39.882714843749994],[70.4892578125,39.863037109375],[70.5595703125,39.790917968749994],[70.61210937500002,39.786767578124994],[70.70166015625,39.82529296875],[70.66416015625,39.85546875]],[[71.20615234375,39.892578125],[71.22871093750001,40.048144531249996],[71.08037109375002,40.079882812499996],[71.02412109375001,40.149169921875],[71.00546875,40.152294921875],[70.96064453125001,40.08798828125],[71.04482421875002,39.992529296875],[71.04365234375001,39.976318359375],[71.01171875,39.8951171875],[71.06425781250002,39.884912109374994],[71.15625,39.883447265624994],[71.20615234375,39.892578125]]]},"properties":{"name":"Kyrgyzstan","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[104.42636718750006,10.411230468749991],[103.87050781250005,10.655126953125034],[103.58710937500004,10.552197265625026],[103.54042968750005,10.668701171875043],[103.721875,10.890136718750043],[103.5324218750001,11.146679687499997],[103.35361328125006,10.921582031250054],[103.15283203124997,10.913720703125051],[103.12548828124997,11.460644531250011],[102.9486328125,11.773486328124974],[102.93388671875002,11.706689453125037],[102.73662109375007,12.089794921875011],[102.75566406250002,12.42626953125],[102.49960937500012,12.669970703125003],[102.33632812500005,13.560302734375014],[102.546875,13.585693359375043],[102.90927734375006,14.136718750000028],[103.19941406250004,14.332617187499977],[104.77900390625004,14.427832031250006],[105.07412109375005,14.227441406250037],[105.12597656250003,14.280957031250011],[105.16914062500004,14.336083984374966],[105.1833007812501,14.346240234374989],[105.18554687500003,14.319091796874972],[105.20703125000003,14.259375],[105.24570312500006,14.200537109374977],[105.35019531250006,14.109570312500011],[105.53154296875007,14.156152343749994],[105.73974609375003,14.084960937500057],[105.83144531250005,13.976611328125003],[105.9044921875001,13.924511718750054],[106.06679687500005,13.921191406250003],[106.12470703125004,14.049121093750031],[106.09667968749997,14.127099609375023],[106.00410156250004,14.262890624999983],[105.97890625,14.343017578125043],[106.00839843750012,14.357177734375],[106.1652343750001,14.372363281249989],[106.19072265625007,14.388134765624997],[106.22539062500002,14.476220703125009],[106.26796875,14.466210937500009],[106.35498046875003,14.454785156249997],[106.44697265625004,14.515039062500009],[106.50146484375003,14.578222656250006],[106.53115234375005,14.549414062499991],[106.5636718750001,14.505078125000026],[106.59921875000006,14.479394531250037],[106.66542968750005,14.441308593749994],[106.73818359375005,14.387744140625017],[106.78349609375002,14.335107421875037],[106.81992187500006,14.314697265625057],[106.91318359375006,14.329394531250031],[106.93808593750006,14.327343750000054],[106.99218750000003,14.391015624999966],[107.03017578125,14.425683593750009],[107.06240234375,14.415771484375043],[107.109375,14.416699218750054],[107.29267578125004,14.592382812500048],[107.37988281250003,14.555322265625051],[107.41474609375004,14.56289062499999],[107.51943359375005,14.705078125],[107.3314453125,14.126611328125009],[107.60546874999997,13.437792968750017],[107.47539062500002,13.030371093749963],[107.50644531250006,12.364550781250031],[107.39335937500002,12.260498046874972],[107.21210937500004,12.30400390624996],[106.70009765625,11.979296874999974],[106.41386718750002,11.9484375],[106.39921875000007,11.687011718750028],[106.0060546875001,11.758007812500011],[105.85146484375005,11.635009765625],[105.85605468750006,11.294287109375048],[106.16093750000002,11.037109375000057],[106.16396484375005,10.794921875],[105.85332031250007,10.86357421874996],[105.75507812500004,10.989990234375043],[105.40576171875003,10.95161132812504],[105.3146484375001,10.845166015625026],[105.04570312500002,10.911376953125014],[105.04638671874997,10.701660156250014],[104.85058593749997,10.534472656249974],[104.42636718750006,10.411230468749991]]]},"properties":{"name":"Cambodia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-157.34213867187503,1.855566406250034],[-157.17578125,1.73984375],[-157.57895507812498,1.902050781249997],[-157.43583984374993,1.84726562500002],[-157.365185546875,1.94609375],[-157.44189453125003,2.025048828125009],[-157.321875,1.968554687500045],[-157.34213867187503,1.855566406250034]]],[[[-159.3390625,3.923535156249983],[-159.27475585937503,3.796582031250054],[-159.40903320312503,3.87324218750004],[-159.3390625,3.923535156249983]]]]},"properties":{"name":"Kiribati","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[126.32695312500002,33.2236328125],[126.16562500000012,33.31201171875],[126.33769531250002,33.46040039062501],[126.90117187500002,33.51513671874997],[126.87285156250002,33.34116210937498],[126.32695312500002,33.2236328125]]],[[[126.23369140625002,34.370507812499994],[126.12285156250002,34.443945312500034],[126.34384765625012,34.544921875],[126.23369140625002,34.370507812499994]]],[[[126.17197265625006,34.73115234375001],[126.00751953125004,34.86748046874999],[126.07841796875002,34.914843750000045],[126.17197265625006,34.73115234375001]]],[[[128.0658203125,34.80585937500004],[128.05468750000003,34.70805664062502],[127.87343750000005,34.73496093749998],[127.8322265625001,34.87451171875],[128.0658203125,34.80585937500004]]],[[[128.74101562500007,34.798535156249955],[128.64667968750004,34.73686523437502],[128.48925781250003,34.86528320312496],[128.66796875000003,35.0087890625],[128.74101562500007,34.798535156249955]]],[[[126.52070312500004,37.73681640625003],[126.516015625,37.60468750000001],[126.42333984375003,37.62363281250006],[126.41162109374997,37.82265625000002],[126.52070312500004,37.73681640625003]]],[[[128.37460937500012,38.6234375],[129.41826171875002,37.059033203124955],[129.40351562500004,36.052148437499994],[129.57285156250006,36.05053710937503],[129.4191406250001,35.49785156249996],[129.07675781250006,35.12270507812502],[128.5109375000001,35.10097656250002],[128.44394531250012,34.87036132812503],[128.03623046875006,35.02197265625],[127.71484374999997,34.95468749999998],[127.71542968750012,34.72104492187498],[127.40429687499997,34.823095703125006],[127.47910156250012,34.625244140625],[127.324609375,34.463281249999966],[127.17343750000006,34.54614257812497],[127.24707031249997,34.755126953125],[126.89746093749997,34.438867187499966],[126.75478515625005,34.511865234374994],[126.53144531250004,34.31425781249999],[126.26445312500002,34.67324218750002],[126.52451171875006,34.697900390624966],[126.59335937500012,34.824365234374994],[126.42070312500002,34.823388671874966],[126.29111328125012,35.154150390625034],[126.61406250000007,35.57099609375004],[126.4884765625001,35.647070312500006],[126.75302734375006,35.871972656249994],[126.5404296875,36.166162109374966],[126.4876953125,36.69379882812498],[126.18085937500004,36.69160156249998],[126.16054687500005,36.77192382812501],[126.48701171875004,37.00747070312502],[126.78447265625007,36.94843749999998],[126.87207031249997,36.82446289062506],[126.97685546875002,36.93940429687501],[126.74638671875002,37.19355468750001],[126.63388671875012,37.78183593750006],[127.09033203125003,38.28388671875001],[128.03896484375,38.30854492187498],[128.37460937500012,38.6234375]]]]},"properties":{"name":"Korea","childNum":7}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[48.27539062499997,29.624316406250017],[48.17968750000003,29.611425781250063],[48.081445312499994,29.798925781250063],[48.1847656250001,29.978857421875034],[48.348242187500006,29.78266601562504],[48.27539062499997,29.624316406250017]]],[[[48.442480468750006,28.542919921874983],[47.671289062499994,28.53315429687504],[47.433203125,28.989550781250017],[46.53144531250004,29.09624023437499],[46.69375,29.259667968749966],[46.76933593750002,29.347460937500017],[46.90585937500006,29.5375],[47.14824218750002,30.0009765625],[47.64375,30.097314453125023],[47.75390624999997,30.076611328124955],[47.97871093750004,29.98281250000005],[48.00566406250002,29.835791015625034],[48.143457031249994,29.57246093750001],[47.96962890625005,29.61669921874997],[47.72265624999997,29.393017578124955],[48.0514648437501,29.355371093750023],[48.442480468750006,28.542919921874983]]]]},"properties":{"name":"Kuwait","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[102.12744140625011,22.37919921874999],[102.58251953125006,21.904296875000057],[102.66201171875008,21.676025390625057],[102.73857421875005,21.677929687500125],[102.77109375000015,21.70966796875001],[102.79824218750014,21.797949218750034],[102.81591796875,21.807373046875],[102.94960937500008,21.681347656250068],[102.85117187500009,21.26591796874999],[102.8837890625,21.202587890625068],[103.1044921875,20.89165039062499],[103.21074218749999,20.840625],[103.46357421874995,20.779833984375102],[103.6350585937501,20.697070312500102],[104.10136718750005,20.945507812500125],[104.1953125,20.91396484375008],[104.349609375,20.82109374999999],[104.58320312500001,20.646679687499955],[104.53271484375,20.554882812500125],[104.47861328124998,20.529589843750102],[104.40781250000015,20.485742187500023],[104.36777343750015,20.441406250000057],[104.39218750000015,20.424755859375068],[104.49619140625003,20.41367187499992],[104.61884765624995,20.374511718750114],[104.65644531250001,20.328515624999966],[104.66191406250005,20.289013671875125],[104.67695312500007,20.224707031249977],[104.69873046875006,20.205322265625114],[104.84785156250007,20.202441406250045],[104.88867187500006,20.169091796875023],[104.92919921874994,20.082812500000045],[104.92792968750007,20.01811523437499],[104.81513671875001,19.90400390625001],[104.80175781250011,19.836132812500068],[104.74316406250006,19.754736328124977],[104.58789062500006,19.61875],[104.54628906250014,19.610546875000068],[104.25986328125003,19.685498046875068],[104.06279296875005,19.678417968750068],[104.03203124999999,19.67514648437492],[104.0134765625001,19.646484374999943],[104.05156250000005,19.564160156250068],[104.06289062500002,19.482568359375136],[104.02753906250013,19.420458984375102],[103.93203125000002,19.366064453125034],[103.89638671875002,19.339990234375023],[103.89160156249994,19.30498046874999],[105.146484375,18.650976562499977],[105.14541015625014,18.616796874999977],[105.08701171875015,18.49624023437508],[105.11455078125005,18.405273437500057],[105.45820312500007,18.154296875000057],[105.51855468750011,18.077441406250045],[105.58847656250015,17.983691406249932],[105.69140625,17.737841796874932],[106.00625,17.415283203124943],[106.26953125,17.216796875000057],[106.33339843750002,17.14370117187508],[106.42597656250007,17.00253906250009],[106.50224609374999,16.9541015625],[106.52597656250003,16.876611328125023],[106.53369140625,16.821044921875057],[106.54619140625005,16.650732421874977],[106.65644531250013,16.492626953125125],[106.73955078124999,16.452539062500136],[106.79160156250015,16.490332031249977],[106.83242187500008,16.526269531250023],[106.85107421875,16.515625],[106.89277343750013,16.396533203125102],[106.93066406250006,16.353125],[107.39638671875008,16.04301757812499],[107.39199218750008,15.951660156250057],[107.36064453125005,15.921728515624977],[107.18886718750008,15.838623046875114],[107.16591796875002,15.802490234375],[107.27939453125003,15.618701171875045],[107.33876953125002,15.560498046875125],[107.56425781249999,15.3916015625],[107.62167968750015,15.309863281250045],[107.653125,15.255224609375091],[107.63369140625008,15.18984375000008],[107.58964843749999,15.118457031250102],[107.55527343750009,15.057031250000023],[107.48037109375014,14.979882812500136],[107.5046875000001,14.91591796875008],[107.52451171875003,14.871826171874943],[107.51376953124998,14.817382812500057],[107.51943359375008,14.705078125000114],[107.46513671875005,14.664990234375125],[107.41474609375007,14.56289062500008],[107.37988281250006,14.555322265625136],[107.29267578125007,14.592382812500034],[107.109375,14.416699218749955],[107.06240234375008,14.415771484374943],[107.03017578125008,14.425683593750023],[106.99218749999994,14.39101562500008],[106.93808593750015,14.327343750000068],[106.91318359375003,14.329394531249932],[106.81992187500003,14.314697265624943],[106.7834960937501,14.335107421875023],[106.73818359375008,14.387744140625102],[106.66542968750002,14.441308593750023],[106.59921875000003,14.479394531250136],[106.56367187500007,14.505078125000011],[106.53115234375002,14.549414062499977],[106.50146484375,14.578222656250034],[106.22539062500005,14.476220703125023],[106.1907226562501,14.388134765625011],[106.16523437500007,14.372363281249989],[106.00839843750009,14.357177734375114],[105.97890625000014,14.343017578125057],[106.00410156250013,14.262890625000068],[106.09667968750011,14.127099609375136],[106.12470703124995,14.049121093750045],[106.06679687500008,13.921191406250102],[105.90449218750007,13.924511718750068],[105.83144531250008,13.976611328124989],[105.73974609375006,14.084960937500057],[105.5315429687501,14.156152343750023],[105.35019531250009,14.109570312500125],[105.24570312500015,14.200537109374977],[105.20703125000006,14.259375],[105.18554687499994,14.319091796875],[105.18330078125001,14.346240234374989],[105.24365234375006,14.367871093749955],[105.34218750000008,14.416699218749955],[105.42265624999993,14.471630859374955],[105.47558593750006,14.530126953124977],[105.49736328125005,14.590673828125034],[105.52304687500015,14.843310546874989],[105.54667968749999,14.932470703125034],[105.53339843750013,15.041601562500091],[105.49042968750007,15.127587890625023],[105.49042968750007,15.256591796875],[105.615625,15.488281249999943],[105.63886718750013,15.585937499999943],[105.64101562500002,15.656542968749932],[105.62207031250006,15.699951171875114],[105.39892578125011,15.829882812500102],[105.40625,15.987451171875023],[105.33066406250003,16.037890625000045],[105.1487304687501,16.09355468749999],[105.04716796874999,16.16025390625009],[104.81933593749994,16.466064453125057],[104.75058593750015,16.647558593750034],[104.74355468750014,16.884375],[104.75898437500013,17.0771484375],[104.81601562499998,17.30029296875],[104.73964843750008,17.461669921875],[104.428125,17.698974609375057],[104.32265625000002,17.815820312500023],[104.19619140625002,17.988378906250034],[104.04873046875002,18.216699218749966],[103.94960937500008,18.318994140625023],[103.89882812500002,18.295312500000023],[103.79228515624999,18.31650390625009],[103.62968750000005,18.382568359375057],[103.48798828124995,18.41816406250001],[103.36699218750005,18.42333984375],[103.28828124999995,18.408398437499955],[103.25175781249999,18.373486328125125],[103.24892578125014,18.338964843750034],[103.27958984374999,18.304980468750045],[103.26318359375,18.278466796875136],[103.19970703125006,18.25947265625001],[103.14853515625009,18.221728515624932],[103.09121093750014,18.13823242187499],[103.05136718750003,18.02851562500001],[102.80742187500005,17.945556640625],[102.71757812500005,17.892236328125136],[102.67519531250014,17.851757812500068],[102.68007812500008,17.824121093750136],[102.66064453125,17.8179687499999],[102.61679687500015,17.833349609375034],[102.59824218750009,17.926757812500057],[102.55253906249999,17.965087890625057],[102.4587890625001,17.984619140624943],[102.35185546874999,18.045947265625045],[102.14824218750005,18.203857421875057],[102.10146484375014,18.21064453125001],[102.03457031250002,18.169824218750023],[101.94746093750001,18.081494140624955],[101.87548828125011,18.046435546874932],[101.81865234375005,18.064648437500125],[101.77480468750002,18.033398437500125],[101.6875,17.889404296875114],[101.56367187500001,17.820507812500125],[101.55507812500002,17.812353515625034],[101.41367187500015,17.71875],[101.16748046875011,17.4990234375],[101.10517578125001,17.479541015625102],[100.9084960937501,17.583886718750023],[101.14394531250008,18.14262695312499],[101.1375,18.286865234375057],[101.0505859375001,18.407031250000045],[101.04697265625003,18.441992187500034],[101.28632812499995,18.977148437500034],[101.19755859374999,19.327929687500045],[101.22080078125015,19.486621093750045],[101.21191406250011,19.548339843750057],[100.51357421875008,19.553466796875],[100.39765625000013,19.756103515625057],[100.51953125000006,20.177929687500068],[100.31796875000003,20.385888671875136],[100.2180664062501,20.339599609375114],[100.13974609375015,20.245410156250102],[100.11494140625007,20.25766601562492],[100.12246093750002,20.316650390625057],[100.12968750000005,20.372216796875023],[100.1838867187501,20.589111328124943],[100.2493164062501,20.730273437499932],[100.32607421875008,20.795703124999932],[100.40742187499995,20.823242187500057],[100.56513671875013,20.82509765625008],[100.62294921875002,20.85957031250001],[100.61767578125,20.87924804687509],[100.54931640625011,20.884228515625068],[100.5222656250001,20.921923828125102],[100.53613281250006,20.992382812500068],[100.703125,21.25136718750008],[101.0803710937501,21.46865234375008],[101.13886718750013,21.567480468749977],[101.19667968750002,21.522070312499977],[101.17539062500009,21.407519531250102],[101.21992187500013,21.342431640625136],[101.21181640625008,21.278222656250023],[101.22441406249999,21.22373046874992],[101.24785156249993,21.197314453125045],[101.28144531250007,21.184130859375045],[101.44355468750001,21.230810546874977],[101.54238281250008,21.234277343750136],[101.70478515625013,21.150146484375057],[101.728125,21.15639648437508],[101.78349609374999,21.204150390625045],[101.8005859375001,21.212597656249955],[101.7229492187501,21.314941406250057],[101.74726562500007,21.60576171874999],[101.7439453125001,21.77797851562508],[101.73652343750001,21.826513671874977],[101.52451171874998,22.253662109375],[101.56787109375011,22.2763671875],[101.6199218750001,22.327441406250102],[101.67148437500009,22.462304687500023],[101.70751953125,22.486572265625],[101.73876953125011,22.495263671874966],[101.75996093750001,22.490332031250034],[101.841796875,22.388476562500102],[102.02441406250006,22.439208984375114],[102.09150390625007,22.412255859375136],[102.12744140625011,22.37919921874999]]]},"properties":{"name":"Lao PDR","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[35.869140625,33.43173828125],[35.411230468750006,33.07568359375],[35.10859375000001,33.08369140625],[35.64785156250002,34.2482421875],[35.97626953125001,34.629199218749996],[36.383886718750006,34.65791015625],[36.32988281250002,34.499609375],[36.50439453125,34.432373046875],[36.5849609375,34.221240234374996],[36.27783203125,33.92529296875],[36.36503906250002,33.83935546875],[35.98613281250002,33.75263671875],[36.03447265625002,33.58505859375],[35.869140625,33.43173828125]]]},"properties":{"name":"Lebanon","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-8.486425781249977,7.558496093749994],[-8.408740234374989,7.411816406249997],[-8.324511718749989,6.920019531249991],[-8.587890625,6.490527343749989],[-8.287109375,6.319042968749997],[-7.981591796874994,6.2861328125],[-7.888623046874983,6.23486328125],[-7.800927734374994,6.038916015624991],[-7.730371093749994,5.919042968749991],[-7.636132812499994,5.90771484375],[-7.454394531249989,5.84130859375],[-7.39990234375,5.550585937499989],[-7.585058593749977,4.916748046875],[-7.574658203124983,4.572314453124989],[-7.544970703124989,4.351318359375],[-8.259033203125,4.589990234374994],[-9.132177734374977,5.054638671874997],[-10.2763671875,6.07763671875],[-11.291601562499977,6.688232421875],[-11.507519531249983,6.906542968749989],[-11.267675781249977,7.232617187499997],[-10.878076171874994,7.538232421874994],[-10.6474609375,7.759375],[-10.570849609374989,8.071142578124991],[-10.516748046874994,8.125292968749989],[-10.359814453124983,8.187939453124997],[-10.283203125,8.485156249999989],[-10.233056640624994,8.488818359374989],[-10.147412109374983,8.519726562499997],[-10.064355468749994,8.429882812499997],[-9.781982421875,8.537695312499991],[-9.518261718749983,8.34609375],[-9.369140625,7.703808593749997],[-9.463818359374983,7.415869140624991],[-9.11757812499999,7.215917968749991],[-8.8896484375,7.2626953125],[-8.659765624999977,7.688378906249994],[-8.486425781249977,7.558496093749994]]]},"properties":{"name":"Liberia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[25.150488281250006,31.654980468749997],[24.85273437500001,31.334814453125],[24.96142578125,30.678515625],[24.703222656250006,30.201074218749994],[24.980273437500017,29.181884765625],[24.980273437500017,25.5888671875],[24.980273437500017,21.995849609375],[24.9794921875,20.002587890624994],[23.980273437500017,19.99594726562499],[23.980273437500017,19.496630859375003],[20.14765625000001,21.38925781249999],[15.984082031250011,23.445214843749994],[14.97900390625,22.99619140624999],[14.215527343750011,22.619677734375003],[13.48125,23.18017578125],[11.967871093750006,23.517871093750003],[11.507617187500017,24.314355468749994],[10.686132812500006,24.55136718749999],[10.395898437500023,24.485595703125],[10.255859375,24.591015625],[10.000683593750011,25.332080078125003],[9.4482421875,26.067138671875],[9.491406250000011,26.333740234375],[9.883203125000023,26.630810546874997],[9.74755859375,27.330859375],[9.916015625,27.785693359374996],[9.805273437500006,29.176953125],[9.310253906250011,30.115234375],[9.51875,30.229394531249994],[9.89501953125,30.3873046875],[9.932519531250023,30.425341796874996],[10.059765625000011,30.580078125],[10.21640625,30.783203125],[10.114941406250011,31.463769531249994],[10.274609375000011,31.684960937499994],[10.475781250000011,31.736035156249997],[10.60888671875,31.929541015625],[10.826367187500011,32.0806640625],[11.005175781250017,32.172705078125],[11.168261718750017,32.256738281249994],[11.358007812500006,32.34521484375],[11.504980468750006,32.413671875],[11.535937500000017,32.47333984375],[11.533789062500006,32.524951171874996],[11.453906250000017,32.642578125],[11.453906250000017,32.781689453125],[11.459179687500011,32.897363281249994],[11.467187500000023,32.965722656249994],[11.504589843750011,33.181933593749996],[11.657128906250023,33.118896484375],[11.8134765625,33.093701171875],[12.279882812500006,32.858544921874994],[12.753515625,32.801074218749996],[13.283496093750017,32.9146484375],[15.176562500000017,32.391162109374996],[15.705957031250023,31.426416015624994],[17.830468750000023,30.927587890625],[18.669824218750023,30.415673828124994],[19.12373046875001,30.26611328125],[19.713281250000023,30.48837890625],[20.11152343750001,30.963720703125],[19.926367187500006,31.817529296874994],[20.121484375000023,32.21875],[20.62109375,32.58017578125],[21.63593750000001,32.937304687499996],[22.187402343750023,32.918261718749996],[23.090625,32.61875],[23.10625,32.331445312499994],[23.28632812500001,32.213818359375],[24.129687500000017,32.009228515625],[24.878515625,31.984277343749994],[25.150488281250006,31.654980468749997]]]},"properties":{"name":"Libya","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-60.89521484375,13.821972656249997],[-60.951416015625,13.717578125],[-61.073144531249994,13.865576171874991],[-60.908105468749994,14.09335937499999],[-60.89521484375,13.821972656249997]]]},"properties":{"name":"Saint Lucia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[79.87480468750002,9.050732421875026],[79.90371093750005,8.975],[79.74765625000006,9.104589843749991],[79.87480468750002,9.050732421875026]]],[[[79.98232421875,9.812695312500011],[80.25283203125005,9.796337890625054],[80.71113281250004,9.366357421875023],[81.226953125,8.50551757812498],[81.37285156250002,8.431445312499989],[81.42216796875007,8.147851562500023],[81.87412109375012,7.288330078124986],[81.86142578125012,6.901269531249994],[81.63740234375004,6.425146484374991],[80.72412109375003,5.97905273437496],[80.26738281250007,6.009765625],[80.09531250000012,6.153173828125006],[79.859375,6.829296874999983],[79.71298828125012,8.18232421875004],[79.74980468750007,8.294238281250003],[79.78349609375007,8.018457031250051],[79.92890625000004,8.899218749999974],[80.09960937499997,9.209960937500043],[80.08632812500005,9.577832031250026],[80.42832031250006,9.480957031250014],[80.04580078125005,9.649902343749972],[79.98232421875,9.812695312500011]]]]},"properties":{"name":"Sri Lanka","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[28.646875,-30.1265625],[28.39208984375,-30.147558593750006],[28.128710937500017,-30.52509765625001],[28.05683593750001,-30.63105468750001],[27.753125,-30.6],[27.364062500000017,-30.27919921875001],[27.19355468750001,-29.94130859375001],[27.056933593750017,-29.625585937500006],[27.29453125,-29.519335937500003],[27.73554687500001,-28.940039062500006],[27.959863281250023,-28.873339843750003],[28.084375,-28.77998046875001],[28.23261718750001,-28.701269531250006],[28.471875,-28.615820312500006],[28.583398437500023,-28.594140625],[28.625781250000017,-28.58173828125001],[29.301367187500006,-29.08984375],[29.38671875,-29.31972656250001],[29.34882812500001,-29.441992187500006],[29.293554687500006,-29.56689453125],[29.1421875,-29.700976562500003],[29.098046875000023,-29.919042968750006],[28.646875,-30.1265625]]]},"properties":{"name":"Lesotho","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[20.957812500000074,55.27890625000006],[20.89980468750008,55.286669921875045],[21.11484375,55.61650390624999],[20.957812500000074,55.27890625000006]]],[[[25.573046875000017,54.139892578125],[25.497363281250045,54.17524414062501],[25.52734375000003,54.21513671874996],[25.505664062500045,54.26494140624999],[25.46113281250004,54.29277343749996],[25.179492187500017,54.214257812499966],[25.111425781250006,54.15493164062505],[25.04609375000004,54.13305664062503],[24.869531250000023,54.14516601562502],[24.82568359374997,54.118994140625006],[24.78925781250001,53.99824218750001],[24.768164062499977,53.97465820312499],[24.31796875,53.892968749999966],[24.236621093750045,53.91997070312496],[24.19130859375005,53.95043945312503],[23.559082031250057,53.91982421875002],[23.484667968750074,53.939794921875006],[23.453613281250057,54.14345703125002],[23.3701171875,54.20048828124999],[23.282324218750063,54.240332031250034],[23.17031250000008,54.28144531249998],[23.0875,54.299462890624994],[23.042187500000068,54.30419921875],[23.01552734375005,54.34833984375001],[22.976757812500068,54.36635742187505],[22.89394531250008,54.390527343749994],[22.82373046874997,54.39580078124999],[22.766210937499977,54.356787109375034],[22.679882812500068,54.493017578125006],[22.684472656250023,54.56293945312504],[22.82470703125,54.87128906249998],[22.56728515625005,55.05913085937496],[22.072363281250034,55.06367187499998],[21.235742187500023,55.26411132812498],[21.237890625000034,55.455029296874955],[21.06191406250005,55.81342773437498],[21.053808593750006,56.02294921875003],[21.04609375000004,56.07006835937503],[21.31464843750004,56.18813476562502],[21.65351562500004,56.314550781250006],[22.084570312500034,56.40673828125006],[22.875585937500063,56.39643554687501],[22.96826171875003,56.38041992187502],[23.042968750000057,56.324072265625006],[23.119824218749983,56.330664062500006],[23.195898437500034,56.36713867187498],[24.120703125000063,56.26425781249998],[24.90302734375001,56.398193359375],[25.069921875,56.20039062500004],[25.663183593750063,56.104833984375006],[26.593554687500074,55.66752929687502],[26.590820312500057,55.62265625],[26.56660156250001,55.546484375000034],[26.51923828125004,55.448144531249994],[26.469531250000045,55.371923828125006],[26.457617187500006,55.342480468749955],[26.49531250000004,55.31801757812502],[26.68125,55.30644531249999],[26.76015625000008,55.29335937499999],[26.775683593750045,55.27309570312502],[26.601171875000034,55.130175781250045],[26.291796875000074,55.13959960937501],[26.250781250000045,55.12451171875006],[26.175195312500023,55.003271484375034],[26.092968750000068,54.96230468750005],[25.964453124999977,54.947167968749966],[25.85927734375005,54.91928710937498],[25.722460937500074,54.71787109374998],[25.731640625000068,54.59038085937502],[25.72480468750001,54.564257812500045],[25.68515625,54.53579101562502],[25.62031250000004,54.46040039062501],[25.56757812500004,54.377050781250006],[25.54736328125,54.33183593750002],[25.55751953125005,54.310693359374994],[25.702539062499994,54.29296875],[25.765234374999977,54.179785156250034],[25.573046875000017,54.139892578125]]]]},"properties":{"name":"Lithuania","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[6.4873046875,49.798486328124994],[6.344335937500006,49.452734375],[6.181054687500023,49.498925781249994],[6.119921875000017,49.485205078125],[6.074121093750023,49.454638671874996],[6.011425781250011,49.445458984374994],[5.95947265625,49.454638671874996],[5.928906250000011,49.4775390625],[5.9013671875,49.48974609375],[5.823437500000011,49.505078125],[5.789746093750011,49.53828125],[5.776710379464286,49.639953962053575],[5.744042968750023,49.91962890625],[5.7880859375,49.961230468749996],[5.8173828125,50.0126953125],[5.866894531250011,50.0828125],[5.976269531250011,50.1671875],[6.089062500000011,50.154589843749996],[6.110058593750011,50.123779296875],[6.116503906250017,50.120996093749994],[6.109765625000023,50.034375],[6.13818359375,49.97431640625],[6.204882812500017,49.91513671875],[6.272327008928583,49.887234933035714],[6.4873046875,49.798486328124994]]]},"properties":{"name":"Luxembourg","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.14794921875,56.142919921875],[27.576757812500006,55.798779296875],[27.052539062500017,55.83056640625],[26.593554687500017,55.667529296874996],[25.663183593750006,56.104833984375],[25.069921875,56.200390625],[24.90302734375001,56.398193359375],[24.120703125,56.2642578125],[23.81269531250001,56.329248046875],[23.195898437500006,56.367138671875],[23.11982421875001,56.3306640625],[23.04296875,56.324072265625],[22.875585937500006,56.396435546875],[22.084570312500006,56.40673828125],[21.730566406250006,56.325976562499996],[21.65351562500001,56.31455078125],[21.31464843750001,56.188134765625],[21.04609375000001,56.070068359375],[21.0712890625,56.82373046875],[21.72871093750001,57.57099609375],[22.554589843750023,57.724267578125],[23.28730468750001,57.08974609375],[23.647753906250017,56.971044921875],[24.382617187500017,57.250048828124996],[24.322558593750017,57.87060546875],[24.3625,57.866162109375],[24.458886718750023,57.907861328125],[25.11103515625001,58.063427734375],[25.27265625000001,58.009375],[25.66015625,57.920166015625],[26.29804687500001,57.60107421875],[26.532617187500023,57.531005859375],[26.96601562500001,57.609130859375],[27.187109375,57.538330078125],[27.326562500000023,57.52548828125],[27.4697265625,57.5240234375],[27.538671875,57.42978515625],[27.796875,57.316943359374996],[27.82861328125,57.293310546875],[27.838281250000023,57.247705078125],[27.83027343750001,57.194482421875],[27.639453125000017,56.845654296875],[27.806054687500023,56.86708984375],[27.8486328125,56.85341796875],[27.89208984375,56.741064453125],[28.00751953125001,56.599853515625],[28.103125,56.545703125],[28.11083984375,56.510693359375],[28.169238281250017,56.386865234375],[28.191699218750017,56.315576171875],[28.202050781250023,56.260400390625],[28.14794921875,56.142919921875]]]},"properties":{"name":"Latvia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.2125,45.450439453125],[28.07470703125,45.598974609375],[28.23945312500001,46.6408203125],[28.07177734375,46.978417968749994],[27.614062500000017,47.34052734375],[26.980761718750017,48.155029296875],[26.618945312500017,48.25986328125],[26.640429687500017,48.294140625],[26.847070312500023,48.387158203125],[26.90058593750001,48.371923828125],[27.228515625,48.371435546875],[27.549218750000023,48.477734375],[28.34052734375001,48.144433593749994],[28.42304687500001,48.146875],[29.125390625000023,47.96455078125],[29.134863281250006,47.489697265625],[29.455664062500006,47.292626953124994],[29.57197265625001,46.964013671874994],[29.7197265625,46.88291015625],[29.877832031250023,46.82890625],[29.942480468750006,46.723779296874994],[29.93476562500001,46.625],[29.92431640625,46.538867187499996],[30.13105468750001,46.423095703125],[30.07568359375,46.377832031249994],[29.878027343750006,46.360205078125],[29.837890625,46.350537109375],[29.458789062500017,46.453759765624994],[29.30488281250001,46.466601562499996],[29.22382812500001,46.376953125],[29.20458984375,46.379345703125],[29.20078125,46.50498046875],[29.18623046875001,46.523974609374996],[29.146289062500017,46.526904296874996],[28.958398437500023,46.45849609375],[28.92744140625001,46.424121093749996],[28.930566406250023,46.362255859375],[28.94375,46.288427734375],[29.00625,46.17646484375],[28.971875,46.12763671875],[28.94775390625,46.049951171874994],[28.849511718750023,45.978662109374994],[28.73876953125,45.937158203124994],[28.729296875000017,45.852001953125],[28.667578125,45.793847656249994],[28.562304687500017,45.735791015625],[28.491601562500023,45.665771484375],[28.4990234375,45.517724609374994],[28.310351562500017,45.498583984374996],[28.26484375000001,45.48388671875],[28.2125,45.450439453125]]]},"properties":{"name":"Moldova","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[49.936425781249994,-16.90292968750002],[49.82402343750002,-17.08652343750002],[50.02304687500006,-16.6953125],[49.936425781249994,-16.90292968750002]]],[[[48.3421875,-13.363867187500034],[48.21191406250003,-13.385253906249957],[48.191210937500074,-13.259960937500011],[48.308886718750074,-13.198242187499957],[48.3421875,-13.363867187500034]]],[[[49.53828125000004,-12.432128906250014],[49.9375,-13.072265624999957],[50.23535156249997,-14.732031249999963],[50.482714843750074,-15.385644531249994],[50.20898437499997,-15.960449218750028],[50.02041015625005,-15.801757812500028],[49.89257812500003,-15.457714843750011],[49.664355468750074,-15.521582031249977],[49.83906250000004,-16.486523437499997],[49.76718750000006,-16.815136718749983],[49.44931640625006,-17.240625],[49.477832031250074,-17.89853515624999],[49.362890625,-18.336328125],[47.934472656249994,-22.393945312500023],[47.55800781250005,-23.874609374999963],[47.17734375,-24.787207031249977],[46.72851562499997,-25.14990234374997],[46.15869140624997,-25.230371093750023],[45.5080078125001,-25.56318359374997],[45.2057617187501,-25.57050781250004],[44.0353515625001,-24.995703125],[43.670019531250006,-24.30029296875],[43.722265625,-23.529687500000037],[43.2648437500001,-22.38359375],[43.29052734374997,-21.93251953124998],[43.50185546875005,-21.356445312499957],[43.800195312499994,-21.179199218749986],[44.40468750000005,-19.922070312500026],[44.44882812500006,-19.42871093749997],[44.23876953124997,-19.075195312499986],[44.23310546875004,-18.740625],[44.04003906249997,-18.288476562500023],[43.979394531249994,-17.3916015625],[44.42138671874997,-16.70263671874997],[44.476171875,-16.217285156249957],[44.90917968749997,-16.174511718750026],[45.2228515625001,-15.95048828124996],[45.3421875,-16.03671875000002],[45.598242187500006,-15.992578125],[45.70019531249997,-15.813769531249989],[46.157519531250074,-15.738281249999972],[46.3996093750001,-15.924609375000017],[46.331445312499994,-15.713671875000031],[46.47509765625003,-15.513476562500003],[46.942285156249994,-15.219042968749974],[47.09921875,-15.43417968750002],[47.092578125000074,-15.150097656249969],[47.35195312500005,-14.766113281249986],[47.46474609375005,-14.713281249999966],[47.47832031250002,-15.009375],[47.77402343750006,-14.63671875],[47.964160156250074,-14.672558593750026],[47.773339843749994,-14.369921875],[47.995507812499994,-13.960449218749986],[47.88359375000002,-13.807519531250009],[47.94101562500006,-13.662402343750017],[48.03984375000002,-13.596289062499963],[48.25527343750005,-13.719335937499977],[48.796484375,-13.267480468750023],[48.91943359375003,-12.839062499999969],[48.78632812500004,-12.470898437500011],[48.931738281250006,-12.4390625],[49.20703124999997,-12.079589843749957],[49.53828125000004,-12.432128906250014]]]]},"properties":{"name":"Madagascar","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-91.68369140624998,18.677343750000034],[-91.81611328124995,18.675878906250006],[-91.53671874999998,18.760009765625],[-91.68369140624998,18.677343750000034]]],[[[-86.93964843750001,20.303320312500006],[-86.97797851562498,20.489794921875074],[-86.76328124999995,20.579052734374955],[-86.93964843750001,20.303320312500006]]],[[[-106.50224609374999,21.61083984375003],[-106.60703124999993,21.561474609374983],[-106.63935546874995,21.697851562499977],[-106.50224609374999,21.61083984375003]]],[[[-110.56738281249994,25.003466796875017],[-110.5388671875,24.89155273437504],[-110.69926757812499,25.081445312499994],[-110.56738281249994,25.003466796875017]]],[[[-112.05727539062498,24.545703125000017],[-112.29677734375002,24.789648437500063],[-112.15942382812501,25.28564453125003],[-112.19501953124998,24.841064453125057],[-112.05727539062498,24.545703125000017]]],[[[-111.10029296874998,26.020605468750006],[-111.224658203125,25.83588867187504],[-111.18291015625002,26.040625],[-111.10029296874998,26.020605468750006]]],[[[-115.17060546875001,28.06938476562496],[-115.35292968750002,28.103955078124983],[-115.23354492187495,28.36835937500004],[-115.17060546875001,28.06938476562496]]],[[[-112.20307617187503,29.00532226562504],[-112.27841796875,28.769335937500017],[-112.51406249999997,28.847607421874955],[-112.42353515625,29.203662109375017],[-112.28505859374994,29.240429687499955],[-112.20307617187503,29.00532226562504]]],[[[-113.15561523437502,29.05224609375],[-113.49633789062497,29.30761718749997],[-113.58720703125002,29.57304687499996],[-113.20214843749999,29.301855468750034],[-113.15561523437502,29.05224609375]]],[[[-97.14624023437494,25.961474609375045],[-97.66767578124995,24.389990234374977],[-97.84248046874995,22.510302734375017],[-97.76328124999998,22.105859374999966],[-97.31450195312496,21.56420898437503],[-97.40917968749997,21.272558593750034],[-97.38344726562497,21.56669921874999],[-97.75380859375002,22.02666015624999],[-97.18632812499996,20.717041015625],[-96.45605468749994,19.869775390624966],[-96.28955078124994,19.34375],[-95.778125,18.805517578125034],[-95.92036132812495,18.81958007812497],[-95.62680664062503,18.690576171874994],[-95.71982421874998,18.768359375000017],[-95.18183593749995,18.700732421875017],[-94.79814453124996,18.51459960937501],[-94.45976562499993,18.166650390624994],[-93.55234375,18.430468750000017],[-92.88476562499997,18.468652343749966],[-92.44101562499998,18.67529296874997],[-91.97377929687502,18.715869140625074],[-91.91357421875,18.52851562500001],[-91.53398437499993,18.45654296875],[-91.27524414062498,18.62446289062501],[-91.34306640624996,18.900585937499955],[-91.43666992187502,18.889794921874966],[-90.73925781249994,19.352246093749955],[-90.69316406249996,19.729882812499966],[-90.49169921874997,19.94677734375003],[-90.353125,21.009423828124966],[-89.81977539062495,21.274609374999983],[-88.46669921874997,21.569384765625017],[-88.0068359375,21.604052734375045],[-87.25087890625,21.44697265625004],[-87.18828124999993,21.546435546875045],[-87.36850585937498,21.57373046875],[-87.034765625,21.592236328124955],[-86.824072265625,21.421679687500017],[-86.77177734374999,21.150537109375023],[-86.92622070312493,20.786474609375034],[-87.42138671875,20.23139648437501],[-87.44174804687498,19.861523437499983],[-87.68769531249998,19.63710937499999],[-87.6453125,19.55390625000001],[-87.42475585937498,19.583349609375063],[-87.65869140625003,19.352343750000074],[-87.65576171874997,19.25786132812499],[-87.50107421874998,19.287792968749983],[-87.76181640624998,18.446142578125006],[-87.88198242187497,18.27387695312501],[-88.05644531249996,18.524462890625074],[-88.03173828125,18.838916015625017],[-88.29565429687494,18.47241210937503],[-88.52299804687499,18.445898437500063],[-88.80634765624998,17.965527343749983],[-89.13354492187503,17.970800781249977],[-89.16147460937503,17.81484375],[-90.98916015624997,17.81640624999997],[-90.99296874999993,17.25244140625],[-91.19550781249998,17.254101562499983],[-91.40961914062501,17.255859375],[-90.975830078125,16.867822265624994],[-90.710693359375,16.708105468750034],[-90.65996093749996,16.630908203125045],[-90.634375,16.565136718749955],[-90.63408203125002,16.51074218749997],[-90.57578124999995,16.467822265625017],[-90.47109374999994,16.439550781250034],[-90.41699218750003,16.391015625000023],[-90.41699218750003,16.351318359375],[-90.45014648437493,16.261376953124994],[-90.45986328124997,16.16235351562497],[-90.44716796874994,16.07270507812501],[-90.52197265625,16.07119140625005],[-90.70322265624998,16.07104492187503],[-90.97958984374998,16.07080078124997],[-91.433984375,16.070458984374994],[-91.736572265625,16.070166015625006],[-91.95722656250001,15.703222656250034],[-92.08212890624998,15.495556640625011],[-92.18715820312497,15.320898437499963],[-92.07480468749998,15.074218749999972],[-92.09873046874998,15.026757812499994],[-92.14423828125001,15.001953125],[-92.158544921875,14.963574218749997],[-92.23515625,14.545410156249986],[-93.91606445312493,16.053564453125006],[-94.374169921875,16.284765625000034],[-94.426416015625,16.22626953125001],[-94.00126953124996,16.018945312499966],[-94.66152343750002,16.20190429687503],[-94.58710937499995,16.315820312499966],[-94.79082031249999,16.28715820312499],[-94.85869140624996,16.41972656249999],[-95.02084960937503,16.277636718750017],[-94.79941406249995,16.20966796875001],[-95.134375,16.17695312500001],[-96.21357421874993,15.693066406250011],[-96.80795898437495,15.726416015624977],[-97.18466796874998,15.909277343750006],[-97.75478515624994,15.966845703125017],[-98.52031249999993,16.30483398437505],[-98.76220703125,16.534765624999977],[-99.69067382812499,16.719628906249994],[-100.847802734375,17.20048828124999],[-101.91870117187494,17.959765625000045],[-102.69956054687495,18.062841796875006],[-103.44160156249995,18.32539062500001],[-103.91245117187496,18.828466796875006],[-104.9384765625,19.309375],[-105.482080078125,19.97607421875003],[-105.66943359374997,20.385595703124977],[-105.26015625,20.579052734374955],[-105.32705078124994,20.752978515625045],[-105.51083984374999,20.808740234375023],[-105.23706054687499,21.119189453125045],[-105.20869140624998,21.490820312499977],[-105.43144531249997,21.618261718750006],[-105.64912109375001,21.988085937500045],[-105.64550781249999,22.32690429687497],[-105.79179687500003,22.627490234375017],[-106.93549804687497,23.88125],[-107.76494140625002,24.47192382812497],[-107.52724609375001,24.36005859375001],[-107.51191406249998,24.489160156250023],[-107.95117187499994,24.614892578124966],[-108.28076171874994,25.08154296875],[-108.05146484374995,25.067041015624994],[-108.69638671874998,25.382910156250034],[-108.78725585937502,25.53803710937501],[-109.02880859375003,25.48046875000003],[-108.886572265625,25.733447265625045],[-109.19648437499998,25.59252929687503],[-109.38496093750001,25.727148437500006],[-109.42563476562495,26.032568359375063],[-109.19970703125003,26.30522460937499],[-109.11669921874999,26.25273437499996],[-109.27626953125,26.533886718749955],[-109.48286132812498,26.710351562500023],[-109.75478515624995,26.702929687500017],[-109.94399414062495,27.079345703125057],[-110.37729492187495,27.233300781249966],[-110.59267578124995,27.544335937500023],[-110.52988281249995,27.864208984374983],[-111.12138671875002,27.966992187499983],[-112.16176757812495,29.018896484375034],[-113.05766601562496,30.651025390625023],[-113.04672851562495,31.17924804687499],[-113.62348632812494,31.34589843750001],[-113.75942382812501,31.557763671874994],[-113.94775390625001,31.62934570312501],[-114.14931640624995,31.507373046875045],[-114.93359374999994,31.900732421874977],[-114.78989257812498,31.647119140624994],[-114.88188476562499,31.156396484375023],[-114.55048828124997,30.02226562499999],[-113.75546875,29.367480468750017],[-113.49970703124995,28.92670898437501],[-113.20556640624997,28.798779296874955],[-113.09365234375001,28.511767578125017],[-112.870849609375,28.42421875000005],[-112.73403320312501,27.825976562500017],[-112.32919921874996,27.52343750000003],[-111.86264648437495,26.678515625000017],[-111.6994140625,26.58095703125005],[-111.79526367187499,26.8796875],[-111.56967773437495,26.707617187500006],[-111.29160156249996,25.78979492187497],[-110.68676757812501,24.867675781250057],[-110.65932617187502,24.34145507812505],[-110.36743164062497,24.100488281249994],[-110.30375976562497,24.339453125],[-110.02280273437502,24.17460937499999],[-109.6765625,23.66157226562501],[-109.42084960937495,23.480126953124994],[-109.49570312500002,23.159814453125023],[-110.00625,22.894042968750057],[-110.3626953125,23.60493164062501],[-111.68291015625002,24.555810546875023],[-111.80249023437494,24.542529296875074],[-112.07255859374999,24.84003906250001],[-112.06987304687497,25.572851562500006],[-112.37724609374997,26.21391601562496],[-113.02075195312499,26.58325195312497],[-113.15581054687496,26.94624023437504],[-113.27226562499997,26.79096679687501],[-113.59853515625001,26.721289062500034],[-113.84096679687502,26.966503906249983],[-114.44526367187503,27.218164062499994],[-114.53989257812495,27.431103515624955],[-114.99350585937499,27.736035156249983],[-115.03647460937495,27.84184570312496],[-114.57001953124995,27.78393554687497],[-114.30058593749995,27.87299804687501],[-114.30224609375003,27.775732421875006],[-114.0693359375,27.67568359375005],[-114.15839843750003,27.919677734375],[-114.26586914062499,27.934472656249994],[-114.04848632812502,28.42617187499999],[-114.93730468749999,29.35161132812496],[-115.67382812500003,29.756396484375017],[-116.06215820312501,30.80415039062504],[-116.29628906250001,30.97050781249999],[-116.33344726562494,31.202783203124994],[-116.66215820312495,31.56489257812504],[-116.72207031249998,31.734570312499955],[-116.62080078124995,31.85107421874997],[-116.84799804687496,31.997363281250045],[-117.12827148437495,32.533349609374994],[-114.72475585937495,32.71533203125003],[-114.83593749999994,32.50830078125003],[-111.0419921875,31.32421875000003],[-108.21445312499993,31.329443359375034],[-108.21181640625002,31.779345703125017],[-106.44541015624996,31.768408203125006],[-106.14804687499995,31.450927734375],[-104.97880859374996,30.645947265624955],[-104.50400390624995,29.677685546874955],[-104.110595703125,29.386132812499994],[-103.16831054687498,28.998193359374994],[-102.8919921875,29.216406250000034],[-102.61494140624994,29.75234375],[-102.26894531249998,29.871191406250034],[-101.44038085937503,29.77685546875],[-100.75458984375001,29.182519531249994],[-100.29604492187495,28.32768554687499],[-99.50532226562497,27.54833984375003],[-99.45654296874999,27.05668945312496],[-99.10776367187498,26.446923828124994],[-97.37563476562497,25.871826171875],[-97.14624023437494,25.961474609375045]]]]},"properties":{"name":"Mexico","childNum":10}},{"geometry":{"type":"Polygon","coordinates":[[[22.344042968750017,42.31396484375],[22.836816406250023,41.993603515625],[23.00361328125001,41.73984375],[22.916015625,41.336279296875],[22.78388671875001,41.331982421875],[22.72480468750001,41.178515625],[22.603613281250006,41.140185546874996],[22.493554687500023,41.118505859375],[22.184472656250023,41.158642578125],[21.99335937500001,41.13095703125],[21.77949218750001,40.950439453125],[21.627539062500006,40.896337890625],[21.57578125,40.868945312499996],[20.964257812500023,40.849902343749996],[20.709277343750017,40.928369140624994],[20.48896484375001,41.272607421874994],[20.566210937500017,41.873681640624994],[20.725,41.87353515625],[20.778125,42.071044921875],[21.05976562500001,42.171289062499994],[21.28662109375,42.100390625],[21.389550781250023,42.21982421875],[21.560839843750017,42.24765625],[21.5625,42.247509765625],[21.81464843750001,42.303125],[22.344042968750017,42.31396484375]]]},"properties":{"name":"Macedonia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[4.227636718750006,19.142773437499997],[4.234667968750017,16.996386718750003],[4.121289062500011,16.357714843750003],[3.842968750000011,15.701708984375003],[3.5205078125,15.483105468749997],[3.504296875000023,15.356347656249994],[3.06015625,15.427197265624997],[3.001074218750006,15.340966796874994],[1.300195312500023,15.272265625],[0.947460937500011,14.982128906249997],[0.217480468750011,14.911474609374991],[-0.235888671874989,15.059423828124991],[-0.760449218749983,15.047753906249994],[-1.049560546875,14.81953125],[-1.97304687499999,14.45654296875],[-2.113232421874983,14.16845703125],[-2.586718749999989,14.227587890625003],[-2.873925781249994,13.950732421875003],[-2.950830078124994,13.6484375],[-3.248632812499977,13.658349609374994],[-3.3017578125,13.28076171875],[-3.527636718749989,13.182714843749991],[-3.947314453124989,13.402197265624991],[-4.151025390624994,13.306201171875003],[-4.328710937499977,13.119042968749994],[-4.227099609374989,12.793701171875],[-4.480615234374994,12.672216796874991],[-4.4287109375,12.337597656249997],[-4.699316406249977,12.076171875],[-5.288134765624989,11.827929687499989],[-5.250244140625,11.375781249999989],[-5.490478515625,11.042382812499994],[-5.523535156249977,10.426025390625],[-5.556591796874983,10.43994140625],[-5.694287109374983,10.43320312499999],[-5.843847656249977,10.389550781249994],[-5.896191406249983,10.354736328125],[-5.907568359374977,10.307226562499991],[-6.034570312499994,10.19482421875],[-6.1171875,10.201904296875],[-6.238378906249977,10.261621093749994],[-6.241308593749977,10.279199218749994],[-6.192626953125,10.369433593749989],[-6.190673828125,10.400292968749994],[-6.250244140625,10.717919921874994],[-6.482617187499983,10.561230468749997],[-6.564599609374994,10.58642578125],[-6.654150390624977,10.656445312499997],[-6.676367187499977,10.6337890625],[-6.686132812499977,10.578027343749994],[-6.691992187499977,10.512011718749989],[-6.669335937499994,10.3921875],[-6.693261718749994,10.349462890624991],[-6.950341796874994,10.342333984374989],[-7.01708984375,10.143261718749997],[-7.385058593749989,10.340136718749989],[-7.6611328125,10.427441406249997],[-7.990625,10.1625],[-8.007275390624983,10.321875],[-8.266650390624989,10.485986328124994],[-8.33740234375,10.990625],[-8.666699218749983,11.009472656249997],[-8.398535156249977,11.366552734374991],[-8.822021484375,11.673242187499994],[-8.818310546874983,11.922509765624994],[-9.043066406249977,12.40234375],[-9.395361328124977,12.464648437499989],[-9.358105468749983,12.255419921874989],[-9.754003906249977,12.029931640624994],[-10.274853515624983,12.212646484375],[-10.709228515625,11.898730468749989],[-10.933203124999977,12.205175781249991],[-11.30517578125,12.015429687499989],[-11.502197265625,12.198632812499994],[-11.389404296875,12.404394531249991],[-11.390380859375,12.941992187499991],[-11.634960937499983,13.369873046875],[-11.831689453124994,13.315820312499994],[-12.05419921875,13.633056640625],[-11.960888671874983,13.875292968750003],[-12.019189453124994,14.206494140624997],[-12.228417968749994,14.45859375],[-12.280615234374977,14.809033203124997],[-12.104687499999983,14.745361328125],[-12.08154296875,14.766357421875],[-12.021582031249977,14.804931640625],[-11.76015625,15.425537109375],[-11.675878906249977,15.512060546874991],[-11.502685546875,15.636816406249991],[-11.455224609374994,15.62539062499999],[-10.9482421875,15.151123046875],[-10.696582031249989,15.42265625],[-9.94140625,15.373779296875],[-9.446923828124994,15.458203125],[-9.447705078124983,15.574853515624994],[-9.426562499999989,15.623046875],[-9.3505859375,15.677392578124994],[-9.33544921875,15.525683593750003],[-9.293701171875,15.502832031249994],[-5.5125,15.496289062499997],[-5.359912109374989,16.282861328124994],[-5.509619140624977,16.442041015624994],[-5.628662109375,16.568652343750003],[-5.65625,16.8095703125],[-5.684765624999983,17.058251953124994],[-5.713183593749989,17.306884765625],[-5.74169921875,17.555566406249994],[-5.827099609374983,18.3015625],[-6.026416015624989,20.0421875],[-6.396582031249977,23.274804687499994],[-6.482031249999977,24.020800781250003],[-6.538964843749994,24.51816406249999],[-6.5673828125,24.766796875],[-6.594091796874977,24.99462890625],[-6.287207031249977,24.994824218749997],[-5.959814453124977,24.99497070312499],[-5.640771484374994,24.995166015625003],[-4.822607421874977,24.99560546875],[-1.947900390624994,23.124804687500003],[1.1455078125,21.102246093749997],[1.165722656250011,20.817431640625003],[1.610644531250017,20.555566406249994],[1.685449218750023,20.378369140624997],[3.130273437500023,19.85019531249999],[3.255859375,19.4109375],[3.119726562500006,19.103173828124994],[3.3564453125,18.986621093750003],[4.227636718750006,19.142773437499997]]]},"properties":{"name":"Mali","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[14.566210937499989,35.85273437499998],[14.436425781250023,35.82167968750005],[14.351269531250011,35.978417968749994],[14.566210937499989,35.85273437499998]]]},"properties":{"name":"Malta","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[98.18261718749997,9.933447265625006],[98.11806640625,9.877880859375054],[98.2916992187501,10.051318359375031],[98.18261718749997,9.933447265625006]]],[[[98.20976562500002,10.952734375],[98.27148437499997,10.73989257812498],[98.08046875000005,10.886621093750037],[98.20976562500002,10.952734375]]],[[[98.55380859375012,11.744873046875],[98.52841796875012,11.538671875],[98.43476562500004,11.567089843750026],[98.37646484374997,11.79150390625],[98.55380859375012,11.744873046875]]],[[[98.516015625,11.905029296875028],[98.46621093750005,12.08427734374996],[98.60957031250004,11.956640624999977],[98.516015625,11.905029296875028]]],[[[98.06611328125004,12.389794921875023],[98.00234375000005,12.279003906250011],[97.93867187500004,12.34609375],[98.06611328125004,12.389794921875023]]],[[[98.41396484375005,12.597949218749974],[98.45947265625003,12.473730468749991],[98.3138671875,12.335986328124989],[98.31210937500006,12.678173828124983],[98.41396484375005,12.597949218749974]]],[[[98.31542968749997,13.099072265625026],[98.30917968750012,12.934716796875023],[98.26533203125004,13.202246093749991],[98.31542968749997,13.099072265625026]]],[[[94.80488281250004,15.8193359375],[94.73349609375006,15.823046875000045],[94.82802734375005,15.933007812499966],[94.80488281250004,15.8193359375]]],[[[94.47675781250004,15.945947265625023],[94.41191406250007,15.848388671875057],[94.3878906250001,15.994140624999972],[94.60126953125004,16.205517578124983],[94.47675781250004,15.945947265625023]]],[[[97.575,16.253222656250017],[97.48037109375,16.305712890625045],[97.54199218749997,16.505078124999983],[97.575,16.253222656250017]]],[[[93.6908203125,18.68427734375004],[93.4875,18.867529296875063],[93.74472656250006,18.865527343750017],[93.6908203125,18.68427734375004]]],[[[93.71484374999997,19.558251953124994],[93.94570312500005,19.428613281249966],[93.90195312500012,19.33203125],[93.75585937500003,19.325683593750057],[93.64404296874997,19.49506835937501],[93.71484374999997,19.558251953124994]]],[[[93.49179687500012,19.892578125],[93.51328125000006,19.754785156249994],[93.41289062500002,19.950341796875023],[93.49179687500012,19.892578125]]],[[[93.01015625000005,19.923925781249977],[93.02324218750007,19.82885742187497],[92.91464843750006,20.086474609375045],[93.01015625000005,19.923925781249977]]],[[[101.1388671875001,21.567480468749977],[101.08037109375007,21.468652343749994],[100.703125,21.251367187499966],[100.613671875,21.059326171875],[100.56660156250004,21.038183593750063],[100.53613281250003,20.992382812499955],[100.52226562500007,20.92192382812499],[100.54931640624997,20.884228515624955],[100.61767578125003,20.879248046875006],[100.62294921875005,20.859570312499983],[100.5651367187501,20.825097656249994],[100.4074218750001,20.823242187500057],[100.32607421875005,20.795703125000045],[100.24931640625002,20.730273437500045],[100.18388671875002,20.589111328125057],[100.12968750000002,20.372216796874994],[100.12246093750005,20.316650390625057],[100.0036132812501,20.37958984375001],[99.9542968750001,20.415429687500023],[99.8903320312501,20.424414062499977],[99.72011718750005,20.32543945312497],[99.45888671875005,20.363037109375],[99.48593750000006,20.14985351562501],[99.07421875000003,20.09936523437503],[98.9166992187501,19.77290039062504],[98.37128906250004,19.68916015625004],[98.01503906250005,19.74951171874997],[97.816796875,19.459960937500057],[97.74589843750002,18.58818359374999],[97.37392578125,18.51796875],[97.63222656250005,18.290332031250074],[97.7064453125,17.79711914062503],[98.4388671875,16.975683593750034],[98.66074218750006,16.330419921875006],[98.83544921875003,16.417578125],[98.88828125000006,16.351904296875034],[98.81796875000012,16.180810546874994],[98.59238281250006,16.05068359375005],[98.55693359375007,15.367675781249986],[98.19101562500012,15.204101562499972],[98.20214843749997,14.97592773437502],[98.57001953125004,14.359912109375031],[99.13681640625006,13.716699218749994],[99.12392578125,13.030761718750043],[99.40507812500002,12.547900390625003],[99.61474609374997,11.781201171875026],[99.1901367187501,11.105273437499989],[98.7572265625,10.660937499999974],[98.70253906250005,10.19038085937504],[98.56259765625006,10.034960937499989],[98.46494140625006,10.675830078124989],[98.67558593750007,10.986914062500034],[98.74140625000004,11.591699218749966],[98.87597656250003,11.719726562500028],[98.63632812500006,11.738378906250006],[98.69628906250003,12.225244140624994],[98.6002929687501,12.2453125],[98.67871093749997,12.348486328124963],[98.57597656250002,13.161914062500031],[98.20039062500004,13.980175781250026],[98.14951171875012,13.647607421875037],[98.11064453125007,13.712890625000014],[98.10019531250006,14.161523437500023],[97.90976562500012,14.652685546874991],[98.01875,14.652587890625057],[97.81230468750007,14.858935546874989],[97.7103515625,15.875537109375074],[97.58427734375007,16.019580078125017],[97.72597656250005,16.56855468750004],[97.37587890625005,16.52294921874997],[97.20019531249997,17.095410156249983],[96.85146484375005,17.401025390624994],[96.90859375000005,17.03095703125001],[96.76542968750002,16.710351562499966],[96.43115234374997,16.504931640625045],[96.18906250000012,16.768310546875057],[96.32431640625006,16.444433593750063],[95.76328125000006,16.169042968750006],[95.38955078125005,15.722753906250034],[95.30146484375004,15.756152343749989],[95.34677734375012,16.09760742187501],[95.17695312500004,15.825683593750028],[94.9425781250001,15.818261718750023],[94.89316406250006,16.182812499999955],[94.66152343750005,15.904394531250006],[94.70332031250004,16.511914062499955],[94.4416015625001,16.094384765624966],[94.22382812500004,16.016455078125006],[94.58896484375006,17.5693359375],[94.17070312500007,18.73242187499997],[94.24570312500006,18.741162109374983],[94.07001953125004,18.893408203125006],[94.04492187500003,19.287402343750074],[93.92919921874997,18.89965820312503],[93.70546875000005,19.026904296875017],[93.49306640625005,19.369482421875006],[93.82490234375004,19.238476562499955],[93.99814453125006,19.440869140624983],[93.61171875000005,19.776074218749983],[93.70703125000003,19.912158203125074],[93.25,20.070117187500017],[93.12949218750012,19.858007812500063],[93.00195312499997,20.074853515624994],[93.06679687500005,20.377636718749955],[92.82832031250004,20.177587890625063],[92.89111328124997,20.34033203125],[92.73564453125007,20.56269531250001],[92.72285156250004,20.29560546875004],[92.32412109375,20.791845703125063],[92.17958984375005,21.293115234375023],[92.33056640624997,21.439794921874977],[92.63164062500002,21.306201171875045],[92.5934570312501,21.46733398437499],[92.58281250000002,21.940332031249994],[92.57490234375004,21.978076171875045],[92.68896484374997,22.130957031250006],[92.72099609375002,22.132421875000063],[92.77138671875,22.104785156250017],[92.9645507812501,22.003759765625034],[93.07060546875002,22.20942382812501],[93.16201171875,22.360205078125006],[93.07871093750006,22.71821289062501],[93.20390625000002,23.03701171875005],[93.34941406250007,23.08496093750003],[93.36601562500007,23.132519531249955],[93.32626953125006,24.064208984375057],[93.45214843750003,23.987402343750034],[93.68339843750007,24.00654296875004],[94.07480468750006,23.8720703125],[94.29306640625012,24.321875],[94.37724609375002,24.473730468750006],[94.49316406250003,24.637646484374983],[94.70371093750012,25.097851562499955],[94.55302734375007,25.215722656249994],[94.66777343750007,25.458886718749966],[94.99199218750002,25.77045898437504],[95.01523437500006,25.912939453125006],[95.0929687500001,25.98730468749997],[95.13242187500006,26.041259765625057],[95.12929687500005,26.070410156250034],[95.10839843749997,26.091406250000034],[95.06894531250006,26.19111328125001],[95.0597656250001,26.473974609375006],[95.20146484375007,26.641406250000017],[96.19082031250005,27.26127929687499],[96.79785156249997,27.29619140624999],[96.95341796875002,27.13330078125003],[97.10205078125003,27.11542968750004],[97.10371093750004,27.16333007812503],[96.90195312500012,27.439599609374994],[96.88359375000002,27.514843749999955],[96.96279296875,27.698291015625017],[97.04970703125005,27.760009765625],[97.34355468750002,27.982324218749994],[97.30273437499997,28.08598632812496],[97.3224609375001,28.21796875000004],[97.35644531249997,28.254492187500006],[97.43144531250002,28.353906250000023],[97.53789062500002,28.510205078124983],[97.59921875000006,28.51704101562504],[98.06162109375012,28.185888671874977],[98.29882812499997,27.550097656250045],[98.4525390625,27.6572265625],[98.65117187500007,27.572460937499983],[98.7384765625001,26.785742187500006],[98.68554687499997,26.189355468750023],[98.56406250000006,26.072412109374994],[98.65625,25.86357421874999],[98.33378906250007,25.586767578125006],[98.14287109375007,25.571093750000017],[98.01074218749997,25.292529296875017],[97.8195312500001,25.251855468749994],[97.73789062500006,24.869873046875057],[97.58330078125002,24.77480468750005],[97.53144531250004,24.49169921875003],[97.7082031250001,24.228759765625],[97.56455078125012,23.911035156250023],[98.2125,24.110644531250017],[98.83505859375006,24.121191406250034],[98.67675781250003,23.905078125000045],[98.8322265625001,23.624365234374977],[98.86376953125003,23.191259765625034],[99.41806640625006,23.069238281250023],[99.50712890625002,22.959130859374994],[99.19296875000006,22.12597656249997],[99.9176757812501,22.02802734375001],[99.94072265625007,21.75874023437504],[100.14765625000004,21.480517578125017],[100.60458984375012,21.471777343750006],[101.07978515625004,21.75585937499997],[101.1388671875001,21.567480468749977]]]]},"properties":{"name":"Myanmar","childNum":15}},{"geometry":{"type":"Polygon","coordinates":[[[19.21875,43.449951171875],[19.670996093750006,43.163964843749994],[20.344335937500006,42.827929687499996],[20.054296875,42.760058593749996],[20.06396484375,42.54726562499999],[19.78828125000001,42.476171875],[19.65449218750001,42.628564453124994],[19.280664062500023,42.17255859375],[19.342382812500006,41.869091796875],[18.436328125000017,42.559716796874994],[18.5458984375,42.6416015625],[18.46601562500001,42.777246093749994],[18.44384765625,42.96845703125],[18.46015625000001,42.997900390625],[18.48847656250001,43.012158203125],[18.623632812500006,43.027685546875],[18.621875,43.124609375],[18.674218750000023,43.230810546875],[18.74921875000001,43.283544921875],[18.85107421875,43.346337890624994],[18.934667968750006,43.339453125],[18.97871093750001,43.285400390625],[19.026660156250017,43.292431640625],[19.03671875,43.357324218749994],[18.940234375000017,43.496728515624994],[18.95068359375,43.526660156249996],[18.97421875,43.542333984375],[19.0283203125,43.532519531249996],[19.080078125,43.517724609374994],[19.11279296875,43.52773437499999],[19.164355468750017,43.535449218749996],[19.1943359375,43.53330078125],[19.21875,43.449951171875]]]},"properties":{"name":"Montenegro","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[111.878125,43.68017578125],[111.00722656250002,43.34140625],[110.400390625,42.773681640625],[109.44316406249999,42.455957031249994],[109.33984375,42.438378906249994],[108.68730468749999,42.41611328125],[108.17119140624999,42.447314453124996],[106.77001953125,42.288720703124994],[105.86757812500002,41.993994140625],[105.31435546875002,41.770898437499994],[105.19707031249999,41.738037109375],[105.11542968750001,41.66328125],[105.05058593749999,41.61591796875],[104.98203125000003,41.595507812499996],[104.49824218750001,41.65869140625],[104.49824218750001,41.877001953124996],[104.30517578125,41.846142578125],[103.99726562500001,41.79697265625],[103.71113281250001,41.751318359375],[103.07285156250003,42.00595703125],[102.5751953125,42.092089843749996],[102.15664062500002,42.158105468749994],[101.97294921874999,42.215869140624996],[101.65996093749999,42.500048828124996],[101.5791015625,42.52353515625],[101.49531250000001,42.53876953125],[101.09199218750001,42.551318359374996],[100.51904296875,42.616796875],[100.08632812500002,42.670751953125],[99.98378906250002,42.67734375],[99.46787109375003,42.568212890625],[97.20566406250003,42.789794921875],[96.38544921875001,42.720361328124994],[95.85957031250001,43.2759765625],[95.52558593750001,43.953955078125],[95.32558593750002,44.039355468749996],[95.35029296875001,44.278076171875],[94.71201171875003,44.350830078125],[93.51621093750003,44.944482421874994],[92.78789062499999,45.0357421875],[92.57890624999999,45.010986328125],[92.423828125,45.008935546874994],[92.17265624999999,45.03525390625],[92.02978515625,45.068505859374994],[91.584375,45.076513671875],[91.05,45.217431640624994],[90.87724609374999,45.19609375],[90.66181640625001,45.525244140625],[91.00175781249999,46.035791015624994],[90.99677734375001,46.10498046875],[90.94755859374999,46.177294921874996],[90.91152343750002,46.270654296874994],[90.98574218750002,46.7490234375],[90.91054687500002,46.883251953125],[90.86992187499999,46.954492187499994],[90.79902343750001,46.98515625],[90.71552734375001,47.003857421875],[90.49619140625003,47.28515625],[90.42519531250002,47.5041015625],[90.34746093749999,47.596972656249996],[90.33066406250003,47.655175781249994],[90.31328124999999,47.67617187499999],[90.19101562500003,47.702099609375],[90.10322265625001,47.745410156249996],[90.02792968750003,47.877685546875],[89.95869140625001,47.886328125],[89.91044921874999,47.8443359375],[89.83134765624999,47.823291015624996],[89.778125,47.827001953125],[89.56093750000002,48.003955078124996],[89.47919921875001,48.029052734375],[89.04765624999999,48.0025390625],[88.97109375000002,48.049951171874994],[88.91777343749999,48.089013671874994],[88.83828125000002,48.101708984374994],[88.68183593750001,48.170556640624994],[88.57597656249999,48.220166015625],[88.56679687500002,48.317431640624996],[88.51708984375,48.38447265625],[88.41396484375002,48.40341796875],[88.30996093750002,48.472070312499994],[87.97968750000001,48.555126953125],[88.06005859375,48.707177734374994],[87.83183593749999,48.791650390624994],[87.7431640625,48.881640625],[87.87216796875003,49.000146484374994],[87.81630859375002,49.0802734375],[87.8251953125,49.11630859375],[87.81425781249999,49.1623046875],[87.93476562500001,49.16455078125],[87.98808593749999,49.186914062499994],[88.02851562500001,49.219775390624996],[88.11572265625,49.256298828125],[88.19257812500001,49.451708984374996],[88.63320312500002,49.486132812499996],[88.83164062500003,49.4484375],[88.86386718750003,49.527636718749996],[88.90019531249999,49.539697265624994],[88.94541015625003,49.507666015625],[88.97060546875002,49.483740234375],[89.00839843750003,49.472802734374994],[89.10947265625003,49.501367187499994],[89.17998046874999,49.5322265625],[89.20292968749999,49.595703125],[89.24394531249999,49.62705078125],[89.39560546875003,49.6115234375],[89.475,49.66054687499999],[89.57919921875003,49.69970703125],[89.65410156249999,49.71748046875],[89.64384765624999,49.90302734375],[90.0537109375,50.09375],[90.65507812499999,50.22236328125],[90.71435546875,50.259423828124994],[90.7607421875,50.305957031249996],[91.02158203125003,50.415478515625],[91.23378906250002,50.452392578125],[91.30058593749999,50.46337890625],[91.3408203125,50.470068359375],[91.4150390625,50.468017578125],[91.44648437500001,50.52216796875],[91.80429687500003,50.693603515625],[92.10400390625,50.6919921875],[92.1923828125,50.700585937499994],[92.35478515624999,50.864160156249994],[92.42636718750003,50.803076171875],[92.62666015625001,50.68828125],[92.68134765625001,50.683203125],[92.73867187500002,50.7109375],[92.779296875,50.778662109375],[92.8564453125,50.789111328124996],[92.94130859375002,50.778222656249994],[93.103125,50.60390625],[94.25107421875003,50.556396484375],[94.35468750000001,50.221826171874994],[94.61474609375,50.023730468749996],[94.67548828125001,50.028076171875],[94.71806640624999,50.043261718749996],[94.93027343750003,50.04375],[95.11142578125003,49.935449218749994],[95.52265625000001,49.91123046875],[96.06552734375003,49.99873046875],[96.31503906250003,49.901123046875],[96.98574218750002,49.8828125],[97.20859375000003,49.730810546875],[97.35976562500002,49.741455078125],[97.58935546875,49.911474609375],[98.00390625,50.0142578125],[98.25029296874999,50.30244140625],[98.27949218750001,50.533251953124996],[98.14501953125,50.5685546875],[98.07890624999999,50.603808593749996],[98.02978515625,50.64462890625],[97.82529296875003,50.985253906249994],[98.103125,51.483544921874994],[98.64052734375002,51.801171875],[98.89316406250003,52.11728515625],[99.92167968749999,51.755517578125],[100.03457031250002,51.737109375],[100.23037109375002,51.729833984375],[100.46894531250001,51.72607421875],[100.53623046875003,51.7134765625],[101.38125,51.45263671875],[101.57089843750003,51.4671875],[101.82119140625002,51.421044921874994],[102.11152343750001,51.353466796875],[102.15566406250002,51.313769531249996],[102.16005859375002,51.26083984375],[102.14238281249999,51.216064453125],[102.15195312500003,51.10751953125],[102.19453125000001,51.050683593749994],[102.21503906250001,50.829443359375],[102.31660156250001,50.71845703125],[102.28837890624999,50.585107421874994],[103.30439453125001,50.20029296875],[103.63291015625003,50.138574218749994],[103.72324218750003,50.153857421874996],[103.80263671875002,50.176074218749996],[104.07871093750003,50.154248046875],[105.38359374999999,50.47373046875],[106.21787109375003,50.304589843749994],[106.36845703124999,50.317578125],[106.57441406250001,50.32880859375],[106.71113281250001,50.31259765625],[106.94130859375002,50.196679687499994],[107.04023437500001,50.086474609374996],[107.14306640625,50.033007812499996],[107.23330078125002,49.989404296874994],[107.34707031250002,49.986669921875],[107.63095703125003,49.98310546875],[107.91660156250003,49.947802734374996],[107.96542968750003,49.653515625],[108.40693359375001,49.396386718749994],[108.5224609375,49.34150390625],[108.61367187500002,49.322802734374996],[109.23671875000002,49.334912109375],[109.45371093750003,49.296337890625],[109.52871093750002,49.269873046875],[110.19990234375001,49.17041015625],[110.42783203125003,49.219970703125],[110.70976562499999,49.14296875],[110.82792968749999,49.166162109374994],[111.20419921875003,49.304296875],[111.33662109375001,49.35585937499999],[111.42929687500003,49.342626953125],[112.07968750000003,49.42421875],[112.49492187499999,49.53232421875],[112.69736328125003,49.507275390625],[112.80644531249999,49.523583984374994],[112.91484374999999,49.569238281249994],[113.05556640625002,49.616259765624996],[113.09208984374999,49.692529296874994],[113.16416015625003,49.797167968749996],[113.31904296875001,49.874316406249996],[113.44550781250001,49.9416015625],[113.57421875,50.00703125],[114.29707031250001,50.2744140625],[114.7431640625,50.233691406249996],[115.00332031250002,50.138574218749994],[115.27451171875003,49.948876953124994],[115.36503906249999,49.911767578124994],[115.42919921875,49.896484375],[115.58798828125003,49.886035156249996],[115.7177734375,49.880615234375],[115.79521484374999,49.905908203124994],[115.92597656250001,49.9521484375],[116.13457031249999,50.010791015624996],[116.216796875,50.00927734375],[116.35117187500003,49.978076171874996],[116.55117187500002,49.9203125],[116.68330078125001,49.823779296874996],[115.82050781250001,48.57724609375],[115.79169921875001,48.455712890624994],[115.79658203125001,48.346337890624994],[115.78554687500002,48.2482421875],[115.63945312499999,48.18623046875],[115.52509765625001,48.130859375],[115.61640625000001,47.874804687499996],[115.89824218749999,47.686914062499994],[115.99384765625001,47.71132812499999],[116.07480468750003,47.78955078125],[116.23115234375001,47.858203125],[116.31718749999999,47.85986328125],[116.37822265624999,47.844042968749996],[116.51347656249999,47.83955078125],[116.65195312500003,47.864501953125],[116.76054687499999,47.869775390624994],[116.90117187499999,47.853076171874996],[116.95166015625,47.836572265624994],[117.06972656250002,47.806396484375],[117.28593749999999,47.666357421875],[117.35078125000001,47.652197265625],[117.76835937499999,47.987890625],[118.49843750000002,47.983984375],[118.56777343750002,47.943261718749994],[118.69052734375003,47.822265625],[118.75996093750001,47.757617187499996],[118.88027343750002,47.72509765625],[119.017578125,47.685351562499996],[119.08193359375002,47.654150390625],[119.71113281250001,47.15],[119.89785156250002,46.8578125],[119.8671875,46.672167968749996],[119.74746093750002,46.627197265625],[119.70664062500003,46.606005859374996],[119.62021484375003,46.603955078125],[119.47402343750002,46.62666015625],[119.33183593749999,46.613818359374996],[119.162109375,46.638671875],[118.95712890625003,46.73486328125],[118.84394531250001,46.760205078125],[118.79033203124999,46.7470703125],[118.72294921874999,46.69189453125],[118.64873046874999,46.70166015625],[118.58046875000002,46.69189453125],[118.40439453125003,46.703173828124996],[118.30869140625003,46.717041015625],[118.15683593750003,46.678564453125],[118.0712890625,46.6666015625],[117.7412109375,46.5181640625],[117.546875,46.58828125],[117.43808593750003,46.586230468749996],[117.40556640624999,46.5708984375],[117.39218750000003,46.53759765625],[117.35634765625002,46.436669921874994],[117.35693359375,46.39130859375],[117.33339843750002,46.36201171875],[116.85908203125001,46.387939453125],[116.56259765625003,46.289794921875],[116.21298828125003,45.8869140625],[116.22910156250003,45.845751953124996],[116.240625,45.79599609375],[116.19765625000002,45.73935546875],[115.68105468750002,45.458251953125],[115.16259765625,45.390234375],[114.91923828124999,45.378271484375],[114.73876953125,45.41962890625],[114.56015625000003,45.389990234375],[114.41914062500001,45.202587890625],[114.16738281250002,45.049853515624996],[114.08027343750001,44.971142578125],[113.87705078125003,44.89619140625],[113.65263671874999,44.763476562499996],[113.58701171875003,44.745703125],[113.04941406250003,44.810351562499996],[112.70673828125001,44.883447265624994],[112.59677734375003,44.91767578125],[112.49931640624999,45.0109375],[112.41132812500001,45.058203125],[112.11289062500003,45.062939453125],[112.03261718750002,45.081640625],[111.89804687500003,45.0640625],[111.40224609375002,44.36728515625],[111.93173828125003,43.81494140625],[111.878125,43.68017578125]]]},"properties":{"name":"Mongolia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[145.75195312499997,15.133154296874991],[145.71318359375007,15.215283203125026],[145.821875,15.265380859375014],[145.75195312499997,15.133154296874991]]]},"properties":{"name":"N. Mariana Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[32.112890625,-26.839453125],[32.10595703125,-26.52001953125],[32.04140625000002,-26.28125],[32.060546875,-26.018359375],[31.9482421875,-25.957617187500006],[31.98583984375,-24.46064453125001],[31.799609375000017,-23.8921875],[31.54560546875001,-23.48232421875001],[31.287890625000017,-22.40205078125001],[31.429492187500017,-22.298828125],[32.429785156250006,-21.29707031250001],[32.353613281250006,-21.136523437500003],[32.49238281250001,-20.659765625],[32.992773437500006,-19.98486328125],[32.77763671875002,-19.388769531250006],[32.84980468750001,-19.10439453125001],[32.69970703125,-18.94091796875],[32.99306640625002,-18.35957031250001],[32.87626953125002,-16.88359375],[32.94804687500002,-16.71230468750001],[31.939843750000023,-16.428808593750006],[31.236230468750023,-16.02363281250001],[30.437792968750017,-15.995312500000011],[30.39609375,-15.64306640625],[30.231835937500023,-14.990332031250006],[33.201757812500006,-14.013378906250011],[33.63642578125001,-14.568164062500003],[34.375,-14.4248046875],[34.50527343750002,-14.59814453125],[34.54082031250002,-15.297265625],[34.24609375,-15.829394531250003],[34.528125,-16.319140625],[34.93339843750002,-16.760351562500006],[35.11210937500002,-16.898535156250006],[35.06464843750001,-17.07861328125],[35.124609375,-17.127246093750003],[35.20136718750001,-17.13105468750001],[35.272558593750006,-17.118457031250003],[35.29042968750002,-17.096972656250003],[35.28115234375002,-16.80781250000001],[35.22978515625002,-16.639257812500006],[35.178320312500006,-16.573339843750006],[35.16718750000001,-16.56025390625001],[35.242773437500006,-16.375390625],[35.358496093750006,-16.160546875],[35.59931640625001,-16.12587890625001],[35.70888671875002,-16.095800781250006],[35.75527343750002,-16.05830078125001],[35.79121093750001,-15.958691406250011],[35.89277343750001,-14.891796875000011],[35.86669921875,-14.86376953125],[35.84716796875,-14.6708984375],[35.6904296875,-14.465527343750011],[35.48847656250001,-14.201074218750009],[35.37578125000002,-14.058691406250006],[35.24746093750002,-13.896875],[35.01386718750001,-13.643457031250009],[34.61152343750001,-13.437890625],[34.54570312500002,-13.21630859375],[34.542578125,-13.108691406250003],[34.35781250000002,-12.164746093750011],[34.60625,-11.690039062500006],[34.65957031250002,-11.588671875],[34.82656250000002,-11.57568359375],[34.95947265625,-11.578125],[35.1826171875,-11.574804687500006],[35.41826171875002,-11.583203125000011],[35.50439453125,-11.604785156250003],[35.56435546875002,-11.60234375],[35.630957031250006,-11.58203125],[35.78544921875002,-11.452929687500003],[35.91132812500001,-11.4546875],[36.08222656250001,-11.537304687500011],[36.17548828125001,-11.609277343750009],[36.19130859375002,-11.670703125],[36.3056640625,-11.706347656250003],[36.97890625000002,-11.566992187500006],[37.37285156250002,-11.71044921875],[37.54169921875001,-11.675097656250003],[37.72480468750001,-11.580664062500006],[37.92021484375002,-11.294726562500003],[38.491796875,-11.413281250000011],[38.9875,-11.167285156250003],[39.81708984375001,-10.912402343750003],[39.98867187500002,-10.82080078125],[40.46357421875001,-10.46435546875],[40.61171875000002,-10.661523437500009],[40.48662109375002,-10.76513671875],[40.59716796875,-10.830664062500006],[40.40283203125,-11.33203125],[40.53154296875002,-12.004589843750011],[40.48710937500002,-12.4921875],[40.58085937500002,-12.635546875],[40.43681640625002,-12.983105468750011],[40.56875,-12.984667968750003],[40.595703125,-14.122851562500003],[40.715625,-14.214453125],[40.64609375,-14.538671875],[40.775,-14.421289062500009],[40.84453125000002,-14.718652343750009],[40.617773437500006,-15.115527343750003],[40.650976562500006,-15.260937500000011],[39.98359375000001,-16.22548828125001],[39.79091796875002,-16.29453125],[39.84462890625002,-16.435644531250006],[39.084375,-16.97285156250001],[38.14492187500002,-17.242773437500006],[37.24453125000002,-17.73994140625001],[36.93935546875002,-17.993457031250003],[36.40371093750002,-18.76972656250001],[36.26289062500001,-18.71962890625001],[36.23564453125002,-18.861328125],[35.85371093750001,-18.99335937500001],[34.947851562500006,-19.81269531250001],[34.6494140625,-19.70136718750001],[34.75576171875002,-19.82197265625001],[34.705078125,-20.473046875],[34.98232421875002,-20.80625],[35.267675781250006,-21.650976562500006],[35.31572265625002,-22.396875],[35.38300781250001,-22.45458984375],[35.45634765625002,-22.11591796875001],[35.53007812500002,-22.248144531250006],[35.57539062500001,-22.96308593750001],[35.37041015625002,-23.79824218750001],[35.5419921875,-23.82441406250001],[35.48964843750002,-24.065527343750006],[34.99208984375002,-24.65058593750001],[32.96113281250001,-25.49042968750001],[32.590429687500006,-26.00410156250001],[32.84882812500001,-26.26806640625],[32.95488281250002,-26.08359375],[32.93359375,-26.25234375],[32.88916015625,-26.83046875],[32.88613281250002,-26.84931640625001],[32.353515625,-26.861621093750003],[32.19960937500002,-26.83349609375],[32.112890625,-26.839453125]]]},"properties":{"name":"Mozambique","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-16.37333984374999,19.706445312499994],[-16.437548828124932,19.609277343749994],[-16.477001953124983,19.710351562499994],[-16.343652343749994,19.86621093750003],[-16.37333984374999,19.706445312499994]]],[[[-5.359912109374989,16.282861328124994],[-5.5125,15.496289062499983],[-9.293701171875,15.502832031249994],[-9.350585937499943,15.677392578125023],[-9.38535156249992,15.667626953124994],[-9.4265625,15.623046875000057],[-9.447705078124926,15.574853515624994],[-9.446923828124937,15.458203124999955],[-9.941406249999972,15.373779296874986],[-10.696582031249989,15.42265625],[-10.9482421875,15.151123046875014],[-11.455224609374994,15.62539062499999],[-11.760156249999937,15.425537109375057],[-11.828759765624966,15.244873046875014],[-11.872851562499989,14.995166015625031],[-12.02158203124992,14.804931640625],[-12.081542968749972,14.766357421875057],[-12.104687499999955,14.745361328125043],[-12.40869140625,14.889013671874991],[-12.735253906249994,15.13125],[-13.105273437499989,15.57177734375],[-13.40966796875,16.059179687500006],[-13.756640624999989,16.172509765624994],[-13.868457031249932,16.14814453125001],[-14.300097656249932,16.58027343750001],[-14.990625,16.676904296874994],[-15.768212890624994,16.485107421875],[-16.23901367187497,16.53129882812499],[-16.44101562499992,16.20454101562504],[-16.480078124999977,16.097216796875017],[-16.50205078124992,15.917333984375063],[-16.53525390624995,15.838378906250057],[-16.53574218749995,16.28681640625001],[-16.463623046875,16.60151367187501],[-16.030322265625017,17.88793945312497],[-16.213085937499926,19.003320312500023],[-16.51445312499996,19.361962890624994],[-16.305273437499977,19.51264648437504],[-16.44487304687499,19.47314453124997],[-16.21044921875003,20.227929687500023],[-16.42978515624995,20.652343750000057],[-16.622509765624955,20.634179687499994],[-16.87607421874992,21.086132812499955],[-16.998242187499926,21.039697265625023],[-17.048046874999955,20.80615234375003],[-17.06396484375,20.89882812499999],[-16.96455078125001,21.329248046875023],[-15.231201171875,21.331298828125],[-14.084667968749926,21.33271484375001],[-13.626025390624932,21.33325195312503],[-13.396728515624943,21.333544921875017],[-13.167431640624926,21.333789062500074],[-13.016210937499949,21.33393554687501],[-13.025097656249983,21.46679687499997],[-13.032226562500028,21.572070312500017],[-13.041748046875,21.71381835937504],[-13.051220703124983,21.854785156250074],[-13.094335937499977,22.49599609375005],[-13.153271484374983,22.820507812499983],[-13.031494140624943,23.000244140625],[-12.895996093749972,23.08955078125001],[-12.739599609375006,23.192724609375063],[-12.62041015624996,23.271337890625006],[-12.559375,23.290820312500045],[-12.372900390624977,23.318017578124994],[-12.023437499999943,23.467578125000017],[-12.016308593749983,23.97021484375],[-12.016308593749983,24.378662109375],[-12.016308593749983,24.923242187499994],[-12.016308593749983,25.059375],[-12.016308593749983,25.331689453124994],[-12.016308593749983,25.740136718749994],[-12.016308593749983,25.995410156250017],[-10.376123046874966,25.995458984375034],[-9.444531249999983,25.99550781250005],[-9.071923828124937,25.99550781250005],[-8.885644531249994,25.99550781250005],[-8.682226562499949,25.99550781250005],[-8.68212890625,26.109472656250006],[-8.68212890625,26.273193359375057],[-8.682324218749955,26.49770507812505],[-8.682617187500028,26.723144531250057],[-8.682861328124972,26.92133789062501],[-8.683349609375,27.285937500000045],[-4.822607421874949,24.99560546875],[-5.640771484374994,24.99516601562499],[-5.959814453124977,24.994970703125063],[-6.287207031249977,24.99482421875001],[-6.594091796874977,24.99462890624997],[-6.396582031249977,23.274804687499994],[-6.02641601562496,20.04218750000001],[-5.827099609374955,18.301562500000045],[-5.741699218749943,17.555566406250023],[-5.713183593750017,17.306884765625],[-5.684765624999983,17.058251953124966],[-5.628662109375028,16.568652343750045],[-5.50961914062492,16.442041015625023],[-5.359912109374989,16.282861328124994]]]]},"properties":{"name":"Mauritania","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-62.1484375,16.74033203124999],[-62.221630859375,16.699511718750003],[-62.191357421875,16.804394531249997],[-62.1484375,16.74033203124999]]]},"properties":{"name":"Montserrat","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[57.65126953125002,-20.48486328125],[57.31767578125002,-20.42763671875001],[57.416015625,-20.18378906250001],[57.65654296875002,-19.98994140625001],[57.7919921875,-20.21259765625001],[57.65126953125002,-20.48486328125]]]},"properties":{"name":"Mauritius","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[34.95947265625003,-11.578125],[34.82656250000005,-11.575683593749972],[34.65957031250005,-11.58867187499996],[34.61855468750005,-11.620214843749991],[34.60625,-11.690039062500006],[34.3578125,-12.164746093749997],[34.542578125,-13.108691406250003],[34.54570312500002,-13.21630859375],[34.6115234375001,-13.437890625000023],[35.0138671875001,-13.64345703124998],[35.247460937499994,-13.896875],[35.37578125000002,-14.05869140625002],[35.48847656250004,-14.20107421874998],[35.69042968749997,-14.465527343750026],[35.84716796875003,-14.670898437500043],[35.8927734375001,-14.891796875000011],[35.7912109375001,-15.958691406250026],[35.75527343750005,-16.058300781249983],[35.708886718749994,-16.095800781249977],[35.5993164062501,-16.12587890624998],[35.35849609375006,-16.160546875000023],[35.242773437500006,-16.375390625],[35.16718750000004,-16.56025390625001],[35.178320312500006,-16.57333984375002],[35.22978515625002,-16.639257812500034],[35.281152343749994,-16.8078125],[35.29042968750005,-17.096972656250017],[35.27255859375006,-17.11845703124996],[35.2013671875001,-17.13105468750004],[35.124609375,-17.127246093749974],[35.06464843750004,-17.078613281250014],[35.11210937500002,-16.898535156250006],[34.93339843750002,-16.760351562500006],[34.528125,-16.319140625],[34.24609374999997,-15.829394531249974],[34.54082031250002,-15.297265625],[34.50527343750005,-14.598144531249957],[34.375,-14.4248046875],[33.63642578125004,-14.568164062499974],[33.148046875,-13.94091796875],[32.98125,-14.009375],[32.797460937500006,-13.6884765625],[32.67041015624997,-13.590429687500006],[32.96757812500002,-13.225],[32.97519531250006,-12.701367187499983],[33.51230468750006,-12.347753906249977],[33.340136718750074,-12.308300781250011],[33.25234375000005,-12.112597656250031],[33.3039062500001,-11.69082031249998],[33.23271484375002,-11.417675781250026],[33.26835937500002,-11.403906249999977],[33.379785156249994,-11.15791015625004],[33.29277343750002,-10.85234375],[33.661523437499994,-10.553125],[33.55371093749997,-10.391308593750011],[33.53759765624997,-10.351562499999986],[33.52890625,-10.234667968749974],[33.31152343750003,-10.037988281249966],[33.3371093750001,-9.954003906249994],[33.350976562499994,-9.862207031250037],[33.25,-9.759570312500003],[33.148046875,-9.603515625],[32.99599609375005,-9.622851562499946],[32.91992187500003,-9.407421875000026],[33.88886718750004,-9.670117187499983],[33.99560546875003,-9.495410156250003],[34.32089843750006,-9.731542968749977],[34.56992187500006,-10.241113281249966],[34.66708984375006,-10.792480468750028],[34.60791015624997,-11.08046875],[34.77382812500005,-11.341699218750009],[34.890625,-11.3935546875],[34.93701171874997,-11.463476562500034],[34.95947265625003,-11.578125]]]},"properties":{"name":"Malawi","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[111.38925781250006,2.415332031250031],[111.31152343749997,2.437597656250034],[111.33349609374997,2.768310546875],[111.38925781250006,2.415332031250031]]],[[[104.22158203125,2.731738281250003],[104.1291015625001,2.767236328125037],[104.18476562500004,2.871728515625009],[104.22158203125,2.731738281250003]]],[[[117.88476562499997,4.186132812500006],[117.64902343750012,4.168994140624974],[117.70800781249997,4.262402343749997],[117.88476562499997,4.186132812500006]]],[[[100.28896484375005,5.294726562499989],[100.19101562500006,5.28286132812498],[100.2455078125,5.467773437499986],[100.33886718749997,5.410058593750037],[100.28896484375005,5.294726562499989]]],[[[99.848046875,6.465722656249994],[99.9186523437501,6.358593750000011],[99.74375,6.263281249999963],[99.64628906250002,6.418359375000023],[99.848046875,6.465722656249994]]],[[[102.10107421874997,6.242236328125031],[102.34013671875002,6.172021484375023],[102.534375,5.862548828125028],[103.09707031250005,5.408447265624986],[103.41582031250007,4.85029296875004],[103.43945312499997,2.93310546875],[103.8122070312501,2.58046875],[104.21855468750002,1.722851562499997],[104.25009765625012,1.388574218750009],[104.11494140625004,1.412255859375037],[103.98144531250003,1.623632812500034],[103.99150390625002,1.454785156249997],[103.6945312500001,1.449658203125026],[103.48027343750007,1.329492187499966],[103.35683593750005,1.546142578125057],[102.72714843750012,1.855566406250034],[101.29550781250012,2.885205078125011],[101.29990234375012,3.253271484375034],[100.71542968750006,3.966210937499966],[100.79550781250012,4.023388671874983],[100.61455078125002,4.3734375],[100.34326171874997,5.984179687500031],[100.11914062499997,6.441992187500048],[100.26142578125004,6.682714843749963],[100.3454101562501,6.549902343750006],[100.75449218750012,6.460058593749991],[100.87392578125,6.24541015624996],[101.05351562500002,6.242578125],[100.98164062500004,5.771044921875045],[101.1139648437501,5.636767578125045],[101.5560546875,5.907763671875003],[101.67841796875004,5.778808593750028],[101.87363281250012,5.825292968749991],[102.10107421874997,6.242236328125031]]],[[[117.5744140625001,4.17060546875004],[117.10058593750003,4.337060546875023],[116.51474609375006,4.370800781249969],[115.86074218750005,4.348046875000037],[115.67880859375006,4.193017578124994],[115.45439453125002,3.034326171875009],[115.24697265625005,3.025927734374989],[115.117578125,2.89487304687502],[115.08076171875004,2.63422851562504],[115.1791015625,2.523193359374972],[114.78642578125002,2.250488281250014],[114.83056640625003,1.980029296874989],[114.5125,1.452001953124963],[113.90234375000003,1.434277343749997],[113.6222656250001,1.2359375],[113.00654296875004,1.433886718750003],[112.94296875000006,1.566992187500034],[112.47617187500006,1.559082031250028],[112.1857421875001,1.4390625],[112.078515625,1.143359374999974],[111.80898437500005,1.011669921874969],[111.10136718750002,1.050537109374986],[110.50576171875005,0.861962890625023],[109.65400390625004,1.614892578125023],[109.53896484375,1.89619140625004],[109.62890625000003,2.027539062499983],[109.86484375000012,1.764453125000031],[110.34921875000012,1.719726562499972],[111.22324218750012,1.395849609374991],[111.0287109375,1.557812500000026],[111.26816406250012,2.13974609375002],[111.20859375000012,2.379638671875043],[111.44384765625003,2.381542968749983],[111.5125,2.743017578124991],[112.98789062500006,3.161914062499974],[113.92392578125006,4.243212890625003],[114.0638671875,4.592675781249966],[114.65410156250007,4.037646484375045],[114.84023437500005,4.393212890625009],[114.74667968750006,4.718066406250017],[115.02675781250005,4.899707031249989],[115.10703125000006,4.390429687499974],[115.290625,4.352587890624989],[115.1400390625,4.899755859374991],[115.37490234375,4.932763671874966],[115.55449218750007,5.093554687500045],[115.41904296875012,5.413183593749963],[115.60390625,5.603417968749994],[115.74082031250012,5.533007812500045],[115.8771484375001,5.613525390625014],[116.74980468750007,6.977099609374989],[116.8498046875001,6.826708984374989],[116.78808593749997,6.606103515624994],[117.12851562500012,6.968896484375009],[117.2298828125,6.939990234374974],[117.29404296875006,6.676904296875023],[117.60966796875002,6.512646484375054],[117.69375,6.35],[117.64453124999997,6.001855468749994],[117.5011718750001,5.884667968750009],[118.00380859375,6.053320312499991],[118.11582031250006,5.8625],[117.93476562500004,5.7875],[117.97363281249997,5.70625],[118.35312500000012,5.80605468749998],[118.59482421875006,5.592089843750003],[119.22343750000007,5.412646484375031],[119.2663085937501,5.308105468750057],[119.21962890625,5.159814453125037],[118.9125,5.02290039062504],[118.26054687500007,4.988867187500034],[118.18535156250002,4.828515625000051],[118.5625,4.502148437499997],[118.54833984375003,4.379248046875006],[118.008203125,4.250244140625014],[117.6964843750001,4.342822265625045],[117.5744140625001,4.17060546875004]]],[[[117.14160156250003,7.168212890625028],[117.08066406250006,7.115283203124989],[117.06425781250007,7.26069335937504],[117.2640625,7.351660156250006],[117.26679687500004,7.220800781249991],[117.14160156250003,7.168212890625028]]]]},"properties":{"name":"Malaysia","childNum":8}},{"geometry":{"type":"Polygon","coordinates":[[[23.380664062500017,-17.640625],[24.27490234375,-17.481054687500006],[24.73291015625,-17.51777343750001],[25.001757812500017,-17.56855468750001],[25.2587890625,-17.793554687500006],[24.909082031250023,-17.821386718750006],[24.530566406250017,-18.052734375],[24.243945312500017,-18.0234375],[23.599707031250006,-18.4599609375],[23.219335937500006,-17.99970703125001],[20.97412109375,-18.31884765625],[20.9794921875,-21.9619140625],[19.977343750000017,-22.00019531250001],[19.98046875,-24.77675781250001],[19.98046875,-28.310351562500003],[19.98046875,-28.451269531250006],[19.539843750000017,-28.574609375],[19.31269531250001,-28.73330078125001],[19.24580078125001,-28.901660156250003],[19.16171875,-28.938769531250003],[18.310839843750017,-28.88623046875],[17.44794921875001,-28.69814453125001],[17.34785156250001,-28.50117187500001],[17.358691406250017,-28.26943359375001],[17.1884765625,-28.13251953125001],[17.05625,-28.031054687500003],[16.93330078125001,-28.069628906250003],[16.875292968750017,-28.1279296875],[16.841210937500023,-28.21894531250001],[16.81015625,-28.26455078125001],[16.7875,-28.39472656250001],[16.755761718750023,-28.4521484375],[16.62617187500001,-28.487890625],[16.487109375000017,-28.572851562500006],[16.447558593750017,-28.617578125],[15.719042968750017,-27.9658203125],[15.341503906250011,-27.386523437500003],[15.139062500000023,-26.50800781250001],[14.9677734375,-26.31806640625001],[14.837109375000011,-25.033203125],[14.5015625,-24.201953125],[14.462792968750023,-22.44912109375001],[13.450585937500023,-20.91669921875001],[13.168359375000023,-20.184667968750006],[12.458203125000011,-18.9267578125],[11.77587890625,-18.001757812500003],[11.733496093750006,-17.7509765625],[11.743066406250023,-17.24921875000001],[11.902539062500011,-17.2265625],[12.013964843750017,-17.168554687500006],[12.21337890625,-17.2099609375],[12.318457031250006,-17.21337890625],[12.359277343750023,-17.205859375],[12.548144531250017,-17.212695312500003],[13.179492187500017,-16.9716796875],[13.475976562500023,-17.0400390625],[14.017480468750023,-17.40888671875001],[16.1484375,-17.390234375],[18.396386718750023,-17.3994140625],[18.95527343750001,-17.803515625],[20.1943359375,-17.863671875],[20.745507812500023,-18.01972656250001],[22.32421875,-17.8375],[23.380664062500017,-17.640625]]]},"properties":{"name":"Namibia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[167.54443359375003,-22.62324218750001],[167.44375,-22.63916015624997],[167.44345703125006,-22.541406250000037],[167.54443359375003,-22.62324218750001]]],[[[168.01093750000004,-21.429980468750017],[168.1390625,-21.44521484375001],[168.12070312500012,-21.615820312500034],[167.96679687500003,-21.641601562499957],[167.81542968749997,-21.392675781249963],[167.9884765625001,-21.337890624999986],[168.01093750000004,-21.429980468750017]]],[[[167.40087890625003,-21.16064453125003],[167.07265625,-20.99726562499997],[167.03271484374997,-20.922558593750026],[167.18945312500003,-20.803515625000017],[167.05576171875012,-20.720214843750014],[167.29794921875006,-20.732519531250034],[167.40087890625003,-21.16064453125003]]],[[[164.20234375000004,-20.246093749999957],[164.4359375,-20.282226562499957],[165.191796875,-20.768847656249974],[165.66279296875004,-21.267187499999977],[166.94238281250003,-22.09013671875003],[166.97031250000012,-22.32285156250002],[166.77412109375004,-22.37617187500004],[166.4679687500001,-22.256054687499997],[164.92744140625004,-21.289843749999974],[164.16972656250007,-20.48017578125004],[164.05966796875012,-20.141503906249966],[164.20234375000004,-20.246093749999957]]]]},"properties":{"name":"New Caledonia","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[14.97900390625,22.99619140624999],[15.181835937500011,21.523388671874997],[15.607324218750023,20.954394531250003],[15.587109375000011,20.733300781249994],[15.963183593750017,20.34619140625],[15.735058593750011,19.904052734375],[15.474316406250011,16.908398437499997],[14.367968750000017,15.750146484374994],[13.4482421875,14.380664062500003],[13.505761718750023,14.134423828124994],[13.606347656250023,13.70458984375],[13.426953125000011,13.701757812499991],[13.323828125,13.670849609374997],[12.871679687500006,13.449023437500003],[12.65478515625,13.3265625],[12.463183593750017,13.09375],[10.958886718750023,13.371533203124997],[10.475878906250017,13.330224609374994],[10.229589843750006,13.281005859375],[10.184667968750006,13.270117187499991],[9.615917968750011,12.810644531249991],[9.201562500000023,12.821484375],[8.750585937500006,12.908154296874997],[8.4560546875,13.059667968749991],[8.095019531250017,13.291162109374994],[7.955761718750011,13.32275390625],[7.788671875,13.337890625],[7.056738281250006,13.000195312499997],[6.804296875,13.107666015625],[6.2998046875,13.658789062499991],[6.184277343750011,13.66367187499999],[5.838183593750017,13.765380859375],[5.491992187500017,13.872851562500003],[5.415820312500017,13.859179687500003],[5.361621093750017,13.836865234374997],[5.241894531250011,13.757226562499994],[4.664843750000017,13.733203125],[4.147558593750006,13.457714843749997],[3.947851562500006,12.775048828124994],[3.646679687500011,12.529980468749997],[3.595410156250011,11.6962890625],[2.805273437500006,12.383837890624989],[2.366015625000017,12.221923828125],[2.38916015625,11.897070312499991],[2.072949218750011,12.309375],[2.226269531250011,12.466064453125],[2.104589843750006,12.701269531249991],[1.56494140625,12.635400390624994],[0.9873046875,13.041894531249994],[0.988476562500011,13.36484375],[1.201171875,13.357519531249991],[0.6181640625,13.703417968750003],[0.42919921875,13.972119140624997],[0.382519531250011,14.245800781249997],[0.163867187500017,14.497216796874994],[0.217480468750011,14.911474609374991],[0.947460937500011,14.982128906249997],[1.300195312500023,15.272265625],[3.001074218750006,15.340966796874994],[3.06015625,15.427197265624997],[3.504296875000023,15.356347656249994],[3.5205078125,15.483105468749997],[3.842968750000011,15.701708984375003],[4.121289062500011,16.357714843750003],[4.234667968750017,16.996386718750003],[4.227636718750006,19.142773437499997],[5.836621093750011,19.479150390624994],[7.481738281250017,20.873095703125003],[11.967871093750006,23.517871093750003],[13.48125,23.18017578125],[14.215527343750011,22.619677734375003],[14.97900390625,22.99619140624999]]]},"properties":{"name":"Niger","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[7.30078125,4.418164062500026],[7.140429687500017,4.395117187500034],[7.227343750000045,4.527343749999972],[7.30078125,4.418164062500026]]],[[[6.804296875,13.107666015625],[7.056738281250006,13.00019531250004],[7.788671875,13.337890625],[7.955761718750011,13.322753906250028],[8.095019531250045,13.29116210937498],[8.750585937500034,12.908154296875026],[9.20156250000008,12.82148437500004],[9.615917968750011,12.810644531249963],[10.184667968750063,13.270117187499963],[10.229589843749977,13.281005859375043],[10.475878906250074,13.330224609375037],[10.958886718750051,13.371533203125011],[12.463183593750017,13.09375],[12.654785156250057,13.3265625],[13.426953125000068,13.701757812499963],[13.606347656250023,13.704589843750014],[13.932324218750011,13.258496093749997],[14.06396484375,13.078515625],[14.160058593750023,12.612792968749986],[14.184863281250017,12.447216796874997],[14.272851562500023,12.356494140624989],[14.518945312500051,12.298242187500023],[14.619726562500063,12.150976562500048],[14.559765625000011,11.492285156249963],[14.20234375000004,11.268164062499963],[14.143261718750068,11.248535156250043],[14.056738281250034,11.245019531250037],[13.981445312500057,11.21186523437504],[13.892089843750057,11.140087890624983],[13.699902343749983,10.873144531250048],[13.53535156250004,10.605078124999963],[13.414550781250028,10.171435546874989],[13.269921875000051,10.036181640624974],[13.198730468750028,9.563769531250003],[12.929492187500074,9.426269531249972],[12.87568359375004,9.303515625000017],[12.80654296875008,8.886621093749994],[12.7822265625,8.817871093750014],[12.651562500000011,8.667773437499989],[12.40351562500004,8.59555664062502],[12.311328125000074,8.419726562499989],[12.2333984375,8.282324218749977],[12.016015625000051,7.589746093750009],[11.809179687500006,7.345068359374991],[11.767382812500017,7.272265624999989],[11.861425781249977,7.11640625000004],[11.657519531250017,6.951562500000023],[11.580078125000057,6.88886718750004],[11.551660156250023,6.697265625],[11.153320312500057,6.437939453125011],[11.1064453125,6.457714843750054],[11.032519531250045,6.697900390625037],[10.954199218750006,6.7765625],[10.60625,7.063085937500006],[10.413183593750006,6.877734375],[10.293066406250034,6.876757812499974],[10.205468750000051,6.891601562499986],[10.185546874999972,6.91279296875004],[10.167773437500017,6.959179687499983],[10.143554687500057,6.99643554687502],[10.038867187500045,6.921386718750014],[9.874218750000068,6.803271484375017],[9.82070312500008,6.783935546874986],[9.779882812500034,6.760156250000023],[9.725585937499972,6.65],[9.659960937500017,6.531982421874986],[9.490234375,6.418652343749997],[8.997167968750006,5.917724609375],[8.715625,5.046875],[8.514843750000068,4.724707031250034],[8.23378906250008,4.907470703124972],[8.293066406250006,4.557617187500014],[7.644238281250068,4.525341796875011],[7.530761718750028,4.655175781249994],[7.284375,4.547656250000031],[7.076562500000051,4.716162109374991],[7.15468750000008,4.514404296875],[6.92324218750008,4.390673828125017],[6.767675781250006,4.724707031250034],[6.860351562500057,4.373339843750045],[6.633007812500011,4.340234375000051],[6.579980468750051,4.475976562499994],[6.554589843750023,4.34140625000002],[6.263671875,4.309423828124991],[6.270996093749972,4.432128906250028],[6.173339843749972,4.277392578125031],[5.970703125,4.338574218749983],[5.587792968750051,4.647216796874972],[5.448144531250023,4.945849609374974],[5.383300781250057,5.129003906249977],[5.475976562500023,5.153857421874989],[5.370019531250023,5.195019531250026],[5.367968750000045,5.337744140624963],[5.549707031250023,5.474218749999963],[5.385839843750034,5.401757812500037],[5.199218750000028,5.533544921874977],[5.456640624999977,5.61171875],[5.327343750000011,5.707519531249986],[5.112402343750034,5.64155273437504],[4.861035156250068,6.026318359374997],[4.431347656250011,6.348583984375026],[3.450781249999977,6.427050781250017],[3.71699218750004,6.597949218750017],[3.430175781250057,6.525],[3.335546875000063,6.396923828125011],[2.706445312500051,6.369238281249963],[2.735644531250045,6.595703125],[2.753710937499989,6.661767578124966],[2.774609374999983,6.711718750000017],[2.752929687500028,6.771630859374966],[2.731738281250045,6.852832031249989],[2.721386718750068,6.980273437500017],[2.75673828125008,7.067919921875017],[2.750488281250057,7.39506835937496],[2.765820312500068,7.422509765625051],[2.783984375000045,7.443408203125045],[2.78515625,7.476855468750017],[2.703125,8.371826171875],[2.774804687500023,9.048535156250026],[3.044921875,9.08383789062502],[3.325195312499972,9.778466796875051],[3.60205078125,10.004541015625009],[3.646582031250006,10.408984374999989],[3.771777343750017,10.417626953124966],[3.83447265625,10.607421875],[3.7568359375,10.76875],[3.71640625,11.07958984375],[3.695312499999972,11.12031250000004],[3.63886718750004,11.176855468750006],[3.487792968749972,11.395410156250037],[3.490527343750017,11.499218750000054],[3.55390625000004,11.631884765624989],[3.595410156250068,11.696289062500057],[3.664746093750068,11.762451171875028],[3.646679687500011,12.529980468749983],[3.947851562500006,12.775048828124994],[4.147558593750006,13.457714843749983],[4.664843750000045,13.733203124999974],[5.241894531250011,13.757226562499994],[5.361621093750074,13.836865234375054],[5.415820312500017,13.859179687499974],[5.491992187500074,13.872851562500003],[6.2998046875,13.658789062500006],[6.804296875,13.107666015625]]]]},"properties":{"name":"Nigeria","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-83.6419921875,10.917236328125],[-83.71293945312499,10.785888671875],[-83.91928710937499,10.7353515625],[-84.6341796875,11.045605468749997],[-84.9091796875,10.9453125],[-85.5841796875,11.189453125],[-85.7443359375,11.06210937499999],[-87.670166015625,12.965673828124991],[-87.58505859374999,13.043310546874991],[-87.42436523437499,12.921142578125],[-87.33725585937499,12.979248046875],[-87.05917968749999,12.991455078125],[-87.00932617187499,13.0078125],[-86.918212890625,13.223583984374997],[-86.87353515625,13.266503906249994],[-86.792138671875,13.27978515625],[-86.72929687499999,13.284375],[-86.710693359375,13.313378906249994],[-86.76352539062499,13.63525390625],[-86.77060546874999,13.69873046875],[-86.758984375,13.746142578125003],[-86.733642578125,13.763476562500003],[-86.61025390625,13.774853515624997],[-86.376953125,13.755664062500003],[-86.33173828125,13.770068359375003],[-86.238232421875,13.899462890625003],[-86.15122070312499,13.994580078124997],[-86.0892578125,14.037207031249991],[-86.04038085937499,14.050146484374991],[-85.9837890625,13.965673828124991],[-85.78671875,13.844433593749997],[-85.75341796875,13.85205078125],[-85.73393554687499,13.858691406250003],[-85.727734375,13.876074218749991],[-85.731201171875,13.931835937499997],[-85.68193359374999,13.982568359374994],[-85.20834960937499,14.311816406250003],[-85.059375,14.582958984374997],[-84.86044921874999,14.809765625],[-84.645947265625,14.661083984374997],[-84.53764648437499,14.633398437499991],[-83.635498046875,14.876416015624997],[-83.5365234375,14.977001953124997],[-83.4150390625,15.008056640625],[-83.15751953124999,14.993066406249994],[-83.18535156249999,14.956396484374991],[-83.21591796874999,14.932373046875],[-83.27988281249999,14.812792968750003],[-83.344384765625,14.902099609375],[-83.413720703125,14.825341796874994],[-83.29921875,14.7490234375],[-83.187744140625,14.340087890625],[-83.4123046875,13.99648437499999],[-83.567333984375,13.3203125],[-83.5109375,12.411816406249997],[-83.627197265625,12.459326171874991],[-83.59335937499999,12.713085937499997],[-83.75424804687499,12.501953125],[-83.680419921875,12.024316406249994],[-83.7671875,12.059277343749997],[-83.82890624999999,11.861035156249997],[-83.70458984375,11.824560546874991],[-83.6517578125,11.642041015624997],[-83.86787109375,11.300048828125],[-83.6419921875,10.917236328125]]]},"properties":{"name":"Nicaragua","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-169.80341796875,-19.0830078125],[-169.94833984375,-19.072851562500006],[-169.834033203125,-18.96601562500001],[-169.80341796875,-19.0830078125]]]},"properties":{"name":"Niue","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-68.205810546875,12.144580078124989],[-68.25434570312495,12.032080078124977],[-68.36923828125,12.301953124999983],[-68.205810546875,12.144580078124989]]],[[[4.226171875000034,51.38647460937503],[3.902050781250011,51.20766601562502],[3.43251953125008,51.24575195312505],[3.35009765625,51.37768554687503],[4.226171875000034,51.38647460937503]]],[[[3.94912109375008,51.73945312500001],[4.07509765625008,51.648779296875006],[3.699023437500017,51.70991210937501],[3.94912109375008,51.73945312500001]]],[[[4.886132812500023,53.07070312500005],[4.70917968750004,53.036035156249994],[4.886425781249983,53.18330078124998],[4.886132812500023,53.07070312500005]]],[[[4.226171875000034,51.38647460937503],[3.448925781250068,51.54077148437503],[3.743945312500017,51.596044921875006],[4.27412109375004,51.47163085937498],[4.004785156250051,51.595849609374966],[4.182617187500057,51.61030273437498],[3.946875,51.810546875],[4.482812500000023,52.30917968749998],[4.76875,52.941308593749966],[5.061230468750068,52.96064453125001],[5.532031250000074,53.268701171874966],[6.062207031250068,53.407080078125006],[6.816210937500045,53.44116210937503],[7.197265625000028,53.28227539062499],[7.033007812500045,52.65136718749997],[6.710742187500045,52.61787109374998],[6.748828125000074,52.464013671874994],[7.035156250000057,52.38022460937498],[6.724511718749994,52.080224609374966],[6.800390625,51.96738281249998],[5.948730468750057,51.80268554687501],[6.198828125000034,51.45],[6.129980468750034,51.14741210937501],[5.857519531250034,51.030126953125006],[6.048437500000034,50.90488281250006],[5.993945312500017,50.75043945312504],[5.693554687500011,50.774755859375006],[5.796484375000034,51.153076171875],[5.214160156250045,51.278955078124966],[5.03095703125004,51.46909179687498],[4.226171875000034,51.38647460937503]]],[[[5.325781250000063,53.38574218750003],[5.190234375000074,53.39179687500001],[5.582617187500063,53.438085937500034],[5.325781250000063,53.38574218750003]]]]},"properties":{"name":"Netherlands","childNum":6,"cp":[5.0752777,52.358465]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[5.085839843750023,60.30756835937501],[5.089062500000068,60.188769531250045],[4.95722656250004,60.44726562500006],[5.085839843750023,60.30756835937501]]],[[[4.958691406250068,61.084570312500034],[4.79902343750004,61.08271484375001],[4.861621093749989,61.19384765625],[4.958691406250068,61.084570312500034]]],[[[8.10273437500004,63.33759765625004],[7.804003906250017,63.413916015625034],[8.073535156250045,63.47080078124998],[8.10273437500004,63.33759765625004]]],[[[8.470800781250063,63.66713867187502],[8.287109375000028,63.68715820312502],[8.764648437500057,63.804638671874955],[8.78652343750008,63.703466796875034],[8.470800781250063,63.66713867187502]]],[[[11.2314453125,64.865869140625],[10.739843750000034,64.87031250000001],[11.02099609375,64.97871093749995],[11.2314453125,64.865869140625]]],[[[12.971777343750063,67.87412109375],[12.824023437500074,67.82124023437498],[13.068066406250068,68.07133789062505],[12.971777343750063,67.87412109375]]],[[[13.872851562500045,68.26533203125004],[14.096777343750034,68.218603515625],[13.229394531250051,67.995361328125],[13.300195312499994,68.16044921875007],[13.872851562500045,68.26533203125004]]],[[[15.207128906250006,68.943115234375],[15.222070312500023,68.61630859375003],[14.404687500000051,68.663232421875],[15.037792968750068,69.00053710937507],[15.207128906250006,68.943115234375]]],[[[15.760351562500006,68.56123046875001],[16.328906250000017,68.87631835937498],[16.519238281250068,68.63300781249998],[15.975292968750011,68.402490234375],[14.257519531249983,68.19077148437503],[15.412597656250028,68.61582031250003],[15.483007812500006,69.04345703125003],[16.04804687500001,69.30205078125002],[15.760351562500006,68.56123046875001]]],[[[17.503027343750034,69.59624023437502],[18.004101562500068,69.50498046874998],[17.95068359375003,69.19814453125],[17.487890625000063,69.19682617187499],[17.08251953124997,69.013671875],[16.81044921875008,69.07070312499997],[17.001757812500045,69.36191406250006],[17.36083984375003,69.38149414062497],[17.503027343750034,69.59624023437502]]],[[[29.956152343750006,69.79677734375002],[29.766210937500006,69.76752929687501],[29.835839843749994,69.90556640625005],[29.956152343750006,69.79677734375002]]],[[[20.779199218750023,70.08974609375002],[20.46425781250005,70.0765625],[20.492773437500006,70.20332031249995],[20.78603515625008,70.21953124999999],[20.779199218750023,70.08974609375002]]],[[[19.25507812500001,70.06640625000006],[19.607812500000023,70.019140625],[19.334765625000074,69.82026367187501],[18.784765625000034,69.57900390624997],[18.12988281250003,69.557861328125],[18.34931640625004,69.76787109374999],[18.67402343750004,69.78164062500002],[19.13271484375005,70.24414062500003],[19.25507812500001,70.06640625000006]]],[[[19.76748046875005,70.21669921875002],[20.005957031250034,70.07622070312502],[19.599023437499994,70.26616210937507],[19.76748046875005,70.21669921875002]]],[[[23.615332031250034,70.54931640625003],[23.15917968750003,70.28261718750005],[22.941015625000063,70.444580078125],[23.546679687500017,70.61708984374997],[23.615332031250034,70.54931640625003]]],[[[24.01757812500003,70.56738281249997],[23.716601562500074,70.561865234375],[23.778417968750063,70.74736328125005],[24.01757812500003,70.56738281249997]]],[[[23.440527343750063,70.81577148437503],[22.8291015625,70.54155273437505],[22.358691406250017,70.514794921875],[21.99453125000008,70.65712890624997],[23.440527343750063,70.81577148437503]]],[[[30.869726562500006,69.78344726562506],[30.860742187499994,69.53842773437503],[30.18017578124997,69.63583984375],[30.08730468750005,69.43286132812503],[29.38828125,69.29814453125005],[28.96582031250003,69.02197265625],[28.846289062500006,69.17690429687502],[29.33339843750005,69.47299804687503],[29.14160156250003,69.67143554687505],[27.747851562500045,70.06484375],[27.127539062500063,69.90649414062497],[26.525390625000057,69.91503906250003],[26.07246093750004,69.69155273437497],[25.748339843750017,68.99013671875],[24.94140625000003,68.59326171875006],[23.85400390625,68.80590820312503],[23.324023437500017,68.64897460937502],[22.410937500000074,68.719873046875],[21.59375,69.273583984375],[21.06611328125001,69.21411132812497],[21.065722656250017,69.04174804687503],[20.622167968750006,69.036865234375],[20.116699218750057,69.02089843750005],[20.348046875000023,68.84873046875003],[19.969824218750063,68.35639648437501],[18.303027343750045,68.55541992187497],[17.91669921875001,67.96489257812502],[17.324609375000023,68.10380859374999],[16.783593750000023,67.89501953125],[16.12744140625,67.42583007812507],[16.40351562500004,67.05498046875002],[15.422949218750006,66.48984374999998],[15.483789062500051,66.30595703124999],[14.543261718750045,66.12934570312498],[14.47968750000004,65.30146484374998],[13.650292968750023,64.58154296874997],[14.077636718750028,64.464013671875],[14.141210937500006,64.17353515624998],[13.960546875000063,64.01401367187498],[13.203515625000023,64.07509765625],[12.792773437500017,64],[12.175195312500051,63.595947265625],[11.999902343750051,63.29169921875001],[12.303515625000074,62.28559570312501],[12.155371093750006,61.720751953125045],[12.88076171875008,61.35229492187506],[12.706054687500028,61.059863281250074],[12.29414062500004,61.00268554687506],[12.588671874999989,60.450732421875045],[12.486132812500074,60.10678710937506],[11.680761718750034,59.59228515625003],[11.798144531250074,59.28989257812498],[11.64277343750004,58.92607421875002],[11.470703125000057,58.909521484375034],[11.388281250000063,59.036523437499966],[10.834472656250028,59.18393554687498],[10.595312500000063,59.764550781249966],[10.179394531250068,59.00927734375003],[9.842578125000017,58.95849609374997],[9.557226562500063,59.11269531250002],[9.65693359375004,58.97119140624997],[8.166113281250063,58.145312500000045],[7.0048828125,58.024218750000074],[6.877050781250006,58.15073242187498],[6.590527343750068,58.09731445312502],[6.659863281250068,58.26274414062499],[5.706835937500074,58.52363281250001],[5.55556640625008,58.975195312500006],[6.099023437500023,58.87026367187502],[6.363281250000028,59.00092773437501],[6.099414062500017,58.951953125000074],[5.88916015625,59.097949218750045],[5.951855468750068,59.299072265625],[6.415332031250074,59.547119140625],[5.17324218750008,59.16254882812498],[5.2421875,59.564306640625034],[5.472460937500017,59.713085937499955],[5.77216796875004,59.66093749999999],[6.216601562499989,59.818359375],[5.73046875,59.863085937500045],[6.348730468750006,60.35297851562504],[6.57363281250008,60.36059570312497],[6.526855468750057,60.152929687500034],[6.995703125,60.511962890625],[6.1533203125,60.34624023437499],[5.145800781250074,59.63881835937502],[5.205664062500006,60.087939453125045],[5.688574218749977,60.12319335937502],[5.285839843750011,60.20571289062505],[5.13710937500008,60.445605468750074],[5.648339843750051,60.68798828124997],[5.244042968750023,60.569580078125],[5.115820312500006,60.63598632812503],[5.008593750000017,61.038183593750006],[6.777832031250028,61.142431640625006],[7.038671875000063,60.952929687500045],[7.040136718750006,61.091162109375034],[7.604492187500057,61.210546875000034],[7.34658203125008,61.30058593749999],[7.442578125000011,61.43461914062502],[7.173535156250011,61.16596679687501],[6.599902343750017,61.28964843749998],[6.383496093750068,61.133886718750034],[5.451269531250034,61.10234375000002],[5.106738281250017,61.187548828125045],[5.002734375000074,61.43359375],[5.338671875000017,61.485498046874994],[4.927832031249977,61.71069335937506],[4.93007812499999,61.878320312499994],[6.01582031250004,61.7875],[6.730761718750045,61.86977539062505],[5.266894531250045,61.935595703125045],[5.143164062500063,62.159912109375],[5.908300781249977,62.41601562500003],[6.083496093750057,62.349609375],[6.580078125000057,62.407275390625045],[6.692382812500028,62.46806640624999],[6.136132812500051,62.40747070312497],[6.352929687500051,62.61113281249999],[7.653125,62.56401367187499],[7.538378906250074,62.67207031249998],[8.045507812500006,62.77124023437503],[6.734960937500006,62.72070312500003],[6.940429687500028,62.930468750000045],[7.571875,63.09951171875002],[8.100585937500028,63.090966796874966],[8.623144531250006,62.84624023437502],[8.158007812500017,63.16152343750005],[8.635546875000045,63.34233398437502],[8.360742187500023,63.498876953125034],[8.576171875000028,63.60117187499998],[9.135839843750006,63.593652343749966],[9.156054687500045,63.459326171875034],[9.696875,63.624560546875045],[10.020996093750028,63.39082031250004],[10.76015625000008,63.461279296875006],[10.725292968750068,63.625],[11.370703125000034,63.804833984374994],[11.175585937500074,63.89887695312498],[11.457617187500063,64.00297851562505],[11.306640625000028,64.04887695312499],[10.91425781250004,63.92109374999998],[10.934863281250045,63.770214843749955],[10.055078125000051,63.5126953125],[9.567285156250051,63.70615234374998],[10.565625,64.418310546875],[11.523828125000051,64.744384765625],[11.632910156250063,64.81391601562495],[11.296777343750051,64.75478515625],[11.489355468750034,64.975830078125],[12.15966796875,65.178955078125],[12.508398437499977,65.09941406250005],[12.915527343750057,65.33925781249997],[12.417578125000063,65.18408203124997],[12.133886718749977,65.27915039062498],[12.68886718750008,65.90219726562498],[13.033105468750051,65.95625],[12.783789062500063,66.10043945312506],[14.034179687500057,66.29755859374998],[13.118847656250011,66.23066406250004],[13.211425781250028,66.64082031250001],[13.959472656250028,66.79433593750002],[13.651562500000011,66.90708007812498],[14.10878906250008,67.11923828125003],[15.41572265625004,67.20244140625002],[14.441699218750045,67.27138671875005],[14.961914062500057,67.57426757812502],[15.59443359375004,67.34853515625005],[15.691503906250006,67.52138671875],[15.24873046875004,67.6021484375],[15.303906250000011,67.76528320312502],[14.854687500000068,67.66333007812506],[14.798925781250063,67.80932617187503],[15.13427734375,67.97270507812502],[15.621386718750017,67.94829101562502],[15.316015624999977,68.06875],[16.007910156250006,68.22871093750004],[16.312304687500017,67.88144531249998],[16.20380859375001,68.31674804687503],[17.552832031250063,68.42626953125006],[16.51435546875004,68.53256835937503],[18.101464843749994,69.15629882812499],[18.259765625,69.47060546875],[18.915917968750023,69.33559570312502],[18.614453125000068,69.49057617187498],[19.197265625000057,69.74785156249999],[19.722460937500017,69.78164062500002],[19.64150390625005,69.42402343750001],[20.324218750000057,69.94531249999997],[20.054492187500074,69.33266601562497],[20.486718750000023,69.54208984375],[20.739453124999983,69.52050781250003],[20.622070312500057,69.91391601562498],[21.163085937500057,69.88950195312498],[21.432910156250045,70.01318359375006],[21.974707031250034,69.83457031249998],[21.355761718750045,70.23339843749997],[22.321972656250068,70.264501953125],[22.684570312500057,70.374755859375],[23.35390625000008,69.98339843750003],[23.3291015625,70.20722656249995],[24.420019531250034,70.70200195312503],[24.263476562500017,70.82631835937497],[24.658007812500017,71.00102539062505],[25.264648437500057,70.843505859375],[25.768164062500063,70.85317382812502],[25.043847656250023,70.10903320312502],[26.66132812500004,70.93974609374999],[26.585058593750034,70.41000976562498],[26.989355468750063,70.51137695312502],[27.183691406250034,70.74404296875],[27.546484375000063,70.80400390625005],[27.23525390625008,70.94721679687498],[27.59707031250005,71.09130859375003],[28.392285156250068,70.97529296875004],[27.898046875,70.67792968750001],[28.271777343750017,70.66796875000003],[28.192968750000034,70.24858398437505],[28.83154296875003,70.86396484375001],[29.7375,70.646826171875],[30.065136718750097,70.70297851562498],[30.944140625000017,70.27441406249997],[30.262988281250074,70.12470703125004],[28.804296875000063,70.09252929687506],[29.601367187500017,69.97675781249998],[29.792089843750063,69.727880859375],[30.08828125,69.71757812500005],[30.237597656250017,69.86220703125002],[30.428320312500006,69.722265625],[30.869726562500006,69.78344726562506]]],[[[25.58632812500005,71.14208984375],[26.13378906250003,70.99580078125004],[25.582031250000057,70.960791015625],[25.31494140625,71.03413085937504],[25.58632812500005,71.14208984375]]],[[[-8.953564453124983,70.83916015625002],[-8.001367187499966,71.17768554687495],[-8.002099609374937,71.04125976562497],[-8.953564453124983,70.83916015625002]]],[[[19.219335937500006,74.39101562500002],[18.86123046875008,74.51416015624997],[19.182910156250045,74.51791992187503],[19.219335937500006,74.39101562500002]]],[[[21.60810546875004,78.59570312499997],[22.04316406250004,78.57695312500007],[22.29951171875004,78.22817382812497],[23.451953125000074,78.14946289062502],[23.11669921874997,77.99150390624999],[24.901855468750057,77.756591796875],[22.55371093750003,77.26665039062502],[22.685351562500045,77.55351562500002],[20.928125,77.45966796874998],[21.653125,77.92353515624998],[20.22792968750005,78.47783203125005],[21.60810546875004,78.59570312499997]]],[[[11.250292968750017,78.610693359375],[12.116406250000068,78.232568359375],[11.121289062500011,78.46328125],[10.558203125000063,78.90292968750003],[11.250292968750017,78.610693359375]]],[[[29.047070312500068,78.91206054687504],[29.69667968750005,78.90473632812495],[27.88906250000005,78.8521484375],[28.511132812500023,78.96733398437502],[29.047070312500068,78.91206054687504]]],[[[16.786718750000034,79.90673828125],[17.834570312499977,79.80004882812503],[17.66875,79.38593750000004],[18.39736328125008,79.60517578125001],[18.677832031250006,79.26171875000003],[19.893554687500057,79.05620117187499],[20.61103515625004,79.10664062499998],[21.388769531250034,78.74042968749998],[19.67675781250003,78.60957031249995],[16.700488281250045,76.57929687499995],[14.365820312500034,77.23447265625003],[13.995703125000034,77.50820312500002],[14.69501953125004,77.525048828125],[14.920800781250023,77.68881835937506],[17.033300781250006,77.79770507812503],[16.91406250000003,77.89799804687505],[14.089941406250063,77.77138671875],[13.680566406250051,78.028125],[14.307226562500006,78.00507812500001],[15.783886718750011,78.32705078125005],[17.00292968750003,78.36938476562497],[16.44863281250008,78.50356445312502],[16.78261718750008,78.66362304687505],[15.417382812500023,78.47324218749998],[15.384179687500023,78.77119140625001],[15.01630859375004,78.63012695312497],[14.689257812500017,78.720947265625],[14.638281250000034,78.41459960937502],[14.110449218750063,78.27089843749997],[13.150195312499989,78.2375],[11.365429687500011,78.95039062500004],[12.323437500000068,78.91425781249995],[12.083984375000028,79.26752929687498],[11.579785156250068,79.28349609375005],[11.208105468750034,79.12963867187503],[10.737597656250017,79.52016601562502],[10.804003906250045,79.79877929687504],[11.150390625,79.71699218749998],[11.702343750000011,79.82060546875005],[12.287792968750068,79.713134765625],[12.279980468749983,79.81596679687507],[13.692871093749972,79.860986328125],[13.777539062500011,79.71528320312498],[12.555371093750068,79.56948242187502],[13.333789062500017,79.57480468750006],[14.029589843750017,79.34414062500005],[14.59365234375008,79.79873046875002],[16.34375,78.97612304687502],[15.816113281250011,79.68183593750001],[16.245703125000034,80.04946289062502],[16.786718750000034,79.90673828125]]],[[[32.52597656250006,80.119140625],[31.48193359374997,80.10791015625003],[33.62929687499999,80.21743164062497],[32.52597656250006,80.119140625]]],[[[20.897851562500023,80.24995117187501],[22.289746093749983,80.04921874999997],[22.450781250000034,80.40224609375005],[23.00800781250004,80.473974609375],[23.114550781250074,80.18696289062498],[24.29755859375004,80.36040039062505],[26.86083984375,80.16000976562498],[27.19863281250008,79.90659179687506],[25.641210937500034,79.40302734374995],[23.94775390625,79.19428710937498],[22.903710937500023,79.23066406250001],[22.865527343750045,79.41186523437497],[20.861132812500017,79.39785156249997],[20.128222656250074,79.489599609375],[19.674609375000045,79.591162109375],[20.784082031250023,79.74858398437502],[18.725,79.7607421875],[18.25537109375,79.92919921875003],[18.855957031250057,80.03662109375],[17.91689453125005,80.14311523437502],[19.343359375000063,80.11640624999998],[19.733300781249994,80.47783203124999],[20.897851562500023,80.24995117187501]]]]},"properties":{"name":"Norway","childNum":27}},{"geometry":{"type":"Polygon","coordinates":[[[87.984375,27.133935546874994],[87.9931640625,27.086083984374994],[88.11103515625001,26.928466796875],[88.1572265625,26.807324218749997],[88.16152343750002,26.724804687499997],[88.11152343750001,26.58642578125],[88.05488281250001,26.430029296875],[88.02695312500003,26.39501953125],[87.9951171875,26.382373046874996],[87.28740234374999,26.360302734374997],[87.01640624999999,26.555419921875],[86.70136718750001,26.43505859375],[86.00732421875,26.649365234374997],[85.79453125000003,26.604150390624994],[85.7373046875,26.63974609375],[85.6484375,26.829003906249994],[85.56845703125003,26.83984375],[85.29296875,26.741015625],[85.19179687500002,26.766552734374997],[84.68535156249999,27.041015625],[84.65380859375,27.091699218749994],[84.65478515625,27.203662109374996],[84.64072265625003,27.249853515625],[84.61015624999999,27.298681640625],[84.48085937500002,27.348193359374996],[84.22978515624999,27.42783203125],[84.09101562500001,27.491357421874994],[83.82880859375001,27.377832031249994],[83.74697265625002,27.395947265624997],[83.55166015625002,27.456347656249996],[83.44716796875002,27.46533203125],[83.38398437500001,27.44482421875],[83.36943359374999,27.41025390625],[83.28974609375001,27.370996093749994],[82.7333984375,27.518994140624997],[82.71083984375002,27.5966796875],[82.67734375000003,27.6734375],[82.6298828125,27.687060546874996],[82.45136718750001,27.671826171874997],[82.28769531250003,27.756542968749997],[82.11191406250003,27.864941406249997],[82.03701171875002,27.900585937499997],[81.98769531250002,27.913769531249997],[81.94521484375002,27.899267578125],[81.896875,27.874462890624997],[81.85263671875003,27.867089843749994],[81.1689453125,28.335009765624996],[80.58701171875003,28.649609375],[80.51787109374999,28.665185546874994],[80.49580078125001,28.635791015624996],[80.47910156250003,28.604882812499994],[80.41855468750003,28.612011718749997],[80.32480468750003,28.66640625],[80.2265625,28.723339843749997],[80.07070312500002,28.83017578125],[80.05166015625002,28.8703125],[80.08457031250003,28.994189453124996],[80.13046875000003,29.100390625],[80.16953125000003,29.124316406249996],[80.23300781250003,29.194628906249996],[80.25595703125003,29.318017578124994],[80.2548828125,29.42333984375],[80.31689453125,29.572070312499996],[80.40185546875,29.730273437499996],[80.54902343750001,29.899804687499994],[80.81992187500003,30.119335937499997],[80.84814453125,30.13974609375],[80.90761718750002,30.171923828124996],[80.96611328124999,30.180029296875],[81.17714843750002,30.039892578125],[81.25507812500001,30.093310546874996],[81.41718750000001,30.337597656249997],[81.64189453124999,30.3875],[81.85488281250002,30.36240234375],[82.04335937500002,30.3267578125],[82.220703125,30.063867187499994],[83.15546875000001,29.612646484375],[83.58349609375,29.18359375],[83.93593750000002,29.279492187499997],[84.02197265625,29.253857421874997],[84.10136718749999,29.219970703125],[84.12783203125002,29.156298828124996],[84.17558593749999,29.036376953125],[84.22871093750001,28.911767578124994],[84.796875,28.560205078124994],[84.85507812500003,28.553613281249994],[85.06914062499999,28.609667968749996],[85.12636718750002,28.60263671875],[85.15908203125002,28.592236328124997],[85.16015625,28.571875],[85.12148437500002,28.484277343749994],[85.08857421875001,28.372265625],[85.12246093750002,28.315966796874996],[85.21210937500001,28.292626953124994],[85.41064453125,28.276025390624994],[85.67832031250003,28.27744140625],[85.75947265625001,28.220654296874997],[85.84023437500002,28.1353515625],[85.92167968749999,27.989697265624997],[85.9541015625,27.92822265625],[85.99453125000002,27.910400390625],[86.06416015625001,27.934716796874994],[86.07871093750003,28.08359375],[86.13701171874999,28.11435546875],[86.21796875000001,28.0220703125],[86.32861328125,27.959521484374996],[86.40869140625,27.928662109374997],[86.51689453124999,27.963525390624994],[86.55449218749999,28.085205078125],[86.61445312500001,28.10302734375],[86.69052734375003,28.094921875],[86.71962890625002,28.070654296875],[86.75039062500002,28.0220703125],[86.93378906250001,27.968457031249997],[87.02011718750003,27.928662109374997],[87.14140624999999,27.838330078124997],[87.29072265625001,27.821923828124994],[87.62255859375,27.815185546875],[87.86074218750002,27.886083984375],[88.10976562500002,27.87060546875],[87.984375,27.133935546874994]]]},"properties":{"name":"Nepal","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[169.17822265624997,-52.497265625],[169.12753906250006,-52.570312499999964],[169.02177734375002,-52.49541015624998],[169.17822265624997,-52.497265625]]],[[[166.22109375,-50.76152343749997],[166.2428710937501,-50.84570312499998],[165.88916015624997,-50.80771484374996],[166.10136718750002,-50.538964843750016],[166.26748046875005,-50.558593750000014],[166.22109375,-50.76152343749997]]],[[[168.14492187500005,-46.862207031249966],[168.04316406250004,-46.9326171875],[168.2409179687501,-47.070019531250026],[167.52197265624997,-47.258691406249994],[167.80078125000003,-46.90654296875002],[167.78398437500007,-46.699804687500006],[167.9557617187501,-46.69443359374998],[168.14492187500005,-46.862207031249966]]],[[[166.97949218749997,-45.17968750000003],[167.02265625000004,-45.299804687499986],[166.89267578125012,-45.24052734374999],[166.97949218749997,-45.17968750000003]]],[[[-176.17763671874997,-43.74033203124998],[-176.38173828124997,-43.86679687499998],[-176.40737304687497,-43.7609375],[-176.516552734375,-43.78476562499996],[-176.33359375000003,-44.02529296875004],[-176.51552734374997,-44.11660156249998],[-176.62934570312495,-44.036132812500014],[-176.55512695312504,-43.85195312499998],[-176.84765625000003,-43.82392578125004],[-176.56611328124995,-43.717578125000045],[-176.17763671874997,-43.74033203124998]]],[[[173.91464843750018,-40.86367187500004],[173.78085937500012,-40.921777343749966],[173.964453125,-40.71298828124998],[173.91464843750018,-40.86367187500004]]],[[[173.11533203125006,-41.27929687499997],[173.94716796875005,-40.92412109375],[173.79785156250003,-41.271972656249986],[173.99941406250005,-40.99326171874996],[174.30253906249996,-41.019531249999986],[174.03857421875003,-41.24189453125],[174.37011718750009,-41.1037109375],[174.06933593750009,-41.42949218750002],[174.08369140625015,-41.67080078124998],[174.2831054687501,-41.740625],[173.22119140624997,-42.976562499999986],[172.62402343749997,-43.27246093749996],[172.73476562500005,-43.35478515625003],[172.52666015625002,-43.464746093749966],[172.69345703125006,-43.444335937499986],[172.80703125000005,-43.620996093749994],[173.07324218750003,-43.676171874999966],[173.065625,-43.87460937499998],[172.50273437500002,-43.84365234374998],[172.48037109375,-43.726660156250034],[172.29658203125004,-43.867871093750026],[172.035546875,-43.70175781250002],[172.17978515625006,-43.895996093749986],[171.24072265624997,-44.26416015625003],[171.14628906250002,-44.9123046875],[170.99902343750003,-44.91142578124999],[171.11328125000003,-45.03925781250001],[170.7005859375,-45.68427734374997],[170.77626953125005,-45.870898437499974],[170.4191406250001,-45.94101562499996],[169.68662109375006,-46.55166015625002],[169.34228515625003,-46.62050781250001],[168.38212890625007,-46.60537109374995],[168.1891601562501,-46.362207031249966],[167.8419921875001,-46.366210937499986],[167.539453125,-46.14853515624996],[167.36894531250007,-46.24150390624999],[166.73154296875006,-46.19785156249998],[166.91669921875004,-45.95722656249998],[166.64990234374997,-46.04169921875004],[166.71796875000004,-45.88935546875001],[166.49316406249997,-45.9638671875],[166.48828124999997,-45.83183593750002],[167.0033203125,-45.71210937500004],[166.79765625000002,-45.64560546874999],[166.99082031250012,-45.531738281249986],[166.73398437500012,-45.54355468749999],[166.74306640625,-45.46845703124997],[166.91992187499997,-45.40791015624998],[166.86923828125006,-45.31123046875],[167.15566406250005,-45.410937499999974],[167.23007812500012,-45.29033203125],[167.02587890624997,-45.12363281249998],[167.25947265625004,-45.08222656249997],[167.19453125000004,-44.963476562500034],[167.41074218750006,-44.82792968750003],[167.4662109375,-44.958300781250045],[167.48496093750006,-44.77138671874998],[167.78701171875,-44.59501953125002],[167.90898437500002,-44.66474609375001],[167.85654296875012,-44.50068359374998],[168.45742187500005,-44.030566406250045],[169.17890625000004,-43.9130859375],[169.16953125000006,-43.77705078125],[169.83388671875,-43.53701171875004],[170.24023437499997,-43.163867187500045],[170.39609375000012,-43.18222656249996],[170.30283203125012,-43.10761718750004],[170.61181640625003,-43.091796875000014],[170.5236328125001,-43.00898437500001],[170.6654296875,-42.961230468749974],[170.73525390625005,-43.029785156249986],[170.96992187500004,-42.71835937499996],[171.01171875000003,-42.88505859374999],[171.027734375,-42.696093750000045],[171.31337890625005,-42.460156250000026],[171.48623046875,-41.7947265625],[171.94804687500002,-41.53867187499996],[172.13945312500002,-40.947265625000014],[172.640625,-40.51826171875001],[172.94365234375007,-40.51875],[172.73261718750004,-40.54375],[172.70439453125002,-40.6677734375],[172.988671875,-40.84824218749999],[173.11533203125006,-41.27929687499997]]],[[[175.54316406250015,-36.279296874999986],[175.34619140624997,-36.217773437499986],[175.3895507812501,-36.07773437499996],[175.54316406250015,-36.279296874999986]]],[[[173.26943359375,-34.93476562499998],[173.44785156250012,-34.844335937500034],[173.47265625000003,-34.94697265624998],[174.10400390625003,-35.14287109375002],[174.1431640625,-35.3],[174.32031250000003,-35.246679687500034],[174.58066406250018,-35.78554687500004],[174.39580078124996,-35.79736328124996],[174.8021484375,-36.30947265625001],[174.72246093750007,-36.84121093749998],[175.29951171875004,-36.99326171874996],[175.38535156250012,-37.206933593749966],[175.54248046874997,-37.2013671875],[175.46083984375005,-36.475683593750034],[175.77216796875004,-36.73515625],[176.10839843749997,-37.64511718749998],[177.27402343750012,-37.993457031249974],[178.0091796875,-37.55488281249998],[178.53623046875006,-37.69208984375004],[178.26767578125006,-38.551171875],[177.976171875,-38.72226562500005],[177.90878906250012,-39.23955078125],[177.52294921875003,-39.07382812499999],[177.07675781250012,-39.22177734375002],[176.93925781249996,-39.55527343750002],[177.10986328125009,-39.673144531250045],[176.8421875000001,-40.15781250000002],[175.98291015625003,-41.21328125000002],[175.30976562499998,-41.610644531249974],[175.16562500000012,-41.41738281249995],[174.88134765624997,-41.42402343749997],[174.8656250000001,-41.223046874999966],[174.63535156250012,-41.28945312499999],[175.1625,-40.62158203125],[175.25410156250004,-40.28935546875],[175.1559570312501,-40.11494140625],[175.00927734375009,-39.95214843749996],[173.93437500000013,-39.50908203125002],[173.76367187499997,-39.31875],[173.84433593750006,-39.13935546875001],[174.39843749999997,-38.96259765624998],[174.59736328124998,-38.78505859374995],[174.80166015625005,-37.895507812500014],[174.92802734375002,-37.80449218750003],[174.58583984374994,-37.09775390625002],[174.73427734375,-37.21523437499998],[174.92890625000004,-37.084765625000045],[174.78203125000013,-36.94375],[174.47558593750009,-36.94189453124997],[174.1888671875001,-36.492285156250034],[174.4015625000001,-36.60195312499999],[174.39277343750004,-36.24003906249999],[174.26787109375002,-36.16308593750003],[174.25371093749996,-36.24912109374998],[174.03642578125013,-36.12246093750001],[173.91445312499994,-35.908691406249986],[173.91728515625002,-36.01816406249999],[174.16640624999994,-36.327636718749986],[174.05468749999991,-36.35976562500004],[173.41220703125012,-35.542578125],[173.62617187500004,-35.31914062499996],[173.3763671875001,-35.50009765624996],[173.31396484375003,-35.44335937499996],[173.11669921874997,-35.205273437500026],[173.190625,-35.01621093749998],[172.70595703125005,-34.45517578124998],[173.04394531249997,-34.429101562499994],[172.96376953125,-34.53515625000003],[173.26943359375,-34.93476562499998]]]]},"properties":{"name":"New Zealand","childNum":9}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[58.722070312499994,20.21875],[58.640917968750074,20.210693359375057],[58.64121093750006,20.33735351562501],[58.884375,20.680566406250023],[58.95078125000006,20.516162109375017],[58.722070312499994,20.21875]]],[[[56.38798828125002,24.97919921875004],[56.640625,24.4703125],[57.12304687500003,23.980712890625],[58.773046875,23.517187499999977],[59.42939453125004,22.660839843749955],[59.82324218749997,22.50898437500004],[59.8,22.21992187500001],[59.37148437500005,21.498828125000017],[58.89570312500004,21.11279296874997],[58.47421875000006,20.406884765624966],[58.20898437500003,20.423974609374994],[58.245019531249994,20.599218749999977],[58.16943359375003,20.58950195312505],[57.86181640624997,20.24414062500003],[57.71416015625002,19.678417968749983],[57.81162109375006,19.01708984374997],[56.825976562500074,18.753515625],[56.3834960937501,17.98798828125001],[55.479101562500006,17.84326171875003],[55.25537109375003,17.58564453125004],[55.275195312500074,17.320898437500006],[55.06416015625004,17.038916015625034],[54.06816406250002,17.005517578124966],[53.60986328124997,16.75996093750004],[53.08564453125004,16.648388671874955],[51.977636718750006,18.996142578125074],[54.97734375000002,19.995947265625006],[55.64101562499999,22.001855468749994],[55.185839843750074,22.7041015625],[55.1999023437501,23.034765625000034],[55.53164062499999,23.81904296875001],[55.4684570312501,23.94111328125001],[55.98515625000002,24.063378906249966],[55.92861328125005,24.215136718750074],[55.76083984375006,24.24267578125],[55.795703125000074,24.868115234374955],[56.00058593750006,24.953222656249977],[56.06386718750005,24.73876953125],[56.38798828125002,24.97919921875004]]],[[[56.29785156250003,25.650683593750045],[56.144628906250006,25.690527343750006],[56.16748046875003,26.047460937499977],[56.08046875,26.06264648437505],[56.41308593749997,26.351171875000034],[56.29785156250003,25.650683593750045]]]]},"properties":{"name":"Oman","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[73.08961802927895,36.86435907947333],[73.08203125000107,36.43949943991182],[72.31128647748268,35.77290936638241],[73.13410859949555,34.82510160558277],[73.19895048106557,33.88770931468204],[74.00809389139292,33.25375789331485],[73.98984375,33.22119140625],[74.30361328125002,32.991796875],[74.30546875000002,32.810449218749994],[74.35458984375,32.768701171874994],[74.58828125000002,32.753222656249996],[74.632421875,32.770898437499994],[74.66328125000001,32.757666015625],[74.64335937500002,32.607714843749996],[74.68574218750001,32.493798828124994],[74.78886718750002,32.4578125],[74.9873046875,32.462207031249996],[75.33349609375,32.279199218749994],[75.25410156250001,32.14033203125],[75.13876953125,32.104785156249996],[75.07148437500001,32.08935546875],[74.73945312500001,31.948828125],[74.6357421875,31.88974609375],[74.55556640625002,31.818554687499997],[74.5259765625,31.76513671875],[74.50996093750001,31.712939453124996],[74.58183593750002,31.52392578125],[74.59394531250001,31.465380859374996],[74.53496093750002,31.261376953124994],[74.51767578125,31.185595703124996],[74.6103515625,31.112841796874996],[74.62578125000002,31.06875],[74.6328125,31.03466796875],[74.509765625,30.959667968749997],[74.38037109375,30.893408203125],[74.33935546875,30.8935546875],[74.00898437500001,30.519677734374994],[73.89931640625002,30.435351562499996],[73.88271484375002,30.3521484375],[73.92460937500002,30.28164062499999],[73.93339843750002,30.222070312499994],[73.88652343750002,30.162011718749994],[73.8091796875,30.093359375],[73.38164062500002,29.934375],[72.9033203125,29.028759765624997],[72.34189453125,28.751904296874997],[72.2919921875,28.697265625],[72.128515625,28.346337890624994],[71.94804687500002,28.177294921874996],[71.88886718750001,28.0474609375],[71.87031250000001,27.9625],[71.54296875,27.869873046875],[71.18476562500001,27.831640625],[70.87490234375002,27.714453125],[70.79794921875,27.709619140624994],[70.69160156250001,27.768994140624997],[70.62910156250001,27.937451171874997],[70.40371093750002,28.025048828124994],[70.24433593750001,27.934130859374996],[70.1939453125,27.894873046875],[70.14453125,27.849023437499994],[70.0498046875,27.694726562499994],[69.89628906250002,27.4736328125],[69.56796875,27.174609375],[69.47001953125002,26.804443359375],[70.11464843750002,26.548046875],[70.14921875000002,26.347558593749994],[70.1001953125,25.910058593749994],[70.2646484375,25.70654296875],[70.3251953125,25.685742187499997],[70.44853515625002,25.681347656249997],[70.505859375,25.685302734375],[70.56953125000001,25.705957031249994],[70.6484375,25.666943359374997],[70.65205078125001,25.422900390625003],[70.87773437500002,25.06298828125],[70.95087890625001,24.8916015625],[71.02070312500001,24.75766601562499],[71.0478515625,24.687744140625],[71.00234375000002,24.65390625],[70.97636718750002,24.61875],[70.96982421875,24.571875],[71.04531250000002,24.429980468750003],[71.04404296875,24.400097656249997],[70.98281250000002,24.361035156249997],[70.928125,24.362353515625003],[70.88623046875,24.34375],[70.80507812500002,24.261962890625],[70.76728515625001,24.245410156250003],[70.71630859375,24.237988281249997],[70.65947265625002,24.24609375],[70.57929687500001,24.279052734375],[70.55585937500001,24.331103515625003],[70.5650390625,24.385791015625003],[70.54677734375002,24.41831054687499],[70.2890625,24.35629882812499],[70.0982421875,24.2875],[69.80517578125,24.165234375],[69.71621093750002,24.172607421875],[69.63417968750002,24.22519531249999],[69.5591796875,24.273095703124994],[69.44345703125,24.275390625],[69.23505859375001,24.268261718749997],[69.11953125000002,24.26865234374999],[69.05156250000002,24.286328125],[68.98457031250001,24.273095703124994],[68.90078125000002,24.292431640624997],[68.86347656250001,24.266503906249994],[68.82832031250001,24.26401367187499],[68.78115234375002,24.313720703125],[68.75898437500001,24.30722656249999],[68.73964843750002,24.2919921875],[68.728125,24.265625],[68.72412109375,23.96469726562499],[68.48867187500002,23.967236328124997],[68.38125,23.950878906249997],[68.28251953125002,23.927978515625],[68.1650390625,23.857324218749994],[68.11552734375002,23.753369140624997],[67.8599609375,23.90268554687499],[67.66845703125,23.810986328124997],[67.309375,24.1748046875],[67.171484375,24.756103515625],[66.70302734375002,24.8609375],[66.69863281250002,25.226318359375],[66.32421875,25.601806640625],[66.13115234375002,25.49326171874999],[66.46767578125002,25.4453125],[64.77666015625002,25.307324218749997],[64.65898437500002,25.18408203125],[64.059375,25.40292968749999],[63.556640625,25.353173828124994],[63.49140625000001,25.210839843749994],[61.56689453125,25.186328125],[61.587890625,25.20234375],[61.61542968750001,25.2861328125],[61.64013671875,25.584619140624994],[61.67138671875,25.6923828125],[61.66181640625001,25.751269531250003],[61.66865234375001,25.768994140624997],[61.73769531250002,25.82109375],[61.75439453125,25.84335937499999],[61.78076171875,25.995849609375],[61.80996093750002,26.165283203125],[61.842382812500006,26.225927734375],[62.1259765625,26.368994140625],[62.239355468750006,26.35703125],[62.31230468750002,26.490869140624994],[63.168066406250006,26.665576171874996],[63.186132812500006,26.837597656249997],[63.24160156250002,26.86474609375],[63.25039062500002,26.879248046875],[63.24208984375002,27.077685546874996],[63.30517578125,27.124560546874996],[63.30156250000002,27.15146484375],[63.25625,27.207910156249994],[63.19609375000002,27.243945312499996],[63.16679687500002,27.252490234374996],[62.75273437500002,27.265625],[62.782324218750006,27.800537109375],[62.7625,28.202050781249994],[61.88984375000001,28.546533203124994],[61.15214843750002,29.542724609375],[61.0341796875,29.663427734375],[60.843359375,29.858691406249996],[61.22441406250002,29.749414062499994],[62.0009765625,29.530419921874994],[62.4765625,29.408349609374994],[63.56757812500001,29.497998046874997],[64.09873046875,29.391943359375],[64.39375,29.544335937499994],[65.09550781250002,29.559472656249994],[66.23125,29.86572265625],[66.346875,30.802783203124996],[66.82929687500001,31.263671875],[67.45283203125001,31.234619140625],[67.737890625,31.343945312499997],[67.57822265625,31.506494140624994],[68.16103515625002,31.802978515625],[68.59765625,31.802978515625],[68.86894531250002,31.634228515624997],[69.279296875,31.936816406249996],[69.24140625000001,32.433544921875],[69.5015625,33.020068359374996],[70.26113281250002,33.289013671875],[69.8896484375,34.007275390625],[70.65400390625001,33.952294921874994],[71.05156250000002,34.049707031249994],[71.095703125,34.369433593749996],[70.965625,34.53037109375],[71.62050781250002,35.183007812499994],[71.57197265625001,35.546826171875],[71.18505859375,36.04208984375],[71.23291015625,36.12177734375],[72.24980468750002,36.734716796875],[73.08961802927895,36.86435907947333]]]},"properties":{"name":"Pakistan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-81.60327148437497,7.332812499999989],[-81.85205078125003,7.453320312500026],[-81.812158203125,7.59238281250002],[-81.72875976562494,7.62119140625002],[-81.60327148437497,7.332812499999989]]],[[[-78.89833984375002,8.27426757812502],[-78.960595703125,8.435839843749989],[-78.88325195312495,8.460253906249989],[-78.89833984375002,8.27426757812502]]],[[[-77.37421874999993,8.65830078125002],[-77.47851562499994,8.498437500000037],[-77.19599609374995,7.972460937500003],[-77.53828124999995,7.56625976562502],[-77.76191406249995,7.698828125000034],[-77.90117187499999,7.229345703125048],[-78.42158203124995,8.060986328125011],[-78.28735351562497,8.091796874999972],[-78.14189453125002,8.386083984374977],[-77.76054687499993,8.133251953124983],[-78.09946289062498,8.496972656250009],[-78.22304687500002,8.396630859374994],[-78.39921874999993,8.505664062500003],[-78.40986328124998,8.35532226562502],[-78.51406249999997,8.628173828125],[-79.08637695312495,8.997167968750034],[-79.50708007812494,8.97006835937502],[-79.68745117187493,8.850976562500009],[-79.81591796875,8.639208984375031],[-79.75043945312498,8.595507812500017],[-80.458984375,8.213867187499972],[-80.45810546875,8.077050781249994],[-80.01123046875,7.500048828125031],[-80.66669921874995,7.225683593750006],[-80.90122070312503,7.277148437500017],[-81.06386718749994,7.89975585937502],[-81.26840820312495,7.625488281250014],[-81.50415039062503,7.721191406249972],[-81.72763671875,8.137548828124977],[-82.15986328124995,8.19482421875],[-82.23544921874998,8.311035156250057],[-82.67954101562503,8.321972656249969],[-82.86611328124994,8.246337890625014],[-82.87934570312498,8.07065429687502],[-83.02734375,8.337744140624991],[-82.86162109374999,8.453515625000037],[-82.84477539062493,8.489355468749963],[-82.85571289062494,8.635302734375031],[-82.91704101562502,8.740332031250034],[-82.88198242187497,8.805322265625037],[-82.72783203125002,8.916064453125031],[-82.78305664062498,8.990283203124974],[-82.88134765625003,9.055859375000011],[-82.94033203124997,9.060107421874989],[-82.93984374999994,9.449169921875026],[-82.92504882812494,9.469042968749989],[-82.88896484374999,9.481005859375017],[-82.86015625,9.511474609375014],[-82.84399414062497,9.570800781250014],[-82.801025390625,9.591796875000028],[-82.64409179687502,9.505859375000028],[-82.56357421875003,9.576660156249972],[-82.50034179687503,9.523242187500017],[-82.37080078124993,9.428564453124991],[-82.33974609375,9.209179687499983],[-82.18813476562502,9.191748046874977],[-82.24418945312499,9.031494140625014],[-82.07788085937503,8.93486328124996],[-81.78022460937495,8.957226562499983],[-81.89448242187495,9.140429687500003],[-81.35478515624996,8.78056640624996],[-80.83867187499999,8.887207031250014],[-80.12709960937497,9.20991210937504],[-79.57729492187497,9.597851562500026],[-78.08276367187494,9.236279296874997],[-77.37421874999993,8.65830078125002]]]]},"properties":{"name":"Panama","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[-73.137353515625,-6.4658203125],[-73.75810546874999,-6.90576171875],[-73.79301757812499,-7.135058593750003],[-73.758203125,-7.172753906250009],[-73.72041015625,-7.309277343750011],[-73.964306640625,-7.37890625],[-73.95849609375,-7.506640625],[-73.98173828124999,-7.535742187500006],[-74.00205078124999,-7.556054687500009],[-73.98173828124999,-7.585058593750006],[-73.946875,-7.611230468750009],[-73.89462890624999,-7.65478515625],[-73.82207031249999,-7.738964843750011],[-73.76689453124999,-7.753515625],[-73.72041015625,-7.782519531250003],[-73.73203125,-7.875390625],[-73.54912109374999,-8.345800781250006],[-73.39814453125,-8.458984375],[-73.36040039062499,-8.479296875],[-73.351708984375,-8.51416015625],[-73.35673828124999,-8.566992187500006],[-73.30244140625,-8.654003906250011],[-73.203125,-8.719335937500006],[-73.0705078125,-8.8828125],[-72.9740234375,-8.9931640625],[-72.970361328125,-9.1201171875],[-73.08984375,-9.265722656250006],[-73.209423828125,-9.411425781250003],[-72.379052734375,-9.51015625],[-72.181591796875,-10.003710937500003],[-71.33940429687499,-9.988574218750003],[-71.11528320312499,-9.852441406250009],[-71.041748046875,-9.81875],[-70.6369140625,-9.478222656250011],[-70.60791015625,-9.463671875],[-70.54111328124999,-9.4375],[-70.57016601562499,-9.48984375],[-70.592236328125,-9.54345703125],[-70.59916992187499,-9.620507812500009],[-70.642333984375,-11.01025390625],[-70.59653320312499,-10.976855468750003],[-70.53325195312499,-10.946875],[-70.45087890625,-11.024804687500009],[-70.39228515625,-11.05859375],[-70.3419921875,-11.066699218750003],[-70.29038085937499,-11.064257812500003],[-70.22006835937499,-11.04765625],[-70.06630859375,-10.982421875],[-69.9603515625,-10.929882812500011],[-69.839794921875,-10.933398437500003],[-69.6740234375,-10.9541015625],[-69.57861328125,-10.951757812500006],[-68.68525390625,-12.501953125],[-68.97861328124999,-12.880078125000011],[-69.07412109375,-13.682812500000011],[-68.87089843749999,-14.169726562500003],[-69.35947265624999,-14.7953125],[-69.37470703125,-14.962988281250006],[-69.17246093749999,-15.236621093750003],[-69.4208984375,-15.640625],[-69.21757812499999,-16.14912109375001],[-68.8427734375,-16.337890625],[-69.03291015625,-16.47597656250001],[-69.020703125,-16.6421875],[-69.62485351562499,-17.2001953125],[-69.645703125,-17.24853515625],[-69.521923828125,-17.388964843750003],[-69.510986328125,-17.46035156250001],[-69.51108398437499,-17.5048828125],[-69.5109375,-17.50605468750001],[-69.58642578125,-17.5732421875],[-69.684765625,-17.64980468750001],[-69.85209960937499,-17.70380859375001],[-69.80258789062499,-17.990234375],[-69.92636718749999,-18.2060546875],[-70.41826171874999,-18.34560546875001],[-71.33696289062499,-17.68251953125001],[-71.5322265625,-17.29433593750001],[-72.46767578125,-16.708105468750006],[-73.727685546875,-16.20166015625],[-75.104248046875,-15.411914062500003],[-75.533642578125,-14.89921875],[-75.93388671874999,-14.63359375],[-76.37646484375,-13.863085937500003],[-76.259228515625,-13.802832031250006],[-76.2236328125,-13.371191406250006],[-76.83212890624999,-12.348730468750006],[-77.152734375,-12.060351562500003],[-77.2203125,-11.663378906250003],[-77.633203125,-11.287792968750011],[-77.736083984375,-10.83671875],[-78.18559570312499,-10.089062500000011],[-78.76225585937499,-8.616992187500003],[-79.37724609374999,-7.835546875],[-79.99497070312499,-6.768945312500009],[-81.142041015625,-6.056738281250006],[-81.164306640625,-5.875292968750003],[-80.9306640625,-5.8408203125],[-80.88193359374999,-5.635058593750003],[-81.33662109375,-4.66953125],[-81.283203125,-4.322265625],[-80.503662109375,-3.49609375],[-80.324658203125,-3.387890625000011],[-80.24375,-3.576757812500006],[-80.19414062499999,-3.905859375],[-80.23051757812499,-3.924023437500011],[-80.26689453124999,-3.948828125],[-80.30327148437499,-4.005078125000011],[-80.43720703125,-3.978613281250006],[-80.49013671875,-4.010058593750003],[-80.510009765625,-4.069531250000011],[-80.49345703124999,-4.119140625],[-80.4884765625,-4.16552734375],[-80.453759765625,-4.205175781250006],[-80.35288085937499,-4.20849609375],[-80.44384765625,-4.335839843750009],[-80.4884765625,-4.393652343750006],[-80.47856445312499,-4.430078125],[-80.42416992187499,-4.46142578125],[-80.38349609375,-4.463671875],[-80.293359375,-4.416796875],[-80.1974609375,-4.31103515625],[-80.13955078125,-4.296093750000011],[-80.06352539062499,-4.327539062500009],[-79.962890625,-4.390332031250011],[-79.8451171875,-4.445898437500006],[-79.797265625,-4.476367187500003],[-79.71098632812499,-4.467578125],[-79.63852539062499,-4.454882812500003],[-79.57768554687499,-4.500585937500006],[-79.51616210937499,-4.539160156250006],[-79.501904296875,-4.670605468750011],[-79.45576171875,-4.766210937500006],[-79.3994140625,-4.840039062500011],[-79.33095703125,-4.927832031250006],[-79.26811523437499,-4.957617187500006],[-79.186669921875,-4.958203125000011],[-79.07626953124999,-4.990625],[-79.03330078124999,-4.969140625],[-78.995263671875,-4.908007812500003],[-78.97539062499999,-4.873242187500011],[-78.919189453125,-4.8583984375],[-78.92578125,-4.770703125000011],[-78.9076171875,-4.714453125],[-78.8615234375,-4.6650390625],[-78.68603515625,-4.562402343750009],[-78.64799804687499,-4.248144531250006],[-78.345361328125,-3.397363281250009],[-78.240380859375,-3.472558593750009],[-77.860595703125,-2.981640625000011],[-76.6791015625,-2.562597656250006],[-76.089794921875,-2.133105468750003],[-75.570556640625,-1.53125],[-75.42041015625,-0.962207031250003],[-75.40805664062499,-0.92431640625],[-75.24960937499999,-0.951855468750011],[-75.259375,-0.590136718750003],[-75.42470703125,-0.408886718750011],[-75.49106445312499,-0.248339843750003],[-75.56059570312499,-0.200097656250009],[-75.63203125,-0.157617187500009],[-75.62626953124999,-0.122851562500003],[-75.340478515625,-0.1421875],[-75.13837890625,-0.050488281250011],[-74.8017578125,-0.200097656250009],[-74.78046875,-0.24453125],[-74.75537109375,-0.298632812500003],[-74.691650390625,-0.335253906250003],[-74.616357421875,-0.370019531250009],[-74.555078125,-0.429882812500011],[-74.5138671875,-0.470117187500009],[-74.46518554687499,-0.517675781250006],[-74.41787109375,-0.580664062500006],[-74.334423828125,-0.850878906250003],[-74.28388671875,-0.927832031250006],[-74.24638671874999,-0.970605468750009],[-74.05439453125,-1.028613281250003],[-73.98681640625,-1.09814453125],[-73.926953125,-1.125195312500011],[-73.86318359375,-1.196679687500009],[-73.664306640625,-1.248828125],[-73.4962890625,-1.693066406250011],[-73.19697265625,-1.830273437500011],[-73.1544921875,-2.278222656250009],[-72.9896484375,-2.339746093750009],[-72.94111328125,-2.39404296875],[-72.21845703125,-2.400488281250006],[-71.98427734375,-2.3265625],[-71.93247070312499,-2.288671875],[-71.86728515624999,-2.227734375000011],[-71.802734375,-2.166308593750003],[-71.75253906249999,-2.152734375],[-71.55947265625,-2.22421875],[-71.39697265625,-2.334082031250006],[-71.19638671874999,-2.313085937500006],[-71.11337890624999,-2.245410156250003],[-71.027294921875,-2.225781250000011],[-70.96855468749999,-2.206835937500003],[-70.70537109374999,-2.341992187500011],[-70.64799804687499,-2.40576171875],[-70.57587890625,-2.418261718750003],[-70.29462890625,-2.552539062500003],[-70.24443359374999,-2.606542968750006],[-70.16474609375,-2.639843750000011],[-70.095849609375,-2.658203125],[-70.735107421875,-3.781542968750003],[-70.5296875,-3.866406250000011],[-70.48583984375,-3.869335937500011],[-70.42109375,-3.849609375],[-70.37919921874999,-3.81875],[-70.339501953125,-3.814355468750009],[-70.2984375,-3.84423828125],[-70.24028320312499,-3.882714843750009],[-70.16752929687499,-4.050195312500009],[-70.0171875,-4.162011718750009],[-69.96591796874999,-4.2359375],[-69.97202148437499,-4.301171875],[-70.00395507812499,-4.327246093750006],[-70.05332031249999,-4.333105468750006],[-70.12880859375,-4.28662109375],[-70.23916015625,-4.301171875],[-70.31689453125,-4.246972656250009],[-70.34365234375,-4.193652343750003],[-70.40463867187499,-4.150097656250011],[-70.5306640625,-4.167578125],[-70.72158203125,-4.158886718750011],[-70.79951171875,-4.17333984375],[-70.97368164062499,-4.350488281250009],[-71.8447265625,-4.50439453125],[-72.256787109375,-4.748925781250009],[-72.35283203124999,-4.786035156250009],[-72.468994140625,-4.901269531250009],[-72.608349609375,-5.009570312500003],[-72.69873046875,-5.0671875],[-72.83193359375,-5.09375],[-72.88706054687499,-5.122753906250011],[-72.9798828125,-5.634863281250006],[-73.16289062499999,-5.933398437500003],[-73.209375,-6.028710937500009],[-73.235546875,-6.0984375],[-73.137353515625,-6.4658203125]]]},"properties":{"name":"Peru","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[120.250390625,5.256591796875043],[119.82148437500004,5.06953125000004],[120.1652343750001,5.332421875000037],[120.250390625,5.256591796875043]]],[[[121.159375,6.075634765625011],[121.41103515625005,5.939843749999966],[121.29443359374997,5.869970703125034],[120.8763671875,5.95263671875],[121.159375,6.075634765625011]]],[[[122.09287109375012,6.428320312500006],[121.95917968750004,6.415820312500045],[121.83203125000003,6.664062499999986],[122.0583007812501,6.740722656249972],[122.32353515625002,6.602246093750011],[122.09287109375012,6.428320312500006]]],[[[122.93710937500006,7.409130859374983],[122.80468750000003,7.315966796875017],[122.82216796875,7.428466796875014],[122.93710937500006,7.409130859374983]]],[[[117.07988281250007,7.883398437499977],[117.02832031249997,7.807519531249966],[116.96953125000007,7.894921875],[116.9935546875,8.050537109375014],[117.07705078125,8.069140624999974],[117.07988281250007,7.883398437499977]]],[[[117.35527343750002,8.21464843749996],[117.28701171875,8.191015625000034],[117.28085937500006,8.314990234374974],[117.35527343750002,8.21464843749996]]],[[[124.80664062500003,9.142626953125003],[124.66582031250002,9.132324218750043],[124.65332031250003,9.225830078125],[124.80664062500003,9.142626953125003]]],[[[123.69765625000005,9.237304687500028],[123.61445312500004,9.103320312499989],[123.49345703125002,9.192089843750054],[123.69765625000005,9.237304687500028]]],[[[126.00595703125006,9.320947265625009],[126.19335937499997,9.276708984374963],[126.30458984375,8.952050781249994],[126.13955078125005,8.59565429687504],[126.36533203125012,8.483886718750014],[126.45869140625004,8.20283203125004],[126.43535156250002,7.832812499999974],[126.57011718750002,7.677246093749986],[126.58154296875003,7.247753906249969],[126.1920898437501,6.852539062500014],[126.18935546875,6.309667968749991],[125.82441406250004,7.333300781249989],[125.68925781250007,7.263037109374977],[125.38066406250007,6.689941406250014],[125.58847656250012,6.465771484374997],[125.66796874999997,5.97866210937498],[125.34648437500002,5.598974609374977],[125.23154296875006,6.069531250000011],[124.92734375000006,5.875341796874977],[124.21279296875,6.233251953124977],[124.078125,6.404443359375037],[123.98525390625,6.993701171875003],[124.20664062500006,7.396435546874983],[123.66582031250002,7.817773437500023],[123.49306640625,7.80791015624996],[123.39091796875007,7.407519531250017],[123.09667968749997,7.700439453125],[122.8429687500001,7.529296875000043],[122.79179687500002,7.72246093749996],[122.61621093749997,7.763134765624983],[122.14248046875,6.949658203124997],[121.96425781250005,6.96821289062504],[121.92460937500002,7.199511718750003],[122.24335937500004,7.945117187500031],[122.91113281250003,8.156445312499997],[123.05058593750002,8.433935546875048],[123.43457031249997,8.70332031250004],[123.84921875000006,8.432714843749977],[123.79941406250006,8.049121093749989],[124.19765625,8.229541015624974],[124.40488281250006,8.599853515625014],[124.7311523437501,8.562988281250043],[124.86894531250002,8.972265625000034],[125.141015625,8.86875],[125.20966796875004,9.027148437500017],[125.49873046875004,9.014746093749977],[125.47128906250006,9.756787109374983],[126.00595703125006,9.320947265625009]]],[[[126.059375,9.766210937500034],[125.99121093750003,9.838525390625023],[126.07382812500006,10.059228515625051],[126.1725585937501,9.79995117187498],[126.059375,9.766210937500034]]],[[[124.59384765625006,9.787207031249963],[124.1224609375,9.599316406249969],[123.93564453125012,9.623974609375011],[123.81718750000002,9.817382812499986],[124.17285156250003,10.135205078124983],[124.33574218750002,10.159912109375043],[124.57714843749997,10.026708984374991],[124.59384765625006,9.787207031249963]]],[[[125.69023437500007,9.914453125000037],[125.49482421875004,10.118701171875003],[125.66679687500002,10.440136718750026],[125.69023437500007,9.914453125000037]]],[[[119.91621093750004,10.485986328125037],[119.79316406250004,10.455273437499997],[119.85205078124997,10.64013671875],[120.00839843750012,10.570117187500031],[119.91621093750004,10.485986328125037]]],[[[122.64951171875012,10.472705078125003],[122.53837890625002,10.424951171875037],[122.5375,10.607568359375023],[122.70126953125006,10.740625],[122.64951171875012,10.472705078125003]]],[[[123.13085937500003,9.064111328124994],[122.99472656250006,9.058837890624986],[122.8666015625,9.319824218750043],[122.5625,9.482812500000037],[122.39951171875006,9.823046874999989],[122.47148437500007,9.961523437500034],[122.85556640625006,10.0869140625],[122.81699218750012,10.503808593750023],[122.98330078125,10.886621093750037],[123.25664062500007,10.99394531249996],[123.51064453125005,10.923046875],[123.5675781250001,10.780761718750057],[123.16201171875,9.864257812500028],[123.1498046875,9.606152343750026],[123.32050781250004,9.27294921875],[123.13085937500003,9.064111328124994]]],[[[123.37031250000004,9.449609375000023],[123.38623046874997,9.967089843750017],[124.03886718750002,11.273535156249991],[124.00498046875012,10.40009765625004],[123.70048828125007,10.128320312500009],[123.37031250000004,9.449609375000023]]],[[[123.75703125000004,11.28330078125002],[123.815625,11.15073242187502],[123.73671875,11.151464843749991],[123.75703125000004,11.28330078125002]]],[[[117.31113281250012,8.439599609375051],[117.21855468750007,8.367285156249963],[117.34990234375002,8.713574218749997],[119.22382812500004,10.477294921875043],[119.30566406250003,10.9736328125],[119.55332031250012,11.31352539062496],[119.52666015625002,10.953173828125003],[119.68691406250005,10.500341796875034],[119.36933593750004,10.327294921875037],[119.19150390625012,10.061083984374989],[118.78212890625005,9.91611328125002],[118.4349609375,9.256005859375009],[117.31113281250012,8.439599609375051]]],[[[119.86142578125006,11.52534179687504],[119.83066406250012,11.375683593750011],[119.72998046874997,11.431933593750017],[119.86142578125006,11.52534179687504]]],[[[124.574609375,11.343066406250031],[124.92998046875002,11.372851562499974],[125.02656250000004,11.21171875],[125.01318359374997,10.785693359374989],[125.26845703125005,10.307714843750048],[125.14257812499997,10.189453125000028],[124.9875,10.36757812499998],[125.02656250000004,10.033105468749966],[124.78076171874997,10.16806640625002],[124.78671875000012,10.781396484375009],[124.66269531250006,10.961962890625017],[124.44550781250004,10.923583984375014],[124.33066406250012,11.535205078125003],[124.574609375,11.343066406250031]]],[[[124.60839843750003,11.492187500000043],[124.48349609375006,11.485839843749986],[124.36035156250003,11.665917968749994],[124.5109375000001,11.687109375000048],[124.60839843750003,11.492187500000043]]],[[[122.49619140625006,11.615087890625034],[122.83808593750004,11.595654296874983],[122.89453125000003,11.44130859374998],[123.15830078125012,11.53554687499999],[123.11953125,11.286816406250026],[122.8029296875001,10.99003906249996],[122.76992187500005,10.823828125000034],[121.95400390625,10.444384765625003],[122.10351562499997,11.64291992187502],[121.91601562499997,11.854345703125006],[122.02919921875005,11.895410156250023],[122.49619140625006,11.615087890625034]]],[[[120.03876953125004,11.703320312499969],[119.94492187500006,11.690722656249989],[119.86093750000006,11.953955078124963],[120.03593750000002,11.917236328125028],[120.03876953125004,11.703320312499969]]],[[[120.1,12.167675781249983],[120.22822265625004,12.219824218750034],[120.31455078125012,12.012402343749969],[120.01054687500002,12.008251953125011],[119.88574218749997,12.299853515625003],[120.1,12.167675781249983]]],[[[122.65449218750004,12.309033203125011],[122.42294921875006,12.455078125],[122.60361328125006,12.49160156249998],[122.65449218750004,12.309033203125011]]],[[[125.23955078125002,12.527880859375003],[125.32021484375,12.321826171875031],[125.53564453125003,12.191406250000028],[125.49179687500006,11.594335937499977],[125.57353515625002,11.238232421874997],[125.73564453125002,11.049609375000017],[125.23339843749997,11.145068359375017],[125.03427734375012,11.341259765625026],[124.91699218750003,11.558398437500031],[124.99501953125,11.764941406250003],[124.445703125,12.152783203124969],[124.29472656250007,12.569335937500014],[125.23955078125002,12.527880859375003]]],[[[123.71660156250007,12.287353515625028],[124.04033203125002,11.966796875],[124.04550781250012,11.752441406250028],[123.47373046875006,12.21665039062502],[123.15781250000012,11.925634765624963],[123.23642578125012,12.583496093750057],[123.71660156250007,12.287353515625028]]],[[[122.09404296875002,12.354882812500023],[122.01396484375002,12.105615234375037],[121.9232421875,12.331298828125014],[122.00156250000006,12.598535156250009],[122.14501953124997,12.652636718750017],[122.09404296875002,12.354882812500023]]],[[[123.77539062499997,12.453906250000031],[123.77910156250002,12.366259765625031],[123.62148437500005,12.67490234375002],[123.77539062499997,12.453906250000031]]],[[[123.28183593750006,12.85341796874998],[123.36718750000003,12.70083007812498],[122.95751953124997,13.107177734374986],[123.28183593750006,12.85341796874998]]],[[[120.70439453125002,13.479492187499986],[121.20273437500006,13.432324218749969],[121.52275390625007,13.131201171874991],[121.540625,12.63818359375],[121.39433593750002,12.300585937499974],[121.23671875000005,12.218798828125003],[120.92216796875002,12.51162109374998],[120.65136718749997,13.169140625],[120.33847656250012,13.412353515624986],[120.40126953125,13.517041015624997],[120.70439453125002,13.479492187499986]]],[[[121.91484375000002,13.540332031250031],[122.11455078125002,13.463183593750031],[122.00488281249997,13.204980468750009],[121.82919921875006,13.328613281249972],[121.91484375000002,13.540332031250031]]],[[[124.35361328125006,13.632226562500009],[124.17539062500012,13.531542968750017],[124.03886718750002,13.663134765625003],[124.22490234375007,14.077587890624969],[124.41718750000004,13.871044921874997],[124.35361328125006,13.632226562500009]]],[[[122.03349609375002,15.005029296875009],[121.93300781250005,14.656054687500045],[121.83984374999997,15.038134765625003],[122.03349609375002,15.005029296875009]]],[[[121.10156249999997,18.615283203125017],[121.84560546875,18.29541015625003],[122.03847656250005,18.32792968749999],[122.14667968750004,18.486572265625],[122.26552734375005,18.458837890625034],[122.15234374999997,17.664404296875006],[122.51914062500012,17.124853515625034],[122.13515625000005,16.18481445312503],[121.59531250000012,15.933251953125023],[121.60703125000006,15.669824218749994],[121.39228515625004,15.324414062499969],[121.69541015625006,14.7373046875],[121.62792968749997,14.581152343749977],[121.76660156249997,14.16806640625002],[122.21171875000002,13.930175781250057],[122.2875,13.996191406250006],[122.19970703125003,14.148046875000034],[122.6271484375001,14.317529296875009],[122.93417968750012,14.18808593750002],[123.101953125,13.750244140624986],[123.29697265625012,13.836425781250043],[123.32031249999997,14.061669921875023],[123.81572265625002,13.837109375000011],[123.80625000000012,13.721728515625045],[123.54960937500007,13.645751953125014],[123.81923828125,13.269482421875011],[123.78515625000003,13.110546875000054],[124.14277343750004,13.035791015625009],[124.0597656250001,12.567089843749997],[123.87783203125005,12.689697265625014],[123.94853515625007,12.916406250000023],[123.31093750000005,13.044091796875009],[123.16328125000004,13.44174804687502],[122.59521484374997,13.90761718749998],[122.46796875000004,13.886718749999986],[122.66787109375,13.395361328124991],[122.59990234375002,13.194140625000031],[122.37656250000012,13.520605468750006],[121.77792968750006,13.93764648437498],[121.50107421875006,13.8421875],[121.344140625,13.649121093749997],[121.09550781250007,13.679492187500045],[120.84072265625,13.884716796875026],[120.637109375,13.804492187500031],[120.61679687500006,14.188037109375003],[120.9220703125001,14.493115234374983],[120.94130859375,14.645068359375031],[120.58369140625004,14.88125],[120.58867187500002,14.483105468749983],[120.43876953125002,14.453369140624972],[120.25078125000002,14.793310546875034],[120.08212890625012,14.851074218749986],[119.77255859375012,16.25512695312503],[119.83076171875004,16.326562500000023],[120.15976562500012,16.047656250000045],[120.36875,16.109570312499955],[120.35839843749997,17.63818359375],[120.59970703125012,18.507861328125074],[121.10156249999997,18.615283203125017]]],[[[121.92167968750007,18.89472656250001],[121.82519531250003,18.842724609374983],[121.94335937500003,19.010449218749955],[121.92167968750007,18.89472656250001]]],[[[121.52089843750005,19.361962890624994],[121.53125,19.271337890625006],[121.37460937500006,19.356298828124977],[121.52089843750005,19.361962890624994]]]]},"properties":{"name":"Philippines","childNum":37}},{"geometry":{"type":"Polygon","coordinates":[[[134.5954101562501,7.382031249999969],[134.51572265625012,7.525781250000037],[134.65117187500002,7.712109374999983],[134.5954101562501,7.382031249999969]]]},"properties":{"name":"Palau","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[153.53613281249997,-11.476171874999949],[153.75986328125006,-11.586328125],[153.55371093749997,-11.630566406249969],[153.28681640625004,-11.516992187500009],[153.20361328124997,-11.32412109374998],[153.53613281249997,-11.476171874999949]]],[[[154.28076171874997,-11.36142578125002],[154.12119140625006,-11.425683593749966],[154.02343750000003,-11.347949218750031],[154.28076171874997,-11.36142578125002]]],[[[150.89873046875002,-10.565332031250023],[150.88466796875,-10.643457031250037],[150.78574218750006,-10.603417968749966],[150.89873046875002,-10.565332031250023]]],[[[151.08095703125,-10.020117187499963],[151.29648437500012,-9.956738281250026],[151.230859375,-10.194726562500009],[150.95917968750004,-10.092578124999989],[150.77607421875004,-9.70908203125002],[151.08095703125,-10.020117187499963]]],[[[150.52841796875006,-9.34658203124998],[150.78867187500006,-9.417968749999957],[150.89404296875003,-9.667480468749986],[150.43623046875004,-9.624609374999949],[150.5084960937501,-9.536132812499957],[150.43730468750007,-9.359960937500034],[150.52841796875006,-9.34658203124998]]],[[[150.3454101562501,-9.493847656249955],[150.10976562500005,-9.361914062499991],[150.20830078125002,-9.206347656250003],[150.32011718750007,-9.264160156249972],[150.3454101562501,-9.493847656249955]]],[[[152.63095703125012,-8.959375],[152.95292968750007,-9.07011718749996],[152.96689453125006,-9.208984375000014],[152.51513671874997,-9.009863281250034],[152.63095703125012,-8.959375]]],[[[151.10683593750005,-8.733496093749949],[151.12412109375012,-8.804882812500011],[151.00498046875006,-8.523828124999952],[151.117578125,-8.41884765624998],[151.10683593750005,-8.733496093749949]]],[[[143.58681640625005,-8.481738281250003],[143.321875,-8.367578125],[143.5814453125,-8.390917968749974],[143.58681640625005,-8.481738281250003]]],[[[148.02578125,-5.826367187500011],[147.78105468750007,-5.627246093749946],[147.7946289062501,-5.492382812500011],[148.05478515625006,-5.61152343750004],[148.02578125,-5.826367187500011]]],[[[155.95761718750006,-6.686816406249989],[155.71933593750012,-6.862792968749957],[155.34404296875007,-6.721679687499986],[155.20214843750003,-6.3076171875],[154.75927734375003,-5.931347656249997],[154.72929687500002,-5.444433593750006],[155.09384765625006,-5.620214843750034],[155.46699218750004,-6.145117187500034],[155.82255859375002,-6.38046875000002],[155.95761718750006,-6.686816406249989]]],[[[147.17626953124997,-5.431933593749946],[147.00585937499997,-5.30703125],[147.1310546875001,-5.190820312500037],[147.17626953124997,-5.431933593749946]]],[[[154.64726562500002,-5.43271484375002],[154.54003906250003,-5.11083984375],[154.63261718750007,-5.013867187499955],[154.72714843750006,-5.218066406249989],[154.64726562500002,-5.43271484375002]]],[[[146.01933593750007,-4.726171874999963],[145.88359375000007,-4.66748046875],[145.9958007812501,-4.539257812499983],[146.01933593750007,-4.726171874999963]]],[[[151.915625,-4.296777343749966],[152.11718749999997,-4.212207031249974],[152.40566406250005,-4.340722656249952],[152.35117187500006,-4.82216796874998],[151.98369140625007,-5.07441406250004],[152.14296875,-5.357031249999963],[152.07705078125,-5.458300781249989],[151.86542968750004,-5.564843750000023],[151.51513671874997,-5.552343749999963],[151.22929687500002,-5.919921874999986],[150.47353515625,-6.263378906249969],[149.65253906250004,-6.290429687499966],[149.38232421874997,-6.078125],[149.0990234375,-6.116992187499989],[148.33720703125007,-5.669433593750014],[148.43203125,-5.471777343749991],[149.35888671875003,-5.583984375000014],[149.8314453125,-5.524121093749997],[149.96279296875,-5.447753906249972],[150.0900390625001,-5.011816406249977],[150.1703125,-5.070605468749974],[150.0724609375001,-5.309570312499986],[150.18310546874997,-5.523632812499983],[150.90029296875005,-5.447167968750037],[151.32656250000005,-4.96035156249998],[151.67119140625007,-4.88330078125],[151.59306640625007,-4.200781249999949],[151.915625,-4.296777343749966]]],[[[152.67060546875004,-3.13339843750002],[152.64619140625004,-3.221191406249957],[152.54326171875002,-3.095605468749952],[152.63876953125012,-3.042773437500031],[152.67060546875004,-3.13339843750002]]],[[[140.97617187500012,-9.11875],[140.97519531250006,-6.90537109375002],[140.86230468749997,-6.740039062499989],[140.975,-6.346093750000023],[140.97353515625,-2.803417968750026],[140.97343750000007,-2.609765625],[142.90517578125,-3.32070312499998],[143.50898437500004,-3.431152343750014],[144.06640625000003,-3.80517578125],[144.4777343750001,-3.82529296875002],[145.08779296875,-4.349121093749972],[145.33457031250012,-4.385253906249972],[145.7669921875,-4.823046874999989],[145.74521484375012,-5.402441406249977],[147.56669921875002,-6.056933593750003],[147.80205078125002,-6.31523437499996],[147.84550781250007,-6.662402343749989],[147.11914062499997,-6.721679687499986],[146.95361328124997,-6.834082031249963],[147.19003906250012,-7.378125],[148.12675781250007,-8.103613281249963],[148.246875,-8.554296875000034],[148.45117187499997,-8.694531250000011],[148.58310546875006,-9.051757812499957],[149.19833984375006,-9.03125],[149.26318359374997,-9.497851562499974],[150.01103515625007,-9.688183593750026],[149.76123046874997,-9.805859375000011],[149.87441406250005,-10.012988281250031],[150.84951171875,-10.236035156249997],[150.44609375000007,-10.30732421875004],[150.6471679687501,-10.517968749999966],[150.31992187500012,-10.654882812499963],[150.0167968750001,-10.577148437500028],[149.75410156250004,-10.353027343750028],[147.76865234375012,-10.070117187500031],[147.01718750000006,-9.38789062500004],[146.96376953125,-9.059570312499943],[146.63085937499997,-8.951171874999972],[146.03320312499997,-8.076367187500011],[144.97382812500004,-7.802148437500009],[144.86425781249997,-7.631542968749983],[144.50986328125006,-7.567382812499972],[144.14287109375007,-7.757226562500009],[143.65488281250012,-7.460351562500009],[143.94228515625005,-7.944238281250009],[143.8333984375,-8.029101562499974],[143.51816406250006,-8.000683593749955],[143.61376953125003,-8.200390624999969],[142.52412109375004,-8.32167968749998],[142.34746093750002,-8.167480468750014],[142.20683593750002,-8.195800781250014],[142.47480468750004,-8.369433593750031],[142.79794921875006,-8.345019531250031],[143.11181640624997,-8.474511718750037],[143.37724609375007,-8.762207031250028],[143.36621093750003,-8.961035156250034],[142.6471679687501,-9.327832031249969],[142.22958984375012,-9.169921874999957],[141.13320312500005,-9.221289062500034],[140.97617187500012,-9.11875]]],[[[152.96582031249997,-4.756347656249986],[152.89169921875006,-4.832421875000023],[152.73994140625004,-4.635839843750034],[152.66816406250004,-4.131835937500028],[152.27939453125006,-3.582421875],[151.06679687500005,-2.829003906249994],[150.74609374999997,-2.73886718750002],[150.8253906250001,-2.572949218749969],[152.03291015625004,-3.25136718749998],[153.01679687500004,-4.105664062500026],[153.1325195312501,-4.352441406250037],[152.96582031249997,-4.756347656249986]]],[[[150.43662109375012,-2.66181640625004],[150.16572265625004,-2.660253906249991],[149.96162109375004,-2.473828125000026],[150.22714843750006,-2.384179687499966],[150.42949218750007,-2.47041015625004],[150.43662109375012,-2.66181640625004]]],[[[147.06757812500004,-1.96015625],[147.43808593750012,-2.05898437499998],[147.20634765625007,-2.181933593749974],[146.54648437500012,-2.20859375],[146.65625,-1.97402343749998],[147.06757812500004,-1.96015625]]],[[[149.76542968750007,-1.553027343750017],[149.54589843749997,-1.471679687499957],[149.58095703125005,-1.353222656249983],[149.76542968750007,-1.553027343750017]]]]},"properties":{"name":"Papua New Guinea","childNum":21}},{"geometry":{"type":"Polygon","coordinates":[[[23.484667968750017,53.939794921875],[23.915429687500023,52.770263671875],[23.175097656250017,52.28662109375],[23.652441406250006,52.040380859375],[23.605273437500017,51.517919921875],[23.664453125000023,51.31005859375],[24.095800781250006,50.87275390625],[23.9970703125,50.809375],[24.089941406250006,50.53046875],[23.97265625,50.410058593749994],[23.711718750000017,50.37734375],[23.03632812500001,49.899072265624994],[22.706152343750006,49.606201171875],[22.6494140625,49.539013671875],[22.66064453125,49.483691406249996],[22.71992187500001,49.353808593749996],[22.732421875,49.295166015625],[22.705664062500006,49.171191406249996],[22.847070312500023,49.08125],[22.538671875,49.072705078125],[22.473046875000023,49.081298828125],[22.020117187500006,49.209521484374996],[21.6396484375,49.411962890625],[21.079394531250017,49.418261718749996],[20.868457031250017,49.314697265625],[20.36298828125001,49.38525390625],[20.0576171875,49.181298828124994],[19.756640625000017,49.204394531249996],[19.77392578125,49.37216796875],[19.44160156250001,49.597705078124996],[19.1494140625,49.4],[18.83222656250001,49.510791015624996],[18.562402343750023,49.879345703125],[18.0283203125,50.03525390625],[17.874804687500017,49.972265625],[17.627050781250006,50.11640625],[17.702246093750006,50.307177734374996],[17.41523437500001,50.254785156249994],[16.88007812500001,50.427050781249996],[16.989648437500023,50.2369140625],[16.63916015625,50.1021484375],[16.210351562500023,50.423730468749994],[16.419726562500017,50.573632812499994],[16.2822265625,50.655615234375],[16.007226562500023,50.611621093749996],[14.99375,51.01435546875],[14.98291015625,50.886572265625],[14.895800781250017,50.861376953124996],[14.809375,50.858984375],[14.814257812500017,50.871630859374996],[14.91748046875,51.008740234375],[14.9638671875,51.095117187499994],[14.935546875,51.435351562499996],[14.905957031250011,51.463330078125],[14.724707031250006,51.523876953125],[14.7109375,51.544921875],[14.738671875000023,51.6271484375],[14.601660156250006,51.832373046875],[14.752539062500006,52.081835937499996],[14.679882812500011,52.25],[14.615625,52.277636718749996],[14.573925781250011,52.31416015625],[14.554589843750023,52.359667968749996],[14.569726562500023,52.431103515625],[14.619433593750017,52.528515625],[14.514062500000023,52.64560546875],[14.253710937500017,52.782519531249996],[14.128613281250011,52.878222656249996],[14.138867187500011,52.932861328125],[14.293164062500011,53.0267578125],[14.368554687500023,53.10556640625],[14.410937500000017,53.199023437499996],[14.412304687500011,53.216748046875],[14.41455078125,53.283496093749996],[14.258886718750006,53.729638671875],[14.58349609375,53.63935546875],[14.558398437500017,53.823193359375],[14.21142578125,53.950341796875],[16.186328125000017,54.290380859375],[16.55976562500001,54.55380859375],[18.32343750000001,54.838183593749996],[18.75927734375,54.6845703125],[18.43623046875001,54.7447265625],[18.83642578125,54.369580078125],[19.604394531250023,54.4591796875],[20.20820312500001,54.420751953125],[22.16845703125,54.35986328125],[22.731835937500023,54.35009765625],[22.766210937500006,54.356787109375],[22.82373046875,54.395800781249996],[22.893945312500023,54.39052734375],[22.97675781250001,54.366357421875],[23.015527343750023,54.34833984375],[23.04218750000001,54.30419921875],[23.0875,54.299462890625],[23.170312500000023,54.2814453125],[23.282324218750006,54.24033203125],[23.3701171875,54.200488281249996],[23.45361328125,54.14345703125],[23.484667968750017,53.939794921875]]]},"properties":{"name":"Poland","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-65.42558593749999,18.105615234374994],[-65.57221679687493,18.137304687499977],[-65.29487304687501,18.133349609375045],[-65.42558593749999,18.105615234374994]]],[[[-66.12939453125003,18.444921875000034],[-65.62880859375,18.381396484375045],[-65.62084960937497,18.242333984374966],[-65.97080078124995,17.974365234375],[-67.196875,17.994189453125045],[-67.2640625,18.364599609375006],[-67.15864257812501,18.499218749999983],[-66.12939453125003,18.444921875000034]]]]},"properties":{"name":"Puerto Rico","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[130.52695312500012,42.535400390625],[130.68730468750007,42.30253906249999],[130.2357421875,42.183203125000034],[129.75634765624997,41.712255859375006],[129.70869140625004,40.857324218749994],[129.34111328125002,40.72631835937506],[128.51123046874997,40.130224609375006],[127.56816406250002,39.78198242187503],[127.39453125000003,39.207910156249966],[127.78613281250003,39.084130859374966],[128.37460937500012,38.6234375],[128.03896484375,38.30854492187498],[127.09033203125003,38.28388671875001],[126.63388671875012,37.78183593750006],[126.36992187500007,37.87836914062501],[126.11669921875003,37.74291992187503],[125.76914062500006,37.98535156250003],[125.35781250000005,37.72480468749998],[125.31074218750004,37.843505859375],[124.98876953124997,37.93144531249999],[125.2067382812501,38.08154296875],[124.69091796874997,38.12919921875002],[125.06738281250003,38.556738281250006],[125.55449218750002,38.68623046875001],[125.16884765625,38.80551757812506],[125.40966796875003,39.28837890625002],[125.36083984375003,39.52661132812497],[124.77529296875,39.75805664062506],[124.63828125000006,39.61508789062506],[124.36210937500002,40.004052734374994],[124.8893554687501,40.459814453125006],[125.98906250000002,40.904638671875034],[126.74306640625,41.724853515625],[126.95478515625004,41.76948242187501],[127.17968750000003,41.531347656250006],[128.14941406249997,41.38774414062496],[128.28925781250004,41.60742187500006],[128.04521484375007,41.9875],[128.92343750000006,42.038232421874966],[129.3136718750001,42.41357421874997],[129.69785156250012,42.448144531249994],[129.89824218750002,42.998144531250034],[130.24033203125006,42.891796874999955],[130.24667968750012,42.744824218749955],[130.52695312500012,42.535400390625]]]},"properties":{"name":"Dem. Rep. Korea","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-17.190869140624926,32.86860351562498],[-16.693261718749966,32.75800781250001],[-17.018261718749926,32.66279296874998],[-17.226025390624983,32.76684570312503],[-17.190869140624926,32.86860351562498]]],[[[-25.64897460937499,37.840917968750006],[-25.18193359374996,37.837890625],[-25.19072265624999,37.764355468749955],[-25.73447265624992,37.76289062500001],[-25.845898437499983,37.89404296875],[-25.64897460937499,37.840917968750006]]],[[[-28.14726562499996,38.45268554687502],[-28.064794921875034,38.412744140624966],[-28.454492187500023,38.40864257812504],[-28.54882812499997,38.51855468750003],[-28.14726562499996,38.45268554687502]]],[[[-28.641308593749983,38.525],[-28.842041015625,38.5984375],[-28.69775390625,38.638476562500045],[-28.641308593749983,38.525]]],[[[-27.07524414062496,38.643457031249994],[-27.38593750000001,38.765820312499955],[-27.127001953125017,38.78984375],[-27.07524414062496,38.643457031249994]]],[[[-31.137109374999937,39.40693359375001],[-31.282958984375,39.39409179687496],[-31.260839843750034,39.49677734375001],[-31.137109374999937,39.40693359375001]]],[[[-7.406152343749937,37.17944335937497],[-7.834130859374994,37.005712890625034],[-8.597656249999943,37.12133789062506],[-8.997802734375028,37.03227539062502],[-8.814160156249983,37.43081054687502],[-8.881103515624943,38.44667968750005],[-8.668310546874949,38.42431640625003],[-8.798876953124989,38.518164062500034],[-9.213281249999937,38.44809570312498],[-9.250390624999966,38.65673828125003],[-9.021484374999943,38.746875],[-8.79160156249992,39.07817382812502],[-9.13579101562496,38.74277343749998],[-9.35673828124996,38.697900390624994],[-9.479736328124972,38.79877929687501],[-9.374755859374972,39.338281249999966],[-8.837841796874926,40.11567382812498],[-8.684619140624989,40.75253906250006],[-8.755419921874932,41.69838867187502],[-8.887597656249937,41.76459960937501],[-8.777148437500017,41.941064453124994],[-8.266064453124983,42.13740234375001],[-8.152490234374937,41.81196289062498],[-7.40361328124996,41.833691406249955],[-7.147119140625023,41.98115234374998],[-6.61826171874992,41.9423828125],[-6.542187499999955,41.672509765624994],[-6.2125,41.53203125],[-6.928466796874972,41.009130859375006],[-6.8101562499999,40.343115234375034],[-7.032617187499966,40.16791992187498],[-6.896093749999949,40.02182617187506],[-6.975390624999932,39.79838867187502],[-7.117675781249972,39.681689453125045],[-7.53569335937496,39.66157226562501],[-6.997949218749994,39.05644531250002],[-7.343017578124943,38.45742187500002],[-7.106396484374983,38.181005859375006],[-6.957568359374932,38.18789062499999],[-7.44394531249992,37.72827148437497],[-7.406152343749937,37.17944335937497]]]]},"properties":{"name":"Portugal","childNum":7,"cp":[-8.7440694,39.9251454]}},{"geometry":{"type":"Polygon","coordinates":[[[-58.15976562499999,-20.164648437500006],[-58.13779296874999,-20.2373046875],[-58.12460937499999,-20.29345703125],[-58.09150390625,-20.33320312500001],[-58.05844726562499,-20.38613281250001],[-58.025390625,-20.415820312500003],[-58.00224609374999,-20.465429687500006],[-57.97905273437499,-20.657324218750006],[-57.91513671874999,-20.69033203125001],[-57.830224609374994,-20.99794921875001],[-57.94267578124999,-21.79833984375],[-57.95590820312499,-22.109179687500003],[-56.77519531249999,-22.261328125],[-56.44780273437499,-22.076171875],[-56.39487304687499,-22.09267578125001],[-56.35185546874999,-22.17861328125001],[-56.246044921875,-22.2646484375],[-56.18984375,-22.28115234375001],[-55.99140625,-22.28115234375001],[-55.84916992187499,-22.3076171875],[-55.75327148437499,-22.41015625],[-55.74663085937499,-22.5126953125],[-55.61767578125,-22.671484375],[-55.53828125,-23.58095703125001],[-55.518457031249994,-23.627246093750003],[-55.458886718749994,-23.68671875000001],[-55.4423828125,-23.792578125],[-55.4423828125,-23.865332031250006],[-55.415917968749994,-23.95136718750001],[-55.36630859374999,-23.991015625],[-55.28691406249999,-24.004296875],[-55.1943359375,-24.01748046875001],[-55.08188476562499,-23.99765625],[-54.982666015625,-23.97451171875001],[-54.62548828125,-23.8125],[-54.44023437499999,-23.90175781250001],[-54.37080078125,-23.97119140625],[-54.24179687499999,-24.047265625],[-54.281005859375,-24.30605468750001],[-54.43623046875,-25.12128906250001],[-54.47314453125,-25.22021484375],[-54.610546875,-25.432714843750006],[-54.615869140624994,-25.57607421875001],[-54.63193359374999,-26.00576171875001],[-54.677734375,-26.30878906250001],[-54.934472656249994,-26.70253906250001],[-55.1359375,-26.93115234375],[-55.426660156249994,-27.00927734375],[-55.450634765625,-27.068359375],[-55.496728515624994,-27.115332031250006],[-55.564892578125,-27.15],[-55.59726562499999,-27.207617187500006],[-55.59379882812499,-27.2880859375],[-55.63291015624999,-27.35712890625001],[-55.71464843749999,-27.41484375],[-55.789990234375,-27.41640625],[-55.95146484374999,-27.32568359375],[-56.1640625,-27.32148437500001],[-56.437158203124994,-27.553808593750006],[-58.16826171874999,-27.2734375],[-58.60483398437499,-27.31435546875001],[-58.641748046874994,-27.19609375],[-58.618603515625,-27.132128906250003],[-58.222070312499994,-26.65],[-58.18149414062499,-26.307421875],[-57.943115234375,-26.05292968750001],[-57.563134765624994,-25.473730468750006],[-57.821679687499994,-25.13642578125001],[-59.187255859375,-24.562304687500003],[-59.892480468749994,-24.093554687500003],[-60.83984375,-23.85810546875001],[-61.084716796875,-23.65644531250001],[-61.79853515625,-23.18203125],[-62.21416015624999,-22.612402343750006],[-62.372509765625,-22.43916015625001],[-62.54155273437499,-22.349609375],[-62.6259765625,-22.29042968750001],[-62.62568359375,-22.261523437500003],[-62.65097656249999,-22.233691406250003],[-62.27666015624999,-21.066015625],[-62.276318359375,-20.5625],[-61.7568359375,-19.6453125],[-60.00737304687499,-19.29755859375001],[-59.09052734375,-19.286230468750006],[-58.18017578125,-19.81787109375],[-58.15976562499999,-20.164648437500006]]]},"properties":{"name":"Paraguay","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[34.34833984375004,31.292919921874955],[34.2453125000001,31.208300781250045],[34.2125,31.292285156250017],[34.198144531249994,31.322607421875063],[34.47734375000002,31.584863281250023],[34.52412109375004,31.541650390624994],[34.5255859375001,31.52563476562503],[34.34833984375004,31.292919921874955]]],[[[34.88046875,31.3681640625],[34.950976562500074,31.60229492187503],[35.20371093750006,31.75],[35.1271484375001,31.816748046875006],[35.05322265625003,31.83793945312496],[34.983007812500006,31.816796875000023],[34.9611328125001,31.823339843750006],[34.95380859375004,31.84125976562504],[34.98974609374997,31.913281249999955],[34.955957031249994,32.1609375],[35.01054687500002,32.33818359375002],[35.06503906250006,32.46044921875006],[35.19326171875005,32.53442382812503],[35.303808593750006,32.512939453125],[35.38671875000003,32.493017578125034],[35.402636718750074,32.45063476562501],[35.484375,32.40166015624999],[35.5514648437501,32.39550781250006],[35.57207031250002,32.237890625],[35.450585937499994,31.479296875000017],[34.88046875,31.3681640625]]]]},"properties":{"name":"Palestine","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-149.321533203125,-17.690039062499963],[-149.177685546875,-17.736621093750045],[-149.18178710937497,-17.86230468749997],[-149.34111328125,-17.732421874999986],[-149.57890624999993,-17.734960937499963],[-149.635009765625,-17.564257812500003],[-149.37919921874993,-17.522363281249994],[-149.321533203125,-17.690039062499963]]],[[[-143.44057617187497,-16.619726562499963],[-143.38618164062498,-16.668847656250023],[-143.55068359375002,-16.62109374999997],[-143.44057617187497,-16.619726562499963]]],[[[-139.02431640624997,-9.695214843750037],[-138.82734375,-9.74160156249998],[-139.13408203124996,-9.829492187500037],[-139.02431640624997,-9.695214843750037]]],[[[-140.075634765625,-9.425976562499983],[-140.14438476562498,-9.359375],[-140.07094726562497,-9.328125],[-140.075634765625,-9.425976562499983]]],[[[-140.07260742187503,-8.910449218750031],[-140.21743164062497,-8.929687499999957],[-140.24003906249993,-8.79755859375004],[-140.057666015625,-8.801464843750026],[-140.07260742187503,-8.910449218750031]]]]},"properties":{"name":"Fr. Polynesia","childNum":5}},{"geometry":{"type":"Polygon","coordinates":[[[51.26796875000002,24.607226562500003],[51.17802734375002,24.58671875],[51.093359375,24.564648437499997],[51.02275390625002,24.565234375],[50.96601562500001,24.573925781249997],[50.928320312500006,24.595117187499994],[50.85566406250001,24.679638671874997],[50.80439453125001,24.789257812499997],[50.8359375,24.850390625],[50.846777343750006,24.888574218749994],[50.75458984375001,25.39926757812499],[51.003125,25.9814453125],[51.262304687500006,26.153271484374997],[51.543066406250006,25.902392578125003],[51.4853515625,25.524707031250003],[51.60888671875,25.052880859374994],[51.42792968750001,24.668261718750003],[51.26796875000002,24.607226562500003]]]},"properties":{"name":"Qatar","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.2125,45.450439453125],[28.317675781250017,45.347119140625],[28.451269531250006,45.2921875],[28.78828125000001,45.240966796875],[28.78173828125,45.309863281249996],[28.894335937500017,45.289941406249994],[29.223535156250023,45.4029296875],[29.403710937500023,45.419677734375],[29.567675781250017,45.37080078125],[29.705859375000017,45.259912109374994],[29.557519531250023,44.843408203124994],[29.048242187500023,44.757568359375],[29.0953125,44.975048828125],[28.891503906250023,44.91865234375],[28.585351562500023,43.742236328124996],[28.221972656250017,43.772851562499994],[27.88427734375,43.987353515624996],[27.425390625,44.0205078125],[27.0869140625,44.167382812499994],[26.2158203125,44.007275390625],[25.4970703125,43.670800781249994],[22.919042968750006,43.83447265625],[22.868261718750006,43.947900390624994],[23.02851562500001,44.077978515625],[22.705078125,44.23779296875],[22.687890625000023,44.248291015625],[22.494531250000023,44.435449218749994],[22.554003906250017,44.540332031249996],[22.6201171875,44.562353515625],[22.70078125,44.555517578125],[22.734375,44.569921875],[22.72089843750001,44.605517578124996],[22.64208984375,44.6509765625],[22.49765625,44.70625],[22.350683593750006,44.676123046875],[22.200976562500017,44.560693359374994],[22.093066406250017,44.541943359375],[21.909277343750006,44.66611328125],[21.636132812500023,44.71044921875],[21.52314453125001,44.790087890624996],[21.36005859375001,44.82666015625],[21.35791015625,44.86181640625],[21.384375,44.870068359375],[21.442187500000017,44.873388671875],[21.519921875000023,44.880810546875],[21.532324218750006,44.900683593749996],[21.35703125,44.990771484374996],[21.465429687500006,45.171875],[21.431445312500017,45.192529296874994],[20.794042968750006,45.46787109375],[20.775,45.749804687499996],[20.760156250000023,45.758105468749996],[20.746875,45.748974609375],[20.727832031250017,45.73740234375],[20.709277343750017,45.735253906249994],[20.652734375000023,45.77939453125],[20.581152343750006,45.869482421875],[20.35859375000001,45.975488281249994],[20.241796875,46.10859375],[20.28095703125001,46.1330078125],[20.508105468750017,46.166943359375],[20.613671875000023,46.13349609375],[20.76025390625,46.246240234374994],[21.121679687500006,46.282421875],[21.99970703125001,47.505029296874994],[22.87666015625001,47.947265625],[23.054785156250006,48.00654296875],[23.139453125000017,48.08740234375],[23.20263671875,48.084521484374996],[23.408203125,47.989990234375],[23.628710937500017,47.995849609375],[24.578906250000017,47.931054687499994],[24.979101562500006,47.72412109375],[25.464257812500023,47.910791015624994],[25.689257812500017,47.932470703125],[25.90869140625,47.967578125],[26.162695312500006,47.992529296875],[26.236230468750023,48.064355468749994],[26.276953125,48.113232421875],[26.3056640625,48.203759765624994],[26.4423828125,48.22998046875],[26.618945312500017,48.25986328125],[26.980761718750017,48.155029296875],[27.614062500000017,47.34052734375],[28.07177734375,46.978417968749994],[28.23945312500001,46.6408203125],[28.07470703125,45.598974609375],[28.2125,45.450439453125]]]},"properties":{"name":"Romania","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[146.71396484375012,43.743798828124994],[146.62197265625,43.81298828125006],[146.88408203125002,43.82915039062496],[146.71396484375012,43.743798828124994]]],[[[146.20761718750006,44.49765625],[146.5677734375,44.44042968749997],[145.91406249999997,44.10371093750004],[145.58681640625,43.84511718750002],[145.5558593750001,43.66459960937502],[145.46171875000007,43.870898437500045],[146.20761718750006,44.49765625]]],[[[148.59951171875,45.317626953125],[147.91376953125004,44.99038085937502],[147.65781250000012,44.97714843749998],[146.89746093750003,44.404296875],[147.24658203124997,44.856054687500006],[147.88554687500007,45.22563476562499],[147.9240234375001,45.38330078125006],[148.05605468750005,45.26210937500005],[148.32421874999997,45.28242187500001],[148.8122070312501,45.510009765625],[148.83710937500004,45.36269531250002],[148.59951171875,45.317626953125]]],[[[149.68769531250004,45.64204101562501],[149.44707031250002,45.593359375000034],[149.9623046875,46.02192382812504],[150.553125,46.208544921875045],[149.68769531250004,45.64204101562501]]],[[[152.00205078125006,46.89716796874998],[151.72343750000007,46.82880859375001],[152.28886718750007,47.1421875],[152.00205078125006,46.89716796874998]]],[[[154.81044921875005,49.31201171875],[154.61093750000006,49.29404296874998],[154.82490234375004,49.64692382812501],[154.81044921875005,49.31201171875]]],[[[155.9210937500001,50.30219726562501],[155.39716796875004,50.04125976562497],[155.24306640625,50.09462890625002],[155.21835937500012,50.29785156250003],[155.68017578124997,50.400732421875034],[156.096875,50.771875],[155.9210937500001,50.30219726562501]]],[[[156.40507812500002,50.65761718750005],[156.16796874999997,50.73188476562498],[156.37646484374997,50.86210937499996],[156.4875,50.84296874999998],[156.40507812500002,50.65761718750005]]],[[[142.76103515625002,54.393945312499966],[143.32470703125003,52.96308593749998],[143.15556640625002,52.08374023437497],[143.29951171875004,51.632373046875045],[143.81601562500006,50.28261718750002],[144.71376953125,48.64028320312502],[144.04873046875,49.249169921874994],[143.73232421875,49.31201171875],[143.10498046875003,49.198828125000034],[142.57421874999997,48.07216796875002],[142.55693359375002,47.737890625000034],[143.21767578125005,46.79487304687504],[143.48564453125002,46.752050781250006],[143.58066406250012,46.360693359375034],[143.43164062500003,46.02866210937498],[143.28232421875006,46.55898437500002],[142.57802734375005,46.700781250000034],[142.07714843749997,45.91704101562499],[141.83037109375002,46.451074218749966],[142.03867187500012,47.140283203124966],[141.9640625000001,47.58745117187502],[142.18173828125012,48.01337890625001],[141.86630859375006,48.750097656250006],[142.1422851562501,49.56914062499999],[142.06601562500006,50.630468750000034],[142.20673828125004,51.22255859375002],[141.72236328125004,51.73632812499997],[141.66083984375004,52.27294921874997],[141.85556640625012,52.79350585937499],[141.82353515625007,53.33950195312502],[142.1419921875,53.49560546875003],[142.52617187500002,53.44746093749998],[142.70595703125,53.89570312499998],[142.33496093749997,54.28071289062501],[142.76103515625002,54.393945312499966]]],[[[137.17861328125005,55.100439453125034],[137.05527343750006,54.9267578125],[136.71464843750002,54.956152343750034],[137.17861328125005,55.100439453125034]]],[[[137.94052734375012,55.092626953125034],[138.20615234375012,55.03354492187498],[137.72148437500007,54.66323242187505],[137.46269531250002,54.873388671875034],[137.23291015624997,54.79057617187496],[137.5773437500001,55.19702148437497],[137.94052734375012,55.092626953125034]]],[[[21.235742187500023,55.26411132812498],[22.072363281250034,55.06367187499998],[22.56728515625005,55.05913085937496],[22.82470703125,54.87128906249998],[22.684472656250023,54.56293945312504],[22.679882812500068,54.493017578125006],[22.766210937499977,54.356787109375034],[22.168457031250057,54.35986328125006],[21.14052734375008,54.39179687499998],[19.604394531250023,54.45917968750004],[19.974511718750023,54.92119140625002],[20.520312500000017,54.994873046875],[20.89980468750008,55.286669921875045],[20.957812500000074,55.27890625000006],[20.594824218750006,54.982373046874955],[20.995898437500017,54.90268554687506],[21.18886718750008,54.93520507812502],[21.235742187500023,55.26411132812498]]],[[[166.65029296875005,54.83906249999998],[166.64511718750006,54.69409179687503],[165.75107421875006,55.294531250000034],[166.27578125000005,55.311962890624955],[166.24804687499997,55.16542968750002],[166.65029296875005,54.83906249999998]]],[[[150.58994140625006,59.01875],[150.47021484375003,59.05405273437498],[150.66621093750004,59.16015625000003],[150.58994140625006,59.01875]]],[[[163.63515625000005,58.603369140625006],[163.47138671875004,58.509375],[163.7609375000001,59.01503906250002],[164.57265625,59.22114257812501],[164.61572265624997,58.885595703125034],[163.63515625000005,58.603369140625006]]],[[[35.8161132812501,65.18208007812501],[35.77871093750005,64.97666015625],[35.52890625000006,65.15107421875001],[35.8161132812501,65.18208007812501]]],[[[70.02070312500004,66.502197265625],[69.65136718750003,66.56533203125],[69.50273437500002,66.75107421875],[70.07666015624997,66.69589843750003],[70.02070312500004,66.502197265625]]],[[[-179.79853515625,68.9404296875],[-178.873876953125,68.75410156249995],[-178.69262695312503,68.54599609375],[-178.09746093750002,68.4248046875],[-178.05581054687497,68.26489257812503],[-177.79677734374997,68.33798828125],[-178.37304687500003,68.56567382812503],[-177.52724609375002,68.29438476562501],[-177.58920898437503,68.22421875],[-175.34521484375,67.67807617187503],[-175.37470703124998,67.35737304687498],[-175.00268554687494,67.4375],[-174.849853515625,67.34887695312503],[-174.92490234375,66.62314453125006],[-174.503759765625,66.537939453125],[-174.39409179687496,66.34423828124997],[-174.084765625,66.47309570312504],[-174.06503906249998,66.22958984374998],[-173.77397460937502,66.43466796875003],[-174.23159179687497,66.63188476562505],[-174.08642578125,66.94287109375],[-174.55009765624993,67.090625],[-173.6796875,67.144775390625],[-173.15781249999998,67.06909179687503],[-173.32353515625,66.95483398437503],[-173.25893554687497,66.84008789062503],[-173.19301757812497,66.99360351562504],[-172.5201171875,66.952490234375],[-173.00751953125,67.06489257812498],[-171.79555664062502,66.93173828125003],[-170.50952148437503,66.34365234375005],[-170.604443359375,66.24892578125002],[-170.30122070312504,66.29404296874998],[-170.24394531250002,66.16928710937503],[-169.777880859375,66.14311523437505],[-169.83168945312497,65.99892578124997],[-170.54067382812497,65.86542968749995],[-170.66630859375,65.62153320312501],[-171.42153320312502,65.81035156250002],[-171.10585937500002,65.51103515625005],[-171.90712890625,65.495947265625],[-172.78330078124998,65.68105468749997],[-172.23281250000002,65.45571289062497],[-172.30927734375004,65.27563476562497],[-172.66191406249993,65.24853515625006],[-172.28603515625002,65.20571289062502],[-172.21318359375,65.04814453124999],[-173.08579101562498,64.81733398437495],[-172.80107421874996,64.79052734375],[-172.90087890624994,64.62885742187501],[-172.40146484374998,64.413916015625],[-172.73916015624997,64.41225585937502],[-172.90317382812498,64.52607421875004],[-172.96005859375003,64.32768554687502],[-173.27548828124998,64.2896484375],[-173.327490234375,64.53955078125003],[-173.72973632812497,64.36450195312497],[-174.57055664062503,64.7177734375],[-175.39511718749998,64.80239257812502],[-175.85385742187498,65.01083984375003],[-176.09326171875,65.471044921875],[-177.05625,65.613623046875],[-177.48876953125,65.50371093749999],[-178.4125,65.49555664062501],[-178.93906249999998,66.03276367187505],[-178.74672851562497,66.01367187500006],[-178.52656250000004,66.40156250000004],[-178.86811523437498,66.18706054687502],[-179.14340820312503,66.37504882812505],[-179.327197265625,66.16259765625003],[-179.68330078124998,66.18413085937505],[-179.78969726562497,65.90087890625],[-179.352099609375,65.51674804687497],[-180,65.06723632812498],[-180,65.31196289062501],[-180,65.55678710937497],[-180,65.80156250000002],[-180,66.04628906250002],[-180,66.29106445312499],[-180,66.53583984375004],[-180,66.78056640625005],[-180,67.02534179687501],[-180,67.27011718750006],[-180,67.51484374999998],[-180,67.75961914062503],[-180,68.00439453124997],[-180,68.24912109375],[-180,68.49389648437497],[-180,68.738671875],[-179.999951171875,68.98344726562505],[-179.79853515625,68.9404296875]]],[[[50.265234375,69.18559570312502],[49.62626953125002,68.85971679687498],[48.91035156250004,68.74306640625002],[48.4390625,68.80488281249998],[48.319921875,69.26923828125001],[48.8449218750001,69.49472656250003],[49.22519531250006,69.51123046875],[50.265234375,69.18559570312502]]],[[[161.46708984375002,68.90097656250003],[161.08281250000007,69.4056640625],[161.50517578125007,69.63945312500002],[161.46708984375002,68.90097656250003]]],[[[169.20078125000006,69.58046875],[168.34804687500005,69.66435546875005],[167.86474609375003,69.90107421875004],[168.35791015625003,70.01567382812502],[169.37480468750007,69.88261718749999],[169.20078125000006,69.58046875]]],[[[60.450488281250074,69.93486328124999],[60.44023437500002,69.72592773437506],[59.637011718750074,69.72104492187503],[59.50263671875004,69.86621093750003],[58.952734375,69.89277343750004],[58.51992187500005,70.31831054687504],[59.04804687500004,70.46049804687505],[60.450488281250074,69.93486328124999]]],[[[52.90332031250003,71.36499023437503],[53.19257812500004,71.21528320312498],[53.0226562500001,70.96870117187501],[52.24960937500006,71.28491210937506],[52.90332031250003,71.36499023437503]]],[[[178.8615234375001,70.826416015625],[178.68388671875013,71.10566406250004],[180,71.53774414062505],[180,70.993017578125],[178.8615234375001,70.826416015625]]],[[[137.95986328125005,71.50766601562503],[137.71181640625005,71.4232421875],[137.06406250000006,71.52988281250003],[137.816796875,71.58789062500006],[137.95986328125005,71.50766601562503]]],[[[-178.87646484375,71.57705078124997],[-178.13388671874998,71.46547851562497],[-177.523583984375,71.16689453125],[-179.415673828125,70.91899414062502],[-179.999951171875,70.993017578125],[-179.999951171875,71.53774414062505],[-178.87646484375,71.57705078124997]]],[[[77.6325195312501,72.291259765625],[76.87109374999997,72.317041015625],[77.74853515625003,72.63120117187506],[78.36513671875005,72.48242187500003],[77.6325195312501,72.291259765625]]],[[[79.50146484374997,72.72192382812497],[78.63320312500005,72.85073242187502],[79.16425781250004,73.0943359375],[79.50146484374997,72.72192382812497]]],[[[74.660546875,72.87343750000002],[74.18066406250003,72.975341796875],[74.19853515625002,73.10908203124998],[74.9615234375,73.0625],[74.660546875,72.87343750000002]]],[[[120.26132812500012,73.08984374999997],[119.79208984375006,73.04541015624997],[119.64042968750002,73.12431640625007],[120.26132812500012,73.08984374999997]]],[[[55.31982421875003,73.30830078124998],[56.42958984375005,73.201171875],[56.121679687500006,72.80659179687498],[55.40332031249997,72.54907226562503],[55.29785156249997,71.93535156250005],[56.45439453125002,71.10737304687504],[57.62539062500005,70.72880859374999],[57.14589843750005,70.58911132812506],[56.38574218749997,70.73413085937503],[56.49970703125004,70.56640625000003],[55.687304687500074,70.69218749999999],[54.60117187500006,70.68007812500002],[53.383593750000074,70.87353515625],[53.670507812500006,71.08691406250003],[54.155664062499994,71.12548828125],[53.40996093750002,71.34013671875002],[53.41162109375003,71.530126953125],[51.93789062500005,71.47470703124998],[51.511328125,71.64809570312497],[51.58251953124997,72.07119140625],[52.252050781250006,72.12973632812503],[52.66191406250002,72.33686523437495],[52.91660156250006,72.66889648437501],[52.5792968750001,72.791357421875],[53.3698242187501,72.91674804687506],[53.2511718750001,73.182958984375],[54.80390625000004,73.38764648437498],[55.31982421875003,73.30830078124998]]],[[[70.67392578125006,73.09501953125005],[70.04072265625004,73.03715820312507],[69.99589843750002,73.359375],[70.94023437500002,73.51440429687503],[71.6261718750001,73.17397460937497],[70.67392578125006,73.09501953125005]]],[[[142.18486328125007,73.89589843750005],[143.34375,73.56875],[143.45146484375007,73.231298828125],[141.59667968750003,73.31083984375005],[140.66279296875004,73.45200195312503],[139.785546875,73.35522460937503],[141.08476562500002,73.86586914062497],[142.18486328125007,73.89589843750005]]],[[[83.5490234375001,74.07177734375],[82.8177734375,74.09160156250005],[83.14980468750005,74.151611328125],[83.5490234375001,74.07177734375]]],[[[141.01025390625003,73.99946289062501],[140.40947265625002,73.92167968750005],[140.1935546875001,74.23671875000002],[141.03857421875003,74.24272460937502],[141.01025390625003,73.99946289062501]]],[[[113.38720703124997,74.40043945312499],[112.78242187500004,74.09506835937503],[111.50341796874997,74.35307617187502],[111.87978515625,74.36381835937499],[112.08447265624997,74.54897460937505],[113.38720703124997,74.40043945312499]]],[[[86.653125,74.981298828125],[87.05214843750005,74.982568359375],[86.92714843750005,74.83076171874998],[86.25859375000002,74.89350585937498],[86.653125,74.981298828125]]],[[[82.17236328125003,75.41938476562501],[81.97851562499997,75.24711914062499],[81.65478515625003,75.28891601562498],[81.71210937500004,75.45141601562506],[82.165625,75.515625],[82.17236328125003,75.41938476562501]]],[[[146.79521484375007,75.37075195312505],[148.43242187500002,75.41352539062495],[148.59013671875007,75.23637695312502],[150.82236328125006,75.15654296875002],[150.64628906250002,74.944580078125],[149.596875,74.77260742187505],[148.296875,74.80043945312502],[146.14853515625012,75.19829101562499],[146.5375,75.58178710937506],[146.79521484375007,75.37075195312505]]],[[[135.9486328125,75.40957031250005],[135.45195312500007,75.38955078124997],[135.6986328125,75.84526367187499],[136.16894531249997,75.60556640625],[135.9486328125,75.40957031250005]]],[[[140.04873046875,75.82895507812503],[140.81591796874997,75.63071289062498],[141.48544921875012,76.13715820312495],[142.66953125000012,75.86342773437497],[143.68583984375002,75.86367187500002],[145.35996093750006,75.53046874999998],[144.01972656250004,75.04467773437506],[143.1703125,75.11689453125001],[142.72949218749997,75.33764648437506],[142.941796875,75.71328125000002],[142.30791015625007,75.69169921875005],[142.19882812500006,75.39267578124998],[143.12792968749997,74.9703125],[142.47275390625006,74.82041015625],[141.98730468750003,74.99125976562499],[140.26787109375002,74.846923828125],[139.68125,74.96406249999995],[139.09912109374997,74.65654296875002],[138.09228515625003,74.79746093750003],[136.94765625000005,75.32553710937498],[137.28974609375004,75.34863281249997],[137.26884765625002,75.7494140625],[137.70654296875003,75.75957031250002],[137.56054687499997,75.95522460937502],[138.20761718750006,76.11494140624995],[138.91953125000006,76.19672851562501],[140.04873046875,75.82895507812503]]],[[[96.5324218750001,76.278125],[96.30058593750002,76.121728515625],[95.31113281250006,76.21474609375002],[95.37988281250003,76.2890625],[96.5324218750001,76.278125]]],[[[112.47802734375003,76.62089843749999],[112.531640625,76.450048828125],[111.96894531250004,76.62617187500001],[112.47802734375003,76.62089843749999]]],[[[149.15019531250002,76.65991210937506],[148.39863281250004,76.64824218750007],[149.4064453125001,76.78208007812498],[149.15019531250002,76.65991210937506]]],[[[67.7653320312501,76.23759765624999],[61.35595703124997,75.31484375000002],[60.27685546875003,75.00756835937503],[60.501367187499994,74.90463867187503],[59.67402343750004,74.61015624999999],[59.24013671875005,74.69296874999998],[59.040429687499994,74.48554687500001],[58.53466796875003,74.49892578124997],[58.6178710937501,74.22739257812498],[57.76738281250002,74.013818359375],[57.755957031250006,73.769189453125],[57.313085937500006,73.838037109375],[57.54257812500006,73.65820312500003],[56.96386718750003,73.36655273437503],[56.43037109375004,73.29721679687503],[55.00683593750003,73.45385742187506],[54.29990234375006,73.35097656249997],[53.7628906250001,73.76616210937499],[54.64267578125006,73.95957031250006],[55.34091796875006,74.41962890624998],[56.13710937500005,74.49609375000003],[55.5822265625001,74.627685546875],[56.4987304687501,74.95708007812505],[55.81005859374997,75.12490234374997],[56.03554687499999,75.19423828124997],[56.57031250000003,75.09775390625003],[56.8444335937501,75.351416015625],[57.606835937499994,75.34125976562498],[58.05830078125004,75.6630859375],[58.88125,75.85478515625007],[60.27929687499997,76.09624023437505],[60.94218750000002,76.07128906250003],[61.20166015624997,76.28203125000007],[62.97148437500002,76.23666992187498],[64.4634765625,76.37817382812503],[67.65185546874997,77.011572265625],[68.48574218750005,76.93369140625003],[68.94169921875002,76.707666015625],[67.7653320312501,76.23759765624999]]],[[[96.28544921875002,77.02666015625007],[95.27031250000007,77.01884765624999],[96.52841796875006,77.20551757812501],[96.28544921875002,77.02666015625007]]],[[[89.51425781250006,77.18881835937498],[89.14169921875012,77.22680664062497],[89.61621093749997,77.31103515625],[89.51425781250006,77.18881835937498]]],[[[130.68730468750007,42.30253906249999],[130.52695312500012,42.535400390625],[130.42480468749997,42.72705078124997],[131.06855468750004,42.90224609375005],[131.25732421875003,43.378076171874994],[131.2552734375,44.07158203124999],[130.9816406250001,44.844335937500034],[131.44687500000012,44.984033203124966],[131.85185546875002,45.32685546875001],[132.93603515624997,45.029931640624994],[133.1134765625001,45.130712890625006],[133.18603515625003,45.49482421875004],[133.43642578125,45.60468750000004],[133.86132812500003,46.24775390625004],[134.1676757812501,47.30219726562501],[134.75234375,47.71542968749998],[134.56601562500006,48.02250976562502],[134.66523437500004,48.25390625],[134.29335937500005,48.37343750000002],[133.46835937500006,48.09716796875003],[133.14404296875003,48.10566406249998],[132.7072265625001,47.94726562500006],[132.47626953125004,47.714990234374994],[130.96191406249997,47.70932617187498],[130.7326171875001,48.01923828124998],[130.80429687500012,48.34150390624998],[130.5521484375,48.602490234374955],[130.553125,48.861181640625006],[130.1959960937501,48.89165039062499],[129.49814453125012,49.38881835937502],[129.0651367187501,49.374658203124966],[128.70400390625,49.60014648437499],[127.99960937500006,49.56860351562506],[127.55078124999997,49.801806640625045],[127.590234375,50.20898437500003],[127.33720703125007,50.35014648437502],[127.30703125000005,50.70795898437501],[126.92480468749997,51.10014648437496],[126.34169921875,52.36201171875001],[125.64902343750012,53.042285156250045],[125.075,53.20366210937496],[124.81230468750002,53.133837890625045],[123.6078125,53.546533203124994],[120.98544921875012,53.28457031250002],[120.09453125000007,52.787207031250034],[120.0675781250001,52.632910156250034],[120.65615234375,52.56665039062503],[120.74980468750007,52.096533203125006],[120.06689453125003,51.60068359375006],[119.16367187500006,50.40600585937503],[119.34628906250012,50.278955078124994],[119.25986328125012,50.06640625000003],[118.4515625,49.84448242187503],[117.8734375,49.51347656250002],[116.6833007812501,49.82377929687499],[116.551171875,49.92031250000002],[116.35117187500012,49.97807617187499],[116.21679687500003,50.00927734375003],[116.13457031250002,50.01079101562499],[115.9259765625001,49.95214843750003],[115.79521484375002,49.90590820312502],[115.71777343750003,49.88061523437503],[115.58798828125006,49.88603515624996],[115.42919921874997,49.89648437499997],[115.36503906250002,49.911767578124966],[115.27451171875006,49.948876953124994],[115.00332031250005,50.138574218749994],[114.74316406249997,50.23369140625002],[114.29707031250004,50.27441406250006],[113.57421874999997,50.00703125000001],[113.44550781250004,49.94160156250001],[113.31904296875004,49.87431640624999],[113.16416015625012,49.79716796874999],[113.09208984375007,49.692529296874994],[113.05556640625,49.61625976562499],[112.91484375000002,49.569238281249994],[112.80644531250007,49.52358398437502],[112.69736328125012,49.50727539062498],[112.49492187500002,49.532324218750034],[112.07968750000006,49.42421875000002],[111.42929687500006,49.342626953125034],[111.3366210937501,49.355859374999966],[111.20419921875012,49.304296875000034],[110.82792968750002,49.16616210937505],[110.70976562500002,49.14296875000002],[110.42783203125006,49.219970703125],[110.32138671875012,49.215869140625045],[110.19990234375004,49.17041015625003],[109.5287109375,49.269873046875034],[109.45371093750012,49.29633789062501],[109.23671875000005,49.334912109374955],[108.61367187500005,49.32280273437499],[108.52246093750003,49.34150390624998],[108.4069335937501,49.39638671875005],[107.96542968750012,49.65351562500004],[107.91660156250012,49.947802734375045],[107.63095703125012,49.98310546875004],[107.3470703125,49.986669921875034],[107.23330078125,49.989404296874994],[107.14306640625003,50.03300781249999],[107.04023437500004,50.086474609375045],[106.94130859375005,50.19667968750002],[106.71113281250004,50.312597656250006],[106.57441406250004,50.32880859375004],[106.36845703125002,50.317578124999955],[106.21787109375006,50.304589843749966],[105.38359375000002,50.47373046874998],[104.07871093750012,50.15424804687498],[103.63291015625006,50.138574218749994],[103.49628906250004,50.16494140625005],[103.42119140625002,50.18706054687502],[103.3043945312501,50.200292968750034],[102.28837890625007,50.58510742187502],[102.31660156250004,50.71845703125001],[102.21503906250004,50.82944335937506],[102.19453125000004,51.05068359375002],[102.15195312500006,51.107519531250034],[102.14238281250007,51.21606445312503],[102.16005859375005,51.260839843750006],[102.1556640625,51.31376953124996],[102.1115234375001,51.353466796874955],[101.97919921875004,51.382226562499966],[101.82119140625,51.421044921874966],[101.57089843750006,51.46718750000005],[101.38125,51.45263671875],[100.53623046875006,51.713476562500034],[100.46894531250004,51.72607421875003],[100.23037109375,51.729833984375006],[100.0345703125,51.73710937499996],[99.92167968750002,51.755517578124994],[99.71923828124997,51.87163085937502],[98.89316406250006,52.11728515625006],[98.64052734375005,51.80117187500005],[98.103125,51.483544921874994],[97.82529296875012,50.985253906249994],[97.953125,50.85517578124998],[98.02978515625003,50.64462890624998],[98.07890625000002,50.60380859375002],[98.14501953124997,50.56855468750001],[98.22050781250007,50.55717773437502],[98.2794921875001,50.53325195312502],[98.25029296875002,50.30244140624998],[98.00390625000003,50.01425781249998],[97.35976562500005,49.741455078125],[97.20859375000006,49.73081054687506],[96.98574218750005,49.88281250000003],[96.31503906250012,49.90112304687503],[96.06552734375006,49.99873046875001],[95.52265625000004,49.911230468750034],[95.11142578125012,49.935449218749994],[94.93027343750006,50.04375],[94.8112304687501,50.04819335937506],[94.71806640625002,50.04326171875002],[94.67548828125004,50.02807617187506],[94.61474609375003,50.02373046874996],[94.56464843750004,50.08793945312499],[94.35468750000004,50.221826171874994],[94.25107421875006,50.55639648437503],[93.103125,50.60390625000002],[92.94130859375005,50.77822265625002],[92.85644531250003,50.78911132812502],[92.77929687500003,50.778662109375006],[92.738671875,50.71093749999997],[92.68134765625004,50.683203125],[92.6266601562501,50.68828124999999],[92.57890625000002,50.725439453125006],[92.42636718750006,50.803076171875006],[92.35478515625002,50.86416015625002],[92.29580078125,50.84980468750004],[92.19238281249997,50.700585937499994],[91.80429687500006,50.693603515625],[91.4464843750001,50.52216796874998],[91.41503906249997,50.46801757812506],[91.34082031249997,50.470068359375034],[91.30058593750002,50.46337890625],[91.2337890625,50.45239257812497],[91.02158203125012,50.41547851562501],[90.83808593750004,50.32373046874997],[90.76074218749997,50.30595703124999],[90.71435546874997,50.25942382812502],[90.65507812500007,50.22236328125001],[90.05371093750003,50.09375],[89.64384765625002,49.90302734374998],[89.65410156250007,49.71748046875001],[89.57919921875006,49.69970703125003],[89.475,49.66054687500005],[89.39560546875006,49.61152343750001],[89.24394531250007,49.62705078125006],[89.20292968750007,49.59570312499997],[89.17998046875002,49.5322265625],[89.10947265625012,49.50136718750002],[89.00839843750006,49.472802734374994],[88.97060546875,49.483740234375006],[88.94541015625012,49.50766601562498],[88.90019531250002,49.53969726562502],[88.86386718750006,49.52763671874996],[88.83164062500012,49.44843749999998],[88.633203125,49.486132812500045],[88.19257812500004,49.451708984375045],[88.13554687500002,49.38149414062502],[88.11572265624997,49.25629882812501],[88.0285156250001,49.219775390625045],[87.98808593750002,49.186914062499994],[87.9347656250001,49.16455078124997],[87.81425781250002,49.162304687499955],[87.7625,49.16582031249996],[87.5158203125001,49.122412109375006],[87.41669921875004,49.07661132812501],[87.32285156250012,49.085791015625006],[86.62646484374997,49.56269531250001],[86.67548828125004,49.77729492187501],[86.1808593750001,49.49931640624996],[85.2326171875001,49.61582031249998],[84.9894531250001,50.061425781249994],[84.32324218749997,50.239160156249966],[83.94511718750007,50.774658203125],[83.35732421875005,50.99458007812504],[82.76083984375012,50.89335937500002],[82.49394531250007,50.72758789062499],[81.46591796875006,50.73984375],[81.38828125000006,50.95649414062501],[81.0714843750001,50.96875],[81.12724609375002,51.19106445312502],[80.73525390625,51.29340820312498],[80.44804687500002,51.18334960937503],[80.42363281250002,50.94628906249997],[79.98623046875,50.774560546874966],[77.85996093750006,53.269189453124994],[76.48476562500005,54.02255859374998],[76.42167968750007,54.151513671874966],[76.65458984375007,54.14526367187503],[76.8373046875,54.4423828125],[75.43720703125004,54.08964843749999],[75.22021484374997,53.89379882812506],[74.45195312500007,53.64726562500002],[74.35156250000003,53.487646484375006],[73.85898437500006,53.61972656249998],[73.40693359375004,53.44755859374999],[73.30566406250003,53.707226562499955],[73.71240234375003,54.04238281250002],[73.22988281250005,53.957812500000045],[72.62226562500004,54.13432617187502],[72.44677734375003,53.94184570312498],[72.18603515625003,54.32563476562501],[72.00449218750006,54.20566406249998],[71.09316406250005,54.21220703124999],[71.18554687500003,54.59931640624998],[70.73808593750007,55.30517578125],[70.18242187500002,55.162451171875034],[68.9772460937501,55.389599609374955],[68.20625,55.16093750000002],[68.15585937500006,54.97670898437505],[65.476953125,54.62329101562497],[65.08837890624997,54.340185546875034],[64.46123046875002,54.38417968750002],[61.92871093750003,53.94648437500004],[61.231054687500006,54.01948242187498],[60.97949218749997,53.62172851562505],[61.53496093750002,53.52329101562506],[61.22890625,53.445898437500006],[61.19921874999997,53.28715820312502],[61.65986328125004,53.22846679687504],[62.08271484375004,53.00541992187499],[61.047460937500006,52.97246093750002],[60.77441406249997,52.67578124999997],[60.99453125000005,52.33686523437504],[60.03027343749997,51.93325195312505],[60.464746093749994,51.651171875000045],[61.55468750000003,51.32460937500005],[61.38945312500002,50.86103515625001],[60.94228515625005,50.69550781250004],[60.42480468749997,50.67915039062498],[60.05859374999997,50.850292968749955],[59.812402343749994,50.58203125],[59.523046875,50.492871093749955],[59.4523437500001,50.62041015625002],[58.88369140625005,50.694433593750006],[58.359179687500074,51.063818359375034],[57.83886718750003,51.091650390625006],[57.44218750000002,50.88886718749998],[57.01171874999997,51.06518554687503],[56.49140625000004,51.01953124999997],[55.68623046875004,50.582861328125006],[54.64160156250003,51.011572265625034],[54.555273437500006,50.535791015624994],[54.139746093750006,51.04077148437503],[53.33808593750004,51.48237304687504],[52.57119140625005,51.481640624999955],[52.21914062499999,51.709375],[51.344531250000074,51.47534179687503],[51.16347656250005,51.6474609375],[50.79394531249997,51.729199218749955],[50.246875,51.28950195312498],[49.49804687500003,51.08359375000006],[49.32343750000004,50.851708984374966],[48.625097656250006,50.61269531250005],[48.7589843750001,49.92832031250006],[48.33496093750003,49.858251953125006],[47.7057617187501,50.37797851562502],[47.42919921874997,50.35795898437502],[46.889550781249994,49.69697265625001],[46.80205078125002,49.36708984375002],[47.031347656250006,49.150292968749994],[46.70263671875003,48.80556640625002],[46.660937500000074,48.41225585937502],[47.06464843750004,48.23247070312499],[47.292382812499994,47.74091796875004],[47.48193359374997,47.80390624999998],[48.16699218750003,47.70878906249996],[48.959375,46.77460937499998],[48.558398437500074,46.75712890624999],[48.54121093750004,46.60561523437502],[49.232226562500074,46.33715820312503],[48.683691406250006,46.08618164062497],[48.72958984375006,45.896826171875034],[48.4870117187501,45.93486328124996],[47.63330078124997,45.58403320312499],[47.46328125,45.67968750000003],[47.5294921875001,45.530224609374955],[47.3512695312501,45.21772460937498],[46.7072265625001,44.503320312499994],[47.30703125000005,44.103125],[47.462792968749994,43.55502929687498],[47.64648437500003,43.88461914062498],[47.463183593750074,43.03505859375002],[48.572851562500006,41.84448242187503],[47.79101562499997,41.19926757812502],[47.31767578125002,41.28242187500001],[46.74931640625002,41.812597656250006],[46.42988281250004,41.890966796875006],[46.21269531250002,41.989892578124994],[45.63857421875005,42.20507812500003],[45.63427734374997,42.234716796875034],[45.72753906249997,42.47504882812498],[45.70527343750004,42.49809570312496],[45.56289062499999,42.53574218749998],[45.34375,42.52978515625003],[45.16025390625006,42.675],[45.07158203125002,42.69414062500002],[44.94335937499997,42.73027343750002],[44.870996093749994,42.75639648437499],[44.850488281249994,42.746826171875],[44.77109375000006,42.61679687499998],[44.69179687499999,42.709619140624966],[44.64433593750002,42.734716796875034],[44.50585937500003,42.748632812500006],[44.329492187499994,42.703515624999966],[44.10273437500004,42.616357421874994],[44.004687500000074,42.59560546875002],[43.95742187500005,42.56655273437505],[43.825976562500074,42.571533203125],[43.759863281250006,42.593847656250006],[43.738378906250006,42.61699218750002],[43.74990234375005,42.65751953125002],[43.79541015624997,42.702978515625034],[43.78261718750005,42.747021484374955],[43.62304687500003,42.80771484374998],[43.5578125000001,42.844482421875],[43.089160156250074,42.9890625],[43.00019531250004,43.04965820312506],[42.991601562499994,43.09150390624998],[42.76064453125005,43.169580078124966],[41.58056640624997,43.21923828124997],[41.460742187500074,43.276318359374955],[41.35820312500002,43.33339843750005],[41.08310546875006,43.37446289062498],[40.94199218750006,43.41806640624998],[40.801660156249994,43.479931640624955],[40.64804687500006,43.53388671875004],[40.084570312500006,43.553125],[40.02373046875002,43.48486328125],[39.873632812500006,43.47280273437502],[38.71728515624997,44.28808593750003],[38.18125,44.41967773437503],[37.851464843749994,44.698828125000034],[37.49511718750003,44.69526367187504],[37.20478515625004,44.97197265624999],[36.62763671875004,45.15131835937504],[36.941210937500074,45.289697265624994],[36.72041015625004,45.371875],[36.8659179687501,45.42705078124999],[37.21357421875004,45.272314453125006],[37.6471679687501,45.37719726562506],[37.61240234375006,45.56469726562506],[37.93310546875003,46.001708984375],[38.014257812500006,46.047753906249966],[38.07958984375003,45.93481445312506],[38.18359374999997,46.09482421875006],[38.49228515625006,46.09052734374998],[37.913867187500074,46.40649414062503],[37.766503906249994,46.63613281250002],[38.50097656249997,46.663671875000034],[38.43867187500004,46.813085937500006],[39.29345703125003,47.105761718750045],[39.19570312499999,47.268847656250045],[39.023730468750074,47.27221679687503],[38.928320312500006,47.175683593749994],[38.55244140625004,47.15034179687498],[38.7619140625001,47.261621093749994],[38.21435546875003,47.091455078124966],[38.36884765625004,47.609960937500006],[38.90029296875005,47.85512695312502],[39.77871093750005,47.88754882812506],[39.95791015625005,48.268896484375034],[39.8356445312501,48.54277343749996],[39.6447265625001,48.591210937499966],[39.792871093749994,48.807714843750034],[40.00361328125004,48.82207031250002],[39.68652343749997,49.007910156250034],[40.10878906250005,49.251562500000034],[40.080664062500006,49.576855468749955],[39.780566406250074,49.57202148437503],[39.17480468750003,49.85595703124997],[38.91835937499999,49.82470703125],[38.258593750000074,50.05234375],[38.046875,49.92001953125006],[37.42285156249997,50.411474609375006],[36.619433593750074,50.209228515625],[36.1164062500001,50.408544921875006],[35.59111328125002,50.36875],[35.31191406250005,51.043896484374955],[35.0640625,51.203417968750045],[34.21386718750003,51.25537109375006],[34.12109375000003,51.67915039062498],[34.397851562499994,51.780419921874994],[33.735253906249994,52.344775390625045],[32.435449218749994,52.307226562500034],[32.12226562500004,52.05058593749996],[31.763378906250097,52.10107421875003],[31.758593750000017,52.125830078125034],[31.690625,52.22065429687498],[31.64990234374997,52.26220703125],[31.60156250000003,52.284814453124994],[31.57734375000004,52.31230468749999],[31.585546875,52.532470703125],[31.56484375,52.75922851562501],[31.53515624999997,52.798242187499966],[31.442773437499994,52.86181640625003],[31.35302734374997,52.93344726562498],[31.295117187500097,52.98979492187499],[31.25878906249997,53.01669921875006],[31.364550781250017,53.13896484375002],[31.388378906250097,53.18481445312503],[31.41787109375005,53.196044921875],[31.849707031250006,53.106201171875],[32.14199218750005,53.091162109375034],[32.46933593750006,53.270312500000045],[32.578027343749994,53.312402343749994],[32.644433593749994,53.32890624999999],[32.70429687500004,53.33632812499999],[32.45097656250002,53.6533203125],[32.20039062500004,53.78125],[31.99218750000003,53.796875],[31.82080078124997,53.79194335937498],[31.754199218750017,53.81044921875002],[31.825292968750006,53.93500976562501],[31.837792968749994,54.00078124999999],[31.825976562500074,54.030712890624955],[31.79199218749997,54.05590820312503],[31.62841796874997,54.111181640625006],[31.403613281250017,54.195947265624966],[31.299121093750017,54.29169921875001],[31.184765625000097,54.452978515625006],[31.074804687500063,54.491796875],[31.154882812500063,54.610937500000034],[31.152148437500017,54.625341796875034],[31.12128906250004,54.64848632812496],[30.984179687500074,54.695898437500034],[30.79882812499997,54.78325195312499],[30.79101562499997,54.806005859375006],[30.804492187500074,54.8609375],[30.829882812500017,54.91499023437498],[30.977734375000097,55.05048828124998],[30.977734375000097,55.08779296875002],[30.958886718749994,55.13759765625005],[30.87744140625003,55.223437500000045],[30.81445312499997,55.27871093750002],[30.81054687499997,55.306982421875006],[30.82099609375004,55.330273437499955],[30.900585937500097,55.397412109374955],[30.906835937500063,55.57001953125004],[30.625585937500006,55.666259765625],[30.23359375000004,55.84521484375006],[30.04267578125004,55.83642578125003],[29.93701171874997,55.84526367187499],[29.881640625000074,55.83232421875002],[29.82392578125004,55.79511718749998],[29.74414062499997,55.770410156249994],[29.630078125000097,55.75117187499998],[29.482226562500074,55.6845703125],[29.412988281249994,55.72485351562506],[29.35341796875005,55.784375],[29.375,55.938720703125],[28.284277343750006,56.055908203125],[28.14794921875003,56.142919921875034],[28.202050781250023,56.260400390624994],[28.191699218750045,56.31557617187505],[28.169238281250017,56.386865234374994],[28.11083984375,56.51069335937501],[28.103125,56.545703125000045],[27.89208984375003,56.741064453125034],[27.88154296875001,56.82416992187501],[27.848632812500057,56.85341796875002],[27.806054687499994,56.86708984375005],[27.639453125000074,56.84565429687504],[27.83027343750004,57.19448242187505],[27.83828125000008,57.247705078124966],[27.82861328124997,57.293310546875006],[27.796875,57.316943359375045],[27.538671875000063,57.429785156250034],[27.51113281250005,57.508154296875006],[27.469726562500057,57.524023437500034],[27.35195312500005,57.528125],[27.4,57.66679687499999],[27.542089843750063,57.799414062500006],[27.778515625000068,57.87070312500006],[27.502441406250057,58.221337890624994],[27.434179687500006,58.787255859374994],[28.15107421875004,59.374414062499966],[28.0125,59.484277343749966],[28.05800781250008,59.781542968750045],[28.334570312500034,59.69252929687502],[28.518164062500034,59.849560546874955],[28.947265625000057,59.828759765624994],[29.147265625000045,59.999755859375],[30.12255859374997,59.873583984375074],[30.172656250000017,59.957128906250034],[29.72119140624997,60.19531249999997],[29.069140625000017,60.19145507812499],[28.643164062500006,60.375292968750045],[28.512792968750006,60.67729492187502],[27.797656250000074,60.53613281250003],[29.69013671875004,61.54609375000001],[31.18671875000004,62.48139648437504],[31.533984375000017,62.885400390624994],[31.180859375000097,63.208300781250074],[29.991503906250074,63.73515625000002],[30.50390625000003,64.02060546875],[30.513769531250006,64.2],[30.04189453125005,64.44335937499997],[30.072851562500063,64.76503906250005],[29.60419921875004,64.968408203125],[29.826953125000017,65.14506835937502],[29.608007812500006,65.248681640625],[29.715917968750063,65.62456054687502],[30.102734375000097,65.72626953125004],[29.066210937500045,66.89174804687497],[29.988085937500017,67.66826171874999],[29.343847656250006,68.06186523437506],[28.685156250000034,68.189794921875],[28.470703125000057,68.48837890625],[28.77285156250005,68.84003906249995],[28.414062500000057,68.90415039062506],[28.96582031250003,69.02197265625],[29.38828125,69.29814453125005],[30.08730468750005,69.43286132812503],[30.18017578124997,69.63583984375],[30.860742187499994,69.53842773437503],[30.869726562500006,69.78344726562506],[31.546972656250063,69.696923828125],[31.997949218749994,69.80991210937503],[31.98457031250004,69.95366210937499],[33.00781249999997,69.72211914062498],[32.91503906249997,69.60170898437497],[32.17675781250003,69.67402343749995],[32.37773437500002,69.47910156250003],[32.99980468750002,69.4701171875],[32.97890625000005,69.367333984375],[33.45429687500004,69.42817382812495],[33.14121093750006,69.068701171875],[33.684375,69.31025390625001],[35.85791015625003,69.19174804687503],[37.73056640625006,68.69213867187503],[38.43017578125003,68.35561523437505],[39.568945312500006,68.07172851562501],[39.82333984375006,68.05859375],[39.80927734375004,68.15083007812498],[40.38066406250002,67.831884765625],[40.96640625000006,67.71347656250003],[41.358789062499994,67.20966796874998],[41.18896484375003,66.82617187500003],[40.10332031250002,66.29995117187502],[38.65390625000006,66.06904296874995],[35.51347656250002,66.39580078125002],[34.82460937499999,66.61113281249999],[34.48261718750004,66.55034179687505],[34.4515625,66.651220703125],[33.15019531250002,66.84394531250001],[32.93046875000002,67.08681640625002],[31.895312500000074,67.16142578125002],[33.65595703125004,66.44262695312506],[33.36054687500004,66.32954101562501],[34.112695312499994,66.225244140625],[34.69179687500005,65.95185546874998],[34.77695312500006,65.76826171874998],[34.40644531250004,65.39575195312503],[35.03535156250004,64.44023437500005],[35.802050781250074,64.3353515625],[36.3649414062501,64.00283203125002],[37.44218750000002,63.813378906249966],[37.9679687500001,63.949121093749994],[38.0622070312501,64.09101562499995],[37.953710937500006,64.32011718749999],[37.183691406250006,64.40849609375007],[36.6242187500001,64.75053710937502],[36.534570312499994,64.93862304687497],[36.88281249999997,65.17236328124997],[39.7580078125001,64.57705078125002],[40.05781250000004,64.77075195312497],[40.44492187500006,64.7787109375],[39.7980468750001,65.349853515625],[39.816503906250006,65.59794921874999],[41.4757812500001,66.12343750000002],[42.21054687500006,66.51967773437502],[43.23320312500002,66.41552734375003],[43.653125,66.2509765625],[43.54189453125005,66.12338867187503],[43.84375,66.14238281249999],[44.10439453125005,66.00859374999999],[44.42929687500006,66.93774414062503],[43.7824218750001,67.25449218749998],[44.20468750000006,68.25375976562498],[43.33320312500004,68.67338867187502],[44.04804687500004,68.54882812499997],[45.891992187499994,68.47968750000001],[46.69042968750003,67.84882812500001],[45.52871093750005,67.75756835937497],[44.90214843750002,67.41313476562505],[45.56220703125004,67.18559570312507],[45.88535156250006,66.89106445312501],[46.4923828125001,66.80019531249997],[47.65585937500006,66.97592773437498],[47.87470703125004,67.58417968749998],[48.83320312500004,67.681494140625],[48.75429687500005,67.89594726562501],[49.15527343750003,67.87041015625005],[51.994726562500006,68.53876953124995],[52.3966796875001,68.35170898437505],[52.72265624999997,68.484033203125],[52.34404296875002,68.60815429687497],[53.80195312500004,68.99589843750002],[54.49121093750003,68.992333984375],[53.797656250000074,68.90747070312503],[53.9308593750001,68.43554687499997],[53.260546875000074,68.26748046875002],[54.476171875,68.29414062499995],[54.86132812500003,68.20185546874998],[55.418066406250006,68.56782226562501],[56.04365234375004,68.64887695312501],[57.126855468749994,68.55400390625005],[58.17304687500004,68.88974609375006],[59.0573242187501,69.00605468750004],[59.37050781250005,68.73837890625003],[59.09902343750005,68.4443359375],[59.725683593750006,68.35161132812502],[59.89599609374997,68.70634765624999],[60.489160156249994,68.72895507812498],[60.93359374999997,68.98676757812501],[60.17060546875004,69.59091796875],[60.90908203125005,69.84711914062495],[64.19042968750003,69.53466796875],[64.89628906250002,69.247802734375],[67.00244140625003,68.87358398437505],[68.37119140625006,68.31425781250005],[69.14052734375005,68.95063476562501],[68.54277343750002,68.96708984374999],[68.00585937499997,69.48002929687505],[67.62412109375,69.58442382812501],[67.06445312500003,69.69370117187498],[66.89667968750004,69.55380859374998],[67.28476562500006,70.73872070312498],[67.14335937500002,70.83754882812502],[66.70224609375006,70.81850585937497],[66.63964843749997,71.08139648437498],[68.2692382812501,71.68281250000001],[69.61181640625003,72.98193359375],[69.73828124999997,72.88496093749998],[71.5001953125001,72.91367187500003],[72.812109375,72.69140624999997],[72.57412109375,72.01254882812506],[71.86728515625,71.457373046875],[72.70449218750005,70.96323242187498],[72.5767578125,68.96870117187498],[73.59169921875005,68.48188476562501],[73.13945312500002,68.18134765624998],[73.06679687500005,67.766943359375],[71.84746093750002,67.00761718750005],[71.36523437500003,66.96152343749998],[71.53955078125003,66.68310546875],[70.72490234375007,66.51943359374997],[70.38281249999997,66.60249023437501],[70.69072265625002,66.74531249999998],[70.2833984375001,66.68579101562503],[69.8771484375001,66.84545898437506],[69.21777343749997,66.82861328125],[69.01347656250002,66.78833007812503],[69.19433593749997,66.57866210937505],[70.33945312500006,66.34238281250006],[71.35800781250006,66.35942382812505],[71.91699218749997,66.24672851562502],[72.32158203125002,66.33212890625],[72.4173828125,66.56079101562506],[73.79208984375,66.99531250000001],[74.07451171875007,67.41411132812499],[74.76953124999997,67.76635742187497],[74.39140625000007,68.42060546874995],[74.57958984375003,68.751220703125],[76.10751953125006,68.975732421875],[76.45917968750004,68.97827148437497],[77.2384765625001,68.46958007812498],[77.17441406250012,67.77851562499998],[77.77158203125006,67.57026367187501],[78.92246093750006,67.58911132812503],[77.58828125000005,67.75190429687498],[77.66484375000002,68.19038085937495],[77.99511718749997,68.25947265624998],[77.65068359375007,68.90302734375001],[76.00097656249997,69.23505859374998],[75.42001953125,69.23862304687498],[74.81484375,69.09057617187503],[73.83603515625006,69.143212890625],[73.578125,69.80297851562503],[74.34335937500006,70.57871093749998],[73.08623046875007,71.44492187500006],[73.67177734375,71.84506835937503],[74.99218749999997,72.14482421874999],[74.78681640625004,72.811865234375],[75.15244140625,72.85273437499998],[75.74140625000004,72.29624023437503],[75.273828125,71.95893554687495],[75.33203125000003,71.34174804687498],[76.92900390625002,71.12788085937504],[77.58964843750007,71.16791992187501],[78.32060546875002,70.93041992187503],[78.94218750000002,70.93378906250001],[79.08388671875,71.00200195312505],[78.58769531250007,70.993896484375],[78.21259765625004,71.26630859374998],[76.43339843750002,71.55249023437503],[76.03242187500004,71.91040039062503],[76.87138671875002,72.03300781250005],[77.77753906250004,71.83642578125006],[78.23242187500003,71.95229492187502],[78.01640625000007,72.092041015625],[77.49287109375004,72.07172851562504],[77.47158203125,72.19213867187506],[78.22539062500007,72.37744140625006],[79.4220703125001,72.38076171875002],[80.7625,72.08916015625002],[81.66162109374997,71.71596679687502],[82.75781250000003,71.76411132812498],[83.23359375000004,71.66816406249995],[82.32285156250006,71.26000976562503],[82.16318359375012,70.59814453125003],[82.22119140625003,70.39570312499998],[82.86914062499997,70.95483398437503],[83.03017578125,70.58051757812498],[82.6823242187501,70.21772460937498],[83.0807617187501,70.09301757812497],[83.07382812500012,70.276708984375],[83.73593750000006,70.54648437499998],[83.15126953125005,71.10361328124998],[83.534375,71.68393554687498],[83.20029296875012,71.87470703125004],[82.64541015625005,71.92524414062504],[82.09365234375,72.26542968750005],[80.82705078125005,72.48828124999997],[80.84160156250007,72.94916992187498],[80.4245117187501,73.23115234374998],[80.5832031250001,73.56845703125003],[85.20058593750005,73.72153320312506],[86.89296875,73.88710937500002],[85.79257812500012,73.438330078125],[86.67705078125002,73.10678710937503],[85.93896484374997,73.45649414062495],[87.12011718750003,73.61503906250002],[87.57119140625,73.81074218750001],[86.57109375000007,74.24375],[86.0013671875,74.316015625],[86.39580078125007,74.45009765624997],[86.89794921874997,74.32534179687497],[87.22968750000004,74.3638671875],[85.79101562499997,74.6451171875],[86.20126953125006,74.81621093750005],[86.65146484375012,74.68242187500005],[87.04179687500007,74.77885742187499],[87.46757812500002,75.01323242187505],[86.93906250000006,75.06811523437503],[87.00595703125012,75.16982421874997],[87.67138671874997,75.12958984375004],[90.18496093750005,75.59106445312497],[94.07519531249997,75.91289062499999],[92.89042968750002,75.90996093750002],[93.25927734375003,76.09877929687502],[95.57871093750012,76.13730468749998],[96.07548828125007,76.08198242187498],[95.65332031250003,75.89218750000003],[96.50859375000002,76.00556640624995],[96.49707031249997,75.89121093750003],[98.66201171875005,76.24267578125003],[99.77041015625,76.02875976562498],[99.5407226562501,75.79858398437497],[99.85136718750007,75.93027343749998],[99.8253906250001,76.13593749999995],[98.80566406250003,76.48066406250004],[100.84375,76.52519531250005],[101.59775390625006,76.43920898437503],[100.92802734375002,76.55673828124998],[100.98994140625004,76.99047851562497],[102.61015625000007,77.508544921875],[104.01455078125,77.73041992187501],[106.05957031249997,77.39052734375002],[104.20244140625002,77.101806640625],[106.9416015625001,77.034375],[107.42978515625006,76.92656250000002],[106.41357421874997,76.51225585937499],[107.72216796875003,76.52231445312498],[108.18164062500003,76.73784179687502],[111.39248046875,76.686669921875],[112.09394531250004,76.48032226562506],[111.94267578125002,76.38046875000003],[112.61953125,76.38354492187506],[112.65625,76.05356445312498],[113.2726562500001,76.25166015625001],[113.5638671875,75.89165039062502],[113.85722656250007,75.92128906250002],[113.56757812500004,75.56840820312499],[112.45302734375,75.83017578125003],[112.95566406250006,75.571923828125],[113.24296875000007,75.61142578125003],[113.72617187500012,75.45063476562498],[112.92490234375012,75.01503906249997],[109.84033203124997,74.32197265624998],[109.8102539062501,74.16918945312503],[108.19951171875002,73.69409179687497],[107.27109375000006,73.62104492187501],[106.67939453125004,73.3306640625],[106.1886718750001,73.3080078125],[105.14394531250005,72.77705078125001],[105.7082031250001,72.836669921875],[106.47792968750005,73.13940429687503],[107.750390625,73.17314453125007],[109.33105468749997,73.48745117187497],[109.85527343750002,73.47246093750002],[110.86816406249997,73.73071289062497],[109.70673828125004,73.74375],[110.2614257812501,74.01743164062503],[111.05625,73.93935546875002],[111.13085937500003,74.05283203125003],[111.55058593750007,74.02851562499998],[111.22812500000012,73.96855468750002],[111.40039062500003,73.827734375],[112.14726562500007,73.70893554687498],[112.79541015625003,73.74609375],[112.83593750000003,73.96206054687502],[113.03281250000006,73.91386718750007],[113.4162109375001,73.647607421875],[113.15693359375004,73.45957031249998],[113.49091796875004,73.34609375000002],[113.12783203125,72.8306640625],[113.66455078124997,72.63452148437503],[113.2155273437501,72.80585937500001],[113.88623046875003,73.34580078124998],[113.51035156250012,73.50498046874998],[115.33769531250007,73.70258789062501],[118.87089843750007,73.53789062500002],[118.45703124999997,73.46440429687507],[118.43027343750012,73.24653320312501],[119.750390625,72.97910156250006],[122.26015625,72.88056640624995],[122.75195312500003,72.906494140625],[122.61523437499997,73.02792968750006],[123.1603515625001,72.95488281250002],[123.62226562500004,73.19326171875],[123.49111328125005,73.666357421875],[124.54121093750004,73.75126953125007],[125.59853515625005,73.447412109375],[126.25449218750012,73.548193359375],[126.55253906250007,73.33491210937498],[127.03134765625006,73.54746093750003],[127.74033203125012,73.48154296875],[129.10058593750003,73.11235351562502],[128.5990234375,72.895166015625],[129.01728515625004,72.8724609375],[129.250390625,72.70517578125003],[128.41826171875002,72.53515625000003],[129.28134765625006,72.43769531249998],[129.41064453124997,72.16630859375002],[128.93496093750005,72.07949218750002],[127.8034179687501,72.43403320312504],[127.84140625000012,72.308251953125],[128.91142578125002,71.75532226562495],[129.21025390625007,71.91694335937501],[129.46083984375,71.73930664062499],[128.84326171875003,71.6634765625],[129.76191406250004,71.11953125000002],[130.53710937500003,70.89252929687495],[130.75712890625002,70.96235351562498],[131.02158203125006,70.74609374999997],[132.0353515625001,71.24404296875],[132.65390625000006,71.92597656250001],[133.6888671875,71.434228515625],[134.70273437500012,71.38681640625003],[135.55917968750006,71.6103515625],[136.09033203125003,71.61958007812501],[137.9396484375001,71.1333984375],[137.84404296875007,71.22680664062503],[138.31406250000006,71.32553710937498],[137.918359375,71.38408203124999],[138.23417968750007,71.596337890625],[138.78017578125,71.62900390624998],[139.209375,71.44477539062501],[139.98417968750007,71.49150390625005],[139.72294921875002,71.88496093749998],[139.35927734375005,71.95136718750001],[140.18769531250004,72.19130859374997],[139.17636718750006,72.16347656249997],[139.14082031250004,72.32973632812502],[139.60117187500012,72.49609374999997],[141.07929687500004,72.5869140625],[140.80820312500006,72.89096679687503],[142.06142578125005,72.72080078125],[146.25292968749997,72.442236328125],[146.234765625,72.34970703125],[144.77636718749997,72.38227539062495],[144.16923828125002,72.25878906250003],[144.29492187499997,72.19262695312497],[146.83183593750007,72.29541015625003],[146.11328125000003,71.94497070312497],[146.23027343750007,72.1375],[145.75859375000007,72.22587890624999],[145.75673828125005,71.94130859375002],[145.06396484374997,71.92607421875002],[145.18857421875012,71.69580078125],[146.07324218749997,71.80834960937503],[147.26181640625006,72.327880859375],[149.50156250000012,72.16430664062497],[150.01689453125002,71.89565429687505],[149.04873046875005,71.79575195312503],[148.9681640625,71.69047851562499],[150.59980468750004,71.5201171875],[150.09765624999997,71.22656249999997],[150.96777343749997,71.38046874999998],[151.58242187500005,71.28696289062503],[152.09277343749997,71.02329101562503],[151.76201171875002,70.98247070312499],[152.50878906250003,70.83447265625003],[156.68457031250003,71.09375],[158.03701171875005,71.03925781250001],[159.35068359375006,70.79072265625001],[160.00644531250006,70.30966796875006],[159.72939453125005,69.87021484375006],[160.91074218750012,69.60634765625002],[161.03554687500005,69.09819335937507],[161.30986328125007,68.98227539062498],[160.85605468750006,68.53833007812506],[161.565625,68.90517578125],[161.53691406250002,69.379541015625],[162.16601562499997,69.61157226562503],[163.20136718750004,69.71474609375],[166.82031250000003,69.49956054687505],[167.8568359375,69.72822265624998],[168.30302734375002,69.27148437500003],[169.31064453125006,69.07954101562498],[169.60986328124997,68.78603515624997],[170.53759765624997,68.82539062500001],[170.99541015625002,69.04531250000005],[170.58222656250004,69.58334960937506],[170.16093750000007,69.62656249999998],[170.48681640625003,70.107568359375],[173.27744140625006,69.823828125],[173.43867187500004,69.94682617187502],[175.92148437500012,69.89531250000002],[179.27265624999998,69.25966796875002],[180,68.98344726562505],[180,65.06723632812498],[178.51953125000003,64.60297851562498],[177.7486328125,64.71704101562503],[176.88085937499997,65.08193359375002],[176.34101562500015,65.04731445312501],[177.03730468750004,64.99965820312497],[177.22285156250004,64.861669921875],[177.06875,64.78666992187502],[176.06113281250012,64.96088867187498],[174.54882812500009,64.68388671875005],[176.0565429687501,64.90473632812498],[176.35097656250005,64.70512695312502],[176.14091796875007,64.58583984375005],[177.42744140625015,64.76337890624998],[177.43291015625002,64.44448242187502],[177.6875,64.30473632812507],[178.04472656250013,64.21958007812503],[178.22949218749991,64.36440429687497],[178.38144531250018,64.26088867187502],[178.73144531250003,63.667089843750006],[178.44042968750009,63.605566406250006],[178.74404296874994,63.39477539062503],[178.79296874999997,63.54033203125002],[179.38857421875,63.14721679687497],[179.25957031250002,63.00830078125],[179.5705078125001,62.6875],[179.12070312500012,62.32036132812499],[177.292578125,62.59902343750002],[177.33896484375006,62.781347656250034],[177.02353515625012,62.777246093749994],[177.15947265625007,62.56098632812498],[174.51435546875015,61.823632812499966],[173.6234375,61.716064453125],[173.13183593749997,61.40664062500002],[172.85654296875006,61.469189453124955],[172.90800781250002,61.311621093750006],[172.39609375000006,61.16738281250002],[172.39277343750004,61.061767578125],[170.60820312500007,60.434912109375034],[170.3509765625,59.965527343749955],[169.9826171875001,60.067089843749955],[169.2267578125001,60.59594726562497],[168.1375,60.57392578125001],[167.22675781250004,60.406298828125045],[166.27304687500012,59.85625],[166.13603515625007,59.979345703125034],[166.35214843750006,60.48481445312498],[165.08457031250006,60.09858398437498],[164.95371093750006,59.843603515625006],[164.52529296875,60.06127929687503],[164.11328125000003,59.89755859374998],[164.13505859375002,59.984375],[163.74384765625004,60.02802734374998],[163.36484375000012,59.78144531250004],[163.27285156250005,59.302587890625006],[162.14160156249997,58.44741210937502],[161.96005859375012,58.07690429687506],[162.39140625000002,57.717236328124955],[162.65429687499997,57.94824218750003],[163.22578125000004,57.790380859375034],[162.77929687500003,57.35761718749998],[162.79111328125012,56.875390624999966],[162.92207031250004,56.72265625000003],[163.2565429687501,56.68803710937499],[163.33554687500012,56.232519531250006],[163.04736328125003,56.044677734375],[162.84033203125003,56.065625],[162.628125,56.232275390625034],[163.03837890625002,56.521875],[162.67148437500006,56.49008789062498],[162.52822265625005,56.260693359374955],[162.08496093749997,56.08964843750002],[161.72392578125002,55.49614257812499],[162.10556640625006,54.75214843750004],[161.62480468750002,54.51625976562502],[160.77265625000004,54.54135742187498],[160.0744140625001,54.18916015625001],[159.84375,53.78364257812498],[160.02509765625004,53.129589843749955],[159.58593750000003,53.237695312499966],[158.74541015625002,52.90893554687506],[158.47207031250005,53.032373046874966],[158.6087890625,52.873632812500034],[158.49316406249997,52.383154296875034],[158.10351562500003,51.80961914062499],[156.84746093750002,51.006591796875],[156.74775390625004,50.969287109375045],[156.52119140625004,51.38027343750002],[156.36474609374997,52.509375],[156.11035156250003,52.86616210937504],[155.62031250000004,54.86455078125002],[155.5548828125001,55.348486328125034],[155.98251953125012,56.69521484375002],[156.8488281250001,57.290185546874994],[156.97675781250004,57.46630859375],[156.82988281250007,57.77963867187498],[157.4503906250001,57.79926757812498],[157.66640625000005,58.01977539062506],[158.27519531250007,58.00898437499998],[159.21064453125004,58.519433593749966],[159.8473632812501,59.127148437499955],[161.75351562500012,60.15229492187501],[162.06816406250002,60.466406250000034],[163.70996093749997,60.916796875000045],[163.55351562500002,61.02563476562503],[164.00546875000006,61.34379882812499],[163.80439453125004,61.46137695312498],[164.20722656250004,62.29223632812506],[164.59833984375004,62.470556640625034],[165.20810546875012,62.37397460937501],[165.41738281250005,62.447070312500045],[164.418359375,62.704638671875045],[163.33173828125004,62.550927734374994],[163.01767578125006,61.89106445312504],[163.25781249999997,61.69946289062497],[163.08525390625002,61.570556640625],[162.85595703125003,61.705029296874955],[162.39257812500003,61.662109375],[160.76660156249997,60.753320312499966],[160.17363281250002,60.638427734375],[160.37890625000003,61.02548828124998],[159.79042968750005,60.956640625],[160.309375,61.894384765625006],[159.55234375000012,61.71948242187497],[159.18925781250007,61.92939453125001],[158.07011718750002,61.75361328125001],[157.46933593750012,61.798925781250006],[157.0841796875001,61.67568359375002],[155.71611328125002,60.682373046875],[154.97080078125012,60.376660156249955],[154.29306640625006,59.833349609375034],[154.1498046875,59.52851562500001],[154.97128906250006,59.44960937500002],[155.16044921875002,59.19013671875001],[154.45800781250003,59.21655273437497],[154.01093750000004,59.075537109375006],[153.69521484375005,59.22475585937505],[153.36113281250002,59.214794921874955],[152.81787109375003,58.92626953124997],[152.31962890625002,59.03076171875003],[152.08789062499997,58.910449218750045],[151.32675781250006,58.875097656250034],[151.12109375000003,59.08251953125003],[152.26064453125,59.22358398437498],[151.34824218750012,59.561132812500006],[150.4835937500001,59.494384765625],[150.66728515625002,59.55634765625001],[149.64257812499997,59.770410156249994],[149.06523437500002,59.63051757812502],[149.20498046875,59.488183593749966],[148.79707031250004,59.532324218750006],[148.74414062499997,59.37353515624997],[148.96464843750007,59.36914062499997],[148.72666015625006,59.257910156250034],[148.25742187500006,59.414208984374994],[147.51445312500002,59.2685546875],[146.53720703125006,59.45698242187501],[146.0495117187501,59.17055664062502],[145.55458984375,59.413525390624955],[143.19218750000002,59.3701171875],[142.58027343750004,59.240136718749966],[140.79023437500004,58.30346679687503],[140.446875,57.81367187499998],[138.66210937500003,56.96552734375004],[137.69150390625006,56.13935546875004],[135.2625,54.94331054687498],[135.25771484375005,54.73149414062499],[135.85156249999997,54.583935546874955],[136.797265625,54.62099609375005],[136.71884765625006,53.804101562499994],[137.15537109375012,53.82167968750002],[137.14160156249997,54.182226562500006],[137.66601562500003,54.283300781250006],[137.3392578125,54.10053710937498],[137.83476562500002,53.94672851562498],[137.25371093750007,53.546142578125],[137.95048828125007,53.60356445312499],[138.52792968750012,53.959863281249994],[138.56914062500002,53.818798828124955],[138.24970703125004,53.524023437500034],[138.45068359375003,53.53701171875002],[138.69941406250004,53.869726562500034],[138.65722656249997,54.29833984375003],[139.31972656250005,54.19296874999998],[139.707421875,54.27714843749999],[140.68759765625012,53.59643554687503],[141.3737304687501,53.29277343749999],[141.18125,53.01528320312505],[140.83964843750002,53.087890625],[141.25585937499997,52.84013671874996],[141.13242187500006,52.435693359374994],[141.48525390625,52.17851562500002],[141.36689453125004,51.92065429687506],[140.93261718750003,51.61992187499999],[140.5208984375,50.80019531250005],[140.62451171874997,50.08242187500002],[140.46269531250002,49.911474609375006],[140.51718750000012,49.59614257812498],[140.17060546875004,48.52368164062497],[138.58681640625005,47.057226562500006],[138.33691406250003,46.543408203124955],[137.68544921875,45.81835937500003],[136.14228515625004,44.489111328125034],[135.87460937500012,44.37353515625003],[135.1310546875001,43.52573242187506],[134.01044921875004,42.94746093750001],[133.15996093750007,42.69697265624998],[132.70898437500003,42.875830078125006],[132.30380859375006,42.88330078125],[132.30957031249997,43.31352539062499],[131.8666015625,43.09516601562501],[131.93896484374997,43.30195312500004],[131.15830078125012,42.62602539062499],[130.709375,42.656396484374966],[130.8341796875001,42.52294921875006],[130.68730468750007,42.30253906249999]]],[[[107.69550781250004,78.13090820312505],[107.48164062500004,78.057763671875],[106.41552734375003,78.13984375000001],[107.69550781250004,78.13090820312505]]],[[[102.88476562499997,79.25395507812505],[102.4123046875001,78.83544921874997],[103.80078124999997,79.14926757812503],[104.45205078125005,78.880029296875],[105.14599609375003,78.81884765625006],[105.31259765625012,78.49990234375],[104.74179687500012,78.33974609374997],[102.79667968750007,78.18789062500002],[101.20410156249997,78.19194335937505],[99.50029296875002,77.97607421875003],[101.590625,79.350439453125],[102.25126953125002,79.25605468749995],[102.40488281250006,79.43320312499998],[102.88476562499997,79.25395507812505]]],[[[76.24892578125005,79.65107421874995],[77.58896484375012,79.50190429687504],[76.64951171875012,79.493408203125],[76.24892578125005,79.65107421874995]]],[[[92.68349609375005,79.685205078125],[91.37626953125007,79.83549804687505],[91.22929687500007,80.03071289062504],[93.803125,79.904541015625],[92.68349609375005,79.685205078125]]],[[[51.409277343750006,79.94423828125],[50.09140625,79.98056640625003],[50.93632812500002,80.09423828125],[51.409277343750006,79.94423828125]]],[[[59.68886718750005,79.95581054687506],[58.91923828125002,79.98461914062506],[59.54453125000006,80.11884765624995],[59.68886718750005,79.95581054687506]]],[[[97.67451171875004,80.15825195312499],[97.65166015625002,79.76064453125],[98.59648437500002,80.05219726562495],[100.0612304687501,79.77709960937506],[99.68066406250003,79.32333984374998],[99.04179687500007,79.29301757812502],[99.92929687500012,78.96142578124997],[98.41113281250003,78.78779296875004],[95.53105468750007,79.09809570312501],[95.02041015625005,79.05268554687498],[94.21875,79.40234375],[93.07080078124997,79.49531250000001],[94.98730468749997,80.096826171875],[95.28134765625012,80.030517578125],[97.67451171875004,80.15825195312499]]],[[[50.05175781250003,80.07431640625003],[49.55605468750005,80.15893554687503],[49.883691406249994,80.230224609375],[50.05175781250003,80.07431640625003]]],[[[57.07871093750006,80.35092773437498],[56.986914062500006,80.07148437499998],[55.811621093750006,80.08715820312497],[56.02441406250003,80.34130859374997],[57.07871093750006,80.35092773437498]]],[[[53.521386718749994,80.18520507812497],[52.34355468750002,80.213232421875],[52.85390625,80.40239257812499],[53.85166015625006,80.26835937500005],[53.521386718749994,80.18520507812497]]],[[[57.95625,80.12324218749995],[57.33232421875002,80.15810546875005],[57.075,80.49394531249999],[59.25546875000006,80.34321289062501],[58.39794921874997,80.31875],[57.95625,80.12324218749995]]],[[[54.41533203125002,80.47280273437502],[53.811914062499994,80.47622070312502],[53.87724609375002,80.60527343750002],[54.41533203125002,80.47280273437502]]],[[[47.441992187500006,80.853662109375],[48.44570312500005,80.80600585937506],[48.68359375000003,80.63325195312504],[47.7052734375001,80.76518554687499],[46.141406250000074,80.44672851562495],[45.969042968750074,80.56948242187502],[44.9049804687501,80.61127929687501],[47.441992187500006,80.853662109375]]],[[[62.167773437500074,80.83476562500005],[62.07578125000006,80.616943359375],[61.05126953124997,80.418603515625],[60.27832031249997,80.49443359374999],[59.649804687499994,80.43125],[59.59228515625003,80.81650390624998],[62.167773437500074,80.83476562500005]]],[[[50.278125,80.92724609374997],[51.70361328125003,80.68764648437502],[48.81103515625003,80.35371093750001],[48.97753906250003,80.16259765624997],[47.73730468749997,80.08168945312502],[47.89296875000005,80.23925781249997],[46.991015625000074,80.182763671875],[46.644433593749994,80.30034179687507],[47.89580078125002,80.52905273437503],[49.087792968749994,80.515771484375],[49.24433593750004,80.82138671875],[50.278125,80.92724609374997]]],[[[80.02666015625007,80.84814453125003],[79.09853515625005,80.81206054687505],[79.21738281250012,80.96035156249997],[80.27958984375007,80.94980468750003],[80.02666015625007,80.84814453125003]]],[[[61.1408203125001,80.95034179687497],[60.0783203125001,80.99916992187497],[61.45742187499999,81.10395507812501],[61.1408203125001,80.95034179687497]]],[[[54.71894531250004,81.11596679687497],[56.47226562500006,80.99824218749995],[57.58037109375002,80.75546874999998],[55.88339843750006,80.62841796875003],[54.66816406250004,80.73867187500002],[54.04541015624997,80.87197265625],[54.71894531250004,81.11596679687497]]],[[[58.62236328125002,81.04165039062502],[58.930566406249994,80.83168945312497],[58.28564453124997,80.76489257812503],[57.21093749999997,81.01708984374997],[58.04951171875004,81.11845703125002],[58.62236328125002,81.04165039062502]]],[[[63.37382812500002,80.70009765624997],[62.59257812500002,80.85302734375006],[64.80205078125002,81.197265625],[65.43740234375005,80.93071289062507],[63.37382812500002,80.70009765624997]]],[[[91.56718750000007,81.14121093750003],[91.2228515625001,81.063818359375],[89.90117187500002,81.17070312500002],[91.56718750000007,81.14121093750003]]],[[[96.52656250000004,81.0755859375],[97.86992187500007,80.76328125000006],[97.02539062499997,80.53554687500002],[97.29843750000006,80.27275390625005],[93.6546875,80.009619140625],[91.52382812500005,80.35854492187502],[93.2625,80.79125976562497],[92.59257812500007,80.780859375],[92.7103515625,80.87216796875003],[95.1595703125,81.27099609375003],[95.80068359375005,81.28046874999998],[96.52656250000004,81.0755859375]]],[[[57.81025390625004,81.54604492187502],[58.563867187499994,81.41840820312504],[57.858691406250074,81.36806640625],[57.76972656250004,81.16972656249999],[55.71669921875005,81.1884765625],[55.46601562500004,81.31118164062502],[57.81025390625004,81.54604492187502]]],[[[63.65097656250006,81.60932617187501],[62.10644531249997,81.679345703125],[63.709570312500006,81.68730468750002],[63.65097656250006,81.60932617187501]]],[[[58.29541015625003,81.715185546875],[58.13457031250002,81.82797851562498],[59.261816406250006,81.85419921874998],[59.35644531250003,81.75898437499995],[58.29541015625003,81.715185546875]]]]},"properties":{"name":"Russia","childNum":73}},{"geometry":{"type":"Polygon","coordinates":[[[30.50996093750001,-1.067285156250009],[30.47705078125,-1.0830078125],[30.47021484375,-1.131152343750003],[30.508105468750017,-1.208203125000011],[30.631933593750006,-1.367480468750003],[30.710742187500017,-1.396777343750003],[30.76220703125,-1.458691406250011],[30.812597656250006,-1.563085937500006],[30.8765625,-2.143359375],[30.85498046875,-2.265429687500003],[30.828710937500006,-2.338476562500006],[30.7625,-2.371679687500006],[30.71484375,-2.363476562500011],[30.656640625000023,-2.373828125],[30.593359375,-2.396777343750003],[30.553613281250023,-2.400097656250011],[30.408496093750017,-2.31298828125],[30.117285156250006,-2.416601562500006],[29.93017578125,-2.339550781250011],[29.8681640625,-2.71640625],[29.698046875000017,-2.794726562500003],[29.390234375,-2.80859375],[29.10205078125,-2.595703125],[29.01435546875001,-2.72021484375],[28.893945312500023,-2.635058593750003],[28.876367187500023,-2.400292968750009],[29.13154296875001,-2.195117187500003],[29.196582031250017,-1.719921875000011],[29.576953125000017,-1.387890625000011],[29.82539062500001,-1.335546875],[29.930078125000023,-1.469921875000011],[30.360253906250023,-1.074609375],[30.41230468750001,-1.063085937500006],[30.46992187500001,-1.066015625],[30.50996093750001,-1.067285156250009]]]},"properties":{"name":"Rwanda","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[41.98769531250005,16.715625],[42.059960937499994,16.803515625000017],[42.15781250000006,16.570703125000023],[41.80156250000002,16.778759765624955],[41.86044921875006,17.002539062499977],[41.98769531250005,16.715625]]],[[[46.53144531250004,29.09624023437499],[47.433203125,28.989550781250017],[47.671289062499994,28.53315429687504],[48.442480468750006,28.542919921874983],[48.80898437499999,27.895898437499966],[48.797167968750074,27.72431640625001],[49.2375,27.49272460937499],[49.17509765625002,27.43764648437505],[49.40527343749997,27.18095703124996],[50.149804687499994,26.66264648437499],[50.00810546875002,26.678515625000017],[50.21386718750003,26.30849609375005],[50.15546875000004,26.100537109374955],[50.03164062499999,26.11098632812505],[50.55791015625002,25.086669921875],[50.66689453125005,24.96381835937501],[50.72558593749997,24.869384765625057],[50.80439453125004,24.789257812499983],[50.928320312500006,24.595117187500023],[50.96601562500004,24.573925781249983],[51.022753906250074,24.56523437499999],[51.09335937500006,24.564648437499955],[51.178027343750074,24.586718750000017],[51.26796875,24.607226562500017],[51.33847656250006,24.564355468749994],[51.41123046875006,24.570800781250057],[51.30986328125002,24.340380859375017],[51.56835937500003,24.286181640625074],[51.592578125000074,24.07885742187503],[52.55507812500005,22.932812499999955],[55.104296875000074,22.621484375000023],[55.185839843750074,22.7041015625],[55.64101562499999,22.001855468749994],[54.97734375000002,19.995947265625006],[51.977636718750006,18.996142578125074],[49.04199218750003,18.58178710937503],[48.17216796875002,18.156933593749983],[47.57958984374997,17.448339843750034],[47.44179687499999,17.111865234375045],[47.14355468749997,16.946679687499966],[46.97568359375006,16.953466796875034],[46.72763671875006,17.26557617187501],[45.5353515625001,17.30205078124999],[45.14804687500006,17.427441406249955],[43.91699218749997,17.32470703124997],[43.41796875000003,17.516259765625023],[43.19091796875003,17.359375],[43.16503906249997,16.689404296874955],[42.79931640624997,16.37177734375001],[42.29394531249997,17.434960937499966],[41.75,17.88574218749997],[41.22949218750003,18.678417968749983],[40.75917968750005,19.755468750000034],[40.080664062500006,20.265917968750017],[39.728320312500074,20.390332031249955],[39.27607421875004,20.973974609375034],[39.093554687500074,21.31035156249999],[39.14707031250006,21.518994140624955],[38.98789062500006,21.88173828125005],[39.06201171874997,22.592187500000023],[38.46416015625002,23.71186523437504],[37.91972656250002,24.185400390625063],[37.54306640625006,24.291650390625023],[37.18085937500004,24.82001953125001],[37.26630859375004,24.960058593750034],[37.14882812499999,25.291113281249977],[35.18046875000002,28.03486328125004],[34.722070312499994,28.130664062500017],[34.625,28.064501953125017],[34.95078125,29.353515625],[36.068457031250006,29.200537109375006],[36.28281250000006,29.355371093750023],[36.47607421874997,29.49511718749997],[36.59179687500003,29.666113281250006],[36.703906250000074,29.831640624999977],[36.75527343750005,29.86601562499996],[37.46923828125003,29.995068359374955],[37.49072265625003,30.01171874999997],[37.55361328125005,30.14458007812496],[37.63359375000002,30.313281250000045],[37.64990234374997,30.330957031249994],[37.669726562500074,30.34814453125003],[37.862890625,30.44262695312503],[37.98007812500006,30.5],[37.47900390624997,31.007763671874955],[37.10527343750002,31.35517578125004],[36.95859375000006,31.491503906250017],[37.215625,31.55610351562501],[37.49335937500004,31.625878906250023],[38.111425781250006,31.78115234375005],[38.37548828124997,31.84746093749996],[38.962304687499994,31.99492187499999],[38.99707031249997,32.00747070312505],[39.145410156249994,32.12451171875],[39.36865234374997,32.09174804687498],[39.70410156250003,32.04252929687499],[40.02783203124997,31.995019531249994],[40.3693359375001,31.93896484375003],[40.47890625000005,31.89335937499999],[42.07441406250004,31.08037109374999],[43.77373046875002,29.84921875],[44.71650390625004,29.19360351562503],[46.35644531250003,29.06367187500001],[46.53144531250004,29.09624023437499]]]]},"properties":{"name":"Saudi Arabia","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[36.87138671875002,21.996728515624994],[36.92695312500001,21.58652343749999],[37.25859375000002,21.108544921874994],[37.25722656250002,21.03940429687499],[37.15058593750001,21.103759765625],[37.14111328125,20.98178710937499],[37.19316406250002,20.12070312499999],[37.471289062500006,18.820117187500003],[38.609472656250006,18.005078125],[38.422460937500006,17.823925781249997],[38.39716796875001,17.778369140625003],[38.38554687500002,17.751269531250003],[38.37373046875001,17.717333984375003],[38.34736328125001,17.68359375],[38.28984375000002,17.637011718750003],[38.26728515625001,17.61669921875],[38.253515625,17.584765625],[37.78242187500001,17.4580078125],[37.547460937500006,17.324121093749994],[37.51015625000002,17.288134765625003],[37.45292968750002,17.108691406250003],[37.41103515625002,17.06171875],[37.24882812500002,17.056884765625],[37.16953125,17.04140625],[37.0615234375,17.061279296875],[37.00898437500001,17.058886718750003],[36.995214843750006,17.020556640625003],[36.97578125000001,16.86655273437499],[36.97871093750001,16.800585937500003],[36.887792968750006,16.624658203124994],[36.91376953125001,16.296191406250003],[36.566015625,15.362109375],[36.4267578125,15.132080078125],[36.44814453125002,14.940087890624994],[36.470800781250006,14.736474609374994],[36.52431640625002,14.2568359375],[36.12519531250001,12.75703125],[35.67021484375002,12.623730468749997],[35.1123046875,11.816552734374994],[34.93144531250002,10.864794921874989],[34.77128906250002,10.746191406249991],[34.571875,10.880175781249989],[34.34394531250001,10.658642578124997],[34.31123046875001,10.190869140624997],[34.078125,9.461523437499991],[33.87148437500002,9.506152343749989],[33.96328125000002,9.861767578124997],[33.90703125000002,10.181445312499989],[33.13007812500001,10.745947265624991],[33.073339843750006,11.606103515624994],[33.199316406250006,12.21728515625],[32.721875,12.223095703124997],[32.73671875000002,12.009667968749994],[32.072265625,12.006738281249994],[32.338476562500006,11.710107421874994],[32.42080078125002,11.089111328125],[31.224902343750017,9.799267578124997],[30.75537109375,9.731201171875],[30.003027343750006,10.277392578124989],[29.60546875,10.065087890624994],[29.47314453125,9.768603515624989],[28.979589843750006,9.594189453124997],[28.844531250000017,9.326074218749994],[28.048925781250006,9.32861328125],[27.880859375,9.601611328124989],[27.07421875,9.613818359374989],[26.65869140625,9.484130859375],[25.91914062500001,10.169335937499994],[25.858203125000017,10.406494140625],[25.211718750000017,10.329931640624991],[25.066992187500006,10.293798828124991],[24.785253906250006,9.774658203125],[24.53193359375001,8.886914062499997],[24.147363281250023,8.665625],[23.53730468750001,8.815820312499994],[23.46826171875,9.11474609375],[23.62265625,9.340625],[23.646289062500017,9.822900390624994],[22.86005859375001,10.919677734375],[22.922656250000017,11.344873046874994],[22.591113281250017,11.579882812499989],[22.580957031250023,11.990136718749994],[22.472460937500017,12.067773437499994],[22.352343750000017,12.660449218749989],[21.928125,12.678125],[21.825292968750006,12.79052734375],[22.228125,13.32958984375],[22.1064453125,13.7998046875],[22.53857421875,14.161865234375],[22.38154296875001,14.550488281249997],[22.6708984375,14.722460937500003],[22.93232421875001,15.162109375],[22.933886718750017,15.533105468749994],[23.10517578125001,15.702539062499994],[23.970800781250006,15.721533203124991],[23.980273437500017,19.496630859375003],[23.980273437500017,19.99594726562499],[24.9794921875,20.002587890624994],[24.980273437500017,21.995849609375],[28.036425781250017,21.995361328125],[31.092675781250023,21.994873046875],[31.260644531250023,22.00229492187499],[31.400292968750023,22.202441406250003],[31.486132812500017,22.14780273437499],[31.434472656250023,21.995849609375],[36.87138671875002,21.996728515624994]]]},"properties":{"name":"Sudan","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[34.078125,9.461523437499991],[34.07275390625,8.545263671874991],[33.95332031250001,8.443505859374994],[33.28105468750002,8.437255859375],[32.99892578125002,7.899511718749991],[33.902441406250006,7.509521484375],[34.06425781250002,7.225732421874994],[34.71064453125001,6.660302734374994],[34.98359375000001,5.858300781249994],[35.26835937500002,5.492285156249991],[35.08447265625,5.311865234374991],[34.87832031250002,5.109570312499997],[34.63984375000001,4.87548828125],[34.38017578125002,4.620654296874989],[34.176855468750006,4.419091796874994],[33.97607421875,4.22021484375],[33.74160156250002,3.985253906249994],[33.568457031250006,3.81171875],[33.489355468750006,3.755078125],[32.99726562500001,3.880175781249989],[32.33574218750002,3.706201171874994],[32.13593750000001,3.519726562499997],[31.79804687500001,3.802636718749994],[31.547167968750017,3.677587890624991],[31.15234375,3.785595703124997],[30.83857421875001,3.49072265625],[30.757226562500023,3.62421875],[30.586718750000017,3.62421875],[30.50830078125,3.835693359375],[30.194921875,3.98193359375],[29.676855468750006,4.5869140625],[29.469628906250023,4.61181640625],[29.224902343750017,4.391894531249989],[28.72705078125,4.504980468749991],[28.427539062500017,4.324169921874997],[28.19208984375001,4.350244140624994],[27.7880859375,4.644677734374994],[27.4033203125,5.109179687499989],[27.143945312500023,5.722949218749989],[26.514257812500006,6.069238281249994],[26.30859375,6.455322265625],[26.36181640625,6.635302734374989],[25.27890625,7.427490234375],[25.18134765625001,7.557226562499991],[25.20039062500001,7.807910156249989],[24.853320312500017,8.137548828124991],[24.291406250000023,8.29140625],[24.147363281250023,8.665625],[24.53193359375001,8.886914062499997],[24.785253906250006,9.774658203125],[25.066992187500006,10.293798828124991],[25.211718750000017,10.329931640624991],[25.858203125000017,10.406494140625],[25.91914062500001,10.169335937499994],[26.65869140625,9.484130859375],[27.07421875,9.613818359374989],[27.880859375,9.601611328124989],[28.048925781250006,9.32861328125],[28.844531250000017,9.326074218749994],[28.979589843750006,9.594189453124997],[29.47314453125,9.768603515624989],[29.60546875,10.065087890624994],[30.003027343750006,10.277392578124989],[30.75537109375,9.731201171875],[31.224902343750017,9.799267578124997],[32.42080078125002,11.089111328125],[32.338476562500006,11.710107421874994],[32.072265625,12.006738281249994],[32.73671875000002,12.009667968749994],[32.721875,12.223095703124997],[33.199316406250006,12.21728515625],[33.073339843750006,11.606103515624994],[33.13007812500001,10.745947265624991],[33.90703125000002,10.181445312499989],[33.96328125000002,9.861767578124997],[33.87148437500002,9.506152343749989],[34.078125,9.461523437499991]]]},"properties":{"name":"S. Sudan","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-12.280615234374977,14.809033203124997],[-12.228417968749994,14.45859375],[-12.019189453124994,14.206494140624997],[-11.960888671874983,13.875292968750003],[-12.05419921875,13.633056640625],[-11.831689453124994,13.315820312499994],[-11.634960937499983,13.369873046875],[-11.390380859375,12.941992187499991],[-11.389404296875,12.404394531249991],[-12.399072265624994,12.340087890625],[-12.930712890624989,12.532275390624989],[-13.061279296875,12.489990234375],[-13.082910156249994,12.633544921875],[-13.729248046875,12.673925781249991],[-14.06484375,12.67529296875],[-14.349218749999977,12.676416015624994],[-15.196093749999989,12.679931640625],[-15.3779296875,12.588964843749991],[-15.574804687499977,12.490380859374994],[-15.839550781249983,12.43789062499999],[-16.144189453124994,12.45742187499999],[-16.24150390624999,12.443310546874997],[-16.41630859374999,12.36767578125],[-16.521337890624977,12.3486328125],[-16.656933593749983,12.364355468749991],[-16.711816406249994,12.354833984374991],[-16.76030273437499,12.52578125],[-16.44287109375,12.609472656249991],[-16.59765625,12.715283203124997],[-16.743896484375,12.58544921875],[-16.763330078124994,13.064160156249997],[-16.648779296874977,13.154150390624991],[-15.834277343749989,13.156445312499997],[-15.814404296874983,13.325146484374997],[-15.286230468749977,13.39599609375],[-15.151123046875,13.556494140624991],[-14.246777343749983,13.23583984375],[-13.826708984374989,13.4078125],[-13.977392578124977,13.54345703125],[-14.405468749999983,13.503710937500003],[-15.108349609374983,13.81210937499999],[-15.426855468749977,13.727001953124997],[-15.509667968749994,13.586230468750003],[-16.56230468749999,13.587304687499994],[-16.766943359374977,13.904931640624994],[-16.618115234374983,14.04052734375],[-16.791748046875,14.004150390625],[-17.168066406249977,14.640625],[-17.345800781249977,14.729296875],[-17.445019531249983,14.651611328125],[-17.53564453125,14.755126953125],[-17.147167968749983,14.922021484374994],[-16.843408203124994,15.293994140625003],[-16.570751953124983,15.734423828125003],[-16.535253906249977,15.83837890625],[-16.502050781249977,15.917333984374991],[-16.480078124999977,16.097216796875003],[-16.441015624999977,16.204541015624997],[-16.239013671875,16.531298828125003],[-15.768212890624994,16.485107421875],[-14.990625,16.676904296874994],[-14.300097656249989,16.580273437499997],[-13.868457031249989,16.148144531249997],[-13.756640624999989,16.172509765624994],[-13.40966796875,16.05917968749999],[-13.105273437499989,15.57177734375],[-12.735253906249994,15.13125],[-12.40869140625,14.889013671874991],[-12.280615234374977,14.809033203124997]]]},"properties":{"name":"Senegal","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[103.9697265625,1.331445312499994],[103.65019531249999,1.325537109374991],[103.81796875000003,1.447070312499989],[103.9697265625,1.331445312499994]]]},"properties":{"name":"Singapore","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-37.10332031249996,-54.065625],[-36.70380859375001,-54.10810546874999],[-36.64741210937498,-54.26230468749996],[-36.32646484374996,-54.251171875],[-35.79858398437497,-54.76347656250002],[-36.08549804687499,-54.86679687500001],[-36.885986328125,-54.33945312499996],[-37.63090820312496,-54.16748046875001],[-37.61884765625001,-54.04208984375004],[-38.017431640625034,-54.008007812500026],[-37.10332031249996,-54.065625]]]},"properties":{"name":"S. Geo. and S. Sandw. Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-5.692138671874972,-15.997753906249997],[-5.782519531250017,-16.00400390625002],[-5.707861328124977,-15.90615234374998],[-5.692138671874972,-15.997753906249997]]]},"properties":{"name":"Saint Helena","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[160.57626953125006,-11.797851562500028],[160.44306640625004,-11.814941406249957],[159.98632812499997,-11.494726562500006],[160.57626953125006,-11.797851562500028]]],[[[166.13320312500005,-10.757812499999972],[165.90400390625004,-10.851464843749966],[165.79101562500003,-10.784765624999963],[166.02382812500005,-10.6611328125],[166.13320312500005,-10.757812499999972]]],[[[161.71533203124997,-10.387304687499991],[162.10537109375005,-10.45380859375004],[162.37333984375002,-10.823242187499986],[161.78681640625004,-10.716894531249991],[161.53789062500007,-10.566406249999972],[161.4870117187501,-10.361425781249963],[161.29394531250003,-10.326464843750031],[161.30478515625012,-10.204394531250031],[161.71533203124997,-10.387304687499991]]],[[[161.54785156249997,-9.625683593749997],[161.55380859375012,-9.769726562500026],[161.40976562500006,-9.681640625000028],[161.36416015625,-9.353417968750037],[161.54785156249997,-9.625683593749997]]],[[[159.75039062500005,-9.272656250000011],[159.97060546875,-9.433300781249969],[160.35458984375006,-9.421582031249983],[160.81894531250006,-9.862792968749986],[160.64921875000002,-9.92861328124998],[159.80273437499997,-9.763476562500003],[159.61230468749997,-9.470703124999943],[159.62558593750012,-9.311230468749969],[159.75039062500005,-9.272656250000011]]],[[[160.1681640625001,-8.995507812500037],[160.40751953125007,-9.140332031249969],[160.10537109375,-9.080761718749997],[160.1681640625001,-8.995507812500037]]],[[[159.18857421875006,-9.123535156250014],[159.03632812500004,-9.075],[159.12978515625,-8.99306640624998],[159.22841796875005,-9.029980468749955],[159.18857421875006,-9.123535156250014]]],[[[158.10791015625003,-8.684179687500034],[157.93759765625006,-8.73642578125002],[157.90927734375006,-8.565625],[158.10546874999997,-8.536816406250026],[158.10791015625003,-8.684179687500034]]],[[[157.38896484375002,-8.713476562499963],[157.2123046875,-8.565039062500006],[157.37949218750012,-8.420898437499943],[157.38896484375002,-8.713476562499963]]],[[[160.7494140625,-8.313964843750014],[160.99765625000006,-8.612011718749983],[160.94433593750003,-8.799023437499983],[161.15869140624997,-8.961816406250009],[161.36738281250004,-9.61123046874998],[160.77207031250012,-8.963867187499986],[160.7140625000001,-8.539257812499997],[160.59042968750006,-8.372753906249997],[160.7494140625,-8.313964843750014]]],[[[157.76347656250002,-8.242187499999957],[157.89843749999997,-8.506347656249943],[157.81933593750003,-8.612011718749983],[157.58789062500003,-8.445410156249963],[157.5580078125,-8.269921875],[157.30244140625004,-8.33330078124996],[157.21757812500002,-8.262792968749977],[157.490625,-7.965722656250037],[157.76347656250002,-8.242187499999957]]],[[[157.171875,-8.108105468749997],[156.95830078125002,-8.014355468749997],[157.02412109375004,-7.867871093749997],[157.18613281250006,-7.941210937500017],[157.171875,-8.108105468749997]]],[[[156.687890625,-7.92304687500004],[156.5109375000001,-7.707812499999974],[156.5609375,-7.574023437499989],[156.80908203124997,-7.722851562500026],[156.687890625,-7.92304687500004]]],[[[159.8791015625001,-8.534277343749949],[158.9440429687501,-8.04072265625004],[158.457421875,-7.544726562499974],[158.734375,-7.604296875000031],[159.43144531250002,-8.029003906249955],[159.84306640625002,-8.326953124999989],[159.8791015625001,-8.534277343749949]]],[[[155.83984374999997,-7.097167968750014],[155.67753906250002,-7.08896484375002],[155.73896484375004,-6.972949218750017],[155.83984374999997,-7.097167968750014]]],[[[157.48671875000005,-7.330371093750003],[157.44130859375,-7.425683593749966],[157.10156249999997,-7.323632812499966],[156.4525390625,-6.638281249999963],[157.03027343750003,-6.891992187499952],[157.19335937499997,-7.160351562499997],[157.48671875000005,-7.330371093750003]]]]},"properties":{"name":"Solomon Is.","childNum":16}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-12.526074218749926,7.436328125000017],[-12.951611328124926,7.570849609374989],[-12.615234374999972,7.63720703125],[-12.5125,7.582421875000037],[-12.526074218749926,7.436328125000017]]],[[[-10.758593749999989,9.385351562499991],[-10.682714843750006,9.289355468749974],[-10.687646484374937,9.261132812499994],[-10.749951171874926,9.12236328124996],[-10.747021484374955,9.095263671875045],[-10.726855468749932,9.081689453125023],[-10.615966796875,9.059179687499977],[-10.500537109375017,8.687548828125017],[-10.677343749999977,8.400585937499997],[-10.712109374999955,8.335253906250017],[-10.686962890624983,8.321679687500009],[-10.652636718749989,8.330273437499983],[-10.604003906249943,8.319482421874994],[-10.55771484374992,8.315673828125028],[-10.496435546874977,8.362109374999974],[-10.394433593749966,8.480957031250028],[-10.360058593749983,8.49550781249998],[-10.283203124999972,8.48515625],[-10.285742187499949,8.454101562499986],[-10.314648437499983,8.310839843750017],[-10.359814453124926,8.187939453125026],[-10.570849609374932,8.071142578125034],[-10.6474609375,7.759375],[-10.878076171874994,7.538232421874994],[-11.267675781249977,7.232617187499997],[-11.507519531249983,6.906542968750003],[-12.48564453124996,7.386279296875045],[-12.480273437499932,7.75327148437502],[-12.697607421874977,7.715869140625045],[-12.850878906249932,7.818701171875034],[-12.956933593749966,8.145312500000045],[-13.148974609374989,8.214599609375043],[-13.272753906249989,8.429736328124989],[-13.085009765624932,8.42475585937504],[-12.894091796874932,8.62978515624998],[-13.181835937499955,8.576904296875043],[-13.206933593749994,8.843115234375006],[-13.059472656249966,8.881152343750031],[-13.292675781249955,9.04921875],[-13.077294921874966,9.069628906249974],[-12.958789062499989,9.263330078124994],[-12.755859374999943,9.373583984374989],[-12.557861328125,9.704980468749994],[-12.427978515625028,9.898144531250011],[-12.142333984375,9.87539062499999],[-11.911083984374955,9.993017578124977],[-11.273632812499955,9.996533203124983],[-11.205664062499949,9.977734374999969],[-11.180859374999955,9.925341796875045],[-11.047460937499977,9.786328125000054],[-10.758593749999989,9.385351562499991]]]]},"properties":{"name":"Sierra Leone","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-89.36259765624999,14.416015625],[-89.1205078125,14.370214843749991],[-88.51254882812499,13.978955078124997],[-88.504345703125,13.964208984374991],[-88.49765625,13.904541015625],[-88.482666015625,13.854248046875],[-88.44912109375,13.850976562499994],[-88.40849609374999,13.87539062499999],[-88.27622070312499,13.942675781250003],[-88.151025390625,13.987353515625003],[-87.99101562499999,13.879638671875],[-87.8919921875,13.894970703124997],[-87.80224609375,13.889990234374991],[-87.7314453125,13.841064453125],[-87.71533203125,13.812695312499997],[-87.781884765625,13.521386718749994],[-87.930859375,13.1806640625],[-88.68564453124999,13.281494140625],[-88.51201171874999,13.183935546874991],[-89.80419921875,13.560107421875003],[-90.09521484375,13.736523437499997],[-90.04814453124999,13.904052734375],[-89.54716796874999,14.241259765625003],[-89.5736328125,14.390087890624997],[-89.36259765624999,14.416015625]]]},"properties":{"name":"El Salvador","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-56.26708984374997,46.838476562500034],[-56.38476562499994,46.81943359375006],[-56.36464843749994,47.09897460937498],[-56.26708984374997,46.838476562500034]]]},"properties":{"name":"St. Pierre and Miquelon","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[6.659960937499989,0.120654296874989],[6.51972656250004,0.066308593750023],[6.468164062499994,0.22734375],[6.68691406250008,0.404394531249977],[6.75,0.24345703124996],[6.659960937499989,0.120654296874989]]],[[[7.423828125,1.567724609375006],[7.330664062500034,1.603369140624991],[7.414453125000051,1.699121093750037],[7.423828125,1.567724609375006]]]]},"properties":{"name":"São Tomé and Principe","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-54.03422851562499,3.62939453125],[-54.00957031249999,3.448535156249989],[-54.06318359375,3.353320312499989],[-54.18803710937499,3.178759765624989],[-54.203125,3.13818359375],[-54.17070312499999,2.993603515624997],[-54.18808593749999,2.874853515624991],[-54.1955078125,2.81787109375],[-54.256738281249994,2.713720703124991],[-54.402001953124994,2.461523437499991],[-54.53593749999999,2.343310546874989],[-54.56840820312499,2.342578124999989],[-54.604736328125,2.335791015624991],[-54.61625976562499,2.326757812499991],[-54.661865234375,2.327539062499994],[-54.697412109374994,2.359814453124997],[-54.72221679687499,2.441650390625],[-54.87607421874999,2.450390625],[-54.92656249999999,2.497363281249989],[-54.968408203124994,2.54833984375],[-54.978662109374994,2.59765625],[-55.005810546875,2.59296875],[-55.0703125,2.54833984375],[-55.11411132812499,2.539208984374994],[-55.1876953125,2.547509765624994],[-55.286035156249994,2.499658203124994],[-55.343994140625,2.48876953125],[-55.38535156249999,2.440625],[-55.73056640624999,2.406152343749994],[-55.957470703125,2.520458984374997],[-55.99350585937499,2.497509765624997],[-56.02036132812499,2.392773437499997],[-56.0451171875,2.364404296874994],[-56.087792968749994,2.34130859375],[-56.12939453125,2.299511718749997],[-56.1376953125,2.259033203125],[-56.073632812499994,2.236767578124997],[-56.02006835937499,2.158154296874997],[-55.96196289062499,2.095117187499994],[-55.91533203124999,2.03955078125],[-55.921630859375,1.976660156249991],[-55.929638671875,1.8875],[-56.01992187499999,1.842236328124997],[-56.4828125,1.942138671875],[-56.704345703125,2.036474609374991],[-57.19736328124999,2.853271484375],[-57.303662109375,3.377099609374994],[-57.646728515625,3.39453125],[-58.05429687499999,4.101660156249991],[-57.84599609374999,4.668164062499997],[-57.91704101562499,4.820410156249991],[-57.711083984374994,4.991064453124991],[-57.331005859375,5.020166015624994],[-57.20981445312499,5.195410156249991],[-57.3185546875,5.335351562499994],[-57.194775390625,5.5484375],[-56.96982421874999,5.992871093749997],[-56.235595703125,5.885351562499991],[-55.897607421874994,5.699316406249991],[-55.909912109375,5.892626953124989],[-55.648339843749994,5.985888671874989],[-54.83369140625,5.988330078124989],[-54.05419921875,5.807910156249989],[-54.08046875,5.502246093749989],[-54.4796875,4.836523437499991],[-54.350732421874994,4.054101562499994],[-54.03422851562499,3.62939453125]]]},"properties":{"name":"Suriname","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[22.538671875,49.072705078125],[22.52412109375001,49.031396484374994],[22.389453125000017,48.873486328125],[22.295214843750017,48.685839843749996],[22.142871093750017,48.568505859374994],[22.1318359375,48.405322265624996],[21.766992187500023,48.3380859375],[21.45136718750001,48.55224609375],[20.490039062500017,48.526904296874996],[20.333789062500017,48.295556640624994],[19.95039062500001,48.146630859374994],[19.625390625000023,48.223095703125],[18.791894531250023,48.000292968749996],[18.72421875,47.787158203124996],[17.76191406250001,47.770166015624994],[17.147363281250023,48.00595703125],[16.86542968750001,48.3869140625],[16.953125,48.598828125],[17.135644531250023,48.841064453125],[17.75849609375001,48.888134765625],[18.0859375,49.06513671875],[18.160937500000017,49.257373046874996],[18.83222656250001,49.510791015624996],[19.1494140625,49.4],[19.44160156250001,49.597705078124996],[19.77392578125,49.37216796875],[19.756640625000017,49.204394531249996],[20.0576171875,49.181298828124994],[20.36298828125001,49.38525390625],[20.868457031250017,49.314697265625],[21.079394531250017,49.418261718749996],[21.6396484375,49.411962890625],[22.020117187500006,49.209521484374996],[22.473046875000023,49.081298828125],[22.538671875,49.072705078125]]]},"properties":{"name":"Slovakia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[16.516210937500006,46.499902343749994],[16.427636718750023,46.5244140625],[16.321191406250023,46.534619140625],[16.1064453125,46.382226562499994],[15.608984375,46.171923828124996],[15.592578125000017,46.139990234375],[15.596875,46.109228515625],[15.675585937500017,45.983691406249996],[15.652148437500017,45.862158203125],[15.277050781250011,45.7326171875],[15.353710937500011,45.659912109375],[15.283593750000023,45.5796875],[15.291210937500011,45.541552734374996],[15.32666015625,45.502294921875],[15.339453125,45.467041015625],[15.242089843750023,45.44140625],[15.110449218750006,45.45078125],[14.95458984375,45.499902343749994],[14.793066406250006,45.47822265625],[14.649511718750006,45.571484375],[14.591796875,45.651269531249994],[14.56884765625,45.6572265625],[14.548448660714302,45.628388671875],[14.507586495535731,45.59039341517857],[14.42734375,45.505761718749994],[14.369921875000017,45.4814453125],[13.878710937500017,45.428369140624994],[13.577929687500017,45.516894531249996],[13.8447265625,45.59287109375],[13.831152343750006,45.680419921875],[13.663476562500023,45.7919921875],[13.6005859375,45.979785156249996],[13.509179687500023,45.973779296874994],[13.487695312500023,45.987109375],[13.480273437500017,46.009228515625],[13.486425781250006,46.03955078125],[13.548046875000011,46.089111328125],[13.616601562500023,46.133105468749996],[13.634960937500011,46.157763671874996],[13.632519531250011,46.177050781249996],[13.420996093750006,46.212304687499994],[13.399511718750006,46.317529296874994],[13.563281250000017,46.415087890624996],[13.637109375000023,46.448535156249996],[13.6796875,46.462890625],[13.7,46.520263671875],[14.5498046875,46.399707031249996],[14.893261718750011,46.605908203125],[15.957617187500006,46.677636718749994],[16.093066406250017,46.86328125],[16.283593750000023,46.857275390625],[16.516210937500006,46.499902343749994]]]},"properties":{"name":"Slovenia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[16.52851562500001,56.29052734375],[16.431640625,56.24375],[16.41230468750004,56.568994140624994],[17.02539062499997,57.345068359375006],[16.52851562500001,56.29052734375]]],[[[19.076464843750045,57.8359375],[18.813867187500023,57.70620117187502],[18.907910156250068,57.39833984375002],[18.146386718749994,56.920507812500006],[18.285351562500068,57.08320312500001],[18.136523437500045,57.55664062500003],[18.53740234374999,57.83056640625006],[18.90058593750001,57.91547851562504],[19.076464843750045,57.8359375]]],[[[19.156347656250063,57.92260742187497],[19.086523437500034,57.86499023437506],[19.134863281250034,57.98134765625002],[19.331445312500023,57.962890625],[19.156347656250063,57.92260742187497]]],[[[24.15546875000004,65.80527343750006],[23.102343750000074,65.73535156250003],[22.400976562500006,65.86210937499999],[22.254003906250006,65.59755859375002],[21.565527343750063,65.40810546874997],[21.609179687500074,65.261376953125],[21.410351562500068,65.31743164062505],[21.57392578125001,65.12578124999999],[21.138183593750057,64.80869140625006],[21.519628906250034,64.46308593749998],[20.76269531250003,63.86782226562505],[18.60644531250003,63.17827148437499],[18.31289062500008,62.996386718750045],[18.46308593750004,62.895849609375006],[18.170019531250034,62.789355468750074],[17.906640625000023,62.88676757812502],[18.037304687500068,62.60053710937498],[17.834472656250057,62.50273437500002],[17.410253906250063,62.508398437500034],[17.633691406249994,62.23300781250006],[17.374511718750057,61.866308593750034],[17.465429687500006,61.68447265625005],[17.196386718750006,61.72456054687504],[17.13076171875005,61.57573242187499],[17.25097656250003,60.70078125],[17.6611328125,60.53515625000003],[17.955761718750068,60.589794921874955],[18.85273437500001,60.02587890625],[18.970507812500045,59.757226562499994],[17.964257812500023,59.359375],[18.56025390625004,59.39448242187498],[18.285351562500068,59.109375],[16.978125,58.65415039062506],[16.214257812500023,58.636669921874955],[16.92382812499997,58.49257812499999],[16.651953125,58.43432617187503],[16.65224609375008,57.50068359374998],[16.348730468750063,56.70927734374996],[15.826660156250028,56.12495117187501],[14.782031250000017,56.16191406250002],[14.754785156250051,56.03315429687498],[14.401953125000034,55.97675781250004],[14.21503906250004,55.83261718749998],[14.341699218749994,55.52773437500002],[14.17373046875008,55.396630859374966],[12.885839843750063,55.41137695312506],[12.973925781250074,55.748144531250006],[12.471191406250057,56.29052734375],[12.801660156250051,56.263916015625],[12.65644531250004,56.44057617187502],[12.857421875000028,56.45239257812503],[12.883691406250051,56.61772460937496],[12.421484375000034,56.906396484374966],[11.449316406250063,58.118359374999955],[11.43154296875008,58.339990234374994],[11.24824218750004,58.369140625],[11.14716796875004,58.98862304687498],[11.19580078125,59.07827148437505],[11.388281250000063,59.036523437499966],[11.470703125000057,58.909521484375034],[11.64277343750004,58.92607421875002],[11.798144531250074,59.28989257812498],[11.680761718750034,59.59228515625003],[12.486132812500074,60.10678710937506],[12.588671874999989,60.450732421875045],[12.29414062500004,61.00268554687506],[12.706054687500028,61.059863281250074],[12.88076171875008,61.35229492187506],[12.155371093750006,61.720751953125045],[12.303515625000074,62.28559570312501],[11.999902343750051,63.29169921875001],[12.175195312500051,63.595947265625],[12.792773437500017,64],[13.203515625000023,64.07509765625],[13.960546875000063,64.01401367187498],[14.141210937500006,64.17353515624998],[14.077636718750028,64.464013671875],[13.650292968750023,64.58154296874997],[14.47968750000004,65.30146484374998],[14.543261718750045,66.12934570312498],[15.483789062500051,66.30595703124999],[15.422949218750006,66.48984374999998],[16.40351562500004,67.05498046875002],[16.12744140625,67.42583007812507],[16.783593750000023,67.89501953125],[17.324609375000023,68.10380859374999],[17.91669921875001,67.96489257812502],[18.303027343750045,68.55541992187497],[19.969824218750063,68.35639648437501],[20.348046875000023,68.84873046875003],[20.116699218750057,69.02089843750005],[20.622167968750006,69.036865234375],[21.99746093750005,68.52060546874998],[22.854101562500034,68.36733398437502],[23.63886718750004,67.95439453125002],[23.454882812500045,67.46025390625007],[23.733593750000068,67.42290039062499],[23.64150390625005,67.12939453124997],[23.988574218750045,66.81054687500003],[23.700292968750034,66.25263671874998],[24.15546875000004,65.80527343750006]]]]},"properties":{"name":"Sweden","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[31.9482421875,-25.957617187500006],[32.060546875,-26.018359375],[32.04140625000002,-26.28125],[32.10595703125,-26.52001953125],[32.112890625,-26.839453125],[32.02480468750002,-26.811132812500006],[31.994726562500006,-26.817480468750006],[31.967187500000023,-26.96064453125001],[31.946093750000017,-27.173632812500003],[31.958398437500023,-27.30585937500001],[31.742578125000023,-27.30996093750001],[31.469531250000017,-27.295507812500006],[31.274023437500006,-27.238378906250006],[31.063378906250023,-27.1123046875],[30.938085937500006,-26.915820312500003],[30.88330078125,-26.79238281250001],[30.806738281250006,-26.785253906250006],[30.794335937500023,-26.764257812500006],[30.803320312500006,-26.41347656250001],[31.08808593750001,-25.98066406250001],[31.207324218750017,-25.843359375],[31.33515625000001,-25.75556640625001],[31.382617187500017,-25.74296875],[31.415136718750006,-25.74658203125],[31.921679687500017,-25.96875],[31.9482421875,-25.957617187500006]]]},"properties":{"name":"Swaziland","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[55.54033203125002,-4.693066406250011],[55.54296875,-4.785546875],[55.383398437500006,-4.609277343750009],[55.45576171875001,-4.558789062500011],[55.54033203125002,-4.693066406250011]]]},"properties":{"name":"Seychelles","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[42.358984375,37.10859375],[41.78857421875,36.59716796875],[41.41679687500002,36.5146484375],[41.295996093750006,36.383349609374996],[41.354101562500006,35.640429687499996],[41.19472656250002,34.768994140625],[40.98701171875001,34.429052734375],[38.773535156250006,33.372216796874994],[36.818359375,32.317285156249994],[36.3720703125,32.3869140625],[35.78730468750001,32.734912109374996],[35.91347656250002,32.94960937499999],[35.869140625,33.43173828125],[36.03447265625002,33.58505859375],[35.98613281250002,33.75263671875],[36.36503906250002,33.83935546875],[36.27783203125,33.92529296875],[36.5849609375,34.221240234374996],[36.50439453125,34.432373046875],[36.32988281250002,34.499609375],[36.383886718750006,34.65791015625],[35.97626953125001,34.629199218749996],[35.902441406250006,35.420703125],[35.76445312500002,35.571582031249996],[35.83964843750002,35.84921875],[35.892675781250006,35.916552734374996],[35.96757812500002,35.910058593749994],[36.12734375000002,35.831445312499994],[36.15361328125002,35.833886718749994],[36.34755859375002,36.003515625],[36.37539062500002,36.171240234375],[36.63671875,36.233984375],[36.64140625000002,36.263525390625],[36.5375,36.45742187499999],[36.54667968750002,36.50634765625],[36.596875,36.7013671875],[36.62841796875,36.777685546875],[36.65859375000002,36.802539062499996],[36.77656250000001,36.79267578125],[36.94179687500002,36.7583984375],[36.9853515625,36.702392578125],[37.06621093750002,36.652636718749996],[37.43632812500002,36.643310546875],[37.523535156250006,36.6783203125],[37.7203125,36.743701171874996],[37.90664062500002,36.79462890625],[38.19169921875002,36.9015625],[38.7666015625,36.693115234375],[38.90644531250001,36.694677734375],[39.1083984375,36.680566406249994],[39.35664062500001,36.681591796875],[39.50146484375,36.70224609375],[39.6865234375,36.738623046875],[40.01640625000002,36.826074218749994],[40.705664062500006,37.097705078124996],[41.886816406250006,37.156396484374994],[42.05986328125002,37.2060546875],[42.16787109375002,37.288623046874996],[42.202734375,37.29726562499999],[42.24755859375,37.2822265625],[42.2685546875,37.2765625],[42.31289062500002,37.22958984375],[42.358984375,37.10859375]]]},"properties":{"name":"Syria","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-72.3328125,21.85136718749999],[-72.14433593750002,21.79272460937503],[-72.33544921874994,21.758007812499983],[-72.3328125,21.85136718749999]]]},"properties":{"name":"Turks and Caicos Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[23.980273437500017,19.496630859375003],[23.970800781250006,15.721533203124991],[23.10517578125001,15.702539062499994],[22.933886718750017,15.533105468749994],[22.93232421875001,15.162109375],[22.6708984375,14.722460937500003],[22.38154296875001,14.550488281249997],[22.53857421875,14.161865234375],[22.1064453125,13.7998046875],[22.228125,13.32958984375],[21.825292968750006,12.79052734375],[21.928125,12.678125],[22.352343750000017,12.660449218749989],[22.472460937500017,12.067773437499994],[22.580957031250023,11.990136718749994],[22.591113281250017,11.579882812499989],[22.922656250000017,11.344873046874994],[22.86005859375001,10.919677734375],[22.49384765625001,10.996240234374994],[21.771484375,10.642822265625],[21.682714843750006,10.289843749999989],[20.773242187500017,9.405664062499994],[20.342089843750017,9.127099609374994],[18.95625,8.938867187499994],[18.886035156250017,8.836035156249991],[19.108691406250017,8.656152343749994],[18.56416015625001,8.0458984375],[17.6494140625,7.98359375],[16.784765625,7.550976562499997],[16.545312500000023,7.865478515625],[16.37890625,7.683544921874997],[15.957617187500006,7.507568359375],[15.480078125,7.523779296874991],[15.5498046875,7.787890624999989],[15.1162109375,8.557324218749997],[14.332324218750017,9.20351562499999],[13.977246093750011,9.691552734374994],[14.243261718750006,9.979736328125],[15.654882812500006,10.0078125],[15.276074218750011,10.357373046874997],[15.132226562500023,10.648486328124989],[15.029882812500006,11.11367187499999],[15.08125,11.845507812499989],[14.847070312500023,12.502099609374994],[14.461718750000017,13.021777343749989],[14.244824218750011,13.07734375],[14.06396484375,13.07851562499999],[13.932324218750011,13.258496093749997],[13.606347656250023,13.70458984375],[13.505761718750023,14.134423828124994],[13.4482421875,14.380664062500003],[14.367968750000017,15.750146484374994],[15.474316406250011,16.908398437499997],[15.735058593750011,19.904052734375],[15.963183593750017,20.34619140625],[15.587109375000011,20.733300781249994],[15.607324218750023,20.954394531250003],[15.181835937500011,21.523388671874997],[14.97900390625,22.99619140624999],[15.984082031250011,23.445214843749994],[20.14765625000001,21.38925781249999],[23.980273437500017,19.496630859375003]]]},"properties":{"name":"Chad","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[0.900488281250006,10.993261718749991],[0.763378906250011,10.386669921874997],[1.330078125,9.996972656249994],[1.3857421875,9.361669921874991],[1.600195312500006,9.050048828125],[1.624707031250011,6.997314453125],[1.530957031250011,6.992431640625],[1.777929687500006,6.294628906249997],[1.62265625,6.216796875],[1.187207031250011,6.089404296874989],[0.736914062500006,6.452587890624997],[0.525585937500011,6.850927734374991],[0.634765625,7.353662109374994],[0.5,7.546875],[0.686328125000017,8.354882812499994],[0.37255859375,8.75927734375],[0.48876953125,8.851464843749994],[0.525683593750017,9.398486328124989],[0.2333984375,9.463525390624994],[0.342578125000017,9.604150390624994],[0.264550781250023,9.644726562499997],[0.380859375,10.291845703124991],[-0.08632812499999,10.673046875],[0.009423828125023,11.02099609375],[-0.068603515625,11.115625],[0.49267578125,10.954980468749994],[0.900488281250006,10.993261718749991]]]},"properties":{"name":"Togo","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[98.40908203125005,7.90205078125004],[98.2962890625,7.776074218750054],[98.32207031250007,8.166308593749974],[98.4349609375,8.085644531249969],[98.40908203125005,7.90205078125004]]],[[[100.070703125,9.58603515625002],[99.96240234375003,9.421630859375],[99.93955078125006,9.559960937500037],[100.070703125,9.58603515625002]]],[[[102.42675781250003,11.988720703125026],[102.30195312500004,11.98081054687502],[102.27744140625006,12.151855468750043],[102.42675781250003,11.988720703125026]]],[[[100.12246093750005,20.316650390625057],[100.11494140625004,20.257666015625034],[100.13974609375012,20.245410156250017],[100.31796875000006,20.38588867187505],[100.51953125000003,20.17792968750004],[100.39765625000004,19.756103515625],[100.51357421875005,19.553466796875],[101.21191406249997,19.54833984375003],[101.22080078125006,19.486621093750074],[101.19755859375007,19.327929687500074],[101.2863281250001,18.977148437500006],[101.04697265625012,18.441992187500063],[101.05058593750002,18.407031250000045],[101.1375,18.28686523437497],[101.14394531250005,18.14262695312499],[100.90849609375002,17.583886718750023],[100.95585937500002,17.541113281250006],[101.10517578125004,17.47954101562499],[101.16748046874997,17.49902343749997],[101.41367187500012,17.71875],[101.55507812500005,17.812353515625034],[101.56367187500004,17.82050781250001],[101.6875,17.889404296875],[101.77480468750005,18.03339843750004],[101.81865234375002,18.06464843750001],[101.87548828124997,18.046435546875017],[101.94746093750004,18.081494140624983],[102.03457031250005,18.169824218750023],[102.10146484375,18.210644531249983],[102.14824218750002,18.20385742187503],[102.35185546875002,18.045947265625017],[102.45878906250002,17.984619140625057],[102.55253906250007,17.96508789062497],[102.61679687500006,17.833349609375034],[102.66064453124997,17.817968750000034],[102.680078125,17.824121093750023],[103.05136718750006,18.02851562500001],[103.0912109375,18.13823242187499],[103.14853515625006,18.221728515625045],[103.19970703124997,18.259472656249983],[103.26318359374997,18.27846679687505],[103.27958984375002,18.304980468750017],[103.24892578125,18.338964843750034],[103.25175781250002,18.373486328124955],[103.2882812500001,18.408398437499955],[103.36699218750007,18.42333984374997],[103.48798828125004,18.418164062499983],[103.62968750000002,18.38256835937503],[103.79228515625002,18.316503906249977],[103.89882812500005,18.295312500000023],[103.949609375,18.31899414062505],[104.04873046875005,18.216699218749994],[104.19619140625005,17.988378906250006],[104.32265625,17.815820312500023],[104.428125,17.69897460937503],[104.7396484375,17.461669921875],[104.81601562500012,17.30029296874997],[104.75898437500004,17.0771484375],[104.7435546875,16.884375],[104.75058593750012,16.647558593750063],[104.81933593750003,16.46606445312503],[105.04716796875007,16.160253906249977],[105.14873046875007,16.09355468749999],[105.33066406250006,16.037890625000017],[105.40625,15.987451171875051],[105.39892578124997,15.829882812500017],[105.62207031250003,15.699951171875],[105.641015625,15.656542968750045],[105.6388671875001,15.585937500000057],[105.615625,15.488281250000057],[105.49042968750004,15.256591796875],[105.49042968750004,15.127587890625009],[105.5333984375001,15.041601562499991],[105.54667968750002,14.932470703124963],[105.52304687500012,14.843310546875003],[105.49736328125002,14.590673828124963],[105.47558593750003,14.530126953124977],[105.42265625000007,14.471630859375054],[105.34218750000005,14.416699218750054],[105.24365234375003,14.367871093750054],[105.1833007812501,14.346240234374989],[105.16914062500004,14.336083984374966],[105.12597656250003,14.280957031250011],[105.07412109375005,14.227441406250037],[104.77900390625004,14.427832031250006],[103.19941406250004,14.332617187499977],[102.90927734375006,14.136718750000028],[102.546875,13.585693359375043],[102.33632812500005,13.560302734375014],[102.49960937500012,12.669970703125003],[102.75566406250002,12.42626953125],[102.73662109375007,12.089794921875011],[102.93388671875002,11.706689453125037],[102.594140625,12.203027343749994],[102.54023437500004,12.109228515624977],[101.83574218750002,12.640380859375014],[100.89775390625007,12.653808593749986],[100.96269531250007,13.431982421874991],[100.60292968750005,13.568164062500017],[100.23564453125002,13.48447265625002],[99.99052734375007,13.243457031250031],[100.08994140625006,13.045654296874972],[99.96396484375006,12.690039062500006],[99.98906250000007,12.170800781249994],[99.16503906250003,10.319824218750028],[99.25390625000003,9.265234375000034],[99.83554687500012,9.288378906250031],[99.98955078125007,8.589208984374977],[100.129296875,8.428076171875006],[100.16347656250005,8.508398437500034],[100.27939453125006,8.268505859375011],[100.54521484375002,7.226904296874991],[100.43935546875005,7.280761718750043],[100.38037109375003,7.541503906250043],[100.28378906250006,7.551513671875043],[100.25664062500002,7.774902343749986],[100.16074218750012,7.599267578124994],[100.4235351562501,7.18784179687502],[101.01787109375002,6.860937500000034],[101.49794921875005,6.865283203125031],[102.10107421874997,6.242236328125031],[101.87363281250012,5.825292968749991],[101.67841796875004,5.778808593750028],[101.5560546875,5.907763671875003],[101.1139648437501,5.636767578125045],[100.98164062500004,5.771044921875045],[101.05351562500002,6.242578125],[100.87392578125,6.24541015624996],[100.75449218750012,6.460058593749991],[100.3454101562501,6.549902343750006],[100.26142578125004,6.682714843749963],[100.11914062499997,6.441992187500048],[99.69599609375004,6.87666015625004],[99.72031250000012,7.106201171875],[99.55302734375002,7.218798828125031],[99.59697265625002,7.355615234375009],[99.35859375000004,7.372216796875023],[99.26367187499997,7.619042968750037],[99.07763671874997,7.718066406250045],[99.05107421875002,7.887841796874994],[98.78867187500012,8.059814453125028],[98.703515625,8.256738281250009],[98.57919921875006,8.344287109374989],[98.42099609375006,8.17822265625],[98.30546875000007,8.226220703125009],[98.24179687500006,8.767871093750045],[98.70253906250005,10.19038085937504],[98.7572265625,10.660937499999974],[99.1901367187501,11.105273437499989],[99.61474609374997,11.781201171875026],[99.40507812500002,12.547900390625003],[99.12392578125,13.030761718750043],[99.13681640625006,13.716699218749994],[98.57001953125004,14.359912109375031],[98.20214843749997,14.97592773437502],[98.19101562500012,15.204101562499972],[98.55693359375007,15.367675781249986],[98.59238281250006,16.05068359375005],[98.81796875000012,16.180810546874994],[98.88828125000006,16.351904296875034],[98.83544921875003,16.417578125],[98.66074218750006,16.330419921875006],[98.4388671875,16.975683593750034],[97.7064453125,17.79711914062503],[97.63222656250005,18.290332031250074],[97.37392578125,18.51796875],[97.74589843750002,18.58818359374999],[97.816796875,19.459960937500057],[98.01503906250005,19.74951171874997],[98.37128906250004,19.68916015625004],[98.9166992187501,19.77290039062504],[99.07421875000003,20.09936523437503],[99.48593750000006,20.14985351562501],[99.45888671875005,20.363037109375],[99.72011718750005,20.32543945312497],[99.8903320312501,20.424414062499977],[99.9542968750001,20.415429687500023],[100.0036132812501,20.37958984375001],[100.12246093750005,20.316650390625057]]]]},"properties":{"name":"Thailand","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[70.66416015625,39.85546875],[70.55957031250003,39.790917968749994],[70.48925781250003,39.86303710937503],[70.48281250000005,39.88271484375005],[70.49775390625004,39.88242187499998],[70.56708984375004,39.86660156250005],[70.66416015625,39.85546875]]],[[[70.95800781250003,40.238867187500034],[70.59921875,39.974511718749994],[69.96679687499997,40.202246093750034],[69.46875,40.020751953125],[69.47099609375002,39.990625],[69.43193359375007,39.909765625000034],[69.36542968750004,39.94707031250002],[69.30722656250006,39.968554687500045],[69.27880859374997,39.91777343749999],[69.24472656250006,39.82709960937498],[69.29765625000007,39.52480468750005],[70.50117187500004,39.58735351562501],[70.79931640625003,39.39472656250001],[71.4703125,39.60366210937502],[71.50302734375006,39.58217773437502],[71.51738281250002,39.55385742187502],[71.50585937499997,39.51708984374997],[71.5033203125,39.47880859374999],[71.73222656250002,39.422998046874994],[71.77861328125007,39.27797851562502],[72.04277343750002,39.352148437500034],[72.08417968750004,39.310644531250034],[72.14736328125005,39.26074218749997],[72.22998046874997,39.20751953124997],[72.63994140625002,39.385986328125],[73.10927734375,39.36191406249998],[73.2349609375,39.37456054687499],[73.3361328125001,39.41235351562506],[73.38740234375004,39.442724609375034],[73.4704101562501,39.46059570312502],[73.63164062500007,39.44887695312502],[73.63632812500006,39.396679687499955],[73.60732421875,39.229199218749955],[73.8052734375,38.968652343749994],[73.69609375000007,38.85429687499996],[73.80166015625,38.60688476562501],[74.02558593750004,38.53984375000002],[74.27744140625,38.659765625000034],[74.81230468750002,38.46030273437498],[74.8942382812501,37.60141601562498],[75.11875,37.38569335937498],[74.89130859375004,37.231640624999955],[74.875390625,37.24199218750002],[74.83046875,37.28593750000002],[74.73056640625006,37.35703125],[74.659375,37.39448242187501],[74.34902343750005,37.41875],[74.25966796875005,37.41542968750002],[74.20351562500005,37.37246093750005],[74.16708984375,37.32944335937498],[73.74960937500006,37.23178710937498],[73.6535156250001,37.239355468750034],[73.62753906250006,37.261572265625006],[73.71728515625003,37.32944335937498],[73.7337890625,37.37578125000002],[73.72060546875,37.41875],[73.65712890625005,37.43046875],[73.6046875000001,37.44604492187503],[73.48134765625,37.4716796875],[73.38291015625006,37.462255859375034],[73.21113281250004,37.40849609375002],[72.89550781250003,37.26752929687498],[72.65742187500004,37.029052734375],[71.665625,36.696923828124994],[71.530859375,36.845117187499994],[71.43291015625007,37.12753906249998],[71.5822265625001,37.91010742187498],[71.55195312500004,37.93315429687496],[71.48779296874997,37.93188476562497],[71.38964843750003,37.90629882812502],[71.31992187500006,37.90185546875],[71.27851562500004,37.91840820312498],[71.33271484375004,38.170263671875034],[71.25585937499997,38.306982421875006],[70.7359375,38.42255859375001],[70.41777343750002,38.075439453125],[70.21464843750002,37.92441406250006],[70.19941406250004,37.88603515624996],[70.25498046875006,37.76538085937497],[70.25146484374997,37.66416015625006],[70.18867187500004,37.58247070312501],[70.11982421875004,37.54350585937499],[69.9849609375,37.566162109375],[69.8208984375,37.60957031250004],[69.62578125000002,37.59404296874999],[69.49208984375,37.55307617187498],[69.42011718750004,37.486718749999966],[69.39921875000007,37.39931640625002],[69.42968749999997,37.290869140625034],[69.414453125,37.20776367187497],[69.35380859375007,37.15004882812502],[69.3039062500001,37.11694335937503],[69.26484375000004,37.1083984375],[69.18017578125003,37.158300781250034],[68.96044921875003,37.32504882812498],[68.9118164062501,37.33393554687501],[68.88525390624997,37.32807617187498],[68.85537109375005,37.31684570312501],[68.83847656250006,37.30283203124998],[68.82373046874997,37.27070312500001],[68.78203125000002,37.25800781250001],[68.7232421875,37.26801757812501],[68.6691406250001,37.258398437500006],[68.3869140625001,37.1375],[68.29951171875004,37.08842773437502],[68.28476562500006,37.036328124999955],[68.2609375000001,37.01308593750002],[68.2121093750001,37.02153320312496],[68.0677734375,36.949804687500006],[67.95800781249997,36.972021484375006],[67.83447265624997,37.06420898437506],[67.75898437500004,37.172216796875034],[67.7980468750001,37.244970703125006],[67.81435546875005,37.48701171875004],[68.3502929687501,38.211035156250006],[68.08720703125002,38.47353515625002],[68.13251953125004,38.927636718749966],[67.69443359375006,38.99462890625003],[67.64833984375005,39.13105468750004],[67.3576171875001,39.216699218749994],[67.426171875,39.46557617187497],[67.71904296875007,39.62138671875002],[68.46328125,39.53671874999998],[68.63896484375007,39.8388671875],[68.86875,39.90747070312503],[68.80468750000003,40.05034179687499],[68.9720703125,40.08994140624998],[68.63066406250007,40.16708984374998],[69.27490234374997,40.19809570312498],[69.20625,40.566552734374994],[69.35722656250002,40.76738281249996],[69.71289062500003,40.65698242187503],[70.40195312500006,41.03510742187498],[70.75107421875006,40.721777343750006],[70.37158203125003,40.38413085937506],[70.653125,40.201171875],[70.95800781250003,40.238867187500034]]]]},"properties":{"name":"Tajikistan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[66.52226562500007,37.34848632812506],[66.471875,37.3447265625],[65.7650390625,37.56914062499996],[65.55498046875002,37.25117187500004],[65.30361328125005,37.24677734375001],[65.08964843750007,37.237939453124994],[64.9515625,37.19355468750001],[64.81630859375005,37.13208007812503],[64.7824218750001,37.05927734375001],[64.60253906250003,36.554541015625034],[64.5658203125,36.427587890625034],[64.51103515625002,36.34067382812498],[64.184375,36.14892578125],[63.8625,36.012353515624994],[63.12998046875006,35.84619140624997],[63.169726562500074,35.678125],[63.05664062500003,35.44580078125003],[62.98027343750002,35.40917968750003],[62.85800781250006,35.34965820312499],[62.688085937500006,35.25532226562504],[62.3078125000001,35.17080078125005],[62.08964843750002,35.3796875],[61.62099609375005,35.43232421875004],[61.34472656249997,35.62949218750006],[61.26201171875002,35.61958007812498],[61.25214843750004,35.86762695312498],[61.15292968750006,35.97675781250001],[61.212011718750006,36.190527343750034],[61.11962890625003,36.64257812500003],[60.34130859375003,36.63764648437501],[60.06279296875002,36.962890625],[59.454980468749994,37.25283203125002],[59.30175781249997,37.51064453125005],[58.81542968750003,37.683496093749994],[58.261621093749994,37.665820312500045],[57.35371093750004,37.97333984374998],[57.1935546875001,38.216406250000034],[56.440625,38.249414062499994],[56.272070312500006,38.080419921875034],[55.38085937500003,38.051123046875034],[54.90009765625004,37.77792968750006],[54.6994140625001,37.47016601562498],[53.91416015625006,37.34355468750002],[53.86865234375003,38.949267578125045],[53.70458984375003,39.209570312500034],[53.33632812500005,39.34082031250006],[53.15664062499999,39.26499023437506],[53.23564453125002,39.608544921874966],[53.603125,39.546972656250034],[53.472265625,39.66879882812498],[53.48730468749997,39.909375],[52.9875,39.98759765625002],[53.03554687500005,39.7744140625],[52.80468749999997,40.054003906250045],[52.73369140625002,40.39873046875002],[52.943457031250006,41.03808593750006],[53.1452148437501,40.82495117187497],[53.61523437500003,40.818505859374994],[53.87001953125005,40.64868164062503],[54.37734375,40.693261718749966],[54.319433593750006,40.83457031249998],[54.68505859375003,40.873046875],[54.70371093750006,41.071142578125034],[54.094824218750006,41.51938476562506],[53.80468749999997,42.11762695312498],[53.16416015625006,42.09379882812502],[52.97001953125002,41.97622070312505],[52.81484375,41.711816406249994],[52.850390625000074,41.20029296875006],[52.4938476562501,41.780371093750034],[53.0558593750001,42.14775390624999],[54.120996093749994,42.335205078125],[54.85380859375002,41.965185546875006],[55.434375,41.296289062499994],[55.97744140625005,41.32221679687504],[57.01796875,41.26347656249996],[57.11884765625004,41.35029296874998],[56.96406250000004,41.856542968750006],[57.290625,42.123779296875],[57.814257812500074,42.18984375000005],[58.02890625,42.48764648437506],[58.474414062500074,42.29936523437496],[58.15156250000004,42.628076171874966],[58.477148437500006,42.66284179687503],[58.5890625000001,42.778466796874966],[59.35429687500002,42.32329101562496],[59.98515625000002,42.21171875],[59.94179687499999,41.97353515625002],[60.20078125000006,41.803125],[60.07558593750005,41.759667968749966],[60.089648437500074,41.39941406250003],[60.454980468749994,41.221630859374955],[61.2423828125001,41.18920898437503],[61.496972656249994,41.276074218749955],[61.90283203124997,41.09370117187501],[62.48320312500002,39.97563476562496],[63.76367187500003,39.16054687499999],[64.3099609375,38.97729492187497],[65.612890625,38.23857421875002],[65.97119140624997,38.244238281250006],[66.60625,37.98671875000005],[66.52558593750004,37.785742187500034],[66.51132812500006,37.59916992187496],[66.51064453125,37.45869140625004],[66.52226562500007,37.34848632812506]]]},"properties":{"name":"Turkmenistan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[124.0363281250001,-9.341601562500031],[124.44443359375012,-9.190332031250023],[124.28232421875012,-9.427929687500026],[124.0363281250001,-9.341601562500031]]],[[[125.06816406250002,-9.511914062499997],[124.96015625000004,-9.213769531250009],[125.10048828125,-9.189843750000023],[125.14902343750012,-9.042578125000034],[124.93681640625007,-9.053417968750026],[124.92226562500005,-8.942480468749977],[125.17802734375002,-8.647851562499994],[125.38183593749997,-8.575390624999983],[126.61972656250006,-8.459472656249986],[126.96640625000012,-8.315722656250017],[127.29609375000004,-8.424511718749969],[126.91523437500004,-8.715234374999966],[125.40800781250002,-9.275781250000023],[125.06816406250002,-9.511914062499997]]],[[[125.64609375000006,-8.139941406250003],[125.5794921875,-8.311816406250017],[125.50712890625007,-8.275097656249997],[125.64609375000006,-8.139941406250003]]]]},"properties":{"name":"Timor-Leste","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-175.1619140625,-21.169335937500023],[-175.07817382812496,-21.129003906249977],[-175.15659179687495,-21.26367187499997],[-175.36235351562496,-21.106835937499994],[-175.1619140625,-21.169335937500023]]],[[[-173.953515625,-18.63935546875001],[-174.06914062500002,-18.640234375],[-173.96806640624993,-18.565332031250023],[-173.953515625,-18.63935546875001]]]]},"properties":{"name":"Tonga","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-61.012109374999966,10.134326171874989],[-61.906103515625006,10.069140625000031],[-61.49931640624999,10.268554687499972],[-61.47827148437497,10.603369140624977],[-61.65117187499993,10.718066406249974],[-60.917626953124966,10.84023437499999],[-61.03374023437502,10.669873046875026],[-61.012109374999966,10.134326171874989]]]},"properties":{"name":"Trinidad and Tobago","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[10.957617187500063,33.72207031250005],[10.722070312500051,33.738916015624994],[10.745214843750063,33.88867187500006],[11.017871093749989,33.82333984374998],[10.957617187500063,33.72207031250005]]],[[[11.278027343750068,34.753808593749994],[11.123632812500063,34.68168945312496],[11.254882812500057,34.82031250000006],[11.278027343750068,34.753808593749994]]],[[[10.274609375000011,31.684960937499994],[10.114941406250068,31.46376953125005],[10.216406250000063,30.78320312500003],[10.05976562500004,30.58007812500003],[9.932519531250051,30.42534179687496],[9.895019531250028,30.387304687500034],[9.51875,30.229394531249994],[9.224023437500023,31.373681640624994],[9.160253906250006,31.621337890625],[9.044042968750034,32.072363281250034],[8.333398437500051,32.54360351562502],[8.1125,33.055322265624994],[7.877246093750017,33.172119140625],[7.534375,33.717919921874994],[7.513867187500068,34.080517578124955],[8.24560546875,34.73408203124998],[8.276855468750057,34.97949218749997],[8.312109375000063,35.084619140624994],[8.394238281250011,35.20385742187503],[8.318066406250011,35.654931640624994],[8.348730468750063,36.367968750000045],[8.207617187500006,36.518945312499994],[8.601269531250068,36.83393554687504],[8.576562500000023,36.93720703125001],[9.687988281250057,37.34038085937499],[9.838476562500063,37.30898437499999],[9.830273437499983,37.13535156250006],[9.875585937499977,37.25415039062503],[10.196386718750063,37.205859375000045],[10.293261718750074,36.781494140625],[10.412304687499983,36.73183593750002],[11.053906250000068,37.07250976562506],[11.12666015625004,36.874072265625045],[10.476562500000028,36.175146484375006],[10.590820312500028,35.88725585937499],[11.00429687500008,35.63383789062496],[11.120117187500057,35.24028320312499],[10.69091796875,34.67846679687503],[10.118359375000068,34.280078125000045],[10.049023437500068,34.056298828124994],[10.305273437500034,33.72827148437497],[10.713183593750017,33.68901367187496],[10.722753906250006,33.514404296875],[10.958007812500057,33.62631835937498],[11.257421875000034,33.30883789062506],[11.202636718749972,33.24921874999998],[11.50458984375004,33.181933593750045],[11.502441406250028,33.15556640624999],[11.467187500000051,32.96572265625005],[11.459179687500011,32.897363281249966],[11.453906250000017,32.64257812500003],[11.533789062500034,32.52495117187496],[11.535937500000017,32.47333984375001],[11.504980468750034,32.413671875000034],[11.358007812500006,32.34521484375003],[11.168261718750074,32.25673828125002],[11.005175781250074,32.17270507812506],[10.826367187500068,32.080664062500034],[10.771582031250006,32.02119140625001],[10.60888671875,31.929541015624977],[10.47578125000004,31.736035156249983],[10.274609375000011,31.684960937499994]]]]},"properties":{"name":"Tunisia","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[25.970019531250045,40.136328125],[25.6689453125,40.13588867187502],[25.918359375000023,40.23798828125004],[25.970019531250045,40.136328125]]],[[[43.43339843750002,41.155517578125],[43.43945312500003,41.10712890625001],[43.72265624999997,40.71953124999999],[43.56933593750003,40.48237304687498],[43.66621093750004,40.12636718750002],[44.28925781250004,40.040380859375006],[44.76826171875004,39.70351562500005],[44.81718750000002,39.65043945312496],[44.58710937500004,39.76855468750006],[44.3893554687501,39.422119140625],[44.02324218750002,39.37744140625006],[44.27167968750004,38.83603515625006],[44.2985351562501,38.38627929687499],[44.4499023437501,38.33422851562506],[44.21132812499999,37.908056640625006],[44.589941406250006,37.710351562499966],[44.574023437500074,37.435400390625006],[44.79414062500004,37.290380859375034],[44.76513671875003,37.142431640625006],[44.73095703124997,37.16528320312503],[44.66933593750005,37.17358398437503],[44.60595703124997,37.176025390625],[44.401953125,37.05849609375002],[44.325585937499994,37.0107421875],[44.28183593750006,36.97802734374997],[44.24570312500006,36.983300781249994],[44.20166015624997,37.05180664062502],[44.208398437499994,37.20263671875],[44.19179687499999,37.249853515625034],[44.15625,37.28295898437503],[44.11445312500004,37.30185546875006],[44.01318359375003,37.313525390625045],[43.83642578124997,37.223535156249994],[43.67578125000003,37.227246093749955],[43.09248046875004,37.36738281249998],[42.936621093750006,37.32475585937502],[42.77460937500004,37.371875],[42.74111328125005,37.361914062500034],[42.6354492187501,37.249267578125],[42.45585937500002,37.128710937500045],[42.358984375,37.10859375000004],[42.31289062499999,37.22958984374998],[42.26855468749997,37.276562499999955],[42.24755859375003,37.28222656250006],[42.20273437500006,37.29726562499999],[42.16787109375005,37.28862304687502],[42.059863281250074,37.2060546875],[41.886816406250006,37.156396484374994],[40.70566406250006,37.09770507812502],[40.4503906250001,37.00888671875006],[40.016406250000074,36.82607421875002],[39.68652343749997,36.73862304687506],[39.50146484374997,36.702246093750034],[39.35664062500004,36.68159179687498],[39.10839843749997,36.68056640625005],[38.90644531250004,36.69467773437498],[38.76660156249997,36.69311523437503],[38.19169921875002,36.90156250000004],[37.90664062500005,36.79462890625001],[37.7203125,36.74370117187502],[37.52353515625006,36.678320312500034],[37.436328125000074,36.643310546875],[37.327050781249994,36.64658203125006],[37.18740234375005,36.655908203124994],[37.066210937500074,36.652636718750045],[36.98535156250003,36.70239257812506],[36.94179687499999,36.758398437500006],[36.77656250000004,36.79267578124998],[36.65859375000005,36.80253906250002],[36.62841796875003,36.777685546875034],[36.596875,36.70136718750001],[36.546679687500074,36.50634765625],[36.5375,36.457421874999966],[36.63671874999997,36.233984375],[36.37539062499999,36.171240234375034],[36.347558593749994,36.003515625000034],[36.20195312500002,35.93754882812502],[36.15361328125002,35.83388671875005],[36.12734375,35.831445312499994],[35.967578125000074,35.91005859375002],[35.89267578125006,35.91655273437502],[35.81093750000005,36.30986328125002],[36.18847656250003,36.65898437499999],[36.048925781250006,36.91059570312501],[35.393164062500006,36.57519531249997],[34.70361328125003,36.81679687499999],[33.694726562499994,36.18198242187498],[32.794824218749994,36.03588867187497],[32.37773437500002,36.18364257812496],[32.02197265625003,36.53530273437502],[31.35253906249997,36.80107421874999],[30.64404296874997,36.86567382812501],[30.446093750000074,36.269873046875034],[29.6890625,36.15668945312498],[29.22363281249997,36.32446289062497],[28.96962890625008,36.71533203125003],[28.303710937500057,36.81196289062498],[28.01943359375005,36.63447265624998],[28.083984375000057,36.75146484375],[27.453906250000017,36.712158203125],[28.00537109375003,36.83198242187498],[28.242382812500068,37.029052734375],[27.262988281250045,36.97656250000003],[27.30019531250005,37.12685546875002],[27.53505859375005,37.16386718750002],[27.06796875,37.65791015625004],[27.224414062500074,37.725439453125006],[27.23242187500003,37.978662109374994],[26.29072265625001,38.27719726562498],[26.44130859375005,38.64121093749998],[26.67421875000008,38.33574218750002],[27.14423828125001,38.45195312499996],[26.906835937500034,38.48173828124999],[26.763671875,38.709619140624966],[27.013671875000057,38.88686523437502],[26.814941406250057,38.96098632812502],[26.853613281250034,39.115625],[26.68183593750004,39.292236328125],[26.89921874999999,39.549658203125034],[26.113085937500074,39.46738281249998],[26.101367187500074,39.56894531249998],[26.18134765625004,39.99008789062498],[26.738085937500045,40.40024414062506],[27.28457031250008,40.45561523437496],[27.4755859375,40.319921875000034],[27.72802734375,40.32880859374998],[27.84853515625005,40.38173828125002],[27.73183593750008,40.48149414062499],[27.87490234375008,40.512939453125],[27.989550781250074,40.48945312500001],[27.96259765625001,40.369873046875],[29.00712890624999,40.389746093750034],[28.787890625000017,40.534033203125034],[28.95800781250003,40.63056640624998],[29.849218750000063,40.760107421875006],[29.113867187499977,40.93784179687506],[29.14814453125004,41.221044921875034],[31.25488281249997,41.10761718750001],[31.45800781249997,41.32001953125004],[32.306445312500074,41.72958984374998],[33.38134765625003,42.01757812500003],[34.75048828124997,41.95683593749999],[35.006445312500006,42.06328125000002],[35.15488281250006,42.02753906250001],[35.12207031250003,41.89111328125003],[35.297753906249994,41.72851562500003],[35.558007812499994,41.63403320312506],[36.05175781249997,41.68256835937498],[36.40537109375006,41.27460937500001],[36.77773437499999,41.36347656250001],[37.066210937500074,41.184423828125034],[38.38105468750004,40.92451171875001],[39.426367187500006,41.10644531250003],[40.26523437500006,40.96132812500005],[41.08359375000006,41.26118164062504],[41.41435546875002,41.42363281249999],[41.510058593750074,41.51748046875002],[41.70175781250006,41.471582031249994],[41.77939453125006,41.44052734374998],[41.823535156250074,41.432373046875],[41.92578125000003,41.49565429687502],[42.46640625,41.43984375000002],[42.56738281249997,41.55927734375001],[42.590429687500006,41.57070312500002],[42.60683593750005,41.57880859374998],[42.682421875000074,41.58574218749999],[42.75410156250004,41.57890625000002],[42.787890625000074,41.56372070312503],[42.82167968750005,41.49238281249998],[42.90673828125003,41.46684570312502],[43.05712890625003,41.35283203124996],[43.149023437500006,41.30712890624997],[43.171289062499994,41.28793945312498],[43.14101562499999,41.26484374999998],[43.15283203124997,41.23642578125006],[43.20546875000005,41.19916992187501],[43.43339843750002,41.155517578125]]],[[[27.47480468750001,41.946875],[28.014453125000017,41.96904296874999],[28.197851562500063,41.55449218750002],[29.057226562500006,41.22973632812503],[28.95625,41.00820312499999],[28.172167968750074,41.08071289062502],[27.49941406250005,40.97314453124997],[27.258007812499983,40.687353515625006],[26.772070312500034,40.498046875],[26.202734375000034,40.07539062500004],[26.25380859375005,40.31469726562503],[26.792089843750034,40.626611328124994],[26.10546875000003,40.61132812499997],[26.03896484375008,40.726757812499955],[26.331054687500057,40.954492187499994],[26.330664062499977,41.23876953125],[26.62490234375008,41.401757812499994],[26.581347656250074,41.60126953125004],[26.320898437500034,41.716552734375],[26.3603515625,41.80156249999999],[26.51142578125004,41.82636718749998],[26.549707031250023,41.896728515625],[26.5796875,41.947949218749955],[26.615332031250063,41.964892578125045],[26.884863281250006,41.99184570312502],[26.96875,42.02685546875006],[27.01171875,42.05864257812496],[27.193359375000057,42.07709960937498],[27.24433593750004,42.09326171875],[27.294921875000057,42.079541015624955],[27.47480468750001,41.946875]]]]},"properties":{"name":"Turkey","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[39.71132812499999,-7.977441406250023],[39.602929687499994,-7.936132812499949],[39.907128906249994,-7.649218750000031],[39.71132812499999,-7.977441406250023]]],[[[39.49648437499999,-6.174609375],[39.573046875000074,-6.387402343750011],[39.48095703124997,-6.45371093750002],[39.18232421875004,-6.172558593750026],[39.30898437499999,-5.721972656249974],[39.49648437499999,-6.174609375]]],[[[39.86503906250002,-4.906152343750037],[39.74931640625002,-5.443847656249986],[39.646777343750074,-5.368554687500009],[39.6734375,-4.927050781250031],[39.86503906250002,-4.906152343750037]]],[[[33.90322265625005,-1.002050781250034],[37.643847656250074,-3.045410156250028],[37.608203125000074,-3.497070312500028],[39.221777343750006,-4.692382812500014],[38.80468750000003,-6.070117187500031],[38.87402343750003,-6.33125],[39.5460937500001,-7.024023437500034],[39.288476562499994,-7.517871093750003],[39.28701171875005,-7.787695312500006],[39.4284179687501,-7.81279296874996],[39.441015625,-8.011523437499946],[39.304003906250074,-8.44384765625],[39.451269531250006,-8.94296875],[39.64130859375004,-9.19248046875002],[39.72519531250006,-10.000488281249972],[40.46357421875004,-10.464355468749972],[39.98867187499999,-10.820800781250014],[39.81708984375004,-10.912402343750031],[38.9875,-11.167285156250003],[38.49179687500006,-11.413281250000026],[37.92021484375002,-11.294726562500031],[37.72480468750004,-11.58066406250002],[37.54169921875004,-11.675097656249974],[37.37285156250002,-11.710449218749986],[36.97890625000005,-11.566992187499977],[36.30566406250003,-11.706347656249946],[36.191308593749994,-11.670703124999974],[36.17548828125004,-11.60927734374998],[36.08222656250004,-11.537304687499969],[35.91132812500004,-11.45468750000002],[35.785449218750074,-11.452929687500017],[35.63095703125006,-11.582031250000028],[35.564355468749994,-11.602343749999989],[35.418261718750074,-11.583203125],[35.18261718750003,-11.574804687499977],[34.95947265625003,-11.578125],[34.93701171874997,-11.463476562500034],[34.890625,-11.3935546875],[34.77382812500005,-11.341699218750009],[34.60791015624997,-11.08046875],[34.66708984375006,-10.792480468750028],[34.56992187500006,-10.241113281249966],[34.32089843750006,-9.731542968749977],[33.99560546875003,-9.495410156250003],[33.88886718750004,-9.670117187499983],[32.91992187500003,-9.407421875000026],[32.75664062500002,-9.322265625],[31.94257812500004,-9.05400390624996],[31.91865234375004,-8.942187500000017],[31.886132812499994,-8.921972656249977],[31.81806640625004,-8.902246093749952],[31.673632812500017,-8.908789062499963],[31.55625,-8.80546875],[31.44921874999997,-8.65390625],[31.35058593750003,-8.607031250000034],[31.07636718750004,-8.611914062499963],[30.968359375000063,-8.550976562499983],[30.89199218750005,-8.473730468749963],[30.830664062500063,-8.385546875000031],[30.720898437500097,-8.104394531250037],[30.40673828125003,-7.460644531249983],[30.313183593750097,-7.203710937499949],[30.212695312500017,-7.037890625000017],[30.10625,-6.915039062500028],[29.961816406249994,-6.803125],[29.798144531250017,-6.691894531249957],[29.70966796875004,-6.61689453125004],[29.590625,-6.394433593750023],[29.540820312500017,-6.313867187500037],[29.50625,-6.172070312500011],[29.480078125,-6.025],[29.490820312500063,-5.96542968750002],[29.59638671875004,-5.775976562499963],[29.60703125,-5.722656250000028],[29.59414062500005,-5.650781250000037],[29.542382812499994,-5.499804687500017],[29.34277343749997,-4.983105468749997],[29.32343750000004,-4.898828124999966],[29.32568359374997,-4.835644531249969],[29.404199218749994,-4.49667968750002],[29.40322265625005,-4.449316406249963],[29.71777343750003,-4.45585937499996],[29.94726562499997,-4.307324218749983],[30.4,-3.65390625],[30.790234375000097,-3.274609375000011],[30.811132812500006,-3.116406250000011],[30.78027343750003,-2.984863281249957],[30.70947265624997,-2.977246093749997],[30.604296875000074,-2.935253906249969],[30.515039062499994,-2.917578125],[30.45556640625003,-2.893164062500006],[30.433496093749994,-2.874511718750028],[30.424023437500097,-2.82402343749996],[30.473339843750097,-2.6943359375],[30.42421875000005,-2.641601562500014],[30.441992187500006,-2.613476562499969],[30.53369140624997,-2.426269531250014],[30.55361328125005,-2.400097656250011],[30.593359375000063,-2.39677734374996],[30.65664062500005,-2.373828124999989],[30.71484375000003,-2.363476562500011],[30.7625,-2.371679687499991],[30.828710937500006,-2.338476562499977],[30.85498046874997,-2.265429687500017],[30.8765625,-2.143359375000017],[30.864648437499994,-2.044042968749949],[30.819140625000017,-1.967480468749983],[30.812597656250006,-1.56308593750002],[30.76220703124997,-1.458691406249983],[30.710742187500074,-1.396777343749974],[30.631933593750006,-1.36748046874996],[30.508105468750074,-1.208203125000026],[30.47021484374997,-1.13115234374996],[30.47705078124997,-1.0830078125],[30.509960937500097,-1.067285156249994],[30.51992187499999,-1.0625],[30.67275390625005,-1.051367187499949],[30.741992187500017,-1.007519531249997],[30.809179687500063,-0.994921875],[30.82363281250005,-0.999023437499943],[30.84472656250003,-1.002050781250034],[32.371875,-1.002050781250034],[33.90322265625005,-1.002050781250034]]]]},"properties":{"name":"Tanzania","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[30.50996093750001,-1.067285156250009],[30.46992187500001,-1.066015625],[30.41230468750001,-1.063085937500006],[30.360253906250023,-1.074609375],[29.930078125000023,-1.469921875000011],[29.82539062500001,-1.335546875],[29.576953125000017,-1.387890625000011],[29.717675781250023,0.098339843749997],[29.934472656250023,0.4990234375],[29.94287109375,0.819238281249994],[31.252734375000017,2.044580078124994],[31.176367187500006,2.270068359374989],[30.728613281250006,2.455371093749989],[30.8466796875,2.847021484374991],[30.754003906250006,3.041796874999989],[30.90644531250001,3.408935546875],[30.83857421875001,3.49072265625],[31.15234375,3.785595703124997],[31.547167968750017,3.677587890624991],[31.79804687500001,3.802636718749994],[32.13593750000001,3.519726562499997],[32.33574218750002,3.706201171874994],[32.99726562500001,3.880175781249989],[33.489355468750006,3.755078125],[33.568457031250006,3.81171875],[33.74160156250002,3.985253906249994],[33.97607421875,4.22021484375],[34.13203125000001,3.88916015625],[34.18574218750001,3.869775390624994],[34.1650390625,3.81298828125],[34.26708984375,3.733154296875],[34.39287109375002,3.691503906249991],[34.43769531250001,3.650585937499997],[34.44179687500002,3.60625],[34.3994140625,3.412695312499991],[34.4072265625,3.357519531249991],[34.447851562500006,3.163476562499994],[34.90576171875,2.4796875],[34.88300781250001,2.417919921874997],[34.96406250000001,2.062402343749994],[34.9775390625,1.861914062499991],[34.97646484375002,1.719628906249994],[34.79863281250002,1.24453125],[34.48173828125002,1.042138671874994],[34.41083984375001,0.867285156249991],[34.16093750000002,0.605175781249997],[33.94316406250002,0.173779296874997],[33.90322265625002,-1.002050781250006],[32.371875,-1.002050781250006],[30.8447265625,-1.002050781250006],[30.823632812500023,-0.9990234375],[30.809179687500006,-0.994921875],[30.741992187500017,-1.007519531250011],[30.672753906250023,-1.051367187500006],[30.598730468750006,-1.069726562500009],[30.519921875000023,-1.0625],[30.50996093750001,-1.067285156250009]]]},"properties":{"name":"Uganda","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[32.01220703124997,46.20390624999999],[32.15009765625004,46.1546875],[31.56386718750005,46.25776367187504],[31.50878906250003,46.373144531250006],[32.01220703124997,46.20390624999999]]],[[[38.21435546875003,47.091455078124966],[37.54335937499999,47.07456054687498],[36.794824218749994,46.71440429687499],[36.55878906250004,46.76269531250006],[35.82714843749997,46.62431640625002],[35.01455078125005,46.10600585937502],[35.280175781249994,46.27949218750001],[35.23037109375005,46.440625],[34.84960937500003,46.189892578124955],[35.02285156250005,45.70097656250002],[35.45751953124997,45.316308593749994],[36.170507812500006,45.453076171874955],[36.575,45.3935546875],[36.39335937500002,45.06538085937501],[35.87011718750003,45.005322265624955],[35.472558593749994,45.098486328125006],[35.08769531250002,44.802636718749966],[34.46992187500004,44.7216796875],[33.909960937500074,44.387597656249966],[33.45068359374997,44.553662109374955],[33.55517578125003,45.09765625000003],[32.5080078125001,45.40380859375006],[33.664843750000074,45.94707031249996],[33.59414062500005,46.09624023437499],[33.42988281250004,46.05761718750003],[33.20224609375006,46.17573242187501],[32.47675781250004,46.08369140625001],[31.83125,46.28168945312501],[32.00849609375004,46.42998046875002],[31.554882812500097,46.554296875000034],[32.36132812499997,46.474951171875034],[32.578027343749994,46.615625],[32.04433593750005,46.642480468749966],[31.75917968750005,47.21284179687501],[31.872851562500017,46.649755859375034],[31.532128906249994,46.66474609374998],[31.56337890625005,46.77729492187501],[31.402929687500063,46.62880859375002],[30.796289062499994,46.55200195312503],[30.219042968750074,45.866748046875045],[29.62841796875003,45.722460937500045],[29.705859375000074,45.25991210937505],[29.567675781250074,45.37080078124998],[29.40371093750005,45.419677734375],[29.22353515625005,45.402929687500034],[28.894335937500017,45.28994140625002],[28.78173828125,45.30986328125002],[28.76660156250003,45.28623046874998],[28.78828125000001,45.240966796875],[28.451269531250006,45.292187499999955],[28.317675781250045,45.347119140624955],[28.2125,45.45043945312506],[28.26484375000004,45.48388671875003],[28.310351562500074,45.49858398437499],[28.499023437500057,45.517724609374994],[28.513769531250034,45.57241210937502],[28.49160156250005,45.66577148437503],[28.562304687500074,45.73579101562501],[28.667578125,45.79384765625002],[28.729296875000074,45.852001953124955],[28.73876953125003,45.937158203124994],[28.84951171875005,45.97866210937502],[28.94775390624997,46.049951171874966],[28.971875,46.12763671874998],[29.00625,46.17646484374998],[28.94375,46.28842773437506],[28.930566406250023,46.36225585937501],[28.92744140625001,46.42412109374999],[28.958398437500023,46.45849609374997],[29.146289062500017,46.52690429687496],[29.186230468750068,46.52397460937499],[29.20078125,46.504980468750034],[29.20458984374997,46.37934570312501],[29.223828125000097,46.37695312499997],[29.458789062500017,46.453759765624994],[29.83789062499997,46.35053710937501],[29.878027343750063,46.360205078125034],[30.07568359375003,46.377832031249966],[30.131054687500097,46.42309570312506],[29.92431640624997,46.53886718750002],[29.934765625000097,46.625],[29.942480468750063,46.72377929687502],[29.918066406250063,46.78242187499998],[29.877832031249994,46.828906250000045],[29.57197265625004,46.96401367187502],[29.455664062500006,47.292626953124994],[29.134863281250006,47.48969726562501],[29.125390625000023,47.96455078125001],[28.42304687500001,48.146875],[28.34052734375001,48.144433593749994],[27.54921875000008,48.47773437500004],[27.22851562500003,48.37143554687506],[26.90058593750001,48.37192382812506],[26.847070312500023,48.387158203124955],[26.640429687500045,48.29414062500001],[26.618945312500017,48.25986328125006],[26.4423828125,48.22998046875],[26.162695312500063,47.992529296875034],[25.90869140625,47.96757812500002],[25.689257812500045,47.93247070312506],[25.46425781250005,47.910791015624994],[24.979101562500063,47.72412109374997],[24.578906250000074,47.93105468750005],[23.628710937500017,47.995849609375],[23.40820312500003,47.98999023437506],[23.20263671875,48.084521484375045],[23.13945312499999,48.08740234375],[22.87666015625001,47.94726562500006],[22.769140625000063,48.109619140625],[22.582421875000023,48.134033203125],[22.253710937500017,48.407373046874994],[22.131835937500057,48.40532226562502],[22.142871093750017,48.568505859374966],[22.295214843750045,48.68583984374999],[22.389453125000045,48.87348632812501],[22.52412109375004,49.03139648437502],[22.538671875,49.07270507812501],[22.847070312500023,49.08125],[22.705664062500006,49.17119140624999],[22.6494140625,49.53901367187498],[22.706152343750006,49.60620117187497],[23.03632812500004,49.899072265624966],[23.711718750000045,50.377343749999966],[23.97265625,50.410058593749966],[24.089941406250006,50.53046874999998],[24.0947265625,50.617041015625034],[23.9970703125,50.809375],[24.095800781250063,50.87275390625001],[23.664453125000023,51.31005859375],[23.61376953125,51.525390625],[23.706835937500045,51.64130859374998],[23.79169921875001,51.63710937500002],[23.864257812500057,51.62397460937501],[23.951171875,51.58505859374998],[23.978320312500017,51.59130859375003],[24.12685546875008,51.664648437500034],[24.280078125000017,51.77470703124999],[24.361914062500006,51.86752929687498],[25.785742187500006,51.923828125],[26.77343750000003,51.77070312499998],[26.952832031249983,51.754003906250034],[27.074121093750023,51.760839843750006],[27.14199218750008,51.75205078124998],[27.29628906250008,51.59741210937503],[27.689746093750017,51.572412109374994],[27.7,51.47797851562501],[27.85859375000004,51.59238281250006],[28.532031250000017,51.56245117187501],[28.59902343750008,51.54262695312505],[28.647753906250074,51.45654296875],[28.690234375000017,51.43886718750005],[28.73125,51.43339843749999],[28.84951171875005,51.540185546874994],[28.927539062500045,51.56215820312502],[28.97773437500004,51.57177734375003],[29.01308593750005,51.59892578124996],[29.06074218750001,51.625439453124955],[29.102050781250057,51.627539062500034],[29.346484375000017,51.38256835937503],[30.160742187500006,51.477880859375006],[30.449511718750017,51.274316406249994],[30.63251953125004,51.35541992187501],[30.61171875000005,51.406347656250006],[30.602343750000017,51.47124023437499],[30.56074218750004,51.531494140625],[30.533007812500017,51.596337890624966],[30.583886718749994,51.68896484375003],[30.667285156250017,51.81411132812502],[30.755273437499994,51.89516601562502],[30.84570312500003,51.95307617187501],[30.980664062500097,52.04619140624996],[31.217968750000097,52.05024414062498],[31.345996093750074,52.10537109375002],[31.57373046875003,52.108105468749955],[31.763378906250097,52.10107421875003],[32.12226562500004,52.05058593749996],[32.435449218749994,52.307226562500034],[33.735253906249994,52.344775390625045],[34.397851562499994,51.780419921874994],[34.12109375000003,51.67915039062498],[34.21386718750003,51.25537109375006],[35.0640625,51.203417968750045],[35.31191406250005,51.043896484374955],[35.59111328125002,50.36875],[36.1164062500001,50.408544921875006],[36.619433593750074,50.209228515625],[37.42285156249997,50.411474609375006],[38.046875,49.92001953125006],[38.258593750000074,50.05234375],[38.91835937499999,49.82470703125],[39.17480468750003,49.85595703124997],[39.780566406250074,49.57202148437503],[40.080664062500006,49.576855468749955],[40.10878906250005,49.251562500000034],[39.68652343749997,49.007910156250034],[40.00361328125004,48.82207031250002],[39.792871093749994,48.807714843750034],[39.6447265625001,48.591210937499966],[39.8356445312501,48.54277343749996],[39.95791015625005,48.268896484375034],[39.77871093750005,47.88754882812506],[38.90029296875005,47.85512695312502],[38.36884765625004,47.609960937500006],[38.21435546875003,47.091455078124966]]]]},"properties":{"name":"Ukraine","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-57.81059570312499,-30.85859375000001],[-57.872509765625,-30.59101562500001],[-57.831201171874994,-30.495214843750006],[-57.71269531249999,-30.38447265625001],[-57.65087890625,-30.295019531250006],[-57.645751953125,-30.226953125],[-57.60888671875,-30.187792968750003],[-57.55229492187499,-30.26123046875],[-57.21445312499999,-30.28339843750001],[-57.186914062499994,-30.26484375000001],[-57.120507812499994,-30.14443359375001],[-56.83271484375,-30.107226562500003],[-56.4072265625,-30.44746093750001],[-55.998974609375,-30.837207031250003],[-56.018457031249994,-30.99189453125001],[-56.00468749999999,-31.079199218750006],[-55.873681640624994,-31.069628906250003],[-55.6271484375,-30.85810546875001],[-55.60302734375,-30.85078125000001],[-55.55732421875,-30.8759765625],[-55.17353515625,-31.279589843750003],[-55.09116210937499,-31.31396484375],[-55.036035156249994,-31.27900390625001],[-54.587646484375,-31.48515625],[-54.22055664062499,-31.85517578125001],[-53.76171875,-32.05683593750001],[-53.601708984374994,-32.40302734375001],[-53.12558593749999,-32.73671875],[-53.2140625,-32.82109375],[-53.31010742187499,-32.92705078125],[-53.39521484375,-33.010351562500006],[-53.482861328125,-33.06855468750001],[-53.511865234374994,-33.10869140625],[-53.53134765624999,-33.1708984375],[-53.53134765624999,-33.65546875000001],[-53.37060546875,-33.7421875],[-53.419580078124994,-33.77919921875001],[-53.47246093749999,-33.84931640625001],[-53.53452148437499,-34.01748046875001],[-53.742919921875,-34.24951171875],[-53.785302734374994,-34.38037109375],[-54.16855468749999,-34.670703125],[-54.902294921875,-34.93281250000001],[-55.67314453124999,-34.77568359375],[-56.249951171875,-34.90126953125001],[-57.17070312499999,-34.45234375000001],[-57.8291015625,-34.47734375],[-58.40019531249999,-33.91240234375],[-58.363525390625,-33.18232421875001],[-58.08232421874999,-32.893652343750006],[-58.12958984375,-32.75722656250001],[-58.16220703124999,-32.566503906250006],[-58.201171875,-32.4716796875],[-58.123046875,-32.321875],[-58.11972656249999,-32.24892578125001],[-58.164794921875,-32.18486328125],[-58.177001953125,-32.11904296875001],[-58.15634765624999,-32.0515625],[-58.160400390625,-31.98652343750001],[-58.18901367187499,-31.92421875],[-58.16748046875,-31.87265625],[-58.04233398437499,-31.76923828125001],[-58.006982421874994,-31.68496093750001],[-58.053857421874994,-31.494921875],[-58.0333984375,-31.416601562500006],[-57.89335937499999,-31.1953125],[-57.868408203125,-31.10439453125001],[-57.88632812499999,-30.93740234375001],[-57.81059570312499,-30.85859375000001]]]},"properties":{"name":"Uruguay","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-155.58134765624996,19.012011718750017],[-155.88129882812495,19.07050781250001],[-156.04868164062498,19.749951171874983],[-155.82031249999997,20.01416015624997],[-155.83164062499998,20.27583007812501],[-155.198779296875,19.99438476562503],[-154.80419921875,19.524462890625045],[-155.58134765624996,19.012011718750017]]],[[[-156.84960937499997,20.772656249999955],[-156.97338867187497,20.757519531249983],[-157.0505859375,20.912451171875034],[-156.88056640624995,20.904833984375074],[-156.84960937499997,20.772656249999955]]],[[[-156.48681640624994,20.93256835937504],[-156.27753906250004,20.951269531250034],[-155.98984374999998,20.75712890624999],[-156.40878906249998,20.60517578125004],[-156.480078125,20.80122070312501],[-156.69775390625003,20.949072265625034],[-156.58540039062495,21.034326171874994],[-156.48681640624994,20.93256835937504]]],[[[-157.21362304687497,21.215380859375017],[-156.71215820312506,21.155078125000074],[-156.85986328125,21.05634765625004],[-157.29033203124996,21.112597656250017],[-157.21362304687497,21.215380859375017]]],[[[-157.79936523437502,21.456640625000034],[-157.63540039062502,21.30761718749997],[-158.11035156249994,21.318603515625],[-158.27314453125,21.585253906250045],[-157.9625,21.701367187499983],[-157.79936523437502,21.456640625000034]]],[[[-159.37275390625,21.93237304687497],[-159.60883789062495,21.909521484375034],[-159.78916015625003,22.041796875000074],[-159.57919921874998,22.22314453124997],[-159.35205078124997,22.219580078125034],[-159.37275390625,21.93237304687497]]],[[[-81.04418945312503,24.716796875000057],[-81.137353515625,24.710498046875017],[-80.93046875,24.75947265625004],[-81.04418945312503,24.716796875000057]]],[[[-80.3818359375,25.142285156249955],[-80.58056640624997,24.954248046875023],[-80.25708007812497,25.34760742187504],[-80.3818359375,25.142285156249955]]],[[[-97.17070312499996,26.159375],[-97.40209960937494,26.820507812499983],[-97.38598632812494,27.19648437500004],[-97.17070312499996,26.159375]]],[[[-80.18676757812497,27.278417968750034],[-80.17050781250003,27.20478515625004],[-80.43691406249994,27.850537109374955],[-80.18676757812497,27.278417968750034]]],[[[-91.793701171875,29.50073242187497],[-92.00664062499996,29.61030273437501],[-91.875244140625,29.640966796875034],[-91.793701171875,29.50073242187497]]],[[[-84.90791015624998,29.642626953125017],[-85.11674804687499,29.63281249999997],[-84.737158203125,29.732421875],[-84.90791015624998,29.642626953125017]]],[[[-89.22397460937498,30.084082031249977],[-89.34199218749995,30.062841796875006],[-89.18466796874995,30.168652343749983],[-89.22397460937498,30.084082031249977]]],[[[-118.34794921875002,33.3857421875],[-118.29746093750003,33.312109375],[-118.44628906249997,33.317089843749955],[-118.56943359375002,33.46416015624999],[-118.34794921875002,33.3857421875]]],[[[-120.04355468749995,33.918847656249994],[-120.25190429687494,34.01386718749998],[-120.07182617187493,34.026513671874966],[-120.04355468749995,33.918847656249994]]],[[[-119.88237304687497,34.07968749999998],[-119.54926757812497,34.02817382812506],[-119.80957031249997,33.9677734375],[-119.88237304687497,34.07968749999998]]],[[[-75.54414062499995,35.240087890625034],[-75.69008789062502,35.221582031249994],[-75.53637695312497,35.27861328124999],[-75.50351562500003,35.769140625],[-75.46474609374994,35.448632812499966],[-75.54414062499995,35.240087890625034]]],[[[-74.13320312500002,39.680761718750034],[-74.25048828125,39.529394531250006],[-74.10673828124996,39.74643554687498],[-74.13320312500002,39.680761718750034]]],[[[-72.50976562500003,40.98603515625001],[-72.58085937499996,40.92133789062498],[-71.90322265625,41.06069335937505],[-73.19428710937495,40.654199218749994],[-74.01489257812497,40.581201171874966],[-73.87924804687498,40.79165039062502],[-73.573828125,40.91962890624998],[-72.62509765624998,40.99184570312505],[-72.27412109374998,41.15302734375001],[-72.50976562500003,40.98603515625001]]],[[[-69.9779296875,41.26557617187504],[-70.23305664062502,41.28632812500001],[-70.04121093750001,41.3974609375],[-69.9779296875,41.26557617187504]]],[[[-70.50991210937502,41.376318359375034],[-70.82919921874995,41.35898437500006],[-70.61601562499996,41.45722656250001],[-70.50991210937502,41.376318359375034]]],[[[-71.24140625000001,41.49194335937497],[-71.34624023437496,41.469384765624994],[-71.23203124999995,41.654296875],[-71.24140625000001,41.49194335937497]]],[[[-68.18725585937497,44.33247070312501],[-68.41171875000003,44.294335937499966],[-68.29941406249998,44.456494140624955],[-68.18725585937497,44.33247070312501]]],[[[-122.394140625,47.39526367187503],[-122.50991210937497,47.358007812500006],[-122.486474609375,47.48876953125],[-122.394140625,47.39526367187503]]],[[[-122.57275390624999,48.15664062499999],[-122.38315429687499,47.923193359375034],[-122.74150390624999,48.22529296875004],[-122.62861328125,48.38422851562498],[-122.54243164062503,48.29399414062499],[-122.69702148437499,48.228662109374994],[-122.57275390624999,48.15664062499999]]],[[[-94.80346679687497,49.0029296875],[-94.71279296874997,48.863427734374994],[-94.62089843749999,48.74262695312501],[-93.85161132812496,48.607275390625034],[-93.70771484374995,48.52543945312499],[-93.37788085937498,48.61655273437498],[-93.25795898437497,48.62885742187501],[-92.83671875,48.567773437499994],[-92.50058593749995,48.43535156250002],[-92.41459960937493,48.276611328125],[-92.3484375,48.276611328125],[-92.00517578125002,48.301855468750006],[-91.38720703124997,48.05854492187498],[-91.04345703125003,48.19370117187498],[-90.84033203125003,48.20053710937506],[-90.79731445312495,48.13105468750001],[-89.4556640625,47.996240234374994],[-88.37817382812497,48.30307617187498],[-87.74389648437497,48.06054687500003],[-87.20800781249997,47.848486328125006],[-86.67216796874996,47.636425781249955],[-85.65224609375,47.21997070312503],[-85.07006835937497,46.97993164062498],[-84.87597656249994,46.89990234375003],[-84.66577148437503,46.54326171875002],[-84.44047851562496,46.49814453125006],[-84.12319335937497,46.50292968749997],[-83.97778320312503,46.08491210937498],[-83.61596679687503,46.116845703124994],[-83.46948242187503,45.99467773437499],[-83.59267578125,45.81713867187506],[-82.91933593749994,45.51796875000002],[-82.55107421874996,45.34736328125001],[-82.48505859374993,45.08374023437503],[-82.137841796875,43.570898437500034],[-82.19038085937495,43.47407226562501],[-82.54531249999997,42.62470703124998],[-83.10952148437497,42.25068359375001],[-83.141943359375,41.97587890624996],[-82.69003906249995,41.675195312499994],[-82.43906249999998,41.67485351562502],[-81.97416992187496,41.88872070312499],[-81.50732421874997,42.10346679687504],[-81.02822265624997,42.247167968750006],[-80.24755859375,42.36601562499996],[-79.17373046875,42.74853515625],[-78.91508789062496,42.90913085937504],[-78.98076171874993,42.98061523437502],[-79.02617187499996,43.01733398437506],[-79.066064453125,43.10610351562502],[-79.171875,43.466552734375],[-79.00249023437502,43.52714843749999],[-78.845556640625,43.58334960937498],[-78.72041015625001,43.62495117187501],[-78.45825195312497,43.63149414062502],[-77.596533203125,43.62861328124998],[-76.819970703125,43.62880859375002],[-76.18579101562503,44.24223632812502],[-75.81933593749997,44.468017578125],[-75.40126953124997,44.77226562499999],[-74.99614257812496,44.970117187499966],[-74.76245117187494,44.99907226562502],[-74.663232421875,45.00390625000003],[-71.51752929687495,45.00756835937497],[-71.327294921875,45.29008789062496],[-70.86503906249999,45.27070312500001],[-70.296240234375,45.90610351562506],[-70.00771484375002,46.70893554687501],[-69.24287109374998,47.46298828124998],[-69.0501953125,47.426611328125034],[-68.93720703124998,47.21123046875002],[-68.23549804687502,47.34594726562503],[-67.806787109375,47.08281249999999],[-67.80224609374994,45.7275390625],[-67.43266601562496,45.603125],[-67.366943359375,45.17377929687498],[-67.12485351562498,45.16943359375],[-66.98701171874995,44.82768554687502],[-67.191259765625,44.67558593750002],[-67.83906249999998,44.576269531250034],[-68.056640625,44.38432617187502],[-68.15205078124998,44.50200195312499],[-68.45058593749997,44.50761718749999],[-68.53251953124996,44.25864257812498],[-68.81191406249994,44.33935546875],[-68.76269531249994,44.57075195312498],[-69.22607421875003,43.98647460937505],[-69.52075195312503,43.89736328125002],[-69.55668945312496,43.982763671875006],[-69.62392578125,43.88061523437497],[-69.65288085937493,43.99389648437506],[-69.808349609375,43.772314453125034],[-69.965234375,43.855078125],[-70.17880859374998,43.76635742187506],[-70.73310546875001,43.07001953125004],[-70.82905273437493,42.82534179687502],[-70.61293945312497,42.623242187499955],[-71.04619140624993,42.331103515625045],[-70.73828125,42.228857421875006],[-70.42666015625002,41.75727539062501],[-70.00141601562498,41.82617187500003],[-70.24106445312495,42.09121093750002],[-70.10893554687496,42.07832031249998],[-69.97788085937498,41.961279296875006],[-69.94863281249997,41.67714843750005],[-70.65712890625,41.53422851562496],[-70.70112304687498,41.71484375],[-71.1685546875,41.489404296874994],[-71.14873046874996,41.74570312499998],[-71.27109375,41.68125],[-71.39013671875003,41.79531250000005],[-71.52285156249997,41.378955078125045],[-72.92470703125002,41.28515625000003],[-73.98710937499999,40.751367187499994],[-73.87197265625,41.05517578124997],[-73.96992187499995,41.24970703125001],[-73.92719726562495,40.914257812499955],[-74.26420898437496,40.52861328124999],[-73.972265625,40.40034179687498],[-74.079931640625,39.78813476562496],[-74.06459960937497,39.99311523437498],[-74.79448242187499,39.00190429687501],[-74.95429687499995,38.949951171875],[-74.89702148437502,39.14545898437504],[-75.52421874999999,39.49018554687501],[-75.421875,39.78969726562502],[-75.07416992187495,39.98349609375006],[-75.40063476562503,39.83159179687502],[-75.58759765625001,39.64077148437505],[-75.3921875,39.09277343750006],[-75.08867187499999,38.777539062499955],[-75.18710937499995,38.59111328124999],[-75.03876953124993,38.426367187500006],[-75.934375,37.15190429687496],[-75.97504882812498,37.3984375],[-75.65927734374995,37.953955078125034],[-75.850830078125,37.971582031249994],[-75.85869140624999,38.36206054687503],[-76.05122070312495,38.27954101562503],[-76.2646484375,38.436425781249994],[-76.26416015625,38.599951171875006],[-76.016943359375,38.62509765624998],[-76.21298828124998,38.75830078125003],[-76.34116210937498,38.70966796874998],[-76.16816406249998,38.85273437499998],[-76.32958984375,38.95278320312505],[-76.13520507812493,39.082128906250006],[-76.23569335937498,39.19160156250001],[-76.153125,39.315039062500034],[-75.87597656249997,39.3759765625],[-76.003125,39.41083984375001],[-75.87294921874997,39.510888671874966],[-75.95893554687498,39.58505859374998],[-76.2763671875,39.32275390625],[-76.330810546875,39.40390625],[-76.42089843749997,39.225],[-76.57041015624995,39.26933593749996],[-76.42758789062498,39.12602539062499],[-76.55854492187493,39.065234375000045],[-76.39409179687502,38.368994140625034],[-76.67734374999998,38.611962890624966],[-76.66855468749998,38.5375],[-76.34116210937498,38.08701171875006],[-76.86811523437495,38.39028320312502],[-76.88974609375,38.292089843750006],[-77.00117187499995,38.44526367187504],[-77.23251953125,38.40771484375003],[-77.03037109374995,38.88925781249998],[-77.26040039062502,38.6],[-77.27324218749996,38.35175781249998],[-77.04677734375002,38.356689453125],[-76.26425781250003,37.89355468749997],[-76.34414062499997,37.675683593749994],[-76.49248046874999,37.682226562500006],[-77.11108398437497,38.165673828124994],[-76.54946289062494,37.66914062500001],[-76.30556640625,37.57148437500001],[-76.26347656249996,37.35703125],[-76.40097656249998,37.386132812499994],[-76.45390624999993,37.27353515625006],[-76.75771484375002,37.50541992187496],[-76.28330078125,37.05268554687501],[-76.40087890624997,36.991308593750034],[-76.63090820312493,37.22172851562499],[-77.25087890624994,37.329199218750034],[-76.671875,37.172949218750006],[-76.48784179687502,36.89702148437499],[-75.99941406249997,36.91264648437499],[-75.53417968749997,35.81909179687506],[-75.94648437499995,36.65908203125002],[-75.99277343749995,36.47377929687502],[-75.82006835937494,36.11284179687502],[-76.14785156250002,36.279296875],[-76.15,36.14575195312497],[-76.27060546874998,36.18989257812501],[-76.22739257812498,36.11601562499996],[-76.559375,36.015332031249955],[-76.733642578125,36.229150390624994],[-76.726220703125,35.957617187500034],[-76.06977539062501,35.970312500000034],[-76.08359374999998,35.69052734375006],[-75.85390625,35.96015625000001],[-75.75883789062499,35.84326171875],[-75.77392578124997,35.64697265624997],[-76.17382812499997,35.354150390624994],[-76.489501953125,35.397021484375045],[-76.57719726562502,35.53232421874998],[-76.74140624999998,35.431494140625034],[-77.03999023437495,35.527392578125045],[-76.51293945312497,35.270410156249994],[-76.77915039062503,34.990332031250034],[-77.07026367187501,35.154638671875034],[-76.97495117187503,35.025195312500045],[-76.74497070312498,34.94096679687502],[-76.45673828124998,34.989355468750034],[-76.36220703125,34.9365234375],[-76.43979492187498,34.84291992187502],[-77.29624023437503,34.602929687499994],[-77.41225585937497,34.730810546875034],[-77.37978515625,34.526611328125],[-77.750732421875,34.28496093749996],[-77.92783203125,33.93974609374999],[-77.95327148437494,34.16899414062496],[-78.01333007812502,33.91181640624998],[-78.40585937499995,33.91757812499998],[-78.84145507812497,33.72407226562501],[-79.19379882812498,33.24414062500003],[-79.22646484375,33.40488281249998],[-79.27602539062497,33.135400390624966],[-79.80498046874999,32.78740234374996],[-79.93310546874997,32.81005859375006],[-79.94072265625002,32.667138671874966],[-80.36284179687496,32.500732421875],[-80.6341796875,32.51171875000003],[-80.474267578125,32.42275390625002],[-80.579345703125,32.28730468750004],[-80.80253906249999,32.44804687500002],[-80.69423828124997,32.21572265625002],[-81.11328124999997,31.87861328125001],[-81.06611328124995,31.787988281250023],[-81.259375,31.538916015624977],[-81.17543945312494,31.531298828125017],[-81.38095703124998,31.353271484375],[-81.28847656249997,31.263916015625],[-81.441748046875,31.19970703124997],[-81.5162109375,30.801806640625017],[-81.24951171875003,29.793798828125006],[-80.52412109374995,28.48608398437503],[-80.5849609375,28.271582031250034],[-80.456884765625,27.90068359374996],[-80.61000976562494,28.177587890624977],[-80.60693359375003,28.522900390624983],[-80.693505859375,28.34497070312497],[-80.68847656250003,28.578515625000023],[-80.83818359374999,28.757666015625034],[-80.74863281250003,28.381005859375023],[-80.050048828125,26.807714843750063],[-80.1263671875,25.83349609375],[-80.48466796874999,25.229833984375034],[-81.11049804687494,25.138037109374977],[-81.13603515624999,25.309667968750034],[-80.94042968750003,25.264208984375017],[-81.11333007812499,25.367236328125045],[-81.36494140625001,25.83105468750003],[-81.715478515625,25.98315429687503],[-81.95893554687495,26.489941406249983],[-81.82866210937496,26.68706054687499],[-82.03959960937496,26.552050781250017],[-82.01328125,26.96157226562505],[-82.24287109374998,26.848876953125],[-82.44135742187501,27.059667968750034],[-82.71459960937497,27.499609375000063],[-82.40576171874994,27.862890624999977],[-82.67519531249994,27.963769531250023],[-82.61098632812502,27.77724609375005],[-82.74287109374995,27.709375],[-82.84350585937494,27.845996093750017],[-82.65146484375,28.8875],[-83.69438476562502,29.92597656250001],[-84.04423828124996,30.10380859374999],[-84.30966796874995,30.064746093750045],[-84.38281250000003,29.90737304687505],[-85.31894531249995,29.680224609375045],[-85.413818359375,29.76757812499997],[-85.413818359375,29.842480468749955],[-85.31489257812493,29.758105468750017],[-85.35361328125,29.875732421875],[-85.67578125,30.121923828125063],[-85.60351562500003,30.286767578124966],[-85.75581054687495,30.1669921875],[-86.454443359375,30.39912109375004],[-86.12382812499999,30.40581054687499],[-86.25737304687502,30.493017578124977],[-87.201171875,30.339257812499994],[-86.98579101562498,30.43085937500001],[-86.99755859375,30.5703125],[-87.17060546874998,30.538769531249983],[-87.28105468750002,30.339257812499994],[-87.47578124999998,30.294287109375006],[-87.44829101562499,30.394140625],[-87.62226562499998,30.264746093750006],[-88.00595703124998,30.230908203124955],[-87.79028320312503,30.291796875000017],[-88.011328125,30.694189453125006],[-88.13544921874998,30.366601562499994],[-88.90522460937495,30.415136718750006],[-89.32055664062503,30.3453125],[-89.58847656249998,30.165966796874955],[-90.12597656249997,30.369091796874955],[-90.33198242187493,30.277587890625057],[-90.41303710937501,30.140332031249983],[-90.17534179687499,30.02910156249996],[-89.73745117187497,30.171972656250034],[-89.66503906249994,30.117041015625034],[-89.81518554687497,30.007275390624955],[-89.631689453125,29.90380859375003],[-89.400732421875,30.04604492187505],[-89.35444335937501,29.82021484375005],[-89.72089843749995,29.619287109374966],[-89.01572265625,29.202880859375057],[-89.15551757812497,29.01660156250003],[-89.23608398437494,29.081103515625017],[-89.37612304687497,28.981347656250023],[-89.44316406249996,29.194140625000045],[-90.15908203124997,29.537158203125017],[-90.05278320312499,29.336816406249966],[-90.21279296875,29.104931640624983],[-90.37919921874996,29.29511718750001],[-90.75102539062496,29.13085937500003],[-91.29013671875,29.288964843749994],[-91.15078124999994,29.317919921875045],[-91.24882812499993,29.56420898437503],[-91.51420898437499,29.55537109375001],[-91.8931640625,29.836035156249977],[-92.135498046875,29.699462890625057],[-92.08403320312499,29.59282226562499],[-92.26083984374995,29.55683593750004],[-93.17568359375,29.778955078124994],[-93.82646484374999,29.725146484375045],[-93.84145507812502,29.97973632812503],[-93.89047851562495,29.689355468750023],[-94.759619140625,29.384277343750057],[-94.52626953125,29.547949218750006],[-94.77827148437498,29.54785156249997],[-94.74194335937497,29.75],[-95.0228515625,29.70234375000001],[-94.88828125000003,29.37055664062501],[-95.27348632812499,28.96386718750003],[-96.23452148437502,28.488964843749983],[-96.01103515624996,28.631933593749977],[-96.44873046874997,28.594482421875],[-96.64003906249994,28.708789062500017],[-96.42109374999993,28.457324218750045],[-96.67636718749998,28.34130859375003],[-96.77353515624998,28.421630859375057],[-96.839501953125,28.194384765625017],[-97.156494140625,28.144335937500045],[-97.141259765625,28.060742187499983],[-97.034326171875,28.093847656250063],[-97.07309570312498,27.98608398437503],[-97.43149414062498,27.83720703124999],[-97.28872070312494,27.670605468749983],[-97.43911132812502,27.328271484374966],[-97.76845703124997,27.45751953125],[-97.69238281250003,27.287158203125017],[-97.48510742187497,27.237402343750006],[-97.55468749999994,26.96733398437496],[-97.43505859375,26.48583984375003],[-97.14624023437494,25.961474609375045],[-97.37563476562497,25.871826171875],[-99.10776367187498,26.446923828124994],[-99.45654296874999,27.05668945312496],[-99.50532226562497,27.54833984375003],[-100.29604492187495,28.32768554687499],[-100.75458984375001,29.182519531249994],[-101.44038085937503,29.77685546875],[-102.26894531249998,29.871191406250034],[-102.61494140624994,29.75234375],[-102.8919921875,29.216406250000034],[-103.16831054687498,28.998193359374994],[-104.110595703125,29.386132812499994],[-104.50400390624995,29.677685546874955],[-104.97880859374996,30.645947265624955],[-106.14804687499995,31.450927734375],[-106.44541015624996,31.768408203125006],[-108.21181640625002,31.779345703125017],[-108.21445312499993,31.329443359375034],[-111.0419921875,31.32421875000003],[-114.83593749999994,32.50830078125003],[-114.72475585937495,32.71533203125003],[-117.12827148437495,32.533349609374994],[-117.46743164062495,33.295507812500006],[-118.08051757812497,33.72216796874997],[-118.41044921874996,33.74394531249996],[-118.506201171875,34.01738281249999],[-119.14375,34.11201171874998],[-119.60605468749999,34.41801757812499],[-120.48120117187503,34.47163085937498],[-120.64467773437502,34.57998046875002],[-120.65908203124994,35.122412109375034],[-120.85737304687501,35.209667968749955],[-120.899609375,35.42509765624999],[-121.28383789062494,35.67631835937499],[-121.87739257812498,36.33105468749997],[-121.80742187499995,36.851220703124994],[-122.394921875,37.20751953125003],[-122.49921875000001,37.542626953124994],[-122.44560546875002,37.797998046874966],[-122.07050781249998,37.47827148437503],[-122.38544921875001,37.960595703124966],[-122.31425781249999,38.00732421874997],[-121.52534179687503,38.05590820312503],[-122.39335937499995,38.14482421875002],[-122.52133789062499,37.82641601562497],[-122.93198242187498,38.05546875000002],[-122.998779296875,37.98862304687498],[-122.90815429687501,38.19658203124999],[-123.701123046875,38.90727539062502],[-123.83291015624994,39.775488281250034],[-124.35654296875003,40.37109374999997],[-124.07192382812497,41.45952148437502],[-124.53964843750003,42.812890624999966],[-124.14873046874997,43.691748046875034],[-123.92934570312495,45.57695312499996],[-123.989306640625,46.21938476562502],[-123.22060546874998,46.153613281250045],[-123.46484375,46.27109374999998],[-124.07275390624996,46.279443359374994],[-124.04433593750002,46.605078125],[-123.946142578125,46.43256835937501],[-123.88916015625003,46.660009765625006],[-124.11254882812497,46.862695312499994],[-123.84287109375002,46.963183593750045],[-124.11171875,47.03520507812496],[-124.1392578125,46.95468749999998],[-124.376025390625,47.658642578124955],[-124.66308593749996,47.97412109375003],[-124.7099609375,48.38037109375],[-123.97578125,48.16845703125],[-122.97387695312499,48.07329101562496],[-122.77861328125,48.13759765625002],[-122.65664062500002,47.88115234374999],[-122.77841796874996,47.738427734374966],[-122.82138671875,47.79316406250001],[-123.1390625,47.386083984375034],[-122.92216796874993,47.40766601562498],[-123.066796875,47.39965820312506],[-123.04863281249995,47.479345703125034],[-122.53281250000002,47.919726562500045],[-122.67548828124995,47.612353515625045],[-122.57788085937496,47.29316406250001],[-122.76777343750001,47.21835937500006],[-122.82846679687503,47.336572265624994],[-123.02758789062501,47.13891601562503],[-122.70195312500002,47.11088867187502],[-122.35380859374996,47.37158203125],[-122.40180664062497,47.78427734374998],[-122.24199218750002,48.01074218750003],[-122.5169921875,48.15966796874997],[-122.40854492187502,48.29389648437498],[-122.66899414062496,48.465234374999966],[-122.49677734374995,48.50556640625001],[-122.51274414062502,48.66943359375],[-122.56201171875001,48.777978515624994],[-122.68593749999995,48.794287109375034],[-122.72246093750002,48.85302734375003],[-122.78876953125003,48.993017578125034],[-121.40722656249994,48.993017578125034],[-119.70170898437495,48.993017578125034],[-119.27534179687494,48.99306640625005],[-118.84892578124993,48.99306640625005],[-117.99619140625002,48.99306640625005],[-116.71704101562501,48.99306640625005],[-110.74765625,48.99306640625005],[-104.77832031249997,48.993115234374955],[-98.80898437499995,48.99316406249997],[-97.52983398437493,48.99316406249997],[-96.67705078124993,48.99316406249997],[-96.25068359374993,48.99316406249997],[-95.39790039062493,48.99316406249997],[-95.16206054687493,48.991748046875045],[-95.15527343749997,49.36967773437502],[-94.85434570312495,49.304589843749994],[-94.86040039062493,49.258593750000045],[-94.80346679687497,49.0029296875]]],[[[-176.28671874999998,51.79199218750006],[-176.34965820312502,51.733300781249994],[-176.41372070312502,51.840576171875],[-176.28671874999998,51.79199218750006]]],[[[-177.87905273437502,51.64970703125002],[-178.05888671875,51.67260742187497],[-177.98637695312493,51.76425781249998],[-178.16826171874996,51.90302734375001],[-177.644482421875,51.826269531250006],[-177.87905273437502,51.64970703125002]]],[[[-177.14819335937497,51.71674804687498],[-177.67021484375002,51.701074218749994],[-177.11005859375,51.92875976562502],[-177.14819335937497,51.71674804687498]]],[[[-176.593310546875,51.86669921875],[-176.45234374999995,51.735693359375034],[-176.96162109374998,51.60366210937505],[-176.69833984374998,51.986035156249955],[-176.593310546875,51.86669921875]]],[[[179.72773437500015,51.905419921874966],[179.50390625000003,51.97958984374998],[179.6271484375001,52.03041992187502],[179.72773437500015,51.905419921874966]]],[[[177.4154296875,51.88281249999997],[177.25029296875013,51.902929687500006],[177.6696289062501,52.10302734375],[177.4154296875,51.88281249999997]]],[[[-173.5533203125,52.13627929687502],[-173.02290039062504,52.07915039062502],[-173.83579101562498,52.048193359375006],[-173.99248046874993,52.12333984374996],[-173.5533203125,52.13627929687502]]],[[[-172.464794921875,52.27226562500002],[-172.61982421874998,52.27285156250005],[-172.47041015625,52.38803710937506],[-172.31362304687497,52.32958984375006],[-172.464794921875,52.27226562500002]]],[[[-174.67739257812502,52.035009765625006],[-175.29555664062502,52.022167968749955],[-174.30615234375,52.216162109375034],[-174.43554687499997,52.317236328125034],[-174.168896484375,52.42016601562503],[-174.04560546875,52.36723632812499],[-174.12065429687493,52.13520507812498],[-174.67739257812502,52.035009765625006]]],[[[173.72275390625018,52.35957031250004],[173.40234375000009,52.40478515625],[173.77607421875004,52.49511718750003],[173.72275390625018,52.35957031250004]]],[[[172.81181640625002,53.01298828125002],[173.43603515625003,52.85205078125],[172.93515625000012,52.752099609374966],[172.49482421875004,52.93789062499999],[172.81181640625002,53.01298828125002]]],[[[-167.96435546875003,53.345117187499994],[-169.088916015625,52.83203125],[-168.68984375000002,53.227246093749955],[-168.38041992187496,53.28344726562506],[-168.28769531249998,53.500146484374966],[-167.82807617187495,53.50795898437505],[-167.96435546875003,53.345117187499994]]],[[[-166.61533203124998,53.90092773437499],[-166.37231445312494,53.99897460937498],[-166.230859375,53.93261718750006],[-166.54560546875,53.726464843749966],[-166.354541015625,53.67353515625004],[-166.85097656249997,53.45288085937503],[-167.78085937500003,53.30024414062501],[-167.13608398437503,53.526464843750006],[-167.01572265625003,53.69838867187502],[-166.80898437500002,53.64614257812505],[-166.741259765625,53.71293945312496],[-167.10561523437497,53.813378906249994],[-167.03808593749997,53.9421875],[-166.67329101562498,54.00595703124998],[-166.61533203124998,53.90092773437499]]],[[[-165.841552734375,54.070654296875006],[-166.05664062500003,54.054345703124994],[-166.08774414062498,54.16914062500001],[-165.89287109375,54.20698242187498],[-165.69287109375,54.09990234375002],[-165.841552734375,54.070654296875006]]],[[[-165.56113281249998,54.13671874999997],[-165.55063476562498,54.28452148437498],[-165.40786132812502,54.19682617187496],[-165.56113281249998,54.13671874999997]]],[[[-162.29814453124993,54.847021484375006],[-162.43388671875,54.931542968749994],[-162.26459960937504,54.983496093750006],[-162.29814453124993,54.847021484375006]]],[[[-163.476025390625,54.98071289062497],[-163.37895507812496,54.81552734374998],[-163.083251953125,54.66899414062496],[-163.35810546874995,54.73569335937506],[-164.82343749999998,54.41909179687505],[-164.887646484375,54.60781250000002],[-164.47861328124998,54.906835937500006],[-163.80712890624997,55.04907226562503],[-163.476025390625,54.98071289062497]]],[[[-159.51513671875,55.15185546875003],[-159.617724609375,55.05732421875004],[-159.54506835937497,55.22597656250002],[-159.51513671875,55.15185546875003]]],[[[-131.33974609375002,55.079833984375],[-131.32954101562498,54.887744140625045],[-131.592236328125,55.02568359374999],[-131.5654296875,55.26411132812498],[-131.33974609375002,55.079833984375]]],[[[-159.87299804687495,55.128759765625034],[-160.22705078124997,54.92270507812506],[-160.17207031249995,55.123046875],[-159.88735351562497,55.27299804687502],[-159.87299804687495,55.128759765625034]]],[[[-132.86225585937504,54.894433593749966],[-132.61723632812493,54.892431640625006],[-132.70581054687497,54.684179687500034],[-133.42905273437498,55.30380859374998],[-133.097412109375,55.213720703125006],[-132.86225585937504,54.894433593749966]]],[[[-160.329296875,55.337695312500045],[-160.34331054687493,55.25878906250006],[-160.51748046875,55.33383789062506],[-160.329296875,55.337695312500045]]],[[[-160.68491210937498,55.314794921875006],[-160.552783203125,55.38076171875002],[-160.48754882812503,55.18486328124999],[-160.79506835937497,55.14521484375001],[-160.72392578124993,55.404638671875006],[-160.68491210937498,55.314794921875006]]],[[[-133.30507812500002,55.54375],[-133.6501953125,55.26928710937506],[-133.73710937500002,55.49692382812498],[-133.30507812500002,55.54375]]],[[[-155.56601562500003,55.82119140625005],[-155.73735351562493,55.82978515625001],[-155.59394531250004,55.92431640625],[-155.56601562500003,55.82119140625005]]],[[[-130.97915039062502,55.489160156249994],[-131.187890625,55.206298828125],[-131.44755859374996,55.40878906250006],[-131.7625,55.16582031250002],[-131.84609374999997,55.41625976562497],[-131.62495117187504,55.831689453124966],[-131.26923828125004,55.95537109375002],[-130.997802734375,55.727636718750006],[-130.97915039062502,55.489160156249994]]],[[[-133.56611328125,56.33920898437498],[-133.202978515625,56.31982421875003],[-133.096630859375,56.09003906250001],[-132.59760742187504,55.89501953125],[-132.17270507812498,55.48061523437502],[-132.51127929687493,55.59394531250001],[-132.63129882812495,55.47319335937502],[-132.41787109375002,55.48291015625006],[-132.20668945312497,55.22441406249996],[-131.97641601562498,55.208593750000034],[-132.06474609375002,54.713134765625],[-133.11855468750002,55.32763671875003],[-132.95888671875002,55.39555664062502],[-133.0333984375,55.589697265625034],[-133.68017578124994,55.78515625],[-133.24150390624993,55.920800781249994],[-133.371240234375,56.035888671875],[-133.74252929687498,55.96484375],[-133.530859375,56.145654296874966],[-133.56611328125,56.33920898437498]]],[[[-132.77988281249998,56.24726562499998],[-133.03500976562498,56.34091796875006],[-132.90205078124998,56.45375976562505],[-132.62910156249995,56.411914062500045],[-132.77988281249998,56.24726562499998]]],[[[-132.11235351562493,56.109375],[-132.13295898437497,55.94326171875005],[-132.28730468749995,55.92939453124998],[-132.65991210937503,56.07817382812499],[-132.379833984375,56.49877929687497],[-132.06689453125,56.24423828124998],[-132.11235351562493,56.109375]]],[[[-154.208642578125,56.51489257812497],[-154.32221679687504,56.570605468750045],[-154.11040039062496,56.602929687499966],[-154.208642578125,56.51489257812497]]],[[[-169.755224609375,56.63505859375002],[-169.47431640624998,56.59404296875002],[-169.6326171875,56.545703125000045],[-169.755224609375,56.63505859375002]]],[[[-132.746875,56.525683593750045],[-132.94804687500002,56.56723632812498],[-132.842529296875,56.79477539062506],[-132.56796875000003,56.57583007812505],[-132.746875,56.525683593750045]]],[[[-133.98959960937503,56.84497070312497],[-133.73837890625,56.65043945312496],[-133.94970703125,56.12773437499996],[-134.18959960937502,56.07695312500002],[-134.084375,56.456347656250045],[-134.37368164062502,56.838671875000045],[-134.14326171874998,56.93232421875001],[-133.98959960937503,56.84497070312497]]],[[[-133.36621093750006,57.003515625000034],[-132.99624023437497,56.93041992187497],[-132.95917968749998,56.67705078124996],[-133.03491210937494,56.62075195312505],[-133.32895507812498,56.83007812499997],[-133.158154296875,56.495166015625045],[-133.4841796875,56.45175781249998],[-133.979443359375,57.009570312500045],[-133.36621093750006,57.003515625000034]]],[[[-153.007080078125,57.12485351562498],[-153.37460937499998,57.05190429687505],[-153.285205078125,57.18505859375],[-152.90839843750004,57.152441406250006],[-153.007080078125,57.12485351562498]]],[[[-134.96977539062496,57.351416015625034],[-134.62070312499998,56.71831054687502],[-134.68188476562503,56.216162109375034],[-134.98056640625003,56.518945312499994],[-134.88344726562497,56.679052734375034],[-135.33061523437505,56.821875],[-135.19960937499997,57.02734375],[-135.45493164062503,57.24941406250005],[-135.81230468750002,57.00952148437503],[-135.82275390625,57.280419921874966],[-135.448681640625,57.534375],[-134.96977539062496,57.351416015625034]]],[[[-152.89804687499998,57.82392578125004],[-152.42875976562493,57.82568359375003],[-152.48261718749998,57.70332031249998],[-152.21621093749997,57.577001953125006],[-152.41220703125003,57.454785156249955],[-152.94077148437498,57.49809570312499],[-152.67905273437503,57.345117187499994],[-153.274365234375,57.22636718749996],[-153.732568359375,57.052343750000034],[-153.643310546875,56.960742187500045],[-154.02734375,56.77797851562502],[-153.793212890625,56.98950195312503],[-154.24375,57.143017578124955],[-154.33896484374998,56.9208984375],[-154.67319335937498,57.44609375],[-154.11616210937498,57.651220703125006],[-153.6876953125,57.30512695312504],[-153.841552734375,57.86284179687496],[-153.48793945312497,57.73095703125],[-153.21748046875004,57.79575195312506],[-153.16044921875,57.97197265624999],[-152.85039062499993,57.896777343750045],[-152.89804687499998,57.82392578125004]]],[[[-135.73037109375002,58.244238281250034],[-135.61323242187507,57.99184570312505],[-135.346630859375,58.12412109374998],[-134.9546875,58.01533203125004],[-134.97065429687495,57.817236328125006],[-135.33847656250003,57.768652343750034],[-134.97885742187503,57.724365234375],[-134.93149414062498,57.48115234375001],[-135.564208984375,57.66640625],[-135.691943359375,57.41992187500006],[-135.91079101562502,57.44658203124999],[-136.568603515625,57.97216796875003],[-136.32197265625,58.21889648437502],[-136.14375,58.098486328125006],[-136.09438476562502,58.198144531249966],[-135.73037109375002,58.244238281250034]]],[[[-134.68027343749998,58.16166992187499],[-134.24008789062498,58.143994140624955],[-133.82275390624997,57.62866210937503],[-134.29233398437498,58.044726562500074],[-133.91113281250003,57.3525390625],[-134.51601562499997,57.042578125],[-134.48676757812495,57.48203125],[-134.92348632812497,58.354638671874966],[-134.68027343749998,58.16166992187499]]],[[[-152.416943359375,58.360205078125034],[-151.974365234375,58.30986328124999],[-152.068896484375,58.17792968750001],[-152.26835937499993,58.25170898437506],[-152.30922851562502,58.133886718750034],[-152.5982421875,58.16259765625],[-152.92841796875004,57.99370117187499],[-153.38134765625003,58.08720703125002],[-152.976123046875,58.29702148437505],[-152.771875,58.278564453125],[-152.84111328125002,58.41640625000002],[-152.416943359375,58.360205078125034]]],[[[-152.486083984375,58.485009765624966],[-152.63662109375002,58.54169921874998],[-152.3955078125,58.619384765625],[-152.486083984375,58.485009765624966]]],[[[-160.918994140625,58.57709960937498],[-161.13149414062502,58.668212890625],[-160.71513671875005,58.79521484375002],[-160.918994140625,58.57709960937498]]],[[[-148.02177734375,60.06533203125005],[-148.271875,60.05327148437499],[-148.07958984375003,60.151660156250045],[-148.02177734375,60.06533203125005]]],[[[-147.735888671875,59.81323242187503],[-147.76806640625,59.94375],[-147.180859375,60.358251953125034],[-147.01987304687498,60.33222656249998],[-147.735888671875,59.81323242187503]]],[[[-166.13544921875,60.38354492187503],[-165.72968750000004,60.31420898437503],[-165.591796875,59.913134765625045],[-166.14873046874996,59.764111328124955],[-167.13886718749998,60.00854492187503],[-167.43642578125002,60.20664062500006],[-166.836328125,60.21699218750004],[-166.47568359374998,60.382763671874955],[-166.13544921875,60.38354492187503]]],[[[-146.3939453125,60.44965820312501],[-146.10224609374998,60.41118164062499],[-146.61831054687497,60.27368164062503],[-146.70253906249997,60.40854492187498],[-146.3939453125,60.44965820312501]]],[[[-147.658251953125,60.45048828124999],[-147.787841796875,60.17792968749998],[-147.89145507812498,60.299414062500034],[-147.658251953125,60.45048828124999]]],[[[-172.74223632812496,60.45737304687498],[-172.23208007812494,60.299121093750074],[-172.63574218750003,60.328857421875],[-173.04765625000002,60.56831054687501],[-172.74223632812496,60.45737304687498]]],[[[-171.46303710937494,63.640039062499994],[-171.03486328125,63.58549804687499],[-170.29936523437502,63.68061523437501],[-169.55454101562498,63.373486328124955],[-168.71601562500004,63.310595703125045],[-168.76132812500003,63.21376953125002],[-169.364697265625,63.17114257812506],[-169.67636718750003,62.95610351562502],[-169.81860351562494,63.122363281250045],[-170.84838867187494,63.44438476562502],[-171.63183593749997,63.351220703124966],[-171.74638671874993,63.703076171874955],[-171.46303710937494,63.640039062499994]]],[[[-141.00214843750004,68.77416992187506],[-141.00214843750004,67.89755859374998],[-141.00214843750004,66.43652343750006],[-141.00214843750004,65.55991210937498],[-141.00214843750004,64.09887695312506],[-141.00214843750004,63.22226562499998],[-141.00214843750004,61.761279296875045],[-141.00214843750004,60.884667968749994],[-141.00214843750004,60.30024414062504],[-140.76274414062505,60.259130859375006],[-140.525439453125,60.218359375000034],[-140.45283203125004,60.29970703125002],[-139.97329101562497,60.183154296875074],[-139.67631835937505,60.32832031249998],[-139.23476562499997,60.339746093749994],[-139.07924804687497,60.34370117187501],[-139.07924804687497,60.279443359374966],[-139.136962890625,60.17270507812498],[-139.18515624999998,60.083593750000034],[-138.86875,59.94575195312501],[-138.317626953125,59.611132812500074],[-137.59331054687493,59.22626953124998],[-137.52089843750002,58.91538085937498],[-137.43857421875003,58.903125],[-137.2775390625,58.988183593749994],[-137.126220703125,59.04096679687498],[-136.81328125000002,59.150048828124994],[-136.57875976562502,59.15224609375002],[-136.46635742187493,59.459082031250006],[-136.27797851562502,59.48032226562506],[-136.321826171875,59.604833984375034],[-135.70258789062504,59.72875976562506],[-135.36787109374998,59.743310546874994],[-135.051025390625,59.57866210937502],[-134.94375,59.28828125000001],[-134.67724609374997,59.19926757812499],[-134.39306640625,59.009179687499994],[-134.32963867187505,58.93969726562506],[-134.21850585937503,58.849902343750045],[-133.54638671874997,58.50346679687499],[-133.27529296875,58.22285156250004],[-133.00141601562495,57.948974609375],[-132.55048828125,57.499902343749994],[-132.44248046874998,57.40673828125003],[-132.30166015624997,57.27631835937501],[-132.232177734375,57.19853515624999],[-132.27939453124998,57.14536132812498],[-132.33798828124998,57.07944335937506],[-132.15703125,57.048193359375006],[-132.03154296875,57.02656250000004],[-132.062890625,56.95336914062503],[-132.104296875,56.856787109375006],[-131.86616210937495,56.792822265625006],[-131.82426757812496,56.589990234374994],[-131.471875,56.55673828125006],[-130.649072265625,56.26367187500003],[-130.47709960937496,56.230566406250034],[-130.413134765625,56.12250976562498],[-130.09785156249995,56.10927734375002],[-130.01406249999997,55.950537109375006],[-130.2140625,55.02587890625003],[-130.57534179687497,54.769677734374966],[-130.849609375,54.80761718750006],[-131.04785156249997,55.157666015624955],[-130.74819335937502,55.31801757812502],[-131.127685546875,55.96015625000001],[-131.032763671875,56.08808593749998],[-131.78417968749997,55.876562500000034],[-131.98339843749994,55.535009765625006],[-132.15541992187502,55.59956054687501],[-132.20751953124997,55.75341796875],[-131.84384765625003,56.16010742187498],[-131.55136718749998,56.206787109375],[-131.88789062500004,56.24165039062498],[-132.18203125000002,56.42065429687506],[-132.82460937500002,57.05581054687505],[-133.465869140625,57.17216796875002],[-133.64873046874993,57.64228515624998],[-133.11704101562498,57.56621093750002],[-133.535205078125,57.83295898437501],[-133.1943359375,57.87768554687506],[-133.559375,57.924462890624994],[-133.72231445312502,57.84423828125],[-134.03110351562498,58.072167968749966],[-133.87675781249996,58.51816406249998],[-134.20883789062503,58.232958984375045],[-134.77612304687506,58.45385742187503],[-135.36367187500002,59.41943359375],[-135.50234375000002,59.202294921874994],[-135.090234375,58.245849609375],[-135.57177734374994,58.41206054687504],[-135.89755859374998,58.40019531250002],[-136.04311523437497,58.82163085937498],[-135.82636718750004,58.89794921874997],[-136.0166015625,58.87397460937498],[-136.150048828125,59.04809570312503],[-136.22583007812497,58.765478515625006],[-136.98901367187503,59.03447265624999],[-137.05903320312498,58.87373046875001],[-136.613916015625,58.809277343749955],[-136.48374023437503,58.61767578125],[-136.224609375,58.602246093749955],[-136.06147460937495,58.45273437500006],[-136.607421875,58.24399414062498],[-137.54399414062502,58.58120117187502],[-138.51489257812503,59.16591796875005],[-139.77329101562498,59.52729492187504],[-139.51303710937498,59.698095703125006],[-139.5123046875,59.95356445312501],[-139.28671874999998,59.610937500000034],[-139.22080078125003,59.819873046875045],[-138.9880859375,59.83500976562502],[-139.43144531249996,60.012255859375074],[-140.41982421874997,59.71074218750002],[-141.40830078125,59.90278320312498],[-141.408740234375,60.11767578125006],[-141.67016601562497,59.969873046874966],[-142.94565429687503,60.09697265625002],[-144.14721679687494,60.01640625000002],[-144.185498046875,60.150732421875034],[-144.901318359375,60.335156249999955],[-144.69111328125,60.66909179687502],[-145.248291015625,60.38012695312506],[-145.898876953125,60.47817382812505],[-145.67490234374998,60.65112304687503],[-146.57045898437497,60.72915039062502],[-146.39199218749997,60.810839843750045],[-146.63842773437497,60.89731445312498],[-146.59912109374994,61.05351562500002],[-146.284912109375,61.11264648437498],[-147.89111328125,60.889892578125],[-148.00512695312494,60.96855468750002],[-147.75185546874997,61.218945312499955],[-148.34189453125,61.060400390625006],[-148.34443359374998,60.853564453125045],[-148.55615234374994,60.82700195312506],[-148.25673828124997,60.67529296874997],[-148.64013671875,60.48945312500004],[-148.11918945312502,60.57514648437498],[-147.96411132812494,60.48486328124997],[-148.430712890625,59.98911132812498],[-149.2666015625,59.99829101562497],[-149.395263671875,60.10576171875002],[-149.59804687500002,59.77045898437501],[-149.7138671875,59.91958007812502],[-149.80126953124994,59.737939453124966],[-150.00532226562507,59.78442382812503],[-150.19804687499996,59.56655273437505],[-150.60737304687504,59.56337890625002],[-150.934521484375,59.249121093750034],[-151.18276367187502,59.30078124999997],[-151.73818359375002,59.18852539062502],[-151.94951171875,59.26508789062498],[-151.88461914062503,59.386328125],[-151.39960937499995,59.51630859375001],[-151.04648437499998,59.771826171875034],[-151.45009765624997,59.65039062499997],[-151.85322265625,59.78208007812498],[-151.39599609375006,60.27446289062502],[-151.35644531249997,60.72294921874999],[-150.44125976562503,61.02358398437505],[-149.07509765624997,60.87641601562498],[-150.05327148437496,61.17109374999998],[-149.433544921875,61.50078125000002],[-149.97568359374998,61.27934570312502],[-150.61225585937495,61.301123046875006],[-151.59350585937494,60.979638671874966],[-152.54091796874997,60.265429687500045],[-153.025,60.29565429687497],[-152.660107421875,59.99721679687502],[-153.21123046875002,59.84272460937498],[-153.09360351562503,59.70913085937505],[-153.65253906250004,59.64702148437499],[-154.17832031250003,59.155566406250074],[-153.41826171875,58.9599609375],[-153.43759765625003,58.754833984374955],[-154.289013671875,58.30434570312502],[-154.247021484375,58.15942382812497],[-155.006884765625,58.01606445312501],[-155.77797851562497,57.56821289062498],[-156.43588867187498,57.359960937500006],[-156.62900390624998,57.00996093750001],[-158.41440429687498,56.435839843750045],[-158.5521484375,56.31269531249998],[-158.27563476562497,56.19624023437498],[-158.5046875,56.062109375],[-158.59116210937503,56.18452148437498],[-158.78984375000002,55.98691406250006],[-159.52324218749993,55.81000976562498],[-159.65966796875003,55.625927734374955],[-159.77138671874997,55.84111328125002],[-160.49931640625002,55.53730468750004],[-161.38193359374998,55.371289062499955],[-161.44379882812495,55.513281250000034],[-161.202099609375,55.54355468750006],[-161.51694335937503,55.61840820312503],[-162.073974609375,55.13930664062505],[-162.38637695312497,55.05234375],[-162.63037109375003,55.24667968749998],[-162.67436523437505,54.99658203125],[-162.86503906249996,54.954541015624955],[-163.11962890624997,55.06469726562503],[-163.131103515625,54.916552734375045],[-163.33530273437503,54.83916015624999],[-163.27880859374997,55.12182617187503],[-162.906591796875,55.19555664062503],[-161.69731445312502,55.9072265625],[-161.215625,56.02143554687498],[-160.8986328125,55.99365234375],[-161.00537109375,55.88715820312498],[-160.80283203125003,55.754443359375045],[-160.70634765625002,55.870458984375034],[-160.29169921875,55.80507812500005],[-160.53906250000006,56.00629882812501],[-160.30205078125,56.31411132812502],[-158.91801757812502,56.882177734375006],[-158.675146484375,56.79487304687498],[-158.66079101562502,57.03940429687498],[-158.32094726562497,57.29790039062499],[-157.84575195312496,57.52807617187497],[-157.4619140625,57.506201171875034],[-157.697216796875,57.679443359375],[-157.610888671875,58.050830078125074],[-157.19370117187498,58.19418945312506],[-157.48837890624998,58.25371093750002],[-157.52363281249998,58.421337890624955],[-156.97465820312496,58.736328125],[-156.80888671875005,59.13427734375],[-157.14204101562504,58.87763671875001],[-158.19091796875003,58.6142578125],[-158.50317382812494,58.85034179687497],[-158.42563476562498,58.99931640625002],[-158.080517578125,58.97744140625002],[-158.422802734375,59.08984375],[-158.67827148437502,58.92939453124998],[-158.80947265625002,58.973876953125],[-158.78862304687493,58.440966796875045],[-158.95068359375,58.404541015625],[-159.67026367187498,58.9111328125],[-159.92021484375,58.819873046875074],[-160.36313476562498,59.05117187500002],[-161.246826171875,58.799462890624994],[-161.36132812499994,58.66953124999998],[-162.144921875,58.64423828124998],[-161.724365234375,58.794287109375006],[-161.64438476562498,59.109667968750045],[-161.9810546875,59.14614257812502],[-161.82871093749998,59.588623046875],[-162.421337890625,60.28398437500002],[-161.96201171875003,60.695361328125045],[-162.68496093749997,60.268945312499966],[-162.57075195312495,59.98974609375],[-163.68037109374998,59.80151367187503],[-164.14282226562497,59.89677734374999],[-165.02651367187497,60.500634765624994],[-165.35380859375002,60.54121093750001],[-164.80517578125,60.89204101562498],[-164.31850585937497,60.77128906249999],[-164.37236328125002,60.59184570312502],[-163.999560546875,60.76606445312498],[-163.72998046874997,60.589990234374994],[-163.420947265625,60.757421875],[-163.90654296874996,60.85380859375002],[-163.58691406249994,60.902978515624994],[-163.74902343750003,60.9697265625],[-163.99462890624997,60.86469726562501],[-165.11484375,60.93281250000004],[-164.86899414062503,61.11176757812498],[-165.27978515624994,61.169628906249955],[-165.27363281250004,61.27485351562498],[-165.56586914062498,61.10234375000002],[-165.86396484375004,61.33569335937503],[-165.84531249999998,61.536230468750034],[-166.152734375,61.545947265625074],[-166.16811523437502,61.65083007812501],[-165.80893554687503,61.69609375000002],[-166.07880859375,61.803125],[-165.61279296875003,61.86928710937502],[-165.707275390625,62.10043945312506],[-165.19453125,62.47353515625002],[-164.75786132812493,62.496728515624966],[-164.589453125,62.709375],[-164.79267578125,62.623193359374966],[-164.79965820312503,62.918066406250006],[-164.384228515625,63.03046874999998],[-164.40903320312503,63.21503906250001],[-163.94287109375,63.247216796874994],[-163.61630859374998,63.125146484374994],[-163.73784179687496,63.016406250000045],[-163.504345703125,63.105859374999966],[-163.28784179687494,63.046435546875045],[-162.621484375,63.26582031249998],[-162.28281250000003,63.529199218749994],[-161.97397460937498,63.45292968749999],[-161.09970703125003,63.557910156250045],[-160.778564453125,63.818945312500034],[-160.987548828125,64.25126953125002],[-161.49072265625003,64.43378906249998],[-160.93193359374996,64.5791015625],[-160.855908203125,64.755615234375],[-161.13017578125005,64.92543945312505],[-161.759375,64.816259765625],[-162.80703124999997,64.37421875000001],[-163.20390625,64.65200195312502],[-163.14433593750002,64.423828125],[-163.71308593749998,64.588232421875],[-164.978759765625,64.45366210937502],[-166.1427734375,64.58276367187503],[-166.48139648437498,64.72807617187507],[-166.415234375,64.926513671875],[-166.92841796875,65.15708007812498],[-166.15703125,65.28583984375001],[-167.40400390625,65.42211914062497],[-168.08837890624997,65.65776367187502],[-166.39873046875002,66.14443359375005],[-165.62993164062496,66.131201171875],[-165.77617187500002,66.31904296875001],[-164.46049804687502,66.58842773437499],[-163.63823242187502,66.57465820312504],[-163.89394531249997,66.57587890625001],[-164.03374023437493,66.21552734374995],[-163.69536132812502,66.08383789062503],[-161.93369140625003,66.04287109374997],[-161.45541992187503,66.28139648437497],[-161.03427734375003,66.18881835937503],[-161.12031249999995,66.334326171875],[-161.91689453124997,66.41181640624998],[-162.54365234375004,66.80512695312501],[-162.36162109375,66.94731445312502],[-161.591015625,66.45952148437502],[-160.23168945312503,66.420263671875],[-160.360888671875,66.6125],[-160.864013671875,66.67084960937501],[-161.39804687499998,66.55185546875],[-161.85668945312497,66.70034179687497],[-161.719921875,67.02055664062502],[-163.5318359375,67.10258789062502],[-164.1251953125,67.60673828125007],[-166.786279296875,68.35961914062497],[-166.38051757812502,68.425146484375],[-166.20908203125,68.88535156250003],[-165.04394531249994,68.882470703125],[-163.867919921875,69.03666992187505],[-161.88095703125003,70.33173828125001],[-162.073876953125,70.16196289062498],[-160.9962890625,70.30458984375],[-160.11713867187495,70.59121093750002],[-159.86567382812498,70.27885742187499],[-159.81499023437496,70.49707031250003],[-159.38676757812493,70.52451171875003],[-160.081591796875,70.63486328125003],[-159.680908203125,70.786767578125],[-159.31450195312496,70.87851562500003],[-159.251171875,70.7484375],[-157.909375,70.860107421875],[-156.47021484374994,71.40766601562501],[-156.469970703125,71.29155273437507],[-155.57944335937503,71.12109374999997],[-156.14658203125,70.92783203125003],[-155.97353515625002,70.84199218749995],[-155.16684570312498,71.09921875000006],[-154.19521484375002,70.80112304687498],[-153.23291015625,70.93256835937504],[-152.49121093749994,70.88095703125],[-152.23291015625,70.81035156249999],[-152.39921875,70.62045898437503],[-151.76904296875,70.56015625],[-151.94467773437498,70.45209960937501],[-149.26943359374997,70.50078124999999],[-147.70537109375,70.21723632812495],[-145.82314453124997,70.16005859375002],[-145.19736328125003,70.00869140625002],[-143.218310546875,70.11625976562499],[-142.70786132812498,70.03378906249998],[-141.40791015625,69.65336914062502],[-141.00214843750004,69.65078125000002],[-141.00214843750004,68.77416992187506]]]]},"properties":{"name":"United States","childNum":76}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[71.20615234375006,39.892578125],[71.15625,39.88344726562502],[71.06425781250002,39.88491210937505],[71.01171874999997,39.895117187500006],[71.04365234375004,39.97631835937503],[71.04482421875005,39.992529296875034],[70.96064453125004,40.087988281250034],[71.00546875,40.15229492187498],[71.0241210937501,40.14916992187497],[71.08037109375007,40.07988281249999],[71.2287109375001,40.04814453124999],[71.20615234375006,39.892578125]]],[[[70.94677734374997,42.24868164062505],[70.97900390625003,42.26655273437504],[71.03603515625,42.28466796875],[71.12998046875006,42.25],[71.21269531250002,42.20644531250005],[71.23232421875005,42.18627929687503],[71.22851562499997,42.16289062499996],[70.18095703125007,41.571435546874994],[70.734375,41.400537109374994],[70.86044921875006,41.22490234375002],[71.11074218750005,41.152636718750045],[71.29882812500003,41.152490234374994],[71.39306640625003,41.123388671875034],[71.40839843750004,41.13603515625002],[71.42089843750003,41.341894531250034],[71.60625,41.367431640625],[71.66494140625,41.54121093749998],[71.70068359374997,41.454003906249966],[71.75771484375005,41.42802734375002],[71.79248046875003,41.41313476562499],[71.85800781250006,41.311376953125034],[71.8786132812501,41.195019531249955],[71.95849609375003,41.18706054687502],[72.05244140625004,41.16474609375001],[72.1154296875001,41.18657226562502],[72.1642578125001,41.173730468749966],[72.18095703125002,41.11845703124999],[72.18730468750002,41.02592773437499],[72.2130859375001,41.014257812500006],[72.36406250000002,41.04345703125],[72.65830078125,40.86992187499999],[73.13212890625002,40.82851562499999],[72.6041015625,40.52543945312499],[72.40205078125004,40.578076171874955],[72.3892578125,40.427392578124994],[72.13125,40.438623046874966],[71.69248046875,40.15234375],[71.30468749999997,40.28691406249996],[70.990625,40.2548828125],[70.95800781250003,40.238867187500034],[70.653125,40.201171875],[70.37158203125003,40.38413085937506],[70.75107421875006,40.721777343750006],[70.40195312500006,41.03510742187498],[69.71289062500003,40.65698242187503],[69.35722656250002,40.76738281249996],[69.20625,40.566552734374994],[69.27490234374997,40.19809570312498],[68.63066406250007,40.16708984374998],[68.9720703125,40.08994140624998],[68.80468750000003,40.05034179687499],[68.86875,39.90747070312503],[68.63896484375007,39.8388671875],[68.46328125,39.53671874999998],[67.71904296875007,39.62138671875002],[67.426171875,39.46557617187497],[67.3576171875001,39.216699218749994],[67.64833984375005,39.13105468750004],[67.69443359375006,38.99462890625003],[68.13251953125004,38.927636718749966],[68.08720703125002,38.47353515625002],[68.3502929687501,38.211035156250006],[67.81435546875005,37.48701171875004],[67.7980468750001,37.244970703125006],[67.75898437500004,37.172216796875034],[67.75292968749997,37.199804687500034],[67.7,37.227246093749955],[67.60742187499997,37.22250976562506],[67.5172851562501,37.26665039062499],[67.44169921875007,37.25800781250001],[67.3197265625,37.209570312500006],[67.1955078125001,37.23520507812498],[67.06884765624997,37.334814453125006],[66.82773437500006,37.37128906249998],[66.52226562500007,37.34848632812506],[66.51064453125,37.45869140625004],[66.51132812500006,37.59916992187496],[66.52558593750004,37.785742187500034],[66.60625,37.98671875000005],[65.97119140624997,38.244238281250006],[65.612890625,38.23857421875002],[64.3099609375,38.97729492187497],[63.76367187500003,39.16054687499999],[62.48320312500002,39.97563476562496],[61.90283203124997,41.09370117187501],[61.496972656249994,41.276074218749955],[61.2423828125001,41.18920898437503],[60.454980468749994,41.221630859374955],[60.089648437500074,41.39941406250003],[60.07558593750005,41.759667968749966],[60.20078125000006,41.803125],[59.94179687499999,41.97353515625002],[59.98515625000002,42.21171875],[59.35429687500002,42.32329101562496],[58.5890625000001,42.778466796874966],[58.477148437500006,42.66284179687503],[58.15156250000004,42.628076171874966],[58.474414062500074,42.29936523437496],[58.02890625,42.48764648437506],[57.814257812500074,42.18984375000005],[57.290625,42.123779296875],[56.96406250000004,41.856542968750006],[57.11884765625004,41.35029296874998],[57.01796875,41.26347656249996],[55.97744140625005,41.32221679687504],[55.97568359375006,44.99492187499996],[58.555273437500006,45.55537109375001],[61.007910156250006,44.39379882812497],[61.99023437500003,43.492138671874955],[63.20703125000003,43.62797851562502],[64.44316406250007,43.55117187499999],[64.9054687500001,43.714697265625006],[65.49619140625,43.310546875],[65.80302734375002,42.87695312500006],[66.1002929687501,42.99082031249998],[66.00957031250007,42.00488281250003],[66.49863281250006,41.99487304687503],[66.70966796875004,41.17915039062501],[67.9357421875001,41.19658203125002],[68.11308593750007,41.02861328124999],[68.04765625000007,40.80927734374998],[68.29189453125,40.656103515625034],[68.57265625,40.62265624999998],[68.58408203125,40.876269531250045],[69.15361328125002,41.42524414062498],[70.94677734374997,42.24868164062505]]]]},"properties":{"name":"Uzbekistan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-61.17451171875001,13.158105468749966],[-61.268457031249966,13.287695312499991],[-61.13896484374996,13.358740234374991],[-61.17451171875001,13.158105468749966]]]},"properties":{"name":"St. Vin. and Gren.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-60.99790039062498,8.867333984374966],[-61.069189453125034,8.947314453125003],[-60.91582031249996,9.070312500000014],[-60.86142578124998,8.949609375000037],[-60.99790039062498,8.867333984374966]]],[[[-60.821191406249966,9.138378906250026],[-60.94140625000003,9.105566406250006],[-60.73583984374997,9.203320312500026],[-60.821191406249966,9.138378906250026]]],[[[-63.84936523437494,11.131005859374994],[-63.917626953124994,10.887548828125048],[-64.40234375,10.981591796875023],[-64.21367187500002,11.086132812499997],[-64.0283203125,11.00185546874998],[-63.84936523437494,11.131005859374994]]],[[[-60.742138671874926,5.202050781250037],[-60.71196289062499,5.191552734375023],[-60.671972656250034,5.164355468749989],[-60.603857421875006,4.94936523437498],[-61.00283203125002,4.535253906249991],[-61.28007812500002,4.516894531249974],[-61.82084960937496,4.197021484375],[-62.153125,4.098388671874986],[-62.41064453124994,4.156738281249972],[-62.71210937499998,4.01791992187502],[-62.85698242187502,3.593457031249969],[-63.33867187500002,3.943896484375045],[-64.02148437500003,3.929101562500051],[-64.19248046874995,4.126855468750009],[-64.57636718750001,4.139892578125],[-64.788671875,4.276025390625023],[-64.66899414062496,4.01181640625002],[-64.22109375000002,3.587402343749972],[-64.04658203124998,2.502392578124997],[-63.389257812500006,2.411914062500045],[-63.43251953124994,2.155566406250045],[-64.00849609374995,1.931591796874969],[-64.20502929687493,1.52949218750004],[-65.10375976562497,1.108105468749983],[-65.47338867187497,0.691259765624977],[-65.55605468750002,0.687988281250014],[-65.52299804687493,0.843408203124966],[-65.68144531249999,0.983447265624989],[-66.06005859375003,0.78535156250004],[-66.34711914062498,0.7671875],[-66.87602539062499,1.223046875000037],[-67.21083984375,2.390136718750043],[-67.61870117187496,2.793603515624994],[-67.85908203124998,2.793603515624994],[-67.3111328125,3.41586914062502],[-67.66162109375,3.864257812499986],[-67.85527343750002,4.506884765624989],[-67.82490234374995,5.270458984375026],[-67.47387695312503,5.929980468750003],[-67.48198242187499,6.18027343750002],[-67.85917968749999,6.289892578124963],[-68.47177734375,6.156542968749974],[-69.42714843749997,6.123974609374997],[-70.12919921874999,6.95361328125],[-70.73715820312503,7.090039062499997],[-71.12861328124993,6.98671875],[-72.00664062499993,7.032617187500023],[-72.20771484374995,7.37026367187498],[-72.47197265624996,7.524267578124991],[-72.39033203124995,8.287060546874969],[-72.66542968749994,8.62758789062498],[-72.79638671874997,9.10898437499999],[-73.05839843749999,9.259570312500031],[-73.36621093749997,9.194140625000017],[-73.00654296874998,9.789160156250006],[-72.86933593750001,10.49125976562496],[-72.690087890625,10.835839843749994],[-72.24848632812501,11.196435546875009],[-71.95810546875,11.66640625],[-71.31972656249997,11.861914062500048],[-71.95693359375002,11.569921874999977],[-71.835107421875,11.190332031250009],[-71.6416015625,11.013525390625048],[-71.73090820312498,10.994677734375017],[-71.59433593749995,10.657373046875051],[-72.11284179687499,9.815576171874966],[-71.61953124999994,9.047949218749991],[-71.24140625000001,9.160449218750003],[-71.08583984375002,9.348242187499977],[-71.05268554687501,9.705810546874986],[-71.49423828125,10.533203124999972],[-71.46953124999993,10.964160156250017],[-70.23251953124998,11.372998046874997],[-70.09711914062493,11.519775390624972],[-69.80478515624998,11.47421875000002],[-69.81733398437495,11.672070312499997],[-70.19257812499993,11.62460937500002],[-70.28652343749997,11.886035156249989],[-70.20278320312497,12.098388671874986],[-70.00395507812496,12.177880859375023],[-69.63159179687494,11.479931640625026],[-68.827978515625,11.431738281249977],[-68.39863281249995,11.160986328124977],[-68.29628906249997,10.689355468749994],[-68.13994140624999,10.492724609374989],[-66.24721679687497,10.632226562499994],[-65.85175781249995,10.257763671874997],[-65.12910156249998,10.070068359375043],[-64.85048828125,10.098095703124969],[-64.188330078125,10.457812499999989],[-63.73188476562501,10.503417968750043],[-64.24750976562498,10.54257812500002],[-64.298193359375,10.635156249999966],[-61.879492187500006,10.741015625000031],[-62.379980468750006,10.546875],[-62.91357421875,10.531494140624986],[-62.68583984374996,10.289794921875043],[-62.740576171875006,10.056152343750043],[-62.55034179687499,10.200439453125043],[-62.320410156250034,9.783056640625006],[-62.22114257812498,9.882568359375028],[-62.15336914062493,9.821777343749986],[-62.15532226562499,9.979248046875014],[-62.077099609374926,9.97504882812504],[-61.73593749999998,9.631201171874977],[-61.76591796874996,9.813818359374963],[-61.58886718749994,9.894531249999986],[-60.79248046874997,9.360742187500037],[-61.02314453124998,9.15458984374996],[-61.24726562499998,8.600341796875014],[-61.61870117187499,8.59746093749996],[-61.30400390624999,8.410400390625043],[-60.800976562499926,8.592138671875034],[-60.16748046875,8.616992187500031],[-60.01752929687501,8.549316406250014],[-59.83164062499998,8.305957031250003],[-59.84907226562498,8.248681640624966],[-59.96484375000003,8.191601562499969],[-59.99072265624997,8.16201171874998],[-60.032421874999926,8.053564453125006],[-60.51362304687501,7.813183593749969],[-60.71865234374994,7.535937499999974],[-60.606542968750006,7.320849609375031],[-60.63330078124997,7.211083984374966],[-60.58320312499998,7.156201171874969],[-60.523193359375,7.143701171875009],[-60.464941406250034,7.166552734375045],[-60.39238281249999,7.164550781249986],[-60.34506835937495,7.15],[-60.32548828124996,7.133984374999983],[-60.32207031249996,7.092041015625043],[-60.35209960937496,7.002880859374997],[-60.39501953125,6.945361328125003],[-60.717919921874966,6.768310546875],[-61.14560546874998,6.694531249999983],[-61.20361328124997,6.588378906250028],[-61.181591796874926,6.513378906250026],[-61.15102539062502,6.446533203124986],[-61.15229492187501,6.385107421875006],[-61.12871093749999,6.214306640625026],[-61.15947265624996,6.174414062499977],[-61.22495117187498,6.129199218750003],[-61.303125,6.049511718750026],[-61.39082031250001,5.938769531250017],[-61.376806640625006,5.906982421875028],[-61.167187499999926,5.674218750000037],[-60.95400390625002,5.437402343750023],[-60.742138671874926,5.202050781250037]]]]},"properties":{"name":"Venezuela","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[-64.765625,17.794335937499994],[-64.58046874999994,17.750195312499983],[-64.88911132812495,17.701708984375045],[-64.765625,17.794335937499994]]]},"properties":{"name":"U.S. Virgin Is.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[104.06396484375003,10.390820312500011],[104.01845703125,10.029199218749966],[103.84951171875005,10.371093749999986],[104.06396484375003,10.390820312500011]]],[[[107.52128906250007,20.926611328124977],[107.39921875000007,20.903466796874966],[107.55126953125003,21.034033203125006],[107.52128906250007,20.926611328124977]]],[[[107.60273437500004,21.21679687500003],[107.40351562500004,21.093652343749994],[107.47626953125004,21.268945312499994],[107.60273437500004,21.21679687500003]]],[[[107.97265624999997,21.507958984375023],[107.40996093750002,21.284814453125023],[107.35429687500007,21.055175781250057],[107.1647460937501,20.94873046875003],[106.68339843750007,21.000292968750074],[106.75341796875003,20.73505859375004],[106.55078124999997,20.52656250000001],[106.57285156250012,20.392187499999977],[105.98408203125004,19.939062500000034],[105.62177734375004,18.96630859375003],[105.88828125000006,18.502490234375045],[106.49902343749997,17.946435546874994],[106.47890625000005,17.719580078125063],[106.3705078125,17.746875],[107.83378906250002,16.322460937499983],[108.02939453125012,16.331103515625074],[108.82128906249997,15.377929687500028],[109.30332031250012,13.856445312500043],[109.271875,13.279345703124974],[109.42392578125006,12.955957031249994],[109.44492187500006,12.599609375000057],[109.33554687500012,12.751904296874997],[109.21894531250004,12.64580078124996],[109.30468750000003,12.391162109375045],[109.20683593750007,12.415380859375006],[109.1986328125,11.724853515625014],[109.03964843750012,11.592675781249994],[108.98671875,11.336376953124997],[108.09492187500004,10.897265624999989],[108.0013671875,10.720361328125009],[107.26152343750007,10.39838867187504],[107.00664062500002,10.66054687499998],[106.94746093750004,10.400341796874997],[106.72734375000007,10.535644531250028],[106.605859375,10.46494140625002],[106.74121093750003,10.444384765625003],[106.75742187500006,10.295800781250023],[106.46406250000004,10.298291015624997],[106.78525390625012,10.116455078124986],[106.59560546875005,9.859863281250028],[106.1364257812501,10.221679687500014],[106.56435546875005,9.715625],[106.48408203125004,9.559423828125006],[105.83095703125005,10.000732421875028],[106.15859375,9.59414062499998],[106.16835937500005,9.396728515625],[105.50097656249997,9.093212890624983],[105.11435546875006,8.629199218750031],[104.77041015625,8.59765625],[104.89628906250007,8.746630859374974],[104.81855468750004,8.801855468750034],[104.84521484375003,9.606152343750026],[105.08447265625003,9.99570312499999],[104.8019531250001,10.202734374999977],[104.66347656250005,10.169921875000043],[104.42636718750006,10.411230468749991],[104.85058593749997,10.534472656249974],[105.04638671874997,10.701660156250014],[105.04570312500002,10.911376953125014],[105.3146484375001,10.845166015625026],[105.40576171875003,10.95161132812504],[105.75507812500004,10.989990234375043],[105.85332031250007,10.86357421874996],[106.16396484375005,10.794921875],[106.16093750000002,11.037109375000057],[105.85605468750006,11.294287109375048],[105.85146484375005,11.635009765625],[106.0060546875001,11.758007812500011],[106.39921875000007,11.687011718750028],[106.41386718750002,11.9484375],[106.70009765625,11.979296874999974],[107.21210937500004,12.30400390624996],[107.39335937500002,12.260498046874972],[107.50644531250006,12.364550781250031],[107.47539062500002,13.030371093749963],[107.60546874999997,13.437792968750017],[107.3314453125,14.126611328125009],[107.51943359375005,14.705078125],[107.51376953125012,14.817382812500057],[107.52451171875012,14.871826171875043],[107.50468750000007,14.915917968749966],[107.48037109375,14.979882812500037],[107.55527343750006,15.057031250000023],[107.58964843750002,15.118457031250017],[107.63369140625005,15.18984375],[107.653125,15.255224609374991],[107.62167968750006,15.309863281250017],[107.56425781250002,15.391601562499972],[107.45957031250012,15.4658203125],[107.33876953125,15.560498046875011],[107.27939453125006,15.618701171875045],[107.16591796875005,15.802490234375028],[107.1888671875,15.838623046875],[107.36064453125002,15.921728515624977],[107.3919921875,15.951660156250028],[107.39638671875,16.04301757812499],[106.93066406249997,16.353125],[106.8927734375001,16.396533203125074],[106.85107421875003,16.515625],[106.83242187500005,16.526269531250023],[106.79160156250006,16.490332031250006],[106.73955078125007,16.452539062500023],[106.6564453125001,16.49262695312501],[106.54619140625002,16.650732421874977],[106.53369140625003,16.821044921875057],[106.52597656250006,16.876611328124994],[106.50224609375002,16.95410156249997],[106.26953125000003,17.21679687500003],[106.00625,17.415283203125057],[105.69140625000003,17.737841796875045],[105.58847656250012,17.983691406250045],[105.51855468749997,18.077441406250045],[105.45820312500004,18.15429687499997],[105.11455078125002,18.40527343750003],[105.08701171875006,18.496240234374994],[105.14541015625,18.616796875000063],[105.14648437500003,18.650976562500006],[103.89160156250003,19.304980468750017],[103.89638671875,19.339990234375023],[103.93203125,19.366064453125006],[104.0275390625001,19.42045898437499],[104.062890625,19.48256835937505],[104.05156250000007,19.564160156249955],[104.01347656250007,19.64648437500003],[104.03203125000002,19.675146484375006],[104.06279296875007,19.678417968749983],[104.25986328125006,19.685498046874983],[104.5462890625,19.61054687500001],[104.58789062500003,19.61875],[104.74316406250003,19.754736328124977],[104.80175781249997,19.83613281250004],[104.81513671875004,19.90400390625001],[104.9279296875001,20.01811523437499],[104.92919921875003,20.082812500000017],[104.88867187500003,20.169091796875023],[104.84785156250004,20.202441406250045],[104.69873046875003,20.20532226562503],[104.67695312500004,20.224707031249977],[104.66191406250007,20.28901367187501],[104.65644531250004,20.32851562499999],[104.6188476562501,20.37451171875003],[104.49619140625006,20.413671875],[104.39218750000012,20.424755859374955],[104.36777343750012,20.44140624999997],[104.40781250000012,20.48574218750005],[104.47861328125006,20.529589843750017],[104.53271484374997,20.55488281250001],[104.58320312500004,20.646679687499955],[104.34960937499997,20.821093750000074],[104.19531249999997,20.913964843749966],[104.10136718750002,20.94550781250001],[103.63505859375007,20.697070312500017],[103.46357421875004,20.779833984375017],[103.21074218750002,20.840625],[103.10449218749997,20.891650390625045],[102.88378906250003,21.202587890624983],[102.85117187500006,21.26591796874999],[102.94960937500005,21.681347656249983],[102.84521484374997,21.73476562500005],[102.81591796874997,21.807373046875],[102.7982421875,21.797949218750034],[102.77109375000006,21.709667968749983],[102.73857421875002,21.67792968750001],[102.66201171875005,21.67602539062497],[102.58251953125003,21.90429687500003],[102.12744140624997,22.379199218750045],[102.1759765625001,22.414648437500006],[102.2370117187501,22.466015624999983],[102.40644531250004,22.70800781249997],[102.47089843750004,22.75092773437501],[102.98193359374997,22.4482421875],[103.32666015625003,22.769775390625057],[103.49296875000007,22.587988281250034],[103.62021484375006,22.782031250000045],[103.94150390625006,22.540087890625045],[104.14306640624997,22.800146484375006],[104.37177734375004,22.704052734374983],[104.68730468750002,22.822216796874983],[104.86474609375003,23.136376953125023],[105.27539062500003,23.34521484375003],[105.8429687500001,22.922802734374955],[106.14843749999997,22.970068359375006],[106.2790039062501,22.857470703125045],[106.54179687500007,22.908349609375023],[106.78027343749997,22.778906250000034],[106.55039062500006,22.501367187499994],[106.66357421875003,21.97890625000005],[106.97099609375002,21.923925781250034],[107.35117187500012,21.60888671874997],[107.75927734374997,21.655029296875057],[107.97265624999997,21.507958984375023]]]]},"properties":{"name":"Vietnam","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[169.49130859375006,-19.54013671875002],[169.34726562500006,-19.623535156249957],[169.2174804687501,-19.476367187500003],[169.24746093750005,-19.3447265625],[169.49130859375006,-19.54013671875002]]],[[[169.334375,-18.940234375000017],[168.98691406250006,-18.87128906250001],[169.01582031250004,-18.64375],[169.14384765625002,-18.63105468750001],[169.334375,-18.940234375000017]]],[[[168.44580078124997,-17.54218750000004],[168.58496093750003,-17.695898437500006],[168.52460937500004,-17.798046875000026],[168.15820312500003,-17.710546874999963],[168.2731445312501,-17.552246093749957],[168.44580078124997,-17.54218750000004]]],[[[168.44677734375003,-16.778808593749957],[168.18144531250002,-16.804003906250017],[168.13535156250006,-16.636914062499997],[168.44677734375003,-16.778808593749957]]],[[[168.29667968750007,-16.33652343749999],[167.92900390625002,-16.22871093749997],[168.16386718750002,-16.081640625000034],[168.29667968750007,-16.33652343749999]]],[[[167.4125,-16.095898437499997],[167.83662109375004,-16.449707031249957],[167.44931640625012,-16.554980468750003],[167.34921875000006,-16.15449218750004],[167.15146484375006,-16.080468749999966],[167.19951171875002,-15.885058593750031],[167.33574218750007,-15.916699218749997],[167.4125,-16.095898437499997]]],[[[167.9113281250001,-15.435937500000023],[167.67421875,-15.4515625],[168.00253906250012,-15.283203124999986],[167.9113281250001,-15.435937500000023]]],[[[166.74580078125004,-14.826855468750011],[166.81015625000012,-15.15742187500004],[167.0755859375,-14.935644531249977],[167.20078125000012,-15.443066406249969],[167.0939453125001,-15.580859374999974],[166.75830078125003,-15.631152343750003],[166.63105468750004,-15.406054687499974],[166.56738281250003,-14.641796874999969],[166.74580078125004,-14.826855468750011]]],[[[167.58486328125,-14.260937500000011],[167.43027343750012,-14.294921875],[167.41074218750006,-14.19746093750004],[167.50644531250012,-14.142187499999977],[167.58486328125,-14.260937500000011]]],[[[167.48886718750006,-13.907226562499972],[167.3917968750001,-13.788378906250017],[167.48105468750006,-13.709472656250014],[167.48886718750006,-13.907226562499972]]]]},"properties":{"name":"Vanuatu","childNum":10}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-171.4541015625,-14.04648437500002],[-171.9119140625,-14.001660156250026],[-172.04589843750003,-13.857128906249983],[-171.60390624999997,-13.879199218750045],[-171.4541015625,-14.04648437500002]]],[[[-172.33349609375,-13.46523437499999],[-172.17685546874998,-13.68466796875002],[-172.224951171875,-13.804296874999963],[-172.535693359375,-13.791699218749983],[-172.77851562499998,-13.516796875000011],[-172.33349609375,-13.46523437499999]]]]},"properties":{"name":"Samoa","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[53.76318359374997,12.636816406249991],[54.18740234375005,12.664013671875026],[54.511132812499994,12.552783203125017],[54.12949218750006,12.360644531250045],[53.71884765625006,12.318994140624994],[53.31582031250005,12.533154296875011],[53.53496093750002,12.715771484374997],[53.76318359374997,12.636816406249991]]],[[[42.75585937500003,13.70429687500004],[42.689746093750074,13.673632812500017],[42.7941406250001,13.766113281250028],[42.75585937500003,13.70429687500004]]],[[[42.787402343750074,13.971484375000031],[42.69404296875004,14.007910156249991],[42.76210937500005,14.067480468750048],[42.787402343750074,13.971484375000031]]],[[[53.08564453125004,16.648388671874955],[52.327734375,16.293554687500063],[52.17402343750004,15.956835937500017],[52.2174804687501,15.655517578125],[51.3224609375001,15.22626953125004],[49.34990234375002,14.637792968749977],[48.66835937499999,14.050146484374977],[47.9899414062501,14.048095703125],[47.40771484374997,13.661621093750057],[46.78886718750002,13.465576171874986],[45.65732421875006,13.338720703124991],[45.03867187500006,12.815869140624969],[44.617773437500006,12.817236328124977],[44.00585937499997,12.607666015625],[43.634375,12.744482421874991],[43.487597656250074,12.69882812500002],[43.23193359375003,13.267089843750057],[43.2824218750001,13.692529296875037],[43.08906250000004,14.010986328125],[42.93642578125005,14.938574218749963],[42.85566406250004,15.132958984375037],[42.65781250000006,15.232812500000051],[42.79902343750004,15.326269531249991],[42.71718750000005,15.654638671875006],[42.83964843750002,16.032031250000074],[42.79931640624997,16.37177734375001],[43.16503906249997,16.689404296874955],[43.19091796875003,17.359375],[43.41796875000003,17.516259765625023],[43.91699218749997,17.32470703124997],[45.14804687500006,17.427441406249955],[45.5353515625001,17.30205078124999],[46.72763671875006,17.26557617187501],[46.97568359375006,16.953466796875034],[47.14355468749997,16.946679687499966],[47.44179687499999,17.111865234375045],[47.57958984374997,17.448339843750034],[48.17216796875002,18.156933593749983],[49.04199218750003,18.58178710937503],[51.977636718750006,18.996142578125074],[53.08564453125004,16.648388671874955]]]]},"properties":{"name":"Yemen","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[37.85693359375003,-46.94423828124998],[37.5900390625001,-46.90800781250006],[37.78955078124997,-46.8375],[37.85693359375003,-46.94423828124998]]],[[[31.799609375000017,-23.8921875],[31.98583984374997,-24.460644531249983],[31.921679687500017,-25.96875],[31.335156250000097,-25.755566406249997],[31.207324218750074,-25.843359375000034],[31.08808593750004,-25.980664062500026],[30.803320312500006,-26.41347656250001],[30.806738281250006,-26.78525390624999],[30.88330078124997,-26.792382812500023],[30.938085937500006,-26.91582031250003],[31.06337890625005,-27.1123046875],[31.274023437500063,-27.23837890625002],[31.469531250000017,-27.29550781250002],[31.74257812500005,-27.309960937500037],[31.95839843750005,-27.305859375],[31.946093750000017,-27.173632812499974],[31.96718750000005,-26.96064453125001],[31.994726562500006,-26.817480468749977],[32.024804687499994,-26.81113281250002],[32.112890625,-26.83945312500002],[32.19960937499999,-26.833496093749957],[32.35351562499997,-26.861621093750003],[32.7765625000001,-26.850976562499966],[32.88613281250005,-26.849316406249983],[32.53476562500006,-28.19970703125003],[32.285742187500006,-28.62148437499998],[31.335156250000097,-29.378125],[29.97119140625003,-31.322070312500017],[28.449414062500068,-32.62460937499999],[27.077441406250074,-33.52119140625004],[26.429492187500045,-33.75957031250002],[25.80585937500001,-33.737109374999974],[25.574218750000057,-34.03535156249998],[25.00292968750003,-33.97363281250003],[24.8271484375,-34.16894531250003],[24.595507812500074,-34.17451171875],[23.697851562500063,-33.99277343750002],[23.268164062500006,-34.08115234374999],[22.553808593750063,-34.01005859374999],[22.24550781250005,-34.06914062500003],[21.788964843750023,-34.37265624999996],[20.529882812500034,-34.4630859375],[20.020605468750006,-34.785742187500006],[19.298242187500023,-34.61503906249996],[19.330761718750068,-34.49238281250001],[19.098339843750068,-34.350097656249986],[18.831347656250017,-34.36406249999999],[18.75214843750004,-34.08261718750002],[18.50039062499999,-34.10927734375004],[18.46162109375001,-34.346875],[18.35205078124997,-34.1884765625],[18.43300781250005,-33.71728515625003],[17.851074218750057,-32.82744140625002],[17.96523437500005,-32.70859374999996],[18.125,-32.74912109374996],[18.325292968750034,-32.50498046874996],[18.21083984375008,-31.74248046874996],[17.34707031250005,-30.44482421875],[16.95,-29.40341796875002],[16.739453124999983,-29.009375],[16.447558593750045,-28.61757812499998],[16.755761718750023,-28.45214843750003],[16.7875,-28.39472656249997],[16.81015625,-28.264550781249994],[16.841210937500023,-28.21894531250004],[16.875292968750045,-28.12792968749997],[16.93330078125004,-28.06962890624999],[17.05625,-28.03105468750003],[17.1884765625,-28.13251953125001],[17.358691406250017,-28.269433593750023],[17.44794921875001,-28.698144531249966],[18.310839843750017,-28.88623046875],[19.16171875,-28.93876953124996],[19.245800781250068,-28.90166015625003],[19.31269531250004,-28.733300781250023],[19.539843750000017,-28.574609375000023],[19.98046875,-28.45126953125002],[19.98046875,-28.310351562500003],[19.98046875,-24.77675781249998],[20.430664062500057,-25.14707031250002],[20.79316406250001,-25.915625],[20.641406250000017,-26.7421875],[20.739843749999977,-26.84882812499997],[21.694726562500023,-26.840917968749963],[21.738085937500045,-26.806835937500026],[21.788281250000068,-26.710058593750034],[22.01093750000004,-26.635839843750006],[22.090917968749977,-26.580175781250034],[22.217578125000045,-26.38886718749997],[22.47089843750004,-26.219042968750003],[22.548632812500074,-26.178417968749997],[22.59765625000003,-26.13271484375001],[22.878808593750023,-25.457910156250023],[23.148730468750017,-25.288671875],[23.389257812500006,-25.291406250000023],[23.89375,-25.600878906250017],[23.96953124999999,-25.62607421874999],[24.192968750000034,-25.632910156249963],[24.33056640625,-25.742871093749983],[25.21337890625,-25.75625],[25.518164062500006,-25.66279296875001],[25.91210937499997,-24.747460937499966],[26.031835937500034,-24.70244140625003],[26.130859375000057,-24.671484375000034],[26.39716796875004,-24.61357421874996],[26.451757812500063,-24.582714843749983],[26.835058593750063,-24.240820312499963],[27.085546875000034,-23.577929687500003],[27.7685546875,-23.14892578125],[27.812597656250006,-23.108007812500006],[28.210156249999983,-22.693652343749974],[28.83984375000003,-22.480859374999966],[28.94580078125003,-22.39511718749999],[29.013476562500045,-22.27841796875002],[29.129882812500057,-22.21328125],[29.364843750000063,-22.19394531250005],[29.37744140625003,-22.19277343749998],[29.66308593749997,-22.146289062500017],[29.90234375000003,-22.184179687500006],[30.19042968750003,-22.291113281250034],[30.460156250000097,-22.329003906250023],[30.71162109375004,-22.297851562499986],[31.07343750000004,-22.30781249999997],[31.19726562499997,-22.344921874999983],[31.287890625000074,-22.402050781249983],[31.54560546875004,-23.48232421874998],[31.799609375000017,-23.8921875]],[[27.19355468750001,-29.94130859375001],[27.364062500000017,-30.27919921875001],[27.753125,-30.6],[28.05683593750001,-30.63105468750001],[28.128710937500017,-30.52509765625001],[28.39208984375003,-30.14755859375002],[28.646875,-30.1265625],[29.09804687500005,-29.919042968750006],[29.142187500000063,-29.70097656249999],[29.293554687500006,-29.56689453125003],[29.348828125000097,-29.441992187499977],[29.38671874999997,-29.319726562500023],[29.301367187500006,-29.08984375],[28.625781250000017,-28.581738281250054],[28.583398437499994,-28.59414062499999],[28.471875,-28.615820312499977],[28.23261718750004,-28.701269531249977],[28.084375,-28.779980468750026],[27.95986328125008,-28.87333984375003],[27.73554687500004,-28.940039062500034],[27.294531250000063,-29.519335937500017],[27.056933593750074,-29.62558593749999],[27.19355468750001,-29.94130859375001]]]]},"properties":{"name":"South Africa","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[33.148046875,-9.603515625],[33.25,-9.759570312500003],[33.35097656250002,-9.862207031250009],[33.33710937500001,-9.954003906250009],[33.3115234375,-10.037988281250009],[33.52890625,-10.234667968750003],[33.53759765625,-10.3515625],[33.5537109375,-10.391308593750011],[33.66152343750002,-10.553125],[33.29277343750002,-10.85234375],[33.37978515625002,-11.157910156250011],[33.26835937500002,-11.40390625],[33.23271484375002,-11.417675781250011],[33.22636718750002,-11.534863281250011],[33.30390625000001,-11.690820312500009],[33.25234375000002,-12.112597656250003],[33.34013671875002,-12.308300781250011],[33.512304687500006,-12.347753906250006],[32.975195312500006,-12.701367187500011],[32.96757812500002,-13.225],[32.67041015625,-13.590429687500006],[32.797460937500006,-13.6884765625],[32.98125,-14.009375],[33.148046875,-13.94091796875],[33.201757812500006,-14.013378906250011],[30.231835937500023,-14.990332031250006],[30.39609375,-15.64306640625],[29.4873046875,-15.69677734375],[28.9130859375,-15.98779296875],[28.760546875000017,-16.53212890625001],[27.932226562500006,-16.89619140625001],[27.020800781250017,-17.95839843750001],[26.779882812500006,-18.04150390625],[26.333398437500023,-17.929296875],[25.995898437500017,-17.969824218750006],[25.2587890625,-17.793554687500006],[25.001757812500017,-17.56855468750001],[24.73291015625,-17.51777343750001],[24.27490234375,-17.481054687500006],[23.380664062500017,-17.640625],[22.193945312500006,-16.628125],[21.979785156250017,-15.95556640625],[21.979394531250023,-14.440527343750006],[21.979296875000017,-14.11962890625],[21.979101562500006,-13.798730468750009],[21.978906250000023,-13.0009765625],[22.209570312500006,-13.0009765625],[23.843164062500023,-13.0009765625],[23.962988281250006,-12.988476562500011],[23.882421875,-12.799023437500011],[23.886523437500017,-12.743261718750006],[23.909375,-12.636132812500009],[23.98388671875,-11.725],[23.96650390625001,-10.871777343750011],[24.36572265625,-11.1298828125],[24.3779296875,-11.417089843750006],[25.28876953125001,-11.21240234375],[25.349414062500017,-11.623046875],[26.025976562500006,-11.89013671875],[26.824023437500017,-11.965234375],[27.1591796875,-11.579199218750006],[27.573828125,-12.22705078125],[28.412890625000017,-12.51806640625],[28.550878906250006,-12.836132812500011],[28.730078125,-12.925488281250011],[29.014257812500006,-13.368847656250011],[29.20185546875001,-13.398339843750009],[29.55419921875,-13.248925781250009],[29.775195312500017,-13.438085937500006],[29.79511718750001,-12.155468750000011],[29.508203125000023,-12.228222656250011],[29.48554687500001,-12.41845703125],[29.064355468750023,-12.348828125000011],[28.482519531250006,-11.812109375],[28.383398437500006,-11.566699218750003],[28.6455078125,-10.550195312500009],[28.60419921875001,-9.678808593750006],[28.400683593750017,-9.224804687500011],[28.869531250000023,-8.785839843750011],[28.89814453125001,-8.485449218750006],[30.75117187500001,-8.193652343750003],[30.830664062500006,-8.385546875],[30.891992187500023,-8.473730468750006],[30.968359375,-8.550976562500011],[31.07636718750001,-8.611914062500006],[31.3505859375,-8.60703125],[31.44921875,-8.65390625],[31.53486328125001,-8.71328125],[31.55625,-8.80546875],[31.673632812500017,-8.908789062500006],[31.91865234375001,-8.9421875],[31.921875,-9.019433593750009],[31.94257812500001,-9.054003906250003],[32.75664062500002,-9.322265625],[32.919921875,-9.407421875000011],[32.99599609375002,-9.622851562500003],[33.148046875,-9.603515625]]]},"properties":{"name":"Zambia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[31.287890625000017,-22.40205078125001],[31.07343750000001,-22.30781250000001],[30.71162109375001,-22.2978515625],[30.46015625000001,-22.32900390625001],[30.1904296875,-22.291113281250006],[29.90234375,-22.184179687500006],[29.6630859375,-22.146289062500003],[29.37744140625,-22.19277343750001],[29.36484375,-22.193945312500006],[29.315234375000017,-22.15771484375],[29.237207031250023,-22.07949218750001],[29.042382812500023,-22.018359375],[29.02558593750001,-21.796875],[28.014062500000023,-21.55419921875],[27.66943359375,-21.064257812500003],[27.679296875,-20.503027343750006],[27.28076171875,-20.47871093750001],[27.17822265625,-20.10097656250001],[26.168066406250006,-19.53828125000001],[25.939355468750023,-18.93867187500001],[25.242285156250006,-17.969042968750003],[25.2587890625,-17.793554687500006],[25.995898437500017,-17.969824218750006],[26.333398437500023,-17.929296875],[26.779882812500006,-18.04150390625],[27.020800781250017,-17.95839843750001],[27.932226562500006,-16.89619140625001],[28.760546875000017,-16.53212890625001],[28.9130859375,-15.98779296875],[29.4873046875,-15.69677734375],[30.39609375,-15.64306640625],[30.437792968750017,-15.995312500000011],[31.236230468750023,-16.02363281250001],[31.939843750000023,-16.428808593750006],[32.94804687500002,-16.71230468750001],[32.87626953125002,-16.88359375],[32.99306640625002,-18.35957031250001],[32.69970703125,-18.94091796875],[32.84980468750001,-19.10439453125001],[32.77763671875002,-19.388769531250006],[32.992773437500006,-19.98486328125],[32.49238281250001,-20.659765625],[32.353613281250006,-21.136523437500003],[32.429785156250006,-21.29707031250001],[31.429492187500017,-22.298828125],[31.287890625000017,-22.40205078125001]]]},"properties":{"name":"Zimbabwe","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[74.00809389139292,33.25375789331485],[73.19660141888893,33.898124784580936],[73.13410859949555,34.82510160558277],[72.31128647748268,35.77290936638241],[73.08203125000107,36.43949943991182],[73.08961802927895,36.86435907947333],[73.116796875,36.868554687499994],[74.03886718750002,36.825732421874996],[74.54140625000002,37.02216796875],[74.69218750000002,37.0357421875],[74.8892578125,36.952441406249996],[74.94912109375002,36.968359375],[75.05390625000001,36.987158203125],[75.14521484375001,36.9732421875],[75.3466796875,36.913476562499994],[75.37685546875002,36.883691406249994],[75.42421875000002,36.738232421875],[75.46025390625002,36.725048828125],[75.57373046875,36.759326171874996],[75.66718750000001,36.741992187499996],[75.77216796875001,36.694921875],[75.84023437500002,36.649707031249996],[75.88496093750001,36.600732421874994],[75.93300781250002,36.52158203125],[75.95185546875001,36.45810546875],[75.97441406250002,36.382421875],[75.91230468750001,36.048974609374994],[76.07089843750003,35.9830078125],[76.14785156250002,35.829003906249994],[76.17783203125003,35.810546875],[76.25166015625001,35.8109375],[76.3857421875,35.837158203125],[76.50205078125003,35.878222656249996],[76.55126953125,35.887060546875],[76.5634765625,35.772998046874996],[76.6318359375,35.729394531249994],[76.7275390625,35.678662109375],[76.76689453124999,35.66171875],[76.81279296874999,35.571826171874996],[76.88222656250002,35.4357421875],[76.927734375,35.346630859375],[77.04863281249999,35.109912109374996],[77.00087890625002,34.991992187499996],[76.78291015625001,34.900195312499996],[76.75751953125001,34.877832031249994],[76.7490234375,34.847558593749994],[76.6962890625,34.786914062499996],[76.59443359375001,34.73583984375],[76.45673828125001,34.756103515625],[76.17246093750003,34.667724609375],[76.041015625,34.669921875],[75.93828125000002,34.612548828125],[75.86210937500002,34.56025390625],[75.70917968750001,34.503076171874994],[74.300390625,34.765380859375],[74.17197265625,34.7208984375],[74.05585937500001,34.6806640625],[73.96123046875002,34.653466796874994],[73.79453125,34.378222656249996],[73.80996093750002,34.325341796874994],[73.92460937500002,34.287841796875],[73.97236328125001,34.236621093749996],[73.9794921875,34.191308593749994],[73.90390625,34.1080078125],[73.94990234375001,34.018798828125],[74.24648437500002,33.990185546875],[73.97646484375002,33.7212890625],[74.15,33.506982421874994],[74.00809389139292,33.25375789331485]]]},"properties":{"name":"","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[78.49194250885338,32.53122786149202],[78.10154031239509,32.87658365066666],[77.71342088235082,32.6917648744551],[77.06655516561037,33.301666835953235],[76.62299010270264,33.32014871357439],[76.32728006076415,32.87658365066666],[75.73585997688717,32.78417426256088],[75.62496871116024,32.28516356678968],[75.32221348233018,32.28516356678968],[74.98730468749997,32.46220703124996],[74.78886718750013,32.4578125],[74.6857421875001,32.493798828124994],[74.66328125000004,32.75766601562495],[74.63242187499995,32.770898437500136],[74.58828125000011,32.7532226562501],[74.35458984375012,32.76870117187505],[74.30546875000007,32.81044921875002],[74.30361328125005,32.991796875000034],[73.98984375000006,33.22119140625006],[74.15,33.506982421874994],[73.97646484375016,33.72128906249998],[74.24648437500011,33.99018554687504],[73.9499023437501,34.018798828125],[73.90390625000012,34.10800781250006],[73.97949218750009,34.191308593749966],[73.97236328125004,34.23662109374996],[73.92460937500007,34.287841796875114],[73.80996093750016,34.32534179687511],[73.79453125000006,34.378222656250045],[73.96123046875007,34.653466796874994],[74.05585937500015,34.68066406250003],[74.17197265624995,34.72089843750004],[74.30039062500006,34.76538085937506],[75.70917968750004,34.50307617187508],[75.86210937500002,34.56025390625001],[75.93828125000019,34.612548828125],[76.04101562500014,34.66992187499997],[76.17246093750006,34.66772460937506],[76.4567382812501,34.756103515625114],[76.5944335937501,34.73583984375006],[76.69628906249997,34.78691406249999],[76.74902343750014,34.84755859375008],[76.7575195312501,34.87783203125005],[76.7829101562501,34.90019531249999],[77.00087890625011,34.99199218750002],[77.03066406250011,35.06235351562498],[77.04863281250007,35.109912109375074],[77.42343749999995,35.30258789062506],[77.57158203125002,35.37875976562495],[77.69697265625015,35.443261718750136],[77.79941406250006,35.49589843750002],[78.0426757812501,35.4797851562501],[78.07578125000006,35.13491210937502],[78.15849609375002,34.94648437499998],[78.32695312500007,34.60639648437498],[78.86484375000006,34.39033203125001],[78.93642578125,34.35195312500002],[78.97060546875011,34.22822265625004],[78.72666015625006,34.013378906249955],[78.78378906250006,33.80878906250004],[78.86503906250002,33.43110351562501],[78.94843750000004,33.346533203125006],[79.1125,33.22626953125001],[79.13515625000005,33.17192382812496],[79.10283203125007,33.05253906249996],[79.14550781250003,33.00146484375006],[79.16992187500003,32.497216796874994],[78.91894531249997,32.3582031250001],[78.75351562500012,32.49926757812506],[78.73671875,32.55839843750002],[78.49194250885338,32.53122786149202]]]]},"properties":{"name":"","childNum":1}}]}');var xe=Object.defineProperty,ke=Object.getOwnPropertySymbols,Ce=Object.prototype.hasOwnProperty,$e=Object.prototype.propertyIsEnumerable,Se=(e,t,n)=>t in e?xe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ee=(e,t)=>{for(var n in t||(t={}))Ce.call(t,n)&&Se(e,n,t[n]);if(ke)for(var n of ke(t))$e.call(t,n)&&Se(e,n,t[n]);return e};function Oe({areaStyleColors:n,dataLoaded:o,hasData:i,highlight:r,type:s,option:a,series:l,onChange:c,zoomStart:u,zoomEnd:h,title:d,seriesConfig:p=[],noDataComponent:g=null,zoomColors:m,style:f}){const[y,v]=(0,e.useState)(null),b=(0,e.useRef)(null),w=()=>{y&&y.resize()},x=(0,e.useMemo)((()=>g?g():t().createElement(be,{theme:"info"},"No data to display")),[g]),k={defaultOpts:(0,pe.fromJS)({title:{show:!0,text:d,left:0},color:[],toolbox:{right:"0",orient:"horizontal",itemSize:15,showTitle:!0,feature:null},dataZoom:[{show:!0,start:0,end:100,orient:"horizontal",dataBackground:{lineStyle:{color:(null==m?void 0:m.lineStyle)||"#368493"},areaStyle:{color:(null==m?void 0:m.areaStyle)||"#368493"}},handleStyle:{color:(null==m?void 0:m.handleStyle)||"#368493"},textStyle:{color:(null==m?void 0:m.textStyle)||"#368493"},borderColor:"transparent",fillerColor:(null==m?void 0:m.fillerColor)||"rgba(54, 132, 147, 0.1)"}],legend:{show:!1},tooltip:{trigger:"axis",axisPointer:{type:"cross"}},grid:{left:"1%",right:"1%",bottom:"50px",top:"40px",containLabel:!0},xAxis:{boundaryGap:!1,type:"category",splitLine:{show:!0,lineStyle:{type:"dotted",color:"#F0F0F0"}},axisLine:{show:!1},axisTick:{show:!1},data:[]},yAxis:{min:"dataMin",boundaryGap:!0,axisPointer:{show:!0},splitLine:{lineStyle:{type:"dotted",color:"#F0F0F0"},show:!0},axisLabel:{show:!0},axisLine:{show:!0},axisTick:{show:!1},type:"value"},textStyle:{color:"#5a5a68"},series:[],animationEasing:"elasticOut"}),seriesDefault:(0,pe.fromJS)({data:[],type:"line",areaStyle:{opacity:1,color:n?new de.graphic.LinearGradient(0,0,1,1,n.map(((e,t)=>({offset:t,color:e})))):[]},smooth:!1,symbolSize:7,name:""})},C={defaultOpts:(0,pe.fromJS)({tooltip:{trigger:"axis",formatter:"{b}: {c} ({d}%)"},legend:{orient:"horizontal",x:"left",y:"top",data:[]},color:[],series:[]}),seriesDefault:(0,pe.fromJS)({type:"pie",center:["50%","55%"],radius:["50%","75%"],avoidLabelOverlap:!1,animationType:"scale",animationEasing:"elasticOut",labelLine:{normal:{show:!0,smooth:.2,length:6,length2:6}},data:[]})},$={defaultOpts:(0,pe.fromJS)({series:[]}),seriesDefault:(0,pe.fromJS)({type:"map",data:[]})};(0,e.useEffect)((()=>(window.addEventListener("resize",w),()=>{window.removeEventListener("resize",w)})),[y]),(0,e.useEffect)((()=>{if(null==b?void 0:b.current)return v(de.init(b.current)),()=>{y&&y.dispose()}}),[b.current]);const S=e=>{c&&c(e)};(0,e.useEffect)((()=>{let e;return y&&(e=ge(S,500),y.on("dataZoom",e),y.on("restore",e),y.on("click",e),y.on("mousemove",(e=>{e.data&&y.getZr().setCursorStyle("pointer")}))),()=>{y&&(y.off("dataZoom",e),y.off("restore",e),y.off("click",e))}}),[y,c]);const E=me(y),O=me(a),T=me(s),A=me(l);(0,e.useEffect)((()=>{var e,t,n,o,i,r;!y||(null==(t=null==(e=(0,pe.fromJS)(E))?void 0:e.equals)?void 0:t.call(e,(0,pe.fromJS)(y)))&&(null==(o=null==(n=(0,pe.fromJS)(O))?void 0:n.equals)?void 0:o.call(n,(0,pe.fromJS)(a)))&&T===s&&(null==(r=(i=(0,pe.fromJS)(A)).equals)?void 0:r.call(i,(0,pe.fromJS)(l)))||(y.clear(),y.setOption(((e,t,n)=>{let o={};switch(e){case"pie":o=C.defaultOpts.mergeDeep((0,pe.fromJS)(t)).toJS(),n.forEach((e=>{o.series.push(C.seriesDefault.mergeDeep((0,pe.fromJS)(e)).toJS())}));break;case"geo":o=$.defaultOpts.mergeDeep((0,pe.fromJS)(t)).toJS(),n.forEach((e=>{o.series.push($.seriesDefault.mergeDeep((0,pe.fromJS)(e)).toJS())}));break;default:o=k.defaultOpts.mergeDeep((0,pe.fromJS)(t)).toJS(),Array.isArray(t.yAxis)&&(o.yAxis=t.yAxis),n.forEach(((e,t)=>{const n=Ee(Ee(Ee({},k.seriesDefault.toJS()),p[t]),e);o.series.push(n)}))}return o})(s,a,l)),y.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:!0}))}),[y,a,l,s]),(0,e.useEffect)((()=>{y&&r&&(y.dispatchAction({type:"highlight",seriesIndex:r.seriesIndex,dataIndex:r.dataIndex}),y.dispatchAction({type:"showTip",seriesIndex:r.seriesIndex,dataIndex:r.dataIndex}))}),[r]);const _=me(u),L=me(h);(0,e.useEffect)((()=>{!y||-1===u||-1===h||_===u&&L===h||y.dispatchAction({type:"dataZoom",startValue:u,endValue:h})}),[u,h]);const M=()=>!o||!1!==i&&!0!==i||i;return t().createElement("div",{className:"tyk-chart__wrapper"},o?null:t().createElement(ye,null),t().createElement("div",{className:(()=>{const e=["tyk-chart"];return o||e.push("tyk-chart--loading-chart"),M()||e.push("tyk-chart--no-data"),e.join(" ")})(),style:(()=>{const e=f||{};return e.height||(e.height="300px"),e.width||(e.width="100%"),e})(),"data-type":s,ref:b}),M()?null:x)}de.registerMap("world",we),Oe.propTypes={areaStyleColors:r().instanceOf(Array),dataLoaded:r().bool,hasData:r().bool,highlight:r().oneOfType([r().number,r().string,r().instanceOf(Array)]),noDataComponent:r().func,zoomStart:r().number,zoomEnd:r().number,zoomColors:r().instanceOf(Object),option:r().instanceOf(Object),onChange:r().func,style:r().instanceOf(Object),type:r().string,title:r().string,series:r().instanceOf(Array),seriesConfig:r().instanceOf(Object)};const Te=(0,e.memo)(Oe);var Ae=n(745);const _e=(t,n)=>{const o=(0,e.useRef)();(0,e.useEffect)((()=>{o.current=t}),[t]),(0,e.useEffect)((()=>{if(null!==n){const e=setTimeout((function(){o.current()}),n);return()=>clearTimeout(e)}return()=>{}}),[n])};var Le=Object.defineProperty,Me=Object.getOwnPropertySymbols,Re=Object.prototype.hasOwnProperty,Ne=Object.prototype.propertyIsEnumerable,Ie=(e,t,n)=>t in e?Le(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Pe(e){const{children:n,options:o,onClose:i,index:r}=e,s=((e,t)=>{for(var n in t||(t={}))Re.call(t,n)&&Ie(e,n,t[n]);if(Me)for(var n of Me(t))Ne.call(t,n)&&Ie(e,n,t[n]);return e})({theme:"success",delay:3e3},o),a=e=>{i(e),clearTimeout(void 0)};return _e((()=>a(r)),s.delay),t().createElement(be,{className:"tyk-toast__message",theme:s.theme,onClose:()=>a(r)},n)}Pe.propTypes={children:r().oneOfType([r().element,r().node,r().string]),options:r().instanceOf(Object),onClose:r().func,index:r().number};const De=Pe;var Fe=Object.defineProperty,Be=Object.defineProperties,We=Object.getOwnPropertyDescriptors,He=Object.getOwnPropertySymbols,je=Object.prototype.hasOwnProperty,ze=Object.prototype.propertyIsEnumerable,Ve=(e,t,n)=>t in e?Fe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ue=(e,t)=>{for(var n in t||(t={}))je.call(t,n)&&Ve(e,n,t[n]);if(He)for(var n of He(t))ze.call(t,n)&&Ve(e,n,t[n]);return e};function Ge(n){const[o,i]=(0,e.useState)({}),{notify:r}=n,s=(e,t)=>{const n=Math.floor(1e6*Math.random());i((o=>{return i=Ue({},o),Be(i,We({[n]:{message:e,options:t}}));var i}))};(0,e.useEffect)((()=>{r(s)}),[o]);const a=e=>{delete Ue({},o)[e],i((t=>{const n=Ue({},t);return delete n[e],n}))};return t().createElement("div",{className:"tyk-toast__container"},Object.keys(o).map((e=>o[e]?t().createElement(De,{options:o[e].options,onClose:a.bind(null,e),index:e,key:e},o[e].message):null)))}Ge.propTypes={notify:r().func};const Ke=Ge;var qe=Object.defineProperty,Ye=Object.defineProperties,Je=Object.getOwnPropertyDescriptors,Xe=Object.getOwnPropertySymbols,Qe=Object.prototype.hasOwnProperty,Ze=Object.prototype.propertyIsEnumerable,et=(e,t,n)=>t in e?qe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,tt=(e,t)=>{for(var n in t||(t={}))Qe.call(t,n)&&et(e,n,t[n]);if(Xe)for(var n of Xe(t))Ze.call(t,n)&&et(e,n,t[n]);return e},nt=(e,t)=>Ye(e,Je(t));const ot=new class{constructor(){var e;et(this,"symbol"!=typeof(e="bindNotify")?e+"":e,(e=>{this.createNotification=e}));const n=document.createElement("div");n.className="tyk-toast",document.body.appendChild(n),(0,Ae.s)(n).render(t().createElement(Ke,{notify:this.bindNotify}))}notify(e,t){this.createNotification&&this.createNotification(e,t)}danger(e,t){this.notify(e,nt(tt({},t),{theme:"danger"}))}success(e,t){this.notify(e,nt(tt({},t),{theme:"success"}))}warning(e,t){this.notify(e,nt(tt({},t),{theme:"warning"}))}info(e,t){this.notify(e,nt(tt({},t),{theme:"info"}))}};var it=Object.defineProperty,rt=Object.getOwnPropertySymbols,st=Object.prototype.hasOwnProperty,at=Object.prototype.propertyIsEnumerable,lt=(e,t,n)=>t in e?it(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function ct(n){const{display:o,copy:i,children:r,onCopy:s,message:a="copied"}=n,l=(0,e.createRef)(),c=(0,e.useCallback)((()=>{if(s&&s(),!window.navigator.clipboard)return l.current.select(),document.execCommand("copy"),void ot.success(a);window.navigator.clipboard.writeText(i),ot.success(a)}),[s,l]);return t().createElement(t().Fragment,null,t().createElement(n.element,((e,t)=>{for(var n in t||(t={}))st.call(t,n)&<(e,n,t[n]);if(rt)for(var n of rt(t))at.call(t,n)&<(e,n,t[n]);return e})({onClick:c,onKeyUp:c},n),r||o),window.navigator.clipboard?null:t().createElement("textarea",{ref:l,className:"tyk-copy-to-clipboard",name:"copy",value:i},i))}ct.propTypes={message:r().string,onCopy:r().func,copy:r().string.isRequired,display:r().string,children:r().oneOfType([r().element,r().string,r().object,r().node])};const ut=ct;var ht=n(137),dt=n.n(ht);function pt({children:e}){return t().createElement("div",{className:"tyk-modal__footer"},e)}pt.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const gt=pt;function mt({children:e}){return t().createElement("div",{className:"tyk-modal__body"},e)}mt.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const ft=mt;var yt=Object.defineProperty,vt=Object.getOwnPropertySymbols,bt=Object.prototype.hasOwnProperty,wt=Object.prototype.propertyIsEnumerable,xt=(e,t,n)=>t in e?yt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function kt(e){var n=e,{children:o,theme:i="none",disableCloseCommands:r=!1,opened:s=!1,onClose:a=(()=>{}),size:l="md",className:c="",showBackdrop:u=!0}=n,h=((e,t)=>{var n={};for(var o in e)bt.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&vt)for(var o of vt(e))t.indexOf(o)<0&&wt.call(e,o)&&(n[o]=e[o]);return n})(n,["children","theme","disableCloseCommands","opened","onClose","size","className","showBackdrop"]);const d=["tyk-modal",`tyk-modal--theme-${i}`,s&&"opened"].concat(c.split(" ")).filter(Boolean).join(" "),p=["tyk-modal__backdrop",s&&"opened"].filter(Boolean).join(" "),m={success:"check",warning:"exclamation",danger:"exclamation"}[i];return t().createElement(t().Fragment,null,dt().createPortal(t().createElement(x.CSSTransition,{in:s,timeout:100,classNames:"appear"},t().createElement("div",((e,t)=>{for(var n in t||(t={}))bt.call(t,n)&&xt(e,n,t[n]);if(vt)for(var n of vt(t))wt.call(t,n)&&xt(e,n,t[n]);return e})({className:d},h),t().createElement("div",{className:`tyk-modal__dialog tyk-modal--${l}`},t().createElement("div",{className:"tyk-modal__content"},"none"!==i&&t().createElement("div",{className:"tyk-modal__theme-header"},t().createElement(g,{type:m})),o)))),document.querySelector("body")),u&&dt().createPortal(t().createElement(x.CSSTransition,{in:s,timeout:100,classNames:"fade"},t().createElement("button",{className:p,onClick:()=>!r&&a(),onKeyDown:()=>{},type:"button","aria-label":"Close"})),document.querySelector("body")))}kt.Body=ft,kt.Footer=gt,kt.Header=({children:e})=>(console.warn("%cModal.Header%c is deprecated.","font-weight: bold",""),t().createElement("div",{className:"tyk-modal__header"},e)),kt.Header.propTypes={children:r().element},kt.Title=({children:e})=>(console.warn("%cModal.Title%c is deprecated.","font-weight: bold",""),t().createElement("h4",{className:"tyk-modal__title"},e)),kt.Title.propTypes={children:r().element},kt.propTypes={children:r().oneOfType([r().element,r().node,r().string]),className:r().string,theme:r().string,disableCloseCommands:r().bool,opened:r().bool,onClose:r().func,size:r().string,showBackdrop:r().bool};const Ct=kt;function $t(n){const{children:o,title:i,description:r,confirmBtnText:s="Confirm",cancelBtnText:a="Cancel"}=n,[l,c]=(0,e.useState)(!1),[u,h]=(0,e.useState)(null),[d,p]=(0,e.useState)(null),g=()=>{c(!1),h(null),p(null)},m=()=>{d&&d(),g()};return t().createElement(t().Fragment,null,o(((e,t,n)=>(...o)=>{n&&n(...o),c(!0),h((()=>()=>e(...o))),t&&p((()=>()=>t(...o)))})),t().createElement(Ct,{opened:l,onClose:m},t().createElement(Ct.Body,null,t().createElement("h4",null,i),r),t().createElement(Ct.Footer,null,t().createElement(U,{onClick:m,theme:"default"},a),t().createElement(U,{onClick:()=>{u(),g()},theme:"success"},s))))}$t.propTypes={confirmBtnText:r().string,cancelBtnText:r().string,title:r().string,description:r().string,children:r().oneOfType([r().element,r().string,r().object,r().node,r().func])};const St=$t;function Et({children:n,className:o,showShadow:i}){const r=(0,e.useRef)(null),s=(0,e.useCallback)((()=>{const e=r.current;e&&(window.scrollY?e.classList.add("tyk-fixed-wrapper--scrolled"):e.classList.remove("tyk-fixed-wrapper--scrolled"))}),[r.current]),a=(0,e.useCallback)(ge(s,100),[s]);return(0,e.useEffect)((()=>(i&&window.addEventListener("scroll",a),()=>{window.removeEventListener("scroll",a)})),[a,i]),t().createElement("div",{className:`tyk-fixed-wrapper ${o}`,ref:r},n)}Et.propTypes={children:r().oneOfType([r().element,r().node,r().string]),className:r().string,showShadow:r().bool},Et.defaultProps={className:""};const Ot=Et;function Tt({children:n,hasMore:o,initialLoad:i,loadMore:r,pageNumber:s,refChild:a}){const[l,c]=(0,e.useState)(!1),u=(0,e.useRef)(null),h=C(a);(0,e.useEffect)((()=>{i&&"function"==typeof r&&(c(!1),r(s))}),[i]);const d=(0,e.useCallback)((()=>{if(!u.current)return!1;const{clientHeight:e,scrollTop:t}=u.current;return o&&(e+Math.round(t)===h.height||e>=h.height)}),[u,h.height]),p=(0,e.useCallback)((()=>{o&&"function"==typeof r?(r(s+1),c(!0)):c(!1)}),[o,s]),g=me(s),m=(0,e.useCallback)(ge((()=>{d()&&g<=s&&p()}),200),[p,d]);(0,e.useEffect)((()=>{var e;return null==(e=u.current)||e.addEventListener("scroll",m),()=>{var e;return null==(e=u.current)?void 0:e.removeEventListener("scroll",m)}}),[u,m]),(0,e.useEffect)((()=>{g>0&&0===s&&(u.current.scrollTop=0)}),[u,s]);const f=me(h);return(0,e.useEffect)((()=>{h&&f&&h.height!==f.height&&!0===l&&c(!1)}),[l,h.height]),(0,e.useEffect)((()=>{a&&h.heightt in e?_t(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function It({element:n,size:o="auto",forceDisplay:i="auto",displayAxis:r="auto",preferredPosition:s,offset:a=0,className:l,children:c,infiniteScrollerConfig:u},h){const d=(0,e.useRef)(null),p=h||d,g=(0,e.useRef)(null),m=(0,e.useRef)(null);return(0,e.useEffect)((()=>{window.requestAnimationFrame((function e(){(function(){var e;const t="auto"!==i?i:function(){const e=n.current,t=p.current;if(!t)return(null!=s?s:"vertical"===r)?"bottom":"right";const{left:o,top:i}=e.getBoundingClientRect(),a=i,l=window.innerHeight-i-e.offsetHeight,c=o,u=window.innerWidth-o-e.offsetWidth,h=a>t.scrollHeight,d=l>t.scrollHeight,g=c>t.offsetWidth,m=u>t.offsetWidth,f=o+e.offsetWidth/2-t.offsetWidth/2>0,y=i+e.offsetHeight/2-t.scrollHeight/2>0;return"vertical"===r||"auto"===r&&(h||d)&&f?function({preferredPosition:e,hasTopSpace:t,hasBottomSpace:n,topSpace:o,bottomSpace:i}){return"top"===e&&t?"top":"bottom"===e&&n||n||i>o?"bottom":"top"}({preferredPosition:s,hasTopSpace:h,hasBottomSpace:d,topSpace:a,bottomSpace:l}):"horizontal"===r?function({preferredPosition:e,hasLeftSpace:t,hasRightSpace:n,leftSpace:o,rightSpace:i}){return"left"===e&&t?"left":"right"===e&&n||n||i>o?"right":"left"}({preferredPosition:s,hasLeftSpace:g,hasRightSpace:m,leftSpace:c,rightSpace:u}):function({preferredPosition:e,hasTopSpace:t,hasBottomSpace:n,hasLeftSpace:o,hasRightSpace:i,positionedHorizontallyFitsInViewport:r,positionedVerticallyFitsInViewport:s}){return t&&s?"top":n&&s?"bottom":i&&r?"right":o&&r?"left":null!=e?e:"bottom"}({preferredPosition:s,hasTopSpace:h,hasBottomSpace:d,hasLeftSpace:g,hasRightSpace:m,positionedHorizontallyFitsInViewport:y,positionedVerticallyFitsInViewport:f})}(),l=n.current,c=p.current;if(!l||!c)return;const u=l.getBoundingClientRect(),{left:h,top:d}=null!=(e=m.current)?e:{left:0,top:0};if("top"===t&&Object.assign(c.style,function({container:e,targetPosition:t,target:n,size:o,offset:i,vpLeft:r,vpTop:s}){const a={},l={auto:t.left+n.offsetWidth/2-e.offsetWidth/2,matchElement:t.left,matchStart:t.left,matchEnd:t.right-e.offsetWidth}[o],c=t.top-e.offsetHeight-i;return a.left=`${l+r}px`,a.top=`${c+s}px`,"matchElement"===o?a.width=`${n.offsetWidth}px`:"matchEnd"===o?a.maxWidth=t.right-5+"px":"function"==typeof o&&(a.width=`${o(n.offsetWidth)}px`),a.maxHeight=t.top-i+"px",a}({container:c,targetPosition:u,target:l,size:o,offset:a,vpLeft:h,vpTop:d})),"bottom"===t&&Object.assign(c.style,function({targetPosition:e,target:t,container:n,size:o,offset:i,vpLeft:r,vpTop:s}){const a={},l={auto:e.left+t.offsetWidth/2-n.offsetWidth/2,matchElement:e.left,matchStart:e.left,matchEnd:e.right-n.offsetWidth}[o],c=e.bottom+i;return a.left=`${l+r}px`,a.top=`${c+s}px`,"matchElement"===o?a.width=`${t.offsetWidth}px`:"matchEnd"===o?a.maxWidth=e.right-5+"px":"function"==typeof o&&(a.width=`${o(t.offsetWidth)}px`),a.maxHeight=window.innerHeight-e.bottom-i+"px",a}({container:c,targetPosition:u,target:l,size:o,offset:a,vpLeft:h,vpTop:d})),"left"===t&&Object.assign(c.style,function({targetPosition:e,target:t,container:n,size:o,offset:i}){const r={},s=e.left-n.offsetWidth-i,a={auto:e.top+t.offsetHeight/2-n.offsetHeight/2,matchElement:e.top,matchStart:e.top,matchEnd:e.bottom-n.offsetHeight}[o];return r.left=`${s}px`,r.top=`${a}px`,"matchElement"===o?r.height=`${t.offsetHeight}px`:"function"==typeof o&&(r.height=`${o(t.offsetHeight)}px`),r.maxWidth=e.left-i+"px",r}({targetPosition:u,target:l,container:c,size:o,offset:a})),"right"===t&&Object.assign(c.style,function({targetPosition:e,target:t,container:n,size:o,offset:i,vpLeft:r,vpTop:s}){const a={},l=e.left+t.offsetWidth+i,c={auto:e.top+t.offsetHeight/2-n.offsetHeight/2,matchElement:e.top,matchStart:e.top,matchEnd:e.bottom-n.offsetHeight}[o];return a.left="auto"===o?`${l+r}px`:`${l}px`,a.top="auto"===o?`${c+s}px`:`${c}px`,"matchElement"===o?a.height=`${t.offsetHeight}px`:"function"==typeof o&&(a.height=`${o(t.offsetHeight)}px`),a.maxWidth=window.innerWidth-e.left-t.offsetWidth-i+"px",a}({targetPosition:u,target:l,container:c,size:o,offset:a,vpLeft:h,vpTop:d})),null===m.current)if("matchEnd"===o)m.current={left:0,top:0};else{const e=Number(c.style.left.replace("px","")),t=Number(c.style.top.replace("px",""));m.current={left:e<0?5-e:0,top:t<0?5-t:0}}})(),window.requestAnimationFrame(e)}))}),[]),(0,ht.createPortal)(t().createElement("div",{className:`floating-container ${l||""}`,ref:p},t().createElement(At,((e,t)=>{for(var n in t||(t={}))Mt.call(t,n)&&Nt(e,n,t[n]);if(Lt)for(var n of Lt(t))Rt.call(t,n)&&Nt(e,n,t[n]);return e})({refChild:g},u),t().createElement("div",{className:"floating-container__content-wrapper",ref:g},c))),document.querySelector("body"))}It.propTypes={element:r().instanceOf(Object),className:r().string,size:r().oneOfType([r().oneOf(["auto","matchElement","matchStart","matchEnd"]),r().func]),offset:r().number,forceDisplay:r().oneOf(["auto","top","bottom","left","right"]),displayAxis:r().oneOf(["auto","vertical","horizontal"]),preferredPosition:r().oneOf(["top","bottom","left","right"]),infiniteScrollerConfig:r().instanceOf(Object)};const Pt=(0,e.forwardRef)(It);function Dt({children:e}){return t().createElement("div",{className:"tyk-info-note"},t().createElement(be,{theme:"info"},e))}Dt.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const Ft=Dt;function Bt(e){const{className:n,children:o,selected:i}=e;return t().createElement("li",{className:`${n} ${i?"tyk-list__item--selected":""}`},o)}Bt.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,selected:r().bool},Bt.defaultProps={className:""};const Wt=Bt;function Ht(e){const{className:n,children:o,label:i,labelwidth:r,theme:s,style:a}=e;return t().createElement("div",{className:"tyk-list__wrapper "+(r?"tyk-list--with-inline-label":"")},void 0!==i?t().createElement("label",{style:{flexBasis:r||"auto"}},i):null,t().createElement("ul",{className:(()=>{let e=["tyk-list"];return s&&e.push(`tyk-list--${s}`),n&&(e=e.concat(n.split(" "))),e.join(" ")})(),style:(()=>{const e=structuredClone(a);return r&&(e.flexBasis=`calc(100% - ${r} - 20px)`),e})()},o))}Ht.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,label:r().string,labelwidth:r().string,theme:r().string,style:r().instanceOf(Object)},Ht.defaultProps={theme:"default",style:{}},Ht.Item=Wt;const jt=Ht;function zt({align:e="center",children:n,left:o,right:i,title:r,pre:s,subtitle:a,withTabs:l}){const c=a?t().createElement("p",{className:"font-family-medium"},a):null;return t().createElement("section",{className:"tyk-nav-bar "+(l?"tyk-nav-bar__with-tabs":"")},t().createElement("div",{className:`tyk-nav-bar__wrapper tyk-nav-bar--align-${e}`},s&&t().createElement("div",{className:"tyk-nav-bar__pre"},s),r?t().createElement("div",null,t().createElement("h1",null,r),c):c,t().createElement("div",{className:"tyk-nav-bar__container"},o&&t().createElement("div",{className:"tyk-nav-bar__left"},o),i&&t().createElement("div",{className:"tyk-nav-bar__right"},i))),n)}zt.propTypes={align:r().string,children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),title:r().string,subtitle:r().string,pre:r().oneOfType([r().element,r().node]),left:r().oneOfType([r().element,r().node]),right:r().oneOfType([r().element,r().node]),withTabs:r().bool};const Vt=zt;function Ut({children:e}){return t().createElement("li",{className:"tyk-navigation-item"},e)}Ut.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string])};const Gt=Ut;function Kt({children:e}){return t().createElement("ul",{className:"tyk-navigation"},e)}Kt.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string])},Kt.Item=Gt;const qt=Kt,Yt=(0,e.createContext)();var Jt=Object.defineProperty,Xt=Object.defineProperties,Qt=Object.getOwnPropertyDescriptors,Zt=Object.getOwnPropertySymbols,en=Object.prototype.hasOwnProperty,tn=Object.prototype.propertyIsEnumerable,nn=(e,t,n)=>t in e?Jt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,on=(e,t)=>{for(var n in t||(t={}))en.call(t,n)&&nn(e,n,t[n]);if(Zt)for(var n of Zt(t))tn.call(t,n)&&nn(e,n,t[n]);return e},rn=(e,t)=>Xt(e,Qt(t));function sn(n){var o=n,{children:i,noPadding:r,className:s}=o,a=((e,t)=>{var n={};for(var o in e)en.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Zt)for(var o of Zt(e))t.indexOf(o)<0&&tn.call(e,o)&&(n[o]=e[o]);return n})(o,["children","noPadding","className"]);const l=(0,e.useCallback)((()=>["tyk-panel__body",s,r&&"no-padding"].filter(Boolean).join(" ")),[s,r]);return t().createElement(Yt.Consumer,null,(e=>e.collapsable?t().createElement(R,rn(on({},a),{collapsed:e.collapsed,className:l()}),i):t().createElement("div",rn(on({},a),{className:l()}),i)))}sn.propTypes={children:r().oneOfType([r().element,r().node,r().string]),noPadding:r().bool,className:r().string};const an=sn;function ln(e){const{children:n}=e;return t().createElement("div",{className:"tyk-panel__footer"},n)}ln.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const cn=ln;class un extends e.Component{getCssClasses(e){const{className:t}=this.props;let n=["tyk-panel__header"];return e.collapsable&&n.push("collapsable"),t&&(n=n.concat(t.split(" "))),n.join(" ")}render(){const{children:e}=this.props;return t().createElement(Yt.Consumer,null,(n=>{const o="blank"===n.theme?"h3":"div",i=n.collapsed?"chevron-down":"chevron-up";return t().createElement(o,{className:this.getCssClasses(n),onClick:n.collapsable?n.onToggle:void 0},e,n.collapsable?t().createElement("div",{className:`collapsable__arrow-${n.collapsibleIconPosition}`},t().createElement(g,{type:i})):null)}))}}un.propTypes={children:r().oneOfType([r().element,r().node,r().string]).isRequired,className:r().string};const hn=un;function dn(n){const{children:o,className:i,collapsed:r,collapsable:s,theme:a,onToggleCollapse:l,collapsibleIconPosition:c="right"}=n,[u,h]=(0,e.useState)(r||!1);(0,e.useEffect)((()=>{r!==u&&h(r)}),[r]);const d=(0,e.useCallback)((()=>{h(!u),l&&l(!u)}),[u,l]),p=(0,e.useMemo)((()=>({collapsable:s,collapsed:u,onToggle:d,theme:a,collapsibleIconPosition:c})),[s,u,c,a,d]);return t().createElement("div",{className:(()=>{let e=["tyk-panel"];const t=`tyk-panel--${a||"default"}`,n=`tyk-panel__icon-collapse--${c}`;return e.push(t),e.push(n),i&&(e=e.concat(i.split(" "))),u&&e.push("tyk-panel--collapsed"),e.join(" ")})()},t().createElement(Yt.Provider,{value:p},"function"==typeof o?o({toggleCollapse:d}):o))}dn.propTypes={children:r().oneOfType([r().func,r().element,r().node,r().string]),className:r().string,collapsable:r().bool,collapsibleIconPosition:r().string,collapsed:r().bool,theme:r().string,onToggleCollapse:r().func},dn.Body=an,dn.Footer=cn,dn.Header=hn;const pn=dn;function gn(e){const{children:n,className:o,theme:i}=e;return t().createElement("div",{className:(()=>{let e=["tyk-pill",...i.split(" ").map((e=>`tyk-pill--${e}`))];return o&&(e=e.concat(o)),e.join(" ")})()},n)}gn.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,theme:r().string},gn.defaultProps={theme:"default"};const mn=gn;var fn,yn,vn,bn,wn,xn,kn,Cn,$n=(e,t,n)=>{if(!t.has(e))throw TypeError("Cannot "+n)},Sn=(e,t,n)=>($n(e,t,"read from private field"),n?n.call(e):t.get(e)),En=(e,t,n)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,n)},On=(e,t,n,o)=>($n(e,t,"write to private field"),o?o.call(e,n):t.set(e,n),n);class Tn{constructor(){En(this,fn,null),En(this,yn,null),En(this,vn,null),En(this,bn,null),En(this,wn,[]),En(this,xn,[]),En(this,kn,[]),En(this,Cn,!1)}on(e,t){let n=null;"onHeightChange"===e?n=Sn(this,wn):"onDragStart"===e?n=Sn(this,xn):"onDragEnd"===e&&(n=Sn(this,kn)),n&&this.addListener(n,t)}off(e,t){let n=null;"onHeightChange"===e?n=Sn(this,wn):"onDragStart"===e?n=Sn(this,xn):"onDragEnd"===e&&(n=Sn(this,kn)),n&&this.removeListener(n,t)}setRefs(e,t,n){(Sn(this,yn)||Sn(this,vn)||Sn(this,bn))&&this.unbindEvents(),On(this,bn,e),On(this,yn,t),On(this,vn,n),On(this,fn,null),this.bindEvents()}bindEvents(){this.ensureRefs("bindEvents"),Sn(this,vn).addEventListener("mousedown",this.onMouseDown.bind(this)),document.addEventListener("mousemove",this.onMouseMove.bind(this)),document.addEventListener("mouseup",this.onMouseUp.bind(this))}getHeight(){return this.ensureRefs("getHeight"),Sn(this,yn).getBoundingClientRect().height}onMouseDown(e){this.ensureRefs("onMouseDown"),On(this,fn,{mouseDown:!0,initialRect:Sn(this,yn).getBoundingClientRect(),initialEvent:e})}onMouseMove(e){if(this.ensureRefs("onMouseMove"),!Sn(this,fn))return;if(!this.isPrimaryMouseButtonDown(e))return void this.onMouseUp();Sn(this,Cn)||(On(this,Cn,!0),this.onDragStart.bind(this)());const t=Sn(this,fn).initialEvent.y-e.y,n=Math.ceil(Sn(this,fn).initialRect.height+t);this.setHeight(`${n}px`,"mousemove")}notifyListeners(e,t){e&&Array.isArray(e)&&e.length&&e.forEach((e=>{"function"==typeof e&&e(t)}))}addListener(e,t){e&&Array.isArray(e)&&"function"==typeof t&&e.push(t)}removeListener(e,t){if(e&&Array.isArray(e)&&"function"==typeof t&&e.length){const n=e.indexOf(t);n>-1&&e.splice(n,1)}}onDragEnd(){Sn(this,Cn)&&this.notifyListeners(Sn(this,kn),this.getHeight())}onDragStart(){this.notifyListeners(Sn(this,xn),this.getHeight())}isPrimaryMouseButtonDown(e){return 1===(void 0!==e.buttons?e.buttons:e.which)}onMouseUp(){On(this,fn,null),this.onDragEnd.bind(this)(),On(this,Cn,!1)}setHeight(e){let t=e;this.ensureRefs("setHeight"),"number"==typeof t&&(t+="px"),Sn(this,yn).style.height=t,this.notifyListeners(Sn(this,wn),this.getHeight())}ensureRefs(e){if(!Sn(this,yn)||!Sn(this,vn)||!Sn(this,bn))throw new Error(`${e}: Wrapper, panel, and gutter elements are required. Use setRefs method first.`)}isHidden(){return this.ensureRefs("isHidden"),"hidden"===Sn(this,bn).style.visibility}hide(){this.ensureRefs("hide"),Sn(this,bn).style.visibility="hidden"}show(){this.ensureRefs("show"),Sn(this,bn).style.visibility="visible"}unbindEvents(){On(this,wn,[]),On(this,xn,[]),On(this,kn,[]),Sn(this,vn).removeEventListener("mousedown",this.onMouseDown.bind(this)),document.removeEventListener("mousemove",this.onMouseMove.bind(this)),document.removeEventListener("mouseup",this.onMouseUp.bind(this))}deinit(){this.unbindEvents()}}function An({children:e}){return t().createElement(t().Fragment,null,e)}function _n({children:e}){return t().createElement(t().Fragment,null,e)}fn=new WeakMap,yn=new WeakMap,vn=new WeakMap,bn=new WeakMap,wn=new WeakMap,xn=new WeakMap,kn=new WeakMap,Cn=new WeakMap,An.propTypes={children:r().instanceOf({})},_n.propTypes={children:r().instanceOf({})};const Ln=(...e)=>e.map((e=>(e||"").trim())).filter(Boolean).join(" ");function Mn({children:n,height:o,onHeightChange:i=null,onDragStart:r=null,onDragEnd:s=null,style:a=null,parentSelector:l=null,contentStyle:c,contentClassName:u,gutterClassName:h,wrapperClassName:d},p){const g=(0,e.useRef)(null),m=(0,e.useRef)(null),f=(0,e.useRef)(null),y=(0,e.useRef)(new Tn).current;(0,e.useEffect)((()=>{if(g.current&&m.current&&f.current&&y)return y.setRefs(f.current,g.current,m.current),y.on("onHeightChange",i),y.on("onDragStart",r),y.on("onDragEnd",s),y.setHeight(o,"initialize"),()=>{y.unbindEvents()}}),[]),(0,e.useImperativeHandle)(p,(()=>{const e=e=>e.bind(y);return{getHeight:e(y.getHeight),setHeight:e(y.setHeight),hide:e(y.hide),show:e(y.show),isHidden:e(y.isHidden),deinit:e(y.deinit),on:e(y.on),off:e(y.off)}}),[]);let v=null,b=null;const w=[];t().Children.forEach(n,(e=>{e&&t().isValidElement(e)&&(e.type===An?v=e:e.type===_n?b=e:w.push(e))}));const x=t().createElement("div",{className:Ln("tyk-ui-reveal-wrapper",d||"cem"),ref:f,style:a},t().createElement("div",{className:"tyk-ui-reveal-wrapper__hole"}),t().createElement("div",{ref:m,className:Ln("tyk-ui-reveal-wrapper__gutter",h)},t().createElement("div",{className:"tyk-ui-reveal-wrapper__gutter__headerleft"},v),t().createElement("div",{className:"tyk-ui-reveal-wrapper__gutter__logo"}," "),t().createElement("div",{className:"tyk-ui-reveal-wrapper__gutter__headerright"},b)),t().createElement("div",{ref:g,className:Ln("tyk-ui-reveal-wrapper__panel",u),style:c},w));if(l)return(0,ht.createPortal)(x,document.querySelector(l))}Mn.propTypes={children:r().instanceOf({}),height:r().string,onHeightChange:r().func,onDragStart:r().func,onDragEnd:r().func,parentSelector:r().string,style:r().instanceOf({}),contentStyle:r().instanceOf({}),contentClassName:r().string,gutterClassName:r().string,wrapperClassName:r().string};const Rn=(0,e.forwardRef)(Mn);Rn.HeaderLeft=An,Rn.HeaderRight=_n;const Nn=Rn,In=(0,e.createContext)(),Pn=(0,e.createContext)();var Dn=Object.defineProperty,Fn=Object.getOwnPropertySymbols,Bn=Object.prototype.hasOwnProperty,Wn=Object.prototype.propertyIsEnumerable,Hn=(e,t,n)=>t in e?Dn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,jn=(e,t)=>{for(var n in t||(t={}))Bn.call(t,n)&&Hn(e,n,t[n]);if(Fn)for(var n of Fn(t))Wn.call(t,n)&&Hn(e,n,t[n]);return e};function zn(n){const{addTab:o,hideTab:i,updateTab:r,showTab:s,children:a,selectedPath:l,tabData:c,tabsId:u,tabExists:h,path:d,rendered:p,hideTabContent:g,tabs:m}=n;(0,e.useEffect)((()=>{const e=jn({},c);h(d)||o(e,d)}),[c,d]);const f=me(c);(0,e.useEffect)((()=>{if(h(d)&&(null==c?void 0:c.title)&&((null==f?void 0:f.title)!==(null==c?void 0:c.title)||(null==f?void 0:f.selected)!==c.selected)){const e=jn({},c);r(e,d)}}),[c,d,f,m]),(0,e.useEffect)((()=>(s(d),()=>i(d))),[]);const y=(0,e.useMemo)((()=>!!Object.keys(m).length&&!g&&!1!==m[c.id].show&&(p?l&&l.indexOf(c.id)>-1:h(d))),[g,p,l,c,m]),v=(0,e.useMemo)((()=>({path:d,tabsId:u})),[d,u]);return y?t().createElement("div",{key:c.id,className:"tyk-tab__content",style:{display:l&&l.indexOf(c.id)>-1?"block":"none"}},t().createElement(Pn.Provider,{value:v},a)):null}zn.propTypes={addTab:r().func,updateTab:r().func,hideTab:r().func,showTab:r().func,children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),path:r().instanceOf(Array),hideTabContent:r().bool,rendered:r().bool,selectedPath:r().instanceOf(Array),tabExists:r().func,tabsId:r().string,tabData:r().instanceOf(Object),tabs:r().instanceOf(Object)};const Vn=zn;function Un(n){const{id:o}=n,i=(0,e.useContext)(In),r=(0,e.useContext)(Pn),{tabExists:s,selectedPath:a,addTab:l,updateTab:c,hideTab:u,showTab:h,rendered:d,hideTabContent:p,tabs:g}=i,{children:m}=n,[f,y]=(0,e.useState)("");return(0,e.useEffect)((()=>{let e;e=r&&f&&r.tabsId===i.id?r.path.concat([o]):[o],y(e)}),[r]),f?t().createElement(Vn,{addTab:l,updateTab:c,hideTab:u,showTab:h,tabExists:s,tabData:n,path:f,tabsId:i.id,selectedPath:a,rendered:d,hideTabContent:p,tabs:g},m):null}Un.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),id:r().string},Un.defaultProps={};const Gn=Un;var Kn=Object.defineProperty,qn=Object.getOwnPropertySymbols,Yn=Object.prototype.hasOwnProperty,Jn=Object.prototype.propertyIsEnumerable,Xn=(e,t,n)=>t in e?Kn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Qn=(e,t)=>{for(var n in t||(t={}))Yn.call(t,n)&&Xn(e,n,t[n]);if(qn)for(var n of qn(t))Jn.call(t,n)&&Xn(e,n,t[n]);return e};function Zn(n){const{children:o,className:i,id:r,onTabChange:s,type:a,hideTabContent:l}=n,[c,u]=(0,e.useState)({}),[h,d]=(0,e.useState)([]),[p,m]=(0,e.useState)(!1),[f,y]=(0,e.useState)(null);(0,e.useEffect)((()=>{d(f)}),[f]);const v=(e,t)=>{const n=e.slice(0);let o=!0;t.collapsible&&(n.push(Object.keys(t.tabs)[0]),o=!1),u((t=>{let n=Qn({},t);return n=((e,t)=>{let n=Qn({},e);const o=t.slice(0);for(;o.length>1;)n=n[o.shift()];const i=o.shift();return void 0===n[i].collapsed?n[i].collapsed=!0:n[i].collapsed=!n[i].collapsed,n})(n,e),n})),d(n),m(o),s&&s(t)},b=e=>{const t=[];return h&&h.indexOf(e)>-1&&t.push("active"),t.join(" ")},w=(e,n)=>e?t().createElement("ul",null,Object.keys(e).map(((o,i)=>{const r=n?n.concat([e[o].id]):[e[o].id],s=e[o].collapsed?"chevron-up":"chevron-down";return!1===e[o].show?null:t().createElement("li",{className:b(e[o].id),key:e[o].id},t().createElement("button",{type:"button",onClick:v.bind(null,r,e[o]),onKeyDown:v.bind(null,r,e[o]),tabIndex:i},e[o].title,e[o].collapsible?t().createElement(g,{className:"collapsable-arrow",type:s}):null),e[o].collapsible?t().createElement(R,{collapsed:e[o].collapsed},w(e[o].tabs,r)):w(e[o].tabs,r))}))):null,x=(e,t)=>{u((n=>((e,t,n)=>{let o=Qn({},e);const i=Qn({},n),r=t.slice(0);for(;r.length>1;)o=o[r.shift()],o||(o={});return i.tempPath=r,o[r.shift()]=i,o})(Qn({},n),t,e))),e.selected&&y(t)},k=(e,t)=>{u((t=>{const n=Qn({},t);return n[e.id]=e,n})),e.selected&&v(t,e)},C=e=>{u((t=>{const n=Qn({},t);return n[e].show=!1,n}))},$=e=>{u((t=>{const n=Qn({},t);return n[e].show=!0,n}))},S=e=>{let t=Qn({},c);const n=e.slice(0);for(;n.length>1;)t=t[n.shift()];const o=n.shift();return Boolean(null==t?void 0:t[o])},E=(0,e.useMemo)((()=>({id:r,addTab:x,hideTab:C,updateTab:k,showTab:$,tabExists:S,selectedPath:h,rendered:p,hideTabContent:l,tabs:c})),[r,x,C,k,$,S,h,p,l,c]);return t().createElement("div",{className:(()=>{let e=["tyk-tabs"];return e.push(`tyk-tabs--${a||"default"}`),i&&(e=e.concat(i.split(" "))),e.join(" ")})()},w(c),t().createElement(In.Provider,{value:E},"function"==typeof o?o({hideTab:C,showTab:$}):o))}Zn.propTypes={className:r().string,children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),hideTabContent:r().bool,id:r().string,onTabChange:r().func,type:r().string},Zn.Tab=Gn;const eo=Zn;var to=Object.defineProperty,no=Object.getOwnPropertySymbols,oo=Object.prototype.hasOwnProperty,io=Object.prototype.propertyIsEnumerable,ro=(e,t,n)=>t in e?to(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,so=(e,t)=>{for(var n in t||(t={}))oo.call(t,n)&&ro(e,n,t[n]);if(no)for(var n of no(t))io.call(t,n)&&ro(e,n,t[n]);return e};function ao(n){var o=n,{render:i,className:r,children:s,position:a="auto",style:l,icon:c=!1,closable:u,isOpened:h=!1,additionalClickParents:d=[]}=o,p=((e,t)=>{var n={};for(var o in e)oo.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&no)for(var o of no(e))t.indexOf(o)<0&&io.call(e,o)&&(n[o]=e[o]);return n})(o,["render","className","children","position","style","icon","closable","isOpened","additionalClickParents"]);const[m,f]=(0,e.useState)(!1),y=(0,e.useRef)(null),v=(0,e.useRef)(null),b=u?{onClick:()=>f(!0)}:{onMouseEnter:()=>f(!0),onMouseLeave:()=>f(!1),onFocus:()=>f(!0),onBlur:()=>f(!1)},w=(0,e.useCallback)((e=>{[...d,v.current].some((t=>{var n;return null==(n=null==t?void 0:t.contains)?void 0:n.call(t,e.target)}))||f(!1)}),[d]);(0,e.useEffect)((()=>(document.addEventListener("click",w,!0),()=>document.removeEventListener("click",w,!0))),[w]),(0,e.useEffect)((()=>{f(h)}),[h]);const x=["tyk-tooltip",r].filter(Boolean).join(" ");return t().createElement("div",so(so({className:"tyk-tooltip__wrapper",style:so({display:"inline-block"},l),ref:y},b),p),s,m&&t().createElement(Pt,{element:y,forceDisplay:a,preferredPosition:"top",offset:20},t().createElement("div",{className:x,ref:v},c&&(!0===c?t().createElement(g,{type:"question"}):c),t().createElement("div",{className:"tyk-tooltip__content"},i),u&&t().createElement(g,{type:"xmark",onClick:e=>{e.stopPropagation(),f(!1)}}))))}ao.propTypes={children:r().node.isRequired,style:r().instanceOf(Object),position:r().string,render:r().oneOfType([r().node,r().string]),className:r().string,icon:r().oneOfType([r().bool,r().node]),closable:r().bool,isOpened:r().bool,additionalClickParents:r().instanceOf(Array)};const lo=ao;function co({text:e,limit:n,position:o}){return e.length>n?t().createElement(lo,{render:e,position:o},e.substring(0,n),"..."):e}co.propTypes={text:r().string,limit:r().number,position:r().string};const uo=co;function ho(n){const{value:o=0,totalNrOfPages:i,onChange:r}=n,[s,a]=(0,e.useState)(o),l=(0,e.useMemo)((()=>function(e,t){let n;const o=[];for(n=0;n<=e;n+=1)i=n,r=t,((s=e)<10||r<5&&i<5||r>s-5&&i>s-5||i>=r-2&&i<=r+2||[0,1,s-1,s].includes(i))&&(n>o.at(-1)&&o.push(`...-${n}`),o.push(n+1));var i,r,s;return o}(i,s)),[s,i]);function c(e){a(e),r&&r(e)}return i?t().createElement("ul",{className:"tyk-pagination"},s>0&&i>5&&t().createElement("li",null,t().createElement("button",{onClick:()=>c(s-1),type:"button"},"Previous")),l.map((e=>t().createElement("li",{key:e,className:s===e-1?"active":""},String(e).startsWith("...")?t().createElement("span",null,"..."):t().createElement("button",{onClick:()=>c(e-1),type:"button"},e)))),s5&&t().createElement("li",null,t().createElement("button",{onClick:()=>c(s+1),type:"button"},"Next"))):null}ho.propTypes={value:r().number,totalNrOfPages:r().number,onChange:r().func};const po=ho,go=(0,e.createContext)();function mo({column:n}){const{sortable:o}=n,[i,r]=(0,e.useState)((null==o?void 0:o.default)||"ASC"),{state:s,sendMessage:a}=(0,e.useContext)(go);return t().createElement("th",{key:n.id,onClick:o?()=>{a("sort",{column:n,sortOrder:i}),r("ASC"===i?"DESC":"ASC")}:null,className:s.maxHeight?"fixed-header":""},n.name,n.sortable&&t().createElement("span",{className:"header-sort"},t().createElement(g,{type:"sort"})))}mo.propTypes={column:r().instanceOf(Object)};var fo=Object.defineProperty,yo=Object.defineProperties,vo=Object.getOwnPropertyDescriptors,bo=Object.getOwnPropertySymbols,wo=Object.prototype.hasOwnProperty,xo=Object.prototype.propertyIsEnumerable,ko=(e,t,n)=>t in e?fo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Co=(e,t)=>{for(var n in t||(t={}))wo.call(t,n)&&ko(e,n,t[n]);if(bo)for(var n of bo(t))xo.call(t,n)&&ko(e,n,t[n]);return e},$o=(e,t)=>yo(e,vo(t));function So({allRowsSelected:n}){const{state:o,sendMessage:i}=(0,e.useContext)(go),{columns:r,selectable:s}=o,a=()=>{var e;const r=s.type;return t().createElement("th",{className:o.maxHeight?"fixed-header":""},(null==s?void 0:s.allowSelectAll)?t().createElement("div",{className:null==s?void 0:s.style},t().createElement(r,$o(Co({},s.values),{value:n,onChange:e=>{var t,n;const o="input"===(null==(t=null==e?void 0:e.target)?void 0:t.tagName.toLowerCase())&&"checkbox"===(null==(n=null==e?void 0:e.target)?void 0:n.type.toLowerCase());i("header.selectAll.change",o?e.target.checked:Boolean(e))}}),null==(e=s.values)?void 0:e.value)):s.name||"Select")};return t().createElement("thead",null,t().createElement("tr",null,"LEFT"===(null==s?void 0:s.position)&&a(),r.map((e=>t().createElement(mo,{key:e.id,column:e}))),"RIGHT"===(null==s?void 0:s.position)&&a()))}So.propTypes={allRowsSelected:r().bool};var Eo=Object.defineProperty,Oo=Object.defineProperties,To=Object.getOwnPropertyDescriptors,Ao=Object.getOwnPropertySymbols,_o=Object.prototype.hasOwnProperty,Lo=Object.prototype.propertyIsEnumerable,Mo=(e,t,n)=>t in e?Eo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ro=(e,t)=>{for(var n in t||(t={}))_o.call(t,n)&&Mo(e,n,t[n]);if(Ao)for(var n of Ao(t))Lo.call(t,n)&&Mo(e,n,t[n]);return e};class No extends e.Component{getCssClasses(){const{inline:e,disabled:t,readOnly:n,theme:o="",wrapperClassName:i=""}=this.props,r=[i];return r.push("tyk-checkbox"),e&&r.push("tyk-checkbox--inline"),o.trim()&&r.push(...o.split(" ").map((e=>`tyk-checkbox--theme-${e}`))),(t||n)&&r.push("tyk-checkbox--is-disabled"),r.join(" ")}displayError(){const{error:e}=this.props;return e?t().createElement("p",{className:"tyk-form-control__error-message"},e):null}displayNote(){const{note:e}=this.props;return e?t().createElement("p",{className:"tyk-form-control__help-block"},e):null}render(){const e=this.props,{input:n,value:o,label:i}=e,r=((e,t)=>{var n={};for(var o in e)_o.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ao)for(var o of Ao(e))t.indexOf(o)<0&&Lo.call(e,o)&&(n[o]=e[o]);return n})(e,["input","value","label"]);return t().createElement("div",{className:this.getCssClasses()},t().createElement("div",{className:"tyk-form-control__wrapper"},t().createElement("label",null,t().createElement("input",(s=Ro(Ro({checked:n?n.value:o},n),r),Oo(s,To({type:"checkbox"})))),i),this.displayNote(),this.displayError()));var s}}No.propTypes={disabled:r().bool,readOnly:r().bool,inline:r().bool,theme:r().string,error:r().oneOfType([r().string,r().bool]),note:r().string,input:r().instanceOf(Object),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),name:r().string,value:r().oneOfType([r().string,r().bool]),checked:r().oneOfType([r().string,r().bool]),onChange:r().func,wrapperClassName:r().string};const Io=No;var Po=Object.defineProperty,Do=Object.getOwnPropertySymbols,Fo=Object.prototype.hasOwnProperty,Bo=Object.prototype.propertyIsEnumerable,Wo=(e,t,n)=>t in e?Po(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ho=(e,t)=>{for(var n in t||(t={}))Fo.call(t,n)&&Wo(e,n,t[n]);if(Do)for(var n of Do(t))Bo.call(t,n)&&Wo(e,n,t[n]);return e};function jo({col:e,row:n}){var o,i,r,s,a;if(!n.values[e.id])return t().createElement("td",null);if("string"===e.type)return t().createElement("td",Ho({className:(null==(o=n.values[e.id].styling)?void 0:o.className)||null},null==(i=n.values[e.id])?void 0:i.events),null==(r=n.values[e.id])?void 0:r.value);const l=e.type;return t().createElement("td",Ho({className:(null==(s=n.values[e.id].styling)?void 0:s.className)||null},null==(a=n.values[e.id])?void 0:a.events),t().createElement(l,Ho({},n.values[e.id].props),n.values[e.id].children?n.values[e.id].children:null))}function zo({row:n,index:o}){var i,r;const{state:s,sendMessage:a}=(0,e.useContext)(go),{columns:l,selectable:c}=s,u=(0,e.useCallback)((()=>t().createElement("td",null,t().createElement(Io,{value:n.selected,onChange:e=>a("row.selected",{index:o,selected:e.target.checked})}))),[n.selected,o]);return t().createElement("tr",{onClick:null==(i=n.events)?void 0:i.onClick,className:null==(r=n.styling)?void 0:r.className},c&&"LEFT"===c.position&&u(),l.map((e=>t().createElement(jo,{key:e.id,col:e,row:n,index:o}))),c&&"RIGHT"===c.position&&u())}function Vo(){const{state:n}=(0,e.useContext)(go),{rows:o}=n;return t().createElement("tbody",null,o.map(((e,n)=>t().createElement(zo,{key:n,row:e,index:n}))))}jo.propTypes={col:r().instanceOf(Object),row:r().instanceOf(Object),index:r().number},zo.propTypes={row:r().instanceOf(Object),index:r().number};var Uo=Object.defineProperty,Go=Object.defineProperties,Ko=Object.getOwnPropertyDescriptors,qo=Object.getOwnPropertySymbols,Yo=Object.prototype.hasOwnProperty,Jo=Object.prototype.propertyIsEnumerable,Xo=(e,t,n)=>t in e?Uo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Qo=(e,t)=>{for(var n in t||(t={}))Yo.call(t,n)&&Xo(e,n,t[n]);if(qo)for(var n of qo(t))Jo.call(t,n)&&Xo(e,n,t[n]);return e},Zo=(e,t)=>Go(e,Ko(t));function ei({value:n,onChange:o,noDataMessage:i,loading:r,infiniteScrolling:s}){var a;const[l,c]=(0,e.useState)(null),[u,h]=(0,e.useState)("api"),d=(0,e.useRef)(null),p=(0,e.useCallback)(((e,t)=>{c((n=>Zo(Qo({},n),{sort:{order:t,col:e}})))}),[]),g=(0,e.useCallback)((e=>{c((t=>Zo(Qo({},t),{rows:t.rows.map((t=>Zo(Qo({},t),{selected:e})))})))}),[]),m=(0,e.useCallback)((({index:e,selected:t})=>{c((n=>Zo(Qo({},n),{rows:[...n.rows.slice(0,e),Zo(Qo({},n.rows[e]),{selected:t}),...n.rows.slice(e+1)]})))}),[]),f=(0,e.useCallback)((e=>{c((t=>Zo(Qo({},t),{pagination:Zo(Qo({},t.pagination),{current:e+1})})))}),[]),y={getState:()=>l,setState:e=>c(e)},v=(0,e.useCallback)(((e,t)=>{h(e),"sort"===e&&p(t.column.id,t.sortOrder),"header.selectAll.change"===e&&g(t),"row.selected"===e&&m(t),"pagination.change"===e&&f(t)}),[p,g,m,f]),b=(0,e.useMemo)((()=>({state:l,sendMessage:v})),[l,v]);if((0,e.useEffect)((()=>c(n)),[n]),(0,e.useEffect)((()=>{o&&o(u,l,y),h("api")}),[l]),!l)return t().createElement(ye,{position:"absolute"});if(l.rows<=0)return t().createElement(be,{theme:"info"},i||"No Data Available");const w=()=>t().createElement("table",{className:"tyk-table",ref:d},t().createElement(So,{allRowsSelected:l.rows.every((({selected:e})=>e))}),t().createElement(Vo,null));return t().createElement(go.Provider,{value:b},t().createElement("div",{className:`scrollable ${(null==(a=l.styling)?void 0:a.className)||""}`,style:{height:l.maxHeight?l.maxHeight:"auto",position:"relative"}},r&&t().createElement(ye,{position:"absolute",withbackground:!0}),s&&l.pagination?t().createElement(At,{refChild:d,hasMore:l.pagination.totalPages>l.pagination.current,loadMore:e=>v("pagination.change",e),pageNumber:l.pagination.current-1,initialLoad:!1},w()):w()),l.pagination&&!s&&t().createElement("div",{className:"new-table-pagination"},t().createElement(po,{value:l.pagination.current-1,nrItemsOnPage:l.pagination.perPage-1,totalNrOfPages:l.pagination.totalPages-1,onChange:e=>v("pagination.change",e)})))}ei.propTypes={value:r().shape({columns:r().arrayOf(r().shape({id:r().string.isRequired,name:r().string,type:r().oneOfType([r().string,r().element,r().func]),sortable:r().oneOfType([r().bool,r().shape({default:r().string})])})),rows:r().arrayOf(r().shape({})),selectable:r().shape({}),pagination:r().shape({}),maxHeight:r().string,styling:r().shape({className:r().string})}).isRequired,onChange:r().func,noDataMessage:r().string,loading:r().bool,infiniteScrolling:r().bool},ei.defaultProps={loading:!1,infiniteScrolling:!1,noDataMessage:"No Data Available",onChange:null};const ti=ei;var ni=Object.defineProperty,oi=Object.getOwnPropertySymbols,ii=Object.prototype.hasOwnProperty,ri=Object.prototype.propertyIsEnumerable,si=(e,t,n)=>t in e?ni(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function ai(e){var n=e,{children:o,align:i,className:r,offset:s,size:a}=n,l=((e,t)=>{var n={};for(var o in e)ii.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&oi)for(var o of oi(e))t.indexOf(o)<0&&ri.call(e,o)&&(n[o]=e[o]);return n})(n,["children","align","className","offset","size"]);const c=["tyk-col",r,i&&`tyk-col--align-${i}`,...a.split(" ").map((e=>`tyk-col--${e}`)),...(s?s.split(" "):[]).map((e=>`tyk-col--offset-${e}`))].filter(Boolean).join(" ");return t().createElement("div",((e,t)=>{for(var n in t||(t={}))ii.call(t,n)&&si(e,n,t[n]);if(oi)for(var n of oi(t))ri.call(t,n)&&si(e,n,t[n]);return e})({className:c},l),o)}ai.propTypes={align:r().string,className:r().string,size:r().string.isRequired,offset:r().string,children:r().oneOfType([r().element,r().string,r().object,r().node])};const li=ai;var ci=Object.defineProperty,ui=Object.defineProperties,hi=Object.getOwnPropertyDescriptors,di=Object.getOwnPropertySymbols,pi=Object.prototype.hasOwnProperty,gi=Object.prototype.propertyIsEnumerable,mi=(e,t,n)=>t in e?ci(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function fi(e){var n=e,{className:o,nogutters:i,children:r}=n,s=((e,t)=>{var n={};for(var o in e)pi.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&di)for(var o of di(e))t.indexOf(o)<0&&gi.call(e,o)&&(n[o]=e[o]);return n})(n,["className","nogutters","children"]);const a=["tyk-row",o,i&&"no-gutters",i&&"tyk-row--gutterless"].filter(Boolean).join(" ");return t().createElement("div",(l=((e,t)=>{for(var n in t||(t={}))pi.call(t,n)&&mi(e,n,t[n]);if(di)for(var n of di(t))gi.call(t,n)&&mi(e,n,t[n]);return e})({},s),ui(l,hi({className:a}))),r);var l}fi.propTypes={children:r().oneOfType([r().element,r().node]),className:r().string,nogutters:r().bool};const yi=fi,vi=(0,e.createContext)();function bi(n){const{customdropdownitem:o,children:i,eventKey:r,href:s,target:a,title:l,onClick:c}=n,u=(0,e.useCallback)(((e,t)=>{e.onSelectItem(r,t),c&&c(r)}),[]);return t().createElement(vi.Consumer,null,(c=>t().createElement("li",{onClick:()=>u(c,n),onKeyUp:()=>{}},o?(0,e.cloneElement)(o,{}):t().createElement("a",{href:s,target:a},r&&c.selectedItem===r&&c.showCheckmark?t().createElement(g,{type:"check"}):null,t().createElement("span",null,l||i)))))}bi.propTypes={children:r().oneOfType([r().element,r().node,r().string]),customdropdownitem:r().oneOfType([r().arrayOf(r().node),r().node,r().element]),eventKey:r().string,href:r().string,target:r().string,onClick:r().func,title:r().string};const wi=bi;var xi=Object.defineProperty,ki=Object.getOwnPropertySymbols,Ci=Object.prototype.hasOwnProperty,$i=Object.prototype.propertyIsEnumerable,Si=(e,t,n)=>t in e?xi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Ei extends e.Component{static isElemInRightView(e,t){const n=window.innerWidth;return e.getBoundingClientRect().left+t<=n}static isElemInBottomView(e,t){const n=window.innerHeight,o=e.getBoundingClientRect(),i=e.clientHeight;return o.top+i+t<=n}constructor(t){super(t);const{selectedItem:n,open:o}=this.props;this.state={opened:o,selectedItem:n||null},this.dropdownRef=(0,e.createRef)(),this.dropdownListRef=(0,e.createRef)(),this.dropdownButtonRef=(0,e.createRef)(),this.onSelectItem=this.onSelectItem.bind(this),this.toggleDropdown=this.toggleDropdown.bind(this),this.handleClickOutside=this.handleClickOutside.bind(this)}componentDidMount(){document.addEventListener("mousedown",this.handleClickOutside),this.dropdownListRef.current&&this.getStyles()}componentDidUpdate(e){const{open:t}=this.props,{opened:n}=this.state;this.dropdownListRef.current&&this.getStyles(),e.open||!0!==t||n||this.toggleDropdown(),e.open&&!1===t&&n&&this.closeDropdown()}componentWillUnmount(){document.removeEventListener("mousedown",this.handleClickOutside)}handleClickOutside(e){this.dropdownListRef.current&&!this.dropdownListRef.current.contains(e.target)&&this.dropdownRef.current&&!this.dropdownRef.current.contains(e.target)&&this.closeDropdown()}onSelectItem(e,t){const{closeOnSelect:n,onSelect:o}=this.props,i={selectedItem:e,selectedItemProps:t};n&&(i.opened=!1),this.setState(i),o&&"function"==typeof o&&o(e)}getStyles(){const{display:e,position:t,offset:n}=this.props,o=this.dropdownListRef.current;if(n)return o.style.top=`${n.top}`,void(o.style.left=`${n.left}`);const i=Math.max(document.documentElement.scrollTop,document.body.scrollTop,window.scrollY),r=this.dropdownRef.current,s=r.clientHeight,a=o?o.clientHeight:0,l=o?o.clientWidth:0,c=r.getBoundingClientRect(),{left:u,top:h}=c;let d=0,p=u;d=Ei.isElemInBottomView(r,a)?h+i+s:h+i-a-5,Ei.isElemInRightView(r,l)||(p=u+r.clientWidth-l),"relative"!==t&&(o.style.top=`${d}px`,"block"!==e&&(o.style.left=`${p}px`)),"block"!==e&&(o.style.minWidth=`${this.dropdownButtonRef.current.clientWidth}px`)}getWrapperCssClasses(){const{btnGroup:e,btnGroupSize:t,className:n,btnTheme:o,wrapperClassName:i=""}=this.props;let r=[i,"tyk-dropdown"];return r.push(`theme-${o||"default"}`),n&&(r=r.concat(n.split(" "))),e&&(r.push("tyk-button-group"),r.push(t?`tyk-button-group--${t}`:"tyk-button-group--md")),r.join(" ")}getCssClasses(){const{opened:e}=this.state,{hasCustomContent:t,display:n,listclassnames:o,position:i,maxHeight:r}=this.props;let s=["tyk-dropdown-menu","tyk-dropdown"];return r&&s.push("tyk-dropdown--scrollable"),e&&s.push("opened"),o&&(s=s.concat(o.split(" "))),n&&s.push("tyk-dropdown--block"),t&&s.push("tyk-dropdown--custom"),"relative"===i&&s.push("tyk-dropdown--relative"),s.join(" ")}getBtnTitle(){const{btnTitle:e,stopButtonTextChange:t}=this.props,{selectedItemProps:n}=this.state;return!t&&(null==n?void 0:n.title)?n.title:e}closeDropdown(){const{onClose:e}=this.props;this.setState({opened:!1},(()=>{e&&e()}))}toggleDropdown(){const{opened:e}=this.state;e?this.closeDropdown():this.setState({opened:!0})}render(){const{appendTo:e,btnClassName:n,btnSize:o,customBtnTitle:i,hasCustomContent:r,btnTheme:s,children:a,label:l,showDropdownIcon:c,showTriggerButton:u,showCheckmark:h,disabled:d=!1,maxHeight:p}=this.props,{selectedItem:g,opened:m}=this.state,f=r?"div":"ul";return t().createElement("div",{className:this.getWrapperCssClasses(),ref:this.dropdownRef},l?t().createElement("label",{className:"font-family-medium"},l):null,u?t().createElement(U,{className:`tyk-dropdown__trigger ${m?"tyk-dropdown__trigger--opened ":" "} ${n}`,theme:s||"default",onClick:this.toggleDropdown,iconType:c?"chevron-down":null,iconPosition:"right",size:o||"md",type:"button",disabled:d,ref:this.dropdownButtonRef},i||this.getBtnTitle()):null,m?dt().createPortal(t().createElement(vi.Provider,{value:{onSelectItem:this.onSelectItem,selectedItem:g,showCheckmark:h}},m?t().createElement(f,((e,t)=>{for(var n in t||(t={}))Ci.call(t,n)&&Si(e,n,t[n]);if(ki)for(var n of ki(t))$i.call(t,n)&&Si(e,n,t[n]);return e})({className:this.getCssClasses(),ref:this.dropdownListRef},p&&{style:{maxHeight:p}}),"function"==typeof a?a({closeDropdown:this.closeDropdown.bind(this)}):a):null),document.querySelector(e||"body")):null)}}Ei.propTypes={appendTo:r().string,children:r().oneOfType([r().element,r().node,r().string,r().func]),closeOnSelect:r().bool,btnClassName:r().string,btnSize:r().string,btnGroupSize:r().string,btnTheme:r().string,btnTitle:r().oneOfType([r().node,r().element,r().string]),customBtnTitle:r().oneOfType([r().node,r().element,r().string]),btnGroup:r().bool,className:r().string,display:r().string,disabled:r().bool,hasCustomContent:r().bool,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),listclassnames:r().string,onClose:r().func,onSelect:r().func,open:r().bool,offset:r().instanceOf(Object),position:r().string,selectedItem:r().string,showDropdownIcon:r().bool,stopButtonTextChange:r().bool,showTriggerButton:r().bool,showCheckmark:r().bool,maxHeight:r().string,wrapperClassName:r().string},Ei.defaultProps={closeOnSelect:!1,showDropdownIcon:!0,showTriggerButton:!0,showCheckmark:!0,open:!1},Ei.Item=wi;const Oi=Ei;var Ti=Object.defineProperty,Ai=Object.getOwnPropertySymbols,_i=Object.prototype.hasOwnProperty,Li=Object.prototype.propertyIsEnumerable,Mi=(e,t,n)=>t in e?Ti(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Ri({title:e,theme:n="primary",splitTrigger:o,toggle:i,onTriggerClick:r,value:s},a){return o?t().createElement(K,{ref:a},t().createElement(U,((e,t)=>{for(var n in t||(t={}))_i.call(t,n)&&Mi(e,n,t[n]);if(Ai)for(var n of Ai(t))Li.call(t,n)&&Mi(e,n,t[n]);return e})({theme:n},r&&{onClick:()=>r(s)}),e),t().createElement(U,{className:"dropdown__trigger",iconType:"chevron-down",iconPosition:"right",theme:n,onClick:i,iconOnly:!0})):t().createElement(U,{className:"dropdown__trigger",iconType:"chevron-down",iconPosition:"right",theme:n,ref:a,onClick:i},e)}Ri.propTypes={title:r().string,theme:r().string,splitTrigger:r().bool,toggle:r().func,dropdownRef:r().shape({current:r().instanceOf(Element)}).isRequired,onTriggerClick:r().func,value:r().oneOfType([r().string,r().number])};const Ni=(0,e.forwardRef)(Ri);var Ii=Object.defineProperty,Pi=Object.getOwnPropertySymbols,Di=Object.prototype.hasOwnProperty,Fi=Object.prototype.propertyIsEnumerable,Bi=(e,t,n)=>t in e?Ii(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Wi=(e,t)=>{for(var n in t||(t={}))Di.call(t,n)&&Bi(e,n,t[n]);if(Pi)for(var n of Pi(t))Fi.call(t,n)&&Bi(e,n,t[n]);return e};function Hi({children:e,element:n,maxWidth:o},i){return t().createElement(Pt,{element:n,ref:i,className:"dropdown__menu",position:"bottom",alignment:"auto",offset:5,arrow:!0},t().createElement(jt,{style:Wi({},o&&{maxWidth:o}),theme:"primary"},e))}Hi.propTypes={element:r().shape({current:r().instanceOf(Element)}),children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),maxWidth:r().string};const ji=(0,e.forwardRef)(Hi),zi=(0,e.createContext)();var Vi=Object.defineProperty,Ui=Object.getOwnPropertySymbols,Gi=Object.prototype.hasOwnProperty,Ki=Object.prototype.propertyIsEnumerable,qi=(e,t,n)=>t in e?Vi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Yi=(e,t)=>{for(var n in t||(t={}))Gi.call(t,n)&&qi(e,n,t[n]);if(Ui)for(var n of Ui(t))Ki.call(t,n)&&qi(e,n,t[n]);return e};function Ji({children:n,value:o}){const{onChange:i,value:r}=(0,e.useContext)(zi);return t().createElement(jt.Item,Yi({},o===r&&{selected:!0}),t().createElement("a",Yi({},i&&{onClick:()=>i(o)}),n))}Ji.propTypes={children:r().node,value:r().any};const Xi=Ji;function Qi({children:n,title:o,theme:i,splitTrigger:r,onChange:s,value:a,setSelectedValueAsTitle:l,maxWidth:c,onTriggerClick:u}){const{isOpen:h,toggle:d,dropdownRef:p,dropdownListRef:g}=(({splitTrigger:t})=>{const[n,o]=(0,e.useState)(!1),i=(0,e.useRef)(null),r=(0,e.useRef)(null),s=(0,e.useCallback)((e=>{const s=t?i.current.querySelector(".dropdown__trigger"):i.current;!n||s.contains(e.target)||r.current.contains(e.target)||o(!1)}),[n]);return(0,e.useEffect)((()=>(document.addEventListener("mousedown",s),()=>{document.removeEventListener("mousedown",s)})),[s]),{isOpen:n,toggle:()=>o(!n),dropdownRef:i,dropdownListRef:r}})({splitTrigger:r}),m=(0,e.useMemo)((()=>({onChange:s,value:a})),[s,a]);return t().createElement(zi.Provider,{value:m},t().createElement(Ni,{title:l?a:o,onTriggerClick:u,theme:i,splitTrigger:r,toggle:d,ref:p,value:a}),h&&t().createElement(ji,{element:p,ref:g,maxWidth:c},n))}Qi.propTypes={title:r().string,theme:r().string,children:r().node,splitTrigger:r().bool,onChange:r().func,value:r().oneOfType([r().string,r().number]),setSelectedValueAsTitle:r().bool,maxWidth:r().string,onTriggerClick:r().func},Qi.Item=Xi;const Zi=Qi;var er=n(239),tr=n.n(er);const nr=require("react-ace");var or=n.n(nr);n(395),n(576),n(7),n(549),n(252),n(202),n(711),n(604),n(134),n(203);const ir=n.p+"ee385296b124aae4e5d9.js";var rr=Object.defineProperty,sr=Object.defineProperties,ar=Object.getOwnPropertyDescriptors,lr=Object.getOwnPropertySymbols,cr=Object.prototype.hasOwnProperty,ur=Object.prototype.propertyIsEnumerable,hr=(e,t,n)=>t in e?rr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,dr=(e,t)=>{for(var n in t||(t={}))cr.call(t,n)&&hr(e,n,t[n]);if(lr)for(var n of lr(t))ur.call(t,n)&&hr(e,n,t[n]);return e};function pr(n){const{disabled:o,readOnly:i,disableValidation:r,id:s,error:a,label:l,labelwidth:c,note:u,onBlur:h,onChange:d,theme:p,value:g,setOptions:m,wrapperClassName:f}=n,y=["tyk-form-group",f,...p?p.split(" ").map((e=>`tyk-form-group--${e}`)):[],c&&"tyk-form-group--label-has-width",a&&"has-error"].filter(Boolean).join(" "),v=dr(dr({},m),r&&{useWorker:!1}),b=(0,e.useCallback)((()=>a&&"true"!==a&&"false"!==a?t().createElement("p",{className:"tyk-form-control__error-message"},a):null),[a]),w=(0,e.useCallback)((()=>c?{flexBasis:c}:{}),[c]),x=(0,e.useCallback)((()=>c?{flexBasis:`calc(100% - ${c} - 20px)`}:{}),[c]),k=(0,e.useCallback)((e=>{d&&d(e)}),[d]),C=(0,e.useCallback)((()=>{h&&h(g)}),[h,g]);return t().createElement("div",{className:y},l?t().createElement("label",{htmlFor:s,style:w()},l):null,t().createElement("div",{className:"tyk-form-control__wrapper",style:x()},t().createElement(or(),($=dr({className:"tyk-form-control"},n),sr($,ar({onChange:k,onBlur:C,theme:"github",editorProps:{$blockScrolling:!0},readOnly:i||o,onLoad:e=>{e.container.style.resize="both",document.addEventListener("mouseup",(()=>e.resize()))},setOptions:v})))),u?t().createElement("p",{className:"tyk-form-control__help-block"},u):null,b()));var $}tr().config.setModuleUrl("ace/mode/json_worker",ir),pr.propTypes={disabled:r().bool,readOnly:r().bool,disableValidation:r().bool,id:r().string,error:r().oneOfType([r().string,r().bool]),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,mode:r().string,name:r().string,note:r().string,onBlur:r().func,onChange:r().func,theme:r().string,value:r().string,setOptions:r().instanceOf(Object),wrapperClassName:r().string};const gr=pr;var mr=Object.defineProperty,fr=Object.defineProperties,yr=Object.getOwnPropertyDescriptors,vr=Object.getOwnPropertySymbols,br=Object.prototype.hasOwnProperty,wr=Object.prototype.propertyIsEnumerable,xr=(e,t,n)=>t in e?mr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,kr=(e,t)=>{for(var n in t||(t={}))br.call(t,n)&&xr(e,n,t[n]);if(vr)for(var n of vr(t))wr.call(t,n)&&xr(e,n,t[n]);return e};const Cr=(e,t,n)=>n||(e||t?[]:null);class $r extends e.Component{static closeList(){return{cursor:-1,opened:!1}}static openList(){return{opened:!0}}static filterByName(e,t){return e.name.toLowerCase().indexOf(t)>-1}constructor(t){super(t);const{multiple:n,tags:o,value:i}=t;this.state={cursor:-1,opened:!1,width:50,initialValue:i,stateSelectedValues:Cr(n,o,i),searchText:"",tags:o},this.comboboxRef=(0,e.createRef)(),this.valuesListRef=(0,e.createRef)(),this.inputRef=(0,e.createRef)(),this.textRef=(0,e.createRef)(),this.focusInput=this.focusInput.bind(this),this.onKeyUp=this.onKeyUp.bind(this),$r.openList=$r.openList.bind(this),this.handleClickOutside=this.handleClickOutside.bind(this),this.handleItemsNavigation=this.handleItemsNavigation.bind(this),this.handleComboboxDropdownClick=this.handleComboboxDropdownClick.bind(this),this.handleListItemClick=this.handleListItemClick.bind(this),this.handlePillRemoveClick=this.handlePillRemoveClick.bind(this),this.manageSelectedTags=this.manageSelectedTags.bind(this)}componentDidMount(){const{tags:e}=this.props;e&&this.setInputWidth(),this.bindEvents()}componentWillUnmount(){this.unBindEvents()}static getDerivedStateFromProps(e,t){return JSON.stringify(e.value)!==JSON.stringify(t.initialValue)||e.tags!==t.tags?{initialValue:e.value,stateSelectedValues:Cr(e.multiple,e.tags,e.value),tags:e.tags}:null}handleItemsNavigation(e){const{tags:t}=this.props;if(-1===["ArrowDown","ArrowUp"].indexOf(e.key))return;const{cursor:n}=this.state,o=this.filterValues();let i;if(e.preventDefault(),"ArrowDown"===e.key&&(-1===n||n===o.length-1?i=0:n0?n-1:o.length-1),this.valuesListRef.current&&i>4){const e=38*(i-4);this.valuesListRef.current.scrollTop=t?e:60+e}else this.valuesListRef.current&&(this.valuesListRef.current.scrollTop=0);this.setState((e=>{return t=kr({},e),fr(t,yr({opened:!0,cursor:i}));var t}))}handleListItemClick(e){if(this.props.values[e].disabled)return;const{multiple:t,tags:n}=this.props,o=n?"manageSelectedTags":"manageSelectedValues",i=kr(kr({},this.state),this[o](e));this.setState((e=>(t||n||(i.opened=!1),kr(kr({},e),i))))}handlePillRemoveClick(e){const{disabled:t}=this.props;if(t)return;const n=this.removeSelectedValue(e);this.setState((e=>kr(kr({},e),n)))}handleClickOutside(e){this.valuesListRef.current&&!this.valuesListRef.current.contains(e.target)&&this.comboboxRef.current&&!this.comboboxRef.current.contains(e.target)&&this.setState((e=>kr(kr({},e),$r.closeList())))}handleComboboxDropdownClick(){const{disabled:e}=this.props;e||this.setState((e=>kr(kr({},e),$r.openList())))}onKeyUp(e){const{tags:t,allowCustomValues:n}=this.props,{cursor:o,opened:i}=this.state,r=this.filterValues();let s=this.getSearchText();if(t&&"Escape"!==e.key&&(s=kr(kr({},s),this.setInputWidth())),"Enter"===e.key){const e=t?"manageSelectedTags":"manageSelectedValues";s=kr(kr({},s),this[e](o))}n&&" "!==e.key&&t&&(s=kr(kr({},s),this.manageSelectedTags())),!i&&this.inputRef.current.value&&(null==r?void 0:r.length)&&"Escape"!==e.key&&(s=kr(kr({},s),$r.openList())),"Escape"===e.key&&i&&(s=kr(kr({},s),$r.closeList())),i&&r&&!r.length&&(s=kr(kr({},s),$r.closeList())),this.setState((e=>kr(kr({},e),s)))}getLabelStyles(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=e),t}getNonLabelWidth(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=`calc(100% - ${e} - 20px)`),t}setInputWidth(){return{width:50+this.textRef.current.offsetWidth}}getSelectedIndex(e){const{stateSelectedValues:t}=this.state;let n=-1;return Array.isArray(t)?t.forEach(((t,o)=>{t.id===e.id&&(n=o)})):t&&t.id===e.id&&(n=0),n}getSearchText(){return{searchText:this.inputRef.current.value}}getListItemCssClasses(e,t){const n=[],{cursor:o}=this.state;return o===t&&n.push("active"),e.disabled&&n.push("disabled"),n.join(" ")}getComboboxListCssClass(){const{opened:e}=this.state,{tags:t,theme:n}=this.props,o=n?n.split(" "):[],i=["tyk-combobox__list"];return e&&i.push("tyk-combobox__list--opened"),t&&i.push("tyk-combobox__list--has-tags"),o.length&&o.forEach((e=>{i.push(`tyk-form-group--${e}`)})),i.join(" ")}getCssClasses(){const{error:e,disabled:t,theme:n,labelwidth:o}=this.props,i=["tyk-form-group","tyk-combobox"],r=n?n.split(" "):[];return e&&i.push("has-error"),o&&i.push("tyk-form-group--label-has-width"),r.length&&r.forEach((e=>{i.push(`tyk-form-group--${e}`)})),t&&i.push("disabled"),i.join(" ")}getInputError(){const{error:e}=this.props;return e&&"true"!==e&&"false"!==e?t().createElement("p",{className:"tyk-form-control__error-message"},e):null}getStyles(){const{scrollTop:e}=document.documentElement,t=this.comboboxRef.current,n=t.offsetHeight,o=t.offsetWidth,i=t.getBoundingClientRect(),{left:r}=i;let s=0;return s=i.top+e+n,{top:s-1+"px",left:`${r}px`,width:`${o}px`}}getComboboxDisplayData(){const{stateSelectedValues:e}=this.state,{multiple:t,placeholder:n,values:o}=this.props;return e?e&&Array.isArray(e)&&!e.length?n:!e||Array.isArray(e)||e.id?Array.isArray(e)&&t?e.reduce(((t,n,o)=>t+n.name+(o!==e.length-1?", ":"")),""):!(null==o?void 0:o.length)||Array.isArray(e)||e.name?e.name:o.filter((t=>t.id===e.id))[0].name:n:n}manageSelectedTags(e){const{max:t,allowCustomValues:n}=this.props,{stateSelectedValues:o}=this.state,i=this.filterValues(),r={id:this.inputRef.current.value,name:this.inputRef.current.value};if(!1===n&&-1===e)return null;const s=i[e]||r,a=this.getSelectedIndex(s);let l={};if(this.inputRef.current.value="",a>-1&&this.isInInitialValues(s))l=this.removeSelectedValue(a);else if(-1===a){if(t&&o.length>=t)return l;l=this.addSelectedValue(s)}return l}manageSelectedValues(e){const{stateSelectedValues:t}=this.state,{multiple:n,onChange:o,max:i}=this.props,r=this.filterValues(),s=r[e];let a;const l=this.getSelectedIndex(s);if(s&&n)if(l>-1)a=this.removeSelectedValue(l);else{if(i&&t.length>=i)return a;a=this.addSelectedValue(r[e])}else a={stateSelectedValues:-1===l?s:{id:null}},null==o||o(-1===l?s:null);return a}removeSelectedValue(e){const{stateSelectedValues:t}=this.state,{onChange:n}=this.props,o=JSON.parse(JSON.stringify(t));return o.splice(e,1),n&&"function"==typeof n&&n(o.length?o:null),{stateSelectedValues:o,searchText:""}}addSelectedValue(e){const{stateSelectedValues:t}=this.state,{onChange:n}=this.props,o=JSON.parse(JSON.stringify(t));return o.push(e),n&&"function"==typeof n&&n(o.length?o:null),{stateSelectedValues:o,searchText:""}}isInInitialValues(e){const{values:t}=this.props;let n=!1;return t.forEach((t=>{e.id===t.id&&(n=!0)})),n}filterValues(){const{values:e,searchItem:t}=this.props;return this.inputRef.current?e.filter((e=>t?t(e,this.inputRef.current.value.toLowerCase()):$r.filterByName(e,this.inputRef.current.value.toLowerCase()))):e}bindEvents(){document.addEventListener("mousedown",this.handleClickOutside)}unBindEvents(){document.removeEventListener("mousedown",this.handleClickOutside)}reset(){const{multiple:e,tags:t,value:n}=this.props;this.setState({stateSelectedValues:Cr(e,t,n)})}focusInput(){this.inputRef.current&&this.inputRef.current.focus()}renderInput(e){const{disabled:n,tags:o,max:i,placeholder:r}=this.props,{width:s,searchText:a,stateSelectedValues:l}=this.state;return t().createElement("ul",{className:"tyk-form-control"+(o?" tyk-form-control--with-tags":""),onClick:this.focusInput,onKeyDown:()=>{},ref:this.comboboxRef},o?t().createElement(t().Fragment,null,(l||[]).map(((e,n)=>t().createElement("li",{className:"pill",key:e.id},t().createElement("button",{type:"button",onClick:this.handlePillRemoveClick.bind(this,n),"aria-label":"remove"},t().createElement(g,{type:"xmark"})),t().createElement("span",null,e.name)))),t().createElement("li",{className:"tyk-combobox__search-box",style:{width:(null==l?void 0:l.length)?"auto":"100%"}},(void 0===i||(null==l?void 0:l.length){"Enter"===e.key&&e.preventDefault(),this.handleItemsNavigation(e)},onKeyUp:this.onKeyUp,placeholder:(null==l?void 0:l.length)?"":r,ref:this.inputRef,style:{width:(null==l?void 0:l.length)?`${s}px`:"100%"}}),t().createElement("span",{ref:this.textRef,style:{visbility:"hidden",position:"absolute",top:"-9999px"}},a)),e.length>0&&t().createElement(U,{className:"tyk-combobox--with-tags__button-down",iconType:"chevron-down",iconOnly:!0,onClick:this.handleComboboxDropdownClick}))):t().createElement("li",{className:"tyk-combobox__placeholder",onClick:this.handleComboboxDropdownClick,onKeyDown:()=>{}},this.getComboboxDisplayData(),t().createElement(g,{type:"chevron-down"})))}renderDropdown(e){const{tags:n}=this.props,{opened:o}=this.state;return t().createElement("ul",{className:this.getComboboxListCssClass(),ref:this.valuesListRef,style:this.getStyles()},n?null:t().createElement("li",{className:"combobox-search__container"},t().createElement("input",{autoFocus:o,className:"tyk-form-control",onKeyUp:this.onKeyUp,onKeyDown:this.handleItemsNavigation,key:"searchInput",ref:this.inputRef})),e.map(((e,n)=>t().createElement("li",{className:this.getListItemCssClasses(e,n),onClick:this.handleListItemClick.bind(this,n),onKeyDown:()=>{},key:e.id},this.getSelectedIndex(e)>-1?t().createElement(g,{type:"check"}):null,t().createElement("span",null," ",e.name)))))}render(){const{CustomListComponent:e,id:n,label:o,note:i}=this.props,{opened:r}=this.state,s=this.filterValues();return t().createElement(t().Fragment,null,t().createElement("div",{className:this.getCssClasses()},o?t().createElement("label",{htmlFor:n,style:this.getLabelStyles()},o):null,t().createElement("div",{className:"tyk-form-control__wrapper",style:this.getNonLabelWidth()},this.renderInput(s),i?t().createElement("p",{className:"tyk-form-control__help-block"},i):null,this.getInputError())),e?t().createElement(e,{ref:this.valuesListRef,className:this.getComboboxListCssClass(),getListItemCssClasses:this.getListItemCssClasses.bind(this),getSelectedIndex:this.getSelectedIndex.bind(this),filteredValues:s,handleListItemClick:this.handleListItemClick.bind(this)}):r&&s.length?dt().createPortal(this.renderDropdown(s),document.querySelector("body")):null)}}$r.propTypes={allowCustomValues:r().bool,CustomListComponent:r().elementType,searchItem:r().func,disabled:r().bool,error:r().string,id:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,multiple:r().bool,max:r().number,note:r().oneOfType([r().node,r().element,r().string]),onChange:r().func,placeholder:r().string,tags:r().bool,theme:r().string,value:r().oneOfType([r().string,r().instanceOf(Object),r().instanceOf(Array)]),values:r().instanceOf(Array)},$r.defaultProps={allowCustomValues:!0};const Sr=$r;function Er(n){const{value:o,max:i,tags:r,tagSeparators:s,addTagOnBlur:a,placeholder:l,disabled:c,renderValue:u,valueOverflow:h,focus:d,onMessage:p,readOnly:m}=n,f=(0,e.useRef)(null),y=(0,e.useRef)(null),[v,b]=(0,e.useState)(""),[w,x]=(0,e.useState)("70px");function k(e){if(s.some((t=>e.slice(-1)===t)))return;const t=y.current;t.innerHTML=e,x(`${Math.max(t.clientWidth,60)+10}px`),b(e),p("tag.input.change",e)}function C(){p("text-value.click")}function $(e,n=!1){if(m)return e||"-";const o=["tyk-combobox2__text-value",`overflow-${h}`,n&&"is-placeholder"].filter(Boolean).join(" ");return t().createElement("span",{className:o,title:"single"===h?e:void 0,role:"none",tabIndex:c?"-1":"0",onClick:C,onKeyDown:C},e)}function S(e){return u(e,{tags:r,tagSeparators:s,placeholder:l,disabled:c,renderValue:u,sendMessage:p})}return(0,e.useEffect)((()=>{d&&f.current&&f.current.focus()}),[d]),m?t().createElement("div",{className:"tyk-form-control--readonly"},$(o.map((e=>e.name)).join(", "))):r?t().createElement(t().Fragment,null,o.map((function(e){return u?S(e):t().createElement(mn,{key:e.id,theme:"combobox"},t().createElement("button",{type:"button",onClick:t=>{t.stopPropagation(),p("tag.remove",e.id)},"aria-label":"remove"},t().createElement(g,{type:"times"})),t().createElement("span",{title:e.name},e.name))})),o.lengthk(e.target.value),onKeyDown:e=>{"Enter"===e.key&&e.preventDefault(),function(e,t){if(r){if(""!==t||"Backspace"!==e||!o.length)return"Enter"===e?(p("tag.input.enter",t),void k("")):void("ArrowUp"!==e?"ArrowDown"!==e?"Escape"!==e?s.includes(e)&&(p("tag.add",t),k("")):p("tag.input.escape"):p("tag.input.arrowDown"):p("tag.input.arrowUp"));p("tag.remove",o[o.length-1].id)}}(e.key,e.target.value)},onFocus:()=>p("tag.input.focus"),onBlur:e=>{p("tag.input.blur",e.target.value),a&&k("")}}),t().createElement("span",{ref:y,style:{visbility:"hidden",position:"absolute",top:"-9999px"}}))):u?0===o.length?$(l,!0):o.map(S):0===o.length?$(l,!0):$(o.map((e=>e.name)).join(", "))}Er.propTypes={value:r().instanceOf(Array),max:r().number,tags:r().instanceOf(Array),tagSeparators:r().instanceOf(Array),addTagOnBlur:r().bool,placeholder:r().string,disabled:r().bool,renderValue:r().func,valueOverflow:r().string,focus:r().bool,onMessage:r().func,readOnly:r().bool};const Or=Er;function Tr(n){const{listRef:o,tags:i,values:r,searchValue:s,activeItem:a,onMessage:l,renderListItem:c,selectAll:u,showSearch:h}=n;return(0,e.useEffect)((()=>{if(!o.current)return;const e=o.current.querySelector(".active");e&&e.scrollIntoView({block:"end"})}),[a]),t().createElement(t().Fragment,null,!i&&h&&t().createElement("div",{className:"tyk-combobox2__combobox-search"},t().createElement("input",{autoFocus:!0,className:"tyk-form-control",value:s,onChange:e=>l("search.change",e.target.value),onKeyDown:e=>{"Escape"===e.key&&l("search.escape"),"ArrowUp"===e.key&&l("search.arrowUp"),"ArrowDown"===e.key&&l("search.arrowDown"),"Enter"===e.key&&l("search.enter")}})),r.length>0&&t().createElement("ul",{ref:o,className:"tyk-combobox2__combobox-list"},Boolean(u)&&function(){var e,n,o;const i=r.every((e=>e.selected)),s=r.every((e=>!e.selected)),a=null!=(e=null==u?void 0:u.label)?e:"Select All",c=null!=(n=null==u?void 0:u.mode)?n:"select",h=null!=(o=null==u?void 0:u.show)?o:"always",d=null==u?void 0:u.render;return"always"!==h&&("select"===c?i:s)?null:d?d({label:a,mode:c,show:h,isAllSelected:i,isNoneSelected:s},l):t().createElement("li",{onClick:()=>l("value.select-all","select"===c?!i:s),onKeyDown:()=>{}},("select"===c?i:s)&&t().createElement(g,{type:"check"}),a)}(),r.map((function(e){return c?c(e,{tags:i,searchValue:s,sendMessage:l,activeItem:a}):t().createElement("li",{key:e.id,title:e.name,className:[e.disabled&&"disabled",a&&e.id===a.id&&"active"].filter(Boolean).join(" "),onClick:()=>!e.disabled&&l("value.select",{item:e}),onKeyDown:()=>{}},e.selected&&t().createElement(g,{type:"check"}),t().createElement("span",{className:"item-name"},e.name))}))))}Tr.propTypes={listRef:r().instanceOf(Object),tags:r().bool,values:r().instanceOf(Array),searchValue:r().string,activeItem:r().instanceOf(Object),onMessage:r().func,renderListItem:r().func,selectAll:r().oneOfType([r().bool,r().shape({label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),mode:r().oneOf(["select","unselect"]),show:r().oneOf(["always","notSameState"]),render:r().func})]),showSearch:r().bool};const Ar=Tr;var _r=Object.defineProperty,Lr=Object.defineProperties,Mr=Object.getOwnPropertyDescriptors,Rr=Object.getOwnPropertySymbols,Nr=Object.prototype.hasOwnProperty,Ir=Object.prototype.propertyIsEnumerable,Pr=(e,t,n)=>t in e?_r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Dr=(e,t)=>{for(var n in t||(t={}))Nr.call(t,n)&&Pr(e,n,t[n]);if(Rr)for(var n of Rr(t))Ir.call(t,n)&&Pr(e,n,t[n]);return e},Fr=(e,t)=>Lr(e,Mr(t));function Br(n){var o=n,{value:i,values:r=[],valueOverflow:s="single",label:a="",labelwidth:l,tags:c=!1,tagSeparators:u=[" ","Enter"],addTagOnBlur:h=!1,max:d,multiple:p=!1,placeholder:m="",theme:f,note:y="",error:v="",disabled:b=!1,readOnly:w=!1,allowCustomValues:x=!0,searchItem:k,renderValue:C,renderListItem:$,renderList:S,CustomListComponent:E,onBeforeChange:O=(()=>!0),onChange:T=(()=>{}),floatingContainerConfig:A,expandMode:_,infiniteScrollerConfig:L,displayDropdownTrigger:M=!0,selectAll:R,closeOnSelect:N,showSearch:I=!1,required:P=!1,validateOnChange:D=(()=>{}),wrapperClassName:F=""}=o,B=((e,t)=>{var n={};for(var o in e)Nr.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Rr)for(var o of Rr(e))t.indexOf(o)<0&&Ir.call(e,o)&&(n[o]=e[o]);return n})(o,["value","values","valueOverflow","label","labelwidth","tags","tagSeparators","addTagOnBlur","max","multiple","placeholder","theme","note","error","disabled","readOnly","allowCustomValues","searchItem","renderValue","renderListItem","renderList","CustomListComponent","onBeforeChange","onChange","floatingContainerConfig","expandMode","infiniteScrollerConfig","displayDropdownTrigger","selectAll","closeOnSelect","showSearch","required","validateOnChange","wrapperClassName"]);const W=(0,e.useMemo)((()=>p?1/0:d||(c?1/0:1)),[p,d,c]),H=E?(e,{sendMessage:n})=>t().createElement(E,{filteredValues:e,handleListItemClick:t=>n("value.select",{item:e[t]})}):S,j=(0,e.useRef)(null),z=(0,e.useRef)(null),V=(0,e.useRef)(null),U=(0,e.useRef)(null),[G,K]=(0,e.useState)(jr(i,r)),[q,Y]=(0,e.useState)(r.map((e=>Hr(e)))),[J,X]=(0,e.useState)(""),[Q,Z]=(0,e.useState)(null),[ee,te]=(0,e.useState)(!1),[ne,oe]=(0,e.useState)(!1),[ie,re]=(0,e.useState)("");function se(){return(f?f.split(" "):[]).map((e=>`tyk-form-group--${e}`))}function ae(){const e=k||((e,t)=>{var n,o;return null==(o=null==(n=null==e?void 0:e.name)?void 0:n.toLowerCase())?void 0:o.includes(t)});return q.filter((t=>e(t,J.toLowerCase())))}function le(){te(!0)}function ce(){te(!1),c||ue(""),Z(null)}function ue(e){X(e),Q&&ae().every((e=>e.id!==Q.id))&&Z(null),e&&!ee&&le()}function he(e,t){const n=D(e,t);return re(n),void 0===n}function de(e){K(e),T(1!==W||c?e:e[0]||null)}function pe(e){if(!e)return;if(G.length>=W)return;if(G.some((({name:t})=>t===e)))return;const t=q.findIndex((t=>t.name===e));let n,o,i=[...G];-1===t?x&&(n={id:e,name:e},i=[...G,n]):(o=[...q.slice(0,t),Fr(Dr({},q[t]),{selected:!0}),...q.slice(t+1)],n=q[t],i=[...G,q[t]]),he(i,n)&&O(G,i)&&(o&&Y(o),de(i))}function ge({id:e}){const t=q.find((t=>t.id===e)),n=q.findIndex((t=>t.id===e));let o=G,i=q;t.selected?P&&1===W||(o=G.filter((e=>e.id!==t.id)),i=q.with(n,Fr(Dr({},t),{selected:!1}))):G.lengthFr(Dr({},e),{selected:e.id===t.id})))),he(o,t)&&O(G,o)&&(de(o),Y(i)),(1===W||N)&&ce()}function me(e){if(q.length>W)return;const t=e?[...q]:[];O(G,t)&&(de(t),Y(q.map((t=>Fr(Dr({},t),{selected:e})))),N&&ce())}function fe(){const e=ae().filter((e=>!e.disabled));if(0===e.length)return;if(null===Q||1===e.length)return void Z(e[e.length-1]);const t=e.findIndex((e=>e.id===Q.id));Z(e[t>0?t-1:e.length-1])}function ye(){const e=ae().filter((e=>!e.disabled));if(0===e.length)return;if(null===Q||1===e.length)return void Z(e[0]);const t=e.findIndex((e=>e.id===Q.id));Z(e[tt.id===e)),n=G.filter((t=>t.id!==e));O(G,n)&&(-1!==t&&Y([...q.slice(0,t),Fr(Dr({},q[t]),{selected:!1}),...q.slice(t+1)]),de(n))}(t),"input.change"===e&&ue(t),"input.enter"===e&&(Q?ge(Q):u.includes("Enter")&&(pe(t),ue(""))),"input.arrowUp"===e&&(le(),fe()),"input.arrowDown"===e&&(le(),ye()),"input.escape"===e&&ce(),"input.blur"===e&&h&&(pe(t),ue("")),"input.focus"===e&&le()}const xe=(0,e.useCallback)(((e,t)=>{e.startsWith("tag.")&&we(e.slice(4),t),"value.select"===e&&ge(t.item),"value.select-all"===e&&me(t),"text-value.click"===e&&le(),"search.change"===e&&ue(t),"search.escape"===e&&ce(),"search.arrowUp"===e&&fe(),"search.arrowDown"===e&&ye(),"search.enter"===e&&Q&&ge(Q)}),[we,ge,me,le,ue,ce,fe,ye]),ke=(0,e.useCallback)((()=>_?t().createElement(g,{type:ne?"chevron-down":"chevron-up"}):t().createElement(g,{type:"chevron-down"})),[_,ne]);(0,e.useEffect)((()=>(window.addEventListener("click",be,!0),()=>window.removeEventListener("click",be,!0))),[]),(0,e.useEffect)((()=>{if(r.length){const e=r.map((e=>Fr(Dr({},Hr(e)),{selected:G.some((t=>t.id===e.id))})));Y(e),K((t=>t.map((t=>e.find((e=>e.id===t.id))||t))))}else q.length&&Y([])}),[r]),(0,e.useEffect)((()=>{const e=jr(i,q);K(e),Y((t=>t.map((t=>Fr(Dr({},Hr(t)),{selected:e.some((e=>e.id===t.id))})))))}),[i]),(0,e.useEffect)((()=>{if(!_)return()=>{};const e=z.current.querySelector(".tyk-combobox2__current-values"),t=()=>{e.scrollTop=e.scrollHeight},n=new MutationObserver(t),o=new ResizeObserver(t);return n.observe(e,{attributes:!0,childList:!0,subtree:!0}),o.observe(e),()=>{n.disconnect(),o.disconnect()}}));const Ce=ae(),$e=["tyk-combobox2__current-values",_&&"expand-mode","tyk-combobox2__current-values--"+(ne?"expanded":"collapsed")].join(" ");return t().createElement("div",Fr(Dr({ref:j,tabIndex:b?"-1":"0",onClickCapture:function(e){if(!b)return;if(!_)return void e.stopPropagation();const t=j.current.querySelector(".tyk-combobox2__values-container-trigger");t&&(t===e.target||t.contains(e.target)||e.stopPropagation())}},B),{className:[F,"tyk-form-group","tyk-combobox2",...se(),(v||ie)&&"has-error",l&&"tyk-form-group--label-has-width",b&&"disabled",_&&"is-expand-mode"].filter(Boolean).join(" ")}),a&&t().createElement("label",{style:{flexBasis:l||"auto"}},a),!w&&t().createElement("div",{className:"tyk-form-control__wrapper",style:{flexBasis:`calc(100% - ${l} - 20px)`}},t().createElement("div",{className:"tyk-form-control",ref:z},t().createElement("div",{className:$e,onClick:le,role:"none"},t().createElement(Or,{value:G,max:W,tags:c,tagSeparators:u,addTagOnBlur:h,allowCustomValues:x,placeholder:m,disabled:b,valueOverflow:s,renderValue:C,focus:ee,onMessage:xe,readOnly:w})),M&&t().createElement("div",{className:"tyk-combobox2__values-container-trigger"+(ne?" tyk-combobox2__values-container-trigger--expanded":""),role:"button",tabIndex:b?-1:0,onClick:ve,onKeyDown:ve},ke())),ee&&(!c||Ce.length>0)&&t().createElement(Pt,Fr(Dr({element:z,size:"matchElement",className:`tyk-combobox2__combobox-dropdown tyk-form-group ${se().join(" ")}`,ref:V,displayAxis:"vertical"},A),{infiniteScrollerConfig:L}),H?H(Ce,{tags:c,searchValue:J,activeItem:Q,listRef:U,sendMessage:xe}):t().createElement(Ar,{listRef:U,showSearch:I,values:Ce,tags:c,searchValue:J,activeItem:Q,onMessage:xe,renderListItem:$,selectAll:R})),y&&t().createElement("p",{className:"tyk-form-control__help-block"},y),(v&&"true"!==v&&"false"!==v||Boolean(ie))&&t().createElement("p",{className:"tyk-form-control__error-message"},v||ie)),w&&t().createElement("div",null,t().createElement(Or,{value:G,tags:c,renderValue:C,readOnly:w})))}Br.propTypes={allowCustomValues:r().bool,CustomListComponent:r().elementType,searchItem:r().func,renderValue:r().func,renderListItem:r().func,renderList:r().func,disabled:r().bool,readOnly:r().bool,error:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,max:r().number,multiple:r().bool,note:r().oneOfType([r().node,r().element,r().string]),onBeforeChange:r().func,onChange:r().func,placeholder:r().string,tags:r().bool,tagSeparators:r().arrayOf(r().string),addTagOnBlur:r().bool,theme:r().string,value:r().oneOfType([r().string,r().instanceOf(Array),r().instanceOf(Object)]),values:r().instanceOf(Array),floatingContainerConfig:r().instanceOf(Object),valueOverflow:r().oneOf(["single","multiple"]),expandMode:r().bool,infiniteScrollerConfig:r().instanceOf(Object),displayDropdownTrigger:r().bool,selectAll:r().oneOfType([r().bool,r().shape({label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),mode:r().oneOf(["select","unselect"]),show:r().oneOf(["always","notSameState"]),render:r().func})]),closeOnSelect:r().bool,showSearch:r().bool,required:r().bool,validateOnChange:r().func,wrapperClassName:r().string};const Wr=Br;function Hr(e,t){let n=e;if("string"==typeof e?n={id:e,name:e}:e.hasOwnProperty("name")||(n=Fr(Dr({},e),{name:e.id})),!t)return n;const o=t.find((e=>e.id===n.id));return o?Dr(Dr({},n),o):n}function jr(e,t){return e?Array.isArray(e)?e.map((e=>Hr(e,t))):[Hr(e,t)]:[]}const zr=require("flatpickr");var Vr=n.n(zr),Ur=Object.defineProperty,Gr=Object.defineProperties,Kr=Object.getOwnPropertyDescriptors,qr=Object.getOwnPropertySymbols,Yr=Object.prototype.hasOwnProperty,Jr=Object.prototype.propertyIsEnumerable,Xr=(e,t,n)=>t in e?Ur(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Qr({children:n,disabled:o,readOnly:i=!1,error:r,id:s,label:a,labelwidth:l,note:c,onClose:u,onChange:h,onOpen:d,theme:p,config:m={},value:f,wrapperClassName:y=""}){const[v,b]=(0,e.useState)(null),w=(0,e.useRef)(null),x=me(f),k=(0,e.useCallback)(((e,t)=>{if(!e)return!0;if(!Array.isArray(t))return e.getTime()!==t.getTime();let n=t;return e&&t.length&&e.length?(n=t.filter(((t,n)=>t.getTime()!==e[n].getTime())),n.length>0):t.length>0}),[]),C=(0,e.useCallback)((e=>{const t="range"===m.mode?e:e[0]||null;h&&("range"===m.mode?2===t.length&&k(x,t)&&h(t):h(t))}),[x,h,k]);(0,e.useEffect)((()=>{if(w.current&&!v){const t=Vr()(w.current,(e=((e,t)=>{for(var n in t||(t={}))Yr.call(t,n)&&Xr(e,n,t[n]);if(qr)for(var n of qr(t))Jr.call(t,n)&&Xr(e,n,t[n]);return e})({},m),Gr(e,Kr({defaultDate:f,onChange:C,onClose:u,onOpen:d}))));b(t)}var e;return()=>{v&&v.destroy()}}),[v]),(0,e.useEffect)((()=>{if(v){let e=f;"string"==typeof f?e=new Date(f):Array.isArray(f)&&(e=f.map((e=>new Date(e)))),k(x,e)&&(v.set("onChange",C),"range"===m.mode?e&&2===e.length&&v.setDate(e,!0):v.setDate(e,!0))}}),[x,f,v]);const $=["tyk-form-group","tyk-form-group--addon-right",y,...p?p.split(" ").map((e=>`tyk-form-group--${e}`)):[],l&&"tyk-form-group--label-has-width",r&&"has-error"].filter(Boolean).join(" "),S=(0,e.useCallback)((()=>{v&&v.open()}),[v]);return t().createElement(t().Fragment,null,(null==n?void 0:n.length)?n({openCalendar:S,ref:w}):t().createElement("div",{className:$},a?t().createElement("label",{htmlFor:s,style:l?{flexBasis:l}:{}},a):null,!i&&t().createElement("div",{className:"tyk-form-control__wrapper flatpickr",style:l?{flexBasis:`calc(100% - ${l} - 20px)`}:{}},t().createElement("div",{className:"tyk-input-group"},(()=>{let e={},n={};return(null==m?void 0:m.inline)&&(e={height:0,padding:0,width:0,visibility:"hidden"},n={display:"none"}),t().createElement(t().Fragment,null,t().createElement("input",{disabled:o,className:"tyk-form-control","data-input":!0,type:"date",ref:w,style:e}),t().createElement("div",{className:"tyk-input-group__addon",onClick:S,role:"button",onKeyUp:()=>{},tabIndex:0,style:n,"aria-label":"show calendar"},t().createElement(g,{type:"calendar"})))})()),c?t().createElement("p",{className:"tyk-form-control__help-block"},c):null,r&&"true"!==r&&"false"!==r?t().createElement("p",{className:"tyk-form-control__error-message"},r):null)),t().createElement("div",{className:"tyk-form-control--readonly"},i&&!f&&"-",i&&f&&Vr().formatDate(f,m.dateFormat||"d/m/Y")))}Qr.propTypes={config:r().instanceOf(Object),children:r().oneOfType([r().element,r().node,r().string,r().func]),disabled:r().bool,readOnly:r().bool,id:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,note:r().string,onChange:r().oneOfType([r().func,r().instanceOf(Array)]),onClose:r().oneOfType([r().func,r().instanceOf(Array)]),onOpen:r().oneOfType([r().func,r().instanceOf(Array)]),theme:r().string,error:r().string,value:r().oneOfType([r().instanceOf(Array),r().instanceOf(Object),r().string]),wrapperClassName:r().string};const Zr=Qr;function es(e){return es="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},es(e)}function ts(e,t){if(t.length1?"s":"")+" required, but only "+t.length+" present")}function ns(e){return ts(1,arguments),e instanceof Date||"object"===es(e)&&"[object Date]"===Object.prototype.toString.call(e)}function os(e){ts(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||"object"===es(e)&&"[object Date]"===t?new Date(e.getTime()):"number"==typeof e||"[object Number]"===t?new Date(e):("string"!=typeof e&&"[object String]"!==t||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn((new Error).stack)),new Date(NaN))}function is(e){if(null===e||!0===e||!1===e)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function rs(e){ts(1,arguments);var t=os(e),n=t.getUTCDay(),o=(n<1?7:0)+n-1;return t.setUTCDate(t.getUTCDate()-o),t.setUTCHours(0,0,0,0),t}function ss(e){ts(1,arguments);var t=os(e),n=t.getUTCFullYear(),o=new Date(0);o.setUTCFullYear(n+1,0,4),o.setUTCHours(0,0,0,0);var i=rs(o),r=new Date(0);r.setUTCFullYear(n,0,4),r.setUTCHours(0,0,0,0);var s=rs(r);return t.getTime()>=i.getTime()?n+1:t.getTime()>=s.getTime()?n:n-1}var as={};function ls(){return as}function cs(e,t){var n,o,i,r,s,a,l,c;ts(1,arguments);var u=ls(),h=is(null!==(n=null!==(o=null!==(i=null!==(r=null==t?void 0:t.weekStartsOn)&&void 0!==r?r:null==t||null===(s=t.locale)||void 0===s||null===(a=s.options)||void 0===a?void 0:a.weekStartsOn)&&void 0!==i?i:u.weekStartsOn)&&void 0!==o?o:null===(l=u.locale)||void 0===l||null===(c=l.options)||void 0===c?void 0:c.weekStartsOn)&&void 0!==n?n:0);if(!(h>=0&&h<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var d=os(e),p=d.getUTCDay(),g=(p=1&&p<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var g=new Date(0);g.setUTCFullYear(h+1,0,p),g.setUTCHours(0,0,0,0);var m=cs(g,t),f=new Date(0);f.setUTCFullYear(h,0,p),f.setUTCHours(0,0,0,0);var y=cs(f,t);return u.getTime()>=m.getTime()?h+1:u.getTime()>=y.getTime()?h:h-1}function hs(e,t){for(var n=e<0?"-":"",o=Math.abs(e).toString();o.length0?n:1-n;return hs("yy"===t?o%100:o,t.length)},ps=function(e,t){var n=e.getUTCMonth();return"M"===t?String(n+1):hs(n+1,2)},gs=function(e,t){return hs(e.getUTCDate(),t.length)},ms=function(e,t){return hs(e.getUTCHours()%12||12,t.length)},fs=function(e,t){return hs(e.getUTCHours(),t.length)},ys=function(e,t){return hs(e.getUTCMinutes(),t.length)},vs=function(e,t){return hs(e.getUTCSeconds(),t.length)},bs=function(e,t){var n=t.length,o=e.getUTCMilliseconds();return hs(Math.floor(o*Math.pow(10,n-3)),t.length)};var ws={G:function(e,t,n){var o=e.getUTCFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(o,{width:"abbreviated"});case"GGGGG":return n.era(o,{width:"narrow"});default:return n.era(o,{width:"wide"})}},y:function(e,t,n){if("yo"===t){var o=e.getUTCFullYear(),i=o>0?o:1-o;return n.ordinalNumber(i,{unit:"year"})}return ds(e,t)},Y:function(e,t,n,o){var i=us(e,o),r=i>0?i:1-i;return"YY"===t?hs(r%100,2):"Yo"===t?n.ordinalNumber(r,{unit:"year"}):hs(r,t.length)},R:function(e,t){return hs(ss(e),t.length)},u:function(e,t){return hs(e.getUTCFullYear(),t.length)},Q:function(e,t,n){var o=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"Q":return String(o);case"QQ":return hs(o,2);case"Qo":return n.ordinalNumber(o,{unit:"quarter"});case"QQQ":return n.quarter(o,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(o,{width:"narrow",context:"formatting"});default:return n.quarter(o,{width:"wide",context:"formatting"})}},q:function(e,t,n){var o=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"q":return String(o);case"qq":return hs(o,2);case"qo":return n.ordinalNumber(o,{unit:"quarter"});case"qqq":return n.quarter(o,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(o,{width:"narrow",context:"standalone"});default:return n.quarter(o,{width:"wide",context:"standalone"})}},M:function(e,t,n){var o=e.getUTCMonth();switch(t){case"M":case"MM":return ps(e,t);case"Mo":return n.ordinalNumber(o+1,{unit:"month"});case"MMM":return n.month(o,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(o,{width:"narrow",context:"formatting"});default:return n.month(o,{width:"wide",context:"formatting"})}},L:function(e,t,n){var o=e.getUTCMonth();switch(t){case"L":return String(o+1);case"LL":return hs(o+1,2);case"Lo":return n.ordinalNumber(o+1,{unit:"month"});case"LLL":return n.month(o,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(o,{width:"narrow",context:"standalone"});default:return n.month(o,{width:"wide",context:"standalone"})}},w:function(e,t,n,o){var i=function(e,t){ts(1,arguments);var n=os(e),o=cs(n,t).getTime()-function(e,t){var n,o,i,r,s,a,l,c;ts(1,arguments);var u=ls(),h=is(null!==(n=null!==(o=null!==(i=null!==(r=null==t?void 0:t.firstWeekContainsDate)&&void 0!==r?r:null==t||null===(s=t.locale)||void 0===s||null===(a=s.options)||void 0===a?void 0:a.firstWeekContainsDate)&&void 0!==i?i:u.firstWeekContainsDate)&&void 0!==o?o:null===(l=u.locale)||void 0===l||null===(c=l.options)||void 0===c?void 0:c.firstWeekContainsDate)&&void 0!==n?n:1),d=us(e,t),p=new Date(0);return p.setUTCFullYear(d,0,h),p.setUTCHours(0,0,0,0),cs(p,t)}(n,t).getTime();return Math.round(o/6048e5)+1}(e,o);return"wo"===t?n.ordinalNumber(i,{unit:"week"}):hs(i,t.length)},I:function(e,t,n){var o=function(e){ts(1,arguments);var t=os(e),n=rs(t).getTime()-function(e){ts(1,arguments);var t=ss(e),n=new Date(0);return n.setUTCFullYear(t,0,4),n.setUTCHours(0,0,0,0),rs(n)}(t).getTime();return Math.round(n/6048e5)+1}(e);return"Io"===t?n.ordinalNumber(o,{unit:"week"}):hs(o,t.length)},d:function(e,t,n){return"do"===t?n.ordinalNumber(e.getUTCDate(),{unit:"date"}):gs(e,t)},D:function(e,t,n){var o=function(e){ts(1,arguments);var t=os(e),n=t.getTime();t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0);var o=n-t.getTime();return Math.floor(o/864e5)+1}(e);return"Do"===t?n.ordinalNumber(o,{unit:"dayOfYear"}):hs(o,t.length)},E:function(e,t,n){var o=e.getUTCDay();switch(t){case"E":case"EE":case"EEE":return n.day(o,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(o,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(o,{width:"short",context:"formatting"});default:return n.day(o,{width:"wide",context:"formatting"})}},e:function(e,t,n,o){var i=e.getUTCDay(),r=(i-o.weekStartsOn+8)%7||7;switch(t){case"e":return String(r);case"ee":return hs(r,2);case"eo":return n.ordinalNumber(r,{unit:"day"});case"eee":return n.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(i,{width:"short",context:"formatting"});default:return n.day(i,{width:"wide",context:"formatting"})}},c:function(e,t,n,o){var i=e.getUTCDay(),r=(i-o.weekStartsOn+8)%7||7;switch(t){case"c":return String(r);case"cc":return hs(r,t.length);case"co":return n.ordinalNumber(r,{unit:"day"});case"ccc":return n.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(i,{width:"narrow",context:"standalone"});case"cccccc":return n.day(i,{width:"short",context:"standalone"});default:return n.day(i,{width:"wide",context:"standalone"})}},i:function(e,t,n){var o=e.getUTCDay(),i=0===o?7:o;switch(t){case"i":return String(i);case"ii":return hs(i,t.length);case"io":return n.ordinalNumber(i,{unit:"day"});case"iii":return n.day(o,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(o,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(o,{width:"short",context:"formatting"});default:return n.day(o,{width:"wide",context:"formatting"})}},a:function(e,t,n){var o=e.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(o,{width:"narrow",context:"formatting"});default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},b:function(e,t,n){var o,i=e.getUTCHours();switch(o=12===i?"noon":0===i?"midnight":i/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(o,{width:"narrow",context:"formatting"});default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},B:function(e,t,n){var o,i=e.getUTCHours();switch(o=i>=17?"evening":i>=12?"afternoon":i>=4?"morning":"night",t){case"B":case"BB":case"BBB":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(o,{width:"narrow",context:"formatting"});default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},h:function(e,t,n){if("ho"===t){var o=e.getUTCHours()%12;return 0===o&&(o=12),n.ordinalNumber(o,{unit:"hour"})}return ms(e,t)},H:function(e,t,n){return"Ho"===t?n.ordinalNumber(e.getUTCHours(),{unit:"hour"}):fs(e,t)},K:function(e,t,n){var o=e.getUTCHours()%12;return"Ko"===t?n.ordinalNumber(o,{unit:"hour"}):hs(o,t.length)},k:function(e,t,n){var o=e.getUTCHours();return 0===o&&(o=24),"ko"===t?n.ordinalNumber(o,{unit:"hour"}):hs(o,t.length)},m:function(e,t,n){return"mo"===t?n.ordinalNumber(e.getUTCMinutes(),{unit:"minute"}):ys(e,t)},s:function(e,t,n){return"so"===t?n.ordinalNumber(e.getUTCSeconds(),{unit:"second"}):vs(e,t)},S:function(e,t){return bs(e,t)},X:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();if(0===i)return"Z";switch(t){case"X":return ks(i);case"XXXX":case"XX":return Cs(i);default:return Cs(i,":")}},x:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();switch(t){case"x":return ks(i);case"xxxx":case"xx":return Cs(i);default:return Cs(i,":")}},O:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+xs(i,":");default:return"GMT"+Cs(i,":")}},z:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+xs(i,":");default:return"GMT"+Cs(i,":")}},t:function(e,t,n,o){var i=o._originalDate||e;return hs(Math.floor(i.getTime()/1e3),t.length)},T:function(e,t,n,o){return hs((o._originalDate||e).getTime(),t.length)}};function xs(e,t){var n=e>0?"-":"+",o=Math.abs(e),i=Math.floor(o/60),r=o%60;if(0===r)return n+String(i);var s=t||"";return n+String(i)+s+hs(r,2)}function ks(e,t){return e%60==0?(e>0?"-":"+")+hs(Math.abs(e)/60,2):Cs(e,t)}function Cs(e,t){var n=t||"",o=e>0?"-":"+",i=Math.abs(e);return o+hs(Math.floor(i/60),2)+n+hs(i%60,2)}const $s=ws;var Ss=function(e,t){switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},Es=function(e,t){switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},Os={p:Es,P:function(e,t){var n,o=e.match(/(P+)(p+)?/)||[],i=o[1],r=o[2];if(!r)return Ss(e,t);switch(i){case"P":n=t.dateTime({width:"short"});break;case"PP":n=t.dateTime({width:"medium"});break;case"PPP":n=t.dateTime({width:"long"});break;default:n=t.dateTime({width:"full"})}return n.replace("{{date}}",Ss(i,t)).replace("{{time}}",Es(r,t))}};const Ts=Os;var As=["D","DD"],_s=["YY","YYYY"];function Ls(e,t,n){if("YYYY"===e)throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("YY"===e)throw new RangeError("Use `yy` instead of `YY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("D"===e)throw new RangeError("Use `d` instead of `D` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("DD"===e)throw new RangeError("Use `dd` instead of `DD` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))}var Ms={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function Rs(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}var Ns,Is={date:Rs({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:Rs({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:Rs({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},Ps={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function Ds(e){return function(t,n){var o;if("formatting"===(null!=n&&n.context?String(n.context):"standalone")&&e.formattingValues){var i=e.defaultFormattingWidth||e.defaultWidth,r=null!=n&&n.width?String(n.width):i;o=e.formattingValues[r]||e.formattingValues[i]}else{var s=e.defaultWidth,a=null!=n&&n.width?String(n.width):e.defaultWidth;o=e.values[a]||e.values[s]}return o[e.argumentCallback?e.argumentCallback(t):t]}}function Fs(e){return function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=n.width,i=o&&e.matchPatterns[o]||e.matchPatterns[e.defaultMatchWidth],r=t.match(i);if(!r)return null;var s,a=r[0],l=o&&e.parsePatterns[o]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(l)?function(e,t){for(var n=0;n0?"in "+o:o+" ago":o},formatLong:Is,formatRelative:function(e,t,n,o){return Ps[e]},localize:{ordinalNumber:function(e,t){var n=Number(e),o=n%100;if(o>20||o<10)switch(o%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:Ds({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:Ds({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:Ds({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:Ds({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:Ds({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(Ns={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(e){return parseInt(e,10)}},function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.match(Ns.matchPattern);if(!n)return null;var o=n[0],i=e.match(Ns.parsePattern);if(!i)return null;var r=Ns.valueCallback?Ns.valueCallback(i[0]):i[0];return{value:r=t.valueCallback?t.valueCallback(r):r,rest:e.slice(o.length)}}),era:Fs({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:Fs({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:Fs({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:Fs({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:Fs({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};var Ws=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Hs=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,js=/^'([^]*?)'?$/,zs=/''/g,Vs=/[a-zA-Z]/;function Us(e,t,n){var o,i,r,s,a,l,c,u,h,d,p,g,m,f,y,v,b,w;ts(2,arguments);var x=String(t),k=ls(),C=null!==(o=null!==(i=null==n?void 0:n.locale)&&void 0!==i?i:k.locale)&&void 0!==o?o:Bs,$=is(null!==(r=null!==(s=null!==(a=null!==(l=null==n?void 0:n.firstWeekContainsDate)&&void 0!==l?l:null==n||null===(c=n.locale)||void 0===c||null===(u=c.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==a?a:k.firstWeekContainsDate)&&void 0!==s?s:null===(h=k.locale)||void 0===h||null===(d=h.options)||void 0===d?void 0:d.firstWeekContainsDate)&&void 0!==r?r:1);if(!($>=1&&$<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var S=is(null!==(p=null!==(g=null!==(m=null!==(f=null==n?void 0:n.weekStartsOn)&&void 0!==f?f:null==n||null===(y=n.locale)||void 0===y||null===(v=y.options)||void 0===v?void 0:v.weekStartsOn)&&void 0!==m?m:k.weekStartsOn)&&void 0!==g?g:null===(b=k.locale)||void 0===b||null===(w=b.options)||void 0===w?void 0:w.weekStartsOn)&&void 0!==p?p:0);if(!(S>=0&&S<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!C.localize)throw new RangeError("locale must contain localize property");if(!C.formatLong)throw new RangeError("locale must contain formatLong property");var E=os(e);if(!function(e){if(ts(1,arguments),!ns(e)&&"number"!=typeof e)return!1;var t=os(e);return!isNaN(Number(t))}(E))throw new RangeError("Invalid time value");var O=function(e){var t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e.getTime()-t.getTime()}(E),T=function(e,t){return ts(2,arguments),function(e,t){ts(2,arguments);var n=os(e).getTime(),o=is(t);return new Date(n+o)}(e,-is(t))}(E,O),A={firstWeekContainsDate:$,weekStartsOn:S,locale:C,_originalDate:E};return x.match(Hs).map((function(e){var t=e[0];return"p"===t||"P"===t?(0,Ts[t])(e,C.formatLong):e})).join("").match(Ws).map((function(o){if("''"===o)return"'";var i,r,s=o[0];if("'"===s)return(r=(i=o).match(js))?r[1].replace(zs,"'"):i;var a,l=$s[s];if(l)return null!=n&&n.useAdditionalWeekYearTokens||(a=o,-1===_s.indexOf(a))||Ls(o,t,String(e)),null!=n&&n.useAdditionalDayOfYearTokens||!function(e){return-1!==As.indexOf(e)}(o)||Ls(o,t,String(e)),l(T,o,C.localize,A);if(s.match(Vs))throw new RangeError("Format string contains an unescaped latin alphabet character `"+s+"`");return o})).join("")}var Gs=n(590),Ks=n.n(Gs),qs=Object.defineProperty,Ys=Object.defineProperties,Js=Object.getOwnPropertyDescriptors,Xs=Object.getOwnPropertySymbols,Qs=Object.prototype.hasOwnProperty,Zs=Object.prototype.propertyIsEnumerable,ea=(e,t,n)=>t in e?qs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ta=(e,t)=>{for(var n in t||(t={}))Qs.call(t,n)&&ea(e,n,t[n]);if(Xs)for(var n of Xs(t))Zs.call(t,n)&&ea(e,n,t[n]);return e};class na extends e.Component{static getMainFormValue(e){const t=new Array(e.length);return e.forEach(((e,n)=>{t[n]=e.props.value||void 0})),t}constructor(t){super(t);const{components:n}=t;this.submitButtonRef=(0,e.createRef)(),this.handleOnChange=this.handleOnChange.bind(this),this.submitForm=this.submitForm.bind(this),this.state={components:n,errors:{},mainError:null,mainFormValue:na.getMainFormValue(n),refs:[]}}componentDidMount(){const{addValueOnFieldChange:e,getMainFormButtonWidth:t}=this.props;this.createRefs(),t&&t(e?0:this.submitButtonRef.current.clientWidth)}static getDerivedStateFromProps(e,t){const n={},{components:o}=e,{components:i}=t;return Ks()(o,i)||Ks()(na.getMainFormValue(o),na.getMainFormValue(i))||(n.mainFormValue=na.getMainFormValue(o),n.components=o),n}handleOnChange(e,t,n){const{addValueOnFieldChange:o}=this.props;let i=this.state;i=ta(ta({},i),this.validateValue(n,e.props)),i.errors[e.props.name]||(i.mainFormValue[t]=n,e.props.onChange&&e.props.onChange(n)),this.setState((e=>ta(ta({},e),i)),(()=>{o&&this.submitForm()}))}getFormCssClasses(){const{noLabels:e}=this.props,t=["tyk-editable-list__form"];return e&&t.push("no-labels"),t.join(" ")}getButtonClassName(){const{buttonStyle:e,displayType:t}=this.props,n=[];return e&&n.push(e),t&&n.push(t),n.join(" ")}getComponentsError(e){const{error:t,errors:n,mainError:o}=this.state;return t||o?n[e.props.name]="true":t||o||"true"!==n[e.props.name]||delete n[e.props.name],n[e.props.name]?n[e.props.name].toString():void 0}createRefs(){const{components:t}=this.props,n=[];t.forEach((()=>{n.push((0,e.createRef)())})),this.setState({refs:n})}validateValue(e,t){const{mainError:n,errors:o}=this.state,{error:i,errorPersist:r}=this.props,s=t.validate?Object.keys(t.validate):[],a={errors:i||n?{}:ta({},o)};let l=!0;if(r)return a;for(const n of s)if((0,t.validate[n])(e)){a.errors[t.name]=t.validationmessages[n],l=!1;break}return l&&delete a.errors[t.name],a.mainError=null,a}hasMainFormErrors(e){const{components:t,errorPersist:n}=this.props,{mainFormValue:o}=this.state,i={errors:ta({},e)};return(!n||-1!==o.indexOf(void 0))&&(Object.keys(i.errors).length>0||(t.forEach(((e,t)=>{i.errors=ta(ta({},i.errors),this.validateValue(o[t],e.props).errors)})),Object.keys(i.errors).length>0))}resetForm(){const{refs:e}=this.state,{components:t}=this.props;e.forEach((e=>{var t;(null==(t=e.current)?void 0:t.reset)&&e.current.reset()})),this.setState({errors:{},mainError:null,mainFormValue:na.getMainFormValue(t)})}showMainError(e){this.setState({mainError:e})}submitForm(){const{errors:e,mainFormValue:t}=this.state,{errorPersist:n,onSubmit:o,validate:i,validationmessage:r}=this.props;n&&(o(t),this.resetForm()),0===Object.keys(e).length&&o&&"function"==typeof o&&(i&&i(t)?this.showMainError(r):(o(t),this.resetForm()))}render(){const{addValueOnFieldChange:e,components:n,buttonName:o,disabled:i,displayType:r,error:s}=this.props,{mainError:a,refs:l,errors:c}=this.state;return t().createElement("div",null,t().createElement("div",{className:this.getFormCssClasses()},t().createElement(yi,null,n.map(((e,n)=>{const o=e.name;console.log("ComponentName",o);const s=e.props,{onChange:a,value:c}=s,u=((e,t)=>{var n={};for(var o in e)Qs.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Xs)for(var o of Xs(e))t.indexOf(o)<0&&Zs.call(e,o)&&(n[o]=e[o]);return n})(s,["onChange","value"]);return t().createElement(li,{size:`md-${e.size||"12"} lg-${e.size||"12"}`,key:e.props.name},t().createElement(o,(h=ta({disabled:i||e.props.disabled,onChange:this.handleOnChange.bind(this,e,n)},u),d={label:"inline"===r?"":e.props.label,error:this.getComponentsError(e),ref:l[n],value:c},Ys(h,Js(d)))));var h,d}))),e?null:t().createElement("span",{className:this.getButtonClassName(),ref:this.submitButtonRef},t().createElement(U,{disabled:this.hasMainFormErrors(c),className:"tyk-editable-list__submit-btn",onClick:this.submitForm,theme:"default",type:"button",size:"inline"===r?"sm":"md"},o||"ADD"))),s||a?t().createElement("div",{className:"tyk-editable-list-main-error"},t().createElement("p",{className:"error-message"},s||a)):null)}}na.propTypes={addValueOnFieldChange:r().bool,noLabels:r().bool,buttonName:r().string,buttonStyle:r().string,components:r().instanceOf(Array),displayType:r().string,disabled:r().bool,getMainFormButtonWidth:r().func,error:r().string,errorPersist:r().bool,onSubmit:r().func,validate:r().func,validationmessage:r().string};const oa=na;var ia=Object.defineProperty,ra=Object.getOwnPropertySymbols,sa=Object.prototype.hasOwnProperty,aa=Object.prototype.propertyIsEnumerable,la=(e,t,n)=>t in e?ia(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ca=(e,t)=>{for(var n in t||(t={}))sa.call(t,n)&&la(e,n,t[n]);if(ra)for(var n of ra(t))aa.call(t,n)&&la(e,n,t[n]);return e};class ua extends e.Component{static getItemListValue(e){let t=null;return"string"==typeof e&&(t=e),"[object Object]"===Object.prototype.toString.call(e)&&(t=e.name),ns(e)&&(t=Us(e,"dd/MM/yyyy")),t}static getListItemCssClass(e){const t=[];return"inline"===e&&t.push("tyk-editable-list-item--inline"),t.join(" ")}constructor(t){super(t);const{value:n}=this.props;this.state={initialValue:n||"",value:n||[],buttonWidth:0},this.startIndex=1,this.handleFormSubmit=this.handleFormSubmit.bind(this),this.getMainFormButtonWidth=this.getMainFormButtonWidth.bind(this),this.dropdownListItemRef=(0,e.createRef)()}static getDerivedStateFromProps(e,t){const n={};return e.value&&JSON.stringify(e.value)!==JSON.stringify(t.initialValue)&&(n.value=e.value||[],n.initialValue=e.value||""),n.value?n:null}handleFormSubmit(e){const t=this.addValues(e);this.setState((e=>ca(ca({},e),t)),(()=>{this.triggerOnChange(t.value.length-1,null,e)}))}handleItemUpdate(e,t){let n;this.setState((o=>{const i=ca({},o);return n=(0,pe.fromJS)(i.value[e].value).toJS(),i.value[e].value=t,i.value[e].editMode=!1,i}),(()=>{this.triggerOnChange(e,n,t)}))}handleChildrenOnChange(e,t){let n;this.setState((o=>{const i=ca({},o);return n=(0,pe.fromJS)(i.value[e].children).toJS(),i.value[e].children=t,i}),(()=>{this.triggerOnChange(e,n,t)}))}getListItemsCssClass(e){const{config:t}=this.props,n=["tyk-editable-list-items"];return n.push(t.displayType||"table"),"inline"===e&&n.push("tyk-editable-list-items--inline"),n.join(" ")}getFormInputKey(){return this.startIndex+=1,this.startIndex}getListItemText(e){const{config:n}=this.props;let o=null;switch(n.displayType){case"list":case"inline":o=e.value.reduce(((t,n,o)=>{const i=ua.getItemListValue(n);let r=", ";return o===e.value.length-1&&(r=""),t+i+r}),"");break;default:o=t().createElement(yi,null,n.components.map(((n,o)=>t().createElement(li,{key:this.getFormInputKey(),size:`md-${n.size} lg-${n.size}`},ua.getItemListValue(e.value[o])))))}return o}getMainFormButtonWidth(e){this.setState({buttonWidth:e})}setItemEditMode(e){const t=this.closeListItems();this.setState((n=>{const o=ca({},n);return o.value=t,o.value[e].editMode=!o.value[e].editMode,o}))}isInList(e,t){const{value:n}=this.state;let o=!1;return n.forEach(((n,i)=>{JSON.stringify(n.value)===JSON.stringify(t)&&(o=!(e>=0&&i===e))})),o}addValues(e){const{value:t}=this.state,{config:n}=this.props,o={editMode:!1,value:e},i={value:t.slice(0)};return n.children&&(o.children=[]),i.value.push(o),i}removeListItem(e){let t;this.setState((n=>{const o=n.value.slice(0);return t=o.splice(e,1),{value:o}}),(()=>{this.triggerOnChange(e,t,null)}))}closeListItems(){const{value:e}=this.state;return e.map((e=>{const t=ca({},e);return t.editMode?(t.editMode=!1,t):t}))}triggerOnChange(e,t,n){const{onChange:o}=this.props,{value:i}=this.state;o&&"function"==typeof o&&o(i.length?i:null,e,t,n)}genListItem(e,n){var o;const{config:i,disabled:r}=this.props,{buttonWidth:s,value:a}=this.state,l=(0,pe.fromJS)(i.components).toJS();return e.value.forEach(((e,t)=>{l[t].props.value=e})),t().createElement("li",{key:n,className:ua.getListItemCssClass(i.displayType),ref:this.dropdownListItemRef},t().createElement("div",{className:`tyk-editable-list-item__text ${i.displayType||"table"}${e.editMode?" edit-mode-wrapper":""}`},e.editMode?t().createElement(t().Fragment,null,t().createElement(oa,{buttonName:"Update",noLabels:i.noLabels,disabled:r,displayType:i.displayType,components:l,onSubmit:this.handleItemUpdate.bind(this,n),validate:this.isInList.bind(this,n),validationmessage:"This value is already in the list"}),t().createElement("button",{type:"button",className:"tyk-editable-list-action__button on-edit",onClick:this.removeListItem.bind(this,n),"aria-label":"remove"},t().createElement(g,{type:"trash"}))):t().createElement(t().Fragment,null,this.getListItemText(e,n),t().createElement("div",{className:"tyk-editable-list-item__controls",style:{display:"block",width:"inline"===i.displayType?"auto":`${s+60}px`}},t().createElement("button",{disabled:r,type:"button",className:"tyk-editable-list-action__button",onClick:this.setItemEditMode.bind(this,n),"aria-label":"edit"},t().createElement(g,{type:"edit"})),t().createElement("button",{disabled:r,type:"button",className:"tyk-editable-list-action__button",onClick:this.removeListItem.bind(this,n),"aria-label":"remove"},t().createElement(g,{type:"trash"}))))),i.children?t().createElement(ua,{disabled:r,onChange:this.handleChildrenOnChange.bind(this,n),config:i.children.config,value:(null==(o=a[n])?void 0:o.children)||[]}):null)}genList(){const{config:e}=this.props,{buttonWidth:n,value:o}=this.state;return o&&0!==o.length?t().createElement(t().Fragment,null,"table"!==e.displayType&&e.displayType?null:t().createElement("div",{className:"tyk-editable-list__header",style:{paddingRight:`${n+60}px`}},t().createElement(yi,null,e.components.map(((e,n)=>t().createElement(li,{key:e.props.label||n,size:`md-${e.size||12} lg-${e.size||12}`},e.props.label))))),t().createElement("ul",{className:this.getListItemsCssClass(e.displayType)},o.map(((e,t)=>this.genListItem(e,t))))):null}render(){const{addValueOnFieldChange:e,config:n,error:o,disabled:i,label:r}=this.props,s=document.querySelector(n.appendTo)||document.querySelector("body");return t().createElement("div",{className:"tyk-editable-list"},r?t().createElement("label",null,r):null,t().createElement(oa,{addValueOnFieldChange:e,components:n.components,buttonName:n.formButtonTitle,buttonStyle:n.formButtonStyle,disabled:i,error:o,errorPersist:!!o,noLabels:n.noLabels,onSubmit:this.handleFormSubmit,validate:this.isInList.bind(this,-1),validationmessage:"This value is already in the list",getMainFormButtonWidth:this.getMainFormButtonWidth}),n.appendTo?dt().createPortal(this.genList(),s):this.genList())}}ua.propTypes={addValueOnFieldChange:r().bool,disabled:r().bool,error:r().string,config:r().instanceOf(Object),onChange:r().func,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),value:r().oneOfType([r().instanceOf(Array),r().instanceOf(Object)])};const ha=ua;function da({label:e,addButtonName:n,onAddRow:o,disabled:i,readOnly:r}){return t().createElement("div",{className:"editable-list__header"},e?t().createElement("label",null,e):null,!i&&!r&&t().createElement(U,{theme:"primary rounded-corners",onClick:o},n||"Add"))}da.propTypes={disabled:r().bool,readOnly:r().bool,onAddRow:r().func,addButtonName:r().string,label:r().oneOfType([r().string,r().element,r().node])};const pa=da;function ga({fields:e,readOnly:n}){return t().createElement("li",{className:"editable-list__item editable-list__item-header"},e.map((e=>{var n,o;return t().createElement("div",{key:(null==(n=null==e?void 0:e.props)?void 0:n.label)||JSON.stringify(e),className:`editable-list__item-cell editable-list__item--size-${(null==e?void 0:e.size)||12}`},null==(o=null==e?void 0:e.props)?void 0:o.label)})),t().createElement("div",{className:`editable-list__item-cell editable-list__item-action ${n&&"editable-list__item-action--read-only"}`},"Delete"))}ga.propTypes={fields:r().instanceOf(Array),readOnly:r().bool};const ma=ga;var fa=Object.defineProperty,ya=Object.defineProperties,va=Object.getOwnPropertyDescriptors,ba=Object.getOwnPropertySymbols,wa=Object.prototype.hasOwnProperty,xa=Object.prototype.propertyIsEnumerable,ka=(e,t,n)=>t in e?fa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Ca({fields:e,disabled:n,readOnly:o,errors:i,components:r,onChange:s,onDelete:a,value:l,rowIndex:c}){return t().createElement("li",{className:"editable-list__item"},r.map(((r,a)=>{var u,h,d;const p=e[a],g="function"==typeof p?p(c,a):p;return t().createElement("div",{key:`${c}-${a}`,className:`editable-list__item-cell editable-list__item--size-${(null==(u=e[a])?void 0:u.size)||12}`},t().createElement(r,(m=((e,t)=>{for(var n in t||(t={}))wa.call(t,n)&&ka(e,n,t[n]);if(ba)for(var n of ba(t))xa.call(t,n)&&ka(e,n,t[n]);return e})({},null==g?void 0:g.props),f={label:"",value:l[a],onChange:s.bind(null,a),error:null==i?void 0:i[a],disabled:n||(null==(h=null==g?void 0:g.props)?void 0:h.disabled),readOnly:o||(null==(d=null==g?void 0:g.props)?void 0:d.readOnly)},ya(m,va(f)))));var m,f})),t().createElement("div",{className:`editable-list__item-cell editable-list__item-action ${o&&"editable-list__item-action--read-only"}`},t().createElement(U,{iconOnly:!0,iconType:"trash",theme:"primary-link",onClick:a,disabled:o||n})))}Ca.propTypes={disabled:r().bool,readOnly:r().bool,rowIndex:r().oneOfType([r().string,r().number]),fields:r().instanceOf(Array),errors:r().instanceOf(Array),components:r().instanceOf(Array),value:r().instanceOf(Array),onChange:r().func,onDelete:r().func};const $a=Ca;var Sa=Object.defineProperty,Ea=Object.defineProperties,Oa=Object.getOwnPropertyDescriptors,Ta=Object.getOwnPropertySymbols,Aa=Object.prototype.hasOwnProperty,_a=Object.prototype.propertyIsEnumerable,La=(e,t,n)=>t in e?Sa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;let Ma=1;function Ra({addButtonName:n,disabled:o,readOnly:i,fields:r,label:s,error:a,value:l=[],onChange:c=(()=>{}),hideOnEmpty:u=!0,wrapperClassName:h=""}){const[d,p]=(0,e.useState)(null),g=(e,t,n,o)=>{var i;const s=l?[...l]:[];if(l){const o=[...s[e]];o[t]=n,s[e]=o,s[e].id=l[e].id}else s[e]=[...new Array(r.length)],s[e][t]=n;if((null==(i=null==d?void 0:d[e])?void 0:i[t])&&o){const n=[...d],o=[...n[e]];o[t]=null,n[e]=o,p(n)}c(s)},m=(0,e.useMemo)((()=>r.map((n=>{const o="function"==typeof n?n():n;return i=(null==o?void 0:o.component)||null,n=>{var o=n,{onChange:r,validate:s,error:a}=o,l=((e,t)=>{var n={};for(var o in e)Aa.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ta)for(var o of Ta(e))t.indexOf(o)<0&&_a.call(e,o)&&(n[o]=e[o]);return n})(o,["onChange","validate","error"]);const[c,u]=(0,e.useState)(null),h=(0,e.useCallback)((e=>{const t=(null==e?void 0:e.target)?["radio","checkbox"].includes(e.target.type)?e.target.checked:null==e?void 0:e.target.value:e;let n=!0;if(s&&"function"==typeof s){const e=s(t);n=!e,u(e)}r(t,n)}),[s,r]);return t().createElement(i,(d=((e,t)=>{for(var n in t||(t={}))Aa.call(t,n)&&La(e,n,t[n]);if(Ta)for(var n of Ta(t))_a.call(t,n)&&La(e,n,t[n]);return e})({},l),Ea(d,Oa({onChange:h,error:c||a}))));var d};var i}))),[]),f=e=>{if(!l)return;const t=[...l];t.splice(e,1),c(t)};return t().createElement("div",{className:`editable-list__wrapper tyk-form-group tyk-form-group--default ${a?"has-error":""} ${h}`},t().createElement(pa,{disabled:o,readOnly:i,label:s,addButtonName:n,onAddRow:()=>{const e=((e,t)=>{var n;return null==(n=t||[[void 0,void 0]])?void 0:n.map((t=>null==t?void 0:t.map(((t,n)=>{var o,i;return null==(i=(o=e[n].props).validate)?void 0:i.call(o,t)}))))})(r,l);if((e=>{var t;return Boolean(null==(t=null==e?void 0:e.flat())?void 0:t.filter(Boolean).length)})(e))return void p(e);const t=[...new Array(r.length)];t.id="row-"+Ma++,c([...l,t])}}),(null==l?void 0:l.length)||!u?t().createElement("ul",{className:"editable-list__list"},(l||[[]]).map(((e,n)=>t().createElement($a,{key:e.id||n,rowIndex:n,disabled:o,readOnly:i,fields:r,onChange:g.bind(null,n),onDelete:f.bind(null,n),value:e,errors:null==d?void 0:d[n],components:m}))),t().createElement(ma,{fields:r,readOnly:i})):null,a&&"true"!==a&&"false"!==a?t().createElement("p",{className:"tyk-form-control__error-message"},a):null)}Ra.propTypes={disabled:r().bool,readOnly:r().bool,addButtonName:r().string,label:r().oneOfType([r().string,r().element,r().node]),fields:r().instanceOf(Array),onChange:r().func,value:r().oneOfType([r().instanceOf(Object),r().instanceOf(Array)]),error:r().string,hideOnEmpty:r().bool,wrapperClassName:r().string};const Na=Ra;var Ia=Object.defineProperty,Pa=Object.defineProperties,Da=Object.getOwnPropertyDescriptors,Fa=Object.getOwnPropertySymbols,Ba=Object.prototype.hasOwnProperty,Wa=Object.prototype.propertyIsEnumerable,Ha=(e,t,n)=>t in e?Ia(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function ja(n){var o=n,{error:i,theme:r,labelwidth:s,wrapperClassName:a="",id:l,label:c,note:u,accept:h,value:d,onChange:p}=o,m=((e,t)=>{var n={};for(var o in e)Ba.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Fa)for(var o of Fa(e))t.indexOf(o)<0&&Wa.call(e,o)&&(n[o]=e[o]);return n})(o,["error","theme","labelwidth","wrapperClassName","id","label","note","accept","value","onChange"]);const f=(0,e.useRef)();return t().createElement("div",{className:function(){const e=[a,"tyk-form-group"],t=r?r.split(" "):[];return t.length&&t.forEach((t=>{e.push(`tyk-form-group--${t}`)})),s&&e.push("tyk-form-group--label-has-width"),i&&e.push("has-error"),e.join(" ")}()},c?t().createElement("label",{htmlFor:l,style:function(){const e={};return s&&(e.flexBasis=s),e}()},c):null,t().createElement("div",{className:"tyk-form-control__wrapper"},t().createElement("div",{className:"tyk-file-input__wrapper",style:function(){const e={};return s&&(e.flexBasis=`calc(100% - ${s} - 20px)`),e}()},t().createElement("input",(y=((e,t)=>{for(var n in t||(t={}))Ba.call(t,n)&&Ha(e,n,t[n]);if(Fa)for(var n of Fa(t))Wa.call(t,n)&&Ha(e,n,t[n]);return e})({accept:h,className:"tyk-form-control"},m),Pa(y,Da({onChange:function(e){p(e.target.files)},ref:f,type:"file"})))),f.current&&f.current.files.length>0?t().createElement("button",{onClick:function(){f.current.value="",p("")},type:"button","aria-label":"clear value"},t().createElement(g,{type:"xmark"})):null),u?t().createElement("p",{className:"tyk-form-control__help-block"},u):null),i&&"true"!==i&&"false"!==i?t().createElement("p",{className:"tyk-form-control__error-message"},i):null);var y}ja.propTypes={accept:r().string,disabled:r().bool,id:r().string,error:r().oneOfType([r().string,r().bool]),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,placeholder:r().string,theme:r().string,value:r().instanceOf(Object),wrapperClassName:r().string};const za=ja;var Va=Object.defineProperty,Ua=Object.defineProperties,Ga=Object.getOwnPropertyDescriptors,Ka=Object.getOwnPropertySymbols,qa=Object.prototype.hasOwnProperty,Ya=Object.prototype.propertyIsEnumerable,Ja=(e,t,n)=>t in e?Va(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Xa extends e.Component{static getAddon(e){return t().createElement("div",{className:"tyk-input-group__addon"},e)}constructor(e){super(e);const{value:t}=this.props;this.state={initValue:t,stateValue:t},this.handleOnChange=this.handleOnChange.bind(this)}componentDidUpdate(e){const{isfield:t,value:n,onChange:o}=this.props;t||e.value===n||this.setState({stateValue:n},(()=>{o&&o(n)}))}handleOnChange(e){const{onChange:t,isfield:n}=this.props,o=e.target.value;n?t(o):this.setState({stateValue:o},(()=>{t&&t(o)}))}getLabelStyles(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=e),t}getNonLabelWidth(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=`calc(100% - ${e} - 20px)`),t}getInputError(){const{error:e}=this.props;return e&&"true"!==e&&"false"!==e?t().createElement("p",{className:"tyk-form-control__error-message"},e):null}getCssClasses(){const{error:e,theme:t,labelwidth:n,inputgroupaddonleft:o,inputgroupaddonright:i}=this.props,r=["tyk-form-group"],s=t?t.split(" "):[];return s.length&&s.forEach((e=>{r.push(`tyk-form-group--${e}`)})),o&&r.push("tyk-form-group--addon-left"),i&&r.push("tyk-form-group--addon-right"),n&&r.push("tyk-form-group--label-has-width"),e&&r.push("has-error"),r.join(" ")}getInputGroupAddon(){const{inputgroupaddonleft:e,inputgroupaddonright:n}=this.props;return t().createElement("div",{className:"tyk-input-group"},e?Xa.getAddon(e):null,this.getInputComponent(),n?Xa.getAddon(n):null)}getInputComponent(){const e=this.props,{isfield:n,onChange:o,value:i}=e,r=((e,t)=>{var n={};for(var o in e)qa.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ka)for(var o of Ka(e))t.indexOf(o)<0&&Ya.call(e,o)&&(n[o]=e[o]);return n})(e,["isfield","onChange","value"]),{stateValue:s}=this.state;return t().createElement("input",(a=((e,t)=>{for(var n in t||(t={}))qa.call(t,n)&&Ja(e,n,t[n]);if(Ka)for(var n of Ka(t))Ya.call(t,n)&&Ja(e,n,t[n]);return e})({autoComplete:"off",className:"tyk-form-control"},r),l={onChange:this.handleOnChange,value:n?i:s},Ua(a,Ga(l))));var a,l}reset(){const{initValue:e}=this.state;this.setState({stateValue:e})}render(){const{label:e,id:n,inputgroupaddonleft:o,inputgroupaddonright:i,note:r,readOnly:s,value:a}=this.props;return t().createElement("div",{className:this.getCssClasses()},e?t().createElement("label",{htmlFor:n,style:this.getLabelStyles()},e):null,!s&&t().createElement("div",{className:"tyk-form-control__wrapper",style:this.getNonLabelWidth()},o||i?this.getInputGroupAddon():this.getInputComponent(),r?t().createElement("p",{className:"tyk-form-control__help-block"},r):null,this.getInputError()),s&&t().createElement("div",{className:"tyk-form-control--readonly"},a||"-"))}}Xa.propTypes={disabled:r().bool,readOnly:r().bool,id:r().string,isfield:r().bool,error:r().oneOfType([r().string,r().bool]),inputgroupaddonleft:r().oneOfType([r().element,r().node,r().string]),inputgroupaddonright:r().oneOfType([r().element,r().node,r().string]),label:r().oneOfType([r().string,r().element,r().node]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,placeholder:r().string,theme:r().string,value:r().oneOfType([r().number,r().string])};const Qa=Xa;var Za=Object.defineProperty,el=Object.defineProperties,tl=Object.getOwnPropertyDescriptors,nl=Object.getOwnPropertySymbols,ol=Object.prototype.hasOwnProperty,il=Object.prototype.propertyIsEnumerable,rl=(e,t,n)=>t in e?Za(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,sl=(e,t)=>{for(var n in t||(t={}))ol.call(t,n)&&rl(e,n,t[n]);if(nl)for(var n of nl(t))il.call(t,n)&&rl(e,n,t[n]);return e};function al(n,o){var i=n,{error:r,onChange:s,readOnly:a,id:l,inputgroupaddonleft:c,inputgroupaddonright:u,label:h,labelwidth:d,note:p,theme:g,value:m,wrapperClassName:f=""}=i,y=((e,t)=>{var n={};for(var o in e)ol.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&nl)for(var o of nl(e))t.indexOf(o)<0&&il.call(e,o)&&(n[o]=e[o]);return n})(i,["error","onChange","readOnly","id","inputgroupaddonleft","inputgroupaddonright","label","labelwidth","note","theme","value","wrapperClassName"]);const v=(0,e.useRef)();(0,e.useImperativeHandle)(o,(()=>({focus:()=>{v.current.focus()}})));const b=e=>t().createElement("div",{className:"tyk-input-group__addon"},e),w=e=>{s(e,e.target.value)},x=()=>{return t().createElement("input",(e=sl({autoComplete:"off",className:"tyk-form-control"},y),el(e,tl({onChange:w,value:m,ref:v}))));var e};return t().createElement("div",{className:(()=>{const e=[f,"tyk-form-group"],t=g?g.split(" "):[];return t.length&&t.forEach((t=>{e.push(`tyk-form-group--${t}`)})),c&&e.push("tyk-form-group--addon-left"),u&&e.push("tyk-form-group--addon-right"),d&&e.push("tyk-form-group--label-has-width"),r&&e.push("has-error"),e.join(" ")})()},h?t().createElement("label",{htmlFor:l,style:sl({},d&&{flexBasis:d})},h):null,!a&&t().createElement("div",{className:"tyk-form-control__wrapper",style:sl({},d&&{flexBasis:`calc(100% - ${d} - 20px)`})},c||u?t().createElement("div",{className:"tyk-input-group"},c?b(c):null,x(),u?b(u):null):x(),p?t().createElement("p",{className:"tyk-form-control__help-block"},p):null,r&&"true"!==r&&"false"!==r?t().createElement("p",{className:"tyk-form-control__error-message"},r):null),a&&t().createElement("div",{className:"tyk-form-control--readonly"},m||"-"))}al.propTypes={disabled:r().bool,readOnly:r().bool,id:r().string,error:r().oneOfType([r().string,r().bool]),inputgroupaddonleft:r().oneOfType([r().element,r().node,r().string]),inputgroupaddonright:r().oneOfType([r().element,r().node,r().string]),label:r().oneOfType([r().string,r().element,r().node]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,placeholder:r().string,theme:r().string,value:r().oneOfType([r().number,r().string]),wrapperClassName:r().string};const ll=(0,e.forwardRef)(al),cl=(0,e.createContext)();function ul({item:n,itemType:o,searchValue:i,onChange:r}){const s=(0,e.useCallback)((e=>(null==e?void 0:e.length)>0?e.some((e=>{var t;return null==(t=n[e])?void 0:t.includes(i)})):JSON.stringify(n).includes(i)),[n,i]),a=(0,e.useCallback)((()=>{r(n)}),[r,n]);return t().createElement(cl.Consumer,null,(e=>s(e.fieldsToSearchOn)?t().createElement("li",null,t().createElement("div",null,t().createElement("span",{className:"tyk-multiselect-item__name"},e.itemDisplayTemplate?e.itemDisplayTemplate(n):JSON.stringify(n)),t().createElement("span",{className:"tyk-multiselect-item__controls"},t().createElement(U,{iconType:"normal"===o?"plus":"minus",iconOnly:!0,onClick:a,disabled:e.disabled||e.maxSelections&&e.maxSelections===e.nrSelectedItems&&"normal"===o}),t().createElement(U,{iconType:e.opened[n.id]?"chevron-up":"chevron-down",iconOnly:!0,onClick:()=>e.onGetItemDetails(n)}))),n.details?t().createElement(R,{collapsed:!e.opened[n.id],className:"tyk-multiselect-item__details"},((e,t)=>e.detailsDisplayTemplate?e.detailsDisplayTemplate(t):JSON.stringify(t.details))(e,n)):((e,n)=>{const{opened:o}=e;return o[n.id]?t().createElement(ye,{position:"relative"}):null})(e,n)):null))}ul.propTypes={item:r().instanceOf(Object),itemType:r().string,searchValue:r().string,onChange:r().func};const hl=ul;function dl({inputPlaceholder:n,noItemsMessage:o,items:i,onCustomSearch:r,onChange:s,customSearch:a,panelType:l,serverLoad:c,itemsPageNumber:u,itemsNrPages:h,loadMoreItems:d}){const[p,m]=(0,e.useState)(""),f=(0,e.useRef)(0),y=(0,e.useRef)(),v=(0,e.useCallback)((e=>{r?r(e):m(e)}),[r]),b=(0,e.useCallback)((e=>{let t=structuredClone(i);t=t.filter((t=>e.id!==t.id)),s(t,e)}),[i]);function w(){return t().createElement("ul",{className:"tyk-multiselect__list"+(c?"":" tyk-multiselect__list--scroll"),ref:y},i.map((e=>t().createElement(hl,{itemType:l,key:(f.current+=1,f.current),onChange:b,searchValue:a?"":p,item:e}))))}return t().createElement("div",{className:"tyk-multiselect__panel"},t().createElement(Qa,{inputgroupaddonleft:t().createElement(g,{type:"magnifying-glass"}),name:"search",onChange:v,placeholder:n,value:p}),i.length?c?t().createElement(At,{refChild:y,hasMore:h>u,loadMore:d,pageNumber:u},w()):w():t().createElement(be,{theme:"info"},o))}dl.propTypes={customSearch:r().bool,onCustomSearch:r().func,panelType:r().string,onChange:r().func,items:r().instanceOf(Array),itemsPageNumber:r().number,itemsNrPages:r().number,inputPlaceholder:r().string,loadMoreItems:r().func,noItemsMessage:r().string,serverLoad:r().bool};const pl=dl;var gl=Object.defineProperty,ml=Object.defineProperties,fl=Object.getOwnPropertyDescriptors,yl=Object.getOwnPropertySymbols,vl=Object.prototype.hasOwnProperty,bl=Object.prototype.propertyIsEnumerable,wl=(e,t,n)=>t in e?gl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const xl=(e,t)=>t.filter((t=>!e.find((e=>e.id===t.id))));function kl({customSearch:n,entityNamePlural:o,disabled:i,error:r,getItemDetails:s,itemDisplayTemplate:a,detailsDisplayTemplate:l,fieldsToSearchOn:c,items:u,itemsPageNumber:h,itemsNrPages:d,loadMoreItems:p,maxSelections:g,note:m,value:f,onChange:y,wrapperClassName:v=""}){const[b,w]=(0,e.useState)({}),x=(0,e.useCallback)((e=>{w((t=>{return n=((e,t)=>{for(var n in t||(t={}))vl.call(t,n)&&wl(e,n,t[n]);if(yl)for(var n of yl(t))bl.call(t,n)&&wl(e,n,t[n]);return e})({},t),o={[e.id]:!t[e.id]},ml(n,fl(o));var n,o})),s&&s(e)}),[s]),k=(0,e.useCallback)((()=>[v,"tyk-multiselect",r&&"has-error"].filter(Boolean).join(" ")),[v,r]),C=(0,e.useCallback)(((e,t)=>{const n=structuredClone(f);n.unshift(t),y(n,t,"added")}),[f]),$=(0,e.useCallback)(((e,t)=>{y(e,t,"removed")}),[u]),S=(0,e.useMemo)((()=>({disabled:i,itemDisplayTemplate:a,detailsDisplayTemplate:l,fieldsToSearchOn:c,maxSelections:g,nrSelectedItems:f.length,onGetItemDetails:x,opened:b})),[i,a,l,c,g,f,x,b]);return t().createElement(t().Fragment,null,t().createElement("div",{className:k()},t().createElement(cl.Provider,{value:S},t().createElement("div",{className:"tyk-multiselect__header"},t().createElement("div",null,f.length," ","Selected"," ",o),t().createElement("div",null,"Select from existing",o)),t().createElement("div",{className:"tyk-multiselect__panel-wrapper"},t().createElement(pl,{inputPlaceholder:`Search through selected ${o}`,noItemsMessage:`Selected ${o} will show here`,items:f,onChange:$,panelType:"selected"}),t().createElement(pl,{inputPlaceholder:`Search existing ${o}`,noItemsMessage:`No ${o} to display`,entityNamePlural:o,customSearch:!!n,onCustomSearch:n,items:xl(f,u),onChange:C,serverLoad:!!p,loadMoreItems:p,itemsPageNumber:h,itemsNrPages:d,panelType:"normal"})))),t().createElement("div",null,m?t().createElement("p",{className:"tyk-form-control__help-block"},m):null),r&&"true"!==r&&"false"!==r?t().createElement("p",{className:"tyk-form-control__error-message"},r):null)}kl.propTypes={customSearch:r().func,disabled:r().bool,error:r().string,entityNamePlural:r().string,items:r().instanceOf(Array),itemDisplayTemplate:r().func,detailsDisplayTemplate:r().func,fieldsToSearchOn:r().instanceOf(Array),onChange:r().func,getItemDetails:r().func,itemsPageNumber:r().number,itemsNrPages:r().number,loadMoreItems:r().func,note:r().string,maxSelections:r().number,value:r().instanceOf(Array),wrapperClassName:r().string};const Cl=kl;var $l=Object.defineProperty,Sl=Object.defineProperties,El=Object.getOwnPropertyDescriptors,Ol=Object.getOwnPropertySymbols,Tl=Object.prototype.hasOwnProperty,Al=Object.prototype.propertyIsEnumerable,_l=(e,t,n)=>t in e?$l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ll=(e,t)=>{for(var n in t||(t={}))Tl.call(t,n)&&_l(e,n,t[n]);if(Ol)for(var n of Ol(t))Al.call(t,n)&&_l(e,n,t[n]);return e};function Ml(e){var n=e,{label:o,input:i,note:r,inline:s,nospace:a,theme:l="",disabled:c,readOnly:u,wrapperClassName:h=""}=n,d=((e,t)=>{var n={};for(var o in e)Tl.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ol)for(var o of Ol(e))t.indexOf(o)<0&&Al.call(e,o)&&(n[o]=e[o]);return n})(n,["label","input","note","inline","nospace","theme","disabled","readOnly","wrapperClassName"]);const p=[s?"tyk-radio--inline":"tyk-radio",h,a&&"no-margin",...l?l.split(" ").filter(Boolean).map((e=>`tyk-radio--theme-${e}`)):[],(u||c)&&"tyk-radio--is-disabled"].filter(Boolean).join(" ");return t().createElement("div",{className:p},t().createElement("label",null,t().createElement("input",(g=Ll(Ll({},i),d),Sl(g,El({type:"radio",disabled:u||c})))),o),r&&t().createElement("p",{className:"tyk-form-control__help-block"},r));var g}Ml.propTypes={disabled:r().bool,readOnly:r().bool,inline:r().bool,theme:r().string,input:r().instanceOf(Object),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),name:r().string,nospace:r().bool,value:r().string,note:r().oneOfType([r().string,r().element,r().node]),wrapperClassName:r().string};const Rl=Ml;var Nl=Object.defineProperty,Il=Object.defineProperties,Pl=Object.getOwnPropertyDescriptors,Dl=Object.getOwnPropertySymbols,Fl=Object.prototype.hasOwnProperty,Bl=Object.prototype.propertyIsEnumerable,Wl=(e,t,n)=>t in e?Nl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Hl(n){const o=n,{value:i,onChange:r,onBlur:s,isfield:a,label:l,labelwidth:c,id:u,note:h,readOnly:d,options:p,error:g,theme:m,wrapperClassName:f=""}=o,y=((e,t)=>{var n={};for(var o in e)Fl.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Dl)for(var o of Dl(e))t.indexOf(o)<0&&Bl.call(e,o)&&(n[o]=e[o]);return n})(o,["value","onChange","onBlur","isfield","label","labelwidth","id","note","readOnly","options","error","theme","wrapperClassName"]),[v,b]=(0,e.useState)(i);(0,e.useEffect)((()=>{a||v===i||(b(i),r&&r(i))}),[v,i]);const w=(0,e.useCallback)((e=>{const t=p.find((t=>t.id===e.target.value));a||b(t),r(t.id?t:null)}),[p,a,r]),x=(0,e.useCallback)((()=>{s&&s(i)}),[s]),k=(0,e.useCallback)((()=>g&&"true"!==g&&"false"!==g?t().createElement("p",{className:"tyk-form-control__error-message"},g):null),[g]),C=(0,e.useCallback)((()=>["tyk-form-group",f,...m?m.split(" ").map((e=>`tyk-form-group--${e}`)):[],c&&"tyk-form-group--label-has-width",g&&"has-error"].filter(Boolean).join(" ")),[f,m,c,g]),$=(0,e.useCallback)((()=>c?{flexBasis:c}:{}),[c]),S=(0,e.useCallback)((()=>c?{flexBasis:`calc(100% - ${c} - 20px)`}:{}),[c]),E=(0,e.useCallback)((()=>{const e=a&&i?i:v;return t().createElement("select",(n=((e,t)=>{for(var n in t||(t={}))Fl.call(t,n)&&Wl(e,n,t[n]);if(Dl)for(var n of Dl(t))Bl.call(t,n)&&Wl(e,n,t[n]);return e})({className:"tyk-form-control tyk-select"},y),o={onChange:w,onBlur:x,value:e?e.id:""},Il(n,Pl(o))),p.map((e=>t().createElement("option",{key:e.id,value:e.id},e.name))));var n,o}),[a,i,v,w,x,p,y]);return t().createElement("div",{className:C()},l?t().createElement("label",{htmlFor:u,style:$()},l):null,!d&&t().createElement("div",{className:"tyk-form-control__wrapper",style:S()},E(),h?t().createElement("p",{className:"tyk-form-control__help-block"},h):null,k()),d&&t().createElement("div",{className:"tyk-form-control--readonly"},i||"-"))}Hl.propTypes={disabled:r().bool,readOnly:r().bool,id:r().string,isfield:r().bool,error:r().oneOfType([r().string,r().bool]),options:r().instanceOf(Array),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,name:r().string,note:r().string,onBlur:r().func,onChange:r().func,placeholder:r().string,theme:r().string,value:r().oneOfType([r().string,r().object]),wrapperClassName:r().string};const jl=Hl;var zl=Object.defineProperty,Vl=Object.defineProperties,Ul=Object.getOwnPropertyDescriptors,Gl=Object.getOwnPropertySymbols,Kl=Object.prototype.hasOwnProperty,ql=Object.prototype.propertyIsEnumerable,Yl=(e,t,n)=>t in e?zl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Jl(e){const{checkboxalticon:n,items:o,itemTemplate:i,value:r,noItemsMessage:s="No items in the list",onChange:a,theme:l,primaryKey:c,wrapperClassName:u=""}=e,h=e=>{const t=structuredClone(r),n=t.findIndex((t=>JSON.stringify(t)===JSON.stringify(Array.isArray(t)?e.target.value.split(","):e.target.value)));if(e.target.checked&&-1===n){const n=e.target.value.split(","),o=n.length>1?n:e.target.value;t.push(o)}else!e.target.checked&&n>-1&&t.splice(n,1);a&&a(t)},d=e=>{const t=[];return n&&t.push("tyk-selectable-list__item--with-icon"),e&&t.push("tyk-selectable-list__item--active"),t.join(" ")};return t().createElement(jt,(p=((e,t)=>{for(var n in t||(t={}))Kl.call(t,n)&&Yl(e,n,t[n]);if(Gl)for(var n of Gl(t))ql.call(t,n)&&Yl(e,n,t[n]);return e})({},e),Vl(p,Ul({theme:l||"default",className:`tyk-selectable-list ${u}`}))),o.length?o.map(((e,o)=>{return t().createElement(jt.Item,{key:o,className:d(r.includes(e[c]))},t().createElement("label",null,t().createElement("div",{className:"tyk-selectable-list__item"},i?i(e):e.name),t().createElement("input",{type:"checkbox",checked:(s=r,a=e[c],Boolean(s.find((e=>JSON.stringify(a)===JSON.stringify(e))))),onChange:h.bind(e),value:e[c]}),n?t().createElement(g,{type:n}):null));var s,a})):t().createElement("li",{className:"tyk-selectable-list__no-items-message"},t().createElement(be,{theme:"info"},s)));var p}Jl.propTypes={items:r().instanceOf(Array),itemTemplate:r().oneOfType([r().node,r().element,r().string,r().func]),value:r().instanceOf(Array),onChange:r().func,primaryKey:r().string,noItemsMessage:r().string,checkboxalticon:r().oneOfType([r().node,r().element,r().string]),theme:r().string,wrapperClassName:r().string},Jl.defaultProps={items:[],primaryKey:"id",value:[]};const Xl=Jl;var Ql=Object.defineProperty,Zl=Object.getOwnPropertySymbols,ec=Object.prototype.hasOwnProperty,tc=Object.prototype.propertyIsEnumerable,nc=(e,t,n)=>t in e?Ql(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,oc=(e,t)=>{for(var n in t||(t={}))ec.call(t,n)&&nc(e,n,t[n]);if(Zl)for(var n of Zl(t))tc.call(t,n)&&nc(e,n,t[n]);return e};function ic(e){var n=e,{id:o,input:i,label:r,note:s,error:a,theme:l,labelwidth:c,value:u,readOnly:h,wrapperClassName:d}=n,p=((e,t)=>{var n={};for(var o in e)ec.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Zl)for(var o of Zl(e))t.indexOf(o)<0&&tc.call(e,o)&&(n[o]=e[o]);return n})(n,["id","input","label","note","error","theme","labelwidth","value","readOnly","wrapperClassName"]);const g=["tyk-form-group",d,...l?l.split(" ").map((e=>`tyk-form-group--${e}`)):[],c&&"tyk-form-group--label-has-width",a&&"has-error"].filter(Boolean).join(" ");return t().createElement("div",{className:g},r?t().createElement("label",{htmlFor:o,style:c?{flexBasis:c}:{}},r):null,!h&&t().createElement("div",{className:"tyk-form-control__wrapper",style:c?{flexBasis:`calc(100% - ${c} - 20px)`}:{}},t().createElement("textarea",oc(oc({className:"tyk-form-control"},p),i),u),s?t().createElement("p",{className:"tyk-form-control__help-block"},s):null,a&&"true"!==a&&"false"!==a?t().createElement("p",{className:"tyk-form-control__error-message"},a):null),h&&t().createElement("div",{className:"tyk-form-control--readonly"},u||"-"))}ic.propTypes={disabled:r().bool,readOnly:r().bool,input:r().instanceOf(Object),error:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,id:r().string,theme:r().string,value:r().string,wrapperClassName:r().string};const rc=ic,sc=(0,e.createContext)();class ac extends e.Component{static getNotchCssClasses(e){return["tyk-toggle__item-notch",`tyk-toggle__item-notch--${e.type}`].join(" ")}constructor(t){super(t),this.itemRef=(0,e.createRef)()}componentDidMount(){const{context:e,value:t}=this.props;e.value===t&&e.saveSelectedRef(this.itemRef)}componentDidUpdate(e){const{context:t,value:n}=this.props;e.context.value!==t.value&&t.value===n&&t.saveSelectedRef(this.itemRef)}onChange(e){const{context:t,value:n}=this.props,{disabled:o,readOnly:i}=t;o||i||t.onItemSelected("single"===t.type?!t.value:n,e)}render(){const{context:e,label:n,name:o,value:i}=this.props;return t().createElement("li",{className:"tyk-toggle__item "+(!e.value||"single"!==e.type&&e.value!==i?"":"tyk-toggle__item--active"),ref:this.itemRef},t().createElement("label",null,t().createElement("input",{type:"single"===e.type?"checkbox":"radio",name:o,checked:e.value===i,onChange:this.onChange.bind(this),value:i}),n?t().createElement("span",null,n):t().createElement("span",{className:"empty-toggle"}," "),"single"===e.type?t().createElement("span",{className:ac.getNotchCssClasses(e)}):null))}}ac.propTypes={context:r().instanceOf(Object),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),name:r().string,value:r().string};const lc=ac;var cc=Object.defineProperty,uc=Object.defineProperties,hc=Object.getOwnPropertyDescriptors,dc=Object.getOwnPropertySymbols,pc=Object.prototype.hasOwnProperty,gc=Object.prototype.propertyIsEnumerable,mc=(e,t,n)=>t in e?cc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function fc(e,n){var o=e,{children:i}=o,r=((e,t)=>{var n={};for(var o in e)pc.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&dc)for(var o of dc(e))t.indexOf(o)<0&&gc.call(e,o)&&(n[o]=e[o]);return n})(o,["children"]);return t().createElement(sc.Consumer,null,(e=>{return t().createElement(lc,(o=((e,t)=>{for(var n in t||(t={}))pc.call(t,n)&&mc(e,n,t[n]);if(dc)for(var n of dc(t))gc.call(t,n)&&mc(e,n,t[n]);return e})({},r),uc(o,hc({context:e,ref:n}))),i);var o}))}fc.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string])};const yc=(0,e.forwardRef)(fc);function vc({className:n,disabled:o,readOnly:i,size:r,theme:s,direction:a,onDark:l,wrapperClassName:c="",onChange:u,labelwidth:h,label:d,separated:p,children:g,type:m,value:f,error:y}){const[v,b]=(0,e.useState)(null),w=(0,e.useRef)(),x=(0,e.useRef)(),k=[c,n,"tyk-toggle",`tyk-toggle--disabled-${i||o}`,`tyk-toggle--${r||"md"}`,`tyk-toggle--${s}`,`tyk-toggle--${a}`,l&&"tyk-toggle--on-dark"].filter(Boolean).join(" "),C=(0,e.useCallback)(((e,t)=>{u&&u(e,t)}),[u]),$=(0,e.useCallback)((()=>h?{flexBasis:h}:{}),[h]),S=(0,e.useCallback)((()=>{if(!v||p)return{};const e=v.current.offsetWidth;return{left:v.current.getBoundingClientRect().left-x.current.getBoundingClientRect().left+4+"px",width:e-8+"px"}}),[v,p]),E=(0,e.useMemo)((()=>({disabled:o,readOnly:i,onItemSelected:C,saveSelectedRef:b,separated:p,type:m,value:f})),[o,i,C,p,m,f]);return t().createElement(t().Fragment,null,t().createElement("div",{className:k,ref:x},t().createElement(sc.Provider,{value:E},d?t().createElement("label",{className:"tyk-toggle__label",style:$()},d):null,t().createElement("ul",{className:`tyk-toggle__list tyk-toggle__list--${m} ${y&&"tyk-toggle__list--has-error"} tyk-toggle__list--${p?"separated":"not-separated"}`},g,"multiple"!==m||p?null:t().createElement("li",{className:"tyk-toggle__notch",ref:w,style:S()})))),y&&t().createElement("p",{className:"tyk-form-control__error-message"},y))}vc.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,disabled:r().bool,readOnly:r().bool,error:r().string,onChange:r().func,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,theme:r().string,type:r().string,size:r().string,separated:r().bool,direction:r().string,value:r().oneOfType([r().bool,r().string]),onDark:r().bool,wrapperClassName:r().string},vc.defaultProps={separated:!1,theme:"primary",type:"single",direction:"row"},vc.Item=yc;const bc=vc,wc={FORM_DEBOUNCE:200};function xc(e,t){wc[e]=t}const kc=wc;var Cc=Object.defineProperty,$c=Object.defineProperties,Sc=Object.getOwnPropertyDescriptors,Ec=Object.getOwnPropertySymbols,Oc=Object.prototype.hasOwnProperty,Tc=Object.prototype.propertyIsEnumerable,Ac=(e,t,n)=>t in e?Cc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,_c=(e,t)=>{for(var n in t||(t={}))Oc.call(t,n)&&Ac(e,n,t[n]);if(Ec)for(var n of Ec(t))Tc.call(t,n)&&Ac(e,n,t[n]);return e},Lc=(e,t)=>$c(e,Sc(t));function Mc(e,t){return t.split(/[\][.]/).filter(Boolean).reduce(((e,t)=>e?e[t]:e),e)}const Rc=(n,o)=>i=>{var r,s=i,{field:a,form:l}=s,c=((e,t)=>{var n={};for(var o in e)Oc.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ec)for(var o of Ec(e))t.indexOf(o)<0&&Tc.call(e,o)&&(n[o]=e[o]);return n})(s,["field","form"]);const u="number"==typeof kc.FORM_DEBOUNCE?kc.FORM_DEBOUNCE:200,[h,d]=(0,e.useState)(a.value),p=_c({getOnChangeProps:()=>({}),hasIsFieldProp:!1},o),g=(0,e.useCallback)((()=>{const e=e=>e();return!1===c.debounce||!1===kc.FORM_DEBOUNCE&&!c.debounce?e:function(e,t){let n;return(...o)=>{clearTimeout(n),n=setTimeout(e,t,...o)}}(e,"number"==typeof c.debounce?c.debounce:u)})(),[]),m=e=>{const t=(null==(n=e)?void 0:n.target)?"INPUT"!==n.target.nodeName||"checkbox"!==n.target.type&&"radio"!==n.target.type?n.target.value:n.target.checked:n;var n;const o=p.getOnChangeProps(t,a,l,c),i=o.value||c.value||t;g((()=>{"function"==typeof c.onChange&&c.onChange(i),a.onChange({target:_c({name:a.name,value:i},o)})})),d(i)},f=(Mc(l.touched,a.name)||Boolean(l.submitCount))&&Mc(l.errors,a.name),y="string"==typeof f?f:"";(0,e.useEffect)((()=>{d(a.value)}),[a.value]),(null==(r=l.status)?void 0:r.disabled)&&(c.disabled=!0);const v=_c({},c);return delete v.debounce,Object.hasOwn(v,"className")&&void 0===v.className&&delete v.className,Object.hasOwn(v,"children")&&void 0===v.children&&delete v.children,t().createElement(n,Lc(_c(_c(Lc(_c({},a),{error:y}),p.hasIsFieldProp?{isfield:!0}:{}),v),{checked:"string"==typeof c.value?a.value===c.value:a.value,onChange:m,value:h,input:{value:h,onChange:m}}))},Nc=Rc(Io,{getOnChangeProps:e=>({checked:e})}),Ic=Rc(gr),Pc=Rc(Sr),Dc=Rc(Wr),Fc=Rc(Zr),Bc=Rc(ha,{getOnChangeProps:e=>({value:e||[]})}),Wc=Rc(Na),Hc=Rc(za),jc=Rc(Qa,{hasIsFieldProp:!0}),zc=Rc(ll),Vc=Rc(Cl),Uc=Rc(Rl,{getOnChangeProps:(e,t,n,o)=>({checked:e===o.value,value:o.value})}),Gc=Rc(jl,{hasIsFieldProp:!0}),Kc=Rc(Xl),qc=Rc(rc),Yc=Rc(bc);var Jc=Object.defineProperty,Xc=Object.defineProperties,Qc=Object.getOwnPropertyDescriptors,Zc=Object.getOwnPropertySymbols,eu=Object.prototype.hasOwnProperty,tu=Object.prototype.propertyIsEnumerable,nu=(e,t,n)=>t in e?Jc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ou=(e,t)=>{for(var n in t||(t={}))eu.call(t,n)&&nu(e,n,t[n]);if(Zc)for(var n of Zc(t))tu.call(t,n)&&nu(e,n,t[n]);return e};class iu extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.prop,{onChange:n}=t;n((0,pe.fromJS)(e))}getInputError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)eu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Zc)for(var o of Zc(e))t.indexOf(o)<0&&tu.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(gr,(i=ou(ou({},n),o),r={error:this.getInputError()},Xc(i,Qc(r))));var i,r}}iu.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const ru=iu;var su=Object.defineProperty,au=Object.defineProperties,lu=Object.getOwnPropertyDescriptors,cu=Object.getOwnPropertySymbols,uu=Object.prototype.hasOwnProperty,hu=Object.prototype.propertyIsEnumerable,du=(e,t,n)=>t in e?su(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class pu extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}getComboboxError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=((e,t)=>{var n={};for(var o in e)uu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&cu)for(var o of cu(e))t.indexOf(o)<0&&hu.call(e,o)&&(n[o]=e[o]);return n})(this.props,[]);return t().createElement(Sr,(n=((e,t)=>{for(var n in t||(t={}))uu.call(t,n)&&du(e,n,t[n]);if(cu)for(var n of cu(t))hu.call(t,n)&&du(e,n,t[n]);return e})({},e),o={onChange:this.handleOnChange,value:e.input.value?e.input.value.toJS():e.input.value,error:this.getComboboxError()},au(n,lu(o))));var n,o}}pu.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const gu=pu;var mu=Object.defineProperty,fu=Object.defineProperties,yu=Object.getOwnPropertyDescriptors,vu=Object.getOwnPropertySymbols,bu=Object.prototype.hasOwnProperty,wu=Object.prototype.propertyIsEnumerable,xu=(e,t,n)=>t in e?mu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class ku extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}render(){const e=this.props,{children:n,input:o}=e,i=((e,t)=>{var n={};for(var o in e)bu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&vu)for(var o of vu(e))t.indexOf(o)<0&&wu.call(e,o)&&(n[o]=e[o]);return n})(e,["children","input"]);return t().createElement(Oi,(r=((e,t)=>{for(var n in t||(t={}))bu.call(t,n)&&xu(e,n,t[n]);if(vu)for(var n of vu(t))wu.call(t,n)&&xu(e,n,t[n]);return e})({},i),s={onSelect:this.handleOnChange,selectedItem:o.value},fu(r,yu(s))),n);var r,s}}ku.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),input:r().instanceOf(Object)};const Cu=ku;var $u=Object.defineProperty,Su=Object.defineProperties,Eu=Object.getOwnPropertyDescriptors,Ou=Object.getOwnPropertySymbols,Tu=Object.prototype.hasOwnProperty,Au=Object.prototype.propertyIsEnumerable,_u=(e,t,n)=>t in e?$u(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Lu=(e,t)=>{for(var n in t||(t={}))Tu.call(t,n)&&_u(e,n,t[n]);if(Ou)for(var n of Ou(t))Au.call(t,n)&&_u(e,n,t[n]);return e};function Mu(e){const n=e,{input:o}=n,i=((e,t)=>{var n={};for(var o in e)Tu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ou)for(var o of Ou(e))t.indexOf(o)<0&&Au.call(e,o)&&(n[o]=e[o]);return n})(n,["input"]);return t().createElement(po,(r=Lu(Lu({},o),i),s={onChange:o.onChange,value:o.value?o.value:0},Su(r,Eu(s))));var r,s}Mu.propTypes={input:r().instanceOf(Object)};const Ru=Mu;var Nu=Object.defineProperty,Iu=Object.defineProperties,Pu=Object.getOwnPropertyDescriptors,Du=Object.getOwnPropertySymbols,Fu=Object.prototype.hasOwnProperty,Bu=Object.prototype.propertyIsEnumerable,Wu=(e,t,n)=>t in e?Nu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Hu(e){const{input:n,meta:o,validationmessages:i}=e;return t().createElement(Wr,(r=((e,t)=>{for(var n in t||(t={}))Fu.call(t,n)&&Wu(e,n,t[n]);if(Du)for(var n of Du(t))Bu.call(t,n)&&Wu(e,n,t[n]);return e})({},e),s={onChange:e=>{const{onChange:t}=n;t((0,pe.fromJS)(e))},value:n.value?n.value.toJS():n.value,error:(()=>{const{touched:e,error:t,warning:n}=o;let r=null;return e&&t&&i[t]?r=i[t]:e&&n&&(r="warning"),r})()},Iu(r,Pu(s))));var r,s}Hu.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const ju=Hu;var zu=Object.defineProperty,Vu=Object.defineProperties,Uu=Object.getOwnPropertyDescriptors,Gu=Object.getOwnPropertySymbols,Ku=Object.prototype.hasOwnProperty,qu=Object.prototype.propertyIsEnumerable,Yu=(e,t,n)=>t in e?zu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Ju(e){const n=e,{input:o,meta:i,validationmessages:r}=n,s=((e,t)=>{var n={};for(var o in e)Ku.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Gu)for(var o of Gu(e))t.indexOf(o)<0&&qu.call(e,o)&&(n[o]=e[o]);return n})(n,["input","meta","validationmessages"]);return t().createElement(Zr,(a=((e,t)=>{for(var n in t||(t={}))Ku.call(t,n)&&Yu(e,n,t[n]);if(Gu)for(var n of Gu(t))qu.call(t,n)&&Yu(e,n,t[n]);return e})({},s),l={onChange:e=>{const{onChange:t}=o;t((0,pe.fromJS)(e))},value:o.value?o.value.toJS():o.value,error:(()=>{const{touched:e,error:t}=i;let n=null;return e&&t&&r[t]&&(n=r[t]),n})()},Vu(a,Uu(l))));var a,l}Ju.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Xu=Ju;var Qu=Object.defineProperty,Zu=Object.defineProperties,eh=Object.getOwnPropertyDescriptors,th=Object.getOwnPropertySymbols,nh=Object.prototype.hasOwnProperty,oh=Object.prototype.propertyIsEnumerable,ih=(e,t,n)=>t in e?Qu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class rh extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}getEditableListError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o}=e;let i=null;return n&&o&&t[o]&&(i=t[o]),i}render(){const e=((e,t)=>{var n={};for(var o in e)nh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&th)for(var o of th(e))t.indexOf(o)<0&&oh.call(e,o)&&(n[o]=e[o]);return n})(this.props,[]);return t().createElement(ha,(n=((e,t)=>{for(var n in t||(t={}))nh.call(t,n)&&ih(e,n,t[n]);if(th)for(var n of th(t))oh.call(t,n)&&ih(e,n,t[n]);return e})({},e),o={onChange:this.handleOnChange,value:e.input.value?e.input.value.toJS():null,error:this.getEditableListError()},Zu(n,eh(o))));var n,o}}rh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const sh=rh;var ah=Object.defineProperty,lh=Object.defineProperties,ch=Object.getOwnPropertyDescriptors,uh=Object.getOwnPropertySymbols,hh=Object.prototype.hasOwnProperty,dh=Object.prototype.propertyIsEnumerable,ph=(e,t,n)=>t in e?ah(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,gh=(e,t)=>{for(var n in t||(t={}))hh.call(t,n)&&ph(e,n,t[n]);if(uh)for(var n of uh(t))dh.call(t,n)&&ph(e,n,t[n]);return e};class mh extends e.Component{getInputError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)hh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&uh)for(var o of uh(e))t.indexOf(o)<0&&dh.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(za,(i=gh(gh({},n),o),r={error:this.getInputError()},lh(i,ch(r))));var i,r}}mh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const fh=mh;var yh=Object.defineProperty,vh=Object.defineProperties,bh=Object.getOwnPropertyDescriptors,wh=Object.getOwnPropertySymbols,xh=Object.prototype.hasOwnProperty,kh=Object.prototype.propertyIsEnumerable,Ch=(e,t,n)=>t in e?yh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,$h=(e,t)=>{for(var n in t||(t={}))xh.call(t,n)&&Ch(e,n,t[n]);if(wh)for(var n of wh(t))kh.call(t,n)&&Ch(e,n,t[n]);return e};class Sh extends e.Component{getInputError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)xh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&wh)for(var o of wh(e))t.indexOf(o)<0&&kh.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(Qa,(i=$h($h({},n),o),r={isfield:!0,error:this.getInputError()},vh(i,bh(r))));var i,r}}Sh.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Eh=Sh;var Oh=Object.defineProperty,Th=Object.defineProperties,Ah=Object.getOwnPropertyDescriptors,_h=Object.getOwnPropertySymbols,Lh=Object.prototype.hasOwnProperty,Mh=Object.prototype.propertyIsEnumerable,Rh=(e,t,n)=>t in e?Oh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Nh extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}getMultiselectError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=((e,t)=>{var n={};for(var o in e)Lh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&_h)for(var o of _h(e))t.indexOf(o)<0&&Mh.call(e,o)&&(n[o]=e[o]);return n})(this.props,[]);return t().createElement(Cl,(n=((e,t)=>{for(var n in t||(t={}))Lh.call(t,n)&&Rh(e,n,t[n]);if(_h)for(var n of _h(t))Mh.call(t,n)&&Rh(e,n,t[n]);return e})({},e),o={onChange:this.handleOnChange,value:e.input.value?e.input.value.toJS():e.input.value,error:this.getMultiselectError()},Th(n,Ah(o))));var n,o}}Nh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Ih=Nh;var Ph=Object.defineProperty,Dh=Object.defineProperties,Fh=Object.getOwnPropertyDescriptors,Bh=Object.getOwnPropertySymbols,Wh=Object.prototype.hasOwnProperty,Hh=Object.prototype.propertyIsEnumerable,jh=(e,t,n)=>t in e?Ph(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,zh=(e,t)=>{for(var n in t||(t={}))Wh.call(t,n)&&jh(e,n,t[n]);if(Bh)for(var n of Bh(t))Hh.call(t,n)&&jh(e,n,t[n]);return e};class Vh extends e.Component{constructor(e){super(e),this.handleEvent=this.handleEvent.bind(this)}handleEvent(e){const{input:t}=this.props,{onChange:n,value:o}=t;n((0,pe.fromJS)(void 0!==e?e:o))}getSelectError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)Wh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Bh)for(var o of Bh(e))t.indexOf(o)<0&&Hh.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(jl,(i=zh(zh({},n),o),r={isfield:!0,error:this.getSelectError(),onChange:this.handleEvent,onBlur:this.handleEvent,value:n.value?n.value.toJS():n.value},Dh(i,Fh(r))));var i,r}}Vh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Uh=Vh;var Gh=Object.defineProperty,Kh=Object.defineProperties,qh=Object.getOwnPropertyDescriptors,Yh=Object.getOwnPropertySymbols,Jh=Object.prototype.hasOwnProperty,Xh=Object.prototype.propertyIsEnumerable,Qh=(e,t,n)=>t in e?Gh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Zh extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props;t.onChange((0,pe.fromJS)(e))}render(){const e=this.props,{children:n}=e,o=((e,t)=>{var n={};for(var o in e)Jh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Yh)for(var o of Yh(e))t.indexOf(o)<0&&Xh.call(e,o)&&(n[o]=e[o]);return n})(e,["children"]);return t().createElement(Xl,(i=((e,t)=>{for(var n in t||(t={}))Jh.call(t,n)&&Qh(e,n,t[n]);if(Yh)for(var n of Yh(t))Xh.call(t,n)&&Qh(e,n,t[n]);return e})({},o),r={onChange:this.handleOnChange,value:o.input.value?o.input.value.toJS():[]},Kh(i,qh(r))));var i,r}}Zh.propTypes={children:r().oneOfType([r().node]),onChange:r().func,input:r().instanceOf(Object)};const ed=Zh;var td=Object.defineProperty,nd=Object.defineProperties,od=Object.getOwnPropertyDescriptors,id=Object.getOwnPropertySymbols,rd=Object.prototype.hasOwnProperty,sd=Object.prototype.propertyIsEnumerable,ad=(e,t,n)=>t in e?td(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class ld extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props;t.onChange((0,pe.fromJS)(e))}render(){const e=this.props,{children:n}=e,o=((e,t)=>{var n={};for(var o in e)rd.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&id)for(var o of id(e))t.indexOf(o)<0&&sd.call(e,o)&&(n[o]=e[o]);return n})(e,["children"]);return t().createElement(bc,(i=((e,t)=>{for(var n in t||(t={}))rd.call(t,n)&&ad(e,n,t[n]);if(id)for(var n of id(t))sd.call(t,n)&&ad(e,n,t[n]);return e})({},o),r={onChange:this.handleOnChange,value:o.input.value},nd(i,od(r))),n);var i,r}}ld.propTypes={children:r().oneOfType([r().node]),onChange:r().func,input:r().instanceOf(Object)};const cd=ld;function ud(t,n,...o){const i=(0,e.useRef)();(0,e.useEffect)((()=>{i.current=t}),[t]),(0,e.useEffect)((()=>{if(null!=n){const e=setInterval((function(){i.current(...o)}),n);return()=>clearInterval(e)}}),[n])}})(),module.exports=o})(); //# sourceMappingURL=tyk-ui.js.map \ No newline at end of file diff --git a/lib/tyk-ui.js.map b/lib/tyk-ui.js.map index e73ee530..79feb118 100644 --- a/lib/tyk-ui.js.map +++ b/lib/tyk-ui.js.map @@ -1 +1 @@ -{"version":3,"file":"tyk-ui.js","mappings":"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G,IAAK,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,IAAK,GAAI,IAAK,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,KAAM,GAAI,EAAG,GAAI,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,KAAM,GAAI,MAAO,GAAI,KAAM,GAAI,GAAI,EAAG,IAAK,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAA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O,CAAC,eAAgB,uBAAwB,4BAChDH,MAAO,kEACR,CACCG,MAAOqyD,EACPxyD,MAAO80D,GACR,CACC30D,MAAO,uBACPH,MAAO,aACPpkB,KAAM,YACP,CACCukB,MAAO,eACPH,MAAO,KACPpkB,KAAM,SACP,CACCukB,MAAO,mBACPH,MAAO,yEACPpkB,KAAM,SACP,CACCukB,MAAO,uBACPH,MAAO,UACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,SACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,UACR,CACCG,MAAO,UACPH,MAAO,WAGf7mC,SAAU,CAAC,CACHgnC,MAAO,OACPH,MAAO,QACR,CACCG,MAAO,CACH,eAAgB,uBAAwB,uBAAwB,OAChE,mBAAoB,OACpB,eAAgB,OAAQ,uBAAwB,OAAQ,gBAE5DH,MAAO,IAAM80D,EAAe,UAAYA,EAAe,6DACvDl5E,KAAM,sBACP,CACCukB,MAAO,uBACPH,MAAO,cACR,CACCG,MAAO,mBACPH,MAAO,gwDACR,CACCG,MAAO,uBACPH,MAAO,+lBACR,CACCG,MAAO,mBACPH,MAAO,y2DACR,CACCG,MAAO,aACPH,MAAO80D,GACR,CACC90D,MAAO,GACPG,MAAO,QACPvkB,KAAM,aAGd,MAAS,CACL04E,EAAyBE,aAAa,aACtCS,EAAS,SACT,CACI90D,MAAO,gBACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,OACPH,MAAO,UACPpkB,KAAM,SACP,CACCukB,MAAO,QACPH,MAAO,GACPpkB,KAAM,aAGd,MAAS,CACL,CACIukB,MAAO,0BACPH,MAAO,6CACR,CACCG,MAAO,gBACPH,MAAO,cACPpkB,KAAM,YACP,CACCukB,MAAO,UACPH,MAAO,iDACR,CACCG,MAAO,2BACPH,MAAO,iDACR,CACCG,MAAO,8BACPH,MAAO,MACR,CACCG,MAAO,2BACPH,MAAO,QACPpkB,KAAM,yBACP,CACCukB,MAAO,QACPH,MAAO,IACPpkB,KAAM,YACP,CACC8jB,aAAc,kBAGtB,sBAAyB,CACrB,CACIS,MAAO,oCACPH,MAAO,6CACR,CACCG,MAAO,2BACPH,MAAO,IACPpkB,KAAM,SACP,CACCukB,MAAO,2BACPH,MAAO,KACR,CACCG,MAAO,QACPH,MAAO,IACPpkB,KAAM,YACP,CACC8jB,aAAc,kCAGtB,kBAAqB,CACjB,CACIS,MAAO,SACPH,MAAO,SACP11C,KAAM,CACF,CACI61C,MAAO,SACPH,MAAO,MACPpkB,KAAM,OACP,CACC/kB,QAAS,aAGlB,CACCspC,MAAO,SACPH,MAAO,SACP11C,KAAM,CACF,CACI61C,MAAO,SACPH,MAAO,MACPpkB,KAAM,OACP,CACC/kB,QAAS,cAGlB,CACCspC,MAAO,oBACPH,MAAO,+BACR,CACCG,MAAO,mBACPH,MAAO,gDACR,CACCG,MAAO,mBACPH,MAAO,gDACR,CACCG,MAAO,uBACPH,MAAO,IACPpkB,KAAM,sBACP,CACCukB,MAAO,OACPH,MAAO,QACR,CACCG,MAAO,uBACPH,MAAO,KACR,CACCG,MAAO,QACPH,MAAO,GACPpkB,KAAM,aAGd,mBAAsB,CAClBq5E,EAAS,sBACT,CACI90D,MAAO,qBACPH,MAAO80D,GACR,CACC30D,MAAO,uBACPH,MAAO,KACR,CACCG,MAAO,OACPH,MAAO,QACR,CACCG,MAAO,uBACPH,MAAO,KACR,CACCG,MAAO,QACPH,MAAO,GACPpkB,KAAM,aAGd,SAAY,CACR,CACIukB,MAAO,2BACPH,MAAOg1D,GACR,CACC70D,MAAO,SACPH,MAAO,QACP0B,gBAAgB,GACjB,CACCvB,MAAO,SACPH,MAAO,MACPpkB,KAAM,YACP,CACC8jB,aAAc,WAGtB,QAAW,CACP,CACIS,MAAO,2BACPH,MAAOg1D,GACR,CACC70D,MAAO,SACPH,MAAO,QACP0B,gBAAgB,GACjB,CACCvB,MAAO,SACPH,MAAO,MACPpkB,KAAM,YACP,CACC8jB,aAAc,YAIrB1qC,GAAYA,EAAQkgG,QACrB3sG,KAAKu5C,OAAOqzD,SAASvzD,QAAQ,CACzB5B,MAAO,OAAQM,QAAS,SAAU30C,EAAK+9B,EAAOqX,GAE1C,GADAx4C,KAAKqzB,KAAc,KAAPjwB,EAAapD,KAAK0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E,KAAM,eACP,CACCukB,MAAO,SACPH,MAAOm2D,EAAY,SACnBv6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,OACtBx6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,SACtBx6E,KAAM,aACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,OACtBx6E,KAAM,aACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,SACtBx6E,KAAM,YACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,OACzBz6E,KAAM,eACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,SACzBz6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,OACzBz6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,SACzBz6E,KAAM,aACP,CACCukB,MAAO,mBACPH,MAAO,4EACR,CACCG,MAAO,cACPH,MAAO,2EACR,CACCG,MAAO,eACPH,MAAO,eACR,CACCG,MAAO,eACPH,MAAO,eACR,CACCG,MAAO,CAAC,UAAW,OAAQ,wBAC3BH,MAAO,2DACR,CACCG,MAAO,OACPH,MAAO,QACR,CACCnpC,QAAS,cAEjB,UAAa,CAAC,CACNspC,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,SAAY,CAAC,CACLS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,SAAY,CAAC,CACLS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,QACPpkB,KAAM,YACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,QAAW,CAAC,CACJS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,QACPpkB,KAAM,WACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,aAAgB,CAAC,CACTS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,YAAe,CAAC,CACRS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,YAAe,CAAC,CACRS,MAAO,SACPH,MAAO,QACPpkB,KAAM,eACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,SACPH,MAAO,QACPpkB,KAAM,cACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,UAAa,CAAC,CACNS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,UAAa,CAAC,CACNS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,QACPpkB,KAAM,aACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,SAAY,CAAC,CACLS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,YAAe,CAAC,CACRS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,SACPH,MAAO,QACPpkB,KAAM,cACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,UAAa,CAAC,CACNS,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,iBAAoB,CAAC,CACbS,MAAO,eACPH,MAAO,YACR,CACCG,MAAO,eACPH,MAAO,YACR,CACCG,MAAO,SACPH,MAAO,QACR,CACCG,MAAO,SACPH,MAAO,WACR,CACCG,MAAO,SACPH,MAAO,WACR,CACCG,MAAO,mBACPH,MAAO,cACR,CACCnpC,QAAS,aACV,CACCspC,MAAO,eACPH,MAAO,IACPpkB,KAAM,OACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,qBAEd,UAAa,CAAC,CACN61C,MAAO,mBACPH,MAAO,MAAQy2D,EAAc,iBAC9B,CACCt2D,MAAO,mBACPH,MAAOy2D,GACR,CACCt2D,MAAO,mBACPH,MAAOs2D,EAAU,WAClB,CACCn2D,MAAO,mBACPH,MAAOs2D,EAAU,OAClB,CACCn2D,MAAO,CAAC,cAAe,oBACvBH,MAAO,wBACR,CACCG,MAAOqyD,EACPxyD,MAAO,iCAGnBz3C,KAAKo6C,gBACT,EACA5kC,EAAI7C,SAAS+6F,EAAsBp0D,GACnC32C,EAAQ+qG,qBAAuBA,CAE/B,IAEA1qG,IAAI9C,OAAO,4BAA4B,CAAC,UAAU,UAAU,SAAS,cAAc,+BAA+B,SAAS4B,EAASa,EAASxC,GAAQ,aACrJ,IAAIqV,EAAM1T,EAAQ,iBACdkpG,EAAelpG,EAAQ,eAAeuiG,SACtCA,EAAW1hG,EAAQ0hG,SAAW,SAAUjgB,GACxCpkF,KAAKskG,mBAAqB,IAAIp7F,OAAO,sBAAwBk7E,EAAU,qBAC3E,EACA5uE,EAAI7C,SAAS0xF,EAAU2G,GACvB,WACIhrG,KAAK2zD,mBAAqB,SAAUp2C,EAASqlD,EAAWrnD,GACpD,IACI5Q,EADO4S,EAAQmL,QAAQnN,GACV5Q,MAAM3K,KAAKskG,oBAC5B,GAAI35F,EACA,OAAIA,EAAM,GACC3K,KAAK0kG,oBAAoBnnF,EAAS5S,EAAM,GAAI4Q,EAAK5Q,EAAM/F,OAC9D+F,EAAM,GACC3K,KAAKwkG,iBAAiBjnF,EAAShC,EAAK5Q,EAAM/F,MAAQ+F,EAAM,GAAGpK,QAC/DP,KAAKwkG,iBAAiBjnF,EAAShC,EAE9C,CACH,EAAE9Z,KAAK4iG,EAAS9iG,UAEjB,IAEAyB,IAAI9C,OAAO,kBAAkB,CAAC,UAAU,UAAU,SAAS,cAAc,gBAAgB,kCAAkC,4BAA4B,cAAc,SAAS4B,EAASa,EAASxC,GAAQ,aACxM,IAAIqV,EAAM1T,EAAQ,cACdg1D,EAAWh1D,EAAQ,UAAUu+C,KAC7BqtD,EAAuB5rG,EAAQ,4BAA4B4rG,qBAC3DU,EAAiBtsG,EAAQ,sBAAsBuiG,SAC/CppF,EAAQnZ,EAAQ,YAAYmZ,MAC5BolC,EAAO,WACPrgD,KAAK65C,eAAiB6zD,EACtB1tG,KAAKk8D,aAAe,IAAIkyC,EAAe,OACvCpuG,KAAKujD,WAAavjD,KAAKsgD,iBAC3B,EACA9qC,EAAI7C,SAAS0tC,EAAMyW,GACnB,WACI92D,KAAKi/C,iBAAmB,IACxBj/C,KAAK6/C,iBAAmB,CACpB,IAAK,SACL,IAAK,UAET7/C,KAAKwiD,kBAAoB,SAAUrhB,EAAO93B,EAAMo5C,GAC5C,IAAI5U,EAAS7tC,KAAK4+C,WAAWv1C,GAEzBkvC,EADgBv4C,KAAKugD,eAAezH,cAAczvC,EAAM83B,GACjCoX,OAC3B,OAAIA,EAAOh4C,QAA4C,WAAlCg4C,EAAOA,EAAOh4C,OAAS,GAAGwT,MAGlC,SAATotB,GACY93B,EAAKsB,MAAM,sBAEnBkjC,GAAU4U,GALP5U,CASf,EACA,IAAIwgE,EAAW,CACX,KAAQ,EACR,OAAU,EACV,MAAS,EACT,MAAS,EACT,SAAY,GAEhBruG,KAAK0iD,aAAe,SAAUvhB,EAAO93B,EAAMs5C,GACvC,GAAc,SAAVA,GAA8B,OAAVA,GAA4B,OAAVA,EACtC,OAAO,EACX,IAAIpK,EAASv4C,KAAKugD,eAAezH,cAAczvC,EAAKioD,OAAQnwB,GAAOoX,OACnE,IAAKA,EACD,OAAO,EACX,GACI,IAAI7xC,EAAO6xC,EAAO1jC,YACbnO,IAAsB,WAAbA,EAAKqN,MAAmC,QAAbrN,EAAKqN,MAAkBrN,EAAKpD,MAAMqH,MAAM,WACrF,QAAKjE,GAEgB,WAAbA,EAAKqN,MAAqBs6F,EAAS3nG,EAAKpD,MACpD,EACAtD,KAAK4iD,YAAc,SAAUzhB,EAAOl0B,EAAKsO,GACrCA,GAAO,EACP,IAAIsyB,EAAS7tC,KAAK4+C,WAAW3xC,EAAIyb,QAAQnN,IACrCknC,EAAMx1C,EAAI4xC,eACVhR,EAAOtrC,OAAOkgD,EAAIliD,SAAWkiD,GAC7Bx1C,EAAI2B,OAAO,IAAIqM,EAAMM,EAAKsyB,EAAOttC,OAASkiD,EAAIliD,OAAQgb,EAAKsyB,EAAOttC,QAC1E,EACAP,KAAKuX,IAAM,kBACXvX,KAAK8rG,cAAgB,qBACxB,EAAErqG,KAAK4+C,EAAK9+C,WACboB,EAAQ09C,KAAOA,CAEf,IACoBr9C,IAAIlB,QAAQ,CAAC,oBAAoB,SAASgZ,GACyB3a,IAC3DA,EAAOwC,QAAUmY,EAEzB,8BCzdpB9X,IAAI9C,OAAO,+BAA+B,CAAC,UAAU,UAAU,SAAS,cAAc,kCAAkC,SAAS4B,EAASa,EAASxC,GAAQ,aAC3J,IAAIqV,EAAM1T,EAAQ,cACdw3C,EAAqBx3C,EAAQ,0BAA0Bw3C,mBACvDg1D,EAAoB,SAAUC,GAC9B,IAAIxB,EAAW,mCACf/sG,KAAKu5C,OAAS,CACVj+B,MAAO,CACH,CAAEs8B,MAAO,mBAAoBH,MAAO,kBAAmBpkB,KAAM,SAC7D,CACIukB,MAAO,CAAC,8BAA+B,2BACvCH,MAAO,UAAYs1D,EAAW,IAAK15E,KAAM,0BAE7C,CAAEukB,MAAO,oBAAqBH,MAAO,SAAUpkB,KAAM,WACrD,CACIukB,MAAO,CAAC,qBAAsB,sBAC9BH,MAAO,2BAA4BpkB,KAAM,UAAWkkB,iBAAiB,GAEzE,CAAEjpC,QAAS,OACX,CAAEspC,MAAO,wBAAyBH,MAAO,MACzC,CAAEG,MAAO,oBAAqBH,MAAO,KACrC,CAAEnpC,QAAS,aACX,CAAE6oC,aAAc,aAEpBq3D,uBAAwB,CAAC,CACjB52D,MAAO,sDACPH,MAAOs1D,GACR,CACCn1D,MAAO,6CACPH,MAAO,KACR,CACCnpC,QAAS,cACV,CACCA,QAAS,UACV,CACCspC,MAAO,2BACPH,MAAO,OACPpkB,KAAM,UAEdo7E,QAAS,CACL,CAAEngG,QAAS,cACX,CAAEA,QAAS,UACX,CAAEspC,MAAO,qBAAsBH,MAAO,IAAKpkB,KAAM,SACjD,CAAEukB,MAAO,aAAcH,MAAO,mBAC9B,CAAEG,MAAO,yBAA0BH,MAAO,MAAO11C,KAAM,eAE3D2sG,WAAY,CAAC,CACL92D,MAAO,WACPH,MAAO,QACR,CACCG,MAAO,6BACPH,MAAO,IACPpkB,KAAM,OACP,CACCukB,MAAO,CAAC,8BAA+B,2BACvCH,MAAO,UAAYs1D,EAAW,IAC9BhrG,KAAM,CAAC,CACC61C,MAAO,OACPH,MAAO,QAEX,CACIG,MAAO,8BACPH,MAAO,IACPpkB,KAAM,OAEV,CAAE/kB,QAAS,aAEvBqgG,MAAO,CACH,CAAE/2D,MAAO,mBAAoBH,MAAO,UAAWpkB,KAAM,SACrD,CAAEukB,MAAO,WAAYH,MAAO,QAC5B,CAAEG,MAAO,WAAYH,MAAO,4BAEhC8J,QAAS,CACL,CAAE3J,MAAO,kBAAmBH,MAAO,SAAOpkB,KAAM,SAChD,CAAE8jB,aAAc,gBAEpBg2D,UAAW,CAAC,CACJv1D,MAAO,yCACPH,MAAO,gEAEfm3D,eAAgB,CAAC,CACTh3D,MAAO,yDACPH,MAAO,gEAEfpqC,IAAK,CAAC,CACEuqC,MAAO,CAAC,oCAAqC,wCAAyC,yBACtFH,MAAO,mBAAqBs1D,EAAW,MAAQA,EAAW,IAC1D15E,KAAM,CACF,CAAE/kB,QAAS,cACX,CAAEspC,MAAO,qCAAsCH,MAAO,MAAOpkB,KAAM,YAG/Ew7E,eAAgB,CACZ,CAAEj3D,MAAO,0BAA2BH,MAAO,SAE/Cq3D,WAAY,CACR,CAAEl3D,MAAO,sBAAuBH,MAAO,SAE3CpzC,OAAQ,CAAC,CACDuzC,MAAO,aACPH,MAAO,IACP11C,KAAM,CACF,CAAE61C,MAAO,aAAcH,MAAO,IAAKpkB,KAAM,OACzC,CAAE8jB,aAAc,gBAErB,CACCS,MAAO,aACPH,MAAO,IACP11C,KAAM,CACF,CAAE61C,MAAO,aAAcH,MAAO,IAAKpkB,KAAM,OACzC,CAAE8jB,aAAc,iBAG5Bx8B,WAAY,CAAC,CACLi9B,MAAO,kCACPH,MAAOs1D,GACR,CACCn1D,MAAO,wCACPH,MAAO,KACR,CACCnpC,QAAS,kBACV,CACCA,QAAS,oBAEjBygG,gBAAiB,CAAC,CACVn3D,MAAO,6BACPH,MAAO,IACP11C,KAAM,CACF,CAAE61C,MAAO,6BAA8BH,MAAO,IAAKpkB,KAAM,OACzD,CAAE/kB,QAAS,kBACX,CAAE6oC,aAAc,gCAErB,CACCS,MAAO,6BACPH,MAAO,IACP11C,KAAM,CACF,CAAE61C,MAAO,6BAA8BH,MAAO,IAAKpkB,KAAM,OACzD,CAAE/kB,QAAS,kBACX,CAAE6oC,aAAc,kCAI5Bn3C,KAAK+S,cAAgBu7F,GACrBtuG,KAAKo6C,gBACb,GACA,WACIp6C,KAAKgvG,cAAgB,SAAUn1D,EAAgBJ,EAAQpsC,GACnDrN,KAAKu5C,OAAOlsC,IAAIgsC,QAAQ,CACpBzB,MAAO,CAAC,oCAAqC,YAAcvqC,EAAM,iBACjEoqC,MAAO,OAASpqC,EAAM,eACtBgmB,KAAM,CACF,CAAE/kB,QAAS,cACX,CAAEspC,MAAO,qCAAsCH,MAAO,MAAOpkB,KAAMomB,EAAS,YAGpFz5C,KAAKu5C,OAAOlsC,EAAM,QAAU,CACxB,CAAEiB,QAAS,cACX,CAAEspC,MAAO,qCAAsCH,MAAO,MAAOpkB,KAAM,QAC/D0kB,QAAS,SAAUz0C,EAAO01C,EAAcR,GAEpC,OADAA,EAAM5wC,OAAO,GACN5H,KAAK43C,KAChB,IAER53C,KAAK45C,WAAWC,EAAgBJ,EAAQ,CAAC,CACjC7B,MAAO,CAAC,wCAAyC,YAAcvqC,EAAM,iBACrEoqC,MAAO,QAAUpqC,EAAM,eACvBgmB,KAAMhmB,EAAM,QACb,CACCuqC,MAAO,mBACPH,MAAO,mBACR,CACCG,MAAO,mBACPH,MAAO,YAEnB,CACH,GAAEh2C,KAAK63C,EAAmB/3C,WAC3BiU,EAAI7C,SAAS27F,EAAmBh1D,GAChC32C,EAAQ2rG,kBAAoBA,CAE5B,IAEAtrG,IAAI9C,OAAO,yBAAyB,CAAC,UAAU,UAAU,SAAS,cAAc,qBAAqB,qBAAqB,iBAAiB,SAAS4B,EAASa,EAASxC,GAAQ,aAC9K,IAAIqV,EAAM1T,EAAQ,iBACdu5C,EAAYv5C,EAAQ,gBAAgBu5C,UACpCM,EAAgB75C,EAAQ,wBAAwB65C,cAEpD,SAASgqD,EAAG/tD,EAAO7jC,GACf,OAAO6jC,GAASA,EAAM7jC,KAAKjQ,YAAYiQ,EAAO,SAAW,CAC7D,CAHWjS,EAAQ,kBAInB,IAAImtG,EAAe,WACfjvG,KAAKmO,IAAI,iBAAkB,aAAa,SAAUgzB,EAAOoB,EAAQ1T,EAAQtR,EAAS2H,GAC9E,GAAY,KAARA,GAAuB,KAARA,EAAa,CAC5B,IAAIg6B,EAAQh6B,EACRmd,EAAW9kB,EAAQtQ,IAAIyyB,aAAa7Q,EAAO3C,qBAC/C,GAAiB,KAAbmW,GAAgC,MAAbA,GAAgC,KAAZA,GAAmBxT,EAAOkvB,2BACjE,MAAO,CACH74B,KAAMg6B,EAAQ7c,EAAW6c,EACzBl4B,WAAW,GAGnB,IAAIC,EAAS4H,EAAOkgB,oBAEhBqQ,EADO7hC,EAAQtQ,IAAIyb,QAAQzB,EAAO1L,KACjBuyB,UAAU7mB,EAAOzL,OAAQyL,EAAOzL,OAAS,GAC1D4X,EAAW,IAAIuoB,EAAcp+B,EAAS0J,EAAO1L,IAAK0L,EAAOzL,QACzDo8B,EAAQxkB,EAASkpB,kBACrB,GAAI8C,GAAaF,IAAUymD,EAAG/tD,EAAO,oBAAsB+tD,EAAG/tD,EAAO,WACjE,MAAO,CACH1yB,KAAM,GACN8B,UAAW,CAAC,EAAG,IAKvB,GAFK4wB,IACDA,EAAQxkB,EAASgpB,iBAChBxE,EACD,OACJ,KAAO+tD,EAAG/tD,EAAO,mBAAqB+tD,EAAG/tD,EAAO,eAC5CA,EAAQxkB,EAASgpB,eAErB,IAAI8yD,GAAc9vD,GAAaA,EAAUz0C,MAAM,MAC/C,GAAIg7F,EAAG/tD,EAAO,sBAAwBs3D,GAA2B,KAAb9vD,IAAsBumD,EAAG/tD,EAAO,2BAA6Bs3D,GAA2B,KAAb9vD,GAC3H,MAAO,CACHl6B,KAAMg6B,EAAQA,EACdl4B,UAAW,CAAC,EAAG,GAG3B,CACJ,IACAhnB,KAAKmO,IAAI,iBAAkB,YAAY,SAAUgzB,EAAOoB,EAAQ1T,EAAQtR,EAAS7B,GAC7E,IAAI2mB,EAAW9kB,EAAQtQ,IAAIyyB,aAAahkB,GACxC,IAAKA,EAAMgB,gBAA8B,KAAZ2lB,GAA+B,KAAZA,IACjC9kB,EAAQtQ,IAAIyb,QAAQhN,EAAMJ,MAAMC,KACtBuyB,UAAUpyB,EAAMJ,MAAME,OAAS,EAAGE,EAAMJ,MAAME,OAAS,IAC3D6mB,EAEb,OADA3mB,EAAMvV,IAAIqV,SACHE,CAGnB,IACA1b,KAAKmO,IAAI,cAAe,aAAa,SAAUgzB,EAAOoB,EAAQ1T,EAAQtR,EAAS2H,GAC3E,GAAY,KAARA,EAAa,CACb,IAAIrhB,EAAWgrB,EAAO3C,oBAAoB5Q,MACtC8X,EAAW,IAAIuoB,EAAcp+B,EAAS1Z,EAAS0X,IAAK1X,EAAS2X,QAC7Do8B,EAAQxkB,EAASkpB,mBAAqBlpB,EAASgpB,eACnD,IAAKxE,KAAW+tD,EAAG/tD,EAAO,aAAe+tD,EAAG/tD,EAAO,mBAAqB+tD,EAAG/tD,EAAO,mBAAqB+tD,EAAG/tD,EAAO,qBAAuB+tD,EAAG/tD,EAAO,oBAC9I,OACJ,GAAI+tD,EAAG/tD,EAAO,6BACV,OACJ,GAAI+tD,EAAG/tD,EAAO,mBAAoB,CAC9B,IAAIu3D,EAAiB/7E,EAASopB,wBAA0B5E,EAAMt0C,MAAM/C,OACpE,GAAIsD,EAAS2X,OAAS2zF,EAClB,OACJ,GAAItrG,EAAS2X,QAAU2zF,EAAgB,CACnC,IAAIlJ,EAAY7yE,EAASipB,cACzB,GAAI4pD,GAAaN,EAAGM,EAAW,mBAC3B,OACJ7yE,EAASgpB,cACb,CACJ,CACA,GAAI,QAAQ3wC,KAAK8R,EAAQmL,QAAQ7kB,EAAS0X,KAAKhZ,MAAMsB,EAAS2X,SAC1D,OACJ,MAAQmqF,EAAG/tD,EAAO,aAEd,GAAmB,MADnBA,EAAQxkB,EAASgpB,gBACP94C,MAAc,CACpBs0C,EAAQxkB,EAASipB,cACjB,KACJ,CAEJ,IAAI+yD,EAAWh8E,EAASmpB,qBACpB8yD,EAAcj8E,EAASopB,wBAC3B,GAAImpD,EAAGvyE,EAASgpB,eAAgB,gBAC5B,OACJ,IAAI5uC,EAAUoqC,EAAMt0C,MAGpB,GAFI8rG,GAAYvrG,EAAS0X,MACrB/N,EAAUA,EAAQsgC,UAAU,EAAGjqC,EAAS2X,OAAS6zF,IACjDrvG,KAAKsvG,aAAan3F,eAAe3K,EAAQpD,eACzC,OACJ,MAAO,CACH8a,KAAM,MAAa1X,EAAU,IAC7BwZ,UAAW,CAAC,EAAG,GAEvB,CACJ,IACAhnB,KAAKmO,IAAI,aAAc,aAAa,SAAUgzB,EAAOoB,EAAQ1T,EAAQtR,EAAS2H,GAC1E,GAAY,MAARA,EAAc,CACd,IAAI+B,EAAS4H,EAAOkgB,oBAChB1lC,EAAOkU,EAAQmL,QAAQzB,EAAO1L,KAC9B6X,EAAW,IAAIuoB,EAAcp+B,EAAS0J,EAAO1L,IAAK0L,EAAOzL,QACzDo8B,EAAQxkB,EAASkpB,kBACrB,GAAI1E,IAA8C,IAArCA,EAAM7jC,KAAK5R,QAAQ,aAAqB,CACjD,GAAmB,MAAfy1C,EAAMt0C,MACN,OACJ,KAAOs0C,IAA6C,IAApCA,EAAM7jC,KAAK5R,QAAQ,aAC/By1C,EAAQxkB,EAASgpB,eAErB,IAAKxE,EACD,OAEJ,IAAIvqC,EAAMuqC,EAAMt0C,MACZiY,EAAM6X,EAASmpB,qBAEnB,KADA3E,EAAQxkB,EAASgpB,kBACgC,IAAnCxE,EAAM7jC,KAAK5R,QAAQ,WAC7B,OAEJ,GAAInC,KAAKsvG,eAAiBtvG,KAAKsvG,aAAajiG,GAAM,CAC9C,IAAI44F,EAAY1oF,EAAQ2+B,WAAWj1B,EAAO1L,IAAK0L,EAAOzL,OAAS,GAE3D+zF,GADAlmG,EAAOkU,EAAQmL,QAAQnN,GACVvb,KAAK4+C,WAAWv1C,IAC7BwkC,EAAS0hE,EAAahyF,EAAQshC,eAClC,OAAIonD,GAAiC,OAApBA,EAAU3iG,MAChB,CACH4hB,KAAM,KAAO2oB,EAAS,KAAO0hE,EAC7BvoF,UAAW,CAAC,EAAG6mB,EAAOttC,OAAQ,EAAGstC,EAAOttC,SAIrC,CACH2kB,KAAM,KAAO2oB,EAGzB,CACJ,CACJ,CACJ,GACJ,EACAr4B,EAAI7C,SAASs8F,EAAc5zD,GAC3B14C,EAAQssG,aAAeA,CAEvB,IAEAjsG,IAAI9C,OAAO,uBAAuB,CAAC,UAAU,UAAU,SAAS,cAAc,YAAY,+BAA+B,SAAS4B,EAASa,EAASxC,GAAQ,aAC5J,IAAIqV,EAAM1T,EAAQ,iBACdmZ,EAAQnZ,EAAQ,eAAemZ,MAC/B+vF,EAAelpG,EAAQ,eAAeuiG,SACtCA,EAAW1hG,EAAQ0hG,SAAW,SAAUiL,EAAcE,GACtDxE,EAAavpG,KAAKzB,MAClBA,KAAKsvG,aAAeA,GAAgB,CAAC,EACrCtvG,KAAKwvG,gBAAkBh6F,EAAIxC,MAAM,CAAC,EAAGhT,KAAKsvG,cACtCE,GACAh6F,EAAIxC,MAAMhT,KAAKwvG,gBAAiBA,EACxC,EACAh6F,EAAI7C,SAAS0xF,EAAU2G,GACvB,IAAIyE,EAAM,WACNzvG,KAAKwlG,QAAU,GACfxlG,KAAK49C,SAAU,EACf59C,KAAK0vG,aAAc,EACnB1vG,KAAKsb,MAAQ,CAAEC,IAAK,EAAGC,OAAQ,GAC/Bxb,KAAKmG,IAAM,CAAEoV,IAAK,EAAGC,OAAQ,EACjC,EACA,SAASmqF,EAAG/tD,EAAO7jC,GACf,OAAO6jC,EAAM7jC,KAAKjQ,YAAYiQ,EAAO,SAAW,CACpD,EACA,WACI/T,KAAK0zD,cAAgB,SAAUn2C,EAASqlD,EAAWrnD,GAC/C,IAAIlO,EAAMrN,KAAK2vG,mBAAmBpyF,EAAShC,GAC3C,OAAKlO,EAEDA,EAAIuwC,UAAavwC,EAAIm4F,SAAWn4F,EAAIqiG,YACf,iBAAd9sC,EAA+B,MAAQ,IAC7Cv1D,EAAIm4F,SAAWn4F,EAAIqiG,aAAe1vG,KAAKsvG,aAAan3F,eAAe9K,EAAIm4F,QAAQp7F,gBAEhFpK,KAAK4vG,kBAAkBryF,EAAShC,EAAKlO,EAAIm4F,QAASn4F,EAAIlH,IAAIqV,QADnD,GAGJ,QAPIxb,KAAK6vG,qBAAqBtyF,EAAShC,EAQlD,EACAvb,KAAK6vG,qBAAuB,SAAUtyF,EAAShC,GAC3C,MAAI,UAAU9P,KAAK8R,EAAQsrC,SAASttC,KAAS,MAAM9P,KAAK8R,EAAQmL,QAAQnN,IAC7D,QACJ,EACX,EACAvb,KAAK2vG,mBAAqB,SAAUpyF,EAAShC,GAGzC,IAFA,IAAIg9B,EAASh7B,EAAQ0+B,UAAU1gC,GAC3BlO,EAAM,IAAIoiG,EACL9tG,EAAI,EAAGA,EAAI42C,EAAOh4C,OAAQoB,IAAK,CACpC,IAAIi2C,EAAQW,EAAO52C,GACnB,GAAIgkG,EAAG/tD,EAAO,YAAa,CAIvB,GAHAvqC,EAAIlH,IAAIqV,OAASnO,EAAIiO,MAAME,OAASo8B,EAAMt0C,MAAM/C,OAChD8M,EAAIuwC,QAAU+nD,EAAG/tD,EAAO,kBACxBA,EAAQW,IAAS52C,IAEb,OAAO,KAGX,IAFA0L,EAAIm4F,QAAU5tD,EAAMt0C,MACpB+J,EAAIlH,IAAIqV,QAAUo8B,EAAMt0C,MAAM/C,OACzBoB,IAAKA,EAAI42C,EAAOh4C,OAAQoB,IAGzB,GAFAi2C,EAAQW,EAAO52C,GACf0L,EAAIlH,IAAIqV,QAAUo8B,EAAMt0C,MAAM/C,OAC1BolG,EAAG/tD,EAAO,aAAc,CACxBvqC,EAAIqiG,YAA6B,MAAf93D,EAAMt0C,MACxB,KACJ,CAEJ,OAAO+J,CACX,CACK,GAAIs4F,EAAG/tD,EAAO,aAEf,OADAvqC,EAAIqiG,YAA6B,MAAf93D,EAAMt0C,MACjB+J,EAEXA,EAAIiO,MAAME,QAAUo8B,EAAMt0C,MAAM/C,MACpC,CACA,OAAO,IACX,EACAP,KAAK4vG,kBAAoB,SAAUryF,EAAShC,EAAKiqF,EAASrqF,GAGtD,IAFA,IAAIo9B,EAASh7B,EAAQ0+B,UAAU1gC,GAC3BC,EAAS,EACJ7Z,EAAI,EAAGA,EAAI42C,EAAOh4C,OAAQoB,IAAK,CACpC,IAAIi2C,EAAQW,EAAO52C,GAEnB,MADA6Z,GAAUo8B,EAAMt0C,MAAM/C,QACT4a,IAETwqF,EAAG/tD,EAAO,kBACVA,EAAQW,EAAO52C,EAAI,KACNi2C,EAAMt0C,OAASkiG,EACxB,OAAO,CAEnB,CACA,OAAO,CACX,EACAxlG,KAAK2zD,mBAAqB,SAAUp2C,EAASqlD,EAAWrnD,GACpD,IAAIu0F,EAAOvyF,EAAQo4C,gBAAgB,CAAEp6C,IAAKA,EAAKC,OAAQ,IACvD,OAAIs0F,EACO,IAAI70F,EAAM60F,EAAKp5C,QAAQvwD,IAAIoV,IAAKu0F,EAAKp5C,QAAQvwD,IAAIqV,OAAQs0F,EAAKn5C,SAASr7C,MAAMC,IAAKu0F,EAAKn5C,SAASr7C,MAAME,QAGtGxb,KAAK6vG,qBAAqBtyF,EAAShC,IACnCgC,EAAQi2C,oBAAoBj4C,EAAKgC,EAAQmL,QAAQnN,GAAKhb,OAErE,CACH,GAAEkB,KAAK4iG,EAAS9iG,UAEjB,IAEAyB,IAAI9C,OAAO,eAAe,CAAC,UAAU,UAAU,SAAS,cAAc,eAAe,gBAAgB,+BAA+B,yBAAyB,uBAAuB,6BAA6B,SAAS4B,EAASa,EAASxC,GAAQ,aACpP,IAAIqV,EAAM1T,EAAQ,cACd0V,EAAO1V,EAAQ,eACfg1D,EAAWh1D,EAAQ,UAAUu+C,KAC7BiuD,EAAoBxsG,EAAQ,yBAAyBwsG,kBACrDW,EAAentG,EAAQ,mBAAmBmtG,aAC1Cc,EAAcjuG,EAAQ,iBAAiBuiG,SACvC/I,EAAex5F,EAAQ,2BAA2Bw5F,aAClDj7C,EAAO,WACPrgD,KAAK65C,eAAiBy0D,EACtBtuG,KAAKujD,WAAa,IAAI0rD,EACtBjvG,KAAKk8D,aAAe,IAAI6zC,CAC5B,EACAv6F,EAAI7C,SAAS0tC,EAAMyW,GACnB,WACI92D,KAAKsvG,aAAe93F,EAAKlQ,WAAW,IACpCtH,KAAK2gD,aAAe,CAAErlC,MAAO,UAAQnV,IAAK,UAC1CnG,KAAK6iD,aAAe,SAAUtlC,GAC1B,IAAIg+E,EAAS,IAAID,EAAa,CAAC,OAAQ,sBAAuB,UAQ9D,OAPAC,EAAOsB,iBAAiBt/E,EAAQgzB,eAChCgrD,EAAOrnF,GAAG,SAAS,SAAU/K,GACzBoU,EAAQq7C,eAAezvD,EAAEkM,KAC7B,IACAkmF,EAAOrnF,GAAG,aAAa,WACnBqJ,EAAQ09C,kBACZ,IACOsgC,CACX,EACAv7F,KAAKuX,IAAM,cACd,EAAE9V,KAAK4+C,EAAK9+C,WACboB,EAAQ09C,KAAOA,CAEf,IACoBr9C,IAAIlB,QAAQ,CAAC,iBAAiB,SAASgZ,GAC4B3a,IAC3DA,EAAOwC,QAAUmY,EAEzB,8BCldpB9X,IAAI9C,OAAO,uBAAuB,CAAC,UAAU,UAAU,WAAW,SAAS4B,EAASa,EAASxC,GAAQA,EAAOwC,QAAU,uyFAEtH,IAEAK,IAAI9C,OAAO,mBAAmB,CAAC,UAAU,UAAU,SAAS,uBAAuB,gBAAgB,SAAS4B,EAASa,EAASxC,GAAQwC,EAAQ0U,QAAS,EACvJ1U,EAAQ2U,SAAW,aACnB3U,EAAQmK,QAAUhL,EAAQ,gBAChBA,EAAQ,cACdkN,gBAAgBrM,EAAQmK,QAASnK,EAAQ2U,UAAU,EAEvD,IACoBtU,IAAIlB,QAAQ,CAAC,qBAAqB,SAASgZ,GACwB3a,IAC3DA,EAAOwC,QAAUmY,EAEzB,oCCbhBA,EAAI,EAAQ,KAEdnY,EAAQ,EAAamY,EAAEk1F,WACDl1F,EAAEm1F,qBCH1B,IAAIC,EAAoC,oBAAZC,QACxBC,EAAwB,mBAARC,IAChBC,EAAwB,mBAAR/qB,IAChBgrB,EAAwC,mBAAhBC,eAAgCA,YAAYC,OAIxE,SAASC,EAAM/pG,EAAGmsB,GAEhB,GAAInsB,IAAMmsB,EAAG,OAAO,EAEpB,GAAInsB,GAAKmsB,GAAiB,iBAALnsB,GAA6B,iBAALmsB,EAAe,CAC1D,GAAInsB,EAAEoM,cAAgB+f,EAAE/f,YAAa,OAAO,EAE5C,IAAIxS,EAAQoB,EAAGmD,EA6BX6rG,EA5BJ,GAAItrG,MAAMoB,QAAQE,GAAI,CAEpB,IADApG,EAASoG,EAAEpG,SACGuyB,EAAEvyB,OAAQ,OAAO,EAC/B,IAAKoB,EAAIpB,EAAgB,GAARoB,KACf,IAAK+uG,EAAM/pG,EAAEhF,GAAImxB,EAAEnxB,IAAK,OAAO,EACjC,OAAO,CACT,CAuBA,GAAIyuG,GAAWzpG,aAAa0pG,KAASv9E,aAAau9E,IAAM,CACtD,GAAI1pG,EAAEonC,OAASjb,EAAEib,KAAM,OAAO,EAE9B,IADA4iE,EAAKhqG,EAAEiqG,YACEjvG,EAAIgvG,EAAGt9E,QAAQC,UACjBR,EAAE4yD,IAAI/jF,EAAE2B,MAAM,IAAK,OAAO,EAEjC,IADAqtG,EAAKhqG,EAAEiqG,YACEjvG,EAAIgvG,EAAGt9E,QAAQC,UACjBo9E,EAAM/uG,EAAE2B,MAAM,GAAIwvB,EAAEphB,IAAI/P,EAAE2B,MAAM,KAAM,OAAO,EACpD,OAAO,CACT,CAEA,GAAIgtG,GAAW3pG,aAAa4+E,KAASzyD,aAAayyD,IAAM,CACtD,GAAI5+E,EAAEonC,OAASjb,EAAEib,KAAM,OAAO,EAE9B,IADA4iE,EAAKhqG,EAAEiqG,YACEjvG,EAAIgvG,EAAGt9E,QAAQC,UACjBR,EAAE4yD,IAAI/jF,EAAE2B,MAAM,IAAK,OAAO,EACjC,OAAO,CACT,CAGA,GAAIitG,GAAkBC,YAAYC,OAAO9pG,IAAM6pG,YAAYC,OAAO39E,GAAI,CAEpE,IADAvyB,EAASoG,EAAEpG,SACGuyB,EAAEvyB,OAAQ,OAAO,EAC/B,IAAKoB,EAAIpB,EAAgB,GAARoB,KACf,GAAIgF,EAAEhF,KAAOmxB,EAAEnxB,GAAI,OAAO,EAC5B,OAAO,CACT,CAEA,GAAIgF,EAAEoM,cAAgB7J,OAAQ,OAAOvC,EAAE9B,SAAWiuB,EAAEjuB,QAAU8B,EAAEkqG,QAAU/9E,EAAE+9E,MAK5E,GAAIlqG,EAAEmqG,UAAYxvG,OAAOC,UAAUuvG,SAAgC,mBAAdnqG,EAAEmqG,SAA+C,mBAAdh+E,EAAEg+E,QAAwB,OAAOnqG,EAAEmqG,YAAch+E,EAAEg+E,UAC3I,GAAInqG,EAAEnF,WAAaF,OAAOC,UAAUC,UAAkC,mBAAfmF,EAAEnF,UAAiD,mBAAfsxB,EAAEtxB,SAAyB,OAAOmF,EAAEnF,aAAesxB,EAAEtxB,WAKhJ,IADAjB,GADAuE,EAAOxD,OAAOwD,KAAK6B,IACLpG,UACCe,OAAOwD,KAAKguB,GAAGvyB,OAAQ,OAAO,EAE7C,IAAKoB,EAAIpB,EAAgB,GAARoB,KACf,IAAKL,OAAOC,UAAU4W,eAAe1W,KAAKqxB,EAAGhuB,EAAKnD,IAAK,OAAO,EAKhE,GAAIuuG,GAAkBvpG,aAAawpG,QAAS,OAAO,EAGnD,IAAKxuG,EAAIpB,EAAgB,GAARoB,KACf,IAAiB,WAAZmD,EAAKnD,IAA+B,QAAZmD,EAAKnD,IAA4B,QAAZmD,EAAKnD,KAAiBgF,EAAEoqG,YAarEL,EAAM/pG,EAAE7B,EAAKnD,IAAKmxB,EAAEhuB,EAAKnD,KAAM,OAAO,EAK7C,OAAO,CACT,CAEA,OAAOgF,GAAMA,GAAKmsB,GAAMA,CAC1B,CAGA3yB,EAAOwC,QAAU,SAAiBgE,EAAGmsB,GACnC,IACE,OAAO49E,EAAM/pG,EAAGmsB,EAClB,CAAE,MAAOjyB,GACP,IAAMA,EAAM2V,SAAW,IAAI7L,MAAM,oBAO/B,OADA/J,QAAQwV,KAAK,mDACN,EAGT,MAAMvV,CACR,CACF,wBC1IAV,EAAOwC,QAAUb,QAAQ,eCCrBkvG,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqB7vG,IAAjB8vG,EACH,OAAOA,EAAaxuG,QAGrB,IAAIxC,EAAS6wG,EAAyBE,GAAY,CACjDruG,GAAIquG,EACJE,QAAQ,EACRzuG,QAAS,CAAC,GAUX,OANA0uG,EAAoBH,GAAU/wG,EAAQA,EAAOwC,QAASsuG,GAGtD9wG,EAAOixG,QAAS,EAGTjxG,EAAOwC,OACf,CCzBAsuG,EAAoBK,KAAO,WAC1B,MAAM,IAAIh8F,MAAM,iCACjB,ECDA27F,EAAoBtkG,EAAKxM,IACxB,IAAIoxG,EAASpxG,GAAUA,EAAOqxG,WAC7B,IAAOrxG,EAAiB,QACxB,IAAM,EAEP,OADA8wG,EAAoBp+E,EAAE0+E,EAAQ,CAAE5qG,EAAG4qG,IAC5BA,CAAM,ECLdN,EAAoBp+E,EAAI,CAAClwB,EAAS8uG,KACjC,IAAI,IAAIzsG,KAAOysG,EACXR,EAAoB/rG,EAAEusG,EAAYzsG,KAASisG,EAAoB/rG,EAAEvC,EAASqC,IAC5E1D,OAAO+B,eAAeV,EAASqC,EAAK,CAAEzB,YAAY,EAAMmO,IAAK+/F,EAAWzsG,IAE1E,ECNDisG,EAAoB/rG,EAAI,CAAChC,EAAKwuG,IAAUpwG,OAAOC,UAAU4W,eAAe1W,KAAKyB,EAAKwuG,GCClFT,EAAoBl7D,EAAKpzC,IACH,oBAAXwwB,QAA0BA,OAAOw+E,aAC1CrwG,OAAO+B,eAAeV,EAASwwB,OAAOw+E,YAAa,CAAEruG,MAAO,WAE7DhC,OAAO+B,eAAeV,EAAS,aAAc,CAAEW,OAAO,GAAO,ECL9D2tG,EAAoBW,IAAOzxG,IAC1BA,EAAO0xG,MAAQ,GACV1xG,EAAOu0D,WAAUv0D,EAAOu0D,SAAW,IACjCv0D,GCHR8wG,EAAoBj1F,EAAI,ykDCAxB,MAAM,EAA+Bla,QAAQ,sBCA7C,MAAM,EAA+BA,QAAQ,2BCE7C,MAEA,GAFyB,IAAAgwG,iBCEzB,GAF6B,IAAAA,0OCC7B,SAASC,EAAK,YACZnlG,UAAAA,EAAA,OACAolG,EAAM,KACNj+F,EAAI,OACJk+F,GAJY,EAKTC,+JAAA,CALS,EAKT,CAJH,YACA,SACA,OACA,WAgBA,OAAO,kBAAC,yHAAEtlG,UAbV,WACE,MAAMgzE,EAAaoyB,GAAU,KAG7B,MAAO,CACL,WACe,OAAfpyB,GAAuBA,EACvB,GAAGA,KAAc7rE,IALe,OAAf6rE,EAAsB,MAAMqyB,GAAU,YAAc,GAOrErlG,GACAoJ,OAAO4uB,SAASpiC,KAAK,IACzB,CAEqB2vG,IAAqBD,GAC5C,CAEAH,EAAKK,UAAY,CAEfxlG,UAAW,WAEXolG,OAAQ,WAERj+F,KAAM,WAAiBs+F,WAEvBJ,OAAQ,YAGV,UC/BA,SAASK,GAAY,KAAE9vC,IACrB,MAAM,UAAE+vC,EAAS,SAAE59F,EAAQ,aAAE69F,IAAiB,IAAAC,YAAW,GAEnDC,EAAWH,EAAY,eAAiB,aACxCtkG,EAAU,CACd,yBACA0G,GAAY,oCACZqB,OAAO4uB,SAASpiC,KAAK,KACjBmwG,EACJ,kBAAC,UACC/lG,UAAWqB,EACX2kG,QAASJ,EACTz+F,KAAK,SACL,aAAW,mBAEX,kBAAC,EAAI,CAACnH,UAAU,qBAAqBmH,KAAM2+F,KAI/C,OAAOlwC,EACH,kBAAC,OAAI51D,UAAU,kCAAkC+lG,GACjDA,CACN,CAEAL,EAAYF,UAAY,CACtB5vC,KAAM,UAGR,UCzBA,SAASqwC,GACPN,UAAWO,EAAa,SACxBp+C,EAAQ,UACR9nD,EAAS,SACT+H,GACCo+F,GACD,MAAM,MAAE7N,IAAU,IAAAuN,YAAW,IACtBF,EAAWS,IAAgB,IAAAC,UAASH,GAErCN,EAAe,KACf79F,GAIJq+F,GAAcT,EAAU,EAGpBtkG,GAAU,IAAAilG,UAAQ,IAAM,CAC5B,sBACAhO,EAAMiO,gBACF,yCAAyCjO,EAAMrhG,WAC/C,yCACJ+I,GACc,IAAd2lG,GAAuB,+BACvBv8F,OAAO4uB,SAASpiC,KAAK,MAAM,CAAC0iG,EAAOt4F,EAAW2lG,IAE1Ca,GAAe,IAAAF,UAAQ,KAAM,CACjCX,YACA59F,WACA69F,kBACE,CAACD,EAAW59F,EAAU69F,IAE1B,OACE,kBAAC,OAAIO,MAAUnmG,UAAWqB,GACxB,kBAAC,EAAqBolG,SAArB,CAA8B/vG,MAAO8vG,GACnClO,EAAMiO,iBACL,kBAAC,EAAW,CAAC3wC,MAAI,IAElB9N,GAIT,CAEAm+C,EAAcT,UAAY,CACxB19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEF69C,UAAW,SACX3lG,UAAW,WACX+H,SAAU,UAGZk+F,EAAcS,aAAe,CAC3Bf,WAAW,GAGb,SAAe,IAAAgB,YAAWV,GC7D1B,SAASW,GAAoB,UAAE5mG,EAAS,SAAE8nD,IACxC,MAAM,UAAE69C,EAAS,SAAE59F,EAAQ,aAAE69F,IAAiB,IAAAC,YAAW,IACnD,kBAAEgB,EAAiB,MAAEvO,IAAU,IAAAuN,YAAW,GAC1CC,EAAWH,EAAY,eAAiB,aACxCtkG,EAAU,CACd,6BACAwlG,GAAqB,+BACrB7mG,GACAoJ,OAAO4uB,SAASpiC,KAAK,KAEvB,OACE,kBAAC,OAAIoK,UAAWqB,GAEXwlG,EAYG,qCACIvO,EAAMiO,iBAAsC,SAAnBjO,EAAMrhG,UAC/B,kBAAC,EAAW,MAEd,kBAAC,WAAK6wD,IACJwwC,EAAMiO,iBAAsC,UAAnBjO,EAAMrhG,UAC/B,kBAAC,EAAW,OAhBhB,kBAAC,UACC+I,UAAW+H,EAAW,mCAAqC,GAC3Di+F,QAASJ,EACTz+F,KAAK,UAEL,kBAAC,YAAM2gD,GACP,kBAAC,EAAI,CAAC9nD,UAAU,qBAAqBmH,KAAM2+F,KAiBzD,CAEAc,EAAoBpB,UAAY,CAC9B19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEF9nD,UAAW,YAGb,UC1DM,EAA+B9K,QAAQ,0BCEvC4xG,EAAWnnG,GACVA,EAOE,CACLoD,MAAOpD,EAAG6D,YACVP,OAAQtD,EAAGgoB,cARJ,CACL5kB,MAAO,EACPE,OAAQ,GAoCd,EA1B0BkjG,IACxB,MAAOY,EAAeC,IAAoB,IAAAX,UAASS,EAAQX,EAAMA,EAAIc,QAAU,CAAC,IAC1EC,GAAe,IAAAC,cAAY,KAC3BhB,EAAIc,SACND,EAAiBF,EAAQX,EAAIc,SAC/B,GACC,CAACd,IAgBJ,OAdA,IAAAiB,kBAAgB,KACdF,IAEA,IAAIG,EAAiB,IAAIxlB,gBAAe,KACtCqlB,GAAc,IAIhB,OAFAG,EAAe1kB,QAAQwjB,EAAIc,SAEpB,KACLI,EAAexkB,WAAWsjB,EAAIc,SAC9BI,EAAiB,IAAI,CACtB,GACA,CAAClB,EAAIc,UAEDF,CAAa,ECZtB,EAxByB,CAACjgG,EAAW6P,EAAS/V,KAC5C,MAAM0mG,GAAe,IAAAC,WACrB,IAAAC,YAAU,KACRF,EAAaL,QAAUtwF,CAAO,GAC7B,CAACA,KAEJ,IAAA6wF,YAAU,KAER,KADoB,MAAA5mG,OAAA,EAAAA,EAASsH,kBAG3B,OAGF,MAAMu/F,EAAiB/vF,GAAU4vF,EAAaL,QAAQvvF,GAItD,OAHA9W,EAAQsH,iBAAiBpB,EAAW2gG,GAG7B,KACL7mG,EAAQyH,oBAAoBvB,EAAW2gG,EAAc,CACtD,GACA,CAAC3gG,EAAWlG,GAAS,wRCZ1B,SAAS8mG,EAAY,YACnB1nG,UAAAA,EAAA,UACA2lG,EAAS,SACT79C,GAHmB,EAIhBw9C,+JAAA,CAJgB,EAIhB,CAHH,YACA,YACA,aAGA,MAAMqC,GAAmB,IAAAJ,QAAO,MAC1BK,GAAkB,IAAAL,QAAO,MACzBM,EAAmB,EAAiBF,IACnCG,EAAuBC,IAA4B,IAAA1B,UAAS,CAEjEpjG,OAAS0iG,EAAa,EAAI,SAGtBtmB,EAAap8E,IACjB8kG,EAAyB,CACvB9kG,OAAQ,GAAGA,OACX,EAGEykB,EAAY,IAAOigF,EAAiBV,QAAUU,EAAiBV,QAAQzmF,aAAe,GAU5F,IAAAgnF,YAAU,MACH7B,IACA,MAAAkC,OAAA,EAAAA,EAAkB5kG,SAClB6kG,EAAsB7kG,UAAW,MAAA4kG,OAAA,EAAAA,EAAkB5kG,SAEtDo8E,EAAUwoB,EAAiB5kG,OAC7B,GACC,CAAC4kG,EAAiB5kG,SAErB,MAAM+kG,GAAiB,IAAAb,cAAY,MAC5BxB,GAAagC,EAAiBV,UACjC5nB,EAAU33D,KACVkgF,EAAgBX,QAAQhnG,MAAMgD,OAAS,GAAGykB,QAC5C,GACC,CAACi+E,EAAWgC,EAAiBV,UAIhC,OAFA,EAAiB,SAAUe,EAAgB30G,QAGzC,kBAAC,EAAA40G,cAAA,CACCC,QA5BY,KACd7oB,EAAU33D,IAAY,EA4BpBygF,OAzBW,KACb9oB,EAAU,EAAE,EAyBV+oB,IAAKzC,EACLhqG,QAAS,EACT0sG,WAAW,YAEX,kBAAC,OACCroG,UAAU,mBACVmmG,IAAKyB,EACL3nG,MAAO6nG,GAEP,kBAAC,gIACKxC,SADL,CAECtlG,YACAmmG,IAAKwB,MAEH7/C,UAKZ,CAEA4/C,EAAYlC,UAAY,CACtB19C,SAAU,cAAoB,CAC5B,YACA,SACA,aAGF69C,UAAW,SAEX3lG,UAAW,YAGb,UCzFA,SAASsoG,GAAqB,SAAExgD,EAAQ,UAAE9nD,IACxC,MAAM,UAAE2lG,IAAc,IAAAE,YAAW,GAE3BxkG,EAAU,CACd,8BACArB,GACAoJ,OAAO4uB,SAASpiC,KAAK,KAEvB,OACE,kBAAC,OAAIoK,UAAWqB,GACd,kBAAC,EAAW,CAACskG,aACT79C,GAIV,CAEAwgD,EAAqB9C,UAAY,CAC/B19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEF9nD,UAAW,YAGb,UC1BA,SAASuoG,GAAU,UACjBvoG,EAAS,SACT8nD,EAAQ,kBACR++C,EAAiB,MACjBvO,EAAQ,CAAErhG,SAAU,QAASsvG,iBAAiB,KAE9C,MAAMllG,EAAU,CACd,gBACArB,GACAoJ,OAAO4uB,SAASpiC,KAAK,KAEjB4wG,GAAe,IAAAF,UAAQ,KAAM,CACjCO,oBACAvO,WACE,CAACuO,EAAmBvO,IAExB,OACE,kBAAC,OAAIt4F,UAAWqB,GACd,kBAAC,EAAiBolG,SAAjB,CAA0B/vG,MAAO8vG,GAC/B1+C,GAIT,CAEAygD,EAAU/C,UAAY,CACpB19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEF9nD,UAAW,WACX6mG,kBAAmB,SACnBvO,MAAO,UAAgB,CACrBrhG,SAAU,UAAgB,CAAC,OAAQ,UACnCsvG,gBAAiB,YAIrBgC,EAAU7B,aAAe,CACvBG,mBAAmB,GAIrB0B,EAAUC,KAAO,EACjBD,EAAUC,KAAKC,OAAS,EACxBF,EAAUC,KAAKE,QAAU,EAGzB,uVCjDA,SAASC,EAAO9tG,EAAOsrG,GACrB,MAkBI,EAAAtrG,GAjBF+tG,aAAAA,EAAA,SACA9gD,EAAQ,SACRg+C,EAAQ,WACR+C,EAAU,aACVC,EAAY,SACZC,EAAQ,GACR9yG,EAAE,UACF+J,EAAS,SACT+H,EAAQ,QACR7E,EAAO,KACPN,EAAI,QACJojG,EAAO,QACPgD,EAAO,KACP7nE,EAAI,MACJ5Z,EAAK,KACLpgB,GAEE,EADCm+F,+JAAA,CACD,EADC,CAhBH,eACA,WACA,WACA,aACA,eACA,WACA,KACA,YACA,WACA,UACA,OACA,UACA,UACA,OACA,QACA,SAII2D,EAAgB,KACpB,MAAMC,EAAa,CAAC,cAAcn6E,OAAO/uB,EAAYA,EAAUvK,MAAM,KAAO,IACtE0zG,EAAahoE,EAAQ,eAAeA,IAAS,iBAC7CioE,EAAiBrhG,EAAY,WAAa,GAC1CshG,EAAenmG,GAAW,GAC1BomG,EAAa/hF,EAAQ,eAAeA,IAAU,GAC9CgiF,EAAgBR,EAAW,wBAA0B,GACrDS,EAAeR,EAAU,uBAAyB,GAaxD,OAXAE,EAAW/zG,KAAKo0G,GAChBL,EAAW/zG,KAAKm0G,GAChBJ,EAAW/zG,KAAKg0G,GAChBD,EAAW/zG,KAAKi0G,GAChBF,EAAW/zG,KAAKk0G,GAChBH,EAAW/zG,KAAKq0G,GAEZ1D,GACFoD,EAAW/zG,KAAK,QAAQ2zG,GAAgB,UAGnCI,EAAWtzG,KAAK,IAAI,EAGvB6zG,EAAiBxyG,GAIlB6uG,IAHUgD,GAAgB,UAGL7xG,EAClB,kBAAC,EAAI,CAACmuG,OAAQyD,EAAY1hG,KAAM2+F,IAChC,KAwDR,MApDsB,MACpB,IAAI4D,EAEJ,OAAId,EAEA,qCACI,IAAAe,cAAaf,EAAc,CAC3B5oG,UAAWipG,IACXlhG,eAON2hG,EADE9mG,EAEA,kBAAC,OACC3M,KACA+J,UAAWipG,IACXlhG,WACAi+F,UACApjG,OACAujG,OACIb,GAEFmE,EAAc,QACd3hD,EACA2hD,EAAc,UAMlB,kBAAC,YACCxzG,KACA+J,UAAWipG,IACXlhG,WACAi+F,UACA7+F,KAAMA,GAAQ,SACdg/F,OACIb,GAEFmE,EAAc,QACd3hD,GAAY,kBAAC,YAAMA,GACnB2hD,EAAc,UAKfC,EAAU,EAIjBE,EAEJ,CAEAjB,EAAOnD,UAAY,CAIjB19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEF8gD,aAAc,cAAoB,CAChC,YAAkB,UAClB,SACA,cAEF5oG,UAAW,WAIXkD,QAAS,WAIT6E,SAAU,SAIV9R,GAAI,WACJ2M,KAAM,WACNkmG,aAAc,WACdD,WAAY,WACZE,SAAU,SACVjD,SAAU,WACVkD,QAAS,SAIThD,QAAS,SAITz+E,MAAO,WAIPpgB,KAAM,WAINg6B,KAAM,YAGRwnE,EAAOjC,aAAe,CACpBn/E,MAAO,GACPpgB,KAAM,UAGR,SAAe,IAAAw/F,YAAWgC,GC7K1B,SAASkB,GAAY,UAAE7pG,EAAS,SAAE8nD,EAAQ,MAAEp4B,GAASy2E,GACnD,OACE,kBAAC,OAAIA,MAAUnmG,UAAW,6BAA6BA,KACpDg4B,QAAQtI,IAAU,kBAAC,aAAOA,GAC3B,kBAAC,OAAI1vB,UAAU,oBAAoB8nD,GAGzC,CAEA+hD,EAAYrE,UAAY,CACtB19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEF9nD,UAAW,WAAiBylG,WAC5B/1E,MAAO,WAAiB+1E,YAG1B,SAAe,IAAAkB,YAAWkD,GCpB1B,SAASC,GAAW,MAClBxoF,EAAQ,KAAI,SACZwmC,IAEA,OACE,kBAAC,OAAI9nD,UAAU,oBACZ8nD,GAAY,kBAAC,OAAI9nD,UAAU,4BAA4B8nD,GACvDxmC,GAAS,kBAAC,OAAIthB,UAAU,0BAA0BshB,GAGzD,CAEAwoF,EAAWtE,UAAY,CACrBlkF,MAAO,cAAoB,CACzB,YACA,SACA,aAEFwmC,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,UCzBA,SAASiiD,GAAS,MAChBC,EAAQ,eACRliD,IAEA,OACE,kBAAC,OAAI9nD,UAAW,wCAAwCgqG,KACtD,kBAAC,WACEliD,GAIT,CAEAiiD,EAASvE,UAAY,CACnBwE,MAAO,UAAgB,CAAC,MAAO,SAAU,WACzCliD,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,UCtBA,SAASmiD,GAAW,SAAEniD,IACpB,OACE,kBAAC,OAAI9nD,UAAU,oBACZ8nD,EAGP,CAEAmiD,EAAWzE,UAAY,CACrB19C,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,UChBA,SAASoiD,IAAU,SACjBj3B,EAAW,EAAC,SACZnrB,IAEA,OACE,kBAAC,MAAG9nD,UAAW,wCAAwCizE,WACpDnrB,EAGP,CAEAoiD,GAAU1E,UAAY,CACpBvyB,SAAU,WACVnrB,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,YCpBA,SAASqiD,IAAe,SACtBriD,IAEA,OACE,kBAAC,OAAI9nD,UAAU,yBACZ8nD,EAGP,CAEAqiD,GAAe3E,UAAY,CACzB19C,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,YClBA,SAASsiD,IAAa,SACpBtiD,IAEA,OACE,kBAAC,MAAG9nD,UAAU,uBACX8nD,EAGP,CAEAsiD,GAAa5E,UAAY,CACvB19C,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,YClBA,SAASuiD,IAAY,SACnBp3B,EAAW,EAAC,SACZnrB,IAEA,OACE,kBAAC,KAAE9nD,UAAW,4CAA4CizE,WACvDnrB,EAGP,CAEAuiD,GAAY7E,UAAY,CACtBvyB,SAAU,WACVnrB,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,YCpBA,SAASwiD,IAAc,SACrBxiD,IAEA,OACE,kBAAC,OAAI9nD,UAAU,wBACZ8nD,EAGP,CAEAwiD,GAAc9E,UAAY,CACxB19C,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,YCVA,SAASyiD,IAAK,UACZvqG,EAAY,UACZiD,EAAS,gBACT6kD,IAEA,OACE,kBAAC,OAAI7nD,MAAO,CAAEgD,UAAUjD,UAAW,YAAYA,KAC5C8nD,EAGP,CAEAyiD,GAAK/E,UAAY,CACfxlG,UAAW,WACXiD,OAAQ,cAAoB,CAC1B,WACA,aAEF6kD,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJyiD,GAAK9B,OAAS,EACd8B,GAAKC,KAAO,EACZD,GAAKE,OAAS,EACdF,GAAKG,MAAQ,GACbH,GAAKI,WAAa,GAClBJ,GAAKpF,KAAO,GACZoF,GAAKK,SAAW,GAChBL,GAAKM,QAAU,GAEf,YC7CM,GAA+B31G,QAAQ,WCAvC,GAA+BA,QAAQ,aCA7C,IAAgBm0C,EAAMyhE,EAAMC,KAC1B,IAAIpvG,EACJ,OAAO,YAAsBu/B,GAC3B,MAAMrc,EAAUzrB,KAOV43G,EAAUD,IAAcpvG,EAC9BI,aAAaJ,GACbA,EAAUE,YARI,KACZF,EAAU,KACLovG,GACH1hE,EAAKt1C,MAAM8qB,EAASqc,EACtB,GAI0B4vE,GACxBE,GACF3hE,EAAKt1C,MAAM8qB,EAASqc,EAExB,CACD,ECND,GATqBxkC,IACnB,MAAMyvG,GAAM,IAAAoB,UAIZ,OAHA,IAAAC,YAAU,KACRrB,EAAIc,QAAUvwG,CAAK,GAClB,CAACA,IACGyvG,EAAIc,OAAO,ECJpB,SAASgE,IAAO,UAAEjrG,EAAS,SAAE/I,EAAW,0BAAYi0G,GAAiB,IACnE,MAAM7pG,EAAU,CACd,UACApK,EACA+I,GACAoJ,OAAO4uB,SAASpiC,KAAK,KAEjBiX,EACJ,kBAAC,OAAI7M,UAAWqB,GACd,kBAAC,OAAIrB,UAAU,gBACf,kBAAC,OAAIA,UAAU,gBACf,kBAAC,OAAIA,UAAU,gBACf,kBAAC,OAAIA,UAAU,iBAInB,OAAOkrG,EACH,kBAAC,OAAIlrG,UAAU,wBAAwB6M,GACvCA,CACN,CAEAo+F,GAAOzF,UAAY,CAEjBxlG,UAAW,WAEX/I,SAAU,WAEVi0G,eAAgB,UAGlB,YCtBA,SAASC,IAAQ,SACfrjD,EAAQ,MAAEvgC,EAAK,QAAE6jF,EAAO,SAAEC,EAAQ,UAAErrG,IAWpC,MAAM8lG,EAAqB,YAAVv+E,EAAsB,QAAU,cAEjD,OACE,kBAAC,OAAIvnB,UAXE,CACL,cACA,gBAAgBunB,GAAS,SACzB8jF,GAAY,YACZrrG,GACAoJ,OAAO4uB,SAASpiC,KAAK,MAOrB,kBAAC,EAAI,CAACuR,KAAM2+F,IACZ,kBAAC,OAAI9lG,UAAU,wBACX8nD,GAEHsjD,GACC,kBAAC,EAAI,CAACjkG,KAAK,QAAQ6+F,QAASoF,IAIpC,CAEAD,GAAQ3F,UAAY,CAElBj+E,MAAO,WACPugC,SAAU,cAAoB,CAC5B,YACA,SACA,aAGF9nD,UAAW,WAEXqrG,SAAU,SAEVD,QAAS,UAGX,o719BCvCA,SAASE,IAAM,gBACbC,EAAe,WACfC,EAAU,QACVC,EAAO,UACPx9C,EAAS,KACT9mD,EAAI,OACJia,EAAM,OACNsqF,EAAM,SACNvrE,EAAQ,UACRwrE,EAAS,QACTC,EAAO,MACP5Q,EAAK,aACL6Q,EAAe,GACfC,gBAAiBC,EAAsB,KAAI,WAC3CC,EAAU,MACV/rG,IAEA,MAAOgsG,EAAkBC,IAAuB,IAAA7F,UAAS,MACnD8F,GAAkB,IAAA5E,QAAO,MACzBrhC,EAAW,KACX+lC,GACFA,EAAiBhmC,QACnB,EAGI6lC,GAAkB,IAAAxF,UACtB,IAAOyF,EACHA,IAEA,kBAAC,GAAO,CAACxkF,MAAM,QAAO,uBAI1B,CAACwkF,IAGGK,EAAe,CACnBC,aAAa,KAAAC,QAAO,CAClBtR,MAAO,CACLxzE,MAAM,EACNlP,KAAM0iF,EACN53F,KAAM,GAERmpG,MAAO,GACPC,QAAS,CACPlrF,MAAO,IACPmrF,OAAQ,aACRC,SAAU,GACVC,WAAW,EACXC,QAAS,MAEXC,SAAU,CAAC,CACTrlF,MAAM,EACN9Y,MAAO,EACPnV,IAAK,IACLkzG,OAAQ,aACRK,eAAgB,CACdC,UAAW,CACTR,OAAO,MAAAP,OAAA,EAAAA,EAAYe,YAAa,WAElCC,UAAW,CACTT,OAAO,MAAAP,OAAA,EAAAA,EAAYgB,YAAa,YAGpCC,YAAa,CACXV,OAAO,MAAAP,OAAA,EAAAA,EAAYiB,cAAe,WAEpCC,UAAW,CACTX,OAAO,MAAAP,OAAA,EAAAA,EAAYkB,YAAa,WAElCC,YAAa,cACbC,aAAa,MAAApB,OAAA,EAAAA,EAAYoB,cAAe,4BAE1CC,OAAQ,CACN7lF,MAAM,GAIRmF,QAAS,CACPo5E,QAAS,OACTuH,YAAa,CACXnmG,KAAM,UAGVomG,KAAM,CACJnqG,KAAM,KACNke,MAAO,KACPf,OAAQ,OACR3b,IAAK,OACL4oG,cAAc,GAEhBC,MAAO,CACLC,aAAa,EACbvmG,KAAM,WACNy1D,UAAW,CACTp1C,MAAM,EACNulF,UAAW,CACT5lG,KAAM,SACNolG,MAAO,YAGXoB,SAAU,CACRnmF,MAAM,GAERomF,SAAU,CACRpmF,MAAM,GAER/e,KAAM,IAERolG,MAAO,CACLv0G,IAAK,UACLo0G,aAAa,EACbJ,YAAa,CACX9lF,MAAM,GAERo1C,UAAW,CACTmwC,UAAW,CACT5lG,KAAM,SACNolG,MAAO,WAET/kF,MAAM,GAERsmF,UAAW,CACTtmF,MAAM,GAERmmF,SAAU,CACRnmF,MAAM,GAERomF,SAAU,CACRpmF,MAAM,GAERrgB,KAAM,SAER+lG,UAAW,CACTX,MAAO,WAETb,OAAQ,GACRqC,gBAAiB,eAEnBC,eAAe,KAAA1B,QAAO,CACpB7jG,KAAM,GACNtB,KAAM,OACN6lG,UAAW,CACTz0F,QAAS,EACTg0F,MAAOhB,EACH,IAAI,WAAgB0C,eACpB,EACA,EACA,EACA,EACA1C,EAAgBhzG,KAAI,CAACg0G,EAAOv0G,KAAU,CACpCsD,OAAQtD,EACRu0G,aAGF,IAEN2B,QAAQ,EACRC,WAAY,EACZ53G,KAAM,MAIJ63G,EAAW,CACf/B,aAAa,KAAAC,QAAO,CAClB3/E,QAAS,CACPo5E,QAAS,OACTsI,UAAW,mBAEbhB,OAAQ,CACNZ,OAAQ,aACRz6F,EAAG,OACHwR,EAAG,MACH/a,KAAM,IAER8jG,MAAO,GACPb,OAAQ,KAEVsC,eAAe,KAAA1B,QAAO,CACpBnlG,KAAM,MACN0nE,OAAQ,CACN,MACA,OAEFy/B,OAAQ,CACN,MACA,OAEFC,mBAAmB,EACnBC,cAAe,QACfT,gBAAiB,aACjBU,UAAW,CACTC,OAAQ,CACNlnF,MAAM,EACN0mF,OAAQ,GACRv6G,OAAQ,EACRg7G,QAAS,IAGblmG,KAAM,MAIJmmG,EAAW,CACfvC,aAAa,KAAAC,QAAO,CAClBZ,OAAQ,KAEVsC,eAAe,KAAA1B,QAAO,CACpBnlG,KAAM,MACNsB,KAAM,OA+CV,IAAA++F,YAAU,KACRn0G,OAAO6U,iBAAiB,SAAUg+D,GAE3B,KACL7yE,OAAOgV,oBAAoB,SAAU69D,EAAS,IAE/C,CAAC+lC,KAEJ,IAAAzE,YAAU,KACR,GAAK,MAAA2E,OAAA,EAAAA,EAAiBlF,QAKtB,OAHAiF,EAAoB,QAAaC,EAAgBlF,UAG1C,KACDgF,GACFA,EAAiB4C,SACnB,CACD,GACA,CAAC1C,EAAgBlF,UAEpB,MAAM6H,EAAiBvyG,IACjB4jC,GACFA,EAAS5jC,EACX,GAGF,IAAAirG,YAAU,KACR,IAAIuH,EAcJ,OAbI9C,IACF8C,EAAkBC,GAASF,EAAe,KAC1C7C,EAAiB3kG,GAAG,WAAYynG,GAChC9C,EAAiB3kG,GAAG,UAAWynG,GAC/B9C,EAAiB3kG,GAAG,QAASynG,GAE7B9C,EAAiB3kG,GAAG,aAAcxS,IAC5BA,EAAO2T,MACTwjG,EAAiBgD,QAAQh8E,eAAe,UAC1C,KAIG,KACDg5E,IACFA,EAAiBzkG,IAAI,WAAYunG,GACjC9C,EAAiBzkG,IAAI,UAAWunG,GAChC9C,EAAiBzkG,IAAI,QAASunG,GAChC,CACD,GACA,CAAC9C,EAAkB9rE,IAEtB,MAAM+uE,EAAe,GAAYjD,GAC3BkD,EAAa,GAAY/tF,GACzBguF,EAAW,GAAYjoG,GACvBkoG,EAAa,GAAY3D,IAC/B,IAAAlE,YAAU,KAtUZ,iBAwUMyE,IAEG,wBAAAK,QAAO4C,SAAP,IAAsBI,aAAtB,YAA+B,KAAAhD,QAAOL,OACnC,wBAAAK,QAAO6C,SAAP,IAAoBG,aAApB,YAA6B,KAAAhD,QAAOlrF,MACpCguF,IAAajoG,IACb,kBAAAmlG,QAAO+C,IAAYC,aAAnB,YAA4B,KAAAhD,QAAOZ,OAGzCO,EAAiBvqB,QACjBuqB,EAAiBjjG,UA7GK,EAACumG,EAAcC,EAAiBC,KACxD,IAAIC,EAAY,CAAC,EACjB,OAAQH,GACN,IAAK,MACHG,EAAYtB,EAAS/B,YAAYsD,WAAU,KAAArD,QAAOkD,IAAkBI,OAEpEH,EAAet3G,SAAS03G,IACtBH,EAAUhE,OAAOv2G,KAAKi5G,EAASJ,cAAc2B,WAAU,KAAArD,QAAOuD,IAAQD,OAAO,IAG/E,MAGF,IAAK,MACHF,EAAYd,EAASvC,YAAYsD,WAAU,KAAArD,QAAOkD,IAAkBI,OAEpEH,EAAet3G,SAAS03G,IACtBH,EAAUhE,OAAOv2G,KAAKy5G,EAASZ,cAAc2B,WAAU,KAAArD,QAAOuD,IAAQD,OAAO,IAG/E,MAGF,QACEF,EAAYtD,EAAaC,YAAYsD,WAAU,KAAArD,QAAOkD,IAAkBI,OACpEn3G,MAAMoB,QAAQ21G,EAAgB3B,SAChC6B,EAAU7B,MAAQ2B,EAAgB3B,OAGpC4B,EAAet3G,SAAQ,CAAC03G,EAAO73G,KAC7B,MAAM83G,EAAa,YACd1D,EAAa4B,cAAc4B,QAC3B/D,EAAa7zG,IACb63G,GAELH,EAAUhE,OAAOv2G,KAAK26G,EAAW,IAKvC,OAAOJ,CAAS,EAqEaK,CAAkB5oG,EAAMia,EAAQsqF,IAC3DO,EAAiB+D,eAAe,CAC9B7oG,KAAM,mBACN/O,IAAK,iBACL63G,sBAAsB,IAE1B,GACC,CAAChE,EAAkB7qF,EAAQsqF,EAAQvkG,KAEtC,IAAAqgG,YAAU,KACJyE,GAAoBh+C,IACtBg+C,EAAiB+D,eAAe,CAC9B7oG,KAAM,YACN+oG,YAAajiD,EAAUiiD,YACvBC,UAAWliD,EAAUkiD,YAEvBlE,EAAiB+D,eAAe,CAC9B7oG,KAAM,UACN+oG,YAAajiD,EAAUiiD,YACvBC,UAAWliD,EAAUkiD,YAEzB,GACC,CAACliD,IAEJ,MAAMmiD,EAAgB,GAAYzE,GAC5B0E,EAAc,GAAYzE,IAChC,IAAApE,YAAU,MAENyE,IACkB,IAAfN,IACa,IAAbC,GAEDwE,IAAkBzE,GACf0E,IAAgBzE,GAGrBK,EAAiB+D,eAAe,CAC9B7oG,KAAM,WACNmpG,WAAY3E,EACZ4E,SAAU3E,GAEd,GACC,CAACD,EAAWC,IAEf,MAYM4E,EAAe,KAClBhF,IAA2B,IAAZC,IAAiC,IAAZA,GAAqBA,EAiB5D,OACE,kBAAC,OAAIzrG,UAAU,sBAEVwrG,EAEG,KADA,kBAAC,GAAM,MAGb,kBAAC,OACCxrG,UAtBgB,MACpB,MAAMkpG,EAAa,CAAC,aAUpB,OARKsC,GACHtC,EAAW/zG,KAAK,4BAGbq7G,KACHtH,EAAW/zG,KAAK,sBAGX+zG,EAAWtzG,KAAK,IAAI,EAWZqzG,GACXhpG,MAvCW,MACf,MAAM2Y,EAAY3Y,GAAS,CAAC,EAQ5B,OANK2Y,EAAU3V,SACb2V,EAAU3V,OAAS,SAEhB2V,EAAU7V,QACb6V,EAAU7V,MAAQ,QAEb6V,CAAS,EA8BL63F,GACP,YAAWtpG,EACXg/F,IAAKgG,IAGLqE,IACI,KACA1E,EAIZ,CAlaA,eAAoB,QAAS,IAoa7BR,GAAM9F,UAAY,CAChB+F,gBAAiB,eAAqB9yG,OACtC+yG,WAAY,SACZC,QAAS,SACTx9C,UAAW,cAAoB,CAC7B,WACA,WACA,eAAqBx1D,SAEvBqzG,gBAAiB,SACjBH,UAAW,WACXC,QAAS,WACTI,WAAY,eAAqBt3G,QACjC0sB,OAAQ,eAAqB1sB,QAC7ByrC,SAAU,SACVlgC,MAAO,eAAqBvL,QAC5ByS,KAAM,WACN6zF,MAAO,WACP0Q,OAAQ,eAAqBjzG,OAC7BozG,aAAc,eAAqBn3G,SAGrC,UAAe,IAAAg8G,MAAKpF,kBCrcpB,MA2BA,GA3BmB,CAAC/2G,EAAU6H,KAC5B,MAAMu0G,GAAgB,IAAApJ,WAEtB,IAAAC,YACE,KACEmJ,EAAc1J,QAAU1yG,CAAQ,GAElC,CAACA,KAGH,IAAAizG,YACE,KAIE,GAAc,OAAVprG,EAAgB,CAClB,MAAMnG,EAAK4F,YAJb,WACE80G,EAAc1J,SAChB,GAE8B7qG,GAC5B,MAAO,IAAML,aAAa9F,EAC5B,CAEA,MAAO,MAAQ,GAEjB,CAACmG,GACF,iOCnBH,SAASw0G,GAAa/1G,GACpB,MAAM,SACJitD,EAAQ,QACRjoD,EAAO,QACPurG,EAAO,MACPpzG,GACE6C,EACEsP,2HAAO,EACXod,MAAO,UACPnrB,MAAO,KACJyD,GAICgxG,EAAeC,IACnB1F,EAAQ0F,GACR/0G,kBAJEN,EAIiB,EAKrB,OAFA,IAAW,IAAMo1G,EAAY74G,IAAQmS,EAAK/N,OAGxC,kBAAC,IACC4D,UAAU,qBACVunB,MAAOpd,EAAKod,MACZ6jF,QAAS,IAAMyF,EAAY74G,IAE1B8vD,EAGP,CAEA8oD,GAAapL,UAAY,CACvB19C,SAAU,cAAoB,CAC5B,YACA,SACA,aAEFjoD,QAAS,eAAqBnL,QAC9B02G,QAAS,SACTpzG,MAAO,YAGT,qaC1CA,SAAS+4G,GAAel2G,GACtB,MAAO8N,EAAU2B,IAAe,IAAA+7F,UAAS,CAAC,IACpC,OACJ2K,GACEn2G,EAEEo2G,EAAsB,CAACrnG,EAAS/J,KACpC,MAAMqxG,EAAQ93G,KAAKk8C,MAAsB,IAAhBl8C,KAAK+3G,UAE9B7mG,GAAa8mG,IAAkB,eAC1BA,WAD0B,CAE7B,CAACF,GAAQ,CACPtnG,UACA/J,mBAEF,GAAC,GAGL,IAAA2nG,YAAU,KACRwJ,EAAOC,EAAoB,GAC1B,CAACtoG,IAEJ,MAAM0oG,EAAmBr5G,WACF,MAAK2Q,GACN3Q,GACpBsS,GAAa8mG,IACX,MAAME,EAAc,MAAKF,GAEzB,cADOE,EAAYt5G,GACZs5G,CAAW,GAClB,EAGJ,OACE,kBAAC,OAAItxG,UAAU,wBAEXtL,OAAOwD,KAAKyQ,GAAUpQ,KAAK24G,GACzBvoG,EAASuoG,GAEL,kBAAC,IACCrxG,QAAS8I,EAASuoG,GAAOrxG,QAEzBurG,QAASiG,EAAgBj6F,KAAK,KAAM85F,GACpCl5G,MAAOk5G,EAEP94G,IAAK84G,GAEJvoG,EAASuoG,GAAOtnG,SAGnB,OAKd,CAEAmnG,GAAevL,UAAY,CACzBwL,OAAQ,UAGV,2bCnBA,MAEA,GAFc,IApCd,MACE,WAAA7qG,YAQA,8CAAcorG,IACZn+G,KAAKo+G,mBAAqBD,CAAE,IAR5B,MAAM5xG,EAAKL,SAASM,cAAc,OAClCD,EAAGK,UAAY,YACfV,SAASgE,KAAK9D,YAAYG,IACb,QAAWA,GACnB8xG,OAAO,kBAAC,GAAc,CAACT,OAAQ59G,KAAKs+G,aAC3C,CAMA,MAAAV,CAAOpnG,EAAS/J,GACVzM,KAAKo+G,oBACPp+G,KAAKo+G,mBAAmB5nG,EAAS/J,EAErC,CAEA,MAAA8xG,CAAO/nG,EAAS/J,GACdzM,KAAK49G,OAAOpnG,EAAS,SAAK/J,GAAL,CAAc0nB,MAAO,WAC5C,CAEA,OAAA0T,CAAQrxB,EAAS/J,GACfzM,KAAK49G,OAAOpnG,EAAS,SAAK/J,GAAL,CAAc0nB,MAAO,YAC5C,CAEA,OAAA2G,CAAQtkB,EAAS/J,GACfzM,KAAK49G,OAAOpnG,EAAS,SAAK/J,GAAL,CAAc0nB,MAAO,YAC5C,CAEA,IAAA4G,CAAKvkB,EAAS/J,GACZzM,KAAK49G,OAAOpnG,EAAS,SAAK/J,GAAL,CAAc0nB,MAAO,SAC5C,kOCnCF,SAASqqF,GAAgB/2G,GACvB,MAAM,QACJqI,EAAO,KAAEtJ,EAAI,SAAEkuD,EAAQ,OAAE1pC,EAAM,QAAExU,EAAU,UACzC/O,EACEg3G,GAAS,IAAAC,aACTt8E,GAAc,IAAA2xE,cAAY,KAK9B,GAJI/oF,GACFA,KAGG/qB,OAAO+J,UAAUua,UAIpB,OAHAk6F,EAAO5K,QAAQ5oF,SACf/e,SAASme,YAAY,aACrB,GAAMwd,QAAQrxB,GAGhBvW,OAAO+J,UAAUua,UAAUqe,UAAUp8B,GACrC,GAAMqhC,QAAQrxB,EAAQ,GACrB,CAACwU,EAAQyzF,IAEZ,OACE,oCACE,kBAACh3G,EAAM+F,iIAAN,EAAcolG,QAASxwE,EAAau8E,QAASv8E,GAAiB36B,GAC5DitD,GAAY5kD,GAEb7P,OAAO+J,UAAUua,UAIf,KAHF,kBAAC,YAASwuF,IAAK0L,EAAQ7xG,UAAU,wBAAwBzJ,KAAK,OAAOG,MAAOkD,GACzEA,GAKX,CAEAg4G,GAAgBpM,UAAY,CAE1B57F,QAAS,WAETwU,OAAQ,SAERxkB,KAAM,WAAiB6rG,WAEvBviG,QAAS,WAET4kD,SAAU,cAAoB,CAC5B,YACA,WACA,WACA,YAIJ,qCC3DA,SAASkqD,IAAY,SAAElqD,IACrB,OACE,kBAAC,OAAI9nD,UAAU,qBACX8nD,EAGR,CAEAkqD,GAAYxM,UAAY,CACtB19C,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,YChBA,SAASmqD,IAAU,SAAEnqD,IACnB,OACE,kBAAC,OAAI9nD,UAAU,mBACX8nD,EAGR,CAEAmqD,GAAUzM,UAAY,CACpB19C,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,2OCLA,SAASoqD,GAAM,YACbpqD,SAAAA,EAAA,MACAvgC,EAAQ,4BACR4qF,GAAuB,EAAK,OAC5BC,GAAS,EAAK,QACdhH,EAAU,SAAQ,KAClBjqE,EAAO,eACPnhC,EAAY,gBACZqyG,GAAe,GARF,EASVC,mKAAA,CATU,EASV,CARH,WACA,QACA,uBACA,SACA,UACA,OACA,YACA,iBAGA,MAAMC,EAAe,CACnB,YACA,oBAAoBhrF,IACpB6qF,GAAU,UACVrjF,OAAO/uB,EAAUvK,MAAM,MAAM2T,OAAO4uB,SAASpiC,KAAK,KAE9C48G,EAAkB,CACtB,sBACAJ,GAAU,UACVhpG,OAAO4uB,SAASpiC,KAAK,KAEjB68G,EAAY,CAChBx3E,QAAS,QACT/M,QAAS,cACTyjF,OAAQ,eACRpqF,GAEF,OACE,oCAEI,kBACE,kBAAC,EAAA0gF,cAAA,CACCG,GAAIgK,EACJz2G,QAAS,IACT0sG,WAAW,UAEX,kBAAC,iIAAIroG,UAAWuyG,GAAkBD,GAChC,kBAAC,OAAItyG,UAAW,gCAAgCmhC,KAC9C,kBAAC,OAAInhC,UAAU,sBACF,SAAVunB,GACC,kBAAC,OAAIvnB,UAAU,2BACb,kBAAC,EAAI,CAACmH,KAAMsrG,KAGd3qD,MAKVxoD,SAASsuB,cAAc,SAG1BykF,GAAgB,kBACf,kBAAC,EAAApK,cAAA,CACCG,GAAIgK,EACJz2G,QAAS,IACT0sG,WAAW,QAEX,kBAAC,UACCroG,UAAWwyG,EACXxM,QAAS,KAAOmM,GAAwB/G,IACxCsH,UAAW,OACXvrG,KAAK,SACL,aAAW,WAGf7H,SAASsuB,cAAc,SAI/B,CAEAskF,GAAM1H,KAAO,GACb0H,GAAMzH,OAAS,GAEfyH,GAAMzJ,OAAS,EAAG3gD,eAChB9zD,QAAQwV,KAAK,kCAAmC,oBAAqB,IAEnE,kBAAC,OAAIxJ,UAAU,qBACX8nD,IAIRoqD,GAAMzJ,OAAOjD,UAAY,CACvB19C,SAAU,aAGZoqD,GAAMxH,MAAQ,EAAG5iD,eACf9zD,QAAQwV,KAAK,iCAAkC,oBAAqB,IAElE,kBAAC,MAAGxJ,UAAU,oBACV8nD,IAIRoqD,GAAMxH,MAAMlF,UAAY,CACtB19C,SAAU,aAGZoqD,GAAM1M,UAAY,CAChB19C,SAAU,cAAoB,CAC5B,YACA,SACA,aAEF9nD,UAAW,WAEXunB,MAAO,WAEP4qF,qBAAsB,SAEtBC,OAAQ,SAERhH,QAAS,SAETjqE,KAAM,WACNkxE,aAAc,UAGhB,YC7HA,SAASM,GAAQ93G,GACf,MAAM,SACJitD,EAAQ,MACRkzC,EAAK,YACLhhC,EAAW,eACX44C,EAAiB,wBACjBC,EAAgB,UACdh4G,GACGqK,EAAM4tG,IAAW,IAAAzM,WAAS,IAC1B9xG,EAAUw+G,IAAe,IAAA1M,UAAS,OAClC2M,EAAgBC,IAAqB,IAAA5M,UAAS,MAa/C5+E,EAAO,KACXqrF,GAAQ,GACRC,EAAY,MACZE,EAAkB,KAAK,EAGnBr3G,EAAS,KACTo3G,GACFA,IAEFvrF,GAAM,EAQR,OACE,oCACGqgC,GA/BQ,CAACorD,EAAcC,EAAoBC,IAAmB,IAAIl4E,KACjEk4E,GACFA,KAAkBl4E,GAEpB43E,GAAQ,GACRC,GAAY,IAAM,IAAMG,KAAgBh4E,KACpCi4E,GACFF,GAAkB,IAAM,IAAME,KAAsBj4E,IACtD,IAwBE,kBAAC,IACCk3E,OAAQltG,EACRkmG,QAASxvG,GAET,kBAAC,GAAM4uG,KAAN,KACC,kBAAC,UAAIxP,GACJhhC,GAEH,kBAAC,GAAMywC,OAAN,KACC,kBAAC,GACCzE,QAASpqG,EACT2rB,MAAM,WAELsrF,GAEH,kBAAC,GACC7M,QAxBM,KACdzxG,IACAkzB,GAAM,EAuBEF,MAAM,WAELqrF,KAMb,CAEAD,GAAQnN,UAAY,CAElBoN,eAAgB,WAEhBC,cAAe,WAEf7X,MAAO,WAEPhhC,YAAa,WACblS,SAAU,cAAoB,CAC5B,YACA,WACA,WACA,SACA,YAIJ,YCxFA,SAASurD,IAAa,SAAEvrD,EAAQ,UAAE9nD,EAAS,WAAEszG,IAC3C,MAAMC,GAAkB,IAAAhM,QAAO,MAEzBiM,GAAe,IAAArM,cAAY,KAC/B,MAAMvmG,EAAU2yG,EAAgBtM,QAE3BrmG,IAIDvN,OAAOogH,QACT7yG,EAAQyrB,UAAU9qB,IAAI,+BAEtBX,EAAQyrB,UAAUrqB,OAAO,+BAC3B,GACC,CAACuxG,EAAgBtM,UAEdyM,GAAwB,IAAAvM,aAAY6H,GAASwE,EAAc,KAAM,CAACA,IAYxE,OAVA,IAAAhM,YAAU,KACJ8L,GACFjgH,OAAO6U,iBAAiB,SAAUwrG,GAG7B,KACLrgH,OAAOgV,oBAAoB,SAAUqrG,EAAsB,IAE5D,CAACA,EAAuBJ,IAGzB,kBAAC,OAAItzG,UAAW,qBAAqBA,IAAammG,IAAKoN,GACnDzrD,EAGR,CAEAurD,GAAa7N,UAAY,CACvB19C,SAAU,cAAoB,CAC5B,YACA,SACA,aAGF9nD,UAAW,WAIXszG,WAAY,UAGdD,GAAa3M,aAAe,CAC1B1mG,UAAW,IAGb,YCvDA,SAAS2zG,IAAiB,SACxB7rD,EAAQ,QACR8rD,EAAO,YACPC,EAAW,SACXC,EAAQ,WACRC,EAAU,SACVC,IAEA,MAAOC,EAAYC,IAAiB,IAAA7N,WAAS,GACvC8N,GAAe,IAAA5M,QAAO,MACtB6M,EAAe,EAAiBJ,IAEtC,IAAAxM,YAAU,KACJqM,GAAmC,mBAAbC,IACxBI,GAAc,GACdJ,EAASC,GACX,GACC,CAACF,IAEJ,MAAMQ,GAAa,IAAAlN,cAAY,KAC7B,IAAKgN,EAAalN,QAAS,OAAO,EAClC,MAAM,aAAEzmF,EAAY,UAAE6rC,GAAc8nD,EAAalN,QAEjD,OACE2M,IAEGpzF,EAAepnB,KAAKuL,MAAM0nD,KAAe+nD,EAAanxG,QACnDud,GAAgB4zF,EAAanxG,OAAO,GAG3C,CAACkxG,EAAcC,EAAanxG,SAEzBqxG,GAAe,IAAAnN,cAAY,KAC3ByM,GAA+B,mBAAbE,GACpBA,EAASC,EAAa,GACtBG,GAAc,IAEdA,GAAc,EAChB,GACC,CAACN,EAASG,IAEPQ,EAAiB,GAAYR,GAC7BS,GAAgB,IAAArN,aAAY6H,IAAS,KACrCqF,KAAgBE,GAAkBR,GACpCO,GACF,GACC,KAAM,CAACA,EAAcD,KAExB,IAAA7M,YAAU,KAzDZ,MA2DI,OADA,SAAA2M,EAAalN,UAAb,EAAsB/+F,iBAAiB,SAAUssG,GAC1C,KA3DX,IAAAnsF,EA2DiB,cAAAA,EAAA8rF,EAAalN,cAAb,EAAA5+E,EAAsBhgB,oBAAoB,SAAUmsG,EAAc,CAAd,GAChE,CAACL,EAAcK,KAGlB,IAAAhN,YAAU,KACJ+M,EAAiB,GAAoB,IAAfR,IACxBI,EAAalN,QAAQ56C,UAAY,EACnC,GACC,CAAC8nD,EAAcJ,IAElB,MAAMU,EAAmB,GAAYL,GAqBrC,OApBA,IAAA5M,YAAU,KAEN4M,GAAgBK,GACbL,EAAanxG,SAAWwxG,EAAiBxxG,SAC1B,IAAfgxG,GAEHC,GAAc,EAChB,GACC,CAACD,EAAYG,EAAanxG,UAE7B,IAAAukG,YAAU,KAENwM,GAAYI,EAAanxG,OAASkxG,EAAalN,QAAQzmF,cACpD4zF,EAAanxG,QACb2wG,GAEHU,GACF,GACC,CAACH,EAAcC,EAAcJ,EAAUJ,IAGxC,kBAAC,OAAI5zG,UAAU,yBACb,kBAAC,OACCA,UAAU,iCACVmmG,IAAKgO,GAEHrsD,GAEHmsD,GACC,kBAAC,GAAM,CAACh9G,SAAS,aAIzB,CAEA08G,GAAiBnO,UAAY,CAC3B19C,SAAU,EAAA4sD,UAAUC,UAAU,CAC5B,EAAAD,UAAUE,QAAQ,EAAAF,UAAUjzG,MAC5B,EAAAizG,UAAUjzG,KACV,EAAAizG,UAAU9zG,QACV,EAAA8zG,UAAUj9G,SAEZm8G,QAAS,EAAAc,UAAUG,KACnBhB,YAAa,EAAAa,UAAUG,KACvBd,WAAY,EAAAW,UAAU76F,OACtBi6F,SAAU,EAAAY,UAAUrrE,KACpB2qE,SAAU,EAAAU,UAAUI,WAAWpgH,SAGjCi/G,GAAiBjN,aAAe,CAC9BkN,SAAS,GAGX,2OC9GA,SAASmB,IAAkB,QACzBn0G,EAAO,KACPugC,EAAO,oBACP6zE,EAAe,mBACfC,EAAc,yBACdC,EAAiB,OACjB55G,EAAS,EAAC,UACV0E,EAAS,SACT8nD,EAAQ,uBACRqtD,GACChP,GACD,MAAMiP,GAAW,IAAA7N,QAAO,MAClB8N,EAAuBlP,GAAOiP,EAC9BE,GAAoB,IAAA/N,QAAO,MAE3BgO,GAAiB,IAAAhO,QAAO,MAwG9B,OAPA,IAAAC,YAAU,KACRn0G,OAAO0jB,uBAAsB,SAASy+F,KAjDxC,WA7EF,MA8EI,MAAMtyG,EAA2B,SAAjB8xG,EAA0BA,EAhD5C,WACE,MAAMn9G,EAAS+I,EAAQqmG,QACjB5kG,EAAYgzG,EAAqBpO,QACvC,IAAK5kG,EAAW,OAAO,MAAA6yG,EAAAA,EAAqC,aAAhBD,GAA6B,SAAW,QAEpF,MAAM,KAAE7xG,EAAI,IAAEwB,GAAQ/M,EAAOmjB,wBACvBy6F,EAAW7wG,EACX8wG,EAAcriH,OAAOq4B,YAAc9mB,EAAM/M,EAAO8vB,aAChDguF,EAAYvyG,EACZk/F,EAAajvG,OAAOy4B,WAAa1oB,EAAOvL,EAAO2L,YAC/CoyG,EAAcH,EAAWpzG,EAAU68E,aACnC22B,EAAiBH,EAAcrzG,EAAU68E,aACzC42B,EAAeH,EAAYtzG,EAAUmB,YACrCuyG,EAAgBzT,EAAajgG,EAAUmB,YACvCwyG,EAAqC5yG,EAAOvL,EAAO2L,YAAc,EAAInB,EAAUmB,YAAc,EAAI,EACjGyyG,EAAuCrxG,EAAM/M,EAAO8vB,aAAe,EAAItlB,EAAU68E,aAAe,EAAI,EAE1G,MACkB,aAAhB+1B,GAEkB,SAAhBA,IACIW,GAAeC,IAChBG,EAiJX,UAA+B,kBAC7Bd,EAAiB,YAAEU,EAAW,eAAEC,EAAc,SAAEJ,EAAQ,YAAEC,IAE1D,MAA0B,QAAtBR,GAA+BU,EAAoB,MAC7B,WAAtBV,GAAkCW,GAC/BA,GAAkBH,EAAcD,EADsB,SACA,KAC/D,CApJaS,CAAsB,CAC3BhB,oBAAmBU,cAAaC,iBAAgBJ,WAAUC,gBAI1C,eAAhBT,EAiJR,UAAiC,kBAC/BC,EAAiB,aAAEY,EAAY,cAAEC,EAAa,UAAEJ,EAAS,WAAErT,IAE3D,MAA0B,SAAtB4S,GAAgCY,EAAqB,OAC/B,UAAtBZ,GAAiCa,GAC9BA,GAAiBzT,EAAaqT,EADsB,QACA,MAC7D,CAtJaQ,CAAwB,CAC7BjB,oBAAmBY,eAAcC,gBAAeJ,YAAWrT,eAuJnE,UAA+B,kBAC7B4S,EAAiB,YAAEU,EAAW,eAAEC,EAAc,aAAEC,EAAY,cAAEC,EAAa,qCAC3EE,EAAoC,mCAAED,IAEtC,OAAIJ,GAAeI,EAA2C,MAC1DH,GAAkBG,EAA2C,SAC7DD,GAAiBE,EAA6C,QAC9DH,GAAgBG,EAA6C,OAC1D,MAAAf,EAAAA,EAAqB,QAC9B,CA5JWkB,CAAsB,CAC3BlB,oBACAU,cACAC,iBACAC,eACAC,gBACAE,uCACAD,sCAEJ,CAG2DK,GACnDx+G,EAAS+I,EAAQqmG,QACjB5kG,EAAYgzG,EAAqBpO,QAEvC,IAAKpvG,IAAWwK,EAAW,OAE3B,MAAMi0G,EAAiBz+G,EAAOmjB,yBACtB5X,KAAMmzG,EAAQ3xG,IAAK4xG,GAAU,SAAAjB,EAAetO,SAAf,EAA0B,CAAE7jG,KAAM,EAAGwB,IAAK,GA0B/E,GAxBgB,QAAZ1B,GACFxO,OAAOkD,OAAOyK,EAAUpC,MAwI9B,UAAyB,UACvBoC,EAAS,eAAEi0G,EAAc,OAAEz+G,EAAM,KAAEspC,EAAI,OAAE7lC,EAAM,OAAEi7G,EAAM,MAAEC,IAEzD,MAAMv2G,EAAQ,CAAC,EACTw2G,EAAU,CACdC,KAAMJ,EAAelzG,KAAOvL,EAAO2L,YAAc,EAAInB,EAAUmB,YAAc,EAC7EmzG,aAAcL,EAAelzG,KAC7BwzG,WAAYN,EAAelzG,KAC3ByzG,SAAUP,EAAeh1F,MAAQjf,EAAUmB,aAC3C29B,GACI21E,EAASR,EAAe1xG,IAAMvC,EAAUslB,aAAersB,EAY7D,OAXA2E,EAAMmD,KAAO,GAAGqzG,EAAUF,MAC1Bt2G,EAAM2E,IAAM,GAAGkyG,EAASN,MAEX,iBAATr1E,EACFlhC,EAAM8C,MAAQ,GAAGlL,EAAO2L,gBACN,aAAT29B,EACTlhC,EAAM82G,SAAcT,EAAeh1F,MA1ON,EA0OZ,KACQ,mBAAT6f,IAChBlhC,EAAM8C,MAAQ,GAAGo+B,EAAKtpC,EAAO2L,kBAE/BvD,EAAMqrB,UAAegrF,EAAe1xG,IAAMtJ,EAAxB,KACX2E,CACT,CA/JqC+2G,CAAgB,CAC7C30G,YAAWi0G,iBAAgBz+G,SAAQspC,OAAM7lC,SAAQi7G,SAAQC,WAI7C,WAAZtzG,GACFxO,OAAOkD,OAAOyK,EAAUpC,MA2J9B,UAA4B,eAC1Bq2G,EAAc,OAAEz+G,EAAM,UAAEwK,EAAS,KAAE8+B,EAAI,OAAE7lC,EAAM,OAAEi7G,EAAM,MAAEC,IAEzD,MAAMv2G,EAAQ,CAAC,EACTw2G,EAAU,CACdC,KAAMJ,EAAelzG,KAAOvL,EAAO2L,YAAc,EAAInB,EAAUmB,YAAc,EAC7EmzG,aAAcL,EAAelzG,KAC7BwzG,WAAYN,EAAelzG,KAC3ByzG,SAAUP,EAAeh1F,MAAQjf,EAAUmB,aAC3C29B,GACI21E,EAASR,EAAe/1F,OAASjlB,EAYvC,OAXA2E,EAAMmD,KAAO,GAAGqzG,EAAUF,MAC1Bt2G,EAAM2E,IAAM,GAAGkyG,EAASN,MAEX,iBAATr1E,EACFlhC,EAAM8C,MAAQ,GAAGlL,EAAO2L,gBACN,aAAT29B,EACTlhC,EAAM82G,SAAcT,EAAeh1F,MAnQN,EAmQZ,KACQ,mBAAT6f,IAChBlhC,EAAM8C,MAAQ,GAAGo+B,EAAKtpC,EAAO2L,kBAE/BvD,EAAMqrB,UAAej4B,OAAOq4B,YAAc4qF,EAAe/1F,OAASjlB,EAAhD,KACX2E,CACT,CAlLqCg3G,CAAmB,CAChD50G,YAAWi0G,iBAAgBz+G,SAAQspC,OAAM7lC,SAAQi7G,SAAQC,WAI7C,SAAZtzG,GACFxO,OAAOkD,OAAOyK,EAAUpC,MA8K9B,UAA0B,eACxBq2G,EAAc,OAAEz+G,EAAM,UAAEwK,EAAS,KAAE8+B,EAAI,OAAE7lC,IAEzC,MAAM2E,EAAQ,CAAC,EACTw2G,EAAUH,EAAelzG,KAAOf,EAAUmB,YAAclI,EACxDw7G,EAAS,CACbJ,KAAMJ,EAAe1xG,IAAM/M,EAAO8vB,aAAe,EAAItlB,EAAUslB,aAAe,EAC9EgvF,aAAcL,EAAe1xG,IAC7BgyG,WAAYN,EAAe1xG,IAC3BiyG,SAAUP,EAAe/1F,OAASle,EAAUslB,cAC5CwZ,GAUF,OATAlhC,EAAMmD,KAAO,GAAGqzG,MAChBx2G,EAAM2E,IAAM,GAAGkyG,MAEF,iBAAT31E,EACFlhC,EAAMgD,OAAS,GAAGpL,EAAO8vB,iBACA,mBAATwZ,IAChBlhC,EAAMgD,OAAS,GAAGk+B,EAAKtpC,EAAO8vB,mBAEhC1nB,EAAM82G,SAAcT,EAAelzG,KAAO9H,EAAzB,KACV2E,CACT,CAnMqCi3G,CAAiB,CAC9CZ,iBAAgBz+G,SAAQwK,YAAW8+B,OAAM7lC,YAI7B,UAAZ4H,GACFxO,OAAOkD,OAAOyK,EAAUpC,MA+L9B,UAA2B,eACzBq2G,EAAc,OAAEz+G,EAAM,UAAEwK,EAAS,KAAE8+B,EAAI,OAAE7lC,EAAM,OAAEi7G,EAAM,MAAEC,IAEzD,MAAMv2G,EAAQ,CAAC,EACTw2G,EAAUH,EAAelzG,KAAOvL,EAAO2L,YAAclI,EACrDw7G,EAAS,CACbJ,KAAMJ,EAAe1xG,IAAM/M,EAAO8vB,aAAe,EAAItlB,EAAUslB,aAAe,EAC9EgvF,aAAcL,EAAe1xG,IAC7BgyG,WAAYN,EAAe1xG,IAC3BiyG,SAAUP,EAAe/1F,OAASle,EAAUslB,cAC5CwZ,GAUF,OATAlhC,EAAMmD,KAAgB,SAAT+9B,EAAkB,GAAGs1E,EAAUF,MAAa,GAAGE,MAC5Dx2G,EAAM2E,IAAe,SAATu8B,EAAkB,GAAG21E,EAASN,MAAY,GAAGM,MAE5C,iBAAT31E,EACFlhC,EAAMgD,OAAS,GAAGpL,EAAO8vB,iBACA,mBAATwZ,IAChBlhC,EAAMgD,OAAS,GAAGk+B,EAAKtpC,EAAO8vB,mBAEhC1nB,EAAM82G,SAAc1jH,OAAOy4B,WAAawqF,EAAelzG,KAAOvL,EAAO2L,YAAclI,EAAlE,KACV2E,CACT,CApNqCk3G,CAAkB,CAC/Cb,iBAAgBz+G,SAAQwK,YAAW8+B,OAAM7lC,SAAQi7G,SAAQC,WAI9B,OAA3BjB,EAAetO,QAEnB,GAAa,aAAT9lE,EACFo0E,EAAetO,QAAU,CAAE7jG,KAAM,EAAGwB,IAAK,OACpC,CACL,MAAMxB,EAAOiW,OAAOhX,EAAUpC,MAAMmD,KAAKtN,QAAQ,KAAM,KACjD8O,EAAMyU,OAAOhX,EAAUpC,MAAM2E,IAAI9O,QAAQ,KAAM,KACrDy/G,EAAetO,QAAU,CACvB7jG,KAAMA,EAAO,EAhHY,EAgHmBA,EAAO,EACnDwB,IAAKA,EAAM,EAjHc,EAiHiBA,EAAM,EAEpD,CACF,EAIIwyG,GACA/jH,OAAO0jB,sBAAsBy+F,EAC/B,GAAE,GACD,KAEI,KAAA6B,cACL,kBAAC,OACCr3G,UAAW,sBAAsBA,GAAa,KAC9CmmG,IAAKkP,GAEL,kBAAC,8HACCrB,SAAUsB,GACNH,GAEJ,kBAAC,OACCn1G,UAAU,sCACVmmG,IAAKmP,GAEJxtD,KAIPxoD,SAASsuB,cAAc,QAE3B,CAEAmnF,GAAkBvP,UAAY,CAE5B5kG,QAAS,eAAqBlM,QAC9BsL,UAAW,WAQXmhC,KAAM,cAAoB,CACxB,UAAgB,CAAC,OAAQ,eAAgB,aAAc,aACvD,WAMF7lC,OAAQ,WAOR05G,aAAc,UAAgB,CAAC,OAAQ,MAAO,SAAU,OAAQ,UAKhEC,YAAa,UAAgB,CAAC,OAAQ,WAAY,eAIlDC,kBAAmB,UAAgB,CAAC,MAAO,SAAU,OAAQ,UAI7DC,uBAAwB,eAAqBzgH,SAG/C,UAAe,IAAAiyG,YAAWoO,IC9L1B,SAASuC,IAAS,SAAExvD,IAClB,OACE,kBAAC,OAAI9nD,UAAU,iBACb,kBAAC,GAAO,CAACunB,MAAM,QACXugC,GAIV,CAEAwvD,GAAS9R,UAAY,CACnB19C,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,YCpBA,SAASyvD,GAAS18G,GAChB,MAAM,UACJmF,EAAS,SACT8nD,EAAQ,SACRryB,GACE56B,EAEJ,OACE,kBAAC,MAAGmF,UAAW,GAAGA,KAAay1B,EAAW,2BAA6B,MACpEqyB,EAGP,CAEAyvD,GAAS/R,UAAY,CACnB19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEF9nD,UAAW,WACXy1B,SAAU,UAGZ8hF,GAAS7Q,aAAe,CACtB1mG,UAAW,IAGb,YC5BA,SAASw3G,GAAK38G,GACZ,MAAM,UACJmF,EAAS,SACT8nD,EAAQ,MACRp4B,EAAK,WACL+nF,EAAU,MACVlwF,EAAK,MACLtnB,GACEpF,EAyBJ,OACE,kBAAC,OAAImF,UAAW,sBAAqBy3G,EAAa,8BAAgC,UAEpE,IAAV/nF,EAEI,kBAAC,SAAMzvB,MAAO,CACZy3G,UAAWD,GAAc,SAGvB/nF,GAGJ,KAEN,kBAAC,MAAG1vB,UArCc,MACpB,IAAIkpG,EAAa,CAAC,YAUlB,OARI3hF,GACF2hF,EAAW/zG,KAAK,aAAaoyB,KAG3BvnB,IACFkpG,EAAaA,EAAWn6E,OAAO/uB,EAAUvK,MAAM,OAG1CyzG,EAAWtzG,KAAK,IAAI,EA0BVqzG,GAAiBhpG,MAvBf,MACnB,MAAM03G,EAAYC,gBAAgB33G,GAKlC,OAJIw3G,IACFE,EAAUD,UAAY,eAAeD,aAGhCE,CAAS,EAiByBE,IACpC/vD,GAIT,CAEA0vD,GAAKhS,UAAY,CACf19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEF9nD,UAAW,WACX0vB,MAAO,WACP+nF,WAAY,WACZlwF,MAAO,WACPtnB,MAAO,eAAqBvL,SAG9B8iH,GAAK9Q,aAAe,CAClBn/E,MAAO,UACPtnB,MAAO,CAAC,GAGVu3G,GAAKhP,KAAO,GAEZ,YC5EA,SAASsP,IAAO,MACd9N,EAAQ,kBACRliD,EAAQ,KACR1kD,EAAI,MACJke,EAAK,MACL05E,EAAK,IACL+c,EAAG,SACHC,EAAQ,SACRC,IAEA,MAAMC,EAAkBF,EAAW,kBAAC,KAAEh4G,UAAU,sBAAuBg4G,GAAiB,KACxF,OACE,kBAAC,WAAQh4G,UAAW,gBAAei4G,EAAW,yBAA2B,KACvE,kBAAC,OAAIj4G,UAAW,2CAA2CgqG,KACxD+N,GACC,kBAAC,OAAI/3G,UAAU,oBAAoB+3G,GAGnC/c,EAEI,kBAAC,WACC,kBAAC,UAAKA,GACJkd,GAGJA,EAEN,kBAAC,OAAIl4G,UAAU,0BACZoD,GACC,kBAAC,OAAIpD,UAAU,qBAAsBoD,GAEtCke,GACC,kBAAC,OAAIthB,UAAU,sBAAuBshB,KAI1CwmC,EAGR,CAEAgwD,GAAOtS,UAAY,CACjBwE,MAAO,WACPliD,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEFkzC,MAAO,WACPgd,SAAU,WACVD,IAAK,cAAoB,CACvB,YACA,WAEF30G,KAAM,cAAoB,CACxB,YACA,WAEFke,MAAO,cAAoB,CACzB,YACA,WAEF22F,SAAU,UAGZ,YClEA,SAASE,IAAe,SAAErwD,IACxB,OACE,kBAAC,MAAG9nD,UAAU,uBACX8nD,EAGP,CAEAqwD,GAAe3S,UAAY,CACzB19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,cAIJ,YChBA,SAASswD,IAAW,SAAEtwD,IACpB,OACE,kBAAC,MAAG9nD,UAAU,kBACX8nD,EAGP,CAEAswD,GAAW5S,UAAY,CACrB19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,cAIJswD,GAAW5P,KAAO,GAElB,YCrBa6P,IAAgB,IAAAnT,gcCI7B,SAASoT,GAAU,YACjBxwD,SAAAA,EAAA,UACAywD,EAAS,UACTv4G,GAHiB,EAIdslG,mKAAA,CAJc,EAId,CAHH,WACA,YACA,cAGA,MAAM2D,GAAgB,IAAA9B,cACpB,IAAM,CACJ,kBACAnnG,EACAu4G,GAAa,cACbnvG,OAAO4uB,SAASpiC,KAAK,MACvB,CAACoK,EAAWu4G,IAGd,OACE,kBAACF,GAAcG,SAAd,MAEIC,GACCA,EAAcC,YAEV,kBAAC,WACKpT,GADL,CAECK,UAAW8S,EAAc9S,UACzB3lG,UAAWipG,MAETnhD,GAIJ,kBAAC,eACKw9C,GADL,CAECtlG,UAAWipG,MAETnhD,IAOlB,CAEAwwD,GAAU9S,UAAY,CACpB19C,SAAU,cAAoB,CAC5B,YACA,SACA,aAEFywD,UAAW,SACXv4G,UAAW,YAGb,YCxDA,SAAS24G,GAAY99G,GACnB,MAAM,SAAEitD,GAAajtD,EACrB,OACE,kBAAC,OAAImF,UAAU,qBACX8nD,EAGR,CAEA6wD,GAAYnT,UAAY,CACtB19C,SAAU,cAAoB,CAC5B,YACA,SACA,cAIJ,YCdA,MAAM8wD,WAAoB,EAAAC,UACxB,aAAA5P,CAAcpuG,GACZ,MAAM,UAAEmF,GAAc5M,KAAKyH,MAC3B,IAAIquG,EAAa,CAAC,qBAUlB,OARIruG,EAAM69G,aACRxP,EAAW/zG,KAAK,eAGd6K,IACFkpG,EAAaA,EAAWn6E,OAAO/uB,EAAUvK,MAAM,OAG1CyzG,EAAWtzG,KAAK,IACzB,CAEA,MAAA67G,GACE,MAAM,SACJ3pD,GACE10D,KAAKyH,MAET,OACE,kBAACw9G,GAAcG,SAAd,MAEIC,IACC,MAAMK,EAAoC,UAAxBL,EAAclxF,MAAoB,KAAO,MACrDu+E,EAAW2S,EAAc9S,UAAY,eAAiB,aAE5D,OACE,kBAACmT,EAAA,CACC94G,UAAW5M,KAAK61G,cAAcwP,GAC9BzS,QAASyS,EAAcC,YAAcD,EAAcM,cAAW,GAE5DjxD,EAEA2wD,EAAcC,YACV,kBAAC,OAAI14G,UAAW,sBAAsBy4G,EAAcO,2BAA2B,kBAAC,EAAI,CAAC7xG,KAAM2+F,KAC3F,KAER,GAMZ,EAGF8S,GAAYpT,UAAY,CACtB19C,SAAU,cAAoB,CAC5B,YACA,SACA,aACC29C,WACHzlG,UAAW,YAGb,YCrDA,SAASi5G,GAAMp+G,GACb,MAAM,SACJitD,EAAQ,UACR9nD,EAAS,UACT2lG,EAAS,YACT+S,EAAW,MACXnxF,EAAK,iBACL2xF,EAAgB,wBAChBF,EAA0B,SACxBn+G,GACGs+G,EAAgBC,IAAqB,IAAA/S,UAASV,IAAa,IAElE,IAAA6B,YAAU,KACJ7B,IAAcwT,GAChBC,EAAkBzT,EACpB,GACC,CAACA,IAEJ,MAmBM0T,GAAe,IAAAlS,cAAY,KAC/BiS,GAAmBD,GAEfD,GACFA,GAAkBC,EACpB,GACC,CAACA,EAAgBD,IAEdr6F,GAAU,IAAAynF,UAAQ,KAAM,CAC5BoS,cACA/S,UAAWwT,EACXJ,SAAUM,EACV9xF,QACAyxF,6BACE,CAACN,EAAaS,EAAgBH,EAAyBzxF,EAAO8xF,IAElE,OACE,kBAAC,OAAIr5G,UApCe,MACpB,IAAIkpG,EAAa,CAAC,aAClB,MAAMoQ,EAAa,cAAc/xF,GAAS,YACpCgyF,EAAyB,6BAA6BP,IAa5D,OAXA9P,EAAW/zG,KAAKmkH,GAChBpQ,EAAW/zG,KAAKokH,GAEZv5G,IACFkpG,EAAaA,EAAWn6E,OAAO/uB,EAAUvK,MAAM,OAG7C0jH,GACFjQ,EAAW/zG,KAAK,wBAGX+zG,EAAWtzG,KAAK,IAAI,EAoBXqzG,IACd,kBAACoP,GAAc5R,SAAd,CAAuB/vG,MAAOmoB,GAEN,mBAAbipC,EACJA,EAAS,CACT0xD,eAAgBH,IAEhBvxD,GAKd,CAEAmxD,GAAMzT,UAAY,CAChB19C,SAAU,cAAoB,CAC5B,SACA,YACA,SACA,aAEF9nD,UAAW,WACX04G,YAAa,SACbM,wBAAyB,WACzBrT,UAAW,SACXp+E,MAAO,WACP2xF,iBAAkB,UAGpBD,GAAMzO,KAAO,GACbyO,GAAMxO,OAAS,GACfwO,GAAMxQ,OAAS,GAEf,YC3FA,SAASgR,GAAK5+G,GACZ,MAAM,SACJitD,EAAQ,UACR9nD,EAAS,MACTunB,GACE1sB,EAYJ,OACE,kBAAC,OAAImF,UAXe,MACpB,IAAIkpG,EAAa,CAAC,cAAe3hF,EAAM9xB,MAAM,KAAK8C,KAAK2iB,GAAM,aAAaA,OAM1E,OAJIlb,IACFkpG,EAAaA,EAAWn6E,OAAO/uB,IAG1BkpG,EAAWtzG,KAAK,IAAI,EAIXqzG,IACbnhD,EAGP,CAEA2xD,GAAKjU,UAAY,CACf19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAGF9nD,UAAW,WAEXunB,MAAO,YAGTkyF,GAAK/S,aAAe,CAClBn/E,MAAO,WAGT,gBC/CA,yWAOA,MAAMmyF,GAAN,cACE,WAAS,MAET,WAAS,MAET,WAAU,MAEV,WAAW,MAEX,WAA2B,IAE3B,WAAwB,IAExB,WAAsB,IAEtB,YAAe,GAMf,EAAApyG,CAAGR,EAAW0P,GACZ,IAAI63B,EAAO,KACO,mBAAdvnC,EACFunC,EAAO,GAAAj7C,KAAK,IACW,gBAAd0T,EACTunC,EAAO,GAAAj7C,KAAK,IACW,cAAd0T,IACTunC,EAAO,GAAAj7C,KAAK,KAGVi7C,GACFj7C,KAAK2f,YAAYs7B,EAAM73B,EAE3B,CAEA,GAAAhP,CAAIV,EAAW0P,GACb,IAAI63B,EAAO,KACO,mBAAdvnC,EACFunC,EAAO,GAAAj7C,KAAK,IACW,gBAAd0T,EACTunC,EAAO,GAAAj7C,KAAK,IACW,cAAd0T,IACTunC,EAAO,GAAAj7C,KAAK,KAGVi7C,GACFj7C,KAAKgV,eAAeimC,EAAM73B,EAE9B,CAQA,OAAAmjG,CAAQC,EAASC,EAAOptF,IAClB,GAAAr5B,KAAK,KAAU,GAAAA,KAAK,KAAW,GAAAA,KAAK,MACtCA,KAAK0mH,eAEP,GAAA1mH,KAAK,GAAWwmH,GAChB,GAAAxmH,KAAK,GAASymH,GACd,GAAAzmH,KAAK,GAAUq5B,GACf,GAAAr5B,KAAK,GAAS,MACdA,KAAK2mH,YACP,CAKA,UAAAA,GACE3mH,KAAK4mH,WAAW,cAChB,GAAA5mH,KAAK,IAAQ8U,iBAAiB,YAAa9U,KAAK8uB,YAAY9K,KAAKhkB,OACjEkM,SAAS4I,iBAAiB,YAAa9U,KAAK42B,YAAY5S,KAAKhkB,OAC7DkM,SAAS4I,iBAAiB,UAAW9U,KAAKugB,UAAUyD,KAAKhkB,MAC3D,CAMA,SAAAs0B,GAGE,OAFAt0B,KAAK4mH,WAAW,aACH,GAAA5mH,KAAK,IAAO4nB,wBACb/X,MACd,CAMA,WAAAif,CAAY3lB,GACVnJ,KAAK4mH,WAAW,eAChB,GAAA5mH,KAAK,GAAS,CACZ6mH,WAAW,EACXC,YAAa,GAAA9mH,KAAK,IAAO4nB,wBACzBm/F,aAAc59G,GAElB,CAMA,WAAAytB,CAAYztB,GAGV,GAFAnJ,KAAK4mH,WAAW,gBAEX,GAAA5mH,KAAK,IACR,OAIF,IADqBA,KAAKgnH,yBAAyB79G,GAGjD,YADAnJ,KAAKugB,YAIF,GAAAvgB,KAAK,MACR,GAAAA,KAAK,IAAe,GACpBA,KAAKi/B,YAAYjb,KAAKhkB,KAAtBA,IAGF,MAAMinH,EAAO,GAAAjnH,KAAK,IAAO+mH,aAAa32F,EAAIjnB,EAAEinB,EACtC82F,EAAclhH,KAAK4lE,KAAK,GAAA5rE,KAAK,IAAO8mH,YAAYj3G,OAASo3G,GAC/DjnH,KAAKisF,UAAU,GAAGi7B,MAAiB,YACrC,CAGA,eAAAC,CAAgBlsE,EAAM33C,GAChB23C,GAAQ51C,MAAMoB,QAAQw0C,IAASA,EAAK16C,QACtC06C,EAAKl2C,SAASo5G,IACM,mBAAPA,GACTA,EAAG76G,EACL,GAGN,CAGA,WAAAqc,CAAYs7B,EAAM73B,GACZ63B,GAAQ51C,MAAMoB,QAAQw0C,IAA6B,mBAAb73B,GACxC63B,EAAKl5C,KAAKqhB,EAEd,CAGA,cAAApO,CAAeimC,EAAM73B,GACnB,GAAI63B,GAAQ51C,MAAMoB,QAAQw0C,IAA6B,mBAAb73B,GAA2B63B,EAAK16C,OAAQ,CAChF,MAAMqE,EAAQq2C,EAAK94C,QAAQihB,GAEvBxe,GAAS,GACXq2C,EAAKrzC,OAAOhD,EAAO,EAEvB,CACF,CAEA,SAAA+6B,GACM,GAAA3/B,KAAK,KACPA,KAAKmnH,gBAAgB,GAAAnnH,KAAK,IAAqBA,KAAKs0B,YAExD,CAEA,WAAA2K,GACEj/B,KAAKmnH,gBAAgB,GAAAnnH,KAAK,IAAuBA,KAAKs0B,YACxD,CAGA,wBAAA0yF,CAAyB79G,GAIvB,OADyB,UAFG,IAAdA,EAAEi+G,QAAwBj+G,EAAEi+G,QAAUj+G,EAAEg8B,MAIxD,CAKA,SAAA5kB,GACE,GAAAvgB,KAAK,GAAS,MACdA,KAAK2/B,UAAU3b,KAAKhkB,KAApBA,GACA,GAAAA,KAAK,IAAe,EACtB,CAMA,SAAAisF,CAAUp8E,GACR,IAAIw3G,EAAYx3G,EAChB7P,KAAK4mH,WAAW,aAES,iBAAdS,IACTA,GAAa,MAGf,GAAArnH,KAAK,IAAO6M,MAAMgD,OAASw3G,EAE3BrnH,KAAKmnH,gBAAgB,GAAAnnH,KAAK,IAA0BA,KAAKs0B,YAC3D,CAMA,UAAAsyF,CAAWU,GACT,IAAK,GAAAtnH,KAAK,MAAW,GAAAA,KAAK,MAAY,GAAAA,KAAK,IACzC,MAAM,IAAIsV,MACR,GAAGgyG,iFAGT,CAMA,QAAAC,GAEE,OADAvnH,KAAK4mH,WAAW,YAC0B,WAAnC,GAAA5mH,KAAK,IAAS6M,MAAMkiF,UAC7B,CAKA,IAAA16D,GACEr0B,KAAK4mH,WAAW,QAChB,GAAA5mH,KAAK,IAAS6M,MAAMkiF,WAAa,QACnC,CAKA,IAAA36D,GACEp0B,KAAK4mH,WAAW,QAChB,GAAA5mH,KAAK,IAAS6M,MAAMkiF,WAAa,SACnC,CAKA,YAAA23B,GACE,GAAA1mH,KAAK,GAA2B,IAChC,GAAAA,KAAK,GAAwB,IAC7B,GAAAA,KAAK,GAAsB,IAC3B,GAAAA,KAAK,IAAQiV,oBAAoB,YAAajV,KAAK8uB,YAAY9K,KAAKhkB,OACpEkM,SAAS+I,oBAAoB,YAAajV,KAAK42B,YAAY5S,KAAKhkB,OAChEkM,SAAS+I,oBAAoB,UAAWjV,KAAKugB,UAAUyD,KAAKhkB,MAC9D,CAEA,MAAAwnH,GACExnH,KAAK0mH,cACP,ECzPF,SAASe,IAAsB,SAAE/yD,IAE/B,OAAO,oCAAGA,EACZ,CAMA,SAASgzD,IAAuB,SAAEhzD,IAEhC,OAAO,oCAAGA,EACZ,CDdE,eAEA,eAEA,eAEA,eAEA,eAEA,eAEA,eAEA,eCPF+yD,GAAsBrV,UAAY,CAChC19C,SAAU,eAAqB,CAAC,IAQlCgzD,GAAuBtV,UAAY,CACjC19C,SAAU,eAAqB,CAAC,IAGlC,MAAMizD,GAAe,IAAI1S,IAAeA,EAAW9vG,KAAKwrG,IAAQA,GAAM,IAAIr/C,SAAQt7C,OAAO4uB,SAASpiC,KAAK,KAEvG,SAASolH,IAAY,SACnBlzD,EAAQ,OACR7kD,EAAM,eACNg4G,EAAiB,KAAI,YACrB5oF,EAAc,KAAI,UAClBU,EAAY,KAAI,MAChB9yB,EAAQ,KAAI,eACZi7G,EAAiB,KAAI,aACrBC,EAAY,iBACZC,EAAgB,gBAChBC,EAAe,iBACfC,GAECnV,GACD,MAAMoV,GAAW,IAAAhU,QAAO,MAClBiU,GAAY,IAAAjU,QAAO,MACnBkU,GAAa,IAAAlU,QAAO,MAEpBmU,GDuNwB,IAAAnU,QAAO,IAAImS,IACZzS,SCtN7B,IAAAO,YAAU,KACR,GAAK+T,EAAStU,SAAYuU,EAAUvU,SAAYwU,EAAWxU,SAItDyU,EAWL,OAPAA,EAAa/B,QAAQ8B,EAAWxU,QAASsU,EAAStU,QAASuU,EAAUvU,SACrEyU,EAAap0G,GAAG,iBAAkB2zG,GAClCS,EAAap0G,GAAG,cAAe+qB,GAC/BqpF,EAAap0G,GAAG,YAAayrB,GAC7B2oF,EAAar8B,UAAUp8E,EAAQ,cAGxB,KACLy4G,EAAa5B,cAAc,CAC5B,GACA,KAEH,IAAA6B,qBACExV,GACA,KAEE,MAAM/uF,EAAQiyB,GAASA,EAAKjyB,KAAKskG,GAEjC,MAAO,CACLh0F,UAAWtQ,EAAKskG,EAAah0F,WAC7B23D,UAAWjoE,EAAKskG,EAAar8B,WAC7B53D,KAAMrQ,EAAKskG,EAAaj0F,MACxBD,KAAMpQ,EAAKskG,EAAal0F,MACxBmzF,SAAUvjG,EAAKskG,EAAaf,UAC5BC,OAAQxjG,EAAKskG,EAAad,QAC1BtzG,GAAI8P,EAAKskG,EAAap0G,IACtBE,IAAK4P,EAAKskG,EAAal0G,KACxB,GAEH,IAGF,IAAIo0G,EAAa,KACbC,EAAc,KAClB,MAAMC,EAAW,GAEjB,aAAe3jH,QAAQ2vD,GAAWi0D,IAC5BA,GAAS,mBAAqBA,KAC5BA,EAAM50G,OAAS0zG,GACjBe,EAAaG,EACJA,EAAM50G,OAAS2zG,GACxBe,EAAcE,EAEdD,EAAS3mH,KAAK4mH,GAElB,IAGF,MAAMn7G,EACJ,kBAAC,OAAIZ,UAAW+6G,GAAa,wBAAyBO,GAAoB,OAAQnV,IAAKsV,EAAYx7G,SACjG,kBAAC,OAAID,UAAU,gCACf,kBAAC,OAAImmG,IAAKqV,EAAWx7G,UAAW+6G,GAAa,gCAAiCM,IAE5E,kBAAC,OAAIr7G,UAAU,6CAA6C47G,GAC5D,kBAAC,OAAI57G,UAAU,uCAAsC,KACrD,kBAAC,OAAIA,UAAU,8CAA8C67G,IAG/D,kBAAC,OAAI1V,IAAKoV,EAAUv7G,UAAW+6G,GAAa,+BAAgCK,GAAmBn7G,MAAOk7G,GACnGW,IAKP,GAAIZ,EACF,OAAO,KAAA7D,cAAaz2G,EAAStB,SAASsuB,cAAcstF,GAExD,CAEAF,GAAYxV,UAAY,CACtB19C,SAAU,eAAqB,CAAC,GAChC7kD,OAAQ,WACRg4G,eAAgB,SAChB5oF,YAAa,SACbU,UAAW,SACXmoF,eAAgB,WAChBj7G,MAAO,eAAqB,CAAC,GAC7Bk7G,aAAc,eAAqB,CAAC,GACpCC,iBAAkB,WAClBC,gBAAiB,WACjBC,iBAAkB,YAEpB,MAAMU,IAAkB,IAAArV,YAAWqU,IACnCgB,GAAgBC,WAAapB,GAC7BmB,GAAgBE,YAAcpB,GAE9B,YC/IaqB,IAAc,IAAAjX,iBCA3B,IAAe,IAAAA,2WCIf,SAASkX,GAAWvhH,GAClB,MAAM,OACJwhH,EAAM,QACNC,EAAO,UACPC,EAAS,QACTC,EAAO,SACP10D,EAAQ,aACR20D,EAAY,QACZC,EAAO,OACPC,EAAM,UACNC,EAAS,KACTp3G,EAAI,SACJq3G,EAAQ,eACRC,EAAc,KACdC,GACEliH,GAEJ,IAAA2sG,YAAU,KACR,MAAMwV,EAAc,MAAKN,GAEpBE,EAAUp3G,IACb62G,EAAOW,EAAax3G,EACtB,GACC,CAACk3G,EAASl3G,IAEb,MAAMy3G,EAAc,GAAYP,IAChC,IAAAlV,YAAU,KACR,GACEoV,EAAUp3G,KAAS,MAAAk3G,OAAA,EAAAA,EAAS1hB,UACxB,MAAAiiB,OAAA,EAAAA,EAAajiB,UAAU,MAAA0hB,OAAA,EAAAA,EAAS1hB,SAAS,MAAAiiB,OAAA,EAAAA,EAAaxnF,YAAainF,EAAQjnF,UAC/E,CACA,MAAMunF,EAAc,MAAKN,GACzBH,EAAUS,EAAax3G,EACzB,IACC,CAACk3G,EAASl3G,EAAMy3G,EAAaF,KAEhC,IAAAvV,YAAU,KACRgV,EAAQh3G,GACD,IAAM82G,EAAQ92G,KACpB,IAEH,MAAM03G,GAAe,IAAA5W,UAAQ,MACtB5xG,OAAOwD,KAAK6kH,GAAMppH,SAInBmpH,IAA4C,IAA1BC,EAAKL,EAAQzmH,IAAIuxB,OAIlCq1F,EAGEJ,GAAgBA,EAAalnH,QAAQmnH,EAAQzmH,KAAO,EAFlD2mH,EAAUp3G,KAGlB,CAACs3G,EAAgBD,EAAUJ,EAAcC,EAASK,IAE/Cl+F,GAAU,IAAAynF,UAAQ,KAAM,CAAG9gG,OAAMm3G,YAAW,CAACn3G,EAAMm3G,IAEzD,OAAKO,EAEH,kBAAC,OAAI9kH,IAAKskH,EAAQzmH,GAAI+J,UAAU,mBAAmBC,MAAO,CAAEiD,QAASu5G,GAAgBA,EAAalnH,QAAQmnH,EAAQzmH,KAAO,EAAI,QAAU,SACrI,kBAACknH,GAAW1W,SAAX,CAAoB/vG,MAAOmoB,GACzBipC,IAJmB,IAQ5B,CAEAs0D,GAAW5W,UAAY,CACrB6W,OAAQ,SACRE,UAAW,SACXD,QAAS,SACTE,QAAS,SACT10D,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEFtiD,KAAM,eAAqB/M,OAC3BqkH,eAAgB,SAChBD,SAAU,SACVJ,aAAc,eAAqBhkH,OACnCmkH,UAAW,SACXD,OAAQ,WACRD,QAAS,eAAqBhoH,QAC9BqoH,KAAM,eAAqBroH,SAG7B,YCvFA,SAAS0oH,GAAIviH,GACX,MAAM,GAAE5E,GAAO4E,EACTwiH,GAAc,IAAAxX,YAAWsW,IACzBmB,GAAa,IAAAzX,YAAWsX,KACxB,UACJP,EAAS,aACTH,EAAY,OACZJ,EAAM,UACNE,EAAS,QACTD,EAAO,QACPE,EAAO,SACPK,EAAQ,eACRC,EAAc,KACdC,GACEM,GACE,SACJv1D,GACEjtD,GACG2K,EAAM+3G,IAAW,IAAAlX,UAAS,IAgBjC,OAdA,IAAAmB,YAAU,KACR,IAAIgW,EAGAA,EAFAF,GAAc93G,GACZ83G,EAAWX,SAAWU,EAAYpnH,GACzBqnH,EAAW93G,KAAKupB,OAAO,CAAC94B,IAK1B,CAACA,GAEdsnH,EAAQC,EAAS,GAChB,CAACF,IAEC93G,EAKH,kBAAC,IACC62G,SACAE,YACAD,UACAE,UACAI,YACAF,QAAS7hH,EACT2K,OACAm3G,OAAQU,EAAYpnH,GACpBwmH,eACAI,WACAC,iBACAC,QAECj1D,GAlBI,IAqBX,CAEAs1D,GAAI5X,UAAY,CACd19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEF7xD,GAAI,YAGNmnH,GAAI1W,aAAe,CAAC,EAEpB,sWCpEA,SAAS+W,GAAK5iH,GACZ,MAAM,SACJitD,EAAQ,UACR9nD,EAAS,GACT/J,EAAE,YACFynH,EAAW,KACXv2G,EAAI,eACJ21G,GACEjiH,GACGkiH,EAAMY,IAAW,IAAAtX,UAAS,CAAC,IAC3BoW,EAAcmB,IAAmB,IAAAvX,UAAS,KAC1CwW,EAAUgB,IAAe,IAAAxX,WAAS,IAClCyX,EAAaC,IAAkB,IAAA1X,UAAS,OAE/C,IAAAmB,YAAU,KACRoW,EAAgBE,EAAY,GAC3B,CAACA,IAEJ,MAiDME,EAAyB,CAACx4G,EAAMk3G,KACpC,MAAMc,EAAWh4G,EAAK7P,MAAM,GAC5B,IAAIsoH,GAAe,EAEfvB,EAAQwB,cACVV,EAASroH,KAAKT,OAAOwD,KAAKwkH,EAAQK,MAAM,IACxCkB,GAAe,GAGjBN,GAASQ,IACP,IAAIC,EAAW,MAAKD,GAIpB,OAFAC,EA1Cc,EAACC,EAAW74G,KAC5B,IAAI84G,EAAgB,MAAKD,GACzB,MAAMb,EAAWh4G,EAAK7P,MAAM,GAE5B,KAAO6nH,EAAS7pH,OAAS,GACvB2qH,EAAgBA,EAAcd,EAASj8F,SAGzC,MAAMnpB,EAAMolH,EAASj8F,QAOrB,YANqC,IAAjC+8F,EAAclmH,GAAKutG,UACrB2Y,EAAclmH,GAAKutG,WAAY,EAE/B2Y,EAAclmH,GAAKutG,WAAa2Y,EAAclmH,GAAKutG,UAG9C2Y,CAAa,EA2BPC,CAAUH,EAAU54G,GAExB44G,CAAQ,IAEjBR,EAAgBJ,GAChBK,EAAYI,GAERP,GACFA,EAAYhB,EACd,EAGI8B,EAAkBC,IACtB,MAAMvV,EAAa,GAMnB,OAJIuT,GAAgBA,EAAalnH,QAAQkpH,IAAU,GACjDvV,EAAW/zG,KAAK,UAGX+zG,EAAWtzG,KAAK,IAAI,EAGvB8oH,EAAU,CAACC,EAAan5G,IACvBm5G,EAKH,kBAAC,UAEGjqH,OAAOwD,KAAKymH,GAAapmH,KAAI,CAACkmH,EAAOzmH,KACnC,MAAMwlH,EAAWh4G,EAAOA,EAAKupB,OAAO,CAAC4vF,EAAYF,GAAOxoH,KAAO,CAAC0oH,EAAYF,GAAOxoH,IAC7E6vG,EAAW6Y,EAAYF,GAAO9Y,UAAY,aAAe,eAE/D,OAAgC,IAA5BgZ,EAAYF,GAAOj3F,KACd,KAIP,kBAAC,MAAGxnB,UAAWw+G,EAAeG,EAAYF,GAAOxoH,IAAKmC,IAAKumH,EAAYF,GAAOxoH,IAC5E,kBAAC,UACCkR,KAAK,SACL6+F,QAASgY,EAAuB5mG,KAAK,KAAMomG,EAAUmB,EAAYF,IACjE/L,UAAWsL,EAAuB5mG,KAAK,KAAMomG,EAAUmB,EAAYF,IACnEr0F,SAAUpyB,GAER2mH,EAAYF,GAAOzjB,MAEnB2jB,EAAYF,GAAOP,YACf,kBAAC,EAAI,CAACl+G,UAAU,oBAAoBmH,KAAM2+F,IAC1C,MAIN6Y,EAAYF,GAAOP,YAEf,kBAAC,GACCvY,UAAWgZ,EAAYF,GAAO9Y,WAE7B+Y,EAAQC,EAAYF,GAAO1B,KAAMS,IAGpCkB,EAAQC,EAAYF,GAAO1B,KAAMS,GAEzC,KAxCD,KAgDLnB,EAAS,CAACK,EAASl3G,KACvBm4G,GAASQ,GAtIY,EAACE,EAAW74G,EAAMk3G,KACvC,IAAI4B,EAAgB,MAAKD,GACzB,MAAMrB,EAAc,MAAKN,GACnBc,EAAWh4G,EAAK7P,MAAM,GAE5B,KAAO6nH,EAAS7pH,OAAS,GACvB2qH,EAAgBA,EAAcd,EAASj8F,SAElC+8F,IACHA,EAAgB,CAAC,GAOrB,OAHAtB,EAAYQ,SAAWA,EACvBc,EAAcd,EAASj8F,SAAWy7F,EAE3BsB,CAAa,EAsHEM,CAAe,MAAKT,GAAY34G,EAAMk3G,KAExDA,EAAQjnF,UACVsoF,EAAev4G,EACjB,EAGI+2G,EAAY,CAACG,EAASl3G,KAC1Bm4G,GAASQ,IACP,MAAMC,EAAW,MAAKD,GAEtB,OADAC,EAAS1B,EAAQzmH,IAAMymH,EAChB0B,CAAQ,IAGb1B,EAAQjnF,UACVuoF,EAAuBx4G,EAAMk3G,EAC/B,EAGIJ,EAAW92G,IACfm4G,GAASQ,IACP,MAAMC,EAAW,MAAKD,GAGtB,OAFAC,EAAS54G,GAAMgiB,MAAO,EAEf42F,CAAQ,GACf,EAGE5B,EAAWh3G,IACfm4G,GAASQ,IACP,MAAMC,EAAW,MAAKD,GAItB,OAFAC,EAAS54G,GAAMgiB,MAAO,EAEf42F,CAAQ,GACf,EAGExB,EAAap3G,IACjB,IAAI44G,EAAW,MAAKrB,GACpB,MAAMS,EAAWh4G,EAAK7P,MAAM,GAC5B,KAAO6nH,EAAS7pH,OAAS,GACvByqH,EAAWA,EAASZ,EAASj8F,SAG/B,MAAMnpB,EAAMolH,EAASj8F,QAErB,OAAOyW,QAAQ,MAAAomF,OAAA,EAAAA,EAAWhmH,GAAK,EAG3BymB,GAAU,IAAAynF,UAAQ,KAAM,CAC5BrwG,KACAomH,SACAC,UACAC,YACAC,UACAI,YACAH,eACAI,WACAC,iBACAC,UACE,CACF9mH,EACAomH,EACAC,EACAC,EACAC,EACAI,EACAH,EACAI,EACAC,EACAC,IAGF,OACE,kBAAC,OAAI/8G,UA5Ke,MACpB,IAAIkpG,EAAa,CAAC,YAQlB,OANAA,EAAW/zG,KAAK,aAAagS,GAAQ,aAEjCnH,IACFkpG,EAAaA,EAAWn6E,OAAO/uB,EAAUvK,MAAM,OAG1CyzG,EAAWtzG,KAAK,IAAI,EAmKXqzG,IACbyV,EAAQ3B,GACT,kBAACZ,GAAY1V,SAAZ,CAAqB/vG,MAAOmoB,GAEJ,mBAAbipC,EACJA,EAAS,CACTw0D,UACAE,YAEA10D,GAKd,CAEA21D,GAAKjY,UAAY,CACfxlG,UAAW,WACX8nD,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEFg1D,eAAgB,SAChB7mH,GAAI,WACJynH,YAAa,SACbv2G,KAAM,YAGRs2G,GAAKL,IAAM,GAEX,sWCrQA,SAASx2F,GAAQ,YACf6qF,OAAAA,EAAA,UACAzxG,EAAS,SACT8nD,EAAQ,SACR7wD,EAAW,aACXgJ,EAAK,KACL4+G,GAAO,EAAK,SACZC,EAAQ,SACRC,GAAW,EAAK,uBAChBC,EAAyB,IATV,EAUZnkH,mKAAA,CAVY,EAUZ,CATH,SACA,YACA,WACA,WACA,QACA,OACA,WACA,WACA,2BAGA,MAAOokH,EAAUC,IAAe,IAAA7Y,WAAS,GACnCoV,GAAa,IAAAlU,QAAO,MACpB4X,GAAa,IAAA5X,QAAO,MACpB6X,EAAeN,EACjB,CACA9Y,QAAS,IAAMkZ,GAAY,IAE3B,CACAG,aAAc,IAAMH,GAAY,GAChCI,aAAc,IAAMJ,GAAY,GAChC1kG,QAAS,IAAM0kG,GAAY,GAC3B5kG,OAAQ,IAAM4kG,GAAY,IAGxBK,GAAsB,IAAApY,cAAa5qG,IACnC,IAAIyiH,EAAwBG,EAAWlY,SAASpzE,MAAMzkB,IAnC9D,IAAAiZ,EAmCoE,cAAAA,EAAA,MAAAjZ,OAAA,EAAAA,EAAGL,eAAH,EAAAsZ,EAAA,KAAAjZ,EAAc7S,EAAE1E,OAAO,KAGvFqnH,GAAY,EAAM,GACjB,CAACF,KAEJ,IAAAxX,YAAU,KACRloG,SAAS4I,iBAAiB,QAASq3G,GAAqB,GACjD,IAAMjgH,SAAS+I,oBAAoB,QAASk3G,GAAqB,KACvE,CAACA,KAEJ,IAAA/X,YAAU,KACR0X,EAAYH,EAAS,GACpB,CAACA,IAEJ,MAAM19G,EAAU,CAAC,cAAerB,GAAWoJ,OAAO4uB,SAASpiC,KAAK,KAChE,OACE,kBAAC,aACCoK,UAAU,uBACVC,MAAO,IAAEiD,QAAS,gBAAmBjD,GACrCkmG,IAAKsV,GACD2D,GACAvkH,GAEHitD,EACAm3D,GACC,kBAAC,IACCr+G,QAAS66G,EACTzG,aAAc/9G,EACdi+G,kBAAkB,MAClB55G,OAAQ,IAER,kBAAC,OAAI0E,UAAWqB,EAAS8kG,IAAKgZ,GAC3BN,KACU,IAATA,EACE,kBAAC,EAAI,CAAC13G,KAAK,aAEX03G,GAGJ,kBAAC,OAAI7+G,UAAU,wBACZyxG,GAEFqN,GACC,kBAAC,GACC33G,KAAK,QACL6+F,QAAUzpG,IACRA,EAAEiK,kBACF04G,GAAY,EAAM,MASpC,CAEAt4F,GAAQ4+E,UAAY,CAClB19C,SAAU,SAAe29C,WAEzBxlG,MAAO,eAAqBvL,QAI5BuC,SAAU,WAEVw6G,OAAQ,cAAoB,CAC1B,SACA,aAGFzxG,UAAW,WAIX6+G,KAAM,cAAoB,CACxB,SACA,WAKFC,SAAU,SAEVC,SAAU,SAKVC,uBAAwB,eAAqBvmH,QAG/C,YCxHA,SAAS+mH,IAAa,KAAElnG,EAAI,MAAEk6C,EAAK,SAAEv7D,IACnC,OACEqhB,EAAK3kB,OAAS6+D,EAEV,kBAAC,GAAO,CAACi/C,OAAQn5F,EAAMrhB,YACpBqhB,EAAK4oB,UAAU,EAAGsxB,GAAO,OAI5Bl6C,CAER,CAEAknG,GAAaha,UAAY,CAEvBltF,KAAM,WAENk6C,MAAO,WAEPv7D,SAAU,YAGZ,YCoBA,SAASwoH,GAAW5kH,GAClB,MAAM,MACJnE,EAAQ,EAAC,eACTgpH,EAAc,SACdv/E,GACEtlC,GAEG8kH,EAAcC,IAAmB,IAAAvZ,UAAS3vG,GAE3CmpH,GAAa,IAAAvZ,UACjB,IA1BJ,SAAqBwZ,EAAWH,GAC9B,IAAI5qH,EACJ,MAAMgrH,EAAW,GAEjB,IAAKhrH,EAAI,EAAGA,GAAK+qH,EAAW/qH,GAAK,EApCXirH,EAqCDjrH,EArCYkrH,EAqCTN,IArCiBD,EAqCHI,GAnCb,IAOvBG,EARiB,GASdD,EATc,GAejBC,EAASP,EAfQ,GAgBdM,EAAYN,EAhBE,GAsBjBM,GAAaC,EAAS,GACnBD,GAAaC,EAAS,GAKpB,CAAC,EAAG,EAAGP,EAAiB,EAAGA,GAAgBhoH,SAASsoH,MASnDjrH,EAAIgrH,EAASG,IAAI,IACnBH,EAAS5qH,KAAK,OAAOJ,KAEvBgrH,EAAS5qH,KAAKJ,EAAI,IAzCxB,IAAwBirH,EAAWC,EAAQP,EA6CzC,OAAOK,CACT,CAYUI,CAAYT,EAAgBC,IAClC,CAACA,EAAcD,IAGjB,SAASU,EAASH,GAChBL,EAAgBK,GACZ9/E,GAAUA,EAAS8/E,EACzB,CAEA,OACEP,EAEI,kBAAC,MAAG1/G,UAAU,kBACX2/G,EAAe,GAAKD,EAAiB,GACpC,kBAAC,UACC,kBAAC,UAAO1Z,QAAS,IAAMoa,EAAST,EAAe,GAAIx4G,KAAK,UAAS,aAInE04G,EAAWtnH,KAAK0nH,GACd,kBAAC,MAAG7nH,IAAK6nH,EAAQjgH,UAAW2/G,IAAiBM,EAAS,EAAI,SAAW,IAEjEnpH,OAAOmpH,GAAQlpH,WAAW,OACtB,kBAAC,YAAK,OACN,kBAAC,UAAOivG,QAAS,IAAMoa,EAASH,EAAS,GAAI94G,KAAK,UAAW84G,MAKxEN,EAAeD,GAAkBA,EAAiB,GACjD,kBAAC,UACC,kBAAC,UAAO1Z,QAAS,IAAMoa,EAAST,EAAe,GAAIx4G,KAAK,UAAS,UAKvE,IAER,CAEAs4G,GAAWja,UAAY,CACrB9uG,MAAO,WACPgpH,eAAgB,WAChBv/E,SAAU,UAGZ,YCzGakgF,IAAe,IAAAnb,iBCIrB,SAASob,IAAW,OAAE1xG,IAC3B,MAAM,SAAE2xG,GAAa3xG,GACd4xG,EAAWC,IAAgB,IAAApa,WAAS,MAAAka,OAAA,EAAAA,EAAUtzG,UAAW,QAC1D,MAAEsnB,EAAK,YAAEmsF,IAAgB,IAAA7a,YAAWwa,IAC1C,OACE,kBAAC,MACCjoH,IAAKwW,EAAO3Y,GACZ+vG,QAASua,EAAW,KAClBG,EAAY,OAAQ,CAAE9xG,SAAQ4xG,cAC9BC,EAA2B,QAAdD,EAAsB,OAAS,MAAM,EAChD,KACJxgH,UAAWu0B,EAAMjJ,UAAY,eAAiB,IAE7C1c,EAAOrY,KACPqY,EAAO2xG,UACN,kBAAC,QAAKvgH,UAAU,eACd,kBAAC,EAAI,CAAColG,OAAO,QAAQj+F,KAAK,eAKpC,CAEAm5G,GAAW9a,UAAY,CACrB52F,OAAQ,eAAqBla,wbCzBxB,SAAS+zG,IAAO,gBAAEkY,IACvB,MAAM,MAAEpsF,EAAK,YAAEmsF,IAAgB,IAAA7a,YAAWwa,KACpC,QAAEO,EAAO,WAAEC,GAAetsF,EAS1BusF,EAAqB,KAhB7B,MAiBI,MAAMjI,EAAYgI,EAAW15G,KAC7B,OACE,kBAAC,MACCnH,UAAWu0B,EAAMjJ,UAAY,eAAiB,KAE7C,MAAAu1F,OAAA,EAAAA,EAAYE,gBACX,kBAAC,OAAI/gH,UAAW,MAAA6gH,OAAA,EAAAA,EAAY5gH,OAC1B,kBAAC44G,EAAA,SACKgI,EAAWxoH,QADhB,CAEC3B,MAAOiqH,EACPxgF,SAAWwmD,IA3BzB,IAAAt+D,EAAA,EA4BgB,MAAM24F,EAAkD,WAArC,OAAA34F,EAAA,MAAAs+D,OAAA,EAAAA,EAAG9uF,aAAH,EAAAwwB,EAAWuwE,QAAQp7F,gBAA+D,cAAlC,eAAAmpF,OAAA,EAAAA,EAAG9uF,aAAH,IAAWsP,KAAK3J,eACnFkjH,EAAY,0BAA2BM,EAAar6B,EAAE9uF,OAAOskG,QAAUnkE,QAAQ2uD,GAAG,IAGnF,SAAAk6B,EAAWxoH,aAAX,IAAmB3B,QAIxBmqH,EAAWtqH,MAAQ,SAEvB,EAIJ,OACE,kBAAC,aACC,kBAAC,UAC2B,UAAzB,MAAAsqH,OAAA,EAAAA,EAAY5pH,WAAuB6pH,IApCZF,EAAQroH,KAAKqW,GACzC,kBAAC0xG,GAAA,CACCloH,IAAKwW,EAAO3Y,GACZ2Y,aAmC4B,WAAzB,MAAAiyG,OAAA,EAAAA,EAAY5pH,WAAwB6pH,KAI7C,CAEArY,GAAOjD,UAAY,CACjBmb,gBAAiB,maC9CnB,MAAMM,WAAiB,EAAApI,UACrB,aAAA5P,GACE,MAAM,OACJjvF,EAAM,SAAEjS,EAAQ,SAAE4X,EAAQ,MAAE4H,EAAQ,oBAAI+zF,EAAmB,IACzDloH,KAAKyH,MAEHquG,EAAa,CAACoS,GAgBpB,OAdApS,EAAW/zG,KAAK,gBAEZ6kB,GACFkvF,EAAW/zG,KAAK,wBAGdoyB,EAAMm9B,QACRwkD,EAAW/zG,QAAQoyB,EAAM9xB,MAAM,KAAK8C,KAAK2iB,GAAM,uBAAuBA,QAGpEnT,GAAY4X,IACdupF,EAAW/zG,KAAK,6BAGX+zG,EAAWtzG,KAAK,IACzB,CAEA,YAAAsrH,GACE,MAAM,MAAEjtH,GAAUb,KAAKyH,MACvB,OAAK5G,EAGH,kBAAC,KAAE+L,UAAU,mCACV/L,GAJc,IAOrB,CAEA,WAAAktH,GACE,MAAM,KAAEC,GAAShuH,KAAKyH,MACtB,OAAKumH,EAGH,kBAAC,KAAEphH,UAAU,gCACVohH,GAJa,IAOpB,CAEA,MAAA3P,GACE,MAEI,EAAAr+G,KAAKyH,OADPk7C,MAAAA,EAAA,MAAOr/C,EAAK,MAAEg5B,GACZ,EADsB41E,mKAAA,CACtB,EADsB,CAAxB,QAAO,QAAO,UAEhB,OACE,kBAAC,OACCtlG,UAAW5M,KAAK61G,iBAEhB,kBAAC,OAAIjpG,UAAU,6BACb,kBAAC,aACC,kBAAC,kBACCm8F,QAASpmD,EAAQA,EAAMr/C,MAAQA,GAC3Bq/C,GACAuvD,WAHL,CAICn+F,KAAK,gBAENuoB,GAEFt8B,KAAK+tH,cACL/tH,KAAK8tH,sBAId,EAGFD,GAASzb,UAAY,CAEnBz9F,SAAU,SAEV4X,SAAU,SAEV3F,OAAQ,SAERuN,MAAO,WAEPtzB,MAAO,cAAoB,CACzB,WACA,WAGFmtH,KAAM,WACNrrE,MAAO,eAAqBrhD,QAE5Bg7B,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAGFn5B,KAAM,WAENG,MAAO,cAAoB,CACzB,WACA,WAGFylG,QAAS,cAAoB,CAC3B,WACA,WAGFh8D,SAAU,SAEVm7E,iBAAkB,YAGpB,sWCzHO,SAAS+F,IAAK,IAAE7+E,EAAG,IAAE7zB,IAH5B,cAIE,IAAKA,EAAItW,OAAOmqC,EAAIvsC,IAClB,OAAO,kBAAC,WAGV,GAAiB,WAAbusC,EAAIr7B,KACN,OACE,kBAAC,SACCnH,WAAW,SAAA2O,EAAItW,OAAOmqC,EAAIvsC,IAAIqrH,cAAnB,IAA4BthH,YAAa,MAChD,SAAA2O,EAAItW,OAAOmqC,EAAIvsC,UAAf,IAAoBsrH,QAEvB,SAAA5yG,EAAItW,OAAOmqC,EAAIvsC,UAAf,IAAoBS,OAI3B,MAAMmiH,EAAYr2E,EAAIr7B,KACtB,OACE,kBAAC,SACCnH,WAAW,SAAA2O,EAAItW,OAAOmqC,EAAIvsC,IAAIqrH,cAAnB,IAA4BthH,YAAa,MAChD,SAAA2O,EAAItW,OAAOmqC,EAAIvsC,UAAf,IAAoBsrH,QAExB,kBAAC1I,EAAA,MACKlqG,EAAItW,OAAOmqC,EAAIvsC,IAAI4E,OAEtB8T,EAAItW,OAAOmqC,EAAIvsC,IAAI6xD,SAAWn5C,EAAItW,OAAOmqC,EAAIvsC,IAAI6xD,SAAW,MAIrE,CCzBO,SAAS05D,IAAI,IAAE7yG,EAAG,MAAE3W,IAN3B,QAOE,MAAM,MAAEu8B,EAAK,YAAEmsF,IAAgB,IAAA7a,YAAWwa,KACpC,QAAEO,EAAO,WAAEC,GAAetsF,EAE1BktF,GAAqB,IAAAta,cAAY,IAErC,kBAAC,UACC,kBAAC,IACCzwG,MAAOiY,EAAI8mB,SACX0K,SAAWwmD,GAAM+5B,EAAY,eAAgB,CAAE1oH,QAAOy9B,SAAUkxD,EAAE9uF,OAAOskG,cAG5E,CAACxtF,EAAI8mB,SAAUz9B,IAElB,OACE,kBAAC,MACCguG,QAAS,SAAAr3F,EAAI4yG,aAAJ,IAAYvb,QACrBhmG,UAAW,SAAA2O,EAAI2yG,cAAJ,IAAathH,WAEvB6gH,GAAsC,SAAxBA,EAAW5pH,UAAuBwqH,IAChDb,EAAQroH,KAAKiqC,GACZ,kBAAC6+E,GAAI,CAACjpH,IAAKoqC,EAAIvsC,GAAIusC,MAAU7zB,MAAU3W,YAExC6oH,GAAsC,UAAxBA,EAAW5pH,UAAwBwqH,IAGxD,CC5BO,SAASjX,KACd,MAAM,MAAEj2E,IAAU,IAAAsxE,YAAWwa,KACvB,KAAE33E,GAASnU,EAEjB,OACE,kBAAC,aAGGmU,EAAKnwC,KAAI,CAACoW,EAAK5Z,IAAM,kBAACysH,GAAG,CAACppH,IAAKrD,EAAG4Z,MAAU3W,MAAOjD,MAI3D,CFiBAssH,GAAK7b,UAAY,CACfhjE,IAAK,eAAqB9tC,QAC1Bia,IAAK,eAAqBja,QAC1BsD,MAAO,YCFTwpH,GAAIhc,UAAY,CACd72F,IAAK,eAAqBja,QAC1BsD,MAAO,2bEnBT,SAAS0pH,IAAM,MACbhrH,EAAK,SAAEypC,EAAQ,cAAEwhF,EAAa,QAAEC,EAAO,kBAAEC,IAlB3C,MAoBE,MAAOttF,EAAOlR,IAAY,IAAAgjF,UAAS,OAC5Byb,EAAaC,IAAkB,IAAA1b,UAAS,OACzC2b,GAAe,IAAAza,QAAO,MACtB0a,GAAW,IAAA9a,cAAY,CAAC3kE,EAAKg+E,KACjCn9F,GAAU4a,GAAe,SACpBA,GADoB,CAEvBzV,KAAM,CACJ05F,MAAO1B,EACPh+E,UAED,GACF,IAEG2/E,GAAgB,IAAAhb,cAAa1xE,IACjCpS,GAAU4a,GAAe,SACpBA,GADoB,CAEvByK,KAAMzK,EAAUyK,KAAKnwC,KAAKoW,GAAS,SAAKA,GAAL,CAAU8mB,kBAC5C,GACF,IAEG2sF,GAAY,IAAAjb,cAAY,EAAGnvG,QAAOy9B,eACtCpS,GAAU4a,GAAe,SACpBA,GADoB,CAEvByK,KAAM,IACDzK,EAAUyK,KAAK/yC,MAAM,EAAGqC,GAC3B,SAAKimC,EAAUyK,KAAK1wC,IAApB,CAA4By9B,gBACzBwI,EAAUyK,KAAK/yC,MAAMqC,EAAQ,OAEjC,GACF,IAEGqqH,GAAgB,IAAAlb,cAAa1+F,IACjC4a,GAAU4a,GAAe,SACpBA,GADoB,CAEvBqkF,WAAY,SACPrkF,EAAUqkF,YADH,CAEVrb,QAASx+F,EAAO,OAEjB,GACF,IAEG85G,EAAM,CACVtmE,SAAU,IAAM1nB,EAChBlR,SAAW+a,GAAa/a,EAAS+a,IAG7BsiF,GAAc,IAAAvZ,cAAY,CAACv9F,EAASnB,KACxCs5G,EAAen4G,GACC,SAAZA,GACFq4G,EAASx5G,EAAKmG,OAAO3Y,GAAIwS,EAAK+3G,WAGhB,4BAAZ52G,GACFu4G,EAAc15G,GAGA,iBAAZmB,GACFw4G,EAAU35G,GAGI,sBAAZmB,GACFy4G,EAAc55G,EAChB,GACC,CAACw5G,EAAUE,EAAeC,EAAWC,IAElCxjG,GAAU,IAAAynF,UAAQ,KAAM,CAAG/xE,QAAOmsF,iBAAgB,CAACnsF,EAAOmsF,IAUhE,IARA,IAAAlZ,YAAU,IAAMnkF,EAAS3sB,IAAQ,CAACA,KAClC,IAAA8wG,YAAU,KACJrnE,GACFA,EAAS2hF,EAAavtF,EAAOguF,GAE/BR,EAAe,MAAM,GACpB,CAACxtF,KAECA,EACH,OAAO,kBAAC,GAAM,CAACt9B,SAAS,aAG1B,GAAIs9B,EAAMmU,MAAQ,EAChB,OAAO,kBAAC,GAAO,CAACnhB,MAAM,QAAQo6F,GAAiB,qBAGjD,MAAMa,EAAW,IACf,kBAAC,SAAMxiH,UAAU,YAAYmmG,IAAK6b,GAChC,kBAACvZ,GAAM,CAACkY,gBAAiBpsF,EAAMmU,KAAK+5E,OAAM,EAAGhtF,cAAeA,MAC5D,kBAAC+0E,GAAI,OAIT,OACE,kBAAC6V,GAAa5Z,SAAb,CAAsB/vG,MAAOmoB,GAC5B,kBAAC,OAAI7e,UAAW,eAAc,SAAAu0B,EAAM+sF,cAAN,IAAethH,YAAa,KAAMC,MAAO,CAAEgD,OAAQsxB,EAAMjJ,UAAYiJ,EAAMjJ,UAAY,OAAQr0B,SAAU,aAEnI2qH,GAAW,kBAAC,GAAM,CAAC3qH,SAAS,WAAWi0G,gBAAc,IAGrD2W,GAAqBttF,EAAM+tF,WAEvB,kBAAC,IACCtO,SAAUgO,EACVpO,QAASr/E,EAAM+tF,WAAWI,WAAanuF,EAAM+tF,WAAWrb,QACxD6M,SAAW6O,GAAQjC,EAAY,oBAAqBiC,GACpD5O,WAAYx/E,EAAM+tF,WAAWrb,QAAU,EACvC4M,aAAa,GAEX2O,KAGJA,KAGPjuF,EAAM+tF,aAAeT,GACpB,kBAAC,OAAI7hH,UAAU,wBACb,kBAAC,IACCtJ,MAAO69B,EAAM+tF,WAAWrb,QAAU,EAClC2b,cAAeruF,EAAM+tF,WAAWO,QAAU,EAC1CnD,eAAgBnrF,EAAM+tF,WAAWI,WAAa,EAC9CviF,SAAWwiF,GAAQjC,EAAY,oBAAqBiC,MAMhE,CAEAjB,GAAMlc,UAAY,CAEhB9uG,MAAO,UAAgB,CAErBkqH,QAAS,YAAkB,UAAgB,CAEzC3qH,GAAI,WAAiBwvG,WAErBlvG,KAAM,WAEN4Q,KAAM,cAAoB,CAExB,WAEA,YAEA,WAEFo5G,SAAU,cAAoB,CAE5B,SAEA,UAAgB,CAEdtzG,QAAS,kBAKfy7B,KAAM,YAAkB,UAAgB,CAAC,IAEzCm4E,WAAY,UAAgB,CAAC,GAE7ByB,WAAY,UAAgB,CAAC,GAE7Bh3F,UAAW,WAEXg2F,QAAS,UAAgB,CAEvBthH,UAAW,eAEZylG,WAEHtlE,SAAU,SAEVwhF,cAAe,WAEfC,QAAS,SAETC,kBAAmB,UAGrBH,GAAMhb,aAAe,CACnBkb,SAAS,EACTC,mBAAmB,EACnBF,cAAe,oBACfxhF,SAAU,MAGZ,2OC1MA,SAAS2iF,GAAO,YACdh7D,SAAAA,EAAA,MACAkiD,EAAK,UACLhqG,EAAS,OACT1E,EAAM,KACN6lC,GALc,EAMXmkE,mKAAA,CANW,EAMX,CALH,WACA,QACA,YACA,SACA,SAGA,MAAMjkG,EAAU,CACd,UACArB,EACAgqG,GAAS,kBAAkBA,OACxB7oE,EAAK1rC,MAAM,KAAK8C,KAAKwqH,GAAU,YAAYA,UAC1CznH,EAASA,EAAO7F,MAAM,KAAO,IAAI8C,KAAKyqH,GAAY,mBAAmBA,OACzE55G,OAAO4uB,SAASpiC,KAAK,KAEvB,OACE,kBAAC,iIAAIoK,UAAWqB,GAAaikG,GACzBx9C,EAGR,CAEAg7D,GAAOtd,UAAY,CAKjBwE,MAAO,WAEPhqG,UAAW,WAIXmhC,KAAM,WAAiBskE,WAIvBnqG,OAAQ,WACRwsD,SAAU,cAAoB,CAC5B,YACA,WACA,WACA,YAIJ,0SC9CA,SAAS,GAAI,YACX9nD,UAAAA,EAAA,UACAijH,EAAS,SACTn7D,GAHW,EAIRw9C,mKAAA,CAJQ,EAIR,CAHH,YACA,YACA,aAGA,MAAMjkG,EAAU,CACd,UACArB,EACAijH,GAAa,aACbA,GAAa,uBACb75G,OAAO4uB,SAASpiC,KAAK,KAEvB,OACE,kBAAC,sIAAQ0vG,WAAR,CAActlG,UAAWqB,MACtBymD,QAGR,CAEA,GAAI09C,UAAY,CACd19C,SAAU,cAAoB,CAC5B,YACA,WAGF9nD,UAAW,WAEXijH,UAAW,UAGb,YCjCaC,IAAkB,IAAAhe,iBCI/B,SAASie,GAAatoH,GACpB,MAAM,mBACJuoH,EAAkB,SAClBt7D,EAAQ,SACRu7D,EAAQ,KACRzgH,EAAI,OACJ/K,EAAM,MACNmjG,EAAK,QACLgL,GACEnrG,EACEyoH,GAAoB,IAAAnc,cAAY,CAACoc,EAAiBC,KACtDD,EAAgBE,aAAaJ,EAAUG,GAEnCxd,GAASA,EAAQqd,EAAS,GAC7B,IAEH,OACE,kBAACH,GAAgB1K,SAAhB,MAEI+K,GACC,kBAAC,MACCvd,QAAS,IAAMsd,EAAkBC,EAAiB1oH,GAClDk3G,QAAS,QAGPqR,GACI,IAAAzZ,cAAayZ,EAAoB,CAAC,GAElC,kBAAC,KAAExgH,OAAY/K,UAEXwrH,GACGE,EAAgBG,eAAiBL,GACjCE,EAAgBI,cACf,kBAAC,EAAI,CAACx8G,KAAK,UACX,KAEN,kBAAC,YACE6zF,GAASlzC,MAUhC,CAEAq7D,GAAa3d,UAAY,CACvB19C,SAAU,cAAoB,CAC5B,YACA,SACA,aAEFs7D,mBAAoB,cAAoB,CACtC,YAAkB,UAClB,SACA,cAEFC,SAAU,WACVzgH,KAAM,WACN/K,OAAQ,WACRmuG,QAAS,SACThL,MAAO,YAGT,2OChEA,MAAM4oB,WAAiB,EAAA/K,UACrB,wBAAOgL,CAAkBlkH,EAAImkH,GAC3B,MAAMh2F,EAAcz6B,OAAOy4B,WAI3B,OAHensB,EAAGqb,wBACO5X,KAAO0gH,GAEZh2F,CACtB,CAEA,yBAAOi2F,CAAmBpkH,EAAIqkH,GAC5B,MAAMj2F,EAAe16B,OAAOq4B,YACtBpwB,EAASqE,EAAGqb,wBACZipG,EAAWtkH,EAAG6gB,aAGpB,OAFmBllB,EAAOsJ,IAAMq/G,EAAWD,GAEtBj2F,CACvB,CAEA,WAAA5nB,CAAYtL,GACVqpH,MAAMrpH,GAEN,MAAM,aACJ6oH,EAAY,KACZx+G,GACE9R,KAAKyH,MAETzH,KAAKmhC,MAAQ,CACX69E,OAAQltG,EACRw+G,aAAcA,GAAgB,MAGhCtwH,KAAK+wH,aAAc,IAAArS,aACnB1+G,KAAKgxH,iBAAkB,IAAAtS,aACvB1+G,KAAKixH,mBAAoB,IAAAvS,aACzB1+G,KAAKqwH,aAAerwH,KAAKqwH,aAAarsG,KAAKhkB,MAC3CA,KAAKkxH,eAAiBlxH,KAAKkxH,eAAeltG,KAAKhkB,MAC/CA,KAAKmxH,mBAAqBnxH,KAAKmxH,mBAAmBntG,KAAKhkB,KACzD,CAEA,iBAAAoxH,GACEllH,SAAS4I,iBAAiB,YAAa9U,KAAKmxH,oBAExCnxH,KAAKgxH,gBAAgBnd,SACvB7zG,KAAKqxH,WAET,CAEA,kBAAAC,CAAmBC,GACjB,MAAM,KACJz/G,GACE9R,KAAKyH,OACH,OACJu3G,GACEh/G,KAAKmhC,MAELnhC,KAAKgxH,gBAAgBnd,SACvB7zG,KAAKqxH,YAIJE,EAAUz/G,OACC,IAATA,GACCktG,GAEJh/G,KAAKkxH,iBAILK,EAAUz/G,OACE,IAATA,GACAktG,GAEHh/G,KAAKwxH,eAET,CAEA,oBAAAC,GACEvlH,SAAS+I,oBAAoB,YAAajV,KAAKmxH,mBACjD,CAEA,kBAAAA,CAAmB7sG,GAEftkB,KAAKgxH,gBAAgBnd,UAAY7zG,KAAKgxH,gBAAgBnd,QAAQl4F,SAAS2I,EAAM7f,SAC1EzE,KAAK+wH,YAAYld,UAAY7zG,KAAK+wH,YAAYld,QAAQl4F,SAAS2I,EAAM7f,SAExEzE,KAAKwxH,eAET,CAEA,YAAAnB,CAAaqB,EAAQtB,GACnB,MAAM,cAAEuB,EAAa,SAAEC,GAAa5xH,KAAKyH,MACnCymF,EAAU,CACdoiC,aAAcoB,EACdG,kBAAmBzB,GAGjBuB,IACFzjC,EAAQ8wB,QAAS,GAGnBh/G,KAAKiwB,SAASi+D,GAEV0jC,GAAgC,mBAAbA,GACrBA,EAASF,EAEb,CAEA,SAAAL,GACE,MAAM,QACJvhH,EAAO,SACPjM,EAAQ,OACRqE,GACElI,KAAKyH,MAEHqqH,EAAa9xH,KAAKgxH,gBAAgBnd,QAExC,GAAI3rG,EAGF,OAFA4pH,EAAWjlH,MAAM2E,IAAM,GAAGtJ,EAAOsJ,WACjCsgH,EAAWjlH,MAAMmD,KAAO,GAAG9H,EAAO8H,QAIpC,MAAMipD,EAAYjzD,KAAKC,IACrBiG,SAASkB,gBAAgB6rD,UACzB/sD,SAASgE,KAAK+oD,UACdh5D,OAAOogH,SAEH9zG,EAAKvM,KAAK+wH,YAAYld,QACtBgd,EAAWtkH,EAAG6gB,aACdwjG,EAAiBkB,EAAaA,EAAW1kG,aAAe,EACxDsjG,EAAgBoB,EAAaA,EAAWxhH,YAAc,EACtDyhH,EAAiBxlH,EAAGqb,yBACpB,KAAE5X,EAAI,IAAEwB,GAAQugH,EACtB,IAAIC,EAAY,EACZC,EAAajiH,EAIfgiH,EADExB,GAASG,mBAAmBpkH,EAAIqkH,GACtBp/G,EAAMynD,EAAY43D,EAElBr/G,EAAMynD,EAAY23D,EAAiB,EAG5CJ,GAASC,kBAAkBlkH,EAAImkH,KAClCuB,EAAajiH,EAAOzD,EAAG+D,YAAcogH,GAGtB,aAAb7sH,IACFiuH,EAAWjlH,MAAM2E,IAAM,GAAGwgH,MACV,UAAZliH,IACFgiH,EAAWjlH,MAAMmD,KAAO,GAAGiiH,QAGf,UAAZniH,IACFgiH,EAAWjlH,MAAM+C,SAAW,GAAG5P,KAAKixH,kBAAkBpd,QAAQvjG,gBAElE,CAEA,oBAAA4hH,GACE,MAAM,SACJC,EAAQ,aACRC,EAAY,UACZxlH,EAAS,SACTylH,EAAQ,iBACRnK,EAAmB,IACjBloH,KAAKyH,MACT,IAAIquG,EAAa,CAACoS,EAAkB,gBAapC,OAXApS,EAAW/zG,KAAK,SAASswH,GAAY,aAEjCzlH,IACFkpG,EAAaA,EAAWn6E,OAAO/uB,EAAUvK,MAAM,OAG7C8vH,IACFrc,EAAW/zG,KAAK,oBAChB+zG,EAAW/zG,KAAKqwH,EAAe,qBAAqBA,IAAiB,yBAGhEtc,EAAWtzG,KAAK,IACzB,CAEA,aAAAqzG,GACE,MAAM,OACJmJ,GACEh/G,KAAKmhC,OACH,iBACJmxF,EAAgB,QAChBxiH,EAAO,eACPyiH,EAAc,SACd1uH,EAAQ,UACRq0B,GACEl4B,KAAKyH,MACT,IAAIquG,EAAa,CAAC,oBAAqB,gBA0BvC,OAxBI59E,GACF49E,EAAW/zG,KAAK,4BAGdi9G,GACFlJ,EAAW/zG,KAAK,UAGdwwH,IACFzc,EAAaA,EAAWn6E,OAAO42F,EAAelwH,MAAM,OAGlDyN,GACFgmG,EAAW/zG,KAAK,uBAGduwH,GACFxc,EAAW/zG,KAAK,wBAGD,aAAb8B,GACFiyG,EAAW/zG,KAAK,0BAGX+zG,EAAWtzG,KAAK,IACzB,CAEA,WAAAgwH,GACE,MAAM,SAAEC,EAAQ,qBAAEC,GAAyB1yH,KAAKyH,OAC1C,kBAAEoqH,GAAsB7xH,KAAKmhC,MAEnC,OAAKuxF,IAAwB,MAAAb,OAAA,EAAAA,EAAmBjqB,OACvCiqB,EAAkBjqB,MAGpB6qB,CACT,CAEA,aAAAjB,GACE,MAAM,QAAExZ,GAAYh4G,KAAKyH,MAEzBzH,KAAKiwB,SAAS,CACZ+uF,QAAQ,IACP,KACGhH,GACFA,GACF,GAEJ,CAEA,cAAAkZ,GACE,MAAM,OACJlS,GACEh/G,KAAKmhC,MACL69E,EACFh/G,KAAKwxH,gBAKPxxH,KAAKiwB,SAAS,CACZ+uF,QAAQ,GAEZ,CAEA,MAAAX,GACE,MAAM,SACJsU,EAAQ,aACRC,EAAY,QACZC,EAAO,eACPC,EAAc,iBACdR,EAAgB,SAChBD,EAAQ,SACR39D,EAAQ,MACRp4B,EAAK,iBACLy2F,EAAgB,kBAChBC,EAAiB,cACjBzC,EAAa,SACb57G,GAAW,EAAK,UAChBujB,GACEl4B,KAAKyH,OACH,aACJ6oH,EAAY,OACZtR,GACEh/G,KAAKmhC,MACH8xF,EAAqBX,EAAmB,MAAQ,KACtD,OACE,kBAAC,OACC1lH,UAAW5M,KAAKkyH,uBAChBnf,IAAK/yG,KAAK+wH,aAGRz0F,EAEI,kBAAC,SAAM1vB,UAAU,sBACd0vB,GAGH,KAGJ02F,EAEI,kBAAC,GACCpmH,UAAW,yBAA0BoyG,EAAU,iCAAmC,OAAO4T,IACzFz+F,MAAOk+F,GAAY,UACnBzf,QAAS5yG,KAAKkxH,eACdxe,SAAUqgB,EAAmB,eAAiB,KAC9Crd,aAAa,QACb3nE,KAAM8kF,GAAW,KACjB9+G,KAAK,SACLY,WACAo+F,IAAK/yG,KAAKixH,mBAER6B,GAAkB9yH,KAAKwyH,eAG3B,KAGJxT,EACI,kBACA,kBAAC8Q,GAAgBzc,SAAhB,CAEC/vG,MAAO,CACL+sH,aAAcrwH,KAAKqwH,aACnBC,eACAC,kBAIAvR,EAEI,kBAACiU,2HAAA,EACCrmH,UAAW5M,KAAK61G,gBAChB9C,IAAK/yG,KAAKgxH,iBAEL94F,GAAa,CACdrrB,MAAO,CACLqrB,eAMiB,mBAAbw8B,EACJA,EAAS,CACT88D,cAAexxH,KAAKwxH,cAAcxtG,KAAKhkB,QAEvC00D,GAIR,MAGRxoD,SAASsuB,cAAcm4F,GAAY,SAEnC,KAIZ,EAGFnC,GAASpe,UAAY,CACnBugB,SAAU,WACVj+D,SAAU,cAAoB,CAC5B,YACA,SACA,WACA,WAEFi9D,cAAe,SACfiB,aAAc,WACdC,QAAS,WACTT,aAAc,WACdC,SAAU,WACVI,SAAU,cAAoB,CAC5B,SACA,YACA,aAEFK,eAAgB,cAAoB,CAClC,SACA,YACA,aAEFX,SAAU,SACVvlH,UAAW,WACXkD,QAAS,WACT6E,SAAU,SACV29G,iBAAkB,SAClBh2F,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEFi2F,eAAgB,WAChBva,QAAS,SACT4Z,SAAU,SACV9/G,KAAM,SACN5J,OAAQ,eAAqB5G,QAC7BuC,SAAU,WACVysH,aAAc,WACdyC,iBAAkB,SAClBL,qBAAsB,SACtBM,kBAAmB,SACnBzC,cAAe,SACfr4F,UAAW,WACXgwF,iBAAkB,YAGpBsI,GAASld,aAAe,CACtBqe,eAAe,EACfoB,kBAAkB,EAClBC,mBAAmB,EACnBzC,eAAe,EACfz+G,MAAM,GAGR0+G,GAASpb,KAAO,GAEhB,2OCvaA,SAAS8d,IAAgB,MACvBtrB,EAAK,MACLzzE,EAAQ,uBACRg/F,EAAY,OACZC,EAAM,eACNC,EAAc,MACd/vH,GACCyvG,GACD,OACGogB,EAaC,kBAAC,EAAW,CAACpgB,OACX,kBAAC,6HACC5+E,SACIk/F,GAAkB,CAAEzgB,QAAS,IAAMygB,EAAe/vH,KAErDskG,GAEH,kBAAC,GACCh7F,UAAU,oBACV8lG,SAAS,eACT+C,WAAW,QACXC,aAAa,QACbvhF,QACAy+E,QAASwgB,EACTzd,UAAQ,KA1BZ,kBAAC,GACC/oG,UAAU,oBACV8lG,SAAS,eACT+C,WAAW,QACXC,aAAa,QACbvhF,QACA4+E,MACAH,QAASwgB,GAERxrB,EAsBT,CAEAsrB,GAAgB9gB,UAAY,CAC1BxK,MAAO,WACPzzE,MAAO,WACPg/F,aAAc,SACdC,OAAQ,SACRrC,YAAa,UAAgB,CAC3Bld,QAAS,eAAqB1D,WAC7BkC,WACHghB,eAAgB,SAChB/vH,MAAO,cAAoB,CACzB,WACA,cAIJ,UAAe,IAAAiwG,YAAW2f,8VC1D1B,SAASI,IAAoB,SAC3B5+D,EAAQ,QACRlnD,EAAO,SACPm2G,GACC5Q,GACD,OACE,kBAAC,IACCvlG,UACAulG,MACAnmG,UAAU,iBACV/I,SAAS,SACT40F,UAAU,OACVvwF,OAAQ,EACRg9F,OAAK,GAEL,kBAAC,IACCr4F,MAAO,MACF82G,GAAY,CAAEA,aAEnBxvF,MAAM,WAEJugC,GAIV,CAEA4+D,GAAoBlhB,UAAY,CAC9B5kG,QAAS,UAAgB,CACvBqmG,QAAS,eAAqB1D,WAEhCz7C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEFivD,SAAU,YAGZ,UAAe,IAAApQ,YAAW+f,IC5Cb,IAAkB,IAAAxhB,2WCG/B,SAAS,IAAa,SACpBp9C,EAAQ,MACRpxD,IAEA,MAAM,SAAEypC,EAAUzpC,MAAOiwH,IDJlB,IAAA9gB,YAAW,ICKlB,OACE,kBAAC,GAAK2C,KAAL,MACK9xG,IAAUiwH,GAAiB,CAAElxF,UAAU,IAE3C,kBAAC,UACK0K,GAAY,CAAE6lE,QAAS,IAAM7lE,EAASzpC,KAExCoxD,GAIV,CAEA,GAAa09C,UAAY,CACvB19C,SAAU,SAEVpxD,MAAO,SAGT,YCpBA,SAASkwH,IAAU,SACjB9+D,EAAQ,MACRkzC,EAAK,MACLzzE,EAAK,aACLg/F,EAAY,SACZpmF,EAAQ,MACRzpC,EAAK,wBACLmwH,EAAuB,SACvB9P,EAAQ,eACR0P,IAEA,MAAM,OACJ5/F,EAAM,OACN2/F,EAAM,YACNrC,EAAW,gBACXC,GCpBgB,GAClBmC,mBAEA,MAAO1/F,EAAQigG,IAAa,IAAAzgB,WAAS,GAC/B8d,GAAc,IAAA5c,QAAO,MACrB6c,GAAkB,IAAA7c,QAAO,MAIzBwf,GAAqB,IAAA5f,cAAa5qG,IACtC,MAAMyqH,EAAkBT,EAEpBpC,EAAYld,QAAQr5E,cAAc,sBADlCu2F,EAAYld,SAGdpgF,GACImgG,EAAej4G,SAASxS,EAAE1E,SAC1BusH,EAAgBnd,QAAQl4F,SAASxS,EAAE1E,SAEvCivH,GAAU,EACZ,GACC,CAACjgG,IASJ,OAPA,IAAA2gF,YAAU,KACRloG,SAAS4I,iBAAiB,YAAa6+G,GAChC,KACLznH,SAAS+I,oBAAoB,YAAa0+G,EAAmB,IAE9D,CAACA,IAEG,CACLlgG,SACA2/F,OAxBa,IAAMM,GAAWjgG,GAyB9Bs9F,cACAC,kBACD,EDbG,CAAY,CACdmC,iBAGI/f,GAAe,IAAAF,UAAQ,KAAM,CACjCnmE,WACAzpC,WACE,CAACypC,EAAUzpC,IAEf,OACE,kBAAC,GAAgB+vG,SAAhB,CACC/vG,MAAO8vG,GAEP,kBAAC,IACCxL,MACE6rB,EACInwH,EACAskG,EAENyrB,iBACAl/F,QACAg/F,eACAC,SACArgB,IAAKge,EACLztH,UAEDmwB,GACC,kBAAC,IACCjmB,QAASujH,EACThe,IAAKie,EACLrN,YAEEjvD,GAKZ,CAEA8+D,GAAUphB,UAAY,CAEpBxK,MAAO,WAEPzzE,MAAO,WACPugC,SAAU,SAGVy+D,aAAc,SAEdpmF,SAAU,SAEVzpC,MAAO,cAAoB,CACzB,WACA,aAGFmwH,wBAAyB,SAEzB9P,SAAU,WAGV0P,eAAgB,UAGlBG,GAAUpe,KAAO,GAEjB,qCE3FA,MAAM,GAA+BtzG,QAAQ,giBCmB7C,SAAS+xH,GAAWpsH,GAClB,MAAM,SACJkN,EAAQ,SACR4X,EAAQ,kBACRunG,EAAiB,GACjBjxH,EAAE,MACFhC,EAAK,MACLy7B,EAAK,WACL+nF,EAAU,KACV2J,EAAI,OACJ9mG,EAAM,SACN6lB,EAAQ,MACR5Y,EAAK,MACL7wB,EAAK,WACLoS,EAAU,iBACVwyG,GACEzgH,EACEwG,EAAU,CACd,iBACAi6G,KACI/zF,EAAQA,EAAM9xB,MAAM,KAAK8C,KAAK2iB,GAAM,mBAAmBA,MAAO,GAClEu8F,GAAc,kCACdxjH,GAAS,aACTmV,OAAO4uB,SAASpiC,KAAK,KAEjBuxH,EAAkB,SACnBr+G,GACAo+G,GAAqB,CAAEz4D,WAAW,IAGjC24D,GAAqB,IAAAjgB,cAAY,IACrClzG,GAAmB,SAAVA,GAA8B,UAAVA,EAEzB,kBAAC,KAAE+L,UAAU,mCACV/L,GAGH,MACH,CAACA,IAEEozH,GAAiB,IAAAlgB,cAAY,IAC7BsQ,EAAmB,CAAEC,UAAWD,GAC7B,CAAC,GACP,CAACA,IAEE6P,GAAmB,IAAAngB,cAAY,IAC/BsQ,EAAmB,CAAEC,UAAW,eAAeD,aAC5C,CAAC,GACP,CAACA,IAEE8P,GAAiB,IAAApgB,cAAaprF,IAC9BokB,GAAUA,EAASpkB,EAAS,GAC/B,CAACokB,IAEEqnF,GAAe,IAAArgB,cAAY,KAC3B7sF,GAAQA,EAAO5jB,EAAM,GACxB,CAAC4jB,EAAQ5jB,IAEZ,OACE,kBAAC,OAAIsJ,UAAWqB,GAEZquB,EACI,kBAAC,SAAM+3F,QAASxxH,EAAIgK,MAAOonH,KAAoB33F,GAC/C,KAEN,kBAAC,OAAI1vB,UAAU,4BAA4BC,MAAOqnH,KAChD,kBAAC,YACCtnH,UAAU,oBACNnF,WAFL,CAGCslC,SAAUonF,EACVjtG,OAAQktG,EACRjgG,MAAM,SACNmgG,YAAa,CAAEC,iBAAiB,GAChChoG,SAAUA,GAAY5X,EACtByE,OAASo7G,IAEPA,EAAevlH,UAAUpC,MAAMgmE,OAAS,OAExC3mE,SAAS4I,iBAAiB,WAAW,IACnC0/G,EAAe3hD,UACf,EAEJn9D,WAAYq+G,OAGZ/F,EACI,kBAAC,KAAEphH,UAAU,gCAAiCohH,GAC9C,KAEJgG,WAIV,CA/FA,YAAWp7G,aAAa,uBAAwB,IAiGhDi7G,GAAWzhB,UAAY,CACrBz9F,SAAU,SACV4X,SAAU,SACVunG,kBAAmB,SACnBjxH,GAAI,WACJhC,MAAO,cAAoB,CACzB,WACA,WAEFy7B,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEF+nF,WAAY,WACZviF,KAAM,WACN3+B,KAAM,WACN6qH,KAAM,WACN9mG,OAAQ,SACR6lB,SAAU,SACV5Y,MAAO,WACP7wB,MAAO,WACPoS,WAAY,eAAqBpU,QACjC4mH,iBAAkB,YAGpB,qaCvIA,MAAMuM,GAAyB,CAACC,EAAU5kB,EAAMxsG,IACzCA,IACKoxH,GAAY5kB,EAAQ,GAAK,MAMrC,MAAM6kB,WAAiB,EAAAlP,UACrB,gBAAOmP,GACL,MAAO,CACL3tG,QAAS,EACT+3F,QAAQ,EAEZ,CAEA,eAAO6V,GACL,MAAO,CACL7V,QAAQ,EAEZ,CAEA,mBAAO8V,CAAaC,EAAWC,GAC7B,OAAOD,EAAU5xH,KAAKiH,cAAcjI,QAAQ6yH,IAAe,CAC7D,CAEA,WAAAjiH,CAAYtL,GACVqpH,MAAMrpH,GACN,MAAM,SACJitH,EAAQ,KACR5kB,EAAI,MACJxsG,GACEmE,EAEJzH,KAAKmhC,MAAQ,CACXla,QAAS,EACT+3F,QAAQ,EACRrvG,MAAO,GACPiH,aAActT,EACd2xH,oBAAqBR,GAAuBC,EAAU5kB,EAAMxsG,GAC5D4xH,WAAY,GACZplB,QAGF9vG,KAAKm1H,aAAc,IAAAzW,aACnB1+G,KAAKo1H,eAAgB,IAAA1W,aACrB1+G,KAAKq1H,UAAW,IAAA3W,aAChB1+G,KAAKs1H,SAAU,IAAA5W,aAEf1+G,KAAKu1H,WAAav1H,KAAKu1H,WAAWvxG,KAAKhkB,MACvCA,KAAK2+G,QAAU3+G,KAAK2+G,QAAQ36F,KAAKhkB,MACjC20H,GAASE,SAAWF,GAASE,SAAS7wG,KAAKhkB,MAC3CA,KAAKmxH,mBAAqBnxH,KAAKmxH,mBAAmBntG,KAAKhkB,MACvDA,KAAKw1H,sBAAwBx1H,KAAKw1H,sBAAsBxxG,KAAKhkB,MAC7DA,KAAKy1H,4BAA8Bz1H,KAAKy1H,4BAA4BzxG,KAAKhkB,MACzEA,KAAK01H,oBAAsB11H,KAAK01H,oBAAoB1xG,KAAKhkB,MACzDA,KAAK21H,sBAAwB31H,KAAK21H,sBAAsB3xG,KAAKhkB,MAC7DA,KAAK41H,mBAAqB51H,KAAK41H,mBAAmB5xG,KAAKhkB,KACzD,CAEA,iBAAAoxH,GACE,MAAM,KAAEthB,GAAS9vG,KAAKyH,MAElBqoG,GACF9vG,KAAK61H,gBAGP71H,KAAK2mH,YACP,CAEA,oBAAA8K,GACEzxH,KAAK81H,cACP,CAEA,+BAAOC,CAAyBC,EAAWnrF,GACzC,OACE0tB,KAAK09D,UAAUD,EAAU1yH,SAAWi1D,KAAK09D,UAAUprF,EAAUj0B,eAC1Do/G,EAAUlmB,OAASjlE,EAAUilE,KAEzB,CACLl5F,aAAco/G,EAAU1yH,MACxB2xH,oBAAqBR,GACnBuB,EAAUtB,SACVsB,EAAUlmB,KACVkmB,EAAU1yH,OAEZwsG,KAAMkmB,EAAUlmB,MAIb,IACT,CAEA,qBAAA0lB,CAAsBrsH,GACpB,MAAM,KAAE2mG,GAAS9vG,KAAKyH,MACtB,IAAiD,IAA7C,CAAC,YAAa,WAAWtF,QAAQgH,EAAEnE,KACrC,OAGF,MAAM,OAAEiiB,GAAWjnB,KAAKmhC,MAClB+0F,EAAiBl2H,KAAKm2H,eAC5B,IAAIC,EAoBJ,GAlBAjtH,EAAEmK,iBAEY,cAAVnK,EAAEnE,OACY,IAAZiiB,GAAiBA,IAAWivG,EAAe31H,OAAS,EACtD61H,EAAa,EACJnvG,EAASivG,EAAe31H,OAAS,IAC1C61H,EAAanvG,EAAS,IAIZ,YAAV9d,EAAEnE,MAEFoxH,EADEnvG,EAAS,EACEA,EAAS,EAETivG,EAAe31H,OAAS,GAIrCP,KAAKo1H,cAAcvhB,SAAWuiB,EAAa,EAAG,CAChD,MAAMn9D,EAA+B,IAAlBm9D,EAAa,GAEhCp2H,KAAKo1H,cAAcvhB,QAAQ56C,UAAc62C,EAAyB72C,EAAjB,GAAKA,CACxD,MAAWj5D,KAAKo1H,cAAcvhB,UAC5B7zG,KAAKo1H,cAAcvhB,QAAQ56C,UAAY,GAGzCj5D,KAAKiwB,UAAUomG,IAAmB,eAC7BA,WAD6B,CAEhCrX,QAAQ,EACR/3F,OAAQmvG,UACR,GACJ,CAEA,mBAAAV,CAAoB9wH,GAGlB,GADqB5E,KAAKyH,MAAMxC,OAAOL,GACtB+P,SAAU,OAE3B,MAAM,SAAE+/G,EAAQ,KAAE5kB,GAAS9vG,KAAKyH,MAE1B6uH,EAAcxmB,EAAQ,qBAAuB,uBAC7CymB,EAAY,SAAKv2H,KAAKmhC,OAAUnhC,KAAKs2H,GAAY1xH,IAEvD5E,KAAKiwB,UAAUomG,IACR3B,GAAa5kB,IAChBymB,EAAUvX,QAAS,GAGd,SAAKqX,GAAkBE,KAElC,CAEA,qBAAAZ,CAAsB/wH,GACpB,MAAM,SAAE+P,GAAa3U,KAAKyH,MAE1B,GAAIkN,EACF,OAGF,MAAM4hH,EAAYv2H,KAAKw2H,oBAAoB5xH,GAE3C5E,KAAKiwB,UAAUomG,GAAmB,SAAKA,GAAkBE,IAC3D,CAEA,kBAAApF,CAAmB7sG,GAEftkB,KAAKo1H,cAAcvhB,UAAY7zG,KAAKo1H,cAAcvhB,QAAQl4F,SAAS2I,EAAM7f,SACtEzE,KAAKm1H,YAAYthB,UAAY7zG,KAAKm1H,YAAYthB,QAAQl4F,SAAS2I,EAAM7f,SAExEzE,KAAKiwB,UAAUomG,GAAmB,SAAKA,GAAkB1B,GAASC,cAEtE,CAEA,2BAAAa,GACE,MAAM,SAAE9gH,GAAa3U,KAAKyH,MAEtBkN,GAIJ3U,KAAKiwB,UAAUomG,GAAmB,SAAKA,GAAkB1B,GAASE,aACpE,CAEA,OAAAlW,CAAQx1G,GACN,MAAM,KAAE2mG,EAAI,kBAAE2mB,GAAsBz2H,KAAKyH,OACnC,OAAEwf,EAAM,OAAE+3F,GAAWh/G,KAAKmhC,MAC1B+0F,EAAiBl2H,KAAKm2H,eAC5B,IAAII,EAAYv2H,KAAK02H,gBAMrB,GAJI5mB,GAAkB,WAAV3mG,EAAEnE,MACZuxH,EAAY,SAAKA,GAAcv2H,KAAK61H,kBAGxB,UAAV1sH,EAAEnE,IAAiB,CACrB,MAAMsxH,EAAcxmB,EAAQ,qBAAuB,uBACnDymB,EAAY,SAAKA,GAAcv2H,KAAKs2H,GAAYrvG,GAClD,CAEIwvG,GAA+B,MAAVttH,EAAEnE,KAAe8qG,IACxCymB,EAAY,SAAKA,GAAcv2H,KAAK41H,wBAInC5W,GACIh/G,KAAKq1H,SAASxhB,QAAQvwG,QACtB,MAAA4yH,OAAA,EAAAA,EAAgB31H,SACN,WAAV4I,EAAEnE,MAEPuxH,EAAY,SAAKA,GAAc5B,GAASE,aAG5B,WAAV1rH,EAAEnE,KAAoBg6G,IACxBuX,EAAY,SAAKA,GAAc5B,GAASC,cAGtC5V,GAAUkX,IAAmBA,EAAe31H,SAC9Cg2H,EAAY,SAAKA,GAAc5B,GAASC,cAG1C50H,KAAKiwB,UAAUomG,GAAmB,SAAKA,GAAkBE,IAC3D,CAEA,cAAAtC,GACE,MAAM,WAAE5P,GAAerkH,KAAKyH,MACtBkJ,EAAS,CAAC,EAMhB,OAJI0zG,IACF1zG,EAAO2zG,UAAYD,GAGd1zG,CACT,CAEA,gBAAAujH,GACE,MAAM,WAAE7P,GAAerkH,KAAKyH,MACtBkJ,EAAS,CAAC,EAMhB,OAJI0zG,IACF1zG,EAAO2zG,UAAY,eAAeD,aAG7B1zG,CACT,CAEA,aAAAklH,GACE,MAAO,CACLlmH,MAAO,GAAK3P,KAAKs1H,QAAQzhB,QAAQzjG,YAErC,CAEA,gBAAAumH,CAAiBrzH,GACf,MAAM,oBAAE2xH,GAAwBj1H,KAAKmhC,MACrC,IAAIt9B,GAAY,EAchB,OAZIwB,MAAMoB,QAAQwuH,GAChBA,EAAoBlwH,SAAQ,CAACa,EAAMhB,KAC7BgB,EAAK/C,KAAOS,EAAMT,KACpBgB,EAAWe,EACb,IAEOqwH,GACLA,EAAoBpyH,KAAOS,EAAMT,KACnCgB,EAAW,GAIRA,CACT,CAEA,aAAA6yH,GACE,MAAO,CACLxB,WAAYl1H,KAAKq1H,SAASxhB,QAAQvwG,MAEtC,CAEA,qBAAAszH,CAAsBtzH,EAAOsB,GAC3B,MAAMkxG,EAAa,IACb,OACJ7uF,GACEjnB,KAAKmhC,MAUT,OARIla,IAAWriB,GACbkxG,EAAW/zG,KAAK,UAGduB,EAAMqR,UACRmhG,EAAW/zG,KAAK,YAGX+zG,EAAWtzG,KAAK,IACzB,CAEA,uBAAAq0H,GACE,MAAM,OAAE7X,GAAWh/G,KAAKmhC,OAClB,KAAE2uE,EAAI,MAAE37E,GAAUn0B,KAAKyH,MACvBqvH,EAAS3iG,EAAQA,EAAM9xB,MAAM,KAAO,GAEpCyzG,EAAa,CAAC,sBAgBpB,OAdIkJ,GACFlJ,EAAW/zG,KAAK,8BAGd+tG,GACFgG,EAAW/zG,KAAK,gCAGd+0H,EAAOv2H,QACTu2H,EAAO/xH,SAASgyH,IACdjhB,EAAW/zG,KAAK,mBAAmBg1H,IAAS,IAIzCjhB,EAAWtzG,KAAK,IACzB,CAEA,aAAAqzG,GACE,MAAM,MACJh1G,EAAK,SAAE8T,EAAQ,MAAEwf,EAAK,WAAEkwF,GACtBrkH,KAAKyH,MACHquG,EAAa,CAAC,iBAAkB,gBAChCghB,EAAS3iG,EAAQA,EAAM9xB,MAAM,KAAO,GAoB1C,OAlBIxB,GACFi1G,EAAW/zG,KAAK,aAGdsiH,GACFvO,EAAW/zG,KAAK,mCAGd+0H,EAAOv2H,QACTu2H,EAAO/xH,SAASgyH,IACdjhB,EAAW/zG,KAAK,mBAAmBg1H,IAAS,IAI5CpiH,GACFmhG,EAAW/zG,KAAK,YAGX+zG,EAAWtzG,KAAK,IACzB,CAEA,aAAAw0H,GACE,MAAM,MAAEn2H,GAAUb,KAAKyH,MAEvB,OAAQ5G,GAAmB,SAAVA,GAA8B,UAAVA,EAEjC,kBAAC,KACC+L,UAAU,mCAER/L,GAGJ,IACN,CAEA,SAAAwwH,GACE,MAAM,UAAEp4D,GAAc/sD,SAASkB,gBACzBb,EAAKvM,KAAKm1H,YAAYthB,QACtBgd,EAAWtkH,EAAGgoB,aACd0iG,EAAU1qH,EAAG6D,YAEblI,EAASqE,EAAGqb,yBACZ,KAAE5X,GAAS9H,EACjB,IAAIsJ,EAAM,EAIV,OAFAA,EAAMtJ,EAAOsJ,IAAMynD,EAAY43D,EAExB,CACLr/G,IAAQA,EAAM,EAAT,KACLxB,KAAM,GAAGA,MACTL,MAAO,GAAGsnH,MAEd,CAEA,sBAAAC,GACE,MAAM,oBAAEjC,GAAwBj1H,KAAKmhC,OAC/B,SAAEuzF,EAAQ,YAAE/lE,EAAW,OAAE1pD,GAAWjF,KAAKyH,MAE/C,OAAKwtH,EAIDA,GAAuB5vH,MAAMoB,QAAQwuH,KAAyBA,EAAoB10H,OAC7EouD,GAGLsmE,GAAwB5vH,MAAMoB,QAAQwuH,IAAyBA,EAAoBpyH,GAInFwC,MAAMoB,QAAQwuH,IAAwBP,EACjCO,EAAoBkC,QAAO,CAACC,EAAW9zH,EAAOsB,IAAUwyH,EAAY9zH,EAAMH,MAASyB,IAAUqwH,EAAoB10H,OAAS,EAAK,KAAO,KAAK,MAIlJ,MAAA0E,OAAA,EAAAA,EAAQ1E,SACJ8E,MAAMoB,QAAQwuH,IAAyBA,EAAoB9xH,KAK1D8xH,EAAoB9xH,KAHlB8B,EAAO+Q,QAAQ1S,GAAUA,EAAMT,KAAOoyH,EAAoBpyH,KAAI,GAAGM,KAXjEwrD,EARAA,CAuBX,CAEA,kBAAAinE,CAAmBhxH,GACjB,MAAM,IAAEqB,EAAG,kBAAEwwH,GAAsBz2H,KAAKyH,OAClC,oBAAEwtH,GAAwBj1H,KAAKmhC,MAC/B+0F,EAAiBl2H,KAAKm2H,eACtB7yH,EAAQ,CAAET,GAAI7C,KAAKq1H,SAASxhB,QAAQvwG,MAAOH,KAAMnD,KAAKq1H,SAASxhB,QAAQvwG,OAE7E,IAA0B,IAAtBmzH,IAA0C,IAAX7xH,EACjC,OAAO,KAGT,MAAMyyH,EAAYnB,EAAetxH,IAAUtB,EACrCg0H,EAAgBt3H,KAAK22H,iBAAiBU,GAC5C,IAAIE,EAAiB,CAAC,EAItB,GAFAv3H,KAAKq1H,SAASxhB,QAAQvwG,MAAQ,GAE1Bg0H,GAAiB,GAAKt3H,KAAKw3H,kBAAkBH,GAC/CE,EAAiBv3H,KAAKw2H,oBAAoBc,QACrC,IAAuB,IAAnBA,EAAsB,CAC/B,GAAIrxH,GAAOgvH,EAAoB10H,QAAU0F,EACvC,OAAOsxH,EAETA,EAAiBv3H,KAAKy3H,iBAAiBJ,EACzC,CAEA,OAAOE,CACT,CAGA,oBAAAG,CAAqB9yH,GACnB,MAAM,oBAAEqwH,GAAwBj1H,KAAKmhC,OAC/B,SAAEuzF,EAAQ,SAAE3nF,EAAQ,IAAE9mC,GAAQjG,KAAKyH,MACnCyuH,EAAiBl2H,KAAKm2H,eACtBwB,EAAqBzB,EAAetxH,GAC1C,IAAI2yH,EACJ,MAAMD,EAAgBt3H,KAAK22H,iBAAiBgB,GAE5C,GAAIA,GAAsBjD,EACxB,GAAI4C,GAAiB,EACnBC,EAAiBv3H,KAAKw2H,oBAAoBc,OACrC,CACL,GAAIrxH,GAAOgvH,EAAoB10H,QAAU0F,EACvC,OAAOsxH,EAETA,EAAiBv3H,KAAKy3H,iBAAiBvB,EAAetxH,GACxD,MAEA2yH,EAAiB,CACftC,qBAAyC,IAAnBqC,EAAwBK,EAAqB,CAAE90H,GAAI,OAG3E,MAAAkqC,GAAAA,GAA+B,IAAnBuqF,EAAwBK,EAAqB,MAG3D,OAAOJ,CACT,CAEA,mBAAAf,CAAoB5xH,GAClB,MAAM,oBAAEqwH,GAAwBj1H,KAAKmhC,OAC/B,SAAE4L,GAAa/sC,KAAKyH,MACpBmwH,EAA0Br/D,KAAKC,MAAMD,KAAK09D,UAAUhB,IAQ1D,OANA2C,EAAwBhwH,OAAOhD,EAAO,GAElCmoC,GAAgC,mBAAbA,GACrBA,EAAS6qF,EAAwBr3H,OAASq3H,EAA0B,MAG/D,CACL3C,oBAAqB2C,EACrB1C,WAAY,GAEhB,CAEA,gBAAAuC,CAAiBn0H,GACf,MAAM,oBAAE2xH,GAAwBj1H,KAAKmhC,OAC/B,SAAE4L,GAAa/sC,KAAKyH,MACpBmwH,EAA0Br/D,KAAKC,MAAMD,KAAK09D,UAAUhB,IAQ1D,OANA2C,EAAwB71H,KAAKuB,GAEzBypC,GAAgC,mBAAbA,GACrBA,EAAS6qF,EAAwBr3H,OAASq3H,EAA0B,MAG/D,CACL3C,oBAAqB2C,EACrB1C,WAAY,GAEhB,CAEA,iBAAAsC,CAAkBl0H,GAChB,MAAM,OAAE2B,GAAWjF,KAAKyH,MACxB,IAAIowH,GAAK,EAQT,OANA5yH,EAAOF,SAASa,IACVtC,EAAMT,KAAO+C,EAAK/C,KACpBg1H,GAAK,EACP,IAGKA,CACT,CAEA,YAAA1B,GACE,MAAM,OAAElxH,EAAM,WAAE6yH,GAAe93H,KAAKyH,MAEpC,OAAKzH,KAAKq1H,SAASxhB,QAIP5uG,EACT+Q,QACE1S,GAAWw0H,EACRA,EAAWx0H,EAAOtD,KAAKq1H,SAASxhB,QAAQvwG,MAAM8G,eAC9CuqH,GAASG,aAAaxxH,EAAOtD,KAAKq1H,SAASxhB,QAAQvwG,MAAM8G,iBAPxDnF,CAWX,CAEA,UAAA0hH,GACEz6G,SAAS4I,iBAAiB,YAAa9U,KAAKmxH,mBAC9C,CAEA,YAAA2E,GACE5pH,SAAS+I,oBAAoB,YAAajV,KAAKmxH,mBACjD,CAGA,KAAAtnE,GACE,MAAM,SAAE6qE,EAAQ,KAAE5kB,EAAI,MAAExsG,GAAUtD,KAAKyH,MAEvCzH,KAAKiwB,SAAS,CACZglG,oBAAqBR,GAAuBC,EAAU5kB,EAAMxsG,IAEhE,CAEA,UAAAiyH,GACMv1H,KAAKq1H,SAASxhB,SAChB7zG,KAAKq1H,SAASxhB,QAAQtsF,OAE1B,CAEA,WAAAwwG,CAAY7B,GACV,MAAM,SACJvhH,EAAQ,KACRm7F,EAAI,IACJ7pG,EAAG,YACH0oD,GACE3uD,KAAKyH,OACH,MACJkI,EAAK,WAAEulH,EAAU,oBAAED,GACjBj1H,KAAKmhC,MAET,OACE,kBAAC,MACCv0B,UAAW,oBAAoBkjG,EAAQ,+BAAiC,IACxE8C,QAAS5yG,KAAKu1H,WACdjW,UAAW,OACXvM,IAAK/yG,KAAKm1H,aAGRrlB,EAEI,qCAEKmlB,GAAuB,IAAI9vH,KAAI,CAAC7B,EAAOsB,IACtC,kBAAC,MAAGgI,UAAU,OAAO5H,IAAK1B,EAAMT,IAC9B,kBAAC,UACCkR,KAAK,SACL6+F,QAAS5yG,KAAK21H,sBAAsB3xG,KAAKhkB,KAAM4E,GAC/C,aAAW,UAEX,kBAAC,EAAI,CAACmP,KAAK,WAEb,kBAAC,YAAOzQ,EAAMH,SAIpB,kBAAC,MACCyJ,UAAU,2BACVC,MAAO,CACL8C,OAAS,MAAAslH,OAAA,EAAAA,EAAqB10H,QAAmB,OAAT,eAGhC,IAAR0F,IAAqB,MAAAgvH,OAAA,EAAAA,EAAqB10H,QAAS0F,IACnD,oCACE,kBAAC,SACC2G,UAAU,mBACV+H,WACA2qG,UAAYn2G,IACI,UAAVA,EAAEnE,KACJmE,EAAEmK,iBAEJtT,KAAKw1H,sBAAsBrsH,EAAE,EAE/Bw1G,QAAS3+G,KAAK2+G,QACdhwD,aAAe,MAAAsmE,OAAA,EAAAA,EAAqB10H,QAAwB,GAAdouD,EAC9CokD,IAAK/yG,KAAKq1H,SACVxoH,MAAO,CACL8C,OAAS,MAAAslH,OAAA,EAAAA,EAAqB10H,QAAmB,GAAGoP,MAAZ,UAG5C,kBAAC,QACCojG,IAAK/yG,KAAKs1H,QACVzoH,MAAO,CACLmrH,UAAW,SACXn0H,SAAU,WACV2N,IAAK,YAGL0jH,IAIPgB,EAAe31H,OAAS,GACvB,kBAAC,GACCqM,UAAU,uCACV8lG,SAAS,eACTiD,UAAQ,EACR/C,QAAS5yG,KAAKy1H,gCAOtB,kBAAC,MACC7oH,UAAU,4BACVgmG,QAAS5yG,KAAKy1H,4BACdnW,UAAW,QAETt/G,KAAKk3H,yBACP,kBAAC,EAAI,CAACnjH,KAAK,kBAMzB,CAEA,cAAAkkH,CAAe/B,GACb,MAAM,KAAEpmB,GAAS9vG,KAAKyH,OAChB,OAAEu3G,GAAWh/G,KAAKmhC,MACxB,OACE,kBAAC,MACCv0B,UAAW5M,KAAK62H,0BAChB9jB,IAAK/yG,KAAKo1H,cACVvoH,MAAO7M,KAAKqxH,aAGTvhB,EAaG,KAXA,kBAAC,MAAGljG,UAAU,8BACZ,kBAAC,SACCsrH,UAAWlZ,EACXpyG,UAAU,mBACV+xG,QAAS3+G,KAAK2+G,QACdW,UAAWt/G,KAAKw1H,sBAChBxwH,IAAI,cACJ+tG,IAAK/yG,KAAKq1H,YAOlBa,EACG/wH,KAAI,CAAC7B,EAAOsB,IACX,kBAAC,MACCgI,UAAW5M,KAAK42H,sBAAsBtzH,EAAOsB,GAC7CguG,QAAS5yG,KAAK01H,oBAAoB1xG,KAAKhkB,KAAM4E,GAC7C06G,UAAW,OACXt6G,IAAK1B,EAAMT,IAGR7C,KAAK22H,iBAAiBrzH,IAAU,EAC7B,kBAAC,EAAI,CAACyQ,KAAK,UACX,KAEN,kBAAC,YACE,IACCzQ,EAAMH,SAOxB,CAEA,MAAAk7G,GACE,MAAM,oBACJ8Z,EAAmB,GACnBt1H,EAAE,MACFy5B,EAAK,KACL0xF,GACEhuH,KAAKyH,OACH,OAAEu3G,GAAWh/G,KAAKmhC,MAElB+0F,EAAiBl2H,KAAKm2H,eAE5B,OACE,oCACE,kBAAC,OAAIvpH,UAAW5M,KAAK61G,iBAEjBv5E,EACI,kBAAC,SAAM+3F,QAASxxH,EAAIgK,MAAO7M,KAAKi0H,kBAAoB33F,GACpD,KAEN,kBAAC,OACC1vB,UAAU,4BACVC,MAAO7M,KAAKk0H,oBAEXl0H,KAAK+3H,YAAY7B,GAEhBlI,EACI,kBAAC,KAAEphH,UAAU,gCAAiCohH,GAC9C,KAEJhuH,KAAKg3H,kBAKRmB,EAQG,kBAACA,EAAA,CACCplB,IAAK/yG,KAAKo1H,cACVxoH,UAAW5M,KAAK62H,0BAEhBD,sBAAuB52H,KAAK42H,sBAAsB5yG,KAAKhkB,MAEvD22H,iBAAkB32H,KAAK22H,iBAAiB3yG,KAAKhkB,MAC7Ck2H,iBAEAR,oBAAqB11H,KAAK01H,oBAAoB1xG,KAAKhkB,QAhBrDg/G,GAAUkX,EAAe31H,OACvB,kBACAP,KAAKi4H,eAAe/B,GACpBhqH,SAASsuB,cAAc,SAEvB,KAiBd,EAGFm6F,GAASviB,UAAY,CACnBqkB,kBAAmB,SACnB0B,oBAAqB,gBACrBL,WAAY,SACZnjH,SAAU,SACV9T,MAAO,WACPgC,GAAI,WACJy5B,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEF+nF,WAAY,WACZqQ,SAAU,SACVzuH,IAAK,WACL+nH,KAAM,cAAoB,CACxB,SACA,YACA,aAEFjhF,SAAU,SACV4hB,YAAa,WACbmhD,KAAM,SACN37E,MAAO,WACP7wB,MAAO,cAAoB,CACzB,WACA,eAAqBhC,QACrB,eAAqB+D,SAEvBJ,OAAQ,eAAqBI,QAG/BsvH,GAASrhB,aAAe,CACtBmjB,mBAAmB,GAGrB,YClyBA,SAAS2B,GAAM3wH,GACb,MAAM,MACJnE,EAAK,IACL2C,EAAG,KACH6pG,EAAI,cACJuoB,EAAa,aACbC,EAAY,YACZ3pE,EAAW,SACXh6C,EAAQ,YACR4jH,EAAW,cACXC,EAAa,MACbjxG,EACAo0E,UAAW2xB,EAAW,SACtB/gG,GACE9kB,EAEE4tH,GAAW,IAAAlhB,QAAO,MAClBskB,GAAkB,IAAAtkB,QAAO,OACxB6gB,EAAY0D,IAAiB,IAAAzlB,UAAS,KACtC0lB,EAAY9C,IAAiB,IAAA5iB,UAAS,QAE7C,SAAS2lB,EAAmBx1H,GAC1B,GAAIi1H,EAAc53F,MAAMthB,GAAO/b,EAAIb,OAAO,KAAO4c,IAAK,OACtD,MAAM05G,EAAQJ,EAAgB5kB,QAC9BglB,EAAMprH,UAAYrK,EAClByyH,EAAc,GAAG7vH,KAAKC,IAAI4yH,EAAMvoH,YAVV,IAU0C,QAChEooH,EAAct1H,GACdkqH,EAAY,mBAAoBlqH,EAClC,CA+BA,SAAS01H,IACPxL,EAAY,mBACd,CAEA,SAASyL,EAAU31H,EAAK41H,GAAgB,GACtC,GAAIzsG,EAAU,OAAOnpB,GAAO,IAE5B,MAAM6K,EAAU,CACd,4BACA,YAAYuqH,IACZQ,GAAiB,kBACjBhjH,OAAO4uB,SAASpiC,KAAK,KACvB,OACE,kBAAC,QACCoK,UAAWqB,EACX25F,MAAyB,WAAlB4wB,EAA6Bp1H,OAAM,EAC1C0jB,KAAK,OACLkQ,SAAUriB,EAAW,KAAO,IAC5Bi+F,QAASkmB,EACTxZ,UAAWwZ,GAEV11H,EAGP,CAEA,SAAS61H,EAAkB1lC,GASzB,OAAOglC,EAAYhlC,EARJ,CACbuc,OACAuoB,gBACA1pE,cACAh6C,WACA4jH,cACAjL,eAGJ,CAmEA,OAJA,IAAAlZ,YAAU,KACJ7sF,GAAS8tG,EAASxhB,SAASwhB,EAASxhB,QAAQtsF,OAAO,GACtD,CAACA,IAEAgF,EACK,kBAAC,OAAI3f,UAAU,8BAA8BmsH,EAAUz1H,EAAM6B,KAAKouF,GAAMA,EAAEpwF,OAAMX,KAAK,QAG1FstG,EA5CA,oCACGxsG,EAAM6B,KA1Bb,SAAmBouF,GACjB,OAAIglC,EAAoBU,EAAkB1lC,GAGxC,kBAAC,IACCvuF,IAAKuuF,EAAE1wF,GACPsxB,MAAM,YAEN,kBAAC,UACCpgB,KAAK,SACL6+F,QAAUzpG,IACRA,EAAEiK,kBACFk6G,EAAY,aAAc/5B,EAAE1wF,GAAG,EAEjC,aAAW,UAEX,kBAAC,EAAI,CAACkR,KAAK,WAEb,kBAAC,QAAK6zF,MAAOrU,EAAEpwF,MAAQowF,EAAEpwF,MAG/B,IAMOG,EAAM/C,OAAS0F,GACd,oCACE,kBAAC,SACC2G,UAAU,6BACVmmG,IAAKsiB,EACL1mE,YAAarrD,EAAM/C,OAAS,GAAKouD,EACjCh6C,WACArR,MAAO0xH,EACPnoH,MAAO,CAAE8C,MAAOrM,EAAM/C,OAASo4H,EAAa,QAC5C5rF,SAAW5jC,GAAMyvH,EAAmBzvH,EAAE1E,OAAOnB,OAC7Cg8G,UAAYn2G,IACI,UAAVA,EAAEnE,KAAiBmE,EAAEmK,iBAzGvC,SAA6BtO,EAAK5B,GAChC,GAAK0sG,EAAL,CACA,GAAY,KAAR1sG,GAAsB,cAAR4B,IAAuB1B,EAAM/C,OAI/C,MAAY,UAARyE,GACFsoH,EAAY,kBAAmBlqH,QAC/Bw1H,EAAmB,UAGT,YAAR5zH,EAIQ,cAARA,EAIQ,WAARA,EAIAqzH,EAAc/zH,SAASU,KACzBsoH,EAAY,UAAWlqH,GACvBw1H,EAAmB,KALnBtL,EAAY,oBAJZA,EAAY,uBAJZA,EAAY,sBATZA,EAAY,aAAchqH,EAAMA,EAAM/C,OAAS,GAAGsC,GAFzC,CA0Bb,CA+Ecq2H,CAAoB/vH,EAAEnE,IAAKmE,EAAE1E,OAAOnB,MAAM,EAE5C8jB,QAAS,IAAMkmG,EAAY,mBAC3BpmG,OAAS/d,IACPmkH,EAAY,iBAAkBnkH,EAAE1E,OAAOnB,OACnCg1H,GAAcM,EAAmB,GAAG,IAG5C,kBAAC,QACC7lB,IAAK0lB,EACL5rH,MAAO,CACLmrH,UAAW,SACXn0H,SAAU,WACV2N,IAAK,eAkBf+mH,EACsB,IAAjBj1H,EAAM/C,OAAew4H,EAAUpqE,GAAa,GAAQrrD,EAAM6B,IAAI8zH,GAE/C,IAAjB31H,EAAM/C,OACTw4H,EAAUpqE,GAAa,GACvBoqE,EAAUz1H,EAAM6B,KAAKouF,GAAMA,EAAEpwF,OAAMX,KAAK,MAC9C,CAEA41H,GAAMhmB,UAAY,CAChB9uG,MAAO,eAAqB+B,OAC5BY,IAAK,WACL6pG,KAAM,eAAqBzqG,OAC3BgzH,cAAe,eAAqBhzH,OACpCizH,aAAc,SACd3pE,YAAa,WACbh6C,SAAU,SACV4jH,YAAa,SACbC,cAAe,WACfjxG,MAAO,SACPo0E,UAAW,SACXpvE,SAAU,UAGZ,YC/LA,SAAS,GAAK9kB,GACZ,MAAM,QACJ0xH,EAAO,KACPrpB,EAAI,OACJ7qG,EAAM,YACNm0H,EAAW,WACXC,EACA19B,UAAW2xB,EAAW,eACtBgM,EAAc,UACdluG,EAAS,WACTmuG,GACE9xH,EA+DJ,OA7DA,IAAA2sG,YAAU,KACR,IAAK+kB,EAAQtlB,QAAS,OACtB,MAAMttF,EAAgB4yG,EAAQtlB,QAAQr5E,cAAc,WAChDjU,GAAeA,EAAcwgD,eAAe,CAAEyyD,MAAO,OAAQ,GAChE,CAACH,IA0DF,qCACIvpB,GAAQypB,GACR,kBAAC,OAAI3sH,UAAU,kCACb,kBAAC,SACCsrH,WAAS,EACTtrH,UAAU,mBACVtJ,MAAO81H,EACPrsF,SAAW5jC,GAAMmkH,EAAY,gBAAiBnkH,EAAE1E,OAAOnB,OACvDg8G,UAAYn2G,IACI,WAAVA,EAAEnE,KAAkBsoH,EAAY,iBACtB,YAAVnkH,EAAEnE,KAAmBsoH,EAAY,kBACvB,cAAVnkH,EAAEnE,KAAqBsoH,EAAY,oBACzB,UAAVnkH,EAAEnE,KAAiBsoH,EAAY,eAAe,KAKzDroH,EAAO1E,OAAS,GACf,kBAAC,MAAGwyG,IAAKomB,EAASvsH,UAAU,gCACzBg4B,QAAQxZ,IAnDjB,WA/CF,UAgDI,MAAMD,EAAgBlmB,EAAOoqH,OAAO97B,GAAMA,EAAElxD,WACtCo3F,EAAiBx0H,EAAOoqH,OAAO97B,IAAOA,EAAElxD,WACxC/F,EAAQ,eAAAlR,OAAA,EAAAA,EAAWkR,OAAX,EAAoB,aAC5BwF,EAAO,eAAA1W,OAAA,EAAAA,EAAW0W,MAAX,EAAmB,SAC1B1N,EAAO,eAAAhJ,OAAA,EAAAA,EAAWgJ,MAAX,EAAmB,SAC1BiqF,EAAS,MAAAjzF,OAAA,EAAAA,EAAWizF,OAG1B,MADoC,WAATjqF,IAA+B,WAAT0N,EAAqB3W,EAAiBsuG,GACvD,KAE5Bpb,EACKA,EAAO,CACZ/hF,QACAwF,OACA1N,OACAjJ,gBACAsuG,kBACCnM,GAGH,kBAAC,MACC1a,QAAS,IAAM0a,EAAY,mBAA6B,WAATxrF,GAAqB3W,EAAgBsuG,GACpFna,UAAW,SAEA,WAATx9E,EAAoB3W,EAAgBsuG,IAAmB,kBAAC,EAAI,CAAC1lH,KAAK,UACnEuoB,EAGP,CAuBUo9F,GAEDz0H,EAAOE,KA9EhB,SAAoBS,GAClB,OAAI0zH,EACKA,EAAe1zH,EAAM,CAC1BkqG,OAAMspB,cAAa9L,cAAa+L,eAKlC,kBAAC,MACCr0H,IAAKY,EAAK/C,GACV+kG,MAAOhiG,EAAKzC,KACZyJ,UAAW,CACThH,EAAK+O,UAAY,WACjB0kH,GAAczzH,EAAK/C,KAAOw2H,EAAWx2H,IAAM,UAC3CmT,OAAO4uB,SAASpiC,KAAK,KACvBowG,QAAS,KAAOhtG,EAAK+O,UAAY24G,EAAY,eAAgB,CAAE1nH,SAC/D05G,UAAW,QAEV15G,EAAKy8B,UAAY,kBAAC,EAAI,CAACtuB,KAAK,UAC7B,kBAAC,QAAKnH,UAAU,aAAahH,EAAKzC,MAGxC,KA6DF,CAEA,GAAKivG,UAAY,CACf+mB,QAAS,eAAqB73H,QAC9BwuG,KAAM,SACN7qG,OAAQ,eAAqBI,OAC7B+zH,YAAa,WACbC,WAAY,eAAqB/3H,QACjCq6F,UAAW,SACX29B,eAAgB,SAChBluG,UAAW,cAAoB,CAC7B,SACA,UAAgB,CACdkR,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEFwF,KAAM,UAAgB,CAAC,SAAU,aACjC1N,KAAM,UAAgB,CAAC,SAAU,iBACjCiqF,OAAQ,aAGZkb,WAAY,UAGd,2bCtHA,SAASI,GAAU,YACjBr2H,MAAOs2H,EACP30H,OAAQ40H,EAAa,GAAE,cACvBrB,EAAgB,eAChBl8F,EAAQ,cACR+nF,EAAU,KACVvU,GAAO,EAAK,cACZuoB,EAAgB,CAAC,IAAK,SAAQ,aAC9BC,GAAe,EACfryH,IAAK6zH,EAAO,SACZpF,GAAW,EAAK,YAChB/lE,EAAc,SACdx6B,EAAK,KACL65F,EAAO,SACPntH,EAAQ,YACR8T,GAAW,EAAK,SAChB4X,GAAW,EAAK,kBAChBkqG,GAAoB,EACpBqB,WAAYiC,EAAW,YACvBxB,EAAW,eACXe,EACAU,WAAYC,EAAc,oBAC1B9B,EAAmB,eACnB+B,EAAiB,MAAM,GAAI,SAC3BntF,EAAW,SAAQ,wBACnBotF,EAAuB,WACvBC,EAAU,uBACVrY,EAAsB,uBACtBsY,GAAyB,EAAI,UAC7BjvG,EAAS,cACTumG,EAAa,WACb4H,GAAa,EAAK,SAClBe,GAAW,EAAK,iBAChBC,EAAmB,SAAQ,iBAC3BrS,EAAmB,IAlCF,EAmCdhJ,mKAAA,CAnCc,EAmCd,CAlCH,QACA,SACA,gBACA,QACA,aACA,OACA,gBACA,eACA,MACA,WACA,cACA,QACA,OACA,QACA,WACA,WACA,oBACA,aACA,cACA,iBACA,aACA,sBACA,iBACA,WACA,0BACA,aACA,yBACA,yBACA,YACA,gBACA,aACA,WACA,mBACA,qBAGA,MAAMj5G,GAAM,IAAAitG,UACV,IAAOwhB,EAAW1zE,IAAW84E,IAAYhqB,EAAO9uD,IAAW,IAC3D,CAAC0zE,EAAUoF,EAAShqB,IAEhBkqB,EAAa7B,EACf,CAAClzH,GAAUqoH,iBACX,kBAAC6K,EAAA,CACCjC,eAAgBjxH,EAChBywH,oBAAsB9wH,GAAU0oH,EAAY,eAAgB,CAAE1nH,KAAMX,EAAOL,OAG7Eq1H,EAEEO,GAAU,IAAArmB,QAAO,MACjBsmB,GAAqB,IAAAtmB,QAAO,MAC5B4c,GAAc,IAAA5c,QAAO,MACrBglB,GAAU,IAAAhlB,QAAO,OAEhB7wG,EAAOiiD,IAAY,IAAA0tD,UAASynB,GAAiBd,EAAWC,KACxD50H,EAAQ01H,IAAa,IAAA1nB,UAAS4mB,EAAW10H,KAAKouF,GAAMqnC,GAAernC,OACnE6lC,EAAayB,IAAkB,IAAA5nB,UAAS,KACxComB,EAAYyB,IAAiB,IAAA7nB,UAAS,OACtC0Y,GAAUoP,KAAe,IAAA9nB,WAAS,IAClC+nB,GAAgBC,KAAqB,IAAAhoB,WAAS,IAC9CioB,GAAsBC,KAA2B,IAAAloB,UAAS,IAEjE,SAASmoB,KAEP,OADejnG,EAAQA,EAAM9xB,MAAM,KAAO,IAC5B8C,KAAK4xH,GAAW,mBAAmBA,KACnD,CAeA,SAASsE,KACP,MACMld,EAAK4b,GADO,EAACxmC,EAAGlhF,KAlG1B,IAAA4iB,EAAAE,EAkGgC,cAAAA,EAAA,OAAAF,EAAA,MAAAs+D,OAAA,EAAAA,EAAGpwF,WAAH,EAAA8xB,EAAS7qB,oBAAT,EAAA+qB,EAAwB7wB,SAAS+N,EAAE,GAG/D,OADuBpN,EAAO+Q,QAAQu9E,GAAM4qB,EAAG5qB,EAAG6lC,EAAYhvH,gBAEhE,CAEA,SAASkxH,KACPP,IAAY,EACd,CAEA,SAASvJ,KACPuJ,IAAY,GACPjrB,GAAMyrB,GAAkB,IAC7BT,EAAc,KAChB,CAEA,SAASS,GAAkBC,GACzBX,EAAeW,GACXnC,GAAcgC,KAAoBhM,OAAOoM,GAAOA,EAAG54H,KAAOw2H,EAAWx2H,MACvEi4H,EAAc,MAEZU,IAAmB7P,IAAU2P,IACnC,CAEA,SAASI,GAAaC,EAAW/1G,GAC/B,MAAMg2G,EAAarB,EAAiBoB,EAAW/1G,GAE/C,OADAu1G,GAAwBS,QACF,IAAfA,CACT,CAEA,SAASC,GAAYF,GACnBp2E,EAASo2E,GACT5uF,EAAiB,IAAR9mC,GAAc6pG,EAAgC6rB,EAAxBA,EAAU,IAAM,KACjD,CAEA,SAASG,GAAO14H,GACd,IAAKA,EAAK,OACV,GAAIE,EAAM/C,QAAU0F,EAAK,OACzB,GAAI3C,EAAMm9B,MAAK,EAAGt9B,UAAWA,IAASC,IAAM,OAE5C,MAAM24H,EAAiB92H,EAAOU,WAAWq2H,GAAOA,EAAG74H,OAASC,IAC5D,IAAIulB,EAEA4uG,EADA0E,EAAa,IAAI34H,IAGG,IAApBy4H,EACEtF,IACF9tG,EAAW,CAAE9lB,GAAIO,EAAKD,KAAMC,GAC5B64H,EAAa,IAAI34H,EAAOqlB,KAG1B4uG,EAAiB,IACZtyH,EAAO1C,MAAM,EAAGw5H,GACnB,SAAK92H,EAAO82H,IAAZ,CAA6B15F,UAAU,OACpCp9B,EAAO1C,MAAMw5H,EAAiB,IAEnCpzG,EAAW1jB,EAAO82H,GAClBE,EAAa,IAAI34H,EAAO2B,EAAO82H,KAG7BL,GAAaO,EAAYtzG,IAAauxG,EAAe52H,EAAO24H,KAC1D1E,GACFoD,EAAUpD,GAEZsE,GAAYI,GAEhB,CAoBA,SAASC,IAAY,GAAEr5H,IACrB,MAAMO,EAAM6B,EAAOK,MAAMiuF,GAAMA,EAAE1wF,KAAOA,IAClCs5H,EAAWl3H,EAAOU,WAAW4tF,GAAMA,EAAE1wF,KAAOA,IAClD,IAAIo5H,EAAa34H,EACbi0H,EAAiBtyH,EAEjB7B,EAAIi/B,SACDi4F,GAAoB,IAARr0H,IACfg2H,EAAa34H,EAAM0S,QAAQu9E,GAAMA,EAAE1wF,KAAOO,EAAIP,KAC9C00H,EAAiBtyH,EAAOm3H,KAAKD,EAAU,SAAK/4H,GAAL,CAAUi/B,UAAU,MAEpD/+B,EAAM/C,OAAS0F,GACxBg2H,EAAa,IAAI34H,EAAOF,GACxBm0H,EAAiBtyH,EAAOm3H,KAAKD,EAAU,SAAK/4H,GAAL,CAAUi/B,UAAU,MAC1C,IAARp8B,IACTg2H,EAAa,CAAC74H,GACdm0H,EAAiBtyH,EAAOE,KAAKouF,GAAO,SAAKA,GAAL,CAAQlxD,SAAUkxD,EAAE1wF,KAAOO,EAAIP,QAGjE64H,GAAaO,EAAY74H,IAAQ82H,EAAe52H,EAAO24H,KACzDJ,GAAYI,GACZtB,EAAUpD,KAGA,IAARtxH,GAAa0rH,IACfH,IAEJ,CAEA,SAAS6K,GAAgBh6F,GACvB,GAAIp9B,EAAO1E,OAAS0F,EAAK,OACzB,MAAM0iB,EAAW0Z,EAAW,IAAIp9B,GAAU,GAErCi1H,EAAe52H,EAAOqlB,KAE3BkzG,GAAYlzG,GACZgyG,EAAU11H,EAAOE,KAAKouF,GAAO,SAAKA,GAAL,CAAQlxD,gBACjCsvF,GAAeH,KACrB,CAEA,SAAS8K,KACP,MAAMC,EAAelB,KAAoBrlH,QAAQu9E,IAAOA,EAAE5+E,WAC1D,GAA4B,IAAxB4nH,EAAah8H,OAAc,OAC/B,GAAmB,OAAf84H,GAA+C,IAAxBkD,EAAah8H,OAEtC,YADAu6H,EAAcyB,EAAaA,EAAah8H,OAAS,IAGnD,MAAMi8H,EAAcD,EAAa52H,WAAW4tF,GAAMA,EAAE1wF,KAAOw2H,EAAWx2H,KACtEi4H,EAAcyB,EAAaC,EAAc,EAAIA,EAAc,EAAID,EAAah8H,OAAS,GACvF,CAEA,SAASk8H,KACP,MAAMF,EAAelB,KAAoBrlH,QAAQu9E,IAAOA,EAAE5+E,WAC1D,GAA4B,IAAxB4nH,EAAah8H,OAAc,OAC/B,GAAmB,OAAf84H,GAA+C,IAAxBkD,EAAah8H,OAEtC,YADAu6H,EAAcyB,EAAa,IAG7B,MAAMC,EAAcD,EAAa52H,WAAW4tF,GAAMA,EAAE1wF,KAAOw2H,EAAWx2H,KACtEi4H,EAAcyB,EAAaC,EAAcD,EAAah8H,OAAS,EAAIi8H,EAAc,EAAI,GACvF,CAEA,SAASE,KACHtC,EACFa,IAAmBD,IAEnBM,IAEJ,CAEA,SAASnP,GAAoBhjH,GA9P/B,IAAA8rB,EAAAE,GA+P0B,OAAAF,EAAAulG,EAAQ3mB,cAAR,EAAA5+E,EAAiBtZ,SAASxS,EAAE1E,WAC7C,OAAA0wB,EAAA47F,EAAYld,cAAZ,EAAA1+E,EAAqBxZ,SAASxS,EAAE1E,UAEnC+sH,IAEJ,CAgBA,SAASmL,GAAanmH,EAASnB,GACb,QAAZmB,IACFslH,GAAOzmH,GACPkmH,GAAkB,KAGJ,WAAZ/kH,GApHN,SAAmB3T,GACjB,GAAIy3H,GAAoB,IAARr0H,EAAW,OAE3B,MAAM81H,EAAiB92H,EAAOU,WAAWq2H,GAAOA,EAAGn5H,KAAOA,IACpD8lB,EAAWrlB,EAAM0S,QAAQu9E,GAAMA,EAAE1wF,KAAOA,IAEzCq3H,EAAe52H,EAAOqlB,MAEH,IAApBozG,GACFpB,EAAU,IACL11H,EAAO1C,MAAM,EAAGw5H,GACnB,SAAK92H,EAAO82H,IAAZ,CAA6B15F,UAAU,OACpCp9B,EAAO1C,MAAMw5H,EAAiB,KAGrCF,GAAYlzG,GACd,CAoG4Bi0G,CAAUvnH,GAEpB,iBAAZmB,GAA4B+kH,GAAkBlmH,GAElC,gBAAZmB,IACE6iH,EACF6C,GAAY7C,GACHhB,EAAc/zH,SAAS,WAChCw3H,GAAOzmH,GACPkmH,GAAkB,MAIN,kBAAZ/kH,IACF8kH,KACAgB,MAGc,oBAAZ9lH,IACF8kH,KACAmB,MAGc,iBAAZjmH,GAA4Bg7G,KAEhB,eAAZh7G,GAA4B8hH,IAC9BwD,GAAOzmH,GACPkmH,GAAkB,KAGJ,gBAAZ/kH,GACF8kH,IAEJ,CAEA,MAAM3/B,IAAY,IAAAoY,cAAY,CAACv9F,EAASnB,KAClCmB,EAAQ7S,WAAW,SAASg5H,GAAanmH,EAAQjU,MAAM,GAAI8S,GAE/C,iBAAZmB,GAA4B0lH,GAAY7mH,EAAKzP,MAEjC,qBAAZ4Q,GAAgC6lH,GAAgBhnH,GAEpC,qBAAZmB,GAAgC8kH,KAEpB,kBAAZ9kH,GAA6B+kH,GAAkBlmH,GAEnC,kBAAZmB,GAA6Bg7G,KAEjB,mBAAZh7G,GAA8B8lH,KAElB,qBAAZ9lH,GAAgCimH,KAEpB,iBAAZjmH,GACE6iH,GAAY6C,GAAY7C,EAC9B,GACC,CACDsD,GACAT,GACAG,GACAf,GACAC,GACA/J,GACA8K,GACAG,KAGII,IAAa,IAAA9oB,cACjB,IAAOqmB,EACH,kBAAC,EAAI,CAACrmH,KAAMinH,GAAiB,eAAiB,eAC9C,kBAAC,EAAI,CAACjnH,KAAK,kBAEf,CAACqmH,EAAYY,MAGf,IAAA5mB,YAAU,KACRn0G,OAAO6U,iBAAiB,QAASq3G,IAAqB,GAC/C,IAAMlsH,OAAOgV,oBAAoB,QAASk3G,IAAqB,KACrE,KAEH,IAAA/X,YAAU,KACR,GAAIylB,EAAWt5H,OAAQ,CACrB,MAAMo7H,EAAY9B,EAAW10H,KAAKouF,GAAO,SACpCqnC,GAAernC,IADqB,CAEvClxD,SAAU/+B,EAAMm9B,MAAMq8F,GAAOA,EAAGj6H,KAAO0wF,EAAE1wF,SAE3C83H,EAAUgB,GACVp2E,GAAUniD,GAAQA,EAAI+B,KAAKouF,GAAMooC,EAAUr2H,MAAMy3H,GAAOA,EAAGl6H,KAAO0wF,EAAE1wF,MAAO0wF,KAC7E,MAAWtuF,EAAO1E,QAChBo6H,EAAU,GACZ,GACC,CAACd,KAEJ,IAAAzlB,YAAU,KACR,MAAMzrF,EAAW+xG,GAAiBd,EAAW30H,GAC7CsgD,EAAS58B,GACTgyG,GAAWqC,GAASA,EAAK73H,KAAKouF,GAAO,SAChCqnC,GAAernC,IADiB,CAEnClxD,SAAU1Z,EAAS8X,MAAMs8F,GAAOA,EAAGl6H,KAAO0wF,EAAE1wF,UAC1C,GACH,CAAC+2H,KAEJ,IAAAxlB,YAAU,KACR,IAAKgmB,EAAY,MAAO,OAExB,MAAM6C,EAAgBxC,EAAmB5mB,QAAQr5E,cAAc,kCACzD0iG,EAAe,KACnBD,EAAchkE,UAAYgkE,EAAcnxC,YAAY,EAGhDqxC,EAAY,IAAIC,iBAAiBF,GACjCG,EAAY,IAAI5uC,eAAeyuC,GAKrC,OAHAC,EAAU5tC,QAAQ0tC,EAAe,CAAEtiH,YAAY,EAAM2iH,WAAW,EAAMC,SAAS,IAC/EF,EAAU9tC,QAAQ0tC,GAEX,KACLE,EAAU1tC,aACV4tC,EAAU5tC,YAAY,CACvB,IAGH,MAAMymC,GAAiBmF,KACjBmC,GAAuB,CAC3B,gCACApD,GAAc,cACd,mCAAkCY,GAAiB,WAAa,cAChEx4H,KAAK,KAEP,OACE,kBAAC,aACCuwG,IAAKynB,EACLxjG,SAAUriB,EAAW,KAAO,IAC5B8oH,eAxJJ,SAAwBt0H,GACtB,IAAKwL,EAAU,OACf,IAAKylH,EAEH,YADAjxH,EAAEiK,kBAIJ,MAAMwgH,EAAiB4G,EAAQ3mB,QAAQr5E,cAAc,4CAChDo5F,IAEoBA,IAAmBzqH,EAAE1E,QAAUmvH,EAAej4G,SAASxS,EAAE1E,SAC3D0E,EAAEiK,kBAC3B,GA6IQ8rG,GAJL,CAKCtyG,UA3UK,CACLs7G,EACA,iBACA,mBACGkT,MACFv6H,GAASq6H,KAAyB,YACnC7W,GAAc,kCACd1vG,GAAY,WACZylH,GAAc,kBACdpkH,OAAO4uB,SAASpiC,KAAK,OAoUpB85B,GACC,kBAAC,SAAMzvB,MAAO,CAAEy3G,UAAWD,GAAc,SAAW/nF,IAEpD/P,GACA,kBAAC,OACC3f,UAAU,4BACVC,MAAO,CAAEy3G,UAAW,eAAeD,cAEnC,kBAAC,OAAIz3G,UAAU,mBAAmBmmG,IAAK0nB,GACrC,kBAAC,OACC7tH,UAAW4wH,GACX5qB,QAAS0oB,GACTx0G,KAAK,QAEL,kBAAC,IACCxjB,QACA2C,MACA6pG,OACAuoB,gBACAC,eACA7B,oBACA9nE,cACAh6C,WACA6jH,gBACAD,cACAhxG,MAAOokG,GACPhwB,aACApvE,cAGH8tG,GACC,kBAAC,OACCztH,UAAW,2CAA0CouH,GAAiB,qDAAuD,IAC7Hl0G,KAAK,SACLkQ,SAAUriB,GAAY,EAAI,EAC1Bi+F,QAAS8pB,GACTpd,UAAWod,IAEVG,OAINlR,MAAc7b,GAAQomB,GAAe31H,OAAS,IAC7C,kBAAC,UACCiN,QAASitH,EACT1sF,KAAK,eACLnhC,UAAW,mDAAmDwuH,KAAkB54H,KAAK,OACrFuwG,IAAKge,EACLlP,YAAY,YACRsY,GANL,CAOCpY,2BAECiY,EACCA,EAAW9D,GAAgB,CACzBpmB,OACAspB,cACAC,aACAF,UACA7L,YAAa3xB,KAGf,kBAAC,IACCw9B,UACAI,aACAt0H,OAAQixH,GACRpmB,OACAspB,cACAC,aACA19B,aACA29B,iBACAluG,eAKP4iG,GACC,kBAAC,KAAEphH,UAAU,gCAAgCohH,IAE5CntH,GAAmB,SAAVA,GAA8B,UAAVA,GAAsB+jC,QAAQs2F,MAC5D,kBAAC,KAAEtuH,UAAU,mCAAmC/L,GAASq6H,KAI9D3uG,GACC,kBAAC,WACC,kBAAC,IACCjpB,QACAwsG,OACAyoB,cACAhsG,cAMZ,CAEAotG,GAAUvnB,UAAY,CAEpBqkB,kBAAmB,SAGnB0B,oBAAqB,gBAErBL,WAAY,SAEZS,YAAa,SAEbe,eAAgB,SAEhBU,WAAY,SACZrlH,SAAU,SAEV4X,SAAU,SACV1rB,MAAO,WACPy7B,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEF+nF,WAAY,WAEZp+G,IAAK,WAELyuH,SAAU,SACV1G,KAAM,cAAoB,CACxB,SACA,YACA,aAMFkM,eAAgB,SAChBntF,SAAU,SACV4hB,YAAa,WAGbmhD,KAAM,SAENuoB,cAAe,YAAkB,YAGjCC,aAAc,SACdnkG,MAAO,WAGP7wB,MAAO,cAAoB,CACzB,WACA,eAAqB+B,OACrB,eAAqB/D,UAGvB2D,OAAQ,eAAqBI,OAE7B80H,wBAAyB,eAAqB74H,QAG9Ck3H,cAAe,UAAgB,CAAC,SAAU,aAM1C4B,WAAY,SAEZrY,uBAAwB,eAAqBzgH,QAE7C+4H,uBAAwB,SAexBjvG,UAAW,cAAoB,CAC7B,SACA,UAAgB,CACdkR,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEFwF,KAAM,UAAgB,CAAC,SAAU,aACjC1N,KAAM,UAAgB,CAAC,SAAU,iBACjCiqF,OAAQ,aAIZsT,cAAe,SAEf4H,WAAY,SAGZe,SAAU,SAIVC,iBAAkB,SAClBrS,iBAAkB,YAGpB,YAEA,SAAS0S,GAAet3H,EAAO2B,GAC7B,IAAIsuF,EAAIjwF,EAGR,GAFqB,iBAAVA,EAAoBiwF,EAAI,CAAE1wF,GAAIS,EAAOH,KAAMG,GAC5CA,EAAM6U,eAAe,UAASo7E,EAAI,SAAKjwF,GAAL,CAAYH,KAAMG,EAAMT,OAC/DoC,EAAQ,OAAOsuF,EACpB,MAAMmqC,EAAcz4H,EAAOK,MAAMgqB,GAAOA,EAAGzsB,KAAO0wF,EAAE1wF,KACpD,OAAO66H,EAAc,SAAKnqC,GAAMmqC,GAAgBnqC,CAClD,CAEA,SAASmnC,GAAiBp3H,EAAO2B,GAC/B,OAAK3B,EACD+B,MAAMoB,QAAQnD,GAAeA,EAAM6B,KAAKouF,GAAMqnC,GAAernC,EAAGtuF,KAC7D,CAAC21H,GAAet3H,EAAO2B,IAFX,EAGrB,CCxoBA,MAAM,GAA+BnD,QAAQ,sTCS7C,SAAS67H,IAAW,SAClBjpE,EAAQ,SACR//C,EAAQ,SACR4X,GAAW,EAAK,MAChB1rB,EAAK,GACLgC,EAAE,MACFy5B,EAAK,WACL+nF,EAAU,KACV2J,EAAI,QACJhW,EAAO,SACPjrE,EAAQ,OACR6wF,EAAM,MACNzpG,EAAK,OACLla,EAAS,CAAC,EAAC,MACX3W,EAAK,iBACL4kH,EAAmB,KAEnB,MAAO2V,EAAgBC,IAAqB,IAAA7qB,UAAS,MAC/C8qB,GAAU,IAAA5pB,QAAO,MAEjBijB,EAAY,GAAY9zH,GAExB06H,GAAkB,IAAAjqB,cAAY,CAACkqB,EAAUC,KAC7C,IAAKD,EAAU,OAAO,EACtB,IAAK54H,MAAMoB,QAAQy3H,GAAc,OAAOD,EAASE,YAAcD,EAAYC,UAE3E,IAAIC,EAAYF,EAEhB,OAAID,GAAYC,EAAY39H,QAAU09H,EAAS19H,QAC7C69H,EAAYF,EAAYloH,QAAO,CAACqoH,EAAMz5H,IAAUy5H,EAAKF,YAAcF,EAASr5H,GAAOu5H,YAE5EC,EAAU79H,OAAS,GAGrB29H,EAAY39H,OAAS,CAAC,GAC5B,IAEG+9H,GAAe,IAAAvqB,cAAawqB,IAChC,MAAMtC,EAA6B,UAAhBhiH,EAAO6nB,KAAmBy8F,EAAYA,EAAU,IAAM,KAEpExxF,IAEe,UAAhB9yB,EAAO6nB,KACiB,IAAtBm6F,EAAW17H,QAAgBy9H,EAAgB5G,EAAW6E,IACxDlvF,EAASkvF,GAGXlvF,EAASkvF,GACX,GACC,CAAC7E,EAAWrqF,EAAUixF,KAEzB,IAAA5pB,YAAU,KACR,GAAI2pB,EAAQlqB,UAAYgqB,EAAgB,CACtC,MAAMW,EAAW,KAAUT,EAAQlqB,oIAAS,IACvC55F,WADuC,CAC/BwkH,YAAan7H,EAAOypC,SAAUuxF,EAActmB,UAAS4lB,cAElEE,EAAkBU,EACpB,OAEA,MAAO,KACDX,GACFA,EAAen+G,SACjB,CACD,GACA,CAACm+G,KAEJ,IAAAzpB,YAAU,KACR,GAAIypB,EAAgB,CAClB,IAAIxG,EAAY/zH,EAEK,iBAAVA,EACT+zH,EAAY,IAAIjzG,KAAK9gB,GACZ+B,MAAMoB,QAAQnD,KACvB+zH,EAAY/zH,EAAM6B,KAAKk5H,GAAS,IAAIj6G,KAAKi6G,MAGvCL,EAAgB5G,EAAWC,KAC7BwG,EAAetnH,IAAI,WAAY+nH,GACX,UAAhBrkH,EAAO6nB,KACLu1F,GAAkC,IAArBA,EAAU92H,QACzBs9H,EAAea,QAAQrH,GAAW,GAGpCwG,EAAea,QAAQrH,GAAW,GAGxC,IACC,CAACD,EAAW9zH,EAAOu6H,IAEtB,MAAM5vH,EAAU,CACd,iBACA,8BACAi6G,KACI/zF,EAAQA,EAAM9xB,MAAM,KAAK8C,KAAK2iB,GAAM,mBAAmBA,MAAO,GAClEu8F,GAAc,kCACdxjH,GAAS,aACTmV,OAAO4uB,SAASpiC,KAAK,KAYjBm8H,GAAe,IAAA5qB,cAAY,KAC1B8pB,GAELA,EAAe/rH,MAAM,GACpB,CAAC+rH,IAqDJ,OACE,qCAEI,MAAAnpE,OAAA,EAAAA,EAAUn0D,QACNm0D,EAAS,CAAEiqE,eAAc5rB,IAAKgrB,IAE9B,kBAAC,OAAInxH,UAAWqB,GAEZquB,EACI,kBAAC,SAAM+3F,QAASxxH,EAAIgK,MA3EhCw3G,EAAmB,CAAEC,UAAWD,GAC7B,CAAC,GA0EuD/nF,GAC/C,MAEJ/P,GACA,kBAAC,OACC3f,UAAU,sCACVC,MA5EVw3G,EAAmB,CAAEC,UAAW,eAAeD,aAC5C,CAAC,GA6EM,kBAAC,OAAIz3G,UAAU,mBA1DT,MACpB,IAAIgyH,EAAa,CAAC,EACdC,EAAa,CAAC,EAclB,OAZI,MAAA5kH,OAAA,EAAAA,EAAQ2M,UACVg4G,EAAa,CACX/uH,OAAQ,EACRm8D,QAAS,EACTr8D,MAAO,EACPo/E,WAAY,UAGd8vC,EAAa,CACX/uH,QAAS,SAIX,oCACE,kBAAC,SACC6E,WACA/H,UAAU,mBACV,cAAU,EACVmH,KAAK,OACLg/F,IAAKgrB,EACLlxH,MAAO+xH,IAET,kBAAC,OACChyH,UAAU,yBACVgmG,QAAS+rB,EACT73G,KAAK,SACL63F,QAAS,OACT3nF,SAAU,EACVnqB,MAAOgyH,EACP,aAAW,iBAEX,kBAAC,EAAI,CAAC9qH,KAAK,cAEf,EAsBe+qH,IAGD9Q,EACI,kBAAC,KAAEphH,UAAU,gCAAiCohH,GAC9C,KAzEnBntH,GAAmB,SAAVA,GAA8B,UAAVA,EAE1B,kBAAC,KAAE+L,UAAU,mCACT/L,GAGJ,OA2EF,kBAAC,OAAI+L,UAAU,8BACZ2f,IAAajpB,GAAS,IACtBipB,GAAYjpB,GAAS,gBAAqBA,EAAO2W,EAAO8kH,YAAc,UAI/E,CAEApB,GAAWvrB,UAAY,CACrBn4F,OAAQ,eAAqB3Y,QAC7BozD,SAAU,cAAoB,CAC5B,YACA,SACA,WACA,WAEF//C,SAAU,SACV4X,SAAU,SACV1pB,GAAI,WACJy5B,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEF+nF,WAAY,WACZ2J,KAAM,WACNjhF,SAAU,cAAoB,CAC5B,SACA,eAAqB1nC,SAEvB2yG,QAAS,cAAoB,CAC3B,SACA,eAAqB3yG,SAEvBu4H,OAAQ,cAAoB,CAC1B,SACA,eAAqBv4H,SAEvB8uB,MAAO,WACPtzB,MAAO,WACPyC,MAAO,cAAoB,CACzB,eAAqB+B,OACrB,eAAqB/D,QACrB,aAEF4mH,iBAAkB,YAGpB,YC/Pe,SAAS8W,GAAQ95H,GAG9B,OAAO85H,GAAU,mBAAqB7rG,QAAU,iBAAmBA,OAAOC,SAAW,SAAUluB,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAK,mBAAqBiuB,QAAUjuB,EAAE6N,cAAgBogB,QAAUjuB,IAAMiuB,OAAO5xB,UAAY,gBAAkB2D,CACpH,EAAG85H,GAAQ95H,EACb,CCRe,SAAS+5H,GAAa3E,EAAUxyF,GAC7C,GAAIA,EAAKvnC,OAAS+5H,EAChB,MAAM,IAAI51H,UAAU41H,EAAW,aAAeA,EAAW,EAAI,IAAM,IAAM,uBAAyBxyF,EAAKvnC,OAAS,WAEpH,CC8Be,SAAS2+H,GAAO57H,GAE7B,OADA27H,GAAa,EAAG3+H,WACTgD,aAAiB8gB,MAA2B,WAAnB46G,GAAQ17H,IAAiE,kBAA1ChC,OAAOC,UAAUC,SAASC,KAAK6B,EAChG,CCLe,SAAS67H,GAAOC,GAC7BH,GAAa,EAAG3+H,WAChB,IAAI++H,EAAS/9H,OAAOC,UAAUC,SAASC,KAAK29H,GAG5C,OAAIA,aAAoBh7G,MAA8B,WAAtB46G,GAAQI,IAAqC,kBAAXC,EAEzD,IAAIj7G,KAAKg7G,EAASjB,WACI,iBAAbiB,GAAoC,oBAAXC,EAClC,IAAIj7G,KAAKg7G,IAES,iBAAbA,GAAoC,oBAAXC,GAAoD,oBAAZz+H,UAE3EA,QAAQwV,KAAK,sNAEbxV,QAAQwV,MAAK,IAAId,OAAQkjC,QAEpB,IAAIp0B,KAAKk7G,KAEpB,CCnDe,SAASC,GAAUC,GAChC,GAAoB,OAAhBA,IAAwC,IAAhBA,IAAwC,IAAhBA,EAClD,OAAOF,IAET,IAAI74G,EAASR,OAAOu5G,GACpB,OAAInjE,MAAM51C,GACDA,EAEFA,EAAS,EAAIzgB,KAAK4lE,KAAKnlD,GAAUzgB,KAAKk8C,MAAMz7B,EACrD,CCPe,SAASg5G,GAAkBC,GACxCT,GAAa,EAAG3+H,WAChB,IACI+9H,EAAOc,GAAOO,GACdC,EAAMtB,EAAKuB,YACXh0E,GAAQ+zE,EAHO,EAGc,EAAI,GAAKA,EAHvB,EAMnB,OAFAtB,EAAKwB,WAAWxB,EAAKyB,aAAel0E,GACpCyyE,EAAK0B,YAAY,EAAG,EAAG,EAAG,GACnB1B,CACT,CCRe,SAAS2B,GAAkBN,GACxCT,GAAa,EAAG3+H,WAChB,IAAI+9H,EAAOc,GAAOO,GACdO,EAAO5B,EAAK6B,iBACZC,EAA4B,IAAI/7G,KAAK,GACzC+7G,EAA0BC,eAAeH,EAAO,EAAG,EAAG,GACtDE,EAA0BJ,YAAY,EAAG,EAAG,EAAG,GAC/C,IAAIM,EAAkBZ,GAAkBU,GACpCG,EAA4B,IAAIl8G,KAAK,GACzCk8G,EAA0BF,eAAeH,EAAM,EAAG,GAClDK,EAA0BP,YAAY,EAAG,EAAG,EAAG,GAC/C,IAAIQ,EAAkBd,GAAkBa,GACxC,OAAIjC,EAAKF,WAAakC,EAAgBlC,UAC7B8B,EAAO,EACL5B,EAAKF,WAAaoC,EAAgBpC,UACpC8B,EAEAA,EAAO,CAElB,CCtBA,IAAIO,GAAiB,CAAC,EACf,SAASC,KACd,OAAOD,EACT,CCCe,SAASE,GAAehB,EAAWjzH,GAChD,IAAIk0H,EAAMC,EAAOC,EAAOC,EAAuBC,EAAiBC,EAAuBC,EAAuBC,EAC9GjC,GAAa,EAAG3+H,WAChB,IAAIkgI,EAAiBC,KACjBU,EAAe5B,GAA+0B,QAAp0BoB,EAA8hB,QAAthBC,EAAkd,QAAzcC,EAA6G,QAApGC,EAAwBr0H,aAAyC,EAASA,EAAQ00H,oBAAoD,IAA1BL,EAAmCA,EAAwBr0H,SAAyF,QAAtCs0H,EAAkBt0H,EAAQ20H,cAAwC,IAApBL,GAA4F,QAArDC,EAAwBD,EAAgBt0H,eAA+C,IAA1Bu0H,OAA5J,EAAwMA,EAAsBG,oBAAoC,IAAVN,EAAmBA,EAAQL,EAAeW,oBAAoC,IAAVP,EAAmBA,EAA4D,QAAnDK,EAAwBT,EAAeY,cAA8C,IAA1BH,GAAyG,QAA5DC,EAAyBD,EAAsBx0H,eAAgD,IAA3By0H,OAA9E,EAA2HA,EAAuBC,oBAAmC,IAATR,EAAkBA,EAAO,GAGn4B,KAAMQ,GAAgB,GAAKA,GAAgB,GACzC,MAAM,IAAIE,WAAW,oDAEvB,IAAIhD,EAAOc,GAAOO,GACdC,EAAMtB,EAAKuB,YACXh0E,GAAQ+zE,EAAMwB,EAAe,EAAI,GAAKxB,EAAMwB,EAGhD,OAFA9C,EAAKwB,WAAWxB,EAAKyB,aAAel0E,GACpCyyE,EAAK0B,YAAY,EAAG,EAAG,EAAG,GACnB1B,CACT,CCfe,SAASiD,GAAe5B,EAAWjzH,GAChD,IAAIk0H,EAAMC,EAAOC,EAAOU,EAAuBR,EAAiBC,EAAuBC,EAAuBC,EAC9GjC,GAAa,EAAG3+H,WAChB,IAAI+9H,EAAOc,GAAOO,GACdO,EAAO5B,EAAK6B,iBACZM,EAAiBC,KACjBe,EAAwBjC,GAAm3B,QAAx2BoB,EAAyjB,QAAjjBC,EAAoe,QAA3dC,EAAsH,QAA7GU,EAAwB90H,aAAyC,EAASA,EAAQ+0H,6BAA6D,IAA1BD,EAAmCA,EAAwB90H,SAAyF,QAAtCs0H,EAAkBt0H,EAAQ20H,cAAwC,IAApBL,GAA4F,QAArDC,EAAwBD,EAAgBt0H,eAA+C,IAA1Bu0H,OAA5J,EAAwMA,EAAsBQ,6BAA6C,IAAVX,EAAmBA,EAAQL,EAAegB,6BAA6C,IAAVZ,EAAmBA,EAA4D,QAAnDK,EAAwBT,EAAeY,cAA8C,IAA1BH,GAAyG,QAA5DC,EAAyBD,EAAsBx0H,eAAgD,IAA3By0H,OAA9E,EAA2HA,EAAuBM,6BAA4C,IAATb,EAAkBA,EAAO,GAGh7B,KAAMa,GAAyB,GAAKA,GAAyB,GAC3D,MAAM,IAAIH,WAAW,6DAEvB,IAAII,EAAsB,IAAIr9G,KAAK,GACnCq9G,EAAoBrB,eAAeH,EAAO,EAAG,EAAGuB,GAChDC,EAAoB1B,YAAY,EAAG,EAAG,EAAG,GACzC,IAAIM,EAAkBK,GAAee,EAAqBh1H,GACtDi1H,EAAsB,IAAIt9G,KAAK,GACnCs9G,EAAoBtB,eAAeH,EAAM,EAAGuB,GAC5CE,EAAoB3B,YAAY,EAAG,EAAG,EAAG,GACzC,IAAIQ,EAAkBG,GAAegB,EAAqBj1H,GAC1D,OAAI4xH,EAAKF,WAAakC,EAAgBlC,UAC7B8B,EAAO,EACL5B,EAAKF,WAAaoC,EAAgBpC,UACpC8B,EAEAA,EAAO,CAElB,CChCe,SAAS0B,GAAgBl7G,EAAQm7G,GAG9C,IAFA,IAAIC,EAAOp7G,EAAS,EAAI,IAAM,GAC1B9hB,EAASqB,KAAK4b,IAAI6E,GAAQjlB,WACvBmD,EAAOpE,OAASqhI,GACrBj9H,EAAS,IAAMA,EAEjB,OAAOk9H,EAAOl9H,CAChB,CCwEA,SAhEK,SAAW05H,EAAMzmF,GAUlB,IAAIkqF,EAAazD,EAAK6B,iBAElBD,EAAO6B,EAAa,EAAIA,EAAa,EAAIA,EAC7C,OAAOH,GAA0B,OAAV/pF,EAAiBqoF,EAAO,IAAMA,EAAMroF,EAAMr3C,OACnE,EAkDF,GAhDK,SAAW89H,EAAMzmF,GAClB,IAAImqF,EAAQ1D,EAAK2D,cACjB,MAAiB,MAAVpqF,EAAgBl0C,OAAOq+H,EAAQ,GAAKJ,GAAgBI,EAAQ,EAAG,EACxE,EA6CF,GA3CK,SAAW1D,EAAMzmF,GAClB,OAAO+pF,GAAgBtD,EAAKyB,aAAcloF,EAAMr3C,OAClD,EAyCF,GAvBK,SAAW89H,EAAMzmF,GAClB,OAAO+pF,GAAgBtD,EAAK4D,cAAgB,IAAM,GAAIrqF,EAAMr3C,OAC9D,EAqBF,GAnBK,SAAW89H,EAAMzmF,GAClB,OAAO+pF,GAAgBtD,EAAK4D,cAAerqF,EAAMr3C,OACnD,EAiBF,GAfK,SAAW89H,EAAMzmF,GAClB,OAAO+pF,GAAgBtD,EAAK6D,gBAAiBtqF,EAAMr3C,OACrD,EAaF,GAXK,SAAW89H,EAAMzmF,GAClB,OAAO+pF,GAAgBtD,EAAK8D,gBAAiBvqF,EAAMr3C,OACrD,EASF,GAPK,SAAW89H,EAAMzmF,GAClB,IAAIwqF,EAAiBxqF,EAAMr3C,OACvB8hI,EAAehE,EAAKiE,qBAExB,OAAOX,GADiB37H,KAAKk8C,MAAMmgF,EAAer8H,KAAK2Y,IAAI,GAAIyjH,EAAiB,IACtCxqF,EAAMr3C,OAClD,ECtEF,IAwDI,GAAa,CAEfgiI,EAAG,SAAWlE,EAAMzmF,EAAO4qF,GACzB,IAAIC,EAAMpE,EAAK6B,iBAAmB,EAAI,EAAI,EAC1C,OAAQtoF,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAO4qF,EAASC,IAAIA,EAAK,CACvB9yH,MAAO,gBAGX,IAAK,QACH,OAAO6yH,EAASC,IAAIA,EAAK,CACvB9yH,MAAO,WAIX,QACE,OAAO6yH,EAASC,IAAIA,EAAK,CACvB9yH,MAAO,SAGf,EAEAygB,EAAG,SAAWiuG,EAAMzmF,EAAO4qF,GAEzB,GAAc,OAAV5qF,EAAgB,CAClB,IAAIkqF,EAAazD,EAAK6B,iBAElBD,EAAO6B,EAAa,EAAIA,EAAa,EAAIA,EAC7C,OAAOU,EAASE,cAAczC,EAAM,CAClC0C,KAAM,QAEV,CACA,OAAOC,GAAkBvE,EAAMzmF,EACjC,EAEAirF,EAAG,SAAWxE,EAAMzmF,EAAO4qF,EAAU/1H,GACnC,IAAIq2H,EAAiBxB,GAAejD,EAAM5xH,GAEtCs2H,EAAWD,EAAiB,EAAIA,EAAiB,EAAIA,EAGzD,MAAc,OAAVlrF,EAEK+pF,GADYoB,EAAW,IACO,GAIzB,OAAVnrF,EACK4qF,EAASE,cAAcK,EAAU,CACtCJ,KAAM,SAKHhB,GAAgBoB,EAAUnrF,EAAMr3C,OACzC,EAEAupC,EAAG,SAAWu0F,EAAMzmF,GAIlB,OAAO+pF,GAHW3B,GAAkB3B,GAGAzmF,EAAMr3C,OAC5C,EAUAiwF,EAAG,SAAW6tC,EAAMzmF,GAElB,OAAO+pF,GADItD,EAAK6B,iBACatoF,EAAMr3C,OACrC,EAEAyiI,EAAG,SAAW3E,EAAMzmF,EAAO4qF,GACzB,IAAIS,EAAUj9H,KAAK4lE,MAAMyyD,EAAK2D,cAAgB,GAAK,GACnD,OAAQpqF,GAEN,IAAK,IACH,OAAOl0C,OAAOu/H,GAEhB,IAAK,KACH,OAAOtB,GAAgBsB,EAAS,GAElC,IAAK,KACH,OAAOT,EAASE,cAAcO,EAAS,CACrCN,KAAM,YAGV,IAAK,MACH,OAAOH,EAASS,QAAQA,EAAS,CAC/BtzH,MAAO,cACP8b,QAAS,eAGb,IAAK,QACH,OAAO+2G,EAASS,QAAQA,EAAS,CAC/BtzH,MAAO,SACP8b,QAAS,eAIb,QACE,OAAO+2G,EAASS,QAAQA,EAAS,CAC/BtzH,MAAO,OACP8b,QAAS,eAGjB,EAEAqxE,EAAG,SAAWuhC,EAAMzmF,EAAO4qF,GACzB,IAAIS,EAAUj9H,KAAK4lE,MAAMyyD,EAAK2D,cAAgB,GAAK,GACnD,OAAQpqF,GAEN,IAAK,IACH,OAAOl0C,OAAOu/H,GAEhB,IAAK,KACH,OAAOtB,GAAgBsB,EAAS,GAElC,IAAK,KACH,OAAOT,EAASE,cAAcO,EAAS,CACrCN,KAAM,YAGV,IAAK,MACH,OAAOH,EAASS,QAAQA,EAAS,CAC/BtzH,MAAO,cACP8b,QAAS,eAGb,IAAK,QACH,OAAO+2G,EAASS,QAAQA,EAAS,CAC/BtzH,MAAO,SACP8b,QAAS,eAIb,QACE,OAAO+2G,EAASS,QAAQA,EAAS,CAC/BtzH,MAAO,OACP8b,QAAS,eAGjB,EAEAy3G,EAAG,SAAW7E,EAAMzmF,EAAO4qF,GACzB,IAAIT,EAAQ1D,EAAK2D,cACjB,OAAQpqF,GACN,IAAK,IACL,IAAK,KACH,OAAOgrF,GAAkBvE,EAAMzmF,GAEjC,IAAK,KACH,OAAO4qF,EAASE,cAAcX,EAAQ,EAAG,CACvCY,KAAM,UAGV,IAAK,MACH,OAAOH,EAAST,MAAMA,EAAO,CAC3BpyH,MAAO,cACP8b,QAAS,eAGb,IAAK,QACH,OAAO+2G,EAAST,MAAMA,EAAO,CAC3BpyH,MAAO,SACP8b,QAAS,eAIb,QACE,OAAO+2G,EAAST,MAAMA,EAAO,CAC3BpyH,MAAO,OACP8b,QAAS,eAGjB,EAEAoe,EAAG,SAAWw0F,EAAMzmF,EAAO4qF,GACzB,IAAIT,EAAQ1D,EAAK2D,cACjB,OAAQpqF,GAEN,IAAK,IACH,OAAOl0C,OAAOq+H,EAAQ,GAExB,IAAK,KACH,OAAOJ,GAAgBI,EAAQ,EAAG,GAEpC,IAAK,KACH,OAAOS,EAASE,cAAcX,EAAQ,EAAG,CACvCY,KAAM,UAGV,IAAK,MACH,OAAOH,EAAST,MAAMA,EAAO,CAC3BpyH,MAAO,cACP8b,QAAS,eAGb,IAAK,QACH,OAAO+2G,EAAST,MAAMA,EAAO,CAC3BpyH,MAAO,SACP8b,QAAS,eAIb,QACE,OAAO+2G,EAAST,MAAMA,EAAO,CAC3BpyH,MAAO,OACP8b,QAAS,eAGjB,EAEA+X,EAAG,SAAW66F,EAAMzmF,EAAO4qF,EAAU/1H,GACnC,IAAI02H,ECzRO,SAAoBzD,EAAWjzH,GAC5CwyH,GAAa,EAAG3+H,WAChB,IAAI+9H,EAAOc,GAAOO,GACd9zE,EAAO80E,GAAerC,EAAM5xH,GAAS0xH,UCH5B,SAA4BuB,EAAWjzH,GACpD,IAAIk0H,EAAMC,EAAOC,EAAOU,EAAuBR,EAAiBC,EAAuBC,EAAuBC,EAC9GjC,GAAa,EAAG3+H,WAChB,IAAIkgI,EAAiBC,KACjBe,EAAwBjC,GAAm3B,QAAx2BoB,EAAyjB,QAAjjBC,EAAoe,QAA3dC,EAAsH,QAA7GU,EAAwB90H,aAAyC,EAASA,EAAQ+0H,6BAA6D,IAA1BD,EAAmCA,EAAwB90H,SAAyF,QAAtCs0H,EAAkBt0H,EAAQ20H,cAAwC,IAApBL,GAA4F,QAArDC,EAAwBD,EAAgBt0H,eAA+C,IAA1Bu0H,OAA5J,EAAwMA,EAAsBQ,6BAA6C,IAAVX,EAAmBA,EAAQL,EAAegB,6BAA6C,IAAVZ,EAAmBA,EAA4D,QAAnDK,EAAwBT,EAAeY,cAA8C,IAA1BH,GAAyG,QAA5DC,EAAyBD,EAAsBx0H,eAAgD,IAA3By0H,OAA9E,EAA2HA,EAAuBM,6BAA4C,IAATb,EAAkBA,EAAO,GAC56BV,EAAOqB,GAAe5B,EAAWjzH,GACjC22H,EAAY,IAAIh/G,KAAK,GAIzB,OAHAg/G,EAAUhD,eAAeH,EAAM,EAAGuB,GAClC4B,EAAUrD,YAAY,EAAG,EAAG,EAAG,GACpBW,GAAe0C,EAAW32H,EAEvC,CDRuD42H,CAAmBhF,EAAM5xH,GAAS0xH,UAKvF,OAAOn4H,KAAKuL,MAAMq6C,EATO,QASwB,CACnD,CDgRe03E,CAAWjF,EAAM5xH,GAC5B,MAAc,OAAVmrC,EACK4qF,EAASE,cAAcS,EAAM,CAClCR,KAAM,SAGHhB,GAAgBwB,EAAMvrF,EAAMr3C,OACrC,EAEAgjI,EAAG,SAAWlF,EAAMzmF,EAAO4qF,GACzB,IAAIgB,EGnSO,SAAuB9D,GACpCT,GAAa,EAAG3+H,WAChB,IAAI+9H,EAAOc,GAAOO,GACd9zE,EAAO6zE,GAAkBpB,GAAMF,UCLtB,SAA+BuB,GAC5CT,GAAa,EAAG3+H,WAChB,IAAI2/H,EAAOD,GAAkBN,GACzB+D,EAAkB,IAAIr/G,KAAK,GAI/B,OAHAq/G,EAAgBrD,eAAeH,EAAM,EAAG,GACxCwD,EAAgB1D,YAAY,EAAG,EAAG,EAAG,GAC1BN,GAAkBgE,EAE/B,CDHiDC,CAAsBrF,GAAMF,UAK3E,OAAOn4H,KAAKuL,MAAMq6C,EATO,QASwB,CACnD,CH0RkB+3E,CAActF,GAC5B,MAAc,OAAVzmF,EACK4qF,EAASE,cAAcc,EAAS,CACrCb,KAAM,SAGHhB,GAAgB6B,EAAS5rF,EAAMr3C,OACxC,EAEAsyB,EAAG,SAAWwrG,EAAMzmF,EAAO4qF,GACzB,MAAc,OAAV5qF,EACK4qF,EAASE,cAAcrE,EAAKyB,aAAc,CAC/C6C,KAAM,SAGHC,GAAkBvE,EAAMzmF,EACjC,EAEAgsF,EAAG,SAAWvF,EAAMzmF,EAAO4qF,GACzB,IAAIqB,EKxTO,SAAyBnE,GACtCT,GAAa,EAAG3+H,WAChB,IAAI+9H,EAAOc,GAAOO,GACdoE,EAAYzF,EAAKF,UACrBE,EAAK0F,YAAY,EAAG,GACpB1F,EAAK0B,YAAY,EAAG,EAAG,EAAG,GAC1B,IACIiE,EAAaF,EADUzF,EAAKF,UAEhC,OAAOn4H,KAAKk8C,MAAM8hF,EATM,OAS8B,CACxD,CL+SoBC,CAAgB5F,GAChC,MAAc,OAAVzmF,EACK4qF,EAASE,cAAcmB,EAAW,CACvClB,KAAM,cAGHhB,GAAgBkC,EAAWjsF,EAAMr3C,OAC1C,EAEA2jI,EAAG,SAAW7F,EAAMzmF,EAAO4qF,GACzB,IAAI2B,EAAY9F,EAAKuB,YACrB,OAAQhoF,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAO4qF,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,cACP8b,QAAS,eAGb,IAAK,QACH,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,SACP8b,QAAS,eAGb,IAAK,SACH,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,QACP8b,QAAS,eAIb,QACE,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,OACP8b,QAAS,eAGjB,EAEAtiB,EAAG,SAAWk1H,EAAMzmF,EAAO4qF,EAAU/1H,GACnC,IAAI03H,EAAY9F,EAAKuB,YACjBwE,GAAkBD,EAAY13H,EAAQ00H,aAAe,GAAK,GAAK,EACnE,OAAQvpF,GAEN,IAAK,IACH,OAAOl0C,OAAO0gI,GAEhB,IAAK,KACH,OAAOzC,GAAgByC,EAAgB,GAEzC,IAAK,KACH,OAAO5B,EAASE,cAAc0B,EAAgB,CAC5CzB,KAAM,QAEV,IAAK,MACH,OAAOH,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,cACP8b,QAAS,eAGb,IAAK,QACH,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,SACP8b,QAAS,eAGb,IAAK,SACH,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,QACP8b,QAAS,eAIb,QACE,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,OACP8b,QAAS,eAGjB,EAEA+d,EAAG,SAAW60F,EAAMzmF,EAAO4qF,EAAU/1H,GACnC,IAAI03H,EAAY9F,EAAKuB,YACjBwE,GAAkBD,EAAY13H,EAAQ00H,aAAe,GAAK,GAAK,EACnE,OAAQvpF,GAEN,IAAK,IACH,OAAOl0C,OAAO0gI,GAEhB,IAAK,KACH,OAAOzC,GAAgByC,EAAgBxsF,EAAMr3C,QAE/C,IAAK,KACH,OAAOiiI,EAASE,cAAc0B,EAAgB,CAC5CzB,KAAM,QAEV,IAAK,MACH,OAAOH,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,cACP8b,QAAS,eAGb,IAAK,QACH,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,SACP8b,QAAS,eAGb,IAAK,SACH,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,QACP8b,QAAS,eAIb,QACE,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,OACP8b,QAAS,eAGjB,EAEA9pB,EAAG,SAAW08H,EAAMzmF,EAAO4qF,GACzB,IAAI2B,EAAY9F,EAAKuB,YACjByE,EAA6B,IAAdF,EAAkB,EAAIA,EACzC,OAAQvsF,GAEN,IAAK,IACH,OAAOl0C,OAAO2gI,GAEhB,IAAK,KACH,OAAO1C,GAAgB0C,EAAczsF,EAAMr3C,QAE7C,IAAK,KACH,OAAOiiI,EAASE,cAAc2B,EAAc,CAC1C1B,KAAM,QAGV,IAAK,MACH,OAAOH,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,cACP8b,QAAS,eAGb,IAAK,QACH,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,SACP8b,QAAS,eAGb,IAAK,SACH,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,QACP8b,QAAS,eAIb,QACE,OAAO+2G,EAAS7C,IAAIwE,EAAW,CAC7Bx0H,MAAO,OACP8b,QAAS,eAGjB,EAEA9kB,EAAG,SAAW03H,EAAMzmF,EAAO4qF,GACzB,IACI8B,EADQjG,EAAK4D,cACgB,IAAM,EAAI,KAAO,KAClD,OAAQrqF,GACN,IAAK,IACL,IAAK,KACH,OAAO4qF,EAAS+B,UAAUD,EAAoB,CAC5C30H,MAAO,cACP8b,QAAS,eAEb,IAAK,MACH,OAAO+2G,EAAS+B,UAAUD,EAAoB,CAC5C30H,MAAO,cACP8b,QAAS,eACRrhB,cACL,IAAK,QACH,OAAOo4H,EAAS+B,UAAUD,EAAoB,CAC5C30H,MAAO,SACP8b,QAAS,eAGb,QACE,OAAO+2G,EAAS+B,UAAUD,EAAoB,CAC5C30H,MAAO,OACP8b,QAAS,eAGjB,EAEAqH,EAAG,SAAWurG,EAAMzmF,EAAO4qF,GACzB,IACI8B,EADAE,EAAQnG,EAAK4D,cASjB,OANEqC,EADY,KAAVE,EAzfA,OA2fiB,IAAVA,EA5fH,WA+feA,EAAQ,IAAM,EAAI,KAAO,KAExC5sF,GACN,IAAK,IACL,IAAK,KACH,OAAO4qF,EAAS+B,UAAUD,EAAoB,CAC5C30H,MAAO,cACP8b,QAAS,eAEb,IAAK,MACH,OAAO+2G,EAAS+B,UAAUD,EAAoB,CAC5C30H,MAAO,cACP8b,QAAS,eACRrhB,cACL,IAAK,QACH,OAAOo4H,EAAS+B,UAAUD,EAAoB,CAC5C30H,MAAO,SACP8b,QAAS,eAGb,QACE,OAAO+2G,EAAS+B,UAAUD,EAAoB,CAC5C30H,MAAO,OACP8b,QAAS,eAGjB,EAEA0e,EAAG,SAAWk0F,EAAMzmF,EAAO4qF,GACzB,IACI8B,EADAE,EAAQnG,EAAK4D,cAWjB,OAREqC,EADEE,GAAS,GA1hBN,UA4hBIA,GAAS,GA7hBX,YA+hBEA,GAAS,EAhiBb,UAGF,QAkiBG5sF,GACN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAO4qF,EAAS+B,UAAUD,EAAoB,CAC5C30H,MAAO,cACP8b,QAAS,eAEb,IAAK,QACH,OAAO+2G,EAAS+B,UAAUD,EAAoB,CAC5C30H,MAAO,SACP8b,QAAS,eAGb,QACE,OAAO+2G,EAAS+B,UAAUD,EAAoB,CAC5C30H,MAAO,OACP8b,QAAS,eAGjB,EAEA8X,EAAG,SAAW86F,EAAMzmF,EAAO4qF,GACzB,GAAc,OAAV5qF,EAAgB,CAClB,IAAI4sF,EAAQnG,EAAK4D,cAAgB,GAEjC,OADc,IAAVuC,IAAaA,EAAQ,IAClBhC,EAASE,cAAc8B,EAAO,CACnC7B,KAAM,QAEV,CACA,OAAOC,GAAkBvE,EAAMzmF,EACjC,EAEA6sF,EAAG,SAAWpG,EAAMzmF,EAAO4qF,GACzB,MAAc,OAAV5qF,EACK4qF,EAASE,cAAcrE,EAAK4D,cAAe,CAChDU,KAAM,SAGHC,GAAkBvE,EAAMzmF,EACjC,EAEA8sF,EAAG,SAAWrG,EAAMzmF,EAAO4qF,GACzB,IAAIgC,EAAQnG,EAAK4D,cAAgB,GACjC,MAAc,OAAVrqF,EACK4qF,EAASE,cAAc8B,EAAO,CACnC7B,KAAM,SAGHhB,GAAgB6C,EAAO5sF,EAAMr3C,OACtC,EAEA6E,EAAG,SAAWi5H,EAAMzmF,EAAO4qF,GACzB,IAAIgC,EAAQnG,EAAK4D,cAEjB,OADc,IAAVuC,IAAaA,EAAQ,IACX,OAAV5sF,EACK4qF,EAASE,cAAc8B,EAAO,CACnC7B,KAAM,SAGHhB,GAAgB6C,EAAO5sF,EAAMr3C,OACtC,EAEAua,EAAG,SAAWujH,EAAMzmF,EAAO4qF,GACzB,MAAc,OAAV5qF,EACK4qF,EAASE,cAAcrE,EAAK6D,gBAAiB,CAClDS,KAAM,WAGHC,GAAkBvE,EAAMzmF,EACjC,EAEAvlC,EAAG,SAAWgsH,EAAMzmF,EAAO4qF,GACzB,MAAc,OAAV5qF,EACK4qF,EAASE,cAAcrE,EAAK8D,gBAAiB,CAClDQ,KAAM,WAGHC,GAAkBvE,EAAMzmF,EACjC,EAEA+sF,EAAG,SAAWtG,EAAMzmF,GAClB,OAAOgrF,GAAkBvE,EAAMzmF,EACjC,EAEAgtF,EAAG,SAAWvG,EAAMzmF,EAAOitF,EAAWp4H,GACpC,IACIq4H,GADer4H,EAAQs4H,eAAiB1G,GACV2G,oBAClC,GAAuB,IAAnBF,EACF,MAAO,IAET,OAAQltF,GAEN,IAAK,IACH,OAAOqtF,GAAkCH,GAK3C,IAAK,OACL,IAAK,KAEH,OAAOI,GAAeJ,GAOxB,QACE,OAAOI,GAAeJ,EAAgB,KAE5C,EAEAlmH,EAAG,SAAWy/G,EAAMzmF,EAAOitF,EAAWp4H,GACpC,IACIq4H,GADer4H,EAAQs4H,eAAiB1G,GACV2G,oBAClC,OAAQptF,GAEN,IAAK,IACH,OAAOqtF,GAAkCH,GAK3C,IAAK,OACL,IAAK,KAEH,OAAOI,GAAeJ,GAOxB,QACE,OAAOI,GAAeJ,EAAgB,KAE5C,EAEAh/H,EAAG,SAAWu4H,EAAMzmF,EAAOitF,EAAWp4H,GACpC,IACIq4H,GADer4H,EAAQs4H,eAAiB1G,GACV2G,oBAClC,OAAQptF,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQutF,GAAoBL,EAAgB,KAGrD,QACE,MAAO,MAAQI,GAAeJ,EAAgB,KAEpD,EAEAM,EAAG,SAAW/G,EAAMzmF,EAAOitF,EAAWp4H,GACpC,IACIq4H,GADer4H,EAAQs4H,eAAiB1G,GACV2G,oBAClC,OAAQptF,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQutF,GAAoBL,EAAgB,KAGrD,QACE,MAAO,MAAQI,GAAeJ,EAAgB,KAEpD,EAEAh9G,EAAG,SAAWu2G,EAAMzmF,EAAOitF,EAAWp4H,GACpC,IAAI44H,EAAe54H,EAAQs4H,eAAiB1G,EAE5C,OAAOsD,GADS37H,KAAKk8C,MAAMmjF,EAAalH,UAAY,KAClBvmF,EAAMr3C,OAC1C,EAEA+kI,EAAG,SAAWjH,EAAMzmF,EAAOitF,EAAWp4H,GAGpC,OAAOk1H,IAFYl1H,EAAQs4H,eAAiB1G,GACfF,UACKvmF,EAAMr3C,OAC1C,GAEF,SAAS4kI,GAAoBj9H,EAAQq9H,GACnC,IAAI1D,EAAO35H,EAAS,EAAI,IAAM,IAC1Bs9H,EAAYx/H,KAAK4b,IAAI1Z,GACrBs8H,EAAQx+H,KAAKk8C,MAAMsjF,EAAY,IAC/BC,EAAUD,EAAY,GAC1B,GAAgB,IAAZC,EACF,OAAO5D,EAAOn+H,OAAO8gI,GAEvB,IAAIkB,EAAYH,GAAkB,GAClC,OAAO1D,EAAOn+H,OAAO8gI,GAASkB,EAAY/D,GAAgB8D,EAAS,EACrE,CACA,SAASR,GAAkC/8H,EAAQq9H,GACjD,OAAIr9H,EAAS,IAAO,GACPA,EAAS,EAAI,IAAM,KAChBy5H,GAAgB37H,KAAK4b,IAAI1Z,GAAU,GAAI,GAEhDg9H,GAAeh9H,EAAQq9H,EAChC,CACA,SAASL,GAAeh9H,EAAQq9H,GAC9B,IAAIG,EAAYH,GAAkB,GAC9B1D,EAAO35H,EAAS,EAAI,IAAM,IAC1Bs9H,EAAYx/H,KAAK4b,IAAI1Z,GAGzB,OAAO25H,EAFKF,GAAgB37H,KAAKk8C,MAAMsjF,EAAY,IAAK,GAElCE,EADR/D,GAAgB6D,EAAY,GAAI,EAEhD,CACA,YMnwBA,IAAIG,GAAoB,SAA2BC,EAASC,GAC1D,OAAQD,GACN,IAAK,IACH,OAAOC,EAAWxH,KAAK,CACrB1uH,MAAO,UAEX,IAAK,KACH,OAAOk2H,EAAWxH,KAAK,CACrB1uH,MAAO,WAEX,IAAK,MACH,OAAOk2H,EAAWxH,KAAK,CACrB1uH,MAAO,SAGX,QACE,OAAOk2H,EAAWxH,KAAK,CACrB1uH,MAAO,SAGf,EACIm2H,GAAoB,SAA2BF,EAASC,GAC1D,OAAQD,GACN,IAAK,IACH,OAAOC,EAAWj2G,KAAK,CACrBjgB,MAAO,UAEX,IAAK,KACH,OAAOk2H,EAAWj2G,KAAK,CACrBjgB,MAAO,WAEX,IAAK,MACH,OAAOk2H,EAAWj2G,KAAK,CACrBjgB,MAAO,SAGX,QACE,OAAOk2H,EAAWj2G,KAAK,CACrBjgB,MAAO,SAGf,EAkCIo2H,GAAiB,CACnB/pH,EAAG8pH,GACHE,EAnC0B,SAA+BJ,EAASC,GAClE,IAMII,EANAC,EAAcN,EAAQj7H,MAAM,cAAgB,GAC5Cw7H,EAAcD,EAAY,GAC1BE,EAAcF,EAAY,GAC9B,IAAKE,EACH,OAAOT,GAAkBC,EAASC,GAGpC,OAAQM,GACN,IAAK,IACHF,EAAiBJ,EAAWQ,SAAS,CACnC12H,MAAO,UAET,MACF,IAAK,KACHs2H,EAAiBJ,EAAWQ,SAAS,CACnC12H,MAAO,WAET,MACF,IAAK,MACHs2H,EAAiBJ,EAAWQ,SAAS,CACnC12H,MAAO,SAET,MAEF,QACEs2H,EAAiBJ,EAAWQ,SAAS,CACnC12H,MAAO,SAIb,OAAOs2H,EAAevjI,QAAQ,WAAYijI,GAAkBQ,EAAaN,IAAanjI,QAAQ,WAAYojI,GAAkBM,EAAaP,GAC3I,GAKA,YC/EA,IAAIS,GAA2B,CAAC,IAAK,MACjCC,GAA0B,CAAC,KAAM,QAO9B,SAASC,GAAoB5uF,EAAO6uF,EAAQ9jF,GACjD,GAAc,SAAV/K,EACF,MAAM,IAAIypF,WAAW,qCAAqC1lG,OAAO8qG,EAAQ,0CAA0C9qG,OAAOgnB,EAAO,mFAC5H,GAAc,OAAV/K,EACT,MAAM,IAAIypF,WAAW,iCAAiC1lG,OAAO8qG,EAAQ,0CAA0C9qG,OAAOgnB,EAAO,mFACxH,GAAc,MAAV/K,EACT,MAAM,IAAIypF,WAAW,+BAA+B1lG,OAAO8qG,EAAQ,sDAAsD9qG,OAAOgnB,EAAO,mFAClI,GAAc,OAAV/K,EACT,MAAM,IAAIypF,WAAW,iCAAiC1lG,OAAO8qG,EAAQ,sDAAsD9qG,OAAOgnB,EAAO,kFAE7I,CClBA,IAAI+jF,GAAuB,CACzBC,iBAAkB,CAChBC,IAAK,qBACLzoC,MAAO,+BAET0oC,SAAU,CACRD,IAAK,WACLzoC,MAAO,qBAET2oC,YAAa,gBACbC,iBAAkB,CAChBH,IAAK,qBACLzoC,MAAO,+BAET6oC,SAAU,CACRJ,IAAK,WACLzoC,MAAO,qBAET8oC,YAAa,CACXL,IAAK,eACLzoC,MAAO,yBAET+oC,OAAQ,CACNN,IAAK,SACLzoC,MAAO,mBAETgpC,MAAO,CACLP,IAAK,QACLzoC,MAAO,kBAETipC,YAAa,CACXR,IAAK,eACLzoC,MAAO,yBAETkpC,OAAQ,CACNT,IAAK,SACLzoC,MAAO,mBAETmpC,aAAc,CACZV,IAAK,gBACLzoC,MAAO,0BAETopC,QAAS,CACPX,IAAK,UACLzoC,MAAO,oBAETqpC,YAAa,CACXZ,IAAK,eACLzoC,MAAO,yBAETspC,OAAQ,CACNb,IAAK,SACLzoC,MAAO,mBAETupC,WAAY,CACVd,IAAK,cACLzoC,MAAO,wBAETwpC,aAAc,CACZf,IAAK,gBACLzoC,MAAO,2BC5DI,SAASypC,GAAkB9/F,GACxC,OAAO,WACL,IAAIr7B,EAAUnM,UAAUC,OAAS,QAAsBc,IAAjBf,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAE/EqP,EAAQlD,EAAQkD,MAAQjM,OAAO+I,EAAQkD,OAASm4B,EAAK+/F,aAEzD,OADa//F,EAAKggG,QAAQn4H,IAAUm4B,EAAKggG,QAAQhgG,EAAK+/F,aAExD,CACF,CCPA,ICD4C//F,GDmBxC+9F,GAAa,CACfxH,KAAMuJ,GAAkB,CACtBE,QApBc,CAChBC,KAAM,mBACNC,KAAM,aACNC,OAAQ,WACRC,MAAO,cAiBLL,aAAc,SAEhBj4G,KAAMg4G,GAAkB,CACtBE,QAlBc,CAChBC,KAAM,iBACNC,KAAM,cACNC,OAAQ,YACRC,MAAO,UAeLL,aAAc,SAEhBxB,SAAUuB,GAAkB,CAC1BE,QAhBkB,CACpBC,KAAM,yBACNC,KAAM,yBACNC,OAAQ,qBACRC,MAAO,sBAaLL,aAAc,UE9BdM,GAAuB,CACzBC,SAAU,qBACVC,UAAW,mBACXC,MAAO,eACPC,SAAU,kBACVC,SAAU,cACVrqC,MAAO,KCNM,SAASsqC,GAAgB3gG,GACtC,OAAO,SAAU4gG,EAAYj8H,GAC3B,IACIk8H,EACJ,GAAgB,gBAFFl8H,SAA0CA,EAAQgf,QAAU/nB,OAAO+I,EAAQgf,SAAW,eAEpEqc,EAAK8gG,iBAAkB,CACrD,IAAIf,EAAe//F,EAAK+gG,wBAA0B/gG,EAAK+/F,aACnDl4H,EAAQlD,SAA0CA,EAAQkD,MAAQjM,OAAO+I,EAAQkD,OAASk4H,EAC9Fc,EAAc7gG,EAAK8gG,iBAAiBj5H,IAAUm4B,EAAK8gG,iBAAiBf,EACtE,KAAO,CACL,IAAIiB,EAAgBhhG,EAAK+/F,aACrBkB,EAASt8H,SAA0CA,EAAQkD,MAAQjM,OAAO+I,EAAQkD,OAASm4B,EAAK+/F,aACpGc,EAAc7gG,EAAK7iC,OAAO8jI,IAAWjhG,EAAK7iC,OAAO6jI,EACnD,CAGA,OAAOH,EAFK7gG,EAAKkhG,iBAAmBlhG,EAAKkhG,iBAAiBN,GAAcA,EAG1E,CACF,CCjBe,SAASO,GAAanhG,GACnC,OAAO,SAAUzjC,GACf,IAAIoI,EAAUnM,UAAUC,OAAS,QAAsBc,IAAjBf,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/EqP,EAAQlD,EAAQkD,MAChBu5H,EAAev5H,GAASm4B,EAAKqhG,cAAcx5H,IAAUm4B,EAAKqhG,cAAcrhG,EAAKshG,mBAC7ElD,EAAc7hI,EAAOsG,MAAMu+H,GAC/B,IAAKhD,EACH,OAAO,KAET,IAOI5iI,EAPA+lI,EAAgBnD,EAAY,GAC5BoD,EAAgB35H,GAASm4B,EAAKwhG,cAAc35H,IAAUm4B,EAAKwhG,cAAcxhG,EAAKyhG,mBAC9EvkI,EAAMK,MAAMoB,QAAQ6iI,GAuB5B,SAAmBjiI,EAAO9B,GACxB,IAAK,IAAIP,EAAM,EAAGA,EAAMqC,EAAM9G,OAAQyE,IACpC,GAAcqC,EAAMrC,GAxBHyG,KAAK49H,GAyBpB,OAAOrkI,CAIb,CA9B6CW,CAAU2jI,GAevD,SAAiBE,EAAQjkI,GACvB,IAAK,IAAIP,KAAOwkI,EACd,GAAIA,EAAOrxH,eAAenT,IAAkBwkI,EAAOxkI,GAdlCyG,KAAK49H,GAepB,OAAOrkI,CAIb,CApBSykI,CAAQH,GAOb,OAHAhmI,EAAQwkC,EAAK4hG,cAAgB5hG,EAAK4hG,cAAc1kI,GAAOA,EAGhD,CACL1B,MAHFA,EAAQmJ,EAAQi9H,cAAgBj9H,EAAQi9H,cAAcpmI,GAASA,EAI7D4uG,KAHS7tG,EAAO9B,MAAM8mI,EAAc9oI,QAKxC,CACF,CCCA,MCzBA,GDaa,CACX6/C,KAAM,QACNupF,eP+CmB,SAAwB/xF,EAAOzzC,EAAOsI,GACzD,IAAIrI,EACAwlI,EAAalD,GAAqB9uF,GAQtC,OANExzC,EADwB,iBAAfwlI,EACAA,EACU,IAAVzlI,EACAylI,EAAWhD,IAEXgD,EAAWzrC,MAAMz7F,QAAQ,YAAayB,EAAM3C,YAEnDiL,SAA0CA,EAAQo9H,UAChDp9H,EAAQq9H,YAAcr9H,EAAQq9H,WAAa,EACtC,MAAQ1lI,EAERA,EAAS,OAGbA,CACT,EOhEEyhI,WLgBF,GKfEkE,eHVmB,SAAwBnyF,EAAOoyF,EAAOC,EAAWC,GACpE,OAAO/B,GAAqBvwF,EAC9B,EGSE4qF,SE+Fa,CACbE,cAxBkB,SAAuBlD,EAAa0K,GACtD,IAAIzjH,EAASR,OAAOu5G,GAShB2K,EAAS1jH,EAAS,IACtB,GAAI0jH,EAAS,IAAMA,EAAS,GAC1B,OAAQA,EAAS,IACf,KAAK,EACH,OAAO1jH,EAAS,KAClB,KAAK,EACH,OAAOA,EAAS,KAClB,KAAK,EACH,OAAOA,EAAS,KAGtB,OAAOA,EAAS,IAClB,EAGEg8G,IAAKgG,GAAgB,CACnBxjI,OApHY,CACdmlI,OAAQ,CAAC,IAAK,KACdC,YAAa,CAAC,KAAM,MACpBC,KAAM,CAAC,gBAAiB,gBAkHtBzC,aAAc,SAEhB5E,QAASwF,GAAgB,CACvBxjI,OAnHgB,CAClBmlI,OAAQ,CAAC,IAAK,IAAK,IAAK,KACxBC,YAAa,CAAC,KAAM,KAAM,KAAM,MAChCC,KAAM,CAAC,cAAe,cAAe,cAAe,gBAiHlDzC,aAAc,OACdmB,iBAAkB,SAA0B/F,GAC1C,OAAOA,EAAU,CACnB,IAEFlB,MAAO0G,GAAgB,CACrBxjI,OAhHc,CAChBmlI,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAChEC,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAC3FC,KAAM,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,aA8GnHzC,aAAc,SAEhBlI,IAAK8I,GAAgB,CACnBxjI,OA/GY,CACdmlI,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACvClC,MAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAC5CmC,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACxDC,KAAM,CAAC,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,aA4GvEzC,aAAc,SAEhBtD,UAAWkE,GAAgB,CACzBxjI,OA7GkB,CACpBmlI,OAAQ,CACNG,GAAI,IACJC,GAAI,IACJC,SAAU,KACVC,KAAM,IACNC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,MAAO,SAETT,YAAa,CACXE,GAAI,KACJC,GAAI,KACJC,SAAU,WACVC,KAAM,OACNC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,MAAO,SAETR,KAAM,CACJC,GAAI,OACJC,GAAI,OACJC,SAAU,WACVC,KAAM,OACNC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,MAAO,UAiFPjD,aAAc,OACde,iBA/E4B,CAC9BwB,OAAQ,CACNG,GAAI,IACJC,GAAI,IACJC,SAAU,KACVC,KAAM,IACNC,QAAS,iBACTC,UAAW,mBACXC,QAAS,iBACTC,MAAO,YAETT,YAAa,CACXE,GAAI,KACJC,GAAI,KACJC,SAAU,WACVC,KAAM,OACNC,QAAS,iBACTC,UAAW,mBACXC,QAAS,iBACTC,MAAO,YAETR,KAAM,CACJC,GAAI,OACJC,GAAI,OACJC,SAAU,WACVC,KAAM,OACNC,QAAS,iBACTC,UAAW,mBACXC,QAAS,iBACTC,MAAO,aAmDPjC,uBAAwB,UFvH1Bl+H,MGmCU,CACV+3H,ePxD0C56F,GOwDP,CACjCohG,aAvD4B,wBAwD5B6B,aAvD4B,OAwD5BrB,cAAe,SAAuBpmI,GACpC,OAAO+a,SAAS/a,EAAO,GACzB,GP5DK,SAAUe,GACf,IAAIoI,EAAUnM,UAAUC,OAAS,QAAsBc,IAAjBf,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/E4lI,EAAc7hI,EAAOsG,MAAMm9B,GAAKohG,cACpC,IAAKhD,EAAa,OAAO,KACzB,IAAImD,EAAgBnD,EAAY,GAC5B8E,EAAc3mI,EAAOsG,MAAMm9B,GAAKijG,cACpC,IAAKC,EAAa,OAAO,KACzB,IAAI1nI,EAAQwkC,GAAK4hG,cAAgB5hG,GAAK4hG,cAAcsB,EAAY,IAAMA,EAAY,GAGlF,MAAO,CACL1nI,MAHFA,EAAQmJ,EAAQi9H,cAAgBj9H,EAAQi9H,cAAcpmI,GAASA,EAI7D4uG,KAHS7tG,EAAO9B,MAAM8mI,EAAc9oI,QAKxC,GOgDAkiI,IAAKwG,GAAa,CAChBE,cA5DmB,CACrBiB,OAAQ,UACRC,YAAa,6DACbC,KAAM,8DA0DJlB,kBAAmB,OACnBE,cAzDmB,CACrB2B,IAAK,CAAC,MAAO,YAyDX1B,kBAAmB,QAErBtG,QAASgG,GAAa,CACpBE,cA1DuB,CACzBiB,OAAQ,WACRC,YAAa,YACbC,KAAM,kCAwDJlB,kBAAmB,OACnBE,cAvDuB,CACzB2B,IAAK,CAAC,KAAM,KAAM,KAAM,OAuDtB1B,kBAAmB,MACnBG,cAAe,SAAuB9kI,GACpC,OAAOA,EAAQ,CACjB,IAEFm9H,MAAOkH,GAAa,CAClBE,cA3DqB,CACvBiB,OAAQ,eACRC,YAAa,sDACbC,KAAM,6FAyDJlB,kBAAmB,OACnBE,cAxDqB,CACvBc,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtFa,IAAK,CAAC,OAAQ,MAAO,QAAS,OAAQ,QAAS,QAAS,QAAS,OAAQ,MAAO,MAAO,MAAO,QAuD5F1B,kBAAmB,QAErB5J,IAAKsJ,GAAa,CAChBE,cAxDmB,CACrBiB,OAAQ,YACRlC,MAAO,2BACPmC,YAAa,kCACbC,KAAM,gEAqDJlB,kBAAmB,OACnBE,cApDmB,CACrBc,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACnDa,IAAK,CAAC,OAAQ,MAAO,OAAQ,MAAO,OAAQ,MAAO,SAmDjD1B,kBAAmB,QAErBhF,UAAW0E,GAAa,CACtBE,cApDyB,CAC3BiB,OAAQ,6DACRa,IAAK,kFAmDH7B,kBAAmB,MACnBE,cAlDyB,CAC3B2B,IAAK,CACHV,GAAI,MACJC,GAAI,MACJC,SAAU,OACVC,KAAM,OACNC,QAAS,WACTC,UAAW,aACXC,QAAS,WACTC,MAAO,WA0CPvB,kBAAmB,SHzErB98H,QAAS,CACP00H,aAAc,EACdK,sBAAuB,IIF3B,IAAI0J,GAAyB,wDAIzBC,GAA6B,oCAC7BC,GAAsB,eACtBC,GAAoB,MACpBC,GAAgC,WAsSrB,SAAS7E,GAAO/G,EAAW6L,EAAgB9+H,GACxD,IAAIk0H,EAAMI,EAAiBH,EAAOC,EAAO2K,EAAOjK,EAAuBkK,EAAkBC,EAAuBzK,EAAuBC,EAAwByK,EAAOC,EAAOC,EAAO/K,EAAuBgL,EAAkBC,EAAuBC,EAAwBC,EAC5QhN,GAAa,EAAG3+H,WAChB,IAAI4rI,EAAYxoI,OAAO6nI,GACnB/K,EAAiBC,KACjBW,EAA4L,QAAlLT,EAAgG,QAAxFI,EAAkBt0H,aAAyC,EAASA,EAAQ20H,cAAwC,IAApBL,EAA6BA,EAAkBP,EAAeY,cAA6B,IAATT,EAAkBA,EAAOwL,GAC7N3K,EAAwBjC,GAAu3B,QAA52BqB,EAA6jB,QAApjBC,EAAue,QAA9d2K,EAAsH,QAA7GjK,EAAwB90H,aAAyC,EAASA,EAAQ+0H,6BAA6D,IAA1BD,EAAmCA,EAAwB90H,SAA0F,QAAvCg/H,EAAmBh/H,EAAQ20H,cAAyC,IAArBqK,GAA8F,QAAtDC,EAAwBD,EAAiBh/H,eAA+C,IAA1Bi/H,OAA/J,EAA2MA,EAAsBlK,6BAA6C,IAAVgK,EAAmBA,EAAQhL,EAAegB,6BAA6C,IAAVX,EAAmBA,EAA4D,QAAnDI,EAAwBT,EAAeY,cAA8C,IAA1BH,GAAyG,QAA5DC,EAAyBD,EAAsBx0H,eAAgD,IAA3By0H,OAA9E,EAA2HA,EAAuBM,6BAA6C,IAAVZ,EAAmBA,EAAQ,GAGt7B,KAAMY,GAAyB,GAAKA,GAAyB,GAC3D,MAAM,IAAIH,WAAW,6DAEvB,IAAIF,EAAe5B,GAAs1B,QAA30BoM,EAAkiB,QAAzhBC,EAAqd,QAA5cC,EAA6G,QAApG/K,EAAwBr0H,aAAyC,EAASA,EAAQ00H,oBAAoD,IAA1BL,EAAmCA,EAAwBr0H,SAA0F,QAAvCq/H,EAAmBr/H,EAAQ20H,cAAyC,IAArB0K,GAA8F,QAAtDC,EAAwBD,EAAiBr/H,eAA+C,IAA1Bs/H,OAA/J,EAA2MA,EAAsB5K,oBAAoC,IAAV0K,EAAmBA,EAAQrL,EAAeW,oBAAoC,IAAVyK,EAAmBA,EAA6D,QAApDI,EAAyBxL,EAAeY,cAA+C,IAA3B4K,GAA2G,QAA7DC,EAAyBD,EAAuBv/H,eAAgD,IAA3Bw/H,OAA/E,EAA4HA,EAAuB9K,oBAAoC,IAAVwK,EAAmBA,EAAQ,GAG54B,KAAMxK,GAAgB,GAAKA,GAAgB,GACzC,MAAM,IAAIE,WAAW,oDAEvB,IAAKD,EAAOoB,SACV,MAAM,IAAInB,WAAW,yCAEvB,IAAKD,EAAOyE,WACV,MAAM,IAAIxE,WAAW,2CAEvB,IAAIgE,EAAelG,GAAOO,GAC1B,ICzTa,SAAiBA,GAE9B,GADAT,GAAa,EAAG3+H,YACX4+H,GAAOQ,IAAmC,iBAAdA,EAC/B,OAAO,EAET,IAAIrB,EAAOc,GAAOO,GAClB,OAAQrjE,MAAMp2C,OAAOo4G,GACvB,CDkTO+N,CAAQ/G,GACX,MAAM,IAAIhE,WAAW,sBAMvB,IAAIyD,EEvVS,SAAyCzG,GACtD,IAAIgO,EAAU,IAAIjoH,KAAKA,KAAKkoH,IAAIjO,EAAKkO,cAAelO,EAAKmO,WAAYnO,EAAKoO,UAAWpO,EAAKqO,WAAYrO,EAAKsO,aAActO,EAAKuO,aAAcvO,EAAKwO,oBAEjJ,OADAR,EAAQjM,eAAe/B,EAAKkO,eACrBlO,EAAKF,UAAYkO,EAAQlO,SAClC,CFmVuB2O,CAAgCzH,GACjDgH,EG9US,SAAyB3M,EAAWqN,GAGjD,OAFA9N,GAAa,EAAG3+H,WCDH,SAAyBo/H,EAAWqN,GACjD9N,GAAa,EAAG3+H,WAChB,IAAIwjI,EAAY3E,GAAOO,GAAWvB,UAC9BvlD,EAAS2mD,GAAUwN,GACvB,OAAO,IAAI3oH,KAAK0/G,EAAYlrD,EAC9B,CDFSo0D,CAAgBtN,GADVH,GAAUwN,GAEzB,CH0UgBE,CAAgB5H,EAAcP,GACxCoI,EAAmB,CACrB1L,sBAAuBA,EACvBL,aAAcA,EACdC,OAAQA,EACR2D,cAAeM,GAiCjB,OA/Ba6G,EAAUvhI,MAAMwgI,IAA4BhmI,KAAI,SAAU2oC,GACrE,IAAIq/F,EAAiBr/F,EAAU,GAC/B,MAAuB,MAAnBq/F,GAA6C,MAAnBA,GAErBC,EADa,GAAeD,IACdr/F,EAAWszF,EAAOyE,YAElC/3F,CACT,IAAGtrC,KAAK,IAAImI,MAAMugI,IAAwB/lI,KAAI,SAAU2oC,GAEtD,GAAkB,OAAdA,EACF,MAAO,IAET,IAqBwB6U,EACtBqiD,EAtBEmoC,EAAiBr/F,EAAU,GAC/B,GAAuB,MAAnBq/F,EACF,OAoBAnoC,GADsBriD,EAnBI7U,GAoBVnjC,MAAMygI,KAInBpmC,EAAQ,GAAGtiG,QAAQ2oI,GAAmB,KAFpC1oF,EApBP,IZrXqC/K,EYqXjCqjE,EAAY,GAAWkyB,GAC3B,GAAIlyB,EAOF,OANMxuG,SAA0CA,EAAQ4gI,8BZvXrBz1F,EYuX8E9J,GZtXlE,IAA5Cy4F,GAAwBpkI,QAAQy1C,KYuXjC4uF,GAAoB14F,EAAWy9F,EAAgB7nI,OAAOg8H,IAElDjzH,SAA0CA,EAAQ6gI,+BZ7XvD,SAAmC11F,GACxC,OAAoD,IAA7C0uF,GAAyBnkI,QAAQy1C,EAC1C,CY2X+F21F,CAA0Bz/F,IACjH04F,GAAoB14F,EAAWy9F,EAAgB7nI,OAAOg8H,IAEjDzkB,EAAUoxB,EAASv+F,EAAWszF,EAAOoB,SAAU0K,GAExD,GAAIC,EAAexiI,MAAM2gI,IACvB,MAAM,IAAIjK,WAAW,iEAAmE8L,EAAiB,KAE3G,OAAOr/F,CACT,IAAGtrC,KAAK,GAEV,+aKlYA,MAAMgrI,WAAyB,EAAA/nB,UAC7B,uBAAOgoB,CAAiBC,GACtB,MAAMC,EAAgB,IAAItoI,MAAMqoI,EAAWntI,QAM3C,OAJAmtI,EAAW3oI,SAAQ,CAACwT,EAAW3T,KAC7B+oI,EAAc/oI,GAAS2T,EAAU9Q,MAAMnE,YAAS,KAG3CqqI,CACT,CAEA,WAAA56H,CAAYtL,GACVqpH,MAAMrpH,GACN,MAAM,WACJimI,GACEjmI,EAEJzH,KAAK4tI,iBAAkB,IAAAlvB,aACvB1+G,KAAKm0H,eAAiBn0H,KAAKm0H,eAAenwG,KAAKhkB,MAC/CA,KAAK6tI,WAAa7tI,KAAK6tI,WAAW7pH,KAAKhkB,MAEvCA,KAAKmhC,MAAQ,CACXusG,aACAI,OAAQ,CAAC,EACTC,UAAW,KACXJ,cAAeH,GAAiBC,iBAAiBC,GACjD1hI,KAAM,GAEV,CAEA,iBAAAolH,GACE,MAAM,sBACJ4c,EAAqB,uBACrBC,GACEjuI,KAAKyH,MACTzH,KAAKkuI,aAEDD,GACFA,EACGD,EAEG,EADAhuI,KAAK4tI,gBAAgB/5B,QAAQvjG,YAIvC,CAEA,+BAAOylH,CAAyBC,EAAWnrF,GACzC,MAAM1J,EAAQ,CAAC,GAEbusG,WAAYS,GACVnY,GAGF0X,WAAYU,GACVvjG,EAYJ,OAVG,KAAQsjG,EAAiBC,IACtB,KACFZ,GAAiBC,iBAAiBU,GAClCX,GAAiBC,iBAAiBW,MAGpCjtG,EAAMwsG,cAAgBH,GAAiBC,iBAAiBU,GACxDhtG,EAAMusG,WAAaS,GAGdhtG,CACT,CAEA,cAAAgzF,CAAe57G,EAAW3T,EAAOtB,GAC/B,MAAM,sBAAE0qI,GAA0BhuI,KAAKyH,MACvC,IAAI8uH,EAAYv2H,KAAKmhC,MAErBo1F,EAAY,SAAKA,GAAcv2H,KAAKquI,cAAc/qI,EAAOiV,EAAU9Q,QAE9D8uH,EAAUuX,OAAOv1H,EAAU9Q,MAAMtE,QACpCozH,EAAUoX,cAAc/oI,GAAStB,EAE7BiV,EAAU9Q,MAAMslC,UAClBx0B,EAAU9Q,MAAMslC,SAASzpC,IAI7BtD,KAAKiwB,UAAUomG,GAAmB,SAAKA,GAAkBE,KAAc,KACjEyX,GACFhuI,KAAK6tI,YACP,GAEJ,CAEA,iBAAAS,GACE,MAAM,SAAEC,GAAavuI,KAAKyH,MACpBquG,EAAa,CAAC,2BAMpB,OAJIy4B,GACFz4B,EAAW/zG,KAAK,aAGX+zG,EAAWtzG,KAAK,IACzB,CAEA,kBAAAgsI,GACE,MAAM,YAAEC,EAAW,YAAEC,GAAgB1uI,KAAKyH,MACpCquG,EAAa,GAUnB,OARI24B,GACF34B,EAAW/zG,KAAK0sI,GAGdC,GACF54B,EAAW/zG,KAAK2sI,GAGX54B,EAAWtzG,KAAK,IACzB,CAEA,kBAAAmsI,CAAmBp2H,GACjB,MAAM,MACJ1X,EAAK,OACLitI,EAAM,UACNC,GACE/tI,KAAKmhC,MAQT,OANItgC,GAASktI,EACXD,EAAOv1H,EAAU9Q,MAAMtE,MAAQ,OACpBtC,GAASktI,GAA+C,SAAjCD,EAAOv1H,EAAU9Q,MAAMtE,cAClD2qI,EAAOv1H,EAAU9Q,MAAMtE,MAGzB2qI,EAAOv1H,EAAU9Q,MAAMtE,MAAQ2qI,EAAOv1H,EAAU9Q,MAAMtE,MAAM3B,gBAAa,CAClF,CAEA,UAAA0sI,GACE,MAAM,WAAER,GAAe1tI,KAAKyH,MACtBuE,EAAO,GAEb0hI,EAAW3oI,SAAQ,KACjBiH,EAAKjK,MAAK,IAAA28G,aAAY,IAGxB1+G,KAAKiwB,SAAS,CACZjkB,QAEJ,CAEA,aAAAqiI,CAAc/qI,EAAOmE,GACnB,MAAM,UAAEsmI,EAAS,OAAED,GAAW9tI,KAAKmhC,OAC7B,MAAEtgC,EAAK,aAAE+tI,GAAiB5uI,KAAKyH,MAE/BonI,EAAkBpnI,EAAMqnI,SAAWxtI,OAAOwD,KAAK2C,EAAMqnI,UAAY,GAEjEvY,EAAY,CAChBuX,OAASjtI,GAASktI,EAAa,CAAC,EAAI,MAAKD,IAE3C,IAAIjW,GAAK,EAGT,GAAI+W,EACF,OAAOrY,EAIT,UAAWwY,KAAiBF,EAE1B,IAAIG,EADcvnI,EAAMqnI,SAASC,IACnBzrI,GAAQ,CACpBizH,EAAUuX,OAAOrmI,EAAMtE,MAAQsE,EAAMwnI,mBAAmBF,GACxDlX,GAAK,EACL,KACF,CAUF,OANIA,UACKtB,EAAUuX,OAAOrmI,EAAMtE,MAGhCozH,EAAUwX,UAAY,KAEfxX,CACT,CAEA,iBAAA2Y,CAAkBpB,GAChB,MAAM,WAAEJ,EAAU,aAAEkB,GAAiB5uI,KAAKyH,OACpC,cAAEkmI,GAAkB3tI,KAAKmhC,MACzBo1F,EAAY,CAChBuX,OAAQ,MAAKA,IAGf,QAAIc,IAAsD,IAAtCjB,EAAcxrI,aAAQ,MAItCb,OAAOwD,KAAKyxH,EAAUuX,QAAQvtI,OAAS,IAI3CmtI,EAAW3oI,SAAQ,CAACwT,EAAW3T,KAC7B2xH,EAAUuX,OAAS,SACdvX,EAAUuX,QACV9tI,KAAKquI,cAAcV,EAAc/oI,GAAQ2T,EAAU9Q,OAAOqmI,OAAA,IAI1DxsI,OAAOwD,KAAKyxH,EAAUuX,QAAQvtI,OAAS,GAChD,CAEA,SAAA4uI,GACE,MAAM,KAAEnjI,GAAShM,KAAKmhC,OAChB,WACJusG,GACE1tI,KAAKyH,MAETuE,EAAKjH,SAASguG,IA5NlB,OA6NU,SAAAA,EAAIc,cAAJ,IAAahqD,QACfkpD,EAAIc,QAAQhqD,OACd,IAGF7pD,KAAKiwB,SAAS,CACZ69G,OAAQ,CAAC,EACTC,UAAW,KACXJ,cAAeH,GAAiBC,iBAAiBC,IAErD,CAEA,aAAA0B,CAAcvuI,GACZb,KAAKiwB,SAAS,CACZ89G,UAAWltI,GAEf,CAEA,UAAAgtI,GACE,MAAM,OAAEC,EAAM,cAAEH,GAAkB3tI,KAAKmhC,OACjC,aACJytG,EAAY,SAAES,EAAQ,SAAEP,EAAQ,kBAAEQ,GAChCtvI,KAAKyH,MAELmnI,IACFS,EAAS1B,GACT3tI,KAAKmvI,aAI0B,IAA/B7tI,OAAOwD,KAAKgpI,GAAQvtI,QAChB8uI,GAAgC,mBAAbA,IAEnBP,GACEA,EAASnB,GACX3tI,KAAKovI,cAAcE,IAMrBD,EAAS1B,GACT3tI,KAAKmvI,aAGX,CAEA,MAAA9wB,GACE,MAAM,sBACJ2vB,EAAqB,WAAEN,EAAU,WAAE6B,EAAU,SAAE56H,EAAQ,YAAE+5H,EAAW,MAAE7tI,GACpEb,KAAKyH,OACH,UACJsmI,EAAS,KAAE/hI,EAAI,OAAE8hI,GACf9tI,KAAKmhC,MAET,OACE,kBAAC,WACC,kBAAC,OAAIv0B,UAAW5M,KAAKsuI,qBACnB,kBAAC,GAAG,KAEAZ,EAAWvoI,KAAI,CAACoT,EAAW3T,KACzB,MAAM4qI,EAAgBj3H,EAAUpV,KAChCvC,QAAQmuD,IAAI,gBAAiBygF,GAC7B,MAEI,EAAAj3H,EAAU9Q,OADZslC,SAAAA,EAAA,MAAUzpC,GACR,EADkB4uG,mKAAA,CAClB,EADkB,CAApB,WAAU,UAGZ,OACE,kBAAC,GAAM,CAACnkE,KAAM,MAAMx1B,EAAUw1B,MAAQ,WAAWx1B,EAAUw1B,MAAQ,OAAQ/oC,IAAKuT,EAAU9Q,MAAMtE,MAC9F,kBAACqsI,KAAA,IACC76H,SAAUA,GAAY4D,EAAU9Q,MAAMkN,SAEtCo4B,SAAU/sC,KAAKm0H,eAAenwG,KAAKhkB,KAAMuY,EAAW3T,IAChDstG,KAJL,CAKC51E,MAAuB,WAAhBoyG,EAA2B,GAAKn2H,EAAU9Q,MAAM60B,MACvDz7B,MAAOb,KAAK2uI,mBAAmBp2H,GAC/Bw6F,IAAK/mG,EAAKpH,GACVtB,+BAEJ,KAML0qI,EAkBG,KAhBA,kBAAC,QACCphI,UAAW5M,KAAKwuI,qBAChBz7B,IAAK/yG,KAAK4tI,iBAEV,kBAAC,GACCj5H,SAAU3U,KAAKkvI,kBAAkBpB,GACjClhI,UAAU,gCACVgmG,QAAS5yG,KAAK6tI,WACd15G,MAAM,UACNpgB,KAAK,SACLg6B,KAAsB,WAAhB2gG,EAA2B,KAAO,MAEtCa,GAAc,SAQ1B1uI,GAASktI,EAEL,kBAAC,OAAInhI,UAAU,gCACb,kBAAC,KAAEA,UAAU,iBACT/L,GAASktI,IAIf,KAIZ,EAGFP,GAAiBp7B,UAAY,CAC3B47B,sBAAuB,SACvBO,SAAU,SACVgB,WAAY,WACZd,YAAa,WACbf,WAAY,eAAqBroI,OACjCqpI,YAAa,WACb/5H,SAAU,SACVs5H,uBAAwB,SACxBptI,MAAO,WACP+tI,aAAc,SACdS,SAAU,SACVP,SAAU,SACVQ,kBAAmB,YAGrB,sWC1VA,MAAMG,WAAqB,EAAAhqB,UACzB,uBAAOiqB,CAAiB3a,GACtB,IAAIsC,EAAY,KAchB,MAZyB,iBAAdtC,IACTsC,EAAYtC,GAGoC,oBAA9CzzH,OAAOC,UAAUC,SAASC,KAAKszH,KACjCsC,EAAYtC,EAAU5xH,MAGpB+7H,GAAOnK,KACTsC,EAAYoP,GAAO1R,EAAW,eAGzBsC,CACT,CAEA,0BAAOsY,CAAoBjB,GACzB,MAAM54B,EAAa,GAMnB,MAJoB,WAAhB44B,GACF54B,EAAW/zG,KAAK,kCAGX+zG,EAAWtzG,KAAK,IACzB,CAEA,WAAAuQ,CAAYtL,GACVqpH,MAAMrpH,GACN,MAAM,MACJnE,GACEtD,KAAKyH,MAETzH,KAAKmhC,MAAQ,CACXvqB,aAActT,GAAS,GACvBA,MAAOA,GAAS,GAChBssI,YAAa,GAGf5vI,KAAK0vD,WAAa,EAElB1vD,KAAK6vI,iBAAmB7vI,KAAK6vI,iBAAiB7rH,KAAKhkB,MACnDA,KAAKiuI,uBAAyBjuI,KAAKiuI,uBAAuBjqH,KAAKhkB,MAC/DA,KAAK8vI,qBAAsB,IAAApxB,YAC7B,CAEA,+BAAOqX,CAAyBC,EAAWnrF,GACzC,MAAM1J,EAAQ,CAAC,EAUf,OAPE60F,EAAU1yH,OAASi1D,KAAK09D,UAAUD,EAAU1yH,SACxCi1D,KAAK09D,UAAUprF,EAAUj0B,gBAE7BuqB,EAAM79B,MAAQ0yH,EAAU1yH,OAAS,GACjC69B,EAAMvqB,aAAeo/G,EAAU1yH,OAAS,IAGnC69B,EAAM79B,MAAQ69B,EAAQ,IAC/B,CAEA,gBAAA0uG,CAAiBvsI,GACf,MAAMizH,EAAYv2H,KAAK+vI,UAAUzsI,GACjCtD,KAAKiwB,UAAUomG,GAAmB,SAAKA,GAAkBE,KAAc,KACrEv2H,KAAKgwI,gBAAgBzZ,EAAUjzH,MAAM/C,OAAS,EAAG,KAAM+C,EAAM,GAEjE,CAEA,gBAAA2sI,CAAiBrrI,EAAOtB,GACtB,IAAI8zH,EACJp3H,KAAKiwB,UAAUomG,IACb,MAAME,EAAY,MAAKF,GAKvB,OAJAe,GAAY,KAAAle,QAAOqd,EAAUjzH,MAAMsB,GAAOtB,OAAOk5G,OACjD+Z,EAAUjzH,MAAMsB,GAAOtB,MAAQA,EAC/BizH,EAAUjzH,MAAMsB,GAAOsrI,UAAW,EAE3B3Z,CAAS,IACf,KACDv2H,KAAKgwI,gBAAgBprI,EAAOwyH,EAAW9zH,EAAM,GAEjD,CAEA,sBAAA6sI,CAAuBvrI,EAAOtB,GAC5B,IAAI8zH,EACJp3H,KAAKiwB,UAAUomG,IACb,MAAME,EAAY,MAAKF,GAIvB,OAHAe,GAAY,KAAAle,QAAOqd,EAAUjzH,MAAMsB,GAAO8vD,UAAU8nD,OACpD+Z,EAAUjzH,MAAMsB,GAAO8vD,SAAWpxD,EAE3BizH,CAAS,IACf,KACDv2H,KAAKgwI,gBAAgBprI,EAAOwyH,EAAW9zH,EAAM,GAEjD,CAEA,oBAAA8sI,CAAqB1B,GACnB,MAAM,OAAEz0H,GAAWja,KAAKyH,MAClBquG,EAAa,CAAC,2BAQpB,OANAA,EAAW/zG,KAAKkY,EAAOy0H,aAAe,SAElB,WAAhBA,GACF54B,EAAW/zG,KAAK,mCAGX+zG,EAAWtzG,KAAK,IACzB,CAEA,eAAA6tI,GAEE,OADArwI,KAAK0vD,YAAc,EACZ1vD,KAAK0vD,UACd,CAIA,eAAA4gF,CAAgBC,GACd,MAAM,OAAEt2H,GAAWja,KAAKyH,MACxB,IAAInE,EAAQ,KAEZ,OAAQ2W,EAAOy0H,aACb,IAAK,OACL,IAAK,SAYHprI,EAXiBitI,EAASjtI,MAAM6zH,QAAO,CAACC,EAAWrC,EAAWnwH,KAC5D,MAAMyyH,EAAYoY,GAAaC,iBAAiB3a,GAChD,IAAIyb,EAAY,KAMhB,OAJI5rI,IAAU2rI,EAASjtI,MAAM/C,OAAS,IACpCiwI,EAAY,IAGPpZ,EAAYC,EAAYmZ,CAAS,GACvC,IAIH,MAEF,QACEltI,EACE,kBAAC,GAAG,KAEA2W,EAAOyzH,WAAWvoI,KAAI,CAACoT,EAAW3T,IAChC,kBAAC,IACCI,IAAKhF,KAAKqwI,kBACVtiG,KAAM,MAAMx1B,EAAUw1B,WAAWx1B,EAAUw1B,QAEzC0hG,GAAaC,iBAAiBa,EAASjtI,MAAMsB,QAU7D,OAAOtB,CACT,CAEA,sBAAA2qI,CAAuB3qI,GACrBtD,KAAKiwB,SAAS,CACZ2/G,YAAatsI,GAEjB,CAEA,eAAAmtI,CAAgB7rI,GACd,MAAM+2H,EAAY37H,KAAK0wI,iBAEvB1wI,KAAKiwB,UAAUomG,IACb,MAAME,EAAY,MAAKF,GAIvB,OAHAE,EAAUjzH,MAAQq4H,EAClBpF,EAAUjzH,MAAMsB,GAAOsrI,UAAY3Z,EAAUjzH,MAAMsB,GAAOsrI,SAEnD3Z,CAAS,GAEpB,CAEA,QAAAoa,CAAS/rI,EAAOmwH,GACd,MAAM,MAAEzxH,GAAUtD,KAAKmhC,MACvB,IAAI02F,GAAK,EAYT,OAVAv0H,EAAMyB,SAAQ,CAACa,EAAM83G,KACfnlD,KAAK09D,UAAUrwH,EAAKtC,SAAWi1D,KAAK09D,UAAUlB,KAE9C8C,IADEjzH,GAAS,GAAK84G,IAAc94G,GAKlC,IAGKizH,CACT,CAEA,SAAAkY,CAAUpnH,GACR,MAAM,MAAErlB,GAAUtD,KAAKmhC,OACjB,OAAElnB,GAAWja,KAAKyH,MAClBstH,EAAY,CAChBmb,UAAU,EACV5sI,MAAOqlB,GAEH4tG,EAAY,CAChBjzH,MAAOA,EAAMf,MAAM,IASrB,OANI0X,EAAOy6C,WACTqgE,EAAUrgE,SAAW,IAGvB6hE,EAAUjzH,MAAMvB,KAAKgzH,GAEdwB,CACT,CAEA,cAAAqa,CAAehsI,GACb,IAAIisI,EACJ7wI,KAAKiwB,UAAUomG,IACb,MAAMya,EAAWza,EAAc/yH,MAAMf,MAAM,GAG3C,OAFAsuI,EAAcC,EAASlpI,OAAOhD,EAAO,GAE9B,CACLtB,MAAOwtI,EACR,IACA,KACD9wI,KAAKgwI,gBAAgBprI,EAAOisI,EAAa,KAAK,GAElD,CAEA,cAAAH,GACE,MAAM,MAAEptI,GAAUtD,KAAKmhC,MAavB,OAXkB79B,EAAM6B,KAAK4vH,IAC3B,MAAMgc,EAAgB,MAAKhc,GAE3B,OAAIgc,EAAcb,UAChBa,EAAcb,UAAW,EAClBa,GAGFA,CAAa,GAIxB,CAEA,eAAAf,CAAgBprI,EAAOwyH,EAAW4Z,GAChC,MAAM,SAAEjkG,GAAa/sC,KAAKyH,OACpB,MAAEnE,GAAUtD,KAAKmhC,MAEnB4L,GAAgC,mBAAbA,GACrBA,EAAWzpC,EAAM/C,OAAU+C,EAAQ,KAAOsB,EAAOwyH,EAAW4Z,EAEhE,CAEA,WAAAC,CAAYV,EAAU3rI,GA5QxB,MA6QI,MAAM,OAAEqV,EAAM,SAAEtF,GAAa3U,KAAKyH,OAC5B,YAAEmoI,EAAW,MAAEtsI,GAAUtD,KAAKmhC,MAE9B+vG,GAAmB,KAAAh4B,QAAOj/F,EAAOyzH,YAAYlxB,OAMnD,OAJA+zB,EAASjtI,MAAMyB,SAAQ,CAACgwH,EAAWrX,KACjCwzB,EAAiBxzB,GAAWj2G,MAAMnE,MAAQyxH,CAAS,IAInD,kBAAC,MACC/vH,IAAKJ,EACLgI,UAAW6iI,GAAaE,oBAAoB11H,EAAOy0H,aACnD37B,IAAK/yG,KAAK8vI,qBAEV,kBAAC,OACCljI,UAAW,gCAAgCqN,EAAOy0H,aAAe,UAAW6B,EAASL,SAAY,qBAAuB,MAGrHK,EAASL,SAiCN,oCACE,kBAAC,IACCX,WAAW,SACXhB,SAAUt0H,EAAOs0H,SACjB55H,WACA+5H,YAAaz0H,EAAOy0H,YACpBhB,WAAYwD,EAEZ7B,SAAUrvI,KAAKiwI,iBAAiBjsH,KAAKhkB,KAAM4E,GAE3CkqI,SAAU9uI,KAAK2wI,SAAS3sH,KAAKhkB,KAAM4E,GACnC0qI,kBAAkB,sCAEpB,kBAAC,UACCv7H,KAAK,SACLnH,UAAU,2CACVgmG,QAAS5yG,KAAK4wI,eAAe5sH,KAAKhkB,KAAM4E,GACxC,aAAW,UAEX,kBAAC,EAAI,CAACmP,KAAK,YAlDf,oCACI/T,KAAKswI,gBAAgBC,EAAU3rI,GACjC,kBAAC,OACCgI,UAAU,mCACVC,MAAO,CACLiD,QAAS,QACTH,MAA+B,WAAvBsK,EAAOy0H,YAA4B,OAAS,GAAGkB,EAAc,SAGvE,kBAAC,UACCj7H,WACAZ,KAAK,SACLnH,UAAU,mCACVgmG,QAAS5yG,KAAKywI,gBAAgBzsH,KAAKhkB,KAAM4E,GACzC,aAAW,QAEX,kBAAC,EAAI,CAACmP,KAAK,UAEb,kBAAC,UACCY,WACAZ,KAAK,SACLnH,UAAU,mCACVgmG,QAAS5yG,KAAK4wI,eAAe5sH,KAAKhkB,KAAM4E,GACxC,aAAW,UAEX,kBAAC,EAAI,CAACmP,KAAK,cAgCvBkG,EAAOy6C,SAEH,kBAAC+6E,GAAA,CACC96H,WAEAo4B,SAAU/sC,KAAKmwI,uBAAuBnsH,KAAKhkB,KAAM4E,GACjDqV,OAAQA,EAAOy6C,SAASz6C,OACxB3W,OAAO,SAAAA,EAAMsB,SAAN,IAAc8vD,WAAY,KAGnC,KAIZ,CAEA,OAAAy8E,GACE,MAAM,OAAEl3H,GAAWja,KAAKyH,OAClB,YAAEmoI,EAAW,MAAEtsI,GAAUtD,KAAKmhC,MAEpC,OAAK79B,GAA0B,IAAjBA,EAAM/C,OAKlB,oCAE2B,UAAvB0Z,EAAOy0H,aAA4Bz0H,EAAOy0H,YAmBtC,KAjBA,kBAAC,OACC9hI,UAAU,4BACVC,MAAO,CACLm3E,aAAc,GAAG4rD,EAAc,SAGjC,kBAAC,GAAG,KAEA31H,EAAOyzH,WAAWvoI,KAAI,CAACoT,EAAW3T,IAChC,kBAAC,GAAM,CAACI,IAAKuT,EAAU9Q,MAAM60B,OAAS13B,EAAOmpC,KAAM,MAAMx1B,EAAUw1B,MAAQ,SAASx1B,EAAUw1B,MAAQ,MAClGx1B,EAAU9Q,MAAM60B,WASlC,kBAAC,MAAG1vB,UAAW5M,KAAKowI,qBAAqBn2H,EAAOy0H,cAE5CprI,EAAM6B,KAAI,CAACorI,EAAU3rI,IAAU5E,KAAKixI,YAAYV,EAAU3rI,OA7BzD,IAkCX,CAEA,MAAAy5G,GACE,MAAM,sBACJ2vB,EAAqB,OAAE/zH,EAAM,MAAEpZ,EAAK,SAAE8T,EAAQ,MAAE2nB,GAC9Ct8B,KAAKyH,MACH2pI,EAAkBllI,SAASsuB,cAAcvgB,EAAO04G,WAAazmH,SAASsuB,cAAc,QAE1F,OACE,kBAAC,OAAI5tB,UAAU,qBAEX0vB,EACI,kBAAC,aAAQA,GACT,KAEN,kBAAC,IACC0xG,wBACAN,WAAYzzH,EAAOyzH,WACnB6B,WAAYt1H,EAAOo3H,gBACnB5C,YAAax0H,EAAOq3H,gBACpB38H,WACA9T,QACA+tI,eAAiB/tI,EACjB0tI,SAAUt0H,EAAOs0H,SACjBc,SAAUrvI,KAAK6vI,iBAEff,SAAU9uI,KAAK2wI,SAAS3sH,KAAKhkB,MAAO,GACpCsvI,kBAAkB,oCAClBrB,uBAAwBjuI,KAAKiuI,yBAG7Bh0H,EAAO04G,SACH,kBACA3yH,KAAKmxI,UACLC,GAEApxI,KAAKmxI,UAIjB,EAGF1B,GAAar9B,UAAY,CACvB47B,sBAAuB,SACvBr5H,SAAU,SACV9T,MAAO,WACPoZ,OAAQ,eAAqB3Y,QAC7ByrC,SAAU,SACVzQ,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEFh5B,MAAO,cAAoB,CACzB,eAAqB+B,OACrB,eAAqB/D,WAIzB,YC3cA,SAAS,IAAO,MACdg7B,EAAK,cAAEi1G,EAAa,SAAEC,EAAQ,SAAE78H,EAAQ,SAAE4X,IAE1C,OACE,kBAAC,OAAI3f,UAAU,yBAEX0vB,EACI,kBAAC,aAAQA,GACT,MAEJ3nB,IAAa4X,GACb,kBAAC,GACC4H,MAAM,0BACNy+E,QAAS4+B,GAERD,GAAiB,OAK5B,CAEA,GAAOn/B,UAAY,CACjBz9F,SAAU,SACV4X,SAAU,SACVilH,SAAU,SACVD,cAAe,WACfj1G,MAAO,cAAoB,CACzB,WACA,YACA,YAIJ,YCpCA,SAASm1G,IAAW,OAClBC,EAAM,SACNnlH,IAEA,OACE,kBAAC,MAAG3f,UAAU,kDAEV8kI,EAAOvsI,KAAKwsI,IAVpB,QAWU,yBAAC,OACC3sI,KAAK,eAAA2sI,OAAA,EAAAA,EAAOlqI,YAAP,IAAc60B,QAASi8B,KAAK09D,UAAU0b,GAC3C/kI,UAAW,uDAAsD,MAAA+kI,OAAA,EAAAA,EAAO5jG,OAAQ,MAE/E,eAAA4jG,OAAA,EAAAA,EAAOlqI,YAAP,IAAc60B,MACjB,IAGJ,kBAAC,OAAI1vB,UAAW,uDAAuD2f,GAAY,2CAA2C,UAGpI,CAEAklH,GAAWr/B,UAAY,CACrBs/B,OAAQ,eAAqBrsI,OAC7BknB,SAAU,UAGZ,0SCzBA,SAASqlH,IAAW,OAClBF,EAAM,SACN/8H,EAAQ,SACR4X,EAAQ,OACRuhH,EAAM,WACNJ,EAAU,SACV3gG,EAAQ,SACR8kG,EAAQ,MACRvuI,EAAK,SACLwuI,IAEA,OACE,kBAAC,MAAGllI,UAAU,uBAEV8gI,EAAWvoI,KAAI,CAACsgH,EAAW7gH,KAlBnC,UAmBU,MAAM+sI,EAAQD,EAAO9sI,GACfmtI,EAA6B,mBAAVJ,EAAuBA,EAAMG,EAAUltI,GAAS+sI,EACzE,OACE,kBAAC,OAEC3sI,IAAK,GAAG8sI,KAAYltI,IACpBgI,UAAW,uDAAsD,SAAA8kI,EAAO9sI,SAAP,IAAempC,OAAQ,MAExF,kBAAC03E,8HAAA,IACK,MAAAssB,OAAA,EAAAA,EAAWtqI,SADhB,CAEC60B,MAAM,GACNh5B,MAAOA,EAAMsB,GAEbmoC,SAAUA,EAAS/oB,KAAK,KAAMpf,GAC9B/D,MAAO,MAAAitI,OAAA,EAAAA,EAASlpI,GAChB+P,SAAUA,IAAY,eAAAo9H,OAAA,EAAAA,EAAWtqI,YAAX,IAAkBkN,UACxC4X,SAAUA,IAAY,eAAAwlH,OAAA,EAAAA,EAAWtqI,YAAX,IAAkB8kB,iCAE5C,IAIN,kBAAC,OAAI3f,UAAW,uDAAuD2f,GAAY,2CACjF,kBAAC,GACCopF,UAAQ,EACRjD,SAAS,QACTv+E,MAAM,eACNy+E,QAASi/B,EACTl9H,SAAU4X,GAAY5X,KAKhC,CAEAi9H,GAAWx/B,UAAY,CACrBz9F,SAAU,SACV4X,SAAU,SACVulH,SAAU,cAAoB,CAC5B,WACA,aAEFJ,OAAQ,eAAqBrsI,OAC7ByoI,OAAQ,eAAqBzoI,OAC7BqoI,WAAY,eAAqBroI,OACjC/B,MAAO,eAAqB+B,OAC5B0nC,SAAU,SACV8kG,SAAU,UAGZ,0SC5DA,IAAIhvI,GAAK,EAQT,SAASmvI,IAAc,cACrBT,EAAa,SACb58H,EAAQ,SACR4X,EAAQ,OACRmlH,EAAM,MACNp1G,EAAK,MACLz7B,EAAK,MACLyC,EAAQ,GAAE,SACVypC,EAAW,SAAQ,YACnBklG,GAAc,EAAI,iBAClB/pB,EAAmB,KAEnB,MAAOgqB,EAAgBC,IAAqB,IAAAl/B,UAAS,MAE/Cm/B,EAAiB,CAACN,EAAUO,EAAYC,EAAgBlG,KA/BhE,MAgCI,MAAMmG,EAAgBjvI,EAAa,IAAIA,GAAT,GAE9B,GAAKA,EAGE,CACL,MAAM+zH,EAAY,IAAIkb,EAAaT,IACnCza,EAAUgb,GAAcC,EACxBC,EAAaT,GAAYza,EACzBkb,EAAaT,GAAUjvI,GAAKS,EAAMwuI,GAAUjvI,EAC9C,MAPE0vI,EAAaT,GAAY,IAAI,IAAIzsI,MAAMqsI,EAAOnxI,SAC9CgyI,EAAaT,GAAUO,GAAcC,EAQvC,IAAI,eAAAJ,OAAA,EAAAA,EAAiBJ,SAAjB,IAA6BO,KAAejG,EAAS,CACvD,MAAMoG,EAAa,IAAIN,GACjBO,EAAiB,IAAID,EAAWV,IACtCW,EAAeJ,GAAc,KAC7BG,EAAWV,GAAYW,EACvBN,EAAkBK,EACpB,CACAzlG,EAASwlG,EAAa,EAKlBG,GAAa,IAAAx/B,UACjB,IAAMw+B,EAAOvsI,KAAKwsI,IAChB,MAAMI,EAA6B,mBAAVJ,EAAuBA,IAAUA,EAE1D,OCzDkBlsB,GDyDI,MAAAssB,OAAA,EAAAA,EAAWx5H,YAAa,KCzDb,aACrCw0B,SAAAA,EACA+hG,SAAAA,EACAjuI,MAAAA,GAHqC,EAIlCqxG,mKAAA,CAJkC,EAIlC,CAHH,WACA,WACA,UAGA,MAAOygC,EAAeC,IAAoB,IAAA3/B,UAAS,MAC7C4/B,GAAgB,IAAA9+B,cAAazvF,IAEjC,MAAMhhB,GAAQ,MAAAghB,OAAA,EAAAA,EAAO7f,QACjB,CAAC,QAAS,YAAYH,SAASggB,EAAM7f,OAAOsP,MAC1CuQ,EAAM7f,OAAOskG,QACb,MAAAzkF,OAAA,EAAAA,EAAO7f,OAAOnB,MAChBghB,EAEJ,IAAI8nH,GAAU,EACd,GAAI0C,GAAgC,mBAAbA,EAAyB,CAC9C,MAAMgE,EAAWhE,EAASxrI,GAC1B8oI,GAAW0G,EACXF,EAAiBE,EACnB,CAEA/lG,EAASzpC,EAAO8oI,EAAQ,GACvB,CAAC0C,EAAU/hG,IAEd,OAAO,kBAAC04E,8HAAA,IAAcvT,WAAd,CAAoBnlE,SAAU8lG,EAAehyI,MAAO8xI,GAAiB9xI,YAAO,EAzB/D,IAAC4kH,CDyDiC,KAErD,IAoBIstB,EAAanuI,IACjB,IAAKtB,EACH,OAEF,MAAM+zH,EAAY,IAAI/zH,GACtB+zH,EAAUzvH,OAAOhD,EAAO,GACxBmoC,EAASsqF,EAAU,EAGrB,OACE,kBAAC,OAAIzqH,UAAW,iEAAiE/L,EAAQ,YAAc,MAAMqnH,KAC3G,kBAAC,IACCvzG,WACA4X,WACA+P,QACAi1G,gBACAC,SAjCW,KACf,MAAM1D,EElEa,EAAC4D,EAAQsB,KAAhC,MAA+C,gBAAAA,GAAa,CAAC,MAAC,OAAW,UAA1B,IAAwC7tI,KACpF8tI,GAAa,MAAAA,OAAA,EAAAA,EAAU9tI,KACtB,CAAC7B,EAAOsB,KAFZ,IAAAqwB,EAAA,EAEsB,iBAAAA,EAAAy8G,EAAO9sI,GAAO6C,OAAMqnI,eAApB,SAAA75G,EAA+B3xB,EAAM,KAAN,EFgElC,CAAeouI,EAAQpuI,GAEtC,GAdgB,CAACwqI,IAtDrB,MAsDgC,OAAAlpG,QAAQ,eAAAkpG,OAAA,EAAAA,EAAQoF,aAAR,IAAgBl9H,OAAO4uB,SAASrkC,OAAO,EAcvE4yI,CAAUrF,GAEZ,YADAqE,EAAkBrE,GAIpB,MAAMnlH,EAAW,IAAI,IAAItjB,MAAMqsI,EAAOnxI,SACtCooB,EAAS9lB,GA/DY,OAAaA,KAiElCkqC,EAAS,IACJzpC,EACHqlB,GACA,KAqBC,MAAArlB,OAAA,EAAAA,EAAO/C,UAAW0xI,EACjB,kBAAC,MAAGrlI,UAAU,wBACVtJ,GAAS,CAAC,KAAK6B,KAAI,CAACouF,EAAG5xF,IACvB,kBAAC,IAECqD,IAAKuuF,EAAE1wF,IAAMlB,EACbmwI,SAAUnwI,EACVgT,WACA4X,WACAmlH,SAEA3kG,SAAUqlG,EAAepuH,KAAK,KAAMriB,GAEpCkwI,SAAUkB,EAAU/uH,KAAK,KAAMriB,GAC/B2B,MAAOiwF,EACPu6C,OAAQ,MAAAoE,OAAA,EAAAA,EAAiBvwI,GACzB+rI,WAAYgF,MAGhB,kBAAC,GAAU,CAAChB,SAAgBnlH,cAE5B,KACH1rB,GAAmB,SAAVA,GAA8B,UAAVA,EAC5B,kBAAC,KAAE+L,UAAU,mCAAmC/L,GAC9C,KAGV,CAEAmxI,GAAc5/B,UAAY,CAIxBz9F,SAAU,SAKV4X,SAAU,SAEVglH,cAAe,WAEfj1G,MAAO,cAAoB,CACzB,WACA,YACA,WA8BFo1G,OAAQ,eAAqBrsI,OAE7B0nC,SAAU,SAKVzpC,MAAO,cAAoB,CACzB,eAAqBhC,QACrB,eAAqB+D,SAEvBxE,MAAO,WACPoxI,YAAa,SACb/pB,iBAAkB,YAGpB,0SG1LA,SAASkrB,GAAU,YACjBvyI,MAAAA,EAAA,MACAszB,EAAK,WACLkwF,EAAU,iBACV6D,EAAmB,MACnBrlH,EAAE,MACFy5B,EAAK,KACL0xF,EAAI,OACJqlB,EAAM,MACN/vI,EAAK,SACLypC,GAViB,EAWdmlE,mKAAA,CAXc,EAWd,CAVH,QACA,QACA,aACA,mBACA,KACA,QACA,OACA,SACA,QACA,aAGA,MAAMohC,GAAe,IAAAn/B,UA6FrB,OACE,kBAAC,OAAIvnG,UAxFP,WACE,MAAMkpG,EAAa,CAACoS,EAAkB,kBAChC4O,EAAS3iG,EAAQA,EAAM9xB,MAAM,KAAO,GAgB1C,OAdIy0H,EAAOv2H,QACTu2H,EAAO/xH,SAASgyH,IACdjhB,EAAW/zG,KAAK,mBAAmBg1H,IAAS,IAI5C1S,GACFvO,EAAW/zG,KAAK,mCAGdlB,GACFi1G,EAAW/zG,KAAK,aAGX+zG,EAAWtzG,KAAK,IACzB,CAqEkBqzG,IAEZv5E,EACI,kBAAC,SAAM+3F,QAASxxH,EAAIgK,MAtE9B,WACE,MAAM8D,EAAS,CAAC,EAMhB,OAJI0zG,IACF1zG,EAAO2zG,UAAYD,GAGd1zG,CACT,CA8DqCsjH,IAAoB33F,GAC/C,KAEN,kBAAC,OAAI1vB,UAAU,6BAzCf,kBAAC,OACCA,UAAU,0BACVC,MAxBN,WACE,MAAM8D,EAAS,CAAC,EAMhB,OAJI0zG,IACF1zG,EAAO2zG,UAAY,eAAeD,aAG7B1zG,CACT,CAgBaujH,IAEP,kBAAC,sIACCmf,SACAzmI,UAAU,oBACNslG,WAHL,CAICnlE,SAjER,SAAwB5jC,GACtB4jC,EAAS5jC,EAAE1E,OAAO8uI,MACpB,EAgEQxgC,IAAKugC,EACLv/H,KAAK,YAGLu/H,EAAaz/B,SAAWy/B,EAAaz/B,QAAQ0/B,MAAMhzI,OAAS,EAExD,kBAAC,UACCqyG,QAad,WACE0gC,EAAaz/B,QAAQvwG,MAAQ,GAC7BypC,EAAS,GACX,EAfch5B,KAAK,SACL,aAAW,eAEX,kBAAC,EAAI,CAACA,KAAK,WAGb,MAqBJi6G,EACI,kBAAC,KAAEphH,UAAU,gCAAiCohH,GAC9C,MAzDFntH,GAAmB,SAAVA,GAA8B,UAAVA,EAEjC,kBAAC,KAAE+L,UAAU,mCACT/L,GAGJ,MAGN,KAsDF,CAEAuyI,GAAUhhC,UAAY,CACpBihC,OAAQ,WACR1+H,SAAU,SACV9R,GAAI,WACJhC,MAAO,cAAoB,CACzB,WACA,WAEFy7B,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEF+nF,WAAY,WACZlhH,KAAM,WACN6qH,KAAM,WACNjhF,SAAU,SACV4hB,YAAa,WACbx6B,MAAO,WACP7wB,MAAO,eAAqBhC,QAC5B4mH,iBAAkB,YAGpB,0SCzJA,MAAMsrB,WAAc,EAAA/tB,UAClB,eAAOguB,CAAS50D,GACd,OACE,kBAAC,OAAIjyE,UAAU,0BACXiyE,EAGR,CAEA,WAAA9rE,CAAYtL,GACVqpH,MAAMrpH,GACN,MAAM,MACJnE,GACEtD,KAAKyH,MAETzH,KAAKmhC,MAAQ,CACXuyG,UAAWpwI,EACXqwI,WAAYrwI,GAGdtD,KAAKm0H,eAAiBn0H,KAAKm0H,eAAenwG,KAAKhkB,KACjD,CAEA,kBAAAsxH,CAAmBC,GACjB,MAAM,QACJqiB,EAAO,MACPtwI,EAAK,SACLypC,GACE/sC,KAAKyH,MAEJmsI,GAAWriB,EAAUjuH,QAAUA,GAElCtD,KAAKiwB,SAAS,CACZ0jH,WAAYrwI,IACX,KACGypC,GACFA,EAASzpC,EACX,GAGN,CAEA,cAAA6wH,CAAehrH,GACb,MAAM,SAAE4jC,EAAQ,QAAE6mG,GAAY5zI,KAAKyH,MAC7ButH,EAAa7rH,EAAE1E,OAAOnB,MAEvBswI,EASH7mG,EAASioF,GARTh1H,KAAKiwB,SAAS,CACZ0jH,WAAY3e,IACX,KACGjoF,GACFA,EAASioF,EACX,GAKN,CAEA,cAAAf,GACE,MAAM,WAAE5P,GAAerkH,KAAKyH,MACtBkJ,EAAS,CAAC,EAMhB,OAJI0zG,IACF1zG,EAAO2zG,UAAYD,GAGd1zG,CACT,CAEA,gBAAAujH,GACE,MAAM,WAAE7P,GAAerkH,KAAKyH,MACtBkJ,EAAS,CAAC,EAMhB,OAJI0zG,IACF1zG,EAAO2zG,UAAY,eAAeD,aAG7B1zG,CACT,CAEA,aAAAqmH,GACE,MAAM,MAAEn2H,GAAUb,KAAKyH,MAEvB,OAAQ5G,GAAmB,SAAVA,GAA8B,UAAVA,EAEjC,kBAAC,KACC+L,UAAU,mCAER/L,GAGJ,IACN,CAEA,aAAAg1G,GACE,MAAM,MACJh1G,EAAK,MACLszB,EAAK,WACLkwF,EAAU,oBACVwvB,EAAmB,qBACnBC,GACE9zI,KAAKyH,MACHquG,EAAa,CAAC,kBACdghB,EAAS3iG,EAAQA,EAAM9xB,MAAM,KAAO,GAwB1C,OAtBIy0H,EAAOv2H,QACTu2H,EAAO/xH,SAASgyH,IACdjhB,EAAW/zG,KAAK,mBAAmBg1H,IAAS,IAI5C8c,GACF/9B,EAAW/zG,KAAK,8BAGd+xI,GACFh+B,EAAW/zG,KAAK,+BAGdsiH,GACFvO,EAAW/zG,KAAK,mCAGdlB,GACFi1G,EAAW/zG,KAAK,aAGX+zG,EAAWtzG,KAAK,IACzB,CAEA,kBAAAuxI,GACE,MAAM,oBACJF,EAAmB,qBACnBC,GACE9zI,KAAKyH,MAET,OACE,kBAAC,OAAImF,UAAU,mBAEXinI,EACIL,GAAMC,SAASI,GACf,KAEJ7zI,KAAKg0I,oBAELF,EACIN,GAAMC,SAASK,GACf,KAIZ,CAEA,iBAAAE,GACE,MAEI,EAAAh0I,KAAKyH,OADPmsI,QAAAA,EAAA,SAAS7mG,EAAQ,MAAEzpC,GACjB,EAD2B4uG,mKAAA,CAC3B,EAD2B,CAA7B,UAAS,WAAU,WAEf,WAAEyhC,GAAe3zI,KAAKmhC,MAC5B,OACE,kBAAC,sIACC8yG,aAAa,MACbrnI,UAAU,oBACNslG,KAHL,CAICnlE,SAAU/sC,KAAKm0H,eACf7wH,MAAQswI,EAAWtwI,EAAQqwI,wBAGjC,CAGA,KAAA9pF,GACE,MAAM,UAAE6pF,GAAc1zI,KAAKmhC,MAE3BnhC,KAAKiwB,SAAS,CACZ0jH,WAAYD,GAEhB,CAEA,MAAAr1B,GACE,MAAM,MACJ/hF,EAAK,GACLz5B,EAAE,oBACFgxI,EAAmB,qBACnBC,EAAoB,KACpB9lB,EAAI,SACJzhG,EAAQ,MACRjpB,GACEtD,KAAKyH,MAET,OACE,kBAAC,OAAImF,UAAW5M,KAAK61G,iBAEjBv5E,EACI,kBAAC,SAAM+3F,QAASxxH,EAAIgK,MAAO7M,KAAKi0H,kBAAoB33F,GACpD,MAEJ/P,GACA,kBAAC,OACC3f,UAAU,4BACVC,MAAO7M,KAAKk0H,oBAGV2f,GAAuBC,EACnB9zI,KAAK+zI,qBACL/zI,KAAKg0I,oBAGThmB,EACI,kBAAC,KAAEphH,UAAU,gCAAiCohH,GAC9C,KAEJhuH,KAAKg3H,iBAITzqG,GAAY,kBAAC,OAAI3f,UAAU,8BAA8BtJ,GAAS,KAI1E,EAGFkwI,GAAMphC,UAAY,CAChBz9F,SAAU,SACV4X,SAAU,SACV1pB,GAAI,WACJ+wI,QAAS,SACT/yI,MAAO,cAAoB,CACzB,WACA,WAEFgzI,oBAAqB,cAAoB,CACvC,YACA,SACA,aAEFC,qBAAsB,cAAoB,CACxC,YACA,SACA,aAEFx3G,MAAO,cAAoB,CACzB,WACA,YACA,WAEF+nF,WAAY,WACZlhH,KAAM,WACN6qH,KAAM,WACNjhF,SAAU,SACV4hB,YAAa,WACbx6B,MAAO,WACP7wB,MAAO,cAAoB,CACzB,WACA,cAIJ,qaCnQA,SAAS4wI,GAAO,EAcbnhC,GAda,SACdlyG,MAAAA,EAAA,SACAksC,EAAQ,SACRxgB,EAAQ,GACR1pB,EAAE,oBACFgxI,EAAmB,qBACnBC,EAAoB,MACpBx3G,EAAK,WACL+nF,EAAU,KACV2J,EAAI,MACJ75F,EAAK,MACL7wB,EAAK,iBACL4kH,EAAmB,IAZL,EAaXhW,mKAAA,CAbW,EAaX,CAZH,QACA,WACA,WACA,KACA,sBACA,uBACA,QACA,aACA,OACA,QACA,QACA,qBAGA,MAAMmjB,GAAW,IAAAlhB,WAEjB,IAAAoU,qBAAoBxV,GAAK,KAAM,CAC7BxrF,MAAO,KACL8tG,EAASxhB,QAAQtsF,OAAO,MAI5B,MAAMksH,EAAY50D,GAChB,kBAAC,OAAIjyE,UAAU,0BACXiyE,GAyDAs1C,EAAkBhrH,IACtB4jC,EAAS5jC,EAAGA,EAAE1E,OAAOnB,MAAM,EAGvB6wI,EAAkB,KACtB,yBAAC,eACCF,aAAa,MACbrnI,UAAU,oBACNslG,WAHL,CAICnlE,SAAUonF,EACV7wH,QACAyvG,IAAKsiB,YACP,EAmBF,OACE,kBAAC,OAAIzoH,UA7De,MACpB,MAAMkpG,EAAa,CAACoS,EAAkB,kBAChC4O,EAAS3iG,EAAQA,EAAM9xB,MAAM,KAAO,GAwB1C,OAtBIy0H,EAAOv2H,QACTu2H,EAAO/xH,SAASgyH,IACdjhB,EAAW/zG,KAAK,mBAAmBg1H,IAAS,IAI5C8c,GACF/9B,EAAW/zG,KAAK,8BAGd+xI,GACFh+B,EAAW/zG,KAAK,+BAGdsiH,GACFvO,EAAW/zG,KAAK,mCAGdlB,GACFi1G,EAAW/zG,KAAK,aAGX+zG,EAAWtzG,KAAK,IAAI,EAmCXqzG,IAEZv5E,EACI,kBAAC,SAAM+3F,QAASxxH,EAAIgK,MAxFA,MACzBw3G,GAAc,CACfC,UAAWD,KAsF0C/nF,GAC/C,MAEJ/P,GACA,kBAAC,OACC3f,UAAU,4BACVC,MAxFwB,MAC3Bw3G,GAAc,CACfC,UAAW,eAAeD,eAyFpBwvB,GAAuBC,EA5B/B,kBAAC,OAAIlnI,UAAU,mBAEXinI,EACIJ,EAASI,GACT,KAEJM,IAEAL,EACIL,EAASK,GACT,MAoBIK,IAGJnmB,EACI,kBAAC,KAAEphH,UAAU,gCAAiCohH,GAC9C,KA3FXntH,GAAmB,SAAVA,GAA8B,UAAVA,EAE1B,kBAAC,KACC+L,UAAU,mCAER/L,GAGJ,MAyFA0rB,GACE,kBAAC,OAAI3f,UAAU,8BACZtJ,GAAS,KAMtB,CAEA4wI,GAAO9hC,UAAY,CACjBz9F,SAAU,SACV4X,SAAU,SACV1pB,GAAI,WACJhC,MAAO,cAAoB,CACzB,WACA,WAEFgzI,oBAAqB,cAAoB,CACvC,YACA,SACA,aAEFC,qBAAsB,cAAoB,CACxC,YACA,SACA,aAEFx3G,MAAO,cAAoB,CACzB,WACA,YACA,WAEF+nF,WAAY,WACZlhH,KAAM,WACN6qH,KAAM,WACNjhF,SAAU,SACV4hB,YAAa,WACbx6B,MAAO,WACP7wB,MAAO,cAAoB,CACzB,WACA,aAEF4kH,iBAAkB,YAGpB,UAAe,IAAA3U,YAAW2gC,ICxL1B,IAF2B,IAAApiC,iBCoB3B,SAASsiC,IAAgB,KACvBxuI,EAAI,SACJyuI,EAAQ,YACRjb,EAAW,SACXrsF,IAEA,MAAMunG,GAAkB,IAAAvgC,cAAawgC,IAC/B,MAAAA,OAAA,EAAAA,EAAkBh0I,QAAS,EACtBg0I,EAAiB9zG,MAAMz7B,IA9BpC,MA8B4C,gBAAAY,EAAKZ,SAAL,IAAWV,SAAS80H,EAAY,IAGjE7gE,KAAK09D,UAAUrwH,GAAMtB,SAAS80H,IACpC,CAACxzH,EAAMwzH,IAEJob,GAAc,IAAAzgC,cAAY,KAC9BhnE,EAASnnC,EAAK,GACb,CAACmnC,EAAUnnC,IAEd,OACE,kBAAC,GAAmBw/G,SAAnB,MAEI35F,GACC6oH,EAAgB7oH,EAAQ8oH,kBAEpB,kBAAC,UACC,kBAAC,WACC,kBAAC,QAAK3nI,UAAU,8BAEZ6e,EAAQgpH,oBACJhpH,EAAQgpH,oBAAoB7uI,GAC5B2yD,KAAK09D,UAAUrwH,IAGvB,kBAAC,QAAKgH,UAAU,kCACd,kBAAC,GACC8lG,SAAuB,WAAb2hC,EAAwB,OAAS,QAC3C1+B,UAAQ,EACR/C,QAAS4hC,EACT7/H,SAAU8W,EAAQ9W,UAAa8W,EAAQipH,eAAiBjpH,EAAQipH,gBAAkBjpH,EAAQkpH,iBAAgC,WAAbN,IAE/G,kBAAC,GACC3hC,SAAUjnF,EAAQuzF,OAAOp5G,EAAK/C,IAAM,aAAe,eACnD8yG,UAAQ,EACR/C,QAAS,IAAMnnF,EAAQmpH,iBAAiBhvI,OAK5CA,EAAKivI,QAED,kBAAC,GACCtiC,WAAY9mF,EAAQuzF,OAAOp5G,EAAK/C,IAChC+J,UAAU,iCAlEX,EAAC6e,EAAS7lB,IAC/B6lB,EAAQqpH,uBACJrpH,EAAQqpH,uBAAuBlvI,GAC/B2yD,KAAK09D,UAAUrwH,EAAKivI,SAiEDE,CAAetpH,EAAS7lB,IA9D3B,EAAC6lB,EAAS7lB,KAC9B,MAAM,OAAEo5G,GAAWvzF,EAEnB,OAAOuzF,EAAOp5G,EAAK/C,IACf,kBAAC,GAAM,CAACgB,SAAS,aACjB,IAAI,EA4DYmxI,CAAcvpH,EAAS7lB,IAI/B,MAKd,CAEAwuI,GAAgBhiC,UAAY,CAC1BxsG,KAAM,eAAqBtE,QAC3B+yI,SAAU,WACVjb,YAAa,WACbrsF,SAAU,UAGZ,YCxFA,SAASkoG,IAAiB,iBACxBC,EAAgB,eAChBC,EAAc,MACdC,EAAK,eACLC,EAAc,SACdtoG,EAAQ,aACRuoG,EAAY,UACZC,EAAS,WACTC,EAAU,gBACVC,EAAe,aACfC,EAAY,cACZC,IAEA,MAAOvc,EAAayB,IAAkB,IAAA5nB,UAAS,IACzCyK,GAAY,IAAAvJ,QAAO,GACnBya,GAAe,IAAAza,UAyBfyhC,GAAiB,IAAA7hC,cAAazwG,IAC9B+xI,EACFA,EAAe/xI,GAEfu3H,EAAev3H,EACjB,GACC,CAAC+xI,IAEEQ,GAAc,IAAA9hC,cAAanuG,IAC/B,IAAIkwI,EAAatxB,gBAAgB4wB,GACjCU,EAAaA,EAAW9/H,QAAQ+/H,GAAenwI,EAAK/C,KAAOkzI,EAAWlzI,KAEtEkqC,EAAS+oG,EAAYlwI,EAAK,GACzB,CAACwvI,IAEJ,SAASY,IACP,OACE,kBAAC,MACCppI,UAAW,yBAA0B4oI,EAAiD,GAAnC,kCACnDziC,IAAK6b,GAGHwmB,EAAMjwI,KAAKS,GACT,kBAAC,IACCyuI,SAAUkB,EACVvwI,KA/CV04G,EAAU7J,SAAW,EAEd6J,EAAU7J,SA8CP9mE,SAAU8oG,EACVzc,YAAakc,EAAe,GAAKlc,EACjCxzH,WAMZ,CAEA,OACE,kBAAC,OAAIgH,UAAU,0BACb,kBAAC,IACCinI,oBACE,kBAAC,EAAI,CAAC9/H,KAAK,qBAEb5Q,KAAK,SACL4pC,SAAU6oG,EACVjnF,YAAaumF,EACb5xI,MAAO81H,IAGPgc,EAAM70I,OA/DRi1I,EAEI,kBAAC,IACC50B,SAAUgO,EACVpO,QAASk1B,EAAeD,EACxB/0B,SAAUi1B,EACVh1B,WAAY80B,GAEVO,KAGJA,IAuDE,kBAAC,GAAO,CAAC7hH,MAAM,QACXghH,GAMhB,CAEAF,GAAiB7iC,UAAY,CAC3BkjC,aAAc,SACdD,eAAgB,SAChBE,UAAW,WACXxoG,SAAU,SACVqoG,MAAO,eAAqB/vI,OAC5BowI,gBAAiB,WACjBC,aAAc,WACdR,iBAAkB,WAClBS,cAAe,SACfR,eAAgB,WAChBK,WAAY,UAGd,0SCrHA,MAAMS,GAAc,CAAC3yI,EAAO8xI,IAAUA,EAAMp/H,QAAQpQ,IAAUtC,EAAMgC,MAAMiuF,GAAMA,EAAE1wF,KAAO+C,EAAK/C,OAE9F,SAASqzI,IAAY,aACnBZ,EAAY,iBACZa,EAAgB,SAChBxhI,EAAQ,MACR9T,EAAK,eACLu1I,EAAc,oBACd3B,EAAmB,uBACnBK,EAAsB,iBACtBP,EAAgB,MAChBa,EAAK,gBACLK,EAAe,aACfC,EAAY,cACZC,EAAa,cACbjB,EAAa,KACb1mB,EAAI,MACJ1qH,EAAK,SACLypC,EAAQ,iBACRm7E,EAAmB,KAEnB,MAAOlJ,EAAQq3B,IAAa,IAAApjC,UAAS,CAAC,GAEhC2hC,GAAmB,IAAA7gC,cAAanuG,IACpCywI,GAAWC,IAAgB,sIAAKA,KAAL,CAAiB,CAAC1wI,EAAK/C,KAAMyzI,EAAW1wI,EAAK/C,wBAAM,IAE1EuzI,GAAgBA,EAAexwI,EAAK,GACvC,CAACwwI,IAYEvgC,GAAgB,IAAA9B,cACpB,IAAM,CACJmU,EACA,kBACArnH,GAAS,aAERmV,OAAO4uB,SACPpiC,KAAK,MACR,CAAC0lH,EAAkBrnH,IAGf01I,GAAc,IAAAxiC,cAAY,CAACyiC,EAAU5wI,KACzC,MAAM6wI,EAAajyB,gBAAgBlhH,GAEnCmzI,EAAWp9F,QAAQzzC,GAEnBmnC,EAAS0pG,EAAY7wI,EAAM,QAAQ,GAClC,CAACtC,IAEEozI,GAAc,IAAA3iC,cAAY,CAACprF,EAAU/iB,KACzCmnC,EAASpkB,EAAU/iB,EAAM,UAAU,GAClC,CAACwvI,IAEEuB,GAAgB,IAAAzjC,UAAQ,KAAM,CAClCv+F,WACA8/H,sBACAK,yBACAP,mBACAG,gBACAC,gBAAiBrxI,EAAM/C,OACvBq0I,mBACA51B,YACE,CACFrqG,EACA8/H,EACAK,EACAP,EACAG,EACApxI,EACAsxI,EACA51B,IAGF,OACE,oCACE,kBAAC,OAAIpyG,UAAWipG,KACd,kBAAC,GAAmBxC,SAAnB,CAA4B/vG,MAAOqzI,GAClC,kBAAC,OAAI/pI,UAAU,2BACb,kBAAC,WACGtJ,EAAM/C,OACP,IAAI,WAEJ,IACC41I,GAEJ,kBAAC,WAAI,uBAEDA,IAGN,kBAAC,OAAIvpI,UAAU,kCACb,kBAAC,IACCsoI,iBAAkB,2BAA2BiB,IAC7ChB,eAAgB,YAAYgB,mBAC5Bf,MAAO9xI,EACPypC,SAAU2pG,EACVnB,UAAU,aAEZ,kBAAC,IACCL,iBAAkB,mBAAmBiB,IACrChB,eAAgB,MAAMgB,eACtBA,mBACAb,eAAgBA,EAChBD,eAAgBC,EAChBF,MAAOa,GAAY3yI,EAAO8xI,GAC1BroG,SAAUwpG,EACVf,aAAcG,EACdA,gBACAF,kBACAC,eACAH,UAAU,cAKlB,kBAAC,WAEGvnB,EACI,kBAAC,KAAEphH,UAAU,gCAAiCohH,GAC9C,MAlGFntH,GAAmB,SAAVA,GAA8B,UAAVA,EAEjC,kBAAC,KAAE+L,UAAU,mCACT/L,GAGJ,KAkGR,CAEAq1I,GAAY9jC,UAAY,CACtBkjC,aAAc,SACd3gI,SAAU,SACV9T,MAAO,WACPs1I,iBAAkB,WAClBf,MAAO,eAAqB/vI,OAC5BovI,oBAAqB,SACrBK,uBAAwB,SACxBP,iBAAkB,eAAqBlvI,OACvC0nC,SAAU,SACVqpG,eAAgB,SAChBX,gBAAiB,WACjBC,aAAc,WACdC,cAAe,SACf3nB,KAAM,WACN0mB,cAAe,WACfpxI,MAAO,eAAqB+B,OAC5B6iH,iBAAkB,YAGpB,qaC5JA,SAAS0uB,GAAM,YACbt6G,MAAAA,EAAA,MACAqmB,EAAK,KACLqrE,EAAI,OACJpnG,EAAM,QACNiwH,EAAO,MACP1iH,EAAQ,YACRxf,EAAQ,SACR4X,EAAQ,iBACR27F,EAAmB,IATN,EAUVhW,mKAAA,CAVU,EAUV,CATH,QACA,QACA,OACA,SACA,UACA,QACA,WACA,WACA,qBAGA,MAAM4D,EAAa,CACjBlvF,EAAS,oBAAsB,YAC/BshG,EACA2uB,GAAW,eACP1iH,EAAQA,EAAM9xB,MAAM,KAAK2T,OAAO4uB,SAASz/B,KAAK2iB,GAAM,oBAAoBA,MAAO,IAClFyE,GAAY5X,IAAa,0BAC1BqB,OAAO4uB,SAASpiC,KAAK,KAEvB,OACE,kBAAC,OAAIoK,UAAWkpG,GACd,kBAAC,aACC,kBAAC,oBACKnzD,GACAuvD,WAFL,CAGCn+F,KAAK,QACLY,SAAU4X,GAAY5X,OAEvB2nB,GAEF0xF,GACC,kBAAC,KAAEphH,UAAU,gCAAgCohH,SAIrD,CAEA4oB,GAAMxkC,UAAY,CAEhBz9F,SAAU,SAEV4X,SAAU,SAEV3F,OAAQ,SAERuN,MAAO,WACPwuB,MAAO,eAAqBrhD,QAE5Bg7B,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAGFn5B,KAAM,WAEN0zI,QAAS,SAETvzI,MAAO,WAEP0qH,KAAM,cAAoB,CACxB,WACA,YACA,WAEF9F,iBAAkB,YAGpB,0SC1EA,SAAS4uB,GAAOrvI,GACd,MAeI,EAAAA,GAdFnE,MAAAA,EAAA,SACAypC,EAAQ,OACR7lB,EAAM,QACN0sH,EAAO,MACPt3G,EAAK,WACL+nF,EAAU,GACVxhH,EAAE,KACFmrH,EAAI,SACJzhG,EAAQ,QACR9f,EAAO,MACP5L,EAAK,MACLszB,EAAK,iBACL+zF,EAAmB,IAEjB,EADChW,mKAAA,CACD,EADC,CAbH,QACA,WACA,SACA,UACA,QACA,aACA,KACA,OACA,WACA,UACA,QACA,QACA,sBAGKyhC,EAAYoD,IAAiB,IAAA9jC,UAAS3vG,IAE7C,IAAA8wG,YAAU,KACHw/B,GAAWD,IAAerwI,IAC7ByzI,EAAczzI,GACVypC,GAAUA,EAASzpC,GACzB,GACC,CAACqwI,EAAYrwI,IAEhB,MAAM6wH,GAAiB,IAAApgB,cAAa5qG,IAClC,MAAM6tI,EAAgBvqI,EAAQnH,MAAM0oB,GAAWA,EAAOnrB,KAAOsG,EAAE1E,OAAOnB,QAEjEswI,GACHmD,EAAcC,GAEhBjqG,EAASiqG,EAAcn0I,GAAKm0I,EAAgB,KAAK,GAChD,CAACvqI,EAASmnI,EAAS7mG,IAEhBqnF,GAAe,IAAArgB,cAAY,KAC3B7sF,GACFA,EAAO5jB,EACT,GACC,CAAC4jB,IAGE+vH,GAAiB,IAAAljC,cAAY,IACzBlzG,GAAmB,SAAVA,GAA8B,UAAVA,EAEjC,kBAAC,KAAE+L,UAAU,mCACT/L,GAGJ,MACH,CAACA,IAEEg1G,GAAgB,IAAA9B,cACpB,IAAM,CACJ,iBACAmU,KACI/zF,EAAQA,EAAM9xB,MAAM,KAAK8C,KAAK2iB,GAAM,mBAAmBA,MAAO,GAClEu8F,GAAc,kCACdxjH,GAAS,aACTmV,OAAO4uB,SAASpiC,KAAK,MACvB,CAAC0lH,EAAkB/zF,EAAOkwF,EAAYxjH,IAGlCozH,GAAiB,IAAAlgB,cAAY,IAC7BsQ,EAAmB,CAAEC,UAAWD,GAC7B,CAAC,GACP,CAACA,IAEE6P,GAAmB,IAAAngB,cAAY,IAC/BsQ,EAAmB,CAAEC,UAAW,eAAeD,aAC5C,CAAC,GACP,CAACA,IAEE6yB,GAAqB,IAAAnjC,cAAY,KACrC,MAAMmoB,EAAc0X,GAAWtwI,EAAQA,EAAQqwI,EAE/C,OACE,kBAAC,uIACC/mI,UAAU,+BACNslG,KAFL,CAGCnlE,SAAUonF,EACVjtG,OAAQktG,EACR9wH,MAAO44H,EAAcA,EAAYr5H,GAAK,iBAGpC4J,EAAQtH,KAAK6oB,GACX,kBAAC,UAAOhpB,IAAKgpB,EAAOnrB,GAAIS,MAAO0qB,EAAOnrB,IAClCmrB,EAAO7qB,gBAIjB,GAED,CAACywI,EAAStwI,EAAOqwI,EAAYxf,EAAgBC,EAAc3nH,EAASylG,IAEvE,OACE,kBAAC,OAAItlG,UAAWipG,KAEZv5E,EACI,kBAAC,SAAM+3F,QAASxxH,EAAIgK,MAAOonH,KAAoB33F,GAC/C,MAEJ/P,GACA,kBAAC,OACC3f,UAAU,4BACVC,MAAOqnH,KAELgjB,IAEAlpB,EACI,kBAAC,KAAEphH,UAAU,gCAAiCohH,GAC9C,KAEJipB,KAGL1qH,GAAY,kBAAC,OAAI3f,UAAU,8BAA8BtJ,GAAS,KAGzE,CAEAwzI,GAAO1kC,UAAY,CACjBz9F,SAAU,SACV4X,SAAU,SACV1pB,GAAI,WACJ+wI,QAAS,SACT/yI,MAAO,cAAoB,CACzB,WACA,WAEF4L,QAAS,eAAqBpH,OAC9Bi3B,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEF+nF,WAAY,WACZlhH,KAAM,WACN6qH,KAAM,WACN9mG,OAAQ,SACR6lB,SAAU,SACV4hB,YAAa,WACbx6B,MAAO,WACP7wB,MAAO,cAAoB,CACzB,WACA,aAEF4kH,iBAAkB,YAGpB,0SCpJA,SAASivB,GAAe1vI,GACtB,MAAM,gBACJ2vI,EAAe,MACfhC,EAAK,aACLiC,EAAY,MACZ/zI,EAAK,eACL6xI,EAAiB,gCACjBpoG,EAAQ,MACR5Y,EAAK,WACLmjH,EAAU,iBACVpvB,EAAmB,IACjBzgH,EAEE8vI,EAAkBjzH,IACtB,MAAMkzH,EAAmBhzB,gBAAgBlhH,GACnCm0I,EAAeD,EAAiB7xI,WACnC9C,GAAO01D,KAAK09D,UAAUpzH,KAAQ01D,KAAK09D,UAClC5wH,MAAMoB,QAAQ5D,GACVyhB,EAAM7f,OAAOnB,MAAMjB,MAAM,KACzBiiB,EAAM7f,OAAOnB,SAIrB,GAAIghB,EAAM7f,OAAOskG,UAA6B,IAAlB0uC,EAAqB,CAC/C,MAAMpgB,EAAY/yG,EAAM7f,OAAOnB,MAAMjB,MAAM,KACrC45H,EAAa5E,EAAU92H,OAAS,EAAI82H,EAAY/yG,EAAM7f,OAAOnB,MAEnEk0I,EAAiBz1I,KAAKk6H,EACxB,MAAY33G,EAAM7f,OAAOskG,SAAW0uC,GAAgB,GAClDD,EAAiB5vI,OAAO6vI,EAAc,GAGpC1qG,GACFA,EAASyqG,EACX,EAGIE,EAA2B7rB,IAC/B,MAAM/V,EAAa,GAUnB,OARIshC,GACFthC,EAAW/zG,KAAK,wCAGd8pH,GACF/V,EAAW/zG,KAAK,qCAGX+zG,EAAWtzG,KAAK,IAAI,EAO7B,OACE,kBAAC,+HAAI,IAAKiF,WAAT,CAAgB0sB,MAAOA,GAAS,UAAWvnB,UAAW,uBAAuBs7G,QAEzEktB,EAAM70I,OAQH60I,EAAMjwI,KAAI,CAACS,EAAMhB,KACjB,yBAAC,GAAKwwG,KAAL,CAECpwG,IAAKJ,EACLgI,UAAW8qI,EAAwBp0I,EAAMgB,SAASsB,EAAK0xI,MAEvD,kBAAC,aACC,kBAAC,OAAI1qI,UAAU,6BACZyqI,EAAeA,EAAazxI,GAAQA,EAAKzC,MAE5C,kBAAC,SACC4Q,KAAK,WACLg1F,SA3BGisB,EA2BgB1xH,EA3BJyxH,EA2BWnvH,EAAK0xI,GA3BF1yG,QAC3CowF,EAAW1vH,MAAMqyI,GAAWp/E,KAAK09D,UAAUlB,KAAex8D,KAAK09D,UAAU0hB,OA4B3D5qG,SAAUwqG,EAAevzH,KAAKpe,GAC9BtC,MAAOsC,EAAK0xI,KAGZF,EACI,kBAAC,EAAI,CAACrjI,KAAMqjI,IACZ,OAnCF,IAACpiB,EAAYD,CAuCtB,IA9BC,kBAAC,MAAGnoH,UAAU,yCACZ,kBAAC,GAAO,CAACunB,MAAM,QACZghH,UAgCjB,CAEAgC,GAAe/kC,UAAY,CACzBgjC,MAAO,eAAqB/vI,OAC5BgyI,aAAc,cAAoB,CAChC,SACA,YACA,WACA,WAEF/zI,MAAO,eAAqB+B,OAC5B0nC,SAAU,SACVuqG,WAAY,WACZnC,eAAgB,WAChBiC,gBAAiB,cAAoB,CACnC,SACA,YACA,aAEFjjH,MAAO,WACP+zF,iBAAkB,YAGpBivB,GAAe7jC,aAAe,CAC5B8hC,MAAO,GACPkC,WAAY,KACZh0I,MAAO,IAGT,sWC/HA,SAASs0I,GAAS,YAChB/0I,GAAAA,EAAA,MACA8/C,EAAK,MACLrmB,EAAK,KACL0xF,EAAI,MACJntH,EAAK,MACLszB,EAAK,WACLkwF,EAAU,MACV/gH,EAAK,SACLipB,EAAQ,iBACR27F,GAVgB,EAWbhW,mKAAA,CAXa,EAWb,CAVH,KACA,QACA,QACA,OACA,QACA,QACA,aACA,QACA,WACA,qBAGA,MAAMjkG,EAAU,CACd,iBACAi6G,KACI/zF,EAAQA,EAAM9xB,MAAM,KAAK8C,KAAK2iB,GAAM,mBAAmBA,MAAO,GAClEu8F,GAAc,kCACdxjH,GAAS,aACTmV,OAAO4uB,SAASpiC,KAAK,KAsBvB,OACE,kBAAC,OAAIoK,UAAWqB,GAEZquB,EACI,kBAAC,SAAM+3F,QAASxxH,EAAIgK,MAvBxBw3G,EAAmB,CAAEC,UAAWD,GAC7B,CAAC,GAsB+C/nF,GAC/C,MAEJ/P,GACA,kBAAC,OACC3f,UAAU,4BACVC,MAxBFw3G,EAAmB,CAAEC,UAAW,eAAeD,aAC5C,CAAC,GAyBF,kBAAC,kBACCz3G,UAAU,oBACNslG,GACAvvD,GAEFr/C,GAGF0qH,EACI,kBAAC,KAAEphH,UAAU,gCAAiCohH,GAC9C,KA/BJntH,GAAmB,SAAVA,GAA8B,UAAVA,EAEjC,kBAAC,KAAE+L,UAAU,mCACT/L,GAGJ,MA8BD0rB,GAAY,kBAAC,OAAI3f,UAAU,8BAA8BtJ,GAAS,KAGzE,CAEAs0I,GAASxlC,UAAY,CAEnBz9F,SAAU,SAEV4X,SAAU,SACVo2B,MAAO,eAAqBrhD,QAE5BT,MAAO,WAEPy7B,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAGF+nF,WAAY,WAEZlhH,KAAM,WAEN6qH,KAAM,WAENjhF,SAAU,SACVlqC,GAAI,WAEJsxB,MAAO,WAEP7wB,MAAO,WAEP4kH,iBAAkB,YAGpB,YCzGA,IAFsB,IAAApW,iBCCtB,MAAM+lC,WAAmB,EAAApyB,UACvB,yBAAOqyB,CAAmBrsH,GACxB,MAAO,CAAC,yBAA0B,2BAA2BA,EAAQ1X,QAAQvR,KAAK,IACpF,CAEA,WAAAuQ,CAAYtL,GACVqpH,MAAMrpH,GAENzH,KAAK+3I,SAAU,IAAAr5B,YACjB,CAEA,iBAAA0S,GACE,MAAM,QAAE3lG,EAAO,MAAEnoB,GAAUtD,KAAKyH,MAE5BgkB,EAAQnoB,QAAUA,GACpBmoB,EAAQusH,gBAAgBh4I,KAAK+3I,QAEjC,CAEA,kBAAAzmB,CAAmBC,GACjB,MAAM,QAAE9lG,EAAO,MAAEnoB,GAAUtD,KAAKyH,MAE5B8pH,EAAU9lG,QAAQnoB,QAAUmoB,EAAQnoB,OAASmoB,EAAQnoB,QAAUA,GACjEmoB,EAAQusH,gBAAgBh4I,KAAK+3I,QAEjC,CAEA,QAAAhrG,CAASzoB,GACP,MAAM,QAAEmH,EAAO,MAAEnoB,GAAUtD,KAAKyH,OAC1B,SAAEkN,EAAQ,SAAE4X,GAAad,EAE3B9W,GAAY4X,GAIhBd,EAAQwsH,eAAgC,WAAjBxsH,EAAQ1X,MAAqB0X,EAAQnoB,MAAQA,EAAOghB,EAC7E,CAEA,MAAA+5F,GACE,MAAM,QACJ5yF,EAAO,MAAE6Q,EAAK,KAAEn5B,EAAI,MAAEG,GACpBtD,KAAKyH,MACT,OACE,kBAAC,MAAGmF,UAAW,sBAAqB6e,EAAQnoB,OAA2B,WAAjBmoB,EAAQ1X,MAAqB0X,EAAQnoB,QAAUA,EAAuC,GAA7B,4BAAmCyvG,IAAK/yG,KAAK+3I,SAC1J,kBAAC,aACC,kBAAC,SACChkI,KAAuB,WAAjB0X,EAAQ1X,KAAoB,WAAa,QAC/C5Q,OACA4lG,QAASt9E,EAAQnoB,QAAUA,EAC3BypC,SAAU/sC,KAAK+sC,SAAS/oB,KAAKhkB,MAC7BsD,UAGAg5B,EACI,kBAAC,YAAOA,GACR,kBAAC,QAAK1vB,UAAU,gBAAe,KAGlB,WAAjB6e,EAAQ1X,KACJ,kBAAC,QAAKnH,UAAWirI,GAAWC,mBAAmBrsH,KAC/C,MAKd,EAGFosH,GAAWzlC,UAAY,CACrB3mF,QAAS,eAAqBnqB,QAC9Bg7B,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEFn5B,KAAM,WACNG,MAAO,YAGT,0SC9EA,SAAS40I,GAAkB,EAAuBnlC,GAAvB,SAAEr+C,SAAAA,GAAF,EAAew9C,mKAAA,CAAf,EAAe,CAAb,aAC3B,OACE,kBAAC,GAAckT,SAAd,MACG35F,IACA,yBAAC,+HAAU,IAAKymF,WAAf,CAAqBzmF,UAAkBsnF,UACrCr+C,QAGP,GAEJ,CAEAwjF,GAAkB9lC,UAAY,CAC5B19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,cAIJ,UAAe,IAAA6+C,YAAW2kC,ICnB1B,SAASC,IAAO,UACdvrI,EAAS,SACT+H,EAAQ,SACR4X,EAAQ,KACRwhB,EAAI,MACJ5Z,EAAK,UACLjC,EAAS,OACTkmH,EAAM,iBACNlwB,EAAmB,YACnBn7E,EAAQ,WACRs3E,EAAU,MACV/nF,EAAK,UACL+7G,EAAS,SACT3jF,EAAQ,KACR3gD,EAAI,MACJzQ,EAAK,MACLzC,IAEA,MAAOy3I,EAAaC,IAAkB,IAAAtlC,UAAS,MACzCulC,GAAW,IAAArkC,UACXskC,GAAY,IAAAtkC,UAEZlmG,EAAU,CACdi6G,EACAt7G,EACA,aACA,wBAAwB2f,GAAY5X,IACpC,eAAeo5B,GAAQ,OACvB,eAAe5Z,IACf,eAAejC,IACfkmH,GAAU,uBACVpiI,OAAO4uB,SAASpiC,KAAK,KAEjBy1I,GAAiB,IAAAlkC,cAAY,CAACghB,EAAWzwG,KACxCyoB,GACLA,EAASgoF,EAAWzwG,EAAM,GACzB,CAACyoB,IAEEknF,GAAiB,IAAAlgB,cAAY,IAC7BsQ,EAAmB,CAAEC,UAAWD,GAC7B,CAAC,GACP,CAACA,IAEEq0B,GAAgB,IAAA3kC,cAAY,KAChC,IAAKukC,GAAeD,EAClB,MAAO,CAAC,EAGV,MAAMM,EAAgBL,EAAYzkC,QAAQzjG,YAK1C,MAAO,CACLJ,KALqBsoI,EAAYzkC,QAAQjsF,wBAAwB5X,KAC9CyoI,EAAU5kC,QAAQjsF,wBAAwB5X,KAI7C,EAAV,KACNL,MAAUgpI,EAAgB,EAAnB,KACR,GACA,CAACL,EAAaD,IAEXjlC,GAAe,IAAAF,UAAQ,KAAM,CACjCv+F,WACA4X,WACA0rH,iBACAD,gBAAiBO,EACjBF,YACAtkI,OACAzQ,WACE,CAACqR,EAAU4X,EAAU0rH,EAAgBI,EAAWtkI,EAAMzQ,IAE1D,OACE,oCACE,kBAAC,OAAIsJ,UAAWqB,EAAS8kG,IAAK0lC,GAC5B,kBAAC,GAAcplC,SAAd,CACC/vG,MAAO8vG,GAGL92E,EACI,kBAAC,SAAM1vB,UAAU,oBAAoBC,MAAOonH,KAAmB33F,GAC/D,KAEN,kBAAC,MAAG1vB,UAAW,sCAAsCmH,KAAQlT,GAAS,oDAAoDw3I,EAAY,YAAc,mBAChJ3jF,EAES,aAAT3gD,GAAwBskI,EAEpB,KADA,kBAAC,MAAGzrI,UAAU,oBAAoBmmG,IAAKylC,EAAU3rI,MAAO6rI,SAOlE73I,GACE,kBAAC,KAAE+L,UAAU,mCACT/L,GAMd,CAEAs3I,GAAO/lC,UAAY,CACjB19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEF9nD,UAAW,WACX+H,SAAU,SACV4X,SAAU,SACV1rB,MAAO,WACPksC,SAAU,SACVzQ,MAAO,cAAoB,CACzB,YAAkB,UAClB,SACA,YACA,SACA,aAEF+nF,WAAY,WACZlwF,MAAO,WACPpgB,KAAM,WACNg6B,KAAM,WACNsqG,UAAW,SACXnmH,UAAW,WACX5uB,MAAO,cAAoB,CACzB,SACA,aAEF80I,OAAQ,SACRlwB,iBAAkB,YAGpBiwB,GAAO7kC,aAAe,CACpB+kC,WAAW,EACXlkH,MAAO,UACPpgB,KAAM,SACNme,UAAW,OAGbimH,GAAO/iC,KAAO,GAEd,YCvJMn7F,GAAS,CACb2+H,cAAe,KAGV,SAASC,GAAU7zI,EAAK5B,GAC7B6W,GAAOjV,GAAO5B,CAChB,CAEA,2bCJA,SAAS01I,GAAiB51I,EAAKkP,GAG7B,OADgBA,EAAK/P,MAAM,UAAU2T,OAAO4uB,SAC7BuyF,QAAO,CAAC4hB,EAAKxlD,IAAOwlD,EAAMA,EAAIxlD,GAAKwlD,GAAM71I,EAC1D,CAgBA,MA8EA,GA9EgB,CAACuiH,EAAWh5G,IAAa,QAxBzCwoB,EAwByC,KAAE08G,MAAAA,EAAA,KAAOqH,GAAT,EAAkBC,mKAAA,CAAlB,EAAkB,CAAhB,QAAO,SAChD,MAAMC,EAA2D,iBAAzB,GAAON,cAA6B,GAAOA,cAAgB,KAC5FO,EAASC,IAAc,IAAAnmC,UAAS0+B,EAAMruI,OACvCyT,EAAO,IACXsiI,iBAAkB,KAAM,CAAG,GAC3BC,gBAAgB,GACb7sI,GAGC8sI,GAAmB,IAAAxlC,aAAY,MACnC,MAAMoK,EAAM1tB,GAAMA,IAClB,OAC0B,IAAxBwoD,EAAWr9B,WACkB,IAAzB,GAAOg9B,gBAA4BK,EAAWr9B,SAE3CuC,EA7Bb,SAAkB1tB,EAAGrxB,GACnB,IAAIwrB,EACJ,MAAO,IAAI9iD,KACTn/B,aAAaiiF,GACbA,EAAYniF,WAAWgoF,EAAGrxB,KAAUt3B,EAAK,CAE7C,CA4BW,CAASq2E,EAH+B,iBAAxB86B,EAAWr9B,SAC9Bq9B,EAAWr9B,SACXs9B,EAEL,EAZoC,GAY/B,IAYAnsG,EAAYysG,IAChB,MAAMl2I,GAVF,OADYiwF,EAWOimD,QAVnB,EAAAjmD,EAAG9uF,QACqB,UAAtB8uF,EAAE9uF,OAAOg1I,UAA2C,aAAlBlmD,EAAE9uF,OAAOsP,MAAyC,UAAlBw/E,EAAE9uF,OAAOsP,KAGxEw/E,EAAE9uF,OAAOnB,MAFPiwF,EAAE9uF,OAAOskG,QAIbxV,EAPQ,IAACA,EAYhB,MAAMmmD,EAAgB3iI,EAAKsiI,iBAAiB/1I,EAAOquI,EAAOqH,EAAMC,GAE1DtwH,EAAW+wH,EAAcp2I,OAAS21I,EAAW31I,OAASA,EAC5Di2I,GAAiB,KACoB,mBAAxBN,EAAWlsG,UACpBksG,EAAWlsG,SAASpkB,GAEtBgpH,EAAM5kG,SAAS,CAAEtoC,OAAQ,IAAEtB,KAAMwuI,EAAMxuI,KAAMG,MAAOqlB,GAAa+wH,IAAkB,IAErFN,EAAWzwH,EAAS,EAGhBgxH,GAAab,GAAiBE,EAAKY,QAASjI,EAAMxuI,OAASyhC,QAAQo0G,EAAKa,eACzEf,GAAiBE,EAAKlL,OAAQ6D,EAAMxuI,MACnCtC,EAA6B,iBAAd84I,EAAyBA,EAAY,IAE1D,IAAAvlC,YAAU,KACRglC,EAAWzH,EAAMruI,MAAM,GACtB,CAACquI,EAAMruI,SAGN,OAAA2xB,EAAA+jH,EAAKc,aAAL,EAAA7kH,EAAatgB,YAAUskI,EAAWtkI,UAAW,GAEjD,MAAMolI,EAAiB,MAAKd,GAM5B,cALOc,EAAen+B,SAElBt6G,OAAO04I,OAAOD,EAAgB,mBAA6C,IAA7BA,EAAentI,kBAAgCmtI,EAAentI,UAC5GtL,OAAO04I,OAAOD,EAAgB,kBAA2C,IAA5BA,EAAerlF,iBAA+BqlF,EAAerlF,SAG5G,kBAAC+wD,EAAA,kBACKksB,GADL,CAEC9wI,UACKkW,EAAKuiI,eAAiB,CAAE1F,SAAS,GAAS,CAAC,GAC5CmG,GAJL,CAKChxC,QAAqC,iBAArBkwC,EAAW31I,MAAqBquI,EAAMruI,QAAU21I,EAAW31I,MAAQquI,EAAMruI,MACzFypC,WACAzpC,MAAO61I,EACPx2F,MAAO,CAAEr/C,MAAO61I,EAASpsG,cAC3B,EC/FJ,GAAe,GAAQ,GAAU,CAC/BssG,iBAAmB/1I,IAAU,CAC3BylG,QAASzlG,MCFb,GAAe,GAAQ,ICAvB,GAAe,GAAQ,ICAvB,GAAe,GAAQ,ICAvB,GAAe,GAAQ,ICAvB,GAAe,GAAQ,GAAc,CACnC+1I,iBAAmB/1I,IAAU,CAAGA,MAAOA,GAAS,OCDlD,GAAe,GAAQ,ICAvB,GAAe,GAAQ,ICAvB,GAAe,GAAQ,GAAO,CAAEg2I,gBAAgB,ICAhD,GAAe,GAAQ,ICAvB,GAAe,GAAQ,ICAvB,GAAe,GAAQ,GAAO,CAC5BD,iBAAkB,CAAC/1I,EAAOquI,EAAOqH,EAAMC,KAAe,CACpDlwC,QAASzlG,IAAU21I,EAAW31I,MAC9BA,MAAO21I,EAAW31I,UCHtB,GAAe,GAAQ,GAAQ,CAAEg2I,gBAAgB,ICAjD,GAAe,GAAQ,ICAvB,GAAe,GAAQ,ICAvB,GAAe,GAAQ,6ZCGvB,MAAMW,WAAwB,EAAAx0B,UAC5B,WAAA1yG,CAAYtL,GACVqpH,MAAMrpH,GAENzH,KAAKm0H,eAAiBn0H,KAAKm0H,eAAenwG,KAAKhkB,KACjD,CAEA,cAAAm0H,CAAe7wH,GACb,MAAM,MAAEq/C,GAAU3iD,KAAK0xG,MACjB,SAAE3kE,GAAa4V,EAErB5V,GAAS,KAAAmsE,QAAO51G,GAClB,CAEA,aAAA0zH,GACE,MAAM,KAAElzE,EAAI,mBAAEmrF,GAAuBjvI,KAAKyH,OACpC,QAAEmyI,EAAO,MAAE/4I,EAAK,QAAEi6B,GAAYgpB,EACpC,IAAIttC,EAAU,KAQd,OANIojI,GAAW/4I,GAASouI,EAAmBpuI,GACzC2V,EAAUy4H,EAAmBpuI,GACpB+4I,GAAW9+G,IACpBtkB,EAAU,WAGLA,CACT,CAEA,MAAA6nG,GACE,MAA2B,EAAAr+G,KAAKyH,OAAxBk7C,MAAAA,GAAmB,EAATuvD,mKAAA,CAAS,EAAT,CAAV,UAER,OACE,kBAAC,eACKvvD,GACAuvD,KAFL,CAGCrxG,MAAOb,KAAKg3H,sCAGlB,EAGFijB,GAAgB7nC,UAAY,CAC1BzvD,MAAO,eAAqBrhD,QAC5BwiD,KAAM,eAAqBxiD,QAC3B2tI,mBAAoB,eAAqB3tI,SAG3C,0SC/CA,MAAM44I,WAAsB,EAAAz0B,UAC1B,WAAA1yG,CAAYtL,GACVqpH,MAAMrpH,GAENzH,KAAKm0H,eAAiBn0H,KAAKm0H,eAAenwG,KAAKhkB,KACjD,CAEA,cAAAm0H,CAAe7wH,GACb,MAAM,MAAEq/C,GAAU3iD,KAAKyH,OACjB,SAAEslC,GAAa4V,EAErB5V,GAAS,KAAAmsE,QAAO51G,GAClB,CAEA,gBAAA62I,GACE,MAAM,KAAEr2F,EAAI,mBAAEmrF,GAAuBjvI,KAAKyH,OACpC,QAAEmyI,EAAO,MAAE/4I,EAAK,QAAEi6B,GAAYgpB,EACpC,IAAIttC,EAAU,KAQd,OANIojI,GAAW/4I,GAASouI,EAAmBpuI,GACzC2V,EAAUy4H,EAAmBpuI,GACpB+4I,GAAW9+G,IACpBtkB,EAAU,WAGLA,CACT,CAEA,MAAA6nG,GACE,MAAW52G,mKAAA,CAAUzH,KAAKyH,MAAf,IAEX,OACE,kBAAC,mIACKA,KADL,CAECslC,SAAU/sC,KAAKm0H,eACf7wH,MAAQmE,EAAMk7C,MAAMr/C,MAA4BmE,EAAMk7C,MAAMr/C,MAAMk5G,OAAtC/0G,EAAMk7C,MAAMr/C,MACxCzC,MAAOb,KAAKm6I,yCAGlB,EAGFD,GAAc9nC,UAAY,CACxBtuD,KAAM,eAAqBxiD,QAC3BqhD,MAAO,eAAqBrhD,QAC5B2tI,mBAAoB,eAAqB3tI,SAG3C,0SChDA,MAAM84I,WAAsB,EAAA30B,UAC1B,WAAA1yG,CAAYtL,GACVqpH,MAAMrpH,GAENzH,KAAKm0H,eAAiBn0H,KAAKm0H,eAAenwG,KAAKhkB,KACjD,CAEA,cAAAm0H,CAAe7wH,GACb,MAAM,MAAEq/C,GAAU3iD,KAAKyH,OACjB,SAAEslC,GAAa4V,EAErB5V,GAAS,KAAAmsE,QAAO51G,GAClB,CAEA,MAAA+6G,GACE,MAII,EAAAr+G,KAAKyH,OAHPitD,SAAAA,EAAA,MACA/R,GAEE,EADCuvD,mKAAA,CACD,EADC,CAFH,WACA,UAIF,OACE,kBAAC,mIACKA,KADL,CAEC0f,SAAU5xH,KAAKm0H,eACf7D,aAAc3tE,EAAMr/C,oBAEnBoxD,UAGP,EAGF0lF,GAAchoC,UAAY,CACxB19C,SAAU,cAAoB,CAC5B,YAAkB,UAClB,SACA,YACA,aAEF/R,MAAO,eAAqBrhD,SAG9B,qaC5CA,SAAS+4I,GAAgB5yI,GACvB,MAA2B,EAAAA,GAAnBk7C,MAAAA,GAAmB,EAATuvD,mKAAA,CAAS,EAAT,CAAV,UAER,OACE,kBAAC,eACKvvD,GACAuvD,KAFL,CAGCnlE,SAAU4V,EAAM5V,SAChBzpC,MAAOq/C,EAAMr/C,MAAQq/C,EAAMr/C,MAAQ,wBAGzC,CAEA+2I,GAAgBjoC,UAAY,CAC1BzvD,MAAO,eAAqBrhD,SAG9B,0SChBA,SAASg5I,GAAe7yI,GACtB,MAAM,MAAEk7C,EAAK,KAAEmB,EAAI,mBAAEmrF,GAAuBxnI,EAmB5C,OACE,kBAAC,mIACKA,KADL,CAECslC,SARoBzpC,IACtB,MAAM,SAAEypC,GAAa4V,EACrB5V,GAAS,KAAAmsE,QAAO51G,GAAO,EAOrBA,MAAQq/C,EAAMr/C,MAAsBq/C,EAAMr/C,MAAMk5G,OAA1B75D,EAAMr/C,MAC5BzC,MAtBqB,MACvB,MAAM,QAAE+4I,EAAO,MAAE/4I,EAAK,QAAEi6B,GAAYgpB,EACpC,IAAIttC,EAAU,KAOd,OALIojI,GAAW/4I,GAASouI,EAAmBpuI,GACzC2V,EAAUy4H,EAAmBpuI,GACpB+4I,GAAW9+G,IACpBtkB,EAAU,WAELA,CAAO,EAaL2jI,yBAGb,CAEAG,GAAeloC,UAAY,CACzBtuD,KAAM,eAAqBxiD,QAC3BqhD,MAAO,eAAqBrhD,QAC5B2tI,mBAAoB,eAAqB3tI,SAG3C,0SCpCA,SAASi5I,GAAe9yI,GACtB,MAKI,EAAAA,GAJFk7C,MAAAA,EAAA,KACAmB,EAAI,mBACJmrF,GAEE,EADC/8B,mKAAA,CACD,EADC,CAHH,QACA,OACA,uBAqBF,OACE,kBAAC,mIACKA,KADL,CAECnlE,SAToBzpC,IACtB,MAAM,SAAEypC,GAAa4V,EAErB5V,GAAS,KAAAmsE,QAAO51G,GAAO,EAOrBA,MAAQq/C,EAAMr/C,MAAsBq/C,EAAMr/C,MAAMk5G,OAA1B75D,EAAMr/C,MAC5BzC,MAtBuB,MACzB,MAAM,QAAE+4I,EAAO,MAAE/4I,GAAUijD,EAC3B,IAAIttC,EAAU,KAMd,OAJIojI,GAAW/4I,GAASouI,EAAmBpuI,KACzC2V,EAAUy4H,EAAmBpuI,IAGxB2V,CAAO,EAcLgkI,yBAGb,CAEAD,GAAenoC,UAAY,CACzBtuD,KAAM,eAAqBxiD,QAC3BqhD,MAAO,eAAqBrhD,QAC5B2tI,mBAAoB,eAAqB3tI,SAG3C,0SCzCA,MAAMm5I,WAA0B,EAAAh1B,UAC9B,WAAA1yG,CAAYtL,GACVqpH,MAAMrpH,GAENzH,KAAKm0H,eAAiBn0H,KAAKm0H,eAAenwG,KAAKhkB,KACjD,CAEA,cAAAm0H,CAAe7wH,GACb,MAAM,MAAEq/C,GAAU3iD,KAAKyH,OACjB,SAAEslC,GAAa4V,EAErB5V,GAAS,KAAAmsE,QAAO51G,GAClB,CAEA,oBAAAo3I,GACE,MAAM,KAAE52F,EAAI,mBAAEmrF,GAAuBjvI,KAAKyH,OACpC,QAAEmyI,EAAO,MAAE/4I,GAAUijD,EAC3B,IAAIttC,EAAU,KAMd,OAJIojI,GAAW/4I,GAASouI,EAAmBpuI,KACzC2V,EAAUy4H,EAAmBpuI,IAGxB2V,CACT,CAEA,MAAA6nG,GACE,MAAW52G,mKAAA,CAAUzH,KAAKyH,MAAf,IAEX,OACE,kBAAC,mIACKA,KADL,CAECslC,SAAU/sC,KAAKm0H,eACf7wH,MAAQmE,EAAMk7C,MAAMr/C,MAAemE,EAAMk7C,MAAMr/C,MAAMk5G,OAAzB,KAC5B37G,MAAOb,KAAK06I,6CAGlB,EAGFD,GAAkBroC,UAAY,CAC5BzvD,MAAO,eAAqBrhD,QAC5BwiD,KAAM,eAAqBxiD,QAC3B2tI,mBAAoB,eAAqB3tI,SAG3C,qaC/CA,MAAMq5I,WAAuB,EAAAl1B,UAC3B,aAAAuR,GACE,MAAM,KAAElzE,EAAI,mBAAEmrF,GAAuBjvI,KAAKyH,OACpC,QAAEmyI,EAAO,MAAE/4I,EAAK,QAAEi6B,GAAYgpB,EACpC,IAAIttC,EAAU,KAQd,OANIojI,GAAW/4I,GAASouI,EAAmBpuI,GACzC2V,EAAUy4H,EAAmBpuI,GACpB+4I,GAAW9+G,IACpBtkB,EAAU,WAGLA,CACT,CAEA,MAAA6nG,GACE,MAA2B,EAAAr+G,KAAKyH,OAAxBk7C,MAAAA,GAAmB,EAATuvD,mKAAA,CAAS,EAAT,CAAV,UAER,OACE,kBAAC,eACKvvD,GACAuvD,KAFL,CAGCrxG,MAAOb,KAAKg3H,sCAGlB,EAGF2jB,GAAevoC,UAAY,CACzBzvD,MAAO,eAAqBrhD,QAC5BwiD,KAAM,eAAqBxiD,QAC3B2tI,mBAAoB,eAAqB3tI,SAG3C,qaClCA,MAAMs5I,WAAmB,EAAAn1B,UACvB,aAAAuR,GACE,MAAM,KAAElzE,EAAI,mBAAEmrF,GAAuBjvI,KAAKyH,OACpC,QAAEmyI,EAAO,MAAE/4I,EAAK,QAAEi6B,GAAYgpB,EACpC,IAAIttC,EAAU,KAQd,OANIojI,GAAW/4I,GAASouI,EAAmBpuI,GACzC2V,EAAUy4H,EAAmBpuI,GACpB+4I,GAAW9+G,IACpBtkB,EAAU,WAGLA,CACT,CAEA,MAAA6nG,GACE,MAA2B,EAAAr+G,KAAKyH,OAAxBk7C,MAAAA,GAAmB,EAATuvD,mKAAA,CAAS,EAAT,CAAV,UAER,OACE,kBAAC,eACKvvD,GACAuvD,KAFL,CAGC0hC,SAAO,EACP/yI,MAAOb,KAAKg3H,sCAGlB,EAGF4jB,GAAWxoC,UAAY,CACrBtuD,KAAM,eAAqBxiD,QAC3BqhD,MAAO,eAAqBrhD,QAC5B2tI,mBAAoB,eAAqB3tI,SAG3C,0SClCA,MAAMu5I,WAAyB,EAAAp1B,UAC7B,WAAA1yG,CAAYtL,GACVqpH,MAAMrpH,GAENzH,KAAKm0H,eAAiBn0H,KAAKm0H,eAAenwG,KAAKhkB,KACjD,CAEA,cAAAm0H,CAAe7wH,GACb,MAAM,MAAEq/C,GAAU3iD,KAAKyH,OACjB,SAAEslC,GAAa4V,EAErB5V,GAAS,KAAAmsE,QAAO51G,GAClB,CAEA,mBAAAw3I,GACE,MAAM,KAAEh3F,EAAI,mBAAEmrF,GAAuBjvI,KAAKyH,OACpC,QAAEmyI,EAAO,MAAE/4I,EAAK,QAAEi6B,GAAYgpB,EACpC,IAAIttC,EAAU,KAQd,OANIojI,GAAW/4I,GAASouI,EAAmBpuI,GACzC2V,EAAUy4H,EAAmBpuI,GACpB+4I,GAAW9+G,IACpBtkB,EAAU,WAGLA,CACT,CAEA,MAAA6nG,GACE,MAAW52G,mKAAA,CAAUzH,KAAKyH,MAAf,IAEX,OACE,kBAAC,mIACKA,KADL,CAECslC,SAAU/sC,KAAKm0H,eACf7wH,MAAQmE,EAAMk7C,MAAMr/C,MAA4BmE,EAAMk7C,MAAMr/C,MAAMk5G,OAAtC/0G,EAAMk7C,MAAMr/C,MACxCzC,MAAOb,KAAK86I,4CAGlB,EAGFD,GAAiBzoC,UAAY,CAC3BzvD,MAAO,eAAqBrhD,QAC5BwiD,KAAM,eAAqBxiD,QAC3B2tI,mBAAoB,eAAqB3tI,SAG3C,qaChDA,MAAMy5I,WAAoB,EAAAt1B,UACxB,WAAA1yG,CAAYtL,GACVqpH,MAAMrpH,GAENzH,KAAKg7I,YAAch7I,KAAKg7I,YAAYh3H,KAAKhkB,KAC3C,CAEA,WAAAg7I,CAAY9e,GACV,MAAM,MAAEv5E,GAAU3iD,KAAKyH,OACjB,SAAEslC,EAAQ,MAAEzpC,GAAUq/C,EAE5B5V,GAAS,KAAAmsE,aAAuB,IAAhBgjB,EAA4BA,EAAc54H,GAC5D,CAEA,cAAA2zI,GACE,MAAM,KAAEnzF,EAAI,mBAAEmrF,GAAuBjvI,KAAKyH,OACpC,QAAEmyI,EAAO,MAAE/4I,EAAK,QAAEi6B,GAAYgpB,EACpC,IAAIttC,EAAU,KAQd,OANIojI,GAAW/4I,GAASouI,EAAmBpuI,GACzC2V,EAAUy4H,EAAmBpuI,GACpB+4I,GAAW9+G,IACpBtkB,EAAU,WAGLA,CACT,CAEA,MAAA6nG,GACE,MAA2B,EAAAr+G,KAAKyH,OAAxBk7C,MAAAA,GAAmB,EAATuvD,mKAAA,CAAS,EAAT,CAAV,UAER,OACE,kBAAC,eACKvvD,GACAuvD,KAFL,CAGC0hC,SAAO,EACP/yI,MAAOb,KAAKi3I,iBACZlqG,SAAU/sC,KAAKg7I,YACf9zH,OAAQlnB,KAAKg7I,YACb13I,MAAQq/C,EAAMr/C,MAAsBq/C,EAAMr/C,MAAMk5G,OAA1B75D,EAAMr/C,4BAGlC,EAGFy3I,GAAY3oC,UAAY,CACtBzvD,MAAO,eAAqBrhD,QAC5BwiD,KAAM,eAAqBxiD,QAC3B2tI,mBAAoB,eAAqB3tI,SAG3C,0SCnDA,MAAM25I,WAA4B,EAAAx1B,UAChC,WAAA1yG,CAAYtL,GACVqpH,MAAMrpH,GAENzH,KAAKm0H,eAAiBn0H,KAAKm0H,eAAenwG,KAAKhkB,KACjD,CAEA,cAAAm0H,CAAe7wH,GACb,MAAM,MAAEq/C,GAAU3iD,KAAKyH,MAEvBk7C,EAAM5V,UAAS,KAAAmsE,QAAO51G,GACxB,CAEA,MAAA+6G,GACE,MAA+B,EAAAr+G,KAAKyH,OAA5BitD,SAAAA,GAAuB,EAAVjtD,mKAAA,CAAU,EAAV,CAAb,aAER,OACE,kBAAC,mIACKA,KADL,CAECslC,SAAU/sC,KAAKm0H,eACf7wH,MAAOmE,EAAMk7C,MAAMr/C,MAAQmE,EAAMk7C,MAAMr/C,MAAMk5G,OAAS,yBAG5D,EAGFy+B,GAAoB7oC,UAAY,CAC9B19C,SAAU,cAAoB,CAC5B,WAEF3nB,SAAU,SACV4V,MAAO,eAAqBrhD,SAG9B,0SClCA,MAAM45I,WAAoB,EAAAz1B,UACxB,WAAA1yG,CAAYtL,GACVqpH,MAAMrpH,GAENzH,KAAKm0H,eAAiBn0H,KAAKm0H,eAAenwG,KAAKhkB,KACjD,CAEA,cAAAm0H,CAAe7wH,GACb,MAAM,MAAEq/C,GAAU3iD,KAAKyH,MAEvBk7C,EAAM5V,UAAS,KAAAmsE,QAAO51G,GACxB,CAEA,MAAA+6G,GACE,MAA+B,EAAAr+G,KAAKyH,OAA5BitD,SAAAA,GAAuB,EAAVjtD,mKAAA,CAAU,EAAV,CAAb,aAER,OACE,kBAAC,mIACKA,KADL,CAECslC,SAAU/sC,KAAKm0H,eACf7wH,MAAOmE,EAAMk7C,MAAMr/C,oBAElBoxD,UAGP,EAGFwmF,GAAY9oC,UAAY,CACtB19C,SAAU,cAAoB,CAC5B,WAEF3nB,SAAU,SACV4V,MAAO,eAAqBrhD,SAG9B,YCvCe,SAAS65I,GAAYh6I,EAAU6H,KAAU8+B,GACtD,MAAMy1E,GAAgB,IAAApJ,WAEtB,IAAAC,YAAU,KACRmJ,EAAc1J,QAAU1yG,CAAQ,GAC/B,CAACA,KAGJ,IAAAizG,YAAU,KAIR,GAAIprG,QAAuC,CACzC,MAAMnG,EAAKg8B,aAJb,WACE0+E,EAAc1J,WAAW/rE,EAC3B,GAE+B9+B,GAC7B,MAAO,IAAM41B,cAAc/7B,EAC7B,IACC,CAACmG,GACN","sources":["webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/ace.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/ext-beautify.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/ext-searchbox.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-css.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-golang.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-javascript.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-json.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-jsx.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-python.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-xml.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/theme-github.js","webpack://@tyk-technologies/tyk-ui/./node_modules/react-dom/client.js","webpack://@tyk-technologies/tyk-ui/./node_modules/react-fast-compare/index.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react-dom\"","webpack://@tyk-technologies/tyk-ui/webpack/bootstrap","webpack://@tyk-technologies/tyk-ui/webpack/runtime/amd define","webpack://@tyk-technologies/tyk-ui/webpack/runtime/compat get default export","webpack://@tyk-technologies/tyk-ui/webpack/runtime/define property getters","webpack://@tyk-technologies/tyk-ui/webpack/runtime/hasOwnProperty shorthand","webpack://@tyk-technologies/tyk-ui/webpack/runtime/make namespace object","webpack://@tyk-technologies/tyk-ui/webpack/runtime/node module decorator","webpack://@tyk-technologies/tyk-ui/webpack/runtime/publicPath","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react\"","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"prop-types\"","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Icon/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemTrigger.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItem.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemHeader.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react-transition-group\"","webpack://@tyk-technologies/tyk-ui/./src/hooks/useComponentSize/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/useEventListener/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Collapsible/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemContent.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Button/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/ButtonGroup/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardHeader.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardBody.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardFooter.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardTitle.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardTitleGroup.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardSubTitle.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardSummary.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardTitleIcon.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/index.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"echarts\"","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"immutable\"","webpack://@tyk-technologies/tyk-ui/./src/utils/debounce/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/usePrevious/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Loader/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Message/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Chart/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/useTimeout/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/js/ToastMessage.js","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/js/ToastContainer.js","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/CopyToClipboard/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/js/ModalFooter.js","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/js/ModalBody.js","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Confirm/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/FixedWrapper/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/InfiniteScroller/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/FloatingContainer/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/InfoNote/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/List/js/ListItem.js","webpack://@tyk-technologies/tyk-ui/./src/components/List/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/NavBar/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Navigation/js/NavigationItem.js","webpack://@tyk-technologies/tyk-ui/./src/components/Navigation/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/panel-context.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/js/PanelBody.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/js/PanelFooter.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/js/PanelHeader.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Pill/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/RevealPanel/js/RevealPanelService.js","webpack://@tyk-technologies/tyk-ui/./src/components/RevealPanel/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/tabs-context.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/js/TabContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/js/TabContent.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/js/Tab.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tooltip/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/TextEllipsis/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Pagination/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/tableContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/header-cell.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/header.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Checkbox/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/cell.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/row.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/body.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/index.js","webpack://@tyk-technologies/tyk-ui/./src/layout/Column/index.js","webpack://@tyk-technologies/tyk-ui/./src/layout/Row/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/dropdown-context.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/js/DropdownItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/DropdownTrigger.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/DropdownListWrapper.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/useDrodpownContext.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/DropdowItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/useDropdown.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react-ace\"","webpack://@tyk-technologies/tyk-ui/./src/form/components/CodeEditor/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/js/Value.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/js/List.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/index.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"flatpickr\"","webpack://@tyk-technologies/tyk-ui/./src/form/components/DatePicker/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/isDate/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/toDate/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/defaultOptions/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/defaultLocale/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/format/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/isValid/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/subMilliseconds/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/addMilliseconds/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList/js/EditableListForm.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/Header.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/ListHeader.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/FieldsList.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/with-validation.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/validate-values.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/FileInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Input/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Input2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/js/MultiselectContext.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/js/MultiselectItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/js/MultiselectPanel.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Radio/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Select/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/SelectableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Textarea/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/js/ToggleContext.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/js/ToggleItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/js/ToggleItemWrapper.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/index.js","webpack://@tyk-technologies/tyk-ui/./src/utils/config/config.js","webpack://@tyk-technologies/tyk-ui/./src/utils/formik/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCheckbox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCodeEditor/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCombobox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCombobox2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikDatePicker/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikEditableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikEditableList2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikFileInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikInput2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikMultiselect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikRadio/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikSelect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikSelectableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikTextarea/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikToggle/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldCodeEditor/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldCombobox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldDropdown/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldPagination/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldCombobox2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldDatePicker/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldEditableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldFileInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldMultiselect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldSelect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldSelectableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldToggle/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/useInterval/index.js"],"sourcesContent":["/* ***** BEGIN LICENSE BLOCK *****\n * Distributed under the BSD license:\n *\n * Copyright (c) 2010, Ajax.org B.V.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n * * Neither the name of Ajax.org B.V. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * ***** END LICENSE BLOCK ***** */\n\n/**\n * Define a module along with a payload\n * @param module a name for the payload\n * @param payload a function to call with (require, exports, module) params\n */\n\n(function() {\n\nvar ACE_NAMESPACE = \"ace\";\n\nvar global = (function() { return this; })();\nif (!global && typeof window != \"undefined\") global = window; // strict mode\n\n\nif (!ACE_NAMESPACE && typeof requirejs !== \"undefined\")\n return;\n\n\nvar define = function(module, deps, payload) {\n if (typeof module !== \"string\") {\n if (define.original)\n define.original.apply(this, arguments);\n else {\n console.error(\"dropping module because define wasn\\'t a string.\");\n console.trace();\n }\n return;\n }\n if (arguments.length == 2)\n payload = deps;\n if (!define.modules[module]) {\n define.payloads[module] = payload;\n define.modules[module] = null;\n }\n};\n\ndefine.modules = {};\ndefine.payloads = {};\n\n/**\n * Get at functionality define()ed using the function above\n */\nvar _require = function(parentId, module, callback) {\n if (typeof module === \"string\") {\n var payload = lookup(parentId, module);\n if (payload != undefined) {\n callback && callback();\n return payload;\n }\n } else if (Object.prototype.toString.call(module) === \"[object Array]\") {\n var params = [];\n for (var i = 0, l = module.length; i < l; ++i) {\n var dep = lookup(parentId, module[i]);\n if (dep == undefined && require.original)\n return;\n params.push(dep);\n }\n return callback && callback.apply(null, params) || true;\n }\n};\n\nvar require = function(module, callback) {\n var packagedModule = _require(\"\", module, callback);\n if (packagedModule == undefined && require.original)\n return require.original.apply(this, arguments);\n return packagedModule;\n};\n\nvar normalizeModule = function(parentId, moduleName) {\n // normalize plugin requires\n if (moduleName.indexOf(\"!\") !== -1) {\n var chunks = moduleName.split(\"!\");\n return normalizeModule(parentId, chunks[0]) + \"!\" + normalizeModule(parentId, chunks[1]);\n }\n // normalize relative requires\n if (moduleName.charAt(0) == \".\") {\n var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n moduleName = base + \"/\" + moduleName;\n\n while(moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n var previous = moduleName;\n moduleName = moduleName.replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n }\n }\n return moduleName;\n};\n\n/**\n * Internal function to lookup moduleNames and resolve them by calling the\n * definition function if needed.\n */\nvar lookup = function(parentId, moduleName) {\n moduleName = normalizeModule(parentId, moduleName);\n\n var module = define.modules[moduleName];\n if (!module) {\n module = define.payloads[moduleName];\n if (typeof module === 'function') {\n var exports = {};\n var mod = {\n id: moduleName,\n uri: '',\n exports: exports,\n packaged: true\n };\n\n var req = function(module, callback) {\n return _require(moduleName, module, callback);\n };\n\n var returnValue = module(req, exports, mod);\n exports = returnValue || mod.exports;\n define.modules[moduleName] = exports;\n delete define.payloads[moduleName];\n }\n module = define.modules[moduleName] = exports || module;\n }\n return module;\n};\n\nfunction exportAce(ns) {\n var root = global;\n if (ns) {\n if (!global[ns])\n global[ns] = {};\n root = global[ns];\n }\n\n if (!root.define || !root.define.packaged) {\n define.original = root.define;\n root.define = define;\n root.define.packaged = true;\n }\n\n if (!root.require || !root.require.packaged) {\n require.original = root.require;\n root.require = require;\n root.require.packaged = true;\n }\n}\n\nexportAce(ACE_NAMESPACE);\n\n})();\n\nace.define(\"ace/lib/es6-shim\",[\"require\",\"exports\",\"module\"], function(require, exports, module){function defineProp(obj, name, val) {\n Object.defineProperty(obj, name, {\n value: val,\n enumerable: false,\n writable: true,\n configurable: true\n });\n}\nif (!String.prototype.startsWith) {\n defineProp(String.prototype, \"startsWith\", function (searchString, position) {\n position = position || 0;\n return this.lastIndexOf(searchString, position) === position;\n });\n}\nif (!String.prototype.endsWith) {\n defineProp(String.prototype, \"endsWith\", function (searchString, position) {\n var subjectString = this;\n if (position === undefined || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n });\n}\nif (!String.prototype.repeat) {\n defineProp(String.prototype, \"repeat\", function (count) {\n var result = \"\";\n var string = this;\n while (count > 0) {\n if (count & 1)\n result += string;\n if ((count >>= 1))\n string += string;\n }\n return result;\n });\n}\nif (!String.prototype.includes) {\n defineProp(String.prototype, \"includes\", function (str, position) {\n return this.indexOf(str, position) != -1;\n });\n}\nif (!Object.assign) {\n Object.assign = function (target) {\n if (target === undefined || target === null) {\n throw new TypeError(\"Cannot convert undefined or null to object\");\n }\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n Object.keys(source).forEach(function (key) {\n output[key] = source[key];\n });\n }\n }\n return output;\n };\n}\nif (!Object.values) {\n Object.values = function (o) {\n return Object.keys(o).map(function (k) {\n return o[k];\n });\n };\n}\nif (!Array.prototype.find) {\n defineProp(Array.prototype, \"find\", function (predicate) {\n var len = this.length;\n var thisArg = arguments[1];\n for (var k = 0; k < len; k++) {\n var kValue = this[k];\n if (predicate.call(thisArg, kValue, k, this)) {\n return kValue;\n }\n }\n });\n}\nif (!Array.prototype.findIndex) {\n defineProp(Array.prototype, \"findIndex\", function (predicate) {\n var len = this.length;\n var thisArg = arguments[1];\n for (var k = 0; k < len; k++) {\n var kValue = this[k];\n if (predicate.call(thisArg, kValue, k, this)) {\n return k;\n }\n }\n });\n}\nif (!Array.prototype.includes) {\n defineProp(Array.prototype, \"includes\", function (item, position) {\n return this.indexOf(item, position) != -1;\n });\n}\nif (!Array.prototype.fill) {\n defineProp(Array.prototype, \"fill\", function (value) {\n var O = this;\n var len = O.length >>> 0;\n var start = arguments[1];\n var relativeStart = start >> 0;\n var k = relativeStart < 0\n ? Math.max(len + relativeStart, 0)\n : Math.min(relativeStart, len);\n var end = arguments[2];\n var relativeEnd = end === undefined ? len : end >> 0;\n var final = relativeEnd < 0\n ? Math.max(len + relativeEnd, 0)\n : Math.min(relativeEnd, len);\n while (k < final) {\n O[k] = value;\n k++;\n }\n return O;\n });\n}\nif (!Array.of) {\n defineProp(Array, \"of\", function () {\n return Array.prototype.slice.call(arguments);\n });\n}\n\n});\n\nace.define(\"ace/lib/fixoldbrowsers\",[\"require\",\"exports\",\"module\",\"ace/lib/es6-shim\"], function(require, exports, module){// vim:set ts=4 sts=4 sw=4 st:\n\"use strict\";\nrequire(\"./es6-shim\");\n\n});\n\nace.define(\"ace/lib/deep_copy\",[\"require\",\"exports\",\"module\"], function(require, exports, module){exports.deepCopy = function deepCopy(obj) {\n if (typeof obj !== \"object\" || !obj)\n return obj;\n var copy;\n if (Array.isArray(obj)) {\n copy = [];\n for (var key = 0; key < obj.length; key++) {\n copy[key] = deepCopy(obj[key]);\n }\n return copy;\n }\n if (Object.prototype.toString.call(obj) !== \"[object Object]\")\n return obj;\n copy = {};\n for (var key in obj)\n copy[key] = deepCopy(obj[key]);\n return copy;\n};\n\n});\n\nace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\",\"ace/lib/deep_copy\"], function(require, exports, module){\"use strict\";\nexports.last = function (a) {\n return a[a.length - 1];\n};\nexports.stringReverse = function (string) {\n return string.split(\"\").reverse().join(\"\");\n};\nexports.stringRepeat = function (string, count) {\n var result = '';\n while (count > 0) {\n if (count & 1)\n result += string;\n if (count >>= 1)\n string += string;\n }\n return result;\n};\nvar trimBeginRegexp = /^\\s\\s*/;\nvar trimEndRegexp = /\\s\\s*$/;\nexports.stringTrimLeft = function (string) {\n return string.replace(trimBeginRegexp, '');\n};\nexports.stringTrimRight = function (string) {\n return string.replace(trimEndRegexp, '');\n};\nexports.copyObject = function (obj) {\n var copy = {};\n for (var key in obj) {\n copy[key] = obj[key];\n }\n return copy;\n};\nexports.copyArray = function (array) {\n var copy = [];\n for (var i = 0, l = array.length; i < l; i++) {\n if (array[i] && typeof array[i] == \"object\")\n copy[i] = this.copyObject(array[i]);\n else\n copy[i] = array[i];\n }\n return copy;\n};\nexports.deepCopy = require(\"./deep_copy\").deepCopy;\nexports.arrayToMap = function (arr) {\n var map = {};\n for (var i = 0; i < arr.length; i++) {\n map[arr[i]] = 1;\n }\n return map;\n};\nexports.createMap = function (props) {\n var map = Object.create(null);\n for (var i in props) {\n map[i] = props[i];\n }\n return map;\n};\nexports.arrayRemove = function (array, value) {\n for (var i = 0; i <= array.length; i++) {\n if (value === array[i]) {\n array.splice(i, 1);\n }\n }\n};\nexports.escapeRegExp = function (str) {\n return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g, '\\\\$1');\n};\nexports.escapeHTML = function (str) {\n return (\"\" + str).replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(/ 0xffff ? 2 : 1;\n};\n\n});\n\nace.define(\"ace/lib/useragent\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nexports.OS = {\n LINUX: \"LINUX\",\n MAC: \"MAC\",\n WINDOWS: \"WINDOWS\"\n};\nexports.getOS = function () {\n if (exports.isMac) {\n return exports.OS.MAC;\n }\n else if (exports.isLinux) {\n return exports.OS.LINUX;\n }\n else {\n return exports.OS.WINDOWS;\n }\n};\nvar _navigator = typeof navigator == \"object\" ? navigator : {};\nvar os = (/mac|win|linux/i.exec(_navigator.platform) || [\"other\"])[0].toLowerCase();\nvar ua = _navigator.userAgent || \"\";\nvar appName = _navigator.appName || \"\";\nexports.isWin = (os == \"win\");\nexports.isMac = (os == \"mac\");\nexports.isLinux = (os == \"linux\");\nexports.isIE =\n (appName == \"Microsoft Internet Explorer\" || appName.indexOf(\"MSAppHost\") >= 0)\n ? parseFloat((ua.match(/(?:MSIE |Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/) || [])[1])\n : parseFloat((ua.match(/(?:Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/) || [])[1]); // for ie\nexports.isOldIE = exports.isIE && exports.isIE < 9;\nexports.isGecko = exports.isMozilla = ua.match(/ Gecko\\/\\d+/);\nexports.isOpera = typeof opera == \"object\" && Object.prototype.toString.call(window.opera) == \"[object Opera]\";\nexports.isWebKit = parseFloat(ua.split(\"WebKit/\")[1]) || undefined;\nexports.isChrome = parseFloat(ua.split(\" Chrome/\")[1]) || undefined;\nexports.isSafari = parseFloat(ua.split(\" Safari/\")[1]) && !exports.isChrome || undefined;\nexports.isEdge = parseFloat(ua.split(\" Edge/\")[1]) || undefined;\nexports.isAIR = ua.indexOf(\"AdobeAIR\") >= 0;\nexports.isAndroid = ua.indexOf(\"Android\") >= 0;\nexports.isChromeOS = ua.indexOf(\" CrOS \") >= 0;\nexports.isIOS = /iPad|iPhone|iPod/.test(ua) && !window.MSStream;\nif (exports.isIOS)\n exports.isMac = true;\nexports.isMobile = exports.isIOS || exports.isAndroid;\n\n});\n\nace.define(\"ace/lib/dom\",[\"require\",\"exports\",\"module\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar useragent = require(\"./useragent\");\nvar XHTML_NS = \"http://www.w3.org/1999/xhtml\";\nexports.buildDom = function buildDom(arr, parent, refs) {\n if (typeof arr == \"string\" && arr) {\n var txt = document.createTextNode(arr);\n if (parent)\n parent.appendChild(txt);\n return txt;\n }\n if (!Array.isArray(arr)) {\n if (arr && arr.appendChild && parent)\n parent.appendChild(arr);\n return arr;\n }\n if (typeof arr[0] != \"string\" || !arr[0]) {\n var els = [];\n for (var i = 0; i < arr.length; i++) {\n var ch = buildDom(arr[i], parent, refs);\n ch && els.push(ch);\n }\n return els;\n }\n var el = document.createElement(arr[0]);\n var options = arr[1];\n var childIndex = 1;\n if (options && typeof options == \"object\" && !Array.isArray(options))\n childIndex = 2;\n for (var i = childIndex; i < arr.length; i++)\n buildDom(arr[i], el, refs);\n if (childIndex == 2) {\n Object.keys(options).forEach(function (n) {\n var val = options[n];\n if (n === \"class\") {\n el.className = Array.isArray(val) ? val.join(\" \") : val;\n }\n else if (typeof val == \"function\" || n == \"value\" || n[0] == \"$\") {\n el[n] = val;\n }\n else if (n === \"ref\") {\n if (refs)\n refs[val] = el;\n }\n else if (n === \"style\") {\n if (typeof val == \"string\")\n el.style.cssText = val;\n }\n else if (val != null) {\n el.setAttribute(n, val);\n }\n });\n }\n if (parent)\n parent.appendChild(el);\n return el;\n};\nexports.getDocumentHead = function (doc) {\n if (!doc)\n doc = document;\n return doc.head || doc.getElementsByTagName(\"head\")[0] || doc.documentElement;\n};\nexports.createElement = function (tag, ns) {\n return document.createElementNS ?\n document.createElementNS(ns || XHTML_NS, tag) :\n document.createElement(tag);\n};\nexports.removeChildren = function (element) {\n element.innerHTML = \"\";\n};\nexports.createTextNode = function (textContent, element) {\n var doc = element ? element.ownerDocument : document;\n return doc.createTextNode(textContent);\n};\nexports.createFragment = function (element) {\n var doc = element ? element.ownerDocument : document;\n return doc.createDocumentFragment();\n};\nexports.hasCssClass = function (el, name) {\n var classes = (el.className + \"\").split(/\\s+/g);\n return classes.indexOf(name) !== -1;\n};\nexports.addCssClass = function (el, name) {\n if (!exports.hasCssClass(el, name)) {\n el.className += \" \" + name;\n }\n};\nexports.removeCssClass = function (el, name) {\n var classes = el.className.split(/\\s+/g);\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n classes.splice(index, 1);\n }\n el.className = classes.join(\" \");\n};\nexports.toggleCssClass = function (el, name) {\n var classes = el.className.split(/\\s+/g), add = true;\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n add = false;\n classes.splice(index, 1);\n }\n if (add)\n classes.push(name);\n el.className = classes.join(\" \");\n return add;\n};\nexports.setCssClass = function (node, className, include) {\n if (include) {\n exports.addCssClass(node, className);\n }\n else {\n exports.removeCssClass(node, className);\n }\n};\nexports.hasCssString = function (id, doc) {\n var index = 0, sheets;\n doc = doc || document;\n if ((sheets = doc.querySelectorAll(\"style\"))) {\n while (index < sheets.length) {\n if (sheets[index++].id === id) {\n return true;\n }\n }\n }\n};\nexports.removeElementById = function (id, doc) {\n doc = doc || document;\n if (doc.getElementById(id)) {\n doc.getElementById(id).remove();\n }\n};\nvar strictCSP;\nvar cssCache = [];\nexports.useStrictCSP = function (value) {\n strictCSP = value;\n if (value == false)\n insertPendingStyles();\n else if (!cssCache)\n cssCache = [];\n};\nfunction insertPendingStyles() {\n var cache = cssCache;\n cssCache = null;\n cache && cache.forEach(function (item) {\n importCssString(item[0], item[1]);\n });\n}\nfunction importCssString(cssText, id, target) {\n if (typeof document == \"undefined\")\n return;\n if (cssCache) {\n if (target) {\n insertPendingStyles();\n }\n else if (target === false) {\n return cssCache.push([cssText, id]);\n }\n }\n if (strictCSP)\n return;\n var container = target;\n if (!target || !target.getRootNode) {\n container = document;\n }\n else {\n container = target.getRootNode();\n if (!container || container == target)\n container = document;\n }\n var doc = container.ownerDocument || container;\n if (id && exports.hasCssString(id, container))\n return null;\n if (id)\n cssText += \"\\n/*# sourceURL=ace/css/\" + id + \" */\";\n var style = exports.createElement(\"style\");\n style.appendChild(doc.createTextNode(cssText));\n if (id)\n style.id = id;\n if (container == doc)\n container = exports.getDocumentHead(doc);\n container.insertBefore(style, container.firstChild);\n}\nexports.importCssString = importCssString;\nexports.importCssStylsheet = function (uri, doc) {\n exports.buildDom([\"link\", { rel: \"stylesheet\", href: uri }], exports.getDocumentHead(doc));\n};\nexports.scrollbarWidth = function (doc) {\n var inner = exports.createElement(\"ace_inner\");\n inner.style.width = \"100%\";\n inner.style.minWidth = \"0px\";\n inner.style.height = \"200px\";\n inner.style.display = \"block\";\n var outer = exports.createElement(\"ace_outer\");\n var style = outer.style;\n style.position = \"absolute\";\n style.left = \"-10000px\";\n style.overflow = \"hidden\";\n style.width = \"200px\";\n style.minWidth = \"0px\";\n style.height = \"150px\";\n style.display = \"block\";\n outer.appendChild(inner);\n var body = (doc && doc.documentElement) || (document && document.documentElement);\n if (!body)\n return 0;\n body.appendChild(outer);\n var noScrollbar = inner.offsetWidth;\n style.overflow = \"scroll\";\n var withScrollbar = inner.offsetWidth;\n if (noScrollbar === withScrollbar) {\n withScrollbar = outer.clientWidth;\n }\n body.removeChild(outer);\n return noScrollbar - withScrollbar;\n};\nexports.computedStyle = function (element, style) {\n return window.getComputedStyle(element, \"\") || {};\n};\nexports.setStyle = function (styles, property, value) {\n if (styles[property] !== value) {\n styles[property] = value;\n }\n};\nexports.HAS_CSS_ANIMATION = false;\nexports.HAS_CSS_TRANSFORMS = false;\nexports.HI_DPI = useragent.isWin\n ? typeof window !== \"undefined\" && window.devicePixelRatio >= 1.5\n : true;\nif (useragent.isChromeOS)\n exports.HI_DPI = false;\nif (typeof document !== \"undefined\") {\n var div = document.createElement(\"div\");\n if (exports.HI_DPI && div.style.transform !== undefined)\n exports.HAS_CSS_TRANSFORMS = true;\n if (!useragent.isEdge && typeof div.style.animationName !== \"undefined\")\n exports.HAS_CSS_ANIMATION = true;\n div = null;\n}\nif (exports.HAS_CSS_TRANSFORMS) {\n exports.translate = function (element, tx, ty) {\n element.style.transform = \"translate(\" + Math.round(tx) + \"px, \" + Math.round(ty) + \"px)\";\n };\n}\nelse {\n exports.translate = function (element, tx, ty) {\n element.style.top = Math.round(ty) + \"px\";\n element.style.left = Math.round(tx) + \"px\";\n };\n}\n\n});\n\nace.define(\"ace/lib/net\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){/*\n * based on code from:\n *\n * @license RequireJS text 0.25.0 Copyright (c) 2010-2011, The Dojo Foundation All Rights Reserved.\n * Available via the MIT or new BSD license.\n * see: http://github.com/jrburke/requirejs for details\n */\n\"use strict\";\nvar dom = require(\"./dom\");\nexports.get = function (url, callback) {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n callback(xhr.responseText);\n }\n };\n xhr.send(null);\n};\nexports.loadScript = function (path, callback) {\n var head = dom.getDocumentHead();\n var s = document.createElement('script');\n s.src = path;\n head.appendChild(s);\n s.onload = s.onreadystatechange = function (_, isAbort) {\n if (isAbort || !s.readyState || s.readyState == \"loaded\" || s.readyState == \"complete\") {\n s = s.onload = s.onreadystatechange = null;\n if (!isAbort)\n callback();\n }\n };\n};\nexports.qualifyURL = function (url) {\n var a = document.createElement('a');\n a.href = url;\n return a.href;\n};\n\n});\n\nace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nexports.inherits = function (ctor, superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n};\nexports.mixin = function (obj, mixin) {\n for (var key in mixin) {\n obj[key] = mixin[key];\n }\n return obj;\n};\nexports.implement = function (proto, mixin) {\n exports.mixin(proto, mixin);\n};\n\n});\n\nace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar EventEmitter = {};\nvar stopPropagation = function () { this.propagationStopped = true; };\nvar preventDefault = function () { this.defaultPrevented = true; };\nEventEmitter._emit =\n EventEmitter._dispatchEvent = function (eventName, e) {\n this._eventRegistry || (this._eventRegistry = {});\n this._defaultHandlers || (this._defaultHandlers = {});\n var listeners = this._eventRegistry[eventName] || [];\n var defaultHandler = this._defaultHandlers[eventName];\n if (!listeners.length && !defaultHandler)\n return;\n if (typeof e != \"object\" || !e)\n e = {};\n if (!e.type)\n e.type = eventName;\n if (!e.stopPropagation)\n e.stopPropagation = stopPropagation;\n if (!e.preventDefault)\n e.preventDefault = preventDefault;\n listeners = listeners.slice();\n for (var i = 0; i < listeners.length; i++) {\n listeners[i](e, this);\n if (e.propagationStopped)\n break;\n }\n if (defaultHandler && !e.defaultPrevented)\n return defaultHandler(e, this);\n };\nEventEmitter._signal = function (eventName, e) {\n var listeners = (this._eventRegistry || {})[eventName];\n if (!listeners)\n return;\n listeners = listeners.slice();\n for (var i = 0; i < listeners.length; i++)\n listeners[i](e, this);\n};\nEventEmitter.once = function (eventName, callback) {\n var _self = this;\n this.on(eventName, function newCallback() {\n _self.off(eventName, newCallback);\n callback.apply(null, arguments);\n });\n if (!callback) {\n return new Promise(function (resolve) {\n callback = resolve;\n });\n }\n};\nEventEmitter.setDefaultHandler = function (eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n handlers = this._defaultHandlers = { _disabled_: {} };\n if (handlers[eventName]) {\n var old = handlers[eventName];\n var disabled = handlers._disabled_[eventName];\n if (!disabled)\n handlers._disabled_[eventName] = disabled = [];\n disabled.push(old);\n var i = disabled.indexOf(callback);\n if (i != -1)\n disabled.splice(i, 1);\n }\n handlers[eventName] = callback;\n};\nEventEmitter.removeDefaultHandler = function (eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n return;\n var disabled = handlers._disabled_[eventName];\n if (handlers[eventName] == callback) {\n if (disabled)\n this.setDefaultHandler(eventName, disabled.pop());\n }\n else if (disabled) {\n var i = disabled.indexOf(callback);\n if (i != -1)\n disabled.splice(i, 1);\n }\n};\nEventEmitter.on =\n EventEmitter.addEventListener = function (eventName, callback, capturing) {\n this._eventRegistry = this._eventRegistry || {};\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n listeners = this._eventRegistry[eventName] = [];\n if (listeners.indexOf(callback) == -1)\n listeners[capturing ? \"unshift\" : \"push\"](callback);\n return callback;\n };\nEventEmitter.off =\n EventEmitter.removeListener =\n EventEmitter.removeEventListener = function (eventName, callback) {\n this._eventRegistry = this._eventRegistry || {};\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n return;\n var index = listeners.indexOf(callback);\n if (index !== -1)\n listeners.splice(index, 1);\n };\nEventEmitter.removeAllListeners = function (eventName) {\n if (!eventName)\n this._eventRegistry = this._defaultHandlers = undefined;\n if (this._eventRegistry)\n this._eventRegistry[eventName] = undefined;\n if (this._defaultHandlers)\n this._defaultHandlers[eventName] = undefined;\n};\nexports.EventEmitter = EventEmitter;\n\n});\n\nace.define(\"ace/lib/report_error\",[\"require\",\"exports\",\"module\"], function(require, exports, module){exports.reportError = function reportError(msg, data) {\n var e = new Error(msg);\n e.data = data;\n if (typeof console == \"object\" && console.error)\n console.error(e);\n setTimeout(function () { throw e; });\n};\n\n});\n\nace.define(\"ace/lib/app_config\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\",\"ace/lib/report_error\"], function(require, exports, module){\"no use strict\";\nvar oop = require(\"./oop\");\nvar EventEmitter = require(\"./event_emitter\").EventEmitter;\nvar reportError = require(\"./report_error\").reportError;\nvar optionsProvider = {\n setOptions: function (optList) {\n Object.keys(optList).forEach(function (key) {\n this.setOption(key, optList[key]);\n }, this);\n },\n getOptions: function (optionNames) {\n var result = {};\n if (!optionNames) {\n var options = this.$options;\n optionNames = Object.keys(options).filter(function (key) {\n return !options[key].hidden;\n });\n }\n else if (!Array.isArray(optionNames)) {\n result = optionNames;\n optionNames = Object.keys(result);\n }\n optionNames.forEach(function (key) {\n result[key] = this.getOption(key);\n }, this);\n return result;\n },\n setOption: function (name, value) {\n if (this[\"$\" + name] === value)\n return;\n var opt = this.$options[name];\n if (!opt) {\n return warn('misspelled option \"' + name + '\"');\n }\n if (opt.forwardTo)\n return this[opt.forwardTo] && this[opt.forwardTo].setOption(name, value);\n if (!opt.handlesSet)\n this[\"$\" + name] = value;\n if (opt && opt.set)\n opt.set.call(this, value);\n },\n getOption: function (name) {\n var opt = this.$options[name];\n if (!opt) {\n return warn('misspelled option \"' + name + '\"');\n }\n if (opt.forwardTo)\n return this[opt.forwardTo] && this[opt.forwardTo].getOption(name);\n return opt && opt.get ? opt.get.call(this) : this[\"$\" + name];\n }\n};\nfunction warn(message) {\n if (typeof console != \"undefined\" && console.warn)\n console.warn.apply(console, arguments);\n}\nvar messages;\nvar AppConfig = /** @class */ (function () {\n function AppConfig() {\n this.$defaultOptions = {};\n }\n AppConfig.prototype.defineOptions = function (obj, path, options) {\n if (!obj.$options)\n this.$defaultOptions[path] = obj.$options = {};\n Object.keys(options).forEach(function (key) {\n var opt = options[key];\n if (typeof opt == \"string\")\n opt = { forwardTo: opt };\n opt.name || (opt.name = key);\n obj.$options[opt.name] = opt;\n if (\"initialValue\" in opt)\n obj[\"$\" + opt.name] = opt.initialValue;\n });\n oop.implement(obj, optionsProvider);\n return this;\n };\n AppConfig.prototype.resetOptions = function (obj) {\n Object.keys(obj.$options).forEach(function (key) {\n var opt = obj.$options[key];\n if (\"value\" in opt)\n obj.setOption(key, opt.value);\n });\n };\n AppConfig.prototype.setDefaultValue = function (path, name, value) {\n if (!path) {\n for (path in this.$defaultOptions)\n if (this.$defaultOptions[path][name])\n break;\n if (!this.$defaultOptions[path][name])\n return false;\n }\n var opts = this.$defaultOptions[path] || (this.$defaultOptions[path] = {});\n if (opts[name]) {\n if (opts.forwardTo)\n this.setDefaultValue(opts.forwardTo, name, value);\n else\n opts[name].value = value;\n }\n };\n AppConfig.prototype.setDefaultValues = function (path, optionHash) {\n Object.keys(optionHash).forEach(function (key) {\n this.setDefaultValue(path, key, optionHash[key]);\n }, this);\n };\n AppConfig.prototype.setMessages = function (value) {\n messages = value;\n };\n AppConfig.prototype.nls = function (string, params) {\n if (messages && !messages[string]) {\n warn(\"No message found for '\" + string + \"' in the provided messages, falling back to default English message.\");\n }\n var translated = messages && messages[string] || string;\n if (params) {\n translated = translated.replace(/\\$(\\$|[\\d]+)/g, function (_, name) {\n if (name == \"$\")\n return \"$\";\n return params[name];\n });\n }\n return translated;\n };\n return AppConfig;\n}());\nAppConfig.prototype.warn = warn;\nAppConfig.prototype.reportError = reportError;\noop.implement(AppConfig.prototype, EventEmitter);\nexports.AppConfig = AppConfig;\n\n});\n\nace.define(\"ace/theme/textmate-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \".ace-tm .ace_gutter {\\n background: #f0f0f0;\\n color: #333;\\n}\\n\\n.ace-tm .ace_print-margin {\\n width: 1px;\\n background: #e8e8e8;\\n}\\n\\n.ace-tm .ace_fold {\\n background-color: #6B72E6;\\n}\\n\\n.ace-tm {\\n background-color: #FFFFFF;\\n color: black;\\n}\\n\\n.ace-tm .ace_cursor {\\n color: black;\\n}\\n \\n.ace-tm .ace_invisible {\\n color: rgb(191, 191, 191);\\n}\\n\\n.ace-tm .ace_storage,\\n.ace-tm .ace_keyword {\\n color: blue;\\n}\\n\\n.ace-tm .ace_constant {\\n color: rgb(197, 6, 11);\\n}\\n\\n.ace-tm .ace_constant.ace_buildin {\\n color: rgb(88, 72, 246);\\n}\\n\\n.ace-tm .ace_constant.ace_language {\\n color: rgb(88, 92, 246);\\n}\\n\\n.ace-tm .ace_constant.ace_library {\\n color: rgb(6, 150, 14);\\n}\\n\\n.ace-tm .ace_invalid {\\n background-color: rgba(255, 0, 0, 0.1);\\n color: red;\\n}\\n\\n.ace-tm .ace_support.ace_function {\\n color: rgb(60, 76, 114);\\n}\\n\\n.ace-tm .ace_support.ace_constant {\\n color: rgb(6, 150, 14);\\n}\\n\\n.ace-tm .ace_support.ace_type,\\n.ace-tm .ace_support.ace_class {\\n color: rgb(109, 121, 222);\\n}\\n\\n.ace-tm .ace_keyword.ace_operator {\\n color: rgb(104, 118, 135);\\n}\\n\\n.ace-tm .ace_string {\\n color: rgb(3, 106, 7);\\n}\\n\\n.ace-tm .ace_comment {\\n color: rgb(76, 136, 107);\\n}\\n\\n.ace-tm .ace_comment.ace_doc {\\n color: rgb(0, 102, 255);\\n}\\n\\n.ace-tm .ace_comment.ace_doc.ace_tag {\\n color: rgb(128, 159, 191);\\n}\\n\\n.ace-tm .ace_constant.ace_numeric {\\n color: rgb(0, 0, 205);\\n}\\n\\n.ace-tm .ace_variable {\\n color: rgb(49, 132, 149);\\n}\\n\\n.ace-tm .ace_xml-pe {\\n color: rgb(104, 104, 91);\\n}\\n\\n.ace-tm .ace_entity.ace_name.ace_function {\\n color: #0000A2;\\n}\\n\\n\\n.ace-tm .ace_heading {\\n color: rgb(12, 7, 255);\\n}\\n\\n.ace-tm .ace_list {\\n color:rgb(185, 6, 144);\\n}\\n\\n.ace-tm .ace_meta.ace_tag {\\n color:rgb(0, 22, 142);\\n}\\n\\n.ace-tm .ace_string.ace_regex {\\n color: rgb(255, 0, 0)\\n}\\n\\n.ace-tm .ace_marker-layer .ace_selection {\\n background: rgb(181, 213, 255);\\n}\\n.ace-tm.ace_multiselect .ace_selection.ace_start {\\n box-shadow: 0 0 3px 0px white;\\n}\\n.ace-tm .ace_marker-layer .ace_step {\\n background: rgb(252, 255, 0);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_stack {\\n background: rgb(164, 229, 101);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_bracket {\\n margin: -1px 0 0 -1px;\\n border: 1px solid rgb(192, 192, 192);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_active-line {\\n background: rgba(0, 0, 0, 0.07);\\n}\\n\\n.ace-tm .ace_gutter-active-line {\\n background-color : #dcdcdc;\\n}\\n\\n.ace-tm .ace_marker-layer .ace_selected-word {\\n background: rgb(250, 250, 255);\\n border: 1px solid rgb(200, 200, 250);\\n}\\n\\n.ace-tm .ace_indent-guide {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\n}\\n\\n.ace-tm .ace_indent-guide-active {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC\\\") right repeat-y;\\n}\\n\";\n\n});\n\nace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/theme/textmate-css\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nexports.isDark = false;\nexports.cssClass = \"ace-tm\";\nexports.cssText = require(\"./textmate-css\");\nexports.$id = \"ace/theme/textmate\";\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass, false);\n\n});\n\nace.define(\"ace/config\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/net\",\"ace/lib/dom\",\"ace/lib/app_config\",\"ace/theme/textmate\"], function(require, exports, module){\"no use strict\";\nvar lang = require(\"./lib/lang\");\nvar net = require(\"./lib/net\");\nvar dom = require(\"./lib/dom\");\nvar AppConfig = require(\"./lib/app_config\").AppConfig;\nmodule.exports = exports = new AppConfig();\nvar options = {\n packaged: false,\n workerPath: null,\n modePath: null,\n themePath: null,\n basePath: \"\",\n suffix: \".js\",\n $moduleUrls: {},\n loadWorkerFromBlob: true,\n sharedPopups: false,\n useStrictCSP: null\n};\nexports.get = function (key) {\n if (!options.hasOwnProperty(key))\n throw new Error(\"Unknown config key: \" + key);\n return options[key];\n};\nexports.set = function (key, value) {\n if (options.hasOwnProperty(key))\n options[key] = value;\n else if (this.setDefaultValue(\"\", key, value) == false)\n throw new Error(\"Unknown config key: \" + key);\n if (key == \"useStrictCSP\")\n dom.useStrictCSP(value);\n};\nexports.all = function () {\n return lang.copyObject(options);\n};\nexports.$modes = {};\nexports.moduleUrl = function (name, component) {\n if (options.$moduleUrls[name])\n return options.$moduleUrls[name];\n var parts = name.split(\"/\");\n component = component || parts[parts.length - 2] || \"\";\n var sep = component == \"snippets\" ? \"/\" : \"-\";\n var base = parts[parts.length - 1];\n if (component == \"worker\" && sep == \"-\") {\n var re = new RegExp(\"^\" + component + \"[\\\\-_]|[\\\\-_]\" + component + \"$\", \"g\");\n base = base.replace(re, \"\");\n }\n if ((!base || base == component) && parts.length > 1)\n base = parts[parts.length - 2];\n var path = options[component + \"Path\"];\n if (path == null) {\n path = options.basePath;\n }\n else if (sep == \"/\") {\n component = sep = \"\";\n }\n if (path && path.slice(-1) != \"/\")\n path += \"/\";\n return path + component + sep + base + this.get(\"suffix\");\n};\nexports.setModuleUrl = function (name, subst) {\n return options.$moduleUrls[name] = subst;\n};\nvar loader = function (moduleName, cb) {\n if (moduleName === \"ace/theme/textmate\" || moduleName === \"./theme/textmate\")\n return cb(null, require(\"./theme/textmate\"));\n if (customLoader)\n return customLoader(moduleName, cb);\n console.error(\"loader is not configured\");\n};\nvar customLoader;\nexports.setLoader = function (cb) {\n customLoader = cb;\n};\nexports.dynamicModules = Object.create(null);\nexports.$loading = {};\nexports.$loaded = {};\nexports.loadModule = function (moduleName, onLoad) {\n var loadedModule, moduleType;\n if (Array.isArray(moduleName)) {\n moduleType = moduleName[0];\n moduleName = moduleName[1];\n }\n var load = function (module) {\n if (module && !exports.$loading[moduleName])\n return onLoad && onLoad(module);\n if (!exports.$loading[moduleName])\n exports.$loading[moduleName] = [];\n exports.$loading[moduleName].push(onLoad);\n if (exports.$loading[moduleName].length > 1)\n return;\n var afterLoad = function () {\n loader(moduleName, function (err, module) {\n if (module)\n exports.$loaded[moduleName] = module;\n exports._emit(\"load.module\", { name: moduleName, module: module });\n var listeners = exports.$loading[moduleName];\n exports.$loading[moduleName] = null;\n listeners.forEach(function (onLoad) {\n onLoad && onLoad(module);\n });\n });\n };\n if (!exports.get(\"packaged\"))\n return afterLoad();\n net.loadScript(exports.moduleUrl(moduleName, moduleType), afterLoad);\n reportErrorIfPathIsNotConfigured();\n };\n if (exports.dynamicModules[moduleName]) {\n exports.dynamicModules[moduleName]().then(function (module) {\n if (module.default) {\n load(module.default);\n }\n else {\n load(module);\n }\n });\n }\n else {\n try {\n loadedModule = this.$require(moduleName);\n }\n catch (e) { }\n load(loadedModule || exports.$loaded[moduleName]);\n }\n};\nexports.$require = function (moduleName) {\n if (typeof module.require == \"function\") {\n var req = \"require\";\n return module[req](moduleName);\n }\n};\nexports.setModuleLoader = function (moduleName, onLoad) {\n exports.dynamicModules[moduleName] = onLoad;\n};\nvar reportErrorIfPathIsNotConfigured = function () {\n if (!options.basePath && !options.workerPath\n && !options.modePath && !options.themePath\n && !Object.keys(options.$moduleUrls).length) {\n console.error(\"Unable to infer path to ace from script src,\", \"use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes\", \"or with webpack use ace/webpack-resolver\");\n reportErrorIfPathIsNotConfigured = function () { };\n }\n};\nexports.version = \"1.32.0\";\n\n});\n\nace.define(\"ace/loader_build\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nrequire(\"./lib/fixoldbrowsers\");\nvar config = require(\"./config\");\nconfig.setLoader(function(moduleName, cb) {\n require([moduleName], function(module) {\n cb(null, module);\n });\n});\n\nvar global = (function() {\n return this || typeof window != \"undefined\" && window;\n})();\n\nmodule.exports = function(ace) {\n config.init = init;\n config.$require = require;\n ace.require = require;\n\n if (typeof define === \"function\")\n ace.define = define;\n};\ninit(true);function init(packaged) {\n\n if (!global || !global.document)\n return;\n \n config.set(\"packaged\", packaged || require.packaged || module.packaged || (global.define && define.packaged));\n\n var scriptOptions = {};\n var scriptUrl = \"\";\n var currentScript = (document.currentScript || document._currentScript ); // native or polyfill\n var currentDocument = currentScript && currentScript.ownerDocument || document;\n \n if (currentScript && currentScript.src) {\n scriptUrl = currentScript.src.split(/[?#]/)[0].split(\"/\").slice(0, -1).join(\"/\") || \"\";\n }\n \n var scripts = currentDocument.getElementsByTagName(\"script\");\n for (var i=0; i [\" + this.end.row + \"/\" + this.end.column + \"]\");\n };\n Range.prototype.contains = function (row, column) {\n return this.compare(row, column) == 0;\n };\n Range.prototype.compareRange = function (range) {\n var cmp, end = range.end, start = range.start;\n cmp = this.compare(end.row, end.column);\n if (cmp == 1) {\n cmp = this.compare(start.row, start.column);\n if (cmp == 1) {\n return 2;\n }\n else if (cmp == 0) {\n return 1;\n }\n else {\n return 0;\n }\n }\n else if (cmp == -1) {\n return -2;\n }\n else {\n cmp = this.compare(start.row, start.column);\n if (cmp == -1) {\n return -1;\n }\n else if (cmp == 1) {\n return 42;\n }\n else {\n return 0;\n }\n }\n };\n Range.prototype.comparePoint = function (p) {\n return this.compare(p.row, p.column);\n };\n Range.prototype.containsRange = function (range) {\n return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n };\n Range.prototype.intersects = function (range) {\n var cmp = this.compareRange(range);\n return (cmp == -1 || cmp == 0 || cmp == 1);\n };\n Range.prototype.isEnd = function (row, column) {\n return this.end.row == row && this.end.column == column;\n };\n Range.prototype.isStart = function (row, column) {\n return this.start.row == row && this.start.column == column;\n };\n Range.prototype.setStart = function (row, column) {\n if (typeof row == \"object\") {\n this.start.column = row.column;\n this.start.row = row.row;\n }\n else {\n this.start.row = row;\n this.start.column = column;\n }\n };\n Range.prototype.setEnd = function (row, column) {\n if (typeof row == \"object\") {\n this.end.column = row.column;\n this.end.row = row.row;\n }\n else {\n this.end.row = row;\n this.end.column = column;\n }\n };\n Range.prototype.inside = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column) || this.isStart(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.insideStart = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.insideEnd = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isStart(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.compare = function (row, column) {\n if (!this.isMultiLine()) {\n if (row === this.start.row) {\n return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n }\n }\n if (row < this.start.row)\n return -1;\n if (row > this.end.row)\n return 1;\n if (this.start.row === row)\n return column >= this.start.column ? 0 : -1;\n if (this.end.row === row)\n return column <= this.end.column ? 0 : 1;\n return 0;\n };\n Range.prototype.compareStart = function (row, column) {\n if (this.start.row == row && this.start.column == column) {\n return -1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.compareEnd = function (row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.compareInside = function (row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n }\n else if (this.start.row == row && this.start.column == column) {\n return -1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.clipRows = function (firstRow, lastRow) {\n if (this.end.row > lastRow)\n var end = { row: lastRow + 1, column: 0 };\n else if (this.end.row < firstRow)\n var end = { row: firstRow, column: 0 };\n if (this.start.row > lastRow)\n var start = { row: lastRow + 1, column: 0 };\n else if (this.start.row < firstRow)\n var start = { row: firstRow, column: 0 };\n return Range.fromPoints(start || this.start, end || this.end);\n };\n Range.prototype.extend = function (row, column) {\n var cmp = this.compare(row, column);\n if (cmp == 0)\n return this;\n else if (cmp == -1)\n var start = { row: row, column: column };\n else\n var end = { row: row, column: column };\n return Range.fromPoints(start || this.start, end || this.end);\n };\n Range.prototype.isEmpty = function () {\n return (this.start.row === this.end.row && this.start.column === this.end.column);\n };\n Range.prototype.isMultiLine = function () {\n return (this.start.row !== this.end.row);\n };\n Range.prototype.clone = function () {\n return Range.fromPoints(this.start, this.end);\n };\n Range.prototype.collapseRows = function () {\n if (this.end.column == 0)\n return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row - 1), 0);\n else\n return new Range(this.start.row, 0, this.end.row, 0);\n };\n Range.prototype.toScreenRange = function (session) {\n var screenPosStart = session.documentToScreenPosition(this.start);\n var screenPosEnd = session.documentToScreenPosition(this.end);\n return new Range(screenPosStart.row, screenPosStart.column, screenPosEnd.row, screenPosEnd.column);\n };\n Range.prototype.moveBy = function (row, column) {\n this.start.row += row;\n this.start.column += column;\n this.end.row += row;\n this.end.column += column;\n };\n return Range;\n}());\nRange.fromPoints = function (start, end) {\n return new Range(start.row, start.column, end.row, end.column);\n};\nRange.comparePoints = comparePoints;\nRange.comparePoints = function (p1, p2) {\n return p1.row - p2.row || p1.column - p2.column;\n};\nexports.Range = Range;\n\n});\n\nace.define(\"ace/lib/keys\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\"], function(require, exports, module){/*! @license\n==========================================================================\nSproutCore -- JavaScript Application Framework\ncopyright 2006-2009, Sprout Systems Inc., Apple Inc. and contributors.\n\nPermission is hereby granted, free of charge, to any person obtaining a\ncopy of this software and associated documentation files (the \"Software\"),\nto deal in the Software without restriction, including without limitation\nthe rights to use, copy, modify, merge, publish, distribute, sublicense,\nand/or sell copies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\nDEALINGS IN THE SOFTWARE.\n\nSproutCore and the SproutCore logo are trademarks of Sprout Systems, Inc.\n\nFor more information about SproutCore, visit http://www.sproutcore.com\n\n\n==========================================================================\n@license */\n\"use strict\";\nvar oop = require(\"./oop\");\nvar Keys = (function () {\n var ret = {\n MODIFIER_KEYS: {\n 16: 'Shift', 17: 'Ctrl', 18: 'Alt', 224: 'Meta',\n 91: 'MetaLeft', 92: 'MetaRight', 93: 'ContextMenu'\n },\n KEY_MODS: {\n \"ctrl\": 1, \"alt\": 2, \"option\": 2, \"shift\": 4,\n \"super\": 8, \"meta\": 8, \"command\": 8, \"cmd\": 8,\n \"control\": 1\n },\n FUNCTION_KEYS: {\n 8: \"Backspace\",\n 9: \"Tab\",\n 13: \"Return\",\n 19: \"Pause\",\n 27: \"Esc\",\n 32: \"Space\",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"Left\",\n 38: \"Up\",\n 39: \"Right\",\n 40: \"Down\",\n 44: \"Print\",\n 45: \"Insert\",\n 46: \"Delete\",\n 96: \"Numpad0\",\n 97: \"Numpad1\",\n 98: \"Numpad2\",\n 99: \"Numpad3\",\n 100: \"Numpad4\",\n 101: \"Numpad5\",\n 102: \"Numpad6\",\n 103: \"Numpad7\",\n 104: \"Numpad8\",\n 105: \"Numpad9\",\n '-13': \"NumpadEnter\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"Numlock\",\n 145: \"Scrolllock\"\n },\n PRINTABLE_KEYS: {\n 32: ' ', 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5',\n 54: '6', 55: '7', 56: '8', 57: '9', 59: ';', 61: '=', 65: 'a',\n 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h',\n 73: 'i', 74: 'j', 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o',\n 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't', 85: 'u', 86: 'v',\n 87: 'w', 88: 'x', 89: 'y', 90: 'z', 107: '+', 109: '-', 110: '.',\n 186: ';', 187: '=', 188: ',', 189: '-', 190: '.', 191: '/', 192: '`',\n 219: '[', 220: '\\\\', 221: ']', 222: \"'\", 111: '/', 106: '*'\n }\n };\n ret.PRINTABLE_KEYS[173] = '-';\n var name, i;\n for (i in ret.FUNCTION_KEYS) {\n name = ret.FUNCTION_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n for (i in ret.PRINTABLE_KEYS) {\n name = ret.PRINTABLE_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n oop.mixin(ret, ret.MODIFIER_KEYS);\n oop.mixin(ret, ret.PRINTABLE_KEYS);\n oop.mixin(ret, ret.FUNCTION_KEYS);\n ret.enter = ret[\"return\"];\n ret.escape = ret.esc;\n ret.del = ret[\"delete\"];\n (function () {\n var mods = [\"cmd\", \"ctrl\", \"alt\", \"shift\"];\n for (var i = Math.pow(2, mods.length); i--;) {\n ret.KEY_MODS[i] = mods.filter(function (x) {\n return i & ret.KEY_MODS[x];\n }).join(\"-\") + \"-\";\n }\n })();\n ret.KEY_MODS[0] = \"\";\n ret.KEY_MODS[-1] = \"input-\";\n return ret;\n})();\noop.mixin(exports, Keys);\nexports.default = exports;\nexports.keyCodeToString = function (keyCode) {\n var keyString = Keys[keyCode];\n if (typeof keyString != \"string\")\n keyString = String.fromCharCode(keyCode);\n return keyString.toLowerCase();\n};\n\n});\n\nace.define(\"ace/lib/event\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar keys = require(\"./keys\");\nvar useragent = require(\"./useragent\");\nvar pressedKeys = null;\nvar ts = 0;\nvar activeListenerOptions;\nfunction detectListenerOptionsSupport() {\n activeListenerOptions = false;\n try {\n document.createComment(\"\").addEventListener(\"test\", function () { }, {\n get passive() {\n activeListenerOptions = { passive: false };\n }\n });\n }\n catch (e) { }\n}\nfunction getListenerOptions() {\n if (activeListenerOptions == undefined)\n detectListenerOptionsSupport();\n return activeListenerOptions;\n}\nfunction EventListener(elem, type, callback) {\n this.elem = elem;\n this.type = type;\n this.callback = callback;\n}\nEventListener.prototype.destroy = function () {\n removeListener(this.elem, this.type, this.callback);\n this.elem = this.type = this.callback = undefined;\n};\nvar addListener = exports.addListener = function (elem, type, callback, destroyer) {\n elem.addEventListener(type, callback, getListenerOptions());\n if (destroyer)\n destroyer.$toDestroy.push(new EventListener(elem, type, callback));\n};\nvar removeListener = exports.removeListener = function (elem, type, callback) {\n elem.removeEventListener(type, callback, getListenerOptions());\n};\nexports.stopEvent = function (e) {\n exports.stopPropagation(e);\n exports.preventDefault(e);\n return false;\n};\nexports.stopPropagation = function (e) {\n if (e.stopPropagation)\n e.stopPropagation();\n};\nexports.preventDefault = function (e) {\n if (e.preventDefault)\n e.preventDefault();\n};\nexports.getButton = function (e) {\n if (e.type == \"dblclick\")\n return 0;\n if (e.type == \"contextmenu\" || (useragent.isMac && (e.ctrlKey && !e.altKey && !e.shiftKey)))\n return 2;\n return e.button;\n};\nexports.capture = function (el, eventHandler, releaseCaptureHandler) {\n var ownerDocument = el && el.ownerDocument || document;\n function onMouseUp(e) {\n eventHandler && eventHandler(e);\n releaseCaptureHandler && releaseCaptureHandler(e);\n removeListener(ownerDocument, \"mousemove\", eventHandler);\n removeListener(ownerDocument, \"mouseup\", onMouseUp);\n removeListener(ownerDocument, \"dragstart\", onMouseUp);\n }\n addListener(ownerDocument, \"mousemove\", eventHandler);\n addListener(ownerDocument, \"mouseup\", onMouseUp);\n addListener(ownerDocument, \"dragstart\", onMouseUp);\n return onMouseUp;\n};\nexports.addMouseWheelListener = function (el, callback, destroyer) {\n addListener(el, \"wheel\", function (e) {\n var factor = 0.15;\n var deltaX = e.deltaX || 0;\n var deltaY = e.deltaY || 0;\n switch (e.deltaMode) {\n case e.DOM_DELTA_PIXEL:\n e.wheelX = deltaX * factor;\n e.wheelY = deltaY * factor;\n break;\n case e.DOM_DELTA_LINE:\n var linePixels = 15;\n e.wheelX = deltaX * linePixels;\n e.wheelY = deltaY * linePixels;\n break;\n case e.DOM_DELTA_PAGE:\n var pagePixels = 150;\n e.wheelX = deltaX * pagePixels;\n e.wheelY = deltaY * pagePixels;\n break;\n }\n callback(e);\n }, destroyer);\n};\nexports.addMultiMouseDownListener = function (elements, timeouts, eventHandler, callbackName, destroyer) {\n var clicks = 0;\n var startX, startY, timer;\n var eventNames = {\n 2: \"dblclick\",\n 3: \"tripleclick\",\n 4: \"quadclick\"\n };\n function onMousedown(e) {\n if (exports.getButton(e) !== 0) {\n clicks = 0;\n }\n else if (e.detail > 1) {\n clicks++;\n if (clicks > 4)\n clicks = 1;\n }\n else {\n clicks = 1;\n }\n if (useragent.isIE) {\n var isNewClick = Math.abs(e.clientX - startX) > 5 || Math.abs(e.clientY - startY) > 5;\n if (!timer || isNewClick)\n clicks = 1;\n if (timer)\n clearTimeout(timer);\n timer = setTimeout(function () { timer = null; }, timeouts[clicks - 1] || 600);\n if (clicks == 1) {\n startX = e.clientX;\n startY = e.clientY;\n }\n }\n e._clicks = clicks;\n eventHandler[callbackName](\"mousedown\", e);\n if (clicks > 4)\n clicks = 0;\n else if (clicks > 1)\n return eventHandler[callbackName](eventNames[clicks], e);\n }\n if (!Array.isArray(elements))\n elements = [elements];\n elements.forEach(function (el) {\n addListener(el, \"mousedown\", onMousedown, destroyer);\n });\n};\nvar getModifierHash = function (e) {\n return 0 | (e.ctrlKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.metaKey ? 8 : 0);\n};\nexports.getModifierString = function (e) {\n return keys.KEY_MODS[getModifierHash(e)];\n};\nfunction normalizeCommandKeys(callback, e, keyCode) {\n var hashId = getModifierHash(e);\n if (!useragent.isMac && pressedKeys) {\n if (e.getModifierState && (e.getModifierState(\"OS\") || e.getModifierState(\"Win\")))\n hashId |= 8;\n if (pressedKeys.altGr) {\n if ((3 & hashId) != 3)\n pressedKeys.altGr = 0;\n else\n return;\n }\n if (keyCode === 18 || keyCode === 17) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (keyCode === 17 && location === 1) {\n if (pressedKeys[keyCode] == 1)\n ts = e.timeStamp;\n }\n else if (keyCode === 18 && hashId === 3 && location === 2) {\n var dt = e.timeStamp - ts;\n if (dt < 50)\n pressedKeys.altGr = true;\n }\n }\n }\n if (keyCode in keys.MODIFIER_KEYS) {\n keyCode = -1;\n }\n if (!hashId && keyCode === 13) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (location === 3) {\n callback(e, hashId, -keyCode);\n if (e.defaultPrevented)\n return;\n }\n }\n if (useragent.isChromeOS && hashId & 8) {\n callback(e, hashId, keyCode);\n if (e.defaultPrevented)\n return;\n else\n hashId &= ~8;\n }\n if (!hashId && !(keyCode in keys.FUNCTION_KEYS) && !(keyCode in keys.PRINTABLE_KEYS)) {\n return false;\n }\n return callback(e, hashId, keyCode);\n}\nexports.addCommandKeyListener = function (el, callback, destroyer) {\n if (useragent.isOldGecko || (useragent.isOpera && !(\"KeyboardEvent\" in window))) {\n var lastKeyDownKeyCode = null;\n addListener(el, \"keydown\", function (e) {\n lastKeyDownKeyCode = e.keyCode;\n }, destroyer);\n addListener(el, \"keypress\", function (e) {\n return normalizeCommandKeys(callback, e, lastKeyDownKeyCode);\n }, destroyer);\n }\n else {\n var lastDefaultPrevented = null;\n addListener(el, \"keydown\", function (e) {\n pressedKeys[e.keyCode] = (pressedKeys[e.keyCode] || 0) + 1;\n var result = normalizeCommandKeys(callback, e, e.keyCode);\n lastDefaultPrevented = e.defaultPrevented;\n return result;\n }, destroyer);\n addListener(el, \"keypress\", function (e) {\n if (lastDefaultPrevented && (e.ctrlKey || e.altKey || e.shiftKey || e.metaKey)) {\n exports.stopEvent(e);\n lastDefaultPrevented = null;\n }\n }, destroyer);\n addListener(el, \"keyup\", function (e) {\n pressedKeys[e.keyCode] = null;\n }, destroyer);\n if (!pressedKeys) {\n resetPressedKeys();\n addListener(window, \"focus\", resetPressedKeys);\n }\n }\n};\nfunction resetPressedKeys() {\n pressedKeys = Object.create(null);\n}\nif (typeof window == \"object\" && window.postMessage && !useragent.isOldIE) {\n var postMessageId = 1;\n exports.nextTick = function (callback, win) {\n win = win || window;\n var messageName = \"zero-timeout-message-\" + (postMessageId++);\n var listener = function (e) {\n if (e.data == messageName) {\n exports.stopPropagation(e);\n removeListener(win, \"message\", listener);\n callback();\n }\n };\n addListener(win, \"message\", listener);\n win.postMessage(messageName, \"*\");\n };\n}\nexports.$idleBlocked = false;\nexports.onIdle = function (cb, timeout) {\n return setTimeout(function handler() {\n if (!exports.$idleBlocked) {\n cb();\n }\n else {\n setTimeout(handler, 100);\n }\n }, timeout);\n};\nexports.$idleBlockId = null;\nexports.blockIdle = function (delay) {\n if (exports.$idleBlockId)\n clearTimeout(exports.$idleBlockId);\n exports.$idleBlocked = true;\n exports.$idleBlockId = setTimeout(function () {\n exports.$idleBlocked = false;\n }, delay || 100);\n};\nexports.nextFrame = typeof window == \"object\" && (window.requestAnimationFrame\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame\n || window.msRequestAnimationFrame\n || window.oRequestAnimationFrame);\nif (exports.nextFrame)\n exports.nextFrame = exports.nextFrame.bind(window);\nelse\n exports.nextFrame = function (callback) {\n setTimeout(callback, 17);\n };\n\n});\n\nace.define(\"ace/clipboard\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar $cancelT;\nmodule.exports = {\n lineMode: false,\n pasteCancelled: function () {\n if ($cancelT && $cancelT > Date.now() - 50)\n return true;\n return $cancelT = false;\n },\n cancel: function () {\n $cancelT = Date.now();\n }\n};\n\n});\n\nace.define(\"ace/keyboard/textinput\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/config\",\"ace/lib/useragent\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/clipboard\",\"ace/lib/keys\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar nls = require(\"../config\").nls;\nvar useragent = require(\"../lib/useragent\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar clipboard = require(\"../clipboard\");\nvar BROKEN_SETDATA = useragent.isChrome < 18;\nvar USE_IE_MIME_TYPE = useragent.isIE;\nvar HAS_FOCUS_ARGS = useragent.isChrome > 63;\nvar MAX_LINE_LENGTH = 400;\nvar KEYS = require(\"../lib/keys\");\nvar MODS = KEYS.KEY_MODS;\nvar isIOS = useragent.isIOS;\nvar valueResetRegex = isIOS ? /\\s/ : /\\n/;\nvar isMobile = useragent.isMobile;\nvar TextInput = function (parentNode, host) {\n var text = dom.createElement(\"textarea\");\n text.className = \"ace_text-input\";\n text.setAttribute(\"wrap\", \"off\");\n text.setAttribute(\"autocorrect\", \"off\");\n text.setAttribute(\"autocapitalize\", \"off\");\n text.setAttribute(\"spellcheck\", false);\n text.style.opacity = \"0\";\n parentNode.insertBefore(text, parentNode.firstChild);\n var copied = false;\n var pasted = false;\n var inComposition = false;\n var sendingText = false;\n var tempStyle = '';\n if (!isMobile)\n text.style.fontSize = \"1px\";\n var commandMode = false;\n var ignoreFocusEvents = false;\n var lastValue = \"\";\n var lastSelectionStart = 0;\n var lastSelectionEnd = 0;\n var lastRestoreEnd = 0;\n var rowStart = Number.MAX_SAFE_INTEGER;\n var rowEnd = Number.MIN_SAFE_INTEGER;\n var numberOfExtraLines = 0;\n try {\n var isFocused = document.activeElement === text;\n }\n catch (e) { }\n this.setNumberOfExtraLines = function (number) {\n rowStart = Number.MAX_SAFE_INTEGER;\n rowEnd = Number.MIN_SAFE_INTEGER;\n if (number < 0) {\n numberOfExtraLines = 0;\n return;\n }\n numberOfExtraLines = number;\n };\n this.setAriaOptions = function (options) {\n if (options.activeDescendant) {\n text.setAttribute(\"aria-haspopup\", \"true\");\n text.setAttribute(\"aria-autocomplete\", options.inline ? \"both\" : \"list\");\n text.setAttribute(\"aria-activedescendant\", options.activeDescendant);\n }\n else {\n text.setAttribute(\"aria-haspopup\", \"false\");\n text.setAttribute(\"aria-autocomplete\", \"both\");\n text.removeAttribute(\"aria-activedescendant\");\n }\n if (options.role) {\n text.setAttribute(\"role\", options.role);\n }\n if (options.setLabel) {\n text.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n if (host.session) {\n var row = host.session.selection.cursor.row;\n text.setAttribute(\"aria-label\", nls(\"Cursor at row $0\", [row + 1]));\n }\n }\n };\n this.setAriaOptions({ role: \"textbox\" });\n event.addListener(text, \"blur\", function (e) {\n if (ignoreFocusEvents)\n return;\n host.onBlur(e);\n isFocused = false;\n }, host);\n event.addListener(text, \"focus\", function (e) {\n if (ignoreFocusEvents)\n return;\n isFocused = true;\n if (useragent.isEdge) {\n try {\n if (!document.hasFocus())\n return;\n }\n catch (e) { }\n }\n host.onFocus(e);\n if (useragent.isEdge)\n setTimeout(resetSelection);\n else\n resetSelection();\n }, host);\n this.$focusScroll = false;\n this.focus = function () {\n this.setAriaOptions({\n setLabel: host.renderer.enableKeyboardAccessibility\n });\n if (tempStyle || HAS_FOCUS_ARGS || this.$focusScroll == \"browser\")\n return text.focus({ preventScroll: true });\n var top = text.style.top;\n text.style.position = \"fixed\";\n text.style.top = \"0px\";\n try {\n var isTransformed = text.getBoundingClientRect().top != 0;\n }\n catch (e) {\n return;\n }\n var ancestors = [];\n if (isTransformed) {\n var t = text.parentElement;\n while (t && t.nodeType == 1) {\n ancestors.push(t);\n t.setAttribute(\"ace_nocontext\", true);\n if (!t.parentElement && t.getRootNode)\n t = t.getRootNode().host;\n else\n t = t.parentElement;\n }\n }\n text.focus({ preventScroll: true });\n if (isTransformed) {\n ancestors.forEach(function (p) {\n p.removeAttribute(\"ace_nocontext\");\n });\n }\n setTimeout(function () {\n text.style.position = \"\";\n if (text.style.top == \"0px\")\n text.style.top = top;\n }, 0);\n };\n this.blur = function () {\n text.blur();\n };\n this.isFocused = function () {\n return isFocused;\n };\n host.on(\"beforeEndOperation\", function () {\n var curOp = host.curOp;\n var commandName = curOp && curOp.command && curOp.command.name;\n if (commandName == \"insertstring\")\n return;\n var isUserAction = commandName && (curOp.docChanged || curOp.selectionChanged);\n if (inComposition && isUserAction) {\n lastValue = text.value = \"\";\n onCompositionEnd();\n }\n resetSelection();\n });\n var positionToSelection = function (row, column) {\n var selection = column;\n for (var i = 1; i <= row - rowStart && i < 2 * numberOfExtraLines + 1; i++) {\n selection += host.session.getLine(row - i).length + 1;\n }\n return selection;\n };\n var resetSelection = isIOS\n ? function (value) {\n if (!isFocused || (copied && !value) || sendingText)\n return;\n if (!value)\n value = \"\";\n var newValue = \"\\n ab\" + value + \"cde fg\\n\";\n if (newValue != text.value)\n text.value = lastValue = newValue;\n var selectionStart = 4;\n var selectionEnd = 4 + (value.length || (host.selection.isEmpty() ? 0 : 1));\n if (lastSelectionStart != selectionStart || lastSelectionEnd != selectionEnd) {\n text.setSelectionRange(selectionStart, selectionEnd);\n }\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n }\n : function () {\n if (inComposition || sendingText)\n return;\n if (!isFocused && !afterContextMenu)\n return;\n inComposition = true;\n var selectionStart = 0;\n var selectionEnd = 0;\n var line = \"\";\n if (host.session) {\n var selection = host.selection;\n var range = selection.getRange();\n var row = selection.cursor.row;\n if (row === rowEnd + 1) {\n rowStart = rowEnd + 1;\n rowEnd = rowStart + 2 * numberOfExtraLines;\n }\n else if (row === rowStart - 1) {\n rowEnd = rowStart - 1;\n rowStart = rowEnd - 2 * numberOfExtraLines;\n }\n else if (row < rowStart - 1 || row > rowEnd + 1) {\n rowStart = row > numberOfExtraLines ? row - numberOfExtraLines : 0;\n rowEnd = row > numberOfExtraLines ? row + numberOfExtraLines : 2 * numberOfExtraLines;\n }\n var lines = [];\n for (var i = rowStart; i <= rowEnd; i++) {\n lines.push(host.session.getLine(i));\n }\n line = lines.join('\\n');\n selectionStart = positionToSelection(range.start.row, range.start.column);\n selectionEnd = positionToSelection(range.end.row, range.end.column);\n if (range.start.row < rowStart) {\n var prevLine = host.session.getLine(rowStart - 1);\n selectionStart = range.start.row < rowStart - 1 ? 0 : selectionStart;\n selectionEnd += prevLine.length + 1;\n line = prevLine + \"\\n\" + line;\n }\n else if (range.end.row > rowEnd) {\n var nextLine = host.session.getLine(rowEnd + 1);\n selectionEnd = range.end.row > rowEnd + 1 ? nextLine.length : range.end.column;\n selectionEnd += line.length + 1;\n line = line + \"\\n\" + nextLine;\n }\n else if (isMobile && row > 0) {\n line = \"\\n\" + line;\n selectionEnd += 1;\n selectionStart += 1;\n }\n if (line.length > MAX_LINE_LENGTH) {\n if (selectionStart < MAX_LINE_LENGTH && selectionEnd < MAX_LINE_LENGTH) {\n line = line.slice(0, MAX_LINE_LENGTH);\n }\n else {\n line = \"\\n\";\n if (selectionStart == selectionEnd) {\n selectionStart = selectionEnd = 0;\n }\n else {\n selectionStart = 0;\n selectionEnd = 1;\n }\n }\n }\n var newValue = line + \"\\n\\n\";\n if (newValue != lastValue) {\n text.value = lastValue = newValue;\n lastSelectionStart = lastSelectionEnd = newValue.length;\n }\n }\n if (afterContextMenu) {\n lastSelectionStart = text.selectionStart;\n lastSelectionEnd = text.selectionEnd;\n }\n if (lastSelectionEnd != selectionEnd\n || lastSelectionStart != selectionStart\n || text.selectionEnd != lastSelectionEnd // on ie edge selectionEnd changes silently after the initialization\n ) {\n try {\n text.setSelectionRange(selectionStart, selectionEnd);\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n }\n catch (e) { }\n }\n inComposition = false;\n };\n this.resetSelection = resetSelection;\n if (isFocused)\n host.onFocus();\n var isAllSelected = function (text) {\n return text.selectionStart === 0 && text.selectionEnd >= lastValue.length\n && text.value === lastValue && lastValue\n && text.selectionEnd !== lastSelectionEnd;\n };\n var onSelect = function (e) {\n if (inComposition)\n return;\n if (copied) {\n copied = false;\n }\n else if (isAllSelected(text)) {\n host.selectAll();\n resetSelection();\n }\n else if (isMobile && text.selectionStart != lastSelectionStart) {\n resetSelection();\n }\n };\n var inputHandler = null;\n this.setInputHandler = function (cb) { inputHandler = cb; };\n this.getInputHandler = function () { return inputHandler; };\n var afterContextMenu = false;\n var sendText = function (value, fromInput) {\n if (afterContextMenu)\n afterContextMenu = false;\n if (pasted) {\n resetSelection();\n if (value)\n host.onPaste(value);\n pasted = false;\n return \"\";\n }\n else {\n var selectionStart = text.selectionStart;\n var selectionEnd = text.selectionEnd;\n var extendLeft = lastSelectionStart;\n var extendRight = lastValue.length - lastSelectionEnd;\n var inserted = value;\n var restoreStart = value.length - selectionStart;\n var restoreEnd = value.length - selectionEnd;\n var i = 0;\n while (extendLeft > 0 && lastValue[i] == value[i]) {\n i++;\n extendLeft--;\n }\n inserted = inserted.slice(i);\n i = 1;\n while (extendRight > 0 && lastValue.length - i > lastSelectionStart - 1 && lastValue[lastValue.length - i] == value[value.length - i]) {\n i++;\n extendRight--;\n }\n restoreStart -= i - 1;\n restoreEnd -= i - 1;\n var endIndex = inserted.length - i + 1;\n if (endIndex < 0) {\n extendLeft = -endIndex;\n endIndex = 0;\n }\n inserted = inserted.slice(0, endIndex);\n if (!fromInput && !inserted && !restoreStart && !extendLeft && !extendRight && !restoreEnd)\n return \"\";\n sendingText = true;\n var shouldReset = false;\n if (useragent.isAndroid && inserted == \". \") {\n inserted = \" \";\n shouldReset = true;\n }\n if (inserted && !extendLeft && !extendRight && !restoreStart && !restoreEnd || commandMode) {\n host.onTextInput(inserted);\n }\n else {\n host.onTextInput(inserted, {\n extendLeft: extendLeft,\n extendRight: extendRight,\n restoreStart: restoreStart,\n restoreEnd: restoreEnd\n });\n }\n sendingText = false;\n lastValue = value;\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n lastRestoreEnd = restoreEnd;\n return shouldReset ? \"\\n\" : inserted;\n }\n };\n var onInput = function (e) {\n if (inComposition)\n return onCompositionUpdate();\n if (e && e.inputType) {\n if (e.inputType == \"historyUndo\")\n return host.execCommand(\"undo\");\n if (e.inputType == \"historyRedo\")\n return host.execCommand(\"redo\");\n }\n var data = text.value;\n var inserted = sendText(data, true);\n if (data.length > MAX_LINE_LENGTH + 100\n || valueResetRegex.test(inserted)\n || isMobile && lastSelectionStart < 1 && lastSelectionStart == lastSelectionEnd) {\n resetSelection();\n }\n };\n var handleClipboardData = function (e, data, forceIEMime) {\n var clipboardData = e.clipboardData || window.clipboardData;\n if (!clipboardData || BROKEN_SETDATA)\n return;\n var mime = USE_IE_MIME_TYPE || forceIEMime ? \"Text\" : \"text/plain\";\n try {\n if (data) {\n return clipboardData.setData(mime, data) !== false;\n }\n else {\n return clipboardData.getData(mime);\n }\n }\n catch (e) {\n if (!forceIEMime)\n return handleClipboardData(e, data, true);\n }\n };\n var doCopy = function (e, isCut) {\n var data = host.getCopyText();\n if (!data)\n return event.preventDefault(e);\n if (handleClipboardData(e, data)) {\n if (isIOS) {\n resetSelection(data);\n copied = data;\n setTimeout(function () {\n copied = false;\n }, 10);\n }\n isCut ? host.onCut() : host.onCopy();\n event.preventDefault(e);\n }\n else {\n copied = true;\n text.value = data;\n text.select();\n setTimeout(function () {\n copied = false;\n resetSelection();\n isCut ? host.onCut() : host.onCopy();\n });\n }\n };\n var onCut = function (e) {\n doCopy(e, true);\n };\n var onCopy = function (e) {\n doCopy(e, false);\n };\n var onPaste = function (e) {\n var data = handleClipboardData(e);\n if (clipboard.pasteCancelled())\n return;\n if (typeof data == \"string\") {\n if (data)\n host.onPaste(data, e);\n if (useragent.isIE)\n setTimeout(resetSelection);\n event.preventDefault(e);\n }\n else {\n text.value = \"\";\n pasted = true;\n }\n };\n event.addCommandKeyListener(text, host.onCommandKey.bind(host), host);\n event.addListener(text, \"select\", onSelect, host);\n event.addListener(text, \"input\", onInput, host);\n event.addListener(text, \"cut\", onCut, host);\n event.addListener(text, \"copy\", onCopy, host);\n event.addListener(text, \"paste\", onPaste, host);\n if (!('oncut' in text) || !('oncopy' in text) || !('onpaste' in text)) {\n event.addListener(parentNode, \"keydown\", function (e) {\n if ((useragent.isMac && !e.metaKey) || !e.ctrlKey)\n return;\n switch (e.keyCode) {\n case 67:\n onCopy(e);\n break;\n case 86:\n onPaste(e);\n break;\n case 88:\n onCut(e);\n break;\n }\n }, host);\n }\n var onCompositionStart = function (e) {\n if (inComposition || !host.onCompositionStart || host.$readOnly)\n return;\n inComposition = {};\n if (commandMode)\n return;\n if (e.data)\n inComposition.useTextareaForIME = false;\n setTimeout(onCompositionUpdate, 0);\n host._signal(\"compositionStart\");\n host.on(\"mousedown\", cancelComposition);\n var range = host.getSelectionRange();\n range.end.row = range.start.row;\n range.end.column = range.start.column;\n inComposition.markerRange = range;\n inComposition.selectionStart = lastSelectionStart;\n host.onCompositionStart(inComposition);\n if (inComposition.useTextareaForIME) {\n lastValue = text.value = \"\";\n lastSelectionStart = 0;\n lastSelectionEnd = 0;\n }\n else {\n if (text.msGetInputContext)\n inComposition.context = text.msGetInputContext();\n if (text.getInputContext)\n inComposition.context = text.getInputContext();\n }\n };\n var onCompositionUpdate = function () {\n if (!inComposition || !host.onCompositionUpdate || host.$readOnly)\n return;\n if (commandMode)\n return cancelComposition();\n if (inComposition.useTextareaForIME) {\n host.onCompositionUpdate(text.value);\n }\n else {\n var data = text.value;\n sendText(data);\n if (inComposition.markerRange) {\n if (inComposition.context) {\n inComposition.markerRange.start.column = inComposition.selectionStart\n = inComposition.context.compositionStartOffset;\n }\n inComposition.markerRange.end.column = inComposition.markerRange.start.column\n + lastSelectionEnd - inComposition.selectionStart + lastRestoreEnd;\n }\n }\n };\n var onCompositionEnd = function (e) {\n if (!host.onCompositionEnd || host.$readOnly)\n return;\n inComposition = false;\n host.onCompositionEnd();\n host.off(\"mousedown\", cancelComposition);\n if (e)\n onInput();\n };\n function cancelComposition() {\n ignoreFocusEvents = true;\n text.blur();\n text.focus();\n ignoreFocusEvents = false;\n }\n var syncComposition = lang.delayedCall(onCompositionUpdate, 50).schedule.bind(null, null);\n function onKeyup(e) {\n if (e.keyCode == 27 && text.value.length < text.selectionStart) {\n if (!inComposition)\n lastValue = text.value;\n lastSelectionStart = lastSelectionEnd = -1;\n resetSelection();\n }\n syncComposition();\n }\n event.addListener(text, \"compositionstart\", onCompositionStart, host);\n event.addListener(text, \"compositionupdate\", onCompositionUpdate, host);\n event.addListener(text, \"keyup\", onKeyup, host);\n event.addListener(text, \"keydown\", syncComposition, host);\n event.addListener(text, \"compositionend\", onCompositionEnd, host);\n this.getElement = function () {\n return text;\n };\n this.setCommandMode = function (value) {\n commandMode = value;\n text.readOnly = false;\n };\n this.setReadOnly = function (readOnly) {\n if (!commandMode)\n text.readOnly = readOnly;\n };\n this.setCopyWithEmptySelection = function (value) {\n };\n this.onContextMenu = function (e) {\n afterContextMenu = true;\n resetSelection();\n host._emit(\"nativecontextmenu\", { target: host, domEvent: e });\n this.moveToMouse(e, true);\n };\n this.moveToMouse = function (e, bringToFront) {\n if (!tempStyle)\n tempStyle = text.style.cssText;\n text.style.cssText = (bringToFront ? \"z-index:100000;\" : \"\")\n + (useragent.isIE ? \"opacity:0.1;\" : \"\")\n + \"text-indent: -\" + (lastSelectionStart + lastSelectionEnd) * host.renderer.characterWidth * 0.5 + \"px;\";\n var rect = host.container.getBoundingClientRect();\n var style = dom.computedStyle(host.container);\n var top = rect.top + (parseInt(style.borderTopWidth) || 0);\n var left = rect.left + (parseInt(rect.borderLeftWidth) || 0);\n var maxTop = rect.bottom - top - text.clientHeight - 2;\n var move = function (e) {\n dom.translate(text, e.clientX - left - 2, Math.min(e.clientY - top - 2, maxTop));\n };\n move(e);\n if (e.type != \"mousedown\")\n return;\n host.renderer.$isMousePressed = true;\n clearTimeout(closeTimeout);\n if (useragent.isWin)\n event.capture(host.container, move, onContextMenuClose);\n };\n this.onContextMenuClose = onContextMenuClose;\n var closeTimeout;\n function onContextMenuClose() {\n clearTimeout(closeTimeout);\n closeTimeout = setTimeout(function () {\n if (tempStyle) {\n text.style.cssText = tempStyle;\n tempStyle = '';\n }\n host.renderer.$isMousePressed = false;\n if (host.renderer.$keepTextAreaAtCursor)\n host.renderer.$moveTextAreaToCursor();\n }, 0);\n }\n var onContextMenu = function (e) {\n host.textInput.onContextMenu(e);\n onContextMenuClose();\n };\n event.addListener(text, \"mouseup\", onContextMenu, host);\n event.addListener(text, \"mousedown\", function (e) {\n e.preventDefault();\n onContextMenuClose();\n }, host);\n event.addListener(host.renderer.scroller, \"contextmenu\", onContextMenu, host);\n event.addListener(text, \"contextmenu\", onContextMenu, host);\n if (isIOS)\n addIosSelectionHandler(parentNode, host, text);\n function addIosSelectionHandler(parentNode, host, text) {\n var typingResetTimeout = null;\n var typing = false;\n text.addEventListener(\"keydown\", function (e) {\n if (typingResetTimeout)\n clearTimeout(typingResetTimeout);\n typing = true;\n }, true);\n text.addEventListener(\"keyup\", function (e) {\n typingResetTimeout = setTimeout(function () {\n typing = false;\n }, 100);\n }, true);\n var detectArrowKeys = function (e) {\n if (document.activeElement !== text)\n return;\n if (typing || inComposition || host.$mouseHandler.isMousePressed)\n return;\n if (copied) {\n return;\n }\n var selectionStart = text.selectionStart;\n var selectionEnd = text.selectionEnd;\n var key = null;\n var modifier = 0;\n if (selectionStart == 0) {\n key = KEYS.up;\n }\n else if (selectionStart == 1) {\n key = KEYS.home;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue[selectionEnd] == \"\\n\") {\n key = KEYS.end;\n }\n else if (selectionStart < lastSelectionStart && lastValue[selectionStart - 1] == \" \") {\n key = KEYS.left;\n modifier = MODS.option;\n }\n else if (selectionStart < lastSelectionStart\n || (selectionStart == lastSelectionStart\n && lastSelectionEnd != lastSelectionStart\n && selectionStart == selectionEnd)) {\n key = KEYS.left;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue.slice(0, selectionEnd).split(\"\\n\").length > 2) {\n key = KEYS.down;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue[selectionEnd - 1] == \" \") {\n key = KEYS.right;\n modifier = MODS.option;\n }\n else if (selectionEnd > lastSelectionEnd\n || (selectionEnd == lastSelectionEnd\n && lastSelectionEnd != lastSelectionStart\n && selectionStart == selectionEnd)) {\n key = KEYS.right;\n }\n if (selectionStart !== selectionEnd)\n modifier |= MODS.shift;\n if (key) {\n var result = host.onCommandKey({}, modifier, key);\n if (!result && host.commands) {\n key = KEYS.keyCodeToString(key);\n var command = host.commands.findKeyCommand(modifier, key);\n if (command)\n host.execCommand(command);\n }\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n resetSelection(\"\");\n }\n };\n document.addEventListener(\"selectionchange\", detectArrowKeys);\n host.on(\"destroy\", function () {\n document.removeEventListener(\"selectionchange\", detectArrowKeys);\n });\n }\n this.destroy = function () {\n if (text.parentElement)\n text.parentElement.removeChild(text);\n };\n};\nexports.TextInput = TextInput;\nexports.$setUserAgentForTests = function (_isMobile, _isIOS) {\n isMobile = _isMobile;\n isIOS = _isIOS;\n};\n\n});\n\nace.define(\"ace/mouse/default_handlers\",[\"require\",\"exports\",\"module\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar useragent = require(\"../lib/useragent\");\nvar DRAG_OFFSET = 0; // pixels\nvar SCROLL_COOLDOWN_T = 550; // milliseconds\nvar DefaultHandlers = /** @class */ (function () {\n function DefaultHandlers(mouseHandler) {\n mouseHandler.$clickSelection = null;\n var editor = mouseHandler.editor;\n editor.setDefaultHandler(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n editor.setDefaultHandler(\"dblclick\", this.onDoubleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"tripleclick\", this.onTripleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"quadclick\", this.onQuadClick.bind(mouseHandler));\n editor.setDefaultHandler(\"mousewheel\", this.onMouseWheel.bind(mouseHandler));\n var exports = [\"select\", \"startSelect\", \"selectEnd\", \"selectAllEnd\", \"selectByWordsEnd\",\n \"selectByLinesEnd\", \"dragWait\", \"dragWaitEnd\", \"focusWait\"];\n exports.forEach(function (x) {\n mouseHandler[x] = this[x];\n }, this);\n mouseHandler.selectByLines = this.extendSelectionBy.bind(mouseHandler, \"getLineRange\");\n mouseHandler.selectByWords = this.extendSelectionBy.bind(mouseHandler, \"getWordRange\");\n }\n DefaultHandlers.prototype.onMouseDown = function (ev) {\n var inSelection = ev.inSelection();\n var pos = ev.getDocumentPosition();\n this.mousedownEvent = ev;\n var editor = this.editor;\n var button = ev.getButton();\n if (button !== 0) {\n var selectionRange = editor.getSelectionRange();\n var selectionEmpty = selectionRange.isEmpty();\n if (selectionEmpty || button == 1)\n editor.selection.moveToPosition(pos);\n if (button == 2) {\n editor.textInput.onContextMenu(ev.domEvent);\n if (!useragent.isMozilla)\n ev.preventDefault();\n }\n return;\n }\n this.mousedownEvent.time = Date.now();\n if (inSelection && !editor.isFocused()) {\n editor.focus();\n if (this.$focusTimeout && !this.$clickSelection && !editor.inMultiSelectMode) {\n this.setState(\"focusWait\");\n this.captureMouse(ev);\n return;\n }\n }\n this.captureMouse(ev);\n this.startSelect(pos, ev.domEvent._clicks > 1);\n return ev.preventDefault();\n };\n DefaultHandlers.prototype.startSelect = function (pos, waitForClickSelection) {\n pos = pos || this.editor.renderer.screenToTextCoordinates(this.x, this.y);\n var editor = this.editor;\n if (!this.mousedownEvent)\n return;\n if (this.mousedownEvent.getShiftKey())\n editor.selection.selectToPosition(pos);\n else if (!waitForClickSelection)\n editor.selection.moveToPosition(pos);\n if (!waitForClickSelection)\n this.select();\n editor.setStyle(\"ace_selecting\");\n this.setState(\"select\");\n };\n DefaultHandlers.prototype.select = function () {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n if (this.$clickSelection) {\n var cmp = this.$clickSelection.comparePoint(cursor);\n if (cmp == -1) {\n anchor = this.$clickSelection.end;\n }\n else if (cmp == 1) {\n anchor = this.$clickSelection.start;\n }\n else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n };\n DefaultHandlers.prototype.extendSelectionBy = function (unitName) {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n var range = editor.selection[unitName](cursor.row, cursor.column);\n if (this.$clickSelection) {\n var cmpStart = this.$clickSelection.comparePoint(range.start);\n var cmpEnd = this.$clickSelection.comparePoint(range.end);\n if (cmpStart == -1 && cmpEnd <= 0) {\n anchor = this.$clickSelection.end;\n if (range.end.row != cursor.row || range.end.column != cursor.column)\n cursor = range.start;\n }\n else if (cmpEnd == 1 && cmpStart >= 0) {\n anchor = this.$clickSelection.start;\n if (range.start.row != cursor.row || range.start.column != cursor.column)\n cursor = range.end;\n }\n else if (cmpStart == -1 && cmpEnd == 1) {\n cursor = range.end;\n anchor = range.start;\n }\n else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n };\n DefaultHandlers.prototype.selectByLinesEnd = function () {\n this.$clickSelection = null;\n this.editor.unsetStyle(\"ace_selecting\");\n };\n DefaultHandlers.prototype.focusWait = function () {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n var time = Date.now();\n if (distance > DRAG_OFFSET || time - this.mousedownEvent.time > this.$focusTimeout)\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n };\n DefaultHandlers.prototype.onDoubleClick = function (ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n var session = editor.session;\n var range = session.getBracketRange(pos);\n if (range) {\n if (range.isEmpty()) {\n range.start.column--;\n range.end.column++;\n }\n this.setState(\"select\");\n }\n else {\n range = editor.selection.getWordRange(pos.row, pos.column);\n this.setState(\"selectByWords\");\n }\n this.$clickSelection = range;\n this.select();\n };\n DefaultHandlers.prototype.onTripleClick = function (ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n this.setState(\"selectByLines\");\n var range = editor.getSelectionRange();\n if (range.isMultiLine() && range.contains(pos.row, pos.column)) {\n this.$clickSelection = editor.selection.getLineRange(range.start.row);\n this.$clickSelection.end = editor.selection.getLineRange(range.end.row).end;\n }\n else {\n this.$clickSelection = editor.selection.getLineRange(pos.row);\n }\n this.select();\n };\n DefaultHandlers.prototype.onQuadClick = function (ev) {\n var editor = this.editor;\n editor.selectAll();\n this.$clickSelection = editor.getSelectionRange();\n this.setState(\"selectAll\");\n };\n DefaultHandlers.prototype.onMouseWheel = function (ev) {\n if (ev.getAccelKey())\n return;\n if (ev.getShiftKey() && ev.wheelY && !ev.wheelX) {\n ev.wheelX = ev.wheelY;\n ev.wheelY = 0;\n }\n var editor = this.editor;\n if (!this.$lastScroll)\n this.$lastScroll = { t: 0, vx: 0, vy: 0, allowed: 0 };\n var prevScroll = this.$lastScroll;\n var t = ev.domEvent.timeStamp;\n var dt = t - prevScroll.t;\n var vx = dt ? ev.wheelX / dt : prevScroll.vx;\n var vy = dt ? ev.wheelY / dt : prevScroll.vy;\n if (dt < SCROLL_COOLDOWN_T) {\n vx = (vx + prevScroll.vx) / 2;\n vy = (vy + prevScroll.vy) / 2;\n }\n var direction = Math.abs(vx / vy);\n var canScroll = false;\n if (direction >= 1 && editor.renderer.isScrollableBy(ev.wheelX * ev.speed, 0))\n canScroll = true;\n if (direction <= 1 && editor.renderer.isScrollableBy(0, ev.wheelY * ev.speed))\n canScroll = true;\n if (canScroll) {\n prevScroll.allowed = t;\n }\n else if (t - prevScroll.allowed < SCROLL_COOLDOWN_T) {\n var isSlower = Math.abs(vx) <= 1.5 * Math.abs(prevScroll.vx)\n && Math.abs(vy) <= 1.5 * Math.abs(prevScroll.vy);\n if (isSlower) {\n canScroll = true;\n prevScroll.allowed = t;\n }\n else {\n prevScroll.allowed = 0;\n }\n }\n prevScroll.t = t;\n prevScroll.vx = vx;\n prevScroll.vy = vy;\n if (canScroll) {\n editor.renderer.scrollBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n return ev.stop();\n }\n };\n return DefaultHandlers;\n}());\nDefaultHandlers.prototype.selectEnd = DefaultHandlers.prototype.selectByLinesEnd;\nDefaultHandlers.prototype.selectAllEnd = DefaultHandlers.prototype.selectByLinesEnd;\nDefaultHandlers.prototype.selectByWordsEnd = DefaultHandlers.prototype.selectByLinesEnd;\nexports.DefaultHandlers = DefaultHandlers;\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\nfunction calcRangeOrientation(range, cursor) {\n if (range.start.row == range.end.row)\n var cmp = 2 * cursor.column - range.start.column - range.end.column;\n else if (range.start.row == range.end.row - 1 && !range.start.column && !range.end.column)\n var cmp = cursor.column - 4;\n else\n var cmp = 2 * cursor.row - range.start.row - range.end.row;\n if (cmp < 0)\n return { cursor: range.start, anchor: range.end };\n else\n return { cursor: range.end, anchor: range.start };\n}\n\n});\n\nace.define(\"ace/tooltip\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar Range = require(\"./range\").Range;\nvar CLASSNAME = \"ace_tooltip\";\nvar Tooltip = /** @class */ (function () {\n function Tooltip(parentNode) {\n this.isOpen = false;\n this.$element = null;\n this.$parentNode = parentNode;\n }\n Tooltip.prototype.$init = function () {\n this.$element = dom.createElement(\"div\");\n this.$element.className = CLASSNAME;\n this.$element.style.display = \"none\";\n this.$parentNode.appendChild(this.$element);\n return this.$element;\n };\n Tooltip.prototype.getElement = function () {\n return this.$element || this.$init();\n };\n Tooltip.prototype.setText = function (text) {\n this.getElement().textContent = text;\n };\n Tooltip.prototype.setHtml = function (html) {\n this.getElement().innerHTML = html;\n };\n Tooltip.prototype.setPosition = function (x, y) {\n this.getElement().style.left = x + \"px\";\n this.getElement().style.top = y + \"px\";\n };\n Tooltip.prototype.setClassName = function (className) {\n dom.addCssClass(this.getElement(), className);\n };\n Tooltip.prototype.setTheme = function (theme) {\n this.$element.className = CLASSNAME + \" \" +\n (theme.isDark ? \"ace_dark \" : \"\") + (theme.cssClass || \"\");\n };\n Tooltip.prototype.show = function (text, x, y) {\n if (text != null)\n this.setText(text);\n if (x != null && y != null)\n this.setPosition(x, y);\n if (!this.isOpen) {\n this.getElement().style.display = \"block\";\n this.isOpen = true;\n }\n };\n Tooltip.prototype.hide = function () {\n if (this.isOpen) {\n this.getElement().style.display = \"none\";\n this.getElement().className = CLASSNAME;\n this.isOpen = false;\n }\n };\n Tooltip.prototype.getHeight = function () {\n return this.getElement().offsetHeight;\n };\n Tooltip.prototype.getWidth = function () {\n return this.getElement().offsetWidth;\n };\n Tooltip.prototype.destroy = function () {\n this.isOpen = false;\n if (this.$element && this.$element.parentNode) {\n this.$element.parentNode.removeChild(this.$element);\n }\n };\n return Tooltip;\n}());\nvar PopupManager = /** @class */ (function () {\n function PopupManager() {\n this.popups = [];\n }\n PopupManager.prototype.addPopup = function (popup) {\n this.popups.push(popup);\n this.updatePopups();\n };\n PopupManager.prototype.removePopup = function (popup) {\n var index = this.popups.indexOf(popup);\n if (index !== -1) {\n this.popups.splice(index, 1);\n this.updatePopups();\n }\n };\n PopupManager.prototype.updatePopups = function () {\n var e_1, _a, e_2, _b;\n this.popups.sort(function (a, b) { return b.priority - a.priority; });\n var visiblepopups = [];\n try {\n for (var _c = __values(this.popups), _d = _c.next(); !_d.done; _d = _c.next()) {\n var popup = _d.value;\n var shouldDisplay = true;\n try {\n for (var visiblepopups_1 = (e_2 = void 0, __values(visiblepopups)), visiblepopups_1_1 = visiblepopups_1.next(); !visiblepopups_1_1.done; visiblepopups_1_1 = visiblepopups_1.next()) {\n var visiblePopup = visiblepopups_1_1.value;\n if (this.doPopupsOverlap(visiblePopup, popup)) {\n shouldDisplay = false;\n break;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (visiblepopups_1_1 && !visiblepopups_1_1.done && (_b = visiblepopups_1.return)) _b.call(visiblepopups_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (shouldDisplay) {\n visiblepopups.push(popup);\n }\n else {\n popup.hide();\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n PopupManager.prototype.doPopupsOverlap = function (popupA, popupB) {\n var rectA = popupA.getElement().getBoundingClientRect();\n var rectB = popupB.getElement().getBoundingClientRect();\n return (rectA.left < rectB.right && rectA.right > rectB.left && rectA.top < rectB.bottom && rectA.bottom\n > rectB.top);\n };\n return PopupManager;\n}());\nvar popupManager = new PopupManager();\nexports.popupManager = popupManager;\nexports.Tooltip = Tooltip;\nvar HoverTooltip = /** @class */ (function (_super) {\n __extends(HoverTooltip, _super);\n function HoverTooltip(parentNode) {\n if (parentNode === void 0) { parentNode = document.body; }\n var _this = _super.call(this, parentNode) || this;\n _this.timeout = undefined;\n _this.lastT = 0;\n _this.idleTime = 350;\n _this.lastEvent = undefined;\n _this.onMouseOut = _this.onMouseOut.bind(_this);\n _this.onMouseMove = _this.onMouseMove.bind(_this);\n _this.waitForHover = _this.waitForHover.bind(_this);\n _this.hide = _this.hide.bind(_this);\n var el = _this.getElement();\n el.style.whiteSpace = \"pre-wrap\";\n el.style.pointerEvents = \"auto\";\n el.addEventListener(\"mouseout\", _this.onMouseOut);\n el.tabIndex = -1;\n el.addEventListener(\"blur\", function () {\n if (!el.contains(document.activeElement))\n this.hide();\n }.bind(_this));\n el.addEventListener(\"wheel\", event.stopPropagation);\n return _this;\n }\n HoverTooltip.prototype.addToEditor = function (editor) {\n editor.on(\"mousemove\", this.onMouseMove);\n editor.on(\"mousedown\", this.hide);\n editor.renderer.getMouseEventTarget().addEventListener(\"mouseout\", this.onMouseOut, true);\n };\n HoverTooltip.prototype.removeFromEditor = function (editor) {\n editor.off(\"mousemove\", this.onMouseMove);\n editor.off(\"mousedown\", this.hide);\n editor.renderer.getMouseEventTarget().removeEventListener(\"mouseout\", this.onMouseOut, true);\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n };\n HoverTooltip.prototype.onMouseMove = function (e, editor) {\n this.lastEvent = e;\n this.lastT = Date.now();\n var isMousePressed = editor.$mouseHandler.isMousePressed;\n if (this.isOpen) {\n var pos = this.lastEvent && this.lastEvent.getDocumentPosition();\n if (!this.range\n || !this.range.contains(pos.row, pos.column)\n || isMousePressed\n || this.isOutsideOfText(this.lastEvent)) {\n this.hide();\n }\n }\n if (this.timeout || isMousePressed)\n return;\n this.lastEvent = e;\n this.timeout = setTimeout(this.waitForHover, this.idleTime);\n };\n HoverTooltip.prototype.waitForHover = function () {\n if (this.timeout)\n clearTimeout(this.timeout);\n var dt = Date.now() - this.lastT;\n if (this.idleTime - dt > 10) {\n this.timeout = setTimeout(this.waitForHover, this.idleTime - dt);\n return;\n }\n this.timeout = null;\n if (this.lastEvent && !this.isOutsideOfText(this.lastEvent)) {\n this.$gatherData(this.lastEvent, this.lastEvent.editor);\n }\n };\n HoverTooltip.prototype.isOutsideOfText = function (e) {\n var editor = e.editor;\n var docPos = e.getDocumentPosition();\n var line = editor.session.getLine(docPos.row);\n if (docPos.column == line.length) {\n var screenPos = editor.renderer.pixelToScreenCoordinates(e.clientX, e.clientY);\n var clippedPos = editor.session.documentToScreenPosition(docPos.row, docPos.column);\n if (clippedPos.column != screenPos.column\n || clippedPos.row != screenPos.row) {\n return true;\n }\n }\n return false;\n };\n HoverTooltip.prototype.setDataProvider = function (value) {\n this.$gatherData = value;\n };\n HoverTooltip.prototype.showForRange = function (editor, range, domNode, startingEvent) {\n var MARGIN = 10;\n if (startingEvent && startingEvent != this.lastEvent)\n return;\n if (this.isOpen && document.activeElement == this.getElement())\n return;\n var renderer = editor.renderer;\n if (!this.isOpen) {\n popupManager.addPopup(this);\n this.$registerCloseEvents();\n this.setTheme(renderer.theme);\n }\n this.isOpen = true;\n this.addMarker(range, editor.session);\n this.range = Range.fromPoints(range.start, range.end);\n var position = renderer.textToScreenCoordinates(range.start.row, range.start.column);\n var rect = renderer.scroller.getBoundingClientRect();\n if (position.pageX < rect.left)\n position.pageX = rect.left;\n var element = this.getElement();\n element.innerHTML = \"\";\n element.appendChild(domNode);\n element.style.maxHeight = \"\";\n element.style.display = \"block\";\n var labelHeight = element.clientHeight;\n var labelWidth = element.clientWidth;\n var spaceBelow = window.innerHeight - position.pageY - renderer.lineHeight;\n var isAbove = true;\n if (position.pageY - labelHeight < 0 && position.pageY < spaceBelow) {\n isAbove = false;\n }\n element.style.maxHeight = (isAbove ? position.pageY : spaceBelow) - MARGIN + \"px\";\n element.style.top = isAbove ? \"\" : position.pageY + renderer.lineHeight + \"px\";\n element.style.bottom = isAbove ? window.innerHeight - position.pageY + \"px\" : \"\";\n element.style.left = Math.min(position.pageX, window.innerWidth - labelWidth - MARGIN) + \"px\";\n };\n HoverTooltip.prototype.addMarker = function (range, session) {\n if (this.marker) {\n this.$markerSession.removeMarker(this.marker);\n }\n this.$markerSession = session;\n this.marker = session && session.addMarker(range, \"ace_highlight-marker\", \"text\");\n };\n HoverTooltip.prototype.hide = function (e) {\n if (!e && document.activeElement == this.getElement())\n return;\n if (e && e.target && (e.type != \"keydown\" || e.ctrlKey || e.metaKey) && this.$element.contains(e.target))\n return;\n this.lastEvent = null;\n if (this.timeout)\n clearTimeout(this.timeout);\n this.timeout = null;\n this.addMarker(null);\n if (this.isOpen) {\n this.$removeCloseEvents();\n this.getElement().style.display = \"none\";\n this.isOpen = false;\n popupManager.removePopup(this);\n }\n };\n HoverTooltip.prototype.$registerCloseEvents = function () {\n window.addEventListener(\"keydown\", this.hide, true);\n window.addEventListener(\"wheel\", this.hide, true);\n window.addEventListener(\"mousedown\", this.hide, true);\n };\n HoverTooltip.prototype.$removeCloseEvents = function () {\n window.removeEventListener(\"keydown\", this.hide, true);\n window.removeEventListener(\"wheel\", this.hide, true);\n window.removeEventListener(\"mousedown\", this.hide, true);\n };\n HoverTooltip.prototype.onMouseOut = function (e) {\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n this.lastEvent = null;\n if (!this.isOpen)\n return;\n if (!e.relatedTarget || this.getElement().contains(e.relatedTarget))\n return;\n if (e && e.currentTarget.contains(e.relatedTarget))\n return;\n if (!e.relatedTarget.classList.contains(\"ace_content\"))\n this.hide();\n };\n return HoverTooltip;\n}(Tooltip));\nexports.HoverTooltip = HoverTooltip;\n\n});\n\nace.define(\"ace/mouse/default_gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/tooltip\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar dom = require(\"../lib/dom\");\nvar event = require(\"../lib/event\");\nvar Tooltip = require(\"../tooltip\").Tooltip;\nvar nls = require(\"../config\").nls;\nfunction GutterHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var gutter = editor.renderer.$gutterLayer;\n var tooltip = new GutterTooltip(editor);\n mouseHandler.editor.setDefaultHandler(\"guttermousedown\", function (e) {\n if (!editor.isFocused() || e.getButton() != 0)\n return;\n var gutterRegion = gutter.getRegion(e);\n if (gutterRegion == \"foldWidgets\")\n return;\n var row = e.getDocumentPosition().row;\n var selection = editor.session.selection;\n if (e.getShiftKey())\n selection.selectTo(row, 0);\n else {\n if (e.domEvent.detail == 2) {\n editor.selectAll();\n return e.preventDefault();\n }\n mouseHandler.$clickSelection = editor.selection.getLineRange(row);\n }\n mouseHandler.setState(\"selectByLines\");\n mouseHandler.captureMouse(e);\n return e.preventDefault();\n });\n var tooltipTimeout, mouseEvent;\n function showTooltip() {\n var row = mouseEvent.getDocumentPosition().row;\n var maxRow = editor.session.getLength();\n if (row == maxRow) {\n var screenRow = editor.renderer.pixelToScreenCoordinates(0, mouseEvent.y).row;\n var pos = mouseEvent.$pos;\n if (screenRow > editor.session.documentToScreenRow(pos.row, pos.column))\n return hideTooltip();\n }\n tooltip.showTooltip(row);\n if (!tooltip.isOpen)\n return;\n editor.on(\"mousewheel\", hideTooltip);\n if (mouseHandler.$tooltipFollowsMouse) {\n moveTooltip(mouseEvent);\n }\n else {\n var gutterRow = mouseEvent.getGutterRow();\n var gutterCell = gutter.$lines.get(gutterRow);\n if (gutterCell) {\n var gutterElement = gutterCell.element.querySelector(\".ace_gutter_annotation\");\n var rect = gutterElement.getBoundingClientRect();\n var style = tooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n }\n else {\n moveTooltip(mouseEvent);\n }\n }\n }\n function hideTooltip() {\n if (tooltipTimeout)\n tooltipTimeout = clearTimeout(tooltipTimeout);\n if (tooltip.isOpen) {\n tooltip.hideTooltip();\n editor.off(\"mousewheel\", hideTooltip);\n }\n }\n function moveTooltip(e) {\n tooltip.setPosition(e.x, e.y);\n }\n mouseHandler.editor.setDefaultHandler(\"guttermousemove\", function (e) {\n var target = e.domEvent.target || e.domEvent.srcElement;\n if (dom.hasCssClass(target, \"ace_fold-widget\"))\n return hideTooltip();\n if (tooltip.isOpen && mouseHandler.$tooltipFollowsMouse)\n moveTooltip(e);\n mouseEvent = e;\n if (tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function () {\n tooltipTimeout = null;\n if (mouseEvent && !mouseHandler.isMousePressed)\n showTooltip();\n else\n hideTooltip();\n }, 50);\n });\n event.addListener(editor.renderer.$gutter, \"mouseout\", function (e) {\n mouseEvent = null;\n if (!tooltip.isOpen || tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function () {\n tooltipTimeout = null;\n hideTooltip();\n }, 50);\n }, editor);\n editor.on(\"changeSession\", hideTooltip);\n editor.on(\"input\", hideTooltip);\n}\nexports.GutterHandler = GutterHandler;\nvar GutterTooltip = /** @class */ (function (_super) {\n __extends(GutterTooltip, _super);\n function GutterTooltip(editor) {\n var _this = _super.call(this, editor.container) || this;\n _this.editor = editor;\n return _this;\n }\n GutterTooltip.prototype.setPosition = function (x, y) {\n var windowWidth = window.innerWidth || document.documentElement.clientWidth;\n var windowHeight = window.innerHeight || document.documentElement.clientHeight;\n var width = this.getWidth();\n var height = this.getHeight();\n x += 15;\n y += 15;\n if (x + width > windowWidth) {\n x -= (x + width) - windowWidth;\n }\n if (y + height > windowHeight) {\n y -= 20 + height;\n }\n Tooltip.prototype.setPosition.call(this, x, y);\n };\n Object.defineProperty(GutterTooltip, \"annotationLabels\", {\n get: function () {\n return {\n error: { singular: nls(\"error\"), plural: nls(\"errors\") },\n warning: { singular: nls(\"warning\"), plural: nls(\"warnings\") },\n info: { singular: nls(\"information message\"), plural: nls(\"information messages\") }\n };\n },\n enumerable: false,\n configurable: true\n });\n GutterTooltip.prototype.showTooltip = function (row) {\n var gutter = this.editor.renderer.$gutterLayer;\n var annotationsInRow = gutter.$annotations[row];\n var annotation;\n if (annotationsInRow)\n annotation = { text: Array.from(annotationsInRow.text), type: Array.from(annotationsInRow.type) };\n else\n annotation = { text: [], type: [] };\n var fold = gutter.session.getFoldLine(row);\n if (fold && gutter.$showFoldedAnnotations) {\n var annotationsInFold = { error: [], warning: [], info: [] };\n var mostSevereAnnotationInFoldType;\n for (var i = row + 1; i <= fold.end.row; i++) {\n if (!gutter.$annotations[i])\n continue;\n for (var j = 0; j < gutter.$annotations[i].text.length; j++) {\n var annotationType = gutter.$annotations[i].type[j];\n annotationsInFold[annotationType].push(gutter.$annotations[i].text[j]);\n if (annotationType === \"error\") {\n mostSevereAnnotationInFoldType = \"error_fold\";\n continue;\n }\n if (annotationType === \"warning\") {\n mostSevereAnnotationInFoldType = \"warning_fold\";\n continue;\n }\n }\n }\n if (mostSevereAnnotationInFoldType === \"error_fold\" || mostSevereAnnotationInFoldType === \"warning_fold\") {\n var summaryFoldedAnnotations = \"\".concat(GutterTooltip.annotationsToSummaryString(annotationsInFold), \" in folded code.\");\n annotation.text.push(summaryFoldedAnnotations);\n annotation.type.push(mostSevereAnnotationInFoldType);\n }\n }\n if (annotation.text.length === 0)\n return this.hide();\n var annotationMessages = { error: [], warning: [], info: [] };\n var iconClassName = gutter.$useSvgGutterIcons ? \"ace_icon_svg\" : \"ace_icon\";\n for (var i = 0; i < annotation.text.length; i++) {\n var line = \" \").concat(annotation.text[i]);\n annotationMessages[annotation.type[i].replace(\"_fold\", \"\")].push(line);\n }\n var tooltipContent = [].concat(annotationMessages.error, annotationMessages.warning, annotationMessages.info).join(\"
    \");\n this.setHtml(tooltipContent);\n this.$element.setAttribute(\"aria-live\", \"polite\");\n if (!this.isOpen) {\n this.setTheme(this.editor.renderer.theme);\n this.setClassName(\"ace_gutter-tooltip\");\n }\n this.show();\n this.editor._signal(\"showGutterTooltip\", this);\n };\n GutterTooltip.prototype.hideTooltip = function () {\n this.$element.removeAttribute(\"aria-live\");\n this.hide();\n this.editor._signal(\"hideGutterTooltip\", this);\n };\n GutterTooltip.annotationsToSummaryString = function (annotations) {\n var e_1, _a;\n var summary = [];\n var annotationTypes = ['error', 'warning', 'info'];\n try {\n for (var annotationTypes_1 = __values(annotationTypes), annotationTypes_1_1 = annotationTypes_1.next(); !annotationTypes_1_1.done; annotationTypes_1_1 = annotationTypes_1.next()) {\n var annotationType = annotationTypes_1_1.value;\n if (!annotations[annotationType].length)\n continue;\n var label = annotations[annotationType].length === 1 ? GutterTooltip.annotationLabels[annotationType].singular : GutterTooltip.annotationLabels[annotationType].plural;\n summary.push(\"\".concat(annotations[annotationType].length, \" \").concat(label));\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (annotationTypes_1_1 && !annotationTypes_1_1.done && (_a = annotationTypes_1.return)) _a.call(annotationTypes_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return summary.join(\", \");\n };\n return GutterTooltip;\n}(Tooltip));\nexports.GutterTooltip = GutterTooltip;\n\n});\n\nace.define(\"ace/mouse/mouse_event\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar MouseEvent = /** @class */ (function () {\n function MouseEvent(domEvent, editor) {\n this.domEvent = domEvent;\n this.editor = editor;\n this.x = this.clientX = domEvent.clientX;\n this.y = this.clientY = domEvent.clientY;\n this.$pos = null;\n this.$inSelection = null;\n this.propagationStopped = false;\n this.defaultPrevented = false;\n }\n MouseEvent.prototype.stopPropagation = function () {\n event.stopPropagation(this.domEvent);\n this.propagationStopped = true;\n };\n MouseEvent.prototype.preventDefault = function () {\n event.preventDefault(this.domEvent);\n this.defaultPrevented = true;\n };\n MouseEvent.prototype.stop = function () {\n this.stopPropagation();\n this.preventDefault();\n };\n MouseEvent.prototype.getDocumentPosition = function () {\n if (this.$pos)\n return this.$pos;\n this.$pos = this.editor.renderer.screenToTextCoordinates(this.clientX, this.clientY);\n return this.$pos;\n };\n MouseEvent.prototype.getGutterRow = function () {\n var documentRow = this.getDocumentPosition().row;\n var screenRow = this.editor.session.documentToScreenRow(documentRow, 0);\n var screenTopRow = this.editor.session.documentToScreenRow(this.editor.renderer.$gutterLayer.$lines.get(0).row, 0);\n return screenRow - screenTopRow;\n };\n MouseEvent.prototype.inSelection = function () {\n if (this.$inSelection !== null)\n return this.$inSelection;\n var editor = this.editor;\n var selectionRange = editor.getSelectionRange();\n if (selectionRange.isEmpty())\n this.$inSelection = false;\n else {\n var pos = this.getDocumentPosition();\n this.$inSelection = selectionRange.contains(pos.row, pos.column);\n }\n return this.$inSelection;\n };\n MouseEvent.prototype.getButton = function () {\n return event.getButton(this.domEvent);\n };\n MouseEvent.prototype.getShiftKey = function () {\n return this.domEvent.shiftKey;\n };\n MouseEvent.prototype.getAccelKey = function () {\n return useragent.isMac ? this.domEvent.metaKey : this.domEvent.ctrlKey;\n };\n return MouseEvent;\n}());\nexports.MouseEvent = MouseEvent;\n\n});\n\nace.define(\"ace/mouse/dragdrop_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar AUTOSCROLL_DELAY = 200;\nvar SCROLL_CURSOR_DELAY = 200;\nvar SCROLL_CURSOR_HYSTERESIS = 5;\nfunction DragdropHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var dragImage = dom.createElement(\"div\");\n dragImage.style.cssText = \"top:-100px;position:absolute;z-index:2147483647;opacity:0.5\";\n dragImage.textContent = \"\\xa0\";\n var exports = [\"dragWait\", \"dragWaitEnd\", \"startDrag\", \"dragReadyEnd\", \"onMouseDrag\"];\n exports.forEach(function (x) {\n mouseHandler[x] = this[x];\n }, this);\n editor.on(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n var mouseTarget = editor.container;\n var dragSelectionMarker, x, y;\n var timerId, range;\n var dragCursor, counter = 0;\n var dragOperation;\n var isInternal;\n var autoScrollStartTime;\n var cursorMovedTime;\n var cursorPointOnCaretMoved;\n this.onDragStart = function (e) {\n if (this.cancelDrag || !mouseTarget.draggable) {\n var self = this;\n setTimeout(function () {\n self.startSelect();\n self.captureMouse(e);\n }, 0);\n return e.preventDefault();\n }\n range = editor.getSelectionRange();\n var dataTransfer = e.dataTransfer;\n dataTransfer.effectAllowed = editor.getReadOnly() ? \"copy\" : \"copyMove\";\n editor.container.appendChild(dragImage);\n dataTransfer.setDragImage && dataTransfer.setDragImage(dragImage, 0, 0);\n setTimeout(function () {\n editor.container.removeChild(dragImage);\n });\n dataTransfer.clearData();\n dataTransfer.setData(\"Text\", editor.session.getTextRange());\n isInternal = true;\n this.setState(\"drag\");\n };\n this.onDragEnd = function (e) {\n mouseTarget.draggable = false;\n isInternal = false;\n this.setState(null);\n if (!editor.getReadOnly()) {\n var dropEffect = e.dataTransfer.dropEffect;\n if (!dragOperation && dropEffect == \"move\")\n editor.session.remove(editor.getSelectionRange());\n editor.$resetCursorStyle();\n }\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n };\n this.onDragEnter = function (e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker)\n addDragMarker();\n counter++;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n this.onDragOver = function (e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker) {\n addDragMarker();\n counter++;\n }\n if (onMouseMoveTimer !== null)\n onMouseMoveTimer = null;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n this.onDragLeave = function (e) {\n counter--;\n if (counter <= 0 && dragSelectionMarker) {\n clearDragMarker();\n dragOperation = null;\n return event.preventDefault(e);\n }\n };\n this.onDrop = function (e) {\n if (!dragCursor)\n return;\n var dataTransfer = e.dataTransfer;\n if (isInternal) {\n switch (dragOperation) {\n case \"move\":\n if (range.contains(dragCursor.row, dragCursor.column)) {\n range = {\n start: dragCursor,\n end: dragCursor\n };\n }\n else {\n range = editor.moveText(range, dragCursor);\n }\n break;\n case \"copy\":\n range = editor.moveText(range, dragCursor, true);\n break;\n }\n }\n else {\n var dropData = dataTransfer.getData('Text');\n range = {\n start: dragCursor,\n end: editor.session.insert(dragCursor, dropData)\n };\n editor.focus();\n dragOperation = null;\n }\n clearDragMarker();\n return event.preventDefault(e);\n };\n event.addListener(mouseTarget, \"dragstart\", this.onDragStart.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragend\", this.onDragEnd.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragenter\", this.onDragEnter.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragover\", this.onDragOver.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragleave\", this.onDragLeave.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"drop\", this.onDrop.bind(mouseHandler), editor);\n function scrollCursorIntoView(cursor, prevCursor) {\n var now = Date.now();\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n var hMovement = !prevCursor || cursor.column != prevCursor.column;\n if (!cursorMovedTime || vMovement || hMovement) {\n editor.moveCursorToPosition(cursor);\n cursorMovedTime = now;\n cursorPointOnCaretMoved = { x: x, y: y };\n }\n else {\n var distance = calcDistance(cursorPointOnCaretMoved.x, cursorPointOnCaretMoved.y, x, y);\n if (distance > SCROLL_CURSOR_HYSTERESIS) {\n cursorMovedTime = null;\n }\n else if (now - cursorMovedTime >= SCROLL_CURSOR_DELAY) {\n editor.renderer.scrollCursorIntoView();\n cursorMovedTime = null;\n }\n }\n }\n function autoScroll(cursor, prevCursor) {\n var now = Date.now();\n var lineHeight = editor.renderer.layerConfig.lineHeight;\n var characterWidth = editor.renderer.layerConfig.characterWidth;\n var editorRect = editor.renderer.scroller.getBoundingClientRect();\n var offsets = {\n x: {\n left: x - editorRect.left,\n right: editorRect.right - x\n },\n y: {\n top: y - editorRect.top,\n bottom: editorRect.bottom - y\n }\n };\n var nearestXOffset = Math.min(offsets.x.left, offsets.x.right);\n var nearestYOffset = Math.min(offsets.y.top, offsets.y.bottom);\n var scrollCursor = { row: cursor.row, column: cursor.column };\n if (nearestXOffset / characterWidth <= 2) {\n scrollCursor.column += (offsets.x.left < offsets.x.right ? -3 : +2);\n }\n if (nearestYOffset / lineHeight <= 1) {\n scrollCursor.row += (offsets.y.top < offsets.y.bottom ? -1 : +1);\n }\n var vScroll = cursor.row != scrollCursor.row;\n var hScroll = cursor.column != scrollCursor.column;\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n if (vScroll || (hScroll && !vMovement)) {\n if (!autoScrollStartTime)\n autoScrollStartTime = now;\n else if (now - autoScrollStartTime >= AUTOSCROLL_DELAY)\n editor.renderer.scrollCursorIntoView(scrollCursor);\n }\n else {\n autoScrollStartTime = null;\n }\n }\n function onDragInterval() {\n var prevCursor = dragCursor;\n dragCursor = editor.renderer.screenToTextCoordinates(x, y);\n scrollCursorIntoView(dragCursor, prevCursor);\n autoScroll(dragCursor, prevCursor);\n }\n function addDragMarker() {\n range = editor.selection.toOrientedRange();\n dragSelectionMarker = editor.session.addMarker(range, \"ace_selection\", editor.getSelectionStyle());\n editor.clearSelection();\n if (editor.isFocused())\n editor.renderer.$cursorLayer.setBlinking(false);\n clearInterval(timerId);\n onDragInterval();\n timerId = setInterval(onDragInterval, 20);\n counter = 0;\n event.addListener(document, \"mousemove\", onMouseMove);\n }\n function clearDragMarker() {\n clearInterval(timerId);\n editor.session.removeMarker(dragSelectionMarker);\n dragSelectionMarker = null;\n editor.selection.fromOrientedRange(range);\n if (editor.isFocused() && !isInternal)\n editor.$resetCursorStyle();\n range = null;\n dragCursor = null;\n counter = 0;\n autoScrollStartTime = null;\n cursorMovedTime = null;\n event.removeListener(document, \"mousemove\", onMouseMove);\n }\n var onMouseMoveTimer = null;\n function onMouseMove() {\n if (onMouseMoveTimer == null) {\n onMouseMoveTimer = setTimeout(function () {\n if (onMouseMoveTimer != null && dragSelectionMarker)\n clearDragMarker();\n }, 20);\n }\n }\n function canAccept(dataTransfer) {\n var types = dataTransfer.types;\n return !types || Array.prototype.some.call(types, function (type) {\n return type == 'text/plain' || type == 'Text';\n });\n }\n function getDropEffect(e) {\n var copyAllowed = ['copy', 'copymove', 'all', 'uninitialized'];\n var moveAllowed = ['move', 'copymove', 'linkmove', 'all', 'uninitialized'];\n var copyModifierState = useragent.isMac ? e.altKey : e.ctrlKey;\n var effectAllowed = \"uninitialized\";\n try {\n effectAllowed = e.dataTransfer.effectAllowed.toLowerCase();\n }\n catch (e) { }\n var dropEffect = \"none\";\n if (copyModifierState && copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n else if (moveAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"move\";\n else if (copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n return dropEffect;\n }\n}\n(function () {\n this.dragWait = function () {\n var interval = Date.now() - this.mousedownEvent.time;\n if (interval > this.editor.getDragDelay())\n this.startDrag();\n };\n this.dragWaitEnd = function () {\n var target = this.editor.container;\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n this.selectEnd();\n };\n this.dragReadyEnd = function (e) {\n this.editor.$resetCursorStyle();\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n this.dragWaitEnd();\n };\n this.startDrag = function () {\n this.cancelDrag = false;\n var editor = this.editor;\n var target = editor.container;\n target.draggable = true;\n editor.renderer.$cursorLayer.setBlinking(false);\n editor.setStyle(\"ace_dragging\");\n var cursorStyle = useragent.isWin ? \"default\" : \"move\";\n editor.renderer.setCursorStyle(cursorStyle);\n this.setState(\"dragReady\");\n };\n this.onMouseDrag = function (e) {\n var target = this.editor.container;\n if (useragent.isIE && this.state == \"dragReady\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 3)\n target.dragDrop();\n }\n if (this.state === \"dragWait\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 0) {\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n }\n }\n };\n this.onMouseDown = function (e) {\n if (!this.$dragEnabled)\n return;\n this.mousedownEvent = e;\n var editor = this.editor;\n var inSelection = e.inSelection();\n var button = e.getButton();\n var clickCount = e.domEvent.detail || 1;\n if (clickCount === 1 && button === 0 && inSelection) {\n if (e.editor.inMultiSelectMode && (e.getAccelKey() || e.getShiftKey()))\n return;\n this.mousedownEvent.time = Date.now();\n var eventTarget = e.domEvent.target || e.domEvent.srcElement;\n if (\"unselectable\" in eventTarget)\n eventTarget.unselectable = \"on\";\n if (editor.getDragDelay()) {\n if (useragent.isWebKit) {\n this.cancelDrag = true;\n var mouseTarget = editor.container;\n mouseTarget.draggable = true;\n }\n this.setState(\"dragWait\");\n }\n else {\n this.startDrag();\n }\n this.captureMouse(e, this.onMouseDrag.bind(this));\n e.defaultPrevented = true;\n }\n };\n}).call(DragdropHandler.prototype);\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\nexports.DragdropHandler = DragdropHandler;\n\n});\n\nace.define(\"ace/mouse/touch_handler\",[\"require\",\"exports\",\"module\",\"ace/mouse/mouse_event\",\"ace/lib/event\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar MouseEvent = require(\"./mouse_event\").MouseEvent;\nvar event = require(\"../lib/event\");\nvar dom = require(\"../lib/dom\");\nexports.addTouchListeners = function (el, editor) {\n var mode = \"scroll\";\n var startX;\n var startY;\n var touchStartT;\n var lastT;\n var longTouchTimer;\n var animationTimer;\n var animationSteps = 0;\n var pos;\n var clickCount = 0;\n var vX = 0;\n var vY = 0;\n var pressed;\n var contextMenu;\n function createContextMenu() {\n var clipboard = window.navigator && window.navigator.clipboard;\n var isOpen = false;\n var updateMenu = function () {\n var selected = editor.getCopyText();\n var hasUndo = editor.session.getUndoManager().hasUndo();\n contextMenu.replaceChild(dom.buildDom(isOpen ? [\"span\",\n !selected && [\"span\", { class: \"ace_mobile-button\", action: \"selectall\" }, \"Select All\"],\n selected && [\"span\", { class: \"ace_mobile-button\", action: \"copy\" }, \"Copy\"],\n selected && [\"span\", { class: \"ace_mobile-button\", action: \"cut\" }, \"Cut\"],\n clipboard && [\"span\", { class: \"ace_mobile-button\", action: \"paste\" }, \"Paste\"],\n hasUndo && [\"span\", { class: \"ace_mobile-button\", action: \"undo\" }, \"Undo\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"find\" }, \"Find\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"openCommandPalette\" }, \"Palette\"]\n ] : [\"span\"]), contextMenu.firstChild);\n };\n var handleClick = function (e) {\n var action = e.target.getAttribute(\"action\");\n if (action == \"more\" || !isOpen) {\n isOpen = !isOpen;\n return updateMenu();\n }\n if (action == \"paste\") {\n clipboard.readText().then(function (text) {\n editor.execCommand(action, text);\n });\n }\n else if (action) {\n if (action == \"cut\" || action == \"copy\") {\n if (clipboard)\n clipboard.writeText(editor.getCopyText());\n else\n document.execCommand(\"copy\");\n }\n editor.execCommand(action);\n }\n contextMenu.firstChild.style.display = \"none\";\n isOpen = false;\n if (action != \"openCommandPalette\")\n editor.focus();\n };\n contextMenu = dom.buildDom([\"div\",\n {\n class: \"ace_mobile-menu\",\n ontouchstart: function (e) {\n mode = \"menu\";\n e.stopPropagation();\n e.preventDefault();\n editor.textInput.focus();\n },\n ontouchend: function (e) {\n e.stopPropagation();\n e.preventDefault();\n handleClick(e);\n },\n onclick: handleClick\n },\n [\"span\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"more\" }, \"...\"]\n ], editor.container);\n }\n function showContextMenu() {\n if (!contextMenu)\n createContextMenu();\n var cursor = editor.selection.cursor;\n var pagePos = editor.renderer.textToScreenCoordinates(cursor.row, cursor.column);\n var leftOffset = editor.renderer.textToScreenCoordinates(0, 0).pageX;\n var scrollLeft = editor.renderer.scrollLeft;\n var rect = editor.container.getBoundingClientRect();\n contextMenu.style.top = pagePos.pageY - rect.top - 3 + \"px\";\n if (pagePos.pageX - rect.left < rect.width - 70) {\n contextMenu.style.left = \"\";\n contextMenu.style.right = \"10px\";\n }\n else {\n contextMenu.style.right = \"\";\n contextMenu.style.left = leftOffset + scrollLeft - rect.left + \"px\";\n }\n contextMenu.style.display = \"\";\n contextMenu.firstChild.style.display = \"none\";\n editor.on(\"input\", hideContextMenu);\n }\n function hideContextMenu(e) {\n if (contextMenu)\n contextMenu.style.display = \"none\";\n editor.off(\"input\", hideContextMenu);\n }\n function handleLongTap() {\n longTouchTimer = null;\n clearTimeout(longTouchTimer);\n var range = editor.selection.getRange();\n var inSelection = range.contains(pos.row, pos.column);\n if (range.isEmpty() || !inSelection) {\n editor.selection.moveToPosition(pos);\n editor.selection.selectWord();\n }\n mode = \"wait\";\n showContextMenu();\n }\n function switchToSelectionMode() {\n longTouchTimer = null;\n clearTimeout(longTouchTimer);\n editor.selection.moveToPosition(pos);\n var range = clickCount >= 2\n ? editor.selection.getLineRange(pos.row)\n : editor.session.getBracketRange(pos);\n if (range && !range.isEmpty()) {\n editor.selection.setRange(range);\n }\n else {\n editor.selection.selectWord();\n }\n mode = \"wait\";\n }\n event.addListener(el, \"contextmenu\", function (e) {\n if (!pressed)\n return;\n var textarea = editor.textInput.getElement();\n textarea.focus();\n }, editor);\n event.addListener(el, \"touchstart\", function (e) {\n var touches = e.touches;\n if (longTouchTimer || touches.length > 1) {\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n touchStartT = -1;\n mode = \"zoom\";\n return;\n }\n pressed = editor.$mouseHandler.isMousePressed = true;\n var h = editor.renderer.layerConfig.lineHeight;\n var w = editor.renderer.layerConfig.lineHeight;\n var t = e.timeStamp;\n lastT = t;\n var touchObj = touches[0];\n var x = touchObj.clientX;\n var y = touchObj.clientY;\n if (Math.abs(startX - x) + Math.abs(startY - y) > h)\n touchStartT = -1;\n startX = e.clientX = x;\n startY = e.clientY = y;\n vX = vY = 0;\n var ev = new MouseEvent(e, editor);\n pos = ev.getDocumentPosition();\n if (t - touchStartT < 500 && touches.length == 1 && !animationSteps) {\n clickCount++;\n e.preventDefault();\n e.button = 0;\n switchToSelectionMode();\n }\n else {\n clickCount = 0;\n var cursor = editor.selection.cursor;\n var anchor = editor.selection.isEmpty() ? cursor : editor.selection.anchor;\n var cursorPos = editor.renderer.$cursorLayer.getPixelPosition(cursor, true);\n var anchorPos = editor.renderer.$cursorLayer.getPixelPosition(anchor, true);\n var rect = editor.renderer.scroller.getBoundingClientRect();\n var offsetTop = editor.renderer.layerConfig.offset;\n var offsetLeft = editor.renderer.scrollLeft;\n var weightedDistance = function (x, y) {\n x = x / w;\n y = y / h - 0.75;\n return x * x + y * y;\n };\n if (e.clientX < rect.left) {\n mode = \"zoom\";\n return;\n }\n var diff1 = weightedDistance(e.clientX - rect.left - cursorPos.left + offsetLeft, e.clientY - rect.top - cursorPos.top + offsetTop);\n var diff2 = weightedDistance(e.clientX - rect.left - anchorPos.left + offsetLeft, e.clientY - rect.top - anchorPos.top + offsetTop);\n if (diff1 < 3.5 && diff2 < 3.5)\n mode = diff1 > diff2 ? \"cursor\" : \"anchor\";\n if (diff2 < 3.5)\n mode = \"anchor\";\n else if (diff1 < 3.5)\n mode = \"cursor\";\n else\n mode = \"scroll\";\n longTouchTimer = setTimeout(handleLongTap, 450);\n }\n touchStartT = t;\n }, editor);\n event.addListener(el, \"touchend\", function (e) {\n pressed = editor.$mouseHandler.isMousePressed = false;\n if (animationTimer)\n clearInterval(animationTimer);\n if (mode == \"zoom\") {\n mode = \"\";\n animationSteps = 0;\n }\n else if (longTouchTimer) {\n editor.selection.moveToPosition(pos);\n animationSteps = 0;\n showContextMenu();\n }\n else if (mode == \"scroll\") {\n animate();\n hideContextMenu();\n }\n else {\n showContextMenu();\n }\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n }, editor);\n event.addListener(el, \"touchmove\", function (e) {\n if (longTouchTimer) {\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n }\n var touches = e.touches;\n if (touches.length > 1 || mode == \"zoom\")\n return;\n var touchObj = touches[0];\n var wheelX = startX - touchObj.clientX;\n var wheelY = startY - touchObj.clientY;\n if (mode == \"wait\") {\n if (wheelX * wheelX + wheelY * wheelY > 4)\n mode = \"cursor\";\n else\n return e.preventDefault();\n }\n startX = touchObj.clientX;\n startY = touchObj.clientY;\n e.clientX = touchObj.clientX;\n e.clientY = touchObj.clientY;\n var t = e.timeStamp;\n var dt = t - lastT;\n lastT = t;\n if (mode == \"scroll\") {\n var mouseEvent = new MouseEvent(e, editor);\n mouseEvent.speed = 1;\n mouseEvent.wheelX = wheelX;\n mouseEvent.wheelY = wheelY;\n if (10 * Math.abs(wheelX) < Math.abs(wheelY))\n wheelX = 0;\n if (10 * Math.abs(wheelY) < Math.abs(wheelX))\n wheelY = 0;\n if (dt != 0) {\n vX = wheelX / dt;\n vY = wheelY / dt;\n }\n editor._emit(\"mousewheel\", mouseEvent);\n if (!mouseEvent.propagationStopped) {\n vX = vY = 0;\n }\n }\n else {\n var ev = new MouseEvent(e, editor);\n var pos = ev.getDocumentPosition();\n if (mode == \"cursor\")\n editor.selection.moveCursorToPosition(pos);\n else if (mode == \"anchor\")\n editor.selection.setSelectionAnchor(pos.row, pos.column);\n editor.renderer.scrollCursorIntoView(pos);\n e.preventDefault();\n }\n }, editor);\n function animate() {\n animationSteps += 60;\n animationTimer = setInterval(function () {\n if (animationSteps-- <= 0) {\n clearInterval(animationTimer);\n animationTimer = null;\n }\n if (Math.abs(vX) < 0.01)\n vX = 0;\n if (Math.abs(vY) < 0.01)\n vY = 0;\n if (animationSteps < 20)\n vX = 0.9 * vX;\n if (animationSteps < 20)\n vY = 0.9 * vY;\n var oldScrollTop = editor.session.getScrollTop();\n editor.renderer.scrollBy(10 * vX, 10 * vY);\n if (oldScrollTop == editor.session.getScrollTop())\n animationSteps = 0;\n }, 10);\n }\n};\n\n});\n\nace.define(\"ace/mouse/mouse_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/mouse/default_handlers\",\"ace/mouse/default_gutter_handler\",\"ace/mouse/mouse_event\",\"ace/mouse/dragdrop_handler\",\"ace/mouse/touch_handler\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar DefaultHandlers = require(\"./default_handlers\").DefaultHandlers;\nvar DefaultGutterHandler = require(\"./default_gutter_handler\").GutterHandler;\nvar MouseEvent = require(\"./mouse_event\").MouseEvent;\nvar DragdropHandler = require(\"./dragdrop_handler\").DragdropHandler;\nvar addTouchListeners = require(\"./touch_handler\").addTouchListeners;\nvar config = require(\"../config\");\nvar MouseHandler = /** @class */ (function () {\n function MouseHandler(editor) {\n var _self = this;\n this.editor = editor;\n new DefaultHandlers(this);\n new DefaultGutterHandler(this);\n new DragdropHandler(this);\n var focusEditor = function (e) {\n var windowBlurred = !document.hasFocus || !document.hasFocus()\n || !editor.isFocused() && document.activeElement == (editor.textInput && editor.textInput.getElement());\n if (windowBlurred)\n window.focus();\n editor.focus();\n setTimeout(function () {\n if (!editor.isFocused())\n editor.focus();\n });\n };\n var mouseTarget = editor.renderer.getMouseEventTarget();\n event.addListener(mouseTarget, \"click\", this.onMouseEvent.bind(this, \"click\"), editor);\n event.addListener(mouseTarget, \"mousemove\", this.onMouseMove.bind(this, \"mousemove\"), editor);\n event.addMultiMouseDownListener([\n mouseTarget,\n editor.renderer.scrollBarV && editor.renderer.scrollBarV.inner,\n editor.renderer.scrollBarH && editor.renderer.scrollBarH.inner,\n editor.textInput && editor.textInput.getElement()\n ].filter(Boolean), [400, 300, 250], this, \"onMouseEvent\", editor);\n event.addMouseWheelListener(editor.container, this.onMouseWheel.bind(this, \"mousewheel\"), editor);\n addTouchListeners(editor.container, editor);\n var gutterEl = editor.renderer.$gutter;\n event.addListener(gutterEl, \"mousedown\", this.onMouseEvent.bind(this, \"guttermousedown\"), editor);\n event.addListener(gutterEl, \"click\", this.onMouseEvent.bind(this, \"gutterclick\"), editor);\n event.addListener(gutterEl, \"dblclick\", this.onMouseEvent.bind(this, \"gutterdblclick\"), editor);\n event.addListener(gutterEl, \"mousemove\", this.onMouseEvent.bind(this, \"guttermousemove\"), editor);\n event.addListener(mouseTarget, \"mousedown\", focusEditor, editor);\n event.addListener(gutterEl, \"mousedown\", focusEditor, editor);\n if (useragent.isIE && editor.renderer.scrollBarV) {\n event.addListener(editor.renderer.scrollBarV.element, \"mousedown\", focusEditor, editor);\n event.addListener(editor.renderer.scrollBarH.element, \"mousedown\", focusEditor, editor);\n }\n editor.on(\"mousemove\", function (e) {\n if (_self.state || _self.$dragDelay || !_self.$dragEnabled)\n return;\n var character = editor.renderer.screenToTextCoordinates(e.x, e.y);\n var range = editor.session.selection.getRange();\n var renderer = editor.renderer;\n if (!range.isEmpty() && range.insideStart(character.row, character.column)) {\n renderer.setCursorStyle(\"default\");\n }\n else {\n renderer.setCursorStyle(\"\");\n }\n }, editor);\n }\n MouseHandler.prototype.onMouseEvent = function (name, e) {\n if (!this.editor.session)\n return;\n this.editor._emit(name, new MouseEvent(e, this.editor));\n };\n MouseHandler.prototype.onMouseMove = function (name, e) {\n var listeners = this.editor._eventRegistry && this.editor._eventRegistry.mousemove;\n if (!listeners || !listeners.length)\n return;\n this.editor._emit(name, new MouseEvent(e, this.editor));\n };\n MouseHandler.prototype.onMouseWheel = function (name, e) {\n var mouseEvent = new MouseEvent(e, this.editor);\n mouseEvent.speed = this.$scrollSpeed * 2;\n mouseEvent.wheelX = e.wheelX;\n mouseEvent.wheelY = e.wheelY;\n this.editor._emit(name, mouseEvent);\n };\n MouseHandler.prototype.setState = function (state) {\n this.state = state;\n };\n MouseHandler.prototype.captureMouse = function (ev, mouseMoveHandler) {\n this.x = ev.x;\n this.y = ev.y;\n this.isMousePressed = true;\n var editor = this.editor;\n var renderer = this.editor.renderer;\n renderer.$isMousePressed = true;\n var self = this;\n var onMouseMove = function (e) {\n if (!e)\n return;\n if (useragent.isWebKit && !e.which && self.releaseMouse)\n return self.releaseMouse();\n self.x = e.clientX;\n self.y = e.clientY;\n mouseMoveHandler && mouseMoveHandler(e);\n self.mouseEvent = new MouseEvent(e, self.editor);\n self.$mouseMoved = true;\n };\n var onCaptureEnd = function (e) {\n editor.off(\"beforeEndOperation\", onOperationEnd);\n clearInterval(timerId);\n if (editor.session)\n onCaptureInterval();\n self[self.state + \"End\"] && self[self.state + \"End\"](e);\n self.state = \"\";\n self.isMousePressed = renderer.$isMousePressed = false;\n if (renderer.$keepTextAreaAtCursor)\n renderer.$moveTextAreaToCursor();\n self.$onCaptureMouseMove = self.releaseMouse = null;\n e && self.onMouseEvent(\"mouseup\", e);\n editor.endOperation();\n };\n var onCaptureInterval = function () {\n self[self.state] && self[self.state]();\n self.$mouseMoved = false;\n };\n if (useragent.isOldIE && ev.domEvent.type == \"dblclick\") {\n return setTimeout(function () { onCaptureEnd(ev); });\n }\n var onOperationEnd = function (e) {\n if (!self.releaseMouse)\n return;\n if (editor.curOp.command.name && editor.curOp.selectionChanged) {\n self[self.state + \"End\"] && self[self.state + \"End\"]();\n self.state = \"\";\n self.releaseMouse();\n }\n };\n editor.on(\"beforeEndOperation\", onOperationEnd);\n editor.startOperation({ command: { name: \"mouse\" } });\n self.$onCaptureMouseMove = onMouseMove;\n self.releaseMouse = event.capture(this.editor.container, onMouseMove, onCaptureEnd);\n var timerId = setInterval(onCaptureInterval, 20);\n };\n MouseHandler.prototype.cancelContextMenu = function () {\n var stop = function (e) {\n if (e && e.domEvent && e.domEvent.type != \"contextmenu\")\n return;\n this.editor.off(\"nativecontextmenu\", stop);\n if (e && e.domEvent)\n event.stopEvent(e.domEvent);\n }.bind(this);\n setTimeout(stop, 10);\n this.editor.on(\"nativecontextmenu\", stop);\n };\n MouseHandler.prototype.destroy = function () {\n if (this.releaseMouse)\n this.releaseMouse();\n };\n return MouseHandler;\n}());\nMouseHandler.prototype.releaseMouse = null;\nconfig.defineOptions(MouseHandler.prototype, \"mouseHandler\", {\n scrollSpeed: { initialValue: 2 },\n dragDelay: { initialValue: (useragent.isMac ? 150 : 0) },\n dragEnabled: { initialValue: true },\n focusTimeout: { initialValue: 0 },\n tooltipFollowsMouse: { initialValue: true }\n});\nexports.MouseHandler = MouseHandler;\n\n});\n\nace.define(\"ace/mouse/fold_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar FoldHandler = /** @class */ (function () {\n function FoldHandler(editor) {\n editor.on(\"click\", function (e) {\n var position = e.getDocumentPosition();\n var session = editor.session;\n var fold = session.getFoldAt(position.row, position.column, 1);\n if (fold) {\n if (e.getAccelKey())\n session.removeFold(fold);\n else\n session.expandFold(fold);\n e.stop();\n }\n var target = e.domEvent && e.domEvent.target;\n if (target && dom.hasCssClass(target, \"ace_inline_button\")) {\n if (dom.hasCssClass(target, \"ace_toggle_wrap\")) {\n session.setOption(\"wrap\", !session.getUseWrapMode());\n editor.renderer.scrollCursorIntoView();\n }\n }\n });\n editor.on(\"gutterclick\", function (e) {\n var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n if (gutterRegion == \"foldWidgets\") {\n var row = e.getDocumentPosition().row;\n var session = editor.session;\n if (session.foldWidgets && session.foldWidgets[row])\n editor.session.onFoldWidgetClick(row, e);\n if (!editor.isFocused())\n editor.focus();\n e.stop();\n }\n });\n editor.on(\"gutterdblclick\", function (e) {\n var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n if (gutterRegion == \"foldWidgets\") {\n var row = e.getDocumentPosition().row;\n var session = editor.session;\n var data = session.getParentFoldRangeData(row, true);\n var range = data.range || data.firstRange;\n if (range) {\n row = range.start.row;\n var fold = session.getFoldAt(row, session.getLine(row).length, 1);\n if (fold) {\n session.removeFold(fold);\n }\n else {\n session.addFold(\"...\", range);\n editor.renderer.scrollCursorIntoView({ row: range.start.row, column: 0 });\n }\n }\n e.stop();\n }\n });\n }\n return FoldHandler;\n}());\nexports.FoldHandler = FoldHandler;\n\n});\n\nace.define(\"ace/keyboard/keybinding\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/event\"], function(require, exports, module){\"use strict\";\nvar keyUtil = require(\"../lib/keys\");\nvar event = require(\"../lib/event\");\nvar KeyBinding = /** @class */ (function () {\n function KeyBinding(editor) {\n this.$editor = editor;\n this.$data = { editor: editor };\n this.$handlers = [];\n this.setDefaultHandler(editor.commands);\n }\n KeyBinding.prototype.setDefaultHandler = function (kb) {\n this.removeKeyboardHandler(this.$defaultHandler);\n this.$defaultHandler = kb;\n this.addKeyboardHandler(kb, 0);\n };\n KeyBinding.prototype.setKeyboardHandler = function (kb) {\n var h = this.$handlers;\n if (h[h.length - 1] == kb)\n return;\n while (h[h.length - 1] && h[h.length - 1] != this.$defaultHandler)\n this.removeKeyboardHandler(h[h.length - 1]);\n this.addKeyboardHandler(kb, 1);\n };\n KeyBinding.prototype.addKeyboardHandler = function (kb, pos) {\n if (!kb)\n return;\n if (typeof kb == \"function\" && !kb.handleKeyboard)\n kb.handleKeyboard = kb;\n var i = this.$handlers.indexOf(kb);\n if (i != -1)\n this.$handlers.splice(i, 1);\n if (pos == undefined)\n this.$handlers.push(kb);\n else\n this.$handlers.splice(pos, 0, kb);\n if (i == -1 && kb.attach)\n kb.attach(this.$editor);\n };\n KeyBinding.prototype.removeKeyboardHandler = function (kb) {\n var i = this.$handlers.indexOf(kb);\n if (i == -1)\n return false;\n this.$handlers.splice(i, 1);\n kb.detach && kb.detach(this.$editor);\n return true;\n };\n KeyBinding.prototype.getKeyboardHandler = function () {\n return this.$handlers[this.$handlers.length - 1];\n };\n KeyBinding.prototype.getStatusText = function () {\n var data = this.$data;\n var editor = data.editor;\n return this.$handlers.map(function (h) {\n return h.getStatusText && h.getStatusText(editor, data) || \"\";\n }).filter(Boolean).join(\" \");\n };\n KeyBinding.prototype.$callKeyboardHandlers = function (hashId, keyString, keyCode, e) {\n var toExecute;\n var success = false;\n var commands = this.$editor.commands;\n for (var i = this.$handlers.length; i--;) {\n toExecute = this.$handlers[i].handleKeyboard(this.$data, hashId, keyString, keyCode, e);\n if (!toExecute || !toExecute.command)\n continue;\n if (toExecute.command == \"null\") {\n success = true;\n }\n else {\n success = commands.exec(toExecute.command, this.$editor, toExecute.args, e);\n }\n if (success && e && hashId != -1 &&\n toExecute.passEvent != true && toExecute.command.passEvent != true) {\n event.stopEvent(e);\n }\n if (success)\n break;\n }\n if (!success && hashId == -1) {\n toExecute = { command: \"insertstring\" };\n success = commands.exec(\"insertstring\", this.$editor, keyString);\n }\n if (success && this.$editor._signal)\n this.$editor._signal(\"keyboardActivity\", toExecute);\n return success;\n };\n KeyBinding.prototype.onCommandKey = function (e, hashId, keyCode) {\n var keyString = keyUtil.keyCodeToString(keyCode);\n return this.$callKeyboardHandlers(hashId, keyString, keyCode, e);\n };\n KeyBinding.prototype.onTextInput = function (text) {\n return this.$callKeyboardHandlers(-1, text);\n };\n return KeyBinding;\n}());\nexports.KeyBinding = KeyBinding;\n\n});\n\nace.define(\"ace/lib/bidiutil\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar ArabicAlefBetIntervalsBegine = ['\\u0621', '\\u0641'];\nvar ArabicAlefBetIntervalsEnd = ['\\u063A', '\\u064a'];\nvar dir = 0, hiLevel = 0;\nvar lastArabic = false, hasUBAT_AL = false, hasUBAT_B = false, hasUBAT_S = false, hasBlockSep = false, hasSegSep = false;\nvar impTab_LTR = [ [0, 3, 0, 1, 0, 0, 0], [0, 3, 0, 1, 2, 2, 0], [0, 3, 0, 0x11, 2, 0, 1], [0, 3, 5, 5, 4, 1, 0], [0, 3, 0x15, 0x15, 4, 0, 1], [0, 3, 5, 5, 4, 2, 0]\n];\nvar impTab_RTL = [ [2, 0, 1, 1, 0, 1, 0], [2, 0, 1, 1, 0, 2, 0], [2, 0, 2, 1, 3, 2, 0], [2, 0, 2, 0x21, 3, 1, 1]\n];\nvar LTR = 0, RTL = 1;\nvar L = 0;\nvar R = 1;\nvar EN = 2;\nvar AN = 3;\nvar ON = 4;\nvar B = 5;\nvar S = 6;\nvar AL = 7;\nvar WS = 8;\nvar CS = 9;\nvar ES = 10;\nvar ET = 11;\nvar NSM = 12;\nvar LRE = 13;\nvar RLE = 14;\nvar PDF = 15;\nvar LRO = 16;\nvar RLO = 17;\nvar BN = 18;\nvar UnicodeTBL00 = [\n BN, BN, BN, BN, BN, BN, BN, BN, BN, S, B, S, WS, B, BN, BN,\n BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, B, B, B, S,\n WS, ON, ON, ET, ET, ET, ON, ON, ON, ON, ON, ES, CS, ES, CS, CS,\n EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, CS, ON, ON, ON, ON, ON,\n ON, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L,\n L, L, L, L, L, L, L, L, L, L, L, ON, ON, ON, ON, ON,\n ON, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L,\n L, L, L, L, L, L, L, L, L, L, L, ON, ON, ON, ON, BN,\n BN, BN, BN, BN, BN, B, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,\n BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,\n CS, ON, ET, ET, ET, ET, ON, ON, ON, ON, L, ON, ON, BN, ON, ON,\n ET, ET, EN, EN, ON, L, ON, ON, ON, EN, L, ON, ON, ON, ON, ON\n];\nvar UnicodeTBL20 = [\n WS, WS, WS, WS, WS, WS, WS, WS, WS, WS, WS, BN, BN, BN, L, R,\n ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, ON, ON, ON, ON, WS, B, LRE, RLE, PDF, LRO, RLO, CS,\n ET, ET, ET, ET, ET, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, CS, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, WS\n];\nfunction _computeLevels(chars, levels, len, charTypes) {\n var impTab = dir ? impTab_RTL : impTab_LTR, prevState = null, newClass = null, newLevel = null, newState = 0, action = null, cond = null, condPos = -1, i = null, ix = null, classes = [];\n if (!charTypes) {\n for (i = 0, charTypes = []; i < len; i++) {\n charTypes[i] = _getCharacterType(chars[i]);\n }\n }\n hiLevel = dir;\n lastArabic = false;\n hasUBAT_AL = false;\n hasUBAT_B = false;\n hasUBAT_S = false;\n for (ix = 0; ix < len; ix++) {\n prevState = newState;\n classes[ix] = newClass = _getCharClass(chars, charTypes, classes, ix);\n newState = impTab[prevState][newClass];\n action = newState & 0xF0;\n newState &= 0x0F;\n levels[ix] = newLevel = impTab[newState][5];\n if (action > 0) {\n if (action == 0x10) {\n for (i = condPos; i < ix; i++) {\n levels[i] = 1;\n }\n condPos = -1;\n }\n else {\n condPos = -1;\n }\n }\n cond = impTab[newState][6];\n if (cond) {\n if (condPos == -1) {\n condPos = ix;\n }\n }\n else {\n if (condPos > -1) {\n for (i = condPos; i < ix; i++) {\n levels[i] = newLevel;\n }\n condPos = -1;\n }\n }\n if (charTypes[ix] == B) {\n levels[ix] = 0;\n }\n hiLevel |= newLevel;\n }\n if (hasUBAT_S) {\n for (i = 0; i < len; i++) {\n if (charTypes[i] == S) {\n levels[i] = dir;\n for (var j = i - 1; j >= 0; j--) {\n if (charTypes[j] == WS) {\n levels[j] = dir;\n }\n else {\n break;\n }\n }\n }\n }\n }\n}\nfunction _invertLevel(lev, levels, _array) {\n if (hiLevel < lev) {\n return;\n }\n if (lev == 1 && dir == RTL && !hasUBAT_B) {\n _array.reverse();\n return;\n }\n var len = _array.length, start = 0, end, lo, hi, tmp;\n while (start < len) {\n if (levels[start] >= lev) {\n end = start + 1;\n while (end < len && levels[end] >= lev) {\n end++;\n }\n for (lo = start, hi = end - 1; lo < hi; lo++, hi--) {\n tmp = _array[lo];\n _array[lo] = _array[hi];\n _array[hi] = tmp;\n }\n start = end;\n }\n start++;\n }\n}\nfunction _getCharClass(chars, types, classes, ix) {\n var cType = types[ix], wType, nType, len, i;\n switch (cType) {\n case L:\n case R:\n lastArabic = false;\n case ON:\n case AN:\n return cType;\n case EN:\n return lastArabic ? AN : EN;\n case AL:\n lastArabic = true;\n hasUBAT_AL = true;\n return R;\n case WS:\n return ON;\n case CS:\n if (ix < 1 || (ix + 1) >= types.length ||\n ((wType = classes[ix - 1]) != EN && wType != AN) ||\n ((nType = types[ix + 1]) != EN && nType != AN)) {\n return ON;\n }\n if (lastArabic) {\n nType = AN;\n }\n return nType == wType ? nType : ON;\n case ES:\n wType = ix > 0 ? classes[ix - 1] : B;\n if (wType == EN && (ix + 1) < types.length && types[ix + 1] == EN) {\n return EN;\n }\n return ON;\n case ET:\n if (ix > 0 && classes[ix - 1] == EN) {\n return EN;\n }\n if (lastArabic) {\n return ON;\n }\n i = ix + 1;\n len = types.length;\n while (i < len && types[i] == ET) {\n i++;\n }\n if (i < len && types[i] == EN) {\n return EN;\n }\n return ON;\n case NSM:\n len = types.length;\n i = ix + 1;\n while (i < len && types[i] == NSM) {\n i++;\n }\n if (i < len) {\n var c = chars[ix], rtlCandidate = (c >= 0x0591 && c <= 0x08FF) || c == 0xFB1E;\n wType = types[i];\n if (rtlCandidate && (wType == R || wType == AL)) {\n return R;\n }\n }\n if (ix < 1 || (wType = types[ix - 1]) == B) {\n return ON;\n }\n return classes[ix - 1];\n case B:\n lastArabic = false;\n hasUBAT_B = true;\n return dir;\n case S:\n hasUBAT_S = true;\n return ON;\n case LRE:\n case RLE:\n case LRO:\n case RLO:\n case PDF:\n lastArabic = false;\n case BN:\n return ON;\n }\n}\nfunction _getCharacterType(ch) {\n var uc = ch.charCodeAt(0), hi = uc >> 8;\n if (hi == 0) {\n return ((uc > 0x00BF) ? L : UnicodeTBL00[uc]);\n }\n else if (hi == 5) {\n return (/[\\u0591-\\u05f4]/.test(ch) ? R : L);\n }\n else if (hi == 6) {\n if (/[\\u0610-\\u061a\\u064b-\\u065f\\u06d6-\\u06e4\\u06e7-\\u06ed]/.test(ch))\n return NSM;\n else if (/[\\u0660-\\u0669\\u066b-\\u066c]/.test(ch))\n return AN;\n else if (uc == 0x066A)\n return ET;\n else if (/[\\u06f0-\\u06f9]/.test(ch))\n return EN;\n else\n return AL;\n }\n else if (hi == 0x20 && uc <= 0x205F) {\n return UnicodeTBL20[uc & 0xFF];\n }\n else if (hi == 0xFE) {\n return (uc >= 0xFE70 ? AL : ON);\n }\n return ON;\n}\nfunction _isArabicDiacritics(ch) {\n return (ch >= '\\u064b' && ch <= '\\u0655');\n}\nexports.L = L;\nexports.R = R;\nexports.EN = EN;\nexports.ON_R = 3;\nexports.AN = 4;\nexports.R_H = 5;\nexports.B = 6;\nexports.RLE = 7;\nexports.DOT = \"\\xB7\";\nexports.doBidiReorder = function (text, textCharTypes, isRtl) {\n if (text.length < 2)\n return {};\n var chars = text.split(\"\"), logicalFromVisual = new Array(chars.length), bidiLevels = new Array(chars.length), levels = [];\n dir = isRtl ? RTL : LTR;\n _computeLevels(chars, levels, chars.length, textCharTypes);\n for (var i = 0; i < logicalFromVisual.length; logicalFromVisual[i] = i, i++)\n ;\n _invertLevel(2, levels, logicalFromVisual);\n _invertLevel(1, levels, logicalFromVisual);\n for (var i = 0; i < logicalFromVisual.length - 1; i++) { //fix levels to reflect character width\n if (textCharTypes[i] === AN) {\n levels[i] = exports.AN;\n }\n else if (levels[i] === R && ((textCharTypes[i] > AL && textCharTypes[i] < LRE)\n || textCharTypes[i] === ON || textCharTypes[i] === BN)) {\n levels[i] = exports.ON_R;\n }\n else if ((i > 0 && chars[i - 1] === '\\u0644') && /\\u0622|\\u0623|\\u0625|\\u0627/.test(chars[i])) {\n levels[i - 1] = levels[i] = exports.R_H;\n i++;\n }\n }\n if (chars[chars.length - 1] === exports.DOT)\n levels[chars.length - 1] = exports.B;\n if (chars[0] === '\\u202B')\n levels[0] = exports.RLE;\n for (var i = 0; i < logicalFromVisual.length; i++) {\n bidiLevels[i] = levels[logicalFromVisual[i]];\n }\n return { 'logicalFromVisual': logicalFromVisual, 'bidiLevels': bidiLevels };\n};\nexports.hasBidiCharacters = function (text, textCharTypes) {\n var ret = false;\n for (var i = 0; i < text.length; i++) {\n textCharTypes[i] = _getCharacterType(text.charAt(i));\n if (!ret && (textCharTypes[i] == R || textCharTypes[i] == AL || textCharTypes[i] == AN))\n ret = true;\n }\n return ret;\n};\nexports.getVisualFromLogicalIdx = function (logIdx, rowMap) {\n for (var i = 0; i < rowMap.logicalFromVisual.length; i++) {\n if (rowMap.logicalFromVisual[i] == logIdx)\n return i;\n }\n return 0;\n};\n\n});\n\nace.define(\"ace/bidihandler\",[\"require\",\"exports\",\"module\",\"ace/lib/bidiutil\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar bidiUtil = require(\"./lib/bidiutil\");\nvar lang = require(\"./lib/lang\");\nvar bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac\\u202B]/;\nvar BidiHandler = /** @class */ (function () {\n function BidiHandler(session) {\n this.session = session;\n this.bidiMap = {};\n this.currentRow = null;\n this.bidiUtil = bidiUtil;\n this.charWidths = [];\n this.EOL = \"\\xAC\";\n this.showInvisibles = true;\n this.isRtlDir = false;\n this.$isRtl = false;\n this.line = \"\";\n this.wrapIndent = 0;\n this.EOF = \"\\xB6\";\n this.RLE = \"\\u202B\";\n this.contentWidth = 0;\n this.fontMetrics = null;\n this.rtlLineOffset = 0;\n this.wrapOffset = 0;\n this.isMoveLeftOperation = false;\n this.seenBidi = bidiRE.test(session.getValue());\n }\n BidiHandler.prototype.isBidiRow = function (screenRow, docRow, splitIndex) {\n if (!this.seenBidi)\n return false;\n if (screenRow !== this.currentRow) {\n this.currentRow = screenRow;\n this.updateRowLine(docRow, splitIndex);\n this.updateBidiMap();\n }\n return this.bidiMap.bidiLevels;\n };\n BidiHandler.prototype.onChange = function (delta) {\n if (!this.seenBidi) {\n if (delta.action == \"insert\" && bidiRE.test(delta.lines.join(\"\\n\"))) {\n this.seenBidi = true;\n this.currentRow = null;\n }\n }\n else {\n this.currentRow = null;\n }\n };\n BidiHandler.prototype.getDocumentRow = function () {\n var docRow = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var index = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n if (index >= 0)\n docRow = this.session.$docRowCache[index];\n }\n return docRow;\n };\n BidiHandler.prototype.getSplitIndex = function () {\n var splitIndex = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var currentIndex, prevIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n while (this.currentRow - splitIndex > 0) {\n currentIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow - splitIndex - 1);\n if (currentIndex !== prevIndex)\n break;\n prevIndex = currentIndex;\n splitIndex++;\n }\n }\n else {\n splitIndex = this.currentRow;\n }\n return splitIndex;\n };\n BidiHandler.prototype.updateRowLine = function (docRow, splitIndex) {\n if (docRow === undefined)\n docRow = this.getDocumentRow();\n var isLastRow = (docRow === this.session.getLength() - 1), endOfLine = isLastRow ? this.EOF : this.EOL;\n this.wrapIndent = 0;\n this.line = this.session.getLine(docRow);\n this.isRtlDir = this.$isRtl || this.line.charAt(0) === this.RLE;\n if (this.session.$useWrapMode) {\n var splits = this.session.$wrapData[docRow];\n if (splits) {\n if (splitIndex === undefined)\n splitIndex = this.getSplitIndex();\n if (splitIndex > 0 && splits.length) {\n this.wrapIndent = splits.indent;\n this.wrapOffset = this.wrapIndent * this.charWidths[bidiUtil.L];\n this.line = (splitIndex < splits.length) ?\n this.line.substring(splits[splitIndex - 1], splits[splitIndex]) :\n this.line.substring(splits[splits.length - 1]);\n }\n else {\n this.line = this.line.substring(0, splits[splitIndex]);\n }\n if (splitIndex == splits.length) {\n this.line += (this.showInvisibles) ? endOfLine : bidiUtil.DOT;\n }\n }\n }\n else {\n this.line += this.showInvisibles ? endOfLine : bidiUtil.DOT;\n }\n var session = this.session, shift = 0, size;\n this.line = this.line.replace(/\\t|[\\u1100-\\u2029, \\u202F-\\uFFE6]/g, function (ch, i) {\n if (ch === '\\t' || session.isFullWidth(ch.charCodeAt(0))) {\n size = (ch === '\\t') ? session.getScreenTabSize(i + shift) : 2;\n shift += size - 1;\n return lang.stringRepeat(bidiUtil.DOT, size);\n }\n return ch;\n });\n if (this.isRtlDir) {\n this.fontMetrics.$main.textContent = (this.line.charAt(this.line.length - 1) == bidiUtil.DOT) ? this.line.substr(0, this.line.length - 1) : this.line;\n this.rtlLineOffset = this.contentWidth - this.fontMetrics.$main.getBoundingClientRect().width;\n }\n };\n BidiHandler.prototype.updateBidiMap = function () {\n var textCharTypes = [];\n if (bidiUtil.hasBidiCharacters(this.line, textCharTypes) || this.isRtlDir) {\n this.bidiMap = bidiUtil.doBidiReorder(this.line, textCharTypes, this.isRtlDir);\n }\n else {\n this.bidiMap = {};\n }\n };\n BidiHandler.prototype.markAsDirty = function () {\n this.currentRow = null;\n };\n BidiHandler.prototype.updateCharacterWidths = function (fontMetrics) {\n if (this.characterWidth === fontMetrics.$characterSize.width)\n return;\n this.fontMetrics = fontMetrics;\n var characterWidth = this.characterWidth = fontMetrics.$characterSize.width;\n var bidiCharWidth = fontMetrics.$measureCharWidth(\"\\u05d4\");\n this.charWidths[bidiUtil.L] = this.charWidths[bidiUtil.EN] = this.charWidths[bidiUtil.ON_R] = characterWidth;\n this.charWidths[bidiUtil.R] = this.charWidths[bidiUtil.AN] = bidiCharWidth;\n this.charWidths[bidiUtil.R_H] = bidiCharWidth * 0.45;\n this.charWidths[bidiUtil.B] = this.charWidths[bidiUtil.RLE] = 0;\n this.currentRow = null;\n };\n BidiHandler.prototype.setShowInvisibles = function (showInvisibles) {\n this.showInvisibles = showInvisibles;\n this.currentRow = null;\n };\n BidiHandler.prototype.setEolChar = function (eolChar) {\n this.EOL = eolChar;\n };\n BidiHandler.prototype.setContentWidth = function (width) {\n this.contentWidth = width;\n };\n BidiHandler.prototype.isRtlLine = function (row) {\n if (this.$isRtl)\n return true;\n if (row != undefined)\n return (this.session.getLine(row).charAt(0) == this.RLE);\n else\n return this.isRtlDir;\n };\n BidiHandler.prototype.setRtlDirection = function (editor, isRtlDir) {\n var cursor = editor.getCursorPosition();\n for (var row = editor.selection.getSelectionAnchor().row; row <= cursor.row; row++) {\n if (!isRtlDir && editor.session.getLine(row).charAt(0) === editor.session.$bidiHandler.RLE)\n editor.session.doc.removeInLine(row, 0, 1);\n else if (isRtlDir && editor.session.getLine(row).charAt(0) !== editor.session.$bidiHandler.RLE)\n editor.session.doc.insert({ column: 0, row: row }, editor.session.$bidiHandler.RLE);\n }\n };\n BidiHandler.prototype.getPosLeft = function (col) {\n col -= this.wrapIndent;\n var leftBoundary = (this.line.charAt(0) === this.RLE) ? 1 : 0;\n var logicalIdx = (col > leftBoundary) ? (this.session.getOverwrite() ? col : col - 1) : leftBoundary;\n var visualIdx = bidiUtil.getVisualFromLogicalIdx(logicalIdx, this.bidiMap), levels = this.bidiMap.bidiLevels, left = 0;\n if (!this.session.getOverwrite() && col <= leftBoundary && levels[visualIdx] % 2 !== 0)\n visualIdx++;\n for (var i = 0; i < visualIdx; i++) {\n left += this.charWidths[levels[i]];\n }\n if (!this.session.getOverwrite() && (col > leftBoundary) && (levels[visualIdx] % 2 === 0))\n left += this.charWidths[levels[visualIdx]];\n if (this.wrapIndent)\n left += this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n if (this.isRtlDir)\n left += this.rtlLineOffset;\n return left;\n };\n BidiHandler.prototype.getSelections = function (startCol, endCol) {\n var map = this.bidiMap, levels = map.bidiLevels, level, selections = [], offset = 0, selColMin = Math.min(startCol, endCol) - this.wrapIndent, selColMax = Math.max(startCol, endCol) - this.wrapIndent, isSelected = false, isSelectedPrev = false, selectionStart = 0;\n if (this.wrapIndent)\n offset += this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n for (var logIdx, visIdx = 0; visIdx < levels.length; visIdx++) {\n logIdx = map.logicalFromVisual[visIdx];\n level = levels[visIdx];\n isSelected = (logIdx >= selColMin) && (logIdx < selColMax);\n if (isSelected && !isSelectedPrev) {\n selectionStart = offset;\n }\n else if (!isSelected && isSelectedPrev) {\n selections.push({ left: selectionStart, width: offset - selectionStart });\n }\n offset += this.charWidths[level];\n isSelectedPrev = isSelected;\n }\n if (isSelected && (visIdx === levels.length)) {\n selections.push({ left: selectionStart, width: offset - selectionStart });\n }\n if (this.isRtlDir) {\n for (var i = 0; i < selections.length; i++) {\n selections[i].left += this.rtlLineOffset;\n }\n }\n return selections;\n };\n BidiHandler.prototype.offsetToCol = function (posX) {\n if (this.isRtlDir)\n posX -= this.rtlLineOffset;\n var logicalIdx = 0, posX = Math.max(posX, 0), offset = 0, visualIdx = 0, levels = this.bidiMap.bidiLevels, charWidth = this.charWidths[levels[visualIdx]];\n if (this.wrapIndent)\n posX -= this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n while (posX > offset + charWidth / 2) {\n offset += charWidth;\n if (visualIdx === levels.length - 1) {\n charWidth = 0;\n break;\n }\n charWidth = this.charWidths[levels[++visualIdx]];\n }\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && (levels[visualIdx] % 2 === 0)) {\n if (posX < offset)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n }\n else if (visualIdx > 0 && (levels[visualIdx - 1] % 2 === 0) && (levels[visualIdx] % 2 !== 0)) {\n logicalIdx = 1 + ((posX > offset) ? this.bidiMap.logicalFromVisual[visualIdx]\n : this.bidiMap.logicalFromVisual[visualIdx - 1]);\n }\n else if ((this.isRtlDir && visualIdx === levels.length - 1 && charWidth === 0 && (levels[visualIdx - 1] % 2 === 0))\n || (!this.isRtlDir && visualIdx === 0 && (levels[visualIdx] % 2 !== 0))) {\n logicalIdx = 1 + this.bidiMap.logicalFromVisual[visualIdx];\n }\n else {\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && charWidth !== 0)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n }\n if (logicalIdx === 0 && this.isRtlDir)\n logicalIdx++;\n return (logicalIdx + this.wrapIndent);\n };\n return BidiHandler;\n}());\nexports.BidiHandler = BidiHandler;\n\n});\n\nace.define(\"ace/selection\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar lang = require(\"./lib/lang\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Selection = /** @class */ (function () {\n function Selection(session) {\n this.session = session;\n this.doc = session.getDocument();\n this.clearSelection();\n this.cursor = this.lead = this.doc.createAnchor(0, 0);\n this.anchor = this.doc.createAnchor(0, 0);\n this.$silent = false;\n var self = this;\n this.cursor.on(\"change\", function (e) {\n self.$cursorChanged = true;\n if (!self.$silent)\n self._emit(\"changeCursor\");\n if (!self.$isEmpty && !self.$silent)\n self._emit(\"changeSelection\");\n if (!self.$keepDesiredColumnOnChange && e.old.column != e.value.column)\n self.$desiredColumn = null;\n });\n this.anchor.on(\"change\", function () {\n self.$anchorChanged = true;\n if (!self.$isEmpty && !self.$silent)\n self._emit(\"changeSelection\");\n });\n }\n Selection.prototype.isEmpty = function () {\n return this.$isEmpty || (this.anchor.row == this.lead.row &&\n this.anchor.column == this.lead.column);\n };\n Selection.prototype.isMultiLine = function () {\n return !this.$isEmpty && this.anchor.row != this.cursor.row;\n };\n Selection.prototype.getCursor = function () {\n return this.lead.getPosition();\n };\n Selection.prototype.setAnchor = function (row, column) {\n this.$isEmpty = false;\n this.anchor.setPosition(row, column);\n };\n Selection.prototype.getAnchor = function () {\n if (this.$isEmpty)\n return this.getSelectionLead();\n return this.anchor.getPosition();\n };\n Selection.prototype.getSelectionLead = function () {\n return this.lead.getPosition();\n };\n Selection.prototype.isBackwards = function () {\n var anchor = this.anchor;\n var lead = this.lead;\n return (anchor.row > lead.row || (anchor.row == lead.row && anchor.column > lead.column));\n };\n Selection.prototype.getRange = function () {\n var anchor = this.anchor;\n var lead = this.lead;\n if (this.$isEmpty)\n return Range.fromPoints(lead, lead);\n return this.isBackwards()\n ? Range.fromPoints(lead, anchor)\n : Range.fromPoints(anchor, lead);\n };\n Selection.prototype.clearSelection = function () {\n if (!this.$isEmpty) {\n this.$isEmpty = true;\n this._emit(\"changeSelection\");\n }\n };\n Selection.prototype.selectAll = function () {\n this.$setSelection(0, 0, Number.MAX_VALUE, Number.MAX_VALUE);\n };\n Selection.prototype.setRange = function (range, reverse) {\n var start = reverse ? range.end : range.start;\n var end = reverse ? range.start : range.end;\n this.$setSelection(start.row, start.column, end.row, end.column);\n };\n Selection.prototype.$setSelection = function (anchorRow, anchorColumn, cursorRow, cursorColumn) {\n if (this.$silent)\n return;\n var wasEmpty = this.$isEmpty;\n var wasMultiselect = this.inMultiSelectMode;\n this.$silent = true;\n this.$cursorChanged = this.$anchorChanged = false;\n this.anchor.setPosition(anchorRow, anchorColumn);\n this.cursor.setPosition(cursorRow, cursorColumn);\n this.$isEmpty = !Range.comparePoints(this.anchor, this.cursor);\n this.$silent = false;\n if (this.$cursorChanged)\n this._emit(\"changeCursor\");\n if (this.$cursorChanged || this.$anchorChanged || wasEmpty != this.$isEmpty || wasMultiselect)\n this._emit(\"changeSelection\");\n };\n Selection.prototype.$moveSelection = function (mover) {\n var lead = this.lead;\n if (this.$isEmpty)\n this.setSelectionAnchor(lead.row, lead.column);\n mover.call(this);\n };\n Selection.prototype.selectTo = function (row, column) {\n this.$moveSelection(function () {\n this.moveCursorTo(row, column);\n });\n };\n Selection.prototype.selectToPosition = function (pos) {\n this.$moveSelection(function () {\n this.moveCursorToPosition(pos);\n });\n };\n Selection.prototype.moveTo = function (row, column) {\n this.clearSelection();\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveToPosition = function (pos) {\n this.clearSelection();\n this.moveCursorToPosition(pos);\n };\n Selection.prototype.selectUp = function () {\n this.$moveSelection(this.moveCursorUp);\n };\n Selection.prototype.selectDown = function () {\n this.$moveSelection(this.moveCursorDown);\n };\n Selection.prototype.selectRight = function () {\n this.$moveSelection(this.moveCursorRight);\n };\n Selection.prototype.selectLeft = function () {\n this.$moveSelection(this.moveCursorLeft);\n };\n Selection.prototype.selectLineStart = function () {\n this.$moveSelection(this.moveCursorLineStart);\n };\n Selection.prototype.selectLineEnd = function () {\n this.$moveSelection(this.moveCursorLineEnd);\n };\n Selection.prototype.selectFileEnd = function () {\n this.$moveSelection(this.moveCursorFileEnd);\n };\n Selection.prototype.selectFileStart = function () {\n this.$moveSelection(this.moveCursorFileStart);\n };\n Selection.prototype.selectWordRight = function () {\n this.$moveSelection(this.moveCursorWordRight);\n };\n Selection.prototype.selectWordLeft = function () {\n this.$moveSelection(this.moveCursorWordLeft);\n };\n Selection.prototype.getWordRange = function (row, column) {\n if (typeof column == \"undefined\") {\n var cursor = row || this.lead;\n row = cursor.row;\n column = cursor.column;\n }\n return this.session.getWordRange(row, column);\n };\n Selection.prototype.selectWord = function () {\n this.setSelectionRange(this.getWordRange());\n };\n Selection.prototype.selectAWord = function () {\n var cursor = this.getCursor();\n var range = this.session.getAWordRange(cursor.row, cursor.column);\n this.setSelectionRange(range);\n };\n Selection.prototype.getLineRange = function (row, excludeLastChar) {\n var rowStart = typeof row == \"number\" ? row : this.lead.row;\n var rowEnd;\n var foldLine = this.session.getFoldLine(rowStart);\n if (foldLine) {\n rowStart = foldLine.start.row;\n rowEnd = foldLine.end.row;\n }\n else {\n rowEnd = rowStart;\n }\n if (excludeLastChar === true)\n return new Range(rowStart, 0, rowEnd, this.session.getLine(rowEnd).length);\n else\n return new Range(rowStart, 0, rowEnd + 1, 0);\n };\n Selection.prototype.selectLine = function () {\n this.setSelectionRange(this.getLineRange());\n };\n Selection.prototype.moveCursorUp = function () {\n this.moveCursorBy(-1, 0);\n };\n Selection.prototype.moveCursorDown = function () {\n this.moveCursorBy(1, 0);\n };\n Selection.prototype.wouldMoveIntoSoftTab = function (cursor, tabSize, direction) {\n var start = cursor.column;\n var end = cursor.column + tabSize;\n if (direction < 0) {\n start = cursor.column - tabSize;\n end = cursor.column;\n }\n return this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(start, end).split(\" \").length - 1 == tabSize;\n };\n Selection.prototype.moveCursorLeft = function () {\n var cursor = this.lead.getPosition(), fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n }\n else if (cursor.column === 0) {\n if (cursor.row > 0) {\n this.moveCursorTo(cursor.row - 1, this.doc.getLine(cursor.row - 1).length);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, -1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, -tabSize);\n }\n else {\n this.moveCursorBy(0, -1);\n }\n }\n };\n Selection.prototype.moveCursorRight = function () {\n var cursor = this.lead.getPosition(), fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, 1)) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n }\n else if (this.lead.column == this.doc.getLine(this.lead.row).length) {\n if (this.lead.row < this.doc.getLength() - 1) {\n this.moveCursorTo(this.lead.row + 1, 0);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n var cursor = this.lead;\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, 1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, tabSize);\n }\n else {\n this.moveCursorBy(0, 1);\n }\n }\n };\n Selection.prototype.moveCursorLineStart = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var screenRow = this.session.documentToScreenRow(row, column);\n var firstColumnPosition = this.session.screenToDocumentPosition(screenRow, 0);\n var beforeCursor = this.session.getDisplayLine(row, null, firstColumnPosition.row, firstColumnPosition.column);\n var leadingSpace = beforeCursor.match(/^\\s*/);\n if (leadingSpace[0].length != column && !this.session.$useEmacsStyleLineStart)\n firstColumnPosition.column += leadingSpace[0].length;\n this.moveCursorToPosition(firstColumnPosition);\n };\n Selection.prototype.moveCursorLineEnd = function () {\n var lead = this.lead;\n var lineEnd = this.session.getDocumentLastRowColumnPosition(lead.row, lead.column);\n if (this.lead.column == lineEnd.column) {\n var line = this.session.getLine(lineEnd.row);\n if (lineEnd.column == line.length) {\n var textEnd = line.search(/\\s+$/);\n if (textEnd > 0)\n lineEnd.column = textEnd;\n }\n }\n this.moveCursorTo(lineEnd.row, lineEnd.column);\n };\n Selection.prototype.moveCursorFileEnd = function () {\n var row = this.doc.getLength() - 1;\n var column = this.doc.getLine(row).length;\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveCursorFileStart = function () {\n this.moveCursorTo(0, 0);\n };\n Selection.prototype.moveCursorLongWordRight = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n return;\n }\n if (this.session.nonTokenRe.exec(rightOfCursor)) {\n column += this.session.nonTokenRe.lastIndex;\n this.session.nonTokenRe.lastIndex = 0;\n rightOfCursor = line.substring(column);\n }\n if (column >= line.length) {\n this.moveCursorTo(row, line.length);\n this.moveCursorRight();\n if (row < this.doc.getLength() - 1)\n this.moveCursorWordRight();\n return;\n }\n if (this.session.tokenRe.exec(rightOfCursor)) {\n column += this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveCursorLongWordLeft = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n return;\n }\n var str = this.session.getFoldStringAt(row, column, -1);\n if (str == null) {\n str = this.doc.getLine(row).substring(0, column);\n }\n var leftOfCursor = lang.stringReverse(str);\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n if (this.session.nonTokenRe.exec(leftOfCursor)) {\n column -= this.session.nonTokenRe.lastIndex;\n leftOfCursor = leftOfCursor.slice(this.session.nonTokenRe.lastIndex);\n this.session.nonTokenRe.lastIndex = 0;\n }\n if (column <= 0) {\n this.moveCursorTo(row, 0);\n this.moveCursorLeft();\n if (row > 0)\n this.moveCursorWordLeft();\n return;\n }\n if (this.session.tokenRe.exec(leftOfCursor)) {\n column -= this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n this.moveCursorTo(row, column);\n };\n Selection.prototype.$shortWordEndIndex = function (rightOfCursor) {\n var index = 0, ch;\n var whitespaceRe = /\\s/;\n var tokenRe = this.session.tokenRe;\n tokenRe.lastIndex = 0;\n if (this.session.tokenRe.exec(rightOfCursor)) {\n index = this.session.tokenRe.lastIndex;\n }\n else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index++;\n if (index < 1) {\n tokenRe.lastIndex = 0;\n while ((ch = rightOfCursor[index]) && !tokenRe.test(ch)) {\n tokenRe.lastIndex = 0;\n index++;\n if (whitespaceRe.test(ch)) {\n if (index > 2) {\n index--;\n break;\n }\n else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index++;\n if (index > 2)\n break;\n }\n }\n }\n }\n }\n tokenRe.lastIndex = 0;\n return index;\n };\n Selection.prototype.moveCursorShortWordRight = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold)\n return this.moveCursorTo(fold.end.row, fold.end.column);\n if (column == line.length) {\n var l = this.doc.getLength();\n do {\n row++;\n rightOfCursor = this.doc.getLine(row);\n } while (row < l && /^\\s*$/.test(rightOfCursor));\n if (!/^\\s+/.test(rightOfCursor))\n rightOfCursor = \"\";\n column = 0;\n }\n var index = this.$shortWordEndIndex(rightOfCursor);\n this.moveCursorTo(row, column + index);\n };\n Selection.prototype.moveCursorShortWordLeft = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1))\n return this.moveCursorTo(fold.start.row, fold.start.column);\n var line = this.session.getLine(row).substring(0, column);\n if (column === 0) {\n do {\n row--;\n line = this.doc.getLine(row);\n } while (row > 0 && /^\\s*$/.test(line));\n column = line.length;\n if (!/\\s+$/.test(line))\n line = \"\";\n }\n var leftOfCursor = lang.stringReverse(line);\n var index = this.$shortWordEndIndex(leftOfCursor);\n return this.moveCursorTo(row, column - index);\n };\n Selection.prototype.moveCursorWordRight = function () {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordRight();\n else\n this.moveCursorShortWordRight();\n };\n Selection.prototype.moveCursorWordLeft = function () {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordLeft();\n else\n this.moveCursorShortWordLeft();\n };\n Selection.prototype.moveCursorBy = function (rows, chars) {\n var screenPos = this.session.documentToScreenPosition(this.lead.row, this.lead.column);\n var offsetX;\n if (chars === 0) {\n if (rows !== 0) {\n if (this.session.$bidiHandler.isBidiRow(screenPos.row, this.lead.row)) {\n offsetX = this.session.$bidiHandler.getPosLeft(screenPos.column);\n screenPos.column = Math.round(offsetX / this.session.$bidiHandler.charWidths[0]);\n }\n else {\n offsetX = screenPos.column * this.session.$bidiHandler.charWidths[0];\n }\n }\n if (this.$desiredColumn)\n screenPos.column = this.$desiredColumn;\n else\n this.$desiredColumn = screenPos.column;\n }\n if (rows != 0 && this.session.lineWidgets && this.session.lineWidgets[this.lead.row]) {\n var widget = this.session.lineWidgets[this.lead.row];\n if (rows < 0)\n rows -= widget.rowsAbove || 0;\n else if (rows > 0)\n rows += widget.rowCount - (widget.rowsAbove || 0);\n }\n var docPos = this.session.screenToDocumentPosition(screenPos.row + rows, screenPos.column, offsetX);\n if (rows !== 0 && chars === 0 && docPos.row === this.lead.row && docPos.column === this.lead.column) {\n }\n this.moveCursorTo(docPos.row, docPos.column + chars, chars === 0);\n };\n Selection.prototype.moveCursorToPosition = function (position) {\n this.moveCursorTo(position.row, position.column);\n };\n Selection.prototype.moveCursorTo = function (row, column, keepDesiredColumn) {\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n row = fold.start.row;\n column = fold.start.column;\n }\n this.$keepDesiredColumnOnChange = true;\n var line = this.session.getLine(row);\n if (/[\\uDC00-\\uDFFF]/.test(line.charAt(column)) && line.charAt(column - 1)) {\n if (this.lead.row == row && this.lead.column == column + 1)\n column = column - 1;\n else\n column = column + 1;\n }\n this.lead.setPosition(row, column);\n this.$keepDesiredColumnOnChange = false;\n if (!keepDesiredColumn)\n this.$desiredColumn = null;\n };\n Selection.prototype.moveCursorToScreen = function (row, column, keepDesiredColumn) {\n var pos = this.session.screenToDocumentPosition(row, column);\n this.moveCursorTo(pos.row, pos.column, keepDesiredColumn);\n };\n Selection.prototype.detach = function () {\n this.lead.detach();\n this.anchor.detach();\n };\n Selection.prototype.fromOrientedRange = function (range) {\n this.setSelectionRange(range, range.cursor == range.start);\n this.$desiredColumn = range.desiredColumn || this.$desiredColumn;\n };\n Selection.prototype.toOrientedRange = function (range) {\n var r = this.getRange();\n if (range) {\n range.start.column = r.start.column;\n range.start.row = r.start.row;\n range.end.column = r.end.column;\n range.end.row = r.end.row;\n }\n else {\n range = r;\n }\n range.cursor = this.isBackwards() ? range.start : range.end;\n range.desiredColumn = this.$desiredColumn;\n return range;\n };\n Selection.prototype.getRangeOfMovements = function (func) {\n var start = this.getCursor();\n try {\n func(this);\n var end = this.getCursor();\n return Range.fromPoints(start, end);\n }\n catch (e) {\n return Range.fromPoints(start, start);\n }\n finally {\n this.moveCursorToPosition(start);\n }\n };\n Selection.prototype.toJSON = function () {\n if (this.rangeCount) {\n var data = this.ranges.map(function (r) {\n var r1 = r.clone();\n r1.isBackwards = r.cursor == r.start;\n return r1;\n });\n }\n else {\n var data = this.getRange();\n data.isBackwards = this.isBackwards();\n }\n return data;\n };\n Selection.prototype.fromJSON = function (data) {\n if (data.start == undefined) {\n if (this.rangeList && data.length > 1) {\n this.toSingleRange(data[0]);\n for (var i = data.length; i--;) {\n var r = Range.fromPoints(data[i].start, data[i].end);\n if (data[i].isBackwards)\n r.cursor = r.start;\n this.addRange(r, true);\n }\n return;\n }\n else {\n data = data[0];\n }\n }\n if (this.rangeList)\n this.toSingleRange(data);\n this.setSelectionRange(data, data.isBackwards);\n };\n Selection.prototype.isEqual = function (data) {\n if ((data.length || this.rangeCount) && data.length != this.rangeCount)\n return false;\n if (!data.length || !this.ranges)\n return this.getRange().isEqual(data);\n for (var i = this.ranges.length; i--;) {\n if (!this.ranges[i].isEqual(data[i]))\n return false;\n }\n return true;\n };\n return Selection;\n}());\nSelection.prototype.setSelectionAnchor = Selection.prototype.setAnchor;\nSelection.prototype.getSelectionAnchor = Selection.prototype.getAnchor;\nSelection.prototype.setSelectionRange = Selection.prototype.setRange;\noop.implement(Selection.prototype, EventEmitter);\nexports.Selection = Selection;\n\n});\n\nace.define(\"ace/tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/report_error\"], function(require, exports, module){\"use strict\";\nvar reportError = require(\"./lib/report_error\").reportError;\nvar MAX_TOKEN_COUNT = 2000;\nvar Tokenizer = /** @class */ (function () {\n function Tokenizer(rules) {\n this.states = rules;\n this.regExps = {};\n this.matchMappings = {};\n for (var key in this.states) {\n var state = this.states[key];\n var ruleRegExps = [];\n var matchTotal = 0;\n var mapping = this.matchMappings[key] = { defaultToken: \"text\" };\n var flag = \"g\";\n var splitterRurles = [];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.defaultToken)\n mapping.defaultToken = rule.defaultToken;\n if (rule.caseInsensitive && flag.indexOf(\"i\") === -1)\n flag += \"i\";\n if (rule.unicode && flag.indexOf(\"u\") === -1)\n flag += \"u\";\n if (rule.regex == null)\n continue;\n if (rule.regex instanceof RegExp)\n rule.regex = rule.regex.toString().slice(1, -1);\n var adjustedregex = rule.regex;\n var matchcount = new RegExp(\"(?:(\" + adjustedregex + \")|(.))\").exec(\"a\").length - 2;\n if (Array.isArray(rule.token)) {\n if (rule.token.length == 1 || matchcount == 1) {\n rule.token = rule.token[0];\n }\n else if (matchcount - 1 != rule.token.length) {\n this.reportError(\"number of classes and regexp groups doesn't match\", {\n rule: rule,\n groupCount: matchcount - 1\n });\n rule.token = rule.token[0];\n }\n else {\n rule.tokenArray = rule.token;\n rule.token = null;\n rule.onMatch = this.$arrayTokens;\n }\n }\n else if (typeof rule.token == \"function\" && !rule.onMatch) {\n if (matchcount > 1)\n rule.onMatch = this.$applyToken;\n else\n rule.onMatch = rule.token;\n }\n if (matchcount > 1) {\n if (/\\\\\\d/.test(rule.regex)) {\n adjustedregex = rule.regex.replace(/\\\\([0-9]+)/g, function (match, digit) {\n return \"\\\\\" + (parseInt(digit, 10) + matchTotal + 1);\n });\n }\n else {\n matchcount = 1;\n adjustedregex = this.removeCapturingGroups(rule.regex);\n }\n if (!rule.splitRegex && typeof rule.token != \"string\")\n splitterRurles.push(rule); // flag will be known only at the very end\n }\n mapping[matchTotal] = i;\n matchTotal += matchcount;\n ruleRegExps.push(adjustedregex);\n if (!rule.onMatch)\n rule.onMatch = null;\n }\n if (!ruleRegExps.length) {\n mapping[0] = 0;\n ruleRegExps.push(\"$\");\n }\n splitterRurles.forEach(function (rule) {\n rule.splitRegex = this.createSplitterRegexp(rule.regex, flag);\n }, this);\n this.regExps[key] = new RegExp(\"(\" + ruleRegExps.join(\")|(\") + \")|($)\", flag);\n }\n }\n Tokenizer.prototype.$setMaxTokenCount = function (m) {\n MAX_TOKEN_COUNT = m | 0;\n };\n Tokenizer.prototype.$applyToken = function (str) {\n var values = this.splitRegex.exec(str).slice(1);\n var types = this.token.apply(this, values);\n if (typeof types === \"string\")\n return [{ type: types, value: str }];\n var tokens = [];\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i]\n };\n }\n return tokens;\n };\n Tokenizer.prototype.$arrayTokens = function (str) {\n if (!str)\n return [];\n var values = this.splitRegex.exec(str);\n if (!values)\n return \"text\";\n var tokens = [];\n var types = this.tokenArray;\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i + 1])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i + 1]\n };\n }\n return tokens;\n };\n Tokenizer.prototype.removeCapturingGroups = function (src) {\n var r = src.replace(/\\\\.|\\[(?:\\\\.|[^\\\\\\]])*|\\(\\?[:=!<]|(\\()/g, function (x, y) { return y ? \"(?:\" : x; });\n return r;\n };\n Tokenizer.prototype.createSplitterRegexp = function (src, flag) {\n if (src.indexOf(\"(?=\") != -1) {\n var stack = 0;\n var inChClass = false;\n var lastCapture = {};\n src.replace(/(\\\\.)|(\\((?:\\?[=!])?)|(\\))|([\\[\\]])/g, function (m, esc, parenOpen, parenClose, square, index) {\n if (inChClass) {\n inChClass = square != \"]\";\n }\n else if (square) {\n inChClass = true;\n }\n else if (parenClose) {\n if (stack == lastCapture.stack) {\n lastCapture.end = index + 1;\n lastCapture.stack = -1;\n }\n stack--;\n }\n else if (parenOpen) {\n stack++;\n if (parenOpen.length != 1) {\n lastCapture.stack = stack;\n lastCapture.start = index;\n }\n }\n return m;\n });\n if (lastCapture.end != null && /^\\)*$/.test(src.substr(lastCapture.end)))\n src = src.substring(0, lastCapture.start) + src.substr(lastCapture.end);\n }\n if (src.charAt(0) != \"^\")\n src = \"^\" + src;\n if (src.charAt(src.length - 1) != \"$\")\n src += \"$\";\n return new RegExp(src, (flag || \"\").replace(\"g\", \"\"));\n };\n Tokenizer.prototype.getLineTokens = function (line, startState) {\n if (startState && typeof startState != \"string\") {\n var stack = startState.slice(0);\n startState = stack[0];\n if (startState === \"#tmp\") {\n stack.shift();\n startState = stack.shift();\n }\n }\n else\n var stack = [];\n var currentState = startState || \"start\";\n var state = this.states[currentState];\n if (!state) {\n currentState = \"start\";\n state = this.states[currentState];\n }\n var mapping = this.matchMappings[currentState];\n var re = this.regExps[currentState];\n re.lastIndex = 0;\n var match, tokens = [];\n var lastIndex = 0;\n var matchAttempts = 0;\n var token = { type: null, value: \"\" };\n while (match = re.exec(line)) {\n var type = mapping.defaultToken;\n var rule = null;\n var value = match[0];\n var index = re.lastIndex;\n if (index - value.length > lastIndex) {\n var skipped = line.substring(lastIndex, index - value.length);\n if (token.type == type) {\n token.value += skipped;\n }\n else {\n if (token.type)\n tokens.push(token);\n token = { type: type, value: skipped };\n }\n }\n for (var i = 0; i < match.length - 2; i++) {\n if (match[i + 1] === undefined)\n continue;\n rule = state[mapping[i]];\n if (rule.onMatch)\n type = rule.onMatch(value, currentState, stack, line);\n else\n type = rule.token;\n if (rule.next) {\n if (typeof rule.next == \"string\") {\n currentState = rule.next;\n }\n else {\n currentState = rule.next(currentState, stack);\n }\n state = this.states[currentState];\n if (!state) {\n this.reportError(\"state doesn't exist\", currentState);\n currentState = \"start\";\n state = this.states[currentState];\n }\n mapping = this.matchMappings[currentState];\n lastIndex = index;\n re = this.regExps[currentState];\n re.lastIndex = index;\n }\n if (rule.consumeLineEnd)\n lastIndex = index;\n break;\n }\n if (value) {\n if (typeof type === \"string\") {\n if ((!rule || rule.merge !== false) && token.type === type) {\n token.value += value;\n }\n else {\n if (token.type)\n tokens.push(token);\n token = { type: type, value: value };\n }\n }\n else if (type) {\n if (token.type)\n tokens.push(token);\n token = { type: null, value: \"\" };\n for (var i = 0; i < type.length; i++)\n tokens.push(type[i]);\n }\n }\n if (lastIndex == line.length)\n break;\n lastIndex = index;\n if (matchAttempts++ > MAX_TOKEN_COUNT) {\n if (matchAttempts > 2 * line.length) {\n this.reportError(\"infinite loop with in ace tokenizer\", {\n startState: startState,\n line: line\n });\n }\n while (lastIndex < line.length) {\n if (token.type)\n tokens.push(token);\n token = {\n value: line.substring(lastIndex, lastIndex += 500),\n type: \"overflow\"\n };\n }\n currentState = \"start\";\n stack = [];\n break;\n }\n }\n if (token.type)\n tokens.push(token);\n if (stack.length > 1) {\n if (stack[0] !== currentState)\n stack.unshift(\"#tmp\", currentState);\n }\n return {\n tokens: tokens,\n state: stack.length ? stack : currentState\n };\n };\n return Tokenizer;\n}());\nTokenizer.prototype.reportError = reportError;\nexports.Tokenizer = Tokenizer;\n\n});\n\nace.define(\"ace/mode/text_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/deep_copy\"], function(require, exports, module){\"use strict\";\nvar deepCopy = require(\"../lib/deep_copy\").deepCopy;\nvar TextHighlightRules = function () {\n this.$rules = {\n \"start\": [{\n token: \"empty_line\",\n regex: '^$'\n }, {\n defaultToken: \"text\"\n }]\n };\n};\n(function () {\n this.addRules = function (rules, prefix) {\n if (!prefix) {\n for (var key in rules)\n this.$rules[key] = rules[key];\n return;\n }\n for (var key in rules) {\n var state = rules[key];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.next || rule.onMatch) {\n if (typeof rule.next == \"string\") {\n if (rule.next.indexOf(prefix) !== 0)\n rule.next = prefix + rule.next;\n }\n if (rule.nextState && rule.nextState.indexOf(prefix) !== 0)\n rule.nextState = prefix + rule.nextState;\n }\n }\n this.$rules[prefix + key] = state;\n }\n };\n this.getRules = function () {\n return this.$rules;\n };\n this.embedRules = function (HighlightRules, prefix, escapeRules, states, append) {\n var embedRules = typeof HighlightRules == \"function\"\n ? new HighlightRules().getRules()\n : HighlightRules;\n if (states) {\n for (var i = 0; i < states.length; i++)\n states[i] = prefix + states[i];\n }\n else {\n states = [];\n for (var key in embedRules)\n states.push(prefix + key);\n }\n this.addRules(embedRules, prefix);\n if (escapeRules) {\n var addRules = Array.prototype[append ? \"push\" : \"unshift\"];\n for (var i = 0; i < states.length; i++)\n addRules.apply(this.$rules[states[i]], deepCopy(escapeRules));\n }\n if (!this.$embeds)\n this.$embeds = [];\n this.$embeds.push(prefix);\n };\n this.getEmbeds = function () {\n return this.$embeds;\n };\n var pushState = function (currentState, stack) {\n if (currentState != \"start\" || stack.length)\n stack.unshift(this.nextState, currentState);\n return this.nextState;\n };\n var popState = function (currentState, stack) {\n stack.shift();\n return stack.shift() || \"start\";\n };\n this.normalizeRules = function () {\n var id = 0;\n var rules = this.$rules;\n function processState(key) {\n var state = rules[key];\n state.processed = true;\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n var toInsert = null;\n if (Array.isArray(rule)) {\n toInsert = rule;\n rule = {};\n }\n if (!rule.regex && rule.start) {\n rule.regex = rule.start;\n if (!rule.next)\n rule.next = [];\n rule.next.push({\n defaultToken: rule.token\n }, {\n token: rule.token + \".end\",\n regex: rule.end || rule.start,\n next: \"pop\"\n });\n rule.token = rule.token + \".start\";\n rule.push = true;\n }\n var next = rule.next || rule.push;\n if (next && Array.isArray(next)) {\n var stateName = rule.stateName;\n if (!stateName) {\n stateName = rule.token;\n if (typeof stateName != \"string\")\n stateName = stateName[0] || \"\";\n if (rules[stateName])\n stateName += id++;\n }\n rules[stateName] = next;\n rule.next = stateName;\n processState(stateName);\n }\n else if (next == \"pop\") {\n rule.next = popState;\n }\n if (rule.push) {\n rule.nextState = rule.next || rule.push;\n rule.next = pushState;\n delete rule.push;\n }\n if (rule.rules) {\n for (var r in rule.rules) {\n if (rules[r]) {\n if (rules[r].push)\n rules[r].push.apply(rules[r], rule.rules[r]);\n }\n else {\n rules[r] = rule.rules[r];\n }\n }\n }\n var includeName = typeof rule == \"string\" ? rule : rule.include;\n if (includeName) {\n if (includeName === \"$self\")\n includeName = \"start\";\n if (Array.isArray(includeName))\n toInsert = includeName.map(function (x) { return rules[x]; });\n else\n toInsert = rules[includeName];\n }\n if (toInsert) {\n var args = [i, 1].concat(toInsert);\n if (rule.noEscape)\n args = args.filter(function (x) { return !x.next; });\n state.splice.apply(state, args);\n i--;\n }\n if (rule.keywordMap) {\n rule.token = this.createKeywordMapper(rule.keywordMap, rule.defaultToken || \"text\", rule.caseInsensitive);\n delete rule.defaultToken;\n }\n }\n }\n Object.keys(rules).forEach(processState, this);\n };\n this.createKeywordMapper = function (map, defaultToken, ignoreCase, splitChar) {\n var keywords = Object.create(null);\n this.$keywordList = [];\n Object.keys(map).forEach(function (className) {\n var a = map[className];\n var list = a.split(splitChar || \"|\");\n for (var i = list.length; i--;) {\n var word = list[i];\n this.$keywordList.push(word);\n if (ignoreCase)\n word = word.toLowerCase();\n keywords[word] = className;\n }\n }, this);\n map = null;\n return ignoreCase\n ? function (value) { return keywords[value.toLowerCase()] || defaultToken; }\n : function (value) { return keywords[value] || defaultToken; };\n };\n this.getKeywords = function () {\n return this.$keywords;\n };\n}).call(TextHighlightRules.prototype);\nexports.TextHighlightRules = TextHighlightRules;\n\n});\n\nace.define(\"ace/mode/behaviour\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar Behaviour = function () {\n this.$behaviours = {};\n};\n(function () {\n this.add = function (name, action, callback) {\n switch (undefined) {\n case this.$behaviours:\n this.$behaviours = {};\n case this.$behaviours[name]:\n this.$behaviours[name] = {};\n }\n this.$behaviours[name][action] = callback;\n };\n this.addBehaviours = function (behaviours) {\n for (var key in behaviours) {\n for (var action in behaviours[key]) {\n this.add(key, action, behaviours[key][action]);\n }\n }\n };\n this.remove = function (name) {\n if (this.$behaviours && this.$behaviours[name]) {\n delete this.$behaviours[name];\n }\n };\n this.inherit = function (mode, filter) {\n if (typeof mode === \"function\") {\n var behaviours = new mode().getBehaviours(filter);\n }\n else {\n var behaviours = mode.getBehaviours(filter);\n }\n this.addBehaviours(behaviours);\n };\n this.getBehaviours = function (filter) {\n if (!filter) {\n return this.$behaviours;\n }\n else {\n var ret = {};\n for (var i = 0; i < filter.length; i++) {\n if (this.$behaviours[filter[i]]) {\n ret[filter[i]] = this.$behaviours[filter[i]];\n }\n }\n return ret;\n }\n };\n}).call(Behaviour.prototype);\nexports.Behaviour = Behaviour;\n\n});\n\nace.define(\"ace/token_iterator\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar TokenIterator = /** @class */ (function () {\n function TokenIterator(session, initialRow, initialColumn) {\n this.$session = session;\n this.$row = initialRow;\n this.$rowTokens = session.getTokens(initialRow);\n var token = session.getTokenAt(initialRow, initialColumn);\n this.$tokenIndex = token ? token.index : -1;\n }\n TokenIterator.prototype.stepBackward = function () {\n this.$tokenIndex -= 1;\n while (this.$tokenIndex < 0) {\n this.$row -= 1;\n if (this.$row < 0) {\n this.$row = 0;\n return null;\n }\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = this.$rowTokens.length - 1;\n }\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.stepForward = function () {\n this.$tokenIndex += 1;\n var rowCount;\n while (this.$tokenIndex >= this.$rowTokens.length) {\n this.$row += 1;\n if (!rowCount)\n rowCount = this.$session.getLength();\n if (this.$row >= rowCount) {\n this.$row = rowCount - 1;\n return null;\n }\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = 0;\n }\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.getCurrentToken = function () {\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.getCurrentTokenRow = function () {\n return this.$row;\n };\n TokenIterator.prototype.getCurrentTokenColumn = function () {\n var rowTokens = this.$rowTokens;\n var tokenIndex = this.$tokenIndex;\n var column = rowTokens[tokenIndex].start;\n if (column !== undefined)\n return column;\n column = 0;\n while (tokenIndex > 0) {\n tokenIndex -= 1;\n column += rowTokens[tokenIndex].value.length;\n }\n return column;\n };\n TokenIterator.prototype.getCurrentTokenPosition = function () {\n return { row: this.$row, column: this.getCurrentTokenColumn() };\n };\n TokenIterator.prototype.getCurrentTokenRange = function () {\n var token = this.$rowTokens[this.$tokenIndex];\n var column = this.getCurrentTokenColumn();\n return new Range(this.$row, column, this.$row, column + token.value.length);\n };\n return TokenIterator;\n}());\nexports.TokenIterator = TokenIterator;\n\n});\n\nace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\nvar SAFE_INSERT_IN_TOKENS = [\"text\", \"paren.rparen\", \"rparen\", \"paren\", \"punctuation.operator\"];\nvar SAFE_INSERT_BEFORE_TOKENS = [\"text\", \"paren.rparen\", \"rparen\", \"paren\", \"punctuation.operator\", \"comment\"];\nvar context;\nvar contextCache = {};\nvar defaultQuotes = { '\"': '\"', \"'\": \"'\" };\nvar initContext = function (editor) {\n var id = -1;\n if (editor.multiSelect) {\n id = editor.selection.index;\n if (contextCache.rangeCount != editor.multiSelect.rangeCount)\n contextCache = { rangeCount: editor.multiSelect.rangeCount };\n }\n if (contextCache[id])\n return context = contextCache[id];\n context = contextCache[id] = {\n autoInsertedBrackets: 0,\n autoInsertedRow: -1,\n autoInsertedLineEnd: \"\",\n maybeInsertedBrackets: 0,\n maybeInsertedRow: -1,\n maybeInsertedLineStart: \"\",\n maybeInsertedLineEnd: \"\"\n };\n};\nvar getWrapped = function (selection, selected, opening, closing) {\n var rowDiff = selection.end.row - selection.start.row;\n return {\n text: opening + selected + closing,\n selection: [\n 0,\n selection.start.column + 1,\n rowDiff,\n selection.end.column + (rowDiff ? 0 : 1)\n ]\n };\n};\nvar CstyleBehaviour = function (options) {\n options = options || {};\n this.add(\"braces\", \"insertion\", function (state, action, editor, session, text) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (text == '{') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"{\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '{', '}');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n if (/[\\]\\}\\)]/.test(line[cursor.column]) || editor.inMultiSelectMode || options.braces) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"}\");\n return {\n text: '{}',\n selection: [1, 1]\n };\n }\n else {\n CstyleBehaviour.recordMaybeInsert(editor, session, \"{\");\n return {\n text: '{',\n selection: [1, 1]\n };\n }\n }\n }\n else if (text == '}') {\n initContext(editor);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == '}') {\n var matching = session.$findOpeningBracket('}', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n else if (text == \"\\n\" || text == \"\\r\\n\") {\n initContext(editor);\n var closing = \"\";\n if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {\n closing = lang.stringRepeat(\"}\", context.maybeInsertedBrackets);\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === '}') {\n var openBracePos = session.findMatchingBracket({ row: cursor.row, column: cursor.column + 1 }, '}');\n if (!openBracePos)\n return null;\n var next_indent = this.$getIndent(session.getLine(openBracePos.row));\n }\n else if (closing) {\n var next_indent = this.$getIndent(line);\n }\n else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n return;\n }\n var indent = next_indent + session.getTabString();\n return {\n text: '\\n' + indent + '\\n' + next_indent + closing,\n selection: [1, indent.length, 1, indent.length]\n };\n }\n else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n });\n this.add(\"braces\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '{') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar == '}') {\n range.end.column++;\n return range;\n }\n else {\n context.maybeInsertedBrackets--;\n }\n }\n });\n this.add(\"parens\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '(') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '(', ')');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \")\");\n return {\n text: '()',\n selection: [1, 1]\n };\n }\n }\n else if (text == ')') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ')') {\n var matching = session.$findOpeningBracket(')', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"parens\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '(') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ')') {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"brackets\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '[') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '[', ']');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"]\");\n return {\n text: '[]',\n selection: [1, 1]\n };\n }\n }\n else if (text == ']') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ']') {\n var matching = session.$findOpeningBracket(']', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"brackets\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '[') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ']') {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n var quotes = session.$mode.$quotes || defaultQuotes;\n if (text.length == 1 && quotes[text]) {\n if (this.lineCommentStart && this.lineCommentStart.indexOf(text) != -1)\n return;\n initContext(editor);\n var quote = text;\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && (selected.length != 1 || !quotes[selected]) && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, quote, quote);\n }\n else if (!selected) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var leftChar = line.substring(cursor.column - 1, cursor.column);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n var token = session.getTokenAt(cursor.row, cursor.column);\n var rightToken = session.getTokenAt(cursor.row, cursor.column + 1);\n if (leftChar == \"\\\\\" && token && /escape/.test(token.type))\n return null;\n var stringBefore = token && /string|escape/.test(token.type);\n var stringAfter = !rightToken || /string|escape/.test(rightToken.type);\n var pair;\n if (rightChar == quote) {\n pair = stringBefore !== stringAfter;\n if (pair && /string\\.end/.test(rightToken.type))\n pair = false;\n }\n else {\n if (stringBefore && !stringAfter)\n return null; // wrap string with different quote\n if (stringBefore && stringAfter)\n return null; // do not pair quotes inside strings\n var wordRe = session.$mode.tokenRe;\n wordRe.lastIndex = 0;\n var isWordBefore = wordRe.test(leftChar);\n wordRe.lastIndex = 0;\n var isWordAfter = wordRe.test(rightChar);\n var pairQuotesAfter = session.$mode.$pairQuotesAfter;\n var shouldPairQuotes = pairQuotesAfter && pairQuotesAfter[quote] && pairQuotesAfter[quote].test(leftChar);\n if ((!shouldPairQuotes && isWordBefore) || isWordAfter)\n return null; // before or after alphanumeric\n if (rightChar && !/[\\s;,.})\\]\\\\]/.test(rightChar))\n return null; // there is rightChar and it isn't closing\n var charBefore = line[cursor.column - 2];\n if (leftChar == quote && (charBefore == quote || wordRe.test(charBefore)))\n return null;\n pair = true;\n }\n return {\n text: pair ? quote + quote : \"\",\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"string_dquotes\", \"deletion\", function (state, action, editor, session, range) {\n var quotes = session.$mode.$quotes || defaultQuotes;\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && quotes.hasOwnProperty(selected)) {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n if (options.closeDocComment !== false) {\n this.add(\"doc comment end\", \"insertion\", function (state, action, editor, session, text) {\n if (state === \"doc-start\" && (text === \"\\n\" || text === \"\\r\\n\") && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var nextLine = session.doc.getLine(cursor.row + 1);\n var indent = this.$getIndent(line);\n if (/\\s*\\*/.test(nextLine)) {\n if (/^\\s*\\*/.test(line)) {\n return {\n text: text + indent + \"* \",\n selection: [1, 3 + indent.length, 1, 3 + indent.length]\n };\n }\n else {\n return {\n text: text + indent + \" * \",\n selection: [1, 3 + indent.length, 1, 3 + indent.length]\n };\n }\n }\n if (/\\/\\*\\*/.test(line.substring(0, cursor.column))) {\n return {\n text: text + indent + \" * \" + text + \" \" + indent + \"*/\",\n selection: [1, 4 + indent.length, 1, 4 + indent.length]\n };\n }\n }\n });\n }\n};\nCstyleBehaviour.isSaneInsertion = function (editor, session) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n if (!this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS)) {\n if (/[)}\\]]/.test(editor.session.getLine(cursor.row)[cursor.column]))\n return true;\n var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);\n if (!this.$matchTokenType(iterator2.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS))\n return false;\n }\n iterator.stepForward();\n return iterator.getCurrentTokenRow() !== cursor.row ||\n this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_BEFORE_TOKENS);\n};\nCstyleBehaviour.$matchTokenType = function (token, types) {\n return types.indexOf(token.type || token) > -1;\n};\nCstyleBehaviour.recordAutoInsert = function (editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))\n context.autoInsertedBrackets = 0;\n context.autoInsertedRow = cursor.row;\n context.autoInsertedLineEnd = bracket + line.substr(cursor.column);\n context.autoInsertedBrackets++;\n};\nCstyleBehaviour.recordMaybeInsert = function (editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isMaybeInsertedClosing(cursor, line))\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = cursor.row;\n context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;\n context.maybeInsertedLineEnd = line.substr(cursor.column);\n context.maybeInsertedBrackets++;\n};\nCstyleBehaviour.isAutoInsertedClosing = function (cursor, line, bracket) {\n return context.autoInsertedBrackets > 0 &&\n cursor.row === context.autoInsertedRow &&\n bracket === context.autoInsertedLineEnd[0] &&\n line.substr(cursor.column) === context.autoInsertedLineEnd;\n};\nCstyleBehaviour.isMaybeInsertedClosing = function (cursor, line) {\n return context.maybeInsertedBrackets > 0 &&\n cursor.row === context.maybeInsertedRow &&\n line.substr(cursor.column) === context.maybeInsertedLineEnd &&\n line.substr(0, cursor.column) == context.maybeInsertedLineStart;\n};\nCstyleBehaviour.popAutoInsertedClosing = function () {\n context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);\n context.autoInsertedBrackets--;\n};\nCstyleBehaviour.clearMaybeInsertedClosing = function () {\n if (context) {\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = -1;\n }\n};\noop.inherits(CstyleBehaviour, Behaviour);\nexports.CstyleBehaviour = CstyleBehaviour;\n\n});\n\nace.define(\"ace/unicode\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar wordChars = [48, 9, 8, 25, 5, 0, 2, 25, 48, 0, 11, 0, 5, 0, 6, 22, 2, 30, 2, 457, 5, 11, 15, 4, 8, 0, 2, 0, 18, 116, 2, 1, 3, 3, 9, 0, 2, 2, 2, 0, 2, 19, 2, 82, 2, 138, 2, 4, 3, 155, 12, 37, 3, 0, 8, 38, 10, 44, 2, 0, 2, 1, 2, 1, 2, 0, 9, 26, 6, 2, 30, 10, 7, 61, 2, 9, 5, 101, 2, 7, 3, 9, 2, 18, 3, 0, 17, 58, 3, 100, 15, 53, 5, 0, 6, 45, 211, 57, 3, 18, 2, 5, 3, 11, 3, 9, 2, 1, 7, 6, 2, 2, 2, 7, 3, 1, 3, 21, 2, 6, 2, 0, 4, 3, 3, 8, 3, 1, 3, 3, 9, 0, 5, 1, 2, 4, 3, 11, 16, 2, 2, 5, 5, 1, 3, 21, 2, 6, 2, 1, 2, 1, 2, 1, 3, 0, 2, 4, 5, 1, 3, 2, 4, 0, 8, 3, 2, 0, 8, 15, 12, 2, 2, 8, 2, 2, 2, 21, 2, 6, 2, 1, 2, 4, 3, 9, 2, 2, 2, 2, 3, 0, 16, 3, 3, 9, 18, 2, 2, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 3, 8, 3, 1, 3, 2, 9, 1, 5, 1, 2, 4, 3, 9, 2, 0, 17, 1, 2, 5, 4, 2, 2, 3, 4, 1, 2, 0, 2, 1, 4, 1, 4, 2, 4, 11, 5, 4, 4, 2, 2, 3, 3, 0, 7, 0, 15, 9, 18, 2, 2, 7, 2, 2, 2, 22, 2, 9, 2, 4, 4, 7, 2, 2, 2, 3, 8, 1, 2, 1, 7, 3, 3, 9, 19, 1, 2, 7, 2, 2, 2, 22, 2, 9, 2, 4, 3, 8, 2, 2, 2, 3, 8, 1, 8, 0, 2, 3, 3, 9, 19, 1, 2, 7, 2, 2, 2, 22, 2, 15, 4, 7, 2, 2, 2, 3, 10, 0, 9, 3, 3, 9, 11, 5, 3, 1, 2, 17, 4, 23, 2, 8, 2, 0, 3, 6, 4, 0, 5, 5, 2, 0, 2, 7, 19, 1, 14, 57, 6, 14, 2, 9, 40, 1, 2, 0, 3, 1, 2, 0, 3, 0, 7, 3, 2, 6, 2, 2, 2, 0, 2, 0, 3, 1, 2, 12, 2, 2, 3, 4, 2, 0, 2, 5, 3, 9, 3, 1, 35, 0, 24, 1, 7, 9, 12, 0, 2, 0, 2, 0, 5, 9, 2, 35, 5, 19, 2, 5, 5, 7, 2, 35, 10, 0, 58, 73, 7, 77, 3, 37, 11, 42, 2, 0, 4, 328, 2, 3, 3, 6, 2, 0, 2, 3, 3, 40, 2, 3, 3, 32, 2, 3, 3, 6, 2, 0, 2, 3, 3, 14, 2, 56, 2, 3, 3, 66, 5, 0, 33, 15, 17, 84, 13, 619, 3, 16, 2, 25, 6, 74, 22, 12, 2, 6, 12, 20, 12, 19, 13, 12, 2, 2, 2, 1, 13, 51, 3, 29, 4, 0, 5, 1, 3, 9, 34, 2, 3, 9, 7, 87, 9, 42, 6, 69, 11, 28, 4, 11, 5, 11, 11, 39, 3, 4, 12, 43, 5, 25, 7, 10, 38, 27, 5, 62, 2, 28, 3, 10, 7, 9, 14, 0, 89, 75, 5, 9, 18, 8, 13, 42, 4, 11, 71, 55, 9, 9, 4, 48, 83, 2, 2, 30, 14, 230, 23, 280, 3, 5, 3, 37, 3, 5, 3, 7, 2, 0, 2, 0, 2, 0, 2, 30, 3, 52, 2, 6, 2, 0, 4, 2, 2, 6, 4, 3, 3, 5, 5, 12, 6, 2, 2, 6, 67, 1, 20, 0, 29, 0, 14, 0, 17, 4, 60, 12, 5, 0, 4, 11, 18, 0, 5, 0, 3, 9, 2, 0, 4, 4, 7, 0, 2, 0, 2, 0, 2, 3, 2, 10, 3, 3, 6, 4, 5, 0, 53, 1, 2684, 46, 2, 46, 2, 132, 7, 6, 15, 37, 11, 53, 10, 0, 17, 22, 10, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 31, 48, 0, 470, 1, 36, 5, 2, 4, 6, 1, 5, 85, 3, 1, 3, 2, 2, 89, 2, 3, 6, 40, 4, 93, 18, 23, 57, 15, 513, 6581, 75, 20939, 53, 1164, 68, 45, 3, 268, 4, 27, 21, 31, 3, 13, 13, 1, 2, 24, 9, 69, 11, 1, 38, 8, 3, 102, 3, 1, 111, 44, 25, 51, 13, 68, 12, 9, 7, 23, 4, 0, 5, 45, 3, 35, 13, 28, 4, 64, 15, 10, 39, 54, 10, 13, 3, 9, 7, 22, 4, 1, 5, 66, 25, 2, 227, 42, 2, 1, 3, 9, 7, 11171, 13, 22, 5, 48, 8453, 301, 3, 61, 3, 105, 39, 6, 13, 4, 6, 11, 2, 12, 2, 4, 2, 0, 2, 1, 2, 1, 2, 107, 34, 362, 19, 63, 3, 53, 41, 11, 5, 15, 17, 6, 13, 1, 25, 2, 33, 4, 2, 134, 20, 9, 8, 25, 5, 0, 2, 25, 12, 88, 4, 5, 3, 5, 3, 5, 3, 2];\nvar code = 0;\nvar str = [];\nfor (var i = 0; i < wordChars.length; i += 2) {\n str.push(code += wordChars[i]);\n if (wordChars[i + 1])\n str.push(45, code += wordChars[i + 1]);\n}\nexports.wordChars = String.fromCharCode.apply(null, str);\n\n});\n\nace.define(\"ace/mode/text\",[\"require\",\"exports\",\"module\",\"ace/config\",\"ace/tokenizer\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/unicode\",\"ace/lib/lang\",\"ace/token_iterator\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar config = require(\"../config\");\nvar Tokenizer = require(\"../tokenizer\").Tokenizer;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar unicode = require(\"../unicode\");\nvar lang = require(\"../lib/lang\");\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar Range = require(\"../range\").Range;\nvar Mode = function () {\n this.HighlightRules = TextHighlightRules;\n};\n(function () {\n this.$defaultBehaviour = new CstyleBehaviour();\n this.tokenRe = new RegExp(\"^[\" + unicode.wordChars + \"\\\\$_]+\", \"g\");\n this.nonTokenRe = new RegExp(\"^(?:[^\" + unicode.wordChars + \"\\\\$_]|\\\\s])+\", \"g\");\n this.getTokenizer = function () {\n if (!this.$tokenizer) {\n this.$highlightRules = this.$highlightRules || new this.HighlightRules(this.$highlightRuleConfig);\n this.$tokenizer = new Tokenizer(this.$highlightRules.getRules());\n }\n return this.$tokenizer;\n };\n this.lineCommentStart = \"\";\n this.blockComment = \"\";\n this.toggleCommentLines = function (state, session, startRow, endRow) {\n var doc = session.doc;\n var ignoreBlankLines = true;\n var shouldRemove = true;\n var minIndent = Infinity;\n var tabSize = session.getTabSize();\n var insertAtTabStop = false;\n if (!this.lineCommentStart) {\n if (!this.blockComment)\n return false;\n var lineCommentStart = this.blockComment.start;\n var lineCommentEnd = this.blockComment.end;\n var regexpStart = new RegExp(\"^(\\\\s*)(?:\" + lang.escapeRegExp(lineCommentStart) + \")\");\n var regexpEnd = new RegExp(\"(?:\" + lang.escapeRegExp(lineCommentEnd) + \")\\\\s*$\");\n var comment = function (line, i) {\n if (testRemove(line, i))\n return;\n if (!ignoreBlankLines || /\\S/.test(line)) {\n doc.insertInLine({ row: i, column: line.length }, lineCommentEnd);\n doc.insertInLine({ row: i, column: minIndent }, lineCommentStart);\n }\n };\n var uncomment = function (line, i) {\n var m;\n if (m = line.match(regexpEnd))\n doc.removeInLine(i, line.length - m[0].length, line.length);\n if (m = line.match(regexpStart))\n doc.removeInLine(i, m[1].length, m[0].length);\n };\n var testRemove = function (line, row) {\n if (regexpStart.test(line))\n return true;\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n if (tokens[i].type === \"comment\")\n return true;\n }\n };\n }\n else {\n if (Array.isArray(this.lineCommentStart)) {\n var regexpStart = this.lineCommentStart.map(lang.escapeRegExp).join(\"|\");\n var lineCommentStart = this.lineCommentStart[0];\n }\n else {\n var regexpStart = lang.escapeRegExp(this.lineCommentStart);\n var lineCommentStart = this.lineCommentStart;\n }\n regexpStart = new RegExp(\"^(\\\\s*)(?:\" + regexpStart + \") ?\");\n insertAtTabStop = session.getUseSoftTabs();\n var uncomment = function (line, i) {\n var m = line.match(regexpStart);\n if (!m)\n return;\n var start = m[1].length, end = m[0].length;\n if (!shouldInsertSpace(line, start, end) && m[0][end - 1] == \" \")\n end--;\n doc.removeInLine(i, start, end);\n };\n var commentWithSpace = lineCommentStart + \" \";\n var comment = function (line, i) {\n if (!ignoreBlankLines || /\\S/.test(line)) {\n if (shouldInsertSpace(line, minIndent, minIndent))\n doc.insertInLine({ row: i, column: minIndent }, commentWithSpace);\n else\n doc.insertInLine({ row: i, column: minIndent }, lineCommentStart);\n }\n };\n var testRemove = function (line, i) {\n return regexpStart.test(line);\n };\n var shouldInsertSpace = function (line, before, after) {\n var spaces = 0;\n while (before-- && line.charAt(before) == \" \")\n spaces++;\n if (spaces % tabSize != 0)\n return false;\n var spaces = 0;\n while (line.charAt(after++) == \" \")\n spaces++;\n if (tabSize > 2)\n return spaces % tabSize != tabSize - 1;\n else\n return spaces % tabSize == 0;\n };\n }\n function iter(fun) {\n for (var i = startRow; i <= endRow; i++)\n fun(doc.getLine(i), i);\n }\n var minEmptyLength = Infinity;\n iter(function (line, i) {\n var indent = line.search(/\\S/);\n if (indent !== -1) {\n if (indent < minIndent)\n minIndent = indent;\n if (shouldRemove && !testRemove(line, i))\n shouldRemove = false;\n }\n else if (minEmptyLength > line.length) {\n minEmptyLength = line.length;\n }\n });\n if (minIndent == Infinity) {\n minIndent = minEmptyLength;\n ignoreBlankLines = false;\n shouldRemove = false;\n }\n if (insertAtTabStop && minIndent % tabSize != 0)\n minIndent = Math.floor(minIndent / tabSize) * tabSize;\n iter(shouldRemove ? uncomment : comment);\n };\n this.toggleBlockComment = function (state, session, range, cursor) {\n var comment = this.blockComment;\n if (!comment)\n return;\n if (!comment.start && comment[0])\n comment = comment[0];\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n var sel = session.selection;\n var initialRange = session.selection.toOrientedRange();\n var startRow, colDiff;\n if (token && /comment/.test(token.type)) {\n var startRange, endRange;\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.start);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n startRange = new Range(row, column, row, column + comment.start.length);\n break;\n }\n token = iterator.stepBackward();\n }\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.end);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n endRange = new Range(row, column, row, column + comment.end.length);\n break;\n }\n token = iterator.stepForward();\n }\n if (endRange)\n session.remove(endRange);\n if (startRange) {\n session.remove(startRange);\n startRow = startRange.start.row;\n colDiff = -comment.start.length;\n }\n }\n else {\n colDiff = comment.start.length;\n startRow = range.start.row;\n session.insert(range.end, comment.end);\n session.insert(range.start, comment.start);\n }\n if (initialRange.start.row == startRow)\n initialRange.start.column += colDiff;\n if (initialRange.end.row == startRow)\n initialRange.end.column += colDiff;\n session.selection.fromOrientedRange(initialRange);\n };\n this.getNextLineIndent = function (state, line, tab) {\n return this.$getIndent(line);\n };\n this.checkOutdent = function (state, line, input) {\n return false;\n };\n this.autoOutdent = function (state, doc, row) {\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n this.createWorker = function (session) {\n return null;\n };\n this.createModeDelegates = function (mapping) {\n this.$embeds = [];\n this.$modes = {};\n for (var i in mapping) {\n if (mapping[i]) {\n var Mode = mapping[i];\n var id = Mode.prototype.$id;\n var mode = config.$modes[id];\n if (!mode)\n config.$modes[id] = mode = new Mode();\n if (!config.$modes[i])\n config.$modes[i] = mode;\n this.$embeds.push(i);\n this.$modes[i] = mode;\n }\n }\n var delegations = [\"toggleBlockComment\", \"toggleCommentLines\", \"getNextLineIndent\",\n \"checkOutdent\", \"autoOutdent\", \"transformAction\", \"getCompletions\"];\n for (var i = 0; i < delegations.length; i++) {\n (function (scope) {\n var functionName = delegations[i];\n var defaultHandler = scope[functionName];\n scope[delegations[i]] = function () {\n return this.$delegator(functionName, arguments, defaultHandler);\n };\n }(this));\n }\n };\n this.$delegator = function (method, args, defaultHandler) {\n var state = args[0] || \"start\";\n if (typeof state != \"string\") {\n if (Array.isArray(state[2])) {\n var language = state[2][state[2].length - 1];\n var mode = this.$modes[language];\n if (mode)\n return mode[method].apply(mode, [state[1]].concat([].slice.call(args, 1)));\n }\n state = state[0] || \"start\";\n }\n for (var i = 0; i < this.$embeds.length; i++) {\n if (!this.$modes[this.$embeds[i]])\n continue;\n var split = state.split(this.$embeds[i]);\n if (!split[0] && split[1]) {\n args[0] = split[1];\n var mode = this.$modes[this.$embeds[i]];\n return mode[method].apply(mode, args);\n }\n }\n var ret = defaultHandler.apply(this, args);\n return defaultHandler ? ret : undefined;\n };\n this.transformAction = function (state, action, editor, session, param) {\n if (this.$behaviour) {\n var behaviours = this.$behaviour.getBehaviours();\n for (var key in behaviours) {\n if (behaviours[key][action]) {\n var ret = behaviours[key][action].apply(this, arguments);\n if (ret) {\n return ret;\n }\n }\n }\n }\n };\n this.getKeywords = function (append) {\n if (!this.completionKeywords) {\n var rules = this.$tokenizer.rules;\n var completionKeywords = [];\n for (var rule in rules) {\n var ruleItr = rules[rule];\n for (var r = 0, l = ruleItr.length; r < l; r++) {\n if (typeof ruleItr[r].token === \"string\") {\n if (/keyword|support|storage/.test(ruleItr[r].token))\n completionKeywords.push(ruleItr[r].regex);\n }\n else if (typeof ruleItr[r].token === \"object\") {\n for (var a = 0, aLength = ruleItr[r].token.length; a < aLength; a++) {\n if (/keyword|support|storage/.test(ruleItr[r].token[a])) {\n var rule = ruleItr[r].regex.match(/\\(.+?\\)/g)[a];\n completionKeywords.push(rule.substr(1, rule.length - 2));\n }\n }\n }\n }\n }\n this.completionKeywords = completionKeywords;\n }\n if (!append)\n return this.$keywordList;\n return completionKeywords.concat(this.$keywordList || []);\n };\n this.$createKeywordList = function () {\n if (!this.$highlightRules)\n this.getTokenizer();\n return this.$keywordList = this.$highlightRules.$keywordList || [];\n };\n this.getCompletions = function (state, session, pos, prefix) {\n var keywords = this.$keywordList || this.$createKeywordList();\n return keywords.map(function (word) {\n return {\n name: word,\n value: word,\n score: 0,\n meta: \"keyword\"\n };\n });\n };\n this.$id = \"ace/mode/text\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n});\n\nace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nfunction throwDeltaError(delta, errorText) {\n console.log(\"Invalid Delta:\", delta);\n throw \"Invalid Delta: \" + errorText;\n}\nfunction positionInDocument(docLines, position) {\n return position.row >= 0 && position.row < docLines.length &&\n position.column >= 0 && position.column <= docLines[position.row].length;\n}\nfunction validateDelta(docLines, delta) {\n if (delta.action != \"insert\" && delta.action != \"remove\")\n throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n if (!(delta.lines instanceof Array))\n throwDeltaError(delta, \"delta.lines must be an Array\");\n if (!delta.start || !delta.end)\n throwDeltaError(delta, \"delta.start/end must be an present\");\n var start = delta.start;\n if (!positionInDocument(docLines, delta.start))\n throwDeltaError(delta, \"delta.start must be contained in document\");\n var end = delta.end;\n if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n var numRangeRows = end.row - start.row;\n var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n throwDeltaError(delta, \"delta.range must match delta lines\");\n}\nexports.applyDelta = function (docLines, delta, doNotValidate) {\n var row = delta.start.row;\n var startColumn = delta.start.column;\n var line = docLines[row] || \"\";\n switch (delta.action) {\n case \"insert\":\n var lines = delta.lines;\n if (lines.length === 1) {\n docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n }\n else {\n var args = [row, 1].concat(delta.lines);\n docLines.splice.apply(docLines, args);\n docLines[row] = line.substring(0, startColumn) + docLines[row];\n docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n }\n break;\n case \"remove\":\n var endColumn = delta.end.column;\n var endRow = delta.end.row;\n if (row === endRow) {\n docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n }\n else {\n docLines.splice(row, endRow - row + 1, line.substring(0, startColumn) + docLines[endRow].substring(endColumn));\n }\n break;\n }\n};\n\n});\n\nace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Anchor = /** @class */ (function () {\n function Anchor(doc, row, column) {\n this.$onChange = this.onChange.bind(this);\n this.attach(doc);\n if (typeof column == \"undefined\")\n this.setPosition(row.row, row.column);\n else\n this.setPosition(row, column);\n }\n Anchor.prototype.getPosition = function () {\n return this.$clipPositionToDocument(this.row, this.column);\n };\n Anchor.prototype.getDocument = function () {\n return this.document;\n };\n Anchor.prototype.onChange = function (delta) {\n if (delta.start.row == delta.end.row && delta.start.row != this.row)\n return;\n if (delta.start.row > this.row)\n return;\n var point = $getTransformedPoint(delta, { row: this.row, column: this.column }, this.$insertRight);\n this.setPosition(point.row, point.column, true);\n };\n Anchor.prototype.setPosition = function (row, column, noClip) {\n var pos;\n if (noClip) {\n pos = {\n row: row,\n column: column\n };\n }\n else {\n pos = this.$clipPositionToDocument(row, column);\n }\n if (this.row == pos.row && this.column == pos.column)\n return;\n var old = {\n row: this.row,\n column: this.column\n };\n this.row = pos.row;\n this.column = pos.column;\n this._signal(\"change\", {\n old: old,\n value: pos\n });\n };\n Anchor.prototype.detach = function () {\n this.document.off(\"change\", this.$onChange);\n };\n Anchor.prototype.attach = function (doc) {\n this.document = doc || this.document;\n this.document.on(\"change\", this.$onChange);\n };\n Anchor.prototype.$clipPositionToDocument = function (row, column) {\n var pos = {};\n if (row >= this.document.getLength()) {\n pos.row = Math.max(0, this.document.getLength() - 1);\n pos.column = this.document.getLine(pos.row).length;\n }\n else if (row < 0) {\n pos.row = 0;\n pos.column = 0;\n }\n else {\n pos.row = row;\n pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n }\n if (column < 0)\n pos.column = 0;\n return pos;\n };\n return Anchor;\n}());\nAnchor.prototype.$insertRight = false;\noop.implement(Anchor.prototype, EventEmitter);\nfunction $pointsInOrder(point1, point2, equalPointsInOrder) {\n var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n}\nfunction $getTransformedPoint(delta, point, moveIfEqual) {\n var deltaIsInsert = delta.action == \"insert\";\n var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row);\n var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n var deltaStart = delta.start;\n var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n return {\n row: point.row,\n column: point.column\n };\n }\n if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n return {\n row: point.row + deltaRowShift,\n column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n };\n }\n return {\n row: deltaStart.row,\n column: deltaStart.column\n };\n}\nexports.Anchor = Anchor;\n\n});\n\nace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar applyDelta = require(\"./apply_delta\").applyDelta;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Anchor = require(\"./anchor\").Anchor;\nvar Document = /** @class */ (function () {\n function Document(textOrLines) {\n this.$lines = [\"\"];\n if (textOrLines.length === 0) {\n this.$lines = [\"\"];\n }\n else if (Array.isArray(textOrLines)) {\n this.insertMergedLines({ row: 0, column: 0 }, textOrLines);\n }\n else {\n this.insert({ row: 0, column: 0 }, textOrLines);\n }\n }\n Document.prototype.setValue = function (text) {\n var len = this.getLength() - 1;\n this.remove(new Range(0, 0, len, this.getLine(len).length));\n this.insert({ row: 0, column: 0 }, text || \"\");\n };\n Document.prototype.getValue = function () {\n return this.getAllLines().join(this.getNewLineCharacter());\n };\n Document.prototype.createAnchor = function (row, column) {\n return new Anchor(this, row, column);\n };\n Document.prototype.$detectNewLine = function (text) {\n var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n this.$autoNewLine = match ? match[1] : \"\\n\";\n this._signal(\"changeNewLineMode\");\n };\n Document.prototype.getNewLineCharacter = function () {\n switch (this.$newLineMode) {\n case \"windows\":\n return \"\\r\\n\";\n case \"unix\":\n return \"\\n\";\n default:\n return this.$autoNewLine || \"\\n\";\n }\n };\n Document.prototype.setNewLineMode = function (newLineMode) {\n if (this.$newLineMode === newLineMode)\n return;\n this.$newLineMode = newLineMode;\n this._signal(\"changeNewLineMode\");\n };\n Document.prototype.getNewLineMode = function () {\n return this.$newLineMode;\n };\n Document.prototype.isNewLine = function (text) {\n return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n };\n Document.prototype.getLine = function (row) {\n return this.$lines[row] || \"\";\n };\n Document.prototype.getLines = function (firstRow, lastRow) {\n return this.$lines.slice(firstRow, lastRow + 1);\n };\n Document.prototype.getAllLines = function () {\n return this.getLines(0, this.getLength());\n };\n Document.prototype.getLength = function () {\n return this.$lines.length;\n };\n Document.prototype.getTextRange = function (range) {\n return this.getLinesForRange(range).join(this.getNewLineCharacter());\n };\n Document.prototype.getLinesForRange = function (range) {\n var lines;\n if (range.start.row === range.end.row) {\n lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n }\n else {\n lines = this.getLines(range.start.row, range.end.row);\n lines[0] = (lines[0] || \"\").substring(range.start.column);\n var l = lines.length - 1;\n if (range.end.row - range.start.row == l)\n lines[l] = lines[l].substring(0, range.end.column);\n }\n return lines;\n };\n Document.prototype.insertLines = function (row, lines) {\n console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n return this.insertFullLines(row, lines);\n };\n Document.prototype.removeLines = function (firstRow, lastRow) {\n console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n return this.removeFullLines(firstRow, lastRow);\n };\n Document.prototype.insertNewLine = function (position) {\n console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\");\n return this.insertMergedLines(position, [\"\", \"\"]);\n };\n Document.prototype.insert = function (position, text) {\n if (this.getLength() <= 1)\n this.$detectNewLine(text);\n return this.insertMergedLines(position, this.$split(text));\n };\n Document.prototype.insertInLine = function (position, text) {\n var start = this.clippedPos(position.row, position.column);\n var end = this.pos(position.row, position.column + text.length);\n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: [text]\n }, true);\n return this.clonePos(end);\n };\n Document.prototype.clippedPos = function (row, column) {\n var length = this.getLength();\n if (row === undefined) {\n row = length;\n }\n else if (row < 0) {\n row = 0;\n }\n else if (row >= length) {\n row = length - 1;\n column = undefined;\n }\n var line = this.getLine(row);\n if (column == undefined)\n column = line.length;\n column = Math.min(Math.max(column, 0), line.length);\n return { row: row, column: column };\n };\n Document.prototype.clonePos = function (pos) {\n return { row: pos.row, column: pos.column };\n };\n Document.prototype.pos = function (row, column) {\n return { row: row, column: column };\n };\n Document.prototype.$clipPosition = function (position) {\n var length = this.getLength();\n if (position.row >= length) {\n position.row = Math.max(0, length - 1);\n position.column = this.getLine(length - 1).length;\n }\n else {\n position.row = Math.max(0, position.row);\n position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n }\n return position;\n };\n Document.prototype.insertFullLines = function (row, lines) {\n row = Math.min(Math.max(row, 0), this.getLength());\n var column = 0;\n if (row < this.getLength()) {\n lines = lines.concat([\"\"]);\n column = 0;\n }\n else {\n lines = [\"\"].concat(lines);\n row--;\n column = this.$lines[row].length;\n }\n this.insertMergedLines({ row: row, column: column }, lines);\n };\n Document.prototype.insertMergedLines = function (position, lines) {\n var start = this.clippedPos(position.row, position.column);\n var end = {\n row: start.row + lines.length - 1,\n column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n };\n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: lines\n });\n return this.clonePos(end);\n };\n Document.prototype.remove = function (range) {\n var start = this.clippedPos(range.start.row, range.start.column);\n var end = this.clippedPos(range.end.row, range.end.column);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({ start: start, end: end })\n });\n return this.clonePos(start);\n };\n Document.prototype.removeInLine = function (row, startColumn, endColumn) {\n var start = this.clippedPos(row, startColumn);\n var end = this.clippedPos(row, endColumn);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({ start: start, end: end })\n }, true);\n return this.clonePos(start);\n };\n Document.prototype.removeFullLines = function (firstRow, lastRow) {\n firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n lastRow = Math.min(Math.max(0, lastRow), this.getLength() - 1);\n var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n var deleteLastNewLine = lastRow < this.getLength() - 1;\n var startRow = (deleteFirstNewLine ? firstRow - 1 : firstRow);\n var startCol = (deleteFirstNewLine ? this.getLine(startRow).length : 0);\n var endRow = (deleteLastNewLine ? lastRow + 1 : lastRow);\n var endCol = (deleteLastNewLine ? 0 : this.getLine(endRow).length);\n var range = new Range(startRow, startCol, endRow, endCol);\n var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n this.applyDelta({\n start: range.start,\n end: range.end,\n action: \"remove\",\n lines: this.getLinesForRange(range)\n });\n return deletedLines;\n };\n Document.prototype.removeNewLine = function (row) {\n if (row < this.getLength() - 1 && row >= 0) {\n this.applyDelta({\n start: this.pos(row, this.getLine(row).length),\n end: this.pos(row + 1, 0),\n action: \"remove\",\n lines: [\"\", \"\"]\n });\n }\n };\n Document.prototype.replace = function (range, text) {\n if (!(range instanceof Range))\n range = Range.fromPoints(range.start, range.end);\n if (text.length === 0 && range.isEmpty())\n return range.start;\n if (text == this.getTextRange(range))\n return range.end;\n this.remove(range);\n var end;\n if (text) {\n end = this.insert(range.start, text);\n }\n else {\n end = range.start;\n }\n return end;\n };\n Document.prototype.applyDeltas = function (deltas) {\n for (var i = 0; i < deltas.length; i++) {\n this.applyDelta(deltas[i]);\n }\n };\n Document.prototype.revertDeltas = function (deltas) {\n for (var i = deltas.length - 1; i >= 0; i--) {\n this.revertDelta(deltas[i]);\n }\n };\n Document.prototype.applyDelta = function (delta, doNotValidate) {\n var isInsert = delta.action == \"insert\";\n if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n : !Range.comparePoints(delta.start, delta.end)) {\n return;\n }\n if (isInsert && delta.lines.length > 20000) {\n this.$splitAndapplyLargeDelta(delta, 20000);\n }\n else {\n applyDelta(this.$lines, delta, doNotValidate);\n this._signal(\"change\", delta);\n }\n };\n Document.prototype.$safeApplyDelta = function (delta) {\n var docLength = this.$lines.length;\n if (delta.action == \"remove\" && delta.start.row < docLength && delta.end.row < docLength\n || delta.action == \"insert\" && delta.start.row <= docLength) {\n this.applyDelta(delta);\n }\n };\n Document.prototype.$splitAndapplyLargeDelta = function (delta, MAX) {\n var lines = delta.lines;\n var l = lines.length - MAX + 1;\n var row = delta.start.row;\n var column = delta.start.column;\n for (var from = 0, to = 0; from < l; from = to) {\n to += MAX - 1;\n var chunk = lines.slice(from, to);\n chunk.push(\"\");\n this.applyDelta({\n start: this.pos(row + from, column),\n end: this.pos(row + to, column = 0),\n action: delta.action,\n lines: chunk\n }, true);\n }\n delta.lines = lines.slice(from);\n delta.start.row = row + from;\n delta.start.column = column;\n this.applyDelta(delta, true);\n };\n Document.prototype.revertDelta = function (delta) {\n this.$safeApplyDelta({\n start: this.clonePos(delta.start),\n end: this.clonePos(delta.end),\n action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n lines: delta.lines.slice()\n });\n };\n Document.prototype.indexToPosition = function (index, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n for (var i = startRow || 0, l = lines.length; i < l; i++) {\n index -= lines[i].length + newlineLength;\n if (index < 0)\n return { row: i, column: index + lines[i].length + newlineLength };\n }\n return { row: l - 1, column: index + lines[l - 1].length + newlineLength };\n };\n Document.prototype.positionToIndex = function (pos, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n var index = 0;\n var row = Math.min(pos.row, lines.length);\n for (var i = startRow || 0; i < row; ++i)\n index += lines[i].length + newlineLength;\n return index + pos.column;\n };\n Document.prototype.$split = function (text) {\n return text.split(/\\r\\n|\\r|\\n/);\n };\n return Document;\n}());\nDocument.prototype.$autoNewLine = \"\";\nDocument.prototype.$newLineMode = \"auto\";\noop.implement(Document.prototype, EventEmitter);\nexports.Document = Document;\n\n});\n\nace.define(\"ace/background_tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar BackgroundTokenizer = /** @class */ (function () {\n function BackgroundTokenizer(tokenizer, editor) {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.tokenizer = tokenizer;\n var self = this;\n this.$worker = function () {\n if (!self.running) {\n return;\n }\n var workerStart = new Date();\n var currentLine = self.currentLine;\n var endLine = -1;\n var doc = self.doc;\n var startLine = currentLine;\n while (self.lines[currentLine])\n currentLine++;\n var len = doc.getLength();\n var processedLines = 0;\n self.running = false;\n while (currentLine < len) {\n self.$tokenizeRow(currentLine);\n endLine = currentLine;\n do {\n currentLine++;\n } while (self.lines[currentLine]);\n processedLines++;\n if ((processedLines % 5 === 0) && (new Date() - workerStart) > 20) {\n self.running = setTimeout(self.$worker, 20);\n break;\n }\n }\n self.currentLine = currentLine;\n if (endLine == -1)\n endLine = currentLine;\n if (startLine <= endLine)\n self.fireUpdateEvent(startLine, endLine);\n };\n }\n BackgroundTokenizer.prototype.setTokenizer = function (tokenizer) {\n this.tokenizer = tokenizer;\n this.lines = [];\n this.states = [];\n this.start(0);\n };\n BackgroundTokenizer.prototype.setDocument = function (doc) {\n this.doc = doc;\n this.lines = [];\n this.states = [];\n this.stop();\n };\n BackgroundTokenizer.prototype.fireUpdateEvent = function (firstRow, lastRow) {\n var data = {\n first: firstRow,\n last: lastRow\n };\n this._signal(\"update\", { data: data });\n };\n BackgroundTokenizer.prototype.start = function (startRow) {\n this.currentLine = Math.min(startRow || 0, this.currentLine, this.doc.getLength());\n this.lines.splice(this.currentLine, this.lines.length);\n this.states.splice(this.currentLine, this.states.length);\n this.stop();\n this.running = setTimeout(this.$worker, 700);\n };\n BackgroundTokenizer.prototype.scheduleStart = function () {\n if (!this.running)\n this.running = setTimeout(this.$worker, 700);\n };\n BackgroundTokenizer.prototype.$updateOnChange = function (delta) {\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n if (len === 0) {\n this.lines[startRow] = null;\n }\n else if (delta.action == \"remove\") {\n this.lines.splice(startRow, len + 1, null);\n this.states.splice(startRow, len + 1, null);\n }\n else {\n var args = Array(len + 1);\n args.unshift(startRow, 1);\n this.lines.splice.apply(this.lines, args);\n this.states.splice.apply(this.states, args);\n }\n this.currentLine = Math.min(startRow, this.currentLine, this.doc.getLength());\n this.stop();\n };\n BackgroundTokenizer.prototype.stop = function () {\n if (this.running)\n clearTimeout(this.running);\n this.running = false;\n };\n BackgroundTokenizer.prototype.getTokens = function (row) {\n return this.lines[row] || this.$tokenizeRow(row);\n };\n BackgroundTokenizer.prototype.getState = function (row) {\n if (this.currentLine == row)\n this.$tokenizeRow(row);\n return this.states[row] || \"start\";\n };\n BackgroundTokenizer.prototype.$tokenizeRow = function (row) {\n var line = this.doc.getLine(row);\n var state = this.states[row - 1];\n var data = this.tokenizer.getLineTokens(line, state, row);\n if (this.states[row] + \"\" !== data.state + \"\") {\n this.states[row] = data.state;\n this.lines[row + 1] = null;\n if (this.currentLine > row + 1)\n this.currentLine = row + 1;\n }\n else if (this.currentLine == row) {\n this.currentLine = row + 1;\n }\n return this.lines[row] = data.tokens;\n };\n BackgroundTokenizer.prototype.cleanup = function () {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.removeAllListeners();\n };\n return BackgroundTokenizer;\n}());\noop.implement(BackgroundTokenizer.prototype, EventEmitter);\nexports.BackgroundTokenizer = BackgroundTokenizer;\n\n});\n\nace.define(\"ace/search_highlight\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"./lib/lang\");\nvar Range = require(\"./range\").Range;\nvar SearchHighlight = /** @class */ (function () {\n function SearchHighlight(regExp, clazz, type) {\n if (type === void 0) { type = \"text\"; }\n this.setRegexp(regExp);\n this.clazz = clazz;\n this.type = type;\n }\n SearchHighlight.prototype.setRegexp = function (regExp) {\n if (this.regExp + \"\" == regExp + \"\")\n return;\n this.regExp = regExp;\n this.cache = [];\n };\n SearchHighlight.prototype.update = function (html, markerLayer, session, config) {\n if (!this.regExp)\n return;\n var start = config.firstRow, end = config.lastRow;\n var renderedMarkerRanges = {};\n for (var i = start; i <= end; i++) {\n var ranges = this.cache[i];\n if (ranges == null) {\n ranges = lang.getMatchOffsets(session.getLine(i), this.regExp);\n if (ranges.length > this.MAX_RANGES)\n ranges = ranges.slice(0, this.MAX_RANGES);\n ranges = ranges.map(function (match) {\n return new Range(i, match.offset, i, match.offset + match.length);\n });\n this.cache[i] = ranges.length ? ranges : \"\";\n }\n for (var j = ranges.length; j--;) {\n var rangeToAddMarkerTo = ranges[j].toScreenRange(session);\n var rangeAsString = rangeToAddMarkerTo.toString();\n if (renderedMarkerRanges[rangeAsString])\n continue;\n renderedMarkerRanges[rangeAsString] = true;\n markerLayer.drawSingleLineMarker(html, rangeToAddMarkerTo, this.clazz, config);\n }\n }\n };\n return SearchHighlight;\n}());\nSearchHighlight.prototype.MAX_RANGES = 500;\nexports.SearchHighlight = SearchHighlight;\n\n});\n\nace.define(\"ace/undomanager\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar UndoManager = /** @class */ (function () {\n function UndoManager() {\n this.$maxRev = 0;\n this.$fromUndo = false;\n this.$undoDepth = Infinity;\n this.reset();\n }\n UndoManager.prototype.addSession = function (session) {\n this.$session = session;\n };\n UndoManager.prototype.add = function (delta, allowMerge, session) {\n if (this.$fromUndo)\n return;\n if (delta == this.$lastDelta)\n return;\n if (!this.$keepRedoStack)\n this.$redoStack.length = 0;\n if (allowMerge === false || !this.lastDeltas) {\n this.lastDeltas = [];\n var undoStackLength = this.$undoStack.length;\n if (undoStackLength > this.$undoDepth - 1) {\n this.$undoStack.splice(0, undoStackLength - this.$undoDepth + 1);\n }\n this.$undoStack.push(this.lastDeltas);\n delta.id = this.$rev = ++this.$maxRev;\n }\n if (delta.action == \"remove\" || delta.action == \"insert\")\n this.$lastDelta = delta;\n this.lastDeltas.push(delta);\n };\n UndoManager.prototype.addSelection = function (selection, rev) {\n this.selections.push({\n value: selection,\n rev: rev || this.$rev\n });\n };\n UndoManager.prototype.startNewGroup = function () {\n this.lastDeltas = null;\n return this.$rev;\n };\n UndoManager.prototype.markIgnored = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n var stack = this.$undoStack;\n for (var i = stack.length; i--;) {\n var delta = stack[i][0];\n if (delta.id <= from)\n break;\n if (delta.id < to)\n delta.ignore = true;\n }\n this.lastDeltas = null;\n };\n UndoManager.prototype.getSelection = function (rev, after) {\n var stack = this.selections;\n for (var i = stack.length; i--;) {\n var selection = stack[i];\n if (selection.rev < rev) {\n if (after)\n selection = stack[i + 1];\n return selection;\n }\n }\n };\n UndoManager.prototype.getRevision = function () {\n return this.$rev;\n };\n UndoManager.prototype.getDeltas = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n var stack = this.$undoStack;\n var end = null, start = 0;\n for (var i = stack.length; i--;) {\n var delta = stack[i][0];\n if (delta.id < to && !end)\n end = i + 1;\n if (delta.id <= from) {\n start = i + 1;\n break;\n }\n }\n return stack.slice(start, end);\n };\n UndoManager.prototype.getChangedRanges = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n };\n UndoManager.prototype.getChangedLines = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n };\n UndoManager.prototype.undo = function (session, dontSelect) {\n this.lastDeltas = null;\n var stack = this.$undoStack;\n if (!rearrangeUndoStack(stack, stack.length))\n return;\n if (!session)\n session = this.$session;\n if (this.$redoStackBaseRev !== this.$rev && this.$redoStack.length)\n this.$redoStack = [];\n this.$fromUndo = true;\n var deltaSet = stack.pop();\n var undoSelectionRange = null;\n if (deltaSet) {\n undoSelectionRange = session.undoChanges(deltaSet, dontSelect);\n this.$redoStack.push(deltaSet);\n this.$syncRev();\n }\n this.$fromUndo = false;\n return undoSelectionRange;\n };\n UndoManager.prototype.redo = function (session, dontSelect) {\n this.lastDeltas = null;\n if (!session)\n session = this.$session;\n this.$fromUndo = true;\n if (this.$redoStackBaseRev != this.$rev) {\n var diff = this.getDeltas(this.$redoStackBaseRev, this.$rev + 1);\n rebaseRedoStack(this.$redoStack, diff);\n this.$redoStackBaseRev = this.$rev;\n this.$redoStack.forEach(function (x) {\n x[0].id = ++this.$maxRev;\n }, this);\n }\n var deltaSet = this.$redoStack.pop();\n var redoSelectionRange = null;\n if (deltaSet) {\n redoSelectionRange = session.redoChanges(deltaSet, dontSelect);\n this.$undoStack.push(deltaSet);\n this.$syncRev();\n }\n this.$fromUndo = false;\n return redoSelectionRange;\n };\n UndoManager.prototype.$syncRev = function () {\n var stack = this.$undoStack;\n var nextDelta = stack[stack.length - 1];\n var id = nextDelta && nextDelta[0].id || 0;\n this.$redoStackBaseRev = id;\n this.$rev = id;\n };\n UndoManager.prototype.reset = function () {\n this.lastDeltas = null;\n this.$lastDelta = null;\n this.$undoStack = [];\n this.$redoStack = [];\n this.$rev = 0;\n this.mark = 0;\n this.$redoStackBaseRev = this.$rev;\n this.selections = [];\n };\n UndoManager.prototype.canUndo = function () {\n return this.$undoStack.length > 0;\n };\n UndoManager.prototype.canRedo = function () {\n return this.$redoStack.length > 0;\n };\n UndoManager.prototype.bookmark = function (rev) {\n if (rev == undefined)\n rev = this.$rev;\n this.mark = rev;\n };\n UndoManager.prototype.isAtBookmark = function () {\n return this.$rev === this.mark;\n };\n UndoManager.prototype.toJSON = function () {\n return {\n $redoStack: this.$redoStack,\n $undoStack: this.$undoStack\n };\n };\n UndoManager.prototype.fromJSON = function (json) {\n this.reset();\n this.$undoStack = json.$undoStack;\n this.$redoStack = json.$redoStack;\n };\n UndoManager.prototype.$prettyPrint = function (delta) {\n if (delta)\n return stringifyDelta(delta);\n return stringifyDelta(this.$undoStack) + \"\\n---\\n\" + stringifyDelta(this.$redoStack);\n };\n return UndoManager;\n}());\nUndoManager.prototype.hasUndo = UndoManager.prototype.canUndo;\nUndoManager.prototype.hasRedo = UndoManager.prototype.canRedo;\nUndoManager.prototype.isClean = UndoManager.prototype.isAtBookmark;\nUndoManager.prototype.markClean = UndoManager.prototype.bookmark;\nfunction rearrangeUndoStack(stack, pos) {\n for (var i = pos; i--;) {\n var deltaSet = stack[i];\n if (deltaSet && !deltaSet[0].ignore) {\n while (i < pos - 1) {\n var swapped = swapGroups(stack[i], stack[i + 1]);\n stack[i] = swapped[0];\n stack[i + 1] = swapped[1];\n i++;\n }\n return true;\n }\n }\n}\nvar Range = require(\"./range\").Range;\nvar cmp = Range.comparePoints;\nvar comparePoints = Range.comparePoints;\nfunction $updateMarkers(delta) {\n var isInsert = delta.action == \"insert\";\n var start = delta.start;\n var end = delta.end;\n var rowShift = (end.row - start.row) * (isInsert ? 1 : -1);\n var colShift = (end.column - start.column) * (isInsert ? 1 : -1);\n if (isInsert)\n end = start;\n for (var i in this.marks) {\n var point = this.marks[i];\n var cmp = comparePoints(point, start);\n if (cmp < 0) {\n continue; // delta starts after the range\n }\n if (cmp === 0) {\n if (isInsert) {\n if (point.bias == 1) {\n cmp = 1;\n }\n else {\n point.bias == -1;\n continue;\n }\n }\n }\n var cmp2 = isInsert ? cmp : comparePoints(point, end);\n if (cmp2 > 0) {\n point.row += rowShift;\n point.column += point.row == end.row ? colShift : 0;\n continue;\n }\n if (!isInsert && cmp2 <= 0) {\n point.row = start.row;\n point.column = start.column;\n if (cmp2 === 0)\n point.bias = 1;\n }\n }\n}\nfunction clonePos(pos) {\n return { row: pos.row, column: pos.column };\n}\nfunction cloneDelta(d) {\n return {\n start: clonePos(d.start),\n end: clonePos(d.end),\n action: d.action,\n lines: d.lines.slice()\n };\n}\nfunction stringifyDelta(d) {\n d = d || this;\n if (Array.isArray(d)) {\n return d.map(stringifyDelta).join(\"\\n\");\n }\n var type = \"\";\n if (d.action) {\n type = d.action == \"insert\" ? \"+\" : \"-\";\n type += \"[\" + d.lines + \"]\";\n }\n else if (d.value) {\n if (Array.isArray(d.value)) {\n type = d.value.map(stringifyRange).join(\"\\n\");\n }\n else {\n type = stringifyRange(d.value);\n }\n }\n if (d.start) {\n type += stringifyRange(d);\n }\n if (d.id || d.rev) {\n type += \"\\t(\" + (d.id || d.rev) + \")\";\n }\n return type;\n}\nfunction stringifyRange(r) {\n return r.start.row + \":\" + r.start.column\n + \"=>\" + r.end.row + \":\" + r.end.column;\n}\nfunction swap(d1, d2) {\n var i1 = d1.action == \"insert\";\n var i2 = d2.action == \"insert\";\n if (i1 && i2) {\n if (cmp(d2.start, d1.end) >= 0) {\n shift(d2, d1, -1);\n }\n else if (cmp(d2.start, d1.start) <= 0) {\n shift(d1, d2, +1);\n }\n else {\n return null;\n }\n }\n else if (i1 && !i2) {\n if (cmp(d2.start, d1.end) >= 0) {\n shift(d2, d1, -1);\n }\n else if (cmp(d2.end, d1.start) <= 0) {\n shift(d1, d2, -1);\n }\n else {\n return null;\n }\n }\n else if (!i1 && i2) {\n if (cmp(d2.start, d1.start) >= 0) {\n shift(d2, d1, +1);\n }\n else if (cmp(d2.start, d1.start) <= 0) {\n shift(d1, d2, +1);\n }\n else {\n return null;\n }\n }\n else if (!i1 && !i2) {\n if (cmp(d2.start, d1.start) >= 0) {\n shift(d2, d1, +1);\n }\n else if (cmp(d2.end, d1.start) <= 0) {\n shift(d1, d2, -1);\n }\n else {\n return null;\n }\n }\n return [d2, d1];\n}\nfunction swapGroups(ds1, ds2) {\n for (var i = ds1.length; i--;) {\n for (var j = 0; j < ds2.length; j++) {\n if (!swap(ds1[i], ds2[j])) {\n while (i < ds1.length) {\n while (j--) {\n swap(ds2[j], ds1[i]);\n }\n j = ds2.length;\n i++;\n }\n return [ds1, ds2];\n }\n }\n }\n ds1.selectionBefore = ds2.selectionBefore =\n ds1.selectionAfter = ds2.selectionAfter = null;\n return [ds2, ds1];\n}\nfunction xform(d1, c1) {\n var i1 = d1.action == \"insert\";\n var i2 = c1.action == \"insert\";\n if (i1 && i2) {\n if (cmp(d1.start, c1.start) < 0) {\n shift(c1, d1, 1);\n }\n else {\n shift(d1, c1, 1);\n }\n }\n else if (i1 && !i2) {\n if (cmp(d1.start, c1.end) >= 0) {\n shift(d1, c1, -1);\n }\n else if (cmp(d1.start, c1.start) <= 0) {\n shift(c1, d1, +1);\n }\n else {\n shift(d1, Range.fromPoints(c1.start, d1.start), -1);\n shift(c1, d1, +1);\n }\n }\n else if (!i1 && i2) {\n if (cmp(c1.start, d1.end) >= 0) {\n shift(c1, d1, -1);\n }\n else if (cmp(c1.start, d1.start) <= 0) {\n shift(d1, c1, +1);\n }\n else {\n shift(c1, Range.fromPoints(d1.start, c1.start), -1);\n shift(d1, c1, +1);\n }\n }\n else if (!i1 && !i2) {\n if (cmp(c1.start, d1.end) >= 0) {\n shift(c1, d1, -1);\n }\n else if (cmp(c1.end, d1.start) <= 0) {\n shift(d1, c1, -1);\n }\n else {\n var before, after;\n if (cmp(d1.start, c1.start) < 0) {\n before = d1;\n d1 = splitDelta(d1, c1.start);\n }\n if (cmp(d1.end, c1.end) > 0) {\n after = splitDelta(d1, c1.end);\n }\n shiftPos(c1.end, d1.start, d1.end, -1);\n if (after && !before) {\n d1.lines = after.lines;\n d1.start = after.start;\n d1.end = after.end;\n after = d1;\n }\n return [c1, before, after].filter(Boolean);\n }\n }\n return [c1, d1];\n}\nfunction shift(d1, d2, dir) {\n shiftPos(d1.start, d2.start, d2.end, dir);\n shiftPos(d1.end, d2.start, d2.end, dir);\n}\nfunction shiftPos(pos, start, end, dir) {\n if (pos.row == (dir == 1 ? start : end).row) {\n pos.column += dir * (end.column - start.column);\n }\n pos.row += dir * (end.row - start.row);\n}\nfunction splitDelta(c, pos) {\n var lines = c.lines;\n var end = c.end;\n c.end = clonePos(pos);\n var rowsBefore = c.end.row - c.start.row;\n var otherLines = lines.splice(rowsBefore, lines.length);\n var col = rowsBefore ? pos.column : pos.column - c.start.column;\n lines.push(otherLines[0].substring(0, col));\n otherLines[0] = otherLines[0].substr(col);\n var rest = {\n start: clonePos(pos),\n end: end,\n lines: otherLines,\n action: c.action\n };\n return rest;\n}\nfunction moveDeltasByOne(redoStack, d) {\n d = cloneDelta(d);\n for (var j = redoStack.length; j--;) {\n var deltaSet = redoStack[j];\n for (var i = 0; i < deltaSet.length; i++) {\n var x = deltaSet[i];\n var xformed = xform(x, d);\n d = xformed[0];\n if (xformed.length != 2) {\n if (xformed[2]) {\n deltaSet.splice(i + 1, 1, xformed[1], xformed[2]);\n i++;\n }\n else if (!xformed[1]) {\n deltaSet.splice(i, 1);\n i--;\n }\n }\n }\n if (!deltaSet.length) {\n redoStack.splice(j, 1);\n }\n }\n return redoStack;\n}\nfunction rebaseRedoStack(redoStack, deltaSets) {\n for (var i = 0; i < deltaSets.length; i++) {\n var deltas = deltaSets[i];\n for (var j = 0; j < deltas.length; j++) {\n moveDeltasByOne(redoStack, deltas[j]);\n }\n }\n}\nexports.UndoManager = UndoManager;\n\n});\n\nace.define(\"ace/edit_session/fold_line\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar FoldLine = /** @class */ (function () {\n function FoldLine(foldData, folds) {\n this.foldData = foldData;\n if (Array.isArray(folds)) {\n this.folds = folds;\n }\n else {\n folds = this.folds = [folds];\n }\n var last = folds[folds.length - 1];\n this.range = new Range(folds[0].start.row, folds[0].start.column, last.end.row, last.end.column);\n this.start = this.range.start;\n this.end = this.range.end;\n this.folds.forEach(function (fold) {\n fold.setFoldLine(this);\n }, this);\n }\n FoldLine.prototype.shiftRow = function (shift) {\n this.start.row += shift;\n this.end.row += shift;\n this.folds.forEach(function (fold) {\n fold.start.row += shift;\n fold.end.row += shift;\n });\n };\n FoldLine.prototype.addFold = function (fold) {\n if (fold.sameRow) {\n if (fold.start.row < this.startRow || fold.endRow > this.endRow) {\n throw new Error(\"Can't add a fold to this FoldLine as it has no connection\");\n }\n this.folds.push(fold);\n this.folds.sort(function (a, b) {\n return -a.range.compareEnd(b.start.row, b.start.column);\n });\n if (this.range.compareEnd(fold.start.row, fold.start.column) > 0) {\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n }\n else if (this.range.compareStart(fold.end.row, fold.end.column) < 0) {\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n }\n else if (fold.start.row == this.end.row) {\n this.folds.push(fold);\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n }\n else if (fold.end.row == this.start.row) {\n this.folds.unshift(fold);\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n else {\n throw new Error(\"Trying to add fold to FoldRow that doesn't have a matching row\");\n }\n fold.foldLine = this;\n };\n FoldLine.prototype.containsRow = function (row) {\n return row >= this.start.row && row <= this.end.row;\n };\n FoldLine.prototype.walk = function (callback, endRow, endColumn) {\n var lastEnd = 0, folds = this.folds, fold, cmp, stop, isNewRow = true;\n if (endRow == null) {\n endRow = this.end.row;\n endColumn = this.end.column;\n }\n for (var i = 0; i < folds.length; i++) {\n fold = folds[i];\n cmp = fold.range.compareStart(endRow, endColumn);\n if (cmp == -1) {\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n return;\n }\n stop = callback(null, fold.start.row, fold.start.column, lastEnd, isNewRow);\n stop = !stop && callback(fold.placeholder, fold.start.row, fold.start.column, lastEnd);\n if (stop || cmp === 0) {\n return;\n }\n isNewRow = !fold.sameRow;\n lastEnd = fold.end.column;\n }\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n };\n FoldLine.prototype.getNextFoldTo = function (row, column) {\n var fold, cmp;\n for (var i = 0; i < this.folds.length; i++) {\n fold = this.folds[i];\n cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n return {\n fold: fold,\n kind: \"after\"\n };\n }\n else if (cmp === 0) {\n return {\n fold: fold,\n kind: \"inside\"\n };\n }\n }\n return null;\n };\n FoldLine.prototype.addRemoveChars = function (row, column, len) {\n var ret = this.getNextFoldTo(row, column), fold, folds;\n if (ret) {\n fold = ret.fold;\n if (ret.kind == \"inside\"\n && fold.start.column != column\n && fold.start.row != row) {\n window.console && window.console.log(row, column, fold);\n }\n else if (fold.start.row == row) {\n folds = this.folds;\n var i = folds.indexOf(fold);\n if (i === 0) {\n this.start.column += len;\n }\n for (i; i < folds.length; i++) {\n fold = folds[i];\n fold.start.column += len;\n if (!fold.sameRow) {\n return;\n }\n fold.end.column += len;\n }\n this.end.column += len;\n }\n }\n };\n FoldLine.prototype.split = function (row, column) {\n var pos = this.getNextFoldTo(row, column);\n if (!pos || pos.kind == \"inside\")\n return null;\n var fold = pos.fold;\n var folds = this.folds;\n var foldData = this.foldData;\n var i = folds.indexOf(fold);\n var foldBefore = folds[i - 1];\n this.end.row = foldBefore.end.row;\n this.end.column = foldBefore.end.column;\n folds = folds.splice(i, folds.length - i);\n var newFoldLine = new FoldLine(foldData, folds);\n foldData.splice(foldData.indexOf(this) + 1, 0, newFoldLine);\n return newFoldLine;\n };\n FoldLine.prototype.merge = function (foldLineNext) {\n var folds = foldLineNext.folds;\n for (var i = 0; i < folds.length; i++) {\n this.addFold(folds[i]);\n }\n var foldData = this.foldData;\n foldData.splice(foldData.indexOf(foldLineNext), 1);\n };\n FoldLine.prototype.toString = function () {\n var ret = [this.range.toString() + \": [\"];\n this.folds.forEach(function (fold) {\n ret.push(\" \" + fold.toString());\n });\n ret.push(\"]\");\n return ret.join(\"\\n\");\n };\n FoldLine.prototype.idxToPosition = function (idx) {\n var lastFoldEndColumn = 0;\n for (var i = 0; i < this.folds.length; i++) {\n var fold = this.folds[i];\n idx -= fold.start.column - lastFoldEndColumn;\n if (idx < 0) {\n return {\n row: fold.start.row,\n column: fold.start.column + idx\n };\n }\n idx -= fold.placeholder.length;\n if (idx < 0) {\n return fold.start;\n }\n lastFoldEndColumn = fold.end.column;\n }\n return {\n row: this.end.row,\n column: this.end.column + idx\n };\n };\n return FoldLine;\n}());\nexports.FoldLine = FoldLine;\n\n});\n\nace.define(\"ace/range_list\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar comparePoints = Range.comparePoints;\nvar RangeList = /** @class */ (function () {\n function RangeList() {\n this.ranges = [];\n this.$bias = 1;\n }\n RangeList.prototype.pointIndex = function (pos, excludeEdges, startIndex) {\n var list = this.ranges;\n for (var i = startIndex || 0; i < list.length; i++) {\n var range = list[i];\n var cmpEnd = comparePoints(pos, range.end);\n if (cmpEnd > 0)\n continue;\n var cmpStart = comparePoints(pos, range.start);\n if (cmpEnd === 0)\n return excludeEdges && cmpStart !== 0 ? -i - 2 : i;\n if (cmpStart > 0 || (cmpStart === 0 && !excludeEdges))\n return i;\n return -i - 1;\n }\n return -i - 1;\n };\n RangeList.prototype.add = function (range) {\n var excludeEdges = !range.isEmpty();\n var startIndex = this.pointIndex(range.start, excludeEdges);\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex(range.end, excludeEdges, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n else\n endIndex++;\n return this.ranges.splice(startIndex, endIndex - startIndex, range);\n };\n RangeList.prototype.addList = function (list) {\n var removed = [];\n for (var i = list.length; i--;) {\n removed.push.apply(removed, this.add(list[i]));\n }\n return removed;\n };\n RangeList.prototype.substractPoint = function (pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges.splice(i, 1);\n };\n RangeList.prototype.merge = function () {\n var removed = [];\n var list = this.ranges;\n list = list.sort(function (a, b) {\n return comparePoints(a.start, b.start);\n });\n var next = list[0], range;\n for (var i = 1; i < list.length; i++) {\n range = next;\n next = list[i];\n var cmp = comparePoints(range.end, next.start);\n if (cmp < 0)\n continue;\n if (cmp == 0 && !range.isEmpty() && !next.isEmpty())\n continue;\n if (comparePoints(range.end, next.end) < 0) {\n range.end.row = next.end.row;\n range.end.column = next.end.column;\n }\n list.splice(i, 1);\n removed.push(next);\n next = range;\n i--;\n }\n this.ranges = list;\n return removed;\n };\n RangeList.prototype.contains = function (row, column) {\n return this.pointIndex({ row: row, column: column }) >= 0;\n };\n RangeList.prototype.containsPoint = function (pos) {\n return this.pointIndex(pos) >= 0;\n };\n RangeList.prototype.rangeAtPoint = function (pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges[i];\n };\n RangeList.prototype.clipRows = function (startRow, endRow) {\n var list = this.ranges;\n if (list[0].start.row > endRow || list[list.length - 1].start.row < startRow)\n return [];\n var startIndex = this.pointIndex({ row: startRow, column: 0 });\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex({ row: endRow, column: 0 }, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n var clipped = [];\n for (var i = startIndex; i < endIndex; i++) {\n clipped.push(list[i]);\n }\n return clipped;\n };\n RangeList.prototype.removeAll = function () {\n return this.ranges.splice(0, this.ranges.length);\n };\n RangeList.prototype.attach = function (session) {\n if (this.session)\n this.detach();\n this.session = session;\n this.onChange = this.$onChange.bind(this);\n this.session.on('change', this.onChange);\n };\n RangeList.prototype.detach = function () {\n if (!this.session)\n return;\n this.session.removeListener('change', this.onChange);\n this.session = null;\n };\n RangeList.prototype.$onChange = function (delta) {\n var start = delta.start;\n var end = delta.end;\n var startRow = start.row;\n var endRow = end.row;\n var ranges = this.ranges;\n for (var i = 0, n = ranges.length; i < n; i++) {\n var r = ranges[i];\n if (r.end.row >= startRow)\n break;\n }\n if (delta.action == \"insert\") {\n var lineDif = endRow - startRow;\n var colDiff = -start.column + end.column;\n for (; i < n; i++) {\n var r = ranges[i];\n if (r.start.row > startRow)\n break;\n if (r.start.row == startRow && r.start.column >= start.column) {\n if (r.start.column == start.column && this.$bias <= 0) {\n }\n else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n if (r.end.row == startRow && r.end.column >= start.column) {\n if (r.end.column == start.column && this.$bias < 0) {\n continue;\n }\n if (r.end.column == start.column && colDiff > 0 && i < n - 1) {\n if (r.end.column > r.start.column && r.end.column == ranges[i + 1].start.column)\n r.end.column -= colDiff;\n }\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n }\n else {\n var lineDif = startRow - endRow;\n var colDiff = start.column - end.column;\n for (; i < n; i++) {\n var r = ranges[i];\n if (r.start.row > endRow)\n break;\n if (r.end.row < endRow\n && (startRow < r.end.row\n || startRow == r.end.row && start.column < r.end.column)) {\n r.end.row = startRow;\n r.end.column = start.column;\n }\n else if (r.end.row == endRow) {\n if (r.end.column <= end.column) {\n if (lineDif || r.end.column > start.column) {\n r.end.column = start.column;\n r.end.row = start.row;\n }\n }\n else {\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n else if (r.end.row > endRow) {\n r.end.row += lineDif;\n }\n if (r.start.row < endRow\n && (startRow < r.start.row\n || startRow == r.start.row && start.column < r.start.column)) {\n r.start.row = startRow;\n r.start.column = start.column;\n }\n else if (r.start.row == endRow) {\n if (r.start.column <= end.column) {\n if (lineDif || r.start.column > start.column) {\n r.start.column = start.column;\n r.start.row = start.row;\n }\n }\n else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n else if (r.start.row > endRow) {\n r.start.row += lineDif;\n }\n }\n }\n if (lineDif != 0 && i < n) {\n for (; i < n; i++) {\n var r = ranges[i];\n r.start.row += lineDif;\n r.end.row += lineDif;\n }\n }\n };\n return RangeList;\n}());\nRangeList.prototype.comparePoints = comparePoints;\nexports.RangeList = RangeList;\n\n});\n\nace.define(\"ace/edit_session/fold\",[\"require\",\"exports\",\"module\",\"ace/range_list\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar RangeList = require(\"../range_list\").RangeList;\nvar Fold = /** @class */ (function (_super) {\n __extends(Fold, _super);\n function Fold(range, placeholder) {\n var _this = _super.call(this) || this;\n _this.foldLine = null;\n _this.placeholder = placeholder;\n _this.range = range;\n _this.start = range.start;\n _this.end = range.end;\n _this.sameRow = range.start.row == range.end.row;\n _this.subFolds = _this.ranges = [];\n return _this;\n }\n Fold.prototype.toString = function () {\n return '\"' + this.placeholder + '\" ' + this.range.toString();\n };\n Fold.prototype.setFoldLine = function (foldLine) {\n this.foldLine = foldLine;\n this.subFolds.forEach(function (fold) {\n fold.setFoldLine(foldLine);\n });\n };\n Fold.prototype.clone = function () {\n var range = this.range.clone();\n var fold = new Fold(range, this.placeholder);\n this.subFolds.forEach(function (subFold) {\n fold.subFolds.push(subFold.clone());\n });\n fold.collapseChildren = this.collapseChildren;\n return fold;\n };\n Fold.prototype.addSubFold = function (fold) {\n if (this.range.isEqual(fold))\n return;\n consumeRange(fold, this.start);\n var row = fold.start.row, column = fold.start.column;\n for (var i = 0, cmp = -1; i < this.subFolds.length; i++) {\n cmp = this.subFolds[i].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n var afterStart = this.subFolds[i];\n var firstConsumed = 0;\n if (cmp == 0) {\n if (afterStart.range.containsRange(fold))\n return afterStart.addSubFold(fold);\n else\n firstConsumed = 1;\n }\n var row = fold.range.end.row, column = fold.range.end.column;\n for (var j = i, cmp = -1; j < this.subFolds.length; j++) {\n cmp = this.subFolds[j].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n if (cmp == 0)\n j++;\n var consumedFolds = this.subFolds.splice(i, j - i, fold);\n var last = cmp == 0 ? consumedFolds.length - 1 : consumedFolds.length;\n for (var k = firstConsumed; k < last; k++) {\n fold.addSubFold(consumedFolds[k]);\n }\n fold.setFoldLine(this.foldLine);\n return fold;\n };\n Fold.prototype.restoreRange = function (range) {\n return restoreRange(range, this.start);\n };\n return Fold;\n}(RangeList));\nfunction consumePoint(point, anchor) {\n point.row -= anchor.row;\n if (point.row == 0)\n point.column -= anchor.column;\n}\nfunction consumeRange(range, anchor) {\n consumePoint(range.start, anchor);\n consumePoint(range.end, anchor);\n}\nfunction restorePoint(point, anchor) {\n if (point.row == 0)\n point.column += anchor.column;\n point.row += anchor.row;\n}\nfunction restoreRange(range, anchor) {\n restorePoint(range.start, anchor);\n restorePoint(range.end, anchor);\n}\nexports.Fold = Fold;\n\n});\n\nace.define(\"ace/edit_session/folding\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/edit_session/fold_line\",\"ace/edit_session/fold\",\"ace/token_iterator\",\"ace/mouse/mouse_event\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar FoldLine = require(\"./fold_line\").FoldLine;\nvar Fold = require(\"./fold\").Fold;\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar MouseEvent = require(\"../mouse/mouse_event\").MouseEvent;\nfunction Folding() {\n this.getFoldAt = function (row, column, side) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine)\n return null;\n var folds = foldLine.folds;\n for (var i = 0; i < folds.length; i++) {\n var range = folds[i].range;\n if (range.contains(row, column)) {\n if (side == 1 && range.isEnd(row, column) && !range.isEmpty()) {\n continue;\n }\n else if (side == -1 && range.isStart(row, column) && !range.isEmpty()) {\n continue;\n }\n return folds[i];\n }\n }\n };\n this.getFoldsInRange = function (range) {\n var start = range.start;\n var end = range.end;\n var foldLines = this.$foldData;\n var foundFolds = [];\n start.column += 1;\n end.column -= 1;\n for (var i = 0; i < foldLines.length; i++) {\n var cmp = foldLines[i].range.compareRange(range);\n if (cmp == 2) {\n continue;\n }\n else if (cmp == -2) {\n break;\n }\n var folds = foldLines[i].folds;\n for (var j = 0; j < folds.length; j++) {\n var fold = folds[j];\n cmp = fold.range.compareRange(range);\n if (cmp == -2) {\n break;\n }\n else if (cmp == 2) {\n continue;\n }\n else \n if (cmp == 42) {\n break;\n }\n foundFolds.push(fold);\n }\n }\n start.column -= 1;\n end.column += 1;\n return foundFolds;\n };\n this.getFoldsInRangeList = function (ranges) {\n if (Array.isArray(ranges)) {\n var folds = [];\n ranges.forEach(function (range) {\n folds = folds.concat(this.getFoldsInRange(range));\n }, this);\n }\n else {\n var folds = this.getFoldsInRange(ranges);\n }\n return folds;\n };\n this.getAllFolds = function () {\n var folds = [];\n var foldLines = this.$foldData;\n for (var i = 0; i < foldLines.length; i++)\n for (var j = 0; j < foldLines[i].folds.length; j++)\n folds.push(foldLines[i].folds[j]);\n return folds;\n };\n this.getFoldStringAt = function (row, column, trim, foldLine) {\n foldLine = foldLine || this.getFoldLine(row);\n if (!foldLine)\n return null;\n var lastFold = {\n end: { column: 0 }\n };\n var str, fold;\n for (var i = 0; i < foldLine.folds.length; i++) {\n fold = foldLine.folds[i];\n var cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n str = this\n .getLine(fold.start.row)\n .substring(lastFold.end.column, fold.start.column);\n break;\n }\n else if (cmp === 0) {\n return null;\n }\n lastFold = fold;\n }\n if (!str)\n str = this.getLine(fold.start.row).substring(lastFold.end.column);\n if (trim == -1)\n return str.substring(0, column - lastFold.end.column);\n else if (trim == 1)\n return str.substring(column - lastFold.end.column);\n else\n return str;\n };\n this.getFoldLine = function (docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.start.row <= docRow && foldLine.end.row >= docRow) {\n return foldLine;\n }\n else if (foldLine.end.row > docRow) {\n return null;\n }\n }\n return null;\n };\n this.getNextFoldLine = function (docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.end.row >= docRow) {\n return foldLine;\n }\n }\n return null;\n };\n this.getFoldedRowCount = function (first, last) {\n var foldData = this.$foldData, rowCount = last - first + 1;\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i], end = foldLine.end.row, start = foldLine.start.row;\n if (end >= last) {\n if (start < last) {\n if (start >= first)\n rowCount -= last - start;\n else\n rowCount = 0; // in one fold\n }\n break;\n }\n else if (end >= first) {\n if (start >= first) // fold inside range\n rowCount -= end - start;\n else\n rowCount -= end - first + 1;\n }\n }\n return rowCount;\n };\n this.$addFoldLine = function (foldLine) {\n this.$foldData.push(foldLine);\n this.$foldData.sort(function (a, b) {\n return a.start.row - b.start.row;\n });\n return foldLine;\n };\n this.addFold = function (placeholder, range) {\n var foldData = this.$foldData;\n var added = false;\n var fold;\n if (placeholder instanceof Fold)\n fold = placeholder;\n else {\n fold = new Fold(range, placeholder);\n fold.collapseChildren = range.collapseChildren;\n }\n this.$clipRangeToDocument(fold.range);\n var startRow = fold.start.row;\n var startColumn = fold.start.column;\n var endRow = fold.end.row;\n var endColumn = fold.end.column;\n var startFold = this.getFoldAt(startRow, startColumn, 1);\n var endFold = this.getFoldAt(endRow, endColumn, -1);\n if (startFold && endFold == startFold)\n return startFold.addSubFold(fold);\n if (startFold && !startFold.range.isStart(startRow, startColumn))\n this.removeFold(startFold);\n if (endFold && !endFold.range.isEnd(endRow, endColumn))\n this.removeFold(endFold);\n var folds = this.getFoldsInRange(fold.range);\n if (folds.length > 0) {\n this.removeFolds(folds);\n if (!fold.collapseChildren) {\n folds.forEach(function (subFold) {\n fold.addSubFold(subFold);\n });\n }\n }\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (endRow == foldLine.start.row) {\n foldLine.addFold(fold);\n added = true;\n break;\n }\n else if (startRow == foldLine.end.row) {\n foldLine.addFold(fold);\n added = true;\n if (!fold.sameRow) {\n var foldLineNext = foldData[i + 1];\n if (foldLineNext && foldLineNext.start.row == endRow) {\n foldLine.merge(foldLineNext);\n break;\n }\n }\n break;\n }\n else if (endRow <= foldLine.start.row) {\n break;\n }\n }\n if (!added)\n foldLine = this.$addFoldLine(new FoldLine(this.$foldData, fold));\n if (this.$useWrapMode)\n this.$updateWrapData(foldLine.start.row, foldLine.start.row);\n else\n this.$updateRowLengthCache(foldLine.start.row, foldLine.start.row);\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"add\" });\n return fold;\n };\n this.addFolds = function (folds) {\n folds.forEach(function (fold) {\n this.addFold(fold);\n }, this);\n };\n this.removeFold = function (fold) {\n var foldLine = fold.foldLine;\n var startRow = foldLine.start.row;\n var endRow = foldLine.end.row;\n var foldLines = this.$foldData;\n var folds = foldLine.folds;\n if (folds.length == 1) {\n foldLines.splice(foldLines.indexOf(foldLine), 1);\n }\n else \n if (foldLine.range.isEnd(fold.end.row, fold.end.column)) {\n folds.pop();\n foldLine.end.row = folds[folds.length - 1].end.row;\n foldLine.end.column = folds[folds.length - 1].end.column;\n }\n else \n if (foldLine.range.isStart(fold.start.row, fold.start.column)) {\n folds.shift();\n foldLine.start.row = folds[0].start.row;\n foldLine.start.column = folds[0].start.column;\n }\n else \n if (fold.sameRow) {\n folds.splice(folds.indexOf(fold), 1);\n }\n else \n {\n var newFoldLine = foldLine.split(fold.start.row, fold.start.column);\n folds = newFoldLine.folds;\n folds.shift();\n newFoldLine.start.row = folds[0].start.row;\n newFoldLine.start.column = folds[0].start.column;\n }\n if (!this.$updating) {\n if (this.$useWrapMode)\n this.$updateWrapData(startRow, endRow);\n else\n this.$updateRowLengthCache(startRow, endRow);\n }\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"remove\" });\n };\n this.removeFolds = function (folds) {\n var cloneFolds = [];\n for (var i = 0; i < folds.length; i++) {\n cloneFolds.push(folds[i]);\n }\n cloneFolds.forEach(function (fold) {\n this.removeFold(fold);\n }, this);\n this.$modified = true;\n };\n this.expandFold = function (fold) {\n this.removeFold(fold);\n fold.subFolds.forEach(function (subFold) {\n fold.restoreRange(subFold);\n this.addFold(subFold);\n }, this);\n if (fold.collapseChildren > 0) {\n this.foldAll(fold.start.row + 1, fold.end.row, fold.collapseChildren - 1);\n }\n fold.subFolds = [];\n };\n this.expandFolds = function (folds) {\n folds.forEach(function (fold) {\n this.expandFold(fold);\n }, this);\n };\n this.unfold = function (location, expandInner) {\n var range, folds;\n if (location == null) {\n range = new Range(0, 0, this.getLength(), 0);\n if (expandInner == null)\n expandInner = true;\n }\n else if (typeof location == \"number\") {\n range = new Range(location, 0, location, this.getLine(location).length);\n }\n else if (\"row\" in location) {\n range = Range.fromPoints(location, location);\n }\n else if (Array.isArray(location)) {\n folds = [];\n location.forEach(function (range) {\n folds = folds.concat(this.unfold(range));\n }, this);\n return folds;\n }\n else {\n range = location;\n }\n folds = this.getFoldsInRangeList(range);\n var outermostFolds = folds;\n while (folds.length == 1\n && Range.comparePoints(folds[0].start, range.start) < 0\n && Range.comparePoints(folds[0].end, range.end) > 0) {\n this.expandFolds(folds);\n folds = this.getFoldsInRangeList(range);\n }\n if (expandInner != false) {\n this.removeFolds(folds);\n }\n else {\n this.expandFolds(folds);\n }\n if (outermostFolds.length)\n return outermostFolds;\n };\n this.isRowFolded = function (docRow, startFoldRow) {\n return !!this.getFoldLine(docRow, startFoldRow);\n };\n this.getRowFoldEnd = function (docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.end.row : docRow;\n };\n this.getRowFoldStart = function (docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.start.row : docRow;\n };\n this.getFoldDisplayLine = function (foldLine, endRow, endColumn, startRow, startColumn) {\n if (startRow == null)\n startRow = foldLine.start.row;\n if (startColumn == null)\n startColumn = 0;\n if (endRow == null)\n endRow = foldLine.end.row;\n if (endColumn == null)\n endColumn = this.getLine(endRow).length;\n var doc = this.doc;\n var textLine = \"\";\n foldLine.walk(function (placeholder, row, column, lastColumn) {\n if (row < startRow)\n return;\n if (row == startRow) {\n if (column < startColumn)\n return;\n lastColumn = Math.max(startColumn, lastColumn);\n }\n if (placeholder != null) {\n textLine += placeholder;\n }\n else {\n textLine += doc.getLine(row).substring(lastColumn, column);\n }\n }, endRow, endColumn);\n return textLine;\n };\n this.getDisplayLine = function (row, endColumn, startRow, startColumn) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine) {\n var line;\n line = this.doc.getLine(row);\n return line.substring(startColumn || 0, endColumn || line.length);\n }\n else {\n return this.getFoldDisplayLine(foldLine, row, endColumn, startRow, startColumn);\n }\n };\n this.$cloneFoldData = function () {\n var fd = [];\n fd = this.$foldData.map(function (foldLine) {\n var folds = foldLine.folds.map(function (fold) {\n return fold.clone();\n });\n return new FoldLine(fd, folds);\n });\n return fd;\n };\n this.toggleFold = function (tryToUnfold) {\n var selection = this.selection;\n var range = selection.getRange();\n var fold;\n var bracketPos;\n if (range.isEmpty()) {\n var cursor = range.start;\n fold = this.getFoldAt(cursor.row, cursor.column);\n if (fold) {\n this.expandFold(fold);\n return;\n }\n else if (bracketPos = this.findMatchingBracket(cursor)) {\n if (range.comparePoint(bracketPos) == 1) {\n range.end = bracketPos;\n }\n else {\n range.start = bracketPos;\n range.start.column++;\n range.end.column--;\n }\n }\n else if (bracketPos = this.findMatchingBracket({ row: cursor.row, column: cursor.column + 1 })) {\n if (range.comparePoint(bracketPos) == 1)\n range.end = bracketPos;\n else\n range.start = bracketPos;\n range.start.column++;\n }\n else {\n range = this.getCommentFoldRange(cursor.row, cursor.column) || range;\n }\n }\n else {\n var folds = this.getFoldsInRange(range);\n if (tryToUnfold && folds.length) {\n this.expandFolds(folds);\n return;\n }\n else if (folds.length == 1) {\n fold = folds[0];\n }\n }\n if (!fold)\n fold = this.getFoldAt(range.start.row, range.start.column);\n if (fold && fold.range.toString() == range.toString()) {\n this.expandFold(fold);\n return;\n }\n var placeholder = \"...\";\n if (!range.isMultiLine()) {\n placeholder = this.getTextRange(range);\n if (placeholder.length < 4)\n return;\n placeholder = placeholder.trim().substring(0, 2) + \"..\";\n }\n this.addFold(placeholder, range);\n };\n this.getCommentFoldRange = function (row, column, dir) {\n var iterator = new TokenIterator(this, row, column);\n var token = iterator.getCurrentToken();\n var type = token && token.type;\n if (token && /^comment|string/.test(type)) {\n type = type.match(/comment|string/)[0];\n if (type == \"comment\")\n type += \"|doc-start|\\\\.doc\";\n var re = new RegExp(type);\n var range = new Range();\n if (dir != 1) {\n do {\n token = iterator.stepBackward();\n } while (token && re.test(token.type) && !/^comment.end/.test(token.type));\n token = iterator.stepForward();\n }\n range.start.row = iterator.getCurrentTokenRow();\n range.start.column = iterator.getCurrentTokenColumn() + (/^comment.start/.test(token.type) ? token.value.length : 2);\n iterator = new TokenIterator(this, row, column);\n if (dir != -1) {\n var lastRow = -1;\n do {\n token = iterator.stepForward();\n if (lastRow == -1) {\n var state = this.getState(iterator.$row);\n if (!re.test(state))\n lastRow = iterator.$row;\n }\n else if (iterator.$row > lastRow) {\n break;\n }\n } while (token && re.test(token.type) && !/^comment.start/.test(token.type));\n token = iterator.stepBackward();\n }\n else\n token = iterator.getCurrentToken();\n range.end.row = iterator.getCurrentTokenRow();\n range.end.column = iterator.getCurrentTokenColumn();\n if (!/^comment.end/.test(token.type)) {\n range.end.column += token.value.length - 2;\n }\n return range;\n }\n };\n this.foldAll = function (startRow, endRow, depth, test) {\n if (depth == undefined)\n depth = 100000; // JSON.stringify doesn't hanle Infinity\n var foldWidgets = this.foldWidgets;\n if (!foldWidgets)\n return; // mode doesn't support folding\n endRow = endRow || this.getLength();\n startRow = startRow || 0;\n for (var row = startRow; row < endRow; row++) {\n if (foldWidgets[row] == null)\n foldWidgets[row] = this.getFoldWidget(row);\n if (foldWidgets[row] != \"start\")\n continue;\n if (test && !test(row))\n continue;\n var range = this.getFoldWidgetRange(row);\n if (range && range.isMultiLine()\n && range.end.row <= endRow\n && range.start.row >= startRow) {\n row = range.end.row;\n range.collapseChildren = depth;\n this.addFold(\"...\", range);\n }\n }\n };\n this.foldToLevel = function (level) {\n this.foldAll();\n while (level-- > 0)\n this.unfold(null, false);\n };\n this.foldAllComments = function () {\n var session = this;\n this.foldAll(null, null, null, function (row) {\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token.type == \"text\" && /^\\s+$/.test(token.value))\n continue;\n if (/comment/.test(token.type))\n return true;\n return false;\n }\n });\n };\n this.$foldStyles = {\n \"manual\": 1,\n \"markbegin\": 1,\n \"markbeginend\": 1\n };\n this.$foldStyle = \"markbegin\";\n this.setFoldStyle = function (style) {\n if (!this.$foldStyles[style])\n throw new Error(\"invalid fold style: \" + style + \"[\" + Object.keys(this.$foldStyles).join(\", \") + \"]\");\n if (this.$foldStyle == style)\n return;\n this.$foldStyle = style;\n if (style == \"manual\")\n this.unfold();\n var mode = this.$foldMode;\n this.$setFolding(null);\n this.$setFolding(mode);\n };\n this.$setFolding = function (foldMode) {\n if (this.$foldMode == foldMode)\n return;\n this.$foldMode = foldMode;\n this.off('change', this.$updateFoldWidgets);\n this.off('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n this._signal(\"changeAnnotation\");\n if (!foldMode || this.$foldStyle == \"manual\") {\n this.foldWidgets = null;\n return;\n }\n this.foldWidgets = [];\n this.getFoldWidget = foldMode.getFoldWidget.bind(foldMode, this, this.$foldStyle);\n this.getFoldWidgetRange = foldMode.getFoldWidgetRange.bind(foldMode, this, this.$foldStyle);\n this.$updateFoldWidgets = this.updateFoldWidgets.bind(this);\n this.$tokenizerUpdateFoldWidgets = this.tokenizerUpdateFoldWidgets.bind(this);\n this.on('change', this.$updateFoldWidgets);\n this.on('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n };\n this.getParentFoldRangeData = function (row, ignoreCurrent) {\n var fw = this.foldWidgets;\n if (!fw || (ignoreCurrent && fw[row]))\n return {};\n var i = row - 1, firstRange;\n while (i >= 0) {\n var c = fw[i];\n if (c == null)\n c = fw[i] = this.getFoldWidget(i);\n if (c == \"start\") {\n var range = this.getFoldWidgetRange(i);\n if (!firstRange)\n firstRange = range;\n if (range && range.end.row >= row)\n break;\n }\n i--;\n }\n return {\n range: i !== -1 && range,\n firstRange: firstRange\n };\n };\n this.onFoldWidgetClick = function (row, e) {\n if (e instanceof MouseEvent)\n e = e.domEvent;\n var options = {\n children: e.shiftKey,\n all: e.ctrlKey || e.metaKey,\n siblings: e.altKey\n };\n var range = this.$toggleFoldWidget(row, options);\n if (!range) {\n var el = (e.target || e.srcElement);\n if (el && /ace_fold-widget/.test(el.className))\n el.className += \" ace_invalid\";\n }\n };\n this.$toggleFoldWidget = function (row, options) {\n if (!this.getFoldWidget)\n return;\n var type = this.getFoldWidget(row);\n var line = this.getLine(row);\n var dir = type === \"end\" ? -1 : 1;\n var fold = this.getFoldAt(row, dir === -1 ? 0 : line.length, dir);\n if (fold) {\n if (options.children || options.all)\n this.removeFold(fold);\n else\n this.expandFold(fold);\n return fold;\n }\n var range = this.getFoldWidgetRange(row, true);\n if (range && !range.isMultiLine()) {\n fold = this.getFoldAt(range.start.row, range.start.column, 1);\n if (fold && range.isEqual(fold.range)) {\n this.removeFold(fold);\n return fold;\n }\n }\n if (options.siblings) {\n var data = this.getParentFoldRangeData(row);\n if (data.range) {\n var startRow = data.range.start.row + 1;\n var endRow = data.range.end.row;\n }\n this.foldAll(startRow, endRow, options.all ? 10000 : 0);\n }\n else if (options.children) {\n endRow = range ? range.end.row : this.getLength();\n this.foldAll(row + 1, endRow, options.all ? 10000 : 0);\n }\n else if (range) {\n if (options.all)\n range.collapseChildren = 10000;\n this.addFold(\"...\", range);\n }\n return range;\n };\n this.toggleFoldWidget = function (toggleParent) {\n var row = this.selection.getCursor().row;\n row = this.getRowFoldStart(row);\n var range = this.$toggleFoldWidget(row, {});\n if (range)\n return;\n var data = this.getParentFoldRangeData(row, true);\n range = data.range || data.firstRange;\n if (range) {\n row = range.start.row;\n var fold = this.getFoldAt(row, this.getLine(row).length, 1);\n if (fold) {\n this.removeFold(fold);\n }\n else {\n this.addFold(\"...\", range);\n }\n }\n };\n this.updateFoldWidgets = function (delta) {\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n this.foldWidgets[firstRow] = null;\n }\n else if (delta.action == 'remove') {\n this.foldWidgets.splice(firstRow, len + 1, null);\n }\n else {\n var args = Array(len + 1);\n args.unshift(firstRow, 1);\n this.foldWidgets.splice.apply(this.foldWidgets, args);\n }\n };\n this.tokenizerUpdateFoldWidgets = function (e) {\n var rows = e.data;\n if (rows.first != rows.last) {\n if (this.foldWidgets.length > rows.first)\n this.foldWidgets.splice(rows.first, this.foldWidgets.length);\n }\n };\n}\nexports.Folding = Folding;\n\n});\n\nace.define(\"ace/edit_session/bracket_match\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar Range = require(\"../range\").Range;\nfunction BracketMatch() {\n this.findMatchingBracket = function (position, chr) {\n if (position.column == 0)\n return null;\n var charBeforeCursor = chr || this.getLine(position.row).charAt(position.column - 1);\n if (charBeforeCursor == \"\")\n return null;\n var match = charBeforeCursor.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match)\n return null;\n if (match[1])\n return this.$findClosingBracket(match[1], position);\n else\n return this.$findOpeningBracket(match[2], position);\n };\n this.getBracketRange = function (pos) {\n var line = this.getLine(pos.row);\n var before = true, range;\n var chr = line.charAt(pos.column - 1);\n var match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match) {\n chr = line.charAt(pos.column);\n pos = { row: pos.row, column: pos.column + 1 };\n match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n before = false;\n }\n if (!match)\n return null;\n if (match[1]) {\n var bracketPos = this.$findClosingBracket(match[1], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(pos, bracketPos);\n if (!before) {\n range.end.column++;\n range.start.column--;\n }\n range.cursor = range.end;\n }\n else {\n var bracketPos = this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(bracketPos, pos);\n if (!before) {\n range.start.column++;\n range.end.column--;\n }\n range.cursor = range.start;\n }\n return range;\n };\n this.getMatchingBracketRanges = function (pos, isBackwards) {\n var line = this.getLine(pos.row);\n var bracketsRegExp = /([\\(\\[\\{])|([\\)\\]\\}])/;\n var chr = !isBackwards && line.charAt(pos.column - 1);\n var match = chr && chr.match(bracketsRegExp);\n if (!match) {\n chr = (isBackwards === undefined || isBackwards) && line.charAt(pos.column);\n pos = {\n row: pos.row,\n column: pos.column + 1\n };\n match = chr && chr.match(bracketsRegExp);\n }\n if (!match)\n return null;\n var startRange = new Range(pos.row, pos.column - 1, pos.row, pos.column);\n var bracketPos = match[1] ? this.$findClosingBracket(match[1], pos)\n : this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return [startRange];\n var endRange = new Range(bracketPos.row, bracketPos.column, bracketPos.row, bracketPos.column + 1);\n return [startRange, endRange];\n };\n this.$brackets = {\n \")\": \"(\",\n \"(\": \")\",\n \"]\": \"[\",\n \"[\": \"]\",\n \"{\": \"}\",\n \"}\": \"{\",\n \"<\": \">\",\n \">\": \"<\"\n };\n this.$findOpeningBracket = function (bracket, position, typeRe) {\n var openBracket = this.$brackets[bracket];\n var depth = 1;\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n if (!typeRe) {\n typeRe = new RegExp(\"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"rparen\", \".paren\")\n .replace(/\\b(?:end)\\b/, \"(?:start|begin|end)\")\n .replace(/-close\\b/, \"-(close|open)\")\n + \")+\");\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn() - 2;\n var value = token.value;\n while (true) {\n while (valueIndex >= 0) {\n var chr = value.charAt(valueIndex);\n if (chr == openBracket) {\n depth -= 1;\n if (depth == 0) {\n return { row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn() };\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex -= 1;\n }\n do {\n token = iterator.stepBackward();\n } while (token && !typeRe.test(token.type));\n if (token == null)\n break;\n value = token.value;\n valueIndex = value.length - 1;\n }\n return null;\n };\n this.$findClosingBracket = function (bracket, position, typeRe) {\n var closingBracket = this.$brackets[bracket];\n var depth = 1;\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n if (!typeRe) {\n typeRe = new RegExp(\"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"lparen\", \".paren\")\n .replace(/\\b(?:start|begin)\\b/, \"(?:start|begin|end)\")\n .replace(/-open\\b/, \"-(close|open)\")\n + \")+\");\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn();\n while (true) {\n var value = token.value;\n var valueLength = value.length;\n while (valueIndex < valueLength) {\n var chr = value.charAt(valueIndex);\n if (chr == closingBracket) {\n depth -= 1;\n if (depth == 0) {\n return { row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn() };\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex += 1;\n }\n do {\n token = iterator.stepForward();\n } while (token && !typeRe.test(token.type));\n if (token == null)\n break;\n valueIndex = 0;\n }\n return null;\n };\n this.getMatchingTags = function (pos) {\n var iterator = new TokenIterator(this, pos.row, pos.column);\n var token = this.$findTagName(iterator);\n if (!token)\n return;\n var prevToken = iterator.stepBackward();\n if (prevToken.value === '<') {\n return this.$findClosingTag(iterator, token);\n }\n else {\n return this.$findOpeningTag(iterator, token);\n }\n };\n this.$findTagName = function (iterator) {\n var token = iterator.getCurrentToken();\n var found = false;\n var backward = false;\n if (token && token.type.indexOf('tag-name') === -1) {\n do {\n if (backward)\n token = iterator.stepBackward();\n else\n token = iterator.stepForward();\n if (token) {\n if (token.value === \"/>\") {\n backward = true;\n }\n else if (token.type.indexOf('tag-name') !== -1) {\n found = true;\n }\n }\n } while (token && !found);\n }\n return token;\n };\n this.$findClosingTag = function (iterator, token) {\n var prevToken;\n var currentTag = token.value;\n var tag = token.value;\n var depth = 0;\n var openTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1);\n token = iterator.stepForward();\n var openTagName = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + token.value.length);\n var foundOpenTagEnd = false;\n do {\n prevToken = token;\n token = iterator.stepForward();\n if (token) {\n if (token.value === '>' && !foundOpenTagEnd) {\n var openTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for `>`\n foundOpenTagEnd = true;\n }\n if (token.type.indexOf('tag-name') !== -1) {\n currentTag = token.value;\n if (tag === currentTag) {\n if (prevToken.value === '<') {\n depth++;\n }\n else if (prevToken.value === '') {\n var closeTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n }\n else {\n return;\n }\n }\n }\n }\n }\n else if (tag === currentTag && token.value === '/>') { // self-closing tag\n depth--;\n if (depth < 0) { //found self-closing tag end\n var closeTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 2);\n var closeTagName = closeTagStart;\n var closeTagEnd = closeTagName;\n var openTagEnd = new Range(openTagName.end.row, openTagName.end.column, openTagName.end.row, openTagName.end.column + 1);\n }\n }\n }\n } while (token && depth >= 0);\n if (openTagStart && openTagEnd && closeTagStart && closeTagEnd && openTagName && closeTagName) {\n return {\n openTag: new Range(openTagStart.start.row, openTagStart.start.column, openTagEnd.end.row, openTagEnd.end.column),\n closeTag: new Range(closeTagStart.start.row, closeTagStart.start.column, closeTagEnd.end.row, closeTagEnd.end.column),\n openTagName: openTagName,\n closeTagName: closeTagName\n };\n }\n };\n this.$findOpeningTag = function (iterator, token) {\n var prevToken = iterator.getCurrentToken();\n var tag = token.value;\n var depth = 0;\n var startRow = iterator.getCurrentTokenRow();\n var startColumn = iterator.getCurrentTokenColumn();\n var endColumn = startColumn + 2;\n var closeTagStart = new Range(startRow, startColumn, startRow, endColumn); //Range for \")\n return;\n var closeTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n iterator.stepBackward();\n iterator.stepBackward();\n do {\n token = prevToken;\n startRow = iterator.getCurrentTokenRow();\n startColumn = iterator.getCurrentTokenColumn();\n endColumn = startColumn + token.value.length;\n prevToken = iterator.stepBackward();\n if (token) {\n if (token.type.indexOf('tag-name') !== -1) {\n if (tag === token.value) {\n if (prevToken.value === '<') {\n depth++;\n if (depth > 0) { //found opening tag\n var openTagName = new Range(startRow, startColumn, startRow, endColumn);\n var openTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for <\n do {\n token = iterator.stepForward();\n } while (token && token.value !== '>');\n var openTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n }\n }\n else if (prevToken.value === '') { // self-closing tag\n var stepCount = 0;\n var tmpToken = prevToken;\n while (tmpToken) {\n if (tmpToken.type.indexOf('tag-name') !== -1 && tmpToken.value === tag) {\n depth--;\n break;\n }\n else if (tmpToken.value === '<') {\n break;\n }\n tmpToken = iterator.stepBackward();\n stepCount++;\n }\n for (var i = 0; i < stepCount; i++) {\n iterator.stepForward();\n }\n }\n }\n } while (prevToken && depth <= 0);\n if (openTagStart && openTagEnd && closeTagStart && closeTagEnd && openTagName && closeTagName) {\n return {\n openTag: new Range(openTagStart.start.row, openTagStart.start.column, openTagEnd.end.row, openTagEnd.end.column),\n closeTag: new Range(closeTagStart.start.row, closeTagStart.start.column, closeTagEnd.end.row, closeTagEnd.end.column),\n openTagName: openTagName,\n closeTagName: closeTagName\n };\n }\n };\n}\nexports.BracketMatch = BracketMatch;\n\n});\n\nace.define(\"ace/edit_session\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/bidihandler\",\"ace/config\",\"ace/lib/event_emitter\",\"ace/selection\",\"ace/mode/text\",\"ace/range\",\"ace/document\",\"ace/background_tokenizer\",\"ace/search_highlight\",\"ace/undomanager\",\"ace/edit_session/folding\",\"ace/edit_session/bracket_match\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar lang = require(\"./lib/lang\");\nvar BidiHandler = require(\"./bidihandler\").BidiHandler;\nvar config = require(\"./config\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Selection = require(\"./selection\").Selection;\nvar TextMode = require(\"./mode/text\").Mode;\nvar Range = require(\"./range\").Range;\nvar Document = require(\"./document\").Document;\nvar BackgroundTokenizer = require(\"./background_tokenizer\").BackgroundTokenizer;\nvar SearchHighlight = require(\"./search_highlight\").SearchHighlight;\nvar UndoManager = require(\"./undomanager\").UndoManager;\nvar EditSession = /** @class */ (function () {\n function EditSession(text, mode) {\n this.$breakpoints = [];\n this.$decorations = [];\n this.$frontMarkers = {};\n this.$backMarkers = {};\n this.$markerId = 1;\n this.$undoSelect = true;\n this.$foldData = [];\n this.id = \"session\" + (++EditSession.$uid);\n this.$foldData.toString = function () {\n return this.join(\"\\n\");\n };\n this.bgTokenizer = new BackgroundTokenizer((new TextMode()).getTokenizer(), this);\n var _self = this;\n this.bgTokenizer.on(\"update\", function (e) {\n _self._signal(\"tokenizerUpdate\", e);\n });\n this.on(\"changeFold\", this.onChangeFold.bind(this));\n this.$onChange = this.onChange.bind(this);\n if (typeof text != \"object\" || !text.getLine)\n text = new Document(text);\n this.setDocument(text);\n this.selection = new Selection(this);\n this.$bidiHandler = new BidiHandler(this);\n config.resetOptions(this);\n this.setMode(mode);\n config._signal(\"session\", this);\n this.destroyed = false;\n }\n EditSession.prototype.setDocument = function (doc) {\n if (this.doc)\n this.doc.off(\"change\", this.$onChange);\n this.doc = doc;\n doc.on(\"change\", this.$onChange, true);\n this.bgTokenizer.setDocument(this.getDocument());\n this.resetCaches();\n };\n EditSession.prototype.getDocument = function () {\n return this.doc;\n };\n EditSession.prototype.$resetRowCache = function (docRow) {\n if (!docRow) {\n this.$docRowCache = [];\n this.$screenRowCache = [];\n return;\n }\n var l = this.$docRowCache.length;\n var i = this.$getRowCacheIndex(this.$docRowCache, docRow) + 1;\n if (l > i) {\n this.$docRowCache.splice(i, l);\n this.$screenRowCache.splice(i, l);\n }\n };\n EditSession.prototype.$getRowCacheIndex = function (cacheArray, val) {\n var low = 0;\n var hi = cacheArray.length - 1;\n while (low <= hi) {\n var mid = (low + hi) >> 1;\n var c = cacheArray[mid];\n if (val > c)\n low = mid + 1;\n else if (val < c)\n hi = mid - 1;\n else\n return mid;\n }\n return low - 1;\n };\n EditSession.prototype.resetCaches = function () {\n this.$modified = true;\n this.$wrapData = [];\n this.$rowLengthCache = [];\n this.$resetRowCache(0);\n if (!this.destroyed)\n this.bgTokenizer.start(0);\n };\n EditSession.prototype.onChangeFold = function (e) {\n var fold = e.data;\n this.$resetRowCache(fold.start.row);\n };\n EditSession.prototype.onChange = function (delta) {\n this.$modified = true;\n this.$bidiHandler.onChange(delta);\n this.$resetRowCache(delta.start.row);\n var removedFolds = this.$updateInternalDataOnChange(delta);\n if (!this.$fromUndo && this.$undoManager) {\n if (removedFolds && removedFolds.length) {\n this.$undoManager.add({\n action: \"removeFolds\",\n folds: removedFolds\n }, this.mergeUndoDeltas);\n this.mergeUndoDeltas = true;\n }\n this.$undoManager.add(delta, this.mergeUndoDeltas);\n this.mergeUndoDeltas = true;\n this.$informUndoManager.schedule();\n }\n this.bgTokenizer.$updateOnChange(delta);\n this._signal(\"change\", delta);\n };\n EditSession.prototype.setValue = function (text) {\n this.doc.setValue(text);\n this.selection.moveTo(0, 0);\n this.$resetRowCache(0);\n this.setUndoManager(this.$undoManager);\n this.getUndoManager().reset();\n };\n EditSession.fromJSON = function (session) {\n session = JSON.parse(session);\n var undoManager = new UndoManager();\n undoManager.$undoStack = session.history.undo;\n undoManager.$redoStack = session.history.redo;\n undoManager.mark = session.history.mark;\n undoManager.$rev = session.history.rev;\n var editSession = new EditSession(session.value);\n session.folds.forEach(function (fold) {\n editSession.addFold(\"...\", Range.fromPoints(fold.start, fold.end));\n });\n editSession.setAnnotations(session.annotations);\n editSession.setBreakpoints(session.breakpoints);\n editSession.setMode(session.mode);\n editSession.setScrollLeft(session.scrollLeft);\n editSession.setScrollTop(session.scrollTop);\n editSession.setUndoManager(undoManager);\n editSession.selection.fromJSON(session.selection);\n return editSession;\n };\n EditSession.prototype.toJSON = function () {\n return {\n annotations: this.$annotations,\n breakpoints: this.$breakpoints,\n folds: this.getAllFolds().map(function (fold) {\n return fold.range;\n }),\n history: this.getUndoManager(),\n mode: this.$mode.$id,\n scrollLeft: this.$scrollLeft,\n scrollTop: this.$scrollTop,\n selection: this.selection.toJSON(),\n value: this.doc.getValue()\n };\n };\n EditSession.prototype.toString = function () {\n return this.doc.getValue();\n };\n EditSession.prototype.getSelection = function () {\n return this.selection;\n };\n EditSession.prototype.getState = function (row) {\n return this.bgTokenizer.getState(row);\n };\n EditSession.prototype.getTokens = function (row) {\n return this.bgTokenizer.getTokens(row);\n };\n EditSession.prototype.getTokenAt = function (row, column) {\n var tokens = this.bgTokenizer.getTokens(row);\n var token, c = 0;\n if (column == null) {\n var i = tokens.length - 1;\n c = this.getLine(row).length;\n }\n else {\n for (var i = 0; i < tokens.length; i++) {\n c += tokens[i].value.length;\n if (c >= column)\n break;\n }\n }\n token = tokens[i];\n if (!token)\n return null;\n token.index = i;\n token.start = c - token.value.length;\n return token;\n };\n EditSession.prototype.setUndoManager = function (undoManager) {\n this.$undoManager = undoManager;\n if (this.$informUndoManager)\n this.$informUndoManager.cancel();\n if (undoManager) {\n var self = this;\n undoManager.addSession(this);\n this.$syncInformUndoManager = function () {\n self.$informUndoManager.cancel();\n self.mergeUndoDeltas = false;\n };\n this.$informUndoManager = lang.delayedCall(this.$syncInformUndoManager);\n }\n else {\n this.$syncInformUndoManager = function () { };\n }\n };\n EditSession.prototype.markUndoGroup = function () {\n if (this.$syncInformUndoManager)\n this.$syncInformUndoManager();\n };\n EditSession.prototype.getUndoManager = function () {\n return this.$undoManager || this.$defaultUndoManager;\n };\n EditSession.prototype.getTabString = function () {\n if (this.getUseSoftTabs()) {\n return lang.stringRepeat(\" \", this.getTabSize());\n }\n else {\n return \"\\t\";\n }\n };\n EditSession.prototype.setUseSoftTabs = function (val) {\n this.setOption(\"useSoftTabs\", val);\n };\n EditSession.prototype.getUseSoftTabs = function () {\n return this.$useSoftTabs && !this.$mode.$indentWithTabs;\n };\n EditSession.prototype.setTabSize = function (tabSize) {\n this.setOption(\"tabSize\", tabSize);\n };\n EditSession.prototype.getTabSize = function () {\n return this.$tabSize;\n };\n EditSession.prototype.isTabStop = function (position) {\n return this.$useSoftTabs && (position.column % this.$tabSize === 0);\n };\n EditSession.prototype.setNavigateWithinSoftTabs = function (navigateWithinSoftTabs) {\n this.setOption(\"navigateWithinSoftTabs\", navigateWithinSoftTabs);\n };\n EditSession.prototype.getNavigateWithinSoftTabs = function () {\n return this.$navigateWithinSoftTabs;\n };\n EditSession.prototype.setOverwrite = function (overwrite) {\n this.setOption(\"overwrite\", overwrite);\n };\n EditSession.prototype.getOverwrite = function () {\n return this.$overwrite;\n };\n EditSession.prototype.toggleOverwrite = function () {\n this.setOverwrite(!this.$overwrite);\n };\n EditSession.prototype.addGutterDecoration = function (row, className) {\n if (!this.$decorations[row])\n this.$decorations[row] = \"\";\n this.$decorations[row] += \" \" + className;\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.removeGutterDecoration = function (row, className) {\n this.$decorations[row] = (this.$decorations[row] || \"\").replace(\" \" + className, \"\");\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.getBreakpoints = function () {\n return this.$breakpoints;\n };\n EditSession.prototype.setBreakpoints = function (rows) {\n this.$breakpoints = [];\n for (var i = 0; i < rows.length; i++) {\n this.$breakpoints[rows[i]] = \"ace_breakpoint\";\n }\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.clearBreakpoints = function () {\n this.$breakpoints = [];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.setBreakpoint = function (row, className) {\n if (className === undefined)\n className = \"ace_breakpoint\";\n if (className)\n this.$breakpoints[row] = className;\n else\n delete this.$breakpoints[row];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.clearBreakpoint = function (row) {\n delete this.$breakpoints[row];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.addMarker = function (range, clazz, type, inFront) {\n var id = this.$markerId++;\n var marker = {\n range: range,\n type: type || \"line\",\n renderer: typeof type == \"function\" ? type : null,\n clazz: clazz,\n inFront: !!inFront,\n id: id\n };\n if (inFront) {\n this.$frontMarkers[id] = marker;\n this._signal(\"changeFrontMarker\");\n }\n else {\n this.$backMarkers[id] = marker;\n this._signal(\"changeBackMarker\");\n }\n return id;\n };\n EditSession.prototype.addDynamicMarker = function (marker, inFront) {\n if (!marker.update)\n return;\n var id = this.$markerId++;\n marker.id = id;\n marker.inFront = !!inFront;\n if (inFront) {\n this.$frontMarkers[id] = marker;\n this._signal(\"changeFrontMarker\");\n }\n else {\n this.$backMarkers[id] = marker;\n this._signal(\"changeBackMarker\");\n }\n return marker;\n };\n EditSession.prototype.removeMarker = function (markerId) {\n var marker = this.$frontMarkers[markerId] || this.$backMarkers[markerId];\n if (!marker)\n return;\n var markers = marker.inFront ? this.$frontMarkers : this.$backMarkers;\n delete (markers[markerId]);\n this._signal(marker.inFront ? \"changeFrontMarker\" : \"changeBackMarker\");\n };\n EditSession.prototype.getMarkers = function (inFront) {\n return inFront ? this.$frontMarkers : this.$backMarkers;\n };\n EditSession.prototype.highlight = function (re) {\n if (!this.$searchHighlight) {\n var highlight = new SearchHighlight(null, \"ace_selected-word\", \"text\");\n this.$searchHighlight = this.addDynamicMarker(highlight);\n }\n this.$searchHighlight.setRegexp(re);\n };\n EditSession.prototype.highlightLines = function (startRow, endRow, clazz, inFront) {\n if (typeof endRow != \"number\") {\n clazz = endRow;\n endRow = startRow;\n }\n if (!clazz)\n clazz = \"ace_step\";\n var range = new Range(startRow, 0, endRow, Infinity);\n range.id = this.addMarker(range, clazz, \"fullLine\", inFront);\n return range;\n };\n EditSession.prototype.setAnnotations = function (annotations) {\n this.$annotations = annotations;\n this._signal(\"changeAnnotation\", {});\n };\n EditSession.prototype.getAnnotations = function () {\n return this.$annotations || [];\n };\n EditSession.prototype.clearAnnotations = function () {\n this.setAnnotations([]);\n };\n EditSession.prototype.$detectNewLine = function (text) {\n var match = text.match(/^.*?(\\r?\\n)/m);\n if (match) {\n this.$autoNewLine = match[1];\n }\n else {\n this.$autoNewLine = \"\\n\";\n }\n };\n EditSession.prototype.getWordRange = function (row, column) {\n var line = this.getLine(row);\n var inToken = false;\n if (column > 0)\n inToken = !!line.charAt(column - 1).match(this.tokenRe);\n if (!inToken)\n inToken = !!line.charAt(column).match(this.tokenRe);\n if (inToken)\n var re = this.tokenRe;\n else if (/^\\s+$/.test(line.slice(column - 1, column + 1)))\n var re = /\\s/;\n else\n var re = this.nonTokenRe;\n var start = column;\n if (start > 0) {\n do {\n start--;\n } while (start >= 0 && line.charAt(start).match(re));\n start++;\n }\n var end = column;\n while (end < line.length && line.charAt(end).match(re)) {\n end++;\n }\n return new Range(row, start, row, end);\n };\n EditSession.prototype.getAWordRange = function (row, column) {\n var wordRange = this.getWordRange(row, column);\n var line = this.getLine(wordRange.end.row);\n while (line.charAt(wordRange.end.column).match(/[ \\t]/)) {\n wordRange.end.column += 1;\n }\n return wordRange;\n };\n EditSession.prototype.setNewLineMode = function (newLineMode) {\n this.doc.setNewLineMode(newLineMode);\n };\n EditSession.prototype.getNewLineMode = function () {\n return this.doc.getNewLineMode();\n };\n EditSession.prototype.setUseWorker = function (useWorker) { this.setOption(\"useWorker\", useWorker); };\n EditSession.prototype.getUseWorker = function () { return this.$useWorker; };\n EditSession.prototype.onReloadTokenizer = function (e) {\n var rows = e.data;\n this.bgTokenizer.start(rows.first);\n this._signal(\"tokenizerUpdate\", e);\n };\n EditSession.prototype.setMode = function (mode, cb) {\n if (mode && typeof mode === \"object\") {\n if (mode.getTokenizer)\n return this.$onChangeMode(mode);\n var options = mode;\n var path = options.path;\n }\n else {\n path = mode || \"ace/mode/text\";\n }\n if (!this.$modes[\"ace/mode/text\"])\n this.$modes[\"ace/mode/text\"] = new TextMode();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n cb && cb();\n return;\n }\n this.$modeId = path;\n config.loadModule([\"mode\", path], function (m) {\n if (this.$modeId !== path)\n return cb && cb();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n }\n else if (m && m.Mode) {\n m = new m.Mode(options);\n if (!options) {\n this.$modes[path] = m;\n m.$id = path;\n }\n this.$onChangeMode(m);\n }\n cb && cb();\n }.bind(this));\n if (!this.$mode)\n this.$onChangeMode(this.$modes[\"ace/mode/text\"], true);\n };\n EditSession.prototype.$onChangeMode = function (mode, $isPlaceholder) {\n if (!$isPlaceholder)\n this.$modeId = mode.$id;\n if (this.$mode === mode)\n return;\n var oldMode = this.$mode;\n this.$mode = mode;\n this.$stopWorker();\n if (this.$useWorker)\n this.$startWorker();\n var tokenizer = mode.getTokenizer();\n if (tokenizer.on !== undefined) {\n var onReloadTokenizer = this.onReloadTokenizer.bind(this);\n tokenizer.on(\"update\", onReloadTokenizer);\n }\n this.bgTokenizer.setTokenizer(tokenizer);\n this.bgTokenizer.setDocument(this.getDocument());\n this.tokenRe = mode.tokenRe;\n this.nonTokenRe = mode.nonTokenRe;\n if (!$isPlaceholder) {\n if (mode.attachToSession)\n mode.attachToSession(this);\n this.$options.wrapMethod.set.call(this, this.$wrapMethod);\n this.$setFolding(mode.foldingRules);\n this.bgTokenizer.start(0);\n this._emit(\"changeMode\", { oldMode: oldMode, mode: mode });\n }\n };\n EditSession.prototype.$stopWorker = function () {\n if (this.$worker) {\n this.$worker.terminate();\n this.$worker = null;\n }\n };\n EditSession.prototype.$startWorker = function () {\n try {\n this.$worker = this.$mode.createWorker(this);\n }\n catch (e) {\n config.warn(\"Could not load worker\", e);\n this.$worker = null;\n }\n };\n EditSession.prototype.getMode = function () {\n return this.$mode;\n };\n EditSession.prototype.setScrollTop = function (scrollTop) {\n if (this.$scrollTop === scrollTop || isNaN(scrollTop))\n return;\n this.$scrollTop = scrollTop;\n this._signal(\"changeScrollTop\", scrollTop);\n };\n EditSession.prototype.getScrollTop = function () {\n return this.$scrollTop;\n };\n EditSession.prototype.setScrollLeft = function (scrollLeft) {\n if (this.$scrollLeft === scrollLeft || isNaN(scrollLeft))\n return;\n this.$scrollLeft = scrollLeft;\n this._signal(\"changeScrollLeft\", scrollLeft);\n };\n EditSession.prototype.getScrollLeft = function () {\n return this.$scrollLeft;\n };\n EditSession.prototype.getScreenWidth = function () {\n this.$computeWidth();\n if (this.lineWidgets)\n return Math.max(this.getLineWidgetMaxWidth(), this.screenWidth);\n return this.screenWidth;\n };\n EditSession.prototype.getLineWidgetMaxWidth = function () {\n if (this.lineWidgetsWidth != null)\n return this.lineWidgetsWidth;\n var width = 0;\n this.lineWidgets.forEach(function (w) {\n if (w && w.screenWidth > width)\n width = w.screenWidth;\n });\n return this.lineWidgetWidth = width;\n };\n EditSession.prototype.$computeWidth = function (force) {\n if (this.$modified || force) {\n this.$modified = false;\n if (this.$useWrapMode)\n return this.screenWidth = this.$wrapLimit;\n var lines = this.doc.getAllLines();\n var cache = this.$rowLengthCache;\n var longestScreenLine = 0;\n var foldIndex = 0;\n var foldLine = this.$foldData[foldIndex];\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n var len = lines.length;\n for (var i = 0; i < len; i++) {\n if (i > foldStart) {\n i = foldLine.end.row + 1;\n if (i >= len)\n break;\n foldLine = this.$foldData[foldIndex++];\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (cache[i] == null)\n cache[i] = this.$getStringScreenWidth(lines[i])[0];\n if (cache[i] > longestScreenLine)\n longestScreenLine = cache[i];\n }\n this.screenWidth = longestScreenLine;\n }\n };\n EditSession.prototype.getLine = function (row) {\n return this.doc.getLine(row);\n };\n EditSession.prototype.getLines = function (firstRow, lastRow) {\n return this.doc.getLines(firstRow, lastRow);\n };\n EditSession.prototype.getLength = function () {\n return this.doc.getLength();\n };\n EditSession.prototype.getTextRange = function (range) {\n return this.doc.getTextRange(range || this.selection.getRange());\n };\n EditSession.prototype.insert = function (position, text) {\n return this.doc.insert(position, text);\n };\n EditSession.prototype.remove = function (range) {\n return this.doc.remove(range);\n };\n EditSession.prototype.removeFullLines = function (firstRow, lastRow) {\n return this.doc.removeFullLines(firstRow, lastRow);\n };\n EditSession.prototype.undoChanges = function (deltas, dontSelect) {\n if (!deltas.length)\n return;\n this.$fromUndo = true;\n for (var i = deltas.length - 1; i != -1; i--) {\n var delta = deltas[i];\n if (delta.action == \"insert\" || delta.action == \"remove\") {\n this.doc.revertDelta(delta);\n }\n else if (delta.folds) {\n this.addFolds(delta.folds);\n }\n }\n if (!dontSelect && this.$undoSelect) {\n if (deltas.selectionBefore)\n this.selection.fromJSON(deltas.selectionBefore);\n else\n this.selection.setRange(this.$getUndoSelection(deltas, true));\n }\n this.$fromUndo = false;\n };\n EditSession.prototype.redoChanges = function (deltas, dontSelect) {\n if (!deltas.length)\n return;\n this.$fromUndo = true;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (delta.action == \"insert\" || delta.action == \"remove\") {\n this.doc.$safeApplyDelta(delta);\n }\n }\n if (!dontSelect && this.$undoSelect) {\n if (deltas.selectionAfter)\n this.selection.fromJSON(deltas.selectionAfter);\n else\n this.selection.setRange(this.$getUndoSelection(deltas, false));\n }\n this.$fromUndo = false;\n };\n EditSession.prototype.setUndoSelect = function (enable) {\n this.$undoSelect = enable;\n };\n EditSession.prototype.$getUndoSelection = function (deltas, isUndo) {\n function isInsert(delta) {\n return isUndo ? delta.action !== \"insert\" : delta.action === \"insert\";\n }\n var range, point;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (!delta.start)\n continue; // skip folds\n if (!range) {\n if (isInsert(delta)) {\n range = Range.fromPoints(delta.start, delta.end);\n }\n else {\n range = Range.fromPoints(delta.start, delta.start);\n }\n continue;\n }\n if (isInsert(delta)) {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range.setStart(point);\n }\n point = delta.end;\n if (range.compare(point.row, point.column) == 1) {\n range.setEnd(point);\n }\n }\n else {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range = Range.fromPoints(delta.start, delta.start);\n }\n }\n }\n return range;\n };\n EditSession.prototype.replace = function (range, text) {\n return this.doc.replace(range, text);\n };\n EditSession.prototype.moveText = function (fromRange, toPosition, copy) {\n var text = this.getTextRange(fromRange);\n var folds = this.getFoldsInRange(fromRange);\n var toRange = Range.fromPoints(toPosition, toPosition);\n if (!copy) {\n this.remove(fromRange);\n var rowDiff = fromRange.start.row - fromRange.end.row;\n var collDiff = rowDiff ? -fromRange.end.column : fromRange.start.column - fromRange.end.column;\n if (collDiff) {\n if (toRange.start.row == fromRange.end.row && toRange.start.column > fromRange.end.column)\n toRange.start.column += collDiff;\n if (toRange.end.row == fromRange.end.row && toRange.end.column > fromRange.end.column)\n toRange.end.column += collDiff;\n }\n if (rowDiff && toRange.start.row >= fromRange.end.row) {\n toRange.start.row += rowDiff;\n toRange.end.row += rowDiff;\n }\n }\n toRange.end = this.insert(toRange.start, text);\n if (folds.length) {\n var oldStart = fromRange.start;\n var newStart = toRange.start;\n var rowDiff = newStart.row - oldStart.row;\n var collDiff = newStart.column - oldStart.column;\n this.addFolds(folds.map(function (x) {\n x = x.clone();\n if (x.start.row == oldStart.row)\n x.start.column += collDiff;\n if (x.end.row == oldStart.row)\n x.end.column += collDiff;\n x.start.row += rowDiff;\n x.end.row += rowDiff;\n return x;\n }));\n }\n return toRange;\n };\n EditSession.prototype.indentRows = function (startRow, endRow, indentString) {\n indentString = indentString.replace(/\\t/g, this.getTabString());\n for (var row = startRow; row <= endRow; row++)\n this.doc.insertInLine({ row: row, column: 0 }, indentString);\n };\n EditSession.prototype.outdentRows = function (range) {\n var rowRange = range.collapseRows();\n var deleteRange = new Range(0, 0, 0, 0);\n var size = this.getTabSize();\n for (var i = rowRange.start.row; i <= rowRange.end.row; ++i) {\n var line = this.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n for (var j = 0; j < size; ++j)\n if (line.charAt(j) != ' ')\n break;\n if (j < size && line.charAt(j) == '\\t') {\n deleteRange.start.column = j;\n deleteRange.end.column = j + 1;\n }\n else {\n deleteRange.start.column = 0;\n deleteRange.end.column = j;\n }\n this.remove(deleteRange);\n }\n };\n EditSession.prototype.$moveLines = function (firstRow, lastRow, dir) {\n firstRow = this.getRowFoldStart(firstRow);\n lastRow = this.getRowFoldEnd(lastRow);\n if (dir < 0) {\n var row = this.getRowFoldStart(firstRow + dir);\n if (row < 0)\n return 0;\n var diff = row - firstRow;\n }\n else if (dir > 0) {\n var row = this.getRowFoldEnd(lastRow + dir);\n if (row > this.doc.getLength() - 1)\n return 0;\n var diff = row - lastRow;\n }\n else {\n firstRow = this.$clipRowToDocument(firstRow);\n lastRow = this.$clipRowToDocument(lastRow);\n var diff = lastRow - firstRow + 1;\n }\n var range = new Range(firstRow, 0, lastRow, Number.MAX_VALUE);\n var folds = this.getFoldsInRange(range).map(function (x) {\n x = x.clone();\n x.start.row += diff;\n x.end.row += diff;\n return x;\n });\n var lines = dir == 0\n ? this.doc.getLines(firstRow, lastRow)\n : this.doc.removeFullLines(firstRow, lastRow);\n this.doc.insertFullLines(firstRow + diff, lines);\n folds.length && this.addFolds(folds);\n return diff;\n };\n EditSession.prototype.moveLinesUp = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, -1);\n };\n EditSession.prototype.moveLinesDown = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 1);\n };\n EditSession.prototype.duplicateLines = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 0);\n };\n EditSession.prototype.$clipRowToDocument = function (row) {\n return Math.max(0, Math.min(row, this.doc.getLength() - 1));\n };\n EditSession.prototype.$clipColumnToRow = function (row, column) {\n if (column < 0)\n return 0;\n return Math.min(this.doc.getLine(row).length, column);\n };\n EditSession.prototype.$clipPositionToDocument = function (row, column) {\n column = Math.max(0, column);\n if (row < 0) {\n row = 0;\n column = 0;\n }\n else {\n var len = this.doc.getLength();\n if (row >= len) {\n row = len - 1;\n column = this.doc.getLine(len - 1).length;\n }\n else {\n column = Math.min(this.doc.getLine(row).length, column);\n }\n }\n return {\n row: row,\n column: column\n };\n };\n EditSession.prototype.$clipRangeToDocument = function (range) {\n if (range.start.row < 0) {\n range.start.row = 0;\n range.start.column = 0;\n }\n else {\n range.start.column = this.$clipColumnToRow(range.start.row, range.start.column);\n }\n var len = this.doc.getLength() - 1;\n if (range.end.row > len) {\n range.end.row = len;\n range.end.column = this.doc.getLine(len).length;\n }\n else {\n range.end.column = this.$clipColumnToRow(range.end.row, range.end.column);\n }\n return range;\n };\n EditSession.prototype.setUseWrapMode = function (useWrapMode) {\n if (useWrapMode != this.$useWrapMode) {\n this.$useWrapMode = useWrapMode;\n this.$modified = true;\n this.$resetRowCache(0);\n if (useWrapMode) {\n var len = this.getLength();\n this.$wrapData = Array(len);\n this.$updateWrapData(0, len - 1);\n }\n this._signal(\"changeWrapMode\");\n }\n };\n EditSession.prototype.getUseWrapMode = function () {\n return this.$useWrapMode;\n };\n EditSession.prototype.setWrapLimitRange = function (min, max) {\n if (this.$wrapLimitRange.min !== min || this.$wrapLimitRange.max !== max) {\n this.$wrapLimitRange = { min: min, max: max };\n this.$modified = true;\n this.$bidiHandler.markAsDirty();\n if (this.$useWrapMode)\n this._signal(\"changeWrapMode\");\n }\n };\n EditSession.prototype.adjustWrapLimit = function (desiredLimit, $printMargin) {\n var limits = this.$wrapLimitRange;\n if (limits.max < 0)\n limits = { min: $printMargin, max: $printMargin };\n var wrapLimit = this.$constrainWrapLimit(desiredLimit, limits.min, limits.max);\n if (wrapLimit != this.$wrapLimit && wrapLimit > 1) {\n this.$wrapLimit = wrapLimit;\n this.$modified = true;\n if (this.$useWrapMode) {\n this.$updateWrapData(0, this.getLength() - 1);\n this.$resetRowCache(0);\n this._signal(\"changeWrapLimit\");\n }\n return true;\n }\n return false;\n };\n EditSession.prototype.$constrainWrapLimit = function (wrapLimit, min, max) {\n if (min)\n wrapLimit = Math.max(min, wrapLimit);\n if (max)\n wrapLimit = Math.min(max, wrapLimit);\n return wrapLimit;\n };\n EditSession.prototype.getWrapLimit = function () {\n return this.$wrapLimit;\n };\n EditSession.prototype.setWrapLimit = function (limit) {\n this.setWrapLimitRange(limit, limit);\n };\n EditSession.prototype.getWrapLimitRange = function () {\n return {\n min: this.$wrapLimitRange.min,\n max: this.$wrapLimitRange.max\n };\n };\n EditSession.prototype.$updateInternalDataOnChange = function (delta) {\n var useWrapMode = this.$useWrapMode;\n var action = delta.action;\n var start = delta.start;\n var end = delta.end;\n var firstRow = start.row;\n var lastRow = end.row;\n var len = lastRow - firstRow;\n var removedFolds = null;\n this.$updating = true;\n if (len != 0) {\n if (action === \"remove\") {\n this[useWrapMode ? \"$wrapData\" : \"$rowLengthCache\"].splice(firstRow, len);\n var foldLines = this.$foldData;\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n var foldLine = this.getFoldLine(end.row);\n var idx = 0;\n if (foldLine) {\n foldLine.addRemoveChars(end.row, end.column, start.column - end.column);\n foldLine.shiftRow(-len);\n var foldLineBefore = this.getFoldLine(firstRow);\n if (foldLineBefore && foldLineBefore !== foldLine) {\n foldLineBefore.merge(foldLine);\n foldLine = foldLineBefore;\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= end.row) {\n foldLine.shiftRow(-len);\n }\n }\n lastRow = firstRow;\n }\n else {\n var args = Array(len);\n args.unshift(firstRow, 0);\n var arr = useWrapMode ? this.$wrapData : this.$rowLengthCache;\n arr.splice.apply(arr, args);\n var foldLines = this.$foldData;\n var foldLine = this.getFoldLine(firstRow);\n var idx = 0;\n if (foldLine) {\n var cmp = foldLine.range.compareInside(start.row, start.column);\n if (cmp == 0) {\n foldLine = foldLine.split(start.row, start.column);\n if (foldLine) {\n foldLine.shiftRow(len);\n foldLine.addRemoveChars(lastRow, 0, end.column - start.column);\n }\n }\n else \n if (cmp == -1) {\n foldLine.addRemoveChars(firstRow, 0, end.column - start.column);\n foldLine.shiftRow(len);\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= firstRow) {\n foldLine.shiftRow(len);\n }\n }\n }\n }\n else {\n len = Math.abs(delta.start.column - delta.end.column);\n if (action === \"remove\") {\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n len = -len;\n }\n var foldLine = this.getFoldLine(firstRow);\n if (foldLine) {\n foldLine.addRemoveChars(firstRow, start.column, len);\n }\n }\n if (useWrapMode && this.$wrapData.length != this.doc.getLength()) {\n console.error(\"doc.getLength() and $wrapData.length have to be the same!\");\n }\n this.$updating = false;\n if (useWrapMode)\n this.$updateWrapData(firstRow, lastRow);\n else\n this.$updateRowLengthCache(firstRow, lastRow);\n return removedFolds;\n };\n EditSession.prototype.$updateRowLengthCache = function (firstRow, lastRow, b) {\n this.$rowLengthCache[firstRow] = null;\n this.$rowLengthCache[lastRow] = null;\n };\n EditSession.prototype.$updateWrapData = function (firstRow, lastRow) {\n var lines = this.doc.getAllLines();\n var tabSize = this.getTabSize();\n var wrapData = this.$wrapData;\n var wrapLimit = this.$wrapLimit;\n var tokens;\n var foldLine;\n var row = firstRow;\n lastRow = Math.min(lastRow, lines.length - 1);\n while (row <= lastRow) {\n foldLine = this.getFoldLine(row, foldLine);\n if (!foldLine) {\n tokens = this.$getDisplayTokens(lines[row]);\n wrapData[row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row++;\n }\n else {\n tokens = [];\n foldLine.walk(function (placeholder, row, column, lastColumn) {\n var walkTokens;\n if (placeholder != null) {\n walkTokens = this.$getDisplayTokens(placeholder, tokens.length);\n walkTokens[0] = PLACEHOLDER_START;\n for (var i = 1; i < walkTokens.length; i++) {\n walkTokens[i] = PLACEHOLDER_BODY;\n }\n }\n else {\n walkTokens = this.$getDisplayTokens(lines[row].substring(lastColumn, column), tokens.length);\n }\n tokens = tokens.concat(walkTokens);\n }.bind(this), foldLine.end.row, lines[foldLine.end.row].length + 1);\n wrapData[foldLine.start.row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row = foldLine.end.row + 1;\n }\n }\n };\n EditSession.prototype.$computeWrapSplits = function (tokens, wrapLimit, tabSize) {\n if (tokens.length == 0) {\n return [];\n }\n var splits = [];\n var displayLength = tokens.length;\n var lastSplit = 0, lastDocSplit = 0;\n var isCode = this.$wrapAsCode;\n var indentedSoftWrap = this.$indentedSoftWrap;\n var maxIndent = wrapLimit <= Math.max(2 * tabSize, 8)\n || indentedSoftWrap === false ? 0 : Math.floor(wrapLimit / 2);\n function getWrapIndent() {\n var indentation = 0;\n if (maxIndent === 0)\n return indentation;\n if (indentedSoftWrap) {\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token == SPACE)\n indentation += 1;\n else if (token == TAB)\n indentation += tabSize;\n else if (token == TAB_SPACE)\n continue;\n else\n break;\n }\n }\n if (isCode && indentedSoftWrap !== false)\n indentation += tabSize;\n return Math.min(indentation, maxIndent);\n }\n function addSplit(screenPos) {\n var len = screenPos - lastSplit;\n for (var i = lastSplit; i < screenPos; i++) {\n var ch = tokens[i];\n if (ch === 12 || ch === 2)\n len -= 1;\n }\n if (!splits.length) {\n indent = getWrapIndent();\n splits.indent = indent;\n }\n lastDocSplit += len;\n splits.push(lastDocSplit);\n lastSplit = screenPos;\n }\n var indent = 0;\n while (displayLength - lastSplit > wrapLimit - indent) {\n var split = lastSplit + wrapLimit - indent;\n if (tokens[split - 1] >= SPACE && tokens[split] >= SPACE) {\n addSplit(split);\n continue;\n }\n if (tokens[split] == PLACEHOLDER_START || tokens[split] == PLACEHOLDER_BODY) {\n for (split; split != lastSplit - 1; split--) {\n if (tokens[split] == PLACEHOLDER_START) {\n break;\n }\n }\n if (split > lastSplit) {\n addSplit(split);\n continue;\n }\n split = lastSplit + wrapLimit;\n for (split; split < tokens.length; split++) {\n if (tokens[split] != PLACEHOLDER_BODY) {\n break;\n }\n }\n if (split == tokens.length) {\n break; // Breaks the while-loop.\n }\n addSplit(split);\n continue;\n }\n var minSplit = Math.max(split - (wrapLimit - (wrapLimit >> 2)), lastSplit - 1);\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split--;\n }\n if (isCode) {\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split--;\n }\n while (split > minSplit && tokens[split] == PUNCTUATION) {\n split--;\n }\n }\n else {\n while (split > minSplit && tokens[split] < SPACE) {\n split--;\n }\n }\n if (split > minSplit) {\n addSplit(++split);\n continue;\n }\n split = lastSplit + wrapLimit;\n if (tokens[split] == CHAR_EXT)\n split--;\n addSplit(split - indent);\n }\n return splits;\n };\n EditSession.prototype.$getDisplayTokens = function (str, offset) {\n var arr = [];\n var tabSize;\n offset = offset || 0;\n for (var i = 0; i < str.length; i++) {\n var c = str.charCodeAt(i);\n if (c == 9) {\n tabSize = this.getScreenTabSize(arr.length + offset);\n arr.push(TAB);\n for (var n = 1; n < tabSize; n++) {\n arr.push(TAB_SPACE);\n }\n }\n else if (c == 32) {\n arr.push(SPACE);\n }\n else if ((c > 39 && c < 48) || (c > 57 && c < 64)) {\n arr.push(PUNCTUATION);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n arr.push(CHAR, CHAR_EXT);\n }\n else {\n arr.push(CHAR);\n }\n }\n return arr;\n };\n EditSession.prototype.$getStringScreenWidth = function (str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn == 0)\n return [0, 0];\n if (maxScreenColumn == null)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charCodeAt(column);\n if (c == 9) {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n screenColumn += 2;\n }\n else {\n screenColumn += 1;\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n return [screenColumn, column];\n };\n EditSession.prototype.getRowLength = function (row) {\n var h = 1;\n if (this.lineWidgets)\n h += this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n if (!this.$useWrapMode || !this.$wrapData[row])\n return h;\n else\n return this.$wrapData[row].length + h;\n };\n EditSession.prototype.getRowLineCount = function (row) {\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1;\n }\n else {\n return this.$wrapData[row].length + 1;\n }\n };\n EditSession.prototype.getRowWrapIndent = function (screenRow) {\n if (this.$useWrapMode) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n var splits = this.$wrapData[pos.row];\n return splits.length && splits[0] < pos.column ? splits.indent : 0;\n }\n else {\n return 0;\n }\n };\n EditSession.prototype.getScreenLastRowColumn = function (screenRow) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n return this.documentToScreenColumn(pos.row, pos.column);\n };\n EditSession.prototype.getDocumentLastRowColumn = function (docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.getScreenLastRowColumn(screenRow);\n };\n EditSession.prototype.getDocumentLastRowColumnPosition = function (docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.screenToDocumentPosition(screenRow, Number.MAX_VALUE / 10);\n };\n EditSession.prototype.getRowSplitData = function (row) {\n if (!this.$useWrapMode) {\n return undefined;\n }\n else {\n return this.$wrapData[row];\n }\n };\n EditSession.prototype.getScreenTabSize = function (screenColumn) {\n return this.$tabSize - (screenColumn % this.$tabSize | 0);\n };\n EditSession.prototype.screenToDocumentRow = function (screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).row;\n };\n EditSession.prototype.screenToDocumentColumn = function (screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).column;\n };\n EditSession.prototype.screenToDocumentPosition = function (screenRow, screenColumn, offsetX) {\n if (screenRow < 0)\n return { row: 0, column: 0 };\n var line;\n var docRow = 0;\n var docColumn = 0;\n var column;\n var row = 0;\n var rowLength = 0;\n var rowCache = this.$screenRowCache;\n var i = this.$getRowCacheIndex(rowCache, screenRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var docRow = this.$docRowCache[i];\n var doCache = screenRow > rowCache[l - 1];\n }\n else {\n var doCache = !l;\n }\n var maxRow = this.getLength() - 1;\n var foldLine = this.getNextFoldLine(docRow);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (row <= screenRow) {\n rowLength = this.getRowLength(docRow);\n if (row + rowLength > screenRow || docRow >= maxRow) {\n break;\n }\n else {\n row += rowLength;\n docRow++;\n if (docRow > foldStart) {\n docRow = foldLine.end.row + 1;\n foldLine = this.getNextFoldLine(docRow, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n }\n if (doCache) {\n this.$docRowCache.push(docRow);\n this.$screenRowCache.push(row);\n }\n }\n if (foldLine && foldLine.start.row <= docRow) {\n line = this.getFoldDisplayLine(foldLine);\n docRow = foldLine.start.row;\n }\n else if (row + rowLength <= screenRow || docRow > maxRow) {\n return {\n row: maxRow,\n column: this.getLine(maxRow).length\n };\n }\n else {\n line = this.getLine(docRow);\n foldLine = null;\n }\n var wrapIndent = 0, splitIndex = Math.floor(screenRow - row);\n if (this.$useWrapMode) {\n var splits = this.$wrapData[docRow];\n if (splits) {\n column = splits[splitIndex];\n if (splitIndex > 0 && splits.length) {\n wrapIndent = splits.indent;\n docColumn = splits[splitIndex - 1] || splits[splits.length - 1];\n line = line.substring(docColumn);\n }\n }\n }\n if (offsetX !== undefined && this.$bidiHandler.isBidiRow(row + splitIndex, docRow, splitIndex))\n screenColumn = this.$bidiHandler.offsetToCol(offsetX);\n docColumn += this.$getStringScreenWidth(line, screenColumn - wrapIndent)[1];\n if (this.$useWrapMode && docColumn >= column)\n docColumn = column - 1;\n if (foldLine)\n return foldLine.idxToPosition(docColumn);\n return { row: docRow, column: docColumn };\n };\n EditSession.prototype.documentToScreenPosition = function (docRow, docColumn) {\n if (typeof docColumn === \"undefined\")\n var pos = this.$clipPositionToDocument(docRow.row, docRow.column);\n else\n pos = this.$clipPositionToDocument(docRow, docColumn);\n docRow = pos.row;\n docColumn = pos.column;\n var screenRow = 0;\n var foldStartRow = null;\n var fold = null;\n fold = this.getFoldAt(docRow, docColumn, 1);\n if (fold) {\n docRow = fold.start.row;\n docColumn = fold.start.column;\n }\n var rowEnd, row = 0;\n var rowCache = this.$docRowCache;\n var i = this.$getRowCacheIndex(rowCache, docRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var screenRow = this.$screenRowCache[i];\n var doCache = docRow > rowCache[l - 1];\n }\n else {\n var doCache = !l;\n }\n var foldLine = this.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (row < docRow) {\n if (row >= foldStart) {\n rowEnd = foldLine.end.row + 1;\n if (rowEnd > docRow)\n break;\n foldLine = this.getNextFoldLine(rowEnd, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n else {\n rowEnd = row + 1;\n }\n screenRow += this.getRowLength(row);\n row = rowEnd;\n if (doCache) {\n this.$docRowCache.push(row);\n this.$screenRowCache.push(screenRow);\n }\n }\n var textLine = \"\";\n if (foldLine && row >= foldStart) {\n textLine = this.getFoldDisplayLine(foldLine, docRow, docColumn);\n foldStartRow = foldLine.start.row;\n }\n else {\n textLine = this.getLine(docRow).substring(0, docColumn);\n foldStartRow = docRow;\n }\n var wrapIndent = 0;\n if (this.$useWrapMode) {\n var wrapRow = this.$wrapData[foldStartRow];\n if (wrapRow) {\n var screenRowOffset = 0;\n while (textLine.length >= wrapRow[screenRowOffset]) {\n screenRow++;\n screenRowOffset++;\n }\n textLine = textLine.substring(wrapRow[screenRowOffset - 1] || 0, textLine.length);\n wrapIndent = screenRowOffset > 0 ? wrapRow.indent : 0;\n }\n }\n if (this.lineWidgets && this.lineWidgets[row] && this.lineWidgets[row].rowsAbove)\n screenRow += this.lineWidgets[row].rowsAbove;\n return {\n row: screenRow,\n column: wrapIndent + this.$getStringScreenWidth(textLine)[0]\n };\n };\n EditSession.prototype.documentToScreenColumn = function (row, docColumn) {\n return this.documentToScreenPosition(row, docColumn).column;\n };\n EditSession.prototype.documentToScreenRow = function (docRow, docColumn) {\n return this.documentToScreenPosition(docRow, docColumn).row;\n };\n EditSession.prototype.getScreenLength = function () {\n var screenRows = 0;\n var fold = null;\n if (!this.$useWrapMode) {\n screenRows = this.getLength();\n var foldData = this.$foldData;\n for (var i = 0; i < foldData.length; i++) {\n fold = foldData[i];\n screenRows -= fold.end.row - fold.start.row;\n }\n }\n else {\n var lastRow = this.$wrapData.length;\n var row = 0, i = 0;\n var fold = this.$foldData[i++];\n var foldStart = fold ? fold.start.row : Infinity;\n while (row < lastRow) {\n var splits = this.$wrapData[row];\n screenRows += splits ? splits.length + 1 : 1;\n row++;\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = this.$foldData[i++];\n foldStart = fold ? fold.start.row : Infinity;\n }\n }\n }\n if (this.lineWidgets)\n screenRows += this.$getWidgetScreenLength();\n return screenRows;\n };\n EditSession.prototype.$setFontMetrics = function (fm) {\n if (!this.$enableVarChar)\n return;\n this.$getStringScreenWidth = function (str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn === 0)\n return [0, 0];\n if (!maxScreenColumn)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charAt(column);\n if (c === \"\\t\") {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else {\n screenColumn += fm.getCharacterWidth(c);\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n return [screenColumn, column];\n };\n };\n EditSession.prototype.destroy = function () {\n if (!this.destroyed) {\n this.bgTokenizer.setDocument(null);\n this.bgTokenizer.cleanup();\n this.destroyed = true;\n }\n this.$stopWorker();\n this.removeAllListeners();\n if (this.doc) {\n this.doc.off(\"change\", this.$onChange);\n }\n this.selection.detach();\n };\n return EditSession;\n}());\nEditSession.$uid = 0;\nEditSession.prototype.$modes = config.$modes;\nEditSession.prototype.getValue = EditSession.prototype.toString;\nEditSession.prototype.$defaultUndoManager = {\n undo: function () { },\n redo: function () { },\n hasUndo: function () { },\n hasRedo: function () { },\n reset: function () { },\n add: function () { },\n addSelection: function () { },\n startNewGroup: function () { },\n addSession: function () { }\n};\nEditSession.prototype.$overwrite = false;\nEditSession.prototype.$mode = null;\nEditSession.prototype.$modeId = null;\nEditSession.prototype.$scrollTop = 0;\nEditSession.prototype.$scrollLeft = 0;\nEditSession.prototype.$wrapLimit = 80;\nEditSession.prototype.$useWrapMode = false;\nEditSession.prototype.$wrapLimitRange = {\n min: null,\n max: null\n};\nEditSession.prototype.lineWidgets = null;\nEditSession.prototype.isFullWidth = isFullWidth;\noop.implement(EditSession.prototype, EventEmitter);\nvar CHAR = 1, CHAR_EXT = 2, PLACEHOLDER_START = 3, PLACEHOLDER_BODY = 4, PUNCTUATION = 9, SPACE = 10, TAB = 11, TAB_SPACE = 12;\nfunction isFullWidth(c) {\n if (c < 0x1100)\n return false;\n return c >= 0x1100 && c <= 0x115F ||\n c >= 0x11A3 && c <= 0x11A7 ||\n c >= 0x11FA && c <= 0x11FF ||\n c >= 0x2329 && c <= 0x232A ||\n c >= 0x2E80 && c <= 0x2E99 ||\n c >= 0x2E9B && c <= 0x2EF3 ||\n c >= 0x2F00 && c <= 0x2FD5 ||\n c >= 0x2FF0 && c <= 0x2FFB ||\n c >= 0x3000 && c <= 0x303E ||\n c >= 0x3041 && c <= 0x3096 ||\n c >= 0x3099 && c <= 0x30FF ||\n c >= 0x3105 && c <= 0x312D ||\n c >= 0x3131 && c <= 0x318E ||\n c >= 0x3190 && c <= 0x31BA ||\n c >= 0x31C0 && c <= 0x31E3 ||\n c >= 0x31F0 && c <= 0x321E ||\n c >= 0x3220 && c <= 0x3247 ||\n c >= 0x3250 && c <= 0x32FE ||\n c >= 0x3300 && c <= 0x4DBF ||\n c >= 0x4E00 && c <= 0xA48C ||\n c >= 0xA490 && c <= 0xA4C6 ||\n c >= 0xA960 && c <= 0xA97C ||\n c >= 0xAC00 && c <= 0xD7A3 ||\n c >= 0xD7B0 && c <= 0xD7C6 ||\n c >= 0xD7CB && c <= 0xD7FB ||\n c >= 0xF900 && c <= 0xFAFF ||\n c >= 0xFE10 && c <= 0xFE19 ||\n c >= 0xFE30 && c <= 0xFE52 ||\n c >= 0xFE54 && c <= 0xFE66 ||\n c >= 0xFE68 && c <= 0xFE6B ||\n c >= 0xFF01 && c <= 0xFF60 ||\n c >= 0xFFE0 && c <= 0xFFE6;\n}\nrequire(\"./edit_session/folding\").Folding.call(EditSession.prototype);\nrequire(\"./edit_session/bracket_match\").BracketMatch.call(EditSession.prototype);\nconfig.defineOptions(EditSession.prototype, \"session\", {\n wrap: {\n set: function (value) {\n if (!value || value == \"off\")\n value = false;\n else if (value == \"free\")\n value = true;\n else if (value == \"printMargin\")\n value = -1;\n else if (typeof value == \"string\")\n value = parseInt(value, 10) || false;\n if (this.$wrap == value)\n return;\n this.$wrap = value;\n if (!value) {\n this.setUseWrapMode(false);\n }\n else {\n var col = typeof value == \"number\" ? value : null;\n this.setWrapLimitRange(col, col);\n this.setUseWrapMode(true);\n }\n },\n get: function () {\n if (this.getUseWrapMode()) {\n if (this.$wrap == -1)\n return \"printMargin\";\n if (!this.getWrapLimitRange().min)\n return \"free\";\n return this.$wrap;\n }\n return \"off\";\n },\n handlesSet: true\n },\n wrapMethod: {\n set: function (val) {\n val = val == \"auto\"\n ? this.$mode.type != \"text\"\n : val != \"text\";\n if (val != this.$wrapAsCode) {\n this.$wrapAsCode = val;\n if (this.$useWrapMode) {\n this.$useWrapMode = false;\n this.setUseWrapMode(true);\n }\n }\n },\n initialValue: \"auto\"\n },\n indentedSoftWrap: {\n set: function () {\n if (this.$useWrapMode) {\n this.$useWrapMode = false;\n this.setUseWrapMode(true);\n }\n },\n initialValue: true\n },\n firstLineNumber: {\n set: function () { this._signal(\"changeBreakpoint\"); },\n initialValue: 1\n },\n useWorker: {\n set: function (useWorker) {\n this.$useWorker = useWorker;\n this.$stopWorker();\n if (useWorker)\n this.$startWorker();\n },\n initialValue: true\n },\n useSoftTabs: { initialValue: true },\n tabSize: {\n set: function (tabSize) {\n tabSize = parseInt(tabSize);\n if (tabSize > 0 && this.$tabSize !== tabSize) {\n this.$modified = true;\n this.$rowLengthCache = [];\n this.$tabSize = tabSize;\n this._signal(\"changeTabSize\");\n }\n },\n initialValue: 4,\n handlesSet: true\n },\n navigateWithinSoftTabs: { initialValue: false },\n foldStyle: {\n set: function (val) { this.setFoldStyle(val); },\n handlesSet: true\n },\n overwrite: {\n set: function (val) { this._signal(\"changeOverwrite\"); },\n initialValue: false\n },\n newLineMode: {\n set: function (val) { this.doc.setNewLineMode(val); },\n get: function () { return this.doc.getNewLineMode(); },\n handlesSet: true\n },\n mode: {\n set: function (val) { this.setMode(val); },\n get: function () { return this.$modeId; },\n handlesSet: true\n }\n});\nexports.EditSession = EditSession;\n\n});\n\nace.define(\"ace/search\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"./lib/lang\");\nvar oop = require(\"./lib/oop\");\nvar Range = require(\"./range\").Range;\nvar Search = /** @class */ (function () {\n function Search() {\n this.$options = {};\n }\n Search.prototype.set = function (options) {\n oop.mixin(this.$options, options);\n return this;\n };\n Search.prototype.getOptions = function () {\n return lang.copyObject(this.$options);\n };\n Search.prototype.setOptions = function (options) {\n this.$options = options;\n };\n Search.prototype.find = function (session) {\n var options = this.$options;\n var iterator = this.$matchIterator(session, options);\n if (!iterator)\n return false;\n var firstRange = null;\n iterator.forEach(function (sr, sc, er, ec) {\n firstRange = new Range(sr, sc, er, ec);\n if (sc == ec && options.start && options.start.start\n && options.skipCurrent != false && firstRange.isEqual(options.start)) {\n firstRange = null;\n return false;\n }\n return true;\n });\n return firstRange;\n };\n Search.prototype.findAll = function (session) {\n var options = this.$options;\n if (!options.needle)\n return [];\n this.$assembleRegExp(options);\n var range = options.range;\n var lines = range\n ? session.getLines(range.start.row, range.end.row)\n : session.doc.getAllLines();\n var ranges = [];\n var re = options.re;\n if (options.$isMultiLine) {\n var len = re.length;\n var maxRow = lines.length - len;\n var prevRange;\n outer: for (var row = re.offset || 0; row <= maxRow; row++) {\n for (var j = 0; j < len; j++)\n if (lines[row + j].search(re[j]) == -1)\n continue outer;\n var startLine = lines[row];\n var line = lines[row + len - 1];\n var startIndex = startLine.length - startLine.match(re[0])[0].length;\n var endIndex = line.match(re[len - 1])[0].length;\n if (prevRange && prevRange.end.row === row &&\n prevRange.end.column > startIndex) {\n continue;\n }\n ranges.push(prevRange = new Range(row, startIndex, row + len - 1, endIndex));\n if (len > 2)\n row = row + len - 2;\n }\n }\n else {\n for (var i = 0; i < lines.length; i++) {\n var matches = lang.getMatchOffsets(lines[i], re);\n for (var j = 0; j < matches.length; j++) {\n var match = matches[j];\n ranges.push(new Range(i, match.offset, i, match.offset + match.length));\n }\n }\n }\n if (range) {\n var startColumn = range.start.column;\n var endColumn = range.end.column;\n var i = 0, j = ranges.length - 1;\n while (i < j && ranges[i].start.column < startColumn && ranges[i].start.row == 0)\n i++;\n var endRow = range.end.row - range.start.row;\n while (i < j && ranges[j].end.column > endColumn && ranges[j].end.row == endRow)\n j--;\n ranges = ranges.slice(i, j + 1);\n for (i = 0, j = ranges.length; i < j; i++) {\n ranges[i].start.row += range.start.row;\n ranges[i].end.row += range.start.row;\n }\n }\n return ranges;\n };\n Search.prototype.replace = function (input, replacement) {\n var options = this.$options;\n var re = this.$assembleRegExp(options);\n if (options.$isMultiLine)\n return replacement;\n if (!re)\n return;\n var match = re.exec(input);\n if (!match || match[0].length != input.length)\n return null;\n replacement = input.replace(re, replacement);\n if (options.preserveCase) {\n replacement = replacement.split(\"\");\n for (var i = Math.min(input.length, input.length); i--;) {\n var ch = input[i];\n if (ch && ch.toLowerCase() != ch)\n replacement[i] = replacement[i].toUpperCase();\n else\n replacement[i] = replacement[i].toLowerCase();\n }\n replacement = replacement.join(\"\");\n }\n return replacement;\n };\n Search.prototype.$assembleRegExp = function (options, $disableFakeMultiline) {\n if (options.needle instanceof RegExp)\n return options.re = options.needle;\n var needle = options.needle;\n if (!options.needle)\n return options.re = false;\n if (!options.regExp)\n needle = lang.escapeRegExp(needle);\n var modifier = options.caseSensitive ? \"gm\" : \"gmi\";\n try {\n new RegExp(needle, \"u\");\n options.$supportsUnicodeFlag = true;\n modifier += \"u\";\n }\n catch (e) {\n options.$supportsUnicodeFlag = false; //left for backward compatibility with previous versions for cases like /ab\\{2}/gu\n }\n if (options.wholeWord)\n needle = addWordBoundary(needle, options);\n options.$isMultiLine = !$disableFakeMultiline && /[\\n\\r]/.test(needle);\n if (options.$isMultiLine)\n return options.re = this.$assembleMultilineRegExp(needle, modifier);\n try {\n var re = new RegExp(needle, modifier);\n }\n catch (e) {\n re = false;\n }\n return options.re = re;\n };\n Search.prototype.$assembleMultilineRegExp = function (needle, modifier) {\n var parts = needle.replace(/\\r\\n|\\r|\\n/g, \"$\\n^\").split(\"\\n\");\n var re = [];\n for (var i = 0; i < parts.length; i++)\n try {\n re.push(new RegExp(parts[i], modifier));\n }\n catch (e) {\n return false;\n }\n return re;\n };\n Search.prototype.$matchIterator = function (session, options) {\n var re = this.$assembleRegExp(options);\n if (!re)\n return false;\n var backwards = options.backwards == true;\n var skipCurrent = options.skipCurrent != false;\n var supportsUnicodeFlag = re.unicode;\n var range = options.range;\n var start = options.start;\n if (!start)\n start = range ? range[backwards ? \"end\" : \"start\"] : session.selection.getRange();\n if (start.start)\n start = start[skipCurrent != backwards ? \"end\" : \"start\"];\n var firstRow = range ? range.start.row : 0;\n var lastRow = range ? range.end.row : session.getLength() - 1;\n if (backwards) {\n var forEach = function (callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row--; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = lastRow, firstRow = start.row; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n };\n }\n else {\n var forEach = function (callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row = row + 1; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = firstRow, lastRow = start.row; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n };\n }\n if (options.$isMultiLine) {\n var len = re.length;\n var forEachInLine = function (row, offset, callback) {\n var startRow = backwards ? row - len + 1 : row;\n if (startRow < 0 || startRow + len > session.getLength())\n return;\n var line = session.getLine(startRow);\n var startIndex = line.search(re[0]);\n if (!backwards && startIndex < offset || startIndex === -1)\n return;\n for (var i = 1; i < len; i++) {\n line = session.getLine(startRow + i);\n if (line.search(re[i]) == -1)\n return;\n }\n var endIndex = line.match(re[len - 1])[0].length;\n if (backwards && endIndex > offset)\n return;\n if (callback(startRow, startIndex, startRow + len - 1, endIndex))\n return true;\n };\n }\n else if (backwards) {\n var forEachInLine = function (row, endIndex, callback) {\n var line = session.getLine(row);\n var matches = [];\n var m, last = 0;\n re.lastIndex = 0;\n while ((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (!length) {\n if (last >= line.length)\n break;\n re.lastIndex = last += lang.skipEmptyMatch(line, last, supportsUnicodeFlag);\n }\n if (m.index + length > endIndex)\n break;\n matches.push(m.index, length);\n }\n for (var i = matches.length - 1; i >= 0; i -= 2) {\n var column = matches[i - 1];\n var length = matches[i];\n if (callback(row, column, row, column + length))\n return true;\n }\n };\n }\n else {\n var forEachInLine = function (row, startIndex, callback) {\n var line = session.getLine(row);\n var last;\n var m;\n re.lastIndex = startIndex;\n while ((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (callback(row, last, row, last + length))\n return true;\n if (!length) {\n re.lastIndex = last += lang.skipEmptyMatch(line, last, supportsUnicodeFlag);\n if (last >= line.length)\n return false;\n }\n }\n };\n }\n return { forEach: forEach };\n };\n return Search;\n}());\nfunction addWordBoundary(needle, options) {\n var supportsLookbehind = lang.supportsLookbehind();\n function wordBoundary(c, firstChar) {\n if (firstChar === void 0) { firstChar = true; }\n var wordRegExp = supportsLookbehind && options.$supportsUnicodeFlag ? new RegExp(\"[\\\\p{L}\\\\p{N}_]\", \"u\") : new RegExp(\"\\\\w\");\n if (wordRegExp.test(c) || options.regExp) {\n if (supportsLookbehind && options.$supportsUnicodeFlag) {\n if (firstChar)\n return \"(?<=^|[^\\\\p{L}\\\\p{N}_])\";\n return \"(?=[^\\\\p{L}\\\\p{N}_]|$)\";\n }\n return \"\\\\b\";\n }\n return \"\";\n }\n var needleArray = Array.from(needle);\n var firstChar = needleArray[0];\n var lastChar = needleArray[needleArray.length - 1];\n return wordBoundary(firstChar) + needle + wordBoundary(lastChar, false);\n}\nexports.Search = Search;\n\n});\n\nace.define(\"ace/keyboard/hash_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar keyUtil = require(\"../lib/keys\");\nvar useragent = require(\"../lib/useragent\");\nvar KEY_MODS = keyUtil.KEY_MODS;\nvar MultiHashHandler = /** @class */ (function () {\n function MultiHashHandler(config, platform) {\n this.$init(config, platform, false);\n }\n MultiHashHandler.prototype.$init = function (config, platform, $singleCommand) {\n this.platform = platform || (useragent.isMac ? \"mac\" : \"win\");\n this.commands = {};\n this.commandKeyBinding = {};\n this.addCommands(config);\n this.$singleCommand = $singleCommand;\n };\n MultiHashHandler.prototype.addCommand = function (command) {\n if (this.commands[command.name])\n this.removeCommand(command);\n this.commands[command.name] = command;\n if (command.bindKey)\n this._buildKeyHash(command);\n };\n MultiHashHandler.prototype.removeCommand = function (command, keepCommand) {\n var name = command && (typeof command === 'string' ? command : command.name);\n command = this.commands[name];\n if (!keepCommand)\n delete this.commands[name];\n var ckb = this.commandKeyBinding;\n for (var keyId in ckb) {\n var cmdGroup = ckb[keyId];\n if (cmdGroup == command) {\n delete ckb[keyId];\n }\n else if (Array.isArray(cmdGroup)) {\n var i = cmdGroup.indexOf(command);\n if (i != -1) {\n cmdGroup.splice(i, 1);\n if (cmdGroup.length == 1)\n ckb[keyId] = cmdGroup[0];\n }\n }\n }\n };\n MultiHashHandler.prototype.bindKey = function (key, command, position) {\n if (typeof key == \"object\" && key) {\n if (position == undefined)\n position = key.position;\n key = key[this.platform];\n }\n if (!key)\n return;\n if (typeof command == \"function\")\n return this.addCommand({ exec: command, bindKey: key, name: command.name || key });\n key.split(\"|\").forEach(function (keyPart) {\n var chain = \"\";\n if (keyPart.indexOf(\" \") != -1) {\n var parts = keyPart.split(/\\s+/);\n keyPart = parts.pop();\n parts.forEach(function (keyPart) {\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n chain += (chain ? \" \" : \"\") + id;\n this._addCommandToBinding(chain, \"chainKeys\");\n }, this);\n chain += \" \";\n }\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n this._addCommandToBinding(chain + id, command, position);\n }, this);\n };\n MultiHashHandler.prototype._addCommandToBinding = function (keyId, command, position) {\n var ckb = this.commandKeyBinding, i;\n if (!command) {\n delete ckb[keyId];\n }\n else if (!ckb[keyId] || this.$singleCommand) {\n ckb[keyId] = command;\n }\n else {\n if (!Array.isArray(ckb[keyId])) {\n ckb[keyId] = [ckb[keyId]];\n }\n else if ((i = ckb[keyId].indexOf(command)) != -1) {\n ckb[keyId].splice(i, 1);\n }\n if (typeof position != \"number\") {\n position = getPosition(command);\n }\n var commands = ckb[keyId];\n for (i = 0; i < commands.length; i++) {\n var other = commands[i];\n var otherPos = getPosition(other);\n if (otherPos > position)\n break;\n }\n commands.splice(i, 0, command);\n }\n };\n MultiHashHandler.prototype.addCommands = function (commands) {\n commands && Object.keys(commands).forEach(function (name) {\n var command = commands[name];\n if (!command)\n return;\n if (typeof command === \"string\")\n return this.bindKey(command, name);\n if (typeof command === \"function\")\n command = { exec: command };\n if (typeof command !== \"object\")\n return;\n if (!command.name)\n command.name = name;\n this.addCommand(command);\n }, this);\n };\n MultiHashHandler.prototype.removeCommands = function (commands) {\n Object.keys(commands).forEach(function (name) {\n this.removeCommand(commands[name]);\n }, this);\n };\n MultiHashHandler.prototype.bindKeys = function (keyList) {\n Object.keys(keyList).forEach(function (key) {\n this.bindKey(key, keyList[key]);\n }, this);\n };\n MultiHashHandler.prototype._buildKeyHash = function (command) {\n this.bindKey(command.bindKey, command);\n };\n MultiHashHandler.prototype.parseKeys = function (keys) {\n var parts = keys.toLowerCase().split(/[\\-\\+]([\\-\\+])?/).filter(function (x) { return x; });\n var key = parts.pop();\n var keyCode = keyUtil[key];\n if (keyUtil.FUNCTION_KEYS[keyCode])\n key = keyUtil.FUNCTION_KEYS[keyCode].toLowerCase();\n else if (!parts.length)\n return { key: key, hashId: -1 };\n else if (parts.length == 1 && parts[0] == \"shift\")\n return { key: key.toUpperCase(), hashId: -1 };\n var hashId = 0;\n for (var i = parts.length; i--;) {\n var modifier = keyUtil.KEY_MODS[parts[i]];\n if (modifier == null) {\n if (typeof console != \"undefined\")\n console.error(\"invalid modifier \" + parts[i] + \" in \" + keys);\n return false;\n }\n hashId |= modifier;\n }\n return { key: key, hashId: hashId };\n };\n MultiHashHandler.prototype.findKeyCommand = function (hashId, keyString) {\n var key = KEY_MODS[hashId] + keyString;\n return this.commandKeyBinding[key];\n };\n MultiHashHandler.prototype.handleKeyboard = function (data, hashId, keyString, keyCode) {\n if (keyCode < 0)\n return;\n var key = KEY_MODS[hashId] + keyString;\n var command = this.commandKeyBinding[key];\n if (data.$keyChain) {\n data.$keyChain += \" \" + key;\n command = this.commandKeyBinding[data.$keyChain] || command;\n }\n if (command) {\n if (command == \"chainKeys\" || command[command.length - 1] == \"chainKeys\") {\n data.$keyChain = data.$keyChain || key;\n return { command: \"null\" };\n }\n }\n if (data.$keyChain) {\n if ((!hashId || hashId == 4) && keyString.length == 1)\n data.$keyChain = data.$keyChain.slice(0, -key.length - 1); // wait for input\n else if (hashId == -1 || keyCode > 0)\n data.$keyChain = \"\"; // reset keyChain\n }\n return { command: command };\n };\n MultiHashHandler.prototype.getStatusText = function (editor, data) {\n return data.$keyChain || \"\";\n };\n return MultiHashHandler;\n}());\nfunction getPosition(command) {\n return typeof command == \"object\" && command.bindKey\n && command.bindKey.position\n || (command.isDefault ? -100 : 0);\n}\nvar HashHandler = /** @class */ (function (_super) {\n __extends(HashHandler, _super);\n function HashHandler(config, platform) {\n var _this = _super.call(this, config, platform) || this;\n _this.$singleCommand = true;\n return _this;\n }\n return HashHandler;\n}(MultiHashHandler));\nHashHandler.call = function (thisArg, config, platform) {\n MultiHashHandler.prototype.$init.call(thisArg, config, platform, true);\n};\nMultiHashHandler.call = function (thisArg, config, platform) {\n MultiHashHandler.prototype.$init.call(thisArg, config, platform, false);\n};\nexports.HashHandler = HashHandler;\nexports.MultiHashHandler = MultiHashHandler;\n\n});\n\nace.define(\"ace/commands/command_manager\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"../lib/oop\");\nvar MultiHashHandler = require(\"../keyboard/hash_handler\").MultiHashHandler;\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar CommandManager = /** @class */ (function (_super) {\n __extends(CommandManager, _super);\n function CommandManager(platform, commands) {\n var _this = _super.call(this, commands, platform) || this;\n _this.byName = _this.commands;\n _this.setDefaultHandler(\"exec\", function (e) {\n if (!e.args) {\n return e.command.exec(e.editor, {}, e.event, true);\n }\n return e.command.exec(e.editor, e.args, e.event, false);\n });\n return _this;\n }\n CommandManager.prototype.exec = function (command, editor, args) {\n if (Array.isArray(command)) {\n for (var i = command.length; i--;) {\n if (this.exec(command[i], editor, args))\n return true;\n }\n return false;\n }\n if (typeof command === \"string\")\n command = this.commands[command];\n if (!command)\n return false;\n if (editor && editor.$readOnly && !command.readOnly)\n return false;\n if (this.$checkCommandState != false && command.isAvailable && !command.isAvailable(editor))\n return false;\n var e = { editor: editor, command: command, args: args };\n e.returnValue = this._emit(\"exec\", e);\n this._signal(\"afterExec\", e);\n return e.returnValue === false ? false : true;\n };\n CommandManager.prototype.toggleRecording = function (editor) {\n if (this.$inReplay)\n return;\n editor && editor._emit(\"changeStatus\");\n if (this.recording) {\n this.macro.pop();\n this.off(\"exec\", this.$addCommandToMacro);\n if (!this.macro.length)\n this.macro = this.oldMacro;\n return this.recording = false;\n }\n if (!this.$addCommandToMacro) {\n this.$addCommandToMacro = function (e) {\n this.macro.push([e.command, e.args]);\n }.bind(this);\n }\n this.oldMacro = this.macro;\n this.macro = [];\n this.on(\"exec\", this.$addCommandToMacro);\n return this.recording = true;\n };\n CommandManager.prototype.replay = function (editor) {\n if (this.$inReplay || !this.macro)\n return;\n if (this.recording)\n return this.toggleRecording(editor);\n try {\n this.$inReplay = true;\n this.macro.forEach(function (x) {\n if (typeof x == \"string\")\n this.exec(x, editor);\n else\n this.exec(x[0], editor, x[1]);\n }, this);\n }\n finally {\n this.$inReplay = false;\n }\n };\n CommandManager.prototype.trimMacro = function (m) {\n return m.map(function (x) {\n if (typeof x[0] != \"string\")\n x[0] = x[0].name;\n if (!x[1])\n x = x[0];\n return x;\n });\n };\n return CommandManager;\n}(MultiHashHandler));\noop.implement(CommandManager.prototype, EventEmitter);\nexports.CommandManager = CommandManager;\n\n});\n\nace.define(\"ace/commands/default_commands\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/config\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"../lib/lang\");\nvar config = require(\"../config\");\nvar Range = require(\"../range\").Range;\nfunction bindKey(win, mac) {\n return { win: win, mac: mac };\n}\nexports.commands = [{\n name: \"showSettingsMenu\",\n description: \"Show settings menu\",\n bindKey: bindKey(\"Ctrl-,\", \"Command-,\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/settings_menu\", function (module) {\n module.init(editor);\n editor.showSettingsMenu();\n });\n },\n readOnly: true\n }, {\n name: \"goToNextError\",\n description: \"Go to next error\",\n bindKey: bindKey(\"Alt-E\", \"F4\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/error_marker\", function (module) {\n module.showErrorMarker(editor, 1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"goToPreviousError\",\n description: \"Go to previous error\",\n bindKey: bindKey(\"Alt-Shift-E\", \"Shift-F4\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/error_marker\", function (module) {\n module.showErrorMarker(editor, -1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"selectall\",\n description: \"Select all\",\n bindKey: bindKey(\"Ctrl-A\", \"Command-A\"),\n exec: function (editor) { editor.selectAll(); },\n readOnly: true\n }, {\n name: \"centerselection\",\n description: \"Center selection\",\n bindKey: bindKey(null, \"Ctrl-L\"),\n exec: function (editor) { editor.centerSelection(); },\n readOnly: true\n }, {\n name: \"gotoline\",\n description: \"Go to line...\",\n bindKey: bindKey(\"Ctrl-L\", \"Command-L\"),\n exec: function (editor, line) {\n if (typeof line === \"number\" && !isNaN(line))\n editor.gotoLine(line);\n editor.prompt({ $type: \"gotoLine\" });\n },\n readOnly: true\n }, {\n name: \"fold\",\n bindKey: bindKey(\"Alt-L|Ctrl-F1\", \"Command-Alt-L|Command-F1\"),\n exec: function (editor) { editor.session.toggleFold(false); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"unfold\",\n bindKey: bindKey(\"Alt-Shift-L|Ctrl-Shift-F1\", \"Command-Alt-Shift-L|Command-Shift-F1\"),\n exec: function (editor) { editor.session.toggleFold(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"toggleFoldWidget\",\n description: \"Toggle fold widget\",\n bindKey: bindKey(\"F2\", \"F2\"),\n exec: function (editor) { editor.session.toggleFoldWidget(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"toggleParentFoldWidget\",\n description: \"Toggle parent fold widget\",\n bindKey: bindKey(\"Alt-F2\", \"Alt-F2\"),\n exec: function (editor) { editor.session.toggleFoldWidget(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldall\",\n description: \"Fold all\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function (editor) { editor.session.foldAll(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldAllComments\",\n description: \"Fold all comments\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function (editor) { editor.session.foldAllComments(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldOther\",\n description: \"Fold other\",\n bindKey: bindKey(\"Alt-0\", \"Command-Option-0\"),\n exec: function (editor) {\n editor.session.foldAll();\n editor.session.unfold(editor.selection.getAllRanges());\n },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"unfoldall\",\n description: \"Unfold all\",\n bindKey: bindKey(\"Alt-Shift-0\", \"Command-Option-Shift-0\"),\n exec: function (editor) { editor.session.unfold(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"findnext\",\n description: \"Find next\",\n bindKey: bindKey(\"Ctrl-K\", \"Command-G\"),\n exec: function (editor) { editor.findNext(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"findprevious\",\n description: \"Find previous\",\n bindKey: bindKey(\"Ctrl-Shift-K\", \"Command-Shift-G\"),\n exec: function (editor) { editor.findPrevious(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"selectOrFindNext\",\n description: \"Select or find next\",\n bindKey: bindKey(\"Alt-K\", \"Ctrl-G\"),\n exec: function (editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findNext();\n },\n readOnly: true\n }, {\n name: \"selectOrFindPrevious\",\n description: \"Select or find previous\",\n bindKey: bindKey(\"Alt-Shift-K\", \"Ctrl-Shift-G\"),\n exec: function (editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findPrevious();\n },\n readOnly: true\n }, {\n name: \"find\",\n description: \"Find\",\n bindKey: bindKey(\"Ctrl-F\", \"Command-F\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/searchbox\", function (e) { e.Search(editor); });\n },\n readOnly: true\n }, {\n name: \"overwrite\",\n description: \"Overwrite\",\n bindKey: \"Insert\",\n exec: function (editor) { editor.toggleOverwrite(); },\n readOnly: true\n }, {\n name: \"selecttostart\",\n description: \"Select to start\",\n bindKey: bindKey(\"Ctrl-Shift-Home\", \"Command-Shift-Home|Command-Shift-Up\"),\n exec: function (editor) { editor.getSelection().selectFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"gotostart\",\n description: \"Go to start\",\n bindKey: bindKey(\"Ctrl-Home\", \"Command-Home|Command-Up\"),\n exec: function (editor) { editor.navigateFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"selectup\",\n description: \"Select up\",\n bindKey: bindKey(\"Shift-Up\", \"Shift-Up|Ctrl-Shift-P\"),\n exec: function (editor) { editor.getSelection().selectUp(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"golineup\",\n description: \"Go line up\",\n bindKey: bindKey(\"Up\", \"Up|Ctrl-P\"),\n exec: function (editor, args) { editor.navigateUp(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttoend\",\n description: \"Select to end\",\n bindKey: bindKey(\"Ctrl-Shift-End\", \"Command-Shift-End|Command-Shift-Down\"),\n exec: function (editor) { editor.getSelection().selectFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"gotoend\",\n description: \"Go to end\",\n bindKey: bindKey(\"Ctrl-End\", \"Command-End|Command-Down\"),\n exec: function (editor) { editor.navigateFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"selectdown\",\n description: \"Select down\",\n bindKey: bindKey(\"Shift-Down\", \"Shift-Down|Ctrl-Shift-N\"),\n exec: function (editor) { editor.getSelection().selectDown(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"golinedown\",\n description: \"Go line down\",\n bindKey: bindKey(\"Down\", \"Down|Ctrl-N\"),\n exec: function (editor, args) { editor.navigateDown(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectwordleft\",\n description: \"Select word left\",\n bindKey: bindKey(\"Ctrl-Shift-Left\", \"Option-Shift-Left\"),\n exec: function (editor) { editor.getSelection().selectWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotowordleft\",\n description: \"Go to word left\",\n bindKey: bindKey(\"Ctrl-Left\", \"Option-Left\"),\n exec: function (editor) { editor.navigateWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttolinestart\",\n description: \"Select to line start\",\n bindKey: bindKey(\"Alt-Shift-Left\", \"Command-Shift-Left|Ctrl-Shift-A\"),\n exec: function (editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotolinestart\",\n description: \"Go to line start\",\n bindKey: bindKey(\"Alt-Left|Home\", \"Command-Left|Home|Ctrl-A\"),\n exec: function (editor) { editor.navigateLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectleft\",\n description: \"Select left\",\n bindKey: bindKey(\"Shift-Left\", \"Shift-Left|Ctrl-Shift-B\"),\n exec: function (editor) { editor.getSelection().selectLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotoleft\",\n description: \"Go to left\",\n bindKey: bindKey(\"Left\", \"Left|Ctrl-B\"),\n exec: function (editor, args) { editor.navigateLeft(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectwordright\",\n description: \"Select word right\",\n bindKey: bindKey(\"Ctrl-Shift-Right\", \"Option-Shift-Right\"),\n exec: function (editor) { editor.getSelection().selectWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotowordright\",\n description: \"Go to word right\",\n bindKey: bindKey(\"Ctrl-Right\", \"Option-Right\"),\n exec: function (editor) { editor.navigateWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttolineend\",\n description: \"Select to line end\",\n bindKey: bindKey(\"Alt-Shift-Right\", \"Command-Shift-Right|Shift-End|Ctrl-Shift-E\"),\n exec: function (editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotolineend\",\n description: \"Go to line end\",\n bindKey: bindKey(\"Alt-Right|End\", \"Command-Right|End|Ctrl-E\"),\n exec: function (editor) { editor.navigateLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectright\",\n description: \"Select right\",\n bindKey: bindKey(\"Shift-Right\", \"Shift-Right\"),\n exec: function (editor) { editor.getSelection().selectRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotoright\",\n description: \"Go to right\",\n bindKey: bindKey(\"Right\", \"Right|Ctrl-F\"),\n exec: function (editor, args) { editor.navigateRight(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectpagedown\",\n description: \"Select page down\",\n bindKey: \"Shift-PageDown\",\n exec: function (editor) { editor.selectPageDown(); },\n readOnly: true\n }, {\n name: \"pagedown\",\n description: \"Page down\",\n bindKey: bindKey(null, \"Option-PageDown\"),\n exec: function (editor) { editor.scrollPageDown(); },\n readOnly: true\n }, {\n name: \"gotopagedown\",\n description: \"Go to page down\",\n bindKey: bindKey(\"PageDown\", \"PageDown|Ctrl-V\"),\n exec: function (editor) { editor.gotoPageDown(); },\n readOnly: true\n }, {\n name: \"selectpageup\",\n description: \"Select page up\",\n bindKey: \"Shift-PageUp\",\n exec: function (editor) { editor.selectPageUp(); },\n readOnly: true\n }, {\n name: \"pageup\",\n description: \"Page up\",\n bindKey: bindKey(null, \"Option-PageUp\"),\n exec: function (editor) { editor.scrollPageUp(); },\n readOnly: true\n }, {\n name: \"gotopageup\",\n description: \"Go to page up\",\n bindKey: \"PageUp\",\n exec: function (editor) { editor.gotoPageUp(); },\n readOnly: true\n }, {\n name: \"scrollup\",\n description: \"Scroll up\",\n bindKey: bindKey(\"Ctrl-Up\", null),\n exec: function (e) { e.renderer.scrollBy(0, -2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n }, {\n name: \"scrolldown\",\n description: \"Scroll down\",\n bindKey: bindKey(\"Ctrl-Down\", null),\n exec: function (e) { e.renderer.scrollBy(0, 2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n }, {\n name: \"selectlinestart\",\n description: \"Select line start\",\n bindKey: \"Shift-Home\",\n exec: function (editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectlineend\",\n description: \"Select line end\",\n bindKey: \"Shift-End\",\n exec: function (editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"togglerecording\",\n description: \"Toggle recording\",\n bindKey: bindKey(\"Ctrl-Alt-E\", \"Command-Option-E\"),\n exec: function (editor) { editor.commands.toggleRecording(editor); },\n readOnly: true\n }, {\n name: \"replaymacro\",\n description: \"Replay macro\",\n bindKey: bindKey(\"Ctrl-Shift-E\", \"Command-Shift-E\"),\n exec: function (editor) { editor.commands.replay(editor); },\n readOnly: true\n }, {\n name: \"jumptomatching\",\n description: \"Jump to matching\",\n bindKey: bindKey(\"Ctrl-\\\\|Ctrl-P\", \"Command-\\\\\"),\n exec: function (editor) { editor.jumpToMatching(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"selecttomatching\",\n description: \"Select to matching\",\n bindKey: bindKey(\"Ctrl-Shift-\\\\|Ctrl-Shift-P\", \"Command-Shift-\\\\\"),\n exec: function (editor) { editor.jumpToMatching(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"expandToMatching\",\n description: \"Expand to matching\",\n bindKey: bindKey(\"Ctrl-Shift-M\", \"Ctrl-Shift-M\"),\n exec: function (editor) { editor.jumpToMatching(true, true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"passKeysToBrowser\",\n description: \"Pass keys to browser\",\n bindKey: bindKey(null, null),\n exec: function () { },\n passEvent: true,\n readOnly: true\n }, {\n name: \"copy\",\n description: \"Copy\",\n exec: function (editor) {\n },\n readOnly: true\n },\n {\n name: \"cut\",\n description: \"Cut\",\n exec: function (editor) {\n var cutLine = editor.$copyWithEmptySelection && editor.selection.isEmpty();\n var range = cutLine ? editor.selection.getLineRange() : editor.selection.getRange();\n editor._emit(\"cut\", range);\n if (!range.isEmpty())\n editor.session.remove(range);\n editor.clearSelection();\n },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"paste\",\n description: \"Paste\",\n exec: function (editor, args) {\n editor.$handlePaste(args);\n },\n scrollIntoView: \"cursor\"\n }, {\n name: \"removeline\",\n description: \"Remove line\",\n bindKey: bindKey(\"Ctrl-D\", \"Command-D\"),\n exec: function (editor) { editor.removeLines(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEachLine\"\n }, {\n name: \"duplicateSelection\",\n description: \"Duplicate selection\",\n bindKey: bindKey(\"Ctrl-Shift-D\", \"Command-Shift-D\"),\n exec: function (editor) { editor.duplicateSelection(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"sortlines\",\n description: \"Sort lines\",\n bindKey: bindKey(\"Ctrl-Alt-S\", \"Command-Alt-S\"),\n exec: function (editor) { editor.sortLines(); },\n scrollIntoView: \"selection\",\n multiSelectAction: \"forEachLine\"\n }, {\n name: \"togglecomment\",\n description: \"Toggle comment\",\n bindKey: bindKey(\"Ctrl-/\", \"Command-/\"),\n exec: function (editor) { editor.toggleCommentLines(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"toggleBlockComment\",\n description: \"Toggle block comment\",\n bindKey: bindKey(\"Ctrl-Shift-/\", \"Command-Shift-/\"),\n exec: function (editor) { editor.toggleBlockComment(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"modifyNumberUp\",\n description: \"Modify number up\",\n bindKey: bindKey(\"Ctrl-Shift-Up\", \"Alt-Shift-Up\"),\n exec: function (editor) { editor.modifyNumber(1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"modifyNumberDown\",\n description: \"Modify number down\",\n bindKey: bindKey(\"Ctrl-Shift-Down\", \"Alt-Shift-Down\"),\n exec: function (editor) { editor.modifyNumber(-1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"replace\",\n description: \"Replace\",\n bindKey: bindKey(\"Ctrl-H\", \"Command-Option-F\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/searchbox\", function (e) { e.Search(editor, true); });\n }\n }, {\n name: \"undo\",\n description: \"Undo\",\n bindKey: bindKey(\"Ctrl-Z\", \"Command-Z\"),\n exec: function (editor) { editor.undo(); }\n }, {\n name: \"redo\",\n description: \"Redo\",\n bindKey: bindKey(\"Ctrl-Shift-Z|Ctrl-Y\", \"Command-Shift-Z|Command-Y\"),\n exec: function (editor) { editor.redo(); }\n }, {\n name: \"copylinesup\",\n description: \"Copy lines up\",\n bindKey: bindKey(\"Alt-Shift-Up\", \"Command-Option-Up\"),\n exec: function (editor) { editor.copyLinesUp(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"movelinesup\",\n description: \"Move lines up\",\n bindKey: bindKey(\"Alt-Up\", \"Option-Up\"),\n exec: function (editor) { editor.moveLinesUp(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"copylinesdown\",\n description: \"Copy lines down\",\n bindKey: bindKey(\"Alt-Shift-Down\", \"Command-Option-Down\"),\n exec: function (editor) { editor.copyLinesDown(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"movelinesdown\",\n description: \"Move lines down\",\n bindKey: bindKey(\"Alt-Down\", \"Option-Down\"),\n exec: function (editor) { editor.moveLinesDown(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"del\",\n description: \"Delete\",\n bindKey: bindKey(\"Delete\", \"Delete|Ctrl-D|Shift-Delete\"),\n exec: function (editor) { editor.remove(\"right\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"backspace\",\n description: \"Backspace\",\n bindKey: bindKey(\"Shift-Backspace|Backspace\", \"Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H\"),\n exec: function (editor) { editor.remove(\"left\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"cut_or_delete\",\n description: \"Cut or delete\",\n bindKey: bindKey(\"Shift-Delete\", null),\n exec: function (editor) {\n if (editor.selection.isEmpty()) {\n editor.remove(\"left\");\n }\n else {\n return false;\n }\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolinestart\",\n description: \"Remove to line start\",\n bindKey: bindKey(\"Alt-Backspace\", \"Command-Backspace\"),\n exec: function (editor) { editor.removeToLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolineend\",\n description: \"Remove to line end\",\n bindKey: bindKey(\"Alt-Delete\", \"Ctrl-K|Command-Delete\"),\n exec: function (editor) { editor.removeToLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolinestarthard\",\n description: \"Remove to line start hard\",\n bindKey: bindKey(\"Ctrl-Shift-Backspace\", null),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.start.column = 0;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolineendhard\",\n description: \"Remove to line end hard\",\n bindKey: bindKey(\"Ctrl-Shift-Delete\", null),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.end.column = Number.MAX_VALUE;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removewordleft\",\n description: \"Remove word left\",\n bindKey: bindKey(\"Ctrl-Backspace\", \"Alt-Backspace|Ctrl-Alt-Backspace\"),\n exec: function (editor) { editor.removeWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removewordright\",\n description: \"Remove word right\",\n bindKey: bindKey(\"Ctrl-Delete\", \"Alt-Delete\"),\n exec: function (editor) { editor.removeWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"outdent\",\n description: \"Outdent\",\n bindKey: bindKey(\"Shift-Tab\", \"Shift-Tab\"),\n exec: function (editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"indent\",\n description: \"Indent\",\n bindKey: bindKey(\"Tab\", \"Tab\"),\n exec: function (editor) { editor.indent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"blockoutdent\",\n description: \"Block outdent\",\n bindKey: bindKey(\"Ctrl-[\", \"Ctrl-[\"),\n exec: function (editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"blockindent\",\n description: \"Block indent\",\n bindKey: bindKey(\"Ctrl-]\", \"Ctrl-]\"),\n exec: function (editor) { editor.blockIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"insertstring\",\n description: \"Insert string\",\n exec: function (editor, str) { editor.insert(str); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"inserttext\",\n description: \"Insert text\",\n exec: function (editor, args) {\n editor.insert(lang.stringRepeat(args.text || \"\", args.times || 1));\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"splitline\",\n description: \"Split line\",\n bindKey: bindKey(null, \"Ctrl-O\"),\n exec: function (editor) { editor.splitLine(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"transposeletters\",\n description: \"Transpose letters\",\n bindKey: bindKey(\"Alt-Shift-X\", \"Ctrl-T\"),\n exec: function (editor) { editor.transposeLetters(); },\n multiSelectAction: function (editor) { editor.transposeSelections(1); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"touppercase\",\n description: \"To uppercase\",\n bindKey: bindKey(\"Ctrl-U\", \"Ctrl-U\"),\n exec: function (editor) { editor.toUpperCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"tolowercase\",\n description: \"To lowercase\",\n bindKey: bindKey(\"Ctrl-Shift-U\", \"Ctrl-Shift-U\"),\n exec: function (editor) { editor.toLowerCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"autoindent\",\n description: \"Auto Indent\",\n bindKey: bindKey(null, null),\n exec: function (editor) { editor.autoIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"animate\"\n }, {\n name: \"expandtoline\",\n description: \"Expand to line\",\n bindKey: bindKey(\"Ctrl-Shift-L\", \"Command-Shift-L\"),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.start.column = range.end.column = 0;\n range.end.row++;\n editor.selection.setRange(range, false);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"openlink\",\n bindKey: bindKey(\"Ctrl+F3\", \"F3\"),\n exec: function (editor) { editor.openLink(); }\n }, {\n name: \"joinlines\",\n description: \"Join lines\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n var isBackwards = editor.selection.isBackwards();\n var selectionStart = isBackwards ? editor.selection.getSelectionLead() : editor.selection.getSelectionAnchor();\n var selectionEnd = isBackwards ? editor.selection.getSelectionAnchor() : editor.selection.getSelectionLead();\n var firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length;\n var selectedText = editor.session.doc.getTextRange(editor.selection.getRange());\n var selectedCount = selectedText.replace(/\\n\\s*/, \" \").length;\n var insertLine = editor.session.doc.getLine(selectionStart.row);\n for (var i = selectionStart.row + 1; i <= selectionEnd.row + 1; i++) {\n var curLine = lang.stringTrimLeft(lang.stringTrimRight(editor.session.doc.getLine(i)));\n if (curLine.length !== 0) {\n curLine = \" \" + curLine;\n }\n insertLine += curLine;\n }\n if (selectionEnd.row + 1 < (editor.session.doc.getLength() - 1)) {\n insertLine += editor.session.doc.getNewLineCharacter();\n }\n editor.clearSelection();\n editor.session.doc.replace(new Range(selectionStart.row, 0, selectionEnd.row + 2, 0), insertLine);\n if (selectedCount > 0) {\n editor.selection.moveCursorTo(selectionStart.row, selectionStart.column);\n editor.selection.selectTo(selectionStart.row, selectionStart.column + selectedCount);\n }\n else {\n firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length > firstLineEndCol ? (firstLineEndCol + 1) : firstLineEndCol;\n editor.selection.moveCursorTo(selectionStart.row, firstLineEndCol);\n }\n },\n multiSelectAction: \"forEach\",\n readOnly: true\n }, {\n name: \"invertSelection\",\n description: \"Invert selection\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n var endRow = editor.session.doc.getLength() - 1;\n var endCol = editor.session.doc.getLine(endRow).length;\n var ranges = editor.selection.rangeList.ranges;\n var newRanges = [];\n if (ranges.length < 1) {\n ranges = [editor.selection.getRange()];\n }\n for (var i = 0; i < ranges.length; i++) {\n if (i == (ranges.length - 1)) {\n if (!(ranges[i].end.row === endRow && ranges[i].end.column === endCol)) {\n newRanges.push(new Range(ranges[i].end.row, ranges[i].end.column, endRow, endCol));\n }\n }\n if (i === 0) {\n if (!(ranges[i].start.row === 0 && ranges[i].start.column === 0)) {\n newRanges.push(new Range(0, 0, ranges[i].start.row, ranges[i].start.column));\n }\n }\n else {\n newRanges.push(new Range(ranges[i - 1].end.row, ranges[i - 1].end.column, ranges[i].start.row, ranges[i].start.column));\n }\n }\n editor.exitMultiSelectMode();\n editor.clearSelection();\n for (var i = 0; i < newRanges.length; i++) {\n editor.selection.addRange(newRanges[i], false);\n }\n },\n readOnly: true,\n scrollIntoView: \"none\"\n }, {\n name: \"addLineAfter\",\n description: \"Add new line after the current line\",\n exec: function (editor) {\n editor.selection.clearSelection();\n editor.navigateLineEnd();\n editor.insert(\"\\n\");\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"addLineBefore\",\n description: \"Add new line before the current line\",\n exec: function (editor) {\n editor.selection.clearSelection();\n var cursor = editor.getCursorPosition();\n editor.selection.moveTo(cursor.row - 1, Number.MAX_VALUE);\n editor.insert(\"\\n\");\n if (cursor.row === 0)\n editor.navigateUp();\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"openCommandPallete\",\n exec: function (editor) {\n console.warn(\"This is an obsolete command. Please use `openCommandPalette` instead.\");\n editor.prompt({ $type: \"commands\" });\n },\n readOnly: true\n }, {\n name: \"openCommandPalette\",\n description: \"Open command palette\",\n bindKey: bindKey(\"F1\", \"F1\"),\n exec: function (editor) {\n editor.prompt({ $type: \"commands\" });\n },\n readOnly: true\n }, {\n name: \"modeSelect\",\n description: \"Change language mode...\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n editor.prompt({ $type: \"modes\" });\n },\n readOnly: true\n }];\nfor (var i = 1; i < 9; i++) {\n exports.commands.push({\n name: \"foldToLevel\" + i,\n description: \"Fold To Level \" + i,\n level: i,\n exec: function (editor) { editor.session.foldToLevel(this.level); },\n scrollIntoView: \"center\",\n readOnly: true\n });\n}\n\n});\n\nace.define(\"ace/line_widgets\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"./lib/dom\");\nvar LineWidgets = /** @class */ (function () {\n function LineWidgets(session) {\n this.session = session;\n this.session.widgetManager = this;\n this.session.getRowLength = this.getRowLength;\n this.session.$getWidgetScreenLength = this.$getWidgetScreenLength;\n this.updateOnChange = this.updateOnChange.bind(this);\n this.renderWidgets = this.renderWidgets.bind(this);\n this.measureWidgets = this.measureWidgets.bind(this);\n this.session._changedWidgets = [];\n this.$onChangeEditor = this.$onChangeEditor.bind(this);\n this.session.on(\"change\", this.updateOnChange);\n this.session.on(\"changeFold\", this.updateOnFold);\n this.session.on(\"changeEditor\", this.$onChangeEditor);\n }\n LineWidgets.prototype.getRowLength = function (row) {\n var h;\n if (this.lineWidgets)\n h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n else\n h = 0;\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1 + h;\n }\n else {\n return this.$wrapData[row].length + 1 + h;\n }\n };\n LineWidgets.prototype.$getWidgetScreenLength = function () {\n var screenRows = 0;\n this.lineWidgets.forEach(function (w) {\n if (w && w.rowCount && !w.hidden)\n screenRows += w.rowCount;\n });\n return screenRows;\n };\n LineWidgets.prototype.$onChangeEditor = function (e) {\n this.attach(e.editor);\n };\n LineWidgets.prototype.attach = function (editor) {\n if (editor && editor.widgetManager && editor.widgetManager != this)\n editor.widgetManager.detach();\n if (this.editor == editor)\n return;\n this.detach();\n this.editor = editor;\n if (editor) {\n editor.widgetManager = this;\n editor.renderer.on(\"beforeRender\", this.measureWidgets);\n editor.renderer.on(\"afterRender\", this.renderWidgets);\n }\n };\n LineWidgets.prototype.detach = function (e) {\n var editor = this.editor;\n if (!editor)\n return;\n this.editor = null;\n editor.widgetManager = null;\n editor.renderer.off(\"beforeRender\", this.measureWidgets);\n editor.renderer.off(\"afterRender\", this.renderWidgets);\n var lineWidgets = this.session.lineWidgets;\n lineWidgets && lineWidgets.forEach(function (w) {\n if (w && w.el && w.el.parentNode) {\n w._inDocument = false;\n w.el.parentNode.removeChild(w.el);\n }\n });\n };\n LineWidgets.prototype.updateOnFold = function (e, session) {\n var lineWidgets = session.lineWidgets;\n if (!lineWidgets || !e.action)\n return;\n var fold = e.data;\n var start = fold.start.row;\n var end = fold.end.row;\n var hide = e.action == \"add\";\n for (var i = start + 1; i < end; i++) {\n if (lineWidgets[i])\n lineWidgets[i].hidden = hide;\n }\n if (lineWidgets[end]) {\n if (hide) {\n if (!lineWidgets[start])\n lineWidgets[start] = lineWidgets[end];\n else\n lineWidgets[end].hidden = hide;\n }\n else {\n if (lineWidgets[start] == lineWidgets[end])\n lineWidgets[start] = undefined;\n lineWidgets[end].hidden = hide;\n }\n }\n };\n LineWidgets.prototype.updateOnChange = function (delta) {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n if (len === 0) {\n }\n else if (delta.action == \"remove\") {\n var removed = lineWidgets.splice(startRow + 1, len);\n if (!lineWidgets[startRow] && removed[removed.length - 1]) {\n lineWidgets[startRow] = removed.pop();\n }\n removed.forEach(function (w) {\n w && this.removeLineWidget(w);\n }, this);\n this.$updateRows();\n }\n else {\n var args = new Array(len);\n if (lineWidgets[startRow] && lineWidgets[startRow].column != null) {\n if (delta.start.column > lineWidgets[startRow].column)\n startRow++;\n }\n args.unshift(startRow, 0);\n lineWidgets.splice.apply(lineWidgets, args);\n this.$updateRows();\n }\n };\n LineWidgets.prototype.$updateRows = function () {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var noWidgets = true;\n lineWidgets.forEach(function (w, i) {\n if (w) {\n noWidgets = false;\n w.row = i;\n while (w.$oldWidget) {\n w.$oldWidget.row = i;\n w = w.$oldWidget;\n }\n }\n });\n if (noWidgets)\n this.session.lineWidgets = null;\n };\n LineWidgets.prototype.$registerLineWidget = function (w) {\n if (!this.session.lineWidgets)\n this.session.lineWidgets = new Array(this.session.getLength());\n var old = this.session.lineWidgets[w.row];\n if (old) {\n w.$oldWidget = old;\n if (old.el && old.el.parentNode) {\n old.el.parentNode.removeChild(old.el);\n old._inDocument = false;\n }\n }\n this.session.lineWidgets[w.row] = w;\n return w;\n };\n LineWidgets.prototype.addLineWidget = function (w) {\n this.$registerLineWidget(w);\n w.session = this.session;\n if (!this.editor)\n return w;\n var renderer = this.editor.renderer;\n if (w.html && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.innerHTML = w.html;\n }\n if (w.text && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.textContent = w.text;\n }\n if (w.el) {\n dom.addCssClass(w.el, \"ace_lineWidgetContainer\");\n if (w.className) {\n dom.addCssClass(w.el, w.className);\n }\n w.el.style.position = \"absolute\";\n w.el.style.zIndex = 5;\n renderer.container.appendChild(w.el);\n w._inDocument = true;\n if (!w.coverGutter) {\n w.el.style.zIndex = 3;\n }\n if (w.pixelHeight == null) {\n w.pixelHeight = w.el.offsetHeight;\n }\n }\n if (w.rowCount == null) {\n w.rowCount = w.pixelHeight / renderer.layerConfig.lineHeight;\n }\n var fold = this.session.getFoldAt(w.row, 0);\n w.$fold = fold;\n if (fold) {\n var lineWidgets = this.session.lineWidgets;\n if (w.row == fold.end.row && !lineWidgets[fold.start.row])\n lineWidgets[fold.start.row] = w;\n else\n w.hidden = true;\n }\n this.session._emit(\"changeFold\", { data: { start: { row: w.row } } });\n this.$updateRows();\n this.renderWidgets(null, renderer);\n this.onWidgetChanged(w);\n return w;\n };\n LineWidgets.prototype.removeLineWidget = function (w) {\n w._inDocument = false;\n w.session = null;\n if (w.el && w.el.parentNode)\n w.el.parentNode.removeChild(w.el);\n if (w.editor && w.editor.destroy)\n try {\n w.editor.destroy();\n }\n catch (e) { }\n if (this.session.lineWidgets) {\n var w1 = this.session.lineWidgets[w.row];\n if (w1 == w) {\n this.session.lineWidgets[w.row] = w.$oldWidget;\n if (w.$oldWidget)\n this.onWidgetChanged(w.$oldWidget);\n }\n else {\n while (w1) {\n if (w1.$oldWidget == w) {\n w1.$oldWidget = w.$oldWidget;\n break;\n }\n w1 = w1.$oldWidget;\n }\n }\n }\n this.session._emit(\"changeFold\", { data: { start: { row: w.row } } });\n this.$updateRows();\n };\n LineWidgets.prototype.getWidgetsAtRow = function (row) {\n var lineWidgets = this.session.lineWidgets;\n var w = lineWidgets && lineWidgets[row];\n var list = [];\n while (w) {\n list.push(w);\n w = w.$oldWidget;\n }\n return list;\n };\n LineWidgets.prototype.onWidgetChanged = function (w) {\n this.session._changedWidgets.push(w);\n this.editor && this.editor.renderer.updateFull();\n };\n LineWidgets.prototype.measureWidgets = function (e, renderer) {\n var changedWidgets = this.session._changedWidgets;\n var config = renderer.layerConfig;\n if (!changedWidgets || !changedWidgets.length)\n return;\n var min = Infinity;\n for (var i = 0; i < changedWidgets.length; i++) {\n var w = changedWidgets[i];\n if (!w || !w.el)\n continue;\n if (w.session != this.session)\n continue;\n if (!w._inDocument) {\n if (this.session.lineWidgets[w.row] != w)\n continue;\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n w.h = w.el.offsetHeight;\n if (!w.fixedWidth) {\n w.w = w.el.offsetWidth;\n w.screenWidth = Math.ceil(w.w / config.characterWidth);\n }\n var rowCount = w.h / config.lineHeight;\n if (w.coverLine) {\n rowCount -= this.session.getRowLineCount(w.row);\n if (rowCount < 0)\n rowCount = 0;\n }\n if (w.rowCount != rowCount) {\n w.rowCount = rowCount;\n if (w.row < min)\n min = w.row;\n }\n }\n if (min != Infinity) {\n this.session._emit(\"changeFold\", { data: { start: { row: min } } });\n this.session.lineWidgetWidth = null;\n }\n this.session._changedWidgets = [];\n };\n LineWidgets.prototype.renderWidgets = function (e, renderer) {\n var config = renderer.layerConfig;\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var first = Math.min(this.firstRow, config.firstRow);\n var last = Math.max(this.lastRow, config.lastRow, lineWidgets.length);\n while (first > 0 && !lineWidgets[first])\n first--;\n this.firstRow = config.firstRow;\n this.lastRow = config.lastRow;\n renderer.$cursorLayer.config = config;\n for (var i = first; i <= last; i++) {\n var w = lineWidgets[i];\n if (!w || !w.el)\n continue;\n if (w.hidden) {\n w.el.style.top = -100 - (w.pixelHeight || 0) + \"px\";\n continue;\n }\n if (!w._inDocument) {\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n var top = renderer.$cursorLayer.getPixelPosition({ row: i, column: 0 }, true).top;\n if (!w.coverLine)\n top += config.lineHeight * this.session.getRowLineCount(w.row);\n w.el.style.top = top - config.offset + \"px\";\n var left = w.coverGutter ? 0 : renderer.gutterWidth;\n if (!w.fixedWidth)\n left -= renderer.scrollLeft;\n w.el.style.left = left + \"px\";\n if (w.fullWidth && w.screenWidth) {\n w.el.style.minWidth = config.width + 2 * config.padding + \"px\";\n }\n if (w.fixedWidth) {\n w.el.style.right = renderer.scrollBar.getWidth() + \"px\";\n }\n else {\n w.el.style.right = \"\";\n }\n }\n };\n return LineWidgets;\n}());\nexports.LineWidgets = LineWidgets;\n\n});\n\nace.define(\"ace/keyboard/gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/mouse/default_gutter_handler\"], function(require, exports, module){\"use strict\";\nvar keys = require('../lib/keys');\nvar GutterTooltip = require(\"../mouse/default_gutter_handler\").GutterTooltip;\nvar GutterKeyboardHandler = /** @class */ (function () {\n function GutterKeyboardHandler(editor) {\n this.editor = editor;\n this.gutterLayer = editor.renderer.$gutterLayer;\n this.element = editor.renderer.$gutter;\n this.lines = editor.renderer.$gutterLayer.$lines;\n this.activeRowIndex = null;\n this.activeLane = null;\n this.annotationTooltip = new GutterTooltip(this.editor);\n }\n GutterKeyboardHandler.prototype.addListener = function () {\n this.element.addEventListener(\"keydown\", this.$onGutterKeyDown.bind(this));\n this.element.addEventListener(\"focusout\", this.$blurGutter.bind(this));\n this.editor.on(\"mousewheel\", this.$blurGutter.bind(this));\n };\n GutterKeyboardHandler.prototype.removeListener = function () {\n this.element.removeEventListener(\"keydown\", this.$onGutterKeyDown.bind(this));\n this.element.removeEventListener(\"focusout\", this.$blurGutter.bind(this));\n this.editor.off(\"mousewheel\", this.$blurGutter.bind(this));\n };\n GutterKeyboardHandler.prototype.$onGutterKeyDown = function (e) {\n if (this.annotationTooltip.isOpen) {\n e.preventDefault();\n if (e.keyCode === keys[\"escape\"])\n this.annotationTooltip.hideTooltip();\n return;\n }\n if (e.target === this.element) {\n if (e.keyCode != keys[\"enter\"]) {\n return;\n }\n e.preventDefault();\n var row = this.editor.getCursorPosition().row;\n if (!this.editor.isRowVisible(row))\n this.editor.scrollToLine(row, true, true);\n setTimeout(function () {\n var index = this.$rowToRowIndex(this.gutterLayer.$cursorCell.row);\n var nearestFoldIndex = this.$findNearestFoldWidget(index);\n var nearestAnnotationIndex = this.$findNearestAnnotation(index);\n if (nearestFoldIndex === null && nearestAnnotationIndex === null)\n return;\n if (nearestFoldIndex === null && nearestAnnotationIndex !== null) {\n this.activeRowIndex = nearestAnnotationIndex;\n this.activeLane = \"annotation\";\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n if (nearestFoldIndex !== null && nearestAnnotationIndex === null) {\n this.activeRowIndex = nearestFoldIndex;\n this.activeLane = \"fold\";\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n if (Math.abs(nearestAnnotationIndex - index) < Math.abs(nearestFoldIndex - index)) {\n this.activeRowIndex = nearestAnnotationIndex;\n this.activeLane = \"annotation\";\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n else {\n this.activeRowIndex = nearestFoldIndex;\n this.activeLane = \"fold\";\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }.bind(this), 10);\n return;\n }\n this.$handleGutterKeyboardInteraction(e);\n setTimeout(function () {\n this.editor._signal(\"gutterkeydown\", new GutterKeyboardEvent(e, this));\n }.bind(this), 10);\n };\n GutterKeyboardHandler.prototype.$handleGutterKeyboardInteraction = function (e) {\n if (e.keyCode === keys[\"tab\"]) {\n e.preventDefault();\n return;\n }\n if (e.keyCode === keys[\"escape\"]) {\n e.preventDefault();\n this.$blurGutter();\n this.element.focus();\n this.lane = null;\n return;\n }\n if (e.keyCode === keys[\"up\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n this.$moveFoldWidgetUp();\n break;\n case \"annotation\":\n this.$moveAnnotationUp();\n break;\n }\n return;\n }\n if (e.keyCode === keys[\"down\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n this.$moveFoldWidgetDown();\n break;\n case \"annotation\":\n this.$moveAnnotationDown();\n break;\n }\n return;\n }\n if (e.keyCode === keys[\"left\"]) {\n e.preventDefault();\n this.$switchLane(\"annotation\");\n return;\n }\n if (e.keyCode === keys[\"right\"]) {\n e.preventDefault();\n this.$switchLane(\"fold\");\n return;\n }\n if (e.keyCode === keys[\"enter\"] || e.keyCode === keys[\"space\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n if (this.gutterLayer.session.foldWidgets[this.$rowIndexToRow(this.activeRowIndex)] === 'start') {\n var rowFoldingWidget = this.$rowIndexToRow(this.activeRowIndex);\n this.editor.session.onFoldWidgetClick(this.$rowIndexToRow(this.activeRowIndex), e);\n setTimeout(function () {\n if (this.$rowIndexToRow(this.activeRowIndex) !== rowFoldingWidget) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = this.$rowToRowIndex(rowFoldingWidget);\n this.$focusFoldWidget(this.activeRowIndex);\n }\n }.bind(this), 10);\n break;\n }\n else if (this.gutterLayer.session.foldWidgets[this.$rowIndexToRow(this.activeRowIndex)] === 'end') {\n break;\n }\n return;\n case \"annotation\":\n var gutterElement = this.lines.cells[this.activeRowIndex].element.childNodes[2];\n var rect = gutterElement.getBoundingClientRect();\n var style = this.annotationTooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n this.annotationTooltip.showTooltip(this.$rowIndexToRow(this.activeRowIndex));\n break;\n }\n return;\n }\n };\n GutterKeyboardHandler.prototype.$blurGutter = function () {\n if (this.activeRowIndex !== null) {\n switch (this.activeLane) {\n case \"fold\":\n this.$blurFoldWidget(this.activeRowIndex);\n break;\n case \"annotation\":\n this.$blurAnnotation(this.activeRowIndex);\n break;\n }\n }\n if (this.annotationTooltip.isOpen)\n this.annotationTooltip.hideTooltip();\n return;\n };\n GutterKeyboardHandler.prototype.$isFoldWidgetVisible = function (index) {\n var isRowFullyVisible = this.editor.isRowFullyVisible(this.$rowIndexToRow(index));\n var isIconVisible = this.$getFoldWidget(index).style.display !== \"none\";\n return isRowFullyVisible && isIconVisible;\n };\n GutterKeyboardHandler.prototype.$isAnnotationVisible = function (index) {\n var isRowFullyVisible = this.editor.isRowFullyVisible(this.$rowIndexToRow(index));\n var isIconVisible = this.$getAnnotation(index).style.display !== \"none\";\n return isRowFullyVisible && isIconVisible;\n };\n GutterKeyboardHandler.prototype.$getFoldWidget = function (index) {\n var cell = this.lines.get(index);\n var element = cell.element;\n return element.childNodes[1];\n };\n GutterKeyboardHandler.prototype.$getAnnotation = function (index) {\n var cell = this.lines.get(index);\n var element = cell.element;\n return element.childNodes[2];\n };\n GutterKeyboardHandler.prototype.$findNearestFoldWidget = function (index) {\n if (this.$isFoldWidgetVisible(index))\n return index;\n var i = 0;\n while (index - i > 0 || index + i < this.lines.getLength() - 1) {\n i++;\n if (index - i >= 0 && this.$isFoldWidgetVisible(index - i))\n return index - i;\n if (index + i <= this.lines.getLength() - 1 && this.$isFoldWidgetVisible(index + i))\n return index + i;\n }\n return null;\n };\n GutterKeyboardHandler.prototype.$findNearestAnnotation = function (index) {\n if (this.$isAnnotationVisible(index))\n return index;\n var i = 0;\n while (index - i > 0 || index + i < this.lines.getLength() - 1) {\n i++;\n if (index - i >= 0 && this.$isAnnotationVisible(index - i))\n return index - i;\n if (index + i <= this.lines.getLength() - 1 && this.$isAnnotationVisible(index + i))\n return index + i;\n }\n return null;\n };\n GutterKeyboardHandler.prototype.$focusFoldWidget = function (index) {\n if (index == null)\n return;\n var foldWidget = this.$getFoldWidget(index);\n foldWidget.classList.add(this.editor.renderer.keyboardFocusClassName);\n foldWidget.focus();\n };\n GutterKeyboardHandler.prototype.$focusAnnotation = function (index) {\n if (index == null)\n return;\n var annotation = this.$getAnnotation(index);\n annotation.classList.add(this.editor.renderer.keyboardFocusClassName);\n annotation.focus();\n };\n GutterKeyboardHandler.prototype.$blurFoldWidget = function (index) {\n var foldWidget = this.$getFoldWidget(index);\n foldWidget.classList.remove(this.editor.renderer.keyboardFocusClassName);\n foldWidget.blur();\n };\n GutterKeyboardHandler.prototype.$blurAnnotation = function (index) {\n var annotation = this.$getAnnotation(index);\n annotation.classList.remove(this.editor.renderer.keyboardFocusClassName);\n annotation.blur();\n };\n GutterKeyboardHandler.prototype.$moveFoldWidgetUp = function () {\n var index = this.activeRowIndex;\n while (index > 0) {\n index--;\n if (this.$isFoldWidgetVisible(index)) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveFoldWidgetDown = function () {\n var index = this.activeRowIndex;\n while (index < this.lines.getLength() - 1) {\n index++;\n if (this.$isFoldWidgetVisible(index)) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveAnnotationUp = function () {\n var index = this.activeRowIndex;\n while (index > 0) {\n index--;\n if (this.$isAnnotationVisible(index)) {\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveAnnotationDown = function () {\n var index = this.activeRowIndex;\n while (index < this.lines.getLength() - 1) {\n index++;\n if (this.$isAnnotationVisible(index)) {\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$switchLane = function (desinationLane) {\n switch (desinationLane) {\n case \"annotation\":\n if (this.activeLane === \"annotation\") {\n break;\n }\n var annotationIndex = this.$findNearestAnnotation(this.activeRowIndex);\n if (annotationIndex == null) {\n break;\n }\n this.activeLane = \"annotation\";\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = annotationIndex;\n this.$focusAnnotation(this.activeRowIndex);\n break;\n case \"fold\":\n if (this.activeLane === \"fold\") {\n break;\n }\n var foldWidgetIndex = this.$findNearestFoldWidget(this.activeRowIndex);\n if (foldWidgetIndex == null) {\n break;\n }\n this.activeLane = \"fold\";\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = foldWidgetIndex;\n this.$focusFoldWidget(this.activeRowIndex);\n break;\n }\n return;\n };\n GutterKeyboardHandler.prototype.$rowIndexToRow = function (index) {\n var cell = this.lines.get(index);\n if (cell)\n return cell.row;\n return null;\n };\n GutterKeyboardHandler.prototype.$rowToRowIndex = function (row) {\n for (var i = 0; i < this.lines.getLength(); i++) {\n var cell = this.lines.get(i);\n if (cell.row == row)\n return i;\n }\n return null;\n };\n return GutterKeyboardHandler;\n}());\nexports.GutterKeyboardHandler = GutterKeyboardHandler;\nvar GutterKeyboardEvent = /** @class */ (function () {\n function GutterKeyboardEvent(domEvent, gutterKeyboardHandler) {\n this.gutterKeyboardHandler = gutterKeyboardHandler;\n this.domEvent = domEvent;\n }\n GutterKeyboardEvent.prototype.getKey = function () {\n return keys.keyCodeToString(this.domEvent.keyCode);\n };\n GutterKeyboardEvent.prototype.getRow = function () {\n return this.gutterKeyboardHandler.$rowIndexToRow(this.gutterKeyboardHandler.activeRowIndex);\n };\n GutterKeyboardEvent.prototype.isInAnnotationLane = function () {\n return this.gutterKeyboardHandler.activeLane === \"annotation\";\n };\n GutterKeyboardEvent.prototype.isInFoldLane = function () {\n return this.gutterKeyboardHandler.activeLane === \"fold\";\n };\n return GutterKeyboardEvent;\n}());\nexports.GutterKeyboardEvent = GutterKeyboardEvent;\n\n});\n\nace.define(\"ace/editor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/keyboard/textinput\",\"ace/mouse/mouse_handler\",\"ace/mouse/fold_handler\",\"ace/keyboard/keybinding\",\"ace/edit_session\",\"ace/search\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/commands/command_manager\",\"ace/commands/default_commands\",\"ace/config\",\"ace/token_iterator\",\"ace/line_widgets\",\"ace/keyboard/gutter_handler\",\"ace/config\",\"ace/clipboard\",\"ace/lib/keys\"], function(require, exports, module){\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar lang = require(\"./lib/lang\");\nvar useragent = require(\"./lib/useragent\");\nvar TextInput = require(\"./keyboard/textinput\").TextInput;\nvar MouseHandler = require(\"./mouse/mouse_handler\").MouseHandler;\nvar FoldHandler = require(\"./mouse/fold_handler\").FoldHandler;\nvar KeyBinding = require(\"./keyboard/keybinding\").KeyBinding;\nvar EditSession = require(\"./edit_session\").EditSession;\nvar Search = require(\"./search\").Search;\nvar Range = require(\"./range\").Range;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar CommandManager = require(\"./commands/command_manager\").CommandManager;\nvar defaultCommands = require(\"./commands/default_commands\").commands;\nvar config = require(\"./config\");\nvar TokenIterator = require(\"./token_iterator\").TokenIterator;\nvar LineWidgets = require(\"./line_widgets\").LineWidgets;\nvar GutterKeyboardHandler = require(\"./keyboard/gutter_handler\").GutterKeyboardHandler;\nvar nls = require(\"./config\").nls;\nvar clipboard = require(\"./clipboard\");\nvar keys = require('./lib/keys');\nvar Editor = /** @class */ (function () {\n function Editor(renderer, session, options) {\n this.$toDestroy = [];\n var container = renderer.getContainerElement();\n this.container = container;\n this.renderer = renderer;\n this.id = \"editor\" + (++Editor.$uid);\n this.commands = new CommandManager(useragent.isMac ? \"mac\" : \"win\", defaultCommands);\n if (typeof document == \"object\") {\n this.textInput = new TextInput(renderer.getTextAreaContainer(), this);\n this.renderer.textarea = this.textInput.getElement();\n this.$mouseHandler = new MouseHandler(this);\n new FoldHandler(this);\n }\n this.keyBinding = new KeyBinding(this);\n this.$search = new Search().set({\n wrap: true\n });\n this.$historyTracker = this.$historyTracker.bind(this);\n this.commands.on(\"exec\", this.$historyTracker);\n this.$initOperationListeners();\n this._$emitInputEvent = lang.delayedCall(function () {\n this._signal(\"input\", {});\n if (this.session && !this.session.destroyed)\n this.session.bgTokenizer.scheduleStart();\n }.bind(this));\n this.on(\"change\", function (_, _self) {\n _self._$emitInputEvent.schedule(31);\n });\n this.setSession(session || options && options.session || new EditSession(\"\"));\n config.resetOptions(this);\n if (options)\n this.setOptions(options);\n config._signal(\"editor\", this);\n }\n Editor.prototype.$initOperationListeners = function () {\n this.commands.on(\"exec\", this.startOperation.bind(this), true);\n this.commands.on(\"afterExec\", this.endOperation.bind(this), true);\n this.$opResetTimer = lang.delayedCall(this.endOperation.bind(this, true));\n this.on(\"change\", function () {\n if (!this.curOp) {\n this.startOperation();\n this.curOp.selectionBefore = this.$lastSel;\n }\n this.curOp.docChanged = true;\n }.bind(this), true);\n this.on(\"changeSelection\", function () {\n if (!this.curOp) {\n this.startOperation();\n this.curOp.selectionBefore = this.$lastSel;\n }\n this.curOp.selectionChanged = true;\n }.bind(this), true);\n };\n Editor.prototype.startOperation = function (commandEvent) {\n if (this.curOp) {\n if (!commandEvent || this.curOp.command)\n return;\n this.prevOp = this.curOp;\n }\n if (!commandEvent) {\n this.previousCommand = null;\n commandEvent = {};\n }\n this.$opResetTimer.schedule();\n this.curOp = this.session.curOp = {\n command: commandEvent.command || {},\n args: commandEvent.args,\n scrollTop: this.renderer.scrollTop\n };\n this.curOp.selectionBefore = this.selection.toJSON();\n };\n Editor.prototype.endOperation = function (e) {\n if (this.curOp && this.session) {\n if (e && e.returnValue === false || !this.session)\n return (this.curOp = null);\n if (e == true && this.curOp.command && this.curOp.command.name == \"mouse\")\n return;\n this._signal(\"beforeEndOperation\");\n if (!this.curOp)\n return;\n var command = this.curOp.command;\n var scrollIntoView = command && command.scrollIntoView;\n if (scrollIntoView) {\n switch (scrollIntoView) {\n case \"center-animate\":\n scrollIntoView = \"animate\";\n case \"center\":\n this.renderer.scrollCursorIntoView(null, 0.5);\n break;\n case \"animate\":\n case \"cursor\":\n this.renderer.scrollCursorIntoView();\n break;\n case \"selectionPart\":\n var range = this.selection.getRange();\n var config = this.renderer.layerConfig;\n if (range.start.row >= config.lastRow || range.end.row <= config.firstRow) {\n this.renderer.scrollSelectionIntoView(this.selection.anchor, this.selection.lead);\n }\n break;\n default:\n break;\n }\n if (scrollIntoView == \"animate\")\n this.renderer.animateScrolling(this.curOp.scrollTop);\n }\n var sel = this.selection.toJSON();\n this.curOp.selectionAfter = sel;\n this.$lastSel = this.selection.toJSON();\n this.session.getUndoManager().addSelection(sel);\n this.prevOp = this.curOp;\n this.curOp = null;\n }\n };\n Editor.prototype.$historyTracker = function (e) {\n if (!this.$mergeUndoDeltas)\n return;\n var prev = this.prevOp;\n var mergeableCommands = this.$mergeableCommands;\n var shouldMerge = prev.command && (e.command.name == prev.command.name);\n if (e.command.name == \"insertstring\") {\n var text = e.args;\n if (this.mergeNextCommand === undefined)\n this.mergeNextCommand = true;\n shouldMerge = shouldMerge\n && this.mergeNextCommand // previous command allows to coalesce with\n && (!/\\s/.test(text) || /\\s/.test(prev.args)); // previous insertion was of same type\n this.mergeNextCommand = true;\n }\n else {\n shouldMerge = shouldMerge\n && mergeableCommands.indexOf(e.command.name) !== -1; // the command is mergeable\n }\n if (this.$mergeUndoDeltas != \"always\"\n && Date.now() - this.sequenceStartTime > 2000) {\n shouldMerge = false; // the sequence is too long\n }\n if (shouldMerge)\n this.session.mergeUndoDeltas = true;\n else if (mergeableCommands.indexOf(e.command.name) !== -1)\n this.sequenceStartTime = Date.now();\n };\n Editor.prototype.setKeyboardHandler = function (keyboardHandler, cb) {\n if (keyboardHandler && typeof keyboardHandler === \"string\" && keyboardHandler != \"ace\") {\n this.$keybindingId = keyboardHandler;\n var _self = this;\n config.loadModule([\"keybinding\", keyboardHandler], function (module) {\n if (_self.$keybindingId == keyboardHandler)\n _self.keyBinding.setKeyboardHandler(module && module.handler);\n cb && cb();\n });\n }\n else {\n this.$keybindingId = null;\n this.keyBinding.setKeyboardHandler(keyboardHandler);\n cb && cb();\n }\n };\n Editor.prototype.getKeyboardHandler = function () {\n return this.keyBinding.getKeyboardHandler();\n };\n Editor.prototype.setSession = function (session) {\n if (this.session == session)\n return;\n if (this.curOp)\n this.endOperation();\n this.curOp = {};\n var oldSession = this.session;\n if (oldSession) {\n this.session.off(\"change\", this.$onDocumentChange);\n this.session.off(\"changeMode\", this.$onChangeMode);\n this.session.off(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.session.off(\"changeTabSize\", this.$onChangeTabSize);\n this.session.off(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.session.off(\"changeWrapMode\", this.$onChangeWrapMode);\n this.session.off(\"changeFold\", this.$onChangeFold);\n this.session.off(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.session.off(\"changeBackMarker\", this.$onChangeBackMarker);\n this.session.off(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.session.off(\"changeAnnotation\", this.$onChangeAnnotation);\n this.session.off(\"changeOverwrite\", this.$onCursorChange);\n this.session.off(\"changeScrollTop\", this.$onScrollTopChange);\n this.session.off(\"changeScrollLeft\", this.$onScrollLeftChange);\n var selection = this.session.getSelection();\n selection.off(\"changeCursor\", this.$onCursorChange);\n selection.off(\"changeSelection\", this.$onSelectionChange);\n }\n this.session = session;\n if (session) {\n this.$onDocumentChange = this.onDocumentChange.bind(this);\n session.on(\"change\", this.$onDocumentChange);\n this.renderer.setSession(session);\n this.$onChangeMode = this.onChangeMode.bind(this);\n session.on(\"changeMode\", this.$onChangeMode);\n this.$onTokenizerUpdate = this.onTokenizerUpdate.bind(this);\n session.on(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.$onChangeTabSize = this.renderer.onChangeTabSize.bind(this.renderer);\n session.on(\"changeTabSize\", this.$onChangeTabSize);\n this.$onChangeWrapLimit = this.onChangeWrapLimit.bind(this);\n session.on(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.$onChangeWrapMode = this.onChangeWrapMode.bind(this);\n session.on(\"changeWrapMode\", this.$onChangeWrapMode);\n this.$onChangeFold = this.onChangeFold.bind(this);\n session.on(\"changeFold\", this.$onChangeFold);\n this.$onChangeFrontMarker = this.onChangeFrontMarker.bind(this);\n this.session.on(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.$onChangeBackMarker = this.onChangeBackMarker.bind(this);\n this.session.on(\"changeBackMarker\", this.$onChangeBackMarker);\n this.$onChangeBreakpoint = this.onChangeBreakpoint.bind(this);\n this.session.on(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.$onChangeAnnotation = this.onChangeAnnotation.bind(this);\n this.session.on(\"changeAnnotation\", this.$onChangeAnnotation);\n this.$onCursorChange = this.onCursorChange.bind(this);\n this.session.on(\"changeOverwrite\", this.$onCursorChange);\n this.$onScrollTopChange = this.onScrollTopChange.bind(this);\n this.session.on(\"changeScrollTop\", this.$onScrollTopChange);\n this.$onScrollLeftChange = this.onScrollLeftChange.bind(this);\n this.session.on(\"changeScrollLeft\", this.$onScrollLeftChange);\n this.selection = session.getSelection();\n this.selection.on(\"changeCursor\", this.$onCursorChange);\n this.$onSelectionChange = this.onSelectionChange.bind(this);\n this.selection.on(\"changeSelection\", this.$onSelectionChange);\n this.onChangeMode();\n this.onCursorChange();\n this.onScrollTopChange();\n this.onScrollLeftChange();\n this.onSelectionChange();\n this.onChangeFrontMarker();\n this.onChangeBackMarker();\n this.onChangeBreakpoint();\n this.onChangeAnnotation();\n this.session.getUseWrapMode() && this.renderer.adjustWrapLimit();\n this.renderer.updateFull();\n }\n else {\n this.selection = null;\n this.renderer.setSession(session);\n }\n this._signal(\"changeSession\", {\n session: session,\n oldSession: oldSession\n });\n this.curOp = null;\n oldSession && oldSession._signal(\"changeEditor\", { oldEditor: this });\n session && session._signal(\"changeEditor\", { editor: this });\n if (session && !session.destroyed)\n session.bgTokenizer.scheduleStart();\n };\n Editor.prototype.getSession = function () {\n return this.session;\n };\n Editor.prototype.setValue = function (val, cursorPos) {\n this.session.doc.setValue(val);\n if (!cursorPos)\n this.selectAll();\n else if (cursorPos == 1)\n this.navigateFileEnd();\n else if (cursorPos == -1)\n this.navigateFileStart();\n return val;\n };\n Editor.prototype.getValue = function () {\n return this.session.getValue();\n };\n Editor.prototype.getSelection = function () {\n return this.selection;\n };\n Editor.prototype.resize = function (force) {\n this.renderer.onResize(force);\n };\n Editor.prototype.setTheme = function (theme, cb) {\n this.renderer.setTheme(theme, cb);\n };\n Editor.prototype.getTheme = function () {\n return this.renderer.getTheme();\n };\n Editor.prototype.setStyle = function (style) {\n this.renderer.setStyle(style);\n };\n Editor.prototype.unsetStyle = function (style) {\n this.renderer.unsetStyle(style);\n };\n Editor.prototype.getFontSize = function () {\n return this.getOption(\"fontSize\") ||\n dom.computedStyle(this.container).fontSize;\n };\n Editor.prototype.setFontSize = function (size) {\n this.setOption(\"fontSize\", size);\n };\n Editor.prototype.$highlightBrackets = function () {\n if (this.$highlightPending) {\n return;\n }\n var self = this;\n this.$highlightPending = true;\n setTimeout(function () {\n self.$highlightPending = false;\n var session = self.session;\n if (!session || session.destroyed)\n return;\n if (session.$bracketHighlight) {\n session.$bracketHighlight.markerIds.forEach(function (id) {\n session.removeMarker(id);\n });\n session.$bracketHighlight = null;\n }\n var pos = self.getCursorPosition();\n var handler = self.getKeyboardHandler();\n var isBackwards = handler && handler.$getDirectionForHighlight && handler.$getDirectionForHighlight(self);\n var ranges = session.getMatchingBracketRanges(pos, isBackwards);\n if (!ranges) {\n var iterator = new TokenIterator(session, pos.row, pos.column);\n var token = iterator.getCurrentToken();\n if (token && /\\b(?:tag-open|tag-name)/.test(token.type)) {\n var tagNamesRanges = session.getMatchingTags(pos);\n if (tagNamesRanges)\n ranges = [tagNamesRanges.openTagName, tagNamesRanges.closeTagName];\n }\n }\n if (!ranges && session.$mode.getMatching)\n ranges = session.$mode.getMatching(self.session);\n if (!ranges) {\n if (self.getHighlightIndentGuides())\n self.renderer.$textLayer.$highlightIndentGuide();\n return;\n }\n var markerType = \"ace_bracket\";\n if (!Array.isArray(ranges)) {\n ranges = [ranges];\n }\n else if (ranges.length == 1) {\n markerType = \"ace_error_bracket\";\n }\n if (ranges.length == 2) {\n if (Range.comparePoints(ranges[0].end, ranges[1].start) == 0)\n ranges = [Range.fromPoints(ranges[0].start, ranges[1].end)];\n else if (Range.comparePoints(ranges[0].start, ranges[1].end) == 0)\n ranges = [Range.fromPoints(ranges[1].start, ranges[0].end)];\n }\n session.$bracketHighlight = {\n ranges: ranges,\n markerIds: ranges.map(function (range) {\n return session.addMarker(range, markerType, \"text\");\n })\n };\n if (self.getHighlightIndentGuides())\n self.renderer.$textLayer.$highlightIndentGuide();\n }, 50);\n };\n Editor.prototype.focus = function () {\n this.textInput.focus();\n };\n Editor.prototype.isFocused = function () {\n return this.textInput.isFocused();\n };\n Editor.prototype.blur = function () {\n this.textInput.blur();\n };\n Editor.prototype.onFocus = function (e) {\n if (this.$isFocused)\n return;\n this.$isFocused = true;\n this.renderer.showCursor();\n this.renderer.visualizeFocus();\n this._emit(\"focus\", e);\n };\n Editor.prototype.onBlur = function (e) {\n if (!this.$isFocused)\n return;\n this.$isFocused = false;\n this.renderer.hideCursor();\n this.renderer.visualizeBlur();\n this._emit(\"blur\", e);\n };\n Editor.prototype.$cursorChange = function () {\n this.renderer.updateCursor();\n this.$highlightBrackets();\n this.$updateHighlightActiveLine();\n };\n Editor.prototype.onDocumentChange = function (delta) {\n var wrap = this.session.$useWrapMode;\n var lastRow = (delta.start.row == delta.end.row ? delta.end.row : Infinity);\n this.renderer.updateLines(delta.start.row, lastRow, wrap);\n this._signal(\"change\", delta);\n this.$cursorChange();\n };\n Editor.prototype.onTokenizerUpdate = function (e) {\n var rows = e.data;\n this.renderer.updateLines(rows.first, rows.last);\n };\n Editor.prototype.onScrollTopChange = function () {\n this.renderer.scrollToY(this.session.getScrollTop());\n };\n Editor.prototype.onScrollLeftChange = function () {\n this.renderer.scrollToX(this.session.getScrollLeft());\n };\n Editor.prototype.onCursorChange = function () {\n this.$cursorChange();\n this._signal(\"changeSelection\");\n };\n Editor.prototype.$updateHighlightActiveLine = function () {\n var session = this.getSession();\n var highlight;\n if (this.$highlightActiveLine) {\n if (this.$selectionStyle != \"line\" || !this.selection.isMultiLine())\n highlight = this.getCursorPosition();\n if (this.renderer.theme && this.renderer.theme.$selectionColorConflict && !this.selection.isEmpty())\n highlight = false;\n if (this.renderer.$maxLines && this.session.getLength() === 1 && !(this.renderer.$minLines > 1))\n highlight = false;\n }\n if (session.$highlightLineMarker && !highlight) {\n session.removeMarker(session.$highlightLineMarker.id);\n session.$highlightLineMarker = null;\n }\n else if (!session.$highlightLineMarker && highlight) {\n var range = new Range(highlight.row, highlight.column, highlight.row, Infinity);\n range.id = session.addMarker(range, \"ace_active-line\", \"screenLine\");\n session.$highlightLineMarker = range;\n }\n else if (highlight) {\n session.$highlightLineMarker.start.row = highlight.row;\n session.$highlightLineMarker.end.row = highlight.row;\n session.$highlightLineMarker.start.column = highlight.column;\n session._signal(\"changeBackMarker\");\n }\n };\n Editor.prototype.onSelectionChange = function (e) {\n var session = this.session;\n if (session.$selectionMarker) {\n session.removeMarker(session.$selectionMarker);\n }\n session.$selectionMarker = null;\n if (!this.selection.isEmpty()) {\n var range = this.selection.getRange();\n var style = this.getSelectionStyle();\n session.$selectionMarker = session.addMarker(range, \"ace_selection\", style);\n }\n else {\n this.$updateHighlightActiveLine();\n }\n var re = this.$highlightSelectedWord && this.$getSelectionHighLightRegexp();\n this.session.highlight(re);\n this._signal(\"changeSelection\");\n };\n Editor.prototype.$getSelectionHighLightRegexp = function () {\n var session = this.session;\n var selection = this.getSelectionRange();\n if (selection.isEmpty() || selection.isMultiLine())\n return;\n var startColumn = selection.start.column;\n var endColumn = selection.end.column;\n var line = session.getLine(selection.start.row);\n var needle = line.substring(startColumn, endColumn);\n if (needle.length > 5000 || !/[\\w\\d]/.test(needle))\n return;\n var re = this.$search.$assembleRegExp({\n wholeWord: true,\n caseSensitive: true,\n needle: needle\n });\n var wordWithBoundary = line.substring(startColumn - 1, endColumn + 1);\n if (!re.test(wordWithBoundary))\n return;\n return re;\n };\n Editor.prototype.onChangeFrontMarker = function () {\n this.renderer.updateFrontMarkers();\n };\n Editor.prototype.onChangeBackMarker = function () {\n this.renderer.updateBackMarkers();\n };\n Editor.prototype.onChangeBreakpoint = function () {\n this.renderer.updateBreakpoints();\n };\n Editor.prototype.onChangeAnnotation = function () {\n this.renderer.setAnnotations(this.session.getAnnotations());\n };\n Editor.prototype.onChangeMode = function (e) {\n this.renderer.updateText();\n this._emit(\"changeMode\", e);\n };\n Editor.prototype.onChangeWrapLimit = function () {\n this.renderer.updateFull();\n };\n Editor.prototype.onChangeWrapMode = function () {\n this.renderer.onResize(true);\n };\n Editor.prototype.onChangeFold = function () {\n this.$updateHighlightActiveLine();\n this.renderer.updateFull();\n };\n Editor.prototype.getSelectedText = function () {\n return this.session.getTextRange(this.getSelectionRange());\n };\n Editor.prototype.getCopyText = function () {\n var text = this.getSelectedText();\n var nl = this.session.doc.getNewLineCharacter();\n var copyLine = false;\n if (!text && this.$copyWithEmptySelection) {\n copyLine = true;\n var ranges = this.selection.getAllRanges();\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (i && ranges[i - 1].start.row == range.start.row)\n continue;\n text += this.session.getLine(range.start.row) + nl;\n }\n }\n var e = { text: text };\n this._signal(\"copy\", e);\n clipboard.lineMode = copyLine ? e.text : false;\n return e.text;\n };\n Editor.prototype.onCopy = function () {\n this.commands.exec(\"copy\", this);\n };\n Editor.prototype.onCut = function () {\n this.commands.exec(\"cut\", this);\n };\n Editor.prototype.onPaste = function (text, event) {\n var e = { text: text, event: event };\n this.commands.exec(\"paste\", this, e);\n };\n Editor.prototype.$handlePaste = function (e) {\n if (typeof e == \"string\")\n e = { text: e };\n this._signal(\"paste\", e);\n var text = e.text;\n var lineMode = text === clipboard.lineMode;\n var session = this.session;\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode) {\n if (lineMode)\n session.insert({ row: this.selection.lead.row, column: 0 }, text);\n else\n this.insert(text);\n }\n else if (lineMode) {\n this.selection.rangeList.ranges.forEach(function (range) {\n session.insert({ row: range.start.row, column: 0 }, text);\n });\n }\n else {\n var lines = text.split(/\\r\\n|\\r|\\n/);\n var ranges = this.selection.rangeList.ranges;\n var isFullLine = lines.length == 2 && (!lines[0] || !lines[1]);\n if (lines.length != ranges.length || isFullLine)\n return this.commands.exec(\"insertstring\", this, text);\n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.isEmpty())\n session.remove(range);\n session.insert(range.start, lines[i]);\n }\n }\n };\n Editor.prototype.execCommand = function (command, args) {\n return this.commands.exec(command, this, args);\n };\n Editor.prototype.insert = function (text, pasted) {\n var session = this.session;\n var mode = session.getMode();\n var cursor = this.getCursorPosition();\n if (this.getBehavioursEnabled() && !pasted) {\n var transform = mode.transformAction(session.getState(cursor.row), 'insertion', this, session, text);\n if (transform) {\n if (text !== transform.text) {\n if (!this.inVirtualSelectionMode) {\n this.session.mergeUndoDeltas = false;\n this.mergeNextCommand = false;\n }\n }\n text = transform.text;\n }\n }\n if (text == \"\\t\")\n text = this.session.getTabString();\n if (!this.selection.isEmpty()) {\n var range = this.getSelectionRange();\n cursor = this.session.remove(range);\n this.clearSelection();\n }\n else if (this.session.getOverwrite() && text.indexOf(\"\\n\") == -1) {\n var range = new Range.fromPoints(cursor, cursor);\n range.end.column += text.length;\n this.session.remove(range);\n }\n if (text == \"\\n\" || text == \"\\r\\n\") {\n var line = session.getLine(cursor.row);\n if (cursor.column > line.search(/\\S|$/)) {\n var d = line.substr(cursor.column).search(/\\S|$/);\n session.doc.removeInLine(cursor.row, cursor.column, cursor.column + d);\n }\n }\n this.clearSelection();\n var start = cursor.column;\n var lineState = session.getState(cursor.row);\n var line = session.getLine(cursor.row);\n var shouldOutdent = mode.checkOutdent(lineState, line, text);\n session.insert(cursor, text);\n if (transform && transform.selection) {\n if (transform.selection.length == 2) { // Transform relative to the current column\n this.selection.setSelectionRange(new Range(cursor.row, start + transform.selection[0], cursor.row, start + transform.selection[1]));\n }\n else { // Transform relative to the current row.\n this.selection.setSelectionRange(new Range(cursor.row + transform.selection[0], transform.selection[1], cursor.row + transform.selection[2], transform.selection[3]));\n }\n }\n if (this.$enableAutoIndent) {\n if (session.getDocument().isNewLine(text)) {\n var lineIndent = mode.getNextLineIndent(lineState, line.slice(0, cursor.column), session.getTabString());\n session.insert({ row: cursor.row + 1, column: 0 }, lineIndent);\n }\n if (shouldOutdent)\n mode.autoOutdent(lineState, session, cursor.row);\n }\n };\n Editor.prototype.autoIndent = function () {\n var session = this.session;\n var mode = session.getMode();\n var startRow, endRow;\n if (this.selection.isEmpty()) {\n startRow = 0;\n endRow = session.doc.getLength() - 1;\n }\n else {\n var selectedRange = this.getSelectionRange();\n startRow = selectedRange.start.row;\n endRow = selectedRange.end.row;\n }\n var prevLineState = \"\";\n var prevLine = \"\";\n var lineIndent = \"\";\n var line, currIndent, range;\n var tab = session.getTabString();\n for (var row = startRow; row <= endRow; row++) {\n if (row > 0) {\n prevLineState = session.getState(row - 1);\n prevLine = session.getLine(row - 1);\n lineIndent = mode.getNextLineIndent(prevLineState, prevLine, tab);\n }\n line = session.getLine(row);\n currIndent = mode.$getIndent(line);\n if (lineIndent !== currIndent) {\n if (currIndent.length > 0) {\n range = new Range(row, 0, row, currIndent.length);\n session.remove(range);\n }\n if (lineIndent.length > 0) {\n session.insert({ row: row, column: 0 }, lineIndent);\n }\n }\n mode.autoOutdent(prevLineState, session, row);\n }\n };\n Editor.prototype.onTextInput = function (text, composition) {\n if (!composition)\n return this.keyBinding.onTextInput(text);\n this.startOperation({ command: { name: \"insertstring\" } });\n var applyComposition = this.applyComposition.bind(this, text, composition);\n if (this.selection.rangeCount)\n this.forEachSelection(applyComposition);\n else\n applyComposition();\n this.endOperation();\n };\n Editor.prototype.applyComposition = function (text, composition) {\n if (composition.extendLeft || composition.extendRight) {\n var r = this.selection.getRange();\n r.start.column -= composition.extendLeft;\n r.end.column += composition.extendRight;\n if (r.start.column < 0) {\n r.start.row--;\n r.start.column += this.session.getLine(r.start.row).length + 1;\n }\n this.selection.setRange(r);\n if (!text && !r.isEmpty())\n this.remove();\n }\n if (text || !this.selection.isEmpty())\n this.insert(text, true);\n if (composition.restoreStart || composition.restoreEnd) {\n var r = this.selection.getRange();\n r.start.column -= composition.restoreStart;\n r.end.column -= composition.restoreEnd;\n this.selection.setRange(r);\n }\n };\n Editor.prototype.onCommandKey = function (e, hashId, keyCode) {\n return this.keyBinding.onCommandKey(e, hashId, keyCode);\n };\n Editor.prototype.setOverwrite = function (overwrite) {\n this.session.setOverwrite(overwrite);\n };\n Editor.prototype.getOverwrite = function () {\n return this.session.getOverwrite();\n };\n Editor.prototype.toggleOverwrite = function () {\n this.session.toggleOverwrite();\n };\n Editor.prototype.setScrollSpeed = function (speed) {\n this.setOption(\"scrollSpeed\", speed);\n };\n Editor.prototype.getScrollSpeed = function () {\n return this.getOption(\"scrollSpeed\");\n };\n Editor.prototype.setDragDelay = function (dragDelay) {\n this.setOption(\"dragDelay\", dragDelay);\n };\n Editor.prototype.getDragDelay = function () {\n return this.getOption(\"dragDelay\");\n };\n Editor.prototype.setSelectionStyle = function (val) {\n this.setOption(\"selectionStyle\", val);\n };\n Editor.prototype.getSelectionStyle = function () {\n return this.getOption(\"selectionStyle\");\n };\n Editor.prototype.setHighlightActiveLine = function (shouldHighlight) {\n this.setOption(\"highlightActiveLine\", shouldHighlight);\n };\n Editor.prototype.getHighlightActiveLine = function () {\n return this.getOption(\"highlightActiveLine\");\n };\n Editor.prototype.setHighlightGutterLine = function (shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n Editor.prototype.getHighlightGutterLine = function () {\n return this.getOption(\"highlightGutterLine\");\n };\n Editor.prototype.setHighlightSelectedWord = function (shouldHighlight) {\n this.setOption(\"highlightSelectedWord\", shouldHighlight);\n };\n Editor.prototype.getHighlightSelectedWord = function () {\n return this.$highlightSelectedWord;\n };\n Editor.prototype.setAnimatedScroll = function (shouldAnimate) {\n this.renderer.setAnimatedScroll(shouldAnimate);\n };\n Editor.prototype.getAnimatedScroll = function () {\n return this.renderer.getAnimatedScroll();\n };\n Editor.prototype.setShowInvisibles = function (showInvisibles) {\n this.renderer.setShowInvisibles(showInvisibles);\n };\n Editor.prototype.getShowInvisibles = function () {\n return this.renderer.getShowInvisibles();\n };\n Editor.prototype.setDisplayIndentGuides = function (display) {\n this.renderer.setDisplayIndentGuides(display);\n };\n Editor.prototype.getDisplayIndentGuides = function () {\n return this.renderer.getDisplayIndentGuides();\n };\n Editor.prototype.setHighlightIndentGuides = function (highlight) {\n this.renderer.setHighlightIndentGuides(highlight);\n };\n Editor.prototype.getHighlightIndentGuides = function () {\n return this.renderer.getHighlightIndentGuides();\n };\n Editor.prototype.setShowPrintMargin = function (showPrintMargin) {\n this.renderer.setShowPrintMargin(showPrintMargin);\n };\n Editor.prototype.getShowPrintMargin = function () {\n return this.renderer.getShowPrintMargin();\n };\n Editor.prototype.setPrintMarginColumn = function (showPrintMargin) {\n this.renderer.setPrintMarginColumn(showPrintMargin);\n };\n Editor.prototype.getPrintMarginColumn = function () {\n return this.renderer.getPrintMarginColumn();\n };\n Editor.prototype.setReadOnly = function (readOnly) {\n this.setOption(\"readOnly\", readOnly);\n };\n Editor.prototype.getReadOnly = function () {\n return this.getOption(\"readOnly\");\n };\n Editor.prototype.setBehavioursEnabled = function (enabled) {\n this.setOption(\"behavioursEnabled\", enabled);\n };\n Editor.prototype.getBehavioursEnabled = function () {\n return this.getOption(\"behavioursEnabled\");\n };\n Editor.prototype.setWrapBehavioursEnabled = function (enabled) {\n this.setOption(\"wrapBehavioursEnabled\", enabled);\n };\n Editor.prototype.getWrapBehavioursEnabled = function () {\n return this.getOption(\"wrapBehavioursEnabled\");\n };\n Editor.prototype.setShowFoldWidgets = function (show) {\n this.setOption(\"showFoldWidgets\", show);\n };\n Editor.prototype.getShowFoldWidgets = function () {\n return this.getOption(\"showFoldWidgets\");\n };\n Editor.prototype.setFadeFoldWidgets = function (fade) {\n this.setOption(\"fadeFoldWidgets\", fade);\n };\n Editor.prototype.getFadeFoldWidgets = function () {\n return this.getOption(\"fadeFoldWidgets\");\n };\n Editor.prototype.remove = function (dir) {\n if (this.selection.isEmpty()) {\n if (dir == \"left\")\n this.selection.selectLeft();\n else\n this.selection.selectRight();\n }\n var range = this.getSelectionRange();\n if (this.getBehavioursEnabled()) {\n var session = this.session;\n var state = session.getState(range.start.row);\n var new_range = session.getMode().transformAction(state, 'deletion', this, session, range);\n if (range.end.column === 0) {\n var text = session.getTextRange(range);\n if (text[text.length - 1] == \"\\n\") {\n var line = session.getLine(range.end.row);\n if (/^\\s+$/.test(line)) {\n range.end.column = line.length;\n }\n }\n }\n if (new_range)\n range = new_range;\n }\n this.session.remove(range);\n this.clearSelection();\n };\n Editor.prototype.removeWordRight = function () {\n if (this.selection.isEmpty())\n this.selection.selectWordRight();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeWordLeft = function () {\n if (this.selection.isEmpty())\n this.selection.selectWordLeft();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeToLineStart = function () {\n if (this.selection.isEmpty())\n this.selection.selectLineStart();\n if (this.selection.isEmpty())\n this.selection.selectLeft();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeToLineEnd = function () {\n if (this.selection.isEmpty())\n this.selection.selectLineEnd();\n var range = this.getSelectionRange();\n if (range.start.column == range.end.column && range.start.row == range.end.row) {\n range.end.column = 0;\n range.end.row++;\n }\n this.session.remove(range);\n this.clearSelection();\n };\n Editor.prototype.splitLine = function () {\n if (!this.selection.isEmpty()) {\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n }\n var cursor = this.getCursorPosition();\n this.insert(\"\\n\");\n this.moveCursorToPosition(cursor);\n };\n Editor.prototype.setGhostText = function (text, position) {\n if (!this.session.widgetManager) {\n this.session.widgetManager = new LineWidgets(this.session);\n this.session.widgetManager.attach(this);\n }\n this.renderer.setGhostText(text, position);\n };\n Editor.prototype.removeGhostText = function () {\n if (!this.session.widgetManager)\n return;\n this.renderer.removeGhostText();\n };\n Editor.prototype.transposeLetters = function () {\n if (!this.selection.isEmpty()) {\n return;\n }\n var cursor = this.getCursorPosition();\n var column = cursor.column;\n if (column === 0)\n return;\n var line = this.session.getLine(cursor.row);\n var swap, range;\n if (column < line.length) {\n swap = line.charAt(column) + line.charAt(column - 1);\n range = new Range(cursor.row, column - 1, cursor.row, column + 1);\n }\n else {\n swap = line.charAt(column - 1) + line.charAt(column - 2);\n range = new Range(cursor.row, column - 2, cursor.row, column);\n }\n this.session.replace(range, swap);\n this.session.selection.moveToPosition(range.end);\n };\n Editor.prototype.toLowerCase = function () {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toLowerCase());\n this.selection.setSelectionRange(originalRange);\n };\n Editor.prototype.toUpperCase = function () {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toUpperCase());\n this.selection.setSelectionRange(originalRange);\n };\n Editor.prototype.indent = function () {\n var session = this.session;\n var range = this.getSelectionRange();\n if (range.start.row < range.end.row) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n else if (range.start.column < range.end.column) {\n var text = session.getTextRange(range);\n if (!/^\\s+$/.test(text)) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n }\n var line = session.getLine(range.start.row);\n var position = range.start;\n var size = session.getTabSize();\n var column = session.documentToScreenColumn(position.row, position.column);\n if (this.session.getUseSoftTabs()) {\n var count = (size - column % size);\n var indentString = lang.stringRepeat(\" \", count);\n }\n else {\n var count = column % size;\n while (line[range.start.column - 1] == \" \" && count) {\n range.start.column--;\n count--;\n }\n this.selection.setSelectionRange(range);\n indentString = \"\\t\";\n }\n return this.insert(indentString);\n };\n Editor.prototype.blockIndent = function () {\n var rows = this.$getSelectedRows();\n this.session.indentRows(rows.first, rows.last, \"\\t\");\n };\n Editor.prototype.blockOutdent = function () {\n var selection = this.session.getSelection();\n this.session.outdentRows(selection.getRange());\n };\n Editor.prototype.sortLines = function () {\n var rows = this.$getSelectedRows();\n var session = this.session;\n var lines = [];\n for (var i = rows.first; i <= rows.last; i++)\n lines.push(session.getLine(i));\n lines.sort(function (a, b) {\n if (a.toLowerCase() < b.toLowerCase())\n return -1;\n if (a.toLowerCase() > b.toLowerCase())\n return 1;\n return 0;\n });\n var deleteRange = new Range(0, 0, 0, 0);\n for (var i = rows.first; i <= rows.last; i++) {\n var line = session.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n deleteRange.end.column = line.length;\n session.replace(deleteRange, lines[i - rows.first]);\n }\n };\n Editor.prototype.toggleCommentLines = function () {\n var state = this.session.getState(this.getCursorPosition().row);\n var rows = this.$getSelectedRows();\n this.session.getMode().toggleCommentLines(state, this.session, rows.first, rows.last);\n };\n Editor.prototype.toggleBlockComment = function () {\n var cursor = this.getCursorPosition();\n var state = this.session.getState(cursor.row);\n var range = this.getSelectionRange();\n this.session.getMode().toggleBlockComment(state, this.session, range, cursor);\n };\n Editor.prototype.getNumberAt = function (row, column) {\n var _numberRx = /[\\-]?[0-9]+(?:\\.[0-9]+)?/g;\n _numberRx.lastIndex = 0;\n var s = this.session.getLine(row);\n while (_numberRx.lastIndex < column) {\n var m = _numberRx.exec(s);\n if (m.index <= column && m.index + m[0].length >= column) {\n var number = {\n value: m[0],\n start: m.index,\n end: m.index + m[0].length\n };\n return number;\n }\n }\n return null;\n };\n Editor.prototype.modifyNumber = function (amount) {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n var charRange = new Range(row, column - 1, row, column);\n var c = this.session.getTextRange(charRange);\n if (!isNaN(parseFloat(c)) && isFinite(c)) {\n var nr = this.getNumberAt(row, column);\n if (nr) {\n var fp = nr.value.indexOf(\".\") >= 0 ? nr.start + nr.value.indexOf(\".\") + 1 : nr.end;\n var decimals = nr.start + nr.value.length - fp;\n var t = parseFloat(nr.value);\n t *= Math.pow(10, decimals);\n if (fp !== nr.end && column < fp) {\n amount *= Math.pow(10, nr.end - column - 1);\n }\n else {\n amount *= Math.pow(10, nr.end - column);\n }\n t += amount;\n t /= Math.pow(10, decimals);\n var nnr = t.toFixed(decimals);\n var replaceRange = new Range(row, nr.start, row, nr.end);\n this.session.replace(replaceRange, nnr);\n this.moveCursorTo(row, Math.max(nr.start + 1, column + nnr.length - nr.value.length));\n }\n }\n else {\n this.toggleWord();\n }\n };\n Editor.prototype.toggleWord = function () {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n this.selection.selectWord();\n var currentState = this.getSelectedText();\n var currWordStart = this.selection.getWordRange().start.column;\n var wordParts = currentState.replace(/([a-z]+|[A-Z]+)(?=[A-Z_]|$)/g, '$1 ').split(/\\s/);\n var delta = column - currWordStart - 1;\n if (delta < 0)\n delta = 0;\n var curLength = 0, itLength = 0;\n var that = this;\n if (currentState.match(/[A-Za-z0-9_]+/)) {\n wordParts.forEach(function (item, i) {\n itLength = curLength + item.length;\n if (delta >= curLength && delta <= itLength) {\n currentState = item;\n that.selection.clearSelection();\n that.moveCursorTo(row, curLength + currWordStart);\n that.selection.selectTo(row, itLength + currWordStart);\n }\n curLength = itLength;\n });\n }\n var wordPairs = this.$toggleWordPairs;\n var reg;\n for (var i = 0; i < wordPairs.length; i++) {\n var item = wordPairs[i];\n for (var j = 0; j <= 1; j++) {\n var negate = +!j;\n var firstCondition = currentState.match(new RegExp('^\\\\s?_?(' + lang.escapeRegExp(item[j]) + ')\\\\s?$', 'i'));\n if (firstCondition) {\n var secondCondition = currentState.match(new RegExp('([_]|^|\\\\s)(' + lang.escapeRegExp(firstCondition[1]) + ')($|\\\\s)', 'g'));\n if (secondCondition) {\n reg = currentState.replace(new RegExp(lang.escapeRegExp(item[j]), 'i'), function (result) {\n var res = item[negate];\n if (result.toUpperCase() == result) {\n res = res.toUpperCase();\n }\n else if (result.charAt(0).toUpperCase() == result.charAt(0)) {\n res = res.substr(0, 0) + item[negate].charAt(0).toUpperCase() + res.substr(1);\n }\n return res;\n });\n this.insert(reg);\n reg = \"\";\n }\n }\n }\n }\n };\n Editor.prototype.findLinkAt = function (row, column) {\n var e_1, _a;\n var line = this.session.getLine(row);\n var wordParts = line.split(/((?:https?|ftp):\\/\\/[\\S]+)/);\n var columnPosition = column;\n if (columnPosition < 0)\n columnPosition = 0;\n var previousPosition = 0, currentPosition = 0, match;\n try {\n for (var wordParts_1 = __values(wordParts), wordParts_1_1 = wordParts_1.next(); !wordParts_1_1.done; wordParts_1_1 = wordParts_1.next()) {\n var item = wordParts_1_1.value;\n currentPosition = previousPosition + item.length;\n if (columnPosition >= previousPosition && columnPosition <= currentPosition) {\n if (item.match(/((?:https?|ftp):\\/\\/[\\S]+)/)) {\n match = item.replace(/[\\s:.,'\";}\\]]+$/, \"\");\n break;\n }\n }\n previousPosition = currentPosition;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (wordParts_1_1 && !wordParts_1_1.done && (_a = wordParts_1.return)) _a.call(wordParts_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return match;\n };\n Editor.prototype.openLink = function () {\n var cursor = this.selection.getCursor();\n var url = this.findLinkAt(cursor.row, cursor.column);\n if (url)\n window.open(url, '_blank');\n return url != null;\n };\n Editor.prototype.removeLines = function () {\n var rows = this.$getSelectedRows();\n this.session.removeFullLines(rows.first, rows.last);\n this.clearSelection();\n };\n Editor.prototype.duplicateSelection = function () {\n var sel = this.selection;\n var doc = this.session;\n var range = sel.getRange();\n var reverse = sel.isBackwards();\n if (range.isEmpty()) {\n var row = range.start.row;\n doc.duplicateLines(row, row);\n }\n else {\n var point = reverse ? range.start : range.end;\n var endPoint = doc.insert(point, doc.getTextRange(range), false);\n range.start = point;\n range.end = endPoint;\n sel.setSelectionRange(range, reverse);\n }\n };\n Editor.prototype.moveLinesDown = function () {\n this.$moveLines(1, false);\n };\n Editor.prototype.moveLinesUp = function () {\n this.$moveLines(-1, false);\n };\n Editor.prototype.moveText = function (range, toPosition, copy) {\n return this.session.moveText(range, toPosition, copy);\n };\n Editor.prototype.copyLinesUp = function () {\n this.$moveLines(-1, true);\n };\n Editor.prototype.copyLinesDown = function () {\n this.$moveLines(1, true);\n };\n Editor.prototype.$moveLines = function (dir, copy) {\n var rows, moved;\n var selection = this.selection;\n if (!selection.inMultiSelectMode || this.inVirtualSelectionMode) {\n var range = selection.toOrientedRange();\n rows = this.$getSelectedRows(range);\n moved = this.session.$moveLines(rows.first, rows.last, copy ? 0 : dir);\n if (copy && dir == -1)\n moved = 0;\n range.moveBy(moved, 0);\n selection.fromOrientedRange(range);\n }\n else {\n var ranges = selection.rangeList.ranges;\n selection.rangeList.detach(this.session);\n this.inVirtualSelectionMode = true;\n var diff = 0;\n var totalDiff = 0;\n var l = ranges.length;\n for (var i = 0; i < l; i++) {\n var rangeIndex = i;\n ranges[i].moveBy(diff, 0);\n rows = this.$getSelectedRows(ranges[i]);\n var first = rows.first;\n var last = rows.last;\n while (++i < l) {\n if (totalDiff)\n ranges[i].moveBy(totalDiff, 0);\n var subRows = this.$getSelectedRows(ranges[i]);\n if (copy && subRows.first != last)\n break;\n else if (!copy && subRows.first > last + 1)\n break;\n last = subRows.last;\n }\n i--;\n diff = this.session.$moveLines(first, last, copy ? 0 : dir);\n if (copy && dir == -1)\n rangeIndex = i + 1;\n while (rangeIndex <= i) {\n ranges[rangeIndex].moveBy(diff, 0);\n rangeIndex++;\n }\n if (!copy)\n diff = 0;\n totalDiff += diff;\n }\n selection.fromOrientedRange(selection.ranges[0]);\n selection.rangeList.attach(this.session);\n this.inVirtualSelectionMode = false;\n }\n };\n Editor.prototype.$getSelectedRows = function (range) {\n range = (range || this.getSelectionRange()).collapseRows();\n return {\n first: this.session.getRowFoldStart(range.start.row),\n last: this.session.getRowFoldEnd(range.end.row)\n };\n };\n Editor.prototype.onCompositionStart = function (compositionState) {\n this.renderer.showComposition(compositionState);\n };\n Editor.prototype.onCompositionUpdate = function (text) {\n this.renderer.setCompositionText(text);\n };\n Editor.prototype.onCompositionEnd = function () {\n this.renderer.hideComposition();\n };\n Editor.prototype.getFirstVisibleRow = function () {\n return this.renderer.getFirstVisibleRow();\n };\n Editor.prototype.getLastVisibleRow = function () {\n return this.renderer.getLastVisibleRow();\n };\n Editor.prototype.isRowVisible = function (row) {\n return (row >= this.getFirstVisibleRow() && row <= this.getLastVisibleRow());\n };\n Editor.prototype.isRowFullyVisible = function (row) {\n return (row >= this.renderer.getFirstFullyVisibleRow() && row <= this.renderer.getLastFullyVisibleRow());\n };\n Editor.prototype.$getVisibleRowCount = function () {\n return this.renderer.getScrollBottomRow() - this.renderer.getScrollTopRow() + 1;\n };\n Editor.prototype.$moveByPage = function (dir, select) {\n var renderer = this.renderer;\n var config = this.renderer.layerConfig;\n var rows = dir * Math.floor(config.height / config.lineHeight);\n if (select === true) {\n this.selection.$moveSelection(function () {\n this.moveCursorBy(rows, 0);\n });\n }\n else if (select === false) {\n this.selection.moveCursorBy(rows, 0);\n this.selection.clearSelection();\n }\n var scrollTop = renderer.scrollTop;\n renderer.scrollBy(0, rows * config.lineHeight);\n if (select != null)\n renderer.scrollCursorIntoView(null, 0.5);\n renderer.animateScrolling(scrollTop);\n };\n Editor.prototype.selectPageDown = function () {\n this.$moveByPage(1, true);\n };\n Editor.prototype.selectPageUp = function () {\n this.$moveByPage(-1, true);\n };\n Editor.prototype.gotoPageDown = function () {\n this.$moveByPage(1, false);\n };\n Editor.prototype.gotoPageUp = function () {\n this.$moveByPage(-1, false);\n };\n Editor.prototype.scrollPageDown = function () {\n this.$moveByPage(1);\n };\n Editor.prototype.scrollPageUp = function () {\n this.$moveByPage(-1);\n };\n Editor.prototype.scrollToRow = function (row) {\n this.renderer.scrollToRow(row);\n };\n Editor.prototype.scrollToLine = function (line, center, animate, callback) {\n this.renderer.scrollToLine(line, center, animate, callback);\n };\n Editor.prototype.centerSelection = function () {\n var range = this.getSelectionRange();\n var pos = {\n row: Math.floor(range.start.row + (range.end.row - range.start.row) / 2),\n column: Math.floor(range.start.column + (range.end.column - range.start.column) / 2)\n };\n this.renderer.alignCursor(pos, 0.5);\n };\n Editor.prototype.getCursorPosition = function () {\n return this.selection.getCursor();\n };\n Editor.prototype.getCursorPositionScreen = function () {\n return this.session.documentToScreenPosition(this.getCursorPosition());\n };\n Editor.prototype.getSelectionRange = function () {\n return this.selection.getRange();\n };\n Editor.prototype.selectAll = function () {\n this.selection.selectAll();\n };\n Editor.prototype.clearSelection = function () {\n this.selection.clearSelection();\n };\n Editor.prototype.moveCursorTo = function (row, column) {\n this.selection.moveCursorTo(row, column);\n };\n Editor.prototype.moveCursorToPosition = function (pos) {\n this.selection.moveCursorToPosition(pos);\n };\n Editor.prototype.jumpToMatching = function (select, expand) {\n var cursor = this.getCursorPosition();\n var iterator = new TokenIterator(this.session, cursor.row, cursor.column);\n var prevToken = iterator.getCurrentToken();\n var tokenCount = 0;\n if (prevToken && prevToken.type.indexOf('tag-name') !== -1) {\n prevToken = iterator.stepBackward();\n }\n var token = prevToken || iterator.stepForward();\n if (!token)\n return;\n var matchType;\n var found = false;\n var depth = {};\n var i = cursor.column - token.start;\n var bracketType;\n var brackets = {\n \")\": \"(\",\n \"(\": \"(\",\n \"]\": \"[\",\n \"[\": \"[\",\n \"{\": \"{\",\n \"}\": \"{\"\n };\n do {\n if (token.value.match(/[{}()\\[\\]]/g)) {\n for (; i < token.value.length && !found; i++) {\n if (!brackets[token.value[i]]) {\n continue;\n }\n bracketType = brackets[token.value[i]] + '.' + token.type.replace(\"rparen\", \"lparen\");\n if (isNaN(depth[bracketType])) {\n depth[bracketType] = 0;\n }\n switch (token.value[i]) {\n case '(':\n case '[':\n case '{':\n depth[bracketType]++;\n break;\n case ')':\n case ']':\n case '}':\n depth[bracketType]--;\n if (depth[bracketType] === -1) {\n matchType = 'bracket';\n found = true;\n }\n break;\n }\n }\n }\n else if (token.type.indexOf('tag-name') !== -1) {\n if (isNaN(depth[token.value])) {\n depth[token.value] = 0;\n }\n if (prevToken.value === '<' && tokenCount > 1) {\n depth[token.value]++;\n }\n else if (prevToken.value === '= 0; --i) {\n if (this.$tryReplace(ranges[i], replacement)) {\n replaced++;\n }\n }\n this.selection.setSelectionRange(selection);\n return replaced;\n };\n Editor.prototype.$tryReplace = function (range, replacement) {\n var input = this.session.getTextRange(range);\n replacement = this.$search.replace(input, replacement);\n if (replacement !== null) {\n range.end = this.session.replace(range, replacement);\n return range;\n }\n else {\n return null;\n }\n };\n Editor.prototype.getLastSearchOptions = function () {\n return this.$search.getOptions();\n };\n Editor.prototype.find = function (needle, options, animate) {\n if (!options)\n options = {};\n if (typeof needle == \"string\" || needle instanceof RegExp)\n options.needle = needle;\n else if (typeof needle == \"object\")\n oop.mixin(options, needle);\n var range = this.selection.getRange();\n if (options.needle == null) {\n needle = this.session.getTextRange(range)\n || this.$search.$options.needle;\n if (!needle) {\n range = this.session.getWordRange(range.start.row, range.start.column);\n needle = this.session.getTextRange(range);\n }\n this.$search.set({ needle: needle });\n }\n this.$search.set(options);\n if (!options.start)\n this.$search.set({ start: range });\n var newRange = this.$search.find(this.session);\n if (options.preventScroll)\n return newRange;\n if (newRange) {\n this.revealRange(newRange, animate);\n return newRange;\n }\n if (options.backwards)\n range.start = range.end;\n else\n range.end = range.start;\n this.selection.setRange(range);\n };\n Editor.prototype.findNext = function (options, animate) {\n this.find({ skipCurrent: true, backwards: false }, options, animate);\n };\n Editor.prototype.findPrevious = function (options, animate) {\n this.find(options, { skipCurrent: true, backwards: true }, animate);\n };\n Editor.prototype.revealRange = function (range, animate) {\n this.session.unfold(range);\n this.selection.setSelectionRange(range);\n var scrollTop = this.renderer.scrollTop;\n this.renderer.scrollSelectionIntoView(range.start, range.end, 0.5);\n if (animate !== false)\n this.renderer.animateScrolling(scrollTop);\n };\n Editor.prototype.undo = function () {\n this.session.getUndoManager().undo(this.session);\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n Editor.prototype.redo = function () {\n this.session.getUndoManager().redo(this.session);\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n Editor.prototype.destroy = function () {\n if (this.$toDestroy) {\n this.$toDestroy.forEach(function (el) {\n el.destroy();\n });\n this.$toDestroy = null;\n }\n if (this.$mouseHandler)\n this.$mouseHandler.destroy();\n this.renderer.destroy();\n this._signal(\"destroy\", this);\n if (this.session)\n this.session.destroy();\n if (this._$emitInputEvent)\n this._$emitInputEvent.cancel();\n this.removeAllListeners();\n };\n Editor.prototype.setAutoScrollEditorIntoView = function (enable) {\n if (!enable)\n return;\n var rect;\n var self = this;\n var shouldScroll = false;\n if (!this.$scrollAnchor)\n this.$scrollAnchor = document.createElement(\"div\");\n var scrollAnchor = this.$scrollAnchor;\n scrollAnchor.style.cssText = \"position:absolute\";\n this.container.insertBefore(scrollAnchor, this.container.firstChild);\n var onChangeSelection = this.on(\"changeSelection\", function () {\n shouldScroll = true;\n });\n var onBeforeRender = this.renderer.on(\"beforeRender\", function () {\n if (shouldScroll)\n rect = self.renderer.container.getBoundingClientRect();\n });\n var onAfterRender = this.renderer.on(\"afterRender\", function () {\n if (shouldScroll && rect && (self.isFocused()\n || self.searchBox && self.searchBox.isFocused())) {\n var renderer = self.renderer;\n var pos = renderer.$cursorLayer.$pixelPos;\n var config = renderer.layerConfig;\n var top = pos.top - config.offset;\n if (pos.top >= 0 && top + rect.top < 0) {\n shouldScroll = true;\n }\n else if (pos.top < config.height &&\n pos.top + rect.top + config.lineHeight > window.innerHeight) {\n shouldScroll = false;\n }\n else {\n shouldScroll = null;\n }\n if (shouldScroll != null) {\n scrollAnchor.style.top = top + \"px\";\n scrollAnchor.style.left = pos.left + \"px\";\n scrollAnchor.style.height = config.lineHeight + \"px\";\n scrollAnchor.scrollIntoView(shouldScroll);\n }\n shouldScroll = rect = null;\n }\n });\n this.setAutoScrollEditorIntoView = function (enable) {\n if (enable)\n return;\n delete this.setAutoScrollEditorIntoView;\n this.off(\"changeSelection\", onChangeSelection);\n this.renderer.off(\"afterRender\", onAfterRender);\n this.renderer.off(\"beforeRender\", onBeforeRender);\n };\n };\n Editor.prototype.$resetCursorStyle = function () {\n var style = this.$cursorStyle || \"ace\";\n var cursorLayer = this.renderer.$cursorLayer;\n if (!cursorLayer)\n return;\n cursorLayer.setSmoothBlinking(/smooth/.test(style));\n cursorLayer.isBlinking = !this.$readOnly && style != \"wide\";\n dom.setCssClass(cursorLayer.element, \"ace_slim-cursors\", /slim/.test(style));\n };\n Editor.prototype.prompt = function (message, options, callback) {\n var editor = this;\n config.loadModule(\"ace/ext/prompt\", function (module) {\n module.prompt(editor, message, options, callback);\n });\n };\n return Editor;\n}());\nEditor.$uid = 0;\nEditor.prototype.curOp = null;\nEditor.prototype.prevOp = {};\nEditor.prototype.$mergeableCommands = [\"backspace\", \"del\", \"insertstring\"];\nEditor.prototype.$toggleWordPairs = [\n [\"first\", \"last\"],\n [\"true\", \"false\"],\n [\"yes\", \"no\"],\n [\"width\", \"height\"],\n [\"top\", \"bottom\"],\n [\"right\", \"left\"],\n [\"on\", \"off\"],\n [\"x\", \"y\"],\n [\"get\", \"set\"],\n [\"max\", \"min\"],\n [\"horizontal\", \"vertical\"],\n [\"show\", \"hide\"],\n [\"add\", \"remove\"],\n [\"up\", \"down\"],\n [\"before\", \"after\"],\n [\"even\", \"odd\"],\n [\"in\", \"out\"],\n [\"inside\", \"outside\"],\n [\"next\", \"previous\"],\n [\"increase\", \"decrease\"],\n [\"attach\", \"detach\"],\n [\"&&\", \"||\"],\n [\"==\", \"!=\"]\n];\noop.implement(Editor.prototype, EventEmitter);\nconfig.defineOptions(Editor.prototype, \"editor\", {\n selectionStyle: {\n set: function (style) {\n this.onSelectionChange();\n this._signal(\"changeSelectionStyle\", { data: style });\n },\n initialValue: \"line\"\n },\n highlightActiveLine: {\n set: function () { this.$updateHighlightActiveLine(); },\n initialValue: true\n },\n highlightSelectedWord: {\n set: function (shouldHighlight) { this.$onSelectionChange(); },\n initialValue: true\n },\n readOnly: {\n set: function (readOnly) {\n this.textInput.setReadOnly(readOnly);\n this.$resetCursorStyle();\n },\n initialValue: false\n },\n copyWithEmptySelection: {\n set: function (value) {\n this.textInput.setCopyWithEmptySelection(value);\n },\n initialValue: false\n },\n cursorStyle: {\n set: function (val) { this.$resetCursorStyle(); },\n values: [\"ace\", \"slim\", \"smooth\", \"wide\"],\n initialValue: \"ace\"\n },\n mergeUndoDeltas: {\n values: [false, true, \"always\"],\n initialValue: true\n },\n behavioursEnabled: { initialValue: true },\n wrapBehavioursEnabled: { initialValue: true },\n enableAutoIndent: { initialValue: true },\n autoScrollEditorIntoView: {\n set: function (val) { this.setAutoScrollEditorIntoView(val); }\n },\n keyboardHandler: {\n set: function (val) { this.setKeyboardHandler(val); },\n get: function () { return this.$keybindingId; },\n handlesSet: true\n },\n value: {\n set: function (val) { this.session.setValue(val); },\n get: function () { return this.getValue(); },\n handlesSet: true,\n hidden: true\n },\n session: {\n set: function (val) { this.setSession(val); },\n get: function () { return this.session; },\n handlesSet: true,\n hidden: true\n },\n showLineNumbers: {\n set: function (show) {\n this.renderer.$gutterLayer.setShowLineNumbers(show);\n this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER);\n if (show && this.$relativeLineNumbers)\n relativeNumberRenderer.attach(this);\n else\n relativeNumberRenderer.detach(this);\n },\n initialValue: true\n },\n relativeLineNumbers: {\n set: function (value) {\n if (this.$showLineNumbers && value)\n relativeNumberRenderer.attach(this);\n else\n relativeNumberRenderer.detach(this);\n }\n },\n placeholder: {\n set: function (message) {\n if (!this.$updatePlaceholder) {\n this.$updatePlaceholder = function () {\n var hasValue = this.session && (this.renderer.$composition ||\n this.session.getLength() > 1 || this.session.getLine(0).length > 0);\n if (hasValue && this.renderer.placeholderNode) {\n this.renderer.off(\"afterRender\", this.$updatePlaceholder);\n dom.removeCssClass(this.container, \"ace_hasPlaceholder\");\n this.renderer.placeholderNode.remove();\n this.renderer.placeholderNode = null;\n }\n else if (!hasValue && !this.renderer.placeholderNode) {\n this.renderer.on(\"afterRender\", this.$updatePlaceholder);\n dom.addCssClass(this.container, \"ace_hasPlaceholder\");\n var el = dom.createElement(\"div\");\n el.className = \"ace_placeholder\";\n el.textContent = this.$placeholder || \"\";\n this.renderer.placeholderNode = el;\n this.renderer.content.appendChild(this.renderer.placeholderNode);\n }\n else if (!hasValue && this.renderer.placeholderNode) {\n this.renderer.placeholderNode.textContent = this.$placeholder || \"\";\n }\n }.bind(this);\n this.on(\"input\", this.$updatePlaceholder);\n }\n this.$updatePlaceholder();\n }\n },\n enableKeyboardAccessibility: {\n set: function (value) {\n var blurCommand = {\n name: \"blurTextInput\",\n description: \"Set focus to the editor content div to allow tabbing through the page\",\n bindKey: \"Esc\",\n exec: function (editor) {\n editor.blur();\n editor.renderer.scroller.focus();\n },\n readOnly: true\n };\n var focusOnEnterKeyup = function (e) {\n if (e.target == this.renderer.scroller && e.keyCode === keys['enter']) {\n e.preventDefault();\n var row = this.getCursorPosition().row;\n if (!this.isRowVisible(row))\n this.scrollToLine(row, true, true);\n this.focus();\n }\n };\n var gutterKeyboardHandler;\n if (value) {\n this.renderer.enableKeyboardAccessibility = true;\n this.renderer.keyboardFocusClassName = \"ace_keyboard-focus\";\n this.textInput.getElement().setAttribute(\"tabindex\", -1);\n this.textInput.setNumberOfExtraLines(useragent.isWin ? 3 : 0);\n this.renderer.scroller.setAttribute(\"tabindex\", 0);\n this.renderer.scroller.setAttribute(\"role\", \"group\");\n this.renderer.scroller.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName);\n this.renderer.scroller.setAttribute(\"aria-label\", nls(\"Editor content, press Enter to start editing, press Escape to exit\"));\n this.renderer.scroller.addEventListener(\"keyup\", focusOnEnterKeyup.bind(this));\n this.commands.addCommand(blurCommand);\n this.renderer.$gutter.setAttribute(\"tabindex\", 0);\n this.renderer.$gutter.setAttribute(\"aria-hidden\", false);\n this.renderer.$gutter.setAttribute(\"role\", \"group\");\n this.renderer.$gutter.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n this.renderer.$gutter.setAttribute(\"aria-label\", nls(\"Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit\"));\n this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName);\n this.renderer.content.setAttribute(\"aria-hidden\", true);\n if (!gutterKeyboardHandler)\n gutterKeyboardHandler = new GutterKeyboardHandler(this);\n gutterKeyboardHandler.addListener();\n }\n else {\n this.renderer.enableKeyboardAccessibility = false;\n this.textInput.getElement().setAttribute(\"tabindex\", 0);\n this.textInput.setNumberOfExtraLines(0);\n this.renderer.scroller.setAttribute(\"tabindex\", -1);\n this.renderer.scroller.removeAttribute(\"role\");\n this.renderer.scroller.removeAttribute(\"aria-roledescription\");\n this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName);\n this.renderer.scroller.removeAttribute(\"aria-label\");\n this.renderer.scroller.removeEventListener(\"keyup\", focusOnEnterKeyup.bind(this));\n this.commands.removeCommand(blurCommand);\n this.renderer.content.removeAttribute(\"aria-hidden\");\n this.renderer.$gutter.setAttribute(\"tabindex\", -1);\n this.renderer.$gutter.setAttribute(\"aria-hidden\", true);\n this.renderer.$gutter.removeAttribute(\"role\");\n this.renderer.$gutter.removeAttribute(\"aria-roledescription\");\n this.renderer.$gutter.removeAttribute(\"aria-label\");\n this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName);\n if (gutterKeyboardHandler)\n gutterKeyboardHandler.removeListener();\n }\n },\n initialValue: false\n },\n customScrollbar: \"renderer\",\n hScrollBarAlwaysVisible: \"renderer\",\n vScrollBarAlwaysVisible: \"renderer\",\n highlightGutterLine: \"renderer\",\n animatedScroll: \"renderer\",\n showInvisibles: \"renderer\",\n showPrintMargin: \"renderer\",\n printMarginColumn: \"renderer\",\n printMargin: \"renderer\",\n fadeFoldWidgets: \"renderer\",\n showFoldWidgets: \"renderer\",\n displayIndentGuides: \"renderer\",\n highlightIndentGuides: \"renderer\",\n showGutter: \"renderer\",\n fontSize: \"renderer\",\n fontFamily: \"renderer\",\n maxLines: \"renderer\",\n minLines: \"renderer\",\n scrollPastEnd: \"renderer\",\n fixedWidthGutter: \"renderer\",\n theme: \"renderer\",\n hasCssTransforms: \"renderer\",\n maxPixelHeight: \"renderer\",\n useTextareaForIME: \"renderer\",\n useResizeObserver: \"renderer\",\n useSvgGutterIcons: \"renderer\",\n showFoldedAnnotations: \"renderer\",\n scrollSpeed: \"$mouseHandler\",\n dragDelay: \"$mouseHandler\",\n dragEnabled: \"$mouseHandler\",\n focusTimeout: \"$mouseHandler\",\n tooltipFollowsMouse: \"$mouseHandler\",\n firstLineNumber: \"session\",\n overwrite: \"session\",\n newLineMode: \"session\",\n useWorker: \"session\",\n useSoftTabs: \"session\",\n navigateWithinSoftTabs: \"session\",\n tabSize: \"session\",\n wrap: \"session\",\n indentedSoftWrap: \"session\",\n foldStyle: \"session\",\n mode: \"session\"\n});\nvar relativeNumberRenderer = {\n getText: function (session, row) {\n return (Math.abs(session.selection.lead.row - row) || (row + 1 + (row < 9 ? \"\\xb7\" : \"\"))) + \"\";\n },\n getWidth: function (session, lastLineNumber, config) {\n return Math.max(lastLineNumber.toString().length, (config.lastRow + 1).toString().length, 2) * config.characterWidth;\n },\n update: function (e, editor) {\n editor.renderer.$loop.schedule(editor.renderer.CHANGE_GUTTER);\n },\n attach: function (editor) {\n editor.renderer.$gutterLayer.$renderer = this;\n editor.on(\"changeSelection\", this.update);\n this.update(null, editor);\n },\n detach: function (editor) {\n if (editor.renderer.$gutterLayer.$renderer == this)\n editor.renderer.$gutterLayer.$renderer = null;\n editor.off(\"changeSelection\", this.update);\n this.update(null, editor);\n }\n};\nexports.Editor = Editor;\n\n});\n\nace.define(\"ace/layer/lines\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar Lines = /** @class */ (function () {\n function Lines(element, canvasHeight) {\n this.element = element;\n this.canvasHeight = canvasHeight || 500000;\n this.element.style.height = (this.canvasHeight * 2) + \"px\";\n this.cells = [];\n this.cellCache = [];\n this.$offsetCoefficient = 0;\n }\n Lines.prototype.moveContainer = function (config) {\n dom.translate(this.element, 0, -((config.firstRowScreen * config.lineHeight) % this.canvasHeight) - config.offset * this.$offsetCoefficient);\n };\n Lines.prototype.pageChanged = function (oldConfig, newConfig) {\n return (Math.floor((oldConfig.firstRowScreen * oldConfig.lineHeight) / this.canvasHeight) !==\n Math.floor((newConfig.firstRowScreen * newConfig.lineHeight) / this.canvasHeight));\n };\n Lines.prototype.computeLineTop = function (row, config, session) {\n var screenTop = config.firstRowScreen * config.lineHeight;\n var screenPage = Math.floor(screenTop / this.canvasHeight);\n var lineTop = session.documentToScreenRow(row, 0) * config.lineHeight;\n return lineTop - (screenPage * this.canvasHeight);\n };\n Lines.prototype.computeLineHeight = function (row, config, session) {\n return config.lineHeight * session.getRowLineCount(row);\n };\n Lines.prototype.getLength = function () {\n return this.cells.length;\n };\n Lines.prototype.get = function (index) {\n return this.cells[index];\n };\n Lines.prototype.shift = function () {\n this.$cacheCell(this.cells.shift());\n };\n Lines.prototype.pop = function () {\n this.$cacheCell(this.cells.pop());\n };\n Lines.prototype.push = function (cell) {\n if (Array.isArray(cell)) {\n this.cells.push.apply(this.cells, cell);\n var fragment = dom.createFragment(this.element);\n for (var i = 0; i < cell.length; i++) {\n fragment.appendChild(cell[i].element);\n }\n this.element.appendChild(fragment);\n }\n else {\n this.cells.push(cell);\n this.element.appendChild(cell.element);\n }\n };\n Lines.prototype.unshift = function (cell) {\n if (Array.isArray(cell)) {\n this.cells.unshift.apply(this.cells, cell);\n var fragment = dom.createFragment(this.element);\n for (var i = 0; i < cell.length; i++) {\n fragment.appendChild(cell[i].element);\n }\n if (this.element.firstChild)\n this.element.insertBefore(fragment, this.element.firstChild);\n else\n this.element.appendChild(fragment);\n }\n else {\n this.cells.unshift(cell);\n this.element.insertAdjacentElement(\"afterbegin\", cell.element);\n }\n };\n Lines.prototype.last = function () {\n if (this.cells.length)\n return this.cells[this.cells.length - 1];\n else\n return null;\n };\n Lines.prototype.$cacheCell = function (cell) {\n if (!cell)\n return;\n cell.element.remove();\n this.cellCache.push(cell);\n };\n Lines.prototype.createCell = function (row, config, session, initElement) {\n var cell = this.cellCache.pop();\n if (!cell) {\n var element = dom.createElement(\"div\");\n if (initElement)\n initElement(element);\n this.element.appendChild(element);\n cell = {\n element: element,\n text: \"\",\n row: row\n };\n }\n cell.row = row;\n return cell;\n };\n return Lines;\n}());\nexports.Lines = Lines;\n\n});\n\nace.define(\"ace/layer/gutter\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/layer/lines\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar Lines = require(\"./lines\").Lines;\nvar nls = require(\"../config\").nls;\nvar Gutter = /** @class */ (function () {\n function Gutter(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_gutter-layer\";\n parentEl.appendChild(this.element);\n this.setShowFoldWidgets(this.$showFoldWidgets);\n this.gutterWidth = 0;\n this.$annotations = [];\n this.$updateAnnotations = this.$updateAnnotations.bind(this);\n this.$lines = new Lines(this.element);\n this.$lines.$offsetCoefficient = 1;\n }\n Gutter.prototype.setSession = function (session) {\n if (this.session)\n this.session.off(\"change\", this.$updateAnnotations);\n this.session = session;\n if (session)\n session.on(\"change\", this.$updateAnnotations);\n };\n Gutter.prototype.addGutterDecoration = function (row, className) {\n if (window.console)\n console.warn && console.warn(\"deprecated use session.addGutterDecoration\");\n this.session.addGutterDecoration(row, className);\n };\n Gutter.prototype.removeGutterDecoration = function (row, className) {\n if (window.console)\n console.warn && console.warn(\"deprecated use session.removeGutterDecoration\");\n this.session.removeGutterDecoration(row, className);\n };\n Gutter.prototype.setAnnotations = function (annotations) {\n this.$annotations = [];\n for (var i = 0; i < annotations.length; i++) {\n var annotation = annotations[i];\n var row = annotation.row;\n var rowInfo = this.$annotations[row];\n if (!rowInfo)\n rowInfo = this.$annotations[row] = { text: [], type: [] };\n var annoText = annotation.text;\n var annoType = annotation.type;\n annoText = annoText ? lang.escapeHTML(annoText) : annotation.html || \"\";\n if (rowInfo.text.indexOf(annoText) === -1) {\n rowInfo.text.push(annoText);\n rowInfo.type.push(annoType);\n }\n var className = annotation.className;\n if (className)\n rowInfo.className = className;\n else if (annoType == \"error\")\n rowInfo.className = \" ace_error\";\n else if (annoType == \"warning\" && rowInfo.className != \" ace_error\")\n rowInfo.className = \" ace_warning\";\n else if (annoType == \"info\" && (!rowInfo.className))\n rowInfo.className = \" ace_info\";\n }\n };\n Gutter.prototype.$updateAnnotations = function (delta) {\n if (!this.$annotations.length)\n return;\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n }\n else if (delta.action == 'remove') {\n this.$annotations.splice(firstRow, len + 1, null);\n }\n else {\n var args = new Array(len + 1);\n args.unshift(firstRow, 1);\n this.$annotations.splice.apply(this.$annotations, args);\n }\n };\n Gutter.prototype.update = function (config) {\n this.config = config;\n var session = this.session;\n var firstRow = config.firstRow;\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n session.getLength() - 1);\n this.oldLastRow = lastRow;\n this.config = config;\n this.$lines.moveContainer(config);\n this.$updateCursorRow();\n var fold = session.getNextFoldLine(firstRow);\n var foldStart = fold ? fold.start.row : Infinity;\n var cell = null;\n var index = -1;\n var row = firstRow;\n while (true) {\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = session.getNextFoldLine(row, fold);\n foldStart = fold ? fold.start.row : Infinity;\n }\n if (row > lastRow) {\n while (this.$lines.getLength() > index + 1)\n this.$lines.pop();\n break;\n }\n cell = this.$lines.get(++index);\n if (cell) {\n cell.row = row;\n }\n else {\n cell = this.$lines.createCell(row, config, this.session, onCreateCell);\n this.$lines.push(cell);\n }\n this.$renderCell(cell, config, fold, row);\n row++;\n }\n this._signal(\"afterRender\");\n this.$updateGutterWidth(config);\n };\n Gutter.prototype.$updateGutterWidth = function (config) {\n var session = this.session;\n var gutterRenderer = session.gutterRenderer || this.$renderer;\n var firstLineNumber = session.$firstLineNumber;\n var lastLineText = this.$lines.last() ? this.$lines.last().text : \"\";\n if (this.$fixedWidth || session.$useWrapMode)\n lastLineText = session.getLength() + firstLineNumber - 1;\n var gutterWidth = gutterRenderer\n ? gutterRenderer.getWidth(session, lastLineText, config)\n : lastLineText.toString().length * config.characterWidth;\n var padding = this.$padding || this.$computePadding();\n gutterWidth += padding.left + padding.right;\n if (gutterWidth !== this.gutterWidth && !isNaN(gutterWidth)) {\n this.gutterWidth = gutterWidth;\n this.element.parentNode.style.width =\n this.element.style.width = Math.ceil(this.gutterWidth) + \"px\";\n this._signal(\"changeGutterWidth\", gutterWidth);\n }\n };\n Gutter.prototype.$updateCursorRow = function () {\n if (!this.$highlightGutterLine)\n return;\n var position = this.session.selection.getCursor();\n if (this.$cursorRow === position.row)\n return;\n this.$cursorRow = position.row;\n };\n Gutter.prototype.updateLineHighlight = function () {\n if (!this.$highlightGutterLine)\n return;\n var row = this.session.selection.cursor.row;\n this.$cursorRow = row;\n if (this.$cursorCell && this.$cursorCell.row == row)\n return;\n if (this.$cursorCell)\n this.$cursorCell.element.className = this.$cursorCell.element.className.replace(\"ace_gutter-active-line \", \"\");\n var cells = this.$lines.cells;\n this.$cursorCell = null;\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n if (cell.row >= this.$cursorRow) {\n if (cell.row > this.$cursorRow) {\n var fold = this.session.getFoldLine(this.$cursorRow);\n if (i > 0 && fold && fold.start.row == cells[i - 1].row)\n cell = cells[i - 1];\n else\n break;\n }\n cell.element.className = \"ace_gutter-active-line \" + cell.element.className;\n this.$cursorCell = cell;\n break;\n }\n }\n };\n Gutter.prototype.scrollLines = function (config) {\n var oldConfig = this.config;\n this.config = config;\n this.$updateCursorRow();\n if (this.$lines.pageChanged(oldConfig, config))\n return this.update(config);\n this.$lines.moveContainer(config);\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n this.session.getLength() - 1);\n var oldLastRow = this.oldLastRow;\n this.oldLastRow = lastRow;\n if (!oldConfig || oldLastRow < config.firstRow)\n return this.update(config);\n if (lastRow < oldConfig.firstRow)\n return this.update(config);\n if (oldConfig.firstRow < config.firstRow)\n for (var row = this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row > 0; row--)\n this.$lines.shift();\n if (oldLastRow > lastRow)\n for (var row = this.session.getFoldedRowCount(lastRow + 1, oldLastRow); row > 0; row--)\n this.$lines.pop();\n if (config.firstRow < oldConfig.firstRow) {\n this.$lines.unshift(this.$renderLines(config, config.firstRow, oldConfig.firstRow - 1));\n }\n if (lastRow > oldLastRow) {\n this.$lines.push(this.$renderLines(config, oldLastRow + 1, lastRow));\n }\n this.updateLineHighlight();\n this._signal(\"afterRender\");\n this.$updateGutterWidth(config);\n };\n Gutter.prototype.$renderLines = function (config, firstRow, lastRow) {\n var fragment = [];\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n var cell = this.$lines.createCell(row, config, this.session, onCreateCell);\n this.$renderCell(cell, config, foldLine, row);\n fragment.push(cell);\n row++;\n }\n return fragment;\n };\n Gutter.prototype.$renderCell = function (cell, config, fold, row) {\n var element = cell.element;\n var session = this.session;\n var textNode = element.childNodes[0];\n var foldWidget = element.childNodes[1];\n var annotationNode = element.childNodes[2];\n var annotationIconNode = annotationNode.firstChild;\n var firstLineNumber = session.$firstLineNumber;\n var breakpoints = session.$breakpoints;\n var decorations = session.$decorations;\n var gutterRenderer = session.gutterRenderer || this.$renderer;\n var foldWidgets = this.$showFoldWidgets && session.foldWidgets;\n var foldStart = fold ? fold.start.row : Number.MAX_VALUE;\n var lineHeight = config.lineHeight + \"px\";\n var className = this.$useSvgGutterIcons ? \"ace_gutter-cell_svg-icons \" : \"ace_gutter-cell \";\n var iconClassName = this.$useSvgGutterIcons ? \"ace_icon_svg\" : \"ace_icon\";\n var rowText = (gutterRenderer\n ? gutterRenderer.getText(session, row)\n : row + firstLineNumber).toString();\n if (this.$highlightGutterLine) {\n if (row == this.$cursorRow || (fold && row < this.$cursorRow && row >= foldStart && this.$cursorRow <= fold.end.row)) {\n className += \"ace_gutter-active-line \";\n if (this.$cursorCell != cell) {\n if (this.$cursorCell)\n this.$cursorCell.element.className = this.$cursorCell.element.className.replace(\"ace_gutter-active-line \", \"\");\n this.$cursorCell = cell;\n }\n }\n }\n if (breakpoints[row])\n className += breakpoints[row];\n if (decorations[row])\n className += decorations[row];\n if (this.$annotations[row] && row !== foldStart)\n className += this.$annotations[row].className;\n if (foldWidgets) {\n var c = foldWidgets[row];\n if (c == null)\n c = foldWidgets[row] = session.getFoldWidget(row);\n }\n if (c) {\n var foldClass = \"ace_fold-widget ace_\" + c;\n var isClosedFold = c == \"start\" && row == foldStart && row < fold.end.row;\n if (isClosedFold) {\n foldClass += \" ace_closed\";\n var foldAnnotationClass = '';\n var annotationInFold = false;\n for (var i = row + 1; i <= fold.end.row; i++) {\n if (!this.$annotations[i])\n continue;\n if (this.$annotations[i].className === \" ace_error\") {\n annotationInFold = true;\n foldAnnotationClass = \" ace_error_fold\";\n break;\n }\n if (this.$annotations[i].className === \" ace_warning\") {\n annotationInFold = true;\n foldAnnotationClass = \" ace_warning_fold\";\n continue;\n }\n }\n className += foldAnnotationClass;\n }\n else\n foldClass += \" ace_open\";\n if (foldWidget.className != foldClass)\n foldWidget.className = foldClass;\n dom.setStyle(foldWidget.style, \"height\", lineHeight);\n dom.setStyle(foldWidget.style, \"display\", \"inline-block\");\n foldWidget.setAttribute(\"role\", \"button\");\n foldWidget.setAttribute(\"tabindex\", \"-1\");\n var foldRange = session.getFoldWidgetRange(row);\n if (foldRange)\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, rows $0 through $1\", [foldRange.start.row + 1, foldRange.end.row + 1]));\n else {\n if (fold)\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, rows $0 through $1\", [fold.start.row + 1, fold.end.row + 1]));\n else\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, row $0\", [row + 1]));\n }\n if (isClosedFold) {\n foldWidget.setAttribute(\"aria-expanded\", \"false\");\n foldWidget.setAttribute(\"title\", nls(\"Unfold code\"));\n }\n else {\n foldWidget.setAttribute(\"aria-expanded\", \"true\");\n foldWidget.setAttribute(\"title\", nls(\"Fold code\"));\n }\n }\n else {\n if (foldWidget) {\n dom.setStyle(foldWidget.style, \"display\", \"none\");\n foldWidget.setAttribute(\"tabindex\", \"0\");\n foldWidget.removeAttribute(\"role\");\n foldWidget.removeAttribute(\"aria-label\");\n }\n }\n if (annotationInFold && this.$showFoldedAnnotations) {\n annotationNode.className = \"ace_gutter_annotation\";\n annotationIconNode.className = iconClassName;\n annotationIconNode.className += foldAnnotationClass;\n dom.setStyle(annotationIconNode.style, \"height\", lineHeight);\n dom.setStyle(annotationNode.style, \"display\", \"block\");\n dom.setStyle(annotationNode.style, \"height\", lineHeight);\n annotationNode.setAttribute(\"aria-label\", nls(\"Read annotations row $0\", [rowText]));\n annotationNode.setAttribute(\"tabindex\", \"-1\");\n annotationNode.setAttribute(\"role\", \"button\");\n }\n else if (this.$annotations[row]) {\n annotationNode.className = \"ace_gutter_annotation\";\n annotationIconNode.className = iconClassName;\n if (this.$useSvgGutterIcons)\n annotationIconNode.className += this.$annotations[row].className;\n else\n element.classList.add(this.$annotations[row].className.replace(\" \", \"\"));\n dom.setStyle(annotationIconNode.style, \"height\", lineHeight);\n dom.setStyle(annotationNode.style, \"display\", \"block\");\n dom.setStyle(annotationNode.style, \"height\", lineHeight);\n annotationNode.setAttribute(\"aria-label\", nls(\"Read annotations row $0\", [rowText]));\n annotationNode.setAttribute(\"tabindex\", \"-1\");\n annotationNode.setAttribute(\"role\", \"button\");\n }\n else {\n dom.setStyle(annotationNode.style, \"display\", \"none\");\n annotationNode.removeAttribute(\"aria-label\");\n annotationNode.removeAttribute(\"role\");\n annotationNode.setAttribute(\"tabindex\", \"0\");\n }\n if (rowText !== textNode.data) {\n textNode.data = rowText;\n }\n if (element.className != className)\n element.className = className;\n dom.setStyle(cell.element.style, \"height\", this.$lines.computeLineHeight(row, config, session) + \"px\");\n dom.setStyle(cell.element.style, \"top\", this.$lines.computeLineTop(row, config, session) + \"px\");\n cell.text = rowText;\n if (annotationNode.style.display === \"none\" && foldWidget.style.display === \"none\")\n cell.element.setAttribute(\"aria-hidden\", true);\n else\n cell.element.setAttribute(\"aria-hidden\", false);\n return cell;\n };\n Gutter.prototype.setHighlightGutterLine = function (highlightGutterLine) {\n this.$highlightGutterLine = highlightGutterLine;\n };\n Gutter.prototype.setShowLineNumbers = function (show) {\n this.$renderer = !show && {\n getWidth: function () { return 0; },\n getText: function () { return \"\"; }\n };\n };\n Gutter.prototype.getShowLineNumbers = function () {\n return this.$showLineNumbers;\n };\n Gutter.prototype.setShowFoldWidgets = function (show) {\n if (show)\n dom.addCssClass(this.element, \"ace_folding-enabled\");\n else\n dom.removeCssClass(this.element, \"ace_folding-enabled\");\n this.$showFoldWidgets = show;\n this.$padding = null;\n };\n Gutter.prototype.getShowFoldWidgets = function () {\n return this.$showFoldWidgets;\n };\n Gutter.prototype.$computePadding = function () {\n if (!this.element.firstChild)\n return { left: 0, right: 0 };\n var style = dom.computedStyle(this.element.firstChild);\n this.$padding = {};\n this.$padding.left = (parseInt(style.borderLeftWidth) || 0)\n + (parseInt(style.paddingLeft) || 0) + 1;\n this.$padding.right = (parseInt(style.borderRightWidth) || 0)\n + (parseInt(style.paddingRight) || 0);\n return this.$padding;\n };\n Gutter.prototype.getRegion = function (point) {\n var padding = this.$padding || this.$computePadding();\n var rect = this.element.getBoundingClientRect();\n if (point.x < padding.left + rect.left)\n return \"markers\";\n if (this.$showFoldWidgets && point.x > rect.right - padding.right)\n return \"foldWidgets\";\n };\n return Gutter;\n}());\nGutter.prototype.$fixedWidth = false;\nGutter.prototype.$highlightGutterLine = true;\nGutter.prototype.$renderer = \"\";\nGutter.prototype.$showLineNumbers = true;\nGutter.prototype.$showFoldWidgets = true;\noop.implement(Gutter.prototype, EventEmitter);\nfunction onCreateCell(element) {\n var textNode = document.createTextNode('');\n element.appendChild(textNode);\n var foldWidget = dom.createElement(\"span\");\n element.appendChild(foldWidget);\n var annotationNode = dom.createElement(\"span\");\n element.appendChild(annotationNode);\n var annotationIconNode = dom.createElement(\"span\");\n annotationNode.appendChild(annotationIconNode);\n return element;\n}\nexports.Gutter = Gutter;\n\n});\n\nace.define(\"ace/layer/marker\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar dom = require(\"../lib/dom\");\nvar Marker = /** @class */ (function () {\n function Marker(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_marker-layer\";\n parentEl.appendChild(this.element);\n }\n Marker.prototype.setPadding = function (padding) {\n this.$padding = padding;\n };\n Marker.prototype.setSession = function (session) {\n this.session = session;\n };\n Marker.prototype.setMarkers = function (markers) {\n this.markers = markers;\n };\n Marker.prototype.elt = function (className, css) {\n var x = this.i != -1 && this.element.childNodes[this.i];\n if (!x) {\n x = document.createElement(\"div\");\n this.element.appendChild(x);\n this.i = -1;\n }\n else {\n this.i++;\n }\n x.style.cssText = css;\n x.className = className;\n };\n Marker.prototype.update = function (config) {\n if (!config)\n return;\n this.config = config;\n this.i = 0;\n var html;\n for (var key in this.markers) {\n var marker = this.markers[key];\n if (!marker.range) {\n marker.update(html, this, this.session, config);\n continue;\n }\n var range = marker.range.clipRows(config.firstRow, config.lastRow);\n if (range.isEmpty())\n continue;\n range = range.toScreenRange(this.session);\n if (marker.renderer) {\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n marker.renderer(html, range, left, top, config);\n }\n else if (marker.type == \"fullLine\") {\n this.drawFullLineMarker(html, range, marker.clazz, config);\n }\n else if (marker.type == \"screenLine\") {\n this.drawScreenLineMarker(html, range, marker.clazz, config);\n }\n else if (range.isMultiLine()) {\n if (marker.type == \"text\")\n this.drawTextMarker(html, range, marker.clazz, config);\n else\n this.drawMultiLineMarker(html, range, marker.clazz, config);\n }\n else {\n this.drawSingleLineMarker(html, range, marker.clazz + \" ace_start\" + \" ace_br15\", config);\n }\n }\n if (this.i != -1) {\n while (this.i < this.element.childElementCount)\n this.element.removeChild(this.element.lastChild);\n }\n };\n Marker.prototype.$getTop = function (row, layerConfig) {\n return (row - layerConfig.firstRowScreen) * layerConfig.lineHeight;\n };\n Marker.prototype.drawTextMarker = function (stringBuilder, range, clazz, layerConfig, extraStyle) {\n var session = this.session;\n var start = range.start.row;\n var end = range.end.row;\n var row = start;\n var prev = 0;\n var curr = 0;\n var next = session.getScreenLastRowColumn(row);\n var lineRange = new Range(row, range.start.column, row, curr);\n for (; row <= end; row++) {\n lineRange.start.row = lineRange.end.row = row;\n lineRange.start.column = row == start ? range.start.column : session.getRowWrapIndent(row);\n lineRange.end.column = next;\n prev = curr;\n curr = next;\n next = row + 1 < end ? session.getScreenLastRowColumn(row + 1) : row == end ? 0 : range.end.column;\n this.drawSingleLineMarker(stringBuilder, lineRange, clazz + (row == start ? \" ace_start\" : \"\") + \" ace_br\"\n + getBorderClass(row == start || row == start + 1 && range.start.column, prev < curr, curr > next, row == end), layerConfig, row == end ? 0 : 1, extraStyle);\n }\n };\n Marker.prototype.drawMultiLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var padding = this.$padding;\n var height = config.lineHeight;\n var top = this.$getTop(range.start.row, config);\n var left = padding + range.start.column * config.characterWidth;\n extraStyle = extraStyle || \"\";\n if (this.session.$bidiHandler.isBidiRow(range.start.row)) {\n var range1 = range.clone();\n range1.end.row = range1.start.row;\n range1.end.column = this.session.getLine(range1.start.row).length;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br1 ace_start\", config, null, extraStyle);\n }\n else {\n this.elt(clazz + \" ace_br1 ace_start\", \"height:\" + height + \"px;\" + \"right:0;\" + \"top:\" + top + \"px;left:\" + left + \"px;\" + (extraStyle || \"\"));\n }\n if (this.session.$bidiHandler.isBidiRow(range.end.row)) {\n var range1 = range.clone();\n range1.start.row = range1.end.row;\n range1.start.column = 0;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br12\", config, null, extraStyle);\n }\n else {\n top = this.$getTop(range.end.row, config);\n var width = range.end.column * config.characterWidth;\n this.elt(clazz + \" ace_br12\", \"height:\" + height + \"px;\" +\n \"width:\" + width + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + padding + \"px;\" + (extraStyle || \"\"));\n }\n height = (range.end.row - range.start.row - 1) * config.lineHeight;\n if (height <= 0)\n return;\n top = this.$getTop(range.start.row + 1, config);\n var radiusClass = (range.start.column ? 1 : 0) | (range.end.column ? 0 : 8);\n this.elt(clazz + (radiusClass ? \" ace_br\" + radiusClass : \"\"), \"height:\" + height + \"px;\" +\n \"right:0;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + padding + \"px;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawSingleLineMarker = function (stringBuilder, range, clazz, config, extraLength, extraStyle) {\n if (this.session.$bidiHandler.isBidiRow(range.start.row))\n return this.drawBidiSingleLineMarker(stringBuilder, range, clazz, config, extraLength, extraStyle);\n var height = config.lineHeight;\n var width = (range.end.column + (extraLength || 0) - range.start.column) * config.characterWidth;\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"width:\" + width + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + left + \"px;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawBidiSingleLineMarker = function (stringBuilder, range, clazz, config, extraLength, extraStyle) {\n var height = config.lineHeight, top = this.$getTop(range.start.row, config), padding = this.$padding;\n var selections = this.session.$bidiHandler.getSelections(range.start.column, range.end.column);\n selections.forEach(function (selection) {\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"width:\" + (selection.width + (extraLength || 0)) + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + (padding + selection.left) + \"px;\" + (extraStyle || \"\"));\n }, this);\n };\n Marker.prototype.drawFullLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n if (range.start.row != range.end.row)\n height += this.$getTop(range.end.row, config) - top;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:0;right:0;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawScreenLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:0;right:0;\" + (extraStyle || \"\"));\n };\n return Marker;\n}());\nMarker.prototype.$padding = 0;\nfunction getBorderClass(tl, tr, br, bl) {\n return (tl ? 1 : 0) | (tr ? 2 : 0) | (br ? 4 : 0) | (bl ? 8 : 0);\n}\nexports.Marker = Marker;\n\n});\n\nace.define(\"ace/layer/text_util\",[\"require\",\"exports\",\"module\"], function(require, exports, module){// Tokens for which Ace just uses a simple TextNode and does not add any special className.\nvar textTokens = new Set([\"text\", \"rparen\", \"lparen\"]);\nexports.isTextToken = function (tokenType) {\n return textTokens.has(tokenType);\n};\n\n});\n\nace.define(\"ace/layer/text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/layer/lines\",\"ace/lib/event_emitter\",\"ace/config\",\"ace/layer/text_util\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar Lines = require(\"./lines\").Lines;\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar nls = require(\"../config\").nls;\nvar isTextToken = require(\"./text_util\").isTextToken;\nvar Text = /** @class */ (function () {\n function Text(parentEl) {\n this.dom = dom;\n this.element = this.dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_text-layer\";\n parentEl.appendChild(this.element);\n this.$updateEolChar = this.$updateEolChar.bind(this);\n this.$lines = new Lines(this.element);\n }\n Text.prototype.$updateEolChar = function () {\n var doc = this.session.doc;\n var unixMode = doc.getNewLineCharacter() == \"\\n\" && doc.getNewLineMode() != \"windows\";\n var EOL_CHAR = unixMode ? this.EOL_CHAR_LF : this.EOL_CHAR_CRLF;\n if (this.EOL_CHAR != EOL_CHAR) {\n this.EOL_CHAR = EOL_CHAR;\n return true;\n }\n };\n Text.prototype.setPadding = function (padding) {\n this.$padding = padding;\n this.element.style.margin = \"0 \" + padding + \"px\";\n };\n Text.prototype.getLineHeight = function () {\n return this.$fontMetrics.$characterSize.height || 0;\n };\n Text.prototype.getCharacterWidth = function () {\n return this.$fontMetrics.$characterSize.width || 0;\n };\n Text.prototype.$setFontMetrics = function (measure) {\n this.$fontMetrics = measure;\n this.$fontMetrics.on(\"changeCharacterSize\", function (e) {\n this._signal(\"changeCharacterSize\", e);\n }.bind(this));\n this.$pollSizeChanges();\n };\n Text.prototype.checkForSizeChanges = function () {\n this.$fontMetrics.checkForSizeChanges();\n };\n Text.prototype.$pollSizeChanges = function () {\n return this.$pollSizeChangesTimer = this.$fontMetrics.$pollSizeChanges();\n };\n Text.prototype.setSession = function (session) {\n this.session = session;\n if (session)\n this.$computeTabString();\n };\n Text.prototype.setShowInvisibles = function (showInvisibles) {\n if (this.showInvisibles == showInvisibles)\n return false;\n this.showInvisibles = showInvisibles;\n if (typeof showInvisibles == \"string\") {\n this.showSpaces = /tab/i.test(showInvisibles);\n this.showTabs = /space/i.test(showInvisibles);\n this.showEOL = /eol/i.test(showInvisibles);\n }\n else {\n this.showSpaces = this.showTabs = this.showEOL = showInvisibles;\n }\n this.$computeTabString();\n return true;\n };\n Text.prototype.setDisplayIndentGuides = function (display) {\n if (this.displayIndentGuides == display)\n return false;\n this.displayIndentGuides = display;\n this.$computeTabString();\n return true;\n };\n Text.prototype.setHighlightIndentGuides = function (highlight) {\n if (this.$highlightIndentGuides === highlight)\n return false;\n this.$highlightIndentGuides = highlight;\n return highlight;\n };\n Text.prototype.$computeTabString = function () {\n var tabSize = this.session.getTabSize();\n this.tabSize = tabSize;\n var tabStr = this.$tabStrings = [0];\n for (var i = 1; i < tabSize + 1; i++) {\n if (this.showTabs) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_tab\";\n span.textContent = lang.stringRepeat(this.TAB_CHAR, i);\n tabStr.push(span);\n }\n else {\n tabStr.push(this.dom.createTextNode(lang.stringRepeat(\" \", i), this.element));\n }\n }\n if (this.displayIndentGuides) {\n this.$indentGuideRe = /\\s\\S| \\t|\\t |\\s$/;\n var className = \"ace_indent-guide\";\n var spaceClass = this.showSpaces ? \" ace_invisible ace_invisible_space\" : \"\";\n var spaceContent = this.showSpaces\n ? lang.stringRepeat(this.SPACE_CHAR, this.tabSize)\n : lang.stringRepeat(\" \", this.tabSize);\n var tabClass = this.showTabs ? \" ace_invisible ace_invisible_tab\" : \"\";\n var tabContent = this.showTabs\n ? lang.stringRepeat(this.TAB_CHAR, this.tabSize)\n : spaceContent;\n var span = this.dom.createElement(\"span\");\n span.className = className + spaceClass;\n span.textContent = spaceContent;\n this.$tabStrings[\" \"] = span;\n var span = this.dom.createElement(\"span\");\n span.className = className + tabClass;\n span.textContent = tabContent;\n this.$tabStrings[\"\\t\"] = span;\n }\n };\n Text.prototype.updateLines = function (config, firstRow, lastRow) {\n if (this.config.lastRow != config.lastRow ||\n this.config.firstRow != config.firstRow) {\n return this.update(config);\n }\n this.config = config;\n var first = Math.max(firstRow, config.firstRow);\n var last = Math.min(lastRow, config.lastRow);\n var lineElements = this.element.childNodes;\n var lineElementsIdx = 0;\n for (var row = config.firstRow; row < first; row++) {\n var foldLine = this.session.getFoldLine(row);\n if (foldLine) {\n if (foldLine.containsRow(first)) {\n first = foldLine.start.row;\n break;\n }\n else {\n row = foldLine.end.row;\n }\n }\n lineElementsIdx++;\n }\n var heightChanged = false;\n var row = first;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > last)\n break;\n var lineElement = lineElements[lineElementsIdx++];\n if (lineElement) {\n this.dom.removeChildren(lineElement);\n this.$renderLine(lineElement, row, row == foldStart ? foldLine : false);\n if (heightChanged)\n lineElement.style.top = this.$lines.computeLineTop(row, config, this.session) + \"px\";\n var height = (config.lineHeight * this.session.getRowLength(row)) + \"px\";\n if (lineElement.style.height != height) {\n heightChanged = true;\n lineElement.style.height = height;\n }\n }\n row++;\n }\n if (heightChanged) {\n while (lineElementsIdx < this.$lines.cells.length) {\n var cell = this.$lines.cells[lineElementsIdx++];\n cell.element.style.top = this.$lines.computeLineTop(cell.row, config, this.session) + \"px\";\n }\n }\n };\n Text.prototype.scrollLines = function (config) {\n var oldConfig = this.config;\n this.config = config;\n if (this.$lines.pageChanged(oldConfig, config))\n return this.update(config);\n this.$lines.moveContainer(config);\n var lastRow = config.lastRow;\n var oldLastRow = oldConfig ? oldConfig.lastRow : -1;\n if (!oldConfig || oldLastRow < config.firstRow)\n return this.update(config);\n if (lastRow < oldConfig.firstRow)\n return this.update(config);\n if (!oldConfig || oldConfig.lastRow < config.firstRow)\n return this.update(config);\n if (config.lastRow < oldConfig.firstRow)\n return this.update(config);\n if (oldConfig.firstRow < config.firstRow)\n for (var row = this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row > 0; row--)\n this.$lines.shift();\n if (oldConfig.lastRow > config.lastRow)\n for (var row = this.session.getFoldedRowCount(config.lastRow + 1, oldConfig.lastRow); row > 0; row--)\n this.$lines.pop();\n if (config.firstRow < oldConfig.firstRow) {\n this.$lines.unshift(this.$renderLinesFragment(config, config.firstRow, oldConfig.firstRow - 1));\n }\n if (config.lastRow > oldConfig.lastRow) {\n this.$lines.push(this.$renderLinesFragment(config, oldConfig.lastRow + 1, config.lastRow));\n }\n this.$highlightIndentGuide();\n };\n Text.prototype.$renderLinesFragment = function (config, firstRow, lastRow) {\n var fragment = [];\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n var line = this.$lines.createCell(row, config, this.session);\n var lineEl = line.element;\n this.dom.removeChildren(lineEl);\n dom.setStyle(lineEl.style, \"height\", this.$lines.computeLineHeight(row, config, this.session) + \"px\");\n dom.setStyle(lineEl.style, \"top\", this.$lines.computeLineTop(row, config, this.session) + \"px\");\n this.$renderLine(lineEl, row, row == foldStart ? foldLine : false);\n if (this.$useLineGroups()) {\n lineEl.className = \"ace_line_group\";\n }\n else {\n lineEl.className = \"ace_line\";\n }\n fragment.push(line);\n row++;\n }\n return fragment;\n };\n Text.prototype.update = function (config) {\n this.$lines.moveContainer(config);\n this.config = config;\n var firstRow = config.firstRow;\n var lastRow = config.lastRow;\n var lines = this.$lines;\n while (lines.getLength())\n lines.pop();\n lines.push(this.$renderLinesFragment(config, firstRow, lastRow));\n };\n Text.prototype.$renderToken = function (parent, screenColumn, token, value) {\n var self = this;\n var re = /(\\t)|( +)|([\\x00-\\x1f\\x80-\\xa0\\xad\\u1680\\u180E\\u2000-\\u200f\\u2028\\u2029\\u202F\\u205F\\uFEFF\\uFFF9-\\uFFFC\\u2066\\u2067\\u2068\\u202A\\u202B\\u202D\\u202E\\u202C\\u2069]+)|(\\u3000)|([\\u1100-\\u115F\\u11A3-\\u11A7\\u11FA-\\u11FF\\u2329-\\u232A\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3001-\\u303E\\u3041-\\u3096\\u3099-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u3190-\\u31BA\\u31C0-\\u31E3\\u31F0-\\u321E\\u3220-\\u3247\\u3250-\\u32FE\\u3300-\\u4DBF\\u4E00-\\uA48C\\uA490-\\uA4C6\\uA960-\\uA97C\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFAFF\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFF01-\\uFF60\\uFFE0-\\uFFE6]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF])/g;\n var valueFragment = this.dom.createFragment(this.element);\n var m;\n var i = 0;\n while (m = re.exec(value)) {\n var tab = m[1];\n var simpleSpace = m[2];\n var controlCharacter = m[3];\n var cjkSpace = m[4];\n var cjk = m[5];\n if (!self.showSpaces && simpleSpace)\n continue;\n var before = i != m.index ? value.slice(i, m.index) : \"\";\n i = m.index + m[0].length;\n if (before) {\n valueFragment.appendChild(this.dom.createTextNode(before, this.element));\n }\n if (tab) {\n var tabSize = self.session.getScreenTabSize(screenColumn + m.index);\n valueFragment.appendChild(self.$tabStrings[tabSize].cloneNode(true));\n screenColumn += tabSize - 1;\n }\n else if (simpleSpace) {\n if (self.showSpaces) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_space\";\n span.textContent = lang.stringRepeat(self.SPACE_CHAR, simpleSpace.length);\n valueFragment.appendChild(span);\n }\n else {\n valueFragment.appendChild(this.dom.createTextNode(simpleSpace, this.element));\n }\n }\n else if (controlCharacter) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_space ace_invalid\";\n span.textContent = lang.stringRepeat(self.SPACE_CHAR, controlCharacter.length);\n valueFragment.appendChild(span);\n }\n else if (cjkSpace) {\n screenColumn += 1;\n var span = this.dom.createElement(\"span\");\n span.style.width = (self.config.characterWidth * 2) + \"px\";\n span.className = self.showSpaces ? \"ace_cjk ace_invisible ace_invisible_space\" : \"ace_cjk\";\n span.textContent = self.showSpaces ? self.SPACE_CHAR : cjkSpace;\n valueFragment.appendChild(span);\n }\n else if (cjk) {\n screenColumn += 1;\n var span = this.dom.createElement(\"span\");\n span.style.width = (self.config.characterWidth * 2) + \"px\";\n span.className = \"ace_cjk\";\n span.textContent = cjk;\n valueFragment.appendChild(span);\n }\n }\n valueFragment.appendChild(this.dom.createTextNode(i ? value.slice(i) : value, this.element));\n if (!isTextToken(token.type)) {\n var classes = \"ace_\" + token.type.replace(/\\./g, \" ace_\");\n var span = this.dom.createElement(\"span\");\n if (token.type == \"fold\") {\n span.style.width = (token.value.length * this.config.characterWidth) + \"px\";\n span.setAttribute(\"title\", nls(\"Unfold code\"));\n }\n span.className = classes;\n span.appendChild(valueFragment);\n parent.appendChild(span);\n }\n else {\n parent.appendChild(valueFragment);\n }\n return screenColumn + value.length;\n };\n Text.prototype.renderIndentGuide = function (parent, value, max) {\n var cols = value.search(this.$indentGuideRe);\n if (cols <= 0 || cols >= max)\n return value;\n if (value[0] == \" \") {\n cols -= cols % this.tabSize;\n var count = cols / this.tabSize;\n for (var i = 0; i < count; i++) {\n parent.appendChild(this.$tabStrings[\" \"].cloneNode(true));\n }\n this.$highlightIndentGuide();\n return value.substr(cols);\n }\n else if (value[0] == \"\\t\") {\n for (var i = 0; i < cols; i++) {\n parent.appendChild(this.$tabStrings[\"\\t\"].cloneNode(true));\n }\n this.$highlightIndentGuide();\n return value.substr(cols);\n }\n this.$highlightIndentGuide();\n return value;\n };\n Text.prototype.$highlightIndentGuide = function () {\n if (!this.$highlightIndentGuides || !this.displayIndentGuides)\n return;\n this.$highlightIndentGuideMarker = {\n indentLevel: undefined,\n start: undefined,\n end: undefined,\n dir: undefined\n };\n var lines = this.session.doc.$lines;\n if (!lines)\n return;\n var cursor = this.session.selection.getCursor();\n var initialIndent = /^\\s*/.exec(this.session.doc.getLine(cursor.row))[0].length;\n var elementIndentLevel = Math.floor(initialIndent / this.tabSize);\n this.$highlightIndentGuideMarker = {\n indentLevel: elementIndentLevel,\n start: cursor.row\n };\n var bracketHighlight = this.session.$bracketHighlight;\n if (bracketHighlight) {\n var ranges = this.session.$bracketHighlight.ranges;\n for (var i = 0; i < ranges.length; i++) {\n if (cursor.row !== ranges[i].start.row) {\n this.$highlightIndentGuideMarker.end = ranges[i].start.row;\n if (cursor.row > ranges[i].start.row) {\n this.$highlightIndentGuideMarker.dir = -1;\n }\n else {\n this.$highlightIndentGuideMarker.dir = 1;\n }\n break;\n }\n }\n }\n if (!this.$highlightIndentGuideMarker.end) {\n if (lines[cursor.row] !== '' && cursor.column === lines[cursor.row].length) {\n this.$highlightIndentGuideMarker.dir = 1;\n for (var i = cursor.row + 1; i < lines.length; i++) {\n var line = lines[i];\n var currentIndent = /^\\s*/.exec(line)[0].length;\n if (line !== '') {\n this.$highlightIndentGuideMarker.end = i;\n if (currentIndent <= initialIndent)\n break;\n }\n }\n }\n }\n this.$renderHighlightIndentGuide();\n };\n Text.prototype.$clearActiveIndentGuide = function () {\n var cells = this.$lines.cells;\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n var childNodes = cell.element.childNodes;\n if (childNodes.length > 0) {\n for (var j = 0; j < childNodes.length; j++) {\n if (childNodes[j].classList && childNodes[j].classList.contains(\"ace_indent-guide-active\")) {\n childNodes[j].classList.remove(\"ace_indent-guide-active\");\n break;\n }\n }\n }\n }\n };\n Text.prototype.$setIndentGuideActive = function (cell, indentLevel) {\n var line = this.session.doc.getLine(cell.row);\n if (line !== \"\") {\n var childNodes = cell.element.childNodes;\n if (childNodes) {\n var node = childNodes[indentLevel - 1];\n if (node && node.classList && node.classList.contains(\"ace_indent-guide\"))\n node.classList.add(\"ace_indent-guide-active\");\n }\n }\n };\n Text.prototype.$renderHighlightIndentGuide = function () {\n if (!this.$lines)\n return;\n var cells = this.$lines.cells;\n this.$clearActiveIndentGuide();\n var indentLevel = this.$highlightIndentGuideMarker.indentLevel;\n if (indentLevel !== 0) {\n if (this.$highlightIndentGuideMarker.dir === 1) {\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n if (this.$highlightIndentGuideMarker.end && cell.row >= this.$highlightIndentGuideMarker.start\n + 1) {\n if (cell.row >= this.$highlightIndentGuideMarker.end)\n break;\n this.$setIndentGuideActive(cell, indentLevel);\n }\n }\n }\n else {\n for (var i = cells.length - 1; i >= 0; i--) {\n var cell = cells[i];\n if (this.$highlightIndentGuideMarker.end && cell.row < this.$highlightIndentGuideMarker.start) {\n if (cell.row <= this.$highlightIndentGuideMarker.end)\n break;\n this.$setIndentGuideActive(cell, indentLevel);\n }\n }\n }\n }\n };\n Text.prototype.$createLineElement = function (parent) {\n var lineEl = this.dom.createElement(\"div\");\n lineEl.className = \"ace_line\";\n lineEl.style.height = this.config.lineHeight + \"px\";\n return lineEl;\n };\n Text.prototype.$renderWrappedLine = function (parent, tokens, splits) {\n var chars = 0;\n var split = 0;\n var splitChars = splits[0];\n var screenColumn = 0;\n var lineEl = this.$createLineElement();\n parent.appendChild(lineEl);\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n chars = value.length;\n value = this.renderIndentGuide(lineEl, value, splitChars);\n if (!value)\n continue;\n chars -= value.length;\n }\n if (chars + value.length < splitChars) {\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value);\n chars += value.length;\n }\n else {\n while (chars + value.length >= splitChars) {\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value.substring(0, splitChars - chars));\n value = value.substring(splitChars - chars);\n chars = splitChars;\n lineEl = this.$createLineElement();\n parent.appendChild(lineEl);\n lineEl.appendChild(this.dom.createTextNode(lang.stringRepeat(\"\\xa0\", splits.indent), this.element));\n split++;\n screenColumn = 0;\n splitChars = splits[split] || Number.MAX_VALUE;\n }\n if (value.length != 0) {\n chars += value.length;\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value);\n }\n }\n }\n if (splits[splits.length - 1] > this.MAX_LINE_LENGTH)\n this.$renderOverflowMessage(lineEl, screenColumn, null, \"\", true);\n };\n Text.prototype.$renderSimpleLine = function (parent, tokens) {\n var screenColumn = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n value = this.renderIndentGuide(parent, value);\n if (!value)\n continue;\n }\n if (screenColumn + value.length > this.MAX_LINE_LENGTH)\n return this.$renderOverflowMessage(parent, screenColumn, token, value);\n screenColumn = this.$renderToken(parent, screenColumn, token, value);\n }\n };\n Text.prototype.$renderOverflowMessage = function (parent, screenColumn, token, value, hide) {\n token && this.$renderToken(parent, screenColumn, token, value.slice(0, this.MAX_LINE_LENGTH - screenColumn));\n var overflowEl = this.dom.createElement(\"span\");\n overflowEl.className = \"ace_inline_button ace_keyword ace_toggle_wrap\";\n overflowEl.textContent = hide ? \"\" : \"\";\n parent.appendChild(overflowEl);\n };\n Text.prototype.$renderLine = function (parent, row, foldLine) {\n if (!foldLine && foldLine != false)\n foldLine = this.session.getFoldLine(row);\n if (foldLine)\n var tokens = this.$getFoldLineTokens(row, foldLine);\n else\n var tokens = this.session.getTokens(row);\n var lastLineEl = parent;\n if (tokens.length) {\n var splits = this.session.getRowSplitData(row);\n if (splits && splits.length) {\n this.$renderWrappedLine(parent, tokens, splits);\n var lastLineEl = parent.lastChild;\n }\n else {\n var lastLineEl = parent;\n if (this.$useLineGroups()) {\n lastLineEl = this.$createLineElement();\n parent.appendChild(lastLineEl);\n }\n this.$renderSimpleLine(lastLineEl, tokens);\n }\n }\n else if (this.$useLineGroups()) {\n lastLineEl = this.$createLineElement();\n parent.appendChild(lastLineEl);\n }\n if (this.showEOL && lastLineEl) {\n if (foldLine)\n row = foldLine.end.row;\n var invisibleEl = this.dom.createElement(\"span\");\n invisibleEl.className = \"ace_invisible ace_invisible_eol\";\n invisibleEl.textContent = row == this.session.getLength() - 1 ? this.EOF_CHAR : this.EOL_CHAR;\n lastLineEl.appendChild(invisibleEl);\n }\n };\n Text.prototype.$getFoldLineTokens = function (row, foldLine) {\n var session = this.session;\n var renderTokens = [];\n function addTokens(tokens, from, to) {\n var idx = 0, col = 0;\n while ((col + tokens[idx].value.length) < from) {\n col += tokens[idx].value.length;\n idx++;\n if (idx == tokens.length)\n return;\n }\n if (col != from) {\n var value = tokens[idx].value.substring(from - col);\n if (value.length > (to - from))\n value = value.substring(0, to - from);\n renderTokens.push({\n type: tokens[idx].type,\n value: value\n });\n col = from + value.length;\n idx += 1;\n }\n while (col < to && idx < tokens.length) {\n var value = tokens[idx].value;\n if (value.length + col > to) {\n renderTokens.push({\n type: tokens[idx].type,\n value: value.substring(0, to - col)\n });\n }\n else\n renderTokens.push(tokens[idx]);\n col += value.length;\n idx += 1;\n }\n }\n var tokens = session.getTokens(row);\n foldLine.walk(function (placeholder, row, column, lastColumn, isNewRow) {\n if (placeholder != null) {\n renderTokens.push({\n type: \"fold\",\n value: placeholder\n });\n }\n else {\n if (isNewRow)\n tokens = session.getTokens(row);\n if (tokens.length)\n addTokens(tokens, lastColumn, column);\n }\n }, foldLine.end.row, this.session.getLine(foldLine.end.row).length);\n return renderTokens;\n };\n Text.prototype.$useLineGroups = function () {\n return this.session.getUseWrapMode();\n };\n return Text;\n}());\nText.prototype.EOF_CHAR = \"\\xB6\";\nText.prototype.EOL_CHAR_LF = \"\\xAC\";\nText.prototype.EOL_CHAR_CRLF = \"\\xa4\";\nText.prototype.EOL_CHAR = Text.prototype.EOL_CHAR_LF;\nText.prototype.TAB_CHAR = \"\\u2014\"; //\"\\u21E5\";\nText.prototype.SPACE_CHAR = \"\\xB7\";\nText.prototype.$padding = 0;\nText.prototype.MAX_LINE_LENGTH = 10000;\nText.prototype.showInvisibles = false;\nText.prototype.showSpaces = false;\nText.prototype.showTabs = false;\nText.prototype.showEOL = false;\nText.prototype.displayIndentGuides = true;\nText.prototype.$highlightIndentGuides = true;\nText.prototype.$tabStrings = [];\nText.prototype.destroy = {};\nText.prototype.onChangeTabSize = Text.prototype.$computeTabString;\noop.implement(Text.prototype, EventEmitter);\nexports.Text = Text;\n\n});\n\nace.define(\"ace/layer/cursor\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar Cursor = /** @class */ (function () {\n function Cursor(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_cursor-layer\";\n parentEl.appendChild(this.element);\n this.isVisible = false;\n this.isBlinking = true;\n this.blinkInterval = 1000;\n this.smoothBlinking = false;\n this.cursors = [];\n this.cursor = this.addCursor();\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.$updateCursors = this.$updateOpacity.bind(this);\n }\n Cursor.prototype.$updateOpacity = function (val) {\n var cursors = this.cursors;\n for (var i = cursors.length; i--;)\n dom.setStyle(cursors[i].style, \"opacity\", val ? \"\" : \"0\");\n };\n Cursor.prototype.$startCssAnimation = function () {\n var cursors = this.cursors;\n for (var i = cursors.length; i--;)\n cursors[i].style.animationDuration = this.blinkInterval + \"ms\";\n this.$isAnimating = true;\n setTimeout(function () {\n if (this.$isAnimating) {\n dom.addCssClass(this.element, \"ace_animate-blinking\");\n }\n }.bind(this));\n };\n Cursor.prototype.$stopCssAnimation = function () {\n this.$isAnimating = false;\n dom.removeCssClass(this.element, \"ace_animate-blinking\");\n };\n Cursor.prototype.setPadding = function (padding) {\n this.$padding = padding;\n };\n Cursor.prototype.setSession = function (session) {\n this.session = session;\n };\n Cursor.prototype.setBlinking = function (blinking) {\n if (blinking != this.isBlinking) {\n this.isBlinking = blinking;\n this.restartTimer();\n }\n };\n Cursor.prototype.setBlinkInterval = function (blinkInterval) {\n if (blinkInterval != this.blinkInterval) {\n this.blinkInterval = blinkInterval;\n this.restartTimer();\n }\n };\n Cursor.prototype.setSmoothBlinking = function (smoothBlinking) {\n if (smoothBlinking != this.smoothBlinking) {\n this.smoothBlinking = smoothBlinking;\n dom.setCssClass(this.element, \"ace_smooth-blinking\", smoothBlinking);\n this.$updateCursors(true);\n this.restartTimer();\n }\n };\n Cursor.prototype.addCursor = function () {\n var el = dom.createElement(\"div\");\n el.className = \"ace_cursor\";\n this.element.appendChild(el);\n this.cursors.push(el);\n return el;\n };\n Cursor.prototype.removeCursor = function () {\n if (this.cursors.length > 1) {\n var el = this.cursors.pop();\n el.parentNode.removeChild(el);\n return el;\n }\n };\n Cursor.prototype.hideCursor = function () {\n this.isVisible = false;\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n Cursor.prototype.showCursor = function () {\n this.isVisible = true;\n dom.removeCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n Cursor.prototype.restartTimer = function () {\n var update = this.$updateCursors;\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n this.$stopCssAnimation();\n if (this.smoothBlinking) {\n this.$isSmoothBlinking = false;\n dom.removeCssClass(this.element, \"ace_smooth-blinking\");\n }\n update(true);\n if (!this.isBlinking || !this.blinkInterval || !this.isVisible) {\n this.$stopCssAnimation();\n return;\n }\n if (this.smoothBlinking) {\n this.$isSmoothBlinking = true;\n setTimeout(function () {\n if (this.$isSmoothBlinking) {\n dom.addCssClass(this.element, \"ace_smooth-blinking\");\n }\n }.bind(this));\n }\n if (dom.HAS_CSS_ANIMATION) {\n this.$startCssAnimation();\n }\n else {\n var blink = function () {\n this.timeoutId = setTimeout(function () {\n update(false);\n }, 0.6 * this.blinkInterval);\n }.bind(this);\n this.intervalId = setInterval(function () {\n update(true);\n blink();\n }, this.blinkInterval);\n blink();\n }\n };\n Cursor.prototype.getPixelPosition = function (position, onScreen) {\n if (!this.config || !this.session)\n return { left: 0, top: 0 };\n if (!position)\n position = this.session.selection.getCursor();\n var pos = this.session.documentToScreenPosition(position);\n var cursorLeft = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, position.row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : pos.column * this.config.characterWidth);\n var cursorTop = (pos.row - (onScreen ? this.config.firstRowScreen : 0)) *\n this.config.lineHeight;\n return { left: cursorLeft, top: cursorTop };\n };\n Cursor.prototype.isCursorInView = function (pixelPos, config) {\n return pixelPos.top >= 0 && pixelPos.top < config.maxHeight;\n };\n Cursor.prototype.update = function (config) {\n this.config = config;\n var selections = this.session.$selectionMarkers;\n var i = 0, cursorIndex = 0;\n if (selections === undefined || selections.length === 0) {\n selections = [{ cursor: null }];\n }\n for (var i = 0, n = selections.length; i < n; i++) {\n var pixelPos = this.getPixelPosition(selections[i].cursor, true);\n if ((pixelPos.top > config.height + config.offset ||\n pixelPos.top < 0) && i > 1) {\n continue;\n }\n var element = this.cursors[cursorIndex++] || this.addCursor();\n var style = element.style;\n if (!this.drawCursor) {\n if (!this.isCursorInView(pixelPos, config)) {\n dom.setStyle(style, \"display\", \"none\");\n }\n else {\n dom.setStyle(style, \"display\", \"block\");\n dom.translate(element, pixelPos.left, pixelPos.top);\n dom.setStyle(style, \"width\", Math.round(config.characterWidth) + \"px\");\n dom.setStyle(style, \"height\", config.lineHeight + \"px\");\n }\n }\n else {\n this.drawCursor(element, pixelPos, config, selections[i], this.session);\n }\n }\n while (this.cursors.length > cursorIndex)\n this.removeCursor();\n var overwrite = this.session.getOverwrite();\n this.$setOverwrite(overwrite);\n this.$pixelPos = pixelPos;\n this.restartTimer();\n };\n Cursor.prototype.$setOverwrite = function (overwrite) {\n if (overwrite != this.overwrite) {\n this.overwrite = overwrite;\n if (overwrite)\n dom.addCssClass(this.element, \"ace_overwrite-cursors\");\n else\n dom.removeCssClass(this.element, \"ace_overwrite-cursors\");\n }\n };\n Cursor.prototype.destroy = function () {\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n };\n return Cursor;\n}());\nCursor.prototype.$padding = 0;\nCursor.prototype.drawCursor = null;\nexports.Cursor = Cursor;\n\n});\n\nace.define(\"ace/scrollbar\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar MAX_SCROLL_H = 0x8000;\nvar Scrollbar = /** @class */ (function () {\n function Scrollbar(parent, classSuffix) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_scrollbar ace_scrollbar\" + classSuffix;\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"ace_scrollbar-inner\";\n this.inner.textContent = \"\\xa0\";\n this.element.appendChild(this.inner);\n parent.appendChild(this.element);\n this.setVisible(false);\n this.skipEvent = false;\n event.addListener(this.element, \"scroll\", this.onScroll.bind(this));\n event.addListener(this.element, \"mousedown\", event.preventDefault);\n }\n Scrollbar.prototype.setVisible = function (isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n this.coeff = 1;\n };\n return Scrollbar;\n}());\noop.implement(Scrollbar.prototype, EventEmitter);\nvar VScrollBar = /** @class */ (function (_super) {\n __extends(VScrollBar, _super);\n function VScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-v') || this;\n _this.scrollTop = 0;\n _this.scrollHeight = 0;\n renderer.$scrollbarWidth =\n _this.width = dom.scrollbarWidth(parent.ownerDocument);\n _this.inner.style.width =\n _this.element.style.width = (_this.width || 15) + 5 + \"px\";\n _this.$minWidth = 0;\n return _this;\n }\n VScrollBar.prototype.onScroll = function () {\n if (!this.skipEvent) {\n this.scrollTop = this.element.scrollTop;\n if (this.coeff != 1) {\n var h = this.element.clientHeight / this.scrollHeight;\n this.scrollTop = this.scrollTop * (1 - h) / (this.coeff - h);\n }\n this._emit(\"scroll\", { data: this.scrollTop });\n }\n this.skipEvent = false;\n };\n VScrollBar.prototype.getWidth = function () {\n return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0);\n };\n VScrollBar.prototype.setHeight = function (height) {\n this.element.style.height = height + \"px\";\n };\n VScrollBar.prototype.setScrollHeight = function (height) {\n this.scrollHeight = height;\n if (height > MAX_SCROLL_H) {\n this.coeff = MAX_SCROLL_H / height;\n height = MAX_SCROLL_H;\n }\n else if (this.coeff != 1) {\n this.coeff = 1;\n }\n this.inner.style.height = height + \"px\";\n };\n VScrollBar.prototype.setScrollTop = function (scrollTop) {\n if (this.scrollTop != scrollTop) {\n this.skipEvent = true;\n this.scrollTop = scrollTop;\n this.element.scrollTop = scrollTop * this.coeff;\n }\n };\n return VScrollBar;\n}(Scrollbar));\nVScrollBar.prototype.setInnerHeight = VScrollBar.prototype.setScrollHeight;\nvar HScrollBar = /** @class */ (function (_super) {\n __extends(HScrollBar, _super);\n function HScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-h') || this;\n _this.scrollLeft = 0;\n _this.height = renderer.$scrollbarWidth;\n _this.inner.style.height =\n _this.element.style.height = (_this.height || 15) + 5 + \"px\";\n return _this;\n }\n HScrollBar.prototype.onScroll = function () {\n if (!this.skipEvent) {\n this.scrollLeft = this.element.scrollLeft;\n this._emit(\"scroll\", { data: this.scrollLeft });\n }\n this.skipEvent = false;\n };\n HScrollBar.prototype.getHeight = function () {\n return this.isVisible ? this.height : 0;\n };\n HScrollBar.prototype.setWidth = function (width) {\n this.element.style.width = width + \"px\";\n };\n HScrollBar.prototype.setInnerWidth = function (width) {\n this.inner.style.width = width + \"px\";\n };\n HScrollBar.prototype.setScrollWidth = function (width) {\n this.inner.style.width = width + \"px\";\n };\n HScrollBar.prototype.setScrollLeft = function (scrollLeft) {\n if (this.scrollLeft != scrollLeft) {\n this.skipEvent = true;\n this.scrollLeft = this.element.scrollLeft = scrollLeft;\n }\n };\n return HScrollBar;\n}(Scrollbar));\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n\n});\n\nace.define(\"ace/scrollbar_custom\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\ndom.importCssString(\".ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{\\n position: absolute;\\n background: rgba(128, 128, 128, 0.6);\\n -moz-box-sizing: border-box;\\n box-sizing: border-box;\\n border: 1px solid #bbb;\\n border-radius: 2px;\\n z-index: 8;\\n}\\n.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h {\\n position: absolute;\\n z-index: 6;\\n background: none;\\n overflow: hidden!important;\\n}\\n.ace_editor>.ace_sb-v {\\n z-index: 6;\\n right: 0;\\n top: 0;\\n width: 12px;\\n}\\n.ace_editor>.ace_sb-v div {\\n z-index: 8;\\n right: 0;\\n width: 100%;\\n}\\n.ace_editor>.ace_sb-h {\\n bottom: 0;\\n left: 0;\\n height: 12px;\\n}\\n.ace_editor>.ace_sb-h div {\\n bottom: 0;\\n height: 100%;\\n}\\n.ace_editor>.ace_sb_grabbed {\\n z-index: 8;\\n background: #000;\\n}\", \"ace_scrollbar.css\", false);\nvar ScrollBar = /** @class */ (function () {\n function ScrollBar(parent, classSuffix) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_sb\" + classSuffix;\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"\";\n this.element.appendChild(this.inner);\n this.VScrollWidth = 12;\n this.HScrollHeight = 12;\n parent.appendChild(this.element);\n this.setVisible(false);\n this.skipEvent = false;\n event.addMultiMouseDownListener(this.element, [500, 300, 300], this, \"onMouseDown\");\n }\n ScrollBar.prototype.setVisible = function (isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n this.coeff = 1;\n };\n return ScrollBar;\n}());\noop.implement(ScrollBar.prototype, EventEmitter);\nvar VScrollBar = /** @class */ (function (_super) {\n __extends(VScrollBar, _super);\n function VScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-v') || this;\n _this.scrollTop = 0;\n _this.scrollHeight = 0;\n _this.parent = parent;\n _this.width = _this.VScrollWidth;\n _this.renderer = renderer;\n _this.inner.style.width = _this.element.style.width = (_this.width || 15) + \"px\";\n _this.$minWidth = 0;\n return _this;\n }\n VScrollBar.prototype.onMouseDown = function (eType, e) {\n if (eType !== \"mousedown\")\n return;\n if (event.getButton(e) !== 0 || e.detail === 2) {\n return;\n }\n if (e.target === this.inner) {\n var self = this;\n var mousePageY = e.clientY;\n var onMouseMove = function (e) {\n mousePageY = e.clientY;\n };\n var onMouseUp = function () {\n clearInterval(timerId);\n };\n var startY = e.clientY;\n var startTop = this.thumbTop;\n var onScrollInterval = function () {\n if (mousePageY === undefined)\n return;\n var scrollTop = self.scrollTopFromThumbTop(startTop + mousePageY - startY);\n if (scrollTop === self.scrollTop)\n return;\n self._emit(\"scroll\", { data: scrollTop });\n };\n event.capture(this.inner, onMouseMove, onMouseUp);\n var timerId = setInterval(onScrollInterval, 20);\n return event.preventDefault(e);\n }\n var top = e.clientY - this.element.getBoundingClientRect().top - this.thumbHeight / 2;\n this._emit(\"scroll\", { data: this.scrollTopFromThumbTop(top) });\n return event.preventDefault(e);\n };\n VScrollBar.prototype.getHeight = function () {\n return this.height;\n };\n VScrollBar.prototype.scrollTopFromThumbTop = function (thumbTop) {\n var scrollTop = thumbTop * (this.pageHeight - this.viewHeight) / (this.slideHeight - this.thumbHeight);\n scrollTop = scrollTop >> 0;\n if (scrollTop < 0) {\n scrollTop = 0;\n }\n else if (scrollTop > this.pageHeight - this.viewHeight) {\n scrollTop = this.pageHeight - this.viewHeight;\n }\n return scrollTop;\n };\n VScrollBar.prototype.getWidth = function () {\n return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0);\n };\n VScrollBar.prototype.setHeight = function (height) {\n this.height = Math.max(0, height);\n this.slideHeight = this.height;\n this.viewHeight = this.height;\n this.setScrollHeight(this.pageHeight, true);\n };\n VScrollBar.prototype.setScrollHeight = function (height, force) {\n if (this.pageHeight === height && !force)\n return;\n this.pageHeight = height;\n this.thumbHeight = this.slideHeight * this.viewHeight / this.pageHeight;\n if (this.thumbHeight > this.slideHeight)\n this.thumbHeight = this.slideHeight;\n if (this.thumbHeight < 15)\n this.thumbHeight = 15;\n this.inner.style.height = this.thumbHeight + \"px\";\n if (this.scrollTop > (this.pageHeight - this.viewHeight)) {\n this.scrollTop = (this.pageHeight - this.viewHeight);\n if (this.scrollTop < 0)\n this.scrollTop = 0;\n this._emit(\"scroll\", { data: this.scrollTop });\n }\n };\n VScrollBar.prototype.setScrollTop = function (scrollTop) {\n this.scrollTop = scrollTop;\n if (scrollTop < 0)\n scrollTop = 0;\n this.thumbTop = scrollTop * (this.slideHeight - this.thumbHeight) / (this.pageHeight - this.viewHeight);\n this.inner.style.top = this.thumbTop + \"px\";\n };\n return VScrollBar;\n}(ScrollBar));\nVScrollBar.prototype.setInnerHeight = VScrollBar.prototype.setScrollHeight;\nvar HScrollBar = /** @class */ (function (_super) {\n __extends(HScrollBar, _super);\n function HScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-h') || this;\n _this.scrollLeft = 0;\n _this.scrollWidth = 0;\n _this.height = _this.HScrollHeight;\n _this.inner.style.height = _this.element.style.height = (_this.height || 12) + \"px\";\n _this.renderer = renderer;\n return _this;\n }\n HScrollBar.prototype.onMouseDown = function (eType, e) {\n if (eType !== \"mousedown\")\n return;\n if (event.getButton(e) !== 0 || e.detail === 2) {\n return;\n }\n if (e.target === this.inner) {\n var self = this;\n var mousePageX = e.clientX;\n var onMouseMove = function (e) {\n mousePageX = e.clientX;\n };\n var onMouseUp = function () {\n clearInterval(timerId);\n };\n var startX = e.clientX;\n var startLeft = this.thumbLeft;\n var onScrollInterval = function () {\n if (mousePageX === undefined)\n return;\n var scrollLeft = self.scrollLeftFromThumbLeft(startLeft + mousePageX - startX);\n if (scrollLeft === self.scrollLeft)\n return;\n self._emit(\"scroll\", { data: scrollLeft });\n };\n event.capture(this.inner, onMouseMove, onMouseUp);\n var timerId = setInterval(onScrollInterval, 20);\n return event.preventDefault(e);\n }\n var left = e.clientX - this.element.getBoundingClientRect().left - this.thumbWidth / 2;\n this._emit(\"scroll\", { data: this.scrollLeftFromThumbLeft(left) });\n return event.preventDefault(e);\n };\n HScrollBar.prototype.getHeight = function () {\n return this.isVisible ? this.height : 0;\n };\n HScrollBar.prototype.scrollLeftFromThumbLeft = function (thumbLeft) {\n var scrollLeft = thumbLeft * (this.pageWidth - this.viewWidth) / (this.slideWidth - this.thumbWidth);\n scrollLeft = scrollLeft >> 0;\n if (scrollLeft < 0) {\n scrollLeft = 0;\n }\n else if (scrollLeft > this.pageWidth - this.viewWidth) {\n scrollLeft = this.pageWidth - this.viewWidth;\n }\n return scrollLeft;\n };\n HScrollBar.prototype.setWidth = function (width) {\n this.width = Math.max(0, width);\n this.element.style.width = this.width + \"px\";\n this.slideWidth = this.width;\n this.viewWidth = this.width;\n this.setScrollWidth(this.pageWidth, true);\n };\n HScrollBar.prototype.setScrollWidth = function (width, force) {\n if (this.pageWidth === width && !force)\n return;\n this.pageWidth = width;\n this.thumbWidth = this.slideWidth * this.viewWidth / this.pageWidth;\n if (this.thumbWidth > this.slideWidth)\n this.thumbWidth = this.slideWidth;\n if (this.thumbWidth < 15)\n this.thumbWidth = 15;\n this.inner.style.width = this.thumbWidth + \"px\";\n if (this.scrollLeft > (this.pageWidth - this.viewWidth)) {\n this.scrollLeft = (this.pageWidth - this.viewWidth);\n if (this.scrollLeft < 0)\n this.scrollLeft = 0;\n this._emit(\"scroll\", { data: this.scrollLeft });\n }\n };\n HScrollBar.prototype.setScrollLeft = function (scrollLeft) {\n this.scrollLeft = scrollLeft;\n if (scrollLeft < 0)\n scrollLeft = 0;\n this.thumbLeft = scrollLeft * (this.slideWidth - this.thumbWidth) / (this.pageWidth - this.viewWidth);\n this.inner.style.left = (this.thumbLeft) + \"px\";\n };\n return HScrollBar;\n}(ScrollBar));\nHScrollBar.prototype.setInnerWidth = HScrollBar.prototype.setScrollWidth;\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n\n});\n\nace.define(\"ace/renderloop\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"], function(require, exports, module){\"use strict\";\nvar event = require(\"./lib/event\");\nvar RenderLoop = /** @class */ (function () {\n function RenderLoop(onRender, win) {\n this.onRender = onRender;\n this.pending = false;\n this.changes = 0;\n this.$recursionLimit = 2;\n this.window = win || window;\n var _self = this;\n this._flush = function (ts) {\n _self.pending = false;\n var changes = _self.changes;\n if (changes) {\n event.blockIdle(100);\n _self.changes = 0;\n _self.onRender(changes);\n }\n if (_self.changes) {\n if (_self.$recursionLimit-- < 0)\n return;\n _self.schedule();\n }\n else {\n _self.$recursionLimit = 2;\n }\n };\n }\n RenderLoop.prototype.schedule = function (change) {\n this.changes = this.changes | change;\n if (this.changes && !this.pending) {\n event.nextFrame(this._flush);\n this.pending = true;\n }\n };\n RenderLoop.prototype.clear = function (change) {\n var changes = this.changes;\n this.changes = 0;\n return changes;\n };\n return RenderLoop;\n}());\nexports.RenderLoop = RenderLoop;\n\n});\n\nace.define(\"ace/layer/font_metrics\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar CHAR_COUNT = 512;\nvar USE_OBSERVER = typeof ResizeObserver == \"function\";\nvar L = 200;\nvar FontMetrics = /** @class */ (function () {\n function FontMetrics(parentEl) {\n this.el = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.el.style, true);\n this.$main = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$main.style);\n this.$measureNode = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$measureNode.style);\n this.el.appendChild(this.$main);\n this.el.appendChild(this.$measureNode);\n parentEl.appendChild(this.el);\n this.$measureNode.textContent = lang.stringRepeat(\"X\", CHAR_COUNT);\n this.$characterSize = { width: 0, height: 0 };\n if (USE_OBSERVER)\n this.$addObserver();\n else\n this.checkForSizeChanges();\n }\n FontMetrics.prototype.$setMeasureNodeStyles = function (style, isRoot) {\n style.width = style.height = \"auto\";\n style.left = style.top = \"0px\";\n style.visibility = \"hidden\";\n style.position = \"absolute\";\n style.whiteSpace = \"pre\";\n if (useragent.isIE < 8) {\n style[\"font-family\"] = \"inherit\";\n }\n else {\n style.font = \"inherit\";\n }\n style.overflow = isRoot ? \"hidden\" : \"visible\";\n };\n FontMetrics.prototype.checkForSizeChanges = function (size) {\n if (size === undefined)\n size = this.$measureSizes();\n if (size && (this.$characterSize.width !== size.width || this.$characterSize.height !== size.height)) {\n this.$measureNode.style.fontWeight = \"bold\";\n var boldSize = this.$measureSizes();\n this.$measureNode.style.fontWeight = \"\";\n this.$characterSize = size;\n this.charSizes = Object.create(null);\n this.allowBoldFonts = boldSize && boldSize.width === size.width && boldSize.height === size.height;\n this._emit(\"changeCharacterSize\", { data: size });\n }\n };\n FontMetrics.prototype.$addObserver = function () {\n var self = this;\n this.$observer = new window.ResizeObserver(function (e) {\n self.checkForSizeChanges();\n });\n this.$observer.observe(this.$measureNode);\n };\n FontMetrics.prototype.$pollSizeChanges = function () {\n if (this.$pollSizeChangesTimer || this.$observer)\n return this.$pollSizeChangesTimer;\n var self = this;\n return this.$pollSizeChangesTimer = event.onIdle(function cb() {\n self.checkForSizeChanges();\n event.onIdle(cb, 500);\n }, 500);\n };\n FontMetrics.prototype.setPolling = function (val) {\n if (val) {\n this.$pollSizeChanges();\n }\n else if (this.$pollSizeChangesTimer) {\n clearInterval(this.$pollSizeChangesTimer);\n this.$pollSizeChangesTimer = 0;\n }\n };\n FontMetrics.prototype.$measureSizes = function (node) {\n var size = {\n height: (node || this.$measureNode).clientHeight,\n width: (node || this.$measureNode).clientWidth / CHAR_COUNT\n };\n if (size.width === 0 || size.height === 0)\n return null;\n return size;\n };\n FontMetrics.prototype.$measureCharWidth = function (ch) {\n this.$main.textContent = lang.stringRepeat(ch, CHAR_COUNT);\n var rect = this.$main.getBoundingClientRect();\n return rect.width / CHAR_COUNT;\n };\n FontMetrics.prototype.getCharacterWidth = function (ch) {\n var w = this.charSizes[ch];\n if (w === undefined) {\n w = this.charSizes[ch] = this.$measureCharWidth(ch) / this.$characterSize.width;\n }\n return w;\n };\n FontMetrics.prototype.destroy = function () {\n clearInterval(this.$pollSizeChangesTimer);\n if (this.$observer)\n this.$observer.disconnect();\n if (this.el && this.el.parentNode)\n this.el.parentNode.removeChild(this.el);\n };\n FontMetrics.prototype.$getZoom = function (element) {\n if (!element || !element.parentElement)\n return 1;\n return (window.getComputedStyle(element).zoom || 1) * this.$getZoom(element.parentElement);\n };\n FontMetrics.prototype.$initTransformMeasureNodes = function () {\n var t = function (t, l) {\n return [\"div\", {\n style: \"position: absolute;top:\" + t + \"px;left:\" + l + \"px;\"\n }];\n };\n this.els = dom.buildDom([t(0, 0), t(L, 0), t(0, L), t(L, L)], this.el);\n };\n FontMetrics.prototype.transformCoordinates = function (clientPos, elPos) {\n if (clientPos) {\n var zoom = this.$getZoom(this.el);\n clientPos = mul(1 / zoom, clientPos);\n }\n function solve(l1, l2, r) {\n var det = l1[1] * l2[0] - l1[0] * l2[1];\n return [\n (-l2[1] * r[0] + l2[0] * r[1]) / det,\n (+l1[1] * r[0] - l1[0] * r[1]) / det\n ];\n }\n function sub(a, b) { return [a[0] - b[0], a[1] - b[1]]; }\n function add(a, b) { return [a[0] + b[0], a[1] + b[1]]; }\n function mul(a, b) { return [a * b[0], a * b[1]]; }\n if (!this.els)\n this.$initTransformMeasureNodes();\n function p(el) {\n var r = el.getBoundingClientRect();\n return [r.left, r.top];\n }\n var a = p(this.els[0]);\n var b = p(this.els[1]);\n var c = p(this.els[2]);\n var d = p(this.els[3]);\n var h = solve(sub(d, b), sub(d, c), sub(add(b, c), add(d, a)));\n var m1 = mul(1 + h[0], sub(b, a));\n var m2 = mul(1 + h[1], sub(c, a));\n if (elPos) {\n var x = elPos;\n var k = h[0] * x[0] / L + h[1] * x[1] / L + 1;\n var ut = add(mul(x[0], m1), mul(x[1], m2));\n return add(mul(1 / k / L, ut), a);\n }\n var u = sub(clientPos, a);\n var f = solve(sub(m1, mul(h[0], u)), sub(m2, mul(h[1], u)), u);\n return mul(L, f);\n };\n return FontMetrics;\n}());\nFontMetrics.prototype.$characterSize = { width: 0, height: 0 };\noop.implement(FontMetrics.prototype, EventEmitter);\nexports.FontMetrics = FontMetrics;\n\n});\n\nace.define(\"ace/css/editor-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){/*\nstyles = []\nfor (var i = 1; i < 16; i++) {\n styles.push(\".ace_br\" + i + \"{\" + (\n [\"top-left\", \"top-right\", \"bottom-right\", \"bottom-left\"]\n ).map(function(x, j) {\n return i & (1< .ace_line, .ace_text-layer > .ace_line_group {\\n contain: style size layout;\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n}\\n\\n.ace_hidpi .ace_text-layer,\\n.ace_hidpi .ace_gutter-layer,\\n.ace_hidpi .ace_content,\\n.ace_hidpi .ace_gutter {\\n contain: strict;\\n}\\n.ace_hidpi .ace_text-layer > .ace_line, \\n.ace_hidpi .ace_text-layer > .ace_line_group {\\n contain: strict;\\n}\\n\\n.ace_cjk {\\n display: inline-block;\\n text-align: center;\\n}\\n\\n.ace_cursor-layer {\\n z-index: 4;\\n}\\n\\n.ace_cursor {\\n z-index: 4;\\n position: absolute;\\n box-sizing: border-box;\\n border-left: 2px solid;\\n /* workaround for smooth cursor repaintng whole screen in chrome */\\n transform: translatez(0);\\n}\\n\\n.ace_multiselect .ace_cursor {\\n border-left-width: 1px;\\n}\\n\\n.ace_slim-cursors .ace_cursor {\\n border-left-width: 1px;\\n}\\n\\n.ace_overwrite-cursors .ace_cursor {\\n border-left-width: 0;\\n border-bottom: 1px solid;\\n}\\n\\n.ace_hidden-cursors .ace_cursor {\\n opacity: 0.2;\\n}\\n\\n.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {\\n opacity: 0;\\n}\\n\\n.ace_smooth-blinking .ace_cursor {\\n transition: opacity 0.18s;\\n}\\n\\n.ace_animate-blinking .ace_cursor {\\n animation-duration: 1000ms;\\n animation-timing-function: step-end;\\n animation-name: blink-ace-animate;\\n animation-iteration-count: infinite;\\n}\\n\\n.ace_animate-blinking.ace_smooth-blinking .ace_cursor {\\n animation-duration: 1000ms;\\n animation-timing-function: ease-in-out;\\n animation-name: blink-ace-animate-smooth;\\n}\\n \\n@keyframes blink-ace-animate {\\n from, to { opacity: 1; }\\n 60% { opacity: 0; }\\n}\\n\\n@keyframes blink-ace-animate-smooth {\\n from, to { opacity: 1; }\\n 45% { opacity: 1; }\\n 60% { opacity: 0; }\\n 85% { opacity: 0; }\\n}\\n\\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\\n position: absolute;\\n z-index: 3;\\n}\\n\\n.ace_marker-layer .ace_selection {\\n position: absolute;\\n z-index: 5;\\n}\\n\\n.ace_marker-layer .ace_bracket {\\n position: absolute;\\n z-index: 6;\\n}\\n\\n.ace_marker-layer .ace_error_bracket {\\n position: absolute;\\n border-bottom: 1px solid #DE5555;\\n border-radius: 0;\\n}\\n\\n.ace_marker-layer .ace_active-line {\\n position: absolute;\\n z-index: 2;\\n}\\n\\n.ace_marker-layer .ace_selected-word {\\n position: absolute;\\n z-index: 4;\\n box-sizing: border-box;\\n}\\n\\n.ace_line .ace_fold {\\n box-sizing: border-box;\\n\\n display: inline-block;\\n height: 11px;\\n margin-top: -2px;\\n vertical-align: middle;\\n\\n background-image:\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=\\\");\\n background-repeat: no-repeat, repeat-x;\\n background-position: center center, top left;\\n color: transparent;\\n\\n border: 1px solid black;\\n border-radius: 2px;\\n\\n cursor: pointer;\\n pointer-events: auto;\\n}\\n\\n.ace_dark .ace_fold {\\n}\\n\\n.ace_fold:hover{\\n background-image:\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC\\\");\\n}\\n\\n.ace_tooltip {\\n background-color: #f5f5f5;\\n border: 1px solid gray;\\n border-radius: 1px;\\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\\n color: black;\\n max-width: 100%;\\n padding: 3px 4px;\\n position: fixed;\\n z-index: 999999;\\n box-sizing: border-box;\\n cursor: default;\\n white-space: pre-wrap;\\n word-wrap: break-word;\\n line-height: normal;\\n font-style: normal;\\n font-weight: normal;\\n letter-spacing: normal;\\n pointer-events: none;\\n overflow: auto;\\n max-width: min(60em, 66vw);\\n}\\n.ace_tooltip pre {\\n white-space: pre-wrap;\\n}\\n\\n.ace_tooltip.ace_dark {\\n background-color: #636363;\\n color: #fff;\\n}\\n\\n.ace_tooltip:focus {\\n outline: 1px solid #5E9ED6;\\n}\\n\\n.ace_icon {\\n display: inline-block;\\n width: 18px;\\n vertical-align: top;\\n}\\n\\n.ace_icon_svg {\\n display: inline-block;\\n width: 12px;\\n vertical-align: top;\\n -webkit-mask-repeat: no-repeat;\\n -webkit-mask-size: 12px;\\n -webkit-mask-position: center;\\n}\\n\\n.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons {\\n padding-right: 13px;\\n}\\n\\n.ace_fold-widget {\\n box-sizing: border-box;\\n\\n margin: 0 -12px 0 1px;\\n display: none;\\n width: 11px;\\n vertical-align: top;\\n\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==\\\");\\n background-repeat: no-repeat;\\n background-position: center;\\n\\n border-radius: 3px;\\n \\n border: 1px solid transparent;\\n cursor: pointer;\\n}\\n\\n.ace_folding-enabled .ace_fold-widget {\\n display: inline-block; \\n}\\n\\n.ace_fold-widget.ace_end {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==\\\");\\n}\\n\\n.ace_fold-widget.ace_closed {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==\\\");\\n}\\n\\n.ace_fold-widget:hover {\\n border: 1px solid rgba(0, 0, 0, 0.3);\\n background-color: rgba(255, 255, 255, 0.2);\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\\n}\\n\\n.ace_fold-widget:active {\\n border: 1px solid rgba(0, 0, 0, 0.4);\\n background-color: rgba(0, 0, 0, 0.05);\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\\n}\\n/**\\n * Dark version for fold widgets\\n */\\n.ace_dark .ace_fold-widget {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\\\");\\n}\\n.ace_dark .ace_fold-widget.ace_end {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\\\");\\n}\\n.ace_dark .ace_fold-widget.ace_closed {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\\\");\\n}\\n.ace_dark .ace_fold-widget:hover {\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.ace_dark .ace_fold-widget:active {\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\n}\\n\\n.ace_inline_button {\\n border: 1px solid lightgray;\\n display: inline-block;\\n margin: -1px 8px;\\n padding: 0 5px;\\n pointer-events: auto;\\n cursor: pointer;\\n}\\n.ace_inline_button:hover {\\n border-color: gray;\\n background: rgba(200,200,200,0.2);\\n display: inline-block;\\n pointer-events: auto;\\n}\\n\\n.ace_fold-widget.ace_invalid {\\n background-color: #FFB4B4;\\n border-color: #DE5555;\\n}\\n\\n.ace_fade-fold-widgets .ace_fold-widget {\\n transition: opacity 0.4s ease 0.05s;\\n opacity: 0;\\n}\\n\\n.ace_fade-fold-widgets:hover .ace_fold-widget {\\n transition: opacity 0.05s ease 0.05s;\\n opacity:1;\\n}\\n\\n.ace_underline {\\n text-decoration: underline;\\n}\\n\\n.ace_bold {\\n font-weight: bold;\\n}\\n\\n.ace_nobold .ace_bold {\\n font-weight: normal;\\n}\\n\\n.ace_italic {\\n font-style: italic;\\n}\\n\\n\\n.ace_error-marker {\\n background-color: rgba(255, 0, 0,0.2);\\n position: absolute;\\n z-index: 9;\\n}\\n\\n.ace_highlight-marker {\\n background-color: rgba(255, 255, 0,0.2);\\n position: absolute;\\n z-index: 8;\\n}\\n\\n.ace_mobile-menu {\\n position: absolute;\\n line-height: 1.5;\\n border-radius: 4px;\\n -ms-user-select: none;\\n -moz-user-select: none;\\n -webkit-user-select: none;\\n user-select: none;\\n background: white;\\n box-shadow: 1px 3px 2px grey;\\n border: 1px solid #dcdcdc;\\n color: black;\\n}\\n.ace_dark > .ace_mobile-menu {\\n background: #333;\\n color: #ccc;\\n box-shadow: 1px 3px 2px grey;\\n border: 1px solid #444;\\n\\n}\\n.ace_mobile-button {\\n padding: 2px;\\n cursor: pointer;\\n overflow: hidden;\\n}\\n.ace_mobile-button:hover {\\n background-color: #eee;\\n opacity:1;\\n}\\n.ace_mobile-button:active {\\n background-color: #ddd;\\n}\\n\\n.ace_placeholder {\\n font-family: arial;\\n transform: scale(0.9);\\n transform-origin: left;\\n white-space: pre;\\n opacity: 0.7;\\n margin: 0 10px;\\n}\\n\\n.ace_ghost_text {\\n opacity: 0.5;\\n font-style: italic;\\n white-space: pre;\\n}\\n\\n.ace_screenreader-only {\\n position:absolute;\\n left:-10000px;\\n top:auto;\\n width:1px;\\n height:1px;\\n overflow:hidden;\\n}\";\n\n});\n\nace.define(\"ace/layer/decorators\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar oop = require(\"../lib/oop\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar Decorator = /** @class */ (function () {\n function Decorator(parent, renderer) {\n this.canvas = dom.createElement(\"canvas\");\n this.renderer = renderer;\n this.pixelRatio = 1;\n this.maxHeight = renderer.layerConfig.maxHeight;\n this.lineHeight = renderer.layerConfig.lineHeight;\n this.canvasHeight = parent.parent.scrollHeight;\n this.heightRatio = this.canvasHeight / this.maxHeight;\n this.canvasWidth = parent.width;\n this.minDecorationHeight = (2 * this.pixelRatio) | 0;\n this.halfMinDecorationHeight = (this.minDecorationHeight / 2) | 0;\n this.canvas.width = this.canvasWidth;\n this.canvas.height = this.canvasHeight;\n this.canvas.style.top = 0 + \"px\";\n this.canvas.style.right = 0 + \"px\";\n this.canvas.style.zIndex = 7 + \"px\";\n this.canvas.style.position = \"absolute\";\n this.colors = {};\n this.colors.dark = {\n \"error\": \"rgba(255, 18, 18, 1)\",\n \"warning\": \"rgba(18, 136, 18, 1)\",\n \"info\": \"rgba(18, 18, 136, 1)\"\n };\n this.colors.light = {\n \"error\": \"rgb(255,51,51)\",\n \"warning\": \"rgb(32,133,72)\",\n \"info\": \"rgb(35,68,138)\"\n };\n parent.element.appendChild(this.canvas);\n }\n Decorator.prototype.$updateDecorators = function (config) {\n var colors = (this.renderer.theme.isDark === true) ? this.colors.dark : this.colors.light;\n if (config) {\n this.maxHeight = config.maxHeight;\n this.lineHeight = config.lineHeight;\n this.canvasHeight = config.height;\n var allLineHeight = (config.lastRow + 1) * this.lineHeight;\n if (allLineHeight < this.canvasHeight) {\n this.heightRatio = 1;\n }\n else {\n this.heightRatio = this.canvasHeight / this.maxHeight;\n }\n }\n var ctx = this.canvas.getContext(\"2d\");\n function compare(a, b) {\n if (a.priority < b.priority)\n return -1;\n if (a.priority > b.priority)\n return 1;\n return 0;\n }\n var annotations = this.renderer.session.$annotations;\n ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n if (annotations) {\n var priorities = {\n \"info\": 1,\n \"warning\": 2,\n \"error\": 3\n };\n annotations.forEach(function (item) {\n item.priority = priorities[item.type] || null;\n });\n annotations = annotations.sort(compare);\n var foldData = this.renderer.session.$foldData;\n for (var i = 0; i < annotations.length; i++) {\n var row = annotations[i].row;\n var compensateFold = this.compensateFoldRows(row, foldData);\n var currentY = Math.round((row - compensateFold) * this.lineHeight * this.heightRatio);\n var y1 = Math.round(((row - compensateFold) * this.lineHeight * this.heightRatio));\n var y2 = Math.round((((row - compensateFold) * this.lineHeight + this.lineHeight) * this.heightRatio));\n var height = y2 - y1;\n if (height < this.minDecorationHeight) {\n var yCenter = ((y1 + y2) / 2) | 0;\n if (yCenter < this.halfMinDecorationHeight) {\n yCenter = this.halfMinDecorationHeight;\n }\n else if (yCenter + this.halfMinDecorationHeight > this.canvasHeight) {\n yCenter = this.canvasHeight - this.halfMinDecorationHeight;\n }\n y1 = Math.round(yCenter - this.halfMinDecorationHeight);\n y2 = Math.round(yCenter + this.halfMinDecorationHeight);\n }\n ctx.fillStyle = colors[annotations[i].type] || null;\n ctx.fillRect(0, currentY, this.canvasWidth, y2 - y1);\n }\n }\n var cursor = this.renderer.session.selection.getCursor();\n if (cursor) {\n var compensateFold = this.compensateFoldRows(cursor.row, foldData);\n var currentY = Math.round((cursor.row - compensateFold) * this.lineHeight * this.heightRatio);\n ctx.fillStyle = \"rgba(0, 0, 0, 0.5)\";\n ctx.fillRect(0, currentY, this.canvasWidth, 2);\n }\n };\n Decorator.prototype.compensateFoldRows = function (row, foldData) {\n var compensateFold = 0;\n if (foldData && foldData.length > 0) {\n for (var j = 0; j < foldData.length; j++) {\n if (row > foldData[j].start.row && row < foldData[j].end.row) {\n compensateFold += row - foldData[j].start.row;\n }\n else if (row >= foldData[j].end.row) {\n compensateFold += foldData[j].end.row - foldData[j].start.row;\n }\n }\n }\n return compensateFold;\n };\n return Decorator;\n}());\noop.implement(Decorator.prototype, EventEmitter);\nexports.Decorator = Decorator;\n\n});\n\nace.define(\"ace/virtual_renderer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/config\",\"ace/layer/gutter\",\"ace/layer/marker\",\"ace/layer/text\",\"ace/layer/cursor\",\"ace/scrollbar\",\"ace/scrollbar\",\"ace/scrollbar_custom\",\"ace/scrollbar_custom\",\"ace/renderloop\",\"ace/layer/font_metrics\",\"ace/lib/event_emitter\",\"ace/css/editor-css\",\"ace/layer/decorators\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar lang = require(\"./lib/lang\");\nvar config = require(\"./config\");\nvar GutterLayer = require(\"./layer/gutter\").Gutter;\nvar MarkerLayer = require(\"./layer/marker\").Marker;\nvar TextLayer = require(\"./layer/text\").Text;\nvar CursorLayer = require(\"./layer/cursor\").Cursor;\nvar HScrollBar = require(\"./scrollbar\").HScrollBar;\nvar VScrollBar = require(\"./scrollbar\").VScrollBar;\nvar HScrollBarCustom = require(\"./scrollbar_custom\").HScrollBar;\nvar VScrollBarCustom = require(\"./scrollbar_custom\").VScrollBar;\nvar RenderLoop = require(\"./renderloop\").RenderLoop;\nvar FontMetrics = require(\"./layer/font_metrics\").FontMetrics;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar editorCss = require(\"./css/editor-css\");\nvar Decorator = require(\"./layer/decorators\").Decorator;\nvar useragent = require(\"./lib/useragent\");\ndom.importCssString(editorCss, \"ace_editor.css\", false);\nvar VirtualRenderer = /** @class */ (function () {\n function VirtualRenderer(container, theme) {\n var _self = this;\n this.container = container || dom.createElement(\"div\");\n dom.addCssClass(this.container, \"ace_editor\");\n if (dom.HI_DPI)\n dom.addCssClass(this.container, \"ace_hidpi\");\n this.setTheme(theme);\n if (config.get(\"useStrictCSP\") == null)\n config.set(\"useStrictCSP\", false);\n this.$gutter = dom.createElement(\"div\");\n this.$gutter.className = \"ace_gutter\";\n this.container.appendChild(this.$gutter);\n this.$gutter.setAttribute(\"aria-hidden\", true);\n this.scroller = dom.createElement(\"div\");\n this.scroller.className = \"ace_scroller\";\n this.container.appendChild(this.scroller);\n this.content = dom.createElement(\"div\");\n this.content.className = \"ace_content\";\n this.scroller.appendChild(this.content);\n this.$gutterLayer = new GutterLayer(this.$gutter);\n this.$gutterLayer.on(\"changeGutterWidth\", this.onGutterResize.bind(this));\n this.$markerBack = new MarkerLayer(this.content);\n var textLayer = this.$textLayer = new TextLayer(this.content);\n this.canvas = textLayer.element;\n this.$markerFront = new MarkerLayer(this.content);\n this.$cursorLayer = new CursorLayer(this.content);\n this.$horizScroll = false;\n this.$vScroll = false;\n this.scrollBar =\n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.on(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.on(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n this.scrollTop = 0;\n this.scrollLeft = 0;\n this.cursorPos = {\n row: 0,\n column: 0\n };\n this.$fontMetrics = new FontMetrics(this.container);\n this.$textLayer.$setFontMetrics(this.$fontMetrics);\n this.$textLayer.on(\"changeCharacterSize\", function (e) {\n _self.updateCharacterSize();\n _self.onResize(true, _self.gutterWidth, _self.$size.width, _self.$size.height);\n _self._signal(\"changeCharacterSize\", e);\n });\n this.$size = {\n width: 0,\n height: 0,\n scrollerHeight: 0,\n scrollerWidth: 0,\n $dirty: true\n };\n this.layerConfig = {\n width: 1,\n padding: 0,\n firstRow: 0,\n firstRowScreen: 0,\n lastRow: 0,\n lineHeight: 0,\n characterWidth: 0,\n minHeight: 1,\n maxHeight: 1,\n offset: 0,\n height: 1,\n gutterOffset: 1\n };\n this.scrollMargin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n this.margin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n this.$keepTextAreaAtCursor = !useragent.isIOS;\n this.$loop = new RenderLoop(this.$renderChanges.bind(this), this.container.ownerDocument.defaultView);\n this.$loop.schedule(this.CHANGE_FULL);\n this.updateCharacterSize();\n this.setPadding(4);\n this.$addResizeObserver();\n config.resetOptions(this);\n config._signal(\"renderer\", this);\n }\n VirtualRenderer.prototype.updateCharacterSize = function () {\n if (this.$textLayer.allowBoldFonts != this.$allowBoldFonts) {\n this.$allowBoldFonts = this.$textLayer.allowBoldFonts;\n this.setStyle(\"ace_nobold\", !this.$allowBoldFonts);\n }\n this.layerConfig.characterWidth =\n this.characterWidth = this.$textLayer.getCharacterWidth();\n this.layerConfig.lineHeight =\n this.lineHeight = this.$textLayer.getLineHeight();\n this.$updatePrintMargin();\n dom.setStyle(this.scroller.style, \"line-height\", this.lineHeight + \"px\");\n };\n VirtualRenderer.prototype.setSession = function (session) {\n if (this.session)\n this.session.doc.off(\"changeNewLineMode\", this.onChangeNewLineMode);\n this.session = session;\n if (session && this.scrollMargin.top && session.getScrollTop() <= 0)\n session.setScrollTop(-this.scrollMargin.top);\n this.$cursorLayer.setSession(session);\n this.$markerBack.setSession(session);\n this.$markerFront.setSession(session);\n this.$gutterLayer.setSession(session);\n this.$textLayer.setSession(session);\n if (!session)\n return;\n this.$loop.schedule(this.CHANGE_FULL);\n this.session.$setFontMetrics(this.$fontMetrics);\n this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null;\n this.onChangeNewLineMode = this.onChangeNewLineMode.bind(this);\n this.onChangeNewLineMode();\n this.session.doc.on(\"changeNewLineMode\", this.onChangeNewLineMode);\n };\n VirtualRenderer.prototype.updateLines = function (firstRow, lastRow, force) {\n if (lastRow === undefined)\n lastRow = Infinity;\n if (!this.$changedLines) {\n this.$changedLines = {\n firstRow: firstRow,\n lastRow: lastRow\n };\n }\n else {\n if (this.$changedLines.firstRow > firstRow)\n this.$changedLines.firstRow = firstRow;\n if (this.$changedLines.lastRow < lastRow)\n this.$changedLines.lastRow = lastRow;\n }\n if (this.$changedLines.lastRow < this.layerConfig.firstRow) {\n if (force)\n this.$changedLines.lastRow = this.layerConfig.lastRow;\n else\n return;\n }\n if (this.$changedLines.firstRow > this.layerConfig.lastRow)\n return;\n this.$loop.schedule(this.CHANGE_LINES);\n };\n VirtualRenderer.prototype.onChangeNewLineMode = function () {\n this.$loop.schedule(this.CHANGE_TEXT);\n this.$textLayer.$updateEolChar();\n this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR);\n };\n VirtualRenderer.prototype.onChangeTabSize = function () {\n this.$loop.schedule(this.CHANGE_TEXT | this.CHANGE_MARKER);\n this.$textLayer.onChangeTabSize();\n };\n VirtualRenderer.prototype.updateText = function () {\n this.$loop.schedule(this.CHANGE_TEXT);\n };\n VirtualRenderer.prototype.updateFull = function (force) {\n if (force)\n this.$renderChanges(this.CHANGE_FULL, true);\n else\n this.$loop.schedule(this.CHANGE_FULL);\n };\n VirtualRenderer.prototype.updateFontSize = function () {\n this.$textLayer.checkForSizeChanges();\n };\n VirtualRenderer.prototype.$updateSizeAsync = function () {\n if (this.$loop.pending)\n this.$size.$dirty = true;\n else\n this.onResize();\n };\n VirtualRenderer.prototype.onResize = function (force, gutterWidth, width, height) {\n if (this.resizing > 2)\n return;\n else if (this.resizing > 0)\n this.resizing++;\n else\n this.resizing = force ? 1 : 0;\n var el = this.container;\n if (!height)\n height = el.clientHeight || el.scrollHeight;\n if (!width)\n width = el.clientWidth || el.scrollWidth;\n var changes = this.$updateCachedSize(force, gutterWidth, width, height);\n if (this.$resizeTimer)\n this.$resizeTimer.cancel();\n if (!this.$size.scrollerHeight || (!width && !height))\n return this.resizing = 0;\n if (force)\n this.$gutterLayer.$padding = null;\n if (force)\n this.$renderChanges(changes | this.$changes, true);\n else\n this.$loop.schedule(changes | this.$changes);\n if (this.resizing)\n this.resizing = 0;\n this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null;\n if (this.$customScrollbar) {\n this.$updateCustomScrollbar(true);\n }\n };\n VirtualRenderer.prototype.$updateCachedSize = function (force, gutterWidth, width, height) {\n height -= (this.$extraHeight || 0);\n var changes = 0;\n var size = this.$size;\n var oldSize = {\n width: size.width,\n height: size.height,\n scrollerHeight: size.scrollerHeight,\n scrollerWidth: size.scrollerWidth\n };\n if (height && (force || size.height != height)) {\n size.height = height;\n changes |= this.CHANGE_SIZE;\n size.scrollerHeight = size.height;\n if (this.$horizScroll)\n size.scrollerHeight -= this.scrollBarH.getHeight();\n this.scrollBarV.setHeight(size.scrollerHeight);\n this.scrollBarV.element.style.bottom = this.scrollBarH.getHeight() + \"px\";\n changes = changes | this.CHANGE_SCROLL;\n }\n if (width && (force || size.width != width)) {\n changes |= this.CHANGE_SIZE;\n size.width = width;\n if (gutterWidth == null)\n gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n this.gutterWidth = gutterWidth;\n dom.setStyle(this.scrollBarH.element.style, \"left\", gutterWidth + \"px\");\n dom.setStyle(this.scroller.style, \"left\", gutterWidth + this.margin.left + \"px\");\n size.scrollerWidth = Math.max(0, width - gutterWidth - this.scrollBarV.getWidth() - this.margin.h);\n dom.setStyle(this.$gutter.style, \"left\", this.margin.left + \"px\");\n var right = this.scrollBarV.getWidth() + \"px\";\n dom.setStyle(this.scrollBarH.element.style, \"right\", right);\n dom.setStyle(this.scroller.style, \"right\", right);\n dom.setStyle(this.scroller.style, \"bottom\", this.scrollBarH.getHeight());\n this.scrollBarH.setWidth(size.scrollerWidth);\n if (this.session && this.session.getUseWrapMode() && this.adjustWrapLimit() || force) {\n changes |= this.CHANGE_FULL;\n }\n }\n size.$dirty = !width || !height;\n if (changes)\n this._signal(\"resize\", oldSize);\n return changes;\n };\n VirtualRenderer.prototype.onGutterResize = function (width) {\n var gutterWidth = this.$showGutter ? width : 0;\n if (gutterWidth != this.gutterWidth)\n this.$changes |= this.$updateCachedSize(true, gutterWidth, this.$size.width, this.$size.height);\n if (this.session.getUseWrapMode() && this.adjustWrapLimit()) {\n this.$loop.schedule(this.CHANGE_FULL);\n }\n else if (this.$size.$dirty) {\n this.$loop.schedule(this.CHANGE_FULL);\n }\n else {\n this.$computeLayerConfig();\n }\n };\n VirtualRenderer.prototype.adjustWrapLimit = function () {\n var availableWidth = this.$size.scrollerWidth - this.$padding * 2;\n var limit = Math.floor(availableWidth / this.characterWidth);\n return this.session.adjustWrapLimit(limit, this.$showPrintMargin && this.$printMarginColumn);\n };\n VirtualRenderer.prototype.setAnimatedScroll = function (shouldAnimate) {\n this.setOption(\"animatedScroll\", shouldAnimate);\n };\n VirtualRenderer.prototype.getAnimatedScroll = function () {\n return this.$animatedScroll;\n };\n VirtualRenderer.prototype.setShowInvisibles = function (showInvisibles) {\n this.setOption(\"showInvisibles\", showInvisibles);\n this.session.$bidiHandler.setShowInvisibles(showInvisibles);\n };\n VirtualRenderer.prototype.getShowInvisibles = function () {\n return this.getOption(\"showInvisibles\");\n };\n VirtualRenderer.prototype.getDisplayIndentGuides = function () {\n return this.getOption(\"displayIndentGuides\");\n };\n VirtualRenderer.prototype.setDisplayIndentGuides = function (display) {\n this.setOption(\"displayIndentGuides\", display);\n };\n VirtualRenderer.prototype.getHighlightIndentGuides = function () {\n return this.getOption(\"highlightIndentGuides\");\n };\n VirtualRenderer.prototype.setHighlightIndentGuides = function (highlight) {\n this.setOption(\"highlightIndentGuides\", highlight);\n };\n VirtualRenderer.prototype.setShowPrintMargin = function (showPrintMargin) {\n this.setOption(\"showPrintMargin\", showPrintMargin);\n };\n VirtualRenderer.prototype.getShowPrintMargin = function () {\n return this.getOption(\"showPrintMargin\");\n };\n VirtualRenderer.prototype.setPrintMarginColumn = function (showPrintMargin) {\n this.setOption(\"printMarginColumn\", showPrintMargin);\n };\n VirtualRenderer.prototype.getPrintMarginColumn = function () {\n return this.getOption(\"printMarginColumn\");\n };\n VirtualRenderer.prototype.getShowGutter = function () {\n return this.getOption(\"showGutter\");\n };\n VirtualRenderer.prototype.setShowGutter = function (show) {\n return this.setOption(\"showGutter\", show);\n };\n VirtualRenderer.prototype.getFadeFoldWidgets = function () {\n return this.getOption(\"fadeFoldWidgets\");\n };\n VirtualRenderer.prototype.setFadeFoldWidgets = function (show) {\n this.setOption(\"fadeFoldWidgets\", show);\n };\n VirtualRenderer.prototype.setHighlightGutterLine = function (shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n VirtualRenderer.prototype.getHighlightGutterLine = function () {\n return this.getOption(\"highlightGutterLine\");\n };\n VirtualRenderer.prototype.$updatePrintMargin = function () {\n if (!this.$showPrintMargin && !this.$printMarginEl)\n return;\n if (!this.$printMarginEl) {\n var containerEl = dom.createElement(\"div\");\n containerEl.className = \"ace_layer ace_print-margin-layer\";\n this.$printMarginEl = dom.createElement(\"div\");\n this.$printMarginEl.className = \"ace_print-margin\";\n containerEl.appendChild(this.$printMarginEl);\n this.content.insertBefore(containerEl, this.content.firstChild);\n }\n var style = this.$printMarginEl.style;\n style.left = Math.round(this.characterWidth * this.$printMarginColumn + this.$padding) + \"px\";\n style.visibility = this.$showPrintMargin ? \"visible\" : \"hidden\";\n if (this.session && this.session.$wrap == -1)\n this.adjustWrapLimit();\n };\n VirtualRenderer.prototype.getContainerElement = function () {\n return this.container;\n };\n VirtualRenderer.prototype.getMouseEventTarget = function () {\n return this.scroller;\n };\n VirtualRenderer.prototype.getTextAreaContainer = function () {\n return this.container;\n };\n VirtualRenderer.prototype.$moveTextAreaToCursor = function () {\n if (this.$isMousePressed)\n return;\n var style = this.textarea.style;\n var composition = this.$composition;\n if (!this.$keepTextAreaAtCursor && !composition) {\n dom.translate(this.textarea, -100, 0);\n return;\n }\n var pixelPos = this.$cursorLayer.$pixelPos;\n if (!pixelPos)\n return;\n if (composition && composition.markerRange)\n pixelPos = this.$cursorLayer.getPixelPosition(composition.markerRange.start, true);\n var config = this.layerConfig;\n var posTop = pixelPos.top;\n var posLeft = pixelPos.left;\n posTop -= config.offset;\n var h = composition && composition.useTextareaForIME || useragent.isMobile ? this.lineHeight : 1;\n if (posTop < 0 || posTop > config.height - h) {\n dom.translate(this.textarea, 0, 0);\n return;\n }\n var w = 1;\n var maxTop = this.$size.height - h;\n if (!composition) {\n posTop += this.lineHeight;\n }\n else {\n if (composition.useTextareaForIME) {\n var val = this.textarea.value;\n w = this.characterWidth * (this.session.$getStringScreenWidth(val)[0]);\n }\n else {\n posTop += this.lineHeight + 2;\n }\n }\n posLeft -= this.scrollLeft;\n if (posLeft > this.$size.scrollerWidth - w)\n posLeft = this.$size.scrollerWidth - w;\n posLeft += this.gutterWidth + this.margin.left;\n dom.setStyle(style, \"height\", h + \"px\");\n dom.setStyle(style, \"width\", w + \"px\");\n dom.translate(this.textarea, Math.min(posLeft, this.$size.scrollerWidth - w), Math.min(posTop, maxTop));\n };\n VirtualRenderer.prototype.getFirstVisibleRow = function () {\n return this.layerConfig.firstRow;\n };\n VirtualRenderer.prototype.getFirstFullyVisibleRow = function () {\n return this.layerConfig.firstRow + (this.layerConfig.offset === 0 ? 0 : 1);\n };\n VirtualRenderer.prototype.getLastFullyVisibleRow = function () {\n var config = this.layerConfig;\n var lastRow = config.lastRow;\n var top = this.session.documentToScreenRow(lastRow, 0) * config.lineHeight;\n if (top - this.session.getScrollTop() > config.height - config.lineHeight)\n return lastRow - 1;\n return lastRow;\n };\n VirtualRenderer.prototype.getLastVisibleRow = function () {\n return this.layerConfig.lastRow;\n };\n VirtualRenderer.prototype.setPadding = function (padding) {\n this.$padding = padding;\n this.$textLayer.setPadding(padding);\n this.$cursorLayer.setPadding(padding);\n this.$markerFront.setPadding(padding);\n this.$markerBack.setPadding(padding);\n this.$loop.schedule(this.CHANGE_FULL);\n this.$updatePrintMargin();\n };\n VirtualRenderer.prototype.setScrollMargin = function (top, bottom, left, right) {\n var sm = this.scrollMargin;\n sm.top = top | 0;\n sm.bottom = bottom | 0;\n sm.right = right | 0;\n sm.left = left | 0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n if (sm.top && this.scrollTop <= 0 && this.session)\n this.session.setScrollTop(-sm.top);\n this.updateFull();\n };\n VirtualRenderer.prototype.setMargin = function (top, bottom, left, right) {\n var sm = this.margin;\n sm.top = top | 0;\n sm.bottom = bottom | 0;\n sm.right = right | 0;\n sm.left = left | 0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n this.$updateCachedSize(true, this.gutterWidth, this.$size.width, this.$size.height);\n this.updateFull();\n };\n VirtualRenderer.prototype.getHScrollBarAlwaysVisible = function () {\n return this.$hScrollBarAlwaysVisible;\n };\n VirtualRenderer.prototype.setHScrollBarAlwaysVisible = function (alwaysVisible) {\n this.setOption(\"hScrollBarAlwaysVisible\", alwaysVisible);\n };\n VirtualRenderer.prototype.getVScrollBarAlwaysVisible = function () {\n return this.$vScrollBarAlwaysVisible;\n };\n VirtualRenderer.prototype.setVScrollBarAlwaysVisible = function (alwaysVisible) {\n this.setOption(\"vScrollBarAlwaysVisible\", alwaysVisible);\n };\n VirtualRenderer.prototype.$updateScrollBarV = function () {\n var scrollHeight = this.layerConfig.maxHeight;\n var scrollerHeight = this.$size.scrollerHeight;\n if (!this.$maxLines && this.$scrollPastEnd) {\n scrollHeight -= (scrollerHeight - this.lineHeight) * this.$scrollPastEnd;\n if (this.scrollTop > scrollHeight - scrollerHeight) {\n scrollHeight = this.scrollTop + scrollerHeight;\n this.scrollBarV.scrollTop = null;\n }\n }\n this.scrollBarV.setScrollHeight(scrollHeight + this.scrollMargin.v);\n this.scrollBarV.setScrollTop(this.scrollTop + this.scrollMargin.top);\n };\n VirtualRenderer.prototype.$updateScrollBarH = function () {\n this.scrollBarH.setScrollWidth(this.layerConfig.width + 2 * this.$padding + this.scrollMargin.h);\n this.scrollBarH.setScrollLeft(this.scrollLeft + this.scrollMargin.left);\n };\n VirtualRenderer.prototype.freeze = function () {\n this.$frozen = true;\n };\n VirtualRenderer.prototype.unfreeze = function () {\n this.$frozen = false;\n };\n VirtualRenderer.prototype.$renderChanges = function (changes, force) {\n if (this.$changes) {\n changes |= this.$changes;\n this.$changes = 0;\n }\n if ((!this.session || !this.container.offsetWidth || this.$frozen) || (!changes && !force)) {\n this.$changes |= changes;\n return;\n }\n if (this.$size.$dirty) {\n this.$changes |= changes;\n return this.onResize(true);\n }\n if (!this.lineHeight) {\n this.$textLayer.checkForSizeChanges();\n }\n this._signal(\"beforeRender\", changes);\n if (this.session && this.session.$bidiHandler)\n this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);\n var config = this.layerConfig;\n if (changes & this.CHANGE_FULL ||\n changes & this.CHANGE_SIZE ||\n changes & this.CHANGE_TEXT ||\n changes & this.CHANGE_LINES ||\n changes & this.CHANGE_SCROLL ||\n changes & this.CHANGE_H_SCROLL) {\n changes |= this.$computeLayerConfig() | this.$loop.clear();\n if (config.firstRow != this.layerConfig.firstRow && config.firstRowScreen == this.layerConfig.firstRowScreen) {\n var st = this.scrollTop + (config.firstRow - Math.max(this.layerConfig.firstRow, 0)) * this.lineHeight;\n if (st > 0) {\n this.scrollTop = st;\n changes = changes | this.CHANGE_SCROLL;\n changes |= this.$computeLayerConfig() | this.$loop.clear();\n }\n }\n config = this.layerConfig;\n this.$updateScrollBarV();\n if (changes & this.CHANGE_H_SCROLL)\n this.$updateScrollBarH();\n dom.translate(this.content, -this.scrollLeft, -config.offset);\n var width = config.width + 2 * this.$padding + \"px\";\n var height = config.minHeight + \"px\";\n dom.setStyle(this.content.style, \"width\", width);\n dom.setStyle(this.content.style, \"height\", height);\n }\n if (changes & this.CHANGE_H_SCROLL) {\n dom.translate(this.content, -this.scrollLeft, -config.offset);\n this.scroller.className = this.scrollLeft <= 0 ? \"ace_scroller \" : \"ace_scroller ace_scroll-left \";\n if (this.enableKeyboardAccessibility)\n this.scroller.className += this.keyboardFocusClassName;\n }\n if (changes & this.CHANGE_FULL) {\n this.$changedLines = null;\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\", changes);\n return;\n }\n if (changes & this.CHANGE_SCROLL) {\n this.$changedLines = null;\n if (changes & this.CHANGE_TEXT || changes & this.CHANGE_LINES)\n this.$textLayer.update(config);\n else\n this.$textLayer.scrollLines(config);\n if (this.$showGutter) {\n if (changes & this.CHANGE_GUTTER || changes & this.CHANGE_LINES)\n this.$gutterLayer.update(config);\n else\n this.$gutterLayer.scrollLines(config);\n }\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\", changes);\n return;\n }\n if (changes & this.CHANGE_TEXT) {\n this.$changedLines = null;\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_LINES) {\n if (this.$updateLines() || (changes & this.CHANGE_GUTTER) && this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_TEXT || changes & this.CHANGE_GUTTER) {\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_CURSOR) {\n if (this.$highlightGutterLine)\n this.$gutterLayer.updateLineHighlight(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n if (changes & this.CHANGE_CURSOR) {\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n }\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_FRONT)) {\n this.$markerFront.update(config);\n }\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_BACK)) {\n this.$markerBack.update(config);\n }\n this._signal(\"afterRender\", changes);\n };\n VirtualRenderer.prototype.$autosize = function () {\n var height = this.session.getScreenLength() * this.lineHeight;\n var maxHeight = this.$maxLines * this.lineHeight;\n var desiredHeight = Math.min(maxHeight, Math.max((this.$minLines || 1) * this.lineHeight, height)) + this.scrollMargin.v + (this.$extraHeight || 0);\n if (this.$horizScroll)\n desiredHeight += this.scrollBarH.getHeight();\n if (this.$maxPixelHeight && desiredHeight > this.$maxPixelHeight)\n desiredHeight = this.$maxPixelHeight;\n var hideScrollbars = desiredHeight <= 2 * this.lineHeight;\n var vScroll = !hideScrollbars && height > maxHeight;\n if (desiredHeight != this.desiredHeight ||\n this.$size.height != this.desiredHeight || vScroll != this.$vScroll) {\n if (vScroll != this.$vScroll) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n var w = this.container.clientWidth;\n this.container.style.height = desiredHeight + \"px\";\n this.$updateCachedSize(true, this.$gutterWidth, w, desiredHeight);\n this.desiredHeight = desiredHeight;\n this._signal(\"autosize\");\n }\n };\n VirtualRenderer.prototype.$computeLayerConfig = function () {\n var session = this.session;\n var size = this.$size;\n var hideScrollbars = size.height <= 2 * this.lineHeight;\n var screenLines = this.session.getScreenLength();\n var maxHeight = screenLines * this.lineHeight;\n var longestLine = this.$getLongestLine();\n var horizScroll = !hideScrollbars && (this.$hScrollBarAlwaysVisible ||\n size.scrollerWidth - longestLine - 2 * this.$padding < 0);\n var hScrollChanged = this.$horizScroll !== horizScroll;\n if (hScrollChanged) {\n this.$horizScroll = horizScroll;\n this.scrollBarH.setVisible(horizScroll);\n }\n var vScrollBefore = this.$vScroll; // autosize can change vscroll value in which case we need to update longestLine\n if (this.$maxLines && this.lineHeight > 1)\n this.$autosize();\n var minHeight = size.scrollerHeight + this.lineHeight;\n var scrollPastEnd = !this.$maxLines && this.$scrollPastEnd\n ? (size.scrollerHeight - this.lineHeight) * this.$scrollPastEnd\n : 0;\n maxHeight += scrollPastEnd;\n var sm = this.scrollMargin;\n this.session.setScrollTop(Math.max(-sm.top, Math.min(this.scrollTop, maxHeight - size.scrollerHeight + sm.bottom)));\n this.session.setScrollLeft(Math.max(-sm.left, Math.min(this.scrollLeft, longestLine + 2 * this.$padding - size.scrollerWidth + sm.right)));\n var vScroll = !hideScrollbars && (this.$vScrollBarAlwaysVisible ||\n size.scrollerHeight - maxHeight + scrollPastEnd < 0 || this.scrollTop > sm.top);\n var vScrollChanged = vScrollBefore !== vScroll;\n if (vScrollChanged) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n var offset = this.scrollTop % this.lineHeight;\n var lineCount = Math.ceil(minHeight / this.lineHeight) - 1;\n var firstRow = Math.max(0, Math.round((this.scrollTop - offset) / this.lineHeight));\n var lastRow = firstRow + lineCount;\n var firstRowScreen, firstRowHeight;\n var lineHeight = this.lineHeight;\n firstRow = session.screenToDocumentRow(firstRow, 0);\n var foldLine = session.getFoldLine(firstRow);\n if (foldLine) {\n firstRow = foldLine.start.row;\n }\n firstRowScreen = session.documentToScreenRow(firstRow, 0);\n firstRowHeight = session.getRowLength(firstRow) * lineHeight;\n lastRow = Math.min(session.screenToDocumentRow(lastRow, 0), session.getLength() - 1);\n minHeight = size.scrollerHeight + session.getRowLength(lastRow) * lineHeight +\n firstRowHeight;\n offset = this.scrollTop - firstRowScreen * lineHeight;\n var changes = 0;\n if (this.layerConfig.width != longestLine || hScrollChanged)\n changes = this.CHANGE_H_SCROLL;\n if (hScrollChanged || vScrollChanged) {\n changes |= this.$updateCachedSize(true, this.gutterWidth, size.width, size.height);\n this._signal(\"scrollbarVisibilityChanged\");\n if (vScrollChanged)\n longestLine = this.$getLongestLine();\n }\n this.layerConfig = {\n width: longestLine,\n padding: this.$padding,\n firstRow: firstRow,\n firstRowScreen: firstRowScreen,\n lastRow: lastRow,\n lineHeight: lineHeight,\n characterWidth: this.characterWidth,\n minHeight: minHeight,\n maxHeight: maxHeight,\n offset: offset,\n gutterOffset: lineHeight ? Math.max(0, Math.ceil((offset + size.height - size.scrollerHeight) / lineHeight)) : 0,\n height: this.$size.scrollerHeight\n };\n if (this.session.$bidiHandler)\n this.session.$bidiHandler.setContentWidth(longestLine - this.$padding);\n return changes;\n };\n VirtualRenderer.prototype.$updateLines = function () {\n if (!this.$changedLines)\n return;\n var firstRow = this.$changedLines.firstRow;\n var lastRow = this.$changedLines.lastRow;\n this.$changedLines = null;\n var layerConfig = this.layerConfig;\n if (firstRow > layerConfig.lastRow + 1) {\n return;\n }\n if (lastRow < layerConfig.firstRow) {\n return;\n }\n if (lastRow === Infinity) {\n if (this.$showGutter)\n this.$gutterLayer.update(layerConfig);\n this.$textLayer.update(layerConfig);\n return;\n }\n this.$textLayer.updateLines(layerConfig, firstRow, lastRow);\n return true;\n };\n VirtualRenderer.prototype.$getLongestLine = function () {\n var charCount = this.session.getScreenWidth();\n if (this.showInvisibles && !this.session.$useWrapMode)\n charCount += 1;\n if (this.$textLayer && charCount > this.$textLayer.MAX_LINE_LENGTH)\n charCount = this.$textLayer.MAX_LINE_LENGTH + 30;\n return Math.max(this.$size.scrollerWidth - 2 * this.$padding, Math.round(charCount * this.characterWidth));\n };\n VirtualRenderer.prototype.updateFrontMarkers = function () {\n this.$markerFront.setMarkers(this.session.getMarkers(true));\n this.$loop.schedule(this.CHANGE_MARKER_FRONT);\n };\n VirtualRenderer.prototype.updateBackMarkers = function () {\n this.$markerBack.setMarkers(this.session.getMarkers());\n this.$loop.schedule(this.CHANGE_MARKER_BACK);\n };\n VirtualRenderer.prototype.addGutterDecoration = function (row, className) {\n this.$gutterLayer.addGutterDecoration(row, className);\n };\n VirtualRenderer.prototype.removeGutterDecoration = function (row, className) {\n this.$gutterLayer.removeGutterDecoration(row, className);\n };\n VirtualRenderer.prototype.updateBreakpoints = function (rows) {\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n VirtualRenderer.prototype.setAnnotations = function (annotations) {\n this.$gutterLayer.setAnnotations(annotations);\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n VirtualRenderer.prototype.updateCursor = function () {\n this.$loop.schedule(this.CHANGE_CURSOR);\n };\n VirtualRenderer.prototype.hideCursor = function () {\n this.$cursorLayer.hideCursor();\n };\n VirtualRenderer.prototype.showCursor = function () {\n this.$cursorLayer.showCursor();\n };\n VirtualRenderer.prototype.scrollSelectionIntoView = function (anchor, lead, offset) {\n this.scrollCursorIntoView(anchor, offset);\n this.scrollCursorIntoView(lead, offset);\n };\n VirtualRenderer.prototype.scrollCursorIntoView = function (cursor, offset, $viewMargin) {\n if (this.$size.scrollerHeight === 0)\n return;\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var newLeft = pos.left;\n var newTop = pos.top;\n var topMargin = $viewMargin && $viewMargin.top || 0;\n var bottomMargin = $viewMargin && $viewMargin.bottom || 0;\n if (this.$scrollAnimation) {\n this.$stopAnimation = true;\n }\n var currentTop = this.$scrollAnimation ? this.session.getScrollTop() : this.scrollTop;\n if (currentTop + topMargin > newTop) {\n if (offset && currentTop + topMargin > newTop + this.lineHeight)\n newTop -= offset * this.$size.scrollerHeight;\n if (newTop === 0)\n newTop = -this.scrollMargin.top;\n this.session.setScrollTop(newTop);\n }\n else if (currentTop + this.$size.scrollerHeight - bottomMargin < newTop + this.lineHeight) {\n if (offset && currentTop + this.$size.scrollerHeight - bottomMargin < newTop - this.lineHeight)\n newTop += offset * this.$size.scrollerHeight;\n this.session.setScrollTop(newTop + this.lineHeight + bottomMargin - this.$size.scrollerHeight);\n }\n var currentLeft = this.scrollLeft;\n var twoCharsWidth = 2 * this.layerConfig.characterWidth;\n if (newLeft - twoCharsWidth < currentLeft) {\n newLeft -= twoCharsWidth;\n if (newLeft < this.$padding + twoCharsWidth) {\n newLeft = -this.scrollMargin.left;\n }\n this.session.setScrollLeft(newLeft);\n }\n else {\n newLeft += twoCharsWidth;\n if (currentLeft + this.$size.scrollerWidth < newLeft + this.characterWidth) {\n this.session.setScrollLeft(Math.round(newLeft + this.characterWidth - this.$size.scrollerWidth));\n }\n else if (currentLeft <= this.$padding && newLeft - currentLeft < this.characterWidth) {\n this.session.setScrollLeft(0);\n }\n }\n };\n VirtualRenderer.prototype.getScrollTop = function () {\n return this.session.getScrollTop();\n };\n VirtualRenderer.prototype.getScrollLeft = function () {\n return this.session.getScrollLeft();\n };\n VirtualRenderer.prototype.getScrollTopRow = function () {\n return this.scrollTop / this.lineHeight;\n };\n VirtualRenderer.prototype.getScrollBottomRow = function () {\n return Math.max(0, Math.floor((this.scrollTop + this.$size.scrollerHeight) / this.lineHeight) - 1);\n };\n VirtualRenderer.prototype.scrollToRow = function (row) {\n this.session.setScrollTop(row * this.lineHeight);\n };\n VirtualRenderer.prototype.alignCursor = function (cursor, alignment) {\n if (typeof cursor == \"number\")\n cursor = { row: cursor, column: 0 };\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var h = this.$size.scrollerHeight - this.lineHeight;\n var offset = pos.top - h * (alignment || 0);\n this.session.setScrollTop(offset);\n return offset;\n };\n VirtualRenderer.prototype.$calcSteps = function (fromValue, toValue) {\n var i = 0;\n var l = this.STEPS;\n var steps = [];\n var func = function (t, x_min, dx) {\n return dx * (Math.pow(t - 1, 3) + 1) + x_min;\n };\n for (i = 0; i < l; ++i)\n steps.push(func(i / this.STEPS, fromValue, toValue - fromValue));\n return steps;\n };\n VirtualRenderer.prototype.scrollToLine = function (line, center, animate, callback) {\n var pos = this.$cursorLayer.getPixelPosition({ row: line, column: 0 });\n var offset = pos.top;\n if (center)\n offset -= this.$size.scrollerHeight / 2;\n var initialScroll = this.scrollTop;\n this.session.setScrollTop(offset);\n if (animate !== false)\n this.animateScrolling(initialScroll, callback);\n };\n VirtualRenderer.prototype.animateScrolling = function (fromValue, callback) {\n var toValue = this.scrollTop;\n if (!this.$animatedScroll)\n return;\n var _self = this;\n if (fromValue == toValue)\n return;\n if (this.$scrollAnimation) {\n var oldSteps = this.$scrollAnimation.steps;\n if (oldSteps.length) {\n fromValue = oldSteps[0];\n if (fromValue == toValue)\n return;\n }\n }\n var steps = _self.$calcSteps(fromValue, toValue);\n this.$scrollAnimation = { from: fromValue, to: toValue, steps: steps };\n clearInterval(this.$timer);\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n function endAnimation() {\n _self.$timer = clearInterval(_self.$timer);\n _self.$scrollAnimation = null;\n _self.$stopAnimation = false;\n callback && callback();\n }\n this.$timer = setInterval(function () {\n if (_self.$stopAnimation) {\n endAnimation();\n return;\n }\n if (!_self.session)\n return clearInterval(_self.$timer);\n if (steps.length) {\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n }\n else if (toValue != null) {\n _self.session.$scrollTop = -1;\n _self.session.setScrollTop(toValue);\n toValue = null;\n }\n else {\n endAnimation();\n }\n }, 10);\n };\n VirtualRenderer.prototype.scrollToY = function (scrollTop) {\n if (this.scrollTop !== scrollTop) {\n this.$loop.schedule(this.CHANGE_SCROLL);\n this.scrollTop = scrollTop;\n }\n };\n VirtualRenderer.prototype.scrollToX = function (scrollLeft) {\n if (this.scrollLeft !== scrollLeft)\n this.scrollLeft = scrollLeft;\n this.$loop.schedule(this.CHANGE_H_SCROLL);\n };\n VirtualRenderer.prototype.scrollTo = function (x, y) {\n this.session.setScrollTop(y);\n this.session.setScrollLeft(x);\n };\n VirtualRenderer.prototype.scrollBy = function (deltaX, deltaY) {\n deltaY && this.session.setScrollTop(this.session.getScrollTop() + deltaY);\n deltaX && this.session.setScrollLeft(this.session.getScrollLeft() + deltaX);\n };\n VirtualRenderer.prototype.isScrollableBy = function (deltaX, deltaY) {\n if (deltaY < 0 && this.session.getScrollTop() >= 1 - this.scrollMargin.top)\n return true;\n if (deltaY > 0 && this.session.getScrollTop() + this.$size.scrollerHeight\n - this.layerConfig.maxHeight < -1 + this.scrollMargin.bottom)\n return true;\n if (deltaX < 0 && this.session.getScrollLeft() >= 1 - this.scrollMargin.left)\n return true;\n if (deltaX > 0 && this.session.getScrollLeft() + this.$size.scrollerWidth\n - this.layerConfig.width < -1 + this.scrollMargin.right)\n return true;\n };\n VirtualRenderer.prototype.pixelToScreenCoordinates = function (x, y) {\n var canvasPos;\n if (this.$hasCssTransforms) {\n canvasPos = { top: 0, left: 0 };\n var p = this.$fontMetrics.transformCoordinates([x, y]);\n x = p[1] - this.gutterWidth - this.margin.left;\n y = p[0];\n }\n else {\n canvasPos = this.scroller.getBoundingClientRect();\n }\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n var offset = offsetX / this.characterWidth;\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n var col = this.$blockCursor ? Math.floor(offset) : Math.round(offset);\n return { row: row, column: col, side: offset - col > 0 ? 1 : -1, offsetX: offsetX };\n };\n VirtualRenderer.prototype.screenToTextCoordinates = function (x, y) {\n var canvasPos;\n if (this.$hasCssTransforms) {\n canvasPos = { top: 0, left: 0 };\n var p = this.$fontMetrics.transformCoordinates([x, y]);\n x = p[1] - this.gutterWidth - this.margin.left;\n y = p[0];\n }\n else {\n canvasPos = this.scroller.getBoundingClientRect();\n }\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n var offset = offsetX / this.characterWidth;\n var col = this.$blockCursor ? Math.floor(offset) : Math.round(offset);\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n return this.session.screenToDocumentPosition(row, Math.max(col, 0), offsetX);\n };\n VirtualRenderer.prototype.textToScreenCoordinates = function (row, column) {\n var canvasPos = this.scroller.getBoundingClientRect();\n var pos = this.session.documentToScreenPosition(row, column);\n var x = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : Math.round(pos.column * this.characterWidth));\n var y = pos.row * this.lineHeight;\n return {\n pageX: canvasPos.left + x - this.scrollLeft,\n pageY: canvasPos.top + y - this.scrollTop\n };\n };\n VirtualRenderer.prototype.visualizeFocus = function () {\n dom.addCssClass(this.container, \"ace_focus\");\n };\n VirtualRenderer.prototype.visualizeBlur = function () {\n dom.removeCssClass(this.container, \"ace_focus\");\n };\n VirtualRenderer.prototype.showComposition = function (composition) {\n this.$composition = composition;\n if (!composition.cssText) {\n composition.cssText = this.textarea.style.cssText;\n }\n if (composition.useTextareaForIME == undefined)\n composition.useTextareaForIME = this.$useTextareaForIME;\n if (this.$useTextareaForIME) {\n dom.addCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = \"\";\n this.$moveTextAreaToCursor();\n this.$cursorLayer.element.style.display = \"none\";\n }\n else {\n composition.markerId = this.session.addMarker(composition.markerRange, \"ace_composition_marker\", \"text\");\n }\n };\n VirtualRenderer.prototype.setCompositionText = function (text) {\n var cursor = this.session.selection.cursor;\n this.addToken(text, \"composition_placeholder\", cursor.row, cursor.column);\n this.$moveTextAreaToCursor();\n };\n VirtualRenderer.prototype.hideComposition = function () {\n if (!this.$composition)\n return;\n if (this.$composition.markerId)\n this.session.removeMarker(this.$composition.markerId);\n dom.removeCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = this.$composition.cssText;\n var cursor = this.session.selection.cursor;\n this.removeExtraToken(cursor.row, cursor.column);\n this.$composition = null;\n this.$cursorLayer.element.style.display = \"\";\n };\n VirtualRenderer.prototype.setGhostText = function (text, position) {\n var cursor = this.session.selection.cursor;\n var insertPosition = position || { row: cursor.row, column: cursor.column };\n this.removeGhostText();\n var textLines = text.split(\"\\n\");\n this.addToken(textLines[0], \"ghost_text\", insertPosition.row, insertPosition.column);\n this.$ghostText = {\n text: text,\n position: {\n row: insertPosition.row,\n column: insertPosition.column\n }\n };\n if (textLines.length > 1) {\n this.$ghostTextWidget = {\n text: textLines.slice(1).join(\"\\n\"),\n row: insertPosition.row,\n column: insertPosition.column,\n className: \"ace_ghost_text\"\n };\n this.session.widgetManager.addLineWidget(this.$ghostTextWidget);\n var pixelPosition = this.$cursorLayer.getPixelPosition(insertPosition, true);\n var el = this.container;\n var height = el.getBoundingClientRect().height;\n var ghostTextHeight = textLines.length * this.lineHeight;\n var fitsY = ghostTextHeight < height - pixelPosition.top;\n if (fitsY)\n return;\n if (ghostTextHeight < height) {\n this.scrollBy(0, (textLines.length - 1) * this.lineHeight);\n }\n else {\n this.scrollBy(0, pixelPosition.top);\n }\n }\n };\n VirtualRenderer.prototype.removeGhostText = function () {\n if (!this.$ghostText)\n return;\n var position = this.$ghostText.position;\n this.removeExtraToken(position.row, position.column);\n if (this.$ghostTextWidget) {\n this.session.widgetManager.removeLineWidget(this.$ghostTextWidget);\n this.$ghostTextWidget = null;\n }\n this.$ghostText = null;\n };\n VirtualRenderer.prototype.addToken = function (text, type, row, column) {\n var session = this.session;\n session.bgTokenizer.lines[row] = null;\n var newToken = { type: type, value: text };\n var tokens = session.getTokens(row);\n if (column == null || !tokens.length) {\n tokens.push(newToken);\n }\n else {\n var l = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n l += token.value.length;\n if (column <= l) {\n var diff = token.value.length - (l - column);\n var before = token.value.slice(0, diff);\n var after = token.value.slice(diff);\n tokens.splice(i, 1, { type: token.type, value: before }, newToken, { type: token.type, value: after });\n break;\n }\n }\n }\n this.updateLines(row, row);\n };\n VirtualRenderer.prototype.removeExtraToken = function (row, column) {\n this.session.bgTokenizer.lines[row] = null;\n this.updateLines(row, row);\n };\n VirtualRenderer.prototype.setTheme = function (theme, cb) {\n var _self = this;\n this.$themeId = theme;\n _self._dispatchEvent('themeChange', { theme: theme });\n if (!theme || typeof theme == \"string\") {\n var moduleName = theme || this.$options.theme.initialValue;\n config.loadModule([\"theme\", moduleName], afterLoad);\n }\n else {\n afterLoad(theme);\n }\n function afterLoad(module) {\n if (_self.$themeId != theme)\n return cb && cb();\n if (!module || !module.cssClass)\n throw new Error(\"couldn't load module \" + theme + \" or it didn't call define\");\n if (module.$id)\n _self.$themeId = module.$id;\n dom.importCssString(module.cssText, module.cssClass, _self.container);\n if (_self.theme)\n dom.removeCssClass(_self.container, _self.theme.cssClass);\n var padding = \"padding\" in module ? module.padding\n : \"padding\" in (_self.theme || {}) ? 4 : _self.$padding;\n if (_self.$padding && padding != _self.$padding)\n _self.setPadding(padding);\n _self.$theme = module.cssClass;\n _self.theme = module;\n dom.addCssClass(_self.container, module.cssClass);\n dom.setCssClass(_self.container, \"ace_dark\", module.isDark);\n if (_self.$size) {\n _self.$size.width = 0;\n _self.$updateSizeAsync();\n }\n _self._dispatchEvent('themeLoaded', { theme: module });\n cb && cb();\n }\n };\n VirtualRenderer.prototype.getTheme = function () {\n return this.$themeId;\n };\n VirtualRenderer.prototype.setStyle = function (style, include) {\n dom.setCssClass(this.container, style, include !== false);\n };\n VirtualRenderer.prototype.unsetStyle = function (style) {\n dom.removeCssClass(this.container, style);\n };\n VirtualRenderer.prototype.setCursorStyle = function (style) {\n dom.setStyle(this.scroller.style, \"cursor\", style);\n };\n VirtualRenderer.prototype.setMouseCursor = function (cursorStyle) {\n dom.setStyle(this.scroller.style, \"cursor\", cursorStyle);\n };\n VirtualRenderer.prototype.attachToShadowRoot = function () {\n dom.importCssString(editorCss, \"ace_editor.css\", this.container);\n };\n VirtualRenderer.prototype.destroy = function () {\n this.freeze();\n this.$fontMetrics.destroy();\n this.$cursorLayer.destroy();\n this.removeAllListeners();\n this.container.textContent = \"\";\n this.setOption(\"useResizeObserver\", false);\n };\n VirtualRenderer.prototype.$updateCustomScrollbar = function (val) {\n var _self = this;\n this.$horizScroll = this.$vScroll = null;\n this.scrollBarV.element.remove();\n this.scrollBarH.element.remove();\n if (this.$scrollDecorator) {\n delete this.$scrollDecorator;\n }\n if (val === true) {\n this.scrollBarV = new VScrollBarCustom(this.container, this);\n this.scrollBarH = new HScrollBarCustom(this.container, this);\n this.scrollBarV.setHeight(this.$size.scrollerHeight);\n this.scrollBarH.setWidth(this.$size.scrollerWidth);\n this.scrollBarV.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n this.$scrollDecorator = new Decorator(this.scrollBarV, this);\n this.$scrollDecorator.$updateDecorators();\n }\n else {\n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n }\n };\n VirtualRenderer.prototype.$addResizeObserver = function () {\n if (!window.ResizeObserver || this.$resizeObserver)\n return;\n var self = this;\n this.$resizeTimer = lang.delayedCall(function () {\n if (!self.destroyed)\n self.onResize();\n }, 50);\n this.$resizeObserver = new window.ResizeObserver(function (e) {\n var w = e[0].contentRect.width;\n var h = e[0].contentRect.height;\n if (Math.abs(self.$size.width - w) > 1\n || Math.abs(self.$size.height - h) > 1) {\n self.$resizeTimer.delay();\n }\n else {\n self.$resizeTimer.cancel();\n }\n });\n this.$resizeObserver.observe(this.container);\n };\n return VirtualRenderer;\n}());\nVirtualRenderer.prototype.CHANGE_CURSOR = 1;\nVirtualRenderer.prototype.CHANGE_MARKER = 2;\nVirtualRenderer.prototype.CHANGE_GUTTER = 4;\nVirtualRenderer.prototype.CHANGE_SCROLL = 8;\nVirtualRenderer.prototype.CHANGE_LINES = 16;\nVirtualRenderer.prototype.CHANGE_TEXT = 32;\nVirtualRenderer.prototype.CHANGE_SIZE = 64;\nVirtualRenderer.prototype.CHANGE_MARKER_BACK = 128;\nVirtualRenderer.prototype.CHANGE_MARKER_FRONT = 256;\nVirtualRenderer.prototype.CHANGE_FULL = 512;\nVirtualRenderer.prototype.CHANGE_H_SCROLL = 1024;\nVirtualRenderer.prototype.$changes = 0;\nVirtualRenderer.prototype.$padding = null;\nVirtualRenderer.prototype.$frozen = false;\nVirtualRenderer.prototype.STEPS = 8;\noop.implement(VirtualRenderer.prototype, EventEmitter);\nconfig.defineOptions(VirtualRenderer.prototype, \"renderer\", {\n useResizeObserver: {\n set: function (value) {\n if (!value && this.$resizeObserver) {\n this.$resizeObserver.disconnect();\n this.$resizeTimer.cancel();\n this.$resizeTimer = this.$resizeObserver = null;\n }\n else if (value && !this.$resizeObserver) {\n this.$addResizeObserver();\n }\n }\n },\n animatedScroll: { initialValue: false },\n showInvisibles: {\n set: function (value) {\n if (this.$textLayer.setShowInvisibles(value))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: false\n },\n showPrintMargin: {\n set: function () { this.$updatePrintMargin(); },\n initialValue: true\n },\n printMarginColumn: {\n set: function () { this.$updatePrintMargin(); },\n initialValue: 80\n },\n printMargin: {\n set: function (val) {\n if (typeof val == \"number\")\n this.$printMarginColumn = val;\n this.$showPrintMargin = !!val;\n this.$updatePrintMargin();\n },\n get: function () {\n return this.$showPrintMargin && this.$printMarginColumn;\n }\n },\n showGutter: {\n set: function (show) {\n this.$gutter.style.display = show ? \"block\" : \"none\";\n this.$loop.schedule(this.CHANGE_FULL);\n this.onGutterResize();\n },\n initialValue: true\n },\n useSvgGutterIcons: {\n set: function (value) {\n this.$gutterLayer.$useSvgGutterIcons = value;\n },\n initialValue: false\n },\n showFoldedAnnotations: {\n set: function (value) {\n this.$gutterLayer.$showFoldedAnnotations = value;\n },\n initialValue: false\n },\n fadeFoldWidgets: {\n set: function (show) {\n dom.setCssClass(this.$gutter, \"ace_fade-fold-widgets\", show);\n },\n initialValue: false\n },\n showFoldWidgets: {\n set: function (show) {\n this.$gutterLayer.setShowFoldWidgets(show);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n displayIndentGuides: {\n set: function (show) {\n if (this.$textLayer.setDisplayIndentGuides(show))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: true\n },\n highlightIndentGuides: {\n set: function (show) {\n if (this.$textLayer.setHighlightIndentGuides(show) == true) {\n this.$textLayer.$highlightIndentGuide();\n }\n else {\n this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells);\n }\n },\n initialValue: true\n },\n highlightGutterLine: {\n set: function (shouldHighlight) {\n this.$gutterLayer.setHighlightGutterLine(shouldHighlight);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n hScrollBarAlwaysVisible: {\n set: function (val) {\n if (!this.$hScrollBarAlwaysVisible || !this.$horizScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n vScrollBarAlwaysVisible: {\n set: function (val) {\n if (!this.$vScrollBarAlwaysVisible || !this.$vScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n fontSize: {\n set: function (size) {\n if (typeof size == \"number\")\n size = size + \"px\";\n this.container.style.fontSize = size;\n this.updateFontSize();\n },\n initialValue: 12\n },\n fontFamily: {\n set: function (name) {\n this.container.style.fontFamily = name;\n this.updateFontSize();\n }\n },\n maxLines: {\n set: function (val) {\n this.updateFull();\n }\n },\n minLines: {\n set: function (val) {\n if (!(this.$minLines < 0x1ffffffffffff))\n this.$minLines = 0;\n this.updateFull();\n }\n },\n maxPixelHeight: {\n set: function (val) {\n this.updateFull();\n },\n initialValue: 0\n },\n scrollPastEnd: {\n set: function (val) {\n val = +val || 0;\n if (this.$scrollPastEnd == val)\n return;\n this.$scrollPastEnd = val;\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: 0,\n handlesSet: true\n },\n fixedWidthGutter: {\n set: function (val) {\n this.$gutterLayer.$fixedWidth = !!val;\n this.$loop.schedule(this.CHANGE_GUTTER);\n }\n },\n customScrollbar: {\n set: function (val) {\n this.$updateCustomScrollbar(val);\n },\n initialValue: false\n },\n theme: {\n set: function (val) { this.setTheme(val); },\n get: function () { return this.$themeId || this.theme; },\n initialValue: \"./theme/textmate\",\n handlesSet: true\n },\n hasCssTransforms: {},\n useTextareaForIME: {\n initialValue: !useragent.isMobile && !useragent.isIE\n }\n});\nexports.VirtualRenderer = VirtualRenderer;\n\n});\n\nace.define(\"ace/worker/worker_client\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/event_emitter\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar net = require(\"../lib/net\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar config = require(\"../config\");\n\nfunction $workerBlob(workerUrl) {\n var script = \"importScripts('\" + net.qualifyURL(workerUrl) + \"');\";\n try {\n return new Blob([script], {\"type\": \"application/javascript\"});\n } catch (e) { // Backwards-compatibility\n var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;\n var blobBuilder = new BlobBuilder();\n blobBuilder.append(script);\n return blobBuilder.getBlob(\"application/javascript\");\n }\n}\n\nfunction createWorker(workerUrl) {\n if (typeof Worker == \"undefined\")\n return { postMessage: function() {}, terminate: function() {} };\n if (config.get(\"loadWorkerFromBlob\")) {\n var blob = $workerBlob(workerUrl);\n var URL = window.URL || window.webkitURL;\n var blobURL = URL.createObjectURL(blob);\n return new Worker(blobURL);\n }\n return new Worker(workerUrl);\n}\n\nvar WorkerClient = function(worker) {\n if (!worker.postMessage)\n worker = this.$createWorkerFromOldConfig.apply(this, arguments);\n\n this.$worker = worker;\n this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n this.changeListener = this.changeListener.bind(this);\n this.onMessage = this.onMessage.bind(this);\n\n this.callbackId = 1;\n this.callbacks = {};\n\n this.$worker.onmessage = this.onMessage;\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n\n this.$createWorkerFromOldConfig = function(topLevelNamespaces, mod, classname, workerUrl, importScripts) {\n if (require.nameToUrl && !require.toUrl)\n require.toUrl = require.nameToUrl;\n\n if (config.get(\"packaged\") || !require.toUrl) {\n workerUrl = workerUrl || config.moduleUrl(mod, \"worker\");\n } else {\n var normalizePath = this.$normalizePath;\n workerUrl = workerUrl || normalizePath(require.toUrl(\"ace/worker/worker.js\", null, \"_\"));\n\n var tlns = {};\n topLevelNamespaces.forEach(function(ns) {\n tlns[ns] = normalizePath(require.toUrl(ns, null, \"_\").replace(/(\\.js)?(\\?.*)?$/, \"\"));\n });\n }\n\n this.$worker = createWorker(workerUrl);\n if (importScripts) {\n this.send(\"importScripts\", importScripts);\n }\n this.$worker.postMessage({\n init : true,\n tlns : tlns,\n module : mod,\n classname : classname\n });\n return this.$worker;\n };\n\n this.onMessage = function(e) {\n var msg = e.data;\n switch (msg.type) {\n case \"event\":\n this._signal(msg.name, {data: msg.data});\n break;\n case \"call\":\n var callback = this.callbacks[msg.id];\n if (callback) {\n callback(msg.data);\n delete this.callbacks[msg.id];\n }\n break;\n case \"error\":\n this.reportError(msg.data);\n break;\n case \"log\":\n window.console && console.log && console.log.apply(console, msg.data);\n break;\n }\n };\n \n this.reportError = function(err) {\n window.console && console.error && console.error(err);\n };\n\n this.$normalizePath = function(path) {\n return net.qualifyURL(path);\n };\n\n this.terminate = function() {\n this._signal(\"terminate\", {});\n this.deltaQueue = null;\n this.$worker.terminate();\n this.$worker.onerror = function(e) {\n e.preventDefault();\n };\n this.$worker = null;\n if (this.$doc)\n this.$doc.off(\"change\", this.changeListener);\n this.$doc = null;\n };\n\n this.send = function(cmd, args) {\n this.$worker.postMessage({command: cmd, args: args});\n };\n\n this.call = function(cmd, args, callback) {\n if (callback) {\n var id = this.callbackId++;\n this.callbacks[id] = callback;\n args.push(id);\n }\n this.send(cmd, args);\n };\n\n this.emit = function(event, data) {\n try {\n if (data.data && data.data.err)\n data.data.err = {message: data.data.err.message, stack: data.data.err.stack, code: data.data.err.code};\n this.$worker && this.$worker.postMessage({event: event, data: {data: data.data}});\n }\n catch(ex) {\n console.error(ex.stack);\n }\n };\n\n this.attachToDocument = function(doc) {\n if (this.$doc)\n this.terminate();\n\n this.$doc = doc;\n this.call(\"setValue\", [doc.getValue()]);\n doc.on(\"change\", this.changeListener, true);\n };\n\n this.changeListener = function(delta) {\n if (!this.deltaQueue) {\n this.deltaQueue = [];\n setTimeout(this.$sendDeltaQueue, 0);\n }\n if (delta.action == \"insert\")\n this.deltaQueue.push(delta.start, delta.lines);\n else\n this.deltaQueue.push(delta.start, delta.end);\n };\n\n this.$sendDeltaQueue = function() {\n var q = this.deltaQueue;\n if (!q) return;\n this.deltaQueue = null;\n if (q.length > 50 && q.length > this.$doc.getLength() >> 1) {\n this.call(\"setValue\", [this.$doc.getValue()]);\n } else\n this.emit(\"change\", {data: q});\n };\n\n}).call(WorkerClient.prototype);\n\n\nvar UIWorkerClient = function(topLevelNamespaces, mod, classname) {\n var main = null;\n var emitSync = false;\n var sender = Object.create(EventEmitter);\n\n var messageBuffer = [];\n var workerClient = new WorkerClient({\n messageBuffer: messageBuffer,\n terminate: function() {},\n postMessage: function(e) {\n messageBuffer.push(e);\n if (!main) return;\n if (emitSync)\n setTimeout(processNext);\n else\n processNext();\n }\n });\n\n workerClient.setEmitSync = function(val) { emitSync = val; };\n\n var processNext = function() {\n var msg = messageBuffer.shift();\n if (msg.command)\n main[msg.command].apply(main, msg.args);\n else if (msg.event)\n sender._signal(msg.event, msg.data);\n };\n\n sender.postMessage = function(msg) {\n workerClient.onMessage({data: msg});\n };\n sender.callback = function(data, callbackId) {\n this.postMessage({type: \"call\", id: callbackId, data: data});\n };\n sender.emit = function(name, data) {\n this.postMessage({type: \"event\", name: name, data: data});\n };\n\n config.loadModule([\"worker\", mod], function(Main) {\n main = new Main[classname](sender);\n while (messageBuffer.length)\n processNext();\n });\n\n return workerClient;\n};\n\nexports.UIWorkerClient = UIWorkerClient;\nexports.WorkerClient = WorkerClient;\nexports.createWorker = createWorker;\n\n\n});\n\nace.define(\"ace/placeholder\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/oop\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar oop = require(\"./lib/oop\");\nvar PlaceHolder = /** @class */ (function () {\n function PlaceHolder(session, length, pos, others, mainClass, othersClass) {\n var _self = this;\n this.length = length;\n this.session = session;\n this.doc = session.getDocument();\n this.mainClass = mainClass;\n this.othersClass = othersClass;\n this.$onUpdate = this.onUpdate.bind(this);\n this.doc.on(\"change\", this.$onUpdate, true);\n this.$others = others;\n this.$onCursorChange = function () {\n setTimeout(function () {\n _self.onCursorChange();\n });\n };\n this.$pos = pos;\n var undoStack = session.getUndoManager().$undoStack || session.getUndoManager().$undostack || { length: -1 };\n this.$undoStackDepth = undoStack.length;\n this.setup();\n session.selection.on(\"changeCursor\", this.$onCursorChange);\n }\n PlaceHolder.prototype.setup = function () {\n var _self = this;\n var doc = this.doc;\n var session = this.session;\n this.selectionBefore = session.selection.toJSON();\n if (session.selection.inMultiSelectMode)\n session.selection.toSingleRange();\n this.pos = doc.createAnchor(this.$pos.row, this.$pos.column);\n var pos = this.pos;\n pos.$insertRight = true;\n pos.detach();\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + this.length), this.mainClass, null, false);\n this.others = [];\n this.$others.forEach(function (other) {\n var anchor = doc.createAnchor(other.row, other.column);\n anchor.$insertRight = true;\n anchor.detach();\n _self.others.push(anchor);\n });\n session.setUndoSelect(false);\n };\n PlaceHolder.prototype.showOtherMarkers = function () {\n if (this.othersActive)\n return;\n var session = this.session;\n var _self = this;\n this.othersActive = true;\n this.others.forEach(function (anchor) {\n anchor.markerId = session.addMarker(new Range(anchor.row, anchor.column, anchor.row, anchor.column + _self.length), _self.othersClass, null, false);\n });\n };\n PlaceHolder.prototype.hideOtherMarkers = function () {\n if (!this.othersActive)\n return;\n this.othersActive = false;\n for (var i = 0; i < this.others.length; i++) {\n this.session.removeMarker(this.others[i].markerId);\n }\n };\n PlaceHolder.prototype.onUpdate = function (delta) {\n if (this.$updating)\n return this.updateAnchors(delta);\n var range = delta;\n if (range.start.row !== range.end.row)\n return;\n if (range.start.row !== this.pos.row)\n return;\n this.$updating = true;\n var lengthDiff = delta.action === \"insert\" ? range.end.column - range.start.column : range.start.column - range.end.column;\n var inMainRange = range.start.column >= this.pos.column && range.start.column <= this.pos.column + this.length + 1;\n var distanceFromStart = range.start.column - this.pos.column;\n this.updateAnchors(delta);\n if (inMainRange)\n this.length += lengthDiff;\n if (inMainRange && !this.session.$fromUndo) {\n if (delta.action === 'insert') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = { row: otherPos.row, column: otherPos.column + distanceFromStart };\n this.doc.insertMergedLines(newPos, delta.lines);\n }\n }\n else if (delta.action === 'remove') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = { row: otherPos.row, column: otherPos.column + distanceFromStart };\n this.doc.remove(new Range(newPos.row, newPos.column, newPos.row, newPos.column - lengthDiff));\n }\n }\n }\n this.$updating = false;\n this.updateMarkers();\n };\n PlaceHolder.prototype.updateAnchors = function (delta) {\n this.pos.onChange(delta);\n for (var i = this.others.length; i--;)\n this.others[i].onChange(delta);\n this.updateMarkers();\n };\n PlaceHolder.prototype.updateMarkers = function () {\n if (this.$updating)\n return;\n var _self = this;\n var session = this.session;\n var updateMarker = function (pos, className) {\n session.removeMarker(pos.markerId);\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + _self.length), className, null, false);\n };\n updateMarker(this.pos, this.mainClass);\n for (var i = this.others.length; i--;)\n updateMarker(this.others[i], this.othersClass);\n };\n PlaceHolder.prototype.onCursorChange = function (event) {\n if (this.$updating || !this.session)\n return;\n var pos = this.session.selection.getCursor();\n if (pos.row === this.pos.row && pos.column >= this.pos.column && pos.column <= this.pos.column + this.length) {\n this.showOtherMarkers();\n this._emit(\"cursorEnter\", event);\n }\n else {\n this.hideOtherMarkers();\n this._emit(\"cursorLeave\", event);\n }\n };\n PlaceHolder.prototype.detach = function () {\n this.session.removeMarker(this.pos && this.pos.markerId);\n this.hideOtherMarkers();\n this.doc.off(\"change\", this.$onUpdate);\n this.session.selection.off(\"changeCursor\", this.$onCursorChange);\n this.session.setUndoSelect(true);\n this.session = null;\n };\n PlaceHolder.prototype.cancel = function () {\n if (this.$undoStackDepth === -1)\n return;\n var undoManager = this.session.getUndoManager();\n var undosRequired = (undoManager.$undoStack || undoManager.$undostack).length - this.$undoStackDepth;\n for (var i = 0; i < undosRequired; i++) {\n undoManager.undo(this.session, true);\n }\n if (this.selectionBefore)\n this.session.selection.fromJSON(this.selectionBefore);\n };\n return PlaceHolder;\n}());\noop.implement(PlaceHolder.prototype, EventEmitter);\nexports.PlaceHolder = PlaceHolder;\n\n});\n\nace.define(\"ace/mouse/multi_select_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){var event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nfunction onMouseDown(e) {\n var ev = e.domEvent;\n var alt = ev.altKey;\n var shift = ev.shiftKey;\n var ctrl = ev.ctrlKey;\n var accel = e.getAccelKey();\n var button = e.getButton();\n if (ctrl && useragent.isMac)\n button = ev.button;\n if (e.editor.inMultiSelectMode && button == 2) {\n e.editor.textInput.onContextMenu(e.domEvent);\n return;\n }\n if (!ctrl && !alt && !accel) {\n if (button === 0 && e.editor.inMultiSelectMode)\n e.editor.exitMultiSelectMode();\n return;\n }\n if (button !== 0)\n return;\n var editor = e.editor;\n var selection = editor.selection;\n var isMultiSelect = editor.inMultiSelectMode;\n var pos = e.getDocumentPosition();\n var cursor = selection.getCursor();\n var inSelection = e.inSelection() || (selection.isEmpty() && isSamePoint(pos, cursor));\n var mouseX = e.x, mouseY = e.y;\n var onMouseSelection = function (e) {\n mouseX = e.clientX;\n mouseY = e.clientY;\n };\n var session = editor.session;\n var screenAnchor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var screenCursor = screenAnchor;\n var selectionMode;\n if (editor.$mouseHandler.$enableJumpToDef) {\n if (ctrl && alt || accel && alt)\n selectionMode = shift ? \"block\" : \"add\";\n else if (alt && editor.$blockSelectEnabled)\n selectionMode = \"block\";\n }\n else {\n if (accel && !alt) {\n selectionMode = \"add\";\n if (!isMultiSelect && shift)\n return;\n }\n else if (alt && editor.$blockSelectEnabled) {\n selectionMode = \"block\";\n }\n }\n if (selectionMode && useragent.isMac && ev.ctrlKey) {\n editor.$mouseHandler.cancelContextMenu();\n }\n if (selectionMode == \"add\") {\n if (!isMultiSelect && inSelection)\n return; // dragging\n if (!isMultiSelect) {\n var range = selection.toOrientedRange();\n editor.addSelectionMarker(range);\n }\n var oldRange = selection.rangeList.rangeAtPoint(pos);\n editor.inVirtualSelectionMode = true;\n if (shift) {\n oldRange = null;\n range = selection.ranges[0] || range;\n editor.removeSelectionMarker(range);\n }\n editor.once(\"mouseup\", function () {\n var tmpSel = selection.toOrientedRange();\n if (oldRange && tmpSel.isEmpty() && isSamePoint(oldRange.cursor, tmpSel.cursor))\n selection.substractPoint(tmpSel.cursor);\n else {\n if (shift) {\n selection.substractPoint(range.cursor);\n }\n else if (range) {\n editor.removeSelectionMarker(range);\n selection.addRange(range);\n }\n selection.addRange(tmpSel);\n }\n editor.inVirtualSelectionMode = false;\n });\n }\n else if (selectionMode == \"block\") {\n e.stop();\n editor.inVirtualSelectionMode = true;\n var initialRange;\n var rectSel = [];\n var blockSelect = function () {\n var newCursor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var cursor = session.screenToDocumentPosition(newCursor.row, newCursor.column, newCursor.offsetX);\n if (isSamePoint(screenCursor, newCursor) && isSamePoint(cursor, selection.lead))\n return;\n screenCursor = newCursor;\n editor.selection.moveToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n editor.removeSelectionMarkers(rectSel);\n rectSel = selection.rectangularRangeBlock(screenCursor, screenAnchor);\n if (editor.$mouseHandler.$clickSelection && rectSel.length == 1 && rectSel[0].isEmpty())\n rectSel[0] = editor.$mouseHandler.$clickSelection.clone();\n rectSel.forEach(editor.addSelectionMarker, editor);\n editor.updateSelectionMarkers();\n };\n if (isMultiSelect && !accel) {\n selection.toSingleRange();\n }\n else if (!isMultiSelect && accel) {\n initialRange = selection.toOrientedRange();\n editor.addSelectionMarker(initialRange);\n }\n if (shift)\n screenAnchor = session.documentToScreenPosition(selection.lead);\n else\n selection.moveToPosition(pos);\n screenCursor = { row: -1, column: -1 };\n var onMouseSelectionEnd = function (e) {\n blockSelect();\n clearInterval(timerId);\n editor.removeSelectionMarkers(rectSel);\n if (!rectSel.length)\n rectSel = [selection.toOrientedRange()];\n if (initialRange) {\n editor.removeSelectionMarker(initialRange);\n selection.toSingleRange(initialRange);\n }\n for (var i = 0; i < rectSel.length; i++)\n selection.addRange(rectSel[i]);\n editor.inVirtualSelectionMode = false;\n editor.$mouseHandler.$clickSelection = null;\n };\n var onSelectionInterval = blockSelect;\n event.capture(editor.container, onMouseSelection, onMouseSelectionEnd);\n var timerId = setInterval(function () { onSelectionInterval(); }, 20);\n return e.preventDefault();\n }\n}\nexports.onMouseDown = onMouseDown;\n\n});\n\nace.define(\"ace/commands/multi_select_commands\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\"], function(require, exports, module){// commands to enter multiselect mode\nexports.defaultCommands = [{\n name: \"addCursorAbove\",\n description: \"Add cursor above\",\n exec: function (editor) { editor.selectMoreLines(-1); },\n bindKey: { win: \"Ctrl-Alt-Up\", mac: \"Ctrl-Alt-Up\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorBelow\",\n description: \"Add cursor below\",\n exec: function (editor) { editor.selectMoreLines(1); },\n bindKey: { win: \"Ctrl-Alt-Down\", mac: \"Ctrl-Alt-Down\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorAboveSkipCurrent\",\n description: \"Add cursor above (skip current)\",\n exec: function (editor) { editor.selectMoreLines(-1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Up\", mac: \"Ctrl-Alt-Shift-Up\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorBelowSkipCurrent\",\n description: \"Add cursor below (skip current)\",\n exec: function (editor) { editor.selectMoreLines(1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Down\", mac: \"Ctrl-Alt-Shift-Down\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectMoreBefore\",\n description: \"Select more before\",\n exec: function (editor) { editor.selectMore(-1); },\n bindKey: { win: \"Ctrl-Alt-Left\", mac: \"Ctrl-Alt-Left\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectMoreAfter\",\n description: \"Select more after\",\n exec: function (editor) { editor.selectMore(1); },\n bindKey: { win: \"Ctrl-Alt-Right\", mac: \"Ctrl-Alt-Right\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectNextBefore\",\n description: \"Select next before\",\n exec: function (editor) { editor.selectMore(-1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Left\", mac: \"Ctrl-Alt-Shift-Left\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectNextAfter\",\n description: \"Select next after\",\n exec: function (editor) { editor.selectMore(1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Right\", mac: \"Ctrl-Alt-Shift-Right\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"toggleSplitSelectionIntoLines\",\n description: \"Split selection into lines\",\n exec: function (editor) {\n if (editor.multiSelect.rangeCount > 1)\n editor.multiSelect.joinSelections();\n else\n editor.multiSelect.splitIntoLines();\n },\n bindKey: { win: \"Ctrl-Alt-L\", mac: \"Ctrl-Alt-L\" },\n readOnly: true\n }, {\n name: \"splitSelectionIntoLines\",\n description: \"Split into lines\",\n exec: function (editor) { editor.multiSelect.splitIntoLines(); },\n readOnly: true\n }, {\n name: \"alignCursors\",\n description: \"Align cursors\",\n exec: function (editor) { editor.alignCursors(); },\n bindKey: { win: \"Ctrl-Alt-A\", mac: \"Ctrl-Alt-A\" },\n scrollIntoView: \"cursor\"\n }, {\n name: \"findAll\",\n description: \"Find all\",\n exec: function (editor) { editor.findAll(); },\n bindKey: { win: \"Ctrl-Alt-K\", mac: \"Ctrl-Alt-G\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }];\nexports.multiSelectCommands = [{\n name: \"singleSelection\",\n description: \"Single selection\",\n bindKey: \"esc\",\n exec: function (editor) { editor.exitMultiSelectMode(); },\n scrollIntoView: \"cursor\",\n readOnly: true,\n isAvailable: function (editor) { return editor && editor.inMultiSelectMode; }\n }];\nvar HashHandler = require(\"../keyboard/hash_handler\").HashHandler;\nexports.keyboardHandler = new HashHandler(exports.multiSelectCommands);\n\n});\n\nace.define(\"ace/multi_select\",[\"require\",\"exports\",\"module\",\"ace/range_list\",\"ace/range\",\"ace/selection\",\"ace/mouse/multi_select_handler\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/commands/multi_select_commands\",\"ace/search\",\"ace/edit_session\",\"ace/editor\",\"ace/config\"], function(require, exports, module){var RangeList = require(\"./range_list\").RangeList;\nvar Range = require(\"./range\").Range;\nvar Selection = require(\"./selection\").Selection;\nvar onMouseDown = require(\"./mouse/multi_select_handler\").onMouseDown;\nvar event = require(\"./lib/event\");\nvar lang = require(\"./lib/lang\");\nvar commands = require(\"./commands/multi_select_commands\");\nexports.commands = commands.defaultCommands.concat(commands.multiSelectCommands);\nvar Search = require(\"./search\").Search;\nvar search = new Search();\nfunction find(session, needle, dir) {\n search.$options.wrap = true;\n search.$options.needle = needle;\n search.$options.backwards = dir == -1;\n return search.find(session);\n}\nvar EditSession = require(\"./edit_session\").EditSession;\n(function () {\n this.getSelectionMarkers = function () {\n return this.$selectionMarkers;\n };\n}).call(EditSession.prototype);\n(function () {\n this.ranges = null;\n this.rangeList = null;\n this.addRange = function (range, $blockChangeEvents) {\n if (!range)\n return;\n if (!this.inMultiSelectMode && this.rangeCount === 0) {\n var oldRange = this.toOrientedRange();\n this.rangeList.add(oldRange);\n this.rangeList.add(range);\n if (this.rangeList.ranges.length != 2) {\n this.rangeList.removeAll();\n return $blockChangeEvents || this.fromOrientedRange(range);\n }\n this.rangeList.removeAll();\n this.rangeList.add(oldRange);\n this.$onAddRange(oldRange);\n }\n if (!range.cursor)\n range.cursor = range.end;\n var removed = this.rangeList.add(range);\n this.$onAddRange(range);\n if (removed.length)\n this.$onRemoveRange(removed);\n if (this.rangeCount > 1 && !this.inMultiSelectMode) {\n this._signal(\"multiSelect\");\n this.inMultiSelectMode = true;\n this.session.$undoSelect = false;\n this.rangeList.attach(this.session);\n }\n return $blockChangeEvents || this.fromOrientedRange(range);\n };\n this.toSingleRange = function (range) {\n range = range || this.ranges[0];\n var removed = this.rangeList.removeAll();\n if (removed.length)\n this.$onRemoveRange(removed);\n range && this.fromOrientedRange(range);\n };\n this.substractPoint = function (pos) {\n var removed = this.rangeList.substractPoint(pos);\n if (removed) {\n this.$onRemoveRange(removed);\n return removed[0];\n }\n };\n this.mergeOverlappingRanges = function () {\n var removed = this.rangeList.merge();\n if (removed.length)\n this.$onRemoveRange(removed);\n };\n this.$onAddRange = function (range) {\n this.rangeCount = this.rangeList.ranges.length;\n this.ranges.unshift(range);\n this._signal(\"addRange\", { range: range });\n };\n this.$onRemoveRange = function (removed) {\n this.rangeCount = this.rangeList.ranges.length;\n if (this.rangeCount == 1 && this.inMultiSelectMode) {\n var lastRange = this.rangeList.ranges.pop();\n removed.push(lastRange);\n this.rangeCount = 0;\n }\n for (var i = removed.length; i--;) {\n var index = this.ranges.indexOf(removed[i]);\n this.ranges.splice(index, 1);\n }\n this._signal(\"removeRange\", { ranges: removed });\n if (this.rangeCount === 0 && this.inMultiSelectMode) {\n this.inMultiSelectMode = false;\n this._signal(\"singleSelect\");\n this.session.$undoSelect = true;\n this.rangeList.detach(this.session);\n }\n lastRange = lastRange || this.ranges[0];\n if (lastRange && !lastRange.isEqual(this.getRange()))\n this.fromOrientedRange(lastRange);\n };\n this.$initRangeList = function () {\n if (this.rangeList)\n return;\n this.rangeList = new RangeList();\n this.ranges = [];\n this.rangeCount = 0;\n };\n this.getAllRanges = function () {\n return this.rangeCount ? this.rangeList.ranges.concat() : [this.getRange()];\n };\n this.splitIntoLines = function () {\n var ranges = this.ranges.length ? this.ranges : [this.getRange()];\n var newRanges = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n var row = range.start.row;\n var endRow = range.end.row;\n if (row === endRow) {\n newRanges.push(range.clone());\n }\n else {\n newRanges.push(new Range(row, range.start.column, row, this.session.getLine(row).length));\n while (++row < endRow)\n newRanges.push(this.getLineRange(row, true));\n newRanges.push(new Range(endRow, 0, endRow, range.end.column));\n }\n if (i == 0 && !this.isBackwards())\n newRanges = newRanges.reverse();\n }\n this.toSingleRange();\n for (var i = newRanges.length; i--;)\n this.addRange(newRanges[i]);\n };\n this.joinSelections = function () {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n };\n this.toggleBlockSelection = function () {\n if (this.rangeCount > 1) {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n }\n else {\n var cursor = this.session.documentToScreenPosition(this.cursor);\n var anchor = this.session.documentToScreenPosition(this.anchor);\n var rectSel = this.rectangularRangeBlock(cursor, anchor);\n rectSel.forEach(this.addRange, this);\n }\n };\n this.rectangularRangeBlock = function (screenCursor, screenAnchor, includeEmptyLines) {\n var rectSel = [];\n var xBackwards = screenCursor.column < screenAnchor.column;\n if (xBackwards) {\n var startColumn = screenCursor.column;\n var endColumn = screenAnchor.column;\n var startOffsetX = screenCursor.offsetX;\n var endOffsetX = screenAnchor.offsetX;\n }\n else {\n var startColumn = screenAnchor.column;\n var endColumn = screenCursor.column;\n var startOffsetX = screenAnchor.offsetX;\n var endOffsetX = screenCursor.offsetX;\n }\n var yBackwards = screenCursor.row < screenAnchor.row;\n if (yBackwards) {\n var startRow = screenCursor.row;\n var endRow = screenAnchor.row;\n }\n else {\n var startRow = screenAnchor.row;\n var endRow = screenCursor.row;\n }\n if (startColumn < 0)\n startColumn = 0;\n if (startRow < 0)\n startRow = 0;\n if (startRow == endRow)\n includeEmptyLines = true;\n var docEnd;\n for (var row = startRow; row <= endRow; row++) {\n var range = Range.fromPoints(this.session.screenToDocumentPosition(row, startColumn, startOffsetX), this.session.screenToDocumentPosition(row, endColumn, endOffsetX));\n if (range.isEmpty()) {\n if (docEnd && isSamePoint(range.end, docEnd))\n break;\n docEnd = range.end;\n }\n range.cursor = xBackwards ? range.start : range.end;\n rectSel.push(range);\n }\n if (yBackwards)\n rectSel.reverse();\n if (!includeEmptyLines) {\n var end = rectSel.length - 1;\n while (rectSel[end].isEmpty() && end > 0)\n end--;\n if (end > 0) {\n var start = 0;\n while (rectSel[start].isEmpty())\n start++;\n }\n for (var i = end; i >= start; i--) {\n if (rectSel[i].isEmpty())\n rectSel.splice(i, 1);\n }\n }\n return rectSel;\n };\n}).call(Selection.prototype);\nvar Editor = require(\"./editor\").Editor;\n(function () {\n this.updateSelectionMarkers = function () {\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.addSelectionMarker = function (orientedRange) {\n if (!orientedRange.cursor)\n orientedRange.cursor = orientedRange.end;\n var style = this.getSelectionStyle();\n orientedRange.marker = this.session.addMarker(orientedRange, \"ace_selection\", style);\n this.session.$selectionMarkers.push(orientedRange);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n return orientedRange;\n };\n this.removeSelectionMarker = function (range) {\n if (!range.marker)\n return;\n this.session.removeMarker(range.marker);\n var index = this.session.$selectionMarkers.indexOf(range);\n if (index != -1)\n this.session.$selectionMarkers.splice(index, 1);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n };\n this.removeSelectionMarkers = function (ranges) {\n var markerList = this.session.$selectionMarkers;\n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.marker)\n continue;\n this.session.removeMarker(range.marker);\n var index = markerList.indexOf(range);\n if (index != -1)\n markerList.splice(index, 1);\n }\n this.session.selectionMarkerCount = markerList.length;\n };\n this.$onAddRange = function (e) {\n this.addSelectionMarker(e.range);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onRemoveRange = function (e) {\n this.removeSelectionMarkers(e.ranges);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onMultiSelect = function (e) {\n if (this.inMultiSelectMode)\n return;\n this.inMultiSelectMode = true;\n this.setStyle(\"ace_multiselect\");\n this.keyBinding.addKeyboardHandler(commands.keyboardHandler);\n this.commands.setDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onSingleSelect = function (e) {\n if (this.session.multiSelect.inVirtualMode)\n return;\n this.inMultiSelectMode = false;\n this.unsetStyle(\"ace_multiselect\");\n this.keyBinding.removeKeyboardHandler(commands.keyboardHandler);\n this.commands.removeDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n this._emit(\"changeSelection\");\n };\n this.$onMultiSelectExec = function (e) {\n var command = e.command;\n var editor = e.editor;\n if (!editor.multiSelect)\n return;\n if (!command.multiSelectAction) {\n var result = command.exec(editor, e.args || {});\n editor.multiSelect.addRange(editor.multiSelect.toOrientedRange());\n editor.multiSelect.mergeOverlappingRanges();\n }\n else if (command.multiSelectAction == \"forEach\") {\n result = editor.forEachSelection(command, e.args);\n }\n else if (command.multiSelectAction == \"forEachLine\") {\n result = editor.forEachSelection(command, e.args, true);\n }\n else if (command.multiSelectAction == \"single\") {\n editor.exitMultiSelectMode();\n result = command.exec(editor, e.args || {});\n }\n else {\n result = command.multiSelectAction(editor, e.args || {});\n }\n return result;\n };\n this.forEachSelection = function (cmd, args, options) {\n if (this.inVirtualSelectionMode)\n return;\n var keepOrder = options && options.keepOrder;\n var $byLines = options == true || options && options.$byLines;\n var session = this.session;\n var selection = this.selection;\n var rangeList = selection.rangeList;\n var ranges = (keepOrder ? selection : rangeList).ranges;\n var result;\n if (!ranges.length)\n return cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n var reg = selection._eventRegistry;\n selection._eventRegistry = {};\n var tmpSel = new Selection(session);\n this.inVirtualSelectionMode = true;\n for (var i = ranges.length; i--;) {\n if ($byLines) {\n while (i > 0 && ranges[i].start.row == ranges[i - 1].end.row)\n i--;\n }\n tmpSel.fromOrientedRange(ranges[i]);\n tmpSel.index = i;\n this.selection = session.selection = tmpSel;\n var cmdResult = cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n if (!result && cmdResult !== undefined)\n result = cmdResult;\n tmpSel.toOrientedRange(ranges[i]);\n }\n tmpSel.detach();\n this.selection = session.selection = selection;\n this.inVirtualSelectionMode = false;\n selection._eventRegistry = reg;\n selection.mergeOverlappingRanges();\n if (selection.ranges[0])\n selection.fromOrientedRange(selection.ranges[0]);\n var anim = this.renderer.$scrollAnimation;\n this.onCursorChange();\n this.onSelectionChange();\n if (anim && anim.from == anim.to)\n this.renderer.animateScrolling(anim.from);\n return result;\n };\n this.exitMultiSelectMode = function () {\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode)\n return;\n this.multiSelect.toSingleRange();\n };\n this.getSelectedText = function () {\n var text = \"\";\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var ranges = this.multiSelect.rangeList.ranges;\n var buf = [];\n for (var i = 0; i < ranges.length; i++) {\n buf.push(this.session.getTextRange(ranges[i]));\n }\n var nl = this.session.getDocument().getNewLineCharacter();\n text = buf.join(nl);\n if (text.length == (buf.length - 1) * nl.length)\n text = \"\";\n }\n else if (!this.selection.isEmpty()) {\n text = this.session.getTextRange(this.getSelectionRange());\n }\n return text;\n };\n this.$checkMultiselectChange = function (e, anchor) {\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var range = this.multiSelect.ranges[0];\n if (this.multiSelect.isEmpty() && anchor == this.multiSelect.anchor)\n return;\n var pos = anchor == this.multiSelect.anchor\n ? range.cursor == range.start ? range.end : range.start\n : range.cursor;\n if (pos.row != anchor.row\n || this.session.$clipPositionToDocument(pos.row, pos.column).column != anchor.column)\n this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange());\n else\n this.multiSelect.mergeOverlappingRanges();\n }\n };\n this.findAll = function (needle, options, additive) {\n options = options || {};\n options.needle = needle || options.needle;\n if (options.needle == undefined) {\n var range = this.selection.isEmpty()\n ? this.selection.getWordRange()\n : this.selection.getRange();\n options.needle = this.session.getTextRange(range);\n }\n this.$search.set(options);\n var ranges = this.$search.findAll(this.session);\n if (!ranges.length)\n return 0;\n var selection = this.multiSelect;\n if (!additive)\n selection.toSingleRange(ranges[0]);\n for (var i = ranges.length; i--;)\n selection.addRange(ranges[i], true);\n if (range && selection.rangeList.rangeAtPoint(range.start))\n selection.addRange(range, true);\n return ranges.length;\n };\n this.selectMoreLines = function (dir, skip) {\n var range = this.selection.toOrientedRange();\n var isBackwards = range.cursor == range.end;\n var screenLead = this.session.documentToScreenPosition(range.cursor);\n if (this.selection.$desiredColumn)\n screenLead.column = this.selection.$desiredColumn;\n var lead = this.session.screenToDocumentPosition(screenLead.row + dir, screenLead.column);\n if (!range.isEmpty()) {\n var screenAnchor = this.session.documentToScreenPosition(isBackwards ? range.end : range.start);\n var anchor = this.session.screenToDocumentPosition(screenAnchor.row + dir, screenAnchor.column);\n }\n else {\n var anchor = lead;\n }\n if (isBackwards) {\n var newRange = Range.fromPoints(lead, anchor);\n newRange.cursor = newRange.start;\n }\n else {\n var newRange = Range.fromPoints(anchor, lead);\n newRange.cursor = newRange.end;\n }\n newRange.desiredColumn = screenLead.column;\n if (!this.selection.inMultiSelectMode) {\n this.selection.addRange(range);\n }\n else {\n if (skip)\n var toRemove = range.cursor;\n }\n this.selection.addRange(newRange);\n if (toRemove)\n this.selection.substractPoint(toRemove);\n };\n this.transposeSelections = function (dir) {\n var session = this.session;\n var sel = session.multiSelect;\n var all = sel.ranges;\n for (var i = all.length; i--;) {\n var range = all[i];\n if (range.isEmpty()) {\n var tmp = session.getWordRange(range.start.row, range.start.column);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n range.end.row = tmp.end.row;\n range.end.column = tmp.end.column;\n }\n }\n sel.mergeOverlappingRanges();\n var words = [];\n for (var i = all.length; i--;) {\n var range = all[i];\n words.unshift(session.getTextRange(range));\n }\n if (dir < 0)\n words.unshift(words.pop());\n else\n words.push(words.shift());\n for (var i = all.length; i--;) {\n var range = all[i];\n var tmp = range.clone();\n session.replace(range, words[i]);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n }\n sel.fromOrientedRange(sel.ranges[0]);\n };\n this.selectMore = function (dir, skip, stopAtFirst) {\n var session = this.session;\n var sel = session.multiSelect;\n var range = sel.toOrientedRange();\n if (range.isEmpty()) {\n range = session.getWordRange(range.start.row, range.start.column);\n range.cursor = dir == -1 ? range.start : range.end;\n this.multiSelect.addRange(range);\n if (stopAtFirst)\n return;\n }\n var needle = session.getTextRange(range);\n var newRange = find(session, needle, dir);\n if (newRange) {\n newRange.cursor = dir == -1 ? newRange.start : newRange.end;\n this.session.unfold(newRange);\n this.multiSelect.addRange(newRange);\n this.renderer.scrollCursorIntoView(null, 0.5);\n }\n if (skip)\n this.multiSelect.substractPoint(range.cursor);\n };\n this.alignCursors = function () {\n var session = this.session;\n var sel = session.multiSelect;\n var ranges = sel.ranges;\n var row = -1;\n var sameRowRanges = ranges.filter(function (r) {\n if (r.cursor.row == row)\n return true;\n row = r.cursor.row;\n });\n if (!ranges.length || sameRowRanges.length == ranges.length - 1) {\n var range = this.selection.getRange();\n var fr = range.start.row, lr = range.end.row;\n var guessRange = fr == lr;\n if (guessRange) {\n var max = this.session.getLength();\n var line;\n do {\n line = this.session.getLine(lr);\n } while (/[=:]/.test(line) && ++lr < max);\n do {\n line = this.session.getLine(fr);\n } while (/[=:]/.test(line) && --fr > 0);\n if (fr < 0)\n fr = 0;\n if (lr >= max)\n lr = max - 1;\n }\n var lines = this.session.removeFullLines(fr, lr);\n lines = this.$reAlignText(lines, guessRange);\n this.session.insert({ row: fr, column: 0 }, lines.join(\"\\n\") + \"\\n\");\n if (!guessRange) {\n range.start.column = 0;\n range.end.column = lines[lines.length - 1].length;\n }\n this.selection.setRange(range);\n }\n else {\n sameRowRanges.forEach(function (r) {\n sel.substractPoint(r.cursor);\n });\n var maxCol = 0;\n var minSpace = Infinity;\n var spaceOffsets = ranges.map(function (r) {\n var p = r.cursor;\n var line = session.getLine(p.row);\n var spaceOffset = line.substr(p.column).search(/\\S/g);\n if (spaceOffset == -1)\n spaceOffset = 0;\n if (p.column > maxCol)\n maxCol = p.column;\n if (spaceOffset < minSpace)\n minSpace = spaceOffset;\n return spaceOffset;\n });\n ranges.forEach(function (r, i) {\n var p = r.cursor;\n var l = maxCol - p.column;\n var d = spaceOffsets[i] - minSpace;\n if (l > d)\n session.insert(p, lang.stringRepeat(\" \", l - d));\n else\n session.remove(new Range(p.row, p.column, p.row, p.column - l + d));\n r.start.column = r.end.column = maxCol;\n r.start.row = r.end.row = p.row;\n r.cursor = r.end;\n });\n sel.fromOrientedRange(ranges[0]);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n }\n };\n this.$reAlignText = function (lines, forceLeft) {\n var isLeftAligned = true, isRightAligned = true;\n var startW, textW, endW;\n return lines.map(function (line) {\n var m = line.match(/(\\s*)(.*?)(\\s*)([=:].*)/);\n if (!m)\n return [line];\n if (startW == null) {\n startW = m[1].length;\n textW = m[2].length;\n endW = m[3].length;\n return m;\n }\n if (startW + textW + endW != m[1].length + m[2].length + m[3].length)\n isRightAligned = false;\n if (startW != m[1].length)\n isLeftAligned = false;\n if (startW > m[1].length)\n startW = m[1].length;\n if (textW < m[2].length)\n textW = m[2].length;\n if (endW > m[3].length)\n endW = m[3].length;\n return m;\n }).map(forceLeft ? alignLeft :\n isLeftAligned ? isRightAligned ? alignRight : alignLeft : unAlign);\n function spaces(n) {\n return lang.stringRepeat(\" \", n);\n }\n function alignLeft(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(textW - m[2].length + endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function alignRight(m) {\n return !m[2] ? m[0] : spaces(startW + textW - m[2].length) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function unAlign(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n };\n}).call(Editor.prototype);\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nexports.onSessionChange = function (e) {\n var session = e.session;\n if (session && !session.multiSelect) {\n session.$selectionMarkers = [];\n session.selection.$initRangeList();\n session.multiSelect = session.selection;\n }\n this.multiSelect = session && session.multiSelect;\n var oldSession = e.oldSession;\n if (oldSession) {\n oldSession.multiSelect.off(\"addRange\", this.$onAddRange);\n oldSession.multiSelect.off(\"removeRange\", this.$onRemoveRange);\n oldSession.multiSelect.off(\"multiSelect\", this.$onMultiSelect);\n oldSession.multiSelect.off(\"singleSelect\", this.$onSingleSelect);\n oldSession.multiSelect.lead.off(\"change\", this.$checkMultiselectChange);\n oldSession.multiSelect.anchor.off(\"change\", this.$checkMultiselectChange);\n }\n if (session) {\n session.multiSelect.on(\"addRange\", this.$onAddRange);\n session.multiSelect.on(\"removeRange\", this.$onRemoveRange);\n session.multiSelect.on(\"multiSelect\", this.$onMultiSelect);\n session.multiSelect.on(\"singleSelect\", this.$onSingleSelect);\n session.multiSelect.lead.on(\"change\", this.$checkMultiselectChange);\n session.multiSelect.anchor.on(\"change\", this.$checkMultiselectChange);\n }\n if (session && this.inMultiSelectMode != session.selection.inMultiSelectMode) {\n if (session.selection.inMultiSelectMode)\n this.$onMultiSelect();\n else\n this.$onSingleSelect();\n }\n};\nfunction MultiSelect(editor) {\n if (editor.$multiselectOnSessionChange)\n return;\n editor.$onAddRange = editor.$onAddRange.bind(editor);\n editor.$onRemoveRange = editor.$onRemoveRange.bind(editor);\n editor.$onMultiSelect = editor.$onMultiSelect.bind(editor);\n editor.$onSingleSelect = editor.$onSingleSelect.bind(editor);\n editor.$multiselectOnSessionChange = exports.onSessionChange.bind(editor);\n editor.$checkMultiselectChange = editor.$checkMultiselectChange.bind(editor);\n editor.$multiselectOnSessionChange(editor);\n editor.on(\"changeSession\", editor.$multiselectOnSessionChange);\n editor.on(\"mousedown\", onMouseDown);\n editor.commands.addCommands(commands.defaultCommands);\n addAltCursorListeners(editor);\n}\nfunction addAltCursorListeners(editor) {\n if (!editor.textInput)\n return;\n var el = editor.textInput.getElement();\n var altCursor = false;\n event.addListener(el, \"keydown\", function (e) {\n var altDown = e.keyCode == 18 && !(e.ctrlKey || e.shiftKey || e.metaKey);\n if (editor.$blockSelectEnabled && altDown) {\n if (!altCursor) {\n editor.renderer.setMouseCursor(\"crosshair\");\n altCursor = true;\n }\n }\n else if (altCursor) {\n reset();\n }\n }, editor);\n event.addListener(el, \"keyup\", reset, editor);\n event.addListener(el, \"blur\", reset, editor);\n function reset(e) {\n if (altCursor) {\n editor.renderer.setMouseCursor(\"\");\n altCursor = false;\n }\n }\n}\nexports.MultiSelect = MultiSelect;\nrequire(\"./config\").defineOptions(Editor.prototype, \"editor\", {\n enableMultiselect: {\n set: function (val) {\n MultiSelect(this);\n if (val) {\n this.on(\"mousedown\", onMouseDown);\n }\n else {\n this.off(\"mousedown\", onMouseDown);\n }\n },\n value: true\n },\n enableBlockSelect: {\n set: function (val) {\n this.$blockSelectEnabled = val;\n },\n value: true\n }\n});\n\n});\n\nace.define(\"ace/mode/folding/fold_mode\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../../range\").Range;\nvar FoldMode = exports.FoldMode = function () { };\n(function () {\n this.foldingStartMarker = null;\n this.foldingStopMarker = null;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.foldingStartMarker.test(line))\n return \"start\";\n if (foldStyle == \"markbeginend\"\n && this.foldingStopMarker\n && this.foldingStopMarker.test(line))\n return \"end\";\n return \"\";\n };\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n return null;\n };\n this.indentationBlock = function (session, row, column) {\n var re = /\\S/;\n var line = session.getLine(row);\n var startLevel = line.search(re);\n if (startLevel == -1)\n return;\n var startColumn = column || line.length;\n var maxRow = session.getLength();\n var startRow = row;\n var endRow = row;\n while (++row < maxRow) {\n var level = session.getLine(row).search(re);\n if (level == -1)\n continue;\n if (level <= startLevel) {\n var token = session.getTokenAt(row, 0);\n if (!token || token.type !== \"string\")\n break;\n }\n endRow = row;\n }\n if (endRow > startRow) {\n var endColumn = session.getLine(endRow).length;\n return new Range(startRow, startColumn, endRow, endColumn);\n }\n };\n this.openingBracketBlock = function (session, bracket, row, column, typeRe) {\n var start = { row: row, column: column + 1 };\n var end = session.$findClosingBracket(bracket, start, typeRe);\n if (!end)\n return;\n var fw = session.foldWidgets[end.row];\n if (fw == null)\n fw = session.getFoldWidget(end.row);\n if (fw == \"start\" && end.row > start.row) {\n end.row--;\n end.column = session.getLine(end.row).length;\n }\n return Range.fromPoints(start, end);\n };\n this.closingBracketBlock = function (session, bracket, row, column, typeRe) {\n var end = { row: row, column: column };\n var start = session.$findOpeningBracket(bracket, end);\n if (!start)\n return;\n start.column++;\n end.column--;\n return Range.fromPoints(start, end);\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/ext/error_marker\",[\"require\",\"exports\",\"module\",\"ace/line_widgets\",\"ace/lib/dom\",\"ace/range\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar LineWidgets = require(\"../line_widgets\").LineWidgets;\nvar dom = require(\"../lib/dom\");\nvar Range = require(\"../range\").Range;\nvar nls = require(\"../config\").nls;\nfunction binarySearch(array, needle, comparator) {\n var first = 0;\n var last = array.length - 1;\n while (first <= last) {\n var mid = (first + last) >> 1;\n var c = comparator(needle, array[mid]);\n if (c > 0)\n first = mid + 1;\n else if (c < 0)\n last = mid - 1;\n else\n return mid;\n }\n return -(first + 1);\n}\nfunction findAnnotations(session, row, dir) {\n var annotations = session.getAnnotations().sort(Range.comparePoints);\n if (!annotations.length)\n return;\n var i = binarySearch(annotations, { row: row, column: -1 }, Range.comparePoints);\n if (i < 0)\n i = -i - 1;\n if (i >= annotations.length)\n i = dir > 0 ? 0 : annotations.length - 1;\n else if (i === 0 && dir < 0)\n i = annotations.length - 1;\n var annotation = annotations[i];\n if (!annotation || !dir)\n return;\n if (annotation.row === row) {\n do {\n annotation = annotations[i += dir];\n } while (annotation && annotation.row === row);\n if (!annotation)\n return annotations.slice();\n }\n var matched = [];\n row = annotation.row;\n do {\n matched[dir < 0 ? \"unshift\" : \"push\"](annotation);\n annotation = annotations[i += dir];\n } while (annotation && annotation.row == row);\n return matched.length && matched;\n}\nexports.showErrorMarker = function (editor, dir) {\n var session = editor.session;\n if (!session.widgetManager) {\n session.widgetManager = new LineWidgets(session);\n session.widgetManager.attach(editor);\n }\n var pos = editor.getCursorPosition();\n var row = pos.row;\n var oldWidget = session.widgetManager.getWidgetsAtRow(row).filter(function (w) {\n return w.type == \"errorMarker\";\n })[0];\n if (oldWidget) {\n oldWidget.destroy();\n }\n else {\n row -= dir;\n }\n var annotations = findAnnotations(session, row, dir);\n var gutterAnno;\n if (annotations) {\n var annotation = annotations[0];\n pos.column = (annotation.pos && typeof annotation.column != \"number\"\n ? annotation.pos.sc\n : annotation.column) || 0;\n pos.row = annotation.row;\n gutterAnno = editor.renderer.$gutterLayer.$annotations[pos.row];\n }\n else if (oldWidget) {\n return;\n }\n else {\n gutterAnno = {\n text: [nls(\"Looks good!\")],\n className: \"ace_ok\"\n };\n }\n editor.session.unfold(pos.row);\n editor.selection.moveToPosition(pos);\n var w = {\n row: pos.row,\n fixedWidth: true,\n coverGutter: true,\n el: dom.createElement(\"div\"),\n type: \"errorMarker\"\n };\n var el = w.el.appendChild(dom.createElement(\"div\"));\n var arrow = w.el.appendChild(dom.createElement(\"div\"));\n arrow.className = \"error_widget_arrow \" + gutterAnno.className;\n var left = editor.renderer.$cursorLayer\n .getPixelPosition(pos).left;\n arrow.style.left = left + editor.renderer.gutterWidth - 5 + \"px\";\n w.el.className = \"error_widget_wrapper\";\n el.className = \"error_widget \" + gutterAnno.className;\n el.innerHTML = gutterAnno.text.join(\"
    \");\n el.appendChild(dom.createElement(\"div\"));\n var kb = function (_, hashId, keyString) {\n if (hashId === 0 && (keyString === \"esc\" || keyString === \"return\")) {\n w.destroy();\n return { command: \"null\" };\n }\n };\n w.destroy = function () {\n if (editor.$mouseHandler.isMousePressed)\n return;\n editor.keyBinding.removeKeyboardHandler(kb);\n session.widgetManager.removeLineWidget(w);\n editor.off(\"changeSelection\", w.destroy);\n editor.off(\"changeSession\", w.destroy);\n editor.off(\"mouseup\", w.destroy);\n editor.off(\"change\", w.destroy);\n };\n editor.keyBinding.addKeyboardHandler(kb);\n editor.on(\"changeSelection\", w.destroy);\n editor.on(\"changeSession\", w.destroy);\n editor.on(\"mouseup\", w.destroy);\n editor.on(\"change\", w.destroy);\n editor.session.widgetManager.addLineWidget(w);\n w.el.onmousedown = editor.focus.bind(editor);\n editor.renderer.scrollCursorIntoView(null, 0.5, { bottom: w.el.offsetHeight });\n};\ndom.importCssString(\"\\n .error_widget_wrapper {\\n background: inherit;\\n color: inherit;\\n border:none\\n }\\n .error_widget {\\n border-top: solid 2px;\\n border-bottom: solid 2px;\\n margin: 5px 0;\\n padding: 10px 40px;\\n white-space: pre-wrap;\\n }\\n .error_widget.ace_error, .error_widget_arrow.ace_error{\\n border-color: #ff5a5a\\n }\\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\\n border-color: #F1D817\\n }\\n .error_widget.ace_info, .error_widget_arrow.ace_info{\\n border-color: #5a5a5a\\n }\\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\\n border-color: #5aaa5a\\n }\\n .error_widget_arrow {\\n position: absolute;\\n border: solid 5px;\\n border-top-color: transparent!important;\\n border-right-color: transparent!important;\\n border-left-color: transparent!important;\\n top: -5px;\\n }\\n\", \"error_marker.css\", false);\n\n});\n\nace.define(\"ace/ace\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/range\",\"ace/editor\",\"ace/edit_session\",\"ace/undomanager\",\"ace/virtual_renderer\",\"ace/worker/worker_client\",\"ace/keyboard/hash_handler\",\"ace/placeholder\",\"ace/multi_select\",\"ace/mode/folding/fold_mode\",\"ace/theme/textmate\",\"ace/ext/error_marker\",\"ace/config\",\"ace/loader_build\"], function(require, exports, module){/**\n * The main class required to set up an Ace instance in the browser.\n *\n * @class Ace\n **/\n\"use strict\";\nrequire(\"./loader_build\")(exports)\nvar dom = require(\"./lib/dom\");\nvar Range = require(\"./range\").Range;\nvar Editor = require(\"./editor\").Editor;\nvar EditSession = require(\"./edit_session\").EditSession;\nvar UndoManager = require(\"./undomanager\").UndoManager;\nvar Renderer = require(\"./virtual_renderer\").VirtualRenderer;\nrequire(\"./worker/worker_client\");\nrequire(\"./keyboard/hash_handler\");\nrequire(\"./placeholder\");\nrequire(\"./multi_select\");\nrequire(\"./mode/folding/fold_mode\");\nrequire(\"./theme/textmate\");\nrequire(\"./ext/error_marker\");\nexports.config = require(\"./config\");\nexports.edit = function (el, options) {\n if (typeof el == \"string\") {\n var _id = el;\n el = document.getElementById(_id);\n if (!el)\n throw new Error(\"ace.edit can't find div #\" + _id);\n }\n if (el && el.env && el.env.editor instanceof Editor)\n return el.env.editor;\n var value = \"\";\n if (el && /input|textarea/i.test(el.tagName)) {\n var oldNode = el;\n value = oldNode.value;\n el = dom.createElement(\"pre\");\n oldNode.parentNode.replaceChild(el, oldNode);\n }\n else if (el) {\n value = el.textContent;\n el.innerHTML = \"\";\n }\n var doc = exports.createEditSession(value);\n var editor = new Editor(new Renderer(el), doc, options);\n var env = {\n document: doc,\n editor: editor,\n onResize: editor.resize.bind(editor, null)\n };\n if (oldNode)\n env.textarea = oldNode;\n editor.on(\"destroy\", function () {\n env.editor.container.env = null; // prevent memory leak on old ie\n });\n editor.container.env = editor.env = env;\n return editor;\n};\nexports.createEditSession = function (text, mode) {\n var doc = new EditSession(text, mode);\n doc.setUndoManager(new UndoManager());\n return doc;\n};\nexports.Range = Range;\nexports.Editor = Editor;\nexports.EditSession = EditSession;\nexports.UndoManager = UndoManager;\nexports.VirtualRenderer = Renderer;\nexports.version = exports.config.version;\n\n}); (function() {\n ace.require([\"ace/ace\"], function(a) {\n if (a) {\n a.config.init(true);\n a.define = ace.define;\n }\n var global = (function () {\n return this;\n })();\n if (!global && typeof window != \"undefined\") global = window; // can happen in strict mode\n if (!global && typeof self != \"undefined\") global = self; // can happen in webworker\n \n if (!global.ace)\n global.ace = a;\n for (var key in a) if (a.hasOwnProperty(key))\n global.ace[key] = a[key];\n global.ace[\"default\"] = global.ace;\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = global.ace;\n }\n });\n })();\n ","ace.define(\"ace/ext/beautify\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"], function(require, exports, module){// [WIP]\n\"use strict\";\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nfunction is(token, type) {\n return token.type.lastIndexOf(type + \".xml\") > -1;\n}\nexports.singletonTags = [\"area\", \"base\", \"br\", \"col\", \"command\", \"embed\", \"hr\", \"html\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"param\", \"source\", \"track\", \"wbr\"];\nexports.blockTags = [\"article\", \"aside\", \"blockquote\", \"body\", \"div\", \"dl\", \"fieldset\", \"footer\", \"form\", \"head\", \"header\", \"html\", \"nav\", \"ol\", \"p\", \"script\", \"section\", \"style\", \"table\", \"tbody\", \"tfoot\", \"thead\", \"ul\"];\nexports.formatOptions = {\n lineBreaksAfterCommasInCurlyBlock: true\n};\nexports.beautify = function (session) {\n var iterator = new TokenIterator(session, 0, 0);\n var token = iterator.getCurrentToken();\n var tabString = session.getTabString();\n var singletonTags = exports.singletonTags;\n var blockTags = exports.blockTags;\n var formatOptions = exports.formatOptions || {};\n var nextToken;\n var breakBefore = false;\n var spaceBefore = false;\n var spaceAfter = false;\n var code = \"\";\n var value = \"\";\n var tagName = \"\";\n var depth = 0;\n var lastDepth = 0;\n var lastIndent = 0;\n var indent = 0;\n var unindent = 0;\n var roundDepth = 0;\n var curlyDepth = 0;\n var row;\n var curRow = 0;\n var rowsToAdd = 0;\n var rowTokens = [];\n var abort = false;\n var i;\n var indentNextLine = false;\n var inTag = false;\n var inCSS = false;\n var inBlock = false;\n var levels = { 0: 0 };\n var parents = [];\n var caseBody = false;\n var trimNext = function () {\n if (nextToken && nextToken.value && nextToken.type !== 'string.regexp')\n nextToken.value = nextToken.value.replace(/^\\s*/, \"\");\n };\n var trimLine = function () {\n var end = code.length - 1;\n while (true) {\n if (end == 0)\n break;\n if (code[end] !== \" \")\n break;\n end = end - 1;\n }\n code = code.slice(0, end + 1);\n };\n var trimCode = function () {\n code = code.trimRight();\n breakBefore = false;\n };\n while (token !== null) {\n curRow = iterator.getCurrentTokenRow();\n rowTokens = iterator.$rowTokens;\n nextToken = iterator.stepForward();\n if (typeof token !== \"undefined\") {\n value = token.value;\n unindent = 0;\n inCSS = (tagName === \"style\" || session.$modeId === \"ace/mode/css\");\n if (is(token, \"tag-open\")) {\n inTag = true;\n if (nextToken)\n inBlock = (blockTags.indexOf(nextToken.value) !== -1);\n if (value === \" 0; rowsToAdd--)\n code += \"\\n\";\n breakBefore = true;\n if (!is(token, \"comment\") && !token.type.match(/^(comment|string)$/))\n value = value.trimLeft();\n }\n if (value) {\n if (token.type === \"keyword\" && value.match(/^(if|else|elseif|for|foreach|while|switch)$/)) {\n parents[depth] = value;\n trimNext();\n spaceAfter = true;\n if (value.match(/^(else|elseif)$/)) {\n if (code.match(/\\}[\\s]*$/)) {\n trimCode();\n spaceBefore = true;\n }\n }\n }\n else if (token.type === \"paren.lparen\") {\n trimNext();\n if (value.substr(-1) === \"{\") {\n spaceAfter = true;\n indentNextLine = false;\n if (!inTag)\n rowsToAdd = 1;\n }\n if (value.substr(0, 1) === \"{\") {\n spaceBefore = true;\n if (code.substr(-1) !== '[' && code.trimRight().substr(-1) === '[') {\n trimCode();\n spaceBefore = false;\n }\n else if (code.trimRight().substr(-1) === ')') {\n trimCode();\n }\n else {\n trimLine();\n }\n }\n }\n else if (token.type === \"paren.rparen\") {\n unindent = 1;\n if (value.substr(0, 1) === \"}\") {\n if (parents[depth - 1] === 'case')\n unindent++;\n if (code.trimRight().substr(-1) === '{') {\n trimCode();\n }\n else {\n spaceBefore = true;\n if (inCSS)\n rowsToAdd += 2;\n }\n }\n if (value.substr(0, 1) === \"]\") {\n if (code.substr(-1) !== '}' && code.trimRight().substr(-1) === '}') {\n spaceBefore = false;\n indent++;\n trimCode();\n }\n }\n if (value.substr(0, 1) === \")\") {\n if (code.substr(-1) !== '(' && code.trimRight().substr(-1) === '(') {\n spaceBefore = false;\n indent++;\n trimCode();\n }\n }\n trimLine();\n }\n else if ((token.type === \"keyword.operator\" || token.type === \"keyword\") && value.match(/^(=|==|===|!=|!==|&&|\\|\\||and|or|xor|\\+=|.=|>|>=|<|<=|=>)$/)) {\n trimCode();\n trimNext();\n spaceBefore = true;\n spaceAfter = true;\n }\n else if (token.type === \"punctuation.operator\" && value === ';') {\n trimCode();\n trimNext();\n spaceAfter = true;\n if (inCSS)\n rowsToAdd++;\n }\n else if (token.type === \"punctuation.operator\" && value.match(/^(:|,)$/)) {\n trimCode();\n trimNext();\n if (value.match(/^(,)$/) && curlyDepth > 0 && roundDepth === 0 && formatOptions.lineBreaksAfterCommasInCurlyBlock) {\n rowsToAdd++;\n }\n else {\n spaceAfter = true;\n breakBefore = false;\n }\n }\n else if (token.type === \"support.php_tag\" && value === \"?>\" && !breakBefore) {\n trimCode();\n spaceBefore = true;\n }\n else if (is(token, \"attribute-name\") && code.substr(-1).match(/^\\s$/)) {\n spaceBefore = true;\n }\n else if (is(token, \"attribute-equals\")) {\n trimLine();\n trimNext();\n }\n else if (is(token, \"tag-close\")) {\n trimLine();\n if (value === \"/>\")\n spaceBefore = true;\n }\n else if (token.type === \"keyword\" && value.match(/^(case|default)$/)) {\n if (caseBody)\n unindent = 1;\n }\n if (breakBefore && !(token.type.match(/^(comment)$/) && !value.substr(0, 1).match(/^[/#]$/)) && !(token.type.match(/^(string)$/) && !value.substr(0, 1).match(/^['\"@]$/))) {\n indent = lastIndent;\n if (depth > lastDepth) {\n indent++;\n for (i = depth; i > lastDepth; i--)\n levels[i] = indent;\n }\n else if (depth < lastDepth)\n indent = levels[depth];\n lastDepth = depth;\n lastIndent = indent;\n if (unindent)\n indent -= unindent;\n if (indentNextLine && !roundDepth) {\n indent++;\n indentNextLine = false;\n }\n for (i = 0; i < indent; i++)\n code += tabString;\n }\n if (token.type === \"keyword\" && value.match(/^(case|default)$/)) {\n if (caseBody === false) {\n parents[depth] = value;\n depth++;\n caseBody = true;\n }\n }\n else if (token.type === \"keyword\" && value.match(/^(break)$/)) {\n if (parents[depth - 1] && parents[depth - 1].match(/^(case|default)$/)) {\n depth--;\n caseBody = false;\n }\n }\n if (token.type === \"paren.lparen\") {\n roundDepth += (value.match(/\\(/g) || []).length;\n curlyDepth += (value.match(/\\{/g) || []).length;\n depth += value.length;\n }\n if (token.type === \"keyword\" && value.match(/^(if|else|elseif|for|while)$/)) {\n indentNextLine = true;\n roundDepth = 0;\n }\n else if (!roundDepth && value.trim() && token.type !== \"comment\")\n indentNextLine = false;\n if (token.type === \"paren.rparen\") {\n roundDepth -= (value.match(/\\)/g) || []).length;\n curlyDepth -= (value.match(/\\}/g) || []).length;\n for (i = 0; i < value.length; i++) {\n depth--;\n if (value.substr(i, 1) === '}' && parents[depth] === 'case') {\n depth--;\n }\n }\n }\n if (token.type == \"text\")\n value = value.replace(/\\s+$/, \" \");\n if (spaceBefore && !breakBefore) {\n trimLine();\n if (code.substr(-1) !== \"\\n\")\n code += \" \";\n }\n code += value;\n if (spaceAfter)\n code += \" \";\n breakBefore = false;\n spaceBefore = false;\n spaceAfter = false;\n if ((is(token, \"tag-close\") && (inBlock || blockTags.indexOf(tagName) !== -1)) || (is(token, \"doctype\") && value === \">\")) {\n if (inBlock && nextToken && nextToken.value === \"\") {\n depth--;\n }\n }\n if (is(token, \"tag-name\")) {\n tagName = value;\n }\n row = curRow;\n }\n }\n token = nextToken;\n }\n code = code.trim();\n session.doc.setValue(code);\n};\nexports.commands = [{\n name: \"beautify\",\n description: \"Format selection (Beautify)\",\n exec: function (editor) {\n exports.beautify(editor.session);\n },\n bindKey: \"Ctrl-Shift-B\"\n }];\n\n}); (function() {\n ace.require([\"ace/ext/beautify\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/ext/searchbox-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \"\\n\\n/* ------------------------------------------------------------------------------------------\\n * Editor Search Form\\n * --------------------------------------------------------------------------------------- */\\n.ace_search {\\n background-color: #ddd;\\n color: #666;\\n border: 1px solid #cbcbcb;\\n border-top: 0 none;\\n overflow: hidden;\\n margin: 0;\\n padding: 4px 6px 0 4px;\\n position: absolute;\\n top: 0;\\n z-index: 99;\\n white-space: normal;\\n}\\n.ace_search.left {\\n border-left: 0 none;\\n border-radius: 0px 0px 5px 0px;\\n left: 0;\\n}\\n.ace_search.right {\\n border-radius: 0px 0px 0px 5px;\\n border-right: 0 none;\\n right: 0;\\n}\\n\\n.ace_search_form, .ace_replace_form {\\n margin: 0 20px 4px 0;\\n overflow: hidden;\\n line-height: 1.9;\\n}\\n.ace_replace_form {\\n margin-right: 0;\\n}\\n.ace_search_form.ace_nomatch {\\n outline: 1px solid red;\\n}\\n\\n.ace_search_field {\\n border-radius: 3px 0 0 3px;\\n background-color: white;\\n color: black;\\n border: 1px solid #cbcbcb;\\n border-right: 0 none;\\n outline: 0;\\n padding: 0;\\n font-size: inherit;\\n margin: 0;\\n line-height: inherit;\\n padding: 0 6px;\\n min-width: 17em;\\n vertical-align: top;\\n min-height: 1.8em;\\n box-sizing: content-box;\\n}\\n.ace_searchbtn {\\n border: 1px solid #cbcbcb;\\n line-height: inherit;\\n display: inline-block;\\n padding: 0 6px;\\n background: #fff;\\n border-right: 0 none;\\n border-left: 1px solid #dcdcdc;\\n cursor: pointer;\\n margin: 0;\\n position: relative;\\n color: #666;\\n}\\n.ace_searchbtn:last-child {\\n border-radius: 0 3px 3px 0;\\n border-right: 1px solid #cbcbcb;\\n}\\n.ace_searchbtn:disabled {\\n background: none;\\n cursor: default;\\n}\\n.ace_searchbtn:hover {\\n background-color: #eef1f6;\\n}\\n.ace_searchbtn.prev, .ace_searchbtn.next {\\n padding: 0px 0.7em\\n}\\n.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\\n content: \\\"\\\";\\n border: solid 2px #888;\\n width: 0.5em;\\n height: 0.5em;\\n border-width: 2px 0 0 2px;\\n display:inline-block;\\n transform: rotate(-45deg);\\n}\\n.ace_searchbtn.next:after {\\n border-width: 0 2px 2px 0 ;\\n}\\n.ace_searchbtn_close {\\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\\n border-radius: 50%;\\n border: 0 none;\\n color: #656565;\\n cursor: pointer;\\n font: 16px/16px Arial;\\n padding: 0;\\n height: 14px;\\n width: 14px;\\n top: 9px;\\n right: 7px;\\n position: absolute;\\n}\\n.ace_searchbtn_close:hover {\\n background-color: #656565;\\n background-position: 50% 100%;\\n color: white;\\n}\\n\\n.ace_button {\\n margin-left: 2px;\\n cursor: pointer;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -o-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n overflow: hidden;\\n opacity: 0.7;\\n border: 1px solid rgba(100,100,100,0.23);\\n padding: 1px;\\n box-sizing: border-box!important;\\n color: black;\\n}\\n\\n.ace_button:hover {\\n background-color: #eee;\\n opacity:1;\\n}\\n.ace_button:active {\\n background-color: #ddd;\\n}\\n\\n.ace_button.checked {\\n border-color: #3399ff;\\n opacity:1;\\n}\\n\\n.ace_search_options{\\n margin-bottom: 3px;\\n text-align: right;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -o-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n clear: both;\\n}\\n\\n.ace_search_counter {\\n float: left;\\n font-family: arial;\\n padding: 0 8px;\\n}\";\n\n});\n\nace.define(\"ace/ext/searchbox\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/event\",\"ace/ext/searchbox-css\",\"ace/keyboard/hash_handler\",\"ace/lib/keys\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar event = require(\"../lib/event\");\nvar searchboxCss = require(\"./searchbox-css\");\nvar HashHandler = require(\"../keyboard/hash_handler\").HashHandler;\nvar keyUtil = require(\"../lib/keys\");\nvar nls = require(\"../config\").nls;\nvar MAX_COUNT = 999;\ndom.importCssString(searchboxCss, \"ace_searchbox\", false);\nvar SearchBox = /** @class */ (function () {\n function SearchBox(editor, range, showReplaceForm) {\n var div = dom.createElement(\"div\");\n dom.buildDom([\"div\", { class: \"ace_search right\" },\n [\"span\", { action: \"hide\", class: \"ace_searchbtn_close\" }],\n [\"div\", { class: \"ace_search_form\" },\n [\"input\", { class: \"ace_search_field\", placeholder: nls(\"Search for\"), spellcheck: \"false\" }],\n [\"span\", { action: \"findPrev\", class: \"ace_searchbtn prev\" }, \"\\u200b\"],\n [\"span\", { action: \"findNext\", class: \"ace_searchbtn next\" }, \"\\u200b\"],\n [\"span\", { action: \"findAll\", class: \"ace_searchbtn\", title: \"Alt-Enter\" }, nls(\"All\")]\n ],\n [\"div\", { class: \"ace_replace_form\" },\n [\"input\", { class: \"ace_search_field\", placeholder: nls(\"Replace with\"), spellcheck: \"false\" }],\n [\"span\", { action: \"replaceAndFindNext\", class: \"ace_searchbtn\" }, nls(\"Replace\")],\n [\"span\", { action: \"replaceAll\", class: \"ace_searchbtn\" }, nls(\"All\")]\n ],\n [\"div\", { class: \"ace_search_options\" },\n [\"span\", { action: \"toggleReplace\", class: \"ace_button\", title: nls(\"Toggle Replace mode\"),\n style: \"float:left;margin-top:-2px;padding:0 5px;\" }, \"+\"],\n [\"span\", { class: \"ace_search_counter\" }],\n [\"span\", { action: \"toggleRegexpMode\", class: \"ace_button\", title: nls(\"RegExp Search\") }, \".*\"],\n [\"span\", { action: \"toggleCaseSensitive\", class: \"ace_button\", title: nls(\"CaseSensitive Search\") }, \"Aa\"],\n [\"span\", { action: \"toggleWholeWords\", class: \"ace_button\", title: nls(\"Whole Word Search\") }, \"\\\\b\"],\n [\"span\", { action: \"searchInSelection\", class: \"ace_button\", title: nls(\"Search In Selection\") }, \"S\"]\n ]\n ], div);\n this.element = div.firstChild;\n this.setSession = this.setSession.bind(this);\n this.$init();\n this.setEditor(editor);\n dom.importCssString(searchboxCss, \"ace_searchbox\", editor.container);\n }\n SearchBox.prototype.setEditor = function (editor) {\n editor.searchBox = this;\n editor.renderer.scroller.appendChild(this.element);\n this.editor = editor;\n };\n SearchBox.prototype.setSession = function (e) {\n this.searchRange = null;\n this.$syncOptions(true);\n };\n SearchBox.prototype.$initElements = function (sb) {\n this.searchBox = sb.querySelector(\".ace_search_form\");\n this.replaceBox = sb.querySelector(\".ace_replace_form\");\n this.searchOption = sb.querySelector(\"[action=searchInSelection]\");\n this.replaceOption = sb.querySelector(\"[action=toggleReplace]\");\n this.regExpOption = sb.querySelector(\"[action=toggleRegexpMode]\");\n this.caseSensitiveOption = sb.querySelector(\"[action=toggleCaseSensitive]\");\n this.wholeWordOption = sb.querySelector(\"[action=toggleWholeWords]\");\n this.searchInput = this.searchBox.querySelector(\".ace_search_field\");\n this.replaceInput = this.replaceBox.querySelector(\".ace_search_field\");\n this.searchCounter = sb.querySelector(\".ace_search_counter\");\n };\n SearchBox.prototype.$init = function () {\n var sb = this.element;\n this.$initElements(sb);\n var _this = this;\n event.addListener(sb, \"mousedown\", function (e) {\n setTimeout(function () {\n _this.activeInput.focus();\n }, 0);\n event.stopPropagation(e);\n });\n event.addListener(sb, \"click\", function (e) {\n var t = e.target || e.srcElement;\n var action = t.getAttribute(\"action\");\n if (action && _this[action])\n _this[action]();\n else if (_this.$searchBarKb.commands[action])\n _this.$searchBarKb.commands[action].exec(_this);\n event.stopPropagation(e);\n });\n event.addCommandKeyListener(sb, function (e, hashId, keyCode) {\n var keyString = keyUtil.keyCodeToString(keyCode);\n var command = _this.$searchBarKb.findKeyCommand(hashId, keyString);\n if (command && command.exec) {\n command.exec(_this);\n event.stopEvent(e);\n }\n });\n this.$onChange = lang.delayedCall(function () {\n _this.find(false, false);\n });\n event.addListener(this.searchInput, \"input\", function () {\n _this.$onChange.schedule(20);\n });\n event.addListener(this.searchInput, \"focus\", function () {\n _this.activeInput = _this.searchInput;\n _this.searchInput.value && _this.highlight();\n });\n event.addListener(this.replaceInput, \"focus\", function () {\n _this.activeInput = _this.replaceInput;\n _this.searchInput.value && _this.highlight();\n });\n };\n SearchBox.prototype.setSearchRange = function (range) {\n this.searchRange = range;\n if (range) {\n this.searchRangeMarker = this.editor.session.addMarker(range, \"ace_active-line\");\n }\n else if (this.searchRangeMarker) {\n this.editor.session.removeMarker(this.searchRangeMarker);\n this.searchRangeMarker = null;\n }\n };\n SearchBox.prototype.$syncOptions = function (preventScroll) {\n dom.setCssClass(this.replaceOption, \"checked\", this.searchRange);\n dom.setCssClass(this.searchOption, \"checked\", this.searchOption.checked);\n this.replaceOption.textContent = this.replaceOption.checked ? \"-\" : \"+\";\n dom.setCssClass(this.regExpOption, \"checked\", this.regExpOption.checked);\n dom.setCssClass(this.wholeWordOption, \"checked\", this.wholeWordOption.checked);\n dom.setCssClass(this.caseSensitiveOption, \"checked\", this.caseSensitiveOption.checked);\n var readOnly = this.editor.getReadOnly();\n this.replaceOption.style.display = readOnly ? \"none\" : \"\";\n this.replaceBox.style.display = this.replaceOption.checked && !readOnly ? \"\" : \"none\";\n this.find(false, false, preventScroll);\n };\n SearchBox.prototype.highlight = function (re) {\n this.editor.session.highlight(re || this.editor.$search.$options.re);\n this.editor.renderer.updateBackMarkers();\n };\n SearchBox.prototype.find = function (skipCurrent, backwards, preventScroll) {\n var range = this.editor.find(this.searchInput.value, {\n skipCurrent: skipCurrent,\n backwards: backwards,\n wrap: true,\n regExp: this.regExpOption.checked,\n caseSensitive: this.caseSensitiveOption.checked,\n wholeWord: this.wholeWordOption.checked,\n preventScroll: preventScroll,\n range: this.searchRange\n });\n var noMatch = !range && this.searchInput.value;\n dom.setCssClass(this.searchBox, \"ace_nomatch\", noMatch);\n this.editor._emit(\"findSearchBox\", { match: !noMatch });\n this.highlight();\n this.updateCounter();\n };\n SearchBox.prototype.updateCounter = function () {\n var editor = this.editor;\n var regex = editor.$search.$options.re;\n var supportsUnicodeFlag = regex.unicode;\n var all = 0;\n var before = 0;\n if (regex) {\n var value = this.searchRange\n ? editor.session.getTextRange(this.searchRange)\n : editor.getValue();\n var offset = editor.session.doc.positionToIndex(editor.selection.anchor);\n if (this.searchRange)\n offset -= editor.session.doc.positionToIndex(this.searchRange.start);\n var last = regex.lastIndex = 0;\n var m;\n while ((m = regex.exec(value))) {\n all++;\n last = m.index;\n if (last <= offset)\n before++;\n if (all > MAX_COUNT)\n break;\n if (!m[0]) {\n regex.lastIndex = last += lang.skipEmptyMatch(value, last, supportsUnicodeFlag);\n if (last >= value.length)\n break;\n }\n }\n }\n this.searchCounter.textContent = nls(\"$0 of $1\", [before, (all > MAX_COUNT ? MAX_COUNT + \"+\" : all)]);\n };\n SearchBox.prototype.findNext = function () {\n this.find(true, false);\n };\n SearchBox.prototype.findPrev = function () {\n this.find(true, true);\n };\n SearchBox.prototype.findAll = function () {\n var range = this.editor.findAll(this.searchInput.value, {\n regExp: this.regExpOption.checked,\n caseSensitive: this.caseSensitiveOption.checked,\n wholeWord: this.wholeWordOption.checked\n });\n var noMatch = !range && this.searchInput.value;\n dom.setCssClass(this.searchBox, \"ace_nomatch\", noMatch);\n this.editor._emit(\"findSearchBox\", { match: !noMatch });\n this.highlight();\n this.hide();\n };\n SearchBox.prototype.replace = function () {\n if (!this.editor.getReadOnly())\n this.editor.replace(this.replaceInput.value);\n };\n SearchBox.prototype.replaceAndFindNext = function () {\n if (!this.editor.getReadOnly()) {\n this.editor.replace(this.replaceInput.value);\n this.findNext();\n }\n };\n SearchBox.prototype.replaceAll = function () {\n if (!this.editor.getReadOnly())\n this.editor.replaceAll(this.replaceInput.value);\n };\n SearchBox.prototype.hide = function () {\n this.active = false;\n this.setSearchRange(null);\n this.editor.off(\"changeSession\", this.setSession);\n this.element.style.display = \"none\";\n this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb);\n this.editor.focus();\n };\n SearchBox.prototype.show = function (value, isReplace) {\n this.active = true;\n this.editor.on(\"changeSession\", this.setSession);\n this.element.style.display = \"\";\n this.replaceOption.checked = isReplace;\n if (value)\n this.searchInput.value = value;\n this.searchInput.focus();\n this.searchInput.select();\n this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb);\n this.$syncOptions(true);\n };\n SearchBox.prototype.isFocused = function () {\n var el = document.activeElement;\n return el == this.searchInput || el == this.replaceInput;\n };\n return SearchBox;\n}());\nvar $searchBarKb = new HashHandler();\n$searchBarKb.bindKeys({\n \"Ctrl-f|Command-f\": function (sb) {\n var isReplace = sb.isReplace = !sb.isReplace;\n sb.replaceBox.style.display = isReplace ? \"\" : \"none\";\n sb.replaceOption.checked = false;\n sb.$syncOptions();\n sb.searchInput.focus();\n },\n \"Ctrl-H|Command-Option-F\": function (sb) {\n if (sb.editor.getReadOnly())\n return;\n sb.replaceOption.checked = true;\n sb.$syncOptions();\n sb.replaceInput.focus();\n },\n \"Ctrl-G|Command-G\": function (sb) {\n sb.findNext();\n },\n \"Ctrl-Shift-G|Command-Shift-G\": function (sb) {\n sb.findPrev();\n },\n \"esc\": function (sb) {\n setTimeout(function () { sb.hide(); });\n },\n \"Return\": function (sb) {\n if (sb.activeInput == sb.replaceInput)\n sb.replace();\n sb.findNext();\n },\n \"Shift-Return\": function (sb) {\n if (sb.activeInput == sb.replaceInput)\n sb.replace();\n sb.findPrev();\n },\n \"Alt-Return\": function (sb) {\n if (sb.activeInput == sb.replaceInput)\n sb.replaceAll();\n sb.findAll();\n },\n \"Tab\": function (sb) {\n (sb.activeInput == sb.replaceInput ? sb.searchInput : sb.replaceInput).focus();\n }\n});\n$searchBarKb.addCommands([{\n name: \"toggleRegexpMode\",\n bindKey: { win: \"Alt-R|Alt-/\", mac: \"Ctrl-Alt-R|Ctrl-Alt-/\" },\n exec: function (sb) {\n sb.regExpOption.checked = !sb.regExpOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"toggleCaseSensitive\",\n bindKey: { win: \"Alt-C|Alt-I\", mac: \"Ctrl-Alt-R|Ctrl-Alt-I\" },\n exec: function (sb) {\n sb.caseSensitiveOption.checked = !sb.caseSensitiveOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"toggleWholeWords\",\n bindKey: { win: \"Alt-B|Alt-W\", mac: \"Ctrl-Alt-B|Ctrl-Alt-W\" },\n exec: function (sb) {\n sb.wholeWordOption.checked = !sb.wholeWordOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"toggleReplace\",\n exec: function (sb) {\n sb.replaceOption.checked = !sb.replaceOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"searchInSelection\",\n exec: function (sb) {\n sb.searchOption.checked = !sb.searchRange;\n sb.setSearchRange(sb.searchOption.checked && sb.editor.getSelectionRange());\n sb.$syncOptions();\n }\n }]);\nvar $closeSearchBarKb = new HashHandler([{\n bindKey: \"Esc\",\n name: \"closeSearchBar\",\n exec: function (editor) {\n editor.searchBox.hide();\n }\n }]);\nSearchBox.prototype.$searchBarKb = $searchBarKb;\nSearchBox.prototype.$closeSearchBarKb = $closeSearchBarKb;\nexports.SearchBox = SearchBox;\nexports.Search = function (editor, isReplace) {\n var sb = editor.searchBox || new SearchBox(editor);\n sb.show(editor.session.getTextRange(), isReplace);\n};\n\n}); (function() {\n ace.require([\"ace/ext/searchbox\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|flex-end|flex-start|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\";\nvar supportConstantColor = exports.supportConstantColor = \"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses = exports.pseudoClasses = \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\nvar CssHighlightRules = function () {\n var keywordMapper = this.createKeywordMapper({\n \"support.function\": supportFunction,\n \"support.constant\": supportConstant,\n \"support.type\": supportType,\n \"support.constant.color\": supportConstantColor,\n \"support.constant.fonts\": supportConstantFonts\n }, \"text\", true);\n this.$rules = {\n \"start\": [{\n include: [\"strings\", \"url\", \"comments\"]\n }, {\n token: \"paren.lparen\",\n regex: \"\\\\{\",\n next: \"ruleset\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\"\n }, {\n token: \"string\",\n regex: \"@(?!viewport)\",\n next: \"media\"\n }, {\n token: \"keyword\",\n regex: \"#[a-z0-9-_]+\"\n }, {\n token: \"keyword\",\n regex: \"%\"\n }, {\n token: \"variable\",\n regex: \"\\\\.[a-z0-9-_]+\"\n }, {\n token: \"string\",\n regex: \":[a-z0-9-_]+\"\n }, {\n token: \"constant.numeric\",\n regex: numRe\n }, {\n token: \"constant\",\n regex: \"[a-z0-9-_]+\"\n }, {\n caseInsensitive: true\n }],\n \"media\": [{\n include: [\"strings\", \"url\", \"comments\"]\n }, {\n token: \"paren.lparen\",\n regex: \"\\\\{\",\n next: \"start\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\",\n next: \"start\"\n }, {\n token: \"string\",\n regex: \";\",\n next: \"start\"\n }, {\n token: \"keyword\",\n regex: \"(?:media|supports|document|charset|import|namespace|media|supports|document\"\n + \"|page|font|keyframes|viewport|counter-style|font-feature-values\"\n + \"|swash|ornaments|annotation|stylistic|styleset|character-variant)\"\n }],\n \"comments\": [{\n token: \"comment\",\n regex: \"\\\\/\\\\*\",\n push: [{\n token: \"comment\",\n regex: \"\\\\*\\\\/\",\n next: \"pop\"\n }, {\n defaultToken: \"comment\"\n }]\n }],\n \"ruleset\": [{\n regex: \"-(webkit|ms|moz|o)-\",\n token: \"text\"\n }, {\n token: \"punctuation.operator\",\n regex: \"[:;]\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\",\n next: \"start\"\n }, {\n include: [\"strings\", \"url\", \"comments\"]\n }, {\n token: [\"constant.numeric\", \"keyword\"],\n regex: \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"\n }, {\n token: \"constant.numeric\",\n regex: numRe\n }, {\n token: \"constant.numeric\",\n regex: \"#[a-f0-9]{6}\"\n }, {\n token: \"constant.numeric\",\n regex: \"#[a-f0-9]{3}\"\n }, {\n token: [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n regex: pseudoElements\n }, {\n token: [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n regex: pseudoClasses\n }, {\n include: \"url\"\n }, {\n token: keywordMapper,\n regex: \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n }, {\n caseInsensitive: true\n }],\n url: [{\n token: \"support.function\",\n regex: \"(?:url(:?-prefix)?|domain|regexp)\\\\(\",\n push: [{\n token: \"support.function\",\n regex: \"\\\\)\",\n next: \"pop\"\n }, {\n defaultToken: \"string\"\n }]\n }],\n strings: [{\n token: \"string.start\",\n regex: \"'\",\n push: [{\n token: \"string.end\",\n regex: \"'|$\",\n next: \"pop\"\n }, {\n include: \"escapes\"\n }, {\n token: \"constant.language.escape\",\n regex: /\\\\$/,\n consumeLineEnd: true\n }, {\n defaultToken: \"string\"\n }]\n }, {\n token: \"string.start\",\n regex: '\"',\n push: [{\n token: \"string.end\",\n regex: '\"|$',\n next: \"pop\"\n }, {\n include: \"escapes\"\n }, {\n token: \"constant.language.escape\",\n regex: /\\\\$/,\n consumeLineEnd: true\n }, {\n defaultToken: \"string\"\n }]\n }],\n escapes: [{\n token: \"constant.language.escape\",\n regex: /\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/\n }]\n };\n this.normalizeRules();\n};\noop.inherits(CssHighlightRules, TextHighlightRules);\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar propertyMap = {\n \"background\": { \"#$0\": 1 },\n \"background-color\": { \"#$0\": 1, \"transparent\": 1, \"fixed\": 1 },\n \"background-image\": { \"url('/$0')\": 1 },\n \"background-repeat\": { \"repeat\": 1, \"repeat-x\": 1, \"repeat-y\": 1, \"no-repeat\": 1, \"inherit\": 1 },\n \"background-position\": { \"bottom\": 2, \"center\": 2, \"left\": 2, \"right\": 2, \"top\": 2, \"inherit\": 2 },\n \"background-attachment\": { \"scroll\": 1, \"fixed\": 1 },\n \"background-size\": { \"cover\": 1, \"contain\": 1 },\n \"background-clip\": { \"border-box\": 1, \"padding-box\": 1, \"content-box\": 1 },\n \"background-origin\": { \"border-box\": 1, \"padding-box\": 1, \"content-box\": 1 },\n \"border\": { \"solid $0\": 1, \"dashed $0\": 1, \"dotted $0\": 1, \"#$0\": 1 },\n \"border-color\": { \"#$0\": 1 },\n \"border-style\": { \"solid\": 2, \"dashed\": 2, \"dotted\": 2, \"double\": 2, \"groove\": 2, \"hidden\": 2, \"inherit\": 2, \"inset\": 2, \"none\": 2, \"outset\": 2, \"ridged\": 2 },\n \"border-collapse\": { \"collapse\": 1, \"separate\": 1 },\n \"bottom\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"clear\": { \"left\": 1, \"right\": 1, \"both\": 1, \"none\": 1 },\n \"color\": { \"#$0\": 1, \"rgb(#$00,0,0)\": 1 },\n \"cursor\": { \"default\": 1, \"pointer\": 1, \"move\": 1, \"text\": 1, \"wait\": 1, \"help\": 1, \"progress\": 1, \"n-resize\": 1, \"ne-resize\": 1, \"e-resize\": 1, \"se-resize\": 1, \"s-resize\": 1, \"sw-resize\": 1, \"w-resize\": 1, \"nw-resize\": 1 },\n \"display\": { \"none\": 1, \"block\": 1, \"inline\": 1, \"inline-block\": 1, \"table-cell\": 1 },\n \"empty-cells\": { \"show\": 1, \"hide\": 1 },\n \"float\": { \"left\": 1, \"right\": 1, \"none\": 1 },\n \"font-family\": { \"Arial\": 2, \"Comic Sans MS\": 2, \"Consolas\": 2, \"Courier New\": 2, \"Courier\": 2, \"Georgia\": 2, \"Monospace\": 2, \"Sans-Serif\": 2, \"Segoe UI\": 2, \"Tahoma\": 2, \"Times New Roman\": 2, \"Trebuchet MS\": 2, \"Verdana\": 1 },\n \"font-size\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"font-weight\": { \"bold\": 1, \"normal\": 1 },\n \"font-style\": { \"italic\": 1, \"normal\": 1 },\n \"font-variant\": { \"normal\": 1, \"small-caps\": 1 },\n \"height\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"left\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"letter-spacing\": { \"normal\": 1 },\n \"line-height\": { \"normal\": 1 },\n \"list-style-type\": { \"none\": 1, \"disc\": 1, \"circle\": 1, \"square\": 1, \"decimal\": 1, \"decimal-leading-zero\": 1, \"lower-roman\": 1, \"upper-roman\": 1, \"lower-greek\": 1, \"lower-latin\": 1, \"upper-latin\": 1, \"georgian\": 1, \"lower-alpha\": 1, \"upper-alpha\": 1 },\n \"margin\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-right\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-left\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-top\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-bottom\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"max-height\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"max-width\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"min-height\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"min-width\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"overflow\": { \"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1 },\n \"overflow-x\": { \"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1 },\n \"overflow-y\": { \"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1 },\n \"padding\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-top\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-right\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-bottom\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-left\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"page-break-after\": { \"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1 },\n \"page-break-before\": { \"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1 },\n \"position\": { \"absolute\": 1, \"relative\": 1, \"fixed\": 1, \"static\": 1 },\n \"right\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"table-layout\": { \"fixed\": 1, \"auto\": 1 },\n \"text-decoration\": { \"none\": 1, \"underline\": 1, \"line-through\": 1, \"blink\": 1 },\n \"text-align\": { \"left\": 1, \"right\": 1, \"center\": 1, \"justify\": 1 },\n \"text-transform\": { \"capitalize\": 1, \"uppercase\": 1, \"lowercase\": 1, \"none\": 1 },\n \"top\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"vertical-align\": { \"top\": 1, \"bottom\": 1 },\n \"visibility\": { \"hidden\": 1, \"visible\": 1 },\n \"white-space\": { \"nowrap\": 1, \"normal\": 1, \"pre\": 1, \"pre-line\": 1, \"pre-wrap\": 1 },\n \"width\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"word-spacing\": { \"normal\": 1 },\n \"filter\": { \"alpha(opacity=$0100)\": 1 },\n \"text-shadow\": { \"$02px 2px 2px #777\": 1 },\n \"text-overflow\": { \"ellipsis-word\": 1, \"clip\": 1, \"ellipsis\": 1 },\n \"-moz-border-radius\": 1,\n \"-moz-border-radius-topright\": 1,\n \"-moz-border-radius-bottomright\": 1,\n \"-moz-border-radius-topleft\": 1,\n \"-moz-border-radius-bottomleft\": 1,\n \"-webkit-border-radius\": 1,\n \"-webkit-border-top-right-radius\": 1,\n \"-webkit-border-top-left-radius\": 1,\n \"-webkit-border-bottom-right-radius\": 1,\n \"-webkit-border-bottom-left-radius\": 1,\n \"-moz-box-shadow\": 1,\n \"-webkit-box-shadow\": 1,\n \"transform\": { \"rotate($00deg)\": 1, \"skew($00deg)\": 1 },\n \"-moz-transform\": { \"rotate($00deg)\": 1, \"skew($00deg)\": 1 },\n \"-webkit-transform\": { \"rotate($00deg)\": 1, \"skew($00deg)\": 1 }\n};\nvar CssCompletions = function () {\n};\n(function () {\n this.completionsDefined = false;\n this.defineCompletions = function () {\n if (document) {\n var style = document.createElement('c').style;\n for (var i in style) {\n if (typeof style[i] !== 'string')\n continue;\n var name = i.replace(/[A-Z]/g, function (x) {\n return '-' + x.toLowerCase();\n });\n if (!propertyMap.hasOwnProperty(name))\n propertyMap[name] = 1;\n }\n }\n this.completionsDefined = true;\n };\n this.getCompletions = function (state, session, pos, prefix) {\n if (!this.completionsDefined) {\n this.defineCompletions();\n }\n if (state === 'ruleset' || session.$mode.$id == \"ace/mode/scss\") {\n var line = session.getLine(pos.row).substr(0, pos.column);\n var inParens = /\\([^)]*$/.test(line);\n if (inParens) {\n line = line.substr(line.lastIndexOf('(') + 1);\n }\n if (/:[^;]+$/.test(line)) {\n /([\\w\\-]+):[^:]*$/.test(line);\n return this.getPropertyValueCompletions(state, session, pos, prefix);\n }\n else {\n return this.getPropertyCompletions(state, session, pos, prefix, inParens);\n }\n }\n return [];\n };\n this.getPropertyCompletions = function (state, session, pos, prefix, skipSemicolon) {\n skipSemicolon = skipSemicolon || false;\n var properties = Object.keys(propertyMap);\n return properties.map(function (property) {\n return {\n caption: property,\n snippet: property + ': $0' + (skipSemicolon ? '' : ';'),\n meta: \"property\",\n score: 1000000\n };\n });\n };\n this.getPropertyValueCompletions = function (state, session, pos, prefix) {\n var line = session.getLine(pos.row).substr(0, pos.column);\n var property = (/([\\w\\-]+):[^:]*$/.exec(line) || {})[1];\n if (!property)\n return [];\n var values = [];\n if (property in propertyMap && typeof propertyMap[property] === \"object\") {\n values = Object.keys(propertyMap[property]);\n }\n return values.map(function (value) {\n return {\n caption: value,\n snippet: value,\n meta: \"property value\",\n score: 1000000\n };\n });\n };\n}).call(CssCompletions.prototype);\nexports.CssCompletions = CssCompletions;\n\n});\n\nace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar CstyleBehaviour = require(\"./cstyle\").CstyleBehaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar CssBehaviour = function () {\n this.inherit(CstyleBehaviour);\n this.add(\"colon\", \"insertion\", function (state, action, editor, session, text) {\n if (text === ':' && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.value.match(/\\s+/)) {\n token = iterator.stepBackward();\n }\n if (token && token.type === 'support.type') {\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === ':') {\n return {\n text: '',\n selection: [1, 1]\n };\n }\n if (/^(\\s+[^;]|\\s*$)/.test(line.substring(cursor.column))) {\n return {\n text: ':;',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"colon\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected === ':') {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.value.match(/\\s+/)) {\n token = iterator.stepBackward();\n }\n if (token && token.type === 'support.type') {\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar === ';') {\n range.end.column++;\n return range;\n }\n }\n }\n });\n this.add(\"semicolon\", \"insertion\", function (state, action, editor, session, text) {\n if (text === ';' && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === ';') {\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"!important\", \"insertion\", function (state, action, editor, session, text) {\n if (text === '!' && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (/^\\s*(;|}|$)/.test(line.substring(cursor.column))) {\n return {\n text: '!important',\n selection: [10, 10]\n };\n }\n }\n });\n};\noop.inherits(CssBehaviour, CstyleBehaviour);\nexports.CssBehaviour = CssBehaviour;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CssCompletions = require(\"./css_completions\").CssCompletions;\nvar CssBehaviour = require(\"./behaviour/css\").CssBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = CssHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CssBehaviour();\n this.$completer = new CssCompletions();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.foldingRules = \"cStyle\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n var match = line.match(/^.*\\{\\s*$/);\n if (match) {\n indent += tab;\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.getCompletions = function (state, session, pos, prefix) {\n return this.$completer.getCompletions(state, session, pos, prefix);\n };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/css_worker\", \"Worker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"annotate\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/css\";\n this.snippetFileId = \"ace/snippets/css\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/css\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar DocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n }, DocCommentHighlightRules.getTagRule(), {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ]\n };\n};\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\nDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/golang_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar GolangHighlightRules = function () {\n var keywords = (\"else|break|case|return|goto|if|const|select|\" +\n \"continue|struct|default|switch|for|range|\" +\n \"func|import|package|chan|defer|fallthrough|go|interface|map|range|\" +\n \"select|type|var\");\n var builtinTypes = (\"string|uint8|uint16|uint32|uint64|int8|int16|int32|int64|float32|\" +\n \"float64|complex64|complex128|byte|rune|uint|int|uintptr|bool|error\");\n var builtinFunctions = (\"new|close|cap|copy|panic|panicln|print|println|len|make|delete|real|recover|imag|append\");\n var builtinConstants = (\"nil|true|false|iota\");\n var keywordMapper = this.createKeywordMapper({\n \"keyword\": keywords,\n \"constant.language\": builtinConstants,\n \"support.function\": builtinFunctions,\n \"support.type\": builtinTypes\n }, \"\");\n var stringEscapeRe = \"\\\\\\\\(?:[0-7]{3}|x\\\\h{2}|u{4}|U\\\\h{6}|[abfnrtv'\\\"\\\\\\\\])\".replace(/\\\\h/g, \"[a-fA-F\\\\d]\");\n this.$rules = {\n \"start\": [\n {\n token: \"comment\",\n regex: \"\\\\/\\\\/.*$\"\n },\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n {\n token: \"comment.start\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"string\",\n regex: /\"(?:[^\"\\\\]|\\\\.)*?\"/\n }, {\n token: \"string\",\n regex: '`',\n next: \"bqstring\"\n }, {\n token: \"constant.numeric\",\n regex: \"'(?:[^\\\\'\\uD800-\\uDBFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|\" + stringEscapeRe.replace('\"', '') + \")'\"\n }, {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token: [\"keyword\", \"text\", \"entity.name.function\"],\n regex: \"(func)(\\\\s+)([a-zA-Z_$][a-zA-Z0-9_$]*)\\\\b\"\n }, {\n token: function (val) {\n if (val[val.length - 1] == \"(\") {\n return [{\n type: keywordMapper(val.slice(0, -1)) || \"support.function\",\n value: val.slice(0, -1)\n }, {\n type: \"paren.lparen\",\n value: val.slice(-1)\n }];\n }\n return keywordMapper(val) || \"identifier\";\n },\n regex: \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\\\\(?\"\n }, {\n token: \"keyword.operator\",\n regex: \"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=\"\n }, {\n token: \"punctuation.operator\",\n regex: \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}]\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"comment\": [\n {\n token: \"comment.end\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ],\n \"bqstring\": [\n {\n token: \"string\",\n regex: '`',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }\n ]\n };\n this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"start\")]);\n};\noop.inherits(GolangHighlightRules, TextHighlightRules);\nexports.GolangHighlightRules = GolangHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/golang\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/golang_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar GolangHighlightRules = require(\"./golang_highlight_rules\").GolangHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = GolangHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.foldingRules = new CStyleFoldMode();\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n var endState = tokenizedLine.state;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n }; //end getNextLineIndent\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.$id = \"ace/mode/golang\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/golang\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/jsdoc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JsDocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: [\"comment.doc.tag\", \"comment.doc.text\", \"lparen.doc\"],\n regex: \"(@(?:param|member|typedef|property|namespace|var|const|callback))(\\\\s*)({)\",\n push: [\n {\n token: \"lparen.doc\",\n regex: \"{\",\n push: [\n {\n include: \"doc-syntax\"\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }\n ]\n }, {\n token: [\"rparen.doc\", \"text.doc\", \"variable.parameter.doc\", \"lparen.doc\", \"variable.parameter.doc\", \"rparen.doc\"],\n regex: /(})(\\s*)(?:([\\w=:\\/\\.]+)|(?:(\\[)([\\w=:\\/\\.]+)(\\])))/,\n next: \"pop\"\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }, {\n include: \"doc-syntax\"\n }, {\n defaultToken: \"text.doc\"\n }\n ]\n }, {\n token: [\"comment.doc.tag\", \"text.doc\", \"lparen.doc\"],\n regex: \"(@(?:returns?|yields|type|this|suppress|public|protected|private|package|modifies|\"\n + \"implements|external|exception|throws|enum|define|extends))(\\\\s*)({)\",\n push: [\n {\n token: \"lparen.doc\",\n regex: \"{\",\n push: [\n {\n include: \"doc-syntax\"\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }\n ]\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }, {\n include: \"doc-syntax\"\n }, {\n defaultToken: \"text.doc\"\n }\n ]\n }, {\n token: [\"comment.doc.tag\", \"text.doc\", \"variable.parameter.doc\"],\n regex: \"(@(?:alias|memberof|instance|module|name|lends|namespace|external|this|template|\"\n + \"requires|param|implements|function|extends|typedef|mixes|constructor|var|\"\n + \"memberof\\\\!|event|listens|exports|class|constructs|interface|emits|fires|\"\n + \"throws|const|callback|borrows|augments))(\\\\s+)(\\\\w[\\\\w#\\.:\\/~\\\"\\\\-]*)?\"\n }, {\n token: [\"comment.doc.tag\", \"text.doc\", \"variable.parameter.doc\"],\n regex: \"(@method)(\\\\s+)(\\\\w[\\\\w\\.\\\\(\\\\)]*)\"\n }, {\n token: \"comment.doc.tag\",\n regex: \"@access\\\\s+(?:private|public|protected)\"\n }, {\n token: \"comment.doc.tag\",\n regex: \"@kind\\\\s+(?:class|constant|event|external|file|function|member|mixin|module|namespace|typedef)\"\n }, {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n },\n JsDocCommentHighlightRules.getTagRule(),\n {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ],\n \"doc-syntax\": [{\n token: \"operator.doc\",\n regex: /[|:]/\n }, {\n token: \"paren.doc\",\n regex: /[\\[\\]]/\n }]\n };\n this.normalizeRules();\n};\noop.inherits(JsDocCommentHighlightRules, TextHighlightRules);\nJsDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nJsDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nJsDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.JsDocCommentHighlightRules = JsDocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/jsdoc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./jsdoc_comment_highlight_rules\").JsDocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\nvar JavaScriptHighlightRules = function (options) {\n var keywordMapper = this.createKeywordMapper({\n \"variable.language\": \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|\" + // Constructors\n \"Namespace|QName|XML|XMLList|\" + // E4X\n \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\" +\n \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\" +\n \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\" + // Errors\n \"SyntaxError|TypeError|URIError|\" +\n \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n \"isNaN|parseFloat|parseInt|\" +\n \"JSON|Math|\" + // Other\n \"this|arguments|prototype|window|document\",\n \"keyword\": \"const|yield|import|get|set|async|await|\" +\n \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static|constructor\",\n \"storage.type\": \"const|let|var|function\",\n \"constant.language\": \"null|Infinity|NaN|undefined\",\n \"support.function\": \"alert\",\n \"constant.language.boolean\": \"true|false\"\n }, \"identifier\");\n var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n \"u[0-9a-fA-F]{4}|\" + // unicode\n \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n \"[0-2][0-7]{0,2}|\" + // oct\n \"3[0-7][0-7]?|\" + // oct\n \"[4-7][0-7]?|\" + //oct\n \".)\";\n this.$rules = {\n \"no_regex\": [\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n comments(\"no_regex\"),\n {\n token: \"string\",\n regex: \"'(?=.)\",\n next: \"qstring\"\n }, {\n token: \"string\",\n regex: '\"(?=.)',\n next: \"qqstring\"\n }, {\n token: \"constant.numeric\",\n regex: /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/\n }, {\n token: \"constant.numeric\",\n regex: /(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"support.function\",\n \"punctuation.operator\", \"entity.name.function\", \"text\", \"keyword.operator\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)\",\n next: \"function_arguments\"\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\",\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex: \"(function\\\\*?)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"entity.name.function\", \"text\", \"punctuation.operator\",\n \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex: \"(:)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: \"keyword\",\n regex: \"from(?=\\\\s*('|\\\"))\"\n }, {\n token: \"keyword\",\n regex: \"(?:\" + kwBeforeRe + \")\\\\b\",\n next: \"start\"\n }, {\n token: \"support.constant\",\n regex: /that\\b/\n }, {\n token: [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n regex: /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n }, {\n token: keywordMapper,\n regex: identifierRe\n }, {\n token: \"punctuation.operator\",\n regex: /[.](?![.])/,\n next: \"property\"\n }, {\n token: \"storage.type\",\n regex: /=>/,\n next: \"start\"\n }, {\n token: \"keyword.operator\",\n regex: /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n next: \"start\"\n }, {\n token: \"punctuation.operator\",\n regex: /[?:,;.]/,\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: /[\\[({]/,\n next: \"start\"\n }, {\n token: \"paren.rparen\",\n regex: /[\\])}]/\n }, {\n token: \"comment\",\n regex: /^#!.*$/\n }\n ],\n property: [{\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\",\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: \"punctuation.operator\",\n regex: /[.](?![.])/\n }, {\n token: \"support.function\",\n regex: /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|lter|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward|rEach)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n }, {\n token: \"support.function.dom\",\n regex: /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n }, {\n token: \"support.constant\",\n regex: /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n }, {\n token: \"identifier\",\n regex: identifierRe\n }, {\n regex: \"\",\n token: \"empty\",\n next: \"no_regex\"\n }\n ],\n \"start\": [\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n comments(\"start\"),\n {\n token: \"string.regexp\",\n regex: \"\\\\/\",\n next: \"regex\"\n }, {\n token: \"text\",\n regex: \"\\\\s+|^$\",\n next: \"start\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"regex\": [\n {\n token: \"regexp.keyword.operator\",\n regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n }, {\n token: \"string.regexp\",\n regex: \"/[sxngimy]*\",\n next: \"no_regex\"\n }, {\n token: \"invalid\",\n regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n }, {\n token: \"constant.language.escape\",\n regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n }, {\n token: \"constant.language.delimiter\",\n regex: /\\|/\n }, {\n token: \"constant.language.escape\",\n regex: /\\[\\^?/,\n next: \"regex_character_class\"\n }, {\n token: \"empty\",\n regex: \"$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string.regexp\"\n }\n ],\n \"regex_character_class\": [\n {\n token: \"regexp.charclass.keyword.operator\",\n regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n }, {\n token: \"constant.language.escape\",\n regex: \"]\",\n next: \"regex\"\n }, {\n token: \"constant.language.escape\",\n regex: \"-\"\n }, {\n token: \"empty\",\n regex: \"$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string.regexp.charachterclass\"\n }\n ],\n \"default_parameter\": [\n {\n token: \"string\",\n regex: \"'(?=.)\",\n push: [\n {\n token: \"string\",\n regex: \"'|$\",\n next: \"pop\"\n }, {\n include: \"qstring\"\n }\n ]\n }, {\n token: \"string\",\n regex: '\"(?=.)',\n push: [\n {\n token: \"string\",\n regex: '\"|$',\n next: \"pop\"\n }, {\n include: \"qqstring\"\n }\n ]\n }, {\n token: \"constant.language\",\n regex: \"null|Infinity|NaN|undefined\"\n }, {\n token: \"constant.numeric\",\n regex: /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/\n }, {\n token: \"constant.numeric\",\n regex: /(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/\n }, {\n token: \"punctuation.operator\",\n regex: \",\",\n next: \"function_arguments\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n token: \"punctuation.operator\",\n regex: \"$\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"function_arguments\": [\n comments(\"function_arguments\"),\n {\n token: \"variable.parameter\",\n regex: identifierRe\n }, {\n token: \"punctuation.operator\",\n regex: \",\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n token: \"punctuation.operator\",\n regex: \"$\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"qqstring\": [\n {\n token: \"constant.language.escape\",\n regex: escapedRe\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n consumeLineEnd: true\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"no_regex\"\n }, {\n defaultToken: \"string\"\n }\n ],\n \"qstring\": [\n {\n token: \"constant.language.escape\",\n regex: escapedRe\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n consumeLineEnd: true\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string\"\n }\n ]\n };\n if (!options || !options.noES6) {\n this.$rules.no_regex.unshift({\n regex: \"[{}]\", onMatch: function (val, state, stack) {\n this.next = val == \"{\" ? this.nextState : \"\";\n if (val == \"{\" && stack.length) {\n stack.unshift(\"start\", state);\n }\n else if (val == \"}\" && stack.length) {\n stack.shift();\n this.next = stack.shift();\n if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n return \"paren.quasi.end\";\n }\n return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n },\n nextState: \"start\"\n }, {\n token: \"string.quasi.start\",\n regex: /`/,\n push: [{\n token: \"constant.language.escape\",\n regex: escapedRe\n }, {\n token: \"paren.quasi.start\",\n regex: /\\${/,\n push: \"start\"\n }, {\n token: \"string.quasi.end\",\n regex: /`/,\n next: \"pop\"\n }, {\n defaultToken: \"string.quasi\"\n }]\n }, {\n token: [\"variable.parameter\", \"text\"],\n regex: \"(\" + identifierRe + \")(\\\\s*)(?=\\\\=>)\"\n }, {\n token: \"paren.lparen\",\n regex: \"(\\\\()(?=.+\\\\s*=>)\",\n next: \"function_arguments\"\n }, {\n token: \"variable.language\",\n regex: \"(?:(?:(?:Weak)?(?:Set|Map))|Promise)\\\\b\"\n });\n this.$rules[\"function_arguments\"].unshift({\n token: \"keyword.operator\",\n regex: \"=\",\n next: \"default_parameter\"\n }, {\n token: \"keyword.operator\",\n regex: \"\\\\.{3}\"\n });\n this.$rules[\"property\"].unshift({\n token: \"support.function\",\n regex: \"(findIndex|repeat|startsWith|endsWith|includes|isSafeInteger|trunc|cbrt|log2|log10|sign|then|catch|\"\n + \"finally|resolve|reject|race|any|all|allSettled|keys|entries|isInteger)\\\\b(?=\\\\()\"\n }, {\n token: \"constant.language\",\n regex: \"(?:MAX_SAFE_INTEGER|MIN_SAFE_INTEGER|EPSILON)\\\\b\"\n });\n if (!options || options.jsx != false)\n JSX.call(this);\n }\n this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"no_regex\")]);\n this.normalizeRules();\n};\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\nfunction JSX() {\n var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n var jsxTag = {\n onMatch: function (val, state, stack) {\n var offset = val.charAt(1) == \"/\" ? 2 : 1;\n if (offset == 1) {\n if (state != this.nextState)\n stack.unshift(this.next, this.nextState, 0);\n else\n stack.unshift(this.next);\n stack[2]++;\n }\n else if (offset == 2) {\n if (state == this.nextState) {\n stack[1]--;\n if (!stack[1] || stack[1] < 0) {\n stack.shift();\n stack.shift();\n }\n }\n }\n return [{\n type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n value: val.slice(0, offset)\n }, {\n type: \"meta.tag.tag-name.xml\",\n value: val.substr(offset)\n }];\n },\n regex: \"\",\n onMatch: function (value, currentState, stack) {\n if (currentState == stack[0])\n stack.shift();\n if (value.length == 2) {\n if (stack[0] == this.nextState)\n stack[1]--;\n if (!stack[1] || stack[1] < 0) {\n stack.splice(0, 2);\n }\n }\n this.next = stack[0] || \"start\";\n return [{ type: this.token, value: value }];\n },\n nextState: \"jsx\"\n },\n jsxJsRule,\n comments(\"jsxAttributes\"),\n {\n token: \"entity.other.attribute-name.xml\",\n regex: tagRegex\n }, {\n token: \"keyword.operator.attribute-equals.xml\",\n regex: \"=\"\n }, {\n token: \"text.tag-whitespace.xml\",\n regex: \"\\\\s+\"\n }, {\n token: \"string.attribute-value.xml\",\n regex: \"'\",\n stateName: \"jsx_attr_q\",\n push: [\n { token: \"string.attribute-value.xml\", regex: \"'\", next: \"pop\" },\n { include: \"reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }, {\n token: \"string.attribute-value.xml\",\n regex: '\"',\n stateName: \"jsx_attr_qq\",\n push: [\n { token: \"string.attribute-value.xml\", regex: '\"', next: \"pop\" },\n { include: \"reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n },\n jsxTag\n ];\n this.$rules.reference = [{\n token: \"constant.language.escape.reference.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }];\n}\nfunction comments(next) {\n return [\n {\n token: \"comment\",\n regex: /\\/\\*/,\n next: [\n DocCommentHighlightRules.getTagRule(),\n { token: \"comment\", regex: \"\\\\*\\\\/\", next: next || \"pop\" },\n { defaultToken: \"comment\", caseInsensitive: true }\n ]\n }, {\n token: \"comment\",\n regex: \"\\\\/\\\\/\",\n next: [\n DocCommentHighlightRules.getTagRule(),\n { token: \"comment\", regex: \"$|^\", next: next || \"pop\" },\n { defaultToken: \"comment\", caseInsensitive: true }\n ]\n }\n ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = JavaScriptHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CstyleBehaviour();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.$quotes = { '\"': '\"', \"'\": \"'\", \"`\": \"`\" };\n this.$pairQuotesAfter = {\n \"`\": /\\w/\n };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n var endState = tokenizedLine.state;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\" || state == \"no_regex\") {\n var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n else if (state == \"doc-start\") {\n if (endState == \"start\" || endState == \"no_regex\") {\n return \"\";\n }\n var match = line.match(/^\\s*(\\/?)\\*/);\n if (match) {\n if (match[1]) {\n indent += \" \";\n }\n indent += \"* \";\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"annotate\", function (results) {\n session.setAnnotations(results.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/javascript\";\n this.snippetFileId = \"ace/snippets/javascript\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/javascript\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/json_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JsonHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"variable\",\n regex: '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]\\\\s*(?=:)'\n }, {\n token: \"string\",\n regex: '\"',\n next: \"string\"\n }, {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token: \"constant.language.boolean\",\n regex: \"(?:true|false)\\\\b\"\n }, {\n token: \"text\",\n regex: \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token: \"comment\",\n regex: \"\\\\/\\\\/.*$\"\n }, {\n token: \"comment.start\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}]\"\n }, {\n token: \"punctuation.operator\",\n regex: /[,]/\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"string\": [\n {\n token: \"constant.language.escape\",\n regex: /\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[\"\\\\\\/bfnrt])/\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }\n ],\n \"comment\": [\n {\n token: \"comment.end\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ]\n };\n};\noop.inherits(JsonHighlightRules, TextHighlightRules);\nexports.JsonHighlightRules = JsonHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/json\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/json_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\",\"ace/worker/worker_client\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar HighlightRules = require(\"./json_highlight_rules\").JsonHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar Mode = function () {\n this.HighlightRules = HighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = this.$defaultBehaviour;\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/json_worker\", \"JsonWorker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"annotate\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/json\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/json\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar DocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n }, DocCommentHighlightRules.getTagRule(), {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ]\n };\n};\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\nDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/jsx_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JsxHighlightRules = function () {\n var keywords = lang.arrayToMap((\"break|do|instanceof|typeof|case|else|new|var|catch|finally|return|void|continue|for|switch|default|while|function|this|\" +\n \"if|throw|\" +\n \"delete|in|try|\" +\n \"class|extends|super|import|from|into|implements|interface|static|mixin|override|abstract|final|\" +\n \"number|int|string|boolean|variant|\" +\n \"log|assert\").split(\"|\"));\n var buildinConstants = lang.arrayToMap((\"null|true|false|NaN|Infinity|__FILE__|__LINE__|undefined\").split(\"|\"));\n var reserved = lang.arrayToMap((\"debugger|with|\" +\n \"const|export|\" +\n \"let|private|public|yield|protected|\" +\n \"extern|native|as|operator|__fake__|__readonly__\").split(\"|\"));\n var identifierRe = \"[a-zA-Z_][a-zA-Z0-9_]*\\\\b\";\n this.$rules = {\n \"start\": [\n {\n token: \"comment\",\n regex: \"\\\\/\\\\/.*$\"\n },\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n {\n token: \"comment\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"string.regexp\",\n regex: \"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"\n }, {\n token: \"string\",\n regex: '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n }, {\n token: \"string\",\n regex: \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token: \"constant.language.boolean\",\n regex: \"(?:true|false)\\\\b\"\n }, {\n token: [\n \"storage.type\",\n \"text\",\n \"entity.name.function\"\n ],\n regex: \"(function)(\\\\s+)(\" + identifierRe + \")\"\n }, {\n token: function (value) {\n if (value == \"this\")\n return \"variable.language\";\n else if (value == \"function\")\n return \"storage.type\";\n else if (keywords.hasOwnProperty(value) || reserved.hasOwnProperty(value))\n return \"keyword\";\n else if (buildinConstants.hasOwnProperty(value))\n return \"constant.language\";\n else if (/^_?[A-Z][a-zA-Z0-9_]*$/.test(value))\n return \"language.support.class\";\n else\n return \"identifier\";\n },\n regex: identifierRe\n }, {\n token: \"keyword.operator\",\n regex: \"!|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"\n }, {\n token: \"punctuation.operator\",\n regex: \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({<]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}>]\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"comment\": [\n {\n token: \"comment\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ]\n };\n this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"start\")]);\n};\noop.inherits(JsxHighlightRules, TextHighlightRules);\nexports.JsxHighlightRules = JsxHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/jsx\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/jsx_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JsxHighlightRules = require(\"./jsx_highlight_rules\").JsxHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nfunction Mode() {\n this.HighlightRules = JsxHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = this.$defaultBehaviour;\n this.foldingRules = new CStyleFoldMode();\n}\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.$id = \"ace/mode/jsx\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/jsx\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/python_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){/*\n * TODO: python delimiters\n */\n\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar PythonHighlightRules = function () {\n var keywords = (\"and|as|assert|break|class|continue|def|del|elif|else|except|exec|\" +\n \"finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|\" +\n \"raise|return|try|while|with|yield|async|await|nonlocal\");\n var builtinConstants = (\"True|False|None|NotImplemented|Ellipsis|__debug__\");\n var builtinFunctions = (\"abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|\" +\n \"eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|\" +\n \"binfile|bin|iter|property|tuple|bool|filter|len|range|type|bytearray|\" +\n \"float|list|raw_input|unichr|callable|format|locals|reduce|unicode|\" +\n \"chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|\" +\n \"cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|\" +\n \"__import__|complex|hash|min|apply|delattr|help|next|setattr|set|\" +\n \"buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern|\" +\n \"ascii|breakpoint|bytes\");\n var keywordMapper = this.createKeywordMapper({\n \"invalid.deprecated\": \"debugger\",\n \"support.function\": builtinFunctions,\n \"variable.language\": \"self|cls\",\n \"constant.language\": builtinConstants,\n \"keyword\": keywords\n }, \"identifier\");\n var strPre = \"[uU]?\";\n var strRawPre = \"[rR]\";\n var strFormatPre = \"[fF]\";\n var strRawFormatPre = \"(?:[rR][fF]|[fF][rR])\";\n var decimalInteger = \"(?:(?:[1-9]\\\\d*)|(?:0))\";\n var octInteger = \"(?:0[oO]?[0-7]+)\";\n var hexInteger = \"(?:0[xX][\\\\dA-Fa-f]+)\";\n var binInteger = \"(?:0[bB][01]+)\";\n var integer = \"(?:\" + decimalInteger + \"|\" + octInteger + \"|\" + hexInteger + \"|\" + binInteger + \")\";\n var exponent = \"(?:[eE][+-]?\\\\d+)\";\n var fraction = \"(?:\\\\.\\\\d+)\";\n var intPart = \"(?:\\\\d+)\";\n var pointFloat = \"(?:(?:\" + intPart + \"?\" + fraction + \")|(?:\" + intPart + \"\\\\.))\";\n var exponentFloat = \"(?:(?:\" + pointFloat + \"|\" + intPart + \")\" + exponent + \")\";\n var floatNumber = \"(?:\" + exponentFloat + \"|\" + pointFloat + \")\";\n var stringEscape = \"\\\\\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\\\\\abfnrtv'\\\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})\";\n this.$rules = {\n \"start\": [{\n token: \"comment\",\n regex: \"#.*$\"\n }, {\n token: \"string\",\n regex: strPre + '\"{3}',\n next: \"qqstring3\"\n }, {\n token: \"string\",\n regex: strPre + '\"(?=.)',\n next: \"qqstring\"\n }, {\n token: \"string\",\n regex: strPre + \"'{3}\",\n next: \"qstring3\"\n }, {\n token: \"string\",\n regex: strPre + \"'(?=.)\",\n next: \"qstring\"\n }, {\n token: \"string\",\n regex: strRawPre + '\"{3}',\n next: \"rawqqstring3\"\n }, {\n token: \"string\",\n regex: strRawPre + '\"(?=.)',\n next: \"rawqqstring\"\n }, {\n token: \"string\",\n regex: strRawPre + \"'{3}\",\n next: \"rawqstring3\"\n }, {\n token: \"string\",\n regex: strRawPre + \"'(?=.)\",\n next: \"rawqstring\"\n }, {\n token: \"string\",\n regex: strFormatPre + '\"{3}',\n next: \"fqqstring3\"\n }, {\n token: \"string\",\n regex: strFormatPre + '\"(?=.)',\n next: \"fqqstring\"\n }, {\n token: \"string\",\n regex: strFormatPre + \"'{3}\",\n next: \"fqstring3\"\n }, {\n token: \"string\",\n regex: strFormatPre + \"'(?=.)\",\n next: \"fqstring\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + '\"{3}',\n next: \"rfqqstring3\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + '\"(?=.)',\n next: \"rfqqstring\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + \"'{3}\",\n next: \"rfqstring3\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + \"'(?=.)\",\n next: \"rfqstring\"\n }, {\n token: \"keyword.operator\",\n regex: \"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|%|@|<<|>>|&|\\\\||\\\\^|~|<|>|<=|=>|==|!=|<>|=\"\n }, {\n token: \"punctuation\",\n regex: \",|:|;|\\\\->|\\\\+=|\\\\-=|\\\\*=|\\\\/=|\\\\/\\\\/=|%=|@=|&=|\\\\|=|^=|>>=|<<=|\\\\*\\\\*=\"\n }, {\n token: \"paren.lparen\",\n regex: \"[\\\\[\\\\(\\\\{]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\]\\\\)\\\\}]\"\n }, {\n token: [\"keyword\", \"text\", \"entity.name.function\"],\n regex: \"(def|class)(\\\\s+)([\\\\u00BF-\\\\u1FFF\\\\u2C00-\\\\uD7FF\\\\w]+)\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n include: \"constants\"\n }],\n \"qqstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"qstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"qqstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"qqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"qstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"qstring\"\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqqstring3\": [{\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqstring3\": [{\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqqstring\": [{\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"rawqqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqstring\": [{\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"rawqstring\"\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqqstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqqstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"fqqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqqstring3\": [{\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqstring3\": [{\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqqstring\": [{\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"rfqqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqstring\": [{\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqstringParRules\": [{\n token: \"paren.lparen\",\n regex: \"[\\\\[\\\\(]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\]\\\\)]\"\n }, {\n token: \"string\",\n regex: \"\\\\s+\"\n }, {\n token: \"string\",\n regex: \"'[^']*'\"\n }, {\n token: \"string\",\n regex: '\"[^\"]*\"'\n }, {\n token: \"function.support\",\n regex: \"(!s|!r|!a)\"\n }, {\n include: \"constants\"\n }, {\n token: 'paren.rparen',\n regex: \"}\",\n next: 'pop'\n }, {\n token: 'paren.lparen',\n regex: \"{\",\n push: \"fqstringParRules\"\n }],\n \"constants\": [{\n token: \"constant.numeric\",\n regex: \"(?:\" + floatNumber + \"|\\\\d+)[jJ]\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: floatNumber\n }, {\n token: \"constant.numeric\",\n regex: integer + \"[lL]\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: integer + \"\\\\b\"\n }, {\n token: [\"punctuation\", \"function.support\"],\n regex: \"(\\\\.)([a-zA-Z_]+)\\\\b\"\n }, {\n token: keywordMapper,\n regex: \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n }]\n };\n this.normalizeRules();\n};\noop.inherits(PythonHighlightRules, TextHighlightRules);\nexports.PythonHighlightRules = PythonHighlightRules;\n\n});\n\nace.define(\"ace/mode/folding/pythonic\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (markers) {\n this.foldingStartMarker = new RegExp(\"([\\\\[{])(?:\\\\s*)$|(\" + markers + \")(?:\\\\s*)(?:#.*)?$\");\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n var line = session.getLine(row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, match.index);\n if (match[2])\n return this.indentationBlock(session, row, match.index + match[2].length);\n return this.indentationBlock(session, row);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/python\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/python_highlight_rules\",\"ace/mode/folding/pythonic\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar PythonHighlightRules = require(\"./python_highlight_rules\").PythonHighlightRules;\nvar PythonFoldMode = require(\"./folding/pythonic\").FoldMode;\nvar Range = require(\"../range\").Range;\nvar Mode = function () {\n this.HighlightRules = PythonHighlightRules;\n this.foldingRules = new PythonFoldMode(\"\\\\:\");\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"#\";\n this.$pairQuotesAfter = {\n \"'\": /[ruf]/i,\n '\"': /[ruf]/i\n };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[:]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n };\n var outdents = {\n \"pass\": 1,\n \"return\": 1,\n \"raise\": 1,\n \"break\": 1,\n \"continue\": 1\n };\n this.checkOutdent = function (state, line, input) {\n if (input !== \"\\r\\n\" && input !== \"\\r\" && input !== \"\\n\")\n return false;\n var tokens = this.getTokenizer().getLineTokens(line.trim(), state).tokens;\n if (!tokens)\n return false;\n do {\n var last = tokens.pop();\n } while (last && (last.type == \"comment\" || (last.type == \"text\" && last.value.match(/^\\s+$/))));\n if (!last)\n return false;\n return (last.type == \"keyword\" && outdents[last.value]);\n };\n this.autoOutdent = function (state, doc, row) {\n row += 1;\n var indent = this.$getIndent(doc.getLine(row));\n var tab = doc.getTabString();\n if (indent.slice(-tab.length) == tab)\n doc.remove(new Range(row, indent.length - tab.length, row, indent.length));\n };\n this.$id = \"ace/mode/python\";\n this.snippetFileId = \"ace/snippets/python\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/python\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar XmlHighlightRules = function (normalize) {\n var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n this.$rules = {\n start: [\n { token: \"string.cdata.xml\", regex: \"<\\\\!\\\\[CDATA\\\\[\", next: \"cdata\" },\n {\n token: [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n regex: \"(<\\\\?)(\" + tagRegex + \")\", next: \"processing_instruction\"\n },\n { token: \"comment.start.xml\", regex: \"<\\\\!--\", next: \"comment\" },\n {\n token: [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n regex: \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next: \"doctype\", caseInsensitive: true\n },\n { include: \"tag\" },\n { token: \"text.end-tag-open.xml\", regex: \"\",\n next: \"start\"\n }],\n doctype: [\n { include: \"whitespace\" },\n { include: \"string\" },\n { token: \"xml-pe.doctype.xml\", regex: \">\", next: \"start\" },\n { token: \"xml-pe.xml\", regex: \"[-_a-zA-Z0-9:]+\" },\n { token: \"punctuation.int-subset\", regex: \"\\\\[\", push: \"int_subset\" }\n ],\n int_subset: [{\n token: \"text.xml\",\n regex: \"\\\\s+\"\n }, {\n token: \"punctuation.int-subset.xml\",\n regex: \"]\",\n next: \"pop\"\n }, {\n token: [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n regex: \"(<\\\\!)(\" + tagRegex + \")\",\n push: [{\n token: \"text\",\n regex: \"\\\\s+\"\n },\n {\n token: \"punctuation.markup-decl.xml\",\n regex: \">\",\n next: \"pop\"\n },\n { include: \"string\" }]\n }],\n cdata: [\n { token: \"string.cdata.xml\", regex: \"\\\\]\\\\]>\", next: \"start\" },\n { token: \"text.xml\", regex: \"\\\\s+\" },\n { token: \"text.xml\", regex: \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\" }\n ],\n comment: [\n { token: \"comment.end.xml\", regex: \"-->\", next: \"start\" },\n { defaultToken: \"comment.xml\" }\n ],\n reference: [{\n token: \"constant.language.escape.reference.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }],\n attr_reference: [{\n token: \"constant.language.escape.reference.attribute-value.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }],\n tag: [{\n token: [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n regex: \"(?:(<)|(\", next: \"start\" }\n ]\n }],\n tag_whitespace: [\n { token: \"text.tag-whitespace.xml\", regex: \"\\\\s+\" }\n ],\n whitespace: [\n { token: \"text.whitespace.xml\", regex: \"\\\\s+\" }\n ],\n string: [{\n token: \"string.xml\",\n regex: \"'\",\n push: [\n { token: \"string.xml\", regex: \"'\", next: \"pop\" },\n { defaultToken: \"string.xml\" }\n ]\n }, {\n token: \"string.xml\",\n regex: '\"',\n push: [\n { token: \"string.xml\", regex: '\"', next: \"pop\" },\n { defaultToken: \"string.xml\" }\n ]\n }],\n attributes: [{\n token: \"entity.other.attribute-name.xml\",\n regex: tagRegex\n }, {\n token: \"keyword.operator.attribute-equals.xml\",\n regex: \"=\"\n }, {\n include: \"tag_whitespace\"\n }, {\n include: \"attribute_value\"\n }],\n attribute_value: [{\n token: \"string.attribute-value.xml\",\n regex: \"'\",\n push: [\n { token: \"string.attribute-value.xml\", regex: \"'\", next: \"pop\" },\n { include: \"attr_reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }, {\n token: \"string.attribute-value.xml\",\n regex: '\"',\n push: [\n { token: \"string.attribute-value.xml\", regex: '\"', next: \"pop\" },\n { include: \"attr_reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }]\n };\n if (this.constructor === XmlHighlightRules)\n this.normalizeRules();\n};\n(function () {\n this.embedTagRules = function (HighlightRules, prefix, tag) {\n this.$rules.tag.unshift({\n token: [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n regex: \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n next: [\n { include: \"attributes\" },\n { token: \"meta.tag.punctuation.tag-close.xml\", regex: \"/?>\", next: prefix + \"start\" }\n ]\n });\n this.$rules[tag + \"-end\"] = [\n { include: \"attributes\" },\n { token: \"meta.tag.punctuation.tag-close.xml\", regex: \"/?>\", next: \"start\",\n onMatch: function (value, currentState, stack) {\n stack.splice(0);\n return this.token;\n } }\n ];\n this.embedRules(HighlightRules, prefix, [{\n token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n regex: \"(|$))\",\n next: tag + \"-end\"\n }, {\n token: \"string.cdata.xml\",\n regex: \"<\\\\!\\\\[CDATA\\\\[\"\n }, {\n token: \"string.cdata.xml\",\n regex: \"\\\\]\\\\]>\"\n }]);\n };\n}).call(TextHighlightRules.prototype);\noop.inherits(XmlHighlightRules, TextHighlightRules);\nexports.XmlHighlightRules = XmlHighlightRules;\n\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\nfunction is(token, type) {\n return token && token.type.lastIndexOf(type + \".xml\") > -1;\n}\nvar XmlBehaviour = function () {\n this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '\"' || text == \"'\") {\n var quote = text;\n var selected = session.doc.getTextRange(editor.getSelectionRange());\n if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n return {\n text: quote + selected + quote,\n selection: false\n };\n }\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n return {\n text: \"\",\n selection: [1, 1]\n };\n }\n if (!token)\n token = iterator.stepBackward();\n if (!token)\n return;\n while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n token = iterator.stepBackward();\n }\n var rightSpace = !rightChar || rightChar.match(/\\s/);\n if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n return {\n text: quote + quote,\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"string_dquotes\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '>') {\n var position = editor.getSelectionRange().start;\n var iterator = new TokenIterator(session, position.row, position.column);\n var token = iterator.getCurrentToken() || iterator.stepBackward();\n if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n return;\n if (is(token, \"reference.attribute-value\"))\n return;\n if (is(token, \"attribute-value\")) {\n var tokenEndColumn = iterator.getCurrentTokenColumn() + token.value.length;\n if (position.column < tokenEndColumn)\n return;\n if (position.column == tokenEndColumn) {\n var nextToken = iterator.stepForward();\n if (nextToken && is(nextToken, \"attribute-value\"))\n return;\n iterator.stepBackward();\n }\n }\n if (/^\\s*>/.test(session.getLine(position.row).slice(position.column)))\n return;\n while (!is(token, \"tag-name\")) {\n token = iterator.stepBackward();\n if (token.value == \"<\") {\n token = iterator.stepForward();\n break;\n }\n }\n var tokenRow = iterator.getCurrentTokenRow();\n var tokenColumn = iterator.getCurrentTokenColumn();\n if (is(iterator.stepBackward(), \"end-tag-open\"))\n return;\n var element = token.value;\n if (tokenRow == position.row)\n element = element.substring(0, position.column - tokenColumn);\n if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n return;\n return {\n text: \">\" + \"\",\n selection: [1, 1]\n };\n }\n });\n this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n if (text == \"\\n\") {\n var cursor = editor.getCursorPosition();\n var line = session.getLine(cursor.row);\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.type.indexOf(\"tag-close\") !== -1) {\n if (token.value == \"/>\")\n return;\n while (token && token.type.indexOf(\"tag-name\") === -1) {\n token = iterator.stepBackward();\n }\n if (!token) {\n return;\n }\n var tag = token.value;\n var row = iterator.getCurrentTokenRow();\n token = iterator.stepBackward();\n if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n return;\n }\n if (this.voidElements && !this.voidElements[tag]) {\n var nextToken = session.getTokenAt(cursor.row, cursor.column + 1);\n var line = session.getLine(row);\n var nextIndent = this.$getIndent(line);\n var indent = nextIndent + session.getTabString();\n if (nextToken && nextToken.value === \" -1;\n}\n(function () {\n this.getFoldWidget = function (session, foldStyle, row) {\n var tag = this._getFirstTagInLine(session, row);\n if (!tag)\n return this.getCommentFoldWidget(session, row);\n if (tag.closing || (!tag.tagName && tag.selfClosing))\n return foldStyle === \"markbeginend\" ? \"end\" : \"\";\n if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n return \"\";\n if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n return \"\";\n return \"start\";\n };\n this.getCommentFoldWidget = function (session, row) {\n if (/comment/.test(session.getState(row)) && /';\n break;\n }\n }\n return tag;\n }\n else if (is(token, \"tag-close\")) {\n tag.selfClosing = token.value == '/>';\n return tag;\n }\n tag.start.column += token.value.length;\n }\n return null;\n };\n this._findEndTagInLine = function (session, row, tagName, startColumn) {\n var tokens = session.getTokens(row);\n var column = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n column += token.value.length;\n if (column < startColumn)\n continue;\n if (is(token, \"end-tag-open\")) {\n token = tokens[i + 1];\n if (token && token.value == tagName)\n return true;\n }\n }\n return false;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n var tags = session.getMatchingTags({ row: row, column: 0 });\n if (tags) {\n return new Range(tags.openTag.end.row, tags.openTag.end.column, tags.closeTag.start.row, tags.closeTag.start.column);\n }\n else {\n return this.getCommentFoldWidget(session, row)\n && session.getCommentFoldRange(row, session.getLine(row).length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/xml_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/xml\",\"ace/worker/worker_client\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextMode = require(\"./text\").Mode;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\nvar XmlBehaviour = require(\"./behaviour/xml\").XmlBehaviour;\nvar XmlFoldMode = require(\"./folding/xml\").FoldMode;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar Mode = function () {\n this.HighlightRules = XmlHighlightRules;\n this.$behaviour = new XmlBehaviour();\n this.foldingRules = new XmlFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.voidElements = lang.arrayToMap([]);\n this.blockComment = { start: \"\" };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/xml_worker\", \"Worker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"error\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/xml\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/xml\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/theme/github-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \"/* CSS style content from github's default pygments highlighter template.\\n Cursor and selection styles from textmate.css. */\\n.ace-github .ace_gutter {\\n background: #e8e8e8;\\n color: #AAA;\\n}\\n\\n.ace-github {\\n background: #fff;\\n color: #000;\\n}\\n\\n.ace-github .ace_keyword {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_string {\\n color: #D14;\\n}\\n\\n.ace-github .ace_variable.ace_class {\\n color: teal;\\n}\\n\\n.ace-github .ace_constant.ace_numeric {\\n color: #099;\\n}\\n\\n.ace-github .ace_constant.ace_buildin {\\n color: #0086B3;\\n}\\n\\n.ace-github .ace_support.ace_function {\\n color: #0086B3;\\n}\\n\\n.ace-github .ace_comment {\\n color: #998;\\n font-style: italic;\\n}\\n\\n.ace-github .ace_variable.ace_language {\\n color: #0086B3;\\n}\\n\\n.ace-github .ace_paren {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_boolean {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_string.ace_regexp {\\n color: #009926;\\n font-weight: normal;\\n}\\n\\n.ace-github .ace_variable.ace_instance {\\n color: teal;\\n}\\n\\n.ace-github .ace_constant.ace_language {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_cursor {\\n color: black;\\n}\\n\\n.ace-github.ace_focus .ace_marker-layer .ace_active-line {\\n background: rgb(255, 255, 204);\\n}\\n.ace-github .ace_marker-layer .ace_active-line {\\n background: rgb(245, 245, 245);\\n}\\n\\n.ace-github .ace_marker-layer .ace_selection {\\n background: rgb(181, 213, 255);\\n}\\n\\n.ace-github.ace_multiselect .ace_selection.ace_start {\\n box-shadow: 0 0 3px 0px white;\\n}\\n/* bold keywords cause cursor issues for some fonts */\\n/* this disables bold style for editor and keeps for static highlighter */\\n.ace-github.ace_nobold .ace_line > span {\\n font-weight: normal !important;\\n}\\n\\n.ace-github .ace_marker-layer .ace_step {\\n background: rgb(252, 255, 0);\\n}\\n\\n.ace-github .ace_marker-layer .ace_stack {\\n background: rgb(164, 229, 101);\\n}\\n\\n.ace-github .ace_marker-layer .ace_bracket {\\n margin: -1px 0 0 -1px;\\n border: 1px solid rgb(192, 192, 192);\\n}\\n\\n.ace-github .ace_gutter-active-line {\\n background-color : rgba(0, 0, 0, 0.07);\\n}\\n\\n.ace-github .ace_marker-layer .ace_selected-word {\\n background: rgb(250, 250, 255);\\n border: 1px solid rgb(200, 200, 250);\\n}\\n\\n.ace-github .ace_invisible {\\n color: #BFBFBF\\n}\\n\\n.ace-github .ace_print-margin {\\n width: 1px;\\n background: #e8e8e8;\\n}\\n\\n.ace-github .ace_indent-guide {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\n}\\n\\n.ace-github .ace_indent-guide-active {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC\\\") right repeat-y;\\n}\\n\";\n\n});\n\nace.define(\"ace/theme/github\",[\"require\",\"exports\",\"module\",\"ace/theme/github-css\",\"ace/lib/dom\"], function(require, exports, module){exports.isDark = false;\nexports.cssClass = \"ace-github\";\nexports.cssText = require(\"./github-css\");\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass, false);\n\n}); (function() {\n ace.require([\"ace/theme/github\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","module.exports = require(\"react-dom\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"\";","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"prop-types\");","import { createContext } from 'react';\n\nconst AccordionContext = createContext();\n\nexport default AccordionContext;\n","import { createContext } from 'react';\n\nconst AccordionItemContext = createContext();\n\nexport default AccordionItemContext;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Icon({\n className,\n family,\n type,\n weight,\n ...rest\n}) {\n function getCSSClasses() {\n const fontFamily = family || 'fa';\n const fontWeight = fontFamily === 'fa' ? `fa-${weight || 'regular'}` : '';\n\n return [\n 'tyk-icon',\n fontFamily !== 'fa' && fontFamily,\n `${fontFamily}-${type}`,\n fontWeight,\n className,\n ].filter(Boolean).join(' ');\n }\n\n return ;\n}\n\nIcon.propTypes = {\n // Additional CSS classes to apply\n className: PropTypes.string,\n // Font family to use. Default is 'fa'.\n family: PropTypes.string,\n // Icon type to use\n type: PropTypes.string.isRequired,\n // Icon weight to use. Only applicable for Font Awesome icons. Default is 'regular'. Also supports 'light' and 'solid'\n weight: PropTypes.string\n};\n\nexport default Icon;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport AccordionItemContext from './AccordionItemContext';\n\nfunction ItemTrigger({ wrap }) {\n const { collapsed, disabled, toggleChange } = useContext(AccordionItemContext);\n\n const iconType = collapsed ? 'chevron-down' : 'chevron-up';\n const classes = [\n 'tyk-accordion__trigger',\n disabled && 'tyk-accordion__trigger--disabled',\n ].filter(Boolean).join(' ');\n const trigger = (\n \n \n \n );\n\n return wrap\n ?
    {trigger}
    \n : trigger;\n}\n\nItemTrigger.propTypes = {\n wrap: PropTypes.bool,\n};\n\nexport default ItemTrigger;\n","import React, {\n useMemo, useState, useContext, forwardRef,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport AccordionContext from './AccordionContext';\nimport AccordionItemContext from './AccordionItemContext';\nimport ItemTrigger from './AccordionItemTrigger';\n\nfunction AccordionItem({\n collapsed: collapsedProp,\n children,\n className,\n disabled,\n}, ref) {\n const { arrow } = useContext(AccordionContext);\n const [collapsed, setCollapsed] = useState(collapsedProp);\n\n const toggleChange = () => {\n if (disabled) {\n return;\n }\n\n setCollapsed(!collapsed);\n };\n\n const classes = useMemo(() => [\n 'tyk-accordion__item',\n arrow.expandToContent\n ? `tyk-accordion__item--trigger-position-${arrow.position}`\n : 'tyk-accordion__item--trigger-in-header',\n className,\n collapsed === false && 'tyk-accordion__item--active',\n ].filter(Boolean).join(' '), [arrow, className, collapsed]);\n\n const contextValue = useMemo(() => ({\n collapsed,\n disabled,\n toggleChange,\n }), [collapsed, disabled, toggleChange]);\n\n return (\n
    \n \n {arrow.expandToContent && (\n \n )}\n {children}\n \n
    \n );\n}\n\nAccordionItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n collapsed: PropTypes.bool,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n};\n\nAccordionItem.defaultProps = {\n collapsed: false,\n};\n\nexport default forwardRef(AccordionItem);\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport AccordionContext from './AccordionContext';\nimport AccordionItemContext from './AccordionItemContext';\nimport ItemTrigger from './AccordionItemTrigger';\n\nfunction AccordionItemHeader({ className, children }) {\n const { collapsed, disabled, toggleChange } = useContext(AccordionItemContext);\n const { usearrowastrigger, arrow } = useContext(AccordionContext);\n const iconType = collapsed ? 'chevron-down' : 'chevron-up';\n const classes = [\n 'tyk-accordion__item-header',\n usearrowastrigger && 'tyk-accordion__arrow-trigger',\n className,\n ].filter(Boolean).join(' ');\n\n return (\n
    \n {\n !usearrowastrigger\n ? (\n \n {children}\n \n \n )\n : (\n <>\n {!arrow.expandToContent && arrow.position === 'left' && (\n \n )}\n
    {children}
    \n {!arrow.expandToContent && arrow.position === 'right' && (\n \n )}\n \n )\n }\n
    \n );\n}\n\nAccordionItemHeader.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n};\n\nexport default AccordionItemHeader;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-transition-group\");","import { useCallback, useState, useLayoutEffect } from 'react';\n\nconst getSize = (el) => {\n if (!el) {\n return {\n width: 0,\n height: 0,\n };\n }\n\n return {\n width: el.offsetWidth,\n height: el.offsetHeight,\n };\n};\n\nconst useComponentSize = (ref) => {\n const [componentSize, setComponentSize] = useState(getSize(ref ? ref.current : {}));\n const handleResize = useCallback(() => {\n if (ref.current) {\n setComponentSize(getSize(ref.current));\n }\n }, [ref]);\n\n useLayoutEffect(() => {\n handleResize();\n\n let resizeObserver = new ResizeObserver(() => {\n handleResize();\n });\n resizeObserver.observe(ref.current);\n\n return () => {\n resizeObserver.disconnect(ref.current);\n resizeObserver = null;\n };\n }, [ref.current]);\n\n return componentSize;\n};\n\n/** @component */\nexport default useComponentSize;\n","import { useEffect, useRef } from 'react';\n\nconst useEventListener = (eventName, handler, element) => {\n const savedHandler = useRef();\n useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(() => {\n const isSupported = element?.addEventListener;\n if (!isSupported) {\n // eslint-disable-next-line consistent-return\n return;\n }\n\n const eventListener = (event) => savedHandler.current(event);\n element.addEventListener(eventName, eventListener);\n\n // eslint-disable-next-line consistent-return\n return () => {\n element.removeEventListener(eventName, eventListener);\n };\n }, [eventName, element]);\n};\n\n/** @component */\nexport default useEventListener;\n","import React, {\n useRef, useState, useCallback, useEffect,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { CSSTransition } from 'react-transition-group';\nimport { useEventListener, useComponentSize } from '../../hooks';\n\n/**\n * Collapsible is a component that helps you to collapse/expand any type of content\n */\nfunction Collapsible({\n className,\n collapsed,\n children,\n ...rest\n}) {\n const contentContainer = useRef(null);\n const collapseWrapper = useRef(null);\n const refContainerSize = useComponentSize(contentContainer);\n const [contentContainerStyle, setContentContainerStyle] = useState({\n // eslint-disable-next-line\n height: (collapsed) ? 0 : 'auto',\n });\n\n const setHeight = (height) => {\n setContentContainerStyle({\n height: `${height}px`,\n });\n };\n\n const getHeight = () => (contentContainer.current ? contentContainer.current.clientHeight : 0);\n\n const onEnter = () => {\n setHeight(getHeight());\n };\n\n const onExit = () => {\n setHeight(0);\n };\n\n useEffect(() => {\n if (!collapsed\n && refContainerSize?.height\n && contentContainerStyle.height !== refContainerSize?.height\n ) {\n setHeight(refContainerSize.height);\n }\n }, [refContainerSize.height]);\n\n const onWindowResize = useCallback(() => {\n if (!collapsed && contentContainer.current) {\n setHeight(getHeight());\n collapseWrapper.current.style.height = `${getHeight()}px`;\n }\n }, [collapsed, contentContainer.current]);\n\n useEventListener('resize', onWindowResize, window);\n\n return (\n \n \n \n { children }\n \n \n \n );\n}\n\nCollapsible.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** Describes if the content of Collapsible should be hidden or not */\n collapsed: PropTypes.bool,\n /** CSS classes that can be passed to the Collapsible element */\n className: PropTypes.string,\n};\n\nexport default Collapsible;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Collapsible from '../../Collapsible';\nimport AccordionItemContext from './AccordionItemContext';\n\nfunction AccordionItemContent({ children, className }) {\n const { collapsed } = useContext(AccordionItemContext);\n\n const classes = [\n 'tyk-accordion__item-content',\n className,\n ].filter(Boolean).join(' ');\n\n return (\n
    \n \n { children }\n \n
    \n );\n}\n\nAccordionItemContent.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n};\n\nexport default AccordionItemContent;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport AccordionItem from './js/AccordionItem';\nimport AccordionItemHeader from './js/AccordionItemHeader';\nimport AccordionItemContent from './js/AccordionItemContent';\nimport AccordionContext from './js/AccordionContext';\n\nfunction Accordion({\n className,\n children,\n usearrowastrigger,\n arrow = { position: 'right', expandToContent: false },\n}) {\n const classes = [\n 'tyk-accordion',\n className,\n ].filter(Boolean).join(' ');\n\n const contextValue = useMemo(() => ({\n usearrowastrigger,\n arrow,\n }), [usearrowastrigger, arrow]);\n\n return (\n
    \n \n {children}\n \n
    \n );\n}\n\nAccordion.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n usearrowastrigger: PropTypes.bool,\n arrow: PropTypes.shape({\n position: PropTypes.oneOf(['left', 'right']),\n expandToContent: PropTypes.bool,\n }),\n};\n\nAccordion.defaultProps = {\n usearrowastrigger: false,\n};\n\n// For Readme.md : Start\nAccordion.Item = AccordionItem;\nAccordion.Item.Header = AccordionItemHeader;\nAccordion.Item.Content = AccordionItemContent;\n// For Readme.md : End\n\nexport default Accordion;\n","import React, { cloneElement, forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../Icon';\n\n/**\n * Button component.\n */\nfunction Button(props, ref) {\n const {\n customButton,\n children,\n iconType,\n iconFamily,\n iconPosition,\n iconOnly,\n id,\n className,\n disabled,\n display,\n href,\n onClick,\n noStyle,\n size,\n theme,\n type,\n ...rest\n } = props;\n\n const getCssClasses = () => {\n const cssClasses = ['tyk-button'].concat(className ? className.split(' ') : []);\n const sizeClass = (size) ? `tyk-button--${size}` : 'tyk-button--md';\n const disabledClass = (disabled) ? 'disabled' : '';\n const displayClass = display || '';\n const themeClass = theme ? `tyk-button--${theme}` : '';\n const iconOnlyClass = iconOnly ? 'tyk-button--icon-only' : '';\n const noStyleClass = noStyle ? 'tyk-button--no-style' : '';\n\n cssClasses.push(iconOnlyClass);\n cssClasses.push(themeClass);\n cssClasses.push(sizeClass);\n cssClasses.push(disabledClass);\n cssClasses.push(displayClass);\n cssClasses.push(noStyleClass);\n\n if (iconType) {\n cssClasses.push(`icon-${iconPosition || 'left'}`);\n }\n\n return cssClasses.join(' ');\n };\n\n const getButtonIcon = (position) => {\n const iPos = iconPosition || 'left';\n\n return (\n (iconType && iPos === position)\n ? \n : null\n );\n };\n\n const getButtonType = () => {\n let buttonType;\n\n if (customButton) {\n return (\n <>\n { cloneElement(customButton, {\n className: getCssClasses(),\n disabled,\n })}\n \n );\n }\n\n if (href) {\n buttonType = (\n \n { getButtonIcon('left') }\n { children }\n { getButtonIcon('right') }\n \n );\n } else {\n buttonType = (\n // eslint-disable-next-line react/button-has-type\n \n { getButtonIcon('left') }\n { children && {children} }\n { getButtonIcon('right') }\n \n );\n }\n\n return buttonType;\n };\n\n return (\n getButtonType()\n );\n}\n\nButton.propTypes = {\n /**\n * Content of a button. Can be a DOM element or a React component\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n customButton: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n ]),\n className: PropTypes.string,\n /**\n * Display type: inline/block. Default is inline\n */\n display: PropTypes.string,\n /**\n * Sets the button disabled state\n */\n disabled: PropTypes.bool,\n /**\n * Having this property set the button will become a link\n */\n id: PropTypes.string,\n href: PropTypes.string,\n iconPosition: PropTypes.string, // left or right\n iconFamily: PropTypes.string,\n iconOnly: PropTypes.bool,\n iconType: PropTypes.string,\n noStyle: PropTypes.bool,\n /**\n * Callback function, called when the button si clicked\n */\n onClick: PropTypes.func,\n /**\n * Describes the appearence of the button (ex: primary, danger, primary-outline etc.)\n */\n theme: PropTypes.string,\n /**\n * Type of the button (ex: button, submit etc.)\n */\n type: PropTypes.string,\n /**\n * Describes the size of the button (sm, md, lg). Default one is md\n */\n size: PropTypes.string,\n};\n\nButton.defaultProps = {\n theme: '',\n type: 'button',\n};\n\nexport default forwardRef(Button);\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ButtonGroup({ className, children, label }, ref) {\n return (\n
    \n {Boolean(label) && }\n
    {children}
    \n
    \n );\n}\n\nButtonGroup.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n};\n\nexport default forwardRef(ButtonGroup);\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardHeader({\n right = null,\n children,\n}) {\n return (\n
    \n {children &&
    {children}
    }\n {right &&
    {right}
    }\n
    \n );\n}\n\nCardHeader.propTypes = {\n right: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardBody({\n align = 'top',\n children,\n}) {\n return (\n
    \n
    \n {children}\n
    \n
    \n );\n}\n\nCardBody.propTypes = {\n align: PropTypes.oneOf(['top', 'center', 'bottom']),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardBody;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardFooter({ children }) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardFooter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitle({\n maxLines = 1, // accepted values: 1, 2\n children,\n}) {\n return (\n

    \n {children}\n

    \n );\n}\n\nCardTitle.propTypes = {\n maxLines: PropTypes.number,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitle;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitleGroup({\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardTitleGroup.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitleGroup;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardSubTitle({\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardSubTitle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardSubTitle;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardSummary({\n maxLines = 2, // accepted values: 1, 2, 3, 4, 5\n children,\n}) {\n return (\n

    \n {children}\n

    \n );\n}\n\nCardSummary.propTypes = {\n maxLines: PropTypes.number,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardSummary;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitleIcon({\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardTitleIcon.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitleIcon;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport CardHeader from './CardHeader';\nimport CardBody from './CardBody';\nimport CardFooter from './CardFooter';\nimport CardTitle from './CardTitle';\nimport CardTitleGroup from './CardTitleGroup';\nimport CardSubTitle from './CardSubTitle';\nimport CardSummary from './CardSummary';\nimport CardTitleIcon from './CardTitleIcon';\n\nfunction Card({\n className = '',\n height = 'auto',\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCard.propTypes = {\n className: PropTypes.string,\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nCard.Header = CardHeader;\nCard.Body = CardBody;\nCard.Footer = CardFooter;\nCard.Title = CardTitle;\nCard.TitleGroup = CardTitleGroup;\nCard.Icon = CardTitleIcon;\nCard.SubTitle = CardSubTitle;\nCard.Summary = CardSummary;\n\nexport default Card;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"echarts\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"immutable\");","export default (func, wait, immediate) => {\n let timeout;\n return function debouncer(...args) {\n const context = this;\n const later = () => {\n timeout = null;\n if (!immediate) {\n func.apply(context, args);\n }\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) {\n func.apply(context, args);\n }\n };\n};\n","import { useEffect, useRef } from 'react';\n\nconst usePrevious = (value) => {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n};\n\n/** @component */\nexport default usePrevious;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Loader({ className, position = 'relative', withbackground = false }) {\n const classes = [\n 'loading',\n position,\n className,\n ].filter(Boolean).join(' ');\n\n const loader = (\n
    \n
    \n
    \n
    \n
    \n
    \n );\n\n return withbackground\n ?
    {loader}
    \n : loader;\n}\n\nLoader.propTypes = {\n /** add a class to loader */\n className: PropTypes.string,\n /** position of loader (absolute / relative) */\n position: PropTypes.string,\n /** defines weather loader should be renders with or without background */\n withbackground: PropTypes.bool,\n};\n\nexport default Loader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../Icon';\n\n/**\n * The Message component is used to highlight important content to the users.\n *\n * If the content you are displaying needs immediate attention or is a feedback,\n * consider using `toast` instead\n */\nfunction Message({\n children, theme, onClose, noMargin, className,\n}) {\n function getCssClasses() {\n return [\n 'tyk-message',\n `tyk-message--${theme || 'info'}`,\n noMargin && 'no-margin',\n className,\n ].filter(Boolean).join(' ');\n }\n\n const iconType = theme === 'success' ? 'check' : 'exclamation';\n\n return (\n
    \n \n
    \n { children }\n
    \n {onClose && (\n \n )}\n
    \n );\n}\n\nMessage.propTypes = {\n /** Set theme for message (eg. default, success, danger, etc) */\n theme: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** add a class to loader */\n className: PropTypes.string,\n /** Removes margins by adding `no-margin` class */\n noMargin: PropTypes.bool,\n /** Callback for clicking on the \"x\" */\n onClose: PropTypes.func,\n};\n\nexport default Message;\n","import React, {\n useState, useEffect, useMemo, useRef, memo,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport * as echarts from 'echarts';\nimport { fromJS } from 'immutable';\n\nimport debounce from '../../utils/debounce';\nimport { usePrevious } from '../../hooks';\nimport Loader from '../Loader';\nimport Message from '../Message';\nimport worldMap from './maps/world.json';\n\necharts.registerMap('world', worldMap);\n\nfunction Chart({\n areaStyleColors,\n dataLoaded,\n hasData,\n highlight,\n type,\n option,\n series,\n onChange,\n zoomStart,\n zoomEnd,\n title,\n seriesConfig = [],\n noDataComponent: noDataComponentProp = null,\n zoomColors,\n style,\n}) {\n const [tykChartInstance, setTykChartInstance] = useState(null);\n const chartWrapperRef = useRef(null);\n const onResize = () => {\n if (tykChartInstance) {\n tykChartInstance.resize();\n }\n };\n\n const noDataComponent = useMemo(\n () => (noDataComponentProp\n ? noDataComponentProp()\n : (\n \n No data to display\n \n )),\n [noDataComponentProp],\n );\n\n const lineBarChart = {\n defaultOpts: fromJS({\n title: {\n show: true,\n text: title,\n left: 0,\n },\n color: [],\n toolbox: {\n right: '0',\n orient: 'horizontal',\n itemSize: 15,\n showTitle: true,\n feature: null,\n },\n dataZoom: [{\n show: true,\n start: 0,\n end: 100,\n orient: 'horizontal',\n dataBackground: {\n lineStyle: {\n color: zoomColors?.lineStyle || '#368493',\n },\n areaStyle: {\n color: zoomColors?.areaStyle || '#368493',\n },\n },\n handleStyle: {\n color: zoomColors?.handleStyle || '#368493',\n },\n textStyle: {\n color: zoomColors?.textStyle || '#368493',\n },\n borderColor: 'transparent',\n fillerColor: zoomColors?.fillerColor || 'rgba(54, 132, 147, 0.1)',\n }],\n legend: {\n show: false,\n // data: [],\n // right: '1%',\n },\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'cross',\n },\n },\n grid: {\n left: '1%',\n right: '1%',\n bottom: '50px',\n top: '40px',\n containLabel: true,\n },\n xAxis: {\n boundaryGap: false,\n type: 'category',\n splitLine: {\n show: true,\n lineStyle: {\n type: 'dotted',\n color: '#F0F0F0',\n },\n },\n axisLine: {\n show: false,\n },\n axisTick: {\n show: false,\n },\n data: [],\n },\n yAxis: {\n min: 'dataMin',\n boundaryGap: true,\n axisPointer: {\n show: true,\n },\n splitLine: {\n lineStyle: {\n type: 'dotted',\n color: '#F0F0F0',\n },\n show: true,\n },\n axisLabel: {\n show: true,\n },\n axisLine: {\n show: true,\n },\n axisTick: {\n show: false,\n },\n type: 'value',\n },\n textStyle: {\n color: '#5a5a68',\n },\n series: [],\n animationEasing: 'elasticOut',\n }),\n seriesDefault: fromJS({\n data: [],\n type: 'line',\n areaStyle: {\n opacity: 1,\n color: areaStyleColors\n ? new echarts.graphic.LinearGradient(\n 0,\n 0,\n 1,\n 1,\n areaStyleColors.map((color, index) => ({\n offset: index,\n color,\n })),\n )\n : [],\n },\n smooth: false,\n symbolSize: 7,\n name: '',\n }),\n };\n\n const pieChart = {\n defaultOpts: fromJS({\n tooltip: {\n trigger: 'axis',\n formatter: '{b}: {c} ({d}%)',\n },\n legend: {\n orient: 'horizontal',\n x: 'left',\n y: 'top',\n data: [],\n },\n color: [],\n series: [],\n }),\n seriesDefault: fromJS({\n type: 'pie',\n center: [\n '50%',\n '55%',\n ],\n radius: [\n '50%',\n '75%',\n ],\n avoidLabelOverlap: false,\n animationType: 'scale',\n animationEasing: 'elasticOut',\n labelLine: {\n normal: {\n show: true,\n smooth: 0.2,\n length: 6,\n length2: 6,\n },\n },\n data: [],\n }),\n };\n\n const geoChart = {\n defaultOpts: fromJS({\n series: [],\n }),\n seriesDefault: fromJS({\n type: 'map',\n data: [],\n }),\n };\n\n const buildChartOptions = (selectedType, selectedOptions, selectedSeries) => {\n let finalOpts = {};\n switch (selectedType) {\n case 'pie': {\n finalOpts = pieChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n\n selectedSeries.forEach((entry) => {\n finalOpts.series.push(pieChart.seriesDefault.mergeDeep(fromJS(entry)).toJS());\n });\n\n break;\n }\n\n case 'geo': {\n finalOpts = geoChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n\n selectedSeries.forEach((entry) => {\n finalOpts.series.push(geoChart.seriesDefault.mergeDeep(fromJS(entry)).toJS());\n });\n\n break;\n }\n\n default: {\n finalOpts = lineBarChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n if (Array.isArray(selectedOptions.yAxis)) {\n finalOpts.yAxis = selectedOptions.yAxis;\n }\n\n selectedSeries.forEach((entry, index) => {\n const seriesData = {\n ...lineBarChart.seriesDefault.toJS(),\n ...seriesConfig[index],\n ...entry,\n };\n finalOpts.series.push(seriesData);\n });\n break;\n }\n }\n return finalOpts;\n };\n\n useEffect(() => {\n window.addEventListener('resize', onResize);\n\n return () => {\n window.removeEventListener('resize', onResize);\n };\n }, [tykChartInstance]);\n\n useEffect(() => {\n if (!chartWrapperRef?.current) return;\n\n setTykChartInstance(echarts.init(chartWrapperRef.current));\n\n // eslint-disable-next-line consistent-return\n return () => {\n if (tykChartInstance) {\n tykChartInstance.dispose();\n }\n };\n }, [chartWrapperRef.current]);\n\n const eventCallBack = (e) => {\n if (onChange) {\n onChange(e);\n }\n };\n\n useEffect(() => {\n let debouncedMethod;\n if (tykChartInstance) {\n debouncedMethod = debounce(eventCallBack, 500);\n tykChartInstance.on('dataZoom', debouncedMethod);\n tykChartInstance.on('restore', debouncedMethod);\n tykChartInstance.on('click', debouncedMethod);\n\n tykChartInstance.on('mousemove', (params) => {\n if (params.data) {\n tykChartInstance.getZr().setCursorStyle('pointer');\n }\n });\n }\n\n return () => {\n if (tykChartInstance) {\n tykChartInstance.off('dataZoom', debouncedMethod);\n tykChartInstance.off('restore', debouncedMethod);\n tykChartInstance.off('click', debouncedMethod);\n }\n };\n }, [tykChartInstance, onChange]);\n\n const prevInstance = usePrevious(tykChartInstance);\n const prevOption = usePrevious(option);\n const prevType = usePrevious(type);\n const prevSeries = usePrevious(series);\n useEffect(() => {\n if (\n tykChartInstance\n && (\n !fromJS(prevInstance)?.equals?.(fromJS(tykChartInstance))\n || !fromJS(prevOption)?.equals?.(fromJS(option))\n || (prevType !== type)\n || !fromJS(prevSeries).equals?.(fromJS(series))\n )\n ) {\n tykChartInstance.clear();\n tykChartInstance.setOption(buildChartOptions(type, option, series));\n tykChartInstance.dispatchAction({\n type: 'takeGlobalCursor',\n key: 'dataZoomSelect',\n dataZoomSelectActive: true,\n });\n }\n }, [tykChartInstance, option, series, type]);\n\n useEffect(() => {\n if (tykChartInstance && highlight) {\n tykChartInstance.dispatchAction({\n type: 'highlight',\n seriesIndex: highlight.seriesIndex,\n dataIndex: highlight.dataIndex,\n });\n tykChartInstance.dispatchAction({\n type: 'showTip',\n seriesIndex: highlight.seriesIndex,\n dataIndex: highlight.dataIndex,\n });\n }\n }, [highlight]);\n\n const prevZoomStart = usePrevious(zoomStart);\n const prevZoomEnd = usePrevious(zoomEnd);\n useEffect(() => {\n if (\n tykChartInstance\n && zoomStart !== -1\n && zoomEnd !== -1\n && (\n prevZoomStart !== zoomStart\n || prevZoomEnd !== zoomEnd\n )\n ) {\n tykChartInstance.dispatchAction({\n type: 'dataZoom',\n startValue: zoomStart,\n endValue: zoomEnd,\n });\n }\n }, [zoomStart, zoomEnd]);\n\n const getStyle = () => {\n const tempStyle = style || {};\n\n if (!tempStyle.height) {\n tempStyle.height = '300px';\n }\n if (!tempStyle.width) {\n tempStyle.width = '100%';\n }\n return tempStyle;\n };\n\n const chartHasData = () => (\n (dataLoaded && (hasData === false || hasData === true)) ? hasData : true\n );\n\n const getCssClasses = () => {\n const cssClasses = ['tyk-chart'];\n\n if (!dataLoaded) {\n cssClasses.push('tyk-chart--loading-chart');\n }\n\n if (!chartHasData()) {\n cssClasses.push('tyk-chart--no-data');\n }\n\n return cssClasses.join(' ');\n };\n\n return (\n
    \n {\n !dataLoaded\n ? \n : null\n }\n \n {\n chartHasData()\n ? null\n : noDataComponent\n }\n
    \n );\n}\n\nChart.propTypes = {\n areaStyleColors: PropTypes.instanceOf(Array),\n dataLoaded: PropTypes.bool,\n hasData: PropTypes.bool,\n highlight: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n PropTypes.instanceOf(Array),\n ]),\n noDataComponent: PropTypes.func,\n zoomStart: PropTypes.number,\n zoomEnd: PropTypes.number,\n zoomColors: PropTypes.instanceOf(Object),\n option: PropTypes.instanceOf(Object),\n onChange: PropTypes.func,\n style: PropTypes.instanceOf(Object),\n type: PropTypes.string,\n title: PropTypes.string,\n series: PropTypes.instanceOf(Array),\n seriesConfig: PropTypes.instanceOf(Object),\n};\n\nexport default memo(Chart);\n","import { useEffect, useRef } from 'react';\n\nconst useTimeout = (callback, delay) => {\n const savedCallback = useRef();\n\n useEffect(\n () => {\n savedCallback.current = callback;\n },\n [callback],\n );\n\n useEffect(\n () => {\n function tick() {\n savedCallback.current();\n }\n if (delay !== null) {\n const id = setTimeout(tick, delay);\n return () => clearTimeout(id);\n }\n\n return () => {};\n },\n [delay],\n );\n};\n\n/** @component */\nexport default useTimeout;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../../Message';\nimport { useTimeout } from '../../../hooks';\n\nfunction ToastMessage(props) {\n const {\n children,\n options,\n onClose,\n index,\n } = props;\n const opts = {\n theme: 'success',\n delay: 3000,\n ...options,\n };\n let timer;\n\n const handleClose = (itemIndex) => {\n onClose(itemIndex);\n clearTimeout(timer);\n };\n\n useTimeout(() => handleClose(index), opts.delay);\n\n return (\n handleClose(index)}\n >\n {children}\n \n );\n}\n\nToastMessage.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n options: PropTypes.instanceOf(Object),\n onClose: PropTypes.func,\n index: PropTypes.number,\n};\n\nexport default ToastMessage;\n","import React, {\n useEffect, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToastMessage from './ToastMessage';\n\nfunction ToastContainer(props) {\n const [messages, setMessages] = useState({});\n const {\n notify,\n } = props;\n\n const updateNotifications = (message, options) => {\n const msgID = Math.floor(Math.random() * 1000000);\n\n setMessages((prevMessages) => ({\n ...prevMessages,\n [msgID]: {\n message,\n options,\n },\n }));\n };\n\n useEffect(() => {\n notify(updateNotifications);\n }, [messages]);\n\n const onMessageClosed = (index) => {\n const tempMessages = { ...messages };\n delete tempMessages[index];\n setMessages((prevMessages) => {\n const newMessages = { ...prevMessages };\n delete newMessages[index];\n return newMessages;\n });\n };\n\n return (\n
    \n {\n Object.keys(messages).map((msgID) => (\n messages[msgID]\n ? (\n \n {messages[msgID].message}\n \n )\n : null\n ))\n }\n
    \n );\n}\n\nToastContainer.propTypes = {\n notify: PropTypes.func,\n};\n\nexport default ToastContainer;\n","import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport ToastContainer from './js/ToastContainer';\n\n/**\n * Toast is a service that displays dialogs\n * on the bottom right part of the screen.\n *\n * The dialogs can have one of the Tyk UI themes, so that\n * it would match it's purpose (i.e success message, error message)\n *\n */\nclass ToastCreator {\n constructor() {\n const el = document.createElement('div');\n el.className = 'tyk-toast';\n document.body.appendChild(el);\n const root = createRoot(el);\n root.render();\n }\n\n bindNotify = (fn) => {\n this.createNotification = fn;\n };\n\n notify(message, options) {\n if (this.createNotification) {\n this.createNotification(message, options);\n }\n }\n\n danger(message, options) {\n this.notify(message, { ...options, theme: 'danger' });\n }\n\n success(message, options) {\n this.notify(message, { ...options, theme: 'success' });\n }\n\n warning(message, options) {\n this.notify(message, { ...options, theme: 'warning' });\n }\n\n info(message, options) {\n this.notify(message, { ...options, theme: 'info' });\n }\n}\n\nconst toast = new ToastCreator();\n\nexport default toast;\n","import React, { createRef, useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport toast from '../Toast';\n\n/**\n * - CopyToClipboard is used to copy string for a user.\n * - Can be used normally with a text or a custom components (Eg. Button, Icon, etc)\n */\n\nfunction CopyToClipboard(props) {\n const {\n display, copy, children, onCopy, message = 'copied',\n } = props;\n const txtRef = createRef();\n const handleClick = useCallback(() => {\n if (onCopy) {\n onCopy();\n }\n\n if (!window.navigator.clipboard) {\n txtRef.current.select();\n document.execCommand('copy');\n toast.success(message);\n return;\n }\n window.navigator.clipboard.writeText(copy);\n toast.success(message);\n }, [onCopy, txtRef]);\n\n return (\n <>\n \n {children || display}\n \n {!window.navigator.clipboard ? (\n \n ) : null}\n \n );\n}\n\nCopyToClipboard.propTypes = {\n /** Message to be displayed after text is copied */\n message: PropTypes.string,\n /** Callback function executed after text is copied */\n onCopy: PropTypes.func,\n /** Text to be copied */\n copy: PropTypes.string.isRequired,\n /** Text to be displayed */\n display: PropTypes.string,\n /** Children of custom element if you are using any custom element */\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n ]),\n};\n\nexport default CopyToClipboard;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ModalFooter({ children }) {\n return (\n
    \n { children }\n
    \n );\n}\n\nModalFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default ModalFooter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ModalBody({ children }) {\n return (\n
    \n { children }\n
    \n );\n}\n\nModalBody.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default ModalBody;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { CSSTransition } from 'react-transition-group';\n\nimport Icon from '../Icon';\nimport ModalFooter from './js/ModalFooter';\nimport ModalBody from './js/ModalBody';\n\n/**\n * Modals add dialogs confirmation boxes, notifications, or completely custom content\n * - only one Modal can be opened at a time\n * - are unmounted when Modal is closed\n */\nfunction Modal({\n children,\n theme = 'none',\n disableCloseCommands = false,\n opened = false,\n onClose = () => {},\n size = 'md',\n className = '',\n showBackdrop = true,\n ...restProps\n}) {\n const modalClasses = [\n 'tyk-modal',\n `tyk-modal--theme-${theme}`,\n opened && 'opened',\n ].concat(className.split(' ')).filter(Boolean).join(' ');\n\n const backdropClasses = [\n 'tyk-modal__backdrop',\n opened && 'opened',\n ].filter(Boolean).join(' ');\n\n const themeIcon = {\n success: 'check',\n warning: 'exclamation',\n danger: 'exclamation',\n }[theme];\n\n return (\n <>\n {\n ReactDOM.createPortal(\n \n
    \n
    \n
    \n {theme !== 'none' && (\n
    \n \n
    \n )}\n { children }\n
    \n
    \n
    \n ,\n document.querySelector('body'),\n )\n }\n {showBackdrop && ReactDOM.createPortal(\n \n !disableCloseCommands && onClose()}\n onKeyDown={() => {}}\n type=\"button\"\n aria-label=\"Close\"\n />\n ,\n document.querySelector('body'),\n )}\n \n );\n}\n\nModal.Body = ModalBody;\nModal.Footer = ModalFooter;\n/* eslint-disable-next-line */\nModal.Header = ({ children }) => {\n console.warn('%cModal.Header%c is deprecated.', 'font-weight: bold', '');\n return (\n
    \n { children }\n
    \n );\n};\nModal.Header.propTypes = {\n children: PropTypes.element,\n};\n/* eslint-disable-next-line */\nModal.Title = ({ children }) => {\n console.warn('%cModal.Title%c is deprecated.', 'font-weight: bold', '');\n return (\n

    \n { children }\n

    \n );\n};\nModal.Title.propTypes = {\n children: PropTypes.element,\n};\n\nModal.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n /** one of \"success\", \"warning\", \"danger\", \"none\"; default is \"none\" */\n theme: PropTypes.string,\n /** If set on true, the Modal won't close when clicking on the overlay or by pressing ESC key */\n disableCloseCommands: PropTypes.bool,\n /** If true the Modal will be by default opened */\n opened: PropTypes.bool,\n /** Callback method when the Modal is closed */\n onClose: PropTypes.func,\n /** Width of the Moda: md or lg */\n size: PropTypes.string,\n showBackdrop: PropTypes.bool,\n};\n\nexport default Modal;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../Button';\nimport Modal from '../Modal';\n\n/**\n * Confirm component can be used to open a dialog () before a specific action\n */\nfunction Confirm(props) {\n const {\n children,\n title,\n description,\n confirmBtnText = 'Confirm',\n cancelBtnText = 'Cancel',\n } = props;\n const [open, setOpen] = useState(false);\n const [callback, setCallback] = useState(null);\n const [cancelCallback, setCancelCallback] = useState(null);\n\n const show = (callbackFunc, cancelCallbackFunc, beforeCallback) => (...args) => {\n if (beforeCallback) {\n beforeCallback(...args);\n }\n setOpen(true);\n setCallback(() => () => callbackFunc(...args));\n if (cancelCallbackFunc) {\n setCancelCallback(() => () => cancelCallbackFunc(...args));\n }\n };\n\n const hide = () => {\n setOpen(false);\n setCallback(null);\n setCancelCallback(null);\n };\n\n const cancel = () => {\n if (cancelCallback) {\n cancelCallback();\n }\n hide();\n };\n\n const confirm = () => {\n callback();\n hide();\n };\n\n return (\n <>\n {children(show)}\n \n \n

    {title}

    \n {description}\n
    \n \n \n {cancelBtnText}\n \n \n {confirmBtnText}\n \n \n
    \n \n );\n}\n\nConfirm.propTypes = {\n /** Sets the text for primary / confirmation button on opened modal */\n confirmBtnText: PropTypes.string,\n /** Sets the text for danger / abort button on opened modal */\n cancelBtnText: PropTypes.string,\n /** Sets the title for the opened modal */\n title: PropTypes.string,\n /** Sets the description for the opened modal */\n description: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n PropTypes.func,\n ]),\n};\n\nexport default Confirm;\n","import React, { useCallback, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport debounce from '../../utils/debounce';\n\n/**\n * FixedWrapper component, keeps all its children in a fix position on the page,\n * even if the scroll position changes\n * i.e: The top navigation bar of a page sits within FixedWrapper component\n */\nfunction FixedWrapper({ children, className, showShadow }) {\n const fixedWrapperRef = useRef(null);\n\n const attachShadow = useCallback(() => {\n const element = fixedWrapperRef.current;\n\n if (!element) {\n return;\n }\n\n if (window.scrollY) {\n element.classList.add('tyk-fixed-wrapper--scrolled');\n } else {\n element.classList.remove('tyk-fixed-wrapper--scrolled');\n }\n }, [fixedWrapperRef.current]);\n\n const debouncedAttachShadow = useCallback(debounce(attachShadow, 100), [attachShadow]);\n\n useEffect(() => {\n if (showShadow) {\n window.addEventListener('scroll', debouncedAttachShadow);\n }\n\n return () => {\n window.removeEventListener('scroll', debouncedAttachShadow);\n };\n }, [debouncedAttachShadow, showShadow]);\n\n return (\n
    \n { children }\n
    \n );\n}\n\nFixedWrapper.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** Css classes that can be passed to the FixedWraper element */\n className: PropTypes.string,\n /** If true, bottom shadow on the FixedWrapper component\n * is being displayed when scroll happens\n */\n showShadow: PropTypes.bool,\n};\n\nFixedWrapper.defaultProps = {\n className: '',\n};\n\nexport default FixedWrapper;\n","import React, {\n useEffect, useState, useRef, useCallback,\n} from 'react';\nimport { PropTypes } from 'prop-types';\n\nimport debounce from '../../utils/debounce';\nimport { usePrevious, useComponentSize } from '../../hooks';\nimport Loader from '../Loader';\n\nfunction InfiniteScroller({\n children,\n hasMore,\n initialLoad,\n loadMore,\n pageNumber,\n refChild,\n}) {\n const [showLoader, setShowLoader] = useState(false);\n const containerRef = useRef(null);\n const refChildSize = useComponentSize(refChild);\n\n useEffect(() => {\n if (initialLoad && typeof loadMore === 'function') {\n setShowLoader(false);\n loadMore(pageNumber);\n }\n }, [initialLoad]);\n\n const shouldLoad = useCallback(() => {\n if (!containerRef.current) return false;\n const { clientHeight, scrollTop } = containerRef.current;\n\n return (\n hasMore\n && (\n (clientHeight + Math.round(scrollTop) === refChildSize.height)\n || (clientHeight >= refChildSize.height)\n )\n );\n }, [containerRef, refChildSize.height]);\n\n const loadMoreData = useCallback(() => {\n if (hasMore && typeof loadMore === 'function') {\n loadMore(pageNumber + 1);\n setShowLoader(true);\n } else {\n setShowLoader(false);\n }\n }, [hasMore, pageNumber]);\n\n const prevPageNumber = usePrevious(pageNumber);\n const scrollHandler = useCallback(debounce(() => {\n if (shouldLoad() && prevPageNumber <= pageNumber) {\n loadMoreData();\n }\n }, 200), [loadMoreData, shouldLoad]);\n\n useEffect(() => {\n containerRef.current?.addEventListener('scroll', scrollHandler);\n return () => containerRef.current?.removeEventListener('scroll', scrollHandler);\n }, [containerRef, scrollHandler]);\n\n // if content resets (page number resets) scroll to top\n useEffect(() => {\n if (prevPageNumber > 0 && pageNumber === 0) {\n containerRef.current.scrollTop = 0;\n }\n }, [containerRef, pageNumber]);\n\n const prevRefChildSize = usePrevious(refChildSize);\n useEffect(() => {\n if (\n refChildSize && prevRefChildSize\n && refChildSize.height !== prevRefChildSize.height\n && showLoader === true\n ) {\n setShowLoader(false);\n }\n }, [showLoader, refChildSize.height]);\n\n useEffect(() => {\n if (\n refChild && refChildSize.height < containerRef.current.clientHeight\n && refChildSize.height\n && hasMore\n ) {\n loadMoreData();\n }\n }, [containerRef, refChildSize, refChild, hasMore]);\n\n return (\n
    \n \n { children }\n
    \n {showLoader && (\n \n )}\n
    \n );\n}\n\nInfiniteScroller.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n hasMore: PropTypes.bool,\n initialLoad: PropTypes.bool,\n pageNumber: PropTypes.number,\n loadMore: PropTypes.func,\n refChild: PropTypes.instanceOf(Object),\n};\n\nInfiniteScroller.defaultProps = {\n hasMore: true,\n};\n\nexport default InfiniteScroller;\n","import React, {\n useEffect, useRef, forwardRef,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\nimport InfiniteScroller from '../InfiniteScroller';\n\nconst VIEWPORT_INITIAL_PADDING = 5;\n\n/**\n * It displays a container relative to another element.\n * Meant to be used for dropdowns, tooltips, and other similar components.\n */\nfunction FloatingContainer({\n element,\n size = 'auto',\n forceDisplay = 'auto',\n displayAxis = 'auto',\n preferredPosition,\n offset = 0,\n className,\n children,\n infiniteScrollerConfig,\n}, ref) {\n const localRef = useRef(null);\n const floatingContainerRef = ref || localRef;\n const contentWrapperRef = useRef(null);\n // offset calculated on first render to make sure the floating container is inside the viewport\n const viewportOffset = useRef(null);\n\n function determineDisplay() {\n const target = element.current;\n const container = floatingContainerRef.current;\n if (!container) return preferredPosition ?? displayAxis === 'vertical' ? 'bottom' : 'right';\n\n const { left, top } = target.getBoundingClientRect();\n const topSpace = top;\n const bottomSpace = window.innerHeight - top - target.offsetHeight;\n const leftSpace = left;\n const rightSpace = window.innerWidth - left - target.offsetWidth;\n const hasTopSpace = topSpace > container.scrollHeight;\n const hasBottomSpace = bottomSpace > container.scrollHeight;\n const hasLeftSpace = leftSpace > container.offsetWidth;\n const hasRightSpace = rightSpace > container.offsetWidth;\n const positionedVerticallyFitsInViewport = left + target.offsetWidth / 2 - container.offsetWidth / 2 > 0; // eslint-disable-line max-len\n const positionedHorizontallyFitsInViewport = top + target.offsetHeight / 2 - container.scrollHeight / 2 > 0; // eslint-disable-line max-len\n\n if (\n displayAxis === 'vertical'\n || (\n displayAxis === 'auto'\n && (hasTopSpace || hasBottomSpace)\n && positionedVerticallyFitsInViewport\n )\n ) {\n return getDisplayForVertical({\n preferredPosition, hasTopSpace, hasBottomSpace, topSpace, bottomSpace,\n });\n }\n\n if (displayAxis === 'horizontal') {\n return getDisplayForHorizontal({\n preferredPosition, hasLeftSpace, hasRightSpace, leftSpace, rightSpace,\n });\n }\n\n return getDisplayWhereItFits({\n preferredPosition,\n hasTopSpace,\n hasBottomSpace,\n hasLeftSpace,\n hasRightSpace,\n positionedHorizontallyFitsInViewport,\n positionedVerticallyFitsInViewport,\n });\n }\n\n function adjustPosition() {\n const display = forceDisplay !== 'auto' ? forceDisplay : determineDisplay();\n const target = element.current;\n const container = floatingContainerRef.current;\n\n if (!target || !container) return;\n\n const targetPosition = target.getBoundingClientRect();\n const { left: vpLeft, top: vpTop } = viewportOffset.current ?? { left: 0, top: 0 };\n\n if (display === 'top') {\n Object.assign(container.style, getStylesForTop({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (display === 'bottom') {\n Object.assign(container.style, getStylesForBottom({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (display === 'left') {\n Object.assign(container.style, getStylesForLeft({\n targetPosition, target, container, size, offset,\n }));\n }\n\n if (display === 'right') {\n Object.assign(container.style, getStylesForRight({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (viewportOffset.current !== null) return;\n\n if (size === 'matchEnd') {\n viewportOffset.current = { left: 0, top: 0 };\n } else {\n const left = Number(container.style.left.replace('px', ''));\n const top = Number(container.style.top.replace('px', ''));\n viewportOffset.current = {\n left: left < 0 ? VIEWPORT_INITIAL_PADDING - left : 0,\n top: top < 0 ? VIEWPORT_INITIAL_PADDING - top : 0,\n };\n }\n }\n\n useEffect(() => {\n window.requestAnimationFrame(function schedulePositionUpdate() {\n adjustPosition();\n window.requestAnimationFrame(schedulePositionUpdate);\n });\n }, []);\n\n return createPortal(\n \n \n \n {children}\n
    \n \n
    ,\n document.querySelector('body'),\n );\n}\n\nFloatingContainer.propTypes = {\n /** A DOM element that the floating container will be displayed relative to. */\n element: PropTypes.instanceOf(Object),\n className: PropTypes.string,\n /** The size of the container.\n * If `auto` the size will be determined by its contents.\n * If `matchElement` it will take the width or the height of the element depending\n * on the `displayAxis` prop.\n * It can also be a function that returns a number representing the width\n * or the height in pixels.\n */\n size: PropTypes.oneOfType([\n PropTypes.oneOf(['auto', 'matchElement', 'matchStart', 'matchEnd']),\n PropTypes.func,\n ]),\n /**\n * The distance between the element and the floating container.\n * It can be positive or negative.\n */\n offset: PropTypes.number,\n /**\n * If `auto` the component will try to determine where to display the container relative to the\n * element (top, bottom, left, right).\n * It can also be one of top, bottom, left, right, to force the floating container to always be\n * displayed in that position.\n */\n forceDisplay: PropTypes.oneOf(['auto', 'top', 'bottom', 'left', 'right']),\n /**\n * It can be `auto`, `vertical` or `horizontal`. It specifies the axis where\n * it will be displayed when `forceDisplay` is `auto`.\n */\n displayAxis: PropTypes.oneOf(['auto', 'vertical', 'horizontal']),\n /**\n * If there is space on both sides of the axis preffer this side.\n */\n preferredPosition: PropTypes.oneOf(['top', 'bottom', 'left', 'right']),\n /**\n * Configuration object that will be passed to the infinite scroller component.\n */\n infiniteScrollerConfig: PropTypes.instanceOf(Object),\n};\n\nexport default forwardRef(FloatingContainer);\n\nfunction getDisplayForVertical({\n preferredPosition, hasTopSpace, hasBottomSpace, topSpace, bottomSpace,\n}) {\n if (preferredPosition === 'top' && hasTopSpace) return 'top';\n if (preferredPosition === 'bottom' && hasBottomSpace) return 'bottom';\n return hasBottomSpace || bottomSpace > topSpace ? 'bottom' : 'top';\n}\n\nfunction getDisplayForHorizontal({\n preferredPosition, hasLeftSpace, hasRightSpace, leftSpace, rightSpace,\n}) {\n if (preferredPosition === 'left' && hasLeftSpace) return 'left';\n if (preferredPosition === 'right' && hasRightSpace) return 'right';\n return hasRightSpace || rightSpace > leftSpace ? 'right' : 'left';\n}\n\nfunction getDisplayWhereItFits({\n preferredPosition, hasTopSpace, hasBottomSpace, hasLeftSpace, hasRightSpace,\n positionedHorizontallyFitsInViewport, positionedVerticallyFitsInViewport,\n}) {\n if (hasTopSpace && positionedVerticallyFitsInViewport) return 'top';\n if (hasBottomSpace && positionedVerticallyFitsInViewport) return 'bottom';\n if (hasRightSpace && positionedHorizontallyFitsInViewport) return 'right';\n if (hasLeftSpace && positionedHorizontallyFitsInViewport) return 'left';\n return preferredPosition ?? 'bottom';\n}\n\nfunction getStylesForTop({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = {\n auto: targetPosition.left + target.offsetWidth / 2 - container.offsetWidth / 2,\n matchElement: targetPosition.left,\n matchStart: targetPosition.left,\n matchEnd: targetPosition.right - container.offsetWidth,\n }[size];\n const topPos = targetPosition.top - container.offsetHeight - offset;\n style.left = `${leftPos + vpLeft}px`;\n style.top = `${topPos + vpTop}px`;\n\n if (size === 'matchElement') {\n style.width = `${target.offsetWidth}px`;\n } else if (size === 'matchEnd') {\n style.maxWidth = `${targetPosition.right - VIEWPORT_INITIAL_PADDING}px`;\n } else if (typeof size === 'function') {\n style.width = `${size(target.offsetWidth)}px`;\n }\n style.maxHeight = `${targetPosition.top - offset}px`;\n return style;\n}\n\nfunction getStylesForBottom({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = {\n auto: targetPosition.left + target.offsetWidth / 2 - container.offsetWidth / 2,\n matchElement: targetPosition.left,\n matchStart: targetPosition.left,\n matchEnd: targetPosition.right - container.offsetWidth,\n }[size];\n const topPos = targetPosition.bottom + offset;\n style.left = `${leftPos + vpLeft}px`;\n style.top = `${topPos + vpTop}px`;\n\n if (size === 'matchElement') {\n style.width = `${target.offsetWidth}px`;\n } else if (size === 'matchEnd') {\n style.maxWidth = `${targetPosition.right - VIEWPORT_INITIAL_PADDING}px`;\n } else if (typeof size === 'function') {\n style.width = `${size(target.offsetWidth)}px`;\n }\n style.maxHeight = `${window.innerHeight - targetPosition.bottom - offset}px`;\n return style;\n}\n\nfunction getStylesForLeft({\n targetPosition, target, container, size, offset,\n}) {\n const style = {};\n const leftPos = targetPosition.left - container.offsetWidth - offset;\n const topPos = {\n auto: targetPosition.top + target.offsetHeight / 2 - container.offsetHeight / 2,\n matchElement: targetPosition.top,\n matchStart: targetPosition.top,\n matchEnd: targetPosition.bottom - container.offsetHeight,\n }[size];\n style.left = `${leftPos}px`;\n style.top = `${topPos}px`;\n\n if (size === 'matchElement') {\n style.height = `${target.offsetHeight}px`;\n } else if (typeof size === 'function') {\n style.height = `${size(target.offsetHeight)}px`;\n }\n style.maxWidth = `${targetPosition.left - offset}px`;\n return style;\n}\n\nfunction getStylesForRight({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = targetPosition.left + target.offsetWidth + offset;\n const topPos = {\n auto: targetPosition.top + target.offsetHeight / 2 - container.offsetHeight / 2,\n matchElement: targetPosition.top,\n matchStart: targetPosition.top,\n matchEnd: targetPosition.bottom - container.offsetHeight,\n }[size];\n style.left = size === 'auto' ? `${leftPos + vpLeft}px` : `${leftPos}px`;\n style.top = size === 'auto' ? `${topPos + vpTop}px` : `${topPos}px`;\n\n if (size === 'matchElement') {\n style.height = `${target.offsetHeight}px`;\n } else if (typeof size === 'function') {\n style.height = `${size(target.offsetHeight)}px`;\n }\n style.maxWidth = `${window.innerWidth - targetPosition.left - target.offsetWidth - offset}px`;\n return style;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../Message';\n\nfunction InfoNote({ children }) {\n return (\n
    \n \n { children }\n \n
    \n );\n}\n\nInfoNote.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default InfoNote;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ListItem(props) {\n const {\n className,\n children,\n selected,\n } = props;\n\n return (\n
  • \n {children}\n
  • \n );\n}\n\nListItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n selected: PropTypes.bool,\n};\n\nListItem.defaultProps = {\n className: '',\n};\n\nexport default ListItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ListItem from './js/ListItem';\n\nfunction List(props) {\n const {\n className,\n children,\n label,\n labelwidth,\n theme,\n style,\n } = props;\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-list'];\n\n if (theme) {\n cssClasses.push(`tyk-list--${theme}`);\n }\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n };\n\n const getListStyle = () => {\n const styleCopy = structuredClone(style);\n if (labelwidth) {\n styleCopy.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styleCopy;\n };\n\n return (\n
    \n {\n label !== undefined\n ? (\n \n )\n : null\n }\n
      \n {children}\n
    \n
    \n );\n}\n\nList.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n label: PropTypes.string,\n labelwidth: PropTypes.string,\n theme: PropTypes.string,\n style: PropTypes.instanceOf(Object),\n};\n\nList.defaultProps = {\n theme: 'default',\n style: {},\n};\n\nList.Item = ListItem;\n\nexport default List;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction NavBar({\n align = 'center',\n children,\n left,\n right,\n title,\n pre,\n subtitle,\n withTabs,\n}) {\n const subtitleContent = subtitle ?

    { subtitle }

    : null;\n return (\n
    \n
    \n {pre && (\n
    {pre}
    \n )}\n {\n title\n ? (\n
    \n

    { title }

    \n { subtitleContent }\n
    \n )\n : subtitleContent\n }\n
    \n {left && (\n
    { left }
    \n )}\n {right && (\n
    { right }
    \n )}\n
    \n
    \n { children }\n
    \n );\n}\n\nNavBar.propTypes = {\n align: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n title: PropTypes.string,\n subtitle: PropTypes.string,\n pre: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n left: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n right: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n withTabs: PropTypes.bool,\n};\n\nexport default NavBar;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction NavigationItem({ children }) {\n return (\n
  • \n {children}\n
  • \n );\n}\n\nNavigationItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nexport default NavigationItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport NavigationItem from './js/NavigationItem';\n\nfunction Navigation({ children }) {\n return (\n
      \n {children}\n
    \n );\n}\n\nNavigation.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nNavigation.Item = NavigationItem;\n\nexport default Navigation;\n","import { createContext } from 'react';\n\nexport const PortalContext = createContext();\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Collapsible from '../../Collapsible';\nimport { PortalContext } from '../panel-context';\n\nfunction PanelBody({\n children,\n noPadding,\n className,\n ...rest\n}) {\n const getCssClasses = useCallback(\n () => [\n 'tyk-panel__body',\n className,\n noPadding && 'no-padding',\n ].filter(Boolean).join(' '),\n [className, noPadding],\n );\n\n return (\n \n {\n (portalContext) => (\n portalContext.collapsable\n ? (\n \n { children }\n \n )\n : (\n \n { children }\n
    \n )\n )\n }\n \n );\n}\n\nPanelBody.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n noPadding: PropTypes.bool,\n className: PropTypes.string,\n};\n\nexport default PanelBody;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction PanelFooter(props) {\n const { children } = props;\n return (\n
    \n { children }\n
    \n );\n}\n\nPanelFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default PanelFooter;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport { PortalContext } from '../panel-context';\n\nclass PanelHeader extends Component {\n getCssClasses(props) {\n const { className } = this.props;\n let cssClasses = ['tyk-panel__header'];\n\n if (props.collapsable) {\n cssClasses.push('collapsable');\n }\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n }\n\n render() {\n const {\n children,\n } = this.props;\n\n return (\n \n {\n (portalContext) => {\n const HeaderTag = portalContext.theme === 'blank' ? 'h3' : 'div';\n const iconType = portalContext.collapsed ? 'chevron-down' : 'chevron-up';\n\n return (\n \n { children }\n {\n portalContext.collapsable\n ?
    \n : null\n }\n \n );\n }\n }\n
    \n );\n }\n}\n\nPanelHeader.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]).isRequired,\n className: PropTypes.string,\n};\n\nexport default PanelHeader;\n","import React, {\n useCallback, useEffect, useMemo, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport PanelBody from './js/PanelBody';\nimport PanelFooter from './js/PanelFooter';\nimport PanelHeader from './js/PanelHeader';\n\nimport { PortalContext } from './panel-context';\n\nfunction Panel(props) {\n const {\n children,\n className,\n collapsed,\n collapsable,\n theme,\n onToggleCollapse,\n collapsibleIconPosition = 'right',\n } = props;\n const [collapsedState, setCollapsedState] = useState(collapsed || false);\n\n useEffect(() => {\n if (collapsed !== collapsedState) {\n setCollapsedState(collapsed);\n }\n }, [collapsed]);\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-panel'];\n const panelTheme = `tyk-panel--${theme || 'default'}`;\n const collapsbleIconPosition = `tyk-panel__icon-collapse--${collapsibleIconPosition}`;\n\n cssClasses.push(panelTheme);\n cssClasses.push(collapsbleIconPosition);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n if (collapsedState) {\n cssClasses.push('tyk-panel--collapsed');\n }\n\n return cssClasses.join(' ');\n };\n\n const handleToggle = useCallback(() => {\n setCollapsedState(!collapsedState);\n\n if (onToggleCollapse) {\n onToggleCollapse(!collapsedState);\n }\n }, [collapsedState, onToggleCollapse]);\n\n const context = useMemo(() => ({\n collapsable,\n collapsed: collapsedState,\n onToggle: handleToggle,\n theme,\n collapsibleIconPosition,\n }), [collapsable, collapsedState, collapsibleIconPosition, theme, handleToggle]);\n\n return (\n
    \n \n {\n (typeof children === 'function')\n ? children({\n toggleCollapse: handleToggle,\n })\n : children\n }\n \n
    \n );\n}\n\nPanel.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n collapsable: PropTypes.bool,\n collapsibleIconPosition: PropTypes.string,\n collapsed: PropTypes.bool,\n theme: PropTypes.string,\n onToggleCollapse: PropTypes.func,\n};\n\nPanel.Body = PanelBody;\nPanel.Footer = PanelFooter;\nPanel.Header = PanelHeader;\n\nexport default Panel;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * Pill\n */\nfunction Pill(props) {\n const {\n children,\n className,\n theme,\n } = props;\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-pill', ...theme.split(' ').map((t) => `tyk-pill--${t}`)];\n\n if (className) {\n cssClasses = cssClasses.concat(className);\n }\n\n return cssClasses.join(' ');\n };\n\n return (\n
    \n {children}\n
    \n );\n}\n\nPill.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n /** Css classes that can be passed to the Pill element */\n className: PropTypes.string,\n /** Theme that can be applied to a Pill */\n theme: PropTypes.string,\n};\n\nPill.defaultProps = {\n theme: 'default',\n};\n\nexport default Pill;\n","import { useRef } from 'react';\n\n/**\n * RevealPanelService is a class that manages the resizing of a panel element.\n * It provides methods to set the panel's height, hide and show it, and attach\n * event listeners for resizing.\n */\nclass RevealPanelService {\n #state = null; // Private state for mouse interactions.\n\n #panel = null; // The panel element to be resized.\n\n #gutter = null; // The gutter element used for resizing.\n\n #wrapper = null; // The wrapper element that contains the panel and gutter.\n\n #onHeightChangeCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #onDragStartCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #onDragEndCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #dragStarted = false;\n\n /**\n * Sets a callback function to be executed when the panel is resized.\n * @param {function} callback - The callback function to be called on panel resize.\n */\n on(eventName, listener) {\n let list = null;\n if (eventName === 'onHeightChange') {\n list = this.#onHeightChangeCallbacks;\n } else if (eventName === 'onDragStart') {\n list = this.#onDragStartCallbacks;\n } else if (eventName === 'onDragEnd') {\n list = this.#onDragEndCallbacks;\n }\n\n if (list) {\n this.addListener(list, listener);\n }\n }\n\n off(eventName, listener) {\n let list = null;\n if (eventName === 'onHeightChange') {\n list = this.#onHeightChangeCallbacks;\n } else if (eventName === 'onDragStart') {\n list = this.#onDragStartCallbacks;\n } else if (eventName === 'onDragEnd') {\n list = this.#onDragEndCallbacks;\n }\n\n if (list) {\n this.removeListener(list, listener);\n }\n }\n\n /**\n * Sets the panel, gutter, and wrapper elements to be controlled by this class.\n * @param {HTMLElement} wrapper - The wrapper element containing the panel and gutter.\n * @param {HTMLElement} panel - The panel element to be resized.\n * @param {HTMLElement} gutter - The gutter element used for resizing.\n */\n setRefs(wrapper, panel, gutter) {\n if (this.#panel || this.#gutter || this.#wrapper) {\n this.unbindEvents();\n }\n this.#wrapper = wrapper;\n this.#panel = panel;\n this.#gutter = gutter;\n this.#state = null;\n this.bindEvents();\n }\n\n /**\n * Attaches event listeners for panel resizing.\n */\n bindEvents() {\n this.ensureRefs('bindEvents');\n this.#gutter.addEventListener('mousedown', this.onMouseDown.bind(this));\n document.addEventListener('mousemove', this.onMouseMove.bind(this));\n document.addEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n /**\n * Gets the current height of the panel.\n * @returns {number} - The height of the panel in pixels.\n */\n getHeight() {\n this.ensureRefs('getHeight');\n const size = this.#panel.getBoundingClientRect();\n return size.height;\n }\n\n /**\n * Handles the mouse down event, initiating the resizing process.\n * @param {MouseEvent} e - The mouse event object.\n */\n onMouseDown(e) {\n this.ensureRefs('onMouseDown');\n this.#state = {\n mouseDown: true,\n initialRect: this.#panel.getBoundingClientRect(),\n initialEvent: e,\n };\n }\n\n /**\n * Handles the mouse move event, adjusting the panel's height during resizing.\n * @param {MouseEvent} e - The mouse event object.\n */\n onMouseMove(e) {\n this.ensureRefs('onMouseMove');\n\n if (!this.#state) {\n return;\n }\n\n const isButtonDown = this.isPrimaryMouseButtonDown(e);\n if (!isButtonDown) {\n this.onMouseUp();\n return;\n }\n\n if (!this.#dragStarted) {\n this.#dragStarted = true;\n this.onDragStart.bind(this)();\n }\n\n const newY = this.#state.initialEvent.y - e.y;\n const finalHeight = Math.ceil(this.#state.initialRect.height + newY);\n this.setHeight(`${finalHeight}px`, 'mousemove');\n }\n\n // eslint-disable-next-line class-methods-use-this\n notifyListeners(list, value) {\n if (list && Array.isArray(list) && list.length) {\n list.forEach((fn) => {\n if (typeof fn === 'function') {\n fn(value);\n }\n });\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n addListener(list, listener) {\n if (list && Array.isArray(list) && typeof listener === 'function') {\n list.push(listener);\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n removeListener(list, listener) {\n if (list && Array.isArray(list) && typeof listener === 'function' && list.length) {\n const index = list.indexOf(listener);\n\n if (index > -1) {\n list.splice(index, 1);\n }\n }\n }\n\n onDragEnd() {\n if (this.#dragStarted) {\n this.notifyListeners(this.#onDragEndCallbacks, this.getHeight());\n }\n }\n\n onDragStart() {\n this.notifyListeners(this.#onDragStartCallbacks, this.getHeight());\n }\n\n // eslint-disable-next-line class-methods-use-this\n isPrimaryMouseButtonDown(e) {\n const flags = e.buttons !== undefined ? e.buttons : e.which;\n // eslint-disable-next-line no-bitwise\n const isDown = flags === 1;\n return isDown;\n }\n\n /**\n * Resets the state after the mouse up event, ending the resizing process.\n */\n onMouseUp() {\n this.#state = null;\n this.onDragEnd.bind(this)();\n this.#dragStarted = false;\n }\n\n /**\n * Sets the height of the panel.\n * @param {string} height - The new height value as a CSS string (e.g., \"100px\").\n */\n setHeight(height) {\n let heightVal = height;\n this.ensureRefs('setHeight');\n\n if (typeof heightVal === 'number') {\n heightVal += 'px';\n }\n\n this.#panel.style.height = heightVal;\n\n this.notifyListeners(this.#onHeightChangeCallbacks, this.getHeight());\n }\n\n /**\n * Ensures that the required elements (wrapper, panel, and gutter) are set.\n * Throws an error if they are missing.\n */\n ensureRefs(reason) {\n if (!this.#panel || !this.#gutter || !this.#wrapper) {\n throw new Error(\n `${reason}: Wrapper, panel, and gutter elements are required. Use setRefs method first.`,\n );\n }\n }\n\n /**\n * Checks if the panel is hidden.\n * @returns {boolean} - True if the panel is hidden; false otherwise.\n */\n isHidden() {\n this.ensureRefs('isHidden');\n return this.#wrapper.style.visibility === 'hidden';\n }\n\n /**\n * Hides the panel by setting its visibility to \"hidden\".\n */\n hide() {\n this.ensureRefs('hide');\n this.#wrapper.style.visibility = 'hidden';\n }\n\n /**\n * Shows the panel by setting its visibility to \"visible\".\n */\n show() {\n this.ensureRefs('show');\n this.#wrapper.style.visibility = 'visible';\n }\n\n /**\n * Unbinds the event listeners added for resizing.\n */\n unbindEvents() {\n this.#onHeightChangeCallbacks = [];\n this.#onDragStartCallbacks = [];\n this.#onDragEndCallbacks = [];\n this.#gutter.removeEventListener('mousedown', this.onMouseDown.bind(this));\n document.removeEventListener('mousemove', this.onMouseMove.bind(this));\n document.removeEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n deinit() {\n this.unbindEvents();\n }\n}\n\nexport const useRevealPanelService = () => {\n const revealPanelServiceRef = useRef(new RevealPanelService());\n return revealPanelServiceRef.current;\n};\n","import React, {\n useEffect,\n useRef,\n useImperativeHandle,\n forwardRef,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { createPortal } from 'react-dom';\nimport { useRevealPanelService } from './js/RevealPanelService';\n\nfunction RevealPanelHeaderLeft({ children }) {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <>{children};\n}\n\nRevealPanelHeaderLeft.propTypes = {\n children: PropTypes.instanceOf({}),\n};\n\nfunction RevealPanelHeaderRight({ children }) {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <>{children};\n}\n\nRevealPanelHeaderRight.propTypes = {\n children: PropTypes.instanceOf({}),\n};\n\nconst mergeClasses = (...classNames) => classNames.map((it) => (it || '').trim()).filter(Boolean).join(' ');\n\nfunction RevealPanel({\n children,\n height,\n onHeightChange = null,\n onDragStart = null,\n onDragEnd = null,\n style = null,\n parentSelector = null,\n contentStyle,\n contentClassName,\n gutterClassName,\n wrapperClassName,\n// eslint-disable-next-line consistent-return\n}, ref) {\n const panelRef = useRef(null);\n const gutterRef = useRef(null);\n const wrapperRef = useRef(null);\n\n const panelService = useRevealPanelService();\n\n useEffect(() => {\n if (!panelRef.current || !gutterRef.current || !wrapperRef.current) {\n return;\n }\n\n if (!panelService) {\n return;\n }\n\n panelService.setRefs(wrapperRef.current, panelRef.current, gutterRef.current);\n panelService.on('onHeightChange', onHeightChange);\n panelService.on('onDragStart', onDragStart);\n panelService.on('onDragEnd', onDragEnd);\n panelService.setHeight(height, 'initialize');\n\n // eslint-disable-next-line consistent-return\n return () => {\n panelService.unbindEvents();\n };\n }, []);\n\n useImperativeHandle(\n ref,\n () => {\n // bind this context\n const bind = (func) => func.bind(panelService);\n\n return {\n getHeight: bind(panelService.getHeight),\n setHeight: bind(panelService.setHeight),\n hide: bind(panelService.hide),\n show: bind(panelService.show),\n isHidden: bind(panelService.isHidden),\n deinit: bind(panelService.deinit),\n on: bind(panelService.on),\n off: bind(panelService.off),\n };\n },\n [],\n );\n\n let headerLeft = null;\n let headerRight = null;\n const contents = [];\n\n React.Children.forEach(children, (child) => {\n if (child && React.isValidElement(child)) {\n if (child.type === RevealPanelHeaderLeft) {\n headerLeft = child;\n } else if (child.type === RevealPanelHeaderRight) {\n headerRight = child;\n } else {\n contents.push(child);\n }\n }\n });\n\n const element = (\n
    \n
    \n
    \n\n
    {headerLeft}
    \n
    \n
    {headerRight}
    \n\n
    \n
    \n {contents}\n
    \n
    \n );\n\n if (parentSelector) {\n return createPortal(element, document.querySelector(parentSelector));\n }\n}\n\nRevealPanel.propTypes = {\n children: PropTypes.instanceOf({}),\n height: PropTypes.string,\n onHeightChange: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragEnd: PropTypes.func,\n parentSelector: PropTypes.string,\n style: PropTypes.instanceOf({}),\n contentStyle: PropTypes.instanceOf({}),\n contentClassName: PropTypes.string,\n gutterClassName: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\nconst TempRevealPanel = forwardRef(RevealPanel);\nTempRevealPanel.HeaderLeft = RevealPanelHeaderLeft;\nTempRevealPanel.HeaderRight = RevealPanelHeaderRight;\n\nexport default TempRevealPanel;\n","import { createContext } from 'react';\n\nexport const TabsContext = createContext();\n","import { createContext } from 'react';\n\nexport default createContext();\n","import React, { useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport TabContext from './TabContext';\nimport { usePrevious } from '../../../hooks';\n\nfunction TabContent(props) {\n const {\n addTab,\n hideTab,\n updateTab,\n showTab,\n children,\n selectedPath,\n tabData,\n tabsId,\n tabExists,\n path,\n rendered,\n hideTabContent,\n tabs,\n } = props;\n\n useEffect(() => {\n const tempTabData = { ...tabData };\n\n if (!tabExists(path)) {\n addTab(tempTabData, path);\n }\n }, [tabData, path]);\n\n const prevTabData = usePrevious(tabData);\n useEffect(() => {\n if (\n tabExists(path) && tabData?.title\n && (prevTabData?.title !== tabData?.title || prevTabData?.selected !== tabData.selected)\n ) {\n const tempTabData = { ...tabData };\n updateTab(tempTabData, path);\n }\n }, [tabData, path, prevTabData, tabs]);\n\n useEffect(() => {\n showTab(path);\n return () => hideTab(path);\n }, []);\n\n const shouldRender = useMemo(() => {\n if (!Object.keys(tabs).length) {\n return false;\n }\n\n if (hideTabContent || tabs[tabData.id].show === false) {\n return false;\n }\n\n if (!rendered) {\n return tabExists(path);\n }\n return selectedPath && selectedPath.indexOf(tabData.id) > -1;\n }, [hideTabContent, rendered, selectedPath, tabData, tabs]);\n\n const context = useMemo(() => ({ path, tabsId }), [path, tabsId]);\n\n if (!shouldRender) return null;\n return (\n
    -1 ? 'block' : 'none' }}>\n \n {children}\n \n
    \n );\n}\n\nTabContent.propTypes = {\n addTab: PropTypes.func,\n updateTab: PropTypes.func,\n hideTab: PropTypes.func,\n showTab: PropTypes.func,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n path: PropTypes.instanceOf(Array),\n hideTabContent: PropTypes.bool,\n rendered: PropTypes.bool,\n selectedPath: PropTypes.instanceOf(Array),\n tabExists: PropTypes.func,\n tabsId: PropTypes.string,\n tabData: PropTypes.instanceOf(Object),\n tabs: PropTypes.instanceOf(Object),\n};\n\nexport default TabContent;\n","import React, {\n useContext, useEffect, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { TabsContext } from '../tabs-context';\nimport TabContext from './TabContext';\nimport TabContent from './TabContent';\n\nfunction Tab(props) {\n const { id } = props;\n const tabsContext = useContext(TabsContext);\n const tabContext = useContext(TabContext);\n const {\n tabExists,\n selectedPath,\n addTab,\n updateTab,\n hideTab,\n showTab,\n rendered,\n hideTabContent,\n tabs,\n } = tabsContext;\n const {\n children,\n } = props;\n const [path, setPath] = useState('');\n\n useEffect(() => {\n let tempPath;\n if (tabContext && path) {\n if (tabContext.tabsId === tabsContext.id) {\n tempPath = tabContext.path.concat([id]);\n } else {\n tempPath = [id];\n }\n } else {\n tempPath = [id];\n }\n setPath(tempPath);\n }, [tabContext]);\n\n if (!path) {\n return null;\n }\n\n return (\n \n {children}\n \n );\n}\n\nTab.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n id: PropTypes.string,\n};\n\nTab.defaultProps = {};\n\nexport default Tab;\n","import React, {\n useEffect, useMemo, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport Tab from './js/Tab';\n\nimport Collapsible from '../Collapsible';\nimport Icon from '../Icon';\nimport { TabsContext } from './tabs-context';\n\nfunction Tabs(props) {\n const {\n children,\n className,\n id,\n onTabChange,\n type,\n hideTabContent,\n } = props;\n const [tabs, setTabs] = useState({});\n const [selectedPath, setSelectedPath] = useState([]);\n const [rendered, setRendered] = useState(false);\n const [initialPath, setInitialPath] = useState(null);\n\n useEffect(() => {\n setSelectedPath(initialPath);\n }, [initialPath]);\n\n const updateTabsList = (tabsState, path, tabData) => {\n let tempTabsState = { ...tabsState };\n const tempTabData = { ...tabData };\n const tempPath = path.slice(0);\n\n while (tempPath.length > 1) {\n tempTabsState = tempTabsState[tempPath.shift()];\n\n if (!tempTabsState) {\n tempTabsState = {};\n }\n }\n\n tempTabData.tempPath = tempPath;\n tempTabsState[tempPath.shift()] = tempTabData;\n\n return tempTabsState;\n };\n\n const toggleTab = (tabsState, path) => {\n let tempTabsState = { ...tabsState };\n const tempPath = path.slice(0);\n\n while (tempPath.length > 1) {\n tempTabsState = tempTabsState[tempPath.shift()];\n }\n\n const key = tempPath.shift();\n if (tempTabsState[key].collapsed === undefined) {\n tempTabsState[key].collapsed = true;\n } else {\n tempTabsState[key].collapsed = !tempTabsState[key].collapsed;\n }\n\n return tempTabsState;\n };\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-tabs'];\n\n cssClasses.push(`tyk-tabs--${type || 'default'}`);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n };\n\n const setCurrentSelectedPath = (path, tabData) => {\n const tempPath = path.slice(0);\n let tempRendered = true;\n\n if (tabData.collapsible) {\n tempPath.push(Object.keys(tabData.tabs)[0]);\n tempRendered = false;\n }\n\n setTabs((prevTabs) => {\n let tempTabs = { ...prevTabs };\n\n tempTabs = toggleTab(tempTabs, path);\n\n return tempTabs;\n });\n setSelectedPath(tempPath);\n setRendered(tempRendered);\n\n if (onTabChange) {\n onTabChange(tabData);\n }\n };\n\n const getTabCssClass = (tabId) => {\n const cssClasses = [];\n\n if (selectedPath && selectedPath.indexOf(tabId) > -1) {\n cssClasses.push('active');\n }\n\n return cssClasses.join(' ');\n };\n\n const genTabs = (currentTabs, path) => {\n if (!currentTabs) {\n return null;\n }\n\n return (\n
      \n {\n Object.keys(currentTabs).map((tabId, index) => {\n const tempPath = path ? path.concat([currentTabs[tabId].id]) : [currentTabs[tabId].id];\n const iconType = currentTabs[tabId].collapsed ? 'chevron-up' : 'chevron-down';\n\n if (currentTabs[tabId].show === false) {\n return null;\n }\n\n return (\n
    • \n \n { currentTabs[tabId].title }\n {\n currentTabs[tabId].collapsible\n ? \n : null\n }\n \n {\n currentTabs[tabId].collapsible\n ? (\n \n {genTabs(currentTabs[tabId].tabs, tempPath)}\n \n )\n : genTabs(currentTabs[tabId].tabs, tempPath)\n }\n
    • \n );\n })\n }\n
    \n );\n };\n\n const addTab = (tabData, path) => {\n setTabs((prevTabs) => updateTabsList({ ...prevTabs }, path, tabData));\n\n if (tabData.selected) {\n setInitialPath(path);\n }\n };\n\n const updateTab = (tabData, path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n tempTabs[tabData.id] = tabData;\n return tempTabs;\n });\n\n if (tabData.selected) {\n setCurrentSelectedPath(path, tabData);\n }\n };\n\n const hideTab = (path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n tempTabs[path].show = false;\n\n return tempTabs;\n });\n };\n\n const showTab = (path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n\n tempTabs[path].show = true;\n\n return tempTabs;\n });\n };\n\n const tabExists = (path) => {\n let tempTabs = { ...tabs };\n const tempPath = path.slice(0);\n while (tempPath.length > 1) {\n tempTabs = tempTabs[tempPath.shift()];\n }\n\n const key = tempPath.shift();\n\n return Boolean(tempTabs?.[key]);\n };\n\n const context = useMemo(() => ({\n id,\n addTab,\n hideTab,\n updateTab,\n showTab,\n tabExists,\n selectedPath,\n rendered,\n hideTabContent,\n tabs,\n }), [\n id,\n addTab,\n hideTab,\n updateTab,\n showTab,\n tabExists,\n selectedPath,\n rendered,\n hideTabContent,\n tabs,\n ]);\n\n return (\n
    \n {genTabs(tabs)}\n \n {\n (typeof children === 'function')\n ? children({\n hideTab,\n showTab,\n })\n : children\n }\n \n
    \n );\n}\n\nTabs.propTypes = {\n className: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n hideTabContent: PropTypes.bool,\n id: PropTypes.string,\n onTabChange: PropTypes.func,\n type: PropTypes.string,\n};\n\nTabs.Tab = Tab;\n\nexport default Tabs;\n","import React, {\n useCallback, useEffect, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport FloatingContainer from '../FloatingContainer';\nimport Icon from '../Icon';\n\nfunction Tooltip({\n render,\n className,\n children,\n position = 'auto',\n style,\n icon = false,\n closable,\n isOpened = false,\n additionalClickParents = [],\n ...props\n}) {\n const [isActive, setIsActive] = useState(false);\n const wrapperRef = useRef(null);\n const tooltipRef = useRef(null);\n const activeEvents = closable\n ? {\n onClick: () => setIsActive(true),\n }\n : {\n onMouseEnter: () => setIsActive(true),\n onMouseLeave: () => setIsActive(false),\n onFocus: () => setIsActive(true),\n onBlur: () => setIsActive(false),\n };\n\n const handleDocumentClick = useCallback((e) => {\n if ([...additionalClickParents, tooltipRef.current].some((p) => p?.contains?.(e.target))) {\n return;\n }\n setIsActive(false);\n }, [additionalClickParents]);\n\n useEffect(() => {\n document.addEventListener('click', handleDocumentClick, true);\n return () => document.removeEventListener('click', handleDocumentClick, true);\n }, [handleDocumentClick]);\n\n useEffect(() => {\n setIsActive(isOpened);\n }, [isOpened]);\n\n const classes = ['tyk-tooltip', className].filter(Boolean).join(' ');\n return (\n \n {children}\n {isActive && (\n \n
    \n {icon && (\n icon === true ? (\n \n ) : (\n icon\n )\n )}\n
    \n {render}\n
    \n {closable && (\n {\n e.stopPropagation();\n setIsActive(false);\n }}\n />\n )}\n
    \n \n )}\n
    \n );\n}\n\nTooltip.propTypes = {\n children: PropTypes.node.isRequired,\n /** custom styles to apply on hovered element */\n style: PropTypes.instanceOf(Object),\n /** describes where the tooltip should be displayed in relation\n * whith the hovered element: top, bottom, left, right\n */\n position: PropTypes.string,\n /** content of the tooltip, can be a string or a React node element */\n render: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.string,\n ]),\n /** additional tooltip classes */\n className: PropTypes.string,\n /** if `true` displays the \"question mark\" icon;\n * optionally you can pass a different icon\n */\n icon: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.node,\n ]),\n /** if `true` the tooltip is activated on click and an \"x\" is displayed to close it;\n * if `false` the tooltip is activated on hover and it closes when no longer hovering\n */\n closable: PropTypes.bool,\n /** handles the `isActive` state of the tooltip from outside */\n isOpened: PropTypes.bool,\n /** Additional dom elements to check if the document click was inside of them.\n * Useful when you want to open the tooltip after an interaction\n * with an element not inside the tooltip root.\n */\n additionalClickParents: PropTypes.instanceOf(Array),\n};\n\nexport default Tooltip;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Tooltip from '../Tooltip';\n/**\n * TextEllipsis component helps you to hide a part of a text,\n * but displaying it when it's being hovered.\n * The entire text is displayed with the help of Tooltip component\n */\n\nfunction TextEllipsis({ text, limit, position }) {\n return (\n text.length > limit\n ? (\n \n {text.substring(0, limit)}\n ...\n \n )\n : text\n );\n}\n\nTextEllipsis.propTypes = {\n /** Text to be shrinked by TextEllipsis */\n text: PropTypes.string,\n /** Number of characters that TextEllipsis would leave visible */\n limit: PropTypes.number,\n /** tooltip position */\n position: PropTypes.string,\n};\n\nexport default TextEllipsis;\n","import React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction shouldShowPage(currentNr, pageNr, totalNrOfPages) {\n const basePageNr = 5;\n const minimumNrOfPages = 10;\n\n if (totalNrOfPages < minimumNrOfPages) {\n return true;\n }\n\n if (\n pageNr < basePageNr\n && currentNr < basePageNr\n ) {\n return true;\n }\n\n if (\n pageNr > totalNrOfPages - basePageNr\n && currentNr > totalNrOfPages - basePageNr\n ) {\n return true;\n }\n\n if (\n currentNr >= pageNr - 2\n && currentNr <= pageNr + 2\n ) {\n return true;\n }\n\n return [0, 1, totalNrOfPages - 1, totalNrOfPages].includes(currentNr);\n}\n\nfunction getPagesArr(nrOfPages, selectedPage) {\n let i;\n const pagesArr = [];\n\n for (i = 0; i <= nrOfPages; i += 1) {\n if (shouldShowPage(i, selectedPage, nrOfPages)) {\n if (i > pagesArr.at(-1)) {\n pagesArr.push(`...-${i}`);\n }\n pagesArr.push(i + 1);\n }\n }\n\n return pagesArr;\n}\n\nfunction Pagination(props) {\n const {\n value = 0,\n totalNrOfPages,\n onChange,\n } = props;\n\n const [selectedPage, setSelectedPage] = useState(value);\n\n const pagesArray = useMemo(\n () => getPagesArr(totalNrOfPages, selectedPage),\n [selectedPage, totalNrOfPages],\n );\n\n function goToPage(pageNr) {\n setSelectedPage(pageNr);\n if (onChange) onChange(pageNr);\n }\n\n return (\n totalNrOfPages\n ? (\n
      \n {selectedPage > 0 && totalNrOfPages > 5 && (\n
    • \n \n
    • \n )}\n {\n pagesArray.map((pageNr) => (\n
    • \n {\n String(pageNr).startsWith('...')\n ? ...\n : \n }\n
    • \n ))\n }\n {selectedPage < totalNrOfPages && totalNrOfPages > 5 && (\n
    • \n \n
    • \n )}\n
    \n )\n : null\n );\n}\n\nPagination.propTypes = {\n value: PropTypes.number,\n totalNrOfPages: PropTypes.number,\n onChange: PropTypes.func,\n};\n\nexport default Pagination;\n","import { createContext } from 'react';\n\nexport const tableContext = createContext();\n","import React, { useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { tableContext } from '../tableContext';\nimport Icon from '../../Icon';\n\nexport function HeaderCell({ column }) {\n const { sortable } = column;\n const [sortOrder, setSortOrder] = useState(sortable?.default || 'ASC');\n const { state, sendMessage } = useContext(tableContext);\n return (\n {\n sendMessage('sort', { column, sortOrder });\n setSortOrder(sortOrder === 'ASC' ? 'DESC' : 'ASC');\n } : null}\n className={state.maxHeight ? 'fixed-header' : ''}\n >\n {column.name}\n {column.sortable && (\n \n \n \n )}\n \n );\n}\n\nHeaderCell.propTypes = {\n column: PropTypes.instanceOf(Object),\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { HeaderCell } from './header-cell';\nimport { tableContext } from '../tableContext';\n\nexport function Header({ allRowsSelected }) {\n const { state, sendMessage } = useContext(tableContext);\n const { columns, selectable } = state;\n\n const generateHeaders = () => columns.map((column) => (\n \n ));\n\n const generateSelectable = () => {\n const Component = selectable.type;\n return (\n \n {selectable?.allowSelectAll ? (\n
    \n {\n const isCheckbox = v?.target?.tagName.toLowerCase() === 'input' && v?.target?.type.toLowerCase() === 'checkbox';\n sendMessage('header.selectAll.change', isCheckbox ? v.target.checked : Boolean(v));\n }}\n >\n {selectable.values?.value}\n \n
    \n ) : (\n selectable.name || 'Select'\n )}\n \n );\n };\n\n return (\n \n \n {selectable?.position === 'LEFT' && generateSelectable()}\n {generateHeaders()}\n {selectable?.position === 'RIGHT' && generateSelectable()}\n \n \n );\n}\n\nHeader.propTypes = {\n allRowsSelected: PropTypes.bool,\n};\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * - Checkboxes are used when a user needs to select one or more values from a series of options.\n * - They can be also be used as a binary toggle but consider radio instead.\n * - Can be used with Formik respectively (FormikCheckbox)\n */\nclass Checkbox extends Component {\n getCssClasses() {\n const {\n inline, disabled, readOnly, theme = '', wrapperClassName = '',\n } = this.props;\n\n const cssClasses = [wrapperClassName];\n\n cssClasses.push('tyk-checkbox');\n\n if (inline) {\n cssClasses.push('tyk-checkbox--inline');\n }\n\n if (theme.trim()) {\n cssClasses.push(...theme.split(' ').map((t) => `tyk-checkbox--theme-${t}`));\n }\n\n if (disabled || readOnly) {\n cssClasses.push('tyk-checkbox--is-disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n displayError() {\n const { error } = this.props;\n if (!error) return null;\n\n return (\n

    \n {error}\n

    \n );\n }\n\n displayNote() {\n const { note } = this.props;\n if (!note) return null;\n\n return (\n

    \n {note}\n

    \n );\n }\n\n render() {\n const {\n input, value, label, ...rest\n } = this.props;\n return (\n \n
    \n \n {this.displayNote()}\n {this.displayError()}\n
    \n \n );\n }\n}\n\nCheckbox.propTypes = {\n /** Disable a checkbox */\n disabled: PropTypes.bool,\n /** Readonly prop behaves the same as disable on checkboxes */\n readOnly: PropTypes.bool,\n /** Align checkbox with in same line with other elements */\n inline: PropTypes.bool,\n /** Set a theme for checkbox */\n theme: PropTypes.string,\n /** Set an error state for checkbox if boolean will show just icon without message */\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Adds additional information under the checkbox element */\n note: PropTypes.string,\n input: PropTypes.instanceOf(Object),\n /** Adds a label to checkbox */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Set a name for checkbox */\n name: PropTypes.string,\n /** Set initial value for checkbox */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Make checkbox checked by default */\n checked: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Callback function executed on change of checkbox */\n onChange: PropTypes.func,\n /** CSS classes added to the wrapper of the component */\n wrapperClassName: PropTypes.string,\n};\n\nexport default Checkbox;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nexport function Cell({ col, row }) {\n if (!row.values[col.id]) {\n return ; // eslint-disable-line jsx-a11y/control-has-associated-label\n }\n\n if (col.type === 'string') {\n return (\n \n {row.values[col.id]?.value}\n \n );\n }\n const Component = col.type;\n return (\n \n \n {row.values[col.id].children ? row.values[col.id].children : null}\n
    \n \n );\n}\n\nCell.propTypes = {\n col: PropTypes.instanceOf(Object),\n row: PropTypes.instanceOf(Object),\n index: PropTypes.number,\n};\n","import React, { useCallback, useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport Checkbox from '../../../form/components/Checkbox';\nimport { Cell } from './cell';\nimport { tableContext } from '../tableContext';\n\nexport function Row({ row, index }) {\n const { state, sendMessage } = useContext(tableContext);\n const { columns, selectable } = state;\n\n const SelectableCheckbox = useCallback(() => (\n // eslint-disable-next-line jsx-a11y/control-has-associated-label\n \n sendMessage('row.selected', { index, selected: v.target.checked })}\n />\n \n ), [row.selected, index]);\n\n return (\n \n {selectable && selectable.position === 'LEFT' && SelectableCheckbox()}\n {columns.map((col) => (\n \n ))}\n {selectable && selectable.position === 'RIGHT' && SelectableCheckbox()}\n \n );\n}\n\nRow.propTypes = {\n row: PropTypes.instanceOf(Object),\n index: PropTypes.number,\n};\n","import React, { useContext } from 'react';\nimport { tableContext } from '../tableContext';\nimport { Row } from './row';\n\nexport function Body() {\n const { state } = useContext(tableContext);\n const { rows } = state;\n\n return (\n \n {\n // eslint-disable-next-line react/no-array-index-key\n rows.map((row, i) => )\n }\n \n );\n}\n","import React, {\n useCallback, useEffect, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport Message from '../Message';\nimport Pagination from '../../form/components/Pagination';\nimport Loader from '../Loader';\nimport InfiniteScroller from '../InfiniteScroller';\nimport { Header } from './js/header';\nimport { Body } from './js/body';\nimport { tableContext } from './tableContext';\n\n/**\n * This is tyk's table component used to render a data in a tabular view.\n * See the example configuration object below to understand how to hydrate the table component\n */\n\nfunction Table({\n value, onChange, noDataMessage, loading, infiniteScrolling,\n}) {\n const [state, setState] = useState(null);\n const [onChangeMsg, setOnChangeMsg] = useState('api');\n const itemsListRef = useRef(null);\n const sortRows = useCallback((col, sortOrder) => {\n setState((prevState) => ({\n ...prevState,\n sort: {\n order: sortOrder,\n col,\n },\n }));\n }, []);\n\n const selectAllRows = useCallback((selected) => {\n setState((prevState) => ({\n ...prevState,\n rows: prevState.rows.map((row) => ({ ...row, selected })),\n }));\n }, []);\n\n const selectRow = useCallback(({ index, selected }) => {\n setState((prevState) => ({\n ...prevState,\n rows: [\n ...prevState.rows.slice(0, index),\n { ...prevState.rows[index], selected },\n ...prevState.rows.slice(index + 1),\n ],\n }));\n }, []);\n\n const setPagination = useCallback((data) => {\n setState((prevState) => ({\n ...prevState,\n pagination: {\n ...prevState.pagination,\n current: data + 1,\n },\n }));\n }, []);\n\n const api = {\n getState: () => state,\n setState: (newState) => setState(newState),\n };\n\n const sendMessage = useCallback((message, data) => {\n setOnChangeMsg(message);\n if (message === 'sort') {\n sortRows(data.column.id, data.sortOrder);\n }\n\n if (message === 'header.selectAll.change') {\n selectAllRows(data);\n }\n\n if (message === 'row.selected') {\n selectRow(data);\n }\n\n if (message === 'pagination.change') {\n setPagination(data);\n }\n }, [sortRows, selectAllRows, selectRow, setPagination]);\n\n const context = useMemo(() => ({ state, sendMessage }), [state, sendMessage]);\n\n useEffect(() => setState(value), [value]);\n useEffect(() => {\n if (onChange) {\n onChange(onChangeMsg, state, api);\n }\n setOnChangeMsg('api');\n }, [state]);\n\n if (!state) {\n return ;\n }\n\n if (state.rows <= 0) {\n return {noDataMessage || 'No Data Available'};\n }\n\n const getTable = () => (\n \n
    selected)} />\n \n
    \n );\n\n return (\n \n
    \n {\n loading && \n }\n {\n infiniteScrolling && state.pagination\n ? (\n state.pagination.current}\n loadMore={(num) => sendMessage('pagination.change', num)}\n pageNumber={state.pagination.current - 1}\n initialLoad={false}\n >\n { getTable() }\n \n )\n : getTable()\n }\n
    \n {state.pagination && !infiniteScrolling && (\n
    \n sendMessage('pagination.change', num)}\n />\n
    \n )}\n
    \n );\n}\n\nTable.propTypes = {\n /** Configuration object used to render the component */\n value: PropTypes.shape({\n /** Configuration for table columns */\n columns: PropTypes.arrayOf(PropTypes.shape({\n /** Unique id of the column */\n id: PropTypes.string.isRequired,\n /** Name of the column */\n name: PropTypes.string,\n /** Type of column, String by default */\n type: PropTypes.oneOfType([\n /** Just renders cell data of type strings */\n PropTypes.string,\n /** Render cell of elements (eg. Input / Button) */\n PropTypes.element,\n /** Render a custom function/component */\n PropTypes.func,\n ]),\n sortable: PropTypes.oneOfType([\n /** Make Column sortable */\n PropTypes.bool,\n /** Configure sorting behaviour */\n PropTypes.shape({\n /** Set default sorting direction ASC / DESC */\n default: PropTypes.string,\n }),\n ]),\n })),\n /** Configuration for table rows */\n rows: PropTypes.arrayOf(PropTypes.shape({})),\n /** Configuration to make table rows selectable */\n selectable: PropTypes.shape({}),\n /** Renders pagination for table if the object is missing / empty no pagination is rendered. */\n pagination: PropTypes.shape({}),\n /** Sets maximum height for table container. */\n maxHeight: PropTypes.string,\n /** Styling for the table container. */\n styling: PropTypes.shape({\n /** It's recommended to add styles to a class and pass the class in this object */\n className: PropTypes.string,\n }),\n }).isRequired,\n /** Callback executed with message and value when there are changes on table */\n onChange: PropTypes.func,\n /** Renders a component with the given message when `config.rows` is empty */\n noDataMessage: PropTypes.string,\n /** Show placeholder loader */\n loading: PropTypes.bool,\n /** Adds infinite scroller on page and calls `onChange` with `pagination.change` message */\n infiniteScrolling: PropTypes.bool,\n};\n\nTable.defaultProps = {\n loading: false,\n infiniteScrolling: false,\n noDataMessage: 'No Data Available',\n onChange: null,\n};\n\nexport default Table;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Column({\n children,\n align,\n className,\n offset,\n size,\n ...rest\n}) {\n const classes = [\n 'tyk-col',\n className,\n align && `tyk-col--align-${align}`,\n ...size.split(' ').map((cSize) => `tyk-col--${cSize}`),\n ...(offset ? offset.split(' ') : []).map((cOffset) => `tyk-col--offset-${cOffset}`),\n ].filter(Boolean).join(' ');\n\n return (\n
    \n { children }\n
    \n );\n}\n\nColumn.propTypes = {\n /**\n * This property describes how the column element will be aligned vertically\n * within a Row: bottom, center, top\n */\n align: PropTypes.string,\n /** Css classes that can be passed to the column element */\n className: PropTypes.string,\n /**\n * Specifies the size of the column within a Row (values must be between 1 - 12)\n */\n size: PropTypes.string.isRequired,\n /**\n * Specifies the left gap a column can have within a Row (values must be between 1 - 12)\n */\n offset: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n ]),\n};\n\nexport default Column;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/** Row component which must be always present as a wrapper for Columns */\nfunction Row({\n className,\n nogutters,\n children,\n ...rest\n}) {\n const classes = [\n 'tyk-row',\n className,\n nogutters && 'no-gutters',\n nogutters && 'tyk-row--gutterless',\n ].filter(Boolean).join(' ');\n\n return (\n
    \n { children }\n
    \n );\n}\n\nRow.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n /** Css classes that can be passed to the Row element */\n className: PropTypes.string,\n /** Removes all the spaces between column */\n nogutters: PropTypes.bool,\n};\n\nexport default Row;\n","import { createContext } from 'react';\n\nexport const DropdownContext = createContext();\n","import React, { cloneElement, useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { DropdownContext } from '../dropdown-context';\nimport Icon from '../../../../components/Icon';\n\nfunction DropdownItem(props) {\n const {\n customdropdownitem,\n children,\n eventKey,\n href,\n target,\n title,\n onClick,\n } = props;\n const dropdownItemCLick = useCallback((dropdownContext, itemProps) => {\n dropdownContext.onSelectItem(eventKey, itemProps);\n\n if (onClick) onClick(eventKey);\n }, []);\n\n return (\n \n {\n (dropdownContext) => (\n dropdownItemCLick(dropdownContext, props)}\n onKeyUp={() => {}}\n >\n {\n customdropdownitem\n ? cloneElement(customdropdownitem, {})\n : (\n \n {\n eventKey\n && dropdownContext.selectedItem === eventKey\n && dropdownContext.showCheckmark\n ? \n : null\n }\n \n {title || children}\n \n \n )\n }\n \n )\n }\n \n );\n}\n\nDropdownItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n customdropdownitem: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n ]),\n eventKey: PropTypes.string,\n href: PropTypes.string,\n target: PropTypes.string,\n onClick: PropTypes.func,\n title: PropTypes.string,\n};\n\nexport default DropdownItem;\n","import React, {\n Component, createRef,\n} from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport DropdownItem from './js/DropdownItem';\nimport Button from '../../../components/Button';\nimport { DropdownContext } from './dropdown-context';\n\nclass Dropdown extends Component {\n static isElemInRightView(el, dropdownWidth) {\n const windowWidth = window.innerWidth;\n const offset = el.getBoundingClientRect();\n const elemRight = offset.left + dropdownWidth;\n\n return elemRight <= windowWidth;\n }\n\n static isElemInBottomView(el, dropdownHeight) {\n const windowHeight = window.innerHeight;\n const offset = el.getBoundingClientRect();\n const elHeight = el.clientHeight;\n const elemBottom = offset.top + elHeight + dropdownHeight;\n\n return elemBottom <= windowHeight;\n }\n\n constructor(props) {\n super(props);\n\n const {\n selectedItem,\n open,\n } = this.props;\n\n this.state = {\n opened: open,\n selectedItem: selectedItem || null,\n };\n\n this.dropdownRef = createRef();\n this.dropdownListRef = createRef();\n this.dropdownButtonRef = createRef();\n this.onSelectItem = this.onSelectItem.bind(this);\n this.toggleDropdown = this.toggleDropdown.bind(this);\n this.handleClickOutside = this.handleClickOutside.bind(this);\n }\n\n componentDidMount() {\n document.addEventListener('mousedown', this.handleClickOutside);\n\n if (this.dropdownListRef.current) {\n this.getStyles();\n }\n }\n\n componentDidUpdate(prevProps) {\n const {\n open,\n } = this.props;\n const {\n opened,\n } = this.state;\n\n if (this.dropdownListRef.current) {\n this.getStyles();\n }\n\n if (\n !prevProps.open\n && open === true\n && !opened\n ) {\n this.toggleDropdown();\n }\n\n if (\n prevProps.open\n && open === false\n && opened\n ) {\n this.closeDropdown();\n }\n }\n\n componentWillUnmount() {\n document.removeEventListener('mousedown', this.handleClickOutside);\n }\n\n handleClickOutside(event) {\n if (\n this.dropdownListRef.current && !this.dropdownListRef.current.contains(event.target)\n && this.dropdownRef.current && !this.dropdownRef.current.contains(event.target)\n ) {\n this.closeDropdown();\n }\n }\n\n onSelectItem(itemId, itemProps) {\n const { closeOnSelect, onSelect } = this.props;\n const changes = {\n selectedItem: itemId,\n selectedItemProps: itemProps,\n };\n\n if (closeOnSelect) {\n changes.opened = false;\n }\n\n this.setState(changes);\n\n if (onSelect && typeof onSelect === 'function') {\n onSelect(itemId);\n }\n }\n\n getStyles() {\n const {\n display,\n position,\n offset,\n } = this.props;\n\n const dropdownEl = this.dropdownListRef.current;\n\n if (offset) {\n dropdownEl.style.top = `${offset.top}`;\n dropdownEl.style.left = `${offset.left}`;\n return;\n }\n\n const scrollTop = Math.max(\n document.documentElement.scrollTop,\n document.body.scrollTop,\n window.scrollY,\n );\n const el = this.dropdownRef.current;\n const elHeight = el.clientHeight;\n const dropdownHeight = dropdownEl ? dropdownEl.clientHeight : 0;\n const dropdownWidth = dropdownEl ? dropdownEl.clientWidth : 0;\n const offsetPosition = el.getBoundingClientRect();\n const { left, top } = offsetPosition;\n let customTop = 0;\n let customLeft = left;\n\n // calculate top position, depending on the element position on the page\n if (Dropdown.isElemInBottomView(el, dropdownHeight)) {\n customTop = top + scrollTop + elHeight;\n } else {\n customTop = top + scrollTop - dropdownHeight - 5;\n }\n\n if (!Dropdown.isElemInRightView(el, dropdownWidth)) {\n customLeft = left + el.clientWidth - dropdownWidth;\n }\n\n if (position !== 'relative') {\n dropdownEl.style.top = `${customTop}px`;\n if (display !== 'block') {\n dropdownEl.style.left = `${customLeft}px`;\n }\n }\n if (display !== 'block') {\n dropdownEl.style.minWidth = `${this.dropdownButtonRef.current.clientWidth}px`;\n }\n }\n\n getWrapperCssClasses() {\n const {\n btnGroup,\n btnGroupSize,\n className,\n btnTheme,\n wrapperClassName = '',\n } = this.props;\n let cssClasses = [wrapperClassName, 'tyk-dropdown'];\n\n cssClasses.push(`theme-${btnTheme || 'default'}`);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n if (btnGroup) {\n cssClasses.push('tyk-button-group');\n cssClasses.push(btnGroupSize ? `tyk-button-group--${btnGroupSize}` : 'tyk-button-group--md');\n }\n\n return cssClasses.join(' ');\n }\n\n getCssClasses() {\n const {\n opened,\n } = this.state;\n const {\n hasCustomContent,\n display,\n listclassnames,\n position,\n maxHeight,\n } = this.props;\n let cssClasses = ['tyk-dropdown-menu', 'tyk-dropdown'];\n\n if (maxHeight) {\n cssClasses.push('tyk-dropdown--scrollable');\n }\n\n if (opened) {\n cssClasses.push('opened');\n }\n\n if (listclassnames) {\n cssClasses = cssClasses.concat(listclassnames.split(' '));\n }\n\n if (display) {\n cssClasses.push('tyk-dropdown--block');\n }\n\n if (hasCustomContent) {\n cssClasses.push('tyk-dropdown--custom');\n }\n\n if (position === 'relative') {\n cssClasses.push('tyk-dropdown--relative');\n }\n\n return cssClasses.join(' ');\n }\n\n getBtnTitle() {\n const { btnTitle, stopButtonTextChange } = this.props;\n const { selectedItemProps } = this.state;\n\n if (!stopButtonTextChange && selectedItemProps?.title) {\n return selectedItemProps.title;\n }\n\n return btnTitle;\n }\n\n closeDropdown() {\n const { onClose } = this.props;\n\n this.setState({\n opened: false,\n }, () => {\n if (onClose) {\n onClose();\n }\n });\n }\n\n toggleDropdown() {\n const {\n opened,\n } = this.state;\n if (opened) {\n this.closeDropdown();\n\n return;\n }\n\n this.setState({\n opened: true,\n });\n }\n\n render() {\n const {\n appendTo,\n btnClassName,\n btnSize,\n customBtnTitle,\n hasCustomContent,\n btnTheme,\n children,\n label,\n showDropdownIcon,\n showTriggerButton,\n showCheckmark,\n disabled = false,\n maxHeight,\n } = this.props;\n const {\n selectedItem,\n opened,\n } = this.state;\n const DropdownWrapperTag = hasCustomContent ? 'div' : 'ul';\n return (\n \n {\n label\n ? (\n \n )\n : null\n }\n {\n showTriggerButton\n ? (\n \n { customBtnTitle || this.getBtnTitle() }\n \n )\n : null\n }\n {\n opened\n ? ReactDOM.createPortal(\n \n {\n opened\n ? (\n \n {\n (typeof children === 'function')\n ? children({\n closeDropdown: this.closeDropdown.bind(this),\n })\n : children\n }\n \n )\n : null\n }\n ,\n document.querySelector(appendTo || 'body'),\n )\n : null\n }\n \n );\n }\n}\n\nDropdown.propTypes = {\n appendTo: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n PropTypes.func,\n ]),\n closeOnSelect: PropTypes.bool,\n btnClassName: PropTypes.string,\n btnSize: PropTypes.string,\n btnGroupSize: PropTypes.string,\n btnTheme: PropTypes.string,\n btnTitle: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n customBtnTitle: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n btnGroup: PropTypes.bool,\n className: PropTypes.string,\n display: PropTypes.string,\n disabled: PropTypes.bool,\n hasCustomContent: PropTypes.bool,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n listclassnames: PropTypes.string,\n onClose: PropTypes.func,\n onSelect: PropTypes.func,\n open: PropTypes.bool,\n offset: PropTypes.instanceOf(Object),\n position: PropTypes.string,\n selectedItem: PropTypes.string,\n showDropdownIcon: PropTypes.bool,\n stopButtonTextChange: PropTypes.bool,\n showTriggerButton: PropTypes.bool,\n showCheckmark: PropTypes.bool,\n maxHeight: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\n\nDropdown.defaultProps = {\n closeOnSelect: false,\n showDropdownIcon: true,\n showTriggerButton: true,\n showCheckmark: true,\n open: false,\n};\n\nDropdown.Item = DropdownItem;\n\nexport default Dropdown;\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../../../components/Button';\nimport ButtonGroup from '../../../components/ButtonGroup';\n\nfunction DropdownTrigger({\n title,\n theme = 'primary',\n splitTrigger,\n toggle,\n onTriggerClick,\n value,\n}, ref) {\n return (\n !splitTrigger ? (\n \n {title}\n \n ) : (\n \n onTriggerClick(value) }}\n >\n {title}\n \n \n \n )\n );\n}\n\nDropdownTrigger.propTypes = {\n title: PropTypes.string,\n theme: PropTypes.string,\n splitTrigger: PropTypes.bool,\n toggle: PropTypes.func,\n dropdownRef: PropTypes.shape({\n current: PropTypes.instanceOf(Element),\n }).isRequired,\n onTriggerClick: PropTypes.func,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n};\n\nexport default forwardRef(DropdownTrigger);\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport FloatingContainer from '../../../components/FloatingContainer';\nimport List from '../../../components/List';\n\nfunction DropdownListWrapper({\n children,\n element,\n maxWidth,\n}, ref) {\n return (\n \n \n { children }\n \n \n );\n}\n\nDropdownListWrapper.propTypes = {\n element: PropTypes.shape({\n current: PropTypes.instanceOf(Element),\n }),\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n maxWidth: PropTypes.string,\n};\n\nexport default forwardRef(DropdownListWrapper);\n","import { createContext, useContext } from 'react';\n\nexport const DropdownContext = createContext();\n\nfunction useDropdowContext() {\n return useContext(DropdownContext);\n}\n\nexport default useDropdowContext;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport List from '../../../components/List';\nimport useDropdowContext from './useDrodpownContext';\n\nfunction DropdownItem({\n children,\n value,\n}) {\n const { onChange, value: dropdownValue } = useDropdowContext();\n return (\n \n onChange(value) }}\n >\n { children }\n \n \n );\n}\n\nDropdownItem.propTypes = {\n children: PropTypes.node,\n // eslint-disable-next-line\n value: PropTypes.any,\n};\n\nexport default DropdownItem;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport useDropdown from './useDropdown';\nimport DropdownTrigger from './DropdownTrigger';\nimport DropdownListWrapper from './DropdownListWrapper';\nimport DropdownItem from './DropdowItem';\nimport { DropdownContext } from './useDrodpownContext';\n\nfunction Dropdown2({\n children,\n title,\n theme,\n splitTrigger,\n onChange,\n value,\n setSelectedValueAsTitle,\n maxWidth,\n onTriggerClick,\n}) {\n const {\n isOpen,\n toggle,\n dropdownRef,\n dropdownListRef,\n } = useDropdown({\n splitTrigger,\n });\n\n const contextValue = useMemo(() => ({\n onChange,\n value,\n }), [onChange, value]);\n\n return (\n \n \n {isOpen && (\n \n { children }\n \n )}\n \n );\n}\n\nDropdown2.propTypes = {\n /** Title of the dropdown. It is being displayed in the Drodpown trigger */\n title: PropTypes.string,\n /** Theme of the dropdown trigger */\n theme: PropTypes.string,\n children: PropTypes.node,\n /** If true, the dropdown trigger will be split into two buttons.\n * one with the dropdown title and one for the arrow */\n splitTrigger: PropTypes.bool,\n /** Callback function called when a dropdown item is selected */\n onChange: PropTypes.func,\n /** Value of the selected dropdown item */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n /** If true, the selected value will be displayed in the dropdown trigger */\n setSelectedValueAsTitle: PropTypes.bool,\n /** sets the maximum width of the dropdown list menu */\n maxWidth: PropTypes.string,\n /** this function is being called when splitTrigger is true,\n * and receives as parameter the current value of the dropdown */\n onTriggerClick: PropTypes.func,\n};\n\nDropdown2.Item = DropdownItem;\n\nexport default Dropdown2;\n","import {\n useState, useRef, useCallback, useEffect,\n} from 'react';\n\nconst useDropdown = ({\n splitTrigger,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const dropdownRef = useRef(null);\n const dropdownListRef = useRef(null);\n\n const toggle = () => setIsOpen(!isOpen);\n\n const handleOutsideClick = useCallback((e) => {\n const triggerElement = !splitTrigger\n ? dropdownRef.current\n : dropdownRef.current.querySelector('.dropdown__trigger');\n if (\n isOpen\n && !triggerElement.contains(e.target)\n && !dropdownListRef.current.contains(e.target)\n ) {\n setIsOpen(false);\n }\n }, [isOpen]);\n\n useEffect(() => {\n document.addEventListener('mousedown', handleOutsideClick);\n return () => {\n document.removeEventListener('mousedown', handleOutsideClick);\n };\n }, [handleOutsideClick]);\n\n return {\n isOpen,\n toggle,\n dropdownRef,\n dropdownListRef,\n };\n};\n\nexport default useDropdown;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-ace\");","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport ace from 'ace-builds/src-noconflict/ace';\nimport AceEditor from 'react-ace';\nimport 'ace-builds/src-noconflict/mode-javascript';\nimport 'ace-builds/src-noconflict/mode-golang';\nimport 'ace-builds/src-noconflict/mode-python';\nimport 'ace-builds/src-noconflict/mode-css';\nimport 'ace-builds/src-noconflict/mode-json';\nimport 'ace-builds/src-noconflict/mode-xml';\nimport 'ace-builds/src-noconflict/mode-jsx';\nimport 'ace-builds/src-noconflict/ext-searchbox';\nimport 'ace-builds/src-noconflict/ext-beautify';\nimport 'ace-builds/src-noconflict/theme-github';\nimport jsonWorker from 'ace-builds/src-noconflict/worker-json';\n\nace.config.setModuleUrl('ace/mode/json_worker', jsonWorker);\n\nfunction CodeEditor(props) {\n const {\n disabled,\n readOnly,\n disableValidation,\n id,\n error,\n label,\n labelwidth,\n note,\n onBlur,\n onChange,\n theme,\n value,\n setOptions,\n wrapperClassName,\n } = props;\n const classes = [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const finalSetOptions = {\n ...setOptions,\n ...disableValidation && { useWorker: false },\n };\n\n const getCodeEditorError = useCallback(() => (\n error && error !== 'true' && error !== 'false'\n ? (\n

    \n {error}\n

    \n )\n : null\n ), [error]);\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const getNonLabelWidth = useCallback(() => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n }, [labelwidth]);\n\n const handleOnChange = useCallback((newValue) => {\n if (onChange) onChange(newValue);\n }, [onChange]);\n\n const handleOnBlur = useCallback(() => {\n if (onBlur) onBlur(value);\n }, [onBlur, value]);\n\n return (\n
    \n {\n label\n ? \n : null\n }\n
    \n {\n // eslint-disable-next-line\n editorInstance.container.style.resize = 'both';\n // mouseup = css resize end\n document.addEventListener('mouseup', () => (\n editorInstance.resize()\n ));\n }}\n setOptions={finalSetOptions}\n />\n {\n note\n ?

    { note }

    \n : null\n }\n { getCodeEditorError() }\n
    \n
    \n );\n}\n\nCodeEditor.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n disableValidation: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n mode: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n theme: PropTypes.string,\n value: PropTypes.string,\n setOptions: PropTypes.instanceOf(Object),\n wrapperClassName: PropTypes.string,\n};\n\nexport default CodeEditor;\n","import React, { Component, createRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\nimport Button from '../../../components/Button';\n\nconst getStateSelectedValues = (multiple, tags, value) => {\n if (!value) {\n return (multiple || tags) ? [] : null;\n }\n\n return value;\n};\n\nclass Combobox extends Component {\n static closeList() {\n return {\n cursor: -1,\n opened: false,\n };\n }\n\n static openList() {\n return {\n opened: true,\n };\n }\n\n static filterByName(itemValue, inputValue) {\n return itemValue.name.toLowerCase().indexOf(inputValue) > -1;\n }\n\n constructor(props) {\n super(props);\n const {\n multiple,\n tags,\n value,\n } = props;\n\n this.state = {\n cursor: -1,\n opened: false,\n width: 50,\n initialValue: value,\n stateSelectedValues: getStateSelectedValues(multiple, tags, value),\n searchText: '',\n tags,\n };\n\n this.comboboxRef = createRef();\n this.valuesListRef = createRef();\n this.inputRef = createRef();\n this.textRef = createRef();\n\n this.focusInput = this.focusInput.bind(this);\n this.onKeyUp = this.onKeyUp.bind(this);\n Combobox.openList = Combobox.openList.bind(this);\n this.handleClickOutside = this.handleClickOutside.bind(this);\n this.handleItemsNavigation = this.handleItemsNavigation.bind(this);\n this.handleComboboxDropdownClick = this.handleComboboxDropdownClick.bind(this);\n this.handleListItemClick = this.handleListItemClick.bind(this);\n this.handlePillRemoveClick = this.handlePillRemoveClick.bind(this);\n this.manageSelectedTags = this.manageSelectedTags.bind(this);\n }\n\n componentDidMount() {\n const { tags } = this.props;\n\n if (tags) {\n this.setInputWidth();\n }\n\n this.bindEvents();\n }\n\n componentWillUnmount() {\n this.unBindEvents();\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n if (\n JSON.stringify(nextProps.value) !== JSON.stringify(prevState.initialValue)\n || nextProps.tags !== prevState.tags\n ) {\n return {\n initialValue: nextProps.value,\n stateSelectedValues: getStateSelectedValues(\n nextProps.multiple,\n nextProps.tags,\n nextProps.value,\n ),\n tags: nextProps.tags,\n };\n }\n\n return null;\n }\n\n handleItemsNavigation(e) {\n const { tags } = this.props;\n if (['ArrowDown', 'ArrowUp'].indexOf(e.key) === -1) {\n return;\n }\n\n const { cursor } = this.state;\n const filteredValues = this.filterValues();\n let cursorNext;\n\n e.preventDefault();\n\n if (e.key === 'ArrowDown') {\n if (cursor === -1 || cursor === filteredValues.length - 1) {\n cursorNext = 0;\n } else if (cursor < filteredValues.length - 1) {\n cursorNext = cursor + 1;\n }\n }\n\n if (e.key === 'ArrowUp') {\n if (cursor > 0) {\n cursorNext = cursor - 1;\n } else {\n cursorNext = filteredValues.length - 1;\n }\n }\n\n if (this.valuesListRef.current && cursorNext > 4) {\n const scrollTop = (cursorNext - 4) * 38;\n\n this.valuesListRef.current.scrollTop = (!tags) ? 60 + scrollTop : scrollTop;\n } else if (this.valuesListRef.current) {\n this.valuesListRef.current.scrollTop = 0;\n }\n\n this.setState((previousState) => ({\n ...previousState,\n opened: true,\n cursor: cursorNext,\n }));\n }\n\n handleListItemClick(index) {\n // eslint-disable-next-line react/destructuring-assignment\n const clickedValue = this.props.values[index];\n if (clickedValue.disabled) return;\n\n const { multiple, tags } = this.props;\n\n const methodName = (tags) ? 'manageSelectedTags' : 'manageSelectedValues';\n const tempState = { ...this.state, ...this[methodName](index) };\n\n this.setState((previousState) => {\n if (!multiple && !tags) {\n tempState.opened = false;\n }\n\n return { ...previousState, ...tempState };\n });\n }\n\n handlePillRemoveClick(index) {\n const { disabled } = this.props;\n\n if (disabled) {\n return;\n }\n\n const tempState = this.removeSelectedValue(index);\n\n this.setState((previousState) => ({ ...previousState, ...tempState }));\n }\n\n handleClickOutside(event) {\n if (\n this.valuesListRef.current && !this.valuesListRef.current.contains(event.target)\n && this.comboboxRef.current && !this.comboboxRef.current.contains(event.target)\n ) {\n this.setState((previousState) => ({ ...previousState, ...Combobox.closeList() }));\n }\n }\n\n handleComboboxDropdownClick() {\n const { disabled } = this.props;\n\n if (disabled) {\n return;\n }\n\n this.setState((previousState) => ({ ...previousState, ...Combobox.openList() }));\n }\n\n onKeyUp(e) {\n const { tags, allowCustomValues } = this.props;\n const { cursor, opened } = this.state;\n const filteredValues = this.filterValues();\n let tempState = this.getSearchText();\n\n if (tags && e.key !== 'Escape') {\n tempState = { ...tempState, ...this.setInputWidth() };\n }\n\n if (e.key === 'Enter') {\n const methodName = (tags) ? 'manageSelectedTags' : 'manageSelectedValues';\n tempState = { ...tempState, ...this[methodName](cursor) };\n }\n\n if (allowCustomValues && e.key !== ' ' && tags) {\n tempState = { ...tempState, ...this.manageSelectedTags() };\n }\n\n if (\n !opened\n && this.inputRef.current.value\n && filteredValues?.length\n && e.key !== 'Escape'\n ) {\n tempState = { ...tempState, ...Combobox.openList() };\n }\n\n if (e.key === 'Escape' && opened) {\n tempState = { ...tempState, ...Combobox.closeList() };\n }\n\n if (opened && filteredValues && !filteredValues.length) {\n tempState = { ...tempState, ...Combobox.closeList() };\n }\n\n this.setState((previousState) => ({ ...previousState, ...tempState }));\n }\n\n getLabelStyles() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n getNonLabelWidth() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n setInputWidth() {\n return {\n width: 50 + this.textRef.current.offsetWidth,\n };\n }\n\n getSelectedIndex(value) {\n const { stateSelectedValues } = this.state;\n let position = -1;\n\n if (Array.isArray(stateSelectedValues)) {\n stateSelectedValues.forEach((item, index) => {\n if (item.id === value.id) {\n position = index;\n }\n });\n } else if (stateSelectedValues) {\n if (stateSelectedValues.id === value.id) {\n position = 0;\n }\n }\n\n return position;\n }\n\n getSearchText() {\n return {\n searchText: this.inputRef.current.value,\n };\n }\n\n getListItemCssClasses(value, index) {\n const cssClasses = [];\n const {\n cursor,\n } = this.state;\n\n if (cursor === index) {\n cssClasses.push('active');\n }\n\n if (value.disabled) {\n cssClasses.push('disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n getComboboxListCssClass() {\n const { opened } = this.state;\n const { tags, theme } = this.props;\n const themes = theme ? theme.split(' ') : [];\n\n const cssClasses = ['tyk-combobox__list'];\n\n if (opened) {\n cssClasses.push('tyk-combobox__list--opened');\n }\n\n if (tags) {\n cssClasses.push('tyk-combobox__list--has-tags');\n }\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n return cssClasses.join(' ');\n }\n\n getCssClasses() {\n const {\n error, disabled, theme, labelwidth,\n } = this.props;\n const cssClasses = ['tyk-form-group', 'tyk-combobox'];\n const themes = theme ? theme.split(' ') : [];\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (disabled) {\n cssClasses.push('disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n getInputError() {\n const { error } = this.props;\n\n return (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null;\n }\n\n getStyles() {\n const { scrollTop } = document.documentElement;\n const el = this.comboboxRef.current;\n const elHeight = el.offsetHeight;\n const elWidth = el.offsetWidth;\n\n const offset = el.getBoundingClientRect();\n const { left } = offset;\n let top = 0;\n\n top = offset.top + scrollTop + elHeight;\n\n return {\n top: `${top - 1}px`,\n left: `${left}px`,\n width: `${elWidth}px`,\n };\n }\n\n getComboboxDisplayData() {\n const { stateSelectedValues } = this.state;\n const { multiple, placeholder, values } = this.props;\n\n if (!stateSelectedValues) {\n return placeholder;\n }\n\n if (stateSelectedValues && Array.isArray(stateSelectedValues) && !stateSelectedValues.length) {\n return placeholder;\n }\n\n if (stateSelectedValues && !Array.isArray(stateSelectedValues) && !stateSelectedValues.id) {\n return placeholder;\n }\n\n if (Array.isArray(stateSelectedValues) && multiple) {\n return stateSelectedValues.reduce((prevValue, value, index) => prevValue + value.name + ((index !== stateSelectedValues.length - 1) ? ', ' : ''), '');\n }\n\n if (\n values?.length\n && !Array.isArray(stateSelectedValues) && !stateSelectedValues.name\n ) {\n return values.filter((value) => value.id === stateSelectedValues.id)[0].name;\n }\n\n return stateSelectedValues.name;\n }\n\n manageSelectedTags(index) {\n const { max, allowCustomValues } = this.props;\n const { stateSelectedValues } = this.state;\n const filteredValues = this.filterValues();\n const value = { id: this.inputRef.current.value, name: this.inputRef.current.value };\n\n if (allowCustomValues === false && index === -1) {\n return null;\n }\n\n const tempValue = filteredValues[index] || value;\n const selectedIndex = this.getSelectedIndex(tempValue);\n let selectedValues = {};\n\n this.inputRef.current.value = '';\n\n if (selectedIndex > -1 && this.isInInitialValues(tempValue)) {\n selectedValues = this.removeSelectedValue(selectedIndex);\n } else if (selectedIndex === -1) {\n if (max && stateSelectedValues.length >= max) {\n return selectedValues;\n }\n selectedValues = this.addSelectedValue(tempValue);\n }\n\n return selectedValues;\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n manageSelectedValues(index) {\n const { stateSelectedValues } = this.state;\n const { multiple, onChange, max } = this.props;\n const filteredValues = this.filterValues();\n const tempSelectedValues = filteredValues[index];\n let selectedValues;\n const selectedIndex = this.getSelectedIndex(tempSelectedValues);\n\n if (tempSelectedValues && multiple) {\n if (selectedIndex > -1) {\n selectedValues = this.removeSelectedValue(selectedIndex);\n } else {\n if (max && stateSelectedValues.length >= max) {\n return selectedValues;\n }\n selectedValues = this.addSelectedValue(filteredValues[index]);\n }\n } else {\n selectedValues = {\n stateSelectedValues: (selectedIndex === -1) ? tempSelectedValues : { id: null },\n };\n\n onChange?.((selectedIndex === -1) ? tempSelectedValues : null);\n }\n\n return selectedValues;\n }\n\n removeSelectedValue(index) {\n const { stateSelectedValues } = this.state;\n const { onChange } = this.props;\n const tempStateSelectedValues = JSON.parse(JSON.stringify(stateSelectedValues));\n\n tempStateSelectedValues.splice(index, 1);\n\n if (onChange && typeof onChange === 'function') {\n onChange(tempStateSelectedValues.length ? tempStateSelectedValues : null);\n }\n\n return {\n stateSelectedValues: tempStateSelectedValues,\n searchText: '',\n };\n }\n\n addSelectedValue(value) {\n const { stateSelectedValues } = this.state;\n const { onChange } = this.props;\n const tempStateSelectedValues = JSON.parse(JSON.stringify(stateSelectedValues));\n\n tempStateSelectedValues.push(value);\n\n if (onChange && typeof onChange === 'function') {\n onChange(tempStateSelectedValues.length ? tempStateSelectedValues : null);\n }\n\n return {\n stateSelectedValues: tempStateSelectedValues,\n searchText: '',\n };\n }\n\n isInInitialValues(value) {\n const { values } = this.props;\n let ok = false;\n\n values.forEach((item) => {\n if (value.id === item.id) {\n ok = true;\n }\n });\n\n return ok;\n }\n\n filterValues() {\n const { values, searchItem } = this.props;\n\n if (!this.inputRef.current) {\n return values;\n }\n\n const arr = values\n .filter(\n (value) => (searchItem\n ? searchItem(value, this.inputRef.current.value.toLowerCase())\n : Combobox.filterByName(value, this.inputRef.current.value.toLowerCase())),\n );\n\n return arr;\n }\n\n bindEvents() {\n document.addEventListener('mousedown', this.handleClickOutside);\n }\n\n unBindEvents() {\n document.removeEventListener('mousedown', this.handleClickOutside);\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n reset() {\n const { multiple, tags, value } = this.props;\n\n this.setState({\n stateSelectedValues: getStateSelectedValues(multiple, tags, value),\n });\n }\n\n focusInput() {\n if (this.inputRef.current) {\n this.inputRef.current.focus();\n }\n }\n\n renderInput(filteredValues) {\n const {\n disabled,\n tags,\n max,\n placeholder,\n } = this.props;\n const {\n width, searchText, stateSelectedValues,\n } = this.state;\n\n return (\n {}}\n ref={this.comboboxRef}\n >\n {\n tags\n ? (\n <>\n {\n (stateSelectedValues || []).map((value, index) => (\n
  • \n \n \n \n { value.name }\n
  • \n ))\n }\n \n {(max === undefined || stateSelectedValues?.length < max) && (\n <>\n {\n if (e.key === 'Enter') {\n e.preventDefault();\n }\n this.handleItemsNavigation(e);\n }}\n onKeyUp={this.onKeyUp}\n placeholder={(!stateSelectedValues?.length) ? placeholder : ''}\n ref={this.inputRef}\n style={{\n width: (!stateSelectedValues?.length) ? '100%' : `${width}px`,\n }}\n />\n \n { searchText }\n \n \n )}\n {filteredValues.length > 0 && (\n \n )}\n \n \n )\n : (\n {}}\n >\n { this.getComboboxDisplayData() }\n \n \n )\n }\n \n );\n }\n\n renderDropdown(filteredValues) {\n const { tags } = this.props;\n const { opened } = this.state;\n return (\n \n {\n !tags\n ? (\n
  • \n \n
  • \n )\n : null\n }\n {\n filteredValues\n .map((value, index) => (\n {}}\n key={value.id}\n >\n {\n (this.getSelectedIndex(value) > -1)\n ? \n : null\n }\n \n {' '}\n { value.name }\n \n \n ))\n }\n \n );\n }\n\n render() {\n const {\n CustomListComponent,\n id,\n label,\n note,\n } = this.props;\n const { opened } = this.state;\n\n const filteredValues = this.filterValues();\n\n return (\n <>\n
    \n {\n label\n ? \n : null\n }\n \n {this.renderInput(filteredValues)}\n {\n note\n ?

    { note }

    \n : null\n }\n { this.getInputError() }\n
    \n \n {\n // eslint-disable-next-line no-nested-ternary\n !CustomListComponent\n ? opened && filteredValues.length\n ? ReactDOM.createPortal(\n this.renderDropdown(filteredValues),\n document.querySelector('body'),\n )\n : null\n : (\n \n )\n }\n \n );\n }\n}\n\nCombobox.propTypes = {\n allowCustomValues: PropTypes.bool,\n CustomListComponent: PropTypes.elementType,\n searchItem: PropTypes.func,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n id: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n multiple: PropTypes.bool,\n max: PropTypes.number,\n note: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n tags: PropTypes.bool,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.instanceOf(Object),\n PropTypes.instanceOf(Array),\n ]),\n values: PropTypes.instanceOf(Array),\n};\n\nCombobox.defaultProps = {\n allowCustomValues: true,\n};\n\nexport default Combobox;\n","import React, { useState, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from '../../../../components/Icon';\nimport Pill from '../../../../components/Pill';\n\nfunction Value(props) {\n const {\n value,\n max,\n tags,\n tagSeparators,\n addTagOnBlur,\n placeholder,\n disabled,\n renderValue,\n valueOverflow,\n focus,\n onMessage: sendMessage,\n readOnly,\n } = props;\n const INPUT_MIN_WIDTH = 60;\n const inputRef = useRef(null);\n const dummyElementRef = useRef(null);\n const [inputValue, setInputValue] = useState('');\n const [inputWidth, setInputWidth] = useState(`${INPUT_MIN_WIDTH + 10}px`);\n\n function entryFieldOnChange(val) {\n if (tagSeparators.some((ts) => val.slice(-1) === ts)) return;\n const dummy = dummyElementRef.current;\n dummy.innerHTML = val;\n setInputWidth(`${Math.max(dummy.clientWidth, INPUT_MIN_WIDTH) + 10}px`);\n setInputValue(val);\n sendMessage('tag.input.change', val);\n }\n\n function entryFieldOnKeyDown(key, val) {\n if (!tags) return;\n if (val === '' && key === 'Backspace' && value.length) {\n sendMessage('tag.remove', value[value.length - 1].id);\n return;\n }\n if (key === 'Enter') {\n sendMessage('tag.input.enter', val);\n entryFieldOnChange('');\n return;\n }\n if (key === 'ArrowUp') {\n sendMessage('tag.input.arrowUp');\n return;\n }\n if (key === 'ArrowDown') {\n sendMessage('tag.input.arrowDown');\n return;\n }\n if (key === 'Escape') {\n sendMessage('tag.input.escape');\n return;\n }\n if (tagSeparators.includes(key)) {\n sendMessage('tag.add', val);\n entryFieldOnChange('');\n }\n }\n\n function triggerAction() {\n sendMessage('text-value.click');\n }\n\n function textValue(val, isPlaceholder = false) {\n if (readOnly) return val || '-';\n\n const classes = [\n 'tyk-combobox2__text-value',\n `overflow-${valueOverflow}`,\n isPlaceholder && 'is-placeholder',\n ].filter(Boolean).join(' ');\n return (\n \n {val}\n \n );\n }\n\n function renderCustomValue(v) {\n const config = {\n tags,\n tagSeparators,\n placeholder,\n disabled,\n renderValue,\n sendMessage,\n };\n return renderValue(v, config);\n }\n\n function renderTag(v) {\n if (renderValue) return renderCustomValue(v);\n\n return (\n \n {\n e.stopPropagation();\n sendMessage('tag.remove', v.id);\n }}\n aria-label=\"remove\"\n >\n \n \n { v.name }\n \n );\n }\n\n function getTags() {\n return (\n <>\n {value.map(renderTag)}\n {value.length < max && (\n <>\n entryFieldOnChange(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') e.preventDefault();\n entryFieldOnKeyDown(e.key, e.target.value);\n }}\n onFocus={() => sendMessage('tag.input.focus')}\n onBlur={(e) => {\n sendMessage('tag.input.blur', e.target.value);\n if (addTagOnBlur) entryFieldOnChange('');\n }}\n />\n \n \n )}\n \n );\n }\n\n useEffect(() => {\n if (focus && inputRef.current) inputRef.current.focus();\n }, [focus]);\n\n if (readOnly) {\n return
    {textValue(value.map((v) => v.name).join(', '))}
    ;\n }\n\n if (tags) return getTags();\n if (renderValue) {\n return value.length === 0 ? textValue(placeholder, true) : value.map(renderCustomValue);\n }\n return value.length === 0\n ? textValue(placeholder, true)\n : textValue(value.map((v) => v.name).join(', '));\n}\n\nValue.propTypes = {\n value: PropTypes.instanceOf(Array),\n max: PropTypes.number,\n tags: PropTypes.instanceOf(Array),\n tagSeparators: PropTypes.instanceOf(Array),\n addTagOnBlur: PropTypes.bool,\n placeholder: PropTypes.string,\n disabled: PropTypes.bool,\n renderValue: PropTypes.func,\n valueOverflow: PropTypes.string,\n focus: PropTypes.bool,\n onMessage: PropTypes.func,\n readOnly: PropTypes.bool,\n};\n\nexport default Value;\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from '../../../../components/Icon';\n\nfunction List(props) {\n const {\n listRef,\n tags,\n values,\n searchValue,\n activeItem,\n onMessage: sendMessage,\n renderListItem,\n selectAll,\n showSearch,\n } = props;\n\n useEffect(() => {\n if (!listRef.current) return;\n const activeElement = listRef.current.querySelector('.active');\n if (activeElement) activeElement.scrollIntoView({ block: 'end' });\n }, [activeItem]);\n\n function renderItem(item) {\n if (renderListItem) {\n return renderListItem(item, {\n tags, searchValue, sendMessage, activeItem,\n });\n }\n\n return (\n !item.disabled && sendMessage('value.select', { item })}\n onKeyDown={() => {}}\n >\n {item.selected && }\n {item.name}\n \n );\n }\n\n function renderSelectAllOption() {\n const isAllSelected = values.every((v) => v.selected);\n const isNoneSelected = values.every((v) => !v.selected);\n const label = selectAll?.label ?? 'Select All';\n const mode = selectAll?.mode ?? 'select';\n const show = selectAll?.show ?? 'always';\n const render = selectAll?.render;\n\n const shouldRenderOption = show === 'always' || (mode === 'select' ? !isAllSelected : !isNoneSelected);\n if (!shouldRenderOption) return null;\n\n if (render) {\n return render({\n label,\n mode,\n show,\n isAllSelected,\n isNoneSelected,\n }, sendMessage);\n }\n return (\n sendMessage('value.select-all', mode === 'select' ? !isAllSelected : isNoneSelected)}\n onKeyDown={() => {}}\n >\n {(mode === 'select' ? isAllSelected : isNoneSelected) && }\n {label}\n \n );\n }\n\n return (\n <>\n {!tags && showSearch && (\n
    \n sendMessage('search.change', e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Escape') sendMessage('search.escape');\n if (e.key === 'ArrowUp') sendMessage('search.arrowUp');\n if (e.key === 'ArrowDown') sendMessage('search.arrowDown');\n if (e.key === 'Enter') sendMessage('search.enter');\n }}\n />\n
    \n )}\n {values.length > 0 && (\n
      \n {Boolean(selectAll) && (\n renderSelectAllOption()\n )}\n {values.map(renderItem)}\n
    \n )}\n \n );\n}\n\nList.propTypes = {\n listRef: PropTypes.instanceOf(Object),\n tags: PropTypes.bool,\n values: PropTypes.instanceOf(Array),\n searchValue: PropTypes.string,\n activeItem: PropTypes.instanceOf(Object),\n onMessage: PropTypes.func,\n renderListItem: PropTypes.func,\n selectAll: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n mode: PropTypes.oneOf(['select', 'unselect']),\n show: PropTypes.oneOf(['always', 'notSameState']),\n render: PropTypes.func,\n }),\n ]),\n showSearch: PropTypes.bool,\n};\n\nexport default List;\n","import React, {\n useCallback, useEffect, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\nimport FloatingContainer from '../../../components/FloatingContainer';\n\nimport Value from './js/Value';\nimport List from './js/List';\n\n/**\n * Dropdown-like component that can display selected values as regular text,\n * tags, or in a custom way.\n * You can select values from a list or type in new ones.\n */\nfunction Combobox2({\n value: propValue,\n values: propValues = [],\n valueOverflow = 'single',\n label = '',\n labelwidth,\n tags = false,\n tagSeparators = [' ', 'Enter'],\n addTagOnBlur = false,\n max: maxProp,\n multiple = false,\n placeholder = '',\n theme,\n note = '',\n error = '',\n disabled = false,\n readOnly = false,\n allowCustomValues = true,\n searchItem: matchItemFn,\n renderValue,\n renderListItem,\n renderList: renderListProp,\n CustomListComponent,\n onBeforeChange = () => true,\n onChange = () => {},\n floatingContainerConfig,\n expandMode,\n infiniteScrollerConfig,\n displayDropdownTrigger = true,\n selectAll,\n closeOnSelect,\n showSearch = false,\n required = false,\n validateOnChange = () => {},\n wrapperClassName = '',\n ...restProps\n}) {\n const max = useMemo(\n () => (multiple ? Infinity : maxProp || (tags ? Infinity : 1)),\n [multiple, maxProp, tags],\n );\n const renderList = CustomListComponent\n ? (values, { sendMessage }) => (\n sendMessage('value.select', { item: values[index] })}\n />\n )\n : renderListProp;\n\n const rootRef = useRef(null);\n const comboboxControlRef = useRef(null);\n const dropdownRef = useRef(null);\n const listRef = useRef(null);\n\n const [value, setValue] = useState(getValueFromProp(propValue, propValues));\n const [values, setValues] = useState(propValues.map((v) => normalizeValue(v)));\n const [searchValue, setSearchValue] = useState('');\n const [activeItem, setActiveItem] = useState(null);\n const [isOpened, setIsOpened] = useState(false);\n const [valuesExpanded, setValuesExpanded] = useState(false);\n const [localValidationError, setLocalValidationError] = useState('');\n\n function getThemeClasses() {\n const themes = theme ? theme.split(' ') : [];\n return themes.map((iTheme) => `tyk-form-group--${iTheme}`);\n }\n\n function getCssClasses() {\n return [\n wrapperClassName,\n 'tyk-form-group',\n 'tyk-combobox2',\n ...getThemeClasses(),\n (error || localValidationError) && 'has-error',\n labelwidth && 'tyk-form-group--label-has-width',\n disabled && 'disabled',\n expandMode && 'is-expand-mode',\n ].filter(Boolean).join(' ');\n }\n\n function getFilteredValues() {\n const defaultFn = (v, s) => v?.name?.toLowerCase()?.includes(s);\n const fn = matchItemFn || defaultFn;\n const filteredValues = values.filter((v) => fn(v, searchValue.toLowerCase()));\n return filteredValues;\n }\n\n function openDropdown() {\n setIsOpened(true);\n }\n\n function closeDropdown() {\n setIsOpened(false);\n if (!tags) updateSearchValue('');\n setActiveItem(null);\n }\n\n function updateSearchValue(newSearchValue) {\n setSearchValue(newSearchValue);\n if (activeItem && getFilteredValues().every((fv) => fv.id !== activeItem.id)) {\n setActiveItem(null);\n }\n if (newSearchValue && !isOpened) openDropdown();\n }\n\n function isValidValue(newValues, lastValue) {\n const localError = validateOnChange(newValues, lastValue);\n setLocalValidationError(localError);\n return localError === undefined;\n }\n\n function updateValue(newValues) {\n setValue(newValues);\n onChange(max === 1 && !tags ? (newValues[0] || null) : newValues);\n }\n\n function addTag(val) {\n if (!val) return;\n if (value.length >= max) return;\n if (value.some(({ name }) => name === val)) return;\n\n const listValueIndex = values.findIndex((lv) => lv.name === val);\n let newValue;\n let finalValue = [...value];\n let selectedValues;\n\n if (listValueIndex === -1) {\n if (allowCustomValues) {\n newValue = { id: val, name: val };\n finalValue = [...value, newValue];\n }\n } else {\n selectedValues = [\n ...values.slice(0, listValueIndex),\n { ...values[listValueIndex], selected: true },\n ...values.slice(listValueIndex + 1),\n ];\n newValue = values[listValueIndex];\n finalValue = [...value, values[listValueIndex]];\n }\n\n if (isValidValue(finalValue, newValue) && onBeforeChange(value, finalValue)) {\n if (selectedValues) {\n setValues(selectedValues);\n }\n updateValue(finalValue);\n }\n }\n\n function removeTag(id) {\n if (required && max === 1) return;\n\n const listValueIndex = values.findIndex((lv) => lv.id === id);\n const newValue = value.filter((v) => v.id !== id);\n\n if (!onBeforeChange(value, newValue)) return;\n\n if (listValueIndex !== -1) {\n setValues([\n ...values.slice(0, listValueIndex),\n { ...values[listValueIndex], selected: false },\n ...values.slice(listValueIndex + 1),\n ]);\n }\n updateValue(newValue);\n }\n\n function selectValue({ id }) {\n const val = values.find((v) => v.id === id);\n const valIndex = values.findIndex((v) => v.id === id);\n let finalValue = value;\n let selectedValues = values;\n\n if (val.selected) {\n if (!required || max !== 1) {\n finalValue = value.filter((v) => v.id !== val.id);\n selectedValues = values.with(valIndex, { ...val, selected: false });\n }\n } else if (value.length < max) {\n finalValue = [...value, val];\n selectedValues = values.with(valIndex, { ...val, selected: true });\n } else if (max === 1) {\n finalValue = [val];\n selectedValues = values.map((v) => ({ ...v, selected: v.id === val.id }));\n }\n\n if (isValidValue(finalValue, val) && onBeforeChange(value, finalValue)) {\n updateValue(finalValue);\n setValues(selectedValues);\n }\n\n if (max === 1 || closeOnSelect) {\n closeDropdown();\n }\n }\n\n function selectAllValues(selected) {\n if (values.length > max) return;\n const newValue = selected ? [...values] : [];\n\n if (!onBeforeChange(value, newValue)) return;\n\n updateValue(newValue);\n setValues(values.map((v) => ({ ...v, selected })));\n if (closeOnSelect) closeDropdown();\n }\n\n function moveUpActiveItem() {\n const visibleItems = getFilteredValues().filter((v) => !v.disabled);\n if (visibleItems.length === 0) return;\n if (activeItem === null || visibleItems.length === 1) {\n setActiveItem(visibleItems[visibleItems.length - 1]);\n return;\n }\n const activeIndex = visibleItems.findIndex((v) => v.id === activeItem.id);\n setActiveItem(visibleItems[activeIndex > 0 ? activeIndex - 1 : visibleItems.length - 1]);\n }\n\n function moveDownActiveItem() {\n const visibleItems = getFilteredValues().filter((v) => !v.disabled);\n if (visibleItems.length === 0) return;\n if (activeItem === null || visibleItems.length === 1) {\n setActiveItem(visibleItems[0]);\n return;\n }\n const activeIndex = visibleItems.findIndex((v) => v.id === activeItem.id);\n setActiveItem(visibleItems[activeIndex < visibleItems.length - 1 ? activeIndex + 1 : 0]);\n }\n\n function executeTriggerAction() {\n if (expandMode) {\n setValuesExpanded(!valuesExpanded);\n } else {\n openDropdown();\n }\n }\n\n function handleDocumentClick(e) {\n const isClickInside = rootRef.current?.contains(e.target)\n || dropdownRef.current?.contains(e.target);\n if (!isClickInside) {\n closeDropdown();\n }\n }\n\n function onClickCapture(e) {\n if (!disabled) return;\n if (!expandMode) {\n e.stopPropagation();\n return;\n }\n\n const triggerElement = rootRef.current.querySelector('.tyk-combobox2__values-container-trigger');\n if (!triggerElement) return;\n\n const isClickOnTrigger = triggerElement === e.target || triggerElement.contains(e.target);\n if (!isClickOnTrigger) e.stopPropagation();\n }\n\n function onTagMessage(message, data) {\n if (message === 'add') {\n addTag(data);\n updateSearchValue('');\n }\n\n if (message === 'remove') removeTag(data);\n\n if (message === 'input.change') updateSearchValue(data);\n\n if (message === 'input.enter') {\n if (activeItem) {\n selectValue(activeItem);\n } else if (tagSeparators.includes('Enter')) {\n addTag(data);\n updateSearchValue('');\n }\n }\n\n if (message === 'input.arrowUp') {\n openDropdown();\n moveUpActiveItem();\n }\n\n if (message === 'input.arrowDown') {\n openDropdown();\n moveDownActiveItem();\n }\n\n if (message === 'input.escape') closeDropdown();\n\n if (message === 'input.blur' && addTagOnBlur) {\n addTag(data);\n updateSearchValue('');\n }\n\n if (message === 'input.focus') {\n openDropdown();\n }\n }\n\n const onMessage = useCallback((message, data) => {\n if (message.startsWith('tag.')) onTagMessage(message.slice(4), data);\n\n if (message === 'value.select') selectValue(data.item);\n\n if (message === 'value.select-all') selectAllValues(data);\n\n if (message === 'text-value.click') openDropdown();\n\n if (message === 'search.change') updateSearchValue(data);\n\n if (message === 'search.escape') closeDropdown();\n\n if (message === 'search.arrowUp') moveUpActiveItem();\n\n if (message === 'search.arrowDown') moveDownActiveItem();\n\n if (message === 'search.enter') {\n if (activeItem) selectValue(activeItem);\n }\n }, [\n onTagMessage,\n selectValue,\n selectAllValues,\n openDropdown,\n updateSearchValue,\n closeDropdown,\n moveUpActiveItem,\n moveDownActiveItem,\n ]);\n\n const renderIcon = useCallback(\n () => (expandMode\n ? \n : \n ),\n [expandMode, valuesExpanded],\n );\n\n useEffect(() => {\n window.addEventListener('click', handleDocumentClick, true);\n return () => window.removeEventListener('click', handleDocumentClick, true);\n }, []);\n\n useEffect(() => {\n if (propValues.length) {\n const newValues = propValues.map((v) => ({\n ...normalizeValue(v),\n selected: value.some((sv) => sv.id === v.id),\n }));\n setValues(newValues);\n setValue((val) => val.map((v) => newValues.find((nv) => nv.id === v.id) || v));\n } else if (values.length) {\n setValues([]);\n }\n }, [propValues]);\n\n useEffect(() => {\n const newValue = getValueFromProp(propValue, values);\n setValue(newValue);\n setValues((vals) => vals.map((v) => ({\n ...normalizeValue(v),\n selected: newValue.some((nv) => nv.id === v.id),\n })));\n }, [propValue]);\n\n useEffect(() => {\n if (!expandMode) return () => {};\n\n const valuesElement = comboboxControlRef.current.querySelector('.tyk-combobox2__current-values');\n const updateScroll = () => {\n valuesElement.scrollTop = valuesElement.scrollHeight;\n };\n /* eslint-disable-next-line no-undef */\n const mobserver = new MutationObserver(updateScroll);\n const robserver = new ResizeObserver(updateScroll);\n\n mobserver.observe(valuesElement, { attributes: true, childList: true, subtree: true });\n robserver.observe(valuesElement);\n\n return () => {\n mobserver.disconnect();\n robserver.disconnect();\n };\n });\n\n const filteredValues = getFilteredValues();\n const currentValuesClasses = [\n 'tyk-combobox2__current-values',\n expandMode && 'expand-mode',\n `tyk-combobox2__current-values--${valuesExpanded ? 'expanded' : 'collapsed'}`,\n ].join(' ');\n\n return (\n \n {label && (\n \n )}\n {!readOnly && (\n \n
    \n \n \n
    \n {displayDropdownTrigger && (\n \n {renderIcon()}\n \n )}\n \n {isOpened && (!tags || filteredValues.length > 0) && (\n \n {renderList ? (\n renderList(filteredValues, {\n tags,\n searchValue,\n activeItem,\n listRef,\n sendMessage: onMessage,\n })\n ) : (\n \n )}\n \n )}\n {note && (\n

    {note}

    \n )}\n {((error && error !== 'true' && error !== 'false') || Boolean(localValidationError)) && (\n

    {error || localValidationError}

    \n )}\n \n )}\n {readOnly && (\n
    \n \n
    \n )}\n \n );\n}\n\nCombobox2.propTypes = {\n /** If `true` it allows entering values that are not in the list. */\n allowCustomValues: PropTypes.bool,\n /** Alias for `renderList`\n * used for backwards compatibility with the old Combobox component. */\n CustomListComponent: PropTypes.elementType,\n /** A function used for filtering elements displayed in the list when typing in. */\n searchItem: PropTypes.func,\n /** A custom component that will be used to display a value. */\n renderValue: PropTypes.func,\n /** A custom component that will be used to display an item in the dropdown list. */\n renderListItem: PropTypes.func,\n /** A custom component that will be used to display the entire content of the dropdown. */\n renderList: PropTypes.func,\n disabled: PropTypes.bool,\n /** hides the UI form element and displayes just the value as text */\n readOnly: PropTypes.bool,\n error: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n /** The maximum number of values that can be selected/added. */\n max: PropTypes.number,\n /** Shorthand for max=Infinity */\n multiple: PropTypes.bool,\n note: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n /**\n * Callback called before changing the value of the component.\n * The value change will succeed only if the callback's return value is truthy.\n * The callback is called with two arguments: 1) the previous value, 2) the next value */\n onBeforeChange: PropTypes.func,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n /** Enables the display of values as `Pill` components that can be\n * removed without opening the dropdown. */\n tags: PropTypes.bool,\n /** A list of characters that will trigger the creation of a tag when typed. */\n tagSeparators: PropTypes.arrayOf(PropTypes.string),\n /** If set to true a tag will be created whenever the component loses focus\n * and there is something typed in. */\n addTagOnBlur: PropTypes.bool,\n theme: PropTypes.string,\n /** The value of the component. It can be a string, an array,\n * or an object with an `id` property. */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n ]),\n /** An array of selectable values. */\n values: PropTypes.instanceOf(Array),\n /** Config object passed to the internal floating container component. */\n floatingContainerConfig: PropTypes.instanceOf(Object),\n /** If set to `single` it will display the values on a single line\n * with an ellipsis at the end. */\n valueOverflow: PropTypes.oneOf(['single', 'multiple']),\n /**\n * If set to `true` whenever the user clicks on the dropdown trigger\n * the selected values container\n * will expand to show all selected values instead of opening the dropdown.\n */\n expandMode: PropTypes.bool,\n /** Config object passed to the internal infinite scroller component. */\n infiniteScrollerConfig: PropTypes.instanceOf(Object),\n /** Toggles the display of the dropdown trigger. */\n displayDropdownTrigger: PropTypes.bool,\n /**\n * If a boolean it will toggle the select all functionality from the dropdown.\n * It can also be an object with the shape `{ label, show, mode, render }`.\n * label - A string displayed as the select all option\n * show - It can be one of `['always', 'notSameState']`.\n * `always` means the option will always be displayed.\n * `notSameState` means it will be displayed only if the list items are\n * not all with the same state (depending on the `mode` value)\n * mode - It can be one of `['select', 'unselect']` and makes sense only\n * when the `show` property is `notSameState`\n * `select` means the select all option will only be displayed if not all\n * items are selected\n * `unselect` means the option will be displayed if no items are selected\n */\n selectAll: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n mode: PropTypes.oneOf(['select', 'unselect']),\n show: PropTypes.oneOf(['always', 'notSameState']),\n render: PropTypes.func,\n }),\n ]),\n /** It `true` the dropdown will close after selecting a value. */\n closeOnSelect: PropTypes.bool,\n /** Toggles the display of the search input from the dropdown. */\n showSearch: PropTypes.bool,\n /** If it is required and can only select one value once you have something\n * selected you will not be able to deselect */\n required: PropTypes.bool,\n /** Validates newly added value before adding it to the selected values.\n * Returns an error string in case of error otherwise it returns undefined\n */\n validateOnChange: PropTypes.func,\n wrapperClassName: PropTypes.string,\n};\n\nexport default Combobox2;\n\nfunction normalizeValue(value, values) {\n let v = value;\n if (typeof value === 'string') v = { id: value, name: value };\n else if (!value.hasOwnProperty('name')) v = { ...value, name: value.id }; // eslint-disable-line no-prototype-builtins\n if (!values) return v;\n const existingVal = values.find((ev) => ev.id === v.id);\n return existingVal ? { ...v, ...existingVal } : v;\n}\n\nfunction getValueFromProp(value, values) {\n if (!value) return [];\n if (Array.isArray(value)) return value.map((v) => normalizeValue(v, values));\n return [normalizeValue(value, values)];\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"flatpickr\");","import React, {\n useEffect, useState, useRef, useCallback,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport flatpickr from 'flatpickr';\n\nimport Icon from '../../../components/Icon';\nimport { usePrevious } from '../../../hooks';\n\nfunction DatePicker({\n children,\n disabled,\n readOnly = false,\n error,\n id,\n label,\n labelwidth,\n note,\n onClose,\n onChange,\n onOpen,\n theme,\n config = {},\n value,\n wrapperClassName = '',\n}) {\n const [pickerInstance, setPickerInstance] = useState(null);\n const dateRef = useRef(null);\n\n const prevValue = usePrevious(value);\n\n const hasValueChanged = useCallback((prevDate, currentDate) => {\n if (!prevDate) return true;\n if (!Array.isArray(currentDate)) return prevDate.getTime() !== currentDate.getTime();\n\n let diffDates = currentDate;\n\n if (prevDate && currentDate.length && prevDate.length) {\n diffDates = currentDate.filter((date, index) => date.getTime() !== prevDate[index].getTime());\n\n return diffDates.length > 0;\n }\n\n return currentDate.length > 0;\n }, []);\n\n const onDateChange = useCallback((dateValue) => {\n const finalValue = config.mode === 'range' ? dateValue : dateValue[0] || null;\n\n if (!onChange) return;\n\n if (config.mode === 'range') {\n if (finalValue.length === 2 && hasValueChanged(prevValue, finalValue)) {\n onChange(finalValue);\n }\n } else {\n onChange(finalValue);\n }\n }, [prevValue, onChange, hasValueChanged]);\n\n useEffect(() => {\n if (dateRef.current && !pickerInstance) {\n const instance = flatpickr(dateRef.current, {\n ...config, defaultDate: value, onChange: onDateChange, onClose, onOpen,\n });\n setPickerInstance(instance);\n }\n\n return () => {\n if (pickerInstance) {\n pickerInstance.destroy();\n }\n };\n }, [pickerInstance]);\n\n useEffect(() => {\n if (pickerInstance) {\n let tempValue = value;\n\n if (typeof value === 'string') {\n tempValue = new Date(value);\n } else if (Array.isArray(value)) {\n tempValue = value.map((date) => new Date(date));\n }\n\n if (hasValueChanged(prevValue, tempValue)) {\n pickerInstance.set('onChange', onDateChange);\n if (config.mode === 'range') {\n if (tempValue && tempValue.length === 2) {\n pickerInstance.setDate(tempValue, true);\n }\n } else {\n pickerInstance.setDate(tempValue, true);\n }\n }\n }\n }, [prevValue, value, pickerInstance]);\n\n const classes = [\n 'tyk-form-group',\n 'tyk-form-group--addon-right',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const getLabelStyles = () => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n };\n\n const getNonLabelWidth = () => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n };\n\n const openCalendar = useCallback(() => {\n if (!pickerInstance) return;\n\n pickerInstance.open();\n }, [pickerInstance]);\n\n const getInputError = () => (\n (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null\n );\n\n const getInputField = () => {\n let inputStyle = {};\n let addonStyle = {};\n\n if (config?.inline) {\n inputStyle = {\n height: 0,\n padding: 0,\n width: 0,\n visibility: 'hidden',\n };\n\n addonStyle = {\n display: 'none',\n };\n }\n return (\n <>\n \n {}}\n tabIndex={0}\n style={addonStyle}\n aria-label=\"show calendar\"\n >\n \n \n \n );\n };\n\n return (\n <>\n {\n children?.length\n ? children({ openCalendar, ref: dateRef })\n : (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n
    \n {getInputField()}\n
    \n {\n note\n ?

    { note }

    \n : null\n }\n { getInputError() }\n
    \n )}\n \n )\n }\n
    \n {readOnly && !value && '-'}\n {readOnly && value && flatpickr.formatDate(value, config.dateFormat || 'd/m/Y')}\n
    \n \n );\n}\n\nDatePicker.propTypes = {\n config: PropTypes.instanceOf(Object),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n PropTypes.func,\n ]),\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n onClose: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n onOpen: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n theme: PropTypes.string,\n error: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n PropTypes.string,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default DatePicker;\n","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n // eslint-disable-next-line no-console\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n case 'aaa':\n return dayPeriodEnumValue;\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, dirtyDelimiter);\n}\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\nexport default formatters;","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n var dateTimeFormat;\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n return result;\n};\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import defaultLocale from \"../../locale/en-US/index.js\";\nexport default defaultLocale;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n var originalDate = toDate(dirtyDate);\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n var formatter = formatters[firstCharacter];\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n return substring;\n }).join('');\n return result;\n}\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n if (!matched) {\n return input;\n }\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import React, { Component, createRef } from 'react';\nimport isEqual from 'react-fast-compare';\nimport PropTypes from 'prop-types';\n\nimport Column from '../../../../layout/Column';\nimport Row from '../../../../layout/Row';\nimport Button from '../../../../components/Button';\n\nclass EditableListForm extends Component {\n static getMainFormValue(components) {\n const mainFormValue = new Array(components.length);\n\n components.forEach((component, index) => {\n mainFormValue[index] = component.props.value || undefined;\n });\n\n return mainFormValue;\n }\n\n constructor(props) {\n super(props);\n const {\n components,\n } = props;\n\n this.submitButtonRef = createRef();\n this.handleOnChange = this.handleOnChange.bind(this);\n this.submitForm = this.submitForm.bind(this);\n\n this.state = {\n components,\n errors: {},\n mainError: null,\n mainFormValue: EditableListForm.getMainFormValue(components),\n refs: [],\n };\n }\n\n componentDidMount() {\n const {\n addValueOnFieldChange,\n getMainFormButtonWidth,\n } = this.props;\n this.createRefs();\n\n if (getMainFormButtonWidth) {\n getMainFormButtonWidth(\n !addValueOnFieldChange\n ? this.submitButtonRef.current.clientWidth\n : 0,\n );\n }\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const state = {};\n const {\n components: propsComponents,\n } = nextProps;\n\n const {\n components: stateComponents,\n } = prevState;\n if (\n !isEqual(propsComponents, stateComponents)\n && !isEqual(\n EditableListForm.getMainFormValue(propsComponents),\n EditableListForm.getMainFormValue(stateComponents),\n )\n ) {\n state.mainFormValue = EditableListForm.getMainFormValue(propsComponents);\n state.components = propsComponents;\n }\n\n return state;\n }\n\n handleOnChange(component, index, value) {\n const { addValueOnFieldChange } = this.props;\n let tempState = this.state;\n\n tempState = { ...tempState, ...this.validateValue(value, component.props) };\n\n if (!tempState.errors[component.props.name]) {\n tempState.mainFormValue[index] = value;\n\n if (component.props.onChange) {\n component.props.onChange(value);\n }\n }\n\n this.setState((previousState) => ({ ...previousState, ...tempState }), () => {\n if (addValueOnFieldChange) {\n this.submitForm();\n }\n });\n }\n\n getFormCssClasses() {\n const { noLabels } = this.props;\n const cssClasses = ['tyk-editable-list__form'];\n\n if (noLabels) {\n cssClasses.push('no-labels');\n }\n\n return cssClasses.join(' ');\n }\n\n getButtonClassName() {\n const { buttonStyle, displayType } = this.props;\n const cssClasses = [];\n\n if (buttonStyle) {\n cssClasses.push(buttonStyle);\n }\n\n if (displayType) {\n cssClasses.push(displayType);\n }\n\n return cssClasses.join(' ');\n }\n\n getComponentsError(component) {\n const {\n error,\n errors,\n mainError,\n } = this.state;\n\n if (error || mainError) {\n errors[component.props.name] = 'true';\n } else if (!(error || mainError) && errors[component.props.name] === 'true') {\n delete errors[component.props.name];\n }\n\n return errors[component.props.name] ? errors[component.props.name].toString() : undefined;\n }\n\n createRefs() {\n const { components } = this.props;\n const refs = [];\n\n components.forEach(() => {\n refs.push(createRef());\n });\n\n this.setState({\n refs,\n });\n }\n\n validateValue(value, props) {\n const { mainError, errors } = this.state;\n const { error, errorPersist } = this.props;\n\n const validatorsNames = props.validate ? Object.keys(props.validate) : [];\n // if there is a general form error don't take field errors into consideration\n const tempState = {\n errors: (error || mainError) ? {} : { ...errors },\n };\n let ok = true;\n\n // if the error should stay after changing fields values don't take actions\n if (errorPersist) {\n return tempState;\n }\n\n // validate each field from the form\n for (const validatorName of validatorsNames) {\n const validator = props.validate[validatorName];\n if (validator(value)) {\n tempState.errors[props.name] = props.validationmessages[validatorName];\n ok = false;\n break;\n }\n }\n\n // if the field is ok delete its error\n if (ok) {\n delete tempState.errors[props.name];\n }\n\n tempState.mainError = null;\n\n return tempState;\n }\n\n hasMainFormErrors(errors) {\n const { components, errorPersist } = this.props;\n const { mainFormValue } = this.state;\n const tempState = {\n errors: { ...errors },\n };\n\n if (errorPersist && mainFormValue.indexOf(undefined) === -1) {\n return false;\n }\n\n if (Object.keys(tempState.errors).length > 0) {\n return true;\n }\n\n components.forEach((component, index) => {\n tempState.errors = {\n ...tempState.errors,\n ...this.validateValue(mainFormValue[index], component.props).errors,\n };\n });\n\n return Object.keys(tempState.errors).length > 0;\n }\n\n resetForm() {\n const { refs } = this.state;\n const {\n components,\n } = this.props;\n\n refs.forEach((ref) => {\n if (ref.current?.reset) {\n ref.current.reset();\n }\n });\n\n this.setState({\n errors: {},\n mainError: null,\n mainFormValue: EditableListForm.getMainFormValue(components),\n });\n }\n\n showMainError(error) {\n this.setState({\n mainError: error,\n });\n }\n\n submitForm() {\n const { errors, mainFormValue } = this.state;\n const {\n errorPersist, onSubmit, validate, validationmessage,\n } = this.props;\n\n if (errorPersist) {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n\n if (\n Object.keys(errors).length === 0\n && (onSubmit && typeof onSubmit === 'function')\n ) {\n if (validate) {\n if (validate(mainFormValue)) {\n this.showMainError(validationmessage);\n } else {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n } else {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n }\n }\n\n render() {\n const {\n addValueOnFieldChange, components, buttonName, disabled, displayType, error,\n } = this.props;\n const {\n mainError, refs, errors,\n } = this.state;\n\n return (\n
    \n
    \n \n {\n components.map((component, index) => {\n const ComponentName = component.name;\n console.log('ComponentName', ComponentName);\n const {\n onChange, value, ...rest\n } = component.props;\n\n return (\n \n \n \n );\n })\n }\n \n {\n !addValueOnFieldChange\n ? (\n \n \n { buttonName || 'ADD' }\n \n \n )\n : null\n }\n
    \n {\n error || mainError\n ? (\n
    \n

    \n { error || mainError }\n

    \n
    \n )\n : null\n }\n
    \n );\n }\n}\n\nEditableListForm.propTypes = {\n addValueOnFieldChange: PropTypes.bool,\n noLabels: PropTypes.bool,\n buttonName: PropTypes.string,\n buttonStyle: PropTypes.string,\n components: PropTypes.instanceOf(Array),\n displayType: PropTypes.string,\n disabled: PropTypes.bool,\n getMainFormButtonWidth: PropTypes.func,\n error: PropTypes.string,\n errorPersist: PropTypes.bool,\n onSubmit: PropTypes.func,\n validate: PropTypes.func,\n validationmessage: PropTypes.string,\n};\n\nexport default EditableListForm;\n","import React, { Component, createRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport format from 'date-fns/format';\nimport isDate from 'date-fns/isDate';\n\nimport EditableListForm from './js/EditableListForm';\nimport Column from '../../../layout/Column';\nimport Icon from '../../../components/Icon';\nimport Row from '../../../layout/Row';\n\nclass EditableList extends Component {\n static getItemListValue(itemValue) {\n let tempValue = null;\n\n if (typeof itemValue === 'string') {\n tempValue = itemValue;\n }\n\n if (Object.prototype.toString.call(itemValue) === '[object Object]') {\n tempValue = itemValue.name;\n }\n\n if (isDate(itemValue)) {\n tempValue = format(itemValue, 'dd/MM/yyyy');\n }\n\n return tempValue;\n }\n\n static getListItemCssClass(displayType) {\n const cssClasses = [];\n\n if (displayType === 'inline') {\n cssClasses.push('tyk-editable-list-item--inline');\n }\n\n return cssClasses.join(' ');\n }\n\n constructor(props) {\n super(props);\n const {\n value,\n } = this.props;\n\n this.state = {\n initialValue: value || '',\n value: value || [],\n buttonWidth: 0,\n };\n\n this.startIndex = 1;\n\n this.handleFormSubmit = this.handleFormSubmit.bind(this);\n this.getMainFormButtonWidth = this.getMainFormButtonWidth.bind(this);\n this.dropdownListItemRef = createRef();\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const state = {};\n\n if (\n nextProps.value && JSON.stringify(nextProps.value)\n !== JSON.stringify(prevState.initialValue)\n ) {\n state.value = nextProps.value || [];\n state.initialValue = nextProps.value || '';\n }\n\n return state.value ? state : null;\n }\n\n handleFormSubmit(value) {\n const tempState = this.addValues(value);\n this.setState((previousState) => ({ ...previousState, ...tempState }), () => {\n this.triggerOnChange(tempState.value.length - 1, null, value);\n });\n }\n\n handleItemUpdate(index, value) {\n let prevValue;\n this.setState((previousState) => {\n const tempState = { ...previousState };\n prevValue = fromJS(tempState.value[index].value).toJS();\n tempState.value[index].value = value;\n tempState.value[index].editMode = false;\n\n return tempState;\n }, () => {\n this.triggerOnChange(index, prevValue, value);\n });\n }\n\n handleChildrenOnChange(index, value) {\n let prevValue;\n this.setState((previousState) => {\n const tempState = { ...previousState };\n prevValue = fromJS(tempState.value[index].children).toJS();\n tempState.value[index].children = value;\n\n return tempState;\n }, () => {\n this.triggerOnChange(index, prevValue, value);\n });\n }\n\n getListItemsCssClass(displayType) {\n const { config } = this.props;\n const cssClasses = ['tyk-editable-list-items'];\n\n cssClasses.push(config.displayType || 'table');\n\n if (displayType === 'inline') {\n cssClasses.push('tyk-editable-list-items--inline');\n }\n\n return cssClasses.join(' ');\n }\n\n getFormInputKey() {\n this.startIndex += 1;\n return this.startIndex;\n }\n\n // generate list item value's based on the display types\n // table, inline, list\n getListItemText(itemData) {\n const { config } = this.props;\n let value = null;\n\n switch (config.displayType) {\n case 'list':\n case 'inline': {\n const itemText = itemData.value.reduce((prevValue, itemValue, index) => {\n const tempValue = EditableList.getItemListValue(itemValue);\n let separator = ', ';\n\n if (index === itemData.value.length - 1) {\n separator = '';\n }\n\n return prevValue + tempValue + separator;\n }, '');\n\n value = itemText;\n\n break;\n }\n default:\n value = (\n \n {\n config.components.map((component, index) => (\n \n { EditableList.getItemListValue(itemData.value[index]) }\n \n ))\n }\n \n );\n\n break;\n }\n\n return value;\n }\n\n getMainFormButtonWidth(value) {\n this.setState({\n buttonWidth: value,\n });\n }\n\n setItemEditMode(index) {\n const newValues = this.closeListItems();\n\n this.setState((previousState) => {\n const tempState = { ...previousState };\n tempState.value = newValues;\n tempState.value[index].editMode = !tempState.value[index].editMode;\n\n return tempState;\n });\n }\n\n isInList(index, itemValue) {\n const { value } = this.state;\n let ok = false;\n\n value.forEach((item, itemIndex) => {\n if (JSON.stringify(item.value) === JSON.stringify(itemValue)) {\n if (index >= 0 && itemIndex === index) {\n ok = false;\n } else {\n ok = true;\n }\n }\n });\n\n return ok;\n }\n\n addValues(newValue) {\n const { value } = this.state;\n const { config } = this.props;\n const itemValue = {\n editMode: false,\n value: newValue,\n };\n const tempState = {\n value: value.slice(0),\n };\n\n if (config.children) {\n itemValue.children = [];\n }\n\n tempState.value.push(itemValue);\n\n return tempState;\n }\n\n removeListItem(index) {\n let removedItem;\n this.setState((previousState) => {\n const valueArr = previousState.value.slice(0);\n removedItem = valueArr.splice(index, 1);\n\n return {\n value: valueArr,\n };\n }, () => {\n this.triggerOnChange(index, removedItem, null);\n });\n }\n\n closeListItems() {\n const { value } = this.state;\n\n const newValues = value.map((itemValue) => {\n const tempItemValue = { ...itemValue };\n\n if (tempItemValue.editMode) {\n tempItemValue.editMode = false;\n return tempItemValue;\n }\n\n return tempItemValue;\n });\n\n return newValues;\n }\n\n triggerOnChange(index, prevValue, nextValue) {\n const { onChange } = this.props;\n const { value } = this.state;\n\n if (onChange && typeof onChange === 'function') {\n onChange(((value.length) ? value : null), index, prevValue, nextValue);\n }\n }\n\n genListItem(itemData, index) {\n const { config, disabled } = this.props;\n const { buttonWidth, value } = this.state;\n\n const clonedComponents = fromJS(config.components).toJS();\n\n itemData.value.forEach((itemValue, itemIndex) => {\n clonedComponents[itemIndex].props.value = itemValue;\n });\n\n return (\n \n \n {\n !itemData.editMode\n ? (\n <>\n { this.getListItemText(itemData, index) }\n \n \n \n \n \n \n \n \n \n )\n : (\n <>\n \n \n \n \n \n )\n }\n \n {\n config.children\n ? (\n \n )\n : null\n }\n \n );\n }\n\n genList() {\n const { config } = this.props;\n const { buttonWidth, value } = this.state;\n\n if (!value || value.length === 0) {\n return null;\n }\n\n return (\n <>\n {\n config.displayType === 'table' || !config.displayType\n ? (\n \n \n {\n config.components.map((component, index) => (\n \n { component.props.label }\n \n ))\n }\n \n \n )\n : null\n }\n
      \n {\n value.map((itemData, index) => this.genListItem(itemData, index))\n }\n
    \n \n );\n }\n\n render() {\n const {\n addValueOnFieldChange, config, error, disabled, label,\n } = this.props;\n const appendToElement = document.querySelector(config.appendTo) || document.querySelector('body');\n\n return (\n
    \n {\n label\n ? \n : null\n }\n \n {\n config.appendTo\n ? ReactDOM.createPortal(\n this.genList(),\n appendToElement,\n )\n : this.genList()\n }\n
    \n );\n }\n}\n\nEditableList.propTypes = {\n addValueOnFieldChange: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n config: PropTypes.instanceOf(Object),\n onChange: PropTypes.func,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n ]),\n};\n\nexport default EditableList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../../../components/Button';\n\nfunction Header({\n label, addButtonName, onAddRow, disabled, readOnly,\n}) {\n return (\n
    \n {\n label\n ? \n : null\n }\n {!disabled && !readOnly && (\n \n {addButtonName || 'Add'}\n \n )}\n
    \n );\n}\n\nHeader.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n onAddRow: PropTypes.func,\n addButtonName: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n};\n\nexport default Header;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ListHeader({\n fields,\n readOnly,\n}) {\n return (\n
  • \n {\n fields.map((field) => (\n \n {field?.props?.label}\n \n ))\n }\n
    Delete
    \n
  • \n );\n}\n\nListHeader.propTypes = {\n fields: PropTypes.instanceOf(Array),\n readOnly: PropTypes.bool,\n};\n\nexport default ListHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '../../../components/Button';\n\nfunction FieldsList({\n fields,\n disabled,\n readOnly,\n errors,\n components,\n onChange,\n onDelete,\n value,\n rowIndex,\n}) {\n return (\n
  • \n {\n components.map((Component, index) => {\n const field = fields[index];\n const tempField = typeof field === 'function' ? field(rowIndex, index) : field;\n return (\n \n \n \n );\n })\n }\n
    \n \n
    \n
  • \n );\n}\n\nFieldsList.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n rowIndex: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n fields: PropTypes.instanceOf(Array),\n errors: PropTypes.instanceOf(Array),\n components: PropTypes.instanceOf(Array),\n value: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n onDelete: PropTypes.func,\n};\n\nexport default FieldsList;\n","import React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Header from './Header';\nimport ListHeader from './ListHeader';\nimport FieldsList from './FieldsList';\nimport validateValues from './validate-values';\nimport withValidation from './with-validation';\n\nlet id = 1;\n/* eslint-disable-next-line */\nconst getUID = prefix => `${prefix}-${id++}`;\n\n/**\n * Editable list is a component, that lists rows of form elements (can have n elements on a row),\n * and stores the values of all the rows in an Array list\n */\nfunction EditableList2({\n addButtonName,\n disabled,\n readOnly,\n fields,\n label,\n error,\n value = [],\n onChange = () => {},\n hideOnEmpty = true,\n wrapperClassName = '',\n}) {\n const [internalErrors, setInternalErrors] = useState(null);\n\n const updateRowValue = (rowIndex, fieldIndex, componentValue, isValid) => {\n const tempValueArr = !value ? [] : [...value];\n\n if (!value) {\n tempValueArr[rowIndex] = [...new Array(fields.length)];\n tempValueArr[rowIndex][fieldIndex] = componentValue;\n } else {\n const tempValue = [...tempValueArr[rowIndex]];\n tempValue[fieldIndex] = componentValue;\n tempValueArr[rowIndex] = tempValue;\n tempValueArr[rowIndex].id = value[rowIndex].id;\n }\n\n if (internalErrors?.[rowIndex]?.[fieldIndex] && isValid) {\n const tempErrors = [...internalErrors];\n const tempFieldError = [...tempErrors[rowIndex]];\n tempFieldError[fieldIndex] = null;\n tempErrors[rowIndex] = tempFieldError;\n setInternalErrors(tempErrors);\n }\n onChange(tempValueArr);\n };\n\n const hasErrors = (errors) => Boolean(errors?.flat()?.filter(Boolean).length);\n\n const Components = useMemo(\n () => fields.map((field) => {\n const tempField = typeof field === 'function' ? field() : field;\n\n return withValidation(tempField?.component || null);\n }),\n [],\n );\n\n const onAddRow = () => {\n const errors = validateValues(fields, value);\n\n if (hasErrors(errors)) {\n setInternalErrors(errors);\n return;\n }\n\n const newValue = [...new Array(fields.length)];\n newValue.id = getUID('row');\n\n onChange([\n ...value,\n newValue,\n ]);\n };\n\n const deleteRow = (index) => {\n if (!value) {\n return;\n }\n const tempValue = [...value];\n tempValue.splice(index, 1);\n onChange(tempValue);\n };\n\n return (\n
    \n \n {value?.length || !hideOnEmpty ? (\n
      \n {(value || [[]]).map((v, i) => (\n \n ))}\n \n
    \n ) : null}\n {error && error !== 'true' && error !== 'false' ? (\n

    {error}

    \n ) : null}\n
    \n );\n}\n\nEditableList2.propTypes = {\n /** Sets Editable list in edit mode.\n * If enabled all fields are disabled, the add button is hidden and delete button is disabled\n * */\n disabled: PropTypes.bool,\n /** Sets Editable list in read only mode.\n * If enabled all fields are displaying just the value,\n * the add button is hidden and delete button is disabled\n */\n readOnly: PropTypes.bool,\n /** Name of the Add button. By default has 'Add value' */\n addButtonName: PropTypes.string,\n /** Label of Editable list, is displayed above the list and inline with the Add button */\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n /** Array of form elements that you want the list to have\n * Each field is an object points to the Form element component that you want to use,\n * the props you want to apply on it,\n * and the size (as in width, it's like columns system, between 1 and 12)\n * Example:\n * ...\n * fields={[\n {\n component: Input2,\n styles: {\n width: \"200px\",\n },\n size: 4,\n props: {\n name: 'input',\n label: 'Claim name',\n theme: 'default rounded-corners',\n placeholder: 'Enter claim name',\n validate: formikRequired('This field is required')\n }\n },\n {\n component: Combobox2,\n size: 8,\n props: comboboxProps\n }\n ]}\n */\n fields: PropTypes.instanceOf(Array),\n /** onChange function is called everytime the value of editable list changes */\n onChange: PropTypes.func,\n /** value of editable list, wich is an Array (List of row values)\n * of Arrays (List of column values,\n * each column will have the value format depending on the component type)\n */\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Object),\n PropTypes.instanceOf(Array),\n ]),\n error: PropTypes.string,\n hideOnEmpty: PropTypes.bool,\n wrapperClassName: PropTypes.string,\n};\n\nexport default EditableList2;\n","import React, { useCallback, useState } from 'react';\n\n// eslint-disable-next-line react/function-component-definition\nconst withValidation = (Component) => ({\n onChange, // eslint-disable-line react/prop-types\n validate, // eslint-disable-line react/prop-types\n error, // eslint-disable-line react/prop-types\n ...rest\n}) => {\n const [internalError, setInternalError] = useState(null);\n const onFieldChange = useCallback((event) => {\n /* eslint-disable-next-line */\n const value = event?.target\n ? ['radio', 'checkbox'].includes(event.target.type)\n ? event.target.checked\n : event?.target.value\n : event;\n\n let isValid = true;\n if (validate && typeof validate === 'function') {\n const errorMsg = validate(value);\n isValid = !errorMsg;\n setInternalError(errorMsg);\n }\n\n onChange(value, isValid);\n }, [validate, onChange]);\n\n return ;\n};\n\nexport default withValidation;\n","const validateValues = (fields, rowValues) => (rowValues || [[undefined, undefined]])?.map(\n (colValue) => colValue?.map(\n (value, index) => fields[index].props.validate?.(value),\n ),\n);\n\nexport default validateValues;\n","import React, { useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\n\nfunction FileInput({\n error,\n theme,\n labelwidth,\n wrapperClassName = '',\n id,\n label,\n note,\n accept,\n value,\n onChange,\n ...rest\n}) {\n const fileInputRef = useRef();\n\n function handleOnChange(e) {\n onChange(e.target.files);\n }\n\n function getCssClasses() {\n const cssClasses = [wrapperClassName, 'tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n }\n\n function getLabelStyles() {\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n function getNonLabelWidth() {\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n function getFileInputError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n function getFileInputComponent() {\n return (\n \n \n {\n fileInputRef.current && fileInputRef.current.files.length > 0\n ? (\n \n \n \n )\n : null\n }\n \n );\n }\n\n function clearValue() {\n fileInputRef.current.value = '';\n onChange('');\n }\n\n return (\n
    \n {\n label\n ? \n : null\n }\n
    \n { getFileInputComponent() }\n {\n note\n ?

    { note }

    \n : null\n }\n
    \n { getFileInputError() }\n
    \n );\n}\n\nFileInput.propTypes = {\n accept: PropTypes.string,\n disabled: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.instanceOf(Object),\n wrapperClassName: PropTypes.string,\n};\n\nexport default FileInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nclass Input extends Component {\n static getAddon(content) {\n return (\n
    \n { content }\n
    \n );\n }\n\n constructor(props) {\n super(props);\n const {\n value,\n } = this.props;\n\n this.state = {\n initValue: value,\n stateValue: value,\n };\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n const {\n isfield,\n value,\n onChange,\n } = this.props;\n\n if (!isfield && prevProps.value !== value) {\n /* eslint-disable react/no-did-update-set-state */\n this.setState({\n stateValue: value,\n }, () => {\n if (onChange) {\n onChange(value);\n }\n });\n }\n }\n\n handleOnChange(e) {\n const { onChange, isfield } = this.props;\n const inputValue = e.target.value;\n\n if (!isfield) {\n this.setState({\n stateValue: inputValue,\n }, () => {\n if (onChange) {\n onChange(inputValue);\n }\n });\n } else {\n onChange(inputValue);\n }\n }\n\n getLabelStyles() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n getNonLabelWidth() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n getInputError() {\n const { error } = this.props;\n\n return (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null;\n }\n\n getCssClasses() {\n const {\n error,\n theme,\n labelwidth,\n inputgroupaddonleft,\n inputgroupaddonright,\n } = this.props;\n const cssClasses = ['tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (inputgroupaddonleft) {\n cssClasses.push('tyk-form-group--addon-left');\n }\n\n if (inputgroupaddonright) {\n cssClasses.push('tyk-form-group--addon-right');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n }\n\n getInputGroupAddon() {\n const {\n inputgroupaddonleft,\n inputgroupaddonright,\n } = this.props;\n\n return (\n
    \n {\n inputgroupaddonleft\n ? Input.getAddon(inputgroupaddonleft)\n : null\n }\n { this.getInputComponent() }\n {\n inputgroupaddonright\n ? Input.getAddon(inputgroupaddonright)\n : null\n }\n
    \n );\n }\n\n getInputComponent() {\n const {\n isfield, onChange, value, ...rest\n } = this.props;\n const { stateValue } = this.state;\n return (\n \n );\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n reset() {\n const { initValue } = this.state;\n\n this.setState({\n stateValue: initValue,\n });\n }\n\n render() {\n const {\n label,\n id,\n inputgroupaddonleft,\n inputgroupaddonright,\n note,\n readOnly,\n value,\n } = this.props;\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n {\n inputgroupaddonleft || inputgroupaddonright\n ? this.getInputGroupAddon()\n : this.getInputComponent()\n }\n {\n note\n ?

    { note }

    \n : null\n }\n { this.getInputError() }\n
    \n )}\n {\n readOnly &&
    {value || '-'}
    \n }\n \n );\n }\n}\n\nInput.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n isfield: PropTypes.bool,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n inputgroupaddonleft: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n inputgroupaddonright: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n};\n\nexport default Input;\n","import React, { useImperativeHandle, useRef, forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Input2({\n error,\n onChange,\n readOnly,\n id,\n inputgroupaddonleft,\n inputgroupaddonright,\n label,\n labelwidth,\n note,\n theme,\n value,\n wrapperClassName = '',\n ...rest\n}, ref) {\n const inputRef = useRef();\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n inputRef.current.focus();\n },\n }));\n\n const getAddon = (content) => (\n
    \n { content }\n
    \n );\n\n const getLabelStyles = () => ({\n ...labelwidth && {\n flexBasis: labelwidth,\n },\n });\n\n const getNonLabelWidth = () => ({\n ...labelwidth && {\n flexBasis: `calc(100% - ${labelwidth} - 20px)`,\n },\n });\n\n const getInputError = () => (\n (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null\n );\n\n const getCssClasses = () => {\n const cssClasses = [wrapperClassName, 'tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (inputgroupaddonleft) {\n cssClasses.push('tyk-form-group--addon-left');\n }\n\n if (inputgroupaddonright) {\n cssClasses.push('tyk-form-group--addon-right');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n };\n\n const handleOnChange = (e) => {\n onChange(e, e.target.value);\n };\n\n const getInputElement = () => (\n \n );\n\n const getInputGroupAddon = () => (\n
    \n {\n inputgroupaddonleft\n ? getAddon(inputgroupaddonleft)\n : null\n }\n { getInputElement() }\n {\n inputgroupaddonright\n ? getAddon(inputgroupaddonright)\n : null\n }\n
    \n );\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n {\n inputgroupaddonleft || inputgroupaddonright\n ? getInputGroupAddon()\n : getInputElement()\n }\n {\n note\n ?

    { note }

    \n : null\n }\n { getInputError() }\n
    \n )}\n {\n readOnly && (\n
    \n {value || '-'}\n
    \n )\n }\n \n );\n}\n\nInput2.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n inputgroupaddonleft: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n inputgroupaddonright: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default forwardRef(Input2);\n","import { createContext } from 'react';\n\nconst MultiselectContext = createContext();\n\nexport default MultiselectContext;\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport MultiselectContext from './MultiselectContext';\nimport Button from '../../../../components/Button';\nimport Collapsible from '../../../../components/Collapsible';\nimport Loader from '../../../../components/Loader';\n\nconst getItemContent = (context, item) => (\n context.detailsDisplayTemplate\n ? context.detailsDisplayTemplate(item)\n : JSON.stringify(item.details)\n);\n\nconst getItemLoader = (context, item) => {\n const { opened } = context;\n\n return opened[item.id]\n ? \n : null;\n};\n\nfunction MultiselectItem({\n item,\n itemType,\n searchValue,\n onChange,\n}) {\n const isInSearchValue = useCallback((fieldsToSearchOn) => {\n if (fieldsToSearchOn?.length > 0) {\n return fieldsToSearchOn.some((key) => item[key]?.includes(searchValue));\n }\n\n return JSON.stringify(item).includes(searchValue);\n }, [item, searchValue]);\n\n const onAddRemove = useCallback(() => {\n onChange(item);\n }, [onChange, item]);\n\n return (\n \n {\n (context) => (\n isInSearchValue(context.fieldsToSearchOn)\n ? (\n
  • \n
    \n \n {\n context.itemDisplayTemplate\n ? context.itemDisplayTemplate(item)\n : JSON.stringify(item)\n }\n \n \n \n context.onGetItemDetails(item)}\n />\n \n
    \n {\n item.details\n ? (\n \n {getItemContent(context, item)}\n \n )\n : getItemLoader(context, item)\n }\n
  • \n )\n : null\n )\n }\n
    \n );\n}\n\nMultiselectItem.propTypes = {\n item: PropTypes.instanceOf(Object),\n itemType: PropTypes.string,\n searchValue: PropTypes.string,\n onChange: PropTypes.func,\n};\n\nexport default MultiselectItem;\n","import React, { useCallback, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Input from '../../Input';\nimport Icon from '../../../../components/Icon';\nimport Message from '../../../../components/Message';\nimport InfiniteScroller from '../../../../components/InfiniteScroller';\nimport MultiselectItem from './MultiselectItem';\n\nfunction MultiselectPanel({\n inputPlaceholder,\n noItemsMessage,\n items,\n onCustomSearch,\n onChange,\n customSearch,\n panelType,\n serverLoad,\n itemsPageNumber,\n itemsNrPages,\n loadMoreItems,\n}) {\n const [searchValue, setSearchValue] = useState('');\n const itemIndex = useRef(0);\n const itemsListRef = useRef();\n\n function getItemIndex() {\n itemIndex.current += 1;\n\n return itemIndex.current;\n }\n\n function getItemsList() {\n return (\n serverLoad\n ? (\n itemsPageNumber}\n loadMore={loadMoreItems}\n pageNumber={itemsPageNumber}\n >\n { renderListItems() }\n \n )\n : renderListItems()\n );\n }\n\n const searchOnChange = useCallback((value) => {\n if (onCustomSearch) {\n onCustomSearch(value);\n } else {\n setSearchValue(value);\n }\n }, [onCustomSearch]);\n\n const itemChanged = useCallback((item) => {\n let cloneItems = structuredClone(items);\n cloneItems = cloneItems.filter((clonedItem) => item.id !== clonedItem.id);\n\n onChange(cloneItems, item);\n }, [items]);\n\n function renderListItems() {\n return (\n \n {\n items.map((item) => (\n \n ))\n }\n \n );\n }\n\n return (\n
    \n \n }\n name=\"search\"\n onChange={searchOnChange}\n placeholder={inputPlaceholder}\n value={searchValue}\n />\n {\n items.length\n ? getItemsList()\n : (\n \n { noItemsMessage }\n \n )\n }\n
    \n );\n}\n\nMultiselectPanel.propTypes = {\n customSearch: PropTypes.bool,\n onCustomSearch: PropTypes.func,\n panelType: PropTypes.string,\n onChange: PropTypes.func,\n items: PropTypes.instanceOf(Array),\n itemsPageNumber: PropTypes.number,\n itemsNrPages: PropTypes.number,\n inputPlaceholder: PropTypes.string,\n loadMoreItems: PropTypes.func,\n noItemsMessage: PropTypes.string,\n serverLoad: PropTypes.bool,\n};\n\nexport default MultiselectPanel;\n","import React, { useCallback, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport MultiselectPanel from './js/MultiselectPanel';\nimport MultiselectContext from './js/MultiselectContext';\n\nconst diffObjects = (value, items) => items.filter((item) => !value.find((v) => v.id === item.id));\n\nfunction Multiselect({\n customSearch,\n entityNamePlural,\n disabled,\n error,\n getItemDetails,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n items,\n itemsPageNumber,\n itemsNrPages,\n loadMoreItems,\n maxSelections,\n note,\n value,\n onChange,\n wrapperClassName = '',\n}) {\n const [opened, setOpened] = useState({});\n\n const onGetItemDetails = useCallback((item) => {\n setOpened((prevOpened) => ({ ...prevOpened, [item.id]: !prevOpened[item.id] }));\n\n if (getItemDetails) getItemDetails(item);\n }, [getItemDetails]);\n\n function getMultiselectError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n const getCssClasses = useCallback(\n () => [\n wrapperClassName,\n 'tyk-multiselect',\n error && 'has-error',\n ]\n .filter(Boolean)\n .join(' '),\n [wrapperClassName, error],\n );\n\n const itemsChange = useCallback((allItems, item) => {\n const valueClone = structuredClone(value);\n\n valueClone.unshift(item);\n\n onChange(valueClone, item, 'added');\n }, [value]);\n\n const valueChange = useCallback((newValue, item) => {\n onChange(newValue, item, 'removed');\n }, [items]);\n\n const providerValue = useMemo(() => ({\n disabled,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n maxSelections,\n nrSelectedItems: value.length,\n onGetItemDetails,\n opened,\n }), [\n disabled,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n maxSelections,\n value,\n onGetItemDetails,\n opened,\n ]);\n\n return (\n <>\n
    \n \n
    \n
    \n { value.length }\n {' '}\n Selected\n {' '}\n { entityNamePlural }\n
    \n
    \n Select from existing\n { entityNamePlural }\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n {\n note\n ?

    { note }

    \n : null\n }\n
    \n { getMultiselectError() }\n \n );\n}\n\nMultiselect.propTypes = {\n customSearch: PropTypes.func,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n entityNamePlural: PropTypes.string,\n items: PropTypes.instanceOf(Array),\n itemDisplayTemplate: PropTypes.func,\n detailsDisplayTemplate: PropTypes.func,\n fieldsToSearchOn: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n getItemDetails: PropTypes.func,\n itemsPageNumber: PropTypes.number,\n itemsNrPages: PropTypes.number,\n loadMoreItems: PropTypes.func,\n note: PropTypes.string,\n maxSelections: PropTypes.number,\n value: PropTypes.instanceOf(Array),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Multiselect;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * Radio can be used when a user needs to select at most one value from a multiple options.\n */\nfunction Radio({\n label,\n input,\n note,\n inline,\n nospace,\n theme = '',\n disabled,\n readOnly,\n wrapperClassName = '',\n ...rest\n}) {\n const cssClasses = [\n inline ? 'tyk-radio--inline' : 'tyk-radio',\n wrapperClassName,\n nospace && 'no-margin',\n ...(theme ? theme.split(' ').filter(Boolean).map((t) => `tyk-radio--theme-${t}`) : []),\n (readOnly || disabled) && 'tyk-radio--is-disabled',\n ].filter(Boolean).join(' ');\n\n return (\n
    \n \n {note && (\n

    {note}

    \n )}\n
    \n );\n}\n\nRadio.propTypes = {\n /** Used to disable the element */\n disabled: PropTypes.bool,\n /** Readonly prop behaves the same as disabled on radio elements */\n readOnly: PropTypes.bool,\n /** Align radio in the same line with other elements */\n inline: PropTypes.bool,\n /** Set a theme for radio */\n theme: PropTypes.string,\n input: PropTypes.instanceOf(Object),\n /** Adds label to the radio input */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Set name for the radio input */\n name: PropTypes.string,\n /** If set to true removes margin by adding `no-margin` class */\n nospace: PropTypes.bool,\n /** Set initial value for the radio input */\n value: PropTypes.string,\n /** Add note at the bottom of the radio input */\n note: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Radio;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Select(props) {\n const {\n value,\n onChange,\n onBlur,\n isfield,\n label,\n labelwidth,\n id,\n note,\n readOnly,\n options,\n error,\n theme,\n wrapperClassName = '',\n ...rest\n } = props;\n const [stateValue, setStateValue] = useState(value);\n\n useEffect(() => {\n if (!isfield && stateValue !== value) {\n setStateValue(value);\n if (onChange) onChange(value);\n }\n }, [stateValue, value]);\n\n const handleOnChange = useCallback((e) => {\n const selectedValue = options.find((option) => option.id === e.target.value);\n\n if (!isfield) {\n setStateValue(selectedValue);\n }\n onChange(selectedValue.id ? selectedValue : null);\n }, [options, isfield, onChange]);\n\n const handleOnBlur = useCallback(() => {\n if (onBlur) {\n onBlur(value);\n }\n }, [onBlur]);\n\n // eslint-disable-next-line arrow-body-style\n const getSelectError = useCallback(() => {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }, [error]);\n\n const getCssClasses = useCallback(\n () => [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' '),\n [wrapperClassName, theme, labelwidth, error],\n );\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const getNonLabelWidth = useCallback(() => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n }, [labelwidth]);\n\n const getSelectComponent = useCallback(() => {\n const selectValue = isfield && value ? value : stateValue;\n\n return (\n \n {\n options.map((option) => (\n \n ))\n }\n \n );\n }, [isfield, value, stateValue, handleOnChange, handleOnBlur, options, rest]);\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n { getSelectComponent() }\n {\n note\n ?

    { note }

    \n : null\n }\n { getSelectError() }\n
    \n )}\n {readOnly &&
    {value || '-'}
    }\n \n );\n}\n\nSelect.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n isfield: PropTypes.bool,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n options: PropTypes.instanceOf(Array),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Select;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../../../components/Message';\nimport List from '../../../components/List';\nimport Icon from '../../../components/Icon';\n\nfunction SelectableList(props) {\n const {\n checkboxalticon,\n items,\n itemTemplate,\n value,\n noItemsMessage = 'No items in the list',\n onChange,\n theme,\n primaryKey,\n wrapperClassName = '',\n } = props;\n\n const handleOnSelect = (event) => {\n const newSelectedItems = structuredClone(value);\n const elemPosition = newSelectedItems.findIndex(\n (id) => JSON.stringify(id) === JSON.stringify(\n Array.isArray(id)\n ? event.target.value.split(',')\n : event.target.value,\n ),\n );\n\n if (event.target.checked && elemPosition === -1) {\n const tempValue = event.target.value.split(',');\n const finalValue = tempValue.length > 1 ? tempValue : event.target.value;\n\n newSelectedItems.push(finalValue);\n } else if (!event.target.checked && elemPosition > -1) {\n newSelectedItems.splice(elemPosition, 1);\n }\n\n if (onChange) {\n onChange(newSelectedItems);\n }\n };\n\n const getListItemCssClassName = (isActive) => {\n const cssClasses = [];\n\n if (checkboxalticon) {\n cssClasses.push('tyk-selectable-list__item--with-icon');\n }\n\n if (isActive) {\n cssClasses.push('tyk-selectable-list__item--active');\n }\n\n return cssClasses.join(' ');\n };\n\n const isChecked = (inputValue, itemValue) => Boolean(\n inputValue.find((tvalue) => JSON.stringify(itemValue) === JSON.stringify(tvalue)),\n );\n\n return (\n \n {\n !items.length\n ? (\n
  • \n \n {noItemsMessage}\n \n
  • \n )\n : items.map((item, index) => (\n \n \n \n ))\n }\n
    \n );\n}\n\nSelectableList.propTypes = {\n items: PropTypes.instanceOf(Array),\n itemTemplate: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n PropTypes.func,\n ]),\n value: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n primaryKey: PropTypes.string,\n noItemsMessage: PropTypes.string,\n checkboxalticon: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n theme: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\n\nSelectableList.defaultProps = {\n items: [],\n primaryKey: 'id',\n value: [],\n};\n\nexport default SelectableList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Textarea({\n id,\n input,\n label,\n note,\n error,\n theme,\n labelwidth,\n value,\n readOnly,\n wrapperClassName,\n ...rest\n}) {\n const classes = [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const getLabelStyles = () => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n };\n\n const getNonLabelWidth = () => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n };\n\n function getTextareaError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n \n { value }\n \n {\n note\n ?

    { note }

    \n : null\n }\n {getTextareaError()}\n
    \n )}\n {readOnly &&
    {value || '-'}
    }\n \n );\n}\n\nTextarea.propTypes = {\n /** Disable the component */\n disabled: PropTypes.bool,\n /** Displays only the text value of the component, or \"-\" if no value is set */\n readOnly: PropTypes.bool,\n input: PropTypes.instanceOf(Object),\n /** Set an error message for the component and the component is rendered in the error state */\n error: PropTypes.string,\n /** Adds a label to the component */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Sets the width of the label */\n labelwidth: PropTypes.string,\n /** Set a name for the component */\n name: PropTypes.string,\n /** Adds additional information under the component */\n note: PropTypes.string,\n /** Callback function executed on value change */\n onChange: PropTypes.func,\n id: PropTypes.string,\n /** Set a theme for the component */\n theme: PropTypes.string,\n /** Set the value of the component */\n value: PropTypes.string,\n /** CSS classes added to the wrapper of the component */\n wrapperClassName: PropTypes.string,\n};\n\nexport default Textarea;\n","import { createContext } from 'react';\n\nconst ToggleContext = createContext();\n\nexport default ToggleContext;\n","import React, { Component, createRef } from 'react';\nimport PropTypes from 'prop-types';\n\nclass ToggleItem extends Component {\n static getNotchCssClasses(context) {\n return ['tyk-toggle__item-notch', `tyk-toggle__item-notch--${context.type}`].join(' ');\n }\n\n constructor(props) {\n super(props);\n\n this.itemRef = createRef();\n }\n\n componentDidMount() {\n const { context, value } = this.props;\n\n if (context.value === value) {\n context.saveSelectedRef(this.itemRef);\n }\n }\n\n componentDidUpdate(prevProps) {\n const { context, value } = this.props;\n\n if (prevProps.context.value !== context.value && context.value === value) {\n context.saveSelectedRef(this.itemRef);\n }\n }\n\n onChange(event) {\n const { context, value } = this.props;\n const { disabled, readOnly } = context;\n\n if (disabled || readOnly) {\n return;\n }\n\n context.onItemSelected(context.type === 'single' ? !context.value : value, event);\n }\n\n render() {\n const {\n context, label, name, value,\n } = this.props;\n return (\n
  • \n \n
  • \n );\n }\n}\n\nToggleItem.propTypes = {\n context: PropTypes.instanceOf(Object),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n name: PropTypes.string,\n value: PropTypes.string,\n};\n\nexport default ToggleItem;\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToggleContext from './ToggleContext';\nimport ToggleItem from './ToggleItem';\n\nfunction ToggleItemWrapper({ children, ...rest }, ref) {\n return (\n \n {(context) => (\n \n {children}\n \n )}\n \n );\n}\n\nToggleItemWrapper.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nexport default forwardRef(ToggleItemWrapper);\n","import React, {\n useCallback, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToggleContext from './js/ToggleContext';\nimport ToggleItemWrapper from './js/ToggleItemWrapper';\n\nfunction Toggle({\n className,\n disabled,\n readOnly,\n size,\n theme,\n direction,\n onDark,\n wrapperClassName = '',\n onChange,\n labelwidth,\n label,\n separated,\n children,\n type,\n value,\n error,\n}) {\n const [selectedRef, setSelectedRef] = useState(null);\n const notchRef = useRef();\n const toggleRef = useRef();\n\n const classes = [\n wrapperClassName,\n className,\n 'tyk-toggle',\n `tyk-toggle--disabled-${readOnly || disabled}`,\n `tyk-toggle--${size || 'md'}`,\n `tyk-toggle--${theme}`,\n `tyk-toggle--${direction}`,\n onDark && 'tyk-toggle--on-dark',\n ].filter(Boolean).join(' ');\n\n const onItemSelected = useCallback((itemValue, event) => {\n if (!onChange) return;\n onChange(itemValue, event);\n }, [onChange]);\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const positionNotch = useCallback(() => {\n if (!selectedRef || separated) {\n return {};\n }\n\n const selectedWidth = selectedRef.current.offsetWidth;\n const selectedOffset = selectedRef.current.getBoundingClientRect().left;\n const toggleOffset = toggleRef.current.getBoundingClientRect().left;\n const left = selectedOffset - toggleOffset;\n\n return {\n left: `${left + 4}px`,\n width: `${selectedWidth - 8}px`,\n };\n }, [selectedRef, separated]);\n\n const contextValue = useMemo(() => ({\n disabled,\n readOnly,\n onItemSelected,\n saveSelectedRef: setSelectedRef,\n separated,\n type,\n value,\n }), [disabled, readOnly, onItemSelected, separated, type, value]);\n\n return (\n <>\n
    \n \n {\n label\n ? \n : null\n }\n
      \n { children }\n {\n type === 'multiple' && !separated\n ?
    • \n : null\n }\n
    \n \n
    \n {\n error && (\n

    \n { error }\n

    \n )\n }\n \n );\n}\n\nToggle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n error: PropTypes.string,\n onChange: PropTypes.func,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n theme: PropTypes.string,\n type: PropTypes.string, // single || multiple\n size: PropTypes.string,\n separated: PropTypes.bool,\n direction: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n ]),\n onDark: PropTypes.bool,\n wrapperClassName: PropTypes.string,\n};\n\nToggle.defaultProps = {\n separated: false,\n theme: 'primary',\n type: 'single',\n direction: 'row',\n};\n\nToggle.Item = ToggleItemWrapper;\n\nexport default Toggle;\n","const config = {\n FORM_DEBOUNCE: 200,\n};\n\nexport function setConfig(key, val) {\n config[key] = val;\n}\n\nexport default config;\n","import React, { useCallback, useEffect, useState } from 'react';\n\nimport config from '../config/config';\n\nfunction getValueFromPath(obj, path) {\n // turn 'aaa.qqq[2].bbb[5][3].mmm' into ['aaa', 'qqq', '2', 'bbb', '5', '3', 'mmm']\n const indexes = path.split(/[\\][.]/).filter(Boolean);\n return indexes.reduce((acc, v) => (acc ? acc[v] : acc), obj);\n}\n\nfunction debounce(f, limit) {\n let timeoutId;\n return (...args) => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(f, limit, ...args);\n };\n}\n\n/* eslint-disable react/prop-types, react/function-component-definition */\n/**\n * A wrapper function that \"prepares\" a tyk-ui form component to be used with the formik library.\n * It handles things like setting the value of the component, change events, error state,\n * and also has a default debounce time for when the change event is triggered.\n */\nconst wrapper = (Component, options) => ({ field, form, ...properties }) => {\n const DEFAULT_DEBOUNCE_TIME_MS = typeof config.FORM_DEBOUNCE === 'number' ? config.FORM_DEBOUNCE : 200;\n const [myValue, setMyValue] = useState(field.value);\n const opts = {\n getOnChangeProps: () => ({}),\n hasIsFieldProp: false,\n ...options,\n };\n\n const executeDebounced = useCallback((() => {\n const fn = (f) => f();\n if (\n properties.debounce === false\n || (config.FORM_DEBOUNCE === false && !properties.debounce)\n ) {\n return fn;\n }\n const timeout = typeof properties.debounce === 'number'\n ? properties.debounce\n : DEFAULT_DEBOUNCE_TIME_MS;\n return debounce(fn, timeout);\n })(), []);\n\n const getValue = (v) => {\n if (v?.target) {\n if (v.target.nodeName === 'INPUT' && (v.target.type === 'checkbox' || v.target.type === 'radio')) {\n return v.target.checked;\n }\n return v.target.value;\n }\n return v;\n };\n\n const onChange = (valueOrEvent) => {\n const value = getValue(valueOrEvent);\n const onChangeProps = opts.getOnChangeProps(value, field, form, properties);\n\n const newValue = onChangeProps.value || properties.value || value;\n executeDebounced(() => {\n if (typeof properties.onChange === 'function') {\n properties.onChange(newValue);\n }\n field.onChange({ target: { name: field.name, value: newValue, ...onChangeProps } });\n });\n setMyValue(newValue);\n };\n\n const formError = (getValueFromPath(form.touched, field.name) || Boolean(form.submitCount))\n && getValueFromPath(form.errors, field.name);\n const error = typeof formError === 'string' ? formError : '';\n\n useEffect(() => {\n setMyValue(field.value);\n }, [field.value]);\n\n // eslint-disable-next-line no-param-reassign\n if (form.status?.disabled) properties.disabled = true;\n\n const componentProps = { ...properties };\n delete componentProps.debounce;\n\n if (Object.hasOwn(componentProps, 'className') && componentProps.className === undefined) delete componentProps.className;\n if (Object.hasOwn(componentProps, 'children') && componentProps.children === undefined) delete componentProps.children;\n\n return (\n \n );\n};\n\nexport default wrapper;\n","import wrapper from '../../../utils/formik';\nimport Checkbox from '../../components/Checkbox';\n\nexport default wrapper(Checkbox, {\n getOnChangeProps: (value) => ({\n checked: value,\n }),\n});\n","import wrapper from '../../../utils/formik';\nimport CodeEditor from '../../components/CodeEditor';\n\nexport default wrapper(CodeEditor);\n","import wrapper from '../../../utils/formik';\nimport Combobox from '../../components/Combobox';\n\nexport default wrapper(Combobox);\n","import wrapper from '../../../utils/formik';\nimport Combobox2 from '../../components/Combobox2';\n\nexport default wrapper(Combobox2);\n","import wrapper from '../../../utils/formik';\nimport DatePicker from '../../components/DatePicker';\n\nexport default wrapper(DatePicker);\n","import wrapper from '../../../utils/formik';\nimport EditableList from '../../components/EditableList';\n\nexport default wrapper(EditableList, {\n getOnChangeProps: (value) => ({ value: value || [] }),\n});\n","import wrapper from '../../../utils/formik';\nimport EditableList2 from '../../components/EditableList2';\n\nexport default wrapper(EditableList2);\n","import wrapper from '../../../utils/formik';\nimport FileInput from '../../components/FileInput';\n\nexport default wrapper(FileInput);\n","import wrapper from '../../../utils/formik';\nimport Input from '../../components/Input';\n\nexport default wrapper(Input, { hasIsFieldProp: true });\n","import wrapper from '../../../utils/formik';\nimport Input2 from '../../components/Input2';\n\nexport default wrapper(Input2);\n","import wrapper from '../../../utils/formik';\nimport MultiSelect from '../../components/Multiselect';\n\nexport default wrapper(MultiSelect);\n","import wrapper from '../../../utils/formik';\nimport Radio from '../../components/Radio';\n\nexport default wrapper(Radio, {\n getOnChangeProps: (value, field, form, properties) => ({\n checked: value === properties.value,\n value: properties.value,\n }),\n});\n","import wrapper from '../../../utils/formik';\nimport Select from '../../components/Select';\n\nexport default wrapper(Select, { hasIsFieldProp: true });\n","import wrapper from '../../../utils/formik';\nimport SelectableList from '../../components/SelectableList';\n\nexport default wrapper(SelectableList);\n","import wrapper from '../../../utils/formik';\nimport Textarea from '../../components/Textarea';\n\nexport default wrapper(Textarea);\n","import wrapper from '../../../utils/formik';\nimport Toggle from '../../components/Toggle';\n\nexport default wrapper(Toggle);\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport CodeEditor from '../../components/CodeEditor';\n\nclass FieldCodeEditor extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.prop;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldCodeEditor.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCodeEditor;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Combobox from '../../components/Combobox';\n\nclass FieldCombobox extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getComboboxError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldCombobox.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCombobox;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Dropdown from '../../components/Dropdown';\n\nclass FieldDropdown extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n render() {\n const {\n children,\n input,\n ...rest\n } = this.props;\n\n return (\n \n {children}\n \n );\n }\n}\n\nFieldDropdown.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldDropdown;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Pagination from '../../components/Pagination';\n\nfunction FieldPagination(props) {\n const { input, ...rest } = props;\n\n return (\n \n );\n}\n\nFieldPagination.propTypes = {\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldPagination;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Combobox2 from '../../components/Combobox2';\n\nfunction FieldCombobox2(props) {\n const { input, meta, validationmessages } = props;\n\n const getComboboxError = () => {\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n return message;\n };\n\n const handleOnChange = (value) => {\n const { onChange } = input;\n onChange(fromJS(value));\n };\n\n return (\n \n );\n}\n\nFieldCombobox2.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCombobox2;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport DatePicker from '../../components/DatePicker';\n\nfunction FormDatePicker(props) {\n const {\n input,\n meta,\n validationmessages,\n ...rest\n } = props;\n\n const getDatePickerError = () => {\n const { touched, error } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n }\n\n return message;\n };\n\n const handleOnChange = (value) => {\n const { onChange } = input;\n\n onChange(fromJS(value));\n };\n\n return (\n \n );\n}\n\nFormDatePicker.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FormDatePicker;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport EditableList from '../../components/EditableList';\n\nclass FieldEditableList extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getEditableListError() {\n const { meta, validationmessages } = this.props;\n const { touched, error } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldEditableList.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldEditableList;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport FileInput from '../../components/FileInput';\n\nclass FieldFileInput extends Component {\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldFileInput.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldFileInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Input from '../../components/Input';\n\nclass FieldInput extends Component {\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldInput.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Multiselect from '../../components/Multiselect';\n\nclass FieldMultiselect extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getMultiselectError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldMultiselect.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldMultiselect;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Select from '../../components/Select';\n\nclass FieldSelect extends Component {\n constructor(props) {\n super(props);\n\n this.handleEvent = this.handleEvent.bind(this);\n }\n\n handleEvent(selectValue) {\n const { input } = this.props;\n const { onChange, value } = input;\n\n onChange(fromJS(selectValue !== undefined ? selectValue : value));\n }\n\n getSelectError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldSelect.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldSelect;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport SelectableList from '../../components/SelectableList';\n\nclass FieldSelectableList extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n\n input.onChange(fromJS(value));\n }\n\n render() {\n const { children, ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldSelectableList.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.node,\n ]),\n onChange: PropTypes.func,\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldSelectableList;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Toggle from '../../components/Toggle';\n\nclass FieldToggle extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n\n input.onChange(fromJS(value));\n }\n\n render() {\n const { children, ...props } = this.props;\n\n return (\n \n {children}\n \n );\n }\n}\n\nFieldToggle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.node,\n ]),\n onChange: PropTypes.func,\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldToggle;\n","import { useEffect, useRef } from 'react';\n\n/** @component */\nexport default function useInterval(callback, delay, ...args) {\n const savedCallback = useRef();\n\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n // eslint-disable-next-line consistent-return\n useEffect(() => {\n function tick() {\n savedCallback.current(...args);\n }\n if (delay !== null && delay !== undefined) {\n const id = setInterval(tick, delay);\n return () => clearInterval(id);\n }\n }, [delay]);\n}\n"],"names":["global","this","window","define","module","deps","payload","arguments","length","modules","payloads","original","apply","console","error","trace","ns","root","_require","parentId","callback","lookup","undefined","Object","prototype","toString","call","params","i","l","dep","require","push","packagedModule","normalizeModule","moduleName","indexOf","chunks","split","charAt","slice","join","previous","replace","exports","mod","id","uri","packaged","ace","defineProp","obj","name","val","defineProperty","value","enumerable","writable","configurable","String","startsWith","searchString","position","lastIndexOf","endsWith","subjectString","lastIndex","repeat","count","result","string","includes","str","assign","target","TypeError","output","index","source","keys","forEach","key","values","o","map","k","Array","find","predicate","len","thisArg","kValue","findIndex","item","fill","O","relativeStart","Math","max","min","end","relativeEnd","final","of","deepCopy","copy","isArray","last","a","stringReverse","reverse","stringRepeat","trimBeginRegexp","trimEndRegexp","stringTrimLeft","stringTrimRight","copyObject","copyArray","array","arrayToMap","arr","createMap","props","create","arrayRemove","splice","escapeRegExp","escapeHTML","getMatchOffsets","regExp","matches","offset","deferredCall","fcn","timer","deferred","timeout","cancel","setTimeout","schedule","clearTimeout","isPending","delayedCall","defaultTimeout","_self","delay","supportsLookbehind","RegExp","e","skipEmptyMatch","line","supportsUnicodeFlag","codePointAt","OS","LINUX","MAC","WINDOWS","getOS","isMac","isLinux","_navigator","navigator","os","exec","platform","toLowerCase","ua","userAgent","appName","isWin","isIE","parseFloat","match","isOldIE","isGecko","isMozilla","isOpera","opera","isWebKit","isChrome","isSafari","isEdge","isAIR","isAndroid","isChromeOS","isIOS","test","MSStream","isMobile","strictCSP","useragent","buildDom","parent","refs","txt","document","createTextNode","appendChild","els","ch","el","createElement","options","childIndex","n","className","style","cssText","setAttribute","getDocumentHead","doc","head","getElementsByTagName","documentElement","tag","createElementNS","removeChildren","element","innerHTML","textContent","ownerDocument","createFragment","createDocumentFragment","hasCssClass","addCssClass","removeCssClass","classes","toggleCssClass","add","setCssClass","node","include","hasCssString","sheets","querySelectorAll","removeElementById","getElementById","remove","cssCache","insertPendingStyles","cache","importCssString","container","getRootNode","insertBefore","firstChild","useStrictCSP","importCssStylsheet","rel","href","scrollbarWidth","inner","width","minWidth","height","display","outer","left","overflow","body","noScrollbar","offsetWidth","withScrollbar","clientWidth","removeChild","computedStyle","getComputedStyle","setStyle","styles","property","HAS_CSS_ANIMATION","HAS_CSS_TRANSFORMS","HI_DPI","devicePixelRatio","div","transform","animationName","translate","tx","ty","round","top","dom","get","url","xhr","XMLHttpRequest","open","onreadystatechange","readyState","responseText","send","loadScript","path","s","src","onload","_","isAbort","qualifyURL","inherits","ctor","superCtor","super_","constructor","mixin","implement","proto","EventEmitter","stopPropagation","propagationStopped","preventDefault","defaultPrevented","_emit","_dispatchEvent","eventName","_eventRegistry","_defaultHandlers","listeners","defaultHandler","type","_signal","once","on","newCallback","off","Promise","resolve","setDefaultHandler","handlers","_disabled_","old","disabled","removeDefaultHandler","pop","addEventListener","capturing","removeListener","removeEventListener","removeAllListeners","reportError","msg","data","Error","messages","oop","optionsProvider","setOptions","optList","setOption","getOptions","optionNames","$options","filter","hidden","getOption","opt","warn","forwardTo","handlesSet","set","message","AppConfig","$defaultOptions","defineOptions","initialValue","resetOptions","setDefaultValue","opts","setDefaultValues","optionHash","setMessages","nls","translated","isDark","cssClass","$id","lang","net","customLoader","workerPath","modePath","themePath","basePath","suffix","$moduleUrls","loadWorkerFromBlob","sharedPopups","hasOwnProperty","all","$modes","moduleUrl","component","parts","sep","base","re","setModuleUrl","subst","setLoader","cb","dynamicModules","$loading","$loaded","loadModule","onLoad","loadedModule","moduleType","load","afterLoad","loader","err","reportErrorIfPathIsNotConfigured","then","default","$require","setModuleLoader","version","config","init","scriptOptions","scriptUrl","currentScript","_currentScript","currentDocument","scripts","script","getAttribute","attributes","j","attr","m","m1","toUpperCase","Range","startRow","startColumn","endRow","endColumn","start","row","column","isEqual","range","contains","compare","compareRange","cmp","comparePoint","p","containsRange","intersects","isEnd","isStart","setStart","setEnd","inside","insideStart","insideEnd","isMultiLine","compareStart","compareEnd","compareInside","clipRows","firstRow","lastRow","fromPoints","extend","isEmpty","clone","collapseRows","toScreenRange","session","screenPosStart","documentToScreenPosition","screenPosEnd","moveBy","comparePoints","p1","p2","Keys","ret","MODIFIER_KEYS","KEY_MODS","FUNCTION_KEYS","PRINTABLE_KEYS","parseInt","enter","escape","esc","del","mods","pow","x","keyCodeToString","keyCode","keyString","fromCharCode","activeListenerOptions","pressedKeys","ts","getListenerOptions","createComment","passive","detectListenerOptionsSupport","EventListener","elem","destroy","addListener","destroyer","$toDestroy","stopEvent","getButton","ctrlKey","altKey","shiftKey","button","capture","eventHandler","releaseCaptureHandler","onMouseUp","addMouseWheelListener","deltaX","deltaY","deltaMode","DOM_DELTA_PIXEL","wheelX","wheelY","DOM_DELTA_LINE","DOM_DELTA_PAGE","addMultiMouseDownListener","elements","timeouts","callbackName","startX","startY","clicks","eventNames","onMousedown","detail","isNewClick","abs","clientX","clientY","_clicks","getModifierHash","metaKey","normalizeCommandKeys","hashId","getModifierState","altGr","location","keyLocation","timeStamp","resetPressedKeys","getModifierString","addCommandKeyListener","isOldGecko","lastKeyDownKeyCode","lastDefaultPrevented","postMessage","postMessageId","nextTick","win","messageName","listener","$idleBlocked","onIdle","handler","$idleBlockId","blockIdle","nextFrame","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","bind","$cancelT","lineMode","pasteCancelled","Date","now","event","clipboard","BROKEN_SETDATA","USE_IE_MIME_TYPE","HAS_FOCUS_ARGS","MAX_LINE_LENGTH","KEYS","MODS","valueResetRegex","TextInput","parentNode","host","text","opacity","copied","pasted","inComposition","sendingText","tempStyle","fontSize","commandMode","ignoreFocusEvents","lastValue","lastSelectionStart","lastSelectionEnd","lastRestoreEnd","rowStart","Number","MAX_SAFE_INTEGER","rowEnd","MIN_SAFE_INTEGER","numberOfExtraLines","isFocused","activeElement","setNumberOfExtraLines","number","setAriaOptions","activeDescendant","inline","removeAttribute","role","setLabel","selection","cursor","onBlur","hasFocus","onFocus","resetSelection","$focusScroll","focus","renderer","enableKeyboardAccessibility","preventScroll","isTransformed","getBoundingClientRect","ancestors","t","parentElement","nodeType","blur","curOp","commandName","command","isUserAction","docChanged","selectionChanged","onCompositionEnd","positionToSelection","getLine","newValue","selectionEnd","setSelectionRange","afterContextMenu","selectionStart","getRange","lines","prevLine","nextLine","inputHandler","setInputHandler","getInputHandler","sendText","fromInput","onPaste","extendLeft","extendRight","inserted","restoreStart","restoreEnd","endIndex","shouldReset","onTextInput","onInput","onCompositionUpdate","inputType","execCommand","handleClipboardData","forceIEMime","clipboardData","mime","setData","getData","doCopy","isCut","getCopyText","onCut","onCopy","select","onCommandKey","isAllSelected","selectAll","$readOnly","cancelComposition","useTextareaForIME","markerRange","context","compositionStartOffset","closeTimeout","syncComposition","onContextMenuClose","$isMousePressed","$keepTextAreaAtCursor","$moveTextAreaToCursor","onCompositionStart","getSelectionRange","msGetInputContext","getInputContext","getElement","setCommandMode","readOnly","setReadOnly","setCopyWithEmptySelection","onContextMenu","domEvent","moveToMouse","bringToFront","characterWidth","rect","borderTopWidth","borderLeftWidth","maxTop","bottom","clientHeight","move","textInput","scroller","typingResetTimeout","typing","detectArrowKeys","$mouseHandler","isMousePressed","modifier","up","home","option","down","right","shift","commands","findKeyCommand","addIosSelectionHandler","$setUserAgentForTests","_isMobile","_isIOS","DefaultHandlers","mouseHandler","$clickSelection","editor","onMouseDown","onDoubleClick","onTripleClick","onQuadClick","onMouseWheel","selectByLines","extendSelectionBy","selectByWords","ev","inSelection","pos","getDocumentPosition","mousedownEvent","moveToPosition","time","$focusTimeout","inMultiSelectMode","captureMouse","startSelect","setState","waitForClickSelection","screenToTextCoordinates","y","getShiftKey","selectToPosition","anchor","orientedRange","calcRangeOrientation","setSelectionAnchor","scrollCursorIntoView","unitName","cmpStart","cmpEnd","selectByLinesEnd","unsetStyle","focusWait","ax","ay","bx","by","distance","sqrt","getBracketRange","getWordRange","getLineRange","getAccelKey","$lastScroll","vx","vy","allowed","prevScroll","dt","direction","canScroll","isScrollableBy","speed","scrollBy","stop","selectEnd","selectAllEnd","selectByWordsEnd","extendStatics","__extends","d","b","setPrototypeOf","__proto__","__","__values","Symbol","iterator","next","done","CLASSNAME","Tooltip","isOpen","$element","$parentNode","$init","setText","setHtml","html","setPosition","setClassName","setTheme","theme","show","hide","getHeight","offsetHeight","getWidth","popupManager","PopupManager","popups","addPopup","popup","updatePopups","removePopup","e_1","_a","e_2","_b","sort","priority","visiblepopups","_c","_d","shouldDisplay","visiblepopups_1","visiblepopups_1_1","visiblePopup","doPopupsOverlap","e_2_1","return","e_1_1","popupA","popupB","rectA","rectB","HoverTooltip","_super","_this","lastT","idleTime","lastEvent","onMouseOut","onMouseMove","waitForHover","whiteSpace","pointerEvents","tabIndex","addToEditor","getMouseEventTarget","removeFromEditor","isOutsideOfText","$gatherData","docPos","screenPos","pixelToScreenCoordinates","clippedPos","setDataProvider","showForRange","domNode","startingEvent","$registerCloseEvents","addMarker","textToScreenCoordinates","pageX","maxHeight","labelHeight","labelWidth","spaceBelow","innerHeight","pageY","lineHeight","isAbove","innerWidth","marker","$markerSession","removeMarker","$removeCloseEvents","relatedTarget","currentTarget","classList","GutterHandler","tooltipTimeout","mouseEvent","gutter","$gutterLayer","tooltip","GutterTooltip","hideTooltip","moveTooltip","getRegion","selectTo","srcElement","$tooltipFollowsMouse","getLength","screenRow","$pos","documentToScreenRow","showTooltip","gutterRow","getGutterRow","gutterCell","$lines","querySelector","$gutter","windowWidth","windowHeight","singular","plural","warning","info","annotation","annotationsInRow","$annotations","from","fold","getFoldLine","$showFoldedAnnotations","mostSevereAnnotationInFoldType","annotationsInFold","annotationType","summaryFoldedAnnotations","concat","annotationsToSummaryString","annotationMessages","iconClassName","$useSvgGutterIcons","annotationLabels","tooltipContent","annotations","summary","annotationTypes_1","annotationTypes_1_1","label","MouseEvent","$inSelection","documentRow","selectionRange","DragdropHandler","dragImage","dragSelectionMarker","timerId","dragCursor","dragOperation","isInternal","autoScrollStartTime","cursorMovedTime","cursorPointOnCaretMoved","mouseTarget","counter","onDragInterval","prevCursor","vMovement","hMovement","moveCursorToPosition","calcDistance","layerConfig","editorRect","offsets","nearestXOffset","nearestYOffset","scrollCursor","vScroll","hScroll","autoScroll","addDragMarker","toOrientedRange","getSelectionStyle","clearSelection","$cursorLayer","setBlinking","clearInterval","setInterval","clearDragMarker","fromOrientedRange","$resetCursorStyle","onDragStart","cancelDrag","draggable","self","dataTransfer","effectAllowed","getReadOnly","setDragImage","clearData","getTextRange","onDragEnd","dropEffect","setCursorStyle","onDragEnter","canAccept","getDropEffect","onDragOver","onMouseMoveTimer","onDragLeave","onDrop","moveText","dropData","insert","types","some","copyAllowed","copyModifierState","dragWait","getDragDelay","startDrag","dragWaitEnd","dragReadyEnd","cursorStyle","onMouseDrag","state","dragDrop","$dragEnabled","eventTarget","unselectable","addTouchListeners","touchStartT","longTouchTimer","animationTimer","pressed","contextMenu","mode","animationSteps","clickCount","vX","vY","showContextMenu","handleClick","selected","hasUndo","action","getUndoManager","replaceChild","class","readText","writeText","ontouchstart","ontouchend","onclick","pagePos","leftOffset","scrollLeft","hideContextMenu","handleLongTap","selectWord","touches","h","w","touchObj","setRange","switchToSelectionMode","cursorPos","getPixelPosition","anchorPos","offsetTop","offsetLeft","weightedDistance","diff1","diff2","oldScrollTop","getScrollTop","DefaultGutterHandler","MouseHandler","focusEditor","onMouseEvent","scrollBarV","scrollBarH","Boolean","gutterEl","$dragDelay","character","mousemove","$scrollSpeed","mouseMoveHandler","which","releaseMouse","$mouseMoved","onCaptureEnd","onOperationEnd","onCaptureInterval","$onCaptureMouseMove","endOperation","startOperation","cancelContextMenu","scrollSpeed","dragDelay","dragEnabled","focusTimeout","tooltipFollowsMouse","FoldHandler","getFoldAt","removeFold","expandFold","getUseWrapMode","foldWidgets","onFoldWidgetClick","getParentFoldRangeData","firstRange","addFold","keyUtil","KeyBinding","$editor","$data","$handlers","kb","removeKeyboardHandler","$defaultHandler","addKeyboardHandler","setKeyboardHandler","handleKeyboard","attach","detach","getKeyboardHandler","getStatusText","$callKeyboardHandlers","toExecute","success","args","passEvent","dir","hiLevel","lastArabic","hasUBAT_B","hasUBAT_S","impTab_LTR","impTab_RTL","ET","BN","UnicodeTBL00","UnicodeTBL20","_invertLevel","lev","levels","_array","lo","hi","tmp","_getCharClass","chars","ix","wType","nType","cType","c","rtlCandidate","_getCharacterType","uc","charCodeAt","L","R","EN","ON_R","AN","R_H","B","RLE","DOT","doBidiReorder","textCharTypes","isRtl","logicalFromVisual","bidiLevels","charTypes","impTab","prevState","newClass","newLevel","newState","condPos","_computeLevels","hasBidiCharacters","getVisualFromLogicalIdx","logIdx","rowMap","bidiUtil","bidiRE","BidiHandler","bidiMap","currentRow","charWidths","EOL","showInvisibles","isRtlDir","$isRtl","wrapIndent","EOF","contentWidth","fontMetrics","rtlLineOffset","wrapOffset","isMoveLeftOperation","seenBidi","getValue","isBidiRow","docRow","splitIndex","updateRowLine","updateBidiMap","onChange","delta","getDocumentRow","rowCache","$screenRowCache","$getRowCacheIndex","$docRowCache","getSplitIndex","currentIndex","prevIndex","endOfLine","$useWrapMode","splits","$wrapData","indent","substring","size","isFullWidth","getScreenTabSize","$main","substr","markAsDirty","updateCharacterWidths","$characterSize","bidiCharWidth","$measureCharWidth","setShowInvisibles","setEolChar","eolChar","setContentWidth","isRtlLine","setRtlDirection","getCursorPosition","getSelectionAnchor","$bidiHandler","removeInLine","getPosLeft","col","leftBoundary","logicalIdx","getOverwrite","visualIdx","getSelections","startCol","endCol","level","selections","selColMin","selColMax","isSelected","isSelectedPrev","visIdx","offsetToCol","posX","charWidth","Selection","getDocument","lead","createAnchor","$silent","$cursorChanged","$isEmpty","$keepDesiredColumnOnChange","$desiredColumn","$anchorChanged","getCursor","getPosition","setAnchor","getAnchor","getSelectionLead","isBackwards","$setSelection","MAX_VALUE","anchorRow","anchorColumn","cursorRow","cursorColumn","wasEmpty","wasMultiselect","$moveSelection","mover","moveCursorTo","moveTo","selectUp","moveCursorUp","selectDown","moveCursorDown","selectRight","moveCursorRight","selectLeft","moveCursorLeft","selectLineStart","moveCursorLineStart","selectLineEnd","moveCursorLineEnd","selectFileEnd","moveCursorFileEnd","selectFileStart","moveCursorFileStart","selectWordRight","moveCursorWordRight","selectWordLeft","moveCursorWordLeft","selectAWord","getAWordRange","excludeLastChar","foldLine","selectLine","moveCursorBy","wouldMoveIntoSoftTab","tabSize","isTabStop","getTabSize","getNavigateWithinSoftTabs","firstColumnPosition","screenToDocumentPosition","leadingSpace","getDisplayLine","$useEmacsStyleLineStart","lineEnd","getDocumentLastRowColumnPosition","textEnd","search","moveCursorLongWordRight","rightOfCursor","nonTokenRe","tokenRe","moveCursorLongWordLeft","getFoldStringAt","leftOfCursor","$shortWordEndIndex","whitespaceRe","moveCursorShortWordRight","moveCursorShortWordLeft","$selectLongWords","rows","offsetX","lineWidgets","widget","rowsAbove","rowCount","keepDesiredColumn","moveCursorToScreen","desiredColumn","r","getRangeOfMovements","func","toJSON","rangeCount","ranges","r1","fromJSON","rangeList","toSingleRange","addRange","MAX_TOKEN_COUNT","Tokenizer","rules","states","regExps","matchMappings","ruleRegExps","matchTotal","mapping","defaultToken","flag","splitterRurles","rule","caseInsensitive","unicode","regex","adjustedregex","matchcount","token","groupCount","tokenArray","onMatch","$arrayTokens","$applyToken","digit","removeCapturingGroups","splitRegex","createSplitterRegexp","$setMaxTokenCount","tokens","stack","inChClass","lastCapture","parenOpen","parenClose","square","getLineTokens","startState","currentState","matchAttempts","skipped","consumeLineEnd","merge","unshift","TextHighlightRules","$rules","addRules","prefix","nextState","getRules","embedRules","HighlightRules","escapeRules","append","$embeds","getEmbeds","pushState","popState","normalizeRules","processState","processed","toInsert","stateName","includeName","noEscape","keywordMap","createKeywordMapper","ignoreCase","splitChar","keywords","$keywordList","list","word","getKeywords","$keywords","Behaviour","$behaviours","addBehaviours","behaviours","inherit","getBehaviours","TokenIterator","initialRow","initialColumn","$session","$row","$rowTokens","getTokens","getTokenAt","$tokenIndex","stepBackward","stepForward","getCurrentToken","getCurrentTokenRow","getCurrentTokenColumn","rowTokens","tokenIndex","getCurrentTokenPosition","getCurrentTokenRange","SAFE_INSERT_IN_TOKENS","SAFE_INSERT_BEFORE_TOKENS","contextCache","defaultQuotes","initContext","multiSelect","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","getWrapped","opening","closing","rowDiff","CstyleBehaviour","getWrapBehavioursEnabled","isSaneInsertion","braces","recordAutoInsert","recordMaybeInsert","$findOpeningBracket","isAutoInsertedClosing","popAutoInsertedClosing","isMaybeInsertedClosing","clearMaybeInsertedClosing","openBracePos","findMatchingBracket","next_indent","$getIndent","getTabString","quotes","$mode","$quotes","lineCommentStart","quote","leftChar","rightChar","rightToken","pair","stringBefore","stringAfter","wordRe","isWordBefore","isWordAfter","pairQuotesAfter","$pairQuotesAfter","charBefore","closeDocComment","$matchTokenType","iterator2","bracket","wordChars","code","Mode","$defaultBehaviour","getTokenizer","$tokenizer","$highlightRules","$highlightRuleConfig","blockComment","toggleCommentLines","ignoreBlankLines","shouldRemove","minIndent","Infinity","insertAtTabStop","regexpStart","getUseSoftTabs","uncomment","shouldInsertSpace","commentWithSpace","comment","insertInLine","testRemove","before","after","spaces","lineCommentEnd","regexpEnd","iter","fun","minEmptyLength","floor","toggleBlockComment","colDiff","initialRange","startRange","endRange","getNextLineIndent","tab","checkOutdent","input","autoOutdent","createWorker","createModeDelegates","delegations","scope","functionName","$delegator","method","language","transformAction","param","$behaviour","completionKeywords","ruleItr","aLength","$createKeywordList","getCompletions","score","meta","applyDelta","docLines","doNotValidate","Anchor","$onChange","$clipPositionToDocument","point","moveIfEqual","deltaIsInsert","deltaRowShift","deltaColShift","deltaStart","deltaEnd","$pointsInOrder","$getTransformedPoint","$insertRight","noClip","point1","point2","equalPointsInOrder","bColIsAfter","Document","textOrLines","insertMergedLines","setValue","getAllLines","getNewLineCharacter","$detectNewLine","$autoNewLine","$newLineMode","setNewLineMode","newLineMode","getNewLineMode","isNewLine","getLines","getLinesForRange","insertLines","insertFullLines","removeLines","removeFullLines","insertNewLine","$split","clonePos","$clipPosition","deleteFirstNewLine","deleteLastNewLine","deletedLines","removeNewLine","applyDeltas","deltas","revertDeltas","revertDelta","isInsert","$splitAndapplyLargeDelta","$safeApplyDelta","docLength","MAX","to","chunk","indexToPosition","newlineLength","positionToIndex","BackgroundTokenizer","tokenizer","running","currentLine","$worker","workerStart","endLine","startLine","processedLines","$tokenizeRow","fireUpdateEvent","setTokenizer","setDocument","first","scheduleStart","$updateOnChange","getState","cleanup","SearchHighlight","clazz","setRegexp","update","markerLayer","renderedMarkerRanges","MAX_RANGES","rangeToAddMarkerTo","rangeAsString","drawSingleLineMarker","UndoManager","$maxRev","$fromUndo","$undoDepth","reset","addSession","allowMerge","$lastDelta","$keepRedoStack","$redoStack","lastDeltas","undoStackLength","$undoStack","$rev","addSelection","rev","startNewGroup","markIgnored","ignore","getSelection","getRevision","getDeltas","getChangedRanges","getChangedLines","undo","dontSelect","deltaSet","swapped","swapGroups","rearrangeUndoStack","$redoStackBaseRev","undoSelectionRange","undoChanges","$syncRev","redo","diff","redoStack","deltaSets","moveDeltasByOne","rebaseRedoStack","redoSelectionRange","redoChanges","nextDelta","mark","canUndo","canRedo","bookmark","isAtBookmark","json","$prettyPrint","stringifyDelta","hasRedo","isClean","markClean","stringifyRange","swap","d1","d2","i1","i2","ds1","ds2","selectionBefore","selectionAfter","xform","c1","splitDelta","shiftPos","rowsBefore","otherLines","cloneDelta","xformed","FoldLine","foldData","folds","setFoldLine","shiftRow","sameRow","containsRow","walk","lastEnd","isNewRow","placeholder","getNextFoldTo","kind","addRemoveChars","log","foldBefore","newFoldLine","foldLineNext","idxToPosition","idx","lastFoldEndColumn","RangeList","$bias","pointIndex","excludeEdges","startIndex","addList","removed","substractPoint","containsPoint","rangeAtPoint","clipped","removeAll","lineDif","Fold","subFolds","subFold","collapseChildren","addSubFold","consumePoint","afterStart","firstConsumed","consumedFolds","restoreRange","restorePoint","Folding","side","getFoldsInRange","foldLines","$foldData","foundFolds","getFoldsInRangeList","getAllFolds","trim","lastFold","startFoldLine","getNextFoldLine","getFoldedRowCount","$addFoldLine","added","$clipRangeToDocument","startFold","endFold","removeFolds","$updateWrapData","$updateRowLengthCache","$modified","addFolds","$updating","cloneFolds","foldAll","expandFolds","unfold","expandInner","outermostFolds","isRowFolded","startFoldRow","getRowFoldEnd","getRowFoldStart","getFoldDisplayLine","textLine","lastColumn","$cloneFoldData","fd","toggleFold","tryToUnfold","bracketPos","getCommentFoldRange","depth","getFoldWidget","getFoldWidgetRange","foldToLevel","foldAllComments","$foldStyles","$foldStyle","setFoldStyle","$foldMode","$setFolding","foldMode","$updateFoldWidgets","$tokenizerUpdateFoldWidgets","updateFoldWidgets","tokenizerUpdateFoldWidgets","ignoreCurrent","fw","children","siblings","$toggleFoldWidget","toggleFoldWidget","toggleParent","BracketMatch","chr","charBeforeCursor","$findClosingBracket","getMatchingBracketRanges","bracketsRegExp","$brackets","typeRe","openBracket","valueIndex","closingBracket","valueLength","getMatchingTags","$findTagName","$findClosingTag","$findOpeningTag","found","backward","prevToken","currentTag","openTagStart","openTagName","foundOpenTagEnd","openTagEnd","closeTagStart","closeTagName","closeTagEnd","openTag","closeTag","stepCount","tmpToken","TextMode","EditSession","$breakpoints","$decorations","$frontMarkers","$backMarkers","$markerId","$undoSelect","$uid","bgTokenizer","onChangeFold","setMode","destroyed","resetCaches","$resetRowCache","cacheArray","low","mid","$rowLengthCache","removedFolds","$updateInternalDataOnChange","$undoManager","mergeUndoDeltas","$informUndoManager","setUndoManager","JSON","parse","undoManager","history","editSession","setAnnotations","setBreakpoints","breakpoints","setScrollLeft","setScrollTop","scrollTop","$scrollLeft","$scrollTop","$syncInformUndoManager","markUndoGroup","$defaultUndoManager","setUseSoftTabs","$useSoftTabs","$indentWithTabs","setTabSize","$tabSize","setNavigateWithinSoftTabs","navigateWithinSoftTabs","$navigateWithinSoftTabs","setOverwrite","overwrite","$overwrite","toggleOverwrite","addGutterDecoration","removeGutterDecoration","getBreakpoints","clearBreakpoints","setBreakpoint","clearBreakpoint","inFront","addDynamicMarker","markerId","getMarkers","highlight","$searchHighlight","highlightLines","getAnnotations","clearAnnotations","inToken","wordRange","setUseWorker","useWorker","getUseWorker","$useWorker","onReloadTokenizer","$onChangeMode","$modeId","$isPlaceholder","oldMode","$stopWorker","$startWorker","attachToSession","wrapMethod","$wrapMethod","foldingRules","terminate","getMode","isNaN","getScrollLeft","getScreenWidth","$computeWidth","getLineWidgetMaxWidth","screenWidth","lineWidgetsWidth","lineWidgetWidth","force","$wrapLimit","longestScreenLine","foldIndex","foldStart","$getStringScreenWidth","$getUndoSelection","setUndoSelect","enable","isUndo","fromRange","toPosition","toRange","collDiff","oldStart","newStart","indentRows","indentString","outdentRows","rowRange","deleteRange","$moveLines","$clipRowToDocument","moveLinesUp","moveLinesDown","duplicateLines","$clipColumnToRow","setUseWrapMode","useWrapMode","setWrapLimitRange","$wrapLimitRange","adjustWrapLimit","desiredLimit","$printMargin","limits","wrapLimit","$constrainWrapLimit","getWrapLimit","setWrapLimit","limit","getWrapLimitRange","foldLineBefore","wrapData","walkTokens","$getDisplayTokens","PLACEHOLDER_START","PLACEHOLDER_BODY","$computeWrapSplits","displayLength","lastSplit","lastDocSplit","isCode","$wrapAsCode","indentedSoftWrap","$indentedSoftWrap","maxIndent","addSplit","indentation","SPACE","TAB","TAB_SPACE","getWrapIndent","minSplit","PUNCTUATION","CHAR_EXT","CHAR","maxScreenColumn","screenColumn","getRowLength","getRowLineCount","getRowWrapIndent","getScreenLastRowColumn","documentToScreenColumn","getDocumentLastRowColumn","docColumn","getRowSplitData","screenToDocumentRow","screenToDocumentColumn","rowLength","doCache","maxRow","foldStartRow","wrapRow","screenRowOffset","getScreenLength","screenRows","$getWidgetScreenLength","$setFontMetrics","fm","$enableVarChar","getCharacterWidth","wrap","$wrap","firstLineNumber","useSoftTabs","foldStyle","Search","$matchIterator","sr","sc","er","ec","skipCurrent","findAll","needle","$assembleRegExp","$isMultiLine","prevRange","replacement","preserveCase","$disableFakeMultiline","caseSensitive","$supportsUnicodeFlag","wholeWord","wordBoundary","firstChar","needleArray","lastChar","addWordBoundary","$assembleMultilineRegExp","backwards","forEachInLine","MultiHashHandler","$singleCommand","commandKeyBinding","addCommands","addCommand","removeCommand","bindKey","_buildKeyHash","keepCommand","ckb","keyId","cmdGroup","keyPart","chain","binding","parseKeys","_addCommandToBinding","removeCommands","bindKeys","keyList","$keyChain","isDefault","HashHandler","CommandManager","byName","$checkCommandState","isAvailable","returnValue","toggleRecording","$inReplay","recording","macro","$addCommandToMacro","oldMacro","replay","trimMacro","mac","description","showSettingsMenu","showErrorMarker","scrollIntoView","centerSelection","gotoLine","prompt","$type","multiSelectAction","getAllRanges","findNext","findPrevious","aceCommandGroup","navigateFileStart","navigateUp","times","navigateFileEnd","navigateDown","navigateWordLeft","navigateLineStart","navigateLeft","navigateWordRight","navigateLineEnd","navigateRight","selectPageDown","scrollPageDown","gotoPageDown","selectPageUp","scrollPageUp","gotoPageUp","jumpToMatching","$copyWithEmptySelection","$handlePaste","duplicateSelection","sortLines","modifyNumber","copyLinesUp","copyLinesDown","removeToLineStart","removeToLineEnd","removeWordLeft","removeWordRight","blockOutdent","blockIndent","splitLine","transposeLetters","transposeSelections","autoIndent","openLink","firstLineEndCol","selectedCount","insertLine","curLine","newRanges","exitMultiSelectMode","LineWidgets","widgetManager","updateOnChange","renderWidgets","measureWidgets","_changedWidgets","$onChangeEditor","updateOnFold","_inDocument","removeLineWidget","$updateRows","noWidgets","$oldWidget","$registerLineWidget","addLineWidget","zIndex","coverGutter","pixelHeight","$fold","onWidgetChanged","w1","getWidgetsAtRow","updateFull","changedWidgets","fixedWidth","ceil","coverLine","gutterWidth","fullWidth","padding","scrollBar","GutterKeyboardHandler","gutterLayer","activeRowIndex","activeLane","annotationTooltip","$onGutterKeyDown","$blurGutter","isRowVisible","scrollToLine","$rowToRowIndex","$cursorCell","nearestFoldIndex","$findNearestFoldWidget","nearestAnnotationIndex","$findNearestAnnotation","$focusAnnotation","$focusFoldWidget","$handleGutterKeyboardInteraction","GutterKeyboardEvent","lane","$switchLane","$rowIndexToRow","rowFoldingWidget","$blurFoldWidget","cells","childNodes","$moveFoldWidgetDown","$moveAnnotationDown","$moveFoldWidgetUp","$moveAnnotationUp","$blurAnnotation","$isFoldWidgetVisible","isRowFullyVisible","isIconVisible","$getFoldWidget","$isAnnotationVisible","$getAnnotation","foldWidget","keyboardFocusClassName","desinationLane","annotationIndex","foldWidgetIndex","cell","gutterKeyboardHandler","getKey","getRow","isInAnnotationLane","isInFoldLane","defaultCommands","Editor","getContainerElement","getTextAreaContainer","textarea","keyBinding","$search","$historyTracker","$initOperationListeners","_$emitInputEvent","setSession","$opResetTimer","$lastSel","commandEvent","prevOp","previousCommand","scrollSelectionIntoView","animateScrolling","sel","$mergeUndoDeltas","prev","mergeableCommands","$mergeableCommands","shouldMerge","mergeNextCommand","sequenceStartTime","keyboardHandler","$keybindingId","oldSession","$onDocumentChange","$onTokenizerUpdate","$onChangeTabSize","$onChangeWrapLimit","$onChangeWrapMode","$onChangeFold","$onChangeFrontMarker","$onChangeBackMarker","$onChangeBreakpoint","$onChangeAnnotation","$onCursorChange","$onScrollTopChange","$onScrollLeftChange","$onSelectionChange","onDocumentChange","onChangeMode","onTokenizerUpdate","onChangeTabSize","onChangeWrapLimit","onChangeWrapMode","onChangeFrontMarker","onChangeBackMarker","onChangeBreakpoint","onChangeAnnotation","onCursorChange","onScrollTopChange","onScrollLeftChange","onSelectionChange","oldEditor","getSession","resize","onResize","getTheme","getFontSize","setFontSize","$highlightBrackets","$highlightPending","$bracketHighlight","markerIds","$getDirectionForHighlight","tagNamesRanges","getMatching","markerType","getHighlightIndentGuides","$textLayer","$highlightIndentGuide","$isFocused","showCursor","visualizeFocus","hideCursor","visualizeBlur","$cursorChange","updateCursor","$updateHighlightActiveLine","updateLines","scrollToY","scrollToX","$highlightActiveLine","$selectionStyle","$selectionColorConflict","$maxLines","$minLines","$highlightLineMarker","$selectionMarker","$highlightSelectedWord","$getSelectionHighLightRegexp","wordWithBoundary","updateFrontMarkers","updateBackMarkers","updateBreakpoints","updateText","getSelectedText","nl","copyLine","inVirtualSelectionMode","isFullLine","getBehavioursEnabled","lineState","shouldOutdent","$enableAutoIndent","lineIndent","selectedRange","currIndent","prevLineState","composition","applyComposition","forEachSelection","setScrollSpeed","getScrollSpeed","setDragDelay","setSelectionStyle","setHighlightActiveLine","shouldHighlight","getHighlightActiveLine","setHighlightGutterLine","getHighlightGutterLine","setHighlightSelectedWord","getHighlightSelectedWord","setAnimatedScroll","shouldAnimate","getAnimatedScroll","getShowInvisibles","setDisplayIndentGuides","getDisplayIndentGuides","setHighlightIndentGuides","setShowPrintMargin","showPrintMargin","getShowPrintMargin","setPrintMarginColumn","getPrintMarginColumn","setBehavioursEnabled","enabled","setWrapBehavioursEnabled","setShowFoldWidgets","getShowFoldWidgets","setFadeFoldWidgets","fade","getFadeFoldWidgets","new_range","setGhostText","removeGhostText","originalRange","$getSelectedRows","getNumberAt","_numberRx","amount","charRange","isFinite","nr","fp","decimals","nnr","toFixed","replaceRange","toggleWord","currWordStart","wordParts","curLength","itLength","that","reg","wordPairs","$toggleWordPairs","negate","firstCondition","res","findLinkAt","columnPosition","previousPosition","currentPosition","wordParts_1","wordParts_1_1","endPoint","moved","totalDiff","rangeIndex","subRows","compositionState","showComposition","setCompositionText","hideComposition","getFirstVisibleRow","getLastVisibleRow","getFirstFullyVisibleRow","getLastFullyVisibleRow","$getVisibleRowCount","getScrollBottomRow","getScrollTopRow","$moveByPage","scrollToRow","center","animate","alignCursor","getCursorPositionScreen","expand","tokenCount","matchType","bracketType","brackets","tagsRanges","lineNumber","navigateTo","replaced","$tryReplace","replaceAll","getLastSearchOptions","newRange","revealRange","setAutoScrollEditorIntoView","shouldScroll","$scrollAnchor","scrollAnchor","onChangeSelection","onBeforeRender","onAfterRender","searchBox","$pixelPos","$cursorStyle","cursorLayer","setSmoothBlinking","isBlinking","selectionStyle","highlightActiveLine","highlightSelectedWord","copyWithEmptySelection","behavioursEnabled","wrapBehavioursEnabled","enableAutoIndent","autoScrollEditorIntoView","showLineNumbers","setShowLineNumbers","$loop","CHANGE_GUTTER","$relativeLineNumbers","relativeNumberRenderer","relativeLineNumbers","$showLineNumbers","$updatePlaceholder","hasValue","$composition","placeholderNode","$placeholder","content","blurCommand","focusOnEnterKeyup","customScrollbar","hScrollBarAlwaysVisible","vScrollBarAlwaysVisible","highlightGutterLine","animatedScroll","printMarginColumn","printMargin","fadeFoldWidgets","showFoldWidgets","displayIndentGuides","highlightIndentGuides","showGutter","fontFamily","maxLines","minLines","scrollPastEnd","fixedWidthGutter","hasCssTransforms","maxPixelHeight","useResizeObserver","useSvgGutterIcons","showFoldedAnnotations","getText","lastLineNumber","$renderer","Lines","canvasHeight","cellCache","$offsetCoefficient","moveContainer","firstRowScreen","pageChanged","oldConfig","newConfig","computeLineTop","screenTop","screenPage","computeLineHeight","$cacheCell","fragment","insertAdjacentElement","createCell","initElement","Gutter","parentEl","$showFoldWidgets","$updateAnnotations","rowInfo","annoText","annoType","gutterOffset","oldLastRow","$updateCursorRow","onCreateCell","$renderCell","$updateGutterWidth","gutterRenderer","$firstLineNumber","lastLineText","$fixedWidth","$padding","$computePadding","$highlightGutterLine","$cursorRow","updateLineHighlight","scrollLines","$renderLines","textNode","annotationNode","annotationIconNode","decorations","rowText","foldClass","isClosedFold","foldAnnotationClass","annotationInFold","foldRange","getShowLineNumbers","paddingLeft","borderRightWidth","paddingRight","Marker","setPadding","setMarkers","markers","elt","css","$getTop","drawFullLineMarker","drawScreenLineMarker","drawTextMarker","drawMultiLineMarker","childElementCount","lastChild","stringBuilder","extraStyle","curr","lineRange","range1","drawBidiSingleLineMarker","radiusClass","extraLength","textTokens","Set","isTextToken","tokenType","has","Text","$updateEolChar","EOL_CHAR","EOL_CHAR_LF","EOL_CHAR_CRLF","margin","getLineHeight","$fontMetrics","measure","$pollSizeChanges","checkForSizeChanges","$pollSizeChangesTimer","$computeTabString","showSpaces","showTabs","showEOL","$highlightIndentGuides","tabStr","$tabStrings","span","TAB_CHAR","$indentGuideRe","spaceClass","spaceContent","SPACE_CHAR","tabClass","tabContent","lineElements","lineElementsIdx","heightChanged","lineElement","$renderLine","$renderLinesFragment","lineEl","$useLineGroups","$renderToken","valueFragment","simpleSpace","controlCharacter","cjkSpace","cjk","cloneNode","renderIndentGuide","cols","$highlightIndentGuideMarker","indentLevel","initialIndent","elementIndentLevel","currentIndent","$renderHighlightIndentGuide","$clearActiveIndentGuide","$setIndentGuideActive","$createLineElement","$renderWrappedLine","splitChars","$renderOverflowMessage","$renderSimpleLine","overflowEl","$getFoldLineTokens","lastLineEl","invisibleEl","EOF_CHAR","renderTokens","addTokens","Cursor","isVisible","blinkInterval","smoothBlinking","cursors","addCursor","$updateCursors","$updateOpacity","$startCssAnimation","animationDuration","$isAnimating","$stopCssAnimation","blinking","restartTimer","setBlinkInterval","removeCursor","intervalId","timeoutId","$isSmoothBlinking","blink","onScreen","isCursorInView","pixelPos","$selectionMarkers","cursorIndex","drawCursor","$setOverwrite","MAX_SCROLL_H","Scrollbar","classSuffix","setVisible","skipEvent","onScroll","coeff","VScrollBar","scrollHeight","$scrollbarWidth","$minWidth","setHeight","setScrollHeight","setInnerHeight","HScrollBar","setWidth","setInnerWidth","setScrollWidth","ScrollBar","ScrollBarV","ScrollBarH","VScrollWidth","HScrollHeight","eType","mousePageY","startTop","thumbTop","scrollTopFromThumbTop","thumbHeight","pageHeight","viewHeight","slideHeight","scrollWidth","mousePageX","startLeft","thumbLeft","scrollLeftFromThumbLeft","thumbWidth","pageWidth","viewWidth","slideWidth","RenderLoop","onRender","pending","changes","$recursionLimit","_flush","change","clear","CHAR_COUNT","USE_OBSERVER","ResizeObserver","FontMetrics","$setMeasureNodeStyles","$measureNode","$addObserver","isRoot","visibility","font","$measureSizes","fontWeight","boldSize","charSizes","allowBoldFonts","$observer","observe","setPolling","disconnect","$getZoom","zoom","$initTransformMeasureNodes","transformCoordinates","clientPos","elPos","solve","l1","l2","det","sub","mul","m2","ut","u","f","Decorator","canvas","pixelRatio","heightRatio","canvasWidth","minDecorationHeight","halfMinDecorationHeight","colors","dark","light","$updateDecorators","ctx","getContext","clearRect","priorities","compensateFold","compensateFoldRows","currentY","y1","y2","yCenter","fillStyle","fillRect","GutterLayer","MarkerLayer","TextLayer","CursorLayer","HScrollBarCustom","VScrollBarCustom","editorCss","VirtualRenderer","onGutterResize","$markerBack","textLayer","$markerFront","$horizScroll","$vScroll","$scrollAnimation","scrollMargin","updateCharacterSize","$size","scrollerHeight","scrollerWidth","$dirty","minHeight","v","$renderChanges","defaultView","CHANGE_FULL","$addResizeObserver","$allowBoldFonts","$updatePrintMargin","onChangeNewLineMode","$changedLines","CHANGE_LINES","CHANGE_TEXT","CHANGE_MARKER","updateFontSize","$updateSizeAsync","resizing","$updateCachedSize","$resizeTimer","$changes","$customScrollbar","$updateCustomScrollbar","$extraHeight","oldSize","CHANGE_SIZE","CHANGE_SCROLL","$showGutter","$computeLayerConfig","availableWidth","$showPrintMargin","$printMarginColumn","$animatedScroll","getShowGutter","setShowGutter","$printMarginEl","containerEl","posTop","posLeft","setScrollMargin","sm","setMargin","getHScrollBarAlwaysVisible","$hScrollBarAlwaysVisible","setHScrollBarAlwaysVisible","alwaysVisible","getVScrollBarAlwaysVisible","$vScrollBarAlwaysVisible","setVScrollBarAlwaysVisible","$updateScrollBarV","$scrollPastEnd","$updateScrollBarH","freeze","$frozen","unfreeze","CHANGE_H_SCROLL","st","$scrollDecorator","$updateLines","CHANGE_CURSOR","CHANGE_MARKER_FRONT","CHANGE_MARKER_BACK","$autosize","desiredHeight","$maxPixelHeight","$gutterWidth","hideScrollbars","longestLine","$getLongestLine","horizScroll","hScrollChanged","vScrollBefore","vScrollChanged","firstRowHeight","lineCount","charCount","$viewMargin","newLeft","newTop","topMargin","bottomMargin","$stopAnimation","currentTop","currentLeft","twoCharsWidth","alignment","$calcSteps","fromValue","toValue","x_min","STEPS","steps","initialScroll","oldSteps","$timer","endAnimation","scrollTo","canvasPos","$hasCssTransforms","$blockCursor","$useTextareaForIME","addToken","removeExtraToken","insertPosition","textLines","$ghostText","$ghostTextWidget","pixelPosition","ghostTextHeight","newToken","$themeId","$theme","setMouseCursor","attachToShadowRoot","$resizeObserver","contentRect","workerUrl","Worker","blob","Blob","blobBuilder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","getBlob","$workerBlob","blobURL","URL","webkitURL","createObjectURL","WorkerClient","worker","$createWorkerFromOldConfig","$sendDeltaQueue","changeListener","onMessage","callbackId","callbacks","onmessage","topLevelNamespaces","classname","importScripts","nameToUrl","toUrl","normalizePath","$normalizePath","tlns","deltaQueue","onerror","$doc","cmd","emit","ex","attachToDocument","q","UIWorkerClient","main","emitSync","sender","messageBuffer","workerClient","processNext","setEmitSync","Main","PlaceHolder","others","mainClass","othersClass","$onUpdate","onUpdate","$others","undoStack","$undostack","$undoStackDepth","setup","other","showOtherMarkers","othersActive","hideOtherMarkers","updateAnchors","lengthDiff","inMainRange","distanceFromStart","newPos","otherPos","updateMarkers","updateMarker","undosRequired","isSamePoint","alt","ctrl","accel","selectionMode","isMultiSelect","mouseX","mouseY","screenAnchor","screenCursor","$enableJumpToDef","$blockSelectEnabled","addSelectionMarker","oldRange","removeSelectionMarker","tmpSel","rectSel","blockSelect","newCursor","removeSelectionMarkers","rectangularRangeBlock","updateSelectionMarkers","onSelectionInterval","selectMoreLines","selectMore","joinSelections","splitIntoLines","alignCursors","multiSelectCommands","getSelectionMarkers","$blockChangeEvents","$onAddRange","$onRemoveRange","mergeOverlappingRanges","lastRange","$initRangeList","toggleBlockSelection","includeEmptyLines","xBackwards","startOffsetX","endOffsetX","docEnd","yBackwards","MultiSelect","$multiselectOnSessionChange","$onMultiSelect","$onSingleSelect","onSessionChange","$checkMultiselectChange","altCursor","altDown","addAltCursorListeners","selectionMarkerCount","markerList","$onMultiSelectExec","inVirtualMode","keepOrder","$byLines","cmdResult","anim","buf","additive","skip","screenLead","toRemove","words","stopAtFirst","sameRowRanges","maxCol","minSpace","spaceOffsets","spaceOffset","fr","lr","guessRange","$reAlignText","forceLeft","startW","textW","endW","isLeftAligned","isRightAligned","alignLeft","enableMultiselect","enableBlockSelect","FoldMode","foldingStartMarker","foldingStopMarker","indentationBlock","startLevel","openingBracketBlock","closingBracketBlock","oldWidget","gutterAnno","comparator","binarySearch","matched","findAnnotations","arrow","onmousedown","Renderer","edit","_id","env","tagName","oldNode","createEditSession","is","singletonTags","blockTags","formatOptions","lineBreaksAfterCommasInCurlyBlock","beautify","nextToken","tabString","breakBefore","spaceBefore","spaceAfter","lastDepth","lastIndent","unindent","roundDepth","curlyDepth","curRow","rowsToAdd","indentNextLine","inTag","inCSS","inBlock","parents","caseBody","trimNext","trimLine","trimCode","trimRight","trimLeft","searchboxCss","SearchBox","showReplaceForm","spellcheck","title","setEditor","searchRange","$syncOptions","$initElements","sb","replaceBox","searchOption","replaceOption","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","searchCounter","activeInput","$searchBarKb","setSearchRange","searchRangeMarker","checked","noMatch","updateCounter","MAX_COUNT","findPrev","replaceAndFindNext","active","$closeSearchBarKb","isReplace","supportType","supportFunction","supportConstant","supportConstantColor","supportConstantFonts","numRe","pseudoElements","pseudoClasses","CssHighlightRules","keywordMapper","strings","escapes","MatchingBraceOutdent","propertyMap","CssCompletions","completionsDefined","defineCompletions","inParens","getPropertyValueCompletions","getPropertyCompletions","skipSemicolon","caption","snippet","CssBehaviour","BaseFoldMode","commentRegex","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","forceMultiline","getCommentRegionBlock","getSectionRange","startIndent","subRange","CStyleFoldMode","$outdent","$completer","snippetFileId","DocCommentHighlightRules","getTagRule","getStartRule","getEndRule","GolangHighlightRules","stringEscapeRe","tokenizedLine","JsDocCommentHighlightRules","identifierRe","JavaScriptHighlightRules","escapedRe","comments","noES6","no_regex","jsx","JSX","tagRegex","jsxTag","jsxJsRule","jsxAttributes","reference","endState","results","JsonHighlightRules","JsxHighlightRules","buildinConstants","reserved","PythonHighlightRules","strPre","strRawPre","strFormatPre","strRawFormatPre","integer","intPart","pointFloat","floatNumber","stringEscape","PythonFoldMode","outdents","XmlHighlightRules","normalize","processing_instruction","doctype","int_subset","cdata","attr_reference","tag_whitespace","whitespace","attribute_value","embedTagRules","XmlBehaviour","rightSpace","tokenEndColumn","tokenRow","tokenColumn","voidElements","nextIndent","optionalEndTags","Tag","selfClosing","_getFirstTagInLine","_findEndTagInLine","getCommentFoldWidget","tags","XmlFoldMode","createRoot","hydrateRoot","hasElementType","Element","hasMap","Map","hasSet","hasArrayBuffer","ArrayBuffer","isView","equal","it","entries","flags","valueOf","$$typeof","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","amdD","getter","__esModule","definition","prop","toStringTag","nmd","paths","createContext","Icon","family","weight","rest","getCSSClasses","propTypes","isRequired","ItemTrigger","collapsed","toggleChange","useContext","iconType","trigger","onClick","AccordionItem","collapsedProp","ref","setCollapsed","useState","useMemo","expandToContent","contextValue","Provider","defaultProps","forwardRef","AccordionItemHeader","usearrowastrigger","getSize","componentSize","setComponentSize","current","handleResize","useCallback","useLayoutEffect","resizeObserver","savedHandler","useRef","useEffect","eventListener","Collapsible","contentContainer","collapseWrapper","refContainerSize","contentContainerStyle","setContentContainerStyle","onWindowResize","CSSTransition","onEnter","onExit","in","classNames","AccordionItemContent","Accordion","Item","Header","Content","Button","customButton","iconFamily","iconPosition","iconOnly","noStyle","getCssClasses","cssClasses","sizeClass","disabledClass","displayClass","themeClass","iconOnlyClass","noStyleClass","getButtonIcon","buttonType","cloneElement","getButtonType","ButtonGroup","CardHeader","CardBody","align","CardFooter","CardTitle","CardTitleGroup","CardSubTitle","CardSummary","CardTitleIcon","Card","Body","Footer","Title","TitleGroup","SubTitle","Summary","wait","immediate","callNow","Loader","withbackground","Message","onClose","noMargin","Chart","areaStyleColors","dataLoaded","hasData","series","zoomStart","zoomEnd","seriesConfig","noDataComponent","noDataComponentProp","zoomColors","tykChartInstance","setTykChartInstance","chartWrapperRef","lineBarChart","defaultOpts","fromJS","color","toolbox","orient","itemSize","showTitle","feature","dataZoom","dataBackground","lineStyle","areaStyle","handleStyle","textStyle","borderColor","fillerColor","legend","axisPointer","grid","containLabel","xAxis","boundaryGap","axisLine","axisTick","yAxis","axisLabel","animationEasing","seriesDefault","LinearGradient","smooth","symbolSize","pieChart","formatter","radius","avoidLabelOverlap","animationType","labelLine","normal","length2","geoChart","dispose","eventCallBack","debouncedMethod","debounce","getZr","prevInstance","prevOption","prevType","prevSeries","equals","selectedType","selectedOptions","selectedSeries","finalOpts","mergeDeep","toJS","entry","seriesData","buildChartOptions","dispatchAction","dataZoomSelectActive","seriesIndex","dataIndex","prevZoomStart","prevZoomEnd","startValue","endValue","chartHasData","getStyle","memo","savedCallback","ToastMessage","handleClose","itemIndex","ToastContainer","notify","updateNotifications","msgID","random","prevMessages","onMessageClosed","newMessages","fn","createNotification","render","bindNotify","danger","CopyToClipboard","txtRef","createRef","onKeyUp","ModalFooter","ModalBody","Modal","disableCloseCommands","opened","showBackdrop","restProps","modalClasses","backdropClasses","themeIcon","onKeyDown","Confirm","confirmBtnText","cancelBtnText","setOpen","setCallback","cancelCallback","setCancelCallback","callbackFunc","cancelCallbackFunc","beforeCallback","FixedWrapper","showShadow","fixedWrapperRef","attachShadow","scrollY","debouncedAttachShadow","InfiniteScroller","hasMore","initialLoad","loadMore","pageNumber","refChild","showLoader","setShowLoader","containerRef","refChildSize","shouldLoad","loadMoreData","prevPageNumber","scrollHandler","prevRefChildSize","PropTypes","oneOfType","arrayOf","bool","instanceOf","FloatingContainer","forceDisplay","displayAxis","preferredPosition","infiniteScrollerConfig","localRef","floatingContainerRef","contentWrapperRef","viewportOffset","schedulePositionUpdate","topSpace","bottomSpace","leftSpace","hasTopSpace","hasBottomSpace","hasLeftSpace","hasRightSpace","positionedVerticallyFitsInViewport","positionedHorizontallyFitsInViewport","getDisplayForVertical","getDisplayForHorizontal","getDisplayWhereItFits","determineDisplay","targetPosition","vpLeft","vpTop","leftPos","auto","matchElement","matchStart","matchEnd","topPos","maxWidth","getStylesForTop","getStylesForBottom","getStylesForLeft","getStylesForRight","adjustPosition","createPortal","InfoNote","ListItem","List","labelwidth","flexBasis","styleCopy","structuredClone","getListStyle","NavBar","pre","subtitle","withTabs","subtitleContent","NavigationItem","Navigation","PortalContext","PanelBody","noPadding","Consumer","portalContext","collapsable","PanelFooter","PanelHeader","Component","HeaderTag","onToggle","collapsibleIconPosition","Panel","onToggleCollapse","collapsedState","setCollapsedState","handleToggle","panelTheme","collapsbleIconPosition","toggleCollapse","Pill","RevealPanelService","setRefs","wrapper","panel","unbindEvents","bindEvents","ensureRefs","mouseDown","initialRect","initialEvent","isPrimaryMouseButtonDown","newY","finalHeight","notifyListeners","buttons","heightVal","reason","isHidden","deinit","RevealPanelHeaderLeft","RevealPanelHeaderRight","mergeClasses","RevealPanel","onHeightChange","parentSelector","contentStyle","contentClassName","gutterClassName","wrapperClassName","panelRef","gutterRef","wrapperRef","panelService","useImperativeHandle","headerLeft","headerRight","contents","child","TempRevealPanel","HeaderLeft","HeaderRight","TabsContext","TabContent","addTab","hideTab","updateTab","showTab","selectedPath","tabData","tabsId","tabExists","rendered","hideTabContent","tabs","tempTabData","prevTabData","shouldRender","TabContext","Tab","tabsContext","tabContext","setPath","tempPath","Tabs","onTabChange","setTabs","setSelectedPath","setRendered","initialPath","setInitialPath","setCurrentSelectedPath","tempRendered","collapsible","prevTabs","tempTabs","tabsState","tempTabsState","toggleTab","getTabCssClass","tabId","genTabs","currentTabs","updateTabsList","icon","closable","isOpened","additionalClickParents","isActive","setIsActive","tooltipRef","activeEvents","onMouseEnter","onMouseLeave","handleDocumentClick","TextEllipsis","Pagination","totalNrOfPages","selectedPage","setSelectedPage","pagesArray","nrOfPages","pagesArr","currentNr","pageNr","at","getPagesArr","goToPage","tableContext","HeaderCell","sortable","sortOrder","setSortOrder","sendMessage","allRowsSelected","columns","selectable","generateSelectable","allowSelectAll","isCheckbox","Checkbox","displayError","displayNote","note","Cell","styling","events","Row","SelectableCheckbox","Table","noDataMessage","loading","infiniteScrolling","onChangeMsg","setOnChangeMsg","itemsListRef","sortRows","order","selectAllRows","selectRow","setPagination","pagination","api","getTable","every","totalPages","num","nrItemsOnPage","perPage","Column","cSize","cOffset","nogutters","DropdownContext","DropdownItem","customdropdownitem","eventKey","dropdownItemCLick","dropdownContext","itemProps","onSelectItem","selectedItem","showCheckmark","Dropdown","isElemInRightView","dropdownWidth","isElemInBottomView","dropdownHeight","elHeight","super","dropdownRef","dropdownListRef","dropdownButtonRef","toggleDropdown","handleClickOutside","componentDidMount","getStyles","componentDidUpdate","prevProps","closeDropdown","componentWillUnmount","itemId","closeOnSelect","onSelect","selectedItemProps","dropdownEl","offsetPosition","customTop","customLeft","getWrapperCssClasses","btnGroup","btnGroupSize","btnTheme","hasCustomContent","listclassnames","getBtnTitle","btnTitle","stopButtonTextChange","appendTo","btnClassName","btnSize","customBtnTitle","showDropdownIcon","showTriggerButton","DropdownWrapperTag","DropdownTrigger","splitTrigger","toggle","onTriggerClick","DropdownListWrapper","dropdownValue","Dropdown2","setSelectedValueAsTitle","setIsOpen","handleOutsideClick","triggerElement","CodeEditor","disableValidation","finalSetOptions","getCodeEditorError","getLabelStyles","getNonLabelWidth","handleOnChange","handleOnBlur","htmlFor","editorProps","$blockScrolling","editorInstance","getStateSelectedValues","multiple","Combobox","closeList","openList","filterByName","itemValue","inputValue","stateSelectedValues","searchText","comboboxRef","valuesListRef","inputRef","textRef","focusInput","handleItemsNavigation","handleComboboxDropdownClick","handleListItemClick","handlePillRemoveClick","manageSelectedTags","setInputWidth","unBindEvents","getDerivedStateFromProps","nextProps","stringify","filteredValues","filterValues","cursorNext","previousState","methodName","tempState","removeSelectedValue","allowCustomValues","getSearchText","getSelectedIndex","getListItemCssClasses","getComboboxListCssClass","themes","iTheme","getInputError","elWidth","getComboboxDisplayData","reduce","prevValue","tempValue","selectedIndex","selectedValues","isInInitialValues","addSelectedValue","manageSelectedValues","tempSelectedValues","tempStateSelectedValues","ok","searchItem","renderInput","visbility","renderDropdown","autoFocus","CustomListComponent","Value","tagSeparators","addTagOnBlur","renderValue","valueOverflow","dummyElementRef","setInputValue","inputWidth","entryFieldOnChange","dummy","triggerAction","textValue","isPlaceholder","renderCustomValue","entryFieldOnKeyDown","listRef","searchValue","activeItem","renderListItem","showSearch","block","isNoneSelected","renderSelectAllOption","Combobox2","propValue","propValues","maxProp","matchItemFn","renderList","renderListProp","onBeforeChange","floatingContainerConfig","expandMode","displayDropdownTrigger","required","validateOnChange","rootRef","comboboxControlRef","getValueFromProp","setValues","normalizeValue","setSearchValue","setActiveItem","setIsOpened","valuesExpanded","setValuesExpanded","localValidationError","setLocalValidationError","getThemeClasses","getFilteredValues","openDropdown","updateSearchValue","newSearchValue","fv","isValidValue","newValues","localError","updateValue","addTag","listValueIndex","lv","finalValue","selectValue","valIndex","with","selectAllValues","moveUpActiveItem","visibleItems","activeIndex","moveDownActiveItem","executeTriggerAction","onTagMessage","removeTag","renderIcon","sv","nv","vals","valuesElement","updateScroll","mobserver","MutationObserver","robserver","childList","subtree","currentValuesClasses","onClickCapture","existingVal","DatePicker","onOpen","pickerInstance","setPickerInstance","dateRef","hasValueChanged","prevDate","currentDate","getTime","diffDates","date","onDateChange","dateValue","instance","defaultDate","setDate","openCalendar","inputStyle","addonStyle","getInputField","dateFormat","_typeof","requiredArgs","isDate","toDate","argument","argStr","NaN","toInteger","dirtyNumber","startOfUTCISOWeek","dirtyDate","day","getUTCDay","setUTCDate","getUTCDate","setUTCHours","getUTCISOWeekYear","year","getUTCFullYear","fourthOfJanuaryOfNextYear","setUTCFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","defaultOptions","getDefaultOptions","startOfUTCWeek","_ref","_ref2","_ref3","_options$weekStartsOn","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","weekStartsOn","locale","RangeError","getUTCWeekYear","_options$firstWeekCon","firstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","addLeadingZeros","targetLength","sign","signedYear","month","getUTCMonth","getUTCHours","getUTCMinutes","getUTCSeconds","numberOfDigits","milliseconds","getUTCMilliseconds","G","localize","era","ordinalNumber","unit","lightFormatters","Y","signedWeekYear","weekYear","Q","quarter","M","week","firstWeek","startOfUTCWeekYear","getUTCWeek","I","isoWeek","fourthOfJanuary","startOfUTCISOWeekYear","getUTCISOWeek","D","dayOfYear","timestamp","setUTCMonth","difference","getUTCDayOfYear","E","dayOfWeek","localDayOfWeek","isoDayOfWeek","dayPeriodEnumValue","dayPeriod","hours","H","K","S","X","_localize","timezoneOffset","_originalDate","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","z","originalDate","T","dirtyDelimiter","absOffset","minutes","delimiter","dateLongFormatter","pattern","formatLong","timeLongFormatter","longFormatters","P","dateTimeFormat","matchResult","datePattern","timePattern","dateTime","protectedDayOfYearTokens","protectedWeekYearTokens","throwProtectedError","format","formatDistanceLocale","lessThanXSeconds","one","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","defaultWidth","formats","full","long","medium","short","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchedString","parsePatterns","defaultParseWidth","object","findKey","valueCallback","formatDistance","tokenValue","addSuffix","comparison","formatRelative","_date","_baseDate","_options","rem100","narrow","abbreviated","wide","am","pm","midnight","noon","morning","afternoon","evening","night","parsePattern","parseResult","any","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","_ref4","_options$locale2","_options$locale2$opti","_ref5","_ref6","_ref7","_options$locale3","_options$locale3$opti","_defaultOptions$local3","_defaultOptions$local4","formatStr","defaultLocale","isValid","utcDate","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","getTimezoneOffsetInMilliseconds","dirtyAmount","addMilliseconds","subMilliseconds","formatterOptions","firstCharacter","longFormatter","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","isProtectedDayOfYearToken","EditableListForm","getMainFormValue","components","mainFormValue","submitButtonRef","submitForm","errors","mainError","addValueOnFieldChange","getMainFormButtonWidth","createRefs","propsComponents","stateComponents","validateValue","getFormCssClasses","noLabels","getButtonClassName","buttonStyle","displayType","getComponentsError","errorPersist","validatorsNames","validate","validatorName","validator","validationmessages","hasMainFormErrors","resetForm","showMainError","onSubmit","validationmessage","buttonName","ComponentName","EditableList","getItemListValue","getListItemCssClass","buttonWidth","handleFormSubmit","dropdownListItemRef","addValues","triggerOnChange","handleItemUpdate","editMode","handleChildrenOnChange","getListItemsCssClass","getFormInputKey","getListItemText","itemData","separator","setItemEditMode","closeListItems","isInList","removeListItem","removedItem","valueArr","tempItemValue","nextValue","genListItem","clonedComponents","genList","appendToElement","formButtonTitle","formButtonStyle","addButtonName","onAddRow","ListHeader","fields","field","FieldsList","onDelete","rowIndex","tempField","EditableList2","hideOnEmpty","internalErrors","setInternalErrors","updateRowValue","fieldIndex","componentValue","tempValueArr","tempErrors","tempFieldError","Components","internalError","setInternalError","onFieldChange","errorMsg","deleteRow","rowValues","colValue","flat","hasErrors","FileInput","accept","fileInputRef","files","Input","getAddon","initValue","stateValue","isfield","inputgroupaddonleft","inputgroupaddonright","getInputGroupAddon","getInputComponent","autoComplete","Input2","getInputElement","MultiselectItem","itemType","isInSearchValue","fieldsToSearchOn","onAddRemove","itemDisplayTemplate","maxSelections","nrSelectedItems","onGetItemDetails","details","detailsDisplayTemplate","getItemContent","getItemLoader","MultiselectPanel","inputPlaceholder","noItemsMessage","items","onCustomSearch","customSearch","panelType","serverLoad","itemsPageNumber","itemsNrPages","loadMoreItems","searchOnChange","itemChanged","cloneItems","clonedItem","renderListItems","diffObjects","Multiselect","entityNamePlural","getItemDetails","setOpened","prevOpened","itemsChange","allItems","valueClone","valueChange","providerValue","Radio","nospace","Select","setStateValue","selectedValue","getSelectError","getSelectComponent","SelectableList","checkboxalticon","itemTemplate","primaryKey","handleOnSelect","newSelectedItems","elemPosition","getListItemCssClassName","tvalue","Textarea","ToggleItem","getNotchCssClasses","itemRef","saveSelectedRef","onItemSelected","ToggleItemWrapper","Toggle","onDark","separated","selectedRef","setSelectedRef","notchRef","toggleRef","positionNotch","selectedWidth","FORM_DEBOUNCE","setConfig","getValueFromPath","acc","form","properties","DEFAULT_DEBOUNCE_TIME_MS","myValue","setMyValue","getOnChangeProps","hasIsFieldProp","executeDebounced","valueOrEvent","nodeName","onChangeProps","formError","touched","submitCount","status","componentProps","hasOwn","FieldCodeEditor","FieldCombobox","getComboboxError","FieldDropdown","FieldPagination","FieldCombobox2","FormDatePicker","getDatePickerError","FieldEditableList","getEditableListError","FieldFileInput","FieldInput","FieldMultiselect","getMultiselectError","FieldSelect","handleEvent","FieldSelectableList","FieldToggle","useInterval"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"tyk-ui.js","mappings":"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G,IAAK,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,IAAK,GAAI,IAAK,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,KAAM,GAAI,EAAG,GAAI,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,KAAM,GAAI,MAAO,GAAI,KAAM,GAAI,GAAI,EAAG,IAAK,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAA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O,CAAC,eAAgB,uBAAwB,4BAChDH,MAAO,kEACR,CACCG,MAAOqyD,EACPxyD,MAAO80D,GACR,CACC30D,MAAO,uBACPH,MAAO,aACPpkB,KAAM,YACP,CACCukB,MAAO,eACPH,MAAO,KACPpkB,KAAM,SACP,CACCukB,MAAO,mBACPH,MAAO,yEACPpkB,KAAM,SACP,CACCukB,MAAO,uBACPH,MAAO,UACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,SACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,UACR,CACCG,MAAO,UACPH,MAAO,WAGf7mC,SAAU,CAAC,CACHgnC,MAAO,OACPH,MAAO,QACR,CACCG,MAAO,CACH,eAAgB,uBAAwB,uBAAwB,OAChE,mBAAoB,OACpB,eAAgB,OAAQ,uBAAwB,OAAQ,gBAE5DH,MAAO,IAAM80D,EAAe,UAAYA,EAAe,6DACvDl5E,KAAM,sBACP,CACCukB,MAAO,uBACPH,MAAO,cACR,CACCG,MAAO,mBACPH,MAAO,gwDACR,CACCG,MAAO,uBACPH,MAAO,+lBACR,CACCG,MAAO,mBACPH,MAAO,y2DACR,CACCG,MAAO,aACPH,MAAO80D,GACR,CACC90D,MAAO,GACPG,MAAO,QACPvkB,KAAM,aAGd,MAAS,CACL04E,EAAyBE,aAAa,aACtCS,EAAS,SACT,CACI90D,MAAO,gBACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,OACPH,MAAO,UACPpkB,KAAM,SACP,CACCukB,MAAO,QACPH,MAAO,GACPpkB,KAAM,aAGd,MAAS,CACL,CACIukB,MAAO,0BACPH,MAAO,6CACR,CACCG,MAAO,gBACPH,MAAO,cACPpkB,KAAM,YACP,CACCukB,MAAO,UACPH,MAAO,iDACR,CACCG,MAAO,2BACPH,MAAO,iDACR,CACCG,MAAO,8BACPH,MAAO,MACR,CACCG,MAAO,2BACPH,MAAO,QACPpkB,KAAM,yBACP,CACCukB,MAAO,QACPH,MAAO,IACPpkB,KAAM,YACP,CACC8jB,aAAc,kBAGtB,sBAAyB,CACrB,CACIS,MAAO,oCACPH,MAAO,6CACR,CACCG,MAAO,2BACPH,MAAO,IACPpkB,KAAM,SACP,CACCukB,MAAO,2BACPH,MAAO,KACR,CACCG,MAAO,QACPH,MAAO,IACPpkB,KAAM,YACP,CACC8jB,aAAc,kCAGtB,kBAAqB,CACjB,CACIS,MAAO,SACPH,MAAO,SACP11C,KAAM,CACF,CACI61C,MAAO,SACPH,MAAO,MACPpkB,KAAM,OACP,CACC/kB,QAAS,aAGlB,CACCspC,MAAO,SACPH,MAAO,SACP11C,KAAM,CACF,CACI61C,MAAO,SACPH,MAAO,MACPpkB,KAAM,OACP,CACC/kB,QAAS,cAGlB,CACCspC,MAAO,oBACPH,MAAO,+BACR,CACCG,MAAO,mBACPH,MAAO,gDACR,CACCG,MAAO,mBACPH,MAAO,gDACR,CACCG,MAAO,uBACPH,MAAO,IACPpkB,KAAM,sBACP,CACCukB,MAAO,OACPH,MAAO,QACR,CACCG,MAAO,uBACPH,MAAO,KACR,CACCG,MAAO,QACPH,MAAO,GACPpkB,KAAM,aAGd,mBAAsB,CAClBq5E,EAAS,sBACT,CACI90D,MAAO,qBACPH,MAAO80D,GACR,CACC30D,MAAO,uBACPH,MAAO,KACR,CACCG,MAAO,OACPH,MAAO,QACR,CACCG,MAAO,uBACPH,MAAO,KACR,CACCG,MAAO,QACPH,MAAO,GACPpkB,KAAM,aAGd,SAAY,CACR,CACIukB,MAAO,2BACPH,MAAOg1D,GACR,CACC70D,MAAO,SACPH,MAAO,QACP0B,gBAAgB,GACjB,CACCvB,MAAO,SACPH,MAAO,MACPpkB,KAAM,YACP,CACC8jB,aAAc,WAGtB,QAAW,CACP,CACIS,MAAO,2BACPH,MAAOg1D,GACR,CACC70D,MAAO,SACPH,MAAO,QACP0B,gBAAgB,GACjB,CACCvB,MAAO,SACPH,MAAO,MACPpkB,KAAM,YACP,CACC8jB,aAAc,YAIrB1qC,GAAYA,EAAQkgG,QACrB3sG,KAAKu5C,OAAOqzD,SAASvzD,QAAQ,CACzB5B,MAAO,OAAQM,QAAS,SAAU30C,EAAK+9B,EAAOqX,GAE1C,GADAx4C,KAAKqzB,KAAc,KAAPjwB,EAAapD,KAAK0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E,KAAM,eACP,CACCukB,MAAO,SACPH,MAAOm2D,EAAY,SACnBv6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,OACtBx6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,SACtBx6E,KAAM,aACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,OACtBx6E,KAAM,aACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,SACtBx6E,KAAM,YACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,OACzBz6E,KAAM,eACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,SACzBz6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,OACzBz6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,SACzBz6E,KAAM,aACP,CACCukB,MAAO,mBACPH,MAAO,4EACR,CACCG,MAAO,cACPH,MAAO,2EACR,CACCG,MAAO,eACPH,MAAO,eACR,CACCG,MAAO,eACPH,MAAO,eACR,CACCG,MAAO,CAAC,UAAW,OAAQ,wBAC3BH,MAAO,2DACR,CACCG,MAAO,OACPH,MAAO,QACR,CACCnpC,QAAS,cAEjB,UAAa,CAAC,CACNspC,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,SAAY,CAAC,CACLS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,SAAY,CAAC,CACLS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,QACPpkB,KAAM,YACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,QAAW,CAAC,CACJS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,QACPpkB,KAAM,WACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,aAAgB,CAAC,CACTS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,YAAe,CAAC,CACRS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,YAAe,CAAC,CACRS,MAAO,SACPH,MAAO,QACPpkB,KAAM,eACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,SACPH,MAAO,QACPpkB,KAAM,cACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,UAAa,CAAC,CACNS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,UAAa,CAAC,CACNS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,QACPpkB,KAAM,aACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,SAAY,CAAC,CACLS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,YAAe,CAAC,CACRS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO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","sources":["webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/ace.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/ext-beautify.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/ext-searchbox.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-css.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-golang.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-javascript.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-json.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-jsx.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-python.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-xml.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/theme-github.js","webpack://@tyk-technologies/tyk-ui/./node_modules/react-dom/client.js","webpack://@tyk-technologies/tyk-ui/./node_modules/react-fast-compare/index.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react-dom\"","webpack://@tyk-technologies/tyk-ui/webpack/bootstrap","webpack://@tyk-technologies/tyk-ui/webpack/runtime/amd define","webpack://@tyk-technologies/tyk-ui/webpack/runtime/compat get default export","webpack://@tyk-technologies/tyk-ui/webpack/runtime/define property getters","webpack://@tyk-technologies/tyk-ui/webpack/runtime/hasOwnProperty shorthand","webpack://@tyk-technologies/tyk-ui/webpack/runtime/make namespace object","webpack://@tyk-technologies/tyk-ui/webpack/runtime/node module decorator","webpack://@tyk-technologies/tyk-ui/webpack/runtime/publicPath","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react\"","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"prop-types\"","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Icon/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemTrigger.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItem.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemHeader.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react-transition-group\"","webpack://@tyk-technologies/tyk-ui/./src/hooks/useComponentSize/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/useEventListener/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Collapsible/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemContent.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Button/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/ButtonGroup/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardHeader.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardBody.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardFooter.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardTitle.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardTitleGroup.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardSubTitle.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardSummary.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardTitleIcon.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/index.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"echarts\"","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"immutable\"","webpack://@tyk-technologies/tyk-ui/./src/utils/debounce/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/usePrevious/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Loader/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Message/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Chart/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/useTimeout/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/js/ToastMessage.js","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/js/ToastContainer.js","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/CopyToClipboard/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/js/ModalFooter.js","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/js/ModalBody.js","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Confirm/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/FixedWrapper/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/InfiniteScroller/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/FloatingContainer/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/InfoNote/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/List/js/ListItem.js","webpack://@tyk-technologies/tyk-ui/./src/components/List/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/NavBar/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Navigation/js/NavigationItem.js","webpack://@tyk-technologies/tyk-ui/./src/components/Navigation/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/panel-context.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/js/PanelBody.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/js/PanelFooter.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/js/PanelHeader.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Pill/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/RevealPanel/js/RevealPanelService.js","webpack://@tyk-technologies/tyk-ui/./src/components/RevealPanel/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/tabs-context.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/js/TabContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/js/TabContent.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/js/Tab.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tooltip/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/TextEllipsis/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Pagination/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/tableContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/header-cell.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/header.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Checkbox/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/cell.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/row.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/body.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/index.js","webpack://@tyk-technologies/tyk-ui/./src/layout/Column/index.js","webpack://@tyk-technologies/tyk-ui/./src/layout/Row/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/dropdown-context.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/js/DropdownItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/DropdownTrigger.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/DropdownListWrapper.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/useDrodpownContext.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/DropdowItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/useDropdown.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react-ace\"","webpack://@tyk-technologies/tyk-ui/./src/form/components/CodeEditor/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/js/Value.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/js/List.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/index.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"flatpickr\"","webpack://@tyk-technologies/tyk-ui/./src/form/components/DatePicker/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/isDate/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/toDate/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/defaultOptions/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/defaultLocale/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/format/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/isValid/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/subMilliseconds/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/addMilliseconds/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList/js/EditableListForm.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/Header.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/ListHeader.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/FieldsList.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/with-validation.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/validate-values.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/FileInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Input/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Input2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/js/MultiselectContext.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/js/MultiselectItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/js/MultiselectPanel.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Radio/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Select/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/SelectableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Textarea/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/js/ToggleContext.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/js/ToggleItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/js/ToggleItemWrapper.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/index.js","webpack://@tyk-technologies/tyk-ui/./src/utils/config/config.js","webpack://@tyk-technologies/tyk-ui/./src/utils/formik/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCheckbox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCodeEditor/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCombobox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCombobox2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikDatePicker/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikEditableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikEditableList2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikFileInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikInput2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikMultiselect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikRadio/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikSelect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikSelectableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikTextarea/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikToggle/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldCodeEditor/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldCombobox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldDropdown/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldPagination/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldCombobox2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldDatePicker/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldEditableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldFileInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldMultiselect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldSelect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldSelectableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldToggle/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/useInterval/index.js"],"sourcesContent":["/* ***** BEGIN LICENSE BLOCK *****\n * Distributed under the BSD license:\n *\n * Copyright (c) 2010, Ajax.org B.V.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n * * Neither the name of Ajax.org B.V. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * ***** END LICENSE BLOCK ***** */\n\n/**\n * Define a module along with a payload\n * @param module a name for the payload\n * @param payload a function to call with (require, exports, module) params\n */\n\n(function() {\n\nvar ACE_NAMESPACE = \"ace\";\n\nvar global = (function() { return this; })();\nif (!global && typeof window != \"undefined\") global = window; // strict mode\n\n\nif (!ACE_NAMESPACE && typeof requirejs !== \"undefined\")\n return;\n\n\nvar define = function(module, deps, payload) {\n if (typeof module !== \"string\") {\n if (define.original)\n define.original.apply(this, arguments);\n else {\n console.error(\"dropping module because define wasn\\'t a string.\");\n console.trace();\n }\n return;\n }\n if (arguments.length == 2)\n payload = deps;\n if (!define.modules[module]) {\n define.payloads[module] = payload;\n define.modules[module] = null;\n }\n};\n\ndefine.modules = {};\ndefine.payloads = {};\n\n/**\n * Get at functionality define()ed using the function above\n */\nvar _require = function(parentId, module, callback) {\n if (typeof module === \"string\") {\n var payload = lookup(parentId, module);\n if (payload != undefined) {\n callback && callback();\n return payload;\n }\n } else if (Object.prototype.toString.call(module) === \"[object Array]\") {\n var params = [];\n for (var i = 0, l = module.length; i < l; ++i) {\n var dep = lookup(parentId, module[i]);\n if (dep == undefined && require.original)\n return;\n params.push(dep);\n }\n return callback && callback.apply(null, params) || true;\n }\n};\n\nvar require = function(module, callback) {\n var packagedModule = _require(\"\", module, callback);\n if (packagedModule == undefined && require.original)\n return require.original.apply(this, arguments);\n return packagedModule;\n};\n\nvar normalizeModule = function(parentId, moduleName) {\n // normalize plugin requires\n if (moduleName.indexOf(\"!\") !== -1) {\n var chunks = moduleName.split(\"!\");\n return normalizeModule(parentId, chunks[0]) + \"!\" + normalizeModule(parentId, chunks[1]);\n }\n // normalize relative requires\n if (moduleName.charAt(0) == \".\") {\n var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n moduleName = base + \"/\" + moduleName;\n\n while(moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n var previous = moduleName;\n moduleName = moduleName.replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n }\n }\n return moduleName;\n};\n\n/**\n * Internal function to lookup moduleNames and resolve them by calling the\n * definition function if needed.\n */\nvar lookup = function(parentId, moduleName) {\n moduleName = normalizeModule(parentId, moduleName);\n\n var module = define.modules[moduleName];\n if (!module) {\n module = define.payloads[moduleName];\n if (typeof module === 'function') {\n var exports = {};\n var mod = {\n id: moduleName,\n uri: '',\n exports: exports,\n packaged: true\n };\n\n var req = function(module, callback) {\n return _require(moduleName, module, callback);\n };\n\n var returnValue = module(req, exports, mod);\n exports = returnValue || mod.exports;\n define.modules[moduleName] = exports;\n delete define.payloads[moduleName];\n }\n module = define.modules[moduleName] = exports || module;\n }\n return module;\n};\n\nfunction exportAce(ns) {\n var root = global;\n if (ns) {\n if (!global[ns])\n global[ns] = {};\n root = global[ns];\n }\n\n if (!root.define || !root.define.packaged) {\n define.original = root.define;\n root.define = define;\n root.define.packaged = true;\n }\n\n if (!root.require || !root.require.packaged) {\n require.original = root.require;\n root.require = require;\n root.require.packaged = true;\n }\n}\n\nexportAce(ACE_NAMESPACE);\n\n})();\n\nace.define(\"ace/lib/es6-shim\",[\"require\",\"exports\",\"module\"], function(require, exports, module){function defineProp(obj, name, val) {\n Object.defineProperty(obj, name, {\n value: val,\n enumerable: false,\n writable: true,\n configurable: true\n });\n}\nif (!String.prototype.startsWith) {\n defineProp(String.prototype, \"startsWith\", function (searchString, position) {\n position = position || 0;\n return this.lastIndexOf(searchString, position) === position;\n });\n}\nif (!String.prototype.endsWith) {\n defineProp(String.prototype, \"endsWith\", function (searchString, position) {\n var subjectString = this;\n if (position === undefined || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n });\n}\nif (!String.prototype.repeat) {\n defineProp(String.prototype, \"repeat\", function (count) {\n var result = \"\";\n var string = this;\n while (count > 0) {\n if (count & 1)\n result += string;\n if ((count >>= 1))\n string += string;\n }\n return result;\n });\n}\nif (!String.prototype.includes) {\n defineProp(String.prototype, \"includes\", function (str, position) {\n return this.indexOf(str, position) != -1;\n });\n}\nif (!Object.assign) {\n Object.assign = function (target) {\n if (target === undefined || target === null) {\n throw new TypeError(\"Cannot convert undefined or null to object\");\n }\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n Object.keys(source).forEach(function (key) {\n output[key] = source[key];\n });\n }\n }\n return output;\n };\n}\nif (!Object.values) {\n Object.values = function (o) {\n return Object.keys(o).map(function (k) {\n return o[k];\n });\n };\n}\nif (!Array.prototype.find) {\n defineProp(Array.prototype, \"find\", function (predicate) {\n var len = this.length;\n var thisArg = arguments[1];\n for (var k = 0; k < len; k++) {\n var kValue = this[k];\n if (predicate.call(thisArg, kValue, k, this)) {\n return kValue;\n }\n }\n });\n}\nif (!Array.prototype.findIndex) {\n defineProp(Array.prototype, \"findIndex\", function (predicate) {\n var len = this.length;\n var thisArg = arguments[1];\n for (var k = 0; k < len; k++) {\n var kValue = this[k];\n if (predicate.call(thisArg, kValue, k, this)) {\n return k;\n }\n }\n });\n}\nif (!Array.prototype.includes) {\n defineProp(Array.prototype, \"includes\", function (item, position) {\n return this.indexOf(item, position) != -1;\n });\n}\nif (!Array.prototype.fill) {\n defineProp(Array.prototype, \"fill\", function (value) {\n var O = this;\n var len = O.length >>> 0;\n var start = arguments[1];\n var relativeStart = start >> 0;\n var k = relativeStart < 0\n ? Math.max(len + relativeStart, 0)\n : Math.min(relativeStart, len);\n var end = arguments[2];\n var relativeEnd = end === undefined ? len : end >> 0;\n var final = relativeEnd < 0\n ? Math.max(len + relativeEnd, 0)\n : Math.min(relativeEnd, len);\n while (k < final) {\n O[k] = value;\n k++;\n }\n return O;\n });\n}\nif (!Array.of) {\n defineProp(Array, \"of\", function () {\n return Array.prototype.slice.call(arguments);\n });\n}\n\n});\n\nace.define(\"ace/lib/fixoldbrowsers\",[\"require\",\"exports\",\"module\",\"ace/lib/es6-shim\"], function(require, exports, module){// vim:set ts=4 sts=4 sw=4 st:\n\"use strict\";\nrequire(\"./es6-shim\");\n\n});\n\nace.define(\"ace/lib/deep_copy\",[\"require\",\"exports\",\"module\"], function(require, exports, module){exports.deepCopy = function deepCopy(obj) {\n if (typeof obj !== \"object\" || !obj)\n return obj;\n var copy;\n if (Array.isArray(obj)) {\n copy = [];\n for (var key = 0; key < obj.length; key++) {\n copy[key] = deepCopy(obj[key]);\n }\n return copy;\n }\n if (Object.prototype.toString.call(obj) !== \"[object Object]\")\n return obj;\n copy = {};\n for (var key in obj)\n copy[key] = deepCopy(obj[key]);\n return copy;\n};\n\n});\n\nace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\",\"ace/lib/deep_copy\"], function(require, exports, module){\"use strict\";\nexports.last = function (a) {\n return a[a.length - 1];\n};\nexports.stringReverse = function (string) {\n return string.split(\"\").reverse().join(\"\");\n};\nexports.stringRepeat = function (string, count) {\n var result = '';\n while (count > 0) {\n if (count & 1)\n result += string;\n if (count >>= 1)\n string += string;\n }\n return result;\n};\nvar trimBeginRegexp = /^\\s\\s*/;\nvar trimEndRegexp = /\\s\\s*$/;\nexports.stringTrimLeft = function (string) {\n return string.replace(trimBeginRegexp, '');\n};\nexports.stringTrimRight = function (string) {\n return string.replace(trimEndRegexp, '');\n};\nexports.copyObject = function (obj) {\n var copy = {};\n for (var key in obj) {\n copy[key] = obj[key];\n }\n return copy;\n};\nexports.copyArray = function (array) {\n var copy = [];\n for (var i = 0, l = array.length; i < l; i++) {\n if (array[i] && typeof array[i] == \"object\")\n copy[i] = this.copyObject(array[i]);\n else\n copy[i] = array[i];\n }\n return copy;\n};\nexports.deepCopy = require(\"./deep_copy\").deepCopy;\nexports.arrayToMap = function (arr) {\n var map = {};\n for (var i = 0; i < arr.length; i++) {\n map[arr[i]] = 1;\n }\n return map;\n};\nexports.createMap = function (props) {\n var map = Object.create(null);\n for (var i in props) {\n map[i] = props[i];\n }\n return map;\n};\nexports.arrayRemove = function (array, value) {\n for (var i = 0; i <= array.length; i++) {\n if (value === array[i]) {\n array.splice(i, 1);\n }\n }\n};\nexports.escapeRegExp = function (str) {\n return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g, '\\\\$1');\n};\nexports.escapeHTML = function (str) {\n return (\"\" + str).replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(/ 0xffff ? 2 : 1;\n};\n\n});\n\nace.define(\"ace/lib/useragent\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nexports.OS = {\n LINUX: \"LINUX\",\n MAC: \"MAC\",\n WINDOWS: \"WINDOWS\"\n};\nexports.getOS = function () {\n if (exports.isMac) {\n return exports.OS.MAC;\n }\n else if (exports.isLinux) {\n return exports.OS.LINUX;\n }\n else {\n return exports.OS.WINDOWS;\n }\n};\nvar _navigator = typeof navigator == \"object\" ? navigator : {};\nvar os = (/mac|win|linux/i.exec(_navigator.platform) || [\"other\"])[0].toLowerCase();\nvar ua = _navigator.userAgent || \"\";\nvar appName = _navigator.appName || \"\";\nexports.isWin = (os == \"win\");\nexports.isMac = (os == \"mac\");\nexports.isLinux = (os == \"linux\");\nexports.isIE =\n (appName == \"Microsoft Internet Explorer\" || appName.indexOf(\"MSAppHost\") >= 0)\n ? parseFloat((ua.match(/(?:MSIE |Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/) || [])[1])\n : parseFloat((ua.match(/(?:Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/) || [])[1]); // for ie\nexports.isOldIE = exports.isIE && exports.isIE < 9;\nexports.isGecko = exports.isMozilla = ua.match(/ Gecko\\/\\d+/);\nexports.isOpera = typeof opera == \"object\" && Object.prototype.toString.call(window.opera) == \"[object Opera]\";\nexports.isWebKit = parseFloat(ua.split(\"WebKit/\")[1]) || undefined;\nexports.isChrome = parseFloat(ua.split(\" Chrome/\")[1]) || undefined;\nexports.isSafari = parseFloat(ua.split(\" Safari/\")[1]) && !exports.isChrome || undefined;\nexports.isEdge = parseFloat(ua.split(\" Edge/\")[1]) || undefined;\nexports.isAIR = ua.indexOf(\"AdobeAIR\") >= 0;\nexports.isAndroid = ua.indexOf(\"Android\") >= 0;\nexports.isChromeOS = ua.indexOf(\" CrOS \") >= 0;\nexports.isIOS = /iPad|iPhone|iPod/.test(ua) && !window.MSStream;\nif (exports.isIOS)\n exports.isMac = true;\nexports.isMobile = exports.isIOS || exports.isAndroid;\n\n});\n\nace.define(\"ace/lib/dom\",[\"require\",\"exports\",\"module\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar useragent = require(\"./useragent\");\nvar XHTML_NS = \"http://www.w3.org/1999/xhtml\";\nexports.buildDom = function buildDom(arr, parent, refs) {\n if (typeof arr == \"string\" && arr) {\n var txt = document.createTextNode(arr);\n if (parent)\n parent.appendChild(txt);\n return txt;\n }\n if (!Array.isArray(arr)) {\n if (arr && arr.appendChild && parent)\n parent.appendChild(arr);\n return arr;\n }\n if (typeof arr[0] != \"string\" || !arr[0]) {\n var els = [];\n for (var i = 0; i < arr.length; i++) {\n var ch = buildDom(arr[i], parent, refs);\n ch && els.push(ch);\n }\n return els;\n }\n var el = document.createElement(arr[0]);\n var options = arr[1];\n var childIndex = 1;\n if (options && typeof options == \"object\" && !Array.isArray(options))\n childIndex = 2;\n for (var i = childIndex; i < arr.length; i++)\n buildDom(arr[i], el, refs);\n if (childIndex == 2) {\n Object.keys(options).forEach(function (n) {\n var val = options[n];\n if (n === \"class\") {\n el.className = Array.isArray(val) ? val.join(\" \") : val;\n }\n else if (typeof val == \"function\" || n == \"value\" || n[0] == \"$\") {\n el[n] = val;\n }\n else if (n === \"ref\") {\n if (refs)\n refs[val] = el;\n }\n else if (n === \"style\") {\n if (typeof val == \"string\")\n el.style.cssText = val;\n }\n else if (val != null) {\n el.setAttribute(n, val);\n }\n });\n }\n if (parent)\n parent.appendChild(el);\n return el;\n};\nexports.getDocumentHead = function (doc) {\n if (!doc)\n doc = document;\n return doc.head || doc.getElementsByTagName(\"head\")[0] || doc.documentElement;\n};\nexports.createElement = function (tag, ns) {\n return document.createElementNS ?\n document.createElementNS(ns || XHTML_NS, tag) :\n document.createElement(tag);\n};\nexports.removeChildren = function (element) {\n element.innerHTML = \"\";\n};\nexports.createTextNode = function (textContent, element) {\n var doc = element ? element.ownerDocument : document;\n return doc.createTextNode(textContent);\n};\nexports.createFragment = function (element) {\n var doc = element ? element.ownerDocument : document;\n return doc.createDocumentFragment();\n};\nexports.hasCssClass = function (el, name) {\n var classes = (el.className + \"\").split(/\\s+/g);\n return classes.indexOf(name) !== -1;\n};\nexports.addCssClass = function (el, name) {\n if (!exports.hasCssClass(el, name)) {\n el.className += \" \" + name;\n }\n};\nexports.removeCssClass = function (el, name) {\n var classes = el.className.split(/\\s+/g);\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n classes.splice(index, 1);\n }\n el.className = classes.join(\" \");\n};\nexports.toggleCssClass = function (el, name) {\n var classes = el.className.split(/\\s+/g), add = true;\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n add = false;\n classes.splice(index, 1);\n }\n if (add)\n classes.push(name);\n el.className = classes.join(\" \");\n return add;\n};\nexports.setCssClass = function (node, className, include) {\n if (include) {\n exports.addCssClass(node, className);\n }\n else {\n exports.removeCssClass(node, className);\n }\n};\nexports.hasCssString = function (id, doc) {\n var index = 0, sheets;\n doc = doc || document;\n if ((sheets = doc.querySelectorAll(\"style\"))) {\n while (index < sheets.length) {\n if (sheets[index++].id === id) {\n return true;\n }\n }\n }\n};\nexports.removeElementById = function (id, doc) {\n doc = doc || document;\n if (doc.getElementById(id)) {\n doc.getElementById(id).remove();\n }\n};\nvar strictCSP;\nvar cssCache = [];\nexports.useStrictCSP = function (value) {\n strictCSP = value;\n if (value == false)\n insertPendingStyles();\n else if (!cssCache)\n cssCache = [];\n};\nfunction insertPendingStyles() {\n var cache = cssCache;\n cssCache = null;\n cache && cache.forEach(function (item) {\n importCssString(item[0], item[1]);\n });\n}\nfunction importCssString(cssText, id, target) {\n if (typeof document == \"undefined\")\n return;\n if (cssCache) {\n if (target) {\n insertPendingStyles();\n }\n else if (target === false) {\n return cssCache.push([cssText, id]);\n }\n }\n if (strictCSP)\n return;\n var container = target;\n if (!target || !target.getRootNode) {\n container = document;\n }\n else {\n container = target.getRootNode();\n if (!container || container == target)\n container = document;\n }\n var doc = container.ownerDocument || container;\n if (id && exports.hasCssString(id, container))\n return null;\n if (id)\n cssText += \"\\n/*# sourceURL=ace/css/\" + id + \" */\";\n var style = exports.createElement(\"style\");\n style.appendChild(doc.createTextNode(cssText));\n if (id)\n style.id = id;\n if (container == doc)\n container = exports.getDocumentHead(doc);\n container.insertBefore(style, container.firstChild);\n}\nexports.importCssString = importCssString;\nexports.importCssStylsheet = function (uri, doc) {\n exports.buildDom([\"link\", { rel: \"stylesheet\", href: uri }], exports.getDocumentHead(doc));\n};\nexports.scrollbarWidth = function (doc) {\n var inner = exports.createElement(\"ace_inner\");\n inner.style.width = \"100%\";\n inner.style.minWidth = \"0px\";\n inner.style.height = \"200px\";\n inner.style.display = \"block\";\n var outer = exports.createElement(\"ace_outer\");\n var style = outer.style;\n style.position = \"absolute\";\n style.left = \"-10000px\";\n style.overflow = \"hidden\";\n style.width = \"200px\";\n style.minWidth = \"0px\";\n style.height = \"150px\";\n style.display = \"block\";\n outer.appendChild(inner);\n var body = (doc && doc.documentElement) || (document && document.documentElement);\n if (!body)\n return 0;\n body.appendChild(outer);\n var noScrollbar = inner.offsetWidth;\n style.overflow = \"scroll\";\n var withScrollbar = inner.offsetWidth;\n if (noScrollbar === withScrollbar) {\n withScrollbar = outer.clientWidth;\n }\n body.removeChild(outer);\n return noScrollbar - withScrollbar;\n};\nexports.computedStyle = function (element, style) {\n return window.getComputedStyle(element, \"\") || {};\n};\nexports.setStyle = function (styles, property, value) {\n if (styles[property] !== value) {\n styles[property] = value;\n }\n};\nexports.HAS_CSS_ANIMATION = false;\nexports.HAS_CSS_TRANSFORMS = false;\nexports.HI_DPI = useragent.isWin\n ? typeof window !== \"undefined\" && window.devicePixelRatio >= 1.5\n : true;\nif (useragent.isChromeOS)\n exports.HI_DPI = false;\nif (typeof document !== \"undefined\") {\n var div = document.createElement(\"div\");\n if (exports.HI_DPI && div.style.transform !== undefined)\n exports.HAS_CSS_TRANSFORMS = true;\n if (!useragent.isEdge && typeof div.style.animationName !== \"undefined\")\n exports.HAS_CSS_ANIMATION = true;\n div = null;\n}\nif (exports.HAS_CSS_TRANSFORMS) {\n exports.translate = function (element, tx, ty) {\n element.style.transform = \"translate(\" + Math.round(tx) + \"px, \" + Math.round(ty) + \"px)\";\n };\n}\nelse {\n exports.translate = function (element, tx, ty) {\n element.style.top = Math.round(ty) + \"px\";\n element.style.left = Math.round(tx) + \"px\";\n };\n}\n\n});\n\nace.define(\"ace/lib/net\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){/*\n * based on code from:\n *\n * @license RequireJS text 0.25.0 Copyright (c) 2010-2011, The Dojo Foundation All Rights Reserved.\n * Available via the MIT or new BSD license.\n * see: http://github.com/jrburke/requirejs for details\n */\n\"use strict\";\nvar dom = require(\"./dom\");\nexports.get = function (url, callback) {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n callback(xhr.responseText);\n }\n };\n xhr.send(null);\n};\nexports.loadScript = function (path, callback) {\n var head = dom.getDocumentHead();\n var s = document.createElement('script');\n s.src = path;\n head.appendChild(s);\n s.onload = s.onreadystatechange = function (_, isAbort) {\n if (isAbort || !s.readyState || s.readyState == \"loaded\" || s.readyState == \"complete\") {\n s = s.onload = s.onreadystatechange = null;\n if (!isAbort)\n callback();\n }\n };\n};\nexports.qualifyURL = function (url) {\n var a = document.createElement('a');\n a.href = url;\n return a.href;\n};\n\n});\n\nace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nexports.inherits = function (ctor, superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n};\nexports.mixin = function (obj, mixin) {\n for (var key in mixin) {\n obj[key] = mixin[key];\n }\n return obj;\n};\nexports.implement = function (proto, mixin) {\n exports.mixin(proto, mixin);\n};\n\n});\n\nace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar EventEmitter = {};\nvar stopPropagation = function () { this.propagationStopped = true; };\nvar preventDefault = function () { this.defaultPrevented = true; };\nEventEmitter._emit =\n EventEmitter._dispatchEvent = function (eventName, e) {\n this._eventRegistry || (this._eventRegistry = {});\n this._defaultHandlers || (this._defaultHandlers = {});\n var listeners = this._eventRegistry[eventName] || [];\n var defaultHandler = this._defaultHandlers[eventName];\n if (!listeners.length && !defaultHandler)\n return;\n if (typeof e != \"object\" || !e)\n e = {};\n if (!e.type)\n e.type = eventName;\n if (!e.stopPropagation)\n e.stopPropagation = stopPropagation;\n if (!e.preventDefault)\n e.preventDefault = preventDefault;\n listeners = listeners.slice();\n for (var i = 0; i < listeners.length; i++) {\n listeners[i](e, this);\n if (e.propagationStopped)\n break;\n }\n if (defaultHandler && !e.defaultPrevented)\n return defaultHandler(e, this);\n };\nEventEmitter._signal = function (eventName, e) {\n var listeners = (this._eventRegistry || {})[eventName];\n if (!listeners)\n return;\n listeners = listeners.slice();\n for (var i = 0; i < listeners.length; i++)\n listeners[i](e, this);\n};\nEventEmitter.once = function (eventName, callback) {\n var _self = this;\n this.on(eventName, function newCallback() {\n _self.off(eventName, newCallback);\n callback.apply(null, arguments);\n });\n if (!callback) {\n return new Promise(function (resolve) {\n callback = resolve;\n });\n }\n};\nEventEmitter.setDefaultHandler = function (eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n handlers = this._defaultHandlers = { _disabled_: {} };\n if (handlers[eventName]) {\n var old = handlers[eventName];\n var disabled = handlers._disabled_[eventName];\n if (!disabled)\n handlers._disabled_[eventName] = disabled = [];\n disabled.push(old);\n var i = disabled.indexOf(callback);\n if (i != -1)\n disabled.splice(i, 1);\n }\n handlers[eventName] = callback;\n};\nEventEmitter.removeDefaultHandler = function (eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n return;\n var disabled = handlers._disabled_[eventName];\n if (handlers[eventName] == callback) {\n if (disabled)\n this.setDefaultHandler(eventName, disabled.pop());\n }\n else if (disabled) {\n var i = disabled.indexOf(callback);\n if (i != -1)\n disabled.splice(i, 1);\n }\n};\nEventEmitter.on =\n EventEmitter.addEventListener = function (eventName, callback, capturing) {\n this._eventRegistry = this._eventRegistry || {};\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n listeners = this._eventRegistry[eventName] = [];\n if (listeners.indexOf(callback) == -1)\n listeners[capturing ? \"unshift\" : \"push\"](callback);\n return callback;\n };\nEventEmitter.off =\n EventEmitter.removeListener =\n EventEmitter.removeEventListener = function (eventName, callback) {\n this._eventRegistry = this._eventRegistry || {};\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n return;\n var index = listeners.indexOf(callback);\n if (index !== -1)\n listeners.splice(index, 1);\n };\nEventEmitter.removeAllListeners = function (eventName) {\n if (!eventName)\n this._eventRegistry = this._defaultHandlers = undefined;\n if (this._eventRegistry)\n this._eventRegistry[eventName] = undefined;\n if (this._defaultHandlers)\n this._defaultHandlers[eventName] = undefined;\n};\nexports.EventEmitter = EventEmitter;\n\n});\n\nace.define(\"ace/lib/report_error\",[\"require\",\"exports\",\"module\"], function(require, exports, module){exports.reportError = function reportError(msg, data) {\n var e = new Error(msg);\n e.data = data;\n if (typeof console == \"object\" && console.error)\n console.error(e);\n setTimeout(function () { throw e; });\n};\n\n});\n\nace.define(\"ace/lib/app_config\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\",\"ace/lib/report_error\"], function(require, exports, module){\"no use strict\";\nvar oop = require(\"./oop\");\nvar EventEmitter = require(\"./event_emitter\").EventEmitter;\nvar reportError = require(\"./report_error\").reportError;\nvar optionsProvider = {\n setOptions: function (optList) {\n Object.keys(optList).forEach(function (key) {\n this.setOption(key, optList[key]);\n }, this);\n },\n getOptions: function (optionNames) {\n var result = {};\n if (!optionNames) {\n var options = this.$options;\n optionNames = Object.keys(options).filter(function (key) {\n return !options[key].hidden;\n });\n }\n else if (!Array.isArray(optionNames)) {\n result = optionNames;\n optionNames = Object.keys(result);\n }\n optionNames.forEach(function (key) {\n result[key] = this.getOption(key);\n }, this);\n return result;\n },\n setOption: function (name, value) {\n if (this[\"$\" + name] === value)\n return;\n var opt = this.$options[name];\n if (!opt) {\n return warn('misspelled option \"' + name + '\"');\n }\n if (opt.forwardTo)\n return this[opt.forwardTo] && this[opt.forwardTo].setOption(name, value);\n if (!opt.handlesSet)\n this[\"$\" + name] = value;\n if (opt && opt.set)\n opt.set.call(this, value);\n },\n getOption: function (name) {\n var opt = this.$options[name];\n if (!opt) {\n return warn('misspelled option \"' + name + '\"');\n }\n if (opt.forwardTo)\n return this[opt.forwardTo] && this[opt.forwardTo].getOption(name);\n return opt && opt.get ? opt.get.call(this) : this[\"$\" + name];\n }\n};\nfunction warn(message) {\n if (typeof console != \"undefined\" && console.warn)\n console.warn.apply(console, arguments);\n}\nvar messages;\nvar AppConfig = /** @class */ (function () {\n function AppConfig() {\n this.$defaultOptions = {};\n }\n AppConfig.prototype.defineOptions = function (obj, path, options) {\n if (!obj.$options)\n this.$defaultOptions[path] = obj.$options = {};\n Object.keys(options).forEach(function (key) {\n var opt = options[key];\n if (typeof opt == \"string\")\n opt = { forwardTo: opt };\n opt.name || (opt.name = key);\n obj.$options[opt.name] = opt;\n if (\"initialValue\" in opt)\n obj[\"$\" + opt.name] = opt.initialValue;\n });\n oop.implement(obj, optionsProvider);\n return this;\n };\n AppConfig.prototype.resetOptions = function (obj) {\n Object.keys(obj.$options).forEach(function (key) {\n var opt = obj.$options[key];\n if (\"value\" in opt)\n obj.setOption(key, opt.value);\n });\n };\n AppConfig.prototype.setDefaultValue = function (path, name, value) {\n if (!path) {\n for (path in this.$defaultOptions)\n if (this.$defaultOptions[path][name])\n break;\n if (!this.$defaultOptions[path][name])\n return false;\n }\n var opts = this.$defaultOptions[path] || (this.$defaultOptions[path] = {});\n if (opts[name]) {\n if (opts.forwardTo)\n this.setDefaultValue(opts.forwardTo, name, value);\n else\n opts[name].value = value;\n }\n };\n AppConfig.prototype.setDefaultValues = function (path, optionHash) {\n Object.keys(optionHash).forEach(function (key) {\n this.setDefaultValue(path, key, optionHash[key]);\n }, this);\n };\n AppConfig.prototype.setMessages = function (value) {\n messages = value;\n };\n AppConfig.prototype.nls = function (string, params) {\n if (messages && !messages[string]) {\n warn(\"No message found for '\" + string + \"' in the provided messages, falling back to default English message.\");\n }\n var translated = messages && messages[string] || string;\n if (params) {\n translated = translated.replace(/\\$(\\$|[\\d]+)/g, function (_, name) {\n if (name == \"$\")\n return \"$\";\n return params[name];\n });\n }\n return translated;\n };\n return AppConfig;\n}());\nAppConfig.prototype.warn = warn;\nAppConfig.prototype.reportError = reportError;\noop.implement(AppConfig.prototype, EventEmitter);\nexports.AppConfig = AppConfig;\n\n});\n\nace.define(\"ace/theme/textmate-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \".ace-tm .ace_gutter {\\n background: #f0f0f0;\\n color: #333;\\n}\\n\\n.ace-tm .ace_print-margin {\\n width: 1px;\\n background: #e8e8e8;\\n}\\n\\n.ace-tm .ace_fold {\\n background-color: #6B72E6;\\n}\\n\\n.ace-tm {\\n background-color: #FFFFFF;\\n color: black;\\n}\\n\\n.ace-tm .ace_cursor {\\n color: black;\\n}\\n \\n.ace-tm .ace_invisible {\\n color: rgb(191, 191, 191);\\n}\\n\\n.ace-tm .ace_storage,\\n.ace-tm .ace_keyword {\\n color: blue;\\n}\\n\\n.ace-tm .ace_constant {\\n color: rgb(197, 6, 11);\\n}\\n\\n.ace-tm .ace_constant.ace_buildin {\\n color: rgb(88, 72, 246);\\n}\\n\\n.ace-tm .ace_constant.ace_language {\\n color: rgb(88, 92, 246);\\n}\\n\\n.ace-tm .ace_constant.ace_library {\\n color: rgb(6, 150, 14);\\n}\\n\\n.ace-tm .ace_invalid {\\n background-color: rgba(255, 0, 0, 0.1);\\n color: red;\\n}\\n\\n.ace-tm .ace_support.ace_function {\\n color: rgb(60, 76, 114);\\n}\\n\\n.ace-tm .ace_support.ace_constant {\\n color: rgb(6, 150, 14);\\n}\\n\\n.ace-tm .ace_support.ace_type,\\n.ace-tm .ace_support.ace_class {\\n color: rgb(109, 121, 222);\\n}\\n\\n.ace-tm .ace_keyword.ace_operator {\\n color: rgb(104, 118, 135);\\n}\\n\\n.ace-tm .ace_string {\\n color: rgb(3, 106, 7);\\n}\\n\\n.ace-tm .ace_comment {\\n color: rgb(76, 136, 107);\\n}\\n\\n.ace-tm .ace_comment.ace_doc {\\n color: rgb(0, 102, 255);\\n}\\n\\n.ace-tm .ace_comment.ace_doc.ace_tag {\\n color: rgb(128, 159, 191);\\n}\\n\\n.ace-tm .ace_constant.ace_numeric {\\n color: rgb(0, 0, 205);\\n}\\n\\n.ace-tm .ace_variable {\\n color: rgb(49, 132, 149);\\n}\\n\\n.ace-tm .ace_xml-pe {\\n color: rgb(104, 104, 91);\\n}\\n\\n.ace-tm .ace_entity.ace_name.ace_function {\\n color: #0000A2;\\n}\\n\\n\\n.ace-tm .ace_heading {\\n color: rgb(12, 7, 255);\\n}\\n\\n.ace-tm .ace_list {\\n color:rgb(185, 6, 144);\\n}\\n\\n.ace-tm .ace_meta.ace_tag {\\n color:rgb(0, 22, 142);\\n}\\n\\n.ace-tm .ace_string.ace_regex {\\n color: rgb(255, 0, 0)\\n}\\n\\n.ace-tm .ace_marker-layer .ace_selection {\\n background: rgb(181, 213, 255);\\n}\\n.ace-tm.ace_multiselect .ace_selection.ace_start {\\n box-shadow: 0 0 3px 0px white;\\n}\\n.ace-tm .ace_marker-layer .ace_step {\\n background: rgb(252, 255, 0);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_stack {\\n background: rgb(164, 229, 101);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_bracket {\\n margin: -1px 0 0 -1px;\\n border: 1px solid rgb(192, 192, 192);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_active-line {\\n background: rgba(0, 0, 0, 0.07);\\n}\\n\\n.ace-tm .ace_gutter-active-line {\\n background-color : #dcdcdc;\\n}\\n\\n.ace-tm .ace_marker-layer .ace_selected-word {\\n background: rgb(250, 250, 255);\\n border: 1px solid rgb(200, 200, 250);\\n}\\n\\n.ace-tm .ace_indent-guide {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\n}\\n\\n.ace-tm .ace_indent-guide-active {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC\\\") right repeat-y;\\n}\\n\";\n\n});\n\nace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/theme/textmate-css\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nexports.isDark = false;\nexports.cssClass = \"ace-tm\";\nexports.cssText = require(\"./textmate-css\");\nexports.$id = \"ace/theme/textmate\";\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass, false);\n\n});\n\nace.define(\"ace/config\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/net\",\"ace/lib/dom\",\"ace/lib/app_config\",\"ace/theme/textmate\"], function(require, exports, module){\"no use strict\";\nvar lang = require(\"./lib/lang\");\nvar net = require(\"./lib/net\");\nvar dom = require(\"./lib/dom\");\nvar AppConfig = require(\"./lib/app_config\").AppConfig;\nmodule.exports = exports = new AppConfig();\nvar options = {\n packaged: false,\n workerPath: null,\n modePath: null,\n themePath: null,\n basePath: \"\",\n suffix: \".js\",\n $moduleUrls: {},\n loadWorkerFromBlob: true,\n sharedPopups: false,\n useStrictCSP: null\n};\nexports.get = function (key) {\n if (!options.hasOwnProperty(key))\n throw new Error(\"Unknown config key: \" + key);\n return options[key];\n};\nexports.set = function (key, value) {\n if (options.hasOwnProperty(key))\n options[key] = value;\n else if (this.setDefaultValue(\"\", key, value) == false)\n throw new Error(\"Unknown config key: \" + key);\n if (key == \"useStrictCSP\")\n dom.useStrictCSP(value);\n};\nexports.all = function () {\n return lang.copyObject(options);\n};\nexports.$modes = {};\nexports.moduleUrl = function (name, component) {\n if (options.$moduleUrls[name])\n return options.$moduleUrls[name];\n var parts = name.split(\"/\");\n component = component || parts[parts.length - 2] || \"\";\n var sep = component == \"snippets\" ? \"/\" : \"-\";\n var base = parts[parts.length - 1];\n if (component == \"worker\" && sep == \"-\") {\n var re = new RegExp(\"^\" + component + \"[\\\\-_]|[\\\\-_]\" + component + \"$\", \"g\");\n base = base.replace(re, \"\");\n }\n if ((!base || base == component) && parts.length > 1)\n base = parts[parts.length - 2];\n var path = options[component + \"Path\"];\n if (path == null) {\n path = options.basePath;\n }\n else if (sep == \"/\") {\n component = sep = \"\";\n }\n if (path && path.slice(-1) != \"/\")\n path += \"/\";\n return path + component + sep + base + this.get(\"suffix\");\n};\nexports.setModuleUrl = function (name, subst) {\n return options.$moduleUrls[name] = subst;\n};\nvar loader = function (moduleName, cb) {\n if (moduleName === \"ace/theme/textmate\" || moduleName === \"./theme/textmate\")\n return cb(null, require(\"./theme/textmate\"));\n if (customLoader)\n return customLoader(moduleName, cb);\n console.error(\"loader is not configured\");\n};\nvar customLoader;\nexports.setLoader = function (cb) {\n customLoader = cb;\n};\nexports.dynamicModules = Object.create(null);\nexports.$loading = {};\nexports.$loaded = {};\nexports.loadModule = function (moduleName, onLoad) {\n var loadedModule, moduleType;\n if (Array.isArray(moduleName)) {\n moduleType = moduleName[0];\n moduleName = moduleName[1];\n }\n var load = function (module) {\n if (module && !exports.$loading[moduleName])\n return onLoad && onLoad(module);\n if (!exports.$loading[moduleName])\n exports.$loading[moduleName] = [];\n exports.$loading[moduleName].push(onLoad);\n if (exports.$loading[moduleName].length > 1)\n return;\n var afterLoad = function () {\n loader(moduleName, function (err, module) {\n if (module)\n exports.$loaded[moduleName] = module;\n exports._emit(\"load.module\", { name: moduleName, module: module });\n var listeners = exports.$loading[moduleName];\n exports.$loading[moduleName] = null;\n listeners.forEach(function (onLoad) {\n onLoad && onLoad(module);\n });\n });\n };\n if (!exports.get(\"packaged\"))\n return afterLoad();\n net.loadScript(exports.moduleUrl(moduleName, moduleType), afterLoad);\n reportErrorIfPathIsNotConfigured();\n };\n if (exports.dynamicModules[moduleName]) {\n exports.dynamicModules[moduleName]().then(function (module) {\n if (module.default) {\n load(module.default);\n }\n else {\n load(module);\n }\n });\n }\n else {\n try {\n loadedModule = this.$require(moduleName);\n }\n catch (e) { }\n load(loadedModule || exports.$loaded[moduleName]);\n }\n};\nexports.$require = function (moduleName) {\n if (typeof module.require == \"function\") {\n var req = \"require\";\n return module[req](moduleName);\n }\n};\nexports.setModuleLoader = function (moduleName, onLoad) {\n exports.dynamicModules[moduleName] = onLoad;\n};\nvar reportErrorIfPathIsNotConfigured = function () {\n if (!options.basePath && !options.workerPath\n && !options.modePath && !options.themePath\n && !Object.keys(options.$moduleUrls).length) {\n console.error(\"Unable to infer path to ace from script src,\", \"use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes\", \"or with webpack use ace/webpack-resolver\");\n reportErrorIfPathIsNotConfigured = function () { };\n }\n};\nexports.version = \"1.32.0\";\n\n});\n\nace.define(\"ace/loader_build\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nrequire(\"./lib/fixoldbrowsers\");\nvar config = require(\"./config\");\nconfig.setLoader(function(moduleName, cb) {\n require([moduleName], function(module) {\n cb(null, module);\n });\n});\n\nvar global = (function() {\n return this || typeof window != \"undefined\" && window;\n})();\n\nmodule.exports = function(ace) {\n config.init = init;\n config.$require = require;\n ace.require = require;\n\n if (typeof define === \"function\")\n ace.define = define;\n};\ninit(true);function init(packaged) {\n\n if (!global || !global.document)\n return;\n \n config.set(\"packaged\", packaged || require.packaged || module.packaged || (global.define && define.packaged));\n\n var scriptOptions = {};\n var scriptUrl = \"\";\n var currentScript = (document.currentScript || document._currentScript ); // native or polyfill\n var currentDocument = currentScript && currentScript.ownerDocument || document;\n \n if (currentScript && currentScript.src) {\n scriptUrl = currentScript.src.split(/[?#]/)[0].split(\"/\").slice(0, -1).join(\"/\") || \"\";\n }\n \n var scripts = currentDocument.getElementsByTagName(\"script\");\n for (var i=0; i [\" + this.end.row + \"/\" + this.end.column + \"]\");\n };\n Range.prototype.contains = function (row, column) {\n return this.compare(row, column) == 0;\n };\n Range.prototype.compareRange = function (range) {\n var cmp, end = range.end, start = range.start;\n cmp = this.compare(end.row, end.column);\n if (cmp == 1) {\n cmp = this.compare(start.row, start.column);\n if (cmp == 1) {\n return 2;\n }\n else if (cmp == 0) {\n return 1;\n }\n else {\n return 0;\n }\n }\n else if (cmp == -1) {\n return -2;\n }\n else {\n cmp = this.compare(start.row, start.column);\n if (cmp == -1) {\n return -1;\n }\n else if (cmp == 1) {\n return 42;\n }\n else {\n return 0;\n }\n }\n };\n Range.prototype.comparePoint = function (p) {\n return this.compare(p.row, p.column);\n };\n Range.prototype.containsRange = function (range) {\n return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n };\n Range.prototype.intersects = function (range) {\n var cmp = this.compareRange(range);\n return (cmp == -1 || cmp == 0 || cmp == 1);\n };\n Range.prototype.isEnd = function (row, column) {\n return this.end.row == row && this.end.column == column;\n };\n Range.prototype.isStart = function (row, column) {\n return this.start.row == row && this.start.column == column;\n };\n Range.prototype.setStart = function (row, column) {\n if (typeof row == \"object\") {\n this.start.column = row.column;\n this.start.row = row.row;\n }\n else {\n this.start.row = row;\n this.start.column = column;\n }\n };\n Range.prototype.setEnd = function (row, column) {\n if (typeof row == \"object\") {\n this.end.column = row.column;\n this.end.row = row.row;\n }\n else {\n this.end.row = row;\n this.end.column = column;\n }\n };\n Range.prototype.inside = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column) || this.isStart(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.insideStart = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.insideEnd = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isStart(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.compare = function (row, column) {\n if (!this.isMultiLine()) {\n if (row === this.start.row) {\n return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n }\n }\n if (row < this.start.row)\n return -1;\n if (row > this.end.row)\n return 1;\n if (this.start.row === row)\n return column >= this.start.column ? 0 : -1;\n if (this.end.row === row)\n return column <= this.end.column ? 0 : 1;\n return 0;\n };\n Range.prototype.compareStart = function (row, column) {\n if (this.start.row == row && this.start.column == column) {\n return -1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.compareEnd = function (row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.compareInside = function (row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n }\n else if (this.start.row == row && this.start.column == column) {\n return -1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.clipRows = function (firstRow, lastRow) {\n if (this.end.row > lastRow)\n var end = { row: lastRow + 1, column: 0 };\n else if (this.end.row < firstRow)\n var end = { row: firstRow, column: 0 };\n if (this.start.row > lastRow)\n var start = { row: lastRow + 1, column: 0 };\n else if (this.start.row < firstRow)\n var start = { row: firstRow, column: 0 };\n return Range.fromPoints(start || this.start, end || this.end);\n };\n Range.prototype.extend = function (row, column) {\n var cmp = this.compare(row, column);\n if (cmp == 0)\n return this;\n else if (cmp == -1)\n var start = { row: row, column: column };\n else\n var end = { row: row, column: column };\n return Range.fromPoints(start || this.start, end || this.end);\n };\n Range.prototype.isEmpty = function () {\n return (this.start.row === this.end.row && this.start.column === this.end.column);\n };\n Range.prototype.isMultiLine = function () {\n return (this.start.row !== this.end.row);\n };\n Range.prototype.clone = function () {\n return Range.fromPoints(this.start, this.end);\n };\n Range.prototype.collapseRows = function () {\n if (this.end.column == 0)\n return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row - 1), 0);\n else\n return new Range(this.start.row, 0, this.end.row, 0);\n };\n Range.prototype.toScreenRange = function (session) {\n var screenPosStart = session.documentToScreenPosition(this.start);\n var screenPosEnd = session.documentToScreenPosition(this.end);\n return new Range(screenPosStart.row, screenPosStart.column, screenPosEnd.row, screenPosEnd.column);\n };\n Range.prototype.moveBy = function (row, column) {\n this.start.row += row;\n this.start.column += column;\n this.end.row += row;\n this.end.column += column;\n };\n return Range;\n}());\nRange.fromPoints = function (start, end) {\n return new Range(start.row, start.column, end.row, end.column);\n};\nRange.comparePoints = comparePoints;\nRange.comparePoints = function (p1, p2) {\n return p1.row - p2.row || p1.column - p2.column;\n};\nexports.Range = Range;\n\n});\n\nace.define(\"ace/lib/keys\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\"], function(require, exports, module){/*! @license\n==========================================================================\nSproutCore -- JavaScript Application Framework\ncopyright 2006-2009, Sprout Systems Inc., Apple Inc. and contributors.\n\nPermission is hereby granted, free of charge, to any person obtaining a\ncopy of this software and associated documentation files (the \"Software\"),\nto deal in the Software without restriction, including without limitation\nthe rights to use, copy, modify, merge, publish, distribute, sublicense,\nand/or sell copies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\nDEALINGS IN THE SOFTWARE.\n\nSproutCore and the SproutCore logo are trademarks of Sprout Systems, Inc.\n\nFor more information about SproutCore, visit http://www.sproutcore.com\n\n\n==========================================================================\n@license */\n\"use strict\";\nvar oop = require(\"./oop\");\nvar Keys = (function () {\n var ret = {\n MODIFIER_KEYS: {\n 16: 'Shift', 17: 'Ctrl', 18: 'Alt', 224: 'Meta',\n 91: 'MetaLeft', 92: 'MetaRight', 93: 'ContextMenu'\n },\n KEY_MODS: {\n \"ctrl\": 1, \"alt\": 2, \"option\": 2, \"shift\": 4,\n \"super\": 8, \"meta\": 8, \"command\": 8, \"cmd\": 8,\n \"control\": 1\n },\n FUNCTION_KEYS: {\n 8: \"Backspace\",\n 9: \"Tab\",\n 13: \"Return\",\n 19: \"Pause\",\n 27: \"Esc\",\n 32: \"Space\",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"Left\",\n 38: \"Up\",\n 39: \"Right\",\n 40: \"Down\",\n 44: \"Print\",\n 45: \"Insert\",\n 46: \"Delete\",\n 96: \"Numpad0\",\n 97: \"Numpad1\",\n 98: \"Numpad2\",\n 99: \"Numpad3\",\n 100: \"Numpad4\",\n 101: \"Numpad5\",\n 102: \"Numpad6\",\n 103: \"Numpad7\",\n 104: \"Numpad8\",\n 105: \"Numpad9\",\n '-13': \"NumpadEnter\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"Numlock\",\n 145: \"Scrolllock\"\n },\n PRINTABLE_KEYS: {\n 32: ' ', 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5',\n 54: '6', 55: '7', 56: '8', 57: '9', 59: ';', 61: '=', 65: 'a',\n 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h',\n 73: 'i', 74: 'j', 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o',\n 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't', 85: 'u', 86: 'v',\n 87: 'w', 88: 'x', 89: 'y', 90: 'z', 107: '+', 109: '-', 110: '.',\n 186: ';', 187: '=', 188: ',', 189: '-', 190: '.', 191: '/', 192: '`',\n 219: '[', 220: '\\\\', 221: ']', 222: \"'\", 111: '/', 106: '*'\n }\n };\n ret.PRINTABLE_KEYS[173] = '-';\n var name, i;\n for (i in ret.FUNCTION_KEYS) {\n name = ret.FUNCTION_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n for (i in ret.PRINTABLE_KEYS) {\n name = ret.PRINTABLE_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n oop.mixin(ret, ret.MODIFIER_KEYS);\n oop.mixin(ret, ret.PRINTABLE_KEYS);\n oop.mixin(ret, ret.FUNCTION_KEYS);\n ret.enter = ret[\"return\"];\n ret.escape = ret.esc;\n ret.del = ret[\"delete\"];\n (function () {\n var mods = [\"cmd\", \"ctrl\", \"alt\", \"shift\"];\n for (var i = Math.pow(2, mods.length); i--;) {\n ret.KEY_MODS[i] = mods.filter(function (x) {\n return i & ret.KEY_MODS[x];\n }).join(\"-\") + \"-\";\n }\n })();\n ret.KEY_MODS[0] = \"\";\n ret.KEY_MODS[-1] = \"input-\";\n return ret;\n})();\noop.mixin(exports, Keys);\nexports.default = exports;\nexports.keyCodeToString = function (keyCode) {\n var keyString = Keys[keyCode];\n if (typeof keyString != \"string\")\n keyString = String.fromCharCode(keyCode);\n return keyString.toLowerCase();\n};\n\n});\n\nace.define(\"ace/lib/event\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar keys = require(\"./keys\");\nvar useragent = require(\"./useragent\");\nvar pressedKeys = null;\nvar ts = 0;\nvar activeListenerOptions;\nfunction detectListenerOptionsSupport() {\n activeListenerOptions = false;\n try {\n document.createComment(\"\").addEventListener(\"test\", function () { }, {\n get passive() {\n activeListenerOptions = { passive: false };\n }\n });\n }\n catch (e) { }\n}\nfunction getListenerOptions() {\n if (activeListenerOptions == undefined)\n detectListenerOptionsSupport();\n return activeListenerOptions;\n}\nfunction EventListener(elem, type, callback) {\n this.elem = elem;\n this.type = type;\n this.callback = callback;\n}\nEventListener.prototype.destroy = function () {\n removeListener(this.elem, this.type, this.callback);\n this.elem = this.type = this.callback = undefined;\n};\nvar addListener = exports.addListener = function (elem, type, callback, destroyer) {\n elem.addEventListener(type, callback, getListenerOptions());\n if (destroyer)\n destroyer.$toDestroy.push(new EventListener(elem, type, callback));\n};\nvar removeListener = exports.removeListener = function (elem, type, callback) {\n elem.removeEventListener(type, callback, getListenerOptions());\n};\nexports.stopEvent = function (e) {\n exports.stopPropagation(e);\n exports.preventDefault(e);\n return false;\n};\nexports.stopPropagation = function (e) {\n if (e.stopPropagation)\n e.stopPropagation();\n};\nexports.preventDefault = function (e) {\n if (e.preventDefault)\n e.preventDefault();\n};\nexports.getButton = function (e) {\n if (e.type == \"dblclick\")\n return 0;\n if (e.type == \"contextmenu\" || (useragent.isMac && (e.ctrlKey && !e.altKey && !e.shiftKey)))\n return 2;\n return e.button;\n};\nexports.capture = function (el, eventHandler, releaseCaptureHandler) {\n var ownerDocument = el && el.ownerDocument || document;\n function onMouseUp(e) {\n eventHandler && eventHandler(e);\n releaseCaptureHandler && releaseCaptureHandler(e);\n removeListener(ownerDocument, \"mousemove\", eventHandler);\n removeListener(ownerDocument, \"mouseup\", onMouseUp);\n removeListener(ownerDocument, \"dragstart\", onMouseUp);\n }\n addListener(ownerDocument, \"mousemove\", eventHandler);\n addListener(ownerDocument, \"mouseup\", onMouseUp);\n addListener(ownerDocument, \"dragstart\", onMouseUp);\n return onMouseUp;\n};\nexports.addMouseWheelListener = function (el, callback, destroyer) {\n addListener(el, \"wheel\", function (e) {\n var factor = 0.15;\n var deltaX = e.deltaX || 0;\n var deltaY = e.deltaY || 0;\n switch (e.deltaMode) {\n case e.DOM_DELTA_PIXEL:\n e.wheelX = deltaX * factor;\n e.wheelY = deltaY * factor;\n break;\n case e.DOM_DELTA_LINE:\n var linePixels = 15;\n e.wheelX = deltaX * linePixels;\n e.wheelY = deltaY * linePixels;\n break;\n case e.DOM_DELTA_PAGE:\n var pagePixels = 150;\n e.wheelX = deltaX * pagePixels;\n e.wheelY = deltaY * pagePixels;\n break;\n }\n callback(e);\n }, destroyer);\n};\nexports.addMultiMouseDownListener = function (elements, timeouts, eventHandler, callbackName, destroyer) {\n var clicks = 0;\n var startX, startY, timer;\n var eventNames = {\n 2: \"dblclick\",\n 3: \"tripleclick\",\n 4: \"quadclick\"\n };\n function onMousedown(e) {\n if (exports.getButton(e) !== 0) {\n clicks = 0;\n }\n else if (e.detail > 1) {\n clicks++;\n if (clicks > 4)\n clicks = 1;\n }\n else {\n clicks = 1;\n }\n if (useragent.isIE) {\n var isNewClick = Math.abs(e.clientX - startX) > 5 || Math.abs(e.clientY - startY) > 5;\n if (!timer || isNewClick)\n clicks = 1;\n if (timer)\n clearTimeout(timer);\n timer = setTimeout(function () { timer = null; }, timeouts[clicks - 1] || 600);\n if (clicks == 1) {\n startX = e.clientX;\n startY = e.clientY;\n }\n }\n e._clicks = clicks;\n eventHandler[callbackName](\"mousedown\", e);\n if (clicks > 4)\n clicks = 0;\n else if (clicks > 1)\n return eventHandler[callbackName](eventNames[clicks], e);\n }\n if (!Array.isArray(elements))\n elements = [elements];\n elements.forEach(function (el) {\n addListener(el, \"mousedown\", onMousedown, destroyer);\n });\n};\nvar getModifierHash = function (e) {\n return 0 | (e.ctrlKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.metaKey ? 8 : 0);\n};\nexports.getModifierString = function (e) {\n return keys.KEY_MODS[getModifierHash(e)];\n};\nfunction normalizeCommandKeys(callback, e, keyCode) {\n var hashId = getModifierHash(e);\n if (!useragent.isMac && pressedKeys) {\n if (e.getModifierState && (e.getModifierState(\"OS\") || e.getModifierState(\"Win\")))\n hashId |= 8;\n if (pressedKeys.altGr) {\n if ((3 & hashId) != 3)\n pressedKeys.altGr = 0;\n else\n return;\n }\n if (keyCode === 18 || keyCode === 17) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (keyCode === 17 && location === 1) {\n if (pressedKeys[keyCode] == 1)\n ts = e.timeStamp;\n }\n else if (keyCode === 18 && hashId === 3 && location === 2) {\n var dt = e.timeStamp - ts;\n if (dt < 50)\n pressedKeys.altGr = true;\n }\n }\n }\n if (keyCode in keys.MODIFIER_KEYS) {\n keyCode = -1;\n }\n if (!hashId && keyCode === 13) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (location === 3) {\n callback(e, hashId, -keyCode);\n if (e.defaultPrevented)\n return;\n }\n }\n if (useragent.isChromeOS && hashId & 8) {\n callback(e, hashId, keyCode);\n if (e.defaultPrevented)\n return;\n else\n hashId &= ~8;\n }\n if (!hashId && !(keyCode in keys.FUNCTION_KEYS) && !(keyCode in keys.PRINTABLE_KEYS)) {\n return false;\n }\n return callback(e, hashId, keyCode);\n}\nexports.addCommandKeyListener = function (el, callback, destroyer) {\n if (useragent.isOldGecko || (useragent.isOpera && !(\"KeyboardEvent\" in window))) {\n var lastKeyDownKeyCode = null;\n addListener(el, \"keydown\", function (e) {\n lastKeyDownKeyCode = e.keyCode;\n }, destroyer);\n addListener(el, \"keypress\", function (e) {\n return normalizeCommandKeys(callback, e, lastKeyDownKeyCode);\n }, destroyer);\n }\n else {\n var lastDefaultPrevented = null;\n addListener(el, \"keydown\", function (e) {\n pressedKeys[e.keyCode] = (pressedKeys[e.keyCode] || 0) + 1;\n var result = normalizeCommandKeys(callback, e, e.keyCode);\n lastDefaultPrevented = e.defaultPrevented;\n return result;\n }, destroyer);\n addListener(el, \"keypress\", function (e) {\n if (lastDefaultPrevented && (e.ctrlKey || e.altKey || e.shiftKey || e.metaKey)) {\n exports.stopEvent(e);\n lastDefaultPrevented = null;\n }\n }, destroyer);\n addListener(el, \"keyup\", function (e) {\n pressedKeys[e.keyCode] = null;\n }, destroyer);\n if (!pressedKeys) {\n resetPressedKeys();\n addListener(window, \"focus\", resetPressedKeys);\n }\n }\n};\nfunction resetPressedKeys() {\n pressedKeys = Object.create(null);\n}\nif (typeof window == \"object\" && window.postMessage && !useragent.isOldIE) {\n var postMessageId = 1;\n exports.nextTick = function (callback, win) {\n win = win || window;\n var messageName = \"zero-timeout-message-\" + (postMessageId++);\n var listener = function (e) {\n if (e.data == messageName) {\n exports.stopPropagation(e);\n removeListener(win, \"message\", listener);\n callback();\n }\n };\n addListener(win, \"message\", listener);\n win.postMessage(messageName, \"*\");\n };\n}\nexports.$idleBlocked = false;\nexports.onIdle = function (cb, timeout) {\n return setTimeout(function handler() {\n if (!exports.$idleBlocked) {\n cb();\n }\n else {\n setTimeout(handler, 100);\n }\n }, timeout);\n};\nexports.$idleBlockId = null;\nexports.blockIdle = function (delay) {\n if (exports.$idleBlockId)\n clearTimeout(exports.$idleBlockId);\n exports.$idleBlocked = true;\n exports.$idleBlockId = setTimeout(function () {\n exports.$idleBlocked = false;\n }, delay || 100);\n};\nexports.nextFrame = typeof window == \"object\" && (window.requestAnimationFrame\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame\n || window.msRequestAnimationFrame\n || window.oRequestAnimationFrame);\nif (exports.nextFrame)\n exports.nextFrame = exports.nextFrame.bind(window);\nelse\n exports.nextFrame = function (callback) {\n setTimeout(callback, 17);\n };\n\n});\n\nace.define(\"ace/clipboard\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar $cancelT;\nmodule.exports = {\n lineMode: false,\n pasteCancelled: function () {\n if ($cancelT && $cancelT > Date.now() - 50)\n return true;\n return $cancelT = false;\n },\n cancel: function () {\n $cancelT = Date.now();\n }\n};\n\n});\n\nace.define(\"ace/keyboard/textinput\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/config\",\"ace/lib/useragent\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/clipboard\",\"ace/lib/keys\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar nls = require(\"../config\").nls;\nvar useragent = require(\"../lib/useragent\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar clipboard = require(\"../clipboard\");\nvar BROKEN_SETDATA = useragent.isChrome < 18;\nvar USE_IE_MIME_TYPE = useragent.isIE;\nvar HAS_FOCUS_ARGS = useragent.isChrome > 63;\nvar MAX_LINE_LENGTH = 400;\nvar KEYS = require(\"../lib/keys\");\nvar MODS = KEYS.KEY_MODS;\nvar isIOS = useragent.isIOS;\nvar valueResetRegex = isIOS ? /\\s/ : /\\n/;\nvar isMobile = useragent.isMobile;\nvar TextInput = function (parentNode, host) {\n var text = dom.createElement(\"textarea\");\n text.className = \"ace_text-input\";\n text.setAttribute(\"wrap\", \"off\");\n text.setAttribute(\"autocorrect\", \"off\");\n text.setAttribute(\"autocapitalize\", \"off\");\n text.setAttribute(\"spellcheck\", false);\n text.style.opacity = \"0\";\n parentNode.insertBefore(text, parentNode.firstChild);\n var copied = false;\n var pasted = false;\n var inComposition = false;\n var sendingText = false;\n var tempStyle = '';\n if (!isMobile)\n text.style.fontSize = \"1px\";\n var commandMode = false;\n var ignoreFocusEvents = false;\n var lastValue = \"\";\n var lastSelectionStart = 0;\n var lastSelectionEnd = 0;\n var lastRestoreEnd = 0;\n var rowStart = Number.MAX_SAFE_INTEGER;\n var rowEnd = Number.MIN_SAFE_INTEGER;\n var numberOfExtraLines = 0;\n try {\n var isFocused = document.activeElement === text;\n }\n catch (e) { }\n this.setNumberOfExtraLines = function (number) {\n rowStart = Number.MAX_SAFE_INTEGER;\n rowEnd = Number.MIN_SAFE_INTEGER;\n if (number < 0) {\n numberOfExtraLines = 0;\n return;\n }\n numberOfExtraLines = number;\n };\n this.setAriaOptions = function (options) {\n if (options.activeDescendant) {\n text.setAttribute(\"aria-haspopup\", \"true\");\n text.setAttribute(\"aria-autocomplete\", options.inline ? \"both\" : \"list\");\n text.setAttribute(\"aria-activedescendant\", options.activeDescendant);\n }\n else {\n text.setAttribute(\"aria-haspopup\", \"false\");\n text.setAttribute(\"aria-autocomplete\", \"both\");\n text.removeAttribute(\"aria-activedescendant\");\n }\n if (options.role) {\n text.setAttribute(\"role\", options.role);\n }\n if (options.setLabel) {\n text.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n if (host.session) {\n var row = host.session.selection.cursor.row;\n text.setAttribute(\"aria-label\", nls(\"Cursor at row $0\", [row + 1]));\n }\n }\n };\n this.setAriaOptions({ role: \"textbox\" });\n event.addListener(text, \"blur\", function (e) {\n if (ignoreFocusEvents)\n return;\n host.onBlur(e);\n isFocused = false;\n }, host);\n event.addListener(text, \"focus\", function (e) {\n if (ignoreFocusEvents)\n return;\n isFocused = true;\n if (useragent.isEdge) {\n try {\n if (!document.hasFocus())\n return;\n }\n catch (e) { }\n }\n host.onFocus(e);\n if (useragent.isEdge)\n setTimeout(resetSelection);\n else\n resetSelection();\n }, host);\n this.$focusScroll = false;\n this.focus = function () {\n this.setAriaOptions({\n setLabel: host.renderer.enableKeyboardAccessibility\n });\n if (tempStyle || HAS_FOCUS_ARGS || this.$focusScroll == \"browser\")\n return text.focus({ preventScroll: true });\n var top = text.style.top;\n text.style.position = \"fixed\";\n text.style.top = \"0px\";\n try {\n var isTransformed = text.getBoundingClientRect().top != 0;\n }\n catch (e) {\n return;\n }\n var ancestors = [];\n if (isTransformed) {\n var t = text.parentElement;\n while (t && t.nodeType == 1) {\n ancestors.push(t);\n t.setAttribute(\"ace_nocontext\", true);\n if (!t.parentElement && t.getRootNode)\n t = t.getRootNode().host;\n else\n t = t.parentElement;\n }\n }\n text.focus({ preventScroll: true });\n if (isTransformed) {\n ancestors.forEach(function (p) {\n p.removeAttribute(\"ace_nocontext\");\n });\n }\n setTimeout(function () {\n text.style.position = \"\";\n if (text.style.top == \"0px\")\n text.style.top = top;\n }, 0);\n };\n this.blur = function () {\n text.blur();\n };\n this.isFocused = function () {\n return isFocused;\n };\n host.on(\"beforeEndOperation\", function () {\n var curOp = host.curOp;\n var commandName = curOp && curOp.command && curOp.command.name;\n if (commandName == \"insertstring\")\n return;\n var isUserAction = commandName && (curOp.docChanged || curOp.selectionChanged);\n if (inComposition && isUserAction) {\n lastValue = text.value = \"\";\n onCompositionEnd();\n }\n resetSelection();\n });\n var positionToSelection = function (row, column) {\n var selection = column;\n for (var i = 1; i <= row - rowStart && i < 2 * numberOfExtraLines + 1; i++) {\n selection += host.session.getLine(row - i).length + 1;\n }\n return selection;\n };\n var resetSelection = isIOS\n ? function (value) {\n if (!isFocused || (copied && !value) || sendingText)\n return;\n if (!value)\n value = \"\";\n var newValue = \"\\n ab\" + value + \"cde fg\\n\";\n if (newValue != text.value)\n text.value = lastValue = newValue;\n var selectionStart = 4;\n var selectionEnd = 4 + (value.length || (host.selection.isEmpty() ? 0 : 1));\n if (lastSelectionStart != selectionStart || lastSelectionEnd != selectionEnd) {\n text.setSelectionRange(selectionStart, selectionEnd);\n }\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n }\n : function () {\n if (inComposition || sendingText)\n return;\n if (!isFocused && !afterContextMenu)\n return;\n inComposition = true;\n var selectionStart = 0;\n var selectionEnd = 0;\n var line = \"\";\n if (host.session) {\n var selection = host.selection;\n var range = selection.getRange();\n var row = selection.cursor.row;\n if (row === rowEnd + 1) {\n rowStart = rowEnd + 1;\n rowEnd = rowStart + 2 * numberOfExtraLines;\n }\n else if (row === rowStart - 1) {\n rowEnd = rowStart - 1;\n rowStart = rowEnd - 2 * numberOfExtraLines;\n }\n else if (row < rowStart - 1 || row > rowEnd + 1) {\n rowStart = row > numberOfExtraLines ? row - numberOfExtraLines : 0;\n rowEnd = row > numberOfExtraLines ? row + numberOfExtraLines : 2 * numberOfExtraLines;\n }\n var lines = [];\n for (var i = rowStart; i <= rowEnd; i++) {\n lines.push(host.session.getLine(i));\n }\n line = lines.join('\\n');\n selectionStart = positionToSelection(range.start.row, range.start.column);\n selectionEnd = positionToSelection(range.end.row, range.end.column);\n if (range.start.row < rowStart) {\n var prevLine = host.session.getLine(rowStart - 1);\n selectionStart = range.start.row < rowStart - 1 ? 0 : selectionStart;\n selectionEnd += prevLine.length + 1;\n line = prevLine + \"\\n\" + line;\n }\n else if (range.end.row > rowEnd) {\n var nextLine = host.session.getLine(rowEnd + 1);\n selectionEnd = range.end.row > rowEnd + 1 ? nextLine.length : range.end.column;\n selectionEnd += line.length + 1;\n line = line + \"\\n\" + nextLine;\n }\n else if (isMobile && row > 0) {\n line = \"\\n\" + line;\n selectionEnd += 1;\n selectionStart += 1;\n }\n if (line.length > MAX_LINE_LENGTH) {\n if (selectionStart < MAX_LINE_LENGTH && selectionEnd < MAX_LINE_LENGTH) {\n line = line.slice(0, MAX_LINE_LENGTH);\n }\n else {\n line = \"\\n\";\n if (selectionStart == selectionEnd) {\n selectionStart = selectionEnd = 0;\n }\n else {\n selectionStart = 0;\n selectionEnd = 1;\n }\n }\n }\n var newValue = line + \"\\n\\n\";\n if (newValue != lastValue) {\n text.value = lastValue = newValue;\n lastSelectionStart = lastSelectionEnd = newValue.length;\n }\n }\n if (afterContextMenu) {\n lastSelectionStart = text.selectionStart;\n lastSelectionEnd = text.selectionEnd;\n }\n if (lastSelectionEnd != selectionEnd\n || lastSelectionStart != selectionStart\n || text.selectionEnd != lastSelectionEnd // on ie edge selectionEnd changes silently after the initialization\n ) {\n try {\n text.setSelectionRange(selectionStart, selectionEnd);\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n }\n catch (e) { }\n }\n inComposition = false;\n };\n this.resetSelection = resetSelection;\n if (isFocused)\n host.onFocus();\n var isAllSelected = function (text) {\n return text.selectionStart === 0 && text.selectionEnd >= lastValue.length\n && text.value === lastValue && lastValue\n && text.selectionEnd !== lastSelectionEnd;\n };\n var onSelect = function (e) {\n if (inComposition)\n return;\n if (copied) {\n copied = false;\n }\n else if (isAllSelected(text)) {\n host.selectAll();\n resetSelection();\n }\n else if (isMobile && text.selectionStart != lastSelectionStart) {\n resetSelection();\n }\n };\n var inputHandler = null;\n this.setInputHandler = function (cb) { inputHandler = cb; };\n this.getInputHandler = function () { return inputHandler; };\n var afterContextMenu = false;\n var sendText = function (value, fromInput) {\n if (afterContextMenu)\n afterContextMenu = false;\n if (pasted) {\n resetSelection();\n if (value)\n host.onPaste(value);\n pasted = false;\n return \"\";\n }\n else {\n var selectionStart = text.selectionStart;\n var selectionEnd = text.selectionEnd;\n var extendLeft = lastSelectionStart;\n var extendRight = lastValue.length - lastSelectionEnd;\n var inserted = value;\n var restoreStart = value.length - selectionStart;\n var restoreEnd = value.length - selectionEnd;\n var i = 0;\n while (extendLeft > 0 && lastValue[i] == value[i]) {\n i++;\n extendLeft--;\n }\n inserted = inserted.slice(i);\n i = 1;\n while (extendRight > 0 && lastValue.length - i > lastSelectionStart - 1 && lastValue[lastValue.length - i] == value[value.length - i]) {\n i++;\n extendRight--;\n }\n restoreStart -= i - 1;\n restoreEnd -= i - 1;\n var endIndex = inserted.length - i + 1;\n if (endIndex < 0) {\n extendLeft = -endIndex;\n endIndex = 0;\n }\n inserted = inserted.slice(0, endIndex);\n if (!fromInput && !inserted && !restoreStart && !extendLeft && !extendRight && !restoreEnd)\n return \"\";\n sendingText = true;\n var shouldReset = false;\n if (useragent.isAndroid && inserted == \". \") {\n inserted = \" \";\n shouldReset = true;\n }\n if (inserted && !extendLeft && !extendRight && !restoreStart && !restoreEnd || commandMode) {\n host.onTextInput(inserted);\n }\n else {\n host.onTextInput(inserted, {\n extendLeft: extendLeft,\n extendRight: extendRight,\n restoreStart: restoreStart,\n restoreEnd: restoreEnd\n });\n }\n sendingText = false;\n lastValue = value;\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n lastRestoreEnd = restoreEnd;\n return shouldReset ? \"\\n\" : inserted;\n }\n };\n var onInput = function (e) {\n if (inComposition)\n return onCompositionUpdate();\n if (e && e.inputType) {\n if (e.inputType == \"historyUndo\")\n return host.execCommand(\"undo\");\n if (e.inputType == \"historyRedo\")\n return host.execCommand(\"redo\");\n }\n var data = text.value;\n var inserted = sendText(data, true);\n if (data.length > MAX_LINE_LENGTH + 100\n || valueResetRegex.test(inserted)\n || isMobile && lastSelectionStart < 1 && lastSelectionStart == lastSelectionEnd) {\n resetSelection();\n }\n };\n var handleClipboardData = function (e, data, forceIEMime) {\n var clipboardData = e.clipboardData || window.clipboardData;\n if (!clipboardData || BROKEN_SETDATA)\n return;\n var mime = USE_IE_MIME_TYPE || forceIEMime ? \"Text\" : \"text/plain\";\n try {\n if (data) {\n return clipboardData.setData(mime, data) !== false;\n }\n else {\n return clipboardData.getData(mime);\n }\n }\n catch (e) {\n if (!forceIEMime)\n return handleClipboardData(e, data, true);\n }\n };\n var doCopy = function (e, isCut) {\n var data = host.getCopyText();\n if (!data)\n return event.preventDefault(e);\n if (handleClipboardData(e, data)) {\n if (isIOS) {\n resetSelection(data);\n copied = data;\n setTimeout(function () {\n copied = false;\n }, 10);\n }\n isCut ? host.onCut() : host.onCopy();\n event.preventDefault(e);\n }\n else {\n copied = true;\n text.value = data;\n text.select();\n setTimeout(function () {\n copied = false;\n resetSelection();\n isCut ? host.onCut() : host.onCopy();\n });\n }\n };\n var onCut = function (e) {\n doCopy(e, true);\n };\n var onCopy = function (e) {\n doCopy(e, false);\n };\n var onPaste = function (e) {\n var data = handleClipboardData(e);\n if (clipboard.pasteCancelled())\n return;\n if (typeof data == \"string\") {\n if (data)\n host.onPaste(data, e);\n if (useragent.isIE)\n setTimeout(resetSelection);\n event.preventDefault(e);\n }\n else {\n text.value = \"\";\n pasted = true;\n }\n };\n event.addCommandKeyListener(text, host.onCommandKey.bind(host), host);\n event.addListener(text, \"select\", onSelect, host);\n event.addListener(text, \"input\", onInput, host);\n event.addListener(text, \"cut\", onCut, host);\n event.addListener(text, \"copy\", onCopy, host);\n event.addListener(text, \"paste\", onPaste, host);\n if (!('oncut' in text) || !('oncopy' in text) || !('onpaste' in text)) {\n event.addListener(parentNode, \"keydown\", function (e) {\n if ((useragent.isMac && !e.metaKey) || !e.ctrlKey)\n return;\n switch (e.keyCode) {\n case 67:\n onCopy(e);\n break;\n case 86:\n onPaste(e);\n break;\n case 88:\n onCut(e);\n break;\n }\n }, host);\n }\n var onCompositionStart = function (e) {\n if (inComposition || !host.onCompositionStart || host.$readOnly)\n return;\n inComposition = {};\n if (commandMode)\n return;\n if (e.data)\n inComposition.useTextareaForIME = false;\n setTimeout(onCompositionUpdate, 0);\n host._signal(\"compositionStart\");\n host.on(\"mousedown\", cancelComposition);\n var range = host.getSelectionRange();\n range.end.row = range.start.row;\n range.end.column = range.start.column;\n inComposition.markerRange = range;\n inComposition.selectionStart = lastSelectionStart;\n host.onCompositionStart(inComposition);\n if (inComposition.useTextareaForIME) {\n lastValue = text.value = \"\";\n lastSelectionStart = 0;\n lastSelectionEnd = 0;\n }\n else {\n if (text.msGetInputContext)\n inComposition.context = text.msGetInputContext();\n if (text.getInputContext)\n inComposition.context = text.getInputContext();\n }\n };\n var onCompositionUpdate = function () {\n if (!inComposition || !host.onCompositionUpdate || host.$readOnly)\n return;\n if (commandMode)\n return cancelComposition();\n if (inComposition.useTextareaForIME) {\n host.onCompositionUpdate(text.value);\n }\n else {\n var data = text.value;\n sendText(data);\n if (inComposition.markerRange) {\n if (inComposition.context) {\n inComposition.markerRange.start.column = inComposition.selectionStart\n = inComposition.context.compositionStartOffset;\n }\n inComposition.markerRange.end.column = inComposition.markerRange.start.column\n + lastSelectionEnd - inComposition.selectionStart + lastRestoreEnd;\n }\n }\n };\n var onCompositionEnd = function (e) {\n if (!host.onCompositionEnd || host.$readOnly)\n return;\n inComposition = false;\n host.onCompositionEnd();\n host.off(\"mousedown\", cancelComposition);\n if (e)\n onInput();\n };\n function cancelComposition() {\n ignoreFocusEvents = true;\n text.blur();\n text.focus();\n ignoreFocusEvents = false;\n }\n var syncComposition = lang.delayedCall(onCompositionUpdate, 50).schedule.bind(null, null);\n function onKeyup(e) {\n if (e.keyCode == 27 && text.value.length < text.selectionStart) {\n if (!inComposition)\n lastValue = text.value;\n lastSelectionStart = lastSelectionEnd = -1;\n resetSelection();\n }\n syncComposition();\n }\n event.addListener(text, \"compositionstart\", onCompositionStart, host);\n event.addListener(text, \"compositionupdate\", onCompositionUpdate, host);\n event.addListener(text, \"keyup\", onKeyup, host);\n event.addListener(text, \"keydown\", syncComposition, host);\n event.addListener(text, \"compositionend\", onCompositionEnd, host);\n this.getElement = function () {\n return text;\n };\n this.setCommandMode = function (value) {\n commandMode = value;\n text.readOnly = false;\n };\n this.setReadOnly = function (readOnly) {\n if (!commandMode)\n text.readOnly = readOnly;\n };\n this.setCopyWithEmptySelection = function (value) {\n };\n this.onContextMenu = function (e) {\n afterContextMenu = true;\n resetSelection();\n host._emit(\"nativecontextmenu\", { target: host, domEvent: e });\n this.moveToMouse(e, true);\n };\n this.moveToMouse = function (e, bringToFront) {\n if (!tempStyle)\n tempStyle = text.style.cssText;\n text.style.cssText = (bringToFront ? \"z-index:100000;\" : \"\")\n + (useragent.isIE ? \"opacity:0.1;\" : \"\")\n + \"text-indent: -\" + (lastSelectionStart + lastSelectionEnd) * host.renderer.characterWidth * 0.5 + \"px;\";\n var rect = host.container.getBoundingClientRect();\n var style = dom.computedStyle(host.container);\n var top = rect.top + (parseInt(style.borderTopWidth) || 0);\n var left = rect.left + (parseInt(rect.borderLeftWidth) || 0);\n var maxTop = rect.bottom - top - text.clientHeight - 2;\n var move = function (e) {\n dom.translate(text, e.clientX - left - 2, Math.min(e.clientY - top - 2, maxTop));\n };\n move(e);\n if (e.type != \"mousedown\")\n return;\n host.renderer.$isMousePressed = true;\n clearTimeout(closeTimeout);\n if (useragent.isWin)\n event.capture(host.container, move, onContextMenuClose);\n };\n this.onContextMenuClose = onContextMenuClose;\n var closeTimeout;\n function onContextMenuClose() {\n clearTimeout(closeTimeout);\n closeTimeout = setTimeout(function () {\n if (tempStyle) {\n text.style.cssText = tempStyle;\n tempStyle = '';\n }\n host.renderer.$isMousePressed = false;\n if (host.renderer.$keepTextAreaAtCursor)\n host.renderer.$moveTextAreaToCursor();\n }, 0);\n }\n var onContextMenu = function (e) {\n host.textInput.onContextMenu(e);\n onContextMenuClose();\n };\n event.addListener(text, \"mouseup\", onContextMenu, host);\n event.addListener(text, \"mousedown\", function (e) {\n e.preventDefault();\n onContextMenuClose();\n }, host);\n event.addListener(host.renderer.scroller, \"contextmenu\", onContextMenu, host);\n event.addListener(text, \"contextmenu\", onContextMenu, host);\n if (isIOS)\n addIosSelectionHandler(parentNode, host, text);\n function addIosSelectionHandler(parentNode, host, text) {\n var typingResetTimeout = null;\n var typing = false;\n text.addEventListener(\"keydown\", function (e) {\n if (typingResetTimeout)\n clearTimeout(typingResetTimeout);\n typing = true;\n }, true);\n text.addEventListener(\"keyup\", function (e) {\n typingResetTimeout = setTimeout(function () {\n typing = false;\n }, 100);\n }, true);\n var detectArrowKeys = function (e) {\n if (document.activeElement !== text)\n return;\n if (typing || inComposition || host.$mouseHandler.isMousePressed)\n return;\n if (copied) {\n return;\n }\n var selectionStart = text.selectionStart;\n var selectionEnd = text.selectionEnd;\n var key = null;\n var modifier = 0;\n if (selectionStart == 0) {\n key = KEYS.up;\n }\n else if (selectionStart == 1) {\n key = KEYS.home;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue[selectionEnd] == \"\\n\") {\n key = KEYS.end;\n }\n else if (selectionStart < lastSelectionStart && lastValue[selectionStart - 1] == \" \") {\n key = KEYS.left;\n modifier = MODS.option;\n }\n else if (selectionStart < lastSelectionStart\n || (selectionStart == lastSelectionStart\n && lastSelectionEnd != lastSelectionStart\n && selectionStart == selectionEnd)) {\n key = KEYS.left;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue.slice(0, selectionEnd).split(\"\\n\").length > 2) {\n key = KEYS.down;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue[selectionEnd - 1] == \" \") {\n key = KEYS.right;\n modifier = MODS.option;\n }\n else if (selectionEnd > lastSelectionEnd\n || (selectionEnd == lastSelectionEnd\n && lastSelectionEnd != lastSelectionStart\n && selectionStart == selectionEnd)) {\n key = KEYS.right;\n }\n if (selectionStart !== selectionEnd)\n modifier |= MODS.shift;\n if (key) {\n var result = host.onCommandKey({}, modifier, key);\n if (!result && host.commands) {\n key = KEYS.keyCodeToString(key);\n var command = host.commands.findKeyCommand(modifier, key);\n if (command)\n host.execCommand(command);\n }\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n resetSelection(\"\");\n }\n };\n document.addEventListener(\"selectionchange\", detectArrowKeys);\n host.on(\"destroy\", function () {\n document.removeEventListener(\"selectionchange\", detectArrowKeys);\n });\n }\n this.destroy = function () {\n if (text.parentElement)\n text.parentElement.removeChild(text);\n };\n};\nexports.TextInput = TextInput;\nexports.$setUserAgentForTests = function (_isMobile, _isIOS) {\n isMobile = _isMobile;\n isIOS = _isIOS;\n};\n\n});\n\nace.define(\"ace/mouse/default_handlers\",[\"require\",\"exports\",\"module\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar useragent = require(\"../lib/useragent\");\nvar DRAG_OFFSET = 0; // pixels\nvar SCROLL_COOLDOWN_T = 550; // milliseconds\nvar DefaultHandlers = /** @class */ (function () {\n function DefaultHandlers(mouseHandler) {\n mouseHandler.$clickSelection = null;\n var editor = mouseHandler.editor;\n editor.setDefaultHandler(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n editor.setDefaultHandler(\"dblclick\", this.onDoubleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"tripleclick\", this.onTripleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"quadclick\", this.onQuadClick.bind(mouseHandler));\n editor.setDefaultHandler(\"mousewheel\", this.onMouseWheel.bind(mouseHandler));\n var exports = [\"select\", \"startSelect\", \"selectEnd\", \"selectAllEnd\", \"selectByWordsEnd\",\n \"selectByLinesEnd\", \"dragWait\", \"dragWaitEnd\", \"focusWait\"];\n exports.forEach(function (x) {\n mouseHandler[x] = this[x];\n }, this);\n mouseHandler.selectByLines = this.extendSelectionBy.bind(mouseHandler, \"getLineRange\");\n mouseHandler.selectByWords = this.extendSelectionBy.bind(mouseHandler, \"getWordRange\");\n }\n DefaultHandlers.prototype.onMouseDown = function (ev) {\n var inSelection = ev.inSelection();\n var pos = ev.getDocumentPosition();\n this.mousedownEvent = ev;\n var editor = this.editor;\n var button = ev.getButton();\n if (button !== 0) {\n var selectionRange = editor.getSelectionRange();\n var selectionEmpty = selectionRange.isEmpty();\n if (selectionEmpty || button == 1)\n editor.selection.moveToPosition(pos);\n if (button == 2) {\n editor.textInput.onContextMenu(ev.domEvent);\n if (!useragent.isMozilla)\n ev.preventDefault();\n }\n return;\n }\n this.mousedownEvent.time = Date.now();\n if (inSelection && !editor.isFocused()) {\n editor.focus();\n if (this.$focusTimeout && !this.$clickSelection && !editor.inMultiSelectMode) {\n this.setState(\"focusWait\");\n this.captureMouse(ev);\n return;\n }\n }\n this.captureMouse(ev);\n this.startSelect(pos, ev.domEvent._clicks > 1);\n return ev.preventDefault();\n };\n DefaultHandlers.prototype.startSelect = function (pos, waitForClickSelection) {\n pos = pos || this.editor.renderer.screenToTextCoordinates(this.x, this.y);\n var editor = this.editor;\n if (!this.mousedownEvent)\n return;\n if (this.mousedownEvent.getShiftKey())\n editor.selection.selectToPosition(pos);\n else if (!waitForClickSelection)\n editor.selection.moveToPosition(pos);\n if (!waitForClickSelection)\n this.select();\n editor.setStyle(\"ace_selecting\");\n this.setState(\"select\");\n };\n DefaultHandlers.prototype.select = function () {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n if (this.$clickSelection) {\n var cmp = this.$clickSelection.comparePoint(cursor);\n if (cmp == -1) {\n anchor = this.$clickSelection.end;\n }\n else if (cmp == 1) {\n anchor = this.$clickSelection.start;\n }\n else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n };\n DefaultHandlers.prototype.extendSelectionBy = function (unitName) {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n var range = editor.selection[unitName](cursor.row, cursor.column);\n if (this.$clickSelection) {\n var cmpStart = this.$clickSelection.comparePoint(range.start);\n var cmpEnd = this.$clickSelection.comparePoint(range.end);\n if (cmpStart == -1 && cmpEnd <= 0) {\n anchor = this.$clickSelection.end;\n if (range.end.row != cursor.row || range.end.column != cursor.column)\n cursor = range.start;\n }\n else if (cmpEnd == 1 && cmpStart >= 0) {\n anchor = this.$clickSelection.start;\n if (range.start.row != cursor.row || range.start.column != cursor.column)\n cursor = range.end;\n }\n else if (cmpStart == -1 && cmpEnd == 1) {\n cursor = range.end;\n anchor = range.start;\n }\n else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n };\n DefaultHandlers.prototype.selectByLinesEnd = function () {\n this.$clickSelection = null;\n this.editor.unsetStyle(\"ace_selecting\");\n };\n DefaultHandlers.prototype.focusWait = function () {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n var time = Date.now();\n if (distance > DRAG_OFFSET || time - this.mousedownEvent.time > this.$focusTimeout)\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n };\n DefaultHandlers.prototype.onDoubleClick = function (ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n var session = editor.session;\n var range = session.getBracketRange(pos);\n if (range) {\n if (range.isEmpty()) {\n range.start.column--;\n range.end.column++;\n }\n this.setState(\"select\");\n }\n else {\n range = editor.selection.getWordRange(pos.row, pos.column);\n this.setState(\"selectByWords\");\n }\n this.$clickSelection = range;\n this.select();\n };\n DefaultHandlers.prototype.onTripleClick = function (ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n this.setState(\"selectByLines\");\n var range = editor.getSelectionRange();\n if (range.isMultiLine() && range.contains(pos.row, pos.column)) {\n this.$clickSelection = editor.selection.getLineRange(range.start.row);\n this.$clickSelection.end = editor.selection.getLineRange(range.end.row).end;\n }\n else {\n this.$clickSelection = editor.selection.getLineRange(pos.row);\n }\n this.select();\n };\n DefaultHandlers.prototype.onQuadClick = function (ev) {\n var editor = this.editor;\n editor.selectAll();\n this.$clickSelection = editor.getSelectionRange();\n this.setState(\"selectAll\");\n };\n DefaultHandlers.prototype.onMouseWheel = function (ev) {\n if (ev.getAccelKey())\n return;\n if (ev.getShiftKey() && ev.wheelY && !ev.wheelX) {\n ev.wheelX = ev.wheelY;\n ev.wheelY = 0;\n }\n var editor = this.editor;\n if (!this.$lastScroll)\n this.$lastScroll = { t: 0, vx: 0, vy: 0, allowed: 0 };\n var prevScroll = this.$lastScroll;\n var t = ev.domEvent.timeStamp;\n var dt = t - prevScroll.t;\n var vx = dt ? ev.wheelX / dt : prevScroll.vx;\n var vy = dt ? ev.wheelY / dt : prevScroll.vy;\n if (dt < SCROLL_COOLDOWN_T) {\n vx = (vx + prevScroll.vx) / 2;\n vy = (vy + prevScroll.vy) / 2;\n }\n var direction = Math.abs(vx / vy);\n var canScroll = false;\n if (direction >= 1 && editor.renderer.isScrollableBy(ev.wheelX * ev.speed, 0))\n canScroll = true;\n if (direction <= 1 && editor.renderer.isScrollableBy(0, ev.wheelY * ev.speed))\n canScroll = true;\n if (canScroll) {\n prevScroll.allowed = t;\n }\n else if (t - prevScroll.allowed < SCROLL_COOLDOWN_T) {\n var isSlower = Math.abs(vx) <= 1.5 * Math.abs(prevScroll.vx)\n && Math.abs(vy) <= 1.5 * Math.abs(prevScroll.vy);\n if (isSlower) {\n canScroll = true;\n prevScroll.allowed = t;\n }\n else {\n prevScroll.allowed = 0;\n }\n }\n prevScroll.t = t;\n prevScroll.vx = vx;\n prevScroll.vy = vy;\n if (canScroll) {\n editor.renderer.scrollBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n return ev.stop();\n }\n };\n return DefaultHandlers;\n}());\nDefaultHandlers.prototype.selectEnd = DefaultHandlers.prototype.selectByLinesEnd;\nDefaultHandlers.prototype.selectAllEnd = DefaultHandlers.prototype.selectByLinesEnd;\nDefaultHandlers.prototype.selectByWordsEnd = DefaultHandlers.prototype.selectByLinesEnd;\nexports.DefaultHandlers = DefaultHandlers;\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\nfunction calcRangeOrientation(range, cursor) {\n if (range.start.row == range.end.row)\n var cmp = 2 * cursor.column - range.start.column - range.end.column;\n else if (range.start.row == range.end.row - 1 && !range.start.column && !range.end.column)\n var cmp = cursor.column - 4;\n else\n var cmp = 2 * cursor.row - range.start.row - range.end.row;\n if (cmp < 0)\n return { cursor: range.start, anchor: range.end };\n else\n return { cursor: range.end, anchor: range.start };\n}\n\n});\n\nace.define(\"ace/tooltip\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar Range = require(\"./range\").Range;\nvar CLASSNAME = \"ace_tooltip\";\nvar Tooltip = /** @class */ (function () {\n function Tooltip(parentNode) {\n this.isOpen = false;\n this.$element = null;\n this.$parentNode = parentNode;\n }\n Tooltip.prototype.$init = function () {\n this.$element = dom.createElement(\"div\");\n this.$element.className = CLASSNAME;\n this.$element.style.display = \"none\";\n this.$parentNode.appendChild(this.$element);\n return this.$element;\n };\n Tooltip.prototype.getElement = function () {\n return this.$element || this.$init();\n };\n Tooltip.prototype.setText = function (text) {\n this.getElement().textContent = text;\n };\n Tooltip.prototype.setHtml = function (html) {\n this.getElement().innerHTML = html;\n };\n Tooltip.prototype.setPosition = function (x, y) {\n this.getElement().style.left = x + \"px\";\n this.getElement().style.top = y + \"px\";\n };\n Tooltip.prototype.setClassName = function (className) {\n dom.addCssClass(this.getElement(), className);\n };\n Tooltip.prototype.setTheme = function (theme) {\n this.$element.className = CLASSNAME + \" \" +\n (theme.isDark ? \"ace_dark \" : \"\") + (theme.cssClass || \"\");\n };\n Tooltip.prototype.show = function (text, x, y) {\n if (text != null)\n this.setText(text);\n if (x != null && y != null)\n this.setPosition(x, y);\n if (!this.isOpen) {\n this.getElement().style.display = \"block\";\n this.isOpen = true;\n }\n };\n Tooltip.prototype.hide = function () {\n if (this.isOpen) {\n this.getElement().style.display = \"none\";\n this.getElement().className = CLASSNAME;\n this.isOpen = false;\n }\n };\n Tooltip.prototype.getHeight = function () {\n return this.getElement().offsetHeight;\n };\n Tooltip.prototype.getWidth = function () {\n return this.getElement().offsetWidth;\n };\n Tooltip.prototype.destroy = function () {\n this.isOpen = false;\n if (this.$element && this.$element.parentNode) {\n this.$element.parentNode.removeChild(this.$element);\n }\n };\n return Tooltip;\n}());\nvar PopupManager = /** @class */ (function () {\n function PopupManager() {\n this.popups = [];\n }\n PopupManager.prototype.addPopup = function (popup) {\n this.popups.push(popup);\n this.updatePopups();\n };\n PopupManager.prototype.removePopup = function (popup) {\n var index = this.popups.indexOf(popup);\n if (index !== -1) {\n this.popups.splice(index, 1);\n this.updatePopups();\n }\n };\n PopupManager.prototype.updatePopups = function () {\n var e_1, _a, e_2, _b;\n this.popups.sort(function (a, b) { return b.priority - a.priority; });\n var visiblepopups = [];\n try {\n for (var _c = __values(this.popups), _d = _c.next(); !_d.done; _d = _c.next()) {\n var popup = _d.value;\n var shouldDisplay = true;\n try {\n for (var visiblepopups_1 = (e_2 = void 0, __values(visiblepopups)), visiblepopups_1_1 = visiblepopups_1.next(); !visiblepopups_1_1.done; visiblepopups_1_1 = visiblepopups_1.next()) {\n var visiblePopup = visiblepopups_1_1.value;\n if (this.doPopupsOverlap(visiblePopup, popup)) {\n shouldDisplay = false;\n break;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (visiblepopups_1_1 && !visiblepopups_1_1.done && (_b = visiblepopups_1.return)) _b.call(visiblepopups_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (shouldDisplay) {\n visiblepopups.push(popup);\n }\n else {\n popup.hide();\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n PopupManager.prototype.doPopupsOverlap = function (popupA, popupB) {\n var rectA = popupA.getElement().getBoundingClientRect();\n var rectB = popupB.getElement().getBoundingClientRect();\n return (rectA.left < rectB.right && rectA.right > rectB.left && rectA.top < rectB.bottom && rectA.bottom\n > rectB.top);\n };\n return PopupManager;\n}());\nvar popupManager = new PopupManager();\nexports.popupManager = popupManager;\nexports.Tooltip = Tooltip;\nvar HoverTooltip = /** @class */ (function (_super) {\n __extends(HoverTooltip, _super);\n function HoverTooltip(parentNode) {\n if (parentNode === void 0) { parentNode = document.body; }\n var _this = _super.call(this, parentNode) || this;\n _this.timeout = undefined;\n _this.lastT = 0;\n _this.idleTime = 350;\n _this.lastEvent = undefined;\n _this.onMouseOut = _this.onMouseOut.bind(_this);\n _this.onMouseMove = _this.onMouseMove.bind(_this);\n _this.waitForHover = _this.waitForHover.bind(_this);\n _this.hide = _this.hide.bind(_this);\n var el = _this.getElement();\n el.style.whiteSpace = \"pre-wrap\";\n el.style.pointerEvents = \"auto\";\n el.addEventListener(\"mouseout\", _this.onMouseOut);\n el.tabIndex = -1;\n el.addEventListener(\"blur\", function () {\n if (!el.contains(document.activeElement))\n this.hide();\n }.bind(_this));\n el.addEventListener(\"wheel\", event.stopPropagation);\n return _this;\n }\n HoverTooltip.prototype.addToEditor = function (editor) {\n editor.on(\"mousemove\", this.onMouseMove);\n editor.on(\"mousedown\", this.hide);\n editor.renderer.getMouseEventTarget().addEventListener(\"mouseout\", this.onMouseOut, true);\n };\n HoverTooltip.prototype.removeFromEditor = function (editor) {\n editor.off(\"mousemove\", this.onMouseMove);\n editor.off(\"mousedown\", this.hide);\n editor.renderer.getMouseEventTarget().removeEventListener(\"mouseout\", this.onMouseOut, true);\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n };\n HoverTooltip.prototype.onMouseMove = function (e, editor) {\n this.lastEvent = e;\n this.lastT = Date.now();\n var isMousePressed = editor.$mouseHandler.isMousePressed;\n if (this.isOpen) {\n var pos = this.lastEvent && this.lastEvent.getDocumentPosition();\n if (!this.range\n || !this.range.contains(pos.row, pos.column)\n || isMousePressed\n || this.isOutsideOfText(this.lastEvent)) {\n this.hide();\n }\n }\n if (this.timeout || isMousePressed)\n return;\n this.lastEvent = e;\n this.timeout = setTimeout(this.waitForHover, this.idleTime);\n };\n HoverTooltip.prototype.waitForHover = function () {\n if (this.timeout)\n clearTimeout(this.timeout);\n var dt = Date.now() - this.lastT;\n if (this.idleTime - dt > 10) {\n this.timeout = setTimeout(this.waitForHover, this.idleTime - dt);\n return;\n }\n this.timeout = null;\n if (this.lastEvent && !this.isOutsideOfText(this.lastEvent)) {\n this.$gatherData(this.lastEvent, this.lastEvent.editor);\n }\n };\n HoverTooltip.prototype.isOutsideOfText = function (e) {\n var editor = e.editor;\n var docPos = e.getDocumentPosition();\n var line = editor.session.getLine(docPos.row);\n if (docPos.column == line.length) {\n var screenPos = editor.renderer.pixelToScreenCoordinates(e.clientX, e.clientY);\n var clippedPos = editor.session.documentToScreenPosition(docPos.row, docPos.column);\n if (clippedPos.column != screenPos.column\n || clippedPos.row != screenPos.row) {\n return true;\n }\n }\n return false;\n };\n HoverTooltip.prototype.setDataProvider = function (value) {\n this.$gatherData = value;\n };\n HoverTooltip.prototype.showForRange = function (editor, range, domNode, startingEvent) {\n var MARGIN = 10;\n if (startingEvent && startingEvent != this.lastEvent)\n return;\n if (this.isOpen && document.activeElement == this.getElement())\n return;\n var renderer = editor.renderer;\n if (!this.isOpen) {\n popupManager.addPopup(this);\n this.$registerCloseEvents();\n this.setTheme(renderer.theme);\n }\n this.isOpen = true;\n this.addMarker(range, editor.session);\n this.range = Range.fromPoints(range.start, range.end);\n var position = renderer.textToScreenCoordinates(range.start.row, range.start.column);\n var rect = renderer.scroller.getBoundingClientRect();\n if (position.pageX < rect.left)\n position.pageX = rect.left;\n var element = this.getElement();\n element.innerHTML = \"\";\n element.appendChild(domNode);\n element.style.maxHeight = \"\";\n element.style.display = \"block\";\n var labelHeight = element.clientHeight;\n var labelWidth = element.clientWidth;\n var spaceBelow = window.innerHeight - position.pageY - renderer.lineHeight;\n var isAbove = true;\n if (position.pageY - labelHeight < 0 && position.pageY < spaceBelow) {\n isAbove = false;\n }\n element.style.maxHeight = (isAbove ? position.pageY : spaceBelow) - MARGIN + \"px\";\n element.style.top = isAbove ? \"\" : position.pageY + renderer.lineHeight + \"px\";\n element.style.bottom = isAbove ? window.innerHeight - position.pageY + \"px\" : \"\";\n element.style.left = Math.min(position.pageX, window.innerWidth - labelWidth - MARGIN) + \"px\";\n };\n HoverTooltip.prototype.addMarker = function (range, session) {\n if (this.marker) {\n this.$markerSession.removeMarker(this.marker);\n }\n this.$markerSession = session;\n this.marker = session && session.addMarker(range, \"ace_highlight-marker\", \"text\");\n };\n HoverTooltip.prototype.hide = function (e) {\n if (!e && document.activeElement == this.getElement())\n return;\n if (e && e.target && (e.type != \"keydown\" || e.ctrlKey || e.metaKey) && this.$element.contains(e.target))\n return;\n this.lastEvent = null;\n if (this.timeout)\n clearTimeout(this.timeout);\n this.timeout = null;\n this.addMarker(null);\n if (this.isOpen) {\n this.$removeCloseEvents();\n this.getElement().style.display = \"none\";\n this.isOpen = false;\n popupManager.removePopup(this);\n }\n };\n HoverTooltip.prototype.$registerCloseEvents = function () {\n window.addEventListener(\"keydown\", this.hide, true);\n window.addEventListener(\"wheel\", this.hide, true);\n window.addEventListener(\"mousedown\", this.hide, true);\n };\n HoverTooltip.prototype.$removeCloseEvents = function () {\n window.removeEventListener(\"keydown\", this.hide, true);\n window.removeEventListener(\"wheel\", this.hide, true);\n window.removeEventListener(\"mousedown\", this.hide, true);\n };\n HoverTooltip.prototype.onMouseOut = function (e) {\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n this.lastEvent = null;\n if (!this.isOpen)\n return;\n if (!e.relatedTarget || this.getElement().contains(e.relatedTarget))\n return;\n if (e && e.currentTarget.contains(e.relatedTarget))\n return;\n if (!e.relatedTarget.classList.contains(\"ace_content\"))\n this.hide();\n };\n return HoverTooltip;\n}(Tooltip));\nexports.HoverTooltip = HoverTooltip;\n\n});\n\nace.define(\"ace/mouse/default_gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/tooltip\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar dom = require(\"../lib/dom\");\nvar event = require(\"../lib/event\");\nvar Tooltip = require(\"../tooltip\").Tooltip;\nvar nls = require(\"../config\").nls;\nfunction GutterHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var gutter = editor.renderer.$gutterLayer;\n var tooltip = new GutterTooltip(editor);\n mouseHandler.editor.setDefaultHandler(\"guttermousedown\", function (e) {\n if (!editor.isFocused() || e.getButton() != 0)\n return;\n var gutterRegion = gutter.getRegion(e);\n if (gutterRegion == \"foldWidgets\")\n return;\n var row = e.getDocumentPosition().row;\n var selection = editor.session.selection;\n if (e.getShiftKey())\n selection.selectTo(row, 0);\n else {\n if (e.domEvent.detail == 2) {\n editor.selectAll();\n return e.preventDefault();\n }\n mouseHandler.$clickSelection = editor.selection.getLineRange(row);\n }\n mouseHandler.setState(\"selectByLines\");\n mouseHandler.captureMouse(e);\n return e.preventDefault();\n });\n var tooltipTimeout, mouseEvent;\n function showTooltip() {\n var row = mouseEvent.getDocumentPosition().row;\n var maxRow = editor.session.getLength();\n if (row == maxRow) {\n var screenRow = editor.renderer.pixelToScreenCoordinates(0, mouseEvent.y).row;\n var pos = mouseEvent.$pos;\n if (screenRow > editor.session.documentToScreenRow(pos.row, pos.column))\n return hideTooltip();\n }\n tooltip.showTooltip(row);\n if (!tooltip.isOpen)\n return;\n editor.on(\"mousewheel\", hideTooltip);\n if (mouseHandler.$tooltipFollowsMouse) {\n moveTooltip(mouseEvent);\n }\n else {\n var gutterRow = mouseEvent.getGutterRow();\n var gutterCell = gutter.$lines.get(gutterRow);\n if (gutterCell) {\n var gutterElement = gutterCell.element.querySelector(\".ace_gutter_annotation\");\n var rect = gutterElement.getBoundingClientRect();\n var style = tooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n }\n else {\n moveTooltip(mouseEvent);\n }\n }\n }\n function hideTooltip() {\n if (tooltipTimeout)\n tooltipTimeout = clearTimeout(tooltipTimeout);\n if (tooltip.isOpen) {\n tooltip.hideTooltip();\n editor.off(\"mousewheel\", hideTooltip);\n }\n }\n function moveTooltip(e) {\n tooltip.setPosition(e.x, e.y);\n }\n mouseHandler.editor.setDefaultHandler(\"guttermousemove\", function (e) {\n var target = e.domEvent.target || e.domEvent.srcElement;\n if (dom.hasCssClass(target, \"ace_fold-widget\"))\n return hideTooltip();\n if (tooltip.isOpen && mouseHandler.$tooltipFollowsMouse)\n moveTooltip(e);\n mouseEvent = e;\n if (tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function () {\n tooltipTimeout = null;\n if (mouseEvent && !mouseHandler.isMousePressed)\n showTooltip();\n else\n hideTooltip();\n }, 50);\n });\n event.addListener(editor.renderer.$gutter, \"mouseout\", function (e) {\n mouseEvent = null;\n if (!tooltip.isOpen || tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function () {\n tooltipTimeout = null;\n hideTooltip();\n }, 50);\n }, editor);\n editor.on(\"changeSession\", hideTooltip);\n editor.on(\"input\", hideTooltip);\n}\nexports.GutterHandler = GutterHandler;\nvar GutterTooltip = /** @class */ (function (_super) {\n __extends(GutterTooltip, _super);\n function GutterTooltip(editor) {\n var _this = _super.call(this, editor.container) || this;\n _this.editor = editor;\n return _this;\n }\n GutterTooltip.prototype.setPosition = function (x, y) {\n var windowWidth = window.innerWidth || document.documentElement.clientWidth;\n var windowHeight = window.innerHeight || document.documentElement.clientHeight;\n var width = this.getWidth();\n var height = this.getHeight();\n x += 15;\n y += 15;\n if (x + width > windowWidth) {\n x -= (x + width) - windowWidth;\n }\n if (y + height > windowHeight) {\n y -= 20 + height;\n }\n Tooltip.prototype.setPosition.call(this, x, y);\n };\n Object.defineProperty(GutterTooltip, \"annotationLabels\", {\n get: function () {\n return {\n error: { singular: nls(\"error\"), plural: nls(\"errors\") },\n warning: { singular: nls(\"warning\"), plural: nls(\"warnings\") },\n info: { singular: nls(\"information message\"), plural: nls(\"information messages\") }\n };\n },\n enumerable: false,\n configurable: true\n });\n GutterTooltip.prototype.showTooltip = function (row) {\n var gutter = this.editor.renderer.$gutterLayer;\n var annotationsInRow = gutter.$annotations[row];\n var annotation;\n if (annotationsInRow)\n annotation = { text: Array.from(annotationsInRow.text), type: Array.from(annotationsInRow.type) };\n else\n annotation = { text: [], type: [] };\n var fold = gutter.session.getFoldLine(row);\n if (fold && gutter.$showFoldedAnnotations) {\n var annotationsInFold = { error: [], warning: [], info: [] };\n var mostSevereAnnotationInFoldType;\n for (var i = row + 1; i <= fold.end.row; i++) {\n if (!gutter.$annotations[i])\n continue;\n for (var j = 0; j < gutter.$annotations[i].text.length; j++) {\n var annotationType = gutter.$annotations[i].type[j];\n annotationsInFold[annotationType].push(gutter.$annotations[i].text[j]);\n if (annotationType === \"error\") {\n mostSevereAnnotationInFoldType = \"error_fold\";\n continue;\n }\n if (annotationType === \"warning\") {\n mostSevereAnnotationInFoldType = \"warning_fold\";\n continue;\n }\n }\n }\n if (mostSevereAnnotationInFoldType === \"error_fold\" || mostSevereAnnotationInFoldType === \"warning_fold\") {\n var summaryFoldedAnnotations = \"\".concat(GutterTooltip.annotationsToSummaryString(annotationsInFold), \" in folded code.\");\n annotation.text.push(summaryFoldedAnnotations);\n annotation.type.push(mostSevereAnnotationInFoldType);\n }\n }\n if (annotation.text.length === 0)\n return this.hide();\n var annotationMessages = { error: [], warning: [], info: [] };\n var iconClassName = gutter.$useSvgGutterIcons ? \"ace_icon_svg\" : \"ace_icon\";\n for (var i = 0; i < annotation.text.length; i++) {\n var line = \" \").concat(annotation.text[i]);\n annotationMessages[annotation.type[i].replace(\"_fold\", \"\")].push(line);\n }\n var tooltipContent = [].concat(annotationMessages.error, annotationMessages.warning, annotationMessages.info).join(\"
    \");\n this.setHtml(tooltipContent);\n this.$element.setAttribute(\"aria-live\", \"polite\");\n if (!this.isOpen) {\n this.setTheme(this.editor.renderer.theme);\n this.setClassName(\"ace_gutter-tooltip\");\n }\n this.show();\n this.editor._signal(\"showGutterTooltip\", this);\n };\n GutterTooltip.prototype.hideTooltip = function () {\n this.$element.removeAttribute(\"aria-live\");\n this.hide();\n this.editor._signal(\"hideGutterTooltip\", this);\n };\n GutterTooltip.annotationsToSummaryString = function (annotations) {\n var e_1, _a;\n var summary = [];\n var annotationTypes = ['error', 'warning', 'info'];\n try {\n for (var annotationTypes_1 = __values(annotationTypes), annotationTypes_1_1 = annotationTypes_1.next(); !annotationTypes_1_1.done; annotationTypes_1_1 = annotationTypes_1.next()) {\n var annotationType = annotationTypes_1_1.value;\n if (!annotations[annotationType].length)\n continue;\n var label = annotations[annotationType].length === 1 ? GutterTooltip.annotationLabels[annotationType].singular : GutterTooltip.annotationLabels[annotationType].plural;\n summary.push(\"\".concat(annotations[annotationType].length, \" \").concat(label));\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (annotationTypes_1_1 && !annotationTypes_1_1.done && (_a = annotationTypes_1.return)) _a.call(annotationTypes_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return summary.join(\", \");\n };\n return GutterTooltip;\n}(Tooltip));\nexports.GutterTooltip = GutterTooltip;\n\n});\n\nace.define(\"ace/mouse/mouse_event\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar MouseEvent = /** @class */ (function () {\n function MouseEvent(domEvent, editor) {\n this.domEvent = domEvent;\n this.editor = editor;\n this.x = this.clientX = domEvent.clientX;\n this.y = this.clientY = domEvent.clientY;\n this.$pos = null;\n this.$inSelection = null;\n this.propagationStopped = false;\n this.defaultPrevented = false;\n }\n MouseEvent.prototype.stopPropagation = function () {\n event.stopPropagation(this.domEvent);\n this.propagationStopped = true;\n };\n MouseEvent.prototype.preventDefault = function () {\n event.preventDefault(this.domEvent);\n this.defaultPrevented = true;\n };\n MouseEvent.prototype.stop = function () {\n this.stopPropagation();\n this.preventDefault();\n };\n MouseEvent.prototype.getDocumentPosition = function () {\n if (this.$pos)\n return this.$pos;\n this.$pos = this.editor.renderer.screenToTextCoordinates(this.clientX, this.clientY);\n return this.$pos;\n };\n MouseEvent.prototype.getGutterRow = function () {\n var documentRow = this.getDocumentPosition().row;\n var screenRow = this.editor.session.documentToScreenRow(documentRow, 0);\n var screenTopRow = this.editor.session.documentToScreenRow(this.editor.renderer.$gutterLayer.$lines.get(0).row, 0);\n return screenRow - screenTopRow;\n };\n MouseEvent.prototype.inSelection = function () {\n if (this.$inSelection !== null)\n return this.$inSelection;\n var editor = this.editor;\n var selectionRange = editor.getSelectionRange();\n if (selectionRange.isEmpty())\n this.$inSelection = false;\n else {\n var pos = this.getDocumentPosition();\n this.$inSelection = selectionRange.contains(pos.row, pos.column);\n }\n return this.$inSelection;\n };\n MouseEvent.prototype.getButton = function () {\n return event.getButton(this.domEvent);\n };\n MouseEvent.prototype.getShiftKey = function () {\n return this.domEvent.shiftKey;\n };\n MouseEvent.prototype.getAccelKey = function () {\n return useragent.isMac ? this.domEvent.metaKey : this.domEvent.ctrlKey;\n };\n return MouseEvent;\n}());\nexports.MouseEvent = MouseEvent;\n\n});\n\nace.define(\"ace/mouse/dragdrop_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar AUTOSCROLL_DELAY = 200;\nvar SCROLL_CURSOR_DELAY = 200;\nvar SCROLL_CURSOR_HYSTERESIS = 5;\nfunction DragdropHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var dragImage = dom.createElement(\"div\");\n dragImage.style.cssText = \"top:-100px;position:absolute;z-index:2147483647;opacity:0.5\";\n dragImage.textContent = \"\\xa0\";\n var exports = [\"dragWait\", \"dragWaitEnd\", \"startDrag\", \"dragReadyEnd\", \"onMouseDrag\"];\n exports.forEach(function (x) {\n mouseHandler[x] = this[x];\n }, this);\n editor.on(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n var mouseTarget = editor.container;\n var dragSelectionMarker, x, y;\n var timerId, range;\n var dragCursor, counter = 0;\n var dragOperation;\n var isInternal;\n var autoScrollStartTime;\n var cursorMovedTime;\n var cursorPointOnCaretMoved;\n this.onDragStart = function (e) {\n if (this.cancelDrag || !mouseTarget.draggable) {\n var self = this;\n setTimeout(function () {\n self.startSelect();\n self.captureMouse(e);\n }, 0);\n return e.preventDefault();\n }\n range = editor.getSelectionRange();\n var dataTransfer = e.dataTransfer;\n dataTransfer.effectAllowed = editor.getReadOnly() ? \"copy\" : \"copyMove\";\n editor.container.appendChild(dragImage);\n dataTransfer.setDragImage && dataTransfer.setDragImage(dragImage, 0, 0);\n setTimeout(function () {\n editor.container.removeChild(dragImage);\n });\n dataTransfer.clearData();\n dataTransfer.setData(\"Text\", editor.session.getTextRange());\n isInternal = true;\n this.setState(\"drag\");\n };\n this.onDragEnd = function (e) {\n mouseTarget.draggable = false;\n isInternal = false;\n this.setState(null);\n if (!editor.getReadOnly()) {\n var dropEffect = e.dataTransfer.dropEffect;\n if (!dragOperation && dropEffect == \"move\")\n editor.session.remove(editor.getSelectionRange());\n editor.$resetCursorStyle();\n }\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n };\n this.onDragEnter = function (e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker)\n addDragMarker();\n counter++;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n this.onDragOver = function (e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker) {\n addDragMarker();\n counter++;\n }\n if (onMouseMoveTimer !== null)\n onMouseMoveTimer = null;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n this.onDragLeave = function (e) {\n counter--;\n if (counter <= 0 && dragSelectionMarker) {\n clearDragMarker();\n dragOperation = null;\n return event.preventDefault(e);\n }\n };\n this.onDrop = function (e) {\n if (!dragCursor)\n return;\n var dataTransfer = e.dataTransfer;\n if (isInternal) {\n switch (dragOperation) {\n case \"move\":\n if (range.contains(dragCursor.row, dragCursor.column)) {\n range = {\n start: dragCursor,\n end: dragCursor\n };\n }\n else {\n range = editor.moveText(range, dragCursor);\n }\n break;\n case \"copy\":\n range = editor.moveText(range, dragCursor, true);\n break;\n }\n }\n else {\n var dropData = dataTransfer.getData('Text');\n range = {\n start: dragCursor,\n end: editor.session.insert(dragCursor, dropData)\n };\n editor.focus();\n dragOperation = null;\n }\n clearDragMarker();\n return event.preventDefault(e);\n };\n event.addListener(mouseTarget, \"dragstart\", this.onDragStart.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragend\", this.onDragEnd.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragenter\", this.onDragEnter.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragover\", this.onDragOver.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragleave\", this.onDragLeave.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"drop\", this.onDrop.bind(mouseHandler), editor);\n function scrollCursorIntoView(cursor, prevCursor) {\n var now = Date.now();\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n var hMovement = !prevCursor || cursor.column != prevCursor.column;\n if (!cursorMovedTime || vMovement || hMovement) {\n editor.moveCursorToPosition(cursor);\n cursorMovedTime = now;\n cursorPointOnCaretMoved = { x: x, y: y };\n }\n else {\n var distance = calcDistance(cursorPointOnCaretMoved.x, cursorPointOnCaretMoved.y, x, y);\n if (distance > SCROLL_CURSOR_HYSTERESIS) {\n cursorMovedTime = null;\n }\n else if (now - cursorMovedTime >= SCROLL_CURSOR_DELAY) {\n editor.renderer.scrollCursorIntoView();\n cursorMovedTime = null;\n }\n }\n }\n function autoScroll(cursor, prevCursor) {\n var now = Date.now();\n var lineHeight = editor.renderer.layerConfig.lineHeight;\n var characterWidth = editor.renderer.layerConfig.characterWidth;\n var editorRect = editor.renderer.scroller.getBoundingClientRect();\n var offsets = {\n x: {\n left: x - editorRect.left,\n right: editorRect.right - x\n },\n y: {\n top: y - editorRect.top,\n bottom: editorRect.bottom - y\n }\n };\n var nearestXOffset = Math.min(offsets.x.left, offsets.x.right);\n var nearestYOffset = Math.min(offsets.y.top, offsets.y.bottom);\n var scrollCursor = { row: cursor.row, column: cursor.column };\n if (nearestXOffset / characterWidth <= 2) {\n scrollCursor.column += (offsets.x.left < offsets.x.right ? -3 : +2);\n }\n if (nearestYOffset / lineHeight <= 1) {\n scrollCursor.row += (offsets.y.top < offsets.y.bottom ? -1 : +1);\n }\n var vScroll = cursor.row != scrollCursor.row;\n var hScroll = cursor.column != scrollCursor.column;\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n if (vScroll || (hScroll && !vMovement)) {\n if (!autoScrollStartTime)\n autoScrollStartTime = now;\n else if (now - autoScrollStartTime >= AUTOSCROLL_DELAY)\n editor.renderer.scrollCursorIntoView(scrollCursor);\n }\n else {\n autoScrollStartTime = null;\n }\n }\n function onDragInterval() {\n var prevCursor = dragCursor;\n dragCursor = editor.renderer.screenToTextCoordinates(x, y);\n scrollCursorIntoView(dragCursor, prevCursor);\n autoScroll(dragCursor, prevCursor);\n }\n function addDragMarker() {\n range = editor.selection.toOrientedRange();\n dragSelectionMarker = editor.session.addMarker(range, \"ace_selection\", editor.getSelectionStyle());\n editor.clearSelection();\n if (editor.isFocused())\n editor.renderer.$cursorLayer.setBlinking(false);\n clearInterval(timerId);\n onDragInterval();\n timerId = setInterval(onDragInterval, 20);\n counter = 0;\n event.addListener(document, \"mousemove\", onMouseMove);\n }\n function clearDragMarker() {\n clearInterval(timerId);\n editor.session.removeMarker(dragSelectionMarker);\n dragSelectionMarker = null;\n editor.selection.fromOrientedRange(range);\n if (editor.isFocused() && !isInternal)\n editor.$resetCursorStyle();\n range = null;\n dragCursor = null;\n counter = 0;\n autoScrollStartTime = null;\n cursorMovedTime = null;\n event.removeListener(document, \"mousemove\", onMouseMove);\n }\n var onMouseMoveTimer = null;\n function onMouseMove() {\n if (onMouseMoveTimer == null) {\n onMouseMoveTimer = setTimeout(function () {\n if (onMouseMoveTimer != null && dragSelectionMarker)\n clearDragMarker();\n }, 20);\n }\n }\n function canAccept(dataTransfer) {\n var types = dataTransfer.types;\n return !types || Array.prototype.some.call(types, function (type) {\n return type == 'text/plain' || type == 'Text';\n });\n }\n function getDropEffect(e) {\n var copyAllowed = ['copy', 'copymove', 'all', 'uninitialized'];\n var moveAllowed = ['move', 'copymove', 'linkmove', 'all', 'uninitialized'];\n var copyModifierState = useragent.isMac ? e.altKey : e.ctrlKey;\n var effectAllowed = \"uninitialized\";\n try {\n effectAllowed = e.dataTransfer.effectAllowed.toLowerCase();\n }\n catch (e) { }\n var dropEffect = \"none\";\n if (copyModifierState && copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n else if (moveAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"move\";\n else if (copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n return dropEffect;\n }\n}\n(function () {\n this.dragWait = function () {\n var interval = Date.now() - this.mousedownEvent.time;\n if (interval > this.editor.getDragDelay())\n this.startDrag();\n };\n this.dragWaitEnd = function () {\n var target = this.editor.container;\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n this.selectEnd();\n };\n this.dragReadyEnd = function (e) {\n this.editor.$resetCursorStyle();\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n this.dragWaitEnd();\n };\n this.startDrag = function () {\n this.cancelDrag = false;\n var editor = this.editor;\n var target = editor.container;\n target.draggable = true;\n editor.renderer.$cursorLayer.setBlinking(false);\n editor.setStyle(\"ace_dragging\");\n var cursorStyle = useragent.isWin ? \"default\" : \"move\";\n editor.renderer.setCursorStyle(cursorStyle);\n this.setState(\"dragReady\");\n };\n this.onMouseDrag = function (e) {\n var target = this.editor.container;\n if (useragent.isIE && this.state == \"dragReady\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 3)\n target.dragDrop();\n }\n if (this.state === \"dragWait\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 0) {\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n }\n }\n };\n this.onMouseDown = function (e) {\n if (!this.$dragEnabled)\n return;\n this.mousedownEvent = e;\n var editor = this.editor;\n var inSelection = e.inSelection();\n var button = e.getButton();\n var clickCount = e.domEvent.detail || 1;\n if (clickCount === 1 && button === 0 && inSelection) {\n if (e.editor.inMultiSelectMode && (e.getAccelKey() || e.getShiftKey()))\n return;\n this.mousedownEvent.time = Date.now();\n var eventTarget = e.domEvent.target || e.domEvent.srcElement;\n if (\"unselectable\" in eventTarget)\n eventTarget.unselectable = \"on\";\n if (editor.getDragDelay()) {\n if (useragent.isWebKit) {\n this.cancelDrag = true;\n var mouseTarget = editor.container;\n mouseTarget.draggable = true;\n }\n this.setState(\"dragWait\");\n }\n else {\n this.startDrag();\n }\n this.captureMouse(e, this.onMouseDrag.bind(this));\n e.defaultPrevented = true;\n }\n };\n}).call(DragdropHandler.prototype);\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\nexports.DragdropHandler = DragdropHandler;\n\n});\n\nace.define(\"ace/mouse/touch_handler\",[\"require\",\"exports\",\"module\",\"ace/mouse/mouse_event\",\"ace/lib/event\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar MouseEvent = require(\"./mouse_event\").MouseEvent;\nvar event = require(\"../lib/event\");\nvar dom = require(\"../lib/dom\");\nexports.addTouchListeners = function (el, editor) {\n var mode = \"scroll\";\n var startX;\n var startY;\n var touchStartT;\n var lastT;\n var longTouchTimer;\n var animationTimer;\n var animationSteps = 0;\n var pos;\n var clickCount = 0;\n var vX = 0;\n var vY = 0;\n var pressed;\n var contextMenu;\n function createContextMenu() {\n var clipboard = window.navigator && window.navigator.clipboard;\n var isOpen = false;\n var updateMenu = function () {\n var selected = editor.getCopyText();\n var hasUndo = editor.session.getUndoManager().hasUndo();\n contextMenu.replaceChild(dom.buildDom(isOpen ? [\"span\",\n !selected && [\"span\", { class: \"ace_mobile-button\", action: \"selectall\" }, \"Select All\"],\n selected && [\"span\", { class: \"ace_mobile-button\", action: \"copy\" }, \"Copy\"],\n selected && [\"span\", { class: \"ace_mobile-button\", action: \"cut\" }, \"Cut\"],\n clipboard && [\"span\", { class: \"ace_mobile-button\", action: \"paste\" }, \"Paste\"],\n hasUndo && [\"span\", { class: \"ace_mobile-button\", action: \"undo\" }, \"Undo\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"find\" }, \"Find\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"openCommandPalette\" }, \"Palette\"]\n ] : [\"span\"]), contextMenu.firstChild);\n };\n var handleClick = function (e) {\n var action = e.target.getAttribute(\"action\");\n if (action == \"more\" || !isOpen) {\n isOpen = !isOpen;\n return updateMenu();\n }\n if (action == \"paste\") {\n clipboard.readText().then(function (text) {\n editor.execCommand(action, text);\n });\n }\n else if (action) {\n if (action == \"cut\" || action == \"copy\") {\n if (clipboard)\n clipboard.writeText(editor.getCopyText());\n else\n document.execCommand(\"copy\");\n }\n editor.execCommand(action);\n }\n contextMenu.firstChild.style.display = \"none\";\n isOpen = false;\n if (action != \"openCommandPalette\")\n editor.focus();\n };\n contextMenu = dom.buildDom([\"div\",\n {\n class: \"ace_mobile-menu\",\n ontouchstart: function (e) {\n mode = \"menu\";\n e.stopPropagation();\n e.preventDefault();\n editor.textInput.focus();\n },\n ontouchend: function (e) {\n e.stopPropagation();\n e.preventDefault();\n handleClick(e);\n },\n onclick: handleClick\n },\n [\"span\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"more\" }, \"...\"]\n ], editor.container);\n }\n function showContextMenu() {\n if (!contextMenu)\n createContextMenu();\n var cursor = editor.selection.cursor;\n var pagePos = editor.renderer.textToScreenCoordinates(cursor.row, cursor.column);\n var leftOffset = editor.renderer.textToScreenCoordinates(0, 0).pageX;\n var scrollLeft = editor.renderer.scrollLeft;\n var rect = editor.container.getBoundingClientRect();\n contextMenu.style.top = pagePos.pageY - rect.top - 3 + \"px\";\n if (pagePos.pageX - rect.left < rect.width - 70) {\n contextMenu.style.left = \"\";\n contextMenu.style.right = \"10px\";\n }\n else {\n contextMenu.style.right = \"\";\n contextMenu.style.left = leftOffset + scrollLeft - rect.left + \"px\";\n }\n contextMenu.style.display = \"\";\n contextMenu.firstChild.style.display = \"none\";\n editor.on(\"input\", hideContextMenu);\n }\n function hideContextMenu(e) {\n if (contextMenu)\n contextMenu.style.display = \"none\";\n editor.off(\"input\", hideContextMenu);\n }\n function handleLongTap() {\n longTouchTimer = null;\n clearTimeout(longTouchTimer);\n var range = editor.selection.getRange();\n var inSelection = range.contains(pos.row, pos.column);\n if (range.isEmpty() || !inSelection) {\n editor.selection.moveToPosition(pos);\n editor.selection.selectWord();\n }\n mode = \"wait\";\n showContextMenu();\n }\n function switchToSelectionMode() {\n longTouchTimer = null;\n clearTimeout(longTouchTimer);\n editor.selection.moveToPosition(pos);\n var range = clickCount >= 2\n ? editor.selection.getLineRange(pos.row)\n : editor.session.getBracketRange(pos);\n if (range && !range.isEmpty()) {\n editor.selection.setRange(range);\n }\n else {\n editor.selection.selectWord();\n }\n mode = \"wait\";\n }\n event.addListener(el, \"contextmenu\", function (e) {\n if (!pressed)\n return;\n var textarea = editor.textInput.getElement();\n textarea.focus();\n }, editor);\n event.addListener(el, \"touchstart\", function (e) {\n var touches = e.touches;\n if (longTouchTimer || touches.length > 1) {\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n touchStartT = -1;\n mode = \"zoom\";\n return;\n }\n pressed = editor.$mouseHandler.isMousePressed = true;\n var h = editor.renderer.layerConfig.lineHeight;\n var w = editor.renderer.layerConfig.lineHeight;\n var t = e.timeStamp;\n lastT = t;\n var touchObj = touches[0];\n var x = touchObj.clientX;\n var y = touchObj.clientY;\n if (Math.abs(startX - x) + Math.abs(startY - y) > h)\n touchStartT = -1;\n startX = e.clientX = x;\n startY = e.clientY = y;\n vX = vY = 0;\n var ev = new MouseEvent(e, editor);\n pos = ev.getDocumentPosition();\n if (t - touchStartT < 500 && touches.length == 1 && !animationSteps) {\n clickCount++;\n e.preventDefault();\n e.button = 0;\n switchToSelectionMode();\n }\n else {\n clickCount = 0;\n var cursor = editor.selection.cursor;\n var anchor = editor.selection.isEmpty() ? cursor : editor.selection.anchor;\n var cursorPos = editor.renderer.$cursorLayer.getPixelPosition(cursor, true);\n var anchorPos = editor.renderer.$cursorLayer.getPixelPosition(anchor, true);\n var rect = editor.renderer.scroller.getBoundingClientRect();\n var offsetTop = editor.renderer.layerConfig.offset;\n var offsetLeft = editor.renderer.scrollLeft;\n var weightedDistance = function (x, y) {\n x = x / w;\n y = y / h - 0.75;\n return x * x + y * y;\n };\n if (e.clientX < rect.left) {\n mode = \"zoom\";\n return;\n }\n var diff1 = weightedDistance(e.clientX - rect.left - cursorPos.left + offsetLeft, e.clientY - rect.top - cursorPos.top + offsetTop);\n var diff2 = weightedDistance(e.clientX - rect.left - anchorPos.left + offsetLeft, e.clientY - rect.top - anchorPos.top + offsetTop);\n if (diff1 < 3.5 && diff2 < 3.5)\n mode = diff1 > diff2 ? \"cursor\" : \"anchor\";\n if (diff2 < 3.5)\n mode = \"anchor\";\n else if (diff1 < 3.5)\n mode = \"cursor\";\n else\n mode = \"scroll\";\n longTouchTimer = setTimeout(handleLongTap, 450);\n }\n touchStartT = t;\n }, editor);\n event.addListener(el, \"touchend\", function (e) {\n pressed = editor.$mouseHandler.isMousePressed = false;\n if (animationTimer)\n clearInterval(animationTimer);\n if (mode == \"zoom\") {\n mode = \"\";\n animationSteps = 0;\n }\n else if (longTouchTimer) {\n editor.selection.moveToPosition(pos);\n animationSteps = 0;\n showContextMenu();\n }\n else if (mode == \"scroll\") {\n animate();\n hideContextMenu();\n }\n else {\n showContextMenu();\n }\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n }, editor);\n event.addListener(el, \"touchmove\", function (e) {\n if (longTouchTimer) {\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n }\n var touches = e.touches;\n if (touches.length > 1 || mode == \"zoom\")\n return;\n var touchObj = touches[0];\n var wheelX = startX - touchObj.clientX;\n var wheelY = startY - touchObj.clientY;\n if (mode == \"wait\") {\n if (wheelX * wheelX + wheelY * wheelY > 4)\n mode = \"cursor\";\n else\n return e.preventDefault();\n }\n startX = touchObj.clientX;\n startY = touchObj.clientY;\n e.clientX = touchObj.clientX;\n e.clientY = touchObj.clientY;\n var t = e.timeStamp;\n var dt = t - lastT;\n lastT = t;\n if (mode == \"scroll\") {\n var mouseEvent = new MouseEvent(e, editor);\n mouseEvent.speed = 1;\n mouseEvent.wheelX = wheelX;\n mouseEvent.wheelY = wheelY;\n if (10 * Math.abs(wheelX) < Math.abs(wheelY))\n wheelX = 0;\n if (10 * Math.abs(wheelY) < Math.abs(wheelX))\n wheelY = 0;\n if (dt != 0) {\n vX = wheelX / dt;\n vY = wheelY / dt;\n }\n editor._emit(\"mousewheel\", mouseEvent);\n if (!mouseEvent.propagationStopped) {\n vX = vY = 0;\n }\n }\n else {\n var ev = new MouseEvent(e, editor);\n var pos = ev.getDocumentPosition();\n if (mode == \"cursor\")\n editor.selection.moveCursorToPosition(pos);\n else if (mode == \"anchor\")\n editor.selection.setSelectionAnchor(pos.row, pos.column);\n editor.renderer.scrollCursorIntoView(pos);\n e.preventDefault();\n }\n }, editor);\n function animate() {\n animationSteps += 60;\n animationTimer = setInterval(function () {\n if (animationSteps-- <= 0) {\n clearInterval(animationTimer);\n animationTimer = null;\n }\n if (Math.abs(vX) < 0.01)\n vX = 0;\n if (Math.abs(vY) < 0.01)\n vY = 0;\n if (animationSteps < 20)\n vX = 0.9 * vX;\n if (animationSteps < 20)\n vY = 0.9 * vY;\n var oldScrollTop = editor.session.getScrollTop();\n editor.renderer.scrollBy(10 * vX, 10 * vY);\n if (oldScrollTop == editor.session.getScrollTop())\n animationSteps = 0;\n }, 10);\n }\n};\n\n});\n\nace.define(\"ace/mouse/mouse_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/mouse/default_handlers\",\"ace/mouse/default_gutter_handler\",\"ace/mouse/mouse_event\",\"ace/mouse/dragdrop_handler\",\"ace/mouse/touch_handler\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar DefaultHandlers = require(\"./default_handlers\").DefaultHandlers;\nvar DefaultGutterHandler = require(\"./default_gutter_handler\").GutterHandler;\nvar MouseEvent = require(\"./mouse_event\").MouseEvent;\nvar DragdropHandler = require(\"./dragdrop_handler\").DragdropHandler;\nvar addTouchListeners = require(\"./touch_handler\").addTouchListeners;\nvar config = require(\"../config\");\nvar MouseHandler = /** @class */ (function () {\n function MouseHandler(editor) {\n var _self = this;\n this.editor = editor;\n new DefaultHandlers(this);\n new DefaultGutterHandler(this);\n new DragdropHandler(this);\n var focusEditor = function (e) {\n var windowBlurred = !document.hasFocus || !document.hasFocus()\n || !editor.isFocused() && document.activeElement == (editor.textInput && editor.textInput.getElement());\n if (windowBlurred)\n window.focus();\n editor.focus();\n setTimeout(function () {\n if (!editor.isFocused())\n editor.focus();\n });\n };\n var mouseTarget = editor.renderer.getMouseEventTarget();\n event.addListener(mouseTarget, \"click\", this.onMouseEvent.bind(this, \"click\"), editor);\n event.addListener(mouseTarget, \"mousemove\", this.onMouseMove.bind(this, \"mousemove\"), editor);\n event.addMultiMouseDownListener([\n mouseTarget,\n editor.renderer.scrollBarV && editor.renderer.scrollBarV.inner,\n editor.renderer.scrollBarH && editor.renderer.scrollBarH.inner,\n editor.textInput && editor.textInput.getElement()\n ].filter(Boolean), [400, 300, 250], this, \"onMouseEvent\", editor);\n event.addMouseWheelListener(editor.container, this.onMouseWheel.bind(this, \"mousewheel\"), editor);\n addTouchListeners(editor.container, editor);\n var gutterEl = editor.renderer.$gutter;\n event.addListener(gutterEl, \"mousedown\", this.onMouseEvent.bind(this, \"guttermousedown\"), editor);\n event.addListener(gutterEl, \"click\", this.onMouseEvent.bind(this, \"gutterclick\"), editor);\n event.addListener(gutterEl, \"dblclick\", this.onMouseEvent.bind(this, \"gutterdblclick\"), editor);\n event.addListener(gutterEl, \"mousemove\", this.onMouseEvent.bind(this, \"guttermousemove\"), editor);\n event.addListener(mouseTarget, \"mousedown\", focusEditor, editor);\n event.addListener(gutterEl, \"mousedown\", focusEditor, editor);\n if (useragent.isIE && editor.renderer.scrollBarV) {\n event.addListener(editor.renderer.scrollBarV.element, \"mousedown\", focusEditor, editor);\n event.addListener(editor.renderer.scrollBarH.element, \"mousedown\", focusEditor, editor);\n }\n editor.on(\"mousemove\", function (e) {\n if (_self.state || _self.$dragDelay || !_self.$dragEnabled)\n return;\n var character = editor.renderer.screenToTextCoordinates(e.x, e.y);\n var range = editor.session.selection.getRange();\n var renderer = editor.renderer;\n if (!range.isEmpty() && range.insideStart(character.row, character.column)) {\n renderer.setCursorStyle(\"default\");\n }\n else {\n renderer.setCursorStyle(\"\");\n }\n }, editor);\n }\n MouseHandler.prototype.onMouseEvent = function (name, e) {\n if (!this.editor.session)\n return;\n this.editor._emit(name, new MouseEvent(e, this.editor));\n };\n MouseHandler.prototype.onMouseMove = function (name, e) {\n var listeners = this.editor._eventRegistry && this.editor._eventRegistry.mousemove;\n if (!listeners || !listeners.length)\n return;\n this.editor._emit(name, new MouseEvent(e, this.editor));\n };\n MouseHandler.prototype.onMouseWheel = function (name, e) {\n var mouseEvent = new MouseEvent(e, this.editor);\n mouseEvent.speed = this.$scrollSpeed * 2;\n mouseEvent.wheelX = e.wheelX;\n mouseEvent.wheelY = e.wheelY;\n this.editor._emit(name, mouseEvent);\n };\n MouseHandler.prototype.setState = function (state) {\n this.state = state;\n };\n MouseHandler.prototype.captureMouse = function (ev, mouseMoveHandler) {\n this.x = ev.x;\n this.y = ev.y;\n this.isMousePressed = true;\n var editor = this.editor;\n var renderer = this.editor.renderer;\n renderer.$isMousePressed = true;\n var self = this;\n var onMouseMove = function (e) {\n if (!e)\n return;\n if (useragent.isWebKit && !e.which && self.releaseMouse)\n return self.releaseMouse();\n self.x = e.clientX;\n self.y = e.clientY;\n mouseMoveHandler && mouseMoveHandler(e);\n self.mouseEvent = new MouseEvent(e, self.editor);\n self.$mouseMoved = true;\n };\n var onCaptureEnd = function (e) {\n editor.off(\"beforeEndOperation\", onOperationEnd);\n clearInterval(timerId);\n if (editor.session)\n onCaptureInterval();\n self[self.state + \"End\"] && self[self.state + \"End\"](e);\n self.state = \"\";\n self.isMousePressed = renderer.$isMousePressed = false;\n if (renderer.$keepTextAreaAtCursor)\n renderer.$moveTextAreaToCursor();\n self.$onCaptureMouseMove = self.releaseMouse = null;\n e && self.onMouseEvent(\"mouseup\", e);\n editor.endOperation();\n };\n var onCaptureInterval = function () {\n self[self.state] && self[self.state]();\n self.$mouseMoved = false;\n };\n if (useragent.isOldIE && ev.domEvent.type == \"dblclick\") {\n return setTimeout(function () { onCaptureEnd(ev); });\n }\n var onOperationEnd = function (e) {\n if (!self.releaseMouse)\n return;\n if (editor.curOp.command.name && editor.curOp.selectionChanged) {\n self[self.state + \"End\"] && self[self.state + \"End\"]();\n self.state = \"\";\n self.releaseMouse();\n }\n };\n editor.on(\"beforeEndOperation\", onOperationEnd);\n editor.startOperation({ command: { name: \"mouse\" } });\n self.$onCaptureMouseMove = onMouseMove;\n self.releaseMouse = event.capture(this.editor.container, onMouseMove, onCaptureEnd);\n var timerId = setInterval(onCaptureInterval, 20);\n };\n MouseHandler.prototype.cancelContextMenu = function () {\n var stop = function (e) {\n if (e && e.domEvent && e.domEvent.type != \"contextmenu\")\n return;\n this.editor.off(\"nativecontextmenu\", stop);\n if (e && e.domEvent)\n event.stopEvent(e.domEvent);\n }.bind(this);\n setTimeout(stop, 10);\n this.editor.on(\"nativecontextmenu\", stop);\n };\n MouseHandler.prototype.destroy = function () {\n if (this.releaseMouse)\n this.releaseMouse();\n };\n return MouseHandler;\n}());\nMouseHandler.prototype.releaseMouse = null;\nconfig.defineOptions(MouseHandler.prototype, \"mouseHandler\", {\n scrollSpeed: { initialValue: 2 },\n dragDelay: { initialValue: (useragent.isMac ? 150 : 0) },\n dragEnabled: { initialValue: true },\n focusTimeout: { initialValue: 0 },\n tooltipFollowsMouse: { initialValue: true }\n});\nexports.MouseHandler = MouseHandler;\n\n});\n\nace.define(\"ace/mouse/fold_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar FoldHandler = /** @class */ (function () {\n function FoldHandler(editor) {\n editor.on(\"click\", function (e) {\n var position = e.getDocumentPosition();\n var session = editor.session;\n var fold = session.getFoldAt(position.row, position.column, 1);\n if (fold) {\n if (e.getAccelKey())\n session.removeFold(fold);\n else\n session.expandFold(fold);\n e.stop();\n }\n var target = e.domEvent && e.domEvent.target;\n if (target && dom.hasCssClass(target, \"ace_inline_button\")) {\n if (dom.hasCssClass(target, \"ace_toggle_wrap\")) {\n session.setOption(\"wrap\", !session.getUseWrapMode());\n editor.renderer.scrollCursorIntoView();\n }\n }\n });\n editor.on(\"gutterclick\", function (e) {\n var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n if (gutterRegion == \"foldWidgets\") {\n var row = e.getDocumentPosition().row;\n var session = editor.session;\n if (session.foldWidgets && session.foldWidgets[row])\n editor.session.onFoldWidgetClick(row, e);\n if (!editor.isFocused())\n editor.focus();\n e.stop();\n }\n });\n editor.on(\"gutterdblclick\", function (e) {\n var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n if (gutterRegion == \"foldWidgets\") {\n var row = e.getDocumentPosition().row;\n var session = editor.session;\n var data = session.getParentFoldRangeData(row, true);\n var range = data.range || data.firstRange;\n if (range) {\n row = range.start.row;\n var fold = session.getFoldAt(row, session.getLine(row).length, 1);\n if (fold) {\n session.removeFold(fold);\n }\n else {\n session.addFold(\"...\", range);\n editor.renderer.scrollCursorIntoView({ row: range.start.row, column: 0 });\n }\n }\n e.stop();\n }\n });\n }\n return FoldHandler;\n}());\nexports.FoldHandler = FoldHandler;\n\n});\n\nace.define(\"ace/keyboard/keybinding\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/event\"], function(require, exports, module){\"use strict\";\nvar keyUtil = require(\"../lib/keys\");\nvar event = require(\"../lib/event\");\nvar KeyBinding = /** @class */ (function () {\n function KeyBinding(editor) {\n this.$editor = editor;\n this.$data = { editor: editor };\n this.$handlers = [];\n this.setDefaultHandler(editor.commands);\n }\n KeyBinding.prototype.setDefaultHandler = function (kb) {\n this.removeKeyboardHandler(this.$defaultHandler);\n this.$defaultHandler = kb;\n this.addKeyboardHandler(kb, 0);\n };\n KeyBinding.prototype.setKeyboardHandler = function (kb) {\n var h = this.$handlers;\n if (h[h.length - 1] == kb)\n return;\n while (h[h.length - 1] && h[h.length - 1] != this.$defaultHandler)\n this.removeKeyboardHandler(h[h.length - 1]);\n this.addKeyboardHandler(kb, 1);\n };\n KeyBinding.prototype.addKeyboardHandler = function (kb, pos) {\n if (!kb)\n return;\n if (typeof kb == \"function\" && !kb.handleKeyboard)\n kb.handleKeyboard = kb;\n var i = this.$handlers.indexOf(kb);\n if (i != -1)\n this.$handlers.splice(i, 1);\n if (pos == undefined)\n this.$handlers.push(kb);\n else\n this.$handlers.splice(pos, 0, kb);\n if (i == -1 && kb.attach)\n kb.attach(this.$editor);\n };\n KeyBinding.prototype.removeKeyboardHandler = function (kb) {\n var i = this.$handlers.indexOf(kb);\n if (i == -1)\n return false;\n this.$handlers.splice(i, 1);\n kb.detach && kb.detach(this.$editor);\n return true;\n };\n KeyBinding.prototype.getKeyboardHandler = function () {\n return this.$handlers[this.$handlers.length - 1];\n };\n KeyBinding.prototype.getStatusText = function () {\n var data = this.$data;\n var editor = data.editor;\n return this.$handlers.map(function (h) {\n return h.getStatusText && h.getStatusText(editor, data) || \"\";\n }).filter(Boolean).join(\" \");\n };\n KeyBinding.prototype.$callKeyboardHandlers = function (hashId, keyString, keyCode, e) {\n var toExecute;\n var success = false;\n var commands = this.$editor.commands;\n for (var i = this.$handlers.length; i--;) {\n toExecute = this.$handlers[i].handleKeyboard(this.$data, hashId, keyString, keyCode, e);\n if (!toExecute || !toExecute.command)\n continue;\n if (toExecute.command == \"null\") {\n success = true;\n }\n else {\n success = commands.exec(toExecute.command, this.$editor, toExecute.args, e);\n }\n if (success && e && hashId != -1 &&\n toExecute.passEvent != true && toExecute.command.passEvent != true) {\n event.stopEvent(e);\n }\n if (success)\n break;\n }\n if (!success && hashId == -1) {\n toExecute = { command: \"insertstring\" };\n success = commands.exec(\"insertstring\", this.$editor, keyString);\n }\n if (success && this.$editor._signal)\n this.$editor._signal(\"keyboardActivity\", toExecute);\n return success;\n };\n KeyBinding.prototype.onCommandKey = function (e, hashId, keyCode) {\n var keyString = keyUtil.keyCodeToString(keyCode);\n return this.$callKeyboardHandlers(hashId, keyString, keyCode, e);\n };\n KeyBinding.prototype.onTextInput = function (text) {\n return this.$callKeyboardHandlers(-1, text);\n };\n return KeyBinding;\n}());\nexports.KeyBinding = KeyBinding;\n\n});\n\nace.define(\"ace/lib/bidiutil\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar ArabicAlefBetIntervalsBegine = ['\\u0621', '\\u0641'];\nvar ArabicAlefBetIntervalsEnd = ['\\u063A', '\\u064a'];\nvar dir = 0, hiLevel = 0;\nvar lastArabic = false, hasUBAT_AL = false, hasUBAT_B = false, hasUBAT_S = false, hasBlockSep = false, hasSegSep = false;\nvar impTab_LTR = [ [0, 3, 0, 1, 0, 0, 0], [0, 3, 0, 1, 2, 2, 0], [0, 3, 0, 0x11, 2, 0, 1], [0, 3, 5, 5, 4, 1, 0], [0, 3, 0x15, 0x15, 4, 0, 1], [0, 3, 5, 5, 4, 2, 0]\n];\nvar impTab_RTL = [ [2, 0, 1, 1, 0, 1, 0], [2, 0, 1, 1, 0, 2, 0], [2, 0, 2, 1, 3, 2, 0], [2, 0, 2, 0x21, 3, 1, 1]\n];\nvar LTR = 0, RTL = 1;\nvar L = 0;\nvar R = 1;\nvar EN = 2;\nvar AN = 3;\nvar ON = 4;\nvar B = 5;\nvar S = 6;\nvar AL = 7;\nvar WS = 8;\nvar CS = 9;\nvar ES = 10;\nvar ET = 11;\nvar NSM = 12;\nvar LRE = 13;\nvar RLE = 14;\nvar PDF = 15;\nvar LRO = 16;\nvar RLO = 17;\nvar BN = 18;\nvar UnicodeTBL00 = [\n BN, BN, BN, BN, BN, BN, BN, BN, BN, S, B, S, WS, B, BN, BN,\n BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, B, B, B, S,\n WS, ON, ON, ET, ET, ET, ON, ON, ON, ON, ON, ES, CS, ES, CS, CS,\n EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, CS, ON, ON, ON, ON, ON,\n ON, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L,\n L, L, L, L, L, L, L, L, L, L, L, ON, ON, ON, ON, ON,\n ON, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L,\n L, L, L, L, L, L, L, L, L, L, L, ON, ON, ON, ON, BN,\n BN, BN, BN, BN, BN, B, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,\n BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,\n CS, ON, ET, ET, ET, ET, ON, ON, ON, ON, L, ON, ON, BN, ON, ON,\n ET, ET, EN, EN, ON, L, ON, ON, ON, EN, L, ON, ON, ON, ON, ON\n];\nvar UnicodeTBL20 = [\n WS, WS, WS, WS, WS, WS, WS, WS, WS, WS, WS, BN, BN, BN, L, R,\n ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, ON, ON, ON, ON, WS, B, LRE, RLE, PDF, LRO, RLO, CS,\n ET, ET, ET, ET, ET, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, CS, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, WS\n];\nfunction _computeLevels(chars, levels, len, charTypes) {\n var impTab = dir ? impTab_RTL : impTab_LTR, prevState = null, newClass = null, newLevel = null, newState = 0, action = null, cond = null, condPos = -1, i = null, ix = null, classes = [];\n if (!charTypes) {\n for (i = 0, charTypes = []; i < len; i++) {\n charTypes[i] = _getCharacterType(chars[i]);\n }\n }\n hiLevel = dir;\n lastArabic = false;\n hasUBAT_AL = false;\n hasUBAT_B = false;\n hasUBAT_S = false;\n for (ix = 0; ix < len; ix++) {\n prevState = newState;\n classes[ix] = newClass = _getCharClass(chars, charTypes, classes, ix);\n newState = impTab[prevState][newClass];\n action = newState & 0xF0;\n newState &= 0x0F;\n levels[ix] = newLevel = impTab[newState][5];\n if (action > 0) {\n if (action == 0x10) {\n for (i = condPos; i < ix; i++) {\n levels[i] = 1;\n }\n condPos = -1;\n }\n else {\n condPos = -1;\n }\n }\n cond = impTab[newState][6];\n if (cond) {\n if (condPos == -1) {\n condPos = ix;\n }\n }\n else {\n if (condPos > -1) {\n for (i = condPos; i < ix; i++) {\n levels[i] = newLevel;\n }\n condPos = -1;\n }\n }\n if (charTypes[ix] == B) {\n levels[ix] = 0;\n }\n hiLevel |= newLevel;\n }\n if (hasUBAT_S) {\n for (i = 0; i < len; i++) {\n if (charTypes[i] == S) {\n levels[i] = dir;\n for (var j = i - 1; j >= 0; j--) {\n if (charTypes[j] == WS) {\n levels[j] = dir;\n }\n else {\n break;\n }\n }\n }\n }\n }\n}\nfunction _invertLevel(lev, levels, _array) {\n if (hiLevel < lev) {\n return;\n }\n if (lev == 1 && dir == RTL && !hasUBAT_B) {\n _array.reverse();\n return;\n }\n var len = _array.length, start = 0, end, lo, hi, tmp;\n while (start < len) {\n if (levels[start] >= lev) {\n end = start + 1;\n while (end < len && levels[end] >= lev) {\n end++;\n }\n for (lo = start, hi = end - 1; lo < hi; lo++, hi--) {\n tmp = _array[lo];\n _array[lo] = _array[hi];\n _array[hi] = tmp;\n }\n start = end;\n }\n start++;\n }\n}\nfunction _getCharClass(chars, types, classes, ix) {\n var cType = types[ix], wType, nType, len, i;\n switch (cType) {\n case L:\n case R:\n lastArabic = false;\n case ON:\n case AN:\n return cType;\n case EN:\n return lastArabic ? AN : EN;\n case AL:\n lastArabic = true;\n hasUBAT_AL = true;\n return R;\n case WS:\n return ON;\n case CS:\n if (ix < 1 || (ix + 1) >= types.length ||\n ((wType = classes[ix - 1]) != EN && wType != AN) ||\n ((nType = types[ix + 1]) != EN && nType != AN)) {\n return ON;\n }\n if (lastArabic) {\n nType = AN;\n }\n return nType == wType ? nType : ON;\n case ES:\n wType = ix > 0 ? classes[ix - 1] : B;\n if (wType == EN && (ix + 1) < types.length && types[ix + 1] == EN) {\n return EN;\n }\n return ON;\n case ET:\n if (ix > 0 && classes[ix - 1] == EN) {\n return EN;\n }\n if (lastArabic) {\n return ON;\n }\n i = ix + 1;\n len = types.length;\n while (i < len && types[i] == ET) {\n i++;\n }\n if (i < len && types[i] == EN) {\n return EN;\n }\n return ON;\n case NSM:\n len = types.length;\n i = ix + 1;\n while (i < len && types[i] == NSM) {\n i++;\n }\n if (i < len) {\n var c = chars[ix], rtlCandidate = (c >= 0x0591 && c <= 0x08FF) || c == 0xFB1E;\n wType = types[i];\n if (rtlCandidate && (wType == R || wType == AL)) {\n return R;\n }\n }\n if (ix < 1 || (wType = types[ix - 1]) == B) {\n return ON;\n }\n return classes[ix - 1];\n case B:\n lastArabic = false;\n hasUBAT_B = true;\n return dir;\n case S:\n hasUBAT_S = true;\n return ON;\n case LRE:\n case RLE:\n case LRO:\n case RLO:\n case PDF:\n lastArabic = false;\n case BN:\n return ON;\n }\n}\nfunction _getCharacterType(ch) {\n var uc = ch.charCodeAt(0), hi = uc >> 8;\n if (hi == 0) {\n return ((uc > 0x00BF) ? L : UnicodeTBL00[uc]);\n }\n else if (hi == 5) {\n return (/[\\u0591-\\u05f4]/.test(ch) ? R : L);\n }\n else if (hi == 6) {\n if (/[\\u0610-\\u061a\\u064b-\\u065f\\u06d6-\\u06e4\\u06e7-\\u06ed]/.test(ch))\n return NSM;\n else if (/[\\u0660-\\u0669\\u066b-\\u066c]/.test(ch))\n return AN;\n else if (uc == 0x066A)\n return ET;\n else if (/[\\u06f0-\\u06f9]/.test(ch))\n return EN;\n else\n return AL;\n }\n else if (hi == 0x20 && uc <= 0x205F) {\n return UnicodeTBL20[uc & 0xFF];\n }\n else if (hi == 0xFE) {\n return (uc >= 0xFE70 ? AL : ON);\n }\n return ON;\n}\nfunction _isArabicDiacritics(ch) {\n return (ch >= '\\u064b' && ch <= '\\u0655');\n}\nexports.L = L;\nexports.R = R;\nexports.EN = EN;\nexports.ON_R = 3;\nexports.AN = 4;\nexports.R_H = 5;\nexports.B = 6;\nexports.RLE = 7;\nexports.DOT = \"\\xB7\";\nexports.doBidiReorder = function (text, textCharTypes, isRtl) {\n if (text.length < 2)\n return {};\n var chars = text.split(\"\"), logicalFromVisual = new Array(chars.length), bidiLevels = new Array(chars.length), levels = [];\n dir = isRtl ? RTL : LTR;\n _computeLevels(chars, levels, chars.length, textCharTypes);\n for (var i = 0; i < logicalFromVisual.length; logicalFromVisual[i] = i, i++)\n ;\n _invertLevel(2, levels, logicalFromVisual);\n _invertLevel(1, levels, logicalFromVisual);\n for (var i = 0; i < logicalFromVisual.length - 1; i++) { //fix levels to reflect character width\n if (textCharTypes[i] === AN) {\n levels[i] = exports.AN;\n }\n else if (levels[i] === R && ((textCharTypes[i] > AL && textCharTypes[i] < LRE)\n || textCharTypes[i] === ON || textCharTypes[i] === BN)) {\n levels[i] = exports.ON_R;\n }\n else if ((i > 0 && chars[i - 1] === '\\u0644') && /\\u0622|\\u0623|\\u0625|\\u0627/.test(chars[i])) {\n levels[i - 1] = levels[i] = exports.R_H;\n i++;\n }\n }\n if (chars[chars.length - 1] === exports.DOT)\n levels[chars.length - 1] = exports.B;\n if (chars[0] === '\\u202B')\n levels[0] = exports.RLE;\n for (var i = 0; i < logicalFromVisual.length; i++) {\n bidiLevels[i] = levels[logicalFromVisual[i]];\n }\n return { 'logicalFromVisual': logicalFromVisual, 'bidiLevels': bidiLevels };\n};\nexports.hasBidiCharacters = function (text, textCharTypes) {\n var ret = false;\n for (var i = 0; i < text.length; i++) {\n textCharTypes[i] = _getCharacterType(text.charAt(i));\n if (!ret && (textCharTypes[i] == R || textCharTypes[i] == AL || textCharTypes[i] == AN))\n ret = true;\n }\n return ret;\n};\nexports.getVisualFromLogicalIdx = function (logIdx, rowMap) {\n for (var i = 0; i < rowMap.logicalFromVisual.length; i++) {\n if (rowMap.logicalFromVisual[i] == logIdx)\n return i;\n }\n return 0;\n};\n\n});\n\nace.define(\"ace/bidihandler\",[\"require\",\"exports\",\"module\",\"ace/lib/bidiutil\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar bidiUtil = require(\"./lib/bidiutil\");\nvar lang = require(\"./lib/lang\");\nvar bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac\\u202B]/;\nvar BidiHandler = /** @class */ (function () {\n function BidiHandler(session) {\n this.session = session;\n this.bidiMap = {};\n this.currentRow = null;\n this.bidiUtil = bidiUtil;\n this.charWidths = [];\n this.EOL = \"\\xAC\";\n this.showInvisibles = true;\n this.isRtlDir = false;\n this.$isRtl = false;\n this.line = \"\";\n this.wrapIndent = 0;\n this.EOF = \"\\xB6\";\n this.RLE = \"\\u202B\";\n this.contentWidth = 0;\n this.fontMetrics = null;\n this.rtlLineOffset = 0;\n this.wrapOffset = 0;\n this.isMoveLeftOperation = false;\n this.seenBidi = bidiRE.test(session.getValue());\n }\n BidiHandler.prototype.isBidiRow = function (screenRow, docRow, splitIndex) {\n if (!this.seenBidi)\n return false;\n if (screenRow !== this.currentRow) {\n this.currentRow = screenRow;\n this.updateRowLine(docRow, splitIndex);\n this.updateBidiMap();\n }\n return this.bidiMap.bidiLevels;\n };\n BidiHandler.prototype.onChange = function (delta) {\n if (!this.seenBidi) {\n if (delta.action == \"insert\" && bidiRE.test(delta.lines.join(\"\\n\"))) {\n this.seenBidi = true;\n this.currentRow = null;\n }\n }\n else {\n this.currentRow = null;\n }\n };\n BidiHandler.prototype.getDocumentRow = function () {\n var docRow = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var index = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n if (index >= 0)\n docRow = this.session.$docRowCache[index];\n }\n return docRow;\n };\n BidiHandler.prototype.getSplitIndex = function () {\n var splitIndex = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var currentIndex, prevIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n while (this.currentRow - splitIndex > 0) {\n currentIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow - splitIndex - 1);\n if (currentIndex !== prevIndex)\n break;\n prevIndex = currentIndex;\n splitIndex++;\n }\n }\n else {\n splitIndex = this.currentRow;\n }\n return splitIndex;\n };\n BidiHandler.prototype.updateRowLine = function (docRow, splitIndex) {\n if (docRow === undefined)\n docRow = this.getDocumentRow();\n var isLastRow = (docRow === this.session.getLength() - 1), endOfLine = isLastRow ? this.EOF : this.EOL;\n this.wrapIndent = 0;\n this.line = this.session.getLine(docRow);\n this.isRtlDir = this.$isRtl || this.line.charAt(0) === this.RLE;\n if (this.session.$useWrapMode) {\n var splits = this.session.$wrapData[docRow];\n if (splits) {\n if (splitIndex === undefined)\n splitIndex = this.getSplitIndex();\n if (splitIndex > 0 && splits.length) {\n this.wrapIndent = splits.indent;\n this.wrapOffset = this.wrapIndent * this.charWidths[bidiUtil.L];\n this.line = (splitIndex < splits.length) ?\n this.line.substring(splits[splitIndex - 1], splits[splitIndex]) :\n this.line.substring(splits[splits.length - 1]);\n }\n else {\n this.line = this.line.substring(0, splits[splitIndex]);\n }\n if (splitIndex == splits.length) {\n this.line += (this.showInvisibles) ? endOfLine : bidiUtil.DOT;\n }\n }\n }\n else {\n this.line += this.showInvisibles ? endOfLine : bidiUtil.DOT;\n }\n var session = this.session, shift = 0, size;\n this.line = this.line.replace(/\\t|[\\u1100-\\u2029, \\u202F-\\uFFE6]/g, function (ch, i) {\n if (ch === '\\t' || session.isFullWidth(ch.charCodeAt(0))) {\n size = (ch === '\\t') ? session.getScreenTabSize(i + shift) : 2;\n shift += size - 1;\n return lang.stringRepeat(bidiUtil.DOT, size);\n }\n return ch;\n });\n if (this.isRtlDir) {\n this.fontMetrics.$main.textContent = (this.line.charAt(this.line.length - 1) == bidiUtil.DOT) ? this.line.substr(0, this.line.length - 1) : this.line;\n this.rtlLineOffset = this.contentWidth - this.fontMetrics.$main.getBoundingClientRect().width;\n }\n };\n BidiHandler.prototype.updateBidiMap = function () {\n var textCharTypes = [];\n if (bidiUtil.hasBidiCharacters(this.line, textCharTypes) || this.isRtlDir) {\n this.bidiMap = bidiUtil.doBidiReorder(this.line, textCharTypes, this.isRtlDir);\n }\n else {\n this.bidiMap = {};\n }\n };\n BidiHandler.prototype.markAsDirty = function () {\n this.currentRow = null;\n };\n BidiHandler.prototype.updateCharacterWidths = function (fontMetrics) {\n if (this.characterWidth === fontMetrics.$characterSize.width)\n return;\n this.fontMetrics = fontMetrics;\n var characterWidth = this.characterWidth = fontMetrics.$characterSize.width;\n var bidiCharWidth = fontMetrics.$measureCharWidth(\"\\u05d4\");\n this.charWidths[bidiUtil.L] = this.charWidths[bidiUtil.EN] = this.charWidths[bidiUtil.ON_R] = characterWidth;\n this.charWidths[bidiUtil.R] = this.charWidths[bidiUtil.AN] = bidiCharWidth;\n this.charWidths[bidiUtil.R_H] = bidiCharWidth * 0.45;\n this.charWidths[bidiUtil.B] = this.charWidths[bidiUtil.RLE] = 0;\n this.currentRow = null;\n };\n BidiHandler.prototype.setShowInvisibles = function (showInvisibles) {\n this.showInvisibles = showInvisibles;\n this.currentRow = null;\n };\n BidiHandler.prototype.setEolChar = function (eolChar) {\n this.EOL = eolChar;\n };\n BidiHandler.prototype.setContentWidth = function (width) {\n this.contentWidth = width;\n };\n BidiHandler.prototype.isRtlLine = function (row) {\n if (this.$isRtl)\n return true;\n if (row != undefined)\n return (this.session.getLine(row).charAt(0) == this.RLE);\n else\n return this.isRtlDir;\n };\n BidiHandler.prototype.setRtlDirection = function (editor, isRtlDir) {\n var cursor = editor.getCursorPosition();\n for (var row = editor.selection.getSelectionAnchor().row; row <= cursor.row; row++) {\n if (!isRtlDir && editor.session.getLine(row).charAt(0) === editor.session.$bidiHandler.RLE)\n editor.session.doc.removeInLine(row, 0, 1);\n else if (isRtlDir && editor.session.getLine(row).charAt(0) !== editor.session.$bidiHandler.RLE)\n editor.session.doc.insert({ column: 0, row: row }, editor.session.$bidiHandler.RLE);\n }\n };\n BidiHandler.prototype.getPosLeft = function (col) {\n col -= this.wrapIndent;\n var leftBoundary = (this.line.charAt(0) === this.RLE) ? 1 : 0;\n var logicalIdx = (col > leftBoundary) ? (this.session.getOverwrite() ? col : col - 1) : leftBoundary;\n var visualIdx = bidiUtil.getVisualFromLogicalIdx(logicalIdx, this.bidiMap), levels = this.bidiMap.bidiLevels, left = 0;\n if (!this.session.getOverwrite() && col <= leftBoundary && levels[visualIdx] % 2 !== 0)\n visualIdx++;\n for (var i = 0; i < visualIdx; i++) {\n left += this.charWidths[levels[i]];\n }\n if (!this.session.getOverwrite() && (col > leftBoundary) && (levels[visualIdx] % 2 === 0))\n left += this.charWidths[levels[visualIdx]];\n if (this.wrapIndent)\n left += this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n if (this.isRtlDir)\n left += this.rtlLineOffset;\n return left;\n };\n BidiHandler.prototype.getSelections = function (startCol, endCol) {\n var map = this.bidiMap, levels = map.bidiLevels, level, selections = [], offset = 0, selColMin = Math.min(startCol, endCol) - this.wrapIndent, selColMax = Math.max(startCol, endCol) - this.wrapIndent, isSelected = false, isSelectedPrev = false, selectionStart = 0;\n if (this.wrapIndent)\n offset += this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n for (var logIdx, visIdx = 0; visIdx < levels.length; visIdx++) {\n logIdx = map.logicalFromVisual[visIdx];\n level = levels[visIdx];\n isSelected = (logIdx >= selColMin) && (logIdx < selColMax);\n if (isSelected && !isSelectedPrev) {\n selectionStart = offset;\n }\n else if (!isSelected && isSelectedPrev) {\n selections.push({ left: selectionStart, width: offset - selectionStart });\n }\n offset += this.charWidths[level];\n isSelectedPrev = isSelected;\n }\n if (isSelected && (visIdx === levels.length)) {\n selections.push({ left: selectionStart, width: offset - selectionStart });\n }\n if (this.isRtlDir) {\n for (var i = 0; i < selections.length; i++) {\n selections[i].left += this.rtlLineOffset;\n }\n }\n return selections;\n };\n BidiHandler.prototype.offsetToCol = function (posX) {\n if (this.isRtlDir)\n posX -= this.rtlLineOffset;\n var logicalIdx = 0, posX = Math.max(posX, 0), offset = 0, visualIdx = 0, levels = this.bidiMap.bidiLevels, charWidth = this.charWidths[levels[visualIdx]];\n if (this.wrapIndent)\n posX -= this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n while (posX > offset + charWidth / 2) {\n offset += charWidth;\n if (visualIdx === levels.length - 1) {\n charWidth = 0;\n break;\n }\n charWidth = this.charWidths[levels[++visualIdx]];\n }\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && (levels[visualIdx] % 2 === 0)) {\n if (posX < offset)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n }\n else if (visualIdx > 0 && (levels[visualIdx - 1] % 2 === 0) && (levels[visualIdx] % 2 !== 0)) {\n logicalIdx = 1 + ((posX > offset) ? this.bidiMap.logicalFromVisual[visualIdx]\n : this.bidiMap.logicalFromVisual[visualIdx - 1]);\n }\n else if ((this.isRtlDir && visualIdx === levels.length - 1 && charWidth === 0 && (levels[visualIdx - 1] % 2 === 0))\n || (!this.isRtlDir && visualIdx === 0 && (levels[visualIdx] % 2 !== 0))) {\n logicalIdx = 1 + this.bidiMap.logicalFromVisual[visualIdx];\n }\n else {\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && charWidth !== 0)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n }\n if (logicalIdx === 0 && this.isRtlDir)\n logicalIdx++;\n return (logicalIdx + this.wrapIndent);\n };\n return BidiHandler;\n}());\nexports.BidiHandler = BidiHandler;\n\n});\n\nace.define(\"ace/selection\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar lang = require(\"./lib/lang\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Selection = /** @class */ (function () {\n function Selection(session) {\n this.session = session;\n this.doc = session.getDocument();\n this.clearSelection();\n this.cursor = this.lead = this.doc.createAnchor(0, 0);\n this.anchor = this.doc.createAnchor(0, 0);\n this.$silent = false;\n var self = this;\n this.cursor.on(\"change\", function (e) {\n self.$cursorChanged = true;\n if (!self.$silent)\n self._emit(\"changeCursor\");\n if (!self.$isEmpty && !self.$silent)\n self._emit(\"changeSelection\");\n if (!self.$keepDesiredColumnOnChange && e.old.column != e.value.column)\n self.$desiredColumn = null;\n });\n this.anchor.on(\"change\", function () {\n self.$anchorChanged = true;\n if (!self.$isEmpty && !self.$silent)\n self._emit(\"changeSelection\");\n });\n }\n Selection.prototype.isEmpty = function () {\n return this.$isEmpty || (this.anchor.row == this.lead.row &&\n this.anchor.column == this.lead.column);\n };\n Selection.prototype.isMultiLine = function () {\n return !this.$isEmpty && this.anchor.row != this.cursor.row;\n };\n Selection.prototype.getCursor = function () {\n return this.lead.getPosition();\n };\n Selection.prototype.setAnchor = function (row, column) {\n this.$isEmpty = false;\n this.anchor.setPosition(row, column);\n };\n Selection.prototype.getAnchor = function () {\n if (this.$isEmpty)\n return this.getSelectionLead();\n return this.anchor.getPosition();\n };\n Selection.prototype.getSelectionLead = function () {\n return this.lead.getPosition();\n };\n Selection.prototype.isBackwards = function () {\n var anchor = this.anchor;\n var lead = this.lead;\n return (anchor.row > lead.row || (anchor.row == lead.row && anchor.column > lead.column));\n };\n Selection.prototype.getRange = function () {\n var anchor = this.anchor;\n var lead = this.lead;\n if (this.$isEmpty)\n return Range.fromPoints(lead, lead);\n return this.isBackwards()\n ? Range.fromPoints(lead, anchor)\n : Range.fromPoints(anchor, lead);\n };\n Selection.prototype.clearSelection = function () {\n if (!this.$isEmpty) {\n this.$isEmpty = true;\n this._emit(\"changeSelection\");\n }\n };\n Selection.prototype.selectAll = function () {\n this.$setSelection(0, 0, Number.MAX_VALUE, Number.MAX_VALUE);\n };\n Selection.prototype.setRange = function (range, reverse) {\n var start = reverse ? range.end : range.start;\n var end = reverse ? range.start : range.end;\n this.$setSelection(start.row, start.column, end.row, end.column);\n };\n Selection.prototype.$setSelection = function (anchorRow, anchorColumn, cursorRow, cursorColumn) {\n if (this.$silent)\n return;\n var wasEmpty = this.$isEmpty;\n var wasMultiselect = this.inMultiSelectMode;\n this.$silent = true;\n this.$cursorChanged = this.$anchorChanged = false;\n this.anchor.setPosition(anchorRow, anchorColumn);\n this.cursor.setPosition(cursorRow, cursorColumn);\n this.$isEmpty = !Range.comparePoints(this.anchor, this.cursor);\n this.$silent = false;\n if (this.$cursorChanged)\n this._emit(\"changeCursor\");\n if (this.$cursorChanged || this.$anchorChanged || wasEmpty != this.$isEmpty || wasMultiselect)\n this._emit(\"changeSelection\");\n };\n Selection.prototype.$moveSelection = function (mover) {\n var lead = this.lead;\n if (this.$isEmpty)\n this.setSelectionAnchor(lead.row, lead.column);\n mover.call(this);\n };\n Selection.prototype.selectTo = function (row, column) {\n this.$moveSelection(function () {\n this.moveCursorTo(row, column);\n });\n };\n Selection.prototype.selectToPosition = function (pos) {\n this.$moveSelection(function () {\n this.moveCursorToPosition(pos);\n });\n };\n Selection.prototype.moveTo = function (row, column) {\n this.clearSelection();\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveToPosition = function (pos) {\n this.clearSelection();\n this.moveCursorToPosition(pos);\n };\n Selection.prototype.selectUp = function () {\n this.$moveSelection(this.moveCursorUp);\n };\n Selection.prototype.selectDown = function () {\n this.$moveSelection(this.moveCursorDown);\n };\n Selection.prototype.selectRight = function () {\n this.$moveSelection(this.moveCursorRight);\n };\n Selection.prototype.selectLeft = function () {\n this.$moveSelection(this.moveCursorLeft);\n };\n Selection.prototype.selectLineStart = function () {\n this.$moveSelection(this.moveCursorLineStart);\n };\n Selection.prototype.selectLineEnd = function () {\n this.$moveSelection(this.moveCursorLineEnd);\n };\n Selection.prototype.selectFileEnd = function () {\n this.$moveSelection(this.moveCursorFileEnd);\n };\n Selection.prototype.selectFileStart = function () {\n this.$moveSelection(this.moveCursorFileStart);\n };\n Selection.prototype.selectWordRight = function () {\n this.$moveSelection(this.moveCursorWordRight);\n };\n Selection.prototype.selectWordLeft = function () {\n this.$moveSelection(this.moveCursorWordLeft);\n };\n Selection.prototype.getWordRange = function (row, column) {\n if (typeof column == \"undefined\") {\n var cursor = row || this.lead;\n row = cursor.row;\n column = cursor.column;\n }\n return this.session.getWordRange(row, column);\n };\n Selection.prototype.selectWord = function () {\n this.setSelectionRange(this.getWordRange());\n };\n Selection.prototype.selectAWord = function () {\n var cursor = this.getCursor();\n var range = this.session.getAWordRange(cursor.row, cursor.column);\n this.setSelectionRange(range);\n };\n Selection.prototype.getLineRange = function (row, excludeLastChar) {\n var rowStart = typeof row == \"number\" ? row : this.lead.row;\n var rowEnd;\n var foldLine = this.session.getFoldLine(rowStart);\n if (foldLine) {\n rowStart = foldLine.start.row;\n rowEnd = foldLine.end.row;\n }\n else {\n rowEnd = rowStart;\n }\n if (excludeLastChar === true)\n return new Range(rowStart, 0, rowEnd, this.session.getLine(rowEnd).length);\n else\n return new Range(rowStart, 0, rowEnd + 1, 0);\n };\n Selection.prototype.selectLine = function () {\n this.setSelectionRange(this.getLineRange());\n };\n Selection.prototype.moveCursorUp = function () {\n this.moveCursorBy(-1, 0);\n };\n Selection.prototype.moveCursorDown = function () {\n this.moveCursorBy(1, 0);\n };\n Selection.prototype.wouldMoveIntoSoftTab = function (cursor, tabSize, direction) {\n var start = cursor.column;\n var end = cursor.column + tabSize;\n if (direction < 0) {\n start = cursor.column - tabSize;\n end = cursor.column;\n }\n return this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(start, end).split(\" \").length - 1 == tabSize;\n };\n Selection.prototype.moveCursorLeft = function () {\n var cursor = this.lead.getPosition(), fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n }\n else if (cursor.column === 0) {\n if (cursor.row > 0) {\n this.moveCursorTo(cursor.row - 1, this.doc.getLine(cursor.row - 1).length);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, -1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, -tabSize);\n }\n else {\n this.moveCursorBy(0, -1);\n }\n }\n };\n Selection.prototype.moveCursorRight = function () {\n var cursor = this.lead.getPosition(), fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, 1)) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n }\n else if (this.lead.column == this.doc.getLine(this.lead.row).length) {\n if (this.lead.row < this.doc.getLength() - 1) {\n this.moveCursorTo(this.lead.row + 1, 0);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n var cursor = this.lead;\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, 1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, tabSize);\n }\n else {\n this.moveCursorBy(0, 1);\n }\n }\n };\n Selection.prototype.moveCursorLineStart = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var screenRow = this.session.documentToScreenRow(row, column);\n var firstColumnPosition = this.session.screenToDocumentPosition(screenRow, 0);\n var beforeCursor = this.session.getDisplayLine(row, null, firstColumnPosition.row, firstColumnPosition.column);\n var leadingSpace = beforeCursor.match(/^\\s*/);\n if (leadingSpace[0].length != column && !this.session.$useEmacsStyleLineStart)\n firstColumnPosition.column += leadingSpace[0].length;\n this.moveCursorToPosition(firstColumnPosition);\n };\n Selection.prototype.moveCursorLineEnd = function () {\n var lead = this.lead;\n var lineEnd = this.session.getDocumentLastRowColumnPosition(lead.row, lead.column);\n if (this.lead.column == lineEnd.column) {\n var line = this.session.getLine(lineEnd.row);\n if (lineEnd.column == line.length) {\n var textEnd = line.search(/\\s+$/);\n if (textEnd > 0)\n lineEnd.column = textEnd;\n }\n }\n this.moveCursorTo(lineEnd.row, lineEnd.column);\n };\n Selection.prototype.moveCursorFileEnd = function () {\n var row = this.doc.getLength() - 1;\n var column = this.doc.getLine(row).length;\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveCursorFileStart = function () {\n this.moveCursorTo(0, 0);\n };\n Selection.prototype.moveCursorLongWordRight = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n return;\n }\n if (this.session.nonTokenRe.exec(rightOfCursor)) {\n column += this.session.nonTokenRe.lastIndex;\n this.session.nonTokenRe.lastIndex = 0;\n rightOfCursor = line.substring(column);\n }\n if (column >= line.length) {\n this.moveCursorTo(row, line.length);\n this.moveCursorRight();\n if (row < this.doc.getLength() - 1)\n this.moveCursorWordRight();\n return;\n }\n if (this.session.tokenRe.exec(rightOfCursor)) {\n column += this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveCursorLongWordLeft = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n return;\n }\n var str = this.session.getFoldStringAt(row, column, -1);\n if (str == null) {\n str = this.doc.getLine(row).substring(0, column);\n }\n var leftOfCursor = lang.stringReverse(str);\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n if (this.session.nonTokenRe.exec(leftOfCursor)) {\n column -= this.session.nonTokenRe.lastIndex;\n leftOfCursor = leftOfCursor.slice(this.session.nonTokenRe.lastIndex);\n this.session.nonTokenRe.lastIndex = 0;\n }\n if (column <= 0) {\n this.moveCursorTo(row, 0);\n this.moveCursorLeft();\n if (row > 0)\n this.moveCursorWordLeft();\n return;\n }\n if (this.session.tokenRe.exec(leftOfCursor)) {\n column -= this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n this.moveCursorTo(row, column);\n };\n Selection.prototype.$shortWordEndIndex = function (rightOfCursor) {\n var index = 0, ch;\n var whitespaceRe = /\\s/;\n var tokenRe = this.session.tokenRe;\n tokenRe.lastIndex = 0;\n if (this.session.tokenRe.exec(rightOfCursor)) {\n index = this.session.tokenRe.lastIndex;\n }\n else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index++;\n if (index < 1) {\n tokenRe.lastIndex = 0;\n while ((ch = rightOfCursor[index]) && !tokenRe.test(ch)) {\n tokenRe.lastIndex = 0;\n index++;\n if (whitespaceRe.test(ch)) {\n if (index > 2) {\n index--;\n break;\n }\n else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index++;\n if (index > 2)\n break;\n }\n }\n }\n }\n }\n tokenRe.lastIndex = 0;\n return index;\n };\n Selection.prototype.moveCursorShortWordRight = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold)\n return this.moveCursorTo(fold.end.row, fold.end.column);\n if (column == line.length) {\n var l = this.doc.getLength();\n do {\n row++;\n rightOfCursor = this.doc.getLine(row);\n } while (row < l && /^\\s*$/.test(rightOfCursor));\n if (!/^\\s+/.test(rightOfCursor))\n rightOfCursor = \"\";\n column = 0;\n }\n var index = this.$shortWordEndIndex(rightOfCursor);\n this.moveCursorTo(row, column + index);\n };\n Selection.prototype.moveCursorShortWordLeft = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1))\n return this.moveCursorTo(fold.start.row, fold.start.column);\n var line = this.session.getLine(row).substring(0, column);\n if (column === 0) {\n do {\n row--;\n line = this.doc.getLine(row);\n } while (row > 0 && /^\\s*$/.test(line));\n column = line.length;\n if (!/\\s+$/.test(line))\n line = \"\";\n }\n var leftOfCursor = lang.stringReverse(line);\n var index = this.$shortWordEndIndex(leftOfCursor);\n return this.moveCursorTo(row, column - index);\n };\n Selection.prototype.moveCursorWordRight = function () {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordRight();\n else\n this.moveCursorShortWordRight();\n };\n Selection.prototype.moveCursorWordLeft = function () {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordLeft();\n else\n this.moveCursorShortWordLeft();\n };\n Selection.prototype.moveCursorBy = function (rows, chars) {\n var screenPos = this.session.documentToScreenPosition(this.lead.row, this.lead.column);\n var offsetX;\n if (chars === 0) {\n if (rows !== 0) {\n if (this.session.$bidiHandler.isBidiRow(screenPos.row, this.lead.row)) {\n offsetX = this.session.$bidiHandler.getPosLeft(screenPos.column);\n screenPos.column = Math.round(offsetX / this.session.$bidiHandler.charWidths[0]);\n }\n else {\n offsetX = screenPos.column * this.session.$bidiHandler.charWidths[0];\n }\n }\n if (this.$desiredColumn)\n screenPos.column = this.$desiredColumn;\n else\n this.$desiredColumn = screenPos.column;\n }\n if (rows != 0 && this.session.lineWidgets && this.session.lineWidgets[this.lead.row]) {\n var widget = this.session.lineWidgets[this.lead.row];\n if (rows < 0)\n rows -= widget.rowsAbove || 0;\n else if (rows > 0)\n rows += widget.rowCount - (widget.rowsAbove || 0);\n }\n var docPos = this.session.screenToDocumentPosition(screenPos.row + rows, screenPos.column, offsetX);\n if (rows !== 0 && chars === 0 && docPos.row === this.lead.row && docPos.column === this.lead.column) {\n }\n this.moveCursorTo(docPos.row, docPos.column + chars, chars === 0);\n };\n Selection.prototype.moveCursorToPosition = function (position) {\n this.moveCursorTo(position.row, position.column);\n };\n Selection.prototype.moveCursorTo = function (row, column, keepDesiredColumn) {\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n row = fold.start.row;\n column = fold.start.column;\n }\n this.$keepDesiredColumnOnChange = true;\n var line = this.session.getLine(row);\n if (/[\\uDC00-\\uDFFF]/.test(line.charAt(column)) && line.charAt(column - 1)) {\n if (this.lead.row == row && this.lead.column == column + 1)\n column = column - 1;\n else\n column = column + 1;\n }\n this.lead.setPosition(row, column);\n this.$keepDesiredColumnOnChange = false;\n if (!keepDesiredColumn)\n this.$desiredColumn = null;\n };\n Selection.prototype.moveCursorToScreen = function (row, column, keepDesiredColumn) {\n var pos = this.session.screenToDocumentPosition(row, column);\n this.moveCursorTo(pos.row, pos.column, keepDesiredColumn);\n };\n Selection.prototype.detach = function () {\n this.lead.detach();\n this.anchor.detach();\n };\n Selection.prototype.fromOrientedRange = function (range) {\n this.setSelectionRange(range, range.cursor == range.start);\n this.$desiredColumn = range.desiredColumn || this.$desiredColumn;\n };\n Selection.prototype.toOrientedRange = function (range) {\n var r = this.getRange();\n if (range) {\n range.start.column = r.start.column;\n range.start.row = r.start.row;\n range.end.column = r.end.column;\n range.end.row = r.end.row;\n }\n else {\n range = r;\n }\n range.cursor = this.isBackwards() ? range.start : range.end;\n range.desiredColumn = this.$desiredColumn;\n return range;\n };\n Selection.prototype.getRangeOfMovements = function (func) {\n var start = this.getCursor();\n try {\n func(this);\n var end = this.getCursor();\n return Range.fromPoints(start, end);\n }\n catch (e) {\n return Range.fromPoints(start, start);\n }\n finally {\n this.moveCursorToPosition(start);\n }\n };\n Selection.prototype.toJSON = function () {\n if (this.rangeCount) {\n var data = this.ranges.map(function (r) {\n var r1 = r.clone();\n r1.isBackwards = r.cursor == r.start;\n return r1;\n });\n }\n else {\n var data = this.getRange();\n data.isBackwards = this.isBackwards();\n }\n return data;\n };\n Selection.prototype.fromJSON = function (data) {\n if (data.start == undefined) {\n if (this.rangeList && data.length > 1) {\n this.toSingleRange(data[0]);\n for (var i = data.length; i--;) {\n var r = Range.fromPoints(data[i].start, data[i].end);\n if (data[i].isBackwards)\n r.cursor = r.start;\n this.addRange(r, true);\n }\n return;\n }\n else {\n data = data[0];\n }\n }\n if (this.rangeList)\n this.toSingleRange(data);\n this.setSelectionRange(data, data.isBackwards);\n };\n Selection.prototype.isEqual = function (data) {\n if ((data.length || this.rangeCount) && data.length != this.rangeCount)\n return false;\n if (!data.length || !this.ranges)\n return this.getRange().isEqual(data);\n for (var i = this.ranges.length; i--;) {\n if (!this.ranges[i].isEqual(data[i]))\n return false;\n }\n return true;\n };\n return Selection;\n}());\nSelection.prototype.setSelectionAnchor = Selection.prototype.setAnchor;\nSelection.prototype.getSelectionAnchor = Selection.prototype.getAnchor;\nSelection.prototype.setSelectionRange = Selection.prototype.setRange;\noop.implement(Selection.prototype, EventEmitter);\nexports.Selection = Selection;\n\n});\n\nace.define(\"ace/tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/report_error\"], function(require, exports, module){\"use strict\";\nvar reportError = require(\"./lib/report_error\").reportError;\nvar MAX_TOKEN_COUNT = 2000;\nvar Tokenizer = /** @class */ (function () {\n function Tokenizer(rules) {\n this.states = rules;\n this.regExps = {};\n this.matchMappings = {};\n for (var key in this.states) {\n var state = this.states[key];\n var ruleRegExps = [];\n var matchTotal = 0;\n var mapping = this.matchMappings[key] = { defaultToken: \"text\" };\n var flag = \"g\";\n var splitterRurles = [];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.defaultToken)\n mapping.defaultToken = rule.defaultToken;\n if (rule.caseInsensitive && flag.indexOf(\"i\") === -1)\n flag += \"i\";\n if (rule.unicode && flag.indexOf(\"u\") === -1)\n flag += \"u\";\n if (rule.regex == null)\n continue;\n if (rule.regex instanceof RegExp)\n rule.regex = rule.regex.toString().slice(1, -1);\n var adjustedregex = rule.regex;\n var matchcount = new RegExp(\"(?:(\" + adjustedregex + \")|(.))\").exec(\"a\").length - 2;\n if (Array.isArray(rule.token)) {\n if (rule.token.length == 1 || matchcount == 1) {\n rule.token = rule.token[0];\n }\n else if (matchcount - 1 != rule.token.length) {\n this.reportError(\"number of classes and regexp groups doesn't match\", {\n rule: rule,\n groupCount: matchcount - 1\n });\n rule.token = rule.token[0];\n }\n else {\n rule.tokenArray = rule.token;\n rule.token = null;\n rule.onMatch = this.$arrayTokens;\n }\n }\n else if (typeof rule.token == \"function\" && !rule.onMatch) {\n if (matchcount > 1)\n rule.onMatch = this.$applyToken;\n else\n rule.onMatch = rule.token;\n }\n if (matchcount > 1) {\n if (/\\\\\\d/.test(rule.regex)) {\n adjustedregex = rule.regex.replace(/\\\\([0-9]+)/g, function (match, digit) {\n return \"\\\\\" + (parseInt(digit, 10) + matchTotal + 1);\n });\n }\n else {\n matchcount = 1;\n adjustedregex = this.removeCapturingGroups(rule.regex);\n }\n if (!rule.splitRegex && typeof rule.token != \"string\")\n splitterRurles.push(rule); // flag will be known only at the very end\n }\n mapping[matchTotal] = i;\n matchTotal += matchcount;\n ruleRegExps.push(adjustedregex);\n if (!rule.onMatch)\n rule.onMatch = null;\n }\n if (!ruleRegExps.length) {\n mapping[0] = 0;\n ruleRegExps.push(\"$\");\n }\n splitterRurles.forEach(function (rule) {\n rule.splitRegex = this.createSplitterRegexp(rule.regex, flag);\n }, this);\n this.regExps[key] = new RegExp(\"(\" + ruleRegExps.join(\")|(\") + \")|($)\", flag);\n }\n }\n Tokenizer.prototype.$setMaxTokenCount = function (m) {\n MAX_TOKEN_COUNT = m | 0;\n };\n Tokenizer.prototype.$applyToken = function (str) {\n var values = this.splitRegex.exec(str).slice(1);\n var types = this.token.apply(this, values);\n if (typeof types === \"string\")\n return [{ type: types, value: str }];\n var tokens = [];\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i]\n };\n }\n return tokens;\n };\n Tokenizer.prototype.$arrayTokens = function (str) {\n if (!str)\n return [];\n var values = this.splitRegex.exec(str);\n if (!values)\n return \"text\";\n var tokens = [];\n var types = this.tokenArray;\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i + 1])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i + 1]\n };\n }\n return tokens;\n };\n Tokenizer.prototype.removeCapturingGroups = function (src) {\n var r = src.replace(/\\\\.|\\[(?:\\\\.|[^\\\\\\]])*|\\(\\?[:=!<]|(\\()/g, function (x, y) { return y ? \"(?:\" : x; });\n return r;\n };\n Tokenizer.prototype.createSplitterRegexp = function (src, flag) {\n if (src.indexOf(\"(?=\") != -1) {\n var stack = 0;\n var inChClass = false;\n var lastCapture = {};\n src.replace(/(\\\\.)|(\\((?:\\?[=!])?)|(\\))|([\\[\\]])/g, function (m, esc, parenOpen, parenClose, square, index) {\n if (inChClass) {\n inChClass = square != \"]\";\n }\n else if (square) {\n inChClass = true;\n }\n else if (parenClose) {\n if (stack == lastCapture.stack) {\n lastCapture.end = index + 1;\n lastCapture.stack = -1;\n }\n stack--;\n }\n else if (parenOpen) {\n stack++;\n if (parenOpen.length != 1) {\n lastCapture.stack = stack;\n lastCapture.start = index;\n }\n }\n return m;\n });\n if (lastCapture.end != null && /^\\)*$/.test(src.substr(lastCapture.end)))\n src = src.substring(0, lastCapture.start) + src.substr(lastCapture.end);\n }\n if (src.charAt(0) != \"^\")\n src = \"^\" + src;\n if (src.charAt(src.length - 1) != \"$\")\n src += \"$\";\n return new RegExp(src, (flag || \"\").replace(\"g\", \"\"));\n };\n Tokenizer.prototype.getLineTokens = function (line, startState) {\n if (startState && typeof startState != \"string\") {\n var stack = startState.slice(0);\n startState = stack[0];\n if (startState === \"#tmp\") {\n stack.shift();\n startState = stack.shift();\n }\n }\n else\n var stack = [];\n var currentState = startState || \"start\";\n var state = this.states[currentState];\n if (!state) {\n currentState = \"start\";\n state = this.states[currentState];\n }\n var mapping = this.matchMappings[currentState];\n var re = this.regExps[currentState];\n re.lastIndex = 0;\n var match, tokens = [];\n var lastIndex = 0;\n var matchAttempts = 0;\n var token = { type: null, value: \"\" };\n while (match = re.exec(line)) {\n var type = mapping.defaultToken;\n var rule = null;\n var value = match[0];\n var index = re.lastIndex;\n if (index - value.length > lastIndex) {\n var skipped = line.substring(lastIndex, index - value.length);\n if (token.type == type) {\n token.value += skipped;\n }\n else {\n if (token.type)\n tokens.push(token);\n token = { type: type, value: skipped };\n }\n }\n for (var i = 0; i < match.length - 2; i++) {\n if (match[i + 1] === undefined)\n continue;\n rule = state[mapping[i]];\n if (rule.onMatch)\n type = rule.onMatch(value, currentState, stack, line);\n else\n type = rule.token;\n if (rule.next) {\n if (typeof rule.next == \"string\") {\n currentState = rule.next;\n }\n else {\n currentState = rule.next(currentState, stack);\n }\n state = this.states[currentState];\n if (!state) {\n this.reportError(\"state doesn't exist\", currentState);\n currentState = \"start\";\n state = this.states[currentState];\n }\n mapping = this.matchMappings[currentState];\n lastIndex = index;\n re = this.regExps[currentState];\n re.lastIndex = index;\n }\n if (rule.consumeLineEnd)\n lastIndex = index;\n break;\n }\n if (value) {\n if (typeof type === \"string\") {\n if ((!rule || rule.merge !== false) && token.type === type) {\n token.value += value;\n }\n else {\n if (token.type)\n tokens.push(token);\n token = { type: type, value: value };\n }\n }\n else if (type) {\n if (token.type)\n tokens.push(token);\n token = { type: null, value: \"\" };\n for (var i = 0; i < type.length; i++)\n tokens.push(type[i]);\n }\n }\n if (lastIndex == line.length)\n break;\n lastIndex = index;\n if (matchAttempts++ > MAX_TOKEN_COUNT) {\n if (matchAttempts > 2 * line.length) {\n this.reportError(\"infinite loop with in ace tokenizer\", {\n startState: startState,\n line: line\n });\n }\n while (lastIndex < line.length) {\n if (token.type)\n tokens.push(token);\n token = {\n value: line.substring(lastIndex, lastIndex += 500),\n type: \"overflow\"\n };\n }\n currentState = \"start\";\n stack = [];\n break;\n }\n }\n if (token.type)\n tokens.push(token);\n if (stack.length > 1) {\n if (stack[0] !== currentState)\n stack.unshift(\"#tmp\", currentState);\n }\n return {\n tokens: tokens,\n state: stack.length ? stack : currentState\n };\n };\n return Tokenizer;\n}());\nTokenizer.prototype.reportError = reportError;\nexports.Tokenizer = Tokenizer;\n\n});\n\nace.define(\"ace/mode/text_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/deep_copy\"], function(require, exports, module){\"use strict\";\nvar deepCopy = require(\"../lib/deep_copy\").deepCopy;\nvar TextHighlightRules = function () {\n this.$rules = {\n \"start\": [{\n token: \"empty_line\",\n regex: '^$'\n }, {\n defaultToken: \"text\"\n }]\n };\n};\n(function () {\n this.addRules = function (rules, prefix) {\n if (!prefix) {\n for (var key in rules)\n this.$rules[key] = rules[key];\n return;\n }\n for (var key in rules) {\n var state = rules[key];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.next || rule.onMatch) {\n if (typeof rule.next == \"string\") {\n if (rule.next.indexOf(prefix) !== 0)\n rule.next = prefix + rule.next;\n }\n if (rule.nextState && rule.nextState.indexOf(prefix) !== 0)\n rule.nextState = prefix + rule.nextState;\n }\n }\n this.$rules[prefix + key] = state;\n }\n };\n this.getRules = function () {\n return this.$rules;\n };\n this.embedRules = function (HighlightRules, prefix, escapeRules, states, append) {\n var embedRules = typeof HighlightRules == \"function\"\n ? new HighlightRules().getRules()\n : HighlightRules;\n if (states) {\n for (var i = 0; i < states.length; i++)\n states[i] = prefix + states[i];\n }\n else {\n states = [];\n for (var key in embedRules)\n states.push(prefix + key);\n }\n this.addRules(embedRules, prefix);\n if (escapeRules) {\n var addRules = Array.prototype[append ? \"push\" : \"unshift\"];\n for (var i = 0; i < states.length; i++)\n addRules.apply(this.$rules[states[i]], deepCopy(escapeRules));\n }\n if (!this.$embeds)\n this.$embeds = [];\n this.$embeds.push(prefix);\n };\n this.getEmbeds = function () {\n return this.$embeds;\n };\n var pushState = function (currentState, stack) {\n if (currentState != \"start\" || stack.length)\n stack.unshift(this.nextState, currentState);\n return this.nextState;\n };\n var popState = function (currentState, stack) {\n stack.shift();\n return stack.shift() || \"start\";\n };\n this.normalizeRules = function () {\n var id = 0;\n var rules = this.$rules;\n function processState(key) {\n var state = rules[key];\n state.processed = true;\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n var toInsert = null;\n if (Array.isArray(rule)) {\n toInsert = rule;\n rule = {};\n }\n if (!rule.regex && rule.start) {\n rule.regex = rule.start;\n if (!rule.next)\n rule.next = [];\n rule.next.push({\n defaultToken: rule.token\n }, {\n token: rule.token + \".end\",\n regex: rule.end || rule.start,\n next: \"pop\"\n });\n rule.token = rule.token + \".start\";\n rule.push = true;\n }\n var next = rule.next || rule.push;\n if (next && Array.isArray(next)) {\n var stateName = rule.stateName;\n if (!stateName) {\n stateName = rule.token;\n if (typeof stateName != \"string\")\n stateName = stateName[0] || \"\";\n if (rules[stateName])\n stateName += id++;\n }\n rules[stateName] = next;\n rule.next = stateName;\n processState(stateName);\n }\n else if (next == \"pop\") {\n rule.next = popState;\n }\n if (rule.push) {\n rule.nextState = rule.next || rule.push;\n rule.next = pushState;\n delete rule.push;\n }\n if (rule.rules) {\n for (var r in rule.rules) {\n if (rules[r]) {\n if (rules[r].push)\n rules[r].push.apply(rules[r], rule.rules[r]);\n }\n else {\n rules[r] = rule.rules[r];\n }\n }\n }\n var includeName = typeof rule == \"string\" ? rule : rule.include;\n if (includeName) {\n if (includeName === \"$self\")\n includeName = \"start\";\n if (Array.isArray(includeName))\n toInsert = includeName.map(function (x) { return rules[x]; });\n else\n toInsert = rules[includeName];\n }\n if (toInsert) {\n var args = [i, 1].concat(toInsert);\n if (rule.noEscape)\n args = args.filter(function (x) { return !x.next; });\n state.splice.apply(state, args);\n i--;\n }\n if (rule.keywordMap) {\n rule.token = this.createKeywordMapper(rule.keywordMap, rule.defaultToken || \"text\", rule.caseInsensitive);\n delete rule.defaultToken;\n }\n }\n }\n Object.keys(rules).forEach(processState, this);\n };\n this.createKeywordMapper = function (map, defaultToken, ignoreCase, splitChar) {\n var keywords = Object.create(null);\n this.$keywordList = [];\n Object.keys(map).forEach(function (className) {\n var a = map[className];\n var list = a.split(splitChar || \"|\");\n for (var i = list.length; i--;) {\n var word = list[i];\n this.$keywordList.push(word);\n if (ignoreCase)\n word = word.toLowerCase();\n keywords[word] = className;\n }\n }, this);\n map = null;\n return ignoreCase\n ? function (value) { return keywords[value.toLowerCase()] || defaultToken; }\n : function (value) { return keywords[value] || defaultToken; };\n };\n this.getKeywords = function () {\n return this.$keywords;\n };\n}).call(TextHighlightRules.prototype);\nexports.TextHighlightRules = TextHighlightRules;\n\n});\n\nace.define(\"ace/mode/behaviour\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar Behaviour = function () {\n this.$behaviours = {};\n};\n(function () {\n this.add = function (name, action, callback) {\n switch (undefined) {\n case this.$behaviours:\n this.$behaviours = {};\n case this.$behaviours[name]:\n this.$behaviours[name] = {};\n }\n this.$behaviours[name][action] = callback;\n };\n this.addBehaviours = function (behaviours) {\n for (var key in behaviours) {\n for (var action in behaviours[key]) {\n this.add(key, action, behaviours[key][action]);\n }\n }\n };\n this.remove = function (name) {\n if (this.$behaviours && this.$behaviours[name]) {\n delete this.$behaviours[name];\n }\n };\n this.inherit = function (mode, filter) {\n if (typeof mode === \"function\") {\n var behaviours = new mode().getBehaviours(filter);\n }\n else {\n var behaviours = mode.getBehaviours(filter);\n }\n this.addBehaviours(behaviours);\n };\n this.getBehaviours = function (filter) {\n if (!filter) {\n return this.$behaviours;\n }\n else {\n var ret = {};\n for (var i = 0; i < filter.length; i++) {\n if (this.$behaviours[filter[i]]) {\n ret[filter[i]] = this.$behaviours[filter[i]];\n }\n }\n return ret;\n }\n };\n}).call(Behaviour.prototype);\nexports.Behaviour = Behaviour;\n\n});\n\nace.define(\"ace/token_iterator\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar TokenIterator = /** @class */ (function () {\n function TokenIterator(session, initialRow, initialColumn) {\n this.$session = session;\n this.$row = initialRow;\n this.$rowTokens = session.getTokens(initialRow);\n var token = session.getTokenAt(initialRow, initialColumn);\n this.$tokenIndex = token ? token.index : -1;\n }\n TokenIterator.prototype.stepBackward = function () {\n this.$tokenIndex -= 1;\n while (this.$tokenIndex < 0) {\n this.$row -= 1;\n if (this.$row < 0) {\n this.$row = 0;\n return null;\n }\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = this.$rowTokens.length - 1;\n }\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.stepForward = function () {\n this.$tokenIndex += 1;\n var rowCount;\n while (this.$tokenIndex >= this.$rowTokens.length) {\n this.$row += 1;\n if (!rowCount)\n rowCount = this.$session.getLength();\n if (this.$row >= rowCount) {\n this.$row = rowCount - 1;\n return null;\n }\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = 0;\n }\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.getCurrentToken = function () {\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.getCurrentTokenRow = function () {\n return this.$row;\n };\n TokenIterator.prototype.getCurrentTokenColumn = function () {\n var rowTokens = this.$rowTokens;\n var tokenIndex = this.$tokenIndex;\n var column = rowTokens[tokenIndex].start;\n if (column !== undefined)\n return column;\n column = 0;\n while (tokenIndex > 0) {\n tokenIndex -= 1;\n column += rowTokens[tokenIndex].value.length;\n }\n return column;\n };\n TokenIterator.prototype.getCurrentTokenPosition = function () {\n return { row: this.$row, column: this.getCurrentTokenColumn() };\n };\n TokenIterator.prototype.getCurrentTokenRange = function () {\n var token = this.$rowTokens[this.$tokenIndex];\n var column = this.getCurrentTokenColumn();\n return new Range(this.$row, column, this.$row, column + token.value.length);\n };\n return TokenIterator;\n}());\nexports.TokenIterator = TokenIterator;\n\n});\n\nace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\nvar SAFE_INSERT_IN_TOKENS = [\"text\", \"paren.rparen\", \"rparen\", \"paren\", \"punctuation.operator\"];\nvar SAFE_INSERT_BEFORE_TOKENS = [\"text\", \"paren.rparen\", \"rparen\", \"paren\", \"punctuation.operator\", \"comment\"];\nvar context;\nvar contextCache = {};\nvar defaultQuotes = { '\"': '\"', \"'\": \"'\" };\nvar initContext = function (editor) {\n var id = -1;\n if (editor.multiSelect) {\n id = editor.selection.index;\n if (contextCache.rangeCount != editor.multiSelect.rangeCount)\n contextCache = { rangeCount: editor.multiSelect.rangeCount };\n }\n if (contextCache[id])\n return context = contextCache[id];\n context = contextCache[id] = {\n autoInsertedBrackets: 0,\n autoInsertedRow: -1,\n autoInsertedLineEnd: \"\",\n maybeInsertedBrackets: 0,\n maybeInsertedRow: -1,\n maybeInsertedLineStart: \"\",\n maybeInsertedLineEnd: \"\"\n };\n};\nvar getWrapped = function (selection, selected, opening, closing) {\n var rowDiff = selection.end.row - selection.start.row;\n return {\n text: opening + selected + closing,\n selection: [\n 0,\n selection.start.column + 1,\n rowDiff,\n selection.end.column + (rowDiff ? 0 : 1)\n ]\n };\n};\nvar CstyleBehaviour = function (options) {\n options = options || {};\n this.add(\"braces\", \"insertion\", function (state, action, editor, session, text) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (text == '{') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"{\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '{', '}');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n if (/[\\]\\}\\)]/.test(line[cursor.column]) || editor.inMultiSelectMode || options.braces) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"}\");\n return {\n text: '{}',\n selection: [1, 1]\n };\n }\n else {\n CstyleBehaviour.recordMaybeInsert(editor, session, \"{\");\n return {\n text: '{',\n selection: [1, 1]\n };\n }\n }\n }\n else if (text == '}') {\n initContext(editor);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == '}') {\n var matching = session.$findOpeningBracket('}', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n else if (text == \"\\n\" || text == \"\\r\\n\") {\n initContext(editor);\n var closing = \"\";\n if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {\n closing = lang.stringRepeat(\"}\", context.maybeInsertedBrackets);\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === '}') {\n var openBracePos = session.findMatchingBracket({ row: cursor.row, column: cursor.column + 1 }, '}');\n if (!openBracePos)\n return null;\n var next_indent = this.$getIndent(session.getLine(openBracePos.row));\n }\n else if (closing) {\n var next_indent = this.$getIndent(line);\n }\n else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n return;\n }\n var indent = next_indent + session.getTabString();\n return {\n text: '\\n' + indent + '\\n' + next_indent + closing,\n selection: [1, indent.length, 1, indent.length]\n };\n }\n else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n });\n this.add(\"braces\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '{') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar == '}') {\n range.end.column++;\n return range;\n }\n else {\n context.maybeInsertedBrackets--;\n }\n }\n });\n this.add(\"parens\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '(') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '(', ')');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \")\");\n return {\n text: '()',\n selection: [1, 1]\n };\n }\n }\n else if (text == ')') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ')') {\n var matching = session.$findOpeningBracket(')', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"parens\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '(') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ')') {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"brackets\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '[') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '[', ']');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"]\");\n return {\n text: '[]',\n selection: [1, 1]\n };\n }\n }\n else if (text == ']') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ']') {\n var matching = session.$findOpeningBracket(']', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"brackets\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '[') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ']') {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n var quotes = session.$mode.$quotes || defaultQuotes;\n if (text.length == 1 && quotes[text]) {\n if (this.lineCommentStart && this.lineCommentStart.indexOf(text) != -1)\n return;\n initContext(editor);\n var quote = text;\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && (selected.length != 1 || !quotes[selected]) && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, quote, quote);\n }\n else if (!selected) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var leftChar = line.substring(cursor.column - 1, cursor.column);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n var token = session.getTokenAt(cursor.row, cursor.column);\n var rightToken = session.getTokenAt(cursor.row, cursor.column + 1);\n if (leftChar == \"\\\\\" && token && /escape/.test(token.type))\n return null;\n var stringBefore = token && /string|escape/.test(token.type);\n var stringAfter = !rightToken || /string|escape/.test(rightToken.type);\n var pair;\n if (rightChar == quote) {\n pair = stringBefore !== stringAfter;\n if (pair && /string\\.end/.test(rightToken.type))\n pair = false;\n }\n else {\n if (stringBefore && !stringAfter)\n return null; // wrap string with different quote\n if (stringBefore && stringAfter)\n return null; // do not pair quotes inside strings\n var wordRe = session.$mode.tokenRe;\n wordRe.lastIndex = 0;\n var isWordBefore = wordRe.test(leftChar);\n wordRe.lastIndex = 0;\n var isWordAfter = wordRe.test(rightChar);\n var pairQuotesAfter = session.$mode.$pairQuotesAfter;\n var shouldPairQuotes = pairQuotesAfter && pairQuotesAfter[quote] && pairQuotesAfter[quote].test(leftChar);\n if ((!shouldPairQuotes && isWordBefore) || isWordAfter)\n return null; // before or after alphanumeric\n if (rightChar && !/[\\s;,.})\\]\\\\]/.test(rightChar))\n return null; // there is rightChar and it isn't closing\n var charBefore = line[cursor.column - 2];\n if (leftChar == quote && (charBefore == quote || wordRe.test(charBefore)))\n return null;\n pair = true;\n }\n return {\n text: pair ? quote + quote : \"\",\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"string_dquotes\", \"deletion\", function (state, action, editor, session, range) {\n var quotes = session.$mode.$quotes || defaultQuotes;\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && quotes.hasOwnProperty(selected)) {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n if (options.closeDocComment !== false) {\n this.add(\"doc comment end\", \"insertion\", function (state, action, editor, session, text) {\n if (state === \"doc-start\" && (text === \"\\n\" || text === \"\\r\\n\") && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var nextLine = session.doc.getLine(cursor.row + 1);\n var indent = this.$getIndent(line);\n if (/\\s*\\*/.test(nextLine)) {\n if (/^\\s*\\*/.test(line)) {\n return {\n text: text + indent + \"* \",\n selection: [1, 3 + indent.length, 1, 3 + indent.length]\n };\n }\n else {\n return {\n text: text + indent + \" * \",\n selection: [1, 3 + indent.length, 1, 3 + indent.length]\n };\n }\n }\n if (/\\/\\*\\*/.test(line.substring(0, cursor.column))) {\n return {\n text: text + indent + \" * \" + text + \" \" + indent + \"*/\",\n selection: [1, 4 + indent.length, 1, 4 + indent.length]\n };\n }\n }\n });\n }\n};\nCstyleBehaviour.isSaneInsertion = function (editor, session) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n if (!this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS)) {\n if (/[)}\\]]/.test(editor.session.getLine(cursor.row)[cursor.column]))\n return true;\n var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);\n if (!this.$matchTokenType(iterator2.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS))\n return false;\n }\n iterator.stepForward();\n return iterator.getCurrentTokenRow() !== cursor.row ||\n this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_BEFORE_TOKENS);\n};\nCstyleBehaviour.$matchTokenType = function (token, types) {\n return types.indexOf(token.type || token) > -1;\n};\nCstyleBehaviour.recordAutoInsert = function (editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))\n context.autoInsertedBrackets = 0;\n context.autoInsertedRow = cursor.row;\n context.autoInsertedLineEnd = bracket + line.substr(cursor.column);\n context.autoInsertedBrackets++;\n};\nCstyleBehaviour.recordMaybeInsert = function (editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isMaybeInsertedClosing(cursor, line))\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = cursor.row;\n context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;\n context.maybeInsertedLineEnd = line.substr(cursor.column);\n context.maybeInsertedBrackets++;\n};\nCstyleBehaviour.isAutoInsertedClosing = function (cursor, line, bracket) {\n return context.autoInsertedBrackets > 0 &&\n cursor.row === context.autoInsertedRow &&\n bracket === context.autoInsertedLineEnd[0] &&\n line.substr(cursor.column) === context.autoInsertedLineEnd;\n};\nCstyleBehaviour.isMaybeInsertedClosing = function (cursor, line) {\n return context.maybeInsertedBrackets > 0 &&\n cursor.row === context.maybeInsertedRow &&\n line.substr(cursor.column) === context.maybeInsertedLineEnd &&\n line.substr(0, cursor.column) == context.maybeInsertedLineStart;\n};\nCstyleBehaviour.popAutoInsertedClosing = function () {\n context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);\n context.autoInsertedBrackets--;\n};\nCstyleBehaviour.clearMaybeInsertedClosing = function () {\n if (context) {\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = -1;\n }\n};\noop.inherits(CstyleBehaviour, Behaviour);\nexports.CstyleBehaviour = CstyleBehaviour;\n\n});\n\nace.define(\"ace/unicode\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar wordChars = [48, 9, 8, 25, 5, 0, 2, 25, 48, 0, 11, 0, 5, 0, 6, 22, 2, 30, 2, 457, 5, 11, 15, 4, 8, 0, 2, 0, 18, 116, 2, 1, 3, 3, 9, 0, 2, 2, 2, 0, 2, 19, 2, 82, 2, 138, 2, 4, 3, 155, 12, 37, 3, 0, 8, 38, 10, 44, 2, 0, 2, 1, 2, 1, 2, 0, 9, 26, 6, 2, 30, 10, 7, 61, 2, 9, 5, 101, 2, 7, 3, 9, 2, 18, 3, 0, 17, 58, 3, 100, 15, 53, 5, 0, 6, 45, 211, 57, 3, 18, 2, 5, 3, 11, 3, 9, 2, 1, 7, 6, 2, 2, 2, 7, 3, 1, 3, 21, 2, 6, 2, 0, 4, 3, 3, 8, 3, 1, 3, 3, 9, 0, 5, 1, 2, 4, 3, 11, 16, 2, 2, 5, 5, 1, 3, 21, 2, 6, 2, 1, 2, 1, 2, 1, 3, 0, 2, 4, 5, 1, 3, 2, 4, 0, 8, 3, 2, 0, 8, 15, 12, 2, 2, 8, 2, 2, 2, 21, 2, 6, 2, 1, 2, 4, 3, 9, 2, 2, 2, 2, 3, 0, 16, 3, 3, 9, 18, 2, 2, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 3, 8, 3, 1, 3, 2, 9, 1, 5, 1, 2, 4, 3, 9, 2, 0, 17, 1, 2, 5, 4, 2, 2, 3, 4, 1, 2, 0, 2, 1, 4, 1, 4, 2, 4, 11, 5, 4, 4, 2, 2, 3, 3, 0, 7, 0, 15, 9, 18, 2, 2, 7, 2, 2, 2, 22, 2, 9, 2, 4, 4, 7, 2, 2, 2, 3, 8, 1, 2, 1, 7, 3, 3, 9, 19, 1, 2, 7, 2, 2, 2, 22, 2, 9, 2, 4, 3, 8, 2, 2, 2, 3, 8, 1, 8, 0, 2, 3, 3, 9, 19, 1, 2, 7, 2, 2, 2, 22, 2, 15, 4, 7, 2, 2, 2, 3, 10, 0, 9, 3, 3, 9, 11, 5, 3, 1, 2, 17, 4, 23, 2, 8, 2, 0, 3, 6, 4, 0, 5, 5, 2, 0, 2, 7, 19, 1, 14, 57, 6, 14, 2, 9, 40, 1, 2, 0, 3, 1, 2, 0, 3, 0, 7, 3, 2, 6, 2, 2, 2, 0, 2, 0, 3, 1, 2, 12, 2, 2, 3, 4, 2, 0, 2, 5, 3, 9, 3, 1, 35, 0, 24, 1, 7, 9, 12, 0, 2, 0, 2, 0, 5, 9, 2, 35, 5, 19, 2, 5, 5, 7, 2, 35, 10, 0, 58, 73, 7, 77, 3, 37, 11, 42, 2, 0, 4, 328, 2, 3, 3, 6, 2, 0, 2, 3, 3, 40, 2, 3, 3, 32, 2, 3, 3, 6, 2, 0, 2, 3, 3, 14, 2, 56, 2, 3, 3, 66, 5, 0, 33, 15, 17, 84, 13, 619, 3, 16, 2, 25, 6, 74, 22, 12, 2, 6, 12, 20, 12, 19, 13, 12, 2, 2, 2, 1, 13, 51, 3, 29, 4, 0, 5, 1, 3, 9, 34, 2, 3, 9, 7, 87, 9, 42, 6, 69, 11, 28, 4, 11, 5, 11, 11, 39, 3, 4, 12, 43, 5, 25, 7, 10, 38, 27, 5, 62, 2, 28, 3, 10, 7, 9, 14, 0, 89, 75, 5, 9, 18, 8, 13, 42, 4, 11, 71, 55, 9, 9, 4, 48, 83, 2, 2, 30, 14, 230, 23, 280, 3, 5, 3, 37, 3, 5, 3, 7, 2, 0, 2, 0, 2, 0, 2, 30, 3, 52, 2, 6, 2, 0, 4, 2, 2, 6, 4, 3, 3, 5, 5, 12, 6, 2, 2, 6, 67, 1, 20, 0, 29, 0, 14, 0, 17, 4, 60, 12, 5, 0, 4, 11, 18, 0, 5, 0, 3, 9, 2, 0, 4, 4, 7, 0, 2, 0, 2, 0, 2, 3, 2, 10, 3, 3, 6, 4, 5, 0, 53, 1, 2684, 46, 2, 46, 2, 132, 7, 6, 15, 37, 11, 53, 10, 0, 17, 22, 10, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 31, 48, 0, 470, 1, 36, 5, 2, 4, 6, 1, 5, 85, 3, 1, 3, 2, 2, 89, 2, 3, 6, 40, 4, 93, 18, 23, 57, 15, 513, 6581, 75, 20939, 53, 1164, 68, 45, 3, 268, 4, 27, 21, 31, 3, 13, 13, 1, 2, 24, 9, 69, 11, 1, 38, 8, 3, 102, 3, 1, 111, 44, 25, 51, 13, 68, 12, 9, 7, 23, 4, 0, 5, 45, 3, 35, 13, 28, 4, 64, 15, 10, 39, 54, 10, 13, 3, 9, 7, 22, 4, 1, 5, 66, 25, 2, 227, 42, 2, 1, 3, 9, 7, 11171, 13, 22, 5, 48, 8453, 301, 3, 61, 3, 105, 39, 6, 13, 4, 6, 11, 2, 12, 2, 4, 2, 0, 2, 1, 2, 1, 2, 107, 34, 362, 19, 63, 3, 53, 41, 11, 5, 15, 17, 6, 13, 1, 25, 2, 33, 4, 2, 134, 20, 9, 8, 25, 5, 0, 2, 25, 12, 88, 4, 5, 3, 5, 3, 5, 3, 2];\nvar code = 0;\nvar str = [];\nfor (var i = 0; i < wordChars.length; i += 2) {\n str.push(code += wordChars[i]);\n if (wordChars[i + 1])\n str.push(45, code += wordChars[i + 1]);\n}\nexports.wordChars = String.fromCharCode.apply(null, str);\n\n});\n\nace.define(\"ace/mode/text\",[\"require\",\"exports\",\"module\",\"ace/config\",\"ace/tokenizer\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/unicode\",\"ace/lib/lang\",\"ace/token_iterator\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar config = require(\"../config\");\nvar Tokenizer = require(\"../tokenizer\").Tokenizer;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar unicode = require(\"../unicode\");\nvar lang = require(\"../lib/lang\");\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar Range = require(\"../range\").Range;\nvar Mode = function () {\n this.HighlightRules = TextHighlightRules;\n};\n(function () {\n this.$defaultBehaviour = new CstyleBehaviour();\n this.tokenRe = new RegExp(\"^[\" + unicode.wordChars + \"\\\\$_]+\", \"g\");\n this.nonTokenRe = new RegExp(\"^(?:[^\" + unicode.wordChars + \"\\\\$_]|\\\\s])+\", \"g\");\n this.getTokenizer = function () {\n if (!this.$tokenizer) {\n this.$highlightRules = this.$highlightRules || new this.HighlightRules(this.$highlightRuleConfig);\n this.$tokenizer = new Tokenizer(this.$highlightRules.getRules());\n }\n return this.$tokenizer;\n };\n this.lineCommentStart = \"\";\n this.blockComment = \"\";\n this.toggleCommentLines = function (state, session, startRow, endRow) {\n var doc = session.doc;\n var ignoreBlankLines = true;\n var shouldRemove = true;\n var minIndent = Infinity;\n var tabSize = session.getTabSize();\n var insertAtTabStop = false;\n if (!this.lineCommentStart) {\n if (!this.blockComment)\n return false;\n var lineCommentStart = this.blockComment.start;\n var lineCommentEnd = this.blockComment.end;\n var regexpStart = new RegExp(\"^(\\\\s*)(?:\" + lang.escapeRegExp(lineCommentStart) + \")\");\n var regexpEnd = new RegExp(\"(?:\" + lang.escapeRegExp(lineCommentEnd) + \")\\\\s*$\");\n var comment = function (line, i) {\n if (testRemove(line, i))\n return;\n if (!ignoreBlankLines || /\\S/.test(line)) {\n doc.insertInLine({ row: i, column: line.length }, lineCommentEnd);\n doc.insertInLine({ row: i, column: minIndent }, lineCommentStart);\n }\n };\n var uncomment = function (line, i) {\n var m;\n if (m = line.match(regexpEnd))\n doc.removeInLine(i, line.length - m[0].length, line.length);\n if (m = line.match(regexpStart))\n doc.removeInLine(i, m[1].length, m[0].length);\n };\n var testRemove = function (line, row) {\n if (regexpStart.test(line))\n return true;\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n if (tokens[i].type === \"comment\")\n return true;\n }\n };\n }\n else {\n if (Array.isArray(this.lineCommentStart)) {\n var regexpStart = this.lineCommentStart.map(lang.escapeRegExp).join(\"|\");\n var lineCommentStart = this.lineCommentStart[0];\n }\n else {\n var regexpStart = lang.escapeRegExp(this.lineCommentStart);\n var lineCommentStart = this.lineCommentStart;\n }\n regexpStart = new RegExp(\"^(\\\\s*)(?:\" + regexpStart + \") ?\");\n insertAtTabStop = session.getUseSoftTabs();\n var uncomment = function (line, i) {\n var m = line.match(regexpStart);\n if (!m)\n return;\n var start = m[1].length, end = m[0].length;\n if (!shouldInsertSpace(line, start, end) && m[0][end - 1] == \" \")\n end--;\n doc.removeInLine(i, start, end);\n };\n var commentWithSpace = lineCommentStart + \" \";\n var comment = function (line, i) {\n if (!ignoreBlankLines || /\\S/.test(line)) {\n if (shouldInsertSpace(line, minIndent, minIndent))\n doc.insertInLine({ row: i, column: minIndent }, commentWithSpace);\n else\n doc.insertInLine({ row: i, column: minIndent }, lineCommentStart);\n }\n };\n var testRemove = function (line, i) {\n return regexpStart.test(line);\n };\n var shouldInsertSpace = function (line, before, after) {\n var spaces = 0;\n while (before-- && line.charAt(before) == \" \")\n spaces++;\n if (spaces % tabSize != 0)\n return false;\n var spaces = 0;\n while (line.charAt(after++) == \" \")\n spaces++;\n if (tabSize > 2)\n return spaces % tabSize != tabSize - 1;\n else\n return spaces % tabSize == 0;\n };\n }\n function iter(fun) {\n for (var i = startRow; i <= endRow; i++)\n fun(doc.getLine(i), i);\n }\n var minEmptyLength = Infinity;\n iter(function (line, i) {\n var indent = line.search(/\\S/);\n if (indent !== -1) {\n if (indent < minIndent)\n minIndent = indent;\n if (shouldRemove && !testRemove(line, i))\n shouldRemove = false;\n }\n else if (minEmptyLength > line.length) {\n minEmptyLength = line.length;\n }\n });\n if (minIndent == Infinity) {\n minIndent = minEmptyLength;\n ignoreBlankLines = false;\n shouldRemove = false;\n }\n if (insertAtTabStop && minIndent % tabSize != 0)\n minIndent = Math.floor(minIndent / tabSize) * tabSize;\n iter(shouldRemove ? uncomment : comment);\n };\n this.toggleBlockComment = function (state, session, range, cursor) {\n var comment = this.blockComment;\n if (!comment)\n return;\n if (!comment.start && comment[0])\n comment = comment[0];\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n var sel = session.selection;\n var initialRange = session.selection.toOrientedRange();\n var startRow, colDiff;\n if (token && /comment/.test(token.type)) {\n var startRange, endRange;\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.start);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n startRange = new Range(row, column, row, column + comment.start.length);\n break;\n }\n token = iterator.stepBackward();\n }\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.end);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n endRange = new Range(row, column, row, column + comment.end.length);\n break;\n }\n token = iterator.stepForward();\n }\n if (endRange)\n session.remove(endRange);\n if (startRange) {\n session.remove(startRange);\n startRow = startRange.start.row;\n colDiff = -comment.start.length;\n }\n }\n else {\n colDiff = comment.start.length;\n startRow = range.start.row;\n session.insert(range.end, comment.end);\n session.insert(range.start, comment.start);\n }\n if (initialRange.start.row == startRow)\n initialRange.start.column += colDiff;\n if (initialRange.end.row == startRow)\n initialRange.end.column += colDiff;\n session.selection.fromOrientedRange(initialRange);\n };\n this.getNextLineIndent = function (state, line, tab) {\n return this.$getIndent(line);\n };\n this.checkOutdent = function (state, line, input) {\n return false;\n };\n this.autoOutdent = function (state, doc, row) {\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n this.createWorker = function (session) {\n return null;\n };\n this.createModeDelegates = function (mapping) {\n this.$embeds = [];\n this.$modes = {};\n for (var i in mapping) {\n if (mapping[i]) {\n var Mode = mapping[i];\n var id = Mode.prototype.$id;\n var mode = config.$modes[id];\n if (!mode)\n config.$modes[id] = mode = new Mode();\n if (!config.$modes[i])\n config.$modes[i] = mode;\n this.$embeds.push(i);\n this.$modes[i] = mode;\n }\n }\n var delegations = [\"toggleBlockComment\", \"toggleCommentLines\", \"getNextLineIndent\",\n \"checkOutdent\", \"autoOutdent\", \"transformAction\", \"getCompletions\"];\n for (var i = 0; i < delegations.length; i++) {\n (function (scope) {\n var functionName = delegations[i];\n var defaultHandler = scope[functionName];\n scope[delegations[i]] = function () {\n return this.$delegator(functionName, arguments, defaultHandler);\n };\n }(this));\n }\n };\n this.$delegator = function (method, args, defaultHandler) {\n var state = args[0] || \"start\";\n if (typeof state != \"string\") {\n if (Array.isArray(state[2])) {\n var language = state[2][state[2].length - 1];\n var mode = this.$modes[language];\n if (mode)\n return mode[method].apply(mode, [state[1]].concat([].slice.call(args, 1)));\n }\n state = state[0] || \"start\";\n }\n for (var i = 0; i < this.$embeds.length; i++) {\n if (!this.$modes[this.$embeds[i]])\n continue;\n var split = state.split(this.$embeds[i]);\n if (!split[0] && split[1]) {\n args[0] = split[1];\n var mode = this.$modes[this.$embeds[i]];\n return mode[method].apply(mode, args);\n }\n }\n var ret = defaultHandler.apply(this, args);\n return defaultHandler ? ret : undefined;\n };\n this.transformAction = function (state, action, editor, session, param) {\n if (this.$behaviour) {\n var behaviours = this.$behaviour.getBehaviours();\n for (var key in behaviours) {\n if (behaviours[key][action]) {\n var ret = behaviours[key][action].apply(this, arguments);\n if (ret) {\n return ret;\n }\n }\n }\n }\n };\n this.getKeywords = function (append) {\n if (!this.completionKeywords) {\n var rules = this.$tokenizer.rules;\n var completionKeywords = [];\n for (var rule in rules) {\n var ruleItr = rules[rule];\n for (var r = 0, l = ruleItr.length; r < l; r++) {\n if (typeof ruleItr[r].token === \"string\") {\n if (/keyword|support|storage/.test(ruleItr[r].token))\n completionKeywords.push(ruleItr[r].regex);\n }\n else if (typeof ruleItr[r].token === \"object\") {\n for (var a = 0, aLength = ruleItr[r].token.length; a < aLength; a++) {\n if (/keyword|support|storage/.test(ruleItr[r].token[a])) {\n var rule = ruleItr[r].regex.match(/\\(.+?\\)/g)[a];\n completionKeywords.push(rule.substr(1, rule.length - 2));\n }\n }\n }\n }\n }\n this.completionKeywords = completionKeywords;\n }\n if (!append)\n return this.$keywordList;\n return completionKeywords.concat(this.$keywordList || []);\n };\n this.$createKeywordList = function () {\n if (!this.$highlightRules)\n this.getTokenizer();\n return this.$keywordList = this.$highlightRules.$keywordList || [];\n };\n this.getCompletions = function (state, session, pos, prefix) {\n var keywords = this.$keywordList || this.$createKeywordList();\n return keywords.map(function (word) {\n return {\n name: word,\n value: word,\n score: 0,\n meta: \"keyword\"\n };\n });\n };\n this.$id = \"ace/mode/text\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n});\n\nace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nfunction throwDeltaError(delta, errorText) {\n console.log(\"Invalid Delta:\", delta);\n throw \"Invalid Delta: \" + errorText;\n}\nfunction positionInDocument(docLines, position) {\n return position.row >= 0 && position.row < docLines.length &&\n position.column >= 0 && position.column <= docLines[position.row].length;\n}\nfunction validateDelta(docLines, delta) {\n if (delta.action != \"insert\" && delta.action != \"remove\")\n throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n if (!(delta.lines instanceof Array))\n throwDeltaError(delta, \"delta.lines must be an Array\");\n if (!delta.start || !delta.end)\n throwDeltaError(delta, \"delta.start/end must be an present\");\n var start = delta.start;\n if (!positionInDocument(docLines, delta.start))\n throwDeltaError(delta, \"delta.start must be contained in document\");\n var end = delta.end;\n if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n var numRangeRows = end.row - start.row;\n var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n throwDeltaError(delta, \"delta.range must match delta lines\");\n}\nexports.applyDelta = function (docLines, delta, doNotValidate) {\n var row = delta.start.row;\n var startColumn = delta.start.column;\n var line = docLines[row] || \"\";\n switch (delta.action) {\n case \"insert\":\n var lines = delta.lines;\n if (lines.length === 1) {\n docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n }\n else {\n var args = [row, 1].concat(delta.lines);\n docLines.splice.apply(docLines, args);\n docLines[row] = line.substring(0, startColumn) + docLines[row];\n docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n }\n break;\n case \"remove\":\n var endColumn = delta.end.column;\n var endRow = delta.end.row;\n if (row === endRow) {\n docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n }\n else {\n docLines.splice(row, endRow - row + 1, line.substring(0, startColumn) + docLines[endRow].substring(endColumn));\n }\n break;\n }\n};\n\n});\n\nace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Anchor = /** @class */ (function () {\n function Anchor(doc, row, column) {\n this.$onChange = this.onChange.bind(this);\n this.attach(doc);\n if (typeof column == \"undefined\")\n this.setPosition(row.row, row.column);\n else\n this.setPosition(row, column);\n }\n Anchor.prototype.getPosition = function () {\n return this.$clipPositionToDocument(this.row, this.column);\n };\n Anchor.prototype.getDocument = function () {\n return this.document;\n };\n Anchor.prototype.onChange = function (delta) {\n if (delta.start.row == delta.end.row && delta.start.row != this.row)\n return;\n if (delta.start.row > this.row)\n return;\n var point = $getTransformedPoint(delta, { row: this.row, column: this.column }, this.$insertRight);\n this.setPosition(point.row, point.column, true);\n };\n Anchor.prototype.setPosition = function (row, column, noClip) {\n var pos;\n if (noClip) {\n pos = {\n row: row,\n column: column\n };\n }\n else {\n pos = this.$clipPositionToDocument(row, column);\n }\n if (this.row == pos.row && this.column == pos.column)\n return;\n var old = {\n row: this.row,\n column: this.column\n };\n this.row = pos.row;\n this.column = pos.column;\n this._signal(\"change\", {\n old: old,\n value: pos\n });\n };\n Anchor.prototype.detach = function () {\n this.document.off(\"change\", this.$onChange);\n };\n Anchor.prototype.attach = function (doc) {\n this.document = doc || this.document;\n this.document.on(\"change\", this.$onChange);\n };\n Anchor.prototype.$clipPositionToDocument = function (row, column) {\n var pos = {};\n if (row >= this.document.getLength()) {\n pos.row = Math.max(0, this.document.getLength() - 1);\n pos.column = this.document.getLine(pos.row).length;\n }\n else if (row < 0) {\n pos.row = 0;\n pos.column = 0;\n }\n else {\n pos.row = row;\n pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n }\n if (column < 0)\n pos.column = 0;\n return pos;\n };\n return Anchor;\n}());\nAnchor.prototype.$insertRight = false;\noop.implement(Anchor.prototype, EventEmitter);\nfunction $pointsInOrder(point1, point2, equalPointsInOrder) {\n var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n}\nfunction $getTransformedPoint(delta, point, moveIfEqual) {\n var deltaIsInsert = delta.action == \"insert\";\n var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row);\n var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n var deltaStart = delta.start;\n var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n return {\n row: point.row,\n column: point.column\n };\n }\n if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n return {\n row: point.row + deltaRowShift,\n column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n };\n }\n return {\n row: deltaStart.row,\n column: deltaStart.column\n };\n}\nexports.Anchor = Anchor;\n\n});\n\nace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar applyDelta = require(\"./apply_delta\").applyDelta;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Anchor = require(\"./anchor\").Anchor;\nvar Document = /** @class */ (function () {\n function Document(textOrLines) {\n this.$lines = [\"\"];\n if (textOrLines.length === 0) {\n this.$lines = [\"\"];\n }\n else if (Array.isArray(textOrLines)) {\n this.insertMergedLines({ row: 0, column: 0 }, textOrLines);\n }\n else {\n this.insert({ row: 0, column: 0 }, textOrLines);\n }\n }\n Document.prototype.setValue = function (text) {\n var len = this.getLength() - 1;\n this.remove(new Range(0, 0, len, this.getLine(len).length));\n this.insert({ row: 0, column: 0 }, text || \"\");\n };\n Document.prototype.getValue = function () {\n return this.getAllLines().join(this.getNewLineCharacter());\n };\n Document.prototype.createAnchor = function (row, column) {\n return new Anchor(this, row, column);\n };\n Document.prototype.$detectNewLine = function (text) {\n var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n this.$autoNewLine = match ? match[1] : \"\\n\";\n this._signal(\"changeNewLineMode\");\n };\n Document.prototype.getNewLineCharacter = function () {\n switch (this.$newLineMode) {\n case \"windows\":\n return \"\\r\\n\";\n case \"unix\":\n return \"\\n\";\n default:\n return this.$autoNewLine || \"\\n\";\n }\n };\n Document.prototype.setNewLineMode = function (newLineMode) {\n if (this.$newLineMode === newLineMode)\n return;\n this.$newLineMode = newLineMode;\n this._signal(\"changeNewLineMode\");\n };\n Document.prototype.getNewLineMode = function () {\n return this.$newLineMode;\n };\n Document.prototype.isNewLine = function (text) {\n return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n };\n Document.prototype.getLine = function (row) {\n return this.$lines[row] || \"\";\n };\n Document.prototype.getLines = function (firstRow, lastRow) {\n return this.$lines.slice(firstRow, lastRow + 1);\n };\n Document.prototype.getAllLines = function () {\n return this.getLines(0, this.getLength());\n };\n Document.prototype.getLength = function () {\n return this.$lines.length;\n };\n Document.prototype.getTextRange = function (range) {\n return this.getLinesForRange(range).join(this.getNewLineCharacter());\n };\n Document.prototype.getLinesForRange = function (range) {\n var lines;\n if (range.start.row === range.end.row) {\n lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n }\n else {\n lines = this.getLines(range.start.row, range.end.row);\n lines[0] = (lines[0] || \"\").substring(range.start.column);\n var l = lines.length - 1;\n if (range.end.row - range.start.row == l)\n lines[l] = lines[l].substring(0, range.end.column);\n }\n return lines;\n };\n Document.prototype.insertLines = function (row, lines) {\n console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n return this.insertFullLines(row, lines);\n };\n Document.prototype.removeLines = function (firstRow, lastRow) {\n console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n return this.removeFullLines(firstRow, lastRow);\n };\n Document.prototype.insertNewLine = function (position) {\n console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\");\n return this.insertMergedLines(position, [\"\", \"\"]);\n };\n Document.prototype.insert = function (position, text) {\n if (this.getLength() <= 1)\n this.$detectNewLine(text);\n return this.insertMergedLines(position, this.$split(text));\n };\n Document.prototype.insertInLine = function (position, text) {\n var start = this.clippedPos(position.row, position.column);\n var end = this.pos(position.row, position.column + text.length);\n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: [text]\n }, true);\n return this.clonePos(end);\n };\n Document.prototype.clippedPos = function (row, column) {\n var length = this.getLength();\n if (row === undefined) {\n row = length;\n }\n else if (row < 0) {\n row = 0;\n }\n else if (row >= length) {\n row = length - 1;\n column = undefined;\n }\n var line = this.getLine(row);\n if (column == undefined)\n column = line.length;\n column = Math.min(Math.max(column, 0), line.length);\n return { row: row, column: column };\n };\n Document.prototype.clonePos = function (pos) {\n return { row: pos.row, column: pos.column };\n };\n Document.prototype.pos = function (row, column) {\n return { row: row, column: column };\n };\n Document.prototype.$clipPosition = function (position) {\n var length = this.getLength();\n if (position.row >= length) {\n position.row = Math.max(0, length - 1);\n position.column = this.getLine(length - 1).length;\n }\n else {\n position.row = Math.max(0, position.row);\n position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n }\n return position;\n };\n Document.prototype.insertFullLines = function (row, lines) {\n row = Math.min(Math.max(row, 0), this.getLength());\n var column = 0;\n if (row < this.getLength()) {\n lines = lines.concat([\"\"]);\n column = 0;\n }\n else {\n lines = [\"\"].concat(lines);\n row--;\n column = this.$lines[row].length;\n }\n this.insertMergedLines({ row: row, column: column }, lines);\n };\n Document.prototype.insertMergedLines = function (position, lines) {\n var start = this.clippedPos(position.row, position.column);\n var end = {\n row: start.row + lines.length - 1,\n column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n };\n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: lines\n });\n return this.clonePos(end);\n };\n Document.prototype.remove = function (range) {\n var start = this.clippedPos(range.start.row, range.start.column);\n var end = this.clippedPos(range.end.row, range.end.column);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({ start: start, end: end })\n });\n return this.clonePos(start);\n };\n Document.prototype.removeInLine = function (row, startColumn, endColumn) {\n var start = this.clippedPos(row, startColumn);\n var end = this.clippedPos(row, endColumn);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({ start: start, end: end })\n }, true);\n return this.clonePos(start);\n };\n Document.prototype.removeFullLines = function (firstRow, lastRow) {\n firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n lastRow = Math.min(Math.max(0, lastRow), this.getLength() - 1);\n var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n var deleteLastNewLine = lastRow < this.getLength() - 1;\n var startRow = (deleteFirstNewLine ? firstRow - 1 : firstRow);\n var startCol = (deleteFirstNewLine ? this.getLine(startRow).length : 0);\n var endRow = (deleteLastNewLine ? lastRow + 1 : lastRow);\n var endCol = (deleteLastNewLine ? 0 : this.getLine(endRow).length);\n var range = new Range(startRow, startCol, endRow, endCol);\n var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n this.applyDelta({\n start: range.start,\n end: range.end,\n action: \"remove\",\n lines: this.getLinesForRange(range)\n });\n return deletedLines;\n };\n Document.prototype.removeNewLine = function (row) {\n if (row < this.getLength() - 1 && row >= 0) {\n this.applyDelta({\n start: this.pos(row, this.getLine(row).length),\n end: this.pos(row + 1, 0),\n action: \"remove\",\n lines: [\"\", \"\"]\n });\n }\n };\n Document.prototype.replace = function (range, text) {\n if (!(range instanceof Range))\n range = Range.fromPoints(range.start, range.end);\n if (text.length === 0 && range.isEmpty())\n return range.start;\n if (text == this.getTextRange(range))\n return range.end;\n this.remove(range);\n var end;\n if (text) {\n end = this.insert(range.start, text);\n }\n else {\n end = range.start;\n }\n return end;\n };\n Document.prototype.applyDeltas = function (deltas) {\n for (var i = 0; i < deltas.length; i++) {\n this.applyDelta(deltas[i]);\n }\n };\n Document.prototype.revertDeltas = function (deltas) {\n for (var i = deltas.length - 1; i >= 0; i--) {\n this.revertDelta(deltas[i]);\n }\n };\n Document.prototype.applyDelta = function (delta, doNotValidate) {\n var isInsert = delta.action == \"insert\";\n if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n : !Range.comparePoints(delta.start, delta.end)) {\n return;\n }\n if (isInsert && delta.lines.length > 20000) {\n this.$splitAndapplyLargeDelta(delta, 20000);\n }\n else {\n applyDelta(this.$lines, delta, doNotValidate);\n this._signal(\"change\", delta);\n }\n };\n Document.prototype.$safeApplyDelta = function (delta) {\n var docLength = this.$lines.length;\n if (delta.action == \"remove\" && delta.start.row < docLength && delta.end.row < docLength\n || delta.action == \"insert\" && delta.start.row <= docLength) {\n this.applyDelta(delta);\n }\n };\n Document.prototype.$splitAndapplyLargeDelta = function (delta, MAX) {\n var lines = delta.lines;\n var l = lines.length - MAX + 1;\n var row = delta.start.row;\n var column = delta.start.column;\n for (var from = 0, to = 0; from < l; from = to) {\n to += MAX - 1;\n var chunk = lines.slice(from, to);\n chunk.push(\"\");\n this.applyDelta({\n start: this.pos(row + from, column),\n end: this.pos(row + to, column = 0),\n action: delta.action,\n lines: chunk\n }, true);\n }\n delta.lines = lines.slice(from);\n delta.start.row = row + from;\n delta.start.column = column;\n this.applyDelta(delta, true);\n };\n Document.prototype.revertDelta = function (delta) {\n this.$safeApplyDelta({\n start: this.clonePos(delta.start),\n end: this.clonePos(delta.end),\n action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n lines: delta.lines.slice()\n });\n };\n Document.prototype.indexToPosition = function (index, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n for (var i = startRow || 0, l = lines.length; i < l; i++) {\n index -= lines[i].length + newlineLength;\n if (index < 0)\n return { row: i, column: index + lines[i].length + newlineLength };\n }\n return { row: l - 1, column: index + lines[l - 1].length + newlineLength };\n };\n Document.prototype.positionToIndex = function (pos, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n var index = 0;\n var row = Math.min(pos.row, lines.length);\n for (var i = startRow || 0; i < row; ++i)\n index += lines[i].length + newlineLength;\n return index + pos.column;\n };\n Document.prototype.$split = function (text) {\n return text.split(/\\r\\n|\\r|\\n/);\n };\n return Document;\n}());\nDocument.prototype.$autoNewLine = \"\";\nDocument.prototype.$newLineMode = \"auto\";\noop.implement(Document.prototype, EventEmitter);\nexports.Document = Document;\n\n});\n\nace.define(\"ace/background_tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar BackgroundTokenizer = /** @class */ (function () {\n function BackgroundTokenizer(tokenizer, editor) {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.tokenizer = tokenizer;\n var self = this;\n this.$worker = function () {\n if (!self.running) {\n return;\n }\n var workerStart = new Date();\n var currentLine = self.currentLine;\n var endLine = -1;\n var doc = self.doc;\n var startLine = currentLine;\n while (self.lines[currentLine])\n currentLine++;\n var len = doc.getLength();\n var processedLines = 0;\n self.running = false;\n while (currentLine < len) {\n self.$tokenizeRow(currentLine);\n endLine = currentLine;\n do {\n currentLine++;\n } while (self.lines[currentLine]);\n processedLines++;\n if ((processedLines % 5 === 0) && (new Date() - workerStart) > 20) {\n self.running = setTimeout(self.$worker, 20);\n break;\n }\n }\n self.currentLine = currentLine;\n if (endLine == -1)\n endLine = currentLine;\n if (startLine <= endLine)\n self.fireUpdateEvent(startLine, endLine);\n };\n }\n BackgroundTokenizer.prototype.setTokenizer = function (tokenizer) {\n this.tokenizer = tokenizer;\n this.lines = [];\n this.states = [];\n this.start(0);\n };\n BackgroundTokenizer.prototype.setDocument = function (doc) {\n this.doc = doc;\n this.lines = [];\n this.states = [];\n this.stop();\n };\n BackgroundTokenizer.prototype.fireUpdateEvent = function (firstRow, lastRow) {\n var data = {\n first: firstRow,\n last: lastRow\n };\n this._signal(\"update\", { data: data });\n };\n BackgroundTokenizer.prototype.start = function (startRow) {\n this.currentLine = Math.min(startRow || 0, this.currentLine, this.doc.getLength());\n this.lines.splice(this.currentLine, this.lines.length);\n this.states.splice(this.currentLine, this.states.length);\n this.stop();\n this.running = setTimeout(this.$worker, 700);\n };\n BackgroundTokenizer.prototype.scheduleStart = function () {\n if (!this.running)\n this.running = setTimeout(this.$worker, 700);\n };\n BackgroundTokenizer.prototype.$updateOnChange = function (delta) {\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n if (len === 0) {\n this.lines[startRow] = null;\n }\n else if (delta.action == \"remove\") {\n this.lines.splice(startRow, len + 1, null);\n this.states.splice(startRow, len + 1, null);\n }\n else {\n var args = Array(len + 1);\n args.unshift(startRow, 1);\n this.lines.splice.apply(this.lines, args);\n this.states.splice.apply(this.states, args);\n }\n this.currentLine = Math.min(startRow, this.currentLine, this.doc.getLength());\n this.stop();\n };\n BackgroundTokenizer.prototype.stop = function () {\n if (this.running)\n clearTimeout(this.running);\n this.running = false;\n };\n BackgroundTokenizer.prototype.getTokens = function (row) {\n return this.lines[row] || this.$tokenizeRow(row);\n };\n BackgroundTokenizer.prototype.getState = function (row) {\n if (this.currentLine == row)\n this.$tokenizeRow(row);\n return this.states[row] || \"start\";\n };\n BackgroundTokenizer.prototype.$tokenizeRow = function (row) {\n var line = this.doc.getLine(row);\n var state = this.states[row - 1];\n var data = this.tokenizer.getLineTokens(line, state, row);\n if (this.states[row] + \"\" !== data.state + \"\") {\n this.states[row] = data.state;\n this.lines[row + 1] = null;\n if (this.currentLine > row + 1)\n this.currentLine = row + 1;\n }\n else if (this.currentLine == row) {\n this.currentLine = row + 1;\n }\n return this.lines[row] = data.tokens;\n };\n BackgroundTokenizer.prototype.cleanup = function () {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.removeAllListeners();\n };\n return BackgroundTokenizer;\n}());\noop.implement(BackgroundTokenizer.prototype, EventEmitter);\nexports.BackgroundTokenizer = BackgroundTokenizer;\n\n});\n\nace.define(\"ace/search_highlight\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"./lib/lang\");\nvar Range = require(\"./range\").Range;\nvar SearchHighlight = /** @class */ (function () {\n function SearchHighlight(regExp, clazz, type) {\n if (type === void 0) { type = \"text\"; }\n this.setRegexp(regExp);\n this.clazz = clazz;\n this.type = type;\n }\n SearchHighlight.prototype.setRegexp = function (regExp) {\n if (this.regExp + \"\" == regExp + \"\")\n return;\n this.regExp = regExp;\n this.cache = [];\n };\n SearchHighlight.prototype.update = function (html, markerLayer, session, config) {\n if (!this.regExp)\n return;\n var start = config.firstRow, end = config.lastRow;\n var renderedMarkerRanges = {};\n for (var i = start; i <= end; i++) {\n var ranges = this.cache[i];\n if (ranges == null) {\n ranges = lang.getMatchOffsets(session.getLine(i), this.regExp);\n if (ranges.length > this.MAX_RANGES)\n ranges = ranges.slice(0, this.MAX_RANGES);\n ranges = ranges.map(function (match) {\n return new Range(i, match.offset, i, match.offset + match.length);\n });\n this.cache[i] = ranges.length ? ranges : \"\";\n }\n for (var j = ranges.length; j--;) {\n var rangeToAddMarkerTo = ranges[j].toScreenRange(session);\n var rangeAsString = rangeToAddMarkerTo.toString();\n if (renderedMarkerRanges[rangeAsString])\n continue;\n renderedMarkerRanges[rangeAsString] = true;\n markerLayer.drawSingleLineMarker(html, rangeToAddMarkerTo, this.clazz, config);\n }\n }\n };\n return SearchHighlight;\n}());\nSearchHighlight.prototype.MAX_RANGES = 500;\nexports.SearchHighlight = SearchHighlight;\n\n});\n\nace.define(\"ace/undomanager\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar UndoManager = /** @class */ (function () {\n function UndoManager() {\n this.$maxRev = 0;\n this.$fromUndo = false;\n this.$undoDepth = Infinity;\n this.reset();\n }\n UndoManager.prototype.addSession = function (session) {\n this.$session = session;\n };\n UndoManager.prototype.add = function (delta, allowMerge, session) {\n if (this.$fromUndo)\n return;\n if (delta == this.$lastDelta)\n return;\n if (!this.$keepRedoStack)\n this.$redoStack.length = 0;\n if (allowMerge === false || !this.lastDeltas) {\n this.lastDeltas = [];\n var undoStackLength = this.$undoStack.length;\n if (undoStackLength > this.$undoDepth - 1) {\n this.$undoStack.splice(0, undoStackLength - this.$undoDepth + 1);\n }\n this.$undoStack.push(this.lastDeltas);\n delta.id = this.$rev = ++this.$maxRev;\n }\n if (delta.action == \"remove\" || delta.action == \"insert\")\n this.$lastDelta = delta;\n this.lastDeltas.push(delta);\n };\n UndoManager.prototype.addSelection = function (selection, rev) {\n this.selections.push({\n value: selection,\n rev: rev || this.$rev\n });\n };\n UndoManager.prototype.startNewGroup = function () {\n this.lastDeltas = null;\n return this.$rev;\n };\n UndoManager.prototype.markIgnored = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n var stack = this.$undoStack;\n for (var i = stack.length; i--;) {\n var delta = stack[i][0];\n if (delta.id <= from)\n break;\n if (delta.id < to)\n delta.ignore = true;\n }\n this.lastDeltas = null;\n };\n UndoManager.prototype.getSelection = function (rev, after) {\n var stack = this.selections;\n for (var i = stack.length; i--;) {\n var selection = stack[i];\n if (selection.rev < rev) {\n if (after)\n selection = stack[i + 1];\n return selection;\n }\n }\n };\n UndoManager.prototype.getRevision = function () {\n return this.$rev;\n };\n UndoManager.prototype.getDeltas = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n var stack = this.$undoStack;\n var end = null, start = 0;\n for (var i = stack.length; i--;) {\n var delta = stack[i][0];\n if (delta.id < to && !end)\n end = i + 1;\n if (delta.id <= from) {\n start = i + 1;\n break;\n }\n }\n return stack.slice(start, end);\n };\n UndoManager.prototype.getChangedRanges = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n };\n UndoManager.prototype.getChangedLines = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n };\n UndoManager.prototype.undo = function (session, dontSelect) {\n this.lastDeltas = null;\n var stack = this.$undoStack;\n if (!rearrangeUndoStack(stack, stack.length))\n return;\n if (!session)\n session = this.$session;\n if (this.$redoStackBaseRev !== this.$rev && this.$redoStack.length)\n this.$redoStack = [];\n this.$fromUndo = true;\n var deltaSet = stack.pop();\n var undoSelectionRange = null;\n if (deltaSet) {\n undoSelectionRange = session.undoChanges(deltaSet, dontSelect);\n this.$redoStack.push(deltaSet);\n this.$syncRev();\n }\n this.$fromUndo = false;\n return undoSelectionRange;\n };\n UndoManager.prototype.redo = function (session, dontSelect) {\n this.lastDeltas = null;\n if (!session)\n session = this.$session;\n this.$fromUndo = true;\n if (this.$redoStackBaseRev != this.$rev) {\n var diff = this.getDeltas(this.$redoStackBaseRev, this.$rev + 1);\n rebaseRedoStack(this.$redoStack, diff);\n this.$redoStackBaseRev = this.$rev;\n this.$redoStack.forEach(function (x) {\n x[0].id = ++this.$maxRev;\n }, this);\n }\n var deltaSet = this.$redoStack.pop();\n var redoSelectionRange = null;\n if (deltaSet) {\n redoSelectionRange = session.redoChanges(deltaSet, dontSelect);\n this.$undoStack.push(deltaSet);\n this.$syncRev();\n }\n this.$fromUndo = false;\n return redoSelectionRange;\n };\n UndoManager.prototype.$syncRev = function () {\n var stack = this.$undoStack;\n var nextDelta = stack[stack.length - 1];\n var id = nextDelta && nextDelta[0].id || 0;\n this.$redoStackBaseRev = id;\n this.$rev = id;\n };\n UndoManager.prototype.reset = function () {\n this.lastDeltas = null;\n this.$lastDelta = null;\n this.$undoStack = [];\n this.$redoStack = [];\n this.$rev = 0;\n this.mark = 0;\n this.$redoStackBaseRev = this.$rev;\n this.selections = [];\n };\n UndoManager.prototype.canUndo = function () {\n return this.$undoStack.length > 0;\n };\n UndoManager.prototype.canRedo = function () {\n return this.$redoStack.length > 0;\n };\n UndoManager.prototype.bookmark = function (rev) {\n if (rev == undefined)\n rev = this.$rev;\n this.mark = rev;\n };\n UndoManager.prototype.isAtBookmark = function () {\n return this.$rev === this.mark;\n };\n UndoManager.prototype.toJSON = function () {\n return {\n $redoStack: this.$redoStack,\n $undoStack: this.$undoStack\n };\n };\n UndoManager.prototype.fromJSON = function (json) {\n this.reset();\n this.$undoStack = json.$undoStack;\n this.$redoStack = json.$redoStack;\n };\n UndoManager.prototype.$prettyPrint = function (delta) {\n if (delta)\n return stringifyDelta(delta);\n return stringifyDelta(this.$undoStack) + \"\\n---\\n\" + stringifyDelta(this.$redoStack);\n };\n return UndoManager;\n}());\nUndoManager.prototype.hasUndo = UndoManager.prototype.canUndo;\nUndoManager.prototype.hasRedo = UndoManager.prototype.canRedo;\nUndoManager.prototype.isClean = UndoManager.prototype.isAtBookmark;\nUndoManager.prototype.markClean = UndoManager.prototype.bookmark;\nfunction rearrangeUndoStack(stack, pos) {\n for (var i = pos; i--;) {\n var deltaSet = stack[i];\n if (deltaSet && !deltaSet[0].ignore) {\n while (i < pos - 1) {\n var swapped = swapGroups(stack[i], stack[i + 1]);\n stack[i] = swapped[0];\n stack[i + 1] = swapped[1];\n i++;\n }\n return true;\n }\n }\n}\nvar Range = require(\"./range\").Range;\nvar cmp = Range.comparePoints;\nvar comparePoints = Range.comparePoints;\nfunction $updateMarkers(delta) {\n var isInsert = delta.action == \"insert\";\n var start = delta.start;\n var end = delta.end;\n var rowShift = (end.row - start.row) * (isInsert ? 1 : -1);\n var colShift = (end.column - start.column) * (isInsert ? 1 : -1);\n if (isInsert)\n end = start;\n for (var i in this.marks) {\n var point = this.marks[i];\n var cmp = comparePoints(point, start);\n if (cmp < 0) {\n continue; // delta starts after the range\n }\n if (cmp === 0) {\n if (isInsert) {\n if (point.bias == 1) {\n cmp = 1;\n }\n else {\n point.bias == -1;\n continue;\n }\n }\n }\n var cmp2 = isInsert ? cmp : comparePoints(point, end);\n if (cmp2 > 0) {\n point.row += rowShift;\n point.column += point.row == end.row ? colShift : 0;\n continue;\n }\n if (!isInsert && cmp2 <= 0) {\n point.row = start.row;\n point.column = start.column;\n if (cmp2 === 0)\n point.bias = 1;\n }\n }\n}\nfunction clonePos(pos) {\n return { row: pos.row, column: pos.column };\n}\nfunction cloneDelta(d) {\n return {\n start: clonePos(d.start),\n end: clonePos(d.end),\n action: d.action,\n lines: d.lines.slice()\n };\n}\nfunction stringifyDelta(d) {\n d = d || this;\n if (Array.isArray(d)) {\n return d.map(stringifyDelta).join(\"\\n\");\n }\n var type = \"\";\n if (d.action) {\n type = d.action == \"insert\" ? \"+\" : \"-\";\n type += \"[\" + d.lines + \"]\";\n }\n else if (d.value) {\n if (Array.isArray(d.value)) {\n type = d.value.map(stringifyRange).join(\"\\n\");\n }\n else {\n type = stringifyRange(d.value);\n }\n }\n if (d.start) {\n type += stringifyRange(d);\n }\n if (d.id || d.rev) {\n type += \"\\t(\" + (d.id || d.rev) + \")\";\n }\n return type;\n}\nfunction stringifyRange(r) {\n return r.start.row + \":\" + r.start.column\n + \"=>\" + r.end.row + \":\" + r.end.column;\n}\nfunction swap(d1, d2) {\n var i1 = d1.action == \"insert\";\n var i2 = d2.action == \"insert\";\n if (i1 && i2) {\n if (cmp(d2.start, d1.end) >= 0) {\n shift(d2, d1, -1);\n }\n else if (cmp(d2.start, d1.start) <= 0) {\n shift(d1, d2, +1);\n }\n else {\n return null;\n }\n }\n else if (i1 && !i2) {\n if (cmp(d2.start, d1.end) >= 0) {\n shift(d2, d1, -1);\n }\n else if (cmp(d2.end, d1.start) <= 0) {\n shift(d1, d2, -1);\n }\n else {\n return null;\n }\n }\n else if (!i1 && i2) {\n if (cmp(d2.start, d1.start) >= 0) {\n shift(d2, d1, +1);\n }\n else if (cmp(d2.start, d1.start) <= 0) {\n shift(d1, d2, +1);\n }\n else {\n return null;\n }\n }\n else if (!i1 && !i2) {\n if (cmp(d2.start, d1.start) >= 0) {\n shift(d2, d1, +1);\n }\n else if (cmp(d2.end, d1.start) <= 0) {\n shift(d1, d2, -1);\n }\n else {\n return null;\n }\n }\n return [d2, d1];\n}\nfunction swapGroups(ds1, ds2) {\n for (var i = ds1.length; i--;) {\n for (var j = 0; j < ds2.length; j++) {\n if (!swap(ds1[i], ds2[j])) {\n while (i < ds1.length) {\n while (j--) {\n swap(ds2[j], ds1[i]);\n }\n j = ds2.length;\n i++;\n }\n return [ds1, ds2];\n }\n }\n }\n ds1.selectionBefore = ds2.selectionBefore =\n ds1.selectionAfter = ds2.selectionAfter = null;\n return [ds2, ds1];\n}\nfunction xform(d1, c1) {\n var i1 = d1.action == \"insert\";\n var i2 = c1.action == \"insert\";\n if (i1 && i2) {\n if (cmp(d1.start, c1.start) < 0) {\n shift(c1, d1, 1);\n }\n else {\n shift(d1, c1, 1);\n }\n }\n else if (i1 && !i2) {\n if (cmp(d1.start, c1.end) >= 0) {\n shift(d1, c1, -1);\n }\n else if (cmp(d1.start, c1.start) <= 0) {\n shift(c1, d1, +1);\n }\n else {\n shift(d1, Range.fromPoints(c1.start, d1.start), -1);\n shift(c1, d1, +1);\n }\n }\n else if (!i1 && i2) {\n if (cmp(c1.start, d1.end) >= 0) {\n shift(c1, d1, -1);\n }\n else if (cmp(c1.start, d1.start) <= 0) {\n shift(d1, c1, +1);\n }\n else {\n shift(c1, Range.fromPoints(d1.start, c1.start), -1);\n shift(d1, c1, +1);\n }\n }\n else if (!i1 && !i2) {\n if (cmp(c1.start, d1.end) >= 0) {\n shift(c1, d1, -1);\n }\n else if (cmp(c1.end, d1.start) <= 0) {\n shift(d1, c1, -1);\n }\n else {\n var before, after;\n if (cmp(d1.start, c1.start) < 0) {\n before = d1;\n d1 = splitDelta(d1, c1.start);\n }\n if (cmp(d1.end, c1.end) > 0) {\n after = splitDelta(d1, c1.end);\n }\n shiftPos(c1.end, d1.start, d1.end, -1);\n if (after && !before) {\n d1.lines = after.lines;\n d1.start = after.start;\n d1.end = after.end;\n after = d1;\n }\n return [c1, before, after].filter(Boolean);\n }\n }\n return [c1, d1];\n}\nfunction shift(d1, d2, dir) {\n shiftPos(d1.start, d2.start, d2.end, dir);\n shiftPos(d1.end, d2.start, d2.end, dir);\n}\nfunction shiftPos(pos, start, end, dir) {\n if (pos.row == (dir == 1 ? start : end).row) {\n pos.column += dir * (end.column - start.column);\n }\n pos.row += dir * (end.row - start.row);\n}\nfunction splitDelta(c, pos) {\n var lines = c.lines;\n var end = c.end;\n c.end = clonePos(pos);\n var rowsBefore = c.end.row - c.start.row;\n var otherLines = lines.splice(rowsBefore, lines.length);\n var col = rowsBefore ? pos.column : pos.column - c.start.column;\n lines.push(otherLines[0].substring(0, col));\n otherLines[0] = otherLines[0].substr(col);\n var rest = {\n start: clonePos(pos),\n end: end,\n lines: otherLines,\n action: c.action\n };\n return rest;\n}\nfunction moveDeltasByOne(redoStack, d) {\n d = cloneDelta(d);\n for (var j = redoStack.length; j--;) {\n var deltaSet = redoStack[j];\n for (var i = 0; i < deltaSet.length; i++) {\n var x = deltaSet[i];\n var xformed = xform(x, d);\n d = xformed[0];\n if (xformed.length != 2) {\n if (xformed[2]) {\n deltaSet.splice(i + 1, 1, xformed[1], xformed[2]);\n i++;\n }\n else if (!xformed[1]) {\n deltaSet.splice(i, 1);\n i--;\n }\n }\n }\n if (!deltaSet.length) {\n redoStack.splice(j, 1);\n }\n }\n return redoStack;\n}\nfunction rebaseRedoStack(redoStack, deltaSets) {\n for (var i = 0; i < deltaSets.length; i++) {\n var deltas = deltaSets[i];\n for (var j = 0; j < deltas.length; j++) {\n moveDeltasByOne(redoStack, deltas[j]);\n }\n }\n}\nexports.UndoManager = UndoManager;\n\n});\n\nace.define(\"ace/edit_session/fold_line\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar FoldLine = /** @class */ (function () {\n function FoldLine(foldData, folds) {\n this.foldData = foldData;\n if (Array.isArray(folds)) {\n this.folds = folds;\n }\n else {\n folds = this.folds = [folds];\n }\n var last = folds[folds.length - 1];\n this.range = new Range(folds[0].start.row, folds[0].start.column, last.end.row, last.end.column);\n this.start = this.range.start;\n this.end = this.range.end;\n this.folds.forEach(function (fold) {\n fold.setFoldLine(this);\n }, this);\n }\n FoldLine.prototype.shiftRow = function (shift) {\n this.start.row += shift;\n this.end.row += shift;\n this.folds.forEach(function (fold) {\n fold.start.row += shift;\n fold.end.row += shift;\n });\n };\n FoldLine.prototype.addFold = function (fold) {\n if (fold.sameRow) {\n if (fold.start.row < this.startRow || fold.endRow > this.endRow) {\n throw new Error(\"Can't add a fold to this FoldLine as it has no connection\");\n }\n this.folds.push(fold);\n this.folds.sort(function (a, b) {\n return -a.range.compareEnd(b.start.row, b.start.column);\n });\n if (this.range.compareEnd(fold.start.row, fold.start.column) > 0) {\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n }\n else if (this.range.compareStart(fold.end.row, fold.end.column) < 0) {\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n }\n else if (fold.start.row == this.end.row) {\n this.folds.push(fold);\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n }\n else if (fold.end.row == this.start.row) {\n this.folds.unshift(fold);\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n else {\n throw new Error(\"Trying to add fold to FoldRow that doesn't have a matching row\");\n }\n fold.foldLine = this;\n };\n FoldLine.prototype.containsRow = function (row) {\n return row >= this.start.row && row <= this.end.row;\n };\n FoldLine.prototype.walk = function (callback, endRow, endColumn) {\n var lastEnd = 0, folds = this.folds, fold, cmp, stop, isNewRow = true;\n if (endRow == null) {\n endRow = this.end.row;\n endColumn = this.end.column;\n }\n for (var i = 0; i < folds.length; i++) {\n fold = folds[i];\n cmp = fold.range.compareStart(endRow, endColumn);\n if (cmp == -1) {\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n return;\n }\n stop = callback(null, fold.start.row, fold.start.column, lastEnd, isNewRow);\n stop = !stop && callback(fold.placeholder, fold.start.row, fold.start.column, lastEnd);\n if (stop || cmp === 0) {\n return;\n }\n isNewRow = !fold.sameRow;\n lastEnd = fold.end.column;\n }\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n };\n FoldLine.prototype.getNextFoldTo = function (row, column) {\n var fold, cmp;\n for (var i = 0; i < this.folds.length; i++) {\n fold = this.folds[i];\n cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n return {\n fold: fold,\n kind: \"after\"\n };\n }\n else if (cmp === 0) {\n return {\n fold: fold,\n kind: \"inside\"\n };\n }\n }\n return null;\n };\n FoldLine.prototype.addRemoveChars = function (row, column, len) {\n var ret = this.getNextFoldTo(row, column), fold, folds;\n if (ret) {\n fold = ret.fold;\n if (ret.kind == \"inside\"\n && fold.start.column != column\n && fold.start.row != row) {\n window.console && window.console.log(row, column, fold);\n }\n else if (fold.start.row == row) {\n folds = this.folds;\n var i = folds.indexOf(fold);\n if (i === 0) {\n this.start.column += len;\n }\n for (i; i < folds.length; i++) {\n fold = folds[i];\n fold.start.column += len;\n if (!fold.sameRow) {\n return;\n }\n fold.end.column += len;\n }\n this.end.column += len;\n }\n }\n };\n FoldLine.prototype.split = function (row, column) {\n var pos = this.getNextFoldTo(row, column);\n if (!pos || pos.kind == \"inside\")\n return null;\n var fold = pos.fold;\n var folds = this.folds;\n var foldData = this.foldData;\n var i = folds.indexOf(fold);\n var foldBefore = folds[i - 1];\n this.end.row = foldBefore.end.row;\n this.end.column = foldBefore.end.column;\n folds = folds.splice(i, folds.length - i);\n var newFoldLine = new FoldLine(foldData, folds);\n foldData.splice(foldData.indexOf(this) + 1, 0, newFoldLine);\n return newFoldLine;\n };\n FoldLine.prototype.merge = function (foldLineNext) {\n var folds = foldLineNext.folds;\n for (var i = 0; i < folds.length; i++) {\n this.addFold(folds[i]);\n }\n var foldData = this.foldData;\n foldData.splice(foldData.indexOf(foldLineNext), 1);\n };\n FoldLine.prototype.toString = function () {\n var ret = [this.range.toString() + \": [\"];\n this.folds.forEach(function (fold) {\n ret.push(\" \" + fold.toString());\n });\n ret.push(\"]\");\n return ret.join(\"\\n\");\n };\n FoldLine.prototype.idxToPosition = function (idx) {\n var lastFoldEndColumn = 0;\n for (var i = 0; i < this.folds.length; i++) {\n var fold = this.folds[i];\n idx -= fold.start.column - lastFoldEndColumn;\n if (idx < 0) {\n return {\n row: fold.start.row,\n column: fold.start.column + idx\n };\n }\n idx -= fold.placeholder.length;\n if (idx < 0) {\n return fold.start;\n }\n lastFoldEndColumn = fold.end.column;\n }\n return {\n row: this.end.row,\n column: this.end.column + idx\n };\n };\n return FoldLine;\n}());\nexports.FoldLine = FoldLine;\n\n});\n\nace.define(\"ace/range_list\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar comparePoints = Range.comparePoints;\nvar RangeList = /** @class */ (function () {\n function RangeList() {\n this.ranges = [];\n this.$bias = 1;\n }\n RangeList.prototype.pointIndex = function (pos, excludeEdges, startIndex) {\n var list = this.ranges;\n for (var i = startIndex || 0; i < list.length; i++) {\n var range = list[i];\n var cmpEnd = comparePoints(pos, range.end);\n if (cmpEnd > 0)\n continue;\n var cmpStart = comparePoints(pos, range.start);\n if (cmpEnd === 0)\n return excludeEdges && cmpStart !== 0 ? -i - 2 : i;\n if (cmpStart > 0 || (cmpStart === 0 && !excludeEdges))\n return i;\n return -i - 1;\n }\n return -i - 1;\n };\n RangeList.prototype.add = function (range) {\n var excludeEdges = !range.isEmpty();\n var startIndex = this.pointIndex(range.start, excludeEdges);\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex(range.end, excludeEdges, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n else\n endIndex++;\n return this.ranges.splice(startIndex, endIndex - startIndex, range);\n };\n RangeList.prototype.addList = function (list) {\n var removed = [];\n for (var i = list.length; i--;) {\n removed.push.apply(removed, this.add(list[i]));\n }\n return removed;\n };\n RangeList.prototype.substractPoint = function (pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges.splice(i, 1);\n };\n RangeList.prototype.merge = function () {\n var removed = [];\n var list = this.ranges;\n list = list.sort(function (a, b) {\n return comparePoints(a.start, b.start);\n });\n var next = list[0], range;\n for (var i = 1; i < list.length; i++) {\n range = next;\n next = list[i];\n var cmp = comparePoints(range.end, next.start);\n if (cmp < 0)\n continue;\n if (cmp == 0 && !range.isEmpty() && !next.isEmpty())\n continue;\n if (comparePoints(range.end, next.end) < 0) {\n range.end.row = next.end.row;\n range.end.column = next.end.column;\n }\n list.splice(i, 1);\n removed.push(next);\n next = range;\n i--;\n }\n this.ranges = list;\n return removed;\n };\n RangeList.prototype.contains = function (row, column) {\n return this.pointIndex({ row: row, column: column }) >= 0;\n };\n RangeList.prototype.containsPoint = function (pos) {\n return this.pointIndex(pos) >= 0;\n };\n RangeList.prototype.rangeAtPoint = function (pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges[i];\n };\n RangeList.prototype.clipRows = function (startRow, endRow) {\n var list = this.ranges;\n if (list[0].start.row > endRow || list[list.length - 1].start.row < startRow)\n return [];\n var startIndex = this.pointIndex({ row: startRow, column: 0 });\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex({ row: endRow, column: 0 }, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n var clipped = [];\n for (var i = startIndex; i < endIndex; i++) {\n clipped.push(list[i]);\n }\n return clipped;\n };\n RangeList.prototype.removeAll = function () {\n return this.ranges.splice(0, this.ranges.length);\n };\n RangeList.prototype.attach = function (session) {\n if (this.session)\n this.detach();\n this.session = session;\n this.onChange = this.$onChange.bind(this);\n this.session.on('change', this.onChange);\n };\n RangeList.prototype.detach = function () {\n if (!this.session)\n return;\n this.session.removeListener('change', this.onChange);\n this.session = null;\n };\n RangeList.prototype.$onChange = function (delta) {\n var start = delta.start;\n var end = delta.end;\n var startRow = start.row;\n var endRow = end.row;\n var ranges = this.ranges;\n for (var i = 0, n = ranges.length; i < n; i++) {\n var r = ranges[i];\n if (r.end.row >= startRow)\n break;\n }\n if (delta.action == \"insert\") {\n var lineDif = endRow - startRow;\n var colDiff = -start.column + end.column;\n for (; i < n; i++) {\n var r = ranges[i];\n if (r.start.row > startRow)\n break;\n if (r.start.row == startRow && r.start.column >= start.column) {\n if (r.start.column == start.column && this.$bias <= 0) {\n }\n else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n if (r.end.row == startRow && r.end.column >= start.column) {\n if (r.end.column == start.column && this.$bias < 0) {\n continue;\n }\n if (r.end.column == start.column && colDiff > 0 && i < n - 1) {\n if (r.end.column > r.start.column && r.end.column == ranges[i + 1].start.column)\n r.end.column -= colDiff;\n }\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n }\n else {\n var lineDif = startRow - endRow;\n var colDiff = start.column - end.column;\n for (; i < n; i++) {\n var r = ranges[i];\n if (r.start.row > endRow)\n break;\n if (r.end.row < endRow\n && (startRow < r.end.row\n || startRow == r.end.row && start.column < r.end.column)) {\n r.end.row = startRow;\n r.end.column = start.column;\n }\n else if (r.end.row == endRow) {\n if (r.end.column <= end.column) {\n if (lineDif || r.end.column > start.column) {\n r.end.column = start.column;\n r.end.row = start.row;\n }\n }\n else {\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n else if (r.end.row > endRow) {\n r.end.row += lineDif;\n }\n if (r.start.row < endRow\n && (startRow < r.start.row\n || startRow == r.start.row && start.column < r.start.column)) {\n r.start.row = startRow;\n r.start.column = start.column;\n }\n else if (r.start.row == endRow) {\n if (r.start.column <= end.column) {\n if (lineDif || r.start.column > start.column) {\n r.start.column = start.column;\n r.start.row = start.row;\n }\n }\n else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n else if (r.start.row > endRow) {\n r.start.row += lineDif;\n }\n }\n }\n if (lineDif != 0 && i < n) {\n for (; i < n; i++) {\n var r = ranges[i];\n r.start.row += lineDif;\n r.end.row += lineDif;\n }\n }\n };\n return RangeList;\n}());\nRangeList.prototype.comparePoints = comparePoints;\nexports.RangeList = RangeList;\n\n});\n\nace.define(\"ace/edit_session/fold\",[\"require\",\"exports\",\"module\",\"ace/range_list\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar RangeList = require(\"../range_list\").RangeList;\nvar Fold = /** @class */ (function (_super) {\n __extends(Fold, _super);\n function Fold(range, placeholder) {\n var _this = _super.call(this) || this;\n _this.foldLine = null;\n _this.placeholder = placeholder;\n _this.range = range;\n _this.start = range.start;\n _this.end = range.end;\n _this.sameRow = range.start.row == range.end.row;\n _this.subFolds = _this.ranges = [];\n return _this;\n }\n Fold.prototype.toString = function () {\n return '\"' + this.placeholder + '\" ' + this.range.toString();\n };\n Fold.prototype.setFoldLine = function (foldLine) {\n this.foldLine = foldLine;\n this.subFolds.forEach(function (fold) {\n fold.setFoldLine(foldLine);\n });\n };\n Fold.prototype.clone = function () {\n var range = this.range.clone();\n var fold = new Fold(range, this.placeholder);\n this.subFolds.forEach(function (subFold) {\n fold.subFolds.push(subFold.clone());\n });\n fold.collapseChildren = this.collapseChildren;\n return fold;\n };\n Fold.prototype.addSubFold = function (fold) {\n if (this.range.isEqual(fold))\n return;\n consumeRange(fold, this.start);\n var row = fold.start.row, column = fold.start.column;\n for (var i = 0, cmp = -1; i < this.subFolds.length; i++) {\n cmp = this.subFolds[i].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n var afterStart = this.subFolds[i];\n var firstConsumed = 0;\n if (cmp == 0) {\n if (afterStart.range.containsRange(fold))\n return afterStart.addSubFold(fold);\n else\n firstConsumed = 1;\n }\n var row = fold.range.end.row, column = fold.range.end.column;\n for (var j = i, cmp = -1; j < this.subFolds.length; j++) {\n cmp = this.subFolds[j].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n if (cmp == 0)\n j++;\n var consumedFolds = this.subFolds.splice(i, j - i, fold);\n var last = cmp == 0 ? consumedFolds.length - 1 : consumedFolds.length;\n for (var k = firstConsumed; k < last; k++) {\n fold.addSubFold(consumedFolds[k]);\n }\n fold.setFoldLine(this.foldLine);\n return fold;\n };\n Fold.prototype.restoreRange = function (range) {\n return restoreRange(range, this.start);\n };\n return Fold;\n}(RangeList));\nfunction consumePoint(point, anchor) {\n point.row -= anchor.row;\n if (point.row == 0)\n point.column -= anchor.column;\n}\nfunction consumeRange(range, anchor) {\n consumePoint(range.start, anchor);\n consumePoint(range.end, anchor);\n}\nfunction restorePoint(point, anchor) {\n if (point.row == 0)\n point.column += anchor.column;\n point.row += anchor.row;\n}\nfunction restoreRange(range, anchor) {\n restorePoint(range.start, anchor);\n restorePoint(range.end, anchor);\n}\nexports.Fold = Fold;\n\n});\n\nace.define(\"ace/edit_session/folding\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/edit_session/fold_line\",\"ace/edit_session/fold\",\"ace/token_iterator\",\"ace/mouse/mouse_event\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar FoldLine = require(\"./fold_line\").FoldLine;\nvar Fold = require(\"./fold\").Fold;\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar MouseEvent = require(\"../mouse/mouse_event\").MouseEvent;\nfunction Folding() {\n this.getFoldAt = function (row, column, side) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine)\n return null;\n var folds = foldLine.folds;\n for (var i = 0; i < folds.length; i++) {\n var range = folds[i].range;\n if (range.contains(row, column)) {\n if (side == 1 && range.isEnd(row, column) && !range.isEmpty()) {\n continue;\n }\n else if (side == -1 && range.isStart(row, column) && !range.isEmpty()) {\n continue;\n }\n return folds[i];\n }\n }\n };\n this.getFoldsInRange = function (range) {\n var start = range.start;\n var end = range.end;\n var foldLines = this.$foldData;\n var foundFolds = [];\n start.column += 1;\n end.column -= 1;\n for (var i = 0; i < foldLines.length; i++) {\n var cmp = foldLines[i].range.compareRange(range);\n if (cmp == 2) {\n continue;\n }\n else if (cmp == -2) {\n break;\n }\n var folds = foldLines[i].folds;\n for (var j = 0; j < folds.length; j++) {\n var fold = folds[j];\n cmp = fold.range.compareRange(range);\n if (cmp == -2) {\n break;\n }\n else if (cmp == 2) {\n continue;\n }\n else \n if (cmp == 42) {\n break;\n }\n foundFolds.push(fold);\n }\n }\n start.column -= 1;\n end.column += 1;\n return foundFolds;\n };\n this.getFoldsInRangeList = function (ranges) {\n if (Array.isArray(ranges)) {\n var folds = [];\n ranges.forEach(function (range) {\n folds = folds.concat(this.getFoldsInRange(range));\n }, this);\n }\n else {\n var folds = this.getFoldsInRange(ranges);\n }\n return folds;\n };\n this.getAllFolds = function () {\n var folds = [];\n var foldLines = this.$foldData;\n for (var i = 0; i < foldLines.length; i++)\n for (var j = 0; j < foldLines[i].folds.length; j++)\n folds.push(foldLines[i].folds[j]);\n return folds;\n };\n this.getFoldStringAt = function (row, column, trim, foldLine) {\n foldLine = foldLine || this.getFoldLine(row);\n if (!foldLine)\n return null;\n var lastFold = {\n end: { column: 0 }\n };\n var str, fold;\n for (var i = 0; i < foldLine.folds.length; i++) {\n fold = foldLine.folds[i];\n var cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n str = this\n .getLine(fold.start.row)\n .substring(lastFold.end.column, fold.start.column);\n break;\n }\n else if (cmp === 0) {\n return null;\n }\n lastFold = fold;\n }\n if (!str)\n str = this.getLine(fold.start.row).substring(lastFold.end.column);\n if (trim == -1)\n return str.substring(0, column - lastFold.end.column);\n else if (trim == 1)\n return str.substring(column - lastFold.end.column);\n else\n return str;\n };\n this.getFoldLine = function (docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.start.row <= docRow && foldLine.end.row >= docRow) {\n return foldLine;\n }\n else if (foldLine.end.row > docRow) {\n return null;\n }\n }\n return null;\n };\n this.getNextFoldLine = function (docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.end.row >= docRow) {\n return foldLine;\n }\n }\n return null;\n };\n this.getFoldedRowCount = function (first, last) {\n var foldData = this.$foldData, rowCount = last - first + 1;\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i], end = foldLine.end.row, start = foldLine.start.row;\n if (end >= last) {\n if (start < last) {\n if (start >= first)\n rowCount -= last - start;\n else\n rowCount = 0; // in one fold\n }\n break;\n }\n else if (end >= first) {\n if (start >= first) // fold inside range\n rowCount -= end - start;\n else\n rowCount -= end - first + 1;\n }\n }\n return rowCount;\n };\n this.$addFoldLine = function (foldLine) {\n this.$foldData.push(foldLine);\n this.$foldData.sort(function (a, b) {\n return a.start.row - b.start.row;\n });\n return foldLine;\n };\n this.addFold = function (placeholder, range) {\n var foldData = this.$foldData;\n var added = false;\n var fold;\n if (placeholder instanceof Fold)\n fold = placeholder;\n else {\n fold = new Fold(range, placeholder);\n fold.collapseChildren = range.collapseChildren;\n }\n this.$clipRangeToDocument(fold.range);\n var startRow = fold.start.row;\n var startColumn = fold.start.column;\n var endRow = fold.end.row;\n var endColumn = fold.end.column;\n var startFold = this.getFoldAt(startRow, startColumn, 1);\n var endFold = this.getFoldAt(endRow, endColumn, -1);\n if (startFold && endFold == startFold)\n return startFold.addSubFold(fold);\n if (startFold && !startFold.range.isStart(startRow, startColumn))\n this.removeFold(startFold);\n if (endFold && !endFold.range.isEnd(endRow, endColumn))\n this.removeFold(endFold);\n var folds = this.getFoldsInRange(fold.range);\n if (folds.length > 0) {\n this.removeFolds(folds);\n if (!fold.collapseChildren) {\n folds.forEach(function (subFold) {\n fold.addSubFold(subFold);\n });\n }\n }\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (endRow == foldLine.start.row) {\n foldLine.addFold(fold);\n added = true;\n break;\n }\n else if (startRow == foldLine.end.row) {\n foldLine.addFold(fold);\n added = true;\n if (!fold.sameRow) {\n var foldLineNext = foldData[i + 1];\n if (foldLineNext && foldLineNext.start.row == endRow) {\n foldLine.merge(foldLineNext);\n break;\n }\n }\n break;\n }\n else if (endRow <= foldLine.start.row) {\n break;\n }\n }\n if (!added)\n foldLine = this.$addFoldLine(new FoldLine(this.$foldData, fold));\n if (this.$useWrapMode)\n this.$updateWrapData(foldLine.start.row, foldLine.start.row);\n else\n this.$updateRowLengthCache(foldLine.start.row, foldLine.start.row);\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"add\" });\n return fold;\n };\n this.addFolds = function (folds) {\n folds.forEach(function (fold) {\n this.addFold(fold);\n }, this);\n };\n this.removeFold = function (fold) {\n var foldLine = fold.foldLine;\n var startRow = foldLine.start.row;\n var endRow = foldLine.end.row;\n var foldLines = this.$foldData;\n var folds = foldLine.folds;\n if (folds.length == 1) {\n foldLines.splice(foldLines.indexOf(foldLine), 1);\n }\n else \n if (foldLine.range.isEnd(fold.end.row, fold.end.column)) {\n folds.pop();\n foldLine.end.row = folds[folds.length - 1].end.row;\n foldLine.end.column = folds[folds.length - 1].end.column;\n }\n else \n if (foldLine.range.isStart(fold.start.row, fold.start.column)) {\n folds.shift();\n foldLine.start.row = folds[0].start.row;\n foldLine.start.column = folds[0].start.column;\n }\n else \n if (fold.sameRow) {\n folds.splice(folds.indexOf(fold), 1);\n }\n else \n {\n var newFoldLine = foldLine.split(fold.start.row, fold.start.column);\n folds = newFoldLine.folds;\n folds.shift();\n newFoldLine.start.row = folds[0].start.row;\n newFoldLine.start.column = folds[0].start.column;\n }\n if (!this.$updating) {\n if (this.$useWrapMode)\n this.$updateWrapData(startRow, endRow);\n else\n this.$updateRowLengthCache(startRow, endRow);\n }\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"remove\" });\n };\n this.removeFolds = function (folds) {\n var cloneFolds = [];\n for (var i = 0; i < folds.length; i++) {\n cloneFolds.push(folds[i]);\n }\n cloneFolds.forEach(function (fold) {\n this.removeFold(fold);\n }, this);\n this.$modified = true;\n };\n this.expandFold = function (fold) {\n this.removeFold(fold);\n fold.subFolds.forEach(function (subFold) {\n fold.restoreRange(subFold);\n this.addFold(subFold);\n }, this);\n if (fold.collapseChildren > 0) {\n this.foldAll(fold.start.row + 1, fold.end.row, fold.collapseChildren - 1);\n }\n fold.subFolds = [];\n };\n this.expandFolds = function (folds) {\n folds.forEach(function (fold) {\n this.expandFold(fold);\n }, this);\n };\n this.unfold = function (location, expandInner) {\n var range, folds;\n if (location == null) {\n range = new Range(0, 0, this.getLength(), 0);\n if (expandInner == null)\n expandInner = true;\n }\n else if (typeof location == \"number\") {\n range = new Range(location, 0, location, this.getLine(location).length);\n }\n else if (\"row\" in location) {\n range = Range.fromPoints(location, location);\n }\n else if (Array.isArray(location)) {\n folds = [];\n location.forEach(function (range) {\n folds = folds.concat(this.unfold(range));\n }, this);\n return folds;\n }\n else {\n range = location;\n }\n folds = this.getFoldsInRangeList(range);\n var outermostFolds = folds;\n while (folds.length == 1\n && Range.comparePoints(folds[0].start, range.start) < 0\n && Range.comparePoints(folds[0].end, range.end) > 0) {\n this.expandFolds(folds);\n folds = this.getFoldsInRangeList(range);\n }\n if (expandInner != false) {\n this.removeFolds(folds);\n }\n else {\n this.expandFolds(folds);\n }\n if (outermostFolds.length)\n return outermostFolds;\n };\n this.isRowFolded = function (docRow, startFoldRow) {\n return !!this.getFoldLine(docRow, startFoldRow);\n };\n this.getRowFoldEnd = function (docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.end.row : docRow;\n };\n this.getRowFoldStart = function (docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.start.row : docRow;\n };\n this.getFoldDisplayLine = function (foldLine, endRow, endColumn, startRow, startColumn) {\n if (startRow == null)\n startRow = foldLine.start.row;\n if (startColumn == null)\n startColumn = 0;\n if (endRow == null)\n endRow = foldLine.end.row;\n if (endColumn == null)\n endColumn = this.getLine(endRow).length;\n var doc = this.doc;\n var textLine = \"\";\n foldLine.walk(function (placeholder, row, column, lastColumn) {\n if (row < startRow)\n return;\n if (row == startRow) {\n if (column < startColumn)\n return;\n lastColumn = Math.max(startColumn, lastColumn);\n }\n if (placeholder != null) {\n textLine += placeholder;\n }\n else {\n textLine += doc.getLine(row).substring(lastColumn, column);\n }\n }, endRow, endColumn);\n return textLine;\n };\n this.getDisplayLine = function (row, endColumn, startRow, startColumn) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine) {\n var line;\n line = this.doc.getLine(row);\n return line.substring(startColumn || 0, endColumn || line.length);\n }\n else {\n return this.getFoldDisplayLine(foldLine, row, endColumn, startRow, startColumn);\n }\n };\n this.$cloneFoldData = function () {\n var fd = [];\n fd = this.$foldData.map(function (foldLine) {\n var folds = foldLine.folds.map(function (fold) {\n return fold.clone();\n });\n return new FoldLine(fd, folds);\n });\n return fd;\n };\n this.toggleFold = function (tryToUnfold) {\n var selection = this.selection;\n var range = selection.getRange();\n var fold;\n var bracketPos;\n if (range.isEmpty()) {\n var cursor = range.start;\n fold = this.getFoldAt(cursor.row, cursor.column);\n if (fold) {\n this.expandFold(fold);\n return;\n }\n else if (bracketPos = this.findMatchingBracket(cursor)) {\n if (range.comparePoint(bracketPos) == 1) {\n range.end = bracketPos;\n }\n else {\n range.start = bracketPos;\n range.start.column++;\n range.end.column--;\n }\n }\n else if (bracketPos = this.findMatchingBracket({ row: cursor.row, column: cursor.column + 1 })) {\n if (range.comparePoint(bracketPos) == 1)\n range.end = bracketPos;\n else\n range.start = bracketPos;\n range.start.column++;\n }\n else {\n range = this.getCommentFoldRange(cursor.row, cursor.column) || range;\n }\n }\n else {\n var folds = this.getFoldsInRange(range);\n if (tryToUnfold && folds.length) {\n this.expandFolds(folds);\n return;\n }\n else if (folds.length == 1) {\n fold = folds[0];\n }\n }\n if (!fold)\n fold = this.getFoldAt(range.start.row, range.start.column);\n if (fold && fold.range.toString() == range.toString()) {\n this.expandFold(fold);\n return;\n }\n var placeholder = \"...\";\n if (!range.isMultiLine()) {\n placeholder = this.getTextRange(range);\n if (placeholder.length < 4)\n return;\n placeholder = placeholder.trim().substring(0, 2) + \"..\";\n }\n this.addFold(placeholder, range);\n };\n this.getCommentFoldRange = function (row, column, dir) {\n var iterator = new TokenIterator(this, row, column);\n var token = iterator.getCurrentToken();\n var type = token && token.type;\n if (token && /^comment|string/.test(type)) {\n type = type.match(/comment|string/)[0];\n if (type == \"comment\")\n type += \"|doc-start|\\\\.doc\";\n var re = new RegExp(type);\n var range = new Range();\n if (dir != 1) {\n do {\n token = iterator.stepBackward();\n } while (token && re.test(token.type) && !/^comment.end/.test(token.type));\n token = iterator.stepForward();\n }\n range.start.row = iterator.getCurrentTokenRow();\n range.start.column = iterator.getCurrentTokenColumn() + (/^comment.start/.test(token.type) ? token.value.length : 2);\n iterator = new TokenIterator(this, row, column);\n if (dir != -1) {\n var lastRow = -1;\n do {\n token = iterator.stepForward();\n if (lastRow == -1) {\n var state = this.getState(iterator.$row);\n if (!re.test(state))\n lastRow = iterator.$row;\n }\n else if (iterator.$row > lastRow) {\n break;\n }\n } while (token && re.test(token.type) && !/^comment.start/.test(token.type));\n token = iterator.stepBackward();\n }\n else\n token = iterator.getCurrentToken();\n range.end.row = iterator.getCurrentTokenRow();\n range.end.column = iterator.getCurrentTokenColumn();\n if (!/^comment.end/.test(token.type)) {\n range.end.column += token.value.length - 2;\n }\n return range;\n }\n };\n this.foldAll = function (startRow, endRow, depth, test) {\n if (depth == undefined)\n depth = 100000; // JSON.stringify doesn't hanle Infinity\n var foldWidgets = this.foldWidgets;\n if (!foldWidgets)\n return; // mode doesn't support folding\n endRow = endRow || this.getLength();\n startRow = startRow || 0;\n for (var row = startRow; row < endRow; row++) {\n if (foldWidgets[row] == null)\n foldWidgets[row] = this.getFoldWidget(row);\n if (foldWidgets[row] != \"start\")\n continue;\n if (test && !test(row))\n continue;\n var range = this.getFoldWidgetRange(row);\n if (range && range.isMultiLine()\n && range.end.row <= endRow\n && range.start.row >= startRow) {\n row = range.end.row;\n range.collapseChildren = depth;\n this.addFold(\"...\", range);\n }\n }\n };\n this.foldToLevel = function (level) {\n this.foldAll();\n while (level-- > 0)\n this.unfold(null, false);\n };\n this.foldAllComments = function () {\n var session = this;\n this.foldAll(null, null, null, function (row) {\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token.type == \"text\" && /^\\s+$/.test(token.value))\n continue;\n if (/comment/.test(token.type))\n return true;\n return false;\n }\n });\n };\n this.$foldStyles = {\n \"manual\": 1,\n \"markbegin\": 1,\n \"markbeginend\": 1\n };\n this.$foldStyle = \"markbegin\";\n this.setFoldStyle = function (style) {\n if (!this.$foldStyles[style])\n throw new Error(\"invalid fold style: \" + style + \"[\" + Object.keys(this.$foldStyles).join(\", \") + \"]\");\n if (this.$foldStyle == style)\n return;\n this.$foldStyle = style;\n if (style == \"manual\")\n this.unfold();\n var mode = this.$foldMode;\n this.$setFolding(null);\n this.$setFolding(mode);\n };\n this.$setFolding = function (foldMode) {\n if (this.$foldMode == foldMode)\n return;\n this.$foldMode = foldMode;\n this.off('change', this.$updateFoldWidgets);\n this.off('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n this._signal(\"changeAnnotation\");\n if (!foldMode || this.$foldStyle == \"manual\") {\n this.foldWidgets = null;\n return;\n }\n this.foldWidgets = [];\n this.getFoldWidget = foldMode.getFoldWidget.bind(foldMode, this, this.$foldStyle);\n this.getFoldWidgetRange = foldMode.getFoldWidgetRange.bind(foldMode, this, this.$foldStyle);\n this.$updateFoldWidgets = this.updateFoldWidgets.bind(this);\n this.$tokenizerUpdateFoldWidgets = this.tokenizerUpdateFoldWidgets.bind(this);\n this.on('change', this.$updateFoldWidgets);\n this.on('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n };\n this.getParentFoldRangeData = function (row, ignoreCurrent) {\n var fw = this.foldWidgets;\n if (!fw || (ignoreCurrent && fw[row]))\n return {};\n var i = row - 1, firstRange;\n while (i >= 0) {\n var c = fw[i];\n if (c == null)\n c = fw[i] = this.getFoldWidget(i);\n if (c == \"start\") {\n var range = this.getFoldWidgetRange(i);\n if (!firstRange)\n firstRange = range;\n if (range && range.end.row >= row)\n break;\n }\n i--;\n }\n return {\n range: i !== -1 && range,\n firstRange: firstRange\n };\n };\n this.onFoldWidgetClick = function (row, e) {\n if (e instanceof MouseEvent)\n e = e.domEvent;\n var options = {\n children: e.shiftKey,\n all: e.ctrlKey || e.metaKey,\n siblings: e.altKey\n };\n var range = this.$toggleFoldWidget(row, options);\n if (!range) {\n var el = (e.target || e.srcElement);\n if (el && /ace_fold-widget/.test(el.className))\n el.className += \" ace_invalid\";\n }\n };\n this.$toggleFoldWidget = function (row, options) {\n if (!this.getFoldWidget)\n return;\n var type = this.getFoldWidget(row);\n var line = this.getLine(row);\n var dir = type === \"end\" ? -1 : 1;\n var fold = this.getFoldAt(row, dir === -1 ? 0 : line.length, dir);\n if (fold) {\n if (options.children || options.all)\n this.removeFold(fold);\n else\n this.expandFold(fold);\n return fold;\n }\n var range = this.getFoldWidgetRange(row, true);\n if (range && !range.isMultiLine()) {\n fold = this.getFoldAt(range.start.row, range.start.column, 1);\n if (fold && range.isEqual(fold.range)) {\n this.removeFold(fold);\n return fold;\n }\n }\n if (options.siblings) {\n var data = this.getParentFoldRangeData(row);\n if (data.range) {\n var startRow = data.range.start.row + 1;\n var endRow = data.range.end.row;\n }\n this.foldAll(startRow, endRow, options.all ? 10000 : 0);\n }\n else if (options.children) {\n endRow = range ? range.end.row : this.getLength();\n this.foldAll(row + 1, endRow, options.all ? 10000 : 0);\n }\n else if (range) {\n if (options.all)\n range.collapseChildren = 10000;\n this.addFold(\"...\", range);\n }\n return range;\n };\n this.toggleFoldWidget = function (toggleParent) {\n var row = this.selection.getCursor().row;\n row = this.getRowFoldStart(row);\n var range = this.$toggleFoldWidget(row, {});\n if (range)\n return;\n var data = this.getParentFoldRangeData(row, true);\n range = data.range || data.firstRange;\n if (range) {\n row = range.start.row;\n var fold = this.getFoldAt(row, this.getLine(row).length, 1);\n if (fold) {\n this.removeFold(fold);\n }\n else {\n this.addFold(\"...\", range);\n }\n }\n };\n this.updateFoldWidgets = function (delta) {\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n this.foldWidgets[firstRow] = null;\n }\n else if (delta.action == 'remove') {\n this.foldWidgets.splice(firstRow, len + 1, null);\n }\n else {\n var args = Array(len + 1);\n args.unshift(firstRow, 1);\n this.foldWidgets.splice.apply(this.foldWidgets, args);\n }\n };\n this.tokenizerUpdateFoldWidgets = function (e) {\n var rows = e.data;\n if (rows.first != rows.last) {\n if (this.foldWidgets.length > rows.first)\n this.foldWidgets.splice(rows.first, this.foldWidgets.length);\n }\n };\n}\nexports.Folding = Folding;\n\n});\n\nace.define(\"ace/edit_session/bracket_match\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar Range = require(\"../range\").Range;\nfunction BracketMatch() {\n this.findMatchingBracket = function (position, chr) {\n if (position.column == 0)\n return null;\n var charBeforeCursor = chr || this.getLine(position.row).charAt(position.column - 1);\n if (charBeforeCursor == \"\")\n return null;\n var match = charBeforeCursor.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match)\n return null;\n if (match[1])\n return this.$findClosingBracket(match[1], position);\n else\n return this.$findOpeningBracket(match[2], position);\n };\n this.getBracketRange = function (pos) {\n var line = this.getLine(pos.row);\n var before = true, range;\n var chr = line.charAt(pos.column - 1);\n var match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match) {\n chr = line.charAt(pos.column);\n pos = { row: pos.row, column: pos.column + 1 };\n match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n before = false;\n }\n if (!match)\n return null;\n if (match[1]) {\n var bracketPos = this.$findClosingBracket(match[1], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(pos, bracketPos);\n if (!before) {\n range.end.column++;\n range.start.column--;\n }\n range.cursor = range.end;\n }\n else {\n var bracketPos = this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(bracketPos, pos);\n if (!before) {\n range.start.column++;\n range.end.column--;\n }\n range.cursor = range.start;\n }\n return range;\n };\n this.getMatchingBracketRanges = function (pos, isBackwards) {\n var line = this.getLine(pos.row);\n var bracketsRegExp = /([\\(\\[\\{])|([\\)\\]\\}])/;\n var chr = !isBackwards && line.charAt(pos.column - 1);\n var match = chr && chr.match(bracketsRegExp);\n if (!match) {\n chr = (isBackwards === undefined || isBackwards) && line.charAt(pos.column);\n pos = {\n row: pos.row,\n column: pos.column + 1\n };\n match = chr && chr.match(bracketsRegExp);\n }\n if (!match)\n return null;\n var startRange = new Range(pos.row, pos.column - 1, pos.row, pos.column);\n var bracketPos = match[1] ? this.$findClosingBracket(match[1], pos)\n : this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return [startRange];\n var endRange = new Range(bracketPos.row, bracketPos.column, bracketPos.row, bracketPos.column + 1);\n return [startRange, endRange];\n };\n this.$brackets = {\n \")\": \"(\",\n \"(\": \")\",\n \"]\": \"[\",\n \"[\": \"]\",\n \"{\": \"}\",\n \"}\": \"{\",\n \"<\": \">\",\n \">\": \"<\"\n };\n this.$findOpeningBracket = function (bracket, position, typeRe) {\n var openBracket = this.$brackets[bracket];\n var depth = 1;\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n if (!typeRe) {\n typeRe = new RegExp(\"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"rparen\", \".paren\")\n .replace(/\\b(?:end)\\b/, \"(?:start|begin|end)\")\n .replace(/-close\\b/, \"-(close|open)\")\n + \")+\");\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn() - 2;\n var value = token.value;\n while (true) {\n while (valueIndex >= 0) {\n var chr = value.charAt(valueIndex);\n if (chr == openBracket) {\n depth -= 1;\n if (depth == 0) {\n return { row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn() };\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex -= 1;\n }\n do {\n token = iterator.stepBackward();\n } while (token && !typeRe.test(token.type));\n if (token == null)\n break;\n value = token.value;\n valueIndex = value.length - 1;\n }\n return null;\n };\n this.$findClosingBracket = function (bracket, position, typeRe) {\n var closingBracket = this.$brackets[bracket];\n var depth = 1;\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n if (!typeRe) {\n typeRe = new RegExp(\"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"lparen\", \".paren\")\n .replace(/\\b(?:start|begin)\\b/, \"(?:start|begin|end)\")\n .replace(/-open\\b/, \"-(close|open)\")\n + \")+\");\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn();\n while (true) {\n var value = token.value;\n var valueLength = value.length;\n while (valueIndex < valueLength) {\n var chr = value.charAt(valueIndex);\n if (chr == closingBracket) {\n depth -= 1;\n if (depth == 0) {\n return { row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn() };\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex += 1;\n }\n do {\n token = iterator.stepForward();\n } while (token && !typeRe.test(token.type));\n if (token == null)\n break;\n valueIndex = 0;\n }\n return null;\n };\n this.getMatchingTags = function (pos) {\n var iterator = new TokenIterator(this, pos.row, pos.column);\n var token = this.$findTagName(iterator);\n if (!token)\n return;\n var prevToken = iterator.stepBackward();\n if (prevToken.value === '<') {\n return this.$findClosingTag(iterator, token);\n }\n else {\n return this.$findOpeningTag(iterator, token);\n }\n };\n this.$findTagName = function (iterator) {\n var token = iterator.getCurrentToken();\n var found = false;\n var backward = false;\n if (token && token.type.indexOf('tag-name') === -1) {\n do {\n if (backward)\n token = iterator.stepBackward();\n else\n token = iterator.stepForward();\n if (token) {\n if (token.value === \"/>\") {\n backward = true;\n }\n else if (token.type.indexOf('tag-name') !== -1) {\n found = true;\n }\n }\n } while (token && !found);\n }\n return token;\n };\n this.$findClosingTag = function (iterator, token) {\n var prevToken;\n var currentTag = token.value;\n var tag = token.value;\n var depth = 0;\n var openTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1);\n token = iterator.stepForward();\n var openTagName = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + token.value.length);\n var foundOpenTagEnd = false;\n do {\n prevToken = token;\n token = iterator.stepForward();\n if (token) {\n if (token.value === '>' && !foundOpenTagEnd) {\n var openTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for `>`\n foundOpenTagEnd = true;\n }\n if (token.type.indexOf('tag-name') !== -1) {\n currentTag = token.value;\n if (tag === currentTag) {\n if (prevToken.value === '<') {\n depth++;\n }\n else if (prevToken.value === '') {\n var closeTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n }\n else {\n return;\n }\n }\n }\n }\n }\n else if (tag === currentTag && token.value === '/>') { // self-closing tag\n depth--;\n if (depth < 0) { //found self-closing tag end\n var closeTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 2);\n var closeTagName = closeTagStart;\n var closeTagEnd = closeTagName;\n var openTagEnd = new Range(openTagName.end.row, openTagName.end.column, openTagName.end.row, openTagName.end.column + 1);\n }\n }\n }\n } while (token && depth >= 0);\n if (openTagStart && openTagEnd && closeTagStart && closeTagEnd && openTagName && closeTagName) {\n return {\n openTag: new Range(openTagStart.start.row, openTagStart.start.column, openTagEnd.end.row, openTagEnd.end.column),\n closeTag: new Range(closeTagStart.start.row, closeTagStart.start.column, closeTagEnd.end.row, closeTagEnd.end.column),\n openTagName: openTagName,\n closeTagName: closeTagName\n };\n }\n };\n this.$findOpeningTag = function (iterator, token) {\n var prevToken = iterator.getCurrentToken();\n var tag = token.value;\n var depth = 0;\n var startRow = iterator.getCurrentTokenRow();\n var startColumn = iterator.getCurrentTokenColumn();\n var endColumn = startColumn + 2;\n var closeTagStart = new Range(startRow, startColumn, startRow, endColumn); //Range for \")\n return;\n var closeTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n iterator.stepBackward();\n iterator.stepBackward();\n do {\n token = prevToken;\n startRow = iterator.getCurrentTokenRow();\n startColumn = iterator.getCurrentTokenColumn();\n endColumn = startColumn + token.value.length;\n prevToken = iterator.stepBackward();\n if (token) {\n if (token.type.indexOf('tag-name') !== -1) {\n if (tag === token.value) {\n if (prevToken.value === '<') {\n depth++;\n if (depth > 0) { //found opening tag\n var openTagName = new Range(startRow, startColumn, startRow, endColumn);\n var openTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for <\n do {\n token = iterator.stepForward();\n } while (token && token.value !== '>');\n var openTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n }\n }\n else if (prevToken.value === '') { // self-closing tag\n var stepCount = 0;\n var tmpToken = prevToken;\n while (tmpToken) {\n if (tmpToken.type.indexOf('tag-name') !== -1 && tmpToken.value === tag) {\n depth--;\n break;\n }\n else if (tmpToken.value === '<') {\n break;\n }\n tmpToken = iterator.stepBackward();\n stepCount++;\n }\n for (var i = 0; i < stepCount; i++) {\n iterator.stepForward();\n }\n }\n }\n } while (prevToken && depth <= 0);\n if (openTagStart && openTagEnd && closeTagStart && closeTagEnd && openTagName && closeTagName) {\n return {\n openTag: new Range(openTagStart.start.row, openTagStart.start.column, openTagEnd.end.row, openTagEnd.end.column),\n closeTag: new Range(closeTagStart.start.row, closeTagStart.start.column, closeTagEnd.end.row, closeTagEnd.end.column),\n openTagName: openTagName,\n closeTagName: closeTagName\n };\n }\n };\n}\nexports.BracketMatch = BracketMatch;\n\n});\n\nace.define(\"ace/edit_session\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/bidihandler\",\"ace/config\",\"ace/lib/event_emitter\",\"ace/selection\",\"ace/mode/text\",\"ace/range\",\"ace/document\",\"ace/background_tokenizer\",\"ace/search_highlight\",\"ace/undomanager\",\"ace/edit_session/folding\",\"ace/edit_session/bracket_match\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar lang = require(\"./lib/lang\");\nvar BidiHandler = require(\"./bidihandler\").BidiHandler;\nvar config = require(\"./config\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Selection = require(\"./selection\").Selection;\nvar TextMode = require(\"./mode/text\").Mode;\nvar Range = require(\"./range\").Range;\nvar Document = require(\"./document\").Document;\nvar BackgroundTokenizer = require(\"./background_tokenizer\").BackgroundTokenizer;\nvar SearchHighlight = require(\"./search_highlight\").SearchHighlight;\nvar UndoManager = require(\"./undomanager\").UndoManager;\nvar EditSession = /** @class */ (function () {\n function EditSession(text, mode) {\n this.$breakpoints = [];\n this.$decorations = [];\n this.$frontMarkers = {};\n this.$backMarkers = {};\n this.$markerId = 1;\n this.$undoSelect = true;\n this.$foldData = [];\n this.id = \"session\" + (++EditSession.$uid);\n this.$foldData.toString = function () {\n return this.join(\"\\n\");\n };\n this.bgTokenizer = new BackgroundTokenizer((new TextMode()).getTokenizer(), this);\n var _self = this;\n this.bgTokenizer.on(\"update\", function (e) {\n _self._signal(\"tokenizerUpdate\", e);\n });\n this.on(\"changeFold\", this.onChangeFold.bind(this));\n this.$onChange = this.onChange.bind(this);\n if (typeof text != \"object\" || !text.getLine)\n text = new Document(text);\n this.setDocument(text);\n this.selection = new Selection(this);\n this.$bidiHandler = new BidiHandler(this);\n config.resetOptions(this);\n this.setMode(mode);\n config._signal(\"session\", this);\n this.destroyed = false;\n }\n EditSession.prototype.setDocument = function (doc) {\n if (this.doc)\n this.doc.off(\"change\", this.$onChange);\n this.doc = doc;\n doc.on(\"change\", this.$onChange, true);\n this.bgTokenizer.setDocument(this.getDocument());\n this.resetCaches();\n };\n EditSession.prototype.getDocument = function () {\n return this.doc;\n };\n EditSession.prototype.$resetRowCache = function (docRow) {\n if (!docRow) {\n this.$docRowCache = [];\n this.$screenRowCache = [];\n return;\n }\n var l = this.$docRowCache.length;\n var i = this.$getRowCacheIndex(this.$docRowCache, docRow) + 1;\n if (l > i) {\n this.$docRowCache.splice(i, l);\n this.$screenRowCache.splice(i, l);\n }\n };\n EditSession.prototype.$getRowCacheIndex = function (cacheArray, val) {\n var low = 0;\n var hi = cacheArray.length - 1;\n while (low <= hi) {\n var mid = (low + hi) >> 1;\n var c = cacheArray[mid];\n if (val > c)\n low = mid + 1;\n else if (val < c)\n hi = mid - 1;\n else\n return mid;\n }\n return low - 1;\n };\n EditSession.prototype.resetCaches = function () {\n this.$modified = true;\n this.$wrapData = [];\n this.$rowLengthCache = [];\n this.$resetRowCache(0);\n if (!this.destroyed)\n this.bgTokenizer.start(0);\n };\n EditSession.prototype.onChangeFold = function (e) {\n var fold = e.data;\n this.$resetRowCache(fold.start.row);\n };\n EditSession.prototype.onChange = function (delta) {\n this.$modified = true;\n this.$bidiHandler.onChange(delta);\n this.$resetRowCache(delta.start.row);\n var removedFolds = this.$updateInternalDataOnChange(delta);\n if (!this.$fromUndo && this.$undoManager) {\n if (removedFolds && removedFolds.length) {\n this.$undoManager.add({\n action: \"removeFolds\",\n folds: removedFolds\n }, this.mergeUndoDeltas);\n this.mergeUndoDeltas = true;\n }\n this.$undoManager.add(delta, this.mergeUndoDeltas);\n this.mergeUndoDeltas = true;\n this.$informUndoManager.schedule();\n }\n this.bgTokenizer.$updateOnChange(delta);\n this._signal(\"change\", delta);\n };\n EditSession.prototype.setValue = function (text) {\n this.doc.setValue(text);\n this.selection.moveTo(0, 0);\n this.$resetRowCache(0);\n this.setUndoManager(this.$undoManager);\n this.getUndoManager().reset();\n };\n EditSession.fromJSON = function (session) {\n session = JSON.parse(session);\n var undoManager = new UndoManager();\n undoManager.$undoStack = session.history.undo;\n undoManager.$redoStack = session.history.redo;\n undoManager.mark = session.history.mark;\n undoManager.$rev = session.history.rev;\n var editSession = new EditSession(session.value);\n session.folds.forEach(function (fold) {\n editSession.addFold(\"...\", Range.fromPoints(fold.start, fold.end));\n });\n editSession.setAnnotations(session.annotations);\n editSession.setBreakpoints(session.breakpoints);\n editSession.setMode(session.mode);\n editSession.setScrollLeft(session.scrollLeft);\n editSession.setScrollTop(session.scrollTop);\n editSession.setUndoManager(undoManager);\n editSession.selection.fromJSON(session.selection);\n return editSession;\n };\n EditSession.prototype.toJSON = function () {\n return {\n annotations: this.$annotations,\n breakpoints: this.$breakpoints,\n folds: this.getAllFolds().map(function (fold) {\n return fold.range;\n }),\n history: this.getUndoManager(),\n mode: this.$mode.$id,\n scrollLeft: this.$scrollLeft,\n scrollTop: this.$scrollTop,\n selection: this.selection.toJSON(),\n value: this.doc.getValue()\n };\n };\n EditSession.prototype.toString = function () {\n return this.doc.getValue();\n };\n EditSession.prototype.getSelection = function () {\n return this.selection;\n };\n EditSession.prototype.getState = function (row) {\n return this.bgTokenizer.getState(row);\n };\n EditSession.prototype.getTokens = function (row) {\n return this.bgTokenizer.getTokens(row);\n };\n EditSession.prototype.getTokenAt = function (row, column) {\n var tokens = this.bgTokenizer.getTokens(row);\n var token, c = 0;\n if (column == null) {\n var i = tokens.length - 1;\n c = this.getLine(row).length;\n }\n else {\n for (var i = 0; i < tokens.length; i++) {\n c += tokens[i].value.length;\n if (c >= column)\n break;\n }\n }\n token = tokens[i];\n if (!token)\n return null;\n token.index = i;\n token.start = c - token.value.length;\n return token;\n };\n EditSession.prototype.setUndoManager = function (undoManager) {\n this.$undoManager = undoManager;\n if (this.$informUndoManager)\n this.$informUndoManager.cancel();\n if (undoManager) {\n var self = this;\n undoManager.addSession(this);\n this.$syncInformUndoManager = function () {\n self.$informUndoManager.cancel();\n self.mergeUndoDeltas = false;\n };\n this.$informUndoManager = lang.delayedCall(this.$syncInformUndoManager);\n }\n else {\n this.$syncInformUndoManager = function () { };\n }\n };\n EditSession.prototype.markUndoGroup = function () {\n if (this.$syncInformUndoManager)\n this.$syncInformUndoManager();\n };\n EditSession.prototype.getUndoManager = function () {\n return this.$undoManager || this.$defaultUndoManager;\n };\n EditSession.prototype.getTabString = function () {\n if (this.getUseSoftTabs()) {\n return lang.stringRepeat(\" \", this.getTabSize());\n }\n else {\n return \"\\t\";\n }\n };\n EditSession.prototype.setUseSoftTabs = function (val) {\n this.setOption(\"useSoftTabs\", val);\n };\n EditSession.prototype.getUseSoftTabs = function () {\n return this.$useSoftTabs && !this.$mode.$indentWithTabs;\n };\n EditSession.prototype.setTabSize = function (tabSize) {\n this.setOption(\"tabSize\", tabSize);\n };\n EditSession.prototype.getTabSize = function () {\n return this.$tabSize;\n };\n EditSession.prototype.isTabStop = function (position) {\n return this.$useSoftTabs && (position.column % this.$tabSize === 0);\n };\n EditSession.prototype.setNavigateWithinSoftTabs = function (navigateWithinSoftTabs) {\n this.setOption(\"navigateWithinSoftTabs\", navigateWithinSoftTabs);\n };\n EditSession.prototype.getNavigateWithinSoftTabs = function () {\n return this.$navigateWithinSoftTabs;\n };\n EditSession.prototype.setOverwrite = function (overwrite) {\n this.setOption(\"overwrite\", overwrite);\n };\n EditSession.prototype.getOverwrite = function () {\n return this.$overwrite;\n };\n EditSession.prototype.toggleOverwrite = function () {\n this.setOverwrite(!this.$overwrite);\n };\n EditSession.prototype.addGutterDecoration = function (row, className) {\n if (!this.$decorations[row])\n this.$decorations[row] = \"\";\n this.$decorations[row] += \" \" + className;\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.removeGutterDecoration = function (row, className) {\n this.$decorations[row] = (this.$decorations[row] || \"\").replace(\" \" + className, \"\");\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.getBreakpoints = function () {\n return this.$breakpoints;\n };\n EditSession.prototype.setBreakpoints = function (rows) {\n this.$breakpoints = [];\n for (var i = 0; i < rows.length; i++) {\n this.$breakpoints[rows[i]] = \"ace_breakpoint\";\n }\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.clearBreakpoints = function () {\n this.$breakpoints = [];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.setBreakpoint = function (row, className) {\n if (className === undefined)\n className = \"ace_breakpoint\";\n if (className)\n this.$breakpoints[row] = className;\n else\n delete this.$breakpoints[row];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.clearBreakpoint = function (row) {\n delete this.$breakpoints[row];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.addMarker = function (range, clazz, type, inFront) {\n var id = this.$markerId++;\n var marker = {\n range: range,\n type: type || \"line\",\n renderer: typeof type == \"function\" ? type : null,\n clazz: clazz,\n inFront: !!inFront,\n id: id\n };\n if (inFront) {\n this.$frontMarkers[id] = marker;\n this._signal(\"changeFrontMarker\");\n }\n else {\n this.$backMarkers[id] = marker;\n this._signal(\"changeBackMarker\");\n }\n return id;\n };\n EditSession.prototype.addDynamicMarker = function (marker, inFront) {\n if (!marker.update)\n return;\n var id = this.$markerId++;\n marker.id = id;\n marker.inFront = !!inFront;\n if (inFront) {\n this.$frontMarkers[id] = marker;\n this._signal(\"changeFrontMarker\");\n }\n else {\n this.$backMarkers[id] = marker;\n this._signal(\"changeBackMarker\");\n }\n return marker;\n };\n EditSession.prototype.removeMarker = function (markerId) {\n var marker = this.$frontMarkers[markerId] || this.$backMarkers[markerId];\n if (!marker)\n return;\n var markers = marker.inFront ? this.$frontMarkers : this.$backMarkers;\n delete (markers[markerId]);\n this._signal(marker.inFront ? \"changeFrontMarker\" : \"changeBackMarker\");\n };\n EditSession.prototype.getMarkers = function (inFront) {\n return inFront ? this.$frontMarkers : this.$backMarkers;\n };\n EditSession.prototype.highlight = function (re) {\n if (!this.$searchHighlight) {\n var highlight = new SearchHighlight(null, \"ace_selected-word\", \"text\");\n this.$searchHighlight = this.addDynamicMarker(highlight);\n }\n this.$searchHighlight.setRegexp(re);\n };\n EditSession.prototype.highlightLines = function (startRow, endRow, clazz, inFront) {\n if (typeof endRow != \"number\") {\n clazz = endRow;\n endRow = startRow;\n }\n if (!clazz)\n clazz = \"ace_step\";\n var range = new Range(startRow, 0, endRow, Infinity);\n range.id = this.addMarker(range, clazz, \"fullLine\", inFront);\n return range;\n };\n EditSession.prototype.setAnnotations = function (annotations) {\n this.$annotations = annotations;\n this._signal(\"changeAnnotation\", {});\n };\n EditSession.prototype.getAnnotations = function () {\n return this.$annotations || [];\n };\n EditSession.prototype.clearAnnotations = function () {\n this.setAnnotations([]);\n };\n EditSession.prototype.$detectNewLine = function (text) {\n var match = text.match(/^.*?(\\r?\\n)/m);\n if (match) {\n this.$autoNewLine = match[1];\n }\n else {\n this.$autoNewLine = \"\\n\";\n }\n };\n EditSession.prototype.getWordRange = function (row, column) {\n var line = this.getLine(row);\n var inToken = false;\n if (column > 0)\n inToken = !!line.charAt(column - 1).match(this.tokenRe);\n if (!inToken)\n inToken = !!line.charAt(column).match(this.tokenRe);\n if (inToken)\n var re = this.tokenRe;\n else if (/^\\s+$/.test(line.slice(column - 1, column + 1)))\n var re = /\\s/;\n else\n var re = this.nonTokenRe;\n var start = column;\n if (start > 0) {\n do {\n start--;\n } while (start >= 0 && line.charAt(start).match(re));\n start++;\n }\n var end = column;\n while (end < line.length && line.charAt(end).match(re)) {\n end++;\n }\n return new Range(row, start, row, end);\n };\n EditSession.prototype.getAWordRange = function (row, column) {\n var wordRange = this.getWordRange(row, column);\n var line = this.getLine(wordRange.end.row);\n while (line.charAt(wordRange.end.column).match(/[ \\t]/)) {\n wordRange.end.column += 1;\n }\n return wordRange;\n };\n EditSession.prototype.setNewLineMode = function (newLineMode) {\n this.doc.setNewLineMode(newLineMode);\n };\n EditSession.prototype.getNewLineMode = function () {\n return this.doc.getNewLineMode();\n };\n EditSession.prototype.setUseWorker = function (useWorker) { this.setOption(\"useWorker\", useWorker); };\n EditSession.prototype.getUseWorker = function () { return this.$useWorker; };\n EditSession.prototype.onReloadTokenizer = function (e) {\n var rows = e.data;\n this.bgTokenizer.start(rows.first);\n this._signal(\"tokenizerUpdate\", e);\n };\n EditSession.prototype.setMode = function (mode, cb) {\n if (mode && typeof mode === \"object\") {\n if (mode.getTokenizer)\n return this.$onChangeMode(mode);\n var options = mode;\n var path = options.path;\n }\n else {\n path = mode || \"ace/mode/text\";\n }\n if (!this.$modes[\"ace/mode/text\"])\n this.$modes[\"ace/mode/text\"] = new TextMode();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n cb && cb();\n return;\n }\n this.$modeId = path;\n config.loadModule([\"mode\", path], function (m) {\n if (this.$modeId !== path)\n return cb && cb();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n }\n else if (m && m.Mode) {\n m = new m.Mode(options);\n if (!options) {\n this.$modes[path] = m;\n m.$id = path;\n }\n this.$onChangeMode(m);\n }\n cb && cb();\n }.bind(this));\n if (!this.$mode)\n this.$onChangeMode(this.$modes[\"ace/mode/text\"], true);\n };\n EditSession.prototype.$onChangeMode = function (mode, $isPlaceholder) {\n if (!$isPlaceholder)\n this.$modeId = mode.$id;\n if (this.$mode === mode)\n return;\n var oldMode = this.$mode;\n this.$mode = mode;\n this.$stopWorker();\n if (this.$useWorker)\n this.$startWorker();\n var tokenizer = mode.getTokenizer();\n if (tokenizer.on !== undefined) {\n var onReloadTokenizer = this.onReloadTokenizer.bind(this);\n tokenizer.on(\"update\", onReloadTokenizer);\n }\n this.bgTokenizer.setTokenizer(tokenizer);\n this.bgTokenizer.setDocument(this.getDocument());\n this.tokenRe = mode.tokenRe;\n this.nonTokenRe = mode.nonTokenRe;\n if (!$isPlaceholder) {\n if (mode.attachToSession)\n mode.attachToSession(this);\n this.$options.wrapMethod.set.call(this, this.$wrapMethod);\n this.$setFolding(mode.foldingRules);\n this.bgTokenizer.start(0);\n this._emit(\"changeMode\", { oldMode: oldMode, mode: mode });\n }\n };\n EditSession.prototype.$stopWorker = function () {\n if (this.$worker) {\n this.$worker.terminate();\n this.$worker = null;\n }\n };\n EditSession.prototype.$startWorker = function () {\n try {\n this.$worker = this.$mode.createWorker(this);\n }\n catch (e) {\n config.warn(\"Could not load worker\", e);\n this.$worker = null;\n }\n };\n EditSession.prototype.getMode = function () {\n return this.$mode;\n };\n EditSession.prototype.setScrollTop = function (scrollTop) {\n if (this.$scrollTop === scrollTop || isNaN(scrollTop))\n return;\n this.$scrollTop = scrollTop;\n this._signal(\"changeScrollTop\", scrollTop);\n };\n EditSession.prototype.getScrollTop = function () {\n return this.$scrollTop;\n };\n EditSession.prototype.setScrollLeft = function (scrollLeft) {\n if (this.$scrollLeft === scrollLeft || isNaN(scrollLeft))\n return;\n this.$scrollLeft = scrollLeft;\n this._signal(\"changeScrollLeft\", scrollLeft);\n };\n EditSession.prototype.getScrollLeft = function () {\n return this.$scrollLeft;\n };\n EditSession.prototype.getScreenWidth = function () {\n this.$computeWidth();\n if (this.lineWidgets)\n return Math.max(this.getLineWidgetMaxWidth(), this.screenWidth);\n return this.screenWidth;\n };\n EditSession.prototype.getLineWidgetMaxWidth = function () {\n if (this.lineWidgetsWidth != null)\n return this.lineWidgetsWidth;\n var width = 0;\n this.lineWidgets.forEach(function (w) {\n if (w && w.screenWidth > width)\n width = w.screenWidth;\n });\n return this.lineWidgetWidth = width;\n };\n EditSession.prototype.$computeWidth = function (force) {\n if (this.$modified || force) {\n this.$modified = false;\n if (this.$useWrapMode)\n return this.screenWidth = this.$wrapLimit;\n var lines = this.doc.getAllLines();\n var cache = this.$rowLengthCache;\n var longestScreenLine = 0;\n var foldIndex = 0;\n var foldLine = this.$foldData[foldIndex];\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n var len = lines.length;\n for (var i = 0; i < len; i++) {\n if (i > foldStart) {\n i = foldLine.end.row + 1;\n if (i >= len)\n break;\n foldLine = this.$foldData[foldIndex++];\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (cache[i] == null)\n cache[i] = this.$getStringScreenWidth(lines[i])[0];\n if (cache[i] > longestScreenLine)\n longestScreenLine = cache[i];\n }\n this.screenWidth = longestScreenLine;\n }\n };\n EditSession.prototype.getLine = function (row) {\n return this.doc.getLine(row);\n };\n EditSession.prototype.getLines = function (firstRow, lastRow) {\n return this.doc.getLines(firstRow, lastRow);\n };\n EditSession.prototype.getLength = function () {\n return this.doc.getLength();\n };\n EditSession.prototype.getTextRange = function (range) {\n return this.doc.getTextRange(range || this.selection.getRange());\n };\n EditSession.prototype.insert = function (position, text) {\n return this.doc.insert(position, text);\n };\n EditSession.prototype.remove = function (range) {\n return this.doc.remove(range);\n };\n EditSession.prototype.removeFullLines = function (firstRow, lastRow) {\n return this.doc.removeFullLines(firstRow, lastRow);\n };\n EditSession.prototype.undoChanges = function (deltas, dontSelect) {\n if (!deltas.length)\n return;\n this.$fromUndo = true;\n for (var i = deltas.length - 1; i != -1; i--) {\n var delta = deltas[i];\n if (delta.action == \"insert\" || delta.action == \"remove\") {\n this.doc.revertDelta(delta);\n }\n else if (delta.folds) {\n this.addFolds(delta.folds);\n }\n }\n if (!dontSelect && this.$undoSelect) {\n if (deltas.selectionBefore)\n this.selection.fromJSON(deltas.selectionBefore);\n else\n this.selection.setRange(this.$getUndoSelection(deltas, true));\n }\n this.$fromUndo = false;\n };\n EditSession.prototype.redoChanges = function (deltas, dontSelect) {\n if (!deltas.length)\n return;\n this.$fromUndo = true;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (delta.action == \"insert\" || delta.action == \"remove\") {\n this.doc.$safeApplyDelta(delta);\n }\n }\n if (!dontSelect && this.$undoSelect) {\n if (deltas.selectionAfter)\n this.selection.fromJSON(deltas.selectionAfter);\n else\n this.selection.setRange(this.$getUndoSelection(deltas, false));\n }\n this.$fromUndo = false;\n };\n EditSession.prototype.setUndoSelect = function (enable) {\n this.$undoSelect = enable;\n };\n EditSession.prototype.$getUndoSelection = function (deltas, isUndo) {\n function isInsert(delta) {\n return isUndo ? delta.action !== \"insert\" : delta.action === \"insert\";\n }\n var range, point;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (!delta.start)\n continue; // skip folds\n if (!range) {\n if (isInsert(delta)) {\n range = Range.fromPoints(delta.start, delta.end);\n }\n else {\n range = Range.fromPoints(delta.start, delta.start);\n }\n continue;\n }\n if (isInsert(delta)) {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range.setStart(point);\n }\n point = delta.end;\n if (range.compare(point.row, point.column) == 1) {\n range.setEnd(point);\n }\n }\n else {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range = Range.fromPoints(delta.start, delta.start);\n }\n }\n }\n return range;\n };\n EditSession.prototype.replace = function (range, text) {\n return this.doc.replace(range, text);\n };\n EditSession.prototype.moveText = function (fromRange, toPosition, copy) {\n var text = this.getTextRange(fromRange);\n var folds = this.getFoldsInRange(fromRange);\n var toRange = Range.fromPoints(toPosition, toPosition);\n if (!copy) {\n this.remove(fromRange);\n var rowDiff = fromRange.start.row - fromRange.end.row;\n var collDiff = rowDiff ? -fromRange.end.column : fromRange.start.column - fromRange.end.column;\n if (collDiff) {\n if (toRange.start.row == fromRange.end.row && toRange.start.column > fromRange.end.column)\n toRange.start.column += collDiff;\n if (toRange.end.row == fromRange.end.row && toRange.end.column > fromRange.end.column)\n toRange.end.column += collDiff;\n }\n if (rowDiff && toRange.start.row >= fromRange.end.row) {\n toRange.start.row += rowDiff;\n toRange.end.row += rowDiff;\n }\n }\n toRange.end = this.insert(toRange.start, text);\n if (folds.length) {\n var oldStart = fromRange.start;\n var newStart = toRange.start;\n var rowDiff = newStart.row - oldStart.row;\n var collDiff = newStart.column - oldStart.column;\n this.addFolds(folds.map(function (x) {\n x = x.clone();\n if (x.start.row == oldStart.row)\n x.start.column += collDiff;\n if (x.end.row == oldStart.row)\n x.end.column += collDiff;\n x.start.row += rowDiff;\n x.end.row += rowDiff;\n return x;\n }));\n }\n return toRange;\n };\n EditSession.prototype.indentRows = function (startRow, endRow, indentString) {\n indentString = indentString.replace(/\\t/g, this.getTabString());\n for (var row = startRow; row <= endRow; row++)\n this.doc.insertInLine({ row: row, column: 0 }, indentString);\n };\n EditSession.prototype.outdentRows = function (range) {\n var rowRange = range.collapseRows();\n var deleteRange = new Range(0, 0, 0, 0);\n var size = this.getTabSize();\n for (var i = rowRange.start.row; i <= rowRange.end.row; ++i) {\n var line = this.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n for (var j = 0; j < size; ++j)\n if (line.charAt(j) != ' ')\n break;\n if (j < size && line.charAt(j) == '\\t') {\n deleteRange.start.column = j;\n deleteRange.end.column = j + 1;\n }\n else {\n deleteRange.start.column = 0;\n deleteRange.end.column = j;\n }\n this.remove(deleteRange);\n }\n };\n EditSession.prototype.$moveLines = function (firstRow, lastRow, dir) {\n firstRow = this.getRowFoldStart(firstRow);\n lastRow = this.getRowFoldEnd(lastRow);\n if (dir < 0) {\n var row = this.getRowFoldStart(firstRow + dir);\n if (row < 0)\n return 0;\n var diff = row - firstRow;\n }\n else if (dir > 0) {\n var row = this.getRowFoldEnd(lastRow + dir);\n if (row > this.doc.getLength() - 1)\n return 0;\n var diff = row - lastRow;\n }\n else {\n firstRow = this.$clipRowToDocument(firstRow);\n lastRow = this.$clipRowToDocument(lastRow);\n var diff = lastRow - firstRow + 1;\n }\n var range = new Range(firstRow, 0, lastRow, Number.MAX_VALUE);\n var folds = this.getFoldsInRange(range).map(function (x) {\n x = x.clone();\n x.start.row += diff;\n x.end.row += diff;\n return x;\n });\n var lines = dir == 0\n ? this.doc.getLines(firstRow, lastRow)\n : this.doc.removeFullLines(firstRow, lastRow);\n this.doc.insertFullLines(firstRow + diff, lines);\n folds.length && this.addFolds(folds);\n return diff;\n };\n EditSession.prototype.moveLinesUp = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, -1);\n };\n EditSession.prototype.moveLinesDown = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 1);\n };\n EditSession.prototype.duplicateLines = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 0);\n };\n EditSession.prototype.$clipRowToDocument = function (row) {\n return Math.max(0, Math.min(row, this.doc.getLength() - 1));\n };\n EditSession.prototype.$clipColumnToRow = function (row, column) {\n if (column < 0)\n return 0;\n return Math.min(this.doc.getLine(row).length, column);\n };\n EditSession.prototype.$clipPositionToDocument = function (row, column) {\n column = Math.max(0, column);\n if (row < 0) {\n row = 0;\n column = 0;\n }\n else {\n var len = this.doc.getLength();\n if (row >= len) {\n row = len - 1;\n column = this.doc.getLine(len - 1).length;\n }\n else {\n column = Math.min(this.doc.getLine(row).length, column);\n }\n }\n return {\n row: row,\n column: column\n };\n };\n EditSession.prototype.$clipRangeToDocument = function (range) {\n if (range.start.row < 0) {\n range.start.row = 0;\n range.start.column = 0;\n }\n else {\n range.start.column = this.$clipColumnToRow(range.start.row, range.start.column);\n }\n var len = this.doc.getLength() - 1;\n if (range.end.row > len) {\n range.end.row = len;\n range.end.column = this.doc.getLine(len).length;\n }\n else {\n range.end.column = this.$clipColumnToRow(range.end.row, range.end.column);\n }\n return range;\n };\n EditSession.prototype.setUseWrapMode = function (useWrapMode) {\n if (useWrapMode != this.$useWrapMode) {\n this.$useWrapMode = useWrapMode;\n this.$modified = true;\n this.$resetRowCache(0);\n if (useWrapMode) {\n var len = this.getLength();\n this.$wrapData = Array(len);\n this.$updateWrapData(0, len - 1);\n }\n this._signal(\"changeWrapMode\");\n }\n };\n EditSession.prototype.getUseWrapMode = function () {\n return this.$useWrapMode;\n };\n EditSession.prototype.setWrapLimitRange = function (min, max) {\n if (this.$wrapLimitRange.min !== min || this.$wrapLimitRange.max !== max) {\n this.$wrapLimitRange = { min: min, max: max };\n this.$modified = true;\n this.$bidiHandler.markAsDirty();\n if (this.$useWrapMode)\n this._signal(\"changeWrapMode\");\n }\n };\n EditSession.prototype.adjustWrapLimit = function (desiredLimit, $printMargin) {\n var limits = this.$wrapLimitRange;\n if (limits.max < 0)\n limits = { min: $printMargin, max: $printMargin };\n var wrapLimit = this.$constrainWrapLimit(desiredLimit, limits.min, limits.max);\n if (wrapLimit != this.$wrapLimit && wrapLimit > 1) {\n this.$wrapLimit = wrapLimit;\n this.$modified = true;\n if (this.$useWrapMode) {\n this.$updateWrapData(0, this.getLength() - 1);\n this.$resetRowCache(0);\n this._signal(\"changeWrapLimit\");\n }\n return true;\n }\n return false;\n };\n EditSession.prototype.$constrainWrapLimit = function (wrapLimit, min, max) {\n if (min)\n wrapLimit = Math.max(min, wrapLimit);\n if (max)\n wrapLimit = Math.min(max, wrapLimit);\n return wrapLimit;\n };\n EditSession.prototype.getWrapLimit = function () {\n return this.$wrapLimit;\n };\n EditSession.prototype.setWrapLimit = function (limit) {\n this.setWrapLimitRange(limit, limit);\n };\n EditSession.prototype.getWrapLimitRange = function () {\n return {\n min: this.$wrapLimitRange.min,\n max: this.$wrapLimitRange.max\n };\n };\n EditSession.prototype.$updateInternalDataOnChange = function (delta) {\n var useWrapMode = this.$useWrapMode;\n var action = delta.action;\n var start = delta.start;\n var end = delta.end;\n var firstRow = start.row;\n var lastRow = end.row;\n var len = lastRow - firstRow;\n var removedFolds = null;\n this.$updating = true;\n if (len != 0) {\n if (action === \"remove\") {\n this[useWrapMode ? \"$wrapData\" : \"$rowLengthCache\"].splice(firstRow, len);\n var foldLines = this.$foldData;\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n var foldLine = this.getFoldLine(end.row);\n var idx = 0;\n if (foldLine) {\n foldLine.addRemoveChars(end.row, end.column, start.column - end.column);\n foldLine.shiftRow(-len);\n var foldLineBefore = this.getFoldLine(firstRow);\n if (foldLineBefore && foldLineBefore !== foldLine) {\n foldLineBefore.merge(foldLine);\n foldLine = foldLineBefore;\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= end.row) {\n foldLine.shiftRow(-len);\n }\n }\n lastRow = firstRow;\n }\n else {\n var args = Array(len);\n args.unshift(firstRow, 0);\n var arr = useWrapMode ? this.$wrapData : this.$rowLengthCache;\n arr.splice.apply(arr, args);\n var foldLines = this.$foldData;\n var foldLine = this.getFoldLine(firstRow);\n var idx = 0;\n if (foldLine) {\n var cmp = foldLine.range.compareInside(start.row, start.column);\n if (cmp == 0) {\n foldLine = foldLine.split(start.row, start.column);\n if (foldLine) {\n foldLine.shiftRow(len);\n foldLine.addRemoveChars(lastRow, 0, end.column - start.column);\n }\n }\n else \n if (cmp == -1) {\n foldLine.addRemoveChars(firstRow, 0, end.column - start.column);\n foldLine.shiftRow(len);\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= firstRow) {\n foldLine.shiftRow(len);\n }\n }\n }\n }\n else {\n len = Math.abs(delta.start.column - delta.end.column);\n if (action === \"remove\") {\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n len = -len;\n }\n var foldLine = this.getFoldLine(firstRow);\n if (foldLine) {\n foldLine.addRemoveChars(firstRow, start.column, len);\n }\n }\n if (useWrapMode && this.$wrapData.length != this.doc.getLength()) {\n console.error(\"doc.getLength() and $wrapData.length have to be the same!\");\n }\n this.$updating = false;\n if (useWrapMode)\n this.$updateWrapData(firstRow, lastRow);\n else\n this.$updateRowLengthCache(firstRow, lastRow);\n return removedFolds;\n };\n EditSession.prototype.$updateRowLengthCache = function (firstRow, lastRow, b) {\n this.$rowLengthCache[firstRow] = null;\n this.$rowLengthCache[lastRow] = null;\n };\n EditSession.prototype.$updateWrapData = function (firstRow, lastRow) {\n var lines = this.doc.getAllLines();\n var tabSize = this.getTabSize();\n var wrapData = this.$wrapData;\n var wrapLimit = this.$wrapLimit;\n var tokens;\n var foldLine;\n var row = firstRow;\n lastRow = Math.min(lastRow, lines.length - 1);\n while (row <= lastRow) {\n foldLine = this.getFoldLine(row, foldLine);\n if (!foldLine) {\n tokens = this.$getDisplayTokens(lines[row]);\n wrapData[row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row++;\n }\n else {\n tokens = [];\n foldLine.walk(function (placeholder, row, column, lastColumn) {\n var walkTokens;\n if (placeholder != null) {\n walkTokens = this.$getDisplayTokens(placeholder, tokens.length);\n walkTokens[0] = PLACEHOLDER_START;\n for (var i = 1; i < walkTokens.length; i++) {\n walkTokens[i] = PLACEHOLDER_BODY;\n }\n }\n else {\n walkTokens = this.$getDisplayTokens(lines[row].substring(lastColumn, column), tokens.length);\n }\n tokens = tokens.concat(walkTokens);\n }.bind(this), foldLine.end.row, lines[foldLine.end.row].length + 1);\n wrapData[foldLine.start.row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row = foldLine.end.row + 1;\n }\n }\n };\n EditSession.prototype.$computeWrapSplits = function (tokens, wrapLimit, tabSize) {\n if (tokens.length == 0) {\n return [];\n }\n var splits = [];\n var displayLength = tokens.length;\n var lastSplit = 0, lastDocSplit = 0;\n var isCode = this.$wrapAsCode;\n var indentedSoftWrap = this.$indentedSoftWrap;\n var maxIndent = wrapLimit <= Math.max(2 * tabSize, 8)\n || indentedSoftWrap === false ? 0 : Math.floor(wrapLimit / 2);\n function getWrapIndent() {\n var indentation = 0;\n if (maxIndent === 0)\n return indentation;\n if (indentedSoftWrap) {\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token == SPACE)\n indentation += 1;\n else if (token == TAB)\n indentation += tabSize;\n else if (token == TAB_SPACE)\n continue;\n else\n break;\n }\n }\n if (isCode && indentedSoftWrap !== false)\n indentation += tabSize;\n return Math.min(indentation, maxIndent);\n }\n function addSplit(screenPos) {\n var len = screenPos - lastSplit;\n for (var i = lastSplit; i < screenPos; i++) {\n var ch = tokens[i];\n if (ch === 12 || ch === 2)\n len -= 1;\n }\n if (!splits.length) {\n indent = getWrapIndent();\n splits.indent = indent;\n }\n lastDocSplit += len;\n splits.push(lastDocSplit);\n lastSplit = screenPos;\n }\n var indent = 0;\n while (displayLength - lastSplit > wrapLimit - indent) {\n var split = lastSplit + wrapLimit - indent;\n if (tokens[split - 1] >= SPACE && tokens[split] >= SPACE) {\n addSplit(split);\n continue;\n }\n if (tokens[split] == PLACEHOLDER_START || tokens[split] == PLACEHOLDER_BODY) {\n for (split; split != lastSplit - 1; split--) {\n if (tokens[split] == PLACEHOLDER_START) {\n break;\n }\n }\n if (split > lastSplit) {\n addSplit(split);\n continue;\n }\n split = lastSplit + wrapLimit;\n for (split; split < tokens.length; split++) {\n if (tokens[split] != PLACEHOLDER_BODY) {\n break;\n }\n }\n if (split == tokens.length) {\n break; // Breaks the while-loop.\n }\n addSplit(split);\n continue;\n }\n var minSplit = Math.max(split - (wrapLimit - (wrapLimit >> 2)), lastSplit - 1);\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split--;\n }\n if (isCode) {\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split--;\n }\n while (split > minSplit && tokens[split] == PUNCTUATION) {\n split--;\n }\n }\n else {\n while (split > minSplit && tokens[split] < SPACE) {\n split--;\n }\n }\n if (split > minSplit) {\n addSplit(++split);\n continue;\n }\n split = lastSplit + wrapLimit;\n if (tokens[split] == CHAR_EXT)\n split--;\n addSplit(split - indent);\n }\n return splits;\n };\n EditSession.prototype.$getDisplayTokens = function (str, offset) {\n var arr = [];\n var tabSize;\n offset = offset || 0;\n for (var i = 0; i < str.length; i++) {\n var c = str.charCodeAt(i);\n if (c == 9) {\n tabSize = this.getScreenTabSize(arr.length + offset);\n arr.push(TAB);\n for (var n = 1; n < tabSize; n++) {\n arr.push(TAB_SPACE);\n }\n }\n else if (c == 32) {\n arr.push(SPACE);\n }\n else if ((c > 39 && c < 48) || (c > 57 && c < 64)) {\n arr.push(PUNCTUATION);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n arr.push(CHAR, CHAR_EXT);\n }\n else {\n arr.push(CHAR);\n }\n }\n return arr;\n };\n EditSession.prototype.$getStringScreenWidth = function (str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn == 0)\n return [0, 0];\n if (maxScreenColumn == null)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charCodeAt(column);\n if (c == 9) {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n screenColumn += 2;\n }\n else {\n screenColumn += 1;\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n return [screenColumn, column];\n };\n EditSession.prototype.getRowLength = function (row) {\n var h = 1;\n if (this.lineWidgets)\n h += this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n if (!this.$useWrapMode || !this.$wrapData[row])\n return h;\n else\n return this.$wrapData[row].length + h;\n };\n EditSession.prototype.getRowLineCount = function (row) {\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1;\n }\n else {\n return this.$wrapData[row].length + 1;\n }\n };\n EditSession.prototype.getRowWrapIndent = function (screenRow) {\n if (this.$useWrapMode) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n var splits = this.$wrapData[pos.row];\n return splits.length && splits[0] < pos.column ? splits.indent : 0;\n }\n else {\n return 0;\n }\n };\n EditSession.prototype.getScreenLastRowColumn = function (screenRow) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n return this.documentToScreenColumn(pos.row, pos.column);\n };\n EditSession.prototype.getDocumentLastRowColumn = function (docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.getScreenLastRowColumn(screenRow);\n };\n EditSession.prototype.getDocumentLastRowColumnPosition = function (docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.screenToDocumentPosition(screenRow, Number.MAX_VALUE / 10);\n };\n EditSession.prototype.getRowSplitData = function (row) {\n if (!this.$useWrapMode) {\n return undefined;\n }\n else {\n return this.$wrapData[row];\n }\n };\n EditSession.prototype.getScreenTabSize = function (screenColumn) {\n return this.$tabSize - (screenColumn % this.$tabSize | 0);\n };\n EditSession.prototype.screenToDocumentRow = function (screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).row;\n };\n EditSession.prototype.screenToDocumentColumn = function (screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).column;\n };\n EditSession.prototype.screenToDocumentPosition = function (screenRow, screenColumn, offsetX) {\n if (screenRow < 0)\n return { row: 0, column: 0 };\n var line;\n var docRow = 0;\n var docColumn = 0;\n var column;\n var row = 0;\n var rowLength = 0;\n var rowCache = this.$screenRowCache;\n var i = this.$getRowCacheIndex(rowCache, screenRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var docRow = this.$docRowCache[i];\n var doCache = screenRow > rowCache[l - 1];\n }\n else {\n var doCache = !l;\n }\n var maxRow = this.getLength() - 1;\n var foldLine = this.getNextFoldLine(docRow);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (row <= screenRow) {\n rowLength = this.getRowLength(docRow);\n if (row + rowLength > screenRow || docRow >= maxRow) {\n break;\n }\n else {\n row += rowLength;\n docRow++;\n if (docRow > foldStart) {\n docRow = foldLine.end.row + 1;\n foldLine = this.getNextFoldLine(docRow, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n }\n if (doCache) {\n this.$docRowCache.push(docRow);\n this.$screenRowCache.push(row);\n }\n }\n if (foldLine && foldLine.start.row <= docRow) {\n line = this.getFoldDisplayLine(foldLine);\n docRow = foldLine.start.row;\n }\n else if (row + rowLength <= screenRow || docRow > maxRow) {\n return {\n row: maxRow,\n column: this.getLine(maxRow).length\n };\n }\n else {\n line = this.getLine(docRow);\n foldLine = null;\n }\n var wrapIndent = 0, splitIndex = Math.floor(screenRow - row);\n if (this.$useWrapMode) {\n var splits = this.$wrapData[docRow];\n if (splits) {\n column = splits[splitIndex];\n if (splitIndex > 0 && splits.length) {\n wrapIndent = splits.indent;\n docColumn = splits[splitIndex - 1] || splits[splits.length - 1];\n line = line.substring(docColumn);\n }\n }\n }\n if (offsetX !== undefined && this.$bidiHandler.isBidiRow(row + splitIndex, docRow, splitIndex))\n screenColumn = this.$bidiHandler.offsetToCol(offsetX);\n docColumn += this.$getStringScreenWidth(line, screenColumn - wrapIndent)[1];\n if (this.$useWrapMode && docColumn >= column)\n docColumn = column - 1;\n if (foldLine)\n return foldLine.idxToPosition(docColumn);\n return { row: docRow, column: docColumn };\n };\n EditSession.prototype.documentToScreenPosition = function (docRow, docColumn) {\n if (typeof docColumn === \"undefined\")\n var pos = this.$clipPositionToDocument(docRow.row, docRow.column);\n else\n pos = this.$clipPositionToDocument(docRow, docColumn);\n docRow = pos.row;\n docColumn = pos.column;\n var screenRow = 0;\n var foldStartRow = null;\n var fold = null;\n fold = this.getFoldAt(docRow, docColumn, 1);\n if (fold) {\n docRow = fold.start.row;\n docColumn = fold.start.column;\n }\n var rowEnd, row = 0;\n var rowCache = this.$docRowCache;\n var i = this.$getRowCacheIndex(rowCache, docRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var screenRow = this.$screenRowCache[i];\n var doCache = docRow > rowCache[l - 1];\n }\n else {\n var doCache = !l;\n }\n var foldLine = this.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (row < docRow) {\n if (row >= foldStart) {\n rowEnd = foldLine.end.row + 1;\n if (rowEnd > docRow)\n break;\n foldLine = this.getNextFoldLine(rowEnd, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n else {\n rowEnd = row + 1;\n }\n screenRow += this.getRowLength(row);\n row = rowEnd;\n if (doCache) {\n this.$docRowCache.push(row);\n this.$screenRowCache.push(screenRow);\n }\n }\n var textLine = \"\";\n if (foldLine && row >= foldStart) {\n textLine = this.getFoldDisplayLine(foldLine, docRow, docColumn);\n foldStartRow = foldLine.start.row;\n }\n else {\n textLine = this.getLine(docRow).substring(0, docColumn);\n foldStartRow = docRow;\n }\n var wrapIndent = 0;\n if (this.$useWrapMode) {\n var wrapRow = this.$wrapData[foldStartRow];\n if (wrapRow) {\n var screenRowOffset = 0;\n while (textLine.length >= wrapRow[screenRowOffset]) {\n screenRow++;\n screenRowOffset++;\n }\n textLine = textLine.substring(wrapRow[screenRowOffset - 1] || 0, textLine.length);\n wrapIndent = screenRowOffset > 0 ? wrapRow.indent : 0;\n }\n }\n if (this.lineWidgets && this.lineWidgets[row] && this.lineWidgets[row].rowsAbove)\n screenRow += this.lineWidgets[row].rowsAbove;\n return {\n row: screenRow,\n column: wrapIndent + this.$getStringScreenWidth(textLine)[0]\n };\n };\n EditSession.prototype.documentToScreenColumn = function (row, docColumn) {\n return this.documentToScreenPosition(row, docColumn).column;\n };\n EditSession.prototype.documentToScreenRow = function (docRow, docColumn) {\n return this.documentToScreenPosition(docRow, docColumn).row;\n };\n EditSession.prototype.getScreenLength = function () {\n var screenRows = 0;\n var fold = null;\n if (!this.$useWrapMode) {\n screenRows = this.getLength();\n var foldData = this.$foldData;\n for (var i = 0; i < foldData.length; i++) {\n fold = foldData[i];\n screenRows -= fold.end.row - fold.start.row;\n }\n }\n else {\n var lastRow = this.$wrapData.length;\n var row = 0, i = 0;\n var fold = this.$foldData[i++];\n var foldStart = fold ? fold.start.row : Infinity;\n while (row < lastRow) {\n var splits = this.$wrapData[row];\n screenRows += splits ? splits.length + 1 : 1;\n row++;\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = this.$foldData[i++];\n foldStart = fold ? fold.start.row : Infinity;\n }\n }\n }\n if (this.lineWidgets)\n screenRows += this.$getWidgetScreenLength();\n return screenRows;\n };\n EditSession.prototype.$setFontMetrics = function (fm) {\n if (!this.$enableVarChar)\n return;\n this.$getStringScreenWidth = function (str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn === 0)\n return [0, 0];\n if (!maxScreenColumn)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charAt(column);\n if (c === \"\\t\") {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else {\n screenColumn += fm.getCharacterWidth(c);\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n return [screenColumn, column];\n };\n };\n EditSession.prototype.destroy = function () {\n if (!this.destroyed) {\n this.bgTokenizer.setDocument(null);\n this.bgTokenizer.cleanup();\n this.destroyed = true;\n }\n this.$stopWorker();\n this.removeAllListeners();\n if (this.doc) {\n this.doc.off(\"change\", this.$onChange);\n }\n this.selection.detach();\n };\n return EditSession;\n}());\nEditSession.$uid = 0;\nEditSession.prototype.$modes = config.$modes;\nEditSession.prototype.getValue = EditSession.prototype.toString;\nEditSession.prototype.$defaultUndoManager = {\n undo: function () { },\n redo: function () { },\n hasUndo: function () { },\n hasRedo: function () { },\n reset: function () { },\n add: function () { },\n addSelection: function () { },\n startNewGroup: function () { },\n addSession: function () { }\n};\nEditSession.prototype.$overwrite = false;\nEditSession.prototype.$mode = null;\nEditSession.prototype.$modeId = null;\nEditSession.prototype.$scrollTop = 0;\nEditSession.prototype.$scrollLeft = 0;\nEditSession.prototype.$wrapLimit = 80;\nEditSession.prototype.$useWrapMode = false;\nEditSession.prototype.$wrapLimitRange = {\n min: null,\n max: null\n};\nEditSession.prototype.lineWidgets = null;\nEditSession.prototype.isFullWidth = isFullWidth;\noop.implement(EditSession.prototype, EventEmitter);\nvar CHAR = 1, CHAR_EXT = 2, PLACEHOLDER_START = 3, PLACEHOLDER_BODY = 4, PUNCTUATION = 9, SPACE = 10, TAB = 11, TAB_SPACE = 12;\nfunction isFullWidth(c) {\n if (c < 0x1100)\n return false;\n return c >= 0x1100 && c <= 0x115F ||\n c >= 0x11A3 && c <= 0x11A7 ||\n c >= 0x11FA && c <= 0x11FF ||\n c >= 0x2329 && c <= 0x232A ||\n c >= 0x2E80 && c <= 0x2E99 ||\n c >= 0x2E9B && c <= 0x2EF3 ||\n c >= 0x2F00 && c <= 0x2FD5 ||\n c >= 0x2FF0 && c <= 0x2FFB ||\n c >= 0x3000 && c <= 0x303E ||\n c >= 0x3041 && c <= 0x3096 ||\n c >= 0x3099 && c <= 0x30FF ||\n c >= 0x3105 && c <= 0x312D ||\n c >= 0x3131 && c <= 0x318E ||\n c >= 0x3190 && c <= 0x31BA ||\n c >= 0x31C0 && c <= 0x31E3 ||\n c >= 0x31F0 && c <= 0x321E ||\n c >= 0x3220 && c <= 0x3247 ||\n c >= 0x3250 && c <= 0x32FE ||\n c >= 0x3300 && c <= 0x4DBF ||\n c >= 0x4E00 && c <= 0xA48C ||\n c >= 0xA490 && c <= 0xA4C6 ||\n c >= 0xA960 && c <= 0xA97C ||\n c >= 0xAC00 && c <= 0xD7A3 ||\n c >= 0xD7B0 && c <= 0xD7C6 ||\n c >= 0xD7CB && c <= 0xD7FB ||\n c >= 0xF900 && c <= 0xFAFF ||\n c >= 0xFE10 && c <= 0xFE19 ||\n c >= 0xFE30 && c <= 0xFE52 ||\n c >= 0xFE54 && c <= 0xFE66 ||\n c >= 0xFE68 && c <= 0xFE6B ||\n c >= 0xFF01 && c <= 0xFF60 ||\n c >= 0xFFE0 && c <= 0xFFE6;\n}\nrequire(\"./edit_session/folding\").Folding.call(EditSession.prototype);\nrequire(\"./edit_session/bracket_match\").BracketMatch.call(EditSession.prototype);\nconfig.defineOptions(EditSession.prototype, \"session\", {\n wrap: {\n set: function (value) {\n if (!value || value == \"off\")\n value = false;\n else if (value == \"free\")\n value = true;\n else if (value == \"printMargin\")\n value = -1;\n else if (typeof value == \"string\")\n value = parseInt(value, 10) || false;\n if (this.$wrap == value)\n return;\n this.$wrap = value;\n if (!value) {\n this.setUseWrapMode(false);\n }\n else {\n var col = typeof value == \"number\" ? value : null;\n this.setWrapLimitRange(col, col);\n this.setUseWrapMode(true);\n }\n },\n get: function () {\n if (this.getUseWrapMode()) {\n if (this.$wrap == -1)\n return \"printMargin\";\n if (!this.getWrapLimitRange().min)\n return \"free\";\n return this.$wrap;\n }\n return \"off\";\n },\n handlesSet: true\n },\n wrapMethod: {\n set: function (val) {\n val = val == \"auto\"\n ? this.$mode.type != \"text\"\n : val != \"text\";\n if (val != this.$wrapAsCode) {\n this.$wrapAsCode = val;\n if (this.$useWrapMode) {\n this.$useWrapMode = false;\n this.setUseWrapMode(true);\n }\n }\n },\n initialValue: \"auto\"\n },\n indentedSoftWrap: {\n set: function () {\n if (this.$useWrapMode) {\n this.$useWrapMode = false;\n this.setUseWrapMode(true);\n }\n },\n initialValue: true\n },\n firstLineNumber: {\n set: function () { this._signal(\"changeBreakpoint\"); },\n initialValue: 1\n },\n useWorker: {\n set: function (useWorker) {\n this.$useWorker = useWorker;\n this.$stopWorker();\n if (useWorker)\n this.$startWorker();\n },\n initialValue: true\n },\n useSoftTabs: { initialValue: true },\n tabSize: {\n set: function (tabSize) {\n tabSize = parseInt(tabSize);\n if (tabSize > 0 && this.$tabSize !== tabSize) {\n this.$modified = true;\n this.$rowLengthCache = [];\n this.$tabSize = tabSize;\n this._signal(\"changeTabSize\");\n }\n },\n initialValue: 4,\n handlesSet: true\n },\n navigateWithinSoftTabs: { initialValue: false },\n foldStyle: {\n set: function (val) { this.setFoldStyle(val); },\n handlesSet: true\n },\n overwrite: {\n set: function (val) { this._signal(\"changeOverwrite\"); },\n initialValue: false\n },\n newLineMode: {\n set: function (val) { this.doc.setNewLineMode(val); },\n get: function () { return this.doc.getNewLineMode(); },\n handlesSet: true\n },\n mode: {\n set: function (val) { this.setMode(val); },\n get: function () { return this.$modeId; },\n handlesSet: true\n }\n});\nexports.EditSession = EditSession;\n\n});\n\nace.define(\"ace/search\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"./lib/lang\");\nvar oop = require(\"./lib/oop\");\nvar Range = require(\"./range\").Range;\nvar Search = /** @class */ (function () {\n function Search() {\n this.$options = {};\n }\n Search.prototype.set = function (options) {\n oop.mixin(this.$options, options);\n return this;\n };\n Search.prototype.getOptions = function () {\n return lang.copyObject(this.$options);\n };\n Search.prototype.setOptions = function (options) {\n this.$options = options;\n };\n Search.prototype.find = function (session) {\n var options = this.$options;\n var iterator = this.$matchIterator(session, options);\n if (!iterator)\n return false;\n var firstRange = null;\n iterator.forEach(function (sr, sc, er, ec) {\n firstRange = new Range(sr, sc, er, ec);\n if (sc == ec && options.start && options.start.start\n && options.skipCurrent != false && firstRange.isEqual(options.start)) {\n firstRange = null;\n return false;\n }\n return true;\n });\n return firstRange;\n };\n Search.prototype.findAll = function (session) {\n var options = this.$options;\n if (!options.needle)\n return [];\n this.$assembleRegExp(options);\n var range = options.range;\n var lines = range\n ? session.getLines(range.start.row, range.end.row)\n : session.doc.getAllLines();\n var ranges = [];\n var re = options.re;\n if (options.$isMultiLine) {\n var len = re.length;\n var maxRow = lines.length - len;\n var prevRange;\n outer: for (var row = re.offset || 0; row <= maxRow; row++) {\n for (var j = 0; j < len; j++)\n if (lines[row + j].search(re[j]) == -1)\n continue outer;\n var startLine = lines[row];\n var line = lines[row + len - 1];\n var startIndex = startLine.length - startLine.match(re[0])[0].length;\n var endIndex = line.match(re[len - 1])[0].length;\n if (prevRange && prevRange.end.row === row &&\n prevRange.end.column > startIndex) {\n continue;\n }\n ranges.push(prevRange = new Range(row, startIndex, row + len - 1, endIndex));\n if (len > 2)\n row = row + len - 2;\n }\n }\n else {\n for (var i = 0; i < lines.length; i++) {\n var matches = lang.getMatchOffsets(lines[i], re);\n for (var j = 0; j < matches.length; j++) {\n var match = matches[j];\n ranges.push(new Range(i, match.offset, i, match.offset + match.length));\n }\n }\n }\n if (range) {\n var startColumn = range.start.column;\n var endColumn = range.end.column;\n var i = 0, j = ranges.length - 1;\n while (i < j && ranges[i].start.column < startColumn && ranges[i].start.row == 0)\n i++;\n var endRow = range.end.row - range.start.row;\n while (i < j && ranges[j].end.column > endColumn && ranges[j].end.row == endRow)\n j--;\n ranges = ranges.slice(i, j + 1);\n for (i = 0, j = ranges.length; i < j; i++) {\n ranges[i].start.row += range.start.row;\n ranges[i].end.row += range.start.row;\n }\n }\n return ranges;\n };\n Search.prototype.replace = function (input, replacement) {\n var options = this.$options;\n var re = this.$assembleRegExp(options);\n if (options.$isMultiLine)\n return replacement;\n if (!re)\n return;\n var match = re.exec(input);\n if (!match || match[0].length != input.length)\n return null;\n replacement = input.replace(re, replacement);\n if (options.preserveCase) {\n replacement = replacement.split(\"\");\n for (var i = Math.min(input.length, input.length); i--;) {\n var ch = input[i];\n if (ch && ch.toLowerCase() != ch)\n replacement[i] = replacement[i].toUpperCase();\n else\n replacement[i] = replacement[i].toLowerCase();\n }\n replacement = replacement.join(\"\");\n }\n return replacement;\n };\n Search.prototype.$assembleRegExp = function (options, $disableFakeMultiline) {\n if (options.needle instanceof RegExp)\n return options.re = options.needle;\n var needle = options.needle;\n if (!options.needle)\n return options.re = false;\n if (!options.regExp)\n needle = lang.escapeRegExp(needle);\n var modifier = options.caseSensitive ? \"gm\" : \"gmi\";\n try {\n new RegExp(needle, \"u\");\n options.$supportsUnicodeFlag = true;\n modifier += \"u\";\n }\n catch (e) {\n options.$supportsUnicodeFlag = false; //left for backward compatibility with previous versions for cases like /ab\\{2}/gu\n }\n if (options.wholeWord)\n needle = addWordBoundary(needle, options);\n options.$isMultiLine = !$disableFakeMultiline && /[\\n\\r]/.test(needle);\n if (options.$isMultiLine)\n return options.re = this.$assembleMultilineRegExp(needle, modifier);\n try {\n var re = new RegExp(needle, modifier);\n }\n catch (e) {\n re = false;\n }\n return options.re = re;\n };\n Search.prototype.$assembleMultilineRegExp = function (needle, modifier) {\n var parts = needle.replace(/\\r\\n|\\r|\\n/g, \"$\\n^\").split(\"\\n\");\n var re = [];\n for (var i = 0; i < parts.length; i++)\n try {\n re.push(new RegExp(parts[i], modifier));\n }\n catch (e) {\n return false;\n }\n return re;\n };\n Search.prototype.$matchIterator = function (session, options) {\n var re = this.$assembleRegExp(options);\n if (!re)\n return false;\n var backwards = options.backwards == true;\n var skipCurrent = options.skipCurrent != false;\n var supportsUnicodeFlag = re.unicode;\n var range = options.range;\n var start = options.start;\n if (!start)\n start = range ? range[backwards ? \"end\" : \"start\"] : session.selection.getRange();\n if (start.start)\n start = start[skipCurrent != backwards ? \"end\" : \"start\"];\n var firstRow = range ? range.start.row : 0;\n var lastRow = range ? range.end.row : session.getLength() - 1;\n if (backwards) {\n var forEach = function (callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row--; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = lastRow, firstRow = start.row; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n };\n }\n else {\n var forEach = function (callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row = row + 1; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = firstRow, lastRow = start.row; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n };\n }\n if (options.$isMultiLine) {\n var len = re.length;\n var forEachInLine = function (row, offset, callback) {\n var startRow = backwards ? row - len + 1 : row;\n if (startRow < 0 || startRow + len > session.getLength())\n return;\n var line = session.getLine(startRow);\n var startIndex = line.search(re[0]);\n if (!backwards && startIndex < offset || startIndex === -1)\n return;\n for (var i = 1; i < len; i++) {\n line = session.getLine(startRow + i);\n if (line.search(re[i]) == -1)\n return;\n }\n var endIndex = line.match(re[len - 1])[0].length;\n if (backwards && endIndex > offset)\n return;\n if (callback(startRow, startIndex, startRow + len - 1, endIndex))\n return true;\n };\n }\n else if (backwards) {\n var forEachInLine = function (row, endIndex, callback) {\n var line = session.getLine(row);\n var matches = [];\n var m, last = 0;\n re.lastIndex = 0;\n while ((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (!length) {\n if (last >= line.length)\n break;\n re.lastIndex = last += lang.skipEmptyMatch(line, last, supportsUnicodeFlag);\n }\n if (m.index + length > endIndex)\n break;\n matches.push(m.index, length);\n }\n for (var i = matches.length - 1; i >= 0; i -= 2) {\n var column = matches[i - 1];\n var length = matches[i];\n if (callback(row, column, row, column + length))\n return true;\n }\n };\n }\n else {\n var forEachInLine = function (row, startIndex, callback) {\n var line = session.getLine(row);\n var last;\n var m;\n re.lastIndex = startIndex;\n while ((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (callback(row, last, row, last + length))\n return true;\n if (!length) {\n re.lastIndex = last += lang.skipEmptyMatch(line, last, supportsUnicodeFlag);\n if (last >= line.length)\n return false;\n }\n }\n };\n }\n return { forEach: forEach };\n };\n return Search;\n}());\nfunction addWordBoundary(needle, options) {\n var supportsLookbehind = lang.supportsLookbehind();\n function wordBoundary(c, firstChar) {\n if (firstChar === void 0) { firstChar = true; }\n var wordRegExp = supportsLookbehind && options.$supportsUnicodeFlag ? new RegExp(\"[\\\\p{L}\\\\p{N}_]\", \"u\") : new RegExp(\"\\\\w\");\n if (wordRegExp.test(c) || options.regExp) {\n if (supportsLookbehind && options.$supportsUnicodeFlag) {\n if (firstChar)\n return \"(?<=^|[^\\\\p{L}\\\\p{N}_])\";\n return \"(?=[^\\\\p{L}\\\\p{N}_]|$)\";\n }\n return \"\\\\b\";\n }\n return \"\";\n }\n var needleArray = Array.from(needle);\n var firstChar = needleArray[0];\n var lastChar = needleArray[needleArray.length - 1];\n return wordBoundary(firstChar) + needle + wordBoundary(lastChar, false);\n}\nexports.Search = Search;\n\n});\n\nace.define(\"ace/keyboard/hash_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar keyUtil = require(\"../lib/keys\");\nvar useragent = require(\"../lib/useragent\");\nvar KEY_MODS = keyUtil.KEY_MODS;\nvar MultiHashHandler = /** @class */ (function () {\n function MultiHashHandler(config, platform) {\n this.$init(config, platform, false);\n }\n MultiHashHandler.prototype.$init = function (config, platform, $singleCommand) {\n this.platform = platform || (useragent.isMac ? \"mac\" : \"win\");\n this.commands = {};\n this.commandKeyBinding = {};\n this.addCommands(config);\n this.$singleCommand = $singleCommand;\n };\n MultiHashHandler.prototype.addCommand = function (command) {\n if (this.commands[command.name])\n this.removeCommand(command);\n this.commands[command.name] = command;\n if (command.bindKey)\n this._buildKeyHash(command);\n };\n MultiHashHandler.prototype.removeCommand = function (command, keepCommand) {\n var name = command && (typeof command === 'string' ? command : command.name);\n command = this.commands[name];\n if (!keepCommand)\n delete this.commands[name];\n var ckb = this.commandKeyBinding;\n for (var keyId in ckb) {\n var cmdGroup = ckb[keyId];\n if (cmdGroup == command) {\n delete ckb[keyId];\n }\n else if (Array.isArray(cmdGroup)) {\n var i = cmdGroup.indexOf(command);\n if (i != -1) {\n cmdGroup.splice(i, 1);\n if (cmdGroup.length == 1)\n ckb[keyId] = cmdGroup[0];\n }\n }\n }\n };\n MultiHashHandler.prototype.bindKey = function (key, command, position) {\n if (typeof key == \"object\" && key) {\n if (position == undefined)\n position = key.position;\n key = key[this.platform];\n }\n if (!key)\n return;\n if (typeof command == \"function\")\n return this.addCommand({ exec: command, bindKey: key, name: command.name || key });\n key.split(\"|\").forEach(function (keyPart) {\n var chain = \"\";\n if (keyPart.indexOf(\" \") != -1) {\n var parts = keyPart.split(/\\s+/);\n keyPart = parts.pop();\n parts.forEach(function (keyPart) {\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n chain += (chain ? \" \" : \"\") + id;\n this._addCommandToBinding(chain, \"chainKeys\");\n }, this);\n chain += \" \";\n }\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n this._addCommandToBinding(chain + id, command, position);\n }, this);\n };\n MultiHashHandler.prototype._addCommandToBinding = function (keyId, command, position) {\n var ckb = this.commandKeyBinding, i;\n if (!command) {\n delete ckb[keyId];\n }\n else if (!ckb[keyId] || this.$singleCommand) {\n ckb[keyId] = command;\n }\n else {\n if (!Array.isArray(ckb[keyId])) {\n ckb[keyId] = [ckb[keyId]];\n }\n else if ((i = ckb[keyId].indexOf(command)) != -1) {\n ckb[keyId].splice(i, 1);\n }\n if (typeof position != \"number\") {\n position = getPosition(command);\n }\n var commands = ckb[keyId];\n for (i = 0; i < commands.length; i++) {\n var other = commands[i];\n var otherPos = getPosition(other);\n if (otherPos > position)\n break;\n }\n commands.splice(i, 0, command);\n }\n };\n MultiHashHandler.prototype.addCommands = function (commands) {\n commands && Object.keys(commands).forEach(function (name) {\n var command = commands[name];\n if (!command)\n return;\n if (typeof command === \"string\")\n return this.bindKey(command, name);\n if (typeof command === \"function\")\n command = { exec: command };\n if (typeof command !== \"object\")\n return;\n if (!command.name)\n command.name = name;\n this.addCommand(command);\n }, this);\n };\n MultiHashHandler.prototype.removeCommands = function (commands) {\n Object.keys(commands).forEach(function (name) {\n this.removeCommand(commands[name]);\n }, this);\n };\n MultiHashHandler.prototype.bindKeys = function (keyList) {\n Object.keys(keyList).forEach(function (key) {\n this.bindKey(key, keyList[key]);\n }, this);\n };\n MultiHashHandler.prototype._buildKeyHash = function (command) {\n this.bindKey(command.bindKey, command);\n };\n MultiHashHandler.prototype.parseKeys = function (keys) {\n var parts = keys.toLowerCase().split(/[\\-\\+]([\\-\\+])?/).filter(function (x) { return x; });\n var key = parts.pop();\n var keyCode = keyUtil[key];\n if (keyUtil.FUNCTION_KEYS[keyCode])\n key = keyUtil.FUNCTION_KEYS[keyCode].toLowerCase();\n else if (!parts.length)\n return { key: key, hashId: -1 };\n else if (parts.length == 1 && parts[0] == \"shift\")\n return { key: key.toUpperCase(), hashId: -1 };\n var hashId = 0;\n for (var i = parts.length; i--;) {\n var modifier = keyUtil.KEY_MODS[parts[i]];\n if (modifier == null) {\n if (typeof console != \"undefined\")\n console.error(\"invalid modifier \" + parts[i] + \" in \" + keys);\n return false;\n }\n hashId |= modifier;\n }\n return { key: key, hashId: hashId };\n };\n MultiHashHandler.prototype.findKeyCommand = function (hashId, keyString) {\n var key = KEY_MODS[hashId] + keyString;\n return this.commandKeyBinding[key];\n };\n MultiHashHandler.prototype.handleKeyboard = function (data, hashId, keyString, keyCode) {\n if (keyCode < 0)\n return;\n var key = KEY_MODS[hashId] + keyString;\n var command = this.commandKeyBinding[key];\n if (data.$keyChain) {\n data.$keyChain += \" \" + key;\n command = this.commandKeyBinding[data.$keyChain] || command;\n }\n if (command) {\n if (command == \"chainKeys\" || command[command.length - 1] == \"chainKeys\") {\n data.$keyChain = data.$keyChain || key;\n return { command: \"null\" };\n }\n }\n if (data.$keyChain) {\n if ((!hashId || hashId == 4) && keyString.length == 1)\n data.$keyChain = data.$keyChain.slice(0, -key.length - 1); // wait for input\n else if (hashId == -1 || keyCode > 0)\n data.$keyChain = \"\"; // reset keyChain\n }\n return { command: command };\n };\n MultiHashHandler.prototype.getStatusText = function (editor, data) {\n return data.$keyChain || \"\";\n };\n return MultiHashHandler;\n}());\nfunction getPosition(command) {\n return typeof command == \"object\" && command.bindKey\n && command.bindKey.position\n || (command.isDefault ? -100 : 0);\n}\nvar HashHandler = /** @class */ (function (_super) {\n __extends(HashHandler, _super);\n function HashHandler(config, platform) {\n var _this = _super.call(this, config, platform) || this;\n _this.$singleCommand = true;\n return _this;\n }\n return HashHandler;\n}(MultiHashHandler));\nHashHandler.call = function (thisArg, config, platform) {\n MultiHashHandler.prototype.$init.call(thisArg, config, platform, true);\n};\nMultiHashHandler.call = function (thisArg, config, platform) {\n MultiHashHandler.prototype.$init.call(thisArg, config, platform, false);\n};\nexports.HashHandler = HashHandler;\nexports.MultiHashHandler = MultiHashHandler;\n\n});\n\nace.define(\"ace/commands/command_manager\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"../lib/oop\");\nvar MultiHashHandler = require(\"../keyboard/hash_handler\").MultiHashHandler;\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar CommandManager = /** @class */ (function (_super) {\n __extends(CommandManager, _super);\n function CommandManager(platform, commands) {\n var _this = _super.call(this, commands, platform) || this;\n _this.byName = _this.commands;\n _this.setDefaultHandler(\"exec\", function (e) {\n if (!e.args) {\n return e.command.exec(e.editor, {}, e.event, true);\n }\n return e.command.exec(e.editor, e.args, e.event, false);\n });\n return _this;\n }\n CommandManager.prototype.exec = function (command, editor, args) {\n if (Array.isArray(command)) {\n for (var i = command.length; i--;) {\n if (this.exec(command[i], editor, args))\n return true;\n }\n return false;\n }\n if (typeof command === \"string\")\n command = this.commands[command];\n if (!command)\n return false;\n if (editor && editor.$readOnly && !command.readOnly)\n return false;\n if (this.$checkCommandState != false && command.isAvailable && !command.isAvailable(editor))\n return false;\n var e = { editor: editor, command: command, args: args };\n e.returnValue = this._emit(\"exec\", e);\n this._signal(\"afterExec\", e);\n return e.returnValue === false ? false : true;\n };\n CommandManager.prototype.toggleRecording = function (editor) {\n if (this.$inReplay)\n return;\n editor && editor._emit(\"changeStatus\");\n if (this.recording) {\n this.macro.pop();\n this.off(\"exec\", this.$addCommandToMacro);\n if (!this.macro.length)\n this.macro = this.oldMacro;\n return this.recording = false;\n }\n if (!this.$addCommandToMacro) {\n this.$addCommandToMacro = function (e) {\n this.macro.push([e.command, e.args]);\n }.bind(this);\n }\n this.oldMacro = this.macro;\n this.macro = [];\n this.on(\"exec\", this.$addCommandToMacro);\n return this.recording = true;\n };\n CommandManager.prototype.replay = function (editor) {\n if (this.$inReplay || !this.macro)\n return;\n if (this.recording)\n return this.toggleRecording(editor);\n try {\n this.$inReplay = true;\n this.macro.forEach(function (x) {\n if (typeof x == \"string\")\n this.exec(x, editor);\n else\n this.exec(x[0], editor, x[1]);\n }, this);\n }\n finally {\n this.$inReplay = false;\n }\n };\n CommandManager.prototype.trimMacro = function (m) {\n return m.map(function (x) {\n if (typeof x[0] != \"string\")\n x[0] = x[0].name;\n if (!x[1])\n x = x[0];\n return x;\n });\n };\n return CommandManager;\n}(MultiHashHandler));\noop.implement(CommandManager.prototype, EventEmitter);\nexports.CommandManager = CommandManager;\n\n});\n\nace.define(\"ace/commands/default_commands\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/config\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"../lib/lang\");\nvar config = require(\"../config\");\nvar Range = require(\"../range\").Range;\nfunction bindKey(win, mac) {\n return { win: win, mac: mac };\n}\nexports.commands = [{\n name: \"showSettingsMenu\",\n description: \"Show settings menu\",\n bindKey: bindKey(\"Ctrl-,\", \"Command-,\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/settings_menu\", function (module) {\n module.init(editor);\n editor.showSettingsMenu();\n });\n },\n readOnly: true\n }, {\n name: \"goToNextError\",\n description: \"Go to next error\",\n bindKey: bindKey(\"Alt-E\", \"F4\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/error_marker\", function (module) {\n module.showErrorMarker(editor, 1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"goToPreviousError\",\n description: \"Go to previous error\",\n bindKey: bindKey(\"Alt-Shift-E\", \"Shift-F4\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/error_marker\", function (module) {\n module.showErrorMarker(editor, -1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"selectall\",\n description: \"Select all\",\n bindKey: bindKey(\"Ctrl-A\", \"Command-A\"),\n exec: function (editor) { editor.selectAll(); },\n readOnly: true\n }, {\n name: \"centerselection\",\n description: \"Center selection\",\n bindKey: bindKey(null, \"Ctrl-L\"),\n exec: function (editor) { editor.centerSelection(); },\n readOnly: true\n }, {\n name: \"gotoline\",\n description: \"Go to line...\",\n bindKey: bindKey(\"Ctrl-L\", \"Command-L\"),\n exec: function (editor, line) {\n if (typeof line === \"number\" && !isNaN(line))\n editor.gotoLine(line);\n editor.prompt({ $type: \"gotoLine\" });\n },\n readOnly: true\n }, {\n name: \"fold\",\n bindKey: bindKey(\"Alt-L|Ctrl-F1\", \"Command-Alt-L|Command-F1\"),\n exec: function (editor) { editor.session.toggleFold(false); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"unfold\",\n bindKey: bindKey(\"Alt-Shift-L|Ctrl-Shift-F1\", \"Command-Alt-Shift-L|Command-Shift-F1\"),\n exec: function (editor) { editor.session.toggleFold(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"toggleFoldWidget\",\n description: \"Toggle fold widget\",\n bindKey: bindKey(\"F2\", \"F2\"),\n exec: function (editor) { editor.session.toggleFoldWidget(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"toggleParentFoldWidget\",\n description: \"Toggle parent fold widget\",\n bindKey: bindKey(\"Alt-F2\", \"Alt-F2\"),\n exec: function (editor) { editor.session.toggleFoldWidget(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldall\",\n description: \"Fold all\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function (editor) { editor.session.foldAll(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldAllComments\",\n description: \"Fold all comments\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function (editor) { editor.session.foldAllComments(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldOther\",\n description: \"Fold other\",\n bindKey: bindKey(\"Alt-0\", \"Command-Option-0\"),\n exec: function (editor) {\n editor.session.foldAll();\n editor.session.unfold(editor.selection.getAllRanges());\n },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"unfoldall\",\n description: \"Unfold all\",\n bindKey: bindKey(\"Alt-Shift-0\", \"Command-Option-Shift-0\"),\n exec: function (editor) { editor.session.unfold(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"findnext\",\n description: \"Find next\",\n bindKey: bindKey(\"Ctrl-K\", \"Command-G\"),\n exec: function (editor) { editor.findNext(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"findprevious\",\n description: \"Find previous\",\n bindKey: bindKey(\"Ctrl-Shift-K\", \"Command-Shift-G\"),\n exec: function (editor) { editor.findPrevious(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"selectOrFindNext\",\n description: \"Select or find next\",\n bindKey: bindKey(\"Alt-K\", \"Ctrl-G\"),\n exec: function (editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findNext();\n },\n readOnly: true\n }, {\n name: \"selectOrFindPrevious\",\n description: \"Select or find previous\",\n bindKey: bindKey(\"Alt-Shift-K\", \"Ctrl-Shift-G\"),\n exec: function (editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findPrevious();\n },\n readOnly: true\n }, {\n name: \"find\",\n description: \"Find\",\n bindKey: bindKey(\"Ctrl-F\", \"Command-F\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/searchbox\", function (e) { e.Search(editor); });\n },\n readOnly: true\n }, {\n name: \"overwrite\",\n description: \"Overwrite\",\n bindKey: \"Insert\",\n exec: function (editor) { editor.toggleOverwrite(); },\n readOnly: true\n }, {\n name: \"selecttostart\",\n description: \"Select to start\",\n bindKey: bindKey(\"Ctrl-Shift-Home\", \"Command-Shift-Home|Command-Shift-Up\"),\n exec: function (editor) { editor.getSelection().selectFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"gotostart\",\n description: \"Go to start\",\n bindKey: bindKey(\"Ctrl-Home\", \"Command-Home|Command-Up\"),\n exec: function (editor) { editor.navigateFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"selectup\",\n description: \"Select up\",\n bindKey: bindKey(\"Shift-Up\", \"Shift-Up|Ctrl-Shift-P\"),\n exec: function (editor) { editor.getSelection().selectUp(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"golineup\",\n description: \"Go line up\",\n bindKey: bindKey(\"Up\", \"Up|Ctrl-P\"),\n exec: function (editor, args) { editor.navigateUp(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttoend\",\n description: \"Select to end\",\n bindKey: bindKey(\"Ctrl-Shift-End\", \"Command-Shift-End|Command-Shift-Down\"),\n exec: function (editor) { editor.getSelection().selectFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"gotoend\",\n description: \"Go to end\",\n bindKey: bindKey(\"Ctrl-End\", \"Command-End|Command-Down\"),\n exec: function (editor) { editor.navigateFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"selectdown\",\n description: \"Select down\",\n bindKey: bindKey(\"Shift-Down\", \"Shift-Down|Ctrl-Shift-N\"),\n exec: function (editor) { editor.getSelection().selectDown(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"golinedown\",\n description: \"Go line down\",\n bindKey: bindKey(\"Down\", \"Down|Ctrl-N\"),\n exec: function (editor, args) { editor.navigateDown(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectwordleft\",\n description: \"Select word left\",\n bindKey: bindKey(\"Ctrl-Shift-Left\", \"Option-Shift-Left\"),\n exec: function (editor) { editor.getSelection().selectWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotowordleft\",\n description: \"Go to word left\",\n bindKey: bindKey(\"Ctrl-Left\", \"Option-Left\"),\n exec: function (editor) { editor.navigateWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttolinestart\",\n description: \"Select to line start\",\n bindKey: bindKey(\"Alt-Shift-Left\", \"Command-Shift-Left|Ctrl-Shift-A\"),\n exec: function (editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotolinestart\",\n description: \"Go to line start\",\n bindKey: bindKey(\"Alt-Left|Home\", \"Command-Left|Home|Ctrl-A\"),\n exec: function (editor) { editor.navigateLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectleft\",\n description: \"Select left\",\n bindKey: bindKey(\"Shift-Left\", \"Shift-Left|Ctrl-Shift-B\"),\n exec: function (editor) { editor.getSelection().selectLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotoleft\",\n description: \"Go to left\",\n bindKey: bindKey(\"Left\", \"Left|Ctrl-B\"),\n exec: function (editor, args) { editor.navigateLeft(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectwordright\",\n description: \"Select word right\",\n bindKey: bindKey(\"Ctrl-Shift-Right\", \"Option-Shift-Right\"),\n exec: function (editor) { editor.getSelection().selectWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotowordright\",\n description: \"Go to word right\",\n bindKey: bindKey(\"Ctrl-Right\", \"Option-Right\"),\n exec: function (editor) { editor.navigateWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttolineend\",\n description: \"Select to line end\",\n bindKey: bindKey(\"Alt-Shift-Right\", \"Command-Shift-Right|Shift-End|Ctrl-Shift-E\"),\n exec: function (editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotolineend\",\n description: \"Go to line end\",\n bindKey: bindKey(\"Alt-Right|End\", \"Command-Right|End|Ctrl-E\"),\n exec: function (editor) { editor.navigateLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectright\",\n description: \"Select right\",\n bindKey: bindKey(\"Shift-Right\", \"Shift-Right\"),\n exec: function (editor) { editor.getSelection().selectRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotoright\",\n description: \"Go to right\",\n bindKey: bindKey(\"Right\", \"Right|Ctrl-F\"),\n exec: function (editor, args) { editor.navigateRight(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectpagedown\",\n description: \"Select page down\",\n bindKey: \"Shift-PageDown\",\n exec: function (editor) { editor.selectPageDown(); },\n readOnly: true\n }, {\n name: \"pagedown\",\n description: \"Page down\",\n bindKey: bindKey(null, \"Option-PageDown\"),\n exec: function (editor) { editor.scrollPageDown(); },\n readOnly: true\n }, {\n name: \"gotopagedown\",\n description: \"Go to page down\",\n bindKey: bindKey(\"PageDown\", \"PageDown|Ctrl-V\"),\n exec: function (editor) { editor.gotoPageDown(); },\n readOnly: true\n }, {\n name: \"selectpageup\",\n description: \"Select page up\",\n bindKey: \"Shift-PageUp\",\n exec: function (editor) { editor.selectPageUp(); },\n readOnly: true\n }, {\n name: \"pageup\",\n description: \"Page up\",\n bindKey: bindKey(null, \"Option-PageUp\"),\n exec: function (editor) { editor.scrollPageUp(); },\n readOnly: true\n }, {\n name: \"gotopageup\",\n description: \"Go to page up\",\n bindKey: \"PageUp\",\n exec: function (editor) { editor.gotoPageUp(); },\n readOnly: true\n }, {\n name: \"scrollup\",\n description: \"Scroll up\",\n bindKey: bindKey(\"Ctrl-Up\", null),\n exec: function (e) { e.renderer.scrollBy(0, -2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n }, {\n name: \"scrolldown\",\n description: \"Scroll down\",\n bindKey: bindKey(\"Ctrl-Down\", null),\n exec: function (e) { e.renderer.scrollBy(0, 2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n }, {\n name: \"selectlinestart\",\n description: \"Select line start\",\n bindKey: \"Shift-Home\",\n exec: function (editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectlineend\",\n description: \"Select line end\",\n bindKey: \"Shift-End\",\n exec: function (editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"togglerecording\",\n description: \"Toggle recording\",\n bindKey: bindKey(\"Ctrl-Alt-E\", \"Command-Option-E\"),\n exec: function (editor) { editor.commands.toggleRecording(editor); },\n readOnly: true\n }, {\n name: \"replaymacro\",\n description: \"Replay macro\",\n bindKey: bindKey(\"Ctrl-Shift-E\", \"Command-Shift-E\"),\n exec: function (editor) { editor.commands.replay(editor); },\n readOnly: true\n }, {\n name: \"jumptomatching\",\n description: \"Jump to matching\",\n bindKey: bindKey(\"Ctrl-\\\\|Ctrl-P\", \"Command-\\\\\"),\n exec: function (editor) { editor.jumpToMatching(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"selecttomatching\",\n description: \"Select to matching\",\n bindKey: bindKey(\"Ctrl-Shift-\\\\|Ctrl-Shift-P\", \"Command-Shift-\\\\\"),\n exec: function (editor) { editor.jumpToMatching(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"expandToMatching\",\n description: \"Expand to matching\",\n bindKey: bindKey(\"Ctrl-Shift-M\", \"Ctrl-Shift-M\"),\n exec: function (editor) { editor.jumpToMatching(true, true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"passKeysToBrowser\",\n description: \"Pass keys to browser\",\n bindKey: bindKey(null, null),\n exec: function () { },\n passEvent: true,\n readOnly: true\n }, {\n name: \"copy\",\n description: \"Copy\",\n exec: function (editor) {\n },\n readOnly: true\n },\n {\n name: \"cut\",\n description: \"Cut\",\n exec: function (editor) {\n var cutLine = editor.$copyWithEmptySelection && editor.selection.isEmpty();\n var range = cutLine ? editor.selection.getLineRange() : editor.selection.getRange();\n editor._emit(\"cut\", range);\n if (!range.isEmpty())\n editor.session.remove(range);\n editor.clearSelection();\n },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"paste\",\n description: \"Paste\",\n exec: function (editor, args) {\n editor.$handlePaste(args);\n },\n scrollIntoView: \"cursor\"\n }, {\n name: \"removeline\",\n description: \"Remove line\",\n bindKey: bindKey(\"Ctrl-D\", \"Command-D\"),\n exec: function (editor) { editor.removeLines(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEachLine\"\n }, {\n name: \"duplicateSelection\",\n description: \"Duplicate selection\",\n bindKey: bindKey(\"Ctrl-Shift-D\", \"Command-Shift-D\"),\n exec: function (editor) { editor.duplicateSelection(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"sortlines\",\n description: \"Sort lines\",\n bindKey: bindKey(\"Ctrl-Alt-S\", \"Command-Alt-S\"),\n exec: function (editor) { editor.sortLines(); },\n scrollIntoView: \"selection\",\n multiSelectAction: \"forEachLine\"\n }, {\n name: \"togglecomment\",\n description: \"Toggle comment\",\n bindKey: bindKey(\"Ctrl-/\", \"Command-/\"),\n exec: function (editor) { editor.toggleCommentLines(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"toggleBlockComment\",\n description: \"Toggle block comment\",\n bindKey: bindKey(\"Ctrl-Shift-/\", \"Command-Shift-/\"),\n exec: function (editor) { editor.toggleBlockComment(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"modifyNumberUp\",\n description: \"Modify number up\",\n bindKey: bindKey(\"Ctrl-Shift-Up\", \"Alt-Shift-Up\"),\n exec: function (editor) { editor.modifyNumber(1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"modifyNumberDown\",\n description: \"Modify number down\",\n bindKey: bindKey(\"Ctrl-Shift-Down\", \"Alt-Shift-Down\"),\n exec: function (editor) { editor.modifyNumber(-1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"replace\",\n description: \"Replace\",\n bindKey: bindKey(\"Ctrl-H\", \"Command-Option-F\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/searchbox\", function (e) { e.Search(editor, true); });\n }\n }, {\n name: \"undo\",\n description: \"Undo\",\n bindKey: bindKey(\"Ctrl-Z\", \"Command-Z\"),\n exec: function (editor) { editor.undo(); }\n }, {\n name: \"redo\",\n description: \"Redo\",\n bindKey: bindKey(\"Ctrl-Shift-Z|Ctrl-Y\", \"Command-Shift-Z|Command-Y\"),\n exec: function (editor) { editor.redo(); }\n }, {\n name: \"copylinesup\",\n description: \"Copy lines up\",\n bindKey: bindKey(\"Alt-Shift-Up\", \"Command-Option-Up\"),\n exec: function (editor) { editor.copyLinesUp(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"movelinesup\",\n description: \"Move lines up\",\n bindKey: bindKey(\"Alt-Up\", \"Option-Up\"),\n exec: function (editor) { editor.moveLinesUp(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"copylinesdown\",\n description: \"Copy lines down\",\n bindKey: bindKey(\"Alt-Shift-Down\", \"Command-Option-Down\"),\n exec: function (editor) { editor.copyLinesDown(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"movelinesdown\",\n description: \"Move lines down\",\n bindKey: bindKey(\"Alt-Down\", \"Option-Down\"),\n exec: function (editor) { editor.moveLinesDown(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"del\",\n description: \"Delete\",\n bindKey: bindKey(\"Delete\", \"Delete|Ctrl-D|Shift-Delete\"),\n exec: function (editor) { editor.remove(\"right\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"backspace\",\n description: \"Backspace\",\n bindKey: bindKey(\"Shift-Backspace|Backspace\", \"Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H\"),\n exec: function (editor) { editor.remove(\"left\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"cut_or_delete\",\n description: \"Cut or delete\",\n bindKey: bindKey(\"Shift-Delete\", null),\n exec: function (editor) {\n if (editor.selection.isEmpty()) {\n editor.remove(\"left\");\n }\n else {\n return false;\n }\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolinestart\",\n description: \"Remove to line start\",\n bindKey: bindKey(\"Alt-Backspace\", \"Command-Backspace\"),\n exec: function (editor) { editor.removeToLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolineend\",\n description: \"Remove to line end\",\n bindKey: bindKey(\"Alt-Delete\", \"Ctrl-K|Command-Delete\"),\n exec: function (editor) { editor.removeToLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolinestarthard\",\n description: \"Remove to line start hard\",\n bindKey: bindKey(\"Ctrl-Shift-Backspace\", null),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.start.column = 0;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolineendhard\",\n description: \"Remove to line end hard\",\n bindKey: bindKey(\"Ctrl-Shift-Delete\", null),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.end.column = Number.MAX_VALUE;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removewordleft\",\n description: \"Remove word left\",\n bindKey: bindKey(\"Ctrl-Backspace\", \"Alt-Backspace|Ctrl-Alt-Backspace\"),\n exec: function (editor) { editor.removeWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removewordright\",\n description: \"Remove word right\",\n bindKey: bindKey(\"Ctrl-Delete\", \"Alt-Delete\"),\n exec: function (editor) { editor.removeWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"outdent\",\n description: \"Outdent\",\n bindKey: bindKey(\"Shift-Tab\", \"Shift-Tab\"),\n exec: function (editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"indent\",\n description: \"Indent\",\n bindKey: bindKey(\"Tab\", \"Tab\"),\n exec: function (editor) { editor.indent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"blockoutdent\",\n description: \"Block outdent\",\n bindKey: bindKey(\"Ctrl-[\", \"Ctrl-[\"),\n exec: function (editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"blockindent\",\n description: \"Block indent\",\n bindKey: bindKey(\"Ctrl-]\", \"Ctrl-]\"),\n exec: function (editor) { editor.blockIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"insertstring\",\n description: \"Insert string\",\n exec: function (editor, str) { editor.insert(str); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"inserttext\",\n description: \"Insert text\",\n exec: function (editor, args) {\n editor.insert(lang.stringRepeat(args.text || \"\", args.times || 1));\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"splitline\",\n description: \"Split line\",\n bindKey: bindKey(null, \"Ctrl-O\"),\n exec: function (editor) { editor.splitLine(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"transposeletters\",\n description: \"Transpose letters\",\n bindKey: bindKey(\"Alt-Shift-X\", \"Ctrl-T\"),\n exec: function (editor) { editor.transposeLetters(); },\n multiSelectAction: function (editor) { editor.transposeSelections(1); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"touppercase\",\n description: \"To uppercase\",\n bindKey: bindKey(\"Ctrl-U\", \"Ctrl-U\"),\n exec: function (editor) { editor.toUpperCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"tolowercase\",\n description: \"To lowercase\",\n bindKey: bindKey(\"Ctrl-Shift-U\", \"Ctrl-Shift-U\"),\n exec: function (editor) { editor.toLowerCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"autoindent\",\n description: \"Auto Indent\",\n bindKey: bindKey(null, null),\n exec: function (editor) { editor.autoIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"animate\"\n }, {\n name: \"expandtoline\",\n description: \"Expand to line\",\n bindKey: bindKey(\"Ctrl-Shift-L\", \"Command-Shift-L\"),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.start.column = range.end.column = 0;\n range.end.row++;\n editor.selection.setRange(range, false);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"openlink\",\n bindKey: bindKey(\"Ctrl+F3\", \"F3\"),\n exec: function (editor) { editor.openLink(); }\n }, {\n name: \"joinlines\",\n description: \"Join lines\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n var isBackwards = editor.selection.isBackwards();\n var selectionStart = isBackwards ? editor.selection.getSelectionLead() : editor.selection.getSelectionAnchor();\n var selectionEnd = isBackwards ? editor.selection.getSelectionAnchor() : editor.selection.getSelectionLead();\n var firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length;\n var selectedText = editor.session.doc.getTextRange(editor.selection.getRange());\n var selectedCount = selectedText.replace(/\\n\\s*/, \" \").length;\n var insertLine = editor.session.doc.getLine(selectionStart.row);\n for (var i = selectionStart.row + 1; i <= selectionEnd.row + 1; i++) {\n var curLine = lang.stringTrimLeft(lang.stringTrimRight(editor.session.doc.getLine(i)));\n if (curLine.length !== 0) {\n curLine = \" \" + curLine;\n }\n insertLine += curLine;\n }\n if (selectionEnd.row + 1 < (editor.session.doc.getLength() - 1)) {\n insertLine += editor.session.doc.getNewLineCharacter();\n }\n editor.clearSelection();\n editor.session.doc.replace(new Range(selectionStart.row, 0, selectionEnd.row + 2, 0), insertLine);\n if (selectedCount > 0) {\n editor.selection.moveCursorTo(selectionStart.row, selectionStart.column);\n editor.selection.selectTo(selectionStart.row, selectionStart.column + selectedCount);\n }\n else {\n firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length > firstLineEndCol ? (firstLineEndCol + 1) : firstLineEndCol;\n editor.selection.moveCursorTo(selectionStart.row, firstLineEndCol);\n }\n },\n multiSelectAction: \"forEach\",\n readOnly: true\n }, {\n name: \"invertSelection\",\n description: \"Invert selection\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n var endRow = editor.session.doc.getLength() - 1;\n var endCol = editor.session.doc.getLine(endRow).length;\n var ranges = editor.selection.rangeList.ranges;\n var newRanges = [];\n if (ranges.length < 1) {\n ranges = [editor.selection.getRange()];\n }\n for (var i = 0; i < ranges.length; i++) {\n if (i == (ranges.length - 1)) {\n if (!(ranges[i].end.row === endRow && ranges[i].end.column === endCol)) {\n newRanges.push(new Range(ranges[i].end.row, ranges[i].end.column, endRow, endCol));\n }\n }\n if (i === 0) {\n if (!(ranges[i].start.row === 0 && ranges[i].start.column === 0)) {\n newRanges.push(new Range(0, 0, ranges[i].start.row, ranges[i].start.column));\n }\n }\n else {\n newRanges.push(new Range(ranges[i - 1].end.row, ranges[i - 1].end.column, ranges[i].start.row, ranges[i].start.column));\n }\n }\n editor.exitMultiSelectMode();\n editor.clearSelection();\n for (var i = 0; i < newRanges.length; i++) {\n editor.selection.addRange(newRanges[i], false);\n }\n },\n readOnly: true,\n scrollIntoView: \"none\"\n }, {\n name: \"addLineAfter\",\n description: \"Add new line after the current line\",\n exec: function (editor) {\n editor.selection.clearSelection();\n editor.navigateLineEnd();\n editor.insert(\"\\n\");\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"addLineBefore\",\n description: \"Add new line before the current line\",\n exec: function (editor) {\n editor.selection.clearSelection();\n var cursor = editor.getCursorPosition();\n editor.selection.moveTo(cursor.row - 1, Number.MAX_VALUE);\n editor.insert(\"\\n\");\n if (cursor.row === 0)\n editor.navigateUp();\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"openCommandPallete\",\n exec: function (editor) {\n console.warn(\"This is an obsolete command. Please use `openCommandPalette` instead.\");\n editor.prompt({ $type: \"commands\" });\n },\n readOnly: true\n }, {\n name: \"openCommandPalette\",\n description: \"Open command palette\",\n bindKey: bindKey(\"F1\", \"F1\"),\n exec: function (editor) {\n editor.prompt({ $type: \"commands\" });\n },\n readOnly: true\n }, {\n name: \"modeSelect\",\n description: \"Change language mode...\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n editor.prompt({ $type: \"modes\" });\n },\n readOnly: true\n }];\nfor (var i = 1; i < 9; i++) {\n exports.commands.push({\n name: \"foldToLevel\" + i,\n description: \"Fold To Level \" + i,\n level: i,\n exec: function (editor) { editor.session.foldToLevel(this.level); },\n scrollIntoView: \"center\",\n readOnly: true\n });\n}\n\n});\n\nace.define(\"ace/line_widgets\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"./lib/dom\");\nvar LineWidgets = /** @class */ (function () {\n function LineWidgets(session) {\n this.session = session;\n this.session.widgetManager = this;\n this.session.getRowLength = this.getRowLength;\n this.session.$getWidgetScreenLength = this.$getWidgetScreenLength;\n this.updateOnChange = this.updateOnChange.bind(this);\n this.renderWidgets = this.renderWidgets.bind(this);\n this.measureWidgets = this.measureWidgets.bind(this);\n this.session._changedWidgets = [];\n this.$onChangeEditor = this.$onChangeEditor.bind(this);\n this.session.on(\"change\", this.updateOnChange);\n this.session.on(\"changeFold\", this.updateOnFold);\n this.session.on(\"changeEditor\", this.$onChangeEditor);\n }\n LineWidgets.prototype.getRowLength = function (row) {\n var h;\n if (this.lineWidgets)\n h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n else\n h = 0;\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1 + h;\n }\n else {\n return this.$wrapData[row].length + 1 + h;\n }\n };\n LineWidgets.prototype.$getWidgetScreenLength = function () {\n var screenRows = 0;\n this.lineWidgets.forEach(function (w) {\n if (w && w.rowCount && !w.hidden)\n screenRows += w.rowCount;\n });\n return screenRows;\n };\n LineWidgets.prototype.$onChangeEditor = function (e) {\n this.attach(e.editor);\n };\n LineWidgets.prototype.attach = function (editor) {\n if (editor && editor.widgetManager && editor.widgetManager != this)\n editor.widgetManager.detach();\n if (this.editor == editor)\n return;\n this.detach();\n this.editor = editor;\n if (editor) {\n editor.widgetManager = this;\n editor.renderer.on(\"beforeRender\", this.measureWidgets);\n editor.renderer.on(\"afterRender\", this.renderWidgets);\n }\n };\n LineWidgets.prototype.detach = function (e) {\n var editor = this.editor;\n if (!editor)\n return;\n this.editor = null;\n editor.widgetManager = null;\n editor.renderer.off(\"beforeRender\", this.measureWidgets);\n editor.renderer.off(\"afterRender\", this.renderWidgets);\n var lineWidgets = this.session.lineWidgets;\n lineWidgets && lineWidgets.forEach(function (w) {\n if (w && w.el && w.el.parentNode) {\n w._inDocument = false;\n w.el.parentNode.removeChild(w.el);\n }\n });\n };\n LineWidgets.prototype.updateOnFold = function (e, session) {\n var lineWidgets = session.lineWidgets;\n if (!lineWidgets || !e.action)\n return;\n var fold = e.data;\n var start = fold.start.row;\n var end = fold.end.row;\n var hide = e.action == \"add\";\n for (var i = start + 1; i < end; i++) {\n if (lineWidgets[i])\n lineWidgets[i].hidden = hide;\n }\n if (lineWidgets[end]) {\n if (hide) {\n if (!lineWidgets[start])\n lineWidgets[start] = lineWidgets[end];\n else\n lineWidgets[end].hidden = hide;\n }\n else {\n if (lineWidgets[start] == lineWidgets[end])\n lineWidgets[start] = undefined;\n lineWidgets[end].hidden = hide;\n }\n }\n };\n LineWidgets.prototype.updateOnChange = function (delta) {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n if (len === 0) {\n }\n else if (delta.action == \"remove\") {\n var removed = lineWidgets.splice(startRow + 1, len);\n if (!lineWidgets[startRow] && removed[removed.length - 1]) {\n lineWidgets[startRow] = removed.pop();\n }\n removed.forEach(function (w) {\n w && this.removeLineWidget(w);\n }, this);\n this.$updateRows();\n }\n else {\n var args = new Array(len);\n if (lineWidgets[startRow] && lineWidgets[startRow].column != null) {\n if (delta.start.column > lineWidgets[startRow].column)\n startRow++;\n }\n args.unshift(startRow, 0);\n lineWidgets.splice.apply(lineWidgets, args);\n this.$updateRows();\n }\n };\n LineWidgets.prototype.$updateRows = function () {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var noWidgets = true;\n lineWidgets.forEach(function (w, i) {\n if (w) {\n noWidgets = false;\n w.row = i;\n while (w.$oldWidget) {\n w.$oldWidget.row = i;\n w = w.$oldWidget;\n }\n }\n });\n if (noWidgets)\n this.session.lineWidgets = null;\n };\n LineWidgets.prototype.$registerLineWidget = function (w) {\n if (!this.session.lineWidgets)\n this.session.lineWidgets = new Array(this.session.getLength());\n var old = this.session.lineWidgets[w.row];\n if (old) {\n w.$oldWidget = old;\n if (old.el && old.el.parentNode) {\n old.el.parentNode.removeChild(old.el);\n old._inDocument = false;\n }\n }\n this.session.lineWidgets[w.row] = w;\n return w;\n };\n LineWidgets.prototype.addLineWidget = function (w) {\n this.$registerLineWidget(w);\n w.session = this.session;\n if (!this.editor)\n return w;\n var renderer = this.editor.renderer;\n if (w.html && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.innerHTML = w.html;\n }\n if (w.text && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.textContent = w.text;\n }\n if (w.el) {\n dom.addCssClass(w.el, \"ace_lineWidgetContainer\");\n if (w.className) {\n dom.addCssClass(w.el, w.className);\n }\n w.el.style.position = \"absolute\";\n w.el.style.zIndex = 5;\n renderer.container.appendChild(w.el);\n w._inDocument = true;\n if (!w.coverGutter) {\n w.el.style.zIndex = 3;\n }\n if (w.pixelHeight == null) {\n w.pixelHeight = w.el.offsetHeight;\n }\n }\n if (w.rowCount == null) {\n w.rowCount = w.pixelHeight / renderer.layerConfig.lineHeight;\n }\n var fold = this.session.getFoldAt(w.row, 0);\n w.$fold = fold;\n if (fold) {\n var lineWidgets = this.session.lineWidgets;\n if (w.row == fold.end.row && !lineWidgets[fold.start.row])\n lineWidgets[fold.start.row] = w;\n else\n w.hidden = true;\n }\n this.session._emit(\"changeFold\", { data: { start: { row: w.row } } });\n this.$updateRows();\n this.renderWidgets(null, renderer);\n this.onWidgetChanged(w);\n return w;\n };\n LineWidgets.prototype.removeLineWidget = function (w) {\n w._inDocument = false;\n w.session = null;\n if (w.el && w.el.parentNode)\n w.el.parentNode.removeChild(w.el);\n if (w.editor && w.editor.destroy)\n try {\n w.editor.destroy();\n }\n catch (e) { }\n if (this.session.lineWidgets) {\n var w1 = this.session.lineWidgets[w.row];\n if (w1 == w) {\n this.session.lineWidgets[w.row] = w.$oldWidget;\n if (w.$oldWidget)\n this.onWidgetChanged(w.$oldWidget);\n }\n else {\n while (w1) {\n if (w1.$oldWidget == w) {\n w1.$oldWidget = w.$oldWidget;\n break;\n }\n w1 = w1.$oldWidget;\n }\n }\n }\n this.session._emit(\"changeFold\", { data: { start: { row: w.row } } });\n this.$updateRows();\n };\n LineWidgets.prototype.getWidgetsAtRow = function (row) {\n var lineWidgets = this.session.lineWidgets;\n var w = lineWidgets && lineWidgets[row];\n var list = [];\n while (w) {\n list.push(w);\n w = w.$oldWidget;\n }\n return list;\n };\n LineWidgets.prototype.onWidgetChanged = function (w) {\n this.session._changedWidgets.push(w);\n this.editor && this.editor.renderer.updateFull();\n };\n LineWidgets.prototype.measureWidgets = function (e, renderer) {\n var changedWidgets = this.session._changedWidgets;\n var config = renderer.layerConfig;\n if (!changedWidgets || !changedWidgets.length)\n return;\n var min = Infinity;\n for (var i = 0; i < changedWidgets.length; i++) {\n var w = changedWidgets[i];\n if (!w || !w.el)\n continue;\n if (w.session != this.session)\n continue;\n if (!w._inDocument) {\n if (this.session.lineWidgets[w.row] != w)\n continue;\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n w.h = w.el.offsetHeight;\n if (!w.fixedWidth) {\n w.w = w.el.offsetWidth;\n w.screenWidth = Math.ceil(w.w / config.characterWidth);\n }\n var rowCount = w.h / config.lineHeight;\n if (w.coverLine) {\n rowCount -= this.session.getRowLineCount(w.row);\n if (rowCount < 0)\n rowCount = 0;\n }\n if (w.rowCount != rowCount) {\n w.rowCount = rowCount;\n if (w.row < min)\n min = w.row;\n }\n }\n if (min != Infinity) {\n this.session._emit(\"changeFold\", { data: { start: { row: min } } });\n this.session.lineWidgetWidth = null;\n }\n this.session._changedWidgets = [];\n };\n LineWidgets.prototype.renderWidgets = function (e, renderer) {\n var config = renderer.layerConfig;\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var first = Math.min(this.firstRow, config.firstRow);\n var last = Math.max(this.lastRow, config.lastRow, lineWidgets.length);\n while (first > 0 && !lineWidgets[first])\n first--;\n this.firstRow = config.firstRow;\n this.lastRow = config.lastRow;\n renderer.$cursorLayer.config = config;\n for (var i = first; i <= last; i++) {\n var w = lineWidgets[i];\n if (!w || !w.el)\n continue;\n if (w.hidden) {\n w.el.style.top = -100 - (w.pixelHeight || 0) + \"px\";\n continue;\n }\n if (!w._inDocument) {\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n var top = renderer.$cursorLayer.getPixelPosition({ row: i, column: 0 }, true).top;\n if (!w.coverLine)\n top += config.lineHeight * this.session.getRowLineCount(w.row);\n w.el.style.top = top - config.offset + \"px\";\n var left = w.coverGutter ? 0 : renderer.gutterWidth;\n if (!w.fixedWidth)\n left -= renderer.scrollLeft;\n w.el.style.left = left + \"px\";\n if (w.fullWidth && w.screenWidth) {\n w.el.style.minWidth = config.width + 2 * config.padding + \"px\";\n }\n if (w.fixedWidth) {\n w.el.style.right = renderer.scrollBar.getWidth() + \"px\";\n }\n else {\n w.el.style.right = \"\";\n }\n }\n };\n return LineWidgets;\n}());\nexports.LineWidgets = LineWidgets;\n\n});\n\nace.define(\"ace/keyboard/gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/mouse/default_gutter_handler\"], function(require, exports, module){\"use strict\";\nvar keys = require('../lib/keys');\nvar GutterTooltip = require(\"../mouse/default_gutter_handler\").GutterTooltip;\nvar GutterKeyboardHandler = /** @class */ (function () {\n function GutterKeyboardHandler(editor) {\n this.editor = editor;\n this.gutterLayer = editor.renderer.$gutterLayer;\n this.element = editor.renderer.$gutter;\n this.lines = editor.renderer.$gutterLayer.$lines;\n this.activeRowIndex = null;\n this.activeLane = null;\n this.annotationTooltip = new GutterTooltip(this.editor);\n }\n GutterKeyboardHandler.prototype.addListener = function () {\n this.element.addEventListener(\"keydown\", this.$onGutterKeyDown.bind(this));\n this.element.addEventListener(\"focusout\", this.$blurGutter.bind(this));\n this.editor.on(\"mousewheel\", this.$blurGutter.bind(this));\n };\n GutterKeyboardHandler.prototype.removeListener = function () {\n this.element.removeEventListener(\"keydown\", this.$onGutterKeyDown.bind(this));\n this.element.removeEventListener(\"focusout\", this.$blurGutter.bind(this));\n this.editor.off(\"mousewheel\", this.$blurGutter.bind(this));\n };\n GutterKeyboardHandler.prototype.$onGutterKeyDown = function (e) {\n if (this.annotationTooltip.isOpen) {\n e.preventDefault();\n if (e.keyCode === keys[\"escape\"])\n this.annotationTooltip.hideTooltip();\n return;\n }\n if (e.target === this.element) {\n if (e.keyCode != keys[\"enter\"]) {\n return;\n }\n e.preventDefault();\n var row = this.editor.getCursorPosition().row;\n if (!this.editor.isRowVisible(row))\n this.editor.scrollToLine(row, true, true);\n setTimeout(function () {\n var index = this.$rowToRowIndex(this.gutterLayer.$cursorCell.row);\n var nearestFoldIndex = this.$findNearestFoldWidget(index);\n var nearestAnnotationIndex = this.$findNearestAnnotation(index);\n if (nearestFoldIndex === null && nearestAnnotationIndex === null)\n return;\n if (nearestFoldIndex === null && nearestAnnotationIndex !== null) {\n this.activeRowIndex = nearestAnnotationIndex;\n this.activeLane = \"annotation\";\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n if (nearestFoldIndex !== null && nearestAnnotationIndex === null) {\n this.activeRowIndex = nearestFoldIndex;\n this.activeLane = \"fold\";\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n if (Math.abs(nearestAnnotationIndex - index) < Math.abs(nearestFoldIndex - index)) {\n this.activeRowIndex = nearestAnnotationIndex;\n this.activeLane = \"annotation\";\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n else {\n this.activeRowIndex = nearestFoldIndex;\n this.activeLane = \"fold\";\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }.bind(this), 10);\n return;\n }\n this.$handleGutterKeyboardInteraction(e);\n setTimeout(function () {\n this.editor._signal(\"gutterkeydown\", new GutterKeyboardEvent(e, this));\n }.bind(this), 10);\n };\n GutterKeyboardHandler.prototype.$handleGutterKeyboardInteraction = function (e) {\n if (e.keyCode === keys[\"tab\"]) {\n e.preventDefault();\n return;\n }\n if (e.keyCode === keys[\"escape\"]) {\n e.preventDefault();\n this.$blurGutter();\n this.element.focus();\n this.lane = null;\n return;\n }\n if (e.keyCode === keys[\"up\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n this.$moveFoldWidgetUp();\n break;\n case \"annotation\":\n this.$moveAnnotationUp();\n break;\n }\n return;\n }\n if (e.keyCode === keys[\"down\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n this.$moveFoldWidgetDown();\n break;\n case \"annotation\":\n this.$moveAnnotationDown();\n break;\n }\n return;\n }\n if (e.keyCode === keys[\"left\"]) {\n e.preventDefault();\n this.$switchLane(\"annotation\");\n return;\n }\n if (e.keyCode === keys[\"right\"]) {\n e.preventDefault();\n this.$switchLane(\"fold\");\n return;\n }\n if (e.keyCode === keys[\"enter\"] || e.keyCode === keys[\"space\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n if (this.gutterLayer.session.foldWidgets[this.$rowIndexToRow(this.activeRowIndex)] === 'start') {\n var rowFoldingWidget = this.$rowIndexToRow(this.activeRowIndex);\n this.editor.session.onFoldWidgetClick(this.$rowIndexToRow(this.activeRowIndex), e);\n setTimeout(function () {\n if (this.$rowIndexToRow(this.activeRowIndex) !== rowFoldingWidget) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = this.$rowToRowIndex(rowFoldingWidget);\n this.$focusFoldWidget(this.activeRowIndex);\n }\n }.bind(this), 10);\n break;\n }\n else if (this.gutterLayer.session.foldWidgets[this.$rowIndexToRow(this.activeRowIndex)] === 'end') {\n break;\n }\n return;\n case \"annotation\":\n var gutterElement = this.lines.cells[this.activeRowIndex].element.childNodes[2];\n var rect = gutterElement.getBoundingClientRect();\n var style = this.annotationTooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n this.annotationTooltip.showTooltip(this.$rowIndexToRow(this.activeRowIndex));\n break;\n }\n return;\n }\n };\n GutterKeyboardHandler.prototype.$blurGutter = function () {\n if (this.activeRowIndex !== null) {\n switch (this.activeLane) {\n case \"fold\":\n this.$blurFoldWidget(this.activeRowIndex);\n break;\n case \"annotation\":\n this.$blurAnnotation(this.activeRowIndex);\n break;\n }\n }\n if (this.annotationTooltip.isOpen)\n this.annotationTooltip.hideTooltip();\n return;\n };\n GutterKeyboardHandler.prototype.$isFoldWidgetVisible = function (index) {\n var isRowFullyVisible = this.editor.isRowFullyVisible(this.$rowIndexToRow(index));\n var isIconVisible = this.$getFoldWidget(index).style.display !== \"none\";\n return isRowFullyVisible && isIconVisible;\n };\n GutterKeyboardHandler.prototype.$isAnnotationVisible = function (index) {\n var isRowFullyVisible = this.editor.isRowFullyVisible(this.$rowIndexToRow(index));\n var isIconVisible = this.$getAnnotation(index).style.display !== \"none\";\n return isRowFullyVisible && isIconVisible;\n };\n GutterKeyboardHandler.prototype.$getFoldWidget = function (index) {\n var cell = this.lines.get(index);\n var element = cell.element;\n return element.childNodes[1];\n };\n GutterKeyboardHandler.prototype.$getAnnotation = function (index) {\n var cell = this.lines.get(index);\n var element = cell.element;\n return element.childNodes[2];\n };\n GutterKeyboardHandler.prototype.$findNearestFoldWidget = function (index) {\n if (this.$isFoldWidgetVisible(index))\n return index;\n var i = 0;\n while (index - i > 0 || index + i < this.lines.getLength() - 1) {\n i++;\n if (index - i >= 0 && this.$isFoldWidgetVisible(index - i))\n return index - i;\n if (index + i <= this.lines.getLength() - 1 && this.$isFoldWidgetVisible(index + i))\n return index + i;\n }\n return null;\n };\n GutterKeyboardHandler.prototype.$findNearestAnnotation = function (index) {\n if (this.$isAnnotationVisible(index))\n return index;\n var i = 0;\n while (index - i > 0 || index + i < this.lines.getLength() - 1) {\n i++;\n if (index - i >= 0 && this.$isAnnotationVisible(index - i))\n return index - i;\n if (index + i <= this.lines.getLength() - 1 && this.$isAnnotationVisible(index + i))\n return index + i;\n }\n return null;\n };\n GutterKeyboardHandler.prototype.$focusFoldWidget = function (index) {\n if (index == null)\n return;\n var foldWidget = this.$getFoldWidget(index);\n foldWidget.classList.add(this.editor.renderer.keyboardFocusClassName);\n foldWidget.focus();\n };\n GutterKeyboardHandler.prototype.$focusAnnotation = function (index) {\n if (index == null)\n return;\n var annotation = this.$getAnnotation(index);\n annotation.classList.add(this.editor.renderer.keyboardFocusClassName);\n annotation.focus();\n };\n GutterKeyboardHandler.prototype.$blurFoldWidget = function (index) {\n var foldWidget = this.$getFoldWidget(index);\n foldWidget.classList.remove(this.editor.renderer.keyboardFocusClassName);\n foldWidget.blur();\n };\n GutterKeyboardHandler.prototype.$blurAnnotation = function (index) {\n var annotation = this.$getAnnotation(index);\n annotation.classList.remove(this.editor.renderer.keyboardFocusClassName);\n annotation.blur();\n };\n GutterKeyboardHandler.prototype.$moveFoldWidgetUp = function () {\n var index = this.activeRowIndex;\n while (index > 0) {\n index--;\n if (this.$isFoldWidgetVisible(index)) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveFoldWidgetDown = function () {\n var index = this.activeRowIndex;\n while (index < this.lines.getLength() - 1) {\n index++;\n if (this.$isFoldWidgetVisible(index)) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveAnnotationUp = function () {\n var index = this.activeRowIndex;\n while (index > 0) {\n index--;\n if (this.$isAnnotationVisible(index)) {\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveAnnotationDown = function () {\n var index = this.activeRowIndex;\n while (index < this.lines.getLength() - 1) {\n index++;\n if (this.$isAnnotationVisible(index)) {\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$switchLane = function (desinationLane) {\n switch (desinationLane) {\n case \"annotation\":\n if (this.activeLane === \"annotation\") {\n break;\n }\n var annotationIndex = this.$findNearestAnnotation(this.activeRowIndex);\n if (annotationIndex == null) {\n break;\n }\n this.activeLane = \"annotation\";\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = annotationIndex;\n this.$focusAnnotation(this.activeRowIndex);\n break;\n case \"fold\":\n if (this.activeLane === \"fold\") {\n break;\n }\n var foldWidgetIndex = this.$findNearestFoldWidget(this.activeRowIndex);\n if (foldWidgetIndex == null) {\n break;\n }\n this.activeLane = \"fold\";\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = foldWidgetIndex;\n this.$focusFoldWidget(this.activeRowIndex);\n break;\n }\n return;\n };\n GutterKeyboardHandler.prototype.$rowIndexToRow = function (index) {\n var cell = this.lines.get(index);\n if (cell)\n return cell.row;\n return null;\n };\n GutterKeyboardHandler.prototype.$rowToRowIndex = function (row) {\n for (var i = 0; i < this.lines.getLength(); i++) {\n var cell = this.lines.get(i);\n if (cell.row == row)\n return i;\n }\n return null;\n };\n return GutterKeyboardHandler;\n}());\nexports.GutterKeyboardHandler = GutterKeyboardHandler;\nvar GutterKeyboardEvent = /** @class */ (function () {\n function GutterKeyboardEvent(domEvent, gutterKeyboardHandler) {\n this.gutterKeyboardHandler = gutterKeyboardHandler;\n this.domEvent = domEvent;\n }\n GutterKeyboardEvent.prototype.getKey = function () {\n return keys.keyCodeToString(this.domEvent.keyCode);\n };\n GutterKeyboardEvent.prototype.getRow = function () {\n return this.gutterKeyboardHandler.$rowIndexToRow(this.gutterKeyboardHandler.activeRowIndex);\n };\n GutterKeyboardEvent.prototype.isInAnnotationLane = function () {\n return this.gutterKeyboardHandler.activeLane === \"annotation\";\n };\n GutterKeyboardEvent.prototype.isInFoldLane = function () {\n return this.gutterKeyboardHandler.activeLane === \"fold\";\n };\n return GutterKeyboardEvent;\n}());\nexports.GutterKeyboardEvent = GutterKeyboardEvent;\n\n});\n\nace.define(\"ace/editor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/keyboard/textinput\",\"ace/mouse/mouse_handler\",\"ace/mouse/fold_handler\",\"ace/keyboard/keybinding\",\"ace/edit_session\",\"ace/search\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/commands/command_manager\",\"ace/commands/default_commands\",\"ace/config\",\"ace/token_iterator\",\"ace/line_widgets\",\"ace/keyboard/gutter_handler\",\"ace/config\",\"ace/clipboard\",\"ace/lib/keys\"], function(require, exports, module){\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar lang = require(\"./lib/lang\");\nvar useragent = require(\"./lib/useragent\");\nvar TextInput = require(\"./keyboard/textinput\").TextInput;\nvar MouseHandler = require(\"./mouse/mouse_handler\").MouseHandler;\nvar FoldHandler = require(\"./mouse/fold_handler\").FoldHandler;\nvar KeyBinding = require(\"./keyboard/keybinding\").KeyBinding;\nvar EditSession = require(\"./edit_session\").EditSession;\nvar Search = require(\"./search\").Search;\nvar Range = require(\"./range\").Range;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar CommandManager = require(\"./commands/command_manager\").CommandManager;\nvar defaultCommands = require(\"./commands/default_commands\").commands;\nvar config = require(\"./config\");\nvar TokenIterator = require(\"./token_iterator\").TokenIterator;\nvar LineWidgets = require(\"./line_widgets\").LineWidgets;\nvar GutterKeyboardHandler = require(\"./keyboard/gutter_handler\").GutterKeyboardHandler;\nvar nls = require(\"./config\").nls;\nvar clipboard = require(\"./clipboard\");\nvar keys = require('./lib/keys');\nvar Editor = /** @class */ (function () {\n function Editor(renderer, session, options) {\n this.$toDestroy = [];\n var container = renderer.getContainerElement();\n this.container = container;\n this.renderer = renderer;\n this.id = \"editor\" + (++Editor.$uid);\n this.commands = new CommandManager(useragent.isMac ? \"mac\" : \"win\", defaultCommands);\n if (typeof document == \"object\") {\n this.textInput = new TextInput(renderer.getTextAreaContainer(), this);\n this.renderer.textarea = this.textInput.getElement();\n this.$mouseHandler = new MouseHandler(this);\n new FoldHandler(this);\n }\n this.keyBinding = new KeyBinding(this);\n this.$search = new Search().set({\n wrap: true\n });\n this.$historyTracker = this.$historyTracker.bind(this);\n this.commands.on(\"exec\", this.$historyTracker);\n this.$initOperationListeners();\n this._$emitInputEvent = lang.delayedCall(function () {\n this._signal(\"input\", {});\n if (this.session && !this.session.destroyed)\n this.session.bgTokenizer.scheduleStart();\n }.bind(this));\n this.on(\"change\", function (_, _self) {\n _self._$emitInputEvent.schedule(31);\n });\n this.setSession(session || options && options.session || new EditSession(\"\"));\n config.resetOptions(this);\n if (options)\n this.setOptions(options);\n config._signal(\"editor\", this);\n }\n Editor.prototype.$initOperationListeners = function () {\n this.commands.on(\"exec\", this.startOperation.bind(this), true);\n this.commands.on(\"afterExec\", this.endOperation.bind(this), true);\n this.$opResetTimer = lang.delayedCall(this.endOperation.bind(this, true));\n this.on(\"change\", function () {\n if (!this.curOp) {\n this.startOperation();\n this.curOp.selectionBefore = this.$lastSel;\n }\n this.curOp.docChanged = true;\n }.bind(this), true);\n this.on(\"changeSelection\", function () {\n if (!this.curOp) {\n this.startOperation();\n this.curOp.selectionBefore = this.$lastSel;\n }\n this.curOp.selectionChanged = true;\n }.bind(this), true);\n };\n Editor.prototype.startOperation = function (commandEvent) {\n if (this.curOp) {\n if (!commandEvent || this.curOp.command)\n return;\n this.prevOp = this.curOp;\n }\n if (!commandEvent) {\n this.previousCommand = null;\n commandEvent = {};\n }\n this.$opResetTimer.schedule();\n this.curOp = this.session.curOp = {\n command: commandEvent.command || {},\n args: commandEvent.args,\n scrollTop: this.renderer.scrollTop\n };\n this.curOp.selectionBefore = this.selection.toJSON();\n };\n Editor.prototype.endOperation = function (e) {\n if (this.curOp && this.session) {\n if (e && e.returnValue === false || !this.session)\n return (this.curOp = null);\n if (e == true && this.curOp.command && this.curOp.command.name == \"mouse\")\n return;\n this._signal(\"beforeEndOperation\");\n if (!this.curOp)\n return;\n var command = this.curOp.command;\n var scrollIntoView = command && command.scrollIntoView;\n if (scrollIntoView) {\n switch (scrollIntoView) {\n case \"center-animate\":\n scrollIntoView = \"animate\";\n case \"center\":\n this.renderer.scrollCursorIntoView(null, 0.5);\n break;\n case \"animate\":\n case \"cursor\":\n this.renderer.scrollCursorIntoView();\n break;\n case \"selectionPart\":\n var range = this.selection.getRange();\n var config = this.renderer.layerConfig;\n if (range.start.row >= config.lastRow || range.end.row <= config.firstRow) {\n this.renderer.scrollSelectionIntoView(this.selection.anchor, this.selection.lead);\n }\n break;\n default:\n break;\n }\n if (scrollIntoView == \"animate\")\n this.renderer.animateScrolling(this.curOp.scrollTop);\n }\n var sel = this.selection.toJSON();\n this.curOp.selectionAfter = sel;\n this.$lastSel = this.selection.toJSON();\n this.session.getUndoManager().addSelection(sel);\n this.prevOp = this.curOp;\n this.curOp = null;\n }\n };\n Editor.prototype.$historyTracker = function (e) {\n if (!this.$mergeUndoDeltas)\n return;\n var prev = this.prevOp;\n var mergeableCommands = this.$mergeableCommands;\n var shouldMerge = prev.command && (e.command.name == prev.command.name);\n if (e.command.name == \"insertstring\") {\n var text = e.args;\n if (this.mergeNextCommand === undefined)\n this.mergeNextCommand = true;\n shouldMerge = shouldMerge\n && this.mergeNextCommand // previous command allows to coalesce with\n && (!/\\s/.test(text) || /\\s/.test(prev.args)); // previous insertion was of same type\n this.mergeNextCommand = true;\n }\n else {\n shouldMerge = shouldMerge\n && mergeableCommands.indexOf(e.command.name) !== -1; // the command is mergeable\n }\n if (this.$mergeUndoDeltas != \"always\"\n && Date.now() - this.sequenceStartTime > 2000) {\n shouldMerge = false; // the sequence is too long\n }\n if (shouldMerge)\n this.session.mergeUndoDeltas = true;\n else if (mergeableCommands.indexOf(e.command.name) !== -1)\n this.sequenceStartTime = Date.now();\n };\n Editor.prototype.setKeyboardHandler = function (keyboardHandler, cb) {\n if (keyboardHandler && typeof keyboardHandler === \"string\" && keyboardHandler != \"ace\") {\n this.$keybindingId = keyboardHandler;\n var _self = this;\n config.loadModule([\"keybinding\", keyboardHandler], function (module) {\n if (_self.$keybindingId == keyboardHandler)\n _self.keyBinding.setKeyboardHandler(module && module.handler);\n cb && cb();\n });\n }\n else {\n this.$keybindingId = null;\n this.keyBinding.setKeyboardHandler(keyboardHandler);\n cb && cb();\n }\n };\n Editor.prototype.getKeyboardHandler = function () {\n return this.keyBinding.getKeyboardHandler();\n };\n Editor.prototype.setSession = function (session) {\n if (this.session == session)\n return;\n if (this.curOp)\n this.endOperation();\n this.curOp = {};\n var oldSession = this.session;\n if (oldSession) {\n this.session.off(\"change\", this.$onDocumentChange);\n this.session.off(\"changeMode\", this.$onChangeMode);\n this.session.off(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.session.off(\"changeTabSize\", this.$onChangeTabSize);\n this.session.off(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.session.off(\"changeWrapMode\", this.$onChangeWrapMode);\n this.session.off(\"changeFold\", this.$onChangeFold);\n this.session.off(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.session.off(\"changeBackMarker\", this.$onChangeBackMarker);\n this.session.off(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.session.off(\"changeAnnotation\", this.$onChangeAnnotation);\n this.session.off(\"changeOverwrite\", this.$onCursorChange);\n this.session.off(\"changeScrollTop\", this.$onScrollTopChange);\n this.session.off(\"changeScrollLeft\", this.$onScrollLeftChange);\n var selection = this.session.getSelection();\n selection.off(\"changeCursor\", this.$onCursorChange);\n selection.off(\"changeSelection\", this.$onSelectionChange);\n }\n this.session = session;\n if (session) {\n this.$onDocumentChange = this.onDocumentChange.bind(this);\n session.on(\"change\", this.$onDocumentChange);\n this.renderer.setSession(session);\n this.$onChangeMode = this.onChangeMode.bind(this);\n session.on(\"changeMode\", this.$onChangeMode);\n this.$onTokenizerUpdate = this.onTokenizerUpdate.bind(this);\n session.on(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.$onChangeTabSize = this.renderer.onChangeTabSize.bind(this.renderer);\n session.on(\"changeTabSize\", this.$onChangeTabSize);\n this.$onChangeWrapLimit = this.onChangeWrapLimit.bind(this);\n session.on(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.$onChangeWrapMode = this.onChangeWrapMode.bind(this);\n session.on(\"changeWrapMode\", this.$onChangeWrapMode);\n this.$onChangeFold = this.onChangeFold.bind(this);\n session.on(\"changeFold\", this.$onChangeFold);\n this.$onChangeFrontMarker = this.onChangeFrontMarker.bind(this);\n this.session.on(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.$onChangeBackMarker = this.onChangeBackMarker.bind(this);\n this.session.on(\"changeBackMarker\", this.$onChangeBackMarker);\n this.$onChangeBreakpoint = this.onChangeBreakpoint.bind(this);\n this.session.on(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.$onChangeAnnotation = this.onChangeAnnotation.bind(this);\n this.session.on(\"changeAnnotation\", this.$onChangeAnnotation);\n this.$onCursorChange = this.onCursorChange.bind(this);\n this.session.on(\"changeOverwrite\", this.$onCursorChange);\n this.$onScrollTopChange = this.onScrollTopChange.bind(this);\n this.session.on(\"changeScrollTop\", this.$onScrollTopChange);\n this.$onScrollLeftChange = this.onScrollLeftChange.bind(this);\n this.session.on(\"changeScrollLeft\", this.$onScrollLeftChange);\n this.selection = session.getSelection();\n this.selection.on(\"changeCursor\", this.$onCursorChange);\n this.$onSelectionChange = this.onSelectionChange.bind(this);\n this.selection.on(\"changeSelection\", this.$onSelectionChange);\n this.onChangeMode();\n this.onCursorChange();\n this.onScrollTopChange();\n this.onScrollLeftChange();\n this.onSelectionChange();\n this.onChangeFrontMarker();\n this.onChangeBackMarker();\n this.onChangeBreakpoint();\n this.onChangeAnnotation();\n this.session.getUseWrapMode() && this.renderer.adjustWrapLimit();\n this.renderer.updateFull();\n }\n else {\n this.selection = null;\n this.renderer.setSession(session);\n }\n this._signal(\"changeSession\", {\n session: session,\n oldSession: oldSession\n });\n this.curOp = null;\n oldSession && oldSession._signal(\"changeEditor\", { oldEditor: this });\n session && session._signal(\"changeEditor\", { editor: this });\n if (session && !session.destroyed)\n session.bgTokenizer.scheduleStart();\n };\n Editor.prototype.getSession = function () {\n return this.session;\n };\n Editor.prototype.setValue = function (val, cursorPos) {\n this.session.doc.setValue(val);\n if (!cursorPos)\n this.selectAll();\n else if (cursorPos == 1)\n this.navigateFileEnd();\n else if (cursorPos == -1)\n this.navigateFileStart();\n return val;\n };\n Editor.prototype.getValue = function () {\n return this.session.getValue();\n };\n Editor.prototype.getSelection = function () {\n return this.selection;\n };\n Editor.prototype.resize = function (force) {\n this.renderer.onResize(force);\n };\n Editor.prototype.setTheme = function (theme, cb) {\n this.renderer.setTheme(theme, cb);\n };\n Editor.prototype.getTheme = function () {\n return this.renderer.getTheme();\n };\n Editor.prototype.setStyle = function (style) {\n this.renderer.setStyle(style);\n };\n Editor.prototype.unsetStyle = function (style) {\n this.renderer.unsetStyle(style);\n };\n Editor.prototype.getFontSize = function () {\n return this.getOption(\"fontSize\") ||\n dom.computedStyle(this.container).fontSize;\n };\n Editor.prototype.setFontSize = function (size) {\n this.setOption(\"fontSize\", size);\n };\n Editor.prototype.$highlightBrackets = function () {\n if (this.$highlightPending) {\n return;\n }\n var self = this;\n this.$highlightPending = true;\n setTimeout(function () {\n self.$highlightPending = false;\n var session = self.session;\n if (!session || session.destroyed)\n return;\n if (session.$bracketHighlight) {\n session.$bracketHighlight.markerIds.forEach(function (id) {\n session.removeMarker(id);\n });\n session.$bracketHighlight = null;\n }\n var pos = self.getCursorPosition();\n var handler = self.getKeyboardHandler();\n var isBackwards = handler && handler.$getDirectionForHighlight && handler.$getDirectionForHighlight(self);\n var ranges = session.getMatchingBracketRanges(pos, isBackwards);\n if (!ranges) {\n var iterator = new TokenIterator(session, pos.row, pos.column);\n var token = iterator.getCurrentToken();\n if (token && /\\b(?:tag-open|tag-name)/.test(token.type)) {\n var tagNamesRanges = session.getMatchingTags(pos);\n if (tagNamesRanges)\n ranges = [tagNamesRanges.openTagName, tagNamesRanges.closeTagName];\n }\n }\n if (!ranges && session.$mode.getMatching)\n ranges = session.$mode.getMatching(self.session);\n if (!ranges) {\n if (self.getHighlightIndentGuides())\n self.renderer.$textLayer.$highlightIndentGuide();\n return;\n }\n var markerType = \"ace_bracket\";\n if (!Array.isArray(ranges)) {\n ranges = [ranges];\n }\n else if (ranges.length == 1) {\n markerType = \"ace_error_bracket\";\n }\n if (ranges.length == 2) {\n if (Range.comparePoints(ranges[0].end, ranges[1].start) == 0)\n ranges = [Range.fromPoints(ranges[0].start, ranges[1].end)];\n else if (Range.comparePoints(ranges[0].start, ranges[1].end) == 0)\n ranges = [Range.fromPoints(ranges[1].start, ranges[0].end)];\n }\n session.$bracketHighlight = {\n ranges: ranges,\n markerIds: ranges.map(function (range) {\n return session.addMarker(range, markerType, \"text\");\n })\n };\n if (self.getHighlightIndentGuides())\n self.renderer.$textLayer.$highlightIndentGuide();\n }, 50);\n };\n Editor.prototype.focus = function () {\n this.textInput.focus();\n };\n Editor.prototype.isFocused = function () {\n return this.textInput.isFocused();\n };\n Editor.prototype.blur = function () {\n this.textInput.blur();\n };\n Editor.prototype.onFocus = function (e) {\n if (this.$isFocused)\n return;\n this.$isFocused = true;\n this.renderer.showCursor();\n this.renderer.visualizeFocus();\n this._emit(\"focus\", e);\n };\n Editor.prototype.onBlur = function (e) {\n if (!this.$isFocused)\n return;\n this.$isFocused = false;\n this.renderer.hideCursor();\n this.renderer.visualizeBlur();\n this._emit(\"blur\", e);\n };\n Editor.prototype.$cursorChange = function () {\n this.renderer.updateCursor();\n this.$highlightBrackets();\n this.$updateHighlightActiveLine();\n };\n Editor.prototype.onDocumentChange = function (delta) {\n var wrap = this.session.$useWrapMode;\n var lastRow = (delta.start.row == delta.end.row ? delta.end.row : Infinity);\n this.renderer.updateLines(delta.start.row, lastRow, wrap);\n this._signal(\"change\", delta);\n this.$cursorChange();\n };\n Editor.prototype.onTokenizerUpdate = function (e) {\n var rows = e.data;\n this.renderer.updateLines(rows.first, rows.last);\n };\n Editor.prototype.onScrollTopChange = function () {\n this.renderer.scrollToY(this.session.getScrollTop());\n };\n Editor.prototype.onScrollLeftChange = function () {\n this.renderer.scrollToX(this.session.getScrollLeft());\n };\n Editor.prototype.onCursorChange = function () {\n this.$cursorChange();\n this._signal(\"changeSelection\");\n };\n Editor.prototype.$updateHighlightActiveLine = function () {\n var session = this.getSession();\n var highlight;\n if (this.$highlightActiveLine) {\n if (this.$selectionStyle != \"line\" || !this.selection.isMultiLine())\n highlight = this.getCursorPosition();\n if (this.renderer.theme && this.renderer.theme.$selectionColorConflict && !this.selection.isEmpty())\n highlight = false;\n if (this.renderer.$maxLines && this.session.getLength() === 1 && !(this.renderer.$minLines > 1))\n highlight = false;\n }\n if (session.$highlightLineMarker && !highlight) {\n session.removeMarker(session.$highlightLineMarker.id);\n session.$highlightLineMarker = null;\n }\n else if (!session.$highlightLineMarker && highlight) {\n var range = new Range(highlight.row, highlight.column, highlight.row, Infinity);\n range.id = session.addMarker(range, \"ace_active-line\", \"screenLine\");\n session.$highlightLineMarker = range;\n }\n else if (highlight) {\n session.$highlightLineMarker.start.row = highlight.row;\n session.$highlightLineMarker.end.row = highlight.row;\n session.$highlightLineMarker.start.column = highlight.column;\n session._signal(\"changeBackMarker\");\n }\n };\n Editor.prototype.onSelectionChange = function (e) {\n var session = this.session;\n if (session.$selectionMarker) {\n session.removeMarker(session.$selectionMarker);\n }\n session.$selectionMarker = null;\n if (!this.selection.isEmpty()) {\n var range = this.selection.getRange();\n var style = this.getSelectionStyle();\n session.$selectionMarker = session.addMarker(range, \"ace_selection\", style);\n }\n else {\n this.$updateHighlightActiveLine();\n }\n var re = this.$highlightSelectedWord && this.$getSelectionHighLightRegexp();\n this.session.highlight(re);\n this._signal(\"changeSelection\");\n };\n Editor.prototype.$getSelectionHighLightRegexp = function () {\n var session = this.session;\n var selection = this.getSelectionRange();\n if (selection.isEmpty() || selection.isMultiLine())\n return;\n var startColumn = selection.start.column;\n var endColumn = selection.end.column;\n var line = session.getLine(selection.start.row);\n var needle = line.substring(startColumn, endColumn);\n if (needle.length > 5000 || !/[\\w\\d]/.test(needle))\n return;\n var re = this.$search.$assembleRegExp({\n wholeWord: true,\n caseSensitive: true,\n needle: needle\n });\n var wordWithBoundary = line.substring(startColumn - 1, endColumn + 1);\n if (!re.test(wordWithBoundary))\n return;\n return re;\n };\n Editor.prototype.onChangeFrontMarker = function () {\n this.renderer.updateFrontMarkers();\n };\n Editor.prototype.onChangeBackMarker = function () {\n this.renderer.updateBackMarkers();\n };\n Editor.prototype.onChangeBreakpoint = function () {\n this.renderer.updateBreakpoints();\n };\n Editor.prototype.onChangeAnnotation = function () {\n this.renderer.setAnnotations(this.session.getAnnotations());\n };\n Editor.prototype.onChangeMode = function (e) {\n this.renderer.updateText();\n this._emit(\"changeMode\", e);\n };\n Editor.prototype.onChangeWrapLimit = function () {\n this.renderer.updateFull();\n };\n Editor.prototype.onChangeWrapMode = function () {\n this.renderer.onResize(true);\n };\n Editor.prototype.onChangeFold = function () {\n this.$updateHighlightActiveLine();\n this.renderer.updateFull();\n };\n Editor.prototype.getSelectedText = function () {\n return this.session.getTextRange(this.getSelectionRange());\n };\n Editor.prototype.getCopyText = function () {\n var text = this.getSelectedText();\n var nl = this.session.doc.getNewLineCharacter();\n var copyLine = false;\n if (!text && this.$copyWithEmptySelection) {\n copyLine = true;\n var ranges = this.selection.getAllRanges();\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (i && ranges[i - 1].start.row == range.start.row)\n continue;\n text += this.session.getLine(range.start.row) + nl;\n }\n }\n var e = { text: text };\n this._signal(\"copy\", e);\n clipboard.lineMode = copyLine ? e.text : false;\n return e.text;\n };\n Editor.prototype.onCopy = function () {\n this.commands.exec(\"copy\", this);\n };\n Editor.prototype.onCut = function () {\n this.commands.exec(\"cut\", this);\n };\n Editor.prototype.onPaste = function (text, event) {\n var e = { text: text, event: event };\n this.commands.exec(\"paste\", this, e);\n };\n Editor.prototype.$handlePaste = function (e) {\n if (typeof e == \"string\")\n e = { text: e };\n this._signal(\"paste\", e);\n var text = e.text;\n var lineMode = text === clipboard.lineMode;\n var session = this.session;\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode) {\n if (lineMode)\n session.insert({ row: this.selection.lead.row, column: 0 }, text);\n else\n this.insert(text);\n }\n else if (lineMode) {\n this.selection.rangeList.ranges.forEach(function (range) {\n session.insert({ row: range.start.row, column: 0 }, text);\n });\n }\n else {\n var lines = text.split(/\\r\\n|\\r|\\n/);\n var ranges = this.selection.rangeList.ranges;\n var isFullLine = lines.length == 2 && (!lines[0] || !lines[1]);\n if (lines.length != ranges.length || isFullLine)\n return this.commands.exec(\"insertstring\", this, text);\n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.isEmpty())\n session.remove(range);\n session.insert(range.start, lines[i]);\n }\n }\n };\n Editor.prototype.execCommand = function (command, args) {\n return this.commands.exec(command, this, args);\n };\n Editor.prototype.insert = function (text, pasted) {\n var session = this.session;\n var mode = session.getMode();\n var cursor = this.getCursorPosition();\n if (this.getBehavioursEnabled() && !pasted) {\n var transform = mode.transformAction(session.getState(cursor.row), 'insertion', this, session, text);\n if (transform) {\n if (text !== transform.text) {\n if (!this.inVirtualSelectionMode) {\n this.session.mergeUndoDeltas = false;\n this.mergeNextCommand = false;\n }\n }\n text = transform.text;\n }\n }\n if (text == \"\\t\")\n text = this.session.getTabString();\n if (!this.selection.isEmpty()) {\n var range = this.getSelectionRange();\n cursor = this.session.remove(range);\n this.clearSelection();\n }\n else if (this.session.getOverwrite() && text.indexOf(\"\\n\") == -1) {\n var range = new Range.fromPoints(cursor, cursor);\n range.end.column += text.length;\n this.session.remove(range);\n }\n if (text == \"\\n\" || text == \"\\r\\n\") {\n var line = session.getLine(cursor.row);\n if (cursor.column > line.search(/\\S|$/)) {\n var d = line.substr(cursor.column).search(/\\S|$/);\n session.doc.removeInLine(cursor.row, cursor.column, cursor.column + d);\n }\n }\n this.clearSelection();\n var start = cursor.column;\n var lineState = session.getState(cursor.row);\n var line = session.getLine(cursor.row);\n var shouldOutdent = mode.checkOutdent(lineState, line, text);\n session.insert(cursor, text);\n if (transform && transform.selection) {\n if (transform.selection.length == 2) { // Transform relative to the current column\n this.selection.setSelectionRange(new Range(cursor.row, start + transform.selection[0], cursor.row, start + transform.selection[1]));\n }\n else { // Transform relative to the current row.\n this.selection.setSelectionRange(new Range(cursor.row + transform.selection[0], transform.selection[1], cursor.row + transform.selection[2], transform.selection[3]));\n }\n }\n if (this.$enableAutoIndent) {\n if (session.getDocument().isNewLine(text)) {\n var lineIndent = mode.getNextLineIndent(lineState, line.slice(0, cursor.column), session.getTabString());\n session.insert({ row: cursor.row + 1, column: 0 }, lineIndent);\n }\n if (shouldOutdent)\n mode.autoOutdent(lineState, session, cursor.row);\n }\n };\n Editor.prototype.autoIndent = function () {\n var session = this.session;\n var mode = session.getMode();\n var startRow, endRow;\n if (this.selection.isEmpty()) {\n startRow = 0;\n endRow = session.doc.getLength() - 1;\n }\n else {\n var selectedRange = this.getSelectionRange();\n startRow = selectedRange.start.row;\n endRow = selectedRange.end.row;\n }\n var prevLineState = \"\";\n var prevLine = \"\";\n var lineIndent = \"\";\n var line, currIndent, range;\n var tab = session.getTabString();\n for (var row = startRow; row <= endRow; row++) {\n if (row > 0) {\n prevLineState = session.getState(row - 1);\n prevLine = session.getLine(row - 1);\n lineIndent = mode.getNextLineIndent(prevLineState, prevLine, tab);\n }\n line = session.getLine(row);\n currIndent = mode.$getIndent(line);\n if (lineIndent !== currIndent) {\n if (currIndent.length > 0) {\n range = new Range(row, 0, row, currIndent.length);\n session.remove(range);\n }\n if (lineIndent.length > 0) {\n session.insert({ row: row, column: 0 }, lineIndent);\n }\n }\n mode.autoOutdent(prevLineState, session, row);\n }\n };\n Editor.prototype.onTextInput = function (text, composition) {\n if (!composition)\n return this.keyBinding.onTextInput(text);\n this.startOperation({ command: { name: \"insertstring\" } });\n var applyComposition = this.applyComposition.bind(this, text, composition);\n if (this.selection.rangeCount)\n this.forEachSelection(applyComposition);\n else\n applyComposition();\n this.endOperation();\n };\n Editor.prototype.applyComposition = function (text, composition) {\n if (composition.extendLeft || composition.extendRight) {\n var r = this.selection.getRange();\n r.start.column -= composition.extendLeft;\n r.end.column += composition.extendRight;\n if (r.start.column < 0) {\n r.start.row--;\n r.start.column += this.session.getLine(r.start.row).length + 1;\n }\n this.selection.setRange(r);\n if (!text && !r.isEmpty())\n this.remove();\n }\n if (text || !this.selection.isEmpty())\n this.insert(text, true);\n if (composition.restoreStart || composition.restoreEnd) {\n var r = this.selection.getRange();\n r.start.column -= composition.restoreStart;\n r.end.column -= composition.restoreEnd;\n this.selection.setRange(r);\n }\n };\n Editor.prototype.onCommandKey = function (e, hashId, keyCode) {\n return this.keyBinding.onCommandKey(e, hashId, keyCode);\n };\n Editor.prototype.setOverwrite = function (overwrite) {\n this.session.setOverwrite(overwrite);\n };\n Editor.prototype.getOverwrite = function () {\n return this.session.getOverwrite();\n };\n Editor.prototype.toggleOverwrite = function () {\n this.session.toggleOverwrite();\n };\n Editor.prototype.setScrollSpeed = function (speed) {\n this.setOption(\"scrollSpeed\", speed);\n };\n Editor.prototype.getScrollSpeed = function () {\n return this.getOption(\"scrollSpeed\");\n };\n Editor.prototype.setDragDelay = function (dragDelay) {\n this.setOption(\"dragDelay\", dragDelay);\n };\n Editor.prototype.getDragDelay = function () {\n return this.getOption(\"dragDelay\");\n };\n Editor.prototype.setSelectionStyle = function (val) {\n this.setOption(\"selectionStyle\", val);\n };\n Editor.prototype.getSelectionStyle = function () {\n return this.getOption(\"selectionStyle\");\n };\n Editor.prototype.setHighlightActiveLine = function (shouldHighlight) {\n this.setOption(\"highlightActiveLine\", shouldHighlight);\n };\n Editor.prototype.getHighlightActiveLine = function () {\n return this.getOption(\"highlightActiveLine\");\n };\n Editor.prototype.setHighlightGutterLine = function (shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n Editor.prototype.getHighlightGutterLine = function () {\n return this.getOption(\"highlightGutterLine\");\n };\n Editor.prototype.setHighlightSelectedWord = function (shouldHighlight) {\n this.setOption(\"highlightSelectedWord\", shouldHighlight);\n };\n Editor.prototype.getHighlightSelectedWord = function () {\n return this.$highlightSelectedWord;\n };\n Editor.prototype.setAnimatedScroll = function (shouldAnimate) {\n this.renderer.setAnimatedScroll(shouldAnimate);\n };\n Editor.prototype.getAnimatedScroll = function () {\n return this.renderer.getAnimatedScroll();\n };\n Editor.prototype.setShowInvisibles = function (showInvisibles) {\n this.renderer.setShowInvisibles(showInvisibles);\n };\n Editor.prototype.getShowInvisibles = function () {\n return this.renderer.getShowInvisibles();\n };\n Editor.prototype.setDisplayIndentGuides = function (display) {\n this.renderer.setDisplayIndentGuides(display);\n };\n Editor.prototype.getDisplayIndentGuides = function () {\n return this.renderer.getDisplayIndentGuides();\n };\n Editor.prototype.setHighlightIndentGuides = function (highlight) {\n this.renderer.setHighlightIndentGuides(highlight);\n };\n Editor.prototype.getHighlightIndentGuides = function () {\n return this.renderer.getHighlightIndentGuides();\n };\n Editor.prototype.setShowPrintMargin = function (showPrintMargin) {\n this.renderer.setShowPrintMargin(showPrintMargin);\n };\n Editor.prototype.getShowPrintMargin = function () {\n return this.renderer.getShowPrintMargin();\n };\n Editor.prototype.setPrintMarginColumn = function (showPrintMargin) {\n this.renderer.setPrintMarginColumn(showPrintMargin);\n };\n Editor.prototype.getPrintMarginColumn = function () {\n return this.renderer.getPrintMarginColumn();\n };\n Editor.prototype.setReadOnly = function (readOnly) {\n this.setOption(\"readOnly\", readOnly);\n };\n Editor.prototype.getReadOnly = function () {\n return this.getOption(\"readOnly\");\n };\n Editor.prototype.setBehavioursEnabled = function (enabled) {\n this.setOption(\"behavioursEnabled\", enabled);\n };\n Editor.prototype.getBehavioursEnabled = function () {\n return this.getOption(\"behavioursEnabled\");\n };\n Editor.prototype.setWrapBehavioursEnabled = function (enabled) {\n this.setOption(\"wrapBehavioursEnabled\", enabled);\n };\n Editor.prototype.getWrapBehavioursEnabled = function () {\n return this.getOption(\"wrapBehavioursEnabled\");\n };\n Editor.prototype.setShowFoldWidgets = function (show) {\n this.setOption(\"showFoldWidgets\", show);\n };\n Editor.prototype.getShowFoldWidgets = function () {\n return this.getOption(\"showFoldWidgets\");\n };\n Editor.prototype.setFadeFoldWidgets = function (fade) {\n this.setOption(\"fadeFoldWidgets\", fade);\n };\n Editor.prototype.getFadeFoldWidgets = function () {\n return this.getOption(\"fadeFoldWidgets\");\n };\n Editor.prototype.remove = function (dir) {\n if (this.selection.isEmpty()) {\n if (dir == \"left\")\n this.selection.selectLeft();\n else\n this.selection.selectRight();\n }\n var range = this.getSelectionRange();\n if (this.getBehavioursEnabled()) {\n var session = this.session;\n var state = session.getState(range.start.row);\n var new_range = session.getMode().transformAction(state, 'deletion', this, session, range);\n if (range.end.column === 0) {\n var text = session.getTextRange(range);\n if (text[text.length - 1] == \"\\n\") {\n var line = session.getLine(range.end.row);\n if (/^\\s+$/.test(line)) {\n range.end.column = line.length;\n }\n }\n }\n if (new_range)\n range = new_range;\n }\n this.session.remove(range);\n this.clearSelection();\n };\n Editor.prototype.removeWordRight = function () {\n if (this.selection.isEmpty())\n this.selection.selectWordRight();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeWordLeft = function () {\n if (this.selection.isEmpty())\n this.selection.selectWordLeft();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeToLineStart = function () {\n if (this.selection.isEmpty())\n this.selection.selectLineStart();\n if (this.selection.isEmpty())\n this.selection.selectLeft();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeToLineEnd = function () {\n if (this.selection.isEmpty())\n this.selection.selectLineEnd();\n var range = this.getSelectionRange();\n if (range.start.column == range.end.column && range.start.row == range.end.row) {\n range.end.column = 0;\n range.end.row++;\n }\n this.session.remove(range);\n this.clearSelection();\n };\n Editor.prototype.splitLine = function () {\n if (!this.selection.isEmpty()) {\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n }\n var cursor = this.getCursorPosition();\n this.insert(\"\\n\");\n this.moveCursorToPosition(cursor);\n };\n Editor.prototype.setGhostText = function (text, position) {\n if (!this.session.widgetManager) {\n this.session.widgetManager = new LineWidgets(this.session);\n this.session.widgetManager.attach(this);\n }\n this.renderer.setGhostText(text, position);\n };\n Editor.prototype.removeGhostText = function () {\n if (!this.session.widgetManager)\n return;\n this.renderer.removeGhostText();\n };\n Editor.prototype.transposeLetters = function () {\n if (!this.selection.isEmpty()) {\n return;\n }\n var cursor = this.getCursorPosition();\n var column = cursor.column;\n if (column === 0)\n return;\n var line = this.session.getLine(cursor.row);\n var swap, range;\n if (column < line.length) {\n swap = line.charAt(column) + line.charAt(column - 1);\n range = new Range(cursor.row, column - 1, cursor.row, column + 1);\n }\n else {\n swap = line.charAt(column - 1) + line.charAt(column - 2);\n range = new Range(cursor.row, column - 2, cursor.row, column);\n }\n this.session.replace(range, swap);\n this.session.selection.moveToPosition(range.end);\n };\n Editor.prototype.toLowerCase = function () {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toLowerCase());\n this.selection.setSelectionRange(originalRange);\n };\n Editor.prototype.toUpperCase = function () {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toUpperCase());\n this.selection.setSelectionRange(originalRange);\n };\n Editor.prototype.indent = function () {\n var session = this.session;\n var range = this.getSelectionRange();\n if (range.start.row < range.end.row) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n else if (range.start.column < range.end.column) {\n var text = session.getTextRange(range);\n if (!/^\\s+$/.test(text)) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n }\n var line = session.getLine(range.start.row);\n var position = range.start;\n var size = session.getTabSize();\n var column = session.documentToScreenColumn(position.row, position.column);\n if (this.session.getUseSoftTabs()) {\n var count = (size - column % size);\n var indentString = lang.stringRepeat(\" \", count);\n }\n else {\n var count = column % size;\n while (line[range.start.column - 1] == \" \" && count) {\n range.start.column--;\n count--;\n }\n this.selection.setSelectionRange(range);\n indentString = \"\\t\";\n }\n return this.insert(indentString);\n };\n Editor.prototype.blockIndent = function () {\n var rows = this.$getSelectedRows();\n this.session.indentRows(rows.first, rows.last, \"\\t\");\n };\n Editor.prototype.blockOutdent = function () {\n var selection = this.session.getSelection();\n this.session.outdentRows(selection.getRange());\n };\n Editor.prototype.sortLines = function () {\n var rows = this.$getSelectedRows();\n var session = this.session;\n var lines = [];\n for (var i = rows.first; i <= rows.last; i++)\n lines.push(session.getLine(i));\n lines.sort(function (a, b) {\n if (a.toLowerCase() < b.toLowerCase())\n return -1;\n if (a.toLowerCase() > b.toLowerCase())\n return 1;\n return 0;\n });\n var deleteRange = new Range(0, 0, 0, 0);\n for (var i = rows.first; i <= rows.last; i++) {\n var line = session.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n deleteRange.end.column = line.length;\n session.replace(deleteRange, lines[i - rows.first]);\n }\n };\n Editor.prototype.toggleCommentLines = function () {\n var state = this.session.getState(this.getCursorPosition().row);\n var rows = this.$getSelectedRows();\n this.session.getMode().toggleCommentLines(state, this.session, rows.first, rows.last);\n };\n Editor.prototype.toggleBlockComment = function () {\n var cursor = this.getCursorPosition();\n var state = this.session.getState(cursor.row);\n var range = this.getSelectionRange();\n this.session.getMode().toggleBlockComment(state, this.session, range, cursor);\n };\n Editor.prototype.getNumberAt = function (row, column) {\n var _numberRx = /[\\-]?[0-9]+(?:\\.[0-9]+)?/g;\n _numberRx.lastIndex = 0;\n var s = this.session.getLine(row);\n while (_numberRx.lastIndex < column) {\n var m = _numberRx.exec(s);\n if (m.index <= column && m.index + m[0].length >= column) {\n var number = {\n value: m[0],\n start: m.index,\n end: m.index + m[0].length\n };\n return number;\n }\n }\n return null;\n };\n Editor.prototype.modifyNumber = function (amount) {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n var charRange = new Range(row, column - 1, row, column);\n var c = this.session.getTextRange(charRange);\n if (!isNaN(parseFloat(c)) && isFinite(c)) {\n var nr = this.getNumberAt(row, column);\n if (nr) {\n var fp = nr.value.indexOf(\".\") >= 0 ? nr.start + nr.value.indexOf(\".\") + 1 : nr.end;\n var decimals = nr.start + nr.value.length - fp;\n var t = parseFloat(nr.value);\n t *= Math.pow(10, decimals);\n if (fp !== nr.end && column < fp) {\n amount *= Math.pow(10, nr.end - column - 1);\n }\n else {\n amount *= Math.pow(10, nr.end - column);\n }\n t += amount;\n t /= Math.pow(10, decimals);\n var nnr = t.toFixed(decimals);\n var replaceRange = new Range(row, nr.start, row, nr.end);\n this.session.replace(replaceRange, nnr);\n this.moveCursorTo(row, Math.max(nr.start + 1, column + nnr.length - nr.value.length));\n }\n }\n else {\n this.toggleWord();\n }\n };\n Editor.prototype.toggleWord = function () {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n this.selection.selectWord();\n var currentState = this.getSelectedText();\n var currWordStart = this.selection.getWordRange().start.column;\n var wordParts = currentState.replace(/([a-z]+|[A-Z]+)(?=[A-Z_]|$)/g, '$1 ').split(/\\s/);\n var delta = column - currWordStart - 1;\n if (delta < 0)\n delta = 0;\n var curLength = 0, itLength = 0;\n var that = this;\n if (currentState.match(/[A-Za-z0-9_]+/)) {\n wordParts.forEach(function (item, i) {\n itLength = curLength + item.length;\n if (delta >= curLength && delta <= itLength) {\n currentState = item;\n that.selection.clearSelection();\n that.moveCursorTo(row, curLength + currWordStart);\n that.selection.selectTo(row, itLength + currWordStart);\n }\n curLength = itLength;\n });\n }\n var wordPairs = this.$toggleWordPairs;\n var reg;\n for (var i = 0; i < wordPairs.length; i++) {\n var item = wordPairs[i];\n for (var j = 0; j <= 1; j++) {\n var negate = +!j;\n var firstCondition = currentState.match(new RegExp('^\\\\s?_?(' + lang.escapeRegExp(item[j]) + ')\\\\s?$', 'i'));\n if (firstCondition) {\n var secondCondition = currentState.match(new RegExp('([_]|^|\\\\s)(' + lang.escapeRegExp(firstCondition[1]) + ')($|\\\\s)', 'g'));\n if (secondCondition) {\n reg = currentState.replace(new RegExp(lang.escapeRegExp(item[j]), 'i'), function (result) {\n var res = item[negate];\n if (result.toUpperCase() == result) {\n res = res.toUpperCase();\n }\n else if (result.charAt(0).toUpperCase() == result.charAt(0)) {\n res = res.substr(0, 0) + item[negate].charAt(0).toUpperCase() + res.substr(1);\n }\n return res;\n });\n this.insert(reg);\n reg = \"\";\n }\n }\n }\n }\n };\n Editor.prototype.findLinkAt = function (row, column) {\n var e_1, _a;\n var line = this.session.getLine(row);\n var wordParts = line.split(/((?:https?|ftp):\\/\\/[\\S]+)/);\n var columnPosition = column;\n if (columnPosition < 0)\n columnPosition = 0;\n var previousPosition = 0, currentPosition = 0, match;\n try {\n for (var wordParts_1 = __values(wordParts), wordParts_1_1 = wordParts_1.next(); !wordParts_1_1.done; wordParts_1_1 = wordParts_1.next()) {\n var item = wordParts_1_1.value;\n currentPosition = previousPosition + item.length;\n if (columnPosition >= previousPosition && columnPosition <= currentPosition) {\n if (item.match(/((?:https?|ftp):\\/\\/[\\S]+)/)) {\n match = item.replace(/[\\s:.,'\";}\\]]+$/, \"\");\n break;\n }\n }\n previousPosition = currentPosition;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (wordParts_1_1 && !wordParts_1_1.done && (_a = wordParts_1.return)) _a.call(wordParts_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return match;\n };\n Editor.prototype.openLink = function () {\n var cursor = this.selection.getCursor();\n var url = this.findLinkAt(cursor.row, cursor.column);\n if (url)\n window.open(url, '_blank');\n return url != null;\n };\n Editor.prototype.removeLines = function () {\n var rows = this.$getSelectedRows();\n this.session.removeFullLines(rows.first, rows.last);\n this.clearSelection();\n };\n Editor.prototype.duplicateSelection = function () {\n var sel = this.selection;\n var doc = this.session;\n var range = sel.getRange();\n var reverse = sel.isBackwards();\n if (range.isEmpty()) {\n var row = range.start.row;\n doc.duplicateLines(row, row);\n }\n else {\n var point = reverse ? range.start : range.end;\n var endPoint = doc.insert(point, doc.getTextRange(range), false);\n range.start = point;\n range.end = endPoint;\n sel.setSelectionRange(range, reverse);\n }\n };\n Editor.prototype.moveLinesDown = function () {\n this.$moveLines(1, false);\n };\n Editor.prototype.moveLinesUp = function () {\n this.$moveLines(-1, false);\n };\n Editor.prototype.moveText = function (range, toPosition, copy) {\n return this.session.moveText(range, toPosition, copy);\n };\n Editor.prototype.copyLinesUp = function () {\n this.$moveLines(-1, true);\n };\n Editor.prototype.copyLinesDown = function () {\n this.$moveLines(1, true);\n };\n Editor.prototype.$moveLines = function (dir, copy) {\n var rows, moved;\n var selection = this.selection;\n if (!selection.inMultiSelectMode || this.inVirtualSelectionMode) {\n var range = selection.toOrientedRange();\n rows = this.$getSelectedRows(range);\n moved = this.session.$moveLines(rows.first, rows.last, copy ? 0 : dir);\n if (copy && dir == -1)\n moved = 0;\n range.moveBy(moved, 0);\n selection.fromOrientedRange(range);\n }\n else {\n var ranges = selection.rangeList.ranges;\n selection.rangeList.detach(this.session);\n this.inVirtualSelectionMode = true;\n var diff = 0;\n var totalDiff = 0;\n var l = ranges.length;\n for (var i = 0; i < l; i++) {\n var rangeIndex = i;\n ranges[i].moveBy(diff, 0);\n rows = this.$getSelectedRows(ranges[i]);\n var first = rows.first;\n var last = rows.last;\n while (++i < l) {\n if (totalDiff)\n ranges[i].moveBy(totalDiff, 0);\n var subRows = this.$getSelectedRows(ranges[i]);\n if (copy && subRows.first != last)\n break;\n else if (!copy && subRows.first > last + 1)\n break;\n last = subRows.last;\n }\n i--;\n diff = this.session.$moveLines(first, last, copy ? 0 : dir);\n if (copy && dir == -1)\n rangeIndex = i + 1;\n while (rangeIndex <= i) {\n ranges[rangeIndex].moveBy(diff, 0);\n rangeIndex++;\n }\n if (!copy)\n diff = 0;\n totalDiff += diff;\n }\n selection.fromOrientedRange(selection.ranges[0]);\n selection.rangeList.attach(this.session);\n this.inVirtualSelectionMode = false;\n }\n };\n Editor.prototype.$getSelectedRows = function (range) {\n range = (range || this.getSelectionRange()).collapseRows();\n return {\n first: this.session.getRowFoldStart(range.start.row),\n last: this.session.getRowFoldEnd(range.end.row)\n };\n };\n Editor.prototype.onCompositionStart = function (compositionState) {\n this.renderer.showComposition(compositionState);\n };\n Editor.prototype.onCompositionUpdate = function (text) {\n this.renderer.setCompositionText(text);\n };\n Editor.prototype.onCompositionEnd = function () {\n this.renderer.hideComposition();\n };\n Editor.prototype.getFirstVisibleRow = function () {\n return this.renderer.getFirstVisibleRow();\n };\n Editor.prototype.getLastVisibleRow = function () {\n return this.renderer.getLastVisibleRow();\n };\n Editor.prototype.isRowVisible = function (row) {\n return (row >= this.getFirstVisibleRow() && row <= this.getLastVisibleRow());\n };\n Editor.prototype.isRowFullyVisible = function (row) {\n return (row >= this.renderer.getFirstFullyVisibleRow() && row <= this.renderer.getLastFullyVisibleRow());\n };\n Editor.prototype.$getVisibleRowCount = function () {\n return this.renderer.getScrollBottomRow() - this.renderer.getScrollTopRow() + 1;\n };\n Editor.prototype.$moveByPage = function (dir, select) {\n var renderer = this.renderer;\n var config = this.renderer.layerConfig;\n var rows = dir * Math.floor(config.height / config.lineHeight);\n if (select === true) {\n this.selection.$moveSelection(function () {\n this.moveCursorBy(rows, 0);\n });\n }\n else if (select === false) {\n this.selection.moveCursorBy(rows, 0);\n this.selection.clearSelection();\n }\n var scrollTop = renderer.scrollTop;\n renderer.scrollBy(0, rows * config.lineHeight);\n if (select != null)\n renderer.scrollCursorIntoView(null, 0.5);\n renderer.animateScrolling(scrollTop);\n };\n Editor.prototype.selectPageDown = function () {\n this.$moveByPage(1, true);\n };\n Editor.prototype.selectPageUp = function () {\n this.$moveByPage(-1, true);\n };\n Editor.prototype.gotoPageDown = function () {\n this.$moveByPage(1, false);\n };\n Editor.prototype.gotoPageUp = function () {\n this.$moveByPage(-1, false);\n };\n Editor.prototype.scrollPageDown = function () {\n this.$moveByPage(1);\n };\n Editor.prototype.scrollPageUp = function () {\n this.$moveByPage(-1);\n };\n Editor.prototype.scrollToRow = function (row) {\n this.renderer.scrollToRow(row);\n };\n Editor.prototype.scrollToLine = function (line, center, animate, callback) {\n this.renderer.scrollToLine(line, center, animate, callback);\n };\n Editor.prototype.centerSelection = function () {\n var range = this.getSelectionRange();\n var pos = {\n row: Math.floor(range.start.row + (range.end.row - range.start.row) / 2),\n column: Math.floor(range.start.column + (range.end.column - range.start.column) / 2)\n };\n this.renderer.alignCursor(pos, 0.5);\n };\n Editor.prototype.getCursorPosition = function () {\n return this.selection.getCursor();\n };\n Editor.prototype.getCursorPositionScreen = function () {\n return this.session.documentToScreenPosition(this.getCursorPosition());\n };\n Editor.prototype.getSelectionRange = function () {\n return this.selection.getRange();\n };\n Editor.prototype.selectAll = function () {\n this.selection.selectAll();\n };\n Editor.prototype.clearSelection = function () {\n this.selection.clearSelection();\n };\n Editor.prototype.moveCursorTo = function (row, column) {\n this.selection.moveCursorTo(row, column);\n };\n Editor.prototype.moveCursorToPosition = function (pos) {\n this.selection.moveCursorToPosition(pos);\n };\n Editor.prototype.jumpToMatching = function (select, expand) {\n var cursor = this.getCursorPosition();\n var iterator = new TokenIterator(this.session, cursor.row, cursor.column);\n var prevToken = iterator.getCurrentToken();\n var tokenCount = 0;\n if (prevToken && prevToken.type.indexOf('tag-name') !== -1) {\n prevToken = iterator.stepBackward();\n }\n var token = prevToken || iterator.stepForward();\n if (!token)\n return;\n var matchType;\n var found = false;\n var depth = {};\n var i = cursor.column - token.start;\n var bracketType;\n var brackets = {\n \")\": \"(\",\n \"(\": \"(\",\n \"]\": \"[\",\n \"[\": \"[\",\n \"{\": \"{\",\n \"}\": \"{\"\n };\n do {\n if (token.value.match(/[{}()\\[\\]]/g)) {\n for (; i < token.value.length && !found; i++) {\n if (!brackets[token.value[i]]) {\n continue;\n }\n bracketType = brackets[token.value[i]] + '.' + token.type.replace(\"rparen\", \"lparen\");\n if (isNaN(depth[bracketType])) {\n depth[bracketType] = 0;\n }\n switch (token.value[i]) {\n case '(':\n case '[':\n case '{':\n depth[bracketType]++;\n break;\n case ')':\n case ']':\n case '}':\n depth[bracketType]--;\n if (depth[bracketType] === -1) {\n matchType = 'bracket';\n found = true;\n }\n break;\n }\n }\n }\n else if (token.type.indexOf('tag-name') !== -1) {\n if (isNaN(depth[token.value])) {\n depth[token.value] = 0;\n }\n if (prevToken.value === '<' && tokenCount > 1) {\n depth[token.value]++;\n }\n else if (prevToken.value === '= 0; --i) {\n if (this.$tryReplace(ranges[i], replacement)) {\n replaced++;\n }\n }\n this.selection.setSelectionRange(selection);\n return replaced;\n };\n Editor.prototype.$tryReplace = function (range, replacement) {\n var input = this.session.getTextRange(range);\n replacement = this.$search.replace(input, replacement);\n if (replacement !== null) {\n range.end = this.session.replace(range, replacement);\n return range;\n }\n else {\n return null;\n }\n };\n Editor.prototype.getLastSearchOptions = function () {\n return this.$search.getOptions();\n };\n Editor.prototype.find = function (needle, options, animate) {\n if (!options)\n options = {};\n if (typeof needle == \"string\" || needle instanceof RegExp)\n options.needle = needle;\n else if (typeof needle == \"object\")\n oop.mixin(options, needle);\n var range = this.selection.getRange();\n if (options.needle == null) {\n needle = this.session.getTextRange(range)\n || this.$search.$options.needle;\n if (!needle) {\n range = this.session.getWordRange(range.start.row, range.start.column);\n needle = this.session.getTextRange(range);\n }\n this.$search.set({ needle: needle });\n }\n this.$search.set(options);\n if (!options.start)\n this.$search.set({ start: range });\n var newRange = this.$search.find(this.session);\n if (options.preventScroll)\n return newRange;\n if (newRange) {\n this.revealRange(newRange, animate);\n return newRange;\n }\n if (options.backwards)\n range.start = range.end;\n else\n range.end = range.start;\n this.selection.setRange(range);\n };\n Editor.prototype.findNext = function (options, animate) {\n this.find({ skipCurrent: true, backwards: false }, options, animate);\n };\n Editor.prototype.findPrevious = function (options, animate) {\n this.find(options, { skipCurrent: true, backwards: true }, animate);\n };\n Editor.prototype.revealRange = function (range, animate) {\n this.session.unfold(range);\n this.selection.setSelectionRange(range);\n var scrollTop = this.renderer.scrollTop;\n this.renderer.scrollSelectionIntoView(range.start, range.end, 0.5);\n if (animate !== false)\n this.renderer.animateScrolling(scrollTop);\n };\n Editor.prototype.undo = function () {\n this.session.getUndoManager().undo(this.session);\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n Editor.prototype.redo = function () {\n this.session.getUndoManager().redo(this.session);\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n Editor.prototype.destroy = function () {\n if (this.$toDestroy) {\n this.$toDestroy.forEach(function (el) {\n el.destroy();\n });\n this.$toDestroy = null;\n }\n if (this.$mouseHandler)\n this.$mouseHandler.destroy();\n this.renderer.destroy();\n this._signal(\"destroy\", this);\n if (this.session)\n this.session.destroy();\n if (this._$emitInputEvent)\n this._$emitInputEvent.cancel();\n this.removeAllListeners();\n };\n Editor.prototype.setAutoScrollEditorIntoView = function (enable) {\n if (!enable)\n return;\n var rect;\n var self = this;\n var shouldScroll = false;\n if (!this.$scrollAnchor)\n this.$scrollAnchor = document.createElement(\"div\");\n var scrollAnchor = this.$scrollAnchor;\n scrollAnchor.style.cssText = \"position:absolute\";\n this.container.insertBefore(scrollAnchor, this.container.firstChild);\n var onChangeSelection = this.on(\"changeSelection\", function () {\n shouldScroll = true;\n });\n var onBeforeRender = this.renderer.on(\"beforeRender\", function () {\n if (shouldScroll)\n rect = self.renderer.container.getBoundingClientRect();\n });\n var onAfterRender = this.renderer.on(\"afterRender\", function () {\n if (shouldScroll && rect && (self.isFocused()\n || self.searchBox && self.searchBox.isFocused())) {\n var renderer = self.renderer;\n var pos = renderer.$cursorLayer.$pixelPos;\n var config = renderer.layerConfig;\n var top = pos.top - config.offset;\n if (pos.top >= 0 && top + rect.top < 0) {\n shouldScroll = true;\n }\n else if (pos.top < config.height &&\n pos.top + rect.top + config.lineHeight > window.innerHeight) {\n shouldScroll = false;\n }\n else {\n shouldScroll = null;\n }\n if (shouldScroll != null) {\n scrollAnchor.style.top = top + \"px\";\n scrollAnchor.style.left = pos.left + \"px\";\n scrollAnchor.style.height = config.lineHeight + \"px\";\n scrollAnchor.scrollIntoView(shouldScroll);\n }\n shouldScroll = rect = null;\n }\n });\n this.setAutoScrollEditorIntoView = function (enable) {\n if (enable)\n return;\n delete this.setAutoScrollEditorIntoView;\n this.off(\"changeSelection\", onChangeSelection);\n this.renderer.off(\"afterRender\", onAfterRender);\n this.renderer.off(\"beforeRender\", onBeforeRender);\n };\n };\n Editor.prototype.$resetCursorStyle = function () {\n var style = this.$cursorStyle || \"ace\";\n var cursorLayer = this.renderer.$cursorLayer;\n if (!cursorLayer)\n return;\n cursorLayer.setSmoothBlinking(/smooth/.test(style));\n cursorLayer.isBlinking = !this.$readOnly && style != \"wide\";\n dom.setCssClass(cursorLayer.element, \"ace_slim-cursors\", /slim/.test(style));\n };\n Editor.prototype.prompt = function (message, options, callback) {\n var editor = this;\n config.loadModule(\"ace/ext/prompt\", function (module) {\n module.prompt(editor, message, options, callback);\n });\n };\n return Editor;\n}());\nEditor.$uid = 0;\nEditor.prototype.curOp = null;\nEditor.prototype.prevOp = {};\nEditor.prototype.$mergeableCommands = [\"backspace\", \"del\", \"insertstring\"];\nEditor.prototype.$toggleWordPairs = [\n [\"first\", \"last\"],\n [\"true\", \"false\"],\n [\"yes\", \"no\"],\n [\"width\", \"height\"],\n [\"top\", \"bottom\"],\n [\"right\", \"left\"],\n [\"on\", \"off\"],\n [\"x\", \"y\"],\n [\"get\", \"set\"],\n [\"max\", \"min\"],\n [\"horizontal\", \"vertical\"],\n [\"show\", \"hide\"],\n [\"add\", \"remove\"],\n [\"up\", \"down\"],\n [\"before\", \"after\"],\n [\"even\", \"odd\"],\n [\"in\", \"out\"],\n [\"inside\", \"outside\"],\n [\"next\", \"previous\"],\n [\"increase\", \"decrease\"],\n [\"attach\", \"detach\"],\n [\"&&\", \"||\"],\n [\"==\", \"!=\"]\n];\noop.implement(Editor.prototype, EventEmitter);\nconfig.defineOptions(Editor.prototype, \"editor\", {\n selectionStyle: {\n set: function (style) {\n this.onSelectionChange();\n this._signal(\"changeSelectionStyle\", { data: style });\n },\n initialValue: \"line\"\n },\n highlightActiveLine: {\n set: function () { this.$updateHighlightActiveLine(); },\n initialValue: true\n },\n highlightSelectedWord: {\n set: function (shouldHighlight) { this.$onSelectionChange(); },\n initialValue: true\n },\n readOnly: {\n set: function (readOnly) {\n this.textInput.setReadOnly(readOnly);\n this.$resetCursorStyle();\n },\n initialValue: false\n },\n copyWithEmptySelection: {\n set: function (value) {\n this.textInput.setCopyWithEmptySelection(value);\n },\n initialValue: false\n },\n cursorStyle: {\n set: function (val) { this.$resetCursorStyle(); },\n values: [\"ace\", \"slim\", \"smooth\", \"wide\"],\n initialValue: \"ace\"\n },\n mergeUndoDeltas: {\n values: [false, true, \"always\"],\n initialValue: true\n },\n behavioursEnabled: { initialValue: true },\n wrapBehavioursEnabled: { initialValue: true },\n enableAutoIndent: { initialValue: true },\n autoScrollEditorIntoView: {\n set: function (val) { this.setAutoScrollEditorIntoView(val); }\n },\n keyboardHandler: {\n set: function (val) { this.setKeyboardHandler(val); },\n get: function () { return this.$keybindingId; },\n handlesSet: true\n },\n value: {\n set: function (val) { this.session.setValue(val); },\n get: function () { return this.getValue(); },\n handlesSet: true,\n hidden: true\n },\n session: {\n set: function (val) { this.setSession(val); },\n get: function () { return this.session; },\n handlesSet: true,\n hidden: true\n },\n showLineNumbers: {\n set: function (show) {\n this.renderer.$gutterLayer.setShowLineNumbers(show);\n this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER);\n if (show && this.$relativeLineNumbers)\n relativeNumberRenderer.attach(this);\n else\n relativeNumberRenderer.detach(this);\n },\n initialValue: true\n },\n relativeLineNumbers: {\n set: function (value) {\n if (this.$showLineNumbers && value)\n relativeNumberRenderer.attach(this);\n else\n relativeNumberRenderer.detach(this);\n }\n },\n placeholder: {\n set: function (message) {\n if (!this.$updatePlaceholder) {\n this.$updatePlaceholder = function () {\n var hasValue = this.session && (this.renderer.$composition ||\n this.session.getLength() > 1 || this.session.getLine(0).length > 0);\n if (hasValue && this.renderer.placeholderNode) {\n this.renderer.off(\"afterRender\", this.$updatePlaceholder);\n dom.removeCssClass(this.container, \"ace_hasPlaceholder\");\n this.renderer.placeholderNode.remove();\n this.renderer.placeholderNode = null;\n }\n else if (!hasValue && !this.renderer.placeholderNode) {\n this.renderer.on(\"afterRender\", this.$updatePlaceholder);\n dom.addCssClass(this.container, \"ace_hasPlaceholder\");\n var el = dom.createElement(\"div\");\n el.className = \"ace_placeholder\";\n el.textContent = this.$placeholder || \"\";\n this.renderer.placeholderNode = el;\n this.renderer.content.appendChild(this.renderer.placeholderNode);\n }\n else if (!hasValue && this.renderer.placeholderNode) {\n this.renderer.placeholderNode.textContent = this.$placeholder || \"\";\n }\n }.bind(this);\n this.on(\"input\", this.$updatePlaceholder);\n }\n this.$updatePlaceholder();\n }\n },\n enableKeyboardAccessibility: {\n set: function (value) {\n var blurCommand = {\n name: \"blurTextInput\",\n description: \"Set focus to the editor content div to allow tabbing through the page\",\n bindKey: \"Esc\",\n exec: function (editor) {\n editor.blur();\n editor.renderer.scroller.focus();\n },\n readOnly: true\n };\n var focusOnEnterKeyup = function (e) {\n if (e.target == this.renderer.scroller && e.keyCode === keys['enter']) {\n e.preventDefault();\n var row = this.getCursorPosition().row;\n if (!this.isRowVisible(row))\n this.scrollToLine(row, true, true);\n this.focus();\n }\n };\n var gutterKeyboardHandler;\n if (value) {\n this.renderer.enableKeyboardAccessibility = true;\n this.renderer.keyboardFocusClassName = \"ace_keyboard-focus\";\n this.textInput.getElement().setAttribute(\"tabindex\", -1);\n this.textInput.setNumberOfExtraLines(useragent.isWin ? 3 : 0);\n this.renderer.scroller.setAttribute(\"tabindex\", 0);\n this.renderer.scroller.setAttribute(\"role\", \"group\");\n this.renderer.scroller.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName);\n this.renderer.scroller.setAttribute(\"aria-label\", nls(\"Editor content, press Enter to start editing, press Escape to exit\"));\n this.renderer.scroller.addEventListener(\"keyup\", focusOnEnterKeyup.bind(this));\n this.commands.addCommand(blurCommand);\n this.renderer.$gutter.setAttribute(\"tabindex\", 0);\n this.renderer.$gutter.setAttribute(\"aria-hidden\", false);\n this.renderer.$gutter.setAttribute(\"role\", \"group\");\n this.renderer.$gutter.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n this.renderer.$gutter.setAttribute(\"aria-label\", nls(\"Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit\"));\n this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName);\n this.renderer.content.setAttribute(\"aria-hidden\", true);\n if (!gutterKeyboardHandler)\n gutterKeyboardHandler = new GutterKeyboardHandler(this);\n gutterKeyboardHandler.addListener();\n }\n else {\n this.renderer.enableKeyboardAccessibility = false;\n this.textInput.getElement().setAttribute(\"tabindex\", 0);\n this.textInput.setNumberOfExtraLines(0);\n this.renderer.scroller.setAttribute(\"tabindex\", -1);\n this.renderer.scroller.removeAttribute(\"role\");\n this.renderer.scroller.removeAttribute(\"aria-roledescription\");\n this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName);\n this.renderer.scroller.removeAttribute(\"aria-label\");\n this.renderer.scroller.removeEventListener(\"keyup\", focusOnEnterKeyup.bind(this));\n this.commands.removeCommand(blurCommand);\n this.renderer.content.removeAttribute(\"aria-hidden\");\n this.renderer.$gutter.setAttribute(\"tabindex\", -1);\n this.renderer.$gutter.setAttribute(\"aria-hidden\", true);\n this.renderer.$gutter.removeAttribute(\"role\");\n this.renderer.$gutter.removeAttribute(\"aria-roledescription\");\n this.renderer.$gutter.removeAttribute(\"aria-label\");\n this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName);\n if (gutterKeyboardHandler)\n gutterKeyboardHandler.removeListener();\n }\n },\n initialValue: false\n },\n customScrollbar: \"renderer\",\n hScrollBarAlwaysVisible: \"renderer\",\n vScrollBarAlwaysVisible: \"renderer\",\n highlightGutterLine: \"renderer\",\n animatedScroll: \"renderer\",\n showInvisibles: \"renderer\",\n showPrintMargin: \"renderer\",\n printMarginColumn: \"renderer\",\n printMargin: \"renderer\",\n fadeFoldWidgets: \"renderer\",\n showFoldWidgets: \"renderer\",\n displayIndentGuides: \"renderer\",\n highlightIndentGuides: \"renderer\",\n showGutter: \"renderer\",\n fontSize: \"renderer\",\n fontFamily: \"renderer\",\n maxLines: \"renderer\",\n minLines: \"renderer\",\n scrollPastEnd: \"renderer\",\n fixedWidthGutter: \"renderer\",\n theme: \"renderer\",\n hasCssTransforms: \"renderer\",\n maxPixelHeight: \"renderer\",\n useTextareaForIME: \"renderer\",\n useResizeObserver: \"renderer\",\n useSvgGutterIcons: \"renderer\",\n showFoldedAnnotations: \"renderer\",\n scrollSpeed: \"$mouseHandler\",\n dragDelay: \"$mouseHandler\",\n dragEnabled: \"$mouseHandler\",\n focusTimeout: \"$mouseHandler\",\n tooltipFollowsMouse: \"$mouseHandler\",\n firstLineNumber: \"session\",\n overwrite: \"session\",\n newLineMode: \"session\",\n useWorker: \"session\",\n useSoftTabs: \"session\",\n navigateWithinSoftTabs: \"session\",\n tabSize: \"session\",\n wrap: \"session\",\n indentedSoftWrap: \"session\",\n foldStyle: \"session\",\n mode: \"session\"\n});\nvar relativeNumberRenderer = {\n getText: function (session, row) {\n return (Math.abs(session.selection.lead.row - row) || (row + 1 + (row < 9 ? \"\\xb7\" : \"\"))) + \"\";\n },\n getWidth: function (session, lastLineNumber, config) {\n return Math.max(lastLineNumber.toString().length, (config.lastRow + 1).toString().length, 2) * config.characterWidth;\n },\n update: function (e, editor) {\n editor.renderer.$loop.schedule(editor.renderer.CHANGE_GUTTER);\n },\n attach: function (editor) {\n editor.renderer.$gutterLayer.$renderer = this;\n editor.on(\"changeSelection\", this.update);\n this.update(null, editor);\n },\n detach: function (editor) {\n if (editor.renderer.$gutterLayer.$renderer == this)\n editor.renderer.$gutterLayer.$renderer = null;\n editor.off(\"changeSelection\", this.update);\n this.update(null, editor);\n }\n};\nexports.Editor = Editor;\n\n});\n\nace.define(\"ace/layer/lines\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar Lines = /** @class */ (function () {\n function Lines(element, canvasHeight) {\n this.element = element;\n this.canvasHeight = canvasHeight || 500000;\n this.element.style.height = (this.canvasHeight * 2) + \"px\";\n this.cells = [];\n this.cellCache = [];\n this.$offsetCoefficient = 0;\n }\n Lines.prototype.moveContainer = function (config) {\n dom.translate(this.element, 0, -((config.firstRowScreen * config.lineHeight) % this.canvasHeight) - config.offset * this.$offsetCoefficient);\n };\n Lines.prototype.pageChanged = function (oldConfig, newConfig) {\n return (Math.floor((oldConfig.firstRowScreen * oldConfig.lineHeight) / this.canvasHeight) !==\n Math.floor((newConfig.firstRowScreen * newConfig.lineHeight) / this.canvasHeight));\n };\n Lines.prototype.computeLineTop = function (row, config, session) {\n var screenTop = config.firstRowScreen * config.lineHeight;\n var screenPage = Math.floor(screenTop / this.canvasHeight);\n var lineTop = session.documentToScreenRow(row, 0) * config.lineHeight;\n return lineTop - (screenPage * this.canvasHeight);\n };\n Lines.prototype.computeLineHeight = function (row, config, session) {\n return config.lineHeight * session.getRowLineCount(row);\n };\n Lines.prototype.getLength = function () {\n return this.cells.length;\n };\n Lines.prototype.get = function (index) {\n return this.cells[index];\n };\n Lines.prototype.shift = function () {\n this.$cacheCell(this.cells.shift());\n };\n Lines.prototype.pop = function () {\n this.$cacheCell(this.cells.pop());\n };\n Lines.prototype.push = function (cell) {\n if (Array.isArray(cell)) {\n this.cells.push.apply(this.cells, cell);\n var fragment = dom.createFragment(this.element);\n for (var i = 0; i < cell.length; i++) {\n fragment.appendChild(cell[i].element);\n }\n this.element.appendChild(fragment);\n }\n else {\n this.cells.push(cell);\n this.element.appendChild(cell.element);\n }\n };\n Lines.prototype.unshift = function (cell) {\n if (Array.isArray(cell)) {\n this.cells.unshift.apply(this.cells, cell);\n var fragment = dom.createFragment(this.element);\n for (var i = 0; i < cell.length; i++) {\n fragment.appendChild(cell[i].element);\n }\n if (this.element.firstChild)\n this.element.insertBefore(fragment, this.element.firstChild);\n else\n this.element.appendChild(fragment);\n }\n else {\n this.cells.unshift(cell);\n this.element.insertAdjacentElement(\"afterbegin\", cell.element);\n }\n };\n Lines.prototype.last = function () {\n if (this.cells.length)\n return this.cells[this.cells.length - 1];\n else\n return null;\n };\n Lines.prototype.$cacheCell = function (cell) {\n if (!cell)\n return;\n cell.element.remove();\n this.cellCache.push(cell);\n };\n Lines.prototype.createCell = function (row, config, session, initElement) {\n var cell = this.cellCache.pop();\n if (!cell) {\n var element = dom.createElement(\"div\");\n if (initElement)\n initElement(element);\n this.element.appendChild(element);\n cell = {\n element: element,\n text: \"\",\n row: row\n };\n }\n cell.row = row;\n return cell;\n };\n return Lines;\n}());\nexports.Lines = Lines;\n\n});\n\nace.define(\"ace/layer/gutter\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/layer/lines\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar Lines = require(\"./lines\").Lines;\nvar nls = require(\"../config\").nls;\nvar Gutter = /** @class */ (function () {\n function Gutter(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_gutter-layer\";\n parentEl.appendChild(this.element);\n this.setShowFoldWidgets(this.$showFoldWidgets);\n this.gutterWidth = 0;\n this.$annotations = [];\n this.$updateAnnotations = this.$updateAnnotations.bind(this);\n this.$lines = new Lines(this.element);\n this.$lines.$offsetCoefficient = 1;\n }\n Gutter.prototype.setSession = function (session) {\n if (this.session)\n this.session.off(\"change\", this.$updateAnnotations);\n this.session = session;\n if (session)\n session.on(\"change\", this.$updateAnnotations);\n };\n Gutter.prototype.addGutterDecoration = function (row, className) {\n if (window.console)\n console.warn && console.warn(\"deprecated use session.addGutterDecoration\");\n this.session.addGutterDecoration(row, className);\n };\n Gutter.prototype.removeGutterDecoration = function (row, className) {\n if (window.console)\n console.warn && console.warn(\"deprecated use session.removeGutterDecoration\");\n this.session.removeGutterDecoration(row, className);\n };\n Gutter.prototype.setAnnotations = function (annotations) {\n this.$annotations = [];\n for (var i = 0; i < annotations.length; i++) {\n var annotation = annotations[i];\n var row = annotation.row;\n var rowInfo = this.$annotations[row];\n if (!rowInfo)\n rowInfo = this.$annotations[row] = { text: [], type: [] };\n var annoText = annotation.text;\n var annoType = annotation.type;\n annoText = annoText ? lang.escapeHTML(annoText) : annotation.html || \"\";\n if (rowInfo.text.indexOf(annoText) === -1) {\n rowInfo.text.push(annoText);\n rowInfo.type.push(annoType);\n }\n var className = annotation.className;\n if (className)\n rowInfo.className = className;\n else if (annoType == \"error\")\n rowInfo.className = \" ace_error\";\n else if (annoType == \"warning\" && rowInfo.className != \" ace_error\")\n rowInfo.className = \" ace_warning\";\n else if (annoType == \"info\" && (!rowInfo.className))\n rowInfo.className = \" ace_info\";\n }\n };\n Gutter.prototype.$updateAnnotations = function (delta) {\n if (!this.$annotations.length)\n return;\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n }\n else if (delta.action == 'remove') {\n this.$annotations.splice(firstRow, len + 1, null);\n }\n else {\n var args = new Array(len + 1);\n args.unshift(firstRow, 1);\n this.$annotations.splice.apply(this.$annotations, args);\n }\n };\n Gutter.prototype.update = function (config) {\n this.config = config;\n var session = this.session;\n var firstRow = config.firstRow;\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n session.getLength() - 1);\n this.oldLastRow = lastRow;\n this.config = config;\n this.$lines.moveContainer(config);\n this.$updateCursorRow();\n var fold = session.getNextFoldLine(firstRow);\n var foldStart = fold ? fold.start.row : Infinity;\n var cell = null;\n var index = -1;\n var row = firstRow;\n while (true) {\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = session.getNextFoldLine(row, fold);\n foldStart = fold ? fold.start.row : Infinity;\n }\n if (row > lastRow) {\n while (this.$lines.getLength() > index + 1)\n this.$lines.pop();\n break;\n }\n cell = this.$lines.get(++index);\n if (cell) {\n cell.row = row;\n }\n else {\n cell = this.$lines.createCell(row, config, this.session, onCreateCell);\n this.$lines.push(cell);\n }\n this.$renderCell(cell, config, fold, row);\n row++;\n }\n this._signal(\"afterRender\");\n this.$updateGutterWidth(config);\n };\n Gutter.prototype.$updateGutterWidth = function (config) {\n var session = this.session;\n var gutterRenderer = session.gutterRenderer || this.$renderer;\n var firstLineNumber = session.$firstLineNumber;\n var lastLineText = this.$lines.last() ? this.$lines.last().text : \"\";\n if (this.$fixedWidth || session.$useWrapMode)\n lastLineText = session.getLength() + firstLineNumber - 1;\n var gutterWidth = gutterRenderer\n ? gutterRenderer.getWidth(session, lastLineText, config)\n : lastLineText.toString().length * config.characterWidth;\n var padding = this.$padding || this.$computePadding();\n gutterWidth += padding.left + padding.right;\n if (gutterWidth !== this.gutterWidth && !isNaN(gutterWidth)) {\n this.gutterWidth = gutterWidth;\n this.element.parentNode.style.width =\n this.element.style.width = Math.ceil(this.gutterWidth) + \"px\";\n this._signal(\"changeGutterWidth\", gutterWidth);\n }\n };\n Gutter.prototype.$updateCursorRow = function () {\n if (!this.$highlightGutterLine)\n return;\n var position = this.session.selection.getCursor();\n if (this.$cursorRow === position.row)\n return;\n this.$cursorRow = position.row;\n };\n Gutter.prototype.updateLineHighlight = function () {\n if (!this.$highlightGutterLine)\n return;\n var row = this.session.selection.cursor.row;\n this.$cursorRow = row;\n if (this.$cursorCell && this.$cursorCell.row == row)\n return;\n if (this.$cursorCell)\n this.$cursorCell.element.className = this.$cursorCell.element.className.replace(\"ace_gutter-active-line \", \"\");\n var cells = this.$lines.cells;\n this.$cursorCell = null;\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n if (cell.row >= this.$cursorRow) {\n if (cell.row > this.$cursorRow) {\n var fold = this.session.getFoldLine(this.$cursorRow);\n if (i > 0 && fold && fold.start.row == cells[i - 1].row)\n cell = cells[i - 1];\n else\n break;\n }\n cell.element.className = \"ace_gutter-active-line \" + cell.element.className;\n this.$cursorCell = cell;\n break;\n }\n }\n };\n Gutter.prototype.scrollLines = function (config) {\n var oldConfig = this.config;\n this.config = config;\n this.$updateCursorRow();\n if (this.$lines.pageChanged(oldConfig, config))\n return this.update(config);\n this.$lines.moveContainer(config);\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n this.session.getLength() - 1);\n var oldLastRow = this.oldLastRow;\n this.oldLastRow = lastRow;\n if (!oldConfig || oldLastRow < config.firstRow)\n return this.update(config);\n if (lastRow < oldConfig.firstRow)\n return this.update(config);\n if (oldConfig.firstRow < config.firstRow)\n for (var row = this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row > 0; row--)\n this.$lines.shift();\n if (oldLastRow > lastRow)\n for (var row = this.session.getFoldedRowCount(lastRow + 1, oldLastRow); row > 0; row--)\n this.$lines.pop();\n if (config.firstRow < oldConfig.firstRow) {\n this.$lines.unshift(this.$renderLines(config, config.firstRow, oldConfig.firstRow - 1));\n }\n if (lastRow > oldLastRow) {\n this.$lines.push(this.$renderLines(config, oldLastRow + 1, lastRow));\n }\n this.updateLineHighlight();\n this._signal(\"afterRender\");\n this.$updateGutterWidth(config);\n };\n Gutter.prototype.$renderLines = function (config, firstRow, lastRow) {\n var fragment = [];\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n var cell = this.$lines.createCell(row, config, this.session, onCreateCell);\n this.$renderCell(cell, config, foldLine, row);\n fragment.push(cell);\n row++;\n }\n return fragment;\n };\n Gutter.prototype.$renderCell = function (cell, config, fold, row) {\n var element = cell.element;\n var session = this.session;\n var textNode = element.childNodes[0];\n var foldWidget = element.childNodes[1];\n var annotationNode = element.childNodes[2];\n var annotationIconNode = annotationNode.firstChild;\n var firstLineNumber = session.$firstLineNumber;\n var breakpoints = session.$breakpoints;\n var decorations = session.$decorations;\n var gutterRenderer = session.gutterRenderer || this.$renderer;\n var foldWidgets = this.$showFoldWidgets && session.foldWidgets;\n var foldStart = fold ? fold.start.row : Number.MAX_VALUE;\n var lineHeight = config.lineHeight + \"px\";\n var className = this.$useSvgGutterIcons ? \"ace_gutter-cell_svg-icons \" : \"ace_gutter-cell \";\n var iconClassName = this.$useSvgGutterIcons ? \"ace_icon_svg\" : \"ace_icon\";\n var rowText = (gutterRenderer\n ? gutterRenderer.getText(session, row)\n : row + firstLineNumber).toString();\n if (this.$highlightGutterLine) {\n if (row == this.$cursorRow || (fold && row < this.$cursorRow && row >= foldStart && this.$cursorRow <= fold.end.row)) {\n className += \"ace_gutter-active-line \";\n if (this.$cursorCell != cell) {\n if (this.$cursorCell)\n this.$cursorCell.element.className = this.$cursorCell.element.className.replace(\"ace_gutter-active-line \", \"\");\n this.$cursorCell = cell;\n }\n }\n }\n if (breakpoints[row])\n className += breakpoints[row];\n if (decorations[row])\n className += decorations[row];\n if (this.$annotations[row] && row !== foldStart)\n className += this.$annotations[row].className;\n if (foldWidgets) {\n var c = foldWidgets[row];\n if (c == null)\n c = foldWidgets[row] = session.getFoldWidget(row);\n }\n if (c) {\n var foldClass = \"ace_fold-widget ace_\" + c;\n var isClosedFold = c == \"start\" && row == foldStart && row < fold.end.row;\n if (isClosedFold) {\n foldClass += \" ace_closed\";\n var foldAnnotationClass = '';\n var annotationInFold = false;\n for (var i = row + 1; i <= fold.end.row; i++) {\n if (!this.$annotations[i])\n continue;\n if (this.$annotations[i].className === \" ace_error\") {\n annotationInFold = true;\n foldAnnotationClass = \" ace_error_fold\";\n break;\n }\n if (this.$annotations[i].className === \" ace_warning\") {\n annotationInFold = true;\n foldAnnotationClass = \" ace_warning_fold\";\n continue;\n }\n }\n className += foldAnnotationClass;\n }\n else\n foldClass += \" ace_open\";\n if (foldWidget.className != foldClass)\n foldWidget.className = foldClass;\n dom.setStyle(foldWidget.style, \"height\", lineHeight);\n dom.setStyle(foldWidget.style, \"display\", \"inline-block\");\n foldWidget.setAttribute(\"role\", \"button\");\n foldWidget.setAttribute(\"tabindex\", \"-1\");\n var foldRange = session.getFoldWidgetRange(row);\n if (foldRange)\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, rows $0 through $1\", [foldRange.start.row + 1, foldRange.end.row + 1]));\n else {\n if (fold)\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, rows $0 through $1\", [fold.start.row + 1, fold.end.row + 1]));\n else\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, row $0\", [row + 1]));\n }\n if (isClosedFold) {\n foldWidget.setAttribute(\"aria-expanded\", \"false\");\n foldWidget.setAttribute(\"title\", nls(\"Unfold code\"));\n }\n else {\n foldWidget.setAttribute(\"aria-expanded\", \"true\");\n foldWidget.setAttribute(\"title\", nls(\"Fold code\"));\n }\n }\n else {\n if (foldWidget) {\n dom.setStyle(foldWidget.style, \"display\", \"none\");\n foldWidget.setAttribute(\"tabindex\", \"0\");\n foldWidget.removeAttribute(\"role\");\n foldWidget.removeAttribute(\"aria-label\");\n }\n }\n if (annotationInFold && this.$showFoldedAnnotations) {\n annotationNode.className = \"ace_gutter_annotation\";\n annotationIconNode.className = iconClassName;\n annotationIconNode.className += foldAnnotationClass;\n dom.setStyle(annotationIconNode.style, \"height\", lineHeight);\n dom.setStyle(annotationNode.style, \"display\", \"block\");\n dom.setStyle(annotationNode.style, \"height\", lineHeight);\n annotationNode.setAttribute(\"aria-label\", nls(\"Read annotations row $0\", [rowText]));\n annotationNode.setAttribute(\"tabindex\", \"-1\");\n annotationNode.setAttribute(\"role\", \"button\");\n }\n else if (this.$annotations[row]) {\n annotationNode.className = \"ace_gutter_annotation\";\n annotationIconNode.className = iconClassName;\n if (this.$useSvgGutterIcons)\n annotationIconNode.className += this.$annotations[row].className;\n else\n element.classList.add(this.$annotations[row].className.replace(\" \", \"\"));\n dom.setStyle(annotationIconNode.style, \"height\", lineHeight);\n dom.setStyle(annotationNode.style, \"display\", \"block\");\n dom.setStyle(annotationNode.style, \"height\", lineHeight);\n annotationNode.setAttribute(\"aria-label\", nls(\"Read annotations row $0\", [rowText]));\n annotationNode.setAttribute(\"tabindex\", \"-1\");\n annotationNode.setAttribute(\"role\", \"button\");\n }\n else {\n dom.setStyle(annotationNode.style, \"display\", \"none\");\n annotationNode.removeAttribute(\"aria-label\");\n annotationNode.removeAttribute(\"role\");\n annotationNode.setAttribute(\"tabindex\", \"0\");\n }\n if (rowText !== textNode.data) {\n textNode.data = rowText;\n }\n if (element.className != className)\n element.className = className;\n dom.setStyle(cell.element.style, \"height\", this.$lines.computeLineHeight(row, config, session) + \"px\");\n dom.setStyle(cell.element.style, \"top\", this.$lines.computeLineTop(row, config, session) + \"px\");\n cell.text = rowText;\n if (annotationNode.style.display === \"none\" && foldWidget.style.display === \"none\")\n cell.element.setAttribute(\"aria-hidden\", true);\n else\n cell.element.setAttribute(\"aria-hidden\", false);\n return cell;\n };\n Gutter.prototype.setHighlightGutterLine = function (highlightGutterLine) {\n this.$highlightGutterLine = highlightGutterLine;\n };\n Gutter.prototype.setShowLineNumbers = function (show) {\n this.$renderer = !show && {\n getWidth: function () { return 0; },\n getText: function () { return \"\"; }\n };\n };\n Gutter.prototype.getShowLineNumbers = function () {\n return this.$showLineNumbers;\n };\n Gutter.prototype.setShowFoldWidgets = function (show) {\n if (show)\n dom.addCssClass(this.element, \"ace_folding-enabled\");\n else\n dom.removeCssClass(this.element, \"ace_folding-enabled\");\n this.$showFoldWidgets = show;\n this.$padding = null;\n };\n Gutter.prototype.getShowFoldWidgets = function () {\n return this.$showFoldWidgets;\n };\n Gutter.prototype.$computePadding = function () {\n if (!this.element.firstChild)\n return { left: 0, right: 0 };\n var style = dom.computedStyle(this.element.firstChild);\n this.$padding = {};\n this.$padding.left = (parseInt(style.borderLeftWidth) || 0)\n + (parseInt(style.paddingLeft) || 0) + 1;\n this.$padding.right = (parseInt(style.borderRightWidth) || 0)\n + (parseInt(style.paddingRight) || 0);\n return this.$padding;\n };\n Gutter.prototype.getRegion = function (point) {\n var padding = this.$padding || this.$computePadding();\n var rect = this.element.getBoundingClientRect();\n if (point.x < padding.left + rect.left)\n return \"markers\";\n if (this.$showFoldWidgets && point.x > rect.right - padding.right)\n return \"foldWidgets\";\n };\n return Gutter;\n}());\nGutter.prototype.$fixedWidth = false;\nGutter.prototype.$highlightGutterLine = true;\nGutter.prototype.$renderer = \"\";\nGutter.prototype.$showLineNumbers = true;\nGutter.prototype.$showFoldWidgets = true;\noop.implement(Gutter.prototype, EventEmitter);\nfunction onCreateCell(element) {\n var textNode = document.createTextNode('');\n element.appendChild(textNode);\n var foldWidget = dom.createElement(\"span\");\n element.appendChild(foldWidget);\n var annotationNode = dom.createElement(\"span\");\n element.appendChild(annotationNode);\n var annotationIconNode = dom.createElement(\"span\");\n annotationNode.appendChild(annotationIconNode);\n return element;\n}\nexports.Gutter = Gutter;\n\n});\n\nace.define(\"ace/layer/marker\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar dom = require(\"../lib/dom\");\nvar Marker = /** @class */ (function () {\n function Marker(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_marker-layer\";\n parentEl.appendChild(this.element);\n }\n Marker.prototype.setPadding = function (padding) {\n this.$padding = padding;\n };\n Marker.prototype.setSession = function (session) {\n this.session = session;\n };\n Marker.prototype.setMarkers = function (markers) {\n this.markers = markers;\n };\n Marker.prototype.elt = function (className, css) {\n var x = this.i != -1 && this.element.childNodes[this.i];\n if (!x) {\n x = document.createElement(\"div\");\n this.element.appendChild(x);\n this.i = -1;\n }\n else {\n this.i++;\n }\n x.style.cssText = css;\n x.className = className;\n };\n Marker.prototype.update = function (config) {\n if (!config)\n return;\n this.config = config;\n this.i = 0;\n var html;\n for (var key in this.markers) {\n var marker = this.markers[key];\n if (!marker.range) {\n marker.update(html, this, this.session, config);\n continue;\n }\n var range = marker.range.clipRows(config.firstRow, config.lastRow);\n if (range.isEmpty())\n continue;\n range = range.toScreenRange(this.session);\n if (marker.renderer) {\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n marker.renderer(html, range, left, top, config);\n }\n else if (marker.type == \"fullLine\") {\n this.drawFullLineMarker(html, range, marker.clazz, config);\n }\n else if (marker.type == \"screenLine\") {\n this.drawScreenLineMarker(html, range, marker.clazz, config);\n }\n else if (range.isMultiLine()) {\n if (marker.type == \"text\")\n this.drawTextMarker(html, range, marker.clazz, config);\n else\n this.drawMultiLineMarker(html, range, marker.clazz, config);\n }\n else {\n this.drawSingleLineMarker(html, range, marker.clazz + \" ace_start\" + \" ace_br15\", config);\n }\n }\n if (this.i != -1) {\n while (this.i < this.element.childElementCount)\n this.element.removeChild(this.element.lastChild);\n }\n };\n Marker.prototype.$getTop = function (row, layerConfig) {\n return (row - layerConfig.firstRowScreen) * layerConfig.lineHeight;\n };\n Marker.prototype.drawTextMarker = function (stringBuilder, range, clazz, layerConfig, extraStyle) {\n var session = this.session;\n var start = range.start.row;\n var end = range.end.row;\n var row = start;\n var prev = 0;\n var curr = 0;\n var next = session.getScreenLastRowColumn(row);\n var lineRange = new Range(row, range.start.column, row, curr);\n for (; row <= end; row++) {\n lineRange.start.row = lineRange.end.row = row;\n lineRange.start.column = row == start ? range.start.column : session.getRowWrapIndent(row);\n lineRange.end.column = next;\n prev = curr;\n curr = next;\n next = row + 1 < end ? session.getScreenLastRowColumn(row + 1) : row == end ? 0 : range.end.column;\n this.drawSingleLineMarker(stringBuilder, lineRange, clazz + (row == start ? \" ace_start\" : \"\") + \" ace_br\"\n + getBorderClass(row == start || row == start + 1 && range.start.column, prev < curr, curr > next, row == end), layerConfig, row == end ? 0 : 1, extraStyle);\n }\n };\n Marker.prototype.drawMultiLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var padding = this.$padding;\n var height = config.lineHeight;\n var top = this.$getTop(range.start.row, config);\n var left = padding + range.start.column * config.characterWidth;\n extraStyle = extraStyle || \"\";\n if (this.session.$bidiHandler.isBidiRow(range.start.row)) {\n var range1 = range.clone();\n range1.end.row = range1.start.row;\n range1.end.column = this.session.getLine(range1.start.row).length;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br1 ace_start\", config, null, extraStyle);\n }\n else {\n this.elt(clazz + \" ace_br1 ace_start\", \"height:\" + height + \"px;\" + \"right:0;\" + \"top:\" + top + \"px;left:\" + left + \"px;\" + (extraStyle || \"\"));\n }\n if (this.session.$bidiHandler.isBidiRow(range.end.row)) {\n var range1 = range.clone();\n range1.start.row = range1.end.row;\n range1.start.column = 0;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br12\", config, null, extraStyle);\n }\n else {\n top = this.$getTop(range.end.row, config);\n var width = range.end.column * config.characterWidth;\n this.elt(clazz + \" ace_br12\", \"height:\" + height + \"px;\" +\n \"width:\" + width + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + padding + \"px;\" + (extraStyle || \"\"));\n }\n height = (range.end.row - range.start.row - 1) * config.lineHeight;\n if (height <= 0)\n return;\n top = this.$getTop(range.start.row + 1, config);\n var radiusClass = (range.start.column ? 1 : 0) | (range.end.column ? 0 : 8);\n this.elt(clazz + (radiusClass ? \" ace_br\" + radiusClass : \"\"), \"height:\" + height + \"px;\" +\n \"right:0;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + padding + \"px;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawSingleLineMarker = function (stringBuilder, range, clazz, config, extraLength, extraStyle) {\n if (this.session.$bidiHandler.isBidiRow(range.start.row))\n return this.drawBidiSingleLineMarker(stringBuilder, range, clazz, config, extraLength, extraStyle);\n var height = config.lineHeight;\n var width = (range.end.column + (extraLength || 0) - range.start.column) * config.characterWidth;\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"width:\" + width + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + left + \"px;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawBidiSingleLineMarker = function (stringBuilder, range, clazz, config, extraLength, extraStyle) {\n var height = config.lineHeight, top = this.$getTop(range.start.row, config), padding = this.$padding;\n var selections = this.session.$bidiHandler.getSelections(range.start.column, range.end.column);\n selections.forEach(function (selection) {\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"width:\" + (selection.width + (extraLength || 0)) + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + (padding + selection.left) + \"px;\" + (extraStyle || \"\"));\n }, this);\n };\n Marker.prototype.drawFullLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n if (range.start.row != range.end.row)\n height += this.$getTop(range.end.row, config) - top;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:0;right:0;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawScreenLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:0;right:0;\" + (extraStyle || \"\"));\n };\n return Marker;\n}());\nMarker.prototype.$padding = 0;\nfunction getBorderClass(tl, tr, br, bl) {\n return (tl ? 1 : 0) | (tr ? 2 : 0) | (br ? 4 : 0) | (bl ? 8 : 0);\n}\nexports.Marker = Marker;\n\n});\n\nace.define(\"ace/layer/text_util\",[\"require\",\"exports\",\"module\"], function(require, exports, module){// Tokens for which Ace just uses a simple TextNode and does not add any special className.\nvar textTokens = new Set([\"text\", \"rparen\", \"lparen\"]);\nexports.isTextToken = function (tokenType) {\n return textTokens.has(tokenType);\n};\n\n});\n\nace.define(\"ace/layer/text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/layer/lines\",\"ace/lib/event_emitter\",\"ace/config\",\"ace/layer/text_util\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar Lines = require(\"./lines\").Lines;\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar nls = require(\"../config\").nls;\nvar isTextToken = require(\"./text_util\").isTextToken;\nvar Text = /** @class */ (function () {\n function Text(parentEl) {\n this.dom = dom;\n this.element = this.dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_text-layer\";\n parentEl.appendChild(this.element);\n this.$updateEolChar = this.$updateEolChar.bind(this);\n this.$lines = new Lines(this.element);\n }\n Text.prototype.$updateEolChar = function () {\n var doc = this.session.doc;\n var unixMode = doc.getNewLineCharacter() == \"\\n\" && doc.getNewLineMode() != \"windows\";\n var EOL_CHAR = unixMode ? this.EOL_CHAR_LF : this.EOL_CHAR_CRLF;\n if (this.EOL_CHAR != EOL_CHAR) {\n this.EOL_CHAR = EOL_CHAR;\n return true;\n }\n };\n Text.prototype.setPadding = function (padding) {\n this.$padding = padding;\n this.element.style.margin = \"0 \" + padding + \"px\";\n };\n Text.prototype.getLineHeight = function () {\n return this.$fontMetrics.$characterSize.height || 0;\n };\n Text.prototype.getCharacterWidth = function () {\n return this.$fontMetrics.$characterSize.width || 0;\n };\n Text.prototype.$setFontMetrics = function (measure) {\n this.$fontMetrics = measure;\n this.$fontMetrics.on(\"changeCharacterSize\", function (e) {\n this._signal(\"changeCharacterSize\", e);\n }.bind(this));\n this.$pollSizeChanges();\n };\n Text.prototype.checkForSizeChanges = function () {\n this.$fontMetrics.checkForSizeChanges();\n };\n Text.prototype.$pollSizeChanges = function () {\n return this.$pollSizeChangesTimer = this.$fontMetrics.$pollSizeChanges();\n };\n Text.prototype.setSession = function (session) {\n this.session = session;\n if (session)\n this.$computeTabString();\n };\n Text.prototype.setShowInvisibles = function (showInvisibles) {\n if (this.showInvisibles == showInvisibles)\n return false;\n this.showInvisibles = showInvisibles;\n if (typeof showInvisibles == \"string\") {\n this.showSpaces = /tab/i.test(showInvisibles);\n this.showTabs = /space/i.test(showInvisibles);\n this.showEOL = /eol/i.test(showInvisibles);\n }\n else {\n this.showSpaces = this.showTabs = this.showEOL = showInvisibles;\n }\n this.$computeTabString();\n return true;\n };\n Text.prototype.setDisplayIndentGuides = function (display) {\n if (this.displayIndentGuides == display)\n return false;\n this.displayIndentGuides = display;\n this.$computeTabString();\n return true;\n };\n Text.prototype.setHighlightIndentGuides = function (highlight) {\n if (this.$highlightIndentGuides === highlight)\n return false;\n this.$highlightIndentGuides = highlight;\n return highlight;\n };\n Text.prototype.$computeTabString = function () {\n var tabSize = this.session.getTabSize();\n this.tabSize = tabSize;\n var tabStr = this.$tabStrings = [0];\n for (var i = 1; i < tabSize + 1; i++) {\n if (this.showTabs) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_tab\";\n span.textContent = lang.stringRepeat(this.TAB_CHAR, i);\n tabStr.push(span);\n }\n else {\n tabStr.push(this.dom.createTextNode(lang.stringRepeat(\" \", i), this.element));\n }\n }\n if (this.displayIndentGuides) {\n this.$indentGuideRe = /\\s\\S| \\t|\\t |\\s$/;\n var className = \"ace_indent-guide\";\n var spaceClass = this.showSpaces ? \" ace_invisible ace_invisible_space\" : \"\";\n var spaceContent = this.showSpaces\n ? lang.stringRepeat(this.SPACE_CHAR, this.tabSize)\n : lang.stringRepeat(\" \", this.tabSize);\n var tabClass = this.showTabs ? \" ace_invisible ace_invisible_tab\" : \"\";\n var tabContent = this.showTabs\n ? lang.stringRepeat(this.TAB_CHAR, this.tabSize)\n : spaceContent;\n var span = this.dom.createElement(\"span\");\n span.className = className + spaceClass;\n span.textContent = spaceContent;\n this.$tabStrings[\" \"] = span;\n var span = this.dom.createElement(\"span\");\n span.className = className + tabClass;\n span.textContent = tabContent;\n this.$tabStrings[\"\\t\"] = span;\n }\n };\n Text.prototype.updateLines = function (config, firstRow, lastRow) {\n if (this.config.lastRow != config.lastRow ||\n this.config.firstRow != config.firstRow) {\n return this.update(config);\n }\n this.config = config;\n var first = Math.max(firstRow, config.firstRow);\n var last = Math.min(lastRow, config.lastRow);\n var lineElements = this.element.childNodes;\n var lineElementsIdx = 0;\n for (var row = config.firstRow; row < first; row++) {\n var foldLine = this.session.getFoldLine(row);\n if (foldLine) {\n if (foldLine.containsRow(first)) {\n first = foldLine.start.row;\n break;\n }\n else {\n row = foldLine.end.row;\n }\n }\n lineElementsIdx++;\n }\n var heightChanged = false;\n var row = first;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > last)\n break;\n var lineElement = lineElements[lineElementsIdx++];\n if (lineElement) {\n this.dom.removeChildren(lineElement);\n this.$renderLine(lineElement, row, row == foldStart ? foldLine : false);\n if (heightChanged)\n lineElement.style.top = this.$lines.computeLineTop(row, config, this.session) + \"px\";\n var height = (config.lineHeight * this.session.getRowLength(row)) + \"px\";\n if (lineElement.style.height != height) {\n heightChanged = true;\n lineElement.style.height = height;\n }\n }\n row++;\n }\n if (heightChanged) {\n while (lineElementsIdx < this.$lines.cells.length) {\n var cell = this.$lines.cells[lineElementsIdx++];\n cell.element.style.top = this.$lines.computeLineTop(cell.row, config, this.session) + \"px\";\n }\n }\n };\n Text.prototype.scrollLines = function (config) {\n var oldConfig = this.config;\n this.config = config;\n if (this.$lines.pageChanged(oldConfig, config))\n return this.update(config);\n this.$lines.moveContainer(config);\n var lastRow = config.lastRow;\n var oldLastRow = oldConfig ? oldConfig.lastRow : -1;\n if (!oldConfig || oldLastRow < config.firstRow)\n return this.update(config);\n if (lastRow < oldConfig.firstRow)\n return this.update(config);\n if (!oldConfig || oldConfig.lastRow < config.firstRow)\n return this.update(config);\n if (config.lastRow < oldConfig.firstRow)\n return this.update(config);\n if (oldConfig.firstRow < config.firstRow)\n for (var row = this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row > 0; row--)\n this.$lines.shift();\n if (oldConfig.lastRow > config.lastRow)\n for (var row = this.session.getFoldedRowCount(config.lastRow + 1, oldConfig.lastRow); row > 0; row--)\n this.$lines.pop();\n if (config.firstRow < oldConfig.firstRow) {\n this.$lines.unshift(this.$renderLinesFragment(config, config.firstRow, oldConfig.firstRow - 1));\n }\n if (config.lastRow > oldConfig.lastRow) {\n this.$lines.push(this.$renderLinesFragment(config, oldConfig.lastRow + 1, config.lastRow));\n }\n this.$highlightIndentGuide();\n };\n Text.prototype.$renderLinesFragment = function (config, firstRow, lastRow) {\n var fragment = [];\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n var line = this.$lines.createCell(row, config, this.session);\n var lineEl = line.element;\n this.dom.removeChildren(lineEl);\n dom.setStyle(lineEl.style, \"height\", this.$lines.computeLineHeight(row, config, this.session) + \"px\");\n dom.setStyle(lineEl.style, \"top\", this.$lines.computeLineTop(row, config, this.session) + \"px\");\n this.$renderLine(lineEl, row, row == foldStart ? foldLine : false);\n if (this.$useLineGroups()) {\n lineEl.className = \"ace_line_group\";\n }\n else {\n lineEl.className = \"ace_line\";\n }\n fragment.push(line);\n row++;\n }\n return fragment;\n };\n Text.prototype.update = function (config) {\n this.$lines.moveContainer(config);\n this.config = config;\n var firstRow = config.firstRow;\n var lastRow = config.lastRow;\n var lines = this.$lines;\n while (lines.getLength())\n lines.pop();\n lines.push(this.$renderLinesFragment(config, firstRow, lastRow));\n };\n Text.prototype.$renderToken = function (parent, screenColumn, token, value) {\n var self = this;\n var re = /(\\t)|( +)|([\\x00-\\x1f\\x80-\\xa0\\xad\\u1680\\u180E\\u2000-\\u200f\\u2028\\u2029\\u202F\\u205F\\uFEFF\\uFFF9-\\uFFFC\\u2066\\u2067\\u2068\\u202A\\u202B\\u202D\\u202E\\u202C\\u2069]+)|(\\u3000)|([\\u1100-\\u115F\\u11A3-\\u11A7\\u11FA-\\u11FF\\u2329-\\u232A\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3001-\\u303E\\u3041-\\u3096\\u3099-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u3190-\\u31BA\\u31C0-\\u31E3\\u31F0-\\u321E\\u3220-\\u3247\\u3250-\\u32FE\\u3300-\\u4DBF\\u4E00-\\uA48C\\uA490-\\uA4C6\\uA960-\\uA97C\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFAFF\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFF01-\\uFF60\\uFFE0-\\uFFE6]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF])/g;\n var valueFragment = this.dom.createFragment(this.element);\n var m;\n var i = 0;\n while (m = re.exec(value)) {\n var tab = m[1];\n var simpleSpace = m[2];\n var controlCharacter = m[3];\n var cjkSpace = m[4];\n var cjk = m[5];\n if (!self.showSpaces && simpleSpace)\n continue;\n var before = i != m.index ? value.slice(i, m.index) : \"\";\n i = m.index + m[0].length;\n if (before) {\n valueFragment.appendChild(this.dom.createTextNode(before, this.element));\n }\n if (tab) {\n var tabSize = self.session.getScreenTabSize(screenColumn + m.index);\n valueFragment.appendChild(self.$tabStrings[tabSize].cloneNode(true));\n screenColumn += tabSize - 1;\n }\n else if (simpleSpace) {\n if (self.showSpaces) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_space\";\n span.textContent = lang.stringRepeat(self.SPACE_CHAR, simpleSpace.length);\n valueFragment.appendChild(span);\n }\n else {\n valueFragment.appendChild(this.dom.createTextNode(simpleSpace, this.element));\n }\n }\n else if (controlCharacter) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_space ace_invalid\";\n span.textContent = lang.stringRepeat(self.SPACE_CHAR, controlCharacter.length);\n valueFragment.appendChild(span);\n }\n else if (cjkSpace) {\n screenColumn += 1;\n var span = this.dom.createElement(\"span\");\n span.style.width = (self.config.characterWidth * 2) + \"px\";\n span.className = self.showSpaces ? \"ace_cjk ace_invisible ace_invisible_space\" : \"ace_cjk\";\n span.textContent = self.showSpaces ? self.SPACE_CHAR : cjkSpace;\n valueFragment.appendChild(span);\n }\n else if (cjk) {\n screenColumn += 1;\n var span = this.dom.createElement(\"span\");\n span.style.width = (self.config.characterWidth * 2) + \"px\";\n span.className = \"ace_cjk\";\n span.textContent = cjk;\n valueFragment.appendChild(span);\n }\n }\n valueFragment.appendChild(this.dom.createTextNode(i ? value.slice(i) : value, this.element));\n if (!isTextToken(token.type)) {\n var classes = \"ace_\" + token.type.replace(/\\./g, \" ace_\");\n var span = this.dom.createElement(\"span\");\n if (token.type == \"fold\") {\n span.style.width = (token.value.length * this.config.characterWidth) + \"px\";\n span.setAttribute(\"title\", nls(\"Unfold code\"));\n }\n span.className = classes;\n span.appendChild(valueFragment);\n parent.appendChild(span);\n }\n else {\n parent.appendChild(valueFragment);\n }\n return screenColumn + value.length;\n };\n Text.prototype.renderIndentGuide = function (parent, value, max) {\n var cols = value.search(this.$indentGuideRe);\n if (cols <= 0 || cols >= max)\n return value;\n if (value[0] == \" \") {\n cols -= cols % this.tabSize;\n var count = cols / this.tabSize;\n for (var i = 0; i < count; i++) {\n parent.appendChild(this.$tabStrings[\" \"].cloneNode(true));\n }\n this.$highlightIndentGuide();\n return value.substr(cols);\n }\n else if (value[0] == \"\\t\") {\n for (var i = 0; i < cols; i++) {\n parent.appendChild(this.$tabStrings[\"\\t\"].cloneNode(true));\n }\n this.$highlightIndentGuide();\n return value.substr(cols);\n }\n this.$highlightIndentGuide();\n return value;\n };\n Text.prototype.$highlightIndentGuide = function () {\n if (!this.$highlightIndentGuides || !this.displayIndentGuides)\n return;\n this.$highlightIndentGuideMarker = {\n indentLevel: undefined,\n start: undefined,\n end: undefined,\n dir: undefined\n };\n var lines = this.session.doc.$lines;\n if (!lines)\n return;\n var cursor = this.session.selection.getCursor();\n var initialIndent = /^\\s*/.exec(this.session.doc.getLine(cursor.row))[0].length;\n var elementIndentLevel = Math.floor(initialIndent / this.tabSize);\n this.$highlightIndentGuideMarker = {\n indentLevel: elementIndentLevel,\n start: cursor.row\n };\n var bracketHighlight = this.session.$bracketHighlight;\n if (bracketHighlight) {\n var ranges = this.session.$bracketHighlight.ranges;\n for (var i = 0; i < ranges.length; i++) {\n if (cursor.row !== ranges[i].start.row) {\n this.$highlightIndentGuideMarker.end = ranges[i].start.row;\n if (cursor.row > ranges[i].start.row) {\n this.$highlightIndentGuideMarker.dir = -1;\n }\n else {\n this.$highlightIndentGuideMarker.dir = 1;\n }\n break;\n }\n }\n }\n if (!this.$highlightIndentGuideMarker.end) {\n if (lines[cursor.row] !== '' && cursor.column === lines[cursor.row].length) {\n this.$highlightIndentGuideMarker.dir = 1;\n for (var i = cursor.row + 1; i < lines.length; i++) {\n var line = lines[i];\n var currentIndent = /^\\s*/.exec(line)[0].length;\n if (line !== '') {\n this.$highlightIndentGuideMarker.end = i;\n if (currentIndent <= initialIndent)\n break;\n }\n }\n }\n }\n this.$renderHighlightIndentGuide();\n };\n Text.prototype.$clearActiveIndentGuide = function () {\n var cells = this.$lines.cells;\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n var childNodes = cell.element.childNodes;\n if (childNodes.length > 0) {\n for (var j = 0; j < childNodes.length; j++) {\n if (childNodes[j].classList && childNodes[j].classList.contains(\"ace_indent-guide-active\")) {\n childNodes[j].classList.remove(\"ace_indent-guide-active\");\n break;\n }\n }\n }\n }\n };\n Text.prototype.$setIndentGuideActive = function (cell, indentLevel) {\n var line = this.session.doc.getLine(cell.row);\n if (line !== \"\") {\n var childNodes = cell.element.childNodes;\n if (childNodes) {\n var node = childNodes[indentLevel - 1];\n if (node && node.classList && node.classList.contains(\"ace_indent-guide\"))\n node.classList.add(\"ace_indent-guide-active\");\n }\n }\n };\n Text.prototype.$renderHighlightIndentGuide = function () {\n if (!this.$lines)\n return;\n var cells = this.$lines.cells;\n this.$clearActiveIndentGuide();\n var indentLevel = this.$highlightIndentGuideMarker.indentLevel;\n if (indentLevel !== 0) {\n if (this.$highlightIndentGuideMarker.dir === 1) {\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n if (this.$highlightIndentGuideMarker.end && cell.row >= this.$highlightIndentGuideMarker.start\n + 1) {\n if (cell.row >= this.$highlightIndentGuideMarker.end)\n break;\n this.$setIndentGuideActive(cell, indentLevel);\n }\n }\n }\n else {\n for (var i = cells.length - 1; i >= 0; i--) {\n var cell = cells[i];\n if (this.$highlightIndentGuideMarker.end && cell.row < this.$highlightIndentGuideMarker.start) {\n if (cell.row <= this.$highlightIndentGuideMarker.end)\n break;\n this.$setIndentGuideActive(cell, indentLevel);\n }\n }\n }\n }\n };\n Text.prototype.$createLineElement = function (parent) {\n var lineEl = this.dom.createElement(\"div\");\n lineEl.className = \"ace_line\";\n lineEl.style.height = this.config.lineHeight + \"px\";\n return lineEl;\n };\n Text.prototype.$renderWrappedLine = function (parent, tokens, splits) {\n var chars = 0;\n var split = 0;\n var splitChars = splits[0];\n var screenColumn = 0;\n var lineEl = this.$createLineElement();\n parent.appendChild(lineEl);\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n chars = value.length;\n value = this.renderIndentGuide(lineEl, value, splitChars);\n if (!value)\n continue;\n chars -= value.length;\n }\n if (chars + value.length < splitChars) {\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value);\n chars += value.length;\n }\n else {\n while (chars + value.length >= splitChars) {\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value.substring(0, splitChars - chars));\n value = value.substring(splitChars - chars);\n chars = splitChars;\n lineEl = this.$createLineElement();\n parent.appendChild(lineEl);\n lineEl.appendChild(this.dom.createTextNode(lang.stringRepeat(\"\\xa0\", splits.indent), this.element));\n split++;\n screenColumn = 0;\n splitChars = splits[split] || Number.MAX_VALUE;\n }\n if (value.length != 0) {\n chars += value.length;\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value);\n }\n }\n }\n if (splits[splits.length - 1] > this.MAX_LINE_LENGTH)\n this.$renderOverflowMessage(lineEl, screenColumn, null, \"\", true);\n };\n Text.prototype.$renderSimpleLine = function (parent, tokens) {\n var screenColumn = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n value = this.renderIndentGuide(parent, value);\n if (!value)\n continue;\n }\n if (screenColumn + value.length > this.MAX_LINE_LENGTH)\n return this.$renderOverflowMessage(parent, screenColumn, token, value);\n screenColumn = this.$renderToken(parent, screenColumn, token, value);\n }\n };\n Text.prototype.$renderOverflowMessage = function (parent, screenColumn, token, value, hide) {\n token && this.$renderToken(parent, screenColumn, token, value.slice(0, this.MAX_LINE_LENGTH - screenColumn));\n var overflowEl = this.dom.createElement(\"span\");\n overflowEl.className = \"ace_inline_button ace_keyword ace_toggle_wrap\";\n overflowEl.textContent = hide ? \"\" : \"\";\n parent.appendChild(overflowEl);\n };\n Text.prototype.$renderLine = function (parent, row, foldLine) {\n if (!foldLine && foldLine != false)\n foldLine = this.session.getFoldLine(row);\n if (foldLine)\n var tokens = this.$getFoldLineTokens(row, foldLine);\n else\n var tokens = this.session.getTokens(row);\n var lastLineEl = parent;\n if (tokens.length) {\n var splits = this.session.getRowSplitData(row);\n if (splits && splits.length) {\n this.$renderWrappedLine(parent, tokens, splits);\n var lastLineEl = parent.lastChild;\n }\n else {\n var lastLineEl = parent;\n if (this.$useLineGroups()) {\n lastLineEl = this.$createLineElement();\n parent.appendChild(lastLineEl);\n }\n this.$renderSimpleLine(lastLineEl, tokens);\n }\n }\n else if (this.$useLineGroups()) {\n lastLineEl = this.$createLineElement();\n parent.appendChild(lastLineEl);\n }\n if (this.showEOL && lastLineEl) {\n if (foldLine)\n row = foldLine.end.row;\n var invisibleEl = this.dom.createElement(\"span\");\n invisibleEl.className = \"ace_invisible ace_invisible_eol\";\n invisibleEl.textContent = row == this.session.getLength() - 1 ? this.EOF_CHAR : this.EOL_CHAR;\n lastLineEl.appendChild(invisibleEl);\n }\n };\n Text.prototype.$getFoldLineTokens = function (row, foldLine) {\n var session = this.session;\n var renderTokens = [];\n function addTokens(tokens, from, to) {\n var idx = 0, col = 0;\n while ((col + tokens[idx].value.length) < from) {\n col += tokens[idx].value.length;\n idx++;\n if (idx == tokens.length)\n return;\n }\n if (col != from) {\n var value = tokens[idx].value.substring(from - col);\n if (value.length > (to - from))\n value = value.substring(0, to - from);\n renderTokens.push({\n type: tokens[idx].type,\n value: value\n });\n col = from + value.length;\n idx += 1;\n }\n while (col < to && idx < tokens.length) {\n var value = tokens[idx].value;\n if (value.length + col > to) {\n renderTokens.push({\n type: tokens[idx].type,\n value: value.substring(0, to - col)\n });\n }\n else\n renderTokens.push(tokens[idx]);\n col += value.length;\n idx += 1;\n }\n }\n var tokens = session.getTokens(row);\n foldLine.walk(function (placeholder, row, column, lastColumn, isNewRow) {\n if (placeholder != null) {\n renderTokens.push({\n type: \"fold\",\n value: placeholder\n });\n }\n else {\n if (isNewRow)\n tokens = session.getTokens(row);\n if (tokens.length)\n addTokens(tokens, lastColumn, column);\n }\n }, foldLine.end.row, this.session.getLine(foldLine.end.row).length);\n return renderTokens;\n };\n Text.prototype.$useLineGroups = function () {\n return this.session.getUseWrapMode();\n };\n return Text;\n}());\nText.prototype.EOF_CHAR = \"\\xB6\";\nText.prototype.EOL_CHAR_LF = \"\\xAC\";\nText.prototype.EOL_CHAR_CRLF = \"\\xa4\";\nText.prototype.EOL_CHAR = Text.prototype.EOL_CHAR_LF;\nText.prototype.TAB_CHAR = \"\\u2014\"; //\"\\u21E5\";\nText.prototype.SPACE_CHAR = \"\\xB7\";\nText.prototype.$padding = 0;\nText.prototype.MAX_LINE_LENGTH = 10000;\nText.prototype.showInvisibles = false;\nText.prototype.showSpaces = false;\nText.prototype.showTabs = false;\nText.prototype.showEOL = false;\nText.prototype.displayIndentGuides = true;\nText.prototype.$highlightIndentGuides = true;\nText.prototype.$tabStrings = [];\nText.prototype.destroy = {};\nText.prototype.onChangeTabSize = Text.prototype.$computeTabString;\noop.implement(Text.prototype, EventEmitter);\nexports.Text = Text;\n\n});\n\nace.define(\"ace/layer/cursor\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar Cursor = /** @class */ (function () {\n function Cursor(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_cursor-layer\";\n parentEl.appendChild(this.element);\n this.isVisible = false;\n this.isBlinking = true;\n this.blinkInterval = 1000;\n this.smoothBlinking = false;\n this.cursors = [];\n this.cursor = this.addCursor();\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.$updateCursors = this.$updateOpacity.bind(this);\n }\n Cursor.prototype.$updateOpacity = function (val) {\n var cursors = this.cursors;\n for (var i = cursors.length; i--;)\n dom.setStyle(cursors[i].style, \"opacity\", val ? \"\" : \"0\");\n };\n Cursor.prototype.$startCssAnimation = function () {\n var cursors = this.cursors;\n for (var i = cursors.length; i--;)\n cursors[i].style.animationDuration = this.blinkInterval + \"ms\";\n this.$isAnimating = true;\n setTimeout(function () {\n if (this.$isAnimating) {\n dom.addCssClass(this.element, \"ace_animate-blinking\");\n }\n }.bind(this));\n };\n Cursor.prototype.$stopCssAnimation = function () {\n this.$isAnimating = false;\n dom.removeCssClass(this.element, \"ace_animate-blinking\");\n };\n Cursor.prototype.setPadding = function (padding) {\n this.$padding = padding;\n };\n Cursor.prototype.setSession = function (session) {\n this.session = session;\n };\n Cursor.prototype.setBlinking = function (blinking) {\n if (blinking != this.isBlinking) {\n this.isBlinking = blinking;\n this.restartTimer();\n }\n };\n Cursor.prototype.setBlinkInterval = function (blinkInterval) {\n if (blinkInterval != this.blinkInterval) {\n this.blinkInterval = blinkInterval;\n this.restartTimer();\n }\n };\n Cursor.prototype.setSmoothBlinking = function (smoothBlinking) {\n if (smoothBlinking != this.smoothBlinking) {\n this.smoothBlinking = smoothBlinking;\n dom.setCssClass(this.element, \"ace_smooth-blinking\", smoothBlinking);\n this.$updateCursors(true);\n this.restartTimer();\n }\n };\n Cursor.prototype.addCursor = function () {\n var el = dom.createElement(\"div\");\n el.className = \"ace_cursor\";\n this.element.appendChild(el);\n this.cursors.push(el);\n return el;\n };\n Cursor.prototype.removeCursor = function () {\n if (this.cursors.length > 1) {\n var el = this.cursors.pop();\n el.parentNode.removeChild(el);\n return el;\n }\n };\n Cursor.prototype.hideCursor = function () {\n this.isVisible = false;\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n Cursor.prototype.showCursor = function () {\n this.isVisible = true;\n dom.removeCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n Cursor.prototype.restartTimer = function () {\n var update = this.$updateCursors;\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n this.$stopCssAnimation();\n if (this.smoothBlinking) {\n this.$isSmoothBlinking = false;\n dom.removeCssClass(this.element, \"ace_smooth-blinking\");\n }\n update(true);\n if (!this.isBlinking || !this.blinkInterval || !this.isVisible) {\n this.$stopCssAnimation();\n return;\n }\n if (this.smoothBlinking) {\n this.$isSmoothBlinking = true;\n setTimeout(function () {\n if (this.$isSmoothBlinking) {\n dom.addCssClass(this.element, \"ace_smooth-blinking\");\n }\n }.bind(this));\n }\n if (dom.HAS_CSS_ANIMATION) {\n this.$startCssAnimation();\n }\n else {\n var blink = function () {\n this.timeoutId = setTimeout(function () {\n update(false);\n }, 0.6 * this.blinkInterval);\n }.bind(this);\n this.intervalId = setInterval(function () {\n update(true);\n blink();\n }, this.blinkInterval);\n blink();\n }\n };\n Cursor.prototype.getPixelPosition = function (position, onScreen) {\n if (!this.config || !this.session)\n return { left: 0, top: 0 };\n if (!position)\n position = this.session.selection.getCursor();\n var pos = this.session.documentToScreenPosition(position);\n var cursorLeft = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, position.row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : pos.column * this.config.characterWidth);\n var cursorTop = (pos.row - (onScreen ? this.config.firstRowScreen : 0)) *\n this.config.lineHeight;\n return { left: cursorLeft, top: cursorTop };\n };\n Cursor.prototype.isCursorInView = function (pixelPos, config) {\n return pixelPos.top >= 0 && pixelPos.top < config.maxHeight;\n };\n Cursor.prototype.update = function (config) {\n this.config = config;\n var selections = this.session.$selectionMarkers;\n var i = 0, cursorIndex = 0;\n if (selections === undefined || selections.length === 0) {\n selections = [{ cursor: null }];\n }\n for (var i = 0, n = selections.length; i < n; i++) {\n var pixelPos = this.getPixelPosition(selections[i].cursor, true);\n if ((pixelPos.top > config.height + config.offset ||\n pixelPos.top < 0) && i > 1) {\n continue;\n }\n var element = this.cursors[cursorIndex++] || this.addCursor();\n var style = element.style;\n if (!this.drawCursor) {\n if (!this.isCursorInView(pixelPos, config)) {\n dom.setStyle(style, \"display\", \"none\");\n }\n else {\n dom.setStyle(style, \"display\", \"block\");\n dom.translate(element, pixelPos.left, pixelPos.top);\n dom.setStyle(style, \"width\", Math.round(config.characterWidth) + \"px\");\n dom.setStyle(style, \"height\", config.lineHeight + \"px\");\n }\n }\n else {\n this.drawCursor(element, pixelPos, config, selections[i], this.session);\n }\n }\n while (this.cursors.length > cursorIndex)\n this.removeCursor();\n var overwrite = this.session.getOverwrite();\n this.$setOverwrite(overwrite);\n this.$pixelPos = pixelPos;\n this.restartTimer();\n };\n Cursor.prototype.$setOverwrite = function (overwrite) {\n if (overwrite != this.overwrite) {\n this.overwrite = overwrite;\n if (overwrite)\n dom.addCssClass(this.element, \"ace_overwrite-cursors\");\n else\n dom.removeCssClass(this.element, \"ace_overwrite-cursors\");\n }\n };\n Cursor.prototype.destroy = function () {\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n };\n return Cursor;\n}());\nCursor.prototype.$padding = 0;\nCursor.prototype.drawCursor = null;\nexports.Cursor = Cursor;\n\n});\n\nace.define(\"ace/scrollbar\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar MAX_SCROLL_H = 0x8000;\nvar Scrollbar = /** @class */ (function () {\n function Scrollbar(parent, classSuffix) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_scrollbar ace_scrollbar\" + classSuffix;\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"ace_scrollbar-inner\";\n this.inner.textContent = \"\\xa0\";\n this.element.appendChild(this.inner);\n parent.appendChild(this.element);\n this.setVisible(false);\n this.skipEvent = false;\n event.addListener(this.element, \"scroll\", this.onScroll.bind(this));\n event.addListener(this.element, \"mousedown\", event.preventDefault);\n }\n Scrollbar.prototype.setVisible = function (isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n this.coeff = 1;\n };\n return Scrollbar;\n}());\noop.implement(Scrollbar.prototype, EventEmitter);\nvar VScrollBar = /** @class */ (function (_super) {\n __extends(VScrollBar, _super);\n function VScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-v') || this;\n _this.scrollTop = 0;\n _this.scrollHeight = 0;\n renderer.$scrollbarWidth =\n _this.width = dom.scrollbarWidth(parent.ownerDocument);\n _this.inner.style.width =\n _this.element.style.width = (_this.width || 15) + 5 + \"px\";\n _this.$minWidth = 0;\n return _this;\n }\n VScrollBar.prototype.onScroll = function () {\n if (!this.skipEvent) {\n this.scrollTop = this.element.scrollTop;\n if (this.coeff != 1) {\n var h = this.element.clientHeight / this.scrollHeight;\n this.scrollTop = this.scrollTop * (1 - h) / (this.coeff - h);\n }\n this._emit(\"scroll\", { data: this.scrollTop });\n }\n this.skipEvent = false;\n };\n VScrollBar.prototype.getWidth = function () {\n return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0);\n };\n VScrollBar.prototype.setHeight = function (height) {\n this.element.style.height = height + \"px\";\n };\n VScrollBar.prototype.setScrollHeight = function (height) {\n this.scrollHeight = height;\n if (height > MAX_SCROLL_H) {\n this.coeff = MAX_SCROLL_H / height;\n height = MAX_SCROLL_H;\n }\n else if (this.coeff != 1) {\n this.coeff = 1;\n }\n this.inner.style.height = height + \"px\";\n };\n VScrollBar.prototype.setScrollTop = function (scrollTop) {\n if (this.scrollTop != scrollTop) {\n this.skipEvent = true;\n this.scrollTop = scrollTop;\n this.element.scrollTop = scrollTop * this.coeff;\n }\n };\n return VScrollBar;\n}(Scrollbar));\nVScrollBar.prototype.setInnerHeight = VScrollBar.prototype.setScrollHeight;\nvar HScrollBar = /** @class */ (function (_super) {\n __extends(HScrollBar, _super);\n function HScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-h') || this;\n _this.scrollLeft = 0;\n _this.height = renderer.$scrollbarWidth;\n _this.inner.style.height =\n _this.element.style.height = (_this.height || 15) + 5 + \"px\";\n return _this;\n }\n HScrollBar.prototype.onScroll = function () {\n if (!this.skipEvent) {\n this.scrollLeft = this.element.scrollLeft;\n this._emit(\"scroll\", { data: this.scrollLeft });\n }\n this.skipEvent = false;\n };\n HScrollBar.prototype.getHeight = function () {\n return this.isVisible ? this.height : 0;\n };\n HScrollBar.prototype.setWidth = function (width) {\n this.element.style.width = width + \"px\";\n };\n HScrollBar.prototype.setInnerWidth = function (width) {\n this.inner.style.width = width + \"px\";\n };\n HScrollBar.prototype.setScrollWidth = function (width) {\n this.inner.style.width = width + \"px\";\n };\n HScrollBar.prototype.setScrollLeft = function (scrollLeft) {\n if (this.scrollLeft != scrollLeft) {\n this.skipEvent = true;\n this.scrollLeft = this.element.scrollLeft = scrollLeft;\n }\n };\n return HScrollBar;\n}(Scrollbar));\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n\n});\n\nace.define(\"ace/scrollbar_custom\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\ndom.importCssString(\".ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{\\n position: absolute;\\n background: rgba(128, 128, 128, 0.6);\\n -moz-box-sizing: border-box;\\n box-sizing: border-box;\\n border: 1px solid #bbb;\\n border-radius: 2px;\\n z-index: 8;\\n}\\n.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h {\\n position: absolute;\\n z-index: 6;\\n background: none;\\n overflow: hidden!important;\\n}\\n.ace_editor>.ace_sb-v {\\n z-index: 6;\\n right: 0;\\n top: 0;\\n width: 12px;\\n}\\n.ace_editor>.ace_sb-v div {\\n z-index: 8;\\n right: 0;\\n width: 100%;\\n}\\n.ace_editor>.ace_sb-h {\\n bottom: 0;\\n left: 0;\\n height: 12px;\\n}\\n.ace_editor>.ace_sb-h div {\\n bottom: 0;\\n height: 100%;\\n}\\n.ace_editor>.ace_sb_grabbed {\\n z-index: 8;\\n background: #000;\\n}\", \"ace_scrollbar.css\", false);\nvar ScrollBar = /** @class */ (function () {\n function ScrollBar(parent, classSuffix) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_sb\" + classSuffix;\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"\";\n this.element.appendChild(this.inner);\n this.VScrollWidth = 12;\n this.HScrollHeight = 12;\n parent.appendChild(this.element);\n this.setVisible(false);\n this.skipEvent = false;\n event.addMultiMouseDownListener(this.element, [500, 300, 300], this, \"onMouseDown\");\n }\n ScrollBar.prototype.setVisible = function (isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n this.coeff = 1;\n };\n return ScrollBar;\n}());\noop.implement(ScrollBar.prototype, EventEmitter);\nvar VScrollBar = /** @class */ (function (_super) {\n __extends(VScrollBar, _super);\n function VScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-v') || this;\n _this.scrollTop = 0;\n _this.scrollHeight = 0;\n _this.parent = parent;\n _this.width = _this.VScrollWidth;\n _this.renderer = renderer;\n _this.inner.style.width = _this.element.style.width = (_this.width || 15) + \"px\";\n _this.$minWidth = 0;\n return _this;\n }\n VScrollBar.prototype.onMouseDown = function (eType, e) {\n if (eType !== \"mousedown\")\n return;\n if (event.getButton(e) !== 0 || e.detail === 2) {\n return;\n }\n if (e.target === this.inner) {\n var self = this;\n var mousePageY = e.clientY;\n var onMouseMove = function (e) {\n mousePageY = e.clientY;\n };\n var onMouseUp = function () {\n clearInterval(timerId);\n };\n var startY = e.clientY;\n var startTop = this.thumbTop;\n var onScrollInterval = function () {\n if (mousePageY === undefined)\n return;\n var scrollTop = self.scrollTopFromThumbTop(startTop + mousePageY - startY);\n if (scrollTop === self.scrollTop)\n return;\n self._emit(\"scroll\", { data: scrollTop });\n };\n event.capture(this.inner, onMouseMove, onMouseUp);\n var timerId = setInterval(onScrollInterval, 20);\n return event.preventDefault(e);\n }\n var top = e.clientY - this.element.getBoundingClientRect().top - this.thumbHeight / 2;\n this._emit(\"scroll\", { data: this.scrollTopFromThumbTop(top) });\n return event.preventDefault(e);\n };\n VScrollBar.prototype.getHeight = function () {\n return this.height;\n };\n VScrollBar.prototype.scrollTopFromThumbTop = function (thumbTop) {\n var scrollTop = thumbTop * (this.pageHeight - this.viewHeight) / (this.slideHeight - this.thumbHeight);\n scrollTop = scrollTop >> 0;\n if (scrollTop < 0) {\n scrollTop = 0;\n }\n else if (scrollTop > this.pageHeight - this.viewHeight) {\n scrollTop = this.pageHeight - this.viewHeight;\n }\n return scrollTop;\n };\n VScrollBar.prototype.getWidth = function () {\n return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0);\n };\n VScrollBar.prototype.setHeight = function (height) {\n this.height = Math.max(0, height);\n this.slideHeight = this.height;\n this.viewHeight = this.height;\n this.setScrollHeight(this.pageHeight, true);\n };\n VScrollBar.prototype.setScrollHeight = function (height, force) {\n if (this.pageHeight === height && !force)\n return;\n this.pageHeight = height;\n this.thumbHeight = this.slideHeight * this.viewHeight / this.pageHeight;\n if (this.thumbHeight > this.slideHeight)\n this.thumbHeight = this.slideHeight;\n if (this.thumbHeight < 15)\n this.thumbHeight = 15;\n this.inner.style.height = this.thumbHeight + \"px\";\n if (this.scrollTop > (this.pageHeight - this.viewHeight)) {\n this.scrollTop = (this.pageHeight - this.viewHeight);\n if (this.scrollTop < 0)\n this.scrollTop = 0;\n this._emit(\"scroll\", { data: this.scrollTop });\n }\n };\n VScrollBar.prototype.setScrollTop = function (scrollTop) {\n this.scrollTop = scrollTop;\n if (scrollTop < 0)\n scrollTop = 0;\n this.thumbTop = scrollTop * (this.slideHeight - this.thumbHeight) / (this.pageHeight - this.viewHeight);\n this.inner.style.top = this.thumbTop + \"px\";\n };\n return VScrollBar;\n}(ScrollBar));\nVScrollBar.prototype.setInnerHeight = VScrollBar.prototype.setScrollHeight;\nvar HScrollBar = /** @class */ (function (_super) {\n __extends(HScrollBar, _super);\n function HScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-h') || this;\n _this.scrollLeft = 0;\n _this.scrollWidth = 0;\n _this.height = _this.HScrollHeight;\n _this.inner.style.height = _this.element.style.height = (_this.height || 12) + \"px\";\n _this.renderer = renderer;\n return _this;\n }\n HScrollBar.prototype.onMouseDown = function (eType, e) {\n if (eType !== \"mousedown\")\n return;\n if (event.getButton(e) !== 0 || e.detail === 2) {\n return;\n }\n if (e.target === this.inner) {\n var self = this;\n var mousePageX = e.clientX;\n var onMouseMove = function (e) {\n mousePageX = e.clientX;\n };\n var onMouseUp = function () {\n clearInterval(timerId);\n };\n var startX = e.clientX;\n var startLeft = this.thumbLeft;\n var onScrollInterval = function () {\n if (mousePageX === undefined)\n return;\n var scrollLeft = self.scrollLeftFromThumbLeft(startLeft + mousePageX - startX);\n if (scrollLeft === self.scrollLeft)\n return;\n self._emit(\"scroll\", { data: scrollLeft });\n };\n event.capture(this.inner, onMouseMove, onMouseUp);\n var timerId = setInterval(onScrollInterval, 20);\n return event.preventDefault(e);\n }\n var left = e.clientX - this.element.getBoundingClientRect().left - this.thumbWidth / 2;\n this._emit(\"scroll\", { data: this.scrollLeftFromThumbLeft(left) });\n return event.preventDefault(e);\n };\n HScrollBar.prototype.getHeight = function () {\n return this.isVisible ? this.height : 0;\n };\n HScrollBar.prototype.scrollLeftFromThumbLeft = function (thumbLeft) {\n var scrollLeft = thumbLeft * (this.pageWidth - this.viewWidth) / (this.slideWidth - this.thumbWidth);\n scrollLeft = scrollLeft >> 0;\n if (scrollLeft < 0) {\n scrollLeft = 0;\n }\n else if (scrollLeft > this.pageWidth - this.viewWidth) {\n scrollLeft = this.pageWidth - this.viewWidth;\n }\n return scrollLeft;\n };\n HScrollBar.prototype.setWidth = function (width) {\n this.width = Math.max(0, width);\n this.element.style.width = this.width + \"px\";\n this.slideWidth = this.width;\n this.viewWidth = this.width;\n this.setScrollWidth(this.pageWidth, true);\n };\n HScrollBar.prototype.setScrollWidth = function (width, force) {\n if (this.pageWidth === width && !force)\n return;\n this.pageWidth = width;\n this.thumbWidth = this.slideWidth * this.viewWidth / this.pageWidth;\n if (this.thumbWidth > this.slideWidth)\n this.thumbWidth = this.slideWidth;\n if (this.thumbWidth < 15)\n this.thumbWidth = 15;\n this.inner.style.width = this.thumbWidth + \"px\";\n if (this.scrollLeft > (this.pageWidth - this.viewWidth)) {\n this.scrollLeft = (this.pageWidth - this.viewWidth);\n if (this.scrollLeft < 0)\n this.scrollLeft = 0;\n this._emit(\"scroll\", { data: this.scrollLeft });\n }\n };\n HScrollBar.prototype.setScrollLeft = function (scrollLeft) {\n this.scrollLeft = scrollLeft;\n if (scrollLeft < 0)\n scrollLeft = 0;\n this.thumbLeft = scrollLeft * (this.slideWidth - this.thumbWidth) / (this.pageWidth - this.viewWidth);\n this.inner.style.left = (this.thumbLeft) + \"px\";\n };\n return HScrollBar;\n}(ScrollBar));\nHScrollBar.prototype.setInnerWidth = HScrollBar.prototype.setScrollWidth;\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n\n});\n\nace.define(\"ace/renderloop\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"], function(require, exports, module){\"use strict\";\nvar event = require(\"./lib/event\");\nvar RenderLoop = /** @class */ (function () {\n function RenderLoop(onRender, win) {\n this.onRender = onRender;\n this.pending = false;\n this.changes = 0;\n this.$recursionLimit = 2;\n this.window = win || window;\n var _self = this;\n this._flush = function (ts) {\n _self.pending = false;\n var changes = _self.changes;\n if (changes) {\n event.blockIdle(100);\n _self.changes = 0;\n _self.onRender(changes);\n }\n if (_self.changes) {\n if (_self.$recursionLimit-- < 0)\n return;\n _self.schedule();\n }\n else {\n _self.$recursionLimit = 2;\n }\n };\n }\n RenderLoop.prototype.schedule = function (change) {\n this.changes = this.changes | change;\n if (this.changes && !this.pending) {\n event.nextFrame(this._flush);\n this.pending = true;\n }\n };\n RenderLoop.prototype.clear = function (change) {\n var changes = this.changes;\n this.changes = 0;\n return changes;\n };\n return RenderLoop;\n}());\nexports.RenderLoop = RenderLoop;\n\n});\n\nace.define(\"ace/layer/font_metrics\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar CHAR_COUNT = 512;\nvar USE_OBSERVER = typeof ResizeObserver == \"function\";\nvar L = 200;\nvar FontMetrics = /** @class */ (function () {\n function FontMetrics(parentEl) {\n this.el = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.el.style, true);\n this.$main = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$main.style);\n this.$measureNode = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$measureNode.style);\n this.el.appendChild(this.$main);\n this.el.appendChild(this.$measureNode);\n parentEl.appendChild(this.el);\n this.$measureNode.textContent = lang.stringRepeat(\"X\", CHAR_COUNT);\n this.$characterSize = { width: 0, height: 0 };\n if (USE_OBSERVER)\n this.$addObserver();\n else\n this.checkForSizeChanges();\n }\n FontMetrics.prototype.$setMeasureNodeStyles = function (style, isRoot) {\n style.width = style.height = \"auto\";\n style.left = style.top = \"0px\";\n style.visibility = \"hidden\";\n style.position = \"absolute\";\n style.whiteSpace = \"pre\";\n if (useragent.isIE < 8) {\n style[\"font-family\"] = \"inherit\";\n }\n else {\n style.font = \"inherit\";\n }\n style.overflow = isRoot ? \"hidden\" : \"visible\";\n };\n FontMetrics.prototype.checkForSizeChanges = function (size) {\n if (size === undefined)\n size = this.$measureSizes();\n if (size && (this.$characterSize.width !== size.width || this.$characterSize.height !== size.height)) {\n this.$measureNode.style.fontWeight = \"bold\";\n var boldSize = this.$measureSizes();\n this.$measureNode.style.fontWeight = \"\";\n this.$characterSize = size;\n this.charSizes = Object.create(null);\n this.allowBoldFonts = boldSize && boldSize.width === size.width && boldSize.height === size.height;\n this._emit(\"changeCharacterSize\", { data: size });\n }\n };\n FontMetrics.prototype.$addObserver = function () {\n var self = this;\n this.$observer = new window.ResizeObserver(function (e) {\n self.checkForSizeChanges();\n });\n this.$observer.observe(this.$measureNode);\n };\n FontMetrics.prototype.$pollSizeChanges = function () {\n if (this.$pollSizeChangesTimer || this.$observer)\n return this.$pollSizeChangesTimer;\n var self = this;\n return this.$pollSizeChangesTimer = event.onIdle(function cb() {\n self.checkForSizeChanges();\n event.onIdle(cb, 500);\n }, 500);\n };\n FontMetrics.prototype.setPolling = function (val) {\n if (val) {\n this.$pollSizeChanges();\n }\n else if (this.$pollSizeChangesTimer) {\n clearInterval(this.$pollSizeChangesTimer);\n this.$pollSizeChangesTimer = 0;\n }\n };\n FontMetrics.prototype.$measureSizes = function (node) {\n var size = {\n height: (node || this.$measureNode).clientHeight,\n width: (node || this.$measureNode).clientWidth / CHAR_COUNT\n };\n if (size.width === 0 || size.height === 0)\n return null;\n return size;\n };\n FontMetrics.prototype.$measureCharWidth = function (ch) {\n this.$main.textContent = lang.stringRepeat(ch, CHAR_COUNT);\n var rect = this.$main.getBoundingClientRect();\n return rect.width / CHAR_COUNT;\n };\n FontMetrics.prototype.getCharacterWidth = function (ch) {\n var w = this.charSizes[ch];\n if (w === undefined) {\n w = this.charSizes[ch] = this.$measureCharWidth(ch) / this.$characterSize.width;\n }\n return w;\n };\n FontMetrics.prototype.destroy = function () {\n clearInterval(this.$pollSizeChangesTimer);\n if (this.$observer)\n this.$observer.disconnect();\n if (this.el && this.el.parentNode)\n this.el.parentNode.removeChild(this.el);\n };\n FontMetrics.prototype.$getZoom = function (element) {\n if (!element || !element.parentElement)\n return 1;\n return (window.getComputedStyle(element).zoom || 1) * this.$getZoom(element.parentElement);\n };\n FontMetrics.prototype.$initTransformMeasureNodes = function () {\n var t = function (t, l) {\n return [\"div\", {\n style: \"position: absolute;top:\" + t + \"px;left:\" + l + \"px;\"\n }];\n };\n this.els = dom.buildDom([t(0, 0), t(L, 0), t(0, L), t(L, L)], this.el);\n };\n FontMetrics.prototype.transformCoordinates = function (clientPos, elPos) {\n if (clientPos) {\n var zoom = this.$getZoom(this.el);\n clientPos = mul(1 / zoom, clientPos);\n }\n function solve(l1, l2, r) {\n var det = l1[1] * l2[0] - l1[0] * l2[1];\n return [\n (-l2[1] * r[0] + l2[0] * r[1]) / det,\n (+l1[1] * r[0] - l1[0] * r[1]) / det\n ];\n }\n function sub(a, b) { return [a[0] - b[0], a[1] - b[1]]; }\n function add(a, b) { return [a[0] + b[0], a[1] + b[1]]; }\n function mul(a, b) { return [a * b[0], a * b[1]]; }\n if (!this.els)\n this.$initTransformMeasureNodes();\n function p(el) {\n var r = el.getBoundingClientRect();\n return [r.left, r.top];\n }\n var a = p(this.els[0]);\n var b = p(this.els[1]);\n var c = p(this.els[2]);\n var d = p(this.els[3]);\n var h = solve(sub(d, b), sub(d, c), sub(add(b, c), add(d, a)));\n var m1 = mul(1 + h[0], sub(b, a));\n var m2 = mul(1 + h[1], sub(c, a));\n if (elPos) {\n var x = elPos;\n var k = h[0] * x[0] / L + h[1] * x[1] / L + 1;\n var ut = add(mul(x[0], m1), mul(x[1], m2));\n return add(mul(1 / k / L, ut), a);\n }\n var u = sub(clientPos, a);\n var f = solve(sub(m1, mul(h[0], u)), sub(m2, mul(h[1], u)), u);\n return mul(L, f);\n };\n return FontMetrics;\n}());\nFontMetrics.prototype.$characterSize = { width: 0, height: 0 };\noop.implement(FontMetrics.prototype, EventEmitter);\nexports.FontMetrics = FontMetrics;\n\n});\n\nace.define(\"ace/css/editor-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){/*\nstyles = []\nfor (var i = 1; i < 16; i++) {\n styles.push(\".ace_br\" + i + \"{\" + (\n [\"top-left\", \"top-right\", \"bottom-right\", \"bottom-left\"]\n ).map(function(x, j) {\n return i & (1< .ace_line, .ace_text-layer > .ace_line_group {\\n contain: style size layout;\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n}\\n\\n.ace_hidpi .ace_text-layer,\\n.ace_hidpi .ace_gutter-layer,\\n.ace_hidpi .ace_content,\\n.ace_hidpi .ace_gutter {\\n contain: strict;\\n}\\n.ace_hidpi .ace_text-layer > .ace_line, \\n.ace_hidpi .ace_text-layer > .ace_line_group {\\n contain: strict;\\n}\\n\\n.ace_cjk {\\n display: inline-block;\\n text-align: center;\\n}\\n\\n.ace_cursor-layer {\\n z-index: 4;\\n}\\n\\n.ace_cursor {\\n z-index: 4;\\n position: absolute;\\n box-sizing: border-box;\\n border-left: 2px solid;\\n /* workaround for smooth cursor repaintng whole screen in chrome */\\n transform: translatez(0);\\n}\\n\\n.ace_multiselect .ace_cursor {\\n border-left-width: 1px;\\n}\\n\\n.ace_slim-cursors .ace_cursor {\\n border-left-width: 1px;\\n}\\n\\n.ace_overwrite-cursors .ace_cursor {\\n border-left-width: 0;\\n border-bottom: 1px solid;\\n}\\n\\n.ace_hidden-cursors .ace_cursor {\\n opacity: 0.2;\\n}\\n\\n.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {\\n opacity: 0;\\n}\\n\\n.ace_smooth-blinking .ace_cursor {\\n transition: opacity 0.18s;\\n}\\n\\n.ace_animate-blinking .ace_cursor {\\n animation-duration: 1000ms;\\n animation-timing-function: step-end;\\n animation-name: blink-ace-animate;\\n animation-iteration-count: infinite;\\n}\\n\\n.ace_animate-blinking.ace_smooth-blinking .ace_cursor {\\n animation-duration: 1000ms;\\n animation-timing-function: ease-in-out;\\n animation-name: blink-ace-animate-smooth;\\n}\\n \\n@keyframes blink-ace-animate {\\n from, to { opacity: 1; }\\n 60% { opacity: 0; }\\n}\\n\\n@keyframes blink-ace-animate-smooth {\\n from, to { opacity: 1; }\\n 45% { opacity: 1; }\\n 60% { opacity: 0; }\\n 85% { opacity: 0; }\\n}\\n\\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\\n position: absolute;\\n z-index: 3;\\n}\\n\\n.ace_marker-layer .ace_selection {\\n position: absolute;\\n z-index: 5;\\n}\\n\\n.ace_marker-layer .ace_bracket {\\n position: absolute;\\n z-index: 6;\\n}\\n\\n.ace_marker-layer .ace_error_bracket {\\n position: absolute;\\n border-bottom: 1px solid #DE5555;\\n border-radius: 0;\\n}\\n\\n.ace_marker-layer .ace_active-line {\\n position: absolute;\\n z-index: 2;\\n}\\n\\n.ace_marker-layer .ace_selected-word {\\n position: absolute;\\n z-index: 4;\\n box-sizing: border-box;\\n}\\n\\n.ace_line .ace_fold {\\n box-sizing: border-box;\\n\\n display: inline-block;\\n height: 11px;\\n margin-top: -2px;\\n vertical-align: middle;\\n\\n background-image:\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=\\\");\\n background-repeat: no-repeat, repeat-x;\\n background-position: center center, top left;\\n color: transparent;\\n\\n border: 1px solid black;\\n border-radius: 2px;\\n\\n cursor: pointer;\\n pointer-events: auto;\\n}\\n\\n.ace_dark .ace_fold {\\n}\\n\\n.ace_fold:hover{\\n background-image:\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC\\\");\\n}\\n\\n.ace_tooltip {\\n background-color: #f5f5f5;\\n border: 1px solid gray;\\n border-radius: 1px;\\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\\n color: black;\\n max-width: 100%;\\n padding: 3px 4px;\\n position: fixed;\\n z-index: 999999;\\n box-sizing: border-box;\\n cursor: default;\\n white-space: pre-wrap;\\n word-wrap: break-word;\\n line-height: normal;\\n font-style: normal;\\n font-weight: normal;\\n letter-spacing: normal;\\n pointer-events: none;\\n overflow: auto;\\n max-width: min(60em, 66vw);\\n}\\n.ace_tooltip pre {\\n white-space: pre-wrap;\\n}\\n\\n.ace_tooltip.ace_dark {\\n background-color: #636363;\\n color: #fff;\\n}\\n\\n.ace_tooltip:focus {\\n outline: 1px solid #5E9ED6;\\n}\\n\\n.ace_icon {\\n display: inline-block;\\n width: 18px;\\n vertical-align: top;\\n}\\n\\n.ace_icon_svg {\\n display: inline-block;\\n width: 12px;\\n vertical-align: top;\\n -webkit-mask-repeat: no-repeat;\\n -webkit-mask-size: 12px;\\n -webkit-mask-position: center;\\n}\\n\\n.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons {\\n padding-right: 13px;\\n}\\n\\n.ace_fold-widget {\\n box-sizing: border-box;\\n\\n margin: 0 -12px 0 1px;\\n display: none;\\n width: 11px;\\n vertical-align: top;\\n\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==\\\");\\n background-repeat: no-repeat;\\n background-position: center;\\n\\n border-radius: 3px;\\n \\n border: 1px solid transparent;\\n cursor: pointer;\\n}\\n\\n.ace_folding-enabled .ace_fold-widget {\\n display: inline-block; \\n}\\n\\n.ace_fold-widget.ace_end {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==\\\");\\n}\\n\\n.ace_fold-widget.ace_closed {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==\\\");\\n}\\n\\n.ace_fold-widget:hover {\\n border: 1px solid rgba(0, 0, 0, 0.3);\\n background-color: rgba(255, 255, 255, 0.2);\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\\n}\\n\\n.ace_fold-widget:active {\\n border: 1px solid rgba(0, 0, 0, 0.4);\\n background-color: rgba(0, 0, 0, 0.05);\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\\n}\\n/**\\n * Dark version for fold widgets\\n */\\n.ace_dark .ace_fold-widget {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\\\");\\n}\\n.ace_dark .ace_fold-widget.ace_end {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\\\");\\n}\\n.ace_dark .ace_fold-widget.ace_closed {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\\\");\\n}\\n.ace_dark .ace_fold-widget:hover {\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.ace_dark .ace_fold-widget:active {\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\n}\\n\\n.ace_inline_button {\\n border: 1px solid lightgray;\\n display: inline-block;\\n margin: -1px 8px;\\n padding: 0 5px;\\n pointer-events: auto;\\n cursor: pointer;\\n}\\n.ace_inline_button:hover {\\n border-color: gray;\\n background: rgba(200,200,200,0.2);\\n display: inline-block;\\n pointer-events: auto;\\n}\\n\\n.ace_fold-widget.ace_invalid {\\n background-color: #FFB4B4;\\n border-color: #DE5555;\\n}\\n\\n.ace_fade-fold-widgets .ace_fold-widget {\\n transition: opacity 0.4s ease 0.05s;\\n opacity: 0;\\n}\\n\\n.ace_fade-fold-widgets:hover .ace_fold-widget {\\n transition: opacity 0.05s ease 0.05s;\\n opacity:1;\\n}\\n\\n.ace_underline {\\n text-decoration: underline;\\n}\\n\\n.ace_bold {\\n font-weight: bold;\\n}\\n\\n.ace_nobold .ace_bold {\\n font-weight: normal;\\n}\\n\\n.ace_italic {\\n font-style: italic;\\n}\\n\\n\\n.ace_error-marker {\\n background-color: rgba(255, 0, 0,0.2);\\n position: absolute;\\n z-index: 9;\\n}\\n\\n.ace_highlight-marker {\\n background-color: rgba(255, 255, 0,0.2);\\n position: absolute;\\n z-index: 8;\\n}\\n\\n.ace_mobile-menu {\\n position: absolute;\\n line-height: 1.5;\\n border-radius: 4px;\\n -ms-user-select: none;\\n -moz-user-select: none;\\n -webkit-user-select: none;\\n user-select: none;\\n background: white;\\n box-shadow: 1px 3px 2px grey;\\n border: 1px solid #dcdcdc;\\n color: black;\\n}\\n.ace_dark > .ace_mobile-menu {\\n background: #333;\\n color: #ccc;\\n box-shadow: 1px 3px 2px grey;\\n border: 1px solid #444;\\n\\n}\\n.ace_mobile-button {\\n padding: 2px;\\n cursor: pointer;\\n overflow: hidden;\\n}\\n.ace_mobile-button:hover {\\n background-color: #eee;\\n opacity:1;\\n}\\n.ace_mobile-button:active {\\n background-color: #ddd;\\n}\\n\\n.ace_placeholder {\\n font-family: arial;\\n transform: scale(0.9);\\n transform-origin: left;\\n white-space: pre;\\n opacity: 0.7;\\n margin: 0 10px;\\n}\\n\\n.ace_ghost_text {\\n opacity: 0.5;\\n font-style: italic;\\n white-space: pre;\\n}\\n\\n.ace_screenreader-only {\\n position:absolute;\\n left:-10000px;\\n top:auto;\\n width:1px;\\n height:1px;\\n overflow:hidden;\\n}\";\n\n});\n\nace.define(\"ace/layer/decorators\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar oop = require(\"../lib/oop\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar Decorator = /** @class */ (function () {\n function Decorator(parent, renderer) {\n this.canvas = dom.createElement(\"canvas\");\n this.renderer = renderer;\n this.pixelRatio = 1;\n this.maxHeight = renderer.layerConfig.maxHeight;\n this.lineHeight = renderer.layerConfig.lineHeight;\n this.canvasHeight = parent.parent.scrollHeight;\n this.heightRatio = this.canvasHeight / this.maxHeight;\n this.canvasWidth = parent.width;\n this.minDecorationHeight = (2 * this.pixelRatio) | 0;\n this.halfMinDecorationHeight = (this.minDecorationHeight / 2) | 0;\n this.canvas.width = this.canvasWidth;\n this.canvas.height = this.canvasHeight;\n this.canvas.style.top = 0 + \"px\";\n this.canvas.style.right = 0 + \"px\";\n this.canvas.style.zIndex = 7 + \"px\";\n this.canvas.style.position = \"absolute\";\n this.colors = {};\n this.colors.dark = {\n \"error\": \"rgba(255, 18, 18, 1)\",\n \"warning\": \"rgba(18, 136, 18, 1)\",\n \"info\": \"rgba(18, 18, 136, 1)\"\n };\n this.colors.light = {\n \"error\": \"rgb(255,51,51)\",\n \"warning\": \"rgb(32,133,72)\",\n \"info\": \"rgb(35,68,138)\"\n };\n parent.element.appendChild(this.canvas);\n }\n Decorator.prototype.$updateDecorators = function (config) {\n var colors = (this.renderer.theme.isDark === true) ? this.colors.dark : this.colors.light;\n if (config) {\n this.maxHeight = config.maxHeight;\n this.lineHeight = config.lineHeight;\n this.canvasHeight = config.height;\n var allLineHeight = (config.lastRow + 1) * this.lineHeight;\n if (allLineHeight < this.canvasHeight) {\n this.heightRatio = 1;\n }\n else {\n this.heightRatio = this.canvasHeight / this.maxHeight;\n }\n }\n var ctx = this.canvas.getContext(\"2d\");\n function compare(a, b) {\n if (a.priority < b.priority)\n return -1;\n if (a.priority > b.priority)\n return 1;\n return 0;\n }\n var annotations = this.renderer.session.$annotations;\n ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n if (annotations) {\n var priorities = {\n \"info\": 1,\n \"warning\": 2,\n \"error\": 3\n };\n annotations.forEach(function (item) {\n item.priority = priorities[item.type] || null;\n });\n annotations = annotations.sort(compare);\n var foldData = this.renderer.session.$foldData;\n for (var i = 0; i < annotations.length; i++) {\n var row = annotations[i].row;\n var compensateFold = this.compensateFoldRows(row, foldData);\n var currentY = Math.round((row - compensateFold) * this.lineHeight * this.heightRatio);\n var y1 = Math.round(((row - compensateFold) * this.lineHeight * this.heightRatio));\n var y2 = Math.round((((row - compensateFold) * this.lineHeight + this.lineHeight) * this.heightRatio));\n var height = y2 - y1;\n if (height < this.minDecorationHeight) {\n var yCenter = ((y1 + y2) / 2) | 0;\n if (yCenter < this.halfMinDecorationHeight) {\n yCenter = this.halfMinDecorationHeight;\n }\n else if (yCenter + this.halfMinDecorationHeight > this.canvasHeight) {\n yCenter = this.canvasHeight - this.halfMinDecorationHeight;\n }\n y1 = Math.round(yCenter - this.halfMinDecorationHeight);\n y2 = Math.round(yCenter + this.halfMinDecorationHeight);\n }\n ctx.fillStyle = colors[annotations[i].type] || null;\n ctx.fillRect(0, currentY, this.canvasWidth, y2 - y1);\n }\n }\n var cursor = this.renderer.session.selection.getCursor();\n if (cursor) {\n var compensateFold = this.compensateFoldRows(cursor.row, foldData);\n var currentY = Math.round((cursor.row - compensateFold) * this.lineHeight * this.heightRatio);\n ctx.fillStyle = \"rgba(0, 0, 0, 0.5)\";\n ctx.fillRect(0, currentY, this.canvasWidth, 2);\n }\n };\n Decorator.prototype.compensateFoldRows = function (row, foldData) {\n var compensateFold = 0;\n if (foldData && foldData.length > 0) {\n for (var j = 0; j < foldData.length; j++) {\n if (row > foldData[j].start.row && row < foldData[j].end.row) {\n compensateFold += row - foldData[j].start.row;\n }\n else if (row >= foldData[j].end.row) {\n compensateFold += foldData[j].end.row - foldData[j].start.row;\n }\n }\n }\n return compensateFold;\n };\n return Decorator;\n}());\noop.implement(Decorator.prototype, EventEmitter);\nexports.Decorator = Decorator;\n\n});\n\nace.define(\"ace/virtual_renderer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/config\",\"ace/layer/gutter\",\"ace/layer/marker\",\"ace/layer/text\",\"ace/layer/cursor\",\"ace/scrollbar\",\"ace/scrollbar\",\"ace/scrollbar_custom\",\"ace/scrollbar_custom\",\"ace/renderloop\",\"ace/layer/font_metrics\",\"ace/lib/event_emitter\",\"ace/css/editor-css\",\"ace/layer/decorators\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar lang = require(\"./lib/lang\");\nvar config = require(\"./config\");\nvar GutterLayer = require(\"./layer/gutter\").Gutter;\nvar MarkerLayer = require(\"./layer/marker\").Marker;\nvar TextLayer = require(\"./layer/text\").Text;\nvar CursorLayer = require(\"./layer/cursor\").Cursor;\nvar HScrollBar = require(\"./scrollbar\").HScrollBar;\nvar VScrollBar = require(\"./scrollbar\").VScrollBar;\nvar HScrollBarCustom = require(\"./scrollbar_custom\").HScrollBar;\nvar VScrollBarCustom = require(\"./scrollbar_custom\").VScrollBar;\nvar RenderLoop = require(\"./renderloop\").RenderLoop;\nvar FontMetrics = require(\"./layer/font_metrics\").FontMetrics;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar editorCss = require(\"./css/editor-css\");\nvar Decorator = require(\"./layer/decorators\").Decorator;\nvar useragent = require(\"./lib/useragent\");\ndom.importCssString(editorCss, \"ace_editor.css\", false);\nvar VirtualRenderer = /** @class */ (function () {\n function VirtualRenderer(container, theme) {\n var _self = this;\n this.container = container || dom.createElement(\"div\");\n dom.addCssClass(this.container, \"ace_editor\");\n if (dom.HI_DPI)\n dom.addCssClass(this.container, \"ace_hidpi\");\n this.setTheme(theme);\n if (config.get(\"useStrictCSP\") == null)\n config.set(\"useStrictCSP\", false);\n this.$gutter = dom.createElement(\"div\");\n this.$gutter.className = \"ace_gutter\";\n this.container.appendChild(this.$gutter);\n this.$gutter.setAttribute(\"aria-hidden\", true);\n this.scroller = dom.createElement(\"div\");\n this.scroller.className = \"ace_scroller\";\n this.container.appendChild(this.scroller);\n this.content = dom.createElement(\"div\");\n this.content.className = \"ace_content\";\n this.scroller.appendChild(this.content);\n this.$gutterLayer = new GutterLayer(this.$gutter);\n this.$gutterLayer.on(\"changeGutterWidth\", this.onGutterResize.bind(this));\n this.$markerBack = new MarkerLayer(this.content);\n var textLayer = this.$textLayer = new TextLayer(this.content);\n this.canvas = textLayer.element;\n this.$markerFront = new MarkerLayer(this.content);\n this.$cursorLayer = new CursorLayer(this.content);\n this.$horizScroll = false;\n this.$vScroll = false;\n this.scrollBar =\n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.on(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.on(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n this.scrollTop = 0;\n this.scrollLeft = 0;\n this.cursorPos = {\n row: 0,\n column: 0\n };\n this.$fontMetrics = new FontMetrics(this.container);\n this.$textLayer.$setFontMetrics(this.$fontMetrics);\n this.$textLayer.on(\"changeCharacterSize\", function (e) {\n _self.updateCharacterSize();\n _self.onResize(true, _self.gutterWidth, _self.$size.width, _self.$size.height);\n _self._signal(\"changeCharacterSize\", e);\n });\n this.$size = {\n width: 0,\n height: 0,\n scrollerHeight: 0,\n scrollerWidth: 0,\n $dirty: true\n };\n this.layerConfig = {\n width: 1,\n padding: 0,\n firstRow: 0,\n firstRowScreen: 0,\n lastRow: 0,\n lineHeight: 0,\n characterWidth: 0,\n minHeight: 1,\n maxHeight: 1,\n offset: 0,\n height: 1,\n gutterOffset: 1\n };\n this.scrollMargin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n this.margin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n this.$keepTextAreaAtCursor = !useragent.isIOS;\n this.$loop = new RenderLoop(this.$renderChanges.bind(this), this.container.ownerDocument.defaultView);\n this.$loop.schedule(this.CHANGE_FULL);\n this.updateCharacterSize();\n this.setPadding(4);\n this.$addResizeObserver();\n config.resetOptions(this);\n config._signal(\"renderer\", this);\n }\n VirtualRenderer.prototype.updateCharacterSize = function () {\n if (this.$textLayer.allowBoldFonts != this.$allowBoldFonts) {\n this.$allowBoldFonts = this.$textLayer.allowBoldFonts;\n this.setStyle(\"ace_nobold\", !this.$allowBoldFonts);\n }\n this.layerConfig.characterWidth =\n this.characterWidth = this.$textLayer.getCharacterWidth();\n this.layerConfig.lineHeight =\n this.lineHeight = this.$textLayer.getLineHeight();\n this.$updatePrintMargin();\n dom.setStyle(this.scroller.style, \"line-height\", this.lineHeight + \"px\");\n };\n VirtualRenderer.prototype.setSession = function (session) {\n if (this.session)\n this.session.doc.off(\"changeNewLineMode\", this.onChangeNewLineMode);\n this.session = session;\n if (session && this.scrollMargin.top && session.getScrollTop() <= 0)\n session.setScrollTop(-this.scrollMargin.top);\n this.$cursorLayer.setSession(session);\n this.$markerBack.setSession(session);\n this.$markerFront.setSession(session);\n this.$gutterLayer.setSession(session);\n this.$textLayer.setSession(session);\n if (!session)\n return;\n this.$loop.schedule(this.CHANGE_FULL);\n this.session.$setFontMetrics(this.$fontMetrics);\n this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null;\n this.onChangeNewLineMode = this.onChangeNewLineMode.bind(this);\n this.onChangeNewLineMode();\n this.session.doc.on(\"changeNewLineMode\", this.onChangeNewLineMode);\n };\n VirtualRenderer.prototype.updateLines = function (firstRow, lastRow, force) {\n if (lastRow === undefined)\n lastRow = Infinity;\n if (!this.$changedLines) {\n this.$changedLines = {\n firstRow: firstRow,\n lastRow: lastRow\n };\n }\n else {\n if (this.$changedLines.firstRow > firstRow)\n this.$changedLines.firstRow = firstRow;\n if (this.$changedLines.lastRow < lastRow)\n this.$changedLines.lastRow = lastRow;\n }\n if (this.$changedLines.lastRow < this.layerConfig.firstRow) {\n if (force)\n this.$changedLines.lastRow = this.layerConfig.lastRow;\n else\n return;\n }\n if (this.$changedLines.firstRow > this.layerConfig.lastRow)\n return;\n this.$loop.schedule(this.CHANGE_LINES);\n };\n VirtualRenderer.prototype.onChangeNewLineMode = function () {\n this.$loop.schedule(this.CHANGE_TEXT);\n this.$textLayer.$updateEolChar();\n this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR);\n };\n VirtualRenderer.prototype.onChangeTabSize = function () {\n this.$loop.schedule(this.CHANGE_TEXT | this.CHANGE_MARKER);\n this.$textLayer.onChangeTabSize();\n };\n VirtualRenderer.prototype.updateText = function () {\n this.$loop.schedule(this.CHANGE_TEXT);\n };\n VirtualRenderer.prototype.updateFull = function (force) {\n if (force)\n this.$renderChanges(this.CHANGE_FULL, true);\n else\n this.$loop.schedule(this.CHANGE_FULL);\n };\n VirtualRenderer.prototype.updateFontSize = function () {\n this.$textLayer.checkForSizeChanges();\n };\n VirtualRenderer.prototype.$updateSizeAsync = function () {\n if (this.$loop.pending)\n this.$size.$dirty = true;\n else\n this.onResize();\n };\n VirtualRenderer.prototype.onResize = function (force, gutterWidth, width, height) {\n if (this.resizing > 2)\n return;\n else if (this.resizing > 0)\n this.resizing++;\n else\n this.resizing = force ? 1 : 0;\n var el = this.container;\n if (!height)\n height = el.clientHeight || el.scrollHeight;\n if (!width)\n width = el.clientWidth || el.scrollWidth;\n var changes = this.$updateCachedSize(force, gutterWidth, width, height);\n if (this.$resizeTimer)\n this.$resizeTimer.cancel();\n if (!this.$size.scrollerHeight || (!width && !height))\n return this.resizing = 0;\n if (force)\n this.$gutterLayer.$padding = null;\n if (force)\n this.$renderChanges(changes | this.$changes, true);\n else\n this.$loop.schedule(changes | this.$changes);\n if (this.resizing)\n this.resizing = 0;\n this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null;\n if (this.$customScrollbar) {\n this.$updateCustomScrollbar(true);\n }\n };\n VirtualRenderer.prototype.$updateCachedSize = function (force, gutterWidth, width, height) {\n height -= (this.$extraHeight || 0);\n var changes = 0;\n var size = this.$size;\n var oldSize = {\n width: size.width,\n height: size.height,\n scrollerHeight: size.scrollerHeight,\n scrollerWidth: size.scrollerWidth\n };\n if (height && (force || size.height != height)) {\n size.height = height;\n changes |= this.CHANGE_SIZE;\n size.scrollerHeight = size.height;\n if (this.$horizScroll)\n size.scrollerHeight -= this.scrollBarH.getHeight();\n this.scrollBarV.setHeight(size.scrollerHeight);\n this.scrollBarV.element.style.bottom = this.scrollBarH.getHeight() + \"px\";\n changes = changes | this.CHANGE_SCROLL;\n }\n if (width && (force || size.width != width)) {\n changes |= this.CHANGE_SIZE;\n size.width = width;\n if (gutterWidth == null)\n gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n this.gutterWidth = gutterWidth;\n dom.setStyle(this.scrollBarH.element.style, \"left\", gutterWidth + \"px\");\n dom.setStyle(this.scroller.style, \"left\", gutterWidth + this.margin.left + \"px\");\n size.scrollerWidth = Math.max(0, width - gutterWidth - this.scrollBarV.getWidth() - this.margin.h);\n dom.setStyle(this.$gutter.style, \"left\", this.margin.left + \"px\");\n var right = this.scrollBarV.getWidth() + \"px\";\n dom.setStyle(this.scrollBarH.element.style, \"right\", right);\n dom.setStyle(this.scroller.style, \"right\", right);\n dom.setStyle(this.scroller.style, \"bottom\", this.scrollBarH.getHeight());\n this.scrollBarH.setWidth(size.scrollerWidth);\n if (this.session && this.session.getUseWrapMode() && this.adjustWrapLimit() || force) {\n changes |= this.CHANGE_FULL;\n }\n }\n size.$dirty = !width || !height;\n if (changes)\n this._signal(\"resize\", oldSize);\n return changes;\n };\n VirtualRenderer.prototype.onGutterResize = function (width) {\n var gutterWidth = this.$showGutter ? width : 0;\n if (gutterWidth != this.gutterWidth)\n this.$changes |= this.$updateCachedSize(true, gutterWidth, this.$size.width, this.$size.height);\n if (this.session.getUseWrapMode() && this.adjustWrapLimit()) {\n this.$loop.schedule(this.CHANGE_FULL);\n }\n else if (this.$size.$dirty) {\n this.$loop.schedule(this.CHANGE_FULL);\n }\n else {\n this.$computeLayerConfig();\n }\n };\n VirtualRenderer.prototype.adjustWrapLimit = function () {\n var availableWidth = this.$size.scrollerWidth - this.$padding * 2;\n var limit = Math.floor(availableWidth / this.characterWidth);\n return this.session.adjustWrapLimit(limit, this.$showPrintMargin && this.$printMarginColumn);\n };\n VirtualRenderer.prototype.setAnimatedScroll = function (shouldAnimate) {\n this.setOption(\"animatedScroll\", shouldAnimate);\n };\n VirtualRenderer.prototype.getAnimatedScroll = function () {\n return this.$animatedScroll;\n };\n VirtualRenderer.prototype.setShowInvisibles = function (showInvisibles) {\n this.setOption(\"showInvisibles\", showInvisibles);\n this.session.$bidiHandler.setShowInvisibles(showInvisibles);\n };\n VirtualRenderer.prototype.getShowInvisibles = function () {\n return this.getOption(\"showInvisibles\");\n };\n VirtualRenderer.prototype.getDisplayIndentGuides = function () {\n return this.getOption(\"displayIndentGuides\");\n };\n VirtualRenderer.prototype.setDisplayIndentGuides = function (display) {\n this.setOption(\"displayIndentGuides\", display);\n };\n VirtualRenderer.prototype.getHighlightIndentGuides = function () {\n return this.getOption(\"highlightIndentGuides\");\n };\n VirtualRenderer.prototype.setHighlightIndentGuides = function (highlight) {\n this.setOption(\"highlightIndentGuides\", highlight);\n };\n VirtualRenderer.prototype.setShowPrintMargin = function (showPrintMargin) {\n this.setOption(\"showPrintMargin\", showPrintMargin);\n };\n VirtualRenderer.prototype.getShowPrintMargin = function () {\n return this.getOption(\"showPrintMargin\");\n };\n VirtualRenderer.prototype.setPrintMarginColumn = function (showPrintMargin) {\n this.setOption(\"printMarginColumn\", showPrintMargin);\n };\n VirtualRenderer.prototype.getPrintMarginColumn = function () {\n return this.getOption(\"printMarginColumn\");\n };\n VirtualRenderer.prototype.getShowGutter = function () {\n return this.getOption(\"showGutter\");\n };\n VirtualRenderer.prototype.setShowGutter = function (show) {\n return this.setOption(\"showGutter\", show);\n };\n VirtualRenderer.prototype.getFadeFoldWidgets = function () {\n return this.getOption(\"fadeFoldWidgets\");\n };\n VirtualRenderer.prototype.setFadeFoldWidgets = function (show) {\n this.setOption(\"fadeFoldWidgets\", show);\n };\n VirtualRenderer.prototype.setHighlightGutterLine = function (shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n VirtualRenderer.prototype.getHighlightGutterLine = function () {\n return this.getOption(\"highlightGutterLine\");\n };\n VirtualRenderer.prototype.$updatePrintMargin = function () {\n if (!this.$showPrintMargin && !this.$printMarginEl)\n return;\n if (!this.$printMarginEl) {\n var containerEl = dom.createElement(\"div\");\n containerEl.className = \"ace_layer ace_print-margin-layer\";\n this.$printMarginEl = dom.createElement(\"div\");\n this.$printMarginEl.className = \"ace_print-margin\";\n containerEl.appendChild(this.$printMarginEl);\n this.content.insertBefore(containerEl, this.content.firstChild);\n }\n var style = this.$printMarginEl.style;\n style.left = Math.round(this.characterWidth * this.$printMarginColumn + this.$padding) + \"px\";\n style.visibility = this.$showPrintMargin ? \"visible\" : \"hidden\";\n if (this.session && this.session.$wrap == -1)\n this.adjustWrapLimit();\n };\n VirtualRenderer.prototype.getContainerElement = function () {\n return this.container;\n };\n VirtualRenderer.prototype.getMouseEventTarget = function () {\n return this.scroller;\n };\n VirtualRenderer.prototype.getTextAreaContainer = function () {\n return this.container;\n };\n VirtualRenderer.prototype.$moveTextAreaToCursor = function () {\n if (this.$isMousePressed)\n return;\n var style = this.textarea.style;\n var composition = this.$composition;\n if (!this.$keepTextAreaAtCursor && !composition) {\n dom.translate(this.textarea, -100, 0);\n return;\n }\n var pixelPos = this.$cursorLayer.$pixelPos;\n if (!pixelPos)\n return;\n if (composition && composition.markerRange)\n pixelPos = this.$cursorLayer.getPixelPosition(composition.markerRange.start, true);\n var config = this.layerConfig;\n var posTop = pixelPos.top;\n var posLeft = pixelPos.left;\n posTop -= config.offset;\n var h = composition && composition.useTextareaForIME || useragent.isMobile ? this.lineHeight : 1;\n if (posTop < 0 || posTop > config.height - h) {\n dom.translate(this.textarea, 0, 0);\n return;\n }\n var w = 1;\n var maxTop = this.$size.height - h;\n if (!composition) {\n posTop += this.lineHeight;\n }\n else {\n if (composition.useTextareaForIME) {\n var val = this.textarea.value;\n w = this.characterWidth * (this.session.$getStringScreenWidth(val)[0]);\n }\n else {\n posTop += this.lineHeight + 2;\n }\n }\n posLeft -= this.scrollLeft;\n if (posLeft > this.$size.scrollerWidth - w)\n posLeft = this.$size.scrollerWidth - w;\n posLeft += this.gutterWidth + this.margin.left;\n dom.setStyle(style, \"height\", h + \"px\");\n dom.setStyle(style, \"width\", w + \"px\");\n dom.translate(this.textarea, Math.min(posLeft, this.$size.scrollerWidth - w), Math.min(posTop, maxTop));\n };\n VirtualRenderer.prototype.getFirstVisibleRow = function () {\n return this.layerConfig.firstRow;\n };\n VirtualRenderer.prototype.getFirstFullyVisibleRow = function () {\n return this.layerConfig.firstRow + (this.layerConfig.offset === 0 ? 0 : 1);\n };\n VirtualRenderer.prototype.getLastFullyVisibleRow = function () {\n var config = this.layerConfig;\n var lastRow = config.lastRow;\n var top = this.session.documentToScreenRow(lastRow, 0) * config.lineHeight;\n if (top - this.session.getScrollTop() > config.height - config.lineHeight)\n return lastRow - 1;\n return lastRow;\n };\n VirtualRenderer.prototype.getLastVisibleRow = function () {\n return this.layerConfig.lastRow;\n };\n VirtualRenderer.prototype.setPadding = function (padding) {\n this.$padding = padding;\n this.$textLayer.setPadding(padding);\n this.$cursorLayer.setPadding(padding);\n this.$markerFront.setPadding(padding);\n this.$markerBack.setPadding(padding);\n this.$loop.schedule(this.CHANGE_FULL);\n this.$updatePrintMargin();\n };\n VirtualRenderer.prototype.setScrollMargin = function (top, bottom, left, right) {\n var sm = this.scrollMargin;\n sm.top = top | 0;\n sm.bottom = bottom | 0;\n sm.right = right | 0;\n sm.left = left | 0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n if (sm.top && this.scrollTop <= 0 && this.session)\n this.session.setScrollTop(-sm.top);\n this.updateFull();\n };\n VirtualRenderer.prototype.setMargin = function (top, bottom, left, right) {\n var sm = this.margin;\n sm.top = top | 0;\n sm.bottom = bottom | 0;\n sm.right = right | 0;\n sm.left = left | 0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n this.$updateCachedSize(true, this.gutterWidth, this.$size.width, this.$size.height);\n this.updateFull();\n };\n VirtualRenderer.prototype.getHScrollBarAlwaysVisible = function () {\n return this.$hScrollBarAlwaysVisible;\n };\n VirtualRenderer.prototype.setHScrollBarAlwaysVisible = function (alwaysVisible) {\n this.setOption(\"hScrollBarAlwaysVisible\", alwaysVisible);\n };\n VirtualRenderer.prototype.getVScrollBarAlwaysVisible = function () {\n return this.$vScrollBarAlwaysVisible;\n };\n VirtualRenderer.prototype.setVScrollBarAlwaysVisible = function (alwaysVisible) {\n this.setOption(\"vScrollBarAlwaysVisible\", alwaysVisible);\n };\n VirtualRenderer.prototype.$updateScrollBarV = function () {\n var scrollHeight = this.layerConfig.maxHeight;\n var scrollerHeight = this.$size.scrollerHeight;\n if (!this.$maxLines && this.$scrollPastEnd) {\n scrollHeight -= (scrollerHeight - this.lineHeight) * this.$scrollPastEnd;\n if (this.scrollTop > scrollHeight - scrollerHeight) {\n scrollHeight = this.scrollTop + scrollerHeight;\n this.scrollBarV.scrollTop = null;\n }\n }\n this.scrollBarV.setScrollHeight(scrollHeight + this.scrollMargin.v);\n this.scrollBarV.setScrollTop(this.scrollTop + this.scrollMargin.top);\n };\n VirtualRenderer.prototype.$updateScrollBarH = function () {\n this.scrollBarH.setScrollWidth(this.layerConfig.width + 2 * this.$padding + this.scrollMargin.h);\n this.scrollBarH.setScrollLeft(this.scrollLeft + this.scrollMargin.left);\n };\n VirtualRenderer.prototype.freeze = function () {\n this.$frozen = true;\n };\n VirtualRenderer.prototype.unfreeze = function () {\n this.$frozen = false;\n };\n VirtualRenderer.prototype.$renderChanges = function (changes, force) {\n if (this.$changes) {\n changes |= this.$changes;\n this.$changes = 0;\n }\n if ((!this.session || !this.container.offsetWidth || this.$frozen) || (!changes && !force)) {\n this.$changes |= changes;\n return;\n }\n if (this.$size.$dirty) {\n this.$changes |= changes;\n return this.onResize(true);\n }\n if (!this.lineHeight) {\n this.$textLayer.checkForSizeChanges();\n }\n this._signal(\"beforeRender\", changes);\n if (this.session && this.session.$bidiHandler)\n this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);\n var config = this.layerConfig;\n if (changes & this.CHANGE_FULL ||\n changes & this.CHANGE_SIZE ||\n changes & this.CHANGE_TEXT ||\n changes & this.CHANGE_LINES ||\n changes & this.CHANGE_SCROLL ||\n changes & this.CHANGE_H_SCROLL) {\n changes |= this.$computeLayerConfig() | this.$loop.clear();\n if (config.firstRow != this.layerConfig.firstRow && config.firstRowScreen == this.layerConfig.firstRowScreen) {\n var st = this.scrollTop + (config.firstRow - Math.max(this.layerConfig.firstRow, 0)) * this.lineHeight;\n if (st > 0) {\n this.scrollTop = st;\n changes = changes | this.CHANGE_SCROLL;\n changes |= this.$computeLayerConfig() | this.$loop.clear();\n }\n }\n config = this.layerConfig;\n this.$updateScrollBarV();\n if (changes & this.CHANGE_H_SCROLL)\n this.$updateScrollBarH();\n dom.translate(this.content, -this.scrollLeft, -config.offset);\n var width = config.width + 2 * this.$padding + \"px\";\n var height = config.minHeight + \"px\";\n dom.setStyle(this.content.style, \"width\", width);\n dom.setStyle(this.content.style, \"height\", height);\n }\n if (changes & this.CHANGE_H_SCROLL) {\n dom.translate(this.content, -this.scrollLeft, -config.offset);\n this.scroller.className = this.scrollLeft <= 0 ? \"ace_scroller \" : \"ace_scroller ace_scroll-left \";\n if (this.enableKeyboardAccessibility)\n this.scroller.className += this.keyboardFocusClassName;\n }\n if (changes & this.CHANGE_FULL) {\n this.$changedLines = null;\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\", changes);\n return;\n }\n if (changes & this.CHANGE_SCROLL) {\n this.$changedLines = null;\n if (changes & this.CHANGE_TEXT || changes & this.CHANGE_LINES)\n this.$textLayer.update(config);\n else\n this.$textLayer.scrollLines(config);\n if (this.$showGutter) {\n if (changes & this.CHANGE_GUTTER || changes & this.CHANGE_LINES)\n this.$gutterLayer.update(config);\n else\n this.$gutterLayer.scrollLines(config);\n }\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\", changes);\n return;\n }\n if (changes & this.CHANGE_TEXT) {\n this.$changedLines = null;\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_LINES) {\n if (this.$updateLines() || (changes & this.CHANGE_GUTTER) && this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_TEXT || changes & this.CHANGE_GUTTER) {\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_CURSOR) {\n if (this.$highlightGutterLine)\n this.$gutterLayer.updateLineHighlight(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n if (changes & this.CHANGE_CURSOR) {\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n }\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_FRONT)) {\n this.$markerFront.update(config);\n }\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_BACK)) {\n this.$markerBack.update(config);\n }\n this._signal(\"afterRender\", changes);\n };\n VirtualRenderer.prototype.$autosize = function () {\n var height = this.session.getScreenLength() * this.lineHeight;\n var maxHeight = this.$maxLines * this.lineHeight;\n var desiredHeight = Math.min(maxHeight, Math.max((this.$minLines || 1) * this.lineHeight, height)) + this.scrollMargin.v + (this.$extraHeight || 0);\n if (this.$horizScroll)\n desiredHeight += this.scrollBarH.getHeight();\n if (this.$maxPixelHeight && desiredHeight > this.$maxPixelHeight)\n desiredHeight = this.$maxPixelHeight;\n var hideScrollbars = desiredHeight <= 2 * this.lineHeight;\n var vScroll = !hideScrollbars && height > maxHeight;\n if (desiredHeight != this.desiredHeight ||\n this.$size.height != this.desiredHeight || vScroll != this.$vScroll) {\n if (vScroll != this.$vScroll) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n var w = this.container.clientWidth;\n this.container.style.height = desiredHeight + \"px\";\n this.$updateCachedSize(true, this.$gutterWidth, w, desiredHeight);\n this.desiredHeight = desiredHeight;\n this._signal(\"autosize\");\n }\n };\n VirtualRenderer.prototype.$computeLayerConfig = function () {\n var session = this.session;\n var size = this.$size;\n var hideScrollbars = size.height <= 2 * this.lineHeight;\n var screenLines = this.session.getScreenLength();\n var maxHeight = screenLines * this.lineHeight;\n var longestLine = this.$getLongestLine();\n var horizScroll = !hideScrollbars && (this.$hScrollBarAlwaysVisible ||\n size.scrollerWidth - longestLine - 2 * this.$padding < 0);\n var hScrollChanged = this.$horizScroll !== horizScroll;\n if (hScrollChanged) {\n this.$horizScroll = horizScroll;\n this.scrollBarH.setVisible(horizScroll);\n }\n var vScrollBefore = this.$vScroll; // autosize can change vscroll value in which case we need to update longestLine\n if (this.$maxLines && this.lineHeight > 1)\n this.$autosize();\n var minHeight = size.scrollerHeight + this.lineHeight;\n var scrollPastEnd = !this.$maxLines && this.$scrollPastEnd\n ? (size.scrollerHeight - this.lineHeight) * this.$scrollPastEnd\n : 0;\n maxHeight += scrollPastEnd;\n var sm = this.scrollMargin;\n this.session.setScrollTop(Math.max(-sm.top, Math.min(this.scrollTop, maxHeight - size.scrollerHeight + sm.bottom)));\n this.session.setScrollLeft(Math.max(-sm.left, Math.min(this.scrollLeft, longestLine + 2 * this.$padding - size.scrollerWidth + sm.right)));\n var vScroll = !hideScrollbars && (this.$vScrollBarAlwaysVisible ||\n size.scrollerHeight - maxHeight + scrollPastEnd < 0 || this.scrollTop > sm.top);\n var vScrollChanged = vScrollBefore !== vScroll;\n if (vScrollChanged) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n var offset = this.scrollTop % this.lineHeight;\n var lineCount = Math.ceil(minHeight / this.lineHeight) - 1;\n var firstRow = Math.max(0, Math.round((this.scrollTop - offset) / this.lineHeight));\n var lastRow = firstRow + lineCount;\n var firstRowScreen, firstRowHeight;\n var lineHeight = this.lineHeight;\n firstRow = session.screenToDocumentRow(firstRow, 0);\n var foldLine = session.getFoldLine(firstRow);\n if (foldLine) {\n firstRow = foldLine.start.row;\n }\n firstRowScreen = session.documentToScreenRow(firstRow, 0);\n firstRowHeight = session.getRowLength(firstRow) * lineHeight;\n lastRow = Math.min(session.screenToDocumentRow(lastRow, 0), session.getLength() - 1);\n minHeight = size.scrollerHeight + session.getRowLength(lastRow) * lineHeight +\n firstRowHeight;\n offset = this.scrollTop - firstRowScreen * lineHeight;\n var changes = 0;\n if (this.layerConfig.width != longestLine || hScrollChanged)\n changes = this.CHANGE_H_SCROLL;\n if (hScrollChanged || vScrollChanged) {\n changes |= this.$updateCachedSize(true, this.gutterWidth, size.width, size.height);\n this._signal(\"scrollbarVisibilityChanged\");\n if (vScrollChanged)\n longestLine = this.$getLongestLine();\n }\n this.layerConfig = {\n width: longestLine,\n padding: this.$padding,\n firstRow: firstRow,\n firstRowScreen: firstRowScreen,\n lastRow: lastRow,\n lineHeight: lineHeight,\n characterWidth: this.characterWidth,\n minHeight: minHeight,\n maxHeight: maxHeight,\n offset: offset,\n gutterOffset: lineHeight ? Math.max(0, Math.ceil((offset + size.height - size.scrollerHeight) / lineHeight)) : 0,\n height: this.$size.scrollerHeight\n };\n if (this.session.$bidiHandler)\n this.session.$bidiHandler.setContentWidth(longestLine - this.$padding);\n return changes;\n };\n VirtualRenderer.prototype.$updateLines = function () {\n if (!this.$changedLines)\n return;\n var firstRow = this.$changedLines.firstRow;\n var lastRow = this.$changedLines.lastRow;\n this.$changedLines = null;\n var layerConfig = this.layerConfig;\n if (firstRow > layerConfig.lastRow + 1) {\n return;\n }\n if (lastRow < layerConfig.firstRow) {\n return;\n }\n if (lastRow === Infinity) {\n if (this.$showGutter)\n this.$gutterLayer.update(layerConfig);\n this.$textLayer.update(layerConfig);\n return;\n }\n this.$textLayer.updateLines(layerConfig, firstRow, lastRow);\n return true;\n };\n VirtualRenderer.prototype.$getLongestLine = function () {\n var charCount = this.session.getScreenWidth();\n if (this.showInvisibles && !this.session.$useWrapMode)\n charCount += 1;\n if (this.$textLayer && charCount > this.$textLayer.MAX_LINE_LENGTH)\n charCount = this.$textLayer.MAX_LINE_LENGTH + 30;\n return Math.max(this.$size.scrollerWidth - 2 * this.$padding, Math.round(charCount * this.characterWidth));\n };\n VirtualRenderer.prototype.updateFrontMarkers = function () {\n this.$markerFront.setMarkers(this.session.getMarkers(true));\n this.$loop.schedule(this.CHANGE_MARKER_FRONT);\n };\n VirtualRenderer.prototype.updateBackMarkers = function () {\n this.$markerBack.setMarkers(this.session.getMarkers());\n this.$loop.schedule(this.CHANGE_MARKER_BACK);\n };\n VirtualRenderer.prototype.addGutterDecoration = function (row, className) {\n this.$gutterLayer.addGutterDecoration(row, className);\n };\n VirtualRenderer.prototype.removeGutterDecoration = function (row, className) {\n this.$gutterLayer.removeGutterDecoration(row, className);\n };\n VirtualRenderer.prototype.updateBreakpoints = function (rows) {\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n VirtualRenderer.prototype.setAnnotations = function (annotations) {\n this.$gutterLayer.setAnnotations(annotations);\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n VirtualRenderer.prototype.updateCursor = function () {\n this.$loop.schedule(this.CHANGE_CURSOR);\n };\n VirtualRenderer.prototype.hideCursor = function () {\n this.$cursorLayer.hideCursor();\n };\n VirtualRenderer.prototype.showCursor = function () {\n this.$cursorLayer.showCursor();\n };\n VirtualRenderer.prototype.scrollSelectionIntoView = function (anchor, lead, offset) {\n this.scrollCursorIntoView(anchor, offset);\n this.scrollCursorIntoView(lead, offset);\n };\n VirtualRenderer.prototype.scrollCursorIntoView = function (cursor, offset, $viewMargin) {\n if (this.$size.scrollerHeight === 0)\n return;\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var newLeft = pos.left;\n var newTop = pos.top;\n var topMargin = $viewMargin && $viewMargin.top || 0;\n var bottomMargin = $viewMargin && $viewMargin.bottom || 0;\n if (this.$scrollAnimation) {\n this.$stopAnimation = true;\n }\n var currentTop = this.$scrollAnimation ? this.session.getScrollTop() : this.scrollTop;\n if (currentTop + topMargin > newTop) {\n if (offset && currentTop + topMargin > newTop + this.lineHeight)\n newTop -= offset * this.$size.scrollerHeight;\n if (newTop === 0)\n newTop = -this.scrollMargin.top;\n this.session.setScrollTop(newTop);\n }\n else if (currentTop + this.$size.scrollerHeight - bottomMargin < newTop + this.lineHeight) {\n if (offset && currentTop + this.$size.scrollerHeight - bottomMargin < newTop - this.lineHeight)\n newTop += offset * this.$size.scrollerHeight;\n this.session.setScrollTop(newTop + this.lineHeight + bottomMargin - this.$size.scrollerHeight);\n }\n var currentLeft = this.scrollLeft;\n var twoCharsWidth = 2 * this.layerConfig.characterWidth;\n if (newLeft - twoCharsWidth < currentLeft) {\n newLeft -= twoCharsWidth;\n if (newLeft < this.$padding + twoCharsWidth) {\n newLeft = -this.scrollMargin.left;\n }\n this.session.setScrollLeft(newLeft);\n }\n else {\n newLeft += twoCharsWidth;\n if (currentLeft + this.$size.scrollerWidth < newLeft + this.characterWidth) {\n this.session.setScrollLeft(Math.round(newLeft + this.characterWidth - this.$size.scrollerWidth));\n }\n else if (currentLeft <= this.$padding && newLeft - currentLeft < this.characterWidth) {\n this.session.setScrollLeft(0);\n }\n }\n };\n VirtualRenderer.prototype.getScrollTop = function () {\n return this.session.getScrollTop();\n };\n VirtualRenderer.prototype.getScrollLeft = function () {\n return this.session.getScrollLeft();\n };\n VirtualRenderer.prototype.getScrollTopRow = function () {\n return this.scrollTop / this.lineHeight;\n };\n VirtualRenderer.prototype.getScrollBottomRow = function () {\n return Math.max(0, Math.floor((this.scrollTop + this.$size.scrollerHeight) / this.lineHeight) - 1);\n };\n VirtualRenderer.prototype.scrollToRow = function (row) {\n this.session.setScrollTop(row * this.lineHeight);\n };\n VirtualRenderer.prototype.alignCursor = function (cursor, alignment) {\n if (typeof cursor == \"number\")\n cursor = { row: cursor, column: 0 };\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var h = this.$size.scrollerHeight - this.lineHeight;\n var offset = pos.top - h * (alignment || 0);\n this.session.setScrollTop(offset);\n return offset;\n };\n VirtualRenderer.prototype.$calcSteps = function (fromValue, toValue) {\n var i = 0;\n var l = this.STEPS;\n var steps = [];\n var func = function (t, x_min, dx) {\n return dx * (Math.pow(t - 1, 3) + 1) + x_min;\n };\n for (i = 0; i < l; ++i)\n steps.push(func(i / this.STEPS, fromValue, toValue - fromValue));\n return steps;\n };\n VirtualRenderer.prototype.scrollToLine = function (line, center, animate, callback) {\n var pos = this.$cursorLayer.getPixelPosition({ row: line, column: 0 });\n var offset = pos.top;\n if (center)\n offset -= this.$size.scrollerHeight / 2;\n var initialScroll = this.scrollTop;\n this.session.setScrollTop(offset);\n if (animate !== false)\n this.animateScrolling(initialScroll, callback);\n };\n VirtualRenderer.prototype.animateScrolling = function (fromValue, callback) {\n var toValue = this.scrollTop;\n if (!this.$animatedScroll)\n return;\n var _self = this;\n if (fromValue == toValue)\n return;\n if (this.$scrollAnimation) {\n var oldSteps = this.$scrollAnimation.steps;\n if (oldSteps.length) {\n fromValue = oldSteps[0];\n if (fromValue == toValue)\n return;\n }\n }\n var steps = _self.$calcSteps(fromValue, toValue);\n this.$scrollAnimation = { from: fromValue, to: toValue, steps: steps };\n clearInterval(this.$timer);\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n function endAnimation() {\n _self.$timer = clearInterval(_self.$timer);\n _self.$scrollAnimation = null;\n _self.$stopAnimation = false;\n callback && callback();\n }\n this.$timer = setInterval(function () {\n if (_self.$stopAnimation) {\n endAnimation();\n return;\n }\n if (!_self.session)\n return clearInterval(_self.$timer);\n if (steps.length) {\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n }\n else if (toValue != null) {\n _self.session.$scrollTop = -1;\n _self.session.setScrollTop(toValue);\n toValue = null;\n }\n else {\n endAnimation();\n }\n }, 10);\n };\n VirtualRenderer.prototype.scrollToY = function (scrollTop) {\n if (this.scrollTop !== scrollTop) {\n this.$loop.schedule(this.CHANGE_SCROLL);\n this.scrollTop = scrollTop;\n }\n };\n VirtualRenderer.prototype.scrollToX = function (scrollLeft) {\n if (this.scrollLeft !== scrollLeft)\n this.scrollLeft = scrollLeft;\n this.$loop.schedule(this.CHANGE_H_SCROLL);\n };\n VirtualRenderer.prototype.scrollTo = function (x, y) {\n this.session.setScrollTop(y);\n this.session.setScrollLeft(x);\n };\n VirtualRenderer.prototype.scrollBy = function (deltaX, deltaY) {\n deltaY && this.session.setScrollTop(this.session.getScrollTop() + deltaY);\n deltaX && this.session.setScrollLeft(this.session.getScrollLeft() + deltaX);\n };\n VirtualRenderer.prototype.isScrollableBy = function (deltaX, deltaY) {\n if (deltaY < 0 && this.session.getScrollTop() >= 1 - this.scrollMargin.top)\n return true;\n if (deltaY > 0 && this.session.getScrollTop() + this.$size.scrollerHeight\n - this.layerConfig.maxHeight < -1 + this.scrollMargin.bottom)\n return true;\n if (deltaX < 0 && this.session.getScrollLeft() >= 1 - this.scrollMargin.left)\n return true;\n if (deltaX > 0 && this.session.getScrollLeft() + this.$size.scrollerWidth\n - this.layerConfig.width < -1 + this.scrollMargin.right)\n return true;\n };\n VirtualRenderer.prototype.pixelToScreenCoordinates = function (x, y) {\n var canvasPos;\n if (this.$hasCssTransforms) {\n canvasPos = { top: 0, left: 0 };\n var p = this.$fontMetrics.transformCoordinates([x, y]);\n x = p[1] - this.gutterWidth - this.margin.left;\n y = p[0];\n }\n else {\n canvasPos = this.scroller.getBoundingClientRect();\n }\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n var offset = offsetX / this.characterWidth;\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n var col = this.$blockCursor ? Math.floor(offset) : Math.round(offset);\n return { row: row, column: col, side: offset - col > 0 ? 1 : -1, offsetX: offsetX };\n };\n VirtualRenderer.prototype.screenToTextCoordinates = function (x, y) {\n var canvasPos;\n if (this.$hasCssTransforms) {\n canvasPos = { top: 0, left: 0 };\n var p = this.$fontMetrics.transformCoordinates([x, y]);\n x = p[1] - this.gutterWidth - this.margin.left;\n y = p[0];\n }\n else {\n canvasPos = this.scroller.getBoundingClientRect();\n }\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n var offset = offsetX / this.characterWidth;\n var col = this.$blockCursor ? Math.floor(offset) : Math.round(offset);\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n return this.session.screenToDocumentPosition(row, Math.max(col, 0), offsetX);\n };\n VirtualRenderer.prototype.textToScreenCoordinates = function (row, column) {\n var canvasPos = this.scroller.getBoundingClientRect();\n var pos = this.session.documentToScreenPosition(row, column);\n var x = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : Math.round(pos.column * this.characterWidth));\n var y = pos.row * this.lineHeight;\n return {\n pageX: canvasPos.left + x - this.scrollLeft,\n pageY: canvasPos.top + y - this.scrollTop\n };\n };\n VirtualRenderer.prototype.visualizeFocus = function () {\n dom.addCssClass(this.container, \"ace_focus\");\n };\n VirtualRenderer.prototype.visualizeBlur = function () {\n dom.removeCssClass(this.container, \"ace_focus\");\n };\n VirtualRenderer.prototype.showComposition = function (composition) {\n this.$composition = composition;\n if (!composition.cssText) {\n composition.cssText = this.textarea.style.cssText;\n }\n if (composition.useTextareaForIME == undefined)\n composition.useTextareaForIME = this.$useTextareaForIME;\n if (this.$useTextareaForIME) {\n dom.addCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = \"\";\n this.$moveTextAreaToCursor();\n this.$cursorLayer.element.style.display = \"none\";\n }\n else {\n composition.markerId = this.session.addMarker(composition.markerRange, \"ace_composition_marker\", \"text\");\n }\n };\n VirtualRenderer.prototype.setCompositionText = function (text) {\n var cursor = this.session.selection.cursor;\n this.addToken(text, \"composition_placeholder\", cursor.row, cursor.column);\n this.$moveTextAreaToCursor();\n };\n VirtualRenderer.prototype.hideComposition = function () {\n if (!this.$composition)\n return;\n if (this.$composition.markerId)\n this.session.removeMarker(this.$composition.markerId);\n dom.removeCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = this.$composition.cssText;\n var cursor = this.session.selection.cursor;\n this.removeExtraToken(cursor.row, cursor.column);\n this.$composition = null;\n this.$cursorLayer.element.style.display = \"\";\n };\n VirtualRenderer.prototype.setGhostText = function (text, position) {\n var cursor = this.session.selection.cursor;\n var insertPosition = position || { row: cursor.row, column: cursor.column };\n this.removeGhostText();\n var textLines = text.split(\"\\n\");\n this.addToken(textLines[0], \"ghost_text\", insertPosition.row, insertPosition.column);\n this.$ghostText = {\n text: text,\n position: {\n row: insertPosition.row,\n column: insertPosition.column\n }\n };\n if (textLines.length > 1) {\n this.$ghostTextWidget = {\n text: textLines.slice(1).join(\"\\n\"),\n row: insertPosition.row,\n column: insertPosition.column,\n className: \"ace_ghost_text\"\n };\n this.session.widgetManager.addLineWidget(this.$ghostTextWidget);\n var pixelPosition = this.$cursorLayer.getPixelPosition(insertPosition, true);\n var el = this.container;\n var height = el.getBoundingClientRect().height;\n var ghostTextHeight = textLines.length * this.lineHeight;\n var fitsY = ghostTextHeight < height - pixelPosition.top;\n if (fitsY)\n return;\n if (ghostTextHeight < height) {\n this.scrollBy(0, (textLines.length - 1) * this.lineHeight);\n }\n else {\n this.scrollBy(0, pixelPosition.top);\n }\n }\n };\n VirtualRenderer.prototype.removeGhostText = function () {\n if (!this.$ghostText)\n return;\n var position = this.$ghostText.position;\n this.removeExtraToken(position.row, position.column);\n if (this.$ghostTextWidget) {\n this.session.widgetManager.removeLineWidget(this.$ghostTextWidget);\n this.$ghostTextWidget = null;\n }\n this.$ghostText = null;\n };\n VirtualRenderer.prototype.addToken = function (text, type, row, column) {\n var session = this.session;\n session.bgTokenizer.lines[row] = null;\n var newToken = { type: type, value: text };\n var tokens = session.getTokens(row);\n if (column == null || !tokens.length) {\n tokens.push(newToken);\n }\n else {\n var l = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n l += token.value.length;\n if (column <= l) {\n var diff = token.value.length - (l - column);\n var before = token.value.slice(0, diff);\n var after = token.value.slice(diff);\n tokens.splice(i, 1, { type: token.type, value: before }, newToken, { type: token.type, value: after });\n break;\n }\n }\n }\n this.updateLines(row, row);\n };\n VirtualRenderer.prototype.removeExtraToken = function (row, column) {\n this.session.bgTokenizer.lines[row] = null;\n this.updateLines(row, row);\n };\n VirtualRenderer.prototype.setTheme = function (theme, cb) {\n var _self = this;\n this.$themeId = theme;\n _self._dispatchEvent('themeChange', { theme: theme });\n if (!theme || typeof theme == \"string\") {\n var moduleName = theme || this.$options.theme.initialValue;\n config.loadModule([\"theme\", moduleName], afterLoad);\n }\n else {\n afterLoad(theme);\n }\n function afterLoad(module) {\n if (_self.$themeId != theme)\n return cb && cb();\n if (!module || !module.cssClass)\n throw new Error(\"couldn't load module \" + theme + \" or it didn't call define\");\n if (module.$id)\n _self.$themeId = module.$id;\n dom.importCssString(module.cssText, module.cssClass, _self.container);\n if (_self.theme)\n dom.removeCssClass(_self.container, _self.theme.cssClass);\n var padding = \"padding\" in module ? module.padding\n : \"padding\" in (_self.theme || {}) ? 4 : _self.$padding;\n if (_self.$padding && padding != _self.$padding)\n _self.setPadding(padding);\n _self.$theme = module.cssClass;\n _self.theme = module;\n dom.addCssClass(_self.container, module.cssClass);\n dom.setCssClass(_self.container, \"ace_dark\", module.isDark);\n if (_self.$size) {\n _self.$size.width = 0;\n _self.$updateSizeAsync();\n }\n _self._dispatchEvent('themeLoaded', { theme: module });\n cb && cb();\n }\n };\n VirtualRenderer.prototype.getTheme = function () {\n return this.$themeId;\n };\n VirtualRenderer.prototype.setStyle = function (style, include) {\n dom.setCssClass(this.container, style, include !== false);\n };\n VirtualRenderer.prototype.unsetStyle = function (style) {\n dom.removeCssClass(this.container, style);\n };\n VirtualRenderer.prototype.setCursorStyle = function (style) {\n dom.setStyle(this.scroller.style, \"cursor\", style);\n };\n VirtualRenderer.prototype.setMouseCursor = function (cursorStyle) {\n dom.setStyle(this.scroller.style, \"cursor\", cursorStyle);\n };\n VirtualRenderer.prototype.attachToShadowRoot = function () {\n dom.importCssString(editorCss, \"ace_editor.css\", this.container);\n };\n VirtualRenderer.prototype.destroy = function () {\n this.freeze();\n this.$fontMetrics.destroy();\n this.$cursorLayer.destroy();\n this.removeAllListeners();\n this.container.textContent = \"\";\n this.setOption(\"useResizeObserver\", false);\n };\n VirtualRenderer.prototype.$updateCustomScrollbar = function (val) {\n var _self = this;\n this.$horizScroll = this.$vScroll = null;\n this.scrollBarV.element.remove();\n this.scrollBarH.element.remove();\n if (this.$scrollDecorator) {\n delete this.$scrollDecorator;\n }\n if (val === true) {\n this.scrollBarV = new VScrollBarCustom(this.container, this);\n this.scrollBarH = new HScrollBarCustom(this.container, this);\n this.scrollBarV.setHeight(this.$size.scrollerHeight);\n this.scrollBarH.setWidth(this.$size.scrollerWidth);\n this.scrollBarV.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n this.$scrollDecorator = new Decorator(this.scrollBarV, this);\n this.$scrollDecorator.$updateDecorators();\n }\n else {\n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n }\n };\n VirtualRenderer.prototype.$addResizeObserver = function () {\n if (!window.ResizeObserver || this.$resizeObserver)\n return;\n var self = this;\n this.$resizeTimer = lang.delayedCall(function () {\n if (!self.destroyed)\n self.onResize();\n }, 50);\n this.$resizeObserver = new window.ResizeObserver(function (e) {\n var w = e[0].contentRect.width;\n var h = e[0].contentRect.height;\n if (Math.abs(self.$size.width - w) > 1\n || Math.abs(self.$size.height - h) > 1) {\n self.$resizeTimer.delay();\n }\n else {\n self.$resizeTimer.cancel();\n }\n });\n this.$resizeObserver.observe(this.container);\n };\n return VirtualRenderer;\n}());\nVirtualRenderer.prototype.CHANGE_CURSOR = 1;\nVirtualRenderer.prototype.CHANGE_MARKER = 2;\nVirtualRenderer.prototype.CHANGE_GUTTER = 4;\nVirtualRenderer.prototype.CHANGE_SCROLL = 8;\nVirtualRenderer.prototype.CHANGE_LINES = 16;\nVirtualRenderer.prototype.CHANGE_TEXT = 32;\nVirtualRenderer.prototype.CHANGE_SIZE = 64;\nVirtualRenderer.prototype.CHANGE_MARKER_BACK = 128;\nVirtualRenderer.prototype.CHANGE_MARKER_FRONT = 256;\nVirtualRenderer.prototype.CHANGE_FULL = 512;\nVirtualRenderer.prototype.CHANGE_H_SCROLL = 1024;\nVirtualRenderer.prototype.$changes = 0;\nVirtualRenderer.prototype.$padding = null;\nVirtualRenderer.prototype.$frozen = false;\nVirtualRenderer.prototype.STEPS = 8;\noop.implement(VirtualRenderer.prototype, EventEmitter);\nconfig.defineOptions(VirtualRenderer.prototype, \"renderer\", {\n useResizeObserver: {\n set: function (value) {\n if (!value && this.$resizeObserver) {\n this.$resizeObserver.disconnect();\n this.$resizeTimer.cancel();\n this.$resizeTimer = this.$resizeObserver = null;\n }\n else if (value && !this.$resizeObserver) {\n this.$addResizeObserver();\n }\n }\n },\n animatedScroll: { initialValue: false },\n showInvisibles: {\n set: function (value) {\n if (this.$textLayer.setShowInvisibles(value))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: false\n },\n showPrintMargin: {\n set: function () { this.$updatePrintMargin(); },\n initialValue: true\n },\n printMarginColumn: {\n set: function () { this.$updatePrintMargin(); },\n initialValue: 80\n },\n printMargin: {\n set: function (val) {\n if (typeof val == \"number\")\n this.$printMarginColumn = val;\n this.$showPrintMargin = !!val;\n this.$updatePrintMargin();\n },\n get: function () {\n return this.$showPrintMargin && this.$printMarginColumn;\n }\n },\n showGutter: {\n set: function (show) {\n this.$gutter.style.display = show ? \"block\" : \"none\";\n this.$loop.schedule(this.CHANGE_FULL);\n this.onGutterResize();\n },\n initialValue: true\n },\n useSvgGutterIcons: {\n set: function (value) {\n this.$gutterLayer.$useSvgGutterIcons = value;\n },\n initialValue: false\n },\n showFoldedAnnotations: {\n set: function (value) {\n this.$gutterLayer.$showFoldedAnnotations = value;\n },\n initialValue: false\n },\n fadeFoldWidgets: {\n set: function (show) {\n dom.setCssClass(this.$gutter, \"ace_fade-fold-widgets\", show);\n },\n initialValue: false\n },\n showFoldWidgets: {\n set: function (show) {\n this.$gutterLayer.setShowFoldWidgets(show);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n displayIndentGuides: {\n set: function (show) {\n if (this.$textLayer.setDisplayIndentGuides(show))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: true\n },\n highlightIndentGuides: {\n set: function (show) {\n if (this.$textLayer.setHighlightIndentGuides(show) == true) {\n this.$textLayer.$highlightIndentGuide();\n }\n else {\n this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells);\n }\n },\n initialValue: true\n },\n highlightGutterLine: {\n set: function (shouldHighlight) {\n this.$gutterLayer.setHighlightGutterLine(shouldHighlight);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n hScrollBarAlwaysVisible: {\n set: function (val) {\n if (!this.$hScrollBarAlwaysVisible || !this.$horizScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n vScrollBarAlwaysVisible: {\n set: function (val) {\n if (!this.$vScrollBarAlwaysVisible || !this.$vScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n fontSize: {\n set: function (size) {\n if (typeof size == \"number\")\n size = size + \"px\";\n this.container.style.fontSize = size;\n this.updateFontSize();\n },\n initialValue: 12\n },\n fontFamily: {\n set: function (name) {\n this.container.style.fontFamily = name;\n this.updateFontSize();\n }\n },\n maxLines: {\n set: function (val) {\n this.updateFull();\n }\n },\n minLines: {\n set: function (val) {\n if (!(this.$minLines < 0x1ffffffffffff))\n this.$minLines = 0;\n this.updateFull();\n }\n },\n maxPixelHeight: {\n set: function (val) {\n this.updateFull();\n },\n initialValue: 0\n },\n scrollPastEnd: {\n set: function (val) {\n val = +val || 0;\n if (this.$scrollPastEnd == val)\n return;\n this.$scrollPastEnd = val;\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: 0,\n handlesSet: true\n },\n fixedWidthGutter: {\n set: function (val) {\n this.$gutterLayer.$fixedWidth = !!val;\n this.$loop.schedule(this.CHANGE_GUTTER);\n }\n },\n customScrollbar: {\n set: function (val) {\n this.$updateCustomScrollbar(val);\n },\n initialValue: false\n },\n theme: {\n set: function (val) { this.setTheme(val); },\n get: function () { return this.$themeId || this.theme; },\n initialValue: \"./theme/textmate\",\n handlesSet: true\n },\n hasCssTransforms: {},\n useTextareaForIME: {\n initialValue: !useragent.isMobile && !useragent.isIE\n }\n});\nexports.VirtualRenderer = VirtualRenderer;\n\n});\n\nace.define(\"ace/worker/worker_client\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/event_emitter\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar net = require(\"../lib/net\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar config = require(\"../config\");\n\nfunction $workerBlob(workerUrl) {\n var script = \"importScripts('\" + net.qualifyURL(workerUrl) + \"');\";\n try {\n return new Blob([script], {\"type\": \"application/javascript\"});\n } catch (e) { // Backwards-compatibility\n var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;\n var blobBuilder = new BlobBuilder();\n blobBuilder.append(script);\n return blobBuilder.getBlob(\"application/javascript\");\n }\n}\n\nfunction createWorker(workerUrl) {\n if (typeof Worker == \"undefined\")\n return { postMessage: function() {}, terminate: function() {} };\n if (config.get(\"loadWorkerFromBlob\")) {\n var blob = $workerBlob(workerUrl);\n var URL = window.URL || window.webkitURL;\n var blobURL = URL.createObjectURL(blob);\n return new Worker(blobURL);\n }\n return new Worker(workerUrl);\n}\n\nvar WorkerClient = function(worker) {\n if (!worker.postMessage)\n worker = this.$createWorkerFromOldConfig.apply(this, arguments);\n\n this.$worker = worker;\n this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n this.changeListener = this.changeListener.bind(this);\n this.onMessage = this.onMessage.bind(this);\n\n this.callbackId = 1;\n this.callbacks = {};\n\n this.$worker.onmessage = this.onMessage;\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n\n this.$createWorkerFromOldConfig = function(topLevelNamespaces, mod, classname, workerUrl, importScripts) {\n if (require.nameToUrl && !require.toUrl)\n require.toUrl = require.nameToUrl;\n\n if (config.get(\"packaged\") || !require.toUrl) {\n workerUrl = workerUrl || config.moduleUrl(mod, \"worker\");\n } else {\n var normalizePath = this.$normalizePath;\n workerUrl = workerUrl || normalizePath(require.toUrl(\"ace/worker/worker.js\", null, \"_\"));\n\n var tlns = {};\n topLevelNamespaces.forEach(function(ns) {\n tlns[ns] = normalizePath(require.toUrl(ns, null, \"_\").replace(/(\\.js)?(\\?.*)?$/, \"\"));\n });\n }\n\n this.$worker = createWorker(workerUrl);\n if (importScripts) {\n this.send(\"importScripts\", importScripts);\n }\n this.$worker.postMessage({\n init : true,\n tlns : tlns,\n module : mod,\n classname : classname\n });\n return this.$worker;\n };\n\n this.onMessage = function(e) {\n var msg = e.data;\n switch (msg.type) {\n case \"event\":\n this._signal(msg.name, {data: msg.data});\n break;\n case \"call\":\n var callback = this.callbacks[msg.id];\n if (callback) {\n callback(msg.data);\n delete this.callbacks[msg.id];\n }\n break;\n case \"error\":\n this.reportError(msg.data);\n break;\n case \"log\":\n window.console && console.log && console.log.apply(console, msg.data);\n break;\n }\n };\n \n this.reportError = function(err) {\n window.console && console.error && console.error(err);\n };\n\n this.$normalizePath = function(path) {\n return net.qualifyURL(path);\n };\n\n this.terminate = function() {\n this._signal(\"terminate\", {});\n this.deltaQueue = null;\n this.$worker.terminate();\n this.$worker.onerror = function(e) {\n e.preventDefault();\n };\n this.$worker = null;\n if (this.$doc)\n this.$doc.off(\"change\", this.changeListener);\n this.$doc = null;\n };\n\n this.send = function(cmd, args) {\n this.$worker.postMessage({command: cmd, args: args});\n };\n\n this.call = function(cmd, args, callback) {\n if (callback) {\n var id = this.callbackId++;\n this.callbacks[id] = callback;\n args.push(id);\n }\n this.send(cmd, args);\n };\n\n this.emit = function(event, data) {\n try {\n if (data.data && data.data.err)\n data.data.err = {message: data.data.err.message, stack: data.data.err.stack, code: data.data.err.code};\n this.$worker && this.$worker.postMessage({event: event, data: {data: data.data}});\n }\n catch(ex) {\n console.error(ex.stack);\n }\n };\n\n this.attachToDocument = function(doc) {\n if (this.$doc)\n this.terminate();\n\n this.$doc = doc;\n this.call(\"setValue\", [doc.getValue()]);\n doc.on(\"change\", this.changeListener, true);\n };\n\n this.changeListener = function(delta) {\n if (!this.deltaQueue) {\n this.deltaQueue = [];\n setTimeout(this.$sendDeltaQueue, 0);\n }\n if (delta.action == \"insert\")\n this.deltaQueue.push(delta.start, delta.lines);\n else\n this.deltaQueue.push(delta.start, delta.end);\n };\n\n this.$sendDeltaQueue = function() {\n var q = this.deltaQueue;\n if (!q) return;\n this.deltaQueue = null;\n if (q.length > 50 && q.length > this.$doc.getLength() >> 1) {\n this.call(\"setValue\", [this.$doc.getValue()]);\n } else\n this.emit(\"change\", {data: q});\n };\n\n}).call(WorkerClient.prototype);\n\n\nvar UIWorkerClient = function(topLevelNamespaces, mod, classname) {\n var main = null;\n var emitSync = false;\n var sender = Object.create(EventEmitter);\n\n var messageBuffer = [];\n var workerClient = new WorkerClient({\n messageBuffer: messageBuffer,\n terminate: function() {},\n postMessage: function(e) {\n messageBuffer.push(e);\n if (!main) return;\n if (emitSync)\n setTimeout(processNext);\n else\n processNext();\n }\n });\n\n workerClient.setEmitSync = function(val) { emitSync = val; };\n\n var processNext = function() {\n var msg = messageBuffer.shift();\n if (msg.command)\n main[msg.command].apply(main, msg.args);\n else if (msg.event)\n sender._signal(msg.event, msg.data);\n };\n\n sender.postMessage = function(msg) {\n workerClient.onMessage({data: msg});\n };\n sender.callback = function(data, callbackId) {\n this.postMessage({type: \"call\", id: callbackId, data: data});\n };\n sender.emit = function(name, data) {\n this.postMessage({type: \"event\", name: name, data: data});\n };\n\n config.loadModule([\"worker\", mod], function(Main) {\n main = new Main[classname](sender);\n while (messageBuffer.length)\n processNext();\n });\n\n return workerClient;\n};\n\nexports.UIWorkerClient = UIWorkerClient;\nexports.WorkerClient = WorkerClient;\nexports.createWorker = createWorker;\n\n\n});\n\nace.define(\"ace/placeholder\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/oop\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar oop = require(\"./lib/oop\");\nvar PlaceHolder = /** @class */ (function () {\n function PlaceHolder(session, length, pos, others, mainClass, othersClass) {\n var _self = this;\n this.length = length;\n this.session = session;\n this.doc = session.getDocument();\n this.mainClass = mainClass;\n this.othersClass = othersClass;\n this.$onUpdate = this.onUpdate.bind(this);\n this.doc.on(\"change\", this.$onUpdate, true);\n this.$others = others;\n this.$onCursorChange = function () {\n setTimeout(function () {\n _self.onCursorChange();\n });\n };\n this.$pos = pos;\n var undoStack = session.getUndoManager().$undoStack || session.getUndoManager().$undostack || { length: -1 };\n this.$undoStackDepth = undoStack.length;\n this.setup();\n session.selection.on(\"changeCursor\", this.$onCursorChange);\n }\n PlaceHolder.prototype.setup = function () {\n var _self = this;\n var doc = this.doc;\n var session = this.session;\n this.selectionBefore = session.selection.toJSON();\n if (session.selection.inMultiSelectMode)\n session.selection.toSingleRange();\n this.pos = doc.createAnchor(this.$pos.row, this.$pos.column);\n var pos = this.pos;\n pos.$insertRight = true;\n pos.detach();\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + this.length), this.mainClass, null, false);\n this.others = [];\n this.$others.forEach(function (other) {\n var anchor = doc.createAnchor(other.row, other.column);\n anchor.$insertRight = true;\n anchor.detach();\n _self.others.push(anchor);\n });\n session.setUndoSelect(false);\n };\n PlaceHolder.prototype.showOtherMarkers = function () {\n if (this.othersActive)\n return;\n var session = this.session;\n var _self = this;\n this.othersActive = true;\n this.others.forEach(function (anchor) {\n anchor.markerId = session.addMarker(new Range(anchor.row, anchor.column, anchor.row, anchor.column + _self.length), _self.othersClass, null, false);\n });\n };\n PlaceHolder.prototype.hideOtherMarkers = function () {\n if (!this.othersActive)\n return;\n this.othersActive = false;\n for (var i = 0; i < this.others.length; i++) {\n this.session.removeMarker(this.others[i].markerId);\n }\n };\n PlaceHolder.prototype.onUpdate = function (delta) {\n if (this.$updating)\n return this.updateAnchors(delta);\n var range = delta;\n if (range.start.row !== range.end.row)\n return;\n if (range.start.row !== this.pos.row)\n return;\n this.$updating = true;\n var lengthDiff = delta.action === \"insert\" ? range.end.column - range.start.column : range.start.column - range.end.column;\n var inMainRange = range.start.column >= this.pos.column && range.start.column <= this.pos.column + this.length + 1;\n var distanceFromStart = range.start.column - this.pos.column;\n this.updateAnchors(delta);\n if (inMainRange)\n this.length += lengthDiff;\n if (inMainRange && !this.session.$fromUndo) {\n if (delta.action === 'insert') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = { row: otherPos.row, column: otherPos.column + distanceFromStart };\n this.doc.insertMergedLines(newPos, delta.lines);\n }\n }\n else if (delta.action === 'remove') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = { row: otherPos.row, column: otherPos.column + distanceFromStart };\n this.doc.remove(new Range(newPos.row, newPos.column, newPos.row, newPos.column - lengthDiff));\n }\n }\n }\n this.$updating = false;\n this.updateMarkers();\n };\n PlaceHolder.prototype.updateAnchors = function (delta) {\n this.pos.onChange(delta);\n for (var i = this.others.length; i--;)\n this.others[i].onChange(delta);\n this.updateMarkers();\n };\n PlaceHolder.prototype.updateMarkers = function () {\n if (this.$updating)\n return;\n var _self = this;\n var session = this.session;\n var updateMarker = function (pos, className) {\n session.removeMarker(pos.markerId);\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + _self.length), className, null, false);\n };\n updateMarker(this.pos, this.mainClass);\n for (var i = this.others.length; i--;)\n updateMarker(this.others[i], this.othersClass);\n };\n PlaceHolder.prototype.onCursorChange = function (event) {\n if (this.$updating || !this.session)\n return;\n var pos = this.session.selection.getCursor();\n if (pos.row === this.pos.row && pos.column >= this.pos.column && pos.column <= this.pos.column + this.length) {\n this.showOtherMarkers();\n this._emit(\"cursorEnter\", event);\n }\n else {\n this.hideOtherMarkers();\n this._emit(\"cursorLeave\", event);\n }\n };\n PlaceHolder.prototype.detach = function () {\n this.session.removeMarker(this.pos && this.pos.markerId);\n this.hideOtherMarkers();\n this.doc.off(\"change\", this.$onUpdate);\n this.session.selection.off(\"changeCursor\", this.$onCursorChange);\n this.session.setUndoSelect(true);\n this.session = null;\n };\n PlaceHolder.prototype.cancel = function () {\n if (this.$undoStackDepth === -1)\n return;\n var undoManager = this.session.getUndoManager();\n var undosRequired = (undoManager.$undoStack || undoManager.$undostack).length - this.$undoStackDepth;\n for (var i = 0; i < undosRequired; i++) {\n undoManager.undo(this.session, true);\n }\n if (this.selectionBefore)\n this.session.selection.fromJSON(this.selectionBefore);\n };\n return PlaceHolder;\n}());\noop.implement(PlaceHolder.prototype, EventEmitter);\nexports.PlaceHolder = PlaceHolder;\n\n});\n\nace.define(\"ace/mouse/multi_select_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){var event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nfunction onMouseDown(e) {\n var ev = e.domEvent;\n var alt = ev.altKey;\n var shift = ev.shiftKey;\n var ctrl = ev.ctrlKey;\n var accel = e.getAccelKey();\n var button = e.getButton();\n if (ctrl && useragent.isMac)\n button = ev.button;\n if (e.editor.inMultiSelectMode && button == 2) {\n e.editor.textInput.onContextMenu(e.domEvent);\n return;\n }\n if (!ctrl && !alt && !accel) {\n if (button === 0 && e.editor.inMultiSelectMode)\n e.editor.exitMultiSelectMode();\n return;\n }\n if (button !== 0)\n return;\n var editor = e.editor;\n var selection = editor.selection;\n var isMultiSelect = editor.inMultiSelectMode;\n var pos = e.getDocumentPosition();\n var cursor = selection.getCursor();\n var inSelection = e.inSelection() || (selection.isEmpty() && isSamePoint(pos, cursor));\n var mouseX = e.x, mouseY = e.y;\n var onMouseSelection = function (e) {\n mouseX = e.clientX;\n mouseY = e.clientY;\n };\n var session = editor.session;\n var screenAnchor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var screenCursor = screenAnchor;\n var selectionMode;\n if (editor.$mouseHandler.$enableJumpToDef) {\n if (ctrl && alt || accel && alt)\n selectionMode = shift ? \"block\" : \"add\";\n else if (alt && editor.$blockSelectEnabled)\n selectionMode = \"block\";\n }\n else {\n if (accel && !alt) {\n selectionMode = \"add\";\n if (!isMultiSelect && shift)\n return;\n }\n else if (alt && editor.$blockSelectEnabled) {\n selectionMode = \"block\";\n }\n }\n if (selectionMode && useragent.isMac && ev.ctrlKey) {\n editor.$mouseHandler.cancelContextMenu();\n }\n if (selectionMode == \"add\") {\n if (!isMultiSelect && inSelection)\n return; // dragging\n if (!isMultiSelect) {\n var range = selection.toOrientedRange();\n editor.addSelectionMarker(range);\n }\n var oldRange = selection.rangeList.rangeAtPoint(pos);\n editor.inVirtualSelectionMode = true;\n if (shift) {\n oldRange = null;\n range = selection.ranges[0] || range;\n editor.removeSelectionMarker(range);\n }\n editor.once(\"mouseup\", function () {\n var tmpSel = selection.toOrientedRange();\n if (oldRange && tmpSel.isEmpty() && isSamePoint(oldRange.cursor, tmpSel.cursor))\n selection.substractPoint(tmpSel.cursor);\n else {\n if (shift) {\n selection.substractPoint(range.cursor);\n }\n else if (range) {\n editor.removeSelectionMarker(range);\n selection.addRange(range);\n }\n selection.addRange(tmpSel);\n }\n editor.inVirtualSelectionMode = false;\n });\n }\n else if (selectionMode == \"block\") {\n e.stop();\n editor.inVirtualSelectionMode = true;\n var initialRange;\n var rectSel = [];\n var blockSelect = function () {\n var newCursor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var cursor = session.screenToDocumentPosition(newCursor.row, newCursor.column, newCursor.offsetX);\n if (isSamePoint(screenCursor, newCursor) && isSamePoint(cursor, selection.lead))\n return;\n screenCursor = newCursor;\n editor.selection.moveToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n editor.removeSelectionMarkers(rectSel);\n rectSel = selection.rectangularRangeBlock(screenCursor, screenAnchor);\n if (editor.$mouseHandler.$clickSelection && rectSel.length == 1 && rectSel[0].isEmpty())\n rectSel[0] = editor.$mouseHandler.$clickSelection.clone();\n rectSel.forEach(editor.addSelectionMarker, editor);\n editor.updateSelectionMarkers();\n };\n if (isMultiSelect && !accel) {\n selection.toSingleRange();\n }\n else if (!isMultiSelect && accel) {\n initialRange = selection.toOrientedRange();\n editor.addSelectionMarker(initialRange);\n }\n if (shift)\n screenAnchor = session.documentToScreenPosition(selection.lead);\n else\n selection.moveToPosition(pos);\n screenCursor = { row: -1, column: -1 };\n var onMouseSelectionEnd = function (e) {\n blockSelect();\n clearInterval(timerId);\n editor.removeSelectionMarkers(rectSel);\n if (!rectSel.length)\n rectSel = [selection.toOrientedRange()];\n if (initialRange) {\n editor.removeSelectionMarker(initialRange);\n selection.toSingleRange(initialRange);\n }\n for (var i = 0; i < rectSel.length; i++)\n selection.addRange(rectSel[i]);\n editor.inVirtualSelectionMode = false;\n editor.$mouseHandler.$clickSelection = null;\n };\n var onSelectionInterval = blockSelect;\n event.capture(editor.container, onMouseSelection, onMouseSelectionEnd);\n var timerId = setInterval(function () { onSelectionInterval(); }, 20);\n return e.preventDefault();\n }\n}\nexports.onMouseDown = onMouseDown;\n\n});\n\nace.define(\"ace/commands/multi_select_commands\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\"], function(require, exports, module){// commands to enter multiselect mode\nexports.defaultCommands = [{\n name: \"addCursorAbove\",\n description: \"Add cursor above\",\n exec: function (editor) { editor.selectMoreLines(-1); },\n bindKey: { win: \"Ctrl-Alt-Up\", mac: \"Ctrl-Alt-Up\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorBelow\",\n description: \"Add cursor below\",\n exec: function (editor) { editor.selectMoreLines(1); },\n bindKey: { win: \"Ctrl-Alt-Down\", mac: \"Ctrl-Alt-Down\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorAboveSkipCurrent\",\n description: \"Add cursor above (skip current)\",\n exec: function (editor) { editor.selectMoreLines(-1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Up\", mac: \"Ctrl-Alt-Shift-Up\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorBelowSkipCurrent\",\n description: \"Add cursor below (skip current)\",\n exec: function (editor) { editor.selectMoreLines(1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Down\", mac: \"Ctrl-Alt-Shift-Down\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectMoreBefore\",\n description: \"Select more before\",\n exec: function (editor) { editor.selectMore(-1); },\n bindKey: { win: \"Ctrl-Alt-Left\", mac: \"Ctrl-Alt-Left\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectMoreAfter\",\n description: \"Select more after\",\n exec: function (editor) { editor.selectMore(1); },\n bindKey: { win: \"Ctrl-Alt-Right\", mac: \"Ctrl-Alt-Right\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectNextBefore\",\n description: \"Select next before\",\n exec: function (editor) { editor.selectMore(-1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Left\", mac: \"Ctrl-Alt-Shift-Left\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectNextAfter\",\n description: \"Select next after\",\n exec: function (editor) { editor.selectMore(1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Right\", mac: \"Ctrl-Alt-Shift-Right\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"toggleSplitSelectionIntoLines\",\n description: \"Split selection into lines\",\n exec: function (editor) {\n if (editor.multiSelect.rangeCount > 1)\n editor.multiSelect.joinSelections();\n else\n editor.multiSelect.splitIntoLines();\n },\n bindKey: { win: \"Ctrl-Alt-L\", mac: \"Ctrl-Alt-L\" },\n readOnly: true\n }, {\n name: \"splitSelectionIntoLines\",\n description: \"Split into lines\",\n exec: function (editor) { editor.multiSelect.splitIntoLines(); },\n readOnly: true\n }, {\n name: \"alignCursors\",\n description: \"Align cursors\",\n exec: function (editor) { editor.alignCursors(); },\n bindKey: { win: \"Ctrl-Alt-A\", mac: \"Ctrl-Alt-A\" },\n scrollIntoView: \"cursor\"\n }, {\n name: \"findAll\",\n description: \"Find all\",\n exec: function (editor) { editor.findAll(); },\n bindKey: { win: \"Ctrl-Alt-K\", mac: \"Ctrl-Alt-G\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }];\nexports.multiSelectCommands = [{\n name: \"singleSelection\",\n description: \"Single selection\",\n bindKey: \"esc\",\n exec: function (editor) { editor.exitMultiSelectMode(); },\n scrollIntoView: \"cursor\",\n readOnly: true,\n isAvailable: function (editor) { return editor && editor.inMultiSelectMode; }\n }];\nvar HashHandler = require(\"../keyboard/hash_handler\").HashHandler;\nexports.keyboardHandler = new HashHandler(exports.multiSelectCommands);\n\n});\n\nace.define(\"ace/multi_select\",[\"require\",\"exports\",\"module\",\"ace/range_list\",\"ace/range\",\"ace/selection\",\"ace/mouse/multi_select_handler\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/commands/multi_select_commands\",\"ace/search\",\"ace/edit_session\",\"ace/editor\",\"ace/config\"], function(require, exports, module){var RangeList = require(\"./range_list\").RangeList;\nvar Range = require(\"./range\").Range;\nvar Selection = require(\"./selection\").Selection;\nvar onMouseDown = require(\"./mouse/multi_select_handler\").onMouseDown;\nvar event = require(\"./lib/event\");\nvar lang = require(\"./lib/lang\");\nvar commands = require(\"./commands/multi_select_commands\");\nexports.commands = commands.defaultCommands.concat(commands.multiSelectCommands);\nvar Search = require(\"./search\").Search;\nvar search = new Search();\nfunction find(session, needle, dir) {\n search.$options.wrap = true;\n search.$options.needle = needle;\n search.$options.backwards = dir == -1;\n return search.find(session);\n}\nvar EditSession = require(\"./edit_session\").EditSession;\n(function () {\n this.getSelectionMarkers = function () {\n return this.$selectionMarkers;\n };\n}).call(EditSession.prototype);\n(function () {\n this.ranges = null;\n this.rangeList = null;\n this.addRange = function (range, $blockChangeEvents) {\n if (!range)\n return;\n if (!this.inMultiSelectMode && this.rangeCount === 0) {\n var oldRange = this.toOrientedRange();\n this.rangeList.add(oldRange);\n this.rangeList.add(range);\n if (this.rangeList.ranges.length != 2) {\n this.rangeList.removeAll();\n return $blockChangeEvents || this.fromOrientedRange(range);\n }\n this.rangeList.removeAll();\n this.rangeList.add(oldRange);\n this.$onAddRange(oldRange);\n }\n if (!range.cursor)\n range.cursor = range.end;\n var removed = this.rangeList.add(range);\n this.$onAddRange(range);\n if (removed.length)\n this.$onRemoveRange(removed);\n if (this.rangeCount > 1 && !this.inMultiSelectMode) {\n this._signal(\"multiSelect\");\n this.inMultiSelectMode = true;\n this.session.$undoSelect = false;\n this.rangeList.attach(this.session);\n }\n return $blockChangeEvents || this.fromOrientedRange(range);\n };\n this.toSingleRange = function (range) {\n range = range || this.ranges[0];\n var removed = this.rangeList.removeAll();\n if (removed.length)\n this.$onRemoveRange(removed);\n range && this.fromOrientedRange(range);\n };\n this.substractPoint = function (pos) {\n var removed = this.rangeList.substractPoint(pos);\n if (removed) {\n this.$onRemoveRange(removed);\n return removed[0];\n }\n };\n this.mergeOverlappingRanges = function () {\n var removed = this.rangeList.merge();\n if (removed.length)\n this.$onRemoveRange(removed);\n };\n this.$onAddRange = function (range) {\n this.rangeCount = this.rangeList.ranges.length;\n this.ranges.unshift(range);\n this._signal(\"addRange\", { range: range });\n };\n this.$onRemoveRange = function (removed) {\n this.rangeCount = this.rangeList.ranges.length;\n if (this.rangeCount == 1 && this.inMultiSelectMode) {\n var lastRange = this.rangeList.ranges.pop();\n removed.push(lastRange);\n this.rangeCount = 0;\n }\n for (var i = removed.length; i--;) {\n var index = this.ranges.indexOf(removed[i]);\n this.ranges.splice(index, 1);\n }\n this._signal(\"removeRange\", { ranges: removed });\n if (this.rangeCount === 0 && this.inMultiSelectMode) {\n this.inMultiSelectMode = false;\n this._signal(\"singleSelect\");\n this.session.$undoSelect = true;\n this.rangeList.detach(this.session);\n }\n lastRange = lastRange || this.ranges[0];\n if (lastRange && !lastRange.isEqual(this.getRange()))\n this.fromOrientedRange(lastRange);\n };\n this.$initRangeList = function () {\n if (this.rangeList)\n return;\n this.rangeList = new RangeList();\n this.ranges = [];\n this.rangeCount = 0;\n };\n this.getAllRanges = function () {\n return this.rangeCount ? this.rangeList.ranges.concat() : [this.getRange()];\n };\n this.splitIntoLines = function () {\n var ranges = this.ranges.length ? this.ranges : [this.getRange()];\n var newRanges = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n var row = range.start.row;\n var endRow = range.end.row;\n if (row === endRow) {\n newRanges.push(range.clone());\n }\n else {\n newRanges.push(new Range(row, range.start.column, row, this.session.getLine(row).length));\n while (++row < endRow)\n newRanges.push(this.getLineRange(row, true));\n newRanges.push(new Range(endRow, 0, endRow, range.end.column));\n }\n if (i == 0 && !this.isBackwards())\n newRanges = newRanges.reverse();\n }\n this.toSingleRange();\n for (var i = newRanges.length; i--;)\n this.addRange(newRanges[i]);\n };\n this.joinSelections = function () {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n };\n this.toggleBlockSelection = function () {\n if (this.rangeCount > 1) {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n }\n else {\n var cursor = this.session.documentToScreenPosition(this.cursor);\n var anchor = this.session.documentToScreenPosition(this.anchor);\n var rectSel = this.rectangularRangeBlock(cursor, anchor);\n rectSel.forEach(this.addRange, this);\n }\n };\n this.rectangularRangeBlock = function (screenCursor, screenAnchor, includeEmptyLines) {\n var rectSel = [];\n var xBackwards = screenCursor.column < screenAnchor.column;\n if (xBackwards) {\n var startColumn = screenCursor.column;\n var endColumn = screenAnchor.column;\n var startOffsetX = screenCursor.offsetX;\n var endOffsetX = screenAnchor.offsetX;\n }\n else {\n var startColumn = screenAnchor.column;\n var endColumn = screenCursor.column;\n var startOffsetX = screenAnchor.offsetX;\n var endOffsetX = screenCursor.offsetX;\n }\n var yBackwards = screenCursor.row < screenAnchor.row;\n if (yBackwards) {\n var startRow = screenCursor.row;\n var endRow = screenAnchor.row;\n }\n else {\n var startRow = screenAnchor.row;\n var endRow = screenCursor.row;\n }\n if (startColumn < 0)\n startColumn = 0;\n if (startRow < 0)\n startRow = 0;\n if (startRow == endRow)\n includeEmptyLines = true;\n var docEnd;\n for (var row = startRow; row <= endRow; row++) {\n var range = Range.fromPoints(this.session.screenToDocumentPosition(row, startColumn, startOffsetX), this.session.screenToDocumentPosition(row, endColumn, endOffsetX));\n if (range.isEmpty()) {\n if (docEnd && isSamePoint(range.end, docEnd))\n break;\n docEnd = range.end;\n }\n range.cursor = xBackwards ? range.start : range.end;\n rectSel.push(range);\n }\n if (yBackwards)\n rectSel.reverse();\n if (!includeEmptyLines) {\n var end = rectSel.length - 1;\n while (rectSel[end].isEmpty() && end > 0)\n end--;\n if (end > 0) {\n var start = 0;\n while (rectSel[start].isEmpty())\n start++;\n }\n for (var i = end; i >= start; i--) {\n if (rectSel[i].isEmpty())\n rectSel.splice(i, 1);\n }\n }\n return rectSel;\n };\n}).call(Selection.prototype);\nvar Editor = require(\"./editor\").Editor;\n(function () {\n this.updateSelectionMarkers = function () {\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.addSelectionMarker = function (orientedRange) {\n if (!orientedRange.cursor)\n orientedRange.cursor = orientedRange.end;\n var style = this.getSelectionStyle();\n orientedRange.marker = this.session.addMarker(orientedRange, \"ace_selection\", style);\n this.session.$selectionMarkers.push(orientedRange);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n return orientedRange;\n };\n this.removeSelectionMarker = function (range) {\n if (!range.marker)\n return;\n this.session.removeMarker(range.marker);\n var index = this.session.$selectionMarkers.indexOf(range);\n if (index != -1)\n this.session.$selectionMarkers.splice(index, 1);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n };\n this.removeSelectionMarkers = function (ranges) {\n var markerList = this.session.$selectionMarkers;\n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.marker)\n continue;\n this.session.removeMarker(range.marker);\n var index = markerList.indexOf(range);\n if (index != -1)\n markerList.splice(index, 1);\n }\n this.session.selectionMarkerCount = markerList.length;\n };\n this.$onAddRange = function (e) {\n this.addSelectionMarker(e.range);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onRemoveRange = function (e) {\n this.removeSelectionMarkers(e.ranges);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onMultiSelect = function (e) {\n if (this.inMultiSelectMode)\n return;\n this.inMultiSelectMode = true;\n this.setStyle(\"ace_multiselect\");\n this.keyBinding.addKeyboardHandler(commands.keyboardHandler);\n this.commands.setDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onSingleSelect = function (e) {\n if (this.session.multiSelect.inVirtualMode)\n return;\n this.inMultiSelectMode = false;\n this.unsetStyle(\"ace_multiselect\");\n this.keyBinding.removeKeyboardHandler(commands.keyboardHandler);\n this.commands.removeDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n this._emit(\"changeSelection\");\n };\n this.$onMultiSelectExec = function (e) {\n var command = e.command;\n var editor = e.editor;\n if (!editor.multiSelect)\n return;\n if (!command.multiSelectAction) {\n var result = command.exec(editor, e.args || {});\n editor.multiSelect.addRange(editor.multiSelect.toOrientedRange());\n editor.multiSelect.mergeOverlappingRanges();\n }\n else if (command.multiSelectAction == \"forEach\") {\n result = editor.forEachSelection(command, e.args);\n }\n else if (command.multiSelectAction == \"forEachLine\") {\n result = editor.forEachSelection(command, e.args, true);\n }\n else if (command.multiSelectAction == \"single\") {\n editor.exitMultiSelectMode();\n result = command.exec(editor, e.args || {});\n }\n else {\n result = command.multiSelectAction(editor, e.args || {});\n }\n return result;\n };\n this.forEachSelection = function (cmd, args, options) {\n if (this.inVirtualSelectionMode)\n return;\n var keepOrder = options && options.keepOrder;\n var $byLines = options == true || options && options.$byLines;\n var session = this.session;\n var selection = this.selection;\n var rangeList = selection.rangeList;\n var ranges = (keepOrder ? selection : rangeList).ranges;\n var result;\n if (!ranges.length)\n return cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n var reg = selection._eventRegistry;\n selection._eventRegistry = {};\n var tmpSel = new Selection(session);\n this.inVirtualSelectionMode = true;\n for (var i = ranges.length; i--;) {\n if ($byLines) {\n while (i > 0 && ranges[i].start.row == ranges[i - 1].end.row)\n i--;\n }\n tmpSel.fromOrientedRange(ranges[i]);\n tmpSel.index = i;\n this.selection = session.selection = tmpSel;\n var cmdResult = cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n if (!result && cmdResult !== undefined)\n result = cmdResult;\n tmpSel.toOrientedRange(ranges[i]);\n }\n tmpSel.detach();\n this.selection = session.selection = selection;\n this.inVirtualSelectionMode = false;\n selection._eventRegistry = reg;\n selection.mergeOverlappingRanges();\n if (selection.ranges[0])\n selection.fromOrientedRange(selection.ranges[0]);\n var anim = this.renderer.$scrollAnimation;\n this.onCursorChange();\n this.onSelectionChange();\n if (anim && anim.from == anim.to)\n this.renderer.animateScrolling(anim.from);\n return result;\n };\n this.exitMultiSelectMode = function () {\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode)\n return;\n this.multiSelect.toSingleRange();\n };\n this.getSelectedText = function () {\n var text = \"\";\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var ranges = this.multiSelect.rangeList.ranges;\n var buf = [];\n for (var i = 0; i < ranges.length; i++) {\n buf.push(this.session.getTextRange(ranges[i]));\n }\n var nl = this.session.getDocument().getNewLineCharacter();\n text = buf.join(nl);\n if (text.length == (buf.length - 1) * nl.length)\n text = \"\";\n }\n else if (!this.selection.isEmpty()) {\n text = this.session.getTextRange(this.getSelectionRange());\n }\n return text;\n };\n this.$checkMultiselectChange = function (e, anchor) {\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var range = this.multiSelect.ranges[0];\n if (this.multiSelect.isEmpty() && anchor == this.multiSelect.anchor)\n return;\n var pos = anchor == this.multiSelect.anchor\n ? range.cursor == range.start ? range.end : range.start\n : range.cursor;\n if (pos.row != anchor.row\n || this.session.$clipPositionToDocument(pos.row, pos.column).column != anchor.column)\n this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange());\n else\n this.multiSelect.mergeOverlappingRanges();\n }\n };\n this.findAll = function (needle, options, additive) {\n options = options || {};\n options.needle = needle || options.needle;\n if (options.needle == undefined) {\n var range = this.selection.isEmpty()\n ? this.selection.getWordRange()\n : this.selection.getRange();\n options.needle = this.session.getTextRange(range);\n }\n this.$search.set(options);\n var ranges = this.$search.findAll(this.session);\n if (!ranges.length)\n return 0;\n var selection = this.multiSelect;\n if (!additive)\n selection.toSingleRange(ranges[0]);\n for (var i = ranges.length; i--;)\n selection.addRange(ranges[i], true);\n if (range && selection.rangeList.rangeAtPoint(range.start))\n selection.addRange(range, true);\n return ranges.length;\n };\n this.selectMoreLines = function (dir, skip) {\n var range = this.selection.toOrientedRange();\n var isBackwards = range.cursor == range.end;\n var screenLead = this.session.documentToScreenPosition(range.cursor);\n if (this.selection.$desiredColumn)\n screenLead.column = this.selection.$desiredColumn;\n var lead = this.session.screenToDocumentPosition(screenLead.row + dir, screenLead.column);\n if (!range.isEmpty()) {\n var screenAnchor = this.session.documentToScreenPosition(isBackwards ? range.end : range.start);\n var anchor = this.session.screenToDocumentPosition(screenAnchor.row + dir, screenAnchor.column);\n }\n else {\n var anchor = lead;\n }\n if (isBackwards) {\n var newRange = Range.fromPoints(lead, anchor);\n newRange.cursor = newRange.start;\n }\n else {\n var newRange = Range.fromPoints(anchor, lead);\n newRange.cursor = newRange.end;\n }\n newRange.desiredColumn = screenLead.column;\n if (!this.selection.inMultiSelectMode) {\n this.selection.addRange(range);\n }\n else {\n if (skip)\n var toRemove = range.cursor;\n }\n this.selection.addRange(newRange);\n if (toRemove)\n this.selection.substractPoint(toRemove);\n };\n this.transposeSelections = function (dir) {\n var session = this.session;\n var sel = session.multiSelect;\n var all = sel.ranges;\n for (var i = all.length; i--;) {\n var range = all[i];\n if (range.isEmpty()) {\n var tmp = session.getWordRange(range.start.row, range.start.column);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n range.end.row = tmp.end.row;\n range.end.column = tmp.end.column;\n }\n }\n sel.mergeOverlappingRanges();\n var words = [];\n for (var i = all.length; i--;) {\n var range = all[i];\n words.unshift(session.getTextRange(range));\n }\n if (dir < 0)\n words.unshift(words.pop());\n else\n words.push(words.shift());\n for (var i = all.length; i--;) {\n var range = all[i];\n var tmp = range.clone();\n session.replace(range, words[i]);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n }\n sel.fromOrientedRange(sel.ranges[0]);\n };\n this.selectMore = function (dir, skip, stopAtFirst) {\n var session = this.session;\n var sel = session.multiSelect;\n var range = sel.toOrientedRange();\n if (range.isEmpty()) {\n range = session.getWordRange(range.start.row, range.start.column);\n range.cursor = dir == -1 ? range.start : range.end;\n this.multiSelect.addRange(range);\n if (stopAtFirst)\n return;\n }\n var needle = session.getTextRange(range);\n var newRange = find(session, needle, dir);\n if (newRange) {\n newRange.cursor = dir == -1 ? newRange.start : newRange.end;\n this.session.unfold(newRange);\n this.multiSelect.addRange(newRange);\n this.renderer.scrollCursorIntoView(null, 0.5);\n }\n if (skip)\n this.multiSelect.substractPoint(range.cursor);\n };\n this.alignCursors = function () {\n var session = this.session;\n var sel = session.multiSelect;\n var ranges = sel.ranges;\n var row = -1;\n var sameRowRanges = ranges.filter(function (r) {\n if (r.cursor.row == row)\n return true;\n row = r.cursor.row;\n });\n if (!ranges.length || sameRowRanges.length == ranges.length - 1) {\n var range = this.selection.getRange();\n var fr = range.start.row, lr = range.end.row;\n var guessRange = fr == lr;\n if (guessRange) {\n var max = this.session.getLength();\n var line;\n do {\n line = this.session.getLine(lr);\n } while (/[=:]/.test(line) && ++lr < max);\n do {\n line = this.session.getLine(fr);\n } while (/[=:]/.test(line) && --fr > 0);\n if (fr < 0)\n fr = 0;\n if (lr >= max)\n lr = max - 1;\n }\n var lines = this.session.removeFullLines(fr, lr);\n lines = this.$reAlignText(lines, guessRange);\n this.session.insert({ row: fr, column: 0 }, lines.join(\"\\n\") + \"\\n\");\n if (!guessRange) {\n range.start.column = 0;\n range.end.column = lines[lines.length - 1].length;\n }\n this.selection.setRange(range);\n }\n else {\n sameRowRanges.forEach(function (r) {\n sel.substractPoint(r.cursor);\n });\n var maxCol = 0;\n var minSpace = Infinity;\n var spaceOffsets = ranges.map(function (r) {\n var p = r.cursor;\n var line = session.getLine(p.row);\n var spaceOffset = line.substr(p.column).search(/\\S/g);\n if (spaceOffset == -1)\n spaceOffset = 0;\n if (p.column > maxCol)\n maxCol = p.column;\n if (spaceOffset < minSpace)\n minSpace = spaceOffset;\n return spaceOffset;\n });\n ranges.forEach(function (r, i) {\n var p = r.cursor;\n var l = maxCol - p.column;\n var d = spaceOffsets[i] - minSpace;\n if (l > d)\n session.insert(p, lang.stringRepeat(\" \", l - d));\n else\n session.remove(new Range(p.row, p.column, p.row, p.column - l + d));\n r.start.column = r.end.column = maxCol;\n r.start.row = r.end.row = p.row;\n r.cursor = r.end;\n });\n sel.fromOrientedRange(ranges[0]);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n }\n };\n this.$reAlignText = function (lines, forceLeft) {\n var isLeftAligned = true, isRightAligned = true;\n var startW, textW, endW;\n return lines.map(function (line) {\n var m = line.match(/(\\s*)(.*?)(\\s*)([=:].*)/);\n if (!m)\n return [line];\n if (startW == null) {\n startW = m[1].length;\n textW = m[2].length;\n endW = m[3].length;\n return m;\n }\n if (startW + textW + endW != m[1].length + m[2].length + m[3].length)\n isRightAligned = false;\n if (startW != m[1].length)\n isLeftAligned = false;\n if (startW > m[1].length)\n startW = m[1].length;\n if (textW < m[2].length)\n textW = m[2].length;\n if (endW > m[3].length)\n endW = m[3].length;\n return m;\n }).map(forceLeft ? alignLeft :\n isLeftAligned ? isRightAligned ? alignRight : alignLeft : unAlign);\n function spaces(n) {\n return lang.stringRepeat(\" \", n);\n }\n function alignLeft(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(textW - m[2].length + endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function alignRight(m) {\n return !m[2] ? m[0] : spaces(startW + textW - m[2].length) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function unAlign(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n };\n}).call(Editor.prototype);\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nexports.onSessionChange = function (e) {\n var session = e.session;\n if (session && !session.multiSelect) {\n session.$selectionMarkers = [];\n session.selection.$initRangeList();\n session.multiSelect = session.selection;\n }\n this.multiSelect = session && session.multiSelect;\n var oldSession = e.oldSession;\n if (oldSession) {\n oldSession.multiSelect.off(\"addRange\", this.$onAddRange);\n oldSession.multiSelect.off(\"removeRange\", this.$onRemoveRange);\n oldSession.multiSelect.off(\"multiSelect\", this.$onMultiSelect);\n oldSession.multiSelect.off(\"singleSelect\", this.$onSingleSelect);\n oldSession.multiSelect.lead.off(\"change\", this.$checkMultiselectChange);\n oldSession.multiSelect.anchor.off(\"change\", this.$checkMultiselectChange);\n }\n if (session) {\n session.multiSelect.on(\"addRange\", this.$onAddRange);\n session.multiSelect.on(\"removeRange\", this.$onRemoveRange);\n session.multiSelect.on(\"multiSelect\", this.$onMultiSelect);\n session.multiSelect.on(\"singleSelect\", this.$onSingleSelect);\n session.multiSelect.lead.on(\"change\", this.$checkMultiselectChange);\n session.multiSelect.anchor.on(\"change\", this.$checkMultiselectChange);\n }\n if (session && this.inMultiSelectMode != session.selection.inMultiSelectMode) {\n if (session.selection.inMultiSelectMode)\n this.$onMultiSelect();\n else\n this.$onSingleSelect();\n }\n};\nfunction MultiSelect(editor) {\n if (editor.$multiselectOnSessionChange)\n return;\n editor.$onAddRange = editor.$onAddRange.bind(editor);\n editor.$onRemoveRange = editor.$onRemoveRange.bind(editor);\n editor.$onMultiSelect = editor.$onMultiSelect.bind(editor);\n editor.$onSingleSelect = editor.$onSingleSelect.bind(editor);\n editor.$multiselectOnSessionChange = exports.onSessionChange.bind(editor);\n editor.$checkMultiselectChange = editor.$checkMultiselectChange.bind(editor);\n editor.$multiselectOnSessionChange(editor);\n editor.on(\"changeSession\", editor.$multiselectOnSessionChange);\n editor.on(\"mousedown\", onMouseDown);\n editor.commands.addCommands(commands.defaultCommands);\n addAltCursorListeners(editor);\n}\nfunction addAltCursorListeners(editor) {\n if (!editor.textInput)\n return;\n var el = editor.textInput.getElement();\n var altCursor = false;\n event.addListener(el, \"keydown\", function (e) {\n var altDown = e.keyCode == 18 && !(e.ctrlKey || e.shiftKey || e.metaKey);\n if (editor.$blockSelectEnabled && altDown) {\n if (!altCursor) {\n editor.renderer.setMouseCursor(\"crosshair\");\n altCursor = true;\n }\n }\n else if (altCursor) {\n reset();\n }\n }, editor);\n event.addListener(el, \"keyup\", reset, editor);\n event.addListener(el, \"blur\", reset, editor);\n function reset(e) {\n if (altCursor) {\n editor.renderer.setMouseCursor(\"\");\n altCursor = false;\n }\n }\n}\nexports.MultiSelect = MultiSelect;\nrequire(\"./config\").defineOptions(Editor.prototype, \"editor\", {\n enableMultiselect: {\n set: function (val) {\n MultiSelect(this);\n if (val) {\n this.on(\"mousedown\", onMouseDown);\n }\n else {\n this.off(\"mousedown\", onMouseDown);\n }\n },\n value: true\n },\n enableBlockSelect: {\n set: function (val) {\n this.$blockSelectEnabled = val;\n },\n value: true\n }\n});\n\n});\n\nace.define(\"ace/mode/folding/fold_mode\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../../range\").Range;\nvar FoldMode = exports.FoldMode = function () { };\n(function () {\n this.foldingStartMarker = null;\n this.foldingStopMarker = null;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.foldingStartMarker.test(line))\n return \"start\";\n if (foldStyle == \"markbeginend\"\n && this.foldingStopMarker\n && this.foldingStopMarker.test(line))\n return \"end\";\n return \"\";\n };\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n return null;\n };\n this.indentationBlock = function (session, row, column) {\n var re = /\\S/;\n var line = session.getLine(row);\n var startLevel = line.search(re);\n if (startLevel == -1)\n return;\n var startColumn = column || line.length;\n var maxRow = session.getLength();\n var startRow = row;\n var endRow = row;\n while (++row < maxRow) {\n var level = session.getLine(row).search(re);\n if (level == -1)\n continue;\n if (level <= startLevel) {\n var token = session.getTokenAt(row, 0);\n if (!token || token.type !== \"string\")\n break;\n }\n endRow = row;\n }\n if (endRow > startRow) {\n var endColumn = session.getLine(endRow).length;\n return new Range(startRow, startColumn, endRow, endColumn);\n }\n };\n this.openingBracketBlock = function (session, bracket, row, column, typeRe) {\n var start = { row: row, column: column + 1 };\n var end = session.$findClosingBracket(bracket, start, typeRe);\n if (!end)\n return;\n var fw = session.foldWidgets[end.row];\n if (fw == null)\n fw = session.getFoldWidget(end.row);\n if (fw == \"start\" && end.row > start.row) {\n end.row--;\n end.column = session.getLine(end.row).length;\n }\n return Range.fromPoints(start, end);\n };\n this.closingBracketBlock = function (session, bracket, row, column, typeRe) {\n var end = { row: row, column: column };\n var start = session.$findOpeningBracket(bracket, end);\n if (!start)\n return;\n start.column++;\n end.column--;\n return Range.fromPoints(start, end);\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/ext/error_marker\",[\"require\",\"exports\",\"module\",\"ace/line_widgets\",\"ace/lib/dom\",\"ace/range\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar LineWidgets = require(\"../line_widgets\").LineWidgets;\nvar dom = require(\"../lib/dom\");\nvar Range = require(\"../range\").Range;\nvar nls = require(\"../config\").nls;\nfunction binarySearch(array, needle, comparator) {\n var first = 0;\n var last = array.length - 1;\n while (first <= last) {\n var mid = (first + last) >> 1;\n var c = comparator(needle, array[mid]);\n if (c > 0)\n first = mid + 1;\n else if (c < 0)\n last = mid - 1;\n else\n return mid;\n }\n return -(first + 1);\n}\nfunction findAnnotations(session, row, dir) {\n var annotations = session.getAnnotations().sort(Range.comparePoints);\n if (!annotations.length)\n return;\n var i = binarySearch(annotations, { row: row, column: -1 }, Range.comparePoints);\n if (i < 0)\n i = -i - 1;\n if (i >= annotations.length)\n i = dir > 0 ? 0 : annotations.length - 1;\n else if (i === 0 && dir < 0)\n i = annotations.length - 1;\n var annotation = annotations[i];\n if (!annotation || !dir)\n return;\n if (annotation.row === row) {\n do {\n annotation = annotations[i += dir];\n } while (annotation && annotation.row === row);\n if (!annotation)\n return annotations.slice();\n }\n var matched = [];\n row = annotation.row;\n do {\n matched[dir < 0 ? \"unshift\" : \"push\"](annotation);\n annotation = annotations[i += dir];\n } while (annotation && annotation.row == row);\n return matched.length && matched;\n}\nexports.showErrorMarker = function (editor, dir) {\n var session = editor.session;\n if (!session.widgetManager) {\n session.widgetManager = new LineWidgets(session);\n session.widgetManager.attach(editor);\n }\n var pos = editor.getCursorPosition();\n var row = pos.row;\n var oldWidget = session.widgetManager.getWidgetsAtRow(row).filter(function (w) {\n return w.type == \"errorMarker\";\n })[0];\n if (oldWidget) {\n oldWidget.destroy();\n }\n else {\n row -= dir;\n }\n var annotations = findAnnotations(session, row, dir);\n var gutterAnno;\n if (annotations) {\n var annotation = annotations[0];\n pos.column = (annotation.pos && typeof annotation.column != \"number\"\n ? annotation.pos.sc\n : annotation.column) || 0;\n pos.row = annotation.row;\n gutterAnno = editor.renderer.$gutterLayer.$annotations[pos.row];\n }\n else if (oldWidget) {\n return;\n }\n else {\n gutterAnno = {\n text: [nls(\"Looks good!\")],\n className: \"ace_ok\"\n };\n }\n editor.session.unfold(pos.row);\n editor.selection.moveToPosition(pos);\n var w = {\n row: pos.row,\n fixedWidth: true,\n coverGutter: true,\n el: dom.createElement(\"div\"),\n type: \"errorMarker\"\n };\n var el = w.el.appendChild(dom.createElement(\"div\"));\n var arrow = w.el.appendChild(dom.createElement(\"div\"));\n arrow.className = \"error_widget_arrow \" + gutterAnno.className;\n var left = editor.renderer.$cursorLayer\n .getPixelPosition(pos).left;\n arrow.style.left = left + editor.renderer.gutterWidth - 5 + \"px\";\n w.el.className = \"error_widget_wrapper\";\n el.className = \"error_widget \" + gutterAnno.className;\n el.innerHTML = gutterAnno.text.join(\"
    \");\n el.appendChild(dom.createElement(\"div\"));\n var kb = function (_, hashId, keyString) {\n if (hashId === 0 && (keyString === \"esc\" || keyString === \"return\")) {\n w.destroy();\n return { command: \"null\" };\n }\n };\n w.destroy = function () {\n if (editor.$mouseHandler.isMousePressed)\n return;\n editor.keyBinding.removeKeyboardHandler(kb);\n session.widgetManager.removeLineWidget(w);\n editor.off(\"changeSelection\", w.destroy);\n editor.off(\"changeSession\", w.destroy);\n editor.off(\"mouseup\", w.destroy);\n editor.off(\"change\", w.destroy);\n };\n editor.keyBinding.addKeyboardHandler(kb);\n editor.on(\"changeSelection\", w.destroy);\n editor.on(\"changeSession\", w.destroy);\n editor.on(\"mouseup\", w.destroy);\n editor.on(\"change\", w.destroy);\n editor.session.widgetManager.addLineWidget(w);\n w.el.onmousedown = editor.focus.bind(editor);\n editor.renderer.scrollCursorIntoView(null, 0.5, { bottom: w.el.offsetHeight });\n};\ndom.importCssString(\"\\n .error_widget_wrapper {\\n background: inherit;\\n color: inherit;\\n border:none\\n }\\n .error_widget {\\n border-top: solid 2px;\\n border-bottom: solid 2px;\\n margin: 5px 0;\\n padding: 10px 40px;\\n white-space: pre-wrap;\\n }\\n .error_widget.ace_error, .error_widget_arrow.ace_error{\\n border-color: #ff5a5a\\n }\\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\\n border-color: #F1D817\\n }\\n .error_widget.ace_info, .error_widget_arrow.ace_info{\\n border-color: #5a5a5a\\n }\\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\\n border-color: #5aaa5a\\n }\\n .error_widget_arrow {\\n position: absolute;\\n border: solid 5px;\\n border-top-color: transparent!important;\\n border-right-color: transparent!important;\\n border-left-color: transparent!important;\\n top: -5px;\\n }\\n\", \"error_marker.css\", false);\n\n});\n\nace.define(\"ace/ace\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/range\",\"ace/editor\",\"ace/edit_session\",\"ace/undomanager\",\"ace/virtual_renderer\",\"ace/worker/worker_client\",\"ace/keyboard/hash_handler\",\"ace/placeholder\",\"ace/multi_select\",\"ace/mode/folding/fold_mode\",\"ace/theme/textmate\",\"ace/ext/error_marker\",\"ace/config\",\"ace/loader_build\"], function(require, exports, module){/**\n * The main class required to set up an Ace instance in the browser.\n *\n * @class Ace\n **/\n\"use strict\";\nrequire(\"./loader_build\")(exports)\nvar dom = require(\"./lib/dom\");\nvar Range = require(\"./range\").Range;\nvar Editor = require(\"./editor\").Editor;\nvar EditSession = require(\"./edit_session\").EditSession;\nvar UndoManager = require(\"./undomanager\").UndoManager;\nvar Renderer = require(\"./virtual_renderer\").VirtualRenderer;\nrequire(\"./worker/worker_client\");\nrequire(\"./keyboard/hash_handler\");\nrequire(\"./placeholder\");\nrequire(\"./multi_select\");\nrequire(\"./mode/folding/fold_mode\");\nrequire(\"./theme/textmate\");\nrequire(\"./ext/error_marker\");\nexports.config = require(\"./config\");\nexports.edit = function (el, options) {\n if (typeof el == \"string\") {\n var _id = el;\n el = document.getElementById(_id);\n if (!el)\n throw new Error(\"ace.edit can't find div #\" + _id);\n }\n if (el && el.env && el.env.editor instanceof Editor)\n return el.env.editor;\n var value = \"\";\n if (el && /input|textarea/i.test(el.tagName)) {\n var oldNode = el;\n value = oldNode.value;\n el = dom.createElement(\"pre\");\n oldNode.parentNode.replaceChild(el, oldNode);\n }\n else if (el) {\n value = el.textContent;\n el.innerHTML = \"\";\n }\n var doc = exports.createEditSession(value);\n var editor = new Editor(new Renderer(el), doc, options);\n var env = {\n document: doc,\n editor: editor,\n onResize: editor.resize.bind(editor, null)\n };\n if (oldNode)\n env.textarea = oldNode;\n editor.on(\"destroy\", function () {\n env.editor.container.env = null; // prevent memory leak on old ie\n });\n editor.container.env = editor.env = env;\n return editor;\n};\nexports.createEditSession = function (text, mode) {\n var doc = new EditSession(text, mode);\n doc.setUndoManager(new UndoManager());\n return doc;\n};\nexports.Range = Range;\nexports.Editor = Editor;\nexports.EditSession = EditSession;\nexports.UndoManager = UndoManager;\nexports.VirtualRenderer = Renderer;\nexports.version = exports.config.version;\n\n}); (function() {\n ace.require([\"ace/ace\"], function(a) {\n if (a) {\n a.config.init(true);\n a.define = ace.define;\n }\n var global = (function () {\n return this;\n })();\n if (!global && typeof window != \"undefined\") global = window; // can happen in strict mode\n if (!global && typeof self != \"undefined\") global = self; // can happen in webworker\n \n if (!global.ace)\n global.ace = a;\n for (var key in a) if (a.hasOwnProperty(key))\n global.ace[key] = a[key];\n global.ace[\"default\"] = global.ace;\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = global.ace;\n }\n });\n })();\n ","ace.define(\"ace/ext/beautify\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"], function(require, exports, module){// [WIP]\n\"use strict\";\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nfunction is(token, type) {\n return token.type.lastIndexOf(type + \".xml\") > -1;\n}\nexports.singletonTags = [\"area\", \"base\", \"br\", \"col\", \"command\", \"embed\", \"hr\", \"html\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"param\", \"source\", \"track\", \"wbr\"];\nexports.blockTags = [\"article\", \"aside\", \"blockquote\", \"body\", \"div\", \"dl\", \"fieldset\", \"footer\", \"form\", \"head\", \"header\", \"html\", \"nav\", \"ol\", \"p\", \"script\", \"section\", \"style\", \"table\", \"tbody\", \"tfoot\", \"thead\", \"ul\"];\nexports.formatOptions = {\n lineBreaksAfterCommasInCurlyBlock: true\n};\nexports.beautify = function (session) {\n var iterator = new TokenIterator(session, 0, 0);\n var token = iterator.getCurrentToken();\n var tabString = session.getTabString();\n var singletonTags = exports.singletonTags;\n var blockTags = exports.blockTags;\n var formatOptions = exports.formatOptions || {};\n var nextToken;\n var breakBefore = false;\n var spaceBefore = false;\n var spaceAfter = false;\n var code = \"\";\n var value = \"\";\n var tagName = \"\";\n var depth = 0;\n var lastDepth = 0;\n var lastIndent = 0;\n var indent = 0;\n var unindent = 0;\n var roundDepth = 0;\n var curlyDepth = 0;\n var row;\n var curRow = 0;\n var rowsToAdd = 0;\n var rowTokens = [];\n var abort = false;\n var i;\n var indentNextLine = false;\n var inTag = false;\n var inCSS = false;\n var inBlock = false;\n var levels = { 0: 0 };\n var parents = [];\n var caseBody = false;\n var trimNext = function () {\n if (nextToken && nextToken.value && nextToken.type !== 'string.regexp')\n nextToken.value = nextToken.value.replace(/^\\s*/, \"\");\n };\n var trimLine = function () {\n var end = code.length - 1;\n while (true) {\n if (end == 0)\n break;\n if (code[end] !== \" \")\n break;\n end = end - 1;\n }\n code = code.slice(0, end + 1);\n };\n var trimCode = function () {\n code = code.trimRight();\n breakBefore = false;\n };\n while (token !== null) {\n curRow = iterator.getCurrentTokenRow();\n rowTokens = iterator.$rowTokens;\n nextToken = iterator.stepForward();\n if (typeof token !== \"undefined\") {\n value = token.value;\n unindent = 0;\n inCSS = (tagName === \"style\" || session.$modeId === \"ace/mode/css\");\n if (is(token, \"tag-open\")) {\n inTag = true;\n if (nextToken)\n inBlock = (blockTags.indexOf(nextToken.value) !== -1);\n if (value === \" 0; rowsToAdd--)\n code += \"\\n\";\n breakBefore = true;\n if (!is(token, \"comment\") && !token.type.match(/^(comment|string)$/))\n value = value.trimLeft();\n }\n if (value) {\n if (token.type === \"keyword\" && value.match(/^(if|else|elseif|for|foreach|while|switch)$/)) {\n parents[depth] = value;\n trimNext();\n spaceAfter = true;\n if (value.match(/^(else|elseif)$/)) {\n if (code.match(/\\}[\\s]*$/)) {\n trimCode();\n spaceBefore = true;\n }\n }\n }\n else if (token.type === \"paren.lparen\") {\n trimNext();\n if (value.substr(-1) === \"{\") {\n spaceAfter = true;\n indentNextLine = false;\n if (!inTag)\n rowsToAdd = 1;\n }\n if (value.substr(0, 1) === \"{\") {\n spaceBefore = true;\n if (code.substr(-1) !== '[' && code.trimRight().substr(-1) === '[') {\n trimCode();\n spaceBefore = false;\n }\n else if (code.trimRight().substr(-1) === ')') {\n trimCode();\n }\n else {\n trimLine();\n }\n }\n }\n else if (token.type === \"paren.rparen\") {\n unindent = 1;\n if (value.substr(0, 1) === \"}\") {\n if (parents[depth - 1] === 'case')\n unindent++;\n if (code.trimRight().substr(-1) === '{') {\n trimCode();\n }\n else {\n spaceBefore = true;\n if (inCSS)\n rowsToAdd += 2;\n }\n }\n if (value.substr(0, 1) === \"]\") {\n if (code.substr(-1) !== '}' && code.trimRight().substr(-1) === '}') {\n spaceBefore = false;\n indent++;\n trimCode();\n }\n }\n if (value.substr(0, 1) === \")\") {\n if (code.substr(-1) !== '(' && code.trimRight().substr(-1) === '(') {\n spaceBefore = false;\n indent++;\n trimCode();\n }\n }\n trimLine();\n }\n else if ((token.type === \"keyword.operator\" || token.type === \"keyword\") && value.match(/^(=|==|===|!=|!==|&&|\\|\\||and|or|xor|\\+=|.=|>|>=|<|<=|=>)$/)) {\n trimCode();\n trimNext();\n spaceBefore = true;\n spaceAfter = true;\n }\n else if (token.type === \"punctuation.operator\" && value === ';') {\n trimCode();\n trimNext();\n spaceAfter = true;\n if (inCSS)\n rowsToAdd++;\n }\n else if (token.type === \"punctuation.operator\" && value.match(/^(:|,)$/)) {\n trimCode();\n trimNext();\n if (value.match(/^(,)$/) && curlyDepth > 0 && roundDepth === 0 && formatOptions.lineBreaksAfterCommasInCurlyBlock) {\n rowsToAdd++;\n }\n else {\n spaceAfter = true;\n breakBefore = false;\n }\n }\n else if (token.type === \"support.php_tag\" && value === \"?>\" && !breakBefore) {\n trimCode();\n spaceBefore = true;\n }\n else if (is(token, \"attribute-name\") && code.substr(-1).match(/^\\s$/)) {\n spaceBefore = true;\n }\n else if (is(token, \"attribute-equals\")) {\n trimLine();\n trimNext();\n }\n else if (is(token, \"tag-close\")) {\n trimLine();\n if (value === \"/>\")\n spaceBefore = true;\n }\n else if (token.type === \"keyword\" && value.match(/^(case|default)$/)) {\n if (caseBody)\n unindent = 1;\n }\n if (breakBefore && !(token.type.match(/^(comment)$/) && !value.substr(0, 1).match(/^[/#]$/)) && !(token.type.match(/^(string)$/) && !value.substr(0, 1).match(/^['\"@]$/))) {\n indent = lastIndent;\n if (depth > lastDepth) {\n indent++;\n for (i = depth; i > lastDepth; i--)\n levels[i] = indent;\n }\n else if (depth < lastDepth)\n indent = levels[depth];\n lastDepth = depth;\n lastIndent = indent;\n if (unindent)\n indent -= unindent;\n if (indentNextLine && !roundDepth) {\n indent++;\n indentNextLine = false;\n }\n for (i = 0; i < indent; i++)\n code += tabString;\n }\n if (token.type === \"keyword\" && value.match(/^(case|default)$/)) {\n if (caseBody === false) {\n parents[depth] = value;\n depth++;\n caseBody = true;\n }\n }\n else if (token.type === \"keyword\" && value.match(/^(break)$/)) {\n if (parents[depth - 1] && parents[depth - 1].match(/^(case|default)$/)) {\n depth--;\n caseBody = false;\n }\n }\n if (token.type === \"paren.lparen\") {\n roundDepth += (value.match(/\\(/g) || []).length;\n curlyDepth += (value.match(/\\{/g) || []).length;\n depth += value.length;\n }\n if (token.type === \"keyword\" && value.match(/^(if|else|elseif|for|while)$/)) {\n indentNextLine = true;\n roundDepth = 0;\n }\n else if (!roundDepth && value.trim() && token.type !== \"comment\")\n indentNextLine = false;\n if (token.type === \"paren.rparen\") {\n roundDepth -= (value.match(/\\)/g) || []).length;\n curlyDepth -= (value.match(/\\}/g) || []).length;\n for (i = 0; i < value.length; i++) {\n depth--;\n if (value.substr(i, 1) === '}' && parents[depth] === 'case') {\n depth--;\n }\n }\n }\n if (token.type == \"text\")\n value = value.replace(/\\s+$/, \" \");\n if (spaceBefore && !breakBefore) {\n trimLine();\n if (code.substr(-1) !== \"\\n\")\n code += \" \";\n }\n code += value;\n if (spaceAfter)\n code += \" \";\n breakBefore = false;\n spaceBefore = false;\n spaceAfter = false;\n if ((is(token, \"tag-close\") && (inBlock || blockTags.indexOf(tagName) !== -1)) || (is(token, \"doctype\") && value === \">\")) {\n if (inBlock && nextToken && nextToken.value === \"\") {\n depth--;\n }\n }\n if (is(token, \"tag-name\")) {\n tagName = value;\n }\n row = curRow;\n }\n }\n token = nextToken;\n }\n code = code.trim();\n session.doc.setValue(code);\n};\nexports.commands = [{\n name: \"beautify\",\n description: \"Format selection (Beautify)\",\n exec: function (editor) {\n exports.beautify(editor.session);\n },\n bindKey: \"Ctrl-Shift-B\"\n }];\n\n}); (function() {\n ace.require([\"ace/ext/beautify\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/ext/searchbox-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \"\\n\\n/* ------------------------------------------------------------------------------------------\\n * Editor Search Form\\n * --------------------------------------------------------------------------------------- */\\n.ace_search {\\n background-color: #ddd;\\n color: #666;\\n border: 1px solid #cbcbcb;\\n border-top: 0 none;\\n overflow: hidden;\\n margin: 0;\\n padding: 4px 6px 0 4px;\\n position: absolute;\\n top: 0;\\n z-index: 99;\\n white-space: normal;\\n}\\n.ace_search.left {\\n border-left: 0 none;\\n border-radius: 0px 0px 5px 0px;\\n left: 0;\\n}\\n.ace_search.right {\\n border-radius: 0px 0px 0px 5px;\\n border-right: 0 none;\\n right: 0;\\n}\\n\\n.ace_search_form, .ace_replace_form {\\n margin: 0 20px 4px 0;\\n overflow: hidden;\\n line-height: 1.9;\\n}\\n.ace_replace_form {\\n margin-right: 0;\\n}\\n.ace_search_form.ace_nomatch {\\n outline: 1px solid red;\\n}\\n\\n.ace_search_field {\\n border-radius: 3px 0 0 3px;\\n background-color: white;\\n color: black;\\n border: 1px solid #cbcbcb;\\n border-right: 0 none;\\n outline: 0;\\n padding: 0;\\n font-size: inherit;\\n margin: 0;\\n line-height: inherit;\\n padding: 0 6px;\\n min-width: 17em;\\n vertical-align: top;\\n min-height: 1.8em;\\n box-sizing: content-box;\\n}\\n.ace_searchbtn {\\n border: 1px solid #cbcbcb;\\n line-height: inherit;\\n display: inline-block;\\n padding: 0 6px;\\n background: #fff;\\n border-right: 0 none;\\n border-left: 1px solid #dcdcdc;\\n cursor: pointer;\\n margin: 0;\\n position: relative;\\n color: #666;\\n}\\n.ace_searchbtn:last-child {\\n border-radius: 0 3px 3px 0;\\n border-right: 1px solid #cbcbcb;\\n}\\n.ace_searchbtn:disabled {\\n background: none;\\n cursor: default;\\n}\\n.ace_searchbtn:hover {\\n background-color: #eef1f6;\\n}\\n.ace_searchbtn.prev, .ace_searchbtn.next {\\n padding: 0px 0.7em\\n}\\n.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\\n content: \\\"\\\";\\n border: solid 2px #888;\\n width: 0.5em;\\n height: 0.5em;\\n border-width: 2px 0 0 2px;\\n display:inline-block;\\n transform: rotate(-45deg);\\n}\\n.ace_searchbtn.next:after {\\n border-width: 0 2px 2px 0 ;\\n}\\n.ace_searchbtn_close {\\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\\n border-radius: 50%;\\n border: 0 none;\\n color: #656565;\\n cursor: pointer;\\n font: 16px/16px Arial;\\n padding: 0;\\n height: 14px;\\n width: 14px;\\n top: 9px;\\n right: 7px;\\n position: absolute;\\n}\\n.ace_searchbtn_close:hover {\\n background-color: #656565;\\n background-position: 50% 100%;\\n color: white;\\n}\\n\\n.ace_button {\\n margin-left: 2px;\\n cursor: pointer;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -o-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n overflow: hidden;\\n opacity: 0.7;\\n border: 1px solid rgba(100,100,100,0.23);\\n padding: 1px;\\n box-sizing: border-box!important;\\n color: black;\\n}\\n\\n.ace_button:hover {\\n background-color: #eee;\\n opacity:1;\\n}\\n.ace_button:active {\\n background-color: #ddd;\\n}\\n\\n.ace_button.checked {\\n border-color: #3399ff;\\n opacity:1;\\n}\\n\\n.ace_search_options{\\n margin-bottom: 3px;\\n text-align: right;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -o-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n clear: both;\\n}\\n\\n.ace_search_counter {\\n float: left;\\n font-family: arial;\\n padding: 0 8px;\\n}\";\n\n});\n\nace.define(\"ace/ext/searchbox\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/event\",\"ace/ext/searchbox-css\",\"ace/keyboard/hash_handler\",\"ace/lib/keys\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar event = require(\"../lib/event\");\nvar searchboxCss = require(\"./searchbox-css\");\nvar HashHandler = require(\"../keyboard/hash_handler\").HashHandler;\nvar keyUtil = require(\"../lib/keys\");\nvar nls = require(\"../config\").nls;\nvar MAX_COUNT = 999;\ndom.importCssString(searchboxCss, \"ace_searchbox\", false);\nvar SearchBox = /** @class */ (function () {\n function SearchBox(editor, range, showReplaceForm) {\n var div = dom.createElement(\"div\");\n dom.buildDom([\"div\", { class: \"ace_search right\" },\n [\"span\", { action: \"hide\", class: \"ace_searchbtn_close\" }],\n [\"div\", { class: \"ace_search_form\" },\n [\"input\", { class: \"ace_search_field\", placeholder: nls(\"Search for\"), spellcheck: \"false\" }],\n [\"span\", { action: \"findPrev\", class: \"ace_searchbtn prev\" }, \"\\u200b\"],\n [\"span\", { action: \"findNext\", class: \"ace_searchbtn next\" }, \"\\u200b\"],\n [\"span\", { action: \"findAll\", class: \"ace_searchbtn\", title: \"Alt-Enter\" }, nls(\"All\")]\n ],\n [\"div\", { class: \"ace_replace_form\" },\n [\"input\", { class: \"ace_search_field\", placeholder: nls(\"Replace with\"), spellcheck: \"false\" }],\n [\"span\", { action: \"replaceAndFindNext\", class: \"ace_searchbtn\" }, nls(\"Replace\")],\n [\"span\", { action: \"replaceAll\", class: \"ace_searchbtn\" }, nls(\"All\")]\n ],\n [\"div\", { class: \"ace_search_options\" },\n [\"span\", { action: \"toggleReplace\", class: \"ace_button\", title: nls(\"Toggle Replace mode\"),\n style: \"float:left;margin-top:-2px;padding:0 5px;\" }, \"+\"],\n [\"span\", { class: \"ace_search_counter\" }],\n [\"span\", { action: \"toggleRegexpMode\", class: \"ace_button\", title: nls(\"RegExp Search\") }, \".*\"],\n [\"span\", { action: \"toggleCaseSensitive\", class: \"ace_button\", title: nls(\"CaseSensitive Search\") }, \"Aa\"],\n [\"span\", { action: \"toggleWholeWords\", class: \"ace_button\", title: nls(\"Whole Word Search\") }, \"\\\\b\"],\n [\"span\", { action: \"searchInSelection\", class: \"ace_button\", title: nls(\"Search In Selection\") }, \"S\"]\n ]\n ], div);\n this.element = div.firstChild;\n this.setSession = this.setSession.bind(this);\n this.$init();\n this.setEditor(editor);\n dom.importCssString(searchboxCss, \"ace_searchbox\", editor.container);\n }\n SearchBox.prototype.setEditor = function (editor) {\n editor.searchBox = this;\n editor.renderer.scroller.appendChild(this.element);\n this.editor = editor;\n };\n SearchBox.prototype.setSession = function (e) {\n this.searchRange = null;\n this.$syncOptions(true);\n };\n SearchBox.prototype.$initElements = function (sb) {\n this.searchBox = sb.querySelector(\".ace_search_form\");\n this.replaceBox = sb.querySelector(\".ace_replace_form\");\n this.searchOption = sb.querySelector(\"[action=searchInSelection]\");\n this.replaceOption = sb.querySelector(\"[action=toggleReplace]\");\n this.regExpOption = sb.querySelector(\"[action=toggleRegexpMode]\");\n this.caseSensitiveOption = sb.querySelector(\"[action=toggleCaseSensitive]\");\n this.wholeWordOption = sb.querySelector(\"[action=toggleWholeWords]\");\n this.searchInput = this.searchBox.querySelector(\".ace_search_field\");\n this.replaceInput = this.replaceBox.querySelector(\".ace_search_field\");\n this.searchCounter = sb.querySelector(\".ace_search_counter\");\n };\n SearchBox.prototype.$init = function () {\n var sb = this.element;\n this.$initElements(sb);\n var _this = this;\n event.addListener(sb, \"mousedown\", function (e) {\n setTimeout(function () {\n _this.activeInput.focus();\n }, 0);\n event.stopPropagation(e);\n });\n event.addListener(sb, \"click\", function (e) {\n var t = e.target || e.srcElement;\n var action = t.getAttribute(\"action\");\n if (action && _this[action])\n _this[action]();\n else if (_this.$searchBarKb.commands[action])\n _this.$searchBarKb.commands[action].exec(_this);\n event.stopPropagation(e);\n });\n event.addCommandKeyListener(sb, function (e, hashId, keyCode) {\n var keyString = keyUtil.keyCodeToString(keyCode);\n var command = _this.$searchBarKb.findKeyCommand(hashId, keyString);\n if (command && command.exec) {\n command.exec(_this);\n event.stopEvent(e);\n }\n });\n this.$onChange = lang.delayedCall(function () {\n _this.find(false, false);\n });\n event.addListener(this.searchInput, \"input\", function () {\n _this.$onChange.schedule(20);\n });\n event.addListener(this.searchInput, \"focus\", function () {\n _this.activeInput = _this.searchInput;\n _this.searchInput.value && _this.highlight();\n });\n event.addListener(this.replaceInput, \"focus\", function () {\n _this.activeInput = _this.replaceInput;\n _this.searchInput.value && _this.highlight();\n });\n };\n SearchBox.prototype.setSearchRange = function (range) {\n this.searchRange = range;\n if (range) {\n this.searchRangeMarker = this.editor.session.addMarker(range, \"ace_active-line\");\n }\n else if (this.searchRangeMarker) {\n this.editor.session.removeMarker(this.searchRangeMarker);\n this.searchRangeMarker = null;\n }\n };\n SearchBox.prototype.$syncOptions = function (preventScroll) {\n dom.setCssClass(this.replaceOption, \"checked\", this.searchRange);\n dom.setCssClass(this.searchOption, \"checked\", this.searchOption.checked);\n this.replaceOption.textContent = this.replaceOption.checked ? \"-\" : \"+\";\n dom.setCssClass(this.regExpOption, \"checked\", this.regExpOption.checked);\n dom.setCssClass(this.wholeWordOption, \"checked\", this.wholeWordOption.checked);\n dom.setCssClass(this.caseSensitiveOption, \"checked\", this.caseSensitiveOption.checked);\n var readOnly = this.editor.getReadOnly();\n this.replaceOption.style.display = readOnly ? \"none\" : \"\";\n this.replaceBox.style.display = this.replaceOption.checked && !readOnly ? \"\" : \"none\";\n this.find(false, false, preventScroll);\n };\n SearchBox.prototype.highlight = function (re) {\n this.editor.session.highlight(re || this.editor.$search.$options.re);\n this.editor.renderer.updateBackMarkers();\n };\n SearchBox.prototype.find = function (skipCurrent, backwards, preventScroll) {\n var range = this.editor.find(this.searchInput.value, {\n skipCurrent: skipCurrent,\n backwards: backwards,\n wrap: true,\n regExp: this.regExpOption.checked,\n caseSensitive: this.caseSensitiveOption.checked,\n wholeWord: this.wholeWordOption.checked,\n preventScroll: preventScroll,\n range: this.searchRange\n });\n var noMatch = !range && this.searchInput.value;\n dom.setCssClass(this.searchBox, \"ace_nomatch\", noMatch);\n this.editor._emit(\"findSearchBox\", { match: !noMatch });\n this.highlight();\n this.updateCounter();\n };\n SearchBox.prototype.updateCounter = function () {\n var editor = this.editor;\n var regex = editor.$search.$options.re;\n var supportsUnicodeFlag = regex.unicode;\n var all = 0;\n var before = 0;\n if (regex) {\n var value = this.searchRange\n ? editor.session.getTextRange(this.searchRange)\n : editor.getValue();\n var offset = editor.session.doc.positionToIndex(editor.selection.anchor);\n if (this.searchRange)\n offset -= editor.session.doc.positionToIndex(this.searchRange.start);\n var last = regex.lastIndex = 0;\n var m;\n while ((m = regex.exec(value))) {\n all++;\n last = m.index;\n if (last <= offset)\n before++;\n if (all > MAX_COUNT)\n break;\n if (!m[0]) {\n regex.lastIndex = last += lang.skipEmptyMatch(value, last, supportsUnicodeFlag);\n if (last >= value.length)\n break;\n }\n }\n }\n this.searchCounter.textContent = nls(\"$0 of $1\", [before, (all > MAX_COUNT ? MAX_COUNT + \"+\" : all)]);\n };\n SearchBox.prototype.findNext = function () {\n this.find(true, false);\n };\n SearchBox.prototype.findPrev = function () {\n this.find(true, true);\n };\n SearchBox.prototype.findAll = function () {\n var range = this.editor.findAll(this.searchInput.value, {\n regExp: this.regExpOption.checked,\n caseSensitive: this.caseSensitiveOption.checked,\n wholeWord: this.wholeWordOption.checked\n });\n var noMatch = !range && this.searchInput.value;\n dom.setCssClass(this.searchBox, \"ace_nomatch\", noMatch);\n this.editor._emit(\"findSearchBox\", { match: !noMatch });\n this.highlight();\n this.hide();\n };\n SearchBox.prototype.replace = function () {\n if (!this.editor.getReadOnly())\n this.editor.replace(this.replaceInput.value);\n };\n SearchBox.prototype.replaceAndFindNext = function () {\n if (!this.editor.getReadOnly()) {\n this.editor.replace(this.replaceInput.value);\n this.findNext();\n }\n };\n SearchBox.prototype.replaceAll = function () {\n if (!this.editor.getReadOnly())\n this.editor.replaceAll(this.replaceInput.value);\n };\n SearchBox.prototype.hide = function () {\n this.active = false;\n this.setSearchRange(null);\n this.editor.off(\"changeSession\", this.setSession);\n this.element.style.display = \"none\";\n this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb);\n this.editor.focus();\n };\n SearchBox.prototype.show = function (value, isReplace) {\n this.active = true;\n this.editor.on(\"changeSession\", this.setSession);\n this.element.style.display = \"\";\n this.replaceOption.checked = isReplace;\n if (value)\n this.searchInput.value = value;\n this.searchInput.focus();\n this.searchInput.select();\n this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb);\n this.$syncOptions(true);\n };\n SearchBox.prototype.isFocused = function () {\n var el = document.activeElement;\n return el == this.searchInput || el == this.replaceInput;\n };\n return SearchBox;\n}());\nvar $searchBarKb = new HashHandler();\n$searchBarKb.bindKeys({\n \"Ctrl-f|Command-f\": function (sb) {\n var isReplace = sb.isReplace = !sb.isReplace;\n sb.replaceBox.style.display = isReplace ? \"\" : \"none\";\n sb.replaceOption.checked = false;\n sb.$syncOptions();\n sb.searchInput.focus();\n },\n \"Ctrl-H|Command-Option-F\": function (sb) {\n if (sb.editor.getReadOnly())\n return;\n sb.replaceOption.checked = true;\n sb.$syncOptions();\n sb.replaceInput.focus();\n },\n \"Ctrl-G|Command-G\": function (sb) {\n sb.findNext();\n },\n \"Ctrl-Shift-G|Command-Shift-G\": function (sb) {\n sb.findPrev();\n },\n \"esc\": function (sb) {\n setTimeout(function () { sb.hide(); });\n },\n \"Return\": function (sb) {\n if (sb.activeInput == sb.replaceInput)\n sb.replace();\n sb.findNext();\n },\n \"Shift-Return\": function (sb) {\n if (sb.activeInput == sb.replaceInput)\n sb.replace();\n sb.findPrev();\n },\n \"Alt-Return\": function (sb) {\n if (sb.activeInput == sb.replaceInput)\n sb.replaceAll();\n sb.findAll();\n },\n \"Tab\": function (sb) {\n (sb.activeInput == sb.replaceInput ? sb.searchInput : sb.replaceInput).focus();\n }\n});\n$searchBarKb.addCommands([{\n name: \"toggleRegexpMode\",\n bindKey: { win: \"Alt-R|Alt-/\", mac: \"Ctrl-Alt-R|Ctrl-Alt-/\" },\n exec: function (sb) {\n sb.regExpOption.checked = !sb.regExpOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"toggleCaseSensitive\",\n bindKey: { win: \"Alt-C|Alt-I\", mac: \"Ctrl-Alt-R|Ctrl-Alt-I\" },\n exec: function (sb) {\n sb.caseSensitiveOption.checked = !sb.caseSensitiveOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"toggleWholeWords\",\n bindKey: { win: \"Alt-B|Alt-W\", mac: \"Ctrl-Alt-B|Ctrl-Alt-W\" },\n exec: function (sb) {\n sb.wholeWordOption.checked = !sb.wholeWordOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"toggleReplace\",\n exec: function (sb) {\n sb.replaceOption.checked = !sb.replaceOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"searchInSelection\",\n exec: function (sb) {\n sb.searchOption.checked = !sb.searchRange;\n sb.setSearchRange(sb.searchOption.checked && sb.editor.getSelectionRange());\n sb.$syncOptions();\n }\n }]);\nvar $closeSearchBarKb = new HashHandler([{\n bindKey: \"Esc\",\n name: \"closeSearchBar\",\n exec: function (editor) {\n editor.searchBox.hide();\n }\n }]);\nSearchBox.prototype.$searchBarKb = $searchBarKb;\nSearchBox.prototype.$closeSearchBarKb = $closeSearchBarKb;\nexports.SearchBox = SearchBox;\nexports.Search = function (editor, isReplace) {\n var sb = editor.searchBox || new SearchBox(editor);\n sb.show(editor.session.getTextRange(), isReplace);\n};\n\n}); (function() {\n ace.require([\"ace/ext/searchbox\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|flex-end|flex-start|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\";\nvar supportConstantColor = exports.supportConstantColor = \"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses = exports.pseudoClasses = \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\nvar CssHighlightRules = function () {\n var keywordMapper = this.createKeywordMapper({\n \"support.function\": supportFunction,\n \"support.constant\": supportConstant,\n \"support.type\": supportType,\n \"support.constant.color\": supportConstantColor,\n \"support.constant.fonts\": supportConstantFonts\n }, \"text\", true);\n this.$rules = {\n \"start\": [{\n include: [\"strings\", \"url\", \"comments\"]\n }, {\n token: \"paren.lparen\",\n regex: \"\\\\{\",\n next: \"ruleset\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\"\n }, {\n token: \"string\",\n regex: \"@(?!viewport)\",\n next: \"media\"\n }, {\n token: \"keyword\",\n regex: \"#[a-z0-9-_]+\"\n }, {\n token: \"keyword\",\n regex: \"%\"\n }, {\n token: \"variable\",\n regex: \"\\\\.[a-z0-9-_]+\"\n }, {\n token: \"string\",\n regex: \":[a-z0-9-_]+\"\n }, {\n token: \"constant.numeric\",\n regex: numRe\n }, {\n token: \"constant\",\n regex: \"[a-z0-9-_]+\"\n }, {\n caseInsensitive: true\n }],\n \"media\": [{\n include: [\"strings\", \"url\", \"comments\"]\n }, {\n token: \"paren.lparen\",\n regex: \"\\\\{\",\n next: \"start\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\",\n next: \"start\"\n }, {\n token: \"string\",\n regex: \";\",\n next: \"start\"\n }, {\n token: \"keyword\",\n regex: \"(?:media|supports|document|charset|import|namespace|media|supports|document\"\n + \"|page|font|keyframes|viewport|counter-style|font-feature-values\"\n + \"|swash|ornaments|annotation|stylistic|styleset|character-variant)\"\n }],\n \"comments\": [{\n token: \"comment\",\n regex: \"\\\\/\\\\*\",\n push: [{\n token: \"comment\",\n regex: \"\\\\*\\\\/\",\n next: \"pop\"\n }, {\n defaultToken: \"comment\"\n }]\n }],\n \"ruleset\": [{\n regex: \"-(webkit|ms|moz|o)-\",\n token: \"text\"\n }, {\n token: \"punctuation.operator\",\n regex: \"[:;]\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\",\n next: \"start\"\n }, {\n include: [\"strings\", \"url\", \"comments\"]\n }, {\n token: [\"constant.numeric\", \"keyword\"],\n regex: \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"\n }, {\n token: \"constant.numeric\",\n regex: numRe\n }, {\n token: \"constant.numeric\",\n regex: \"#[a-f0-9]{6}\"\n }, {\n token: \"constant.numeric\",\n regex: \"#[a-f0-9]{3}\"\n }, {\n token: [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n regex: pseudoElements\n }, {\n token: [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n regex: pseudoClasses\n }, {\n include: \"url\"\n }, {\n token: keywordMapper,\n regex: \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n }, {\n caseInsensitive: true\n }],\n url: [{\n token: \"support.function\",\n regex: \"(?:url(:?-prefix)?|domain|regexp)\\\\(\",\n push: [{\n token: \"support.function\",\n regex: \"\\\\)\",\n next: \"pop\"\n }, {\n defaultToken: \"string\"\n }]\n }],\n strings: [{\n token: \"string.start\",\n regex: \"'\",\n push: [{\n token: \"string.end\",\n regex: \"'|$\",\n next: \"pop\"\n }, {\n include: \"escapes\"\n }, {\n token: \"constant.language.escape\",\n regex: /\\\\$/,\n consumeLineEnd: true\n }, {\n defaultToken: \"string\"\n }]\n }, {\n token: \"string.start\",\n regex: '\"',\n push: [{\n token: \"string.end\",\n regex: '\"|$',\n next: \"pop\"\n }, {\n include: \"escapes\"\n }, {\n token: \"constant.language.escape\",\n regex: /\\\\$/,\n consumeLineEnd: true\n }, {\n defaultToken: \"string\"\n }]\n }],\n escapes: [{\n token: \"constant.language.escape\",\n regex: /\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/\n }]\n };\n this.normalizeRules();\n};\noop.inherits(CssHighlightRules, TextHighlightRules);\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar propertyMap = {\n \"background\": { \"#$0\": 1 },\n \"background-color\": { \"#$0\": 1, \"transparent\": 1, \"fixed\": 1 },\n \"background-image\": { \"url('/$0')\": 1 },\n \"background-repeat\": { \"repeat\": 1, \"repeat-x\": 1, \"repeat-y\": 1, \"no-repeat\": 1, \"inherit\": 1 },\n \"background-position\": { \"bottom\": 2, \"center\": 2, \"left\": 2, \"right\": 2, \"top\": 2, \"inherit\": 2 },\n \"background-attachment\": { \"scroll\": 1, \"fixed\": 1 },\n \"background-size\": { \"cover\": 1, \"contain\": 1 },\n \"background-clip\": { \"border-box\": 1, \"padding-box\": 1, \"content-box\": 1 },\n \"background-origin\": { \"border-box\": 1, \"padding-box\": 1, \"content-box\": 1 },\n \"border\": { \"solid $0\": 1, \"dashed $0\": 1, \"dotted $0\": 1, \"#$0\": 1 },\n \"border-color\": { \"#$0\": 1 },\n \"border-style\": { \"solid\": 2, \"dashed\": 2, \"dotted\": 2, \"double\": 2, \"groove\": 2, \"hidden\": 2, \"inherit\": 2, \"inset\": 2, \"none\": 2, \"outset\": 2, \"ridged\": 2 },\n \"border-collapse\": { \"collapse\": 1, \"separate\": 1 },\n \"bottom\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"clear\": { \"left\": 1, \"right\": 1, \"both\": 1, \"none\": 1 },\n \"color\": { \"#$0\": 1, \"rgb(#$00,0,0)\": 1 },\n \"cursor\": { \"default\": 1, \"pointer\": 1, \"move\": 1, \"text\": 1, \"wait\": 1, \"help\": 1, \"progress\": 1, \"n-resize\": 1, \"ne-resize\": 1, \"e-resize\": 1, \"se-resize\": 1, \"s-resize\": 1, \"sw-resize\": 1, \"w-resize\": 1, \"nw-resize\": 1 },\n \"display\": { \"none\": 1, \"block\": 1, \"inline\": 1, \"inline-block\": 1, \"table-cell\": 1 },\n \"empty-cells\": { \"show\": 1, \"hide\": 1 },\n \"float\": { \"left\": 1, \"right\": 1, \"none\": 1 },\n \"font-family\": { \"Arial\": 2, \"Comic Sans MS\": 2, \"Consolas\": 2, \"Courier New\": 2, \"Courier\": 2, \"Georgia\": 2, \"Monospace\": 2, \"Sans-Serif\": 2, \"Segoe UI\": 2, \"Tahoma\": 2, \"Times New Roman\": 2, \"Trebuchet MS\": 2, \"Verdana\": 1 },\n \"font-size\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"font-weight\": { \"bold\": 1, \"normal\": 1 },\n \"font-style\": { \"italic\": 1, \"normal\": 1 },\n \"font-variant\": { \"normal\": 1, \"small-caps\": 1 },\n \"height\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"left\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"letter-spacing\": { \"normal\": 1 },\n \"line-height\": { \"normal\": 1 },\n \"list-style-type\": { \"none\": 1, \"disc\": 1, \"circle\": 1, \"square\": 1, \"decimal\": 1, \"decimal-leading-zero\": 1, \"lower-roman\": 1, \"upper-roman\": 1, \"lower-greek\": 1, \"lower-latin\": 1, \"upper-latin\": 1, \"georgian\": 1, \"lower-alpha\": 1, \"upper-alpha\": 1 },\n \"margin\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-right\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-left\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-top\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-bottom\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"max-height\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"max-width\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"min-height\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"min-width\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"overflow\": { \"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1 },\n \"overflow-x\": { \"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1 },\n \"overflow-y\": { \"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1 },\n \"padding\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-top\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-right\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-bottom\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-left\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"page-break-after\": { \"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1 },\n \"page-break-before\": { \"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1 },\n \"position\": { \"absolute\": 1, \"relative\": 1, \"fixed\": 1, \"static\": 1 },\n \"right\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"table-layout\": { \"fixed\": 1, \"auto\": 1 },\n \"text-decoration\": { \"none\": 1, \"underline\": 1, \"line-through\": 1, \"blink\": 1 },\n \"text-align\": { \"left\": 1, \"right\": 1, \"center\": 1, \"justify\": 1 },\n \"text-transform\": { \"capitalize\": 1, \"uppercase\": 1, \"lowercase\": 1, \"none\": 1 },\n \"top\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"vertical-align\": { \"top\": 1, \"bottom\": 1 },\n \"visibility\": { \"hidden\": 1, \"visible\": 1 },\n \"white-space\": { \"nowrap\": 1, \"normal\": 1, \"pre\": 1, \"pre-line\": 1, \"pre-wrap\": 1 },\n \"width\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"word-spacing\": { \"normal\": 1 },\n \"filter\": { \"alpha(opacity=$0100)\": 1 },\n \"text-shadow\": { \"$02px 2px 2px #777\": 1 },\n \"text-overflow\": { \"ellipsis-word\": 1, \"clip\": 1, \"ellipsis\": 1 },\n \"-moz-border-radius\": 1,\n \"-moz-border-radius-topright\": 1,\n \"-moz-border-radius-bottomright\": 1,\n \"-moz-border-radius-topleft\": 1,\n \"-moz-border-radius-bottomleft\": 1,\n \"-webkit-border-radius\": 1,\n \"-webkit-border-top-right-radius\": 1,\n \"-webkit-border-top-left-radius\": 1,\n \"-webkit-border-bottom-right-radius\": 1,\n \"-webkit-border-bottom-left-radius\": 1,\n \"-moz-box-shadow\": 1,\n \"-webkit-box-shadow\": 1,\n \"transform\": { \"rotate($00deg)\": 1, \"skew($00deg)\": 1 },\n \"-moz-transform\": { \"rotate($00deg)\": 1, \"skew($00deg)\": 1 },\n \"-webkit-transform\": { \"rotate($00deg)\": 1, \"skew($00deg)\": 1 }\n};\nvar CssCompletions = function () {\n};\n(function () {\n this.completionsDefined = false;\n this.defineCompletions = function () {\n if (document) {\n var style = document.createElement('c').style;\n for (var i in style) {\n if (typeof style[i] !== 'string')\n continue;\n var name = i.replace(/[A-Z]/g, function (x) {\n return '-' + x.toLowerCase();\n });\n if (!propertyMap.hasOwnProperty(name))\n propertyMap[name] = 1;\n }\n }\n this.completionsDefined = true;\n };\n this.getCompletions = function (state, session, pos, prefix) {\n if (!this.completionsDefined) {\n this.defineCompletions();\n }\n if (state === 'ruleset' || session.$mode.$id == \"ace/mode/scss\") {\n var line = session.getLine(pos.row).substr(0, pos.column);\n var inParens = /\\([^)]*$/.test(line);\n if (inParens) {\n line = line.substr(line.lastIndexOf('(') + 1);\n }\n if (/:[^;]+$/.test(line)) {\n /([\\w\\-]+):[^:]*$/.test(line);\n return this.getPropertyValueCompletions(state, session, pos, prefix);\n }\n else {\n return this.getPropertyCompletions(state, session, pos, prefix, inParens);\n }\n }\n return [];\n };\n this.getPropertyCompletions = function (state, session, pos, prefix, skipSemicolon) {\n skipSemicolon = skipSemicolon || false;\n var properties = Object.keys(propertyMap);\n return properties.map(function (property) {\n return {\n caption: property,\n snippet: property + ': $0' + (skipSemicolon ? '' : ';'),\n meta: \"property\",\n score: 1000000\n };\n });\n };\n this.getPropertyValueCompletions = function (state, session, pos, prefix) {\n var line = session.getLine(pos.row).substr(0, pos.column);\n var property = (/([\\w\\-]+):[^:]*$/.exec(line) || {})[1];\n if (!property)\n return [];\n var values = [];\n if (property in propertyMap && typeof propertyMap[property] === \"object\") {\n values = Object.keys(propertyMap[property]);\n }\n return values.map(function (value) {\n return {\n caption: value,\n snippet: value,\n meta: \"property value\",\n score: 1000000\n };\n });\n };\n}).call(CssCompletions.prototype);\nexports.CssCompletions = CssCompletions;\n\n});\n\nace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar CstyleBehaviour = require(\"./cstyle\").CstyleBehaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar CssBehaviour = function () {\n this.inherit(CstyleBehaviour);\n this.add(\"colon\", \"insertion\", function (state, action, editor, session, text) {\n if (text === ':' && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.value.match(/\\s+/)) {\n token = iterator.stepBackward();\n }\n if (token && token.type === 'support.type') {\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === ':') {\n return {\n text: '',\n selection: [1, 1]\n };\n }\n if (/^(\\s+[^;]|\\s*$)/.test(line.substring(cursor.column))) {\n return {\n text: ':;',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"colon\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected === ':') {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.value.match(/\\s+/)) {\n token = iterator.stepBackward();\n }\n if (token && token.type === 'support.type') {\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar === ';') {\n range.end.column++;\n return range;\n }\n }\n }\n });\n this.add(\"semicolon\", \"insertion\", function (state, action, editor, session, text) {\n if (text === ';' && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === ';') {\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"!important\", \"insertion\", function (state, action, editor, session, text) {\n if (text === '!' && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (/^\\s*(;|}|$)/.test(line.substring(cursor.column))) {\n return {\n text: '!important',\n selection: [10, 10]\n };\n }\n }\n });\n};\noop.inherits(CssBehaviour, CstyleBehaviour);\nexports.CssBehaviour = CssBehaviour;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CssCompletions = require(\"./css_completions\").CssCompletions;\nvar CssBehaviour = require(\"./behaviour/css\").CssBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = CssHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CssBehaviour();\n this.$completer = new CssCompletions();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.foldingRules = \"cStyle\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n var match = line.match(/^.*\\{\\s*$/);\n if (match) {\n indent += tab;\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.getCompletions = function (state, session, pos, prefix) {\n return this.$completer.getCompletions(state, session, pos, prefix);\n };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/css_worker\", \"Worker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"annotate\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/css\";\n this.snippetFileId = \"ace/snippets/css\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/css\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar DocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n }, DocCommentHighlightRules.getTagRule(), {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ]\n };\n};\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\nDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/golang_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar GolangHighlightRules = function () {\n var keywords = (\"else|break|case|return|goto|if|const|select|\" +\n \"continue|struct|default|switch|for|range|\" +\n \"func|import|package|chan|defer|fallthrough|go|interface|map|range|\" +\n \"select|type|var\");\n var builtinTypes = (\"string|uint8|uint16|uint32|uint64|int8|int16|int32|int64|float32|\" +\n \"float64|complex64|complex128|byte|rune|uint|int|uintptr|bool|error\");\n var builtinFunctions = (\"new|close|cap|copy|panic|panicln|print|println|len|make|delete|real|recover|imag|append\");\n var builtinConstants = (\"nil|true|false|iota\");\n var keywordMapper = this.createKeywordMapper({\n \"keyword\": keywords,\n \"constant.language\": builtinConstants,\n \"support.function\": builtinFunctions,\n \"support.type\": builtinTypes\n }, \"\");\n var stringEscapeRe = \"\\\\\\\\(?:[0-7]{3}|x\\\\h{2}|u{4}|U\\\\h{6}|[abfnrtv'\\\"\\\\\\\\])\".replace(/\\\\h/g, \"[a-fA-F\\\\d]\");\n this.$rules = {\n \"start\": [\n {\n token: \"comment\",\n regex: \"\\\\/\\\\/.*$\"\n },\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n {\n token: \"comment.start\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"string\",\n regex: /\"(?:[^\"\\\\]|\\\\.)*?\"/\n }, {\n token: \"string\",\n regex: '`',\n next: \"bqstring\"\n }, {\n token: \"constant.numeric\",\n regex: \"'(?:[^\\\\'\\uD800-\\uDBFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|\" + stringEscapeRe.replace('\"', '') + \")'\"\n }, {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token: [\"keyword\", \"text\", \"entity.name.function\"],\n regex: \"(func)(\\\\s+)([a-zA-Z_$][a-zA-Z0-9_$]*)\\\\b\"\n }, {\n token: function (val) {\n if (val[val.length - 1] == \"(\") {\n return [{\n type: keywordMapper(val.slice(0, -1)) || \"support.function\",\n value: val.slice(0, -1)\n }, {\n type: \"paren.lparen\",\n value: val.slice(-1)\n }];\n }\n return keywordMapper(val) || \"identifier\";\n },\n regex: \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\\\\(?\"\n }, {\n token: \"keyword.operator\",\n regex: \"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=\"\n }, {\n token: \"punctuation.operator\",\n regex: \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}]\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"comment\": [\n {\n token: \"comment.end\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ],\n \"bqstring\": [\n {\n token: \"string\",\n regex: '`',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }\n ]\n };\n this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"start\")]);\n};\noop.inherits(GolangHighlightRules, TextHighlightRules);\nexports.GolangHighlightRules = GolangHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/golang\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/golang_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar GolangHighlightRules = require(\"./golang_highlight_rules\").GolangHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = GolangHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.foldingRules = new CStyleFoldMode();\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n var endState = tokenizedLine.state;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n }; //end getNextLineIndent\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.$id = \"ace/mode/golang\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/golang\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/jsdoc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JsDocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: [\"comment.doc.tag\", \"comment.doc.text\", \"lparen.doc\"],\n regex: \"(@(?:param|member|typedef|property|namespace|var|const|callback))(\\\\s*)({)\",\n push: [\n {\n token: \"lparen.doc\",\n regex: \"{\",\n push: [\n {\n include: \"doc-syntax\"\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }\n ]\n }, {\n token: [\"rparen.doc\", \"text.doc\", \"variable.parameter.doc\", \"lparen.doc\", \"variable.parameter.doc\", \"rparen.doc\"],\n regex: /(})(\\s*)(?:([\\w=:\\/\\.]+)|(?:(\\[)([\\w=:\\/\\.]+)(\\])))/,\n next: \"pop\"\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }, {\n include: \"doc-syntax\"\n }, {\n defaultToken: \"text.doc\"\n }\n ]\n }, {\n token: [\"comment.doc.tag\", \"text.doc\", \"lparen.doc\"],\n regex: \"(@(?:returns?|yields|type|this|suppress|public|protected|private|package|modifies|\"\n + \"implements|external|exception|throws|enum|define|extends))(\\\\s*)({)\",\n push: [\n {\n token: \"lparen.doc\",\n regex: \"{\",\n push: [\n {\n include: \"doc-syntax\"\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }\n ]\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }, {\n include: \"doc-syntax\"\n }, {\n defaultToken: \"text.doc\"\n }\n ]\n }, {\n token: [\"comment.doc.tag\", \"text.doc\", \"variable.parameter.doc\"],\n regex: \"(@(?:alias|memberof|instance|module|name|lends|namespace|external|this|template|\"\n + \"requires|param|implements|function|extends|typedef|mixes|constructor|var|\"\n + \"memberof\\\\!|event|listens|exports|class|constructs|interface|emits|fires|\"\n + \"throws|const|callback|borrows|augments))(\\\\s+)(\\\\w[\\\\w#\\.:\\/~\\\"\\\\-]*)?\"\n }, {\n token: [\"comment.doc.tag\", \"text.doc\", \"variable.parameter.doc\"],\n regex: \"(@method)(\\\\s+)(\\\\w[\\\\w\\.\\\\(\\\\)]*)\"\n }, {\n token: \"comment.doc.tag\",\n regex: \"@access\\\\s+(?:private|public|protected)\"\n }, {\n token: \"comment.doc.tag\",\n regex: \"@kind\\\\s+(?:class|constant|event|external|file|function|member|mixin|module|namespace|typedef)\"\n }, {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n },\n JsDocCommentHighlightRules.getTagRule(),\n {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ],\n \"doc-syntax\": [{\n token: \"operator.doc\",\n regex: /[|:]/\n }, {\n token: \"paren.doc\",\n regex: /[\\[\\]]/\n }]\n };\n this.normalizeRules();\n};\noop.inherits(JsDocCommentHighlightRules, TextHighlightRules);\nJsDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nJsDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nJsDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.JsDocCommentHighlightRules = JsDocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/jsdoc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./jsdoc_comment_highlight_rules\").JsDocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\nvar JavaScriptHighlightRules = function (options) {\n var keywordMapper = this.createKeywordMapper({\n \"variable.language\": \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|\" + // Constructors\n \"Namespace|QName|XML|XMLList|\" + // E4X\n \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\" +\n \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\" +\n \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\" + // Errors\n \"SyntaxError|TypeError|URIError|\" +\n \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n \"isNaN|parseFloat|parseInt|\" +\n \"JSON|Math|\" + // Other\n \"this|arguments|prototype|window|document\",\n \"keyword\": \"const|yield|import|get|set|async|await|\" +\n \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static|constructor\",\n \"storage.type\": \"const|let|var|function\",\n \"constant.language\": \"null|Infinity|NaN|undefined\",\n \"support.function\": \"alert\",\n \"constant.language.boolean\": \"true|false\"\n }, \"identifier\");\n var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n \"u[0-9a-fA-F]{4}|\" + // unicode\n \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n \"[0-2][0-7]{0,2}|\" + // oct\n \"3[0-7][0-7]?|\" + // oct\n \"[4-7][0-7]?|\" + //oct\n \".)\";\n this.$rules = {\n \"no_regex\": [\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n comments(\"no_regex\"),\n {\n token: \"string\",\n regex: \"'(?=.)\",\n next: \"qstring\"\n }, {\n token: \"string\",\n regex: '\"(?=.)',\n next: \"qqstring\"\n }, {\n token: \"constant.numeric\",\n regex: /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/\n }, {\n token: \"constant.numeric\",\n regex: /(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"support.function\",\n \"punctuation.operator\", \"entity.name.function\", \"text\", \"keyword.operator\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)\",\n next: \"function_arguments\"\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\",\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex: \"(function\\\\*?)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"entity.name.function\", \"text\", \"punctuation.operator\",\n \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex: \"(:)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: \"keyword\",\n regex: \"from(?=\\\\s*('|\\\"))\"\n }, {\n token: \"keyword\",\n regex: \"(?:\" + kwBeforeRe + \")\\\\b\",\n next: \"start\"\n }, {\n token: \"support.constant\",\n regex: /that\\b/\n }, {\n token: [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n regex: /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n }, {\n token: keywordMapper,\n regex: identifierRe\n }, {\n token: \"punctuation.operator\",\n regex: /[.](?![.])/,\n next: \"property\"\n }, {\n token: \"storage.type\",\n regex: /=>/,\n next: \"start\"\n }, {\n token: \"keyword.operator\",\n regex: /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n next: \"start\"\n }, {\n token: \"punctuation.operator\",\n regex: /[?:,;.]/,\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: /[\\[({]/,\n next: \"start\"\n }, {\n token: \"paren.rparen\",\n regex: /[\\])}]/\n }, {\n token: \"comment\",\n regex: /^#!.*$/\n }\n ],\n property: [{\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\",\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: \"punctuation.operator\",\n regex: /[.](?![.])/\n }, {\n token: \"support.function\",\n regex: /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|lter|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward|rEach)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n }, {\n token: \"support.function.dom\",\n regex: /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n }, {\n token: \"support.constant\",\n regex: /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n }, {\n token: \"identifier\",\n regex: identifierRe\n }, {\n regex: \"\",\n token: \"empty\",\n next: \"no_regex\"\n }\n ],\n \"start\": [\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n comments(\"start\"),\n {\n token: \"string.regexp\",\n regex: \"\\\\/\",\n next: \"regex\"\n }, {\n token: \"text\",\n regex: \"\\\\s+|^$\",\n next: \"start\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"regex\": [\n {\n token: \"regexp.keyword.operator\",\n regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n }, {\n token: \"string.regexp\",\n regex: \"/[sxngimy]*\",\n next: \"no_regex\"\n }, {\n token: \"invalid\",\n regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n }, {\n token: \"constant.language.escape\",\n regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n }, {\n token: \"constant.language.delimiter\",\n regex: /\\|/\n }, {\n token: \"constant.language.escape\",\n regex: /\\[\\^?/,\n next: \"regex_character_class\"\n }, {\n token: \"empty\",\n regex: \"$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string.regexp\"\n }\n ],\n \"regex_character_class\": [\n {\n token: \"regexp.charclass.keyword.operator\",\n regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n }, {\n token: \"constant.language.escape\",\n regex: \"]\",\n next: \"regex\"\n }, {\n token: \"constant.language.escape\",\n regex: \"-\"\n }, {\n token: \"empty\",\n regex: \"$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string.regexp.charachterclass\"\n }\n ],\n \"default_parameter\": [\n {\n token: \"string\",\n regex: \"'(?=.)\",\n push: [\n {\n token: \"string\",\n regex: \"'|$\",\n next: \"pop\"\n }, {\n include: \"qstring\"\n }\n ]\n }, {\n token: \"string\",\n regex: '\"(?=.)',\n push: [\n {\n token: \"string\",\n regex: '\"|$',\n next: \"pop\"\n }, {\n include: \"qqstring\"\n }\n ]\n }, {\n token: \"constant.language\",\n regex: \"null|Infinity|NaN|undefined\"\n }, {\n token: \"constant.numeric\",\n regex: /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/\n }, {\n token: \"constant.numeric\",\n regex: /(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/\n }, {\n token: \"punctuation.operator\",\n regex: \",\",\n next: \"function_arguments\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n token: \"punctuation.operator\",\n regex: \"$\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"function_arguments\": [\n comments(\"function_arguments\"),\n {\n token: \"variable.parameter\",\n regex: identifierRe\n }, {\n token: \"punctuation.operator\",\n regex: \",\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n token: \"punctuation.operator\",\n regex: \"$\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"qqstring\": [\n {\n token: \"constant.language.escape\",\n regex: escapedRe\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n consumeLineEnd: true\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"no_regex\"\n }, {\n defaultToken: \"string\"\n }\n ],\n \"qstring\": [\n {\n token: \"constant.language.escape\",\n regex: escapedRe\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n consumeLineEnd: true\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string\"\n }\n ]\n };\n if (!options || !options.noES6) {\n this.$rules.no_regex.unshift({\n regex: \"[{}]\", onMatch: function (val, state, stack) {\n this.next = val == \"{\" ? this.nextState : \"\";\n if (val == \"{\" && stack.length) {\n stack.unshift(\"start\", state);\n }\n else if (val == \"}\" && stack.length) {\n stack.shift();\n this.next = stack.shift();\n if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n return \"paren.quasi.end\";\n }\n return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n },\n nextState: \"start\"\n }, {\n token: \"string.quasi.start\",\n regex: /`/,\n push: [{\n token: \"constant.language.escape\",\n regex: escapedRe\n }, {\n token: \"paren.quasi.start\",\n regex: /\\${/,\n push: \"start\"\n }, {\n token: \"string.quasi.end\",\n regex: /`/,\n next: \"pop\"\n }, {\n defaultToken: \"string.quasi\"\n }]\n }, {\n token: [\"variable.parameter\", \"text\"],\n regex: \"(\" + identifierRe + \")(\\\\s*)(?=\\\\=>)\"\n }, {\n token: \"paren.lparen\",\n regex: \"(\\\\()(?=.+\\\\s*=>)\",\n next: \"function_arguments\"\n }, {\n token: \"variable.language\",\n regex: \"(?:(?:(?:Weak)?(?:Set|Map))|Promise)\\\\b\"\n });\n this.$rules[\"function_arguments\"].unshift({\n token: \"keyword.operator\",\n regex: \"=\",\n next: \"default_parameter\"\n }, {\n token: \"keyword.operator\",\n regex: \"\\\\.{3}\"\n });\n this.$rules[\"property\"].unshift({\n token: \"support.function\",\n regex: \"(findIndex|repeat|startsWith|endsWith|includes|isSafeInteger|trunc|cbrt|log2|log10|sign|then|catch|\"\n + \"finally|resolve|reject|race|any|all|allSettled|keys|entries|isInteger)\\\\b(?=\\\\()\"\n }, {\n token: \"constant.language\",\n regex: \"(?:MAX_SAFE_INTEGER|MIN_SAFE_INTEGER|EPSILON)\\\\b\"\n });\n if (!options || options.jsx != false)\n JSX.call(this);\n }\n this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"no_regex\")]);\n this.normalizeRules();\n};\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\nfunction JSX() {\n var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n var jsxTag = {\n onMatch: function (val, state, stack) {\n var offset = val.charAt(1) == \"/\" ? 2 : 1;\n if (offset == 1) {\n if (state != this.nextState)\n stack.unshift(this.next, this.nextState, 0);\n else\n stack.unshift(this.next);\n stack[2]++;\n }\n else if (offset == 2) {\n if (state == this.nextState) {\n stack[1]--;\n if (!stack[1] || stack[1] < 0) {\n stack.shift();\n stack.shift();\n }\n }\n }\n return [{\n type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n value: val.slice(0, offset)\n }, {\n type: \"meta.tag.tag-name.xml\",\n value: val.substr(offset)\n }];\n },\n regex: \"\",\n onMatch: function (value, currentState, stack) {\n if (currentState == stack[0])\n stack.shift();\n if (value.length == 2) {\n if (stack[0] == this.nextState)\n stack[1]--;\n if (!stack[1] || stack[1] < 0) {\n stack.splice(0, 2);\n }\n }\n this.next = stack[0] || \"start\";\n return [{ type: this.token, value: value }];\n },\n nextState: \"jsx\"\n },\n jsxJsRule,\n comments(\"jsxAttributes\"),\n {\n token: \"entity.other.attribute-name.xml\",\n regex: tagRegex\n }, {\n token: \"keyword.operator.attribute-equals.xml\",\n regex: \"=\"\n }, {\n token: \"text.tag-whitespace.xml\",\n regex: \"\\\\s+\"\n }, {\n token: \"string.attribute-value.xml\",\n regex: \"'\",\n stateName: \"jsx_attr_q\",\n push: [\n { token: \"string.attribute-value.xml\", regex: \"'\", next: \"pop\" },\n { include: \"reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }, {\n token: \"string.attribute-value.xml\",\n regex: '\"',\n stateName: \"jsx_attr_qq\",\n push: [\n { token: \"string.attribute-value.xml\", regex: '\"', next: \"pop\" },\n { include: \"reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n },\n jsxTag\n ];\n this.$rules.reference = [{\n token: \"constant.language.escape.reference.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }];\n}\nfunction comments(next) {\n return [\n {\n token: \"comment\",\n regex: /\\/\\*/,\n next: [\n DocCommentHighlightRules.getTagRule(),\n { token: \"comment\", regex: \"\\\\*\\\\/\", next: next || \"pop\" },\n { defaultToken: \"comment\", caseInsensitive: true }\n ]\n }, {\n token: \"comment\",\n regex: \"\\\\/\\\\/\",\n next: [\n DocCommentHighlightRules.getTagRule(),\n { token: \"comment\", regex: \"$|^\", next: next || \"pop\" },\n { defaultToken: \"comment\", caseInsensitive: true }\n ]\n }\n ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = JavaScriptHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CstyleBehaviour();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.$quotes = { '\"': '\"', \"'\": \"'\", \"`\": \"`\" };\n this.$pairQuotesAfter = {\n \"`\": /\\w/\n };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n var endState = tokenizedLine.state;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\" || state == \"no_regex\") {\n var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n else if (state == \"doc-start\") {\n if (endState == \"start\" || endState == \"no_regex\") {\n return \"\";\n }\n var match = line.match(/^\\s*(\\/?)\\*/);\n if (match) {\n if (match[1]) {\n indent += \" \";\n }\n indent += \"* \";\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"annotate\", function (results) {\n session.setAnnotations(results.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/javascript\";\n this.snippetFileId = \"ace/snippets/javascript\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/javascript\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/json_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JsonHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"variable\",\n regex: '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]\\\\s*(?=:)'\n }, {\n token: \"string\",\n regex: '\"',\n next: \"string\"\n }, {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token: \"constant.language.boolean\",\n regex: \"(?:true|false)\\\\b\"\n }, {\n token: \"text\",\n regex: \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token: \"comment\",\n regex: \"\\\\/\\\\/.*$\"\n }, {\n token: \"comment.start\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}]\"\n }, {\n token: \"punctuation.operator\",\n regex: /[,]/\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"string\": [\n {\n token: \"constant.language.escape\",\n regex: /\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[\"\\\\\\/bfnrt])/\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }\n ],\n \"comment\": [\n {\n token: \"comment.end\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ]\n };\n};\noop.inherits(JsonHighlightRules, TextHighlightRules);\nexports.JsonHighlightRules = JsonHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/json\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/json_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\",\"ace/worker/worker_client\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar HighlightRules = require(\"./json_highlight_rules\").JsonHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar Mode = function () {\n this.HighlightRules = HighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = this.$defaultBehaviour;\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/json_worker\", \"JsonWorker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"annotate\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/json\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/json\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar DocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n }, DocCommentHighlightRules.getTagRule(), {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ]\n };\n};\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\nDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/jsx_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JsxHighlightRules = function () {\n var keywords = lang.arrayToMap((\"break|do|instanceof|typeof|case|else|new|var|catch|finally|return|void|continue|for|switch|default|while|function|this|\" +\n \"if|throw|\" +\n \"delete|in|try|\" +\n \"class|extends|super|import|from|into|implements|interface|static|mixin|override|abstract|final|\" +\n \"number|int|string|boolean|variant|\" +\n \"log|assert\").split(\"|\"));\n var buildinConstants = lang.arrayToMap((\"null|true|false|NaN|Infinity|__FILE__|__LINE__|undefined\").split(\"|\"));\n var reserved = lang.arrayToMap((\"debugger|with|\" +\n \"const|export|\" +\n \"let|private|public|yield|protected|\" +\n \"extern|native|as|operator|__fake__|__readonly__\").split(\"|\"));\n var identifierRe = \"[a-zA-Z_][a-zA-Z0-9_]*\\\\b\";\n this.$rules = {\n \"start\": [\n {\n token: \"comment\",\n regex: \"\\\\/\\\\/.*$\"\n },\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n {\n token: \"comment\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"string.regexp\",\n regex: \"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"\n }, {\n token: \"string\",\n regex: '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n }, {\n token: \"string\",\n regex: \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token: \"constant.language.boolean\",\n regex: \"(?:true|false)\\\\b\"\n }, {\n token: [\n \"storage.type\",\n \"text\",\n \"entity.name.function\"\n ],\n regex: \"(function)(\\\\s+)(\" + identifierRe + \")\"\n }, {\n token: function (value) {\n if (value == \"this\")\n return \"variable.language\";\n else if (value == \"function\")\n return \"storage.type\";\n else if (keywords.hasOwnProperty(value) || reserved.hasOwnProperty(value))\n return \"keyword\";\n else if (buildinConstants.hasOwnProperty(value))\n return \"constant.language\";\n else if (/^_?[A-Z][a-zA-Z0-9_]*$/.test(value))\n return \"language.support.class\";\n else\n return \"identifier\";\n },\n regex: identifierRe\n }, {\n token: \"keyword.operator\",\n regex: \"!|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"\n }, {\n token: \"punctuation.operator\",\n regex: \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({<]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}>]\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"comment\": [\n {\n token: \"comment\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ]\n };\n this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"start\")]);\n};\noop.inherits(JsxHighlightRules, TextHighlightRules);\nexports.JsxHighlightRules = JsxHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/jsx\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/jsx_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JsxHighlightRules = require(\"./jsx_highlight_rules\").JsxHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nfunction Mode() {\n this.HighlightRules = JsxHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = this.$defaultBehaviour;\n this.foldingRules = new CStyleFoldMode();\n}\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.$id = \"ace/mode/jsx\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/jsx\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/python_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){/*\n * TODO: python delimiters\n */\n\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar PythonHighlightRules = function () {\n var keywords = (\"and|as|assert|break|class|continue|def|del|elif|else|except|exec|\" +\n \"finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|\" +\n \"raise|return|try|while|with|yield|async|await|nonlocal\");\n var builtinConstants = (\"True|False|None|NotImplemented|Ellipsis|__debug__\");\n var builtinFunctions = (\"abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|\" +\n \"eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|\" +\n \"binfile|bin|iter|property|tuple|bool|filter|len|range|type|bytearray|\" +\n \"float|list|raw_input|unichr|callable|format|locals|reduce|unicode|\" +\n \"chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|\" +\n \"cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|\" +\n \"__import__|complex|hash|min|apply|delattr|help|next|setattr|set|\" +\n \"buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern|\" +\n \"ascii|breakpoint|bytes\");\n var keywordMapper = this.createKeywordMapper({\n \"invalid.deprecated\": \"debugger\",\n \"support.function\": builtinFunctions,\n \"variable.language\": \"self|cls\",\n \"constant.language\": builtinConstants,\n \"keyword\": keywords\n }, \"identifier\");\n var strPre = \"[uU]?\";\n var strRawPre = \"[rR]\";\n var strFormatPre = \"[fF]\";\n var strRawFormatPre = \"(?:[rR][fF]|[fF][rR])\";\n var decimalInteger = \"(?:(?:[1-9]\\\\d*)|(?:0))\";\n var octInteger = \"(?:0[oO]?[0-7]+)\";\n var hexInteger = \"(?:0[xX][\\\\dA-Fa-f]+)\";\n var binInteger = \"(?:0[bB][01]+)\";\n var integer = \"(?:\" + decimalInteger + \"|\" + octInteger + \"|\" + hexInteger + \"|\" + binInteger + \")\";\n var exponent = \"(?:[eE][+-]?\\\\d+)\";\n var fraction = \"(?:\\\\.\\\\d+)\";\n var intPart = \"(?:\\\\d+)\";\n var pointFloat = \"(?:(?:\" + intPart + \"?\" + fraction + \")|(?:\" + intPart + \"\\\\.))\";\n var exponentFloat = \"(?:(?:\" + pointFloat + \"|\" + intPart + \")\" + exponent + \")\";\n var floatNumber = \"(?:\" + exponentFloat + \"|\" + pointFloat + \")\";\n var stringEscape = \"\\\\\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\\\\\abfnrtv'\\\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})\";\n this.$rules = {\n \"start\": [{\n token: \"comment\",\n regex: \"#.*$\"\n }, {\n token: \"string\",\n regex: strPre + '\"{3}',\n next: \"qqstring3\"\n }, {\n token: \"string\",\n regex: strPre + '\"(?=.)',\n next: \"qqstring\"\n }, {\n token: \"string\",\n regex: strPre + \"'{3}\",\n next: \"qstring3\"\n }, {\n token: \"string\",\n regex: strPre + \"'(?=.)\",\n next: \"qstring\"\n }, {\n token: \"string\",\n regex: strRawPre + '\"{3}',\n next: \"rawqqstring3\"\n }, {\n token: \"string\",\n regex: strRawPre + '\"(?=.)',\n next: \"rawqqstring\"\n }, {\n token: \"string\",\n regex: strRawPre + \"'{3}\",\n next: \"rawqstring3\"\n }, {\n token: \"string\",\n regex: strRawPre + \"'(?=.)\",\n next: \"rawqstring\"\n }, {\n token: \"string\",\n regex: strFormatPre + '\"{3}',\n next: \"fqqstring3\"\n }, {\n token: \"string\",\n regex: strFormatPre + '\"(?=.)',\n next: \"fqqstring\"\n }, {\n token: \"string\",\n regex: strFormatPre + \"'{3}\",\n next: \"fqstring3\"\n }, {\n token: \"string\",\n regex: strFormatPre + \"'(?=.)\",\n next: \"fqstring\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + '\"{3}',\n next: \"rfqqstring3\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + '\"(?=.)',\n next: \"rfqqstring\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + \"'{3}\",\n next: \"rfqstring3\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + \"'(?=.)\",\n next: \"rfqstring\"\n }, {\n token: \"keyword.operator\",\n regex: \"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|%|@|<<|>>|&|\\\\||\\\\^|~|<|>|<=|=>|==|!=|<>|=\"\n }, {\n token: \"punctuation\",\n regex: \",|:|;|\\\\->|\\\\+=|\\\\-=|\\\\*=|\\\\/=|\\\\/\\\\/=|%=|@=|&=|\\\\|=|^=|>>=|<<=|\\\\*\\\\*=\"\n }, {\n token: \"paren.lparen\",\n regex: \"[\\\\[\\\\(\\\\{]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\]\\\\)\\\\}]\"\n }, {\n token: [\"keyword\", \"text\", \"entity.name.function\"],\n regex: \"(def|class)(\\\\s+)([\\\\u00BF-\\\\u1FFF\\\\u2C00-\\\\uD7FF\\\\w]+)\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n include: \"constants\"\n }],\n \"qqstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"qstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"qqstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"qqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"qstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"qstring\"\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqqstring3\": [{\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqstring3\": [{\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqqstring\": [{\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"rawqqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqstring\": [{\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"rawqstring\"\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqqstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqqstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"fqqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqqstring3\": [{\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqstring3\": [{\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqqstring\": [{\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"rfqqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqstring\": [{\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqstringParRules\": [{\n token: \"paren.lparen\",\n regex: \"[\\\\[\\\\(]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\]\\\\)]\"\n }, {\n token: \"string\",\n regex: \"\\\\s+\"\n }, {\n token: \"string\",\n regex: \"'[^']*'\"\n }, {\n token: \"string\",\n regex: '\"[^\"]*\"'\n }, {\n token: \"function.support\",\n regex: \"(!s|!r|!a)\"\n }, {\n include: \"constants\"\n }, {\n token: 'paren.rparen',\n regex: \"}\",\n next: 'pop'\n }, {\n token: 'paren.lparen',\n regex: \"{\",\n push: \"fqstringParRules\"\n }],\n \"constants\": [{\n token: \"constant.numeric\",\n regex: \"(?:\" + floatNumber + \"|\\\\d+)[jJ]\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: floatNumber\n }, {\n token: \"constant.numeric\",\n regex: integer + \"[lL]\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: integer + \"\\\\b\"\n }, {\n token: [\"punctuation\", \"function.support\"],\n regex: \"(\\\\.)([a-zA-Z_]+)\\\\b\"\n }, {\n token: keywordMapper,\n regex: \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n }]\n };\n this.normalizeRules();\n};\noop.inherits(PythonHighlightRules, TextHighlightRules);\nexports.PythonHighlightRules = PythonHighlightRules;\n\n});\n\nace.define(\"ace/mode/folding/pythonic\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (markers) {\n this.foldingStartMarker = new RegExp(\"([\\\\[{])(?:\\\\s*)$|(\" + markers + \")(?:\\\\s*)(?:#.*)?$\");\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n var line = session.getLine(row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, match.index);\n if (match[2])\n return this.indentationBlock(session, row, match.index + match[2].length);\n return this.indentationBlock(session, row);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/python\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/python_highlight_rules\",\"ace/mode/folding/pythonic\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar PythonHighlightRules = require(\"./python_highlight_rules\").PythonHighlightRules;\nvar PythonFoldMode = require(\"./folding/pythonic\").FoldMode;\nvar Range = require(\"../range\").Range;\nvar Mode = function () {\n this.HighlightRules = PythonHighlightRules;\n this.foldingRules = new PythonFoldMode(\"\\\\:\");\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"#\";\n this.$pairQuotesAfter = {\n \"'\": /[ruf]/i,\n '\"': /[ruf]/i\n };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[:]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n };\n var outdents = {\n \"pass\": 1,\n \"return\": 1,\n \"raise\": 1,\n \"break\": 1,\n \"continue\": 1\n };\n this.checkOutdent = function (state, line, input) {\n if (input !== \"\\r\\n\" && input !== \"\\r\" && input !== \"\\n\")\n return false;\n var tokens = this.getTokenizer().getLineTokens(line.trim(), state).tokens;\n if (!tokens)\n return false;\n do {\n var last = tokens.pop();\n } while (last && (last.type == \"comment\" || (last.type == \"text\" && last.value.match(/^\\s+$/))));\n if (!last)\n return false;\n return (last.type == \"keyword\" && outdents[last.value]);\n };\n this.autoOutdent = function (state, doc, row) {\n row += 1;\n var indent = this.$getIndent(doc.getLine(row));\n var tab = doc.getTabString();\n if (indent.slice(-tab.length) == tab)\n doc.remove(new Range(row, indent.length - tab.length, row, indent.length));\n };\n this.$id = \"ace/mode/python\";\n this.snippetFileId = \"ace/snippets/python\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/python\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar XmlHighlightRules = function (normalize) {\n var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n this.$rules = {\n start: [\n { token: \"string.cdata.xml\", regex: \"<\\\\!\\\\[CDATA\\\\[\", next: \"cdata\" },\n {\n token: [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n regex: \"(<\\\\?)(\" + tagRegex + \")\", next: \"processing_instruction\"\n },\n { token: \"comment.start.xml\", regex: \"<\\\\!--\", next: \"comment\" },\n {\n token: [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n regex: \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next: \"doctype\", caseInsensitive: true\n },\n { include: \"tag\" },\n { token: \"text.end-tag-open.xml\", regex: \"\",\n next: \"start\"\n }],\n doctype: [\n { include: \"whitespace\" },\n { include: \"string\" },\n { token: \"xml-pe.doctype.xml\", regex: \">\", next: \"start\" },\n { token: \"xml-pe.xml\", regex: \"[-_a-zA-Z0-9:]+\" },\n { token: \"punctuation.int-subset\", regex: \"\\\\[\", push: \"int_subset\" }\n ],\n int_subset: [{\n token: \"text.xml\",\n regex: \"\\\\s+\"\n }, {\n token: \"punctuation.int-subset.xml\",\n regex: \"]\",\n next: \"pop\"\n }, {\n token: [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n regex: \"(<\\\\!)(\" + tagRegex + \")\",\n push: [{\n token: \"text\",\n regex: \"\\\\s+\"\n },\n {\n token: \"punctuation.markup-decl.xml\",\n regex: \">\",\n next: \"pop\"\n },\n { include: \"string\" }]\n }],\n cdata: [\n { token: \"string.cdata.xml\", regex: \"\\\\]\\\\]>\", next: \"start\" },\n { token: \"text.xml\", regex: \"\\\\s+\" },\n { token: \"text.xml\", regex: \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\" }\n ],\n comment: [\n { token: \"comment.end.xml\", regex: \"-->\", next: \"start\" },\n { defaultToken: \"comment.xml\" }\n ],\n reference: [{\n token: \"constant.language.escape.reference.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }],\n attr_reference: [{\n token: \"constant.language.escape.reference.attribute-value.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }],\n tag: [{\n token: [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n regex: \"(?:(<)|(\", next: \"start\" }\n ]\n }],\n tag_whitespace: [\n { token: \"text.tag-whitespace.xml\", regex: \"\\\\s+\" }\n ],\n whitespace: [\n { token: \"text.whitespace.xml\", regex: \"\\\\s+\" }\n ],\n string: [{\n token: \"string.xml\",\n regex: \"'\",\n push: [\n { token: \"string.xml\", regex: \"'\", next: \"pop\" },\n { defaultToken: \"string.xml\" }\n ]\n }, {\n token: \"string.xml\",\n regex: '\"',\n push: [\n { token: \"string.xml\", regex: '\"', next: \"pop\" },\n { defaultToken: \"string.xml\" }\n ]\n }],\n attributes: [{\n token: \"entity.other.attribute-name.xml\",\n regex: tagRegex\n }, {\n token: \"keyword.operator.attribute-equals.xml\",\n regex: \"=\"\n }, {\n include: \"tag_whitespace\"\n }, {\n include: \"attribute_value\"\n }],\n attribute_value: [{\n token: \"string.attribute-value.xml\",\n regex: \"'\",\n push: [\n { token: \"string.attribute-value.xml\", regex: \"'\", next: \"pop\" },\n { include: \"attr_reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }, {\n token: \"string.attribute-value.xml\",\n regex: '\"',\n push: [\n { token: \"string.attribute-value.xml\", regex: '\"', next: \"pop\" },\n { include: \"attr_reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }]\n };\n if (this.constructor === XmlHighlightRules)\n this.normalizeRules();\n};\n(function () {\n this.embedTagRules = function (HighlightRules, prefix, tag) {\n this.$rules.tag.unshift({\n token: [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n regex: \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n next: [\n { include: \"attributes\" },\n { token: \"meta.tag.punctuation.tag-close.xml\", regex: \"/?>\", next: prefix + \"start\" }\n ]\n });\n this.$rules[tag + \"-end\"] = [\n { include: \"attributes\" },\n { token: \"meta.tag.punctuation.tag-close.xml\", regex: \"/?>\", next: \"start\",\n onMatch: function (value, currentState, stack) {\n stack.splice(0);\n return this.token;\n } }\n ];\n this.embedRules(HighlightRules, prefix, [{\n token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n regex: \"(|$))\",\n next: tag + \"-end\"\n }, {\n token: \"string.cdata.xml\",\n regex: \"<\\\\!\\\\[CDATA\\\\[\"\n }, {\n token: \"string.cdata.xml\",\n regex: \"\\\\]\\\\]>\"\n }]);\n };\n}).call(TextHighlightRules.prototype);\noop.inherits(XmlHighlightRules, TextHighlightRules);\nexports.XmlHighlightRules = XmlHighlightRules;\n\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\nfunction is(token, type) {\n return token && token.type.lastIndexOf(type + \".xml\") > -1;\n}\nvar XmlBehaviour = function () {\n this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '\"' || text == \"'\") {\n var quote = text;\n var selected = session.doc.getTextRange(editor.getSelectionRange());\n if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n return {\n text: quote + selected + quote,\n selection: false\n };\n }\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n return {\n text: \"\",\n selection: [1, 1]\n };\n }\n if (!token)\n token = iterator.stepBackward();\n if (!token)\n return;\n while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n token = iterator.stepBackward();\n }\n var rightSpace = !rightChar || rightChar.match(/\\s/);\n if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n return {\n text: quote + quote,\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"string_dquotes\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '>') {\n var position = editor.getSelectionRange().start;\n var iterator = new TokenIterator(session, position.row, position.column);\n var token = iterator.getCurrentToken() || iterator.stepBackward();\n if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n return;\n if (is(token, \"reference.attribute-value\"))\n return;\n if (is(token, \"attribute-value\")) {\n var tokenEndColumn = iterator.getCurrentTokenColumn() + token.value.length;\n if (position.column < tokenEndColumn)\n return;\n if (position.column == tokenEndColumn) {\n var nextToken = iterator.stepForward();\n if (nextToken && is(nextToken, \"attribute-value\"))\n return;\n iterator.stepBackward();\n }\n }\n if (/^\\s*>/.test(session.getLine(position.row).slice(position.column)))\n return;\n while (!is(token, \"tag-name\")) {\n token = iterator.stepBackward();\n if (token.value == \"<\") {\n token = iterator.stepForward();\n break;\n }\n }\n var tokenRow = iterator.getCurrentTokenRow();\n var tokenColumn = iterator.getCurrentTokenColumn();\n if (is(iterator.stepBackward(), \"end-tag-open\"))\n return;\n var element = token.value;\n if (tokenRow == position.row)\n element = element.substring(0, position.column - tokenColumn);\n if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n return;\n return {\n text: \">\" + \"\",\n selection: [1, 1]\n };\n }\n });\n this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n if (text == \"\\n\") {\n var cursor = editor.getCursorPosition();\n var line = session.getLine(cursor.row);\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.type.indexOf(\"tag-close\") !== -1) {\n if (token.value == \"/>\")\n return;\n while (token && token.type.indexOf(\"tag-name\") === -1) {\n token = iterator.stepBackward();\n }\n if (!token) {\n return;\n }\n var tag = token.value;\n var row = iterator.getCurrentTokenRow();\n token = iterator.stepBackward();\n if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n return;\n }\n if (this.voidElements && !this.voidElements[tag]) {\n var nextToken = session.getTokenAt(cursor.row, cursor.column + 1);\n var line = session.getLine(row);\n var nextIndent = this.$getIndent(line);\n var indent = nextIndent + session.getTabString();\n if (nextToken && nextToken.value === \" -1;\n}\n(function () {\n this.getFoldWidget = function (session, foldStyle, row) {\n var tag = this._getFirstTagInLine(session, row);\n if (!tag)\n return this.getCommentFoldWidget(session, row);\n if (tag.closing || (!tag.tagName && tag.selfClosing))\n return foldStyle === \"markbeginend\" ? \"end\" : \"\";\n if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n return \"\";\n if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n return \"\";\n return \"start\";\n };\n this.getCommentFoldWidget = function (session, row) {\n if (/comment/.test(session.getState(row)) && /';\n break;\n }\n }\n return tag;\n }\n else if (is(token, \"tag-close\")) {\n tag.selfClosing = token.value == '/>';\n return tag;\n }\n tag.start.column += token.value.length;\n }\n return null;\n };\n this._findEndTagInLine = function (session, row, tagName, startColumn) {\n var tokens = session.getTokens(row);\n var column = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n column += token.value.length;\n if (column < startColumn)\n continue;\n if (is(token, \"end-tag-open\")) {\n token = tokens[i + 1];\n if (token && token.value == tagName)\n return true;\n }\n }\n return false;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n var tags = session.getMatchingTags({ row: row, column: 0 });\n if (tags) {\n return new Range(tags.openTag.end.row, tags.openTag.end.column, tags.closeTag.start.row, tags.closeTag.start.column);\n }\n else {\n return this.getCommentFoldWidget(session, row)\n && session.getCommentFoldRange(row, session.getLine(row).length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/xml_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/xml\",\"ace/worker/worker_client\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextMode = require(\"./text\").Mode;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\nvar XmlBehaviour = require(\"./behaviour/xml\").XmlBehaviour;\nvar XmlFoldMode = require(\"./folding/xml\").FoldMode;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar Mode = function () {\n this.HighlightRules = XmlHighlightRules;\n this.$behaviour = new XmlBehaviour();\n this.foldingRules = new XmlFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.voidElements = lang.arrayToMap([]);\n this.blockComment = { start: \"\" };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/xml_worker\", \"Worker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"error\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/xml\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/xml\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/theme/github-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \"/* CSS style content from github's default pygments highlighter template.\\n Cursor and selection styles from textmate.css. */\\n.ace-github .ace_gutter {\\n background: #e8e8e8;\\n color: #AAA;\\n}\\n\\n.ace-github {\\n background: #fff;\\n color: #000;\\n}\\n\\n.ace-github .ace_keyword {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_string {\\n color: #D14;\\n}\\n\\n.ace-github .ace_variable.ace_class {\\n color: teal;\\n}\\n\\n.ace-github .ace_constant.ace_numeric {\\n color: #099;\\n}\\n\\n.ace-github .ace_constant.ace_buildin {\\n color: #0086B3;\\n}\\n\\n.ace-github .ace_support.ace_function {\\n color: #0086B3;\\n}\\n\\n.ace-github .ace_comment {\\n color: #998;\\n font-style: italic;\\n}\\n\\n.ace-github .ace_variable.ace_language {\\n color: #0086B3;\\n}\\n\\n.ace-github .ace_paren {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_boolean {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_string.ace_regexp {\\n color: #009926;\\n font-weight: normal;\\n}\\n\\n.ace-github .ace_variable.ace_instance {\\n color: teal;\\n}\\n\\n.ace-github .ace_constant.ace_language {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_cursor {\\n color: black;\\n}\\n\\n.ace-github.ace_focus .ace_marker-layer .ace_active-line {\\n background: rgb(255, 255, 204);\\n}\\n.ace-github .ace_marker-layer .ace_active-line {\\n background: rgb(245, 245, 245);\\n}\\n\\n.ace-github .ace_marker-layer .ace_selection {\\n background: rgb(181, 213, 255);\\n}\\n\\n.ace-github.ace_multiselect .ace_selection.ace_start {\\n box-shadow: 0 0 3px 0px white;\\n}\\n/* bold keywords cause cursor issues for some fonts */\\n/* this disables bold style for editor and keeps for static highlighter */\\n.ace-github.ace_nobold .ace_line > span {\\n font-weight: normal !important;\\n}\\n\\n.ace-github .ace_marker-layer .ace_step {\\n background: rgb(252, 255, 0);\\n}\\n\\n.ace-github .ace_marker-layer .ace_stack {\\n background: rgb(164, 229, 101);\\n}\\n\\n.ace-github .ace_marker-layer .ace_bracket {\\n margin: -1px 0 0 -1px;\\n border: 1px solid rgb(192, 192, 192);\\n}\\n\\n.ace-github .ace_gutter-active-line {\\n background-color : rgba(0, 0, 0, 0.07);\\n}\\n\\n.ace-github .ace_marker-layer .ace_selected-word {\\n background: rgb(250, 250, 255);\\n border: 1px solid rgb(200, 200, 250);\\n}\\n\\n.ace-github .ace_invisible {\\n color: #BFBFBF\\n}\\n\\n.ace-github .ace_print-margin {\\n width: 1px;\\n background: #e8e8e8;\\n}\\n\\n.ace-github .ace_indent-guide {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\n}\\n\\n.ace-github .ace_indent-guide-active {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC\\\") right repeat-y;\\n}\\n\";\n\n});\n\nace.define(\"ace/theme/github\",[\"require\",\"exports\",\"module\",\"ace/theme/github-css\",\"ace/lib/dom\"], function(require, exports, module){exports.isDark = false;\nexports.cssClass = \"ace-github\";\nexports.cssText = require(\"./github-css\");\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass, false);\n\n}); (function() {\n ace.require([\"ace/theme/github\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","module.exports = require(\"react-dom\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"\";","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"prop-types\");","import { createContext } from 'react';\n\nconst AccordionContext = createContext();\n\nexport default AccordionContext;\n","import { createContext } from 'react';\n\nconst AccordionItemContext = createContext();\n\nexport default AccordionItemContext;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Icon({\n className,\n family,\n type,\n weight,\n ...rest\n}) {\n function getCSSClasses() {\n const fontFamily = family || 'fa';\n const fontWeight = fontFamily === 'fa' ? `fa-${weight || 'regular'}` : '';\n\n return [\n 'tyk-icon',\n fontFamily !== 'fa' && fontFamily,\n `${fontFamily}-${type}`,\n fontWeight,\n className,\n ].filter(Boolean).join(' ');\n }\n\n return ;\n}\n\nIcon.propTypes = {\n // Additional CSS classes to apply\n className: PropTypes.string,\n // Font family to use. Default is 'fa'.\n family: PropTypes.string,\n // Icon type to use\n type: PropTypes.string.isRequired,\n // Icon weight to use. Only applicable for Font Awesome icons. Default is 'regular'. Also supports 'light' and 'solid'\n weight: PropTypes.string\n};\n\nexport default Icon;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport AccordionItemContext from './AccordionItemContext';\n\nfunction ItemTrigger({ wrap }) {\n const { collapsed, disabled, toggleChange } = useContext(AccordionItemContext);\n\n const iconType = collapsed ? 'chevron-down' : 'chevron-up';\n const classes = [\n 'tyk-accordion__trigger',\n disabled && 'tyk-accordion__trigger--disabled',\n ].filter(Boolean).join(' ');\n const trigger = (\n \n \n \n );\n\n return wrap\n ?
    {trigger}
    \n : trigger;\n}\n\nItemTrigger.propTypes = {\n wrap: PropTypes.bool,\n};\n\nexport default ItemTrigger;\n","import React, {\n useMemo, useState, useContext, forwardRef,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport AccordionContext from './AccordionContext';\nimport AccordionItemContext from './AccordionItemContext';\nimport ItemTrigger from './AccordionItemTrigger';\n\nfunction AccordionItem({\n collapsed: collapsedProp,\n children,\n className,\n disabled,\n}, ref) {\n const { arrow } = useContext(AccordionContext);\n const [collapsed, setCollapsed] = useState(collapsedProp);\n\n const toggleChange = () => {\n if (disabled) {\n return;\n }\n\n setCollapsed(!collapsed);\n };\n\n const classes = useMemo(() => [\n 'tyk-accordion__item',\n arrow.expandToContent\n ? `tyk-accordion__item--trigger-position-${arrow.position}`\n : 'tyk-accordion__item--trigger-in-header',\n className,\n collapsed === false && 'tyk-accordion__item--active',\n ].filter(Boolean).join(' '), [arrow, className, collapsed]);\n\n const contextValue = useMemo(() => ({\n collapsed,\n disabled,\n toggleChange,\n }), [collapsed, disabled, toggleChange]);\n\n return (\n
    \n \n {arrow.expandToContent && (\n \n )}\n {children}\n \n
    \n );\n}\n\nAccordionItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n collapsed: PropTypes.bool,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n};\n\nAccordionItem.defaultProps = {\n collapsed: false,\n};\n\nexport default forwardRef(AccordionItem);\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport AccordionContext from './AccordionContext';\nimport AccordionItemContext from './AccordionItemContext';\nimport ItemTrigger from './AccordionItemTrigger';\n\nfunction AccordionItemHeader({ className, children }) {\n const { collapsed, disabled, toggleChange } = useContext(AccordionItemContext);\n const { usearrowastrigger, arrow } = useContext(AccordionContext);\n const iconType = collapsed ? 'chevron-down' : 'chevron-up';\n const classes = [\n 'tyk-accordion__item-header',\n usearrowastrigger && 'tyk-accordion__arrow-trigger',\n className,\n ].filter(Boolean).join(' ');\n\n return (\n
    \n {\n !usearrowastrigger\n ? (\n \n {children}\n \n \n )\n : (\n <>\n {!arrow.expandToContent && arrow.position === 'left' && (\n \n )}\n
    {children}
    \n {!arrow.expandToContent && arrow.position === 'right' && (\n \n )}\n \n )\n }\n
    \n );\n}\n\nAccordionItemHeader.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n};\n\nexport default AccordionItemHeader;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-transition-group\");","import { useCallback, useState, useLayoutEffect } from 'react';\n\nconst getSize = (el) => {\n if (!el) {\n return {\n width: 0,\n height: 0,\n };\n }\n\n return {\n width: el.offsetWidth,\n height: el.offsetHeight,\n };\n};\n\nconst useComponentSize = (ref) => {\n const [componentSize, setComponentSize] = useState(getSize(ref ? ref.current : {}));\n const handleResize = useCallback(() => {\n if (ref.current) {\n setComponentSize(getSize(ref.current));\n }\n }, [ref]);\n\n useLayoutEffect(() => {\n handleResize();\n\n let resizeObserver = new ResizeObserver(() => {\n handleResize();\n });\n resizeObserver.observe(ref.current);\n\n return () => {\n resizeObserver.disconnect(ref.current);\n resizeObserver = null;\n };\n }, [ref.current]);\n\n return componentSize;\n};\n\n/** @component */\nexport default useComponentSize;\n","import { useEffect, useRef } from 'react';\n\nconst useEventListener = (eventName, handler, element) => {\n const savedHandler = useRef();\n useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(() => {\n const isSupported = element?.addEventListener;\n if (!isSupported) {\n // eslint-disable-next-line consistent-return\n return;\n }\n\n const eventListener = (event) => savedHandler.current(event);\n element.addEventListener(eventName, eventListener);\n\n // eslint-disable-next-line consistent-return\n return () => {\n element.removeEventListener(eventName, eventListener);\n };\n }, [eventName, element]);\n};\n\n/** @component */\nexport default useEventListener;\n","import React, {\n useRef, useState, useCallback, useEffect,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { CSSTransition } from 'react-transition-group';\nimport { useEventListener, useComponentSize } from '../../hooks';\n\n/**\n * Collapsible is a component that helps you to collapse/expand any type of content\n */\nfunction Collapsible({\n className,\n collapsed,\n children,\n ...rest\n}) {\n const contentContainer = useRef(null);\n const collapseWrapper = useRef(null);\n const refContainerSize = useComponentSize(contentContainer);\n const [contentContainerStyle, setContentContainerStyle] = useState({\n // eslint-disable-next-line\n height: (collapsed) ? 0 : 'auto',\n });\n\n const setHeight = (height) => {\n setContentContainerStyle({\n height: `${height}px`,\n });\n };\n\n const getHeight = () => (contentContainer.current ? contentContainer.current.clientHeight : 0);\n\n const onEnter = () => {\n setHeight(getHeight());\n };\n\n const onExit = () => {\n setHeight(0);\n };\n\n useEffect(() => {\n if (!collapsed\n && refContainerSize?.height\n && contentContainerStyle.height !== refContainerSize?.height\n ) {\n setHeight(refContainerSize.height);\n }\n }, [refContainerSize.height]);\n\n const onWindowResize = useCallback(() => {\n if (!collapsed && contentContainer.current) {\n setHeight(getHeight());\n collapseWrapper.current.style.height = `${getHeight()}px`;\n }\n }, [collapsed, contentContainer.current]);\n\n useEventListener('resize', onWindowResize, window);\n\n return (\n \n \n \n { children }\n \n \n \n );\n}\n\nCollapsible.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** Describes if the content of Collapsible should be hidden or not */\n collapsed: PropTypes.bool,\n /** CSS classes that can be passed to the Collapsible element */\n className: PropTypes.string,\n};\n\nexport default Collapsible;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Collapsible from '../../Collapsible';\nimport AccordionItemContext from './AccordionItemContext';\n\nfunction AccordionItemContent({ children, className }) {\n const { collapsed } = useContext(AccordionItemContext);\n\n const classes = [\n 'tyk-accordion__item-content',\n className,\n ].filter(Boolean).join(' ');\n\n return (\n
    \n \n { children }\n \n
    \n );\n}\n\nAccordionItemContent.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n};\n\nexport default AccordionItemContent;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport AccordionItem from './js/AccordionItem';\nimport AccordionItemHeader from './js/AccordionItemHeader';\nimport AccordionItemContent from './js/AccordionItemContent';\nimport AccordionContext from './js/AccordionContext';\n\nfunction Accordion({\n className,\n children,\n usearrowastrigger,\n arrow = { position: 'right', expandToContent: false },\n}) {\n const classes = [\n 'tyk-accordion',\n className,\n ].filter(Boolean).join(' ');\n\n const contextValue = useMemo(() => ({\n usearrowastrigger,\n arrow,\n }), [usearrowastrigger, arrow]);\n\n return (\n
    \n \n {children}\n \n
    \n );\n}\n\nAccordion.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n usearrowastrigger: PropTypes.bool,\n arrow: PropTypes.shape({\n position: PropTypes.oneOf(['left', 'right']),\n expandToContent: PropTypes.bool,\n }),\n};\n\nAccordion.defaultProps = {\n usearrowastrigger: false,\n};\n\n// For Readme.md : Start\nAccordion.Item = AccordionItem;\nAccordion.Item.Header = AccordionItemHeader;\nAccordion.Item.Content = AccordionItemContent;\n// For Readme.md : End\n\nexport default Accordion;\n","import React, { cloneElement, forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../Icon';\n\n/**\n * Button component.\n */\nfunction Button(props, ref) {\n const {\n customButton,\n children,\n iconType,\n iconFamily,\n iconPosition,\n iconOnly,\n id,\n className,\n disabled,\n display,\n href,\n onClick,\n noStyle,\n size,\n theme,\n type,\n ...rest\n } = props;\n\n const getCssClasses = () => {\n const cssClasses = ['tyk-button'].concat(className ? className.split(' ') : []);\n const sizeClass = (size) ? `tyk-button--${size}` : 'tyk-button--md';\n const disabledClass = (disabled) ? 'disabled' : '';\n const displayClass = display || '';\n const themeClass = theme ? `tyk-button--${theme}` : '';\n const iconOnlyClass = iconOnly ? 'tyk-button--icon-only' : '';\n const noStyleClass = noStyle ? 'tyk-button--no-style' : '';\n\n cssClasses.push(iconOnlyClass);\n cssClasses.push(themeClass);\n cssClasses.push(sizeClass);\n cssClasses.push(disabledClass);\n cssClasses.push(displayClass);\n cssClasses.push(noStyleClass);\n\n if (iconType) {\n cssClasses.push(`icon-${iconPosition || 'left'}`);\n }\n\n return cssClasses.join(' ');\n };\n\n const getButtonIcon = (position) => {\n const iPos = iconPosition || 'left';\n\n return (\n (iconType && iPos === position)\n ? \n : null\n );\n };\n\n const getButtonType = () => {\n let buttonType;\n\n if (customButton) {\n return (\n <>\n { cloneElement(customButton, {\n className: getCssClasses(),\n disabled,\n })}\n \n );\n }\n\n if (href) {\n buttonType = (\n \n { getButtonIcon('left') }\n { children }\n { getButtonIcon('right') }\n \n );\n } else {\n buttonType = (\n // eslint-disable-next-line react/button-has-type\n \n { getButtonIcon('left') }\n { children && {children} }\n { getButtonIcon('right') }\n \n );\n }\n\n return buttonType;\n };\n\n return (\n getButtonType()\n );\n}\n\nButton.propTypes = {\n /**\n * Content of a button. Can be a DOM element or a React component\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n customButton: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n ]),\n className: PropTypes.string,\n /**\n * Display type: inline/block. Default is inline\n */\n display: PropTypes.string,\n /**\n * Sets the button disabled state\n */\n disabled: PropTypes.bool,\n /**\n * Having this property set the button will become a link\n */\n id: PropTypes.string,\n href: PropTypes.string,\n iconPosition: PropTypes.string, // left or right\n iconFamily: PropTypes.string,\n iconOnly: PropTypes.bool,\n iconType: PropTypes.string,\n noStyle: PropTypes.bool,\n /**\n * Callback function, called when the button si clicked\n */\n onClick: PropTypes.func,\n /**\n * Describes the appearence of the button (ex: primary, danger, primary-outline etc.)\n */\n theme: PropTypes.string,\n /**\n * Type of the button (ex: button, submit etc.)\n */\n type: PropTypes.string,\n /**\n * Describes the size of the button (sm, md, lg). Default one is md\n */\n size: PropTypes.string,\n};\n\nButton.defaultProps = {\n theme: '',\n type: 'button',\n};\n\nexport default forwardRef(Button);\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ButtonGroup({ className, children, label }, ref) {\n return (\n
    \n {Boolean(label) && }\n
    {children}
    \n
    \n );\n}\n\nButtonGroup.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n};\n\nexport default forwardRef(ButtonGroup);\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardHeader({\n right = null,\n children,\n}) {\n return (\n
    \n {children &&
    {children}
    }\n {right &&
    {right}
    }\n
    \n );\n}\n\nCardHeader.propTypes = {\n right: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardBody({\n align = 'top',\n children,\n}) {\n return (\n
    \n
    \n {children}\n
    \n
    \n );\n}\n\nCardBody.propTypes = {\n align: PropTypes.oneOf(['top', 'center', 'bottom']),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardBody;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardFooter({ children }) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardFooter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitle({\n maxLines = 1, // accepted values: 1, 2\n children,\n}) {\n return (\n

    \n {children}\n

    \n );\n}\n\nCardTitle.propTypes = {\n maxLines: PropTypes.number,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitle;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitleGroup({\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardTitleGroup.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitleGroup;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardSubTitle({\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardSubTitle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardSubTitle;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardSummary({\n maxLines = 2, // accepted values: 1, 2, 3, 4, 5\n children,\n}) {\n return (\n

    \n {children}\n

    \n );\n}\n\nCardSummary.propTypes = {\n maxLines: PropTypes.number,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardSummary;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitleIcon({\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardTitleIcon.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitleIcon;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport CardHeader from './CardHeader';\nimport CardBody from './CardBody';\nimport CardFooter from './CardFooter';\nimport CardTitle from './CardTitle';\nimport CardTitleGroup from './CardTitleGroup';\nimport CardSubTitle from './CardSubTitle';\nimport CardSummary from './CardSummary';\nimport CardTitleIcon from './CardTitleIcon';\n\nfunction Card({\n className = '',\n height = 'auto',\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCard.propTypes = {\n className: PropTypes.string,\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nCard.Header = CardHeader;\nCard.Body = CardBody;\nCard.Footer = CardFooter;\nCard.Title = CardTitle;\nCard.TitleGroup = CardTitleGroup;\nCard.Icon = CardTitleIcon;\nCard.SubTitle = CardSubTitle;\nCard.Summary = CardSummary;\n\nexport default Card;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"echarts\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"immutable\");","export default (func, wait, immediate) => {\n let timeout;\n return function debouncer(...args) {\n const context = this;\n const later = () => {\n timeout = null;\n if (!immediate) {\n func.apply(context, args);\n }\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) {\n func.apply(context, args);\n }\n };\n};\n","import { useEffect, useRef } from 'react';\n\nconst usePrevious = (value) => {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n};\n\n/** @component */\nexport default usePrevious;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Loader({ className, position = 'relative', withbackground = false }) {\n const classes = [\n 'loading',\n position,\n className,\n ].filter(Boolean).join(' ');\n\n const loader = (\n
    \n
    \n
    \n
    \n
    \n
    \n );\n\n return withbackground\n ?
    {loader}
    \n : loader;\n}\n\nLoader.propTypes = {\n /** add a class to loader */\n className: PropTypes.string,\n /** position of loader (absolute / relative) */\n position: PropTypes.string,\n /** defines weather loader should be renders with or without background */\n withbackground: PropTypes.bool,\n};\n\nexport default Loader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../Icon';\n\n/**\n * The Message component is used to highlight important content to the users.\n *\n * If the content you are displaying needs immediate attention or is a feedback,\n * consider using `toast` instead\n */\nfunction Message({\n children, theme, onClose, noMargin, className,\n}) {\n function getCssClasses() {\n return [\n 'tyk-message',\n `tyk-message--${theme || 'info'}`,\n noMargin && 'no-margin',\n className,\n ].filter(Boolean).join(' ');\n }\n\n const iconType = theme === 'success' ? 'check' : 'exclamation';\n\n return (\n
    \n \n
    \n { children }\n
    \n {onClose && (\n \n )}\n
    \n );\n}\n\nMessage.propTypes = {\n /** Set theme for message (eg. default, success, danger, etc) */\n theme: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** add a class to loader */\n className: PropTypes.string,\n /** Removes margins by adding `no-margin` class */\n noMargin: PropTypes.bool,\n /** Callback for clicking on the \"x\" */\n onClose: PropTypes.func,\n};\n\nexport default Message;\n","import React, {\n useState, useEffect, useMemo, useRef, memo,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport * as echarts from 'echarts';\nimport { fromJS } from 'immutable';\n\nimport debounce from '../../utils/debounce';\nimport { usePrevious } from '../../hooks';\nimport Loader from '../Loader';\nimport Message from '../Message';\nimport worldMap from './maps/world.json';\n\necharts.registerMap('world', worldMap);\n\nfunction Chart({\n areaStyleColors,\n dataLoaded,\n hasData,\n highlight,\n type,\n option,\n series,\n onChange,\n zoomStart,\n zoomEnd,\n title,\n seriesConfig = [],\n noDataComponent: noDataComponentProp = null,\n zoomColors,\n style,\n}) {\n const [tykChartInstance, setTykChartInstance] = useState(null);\n const chartWrapperRef = useRef(null);\n const onResize = () => {\n if (tykChartInstance) {\n tykChartInstance.resize();\n }\n };\n\n const noDataComponent = useMemo(\n () => (noDataComponentProp\n ? noDataComponentProp()\n : (\n \n No data to display\n \n )),\n [noDataComponentProp],\n );\n\n const lineBarChart = {\n defaultOpts: fromJS({\n title: {\n show: true,\n text: title,\n left: 0,\n },\n color: [],\n toolbox: {\n right: '0',\n orient: 'horizontal',\n itemSize: 15,\n showTitle: true,\n feature: null,\n },\n dataZoom: [{\n show: true,\n start: 0,\n end: 100,\n orient: 'horizontal',\n dataBackground: {\n lineStyle: {\n color: zoomColors?.lineStyle || '#368493',\n },\n areaStyle: {\n color: zoomColors?.areaStyle || '#368493',\n },\n },\n handleStyle: {\n color: zoomColors?.handleStyle || '#368493',\n },\n textStyle: {\n color: zoomColors?.textStyle || '#368493',\n },\n borderColor: 'transparent',\n fillerColor: zoomColors?.fillerColor || 'rgba(54, 132, 147, 0.1)',\n }],\n legend: {\n show: false,\n // data: [],\n // right: '1%',\n },\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'cross',\n },\n },\n grid: {\n left: '1%',\n right: '1%',\n bottom: '50px',\n top: '40px',\n containLabel: true,\n },\n xAxis: {\n boundaryGap: false,\n type: 'category',\n splitLine: {\n show: true,\n lineStyle: {\n type: 'dotted',\n color: '#F0F0F0',\n },\n },\n axisLine: {\n show: false,\n },\n axisTick: {\n show: false,\n },\n data: [],\n },\n yAxis: {\n min: 'dataMin',\n boundaryGap: true,\n axisPointer: {\n show: true,\n },\n splitLine: {\n lineStyle: {\n type: 'dotted',\n color: '#F0F0F0',\n },\n show: true,\n },\n axisLabel: {\n show: true,\n },\n axisLine: {\n show: true,\n },\n axisTick: {\n show: false,\n },\n type: 'value',\n },\n textStyle: {\n color: '#5a5a68',\n },\n series: [],\n animationEasing: 'elasticOut',\n }),\n seriesDefault: fromJS({\n data: [],\n type: 'line',\n areaStyle: {\n opacity: 1,\n color: areaStyleColors\n ? new echarts.graphic.LinearGradient(\n 0,\n 0,\n 1,\n 1,\n areaStyleColors.map((color, index) => ({\n offset: index,\n color,\n })),\n )\n : [],\n },\n smooth: false,\n symbolSize: 7,\n name: '',\n }),\n };\n\n const pieChart = {\n defaultOpts: fromJS({\n tooltip: {\n trigger: 'axis',\n formatter: '{b}: {c} ({d}%)',\n },\n legend: {\n orient: 'horizontal',\n x: 'left',\n y: 'top',\n data: [],\n },\n color: [],\n series: [],\n }),\n seriesDefault: fromJS({\n type: 'pie',\n center: [\n '50%',\n '55%',\n ],\n radius: [\n '50%',\n '75%',\n ],\n avoidLabelOverlap: false,\n animationType: 'scale',\n animationEasing: 'elasticOut',\n labelLine: {\n normal: {\n show: true,\n smooth: 0.2,\n length: 6,\n length2: 6,\n },\n },\n data: [],\n }),\n };\n\n const geoChart = {\n defaultOpts: fromJS({\n series: [],\n }),\n seriesDefault: fromJS({\n type: 'map',\n data: [],\n }),\n };\n\n const buildChartOptions = (selectedType, selectedOptions, selectedSeries) => {\n let finalOpts = {};\n switch (selectedType) {\n case 'pie': {\n finalOpts = pieChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n\n selectedSeries.forEach((entry) => {\n finalOpts.series.push(pieChart.seriesDefault.mergeDeep(fromJS(entry)).toJS());\n });\n\n break;\n }\n\n case 'geo': {\n finalOpts = geoChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n\n selectedSeries.forEach((entry) => {\n finalOpts.series.push(geoChart.seriesDefault.mergeDeep(fromJS(entry)).toJS());\n });\n\n break;\n }\n\n default: {\n finalOpts = lineBarChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n if (Array.isArray(selectedOptions.yAxis)) {\n finalOpts.yAxis = selectedOptions.yAxis;\n }\n\n selectedSeries.forEach((entry, index) => {\n const seriesData = {\n ...lineBarChart.seriesDefault.toJS(),\n ...seriesConfig[index],\n ...entry,\n };\n finalOpts.series.push(seriesData);\n });\n break;\n }\n }\n return finalOpts;\n };\n\n useEffect(() => {\n window.addEventListener('resize', onResize);\n\n return () => {\n window.removeEventListener('resize', onResize);\n };\n }, [tykChartInstance]);\n\n useEffect(() => {\n if (!chartWrapperRef?.current) return;\n\n setTykChartInstance(echarts.init(chartWrapperRef.current));\n\n // eslint-disable-next-line consistent-return\n return () => {\n if (tykChartInstance) {\n tykChartInstance.dispose();\n }\n };\n }, [chartWrapperRef.current]);\n\n const eventCallBack = (e) => {\n if (onChange) {\n onChange(e);\n }\n };\n\n useEffect(() => {\n let debouncedMethod;\n if (tykChartInstance) {\n debouncedMethod = debounce(eventCallBack, 500);\n tykChartInstance.on('dataZoom', debouncedMethod);\n tykChartInstance.on('restore', debouncedMethod);\n tykChartInstance.on('click', debouncedMethod);\n\n tykChartInstance.on('mousemove', (params) => {\n if (params.data) {\n tykChartInstance.getZr().setCursorStyle('pointer');\n }\n });\n }\n\n return () => {\n if (tykChartInstance) {\n tykChartInstance.off('dataZoom', debouncedMethod);\n tykChartInstance.off('restore', debouncedMethod);\n tykChartInstance.off('click', debouncedMethod);\n }\n };\n }, [tykChartInstance, onChange]);\n\n const prevInstance = usePrevious(tykChartInstance);\n const prevOption = usePrevious(option);\n const prevType = usePrevious(type);\n const prevSeries = usePrevious(series);\n useEffect(() => {\n if (\n tykChartInstance\n && (\n !fromJS(prevInstance)?.equals?.(fromJS(tykChartInstance))\n || !fromJS(prevOption)?.equals?.(fromJS(option))\n || (prevType !== type)\n || !fromJS(prevSeries).equals?.(fromJS(series))\n )\n ) {\n tykChartInstance.clear();\n tykChartInstance.setOption(buildChartOptions(type, option, series));\n tykChartInstance.dispatchAction({\n type: 'takeGlobalCursor',\n key: 'dataZoomSelect',\n dataZoomSelectActive: true,\n });\n }\n }, [tykChartInstance, option, series, type]);\n\n useEffect(() => {\n if (tykChartInstance && highlight) {\n tykChartInstance.dispatchAction({\n type: 'highlight',\n seriesIndex: highlight.seriesIndex,\n dataIndex: highlight.dataIndex,\n });\n tykChartInstance.dispatchAction({\n type: 'showTip',\n seriesIndex: highlight.seriesIndex,\n dataIndex: highlight.dataIndex,\n });\n }\n }, [highlight]);\n\n const prevZoomStart = usePrevious(zoomStart);\n const prevZoomEnd = usePrevious(zoomEnd);\n useEffect(() => {\n if (\n tykChartInstance\n && zoomStart !== -1\n && zoomEnd !== -1\n && (\n prevZoomStart !== zoomStart\n || prevZoomEnd !== zoomEnd\n )\n ) {\n tykChartInstance.dispatchAction({\n type: 'dataZoom',\n startValue: zoomStart,\n endValue: zoomEnd,\n });\n }\n }, [zoomStart, zoomEnd]);\n\n const getStyle = () => {\n const tempStyle = style || {};\n\n if (!tempStyle.height) {\n tempStyle.height = '300px';\n }\n if (!tempStyle.width) {\n tempStyle.width = '100%';\n }\n return tempStyle;\n };\n\n const chartHasData = () => (\n (dataLoaded && (hasData === false || hasData === true)) ? hasData : true\n );\n\n const getCssClasses = () => {\n const cssClasses = ['tyk-chart'];\n\n if (!dataLoaded) {\n cssClasses.push('tyk-chart--loading-chart');\n }\n\n if (!chartHasData()) {\n cssClasses.push('tyk-chart--no-data');\n }\n\n return cssClasses.join(' ');\n };\n\n return (\n
    \n {\n !dataLoaded\n ? \n : null\n }\n \n {\n chartHasData()\n ? null\n : noDataComponent\n }\n
    \n );\n}\n\nChart.propTypes = {\n areaStyleColors: PropTypes.instanceOf(Array),\n dataLoaded: PropTypes.bool,\n hasData: PropTypes.bool,\n highlight: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n PropTypes.instanceOf(Array),\n ]),\n noDataComponent: PropTypes.func,\n zoomStart: PropTypes.number,\n zoomEnd: PropTypes.number,\n zoomColors: PropTypes.instanceOf(Object),\n option: PropTypes.instanceOf(Object),\n onChange: PropTypes.func,\n style: PropTypes.instanceOf(Object),\n type: PropTypes.string,\n title: PropTypes.string,\n series: PropTypes.instanceOf(Array),\n seriesConfig: PropTypes.instanceOf(Object),\n};\n\nexport default memo(Chart);\n","import { useEffect, useRef } from 'react';\n\nconst useTimeout = (callback, delay) => {\n const savedCallback = useRef();\n\n useEffect(\n () => {\n savedCallback.current = callback;\n },\n [callback],\n );\n\n useEffect(\n () => {\n function tick() {\n savedCallback.current();\n }\n if (delay !== null) {\n const id = setTimeout(tick, delay);\n return () => clearTimeout(id);\n }\n\n return () => {};\n },\n [delay],\n );\n};\n\n/** @component */\nexport default useTimeout;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../../Message';\nimport { useTimeout } from '../../../hooks';\n\nfunction ToastMessage(props) {\n const {\n children,\n options,\n onClose,\n index,\n } = props;\n const opts = {\n theme: 'success',\n delay: 3000,\n ...options,\n };\n let timer;\n\n const handleClose = (itemIndex) => {\n onClose(itemIndex);\n clearTimeout(timer);\n };\n\n useTimeout(() => handleClose(index), opts.delay);\n\n return (\n handleClose(index)}\n >\n {children}\n \n );\n}\n\nToastMessage.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n options: PropTypes.instanceOf(Object),\n onClose: PropTypes.func,\n index: PropTypes.number,\n};\n\nexport default ToastMessage;\n","import React, {\n useEffect, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToastMessage from './ToastMessage';\n\nfunction ToastContainer(props) {\n const [messages, setMessages] = useState({});\n const {\n notify,\n } = props;\n\n const updateNotifications = (message, options) => {\n const msgID = Math.floor(Math.random() * 1000000);\n\n setMessages((prevMessages) => ({\n ...prevMessages,\n [msgID]: {\n message,\n options,\n },\n }));\n };\n\n useEffect(() => {\n notify(updateNotifications);\n }, [messages]);\n\n const onMessageClosed = (index) => {\n const tempMessages = { ...messages };\n delete tempMessages[index];\n setMessages((prevMessages) => {\n const newMessages = { ...prevMessages };\n delete newMessages[index];\n return newMessages;\n });\n };\n\n return (\n
    \n {\n Object.keys(messages).map((msgID) => (\n messages[msgID]\n ? (\n \n {messages[msgID].message}\n \n )\n : null\n ))\n }\n
    \n );\n}\n\nToastContainer.propTypes = {\n notify: PropTypes.func,\n};\n\nexport default ToastContainer;\n","import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport ToastContainer from './js/ToastContainer';\n\n/**\n * Toast is a service that displays dialogs\n * on the bottom right part of the screen.\n *\n * The dialogs can have one of the Tyk UI themes, so that\n * it would match it's purpose (i.e success message, error message)\n *\n */\nclass ToastCreator {\n constructor() {\n const el = document.createElement('div');\n el.className = 'tyk-toast';\n document.body.appendChild(el);\n const root = createRoot(el);\n root.render();\n }\n\n bindNotify = (fn) => {\n this.createNotification = fn;\n };\n\n notify(message, options) {\n if (this.createNotification) {\n this.createNotification(message, options);\n }\n }\n\n danger(message, options) {\n this.notify(message, { ...options, theme: 'danger' });\n }\n\n success(message, options) {\n this.notify(message, { ...options, theme: 'success' });\n }\n\n warning(message, options) {\n this.notify(message, { ...options, theme: 'warning' });\n }\n\n info(message, options) {\n this.notify(message, { ...options, theme: 'info' });\n }\n}\n\nconst toast = new ToastCreator();\n\nexport default toast;\n","import React, { createRef, useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport toast from '../Toast';\n\n/**\n * - CopyToClipboard is used to copy string for a user.\n * - Can be used normally with a text or a custom components (Eg. Button, Icon, etc)\n */\n\nfunction CopyToClipboard(props) {\n const {\n display, copy, children, onCopy, message = 'copied',\n } = props;\n const txtRef = createRef();\n const handleClick = useCallback(() => {\n if (onCopy) {\n onCopy();\n }\n\n if (!window.navigator.clipboard) {\n txtRef.current.select();\n document.execCommand('copy');\n toast.success(message);\n return;\n }\n window.navigator.clipboard.writeText(copy);\n toast.success(message);\n }, [onCopy, txtRef]);\n\n return (\n <>\n \n {children || display}\n \n {!window.navigator.clipboard ? (\n \n ) : null}\n \n );\n}\n\nCopyToClipboard.propTypes = {\n /** Message to be displayed after text is copied */\n message: PropTypes.string,\n /** Callback function executed after text is copied */\n onCopy: PropTypes.func,\n /** Text to be copied */\n copy: PropTypes.string.isRequired,\n /** Text to be displayed */\n display: PropTypes.string,\n /** Children of custom element if you are using any custom element */\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n ]),\n};\n\nexport default CopyToClipboard;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ModalFooter({ children }) {\n return (\n
    \n { children }\n
    \n );\n}\n\nModalFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default ModalFooter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ModalBody({ children }) {\n return (\n
    \n { children }\n
    \n );\n}\n\nModalBody.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default ModalBody;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { CSSTransition } from 'react-transition-group';\n\nimport Icon from '../Icon';\nimport ModalFooter from './js/ModalFooter';\nimport ModalBody from './js/ModalBody';\n\n/**\n * Modals add dialogs confirmation boxes, notifications, or completely custom content\n * - only one Modal can be opened at a time\n * - are unmounted when Modal is closed\n */\nfunction Modal({\n children,\n theme = 'none',\n disableCloseCommands = false,\n opened = false,\n onClose = () => {},\n size = 'md',\n className = '',\n showBackdrop = true,\n ...restProps\n}) {\n const modalClasses = [\n 'tyk-modal',\n `tyk-modal--theme-${theme}`,\n opened && 'opened',\n ].concat(className.split(' ')).filter(Boolean).join(' ');\n\n const backdropClasses = [\n 'tyk-modal__backdrop',\n opened && 'opened',\n ].filter(Boolean).join(' ');\n\n const themeIcon = {\n success: 'check',\n warning: 'exclamation',\n danger: 'exclamation',\n }[theme];\n\n return (\n <>\n {\n ReactDOM.createPortal(\n \n
    \n
    \n
    \n {theme !== 'none' && (\n
    \n \n
    \n )}\n { children }\n
    \n
    \n
    \n ,\n document.querySelector('body'),\n )\n }\n {showBackdrop && ReactDOM.createPortal(\n \n !disableCloseCommands && onClose()}\n onKeyDown={() => {}}\n type=\"button\"\n aria-label=\"Close\"\n />\n ,\n document.querySelector('body'),\n )}\n \n );\n}\n\nModal.Body = ModalBody;\nModal.Footer = ModalFooter;\n/* eslint-disable-next-line */\nModal.Header = ({ children }) => {\n console.warn('%cModal.Header%c is deprecated.', 'font-weight: bold', '');\n return (\n
    \n { children }\n
    \n );\n};\nModal.Header.propTypes = {\n children: PropTypes.element,\n};\n/* eslint-disable-next-line */\nModal.Title = ({ children }) => {\n console.warn('%cModal.Title%c is deprecated.', 'font-weight: bold', '');\n return (\n

    \n { children }\n

    \n );\n};\nModal.Title.propTypes = {\n children: PropTypes.element,\n};\n\nModal.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n /** one of \"success\", \"warning\", \"danger\", \"none\"; default is \"none\" */\n theme: PropTypes.string,\n /** If set on true, the Modal won't close when clicking on the overlay or by pressing ESC key */\n disableCloseCommands: PropTypes.bool,\n /** If true the Modal will be by default opened */\n opened: PropTypes.bool,\n /** Callback method when the Modal is closed */\n onClose: PropTypes.func,\n /** Width of the Moda: md or lg */\n size: PropTypes.string,\n showBackdrop: PropTypes.bool,\n};\n\nexport default Modal;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../Button';\nimport Modal from '../Modal';\n\n/**\n * Confirm component can be used to open a dialog () before a specific action\n */\nfunction Confirm(props) {\n const {\n children,\n title,\n description,\n confirmBtnText = 'Confirm',\n cancelBtnText = 'Cancel',\n } = props;\n const [open, setOpen] = useState(false);\n const [callback, setCallback] = useState(null);\n const [cancelCallback, setCancelCallback] = useState(null);\n\n const show = (callbackFunc, cancelCallbackFunc, beforeCallback) => (...args) => {\n if (beforeCallback) {\n beforeCallback(...args);\n }\n setOpen(true);\n setCallback(() => () => callbackFunc(...args));\n if (cancelCallbackFunc) {\n setCancelCallback(() => () => cancelCallbackFunc(...args));\n }\n };\n\n const hide = () => {\n setOpen(false);\n setCallback(null);\n setCancelCallback(null);\n };\n\n const cancel = () => {\n if (cancelCallback) {\n cancelCallback();\n }\n hide();\n };\n\n const confirm = () => {\n callback();\n hide();\n };\n\n return (\n <>\n {children(show)}\n \n \n

    {title}

    \n {description}\n
    \n \n \n {cancelBtnText}\n \n \n {confirmBtnText}\n \n \n
    \n \n );\n}\n\nConfirm.propTypes = {\n /** Sets the text for primary / confirmation button on opened modal */\n confirmBtnText: PropTypes.string,\n /** Sets the text for danger / abort button on opened modal */\n cancelBtnText: PropTypes.string,\n /** Sets the title for the opened modal */\n title: PropTypes.string,\n /** Sets the description for the opened modal */\n description: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n PropTypes.func,\n ]),\n};\n\nexport default Confirm;\n","import React, { useCallback, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport debounce from '../../utils/debounce';\n\n/**\n * FixedWrapper component, keeps all its children in a fix position on the page,\n * even if the scroll position changes\n * i.e: The top navigation bar of a page sits within FixedWrapper component\n */\nfunction FixedWrapper({ children, className, showShadow }) {\n const fixedWrapperRef = useRef(null);\n\n const attachShadow = useCallback(() => {\n const element = fixedWrapperRef.current;\n\n if (!element) {\n return;\n }\n\n if (window.scrollY) {\n element.classList.add('tyk-fixed-wrapper--scrolled');\n } else {\n element.classList.remove('tyk-fixed-wrapper--scrolled');\n }\n }, [fixedWrapperRef.current]);\n\n const debouncedAttachShadow = useCallback(debounce(attachShadow, 100), [attachShadow]);\n\n useEffect(() => {\n if (showShadow) {\n window.addEventListener('scroll', debouncedAttachShadow);\n }\n\n return () => {\n window.removeEventListener('scroll', debouncedAttachShadow);\n };\n }, [debouncedAttachShadow, showShadow]);\n\n return (\n
    \n { children }\n
    \n );\n}\n\nFixedWrapper.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** Css classes that can be passed to the FixedWraper element */\n className: PropTypes.string,\n /** If true, bottom shadow on the FixedWrapper component\n * is being displayed when scroll happens\n */\n showShadow: PropTypes.bool,\n};\n\nFixedWrapper.defaultProps = {\n className: '',\n};\n\nexport default FixedWrapper;\n","import React, {\n useEffect, useState, useRef, useCallback,\n} from 'react';\nimport { PropTypes } from 'prop-types';\n\nimport debounce from '../../utils/debounce';\nimport { usePrevious, useComponentSize } from '../../hooks';\nimport Loader from '../Loader';\n\nfunction InfiniteScroller({\n children,\n hasMore,\n initialLoad,\n loadMore,\n pageNumber,\n refChild,\n}) {\n const [showLoader, setShowLoader] = useState(false);\n const containerRef = useRef(null);\n const refChildSize = useComponentSize(refChild);\n\n useEffect(() => {\n if (initialLoad && typeof loadMore === 'function') {\n setShowLoader(false);\n loadMore(pageNumber);\n }\n }, [initialLoad]);\n\n const shouldLoad = useCallback(() => {\n if (!containerRef.current) return false;\n const { clientHeight, scrollTop } = containerRef.current;\n\n return (\n hasMore\n && (\n (clientHeight + Math.round(scrollTop) === refChildSize.height)\n || (clientHeight >= refChildSize.height)\n )\n );\n }, [containerRef, refChildSize.height]);\n\n const loadMoreData = useCallback(() => {\n if (hasMore && typeof loadMore === 'function') {\n loadMore(pageNumber + 1);\n setShowLoader(true);\n } else {\n setShowLoader(false);\n }\n }, [hasMore, pageNumber]);\n\n const prevPageNumber = usePrevious(pageNumber);\n const scrollHandler = useCallback(debounce(() => {\n if (shouldLoad() && prevPageNumber <= pageNumber) {\n loadMoreData();\n }\n }, 200), [loadMoreData, shouldLoad]);\n\n useEffect(() => {\n containerRef.current?.addEventListener('scroll', scrollHandler);\n return () => containerRef.current?.removeEventListener('scroll', scrollHandler);\n }, [containerRef, scrollHandler]);\n\n // if content resets (page number resets) scroll to top\n useEffect(() => {\n if (prevPageNumber > 0 && pageNumber === 0) {\n containerRef.current.scrollTop = 0;\n }\n }, [containerRef, pageNumber]);\n\n const prevRefChildSize = usePrevious(refChildSize);\n useEffect(() => {\n if (\n refChildSize && prevRefChildSize\n && refChildSize.height !== prevRefChildSize.height\n && showLoader === true\n ) {\n setShowLoader(false);\n }\n }, [showLoader, refChildSize.height]);\n\n useEffect(() => {\n if (\n refChild && refChildSize.height < containerRef.current.clientHeight\n && refChildSize.height\n && hasMore\n ) {\n loadMoreData();\n }\n }, [containerRef, refChildSize, refChild, hasMore]);\n\n return (\n
    \n \n { children }\n
    \n {showLoader && (\n \n )}\n
    \n );\n}\n\nInfiniteScroller.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n hasMore: PropTypes.bool,\n initialLoad: PropTypes.bool,\n pageNumber: PropTypes.number,\n loadMore: PropTypes.func,\n refChild: PropTypes.instanceOf(Object),\n};\n\nInfiniteScroller.defaultProps = {\n hasMore: true,\n};\n\nexport default InfiniteScroller;\n","import React, {\n useEffect, useRef, forwardRef,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\nimport InfiniteScroller from '../InfiniteScroller';\n\nconst VIEWPORT_INITIAL_PADDING = 5;\n\n/**\n * It displays a container relative to another element.\n * Meant to be used for dropdowns, tooltips, and other similar components.\n */\nfunction FloatingContainer({\n element,\n size = 'auto',\n forceDisplay = 'auto',\n displayAxis = 'auto',\n preferredPosition,\n offset = 0,\n className,\n children,\n infiniteScrollerConfig,\n}, ref) {\n const localRef = useRef(null);\n const floatingContainerRef = ref || localRef;\n const contentWrapperRef = useRef(null);\n // offset calculated on first render to make sure the floating container is inside the viewport\n const viewportOffset = useRef(null);\n\n function determineDisplay() {\n const target = element.current;\n const container = floatingContainerRef.current;\n if (!container) return preferredPosition ?? displayAxis === 'vertical' ? 'bottom' : 'right';\n\n const { left, top } = target.getBoundingClientRect();\n const topSpace = top;\n const bottomSpace = window.innerHeight - top - target.offsetHeight;\n const leftSpace = left;\n const rightSpace = window.innerWidth - left - target.offsetWidth;\n const hasTopSpace = topSpace > container.scrollHeight;\n const hasBottomSpace = bottomSpace > container.scrollHeight;\n const hasLeftSpace = leftSpace > container.offsetWidth;\n const hasRightSpace = rightSpace > container.offsetWidth;\n const positionedVerticallyFitsInViewport = left + target.offsetWidth / 2 - container.offsetWidth / 2 > 0; // eslint-disable-line max-len\n const positionedHorizontallyFitsInViewport = top + target.offsetHeight / 2 - container.scrollHeight / 2 > 0; // eslint-disable-line max-len\n\n if (\n displayAxis === 'vertical'\n || (\n displayAxis === 'auto'\n && (hasTopSpace || hasBottomSpace)\n && positionedVerticallyFitsInViewport\n )\n ) {\n return getDisplayForVertical({\n preferredPosition, hasTopSpace, hasBottomSpace, topSpace, bottomSpace,\n });\n }\n\n if (displayAxis === 'horizontal') {\n return getDisplayForHorizontal({\n preferredPosition, hasLeftSpace, hasRightSpace, leftSpace, rightSpace,\n });\n }\n\n return getDisplayWhereItFits({\n preferredPosition,\n hasTopSpace,\n hasBottomSpace,\n hasLeftSpace,\n hasRightSpace,\n positionedHorizontallyFitsInViewport,\n positionedVerticallyFitsInViewport,\n });\n }\n\n function adjustPosition() {\n const display = forceDisplay !== 'auto' ? forceDisplay : determineDisplay();\n const target = element.current;\n const container = floatingContainerRef.current;\n\n if (!target || !container) return;\n\n const targetPosition = target.getBoundingClientRect();\n const { left: vpLeft, top: vpTop } = viewportOffset.current ?? { left: 0, top: 0 };\n\n if (display === 'top') {\n Object.assign(container.style, getStylesForTop({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (display === 'bottom') {\n Object.assign(container.style, getStylesForBottom({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (display === 'left') {\n Object.assign(container.style, getStylesForLeft({\n targetPosition, target, container, size, offset,\n }));\n }\n\n if (display === 'right') {\n Object.assign(container.style, getStylesForRight({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (viewportOffset.current !== null) return;\n\n if (size === 'matchEnd') {\n viewportOffset.current = { left: 0, top: 0 };\n } else {\n const left = Number(container.style.left.replace('px', ''));\n const top = Number(container.style.top.replace('px', ''));\n viewportOffset.current = {\n left: left < 0 ? VIEWPORT_INITIAL_PADDING - left : 0,\n top: top < 0 ? VIEWPORT_INITIAL_PADDING - top : 0,\n };\n }\n }\n\n useEffect(() => {\n window.requestAnimationFrame(function schedulePositionUpdate() {\n adjustPosition();\n window.requestAnimationFrame(schedulePositionUpdate);\n });\n }, []);\n\n return createPortal(\n \n \n \n {children}\n
    \n \n
    ,\n document.querySelector('body'),\n );\n}\n\nFloatingContainer.propTypes = {\n /** A DOM element that the floating container will be displayed relative to. */\n element: PropTypes.instanceOf(Object),\n className: PropTypes.string,\n /** The size of the container.\n * If `auto` the size will be determined by its contents.\n * If `matchElement` it will take the width or the height of the element depending\n * on the `displayAxis` prop.\n * It can also be a function that returns a number representing the width\n * or the height in pixels.\n */\n size: PropTypes.oneOfType([\n PropTypes.oneOf(['auto', 'matchElement', 'matchStart', 'matchEnd']),\n PropTypes.func,\n ]),\n /**\n * The distance between the element and the floating container.\n * It can be positive or negative.\n */\n offset: PropTypes.number,\n /**\n * If `auto` the component will try to determine where to display the container relative to the\n * element (top, bottom, left, right).\n * It can also be one of top, bottom, left, right, to force the floating container to always be\n * displayed in that position.\n */\n forceDisplay: PropTypes.oneOf(['auto', 'top', 'bottom', 'left', 'right']),\n /**\n * It can be `auto`, `vertical` or `horizontal`. It specifies the axis where\n * it will be displayed when `forceDisplay` is `auto`.\n */\n displayAxis: PropTypes.oneOf(['auto', 'vertical', 'horizontal']),\n /**\n * If there is space on both sides of the axis preffer this side.\n */\n preferredPosition: PropTypes.oneOf(['top', 'bottom', 'left', 'right']),\n /**\n * Configuration object that will be passed to the infinite scroller component.\n */\n infiniteScrollerConfig: PropTypes.instanceOf(Object),\n};\n\nexport default forwardRef(FloatingContainer);\n\nfunction getDisplayForVertical({\n preferredPosition, hasTopSpace, hasBottomSpace, topSpace, bottomSpace,\n}) {\n if (preferredPosition === 'top' && hasTopSpace) return 'top';\n if (preferredPosition === 'bottom' && hasBottomSpace) return 'bottom';\n return hasBottomSpace || bottomSpace > topSpace ? 'bottom' : 'top';\n}\n\nfunction getDisplayForHorizontal({\n preferredPosition, hasLeftSpace, hasRightSpace, leftSpace, rightSpace,\n}) {\n if (preferredPosition === 'left' && hasLeftSpace) return 'left';\n if (preferredPosition === 'right' && hasRightSpace) return 'right';\n return hasRightSpace || rightSpace > leftSpace ? 'right' : 'left';\n}\n\nfunction getDisplayWhereItFits({\n preferredPosition, hasTopSpace, hasBottomSpace, hasLeftSpace, hasRightSpace,\n positionedHorizontallyFitsInViewport, positionedVerticallyFitsInViewport,\n}) {\n if (hasTopSpace && positionedVerticallyFitsInViewport) return 'top';\n if (hasBottomSpace && positionedVerticallyFitsInViewport) return 'bottom';\n if (hasRightSpace && positionedHorizontallyFitsInViewport) return 'right';\n if (hasLeftSpace && positionedHorizontallyFitsInViewport) return 'left';\n return preferredPosition ?? 'bottom';\n}\n\nfunction getStylesForTop({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = {\n auto: targetPosition.left + target.offsetWidth / 2 - container.offsetWidth / 2,\n matchElement: targetPosition.left,\n matchStart: targetPosition.left,\n matchEnd: targetPosition.right - container.offsetWidth,\n }[size];\n const topPos = targetPosition.top - container.offsetHeight - offset;\n style.left = `${leftPos + vpLeft}px`;\n style.top = `${topPos + vpTop}px`;\n\n if (size === 'matchElement') {\n style.width = `${target.offsetWidth}px`;\n } else if (size === 'matchEnd') {\n style.maxWidth = `${targetPosition.right - VIEWPORT_INITIAL_PADDING}px`;\n } else if (typeof size === 'function') {\n style.width = `${size(target.offsetWidth)}px`;\n }\n style.maxHeight = `${targetPosition.top - offset}px`;\n return style;\n}\n\nfunction getStylesForBottom({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = {\n auto: targetPosition.left + target.offsetWidth / 2 - container.offsetWidth / 2,\n matchElement: targetPosition.left,\n matchStart: targetPosition.left,\n matchEnd: targetPosition.right - container.offsetWidth,\n }[size];\n const topPos = targetPosition.bottom + offset;\n style.left = `${leftPos + vpLeft}px`;\n style.top = `${topPos + vpTop}px`;\n\n if (size === 'matchElement') {\n style.width = `${target.offsetWidth}px`;\n } else if (size === 'matchEnd') {\n style.maxWidth = `${targetPosition.right - VIEWPORT_INITIAL_PADDING}px`;\n } else if (typeof size === 'function') {\n style.width = `${size(target.offsetWidth)}px`;\n }\n style.maxHeight = `${window.innerHeight - targetPosition.bottom - offset}px`;\n return style;\n}\n\nfunction getStylesForLeft({\n targetPosition, target, container, size, offset,\n}) {\n const style = {};\n const leftPos = targetPosition.left - container.offsetWidth - offset;\n const topPos = {\n auto: targetPosition.top + target.offsetHeight / 2 - container.offsetHeight / 2,\n matchElement: targetPosition.top,\n matchStart: targetPosition.top,\n matchEnd: targetPosition.bottom - container.offsetHeight,\n }[size];\n style.left = `${leftPos}px`;\n style.top = `${topPos}px`;\n\n if (size === 'matchElement') {\n style.height = `${target.offsetHeight}px`;\n } else if (typeof size === 'function') {\n style.height = `${size(target.offsetHeight)}px`;\n }\n style.maxWidth = `${targetPosition.left - offset}px`;\n return style;\n}\n\nfunction getStylesForRight({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = targetPosition.left + target.offsetWidth + offset;\n const topPos = {\n auto: targetPosition.top + target.offsetHeight / 2 - container.offsetHeight / 2,\n matchElement: targetPosition.top,\n matchStart: targetPosition.top,\n matchEnd: targetPosition.bottom - container.offsetHeight,\n }[size];\n style.left = size === 'auto' ? `${leftPos + vpLeft}px` : `${leftPos}px`;\n style.top = size === 'auto' ? `${topPos + vpTop}px` : `${topPos}px`;\n\n if (size === 'matchElement') {\n style.height = `${target.offsetHeight}px`;\n } else if (typeof size === 'function') {\n style.height = `${size(target.offsetHeight)}px`;\n }\n style.maxWidth = `${window.innerWidth - targetPosition.left - target.offsetWidth - offset}px`;\n return style;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../Message';\n\nfunction InfoNote({ children }) {\n return (\n
    \n \n { children }\n \n
    \n );\n}\n\nInfoNote.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default InfoNote;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ListItem(props) {\n const {\n className,\n children,\n selected,\n } = props;\n\n return (\n
  • \n {children}\n
  • \n );\n}\n\nListItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n selected: PropTypes.bool,\n};\n\nListItem.defaultProps = {\n className: '',\n};\n\nexport default ListItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ListItem from './js/ListItem';\n\nfunction List(props) {\n const {\n className,\n children,\n label,\n labelwidth,\n theme,\n style,\n } = props;\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-list'];\n\n if (theme) {\n cssClasses.push(`tyk-list--${theme}`);\n }\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n };\n\n const getListStyle = () => {\n const styleCopy = structuredClone(style);\n if (labelwidth) {\n styleCopy.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styleCopy;\n };\n\n return (\n
    \n {\n label !== undefined\n ? (\n \n )\n : null\n }\n
      \n {children}\n
    \n
    \n );\n}\n\nList.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n label: PropTypes.string,\n labelwidth: PropTypes.string,\n theme: PropTypes.string,\n style: PropTypes.instanceOf(Object),\n};\n\nList.defaultProps = {\n theme: 'default',\n style: {},\n};\n\nList.Item = ListItem;\n\nexport default List;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction NavBar({\n align = 'center',\n children,\n left,\n right,\n title,\n pre,\n subtitle,\n withTabs,\n}) {\n const subtitleContent = subtitle ?

    { subtitle }

    : null;\n return (\n
    \n
    \n {pre && (\n
    {pre}
    \n )}\n {\n title\n ? (\n
    \n

    { title }

    \n { subtitleContent }\n
    \n )\n : subtitleContent\n }\n
    \n {left && (\n
    { left }
    \n )}\n {right && (\n
    { right }
    \n )}\n
    \n
    \n { children }\n
    \n );\n}\n\nNavBar.propTypes = {\n align: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n title: PropTypes.string,\n subtitle: PropTypes.string,\n pre: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n left: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n right: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n withTabs: PropTypes.bool,\n};\n\nexport default NavBar;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction NavigationItem({ children }) {\n return (\n
  • \n {children}\n
  • \n );\n}\n\nNavigationItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nexport default NavigationItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport NavigationItem from './js/NavigationItem';\n\nfunction Navigation({ children }) {\n return (\n
      \n {children}\n
    \n );\n}\n\nNavigation.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nNavigation.Item = NavigationItem;\n\nexport default Navigation;\n","import { createContext } from 'react';\n\nexport const PortalContext = createContext();\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Collapsible from '../../Collapsible';\nimport { PortalContext } from '../panel-context';\n\nfunction PanelBody({\n children,\n noPadding,\n className,\n ...rest\n}) {\n const getCssClasses = useCallback(\n () => [\n 'tyk-panel__body',\n className,\n noPadding && 'no-padding',\n ].filter(Boolean).join(' '),\n [className, noPadding],\n );\n\n return (\n \n {\n (portalContext) => (\n portalContext.collapsable\n ? (\n \n { children }\n \n )\n : (\n \n { children }\n
    \n )\n )\n }\n \n );\n}\n\nPanelBody.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n noPadding: PropTypes.bool,\n className: PropTypes.string,\n};\n\nexport default PanelBody;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction PanelFooter(props) {\n const { children } = props;\n return (\n
    \n { children }\n
    \n );\n}\n\nPanelFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default PanelFooter;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport { PortalContext } from '../panel-context';\n\nclass PanelHeader extends Component {\n getCssClasses(props) {\n const { className } = this.props;\n let cssClasses = ['tyk-panel__header'];\n\n if (props.collapsable) {\n cssClasses.push('collapsable');\n }\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n }\n\n render() {\n const {\n children,\n } = this.props;\n\n return (\n \n {\n (portalContext) => {\n const HeaderTag = portalContext.theme === 'blank' ? 'h3' : 'div';\n const iconType = portalContext.collapsed ? 'chevron-down' : 'chevron-up';\n\n return (\n \n { children }\n {\n portalContext.collapsable\n ?
    \n : null\n }\n \n );\n }\n }\n
    \n );\n }\n}\n\nPanelHeader.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]).isRequired,\n className: PropTypes.string,\n};\n\nexport default PanelHeader;\n","import React, {\n useCallback, useEffect, useMemo, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport PanelBody from './js/PanelBody';\nimport PanelFooter from './js/PanelFooter';\nimport PanelHeader from './js/PanelHeader';\n\nimport { PortalContext } from './panel-context';\n\nfunction Panel(props) {\n const {\n children,\n className,\n collapsed,\n collapsable,\n theme,\n onToggleCollapse,\n collapsibleIconPosition = 'right',\n } = props;\n const [collapsedState, setCollapsedState] = useState(collapsed || false);\n\n useEffect(() => {\n if (collapsed !== collapsedState) {\n setCollapsedState(collapsed);\n }\n }, [collapsed]);\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-panel'];\n const panelTheme = `tyk-panel--${theme || 'default'}`;\n const collapsbleIconPosition = `tyk-panel__icon-collapse--${collapsibleIconPosition}`;\n\n cssClasses.push(panelTheme);\n cssClasses.push(collapsbleIconPosition);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n if (collapsedState) {\n cssClasses.push('tyk-panel--collapsed');\n }\n\n return cssClasses.join(' ');\n };\n\n const handleToggle = useCallback(() => {\n setCollapsedState(!collapsedState);\n\n if (onToggleCollapse) {\n onToggleCollapse(!collapsedState);\n }\n }, [collapsedState, onToggleCollapse]);\n\n const context = useMemo(() => ({\n collapsable,\n collapsed: collapsedState,\n onToggle: handleToggle,\n theme,\n collapsibleIconPosition,\n }), [collapsable, collapsedState, collapsibleIconPosition, theme, handleToggle]);\n\n return (\n
    \n \n {\n (typeof children === 'function')\n ? children({\n toggleCollapse: handleToggle,\n })\n : children\n }\n \n
    \n );\n}\n\nPanel.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n collapsable: PropTypes.bool,\n collapsibleIconPosition: PropTypes.string,\n collapsed: PropTypes.bool,\n theme: PropTypes.string,\n onToggleCollapse: PropTypes.func,\n};\n\nPanel.Body = PanelBody;\nPanel.Footer = PanelFooter;\nPanel.Header = PanelHeader;\n\nexport default Panel;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * Pill\n */\nfunction Pill(props) {\n const {\n children,\n className,\n theme,\n } = props;\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-pill', ...theme.split(' ').map((t) => `tyk-pill--${t}`)];\n\n if (className) {\n cssClasses = cssClasses.concat(className);\n }\n\n return cssClasses.join(' ');\n };\n\n return (\n
    \n {children}\n
    \n );\n}\n\nPill.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n /** Css classes that can be passed to the Pill element */\n className: PropTypes.string,\n /** Theme that can be applied to a Pill */\n theme: PropTypes.string,\n};\n\nPill.defaultProps = {\n theme: 'default',\n};\n\nexport default Pill;\n","import { useRef } from 'react';\n\n/**\n * RevealPanelService is a class that manages the resizing of a panel element.\n * It provides methods to set the panel's height, hide and show it, and attach\n * event listeners for resizing.\n */\nclass RevealPanelService {\n #state = null; // Private state for mouse interactions.\n\n #panel = null; // The panel element to be resized.\n\n #gutter = null; // The gutter element used for resizing.\n\n #wrapper = null; // The wrapper element that contains the panel and gutter.\n\n #onHeightChangeCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #onDragStartCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #onDragEndCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #dragStarted = false;\n\n /**\n * Sets a callback function to be executed when the panel is resized.\n * @param {function} callback - The callback function to be called on panel resize.\n */\n on(eventName, listener) {\n let list = null;\n if (eventName === 'onHeightChange') {\n list = this.#onHeightChangeCallbacks;\n } else if (eventName === 'onDragStart') {\n list = this.#onDragStartCallbacks;\n } else if (eventName === 'onDragEnd') {\n list = this.#onDragEndCallbacks;\n }\n\n if (list) {\n this.addListener(list, listener);\n }\n }\n\n off(eventName, listener) {\n let list = null;\n if (eventName === 'onHeightChange') {\n list = this.#onHeightChangeCallbacks;\n } else if (eventName === 'onDragStart') {\n list = this.#onDragStartCallbacks;\n } else if (eventName === 'onDragEnd') {\n list = this.#onDragEndCallbacks;\n }\n\n if (list) {\n this.removeListener(list, listener);\n }\n }\n\n /**\n * Sets the panel, gutter, and wrapper elements to be controlled by this class.\n * @param {HTMLElement} wrapper - The wrapper element containing the panel and gutter.\n * @param {HTMLElement} panel - The panel element to be resized.\n * @param {HTMLElement} gutter - The gutter element used for resizing.\n */\n setRefs(wrapper, panel, gutter) {\n if (this.#panel || this.#gutter || this.#wrapper) {\n this.unbindEvents();\n }\n this.#wrapper = wrapper;\n this.#panel = panel;\n this.#gutter = gutter;\n this.#state = null;\n this.bindEvents();\n }\n\n /**\n * Attaches event listeners for panel resizing.\n */\n bindEvents() {\n this.ensureRefs('bindEvents');\n this.#gutter.addEventListener('mousedown', this.onMouseDown.bind(this));\n document.addEventListener('mousemove', this.onMouseMove.bind(this));\n document.addEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n /**\n * Gets the current height of the panel.\n * @returns {number} - The height of the panel in pixels.\n */\n getHeight() {\n this.ensureRefs('getHeight');\n const size = this.#panel.getBoundingClientRect();\n return size.height;\n }\n\n /**\n * Handles the mouse down event, initiating the resizing process.\n * @param {MouseEvent} e - The mouse event object.\n */\n onMouseDown(e) {\n this.ensureRefs('onMouseDown');\n this.#state = {\n mouseDown: true,\n initialRect: this.#panel.getBoundingClientRect(),\n initialEvent: e,\n };\n }\n\n /**\n * Handles the mouse move event, adjusting the panel's height during resizing.\n * @param {MouseEvent} e - The mouse event object.\n */\n onMouseMove(e) {\n this.ensureRefs('onMouseMove');\n\n if (!this.#state) {\n return;\n }\n\n const isButtonDown = this.isPrimaryMouseButtonDown(e);\n if (!isButtonDown) {\n this.onMouseUp();\n return;\n }\n\n if (!this.#dragStarted) {\n this.#dragStarted = true;\n this.onDragStart.bind(this)();\n }\n\n const newY = this.#state.initialEvent.y - e.y;\n const finalHeight = Math.ceil(this.#state.initialRect.height + newY);\n this.setHeight(`${finalHeight}px`, 'mousemove');\n }\n\n // eslint-disable-next-line class-methods-use-this\n notifyListeners(list, value) {\n if (list && Array.isArray(list) && list.length) {\n list.forEach((fn) => {\n if (typeof fn === 'function') {\n fn(value);\n }\n });\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n addListener(list, listener) {\n if (list && Array.isArray(list) && typeof listener === 'function') {\n list.push(listener);\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n removeListener(list, listener) {\n if (list && Array.isArray(list) && typeof listener === 'function' && list.length) {\n const index = list.indexOf(listener);\n\n if (index > -1) {\n list.splice(index, 1);\n }\n }\n }\n\n onDragEnd() {\n if (this.#dragStarted) {\n this.notifyListeners(this.#onDragEndCallbacks, this.getHeight());\n }\n }\n\n onDragStart() {\n this.notifyListeners(this.#onDragStartCallbacks, this.getHeight());\n }\n\n // eslint-disable-next-line class-methods-use-this\n isPrimaryMouseButtonDown(e) {\n const flags = e.buttons !== undefined ? e.buttons : e.which;\n // eslint-disable-next-line no-bitwise\n const isDown = flags === 1;\n return isDown;\n }\n\n /**\n * Resets the state after the mouse up event, ending the resizing process.\n */\n onMouseUp() {\n this.#state = null;\n this.onDragEnd.bind(this)();\n this.#dragStarted = false;\n }\n\n /**\n * Sets the height of the panel.\n * @param {string} height - The new height value as a CSS string (e.g., \"100px\").\n */\n setHeight(height) {\n let heightVal = height;\n this.ensureRefs('setHeight');\n\n if (typeof heightVal === 'number') {\n heightVal += 'px';\n }\n\n this.#panel.style.height = heightVal;\n\n this.notifyListeners(this.#onHeightChangeCallbacks, this.getHeight());\n }\n\n /**\n * Ensures that the required elements (wrapper, panel, and gutter) are set.\n * Throws an error if they are missing.\n */\n ensureRefs(reason) {\n if (!this.#panel || !this.#gutter || !this.#wrapper) {\n throw new Error(\n `${reason}: Wrapper, panel, and gutter elements are required. Use setRefs method first.`,\n );\n }\n }\n\n /**\n * Checks if the panel is hidden.\n * @returns {boolean} - True if the panel is hidden; false otherwise.\n */\n isHidden() {\n this.ensureRefs('isHidden');\n return this.#wrapper.style.visibility === 'hidden';\n }\n\n /**\n * Hides the panel by setting its visibility to \"hidden\".\n */\n hide() {\n this.ensureRefs('hide');\n this.#wrapper.style.visibility = 'hidden';\n }\n\n /**\n * Shows the panel by setting its visibility to \"visible\".\n */\n show() {\n this.ensureRefs('show');\n this.#wrapper.style.visibility = 'visible';\n }\n\n /**\n * Unbinds the event listeners added for resizing.\n */\n unbindEvents() {\n this.#onHeightChangeCallbacks = [];\n this.#onDragStartCallbacks = [];\n this.#onDragEndCallbacks = [];\n this.#gutter.removeEventListener('mousedown', this.onMouseDown.bind(this));\n document.removeEventListener('mousemove', this.onMouseMove.bind(this));\n document.removeEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n deinit() {\n this.unbindEvents();\n }\n}\n\nexport const useRevealPanelService = () => {\n const revealPanelServiceRef = useRef(new RevealPanelService());\n return revealPanelServiceRef.current;\n};\n","import React, {\n useEffect,\n useRef,\n useImperativeHandle,\n forwardRef,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { createPortal } from 'react-dom';\nimport { useRevealPanelService } from './js/RevealPanelService';\n\nfunction RevealPanelHeaderLeft({ children }) {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <>{children};\n}\n\nRevealPanelHeaderLeft.propTypes = {\n children: PropTypes.instanceOf({}),\n};\n\nfunction RevealPanelHeaderRight({ children }) {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <>{children};\n}\n\nRevealPanelHeaderRight.propTypes = {\n children: PropTypes.instanceOf({}),\n};\n\nconst mergeClasses = (...classNames) => classNames.map((it) => (it || '').trim()).filter(Boolean).join(' ');\n\nfunction RevealPanel({\n children,\n height,\n onHeightChange = null,\n onDragStart = null,\n onDragEnd = null,\n style = null,\n parentSelector = null,\n contentStyle,\n contentClassName,\n gutterClassName,\n wrapperClassName,\n// eslint-disable-next-line consistent-return\n}, ref) {\n const panelRef = useRef(null);\n const gutterRef = useRef(null);\n const wrapperRef = useRef(null);\n\n const panelService = useRevealPanelService();\n\n useEffect(() => {\n if (!panelRef.current || !gutterRef.current || !wrapperRef.current) {\n return;\n }\n\n if (!panelService) {\n return;\n }\n\n panelService.setRefs(wrapperRef.current, panelRef.current, gutterRef.current);\n panelService.on('onHeightChange', onHeightChange);\n panelService.on('onDragStart', onDragStart);\n panelService.on('onDragEnd', onDragEnd);\n panelService.setHeight(height, 'initialize');\n\n // eslint-disable-next-line consistent-return\n return () => {\n panelService.unbindEvents();\n };\n }, []);\n\n useImperativeHandle(\n ref,\n () => {\n // bind this context\n const bind = (func) => func.bind(panelService);\n\n return {\n getHeight: bind(panelService.getHeight),\n setHeight: bind(panelService.setHeight),\n hide: bind(panelService.hide),\n show: bind(panelService.show),\n isHidden: bind(panelService.isHidden),\n deinit: bind(panelService.deinit),\n on: bind(panelService.on),\n off: bind(panelService.off),\n };\n },\n [],\n );\n\n let headerLeft = null;\n let headerRight = null;\n const contents = [];\n\n React.Children.forEach(children, (child) => {\n if (child && React.isValidElement(child)) {\n if (child.type === RevealPanelHeaderLeft) {\n headerLeft = child;\n } else if (child.type === RevealPanelHeaderRight) {\n headerRight = child;\n } else {\n contents.push(child);\n }\n }\n });\n\n const element = (\n
    \n
    \n
    \n\n
    {headerLeft}
    \n
    \n
    {headerRight}
    \n\n
    \n
    \n {contents}\n
    \n
    \n );\n\n if (parentSelector) {\n return createPortal(element, document.querySelector(parentSelector));\n }\n}\n\nRevealPanel.propTypes = {\n children: PropTypes.instanceOf({}),\n height: PropTypes.string,\n onHeightChange: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragEnd: PropTypes.func,\n parentSelector: PropTypes.string,\n style: PropTypes.instanceOf({}),\n contentStyle: PropTypes.instanceOf({}),\n contentClassName: PropTypes.string,\n gutterClassName: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\nconst TempRevealPanel = forwardRef(RevealPanel);\nTempRevealPanel.HeaderLeft = RevealPanelHeaderLeft;\nTempRevealPanel.HeaderRight = RevealPanelHeaderRight;\n\nexport default TempRevealPanel;\n","import { createContext } from 'react';\n\nexport const TabsContext = createContext();\n","import { createContext } from 'react';\n\nexport default createContext();\n","import React, { useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport TabContext from './TabContext';\nimport { usePrevious } from '../../../hooks';\n\nfunction TabContent(props) {\n const {\n addTab,\n hideTab,\n updateTab,\n showTab,\n children,\n selectedPath,\n tabData,\n tabsId,\n tabExists,\n path,\n rendered,\n hideTabContent,\n tabs,\n } = props;\n\n useEffect(() => {\n const tempTabData = { ...tabData };\n\n if (!tabExists(path)) {\n addTab(tempTabData, path);\n }\n }, [tabData, path]);\n\n const prevTabData = usePrevious(tabData);\n useEffect(() => {\n if (\n tabExists(path) && tabData?.title\n && (prevTabData?.title !== tabData?.title || prevTabData?.selected !== tabData.selected)\n ) {\n const tempTabData = { ...tabData };\n updateTab(tempTabData, path);\n }\n }, [tabData, path, prevTabData, tabs]);\n\n useEffect(() => {\n showTab(path);\n return () => hideTab(path);\n }, []);\n\n const shouldRender = useMemo(() => {\n if (!Object.keys(tabs).length) {\n return false;\n }\n\n if (hideTabContent || tabs[tabData.id].show === false) {\n return false;\n }\n\n if (!rendered) {\n return tabExists(path);\n }\n return selectedPath && selectedPath.indexOf(tabData.id) > -1;\n }, [hideTabContent, rendered, selectedPath, tabData, tabs]);\n\n const context = useMemo(() => ({ path, tabsId }), [path, tabsId]);\n\n if (!shouldRender) return null;\n return (\n
    -1 ? 'block' : 'none' }}>\n \n {children}\n \n
    \n );\n}\n\nTabContent.propTypes = {\n addTab: PropTypes.func,\n updateTab: PropTypes.func,\n hideTab: PropTypes.func,\n showTab: PropTypes.func,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n path: PropTypes.instanceOf(Array),\n hideTabContent: PropTypes.bool,\n rendered: PropTypes.bool,\n selectedPath: PropTypes.instanceOf(Array),\n tabExists: PropTypes.func,\n tabsId: PropTypes.string,\n tabData: PropTypes.instanceOf(Object),\n tabs: PropTypes.instanceOf(Object),\n};\n\nexport default TabContent;\n","import React, {\n useContext, useEffect, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { TabsContext } from '../tabs-context';\nimport TabContext from './TabContext';\nimport TabContent from './TabContent';\n\nfunction Tab(props) {\n const { id } = props;\n const tabsContext = useContext(TabsContext);\n const tabContext = useContext(TabContext);\n const {\n tabExists,\n selectedPath,\n addTab,\n updateTab,\n hideTab,\n showTab,\n rendered,\n hideTabContent,\n tabs,\n } = tabsContext;\n const {\n children,\n } = props;\n const [path, setPath] = useState('');\n\n useEffect(() => {\n let tempPath;\n if (tabContext && path) {\n if (tabContext.tabsId === tabsContext.id) {\n tempPath = tabContext.path.concat([id]);\n } else {\n tempPath = [id];\n }\n } else {\n tempPath = [id];\n }\n setPath(tempPath);\n }, [tabContext]);\n\n if (!path) {\n return null;\n }\n\n return (\n \n {children}\n \n );\n}\n\nTab.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n id: PropTypes.string,\n};\n\nTab.defaultProps = {};\n\nexport default Tab;\n","import React, {\n useEffect, useMemo, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport Tab from './js/Tab';\n\nimport Collapsible from '../Collapsible';\nimport Icon from '../Icon';\nimport { TabsContext } from './tabs-context';\n\nfunction Tabs(props) {\n const {\n children,\n className,\n id,\n onTabChange,\n type,\n hideTabContent,\n } = props;\n const [tabs, setTabs] = useState({});\n const [selectedPath, setSelectedPath] = useState([]);\n const [rendered, setRendered] = useState(false);\n const [initialPath, setInitialPath] = useState(null);\n\n useEffect(() => {\n setSelectedPath(initialPath);\n }, [initialPath]);\n\n const updateTabsList = (tabsState, path, tabData) => {\n let tempTabsState = { ...tabsState };\n const tempTabData = { ...tabData };\n const tempPath = path.slice(0);\n\n while (tempPath.length > 1) {\n tempTabsState = tempTabsState[tempPath.shift()];\n\n if (!tempTabsState) {\n tempTabsState = {};\n }\n }\n\n tempTabData.tempPath = tempPath;\n tempTabsState[tempPath.shift()] = tempTabData;\n\n return tempTabsState;\n };\n\n const toggleTab = (tabsState, path) => {\n let tempTabsState = { ...tabsState };\n const tempPath = path.slice(0);\n\n while (tempPath.length > 1) {\n tempTabsState = tempTabsState[tempPath.shift()];\n }\n\n const key = tempPath.shift();\n if (tempTabsState[key].collapsed === undefined) {\n tempTabsState[key].collapsed = true;\n } else {\n tempTabsState[key].collapsed = !tempTabsState[key].collapsed;\n }\n\n return tempTabsState;\n };\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-tabs'];\n\n cssClasses.push(`tyk-tabs--${type || 'default'}`);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n };\n\n const setCurrentSelectedPath = (path, tabData) => {\n const tempPath = path.slice(0);\n let tempRendered = true;\n\n if (tabData.collapsible) {\n tempPath.push(Object.keys(tabData.tabs)[0]);\n tempRendered = false;\n }\n\n setTabs((prevTabs) => {\n let tempTabs = { ...prevTabs };\n\n tempTabs = toggleTab(tempTabs, path);\n\n return tempTabs;\n });\n setSelectedPath(tempPath);\n setRendered(tempRendered);\n\n if (onTabChange) {\n onTabChange(tabData);\n }\n };\n\n const getTabCssClass = (tabId) => {\n const cssClasses = [];\n\n if (selectedPath && selectedPath.indexOf(tabId) > -1) {\n cssClasses.push('active');\n }\n\n return cssClasses.join(' ');\n };\n\n const genTabs = (currentTabs, path) => {\n if (!currentTabs) {\n return null;\n }\n\n return (\n
      \n {\n Object.keys(currentTabs).map((tabId, index) => {\n const tempPath = path ? path.concat([currentTabs[tabId].id]) : [currentTabs[tabId].id];\n const iconType = currentTabs[tabId].collapsed ? 'chevron-up' : 'chevron-down';\n\n if (currentTabs[tabId].show === false) {\n return null;\n }\n\n return (\n
    • \n \n { currentTabs[tabId].title }\n {\n currentTabs[tabId].collapsible\n ? \n : null\n }\n \n {\n currentTabs[tabId].collapsible\n ? (\n \n {genTabs(currentTabs[tabId].tabs, tempPath)}\n \n )\n : genTabs(currentTabs[tabId].tabs, tempPath)\n }\n
    • \n );\n })\n }\n
    \n );\n };\n\n const addTab = (tabData, path) => {\n setTabs((prevTabs) => updateTabsList({ ...prevTabs }, path, tabData));\n\n if (tabData.selected) {\n setInitialPath(path);\n }\n };\n\n const updateTab = (tabData, path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n tempTabs[tabData.id] = tabData;\n return tempTabs;\n });\n\n if (tabData.selected) {\n setCurrentSelectedPath(path, tabData);\n }\n };\n\n const hideTab = (path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n tempTabs[path].show = false;\n\n return tempTabs;\n });\n };\n\n const showTab = (path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n\n tempTabs[path].show = true;\n\n return tempTabs;\n });\n };\n\n const tabExists = (path) => {\n let tempTabs = { ...tabs };\n const tempPath = path.slice(0);\n while (tempPath.length > 1) {\n tempTabs = tempTabs[tempPath.shift()];\n }\n\n const key = tempPath.shift();\n\n return Boolean(tempTabs?.[key]);\n };\n\n const context = useMemo(() => ({\n id,\n addTab,\n hideTab,\n updateTab,\n showTab,\n tabExists,\n selectedPath,\n rendered,\n hideTabContent,\n tabs,\n }), [\n id,\n addTab,\n hideTab,\n updateTab,\n showTab,\n tabExists,\n selectedPath,\n rendered,\n hideTabContent,\n tabs,\n ]);\n\n return (\n
    \n {genTabs(tabs)}\n \n {\n (typeof children === 'function')\n ? children({\n hideTab,\n showTab,\n })\n : children\n }\n \n
    \n );\n}\n\nTabs.propTypes = {\n className: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n hideTabContent: PropTypes.bool,\n id: PropTypes.string,\n onTabChange: PropTypes.func,\n type: PropTypes.string,\n};\n\nTabs.Tab = Tab;\n\nexport default Tabs;\n","import React, {\n useCallback, useEffect, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport FloatingContainer from '../FloatingContainer';\nimport Icon from '../Icon';\n\nfunction Tooltip({\n render,\n className,\n children,\n position = 'auto',\n style,\n icon = false,\n closable,\n isOpened = false,\n additionalClickParents = [],\n ...props\n}) {\n const [isActive, setIsActive] = useState(false);\n const wrapperRef = useRef(null);\n const tooltipRef = useRef(null);\n const activeEvents = closable\n ? {\n onClick: () => setIsActive(true),\n }\n : {\n onMouseEnter: () => setIsActive(true),\n onMouseLeave: () => setIsActive(false),\n onFocus: () => setIsActive(true),\n onBlur: () => setIsActive(false),\n };\n\n const handleDocumentClick = useCallback((e) => {\n if ([...additionalClickParents, tooltipRef.current].some((p) => p?.contains?.(e.target))) {\n return;\n }\n setIsActive(false);\n }, [additionalClickParents]);\n\n useEffect(() => {\n document.addEventListener('click', handleDocumentClick, true);\n return () => document.removeEventListener('click', handleDocumentClick, true);\n }, [handleDocumentClick]);\n\n useEffect(() => {\n setIsActive(isOpened);\n }, [isOpened]);\n\n const classes = ['tyk-tooltip', className].filter(Boolean).join(' ');\n return (\n \n {children}\n {isActive && (\n \n
    \n {icon && (\n icon === true ? (\n \n ) : (\n icon\n )\n )}\n
    \n {render}\n
    \n {closable && (\n {\n e.stopPropagation();\n setIsActive(false);\n }}\n />\n )}\n
    \n \n )}\n
    \n );\n}\n\nTooltip.propTypes = {\n children: PropTypes.node.isRequired,\n /** custom styles to apply on hovered element */\n style: PropTypes.instanceOf(Object),\n /** describes where the tooltip should be displayed in relation\n * whith the hovered element: top, bottom, left, right\n */\n position: PropTypes.string,\n /** content of the tooltip, can be a string or a React node element */\n render: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.string,\n ]),\n /** additional tooltip classes */\n className: PropTypes.string,\n /** if `true` displays the \"question mark\" icon;\n * optionally you can pass a different icon\n */\n icon: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.node,\n ]),\n /** if `true` the tooltip is activated on click and an \"x\" is displayed to close it;\n * if `false` the tooltip is activated on hover and it closes when no longer hovering\n */\n closable: PropTypes.bool,\n /** handles the `isActive` state of the tooltip from outside */\n isOpened: PropTypes.bool,\n /** Additional dom elements to check if the document click was inside of them.\n * Useful when you want to open the tooltip after an interaction\n * with an element not inside the tooltip root.\n */\n additionalClickParents: PropTypes.instanceOf(Array),\n};\n\nexport default Tooltip;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Tooltip from '../Tooltip';\n/**\n * TextEllipsis component helps you to hide a part of a text,\n * but displaying it when it's being hovered.\n * The entire text is displayed with the help of Tooltip component\n */\n\nfunction TextEllipsis({ text, limit, position }) {\n return (\n text.length > limit\n ? (\n \n {text.substring(0, limit)}\n ...\n \n )\n : text\n );\n}\n\nTextEllipsis.propTypes = {\n /** Text to be shrinked by TextEllipsis */\n text: PropTypes.string,\n /** Number of characters that TextEllipsis would leave visible */\n limit: PropTypes.number,\n /** tooltip position */\n position: PropTypes.string,\n};\n\nexport default TextEllipsis;\n","import React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction shouldShowPage(currentNr, pageNr, totalNrOfPages) {\n const basePageNr = 5;\n const minimumNrOfPages = 10;\n\n if (totalNrOfPages < minimumNrOfPages) {\n return true;\n }\n\n if (\n pageNr < basePageNr\n && currentNr < basePageNr\n ) {\n return true;\n }\n\n if (\n pageNr > totalNrOfPages - basePageNr\n && currentNr > totalNrOfPages - basePageNr\n ) {\n return true;\n }\n\n if (\n currentNr >= pageNr - 2\n && currentNr <= pageNr + 2\n ) {\n return true;\n }\n\n return [0, 1, totalNrOfPages - 1, totalNrOfPages].includes(currentNr);\n}\n\nfunction getPagesArr(nrOfPages, selectedPage) {\n let i;\n const pagesArr = [];\n\n for (i = 0; i <= nrOfPages; i += 1) {\n if (shouldShowPage(i, selectedPage, nrOfPages)) {\n if (i > pagesArr.at(-1)) {\n pagesArr.push(`...-${i}`);\n }\n pagesArr.push(i + 1);\n }\n }\n\n return pagesArr;\n}\n\nfunction Pagination(props) {\n const {\n value = 0,\n totalNrOfPages,\n onChange,\n } = props;\n\n const [selectedPage, setSelectedPage] = useState(value);\n\n const pagesArray = useMemo(\n () => getPagesArr(totalNrOfPages, selectedPage),\n [selectedPage, totalNrOfPages],\n );\n\n function goToPage(pageNr) {\n setSelectedPage(pageNr);\n if (onChange) onChange(pageNr);\n }\n\n return (\n totalNrOfPages\n ? (\n
      \n {selectedPage > 0 && totalNrOfPages > 5 && (\n
    • \n \n
    • \n )}\n {\n pagesArray.map((pageNr) => (\n
    • \n {\n String(pageNr).startsWith('...')\n ? ...\n : \n }\n
    • \n ))\n }\n {selectedPage < totalNrOfPages && totalNrOfPages > 5 && (\n
    • \n \n
    • \n )}\n
    \n )\n : null\n );\n}\n\nPagination.propTypes = {\n value: PropTypes.number,\n totalNrOfPages: PropTypes.number,\n onChange: PropTypes.func,\n};\n\nexport default Pagination;\n","import { createContext } from 'react';\n\nexport const tableContext = createContext();\n","import React, { useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { tableContext } from '../tableContext';\nimport Icon from '../../Icon';\n\nexport function HeaderCell({ column }) {\n const { sortable } = column;\n const [sortOrder, setSortOrder] = useState(sortable?.default || 'ASC');\n const { state, sendMessage } = useContext(tableContext);\n return (\n {\n sendMessage('sort', { column, sortOrder });\n setSortOrder(sortOrder === 'ASC' ? 'DESC' : 'ASC');\n } : null}\n className={state.maxHeight ? 'fixed-header' : ''}\n >\n {column.name}\n {column.sortable && (\n \n \n \n )}\n \n );\n}\n\nHeaderCell.propTypes = {\n column: PropTypes.instanceOf(Object),\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { HeaderCell } from './header-cell';\nimport { tableContext } from '../tableContext';\n\nexport function Header({ allRowsSelected }) {\n const { state, sendMessage } = useContext(tableContext);\n const { columns, selectable } = state;\n\n const generateHeaders = () => columns.map((column) => (\n \n ));\n\n const generateSelectable = () => {\n const Component = selectable.type;\n return (\n \n {selectable?.allowSelectAll ? (\n
    \n {\n const isCheckbox = v?.target?.tagName.toLowerCase() === 'input' && v?.target?.type.toLowerCase() === 'checkbox';\n sendMessage('header.selectAll.change', isCheckbox ? v.target.checked : Boolean(v));\n }}\n >\n {selectable.values?.value}\n \n
    \n ) : (\n selectable.name || 'Select'\n )}\n \n );\n };\n\n return (\n \n \n {selectable?.position === 'LEFT' && generateSelectable()}\n {generateHeaders()}\n {selectable?.position === 'RIGHT' && generateSelectable()}\n \n \n );\n}\n\nHeader.propTypes = {\n allRowsSelected: PropTypes.bool,\n};\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * - Checkboxes are used when a user needs to select one or more values from a series of options.\n * - They can be also be used as a binary toggle but consider radio instead.\n * - Can be used with Formik respectively (FormikCheckbox)\n */\nclass Checkbox extends Component {\n getCssClasses() {\n const {\n inline, disabled, readOnly, theme = '', wrapperClassName = '',\n } = this.props;\n\n const cssClasses = [wrapperClassName];\n\n cssClasses.push('tyk-checkbox');\n\n if (inline) {\n cssClasses.push('tyk-checkbox--inline');\n }\n\n if (theme.trim()) {\n cssClasses.push(...theme.split(' ').map((t) => `tyk-checkbox--theme-${t}`));\n }\n\n if (disabled || readOnly) {\n cssClasses.push('tyk-checkbox--is-disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n displayError() {\n const { error } = this.props;\n if (!error) return null;\n\n return (\n

    \n {error}\n

    \n );\n }\n\n displayNote() {\n const { note } = this.props;\n if (!note) return null;\n\n return (\n

    \n {note}\n

    \n );\n }\n\n render() {\n const {\n input, value, label, ...rest\n } = this.props;\n return (\n \n
    \n \n {this.displayNote()}\n {this.displayError()}\n
    \n \n );\n }\n}\n\nCheckbox.propTypes = {\n /** Disable a checkbox */\n disabled: PropTypes.bool,\n /** Readonly prop behaves the same as disable on checkboxes */\n readOnly: PropTypes.bool,\n /** Align checkbox with in same line with other elements */\n inline: PropTypes.bool,\n /** Set a theme for checkbox */\n theme: PropTypes.string,\n /** Set an error state for checkbox if boolean will show just icon without message */\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Adds additional information under the checkbox element */\n note: PropTypes.string,\n input: PropTypes.instanceOf(Object),\n /** Adds a label to checkbox */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Set a name for checkbox */\n name: PropTypes.string,\n /** Set initial value for checkbox */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Make checkbox checked by default */\n checked: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Callback function executed on change of checkbox */\n onChange: PropTypes.func,\n /** CSS classes added to the wrapper of the component */\n wrapperClassName: PropTypes.string,\n};\n\nexport default Checkbox;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nexport function Cell({ col, row }) {\n if (!row.values[col.id]) {\n return ; // eslint-disable-line jsx-a11y/control-has-associated-label\n }\n\n if (col.type === 'string') {\n return (\n \n {row.values[col.id]?.value}\n \n );\n }\n const Component = col.type;\n return (\n \n \n {row.values[col.id].children ? row.values[col.id].children : null}\n
    \n \n );\n}\n\nCell.propTypes = {\n col: PropTypes.instanceOf(Object),\n row: PropTypes.instanceOf(Object),\n index: PropTypes.number,\n};\n","import React, { useCallback, useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport Checkbox from '../../../form/components/Checkbox';\nimport { Cell } from './cell';\nimport { tableContext } from '../tableContext';\n\nexport function Row({ row, index }) {\n const { state, sendMessage } = useContext(tableContext);\n const { columns, selectable } = state;\n\n const SelectableCheckbox = useCallback(() => (\n // eslint-disable-next-line jsx-a11y/control-has-associated-label\n \n sendMessage('row.selected', { index, selected: v.target.checked })}\n />\n \n ), [row.selected, index]);\n\n return (\n \n {selectable && selectable.position === 'LEFT' && SelectableCheckbox()}\n {columns.map((col) => (\n \n ))}\n {selectable && selectable.position === 'RIGHT' && SelectableCheckbox()}\n \n );\n}\n\nRow.propTypes = {\n row: PropTypes.instanceOf(Object),\n index: PropTypes.number,\n};\n","import React, { useContext } from 'react';\nimport { tableContext } from '../tableContext';\nimport { Row } from './row';\n\nexport function Body() {\n const { state } = useContext(tableContext);\n const { rows } = state;\n\n return (\n \n {\n // eslint-disable-next-line react/no-array-index-key\n rows.map((row, i) => )\n }\n \n );\n}\n","import React, {\n useCallback, useEffect, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport Message from '../Message';\nimport Pagination from '../../form/components/Pagination';\nimport Loader from '../Loader';\nimport InfiniteScroller from '../InfiniteScroller';\nimport { Header } from './js/header';\nimport { Body } from './js/body';\nimport { tableContext } from './tableContext';\n\n/**\n * This is tyk's table component used to render a data in a tabular view.\n * See the example configuration object below to understand how to hydrate the table component\n */\n\nfunction Table({\n value, onChange, noDataMessage, loading, infiniteScrolling,\n}) {\n const [state, setState] = useState(null);\n const [onChangeMsg, setOnChangeMsg] = useState('api');\n const itemsListRef = useRef(null);\n const sortRows = useCallback((col, sortOrder) => {\n setState((prevState) => ({\n ...prevState,\n sort: {\n order: sortOrder,\n col,\n },\n }));\n }, []);\n\n const selectAllRows = useCallback((selected) => {\n setState((prevState) => ({\n ...prevState,\n rows: prevState.rows.map((row) => ({ ...row, selected })),\n }));\n }, []);\n\n const selectRow = useCallback(({ index, selected }) => {\n setState((prevState) => ({\n ...prevState,\n rows: [\n ...prevState.rows.slice(0, index),\n { ...prevState.rows[index], selected },\n ...prevState.rows.slice(index + 1),\n ],\n }));\n }, []);\n\n const setPagination = useCallback((data) => {\n setState((prevState) => ({\n ...prevState,\n pagination: {\n ...prevState.pagination,\n current: data + 1,\n },\n }));\n }, []);\n\n const api = {\n getState: () => state,\n setState: (newState) => setState(newState),\n };\n\n const sendMessage = useCallback((message, data) => {\n setOnChangeMsg(message);\n if (message === 'sort') {\n sortRows(data.column.id, data.sortOrder);\n }\n\n if (message === 'header.selectAll.change') {\n selectAllRows(data);\n }\n\n if (message === 'row.selected') {\n selectRow(data);\n }\n\n if (message === 'pagination.change') {\n setPagination(data);\n }\n }, [sortRows, selectAllRows, selectRow, setPagination]);\n\n const context = useMemo(() => ({ state, sendMessage }), [state, sendMessage]);\n\n useEffect(() => setState(value), [value]);\n useEffect(() => {\n if (onChange) {\n onChange(onChangeMsg, state, api);\n }\n setOnChangeMsg('api');\n }, [state]);\n\n if (!state) {\n return ;\n }\n\n if (state.rows <= 0) {\n return {noDataMessage || 'No Data Available'};\n }\n\n const getTable = () => (\n \n
    selected)} />\n \n
    \n );\n\n return (\n \n
    \n {\n loading && \n }\n {\n infiniteScrolling && state.pagination\n ? (\n state.pagination.current}\n loadMore={(num) => sendMessage('pagination.change', num)}\n pageNumber={state.pagination.current - 1}\n initialLoad={false}\n >\n { getTable() }\n \n )\n : getTable()\n }\n
    \n {state.pagination && !infiniteScrolling && (\n
    \n sendMessage('pagination.change', num)}\n />\n
    \n )}\n
    \n );\n}\n\nTable.propTypes = {\n /** Configuration object used to render the component */\n value: PropTypes.shape({\n /** Configuration for table columns */\n columns: PropTypes.arrayOf(PropTypes.shape({\n /** Unique id of the column */\n id: PropTypes.string.isRequired,\n /** Name of the column */\n name: PropTypes.string,\n /** Type of column, String by default */\n type: PropTypes.oneOfType([\n /** Just renders cell data of type strings */\n PropTypes.string,\n /** Render cell of elements (eg. Input / Button) */\n PropTypes.element,\n /** Render a custom function/component */\n PropTypes.func,\n ]),\n sortable: PropTypes.oneOfType([\n /** Make Column sortable */\n PropTypes.bool,\n /** Configure sorting behaviour */\n PropTypes.shape({\n /** Set default sorting direction ASC / DESC */\n default: PropTypes.string,\n }),\n ]),\n })),\n /** Configuration for table rows */\n rows: PropTypes.arrayOf(PropTypes.shape({})),\n /** Configuration to make table rows selectable */\n selectable: PropTypes.shape({}),\n /** Renders pagination for table if the object is missing / empty no pagination is rendered. */\n pagination: PropTypes.shape({}),\n /** Sets maximum height for table container. */\n maxHeight: PropTypes.string,\n /** Styling for the table container. */\n styling: PropTypes.shape({\n /** It's recommended to add styles to a class and pass the class in this object */\n className: PropTypes.string,\n }),\n }).isRequired,\n /** Callback executed with message and value when there are changes on table */\n onChange: PropTypes.func,\n /** Renders a component with the given message when `config.rows` is empty */\n noDataMessage: PropTypes.string,\n /** Show placeholder loader */\n loading: PropTypes.bool,\n /** Adds infinite scroller on page and calls `onChange` with `pagination.change` message */\n infiniteScrolling: PropTypes.bool,\n};\n\nTable.defaultProps = {\n loading: false,\n infiniteScrolling: false,\n noDataMessage: 'No Data Available',\n onChange: null,\n};\n\nexport default Table;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Column({\n children,\n align,\n className,\n offset,\n size,\n ...rest\n}) {\n const classes = [\n 'tyk-col',\n className,\n align && `tyk-col--align-${align}`,\n ...size.split(' ').map((cSize) => `tyk-col--${cSize}`),\n ...(offset ? offset.split(' ') : []).map((cOffset) => `tyk-col--offset-${cOffset}`),\n ].filter(Boolean).join(' ');\n\n return (\n
    \n { children }\n
    \n );\n}\n\nColumn.propTypes = {\n /**\n * This property describes how the column element will be aligned vertically\n * within a Row: bottom, center, top\n */\n align: PropTypes.string,\n /** Css classes that can be passed to the column element */\n className: PropTypes.string,\n /**\n * Specifies the size of the column within a Row (values must be between 1 - 12)\n */\n size: PropTypes.string.isRequired,\n /**\n * Specifies the left gap a column can have within a Row (values must be between 1 - 12)\n */\n offset: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n ]),\n};\n\nexport default Column;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/** Row component which must be always present as a wrapper for Columns */\nfunction Row({\n className,\n nogutters,\n children,\n ...rest\n}) {\n const classes = [\n 'tyk-row',\n className,\n nogutters && 'no-gutters',\n nogutters && 'tyk-row--gutterless',\n ].filter(Boolean).join(' ');\n\n return (\n
    \n { children }\n
    \n );\n}\n\nRow.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n /** Css classes that can be passed to the Row element */\n className: PropTypes.string,\n /** Removes all the spaces between column */\n nogutters: PropTypes.bool,\n};\n\nexport default Row;\n","import { createContext } from 'react';\n\nexport const DropdownContext = createContext();\n","import React, { cloneElement, useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { DropdownContext } from '../dropdown-context';\nimport Icon from '../../../../components/Icon';\n\nfunction DropdownItem(props) {\n const {\n customdropdownitem,\n children,\n eventKey,\n href,\n target,\n title,\n onClick,\n } = props;\n const dropdownItemCLick = useCallback((dropdownContext, itemProps) => {\n dropdownContext.onSelectItem(eventKey, itemProps);\n\n if (onClick) onClick(eventKey);\n }, []);\n\n return (\n \n {\n (dropdownContext) => (\n dropdownItemCLick(dropdownContext, props)}\n onKeyUp={() => {}}\n >\n {\n customdropdownitem\n ? cloneElement(customdropdownitem, {})\n : (\n \n {\n eventKey\n && dropdownContext.selectedItem === eventKey\n && dropdownContext.showCheckmark\n ? \n : null\n }\n \n {title || children}\n \n \n )\n }\n \n )\n }\n \n );\n}\n\nDropdownItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n customdropdownitem: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n ]),\n eventKey: PropTypes.string,\n href: PropTypes.string,\n target: PropTypes.string,\n onClick: PropTypes.func,\n title: PropTypes.string,\n};\n\nexport default DropdownItem;\n","import React, {\n Component, createRef,\n} from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport DropdownItem from './js/DropdownItem';\nimport Button from '../../../components/Button';\nimport { DropdownContext } from './dropdown-context';\n\nclass Dropdown extends Component {\n static isElemInRightView(el, dropdownWidth) {\n const windowWidth = window.innerWidth;\n const offset = el.getBoundingClientRect();\n const elemRight = offset.left + dropdownWidth;\n\n return elemRight <= windowWidth;\n }\n\n static isElemInBottomView(el, dropdownHeight) {\n const windowHeight = window.innerHeight;\n const offset = el.getBoundingClientRect();\n const elHeight = el.clientHeight;\n const elemBottom = offset.top + elHeight + dropdownHeight;\n\n return elemBottom <= windowHeight;\n }\n\n constructor(props) {\n super(props);\n\n const {\n selectedItem,\n open,\n } = this.props;\n\n this.state = {\n opened: open,\n selectedItem: selectedItem || null,\n };\n\n this.dropdownRef = createRef();\n this.dropdownListRef = createRef();\n this.dropdownButtonRef = createRef();\n this.onSelectItem = this.onSelectItem.bind(this);\n this.toggleDropdown = this.toggleDropdown.bind(this);\n this.handleClickOutside = this.handleClickOutside.bind(this);\n }\n\n componentDidMount() {\n document.addEventListener('mousedown', this.handleClickOutside);\n\n if (this.dropdownListRef.current) {\n this.getStyles();\n }\n }\n\n componentDidUpdate(prevProps) {\n const {\n open,\n } = this.props;\n const {\n opened,\n } = this.state;\n\n if (this.dropdownListRef.current) {\n this.getStyles();\n }\n\n if (\n !prevProps.open\n && open === true\n && !opened\n ) {\n this.toggleDropdown();\n }\n\n if (\n prevProps.open\n && open === false\n && opened\n ) {\n this.closeDropdown();\n }\n }\n\n componentWillUnmount() {\n document.removeEventListener('mousedown', this.handleClickOutside);\n }\n\n handleClickOutside(event) {\n if (\n this.dropdownListRef.current && !this.dropdownListRef.current.contains(event.target)\n && this.dropdownRef.current && !this.dropdownRef.current.contains(event.target)\n ) {\n this.closeDropdown();\n }\n }\n\n onSelectItem(itemId, itemProps) {\n const { closeOnSelect, onSelect } = this.props;\n const changes = {\n selectedItem: itemId,\n selectedItemProps: itemProps,\n };\n\n if (closeOnSelect) {\n changes.opened = false;\n }\n\n this.setState(changes);\n\n if (onSelect && typeof onSelect === 'function') {\n onSelect(itemId);\n }\n }\n\n getStyles() {\n const {\n display,\n position,\n offset,\n } = this.props;\n\n const dropdownEl = this.dropdownListRef.current;\n\n if (offset) {\n dropdownEl.style.top = `${offset.top}`;\n dropdownEl.style.left = `${offset.left}`;\n return;\n }\n\n const scrollTop = Math.max(\n document.documentElement.scrollTop,\n document.body.scrollTop,\n window.scrollY,\n );\n const el = this.dropdownRef.current;\n const elHeight = el.clientHeight;\n const dropdownHeight = dropdownEl ? dropdownEl.clientHeight : 0;\n const dropdownWidth = dropdownEl ? dropdownEl.clientWidth : 0;\n const offsetPosition = el.getBoundingClientRect();\n const { left, top } = offsetPosition;\n let customTop = 0;\n let customLeft = left;\n\n // calculate top position, depending on the element position on the page\n if (Dropdown.isElemInBottomView(el, dropdownHeight)) {\n customTop = top + scrollTop + elHeight;\n } else {\n customTop = top + scrollTop - dropdownHeight - 5;\n }\n\n if (!Dropdown.isElemInRightView(el, dropdownWidth)) {\n customLeft = left + el.clientWidth - dropdownWidth;\n }\n\n if (position !== 'relative') {\n dropdownEl.style.top = `${customTop}px`;\n if (display !== 'block') {\n dropdownEl.style.left = `${customLeft}px`;\n }\n }\n if (display !== 'block') {\n dropdownEl.style.minWidth = `${this.dropdownButtonRef.current.clientWidth}px`;\n }\n }\n\n getWrapperCssClasses() {\n const {\n btnGroup,\n btnGroupSize,\n className,\n btnTheme,\n wrapperClassName = '',\n } = this.props;\n let cssClasses = [wrapperClassName, 'tyk-dropdown'];\n\n cssClasses.push(`theme-${btnTheme || 'default'}`);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n if (btnGroup) {\n cssClasses.push('tyk-button-group');\n cssClasses.push(btnGroupSize ? `tyk-button-group--${btnGroupSize}` : 'tyk-button-group--md');\n }\n\n return cssClasses.join(' ');\n }\n\n getCssClasses() {\n const {\n opened,\n } = this.state;\n const {\n hasCustomContent,\n display,\n listclassnames,\n position,\n maxHeight,\n } = this.props;\n let cssClasses = ['tyk-dropdown-menu', 'tyk-dropdown'];\n\n if (maxHeight) {\n cssClasses.push('tyk-dropdown--scrollable');\n }\n\n if (opened) {\n cssClasses.push('opened');\n }\n\n if (listclassnames) {\n cssClasses = cssClasses.concat(listclassnames.split(' '));\n }\n\n if (display) {\n cssClasses.push('tyk-dropdown--block');\n }\n\n if (hasCustomContent) {\n cssClasses.push('tyk-dropdown--custom');\n }\n\n if (position === 'relative') {\n cssClasses.push('tyk-dropdown--relative');\n }\n\n return cssClasses.join(' ');\n }\n\n getBtnTitle() {\n const { btnTitle, stopButtonTextChange } = this.props;\n const { selectedItemProps } = this.state;\n\n if (!stopButtonTextChange && selectedItemProps?.title) {\n return selectedItemProps.title;\n }\n\n return btnTitle;\n }\n\n closeDropdown() {\n const { onClose } = this.props;\n\n this.setState({\n opened: false,\n }, () => {\n if (onClose) {\n onClose();\n }\n });\n }\n\n toggleDropdown() {\n const {\n opened,\n } = this.state;\n if (opened) {\n this.closeDropdown();\n\n return;\n }\n\n this.setState({\n opened: true,\n });\n }\n\n render() {\n const {\n appendTo,\n btnClassName,\n btnSize,\n customBtnTitle,\n hasCustomContent,\n btnTheme,\n children,\n label,\n showDropdownIcon,\n showTriggerButton,\n showCheckmark,\n disabled = false,\n maxHeight,\n } = this.props;\n const {\n selectedItem,\n opened,\n } = this.state;\n const DropdownWrapperTag = hasCustomContent ? 'div' : 'ul';\n return (\n \n {\n label\n ? (\n \n )\n : null\n }\n {\n showTriggerButton\n ? (\n \n { customBtnTitle || this.getBtnTitle() }\n \n )\n : null\n }\n {\n opened\n ? ReactDOM.createPortal(\n \n {\n opened\n ? (\n \n {\n (typeof children === 'function')\n ? children({\n closeDropdown: this.closeDropdown.bind(this),\n })\n : children\n }\n \n )\n : null\n }\n ,\n document.querySelector(appendTo || 'body'),\n )\n : null\n }\n \n );\n }\n}\n\nDropdown.propTypes = {\n appendTo: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n PropTypes.func,\n ]),\n closeOnSelect: PropTypes.bool,\n btnClassName: PropTypes.string,\n btnSize: PropTypes.string,\n btnGroupSize: PropTypes.string,\n btnTheme: PropTypes.string,\n btnTitle: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n customBtnTitle: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n btnGroup: PropTypes.bool,\n className: PropTypes.string,\n display: PropTypes.string,\n disabled: PropTypes.bool,\n hasCustomContent: PropTypes.bool,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n listclassnames: PropTypes.string,\n onClose: PropTypes.func,\n onSelect: PropTypes.func,\n open: PropTypes.bool,\n offset: PropTypes.instanceOf(Object),\n position: PropTypes.string,\n selectedItem: PropTypes.string,\n showDropdownIcon: PropTypes.bool,\n stopButtonTextChange: PropTypes.bool,\n showTriggerButton: PropTypes.bool,\n showCheckmark: PropTypes.bool,\n maxHeight: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\n\nDropdown.defaultProps = {\n closeOnSelect: false,\n showDropdownIcon: true,\n showTriggerButton: true,\n showCheckmark: true,\n open: false,\n};\n\nDropdown.Item = DropdownItem;\n\nexport default Dropdown;\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../../../components/Button';\nimport ButtonGroup from '../../../components/ButtonGroup';\n\nfunction DropdownTrigger({\n title,\n theme = 'primary',\n splitTrigger,\n toggle,\n onTriggerClick,\n value,\n}, ref) {\n return (\n !splitTrigger ? (\n \n {title}\n \n ) : (\n \n onTriggerClick(value) }}\n >\n {title}\n \n \n \n )\n );\n}\n\nDropdownTrigger.propTypes = {\n title: PropTypes.string,\n theme: PropTypes.string,\n splitTrigger: PropTypes.bool,\n toggle: PropTypes.func,\n dropdownRef: PropTypes.shape({\n current: PropTypes.instanceOf(Element),\n }).isRequired,\n onTriggerClick: PropTypes.func,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n};\n\nexport default forwardRef(DropdownTrigger);\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport FloatingContainer from '../../../components/FloatingContainer';\nimport List from '../../../components/List';\n\nfunction DropdownListWrapper({\n children,\n element,\n maxWidth,\n}, ref) {\n return (\n \n \n { children }\n \n \n );\n}\n\nDropdownListWrapper.propTypes = {\n element: PropTypes.shape({\n current: PropTypes.instanceOf(Element),\n }),\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n maxWidth: PropTypes.string,\n};\n\nexport default forwardRef(DropdownListWrapper);\n","import { createContext, useContext } from 'react';\n\nexport const DropdownContext = createContext();\n\nfunction useDropdowContext() {\n return useContext(DropdownContext);\n}\n\nexport default useDropdowContext;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport List from '../../../components/List';\nimport useDropdowContext from './useDrodpownContext';\n\nfunction DropdownItem({\n children,\n value,\n}) {\n const { onChange, value: dropdownValue } = useDropdowContext();\n return (\n \n onChange(value) }}\n >\n { children }\n \n \n );\n}\n\nDropdownItem.propTypes = {\n children: PropTypes.node,\n // eslint-disable-next-line\n value: PropTypes.any,\n};\n\nexport default DropdownItem;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport useDropdown from './useDropdown';\nimport DropdownTrigger from './DropdownTrigger';\nimport DropdownListWrapper from './DropdownListWrapper';\nimport DropdownItem from './DropdowItem';\nimport { DropdownContext } from './useDrodpownContext';\n\nfunction Dropdown2({\n children,\n title,\n theme,\n splitTrigger,\n onChange,\n value,\n setSelectedValueAsTitle,\n maxWidth,\n onTriggerClick,\n}) {\n const {\n isOpen,\n toggle,\n dropdownRef,\n dropdownListRef,\n } = useDropdown({\n splitTrigger,\n });\n\n const contextValue = useMemo(() => ({\n onChange,\n value,\n }), [onChange, value]);\n\n return (\n \n \n {isOpen && (\n \n { children }\n \n )}\n \n );\n}\n\nDropdown2.propTypes = {\n /** Title of the dropdown. It is being displayed in the Drodpown trigger */\n title: PropTypes.string,\n /** Theme of the dropdown trigger */\n theme: PropTypes.string,\n children: PropTypes.node,\n /** If true, the dropdown trigger will be split into two buttons.\n * one with the dropdown title and one for the arrow */\n splitTrigger: PropTypes.bool,\n /** Callback function called when a dropdown item is selected */\n onChange: PropTypes.func,\n /** Value of the selected dropdown item */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n /** If true, the selected value will be displayed in the dropdown trigger */\n setSelectedValueAsTitle: PropTypes.bool,\n /** sets the maximum width of the dropdown list menu */\n maxWidth: PropTypes.string,\n /** this function is being called when splitTrigger is true,\n * and receives as parameter the current value of the dropdown */\n onTriggerClick: PropTypes.func,\n};\n\nDropdown2.Item = DropdownItem;\n\nexport default Dropdown2;\n","import {\n useState, useRef, useCallback, useEffect,\n} from 'react';\n\nconst useDropdown = ({\n splitTrigger,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const dropdownRef = useRef(null);\n const dropdownListRef = useRef(null);\n\n const toggle = () => setIsOpen(!isOpen);\n\n const handleOutsideClick = useCallback((e) => {\n const triggerElement = !splitTrigger\n ? dropdownRef.current\n : dropdownRef.current.querySelector('.dropdown__trigger');\n if (\n isOpen\n && !triggerElement.contains(e.target)\n && !dropdownListRef.current.contains(e.target)\n ) {\n setIsOpen(false);\n }\n }, [isOpen]);\n\n useEffect(() => {\n document.addEventListener('mousedown', handleOutsideClick);\n return () => {\n document.removeEventListener('mousedown', handleOutsideClick);\n };\n }, [handleOutsideClick]);\n\n return {\n isOpen,\n toggle,\n dropdownRef,\n dropdownListRef,\n };\n};\n\nexport default useDropdown;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-ace\");","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport ace from 'ace-builds/src-noconflict/ace';\nimport AceEditor from 'react-ace';\nimport 'ace-builds/src-noconflict/mode-javascript';\nimport 'ace-builds/src-noconflict/mode-golang';\nimport 'ace-builds/src-noconflict/mode-python';\nimport 'ace-builds/src-noconflict/mode-css';\nimport 'ace-builds/src-noconflict/mode-json';\nimport 'ace-builds/src-noconflict/mode-xml';\nimport 'ace-builds/src-noconflict/mode-jsx';\nimport 'ace-builds/src-noconflict/ext-searchbox';\nimport 'ace-builds/src-noconflict/ext-beautify';\nimport 'ace-builds/src-noconflict/theme-github';\nimport jsonWorker from 'ace-builds/src-noconflict/worker-json';\n\nace.config.setModuleUrl('ace/mode/json_worker', jsonWorker);\n\nfunction CodeEditor(props) {\n const {\n disabled,\n readOnly,\n disableValidation,\n id,\n error,\n label,\n labelwidth,\n note,\n onBlur,\n onChange,\n theme,\n value,\n setOptions,\n wrapperClassName,\n } = props;\n const classes = [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const finalSetOptions = {\n ...setOptions,\n ...disableValidation && { useWorker: false },\n };\n\n const getCodeEditorError = useCallback(() => (\n error && error !== 'true' && error !== 'false'\n ? (\n

    \n {error}\n

    \n )\n : null\n ), [error]);\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const getNonLabelWidth = useCallback(() => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n }, [labelwidth]);\n\n const handleOnChange = useCallback((newValue) => {\n if (onChange) onChange(newValue);\n }, [onChange]);\n\n const handleOnBlur = useCallback(() => {\n if (onBlur) onBlur(value);\n }, [onBlur, value]);\n\n return (\n
    \n {\n label\n ? \n : null\n }\n
    \n {\n // eslint-disable-next-line\n editorInstance.container.style.resize = 'both';\n // mouseup = css resize end\n document.addEventListener('mouseup', () => (\n editorInstance.resize()\n ));\n }}\n setOptions={finalSetOptions}\n />\n {\n note\n ?

    { note }

    \n : null\n }\n { getCodeEditorError() }\n
    \n
    \n );\n}\n\nCodeEditor.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n disableValidation: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n mode: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n theme: PropTypes.string,\n value: PropTypes.string,\n setOptions: PropTypes.instanceOf(Object),\n wrapperClassName: PropTypes.string,\n};\n\nexport default CodeEditor;\n","import React, { Component, createRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\nimport Button from '../../../components/Button';\n\nconst getStateSelectedValues = (multiple, tags, value) => {\n if (!value) {\n return (multiple || tags) ? [] : null;\n }\n\n return value;\n};\n\nclass Combobox extends Component {\n static closeList() {\n return {\n cursor: -1,\n opened: false,\n };\n }\n\n static openList() {\n return {\n opened: true,\n };\n }\n\n static filterByName(itemValue, inputValue) {\n return itemValue.name.toLowerCase().indexOf(inputValue) > -1;\n }\n\n constructor(props) {\n super(props);\n const {\n multiple,\n tags,\n value,\n } = props;\n\n this.state = {\n cursor: -1,\n opened: false,\n width: 50,\n initialValue: value,\n stateSelectedValues: getStateSelectedValues(multiple, tags, value),\n searchText: '',\n tags,\n };\n\n this.comboboxRef = createRef();\n this.valuesListRef = createRef();\n this.inputRef = createRef();\n this.textRef = createRef();\n\n this.focusInput = this.focusInput.bind(this);\n this.onKeyUp = this.onKeyUp.bind(this);\n Combobox.openList = Combobox.openList.bind(this);\n this.handleClickOutside = this.handleClickOutside.bind(this);\n this.handleItemsNavigation = this.handleItemsNavigation.bind(this);\n this.handleComboboxDropdownClick = this.handleComboboxDropdownClick.bind(this);\n this.handleListItemClick = this.handleListItemClick.bind(this);\n this.handlePillRemoveClick = this.handlePillRemoveClick.bind(this);\n this.manageSelectedTags = this.manageSelectedTags.bind(this);\n }\n\n componentDidMount() {\n const { tags } = this.props;\n\n if (tags) {\n this.setInputWidth();\n }\n\n this.bindEvents();\n }\n\n componentWillUnmount() {\n this.unBindEvents();\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n if (\n JSON.stringify(nextProps.value) !== JSON.stringify(prevState.initialValue)\n || nextProps.tags !== prevState.tags\n ) {\n return {\n initialValue: nextProps.value,\n stateSelectedValues: getStateSelectedValues(\n nextProps.multiple,\n nextProps.tags,\n nextProps.value,\n ),\n tags: nextProps.tags,\n };\n }\n\n return null;\n }\n\n handleItemsNavigation(e) {\n const { tags } = this.props;\n if (['ArrowDown', 'ArrowUp'].indexOf(e.key) === -1) {\n return;\n }\n\n const { cursor } = this.state;\n const filteredValues = this.filterValues();\n let cursorNext;\n\n e.preventDefault();\n\n if (e.key === 'ArrowDown') {\n if (cursor === -1 || cursor === filteredValues.length - 1) {\n cursorNext = 0;\n } else if (cursor < filteredValues.length - 1) {\n cursorNext = cursor + 1;\n }\n }\n\n if (e.key === 'ArrowUp') {\n if (cursor > 0) {\n cursorNext = cursor - 1;\n } else {\n cursorNext = filteredValues.length - 1;\n }\n }\n\n if (this.valuesListRef.current && cursorNext > 4) {\n const scrollTop = (cursorNext - 4) * 38;\n\n this.valuesListRef.current.scrollTop = (!tags) ? 60 + scrollTop : scrollTop;\n } else if (this.valuesListRef.current) {\n this.valuesListRef.current.scrollTop = 0;\n }\n\n this.setState((previousState) => ({\n ...previousState,\n opened: true,\n cursor: cursorNext,\n }));\n }\n\n handleListItemClick(index) {\n // eslint-disable-next-line react/destructuring-assignment\n const clickedValue = this.props.values[index];\n if (clickedValue.disabled) return;\n\n const { multiple, tags } = this.props;\n\n const methodName = (tags) ? 'manageSelectedTags' : 'manageSelectedValues';\n const tempState = { ...this.state, ...this[methodName](index) };\n\n this.setState((previousState) => {\n if (!multiple && !tags) {\n tempState.opened = false;\n }\n\n return { ...previousState, ...tempState };\n });\n }\n\n handlePillRemoveClick(index) {\n const { disabled } = this.props;\n\n if (disabled) {\n return;\n }\n\n const tempState = this.removeSelectedValue(index);\n\n this.setState((previousState) => ({ ...previousState, ...tempState }));\n }\n\n handleClickOutside(event) {\n if (\n this.valuesListRef.current && !this.valuesListRef.current.contains(event.target)\n && this.comboboxRef.current && !this.comboboxRef.current.contains(event.target)\n ) {\n this.setState((previousState) => ({ ...previousState, ...Combobox.closeList() }));\n }\n }\n\n handleComboboxDropdownClick() {\n const { disabled } = this.props;\n\n if (disabled) {\n return;\n }\n\n this.setState((previousState) => ({ ...previousState, ...Combobox.openList() }));\n }\n\n onKeyUp(e) {\n const { tags, allowCustomValues } = this.props;\n const { cursor, opened } = this.state;\n const filteredValues = this.filterValues();\n let tempState = this.getSearchText();\n\n if (tags && e.key !== 'Escape') {\n tempState = { ...tempState, ...this.setInputWidth() };\n }\n\n if (e.key === 'Enter') {\n const methodName = (tags) ? 'manageSelectedTags' : 'manageSelectedValues';\n tempState = { ...tempState, ...this[methodName](cursor) };\n }\n\n if (allowCustomValues && e.key !== ' ' && tags) {\n tempState = { ...tempState, ...this.manageSelectedTags() };\n }\n\n if (\n !opened\n && this.inputRef.current.value\n && filteredValues?.length\n && e.key !== 'Escape'\n ) {\n tempState = { ...tempState, ...Combobox.openList() };\n }\n\n if (e.key === 'Escape' && opened) {\n tempState = { ...tempState, ...Combobox.closeList() };\n }\n\n if (opened && filteredValues && !filteredValues.length) {\n tempState = { ...tempState, ...Combobox.closeList() };\n }\n\n this.setState((previousState) => ({ ...previousState, ...tempState }));\n }\n\n getLabelStyles() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n getNonLabelWidth() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n setInputWidth() {\n return {\n width: 50 + this.textRef.current.offsetWidth,\n };\n }\n\n getSelectedIndex(value) {\n const { stateSelectedValues } = this.state;\n let position = -1;\n\n if (Array.isArray(stateSelectedValues)) {\n stateSelectedValues.forEach((item, index) => {\n if (item.id === value.id) {\n position = index;\n }\n });\n } else if (stateSelectedValues) {\n if (stateSelectedValues.id === value.id) {\n position = 0;\n }\n }\n\n return position;\n }\n\n getSearchText() {\n return {\n searchText: this.inputRef.current.value,\n };\n }\n\n getListItemCssClasses(value, index) {\n const cssClasses = [];\n const {\n cursor,\n } = this.state;\n\n if (cursor === index) {\n cssClasses.push('active');\n }\n\n if (value.disabled) {\n cssClasses.push('disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n getComboboxListCssClass() {\n const { opened } = this.state;\n const { tags, theme } = this.props;\n const themes = theme ? theme.split(' ') : [];\n\n const cssClasses = ['tyk-combobox__list'];\n\n if (opened) {\n cssClasses.push('tyk-combobox__list--opened');\n }\n\n if (tags) {\n cssClasses.push('tyk-combobox__list--has-tags');\n }\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n return cssClasses.join(' ');\n }\n\n getCssClasses() {\n const {\n error, disabled, theme, labelwidth,\n } = this.props;\n const cssClasses = ['tyk-form-group', 'tyk-combobox'];\n const themes = theme ? theme.split(' ') : [];\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (disabled) {\n cssClasses.push('disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n getInputError() {\n const { error } = this.props;\n\n return (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null;\n }\n\n getStyles() {\n const { scrollTop } = document.documentElement;\n const el = this.comboboxRef.current;\n const elHeight = el.offsetHeight;\n const elWidth = el.offsetWidth;\n\n const offset = el.getBoundingClientRect();\n const { left } = offset;\n let top = 0;\n\n top = offset.top + scrollTop + elHeight;\n\n return {\n top: `${top - 1}px`,\n left: `${left}px`,\n width: `${elWidth}px`,\n };\n }\n\n getComboboxDisplayData() {\n const { stateSelectedValues } = this.state;\n const { multiple, placeholder, values } = this.props;\n\n if (!stateSelectedValues) {\n return placeholder;\n }\n\n if (stateSelectedValues && Array.isArray(stateSelectedValues) && !stateSelectedValues.length) {\n return placeholder;\n }\n\n if (stateSelectedValues && !Array.isArray(stateSelectedValues) && !stateSelectedValues.id) {\n return placeholder;\n }\n\n if (Array.isArray(stateSelectedValues) && multiple) {\n return stateSelectedValues.reduce((prevValue, value, index) => prevValue + value.name + ((index !== stateSelectedValues.length - 1) ? ', ' : ''), '');\n }\n\n if (\n values?.length\n && !Array.isArray(stateSelectedValues) && !stateSelectedValues.name\n ) {\n return values.filter((value) => value.id === stateSelectedValues.id)[0].name;\n }\n\n return stateSelectedValues.name;\n }\n\n manageSelectedTags(index) {\n const { max, allowCustomValues } = this.props;\n const { stateSelectedValues } = this.state;\n const filteredValues = this.filterValues();\n const value = { id: this.inputRef.current.value, name: this.inputRef.current.value };\n\n if (allowCustomValues === false && index === -1) {\n return null;\n }\n\n const tempValue = filteredValues[index] || value;\n const selectedIndex = this.getSelectedIndex(tempValue);\n let selectedValues = {};\n\n this.inputRef.current.value = '';\n\n if (selectedIndex > -1 && this.isInInitialValues(tempValue)) {\n selectedValues = this.removeSelectedValue(selectedIndex);\n } else if (selectedIndex === -1) {\n if (max && stateSelectedValues.length >= max) {\n return selectedValues;\n }\n selectedValues = this.addSelectedValue(tempValue);\n }\n\n return selectedValues;\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n manageSelectedValues(index) {\n const { stateSelectedValues } = this.state;\n const { multiple, onChange, max } = this.props;\n const filteredValues = this.filterValues();\n const tempSelectedValues = filteredValues[index];\n let selectedValues;\n const selectedIndex = this.getSelectedIndex(tempSelectedValues);\n\n if (tempSelectedValues && multiple) {\n if (selectedIndex > -1) {\n selectedValues = this.removeSelectedValue(selectedIndex);\n } else {\n if (max && stateSelectedValues.length >= max) {\n return selectedValues;\n }\n selectedValues = this.addSelectedValue(filteredValues[index]);\n }\n } else {\n selectedValues = {\n stateSelectedValues: (selectedIndex === -1) ? tempSelectedValues : { id: null },\n };\n\n onChange?.((selectedIndex === -1) ? tempSelectedValues : null);\n }\n\n return selectedValues;\n }\n\n removeSelectedValue(index) {\n const { stateSelectedValues } = this.state;\n const { onChange } = this.props;\n const tempStateSelectedValues = JSON.parse(JSON.stringify(stateSelectedValues));\n\n tempStateSelectedValues.splice(index, 1);\n\n if (onChange && typeof onChange === 'function') {\n onChange(tempStateSelectedValues.length ? tempStateSelectedValues : null);\n }\n\n return {\n stateSelectedValues: tempStateSelectedValues,\n searchText: '',\n };\n }\n\n addSelectedValue(value) {\n const { stateSelectedValues } = this.state;\n const { onChange } = this.props;\n const tempStateSelectedValues = JSON.parse(JSON.stringify(stateSelectedValues));\n\n tempStateSelectedValues.push(value);\n\n if (onChange && typeof onChange === 'function') {\n onChange(tempStateSelectedValues.length ? tempStateSelectedValues : null);\n }\n\n return {\n stateSelectedValues: tempStateSelectedValues,\n searchText: '',\n };\n }\n\n isInInitialValues(value) {\n const { values } = this.props;\n let ok = false;\n\n values.forEach((item) => {\n if (value.id === item.id) {\n ok = true;\n }\n });\n\n return ok;\n }\n\n filterValues() {\n const { values, searchItem } = this.props;\n\n if (!this.inputRef.current) {\n return values;\n }\n\n const arr = values\n .filter(\n (value) => (searchItem\n ? searchItem(value, this.inputRef.current.value.toLowerCase())\n : Combobox.filterByName(value, this.inputRef.current.value.toLowerCase())),\n );\n\n return arr;\n }\n\n bindEvents() {\n document.addEventListener('mousedown', this.handleClickOutside);\n }\n\n unBindEvents() {\n document.removeEventListener('mousedown', this.handleClickOutside);\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n reset() {\n const { multiple, tags, value } = this.props;\n\n this.setState({\n stateSelectedValues: getStateSelectedValues(multiple, tags, value),\n });\n }\n\n focusInput() {\n if (this.inputRef.current) {\n this.inputRef.current.focus();\n }\n }\n\n renderInput(filteredValues) {\n const {\n disabled,\n tags,\n max,\n placeholder,\n } = this.props;\n const {\n width, searchText, stateSelectedValues,\n } = this.state;\n\n return (\n {}}\n ref={this.comboboxRef}\n >\n {\n tags\n ? (\n <>\n {\n (stateSelectedValues || []).map((value, index) => (\n
  • \n \n \n \n { value.name }\n
  • \n ))\n }\n \n {(max === undefined || stateSelectedValues?.length < max) && (\n <>\n {\n if (e.key === 'Enter') {\n e.preventDefault();\n }\n this.handleItemsNavigation(e);\n }}\n onKeyUp={this.onKeyUp}\n placeholder={(!stateSelectedValues?.length) ? placeholder : ''}\n ref={this.inputRef}\n style={{\n width: (!stateSelectedValues?.length) ? '100%' : `${width}px`,\n }}\n />\n \n { searchText }\n \n \n )}\n {filteredValues.length > 0 && (\n \n )}\n \n \n )\n : (\n {}}\n >\n { this.getComboboxDisplayData() }\n \n \n )\n }\n \n );\n }\n\n renderDropdown(filteredValues) {\n const { tags } = this.props;\n const { opened } = this.state;\n return (\n \n {\n !tags\n ? (\n
  • \n \n
  • \n )\n : null\n }\n {\n filteredValues\n .map((value, index) => (\n {}}\n key={value.id}\n >\n {\n (this.getSelectedIndex(value) > -1)\n ? \n : null\n }\n \n {' '}\n { value.name }\n \n \n ))\n }\n \n );\n }\n\n render() {\n const {\n CustomListComponent,\n id,\n label,\n note,\n } = this.props;\n const { opened } = this.state;\n\n const filteredValues = this.filterValues();\n\n return (\n <>\n
    \n {\n label\n ? \n : null\n }\n \n {this.renderInput(filteredValues)}\n {\n note\n ?

    { note }

    \n : null\n }\n { this.getInputError() }\n
    \n \n {\n // eslint-disable-next-line no-nested-ternary\n !CustomListComponent\n ? opened && filteredValues.length\n ? ReactDOM.createPortal(\n this.renderDropdown(filteredValues),\n document.querySelector('body'),\n )\n : null\n : (\n \n )\n }\n \n );\n }\n}\n\nCombobox.propTypes = {\n allowCustomValues: PropTypes.bool,\n CustomListComponent: PropTypes.elementType,\n searchItem: PropTypes.func,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n id: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n multiple: PropTypes.bool,\n max: PropTypes.number,\n note: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n tags: PropTypes.bool,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.instanceOf(Object),\n PropTypes.instanceOf(Array),\n ]),\n values: PropTypes.instanceOf(Array),\n};\n\nCombobox.defaultProps = {\n allowCustomValues: true,\n};\n\nexport default Combobox;\n","import React, { useState, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from '../../../../components/Icon';\nimport Pill from '../../../../components/Pill';\n\nfunction Value(props) {\n const {\n value,\n max,\n tags,\n tagSeparators,\n addTagOnBlur,\n placeholder,\n disabled,\n renderValue,\n valueOverflow,\n focus,\n onMessage: sendMessage,\n readOnly,\n } = props;\n const INPUT_MIN_WIDTH = 60;\n const inputRef = useRef(null);\n const dummyElementRef = useRef(null);\n const [inputValue, setInputValue] = useState('');\n const [inputWidth, setInputWidth] = useState(`${INPUT_MIN_WIDTH + 10}px`);\n\n function entryFieldOnChange(val) {\n if (tagSeparators.some((ts) => val.slice(-1) === ts)) return;\n const dummy = dummyElementRef.current;\n dummy.innerHTML = val;\n setInputWidth(`${Math.max(dummy.clientWidth, INPUT_MIN_WIDTH) + 10}px`);\n setInputValue(val);\n sendMessage('tag.input.change', val);\n }\n\n function entryFieldOnKeyDown(key, val) {\n if (!tags) return;\n if (val === '' && key === 'Backspace' && value.length) {\n sendMessage('tag.remove', value[value.length - 1].id);\n return;\n }\n if (key === 'Enter') {\n sendMessage('tag.input.enter', val);\n entryFieldOnChange('');\n return;\n }\n if (key === 'ArrowUp') {\n sendMessage('tag.input.arrowUp');\n return;\n }\n if (key === 'ArrowDown') {\n sendMessage('tag.input.arrowDown');\n return;\n }\n if (key === 'Escape') {\n sendMessage('tag.input.escape');\n return;\n }\n if (tagSeparators.includes(key)) {\n sendMessage('tag.add', val);\n entryFieldOnChange('');\n }\n }\n\n function triggerAction() {\n sendMessage('text-value.click');\n }\n\n function textValue(val, isPlaceholder = false) {\n if (readOnly) return val || '-';\n\n const classes = [\n 'tyk-combobox2__text-value',\n `overflow-${valueOverflow}`,\n isPlaceholder && 'is-placeholder',\n ].filter(Boolean).join(' ');\n return (\n \n {val}\n \n );\n }\n\n function renderCustomValue(v) {\n const config = {\n tags,\n tagSeparators,\n placeholder,\n disabled,\n renderValue,\n sendMessage,\n };\n return renderValue(v, config);\n }\n\n function renderTag(v) {\n if (renderValue) return renderCustomValue(v);\n\n return (\n \n {\n e.stopPropagation();\n sendMessage('tag.remove', v.id);\n }}\n aria-label=\"remove\"\n >\n \n \n { v.name }\n \n );\n }\n\n function getTags() {\n return (\n <>\n {value.map(renderTag)}\n {value.length < max && (\n <>\n entryFieldOnChange(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') e.preventDefault();\n entryFieldOnKeyDown(e.key, e.target.value);\n }}\n onFocus={() => sendMessage('tag.input.focus')}\n onBlur={(e) => {\n sendMessage('tag.input.blur', e.target.value);\n if (addTagOnBlur) entryFieldOnChange('');\n }}\n />\n \n \n )}\n \n );\n }\n\n useEffect(() => {\n if (focus && inputRef.current) inputRef.current.focus();\n }, [focus]);\n\n if (readOnly) {\n return
    {textValue(value.map((v) => v.name).join(', '))}
    ;\n }\n\n if (tags) return getTags();\n if (renderValue) {\n return value.length === 0 ? textValue(placeholder, true) : value.map(renderCustomValue);\n }\n return value.length === 0\n ? textValue(placeholder, true)\n : textValue(value.map((v) => v.name).join(', '));\n}\n\nValue.propTypes = {\n value: PropTypes.instanceOf(Array),\n max: PropTypes.number,\n tags: PropTypes.instanceOf(Array),\n tagSeparators: PropTypes.instanceOf(Array),\n addTagOnBlur: PropTypes.bool,\n placeholder: PropTypes.string,\n disabled: PropTypes.bool,\n renderValue: PropTypes.func,\n valueOverflow: PropTypes.string,\n focus: PropTypes.bool,\n onMessage: PropTypes.func,\n readOnly: PropTypes.bool,\n};\n\nexport default Value;\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from '../../../../components/Icon';\n\nfunction List(props) {\n const {\n listRef,\n tags,\n values,\n searchValue,\n activeItem,\n onMessage: sendMessage,\n renderListItem,\n selectAll,\n showSearch,\n } = props;\n\n useEffect(() => {\n if (!listRef.current) return;\n const activeElement = listRef.current.querySelector('.active');\n if (activeElement) activeElement.scrollIntoView({ block: 'end' });\n }, [activeItem]);\n\n function renderItem(item) {\n if (renderListItem) {\n return renderListItem(item, {\n tags, searchValue, sendMessage, activeItem,\n });\n }\n\n return (\n !item.disabled && sendMessage('value.select', { item })}\n onKeyDown={() => {}}\n >\n {item.selected && }\n {item.name}\n \n );\n }\n\n function renderSelectAllOption() {\n const isAllSelected = values.every((v) => v.selected);\n const isNoneSelected = values.every((v) => !v.selected);\n const label = selectAll?.label ?? 'Select All';\n const mode = selectAll?.mode ?? 'select';\n const show = selectAll?.show ?? 'always';\n const render = selectAll?.render;\n\n const shouldRenderOption = show === 'always' || (mode === 'select' ? !isAllSelected : !isNoneSelected);\n if (!shouldRenderOption) return null;\n\n if (render) {\n return render({\n label,\n mode,\n show,\n isAllSelected,\n isNoneSelected,\n }, sendMessage);\n }\n return (\n sendMessage('value.select-all', mode === 'select' ? !isAllSelected : isNoneSelected)}\n onKeyDown={() => {}}\n >\n {(mode === 'select' ? isAllSelected : isNoneSelected) && }\n {label}\n \n );\n }\n\n return (\n <>\n {!tags && showSearch && (\n
    \n sendMessage('search.change', e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Escape') sendMessage('search.escape');\n if (e.key === 'ArrowUp') sendMessage('search.arrowUp');\n if (e.key === 'ArrowDown') sendMessage('search.arrowDown');\n if (e.key === 'Enter') sendMessage('search.enter');\n }}\n />\n
    \n )}\n {values.length > 0 && (\n
      \n {Boolean(selectAll) && (\n renderSelectAllOption()\n )}\n {values.map(renderItem)}\n
    \n )}\n \n );\n}\n\nList.propTypes = {\n listRef: PropTypes.instanceOf(Object),\n tags: PropTypes.bool,\n values: PropTypes.instanceOf(Array),\n searchValue: PropTypes.string,\n activeItem: PropTypes.instanceOf(Object),\n onMessage: PropTypes.func,\n renderListItem: PropTypes.func,\n selectAll: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n mode: PropTypes.oneOf(['select', 'unselect']),\n show: PropTypes.oneOf(['always', 'notSameState']),\n render: PropTypes.func,\n }),\n ]),\n showSearch: PropTypes.bool,\n};\n\nexport default List;\n","import React, {\n useCallback, useEffect, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\nimport FloatingContainer from '../../../components/FloatingContainer';\n\nimport Value from './js/Value';\nimport List from './js/List';\n\n/**\n * Dropdown-like component that can display selected values as regular text,\n * tags, or in a custom way.\n * You can select values from a list or type in new ones.\n */\nfunction Combobox2({\n value: propValue,\n values: propValues = [],\n valueOverflow = 'single',\n label = '',\n labelwidth,\n tags = false,\n tagSeparators = [' ', 'Enter'],\n addTagOnBlur = false,\n max: maxProp,\n multiple = false,\n placeholder = '',\n theme,\n note = '',\n error = '',\n disabled = false,\n readOnly = false,\n allowCustomValues = true,\n searchItem: matchItemFn,\n renderValue,\n renderListItem,\n renderList: renderListProp,\n CustomListComponent,\n onBeforeChange = () => true,\n onChange = () => {},\n floatingContainerConfig,\n expandMode,\n infiniteScrollerConfig,\n displayDropdownTrigger = true,\n selectAll,\n closeOnSelect,\n showSearch = false,\n required = false,\n validateOnChange = () => {},\n wrapperClassName = '',\n ...restProps\n}) {\n const max = useMemo(\n () => (multiple ? Infinity : maxProp || (tags ? Infinity : 1)),\n [multiple, maxProp, tags],\n );\n const renderList = CustomListComponent\n ? (values, { sendMessage }) => (\n sendMessage('value.select', { item: values[index] })}\n />\n )\n : renderListProp;\n\n const rootRef = useRef(null);\n const comboboxControlRef = useRef(null);\n const dropdownRef = useRef(null);\n const listRef = useRef(null);\n\n const [value, setValue] = useState(getValueFromProp(propValue, propValues));\n const [values, setValues] = useState(propValues.map((v) => normalizeValue(v)));\n const [searchValue, setSearchValue] = useState('');\n const [activeItem, setActiveItem] = useState(null);\n const [isOpened, setIsOpened] = useState(false);\n const [valuesExpanded, setValuesExpanded] = useState(false);\n const [localValidationError, setLocalValidationError] = useState('');\n\n function getThemeClasses() {\n const themes = theme ? theme.split(' ') : [];\n return themes.map((iTheme) => `tyk-form-group--${iTheme}`);\n }\n\n function getCssClasses() {\n return [\n wrapperClassName,\n 'tyk-form-group',\n 'tyk-combobox2',\n ...getThemeClasses(),\n (error || localValidationError) && 'has-error',\n labelwidth && 'tyk-form-group--label-has-width',\n disabled && 'disabled',\n expandMode && 'is-expand-mode',\n ].filter(Boolean).join(' ');\n }\n\n function getFilteredValues() {\n const defaultFn = (v, s) => v?.name?.toLowerCase()?.includes(s);\n const fn = matchItemFn || defaultFn;\n const filteredValues = values.filter((v) => fn(v, searchValue.toLowerCase()));\n return filteredValues;\n }\n\n function openDropdown() {\n setIsOpened(true);\n }\n\n function closeDropdown() {\n setIsOpened(false);\n if (!tags) updateSearchValue('');\n setActiveItem(null);\n }\n\n function updateSearchValue(newSearchValue) {\n setSearchValue(newSearchValue);\n if (activeItem && getFilteredValues().every((fv) => fv.id !== activeItem.id)) {\n setActiveItem(null);\n }\n if (newSearchValue && !isOpened) openDropdown();\n }\n\n function isValidValue(newValues, lastValue) {\n const localError = validateOnChange(newValues, lastValue);\n setLocalValidationError(localError);\n return localError === undefined;\n }\n\n function updateValue(newValues) {\n setValue(newValues);\n onChange(max === 1 && !tags ? (newValues[0] || null) : newValues);\n }\n\n function addTag(val) {\n if (!val) return;\n if (value.length >= max) return;\n if (value.some(({ name }) => name === val)) return;\n\n const listValueIndex = values.findIndex((lv) => lv.name === val);\n let newValue;\n let finalValue = [...value];\n let selectedValues;\n\n if (listValueIndex === -1) {\n if (allowCustomValues) {\n newValue = { id: val, name: val };\n finalValue = [...value, newValue];\n }\n } else {\n selectedValues = [\n ...values.slice(0, listValueIndex),\n { ...values[listValueIndex], selected: true },\n ...values.slice(listValueIndex + 1),\n ];\n newValue = values[listValueIndex];\n finalValue = [...value, values[listValueIndex]];\n }\n\n if (isValidValue(finalValue, newValue) && onBeforeChange(value, finalValue)) {\n if (selectedValues) {\n setValues(selectedValues);\n }\n updateValue(finalValue);\n }\n }\n\n function removeTag(id) {\n if (required && max === 1) return;\n\n const listValueIndex = values.findIndex((lv) => lv.id === id);\n const newValue = value.filter((v) => v.id !== id);\n\n if (!onBeforeChange(value, newValue)) return;\n\n if (listValueIndex !== -1) {\n setValues([\n ...values.slice(0, listValueIndex),\n { ...values[listValueIndex], selected: false },\n ...values.slice(listValueIndex + 1),\n ]);\n }\n updateValue(newValue);\n }\n\n function selectValue({ id }) {\n const val = values.find((v) => v.id === id);\n const valIndex = values.findIndex((v) => v.id === id);\n let finalValue = value;\n let selectedValues = values;\n\n if (val.selected) {\n if (!required || max !== 1) {\n finalValue = value.filter((v) => v.id !== val.id);\n selectedValues = values.with(valIndex, { ...val, selected: false });\n }\n } else if (value.length < max) {\n finalValue = [...value, val];\n selectedValues = values.with(valIndex, { ...val, selected: true });\n } else if (max === 1) {\n finalValue = [val];\n selectedValues = values.map((v) => ({ ...v, selected: v.id === val.id }));\n }\n\n if (isValidValue(finalValue, val) && onBeforeChange(value, finalValue)) {\n updateValue(finalValue);\n setValues(selectedValues);\n }\n\n if (max === 1 || closeOnSelect) {\n closeDropdown();\n }\n }\n\n function selectAllValues(selected) {\n if (values.length > max) return;\n const newValue = selected ? [...values] : [];\n\n if (!onBeforeChange(value, newValue)) return;\n\n updateValue(newValue);\n setValues(values.map((v) => ({ ...v, selected })));\n if (closeOnSelect) closeDropdown();\n }\n\n function moveUpActiveItem() {\n const visibleItems = getFilteredValues().filter((v) => !v.disabled);\n if (visibleItems.length === 0) return;\n if (activeItem === null || visibleItems.length === 1) {\n setActiveItem(visibleItems[visibleItems.length - 1]);\n return;\n }\n const activeIndex = visibleItems.findIndex((v) => v.id === activeItem.id);\n setActiveItem(visibleItems[activeIndex > 0 ? activeIndex - 1 : visibleItems.length - 1]);\n }\n\n function moveDownActiveItem() {\n const visibleItems = getFilteredValues().filter((v) => !v.disabled);\n if (visibleItems.length === 0) return;\n if (activeItem === null || visibleItems.length === 1) {\n setActiveItem(visibleItems[0]);\n return;\n }\n const activeIndex = visibleItems.findIndex((v) => v.id === activeItem.id);\n setActiveItem(visibleItems[activeIndex < visibleItems.length - 1 ? activeIndex + 1 : 0]);\n }\n\n function executeTriggerAction() {\n if (expandMode) {\n setValuesExpanded(!valuesExpanded);\n } else {\n openDropdown();\n }\n }\n\n function handleDocumentClick(e) {\n const isClickInside = rootRef.current?.contains(e.target)\n || dropdownRef.current?.contains(e.target);\n if (!isClickInside) {\n closeDropdown();\n }\n }\n\n function onClickCapture(e) {\n if (!disabled) return;\n if (!expandMode) {\n e.stopPropagation();\n return;\n }\n\n const triggerElement = rootRef.current.querySelector('.tyk-combobox2__values-container-trigger');\n if (!triggerElement) return;\n\n const isClickOnTrigger = triggerElement === e.target || triggerElement.contains(e.target);\n if (!isClickOnTrigger) e.stopPropagation();\n }\n\n function onTagMessage(message, data) {\n if (message === 'add') {\n addTag(data);\n updateSearchValue('');\n }\n\n if (message === 'remove') removeTag(data);\n\n if (message === 'input.change') updateSearchValue(data);\n\n if (message === 'input.enter') {\n if (activeItem) {\n selectValue(activeItem);\n } else if (tagSeparators.includes('Enter')) {\n addTag(data);\n updateSearchValue('');\n }\n }\n\n if (message === 'input.arrowUp') {\n openDropdown();\n moveUpActiveItem();\n }\n\n if (message === 'input.arrowDown') {\n openDropdown();\n moveDownActiveItem();\n }\n\n if (message === 'input.escape') closeDropdown();\n\n if (message === 'input.blur' && addTagOnBlur) {\n addTag(data);\n updateSearchValue('');\n }\n\n if (message === 'input.focus') {\n openDropdown();\n }\n }\n\n const onMessage = useCallback((message, data) => {\n if (message.startsWith('tag.')) onTagMessage(message.slice(4), data);\n\n if (message === 'value.select') selectValue(data.item);\n\n if (message === 'value.select-all') selectAllValues(data);\n\n if (message === 'text-value.click') openDropdown();\n\n if (message === 'search.change') updateSearchValue(data);\n\n if (message === 'search.escape') closeDropdown();\n\n if (message === 'search.arrowUp') moveUpActiveItem();\n\n if (message === 'search.arrowDown') moveDownActiveItem();\n\n if (message === 'search.enter') {\n if (activeItem) selectValue(activeItem);\n }\n }, [\n onTagMessage,\n selectValue,\n selectAllValues,\n openDropdown,\n updateSearchValue,\n closeDropdown,\n moveUpActiveItem,\n moveDownActiveItem,\n ]);\n\n const renderIcon = useCallback(\n () => (expandMode\n ? \n : \n ),\n [expandMode, valuesExpanded],\n );\n\n useEffect(() => {\n window.addEventListener('click', handleDocumentClick, true);\n return () => window.removeEventListener('click', handleDocumentClick, true);\n }, []);\n\n useEffect(() => {\n if (propValues.length) {\n const newValues = propValues.map((v) => ({\n ...normalizeValue(v),\n selected: value.some((sv) => sv.id === v.id),\n }));\n setValues(newValues);\n setValue((val) => val.map((v) => newValues.find((nv) => nv.id === v.id) || v));\n } else if (values.length) {\n setValues([]);\n }\n }, [propValues]);\n\n useEffect(() => {\n const newValue = getValueFromProp(propValue, values);\n setValue(newValue);\n setValues((vals) => vals.map((v) => ({\n ...normalizeValue(v),\n selected: newValue.some((nv) => nv.id === v.id),\n })));\n }, [propValue]);\n\n useEffect(() => {\n if (!expandMode) return () => {};\n\n const valuesElement = comboboxControlRef.current.querySelector('.tyk-combobox2__current-values');\n const updateScroll = () => {\n valuesElement.scrollTop = valuesElement.scrollHeight;\n };\n /* eslint-disable-next-line no-undef */\n const mobserver = new MutationObserver(updateScroll);\n const robserver = new ResizeObserver(updateScroll);\n\n mobserver.observe(valuesElement, { attributes: true, childList: true, subtree: true });\n robserver.observe(valuesElement);\n\n return () => {\n mobserver.disconnect();\n robserver.disconnect();\n };\n });\n\n const filteredValues = getFilteredValues();\n const currentValuesClasses = [\n 'tyk-combobox2__current-values',\n expandMode && 'expand-mode',\n `tyk-combobox2__current-values--${valuesExpanded ? 'expanded' : 'collapsed'}`,\n ].join(' ');\n\n return (\n \n {label && (\n \n )}\n {!readOnly && (\n \n
    \n \n \n
    \n {displayDropdownTrigger && (\n \n {renderIcon()}\n \n )}\n \n {isOpened && (!tags || filteredValues.length > 0) && (\n \n {renderList ? (\n renderList(filteredValues, {\n tags,\n searchValue,\n activeItem,\n listRef,\n sendMessage: onMessage,\n })\n ) : (\n \n )}\n \n )}\n {note && (\n

    {note}

    \n )}\n {((error && error !== 'true' && error !== 'false') || Boolean(localValidationError)) && (\n

    {error || localValidationError}

    \n )}\n \n )}\n {readOnly && (\n
    \n \n
    \n )}\n \n );\n}\n\nCombobox2.propTypes = {\n /** If `true` it allows entering values that are not in the list. */\n allowCustomValues: PropTypes.bool,\n /** Alias for `renderList`\n * used for backwards compatibility with the old Combobox component. */\n CustomListComponent: PropTypes.elementType,\n /** A function used for filtering elements displayed in the list when typing in. */\n searchItem: PropTypes.func,\n /** A custom component that will be used to display a value. */\n renderValue: PropTypes.func,\n /** A custom component that will be used to display an item in the dropdown list. */\n renderListItem: PropTypes.func,\n /** A custom component that will be used to display the entire content of the dropdown. */\n renderList: PropTypes.func,\n disabled: PropTypes.bool,\n /** hides the UI form element and displayes just the value as text */\n readOnly: PropTypes.bool,\n error: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n /** The maximum number of values that can be selected/added. */\n max: PropTypes.number,\n /** Shorthand for max=Infinity */\n multiple: PropTypes.bool,\n note: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n /**\n * Callback called before changing the value of the component.\n * The value change will succeed only if the callback's return value is truthy.\n * The callback is called with two arguments: 1) the previous value, 2) the next value */\n onBeforeChange: PropTypes.func,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n /** Enables the display of values as `Pill` components that can be\n * removed without opening the dropdown. */\n tags: PropTypes.bool,\n /** A list of characters that will trigger the creation of a tag when typed. */\n tagSeparators: PropTypes.arrayOf(PropTypes.string),\n /** If set to true a tag will be created whenever the component loses focus\n * and there is something typed in. */\n addTagOnBlur: PropTypes.bool,\n theme: PropTypes.string,\n /** The value of the component. It can be a string, an array,\n * or an object with an `id` property. */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n ]),\n /** An array of selectable values. */\n values: PropTypes.instanceOf(Array),\n /** Config object passed to the internal floating container component. */\n floatingContainerConfig: PropTypes.instanceOf(Object),\n /** If set to `single` it will display the values on a single line\n * with an ellipsis at the end. */\n valueOverflow: PropTypes.oneOf(['single', 'multiple']),\n /**\n * If set to `true` whenever the user clicks on the dropdown trigger\n * the selected values container\n * will expand to show all selected values instead of opening the dropdown.\n */\n expandMode: PropTypes.bool,\n /** Config object passed to the internal infinite scroller component. */\n infiniteScrollerConfig: PropTypes.instanceOf(Object),\n /** Toggles the display of the dropdown trigger. */\n displayDropdownTrigger: PropTypes.bool,\n /**\n * If a boolean it will toggle the select all functionality from the dropdown.\n * It can also be an object with the shape `{ label, show, mode, render }`.\n * label - A string displayed as the select all option\n * show - It can be one of `['always', 'notSameState']`.\n * `always` means the option will always be displayed.\n * `notSameState` means it will be displayed only if the list items are\n * not all with the same state (depending on the `mode` value)\n * mode - It can be one of `['select', 'unselect']` and makes sense only\n * when the `show` property is `notSameState`\n * `select` means the select all option will only be displayed if not all\n * items are selected\n * `unselect` means the option will be displayed if no items are selected\n */\n selectAll: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n mode: PropTypes.oneOf(['select', 'unselect']),\n show: PropTypes.oneOf(['always', 'notSameState']),\n render: PropTypes.func,\n }),\n ]),\n /** It `true` the dropdown will close after selecting a value. */\n closeOnSelect: PropTypes.bool,\n /** Toggles the display of the search input from the dropdown. */\n showSearch: PropTypes.bool,\n /** If it is required and can only select one value once you have something\n * selected you will not be able to deselect */\n required: PropTypes.bool,\n /** Validates newly added value before adding it to the selected values.\n * Returns an error string in case of error otherwise it returns undefined\n */\n validateOnChange: PropTypes.func,\n wrapperClassName: PropTypes.string,\n};\n\nexport default Combobox2;\n\nfunction normalizeValue(value, values) {\n let v = value;\n if (typeof value === 'string') v = { id: value, name: value };\n else if (!value.hasOwnProperty('name')) v = { ...value, name: value.id }; // eslint-disable-line no-prototype-builtins\n if (!values) return v;\n const existingVal = values.find((ev) => ev.id === v.id);\n return existingVal ? { ...v, ...existingVal } : v;\n}\n\nfunction getValueFromProp(value, values) {\n if (!value) return [];\n if (Array.isArray(value)) return value.map((v) => normalizeValue(v, values));\n return [normalizeValue(value, values)];\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"flatpickr\");","import React, {\n useEffect, useState, useRef, useCallback,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport flatpickr from 'flatpickr';\n\nimport Icon from '../../../components/Icon';\nimport { usePrevious } from '../../../hooks';\n\nfunction DatePicker({\n children,\n disabled,\n readOnly = false,\n error,\n id,\n label,\n labelwidth,\n note,\n onClose,\n onChange,\n onOpen,\n theme,\n config = {},\n value,\n wrapperClassName = '',\n}) {\n const [pickerInstance, setPickerInstance] = useState(null);\n const dateRef = useRef(null);\n\n const prevValue = usePrevious(value);\n\n const hasValueChanged = useCallback((prevDate, currentDate) => {\n if (!prevDate) return true;\n if (!Array.isArray(currentDate)) return prevDate.getTime() !== currentDate.getTime();\n\n let diffDates = currentDate;\n\n if (prevDate && currentDate.length && prevDate.length) {\n diffDates = currentDate.filter((date, index) => date.getTime() !== prevDate[index].getTime());\n\n return diffDates.length > 0;\n }\n\n return currentDate.length > 0;\n }, []);\n\n const onDateChange = useCallback((dateValue) => {\n const finalValue = config.mode === 'range' ? dateValue : dateValue[0] || null;\n\n if (!onChange) return;\n\n if (config.mode === 'range') {\n if (finalValue.length === 2 && hasValueChanged(prevValue, finalValue)) {\n onChange(finalValue);\n }\n } else {\n onChange(finalValue);\n }\n }, [prevValue, onChange, hasValueChanged]);\n\n useEffect(() => {\n if (dateRef.current && !pickerInstance) {\n const instance = flatpickr(dateRef.current, {\n ...config, defaultDate: value, onChange: onDateChange, onClose, onOpen,\n });\n setPickerInstance(instance);\n }\n\n return () => {\n if (pickerInstance) {\n pickerInstance.destroy();\n }\n };\n }, [pickerInstance]);\n\n useEffect(() => {\n if (pickerInstance) {\n let tempValue = value;\n\n if (typeof value === 'string') {\n tempValue = new Date(value);\n } else if (Array.isArray(value)) {\n tempValue = value.map((date) => new Date(date));\n }\n\n if (hasValueChanged(prevValue, tempValue)) {\n pickerInstance.set('onChange', onDateChange);\n if (config.mode === 'range') {\n if (tempValue && tempValue.length === 2) {\n pickerInstance.setDate(tempValue, true);\n }\n } else {\n pickerInstance.setDate(tempValue, true);\n }\n }\n }\n }, [prevValue, value, pickerInstance]);\n\n const classes = [\n 'tyk-form-group',\n 'tyk-form-group--addon-right',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const getLabelStyles = () => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n };\n\n const getNonLabelWidth = () => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n };\n\n const openCalendar = useCallback(() => {\n if (!pickerInstance) return;\n\n pickerInstance.open();\n }, [pickerInstance]);\n\n const getInputError = () => (\n (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null\n );\n\n const getInputField = () => {\n let inputStyle = {};\n let addonStyle = {};\n\n if (config?.inline) {\n inputStyle = {\n height: 0,\n padding: 0,\n width: 0,\n visibility: 'hidden',\n };\n\n addonStyle = {\n display: 'none',\n };\n }\n return (\n <>\n \n {}}\n tabIndex={0}\n style={addonStyle}\n aria-label=\"show calendar\"\n >\n \n \n \n );\n };\n\n return (\n <>\n {\n children?.length\n ? children({ openCalendar, ref: dateRef })\n : (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n
    \n {getInputField()}\n
    \n {\n note\n ?

    { note }

    \n : null\n }\n { getInputError() }\n
    \n )}\n \n )\n }\n
    \n {readOnly && !value && '-'}\n {readOnly && value && flatpickr.formatDate(value, config.dateFormat || 'd/m/Y')}\n
    \n \n );\n}\n\nDatePicker.propTypes = {\n config: PropTypes.instanceOf(Object),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n PropTypes.func,\n ]),\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n onClose: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n onOpen: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n theme: PropTypes.string,\n error: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n PropTypes.string,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default DatePicker;\n","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n // eslint-disable-next-line no-console\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n case 'aaa':\n return dayPeriodEnumValue;\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, dirtyDelimiter);\n}\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\nexport default formatters;","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n var dateTimeFormat;\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n return result;\n};\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import defaultLocale from \"../../locale/en-US/index.js\";\nexport default defaultLocale;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n var originalDate = toDate(dirtyDate);\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n var formatter = formatters[firstCharacter];\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n return substring;\n }).join('');\n return result;\n}\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n if (!matched) {\n return input;\n }\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import React, { Component, createRef } from 'react';\nimport isEqual from 'react-fast-compare';\nimport PropTypes from 'prop-types';\n\nimport Column from '../../../../layout/Column';\nimport Row from '../../../../layout/Row';\nimport Button from '../../../../components/Button';\n\nclass EditableListForm extends Component {\n static getMainFormValue(components) {\n const mainFormValue = new Array(components.length);\n\n components.forEach((component, index) => {\n mainFormValue[index] = component.props.value || undefined;\n });\n\n return mainFormValue;\n }\n\n constructor(props) {\n super(props);\n const {\n components,\n } = props;\n\n this.submitButtonRef = createRef();\n this.handleOnChange = this.handleOnChange.bind(this);\n this.submitForm = this.submitForm.bind(this);\n\n this.state = {\n components,\n errors: {},\n mainError: null,\n mainFormValue: EditableListForm.getMainFormValue(components),\n refs: [],\n };\n }\n\n componentDidMount() {\n const {\n addValueOnFieldChange,\n getMainFormButtonWidth,\n } = this.props;\n this.createRefs();\n\n if (getMainFormButtonWidth) {\n getMainFormButtonWidth(\n !addValueOnFieldChange\n ? this.submitButtonRef.current.clientWidth\n : 0,\n );\n }\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const state = {};\n const {\n components: propsComponents,\n } = nextProps;\n\n const {\n components: stateComponents,\n } = prevState;\n if (\n !isEqual(propsComponents, stateComponents)\n && !isEqual(\n EditableListForm.getMainFormValue(propsComponents),\n EditableListForm.getMainFormValue(stateComponents),\n )\n ) {\n state.mainFormValue = EditableListForm.getMainFormValue(propsComponents);\n state.components = propsComponents;\n }\n\n return state;\n }\n\n handleOnChange(component, index, value) {\n const { addValueOnFieldChange } = this.props;\n let tempState = this.state;\n\n tempState = { ...tempState, ...this.validateValue(value, component.props) };\n\n if (!tempState.errors[component.props.name]) {\n tempState.mainFormValue[index] = value;\n\n if (component.props.onChange) {\n component.props.onChange(value);\n }\n }\n\n this.setState((previousState) => ({ ...previousState, ...tempState }), () => {\n if (addValueOnFieldChange) {\n this.submitForm();\n }\n });\n }\n\n getFormCssClasses() {\n const { noLabels } = this.props;\n const cssClasses = ['tyk-editable-list__form'];\n\n if (noLabels) {\n cssClasses.push('no-labels');\n }\n\n return cssClasses.join(' ');\n }\n\n getButtonClassName() {\n const { buttonStyle, displayType } = this.props;\n const cssClasses = [];\n\n if (buttonStyle) {\n cssClasses.push(buttonStyle);\n }\n\n if (displayType) {\n cssClasses.push(displayType);\n }\n\n return cssClasses.join(' ');\n }\n\n getComponentsError(component) {\n const {\n error,\n errors,\n mainError,\n } = this.state;\n\n if (error || mainError) {\n errors[component.props.name] = 'true';\n } else if (!(error || mainError) && errors[component.props.name] === 'true') {\n delete errors[component.props.name];\n }\n\n return errors[component.props.name] ? errors[component.props.name].toString() : undefined;\n }\n\n createRefs() {\n const { components } = this.props;\n const refs = [];\n\n components.forEach(() => {\n refs.push(createRef());\n });\n\n this.setState({\n refs,\n });\n }\n\n validateValue(value, props) {\n const { mainError, errors } = this.state;\n const { error, errorPersist } = this.props;\n\n const validatorsNames = props.validate ? Object.keys(props.validate) : [];\n // if there is a general form error don't take field errors into consideration\n const tempState = {\n errors: (error || mainError) ? {} : { ...errors },\n };\n let ok = true;\n\n // if the error should stay after changing fields values don't take actions\n if (errorPersist) {\n return tempState;\n }\n\n // validate each field from the form\n for (const validatorName of validatorsNames) {\n const validator = props.validate[validatorName];\n if (validator(value)) {\n tempState.errors[props.name] = props.validationmessages[validatorName];\n ok = false;\n break;\n }\n }\n\n // if the field is ok delete its error\n if (ok) {\n delete tempState.errors[props.name];\n }\n\n tempState.mainError = null;\n\n return tempState;\n }\n\n hasMainFormErrors(errors) {\n const { components, errorPersist } = this.props;\n const { mainFormValue } = this.state;\n const tempState = {\n errors: { ...errors },\n };\n\n if (errorPersist && mainFormValue.indexOf(undefined) === -1) {\n return false;\n }\n\n if (Object.keys(tempState.errors).length > 0) {\n return true;\n }\n\n components.forEach((component, index) => {\n tempState.errors = {\n ...tempState.errors,\n ...this.validateValue(mainFormValue[index], component.props).errors,\n };\n });\n\n return Object.keys(tempState.errors).length > 0;\n }\n\n resetForm() {\n const { refs } = this.state;\n const {\n components,\n } = this.props;\n\n refs.forEach((ref) => {\n if (ref.current?.reset) {\n ref.current.reset();\n }\n });\n\n this.setState({\n errors: {},\n mainError: null,\n mainFormValue: EditableListForm.getMainFormValue(components),\n });\n }\n\n showMainError(error) {\n this.setState({\n mainError: error,\n });\n }\n\n submitForm() {\n const { errors, mainFormValue } = this.state;\n const {\n errorPersist, onSubmit, validate, validationmessage,\n } = this.props;\n\n if (errorPersist) {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n\n if (\n Object.keys(errors).length === 0\n && (onSubmit && typeof onSubmit === 'function')\n ) {\n if (validate) {\n if (validate(mainFormValue)) {\n this.showMainError(validationmessage);\n } else {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n } else {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n }\n }\n\n render() {\n const {\n addValueOnFieldChange, components, buttonName, disabled, displayType, error,\n } = this.props;\n const {\n mainError, refs, errors,\n } = this.state;\n\n return (\n
    \n
    \n \n {\n components.map((component, index) => {\n const ComponentName = component.name;\n console.log('ComponentName', ComponentName);\n const {\n onChange, value, ...rest\n } = component.props;\n\n return (\n \n \n \n );\n })\n }\n \n {\n !addValueOnFieldChange\n ? (\n \n \n { buttonName || 'ADD' }\n \n \n )\n : null\n }\n
    \n {\n error || mainError\n ? (\n
    \n

    \n { error || mainError }\n

    \n
    \n )\n : null\n }\n
    \n );\n }\n}\n\nEditableListForm.propTypes = {\n addValueOnFieldChange: PropTypes.bool,\n noLabels: PropTypes.bool,\n buttonName: PropTypes.string,\n buttonStyle: PropTypes.string,\n components: PropTypes.instanceOf(Array),\n displayType: PropTypes.string,\n disabled: PropTypes.bool,\n getMainFormButtonWidth: PropTypes.func,\n error: PropTypes.string,\n errorPersist: PropTypes.bool,\n onSubmit: PropTypes.func,\n validate: PropTypes.func,\n validationmessage: PropTypes.string,\n};\n\nexport default EditableListForm;\n","import React, { Component, createRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport format from 'date-fns/format';\nimport isDate from 'date-fns/isDate';\n\nimport EditableListForm from './js/EditableListForm';\nimport Column from '../../../layout/Column';\nimport Icon from '../../../components/Icon';\nimport Row from '../../../layout/Row';\n\nclass EditableList extends Component {\n static getItemListValue(itemValue) {\n let tempValue = null;\n\n if (typeof itemValue === 'string') {\n tempValue = itemValue;\n }\n\n if (Object.prototype.toString.call(itemValue) === '[object Object]') {\n tempValue = itemValue.name;\n }\n\n if (isDate(itemValue)) {\n tempValue = format(itemValue, 'dd/MM/yyyy');\n }\n\n return tempValue;\n }\n\n static getListItemCssClass(displayType) {\n const cssClasses = [];\n\n if (displayType === 'inline') {\n cssClasses.push('tyk-editable-list-item--inline');\n }\n\n return cssClasses.join(' ');\n }\n\n constructor(props) {\n super(props);\n const {\n value,\n } = this.props;\n\n this.state = {\n initialValue: value || '',\n value: value || [],\n buttonWidth: 0,\n };\n\n this.startIndex = 1;\n\n this.handleFormSubmit = this.handleFormSubmit.bind(this);\n this.getMainFormButtonWidth = this.getMainFormButtonWidth.bind(this);\n this.dropdownListItemRef = createRef();\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const state = {};\n\n if (\n nextProps.value && JSON.stringify(nextProps.value)\n !== JSON.stringify(prevState.initialValue)\n ) {\n state.value = nextProps.value || [];\n state.initialValue = nextProps.value || '';\n }\n\n return state.value ? state : null;\n }\n\n handleFormSubmit(value) {\n const tempState = this.addValues(value);\n this.setState((previousState) => ({ ...previousState, ...tempState }), () => {\n this.triggerOnChange(tempState.value.length - 1, null, value);\n });\n }\n\n handleItemUpdate(index, value) {\n let prevValue;\n this.setState((previousState) => {\n const tempState = { ...previousState };\n prevValue = fromJS(tempState.value[index].value).toJS();\n tempState.value[index].value = value;\n tempState.value[index].editMode = false;\n\n return tempState;\n }, () => {\n this.triggerOnChange(index, prevValue, value);\n });\n }\n\n handleChildrenOnChange(index, value) {\n let prevValue;\n this.setState((previousState) => {\n const tempState = { ...previousState };\n prevValue = fromJS(tempState.value[index].children).toJS();\n tempState.value[index].children = value;\n\n return tempState;\n }, () => {\n this.triggerOnChange(index, prevValue, value);\n });\n }\n\n getListItemsCssClass(displayType) {\n const { config } = this.props;\n const cssClasses = ['tyk-editable-list-items'];\n\n cssClasses.push(config.displayType || 'table');\n\n if (displayType === 'inline') {\n cssClasses.push('tyk-editable-list-items--inline');\n }\n\n return cssClasses.join(' ');\n }\n\n getFormInputKey() {\n this.startIndex += 1;\n return this.startIndex;\n }\n\n // generate list item value's based on the display types\n // table, inline, list\n getListItemText(itemData) {\n const { config } = this.props;\n let value = null;\n\n switch (config.displayType) {\n case 'list':\n case 'inline': {\n const itemText = itemData.value.reduce((prevValue, itemValue, index) => {\n const tempValue = EditableList.getItemListValue(itemValue);\n let separator = ', ';\n\n if (index === itemData.value.length - 1) {\n separator = '';\n }\n\n return prevValue + tempValue + separator;\n }, '');\n\n value = itemText;\n\n break;\n }\n default:\n value = (\n \n {\n config.components.map((component, index) => (\n \n { EditableList.getItemListValue(itemData.value[index]) }\n \n ))\n }\n \n );\n\n break;\n }\n\n return value;\n }\n\n getMainFormButtonWidth(value) {\n this.setState({\n buttonWidth: value,\n });\n }\n\n setItemEditMode(index) {\n const newValues = this.closeListItems();\n\n this.setState((previousState) => {\n const tempState = { ...previousState };\n tempState.value = newValues;\n tempState.value[index].editMode = !tempState.value[index].editMode;\n\n return tempState;\n });\n }\n\n isInList(index, itemValue) {\n const { value } = this.state;\n let ok = false;\n\n value.forEach((item, itemIndex) => {\n if (JSON.stringify(item.value) === JSON.stringify(itemValue)) {\n if (index >= 0 && itemIndex === index) {\n ok = false;\n } else {\n ok = true;\n }\n }\n });\n\n return ok;\n }\n\n addValues(newValue) {\n const { value } = this.state;\n const { config } = this.props;\n const itemValue = {\n editMode: false,\n value: newValue,\n };\n const tempState = {\n value: value.slice(0),\n };\n\n if (config.children) {\n itemValue.children = [];\n }\n\n tempState.value.push(itemValue);\n\n return tempState;\n }\n\n removeListItem(index) {\n let removedItem;\n this.setState((previousState) => {\n const valueArr = previousState.value.slice(0);\n removedItem = valueArr.splice(index, 1);\n\n return {\n value: valueArr,\n };\n }, () => {\n this.triggerOnChange(index, removedItem, null);\n });\n }\n\n closeListItems() {\n const { value } = this.state;\n\n const newValues = value.map((itemValue) => {\n const tempItemValue = { ...itemValue };\n\n if (tempItemValue.editMode) {\n tempItemValue.editMode = false;\n return tempItemValue;\n }\n\n return tempItemValue;\n });\n\n return newValues;\n }\n\n triggerOnChange(index, prevValue, nextValue) {\n const { onChange } = this.props;\n const { value } = this.state;\n\n if (onChange && typeof onChange === 'function') {\n onChange(((value.length) ? value : null), index, prevValue, nextValue);\n }\n }\n\n genListItem(itemData, index) {\n const { config, disabled } = this.props;\n const { buttonWidth, value } = this.state;\n\n const clonedComponents = fromJS(config.components).toJS();\n\n itemData.value.forEach((itemValue, itemIndex) => {\n clonedComponents[itemIndex].props.value = itemValue;\n });\n\n return (\n \n \n {\n !itemData.editMode\n ? (\n <>\n { this.getListItemText(itemData, index) }\n \n \n \n \n \n \n \n \n \n )\n : (\n <>\n \n \n \n \n \n )\n }\n \n {\n config.children\n ? (\n \n )\n : null\n }\n \n );\n }\n\n genList() {\n const { config } = this.props;\n const { buttonWidth, value } = this.state;\n\n if (!value || value.length === 0) {\n return null;\n }\n\n return (\n <>\n {\n config.displayType === 'table' || !config.displayType\n ? (\n \n \n {\n config.components.map((component, index) => (\n \n { component.props.label }\n \n ))\n }\n \n \n )\n : null\n }\n
      \n {\n value.map((itemData, index) => this.genListItem(itemData, index))\n }\n
    \n \n );\n }\n\n render() {\n const {\n addValueOnFieldChange, config, error, disabled, label,\n } = this.props;\n const appendToElement = document.querySelector(config.appendTo) || document.querySelector('body');\n\n return (\n
    \n {\n label\n ? \n : null\n }\n \n {\n config.appendTo\n ? ReactDOM.createPortal(\n this.genList(),\n appendToElement,\n )\n : this.genList()\n }\n
    \n );\n }\n}\n\nEditableList.propTypes = {\n addValueOnFieldChange: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n config: PropTypes.instanceOf(Object),\n onChange: PropTypes.func,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n ]),\n};\n\nexport default EditableList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../../../components/Button';\n\nfunction Header({\n label, addButtonName, onAddRow, disabled, readOnly,\n}) {\n return (\n
    \n {\n label\n ? \n : null\n }\n {!disabled && !readOnly && (\n \n {addButtonName || 'Add'}\n \n )}\n
    \n );\n}\n\nHeader.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n onAddRow: PropTypes.func,\n addButtonName: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n};\n\nexport default Header;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ListHeader({\n fields,\n readOnly,\n}) {\n return (\n
  • \n {\n fields.map((field) => (\n \n {field?.props?.label}\n \n ))\n }\n
    Delete
    \n
  • \n );\n}\n\nListHeader.propTypes = {\n fields: PropTypes.instanceOf(Array),\n readOnly: PropTypes.bool,\n};\n\nexport default ListHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '../../../components/Button';\n\nfunction FieldsList({\n fields,\n disabled,\n readOnly,\n errors,\n components,\n onChange,\n onDelete,\n value,\n rowIndex,\n}) {\n return (\n
  • \n {\n components.map((Component, index) => {\n const field = fields[index];\n const tempField = typeof field === 'function' ? field(rowIndex, index) : field;\n return (\n \n \n \n );\n })\n }\n
    \n \n
    \n
  • \n );\n}\n\nFieldsList.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n rowIndex: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n fields: PropTypes.instanceOf(Array),\n errors: PropTypes.instanceOf(Array),\n components: PropTypes.instanceOf(Array),\n value: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n onDelete: PropTypes.func,\n};\n\nexport default FieldsList;\n","import React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Header from './Header';\nimport ListHeader from './ListHeader';\nimport FieldsList from './FieldsList';\nimport validateValues from './validate-values';\nimport withValidation from './with-validation';\n\nlet id = 1;\n/* eslint-disable-next-line */\nconst getUID = prefix => `${prefix}-${id++}`;\n\n/**\n * Editable list is a component, that lists rows of form elements (can have n elements on a row),\n * and stores the values of all the rows in an Array list\n */\nfunction EditableList2({\n addButtonName,\n disabled,\n readOnly,\n fields,\n label,\n error,\n value = [],\n onChange = () => {},\n hideOnEmpty = true,\n wrapperClassName = '',\n}) {\n const [internalErrors, setInternalErrors] = useState(null);\n\n const updateRowValue = (rowIndex, fieldIndex, componentValue, isValid) => {\n const tempValueArr = !value ? [] : [...value];\n\n if (!value) {\n tempValueArr[rowIndex] = [...new Array(fields.length)];\n tempValueArr[rowIndex][fieldIndex] = componentValue;\n } else {\n const tempValue = [...tempValueArr[rowIndex]];\n tempValue[fieldIndex] = componentValue;\n tempValueArr[rowIndex] = tempValue;\n tempValueArr[rowIndex].id = value[rowIndex].id;\n }\n\n if (internalErrors?.[rowIndex]?.[fieldIndex] && isValid) {\n const tempErrors = [...internalErrors];\n const tempFieldError = [...tempErrors[rowIndex]];\n tempFieldError[fieldIndex] = null;\n tempErrors[rowIndex] = tempFieldError;\n setInternalErrors(tempErrors);\n }\n onChange(tempValueArr);\n };\n\n const hasErrors = (errors) => Boolean(errors?.flat()?.filter(Boolean).length);\n\n const Components = useMemo(\n () => fields.map((field) => {\n const tempField = typeof field === 'function' ? field() : field;\n\n return withValidation(tempField?.component || null);\n }),\n [],\n );\n\n const onAddRow = () => {\n const errors = validateValues(fields, value);\n\n if (hasErrors(errors)) {\n setInternalErrors(errors);\n return;\n }\n\n const newValue = [...new Array(fields.length)];\n newValue.id = getUID('row');\n\n onChange([\n ...value,\n newValue,\n ]);\n };\n\n const deleteRow = (index) => {\n if (!value) {\n return;\n }\n const tempValue = [...value];\n tempValue.splice(index, 1);\n onChange(tempValue);\n };\n\n return (\n
    \n \n {value?.length || !hideOnEmpty ? (\n
      \n {(value || [[]]).map((v, i) => (\n \n ))}\n \n
    \n ) : null}\n {error && error !== 'true' && error !== 'false' ? (\n

    {error}

    \n ) : null}\n
    \n );\n}\n\nEditableList2.propTypes = {\n /** Sets Editable list in edit mode.\n * If enabled all fields are disabled, the add button is hidden and delete button is disabled\n * */\n disabled: PropTypes.bool,\n /** Sets Editable list in read only mode.\n * If enabled all fields are displaying just the value,\n * the add button is hidden and delete button is disabled\n */\n readOnly: PropTypes.bool,\n /** Name of the Add button. By default has 'Add value' */\n addButtonName: PropTypes.string,\n /** Label of Editable list, is displayed above the list and inline with the Add button */\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n /** Array of form elements that you want the list to have\n * Each field is an object points to the Form element component that you want to use,\n * the props you want to apply on it,\n * and the size (as in width, it's like columns system, between 1 and 12)\n * Example:\n * ...\n * fields={[\n {\n component: Input2,\n styles: {\n width: \"200px\",\n },\n size: 4,\n props: {\n name: 'input',\n label: 'Claim name',\n theme: 'default rounded-corners',\n placeholder: 'Enter claim name',\n validate: formikRequired('This field is required')\n }\n },\n {\n component: Combobox2,\n size: 8,\n props: comboboxProps\n }\n ]}\n */\n fields: PropTypes.instanceOf(Array),\n /** onChange function is called everytime the value of editable list changes */\n onChange: PropTypes.func,\n /** value of editable list, wich is an Array (List of row values)\n * of Arrays (List of column values,\n * each column will have the value format depending on the component type)\n */\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Object),\n PropTypes.instanceOf(Array),\n ]),\n error: PropTypes.string,\n hideOnEmpty: PropTypes.bool,\n wrapperClassName: PropTypes.string,\n};\n\nexport default EditableList2;\n","import React, { useCallback, useState } from 'react';\n\n// eslint-disable-next-line react/function-component-definition\nconst withValidation = (Component) => ({\n onChange, // eslint-disable-line react/prop-types\n validate, // eslint-disable-line react/prop-types\n error, // eslint-disable-line react/prop-types\n ...rest\n}) => {\n const [internalError, setInternalError] = useState(null);\n const onFieldChange = useCallback((event) => {\n /* eslint-disable-next-line */\n const value = event?.target\n ? ['radio', 'checkbox'].includes(event.target.type)\n ? event.target.checked\n : event?.target.value\n : event;\n\n let isValid = true;\n if (validate && typeof validate === 'function') {\n const errorMsg = validate(value);\n isValid = !errorMsg;\n setInternalError(errorMsg);\n }\n\n onChange(value, isValid);\n }, [validate, onChange]);\n\n return ;\n};\n\nexport default withValidation;\n","const validateValues = (fields, rowValues) => (rowValues || [[undefined, undefined]])?.map(\n (colValue) => colValue?.map(\n (value, index) => fields[index].props.validate?.(value),\n ),\n);\n\nexport default validateValues;\n","import React, { useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\n\nfunction FileInput({\n error,\n theme,\n labelwidth,\n wrapperClassName = '',\n id,\n label,\n note,\n accept,\n value,\n onChange,\n ...rest\n}) {\n const fileInputRef = useRef();\n\n function handleOnChange(e) {\n onChange(e.target.files);\n }\n\n function getCssClasses() {\n const cssClasses = [wrapperClassName, 'tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n }\n\n function getLabelStyles() {\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n function getNonLabelWidth() {\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n function getFileInputError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n function getFileInputComponent() {\n return (\n \n \n {\n fileInputRef.current && fileInputRef.current.files.length > 0\n ? (\n \n \n \n )\n : null\n }\n \n );\n }\n\n function clearValue() {\n fileInputRef.current.value = '';\n onChange('');\n }\n\n return (\n
    \n {\n label\n ? \n : null\n }\n
    \n { getFileInputComponent() }\n {\n note\n ?

    { note }

    \n : null\n }\n
    \n { getFileInputError() }\n
    \n );\n}\n\nFileInput.propTypes = {\n accept: PropTypes.string,\n disabled: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.instanceOf(Object),\n wrapperClassName: PropTypes.string,\n};\n\nexport default FileInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nclass Input extends Component {\n static getAddon(content) {\n return (\n
    \n { content }\n
    \n );\n }\n\n constructor(props) {\n super(props);\n const {\n value,\n } = this.props;\n\n this.state = {\n initValue: value,\n stateValue: value,\n };\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n const {\n isfield,\n value,\n onChange,\n } = this.props;\n\n if (!isfield && prevProps.value !== value) {\n /* eslint-disable react/no-did-update-set-state */\n this.setState({\n stateValue: value,\n }, () => {\n if (onChange) {\n onChange(value);\n }\n });\n }\n }\n\n handleOnChange(e) {\n const { onChange, isfield } = this.props;\n const inputValue = e.target.value;\n\n if (!isfield) {\n this.setState({\n stateValue: inputValue,\n }, () => {\n if (onChange) {\n onChange(inputValue);\n }\n });\n } else {\n onChange(inputValue);\n }\n }\n\n getLabelStyles() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n getNonLabelWidth() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n getInputError() {\n const { error } = this.props;\n\n return (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null;\n }\n\n getCssClasses() {\n const {\n error,\n theme,\n labelwidth,\n inputgroupaddonleft,\n inputgroupaddonright,\n } = this.props;\n const cssClasses = ['tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (inputgroupaddonleft) {\n cssClasses.push('tyk-form-group--addon-left');\n }\n\n if (inputgroupaddonright) {\n cssClasses.push('tyk-form-group--addon-right');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n }\n\n getInputGroupAddon() {\n const {\n inputgroupaddonleft,\n inputgroupaddonright,\n } = this.props;\n\n return (\n
    \n {\n inputgroupaddonleft\n ? Input.getAddon(inputgroupaddonleft)\n : null\n }\n { this.getInputComponent() }\n {\n inputgroupaddonright\n ? Input.getAddon(inputgroupaddonright)\n : null\n }\n
    \n );\n }\n\n getInputComponent() {\n const {\n isfield, onChange, value, ...rest\n } = this.props;\n const { stateValue } = this.state;\n return (\n \n );\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n reset() {\n const { initValue } = this.state;\n\n this.setState({\n stateValue: initValue,\n });\n }\n\n render() {\n const {\n label,\n id,\n inputgroupaddonleft,\n inputgroupaddonright,\n note,\n readOnly,\n value,\n } = this.props;\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n {\n inputgroupaddonleft || inputgroupaddonright\n ? this.getInputGroupAddon()\n : this.getInputComponent()\n }\n {\n note\n ?

    { note }

    \n : null\n }\n { this.getInputError() }\n
    \n )}\n {\n readOnly &&
    {value || '-'}
    \n }\n \n );\n }\n}\n\nInput.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n isfield: PropTypes.bool,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n inputgroupaddonleft: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n inputgroupaddonright: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n};\n\nexport default Input;\n","import React, { useImperativeHandle, useRef, forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Input2({\n error,\n onChange,\n readOnly,\n id,\n inputgroupaddonleft,\n inputgroupaddonright,\n label,\n labelwidth,\n note,\n theme,\n value,\n wrapperClassName = '',\n ...rest\n}, ref) {\n const inputRef = useRef();\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n inputRef.current.focus();\n },\n }));\n\n const getAddon = (content) => (\n
    \n { content }\n
    \n );\n\n const getLabelStyles = () => ({\n ...labelwidth && {\n flexBasis: labelwidth,\n },\n });\n\n const getNonLabelWidth = () => ({\n ...labelwidth && {\n flexBasis: `calc(100% - ${labelwidth} - 20px)`,\n },\n });\n\n const getInputError = () => (\n (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null\n );\n\n const getCssClasses = () => {\n const cssClasses = [wrapperClassName, 'tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (inputgroupaddonleft) {\n cssClasses.push('tyk-form-group--addon-left');\n }\n\n if (inputgroupaddonright) {\n cssClasses.push('tyk-form-group--addon-right');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n };\n\n const handleOnChange = (e) => {\n onChange(e, e.target.value);\n };\n\n const getInputElement = () => (\n \n );\n\n const getInputGroupAddon = () => (\n
    \n {\n inputgroupaddonleft\n ? getAddon(inputgroupaddonleft)\n : null\n }\n { getInputElement() }\n {\n inputgroupaddonright\n ? getAddon(inputgroupaddonright)\n : null\n }\n
    \n );\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n {\n inputgroupaddonleft || inputgroupaddonright\n ? getInputGroupAddon()\n : getInputElement()\n }\n {\n note\n ?

    { note }

    \n : null\n }\n { getInputError() }\n
    \n )}\n {\n readOnly && (\n
    \n {value || '-'}\n
    \n )\n }\n \n );\n}\n\nInput2.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n inputgroupaddonleft: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n inputgroupaddonright: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default forwardRef(Input2);\n","import { createContext } from 'react';\n\nconst MultiselectContext = createContext();\n\nexport default MultiselectContext;\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport MultiselectContext from './MultiselectContext';\nimport Button from '../../../../components/Button';\nimport Collapsible from '../../../../components/Collapsible';\nimport Loader from '../../../../components/Loader';\n\nconst getItemContent = (context, item) => (\n context.detailsDisplayTemplate\n ? context.detailsDisplayTemplate(item)\n : JSON.stringify(item.details)\n);\n\nconst getItemLoader = (context, item) => {\n const { opened } = context;\n\n return opened[item.id]\n ? \n : null;\n};\n\nfunction MultiselectItem({\n item,\n itemType,\n searchValue,\n onChange,\n}) {\n const isInSearchValue = useCallback((fieldsToSearchOn) => {\n if (fieldsToSearchOn?.length > 0) {\n return fieldsToSearchOn.some((key) => item[key]?.includes(searchValue));\n }\n\n return JSON.stringify(item).includes(searchValue);\n }, [item, searchValue]);\n\n const onAddRemove = useCallback(() => {\n onChange(item);\n }, [onChange, item]);\n\n return (\n \n {\n (context) => (\n isInSearchValue(context.fieldsToSearchOn)\n ? (\n
  • \n
    \n \n {\n context.itemDisplayTemplate\n ? context.itemDisplayTemplate(item)\n : JSON.stringify(item)\n }\n \n \n \n context.onGetItemDetails(item)}\n />\n \n
    \n {\n item.details\n ? (\n \n {getItemContent(context, item)}\n \n )\n : getItemLoader(context, item)\n }\n
  • \n )\n : null\n )\n }\n
    \n );\n}\n\nMultiselectItem.propTypes = {\n item: PropTypes.instanceOf(Object),\n itemType: PropTypes.string,\n searchValue: PropTypes.string,\n onChange: PropTypes.func,\n};\n\nexport default MultiselectItem;\n","import React, { useCallback, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Input from '../../Input';\nimport Icon from '../../../../components/Icon';\nimport Message from '../../../../components/Message';\nimport InfiniteScroller from '../../../../components/InfiniteScroller';\nimport MultiselectItem from './MultiselectItem';\n\nfunction MultiselectPanel({\n inputPlaceholder,\n noItemsMessage,\n items,\n onCustomSearch,\n onChange,\n customSearch,\n panelType,\n serverLoad,\n itemsPageNumber,\n itemsNrPages,\n loadMoreItems,\n}) {\n const [searchValue, setSearchValue] = useState('');\n const itemIndex = useRef(0);\n const itemsListRef = useRef();\n\n function getItemIndex() {\n itemIndex.current += 1;\n\n return itemIndex.current;\n }\n\n function getItemsList() {\n return (\n serverLoad\n ? (\n itemsPageNumber}\n loadMore={loadMoreItems}\n pageNumber={itemsPageNumber}\n >\n { renderListItems() }\n \n )\n : renderListItems()\n );\n }\n\n const searchOnChange = useCallback((value) => {\n if (onCustomSearch) {\n onCustomSearch(value);\n } else {\n setSearchValue(value);\n }\n }, [onCustomSearch]);\n\n const itemChanged = useCallback((item) => {\n let cloneItems = structuredClone(items);\n cloneItems = cloneItems.filter((clonedItem) => item.id !== clonedItem.id);\n\n onChange(cloneItems, item);\n }, [items]);\n\n function renderListItems() {\n return (\n \n {\n items.map((item) => (\n \n ))\n }\n \n );\n }\n\n return (\n
    \n \n }\n name=\"search\"\n onChange={searchOnChange}\n placeholder={inputPlaceholder}\n value={searchValue}\n />\n {\n items.length\n ? getItemsList()\n : (\n \n { noItemsMessage }\n \n )\n }\n
    \n );\n}\n\nMultiselectPanel.propTypes = {\n customSearch: PropTypes.bool,\n onCustomSearch: PropTypes.func,\n panelType: PropTypes.string,\n onChange: PropTypes.func,\n items: PropTypes.instanceOf(Array),\n itemsPageNumber: PropTypes.number,\n itemsNrPages: PropTypes.number,\n inputPlaceholder: PropTypes.string,\n loadMoreItems: PropTypes.func,\n noItemsMessage: PropTypes.string,\n serverLoad: PropTypes.bool,\n};\n\nexport default MultiselectPanel;\n","import React, { useCallback, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport MultiselectPanel from './js/MultiselectPanel';\nimport MultiselectContext from './js/MultiselectContext';\n\nconst diffObjects = (value, items) => items.filter((item) => !value.find((v) => v.id === item.id));\n\nfunction Multiselect({\n customSearch,\n entityNamePlural,\n disabled,\n error,\n getItemDetails,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n items,\n itemsPageNumber,\n itemsNrPages,\n loadMoreItems,\n maxSelections,\n note,\n value,\n onChange,\n wrapperClassName = '',\n}) {\n const [opened, setOpened] = useState({});\n\n const onGetItemDetails = useCallback((item) => {\n setOpened((prevOpened) => ({ ...prevOpened, [item.id]: !prevOpened[item.id] }));\n\n if (getItemDetails) getItemDetails(item);\n }, [getItemDetails]);\n\n function getMultiselectError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n const getCssClasses = useCallback(\n () => [\n wrapperClassName,\n 'tyk-multiselect',\n error && 'has-error',\n ]\n .filter(Boolean)\n .join(' '),\n [wrapperClassName, error],\n );\n\n const itemsChange = useCallback((allItems, item) => {\n const valueClone = structuredClone(value);\n\n valueClone.unshift(item);\n\n onChange(valueClone, item, 'added');\n }, [value]);\n\n const valueChange = useCallback((newValue, item) => {\n onChange(newValue, item, 'removed');\n }, [items]);\n\n const providerValue = useMemo(() => ({\n disabled,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n maxSelections,\n nrSelectedItems: value.length,\n onGetItemDetails,\n opened,\n }), [\n disabled,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n maxSelections,\n value,\n onGetItemDetails,\n opened,\n ]);\n\n return (\n <>\n
    \n \n
    \n
    \n { value.length }\n {' '}\n Selected\n {' '}\n { entityNamePlural }\n
    \n
    \n Select from existing\n { entityNamePlural }\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n {\n note\n ?

    { note }

    \n : null\n }\n
    \n { getMultiselectError() }\n \n );\n}\n\nMultiselect.propTypes = {\n customSearch: PropTypes.func,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n entityNamePlural: PropTypes.string,\n items: PropTypes.instanceOf(Array),\n itemDisplayTemplate: PropTypes.func,\n detailsDisplayTemplate: PropTypes.func,\n fieldsToSearchOn: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n getItemDetails: PropTypes.func,\n itemsPageNumber: PropTypes.number,\n itemsNrPages: PropTypes.number,\n loadMoreItems: PropTypes.func,\n note: PropTypes.string,\n maxSelections: PropTypes.number,\n value: PropTypes.instanceOf(Array),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Multiselect;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * Radio can be used when a user needs to select at most one value from a multiple options.\n */\nfunction Radio({\n label,\n input,\n note,\n inline,\n nospace,\n theme = '',\n disabled,\n readOnly,\n wrapperClassName = '',\n ...rest\n}) {\n const cssClasses = [\n inline ? 'tyk-radio--inline' : 'tyk-radio',\n wrapperClassName,\n nospace && 'no-margin',\n ...(theme ? theme.split(' ').filter(Boolean).map((t) => `tyk-radio--theme-${t}`) : []),\n (readOnly || disabled) && 'tyk-radio--is-disabled',\n ].filter(Boolean).join(' ');\n\n return (\n
    \n \n {note && (\n

    {note}

    \n )}\n
    \n );\n}\n\nRadio.propTypes = {\n /** Used to disable the element */\n disabled: PropTypes.bool,\n /** Readonly prop behaves the same as disabled on radio elements */\n readOnly: PropTypes.bool,\n /** Align radio in the same line with other elements */\n inline: PropTypes.bool,\n /** Set a theme for radio */\n theme: PropTypes.string,\n input: PropTypes.instanceOf(Object),\n /** Adds label to the radio input */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Set name for the radio input */\n name: PropTypes.string,\n /** If set to true removes margin by adding `no-margin` class */\n nospace: PropTypes.bool,\n /** Set initial value for the radio input */\n value: PropTypes.string,\n /** Add note at the bottom of the radio input */\n note: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Radio;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Select(props) {\n const {\n value,\n onChange,\n onBlur,\n isfield,\n label,\n labelwidth,\n id,\n note,\n readOnly,\n options,\n error,\n theme,\n wrapperClassName = '',\n ...rest\n } = props;\n const [stateValue, setStateValue] = useState(value);\n\n useEffect(() => {\n if (!isfield && stateValue !== value) {\n setStateValue(value);\n if (onChange) onChange(value);\n }\n }, [stateValue, value]);\n\n const handleOnChange = useCallback((e) => {\n const selectedValue = options.find((option) => option.id === e.target.value);\n\n if (!isfield) {\n setStateValue(selectedValue);\n }\n onChange(selectedValue.id ? selectedValue : null);\n }, [options, isfield, onChange]);\n\n const handleOnBlur = useCallback(() => {\n if (onBlur) {\n onBlur(value);\n }\n }, [onBlur]);\n\n // eslint-disable-next-line arrow-body-style\n const getSelectError = useCallback(() => {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }, [error]);\n\n const getCssClasses = useCallback(\n () => [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' '),\n [wrapperClassName, theme, labelwidth, error],\n );\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const getNonLabelWidth = useCallback(() => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n }, [labelwidth]);\n\n const getSelectComponent = useCallback(() => {\n const selectValue = isfield && value ? value : stateValue;\n\n return (\n \n {\n options.map((option) => (\n \n ))\n }\n \n );\n }, [isfield, value, stateValue, handleOnChange, handleOnBlur, options, rest]);\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n { getSelectComponent() }\n {\n note\n ?

    { note }

    \n : null\n }\n { getSelectError() }\n
    \n )}\n {readOnly &&
    {value || '-'}
    }\n \n );\n}\n\nSelect.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n isfield: PropTypes.bool,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n options: PropTypes.instanceOf(Array),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Select;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../../../components/Message';\nimport List from '../../../components/List';\nimport Icon from '../../../components/Icon';\n\nfunction SelectableList(props) {\n const {\n checkboxalticon,\n items,\n itemTemplate,\n value,\n noItemsMessage = 'No items in the list',\n onChange,\n theme,\n primaryKey,\n wrapperClassName = '',\n } = props;\n\n const handleOnSelect = (event) => {\n const newSelectedItems = structuredClone(value);\n const elemPosition = newSelectedItems.findIndex(\n (id) => JSON.stringify(id) === JSON.stringify(\n Array.isArray(id)\n ? event.target.value.split(',')\n : event.target.value,\n ),\n );\n\n if (event.target.checked && elemPosition === -1) {\n const tempValue = event.target.value.split(',');\n const finalValue = tempValue.length > 1 ? tempValue : event.target.value;\n\n newSelectedItems.push(finalValue);\n } else if (!event.target.checked && elemPosition > -1) {\n newSelectedItems.splice(elemPosition, 1);\n }\n\n if (onChange) {\n onChange(newSelectedItems);\n }\n };\n\n const getListItemCssClassName = (isActive) => {\n const cssClasses = [];\n\n if (checkboxalticon) {\n cssClasses.push('tyk-selectable-list__item--with-icon');\n }\n\n if (isActive) {\n cssClasses.push('tyk-selectable-list__item--active');\n }\n\n return cssClasses.join(' ');\n };\n\n const isChecked = (inputValue, itemValue) => Boolean(\n inputValue.find((tvalue) => JSON.stringify(itemValue) === JSON.stringify(tvalue)),\n );\n\n return (\n \n {\n !items.length\n ? (\n
  • \n \n {noItemsMessage}\n \n
  • \n )\n : items.map((item, index) => (\n \n \n \n ))\n }\n
    \n );\n}\n\nSelectableList.propTypes = {\n items: PropTypes.instanceOf(Array),\n itemTemplate: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n PropTypes.func,\n ]),\n value: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n primaryKey: PropTypes.string,\n noItemsMessage: PropTypes.string,\n checkboxalticon: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n theme: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\n\nSelectableList.defaultProps = {\n items: [],\n primaryKey: 'id',\n value: [],\n};\n\nexport default SelectableList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Textarea({\n id,\n input,\n label,\n note,\n error,\n theme,\n labelwidth,\n value,\n readOnly,\n wrapperClassName,\n ...rest\n}) {\n const classes = [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const getLabelStyles = () => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n };\n\n const getNonLabelWidth = () => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n };\n\n function getTextareaError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n \n { value }\n \n {\n note\n ?

    { note }

    \n : null\n }\n {getTextareaError()}\n
    \n )}\n {readOnly &&
    {value || '-'}
    }\n \n );\n}\n\nTextarea.propTypes = {\n /** Disable the component */\n disabled: PropTypes.bool,\n /** Displays only the text value of the component, or \"-\" if no value is set */\n readOnly: PropTypes.bool,\n input: PropTypes.instanceOf(Object),\n /** Set an error message for the component and the component is rendered in the error state */\n error: PropTypes.string,\n /** Adds a label to the component */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Sets the width of the label */\n labelwidth: PropTypes.string,\n /** Set a name for the component */\n name: PropTypes.string,\n /** Adds additional information under the component */\n note: PropTypes.string,\n /** Callback function executed on value change */\n onChange: PropTypes.func,\n id: PropTypes.string,\n /** Set a theme for the component */\n theme: PropTypes.string,\n /** Set the value of the component */\n value: PropTypes.string,\n /** CSS classes added to the wrapper of the component */\n wrapperClassName: PropTypes.string,\n};\n\nexport default Textarea;\n","import { createContext } from 'react';\n\nconst ToggleContext = createContext();\n\nexport default ToggleContext;\n","import React, { Component, createRef } from 'react';\nimport PropTypes from 'prop-types';\n\nclass ToggleItem extends Component {\n static getNotchCssClasses(context) {\n return ['tyk-toggle__item-notch', `tyk-toggle__item-notch--${context.type}`].join(' ');\n }\n\n constructor(props) {\n super(props);\n\n this.itemRef = createRef();\n }\n\n componentDidMount() {\n const { context, value } = this.props;\n\n if (context.value === value) {\n context.saveSelectedRef(this.itemRef);\n }\n }\n\n componentDidUpdate(prevProps) {\n const { context, value } = this.props;\n\n if (prevProps.context.value !== context.value && context.value === value) {\n context.saveSelectedRef(this.itemRef);\n }\n }\n\n onChange(event) {\n const { context, value } = this.props;\n const { disabled, readOnly } = context;\n\n if (disabled || readOnly) {\n return;\n }\n\n context.onItemSelected(context.type === 'single' ? !context.value : value, event);\n }\n\n render() {\n const {\n context, label, name, value,\n } = this.props;\n return (\n
  • \n \n
  • \n );\n }\n}\n\nToggleItem.propTypes = {\n context: PropTypes.instanceOf(Object),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n name: PropTypes.string,\n value: PropTypes.string,\n};\n\nexport default ToggleItem;\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToggleContext from './ToggleContext';\nimport ToggleItem from './ToggleItem';\n\nfunction ToggleItemWrapper({ children, ...rest }, ref) {\n return (\n \n {(context) => (\n \n {children}\n \n )}\n \n );\n}\n\nToggleItemWrapper.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nexport default forwardRef(ToggleItemWrapper);\n","import React, {\n useCallback, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToggleContext from './js/ToggleContext';\nimport ToggleItemWrapper from './js/ToggleItemWrapper';\n\nfunction Toggle({\n className,\n disabled,\n readOnly,\n size,\n theme,\n direction,\n onDark,\n wrapperClassName = '',\n onChange,\n labelwidth,\n label,\n separated,\n children,\n type,\n value,\n error,\n}) {\n const [selectedRef, setSelectedRef] = useState(null);\n const notchRef = useRef();\n const toggleRef = useRef();\n\n const classes = [\n wrapperClassName,\n className,\n 'tyk-toggle',\n `tyk-toggle--disabled-${readOnly || disabled}`,\n `tyk-toggle--${size || 'md'}`,\n `tyk-toggle--${theme}`,\n `tyk-toggle--${direction}`,\n onDark && 'tyk-toggle--on-dark',\n ].filter(Boolean).join(' ');\n\n const onItemSelected = useCallback((itemValue, event) => {\n if (!onChange) return;\n onChange(itemValue, event);\n }, [onChange]);\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const positionNotch = useCallback(() => {\n if (!selectedRef || separated) {\n return {};\n }\n\n const selectedWidth = selectedRef.current.offsetWidth;\n const selectedOffset = selectedRef.current.getBoundingClientRect().left;\n const toggleOffset = toggleRef.current.getBoundingClientRect().left;\n const left = selectedOffset - toggleOffset;\n\n return {\n left: `${left + 4}px`,\n width: `${selectedWidth - 8}px`,\n };\n }, [selectedRef, separated]);\n\n const contextValue = useMemo(() => ({\n disabled,\n readOnly,\n onItemSelected,\n saveSelectedRef: setSelectedRef,\n separated,\n type,\n value,\n }), [disabled, readOnly, onItemSelected, separated, type, value]);\n\n return (\n <>\n
    \n \n {\n label\n ? \n : null\n }\n
      \n { children }\n {\n type === 'multiple' && !separated\n ?
    • \n : null\n }\n
    \n \n
    \n {\n error && (\n

    \n { error }\n

    \n )\n }\n \n );\n}\n\nToggle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n error: PropTypes.string,\n onChange: PropTypes.func,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n theme: PropTypes.string,\n type: PropTypes.string, // single || multiple\n size: PropTypes.string,\n separated: PropTypes.bool,\n direction: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n ]),\n onDark: PropTypes.bool,\n wrapperClassName: PropTypes.string,\n};\n\nToggle.defaultProps = {\n separated: false,\n theme: 'primary',\n type: 'single',\n direction: 'row',\n};\n\nToggle.Item = ToggleItemWrapper;\n\nexport default Toggle;\n","const config = {\n FORM_DEBOUNCE: 200,\n};\n\nexport function setConfig(key, val) {\n config[key] = val;\n}\n\nexport default config;\n","import React, { useCallback, useEffect, useState } from 'react';\n\nimport config from '../config/config';\n\nfunction getValueFromPath(obj, path) {\n // turn 'aaa.qqq[2].bbb[5][3].mmm' into ['aaa', 'qqq', '2', 'bbb', '5', '3', 'mmm']\n const indexes = path.split(/[\\][.]/).filter(Boolean);\n return indexes.reduce((acc, v) => (acc ? acc[v] : acc), obj);\n}\n\nfunction debounce(f, limit) {\n let timeoutId;\n return (...args) => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(f, limit, ...args);\n };\n}\n\n/* eslint-disable react/prop-types, react/function-component-definition */\n/**\n * A wrapper function that \"prepares\" a tyk-ui form component to be used with the formik library.\n * It handles things like setting the value of the component, change events, error state,\n * and also has a default debounce time for when the change event is triggered.\n */\nconst wrapper = (Component, options) => ({ field, form, ...properties }) => {\n const DEFAULT_DEBOUNCE_TIME_MS = typeof config.FORM_DEBOUNCE === 'number' ? config.FORM_DEBOUNCE : 200;\n const [myValue, setMyValue] = useState(field.value);\n const opts = {\n getOnChangeProps: () => ({}),\n hasIsFieldProp: false,\n ...options,\n };\n\n const executeDebounced = useCallback((() => {\n const fn = (f) => f();\n if (\n properties.debounce === false\n || (config.FORM_DEBOUNCE === false && !properties.debounce)\n ) {\n return fn;\n }\n const timeout = typeof properties.debounce === 'number'\n ? properties.debounce\n : DEFAULT_DEBOUNCE_TIME_MS;\n return debounce(fn, timeout);\n })(), []);\n\n const getValue = (v) => {\n if (v?.target) {\n if (v.target.nodeName === 'INPUT' && (v.target.type === 'checkbox' || v.target.type === 'radio')) {\n return v.target.checked;\n }\n return v.target.value;\n }\n return v;\n };\n\n const onChange = (valueOrEvent) => {\n const value = getValue(valueOrEvent);\n const onChangeProps = opts.getOnChangeProps(value, field, form, properties);\n\n const newValue = onChangeProps.value || properties.value || value;\n executeDebounced(() => {\n if (typeof properties.onChange === 'function') {\n properties.onChange(newValue);\n }\n field.onChange({ target: { name: field.name, value: newValue, ...onChangeProps } });\n });\n setMyValue(newValue);\n };\n\n const formError = (getValueFromPath(form.touched, field.name) || Boolean(form.submitCount))\n && getValueFromPath(form.errors, field.name);\n const error = typeof formError === 'string' ? formError : '';\n\n useEffect(() => {\n setMyValue(field.value);\n }, [field.value]);\n\n // eslint-disable-next-line no-param-reassign\n if (form.status?.disabled) properties.disabled = true;\n\n const componentProps = { ...properties };\n delete componentProps.debounce;\n\n if (Object.hasOwn(componentProps, 'className') && componentProps.className === undefined) delete componentProps.className;\n if (Object.hasOwn(componentProps, 'children') && componentProps.children === undefined) delete componentProps.children;\n\n return (\n \n );\n};\n\nexport default wrapper;\n","import wrapper from '../../../utils/formik';\nimport Checkbox from '../../components/Checkbox';\n\nexport default wrapper(Checkbox, {\n getOnChangeProps: (value) => ({\n checked: value,\n }),\n});\n","import wrapper from '../../../utils/formik';\nimport CodeEditor from '../../components/CodeEditor';\n\nexport default wrapper(CodeEditor);\n","import wrapper from '../../../utils/formik';\nimport Combobox from '../../components/Combobox';\n\nexport default wrapper(Combobox);\n","import wrapper from '../../../utils/formik';\nimport Combobox2 from '../../components/Combobox2';\n\nexport default wrapper(Combobox2);\n","import wrapper from '../../../utils/formik';\nimport DatePicker from '../../components/DatePicker';\n\nexport default wrapper(DatePicker);\n","import wrapper from '../../../utils/formik';\nimport EditableList from '../../components/EditableList';\n\nexport default wrapper(EditableList, {\n getOnChangeProps: (value) => ({ value: value || [] }),\n});\n","import wrapper from '../../../utils/formik';\nimport EditableList2 from '../../components/EditableList2';\n\nexport default wrapper(EditableList2);\n","import wrapper from '../../../utils/formik';\nimport FileInput from '../../components/FileInput';\n\nexport default wrapper(FileInput);\n","import wrapper from '../../../utils/formik';\nimport Input from '../../components/Input';\n\nexport default wrapper(Input, { hasIsFieldProp: true });\n","import wrapper from '../../../utils/formik';\nimport Input2 from '../../components/Input2';\n\nexport default wrapper(Input2);\n","import wrapper from '../../../utils/formik';\nimport MultiSelect from '../../components/Multiselect';\n\nexport default wrapper(MultiSelect);\n","import wrapper from '../../../utils/formik';\nimport Radio from '../../components/Radio';\n\nexport default wrapper(Radio, {\n getOnChangeProps: (value, field, form, properties) => ({\n checked: value === properties.value,\n value: properties.value,\n }),\n});\n","import wrapper from '../../../utils/formik';\nimport Select from '../../components/Select';\n\nexport default wrapper(Select, { hasIsFieldProp: true });\n","import wrapper from '../../../utils/formik';\nimport SelectableList from '../../components/SelectableList';\n\nexport default wrapper(SelectableList);\n","import wrapper from '../../../utils/formik';\nimport Textarea from '../../components/Textarea';\n\nexport default wrapper(Textarea);\n","import wrapper from '../../../utils/formik';\nimport Toggle from '../../components/Toggle';\n\nexport default wrapper(Toggle);\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport CodeEditor from '../../components/CodeEditor';\n\nclass FieldCodeEditor extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.prop;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldCodeEditor.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCodeEditor;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Combobox from '../../components/Combobox';\n\nclass FieldCombobox extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getComboboxError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldCombobox.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCombobox;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Dropdown from '../../components/Dropdown';\n\nclass FieldDropdown extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n render() {\n const {\n children,\n input,\n ...rest\n } = this.props;\n\n return (\n \n {children}\n \n );\n }\n}\n\nFieldDropdown.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldDropdown;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Pagination from '../../components/Pagination';\n\nfunction FieldPagination(props) {\n const { input, ...rest } = props;\n\n return (\n \n );\n}\n\nFieldPagination.propTypes = {\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldPagination;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Combobox2 from '../../components/Combobox2';\n\nfunction FieldCombobox2(props) {\n const { input, meta, validationmessages } = props;\n\n const getComboboxError = () => {\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n return message;\n };\n\n const handleOnChange = (value) => {\n const { onChange } = input;\n onChange(fromJS(value));\n };\n\n return (\n \n );\n}\n\nFieldCombobox2.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCombobox2;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport DatePicker from '../../components/DatePicker';\n\nfunction FormDatePicker(props) {\n const {\n input,\n meta,\n validationmessages,\n ...rest\n } = props;\n\n const getDatePickerError = () => {\n const { touched, error } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n }\n\n return message;\n };\n\n const handleOnChange = (value) => {\n const { onChange } = input;\n\n onChange(fromJS(value));\n };\n\n return (\n \n );\n}\n\nFormDatePicker.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FormDatePicker;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport EditableList from '../../components/EditableList';\n\nclass FieldEditableList extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getEditableListError() {\n const { meta, validationmessages } = this.props;\n const { touched, error } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldEditableList.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldEditableList;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport FileInput from '../../components/FileInput';\n\nclass FieldFileInput extends Component {\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldFileInput.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldFileInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Input from '../../components/Input';\n\nclass FieldInput extends Component {\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldInput.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Multiselect from '../../components/Multiselect';\n\nclass FieldMultiselect extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getMultiselectError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldMultiselect.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldMultiselect;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Select from '../../components/Select';\n\nclass FieldSelect extends Component {\n constructor(props) {\n super(props);\n\n this.handleEvent = this.handleEvent.bind(this);\n }\n\n handleEvent(selectValue) {\n const { input } = this.props;\n const { onChange, value } = input;\n\n onChange(fromJS(selectValue !== undefined ? selectValue : value));\n }\n\n getSelectError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldSelect.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldSelect;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport SelectableList from '../../components/SelectableList';\n\nclass FieldSelectableList extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n\n input.onChange(fromJS(value));\n }\n\n render() {\n const { children, ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldSelectableList.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.node,\n ]),\n onChange: PropTypes.func,\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldSelectableList;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Toggle from '../../components/Toggle';\n\nclass FieldToggle extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n\n input.onChange(fromJS(value));\n }\n\n render() {\n const { children, ...props } = this.props;\n\n return (\n \n {children}\n \n );\n }\n}\n\nFieldToggle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.node,\n ]),\n onChange: PropTypes.func,\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldToggle;\n","import { useEffect, useRef } from 'react';\n\n/** @component */\nexport default function useInterval(callback, delay, ...args) {\n const savedCallback = useRef();\n\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n // eslint-disable-next-line consistent-return\n useEffect(() => {\n function tick() {\n savedCallback.current(...args);\n }\n if (delay !== null && delay !== undefined) {\n const id = setInterval(tick, delay);\n return () => clearInterval(id);\n }\n }, [delay]);\n}\n"],"names":["global","this","window","define","module","deps","payload","arguments","length","modules","payloads","original","apply","console","error","trace","ns","root","_require","parentId","callback","lookup","undefined","Object","prototype","toString","call","params","i","l","dep","require","push","packagedModule","normalizeModule","moduleName","indexOf","chunks","split","charAt","slice","join","previous","replace","exports","mod","id","uri","packaged","ace","defineProp","obj","name","val","defineProperty","value","enumerable","writable","configurable","String","startsWith","searchString","position","lastIndexOf","endsWith","subjectString","lastIndex","repeat","count","result","string","includes","str","assign","target","TypeError","output","index","source","keys","forEach","key","values","o","map","k","Array","find","predicate","len","thisArg","kValue","findIndex","item","fill","O","relativeStart","Math","max","min","end","relativeEnd","final","of","deepCopy","copy","isArray","last","a","stringReverse","reverse","stringRepeat","trimBeginRegexp","trimEndRegexp","stringTrimLeft","stringTrimRight","copyObject","copyArray","array","arrayToMap","arr","createMap","props","create","arrayRemove","splice","escapeRegExp","escapeHTML","getMatchOffsets","regExp","matches","offset","deferredCall","fcn","timer","deferred","timeout","cancel","setTimeout","schedule","clearTimeout","isPending","delayedCall","defaultTimeout","_self","delay","supportsLookbehind","RegExp","e","skipEmptyMatch","line","supportsUnicodeFlag","codePointAt","OS","LINUX","MAC","WINDOWS","getOS","isMac","isLinux","_navigator","navigator","os","exec","platform","toLowerCase","ua","userAgent","appName","isWin","isIE","parseFloat","match","isOldIE","isGecko","isMozilla","isOpera","opera","isWebKit","isChrome","isSafari","isEdge","isAIR","isAndroid","isChromeOS","isIOS","test","MSStream","isMobile","strictCSP","useragent","buildDom","parent","refs","txt","document","createTextNode","appendChild","els","ch","el","createElement","options","childIndex","n","className","style","cssText","setAttribute","getDocumentHead","doc","head","getElementsByTagName","documentElement","tag","createElementNS","removeChildren","element","innerHTML","textContent","ownerDocument","createFragment","createDocumentFragment","hasCssClass","addCssClass","removeCssClass","classes","toggleCssClass","add","setCssClass","node","include","hasCssString","sheets","querySelectorAll","removeElementById","getElementById","remove","cssCache","insertPendingStyles","cache","importCssString","container","getRootNode","insertBefore","firstChild","useStrictCSP","importCssStylsheet","rel","href","scrollbarWidth","inner","width","minWidth","height","display","outer","left","overflow","body","noScrollbar","offsetWidth","withScrollbar","clientWidth","removeChild","computedStyle","getComputedStyle","setStyle","styles","property","HAS_CSS_ANIMATION","HAS_CSS_TRANSFORMS","HI_DPI","devicePixelRatio","div","transform","animationName","translate","tx","ty","round","top","dom","get","url","xhr","XMLHttpRequest","open","onreadystatechange","readyState","responseText","send","loadScript","path","s","src","onload","_","isAbort","qualifyURL","inherits","ctor","superCtor","super_","constructor","mixin","implement","proto","EventEmitter","stopPropagation","propagationStopped","preventDefault","defaultPrevented","_emit","_dispatchEvent","eventName","_eventRegistry","_defaultHandlers","listeners","defaultHandler","type","_signal","once","on","newCallback","off","Promise","resolve","setDefaultHandler","handlers","_disabled_","old","disabled","removeDefaultHandler","pop","addEventListener","capturing","removeListener","removeEventListener","removeAllListeners","reportError","msg","data","Error","messages","oop","optionsProvider","setOptions","optList","setOption","getOptions","optionNames","$options","filter","hidden","getOption","opt","warn","forwardTo","handlesSet","set","message","AppConfig","$defaultOptions","defineOptions","initialValue","resetOptions","setDefaultValue","opts","setDefaultValues","optionHash","setMessages","nls","translated","isDark","cssClass","$id","lang","net","customLoader","workerPath","modePath","themePath","basePath","suffix","$moduleUrls","loadWorkerFromBlob","sharedPopups","hasOwnProperty","all","$modes","moduleUrl","component","parts","sep","base","re","setModuleUrl","subst","setLoader","cb","dynamicModules","$loading","$loaded","loadModule","onLoad","loadedModule","moduleType","load","afterLoad","loader","err","reportErrorIfPathIsNotConfigured","then","default","$require","setModuleLoader","version","config","init","scriptOptions","scriptUrl","currentScript","_currentScript","currentDocument","scripts","script","getAttribute","attributes","j","attr","m","m1","toUpperCase","Range","startRow","startColumn","endRow","endColumn","start","row","column","isEqual","range","contains","compare","compareRange","cmp","comparePoint","p","containsRange","intersects","isEnd","isStart","setStart","setEnd","inside","insideStart","insideEnd","isMultiLine","compareStart","compareEnd","compareInside","clipRows","firstRow","lastRow","fromPoints","extend","isEmpty","clone","collapseRows","toScreenRange","session","screenPosStart","documentToScreenPosition","screenPosEnd","moveBy","comparePoints","p1","p2","Keys","ret","MODIFIER_KEYS","KEY_MODS","FUNCTION_KEYS","PRINTABLE_KEYS","parseInt","enter","escape","esc","del","mods","pow","x","keyCodeToString","keyCode","keyString","fromCharCode","activeListenerOptions","pressedKeys","ts","getListenerOptions","createComment","passive","detectListenerOptionsSupport","EventListener","elem","destroy","addListener","destroyer","$toDestroy","stopEvent","getButton","ctrlKey","altKey","shiftKey","button","capture","eventHandler","releaseCaptureHandler","onMouseUp","addMouseWheelListener","deltaX","deltaY","deltaMode","DOM_DELTA_PIXEL","wheelX","wheelY","DOM_DELTA_LINE","DOM_DELTA_PAGE","addMultiMouseDownListener","elements","timeouts","callbackName","startX","startY","clicks","eventNames","onMousedown","detail","isNewClick","abs","clientX","clientY","_clicks","getModifierHash","metaKey","normalizeCommandKeys","hashId","getModifierState","altGr","location","keyLocation","timeStamp","resetPressedKeys","getModifierString","addCommandKeyListener","isOldGecko","lastKeyDownKeyCode","lastDefaultPrevented","postMessage","postMessageId","nextTick","win","messageName","listener","$idleBlocked","onIdle","handler","$idleBlockId","blockIdle","nextFrame","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","bind","$cancelT","lineMode","pasteCancelled","Date","now","event","clipboard","BROKEN_SETDATA","USE_IE_MIME_TYPE","HAS_FOCUS_ARGS","MAX_LINE_LENGTH","KEYS","MODS","valueResetRegex","TextInput","parentNode","host","text","opacity","copied","pasted","inComposition","sendingText","tempStyle","fontSize","commandMode","ignoreFocusEvents","lastValue","lastSelectionStart","lastSelectionEnd","lastRestoreEnd","rowStart","Number","MAX_SAFE_INTEGER","rowEnd","MIN_SAFE_INTEGER","numberOfExtraLines","isFocused","activeElement","setNumberOfExtraLines","number","setAriaOptions","activeDescendant","inline","removeAttribute","role","setLabel","selection","cursor","onBlur","hasFocus","onFocus","resetSelection","$focusScroll","focus","renderer","enableKeyboardAccessibility","preventScroll","isTransformed","getBoundingClientRect","ancestors","t","parentElement","nodeType","blur","curOp","commandName","command","isUserAction","docChanged","selectionChanged","onCompositionEnd","positionToSelection","getLine","newValue","selectionEnd","setSelectionRange","afterContextMenu","selectionStart","getRange","lines","prevLine","nextLine","inputHandler","setInputHandler","getInputHandler","sendText","fromInput","onPaste","extendLeft","extendRight","inserted","restoreStart","restoreEnd","endIndex","shouldReset","onTextInput","onInput","onCompositionUpdate","inputType","execCommand","handleClipboardData","forceIEMime","clipboardData","mime","setData","getData","doCopy","isCut","getCopyText","onCut","onCopy","select","onCommandKey","isAllSelected","selectAll","$readOnly","cancelComposition","useTextareaForIME","markerRange","context","compositionStartOffset","closeTimeout","syncComposition","onContextMenuClose","$isMousePressed","$keepTextAreaAtCursor","$moveTextAreaToCursor","onCompositionStart","getSelectionRange","msGetInputContext","getInputContext","getElement","setCommandMode","readOnly","setReadOnly","setCopyWithEmptySelection","onContextMenu","domEvent","moveToMouse","bringToFront","characterWidth","rect","borderTopWidth","borderLeftWidth","maxTop","bottom","clientHeight","move","textInput","scroller","typingResetTimeout","typing","detectArrowKeys","$mouseHandler","isMousePressed","modifier","up","home","option","down","right","shift","commands","findKeyCommand","addIosSelectionHandler","$setUserAgentForTests","_isMobile","_isIOS","DefaultHandlers","mouseHandler","$clickSelection","editor","onMouseDown","onDoubleClick","onTripleClick","onQuadClick","onMouseWheel","selectByLines","extendSelectionBy","selectByWords","ev","inSelection","pos","getDocumentPosition","mousedownEvent","moveToPosition","time","$focusTimeout","inMultiSelectMode","captureMouse","startSelect","setState","waitForClickSelection","screenToTextCoordinates","y","getShiftKey","selectToPosition","anchor","orientedRange","calcRangeOrientation","setSelectionAnchor","scrollCursorIntoView","unitName","cmpStart","cmpEnd","selectByLinesEnd","unsetStyle","focusWait","ax","ay","bx","by","distance","sqrt","getBracketRange","getWordRange","getLineRange","getAccelKey","$lastScroll","vx","vy","allowed","prevScroll","dt","direction","canScroll","isScrollableBy","speed","scrollBy","stop","selectEnd","selectAllEnd","selectByWordsEnd","extendStatics","__extends","d","b","setPrototypeOf","__proto__","__","__values","Symbol","iterator","next","done","CLASSNAME","Tooltip","isOpen","$element","$parentNode","$init","setText","setHtml","html","setPosition","setClassName","setTheme","theme","show","hide","getHeight","offsetHeight","getWidth","popupManager","PopupManager","popups","addPopup","popup","updatePopups","removePopup","e_1","_a","e_2","_b","sort","priority","visiblepopups","_c","_d","shouldDisplay","visiblepopups_1","visiblepopups_1_1","visiblePopup","doPopupsOverlap","e_2_1","return","e_1_1","popupA","popupB","rectA","rectB","HoverTooltip","_super","_this","lastT","idleTime","lastEvent","onMouseOut","onMouseMove","waitForHover","whiteSpace","pointerEvents","tabIndex","addToEditor","getMouseEventTarget","removeFromEditor","isOutsideOfText","$gatherData","docPos","screenPos","pixelToScreenCoordinates","clippedPos","setDataProvider","showForRange","domNode","startingEvent","$registerCloseEvents","addMarker","textToScreenCoordinates","pageX","maxHeight","labelHeight","labelWidth","spaceBelow","innerHeight","pageY","lineHeight","isAbove","innerWidth","marker","$markerSession","removeMarker","$removeCloseEvents","relatedTarget","currentTarget","classList","GutterHandler","tooltipTimeout","mouseEvent","gutter","$gutterLayer","tooltip","GutterTooltip","hideTooltip","moveTooltip","getRegion","selectTo","srcElement","$tooltipFollowsMouse","getLength","screenRow","$pos","documentToScreenRow","showTooltip","gutterRow","getGutterRow","gutterCell","$lines","querySelector","$gutter","windowWidth","windowHeight","singular","plural","warning","info","annotation","annotationsInRow","$annotations","from","fold","getFoldLine","$showFoldedAnnotations","mostSevereAnnotationInFoldType","annotationsInFold","annotationType","summaryFoldedAnnotations","concat","annotationsToSummaryString","annotationMessages","iconClassName","$useSvgGutterIcons","annotationLabels","tooltipContent","annotations","summary","annotationTypes_1","annotationTypes_1_1","label","MouseEvent","$inSelection","documentRow","selectionRange","DragdropHandler","dragImage","dragSelectionMarker","timerId","dragCursor","dragOperation","isInternal","autoScrollStartTime","cursorMovedTime","cursorPointOnCaretMoved","mouseTarget","counter","onDragInterval","prevCursor","vMovement","hMovement","moveCursorToPosition","calcDistance","layerConfig","editorRect","offsets","nearestXOffset","nearestYOffset","scrollCursor","vScroll","hScroll","autoScroll","addDragMarker","toOrientedRange","getSelectionStyle","clearSelection","$cursorLayer","setBlinking","clearInterval","setInterval","clearDragMarker","fromOrientedRange","$resetCursorStyle","onDragStart","cancelDrag","draggable","self","dataTransfer","effectAllowed","getReadOnly","setDragImage","clearData","getTextRange","onDragEnd","dropEffect","setCursorStyle","onDragEnter","canAccept","getDropEffect","onDragOver","onMouseMoveTimer","onDragLeave","onDrop","moveText","dropData","insert","types","some","copyAllowed","copyModifierState","dragWait","getDragDelay","startDrag","dragWaitEnd","dragReadyEnd","cursorStyle","onMouseDrag","state","dragDrop","$dragEnabled","eventTarget","unselectable","addTouchListeners","touchStartT","longTouchTimer","animationTimer","pressed","contextMenu","mode","animationSteps","clickCount","vX","vY","showContextMenu","handleClick","selected","hasUndo","action","getUndoManager","replaceChild","class","readText","writeText","ontouchstart","ontouchend","onclick","pagePos","leftOffset","scrollLeft","hideContextMenu","handleLongTap","selectWord","touches","h","w","touchObj","setRange","switchToSelectionMode","cursorPos","getPixelPosition","anchorPos","offsetTop","offsetLeft","weightedDistance","diff1","diff2","oldScrollTop","getScrollTop","DefaultGutterHandler","MouseHandler","focusEditor","onMouseEvent","scrollBarV","scrollBarH","Boolean","gutterEl","$dragDelay","character","mousemove","$scrollSpeed","mouseMoveHandler","which","releaseMouse","$mouseMoved","onCaptureEnd","onOperationEnd","onCaptureInterval","$onCaptureMouseMove","endOperation","startOperation","cancelContextMenu","scrollSpeed","dragDelay","dragEnabled","focusTimeout","tooltipFollowsMouse","FoldHandler","getFoldAt","removeFold","expandFold","getUseWrapMode","foldWidgets","onFoldWidgetClick","getParentFoldRangeData","firstRange","addFold","keyUtil","KeyBinding","$editor","$data","$handlers","kb","removeKeyboardHandler","$defaultHandler","addKeyboardHandler","setKeyboardHandler","handleKeyboard","attach","detach","getKeyboardHandler","getStatusText","$callKeyboardHandlers","toExecute","success","args","passEvent","dir","hiLevel","lastArabic","hasUBAT_B","hasUBAT_S","impTab_LTR","impTab_RTL","ET","BN","UnicodeTBL00","UnicodeTBL20","_invertLevel","lev","levels","_array","lo","hi","tmp","_getCharClass","chars","ix","wType","nType","cType","c","rtlCandidate","_getCharacterType","uc","charCodeAt","L","R","EN","ON_R","AN","R_H","B","RLE","DOT","doBidiReorder","textCharTypes","isRtl","logicalFromVisual","bidiLevels","charTypes","impTab","prevState","newClass","newLevel","newState","condPos","_computeLevels","hasBidiCharacters","getVisualFromLogicalIdx","logIdx","rowMap","bidiUtil","bidiRE","BidiHandler","bidiMap","currentRow","charWidths","EOL","showInvisibles","isRtlDir","$isRtl","wrapIndent","EOF","contentWidth","fontMetrics","rtlLineOffset","wrapOffset","isMoveLeftOperation","seenBidi","getValue","isBidiRow","docRow","splitIndex","updateRowLine","updateBidiMap","onChange","delta","getDocumentRow","rowCache","$screenRowCache","$getRowCacheIndex","$docRowCache","getSplitIndex","currentIndex","prevIndex","endOfLine","$useWrapMode","splits","$wrapData","indent","substring","size","isFullWidth","getScreenTabSize","$main","substr","markAsDirty","updateCharacterWidths","$characterSize","bidiCharWidth","$measureCharWidth","setShowInvisibles","setEolChar","eolChar","setContentWidth","isRtlLine","setRtlDirection","getCursorPosition","getSelectionAnchor","$bidiHandler","removeInLine","getPosLeft","col","leftBoundary","logicalIdx","getOverwrite","visualIdx","getSelections","startCol","endCol","level","selections","selColMin","selColMax","isSelected","isSelectedPrev","visIdx","offsetToCol","posX","charWidth","Selection","getDocument","lead","createAnchor","$silent","$cursorChanged","$isEmpty","$keepDesiredColumnOnChange","$desiredColumn","$anchorChanged","getCursor","getPosition","setAnchor","getAnchor","getSelectionLead","isBackwards","$setSelection","MAX_VALUE","anchorRow","anchorColumn","cursorRow","cursorColumn","wasEmpty","wasMultiselect","$moveSelection","mover","moveCursorTo","moveTo","selectUp","moveCursorUp","selectDown","moveCursorDown","selectRight","moveCursorRight","selectLeft","moveCursorLeft","selectLineStart","moveCursorLineStart","selectLineEnd","moveCursorLineEnd","selectFileEnd","moveCursorFileEnd","selectFileStart","moveCursorFileStart","selectWordRight","moveCursorWordRight","selectWordLeft","moveCursorWordLeft","selectAWord","getAWordRange","excludeLastChar","foldLine","selectLine","moveCursorBy","wouldMoveIntoSoftTab","tabSize","isTabStop","getTabSize","getNavigateWithinSoftTabs","firstColumnPosition","screenToDocumentPosition","leadingSpace","getDisplayLine","$useEmacsStyleLineStart","lineEnd","getDocumentLastRowColumnPosition","textEnd","search","moveCursorLongWordRight","rightOfCursor","nonTokenRe","tokenRe","moveCursorLongWordLeft","getFoldStringAt","leftOfCursor","$shortWordEndIndex","whitespaceRe","moveCursorShortWordRight","moveCursorShortWordLeft","$selectLongWords","rows","offsetX","lineWidgets","widget","rowsAbove","rowCount","keepDesiredColumn","moveCursorToScreen","desiredColumn","r","getRangeOfMovements","func","toJSON","rangeCount","ranges","r1","fromJSON","rangeList","toSingleRange","addRange","MAX_TOKEN_COUNT","Tokenizer","rules","states","regExps","matchMappings","ruleRegExps","matchTotal","mapping","defaultToken","flag","splitterRurles","rule","caseInsensitive","unicode","regex","adjustedregex","matchcount","token","groupCount","tokenArray","onMatch","$arrayTokens","$applyToken","digit","removeCapturingGroups","splitRegex","createSplitterRegexp","$setMaxTokenCount","tokens","stack","inChClass","lastCapture","parenOpen","parenClose","square","getLineTokens","startState","currentState","matchAttempts","skipped","consumeLineEnd","merge","unshift","TextHighlightRules","$rules","addRules","prefix","nextState","getRules","embedRules","HighlightRules","escapeRules","append","$embeds","getEmbeds","pushState","popState","normalizeRules","processState","processed","toInsert","stateName","includeName","noEscape","keywordMap","createKeywordMapper","ignoreCase","splitChar","keywords","$keywordList","list","word","getKeywords","$keywords","Behaviour","$behaviours","addBehaviours","behaviours","inherit","getBehaviours","TokenIterator","initialRow","initialColumn","$session","$row","$rowTokens","getTokens","getTokenAt","$tokenIndex","stepBackward","stepForward","getCurrentToken","getCurrentTokenRow","getCurrentTokenColumn","rowTokens","tokenIndex","getCurrentTokenPosition","getCurrentTokenRange","SAFE_INSERT_IN_TOKENS","SAFE_INSERT_BEFORE_TOKENS","contextCache","defaultQuotes","initContext","multiSelect","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","getWrapped","opening","closing","rowDiff","CstyleBehaviour","getWrapBehavioursEnabled","isSaneInsertion","braces","recordAutoInsert","recordMaybeInsert","$findOpeningBracket","isAutoInsertedClosing","popAutoInsertedClosing","isMaybeInsertedClosing","clearMaybeInsertedClosing","openBracePos","findMatchingBracket","next_indent","$getIndent","getTabString","quotes","$mode","$quotes","lineCommentStart","quote","leftChar","rightChar","rightToken","pair","stringBefore","stringAfter","wordRe","isWordBefore","isWordAfter","pairQuotesAfter","$pairQuotesAfter","charBefore","closeDocComment","$matchTokenType","iterator2","bracket","wordChars","code","Mode","$defaultBehaviour","getTokenizer","$tokenizer","$highlightRules","$highlightRuleConfig","blockComment","toggleCommentLines","ignoreBlankLines","shouldRemove","minIndent","Infinity","insertAtTabStop","regexpStart","getUseSoftTabs","uncomment","shouldInsertSpace","commentWithSpace","comment","insertInLine","testRemove","before","after","spaces","lineCommentEnd","regexpEnd","iter","fun","minEmptyLength","floor","toggleBlockComment","colDiff","initialRange","startRange","endRange","getNextLineIndent","tab","checkOutdent","input","autoOutdent","createWorker","createModeDelegates","delegations","scope","functionName","$delegator","method","language","transformAction","param","$behaviour","completionKeywords","ruleItr","aLength","$createKeywordList","getCompletions","score","meta","applyDelta","docLines","doNotValidate","Anchor","$onChange","$clipPositionToDocument","point","moveIfEqual","deltaIsInsert","deltaRowShift","deltaColShift","deltaStart","deltaEnd","$pointsInOrder","$getTransformedPoint","$insertRight","noClip","point1","point2","equalPointsInOrder","bColIsAfter","Document","textOrLines","insertMergedLines","setValue","getAllLines","getNewLineCharacter","$detectNewLine","$autoNewLine","$newLineMode","setNewLineMode","newLineMode","getNewLineMode","isNewLine","getLines","getLinesForRange","insertLines","insertFullLines","removeLines","removeFullLines","insertNewLine","$split","clonePos","$clipPosition","deleteFirstNewLine","deleteLastNewLine","deletedLines","removeNewLine","applyDeltas","deltas","revertDeltas","revertDelta","isInsert","$splitAndapplyLargeDelta","$safeApplyDelta","docLength","MAX","to","chunk","indexToPosition","newlineLength","positionToIndex","BackgroundTokenizer","tokenizer","running","currentLine","$worker","workerStart","endLine","startLine","processedLines","$tokenizeRow","fireUpdateEvent","setTokenizer","setDocument","first","scheduleStart","$updateOnChange","getState","cleanup","SearchHighlight","clazz","setRegexp","update","markerLayer","renderedMarkerRanges","MAX_RANGES","rangeToAddMarkerTo","rangeAsString","drawSingleLineMarker","UndoManager","$maxRev","$fromUndo","$undoDepth","reset","addSession","allowMerge","$lastDelta","$keepRedoStack","$redoStack","lastDeltas","undoStackLength","$undoStack","$rev","addSelection","rev","startNewGroup","markIgnored","ignore","getSelection","getRevision","getDeltas","getChangedRanges","getChangedLines","undo","dontSelect","deltaSet","swapped","swapGroups","rearrangeUndoStack","$redoStackBaseRev","undoSelectionRange","undoChanges","$syncRev","redo","diff","redoStack","deltaSets","moveDeltasByOne","rebaseRedoStack","redoSelectionRange","redoChanges","nextDelta","mark","canUndo","canRedo","bookmark","isAtBookmark","json","$prettyPrint","stringifyDelta","hasRedo","isClean","markClean","stringifyRange","swap","d1","d2","i1","i2","ds1","ds2","selectionBefore","selectionAfter","xform","c1","splitDelta","shiftPos","rowsBefore","otherLines","cloneDelta","xformed","FoldLine","foldData","folds","setFoldLine","shiftRow","sameRow","containsRow","walk","lastEnd","isNewRow","placeholder","getNextFoldTo","kind","addRemoveChars","log","foldBefore","newFoldLine","foldLineNext","idxToPosition","idx","lastFoldEndColumn","RangeList","$bias","pointIndex","excludeEdges","startIndex","addList","removed","substractPoint","containsPoint","rangeAtPoint","clipped","removeAll","lineDif","Fold","subFolds","subFold","collapseChildren","addSubFold","consumePoint","afterStart","firstConsumed","consumedFolds","restoreRange","restorePoint","Folding","side","getFoldsInRange","foldLines","$foldData","foundFolds","getFoldsInRangeList","getAllFolds","trim","lastFold","startFoldLine","getNextFoldLine","getFoldedRowCount","$addFoldLine","added","$clipRangeToDocument","startFold","endFold","removeFolds","$updateWrapData","$updateRowLengthCache","$modified","addFolds","$updating","cloneFolds","foldAll","expandFolds","unfold","expandInner","outermostFolds","isRowFolded","startFoldRow","getRowFoldEnd","getRowFoldStart","getFoldDisplayLine","textLine","lastColumn","$cloneFoldData","fd","toggleFold","tryToUnfold","bracketPos","getCommentFoldRange","depth","getFoldWidget","getFoldWidgetRange","foldToLevel","foldAllComments","$foldStyles","$foldStyle","setFoldStyle","$foldMode","$setFolding","foldMode","$updateFoldWidgets","$tokenizerUpdateFoldWidgets","updateFoldWidgets","tokenizerUpdateFoldWidgets","ignoreCurrent","fw","children","siblings","$toggleFoldWidget","toggleFoldWidget","toggleParent","BracketMatch","chr","charBeforeCursor","$findClosingBracket","getMatchingBracketRanges","bracketsRegExp","$brackets","typeRe","openBracket","valueIndex","closingBracket","valueLength","getMatchingTags","$findTagName","$findClosingTag","$findOpeningTag","found","backward","prevToken","currentTag","openTagStart","openTagName","foundOpenTagEnd","openTagEnd","closeTagStart","closeTagName","closeTagEnd","openTag","closeTag","stepCount","tmpToken","TextMode","EditSession","$breakpoints","$decorations","$frontMarkers","$backMarkers","$markerId","$undoSelect","$uid","bgTokenizer","onChangeFold","setMode","destroyed","resetCaches","$resetRowCache","cacheArray","low","mid","$rowLengthCache","removedFolds","$updateInternalDataOnChange","$undoManager","mergeUndoDeltas","$informUndoManager","setUndoManager","JSON","parse","undoManager","history","editSession","setAnnotations","setBreakpoints","breakpoints","setScrollLeft","setScrollTop","scrollTop","$scrollLeft","$scrollTop","$syncInformUndoManager","markUndoGroup","$defaultUndoManager","setUseSoftTabs","$useSoftTabs","$indentWithTabs","setTabSize","$tabSize","setNavigateWithinSoftTabs","navigateWithinSoftTabs","$navigateWithinSoftTabs","setOverwrite","overwrite","$overwrite","toggleOverwrite","addGutterDecoration","removeGutterDecoration","getBreakpoints","clearBreakpoints","setBreakpoint","clearBreakpoint","inFront","addDynamicMarker","markerId","getMarkers","highlight","$searchHighlight","highlightLines","getAnnotations","clearAnnotations","inToken","wordRange","setUseWorker","useWorker","getUseWorker","$useWorker","onReloadTokenizer","$onChangeMode","$modeId","$isPlaceholder","oldMode","$stopWorker","$startWorker","attachToSession","wrapMethod","$wrapMethod","foldingRules","terminate","getMode","isNaN","getScrollLeft","getScreenWidth","$computeWidth","getLineWidgetMaxWidth","screenWidth","lineWidgetsWidth","lineWidgetWidth","force","$wrapLimit","longestScreenLine","foldIndex","foldStart","$getStringScreenWidth","$getUndoSelection","setUndoSelect","enable","isUndo","fromRange","toPosition","toRange","collDiff","oldStart","newStart","indentRows","indentString","outdentRows","rowRange","deleteRange","$moveLines","$clipRowToDocument","moveLinesUp","moveLinesDown","duplicateLines","$clipColumnToRow","setUseWrapMode","useWrapMode","setWrapLimitRange","$wrapLimitRange","adjustWrapLimit","desiredLimit","$printMargin","limits","wrapLimit","$constrainWrapLimit","getWrapLimit","setWrapLimit","limit","getWrapLimitRange","foldLineBefore","wrapData","walkTokens","$getDisplayTokens","PLACEHOLDER_START","PLACEHOLDER_BODY","$computeWrapSplits","displayLength","lastSplit","lastDocSplit","isCode","$wrapAsCode","indentedSoftWrap","$indentedSoftWrap","maxIndent","addSplit","indentation","SPACE","TAB","TAB_SPACE","getWrapIndent","minSplit","PUNCTUATION","CHAR_EXT","CHAR","maxScreenColumn","screenColumn","getRowLength","getRowLineCount","getRowWrapIndent","getScreenLastRowColumn","documentToScreenColumn","getDocumentLastRowColumn","docColumn","getRowSplitData","screenToDocumentRow","screenToDocumentColumn","rowLength","doCache","maxRow","foldStartRow","wrapRow","screenRowOffset","getScreenLength","screenRows","$getWidgetScreenLength","$setFontMetrics","fm","$enableVarChar","getCharacterWidth","wrap","$wrap","firstLineNumber","useSoftTabs","foldStyle","Search","$matchIterator","sr","sc","er","ec","skipCurrent","findAll","needle","$assembleRegExp","$isMultiLine","prevRange","replacement","preserveCase","$disableFakeMultiline","caseSensitive","$supportsUnicodeFlag","wholeWord","wordBoundary","firstChar","needleArray","lastChar","addWordBoundary","$assembleMultilineRegExp","backwards","forEachInLine","MultiHashHandler","$singleCommand","commandKeyBinding","addCommands","addCommand","removeCommand","bindKey","_buildKeyHash","keepCommand","ckb","keyId","cmdGroup","keyPart","chain","binding","parseKeys","_addCommandToBinding","removeCommands","bindKeys","keyList","$keyChain","isDefault","HashHandler","CommandManager","byName","$checkCommandState","isAvailable","returnValue","toggleRecording","$inReplay","recording","macro","$addCommandToMacro","oldMacro","replay","trimMacro","mac","description","showSettingsMenu","showErrorMarker","scrollIntoView","centerSelection","gotoLine","prompt","$type","multiSelectAction","getAllRanges","findNext","findPrevious","aceCommandGroup","navigateFileStart","navigateUp","times","navigateFileEnd","navigateDown","navigateWordLeft","navigateLineStart","navigateLeft","navigateWordRight","navigateLineEnd","navigateRight","selectPageDown","scrollPageDown","gotoPageDown","selectPageUp","scrollPageUp","gotoPageUp","jumpToMatching","$copyWithEmptySelection","$handlePaste","duplicateSelection","sortLines","modifyNumber","copyLinesUp","copyLinesDown","removeToLineStart","removeToLineEnd","removeWordLeft","removeWordRight","blockOutdent","blockIndent","splitLine","transposeLetters","transposeSelections","autoIndent","openLink","firstLineEndCol","selectedCount","insertLine","curLine","newRanges","exitMultiSelectMode","LineWidgets","widgetManager","updateOnChange","renderWidgets","measureWidgets","_changedWidgets","$onChangeEditor","updateOnFold","_inDocument","removeLineWidget","$updateRows","noWidgets","$oldWidget","$registerLineWidget","addLineWidget","zIndex","coverGutter","pixelHeight","$fold","onWidgetChanged","w1","getWidgetsAtRow","updateFull","changedWidgets","fixedWidth","ceil","coverLine","gutterWidth","fullWidth","padding","scrollBar","GutterKeyboardHandler","gutterLayer","activeRowIndex","activeLane","annotationTooltip","$onGutterKeyDown","$blurGutter","isRowVisible","scrollToLine","$rowToRowIndex","$cursorCell","nearestFoldIndex","$findNearestFoldWidget","nearestAnnotationIndex","$findNearestAnnotation","$focusAnnotation","$focusFoldWidget","$handleGutterKeyboardInteraction","GutterKeyboardEvent","lane","$switchLane","$rowIndexToRow","rowFoldingWidget","$blurFoldWidget","cells","childNodes","$moveFoldWidgetDown","$moveAnnotationDown","$moveFoldWidgetUp","$moveAnnotationUp","$blurAnnotation","$isFoldWidgetVisible","isRowFullyVisible","isIconVisible","$getFoldWidget","$isAnnotationVisible","$getAnnotation","foldWidget","keyboardFocusClassName","desinationLane","annotationIndex","foldWidgetIndex","cell","gutterKeyboardHandler","getKey","getRow","isInAnnotationLane","isInFoldLane","defaultCommands","Editor","getContainerElement","getTextAreaContainer","textarea","keyBinding","$search","$historyTracker","$initOperationListeners","_$emitInputEvent","setSession","$opResetTimer","$lastSel","commandEvent","prevOp","previousCommand","scrollSelectionIntoView","animateScrolling","sel","$mergeUndoDeltas","prev","mergeableCommands","$mergeableCommands","shouldMerge","mergeNextCommand","sequenceStartTime","keyboardHandler","$keybindingId","oldSession","$onDocumentChange","$onTokenizerUpdate","$onChangeTabSize","$onChangeWrapLimit","$onChangeWrapMode","$onChangeFold","$onChangeFrontMarker","$onChangeBackMarker","$onChangeBreakpoint","$onChangeAnnotation","$onCursorChange","$onScrollTopChange","$onScrollLeftChange","$onSelectionChange","onDocumentChange","onChangeMode","onTokenizerUpdate","onChangeTabSize","onChangeWrapLimit","onChangeWrapMode","onChangeFrontMarker","onChangeBackMarker","onChangeBreakpoint","onChangeAnnotation","onCursorChange","onScrollTopChange","onScrollLeftChange","onSelectionChange","oldEditor","getSession","resize","onResize","getTheme","getFontSize","setFontSize","$highlightBrackets","$highlightPending","$bracketHighlight","markerIds","$getDirectionForHighlight","tagNamesRanges","getMatching","markerType","getHighlightIndentGuides","$textLayer","$highlightIndentGuide","$isFocused","showCursor","visualizeFocus","hideCursor","visualizeBlur","$cursorChange","updateCursor","$updateHighlightActiveLine","updateLines","scrollToY","scrollToX","$highlightActiveLine","$selectionStyle","$selectionColorConflict","$maxLines","$minLines","$highlightLineMarker","$selectionMarker","$highlightSelectedWord","$getSelectionHighLightRegexp","wordWithBoundary","updateFrontMarkers","updateBackMarkers","updateBreakpoints","updateText","getSelectedText","nl","copyLine","inVirtualSelectionMode","isFullLine","getBehavioursEnabled","lineState","shouldOutdent","$enableAutoIndent","lineIndent","selectedRange","currIndent","prevLineState","composition","applyComposition","forEachSelection","setScrollSpeed","getScrollSpeed","setDragDelay","setSelectionStyle","setHighlightActiveLine","shouldHighlight","getHighlightActiveLine","setHighlightGutterLine","getHighlightGutterLine","setHighlightSelectedWord","getHighlightSelectedWord","setAnimatedScroll","shouldAnimate","getAnimatedScroll","getShowInvisibles","setDisplayIndentGuides","getDisplayIndentGuides","setHighlightIndentGuides","setShowPrintMargin","showPrintMargin","getShowPrintMargin","setPrintMarginColumn","getPrintMarginColumn","setBehavioursEnabled","enabled","setWrapBehavioursEnabled","setShowFoldWidgets","getShowFoldWidgets","setFadeFoldWidgets","fade","getFadeFoldWidgets","new_range","setGhostText","removeGhostText","originalRange","$getSelectedRows","getNumberAt","_numberRx","amount","charRange","isFinite","nr","fp","decimals","nnr","toFixed","replaceRange","toggleWord","currWordStart","wordParts","curLength","itLength","that","reg","wordPairs","$toggleWordPairs","negate","firstCondition","res","findLinkAt","columnPosition","previousPosition","currentPosition","wordParts_1","wordParts_1_1","endPoint","moved","totalDiff","rangeIndex","subRows","compositionState","showComposition","setCompositionText","hideComposition","getFirstVisibleRow","getLastVisibleRow","getFirstFullyVisibleRow","getLastFullyVisibleRow","$getVisibleRowCount","getScrollBottomRow","getScrollTopRow","$moveByPage","scrollToRow","center","animate","alignCursor","getCursorPositionScreen","expand","tokenCount","matchType","bracketType","brackets","tagsRanges","lineNumber","navigateTo","replaced","$tryReplace","replaceAll","getLastSearchOptions","newRange","revealRange","setAutoScrollEditorIntoView","shouldScroll","$scrollAnchor","scrollAnchor","onChangeSelection","onBeforeRender","onAfterRender","searchBox","$pixelPos","$cursorStyle","cursorLayer","setSmoothBlinking","isBlinking","selectionStyle","highlightActiveLine","highlightSelectedWord","copyWithEmptySelection","behavioursEnabled","wrapBehavioursEnabled","enableAutoIndent","autoScrollEditorIntoView","showLineNumbers","setShowLineNumbers","$loop","CHANGE_GUTTER","$relativeLineNumbers","relativeNumberRenderer","relativeLineNumbers","$showLineNumbers","$updatePlaceholder","hasValue","$composition","placeholderNode","$placeholder","content","blurCommand","focusOnEnterKeyup","customScrollbar","hScrollBarAlwaysVisible","vScrollBarAlwaysVisible","highlightGutterLine","animatedScroll","printMarginColumn","printMargin","fadeFoldWidgets","showFoldWidgets","displayIndentGuides","highlightIndentGuides","showGutter","fontFamily","maxLines","minLines","scrollPastEnd","fixedWidthGutter","hasCssTransforms","maxPixelHeight","useResizeObserver","useSvgGutterIcons","showFoldedAnnotations","getText","lastLineNumber","$renderer","Lines","canvasHeight","cellCache","$offsetCoefficient","moveContainer","firstRowScreen","pageChanged","oldConfig","newConfig","computeLineTop","screenTop","screenPage","computeLineHeight","$cacheCell","fragment","insertAdjacentElement","createCell","initElement","Gutter","parentEl","$showFoldWidgets","$updateAnnotations","rowInfo","annoText","annoType","gutterOffset","oldLastRow","$updateCursorRow","onCreateCell","$renderCell","$updateGutterWidth","gutterRenderer","$firstLineNumber","lastLineText","$fixedWidth","$padding","$computePadding","$highlightGutterLine","$cursorRow","updateLineHighlight","scrollLines","$renderLines","textNode","annotationNode","annotationIconNode","decorations","rowText","foldClass","isClosedFold","foldAnnotationClass","annotationInFold","foldRange","getShowLineNumbers","paddingLeft","borderRightWidth","paddingRight","Marker","setPadding","setMarkers","markers","elt","css","$getTop","drawFullLineMarker","drawScreenLineMarker","drawTextMarker","drawMultiLineMarker","childElementCount","lastChild","stringBuilder","extraStyle","curr","lineRange","range1","drawBidiSingleLineMarker","radiusClass","extraLength","textTokens","Set","isTextToken","tokenType","has","Text","$updateEolChar","EOL_CHAR","EOL_CHAR_LF","EOL_CHAR_CRLF","margin","getLineHeight","$fontMetrics","measure","$pollSizeChanges","checkForSizeChanges","$pollSizeChangesTimer","$computeTabString","showSpaces","showTabs","showEOL","$highlightIndentGuides","tabStr","$tabStrings","span","TAB_CHAR","$indentGuideRe","spaceClass","spaceContent","SPACE_CHAR","tabClass","tabContent","lineElements","lineElementsIdx","heightChanged","lineElement","$renderLine","$renderLinesFragment","lineEl","$useLineGroups","$renderToken","valueFragment","simpleSpace","controlCharacter","cjkSpace","cjk","cloneNode","renderIndentGuide","cols","$highlightIndentGuideMarker","indentLevel","initialIndent","elementIndentLevel","currentIndent","$renderHighlightIndentGuide","$clearActiveIndentGuide","$setIndentGuideActive","$createLineElement","$renderWrappedLine","splitChars","$renderOverflowMessage","$renderSimpleLine","overflowEl","$getFoldLineTokens","lastLineEl","invisibleEl","EOF_CHAR","renderTokens","addTokens","Cursor","isVisible","blinkInterval","smoothBlinking","cursors","addCursor","$updateCursors","$updateOpacity","$startCssAnimation","animationDuration","$isAnimating","$stopCssAnimation","blinking","restartTimer","setBlinkInterval","removeCursor","intervalId","timeoutId","$isSmoothBlinking","blink","onScreen","isCursorInView","pixelPos","$selectionMarkers","cursorIndex","drawCursor","$setOverwrite","MAX_SCROLL_H","Scrollbar","classSuffix","setVisible","skipEvent","onScroll","coeff","VScrollBar","scrollHeight","$scrollbarWidth","$minWidth","setHeight","setScrollHeight","setInnerHeight","HScrollBar","setWidth","setInnerWidth","setScrollWidth","ScrollBar","ScrollBarV","ScrollBarH","VScrollWidth","HScrollHeight","eType","mousePageY","startTop","thumbTop","scrollTopFromThumbTop","thumbHeight","pageHeight","viewHeight","slideHeight","scrollWidth","mousePageX","startLeft","thumbLeft","scrollLeftFromThumbLeft","thumbWidth","pageWidth","viewWidth","slideWidth","RenderLoop","onRender","pending","changes","$recursionLimit","_flush","change","clear","CHAR_COUNT","USE_OBSERVER","ResizeObserver","FontMetrics","$setMeasureNodeStyles","$measureNode","$addObserver","isRoot","visibility","font","$measureSizes","fontWeight","boldSize","charSizes","allowBoldFonts","$observer","observe","setPolling","disconnect","$getZoom","zoom","$initTransformMeasureNodes","transformCoordinates","clientPos","elPos","solve","l1","l2","det","sub","mul","m2","ut","u","f","Decorator","canvas","pixelRatio","heightRatio","canvasWidth","minDecorationHeight","halfMinDecorationHeight","colors","dark","light","$updateDecorators","ctx","getContext","clearRect","priorities","compensateFold","compensateFoldRows","currentY","y1","y2","yCenter","fillStyle","fillRect","GutterLayer","MarkerLayer","TextLayer","CursorLayer","HScrollBarCustom","VScrollBarCustom","editorCss","VirtualRenderer","onGutterResize","$markerBack","textLayer","$markerFront","$horizScroll","$vScroll","$scrollAnimation","scrollMargin","updateCharacterSize","$size","scrollerHeight","scrollerWidth","$dirty","minHeight","v","$renderChanges","defaultView","CHANGE_FULL","$addResizeObserver","$allowBoldFonts","$updatePrintMargin","onChangeNewLineMode","$changedLines","CHANGE_LINES","CHANGE_TEXT","CHANGE_MARKER","updateFontSize","$updateSizeAsync","resizing","$updateCachedSize","$resizeTimer","$changes","$customScrollbar","$updateCustomScrollbar","$extraHeight","oldSize","CHANGE_SIZE","CHANGE_SCROLL","$showGutter","$computeLayerConfig","availableWidth","$showPrintMargin","$printMarginColumn","$animatedScroll","getShowGutter","setShowGutter","$printMarginEl","containerEl","posTop","posLeft","setScrollMargin","sm","setMargin","getHScrollBarAlwaysVisible","$hScrollBarAlwaysVisible","setHScrollBarAlwaysVisible","alwaysVisible","getVScrollBarAlwaysVisible","$vScrollBarAlwaysVisible","setVScrollBarAlwaysVisible","$updateScrollBarV","$scrollPastEnd","$updateScrollBarH","freeze","$frozen","unfreeze","CHANGE_H_SCROLL","st","$scrollDecorator","$updateLines","CHANGE_CURSOR","CHANGE_MARKER_FRONT","CHANGE_MARKER_BACK","$autosize","desiredHeight","$maxPixelHeight","$gutterWidth","hideScrollbars","longestLine","$getLongestLine","horizScroll","hScrollChanged","vScrollBefore","vScrollChanged","firstRowHeight","lineCount","charCount","$viewMargin","newLeft","newTop","topMargin","bottomMargin","$stopAnimation","currentTop","currentLeft","twoCharsWidth","alignment","$calcSteps","fromValue","toValue","x_min","STEPS","steps","initialScroll","oldSteps","$timer","endAnimation","scrollTo","canvasPos","$hasCssTransforms","$blockCursor","$useTextareaForIME","addToken","removeExtraToken","insertPosition","textLines","$ghostText","$ghostTextWidget","pixelPosition","ghostTextHeight","newToken","$themeId","$theme","setMouseCursor","attachToShadowRoot","$resizeObserver","contentRect","workerUrl","Worker","blob","Blob","blobBuilder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","getBlob","$workerBlob","blobURL","URL","webkitURL","createObjectURL","WorkerClient","worker","$createWorkerFromOldConfig","$sendDeltaQueue","changeListener","onMessage","callbackId","callbacks","onmessage","topLevelNamespaces","classname","importScripts","nameToUrl","toUrl","normalizePath","$normalizePath","tlns","deltaQueue","onerror","$doc","cmd","emit","ex","attachToDocument","q","UIWorkerClient","main","emitSync","sender","messageBuffer","workerClient","processNext","setEmitSync","Main","PlaceHolder","others","mainClass","othersClass","$onUpdate","onUpdate","$others","undoStack","$undostack","$undoStackDepth","setup","other","showOtherMarkers","othersActive","hideOtherMarkers","updateAnchors","lengthDiff","inMainRange","distanceFromStart","newPos","otherPos","updateMarkers","updateMarker","undosRequired","isSamePoint","alt","ctrl","accel","selectionMode","isMultiSelect","mouseX","mouseY","screenAnchor","screenCursor","$enableJumpToDef","$blockSelectEnabled","addSelectionMarker","oldRange","removeSelectionMarker","tmpSel","rectSel","blockSelect","newCursor","removeSelectionMarkers","rectangularRangeBlock","updateSelectionMarkers","onSelectionInterval","selectMoreLines","selectMore","joinSelections","splitIntoLines","alignCursors","multiSelectCommands","getSelectionMarkers","$blockChangeEvents","$onAddRange","$onRemoveRange","mergeOverlappingRanges","lastRange","$initRangeList","toggleBlockSelection","includeEmptyLines","xBackwards","startOffsetX","endOffsetX","docEnd","yBackwards","MultiSelect","$multiselectOnSessionChange","$onMultiSelect","$onSingleSelect","onSessionChange","$checkMultiselectChange","altCursor","altDown","addAltCursorListeners","selectionMarkerCount","markerList","$onMultiSelectExec","inVirtualMode","keepOrder","$byLines","cmdResult","anim","buf","additive","skip","screenLead","toRemove","words","stopAtFirst","sameRowRanges","maxCol","minSpace","spaceOffsets","spaceOffset","fr","lr","guessRange","$reAlignText","forceLeft","startW","textW","endW","isLeftAligned","isRightAligned","alignLeft","enableMultiselect","enableBlockSelect","FoldMode","foldingStartMarker","foldingStopMarker","indentationBlock","startLevel","openingBracketBlock","closingBracketBlock","oldWidget","gutterAnno","comparator","binarySearch","matched","findAnnotations","arrow","onmousedown","Renderer","edit","_id","env","tagName","oldNode","createEditSession","is","singletonTags","blockTags","formatOptions","lineBreaksAfterCommasInCurlyBlock","beautify","nextToken","tabString","breakBefore","spaceBefore","spaceAfter","lastDepth","lastIndent","unindent","roundDepth","curlyDepth","curRow","rowsToAdd","indentNextLine","inTag","inCSS","inBlock","parents","caseBody","trimNext","trimLine","trimCode","trimRight","trimLeft","searchboxCss","SearchBox","showReplaceForm","spellcheck","title","setEditor","searchRange","$syncOptions","$initElements","sb","replaceBox","searchOption","replaceOption","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","searchCounter","activeInput","$searchBarKb","setSearchRange","searchRangeMarker","checked","noMatch","updateCounter","MAX_COUNT","findPrev","replaceAndFindNext","active","$closeSearchBarKb","isReplace","supportType","supportFunction","supportConstant","supportConstantColor","supportConstantFonts","numRe","pseudoElements","pseudoClasses","CssHighlightRules","keywordMapper","strings","escapes","MatchingBraceOutdent","propertyMap","CssCompletions","completionsDefined","defineCompletions","inParens","getPropertyValueCompletions","getPropertyCompletions","skipSemicolon","caption","snippet","CssBehaviour","BaseFoldMode","commentRegex","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","forceMultiline","getCommentRegionBlock","getSectionRange","startIndent","subRange","CStyleFoldMode","$outdent","$completer","snippetFileId","DocCommentHighlightRules","getTagRule","getStartRule","getEndRule","GolangHighlightRules","stringEscapeRe","tokenizedLine","JsDocCommentHighlightRules","identifierRe","JavaScriptHighlightRules","escapedRe","comments","noES6","no_regex","jsx","JSX","tagRegex","jsxTag","jsxJsRule","jsxAttributes","reference","endState","results","JsonHighlightRules","JsxHighlightRules","buildinConstants","reserved","PythonHighlightRules","strPre","strRawPre","strFormatPre","strRawFormatPre","integer","intPart","pointFloat","floatNumber","stringEscape","PythonFoldMode","outdents","XmlHighlightRules","normalize","processing_instruction","doctype","int_subset","cdata","attr_reference","tag_whitespace","whitespace","attribute_value","embedTagRules","XmlBehaviour","rightSpace","tokenEndColumn","tokenRow","tokenColumn","voidElements","nextIndent","optionalEndTags","Tag","selfClosing","_getFirstTagInLine","_findEndTagInLine","getCommentFoldWidget","tags","XmlFoldMode","createRoot","hydrateRoot","hasElementType","Element","hasMap","Map","hasSet","hasArrayBuffer","ArrayBuffer","isView","equal","it","entries","flags","valueOf","$$typeof","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","amdD","getter","__esModule","definition","prop","toStringTag","nmd","paths","createContext","Icon","family","weight","rest","getCSSClasses","propTypes","isRequired","ItemTrigger","collapsed","toggleChange","useContext","iconType","trigger","onClick","AccordionItem","collapsedProp","ref","setCollapsed","useState","useMemo","expandToContent","contextValue","Provider","defaultProps","forwardRef","AccordionItemHeader","usearrowastrigger","getSize","componentSize","setComponentSize","current","handleResize","useCallback","useLayoutEffect","resizeObserver","savedHandler","useRef","useEffect","eventListener","Collapsible","contentContainer","collapseWrapper","refContainerSize","contentContainerStyle","setContentContainerStyle","onWindowResize","CSSTransition","onEnter","onExit","in","classNames","AccordionItemContent","Accordion","Item","Header","Content","Button","customButton","iconFamily","iconPosition","iconOnly","noStyle","getCssClasses","cssClasses","sizeClass","disabledClass","displayClass","themeClass","iconOnlyClass","noStyleClass","getButtonIcon","buttonType","cloneElement","getButtonType","ButtonGroup","CardHeader","CardBody","align","CardFooter","CardTitle","CardTitleGroup","CardSubTitle","CardSummary","CardTitleIcon","Card","Body","Footer","Title","TitleGroup","SubTitle","Summary","wait","immediate","callNow","Loader","withbackground","Message","onClose","noMargin","Chart","areaStyleColors","dataLoaded","hasData","series","zoomStart","zoomEnd","seriesConfig","noDataComponent","noDataComponentProp","zoomColors","tykChartInstance","setTykChartInstance","chartWrapperRef","lineBarChart","defaultOpts","fromJS","color","toolbox","orient","itemSize","showTitle","feature","dataZoom","dataBackground","lineStyle","areaStyle","handleStyle","textStyle","borderColor","fillerColor","legend","axisPointer","grid","containLabel","xAxis","boundaryGap","axisLine","axisTick","yAxis","axisLabel","animationEasing","seriesDefault","LinearGradient","smooth","symbolSize","pieChart","formatter","radius","avoidLabelOverlap","animationType","labelLine","normal","length2","geoChart","dispose","eventCallBack","debouncedMethod","debounce","getZr","prevInstance","prevOption","prevType","prevSeries","equals","selectedType","selectedOptions","selectedSeries","finalOpts","mergeDeep","toJS","entry","seriesData","buildChartOptions","dispatchAction","dataZoomSelectActive","seriesIndex","dataIndex","prevZoomStart","prevZoomEnd","startValue","endValue","chartHasData","getStyle","memo","savedCallback","ToastMessage","handleClose","itemIndex","ToastContainer","notify","updateNotifications","msgID","random","prevMessages","onMessageClosed","newMessages","fn","createNotification","render","bindNotify","danger","CopyToClipboard","txtRef","createRef","onKeyUp","ModalFooter","ModalBody","Modal","disableCloseCommands","opened","showBackdrop","restProps","modalClasses","backdropClasses","themeIcon","onKeyDown","Confirm","confirmBtnText","cancelBtnText","setOpen","setCallback","cancelCallback","setCancelCallback","callbackFunc","cancelCallbackFunc","beforeCallback","FixedWrapper","showShadow","fixedWrapperRef","attachShadow","scrollY","debouncedAttachShadow","InfiniteScroller","hasMore","initialLoad","loadMore","pageNumber","refChild","showLoader","setShowLoader","containerRef","refChildSize","shouldLoad","loadMoreData","prevPageNumber","scrollHandler","prevRefChildSize","PropTypes","oneOfType","arrayOf","bool","instanceOf","FloatingContainer","forceDisplay","displayAxis","preferredPosition","infiniteScrollerConfig","localRef","floatingContainerRef","contentWrapperRef","viewportOffset","schedulePositionUpdate","topSpace","bottomSpace","leftSpace","hasTopSpace","hasBottomSpace","hasLeftSpace","hasRightSpace","positionedVerticallyFitsInViewport","positionedHorizontallyFitsInViewport","getDisplayForVertical","getDisplayForHorizontal","getDisplayWhereItFits","determineDisplay","targetPosition","vpLeft","vpTop","leftPos","auto","matchElement","matchStart","matchEnd","topPos","maxWidth","getStylesForTop","getStylesForBottom","getStylesForLeft","getStylesForRight","adjustPosition","createPortal","InfoNote","ListItem","List","labelwidth","flexBasis","styleCopy","structuredClone","getListStyle","NavBar","pre","subtitle","withTabs","subtitleContent","NavigationItem","Navigation","PortalContext","PanelBody","noPadding","Consumer","portalContext","collapsable","PanelFooter","PanelHeader","Component","HeaderTag","onToggle","collapsibleIconPosition","Panel","onToggleCollapse","collapsedState","setCollapsedState","handleToggle","panelTheme","collapsbleIconPosition","toggleCollapse","Pill","RevealPanelService","setRefs","wrapper","panel","unbindEvents","bindEvents","ensureRefs","mouseDown","initialRect","initialEvent","isPrimaryMouseButtonDown","newY","finalHeight","notifyListeners","buttons","heightVal","reason","isHidden","deinit","RevealPanelHeaderLeft","RevealPanelHeaderRight","mergeClasses","RevealPanel","onHeightChange","parentSelector","contentStyle","contentClassName","gutterClassName","wrapperClassName","panelRef","gutterRef","wrapperRef","panelService","useImperativeHandle","headerLeft","headerRight","contents","child","TempRevealPanel","HeaderLeft","HeaderRight","TabsContext","TabContent","addTab","hideTab","updateTab","showTab","selectedPath","tabData","tabsId","tabExists","rendered","hideTabContent","tabs","tempTabData","prevTabData","shouldRender","TabContext","Tab","tabsContext","tabContext","setPath","tempPath","Tabs","onTabChange","setTabs","setSelectedPath","setRendered","initialPath","setInitialPath","setCurrentSelectedPath","tempRendered","collapsible","prevTabs","tempTabs","tabsState","tempTabsState","toggleTab","getTabCssClass","tabId","genTabs","currentTabs","updateTabsList","icon","closable","isOpened","additionalClickParents","isActive","setIsActive","tooltipRef","activeEvents","onMouseEnter","onMouseLeave","handleDocumentClick","TextEllipsis","Pagination","totalNrOfPages","selectedPage","setSelectedPage","pagesArray","nrOfPages","pagesArr","currentNr","pageNr","at","getPagesArr","goToPage","tableContext","HeaderCell","sortable","sortOrder","setSortOrder","sendMessage","allRowsSelected","columns","selectable","generateSelectable","allowSelectAll","isCheckbox","Checkbox","displayError","displayNote","note","Cell","styling","events","Row","SelectableCheckbox","Table","noDataMessage","loading","infiniteScrolling","onChangeMsg","setOnChangeMsg","itemsListRef","sortRows","order","selectAllRows","selectRow","setPagination","pagination","api","getTable","every","totalPages","num","nrItemsOnPage","perPage","Column","cSize","cOffset","nogutters","DropdownContext","DropdownItem","customdropdownitem","eventKey","dropdownItemCLick","dropdownContext","itemProps","onSelectItem","selectedItem","showCheckmark","Dropdown","isElemInRightView","dropdownWidth","isElemInBottomView","dropdownHeight","elHeight","super","dropdownRef","dropdownListRef","dropdownButtonRef","toggleDropdown","handleClickOutside","componentDidMount","getStyles","componentDidUpdate","prevProps","closeDropdown","componentWillUnmount","itemId","closeOnSelect","onSelect","selectedItemProps","dropdownEl","offsetPosition","customTop","customLeft","getWrapperCssClasses","btnGroup","btnGroupSize","btnTheme","hasCustomContent","listclassnames","getBtnTitle","btnTitle","stopButtonTextChange","appendTo","btnClassName","btnSize","customBtnTitle","showDropdownIcon","showTriggerButton","DropdownWrapperTag","DropdownTrigger","splitTrigger","toggle","onTriggerClick","DropdownListWrapper","dropdownValue","Dropdown2","setSelectedValueAsTitle","setIsOpen","handleOutsideClick","triggerElement","CodeEditor","disableValidation","finalSetOptions","getCodeEditorError","getLabelStyles","getNonLabelWidth","handleOnChange","handleOnBlur","htmlFor","editorProps","$blockScrolling","editorInstance","getStateSelectedValues","multiple","Combobox","closeList","openList","filterByName","itemValue","inputValue","stateSelectedValues","searchText","comboboxRef","valuesListRef","inputRef","textRef","focusInput","handleItemsNavigation","handleComboboxDropdownClick","handleListItemClick","handlePillRemoveClick","manageSelectedTags","setInputWidth","unBindEvents","getDerivedStateFromProps","nextProps","stringify","filteredValues","filterValues","cursorNext","previousState","methodName","tempState","removeSelectedValue","allowCustomValues","getSearchText","getSelectedIndex","getListItemCssClasses","getComboboxListCssClass","themes","iTheme","getInputError","elWidth","getComboboxDisplayData","reduce","prevValue","tempValue","selectedIndex","selectedValues","isInInitialValues","addSelectedValue","manageSelectedValues","tempSelectedValues","tempStateSelectedValues","ok","searchItem","renderInput","visbility","renderDropdown","autoFocus","CustomListComponent","Value","tagSeparators","addTagOnBlur","renderValue","valueOverflow","dummyElementRef","setInputValue","inputWidth","entryFieldOnChange","dummy","triggerAction","textValue","isPlaceholder","renderCustomValue","entryFieldOnKeyDown","listRef","searchValue","activeItem","renderListItem","showSearch","block","isNoneSelected","renderSelectAllOption","Combobox2","propValue","propValues","maxProp","matchItemFn","renderList","renderListProp","onBeforeChange","floatingContainerConfig","expandMode","displayDropdownTrigger","required","validateOnChange","rootRef","comboboxControlRef","getValueFromProp","setValues","normalizeValue","setSearchValue","setActiveItem","setIsOpened","valuesExpanded","setValuesExpanded","localValidationError","setLocalValidationError","getThemeClasses","getFilteredValues","openDropdown","updateSearchValue","newSearchValue","fv","isValidValue","newValues","localError","updateValue","addTag","listValueIndex","lv","finalValue","selectValue","valIndex","with","selectAllValues","moveUpActiveItem","visibleItems","activeIndex","moveDownActiveItem","executeTriggerAction","onTagMessage","removeTag","renderIcon","sv","nv","vals","valuesElement","updateScroll","mobserver","MutationObserver","robserver","childList","subtree","currentValuesClasses","onClickCapture","existingVal","DatePicker","onOpen","pickerInstance","setPickerInstance","dateRef","hasValueChanged","prevDate","currentDate","getTime","diffDates","date","onDateChange","dateValue","instance","defaultDate","setDate","openCalendar","inputStyle","addonStyle","getInputField","dateFormat","_typeof","requiredArgs","isDate","toDate","argument","argStr","NaN","toInteger","dirtyNumber","startOfUTCISOWeek","dirtyDate","day","getUTCDay","setUTCDate","getUTCDate","setUTCHours","getUTCISOWeekYear","year","getUTCFullYear","fourthOfJanuaryOfNextYear","setUTCFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","defaultOptions","getDefaultOptions","startOfUTCWeek","_ref","_ref2","_ref3","_options$weekStartsOn","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","weekStartsOn","locale","RangeError","getUTCWeekYear","_options$firstWeekCon","firstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","addLeadingZeros","targetLength","sign","signedYear","month","getUTCMonth","getUTCHours","getUTCMinutes","getUTCSeconds","numberOfDigits","milliseconds","getUTCMilliseconds","G","localize","era","ordinalNumber","unit","lightFormatters","Y","signedWeekYear","weekYear","Q","quarter","M","week","firstWeek","startOfUTCWeekYear","getUTCWeek","I","isoWeek","fourthOfJanuary","startOfUTCISOWeekYear","getUTCISOWeek","D","dayOfYear","timestamp","setUTCMonth","difference","getUTCDayOfYear","E","dayOfWeek","localDayOfWeek","isoDayOfWeek","dayPeriodEnumValue","dayPeriod","hours","H","K","S","X","_localize","timezoneOffset","_originalDate","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","z","originalDate","T","dirtyDelimiter","absOffset","minutes","delimiter","dateLongFormatter","pattern","formatLong","timeLongFormatter","longFormatters","P","dateTimeFormat","matchResult","datePattern","timePattern","dateTime","protectedDayOfYearTokens","protectedWeekYearTokens","throwProtectedError","format","formatDistanceLocale","lessThanXSeconds","one","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","defaultWidth","formats","full","long","medium","short","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchedString","parsePatterns","defaultParseWidth","object","findKey","valueCallback","formatDistance","tokenValue","addSuffix","comparison","formatRelative","_date","_baseDate","_options","rem100","narrow","abbreviated","wide","am","pm","midnight","noon","morning","afternoon","evening","night","parsePattern","parseResult","any","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","_ref4","_options$locale2","_options$locale2$opti","_ref5","_ref6","_ref7","_options$locale3","_options$locale3$opti","_defaultOptions$local3","_defaultOptions$local4","formatStr","defaultLocale","isValid","utcDate","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","getTimezoneOffsetInMilliseconds","dirtyAmount","addMilliseconds","subMilliseconds","formatterOptions","firstCharacter","longFormatter","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","isProtectedDayOfYearToken","EditableListForm","getMainFormValue","components","mainFormValue","submitButtonRef","submitForm","errors","mainError","addValueOnFieldChange","getMainFormButtonWidth","createRefs","propsComponents","stateComponents","validateValue","getFormCssClasses","noLabels","getButtonClassName","buttonStyle","displayType","getComponentsError","errorPersist","validatorsNames","validate","validatorName","validator","validationmessages","hasMainFormErrors","resetForm","showMainError","onSubmit","validationmessage","buttonName","ComponentName","EditableList","getItemListValue","getListItemCssClass","buttonWidth","handleFormSubmit","dropdownListItemRef","addValues","triggerOnChange","handleItemUpdate","editMode","handleChildrenOnChange","getListItemsCssClass","getFormInputKey","getListItemText","itemData","separator","setItemEditMode","closeListItems","isInList","removeListItem","removedItem","valueArr","tempItemValue","nextValue","genListItem","clonedComponents","genList","appendToElement","formButtonTitle","formButtonStyle","addButtonName","onAddRow","ListHeader","fields","field","FieldsList","onDelete","rowIndex","tempField","EditableList2","hideOnEmpty","internalErrors","setInternalErrors","updateRowValue","fieldIndex","componentValue","tempValueArr","tempErrors","tempFieldError","Components","internalError","setInternalError","onFieldChange","errorMsg","deleteRow","rowValues","colValue","flat","hasErrors","FileInput","accept","fileInputRef","files","Input","getAddon","initValue","stateValue","isfield","inputgroupaddonleft","inputgroupaddonright","getInputGroupAddon","getInputComponent","autoComplete","Input2","getInputElement","MultiselectItem","itemType","isInSearchValue","fieldsToSearchOn","onAddRemove","itemDisplayTemplate","maxSelections","nrSelectedItems","onGetItemDetails","details","detailsDisplayTemplate","getItemContent","getItemLoader","MultiselectPanel","inputPlaceholder","noItemsMessage","items","onCustomSearch","customSearch","panelType","serverLoad","itemsPageNumber","itemsNrPages","loadMoreItems","searchOnChange","itemChanged","cloneItems","clonedItem","renderListItems","diffObjects","Multiselect","entityNamePlural","getItemDetails","setOpened","prevOpened","itemsChange","allItems","valueClone","valueChange","providerValue","Radio","nospace","Select","setStateValue","selectedValue","getSelectError","getSelectComponent","SelectableList","checkboxalticon","itemTemplate","primaryKey","handleOnSelect","newSelectedItems","elemPosition","getListItemCssClassName","tvalue","Textarea","ToggleItem","getNotchCssClasses","itemRef","saveSelectedRef","onItemSelected","ToggleItemWrapper","Toggle","onDark","separated","selectedRef","setSelectedRef","notchRef","toggleRef","positionNotch","selectedWidth","FORM_DEBOUNCE","setConfig","getValueFromPath","acc","form","properties","DEFAULT_DEBOUNCE_TIME_MS","myValue","setMyValue","getOnChangeProps","hasIsFieldProp","executeDebounced","valueOrEvent","nodeName","onChangeProps","formError","touched","submitCount","status","componentProps","hasOwn","FieldCodeEditor","FieldCombobox","getComboboxError","FieldDropdown","FieldPagination","FieldCombobox2","FormDatePicker","getDatePickerError","FieldEditableList","getEditableListError","FieldFileInput","FieldInput","FieldMultiselect","getMultiselectError","FieldSelect","handleEvent","FieldSelectableList","FieldToggle","useInterval"],"sourceRoot":""} \ No newline at end of file